diff --git a/.gitignore b/.gitignore index 525cb1f7f..20df56d13 100644 --- a/.gitignore +++ b/.gitignore @@ -10,12 +10,15 @@ *.sgml *.log *.inc +*.rej objfiles.txt +/tmp_build/ +/output/ +/mppdb_temp_install/ /GNUmakefile /config.status /ereport.txt /build/script/version.cfg -/src/Makefile.global diff --git a/GNUmakefile.in b/GNUmakefile.in index 9565f6af9..88004fe3f 100644 --- a/GNUmakefile.in +++ b/GNUmakefile.in @@ -58,7 +58,6 @@ install: $(MAKE) -C contrib/hstore $@ $(MAKE) -C $(root_builddir)/distribute/kernel/extension/packages $@ $(MAKE) -C contrib/pagehack $@ - $(MAKE) -C contrib/pg_stat_statements $@ $(MAKE) -C contrib/pg_xlogdump $@ $(MAKE) -C $(root_builddir)/contrib/gsredistribute $@ $(MAKE) -C $(root_builddir)/distribute/kernel/extension/dimsearch $@ @@ -72,9 +71,8 @@ install: $(MAKE) install_oracle_fdw $(MAKE) install_pldebugger $(MAKE) -C contrib/postgres_fdw $@ - $(MAKE) -C contrib/pg_stat_statements $@ $(MAKE) -C contrib/hstore $@ - $(MAKE) -C $(root_builddir)/distribute/kernel/extension/packages $@ + $(MAKE) -C $(root_builddir)/privategauss/kernel/extension/packages $@ $(MAKE) -C $(root_builddir)/contrib/gsredistribute $@ +@echo "openGauss installation complete." else diff --git a/build/script/opengauss_release_list_centos_single b/build/script/opengauss_release_list_centos_single index 096910759..786f163ae 100644 --- a/build/script/opengauss_release_list_centos_single +++ b/build/script/opengauss_release_list_centos_single @@ -975,6 +975,7 @@ ./include/postgresql/server/utils/aset.h ./include/postgresql/server/utils/catcache.h ./include/postgresql/server/utils/atomic_arm.h +./include/postgresql/server/utils/oidrbtree.h ./include/postgresql/server/datatype/timestamp.h ./include/postgresql/server/access/rmgr.h ./include/postgresql/server/access/xlogreader.h @@ -986,6 +987,7 @@ ./include/postgresql/server/access/attnum.h ./include/postgresql/server/access/tupmacs.h ./include/postgresql/server/access/xlogrecord.h +./include/postgresql/server/tde_key_management/data_common.h ./include/postgresql/server/tcop/dest.h ./include/postgresql/server/catalog/pg_type.h ./include/postgresql/server/catalog/pg_attribute.h diff --git a/build/script/opengauss_release_list_euleros_aarch64_single b/build/script/opengauss_release_list_euleros_aarch64_single index b6eb88459..52d2142df 100644 --- a/build/script/opengauss_release_list_euleros_aarch64_single +++ b/build/script/opengauss_release_list_euleros_aarch64_single @@ -974,6 +974,7 @@ ./include/postgresql/server/utils/aset.h ./include/postgresql/server/utils/catcache.h ./include/postgresql/server/utils/atomic_arm.h +./include/postgresql/server/utils/oidrbtree.h ./include/postgresql/server/datatype/timestamp.h ./include/postgresql/server/access/rmgr.h ./include/postgresql/server/access/xlogreader.h @@ -985,6 +986,7 @@ ./include/postgresql/server/access/attnum.h ./include/postgresql/server/access/tupmacs.h ./include/postgresql/server/access/xlogrecord.h +./include/postgresql/server/tde_key_management/data_common.h ./include/postgresql/server/tcop/dest.h ./include/postgresql/server/catalog/pg_type.h ./include/postgresql/server/catalog/pg_attribute.h diff --git a/build/script/opengauss_release_list_euleros_single b/build/script/opengauss_release_list_euleros_single index b41c405e9..03cc16e0c 100644 --- a/build/script/opengauss_release_list_euleros_single +++ b/build/script/opengauss_release_list_euleros_single @@ -974,6 +974,7 @@ ./include/postgresql/server/utils/aset.h ./include/postgresql/server/utils/catcache.h ./include/postgresql/server/utils/atomic_arm.h +./include/postgresql/server/utils/oidrbtree.h ./include/postgresql/server/datatype/timestamp.h ./include/postgresql/server/access/rmgr.h ./include/postgresql/server/access/xlogreader.h @@ -985,6 +986,7 @@ ./include/postgresql/server/access/attnum.h ./include/postgresql/server/access/tupmacs.h ./include/postgresql/server/access/xlogrecord.h +./include/postgresql/server/tde_key_management/data_common.h ./include/postgresql/server/tcop/dest.h ./include/postgresql/server/catalog/pg_type.h ./include/postgresql/server/catalog/pg_attribute.h diff --git a/build/script/opengauss_release_list_kylin_aarch64_single b/build/script/opengauss_release_list_kylin_aarch64_single index 1ac0593e0..96cf69761 100644 --- a/build/script/opengauss_release_list_kylin_aarch64_single +++ b/build/script/opengauss_release_list_kylin_aarch64_single @@ -997,6 +997,7 @@ ./include/postgresql/server/utils/aset.h ./include/postgresql/server/utils/catcache.h ./include/postgresql/server/utils/atomic_arm.h +./include/postgresql/server/utils/oidrbtree.h ./include/postgresql/server/datatype/timestamp.h ./include/postgresql/server/access/rmgr.h ./include/postgresql/server/access/xlogreader.h @@ -1008,6 +1009,7 @@ ./include/postgresql/server/access/attnum.h ./include/postgresql/server/access/tupmacs.h ./include/postgresql/server/access/xlogrecord.h +./include/postgresql/server/tde_key_management/data_common.h ./include/postgresql/server/tcop/dest.h ./include/postgresql/server/catalog/pg_type.h ./include/postgresql/server/catalog/pg_attribute.h diff --git a/build/script/opengauss_release_list_openeuler_aarch64_single b/build/script/opengauss_release_list_openeuler_aarch64_single index b6eb88459..52d2142df 100644 --- a/build/script/opengauss_release_list_openeuler_aarch64_single +++ b/build/script/opengauss_release_list_openeuler_aarch64_single @@ -974,6 +974,7 @@ ./include/postgresql/server/utils/aset.h ./include/postgresql/server/utils/catcache.h ./include/postgresql/server/utils/atomic_arm.h +./include/postgresql/server/utils/oidrbtree.h ./include/postgresql/server/datatype/timestamp.h ./include/postgresql/server/access/rmgr.h ./include/postgresql/server/access/xlogreader.h @@ -985,6 +986,7 @@ ./include/postgresql/server/access/attnum.h ./include/postgresql/server/access/tupmacs.h ./include/postgresql/server/access/xlogrecord.h +./include/postgresql/server/tde_key_management/data_common.h ./include/postgresql/server/tcop/dest.h ./include/postgresql/server/catalog/pg_type.h ./include/postgresql/server/catalog/pg_attribute.h diff --git a/build/script/opengauss_release_list_openeuler_single b/build/script/opengauss_release_list_openeuler_single index 096910759..dd9d2ac5f 100644 --- a/build/script/opengauss_release_list_openeuler_single +++ b/build/script/opengauss_release_list_openeuler_single @@ -1,49 +1,57 @@ [server] +./bin/gs_log ./bin/gsql ./bin/gaussdb +./bin/gaussdb.version.GaussDB200 +./bin/gaussdb.version.GaussDB300 +./bin/gaussdb.license.GaussDB200_Standard ./bin/gstrace -./bin/gs_basebackup -./bin/gs_probackup -./bin/gs_tar ./bin/gs_encrypt ./bin/gs_dump ./bin/gs_dumpall -./bin/gs_ctl ./bin/gs_initdb +./bin/gs_ctl ./bin/gs_guc ./bin/encrypt ./bin/openssl ./bin/gs_restore ./bin/gs_cgroup -./bin/openssl +./bin/gs_basebackup +./bin/gs_probackup ./bin/pg_config ./bin/pg_controldata ./bin/pg_format_cu ./bin/pg_resetxlog -./bin/pg_recvlogical ./bin/alarmItem.conf ./bin/retry_errcodes.conf ./bin/cluster_guc.conf -./bin/bind_net_irq.sh -./bin/setArmOptimization.sh +./bin/runsessionstat.sh +./bin/drop_caches.sh +./bin/run_drop_cache.sh +./bin/gs_plan_simulator.sh +./bin/dependences/clean_temp.sql +./bin/dependences/initdb.py +./bin/dependences/restore_temp.sql +./bin/dependences/store_pg_class_stats.sql +./bin/dependences/store_pg_statistic_ext_stats.sql +./bin/dependences/store_pg_statistic_stats.sql +./bin/dependences/store_pgxc_class.sql ./bin/krb5kdc ./bin/klist ./bin/kinit ./bin/kdestroy ./bin/kdb5_util ./bin/kadmin.local -./bin/lz4 -./bin/kadmind -./bin/dbmind -./bin/server.key.cipher -./bin/server.key.rand ./etc/kerberos/kadm5.acl ./etc/kerberos/kdc.conf ./etc/kerberos/krb5.conf ./etc/kerberos/mppdb-site.xml -./share/postgresql/tmp/udstools.py +./share/postgis/PostGIS_install.sh ./share/postgresql/db4ai +./share/postgresql/tmp/udstools.py ./share/postgresql/snowball_create.sql +./share/postgresql/pmk_schema.sql +./share/postgresql/pmk_schema_single_inst.sql ./share/postgresql/pg_hba.conf.sample ./share/postgresql/gs_gazelle.conf.sample ./share/postgresql/pg_service.conf.sample @@ -53,11 +61,12 @@ ./share/postgresql/pg_ident.conf.sample ./share/postgresql/postgres.description ./share/postgresql/postgresql.conf.sample -./share/postgresql/mot.conf.sample ./share/postgresql/extension/plpgsql--1.0.sql ./share/postgresql/extension/hstore.control ./share/postgresql/extension/security_plugin.control ./share/postgresql/extension/security_plugin--1.0.sql +./share/postgresql/extension/tsdb.control +./share/postgresql/extension/tsdb--1.0.sql ./share/postgresql/extension/file_fdw--1.0.sql ./share/postgresql/extension/plpgsql.control ./share/postgresql/extension/dist_fdw.control @@ -69,10 +78,17 @@ ./share/postgresql/extension/hstore--1.0--1.1.sql ./share/postgresql/extension/hdfs_fdw--1.0.sql ./share/postgresql/extension/hdfs_fdw.control +./share/postgresql/extension/gc_fdw--1.0.sql +./share/postgresql/extension/gc_fdw.control ./share/postgresql/extension/log_fdw--1.0.sql ./share/postgresql/extension/log_fdw.control ./share/postgresql/extension/mot_fdw--1.0.sql ./share/postgresql/extension/mot_fdw.control +./share/postgresql/extension/dimsearch--1.0.sql +./share/postgresql/extension/dimsearch.control +./share/postgresql/extension/packages--1.0.sql +./share/postgresql/extension/packages--1.0--1.1.sql +./share/postgresql/extension/packages.control ./share/postgresql/extension/postgres_fdw--1.0.sql ./share/postgresql/extension/postgres_fdw.control ./share/postgresql/timezone/GB-Eire @@ -668,6 +684,8 @@ ./share/postgresql/sql_features.txt ./share/postgresql/pg_cast_oid.txt ./share/postgresql/recovery.conf.sample +./share/postgresql/cm_server.conf.sample +./share/postgresql/cm_agent.conf.sample ./share/postgresql/tsearch_data/english.stop ./share/postgresql/tsearch_data/dutch.stop ./share/postgresql/tsearch_data/hungarian.stop @@ -704,8 +722,9 @@ ./share/postgresql/postgres.bki ./share/llvmir/GaussDB_expr.ir ./share/sslcert/gsql/openssl.cnf +./share/sslcert/gds/openssl.cnf ./share/sslcert/grpc/openssl.cnf -./share/sslcert/om/openssl.cnf +./share/sslcert/etcd/openssl.cnf ./lib/libsimsearch/ ./lib/postgresql/latin2_and_win1250.so ./lib/postgresql/euc2004_sjis2004.so @@ -729,6 +748,8 @@ ./lib/postgresql/utf8_and_sjis.so ./lib/postgresql/utf8_and_cyrillic.so ./lib/postgresql/hstore.so +./lib/postgresql/tsdb.so +./lib/postgresql/packages.so ./lib/postgresql/utf8_and_euc_kr.so ./lib/postgresql/ascii_and_mic.so ./lib/postgresql/utf8_and_iso8859_1.so @@ -743,6 +764,7 @@ ./lib/postgresql/utf8_and_euc2004.so ./lib/postgresql/utf8_and_big5.so ./lib/postgresql/mppdb_decoding.so +./lib/postgresql/dimsearch.so ./lib/postgresql/pg_plugin ./lib/postgresql/proc_srclib ./lib/postgresql/security_plugin.so @@ -823,9 +845,6 @@ ./lib/libverto.so ./lib/libverto.so.0 ./lib/libverto.so.0.0 -./lib/libcurl.so -./lib/libcurl.so.4 -./lib/libcurl.so.4.6.0 ./lib/libcrypto.so ./lib/libcrypto.so.1.1 ./lib/libssl.so @@ -859,7 +878,7 @@ ./lib/libiconv.so.2.6.1 ./lib/libnghttp2.so ./lib/libnghttp2.so.14 -./lib/libnghttp2.so.14.20.0 +./lib/libnghttp2.so.14.18.0 ./lib/libpcre.so ./lib/libpcre.so.1 ./lib/libpcre.so.1.2.12 @@ -881,15 +900,11 @@ ./lib/libzstd.so.1 ./lib/libzstd.so.1.4.4 - ./include/postgresql/server/postgres_ext.h ./include/postgresql/server/pg_config_os.h ./include/postgresql/server/pgtime.h -./include/postgresql/server/datatypes.h -./include/postgresql/server/client_logic/client_logic_enums.h ./include/postgresql/server/nodes/primnodes.h ./include/postgresql/server/nodes/parsenodes.h -./include/postgresql/server/nodes/parsenodes_common.h ./include/postgresql/server/nodes/bitmapset.h ./include/postgresql/server/nodes/pg_list.h ./include/postgresql/server/nodes/value.h @@ -931,6 +946,7 @@ ./include/postgresql/server/utils/rbtree.h ./include/postgresql/server/utils/gs_bitmap.h ./include/postgresql/server/utils/tuplesort.h +./include/postgresql/server/utils/tqual.h ./include/postgresql/server/utils/ps_status.h ./include/postgresql/server/utils/palloc.h ./include/postgresql/server/utils/reltrigger.h @@ -975,6 +991,7 @@ ./include/postgresql/server/utils/aset.h ./include/postgresql/server/utils/catcache.h ./include/postgresql/server/utils/atomic_arm.h +./include/postgresql/server/utils/oidrbtree.h ./include/postgresql/server/datatype/timestamp.h ./include/postgresql/server/access/rmgr.h ./include/postgresql/server/access/xlogreader.h @@ -986,6 +1003,7 @@ ./include/postgresql/server/access/attnum.h ./include/postgresql/server/access/tupmacs.h ./include/postgresql/server/access/xlogrecord.h +./include/postgresql/server/tde_key_management/data_common.h ./include/postgresql/server/tcop/dest.h ./include/postgresql/server/catalog/pg_type.h ./include/postgresql/server/catalog/pg_attribute.h @@ -996,19 +1014,19 @@ ./include/postgresql/server/securec.h ./include/postgresql/server/securectype.h ./include/postgresql/server/storage/off.h -./include/postgresql/server/storage/buf/block.h -./include/postgresql/server/storage/item/item.h +./include/postgresql/server/storage/block.h +./include/postgresql/server/storage/item.h ./include/postgresql/server/storage/smgr/relfilenode.h -./include/postgresql/server/storage/buf/bufpage.h +./include/postgresql/server/storage/bufpage.h ./include/postgresql/server/storage/spin.h -./include/postgresql/server/storage/buf/buf.h -./include/postgresql/server/storage/item/itemid.h -./include/postgresql/server/storage/lock/pg_sema.h -./include/postgresql/server/storage/item/itemptr.h -./include/postgresql/server/storage/lock/s_lock.h +./include/postgresql/server/storage/buf.h +./include/postgresql/server/storage/itemid.h +./include/postgresql/server/storage/pg_sema.h +./include/postgresql/server/storage/itemptr.h +./include/postgresql/server/storage/s_lock.h ./include/postgresql/server/storage/backendid.h -./include/postgresql/server/storage/lock/lock.h -./include/postgresql/server/storage/lock/lwlock.h +./include/postgresql/server/storage/lock.h +./include/postgresql/server/storage/lwlock.h ./include/postgresql/server/storage/barrier.h ./include/postgresql/server/storage/shmem.h ./include/postgresql/server/pg_config.h @@ -1271,7 +1289,6 @@ ./jre/lib/images/cursors/motif_LinkNoDrop32x32.gif ./jre/lib/images/cursors/motif_MoveDrop32x32.gif ./jre/lib/images/cursors/motif_MoveNoDrop32x32.gif -./jre/lib/javafx-mx.jar ./jre/lib/javafx.properties ./jre/lib/jce.jar ./jre/lib/jexec @@ -1310,8 +1327,8 @@ ./bin/gs_dump ./bin/gs_dumpall ./bin/gs_restore -./bin/gs_basebackup -./bin/gs_probackup +./jdbc/gsjdbc4.jar +./jdbc/gsjdbc200.jar ./lib/postgresql/latin2_and_win1250.so ./lib/postgresql/euc2004_sjis2004.so ./lib/postgresql/euc_kr_and_mic.so @@ -1355,15 +1372,10 @@ ./lib/libpq_ce.so.5 ./lib/libpq_ce.so.5.5 ./lib/libgauss_cl_jni.so -./lib/libconfig.so -./lib/libconfig.so.4 ./lib/libcrypto.so ./lib/libcrypto.so.1.1 -./lib/libstdc++.so.6 ./lib/libssl.so ./lib/libssl.so.1.1 -./lib/libpgport_tool.so -./lib/libpgport_tool.so.1 ./lib/libgssapi_krb5_gauss.so ./lib/libgssapi_krb5_gauss.so.2 ./lib/libgssapi_krb5_gauss.so.2.2 @@ -1382,6 +1394,8 @@ ./lib/libcom_err_gauss.so ./lib/libcom_err_gauss.so.3 ./lib/libcom_err_gauss.so.3.0 +./odbc/lib/psqlodbcw.la +./odbc/lib/psqlodbcw.so [libpq] ./lib/libpq.a ./lib/libpq.so @@ -1395,8 +1409,9 @@ ./lib/libconfig.so.4 ./lib/libcrypto.so ./lib/libcrypto.so.1.1 -./lib/libstdc++.so.6 ./lib/libssl.so +./lib/libcmpq.so +./lib/libcmpq.so.1 ./lib/libssl.so.1.1 ./lib/libpgport_tool.so ./lib/libpgport_tool.so.1 @@ -1418,14 +1433,12 @@ ./lib/libcom_err_gauss.so ./lib/libcom_err_gauss.so.3 ./lib/libcom_err_gauss.so.3.0 -./include/gs_thread.h -./include/gs_threadlocal.h -./include/postgres_ext.h -./include/libpq-fe.h -./include/libpq-events.h -./include/libpq/libpq-fs.h -[version] -V500R002C00 +[cmlibrary] +./lib/libconfig.a +./lib/libcmclient.a +./lib/libcmcommon.a +./lib/libcmpq.a +./lib/libpgport.a [header] ./include/libpq-fe.h ./include/postgres_ext.h @@ -1445,3 +1458,30 @@ V500R002C00 ./include/pqexpbuffer.h ./include/xlogdefs.h ./include/cm-libpq-fe.h +[version] +V500R002C00 +[script] +./script/__init__.py +./script/gs_check +./script/gs_checkos +./script/gs_checkperf +./script/gs_collector +./script/gs_backup +./script/gs_expand +./script/gs_install +./script/gs_om +./script/gs_hotpatch +./script/gs_postuninstall +./script/gs_preinstall +./script/gs_replace +./script/gs_shrink +./script/gs_ssh +./script/gs_sshexkey +./script/gs_uninstall +./script/gs_upgradectl +./script/gs_lcctl +./script/gs_resize +./script/uninstall_force.py +./script/checkRunStatus.py +./script/JsonToDbClustorInfo.py +./script/nodegroup_migrate.sh diff --git a/build/script/package_internal.sh b/build/script/package_internal.sh index 078f88c0f..9a6b3bae9 100755 --- a/build/script/package_internal.sh +++ b/build/script/package_internal.sh @@ -745,7 +745,6 @@ function install_gaussdb() echo "Begin make install MPPDB server" >> "$LOG_FILE" 2>&1 make clean >> "$LOG_FILE" 2>&1 - echo "[makemppdb] $(date +%y-%m-%d' '%T): Begin to make compile." export GAUSSHOME=${BUILD_DIR} export LD_LIBRARY_PATH=${BUILD_DIR}/lib:${BUILD_DIR}/lib/postgresql:${LD_LIBRARY_PATH} make -s -j${MAKE_JOBS} >> "$LOG_FILE" 2>&1 @@ -759,7 +758,6 @@ function install_gaussdb() fi fi fi - echo "[makemppdb] $(date +%y-%m-%d' '%T): Make compile successfully." cd "$ROOT_DIR/contrib/pg_upgrade_support" make clean >> "$LOG_FILE" 2>&1 diff --git a/build/script/separate_debug_information.sh b/build/script/separate_debug_information.sh index 609c8a2e2..3f4e74c44 100644 --- a/build/script/separate_debug_information.sh +++ b/build/script/separate_debug_information.sh @@ -109,7 +109,7 @@ separate_symbol() if [ -x "$x" ]; then if [ "$x" != "install-sh" ]; then objcopy --only-keep-debug "$x" "$INSTALL_DIR/${symbol_name}.symbol" > /dev/null 2>&1 - objcopy --strip-all "$x" "$x"_release + objcopy --strip-debug "$x" "$x"_release rm "$x" mv "$x"_release "$x" objcopy --add-gnu-debuglink="$INSTALL_DIR/${symbol_name}.symbol" "$x" @@ -127,7 +127,7 @@ separate_symbol() fi fi objcopy --only-keep-debug "$x" "$INSTALL_DIR/${symbol_name}.symbol" > /dev/null 2>&1 - objcopy --strip-all "$x" "$x"_release + objcopy --strip-debug "$x" "$x"_release rm "$x" mv "$x"_release "$x" objcopy --add-gnu-debuglink="$INSTALL_DIR/${symbol_name}.symbol" "$x" @@ -141,14 +141,6 @@ separate_symbol() objcopy --add-gnu-debuglink="$INSTALL_DIR/${symbol_name}.symbol" "$x" chmod 755 "$INSTALL_DIR/${symbol_name}.symbol" mv $INSTALL_DIR/${symbol_name}.symbol $CPTODEST - elif [[ "$x" =~ [0-9]$ ]]; then - objcopy --only-keep-debug "$x" "$INSTALL_DIR/${symbol_name}.symbol" > /dev/null 2>&1 - objcopy --strip-all "$x" "$x"_release - rm "$x" - mv "$x"_release "$x" - objcopy --add-gnu-debuglink="$INSTALL_DIR/${symbol_name}.symbol" "$x" - chmod 755 "$INSTALL_DIR/${symbol_name}.symbol" - mv $INSTALL_DIR/${symbol_name}.symbol $CPTODEST fi elif [ -d "$x" ];then separate_symbol "$x" diff --git a/cmake/src/config-in/pg_config_nocheck.h.in b/cmake/src/config-in/pg_config_nocheck.h.in index 8958d3bf9..1417752ad 100755 --- a/cmake/src/config-in/pg_config_nocheck.h.in +++ b/cmake/src/config-in/pg_config_nocheck.h.in @@ -903,5 +903,4 @@ * code using `volatile' can become incorrect without. Disable with care. */ /* #undef volatile */ -#define ENABLE_LLVM_COMPILE 1 diff --git a/cmake/src/set_thirdparty_path.cmake b/cmake/src/set_thirdparty_path.cmake index d5d5bc2a6..a7542e5ea 100755 --- a/cmake/src/set_thirdparty_path.cmake +++ b/cmake/src/set_thirdparty_path.cmake @@ -13,7 +13,7 @@ execute_process(COMMAND sh ${PROJECT_SRC_DIR}/get_PlatForm_str.sh OUTPUT_VARIABL # $(LIB_SUPPORT_LLT) # 2. Huawei_Secure_C, gtest, mockcpp, unixodbc, libstd # and openssl not support parameter --enable-llt and --enable-ut; -# $(LIB_NOT_SUPPORT_LLT) +# $(LIB_UNIFIED_SUPPORT) ############################################################################# set(SUPPORT_LLT "") set(JEMALLOC_SUPPORT_LLT "") @@ -34,7 +34,7 @@ else() set(HOST_TUPLE aarch64-unknown-linux-gnu) endif() -set(LIB_NOT_SUPPORT_LLT comm) +set(LIB_UNIFIED_SUPPORT comm) set(MEMCHECK_BUILD_TYPE debug) set(DEPENDENCY_PATH ${3RD_PATH}/dependency/${PLAT_FORM_STR}) set(PLATFORM_PATH ${3RD_PATH}/platform/${PLAT_FORM_STR}) @@ -43,50 +43,54 @@ set(COMPONENT_PATH ${3RD_PATH}/component/${PLAT_FORM_STR}) set(MEMCHECK_HOME ${DEPENDENCY_PATH}/memcheck/${MEMCHECK_BUILD_TYPE}) set(CJSON_HOME ${DEPENDENCY_PATH}/cjson/${SUPPORT_LLT}) -set(ETCD_HOME ${DEPENDENCY_PATH}/etcd/${LIB_NOT_SUPPORT_LLT}) -set(EVENT_HOME ${DEPENDENCY_PATH}/event/${LIB_NOT_SUPPORT_LLT}) +set(ETCD_HOME ${DEPENDENCY_PATH}/etcd/${LIB_UNIFIED_SUPPORT}) +set(EVENT_HOME ${DEPENDENCY_PATH}/event/${LIB_UNIFIED_SUPPORT}) set(FIO_HOME ${DEPENDENCY_PATH}/fio/${SUPPORT_LLT}) -set(IPERF_HOME ${DEPENDENCY_PATH}/iperf/${LIB_NOT_SUPPORT_LLT}) +set(IPERF_HOME ${DEPENDENCY_PATH}/iperf/${LIB_UNIFIED_SUPPORT}) if("${VERSION_TYPE}" STREQUAL "debug" OR "${VERSION_TYPE}" STREQUAL "memcheck") set(JEMALLOC_HOME ${DEPENDENCY_PATH}/jemalloc/debug${JEMALLOC_SUPPORT_LLT}) else() set(JEMALLOC_HOME ${DEPENDENCY_PATH}/jemalloc/${VERSION_TYPE}${JEMALLOC_SUPPORT_LLT}) endif() set(KERBEROS_HOME ${DEPENDENCY_PATH}/kerberos/${SUPPORT_LLT}) -set(KMC_HOME ${PLATFORM_PATH}/kmc/${LIB_NOT_SUPPORT_LLT}) +set(KMC_HOME ${PLATFORM_PATH}/kmc/${LIB_UNIFIED_SUPPORT}) set(CGROUP_HOME ${DEPENDENCY_PATH}/libcgroup/${SUPPORT_LLT}) set(CURL_HOME ${DEPENDENCY_PATH}/libcurl/${SUPPORT_LLT}) set(EDIT_HOME ${DEPENDENCY_PATH}/libedit/${SUPPORT_LLT}) -set(OBS_HOME ${DEPENDENCY_PATH}/libobs/${LIB_NOT_SUPPORT_LLT}) +set(OBS_HOME ${DEPENDENCY_PATH}/libobs/${LIB_UNIFIED_SUPPORT}) set(ORC_HOME ${DEPENDENCY_PATH}/liborc/${SUPPORT_LLT}) set(PARQUET_HOME ${DEPENDENCY_PATH}/libparquet/${SUPPORT_LLT}) set(XML2_HOME ${DEPENDENCY_PATH}/libxml2/${SUPPORT_LLT}) -set(LLVM_HOME ${DEPENDENCY_PATH}/llvm/${LIB_NOT_SUPPORT_LLT}) +set(LLVM_HOME ${DEPENDENCY_PATH}/llvm/${LIB_UNIFIED_SUPPORT}) set(LZ4_HOME ${DEPENDENCY_PATH}/lz4/${SUPPORT_LLT}) -set(NANOMSG_HOME ${DEPENDENCY_PATH}/nanomsg/${LIB_NOT_SUPPORT_LLT}) +set(NANOMSG_HOME ${DEPENDENCY_PATH}/nanomsg/${LIB_UNIFIED_SUPPORT}) set(NCURSES_HOME ${DEPENDENCY_PATH}/ncurses/${SUPPORT_LLT}) -set(OPENSSL_HOME ${DEPENDENCY_PATH}/openssl/${LIB_NOT_SUPPORT_LLT}) -set(PLJAVA_HOME ${DEPENDENCY_PATH}/pljava/${LIB_NOT_SUPPORT_LLT}) -set(JAVA_HOME ${3RD_PATH}/platform/openjdk8/${BUILD_TUPLE}/jdk) +set(OPENSSL_HOME ${DEPENDENCY_PATH}/openssl/${LIB_UNIFIED_SUPPORT}) +set(PLJAVA_HOME ${DEPENDENCY_PATH}/pljava/${LIB_UNIFIED_SUPPORT}) +if (EXISTS "${3RD_PATH}/platform/openjdk8/${BUILD_TUPLE}/jdk") + set(JAVA_HOME ${3RD_PATH}/platform/openjdk8/${BUILD_TUPLE}/jdk) +else() + set(JAVA_HOME ${3RD_PATH}/platform/huaweijdk8/${BUILD_TUPLE}/jdk) +endif() set(PROTOBUF_HOME ${DEPENDENCY_PATH}/protobuf/${SUPPORT_LLT}) set(THRIFT_HOME ${DEPENDENCY_PATH}/thrift) -set(SNAPPY_HOME ${DEPENDENCY_PATH}/snappy/${SUPPORT_LLT}) +set(SNAPPY_HOME ${DEPENDENCY_PATH}/snappy/${LIB_UNIFIED_SUPPORT}) set(ZLIB_HOME ${DEPENDENCY_PATH}/zlib1.2.11/${SUPPORT_LLT}) set(ZSTD_HOME ${DEPENDENCY_PATH}/zstd) set(LICENSE_HOME ${PLATFORM_PATH}/AdaptiveLM_C_V100R005C01SPC002/${SUPPORT_LLT}) set(HOTPATCH_HOME ${PLATFORM_PATH}/hotpatch) -set(SECURE_HOME ${PLATFORM_PATH}/Huawei_Secure_C/${LIB_NOT_SUPPORT_LLT}) +set(SECURE_HOME ${PLATFORM_PATH}/Huawei_Secure_C/${LIB_UNIFIED_SUPPORT}) set(DCF_HOME ${COMPONENT_PATH}/dcf) -set(MOCKCPP_HOME ${BUILDTOOLS_PATH}/mockcpp/${LIB_NOT_SUPPORT_LLT}) -set(GTEST_HOME ${BUILDTOOLS_PATH}/gtest/${LIB_NOT_SUPPORT_LLT}) -set(LIBSTD_HOME ${BUILDTOOLS_PATH}/gcc${GCC_VERSION_LIT}/${LIB_NOT_SUPPORT_LLT}) -set(MASSTREE_HOME ${BUILDTOOLS_PATH}/masstree/${LIB_NOT_SUPPORT_LLT}) +set(MOCKCPP_HOME ${BUILDTOOLS_PATH}/mockcpp/${LIB_UNIFIED_SUPPORT}) +set(GTEST_HOME ${BUILDTOOLS_PATH}/gtest/${LIB_UNIFIED_SUPPORT}) +set(LIBSTD_HOME ${BUILDTOOLS_PATH}/gcc${GCC_VERSION_LIT}/${LIB_UNIFIED_SUPPORT}) +set(MASSTREE_HOME ${BUILDTOOLS_PATH}/masstree/${LIB_UNIFIED_SUPPORT}) set(NUMA_HOME ${DEPENDENCY_PATH}/numactl/${SUPPORT_LLT}) set(ARROW_HOME ${DEPENDENCY_PATH}/libparquet/${SUPPORT_LLT}) set(BOOST_HOME ${DEPENDENCY_PATH}/boost/${SUPPORT_LLT}) set(ODBC_HOME ${3RD_PATH}/dependency/${PLAT_FORM_STR}/unixodbc) -set(MASSTREE_HOME ${DEPENDENCY_PATH}/masstree/${LIB_NOT_SUPPORT_LLT}) +set(MASSTREE_HOME ${DEPENDENCY_PATH}/masstree/${LIB_UNIFIED_SUPPORT}) set(LCOV_HOME ${BUILDTOOLS_PATH}/gcc${GCC_VERSION_LIT}/gcc/lib/gcc/${HOST_TUPLE}) ############################################################################# @@ -251,15 +255,6 @@ set(LIBOPENSSL_INCLUDE_PATH ${OPENSSL_HOME}/include) ############################################################################# set(PROTOBUF_INCLUDE_PATH ${PROTOBUF_HOME}/include) set(PROTOBUF_LIB_PATH ${PROTOBUF_HOME}/lib) -if(${ENABLE_LLT} STREQUAL "ON") - set(PROTOBUF_LIB_NAME protobuf_pic) -else() - if("${ENABLE_UT}" STREQUAL "ON") - set(PROTOBUF_LIB_NAME protobuf_pic) - else() - set(PROTOBUF_LIB_NAME protobuf) - endif() -endif() ############################################################################# # thrift component @@ -273,15 +268,6 @@ set(LIBTHRIFT_BIN_PATH ${THRIFT_HOME}/bin) ############################################################################# set(SNAPPY_INCLUDE_PATH ${SNAPPY_HOME}/include) set(SNAPPY_LIB_PATH ${SNAPPY_HOME}/lib) -if(${ENABLE_LLT} STREQUAL "ON") - set(SNAPPY_LIB_NAME snappy_pic) -else() - if("${ENABLE_UT}" STREQUAL "ON") - set(SNAPPY_LIB_NAME snappy_pic) - else() - set(SNAPPY_LIB_NAME snappy) - endif() -endif() ############################################################################# # zlib component diff --git a/configure b/configure index 43ff92189..204874311 100755 --- a/configure +++ b/configure @@ -6529,7 +6529,26 @@ fi with_jdk='' if [ ! -z "${with_3rdpartydir}" ]; then platstr=$(sh src/get_PlatForm_str.sh) + cpuarch=$(uname -m) for d in "openjdk8" "huaweijdk8"; do + $as_echo "$as_me:$LINENO: checking for jdk in ${with_3rdpartydir}/platform/${d}/${cpuarch}" >&5 + if [ ! -d "${with_3rdpartydir}/platform/${d}/${cpuarch}" ]; then + $as_echo "$as_me:$LINENO: result: no" >&5 + continue + fi + + for d2 in $(ls "${with_3rdpartydir}/platform/${d}/${cpuarch}" | sort -r 2>/dev/null); do + if [ -f "${with_3rdpartydir}/platform/${d}/${cpuarch}/${d2}/jre/bin/java" ]; then + with_jdk="${with_3rdpartydir}/platform/${d}/${cpuarch}/${d2}" + break; + fi + done + + if [ ! -z "$with_jdk" ]; then + $as_echo "$as_me:$LINENO: result: yes" >&5 + break; + fi + $as_echo "$as_me:$LINENO: checking for jdk in ${with_3rdpartydir}/platform/${platstr}/${d}" >&5 if [ ! -d "${with_3rdpartydir}/platform/${platstr}/${d}" ]; then $as_echo "$as_me:$LINENO: result: no" >&5 diff --git a/contrib/.gitignore b/contrib/.gitignore index 46a41382d..41a8dca28 100644 --- a/contrib/.gitignore +++ b/contrib/.gitignore @@ -21,3 +21,6 @@ /pg_xlogdump/xlogdesc.cpp /pg_xlogdump/xlogreader.cpp /pg_xlogdump/xlogreader_common.cpp +/pg_xlogdump/segpagedesc.cpp +/pg_xlogdump/uheapdesc.cpp +/pg_xlogdump/undologdesc.cpp diff --git a/contrib/file_fdw/file_fdw.cpp b/contrib/file_fdw/file_fdw.cpp index 4b4875a8c..2afb4cd30 100644 --- a/contrib/file_fdw/file_fdw.cpp +++ b/contrib/file_fdw/file_fdw.cpp @@ -192,9 +192,8 @@ Datum file_fdw_validator(PG_FUNCTION_ARGS) * security hole. */ if (catalog == ForeignTableRelationId && !superuser()) - ereport(ERROR, - (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), - errmsg("only superuser can change options of a file_fdw foreign table"))); + ereport(ERROR, (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), + errmsg("only superuser can change options of a file_fdw foreign table"))); /* * Check that only options supported by file_fdw, and allowed for the @@ -242,7 +241,8 @@ Datum file_fdw_validator(PG_FUNCTION_ARGS) } else if (strcmp(def->defname, "format") == 0) { char* fmt = defGetString(def); if (strcasecmp(fmt, "fixed") == 0) { - ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("file_fdw doesn't support fixed option in format"))); + ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("file_fdw doesn't support fixed option in format"))); } other_options = lappend(other_options, def); } else { diff --git a/contrib/file_fdw/input/file_fdw.source b/contrib/file_fdw/input/file_fdw.source index cad8ef853..a4fa9c784 100644 --- a/contrib/file_fdw/input/file_fdw.source +++ b/contrib/file_fdw/input/file_fdw.source @@ -57,7 +57,18 @@ CREATE FOREIGN TABLE tbl (a int) SERVER file_server OPTIONS (format 'csv', delim CREATE FOREIGN TABLE tbl (a int) SERVER file_server OPTIONS (format 'csv', null ' '); -- ERROR CREATE FOREIGN TABLE tbl (a int) SERVER file_server; -- ERROR - +CREATE FOREIGN TABLE tbl (a int2,b float4) SERVER file_server OPTIONS (format 'text', filename '', delimiter ' ', null '\n'); -- SUCCESS +DROP FOREIGN TABLE tbl; +CREATE FOREIGN TABLE tbl (id int) SERVER file_server OPTIONS (filename '', format 'text'); -- SUCCESS +DROP FOREIGN TABLE tbl; +CREATE FOREIGN TABLE tbl (id int) SERVER file_server OPTIONS (filename '', format 'binary'); -- SUCCESS +DROP FOREIGN TABLE tbl; +CREATE FOREIGN TABLE tbl (id int) SERVER file_server OPTIONS (filename '', format 'csv'); -- SUCCESS +DROP FOREIGN TABLE tbl; +CREATE FOREIGN TABLE tbl (id int) SERVER file_server OPTIONS (filename '',format 'text', header 'false'); -- SUCCESS +DROP FOREIGN TABLE tbl; +CREATE FOREIGN TABLE tbl (id int) SERVER file_server OPTIONS (filename '',format 'binary', header 'off'); -- SUCCESS +DROP FOREIGN TABLE tbl; CREATE FOREIGN TABLE agg_text ( a int2, b float4 diff --git a/contrib/file_fdw/output/file_fdw.source b/contrib/file_fdw/output/file_fdw.source index 233aa8d83..dda664221 100644 --- a/contrib/file_fdw/output/file_fdw.source +++ b/contrib/file_fdw/output/file_fdw.source @@ -75,6 +75,18 @@ CREATE FOREIGN TABLE tbl (a int) SERVER file_server OPTIONS (format 'csv', null ERROR: COPY null representation cannot use newline or carriage return CREATE FOREIGN TABLE tbl (a int) SERVER file_server; -- ERROR ERROR: filename is required for file_fdw foreign tables +CREATE FOREIGN TABLE tbl (a int2,b float4) SERVER file_server OPTIONS (format 'text', filename '', delimiter ' ', null '\n'); -- SUCCESS +DROP FOREIGN TABLE tbl; +CREATE FOREIGN TABLE tbl (id int) SERVER file_server OPTIONS (filename '', format 'text'); -- SUCCESS +DROP FOREIGN TABLE tbl; +CREATE FOREIGN TABLE tbl (id int) SERVER file_server OPTIONS (filename '', format 'binary'); -- SUCCESS +DROP FOREIGN TABLE tbl; +CREATE FOREIGN TABLE tbl (id int) SERVER file_server OPTIONS (filename '', format 'csv'); -- SUCCESS +DROP FOREIGN TABLE tbl; +CREATE FOREIGN TABLE tbl (id int) SERVER file_server OPTIONS (filename '',format 'text', header 'false'); -- SUCCESS +DROP FOREIGN TABLE tbl; +CREATE FOREIGN TABLE tbl (id int) SERVER file_server OPTIONS (filename '',format 'binary', header 'off'); -- SUCCESS +DROP FOREIGN TABLE tbl; CREATE FOREIGN TABLE agg_text ( a int2, b float4 diff --git a/contrib/hdfs_fdw/scheduler.cpp b/contrib/hdfs_fdw/scheduler.cpp index 86f2480c3..a3208f291 100644 --- a/contrib/hdfs_fdw/scheduler.cpp +++ b/contrib/hdfs_fdw/scheduler.cpp @@ -1676,7 +1676,7 @@ static List* GetAllFiles( delete (conn); conn = NULL; ereport(ERROR, - (errcode(ERRCODE_FDW_INVALID_OPTOIN_DATA), + (errcode(ERRCODE_FDW_INVALID_OPTION_DATA), errmodule(MOD_HDFS), errmsg("The foldername option cannot be a file path."))); } @@ -1691,7 +1691,7 @@ static List* GetAllFiles( delete (conn); conn = NULL; ereport(ERROR, - (errcode(ERRCODE_FDW_INVALID_OPTOIN_DATA), + (errcode(ERRCODE_FDW_INVALID_OPTION_DATA), errmodule(MOD_HDFS), errmsg("The entries in the options fileNames must be file!"))); } @@ -1770,7 +1770,7 @@ static List* GetHdfsAllFiles(dfs::DFSConnector* conn, Oid foreignTableId, List* delete (conn); conn = NULL; ereport(ERROR, - (errcode(ERRCODE_FDW_INVALID_OPTOIN_DATA), + (errcode(ERRCODE_FDW_INVALID_OPTION_DATA), errmodule(MOD_HDFS), errmsg("The foldername option cannot be a file path."))); } @@ -1785,7 +1785,7 @@ static List* GetHdfsAllFiles(dfs::DFSConnector* conn, Oid foreignTableId, List* delete (conn); conn = NULL; ereport(ERROR, - (errcode(ERRCODE_FDW_INVALID_OPTOIN_DATA), + (errcode(ERRCODE_FDW_INVALID_OPTION_DATA), errmodule(MOD_HDFS), errmsg("The entries in the options fileNames must be file!"))); } @@ -2203,7 +2203,7 @@ static bool PartitionFilterClause(SplitInfo* split, List* scanClauses, Var* valu partValue = strchr(fileName, '='); if (NULL == partValue) { ereport(ERROR, - (errcode(ERRCODE_FDW_INVALID_OPTOIN_DATA), + (errcode(ERRCODE_FDW_INVALID_OPTION_DATA), errmodule(MOD_HDFS), errmsg("Something wrong with the partition directory name of file %s.", split->filePath))); } diff --git a/contrib/pagehack/Makefile b/contrib/pagehack/Makefile index fe8eca407..9377b9aa9 100644 --- a/contrib/pagehack/Makefile +++ b/contrib/pagehack/Makefile @@ -13,7 +13,7 @@ else subdir = contrib/pagehack top_builddir = ../.. include $(top_builddir)/src/Makefile.global -override CFLAGS += -lzstd +enable_shared = false ifeq ($(enable_debug), yes) PG_CPPFLAGS += -DDEBUG diff --git a/contrib/pagehack/compression_algorithm.ini b/contrib/pagehack/compression_algorithm.ini index 16761f42b..fa618a3df 100644 --- a/contrib/pagehack/compression_algorithm.ini +++ b/contrib/pagehack/compression_algorithm.ini @@ -1,1308 +1,1460 @@ -size_t GetSizeOfHeadData(bool heapPageData) -{ - if (heapPageData) { - return SizeOfHeapPageHeaderData; - } else { - return SizeOfPageHeaderData; - } -} - -// maybe some itemid is not valid -uint16 HeapPageCalcRealRowCnt (char *buf) { - HeapPageHeaderData *page = (HeapPageHeaderData *)buf; - uint16 cnt = 0; - uint16 i; - uint16 row_cnt = (page->pd_lower - GetPageHeaderSize(page)) / sizeof(ItemIdData); - - for (i = 0; i < row_cnt; i++) { - if (ItemIdIsNormal(GET_ITEMID_BY_IDX(buf, i))) { - cnt++; - } - } - return cnt; -} - -void DecompressDeconvertRows(char *buf, char *aux_buf, int16 *real_order, uint16 max_row_len, uint16 real_row_cnt) { - errno_t ret; - HeapPageHeaderData *page = (HeapPageHeaderData *)buf; - uint16 row_cnt = real_row_cnt; - uint32 total_size = page->pd_special - page->pd_upper; - char *copy_begin = buf + page->pd_upper; - char *row; - uint16 i, j, k, cur, up, row_size; - - ret = memset_sp(aux_buf, BLCKSZ, 0, BLCKSZ); - securec_check(ret, "", ""); - - k = 0; - for (i = 0; i < max_row_len; i++) { - for (j = 0; j < row_cnt; j++) { - up = (j == (row_cnt - 1)) ? page->pd_special : GET_ITEMID_BY_IDX(buf, (real_order[j + 1]))->lp_off; - cur = GET_ITEMID_BY_IDX(buf, (real_order[j]))->lp_off; - row_size = up - cur; - row = aux_buf + cur; - if (i < row_size) { - row[i] = copy_begin[k++]; // this part is reshaped - } - } - } - - if (k != total_size) { - printf("ERROR!!! pg_deconvert_rows error...!!!\n"); - ASSERT(0); - return; - } - - // cp aux_buf to page_buf - ret = memcpy_sp(copy_begin, total_size, aux_buf + page->pd_upper, total_size); - securec_check(ret, "", ""); - return ; -} - -// 1: as tuple_offset order, that means asc order. -// 2: store all itemid's idx. -// 3:maybe some itemid is not in order. -void CompressConvertItemRealOrder(char *buf, int16 *real_order, uint16 real_row_cnt) { - HeapPageHeaderData *page = (HeapPageHeaderData *)buf; - uint16 row_cnt = (page->pd_lower - GetPageHeaderSize(page)) / sizeof(ItemIdData); - ItemIdData *begin = (ItemIdData *)(buf + GetPageHeaderSize(page)); - int16 *link_order = real_order + real_row_cnt; - - int16 i, head, curr, prev; - int16 end = -1; // invalid index - - head = end; - // very likely to seems that itemids stored by desc order, and ignore invalid itemid - for (i = 0; i < row_cnt; i++) { - if (!ItemIdIsNormal(begin + i)) { - continue; - } - - if (head == end) { // set the head idx, insert the first - link_order[i] = end; - head = i; - continue; - } - - if ((begin + i)->lp_off < (begin + head)->lp_off) { - link_order[i] = head; // update the head idx - head = i; - continue; - } - - prev = head; - curr = link_order[head]; - while ((curr != end) && ((begin + i)->lp_off > (begin + curr)->lp_off)) { - prev = curr; - curr = link_order[curr]; - } - - link_order[prev] = i; - link_order[i] = curr; - } - - // arrange the link to array - curr = head; - for (i = 0; i < real_row_cnt; i++) { - real_order[i] = curr; - curr = link_order[curr]; - } - - if (curr != end) { - printf("ERROR!!! pre_convert_real_order error...!!!\n"); - ASSERT(0); - return; - } - -} - -int DecompressPage(const char* src, char* dst, uint8 algorithm) -{ - if (PageIs8BXidHeapVersion(src)) { - return TemplateDecompressPage(src, dst, algorithm); - } else { - return TemplateDecompressPage(src, dst, algorithm); - } -} - -void cprs_diff_deconvert_rows(char *buf, uint32 offset, uint16 min_row_len, uint16 real_row_cnt) { - uint16 row_cnt = real_row_cnt; - uint32 common_size = min_row_len; - uint8 *copy_begin = (uint8 *)(buf + offset); - uint16 i, j; - - for (i = 0; i < common_size; i++) { - for (j = 1; j < row_cnt; j++) { - copy_begin[i * row_cnt + j] += copy_begin[i * row_cnt + (j - 1)]; - } - } - return ; -} - -// to find all row size are diffs in MIN_DIFF_SIZE byts. -bool CompressConvertCheck(char *buf, int16 **real_order, uint16 *max_row_len, uint16 *min_row_len, uint16 *real_row_cnt) { - HeapPageHeaderData *page = (HeapPageHeaderData *)buf; - uint16 row_cnt = (page->pd_lower - GetPageHeaderSize(page)) / sizeof(ItemIdData); - int16 i, row_size; - ItemIdData *ptr = NULL; - uint16 up = page->pd_special; - uint16 min_size = GS_INVALID_ID16; - uint16 max_size = 0; - errno_t ret; - if (page->pd_lower < GetPageHeaderSize(page) || (page->pd_lower > page->pd_upper)) { - return false; - } - - uint16 normal_row_cnt = HeapPageCalcRealRowCnt(buf); - if (normal_row_cnt < MIN_CONVERT_CNT) { // no need convert - return false; - } - - // to store the real tuple order. - /* - --------------------------|-------------------------- - xxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxx - --------------------------|-------------------------- - */ - // the first part is real array order, and the second part is link. - *real_order = (int16 *)malloc(sizeof(uint16) * row_cnt * 2); - if (*real_order == NULL) { - printf("zfunc compress file"); - return false; - } - ret = memset_sp(*real_order, sizeof(uint16) * row_cnt * 2, 0, sizeof(uint16) * row_cnt * 2); - securec_check(ret, "", ""); - - // order the ItemIds by tuple_offset order. - CompressConvertItemRealOrder(buf, *real_order, normal_row_cnt); - - // do the check, to check all size of tuples. - for (i = normal_row_cnt - 1; i >= 0; i--) { - ptr = GET_ITEMID_BY_IDX(buf, ((*real_order)[i])); - - row_size = up - ptr->lp_off; - if (row_size < MIN_CONVERT_CNT * 2) { - return false; - } - - min_size = (row_size < min_size) ? row_size : min_size; - max_size = (row_size > max_size) ? row_size : max_size; - - if ((max_size - min_size) > MIN_DIFF_SIZE) { // no need convert - return false; - } - up = ptr->lp_off; - } - - // get the min row common size. - *max_row_len = max_size; - *min_row_len = min_size; - *real_row_cnt = normal_row_cnt; - return true; -} - -void DecompressDeconvertItemIds(char *buf, char *aux_buf) { - errno_t ret; - HeapPageHeaderData *page = (HeapPageHeaderData *)buf; - uint16 row_cnt = (page->pd_lower - GetPageHeaderSize(page)) / sizeof(ItemIdData); - uint32 total_size = row_cnt * sizeof(ItemIdData); - char *copy_begin = buf + GetPageHeaderSize(page); - uint16 i, j, k; - - // clear aux_buf - ret = memset_sp(aux_buf, BLCKSZ, 0, BLCKSZ); - securec_check(ret, "", ""); - - k = 0; - for (i = 0; i < sizeof(ItemIdData); i++) { - for (j = 0; j < row_cnt; j++) { - aux_buf[j * sizeof(ItemIdData) + i] = copy_begin[k++]; - } - } - - // cp aux_buf to page_buf - ret = memcpy_sp(copy_begin, total_size, aux_buf, total_size); - securec_check(ret, "", ""); - return ; -} - - -void DecompressDeconvertOnePage(char *buf, char *aux_buf, bool diff_convert) { - uint16 max_row_len = 0; - uint16 min_row_len = 0; - int16 *real_order = NULL; // itemids are not in order sometimes. we must find the real - uint16 real_row_cnt = 0; - - if (diff_convert) { - cprs_diff_deconvert_rows(buf, GetPageHeaderSize(buf), sizeof(ItemIdData), - (((HeapPageHeaderData *)buf)->pd_lower - GetPageHeaderSize(buf)) / sizeof(ItemIdData)); - } - - // =======firstly, arrange the itemids. - DecompressDeconvertItemIds(buf, aux_buf); - - if (!CompressConvertCheck(buf, &real_order, &max_row_len, &min_row_len, &real_row_cnt)) { - if (real_order != NULL) { - free(real_order); - } - ASSERT(0); - return ; - } - - // =======and last, the tuples - if (diff_convert) { - cprs_diff_deconvert_rows(buf, ((HeapPageHeaderData *)buf)->pd_upper, min_row_len, real_row_cnt); - } - DecompressDeconvertRows(buf, aux_buf, real_order, max_row_len, real_row_cnt); - - if (real_order != NULL) { - free(real_order); - } - return ; -} - - -void DecompressPageDeconvert(char *src, bool diff_convert) -{ - char *aux_buf = NULL; - errno_t rc; - - aux_buf = (char *)malloc(BLCKSZ); - if (aux_buf == NULL) { - // add log - return; - } - rc = memset_s(aux_buf, BLCKSZ, 0, BLCKSZ); - securec_check(rc, "", ""); - - // do convert - DecompressDeconvertOnePage(src, aux_buf, diff_convert); - - if (aux_buf != NULL) { - free(aux_buf); - } -} - - -/** - * DecompressPage() -- Decompress one compressed page. - * return size of decompressed page which should be BLCKSZ or - * -1 for decompress error - * -2 for unrecognized compression algorithm - * - * note:The size of dst must be greater than or equal to BLCKSZ. - */ -template -int TemplateDecompressPage(const char* src, char* dst, uint8 algorithm) -{ - int decompressed_size; - char* data; - uint32 size; - bool byte_convert, diff_convert; - size_t sizeOfPageHeaderData = GetSizeOfHeadData(heapPageData); - int rc = memcpy_s(dst, sizeOfPageHeaderData, src, sizeOfPageHeaderData); - securec_check(rc, "", ""); - - if (heapPageData) { - data = ((HeapPageCompressData*) src)->data; - size = ((HeapPageCompressData*) src)->size; - byte_convert = ((HeapPageCompressData*) src)->byte_convert; - diff_convert = ((HeapPageCompressData*) src)->diff_convert; - } else { - data = ((PageCompressData*) src)->data; - size = ((PageCompressData*) src)->size; - byte_convert = ((PageCompressData*) src)->byte_convert; - diff_convert = ((PageCompressData*) src)->diff_convert; - } - - switch (algorithm) { - case COMPRESS_ALGORITHM_PGLZ: - decompressed_size = lz_decompress( - data, size, dst + sizeOfPageHeaderData, BLCKSZ - sizeOfPageHeaderData, false); - break; - case COMPRESS_ALGORITHM_ZSTD: - decompressed_size = - ZSTD_decompress(dst + sizeOfPageHeaderData, BLCKSZ - sizeOfPageHeaderData, data, size); - - if (ZSTD_isError(decompressed_size)) { - return -1; - } - - break; - - default: - return COMPRESS_UNSUPPORTED_ERROR; - break; - } - - if (byte_convert) { - // deconvert dst - DecompressPageDeconvert(dst, diff_convert); - } - - return sizeOfPageHeaderData + decompressed_size; -} - -// pg_lz -/* ---------- - * pg_lzcompress.c - - * - * This is an implementation of LZ compression for PostgreSQL. - * It uses a simple history table and generates 2-3 byte tags - * capable of backward copy information for 3-273 bytes with - * a max offset of 4095. - * - * Entry routines: - * - * bool - * pglz_compress(const char *source, int32 slen, PGLZ_Header *dest, - * const PGLZ_Strategy *strategy); - * - * source is the input data to be compressed. - * - * slen is the length of the input data. - * - * dest is the output area for the compressed result. - * It must be at least as big as PGLZ_MAX_OUTPUT(slen). - * - * strategy is a pointer to some information controlling - * the compression algorithm. If NULL, the compiled - * in default strategy is used. - * - * The return value is TRUE if compression succeeded, - * FALSE if not; in the latter case the contents of dest - * are undefined. - * - * void - * pglz_decompress(const PGLZ_Header *source, char *dest) - * - * source is the compressed input. - * - * dest is the area where the uncompressed data will be - * written to. It is the callers responsibility to - * provide enough space. The required amount can be - * obtained with the macro PGLZ_RAW_SIZE(source). - * - * The data is written to buff exactly as it was handed - * to pglz_compress(). No terminating zero byte is added. - * - * The decompression algorithm and internal data format: - * - * PGLZ_Header is defined as - * - * typedef struct PGLZ_Header { - * int32 vl_len_; - * int32 rawsize; - * } - * - * The header is followed by the compressed data itself. - * - * The data representation is easiest explained by describing - * the process of decompression. - * - * If VARSIZE(x) == rawsize + sizeof(PGLZ_Header), then the data - * is stored uncompressed as plain bytes. Thus, the decompressor - * simply copies rawsize bytes from the location after the - * header to the destination. - * - * Otherwise the first byte after the header tells what to do - * the next 8 times. We call this the control byte. - * - * An unset bit in the control byte means, that one uncompressed - * byte follows, which is copied from input to output. - * - * A set bit in the control byte means, that a tag of 2-3 bytes - * follows. A tag contains information to copy some bytes, that - * are already in the output buffer, to the current location in - * the output. Let's call the three tag bytes T1, T2 and T3. The - * position of the data to copy is coded as an offset from the - * actual output position. - * - * The offset is in the upper nibble of T1 and in T2. - * The length is in the lower nibble of T1. - * - * So the 16 bits of a 2 byte tag are coded as - * - * 7---T1--0 7---T2--0 - * OOOO LLLL OOOO OOOO - * - * This limits the offset to 1-4095 (12 bits) and the length - * to 3-18 (4 bits) because 3 is always added to it. To emit - * a tag of 2 bytes with a length of 2 only saves one control - * bit. But we lose one byte in the possible length of a tag. - * - * In the actual implementation, the 2 byte tag's length is - * limited to 3-17, because the value 0xF in the length nibble - * has special meaning. It means, that the next following - * byte (T3) has to be added to the length value of 18. That - * makes total limits of 1-4095 for offset and 3-273 for length. - * - * Now that we have successfully decoded a tag. We simply copy - * the output that occurred bytes back to the current - * output location in the specified . Thus, a - * sequence of 200 spaces (think about bpchar fields) could be - * coded in 4 bytes. One literal space and a three byte tag to - * copy 199 bytes with a -1 offset. Whow - that's a compression - * rate of 98%! Well, the implementation needs to save the - * original data size too, so we need another 4 bytes for it - * and end up with a total compression rate of 96%, what's still - * worth a Whow. - * - * The compression algorithm - * - * The following uses numbers used in the default strategy. - * - * The compressor works best for attributes of a size between - * 1K and 1M. For smaller items there's not that much chance of - * redundancy in the character sequence (except for large areas - * of identical bytes like trailing spaces) and for bigger ones - * our 4K maximum look-back distance is too small. - * - * The compressor creates a table for 8192 lists of positions. - * For each input position (except the last 3), a hash key is - * built from the 4 next input bytes and the position remembered - * in the appropriate list. Thus, the table points to linked - * lists of likely to be at least in the first 4 characters - * matching strings. This is done on the fly while the input - * is compressed into the output area. Table entries are only - * kept for the last 4096 input positions, since we cannot use - * back-pointers larger than that anyway. - * - * For each byte in the input, it's hash key (built from this - * byte and the next 3) is used to find the appropriate list - * in the table. The lists remember the positions of all bytes - * that had the same hash key in the past in increasing backward - * offset order. Now for all entries in the used lists, the - * match length is computed by comparing the characters from the - * entries position with the characters from the actual input - * position. - * - * The compressor starts with a so called "good_match" of 128. - * It is a "prefer speed against compression ratio" optimizer. - * So if the first entry looked at already has 128 or more - * matching characters, the lookup stops and that position is - * used for the next tag in the output. - * - * For each subsequent entry in the history list, the "good_match" - * is lowered by 10%. So the compressor will be more happy with - * short matches the farer it has to go back in the history. - * Another "speed against ratio" preference characteristic of - * the algorithm. - * - * Thus there are 3 stop conditions for the lookup of matches: - * - * - a match >= good_match is found - * - there are no more history entries to look at - * - the next history entry is already too far back - * to be coded into a tag. - * - * Finally the match algorithm checks that at least a match - * of 3 or more bytes has been found, because thats the smallest - * amount of copy information to code into a tag. If so, a tag - * is omitted and all the input bytes covered by that are just - * scanned for the history add's, otherwise a literal character - * is omitted and only his history entry added. - * - * Acknowledgements: - * - * Many thanks to Adisak Pochanayon, who's article about SLZ - * inspired me to write the PostgreSQL compression this way. - * - * Jan Wieck - * - * Copyright (c) 1999-2012, PostgreSQL Global Development Group - * - * src/backend/utils/adt/pg_lzcompress.c - * ---------- - */ -#include "postgres.h" -#include "knl/knl_variable.h" - -#include - -#include "utils/pg_lzcompress.h" - -/* ---------- - * The provided standard strategies - * ---------- - */ -static const PGLZ_Strategy strategy_default_data = { - 32, /* Data chunks less than 32 bytes are not - * compressed */ - INT_MAX, /* No upper limit on what we'll try to - * compress */ - 25, /* Require 25% compression rate, or not worth - * it */ - 1024, /* Give up if no compression in the first 1KB */ - 128, /* Stop history lookup if a match of 128 bytes - * is found */ - 10 /* Lower good match size by 10% at every loop - * iteration */ -}; -const PGLZ_Strategy* const PGLZ_strategy_default = &strategy_default_data; - -static const PGLZ_Strategy strategy_always_data = { - 0, /* Chunks of any size are compressed */ - INT_MAX, - 0, /* It's enough to save one single byte */ - INT_MAX, /* Never give up early */ - 128, /* Stop history lookup if a match of 128 bytes - * is found */ - 6 /* Look harder for a good match */ -}; -const PGLZ_Strategy* const PGLZ_strategy_always = &strategy_always_data; - -/* ---------- - * pglz_hist_idx - - * - * Computes the history table slot for the lookup by the next 4 - * characters in the input. - * - * NB: because we use the next 4 characters, we are not guaranteed to - * find 3-character matches; they very possibly will be in the wrong - * hash list. This seems an acceptable tradeoff for spreading out the - * hash keys more. - * ---------- - */ -#define pglz_hist_idx(_s, _e) \ - (((((_e) - (_s)) < 4) ? (int)(_s)[0] \ - : (((unsigned char)((_s)[0]) << 9) ^ ((unsigned char)((_s)[1]) << 6) ^ \ - ((unsigned char)((_s)[2]) << 3) ^ (unsigned char)((_s)[3]))) & \ - (PGLZ_HISTORY_MASK)) - -/* ---------- - * pglz_hist_add - - * - * Adds a new entry to the history table. - * - * If _recycle is true, then we are recycling a previously used entry, - * and must first delink it from its old hashcode's linked list. - * - * NOTE: beware of multiple evaluations of macro's arguments, and note that - * _hn and _recycle are modified in the macro. - * ---------- - */ -#define pglz_hist_add(_hs, _he, _hn, _recycle, _s, _e) \ - do { \ - int __hindex = pglz_hist_idx((_s), (_e)); \ - PGLZ_HistEntry** __myhsp = &(_hs)[__hindex]; \ - PGLZ_HistEntry* __myhe = &(_he)[_hn]; \ - if (_recycle) { \ - if (__myhe->prev == NULL) \ - (_hs)[__myhe->hindex] = __myhe->next; \ - else \ - __myhe->prev->next = __myhe->next; \ - if (__myhe->next != NULL) \ - __myhe->next->prev = __myhe->prev; \ - } \ - __myhe->next = *__myhsp; \ - __myhe->prev = NULL; \ - __myhe->hindex = __hindex; \ - __myhe->pos = (_s); \ - if (*__myhsp != NULL) \ - (*__myhsp)->prev = __myhe; \ - *__myhsp = __myhe; \ - if (++(_hn) >= PGLZ_HISTORY_SIZE) { \ - (_hn) = 0; \ - (_recycle) = true; \ - } \ - } while (0) - -/* ---------- - * pglz_out_ctrl - - * - * Outputs the last and allocates a new control byte if needed. - * ---------- - */ -#define pglz_out_ctrl(__ctrlp, __ctrlb, __ctrl, __buf) \ - do { \ - if ((((unsigned char)(__ctrl)) & 0xff) == 0) { \ - *(__ctrlp) = __ctrlb; \ - __ctrlp = (__buf)++; \ - __ctrlb = 0; \ - __ctrl = 1; \ - } \ - } while (0) - -/* ---------- - * pglz_out_literal - - * - * Outputs a literal byte to the destination buffer including the - * appropriate control bit. - * ---------- - */ -#define pglz_out_literal(_ctrlp, _ctrlb, _ctrl, _buf, _byte) \ - do { \ - pglz_out_ctrl(_ctrlp, _ctrlb, _ctrl, _buf); \ - *(_buf)++ = (unsigned char)(_byte); \ - (_ctrl) <<= 1; \ - } while (0) - -/* ---------- - * pglz_out_tag - - * - * Outputs a backward reference tag of 2-4 bytes (depending on - * offset and length) to the destination buffer including the - * appropriate control bit. - * ---------- - */ -#define pglz_out_tag(_ctrlp, _ctrlb, _ctrl, _buf, _len, _off) \ - do { \ - pglz_out_ctrl(_ctrlp, _ctrlb, _ctrl, _buf); \ - (_ctrlb) |= (_ctrl); \ - (_ctrl) <<= 1; \ - if ((_len) > 17) { \ - (_buf)[0] = (unsigned char)((((uint32)(_off)&0xf00) >> 4) | 0x0f); \ - (_buf)[1] = (unsigned char)(((uint32)(_off)&0xff)); \ - (_buf)[2] = (unsigned char)((_len)-18); \ - (_buf) += 3; \ - } else { \ - (_buf)[0] = (unsigned char)((((uint32)(_off)&0xf00) >> 4) | ((uint32)(_len)-3)); \ - (_buf)[1] = (unsigned char)((uint32)(_off)&0xff); \ - (_buf) += 2; \ - } \ - } while (0) - -#define HIST_START_LEN (sizeof(PGLZ_HistEntry*) * PGLZ_HISTORY_LISTS) -#define HIST_ENTRIES_LEN (sizeof(PGLZ_HistEntry) * PGLZ_HISTORY_SIZE) - -#define PGLZ_MAX_HISTORY_LISTS 8192 /* must be power of 2 */ -static PGLZ_HistEntry* hist_start[PGLZ_MAX_HISTORY_LISTS]; -static PGLZ_HistEntry hist_entries[PGLZ_HISTORY_SIZE + 1]; - -/* ---------- - * pglz_find_match - - * - * Lookup the history table if the actual input stream matches - * another sequence of characters, starting somewhere earlier - * in the input buffer. - * ---------- - */ -static inline int pglz_find_match( - PGLZ_HistEntry** hstart, const char* input, const char* end, int* lenp, int* offp, int good_match, int good_drop) -{ - PGLZ_HistEntry* hent = NULL; - int32 len = 0; - int32 off = 0; - - /* - * Traverse the linked history list until a good enough match is found. - */ - hent = hstart[pglz_hist_idx(input, end)]; - while (hent != NULL) { - const char* ip = input; - const char* hp = hent->pos; - int32 thisoff; - int32 thislen; - - /* - * Stop if the offset does not fit into our tag anymore. - */ - thisoff = ip - hp; - if (thisoff >= 0x0fff) - break; - - /* - * Determine length of match. A better match must be larger than the - * best so far. And if we already have a match of 16 or more bytes, - * it's worth the call overhead to use memcmp() to check if this match - * is equal for the same size. After that we must fallback to - * character by character comparison to know the exact position where - * the diff occurred. - */ - thislen = 0; - if (len >= 16) { - if (memcmp(ip, hp, len) == 0) { - thislen = len; - ip += len; - hp += len; - while (ip < end && *ip == *hp && thislen < PGLZ_MAX_MATCH) { - thislen++; - ip++; - hp++; - } - } - } else { - while (ip < end && *ip == *hp && thislen < PGLZ_MAX_MATCH) { - thislen++; - ip++; - hp++; - } - } - - /* - * Remember this match as the best (if it is) - */ - if (thislen > len) { - len = thislen; - off = thisoff; - } - - /* - * Advance to the next history entry - */ - hent = hent->next; - - /* - * Be happy with lesser good matches the more entries we visited. But - * no point in doing calculation if we're at end of list. - */ - if (hent != NULL) { - if (len >= good_match) - break; - good_match -= (good_match * good_drop) / 100; - } - } - - /* - * Return match information only if it results at least in one byte - * reduction. - */ - if (len > 2) { - *lenp = len; - *offp = off; - return 1; - } - - return 0; -} - -/* ---------- - * lz_compress - - * - * Compresses source into dest using strategy. Returns the number of - * bytes written in buffer dest, or -1 if compression fails. - * ---------- - */ -int32 lz_compress(const char* source, int32 slen, char* dest) -{ - unsigned char* bp = (unsigned char*) dest; - unsigned char* bstart = bp; - int hist_next = 0; - bool hist_recycle = false; - const char* dp = source; - const char* dend = source + slen; - unsigned char ctrl_dummy = 0; - unsigned char* ctrlp = &ctrl_dummy; - unsigned char ctrlb = 0; - unsigned char ctrl = 0; - bool found_match = false; - int32 match_len; - int32 match_off; - int32 good_match; - int32 good_drop; - int32 result_size; - int32 result_max; - int32 need_rate; - errno_t rc; - - const PGLZ_Strategy* strategy = PGLZ_strategy_always; - /* - * Our fallback strategy is the default. - */ - if (strategy == NULL) { - strategy = PGLZ_strategy_default; - } - - /* - * If the strategy forbids compression (at all or if source chunk size out - * of range), fail. - */ - if (strategy->match_size_good <= 0 || slen < strategy->min_input_size || slen > strategy->max_input_size) { - return -1; - } - - /* - * Limit the match parameters to the supported range. - */ - good_match = strategy->match_size_good; - if (good_match > PGLZ_MAX_MATCH) { - good_match = PGLZ_MAX_MATCH; - } else if (good_match < 17) { - good_match = 17; - } - - good_drop = strategy->match_size_drop; - if (good_drop < 0) { - good_drop = 0; - } else if (good_drop > 100) { - good_drop = 100; - } - - need_rate = strategy->min_comp_rate; - if (need_rate < 0) { - need_rate = 0; - } else if (need_rate > 99) { - need_rate = 99; - } - - /* - * Compute the maximum result size allowed by the strategy, namely the - * input size minus the minimum wanted compression rate. This had better - * be <= slen, else we might overrun the provided output buffer. - */ - if (slen > (INT_MAX / 100)) { - /* Approximate to avoid overflow */ - result_max = (slen / 100) * (100 - need_rate); - } else { - result_max = (slen * (100 - need_rate)) / 100; - } - - /* - * Initialize the history lists to empty. We do not need to zero the - * hist_entries[] array; its entries are initialized as they are used. - */ - rc = memset_s(hist_start, HIST_START_LEN, 0, HIST_START_LEN); - securec_check(rc, "\0", "\0"); - - /* - * Compress the source directly into the output buffer. - */ - while (dp < dend) { - /* - * If we already exceeded the maximum result size, fail. - * - * We check once per loop; since the loop body could emit as many as 4 - * bytes (a control byte and 3-byte tag), PGLZ_MAX_OUTPUT() had better - * allow 4 slop bytes. - */ - if (bp - bstart >= result_max) { - return -1; - } - - /* - * If we've emitted more than first_success_by bytes without finding - * anything compressible at all, fail. This lets us fall out - * reasonably quickly when looking at incompressible input (such as - * pre-compressed data). - */ - if (!found_match && bp - bstart >= strategy->first_success_by) { - return -1; - } - - /* - * Try to find a match in the history - */ - if (pglz_find_match(hist_start, dp, dend, &match_len, &match_off, good_match, good_drop)) { - /* - * Create the tag and add history entries for all matched - * characters. - */ - pglz_out_tag(ctrlp, ctrlb, ctrl, bp, match_len, match_off); - while (match_len--) { - pglz_hist_add( - hist_start, hist_entries, hist_next, hist_recycle, dp, - dend); - dp++; /* Do not do this ++ in the line above! */ - /* The macro would do it four times - Jan. */ - } - found_match = true; - } else { - /* - * No match found. Copy one literal byte. - */ - pglz_out_literal(ctrlp, ctrlb, ctrl, bp, *dp); - pglz_hist_add( - hist_start, hist_entries, hist_next, hist_recycle, dp, dend); - dp++; /* Do not do this ++ in the line above! */ - /* The macro would do it four times - Jan. */ - } - } - - /* - * Write out the last control byte and check that we haven't overrun the - * output size allowed by the strategy. - */ - *ctrlp = ctrlb; - result_size = bp - bstart; - if (result_size >= result_max) { - return -1; - } - - /* success */ - return result_size; -} - -/* ---------- - * pglz_decompress - - * - * Decompresses source into dest. Returns the number of bytes - * decompressed in the destination buffer, and *optionally* - * checks that both the source and dest buffers have been - * fully read and written to, respectively. - * ---------- - */ -int32 lz_decompress(const char* source, int32 slen, char* dest, int32 rawsize, bool check_complete) -{ - const unsigned char* sp; - const unsigned char* srcend; - unsigned char* dp; - unsigned char* destend; - errno_t rc = 0; - - sp = (const unsigned char*) source; - srcend = ((const unsigned char*) source) + slen; - dp = (unsigned char*) dest; - destend = dp + rawsize; - - while (sp < srcend && dp < destend) { - /* - * Read one control byte and process the next 8 items (or as many as - * remain in the compressed input). - */ - unsigned char ctrl = *sp++; - int ctrlc; - - for (ctrlc = 0; ctrlc < 8 && sp < srcend && dp < destend; ctrlc++) { - - if (ctrl & 1) { - /* - * Set control bit means we must read a match tag. The match - * is coded with two bytes. First byte uses lower nibble to - * code length - 3. Higher nibble contains upper 4 bits of the - * offset. The next following byte contains the lower 8 bits - * of the offset. If the length is coded as 18, another - * extension tag byte tells how much longer the match really - * was (0-255). - */ - int32 len; - int32 off; - - len = (sp[0] & 0x0f) + 3; - off = ((sp[0] & 0xf0) << 4) | sp[1]; - sp += 2; - if (len == 18) { - len += *sp++; - } - - /* - * Now we copy the bytes specified by the tag from OUTPUT to - * OUTPUT (copy len bytes from dp - off to dp). The copied - * areas could overlap, to preven possible uncertainty, we - * copy only non-overlapping regions. - */ - len = Min(len, destend - dp); - while (off < len) { - /*--------- - * When offset is smaller than length - source and - * destination regions overlap. memmove() is resolving - * this overlap in an incompatible way with pglz. Thus we - * resort to memcpy()-ing non-overlapping regions. - * - * Consider input: 112341234123412341234 - * At byte 5 here ^ we have match with length 16 and - * offset 4. 11234M(len=16, off=4) - * We are decoding first period of match and rewrite match - * 112341234M(len=12, off=8) - * - * The same match is now at position 9, it points to the - * same start byte of output, but from another position: - * the offset is doubled. - * - * We iterate through this offset growth until we can - * proceed to usual memcpy(). If we would try to decode - * the match at byte 5 (len=16, off=4) by memmove() we - * would issue memmove(5, 1, 16) which would produce - * 112341234XXXXXXXXXXXX, where series of X is 12 - * undefined bytes, that were at bytes [5:17]. - * --------- - */ - errno_t rc = memcpy_s(dp, off + 1, dp - off, off); - securec_check(rc, "", ""); - len -= off; - dp += off; - off += off; - } - rc = memcpy_s(dp, len + 1, dp - off, len); - securec_check(rc, "", ""); - dp += len; - } else { - /* - * An unset control bit means LITERAL BYTE. So we just copy - * one from INPUT to OUTPUT. - */ - *dp++ = *sp++; - } - - /* - * Advance the control bit - */ - ctrl >>= 1; - } - } - - /* - * Check we decompressed the right amount. If we are slicing, then we - * won't necessarily be at the end of the source or dest buffers when we - * hit a stop, so we don't test them. - */ - if (check_complete && (dp != destend || sp != srcend)) { - return -1; - } - - /* - * That's it. - */ - return (char*) dp - dest; -} - - -int CompressPage(const char* src, char* dst, int dst_size, RelFileCompressOption option) -{ - if (PageIs8BXidHeapVersion(src)) { - return TemplateCompressPage(src, dst, dst_size, option); - } else { - return TemplateCompressPage(src, dst, dst_size, option); - } -} - -void CompressConvertRows(char *buf, char *aux_buf, int16 *real_order, uint16 max_row_len, uint16 real_row_cnt) { - errno_t ret; - HeapPageHeaderData *page = (HeapPageHeaderData *)buf; - uint16 row_cnt = real_row_cnt; - uint32 total_size = page->pd_special - page->pd_upper; - char *copy_begin = buf + page->pd_upper; - char *row; - uint16 i, j, k, cur, up, row_size; - - ret = memset_sp(aux_buf, BLCKSZ, 0, BLCKSZ); - securec_check(ret, "", ""); - - k = 0; - for (i = 0; i < max_row_len; i++) { - for (j = 0; j < row_cnt; j++) { - up = (j == (row_cnt - 1)) ? page->pd_special : GET_ITEMID_BY_IDX(buf, (real_order[j + 1]))->lp_off; - cur = GET_ITEMID_BY_IDX(buf, (real_order[j]))->lp_off; - row_size = up - cur; - row = buf + cur; - if (i < row_size) { - aux_buf[k++] = row[i]; // this part is reshaped - } - } - } - - if (k != total_size) { - printf("ERROR!!! convert_rows_2 error...!!!\n"); - ASSERT(0); - return; - } - - // cp aux_buf to page_buf - ret = memcpy_sp(copy_begin, total_size, aux_buf, total_size); - securec_check(ret, "", ""); - return ; -} - -void CompressConvertItemIds(char *buf, char *aux_buf) { - errno_t ret; - HeapPageHeaderData *page = (HeapPageHeaderData *)buf; - uint16 row_cnt = (page->pd_lower - GetPageHeaderSize(page)) / sizeof(ItemIdData); - uint32 total_size = row_cnt * sizeof(ItemIdData); - char *copy_begin = buf + GetPageHeaderSize(page); - uint16 i, j, k; - - // clear aux_buf - ret = memset_sp(aux_buf, BLCKSZ, 0, BLCKSZ); - securec_check(ret, "", ""); - - k = 0; - for (i = 0; i < row_cnt; i++) { - for (j = 0; j < sizeof(ItemIdData); j++) { - aux_buf[j * row_cnt + i] = copy_begin[k++]; - } - } - - // cp aux_buf to page_buf - ret = memcpy_sp(copy_begin, total_size, aux_buf, total_size); - securec_check(ret, "", ""); - return ; -} - -void cprs_diff_convert_rows(char *buf, uint32 offset,uint16 min_row_len, uint16 real_row_cnt) { - uint16 row_cnt = real_row_cnt; - uint32 common_size = min_row_len; - uint8 *copy_begin = (uint8 *)(buf + offset); - uint16 i, j; - - for (i = 0; i < common_size; i++) { - for (j = row_cnt - 1; j > 0; j--) { - copy_begin[i * row_cnt + j] -= copy_begin[i * row_cnt + (j - 1)]; - } - } - return ; -} - -bool CompressConvertOnePage(char *buf, char *aux_buf, bool diff_convert) { - uint16 max_row_len = 0; - uint16 min_row_len = 0; - int16 *real_order = NULL; // itemids are not in order sometimes. we must find the real - uint16 real_row_cnt = 0; - if (!CompressConvertCheck(buf, &real_order, &max_row_len, &min_row_len, &real_row_cnt)) { - if (real_order != NULL) { - free(real_order); - } - return false; - } - - CompressConvertRows(buf, aux_buf, real_order, max_row_len, real_row_cnt); - CompressConvertItemIds(buf, aux_buf); - - if (diff_convert) { - cprs_diff_convert_rows(buf, ((HeapPageHeaderData *)buf)->pd_upper, min_row_len, real_row_cnt); - cprs_diff_convert_rows(buf, GetPageHeaderSize(buf), sizeof(ItemIdData), - (((HeapPageHeaderData *)buf)->pd_lower - GetPageHeaderSize(buf)) / sizeof(ItemIdData)); - } - - if (real_order != NULL) { - free(real_order); - } - return true; -} - -void CompressPagePrepareConvert(char *src, bool diff_convert, bool *real_ByteConvert) -{ - char *aux_buf = NULL; - errno_t rc; - - aux_buf = (char *)malloc(BLCKSZ); - if (aux_buf == NULL) { - // add log - return; - } - rc = memset_sp(aux_buf, BLCKSZ, 0, BLCKSZ); - securec_check(rc, "", ""); - - // do convert - *real_ByteConvert = false; - if (CompressConvertOnePage(src, aux_buf, diff_convert)) { - *real_ByteConvert = true; - } - - if (aux_buf != NULL) { - free(aux_buf); - } -} - - -/** - * CompressPage() -- Compress one page. - * - * Only the parts other than the page header will be compressed. The - * compressed data is rounded by chunck_size, The insufficient part is - * filled with zero. Compression needs to be able to save at least one - * chunk of space, otherwise it fail. - * This function returen the size of compressed data or - * -1 for compression fail - * COMPRESS_UNSUPPORTED_ERROR for unrecognized compression algorithm - */ -template -int TemplateCompressPage(const char* src, char* dst, int dst_size, RelFileCompressOption option) -{ - int compressed_size; - int8 level = option.compressLevelSymbol ? option.compressLevel : -option.compressLevel; - size_t sizeOfHeaderData = GetSizeOfHeadData(heapPageData); - char *src_copy = NULL; - bool real_ByteConvert = false; - errno_t rc; - char* data; - - if (option.byteConvert) { - // copy and maybe change it - src_copy = (char *)malloc(BLCKSZ); - if (src_copy == NULL) { - // add log - return -1; - } - rc = memcpy_s(src_copy, BLCKSZ, src, BLCKSZ); - securec_check(rc, "", ""); - CompressPagePrepareConvert(src_copy, option.diffConvert, &real_ByteConvert); /* preprocess convert src */ - } - - if (heapPageData) { - data = ((HeapPageCompressData*)dst)->data; - } else { - data = ((PageCompressData*)dst)->data; - } - - switch (option.compressAlgorithm) { - case COMPRESS_ALGORITHM_PGLZ: - if (real_ByteConvert) { - compressed_size = lz_compress(src_copy + sizeOfHeaderData, BLCKSZ - sizeOfHeaderData, data); - } else { - compressed_size = lz_compress(src + sizeOfHeaderData, BLCKSZ - sizeOfHeaderData, data); - } - break; - case COMPRESS_ALGORITHM_ZSTD: { - if (level == 0 || level < MIN_ZSTD_COMPRESSION_LEVEL || level > MAX_ZSTD_COMPRESSION_LEVEL) { - level = DEFAULT_ZSTD_COMPRESSION_LEVEL; - } - - if (real_ByteConvert) { - compressed_size = ZSTD_compress(data, dst_size, src_copy + sizeOfHeaderData, BLCKSZ - sizeOfHeaderData, level); - } else { - compressed_size = ZSTD_compress(data, dst_size, src + sizeOfHeaderData, BLCKSZ - sizeOfHeaderData, level); - } - - if (ZSTD_isError(compressed_size)) { - if (src_copy != NULL) { - free(src_copy); - } - return -1; - } - break; - } - default: - if (src_copy != NULL) { - free(src_copy); - } - return COMPRESS_UNSUPPORTED_ERROR; - } - - if (compressed_size < 0) { - if (src_copy != NULL) { - free(src_copy); - } - return -1; - } - - if (heapPageData) { - HeapPageCompressData* pcdptr = ((HeapPageCompressData*)dst); - rc = memcpy_s(pcdptr->page_header, sizeOfHeaderData, src, sizeOfHeaderData); - securec_check(rc, "", ""); - pcdptr->size = compressed_size; - pcdptr->byte_convert = real_ByteConvert; - pcdptr->diff_convert = option.diffConvert; - } else { - PageCompressData* pcdptr = ((PageCompressData*)dst); - rc = memcpy_s(pcdptr->page_header, sizeOfHeaderData, src, sizeOfHeaderData); - securec_check(rc, "", ""); - pcdptr->size = compressed_size; - pcdptr->byte_convert = real_ByteConvert; - pcdptr->diff_convert = option.diffConvert; - } - - if (src_copy != NULL) { - free(src_copy); - } - return SIZE_OF_PAGE_COMPRESS_DATA_HEADER_DATA(heapPageData) + compressed_size; -} - -/** - * CompressPageBufferBound() - * -- Get the destination buffer boundary to compress one page. - * Return needed destination buffer size for compress one page or - * -1 for unrecognized compression algorithm - */ -int CompressPageBufferBound(const char* page, uint8 algorithm) -{ - switch (algorithm) { - case COMPRESS_ALGORITHM_PGLZ: - return BLCKSZ + 4; - case COMPRESS_ALGORITHM_ZSTD: - return ZSTD_compressBound(BLCKSZ - GetPageHeaderSize(page)); - default: - return -1; - } -} - - +size_t GetSizeOfHeadData(bool heapPageData) +{ + if (heapPageData) { + return SizeOfHeapPageHeaderData; + } else { + return SizeOfPageHeaderData; + } +} + +// maybe some itemid is not valid +uint16 HeapPageCalcRealRowCnt (char *buf) { + HeapPageHeaderData *page = (HeapPageHeaderData *)buf; + uint16 cnt = 0; + uint16 i; + uint16 row_cnt = (page->pd_lower - GetPageHeaderSize(page)) / sizeof(ItemIdData); + + for (i = 0; i < row_cnt; i++) { + if (ItemIdIsNormal(GET_ITEMID_BY_IDX(buf, i))) { + cnt++; + } + } + return cnt; +} + +void DecompressDeconvertRows(char *buf, char *aux_buf, int16 *real_order, uint16 max_row_len, uint16 real_row_cnt) { + errno_t ret; + HeapPageHeaderData *page = (HeapPageHeaderData *)buf; + uint16 row_cnt = real_row_cnt; + uint32 total_size = page->pd_special - page->pd_upper; + char *copy_begin = buf + page->pd_upper; + char *row; + uint16 i, j, k, cur, up, row_size; + + ret = memset_sp(aux_buf, BLCKSZ, 0, BLCKSZ); + securec_check(ret, "", ""); + + k = 0; + for (i = 0; i < max_row_len; i++) { + for (j = 0; j < row_cnt; j++) { + up = (j == (row_cnt - 1)) ? page->pd_special : GET_ITEMID_BY_IDX(buf, (real_order[j + 1]))->lp_off; + cur = GET_ITEMID_BY_IDX(buf, (real_order[j]))->lp_off; + row_size = up - cur; + row = aux_buf + cur; + if (i < row_size) { + row[i] = copy_begin[k++]; // this part is reshaped + } + } + } + + if (k != total_size) { + printf("ERROR!!! pg_deconvert_rows error...!!!\n"); + ASSERT(0); + return; + } + + // cp aux_buf to page_buf + ret = memcpy_sp(copy_begin, total_size, aux_buf + page->pd_upper, total_size); + securec_check(ret, "", ""); + return ; +} + +// 1: as tuple_offset order, that means asc order. +// 2: store all itemid's idx. +// 3:maybe some itemid is not in order. +void CompressConvertItemRealOrder(char *buf, int16 *real_order, uint16 real_row_cnt) { + HeapPageHeaderData *page = (HeapPageHeaderData *)buf; + uint16 row_cnt = (page->pd_lower - GetPageHeaderSize(page)) / sizeof(ItemIdData); + ItemIdData *begin = (ItemIdData *)(buf + GetPageHeaderSize(page)); + int16 *link_order = real_order + real_row_cnt; + + int16 i, head, curr, prev; + int16 end = -1; // invalid index + + head = end; + // very likely to seems that itemids stored by desc order, and ignore invalid itemid + for (i = 0; i < row_cnt; i++) { + if (!ItemIdIsNormal(begin + i)) { + continue; + } + + if (head == end) { // set the head idx, insert the first + link_order[i] = end; + head = i; + continue; + } + + if ((begin + i)->lp_off < (begin + head)->lp_off) { + link_order[i] = head; // update the head idx + head = i; + continue; + } + + prev = head; + curr = link_order[head]; + while ((curr != end) && ((begin + i)->lp_off > (begin + curr)->lp_off)) { + prev = curr; + curr = link_order[curr]; + } + + link_order[prev] = i; + link_order[i] = curr; + } + + // arrange the link to array + curr = head; + for (i = 0; i < real_row_cnt; i++) { + real_order[i] = curr; + curr = link_order[curr]; + } + + if (curr != end) { + printf("ERROR!!! pre_convert_real_order error...!!!\n"); + ASSERT(0); + return; + } + +} + +int DecompressPage(const char* src, char* dst, uint8 algorithm) +{ + if (PageIs8BXidHeapVersion(src)) { + return TemplateDecompressPage(src, dst, algorithm); + } else { + return TemplateDecompressPage(src, dst, algorithm); + } +} + +void cprs_diff_deconvert_rows(char *buf, uint32 offset, uint16 min_row_len, uint16 real_row_cnt) { + uint16 row_cnt = real_row_cnt; + uint32 common_size = min_row_len; + uint8 *copy_begin = (uint8 *)(buf + offset); + uint16 i, j; + + for (i = 0; i < common_size; i++) { + for (j = 1; j < row_cnt; j++) { + copy_begin[i * row_cnt + j] += copy_begin[i * row_cnt + (j - 1)]; + } + } + return ; +} + +// to find all row size are diffs in MIN_DIFF_SIZE byts. +bool CompressConvertCheck(char *buf, int16 **real_order, uint16 *max_row_len, uint16 *min_row_len, uint16 *real_row_cnt) { + HeapPageHeaderData *page = (HeapPageHeaderData *)buf; + uint16 row_cnt = (page->pd_lower - GetPageHeaderSize(page)) / sizeof(ItemIdData); + int16 i, row_size; + ItemIdData *ptr = NULL; + uint16 up = page->pd_special; + uint16 min_size = GS_INVALID_ID16; + uint16 max_size = 0; + errno_t ret; + if (page->pd_lower < GetPageHeaderSize(page) || (page->pd_lower > page->pd_upper)) { + return false; + } + + uint16 normal_row_cnt = HeapPageCalcRealRowCnt(buf); + if (normal_row_cnt < MIN_CONVERT_CNT) { // no need convert + return false; + } + + // to store the real tuple order. + /* + --------------------------|-------------------------- + xxxxxxxxxxxxxxxxxxxxxxxxxx|xxxxxxxxxxxxxxxxxxxxxxxxxx + --------------------------|-------------------------- + */ + // the first part is real array order, and the second part is link. + *real_order = (int16 *)malloc(sizeof(uint16) * row_cnt * 2); + if (*real_order == NULL) { + printf("zfunc compress file"); + return false; + } + ret = memset_sp(*real_order, sizeof(uint16) * row_cnt * 2, 0, sizeof(uint16) * row_cnt * 2); + securec_check(ret, "", ""); + + // order the ItemIds by tuple_offset order. + CompressConvertItemRealOrder(buf, *real_order, normal_row_cnt); + + // do the check, to check all size of tuples. + for (i = normal_row_cnt - 1; i >= 0; i--) { + ptr = GET_ITEMID_BY_IDX(buf, ((*real_order)[i])); + + row_size = up - ptr->lp_off; + if (row_size < MIN_CONVERT_CNT * 2) { + return false; + } + + min_size = (row_size < min_size) ? row_size : min_size; + max_size = (row_size > max_size) ? row_size : max_size; + + if ((max_size - min_size) > MIN_DIFF_SIZE) { // no need convert + return false; + } + up = ptr->lp_off; + } + + // get the min row common size. + *max_row_len = max_size; + *min_row_len = min_size; + *real_row_cnt = normal_row_cnt; + return true; +} + +void DecompressDeconvertItemIds(char *buf, char *aux_buf) { + errno_t ret; + HeapPageHeaderData *page = (HeapPageHeaderData *)buf; + uint16 row_cnt = (page->pd_lower - GetPageHeaderSize(page)) / sizeof(ItemIdData); + uint32 total_size = row_cnt * sizeof(ItemIdData); + char *copy_begin = buf + GetPageHeaderSize(page); + uint16 i, j, k; + + // clear aux_buf + ret = memset_sp(aux_buf, BLCKSZ, 0, BLCKSZ); + securec_check(ret, "", ""); + + k = 0; + for (i = 0; i < sizeof(ItemIdData); i++) { + for (j = 0; j < row_cnt; j++) { + aux_buf[j * sizeof(ItemIdData) + i] = copy_begin[k++]; + } + } + + // cp aux_buf to page_buf + ret = memcpy_sp(copy_begin, total_size, aux_buf, total_size); + securec_check(ret, "", ""); + return ; +} + + +void DecompressDeconvertOnePage(char *buf, char *aux_buf, bool diff_convert) { + uint16 max_row_len = 0; + uint16 min_row_len = 0; + int16 *real_order = NULL; // itemids are not in order sometimes. we must find the real + uint16 real_row_cnt = 0; + + if (diff_convert) { + cprs_diff_deconvert_rows(buf, GetPageHeaderSize(buf), sizeof(ItemIdData), + (((HeapPageHeaderData *)buf)->pd_lower - GetPageHeaderSize(buf)) / sizeof(ItemIdData)); + } + + // =======firstly, arrange the itemids. + DecompressDeconvertItemIds(buf, aux_buf); + + if (!CompressConvertCheck(buf, &real_order, &max_row_len, &min_row_len, &real_row_cnt)) { + if (real_order != NULL) { + free(real_order); + } + ASSERT(0); + return ; + } + + // =======and last, the tuples + if (diff_convert) { + cprs_diff_deconvert_rows(buf, ((HeapPageHeaderData *)buf)->pd_upper, min_row_len, real_row_cnt); + } + DecompressDeconvertRows(buf, aux_buf, real_order, max_row_len, real_row_cnt); + + if (real_order != NULL) { + free(real_order); + } + return ; +} + + +void DecompressPageDeconvert(char *src, bool diff_convert) +{ + char *aux_buf = NULL; + errno_t rc; + + aux_buf = (char *)malloc(BLCKSZ); + if (aux_buf == NULL) { + // add log + return; + } + rc = memset_s(aux_buf, BLCKSZ, 0, BLCKSZ); + securec_check(rc, "", ""); + + // do convert + DecompressDeconvertOnePage(src, aux_buf, diff_convert); + + if (aux_buf != NULL) { + free(aux_buf); + } +} + + +/** + * DecompressPage() -- Decompress one compressed page. + * return size of decompressed page which should be BLCKSZ or + * -1 for decompress error + * -2 for unrecognized compression algorithm + * + * note:The size of dst must be greater than or equal to BLCKSZ. + */ +template +int TemplateDecompressPage(const char* src, char* dst, uint8 algorithm) +{ + int decompressed_size; + char* data; + uint32 size; + bool byte_convert, diff_convert; + size_t sizeOfPageHeaderData = GetSizeOfHeadData(heapPageData); + int rc = memcpy_s(dst, sizeOfPageHeaderData, src, sizeOfPageHeaderData); + securec_check(rc, "", ""); + + if (heapPageData) { + data = ((HeapPageCompressData*) src)->data; + size = ((HeapPageCompressData*) src)->size; + byte_convert = ((HeapPageCompressData*) src)->byte_convert; + diff_convert = ((HeapPageCompressData*) src)->diff_convert; + } else { + data = ((PageCompressData*) src)->data; + size = ((PageCompressData*) src)->size; + byte_convert = ((PageCompressData*) src)->byte_convert; + diff_convert = ((PageCompressData*) src)->diff_convert; + } + + switch (algorithm) { + case COMPRESS_ALGORITHM_PGLZ: + decompressed_size = lz_decompress( + data, size, dst + sizeOfPageHeaderData, BLCKSZ - sizeOfPageHeaderData, false); + break; + case COMPRESS_ALGORITHM_ZSTD: + decompressed_size = + ZSTD_decompress(dst + sizeOfPageHeaderData, BLCKSZ - sizeOfPageHeaderData, data, size); + + if (ZSTD_isError(decompressed_size)) { + return -1; + } + + break; + + default: + return COMPRESS_UNSUPPORTED_ERROR; + break; + } + + if (byte_convert) { + // deconvert dst + DecompressPageDeconvert(dst, diff_convert); + } + + return sizeOfPageHeaderData + decompressed_size; +} + +// pg_lz +/* ---------- + * pg_lzcompress.c - + * + * This is an implementation of LZ compression for PostgreSQL. + * It uses a simple history table and generates 2-3 byte tags + * capable of backward copy information for 3-273 bytes with + * a max offset of 4095. + * + * Entry routines: + * + * bool + * pglz_compress(const char *source, int32 slen, PGLZ_Header *dest, + * const PGLZ_Strategy *strategy); + * + * source is the input data to be compressed. + * + * slen is the length of the input data. + * + * dest is the output area for the compressed result. + * It must be at least as big as PGLZ_MAX_OUTPUT(slen). + * + * strategy is a pointer to some information controlling + * the compression algorithm. If NULL, the compiled + * in default strategy is used. + * + * The return value is TRUE if compression succeeded, + * FALSE if not; in the latter case the contents of dest + * are undefined. + * + * void + * pglz_decompress(const PGLZ_Header *source, char *dest) + * + * source is the compressed input. + * + * dest is the area where the uncompressed data will be + * written to. It is the callers responsibility to + * provide enough space. The required amount can be + * obtained with the macro PGLZ_RAW_SIZE(source). + * + * The data is written to buff exactly as it was handed + * to pglz_compress(). No terminating zero byte is added. + * + * The decompression algorithm and internal data format: + * + * PGLZ_Header is defined as + * + * typedef struct PGLZ_Header { + * int32 vl_len_; + * int32 rawsize; + * } + * + * The header is followed by the compressed data itself. + * + * The data representation is easiest explained by describing + * the process of decompression. + * + * If VARSIZE(x) == rawsize + sizeof(PGLZ_Header), then the data + * is stored uncompressed as plain bytes. Thus, the decompressor + * simply copies rawsize bytes from the location after the + * header to the destination. + * + * Otherwise the first byte after the header tells what to do + * the next 8 times. We call this the control byte. + * + * An unset bit in the control byte means, that one uncompressed + * byte follows, which is copied from input to output. + * + * A set bit in the control byte means, that a tag of 2-3 bytes + * follows. A tag contains information to copy some bytes, that + * are already in the output buffer, to the current location in + * the output. Let's call the three tag bytes T1, T2 and T3. The + * position of the data to copy is coded as an offset from the + * actual output position. + * + * The offset is in the upper nibble of T1 and in T2. + * The length is in the lower nibble of T1. + * + * So the 16 bits of a 2 byte tag are coded as + * + * 7---T1--0 7---T2--0 + * OOOO LLLL OOOO OOOO + * + * This limits the offset to 1-4095 (12 bits) and the length + * to 3-18 (4 bits) because 3 is always added to it. To emit + * a tag of 2 bytes with a length of 2 only saves one control + * bit. But we lose one byte in the possible length of a tag. + * + * In the actual implementation, the 2 byte tag's length is + * limited to 3-17, because the value 0xF in the length nibble + * has special meaning. It means, that the next following + * byte (T3) has to be added to the length value of 18. That + * makes total limits of 1-4095 for offset and 3-273 for length. + * + * Now that we have successfully decoded a tag. We simply copy + * the output that occurred bytes back to the current + * output location in the specified . Thus, a + * sequence of 200 spaces (think about bpchar fields) could be + * coded in 4 bytes. One literal space and a three byte tag to + * copy 199 bytes with a -1 offset. Whow - that's a compression + * rate of 98%! Well, the implementation needs to save the + * original data size too, so we need another 4 bytes for it + * and end up with a total compression rate of 96%, what's still + * worth a Whow. + * + * The compression algorithm + * + * The following uses numbers used in the default strategy. + * + * The compressor works best for attributes of a size between + * 1K and 1M. For smaller items there's not that much chance of + * redundancy in the character sequence (except for large areas + * of identical bytes like trailing spaces) and for bigger ones + * our 4K maximum look-back distance is too small. + * + * The compressor creates a table for 8192 lists of positions. + * For each input position (except the last 3), a hash key is + * built from the 4 next input bytes and the position remembered + * in the appropriate list. Thus, the table points to linked + * lists of likely to be at least in the first 4 characters + * matching strings. This is done on the fly while the input + * is compressed into the output area. Table entries are only + * kept for the last 4096 input positions, since we cannot use + * back-pointers larger than that anyway. + * + * For each byte in the input, it's hash key (built from this + * byte and the next 3) is used to find the appropriate list + * in the table. The lists remember the positions of all bytes + * that had the same hash key in the past in increasing backward + * offset order. Now for all entries in the used lists, the + * match length is computed by comparing the characters from the + * entries position with the characters from the actual input + * position. + * + * The compressor starts with a so called "good_match" of 128. + * It is a "prefer speed against compression ratio" optimizer. + * So if the first entry looked at already has 128 or more + * matching characters, the lookup stops and that position is + * used for the next tag in the output. + * + * For each subsequent entry in the history list, the "good_match" + * is lowered by 10%. So the compressor will be more happy with + * short matches the farer it has to go back in the history. + * Another "speed against ratio" preference characteristic of + * the algorithm. + * + * Thus there are 3 stop conditions for the lookup of matches: + * + * - a match >= good_match is found + * - there are no more history entries to look at + * - the next history entry is already too far back + * to be coded into a tag. + * + * Finally the match algorithm checks that at least a match + * of 3 or more bytes has been found, because thats the smallest + * amount of copy information to code into a tag. If so, a tag + * is omitted and all the input bytes covered by that are just + * scanned for the history add's, otherwise a literal character + * is omitted and only his history entry added. + * + * Acknowledgements: + * + * Many thanks to Adisak Pochanayon, who's article about SLZ + * inspired me to write the PostgreSQL compression this way. + * + * Jan Wieck + * + * Copyright (c) 1999-2012, PostgreSQL Global Development Group + * + * src/backend/utils/adt/pg_lzcompress.c + * ---------- + */ +#include "postgres.h" +#include "knl/knl_variable.h" + +#include + +#include "utils/pg_lzcompress.h" + +/* ---------- + * The provided standard strategies + * ---------- + */ +static const PGLZ_Strategy strategy_default_data = { + 32, /* Data chunks less than 32 bytes are not + * compressed */ + INT_MAX, /* No upper limit on what we'll try to + * compress */ + 25, /* Require 25% compression rate, or not worth + * it */ + 1024, /* Give up if no compression in the first 1KB */ + 128, /* Stop history lookup if a match of 128 bytes + * is found */ + 10 /* Lower good match size by 10% at every loop + * iteration */ +}; +const PGLZ_Strategy* const PGLZ_strategy_default = &strategy_default_data; + +static const PGLZ_Strategy strategy_always_data = { + 0, /* Chunks of any size are compressed */ + INT_MAX, + 0, /* It's enough to save one single byte */ + INT_MAX, /* Never give up early */ + 128, /* Stop history lookup if a match of 128 bytes + * is found */ + 6 /* Look harder for a good match */ +}; +const PGLZ_Strategy* const PGLZ_strategy_always = &strategy_always_data; + +/* ---------- + * pglz_hist_idx - + * + * Computes the history table slot for the lookup by the next 4 + * characters in the input. + * + * NB: because we use the next 4 characters, we are not guaranteed to + * find 3-character matches; they very possibly will be in the wrong + * hash list. This seems an acceptable tradeoff for spreading out the + * hash keys more. + * ---------- + */ +#define pglz_hist_idx(_s, _e) \ + (((((_e) - (_s)) < 4) ? (int)(_s)[0] \ + : (((unsigned char)((_s)[0]) << 9) ^ ((unsigned char)((_s)[1]) << 6) ^ \ + ((unsigned char)((_s)[2]) << 3) ^ (unsigned char)((_s)[3]))) & \ + (PGLZ_HISTORY_MASK)) + +/* ---------- + * pglz_hist_add - + * + * Adds a new entry to the history table. + * + * If _recycle is true, then we are recycling a previously used entry, + * and must first delink it from its old hashcode's linked list. + * + * NOTE: beware of multiple evaluations of macro's arguments, and note that + * _hn and _recycle are modified in the macro. + * ---------- + */ +#define pglz_hist_add(_hs, _he, _hn, _recycle, _s, _e) \ + do { \ + int __hindex = pglz_hist_idx((_s), (_e)); \ + PGLZ_HistEntry** __myhsp = &(_hs)[__hindex]; \ + PGLZ_HistEntry* __myhe = &(_he)[_hn]; \ + if (_recycle) { \ + if (__myhe->prev == NULL) \ + (_hs)[__myhe->hindex] = __myhe->next; \ + else \ + __myhe->prev->next = __myhe->next; \ + if (__myhe->next != NULL) \ + __myhe->next->prev = __myhe->prev; \ + } \ + __myhe->next = *__myhsp; \ + __myhe->prev = NULL; \ + __myhe->hindex = __hindex; \ + __myhe->pos = (_s); \ + if (*__myhsp != NULL) \ + (*__myhsp)->prev = __myhe; \ + *__myhsp = __myhe; \ + if (++(_hn) >= PGLZ_HISTORY_SIZE) { \ + (_hn) = 0; \ + (_recycle) = true; \ + } \ + } while (0) + +/* ---------- + * pglz_out_ctrl - + * + * Outputs the last and allocates a new control byte if needed. + * ---------- + */ +#define pglz_out_ctrl(__ctrlp, __ctrlb, __ctrl, __buf) \ + do { \ + if ((((unsigned char)(__ctrl)) & 0xff) == 0) { \ + *(__ctrlp) = __ctrlb; \ + __ctrlp = (__buf)++; \ + __ctrlb = 0; \ + __ctrl = 1; \ + } \ + } while (0) + +/* ---------- + * pglz_out_literal - + * + * Outputs a literal byte to the destination buffer including the + * appropriate control bit. + * ---------- + */ +#define pglz_out_literal(_ctrlp, _ctrlb, _ctrl, _buf, _byte) \ + do { \ + pglz_out_ctrl(_ctrlp, _ctrlb, _ctrl, _buf); \ + *(_buf)++ = (unsigned char)(_byte); \ + (_ctrl) <<= 1; \ + } while (0) + +/* ---------- + * pglz_out_tag - + * + * Outputs a backward reference tag of 2-4 bytes (depending on + * offset and length) to the destination buffer including the + * appropriate control bit. + * ---------- + */ +#define pglz_out_tag(_ctrlp, _ctrlb, _ctrl, _buf, _len, _off) \ + do { \ + pglz_out_ctrl(_ctrlp, _ctrlb, _ctrl, _buf); \ + (_ctrlb) |= (_ctrl); \ + (_ctrl) <<= 1; \ + if ((_len) > 17) { \ + (_buf)[0] = (unsigned char)((((uint32)(_off)&0xf00) >> 4) | 0x0f); \ + (_buf)[1] = (unsigned char)(((uint32)(_off)&0xff)); \ + (_buf)[2] = (unsigned char)((_len)-18); \ + (_buf) += 3; \ + } else { \ + (_buf)[0] = (unsigned char)((((uint32)(_off)&0xf00) >> 4) | ((uint32)(_len)-3)); \ + (_buf)[1] = (unsigned char)((uint32)(_off)&0xff); \ + (_buf) += 2; \ + } \ + } while (0) + +#define HIST_START_LEN (sizeof(PGLZ_HistEntry*) * PGLZ_HISTORY_LISTS) +#define HIST_ENTRIES_LEN (sizeof(PGLZ_HistEntry) * PGLZ_HISTORY_SIZE) + +#define PGLZ_MAX_HISTORY_LISTS 8192 /* must be power of 2 */ +static PGLZ_HistEntry* hist_start[PGLZ_MAX_HISTORY_LISTS]; +static PGLZ_HistEntry hist_entries[PGLZ_HISTORY_SIZE + 1]; + +/* ---------- + * pglz_find_match - + * + * Lookup the history table if the actual input stream matches + * another sequence of characters, starting somewhere earlier + * in the input buffer. + * ---------- + */ +static inline int pglz_find_match( + PGLZ_HistEntry** hstart, const char* input, const char* end, int* lenp, int* offp, int good_match, int good_drop) +{ + PGLZ_HistEntry* hent = NULL; + int32 len = 0; + int32 off = 0; + + /* + * Traverse the linked history list until a good enough match is found. + */ + hent = hstart[pglz_hist_idx(input, end)]; + while (hent != NULL) { + const char* ip = input; + const char* hp = hent->pos; + int32 thisoff; + int32 thislen; + + /* + * Stop if the offset does not fit into our tag anymore. + */ + thisoff = ip - hp; + if (thisoff >= 0x0fff) + break; + + /* + * Determine length of match. A better match must be larger than the + * best so far. And if we already have a match of 16 or more bytes, + * it's worth the call overhead to use memcmp() to check if this match + * is equal for the same size. After that we must fallback to + * character by character comparison to know the exact position where + * the diff occurred. + */ + thislen = 0; + if (len >= 16) { + if (memcmp(ip, hp, len) == 0) { + thislen = len; + ip += len; + hp += len; + while (ip < end && *ip == *hp && thislen < PGLZ_MAX_MATCH) { + thislen++; + ip++; + hp++; + } + } + } else { + while (ip < end && *ip == *hp && thislen < PGLZ_MAX_MATCH) { + thislen++; + ip++; + hp++; + } + } + + /* + * Remember this match as the best (if it is) + */ + if (thislen > len) { + len = thislen; + off = thisoff; + } + + /* + * Advance to the next history entry + */ + hent = hent->next; + + /* + * Be happy with lesser good matches the more entries we visited. But + * no point in doing calculation if we're at end of list. + */ + if (hent != NULL) { + if (len >= good_match) + break; + good_match -= (good_match * good_drop) / 100; + } + } + + /* + * Return match information only if it results at least in one byte + * reduction. + */ + if (len > 2) { + *lenp = len; + *offp = off; + return 1; + } + + return 0; +} + +/* ---------- + * pglz_compress - + * + * Compresses source into dest using strategy. + * ---------- + */ +bool pglz_compress(const char* source, int32 slen, PGLZ_Header* dest, const PGLZ_Strategy* strategy) +{ + unsigned char* bp = ((unsigned char*)dest) + sizeof(PGLZ_Header); + unsigned char* bstart = bp; + int hist_next = 0; + bool hist_recycle = false; + const char* dp = source; + const char* dend = source + slen; + unsigned char ctrl_dummy = 0; + unsigned char* ctrlp = &ctrl_dummy; + unsigned char ctrlb = 0; + unsigned char ctrl = 0; + bool found_match = false; + int32 match_len; + int32 match_off; + int32 good_match; + int32 good_drop; + int32 result_size; + int32 result_max; + int32 need_rate; + + /* + * Our fallback strategy is the default. + */ + if (strategy == NULL) + strategy = PGLZ_strategy_default; + + /* + * If the strategy forbids compression (at all or if source chunk size out + * of range), fail. + */ + if (strategy->match_size_good <= 0 || slen < strategy->min_input_size || slen > strategy->max_input_size) + return false; + + /* + * Save the original source size in the header. + */ + dest->rawsize = slen; + + /* + * Limit the match parameters to the supported range. + */ + good_match = strategy->match_size_good; + if (good_match > PGLZ_MAX_MATCH) + good_match = PGLZ_MAX_MATCH; + else if (good_match < 17) + good_match = 17; + + good_drop = strategy->match_size_drop; + if (good_drop < 0) + good_drop = 0; + else if (good_drop > 100) + good_drop = 100; + + need_rate = strategy->min_comp_rate; + if (need_rate < 0) + need_rate = 0; + else if (need_rate > 99) + need_rate = 99; + + /* + * Compute the maximum result size allowed by the strategy, namely the + * input size minus the minimum wanted compression rate. This had better + * be <= slen, else we might overrun the provided output buffer. + */ + if (slen > (INT_MAX / 100)) { + /* Approximate to avoid overflow */ + result_max = (slen / 100) * (100 - need_rate); + } else + result_max = (slen * (100 - need_rate)) / 100; + + /* + * Initialize the history lists to empty. We do not need to zero the + * hist_entries[] array; its entries are initialized as they are used. + */ + errno_t rc = memset_s(hist_start, HIST_START_LEN, 0, HIST_START_LEN); + securec_check(rc, "\0", "\0"); + + /* + * Compress the source directly into the output buffer. + */ + while (dp < dend) { + /* + * If we already exceeded the maximum result size, fail. + * + * We check once per loop; since the loop body could emit as many as 4 + * bytes (a control byte and 3-byte tag), PGLZ_MAX_OUTPUT() had better + * allow 4 slop bytes. + */ + if (bp - bstart >= result_max) + return false; + + /* + * If we've emitted more than first_success_by bytes without finding + * anything compressible at all, fail. This lets us fall out + * reasonably quickly when looking at incompressible input (such as + * pre-compressed data). + */ + if (!found_match && bp - bstart >= strategy->first_success_by) + return false; + + /* + * Try to find a match in the history + */ + if (pglz_find_match(hist_start, dp, dend, &match_len, &match_off, good_match, good_drop)) { + /* + * Create the tag and add history entries for all matched + * characters. + */ + pglz_out_tag(ctrlp, ctrlb, ctrl, bp, match_len, match_off); + while (match_len--) { + pglz_hist_add( + hist_start, hist_entries, hist_next, hist_recycle, dp, dend); + dp++; /* Do not do this ++ in the line above! */ + /* The macro would do it four times - Jan. */ + } + found_match = true; + } else { + /* + * No match found. Copy one literal byte. + */ + pglz_out_literal(ctrlp, ctrlb, ctrl, bp, *dp); + pglz_hist_add( + hist_start, hist_entries, hist_next, hist_recycle, dp, dend); + dp++; /* Do not do this ++ in the line above! */ + /* The macro would do it four times - Jan. */ + } + } + + /* + * Write out the last control byte and check that we haven't overrun the + * output size allowed by the strategy. + */ + *ctrlp = ctrlb; + result_size = bp - bstart; + if (result_size >= result_max) + return false; + + /* + * Success - need only fill in the actual length of the compressed datum. + */ + SET_VARSIZE_COMPRESSED(dest, result_size + sizeof(PGLZ_Header)); + + return true; +} + +/* ---------- + * lz_compress - + * + * Compresses source into dest using strategy. Returns the number of + * bytes written in buffer dest, or -1 if compression fails. + * ---------- + */ +int32 lz_compress(const char* source, int32 slen, char* dest) +{ + unsigned char* bp = (unsigned char*) dest; + unsigned char* bstart = bp; + int hist_next = 0; + bool hist_recycle = false; + const char* dp = source; + const char* dend = source + slen; + unsigned char ctrl_dummy = 0; + unsigned char* ctrlp = &ctrl_dummy; + unsigned char ctrlb = 0; + unsigned char ctrl = 0; + bool found_match = false; + int32 match_len; + int32 match_off; + int32 good_match; + int32 good_drop; + int32 result_size; + int32 result_max; + int32 need_rate; + errno_t rc; + + const PGLZ_Strategy* strategy = PGLZ_strategy_always; + /* + * Our fallback strategy is the default. + */ + if (strategy == NULL) { + strategy = PGLZ_strategy_default; + } + + /* + * If the strategy forbids compression (at all or if source chunk size out + * of range), fail. + */ + if (strategy->match_size_good <= 0 || slen < strategy->min_input_size || slen > strategy->max_input_size) { + return -1; + } + + /* + * Limit the match parameters to the supported range. + */ + good_match = strategy->match_size_good; + if (good_match > PGLZ_MAX_MATCH) { + good_match = PGLZ_MAX_MATCH; + } else if (good_match < 17) { + good_match = 17; + } + + good_drop = strategy->match_size_drop; + if (good_drop < 0) { + good_drop = 0; + } else if (good_drop > 100) { + good_drop = 100; + } + + need_rate = strategy->min_comp_rate; + if (need_rate < 0) { + need_rate = 0; + } else if (need_rate > 99) { + need_rate = 99; + } + + /* + * Compute the maximum result size allowed by the strategy, namely the + * input size minus the minimum wanted compression rate. This had better + * be <= slen, else we might overrun the provided output buffer. + */ + if (slen > (INT_MAX / 100)) { + /* Approximate to avoid overflow */ + result_max = (slen / 100) * (100 - need_rate); + } else { + result_max = (slen * (100 - need_rate)) / 100; + } + + /* + * Initialize the history lists to empty. We do not need to zero the + * hist_entries[] array; its entries are initialized as they are used. + */ + rc = memset_s(hist_start, HIST_START_LEN, 0, HIST_START_LEN); + securec_check(rc, "\0", "\0"); + + /* + * Compress the source directly into the output buffer. + */ + while (dp < dend) { + /* + * If we already exceeded the maximum result size, fail. + * + * We check once per loop; since the loop body could emit as many as 4 + * bytes (a control byte and 3-byte tag), PGLZ_MAX_OUTPUT() had better + * allow 4 slop bytes. + */ + if (bp - bstart >= result_max) { + return -1; + } + + /* + * If we've emitted more than first_success_by bytes without finding + * anything compressible at all, fail. This lets us fall out + * reasonably quickly when looking at incompressible input (such as + * pre-compressed data). + */ + if (!found_match && bp - bstart >= strategy->first_success_by) { + return -1; + } + + /* + * Try to find a match in the history + */ + if (pglz_find_match(hist_start, dp, dend, &match_len, &match_off, good_match, good_drop)) { + /* + * Create the tag and add history entries for all matched + * characters. + */ + pglz_out_tag(ctrlp, ctrlb, ctrl, bp, match_len, match_off); + while (match_len--) { + pglz_hist_add( + hist_start, hist_entries, hist_next, hist_recycle, dp, + dend); + dp++; /* Do not do this ++ in the line above! */ + /* The macro would do it four times - Jan. */ + } + found_match = true; + } else { + /* + * No match found. Copy one literal byte. + */ + pglz_out_literal(ctrlp, ctrlb, ctrl, bp, *dp); + pglz_hist_add( + hist_start, hist_entries, hist_next, hist_recycle, dp, dend); + dp++; /* Do not do this ++ in the line above! */ + /* The macro would do it four times - Jan. */ + } + } + + /* + * Write out the last control byte and check that we haven't overrun the + * output size allowed by the strategy. + */ + *ctrlp = ctrlb; + result_size = bp - bstart; + if (result_size >= result_max) { + return -1; + } + + /* success */ + return result_size; +} + +/* ---------- + * pglz_decompress - + * + * Decompresses source into dest. Returns the number of bytes + * decompressed in the destination buffer, and *optionally* + * checks that both the source and dest buffers have been + * fully read and written to, respectively. + * ---------- + */ +int32 lz_decompress(const char* source, int32 slen, char* dest, int32 rawsize, bool check_complete) +{ + const unsigned char* sp; + const unsigned char* srcend; + unsigned char* dp; + unsigned char* destend; + errno_t rc = 0; + + sp = (const unsigned char*) source; + srcend = ((const unsigned char*) source) + slen; + dp = (unsigned char*) dest; + destend = dp + rawsize; + + while (sp < srcend && dp < destend) { + /* + * Read one control byte and process the next 8 items (or as many as + * remain in the compressed input). + */ + unsigned char ctrl = *sp++; + int ctrlc; + + for (ctrlc = 0; ctrlc < 8 && sp < srcend && dp < destend; ctrlc++) { + + if (ctrl & 1) { + /* + * Set control bit means we must read a match tag. The match + * is coded with two bytes. First byte uses lower nibble to + * code length - 3. Higher nibble contains upper 4 bits of the + * offset. The next following byte contains the lower 8 bits + * of the offset. If the length is coded as 18, another + * extension tag byte tells how much longer the match really + * was (0-255). + */ + int32 len; + int32 off; + + len = (sp[0] & 0x0f) + 3; + off = ((sp[0] & 0xf0) << 4) | sp[1]; + sp += 2; + if (len == 18) { + len += *sp++; + } + + /* + * Now we copy the bytes specified by the tag from OUTPUT to + * OUTPUT (copy len bytes from dp - off to dp). The copied + * areas could overlap, to preven possible uncertainty, we + * copy only non-overlapping regions. + */ + len = Min(len, destend - dp); + while (off < len) { + /*--------- + * When offset is smaller than length - source and + * destination regions overlap. memmove() is resolving + * this overlap in an incompatible way with pglz. Thus we + * resort to memcpy()-ing non-overlapping regions. + * + * Consider input: 112341234123412341234 + * At byte 5 here ^ we have match with length 16 and + * offset 4. 11234M(len=16, off=4) + * We are decoding first period of match and rewrite match + * 112341234M(len=12, off=8) + * + * The same match is now at position 9, it points to the + * same start byte of output, but from another position: + * the offset is doubled. + * + * We iterate through this offset growth until we can + * proceed to usual memcpy(). If we would try to decode + * the match at byte 5 (len=16, off=4) by memmove() we + * would issue memmove(5, 1, 16) which would produce + * 112341234XXXXXXXXXXXX, where series of X is 12 + * undefined bytes, that were at bytes [5:17]. + * --------- + */ + errno_t rc = memcpy_s(dp, off + 1, dp - off, off); + securec_check(rc, "", ""); + len -= off; + dp += off; + off += off; + } + rc = memcpy_s(dp, len + 1, dp - off, len); + securec_check(rc, "", ""); + dp += len; + } else { + /* + * An unset control bit means LITERAL BYTE. So we just copy + * one from INPUT to OUTPUT. + */ + *dp++ = *sp++; + } + + /* + * Advance the control bit + */ + ctrl >>= 1; + } + } + + /* + * Check we decompressed the right amount. If we are slicing, then we + * won't necessarily be at the end of the source or dest buffers when we + * hit a stop, so we don't test them. + */ + if (check_complete && (dp != destend || sp != srcend)) { + return -1; + } + + /* + * That's it. + */ + return (char*) dp - dest; +} + + +int CompressPage(const char* src, char* dst, int dst_size, RelFileCompressOption option) +{ + if (PageIs8BXidHeapVersion(src)) { + return TemplateCompressPage(src, dst, dst_size, option); + } else { + return TemplateCompressPage(src, dst, dst_size, option); + } +} + +void CompressConvertRows(char *buf, char *aux_buf, int16 *real_order, uint16 max_row_len, uint16 real_row_cnt) { + errno_t ret; + HeapPageHeaderData *page = (HeapPageHeaderData *)buf; + uint16 row_cnt = real_row_cnt; + uint32 total_size = page->pd_special - page->pd_upper; + char *copy_begin = buf + page->pd_upper; + char *row; + uint16 i, j, k, cur, up, row_size; + + ret = memset_sp(aux_buf, BLCKSZ, 0, BLCKSZ); + securec_check(ret, "", ""); + + k = 0; + for (i = 0; i < max_row_len; i++) { + for (j = 0; j < row_cnt; j++) { + up = (j == (row_cnt - 1)) ? page->pd_special : GET_ITEMID_BY_IDX(buf, (real_order[j + 1]))->lp_off; + cur = GET_ITEMID_BY_IDX(buf, (real_order[j]))->lp_off; + row_size = up - cur; + row = buf + cur; + if (i < row_size) { + aux_buf[k++] = row[i]; // this part is reshaped + } + } + } + + if (k != total_size) { + printf("ERROR!!! convert_rows_2 error...!!!\n"); + ASSERT(0); + return; + } + + // cp aux_buf to page_buf + ret = memcpy_sp(copy_begin, total_size, aux_buf, total_size); + securec_check(ret, "", ""); + return ; +} + +void CompressConvertItemIds(char *buf, char *aux_buf) { + errno_t ret; + HeapPageHeaderData *page = (HeapPageHeaderData *)buf; + uint16 row_cnt = (page->pd_lower - GetPageHeaderSize(page)) / sizeof(ItemIdData); + uint32 total_size = row_cnt * sizeof(ItemIdData); + char *copy_begin = buf + GetPageHeaderSize(page); + uint16 i, j, k; + + // clear aux_buf + ret = memset_sp(aux_buf, BLCKSZ, 0, BLCKSZ); + securec_check(ret, "", ""); + + k = 0; + for (i = 0; i < row_cnt; i++) { + for (j = 0; j < sizeof(ItemIdData); j++) { + aux_buf[j * row_cnt + i] = copy_begin[k++]; + } + } + + // cp aux_buf to page_buf + ret = memcpy_sp(copy_begin, total_size, aux_buf, total_size); + securec_check(ret, "", ""); + return ; +} + +void cprs_diff_convert_rows(char *buf, uint32 offset,uint16 min_row_len, uint16 real_row_cnt) { + uint16 row_cnt = real_row_cnt; + uint32 common_size = min_row_len; + uint8 *copy_begin = (uint8 *)(buf + offset); + uint16 i, j; + + for (i = 0; i < common_size; i++) { + for (j = row_cnt - 1; j > 0; j--) { + copy_begin[i * row_cnt + j] -= copy_begin[i * row_cnt + (j - 1)]; + } + } + return ; +} + +bool CompressConvertOnePage(char *buf, char *aux_buf, bool diff_convert) { + uint16 max_row_len = 0; + uint16 min_row_len = 0; + int16 *real_order = NULL; // itemids are not in order sometimes. we must find the real + uint16 real_row_cnt = 0; + if (!CompressConvertCheck(buf, &real_order, &max_row_len, &min_row_len, &real_row_cnt)) { + if (real_order != NULL) { + free(real_order); + } + return false; + } + + CompressConvertRows(buf, aux_buf, real_order, max_row_len, real_row_cnt); + CompressConvertItemIds(buf, aux_buf); + + if (diff_convert) { + cprs_diff_convert_rows(buf, ((HeapPageHeaderData *)buf)->pd_upper, min_row_len, real_row_cnt); + cprs_diff_convert_rows(buf, GetPageHeaderSize(buf), sizeof(ItemIdData), + (((HeapPageHeaderData *)buf)->pd_lower - GetPageHeaderSize(buf)) / sizeof(ItemIdData)); + } + + if (real_order != NULL) { + free(real_order); + } + return true; +} + +void CompressPagePrepareConvert(char *src, bool diff_convert, bool *real_ByteConvert) +{ + char *aux_buf = NULL; + errno_t rc; + + aux_buf = (char *)malloc(BLCKSZ); + if (aux_buf == NULL) { + // add log + return; + } + rc = memset_sp(aux_buf, BLCKSZ, 0, BLCKSZ); + securec_check(rc, "", ""); + + // do convert + *real_ByteConvert = false; + if (CompressConvertOnePage(src, aux_buf, diff_convert)) { + *real_ByteConvert = true; + } + + if (aux_buf != NULL) { + free(aux_buf); + } +} + + +/** + * CompressPage() -- Compress one page. + * + * Only the parts other than the page header will be compressed. The + * compressed data is rounded by chunck_size, The insufficient part is + * filled with zero. Compression needs to be able to save at least one + * chunk of space, otherwise it fail. + * This function returen the size of compressed data or + * -1 for compression fail + * COMPRESS_UNSUPPORTED_ERROR for unrecognized compression algorithm + */ +template +int TemplateCompressPage(const char* src, char* dst, int dst_size, RelFileCompressOption option) +{ + int compressed_size; + int8 level = option.compressLevelSymbol ? option.compressLevel : -option.compressLevel; + size_t sizeOfHeaderData = GetSizeOfHeadData(heapPageData); + char *src_copy = NULL; + bool real_ByteConvert = false; + errno_t rc; + char* data; + + if (option.byteConvert) { + // copy and maybe change it + src_copy = (char *)malloc(BLCKSZ); + if (src_copy == NULL) { + // add log + return -1; + } + rc = memcpy_s(src_copy, BLCKSZ, src, BLCKSZ); + securec_check(rc, "", ""); + CompressPagePrepareConvert(src_copy, option.diffConvert, &real_ByteConvert); /* preprocess convert src */ + } + + if (heapPageData) { + data = ((HeapPageCompressData*)dst)->data; + } else { + data = ((PageCompressData*)dst)->data; + } + + switch (option.compressAlgorithm) { + case COMPRESS_ALGORITHM_PGLZ: + if (real_ByteConvert) { + compressed_size = lz_compress(src_copy + sizeOfHeaderData, BLCKSZ - sizeOfHeaderData, data); + } else { + compressed_size = lz_compress(src + sizeOfHeaderData, BLCKSZ - sizeOfHeaderData, data); + } + break; + case COMPRESS_ALGORITHM_ZSTD: { + if (level == 0 || level < MIN_ZSTD_COMPRESSION_LEVEL || level > MAX_ZSTD_COMPRESSION_LEVEL) { + level = DEFAULT_ZSTD_COMPRESSION_LEVEL; + } + + if (real_ByteConvert) { + compressed_size = ZSTD_compress(data, dst_size, src_copy + sizeOfHeaderData, BLCKSZ - sizeOfHeaderData, level); + } else { + compressed_size = ZSTD_compress(data, dst_size, src + sizeOfHeaderData, BLCKSZ - sizeOfHeaderData, level); + } + + if (ZSTD_isError(compressed_size)) { + if (src_copy != NULL) { + free(src_copy); + } + return -1; + } + break; + } + default: + if (src_copy != NULL) { + free(src_copy); + } + return COMPRESS_UNSUPPORTED_ERROR; + } + + if (compressed_size < 0) { + if (src_copy != NULL) { + free(src_copy); + } + return -1; + } + + if (heapPageData) { + HeapPageCompressData* pcdptr = ((HeapPageCompressData*)dst); + rc = memcpy_s(pcdptr->page_header, sizeOfHeaderData, src, sizeOfHeaderData); + securec_check(rc, "", ""); + pcdptr->size = compressed_size; + pcdptr->byte_convert = real_ByteConvert; + pcdptr->diff_convert = option.diffConvert; + } else { + PageCompressData* pcdptr = ((PageCompressData*)dst); + rc = memcpy_s(pcdptr->page_header, sizeOfHeaderData, src, sizeOfHeaderData); + securec_check(rc, "", ""); + pcdptr->size = compressed_size; + pcdptr->byte_convert = real_ByteConvert; + pcdptr->diff_convert = option.diffConvert; + } + + if (src_copy != NULL) { + free(src_copy); + } + return SIZE_OF_PAGE_COMPRESS_DATA_HEADER_DATA(heapPageData) + compressed_size; +} + +/** + * CompressPageBufferBound() + * -- Get the destination buffer boundary to compress one page. + * Return needed destination buffer size for compress one page or + * -1 for unrecognized compression algorithm + */ +int CompressPageBufferBound(const char* page, uint8 algorithm) +{ + switch (algorithm) { + case COMPRESS_ALGORITHM_PGLZ: + return BLCKSZ + 4; + case COMPRESS_ALGORITHM_ZSTD: + return ZSTD_compressBound(BLCKSZ - GetPageHeaderSize(page)); + default: + return -1; + } +} + + diff --git a/contrib/pagehack/openGaussCompression.cpp b/contrib/pagehack/openGaussCompression.cpp index 64eb02ba7..b94954ca8 100644 --- a/contrib/pagehack/openGaussCompression.cpp +++ b/contrib/pagehack/openGaussCompression.cpp @@ -46,9 +46,12 @@ bool OpenGaussCompression::TryOpen() header = pc_mmap(fileno(pcaFd), chunkSize, false); return true; } +constexpr int MAX_RETRY_LIMIT = 60; +constexpr long RETRY_SLEEP_TIME = 1000000L; bool OpenGaussCompression::ReadChunkOfBlock(char *dst, size_t *dstLen, BlockNumber blockNumber) { auto currentAddr = GET_PAGE_COMPRESS_ADDR(header, chunkSize, blockNumber); + size_t tryCount = 0; do { auto chunkNum = currentAddr->nchunks; for (uint8 i = 0; i < chunkNum; i++) { @@ -66,9 +69,19 @@ bool OpenGaussCompression::ReadChunkOfBlock(char *dst, size_t *dstLen, BlockNumb } *dstLen += readAmount; } - if (chunkNum == 0 || DecompressPage(dst, decompressedBuffer, header->algorithm) == BLCKSZ) { + if (chunkNum == 0) { break; } + if (DecompressPage(dst, decompressedBuffer, header->algorithm) == BLCKSZ) { + break; + } + + if (tryCount < MAX_RETRY_LIMIT) { + ++tryCount; + pg_usleep(RETRY_SLEEP_TIME); + } else { + return false; + } } while (true); if (PageIs8BXidHeapVersion(dst)) { byteConvert = ((HeapPageCompressData *)dst)->byte_convert; @@ -100,6 +113,13 @@ bool OpenGaussCompression::WriteBackCompressedData(char *source, size_t sourceLe return true; } +void OpenGaussCompression::MarkCompressedDirty(char *source, size_t sourceLen) +{ + int rc = memset_s(source + SizeOfHeapPageHeaderData, sourceLen - SizeOfHeapPageHeaderData, 0xFF, + sourceLen - SizeOfHeapPageHeaderData); + securec_check(rc, "\0", "\0"); +} + void OpenGaussCompression::MarkUncompressedDirty() { constexpr int writeLen = BLCKSZ / 2; @@ -173,5 +193,4 @@ bool OpenGaussCompression::WriteBackUncompressedData() return this->WriteBackCompressedData(work_buffer, compress_buffer_size, blockNumber); } - #include "compression_algorithm.ini" \ No newline at end of file diff --git a/contrib/pagehack/openGaussCompression.h b/contrib/pagehack/openGaussCompression.h index 016c04faf..498d232ab 100644 --- a/contrib/pagehack/openGaussCompression.h +++ b/contrib/pagehack/openGaussCompression.h @@ -1,3 +1,7 @@ +// +// Created by w00427717 on 2021/11/30. +// + #ifndef OPENGAUSS_SERVER_OPENGAUSSCOMPRESSION_H #define OPENGAUSS_SERVER_OPENGAUSSCOMPRESSION_H #define FRONTEND 1 @@ -31,6 +35,7 @@ public: bool ReadChunkOfBlock(char* dst, size_t* dstLen, BlockNumber blockNumber); bool WriteBackCompressedData(char* source, size_t sourceLen, BlockNumber blockNumber); bool WriteBackUncompressedData(); + void MarkCompressedDirty(char* source, size_t sourceLen); void MarkUncompressedDirty(); BlockNumber GetMaxBlockNumber(); char* GetPcdFilePath(); diff --git a/contrib/pagehack/pagehack.cpp b/contrib/pagehack/pagehack.cpp index 77013434d..ded308507 100644 --- a/contrib/pagehack/pagehack.cpp +++ b/contrib/pagehack/pagehack.cpp @@ -3627,6 +3627,7 @@ static int parse_filenodemap_file(char* filename) rewind(fd); if (result != sizeof(int32)) { fprintf(stderr, "Reading magic error"); + fclose(fd); return false; } @@ -3641,6 +3642,7 @@ static int parse_filenodemap_file(char* filename) } if ((size_t)relmapSize != result) { fprintf(stderr, "Reading error"); + fclose(fd); return false; } @@ -3706,6 +3708,7 @@ static int parse_cu_file(char* filename, uint64 offset) result = fread(buffer, 1, BLCKSZ, fd); if (result != BLCKSZ) { fprintf(stderr, "Reading error"); + fclose(fd); return false; } @@ -3762,30 +3765,35 @@ static int parse_slot_file(char* filename) readBytes = fread(&cp, 1, ReplicationSlotOnDiskConstantSize, fd); if (readBytes != ReplicationSlotOnDiskConstantSize) { fprintf(stderr, "Reading error"); + fclose(fd); return false; } /* verify magic */ if (cp.magic != SLOT_MAGIC) { fprintf(stderr, "wrong magic"); + fclose(fd); return false; } /* verify version */ if (cp.version != SLOT_VERSION) { fprintf(stderr, "unsupported version"); + fclose(fd); return false; } /* boundary check on length */ if (cp.length != ReplicationSlotOnDiskDynamicSize) { fprintf(stderr, "corrupted length"); + fclose(fd); return false; } readBytes = fread((char*)&cp + ReplicationSlotOnDiskConstantSize, 1, cp.length, fd); if (readBytes != cp.length) { fprintf(stderr, "Reading error"); + fclose(fd); return false; } @@ -3797,6 +3805,7 @@ static int parse_slot_file(char* filename) if (!EQ_CRC32C(checksum, cp.checksum)) { fprintf(stderr, "slot crc error"); + fclose(fd); return false; } @@ -3849,6 +3858,7 @@ static int parse_gaussdb_state_file(char* filename) readBytes = fread(&state, 1, sizeof(GaussState), fd); if (readBytes != sizeof(GaussState)) { fprintf(stderr, "Reading error"); + fclose(fd); return false; } @@ -3910,6 +3920,7 @@ static int parse_pg_control_file(char* filename) readBytes = fread(&ControlFile, 1, sizeof(ControlFileData), fd); if (readBytes != sizeof(ControlFileData)) { fprintf(stderr, "Reading error"); + fclose(fd); return false; } @@ -3920,6 +3931,7 @@ static int parse_pg_control_file(char* filename) FIN_CRC32C(crc); if (!EQ_CRC32C(crc, ControlFile.crc)) { fprintf(stderr, "pg_control crc error"); + fclose(fd); return false; } @@ -4041,6 +4053,7 @@ static int parse_clog_file(char* filename) while ((nread = fread(buffer, 1, BLCKSZ, fd)) != 0) { if (nread < 0) { fprintf(stderr, "read file error!\n"); + fclose(fd); return false; } @@ -4095,6 +4108,7 @@ static int parse_csnlog_file(char* filename) while ((nread = fread(buffer, 1, BLCKSZ, fd)) != 0) { if (nread != BLCKSZ) { fprintf(stderr, "read file error!\n"); + fclose(fd); return false; } @@ -4211,6 +4225,9 @@ static uint16 parse_batch_data_pages(dw_batch_t* curr_head, uint16 page_num) GET_REL_PGAENUM(curr_head->page_num)); page_start = (char*)curr_head + BLCKSZ; page_num--; + if (curr_head->buftag_ver == HASHBUCKET_TAG) { + isHashbucket = true; + } for (i = 0; i < GET_REL_PGAENUM(curr_head->page_num) && page_num > 0; i++, page_num--) { if (isHashbucket) { buf_tag = &curr_head->buf_tag[i]; @@ -4222,7 +4239,7 @@ static uint16 parse_batch_data_pages(dw_batch_t* curr_head, uint16 page_num) buf_tag->rnode.bucketNode, buf_tag->blockNum, buf_tag->forkNum); - (void)parse_a_page(page_start, buf_tag->blockNum, i, SEG_UNKNOWN); + (void)parse_a_page(page_start, buf_tag->blockNum, buf_tag->blockNum % RELSEG_SIZE, SEG_UNKNOWN); } else { bufTagOrig = &((dw_batch_first_ver *)curr_head)->buf_tag[i]; fprintf(stdout, @@ -4232,7 +4249,7 @@ static uint16 parse_batch_data_pages(dw_batch_t* curr_head, uint16 page_num) bufTagOrig->rnode.relNode, bufTagOrig->blockNum, bufTagOrig->forkNum); - (void)parse_a_page(page_start, bufTagOrig->blockNum, i, SEG_UNKNOWN); + (void)parse_a_page(page_start, bufTagOrig->blockNum, bufTagOrig->blockNum % RELSEG_SIZE, SEG_UNKNOWN); } page_start += BLCKSZ; } @@ -4425,6 +4442,7 @@ static bool parse_bucket_table(char *head_buf, BlockNumber head, int fd, char *f ssize_t nread = pread(fd, buf, BLCKSZ, offset); if (nread != BLCKSZ) { fprintf(stderr, "Failed to read %s: %s\n", filename, strerror(errno)); + free(buf); return false; } @@ -4441,6 +4459,7 @@ static bool parse_bucket_table(char *head_buf, BlockNumber head, int fd, char *f total_segments += BktMapEntryNumberPerBlock; } + free(buf); return true; } @@ -4512,19 +4531,24 @@ static bool parse_dw_single_flush_file(const char* file_name) FILE* fd; size_t result; dw_single_flush_item *item = (dw_single_flush_item*)malloc(sizeof(dw_single_flush_item) * - DW_SINGLE_DIRTY_PAGE_NUM); - uint16 batch_size = SINGLE_BLOCK_TAG_NUM; - uint16 blk_num = (DW_SINGLE_DIRTY_PAGE_NUM / batch_size) + (DW_SINGLE_DIRTY_PAGE_NUM % batch_size == 0 ? 0 : 1); - char *unaligned_buf = (char *)malloc((blk_num + 1 + 1) * BLCKSZ); + DW_SECOND_DATA_PAGE_NUM); + uint16 blk_num = DW_SECOND_BUFTAG_PAGE_NUM; + char *unaligned_buf = (char *)malloc((blk_num + 1 + 1 + 1) * BLCKSZ); char *buf = (char *)TYPEALIGN(BLCKSZ, unaligned_buf); char *file_head = buf; buf = buf + BLCKSZ; + char *second_file_head = buf; + buf = buf + BLCKSZ; char *item_buf = buf; char *unaligned_buf2 = (char *)malloc(BLCKSZ + BLCKSZ); /* one more BLCKSZ for alignment */ char *dw_block = (char *)TYPEALIGN(BLCKSZ, unaligned_buf2); + PageHeader pghr = NULL; if (NULL == (fd = fopen(file_name, "rb"))) { fprintf(stderr, "%s: %s\n", file_name, gs_strerror(errno)); + free(item); + free(unaligned_buf); + free(unaligned_buf2); return false; } @@ -4539,7 +4563,11 @@ static bool parse_dw_single_flush_file(const char* file_name) fclose(fd); return false; } - fseek(fd, BLCKSZ, SEEK_SET); + + fseek(fd, (1 + DW_FIRST_DATA_PAGE_NUM) * BLCKSZ, SEEK_SET); + result = fread(second_file_head, 1, BLCKSZ, fd); + + fseek(fd, (1 + DW_FIRST_DATA_PAGE_NUM + 1) * BLCKSZ, SEEK_SET); result = fread(item_buf, 1, blk_num * BLCKSZ, fd); if (blk_num * BLCKSZ != result) { fprintf(stderr, "Reading error"); @@ -4553,50 +4581,17 @@ static bool parse_dw_single_flush_file(const char* file_name) int offset = 0; int num = 0; dw_single_flush_item *temp = NULL; - uint16 head_dwn = ((dw_file_head_t*)file_head)->head.dwn; + dw_file_head_t* head = (dw_file_head_t*)file_head; + uint16 head_dwn = head->head.dwn; + dw_first_flush_item flush_item; + errno_t rc = EOK; - for (int i = 0; i < blk_num; i++) { - for (int j = i * batch_size; j < (i + 1) * batch_size; j++) { - offset = BLCKSZ * i + j % SINGLE_BLOCK_TAG_NUM * sizeof(dw_single_flush_item); - temp = (dw_single_flush_item*)((char*)buf + offset); - fprintf(stdout, - "flush_item[data_page_idx %u, dwn %u, crc %u]\n", - temp->data_page_idx, - temp->dwn, - temp->crc); - if (!dw_verify_item(temp, head_dwn)) { - fprintf(stdout, "flush item check failed, not need recovery \n"); - } else { - item[num].data_page_idx = temp->data_page_idx; - item[num].dwn = temp->dwn; - item[num].buf_tag = temp->buf_tag; - item[num].crc = temp->crc; - num++; - } - if (temp->buf_tag.rnode.bucketNode == -1) { - fprintf(stdout, - "buf_tag[rel %u/%u/%u blk %u fork %d]\n", - temp->buf_tag.rnode.spcNode, - temp->buf_tag.rnode.dbNode, - temp->buf_tag.rnode.relNode, - temp->buf_tag.blockNum, - temp->buf_tag.forkNum); - } else { - fprintf(stdout, - "buf_tag[rel %u/%u/%u/%d blk %u fork %d]\n", - temp->buf_tag.rnode.spcNode, - temp->buf_tag.rnode.dbNode, - temp->buf_tag.rnode.relNode, - temp->buf_tag.rnode.bucketNode, - temp->buf_tag.blockNum, - temp->buf_tag.forkNum); - } - } - } + fprintf(stdout, "first version page: \n"); + fprintf(stdout, "file_head info: dwn is %u, start is %u \n", head->head.dwn, head->start); - for (int i = 0; i < num; i++) { - int idx = item[i].data_page_idx; - fseek(fd, (162 + idx) * BLCKSZ, SEEK_SET); + for (uint16 i = head->start; i < DW_FIRST_DATA_PAGE_NUM; i++) { + offset = (i + 1) * BLCKSZ; /* need skip the file head */ + fseek(fd, offset, SEEK_SET); result = fread(dw_block, 1, BLCKSZ, fd); if (BLCKSZ != result) { fprintf(stderr, "Reading error"); @@ -4606,25 +4601,73 @@ static bool parse_dw_single_flush_file(const char* file_name) fclose(fd); return false; } - if (temp->buf_tag.rnode.bucketNode == -1) { - fprintf(stdout, - "buf_tag[rel %u/%u/%u blk %u fork %d]\n", - item[i].buf_tag.rnode.spcNode, - item[i].buf_tag.rnode.dbNode, - item[i].buf_tag.rnode.relNode, - item[i].buf_tag.blockNum, - item[i].buf_tag.forkNum); - } else { - fprintf(stdout, - "buf_tag[rel %u/%u/%u/%d blk %u fork %d]\n", - item[i].buf_tag.rnode.spcNode, - item[i].buf_tag.rnode.dbNode, - item[i].buf_tag.rnode.relNode, - item[i].buf_tag.rnode.bucketNode, - item[i].buf_tag.blockNum, - item[i].buf_tag.forkNum); + pghr = (PageHeader)dw_block; + rc = memcpy_s(&flush_item, sizeof(dw_first_flush_item), dw_block + pghr->pd_lower, sizeof(dw_first_flush_item)); + securec_check(rc, "\0", "\0"); + fprintf(stdout, + "dwn is %u, buf_tag[rel %u/%u/%u/%d blk %u fork %d]\n", + flush_item.dwn, + flush_item.buf_tag.rnode.spcNode, + flush_item.buf_tag.rnode.dbNode, + flush_item.buf_tag.rnode.relNode, + flush_item.buf_tag.rnode.bucketNode, + flush_item.buf_tag.blockNum, + flush_item.buf_tag.forkNum); + + if (CheckPageZeroCases(pghr)) { + uint16 blkno = flush_item.buf_tag.blockNum; + uint16 checksum = pg_checksum_page((char*)dw_block, blkno); + if (checksum != pghr->pd_checksum) { + fprintf(stdout, "page checksum failed \n"); } - (void)parse_a_page(dw_block, item[i].buf_tag.blockNum, item[i].buf_tag.blockNum % 131072, SEG_UNKNOWN); + } + (void)parse_a_page(dw_block, flush_item.buf_tag.blockNum, flush_item.buf_tag.blockNum % RELSEG_SIZE, SEG_UNKNOWN); + + } + + head = (dw_file_head_t*)second_file_head; + head_dwn = head->head.dwn; + fprintf(stdout, "second version page: \n"); + fprintf(stdout, "file_head info: dwn is %u, start is %u \n", head->head.dwn, head->start); + + for (uint16 i = head->start; i < DW_SECOND_DATA_PAGE_NUM; i++) { + offset = i * sizeof(dw_single_flush_item); + temp = (dw_single_flush_item*)((char*)buf + offset); + fprintf(stdout, "flush_item[data_page_idx %u, dwn %u, crc %u]\n", + temp->data_page_idx, temp->dwn, temp->crc); + if (dw_verify_item(temp, head_dwn)) { + item[num].data_page_idx = temp->data_page_idx; + item[num].dwn = temp->dwn; + item[num].buf_tag = temp->buf_tag; + item[num].crc = temp->crc; + num++; + } else { + fprintf(stdout, "flush item check failed, not need recovery \n"); + } + } + + for (int i = 0; i < num; i++) { + int idx = item[i].data_page_idx; + fseek(fd, (DW_SECOND_DATA_START_IDX + idx) * BLCKSZ, SEEK_SET); + result = fread(dw_block, 1, BLCKSZ, fd); + if (BLCKSZ != result) { + fprintf(stderr, "Reading error"); + free(item); + free(unaligned_buf); + free(unaligned_buf2); + fclose(fd); + return false; + } + + fprintf(stdout, + "buf_tag[rel %u/%u/%u/%d blk %u fork %d]\n", + item[i].buf_tag.rnode.spcNode, + item[i].buf_tag.rnode.dbNode, + item[i].buf_tag.rnode.relNode, + item[i].buf_tag.rnode.bucketNode, + item[i].buf_tag.blockNum, + item[i].buf_tag.forkNum); + (void)parse_a_page(dw_block, item[i].buf_tag.blockNum, item[i].buf_tag.blockNum % RELSEG_SIZE, SEG_UNKNOWN); } free(item); diff --git a/contrib/pageinspect/btreefuncs.cpp b/contrib/pageinspect/btreefuncs.cpp index 12889f84c..3fef7de58 100644 --- a/contrib/pageinspect/btreefuncs.cpp +++ b/contrib/pageinspect/btreefuncs.cpp @@ -212,44 +212,45 @@ Datum bt_page_stats(PG_FUNCTION_ARGS) elog(ERROR, "return type must be a row type"); j = 0; - int ret = 0; - values[j] = (char*)palloc(32); - ret = snprintf_s(values[j++], 32, 31, "%d", stat.blkno); + errno_t ret = 0; + const int charLen = 32; + values[j] = (char*)palloc(charLen); + ret = snprintf_s(values[j++], charLen, charLen - 1, "%d", stat.blkno); securec_check_ss(ret, "", ""); - values[j] = (char*)palloc(32); - ret = snprintf_s(values[j++], 32, 31, "%c", stat.type); + values[j] = (char*)palloc(charLen); + ret = snprintf_s(values[j++], charLen, charLen - 1, "%c", stat.type); securec_check_ss(ret, "", ""); - values[j] = (char*)palloc(32); - ret = snprintf_s(values[j++], 32, 31, "%d", stat.live_items); + values[j] = (char*)palloc(charLen); + ret = snprintf_s(values[j++], charLen, charLen - 1, "%d", stat.live_items); securec_check_ss(ret, "", ""); - values[j] = (char*)palloc(32); - ret = snprintf_s(values[j++], 32, 31, "%d", stat.dead_items); + values[j] = (char*)palloc(charLen); + ret = snprintf_s(values[j++], charLen, charLen - 1, "%d", stat.dead_items); securec_check_ss(ret, "", ""); - values[j] = (char*)palloc(32); - ret = snprintf_s(values[j++], 32, 31, "%d", stat.avg_item_size); + values[j] = (char*)palloc(charLen); + ret = snprintf_s(values[j++], charLen, charLen - 1, "%d", stat.avg_item_size); securec_check_ss(ret, "", ""); - values[j] = (char*)palloc(32); - ret = snprintf_s(values[j++], 32, 31, "%d", stat.page_size); + values[j] = (char*)palloc(charLen); + ret = snprintf_s(values[j++], charLen, charLen - 1, "%d", stat.page_size); securec_check_ss(ret, "", ""); - values[j] = (char*)palloc(32); - ret = snprintf_s(values[j++], 32, 31, "%d", stat.free_size); + values[j] = (char*)palloc(charLen); + ret = snprintf_s(values[j++], charLen, charLen - 1, "%d", stat.free_size); securec_check_ss(ret, "", ""); - values[j] = (char*)palloc(32); - ret = snprintf_s(values[j++], 32, 31, "%d", stat.btpo_prev); + values[j] = (char*)palloc(charLen); + ret = snprintf_s(values[j++], charLen, charLen - 1, "%d", stat.btpo_prev); securec_check_ss(ret, "", ""); - values[j] = (char*)palloc(32); - ret = snprintf_s(values[j++], 32, 31, "%d", stat.btpo_next); + values[j] = (char*)palloc(charLen); + ret = snprintf_s(values[j++], charLen, charLen - 1, "%d", stat.btpo_next); securec_check_ss(ret, "", ""); - values[j] = (char*)palloc(32); - if (stat.type == 'd'){ - ret = snprintf_s(values[j++], 64, 63, XID_FMT, stat.btpo.xact); - securec_check_ss(ret, "", ""); + if (stat.type == 'd') { + values[j] = (char*)palloc(charLen * 2); + ret = snprintf_s(values[j++], charLen * 2, charLen * 2 - 1, XID_FMT, stat.btpo.xact); } else { - ret = snprintf_s(values[j++], 32, 31, "%d", stat.btpo.level); - securec_check_ss(ret, "", ""); + values[j] = (char*)palloc(charLen); + ret = snprintf_s(values[j++], charLen, charLen - 1, "%d", stat.btpo.level); } - values[j] = (char*)palloc(32); - ret = snprintf_s(values[j++], 32, 31, "%d", stat.btpo_flags); + securec_check_ss(ret, "", ""); + values[j] = (char*)palloc(charLen); + ret = snprintf_s(values[j++], charLen, charLen - 1, "%d", stat.btpo_flags); securec_check_ss(ret, "", ""); tuple = BuildTupleFromCStrings(TupleDescGetAttInMetadata(tupleDesc), values); @@ -286,6 +287,7 @@ Datum bt_page_items(PG_FUNCTION_ARGS) FuncCallContext* fctx = NULL; MemoryContext mctx; struct user_args* uargs; + errno_t rc; if (!superuser()) ereport(ERROR, @@ -333,8 +335,7 @@ Datum bt_page_items(PG_FUNCTION_ARGS) uargs = (user_args*)palloc(sizeof(struct user_args)); uargs->page = (char*)palloc(BLCKSZ); - int rc = memcpy_s(uargs->page, BLCKSZ, BufferGetPage(buffer), BLCKSZ); - securec_check_c(rc, "\0", "\0"); + rc = memcpy_s(uargs->page, BLCKSZ, BufferGetPage(buffer), BLCKSZ); UnlockReleaseBuffer(buffer); relation_close(rel, AccessShareLock); @@ -380,21 +381,21 @@ Datum bt_page_items(PG_FUNCTION_ARGS) j = 0; values[j] = (char*)palloc(32); - int ret = 0; - ret = snprintf_s(values[j++], 32, 31, "%d", uargs->offset); - securec_check_ss(ret, "", ""); + rc = snprintf_s(values[j++], 32, 31, "%d", uargs->offset); + securec_check_ss(rc, "", ""); values[j] = (char*)palloc(32); - ret = snprintf_s(values[j++], 32, 31, "(%u,%u)", BlockIdGetBlockNumber(&(itup->t_tid.ip_blkid)), itup->t_tid.ip_posid); - securec_check_ss(ret, "", ""); + rc = snprintf_s(values[j++], 32, 31, "(%u,%u)", + BlockIdGetBlockNumber(&(itup->t_tid.ip_blkid)), itup->t_tid.ip_posid); + securec_check_ss(rc, "", ""); values[j] = (char*)palloc(32); - ret = snprintf_s(values[j++], 32, 31, "%d", (int)IndexTupleSize(itup)); - securec_check_ss(ret, "", ""); + rc = snprintf_s(values[j++], 32, 31, "%d", (int)IndexTupleSize(itup)); + securec_check_ss(rc, "", ""); values[j] = (char*)palloc(32); - ret = snprintf_s(values[j++], 32, 31, "%c", IndexTupleHasNulls(itup) ? 't' : 'f'); - securec_check_ss(ret, "", ""); + rc = snprintf_s(values[j++], 32, 31, "%c", IndexTupleHasNulls(itup) ? 't' : 'f'); + securec_check_ss(rc, "", ""); values[j] = (char*)palloc(32); - ret = snprintf_s(values[j++], 32, 31, "%c", IndexTupleHasVarwidths(itup) ? 't' : 'f'); - securec_check_ss(ret, "", ""); + rc = snprintf_s(values[j++], 32, 31, "%c", IndexTupleHasVarwidths(itup) ? 't' : 'f'); + securec_check_ss(rc, "", ""); ptr = (char*)itup + IndexInfoFindDataOffset(itup->t_info); dlen = IndexTupleSize(itup) - IndexInfoFindDataOffset(itup->t_info); @@ -406,8 +407,8 @@ Datum bt_page_items(PG_FUNCTION_ARGS) *dump++ = ' '; length--; } - ret = sprintf_s(dump, length, "%02x", *(ptr + off) & 0xff); - securec_check_ss(ret, "", ""); + rc = sprintf_s(dump, length, "%02x", *(ptr + off) & 0xff); + securec_check_ss(rc, "", ""); dump += 2; length -= 2; } @@ -477,26 +478,25 @@ Datum bt_metap(PG_FUNCTION_ARGS) elog(ERROR, "return type must be a row type"); j = 0; - int ret = 0; - + errno_t rc; values[j] = (char*)palloc(32); - ret = snprintf_s(values[j++], 32, 31, "%d", metad->btm_magic); - securec_check_ss(ret, "", ""); + rc = snprintf_s(values[j++], 32, 31, "%d", metad->btm_magic); + securec_check_ss(rc, "", ""); values[j] = (char*)palloc(32); - ret = snprintf_s(values[j++], 32, 31, "%d", metad->btm_version); - securec_check_ss(ret, "", ""); + rc = snprintf_s(values[j++], 32, 31, "%d", metad->btm_version); + securec_check_ss(rc, "", ""); values[j] = (char*)palloc(32); - ret = snprintf_s(values[j++], 32, 31, "%d", metad->btm_root); - securec_check_ss(ret, "", ""); + rc = snprintf_s(values[j++], 32, 31, "%d", metad->btm_root); + securec_check_ss(rc, "", ""); values[j] = (char*)palloc(32); - ret = snprintf_s(values[j++], 32, 31, "%d", metad->btm_level); - securec_check_ss(ret, "", ""); + rc = snprintf_s(values[j++], 32, 31, "%d", metad->btm_level); + securec_check_ss(rc, "", ""); values[j] = (char*)palloc(32); - ret = snprintf_s(values[j++], 32, 31, "%d", metad->btm_fastroot); - securec_check_ss(ret, "", ""); + rc = snprintf_s(values[j++], 32, 31, "%d", metad->btm_fastroot); + securec_check_ss(rc, "", ""); values[j] = (char*)palloc(32); - ret = snprintf_s(values[j++], 32, 31, "%d", metad->btm_fastlevel); - securec_check_ss(ret, "", ""); + rc = snprintf_s(values[j++], 32, 31, "%d", metad->btm_fastlevel); + securec_check_ss(rc, "", ""); tuple = BuildTupleFromCStrings(TupleDescGetAttInMetadata(tupleDesc), values); diff --git a/contrib/pageinspect/ginfuncs.cpp b/contrib/pageinspect/ginfuncs.cpp index 2e08b7088..8442e44ad 100644 --- a/contrib/pageinspect/ginfuncs.cpp +++ b/contrib/pageinspect/ginfuncs.cpp @@ -67,9 +67,8 @@ Datum gin_metapage_info(PG_FUNCTION_ARGS) metadata = GinPageGetMeta(page); - int nRet = 0; - nRet = memset_s(nulls, sizeof(nulls), 0, sizeof(nulls)); - securec_check_c(nRet, "\0", "\0"); + errno_t rc = memset_s(nulls, sizeof(nulls), 0, sizeof(nulls)); + securec_check_c(rc, "\0", "\0"); values[0] = Int64GetDatum(metadata->head); values[1] = Int64GetDatum(metadata->tail); @@ -146,9 +145,8 @@ Datum gin_page_opaque_info(PG_FUNCTION_ARGS) flags[nflags++] = DirectFunctionCall1(to_hex32, Int32GetDatum(flagbits)); } - int nRet = 0; - nRet = memset_s(nulls, sizeof(nulls), 0, sizeof(nulls)); - securec_check_c(nRet, "\0", "\0"); + errno_t rc = memset_s(nulls, sizeof(nulls), 0, sizeof(nulls)); + securec_check_c(rc, "\0", "\0"); values[0] = Int64GetDatum(opaq->rightlink); values[1] = Int64GetDatum(opaq->maxoff); @@ -238,9 +236,8 @@ Datum gin_leafpage_items(PG_FUNCTION_ARGS) ItemPointer tids; Datum* tids_datum = NULL; - int nRet = 0; - nRet = memset_s(nulls, sizeof(nulls), 0, sizeof(nulls)); - securec_check_c(nRet, "\0", "\0"); + errno_t rc = memset_s(nulls, sizeof(nulls), 0, sizeof(nulls)); + securec_check_c(rc, "\0", "\0"); values[0] = ItemPointerGetDatum(&cur->first); values[1] = UInt16GetDatum(cur->nbytes); diff --git a/contrib/pageinspect/heapfuncs.cpp b/contrib/pageinspect/heapfuncs.cpp index a089dbc70..2fbaa16b3 100644 --- a/contrib/pageinspect/heapfuncs.cpp +++ b/contrib/pageinspect/heapfuncs.cpp @@ -121,9 +121,8 @@ Datum heap_page_items(PG_FUNCTION_ARGS) uint16 lp_flags; uint16 lp_len; - int nRet = 0; - nRet = memset_s(nulls, sizeof(nulls), 0, sizeof(nulls)); - securec_check_c(nRet, "\0", "\0"); + errno_t rc = memset_s(nulls, sizeof(nulls), 0, sizeof(nulls)); + securec_check_c(rc, "\0", "\0"); /* Extract information from the line pointer */ diff --git a/contrib/pageinspect/rawpage.cpp b/contrib/pageinspect/rawpage.cpp index d8be2b212..c1442494b 100644 --- a/contrib/pageinspect/rawpage.cpp +++ b/contrib/pageinspect/rawpage.cpp @@ -154,7 +154,7 @@ static bytea* get_raw_page_internal(text* relname, ForkNumber forknum, BlockNumb buf = ReadBufferExtended(rel, forknum, blkno, RBM_NORMAL, NULL); LockBuffer(buf, BUFFER_LOCK_SHARE); - int rc = memcpy_s(raw_page_data, BLCKSZ, BufferGetPage(buf), BLCKSZ); + errno_t rc = memcpy_s(raw_page_data, BLCKSZ, BufferGetPage(buf), BLCKSZ); securec_check_c(rc, "\0", "\0"); LockBuffer(buf, BUFFER_LOCK_UNLOCK); @@ -306,7 +306,7 @@ Datum page_compress_meta(PG_FUNCTION_ARGS) bytea* dumpVal = (bytea*)palloc(VARHDRSZ + output->len); SET_VARSIZE(dumpVal, VARHDRSZ + output->len); - int rc = memcpy_s(VARDATA(dumpVal), output->len, output->data, output->len); + errno_t rc = memcpy_s(VARDATA(dumpVal), output->len, output->data, output->len); securec_check_c(rc, "\0", "\0"); pfree(output->data); pfree(output); @@ -326,7 +326,7 @@ Datum page_compress_meta_usage(PG_FUNCTION_ARGS) bytea* dumpVal = (bytea*)palloc(VARHDRSZ + help_size); SET_VARSIZE(dumpVal, VARHDRSZ + help_size); - int rc = memcpy_s(VARDATA(dumpVal), help_size, help, help_size); + errno_t rc = memcpy_s(VARDATA(dumpVal), help_size, help, help_size); securec_check_c(rc, "\0", "\0"); PG_RETURN_TEXT_P(dumpVal); @@ -413,7 +413,7 @@ static char* read_raw_page(Relation rel, ForkNumber forknum, BlockNumber blkno) raw_page = (char*)palloc(BLCKSZ); buf = ReadBufferExtended(rel, forknum, blkno, RBM_NORMAL, NULL); LockBuffer(buf, BUFFER_LOCK_SHARE); - int rc = memcpy_s(raw_page, BLCKSZ, BufferGetPage(buf), BLCKSZ); + errno_t rc = memcpy_s(raw_page, BLCKSZ, BufferGetPage(buf), BLCKSZ); securec_check_c(rc, "\0", "\0"); LockBuffer(buf, BUFFER_LOCK_UNLOCK); ReleaseBuffer(buf); diff --git a/contrib/pg_archivecleanup/pg_archivecleanup.cpp b/contrib/pg_archivecleanup/pg_archivecleanup.cpp index 53485e7c3..8bc43fa31 100644 --- a/contrib/pg_archivecleanup/pg_archivecleanup.cpp +++ b/contrib/pg_archivecleanup/pg_archivecleanup.cpp @@ -177,6 +177,7 @@ static void SetWALFileNameForCleanup(void) { bool fnameOK = false; errno_t errorno = EOK; + int segLen = 32; TrimExtension(restartWALFileName, additional_ext); @@ -204,7 +205,7 @@ static void SetWALFileNameForCleanup(void) * Use just the prefix of the filename, ignore everything after * first period */ - XLogFileName(exclusiveCleanupFileName, tli, ((uint64)log) << 32 | seg); + XLogFileName(exclusiveCleanupFileName, tli, ((uint64)log) << segLen | seg); } } diff --git a/contrib/pg_stat_statements/Makefile b/contrib/pg_stat_statements/Makefile index 6d4631d20..e8aed6121 100644 --- a/contrib/pg_stat_statements/Makefile +++ b/contrib/pg_stat_statements/Makefile @@ -17,6 +17,3 @@ top_builddir = ../.. include $(top_builddir)/src/Makefile.global include $(top_srcdir)/contrib/contrib-global.mk endif - -exclude_option=-fPIE -override CPPFLAGS := $(filter-out $(exclude_option),$(CPPFLAGS)) diff --git a/contrib/pg_stat_statements/pg_stat_statements.cpp b/contrib/pg_stat_statements/pg_stat_statements.cpp index 6d8aaf269..bd37f0a63 100644 --- a/contrib/pg_stat_statements/pg_stat_statements.cpp +++ b/contrib/pg_stat_statements/pg_stat_statements.cpp @@ -135,7 +135,7 @@ typedef struct pgssEntry { * Global shared state */ typedef struct pgssSharedState { - LWLock* lock; /* protects hashtable search/modification */ + LWLockId lock; /* protects hashtable search/modification */ int query_size; /* max query length in bytes */ double cur_median_usage; /* current median usage in hashtable */ } pgssSharedState; @@ -172,20 +172,20 @@ typedef struct pgssJumbleState { /*---- Local variables ----*/ /* Current nesting depth of ExecutorRun+ProcessUtility calls */ -static THR_LOCAL int nested_level = 0; +static int nested_level = 0; /* Saved hook values in case of unload */ -static THR_LOCAL shmem_startup_hook_type prev_shmem_startup_hook = NULL; -static THR_LOCAL post_parse_analyze_hook_type prev_post_parse_analyze_hook = NULL; -static THR_LOCAL ExecutorStart_hook_type prev_ExecutorStart = NULL; -static THR_LOCAL ExecutorRun_hook_type prev_ExecutorRun = NULL; -static THR_LOCAL ExecutorFinish_hook_type prev_ExecutorFinish = NULL; -static THR_LOCAL ExecutorEnd_hook_type prev_ExecutorEnd = NULL; -static THR_LOCAL ProcessUtility_hook_type prev_ProcessUtility = NULL; +static shmem_startup_hook_type prev_shmem_startup_hook = NULL; +static post_parse_analyze_hook_type prev_post_parse_analyze_hook = NULL; +static ExecutorStart_hook_type prev_ExecutorStart = NULL; +static ExecutorRun_hook_type prev_ExecutorRun = NULL; +static ExecutorFinish_hook_type prev_ExecutorFinish = NULL; +static ExecutorEnd_hook_type prev_ExecutorEnd = NULL; +static ProcessUtility_hook_type prev_ProcessUtility = NULL; /* Links to shared memory state */ -static THR_LOCAL pgssSharedState* pgss = NULL; -static THR_LOCAL HTAB* pgss_hash = NULL; +static pgssSharedState* pgss = NULL; +static HTAB* pgss_hash = NULL; /*---- GUC variables ----*/ @@ -210,8 +210,8 @@ static bool pgss_save; /* whether to save stats across shutdown */ void _PG_init(void); void _PG_fini(void); -extern "C" Datum pg_stat_statements_reset(PG_FUNCTION_ARGS); -extern "C" Datum pg_stat_statements(PG_FUNCTION_ARGS); +Datum pg_stat_statements_reset(PG_FUNCTION_ARGS); +Datum pg_stat_statements(PG_FUNCTION_ARGS); PG_FUNCTION_INFO_V1(pg_stat_statements_reset); PG_FUNCTION_INFO_V1(pg_stat_statements); @@ -260,7 +260,7 @@ void _PG_init(void) * module isn't active. The functions must protect themselves against * being called then, however.) */ - if (!u_sess->misc_cxt.process_shared_preload_libraries_in_progress) + if (!process_shared_preload_libraries_in_progress) return; /* @@ -389,7 +389,7 @@ static void pgss_shmem_startup(void) if (!found) { /* First time through ... */ - pgss->lock = LWLockAssign(LWTRANCHE_BUFFER_CONTENT); + pgss->lock = LWLockAssign(); pgss->query_size = g_instance.attr.attr_common.pgstat_track_activity_query_size; pgss->cur_median_usage = ASSUMED_MEDIAN_INIT; } @@ -456,7 +456,7 @@ static void pgss_shmem_startup(void) buffer_size = temp.query_len + 1; } - if (fread(buffer, 1, temp.query_len, file) != (size_t)temp.query_len) + if (fread(buffer, 1, temp.query_len, file) != temp.query_len) goto error; buffer[temp.query_len] = '\0'; @@ -536,7 +536,7 @@ static void pgss_shmem_shutdown(int code, Datum arg) while ((entry = (pgssEntry*)hash_seq_search(&hash_seq)) != NULL) { int len = entry->query_len; - if (fwrite(entry, offsetof(pgssEntry, mutex), 1, file) != 1 || fwrite(entry->query, 1, len, file) != (size_t)len) + if (fwrite(entry, offsetof(pgssEntry, mutex), 1, file) != 1 || fwrite(entry->query, 1, len, file) != len) goto error; } @@ -748,8 +748,8 @@ static void pgss_ProcessUtility(Node* parsetree, const char* queryString, ParamL BufferUsage bufusage_start, bufusage; uint32 queryId; - bufusage_start = *(u_sess->instr_cxt.pg_buffer_usage); - INSTR_TIME_SET_CURRENT(start); + bufusage_start = u_sess->instr_cxt.pg_buffer_usage->INSTR_TIME_SET_CURRENT(start); + nested_level++; PG_TRY(); { @@ -1661,12 +1661,6 @@ static void JumbleExpr(pgssJumbleState* jstate, Node* node) JumbleExpr(jstate, (Node*)lfirst(temp)); } break; - case T_IntList: - foreach(temp, (List *) node) - { - APP_JUMB(lfirst_int(temp)); - } - break; case T_SortGroupClause: { SortGroupClause* sgc = (SortGroupClause*)node; @@ -1680,7 +1674,6 @@ static void JumbleExpr(pgssJumbleState* jstate, Node* node) JumbleExpr(jstate, (Node*)gsnode->content); } - break; case T_WindowClause: { WindowClause* wc = (WindowClause*)node; diff --git a/contrib/pg_xlogdump/pg_xlogdump.cpp b/contrib/pg_xlogdump/pg_xlogdump.cpp index 0328e7a2c..ba44fc414 100644 --- a/contrib/pg_xlogdump/pg_xlogdump.cpp +++ b/contrib/pg_xlogdump/pg_xlogdump.cpp @@ -41,6 +41,8 @@ typedef struct XLogDumpPrivate { XLogRecPtr startptr; XLogRecPtr endptr; bool endptr_reached; + char* shareStorageXlogFilePath; + long shareStorageXlogSize; } XLogDumpPrivate; typedef struct XLogDumpConfig { @@ -254,6 +256,71 @@ static void XLogDumpTablePage(XLogReaderState* record, int block_id, RelFileNode printf(" write FPW page %s to disk", block_path); } +// for dorado storage +static void XLogDumpReadSharedStorage(char* directory, XLogRecPtr startptr, long xlogSize, char* buf, Size count) +{ + char* p = buf; + XLogRecPtr recptr; + Size nbytes; + + static int sendFile = -1; + static uint64 sendOff = 0; + + recptr = startptr; + nbytes = count; + + while (nbytes > 0) { + int segbytes; + int readbytes; + + uint64 startoff = (recptr % xlogSize) + XLogSegSize; + + if (sendFile < 0) { + canonicalize_path(directory); + sendFile = open(directory, O_RDONLY | PG_BINARY, 0); + + if (sendFile < 0) { + fatal_error("could not find file \"%s\": %s", directory, strerror(errno)); + } + sendOff = 0; + } + + /* Need to seek in the file? */ + if (sendOff != startoff) { + if (lseek(sendFile, (off_t)startoff, SEEK_SET) < 0) { + int err = errno; + fatal_error("could not seek in log segment %s to offset %lu: %s", directory, startoff, strerror(err)); + } + sendOff = startoff; + } + + /* How many bytes are within this segment? */ + if (nbytes > (xlogSize - startoff)) { + segbytes = xlogSize - startoff; + } else { + segbytes = nbytes; + } + readbytes = read(sendFile, p, segbytes); + if (readbytes <= 0) { + int err = errno; + + fatal_error("could not read from log segment %s, offset %ld, length %d: %s", + directory, + sendOff, + segbytes, + strerror(err)); + } + + /* Update state for read */ + XLByteAdvance(recptr, readbytes); + + sendOff += readbytes; + nbytes -= readbytes; + p += readbytes; + } +} + + /* * Read count bytes from a segment file in the specified directory, for the * given timeline, containing the specified record pointer; store the data in @@ -351,7 +418,6 @@ static int XLogDumpReadPage(XLogReaderState* state, XLogRecPtr targetPagePtr, in if (!XLByteEQ(dumpprivate->endptr, InvalidXLogRecPtr)) { int recptrdiff = XLByteDifference(dumpprivate->endptr, targetPagePtr); - if (XLOG_BLCKSZ <= recptrdiff) count = XLOG_BLCKSZ; else if (reqLen <= recptrdiff) @@ -362,7 +428,12 @@ static int XLogDumpReadPage(XLogReaderState* state, XLogRecPtr targetPagePtr, in } } - XLogDumpXLogRead(dumpprivate->inpath, dumpprivate->timeline, targetPagePtr, readBuff, count); + if (dumpprivate->shareStorageXlogFilePath == NULL) { + XLogDumpXLogRead(dumpprivate->inpath, dumpprivate->timeline, targetPagePtr, readBuff, count); + } else { + XLogDumpReadSharedStorage(dumpprivate->shareStorageXlogFilePath, targetPagePtr, + dumpprivate->shareStorageXlogSize, readBuff, count); + } return count; } @@ -715,6 +786,8 @@ static void usage(void) printf(" -r, --rmgr=RMGR only show records generated by resource manager RMGR\n"); printf(" use --rmgr=list to list valid resource manager names\n"); printf(" -s, --start=RECPTR start reading at log position RECPTR\n"); + printf(" -S, --size=n for share storage, the length of xlog file size(not include ctl info length)\n"); + printf(" default: 512*1024*1024*1024(512GB)\n"); printf(" -t, --timeline=TLI timeline from which to read log records\n"); printf(" (default: 1 or the value used in STARTSEG)\n"); printf(" -V, --version output version information, then exit\n"); @@ -748,6 +821,7 @@ int main(int argc, char** argv) {"timeline", required_argument, NULL, 't'}, {"write-fpw", no_argument, NULL, 'w'}, {"xid", required_argument, NULL, 'x'}, + {"size", required_argument, NULL, 'S'}, {"version", no_argument, NULL, 'V'}, {"verbose", no_argument, NULL, 'v'}, {"stats", no_argument, NULL, 'z'}, @@ -766,6 +840,9 @@ int main(int argc, char** argv) dumpprivate.startptr = InvalidXLogRecPtr; dumpprivate.endptr = InvalidXLogRecPtr; dumpprivate.endptr_reached = false; + dumpprivate.shareStorageXlogFilePath = NULL; + const long defaultShareStorageXlogSize = 512 * 1024 * 1024 * 1024L; + dumpprivate.shareStorageXlogSize = defaultShareStorageXlogSize; config.bkp_details = false; config.write_fpw = false; @@ -783,7 +860,7 @@ int main(int argc, char** argv) goto bad_argument; } - while ((option = getopt_long(argc, argv, "be:?fn:p:r:s:t:Vvwx:z", long_options, &optindex)) != -1) { + while ((option = getopt_long(argc, argv, "be:?fn:p:r:s:S:t:Vvwx:z", long_options, &optindex)) != -1) { switch (option) { case 'b': config.bkp_details = true; @@ -838,6 +915,13 @@ int main(int argc, char** argv) } dumpprivate.startptr = (((uint64)hi) << 32) | lo; break; + case 'S': + dumpprivate.shareStorageXlogSize = atol(optarg); + if (dumpprivate.shareStorageXlogSize == 0) { + fprintf(stderr, "%s: could not parse share storage xlog size \"%s\"\n", progname, optarg); + goto bad_argument; + } + break; case 't': if (sscanf(optarg, "%d", &dumpprivate.timeline) != 1) { fprintf(stderr, "%s: could not parse timeline \"%s\"\n", progname, optarg); @@ -891,6 +975,11 @@ int main(int argc, char** argv) split_path(argv[optind], &directory, &fname); + if (strspn(fname, "0123456789ABCDEFabcdef") != strlen(fname)) { + dumpprivate.shareStorageXlogFilePath = strdup(argv[optind]); + goto begin_read; + } + if (dumpprivate.inpath == NULL && directory != NULL) { dumpprivate.inpath = directory; @@ -949,7 +1038,9 @@ int main(int argc, char** argv) targetsegno = endsegno; } - if (!XLByteInSeg(dumpprivate.endptr, targetsegno) && dumpprivate.endptr != (targetsegno + 1) * XLogSegSize) { + bool reachEnd = !XLByteInSeg(dumpprivate.endptr, targetsegno) && + (dumpprivate.endptr != (targetsegno + 1) * XLogSegSize); + if (reachEnd) { fprintf(stderr, "%s: end log position %X/%X is not inside file \"%s\"\n", progname, @@ -960,6 +1051,7 @@ int main(int argc, char** argv) } } +begin_read: /* we don't know what to print */ if (XLogRecPtrIsInvalid(dumpprivate.startptr)) { fprintf(stderr, "%s: no start log position given.\n", progname); diff --git a/contrib/pgstattuple/pgstattuple.cpp b/contrib/pgstattuple/pgstattuple.cpp index d7c7b55b6..e6c40a5c6 100644 --- a/contrib/pgstattuple/pgstattuple.cpp +++ b/contrib/pgstattuple/pgstattuple.cpp @@ -2,6 +2,7 @@ * contrib/pgstattuple/pgstattuple.c * * Copyright (c) 2001,2002 Tatsuo Ishii + * Portions Copyright (c) 2021, openGauss Contributors * * Permission to use, copy, modify, and distribute this software and * its documentation for any purpose, without fee, and without a @@ -196,6 +197,7 @@ static Datum pgstat_relation(Relation rel, FunctionCallInfo fcinfo) case RELKIND_TOASTVALUE: case RELKIND_UNCATALOGED: case RELKIND_SEQUENCE: + case RELKIND_LARGE_SEQUENCE: return pgstat_heap(rel, fcinfo); case RELKIND_INDEX: switch (rel->rd_rel->relam) { diff --git a/contrib/security_plugin/access_audit.cpp b/contrib/security_plugin/access_audit.cpp index 31b11de23..be6cdce7e 100644 --- a/contrib/security_plugin/access_audit.cpp +++ b/contrib/security_plugin/access_audit.cpp @@ -240,8 +240,11 @@ void check_access_table(const policy_set *policy_ids, RangeVar *rel, int access_ if (rel == NULL) { return; } - PolicyLabelItem item(rel->schemaname, rel->relname, "", object_type); + + /* PolicyLabelItem construction will append schema oid by relid */ + PolicyLabelItem item; PolicyLabelItem view_item(0, 0, O_VIEW); + gen_policy_labelitem(item, (const ListCell *)rel, object_type); policy_result pol_result; int block_behaviour = 0; check_audit_policy_access(&item, &view_item, access_type, policy_ids, &pol_result, @@ -257,18 +260,17 @@ void audit_open_relation(List *list, Var *col_att, PolicyLabelItem *full_column, } RangeTblEntry *rte = (RangeTblEntry *)list_nth(list, relation_pos); if (rte && rte->relid > 0) { - if (rte->relid > 0) { - Relation tbl_rel = relation_open(rte->relid, AccessShareLock); - if (tbl_rel) { - /* schema */ - if (tbl_rel->rd_rel) { - full_column->m_schema = tbl_rel->rd_rel->relnamespace; - } - relation_close(tbl_rel, AccessShareLock); - } + Relation tbl_rel = relation_open(rte->relid, AccessShareLock); + if (tbl_rel->rd_rel) { + /* schema */ + full_column->m_schema = tbl_rel->rd_rel->relnamespace; } - /* subquery in from */ - if (rte->rtekind == RTE_SUBQUERY) { + relation_close(tbl_rel, AccessShareLock); + + if (rte->rtekind == RTE_REMOTE_DUMMY) { + return; + } else if (rte->rtekind == RTE_SUBQUERY) { + /* subquery in from */ if (rte->subquery) { audit_open_relation(rte->subquery->rtable, col_att, full_column, is_found); } @@ -450,12 +452,15 @@ void handle_subquery(RangeTblEntry *rte, int commandType, policy_result *pol_res } ListCell *lc = NULL; foreach(lc, rte->subquery->rtable) { - RangeTblEntry *sub_rte = (RangeTblEntry *) lfirst(lc); - if (sub_rte == NULL) + RangeTblEntry *sub_rte = (RangeTblEntry *)lfirst(lc); + if (sub_rte == NULL) { break; + } - /* recursive call handle_subquery till find a table object */ - if (sub_rte->rtekind == RTE_SUBQUERY && sub_rte->subquery) { + if (sub_rte->rtekind == RTE_REMOTE_DUMMY) { + continue; + } else if (sub_rte->rtekind == RTE_SUBQUERY && sub_rte->subquery) { + /* recursive call handle_subquery till find a table object */ handle_subquery(sub_rte, commandType, pol_result, checked_tables, policy_ids, security_policy_ids, &(++(*recursion_deep))); } else if (sub_rte->relname) { @@ -465,12 +470,66 @@ void handle_subquery(RangeTblEntry *rte, int commandType, policy_result *pol_res if (checked_tables->insert(sub_rte->relname).second) { CmdType cmd_type = get_rte_commandtype(rte); cmd_type = (cmd_type == CMD_UNKNOWN) ? (CmdType)commandType : cmd_type; - if (!handle_table_entry(sub_rte, cmd_type, policy_ids, - security_policy_ids, pol_result)) + if (!handle_table_entry(sub_rte, cmd_type, policy_ids, security_policy_ids, pol_result)) { continue; + } flush_policy_result(pol_result, cmd_type); } } } } + +void access_audit_policy_run(const List* rtable, CmdType cmd_type) +{ + if (rtable == NULL) { + return; + } + /* filt audit policys by application info */ + policy_set policy_ids; + IPV6 ip; + get_remote_addr(&ip); + FilterData filter_item(get_session_app_name(), ip); + check_audit_policy_filter(&filter_item, &policy_ids); + + ListCell *lc = NULL; + policy_set security_policy_ids; + _checked_tables checked_tables; + foreach (lc, rtable) { + /* table object */ + RangeTblEntry *rte = (RangeTblEntry *)lfirst(lc); + policy_result pol_result; + if (rte == NULL || rte->relname == NULL || rte->rtekind == RTE_REMOTE_DUMMY) { + continue; + } + + if (rte->rtekind == RTE_SUBQUERY && rte->subquery) { /* relation is subquery */ + int recursion_deep = 0; + handle_subquery(rte, rte->subquery->commandType, &pol_result, &checked_tables, &policy_ids, + &security_policy_ids, &recursion_deep); + } else if (checked_tables.insert(rte->relname).second) { /* verify if table object already checked */ + /* use query plan commandtype here but not get it from rte directly */ + if (!handle_table_entry(rte, cmd_type, &policy_ids, &security_policy_ids, &pol_result)) { + continue; + } + flush_policy_result(&pol_result, cmd_type); + } + } + + flush_access_logs(AUDIT_OK); +} + +void opfusion_unified_audit_executor(const PlannedStmt *plannedstmt) +{ + /* verify parameter and audit policy */ + if (!u_sess->attr.attr_security.Enable_Security_Policy || u_sess->proc_cxt.IsInnerMaintenanceTools || + IsConnFromCoord() || !is_audit_policy_exist_load_policy_info()) { + return; + } + + ereport(DEBUG1, (errmsg("opfusion_unified_audit_executor routine enter"))); + if (!plannedstmt) { + return; + } + access_audit_policy_run(plannedstmt->rtable, plannedstmt->commandType); +} \ No newline at end of file diff --git a/contrib/security_plugin/access_audit.h b/contrib/security_plugin/access_audit.h index 5e7a4ba3f..af8316aaf 100644 --- a/contrib/security_plugin/access_audit.h +++ b/contrib/security_plugin/access_audit.h @@ -52,5 +52,6 @@ void open_relation(List *list, Var *col_att, PolicyLabelItem *full_column, bool void handle_subquery(RangeTblEntry *rte, int commandType, policy_result *pol_result, _checked_tables *checked_tables, const policy_set *policy_ids, const policy_set *security_policy_ids, int *recursion_deep); void audit_open_relation(List *list, Var *col_att, PolicyLabelItem *full_column, bool *is_found); +void access_audit_policy_run(const List* rtable, CmdType cmd_type); +void opfusion_unified_audit_executor(const PlannedStmt *plannedstmt); #endif /* ACCESS_AUDIT_H_ */ - diff --git a/contrib/security_plugin/gs_audit_policy.cpp b/contrib/security_plugin/gs_audit_policy.cpp index 5ab4ece49..516367c95 100644 --- a/contrib/security_plugin/gs_audit_policy.cpp +++ b/contrib/security_plugin/gs_audit_policy.cpp @@ -491,78 +491,81 @@ bool check_audit_policy_access(const PolicyLabelItem *item, const PolicyLabelIte } } - PolicyLabelItem view_object_item(view_item->m_schema, view_item->m_object, - O_COLUMN, view_item->m_column); /* * walk through all the access audit label info to match with label of object */ + if (labels.empty()) { + return false; + } + bool has_column = false; - if (labels.size()) { - AccessPair object_item("", item->m_obj_type); - { - gs_stl::gs_string value; - item->get_fqdn_value(&value); - object_item.first = value.c_str(); + PolicyLabelItem view_object_item(view_item->m_schema, view_item->m_object, + O_COLUMN, view_item->m_column); + AccessPair object_item("", item->m_obj_type); + { + gs_stl::gs_string value; + item->get_fqdn_value(&value); + object_item.first = value.c_str(); + } + loaded_labels *tmp_labels = get_policy_labels(); + policy_label_map::const_iterator lit = labels.begin(); + policy_label_map::const_iterator elit = labels.end(); + for (; lit != elit; ++lit) { + const PolicyPair &pol_item = *(lit.first); + loaded_labels::const_iterator it; + if (tmp_labels != NULL) { + it = tmp_labels->find(lit->second->c_str()); } - loaded_labels *tmp_labels = get_policy_labels(); - policy_label_map::const_iterator lit = labels.begin(); - policy_label_map::const_iterator elit = labels.end(); - for (; lit != elit; ++lit) { - const PolicyPair& pol_item = *(lit.first); - loaded_labels::const_iterator it; - if (tmp_labels != NULL) { - it = tmp_labels->find(lit->second->c_str()); + if ((tmp_labels == NULL || it == tmp_labels->end()) && *(lit->second) == "all") { + (*pol_result)[pol_item.m_id][object_item]; + if (pol_item.m_block_type > 0) { + *block_behaviour = pol_item.m_block_type; + return has_column; } - if ((tmp_labels == NULL || it == tmp_labels->end()) && *(lit->second) == "all") { - (*pol_result)[pol_item.m_id][object_item]; - if (pol_item.m_block_type > 0) { - *block_behaviour = pol_item.m_block_type; - return has_column; + } else if (it != tmp_labels->end()) { + /* */ + typed_labels::const_iterator fit = it->second->begin(); + typed_labels::const_iterator feit = it->second->end(); + for (; fit != feit; ++fit) { + bool is_columnn = (*(fit->first) == O_COLUMN); + has_column = has_column || is_columnn; + if (*(fit->first) != item->m_obj_type && (*fit->first) != O_SCHEMA) { + continue; } - } else if (it != tmp_labels->end()) { - typed_labels::const_iterator fit = it->second->begin(); - typed_labels::const_iterator feit = it->second->end(); - for (; fit != feit; ++fit) { - bool is_columnn = (*(fit->first) == O_COLUMN); - has_column = has_column || is_columnn; - if (*(fit->first) != item->m_obj_type && (*fit->first) != O_SCHEMA) { - continue; - } - const gs_policy_label_set& objects = *(fit->second); - if (is_columnn) { - if (view_object_item.m_object && !view_object_item.empty() && - objects.find(view_object_item) != objects.end()) { - gs_stl::gs_string value; - view_object_item.get_fqdn_value(&value); - object_item.first = value.c_str(); + const gs_policy_label_set &objects = *(fit->second); + if (is_columnn) { + if (view_object_item.m_object && !view_object_item.empty() && + objects.find(view_object_item) != objects.end()) { + gs_stl::gs_string value; + view_object_item.get_fqdn_value(&value); + object_item.first = value.c_str(); - (*pol_result)[pol_item.m_id][object_item].insert(view_object_item.m_column); - if (pol_item.m_block_type > 0) { - *block_behaviour = pol_item.m_block_type; - return has_column; - } - } - if (objects.find(*item) != objects.end()) { - (*pol_result)[pol_item.m_id][object_item].insert(item->m_column); - if (pol_item.m_block_type > 0) { - *block_behaviour = pol_item.m_block_type; - return has_column; - } - } - } else if (*(fit->first) == O_SCHEMA) { - PolicyLabelItem sch_item; - sch_item.m_schema = item->m_schema; - if (objects.find(sch_item) != objects.end()) { - (*pol_result)[pol_item.m_id][object_item]; - } - } else if (objects.find(*item) != objects.end()) { - (*pol_result)[pol_item.m_id][object_item]; + (*pol_result)[pol_item.m_id][object_item].insert(view_object_item.m_column); if (pol_item.m_block_type > 0) { *block_behaviour = pol_item.m_block_type; return has_column; } } + if (objects.find(*item) != objects.end()) { + (*pol_result)[pol_item.m_id][object_item].insert(item->m_column); + if (pol_item.m_block_type > 0) { + *block_behaviour = pol_item.m_block_type; + return has_column; + } + } + } else if (*(fit->first) == O_SCHEMA) { + PolicyLabelItem sch_item; + sch_item.m_schema = item->m_schema; + if (objects.find(sch_item) != objects.end()) { + (*pol_result)[pol_item.m_id][object_item]; + } + } else if (objects.find(*item) != objects.end()) { + (*pol_result)[pol_item.m_id][object_item]; + if (pol_item.m_block_type > 0) { + *block_behaviour = pol_item.m_block_type; + return has_column; + } } } } diff --git a/contrib/security_plugin/gs_audit_policy.h b/contrib/security_plugin/gs_audit_policy.h index bbe3a545b..cf36b2e4e 100644 --- a/contrib/security_plugin/gs_audit_policy.h +++ b/contrib/security_plugin/gs_audit_policy.h @@ -113,8 +113,6 @@ typedef void (*Reset_security_privilige_hook_type)(); typedef bool (*CheckSecurityPolicyFilter_hook_type)(const FilterData arg, policy_set *policy_ids); typedef bool (*Security_isRoleInUse_hook_type)(Oid roleid); typedef bool (*Security_Check_acl_privilige_hook_type)(int privilige); -typedef bool (*Security_LoginHandle_access_hook_type)(const char *dbname, const char *username, - bool success, bool login); typedef bool (*Reload_security_policy_hook_type)(); #endif diff --git a/contrib/security_plugin/gs_mask_policy.cpp b/contrib/security_plugin/gs_mask_policy.cpp index 6553f99f0..9ca0d90ee 100644 --- a/contrib/security_plugin/gs_mask_policy.cpp +++ b/contrib/security_plugin/gs_mask_policy.cpp @@ -177,7 +177,16 @@ static bool is_valid_language(Oid lang_oid) static bool is_valid_for_masking(const char* func_name, Oid funcnsp, int& funcid, const char* func_parameters, bool* invalid_params) { - CatCList *catlist = SearchSysCacheList1(PROCNAMEARGSNSP, CStringGetDatum(func_name)); + CatCList *catlist = NULL; +#ifndef ENABLE_MULTIPLE_NODES + if (t_thrd.proc->workingVersionNum < 92470) { + catlist = SearchSysCacheList1(PROCNAMEARGSNSP, CStringGetDatum(func_name)); + } else { + catlist = SearchSysCacheList1(PROCALLARGS, CStringGetDatum(func_name)); + } +#else + catlist = SearchSysCacheList1(PROCNAMEARGSNSP, CStringGetDatum(func_name)); +#endif bool is_found = false; if (catlist != NULL) { func_params f_params; diff --git a/contrib/security_plugin/gs_policy_object_types.cpp b/contrib/security_plugin/gs_policy_object_types.cpp index 4b3e41ee1..a4ff66a58 100644 --- a/contrib/security_plugin/gs_policy_object_types.cpp +++ b/contrib/security_plugin/gs_policy_object_types.cpp @@ -22,6 +22,7 @@ * * ------------------------------------------------------------------------- */ +#include "parser/parse_func.h" #include "postgres.h" #include "access/htup.h" #include "access/heapam.h" @@ -31,10 +32,12 @@ #include "catalog/pg_proc.h" #include "commands/user.h" #include "gs_policy_object_types.h" +#include "gs_policy_plugin.h" #include "utils/syscache.h" #include "utils/lsyscache.h" #include "utils/builtins.h" #include "utils/acl.h" +#include "catalog/objectaddress.h" /* * get_relation_schema @@ -792,4 +795,143 @@ bool verify_proc_params(const func_params* func_params, const func_types* proc_t } } return true; +} + +void load_function_label(const Query *query, bool audit_exist) +{ + if (audit_exist && query->rtable != NIL) { + ListCell *lc = NULL; + foreach (lc, query->rtable) { + RangeTblEntry *rte = (RangeTblEntry *)lfirst(lc); + if (rte->rtekind == RTE_REMOTE_DUMMY) { + continue; + } else if (rte && rte->rtekind == RTE_FUNCTION && rte->funcexpr) { + FuncExpr *fe = (FuncExpr *)rte->funcexpr; + PolicyLabelItem func_label; + get_function_name(fe->funcid, &func_label); + set_result_set_function(func_label); + } + } + } +} + +/* + * ListCell could be RangeVar nodes, FuncWithArgs nodes, + * or plain names (as Value strings) according to objtype + */ +void gen_policy_labelitem(PolicyLabelItem &item, const ListCell *rel, int objtype) +{ + if (rel == NULL) { + return; + } + + switch (objtype) { + case O_VIEW: + case O_TABLE: { + Oid relid = RangeVarGetRelid((RangeVar *)rel, NoLock, false); + if (!OidIsValid(relid)) { + return; + } + + item = PolicyLabelItem(0, relid, objtype, ""); + break; + } + case O_FUNCTION: { + FuncWithArgs *func = (FuncWithArgs *)(rel); + Oid funcid = LookupFuncNameTypeNames(func->funcname, func->funcargs, false); + if (!OidIsValid(funcid)) { + return; + } + item = PolicyLabelItem(0, funcid, objtype, ""); + break; + } + case O_SCHEMA: { + char *nspname = strVal(rel); + item = PolicyLabelItem(nspname, NULL, NULL, objtype); + break; + } + default: + break; + } + + return; +} + +void gen_policy_label_for_commentstmt(PolicyLabelItem &item, const CommentStmt *commentstmt) +{ + ObjectAddress address; + Relation relation; + address = get_object_address(commentstmt->objtype, commentstmt->objname, commentstmt->objargs, &relation, + ShareUpdateExclusiveLock, false); + switch (commentstmt->objtype) { + case OBJECT_COLUMN: { + item = PolicyLabelItem(0, address.objectId, O_COLUMN, strVal(lfirst(list_tail(commentstmt->objname)))); + break; + } + case OBJECT_TABLE: { + item = PolicyLabelItem(0, address.objectId, O_TABLE, ""); + break; + } + case OBJECT_FUNCTION: { + item = PolicyLabelItem(0, address.objectId, O_FUNCTION, ""); + break; + } + case OBJECT_SCHEMA: { + item = PolicyLabelItem(address.objectId, 0, O_SCHEMA, ""); + } + default: + break; + } + if (relation != NULL) { + relation_close(relation, NoLock); + } +} + +int get_objtype(int object_type) +{ + int objtype = O_UNKNOWN; + switch (object_type) { + case OBJECT_ROLE: + objtype = O_ROLE; + break; + case OBJECT_USER: + objtype = O_USER; + break; + case OBJECT_SCHEMA: + objtype = O_SCHEMA; + break; + case OBJECT_SEQUENCE: + objtype = O_SEQUENCE; + break; + case OBJECT_DATABASE: + objtype = O_DATABASE; + break; + case OBJECT_FOREIGN_SERVER: + objtype = O_SERVER; + break; + case OBJECT_FOREIGN_TABLE: + case OBJECT_STREAM: + case OBJECT_TABLE: + objtype = (object_type == OBJECT_TABLE) ? O_TABLE : O_FOREIGNTABLE; + break; + case OBJECT_COLUMN: + objtype = O_COLUMN; + break; + case OBJECT_FUNCTION: + objtype = O_FUNCTION; + break; + case OBJECT_CONTQUERY: + case OBJECT_VIEW: + objtype = O_VIEW; + break; + case OBJECT_INDEX: + objtype = O_INDEX; + break; + case OBJECT_TABLESPACE: + objtype = O_TABLESPACE; + break; + default: + break; + } + return objtype; } \ No newline at end of file diff --git a/contrib/security_plugin/gs_policy_object_types.h b/contrib/security_plugin/gs_policy_object_types.h index 534eb6cfe..f7e00fedd 100644 --- a/contrib/security_plugin/gs_policy_object_types.h +++ b/contrib/security_plugin/gs_policy_object_types.h @@ -266,8 +266,14 @@ bool get_function_name(long long funcid, PolicyLabelItem *name); int get_privilege_type(const char *name); int get_privilege_object_type(const char *name); const char *get_privilege_object_name(int type); +void load_function_label(const Query *query, bool audit_exist); bool name_list_to_string(List *names, gs_stl::gs_string *name, int max_const_count = -1 /* unlimited */); bool name_list_to_label(PolicyLabelItem *item, List *names, char *name = NULL, size_t name_size = 0); +/* build PolicyLabelItem helper function*/ +void gen_policy_labelitem(PolicyLabelItem &item, const ListCell *rel, int objtype); +void gen_policy_label_for_commentstmt(PolicyLabelItem &item, const CommentStmt *commentstmt); +int get_objtype(int object_type); + #endif /* GS_POLICY_OBJECT_TYPES_H_ */ diff --git a/contrib/security_plugin/gs_policy_plugin.cpp b/contrib/security_plugin/gs_policy_plugin.cpp index 2e4c010d8..138f37bb3 100644 --- a/contrib/security_plugin/gs_policy_plugin.cpp +++ b/contrib/security_plugin/gs_policy_plugin.cpp @@ -182,13 +182,22 @@ static void set_view_query_state(bool state) query_inside_view = state; } +/* + * parse remote host ip to IPV6 struct including local/ipv4/ipv6 + */ void get_remote_addr(IPV6 *ip) { - struct sockaddr* remote_addr = (struct sockaddr *)&u_sess->proc_cxt.MyProcPort->raddr.addr; - const int MAX_IP_ADDRESS_LEN = 129; - char ip_str[MAX_IP_ADDRESS_LEN] = { 0 }; - /* parse the remote ip address */ - get_client_ip(remote_addr, ip_str); + char ip_str[MAX_IP_LEN] = { 0 }; + get_session_ip(ip_str, MAX_IP_LEN); + + // format local unix + errno_t rc = EOK; + char *local = "127.0.0.1"; + if (!strcmp("local", ip_str)) { + rc = memcpy_s(ip_str, MAX_IP_LEN, local, strlen(local)); + securec_check_c(rc, "\0", "\0"); + } + IPRange iprange; iprange.str_to_ip(ip_str, ip); return; @@ -282,6 +291,9 @@ static void destroy_local_parameter() } } +/* + * append object name, the format is: schema.table + */ void get_name_range_var(const RangeVar *rangevar, gs_stl::gs_string *buffer, bool enforce) { if (rangevar == NULL) { @@ -628,30 +640,13 @@ static bool handle_masking(List* targetList, ParseState *pstate, static void select_PostParseAnalyze(ParseState *pstate, Query *&query, const policy_set *policy_ids, bool audit_exist) { - if (query == NULL) { - return; - } + Assert(query != NULL); List *targetList = NIL; - if (query->targetList != NIL) { - targetList = query->targetList; - } else { - targetList = pstate->p_target_list; - } + targetList = (query->targetList != NIL) ? query->targetList : pstate->p_target_list; handle_masking(targetList, pstate, policy_ids, query->rtable, query->utilityStmt); /* deal with function type label */ - if (audit_exist && query->rtable != NIL) { - ListCell *lc = NULL; - foreach(lc, query->rtable) { - RangeTblEntry *rte = (RangeTblEntry *) lfirst(lc); - if (rte && rte->rtekind == RTE_FUNCTION && rte->funcexpr) { - FuncExpr* fe = (FuncExpr *)rte->funcexpr; - PolicyLabelItem func_label; - get_function_name(fe->funcid, &func_label); - set_result_set_function(func_label); - } - } - } + load_function_label(query, audit_exist); } static bool process_union_masking(Node *union_node, @@ -844,7 +839,9 @@ static void gsaudit_next_PostParseAnalyze_hook(ParseState *pstate, Query *query) foreach (lc, query->rtable) { RangeTblEntry *rte = (RangeTblEntry *)lfirst(lc); - if (rte->rtekind == RTE_SUBQUERY && rte->subquery != NULL) { /* check masking */ + if (rte->rtekind == RTE_REMOTE_DUMMY) { + continue; + } else if (rte->rtekind == RTE_SUBQUERY && rte->subquery != NULL) { /* check masking */ reset_node_location(); handle_masking(rte->subquery->targetList, pstate, &masking_policy_ids, rte->subquery->rtable, rte->subquery->utilityStmt); @@ -1027,7 +1024,7 @@ static inline void get_copy_table_name(CopyStmt *stmt, gs_stl::gs_string *name) } } -static bool is_audit_policy_exist_load_policy_info() +bool is_audit_policy_exist_load_policy_info() { load_database_policy_info(); gs_policy_set *policies = get_audit_policies(); @@ -1043,24 +1040,12 @@ static void light_unified_audit_executor(const Query *query) return; } - IPV6 ip; - get_remote_addr(&ip); - FilterData filter_item(u_sess->attr.attr_common.application_name, ip); - policy_set audit_policy_ids; - check_audit_policy_filter(&filter_item, &audit_policy_ids); + ereport(DEBUG1, (errmsg("light_unified_audit_executor routine enter"))); - ListCell *lc = NULL; - foreach (lc, query->rtable) { - RangeTblEntry *rte = (RangeTblEntry*)lfirst(lc); - char *object_name = rte->relname ? rte->relname : rte->eref->aliasname; - if (object_name == NULL) { - break; - } - - check_access_table(&audit_policy_ids, object_name, query->commandType, O_UNKNOWN, object_name); + if (!query->rtable) { + return; } - - flush_access_logs(AUDIT_OK); + access_audit_policy_run(query->rtable, query->commandType); } static void gsaudit_ProcessUtility_hook(Node *parsetree, const char *queryString, ParamListInfoData *params, @@ -1332,10 +1317,11 @@ static void gsaudit_ProcessUtility_hook(Node *parsetree, const char *queryString forboth(lc1, stmt->grantees, lc2, stmt->objects) { PrivGrantee *rte1 = (PrivGrantee *)lfirst(lc1); + ListCell *rel2 = (ListCell *)lfirst(lc2); gs_stl::gs_string tmp; const char *granted_name = ACL_get_object_name(stmt->targtype, stmt->objtype, lc2, &tmp); if (granted_name != NULL) { - acl_audit_object(&security_policy_ids, &audit_policy_ids, + acl_audit_object(&security_policy_ids, &audit_policy_ids, rel2, names_pair(granted_name, rte1->rolname ? rte1->rolname : "ALL" /* grantee_name */), stmt->is_grant ? T_GRANT : T_REVOKE, stmt->is_grant ? "GRANT" : "REVOKE", @@ -1359,10 +1345,10 @@ static void gsaudit_ProcessUtility_hook(Node *parsetree, const char *queryString PrivGrantee *rte1 = (PrivGrantee *)lfirst(lc1); PrivGrantee *rte2 = (PrivGrantee *)lfirst(lc2); - internal_audit_object_str(&security_policy_ids, &audit_policy_ids, + internal_audit_object_str(&security_policy_ids, &audit_policy_ids, NULL, names_pair(rte2->rolname /* granted_name */, rte1->rolname /* grantee_name */), grantrolestmt->is_grant ? T_GRANT : T_REVOKE, grantrolestmt->is_grant ? "GRANT" : "REVOKE", - O_ROLE, true); + O_ROLE, true, true); } } break; @@ -1374,7 +1360,8 @@ static void gsaudit_ProcessUtility_hook(Node *parsetree, const char *queryString VacuumStmt *stmt = (VacuumStmt *)parsetree; if (stmt) { if (stmt->relation) { - PolicyLabelItem item(stmt->relation->schemaname, stmt->relation->relname); + PolicyLabelItem item; + gen_policy_labelitem(item, (const ListCell *)stmt->relation, O_TABLE); if (stmt->va_cols) { ListCell *citem = NULL; foreach (citem, stmt->va_cols) { @@ -1402,14 +1389,18 @@ static void gsaudit_ProcessUtility_hook(Node *parsetree, const char *queryString break; } case T_CommentStmt: { - if (!check_audited_privilige(T_COMMENT) && !SECURITY_CHECK_ACL_PRIV(T_COMMENT)) { + if (!check_audited_privilige(T_COMMENT)) { break; } + CommentStmt *commentstmt = (CommentStmt *)(parsetree); + PolicyLabelItem item(0, 0, get_objtype(commentstmt->objtype), ""); + gen_policy_label_for_commentstmt(item, commentstmt); + gs_stl::gs_string objectname; add_current_path(commentstmt->objtype, commentstmt->objname, &objectname); - audit_object(&security_policy_ids, &audit_policy_ids, objectname.c_str(), T_COMMENT, - "COMMENT", commentstmt->objtype); + internal_audit_object_str(&security_policy_ids, &audit_policy_ids, &item, T_COMMENT, "COMMENT", + objectname.c_str()); break; } case T_VariableSetStmt: { @@ -1561,14 +1552,32 @@ static void gsaudit_ProcessUtility_hook(Node *parsetree, const char *queryString break; } IndexStmt *stmt = (IndexStmt *)parsetree; - if (stmt && stmt->relation) { + if (stmt && stmt->relation && stmt->idxname) { gs_stl::gs_string objectname; get_name_range_var(stmt->relation, &objectname); + if (!objectname.empty()) { + objectname.push_back('.'); + } + objectname.append(stmt->idxname); internal_audit_str(&security_policy_ids, &audit_policy_ids, objectname.c_str(), T_CREATE, "CREATE", O_INDEX); } break; } + case T_CreateDataSourceStmt: + { + if (!check_audited_privilige(T_CREATE) && !SECURITY_CHECK_ACL_PRIV(T_CREATE)) { + break; + } + CreateDataSourceStmt *stmt = (CreateDataSourceStmt *)parsetree; + gs_stl::gs_string objectname; + if (stmt && stmt->srcname) { + objectname.append(stmt->srcname); + } + internal_audit_str(&security_policy_ids, &audit_policy_ids, objectname.c_str(), T_CREATE, + "CREATE", O_DATA_SOURCE); + break; + } case T_ViewStmt: /* create View */ { if (!check_audited_privilige(T_CREATE) && !SECURITY_CHECK_ACL_PRIV(T_CREATE)) { @@ -1688,6 +1697,10 @@ static void gsaudit_ProcessUtility_hook(Node *parsetree, const char *queryString break; } case T_TruncateStmt: { + /* + * truncate is dml sql but go through the processutility routine + * so that use access function to deal with it in privilege hook entrance + */ if (!check_audited_access(CMD_TRUNCATE)) { break; } @@ -1915,9 +1928,10 @@ CmdType get_rte_commandtype(RangeTblEntry *rte) static void gs_audit_executor_start_hook(QueryDesc *queryDesc, int eflags) { + /* verify parameter and audit policy */ if (!u_sess->attr.attr_security.Enable_Security_Policy || u_sess->proc_cxt.IsInnerMaintenanceTools || IsConnFromCoord() || - !is_audit_policy_exist_load_policy_info()) { + !is_audit_policy_exist_load_policy_info() || queryDesc == NULL) { if (next_ExecutorStart_hook) { next_ExecutorStart_hook(queryDesc, eflags); } else { @@ -1926,45 +1940,13 @@ static void gs_audit_executor_start_hook(QueryDesc *queryDesc, int eflags) return; } - if (queryDesc != NULL) { - IPV6 ip; - get_remote_addr(&ip); - FilterData filter_item(get_session_app_name(), ip); - policy_set policy_ids; - check_audit_policy_filter(&filter_item, &policy_ids); - policy_set security_policy_ids; - if (checkSecurityPolicyFilter_hook != NULL) { - checkSecurityPolicyFilter_hook(filter_item, &security_policy_ids); - } - - if (queryDesc->plannedstmt && queryDesc->plannedstmt->rtable) { - ListCell *lc = NULL; - _checked_tables checked_tables; - foreach (lc, queryDesc->plannedstmt->rtable) { - /* table object */ - RangeTblEntry *rte = (RangeTblEntry *) lfirst(lc); - policy_result pol_result; - if (rte && rte->relname) { - if (rte->rtekind == RTE_SUBQUERY && rte->subquery) { /* relation is subquery */ - int recursion_deep = 0; - handle_subquery(rte, rte->subquery->commandType, &pol_result, &checked_tables, - &policy_ids, &security_policy_ids, &recursion_deep); - /* verify if table object already checked */ - } else if (checked_tables.insert(rte->relname).second) { - CmdType cmd_type = get_rte_commandtype(rte); - cmd_type = (cmd_type == CMD_UNKNOWN) ? queryDesc->plannedstmt->commandType : cmd_type; - if (!handle_table_entry(rte, cmd_type, &policy_ids, - &security_policy_ids, &pol_result)) { - continue; - } - - flush_policy_result(&pol_result, cmd_type); - } - } - } - - } + /* execute audit policy by target application info/object/operation */ + const PlannedStmt *plannedstmt = queryDesc->plannedstmt; + if (plannedstmt != NULL) { + access_audit_policy_run(plannedstmt->rtable, plannedstmt->commandType); } + + /* flush the audit logs with result flag */ PG_TRY(); { if (next_ExecutorStart_hook) { @@ -2044,11 +2026,15 @@ void install_audit_hook() * ExecutorStart_hook: hook when ExecutorStart is called, which will run the audit process for DML subtables * ProcessUtility_hook: hook when when ProcessUtility is called, which will run the DDL auti process * light_unified_audit_executor_hook : hook when cn light proxy + * opfusion_unified_audit_executor_hook: hook for sqlbypass + * opfusion_unified_audit_flush_logs_hook: hook for sqlbypass */ user_login_hook = NULL; ExecutorStart_hook = gs_audit_executor_start_hook; ProcessUtility_hook = gsaudit_ProcessUtility_hook; light_unified_audit_executor_hook = light_unified_audit_executor; + opfusion_unified_audit_executor_hook = opfusion_unified_audit_executor; + opfusion_unified_audit_flush_logs_hook = flush_access_logs; } void install_masking_hook() @@ -2114,5 +2100,7 @@ void _PG_fini(void) post_parse_analyze_hook = next_post_parse_analyze_hook; copy_need_to_be_reparse = NULL; light_unified_audit_executor_hook = NULL; + opfusion_unified_audit_executor_hook = NULL; + opfusion_unified_audit_flush_logs_hook = NULL; ereport(LOG, (errmsg("Gsaudit extension finished"))); } diff --git a/contrib/security_plugin/gs_policy_plugin.h b/contrib/security_plugin/gs_policy_plugin.h index 7eb714b3b..b11a21083 100644 --- a/contrib/security_plugin/gs_policy_plugin.h +++ b/contrib/security_plugin/gs_policy_plugin.h @@ -46,9 +46,10 @@ void get_remote_addr(IPV6 *ip); const char* get_session_app_name(); const char* GetUserName(char* user_name, size_t user_name_size); bool get_ipaddress(gs_stl::gs_string& ipaddress); -void set_result_set_function(const PolicyLabelItem &func); +extern void set_result_set_function(const PolicyLabelItem &func); void get_name_range_var(const RangeVar *rangevar, gs_stl::gs_string *buffer, bool enforce = true); CmdType get_rte_commandtype(RangeTblEntry *rte); extern void load_database_policy_info(); +bool is_audit_policy_exist_load_policy_info(); #endif /* GS_POLICY_PLUGIN_H_ */ diff --git a/contrib/security_plugin/masking.cpp b/contrib/security_plugin/masking.cpp index 2332dc5e3..bb0ad23b0 100644 --- a/contrib/security_plugin/masking.cpp +++ b/contrib/security_plugin/masking.cpp @@ -192,7 +192,16 @@ static void parse_func(Node* expr) static bool get_function_id(int vartype, const char* funcname, Oid *funcid, Oid *rettype, Oid schemaid = SchemaNameGetSchemaOid("pg_catalog", true)) { - CatCList *catlist = SearchSysCacheList1(PROCNAMEARGSNSP, CStringGetDatum(funcname)); + CatCList *catlist = NULL; +#ifndef ENABLE_MULTIPLE_NODES + if (t_thrd.proc->workingVersionNum < 92470) { + catlist = SearchSysCacheList1(PROCNAMEARGSNSP, CStringGetDatum(funcname)); + } else { + catlist = SearchSysCacheList1(PROCALLARGS, CStringGetDatum(funcname)); + } +#else + catlist = SearchSysCacheList1(PROCNAMEARGSNSP, CStringGetDatum(funcname)); +#endif if (catlist != NULL) { for (int i = 0; i < catlist->n_members; ++i) { HeapTuple proctup = &catlist->members[i]->tuple; diff --git a/contrib/security_plugin/privileges_audit.cpp b/contrib/security_plugin/privileges_audit.cpp index 23d60b3f2..04bc52d61 100644 --- a/contrib/security_plugin/privileges_audit.cpp +++ b/contrib/security_plugin/privileges_audit.cpp @@ -25,6 +25,7 @@ #include "gs_audit_policy.h" #include #include "access_audit.h" +#include "parser/parse_func.h" #include "postgres.h" #include "catalog/namespace.h" #include "commands/dbcommands.h" @@ -48,24 +49,41 @@ #define ACCESS_CONTROL_CHECK_ACL_PRIVILIGE(type) \ ((check_acl_privilige_hook == NULL) ? true : check_acl_privilige_hook(type)) -static Security_LoginHandle_access_hook_type security_LoginHandle_access_hook = NULL; - void add_current_path(int objtype, List *fqdn, gs_stl::gs_string *buffer); -/* function overloading, notice - different implementation */ -void internal_audit_object_str(const policy_set *security_policy_ids, const policy_set *policy_ids, - const names_pair names, int priv_type, const char *priv_name, int objtype, bool ignore_db) +/* + * grant/revoke sql audit routine + * policy_ids: policy ids after filt by app + * rel: ListCell object + * priv_type: privilege type, grant or revoke + * priv_name: grant or revoke + * objtype: object type, table... + * ignore_db: whether ignore database + */ +void internal_audit_object_str(const policy_set *security_policy_ids, const policy_set *policy_ids, const ListCell *rel, + const names_pair names, int priv_type, const char *priv_name, int objtype, bool is_rolegrant, bool ignore_db) { + /* + * Note PolicyLabelItem just support table/function/view/column + * so that only "all" label will work for other object type + */ + PolicyLabelItem item; + gen_policy_labelitem(item, rel, objtype); + + /* PolicyLabelItem construction will append schema oid by relid */ policy_simple_set policy_result; - PolicyLabelItem item(0, 0, objtype); bool security_auditobject_res = (accesscontrol_securityAuditObject_hook != NULL) ? accesscontrol_securityAuditObject_hook(security_policy_ids, &item, priv_type, priv_name) : true; - if (security_auditobject_res && check_audit_policy_privileges(policy_ids, &policy_result, priv_type,&item)) { + if (security_auditobject_res && check_audit_policy_privileges(policy_ids, &policy_result, priv_type, &item)) { char buff[2048] = {0}; char user_name[USERNAME_LEN]; const char *direction = (priv_type == T_GRANT) ? "TO" : "FROM"; const char *dbname = get_database_name(u_sess->proc_cxt.MyDatabaseId); + + gs_stl::gs_string obj_value; + item.get_fqdn_value(&obj_value); + policy_simple_set::iterator it = policy_result.begin(); policy_simple_set::iterator eit = policy_result.end(); int rc; @@ -78,8 +96,9 @@ void internal_audit_object_str(const policy_set *security_policy_ids, const poli "%s], " "policy id: [%lld]", GetUserName(user_name, sizeof(user_name)), get_session_app_name(), session_ip, priv_name, - get_privilege_object_name(item.m_obj_type), names.first.c_str(), direction, names.second.c_str(), - *it); + get_privilege_object_name(objtype), + (is_rolegrant || obj_value == "") ? names.first.c_str() : obj_value.c_str(), direction, + names.second.c_str(), *it); securec_check_ss(rc, "\0", "\0"); } else { rc = snprintf_s(buff, sizeof(buff), sizeof(buff) - 1, @@ -87,7 +106,8 @@ void internal_audit_object_str(const policy_set *security_policy_ids, const poli "%s], " "policy id: [%lld]", GetUserName(user_name, sizeof(user_name)), get_session_app_name(), session_ip, priv_name, - get_privilege_object_name(item.m_obj_type), dbname, names.first.c_str(), direction, + get_privilege_object_name(objtype), dbname, + (is_rolegrant || obj_value == "") ? names.first.c_str() : obj_value.c_str(), direction, names.second.c_str(), *it); securec_check_ss(rc, "\0", "\0"); } @@ -97,58 +117,6 @@ void internal_audit_object_str(const policy_set *security_policy_ids, const poli } } -void login_object_audit(const policy_set security_policy_ids, const policy_set policy_ids, - const char *login_str, int priv_type, const char *priv_name, const char *dbname) -{ - policy_simple_set policy_result; - PolicyLabelItem item(0, 0, T_LOGIN); - if (check_audit_policy_privileges(&policy_ids, &policy_result, priv_type, &item, dbname)) { - char buff[2048] = {0}; - policy_simple_set::iterator it = policy_result.begin(); - policy_simple_set::iterator eit = policy_result.end(); - for (; it != eit; ++it) { - char session_ip[MAX_IP_LEN] = {0}; - get_session_ip(session_ip, MAX_IP_LEN); - - int rc = snprintf_s(buff, sizeof(buff), sizeof(buff) - 1, - "AUDIT EVENT: app_name: [%s], client_ip: [%s], privilege type: [%s], policy id: [%lld]", - get_session_app_name(), session_ip, login_str, *it); - securec_check_ss(rc, "\0", "\0"); - save_access_logs(AUDIT_POLICY_EVENT, buff); - } - } - return; -} - -void login_handle_audit(const char *dbname, const char *username, bool success, bool login) -{ - IPV6 ip; - get_remote_addr(&ip); - FilterData filter_item(u_sess->attr.attr_common.application_name, ip); - policy_set audit_policy_ids, security_policy_ids; - check_audit_policy_filter(&filter_item, &audit_policy_ids, dbname); - - char tmp[512] = {0}; - int rc; - if (login && success) { - rc = snprintf_s(tmp, sizeof(tmp), sizeof(tmp) - 1, "LOGIN SUCCESS: [%s] to DATABASE: [%s]", username, dbname); - securec_check_ss(rc, "\0", "\0"); - login_object_audit(security_policy_ids, audit_policy_ids, tmp, T_LOGIN_SUCCESS, "LOGIN SUCCESS", dbname); - } else if (login && !success) { - rc = snprintf_s(tmp, sizeof(tmp), sizeof(tmp) - 1, "LOGIN FAILED: [%s] to DATABASE: [%s]", username, dbname); - securec_check_ss(rc, "\0", "\0"); - login_object_audit(security_policy_ids, audit_policy_ids, tmp, T_LOGIN_FAILURE, "LOGIN FAILED", dbname); - } else if (!login && success) { - rc = snprintf_s(tmp, sizeof(tmp), sizeof(tmp) - 1, "LOGOUT: [%s] to DATABASE: [%s]", username, dbname); - securec_check_ss(rc, "\0", "\0"); - login_object_audit(security_policy_ids, audit_policy_ids, tmp, T_LOGOUT, "LOGOUT", dbname); - } else { /* !login && !success */ - rc = snprintf_s(tmp, sizeof(tmp), sizeof(tmp) - 1, "LOGOUT: [%s] to DATABASE: [%s]", username, dbname); - securec_check_ss(rc, "\0", "\0"); - login_object_audit(security_policy_ids, audit_policy_ids, tmp, T_LOGOUT, "LOGOUT", dbname); - } -} - static void gen_priv_audit_logs(policy_simple_set& policy_result, bool ignore_db, const char* priv_name, const PolicyLabelItem* item, const char *obj_value) { @@ -218,33 +186,34 @@ bool internal_audit_object_str(const policy_set* security_policy_ids, const poli bool is_found = false; policy_simple_set policy_result; - bool security_auditobject_res = (accesscontrol_securityAuditObject_hook != NULL) ? - accesscontrol_securityAuditObject_hook(security_policy_ids, item, priv_type, priv_name) : - true; - if (security_auditobject_res && check_audit_policy_privileges(policy_ids, &policy_result, priv_type, item)) { - gs_stl::gs_string obj_value; - switch (item->m_obj_type) { - case O_DATABASE: - case O_ROLE: - obj_value = objname; - break; - case O_SCHEMA: - item->get_fqdn_value(&obj_value); - break; - default: - item->get_fqdn_value(&obj_value); - if (!item->m_object && strlen(objname) > 0) { - obj_value.push_back('.'); - obj_value.append(objname); - } - break; - } - is_found = !policy_result.empty(); - gen_priv_audit_logs(policy_result, ignore_db, priv_name, item, obj_value.c_str()); + if (!check_audit_policy_privileges(policy_ids, &policy_result, priv_type, item)) { + return is_found; } + gs_stl::gs_string obj_value; + switch (item->m_obj_type) { + case O_DATABASE: + case O_ROLE: + obj_value = objname; + break; + case O_SCHEMA: + item->get_fqdn_value(&obj_value); + break; + default: + item->get_fqdn_value(&obj_value); + if (!item->m_object && strlen(objname) > 0) { + if (!obj_value.empty()) { + obj_value.push_back('.'); + } + obj_value.append(objname); + } + break; + } + is_found = !policy_result.empty(); + gen_priv_audit_logs(policy_result, ignore_db, priv_name, item, obj_value.c_str()); return is_found; } +/* append audit logs for comment */ void audit_object(const policy_set *security_policy_ids, const policy_set *policy_ids, const char *relname, int priv_type, const char *priv_name, int objtype) { @@ -276,9 +245,6 @@ void audit_object(const policy_set *security_policy_ids, const policy_set *polic case OBJECT_COLUMN: internal_audit_str(policy_ids, policy_ids, relname, priv_type, priv_name, O_COLUMN); break; - case OBJECT_TRIGGER: - internal_audit_str(policy_ids, policy_ids, relname, priv_type, priv_name, O_TRIGGER); - break; case OBJECT_FUNCTION: internal_audit_str(policy_ids, policy_ids, relname, priv_type, priv_name, O_FUNCTION); break; @@ -297,42 +263,43 @@ void audit_object(const policy_set *security_policy_ids, const policy_set *polic } } -void acl_audit_object(const policy_set *security_policy_ids, const policy_set *policy_ids, +void acl_audit_object(const policy_set *security_policy_ids, const policy_set *policy_ids, const ListCell *rel, const names_pair names, int priv_type, const char *priv_name, int objtype) { switch (objtype) { case ACL_OBJECT_COLUMN: - internal_audit_object_str(security_policy_ids, policy_ids, names, priv_type, priv_name, O_COLUMN); + internal_audit_object_str(security_policy_ids, policy_ids, rel, names, priv_type, priv_name, O_COLUMN); break; case ACL_OBJECT_RELATION: - internal_audit_object_str(security_policy_ids, policy_ids, names, priv_type, priv_name, O_RELATION); + internal_audit_object_str(security_policy_ids, policy_ids, rel, names, priv_type, priv_name, O_TABLE); break; case ACL_OBJECT_SEQUENCE: - internal_audit_object_str(security_policy_ids, policy_ids, names, priv_type, priv_name, O_SEQUENCE); + internal_audit_object_str(security_policy_ids, policy_ids, rel, names, priv_type, priv_name, O_SEQUENCE); break; case ACL_OBJECT_DATABASE: - internal_audit_object_str(security_policy_ids, policy_ids, names, priv_type, priv_name, O_DATABASE, true); + internal_audit_object_str(security_policy_ids, policy_ids, rel, names, priv_type, priv_name, O_DATABASE, + false, true); break; case ACL_OBJECT_DOMAIN: - internal_audit_object_str(security_policy_ids, policy_ids, names, priv_type, priv_name, O_DOMAIN); + internal_audit_object_str(security_policy_ids, policy_ids, rel, names, priv_type, priv_name, O_DOMAIN); break; case ACL_OBJECT_FOREIGN_SERVER: - internal_audit_object_str(security_policy_ids, policy_ids, names, priv_type, priv_name, O_SERVER); + internal_audit_object_str(security_policy_ids, policy_ids, rel, names, priv_type, priv_name, O_SERVER); break; case ACL_OBJECT_FUNCTION: - internal_audit_object_str(security_policy_ids, policy_ids, names, priv_type, priv_name, O_FUNCTION); + internal_audit_object_str(security_policy_ids, policy_ids, rel, names, priv_type, priv_name, O_FUNCTION); break; case ACL_OBJECT_LANGUAGE: - internal_audit_object_str(security_policy_ids, policy_ids, names, priv_type, priv_name, O_LANGUAGE); + internal_audit_object_str(security_policy_ids, policy_ids, rel, names, priv_type, priv_name, O_LANGUAGE); break; case ACL_OBJECT_NAMESPACE: - internal_audit_object_str(security_policy_ids, policy_ids, names, priv_type, priv_name, O_SCHEMA); + internal_audit_object_str(security_policy_ids, policy_ids, rel, names, priv_type, priv_name, O_SCHEMA); break; case ACL_OBJECT_TABLESPACE: - internal_audit_object_str(security_policy_ids, policy_ids, names, priv_type, priv_name, O_TABLESPACE); + internal_audit_object_str(security_policy_ids, policy_ids, rel, names, priv_type, priv_name, O_TABLESPACE); break; case ACL_OBJECT_DATA_SOURCE: - internal_audit_object_str(security_policy_ids, policy_ids, names, priv_type, priv_name, O_DATA_SOURCE); + internal_audit_object_str(security_policy_ids, policy_ids, rel, names, priv_type, priv_name, O_DATA_SOURCE); break; default: break; @@ -350,7 +317,12 @@ void audit_table(const policy_set *security_policy_ids, const policy_set *policy { if (rel->relname == NULL) return; - PolicyLabelItem item(rel->schemaname, rel->relname, "", objtype); + PolicyLabelItem item; + if (priv_type == T_CREATE) { + item = PolicyLabelItem(rel->schemaname, rel->relname, "", objtype); + } else { + gen_policy_labelitem(item, (const ListCell *)rel, objtype); + } char buff[2048] = {0}; if (priv_type == T_DROP) { if (check_label_has_object(&item, is_masking_has_object)) { @@ -360,7 +332,7 @@ void audit_table(const policy_set *security_policy_ids, const policy_set *policy "Table: %s is part of some resource label, can not be dropped.", table_name.c_str()); securec_check_ss(rc, "\0", "\0"); gs_audit_issue_syslog_message("PGAUDIT", buff, AUDIT_POLICY_EVENT, AUDIT_FAILED); - ereport(ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("\"%s\"", buff))); + ereport(ERROR, (errcode(ERRCODE_DEPENDENT_OBJECTS_STILL_EXIST), errmsg("\"%s\"", buff))); return; } } @@ -400,6 +372,16 @@ void audit_schema(const policy_set security_policy_ids, const policy_set policy_ policy_simple_set policy_result; int check_type = (priv_type == T_RENAME) ? T_ALTER : priv_type; PolicyLabelItem item(schemaname, "", "", O_SCHEMA); + if (priv_type == T_DROP) { + if (check_label_has_object(&item, is_masking_has_object)) { + int rc = snprintf_s(buff, sizeof(buff), sizeof(buff) - 1, + "Schema: %s is part of some resource label, can not be dropped.", schemaname); + securec_check_ss(rc, "\0", "\0"); + gs_audit_issue_syslog_message("PGAUDIT", buff, AUDIT_POLICY_EVENT, AUDIT_FAILED); + ereport(ERROR, (errcode(ERRCODE_DEPENDENT_OBJECTS_STILL_EXIST), errmsg("\"%s\"", buff))); + return; + } + } bool security_auditobject_res = (accesscontrol_securityAuditObject_hook != NULL) ? accesscontrol_securityAuditObject_hook(&security_policy_ids, &item, check_type, priv_name) : true; @@ -670,10 +652,6 @@ void rename_object(RenameStmt *stmt, const policy_set policy_ids, const policy_s item.m_obj_type = O_TRIGGER; objectname = stmt->subname; break; - case OBJECT_FOREIGN_SERVER: - objectname = stmt->subname; - item.m_obj_type = O_SERVER; - break; case OBJECT_FUNCTION: { item.m_obj_type = O_FUNCTION; name_list_to_label(&item, stmt->object); @@ -810,7 +788,7 @@ void get_cursor_tables(List *rtable, char *buff, size_t buff_size, int _printed_ int printed_size = _printed_size; foreach (lc, rtable) { RangeTblEntry *rte = (RangeTblEntry *)lfirst(lc); - if (rte->relname && rte->rtekind == RTE_RELATION) { + if (rte != NULL && rte->relname && rte->rtekind == RTE_RELATION) { PolicyLabelItem item; get_fqdn_by_relid(rte, &item); if (cursor_objects) { @@ -884,37 +862,3 @@ void get_open_cursor_info(PlannedStmt *stmt, char *buff, size_t buff_size) } get_cursor_tables(stmt->rtable, buff, buff_size, printed_size); } - -void login_handle(const char *dbname, const char *username, bool success, bool login) -{ - /* do nothing when enable_security_policy is off */ - if (!u_sess->attr.attr_security.Enable_Security_Policy || - !IsConnFromApp() || !OidIsValid(u_sess->proc_cxt.MyDatabaseId)) { - return; - } - - ResourceOwnerData *old_owner = NULL; - if (t_thrd.utils_cxt.CurrentResourceOwner == NULL) { - old_owner = create_temp_resourceowner(); - } - - /* dbname is necessary for login hook as u_sess info may not be ok now so that invalid oid */ - if (!is_database_valid(dbname) || !is_audit_policy_exist(dbname)) { - return; - } - - /* if access control policy worked, no need to run the audit policy - * related audit logs would be recorded in LoginHandle_access - */ - if ((security_LoginHandle_access_hook != NULL) ? - security_LoginHandle_access_hook(dbname, username, success, login) : true) { - login_handle_audit(dbname, username, success, login); - } - - if (old_owner != NULL) { - release_temp_resourceowner(old_owner); - } - - flush_access_logs(success ? AUDIT_OK : AUDIT_FAILED); -} - diff --git a/contrib/security_plugin/privileges_audit.h b/contrib/security_plugin/privileges_audit.h index 22be892bd..52e32e410 100644 --- a/contrib/security_plugin/privileges_audit.h +++ b/contrib/security_plugin/privileges_audit.h @@ -31,7 +31,7 @@ buffer->push_back('.'); typedef std::pair names_pair; -void acl_audit_object(const policy_set *security_policy_ids, const policy_set *policy_ids, +void acl_audit_object(const policy_set *security_policy_ids, const policy_set *policy_ids, const ListCell *rel, const names_pair names, int priv_type, const char *priv_name, int objtype); bool internal_audit_object_str(const policy_set* security_policy_ids, const policy_set* policy_ids, const PolicyLabelItem* item, int priv_type, const char* priv_name, const char* objname = "", @@ -40,8 +40,8 @@ void internal_audit_str(const policy_set *security_policy_ids, const policy_set int priv_type, const char *priv_name, int objtype, bool ignore_db = false); void login_object(const policy_set *security_policy_ids, const policy_set *policy_ids, const char *login_str, int priv_type, const char *priv_name); -void internal_audit_object_str(const policy_set *security_policy_ids, const policy_set *policy_ids, - const names_pair names, int priv_type, const char *priv_name, int objtype, bool ignore_db = false); +void internal_audit_object_str(const policy_set *security_policy_ids, const policy_set *policy_ids, const ListCell *rel, + const names_pair names, int priv_type, const char *priv_name, int objtype, bool is_rolegrant = false, bool ignore_db = false); void audit_object(const policy_set *security_policy_ids, const policy_set *policy_ids, const char *relname, int priv_type, const char *priv_name, int objtype); void audit_table(const policy_set *security_policy_ids, const policy_set *policy_ids, @@ -57,12 +57,8 @@ void alter_owner(AlterOwnerStmt *stmt, const policy_set policy_ids, const policy void add_current_path(int objtype, List *fqdn, gs_stl::gs_string *buffer); void fill_label_item(PolicyLabelItem *item, int objtype, List *fqdn); void destroy_logs(); -void login_object_audit(const policy_set security_policy_ids, const policy_set policy_ids, const char *login_str, - int priv_type, const char *priv_name, const char *dbname = NULL); -void login_handle_audit(const char *dbname, const char *username, bool success, bool login); void get_cursor_tables(List *rtable, char *buff, size_t buff_size, int _printed_size, gs_stl::gs_vector *cursor_objects = nullptr); void get_open_cursor_info(PlannedStmt *stmt, char *buff, size_t buff_size); -void login_handle(const char *dbname, const char *username, bool success, bool logino); #endif /* PRIVILEGES_AUDIT_H_ */ \ No newline at end of file diff --git a/contrib/sepgsql/dml.cpp b/contrib/sepgsql/dml.cpp index 3a87bf912..6350ced02 100644 --- a/contrib/sepgsql/dml.cpp +++ b/contrib/sepgsql/dml.cpp @@ -5,6 +5,7 @@ * Routines to handle DML permission checks * * Copyright (c) 2010-2012, PostgreSQL Global Development Group + * Portions Copyright (c) 2021, openGauss Contributors * * ------------------------------------------------------------------------- */ @@ -181,6 +182,7 @@ static bool check_relation_privileges(Oid relOid, Bitmapset* selected, Bitmapset break; case RELKIND_SEQUENCE: + case RELKIND_LARGE_SEQUENCE: Assert((required & ~SEPG_DB_TABLE__SELECT) == 0); if (required & SEPG_DB_TABLE__SELECT) diff --git a/contrib/sepgsql/label.cpp b/contrib/sepgsql/label.cpp index c03aee9bd..8e04c94ed 100644 --- a/contrib/sepgsql/label.cpp +++ b/contrib/sepgsql/label.cpp @@ -5,6 +5,7 @@ * Routines to support SELinux labels (security context) * * Copyright (c) 2010-2012, PostgreSQL Global Development Group + * Portions Copyright (c) 2021, openGauss Contributors * * ------------------------------------------------------------------------- */ @@ -680,7 +681,7 @@ static void exec_object_restorecon(struct selabel_handle* sehnd, Oid catalogId) if (relForm->relkind == RELKIND_RELATION) objtype = SELABEL_DB_TABLE; - else if (relForm->relkind == RELKIND_SEQUENCE) + else if (RELKIND_IS_SEQUENCE(relForm->relkind)) objtype = SELABEL_DB_SEQUENCE; else if (relForm->relkind == RELKIND_VIEW || (relForm->relkind == RELKIND_CONTQUERY) objtype = SELABEL_DB_VIEW; diff --git a/contrib/tablefunc/tablefunc.cpp b/contrib/tablefunc/tablefunc.cpp index 5df4308bc..9c484f0a8 100644 --- a/contrib/tablefunc/tablefunc.cpp +++ b/contrib/tablefunc/tablefunc.cpp @@ -707,7 +707,6 @@ static HTAB* load_categories_hash(char* cats_sql, MemoryContext per_query_ctx) MemoryContextSwitchTo(SPIcontext); } } - if (SPI_finish() != SPI_OK_FINISH) /* internal error */ elog(ERROR, "load_categories_hash: SPI_finish() failed"); diff --git a/dependency.xml b/dependency.xml index 009d7dcf4..ddd2b007e 100644 --- a/dependency.xml +++ b/dependency.xml @@ -6,6 +6,7 @@ ${offering} ${BVersion} + Y Y @@ -14,7 +15,7 @@ - + BVersion @@ -36,14 +37,13 @@ Generic DOPRA SSP - DOPRA SSP V300R005C10SPC102B500 + DOPRA SSP V300R021C00SPC020B100 Y - Y @@ -51,8 +51,23 @@ BVersion Generic - Huawei JDK - Huawei_JDK_V100R001C00SPC290B001 + Cloud Compiler JDK + Cloud Compiler JDK V100R003C30SPC300B001 + + Y + + + + + + + + + BVersion + Generic + + KMC + KMC 21.0.0.B003 Y diff --git a/doc/src/sgml/ref/alter_audit_policy.sgmlin b/doc/src/sgml/ref/alter_audit_policy.sgmlin index 496b28f7c..17fd0e3cd 100755 --- a/doc/src/sgml/ref/alter_audit_policy.sgmlin +++ b/doc/src/sgml/ref/alter_audit_policy.sgmlin @@ -10,11 +10,11 @@ -ALTER AUDIT POLICY [ IF EXISTS ] policy_name { ADD | REMOVE } { [ privilege_audit_clause ] [ access_audit_clause ] }; -ALTER AUDIT POLICY [ IF EXISTS ] policy_name MODIFY ( filter_group_clause ); -ALTER AUDIT POLICY [ IF EXISTS ] policy_name DROP FILTER; -ALTER AUDIT POLICY [ IF EXISTS ] policy_name COMMENTS policy_comments; -ALTER AUDIT POLICY [ IF EXISTS ] policy_name { ENABLE | DISABLE }; +ALTER AUDIT POLICY [ IF EXISTS ] policy_name { ADD | REMOVE } { [ privilege_audit_clause ] [ access_audit_clause ] }; +ALTER AUDIT POLICY [ IF EXISTS ] policy_name MODIFY ( filter_group_clause ); +ALTER AUDIT POLICY [ IF EXISTS ] policy_name DROP FILTER; +ALTER AUDIT POLICY [ IF EXISTS ] policy_name COMMENTS policy_comments; +ALTER AUDIT POLICY [ IF EXISTS ] policy_name { ENABLE | DISABLE }; where privilege_audit_clause can be: PRIVILEGES { DDL | ALL } @@ -28,8 +28,8 @@ FILTER ON { ( FILTER_TYPE ( filter_value [, ... ] ) ) [, ... ] } where DDL can be: { ( ALTER | ANALYZE | COMMENT | CREATE | DROP | GRANT | REVOKE | SET | SHOW | LOGIN_ACCESS | LOGIN_FAILURE | LOGOUT | LOGIN ) } -where DML can be: -{ ( COPY | DEALLOCATE | DELETE_P | EXECUTE | REINDEX | INSERT | REPARE | SELECT | TRUNCATE | UPDATE ) } +where DML can be: +{ ( COPY | DEALLOCATE | DELETE_P | EXECUTE | REINDEX | INSERT | PREPARE | SELECT | TRUNCATE | UPDATE ) } diff --git a/doc/src/sgml/ref/alter_group.sgmlin b/doc/src/sgml/ref/alter_group.sgmlin index 1b80dcc4a..635aac92d 100644 --- a/doc/src/sgml/ref/alter_group.sgmlin +++ b/doc/src/sgml/ref/alter_group.sgmlin @@ -15,7 +15,7 @@ ALTER GROUP group_name ALTER GROUP group_name DROP USER user_name [, ... ]; ALTER GROUP group_name - RENAME TO new_name; + RENAME TO new_name; \ No newline at end of file diff --git a/doc/src/sgml/ref/alter_masking_policy.sgmlin b/doc/src/sgml/ref/alter_masking_policy.sgmlin index 4a5b3c2e8..ba6a748c1 100644 --- a/doc/src/sgml/ref/alter_masking_policy.sgmlin +++ b/doc/src/sgml/ref/alter_masking_policy.sgmlin @@ -10,10 +10,11 @@ +ALTER MASKING POLICY policy_name COMMENTS policy_comments; ALTER MASKING POLICY policy_name { ADD | REMOVE | MODIFY } masking_actions [, ... ]; -ALTER MASKING POLICY policy_name MODIFY ( filter_group_clause ); -ALTER MASKING POLICY policy_name DROP FILTER; -ALTER MASKING POLICY policy_name { ENABLE | DISABLE }; +ALTER MASKING POLICY policy_name MODIFY ( filter_group_clause ); +ALTER MASKING POLICY policy_name DROP FILTER; +ALTER MASKING POLICY policy_name { ENABLE | DISABLE }; where masking_actions can be: masking_function ON LABEL(label_name [, ... ]) diff --git a/doc/src/sgml/ref/alter_node_group.sgmlin b/doc/src/sgml/ref/alter_node_group.sgmlin index 8f7adff42..9cbf949cd 100755 --- a/doc/src/sgml/ref/alter_node_group.sgmlin +++ b/doc/src/sgml/ref/alter_node_group.sgmlin @@ -10,10 +10,8 @@ -ALTER NODE GROUP groupname [ option ] - -where option can be: -SET DEFAULT +ALTER NODE GROUP groupname + | SET DEFAULT | RENAME TO new_group_name | SET VCGROUP RENAME TO new_group_name | SET NOT VCGROUP diff --git a/doc/src/sgml/ref/alter_sequence.sgmlin b/doc/src/sgml/ref/alter_sequence.sgmlin index 6eb834f7b..182347067 100755 --- a/doc/src/sgml/ref/alter_sequence.sgmlin +++ b/doc/src/sgml/ref/alter_sequence.sgmlin @@ -18,10 +18,10 @@ -ALTER SEQUENCE [ IF EXISTS ] name +ALTER [ LARGE ] SEQUENCE [ IF EXISTS ] name [ MAXVALUE maxvalue | NO MAXVALUE | NOMAXVALUE ] [ OWNED BY { table_name.column_name | NONE } ]; -ALTER SEQUENCE [ IF EXISTS ] name OWNER TO new_owner; +ALTER [ LARGE ] SEQUENCE [ IF EXISTS ] name OWNER TO new_owner; diff --git a/doc/src/sgml/ref/alter_server.sgmlin b/doc/src/sgml/ref/alter_server.sgmlin index 18d887f04..a791a901c 100644 --- a/doc/src/sgml/ref/alter_server.sgmlin +++ b/doc/src/sgml/ref/alter_server.sgmlin @@ -12,10 +12,10 @@ ALTER SERVER server_name [ VERSION 'new_version' ] [ OPTIONS ( {[ ADD | SET | DROP ] option ['value']} [, ... ] ) ]; -ALTER SERVER server_name +ALTER SERVER server_name OWNER TO new_owner; ALTER SERVER server_name - RENAME TO new_name; + RENAME TO new_name; \ No newline at end of file diff --git a/doc/src/sgml/ref/alter_table.sgmlin b/doc/src/sgml/ref/alter_table.sgmlin index 3d8fe4e87..1195af0af 100755 --- a/doc/src/sgml/ref/alter_table.sgmlin +++ b/doc/src/sgml/ref/alter_table.sgmlin @@ -75,6 +75,7 @@ where column_constraint can be: GENERATED ALWAYS AS ( generation_expr ) STORED | UNIQUE index_parameters | PRIMARY KEY index_parameters | + ENCRYPTED WITH ( COLUMN_ENCRYPTION_KEY = column_encryption_key, ENCRYPTION_TYPE = encryption_type_value ) | REFERENCES reftable [ ( refcolumn ) ] [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ] [ ON DELETE action ] [ ON UPDATE action ] } [ DEFERRABLE | NOT DEFERRABLE | INITIALLY DEFERRED | INITIALLY IMMEDIATE ] diff --git a/doc/src/sgml/ref/alter_text_search_dictionary.sgmlin b/doc/src/sgml/ref/alter_text_search_dictionary.sgmlin index 23055a3e2..ec2e0d7a5 100644 --- a/doc/src/sgml/ref/alter_text_search_dictionary.sgmlin +++ b/doc/src/sgml/ref/alter_text_search_dictionary.sgmlin @@ -10,7 +10,9 @@ -ALTER TEXT SEARCH DICTIONARY name ( option = value | option [, ...] ); +ALTER TEXT SEARCH DICTIONARY name ( + option [ = value ] [, ...] +); ALTER TEXT SEARCH DICTIONARY name RENAME TO new_name; ALTER TEXT SEARCH DICTIONARY name OWNER TO new_owner; ALTER TEXT SEARCH DICTIONARY name SET SCHEMA new_schema; diff --git a/doc/src/sgml/ref/analyze.sgmlin b/doc/src/sgml/ref/analyze.sgmlin index c2e336cbc..ffc6e9a6b 100755 --- a/doc/src/sgml/ref/analyze.sgmlin +++ b/doc/src/sgml/ref/analyze.sgmlin @@ -10,20 +10,19 @@ -{ANALYZE | ANALYSE} [ VERBOSE ] +{ ANALYZE | ANALYSE } [ VERBOSE ] [ table_name [ ( column_name [, ...] ) ] ]; -{ANALYZE | ANALYSE} [ VERBOSE ] +{ ANALYZE | ANALYSE } [ VERBOSE ] [ table_name [ ( column_name [, ...] ) ] ] PARTITION patrition_name; -{ANALYZE | ANALYSE} [ VERBOSE ] +{ ANALYZE | ANALYSE } [ VERBOSE ] { foreign_table_name | FOREIGN TABLES }; -{ANALYZE | ANALYSE} [ VERBOSE ] +{ ANALYZE | ANALYSE } [ VERBOSE ] table_name (( column_1_name, column_2_name [, ...] )); -{ANALYZE | ANALYSE} VERIFY {FAST|COMPLETE}; -{ANALYZE | ANALYSE} VERIFY {FAST|COMPLETE} - table_name|index_name [CASCADE]; -{ANALYZE | ANALYSE} VERIFY {FAST|COMPLETE} - table_name PARTITION (patrition_name) [CASCADE]; +{ ANALYZE | ANALYSE } VERIFY { FAST | COMPLETE }; +{ ANALYZE | ANALYSE } VERIFY { FAST | COMPLETE } table_name | index_name [ CASCADE ]; +{ ANALYZE | ANALYSE } VERIFY { FAST | COMPLETE } + table_name PARTITION (patrition_name) [ CASCADE ]; diff --git a/doc/src/sgml/ref/call.sgmlin b/doc/src/sgml/ref/call.sgmlin index 4b9663f49..ee0a73d47 100644 --- a/doc/src/sgml/ref/call.sgmlin +++ b/doc/src/sgml/ref/call.sgmlin @@ -10,7 +10,7 @@ -CALL [schema.] func_name ( param_expr ); +CALL [ schema. ] func_name ( param_expr ); \ No newline at end of file diff --git a/doc/src/sgml/ref/create_audit_policy.sgmlin b/doc/src/sgml/ref/create_audit_policy.sgmlin index b69cd5281..2c6cfa563 100755 --- a/doc/src/sgml/ref/create_audit_policy.sgmlin +++ b/doc/src/sgml/ref/create_audit_policy.sgmlin @@ -24,8 +24,8 @@ FILTER ON { ( FILTER_TYPE ( filter_value [, ... ] ) ) [, ... ] } where DDL can be: { ( ALTER | ANALYZE | COMMENT | CREATE | DROP | GRANT | REVOKE | SET | SHOW | LOGIN_ACCESS | LOGIN_FAILURE | LOGOUT | LOGIN ) } -where DML can be: -{ ( COPY | DEALLOCATE | DELETE_P | EXECUTE | REINDEX | INSERT | REPARE | SELECT | TRUNCATE | UPDATE ) } +where DML can be: +{ ( COPY | DEALLOCATE | DELETE_P | EXECUTE | REINDEX | INSERT | PREPARE | SELECT | TRUNCATE | UPDATE ) } where FILTER_TYPE can be: { APP | ROLES | IP } diff --git a/doc/src/sgml/ref/create_foreign_table.sgmlin b/doc/src/sgml/ref/create_foreign_table.sgmlin index 0a1ee6792..3c86f4c43 100644 --- a/doc/src/sgml/ref/create_foreign_table.sgmlin +++ b/doc/src/sgml/ref/create_foreign_table.sgmlin @@ -10,43 +10,43 @@ -CREATE FOREIGN TABLE [ IF NOT EXISTS ] table_name -( { column_name type_name POSITION(offset,length) [column_constraint ] - | LIKE source_table | table_constraint } [, ...] ) -SEVER gsmpp_server -OPTIONS ( { option_name ' value ' } [, ...] ) -[ { WRITE ONLY | READ ONLY }] -[ WITH error_table_name | LOG INTO error_table_name] -[REMOTE LOG 'name'] -[PER NODE REJECT LIMIT 'value'] -[ TO { GROUP groupname | NODE ( nodename [, ... ] ) } ]; -CREATE FOREIGN TABLE [ IF NOT EXISTS ] table_name -( { column_name type_name - [ { [CONSTRAINT constraint_name] NULL | - [CONSTRAINT constraint_name] NOT NULL | - column_constraint [...]} ] | - table_constraint} [, ...] ) -SERVER server_name -OPTIONS ( { option_name ' value ' } [, ...] ) -DISTRIBUTE BY {ROUNDROBIN | REPLICATION} -[ TO { GROUP groupname | NODE ( nodename [, ... ] ) } ] -[ PARTITION BY ( column_name ) [AUTOMAPPED]] ; -CREATE FOREIGN TABLE [ IF NOT EXISTS ] table_name -( [ { column_name type_name | LIKE source_table } [, ...] ] ) -SERVER server_name -OPTIONS ( { option_name ' value ' } [, ...] ) -[ READ ONLY ] -[ DISTRIBUTE BY {ROUNDROBIN} ] -[ TO { GROUP groupname | NODE ( nodename [, ... ] ) } ]; - +CREATE FOREIGN TABLE [ IF NOT EXISTS ] table_name +( { column_name type_name POSITION ( offset, length ) [column_constraint ] + | LIKE source_table | table_constraint } [, ...] ) + SEVER gsmpp_server + OPTIONS ( { option_name ' value ' } [, ...] ) + [ { WRITE ONLY | READ ONLY }] + [ WITH error_table_name | LOG INTO error_table_name ] + [ REMOTE LOG 'name' ] + [PER NODE REJECT LIMIT 'value'] + [ TO { GROUP groupname | NODE ( nodename [, ... ] ) } ]; +CREATE FOREIGN TABLE [ IF NOT EXISTS ] table_name +( { column_name type_name + [ { [CONSTRAINT constraint_name] NULL | + [CONSTRAINT constraint_name] NOT NULL | + column_constraint [...]} ] | + table_constraint} [, ...] ) + SERVER server_name + OPTIONS ( { option_name ' value ' } [, ...] ) + DISTRIBUTE BY {ROUNDROBIN | REPLICATION} + [ TO { GROUP groupname | NODE ( nodename [, ... ] ) } ] + [ PARTITION BY ( column_name ) [AUTOMAPPED]] ; +CREATE FOREIGN TABLE [ IF NOT EXISTS ] table_name + ( [ { column_name type_name | LIKE source_table } [, ...] ] ) + SERVER server_name + OPTIONS ( { option_name ' value ' } [, ...] ) + [ READ ONLY ] + [ DISTRIBUTE BY {ROUNDROBIN} ] + [ TO { GROUP groupname | NODE ( nodename [, ... ] ) } ]; + where column_constraint can be: -[CONSTRAINT constraint_name] -{PRIMARY KEY | UNIQUE} -[NOT ENFORCED [ENABLE QUERY OPTIMIZATION | DISABLE QUERY OPTIMIZATION] | ENFORCED] +[ CONSTRAINT constraint_name ] +{ PRIMARY KEY | UNIQUE } +[ NOT ENFORCED [ ENABLE QUERY OPTIMIZATION | DISABLE QUERY OPTIMIZATION ] | ENFORCED ] where table_constraint can be: -[CONSTRAINT constraint_name] -{PRIMARY KEY | UNIQUE} (column_name) -[NOT ENFORCED [ENABLE QUERY OPTIMIZATION | DISABLE QUERY OPTIMIZATION] | ENFORCED] +[ CONSTRAINT constraint_name ] +{ PRIMARY KEY | UNIQUE } ( column_name ) +[ NOT ENFORCED [ ENABLE QUERY OPTIMIZATION | DISABLE QUERY OPTIMIZATION ] | ENFORCED ] - + diff --git a/doc/src/sgml/ref/create_index.sgmlin b/doc/src/sgml/ref/create_index.sgmlin index 9ff7b1fa5..6c4a50963 100644 --- a/doc/src/sgml/ref/create_index.sgmlin +++ b/doc/src/sgml/ref/create_index.sgmlin @@ -16,10 +16,10 @@ CREATE [ UNIQUE ] INDEX [ [schema_name.] index_name ] ON table_name [ USING meth [ TABLESPACE tablespace_name ] [ WHERE predicate ]; CREATE [ UNIQUE ] INDEX [ [schema_name.] index_name ] ON table_name [ USING method ] -( {{ column_name | ( expression ) } [ COLLATE collation ] [ opclass ] [ ASC | DESC ] [ NULLS LAST ] }[, ...] ) -[ LOCAL [ ( { PARTITION index_partition_name [ TABLESPACE index_partition_tablespace ] } [, ...] ) ] | GLOBAL ] -[ WITH ( { storage_parameter = value } [, ...] ) ] -[ TABLESPACE tablespace_name ]; + ( { { column_name | ( expression ) } [ COLLATE collation ] [ opclass ] [ ASC | DESC ] [ NULLS LAST ] } [, ...] ) + [ LOCAL [ ( { PARTITION index_partition_name [ TABLESPACE index_partition_tablespace ] } [, ...] ) ] | GLOBAL ] + [ WITH ( { storage_parameter = value } [, ...] ) ] + [ TABLESPACE tablespace_name ]; diff --git a/doc/src/sgml/ref/create_sequence.sgmlin b/doc/src/sgml/ref/create_sequence.sgmlin index fb5dbbf22..06e4b0188 100644 --- a/doc/src/sgml/ref/create_sequence.sgmlin +++ b/doc/src/sgml/ref/create_sequence.sgmlin @@ -16,7 +16,7 @@ -CREATE SEQUENCE name [ INCREMENT [ BY ] increment ] +CREATE [ LARGE ] SEQUENCE name [ INCREMENT [ BY ] increment ] [ MINVALUE minvalue | NO MINVALUE | NOMINVALUE] [ MAXVALUE maxvalue | NO MAXVALUE | NOMAXVALUE] [ START [ WITH ] start ] [ CACHE cache ] [ [ NO ] CYCLE | NOCYCLE] [ OWNED BY { table_name.column_name | NONE } ]; diff --git a/doc/src/sgml/ref/create_table.sgmlin b/doc/src/sgml/ref/create_table.sgmlin index ba2fdfa48..1179928d4 100644 --- a/doc/src/sgml/ref/create_table.sgmlin +++ b/doc/src/sgml/ref/create_table.sgmlin @@ -10,15 +10,20 @@ -CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE [ IF NOT EXISTS ] table_name -({ column_name data_type [ compress_mode ] [ COLLATE collation ] [ column_constraint [ ... ] ] [encrypted with ('column_encryption_key', 'encryption_type')] +CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE [ IF NOT EXISTS ] table_name + ( { column_name data_type [ compress_mode ] [ COLLATE collation ] [ column_constraint [ ... ] ] | table_constraint | LIKE source_table [ like_option [...] ] } [, ... ]) -[ WITH ( {storage_parameter = value} [, ... ] ) ] -[ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ] -[ COMPRESS | NOCOMPRESS ] -[ TABLESPACE tablespace_name ]; + [ WITH ( {storage_parameter = value} [, ... ] ) ] + [ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ] + [ COMPRESS | NOCOMPRESS ] + [ TABLESPACE tablespace_name ] + [ DISTRIBUTE BY { REPLICATION | { HASH ( column_name [,...] ) + | RANGE ( column_name [,...] ) range_distribution_rules + | LIST ( column_name [,...] ) list_distribution_rules } + } ] + [ TO { GROUP groupname | NODE ( nodename [, ... ] ) } ]; where column_constraint can be: [ CONSTRAINT constraint_name ] @@ -29,6 +34,7 @@ where column_constraint can be: GENERATED ALWAYS AS ( generation_expr ) STORED | UNIQUE index_parameters | PRIMARY KEY index_parameters | + ENCRYPTED WITH ( COLUMN_ENCRYPTION_KEY = column_encryption_key, ENCRYPTION_TYPE = encryption_type_value ) | REFERENCES reftable [ ( refcolumn ) ] [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ] [ ON DELETE action ] [ ON UPDATE action ] } [ DEFERRABLE | NOT DEFERRABLE | INITIALLY DEFERRED | INITIALLY IMMEDIATE ] @@ -48,6 +54,19 @@ where like_option can be: where index_parameters can be: [ WITH ( {storage_parameter = value} [, ... ] ) ] [ USING INDEX TABLESPACE tablespace_name ] +where range_distribution_rules can be: +[ ( SLICE name VALUES LESS THAN (expression | MAXVALUE [, ... ]) [DATANODE datanode_name] + [, ... ] ) | + ( SLICE name START (expression) END (expression) EVERY (expression) [DATANODE datanode_name] + [, ... ] ) | + SLICE REFERENCES table_name +] +where list_distribution_rules can be: +[ ( SLICE name VALUES (expression [, ... ]) [DATANODE datanode_name] + [, ... ] ) | + ( SLICE name VALUES (DEFAULT) [DATANODE datanode_name] ) | + SLICE REFERENCES table_name +] diff --git a/doc/src/sgml/ref/create_table_partition.sgmlin b/doc/src/sgml/ref/create_table_partition.sgmlin index 55b85cb00..407b70808 100644 --- a/doc/src/sgml/ref/create_table_partition.sgmlin +++ b/doc/src/sgml/ref/create_table_partition.sgmlin @@ -17,18 +17,18 @@ CREATE TABLE [ IF NOT EXISTS ] partition_table_name | LIKE source_table [ like_option [...] ] } [, ... ] ] ) -[ WITH ( {storage_parameter = value} [, ... ] ) ] -[ COMPRESS | NOCOMPRESS ] -[ TABLESPACE tablespace_name ] -[ DISTRIBUTE BY { REPLICATION | { [ HASH ] ( column_name ) } } ] -[ TO { GROUP groupname | NODE ( nodename [, ... ] ) } ] -PARTITION BY { - {VALUES (partition_key)} | - {RANGE (partition_key) [ INTERVAL ('interval_expr') [ STORE IN ( tablespace_name [, ... ] ) ] ] ( partition_less_than_item [, ... ] )} | - {RANGE (partition_key) [ INTERVAL ('interval_expr') [ STORE IN ( tablespace_name [, ... ] ) ] ] ( partition_start_end_item [, ... ] )} | - {LIST | HASH (partition_key) (PARTITION partition_name [VALUES (list_values_clause)] opt_table_space )} - NOTICE: LIST/HASH partition is only avaliable in CENTRALIZED mode! -} [ { ENABLE | DISABLE } ROW MOVEMENT ]; + [ WITH ( {storage_parameter = value} [, ... ] ) ] + [ COMPRESS | NOCOMPRESS ] + [ TABLESPACE tablespace_name ] + [ DISTRIBUTE BY { REPLICATION | { [ HASH ] ( column_name ) } } ] + [ TO { GROUP groupname | NODE ( nodename [, ... ] ) } ] + PARTITION BY { + {VALUES (partition_key)} | + {RANGE (partition_key) [ INTERVAL ('interval_expr') [ STORE IN ( tablespace_name [, ...] ) ] ] ( partition_less_than_item [, ... ] )} | + {RANGE (partition_key) [ INTERVAL ('interval_expr') [ STORE IN ( tablespace_name [, ...] ) ] ] ( partition_start_end_item [, ... ] )} | + {LIST | HASH (partition_key) (PARTITION partition_name [ VALUES (list_values_clause) ] opt_table_space ) } + NOTICE: LIST/HASH partition is only avaliable in CENTRALIZED mode! + } [ { ENABLE | DISABLE } ROW MOVEMENT ]; where column_constraint can be: [ CONSTRAINT constraint_name ] diff --git a/doc/src/sgml/ref/create_type.sgmlin b/doc/src/sgml/ref/create_type.sgmlin index 073d1810e..6898b5dc9 100755 --- a/doc/src/sgml/ref/create_type.sgmlin +++ b/doc/src/sgml/ref/create_type.sgmlin @@ -44,6 +44,9 @@ CREATE TYPE name ( ) CREATE TYPE name + +CREATE TYPE name AS ENUM + ( [ 'lable' [, ... ] ] ) diff --git a/doc/src/sgml/ref/drop_function.sgmlin b/doc/src/sgml/ref/drop_function.sgmlin index 03a663e8f..7fd366218 100644 --- a/doc/src/sgml/ref/drop_function.sgmlin +++ b/doc/src/sgml/ref/drop_function.sgmlin @@ -10,7 +10,7 @@ -DROP FUNCTION [ IF EXISTS ] function_name [ ( [ {[ argmode ] [ argname ] argtype} [, ...] ] ) [ CASCADE | RESTRICT ] ]; +DROP FUNCTION [ IF EXISTS ] function_name [ ( [ { [ argmode ] [ argname ] argtype} [, ...] ] ) [ CASCADE | RESTRICT ] ]; \ No newline at end of file diff --git a/doc/src/sgml/ref/drop_masking_policy.sgmlin b/doc/src/sgml/ref/drop_masking_policy.sgmlin index 6bc5dd011..f6968d745 100644 --- a/doc/src/sgml/ref/drop_masking_policy.sgmlin +++ b/doc/src/sgml/ref/drop_masking_policy.sgmlin @@ -10,7 +10,7 @@ -DROP MASKING POLICY [IF EXISTS] policy_name; +DROP MASKING POLICY [ IF EXISTS ] policy_name; diff --git a/doc/src/sgml/ref/drop_sequence.sgmlin b/doc/src/sgml/ref/drop_sequence.sgmlin index ea77fb057..63630a9ab 100644 --- a/doc/src/sgml/ref/drop_sequence.sgmlin +++ b/doc/src/sgml/ref/drop_sequence.sgmlin @@ -16,7 +16,7 @@ -DROP SEQUENCE [ IF EXISTS ] {[schema.]sequence_name} [, ...] [ CASCADE | RESTRICT ]; +DROP [ LARGE ] SEQUENCE [ IF EXISTS ] { [schema.] sequence_name } [, ...] [ CASCADE | RESTRICT ]; diff --git a/doc/src/sgml/ref/grant.sgmlin b/doc/src/sgml/ref/grant.sgmlin index 9d03b5297..e54882550 100755 --- a/doc/src/sgml/ref/grant.sgmlin +++ b/doc/src/sgml/ref/grant.sgmlin @@ -23,7 +23,7 @@ GRANT { {{ SELECT | INSERT | UPDATE | REFERENCES | COMMENT } ( column_name [, .. [ WITH GRANT OPTION ]; GRANT { { SELECT | UPDATE | USAGE | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] } - ON { [ SEQUENCE ] sequence_name [, ...] + ON { [ [ LARGE ] SEQUENCE ] sequence_name [, ...] | ALL SEQUENCES IN SCHEMA schema_name [, ...] } TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]; @@ -85,7 +85,7 @@ GRANT { USAGE | ALL [PRIVILEGES] } ON DATA SOURCE src_name [, ...] TO { [GROUP] role_name | PUBLIC } [, ...] [WITH GRANT OPTION]; -GRANT { { READ | WRITE } [, ...] | ALL [PRIVILEGES] } +GRANT { { READ | WRITE | ALTER | DROP } [, ...] | ALL [PRIVILEGES] } ON DIRECTORY directory_name [, ...] TO { [GROUP] role_name | PUBLIC } [, ...] [WITH GRANT OPTION]; diff --git a/doc/src/sgml/ref/predict_by.sgmlin b/doc/src/sgml/ref/predict_by.sgmlin new file mode 100644 index 000000000..279198d5b --- /dev/null +++ b/doc/src/sgml/ref/predict_by.sgmlin @@ -0,0 +1,20 @@ + + +PREDICT BY +7 +SQL - Language Statements + + +PREDICT BY +Use a trained model to perform inference tasks + + + + +PREDICT BY model_name [ (FEATURES attribute [, attribute] +]) ]; + +Use the model in catalog 'gs_modelwarehouse' to perform inference tasks. + + + + diff --git a/doc/src/sgml/ref/revoke.sgmlin b/doc/src/sgml/ref/revoke.sgmlin index 912cb1322..7f8f03d5e 100644 --- a/doc/src/sgml/ref/revoke.sgmlin +++ b/doc/src/sgml/ref/revoke.sgmlin @@ -51,7 +51,7 @@ REVOKE [ GRANT OPTION FOR ] FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ]; REVOKE [ GRANT OPTION FOR ] - { { READ | WRITE } [, ...] | ALL [ PRIVILEGES ] } + { { READ | WRITE | ALTER | DROP } [, ...] | ALL [ PRIVILEGES ] } ON DIRECTORY directory_name [, ...] FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ]; @@ -105,10 +105,6 @@ REVOKE [ GRANT OPTION FOR ] { USAGE | ALL [ PRIVILEGES ] } ON DATA SOURCE src_name [, ...] FROM { [GROUP] role_name | PUBLIC } [, ...]; -REVOKE [ GRANT OPTION FOR ] - { { READ | WRITE } [, ...] | ALL [ PRIVILEGES ] } - ON DIRECTORY directory_name [, ...] - FROM { [GROUP] role_name | PUBLIC } [, ...]; REVOKE [ GRANT OPTION FOR ] { { EXECUTE | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] } ON PACKAGE package_name [, ...] diff --git a/doc/src/sgml/ref/select.sgmlin b/doc/src/sgml/ref/select.sgmlin index 9dede4222..25af6032c 100644 --- a/doc/src/sgml/ref/select.sgmlin +++ b/doc/src/sgml/ref/select.sgmlin @@ -15,16 +15,17 @@ SELECT [/*+ plan_hint */] [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ] { * | {expression [ [ AS ] output_name ]} [, ...] } [ FROM from_item [, ...] ] [ WHERE condition ] + [ [ START WITH condition ] CONNECT BY condition [ ORDER SIBLINGS BY expression ] ] [ GROUP BY grouping_element [, ...] ] [ HAVING condition [, ...] ] [ WINDOW {window_name AS ( window_definition )} [, ...] ] [ { UNION | INTERSECT | EXCEPT | MINUS } [ ALL | DISTINCT ] select ] [ ORDER BY {expression [ [ ASC | DESC | USING operator ] | nlssort_expression_clause ] [ NULLS { FIRST | LAST } ]} [, ...] ] - [ LIMIT { [offset,] count | ALL } ] + [ LIMIT { [offset,] count | ALL } ] [ OFFSET start [ ROW | ROWS ] ] [ FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } ONLY ] - [ {FOR { UPDATE | NO KEY UPDATE | SHARE | KEY SHARE } [ OF table_name [, ...] ] [ NOWAIT ]} [...] ]; -TABLE { ONLY {(table_name)| table_name} | table_name [ * ]}; + [ {FOR { UPDATE | NO KEY UPDATE | SHARE | KEY SHARE } [ OF table_name [, ...] ] [ NOWAIT ]} [...] ] +TABLE { ONLY { (table_name) | table_name } | table_name [ * ]}; where from_item can be: [ ONLY ] table_name [ * ] [ partition_clause ] [ [ AS ] alias [ ( column_alias [, ...] ) ] ] @@ -35,14 +36,14 @@ where from_item can be: |function_name ( [ argument [, ...] ] ) AS ( column_definition [, ...] ) |from_item [ NATURAL ] join_type from_item [ ON join_condition | USING ( join_column [, ...] ) ] where grouping_element can be: -() -|expression -|( expression [, ...] ) +() +|expression +|( expression [, ...] ) |ROLLUP ( { expression | ( expression [, ...] ) } [, ...] ) |CUBE ( { expression | ( expression [, ...] ) } [, ...] ) |GROUPING SETS ( grouping_element [, ...] ) where with_query can be: -with_query_name [ ( column_name [, ...] ) ] AS ( {select | values | insert | update | delete} ) +with_query_name [ ( column_name [, ...] ) ] AS [ [ NOT ] MATERIALIZED ] ( {select | values | insert | update | delete} ) where partition_clause can be: PARTITION { ( partition_name ) | FOR ( partition_value [, ...] ) } where nlssort_expression_clause can be: diff --git a/escan.txt b/escan.txt index 5e1d38426..5d2a48dff 100644 --- a/escan.txt +++ b/escan.txt @@ -851,6 +851,8 @@ src/gausskernel/security/gs_policy/gs_policy_utils.cpp src/gausskernel/security/gs_policy/gs_string.cpp src/gausskernel/security/gs_policy/policy_common.cpp src/gausskernel/security/iprange/iprange.cpp +src/gausskernel/storage/access/archive/archive_am.cpp +src/gausskernel/storage/access/archive/nas_am.cpp src/gausskernel/storage/access/cbtree/cbtree.cpp src/gausskernel/storage/access/common/cstorescankey.cpp src/gausskernel/storage/access/common/heaptuple.cpp @@ -1027,6 +1029,7 @@ src/gausskernel/storage/access/transam/slru.cpp src/gausskernel/storage/access/transam/transam.cpp src/gausskernel/storage/access/transam/twophase.cpp src/gausskernel/storage/access/transam/twophase_rmgr.cpp +src/gausskernel/storage/access/transam/seg_double_write.cpp src/gausskernel/storage/access/transam/varsup.cpp src/gausskernel/storage/access/transam/xact.cpp src/gausskernel/storage/access/transam/xlog.cpp @@ -1288,6 +1291,7 @@ src/gausskernel/storage/page/itemptr.cpp src/gausskernel/storage/page/pagecompress.cpp src/gausskernel/storage/remote/remote_adapter.cpp src/gausskernel/storage/remote/remote_read.cpp +src/gausskernel/storage/replication/archive_walreceiver.cpp src/gausskernel/storage/replication/basebackup.cpp src/gausskernel/storage/replication/bcm.cpp src/gausskernel/storage/replication/catchup.cpp @@ -1310,7 +1314,6 @@ src/gausskernel/storage/replication/logical/logical.cpp src/gausskernel/storage/replication/logical/logicalfuncs.cpp src/gausskernel/storage/replication/logical/reorderbuffer.cpp src/gausskernel/storage/replication/logical/snapbuild.cpp -src/gausskernel/storage/replication/obswalreceiver.cpp src/gausskernel/storage/replication/rto_statistic.cpp src/gausskernel/storage/replication/slot.cpp src/gausskernel/storage/replication/slotfuncs.cpp diff --git a/src/.gitignore b/src/.gitignore index 7fc62c9e2..c541bca22 100644 --- a/src/.gitignore +++ b/src/.gitignore @@ -1,6 +1,6 @@ #--- auto-generated file list # -*.rej +/Makefile.global /Makefile.port /bin/gs_cgroup/gs_cgroup /bin/gs_cgroup/gsconfig.cpp @@ -143,6 +143,9 @@ /common/backend/parser/gram.hpp /common/backend/parser/hint_gram.cpp /common/backend/parser/hint_gram.hpp +/common/backend/client_logic/cstrings_map.cpp +/common/backend/parser/lex.backup +/common/interfaces/libpq/libpq_ce/ /common/interfaces/ecpg/include/stamp-h /common/interfaces/libpq/frontend_parser/gram.cpp /common/interfaces/libpq/frontend_parser/gram.hpp @@ -150,10 +153,15 @@ /common/interfaces/libpq/frontend_parser/scan.cpp /common/pl/plpgsql/src/pl_gram.cpp /common/pl/plpgsql/src/pl_gram.hpp +/common/port/port_srv/ /gausskernel/storage/replication/repl_gram.cpp /gausskernel/storage/replication/repl_gram.hpp /gausskernel/storage/replication/syncrep_gram.cpp /gausskernel/storage/replication/syncrep_gram.hpp +/gausskernel/storage/replication/lex.backup +/gausskernel/storage/mot/core/obj/ +/gausskernel/storage/mot/fdw_adapter/obj/ +/gausskernel/storage/mot/jit_exec/obj/ /include/gstrace/access_gstrace.h /include/gstrace/bootstrap_gstrace.h /include/gstrace/catalog_gstrace.h @@ -180,3 +188,10 @@ /include/replication/syncrep_gram.hpp /include/stamp-h /test/regress/pg_regress +/test/regress/sql/*.sql +/test/regress/sql/*/*.sql +/test/regress/expected/*.out +/test/regress/expected/*/*.out +/test/regress/results/ +/test/regress/tmp_check/ +/test/isolation/specparse.cpp diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index a51e1da68..da29ef9bd 100755 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -28,7 +28,7 @@ execute_process( COMMAND ln -fs ${PROJECT_SRC_DIR}/include/port/linux.h ${PROJECT_SRC_DIR}/include/pg_config_os.h ) -INCLUDE_DIRECTORIES(${LIBTHRIFT_INCLUDE_PATH} ${SNAPPY_INCLUDE_PATH} ${CJSON_INCLUDE_PATH} ${BOOST_INCLUDE_PATH}) +INCLUDE_DIRECTORIES(${LIBTHRIFT_INCLUDE_PATH} ${SNAPPY_INCLUDE_PATH} ${CJSON_INCLUDE_PATH} ${BOOST_INCLUDE_PATH} ${ZSTD_INCLUDE_PATH}) set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/bin diff --git a/src/Makefile.global.in b/src/Makefile.global.in index f833d44d0..49fdbd72b 100644 --- a/src/Makefile.global.in +++ b/src/Makefile.global.in @@ -236,18 +236,22 @@ endif SUPPORT_HOTPATCH = @SUPPORT_HOTPATCH@ -ifeq ($(PLAT_FORM_STR), suse11_sp1_x86_64) - SUPPORT_HOTPATCH = yes -else - ifneq ($(findstring $(PLAT_FORM_STR), euleros2.0_sp8_aarch64 euleros2.0_sp9_aarch64 euleros2.0_sp2_x86_64 euleros2.0_sp5_x86_64 kylin_aarch64),) - ifeq ($(CC_VERSION), 7.3.0) - SUPPORT_HOTPATCH = yes +ifneq ($(enable_multiple_nodes)_$(enable_privategauss), no_no) + ifeq ($(PLAT_FORM_STR), suse11_sp1_x86_64) + SUPPORT_HOTPATCH = yes + else + ifneq ($(findstring $(PLAT_FORM_STR), euleros2.0_sp8_aarch64 euleros2.0_sp9_aarch64 euleros2.0_sp2_x86_64 euleros2.0_sp5_x86_64 kylinv10_sp1_aarch64 kylinv10_sp1_x86_64_intel),) + ifeq ($(CC_VERSION), 7.3.0) + SUPPORT_HOTPATCH = yes + else + SUPPORT_HOTPATCH = no + endif else SUPPORT_HOTPATCH = no endif - else - SUPPORT_HOTPATCH = no endif +else + SUPPORT_HOTPATCH = no endif ############################################################################# ############################################################################# @@ -269,6 +273,7 @@ ifeq ($(with_3rd), NONE) PLATFORMPATH = binarylibs/platform/$(PLAT_FORM_STR) BUILD_TOOLS_PATH = binarylibs/buildtools/$(PLAT_FORM_STR) INSTALL_TOOLS_PATH = dependency/$(PLAT_FORM_STR) + COMPONENTPATH = binarylibs/component/$(PLAT_FORM_STR) JEMALLOC_HOME = $(top_builddir)/$(BINARYPATH)/jemalloc/$(JEMALLOC_BUILD_TYPE) MEMCHECK_HOME = $(top_builddir)/$(BINARYPATH)/memcheck/$(MEMCHECK_BUILD_TYPE) @@ -306,11 +311,10 @@ ifeq ($(with_3rd), NONE) ZSTD_HOME = $(top_builddir)/$(BINARYPATH)/zstd LIBNANOMSG_HOME = $(top_builddir)/$(BINARYPATH)/nanomsg/comm PLJAVA_HOME = $(top_builddir)/$(BINARYPATH)/pljava/$(LIB_SUPPORT_LLT) - JAVA_HOME = $(top_builddir)/$(PLATFORMPATH)/openjdk8/jdk1.8.0_222 MASSTREE_HOME = $(top_builddir)/$(BINARYPATH)/masstree/comm MYFDW_HOME = $(top_builddir)/dependency/mysql_fdw ORCFDW_HOME = $(top_builddir)/dependency/oracle_fdw - DCF_HOME = $(top_builddir)/$(BINARYPATH)/dcf + DCF_HOME = $(top_builddir)/$(COMPONENTPATH)/dcf else BINARYPATH = dependency/$(PLAT_FORM_STR) PLATFORMPATH = platform/$(PLAT_FORM_STR) @@ -355,7 +359,7 @@ endif MASSTREE_HOME = $(with_3rd)/$(BINARYPATH)/masstree/comm MYFDW_HOME = $(with_3rd)/dependency/mysql_fdw ORCFDW_HOME = $(with_3rd)/dependency/oracle_fdw - DCF_HOME = $(with_3rd)/$(BINARYPATH)/dcf + DCF_HOME = $(with_3rd)/component/$(PLAT_FORM_STR)/dcf endif LIBCARBONDATA_HOME = $(top_builddir)/../contrib/carbondata diff --git a/src/bin/CMakeLists.txt b/src/bin/CMakeLists.txt index 390e4f6d0..216cc2690 100755 --- a/src/bin/CMakeLists.txt +++ b/src/bin/CMakeLists.txt @@ -25,8 +25,10 @@ set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/scripts ${CMAKE_CURRENT_SOURCE_DIR}/pg_rewind ${CMAKE_CURRENT_SOURCE_DIR}/gs_plan_simulator + ${CMAKE_CURRENT_SOURCE_DIR}/gs_loader ) if("${ENABLE_MULTIPLE_NODES}" STREQUAL "ON") + add_subdirectory(gs_cgroup) add_subdirectory(gs_log) add_subdirectory(pg_upgrade) add_subdirectory(pgxc_clean) @@ -42,8 +44,8 @@ add_subdirectory(psql) add_subdirectory(pg_config) add_subdirectory(pg_controldata) add_subdirectory(pg_resetxlog) -add_subdirectory(gs_cgroup) add_subdirectory(gs_guc) add_subdirectory(gsqlerr) add_subdirectory(pg_basebackup) add_subdirectory(pg_probackup) +add_subdirectory(gs_loader) diff --git a/src/bin/Makefile b/src/bin/Makefile index 972d225b3..d23028e16 100644 --- a/src/bin/Makefile +++ b/src/bin/Makefile @@ -46,6 +46,7 @@ SUBDIRS = \ pg_rewind \ pg_dump \ psql \ + gs_loader \ pg_config \ pg_controldata \ pg_resetxlog \ diff --git a/src/bin/gs_guc/cluster_guc.conf b/src/bin/gs_guc/cluster_guc.conf index bae921d5a..fe66424cd 100755 --- a/src/bin/gs_guc/cluster_guc.conf +++ b/src/bin/gs_guc/cluster_guc.conf @@ -82,7 +82,6 @@ behavior_compat_options|string|0,0|NULL|NULL| bgwriter_delay|int|10,10000|ms|NULL| bgwriter_lru_maxpages|int|0,1000|NULL|NULL| bgwriter_lru_multiplier|real|0,10|NULL|NULL| -bgwriter_thread_num|int|0,8|NULL|NULL| bulk_read_ring_size|int|256,2147483647|kB|NULL| bulk_write_ring_size|int|16384,2147483647|kB|NULL| bytea_output|enum|escape,hex|NULL|NULL| @@ -153,6 +152,7 @@ enable_cbm_tracking|bool|0,0|NULL|Turn on cbm tracking function.| enable_candidate_buf_usage_count|bool|0,0|NULL|NULL| enable_change_hjcost|bool|0,0|NULL|NULL| enable_copy_server_files|bool|0,0|NULL|NULL| +enable_consider_usecount|bool|0,0|NULL|NULL| enable_sonic_hashjoin|bool|0,0|NULL|NULL| enable_sonic_hashagg|bool|0,0|NULL|NULL| enable_sonic_optspill|bool|0,0|NULL|NULL| @@ -175,7 +175,6 @@ enable_fast_numeric|bool|0,0|NULL|Enable numeric optimize.| enable_force_vector_engine|bool|0,0|NULL|NULL| enable_global_plancache|bool|0,0|NULL|NULL| gpc_clean_timeout|int|300,86400|NULL|NULL| -enable_twophase_commit|bool|0,0|NULL|NULL| enable_hashagg|bool|0,0|NULL|NULL| enable_hashjoin|bool|0,0|NULL|NULL| enable_hdfs_predicate_pushdown|bool|0,0|NULL|NULL| @@ -236,6 +235,9 @@ geqo|bool|0,0|NULL|Usually geqo do not set to off in the implementation process, geqo_effort|int|1,10|NULL|NULL| geqo_generations|int|0,2147483647|NULL|NULL| hadr_max_size_for_xlog_receiver|int|0,2147483647|kB|NULL| +hadr_recovery_time_target|int|0,3600|NULL|NULL| +hadr_recovery_point_target|int|0,3600|NULL|NULL| +hadr_super_user_record_path|string|0,0|NULL|NULL| hll_default_log2m|int|10,16|NULL|NULL| hll_default_log2explicit|int|0,12|NULL|NULL| hll_default_log2sparse|int|0,14|NULL|NULL| @@ -298,6 +300,7 @@ wdr_snapshot_retention_days|int|1,8|NULL|NULL| wdr_snapshot_query_timeout|int|100,2147483647|s|NULL| enable_wdr_snapshot|bool|0,0|NULL|NULL| enable_asp|bool|0,0|NULL|NULL| +enable_startwith_debug|bool|0,0|NULL|NULL| enable_stmt_track|bool|0,0|NULL|NULL| track_stmt_parameter|bool|0,0|NULL|NULL| asp_sample_num|int|10000,100000|NULL|NULL| @@ -327,7 +330,7 @@ max_io_capacity|int|30720,10485760|kB|NULL| max_loaded_cudesc|int|100,1073741823|NULL|NULL| max_locks_per_transaction|int|10,2147483647|NULL|NULL| max_pred_locks_per_transaction|int|10,2147483647|NULL|NULL| -max_prepared_transactions|int|0,536870911|NULL|NULL| +max_prepared_transactions|int|0,262143|NULL|NULL| max_process_memory|int|2097152,2147483647|kB|NULL| local_syscache_threshold|int|1024,524288|kB|NULL| session_statistics_memory|int|5120,1073741823|kB|NULL| @@ -396,6 +399,24 @@ replconninfo5|string|0,0|NULL|NULL| replconninfo6|string|0,0|NULL|NULL| replconninfo7|string|0,0|NULL|NULL| replconninfo8|string|0,0|NULL|NULL| +replconninfo9|string|0,0|NULL|NULL| +replconninfo10|string|0,0|NULL|NULL| +replconninfo11|string|0,0|NULL|NULL| +replconninfo12|string|0,0|NULL|NULL| +replconninfo13|string|0,0|NULL|NULL| +replconninfo14|string|0,0|NULL|NULL| +replconninfo15|string|0,0|NULL|NULL| +replconninfo16|string|0,0|NULL|NULL| +replconninfo17|string|0,0|NULL|NULL| +replconninfo18|string|0,0|NULL|NULL| +cross_cluster_replconninfo1|string|0,0|NULL|NULL| +cross_cluster_replconninfo2|string|0,0|NULL|NULL| +cross_cluster_replconninfo3|string|0,0|NULL|NULL| +cross_cluster_replconninfo4|string|0,0|NULL|NULL| +cross_cluster_replconninfo5|string|0,0|NULL|NULL| +cross_cluster_replconninfo6|string|0,0|NULL|NULL| +cross_cluster_replconninfo7|string|0,0|NULL|NULL| +cross_cluster_replconninfo8|string|0,0|NULL|NULL| replication_type|int|0,2|NULL|When this parameter is set to 1(multi_standy), enable_data_replicate must be off. It can not be changed once the cluster is installed.| ha_module_debug|bool|0,0|NULL|NULL| require_ssl|bool|0,0|NULL|NULL| @@ -535,7 +556,6 @@ fast_extend_file_size|int|1024,1048576|kB|NULL| prefetch_quantity|int|128,131072|kB|NULL| enable_global_stats|bool|0,0|NULL|NULL| td_compatible_truncation|bool|0,0|NULL|NULL| -gds_debug_mod|bool|0,0|NULL|NULL| enable_valuepartition_pruning|bool|0,0|NULL|NULL| checkpoint_flush_after|int|0,256|kB|NULL| bgwriter_flush_after|int|0,256|kB|NULL| @@ -590,28 +610,12 @@ dcf_flow_control_cpu_threshold|int|0,2147483647|NULL|NULL| dcf_flow_control_net_queue_message_num_threshold|int|0,2147483647|NULL|NULL| dcf_flow_control_disk_rawait_threshold|int|0,2147483647|NULL|NULL| dcf_truncate_threshold|int|1,2147483647|NULL|NULL| -enable_ts_compaction|bool|0,0|NULL|NULL| -ts_consumer_workers|int|1,100|NULL|NULL| -ts_compaction_strategy|string|0,0|NULL|NULL| -ts_adaptive_threads|bool|0,0|NULL|NULL| -ts_cudesc_threshold|int|0,10000000|NULL|NULL| -ts_valid_partition|int|1,30|NULL|NULL| -streaming_router_port|int|0,65535|NULL|Streaming router port. Please keep the value (streaming_router_port - port) not change.| -streaming_gather_window_interval|int|5,1440|NULL|NULL| -streaming_num_workers|int|1,64|NULL|NULL| -streaming_num_collectors|int|1,64|NULL|NULL| -streaming_num_queues|int|1,64|NULL|NULL| -streaming_batch_size|int|1,100000000|NULL|NULL| -streaming_batch_memory|int|4096,1048576|kB|NULL| -streaming_batch_timeout|int|1,60000|ms|NULL| -streaming_collect_memory|int|4096,33554432|kB|NULL| -streaming_flush_interval|int|1,1200000|ms|NULL| recovery_max_workers|int|0,20|NULL|NULL| recovery_parse_workers|int|1,16|NULL|NULL| recovery_redo_workers|int|1,8|NULL|NULL| recovery_time_target|int|0,3600|NULL|NULL| pagewriter_sleep|int|0,3600000|ms|NULL| -pagewriter_thread_num|int|1,8|NULL|NULL| +pagewriter_thread_num|int|1,16|NULL|NULL| incremental_checkpoint_timeout|int|1,3600|s|NULL| enable_incremental_checkpoint|bool|0,0|NULL|NULL| enable_double_write|bool|0,0|NULL|NULL| @@ -619,9 +623,8 @@ log_pagewriter|bool|0,0|NULL|NULL| enable_xlog_prune|bool|0,0|NULL|NULL| max_size_for_xlog_prune|int|0,2147483647|kB|NULL| enable_page_lsn_check|bool|0,0|NULL|NULL| -twophase_clean_workers|int|1,10|NULL|NULL| upgrade_mode|int|0,2147483647|NULL|NULL| -advance_xlog_file_num|int|0,100|NULL|NULL| +advance_xlog_file_num|int|0,1000000|NULL|NULL| numa_distribute_mode|string|0,0|NULL|NULL| defer_csn_cleanup_time|int|0,2147483647|ms|NULL| force_promote|int|0,1|NULL|NULL| @@ -631,19 +634,24 @@ enable_auto_explain|bool|0,0|NULL|NULL| auto_explain_level|enum|off,log,notice|NULL|NULL| cost_weight_index|real|1e-10,1e+10|NULL|NULL| default_limit_rows|real|-100,1.79769e+308|NULL|NULL| -sql_beta_feature|enum|partition_opfusion,index_cost_with_leaf_pages_only,canonical_pathkey,join_sel_with_cast_func,no_unique_index_first,sel_semi_poisson,sel_expr_instr,param_path_gen,rand_cost_opt,param_path_opt,page_est_opt,none|NULL|NULL| +sql_beta_feature|enum|resowner_debug,spi_debug,partition_opfusion,index_cost_with_leaf_pages_only,canonical_pathkey,join_sel_with_cast_func,no_unique_index_first,sel_semi_poisson,sel_expr_instr,param_path_gen,rand_cost_opt,param_path_opt,page_est_opt,a_style_coerce,none|NULL|NULL| walwriter_sleep_threshold|int64|1,50000|NULL|NULL| walwriter_cpu_bind|int|-1,2147483647|NULL|NULL| -wal_file_init_num|int|0,50|NULL|NULL| +wal_file_init_num|int|0,1000000|NULL|NULL| catchup2normal_wait_time|int|-1,10000|ms|The maximal allowed duration for waiting from catchup to normal state.| max_concurrent_autonomous_transactions|int|0,1024|NULL|NULL| sync_config_strategy|enum|all_node,only_sync_node,none_node|NULL|Synchronization strategy for configuration files between host and standby.| time_to_target_rpo|int|0,3600|NULL|NULL| disable_memory_protect|bool|0,0|NULL|NULL| segment_buffers|int|16,1073741823|kB|NULL| -default_index_kind|int|0,2|NULL|NULL| undo_zone_count|int|0,1048576|NULL|NULL| +cluster_run_mode|enum|cluster_primary,cluster_standby|NULL|NULL| +xlog_file_size|int64|1048576,576460752303423487|NULL|NULL| +xlog_file_path|string|0,0|NULL|NULL| +plsql_show_all_error|bool|0,0|NULL|NULL| enable_auto_clean_unique_sql|bool|0,0|NULL|NULL| +pldebugger_timeout|int|1,86400|s|NULL| +xlog_lock_file_path|string|0,0|NULL|NULL| max_logical_replication_workers|int|0,262143|NULL|Maximum number of logical replication worker processes.| keep_sync_window|int|0,2147483647|s|NULL| [cmserver] @@ -669,7 +677,7 @@ instance_keep_heartbeat_timeout|int|0,2147483647|NULL|NULL| cm_server_arbitrate_delay_base_time_out|int|0,2147483647|NULL|NULL| cm_server_arbitrate_delay_incrememtal_time_out|int|0,2147483647|NULL|NULL| enable_az_auto_switchover|int|0,1|NULL|NULL| -backup_open|int|0,1|NULL|NULL| +backup_open|int|0,2|NULL|NULL| cm_auth_method|enum|trust,gss|NULL|NULL| cm_krb_server_keyfile|string|0,0|NULL|NULL| switch_rto|int|0,2147483647|NULL|NULL| @@ -680,6 +688,7 @@ az_connect_check_interval|int|1,2147483647|NULL|NULL| az_connect_check_delay_time|int|1,2147483647|NULL|NULL| cmserver_demote_delay_on_etcd_fault|int|1,2147483647|NULL|NULL| instance_phony_dead_restart_interval|int|1800,2147483647|NULL|NULL| +install_type|int|0,1|NULL|NULL| [cmagent] log_dir|string|0,0|NULL|NULL| log_file_size|int|0,2047|MB|NULL| @@ -698,7 +707,7 @@ agent_connect_timeout|int|0,2147483647|NULL|NULL| agent_connect_retries|int|0,2147483647|NULL|NULL| agent_check_interval|int|0,2147483647|NULL|NULL| agent_kill_instance_timeout|int|0,2147483647|NULL|NULL| -agent_backup_open|int|0,1|NULL|NULL| +agent_backup_open|int|0,2|NULL|NULL| log_threshold_check_interval|int|0,2147483647|NULL|NULL| dilatation_shard_count_for_disk_capacity_alarm|int|0,2147483647|NULL|NULL| security_mode|bool|0,0|NULL|NULL| @@ -707,6 +716,7 @@ unix_socket_directory|string|0,0|NULL|NULL| enable_xc_maintenance_mode|bool|0,0|NULL|NULL| process_cpu_affinity|int|0,2|NULL|NULL| agent_phony_dead_check_interval|int|0,2147483647|NULL|NULL| +disaster_recovery_type|int|0,2|NULL|NULL| [lcname] allow_concurrent_tuple_update|bool|0,0|NULL|NULL| prefetch_quantity|int|128,131072|kB|NULL| @@ -773,6 +783,9 @@ max_replication_slots|int|0,262143|NULL|NULL| autovacuum_freeze_max_age|int64|100000,576460752303423487|NULL|NULL| autovacuum_max_workers|int|0,262143|NULL|NULL| track_activity_query_size|int|100,102400|NULL|NULL| +pset_lob_length|int|0,2147483647|NULL|NULL| +pset_num_width|int|0,128|NULL|NULL| +pset_num_format|string|0,0|NULL|NULL| event_source|string|0,0|NULL|NULL| memorypool_enable|bool|0,0|NULL|NULL| enable_memory_limit|bool|0,0|NULL|NULL| @@ -780,6 +793,5 @@ datanode_heartbeat_interval|int|1000,60000|ms|The value is best configured less cost_weight_index|real|1e-10,1e+10|NULL|NULL| default_limit_rows|real|-100,1.79769e+308|NULL|NULL| enable_auto_explain|bool|0,0|NULL|NULL| -enable_custom_parser|bool|0,0|NULL|NULL| auto_explain_level|enum|off,log,notice|NULL|NULL| [end] diff --git a/src/bin/gs_guc/cluster_guc.cpp b/src/bin/gs_guc/cluster_guc.cpp index 69ba04947..19228fdda 100644 --- a/src/bin/gs_guc/cluster_guc.cpp +++ b/src/bin/gs_guc/cluster_guc.cpp @@ -148,6 +148,8 @@ extern unsigned int g_remote_command_result; /* storage the name which perform remote connection failed */ extern nodeInfo* g_incorrect_nodeInfo; +/* storage the name which need to ignore */ +extern nodeInfo* g_ignore_nodeInfo; typedef enum { NO_COMMAND = 0, @@ -1843,7 +1845,7 @@ char* get_AZ_value(const char* value, const char* data_dir) /* make sure it is digit and between 1 and 7, including 1 and 7 */ if (isdigit((unsigned char)*p)) { - nRet = snprintf_s(level, sizeof(level) / sizeof(char), + nRet = snprintf_s(level, sizeof(level) / sizeof(char), sizeof(level) / sizeof(char) - 1, "%c", (unsigned char)*p); securec_check_ss_c(nRet, "\0", "\0"); if (atoi(level) < 1 || atoi(level) > 7) { @@ -1877,6 +1879,7 @@ char* get_AZ_value(const char* value, const char* data_dir) if (NULL == nodenameList) { // try dn + len = strlen(q) + 1; s = (char *)pg_malloc_zero(len * sizeof(char)); nRet = snprintf_s(s, len, len - 1, "%s", q); @@ -1887,6 +1890,7 @@ char* get_AZ_value(const char* value, const char* data_dir) p = vptr; if (CheckDataNameValue(p, data_dir) == false) { + GS_FREE(s); goto failed; } vptr = strtok_r(NULL, delims, &vouter_ptr); @@ -2477,6 +2481,21 @@ static void do_all_nodes_instance_local_in_parallel_loop(const char* instance_na } } +static bool needPassNode(const char* nodename) +{ + int cmpLen = 0; + char* ignoreNode = NULL; + + for (uint32 i = 0; i < g_ignore_nodeInfo->num; i++) { + ignoreNode = g_ignore_nodeInfo->nodename_array[i]; + cmpLen = (strlen(ignoreNode) > strlen(nodename)) ? strlen(ignoreNode) : strlen(nodename); + if (strncmp(ignoreNode, nodename, cmpLen) == 0) { + return true; + } + } + return false; +} + void do_all_nodes_instance_local_in_parallel(const char* instance_name, const char* indatadir) { int idx = 0; @@ -2509,8 +2528,12 @@ void do_all_nodes_instance_local_in_parallel(const char* instance_name, const ch if (NULL == g_parallel_command_cxt[idx].nodename) { continue; } - open_count++; + nodename = g_parallel_command_cxt[idx].nodename; + if ((g_ignore_nodeInfo != NULL) && needPassNode(nodename)) { + continue; + } + open_count++; buf_len = (strlen(g_local_node_name) > strlen(nodename)) ? strlen(g_local_node_name) : strlen(nodename); is_local_node = (0 == strncmp(g_local_node_name, nodename, buf_len)) ? true : false; diff --git a/src/bin/gs_guc/pg_guc.cpp b/src/bin/gs_guc/pg_guc.cpp index 6f1944b65..49e04e309 100644 --- a/src/bin/gs_guc/pg_guc.cpp +++ b/src/bin/gs_guc/pg_guc.cpp @@ -228,6 +228,8 @@ typedef struct { } nodeInfo; /* storage the name which perform remote connection failed */ nodeInfo* g_incorrect_nodeInfo = NULL; +/* storage the name which need to ignore */ +nodeInfo* g_ignore_nodeInfo = NULL; typedef struct { char** nodename_array; @@ -1313,12 +1315,17 @@ do_gucset(const char *action_type, const char *data_dir) to_generatenewline(optconf_line, newconf_line, config_param[i], config_value[i], optvalue_len); } else { /* - * if parameter value is NULL; not consider it as UNSET, - * which means maintain the configuration parameter, and - * there will be prompts telling the user to assign a value. + * if parameter as value is NULL; consider it as UNSET (i.e to default value) + * which means comment the configuration parameter */ - write_stderr(_("ERROR: %s parameters value is expected\n"), config_param[i]); - return FAILURE; + //line is commented + if (isOptLineCommented(optconf_line)) { + rc = strncpy_s(newconf_line, MAX_PARAM_LEN*2, optconf_line, (size_t)Min(line_len, MAX_PARAM_LEN*2 - 1)); + securec_check_c(rc, "\0", "\0"); + } else { + nRet = snprintf_s(newconf_line, MAX_PARAM_LEN*2, MAX_PARAM_LEN*2 - 1, "#%s", optconf_line); + securec_check_ss_c(nRet, "\0", "\0"); + } } updateoradd = UPDATE_PARAMETER; } else { @@ -1554,19 +1561,23 @@ static void do_help_config_guc(void) #ifdef ENABLE_MULTIPLE_NODES (void)printf(_(" NODE-TYPE is coordinator, datanode or gtm:\n")); (void)printf(_(" %s {set | reload} -Z NODE-TYPE [-N NODE-NAME] {-I INSTANCE-NAME | -D DATADIR} " - "[--lcname=LCNAME] {-c \"parameter = value\" -c \"parameter = value\" ...}\n"), + "[--lcname=LCNAME] [--ignore-node=NODES] " + "{-c \"parameter = value\" -c \"parameter = value\" ...}\n"), progname); (void)printf(_(" %s {set | reload} -Z NODE-TYPE [-N NODE-NAME] {-I INSTANCE-NAME | -D DATADIR} " - "[--lcname=LCNAME] {-c \" parameter = value \" -c \" parameter = value \" ...}\n"), + "[--lcname=LCNAME] [--ignore-node=NODES] " + "{-c \" parameter = value \" -c \" parameter = value \" ...}\n"), progname); (void)printf(_(" %s {set | reload} -Z NODE-TYPE [-N NODE-NAME] {-I INSTANCE-NAME | -D DATADIR} " - "[--lcname=LCNAME] {-c \"parameter = \'value\'\" -c \"parameter = \'value\'\" ...}\n"), + "[--lcname=LCNAME] [--ignore-node=NODES] " + "{-c \"parameter = \'value\'\" -c \"parameter = \'value\'\" ...}\n"), progname); (void)printf(_(" %s {set | reload} -Z NODE-TYPE [-N NODE-NAME] {-I INSTANCE-NAME | -D DATADIR} " - "[--lcname=LCNAME] {-c \" parameter = \'value\' \" -c \" parameter = \'value\' \" ...}\n"), + "[--lcname=LCNAME] [--ignore-node=NODES] " + "{-c \" parameter = \'value\' \" -c \" parameter = \'value\' \" ...}\n"), progname); (void)printf(_(" %s {set | reload} -Z NODE-TYPE [-N NODE-NAME] {-I INSTANCE-NAME | -D DATADIR} " - "[--lcname=LCNAME] {-c \"parameter\" -c \"parameter\" ...}\n"), + "[--lcname=LCNAME] [--ignore-node=NODES] {-c \"parameter\" -c \"parameter\" ...}\n"), progname); (void)printf(_(" NODE-TYPE is cmserver or cmagent:\n")); (void)printf(_(" %s {set | reload} -Z NODE-TYPE [-N all -I all] " @@ -1597,15 +1608,19 @@ static void do_help_config_guc(void) (void)printf(_(" e.g. %s set -Z cmagent -c \"program = \'\\\"Hello\\\", World\\!\'\".\n"), progname); #else (void)printf(_(" %s {set | reload} [-Z NODE-TYPE] [-N NODE-NAME] {-I INSTANCE-NAME | -D DATADIR} " - "[--lcname=LCNAME] {-c \"parameter = value\" -c \"parameter = value\" ...}\n"), progname); + "[--lcname=LCNAME] [--ignore-node=NODES] " + "{-c \"parameter = value\" -c \"parameter = value\" ...}\n"), progname); (void)printf(_(" %s {set | reload} [-Z NODE-TYPE] [-N NODE-NAME] {-I INSTANCE-NAME | -D DATADIR} " - "[--lcname=LCNAME] {-c \" parameter = value \" -c \" parameter = value \" ...}\n"), progname); + "[--lcname=LCNAME] [--ignore-node=NODES] " + "{-c \" parameter = value \" -c \" parameter = value \" ...}\n"), progname); (void)printf(_(" %s {set | reload} [-Z NODE-TYPE] [-N NODE-NAME] {-I INSTANCE-NAME | -D DATADIR} " - "[--lcname=LCNAME] {-c \"parameter = \'value\'\" -c \"parameter = \'value\'\" ...}\n"), progname); + "[--lcname=LCNAME] [--ignore-node=NODES] " + "{-c \"parameter = \'value\'\" -c \"parameter = \'value\'\" ...}\n"), progname); (void)printf(_(" %s {set | reload} [-Z NODE-TYPE] [-N NODE-NAME] {-I INSTANCE-NAME | -D DATADIR} " - "[--lcname=LCNAME] {-c \" parameter = \'value\' \" -c \" parameter = \'value\' \" ...}\n"), progname); + "[--lcname=LCNAME] [--ignore-node=NODES] " + "{-c \" parameter = \'value\' \" -c \" parameter = \'value\' \" ...}\n"), progname); (void)printf(_(" %s {set | reload} [-Z NODE-TYPE] [-N NODE-NAME] {-I INSTANCE-NAME | -D DATADIR} " - "[--lcname=LCNAME] {-c \"parameter\" -c \"parameter\" ...}\n"), progname); + "[--lcname=LCNAME] [--ignore-node=NODES] {-c \"parameter\" -c \"parameter\" ...}\n"), progname); (void)printf( _(" e.g. %s set -Z datanode -N all -I all -c \"program = \'\\\"Hello\\\", World\\!\'\".\n"), progname); (void)printf( @@ -1629,48 +1644,54 @@ static void do_help_config_hba(void) (void)printf(_("\nConfiguring Authentication Policy:\n")); #ifdef ENABLE_MULTIPLE_NODES - (void)printf(_(" %s {set | reload} -Z NODE-TYPE [-N NODE-NAME] {-I INSTANCE-NAME | -D DATADIR} -h \"HOSTTYPE " - "DATABASE USERNAME IPADDR IPMASK AUTHMEHOD authentication-options\" \n"), + (void)printf(_(" %s {set | reload} -Z NODE-TYPE [-N NODE-NAME] {-I INSTANCE-NAME | -D DATADIR} " + "[--ignore-node=NODES] " + "-h \"HOSTTYPE DATABASE USERNAME IPADDR IPMASK AUTHMEHOD authentication-options\" \n"), progname); - (void)printf(_(" %s {set | reload} -Z NODE-TYPE [-N NODE-NAME] {-I INSTANCE-NAME | -D DATADIR} -h \"HOSTTYPE " - "DATABASE USERNAME IPADDR-WITH-IPMASK AUTHMEHOD authentication-options\" \n"), + (void)printf(_(" %s {set | reload} -Z NODE-TYPE [-N NODE-NAME] {-I INSTANCE-NAME | -D DATADIR} " + "[--ignore-node=NODES] " + "-h \"HOSTTYPE DATABASE USERNAME IPADDR-WITH-IPMASK AUTHMEHOD authentication-options\" \n"), progname); - (void)printf(_(" %s {set | reload} -Z NODE-TYPE [-N NODE-NAME] {-I INSTANCE-NAME | -D DATADIR} -h \"HOSTTYPE " - "DATABASE USERNAME HOSTNAME AUTHMEHOD authentication-options\" \n"), + (void)printf(_(" %s {set | reload} -Z NODE-TYPE [-N NODE-NAME] {-I INSTANCE-NAME | -D DATADIR} " + "[--ignore-node=NODES] " + "-h \"HOSTTYPE DATABASE USERNAME HOSTNAME AUTHMEHOD authentication-options\" \n"), progname); (void)printf(_(" If authentication policy need to set/reload DEFAULT OR COMMENT then provide without " "authentication menthod, use the form: \n")); - (void)printf(_(" %s {set | reload} -Z NODE-TYPE [-N NODE-NAME] {-I INSTANCE-NAME | -D DATADIR} -h \"HOSTTYPE " - "DATABASE USERNAME IPADDR IPMASK\" \n"), + (void)printf(_(" %s {set | reload} -Z NODE-TYPE [-N NODE-NAME] {-I INSTANCE-NAME | -D DATADIR} " + "[--ignore-node=NODES] -h \"HOSTTYPE DATABASE USERNAME IPADDR IPMASK\" \n"), progname); - (void)printf(_(" %s {set | reload} -Z NODE-TYPE [-N NODE-NAME] {-I INSTANCE-NAME | -D DATADIR} -h \"HOSTTYPE " - "DATABASE USERNAME IPADDR-WITH-IPMASK \" \n"), + (void)printf(_(" %s {set | reload} -Z NODE-TYPE [-N NODE-NAME] {-I INSTANCE-NAME | -D DATADIR} " + "[--ignore-node=NODES] -h \"HOSTTYPE DATABASE USERNAME IPADDR-WITH-IPMASK \" \n"), progname); - (void)printf(_(" %s {set | reload} -Z NODE-TYPE [-N NODE-NAME] {-I INSTANCE-NAME | -D DATADIR} -h \"HOSTTYPE " - "DATABASE USERNAME HOSTNAME\" \n"), + (void)printf(_(" %s {set | reload} -Z NODE-TYPE [-N NODE-NAME] {-I INSTANCE-NAME | -D DATADIR} " + "[--ignore-node=NODES] -h \"HOSTTYPE DATABASE USERNAME HOSTNAME\" \n"), progname); #else - (void)printf(_(" %s {set | reload} [-Z NODE-TYPE] [-N NODE-NAME] {-I INSTANCE-NAME | -D DATADIR} -h \"HOSTTYPE " - "DATABASE USERNAME IPADDR IPMASK AUTHMEHOD authentication-options\" \n"), + (void)printf(_(" %s {set | reload} [-Z NODE-TYPE] [-N NODE-NAME] {-I INSTANCE-NAME | -D DATADIR} " + "[--ignore-node=NODES] " + "-h \"HOSTTYPE DATABASE USERNAME IPADDR IPMASK AUTHMEHOD authentication-options\" \n"), progname); - (void)printf(_(" %s {set | reload} [-Z NODE-TYPE] [-N NODE-NAME] {-I INSTANCE-NAME | -D DATADIR} -h \"HOSTTYPE " - "DATABASE USERNAME IPADDR-WITH-IPMASK AUTHMEHOD authentication-options\" \n"), + (void)printf(_(" %s {set | reload} [-Z NODE-TYPE] [-N NODE-NAME] {-I INSTANCE-NAME | -D DATADIR} " + "[--ignore-node=NODES] " + "-h \"HOSTTYPE DATABASE USERNAME IPADDR-WITH-IPMASK AUTHMEHOD authentication-options\" \n"), progname); - (void)printf(_(" %s {set | reload} [-Z NODE-TYPE] [-N NODE-NAME] {-I INSTANCE-NAME | -D DATADIR} -h \"HOSTTYPE " - "DATABASE USERNAME HOSTNAME AUTHMEHOD authentication-options\" \n"), + (void)printf(_(" %s {set | reload} [-Z NODE-TYPE] [-N NODE-NAME] {-I INSTANCE-NAME | -D DATADIR} " + "[--ignore-node=NODES] " + "-h \"HOSTTYPE DATABASE USERNAME HOSTNAME AUTHMEHOD authentication-options\" \n"), progname); (void)printf(_(" If authentication policy need to set/reload DEFAULT OR COMMENT then provide without " "authentication menthod, use the form: \n")); - (void)printf(_(" %s {set | reload} [-Z NODE-TYPE] [-N NODE-NAME] {-I INSTANCE-NAME | -D DATADIR} -h \"HOSTTYPE " - "DATABASE USERNAME IPADDR IPMASK\" \n"), + (void)printf(_(" %s {set | reload} [-Z NODE-TYPE] [-N NODE-NAME] {-I INSTANCE-NAME | -D DATADIR} " + "[--ignore-node=NODES] -h \"HOSTTYPE DATABASE USERNAME IPADDR IPMASK\" \n"), progname); - (void)printf(_(" %s {set | reload} [-Z NODE-TYPE] [-N NODE-NAME] {-I INSTANCE-NAME | -D DATADIR} -h \"HOSTTYPE " - "DATABASE USERNAME IPADDR-WITH-IPMASK \" \n"), + (void)printf(_(" %s {set | reload} [-Z NODE-TYPE] [-N NODE-NAME] {-I INSTANCE-NAME | -D DATADIR} " + "[--ignore-node=NODES] -h \"HOSTTYPE DATABASE USERNAME IPADDR-WITH-IPMASK \" \n"), progname); - (void)printf(_(" %s {set | reload} [-Z NODE-TYPE] [-N NODE-NAME] {-I INSTANCE-NAME | -D DATADIR} -h \"HOSTTYPE " - "DATABASE USERNAME HOSTNAME\" \n"), + (void)printf(_(" %s {set | reload} [-Z NODE-TYPE] [-N NODE-NAME] {-I INSTANCE-NAME | -D DATADIR} " + "[--ignore-node=NODES] -h \"HOSTTYPE DATABASE USERNAME HOSTNAME\" \n"), progname); #endif @@ -1701,6 +1722,8 @@ static void do_help_common_options(void) (void)printf(_(" -c parameter=value the parameter to set\n")); (void)printf(_(" -c parameter the parameter value to DEFAULT (i.e comments in configuration file)\n")); (void)printf(_(" --lcname=LCNAME logical cluter name. It only can be used with datanode\n")); + (void)printf(_(" --ignore-node=NODES Nodes which need to ignore. " + "It only can be used with set/reload operation,and CN/DN nodetype\n")); (void)printf(_(" -h host-auth-policy to set authentication policy in HBA conf file\n")); (void)printf(_(" -?, --help show this help, then exit\n")); (void)printf(_(" -V, --version output version information, then exit\n")); @@ -2299,6 +2322,68 @@ void clear_g_incorrect_nodeInfo() GS_FREE(g_incorrect_nodeInfo); } +static void clear_g_ignore_nodeInfo() +{ + uint32 idx = 0; + if (g_ignore_nodeInfo == NULL) { + return; + } + for (idx = 0; idx < g_ignore_nodeInfo->num; idx++) { + GS_FREE(g_ignore_nodeInfo->nodename_array[idx]); + } + GS_FREE(g_ignore_nodeInfo->nodename_array); + GS_FREE(g_ignore_nodeInfo); +} + +static int countIgnoreNodeElems(const char *input) +{ + int cnt = 1; + + for (; *input != '\0'; input++) { + if (*input == ',') { + cnt++; + } + } + return cnt; +} + +static void saveIgnoreNodeElems(const char *input) +{ + errno_t rc = 0; + int cnt = 0; + int strLen = 0; + char* node = NULL; + char* tmpStr = NULL; + char* saveStr = NULL; + const char* split = ","; + + if ((input == NULL) || (input[0] == '\0')) { + write_stderr(_("%s: invalid ignore nodes,please check it\n"), progname); + exit(1); + } + + strLen = strlen(input); + tmpStr = (char*)pg_malloc_zero(strLen + 1); + rc = memcpy_s(tmpStr, strLen, input, strLen); + securec_check_c(rc, "\0", "\0"); + + cnt = countIgnoreNodeElems(tmpStr); + g_ignore_nodeInfo = (nodeInfo*)pg_malloc(sizeof(nodeInfo)); + g_ignore_nodeInfo->nodename_array = (char**)pg_malloc_zero(cnt * sizeof(char*)); + g_ignore_nodeInfo->num = 0; + + node = strtok_r(tmpStr, split, &saveStr); + g_ignore_nodeInfo->nodename_array[g_ignore_nodeInfo->num++] = xstrdup(node); + while (node != NULL) { + node = strtok_r(NULL, split, &saveStr); + if (node == NULL) { + break; + } + g_ignore_nodeInfo->nodename_array[g_ignore_nodeInfo->num++] = xstrdup(node); + } + free(tmpStr); +} + static void process_encrypt_cmd(const char* pgdata_D, const char* pgdata_C, const char* pgdata_R) { errno_t rc = 0; @@ -2370,6 +2455,7 @@ int main(int argc, char** argv) {"keyuser", required_argument, NULL, 'U'}, {"keymode", required_argument, NULL, 'M'}, {"lcname", required_argument, NULL, 1}, + {"ignore-node", required_argument, NULL, 2}, {NULL, 0, NULL, 0}}; int option_index; @@ -2588,6 +2674,11 @@ int main(int argc, char** argv) g_lcname = xstrdup(optarg); break; + case 2: /* 2 is ignore-node */ + clear_g_ignore_nodeInfo(); + saveIgnoreNodeElems(optarg); + break; + default: do_advice(); exit(1); @@ -2627,6 +2718,29 @@ int main(int argc, char** argv) exit(1); } + if ((g_ignore_nodeInfo != NULL) && + (ctl_command != SET_CONF_COMMAND) && + (ctl_command != RELOAD_CONF_COMMAND)) { + write_stderr(_("%s: --ignore-node must be used with set/reload operation\n"), progname); + clear_g_ignore_nodeInfo(); + exit(1); + } + + if ((g_ignore_nodeInfo != NULL) && + (nodetype != INSTANCE_DATANODE) && + (nodetype != INSTANCE_COORDINATOR)) { + write_stderr(_("%s: --ignore-node must be used with DN/CN\n"), progname); + clear_g_ignore_nodeInfo(); + exit(1); + } + + if ((g_ignore_nodeInfo != NULL) && + (pgdata_D != NULL)) { + write_stderr(_("%s: -D and -ignore-node cannot be used together\n"), progname); + clear_g_ignore_nodeInfo(); + exit(1); + } + /* * set/reload: cn, dn, cma, cms and gtm * check: cn and dn @@ -2735,6 +2849,7 @@ int main(int argc, char** argv) nRet = print_guc_result((const char*)nodename); GS_FREE(nodename); clear_g_incorrect_nodeInfo(); + clear_g_ignore_nodeInfo(); if (is_hba_conf) { free_hba_params(); } diff --git a/src/bin/gs_guc/pg_hba.cpp b/src/bin/gs_guc/pg_hba.cpp index 541570a68..e20f737da 100644 --- a/src/bin/gs_guc/pg_hba.cpp +++ b/src/bin/gs_guc/pg_hba.cpp @@ -1444,11 +1444,7 @@ static HbaLine* parse_hba_line(const char* line, int line_num, HbaLine* parsedli unsupauth = "ident"; #endif else if (strncmp(token->string, "peer", sizeof("peer")) == 0) -#ifdef USE_IDENT parsedline->auth_method = uaPeer; -#else - unsupauth = "peer"; -#endif else if (strncmp(token->string, "krb5", sizeof("krb5")) == 0) #ifdef KRB5 parsedline->auth_method = uaKrb5; diff --git a/src/bin/gs_loader/CMakeLists.txt b/src/bin/gs_loader/CMakeLists.txt new file mode 100644 index 000000000..94f64d8aa --- /dev/null +++ b/src/bin/gs_loader/CMakeLists.txt @@ -0,0 +1,8 @@ +add_executable(gs_loader ${CMAKE_CURRENT_SOURCE_DIR}/gs_loader.cpp) + +install( + FILES ${CMAKE_CURRENT_SOURCE_DIR}/gs_loader.sh + PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ + DESTINATION bin +) +install(TARGETS gs_loader RUNTIME DESTINATION bin) \ No newline at end of file diff --git a/src/bin/gs_loader/Makefile b/src/bin/gs_loader/Makefile new file mode 100644 index 000000000..dce68e053 --- /dev/null +++ b/src/bin/gs_loader/Makefile @@ -0,0 +1,37 @@ +# +# Copyright (c) 2021 Huawei Technologies Co.,Ltd. +# +# openGauss is licensed under Mulan PSL v2. +# You can use this software according to the terms and conditions of the Mulan PSL v2. +# You may obtain a copy of Mulan PSL v2 at: +# +# http://license.coscl.org.cn/MulanPSL2 +# +# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, +# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, +# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. +# See the Mulan PSL v2 for more details. +# --------------------------------------------------------------------------------------- +# +# Makefile +# +# +# IDENTIFICATION +# src/bin/gs_loader/Makefile +# +# --------------------------------------------------------------------------------------- +top_builddir=../../.. +include $(top_builddir)/src/Makefile.global +subdir=src/bin/gs_loader + +all: gs_loader +gs_loader: + g++ gs_loader.cpp -o $@$(X) + +install: all installdirs + $(INSTALL_PROGRAM) gs_loader.sh$(X) '$(DESTDIR)$(bindir)/gs_loader.sh$(X)' + $(INSTALL_PROGRAM) gs_loader$(X) '$(DESTDIR)$(bindir)/gs_loader$(X)' + +uninstall: + rm -f '$(DESTDIR)$(bindir)/gs_loader.sh$(X)' + rm -f '$(DESTDIR)$(bindir)/gs_loader$(X)' diff --git a/src/bin/gs_loader/gs_loader.cpp b/src/bin/gs_loader/gs_loader.cpp new file mode 100644 index 000000000..d000ce38f --- /dev/null +++ b/src/bin/gs_loader/gs_loader.cpp @@ -0,0 +1,169 @@ +/* + * Copyright (c) 2020-2025 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors + * + * openGauss is licensed under Mulan PSL v2. + * You can use this software according to the terms and conditions of the Mulan PSL v2. + * You may obtain a copy of Mulan PSL v2 at: + * + * http://license.coscl.org.cn/MulanPSL2 + * + * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, + * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, + * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + * See the Mulan PSL v2 for more details. + * --------------------------------------------------------------------------------------- + * + * gs_loader.cpp + * gs_loader will call gs_loader.sh. + * The purpose of the file is to hide the username and password + * + * IDENTIFICATION + * src/bin/gs_loader/gs_loader.cpp + * + * --------------------------------------------------------------------------------------- + */ +#include +#include +#include +#include +#include +#include +namespace gs_loader { +static const char param_key0[] = "passwd="; +static const char param_key1[] = "-W"; +// key max len 1024 , 1 for \0 +static const int MAX_KEY_LEN = 1024; + +// shell script file +static const std::string GS_LOADER_FILE = "gs_loader.sh"; +bool FindKey(const char *arr1, int n1, const char *key, int n) +{ + if (n1 < n) { + return false; + } + for (int i = 0; i < n; i++) { + if (arr1[i] != key[i]) { + return false; + } + } + return true; +} +void GetKey1(const char *arr1, int n1, char *key) +{ + for (int i = 0; i < n1; i++) { + key[i] = arr1[i]; + } + key[n1] = '\0'; +} + +void GetKey0(const char *arr1, int n1, char *key) +{ + int i, j; + for (i = 0; i < n1; i++) { + if (arr1[i] == '=') { + break; + } + } + for (j = i + 1; j < n1; j++) { + key[j - i - 1] = arr1[j]; + } + key[j - i - 1] = '\0'; +} + +void SetX(char *arr1, int n1) +{ + for (int i = 0; i < n1; i++) { + arr1[i] = 'x'; + } +} + +bool InputPasswd(char *keyword, int max_len) +{ + char *password = getpass("Input a password:"); + if (password == NULL || strlen(password) > max_len) { + std::cout << "ERROR: read password error"; + return false; + } + for (int i = 0; i < strlen(password); i++) { + keyword[i] = password[i]; + password[i] = 'x'; + } + return true; +} +} + +using namespace gs_loader; + +int main(int argc, char **argv) +{ + char keyword[MAX_KEY_LEN + 1] = {'\0'}; + bool have_passwd = false; + + // path size include \0 + const int PATH_SIZE = 1024; + + // get the exe path for get shell script + char abs_path[PATH_SIZE] = {'\0'}; + int cnt = readlink("/proc/self/exe", abs_path, PATH_SIZE); + if (cnt == -1 || cnt >= PATH_SIZE) { + std::cout << "ERROR: can not find gs_loader path" << std::endl; + return 0; + } + abs_path[cnt] = '\0'; + + std::string exe_path(abs_path); + int path_pos = exe_path.rfind("/"); + exe_path = exe_path.substr(0, path_pos + 1); + std::string params = exe_path + GS_LOADER_FILE; + + + for (int i = 1; i < argc; i++) { + std::string param(argv[i]); + // get sensitive info and hide them + + if (FindKey(argv[i], strlen(argv[i]), param_key0, strlen(param_key0))) { + if (strlen(argv[i]) > strlen(param_key0) + MAX_KEY_LEN) { + std::cout << "ERROR: passwd len too long, limit:" << MAX_KEY_LEN << std::endl; + return 0; + } + GetKey0(argv[i], strlen(argv[i]), keyword); + SetX(argv[i], strlen(argv[i])); + have_passwd = true; + } else if (FindKey(argv[i], strlen(argv[i]), param_key1, strlen(param_key1))) { + i++; + if (i < argc) { + if (strlen(argv[i]) > MAX_KEY_LEN) { + std::cout << "ERROR: passwd len too long, limit:" << MAX_KEY_LEN << std::endl; + return 0; + } + GetKey1(argv[i], strlen(argv[i]), keyword); + SetX(argv[i], strlen(argv[i])); + have_passwd = true; + } else { + std::cout << "ERROR:requires an argument -- \'W\'" << std::endl; + return 0; + } + } else { + params = params + " " + param; + } + } + if (!have_passwd) { + if (!InputPasswd(keyword, MAX_KEY_LEN)) { + std::cout << "ERROR: read password error"; + return 0; + } + } + FILE *fp = popen(params.c_str(), "w"); + if (fp == NULL) { + std::cout << "ERROR: run gs_loader error" << std::endl; + return 0; + } + fputs(keyword, fp); + fputc('\n', fp); + for (int i = 0; i < strlen(keyword); i++) { + keyword[i] = 'x'; + } + pclose(fp); + return 0; +} diff --git a/src/bin/gs_loader/gs_loader.sh b/src/bin/gs_loader/gs_loader.sh new file mode 100644 index 000000000..ee32dba8a --- /dev/null +++ b/src/bin/gs_loader/gs_loader.sh @@ -0,0 +1,1040 @@ +#!/usr/bin/env bash + +####################################################################### +# Copyright (c): 2020-2025, Huawei Tech. Co., Ltd. +# descript: +# Load data into database +# Return 0 means Load all rows OK. +# Return 1 means Load failed. +# Return 2 means Load all or some rows rejected or discarded. +# version: 0.1 +# date: 2021-09-07 +####################################################################### +set -e +gs_loader_version="gs_loader: version 0.1" + +# env variables +gs_loader_log_level=${gs_loader_log_level:="warning"} +# gs_loader_log_fmt=${gs_loader_log_fmt:="%Y-%m-%d %H:%M:%S"} +gs_loader_log_fmt=${gs_loader_log_fmt:=""} + +# user input parameters +cmd_param_host="" +cmd_param_port="" +cmd_param_user="" +cmd_param_passwd="" +cmd_param_db="" + +cmd_param_create="true" +cmd_param_clean="true" + +cmd_param_ctl="" +cmd_param_data="" +cmd_param_log="" +cmd_param_bad="" +cmd_param_discard="" +cmd_param_errors="" +cmd_param_skip="" + +# global variables +rnd_suffix=$(dd if=/dev/urandom bs=128 count=1 2>/dev/null | tr -dc 'a-zA-Z0-9') +gs_loader_file_tmp=${gs_loader_file_tmp:=".gs_loader_file.tmp.${rnd_suffix}_end"} +gs_loader_table_name="" + +EXIT_CODE_OK=0 +EXIT_CODE_FAIL=1 +EXIT_CODE_WARN=2 +EXIT_CODE_FATAL=3 + +declare -A loader_datafiles +declare -A loader_badfiles +declare -A loader_discardfiles +declare -A loader_txids + +loader_datafile_count=0 +loader_datafile_index=0 +loader_txids_count=0 + +function load_log() +{ + level=$1 && shift + case "$level" in + debug) + if [[ "$gs_loader_log_level" =~ debug ]]; then + echo -e "$( date "+${gs_loader_log_fmt}" )DEBUG: $@" 1>&2 + if [[ -f "$cmd_param_log" ]]; then + echo -e "$( date "+${gs_loader_log_fmt}" )INFO: $@" >> $cmd_param_log 2>&1 + fi + fi + ;; + info) + if [[ "$gs_loader_log_level" =~ debug|info ]]; then + echo -e "$( date "+${gs_loader_log_fmt}" )INFO: $@" 1>&2 + if [[ -f "$cmd_param_log" ]]; then + echo -e "$( date "+${gs_loader_log_fmt}" )INFO: $@" >> $cmd_param_log 2>&1 + fi + fi + ;; + warning) + if [[ "$gs_loader_log_level" =~ debug|info|warn ]]; then + echo -e "$( date "+${gs_loader_log_fmt}" )WARNING: $@" 1>&2 + if [[ -f "$cmd_param_log" ]]; then + echo -e "$( date "+${gs_loader_log_fmt}" )WARNING: $@" >> $cmd_param_log 2>&1 + fi + fi + ;; + error) + if [[ ! "$gs_loader_log_level" =~ none ]]; then + echo -e "$( date "+${gs_loader_log_fmt}" )ERROR: $@" 1>&2 + if [[ -f "$cmd_param_log" ]]; then + echo -e "$( date "+${gs_loader_log_fmt}" )ERROR: $@" >> $cmd_param_log 2>&1 + fi + fi + ;; + esac + true +} + +function gs_loader_check_res() +{ + msg="$1" + res="$2" + if [ $(echo "$res" | grep -i "ERROR:" | wc -l) -ge 1 ]; then + load_log error "$msg" + res=$(echo "$res"|sed 's/gsql:.gs_loader_file.tmp.*_end:/gsql:.gs_loader_file.tmp:/') + load_log error "$res" + exit $EXIT_CODE_FAIL + fi +} + +function gs_loader_check_res_with_clean_file() +{ + msg="$1" + res="$2" + if [ $(echo "$res" | grep -i "ERROR:" | wc -l) -ge 1 ]; then + load_log error "$msg" + res=$(echo "$res"|sed 's/gsql:.gs_loader_file.tmp.*_end:/gsql:.gs_loader_file.tmp:/') + load_log error "$res" + exit_with_clean_file + fi +} +function gs_loader_check_res_with_clean_file_txid() +{ + msg="$1" + res="$2" + txid="$3" + if [ $(echo "$res" | grep -i "ERROR:" | wc -l) -ge 1 ]; then + load_log error "$msg" + res=$(echo "$res"|sed 's/gsql:.gs_loader_file.tmp.*_end:/gsql:.gs_loader_file.tmp:/') + load_log error "$res" + clean_copy_table_record "$txid" + exit_with_clean_file + fi +} +function get_value() +{ + kv="$1" + value=$(echo $kv | awk -F'=' '{print $2}') + echo $value +} + +function gen_load_options() +{ + datafile="$1" + skip="$2" + errors="$3" + + if [ "$datafile" == "" ]; then + load_log error "data file is empty" + exit $EXIT_CODE_FAIL + fi + + if [ -d "$datafile" ]; then + load_log error "data file $datafile is a directory" + exit $EXIT_CODE_FAIL + fi + + if [ ! -f "$datafile" ]; then + load_log error "data file $datafile not found" + exit $EXIT_CODE_FAIL + fi + + if [ ! -r "$datafile" ]; then + load_log error "data file $datafile Permission denied" + exit $EXIT_CODE_FAIL + fi + + load_log debug "generate OPTIONS" + + options="OPTIONS(" + + options="${options}data='$datafile'" + + if [ "$skip" != "" ]; then + options="${options},skip=$skip" + fi + + if [ "$errors" != "" ]; then + options="${options},errors=$errors" + fi + + options="${options}) " + echo $options +} + +function load_data_sql() +{ + ctlfile="$1" + res=$(cat ${ctlfile}) + # remove the options in control file + res=$(echo -e "${res}" | sed -r 's/options *\(.*\)//ig') + + # remove the badfile in control file + res=$(echo -e "${res}" | sed -r "s/badfile *'.*'//ig;s/badfile *\".*\"//ig") + + # remove the infile in control file + res=$(echo -e "${res}" | sed -r "s/infile *'.*'//ig;s/infile *\".*\"//ig;s/infile *\* *\".*\"//ig;s/infile *\* *'.*'//ig") + + echo -e "$res" +} + +function exec_sql() +{ + sql="$1" + + host="" + if [ "$cmd_param_host" != "" ]; then + host="-h $cmd_param_host" + fi + + port="" + if [ "$cmd_param_port" != "" ]; then + port="-p $cmd_param_port" + fi + + user="" + if [ "$cmd_param_user" != "" ]; then + user="-U $cmd_param_user" + fi + + passwd="" + if [ "$cmd_param_passwd" != "" ]; then + passwd="-W $cmd_param_passwd" + fi + + db="" + if [ "$cmd_param_db" != "" ]; then + db="-d $cmd_param_db" + fi + + if res=$(gsql $host $port $user $passwd $db -t -c "$sql" 2>&1) + then + echo -e "$res" | sed -r 's/Connect primary node [0-9]+.[0-9]+.[0-9]+.[0-9]+//g' + else + echo "ERROR: function exec_sql" + fi +} + +function exec_sql_file() +{ + sql_file="$1" + + host="" + if [ "$cmd_param_host" != "" ]; then + host="-h $cmd_param_host" + fi + + port="" + if [ "$cmd_param_port" != "" ]; then + port="-p $cmd_param_port" + fi + + user="" + if [ "$cmd_param_user" != "" ]; then + user="-U $cmd_param_user" + fi + + passwd="" + if [ "$cmd_param_passwd" != "" ]; then + passwd="-W $cmd_param_passwd" + fi + + db="" + if [ "$cmd_param_db" != "" ]; then + db="-d $cmd_param_db" + fi + + # delete last line: total time: 10ms + if res=$(gsql $host $port $user $passwd $db -t -f "$sql_file" 2>&1) + then + echo -e "$res" | sed -r 's/Connect primary node [0-9]+.[0-9]+.[0-9]+.[0-9]+//g' | sed '$ d' + else + echo "ERROR: function exec_sql_file" + fi +} + +function trans_load_to_copy() +{ + load_sql="$1" + copy_sql=$(exec_sql_file "$load_sql") + echo "$copy_sql" +} + +function copy_into_table() +{ + sql_file="$1" + res=$(exec_sql_file "$sql_file") + echo "$res" +} + +function check_legal_path() +{ + file_path="$1" + if touch $file_path 1>/dev/null 2>&1 + then + echo "0" + else + echo "1" + fi +} + +function init_logfile() +{ + logfile="$1" + + if [ "$logfile" == "" ]; then + logfile=$(echo "${cmd_param_ctl%.*}") + logfile="${logfile}.log" + cmd_param_log=$logfile + fi + res=$(check_legal_path $logfile) + if [ "$res" == "0" ]; then + echo $gs_loader_version > $logfile + else + load_log warning "logfile file path $logfile is invalid or don't have permission" + exit $EXIT_CODE_FAIL + fi +} + +function init_badfiles() +{ + badfile="$1" + + i=0 + + # no bad file, generate bad filename according to data file + if [ "$badfile" == "" ]; then + for data in "${loader_datafiles[@]}" + do + bad=$(echo "${data%.*}") + bad="${bad}.bad" + loader_badfiles[$i]=$bad + i=$(($i+1)) + done + return 0 + fi + + # bad file is a directory, generate bad filename according to data file + if [ -d "$badfile" ]; then + for data in "${loader_datafiles[@]}" + do + data=$(basename $data) + bad=$(echo "${data%.*}") + bad="$badfile/${bad}.bad" + loader_badfiles[$i]=$bad + i=$(($i+1)) + done + return 0 + fi + + res=$(check_legal_path "$badfile") + if [ "$res" != "0" ]; then + load_log warning "bad file path $badfile is invalid" + return 0 + fi + + i=0 + for data in "${loader_datafiles[@]}" + do + loader_badfiles[$i]=$badfile + i=$(($i+1)) + done +} + +function init_discardfiles() +{ + discardfile="$1" + + i=0 + + if [ "$discardfile" == "" ]; then + load_log info "discard file is empty" + return 0 + fi + + if [ -d "$discardfile" ]; then + i=0 + for data in "${loader_datafiles[@]}" + do + data=$(basename $data) + discard=$(echo "${data%.*}") + discard="$discardfile/${discard}.dsc" + loader_discardfiles[$i]=$discard + i=$(($i+1)) + done + return 0 + fi + + res=$(check_legal_path "$discardfile") + if [ "$res" != "0" ]; then + load_log warning "discard file path $discardfile is invalid" + return 0 + fi + + i=0 + for data in "${loader_datafiles[@]}" + do + loader_discardfiles[$i]=$discardfile + i=$(($i+1)) + done +} + +function get_txids_array() +{ + txids_array="(" + for ((i=0; i> $logfile + echo "Table $gs_loader_table_name:" >> $logfile + + sql="select sum(loadrows)||' Rows successfully loaded.' from gs_copy_summary where id in $txids_array" + res=$(exec_sql "$sql") + gs_loader_check_res "query gs_copy_summary failed: $sql" "$res" + echo " "$res >> $logfile + + sql="select sum(errorrows)||' Rows not loaded due to data errors.' from gs_copy_summary where id in $txids_array" + res=$(exec_sql "$sql") + gs_loader_check_res "query gs_copy_summary failed: $sql" "$res" + echo " "$res >> $logfile + + sql="select sum(whenrows)||' Rows not loaded because all WHEN clauses were failed.' from gs_copy_summary where id in $txids_array" + res=$(exec_sql "$sql") + gs_loader_check_res "query gs_copy_summary failed: $sql" "$res" + echo " "$res >> $logfile + + sql="select sum(allnullrows)||' Rows not loaded because all fields were null.' from gs_copy_summary where id in $txids_array" + res=$(exec_sql "$sql") + gs_loader_check_res "query gs_copy_summary failed: $sql" "$res" + echo " "$res >> $logfile + + echo "" >> $logfile + + sql="select 'Total logical records skipped: ' || sum(skiprows) from gs_copy_summary where id in $txids_array" + res=$(exec_sql "$sql") + gs_loader_check_res "query gs_copy_summary failed: $sql" "$res" + echo " "$res >> $logfile + + echo "" >> $logfile + + if [[ "$gs_loader_log_level" =~ info|debug ]]; then + printf '\nLOG:\n%b\n\n' "$(cat $logfile)" + fi +} + +function gen_badfile() +{ + badfile="$1" + txid="$2" + + if [ "$badfile" == "" ]; then + load_log info "bad file is empty" + return 0 + fi + + condition=$(exec_sql "select ' relname = ''' || relname || ''' and begintime = '''|| begintime || '''' from gs_copy_summary where id=$txid") + sql="select rawrecord from pgxc_copy_error_log where detail not like 'COPY_WHEN_ROWS' and $condition" + res=$(exec_sql "$sql") + gs_loader_check_res_with_clean_file_txid "query pgxc_copy_error_log failed: $sql" "$res" "$txid" + printf '%b\n' "$res" > $badfile + if [[ "$gs_loader_log_level" =~ info|debug ]]; then + printf 'BAD:\n%b\n\n' "$(cat $badfile)" + fi +} + +function gen_discardfile() +{ + discard="$1" + txid="$2" + + if [ "$discard" == "" ]; then + load_log info "discard file is empty" + return 0 + fi + + condition=$(exec_sql "select ' relname = ''' || relname || ''' and begintime = '''|| begintime || '''' from gs_copy_summary where id=$txid") + sql="select rawrecord from pgxc_copy_error_log where detail like 'COPY_WHEN_ROWS' and $condition" + res=$(exec_sql "$sql") + gs_loader_check_res_with_clean_file_txid "query pgxc_copy_error_log COPY_WHEN_ROWS failed: $sql" "$res" "$txid" + printf '%b\n' "$res" > $discard + if [[ "$gs_loader_log_level" =~ info|debug ]]; then + printf 'DISCARD:\n%b\n\n' "$(cat $discard)" + fi +} + +function gen_full_copy_sql() +{ + copy_sql="$1" + + table_act=$(echo "$copy_sql" | sed -r "s/ (SELECT 'has_data_in_table' FROM .*? LIMIT 1;) (.*)/\1/") + pat="SELECT 'has_data_in_table' FROM .*? LIMIT 1;" + if [[ "$table_act" =~ $pat ]]; then + if [ "$loader_datafile_index" == 0 ]; then + res=$(exec_sql "$table_act") + gs_loader_check_res_with_clean_file "check table empty using: $table_act" "$res" + load_log debug "$res" + has_data_in_table=$(echo $res | grep 'has_data_in_table' | wc -l) + if [ "$has_data_in_table" == "1" ]; then + load_log error "insert into table, but table is not empty" + exit_with_clean_file + fi + fi + copy_sql=$(echo "$copy_sql" | sed -r "s/ (SELECT 'has_data_in_table' FROM .*? LIMIT 1;) (.*)/\2/") + else + table_act=$(echo "$copy_sql" | sed -r 's/ (TRUNCATE TABLE .*? ;) .*/\1/') + pat="TRUNCATE TABLE .*? ;" + if [[ "$table_act" =~ $pat ]]; then + if [ "$loader_datafile_index" == 0 ]; then + res=$(exec_sql "$table_act") + gs_loader_check_res_with_clean_file "truncate table using: $table_act" "$res" + fi + copy_sql=$(echo "$copy_sql" | sed -r 's/ (TRUNCATE TABLE .*? ;) (.*)/\2/') + fi + fi + + echo "BEGIN;" + echo "$copy_sql" + echo "select 'copy_txid:'||txid_current();" + echo "COMMIT;" +} + +function get_gs_loader_version() +{ + echo $gs_loader_version +} + +function gs_loader_help() +{ + echo "$(get_gs_loader_version) + +Usage: gs_loader key=value [key=value ...] + +General options: + help -- print this + host -- database server host + -h -- database server host + port -- database server port + -p -- database server port + user -- database user name + -U -- database user name + passwd -- the password of specified database user + -W -- the password of specified database user + db -- database name to connect to + -d -- database name to connect to + + create -- create error and summary tables(default:true) + clean -- clean error and summary tables(default:true) + + control -- the name of control file + data -- the name of data file + log -- the name of log file + bad -- the name of bad file + discard -- the name of discard file + skip -- skip line numbers + errors -- allow errors numbers + rows -- not support, only compatible + bindsize -- not support, only compatible +" +} + +declare -A unique_params + +function check_param_exists() +{ + param_name="$1" + if [[ ! -z "${unique_params[$param_name]:-}" ]]; then + load_log error "parameter '$param_name' can only be specified once" + exit $EXIT_CODE_FAIL + fi + unique_params[$param_name]="true" +} + +function parse_cmd_params() +{ + while [[ $# -gt 0 ]]; do + key="$1" + case "$key" in + host=*) + check_param_exists "host" + cmd_param_host=$(get_value $1) + shift # past value + ;; + -h) + check_param_exists "host" + shift + cmd_param_host=$1 + shift + ;; + port=*) + check_param_exists "port" + cmd_param_port=$(get_value $1) + shift # past value + ;; + -p) + check_param_exists "port" + shift + cmd_param_port=$1 + shift + ;; + user=*) + check_param_exists "user" + cmd_param_user=$(get_value $1) + shift # past value + ;; + -U) + check_param_exists "user" + shift + cmd_param_user=$1 + shift + ;; + db=*) + check_param_exists "db" + cmd_param_db=$(get_value $1) + shift # past value + ;; + -d) + check_param_exists "db" + shift + cmd_param_db=$1 + shift + ;; + create=*) + check_param_exists "create" + cmd_param_create=$(get_value $1) + shift; + ;; + clean=*) + check_param_exists "clean" + cmd_param_clean=$(get_value $1) + shift; + ;; + control=*) + check_param_exists "control" + cmd_param_ctl=$(get_value $1) + shift # past value + ;; + log=*) + check_param_exists "log" + cmd_param_log=$(get_value $1) + shift # past value + ;; + data=*) + cmd_param_data=$(get_value $1) + append_one_data "$cmd_param_data" + shift # past value + ;; + bad=*) + check_param_exists "bad" + cmd_param_bad=$(get_value $1) + shift # past value + ;; + discard=*) + check_param_exists "discard" + cmd_param_discard=$(get_value $1) + shift # past value + ;; + skip=*) + check_param_exists "skip" + cmd_param_skip=$(get_value $1) + + # check skip is digit number + re='^[0-9]+$' + if ! [[ "$cmd_param_skip" =~ $re ]] ; then + load_log error "invalid param:$1" + exit $cmd_param_skip + fi + + shift # past argument + ;; + errors=*) + check_param_exists "errors" + cmd_param_errors=$(get_value $1) + + # check errors is digit number + re='^[0-9]+$' + if ! [[ "$cmd_param_errors" =~ $re ]] ; then + load_log error "invalid param:$1" + exit $EXIT_CODE_FAIL + fi + + shift # past argument + ;; + bindsize=*) + check_param_exists "bindsize" + shift # past argument + ;; + rows=*) + check_param_exists "rows" + shift # past argument + ;; + help) + gs_loader_help + exit $EXIT_CODE_OK + ;; + version) + get_gs_loader_version + exit $EXIT_CODE_OK + ;; + *) # unknown option + load_log error "unknown param:$1" + exit $EXIT_CODE_FAIL + ;; + esac + done + read -r cmd_param_passwd +} + +function create_copy_tables() +{ + if [ "$cmd_param_create" == "true" ]; then + sql="SELECT copy_summary_create() WHERE NOT EXISTS(SELECT * FROM pg_tables WHERE schemaname='public' AND tablename='gs_copy_summary');" + res=$(exec_sql "$sql") + gs_loader_check_res "call copy_summary_create failed: $sql" "$res" + + sql="SELECT copy_error_log_create() WHERE NOT EXISTS(SELECT * FROM pg_tables WHERE schemaname='public' AND tablename='pgxc_copy_error_log');" + res=$(exec_sql "$sql") + gs_loader_check_res "call copy_error_log_create failed: $sql" "$res" + fi +} + +function clean_copy_table_record() { + txid="$1" + condition=$(exec_sql "select ' relname = ''' || relname || ''' and begintime = '''|| begintime || '''' from gs_copy_summary where id=$txid"); + + if [ "$cmd_param_clean" == "true" ]; then + condition=$(exec_sql "select ' relname = ''' || relname || ''' and begintime = '''|| begintime || '''' from gs_copy_summary where id=$txid") + res=$(exec_sql "delete from pgxc_copy_error_log where $condition") + res=$(exec_sql "delete from gs_copy_summary where id = $txid") + fi +} + +function clean_copy_tables() +{ + for ((i=0; i WHEN (1-2) + sed -i -r 's/WHEN[[:space:]]*(\([[:space:]]*[[:digit:]]+[[:space:]]*):([[:space:]]*[[:digit:]]+[[:space:]]*\))/WHEN \1-\2/ig' $load_file + + # replace AND (1:2) -> AND (1-2) + sed -i -r 's/AND[[:space:]]*(\([[:space:]]*[[:digit:]]+[[:space:]]*):([[:space:]]*[[:digit:]]+[[:space:]]*\))/AND \1-\2/ig' $load_file + + # replace POSITION (1:2) -> POSITION (1-2) + sed -i -r 's/POSITION[[:space:]]*(\([[:space:]]*[[:digit:]]+[[:space:]]*):([[:space:]]*[[:digit:]]+[[:space:]]*\))/POSITION \1-\2/ig' $load_file + + # replace sequence (MAX, 1) -> sequence (MAXVALUE, 1) + sed -i -r 's/SEQUENCE[[:space:]]*\([[:space:]]*MAX[[:space:]]*,([[:space:]]*[[:digit:]]+[[:space:]]*\))/SEQUENCE (MAXVALUE,\1/ig' $load_file + + # replace sequence (COUNT, 1) -> sequence (ROWS, 1) + sed -i -r 's/SEQUENCE[[:space:]]*\([[:space:]]*COUNT[[:space:]]*,([[:space:]]*[[:digit:]]+[[:space:]]*\))/SEQUENCE (ROWS,\1/ig' $load_file + + # replace constant "" -> constant '' + sed -i -r 's/CONSTANT[[:space:]]*""/CONSTANT '\'''\''/ig' $load_file +} + +function check_db_conn() +{ + sql="select 'GS_LOADER_CONNECT_OK'" + res=$(exec_sql "$sql") + # gs_loader_check_res "check db connection using: $sql" "$res" + + load_log debug "$res" + + conn_ok=$(echo $res | grep 'GS_LOADER_CONNECT_OK' | wc -l) + if [ "$conn_ok" != "1" ]; then + load_log error "check db connection failed" + exit $EXIT_CODE_FAIL + fi +} + +function append_one_data() +{ + datafile=$1 + + for file in $(ls $datafile) + do + loader_datafiles[$loader_datafile_count]=$file + loader_datafile_count=$(($loader_datafile_count+1)) + done +} + +function append_one_txid() +{ + txid=$1 + loader_txids[$loader_txids_count]=$txid + loader_txids_count=$(($loader_txids_count+1)) +} + +function recalcuate_errors() +{ + txid=$1 + + if [ "$cmd_param_errors" == "" ]; then + return 0 + fi + + sql="select 'errorrows:' || errorrows from gs_copy_summary where id = $txid" + res=$(exec_sql "$sql") + gs_loader_check_res_with_clean_file_txid "query gs_copy_summary failed: $sql" "$res" "$txid" + errorrows=$(echo $res | grep 'errorrows:' | sed -r 's/.*errorrows:([0-9]+).*/\1/') + cmd_param_errors=$((cmd_param_errors-errorrows)) +} + +function recalcuate_skip() +{ + txid=$1 + + if [ "$cmd_param_skip" == "" ]; then + return 0 + fi + + sql="select 'skiprows:' || skiprows from gs_copy_summary where id = $txid" + res=$(exec_sql "$sql") + gs_loader_check_res_with_clean_file_txid "query gs_copy_summary failed: $sql" "$res" "$txid" + skiprows=$(echo $res | grep 'skiprows:' | sed -r 's/.*skiprows:([0-9]+).*/\1/') + cmd_param_skip=$((cmd_param_skip-skiprows)) +} + +# load on datafile into table +function load_one_datafile() +{ + datafile="$1" + badfile="$2" + discardfile="$3" + + # generate LOAD DATA SQL + echo "" > ${gs_loader_file_tmp} + gen_load_options "$datafile" "$cmd_param_skip" "$cmd_param_errors" >> ${gs_loader_file_tmp} + load_data_sql "$cmd_param_ctl" >> ${gs_loader_file_tmp} + + pre_process_load_file "$gs_loader_file_tmp" + + # transform to \COPY SQL + copy_sql=$(trans_load_to_copy ${gs_loader_file_tmp}) + load_log info "copy sql: $copy_sql" + gs_loader_check_res_with_clean_file "transform load to copy failed: $(cat ${gs_loader_file_tmp})" "$copy_sql" + + gen_full_copy_sql "$copy_sql" > ${gs_loader_file_tmp} + + # execute \COPY SQL + copy_res=$(copy_into_table ${gs_loader_file_tmp}) + load_log info "copy result: $copy_res" + gs_loader_check_res_with_clean_file "after transform: $(cat ${gs_loader_file_tmp})" "$copy_res" + + # get txid + txid=$(echo $copy_res | grep 'copy_txid:' | sed -r 's/.*copy_txid:([0-9]+).*/\1/') + load_log info "txid is "$txid + if [ "$txid" == "" ]; then + load_log error "cannot get copy txid" + exit_with_clean_file + fi + + append_one_txid $txid + + recalcuate_errors $txid + recalcuate_skip $txid + + gen_badfile "$badfile" $txid + gen_discardfile "$discardfile" $txid +} + +function loader_stat_files() +{ + logfile="$1" + echo "" >> $logfile + echo "Control File: $cmd_param_ctl" >> $logfile + echo "" >> $logfile + + echo "There are $loader_datafile_count data files:" >> $logfile + for ((i=0; i> $logfile + echo " Bad File: "${loader_badfiles[$i]} >> $logfile + echo " Discard File: "${loader_discardfiles[$i]} >> $logfile + echo "" >> $logfile + done +} + +function loader_stat_info() +{ + start_time="$1" + end_time="$2" + + loader_stat_files "$cmd_param_log" + loader_stat_summary "$cmd_param_log" + echo -e "$gs_loader_version\n" + succ_rows_info=$(grep -e "Rows successfully loaded" $cmd_param_log | xargs) + echo " "$succ_rows_info" " + echo -e "" + echo -e "log file is: \n $cmd_param_log" + + echo "Run began on $start_time" >> $cmd_param_log + echo "Run ended on $end_time" >> $cmd_param_log + + start_time=$(date -u -d "$start_time" +"%s.%N") + end_time=$(date -u -d "$end_time" +"%s.%N") + + echo -e "" >> $cmd_param_log + + elapsed_time=$(date -u -d "0 $end_time sec - $start_time sec" +"%H:%M:%S.%3N") + echo "Elapsed time was: $elapsed_time" >> $cmd_param_log +} + +function main() +{ + start_time=$(date "+%Y-%m-%d %H:%M:%S.%3N") + + parse_cmd_params "$@" + check_parameters + + init_logfile "$cmd_param_log" + init_badfiles "$cmd_param_bad" + init_discardfiles "$cmd_param_discard" + + check_db_conn + create_copy_tables + + load_log info "load data begin..." + + for ((i=0; istErrmsg.msg)) == 0) && IS_EQUAL_STR(pstErrMsgItemOld->stErrmsg.action, pstErrMsgItemNew->stErrmsg.action) && IS_EQUAL_STR(pstErrMsgItemOld->stErrmsg.cause, pstErrMsgItemNew->stErrmsg.cause)) { - /* update location info of old errmsg using new errmsg + /* + * update location info of old errmsg using new errmsg. * 1. if pstErrMsgItemOld->mppdb_err_msg_locnum >= pstErrMsgItemNew->mppdb_err_msg_locnum, * copy all new location to old one, there must be enough slot for copy. * 2. else need to malloc memory for old msg item before copy. @@ -1777,6 +1778,7 @@ int compareErrmsg() pstErrMsgItemNew->astErrLocate[i], sizeof(mppdb_err_msg_location_t)); securec_check_c(rc, "\0", "\0"); } + pstErrMsgItemOld->mppdb_err_msg_locnum = pstErrMsgItemNew->mppdb_err_msg_locnum; pstErrMsgItemNew->ucOpFlag = OP_TYPE_EXIST; diff --git a/src/bin/initdb/initdb.cpp b/src/bin/initdb/initdb.cpp index 3240166e5..561491698 100644 --- a/src/bin/initdb/initdb.cpp +++ b/src/bin/initdb/initdb.cpp @@ -158,6 +158,8 @@ static bool show_setting = false; static char* xlog_dir = ""; static bool security = false; static char* dbcompatibility = ""; +static char* new_xlog_file_path = ""; + #ifdef PGXC /* Name of the PGXC node initialized */ static char* nodename = NULL; @@ -225,6 +227,8 @@ DB_CompatibilityAttr g_dbCompatArray[] = { "# the database sysadmin. If you do not trust all your local users,\n" \ "# use another authentication method.\n" static char* authwarning = NULL; +static const char* boot_options = NULL; +static const char* backend_options = NULL; /* * Centralized knowledge of switches to pass to backend @@ -233,8 +237,8 @@ static char* authwarning = NULL; * but here it is more convenient to pass it as an environment variable * (no quoting to worry about). */ -static const char* boot_options = "-F"; -static const char* backend_options = "--single " +static const char* raw_boot_options = "-F"; +static const char* raw_backend_options = "--single " #ifdef PGXC "--localxid " #endif @@ -477,9 +481,9 @@ static char** replace_token(char** lines, const char* token, const char* replace errno_t rc = 0; int toklen, replen, diff; - for (i = 0; lines[i] != NULL; i++) + for (i = 0; lines[i] != NULL; i++) { numlines++; - + } result = (char**)pg_malloc(numlines * sizeof(char*)); toklen = strlen(token); @@ -519,6 +523,35 @@ static char** replace_token(char** lines, const char* token, const char* replace return result; } +static char** append_token(char** lines, const char* token) +{ + int numlines = 0; + int i; + char** result; + char* newline = NULL; + errno_t rc = 0; + int newlen; + + for (i = 0; lines[i] != NULL; i++) { + numlines++; + } + + result = (char**)pg_malloc((numlines + 2) * sizeof(char*)); + + for (i = 0; i < numlines; i++) { + result[i] = lines[i]; + } + newlen = strlen(token) + 1; + newline = (char*)pg_malloc(newlen); + rc = strncpy_s(newline, newlen, token, strlen(token)); + securec_check_c(rc, newline, "\0"); + result[numlines] = newline; + result[numlines + 1] = NULL; + free(lines); + return result; +} + + /* * make a copy of lines without any that contain the token * @@ -1233,6 +1266,7 @@ static void setup_config(void) securec_check_ss_c(nRet, "\0", "\0"); conflines = replace_token(conflines, "#log_timezone = 'GMT'", repltok); } + #ifndef ENABLE_MULTIPLE_NODES if (enableDCF) { nRet = strcpy_s(repltok, sizeof(repltok), "enable_dcf = on"); @@ -1241,6 +1275,15 @@ static void setup_config(void) } #endif + if (strlen(new_xlog_file_path) != 0) { + char* buf_xlog_file_path = NULL; + buf_xlog_file_path = escape_quotes(new_xlog_file_path); + nRet = sprintf_s(repltok, sizeof(repltok), "xlog_file_path = '%s'\n", buf_xlog_file_path); + securec_check_ss_c(nRet, "\0", "\0"); + conflines = append_token(conflines, repltok); + FREE_AND_RESET(buf_xlog_file_path); + } + nRet = sprintf_s(path, sizeof(path), "%s/postgresql.conf", pg_data); securec_check_ss_c(nRet, "\0", "\0"); @@ -2315,7 +2358,7 @@ static void setup_privileges(void) PG_CMD_DECL; char** line; char** priv_lines; - static char** privileges_setup = (char**)pg_malloc(sizeof(char*) * 19); + static char** privileges_setup = (char**)pg_malloc(sizeof(char*) * 20); int nRet = 0; privileges_setup[0] = xstrdup("UPDATE pg_class " @@ -2338,7 +2381,8 @@ static void setup_privileges(void) privileges_setup[15] = xstrdup("REVOKE ALL on gs_masking_policy_filters FROM public;\n"); privileges_setup[16] = xstrdup("GRANT USAGE ON SCHEMA sqladvisor TO PUBLIC;\n"); privileges_setup[17] = xstrdup("GRANT USAGE ON SCHEMA dbe_pldebugger TO PUBLIC;\n"); - privileges_setup[18] = NULL; + privileges_setup[18] = xstrdup("GRANT USAGE ON SCHEMA dbe_pldeveloper TO PUBLIC;\n"); + privileges_setup[19] = NULL; /* In security mode, we will revoke privilege of public on schema public. */ if (security) { privileges_setup[7] = xstrdup("REVOKE ALL on schema public FROM public;\n"); @@ -3444,6 +3488,7 @@ static void usage(const char* prog_name) printf(_(" -C, --enpwdfiledir=DIR get encrypted password of AES128 from cipher and rand file\n")); printf(_(" -X, --xlogdir=XLOGDIR location for the transaction log directory\n")); printf(_(" -S, --security remove normal user's privilege on public schema in security mode\n")); + printf(_(" -g, --xlogpath=XLOGPATH xlog file path of shared storage\n")); printf(_("\nLess commonly used options:\n")); printf(_(" -d, --debug generate lots of debugging output\n")); printf(_(" -L DIRECTORY where to find the input files\n")); @@ -3617,7 +3662,7 @@ int main(int argc, char* argv[]) /* process command-line options */ - while ((c = getopt_long(argc, argv, "cdD:E:L:nU:WA:SsT:X:C:w:H:", long_options, &option_index)) != -1) { + while ((c = getopt_long(argc, argv, "cdD:E:L:nU:WA:SsT:X:C:w:H:g:", long_options, &option_index)) != -1) { #define FREE_NOT_STATIC_ZERO_STRING(s) \ do { \ if ((s) && (char*)(s) != (char*)"") { \ @@ -3709,6 +3754,10 @@ int main(int argc, char* argv[]) debug = true; printf(_("Running in debug mode.\n")); break; + case 'g': + FREE_NOT_STATIC_ZERO_STRING(new_xlog_file_path); + new_xlog_file_path = xstrdup(optarg); + break; case 'n': noclean = true; printf(_("Running in noclean mode. Mistakes will not be cleaned up.\n")); @@ -4401,6 +4450,40 @@ int main(int argc, char* argv[]) } FREE_AND_RESET(path); } + + if (strlen(new_xlog_file_path) == 0) { + boot_options = raw_boot_options; + backend_options = raw_backend_options; + } else { + size_t total_len = strlen(raw_boot_options) + strlen(new_xlog_file_path) + 10; + char *options = (char*)pg_malloc(total_len); + errno_t sret = sprintf_s(options, total_len, "%s -g %s", raw_boot_options, new_xlog_file_path); + securec_check_ss_c(sret, options, "\0"); + boot_options = options; + + total_len = strlen(raw_backend_options) + strlen(new_xlog_file_path) + 10; + options = (char*)pg_malloc(total_len); + sret = sprintf_s(options, total_len, "%s -g %s", raw_backend_options, new_xlog_file_path); + securec_check_ss_c(sret, options, "\0"); + backend_options = options; + + struct stat st; + if (stat(new_xlog_file_path, &st) < 0) { + if (errno == ENOENT) { + canonicalize_path(new_xlog_file_path); + int fd = open(new_xlog_file_path, O_RDWR | O_CREAT | O_EXCL | PG_BINARY, 0600); + + close(fd); + write_log("create file:%s", new_xlog_file_path); + } else { + char errBuffer[ERROR_LIMIT_LEN]; + write_stderr(_("%s: could not access file \"%s\": %s\n"), progname, new_xlog_file_path, + pqStrerror(errno, errBuffer, ERROR_LIMIT_LEN)); + exit_nicely(); + } + } + } + /* create or check pg_location path */ mkdirForPgLocationDir(); check_ok(); diff --git a/src/bin/initdb/initdb.cpp_for_llt b/src/bin/initdb/initdb.cpp_for_llt index 581871f40..83cc925a2 100755 --- a/src/bin/initdb/initdb.cpp_for_llt +++ b/src/bin/initdb/initdb.cpp_for_llt @@ -2607,7 +2607,7 @@ make_template0(void) "REVOKE CREATE,TEMPORARY ON DATABASE template1 FROM public;\n", "REVOKE CREATE,TEMPORARY ON DATABASE template0 FROM public;\n", - "COMMENT ON DATABASE template0 IS 'default template for new databases';\n", + "COMMENT ON DATABASE template0 IS 'unmodifiable empty database';\n", /* * Finally vacuum to clean up dead rows in pg_database diff --git a/src/bin/pg_basebackup/Makefile b/src/bin/pg_basebackup/Makefile index e216e53eb..3adf90f22 100644 --- a/src/bin/pg_basebackup/Makefile +++ b/src/bin/pg_basebackup/Makefile @@ -20,7 +20,7 @@ include $(top_builddir)/src/Makefile.global override CPPFLAGS := -I$(libpq_srcdir) -I$(ZLIB_INCLUDE_PATH) $(CPPFLAGS) -DHAVE_LIBZ -fPIC -fPIE -DFRONTEND -I$(top_builddir)/src/bin/pg_rewind -I$(top_builddir)/src/bin/pg_ctl -I$(LZ4_INCLUDE_PATH) -LDFLAGS += -Wl,-z,relro,-z,now -L$(LZ4_LIB_PATH) +LDFLAGS += -L$(LZ4_LIB_PATH) LIBS += -lgssapi_krb5_gauss -lgssrpc_gauss -lkrb5_gauss -lkrb5support_gauss -lk5crypto_gauss -lcom_err_gauss -llz4 ifneq "$(MAKECMDGOALS)" "clean" diff --git a/src/bin/pg_basebackup/pg_basebackup.cpp b/src/bin/pg_basebackup/pg_basebackup.cpp index 0c8aa898a..4a27ebdb1 100644 --- a/src/bin/pg_basebackup/pg_basebackup.cpp +++ b/src/bin/pg_basebackup/pg_basebackup.cpp @@ -2048,7 +2048,7 @@ static int GsBaseBackup(int argc, char** argv) break; } } - + /* If port is not specified by using -p, obtain the port through environment variables */ if (dbport == NULL) { char *value = NULL; diff --git a/src/bin/pg_basebackup/pg_recvlogical.cpp b/src/bin/pg_basebackup/pg_recvlogical.cpp index ef7690b63..324f636d0 100644 --- a/src/bin/pg_basebackup/pg_recvlogical.cpp +++ b/src/bin/pg_basebackup/pg_recvlogical.cpp @@ -49,7 +49,7 @@ static bool do_drop_slot = false; static char** options; static size_t noptions = 0; static bool g_change_plugin = false; -char* plugin = "mppdb_decoding"; +static const char* plugin = NULL; /* Global State */ static int outfd = -1; @@ -710,7 +710,7 @@ static int getOptions(const int argc, char* const* argv) break; case 'P': check_env_value_c(optarg); - if (g_change_plugin && plugin) { + if (plugin) { pfree_ext(plugin); } plugin = pg_strdup(optarg); diff --git a/src/bin/pg_ctl/CMakeLists.txt b/src/bin/pg_ctl/CMakeLists.txt index b60d8fa8e..de95cf4ab 100755 --- a/src/bin/pg_ctl/CMakeLists.txt +++ b/src/bin/pg_ctl/CMakeLists.txt @@ -28,6 +28,7 @@ set(TGT_gsctl_INC ${PROJECT_TRUNK_DIR}/distribute/include ${LIBHOTPATCH_INCLUDE_PATH} ${ZLIB_INCLUDE_PATH} + ${ZSTD_INCLUDE_PATH} ) set(gsctl_DEF_OPTIONS ${MACRO_OPTIONS} -DHAVE_LIBZ -DFRONTEND) @@ -38,7 +39,7 @@ add_bintarget(gs_ctl TGT_gsctl_SRC TGT_gsctl_INC "${gsctl_DEF_OPTIONS}" "${gsctl add_dependencies(gs_ctl elog_static buildquery_static pg_rewind_static pgcommon_static hotpatchclient_static pgport_static pq) target_link_directories(gs_ctl PUBLIC ${LIBOPENSSL_LIB_PATH} ${PROTOBUF_LIB_PATH} ${LIBPARQUET_LIB_PATH} ${LIBCURL_LIB_PATH} - ${ZLIB_LIB_PATH} ${LIBOBS_LIB_PATH} ${LIBEDIT_LIB_PATH} ${LIBCGROUP_LIB_PATH} ${SECURE_LIB_PATH} + ${ZLIB_LIB_PATH} ${ZSTD_LIB_PATH} ${LIBOBS_LIB_PATH} ${LIBEDIT_LIB_PATH} ${LIBCGROUP_LIB_PATH} ${SECURE_LIB_PATH} ${LIBHOTPATCH_LIB_PATH} ${KERBEROS_LIB_PATH} ${CMAKE_BINARY_DIR}/lib ) install(TARGETS gs_ctl RUNTIME DESTINATION bin) diff --git a/src/bin/pg_ctl/backup.cpp b/src/bin/pg_ctl/backup.cpp index ea9fd6ead..f2a1b3ebf 100755 --- a/src/bin/pg_ctl/backup.cpp +++ b/src/bin/pg_ctl/backup.cpp @@ -120,24 +120,23 @@ static volatile LONG has_xlogendptr = 0; static void BuildReaper(SIGNAL_ARGS); extern void UpdateDBStateFile(char* path, GaussState* state); -static void disconnect_and_exit(int code); -static void verify_dir_is_empty_or_create(char* dirname); +static bool verify_dir_is_empty_or_create(char* dirname); static void removeCreatedTblspace(void); static void progress_report(int tablespacenum, const char* filename, bool force); -static void ReceiveAndUnpackTarFile(PGconn* conn, PGresult* res, int rownum); -static void BaseBackup(const char* dirname, uint32 term = 0); +static bool ReceiveAndUnpackTarFile(PGconn* conn, PGresult* res, int rownum); +static bool BaseBackup(const char* dirname, uint32 term = 0); static bool reached_end_position(XLogRecPtr segendpos, uint32 timeline, bool segment_finished); -void backup_incremental_xlog(char* dir); -static void create_backup_label(const char* dirname, const char* startsysid, TimeLineID starttli); -static void xlog_streamer_backup(const char* dirname); +bool backup_incremental_xlog(char* dir); +static bool create_backup_label(const char* dirname, const char* startsysid, TimeLineID starttli); +static bool xlog_streamer_backup(const char* dirname); static XLogRecPtr read_full_backup_label( const char* dirname, char* sysid, uint32 sysid_len, char* tline, uint32 tline_len); static int replace_node_name(char* sSrc, const char* sMatchStr, const char* sReplaceStr); static void show_full_build_process(const char* errmg); -static void backup_dw_file(const char* target_dir); +static bool backup_dw_file(const char* target_dir); void get_xlog_location(char (&xlog_location)[MAXPGPATH]); static bool UpdatePaxosIndexFile(unsigned long long paxosIndex); -static void DeleteAlreadyDropedFile(const char* path, bool is_table_space); +static bool DeleteAlreadyDropedFile(const char* path, bool is_table_space); static int DeleteUnusedFile(const char* path, unsigned int SegNo, unsigned int fileNode); /* @@ -209,32 +208,6 @@ static int tblspaceIndex = 0; } \ } -/* rename all tablespace name to local name */ -#define RENAME_TABLESPACE_LIST() \ - if (NULL != tblspaceParentDirectory && NULL != tblspaceDirectory) { \ - errno_t rcm = 0; \ - int k; \ - char nodetblspcparentpath[MAXPGPATH] = {0}; \ - for (k = 0; k < tblspaceCount; k++) { \ - if (tblspaceDirectory[k] != NULL && tblspaceParentDirectory[k] != NULL) { \ - rcm = snprintf_s(nodetblspcparentpath, \ - MAXPGPATH, \ - sizeof(nodetblspcparentpath) - 1, \ - "%s/%s_%s", \ - tblspaceParentDirectory[k], \ - TABLESPACE_VERSION_DIRECTORY, \ - remotenodename); \ - securec_check_ss_c(rcm, "", ""); \ - if (rename(nodetblspcparentpath, tblspaceDirectory[k]) < 0) { \ - pg_log( \ - PG_WARNING, _(" failed to rename %s to %s.\n"), nodetblspcparentpath, tblspaceDirectory[k]); \ - disconnect_and_exit(1); \ - } \ - rcm = memset_s(nodetblspcparentpath, sizeof(nodetblspcparentpath), 0, sizeof(nodetblspcparentpath)); \ - securec_check_ss_c(rcm, "", ""); \ - } \ - } \ - } /* get LSN and node name from remote node */ #define GET_FLUSHED_LSN() \ @@ -245,23 +218,27 @@ static int tblspaceIndex = 0; res = PQexec(streamConn, "IDENTIFY_MAXLSN"); \ if (PQresultStatus(res) != PGRES_TUPLES_OK) { \ pg_log(PG_WARNING, _(" could not identify maxlsn: %s"), PQerrorMessage(streamConn)); \ - disconnect_and_exit(1); \ + DisconnectConnection(); \ + return false; \ } \ if (PQntuples(res) != 1 || PQnfields(res) != 1) { \ pg_log(PG_WARNING, \ _(" could not identify maxlsn, got %d rows and %d fields\n"), \ PQntuples(res), \ PQnfields(res)); \ - disconnect_and_exit(1); \ + DisconnectConnection(); \ + return false; \ } \ return_value = PQgetvalue(res, 0, 0); \ if (NULL == return_value) { \ pg_log(PG_WARNING, _(" get remote lsn failed\n")); \ - disconnect_and_exit(1); \ + DisconnectConnection(); \ + return false; \ } \ if (NULL == strchr(return_value, '|')) { \ pg_log(PG_WARNING, _(" get remote lsn style failed\n")); \ - disconnect_and_exit(1); \ + DisconnectConnection(); \ + return false; \ } \ err = strncpy_s(remotelsn, MAXPGPATH, return_value, MAXPGPATH - 1); \ securec_check_c(err, "", ""); \ @@ -272,7 +249,8 @@ static int tblspaceIndex = 0; #define GET_REMOTE_NODENAME() \ if (0 == remotelsn[0]) { \ pg_log(PG_WARNING, _(" get remote node name failed.\n")); \ - disconnect_and_exit(1); \ + DisconnectConnection(); \ + return false; \ } \ char* save = NULL; \ char* rname = NULL; \ @@ -280,7 +258,8 @@ static int tblspaceIndex = 0; rname = strtok_r(remotelsn, "|", &save); \ if (NULL == rname) { \ pg_log(PG_WARNING, _(" get remote node name failed from %s.\n"), remotelsn); \ - disconnect_and_exit(1); \ + DisconnectConnection(); \ + return false; \ } \ rcm = strncpy_s(remotenodename, MAXPGPATH, rname, MAXPGPATH - 1); \ remotenodename[MAXPGPATH - 1] = '\0'; \ @@ -294,7 +273,8 @@ static int tblspaceIndex = 0; strtok_r(remotelsn, "|", &save); \ if (NULL == save) { \ pg_log(PG_WARNING, _(" get remote lsn failed from %s.\n"), remotelsn); \ - disconnect_and_exit(1); \ + DisconnectConnection(); \ + return false; \ } \ rcm = strncpy_s(xlogend, MAXFNAMELEN, save, MAXFNAMELEN - 1); \ (xlogend)[MAXFNAMELEN - 1] = '\0'; \ @@ -319,17 +299,6 @@ static int tblspaceIndex = 0; } \ } while (0) -/* crete build start tag file */ -#define CREATE_BUILD_FILE(buildstart_file) \ - if (0 != (buildstart_file)[0]) { \ - errno_t rcm = 0; \ - rcm = CreateBuildtagFile(buildstart_file); \ - if (rcm == FALSE) { \ - pg_log(PG_WARNING, _(" could not create file %s.\n"), buildstart_file); \ - disconnect_and_exit(1); \ - } \ - } - /* rename build tag file to done */ #define RENAME_BUILD_FILE(buildstart_file, builddone_file) \ if (rename(buildstart_file, builddone_file) < 0) { \ @@ -337,7 +306,7 @@ static int tblspaceIndex = 0; exit(1); \ } -static void disconnect_and_exit(int code) +static void DisconnectConnection() { if (streamConn != NULL) { PQfinish(streamConn); @@ -359,8 +328,6 @@ static void disconnect_and_exit(int code) update_obs_build_status("build failed"); PQfinish(dbConn); } - - exit(code); } /* @@ -512,7 +479,7 @@ static int LogStreamerMain(logstreamer_param* param) * The background stream will use its own database connection so we can * stream the logfile in parallel with the backups. */ -void StartLogStreamer( +bool StartLogStreamer( char* startpos, uint32 timeline, char* sysidentifier, const char* xloglocation, uint primaryTerm) { logstreamer_param* param = NULL; @@ -529,9 +496,10 @@ void StartLogStreamer( /* Convert the starting position */ if (sscanf_s(startpos, "%X/%X", &hi, &lo) != 2) { pg_log(PG_WARNING, _(" invalid format of xlog location: %s.\n"), startpos); - free(param); + PQfreemem(param); param = NULL; - disconnect_and_exit(1); + DisconnectConnection(); + return false; } param->startptr = (((uint64)hi) << 32) | lo; @@ -545,7 +513,8 @@ void StartLogStreamer( pg_log(PG_WARNING, _(" invalid format of xlog location: %s.\n"), startpos); PQfreemem(param); param = NULL; - disconnect_and_exit(1); + DisconnectConnection(); + return false; } #endif @@ -558,7 +527,13 @@ void StartLogStreamer( securec_check_c(rc, "", ""); param->xlogdir[MAXPGPATH - 1] = '\0'; - verify_dir_is_empty_or_create(param->xlogdir); + bool varifySuccess = verify_dir_is_empty_or_create(param->xlogdir); + if (!varifySuccess) { + PQfreemem(param); + param = NULL; + DisconnectConnection(); + return false; + } /* * Start a child process and tell it to start streaming. On Unix, this is @@ -576,7 +551,8 @@ void StartLogStreamer( pg_log(PG_WARNING, _(" could not create background process: %s.\n"), strerror(errno)); PQfreemem(param); param = NULL; - disconnect_and_exit(1); + DisconnectConnection(); + return false; } /* @@ -588,7 +564,8 @@ void StartLogStreamer( pg_log(PG_WARNING, _(" could not create background thread: %s.\n"), strerror(errno)); PQfreemem(param); param = NULL; - disconnect_and_exit(1); + DisconnectConnection(); + return false; } #endif @@ -596,8 +573,9 @@ void StartLogStreamer( PQfinish(param->bgconn); param->bgconn = NULL; } - free(param); + PQfreemem(param); param = NULL; + return true; } /* @@ -605,7 +583,7 @@ void StartLogStreamer( * exist, it is created. If it exists but is not empty, an error will * be give and the process ended. */ -static void verify_dir_is_empty_or_create(char* dirname) +static bool verify_dir_is_empty_or_create(char* dirname) { switch (pg_check_dir(dirname)) { case 0: @@ -615,15 +593,15 @@ static void verify_dir_is_empty_or_create(char* dirname) */ if (pg_mkdir_p(dirname, S_IRWXU) == -1) { pg_log(PG_WARNING, _("could not create directory \"%s\": %s\n"), dirname, strerror(errno)); - disconnect_and_exit(1); + return false; } - return; + return true; case 1: /* * Exists, empty */ - return; + return true; case 2: /* @@ -631,30 +609,31 @@ static void verify_dir_is_empty_or_create(char* dirname) */ if (strcmp(progname, "gs_rewind") == 0) { pg_log(PG_WARNING, _("in gs_rewind proecess,so no need remove.\n")); - return; + return true; } pg_log(PG_WARNING, _("directory \"%s\" exists but is not empty,so remove and recreate it\n"), dirname); if (!rmtree(dirname, true)) { pg_log(PG_WARNING, _("failed to remove dir %s.\n"), dirname); - disconnect_and_exit(1); + return false; } /* recreate it */ if (pg_mkdir_p(dirname, S_IRWXU) == -1) { pg_log(PG_WARNING, _("could not create directory \"%s\": %s\n"), dirname, strerror(errno)); - disconnect_and_exit(1); + return false; } - return; + return true; case -1: /* * Access problem */ pg_log(PG_WARNING, _("could not access directory \"%s\": %s\n"), dirname, strerror(errno)); - disconnect_and_exit(1); + return false; default: break; } + return true; } /* @@ -726,6 +705,37 @@ static void progress_report(int tablespacenum, const char* filename, bool force) } } +static bool GetCurrentPath(char *currentPath, PGresult *res, int rownum) +{ + char* get_value = NULL; + errno_t rc = EOK; + + if (PQgetisnull(res, rownum, 0)) { + rc = strncpy_s(currentPath, MAXPGPATH, basedir, strlen(basedir)); + securec_check_c(rc, "", ""); + + currentPath[MAXPGPATH - 1] = '\0'; + } else { + get_value = PQgetvalue(res, rownum, 1); + if (get_value == NULL) { + pg_log(PG_WARNING, _("PQgetvalue get value failed\n")); + DisconnectConnection(); + return false; + } + char* relative = PQgetvalue(res, rownum, 3); + if (*relative == '1') { + rc = snprintf_s(currentPath, MAXPGPATH, MAXPGPATH - 1, "%s/%s", basedir, get_value); + securec_check_ss_c(rc, "\0", "\0"); + } else { + rc = strncpy_s(currentPath, MAXPGPATH, get_value, strlen(get_value)); + securec_check_c(rc, "\0", "\0"); + } + currentPath[MAXPGPATH - 1] = '\0'; + } + + return true; +} + /* * Receive a tar format stream from the connection to the server, and unpack * the contents of it into a directory. Only files, directories and @@ -736,7 +746,7 @@ static void progress_report(int tablespacenum, const char* filename, bool force) * in the original directory, since relocation of tablespaces is not * supported. */ -static void ReceiveAndUnpackTarFile(PGconn* conn, PGresult* res, int rownum) +static bool ReceiveAndUnpackTarFile(PGconn* conn, PGresult* res, int rownum) { char current_path[MAXPGPATH] = {0}; char filename[MAXPGPATH] = {0}; @@ -745,31 +755,12 @@ static void ReceiveAndUnpackTarFile(PGconn* conn, PGresult* res, int rownum) uint64 current_padding = 0; char* copybuf = NULL; FILE* file = NULL; - char* get_value = NULL; struct stat st; - errno_t rc = EOK; int nRet = 0; + bool forbid_write = false; - if (PQgetisnull(res, rownum, 0)) { - rc = strncpy_s(current_path, MAXPGPATH, basedir, strlen(basedir)); - securec_check_c(rc, "", ""); - - current_path[MAXPGPATH - 1] = '\0'; - } else { - get_value = PQgetvalue(res, rownum, 1); - if (get_value == NULL) { - pg_log(PG_WARNING, _("PQgetvalue get value failed\n")); - disconnect_and_exit(1); - } - char* relative = PQgetvalue(res, rownum, 3); - if (*relative == '1') { - nRet = snprintf_s(current_path, MAXPGPATH, MAXPGPATH - 1, "%s/%s", basedir, get_value); - securec_check_ss_c(nRet, "\0", "\0"); - } else { - rc = strncpy_s(current_path, MAXPGPATH, get_value, strlen(get_value)); - securec_check_c(rc, "\0", "\0"); - } - current_path[MAXPGPATH - 1] = '\0'; + if (!GetCurrentPath(current_path, res, rownum)) { + return false; } /* @@ -778,7 +769,9 @@ static void ReceiveAndUnpackTarFile(PGconn* conn, PGresult* res, int rownum) res = PQgetResult(conn); if (PQresultStatus(res) != PGRES_COPY_OUT) { pg_log(PG_WARNING, _("could not get COPY data stream: %s"), PQerrorMessage(conn)); - disconnect_and_exit(1); + DisconnectConnection(); + PQclear(res); + return false; } PQclear(res); @@ -787,7 +780,8 @@ static void ReceiveAndUnpackTarFile(PGconn* conn, PGresult* res, int rownum) if (build_interrupted) { pg_log(PG_WARNING, _("build walreceiver process terminated abnormally\n")); - disconnect_and_exit(1); + DisconnectConnection(); + return false; } if (copybuf != NULL) { @@ -808,7 +802,8 @@ static void ReceiveAndUnpackTarFile(PGconn* conn, PGresult* res, int rownum) } else if (r == -2) { pg_log(PG_WARNING, _("could not read COPY data: %s\n"), PQerrorMessage(conn)); - disconnect_and_exit(1); + DisconnectConnection(); + return false; } if (file == NULL) { @@ -820,19 +815,22 @@ static void ReceiveAndUnpackTarFile(PGconn* conn, PGresult* res, int rownum) if (r != BUILD_PATH_LEN) { pg_log(PG_WARNING, _("invalid tar block header size: %d\n"), r); - disconnect_and_exit(1); + DisconnectConnection(); + return false; } totaldone += BUILD_PATH_LEN; if (sscanf_s(copybuf + 1048, "%20lo", ¤t_len_left) != 1) { pg_log(PG_WARNING, _("could not parse file size\n")); - disconnect_and_exit(1); + DisconnectConnection(); + return false; } /* Set permissions on the file */ if (sscanf_s(©buf[1024], "%07o ", &filemode) != 1) { pg_log(PG_WARNING, _("could not parse file mode\n")); - disconnect_and_exit(1); + DisconnectConnection(); + return false; } /* @@ -840,7 +838,8 @@ static void ReceiveAndUnpackTarFile(PGconn* conn, PGresult* res, int rownum) */ if (current_len_left < 0 || current_len_left > INT_MAX - 511) { pg_log(PG_WARNING, _("current_len_left is invalid\n")); - disconnect_and_exit(1); + DisconnectConnection(); + return false; } current_padding = ((current_len_left + 511) & ~511) - current_len_left; @@ -851,6 +850,7 @@ static void ReceiveAndUnpackTarFile(PGconn* conn, PGresult* res, int rownum) (void)replace_node_name(copybuf, (const char*)remotenodename, (const char*)pgxcnodename); nRet = snprintf_s(filename, MAXPGPATH, sizeof(filename) - 1, "%s/%s", current_path, copybuf); securec_check_ss_c(nRet, "\0", "\0"); + forbid_write = (IS_CROSS_CLUSTER_BUILD && strcmp(copybuf, "pg_hba.conf") == 0); if (filename[strlen(filename) - 1] == '/') { int len = strlen("/pg_xlog"); @@ -873,19 +873,16 @@ static void ReceiveAndUnpackTarFile(PGconn* conn, PGresult* res, int rownum) * on that. */ if (!streamwal || strcmp(filename + strlen(filename) - len, "/pg_xlog") != 0) { - pg_log(PG_WARNING, - _("could not create directory \"%s\": %s\n"), - filename, + pg_log(PG_WARNING, _("could not create directory \"%s\": %s\n"), filename, strerror(errno)); - disconnect_and_exit(1); + DisconnectConnection(); + return false; } } #ifndef WIN32 if (chmod(filename, filemode)) - pg_log(PG_WARNING, - _("could not set permissions on directory \"%s\": %s\n"), - filename, + pg_log(PG_WARNING, _("could not set permissions on directory \"%s\": %s\n"), filename, strerror(errno)); #endif @@ -898,12 +895,10 @@ static void ReceiveAndUnpackTarFile(PGconn* conn, PGresult* res, int rownum) filename[strlen(filename) - 1] = '\0'; /* Remove trailing slash */ if (symlink(©buf[bufOffset + 1], filename) != 0) { if (!streamwal || strcmp(filename + strlen(filename) - len, "/pg_xlog") != 0) { - pg_log(PG_WARNING, - _("could not create symbolic link from \"%s\" to \"%s\": %s\n"), - filename, - ©buf[1081], - strerror(errno)); - disconnect_and_exit(1); + pg_log(PG_WARNING, _("could not create symbolic link from \"%s\" to \"%s\": %s\n"), + filename, ©buf[1081], strerror(errno)); + DisconnectConnection(); + return false; } } } else if (copybuf[bufOffset] == '3') { @@ -922,17 +917,16 @@ static void ReceiveAndUnpackTarFile(PGconn* conn, PGresult* res, int rownum) if (symlink(absolut_path, filename) != 0) { if (!streamwal || strcmp(filename + strlen(filename) - len, "/pg_xlog") != 0) { - pg_log(PG_WARNING, - _("could not create symbolic link from \"%s\" to \"%s\": %s\n"), - filename, - ©buf[1081], - strerror(errno)); - disconnect_and_exit(1); + pg_log(PG_WARNING, _("could not create symbolic link from \"%s\" to \"%s\": %s\n"), + filename, ©buf[1081], strerror(errno)); + DisconnectConnection(); + return false; } } } else { pg_log(PG_WARNING, _("unrecognized link indicator \"%c\"\n"), copybuf[1080]); - disconnect_and_exit(1); + DisconnectConnection(); + return false; } continue; /* directory or link handled */ } @@ -941,10 +935,15 @@ static void ReceiveAndUnpackTarFile(PGconn* conn, PGresult* res, int rownum) /* * regular file */ - file = fopen(filename, "wb"); + if (forbid_write) { + file = fopen(filename, "ab"); + } else { + file = fopen(filename, "wb"); + } if (NULL == file) { pg_log(PG_WARNING, _("could not create file \"%s\": %s\n"), filename, strerror(errno)); - disconnect_and_exit(1); + DisconnectConnection(); + return false; } #ifndef WIN32 @@ -976,14 +975,17 @@ static void ReceiveAndUnpackTarFile(PGconn* conn, PGresult* res, int rownum) totaldone += r; continue; } - - if (fwrite(copybuf, r, 1, file) != 1) { - pg_log(PG_WARNING, _("could not write to file \"%s\": %s\n"), filename, strerror(errno)); - disconnect_and_exit(1); + if (forbid_write == false) { + if (fwrite(copybuf, r, 1, file) != 1) { + pg_log(PG_WARNING, _("could not write to file \"%s\": %s\n"), filename, strerror(errno)); + DisconnectConnection(); + return false; + } } totaldone += r; - if (showprogress) + if (showprogress && build_mode != COPY_SECURE_FILES_BUILD) { progress_report(rownum, filename, false); + } current_len_left -= r; if (current_len_left == 0 && current_padding == 0) { @@ -999,20 +1001,23 @@ static void ReceiveAndUnpackTarFile(PGconn* conn, PGresult* res, int rownum) } /* continuing data in existing file */ } /* loop over all data blocks */ - if (showprogress) + if (showprogress && build_mode != COPY_SECURE_FILES_BUILD) { progress_report(rownum, filename, true); + } if (file != NULL) { fclose(file); file = NULL; pg_log(PG_WARNING, _("COPY stream ended before last file was finished\n")); - disconnect_and_exit(1); + DisconnectConnection(); + return false; } if (copybuf != NULL) { PQfreemem(copybuf); copybuf = NULL; } + return true; } /* @@ -1041,7 +1046,68 @@ bool CreateBuildtagFile(const char* fulltagname) return true; } -static void BaseBackup(const char* dirname, uint32 term) +bool ModifyControlFile(const char* dirname) +{ + ControlFileData controlFileNew; + char controlFilePath[MAXPGPATH] = {0}; + size_t size = 0; + int writelen; + int fd = -1; + int ss = 0; + char* buffer = NULL; + char writeBuf[PG_CONTROL_SIZE]; + errno_t errorNo = EOK; + + buffer = slurpFile(dirname, "global/pg_control", &size); + if (buffer == NULL) { + pg_log(PG_WARNING, _("could not read anything from file pg_control. \n")); + DisconnectConnection(); + return false; + } + errorNo = memcpy_s(&controlFileNew, sizeof(ControlFileData), buffer, sizeof(ControlFileData)); + securec_check_c(errorNo, "\0", "\0"); + pg_free(buffer); + buffer = NULL; + controlFileNew.state = DB_IN_ARCHIVE_RECOVERY; + INIT_CRC32C(controlFileNew.crc); + COMP_CRC32C(controlFileNew.crc, (char*)&controlFileNew, offsetof(ControlFileData, crc)); + FIN_CRC32C(controlFileNew.crc); + errorNo = memset_s(writeBuf, PG_CONTROL_SIZE, 0, PG_CONTROL_SIZE); + securec_check_c(errorNo, "", ""); + errorNo = memcpy_s(writeBuf, PG_CONTROL_SIZE, &controlFileNew, sizeof(ControlFileData)); + securec_check_c(errorNo, "", ""); + ss = snprintf_s(controlFilePath, MAXPGPATH, MAXPGPATH - 1, "%s/global/pg_control", dirname); + securec_check_ss_c(ss, "\0", "\0"); + + int mode = O_WRONLY | O_CREAT | PG_BINARY; + int flags = 0600; + fd = open(controlFilePath, mode, flags); + if (fd < 0) { + pg_log(PG_WARNING, ("could not open pg_control file. \n")); + DisconnectConnection(); + return false; + } + if (lseek(fd, 0, SEEK_SET) == -1) { + (void)close(fd); + fd = -1; + pg_log(PG_WARNING, "could not seek in target file \"%s\"\n", controlFilePath); + DisconnectConnection(); + return false; + } + writelen = write(fd, writeBuf, PG_CONTROL_SIZE); + if (writelen != PG_CONTROL_SIZE) { + pg_log(PG_WARNING, "could not write in target file \"%s\"\n", controlFilePath); + (void)close(fd); + fd = -1; + DisconnectConnection(); + return false; + } + close(fd); + return true; +} + + +static bool BaseBackup(const char* dirname, uint32 term) { PGresult* res = NULL; char* sysidentifier = NULL; @@ -1085,6 +1151,7 @@ static void BaseBackup(const char* dirname, uint32 term) nRet = snprintf_s(backup_location, MAXPGPATH, MAXPGPATH - 1, "%s/obs_backup", dirname); securec_check_ss_c(nRet, "\0", "\0"); pg_free(basedir); + basedir = NULL; basedir = xstrdup(backup_location); } else { /* save connection info from command line or postgresql file */ @@ -1098,7 +1165,8 @@ static void BaseBackup(const char* dirname, uint32 term) } if (streamConn == NULL) { show_full_build_process("could not connect to server."); - disconnect_and_exit(1); + DisconnectConnection(); + return false; } show_full_build_process("connect to server success, build started."); @@ -1106,8 +1174,8 @@ static void BaseBackup(const char* dirname, uint32 term) ret = CreateBuildtagFile(buildstart_file); if (ret == FALSE) { pg_log(PG_WARNING, _("could not create file %s.\n"), buildstart_file); - - disconnect_and_exit(1); + DisconnectConnection(); + return false; } show_full_build_process("create build tag file success"); @@ -1122,7 +1190,8 @@ static void BaseBackup(const char* dirname, uint32 term) if (ret == FALSE) { pg_log(PG_WARNING, _("could not create file again %s.\n"), buildstart_file); - disconnect_and_exit(1); + DisconnectConnection(); + return false; } show_full_build_process("create build tag file again success"); @@ -1134,12 +1203,15 @@ static void BaseBackup(const char* dirname, uint32 term) res = PQexec(streamConn, "IDENTIFY_SYSTEM"); if (PQresultStatus(res) != PGRES_TUPLES_OK) { pg_log(PG_WARNING, _("could not identify system: %s"), PQerrorMessage(streamConn)); - - disconnect_and_exit(1); + DisconnectConnection(); + PQclear(res); + return false; } if (PQntuples(res) != 1 || PQnfields(res) != 4) { pg_log(PG_WARNING, _("could not identify system, got %d rows and %d fields\n"), PQntuples(res), PQnfields(res)); - disconnect_and_exit(1); + DisconnectConnection(); + PQclear(res); + return false; } sysidentifier = pg_strdup(PQgetvalue(res, 0, 0)); timeline = atoi(PQgetvalue(res, 0, 1)); @@ -1148,7 +1220,13 @@ static void BaseBackup(const char* dirname, uint32 term) show_full_build_process("get system identifier success"); if (!g_is_obsmode) { - create_backup_label(dirname, sysidentifier, timeline); + bool createLabelSuccess = create_backup_label(dirname, sysidentifier, timeline); + if (!createLabelSuccess) { + pg_free(sysidentifier); + sysidentifier = NULL; + DisconnectConnection(); + return false; + } show_full_build_process("create backup label success"); @@ -1184,7 +1262,10 @@ static void BaseBackup(const char* dirname, uint32 term) if (PQsendQuery(streamConn, current_path) == 0) { pg_log(PG_WARNING, _("could not send base backup command: %s"), PQerrorMessage(streamConn)); - disconnect_and_exit(1); + pg_free(sysidentifier); + sysidentifier = NULL; + DisconnectConnection(); + return false; } /* @@ -1193,17 +1274,29 @@ static void BaseBackup(const char* dirname, uint32 term) res = PQgetResult(streamConn); if (PQresultStatus(res) != PGRES_TUPLES_OK) { pg_log(PG_WARNING, _("could not get xlog location: %s"), PQerrorMessage(streamConn)); - disconnect_and_exit(1); + pg_free(sysidentifier); + sysidentifier = NULL; + DisconnectConnection(); + PQclear(res); + return false; } if (PQntuples(res) != 1) { pg_log(PG_WARNING, _("no xlog location returned from server\n")); - disconnect_and_exit(1); + pg_free(sysidentifier); + sysidentifier = NULL; + DisconnectConnection(); + PQclear(res); + return false; } get_value = PQgetvalue(res, 0, 0); /* if linkpath is NULL ? */ if (get_value == NULL) { pg_log(PG_WARNING, _("get xlog location failed\n")); - disconnect_and_exit(1); + pg_free(sysidentifier); + sysidentifier = NULL; + DisconnectConnection(); + PQclear(res); + return false; } /* @@ -1221,22 +1314,35 @@ static void BaseBackup(const char* dirname, uint32 term) res = PQgetResult(streamConn); if (PQresultStatus(res) != PGRES_TUPLES_OK) { pg_log(PG_WARNING, _("could not initiate base backup: %s"), PQerrorMessage(streamConn)); - disconnect_and_exit(1); + pg_free(sysidentifier); + sysidentifier = NULL; + DisconnectConnection(); + PQclear(res); + return false; } if (PQntuples(res) != 1) { pg_log(PG_WARNING, _("no start point returned from server\n")); - disconnect_and_exit(1); + pg_free(sysidentifier); + sysidentifier = NULL; + DisconnectConnection(); + PQclear(res); + return false; } get_value = PQgetvalue(res, 0, 0); if (get_value == NULL) { pg_log(PG_WARNING, _("get xlog start point failed\n")); - disconnect_and_exit(1); + pg_free(sysidentifier); + sysidentifier = NULL; + DisconnectConnection(); + PQclear(res); + return false; } rc = strncpy_s(xlogstart, sizeof(xlogstart), get_value, strlen(get_value)); securec_check_c(rc, "", ""); xlogstart[63] = '\0'; - if (verbose && includewal) { + bool needPrintXLogInfo = verbose && includewal; + if (needPrintXLogInfo) { pg_log(PG_WARNING, "xlog start point: %s\n", xlogstart); } PQclear(res); @@ -1252,11 +1358,19 @@ static void BaseBackup(const char* dirname, uint32 term) if (PQresultStatus(res) != PGRES_TUPLES_OK) { pg_log(PG_WARNING, _("could not get backup header. Please check server's information. Error message: %s"), PQerrorMessage(streamConn)); - disconnect_and_exit(1); + pg_free(sysidentifier); + sysidentifier = NULL; + DisconnectConnection(); + PQclear(res); + return false; } if (PQntuples(res) < 1) { pg_log(PG_WARNING, _("no data returned from server\n")); - disconnect_and_exit(1); + pg_free(sysidentifier); + sysidentifier = NULL; + DisconnectConnection(); + PQclear(res); + return false; } /* @@ -1303,7 +1417,14 @@ static void BaseBackup(const char* dirname, uint32 term) pgxcnodename); securec_check_ss_c(nRet, "\0", "\0"); - verify_dir_is_empty_or_create(nodetablespacepath); + bool varifySuccess = verify_dir_is_empty_or_create(nodetablespacepath); + if (!varifySuccess) { + pg_free(sysidentifier); + sysidentifier = NULL; + DisconnectConnection(); + PQclear(res); + return false; + } /* Save the tablespace directory here so we can remove it when errors happen. */ SAVE_TABLESPACE_DIRECTORY(nodetablespacepath, nodetablespaceparentpath); @@ -1317,7 +1438,11 @@ static void BaseBackup(const char* dirname, uint32 term) */ if (format == 't' && strcmp(basedir, "-") == 0 && PQntuples(res) > 1) { pg_log(PG_WARNING, _("can only write single tablespace to stdout, database has %d\n"), PQntuples(res)); - disconnect_and_exit(1); + pg_free(sysidentifier); + sysidentifier = NULL; + DisconnectConnection(); + PQclear(res); + return false; } show_full_build_process("begin get xlog by xlogstream"); @@ -1331,22 +1456,37 @@ static void BaseBackup(const char* dirname, uint32 term) pg_log(PG_WARNING, _("starting background WAL receiver\n")); } show_full_build_process("starting walreceiver"); - StartLogStreamer(xlogstart, timeline, sysidentifier, (const char*)xlog_location, term); + bool startSuccess = StartLogStreamer(xlogstart, timeline, sysidentifier, (const char*)xlog_location, term); + if (!startSuccess) { + pg_log(PG_WARNING, _("start log streamer failed \n")); + pg_free(sysidentifier); + sysidentifier = NULL; + DisconnectConnection(); + PQclear(res); + return false; + } } /* free sysidentifier after use */ pg_free(sysidentifier); + sysidentifier = NULL; show_full_build_process("begin receive tar files"); /* * Start receiving chunks, Loop over all tablespaces */ for (i = 0; i < PQntuples(res); i++) { - ReceiveAndUnpackTarFile(streamConn, res, i); + bool getFileSuccess = ReceiveAndUnpackTarFile(streamConn, res, i); + if (!getFileSuccess) { + DisconnectConnection(); + PQclear(res); + return false; + } } - if (showprogress) + if (showprogress) { progress_report(PQntuples(res), NULL, true); + } PQclear(res); show_full_build_process("finish receive tar files"); @@ -1357,22 +1497,28 @@ static void BaseBackup(const char* dirname, uint32 term) res = PQgetResult(streamConn); if (PQresultStatus(res) != PGRES_TUPLES_OK) { pg_log(PG_WARNING, _("could not get WAL end position from server: %s"), PQerrorMessage(streamConn)); - disconnect_and_exit(1); + DisconnectConnection(); + PQclear(res); + return false; } if (PQntuples(res) != 1) { pg_log(PG_WARNING, _("no WAL end position returned from server\n")); - disconnect_and_exit(1); + DisconnectConnection(); + PQclear(res); + return false; } get_value = PQgetvalue(res, 0, 0); if (get_value == NULL) { pg_log(PG_WARNING, _("get xlog end point failed\n")); - disconnect_and_exit(1); + DisconnectConnection(); + PQclear(res); + return false; } rc = strncpy_s(xlogend, sizeof(xlogend), get_value, strlen(get_value)); securec_check_c(rc, "", ""); xlogend[63] = '\0'; - if (verbose && includewal) { + if (needPrintXLogInfo) { pg_log(PG_WARNING, "xlog end point: %s\n", xlogend); } @@ -1382,19 +1528,25 @@ static void BaseBackup(const char* dirname, uint32 term) if (dcfEnabled) { if (nfields <= 1) { pg_log(PG_WARNING, _("Received nfields from PQ is less than 2\n")); - disconnect_and_exit(1); + DisconnectConnection(); + PQclear(res); + return false; } get_value = PQgetvalue(res, 0, 1); char* tmp = NULL; unsigned long long paxosIndex = strtoul(PQgetvalue(res, 0, 1), &tmp, 10); if (*tmp != '\0') { pg_log(PG_WARNING, _("Unexpected paxos index specified!\n")); - disconnect_and_exit(1); + DisconnectConnection(); + PQclear(res); + return false; } /* Keep the paxos index info in a file, then Gaussdb server can read it after start. */ if (UpdatePaxosIndexFile(paxosIndex) == false) { pg_log(PG_WARNING, _("Failed to write paxos index to a file!\n")); - disconnect_and_exit(1); + DisconnectConnection(); + PQclear(res); + return false; } pg_log(PG_PROGRESS, _("Enable DCF and paxos index written in paxosindex file is %llu\n"), @@ -1405,7 +1557,9 @@ static void BaseBackup(const char* dirname, uint32 term) res = PQgetResult(streamConn); if (PQresultStatus(res) != PGRES_COMMAND_OK) { pg_log(PG_WARNING, _("final receive failed: %s"), PQerrorMessage(streamConn)); - disconnect_and_exit(1); + DisconnectConnection(); + PQclear(res); + return false; } /* @@ -1422,7 +1576,9 @@ static void BaseBackup(const char* dirname, uint32 term) * otherwise we have problem! Report error and disconnect. */ pg_log(PG_WARNING, _("unexpected result received after final result, status: %u\n"), PQresultStatus(res)); - disconnect_and_exit(1); + DisconnectConnection(); + PQclear(res); + return false; } show_full_build_process("fetching MOT checkpoint"); @@ -1451,26 +1607,31 @@ static void BaseBackup(const char* dirname, uint32 term) #ifndef WIN32 if ((unsigned int)write(bgpipe[1], xlogend, strlen(xlogend)) != strlen(xlogend)) { pg_log(PG_WARNING, _("could not send command to background pipe: %s\n"), strerror(errno)); - disconnect_and_exit(1); + DisconnectConnection(); + return false; } /* Just wait for the background process to exit */ r = waitpid(bgchild, &status, 0); if (r == -1) { pg_log(PG_WARNING, _("could not wait for child process: %s\n"), strerror(errno)); - disconnect_and_exit(1); + DisconnectConnection(); + return false; } if (r != bgchild) { pg_log(PG_WARNING, _("child %d died, expected %d\n"), r, (int)bgchild); - disconnect_and_exit(1); + DisconnectConnection(); + return false; } if (!WIFEXITED(status)) { pg_log(PG_WARNING, _("child process did not exit normally\n")); - disconnect_and_exit(1); + DisconnectConnection(); + return false; } if (WEXITSTATUS(status) != 0) { pg_log(PG_WARNING, _("child process exited with error %d\n"), WEXITSTATUS(status)); - disconnect_and_exit(1); + DisconnectConnection(); + return false; } /* Exited normally, we're happy! */ #else /* WIN32 */ @@ -1482,7 +1643,8 @@ static void BaseBackup(const char* dirname, uint32 term) */ if (sscanf_s(xlogend, "%X/%X", &hi, &lo) != 2) { pg_log(PG_WARNING, _("could not parse xlog end position \"%s\"\n"), xlogend); - disconnect_and_exit(1); + DisconnectConnection(); + return false; } xlogendptr = ((uint64)hi) << 32 | lo(void) InterlockedIncrement(&has_xlogendptr); @@ -1490,16 +1652,19 @@ static void BaseBackup(const char* dirname, uint32 term) if (WaitForSingleObjectEx((HANDLE)bgchild, INFINITE, FALSE) != WAIT_OBJECT_0) { _dosmaperr(GetLastError()); pg_log(PG_WARNING, _("could not wait for child thread: %s\n"), strerror(errno)); - disconnect_and_exit(1); + DisconnectConnection(); + return false; } if (GetExitCodeThread((HANDLE)bgchild, &status) == 0) { _dosmaperr(GetLastError()); pg_log(PG_WARNING, _("could not get child thread exit status: %s\n"), strerror(errno)); - disconnect_and_exit(1); + DisconnectConnection(); + return false; } if (status != 0) { pg_log(PG_WARNING, _("child thread exited with error %u\n"), (unsigned int)status); - disconnect_and_exit(1); + DisconnectConnection(); + return false; } /* Exited normally, we're happy */ #endif @@ -1516,12 +1681,19 @@ static void BaseBackup(const char* dirname, uint32 term) (void) fsync_pgdata(basedir); show_full_build_process("finish fsync all files."); } + + bool backupDWFileSuccess = false; /* delete dw file if exists, recreate it and write a page of zero */ if (g_is_obsmode) { - backup_dw_file(basedir); + backupDWFileSuccess = backup_dw_file(basedir); } else { - backup_dw_file(dirname); + backupDWFileSuccess = backup_dw_file(dirname); } + + if (!backupDWFileSuccess) { + return false; + } + show_full_build_process("build dummy dw file success"); if (!g_is_obsmode) { @@ -1533,11 +1705,23 @@ static void BaseBackup(const char* dirname, uint32 term) } nRet = snprintf_s(basePath, MAXPGPATH, MAXPGPATH, "%s/base", dirname); securec_check_ss_c(nRet, "\0", "\0"); - DeleteAlreadyDropedFile(basePath, false); + bool deleteFilsSuccess = DeleteAlreadyDropedFile(basePath, false); + if (!deleteFilsSuccess) { + return false; + } nRet = snprintf_s(tblspcPath, MAXPGPATH, MAXPGPATH, "%s/pg_tblspc", dirname); securec_check_ss_c(nRet, "\0", "\0"); - DeleteAlreadyDropedFile(tblspcPath, true); + deleteFilsSuccess = DeleteAlreadyDropedFile(tblspcPath, true); + if (!deleteFilsSuccess) { + return false; + } + + if (isBuildFromStandby) { + return ModifyControlFile(dirname); + } + + return true; } /* @@ -1546,7 +1730,7 @@ static void BaseBackup(const char* dirname, uint32 term) * Description : * Notes : */ -void backup_main(const char* dir, uint32 term, bool isFromStandby) +bool backup_main(const char* dir, uint32 term, bool isFromStandby) { if (dir == NULL) { pg_log(PG_PRINT, "%s: parameters dir is NULL.\n", progname); @@ -1559,14 +1743,141 @@ void backup_main(const char* dir, uint32 term, bool isFromStandby) progname = "gs_ctl"; /* start backup */ - BaseBackup(dir, term); + return BaseBackup(dir, term); +} + +/* + * @@GaussDB@@ + * Brief : the entry of copy secure files from remote + * Description : + * Notes : + */ +bool CopySecureFilesMain(char* dirname, uint32 term) +{ + PGresult* res = NULL; + char current_path[MAXPGPATH] = {0}; + char secureFilesPath[MAXPGPATH] = {0}; + int i; + int nRet = 0; + bool isNotEmpty = false; + DIR *dir = NULL; + struct dirent *de = NULL; + struct stat st; + + basedir = dirname; + CONCAT_BUILD_CONF_FILE(dirname); + if (stat(dirname, &st) != 0) { + pg_log(PG_WARNING, _("could not stat directory or file: %s\n"), strerror(errno)); + return false; + } + + /* if it is a symnol, chmod will change the auth of the true file */ + if (S_ISLNK(st.st_mode)) { + pg_log(PG_WARNING, _("the file being chmod is a symbol link\n")); + return false; + } + + chmod(dirname, (mode_t)S_IRWXU); + pg_log(PG_PROGRESS, _("start copy remote files.\n")); + if (!need_copy_upgrade_file) { + nRet = snprintf_s(secureFilesPath, MAXPGPATH, MAXPGPATH - 1, "%s/gs_secure_files", dirname); + if (stat(secureFilesPath, &st) != 0) { + if (errno != ENOENT) { + pg_log(PG_WARNING, _("could not stat gs_secure_files: %s\n"), strerror(errno)); + return false; + } + pg_log(PG_PROGRESS, _("old gs_secure_files dir not exist.\n")); + } else { + if (!rmtree(secureFilesPath, true)) { + pg_log(PG_WARNING, _("failed to remove dir %s.\n"), secureFilesPath); + return false; + } + pg_log(PG_PROGRESS, _("old gs_secure_files dir has been deleted.\n")); + } + + if (mkdir(secureFilesPath, S_IRWXU) != 0) { + pg_log(PG_WARNING, _("failed to make dir %s.\n"), secureFilesPath); + return false; + } + pg_log(PG_PROGRESS, _("new gs_secure_files dir has been made.\n")); + } + get_conninfo(conf_file); + streamConn = check_and_conn(standby_connect_timeout, standby_recv_timeout, term); + if (streamConn == NULL) { + pg_log(PG_WARNING, _("could not connect to server.\n")); + DisconnectConnection(); + return false; + } + pg_log(PG_PROGRESS, _("remote server connected.\n")); + nRet = snprintf_s(current_path, MAXPGPATH, sizeof(current_path) - 1, + "BASE_BACKUP LABEL 'gs_ctl copy secure files' copysecurefile %s", + need_copy_upgrade_file ? "needupgradefile" : ""); + securec_check_ss_c(nRet, "", ""); + + if (PQsendQuery(streamConn, current_path) == 0) { + pg_log(PG_WARNING, _("could not send backup command: %s\n"), PQerrorMessage(streamConn)); + DisconnectConnection(); + return false; + } + res = PQgetResult(streamConn); + if (PQresultStatus(res) != PGRES_TUPLES_OK) { + pg_log(PG_WARNING, _("could not get backup header. Please check server's information. Error message: %s\n"), + PQerrorMessage(streamConn)); + DisconnectConnection(); + PQclear(res); + return false; + } + if (PQntuples(res) < 1) { + pg_log(PG_WARNING, _("no data returned from server\n")); + DisconnectConnection(); + PQclear(res); + return false; + } + pg_log(PG_PROGRESS, _("begin receive tar files\n")); + for (i = 0; i < PQntuples(res); i++) { + bool getFileSuccess = ReceiveAndUnpackTarFile(streamConn, res, i); + if (!getFileSuccess) { + DisconnectConnection(); + PQclear(res); + return false; + } + } + PQclear(res); + if (!need_copy_upgrade_file) { + dir = opendir(secureFilesPath); + if (dir == NULL) { + pg_log(PG_WARNING, _("could not open directory after copy : %s!\n"), secureFilesPath); + return false; + } + while (1) { + de = readdir(dir); + if (de <= 0) { + break; + } + if (strcmp(de->d_name, ".") == 0 || strcmp(de->d_name, "..") == 0) { + continue; + } + if ((de->d_type == DT_DIR) || (de->d_type == DT_REG) || (de->d_type == DT_UNKNOWN)) { + isNotEmpty = true; + break; + } + } + if (!isNotEmpty) { + pg_log(PG_WARNING, _("the directory %s after copy is null.\n"), secureFilesPath); + (void)closedir(dir); + return false; + } + (void)closedir(dir); + } + pg_log(PG_PROGRESS, _("copy remote secure files completed\n")); + return true; } /* * scene for CN build DN,used after full backup * and cluster should be locked. */ -void backup_incremental_xlog(char* dir) +bool backup_incremental_xlog(char* dir) { /* data dir cannot be NULL */ if (dir == NULL) { @@ -1579,7 +1890,7 @@ void backup_incremental_xlog(char* dir) basedir = dir; /* xlog backup */ - xlog_streamer_backup(dir); + return xlog_streamer_backup(dir); } /* BuildReaper -- signal handler after wal receiver dies. */ @@ -1592,7 +1903,7 @@ static void BuildReaper(SIGNAL_ARGS) * Create a full backup_label file that check sysidentifier with * incremental backup. */ -static void create_backup_label(const char* dirname, const char* startsysid, TimeLineID starttli) +static bool create_backup_label(const char* dirname, const char* startsysid, TimeLineID starttli) { char buf[1000]; int len; @@ -1610,12 +1921,14 @@ static void create_backup_label(const char* dirname, const char* startsysid, Tim securec_check_ss_c(len, "", ""); if (len >= (int)sizeof(buf)) { pg_log(PG_WARNING, _(" full backup label buffer too small\n")); - disconnect_and_exit(1); + return false; } /* description: move old file out of the way, if any. */ open_target_file("full_backup_label", true); /* BACKUP_LABEL_FILE */ write_target_range(buf, 0, len, len); close_target_file(); + + return true; } /* @@ -1648,7 +1961,7 @@ static XLogRecPtr read_full_backup_label( retVal = realpath(backup_file, Lrealpath); if (retVal == NULL && Lrealpath[0] == '\0') { pg_log(PG_WARNING, _("realpath failed : %s!\n"), strerror(errno)); - disconnect_and_exit(1); + return InvalidXLogRecPtr; } /* @@ -1659,7 +1972,7 @@ static XLogRecPtr read_full_backup_label( lfp = fopen(Lrealpath, "r"); if (lfp == NULL) { pg_log(PG_WARNING, _(" could not read file \"%s\"\n"), BACKUP_LABEL_FILE); - disconnect_and_exit(1); + return InvalidXLogRecPtr; } if (fscanf_s(lfp, @@ -1675,7 +1988,7 @@ static XLogRecPtr read_full_backup_label( pg_log(PG_WARNING, _(" invalid wal data in file \"%s\"\n"), BACKUP_LABEL_FILE); fclose(lfp); lfp = NULL; - disconnect_and_exit(1); + return InvalidXLogRecPtr; } xlogpos = (((uint64)hi) << 32) | lo; @@ -1683,7 +1996,7 @@ static XLogRecPtr read_full_backup_label( pg_log(PG_WARNING, _(" close file hanler failed\"%s\"\n"), BACKUP_LABEL_FILE); fclose(lfp); lfp = NULL; - disconnect_and_exit(1); + return InvalidXLogRecPtr; } fclose(lfp); @@ -1702,19 +2015,19 @@ static XLogRecPtr read_full_backup_label( retVal = realpath(backup_file, Lrealpath); if (retVal == NULL && Lrealpath[0] == '\0') { pg_log(PG_WARNING, _("realpath failed : %s!\n"), strerror(errno)); - disconnect_and_exit(1); + return InvalidXLogRecPtr; } lfp = fopen(Lrealpath, "r"); if (lfp == NULL) { pg_log(PG_WARNING, _(" could not read file \"%s\"\n"), FULL_BACKUP_LABEL_FILE); - disconnect_and_exit(1); + return InvalidXLogRecPtr; } if (fscanf_s(lfp, "START SYSIDENTIFER: %20s\n", sysid, sysid_len) != 1) { pg_log(PG_WARNING, _(" invalid sysidentifier data in file \"%s\"\n"), FULL_BACKUP_LABEL_FILE); fclose(lfp); lfp = NULL; - disconnect_and_exit(1); + return InvalidXLogRecPtr; } sysid[sysid_len - 1] = '\0'; @@ -1722,7 +2035,7 @@ static XLogRecPtr read_full_backup_label( pg_log(PG_WARNING, _(" invalid timeline data in file \"%s\"\n"), FULL_BACKUP_LABEL_FILE); fclose(lfp); lfp = NULL; - disconnect_and_exit(1); + return InvalidXLogRecPtr; } tline[tline_len - 1] = '\0'; @@ -1730,7 +2043,7 @@ static XLogRecPtr read_full_backup_label( pg_log(PG_WARNING, _(" close file hanler failed\"%s\"\n"), FULL_BACKUP_LABEL_FILE); fclose(lfp); lfp = NULL; - disconnect_and_exit(1); + return InvalidXLogRecPtr; } fclose(lfp); @@ -1739,25 +2052,9 @@ static XLogRecPtr read_full_backup_label( return xlogpos; } -/* - * backup only xlog from full backup start lsn and current lsn. - * after copy all there xlog to local directory,then startup database for redo. - * before copy xlog should lock cluster - */ -static void xlog_streamer_backup(const char* dirname) +void CheckBackupDir(const char* dirname) { - char xlogstart[MAXFNAMELEN] = {0}; - char xlogend[MAXFNAMELEN] = {0}; - bool ret = 0; - char xlog_location[MAXPGPATH] = {0}; - XLogRecPtr xlogpos; - char tline[MAXPGPATH] = {0}; - char sysid[MAXPGPATH] = {0}; - int nRet = 0; struct stat st; - - (void)pqsignal(SIGCHLD, BuildReaper); /* handle child termination */ - if (stat(dirname, &st) != 0) { pg_log(PG_WARNING, _("could not stat directory or file: %s\n"), strerror(errno)); } @@ -1770,6 +2067,26 @@ static void xlog_streamer_backup(const char* dirname) if (chmod(dirname, (mode_t)S_IRWXU)) { pg_log(PG_WARNING, _("could not set permissions on data directory \"%s\": %s\n"), dirname, strerror(errno)); } +} + +/* + * backup only xlog from full backup start lsn and current lsn. + * after copy all there xlog to local directory,then startup database for redo. + * before copy xlog should lock cluster + */ +static bool xlog_streamer_backup(const char* dirname) +{ + char xlogstart[MAXFNAMELEN] = {0}; + char xlogend[MAXFNAMELEN] = {0}; + bool ret = 0; + char xlog_location[MAXPGPATH] = {0}; + XLogRecPtr xlogpos; + char tline[MAXPGPATH] = {0}; + char sysid[MAXPGPATH] = {0}; + int nRet = 0; + + (void)pqsignal(SIGCHLD, BuildReaper); /* handle child termination */ + CheckBackupDir(dirname); CONCAT_BUILD_CONF_FILE(dirname); @@ -1779,7 +2096,8 @@ static void xlog_streamer_backup(const char* dirname) ret = CreateBuildtagFile(buildstart_file); if (ret == FALSE) { pg_log(PG_WARNING, _("could not create file %s.\n"), buildstart_file); - disconnect_and_exit(1); + DisconnectConnection(); + return false; } /* @@ -1793,6 +2111,12 @@ static void xlog_streamer_backup(const char* dirname) * Get the starting xlog position */ xlogpos = read_full_backup_label(dirname, sysid, MAXPGPATH, tline, MAXPGPATH); + if (xlogpos == InvalidXLogRecPtr) { + pg_log(PG_WARNING, _("get xlog postion failed.\n")); + DisconnectConnection(); + return false; + } + nRet = snprintf_s( xlogstart, sizeof(xlogstart), sizeof(xlogstart) - 1, "%X/%X", (uint32)(xlogpos >> 32), (uint32)xlogpos); securec_check_ss_c(nRet, "", ""); @@ -1805,7 +2129,8 @@ static void xlog_streamer_backup(const char* dirname) streamConn = check_and_conn(standby_connect_timeout, standby_recv_timeout); if (streamConn == NULL) { pg_log(PG_WARNING, _("could not connect to server(%s).\n"), dirname); - disconnect_and_exit(1); + DisconnectConnection(); + return false; } pg_log(PG_PROGRESS, _("connect to server, incremental build started.\n")); @@ -1817,7 +2142,12 @@ static void xlog_streamer_backup(const char* dirname) if (verbose) { pg_log(PG_WARNING, _("starting background WAL receiver\n")); } - StartLogStreamer(xlogstart, (uint32)atoi(tline), sysid, (const char*)xlog_location); + bool startSuccess = StartLogStreamer(xlogstart, (uint32)atoi(tline), sysid, (const char*)xlog_location); + if (!startSuccess) { + pg_log(PG_WARNING, _("start log streamer failed \n")); + DisconnectConnection(); + return false; + } } /* @@ -1841,26 +2171,31 @@ static void xlog_streamer_backup(const char* dirname) if ((unsigned int)write(bgpipe[1], xlogend, strlen(xlogend)) != strlen(xlogend)) { pg_log(PG_WARNING, _("could not send command to background pipe: %s\n"), strerror(errno)); - disconnect_and_exit(1); + DisconnectConnection(); + return false; } /* Just wait for the background process to exit */ r = waitpid(bgchild, &status, 0); if (r == -1) { pg_log(PG_WARNING, _("could not wait for child process: %s\n"), strerror(errno)); - disconnect_and_exit(1); + DisconnectConnection(); + return false; } if (r != bgchild) { pg_log(PG_WARNING, _("child %d died, expected %d\n"), r, (int)bgchild); - disconnect_and_exit(1); + DisconnectConnection(); + return false; } if (!WIFEXITED(status)) { pg_log(PG_WARNING, _("child process did not exit normally\n")); - disconnect_and_exit(1); + DisconnectConnection(); + return false; } if (WEXITSTATUS(status) != 0) { pg_log(PG_WARNING, _("child process exited with error %d\n"), WEXITSTATUS(status)); - disconnect_and_exit(1); + DisconnectConnection(); + return false; } /* Exited normally, we're happy! */ } @@ -1876,6 +2211,7 @@ static void xlog_streamer_backup(const char* dirname) * remove full backup label when incremental backup successful. */ remove_target_file(FULL_BACKUP_LABEL_FILE, false); + return true; } /* @@ -1940,7 +2276,7 @@ static void show_full_build_process(const char* errmg) * delete existing double write file if existed, recreate it and write one page of zero * @param target_dir data base root dir */ -static void backup_dw_file(const char* target_dir) +static bool backup_dw_file(const char* target_dir) { int rc; int fd = -1; @@ -1955,7 +2291,7 @@ static void backup_dw_file(const char* target_dir) if (realpath(dw_file_path, real_file_path) == NULL) { if (real_file_path[0] == '\0') { pg_log(PG_WARNING, _("could not get canonical path for file %s: %s\n"), dw_file_path, gs_strerror(errno)); - disconnect_and_exit(1); + return false; } } delete_target_file(real_file_path); @@ -1969,7 +2305,7 @@ static void backup_dw_file(const char* target_dir) if (realpath(dw_file_path, real_file_path) == NULL) { if (real_file_path[0] == '\0') { pg_log(PG_WARNING, _("could not get canonical path for file %s: %s\n"), dw_file_path, gs_strerror(errno)); - disconnect_and_exit(1); + return false; } } @@ -1978,14 +2314,14 @@ static void backup_dw_file(const char* target_dir) /* Create the dw build file. */ if ((fd = open(real_file_path, (DW_FILE_FLAG | O_CREAT), DW_FILE_PERM)) < 0) { pg_log(PG_WARNING, _("could not create file %s: %s\n"), real_file_path, gs_strerror(errno)); - disconnect_and_exit(1); + return false; } unaligned_buf = (char*)malloc(BLCKSZ + BLCKSZ); if (unaligned_buf == NULL) { pg_log(PG_WARNING, _("out of memory")); close(fd); - disconnect_and_exit(1); + return false; } buf = (char*)TYPEALIGN(BLCKSZ, unaligned_buf); @@ -1995,11 +2331,13 @@ static void backup_dw_file(const char* target_dir) if (write(fd, buf, BLCKSZ) != BLCKSZ) { pg_log(PG_WARNING, _("could not write data to file %s: %s\n"), real_file_path, gs_strerror(errno)); close(fd); - disconnect_and_exit(1); + return false; } free(unaligned_buf); close(fd); + + return true; } void get_xlog_location(char (&xlog_location)[MAXPGPATH]) @@ -2097,7 +2435,7 @@ static bool UpdatePaxosIndexFile(unsigned long long paxosIndex) return true; } -static void DeleteAlreadyDropedFile(const char* path, bool is_table_space) +static bool DeleteAlreadyDropedFile(const char* path, bool is_table_space) { char* fileName = NULL; char pathbuf[MAXPGPATH] = {0}; @@ -2115,7 +2453,7 @@ static void DeleteAlreadyDropedFile(const char* path, bool is_table_space) dir = opendir(path); if (dir == NULL) { pg_log(PG_ERROR, _("could not open directory : %s!\n"), path); - disconnect_and_exit(1); + return false; } while ((de = readdir(dir)) != NULL) { @@ -2128,7 +2466,7 @@ static void DeleteAlreadyDropedFile(const char* path, bool is_table_space) if (errno != ENOENT) { pg_log(PG_WARNING, _("could not lstat file or directory : %s!\n"), de->d_name); (void)closedir(dir); - disconnect_and_exit(1); + return false; } continue; } @@ -2143,7 +2481,7 @@ static void DeleteAlreadyDropedFile(const char* path, bool is_table_space) res = DeleteUnusedFile(path, SegNo, fileNode); if (res < 0) { (void)closedir(dir); - disconnect_and_exit(1); + return false; } } } @@ -2154,7 +2492,7 @@ static void DeleteAlreadyDropedFile(const char* path, bool is_table_space) res = DeleteUnusedFile(path, SegNo, fileNode); if (res < 0) { (void)closedir(dir); - disconnect_and_exit(1); + return false; } } } @@ -2162,6 +2500,8 @@ static void DeleteAlreadyDropedFile(const char* path, bool is_table_space) } } (void)closedir(dir); + + return true; } static int DeleteUnusedFile(const char* path, unsigned int SegNo, unsigned int fileNode) diff --git a/src/bin/pg_ctl/backup.h b/src/bin/pg_ctl/backup.h index 0ea4db616..75e929d01 100644 --- a/src/bin/pg_ctl/backup.h +++ b/src/bin/pg_ctl/backup.h @@ -11,16 +11,18 @@ extern int standby_message_timeout; extern char* conn_str; extern pid_t process_id; extern bool no_need_fsync; +extern bool need_copy_upgrade_file; extern char* basedir; extern int bgpipe[2]; extern pid_t bgchild; extern char* formatLogTime(); -void backup_main(const char* dir, uint32 term, bool isFromStandby); -void backup_incremental_xlog(char* dir); +bool backup_main(const char* dir, uint32 term, bool isFromStandby); +bool CopySecureFilesMain(char* dirname, uint32 term); +bool backup_incremental_xlog(char* dir); void get_xlog_location(char (&xlog_location)[MAXPGPATH]); bool CreateBuildtagFile(const char* fulltagname); -void StartLogStreamer( +bool StartLogStreamer( char* startpos, uint32 timeline, char* sysidentifier, const char* xloglocation, uint primaryTerm = 0); #endif /* BACKUP_H */ diff --git a/src/bin/pg_ctl/pg_build.cpp b/src/bin/pg_ctl/pg_build.cpp index 9ae0fbd78..c004a06d2 100755 --- a/src/bin/pg_ctl/pg_build.cpp +++ b/src/bin/pg_ctl/pg_build.cpp @@ -42,6 +42,16 @@ static const char* config_para_build[MAX_REPLNODE_NUM] = {"", "replconninfo5", "replconninfo6", "replconninfo7"}; +static const char* config_para_cross_cluster_build[MAX_REPLNODE_NUM] = { + "", + "cross_cluster_replconninfo1", + "cross_cluster_replconninfo2", + "cross_cluster_replconninfo3", + "cross_cluster_replconninfo4", + "cross_cluster_replconninfo5", + "cross_cluster_replconninfo6", + "cross_cluster_replconninfo7" +}; /* Node name */ char pgxcnodename[MAX_VALUE_LEN] = {0}; @@ -350,10 +360,8 @@ int GetLengthAndCheckReplConn(const char* ConnInfoList) * Description : * Notes : */ -ReplConnInfo* ParseReplConnInfo(const char* ConnInfoList, int* InfoLength) +bool ParseReplConnInfo(const char* ConnInfoList, int* InfoLength, ReplConnInfo* repl) { - ReplConnInfo* repl = NULL; - int repl_length = 0; char* iter = NULL; char* pNext = NULL; @@ -363,18 +371,22 @@ ReplConnInfo* ParseReplConnInfo(const char* ConnInfoList, int* InfoLength) int parsed = 0; int iplen = 0; char tmp_localhost[IP_LEN] = {0}; + char cascadeToken[IP_LEN] = {0}; + char crossRegionToken[IP_LEN] = {0}; int tmp_localport = 0; char tmp_remotehost[IP_LEN] = {0}; int tmp_remoteport = 0; + int cascadeLen = strlen("iscascade"); + int corssRegionLen = strlen("isCrossRegion"); errno_t rc = EOK; char* p = NULL; if (ConnInfoList == NULL) { - return NULL; + return false; } else { ReplStr = strdup(ConnInfoList); if (ReplStr == NULL) { - return NULL; + return false; } ptr = ReplStr; @@ -387,22 +399,16 @@ ReplConnInfo* ParseReplConnInfo(const char* ConnInfoList, int* InfoLength) if (*ptr == '\0') { free(ReplStr); ReplStr = NULL; - return NULL; + return false; } repl_length = GetLengthAndCheckReplConn(ReplStr); if (repl_length == 0) { free(ReplStr); ReplStr = NULL; - return NULL; + return false; } - repl = (ReplConnInfo*)malloc(sizeof(ReplConnInfo)); - if (repl == NULL) { - free(ReplStr); - ReplStr = NULL; - return NULL; - } rc = memset_s(repl, sizeof(ReplConnInfo), 0, sizeof(ReplConnInfo)); securec_check_c(rc, "", ""); @@ -497,6 +503,34 @@ ReplConnInfo* ParseReplConnInfo(const char* ConnInfoList, int* InfoLength) } tmp_remoteport = atoi(iter); + /* is cascade? */ + iter = strstr(token, "iscascade"); + if (iter != NULL) { + iter += cascadeLen; + while (*iter == ' ' || *iter == '=') { + iter++; + } + rc = strncpy_s(cascadeToken, IP_LEN, iter, strlen("true")); + securec_check_c(rc, "", ""); + if (strcmp(cascadeToken, "true") == 0) { + repl->isCascade = true; + } + } + + /* is cross region? */ + iter = strstr(token, "iscrossregion"); + if (iter != NULL) { + iter += corssRegionLen; + while (*iter == ' ' || *iter == '=') { + iter++; + } + rc = strncpy_s(crossRegionToken, IP_LEN, iter, strlen("true")); + securec_check_c(rc, "", ""); + if (strcmp(crossRegionToken, "true") == 0) { + repl->isCrossRegion = true; + } + } + /* copy the valus from tmp */ rc = strncpy_s(repl->localhost, IP_LEN, tmp_localhost, IP_LEN - 1); securec_check_c(rc, "", ""); @@ -519,7 +553,7 @@ ReplConnInfo* ParseReplConnInfo(const char* ConnInfoList, int* InfoLength) ReplStr = NULL; *InfoLength = repl_length; - return repl; + return true; } /* @@ -530,6 +564,7 @@ ReplConnInfo* ParseReplConnInfo(const char* ConnInfoList, int* InfoLength) void get_conninfo(const char* filename) { char** optlines; + const char **conninfo_para = NULL; int lines_index = 0; int optvalue_off; int optvalue_len; @@ -541,6 +576,17 @@ void get_conninfo(const char* filename) exit(1); } + if (IS_CROSS_CLUSTER_BUILD) { + conninfo_para = config_para_cross_cluster_build; + } else { + conninfo_para = config_para_build; + } + + /* cleaning global conninfo list */ + for (int i = 0; i < MAX_REPLNODE_NUM; i++) { + rc = memset_s(conninfo_global[i], MAX_VALUE_LEN, 0, MAX_VALUE_LEN); + securec_check_ss_c(rc, "", ""); + } /********************************************************** Try to read the config file ************************************************************/ @@ -559,7 +605,7 @@ void get_conninfo(const char* filename) /* read repconninfo[...] */ for (i = 1; i < MAX_REPLNODE_NUM; i++) { lines_index = find_gucoption((const char**)optlines, - (const char*)config_para_build[i], + (const char*)conninfo_para[i], NULL, NULL, &optvalue_off, @@ -772,7 +818,13 @@ static PGconn* check_and_get_primary_conn(const char* repl_conninfo, uint32 term /* 1. Connect server */ conn_get = PQconnectdb(repl_conninfo); - if ((conn_get == NULL) || PQstatus(conn_get) != CONNECTION_OK) { + if (conn_get == NULL) { + pg_log(PG_WARNING, _("build connection failed cause get connection is null.\n")); + disconnect_and_return_null(conn_get); + } + if (PQstatus(conn_get) != CONNECTION_OK) { + pg_log(PG_WARNING, _("build connection to %s failed cause %s.\n"), + (conn_get->pghost != NULL) ? conn_get->pghost : conn_get->pghostaddr, PQerrorMessage(conn_get)); disconnect_and_return_null(conn_get); } @@ -782,9 +834,11 @@ static PGconn* check_and_get_primary_conn(const char* repl_conninfo, uint32 term } /* 3. IDENTIFY_MODE */ - remote_mode = get_remote_mode(conn_get); - if (remote_mode != NORMAL_MODE && remote_mode != PRIMARY_MODE) { - disconnect_and_return_null(conn_get); + if (!need_copy_upgrade_file) { + remote_mode = get_remote_mode(conn_get); + if (remote_mode != NORMAL_MODE && remote_mode != PRIMARY_MODE) { + disconnect_and_return_null(conn_get); + } } /* here we get the right primary connect */ @@ -799,38 +853,62 @@ PGconn* check_and_conn(int conn_timeout, int recv_timeout, uint32 term) int repl_arr_length; int i = 0; int parse_failed_num = 0; + ReplConnInfo repl_conn_info; for (i = 1; i < MAX_REPLNODE_NUM; i++) { - ReplConnInfo* repl_conn_info = ParseReplConnInfo(conninfo_global[i - 1], &repl_arr_length); - if (repl_conn_info == NULL) { + bool parseOk = ParseReplConnInfo(conninfo_global[i - 1], &repl_arr_length, &repl_conn_info); + if (!parseOk) { parse_failed_num++; continue; } tnRet = memset_s(repl_conninfo_str, MAXPGPATH, 0, MAXPGPATH); securec_check_ss_c(tnRet, "", ""); - - tnRet = snprintf_s(repl_conninfo_str, - sizeof(repl_conninfo_str), - sizeof(repl_conninfo_str) - 1, - "localhost=%s localport=%d host=%s port=%d " - "dbname=replication replication=true " - "fallback_application_name=gs_ctl " - "connect_timeout=%d rw_timeout=%d " - "options='-c remotetype=application'", - repl_conn_info->localhost, - repl_conn_info->localport, - repl_conn_info->remotehost, - repl_conn_info->remoteport, - conn_timeout, - recv_timeout); + if (register_username != NULL && register_password != NULL) { + if (*register_username == '.') { + register_username += 2; + } + tnRet = snprintf_s(repl_conninfo_str, + sizeof(repl_conninfo_str), + sizeof(repl_conninfo_str) - 1, + "localhost=%s localport=%d host=%s port=%d " + "dbname=postgres replication=hadr_main_standby " + "fallback_application_name=gs_ctl " + "connect_timeout=%d rw_timeout=%d " + "options='-c remotetype=application' user=%s password=%s", + repl_conn_info.localhost, + repl_conn_info.localport, + repl_conn_info.remotehost, + repl_conn_info.remoteport, + conn_timeout, + recv_timeout, register_username, register_password); + } else { + tnRet = snprintf_s(repl_conninfo_str, + sizeof(repl_conninfo_str), + sizeof(repl_conninfo_str) - 1, + "localhost=%s localport=%d host=%s port=%d " + "dbname=replication replication=true " + "fallback_application_name=gs_ctl " + "connect_timeout=%d rw_timeout=%d " + "options='-c remotetype=application'", + repl_conn_info.localhost, + repl_conn_info.localport, + repl_conn_info.remotehost, + repl_conn_info.remoteport, + conn_timeout, + recv_timeout); + } securec_check_ss_c(tnRet, "", ""); - - free(repl_conn_info); - repl_conn_info = NULL; con_get = check_and_get_primary_conn(repl_conninfo_str, term); - if (con_get != NULL) + tnRet = memset_s(repl_conninfo_str, MAXPGPATH, 0, MAXPGPATH); + securec_check_ss_c(tnRet, "", ""); + if (con_get != NULL) { + pg_log(PG_WARNING, "build try host(%s) port(%d) success\n", repl_conn_info.remotehost, + repl_conn_info.remoteport); break; + } + pg_log(PG_WARNING, "build try host(%s) port(%d) failed\n", repl_conn_info.remotehost, + repl_conn_info.remoteport); } if (parse_failed_num == MAX_REPLNODE_NUM - 1) { @@ -838,7 +916,7 @@ PGconn* check_and_conn(int conn_timeout, int recv_timeout, uint32 term) if (con_get != NULL) PQfinish(con_get); - exit(1); + return NULL; } return con_get; @@ -854,10 +932,11 @@ PGconn* check_and_conn_for_standby(int conn_timeout, int recv_timeout, uint32 te int repl_arr_length; int i = 0; int parse_failed_num = 0; + ReplConnInfo repl_conn_info; for (i = 1; i < MAX_REPLNODE_NUM; i++) { - ReplConnInfo* repl_conn_info = ParseReplConnInfo(conninfo_global[i - 1], &repl_arr_length); - if (repl_conn_info == NULL) { + bool parseOk = ParseReplConnInfo(conninfo_global[i - 1], &repl_arr_length, &repl_conn_info); + if (!parseOk || repl_conn_info.isCrossRegion) { parse_failed_num++; continue; } @@ -873,32 +952,37 @@ PGconn* check_and_conn_for_standby(int conn_timeout, int recv_timeout, uint32 te "fallback_application_name=gs_ctl " "connect_timeout=%d rw_timeout=%d " "options='-c remotetype=application'", - repl_conn_info->localhost, - repl_conn_info->localport, - repl_conn_info->remotehost, - repl_conn_info->remoteport, + repl_conn_info.localhost, + repl_conn_info.localport, + repl_conn_info.remotehost, + repl_conn_info.remoteport, conn_timeout, recv_timeout); securec_check_ss_c(tnRet, "", ""); - free(repl_conn_info); - repl_conn_info = NULL; + con_get = PQconnectdb(repl_conninfo_str); if (con_get != NULL && PQstatus(con_get) == CONNECTION_OK && check_remote_version(con_get, term)) { remote_mode = get_remote_mode(con_get); - if (remote_mode == STANDBY_MODE && (g_replconn_idx == -1 || i == g_replconn_idx)) { + if ((remote_mode == STANDBY_MODE || remote_mode == MAIN_STANDBY_MODE) && + (g_replconn_idx == -1 || i == g_replconn_idx)) { g_replconn_idx = i; + pg_log(PG_WARNING, "standby build try host(%s) port(%d) success\n", repl_conn_info.remotehost, + repl_conn_info.remoteport); break; } } else { + if (con_get != NULL) { + PQfinish(con_get); + con_get = NULL; + } if (conn_str != NULL) { pg_log(PG_WARNING, "The given address can not been access.\n"); - if (con_get != NULL) { - PQfinish(con_get); - } exit(1); } } + pg_log(PG_WARNING, "standby build try host(%s) port(%d) failed\n", repl_conn_info.remotehost, + repl_conn_info.remoteport); } if (parse_failed_num == MAX_REPLNODE_NUM - 1) { @@ -1193,15 +1277,18 @@ static void DeleteSubDataDir(const char* dirname) strcmp(de->d_name, "gs_gazelle.conf") == 0 || (g_is_obsmode && strcmp(de->d_name, "base.tar.gz") == 0) || (g_is_obsmode && strcmp(de->d_name, "pg_hba.conf") == 0)|| - (g_is_obsmode && strcmp(de->d_name, "pg_ident.conf") == 0)) + (g_is_obsmode && strcmp(de->d_name, "pg_ident.conf") == 0) || + (IS_CROSS_CLUSTER_BUILD && strcmp(de->d_name, "pg_hba.conf") == 0) || + strcmp(de->d_name, "pg_hba.conf.old") == 0) continue; /* Skip paxos index files for building process will write them */ if (enableDCF && ((strcmp(de->d_name, "paxosindex") == 0) || (strcmp(de->d_name, "paxosindex.backup") == 0))) continue; - /* build from cn reserve this file,om will modify it */ - if ((conn_str != NULL) && 0 == strncmp(de->d_name, "pg_hba.conf", strlen("pg_hba.conf"))) + /* build from cn reserve this file,om will modify it. */ + if ((conn_str != NULL) && strncmp(de->d_name, "pg_hba.conf", strlen("pg_hba.conf")) == 0) { continue; + } if (unlink(fullpath)) { pg_log(PG_WARNING, _("failed to remove file %s.\n"), fullpath); (void)closedir(dir); @@ -1388,9 +1475,15 @@ int get_replconn_number(const char* filename) int optvalue_len = 0; int lines_index = 0; int i; - for (i = 1; i < MAX_REPLNODE_NUM; i++) { + for (i = 1; i < DOUBLE_MAX_REPLNODE_NUM; i++) { + const char *para = NULL; + if (i > MAX_REPLNODE_NUM) { + para = config_para_cross_cluster_build[i - MAX_REPLNODE_NUM]; + } else if (i < MAX_REPLNODE_NUM) { + para = config_para_build[i]; + } lines_index = find_gucoption( - (const char**)optlines, (const char*)config_para_build[i], NULL, NULL, &optvalue_off, &optvalue_len); + (const char**)optlines, (const char*)para, NULL, NULL, &optvalue_off, &optvalue_len); if (lines_index != INVALID_LINES_IDX) { repl_num++; @@ -1413,150 +1506,6 @@ int get_replconn_number(const char* filename) return repl_num; } -/* - * Brief : @@GaussDB@@ - * Description : to connect the server,and return conn if success - * Notes : - */ -static PGconn* get_conn(const char* repl_conninfo) -{ - PGconn* conn_get = NULL; - PGresult* res = NULL; - int primary_sversion = 0; - int standby_sversion = 0; - char* primary_pversion = NULL; - char* standby_pversion = NULL; - ServerMode primary_mode; - - /* to connect server */ - conn_get = PQconnectdb(repl_conninfo); - if ((!conn_get) || (PQstatus(conn_get) != CONNECTION_OK)) { - disconnect_and_return_null(conn_get); - } - - /* IDENTIFY_VERSION */ - res = PQexec(conn_get, "IDENTIFY_VERSION"); - if (PQresultStatus(res) != PGRES_TUPLES_OK) { - PQclear(res); - disconnect_and_return_null(conn_get); - } - if (PQnfields(res) != 3 || PQntuples(res) != 1) { - PQclear(res); - disconnect_and_return_null(conn_get); - } - primary_sversion = pg_atoi((const char*)PQgetvalue(res, 0, 0), 4, 0); - standby_sversion = PG_VERSION_NUM; - primary_pversion = PQgetvalue(res, 0, 1); - standby_pversion = strdup(PG_PROTOCOL_VERSION); - if (standby_pversion == NULL) { - PQclear(res); - disconnect_and_return_null(conn_get); - } - - if (primary_sversion != standby_sversion || - strncmp(primary_pversion, standby_pversion, strlen(PG_PROTOCOL_VERSION)) != 0) { - PQclear(res); - - if (primary_sversion != standby_sversion) { - pg_log(PG_PRINT, - "%s: database system version is different between the primary and standby " - "The primary's system version is %d, the standby's system version is %d.\n", - progname, - primary_sversion, - standby_sversion); - free(standby_pversion); - standby_pversion = NULL; - disconnect_and_return_null(conn_get); - } else { - pg_log(PG_PRINT, - "%s: the primary protocal version %s is not the same as the standby protocal version %s.\n", - progname, - primary_pversion, - standby_pversion); - free(standby_pversion); - standby_pversion = NULL; - disconnect_and_return_null(conn_get); - } - } - PQclear(res); - - /* free immediately once not used. Can't be NULL. */ - free(standby_pversion); - standby_pversion = NULL; - /* IDENTIFY_MODE */ - res = PQexec(conn_get, "IDENTIFY_MODE"); - if (PQresultStatus(res) != PGRES_TUPLES_OK) { - PQclear(res); - disconnect_and_return_null(conn_get); - } - if (PQnfields(res) != 1 || PQntuples(res) != 1) { - PQclear(res); - disconnect_and_return_null(conn_get); - } - primary_mode = (ServerMode)pg_atoi((const char*)PQgetvalue(res, 0, 0), 4, 0); - if (!((primary_mode == PRIMARY_MODE && cascade_standby == false) || - (primary_mode == STANDBY_MODE && cascade_standby == true) || (primary_mode == NORMAL_MODE))) { - PQclear(res); - disconnect_and_return_null(conn_get); - } - PQclear(res); - return conn_get; -} - -bool check_conn(int conn_timeout, int recv_timeout) -{ - - ReplConnInfo* repl_conn_info = NULL; - - PGconn* con_get = NULL; - char repl_conninfo[MAXPGPATH]; - int repl_array_length = 0; - int i = 0; - bool ret = false; - - /* parse conninfo */ - repl_conn_info = ParseReplConnInfo(conninfo_global[0], &repl_array_length); - if (repl_conn_info == NULL) { - pg_log(PG_PRINT, "%s: invalid value for parameter \"replconninfo1\" in postgresql.conf.\n", progname); - return ret; - } - - /* check if we can get the connection. */ - for (i = 0; i < repl_array_length; i++) { - if (repl_conn_info != NULL) { - int nRet = snprintf_s(repl_conninfo, - sizeof(repl_conninfo), - sizeof(repl_conninfo) - 1, - "localhost=%s localport=%d host=%s port=%d " - "dbname=replication replication=true " - "fallback_application_name=gs_ctl " - "connect_timeout=%d rw_timeout=%d ", - repl_conn_info[i].localhost, - repl_conn_info[i].localport, - repl_conn_info[i].remotehost, - repl_conn_info[i].remoteport, - conn_timeout, - recv_timeout); - securec_check_ss_c(nRet, "", ""); - - con_get = get_conn(repl_conninfo); - if (con_get != NULL) { - PQfinish(con_get); - con_get = NULL; - ret = true; - break; - } - } - } - - if (repl_conn_info != NULL) { - free(repl_conn_info); - repl_conn_info = NULL; - } - - return ret; -} - void get_slot_name(char* slotname, size_t len) { int errorno = memset_s(slotname, len, 0, len); @@ -1573,19 +1522,17 @@ void get_slot_name(char* slotname, size_t len) slotname, len, len - 1, "%s", pgxcnodename); securec_check_ss_c(errorno, "", ""); } else if(g_replconn_idx != -1) { - ReplConnInfo* repl_conn_info = NULL; + ReplConnInfo repl_conn_info; int repl_arr_length = 0; - repl_conn_info = ParseReplConnInfo(conninfo_global[g_replconn_idx], &repl_arr_length); - if (repl_conn_info != NULL) { - errorno = snprintf_s(slotname, len, len - 1, "%s_%s_%d", pgxcnodename, repl_conn_info->localhost, - repl_conn_info->localport); + bool parseOk = ParseReplConnInfo(conninfo_global[g_replconn_idx], &repl_arr_length, &repl_conn_info); + if (parseOk) { + errorno = snprintf_s(slotname, len, len - 1, "%s_%s_%d", pgxcnodename, repl_conn_info.localhost, + repl_conn_info.localport); securec_check_ss_c(errorno, "", ""); - free(repl_conn_info); - repl_conn_info = NULL; } } } - return; + } /* diff --git a/src/bin/pg_ctl/pg_build.h b/src/bin/pg_ctl/pg_build.h index 4391d0e00..959645116 100755 --- a/src/bin/pg_ctl/pg_build.h +++ b/src/bin/pg_ctl/pg_build.h @@ -53,9 +53,8 @@ extern PGconn* check_and_conn_for_standby(int conn_timeout, int recv_timeout, ui int GetLengthAndCheckReplConn(const char* ConnInfoList); extern int replconn_num; -extern bool check_conn(int conn_timeout, int recv_timeout); extern int get_replconn_number(const char* filename); -extern ReplConnInfo* ParseReplConnInfo(const char* ConnInfoList, int* InfoLength); +extern bool ParseReplConnInfo(const char* ConnInfoList, int* InfoLength, ReplConnInfo* repl); char** readfile(const char* path); extern char* pg_strdup(const char* in); extern void pg_free(void* ptr); diff --git a/src/bin/pg_ctl/pg_ctl.cpp b/src/bin/pg_ctl/pg_ctl.cpp index 52a07cd91..0e17bc88d 100755 --- a/src/bin/pg_ctl/pg_ctl.cpp +++ b/src/bin/pg_ctl/pg_ctl.cpp @@ -51,6 +51,7 @@ #include "hotpatch/hotpatch_client.h" #include "hotpatch/hotpatch.h" #include "pg_rewind.h" +#include "fetch.h" #include "common/fe_memutils.h" #include "logging.h" @@ -108,7 +109,8 @@ typedef enum { ADD_MEMBER_COMMAND, REMOVE_MEMBER_COMMAND, CHANGE_ROLE_COMMAND, - MINORITY_START_COMMAND + MINORITY_START_COMMAND, + COPY_COMMAND } CtlCommand; typedef enum { @@ -136,13 +138,14 @@ typedef enum { #define MAX_DISPLAY_STRING_LEN 1024 #define PG_CTL_LOCKFILE_SIZE 1024 #define FORMATTED_TS_LEN 128 +static const int MAX_STOP_BARRIER_LEN = MAX_BARRIER_ID_LENGTH + 3; static bool do_wait = false; static bool wait_set = false; static int wait_seconds = DEFAULT_WAIT; static bool silent_mode = false; static ShutdownMode shutdown_mode = FAST_MODE; -static BuildMode build_mode = AUTO_BUILD; /* default */ +BuildMode build_mode = AUTO_BUILD; /* default */ static char* stop_mode = "fast"; static DemoteMode switch_mode = FastDemote; /* default */ static int sig = SIGTERM; /* default */ @@ -151,6 +154,7 @@ char* pg_data = NULL; static char* pg_config = NULL; static char* pgdata_opt = NULL; static char* post_opts = NULL; +static char* xlog_overwrite_opt = NULL; const char* progname = "gs_ctl"; static char* log_file = NULL; static char* key_cn = NULL; @@ -162,7 +166,8 @@ static char* register_servicename = "gaussdb"; static char g_hotpatch_action[g_max_length_act] = {0}; static char g_hotpatch_name[g_max_length_path] = {0}; static bool clear_backup_dir = false; - +static char barrier_id[MAX_STOP_BARRIER_LEN] = {0}; +static char* stop_barrier = NULL; static char* argv0 = NULL; static bool allow_core_files = false; static time_t start_time; @@ -208,10 +213,12 @@ static char new_node_ip[IP_LEN] = {0}; static unsigned int new_node_id = 0; static bool g_dcfEnabled = false; bool no_need_fsync = false; +bool need_copy_upgrade_file = false; pid_t process_id = 0; const int g_length_stop_char = 2; const int g_length_suffix = 3; +const static int INC_BUILD_RETRY_TIMES = 3; bool g_is_obsmode = false; @@ -319,11 +326,12 @@ static PGconn* get_connectionex(void); static ServerMode get_runmode(void); static void freefile(char** lines); static char* get_localrole_string(ServerMode mode); -static void do_actual_build(uint32 term = 0); -static void do_incremental_build(uint32 term = 0); -static void do_incremental_build_xlog(); +static bool do_actual_build(uint32 term = 0); +static bool do_incremental_build(uint32 term = 0); +static bool do_incremental_build_xlog(); static void do_build(uint32 term = 0); static void do_restore(void); +static void do_overwrite(void); static void do_full_restore(void); static void kill_proton_force(void); static void SigAlarmHandler(int arg); @@ -335,6 +343,7 @@ static char* get_string_by_sync_mode(bool syncmode); static void free_ctl(); extern int GetLengthAndCheckReplConn(const char* ConnInfoList); extern BuildErrorCode gs_increment_build(const char* pgdata, const char* connstr, char* sysidentifier, uint32 timeline, uint32 term); +const char *BuildModeToString(BuildMode mode); void check_input_for_security(char* input_env_value) { @@ -723,6 +732,8 @@ static ServerMode get_runmode(void) return STANDBY_MODE; if (!strncmp(run_mode, "Cascade Standby", MAXRUNMODE)) return CASCADE_STANDBY_MODE; + if (!strncmp(run_mode, "Main Standby", MAXRUNMODE)) + return STANDBY_MODE; if (!strncmp(run_mode, "Pending", MAXRUNMODE)) return PENDING_MODE; if (!strncmp(run_mode, "Unknown", MAXRUNMODE)) @@ -840,13 +851,14 @@ static pgpid_t start_postmaster(void) ret = snprintf_s(cmd, MAXPGPATH, MAXPGPATH - 1, - "exec \"%s\" -u %u %s %s %s %s < \"%s\" >> \"%s\" 2>&1", + "exec \"%s\" -u %u %s %s %s %s %s < \"%s\" >> \"%s\" 2>&1", exec_path, (uint32)undocumented_version, pgxcCommand, pgdata_opt, post_opts, pgha_opt ? pgha_opt : "", + stop_barrier ? stop_barrier : "", DEVNULL, log_file); securec_check_ss_c(ret, "\0", "\0"); @@ -854,12 +866,13 @@ static pgpid_t start_postmaster(void) ret = snprintf_s(cmd, MAXPGPATH, MAXPGPATH - 1, - "exec \"%s\" %s %s %s %s < \"%s\" >> \"%s\" 2>&1", + "exec \"%s\" %s %s %s %s %s < \"%s\" >> \"%s\" 2>&1", exec_path, pgxcCommand, pgdata_opt, post_opts, pgha_opt ? pgha_opt : "", + stop_barrier ? stop_barrier : "", DEVNULL, log_file); securec_check_ss_c(ret, "\0", "\0"); @@ -884,25 +897,27 @@ static pgpid_t start_postmaster(void) ret = snprintf_s(cmd, MAXPGPATH, MAXPGPATH - 1, - "exec \"%s\" -u %u %s %s %s %s < \"%s\" 2>&1", + "exec \"%s\" -u %u %s %s %s %s %s < \"%s\" 2>&1", exec_path, (uint32)undocumented_version, pgxcCommand, pgdata_opt, post_opts, pgha_opt ? pgha_opt : "", + stop_barrier ? stop_barrier : "", DEVNULL); securec_check_ss_c(ret, "\0", "\0"); } else { ret = snprintf_s(cmd, MAXPGPATH, MAXPGPATH - 1, - "exec \"%s\" %s %s %s %s < \"%s\" 2>&1", + "exec \"%s\" %s %s %s %s %s < \"%s\" 2>&1", exec_path, pgxcCommand, pgdata_opt, post_opts, pgha_opt ? pgha_opt : "", + stop_barrier ? stop_barrier : "", DEVNULL); securec_check_ss_c(ret, "\0", "\0"); } @@ -3515,7 +3530,7 @@ static void do_help(void) printf(_(" %s restart [-w] [-t SECS] [-D DATADIR] [-s] [-m SHUTDOWN-MODE]\n" " [-o \"OPTIONS\"]\n"), progname); - printf(_(" %s build [-D DATADIR] [-b MODE] [-r SECS] [-q] [-M SERVERMODE]\n"), progname); + printf(_(" %s build [-D DATADIR] [-b MODE] [-r SECS] [-C CONNECTOR] [-q] [-M SERVERMODE]\n"), progname); #endif printf(_(" %s stop [-W] [-t SECS] [-D DATADIR] [-s] [-m SHUTDOWN-MODE]\n"), progname); @@ -3536,6 +3551,7 @@ static void do_help(void) printf(_(" %s unregister [-N SERVICENAME]\n"), progname); #endif (void)printf(_(" %s querybuild [-D DATADIR]\n"), progname); + printf(_(" %s copy [-D DATADIR] [-Q COPYMODE]\n"), progname); #if defined(ENABLE_MULTIPLE_NODES) || defined(ENABLE_PRIVATEGAUSS) (void)printf(_(" %s hotpatch [-D DATADIR] [-a ACTION] [-n NAME]\n"), progname); #endif @@ -3545,7 +3561,8 @@ static void do_help(void) printf(_("\nCommon options:\n")); printf(_(" -b, --mode=MODE the mode of building the datanode.MODE can be \"full\", \"incremental\", " - "\"auto\"\n")); + "\"auto\", \"standby_full\", \"copy_secure_files\", \"copy_upgrade_file\", \"cross_cluster_full\", " + "\"cross_cluster_incremental\", \"cross_cluster_standby_full\"\n")); printf(_(" -D, --pgdata=DATADIR location of the database storage area\n")); printf(_(" -s, --silent only print errors, no informational messages\n")); printf(_(" -t, --timeout=SECS seconds to wait when using -w option\n")); @@ -3566,10 +3583,11 @@ static void do_help(void) printf(_(" -k, --keycn=KEYCN which cn used to restore\n")); printf(_(" -I, --taskid=TASKID obs build task result file in obs\n")); printf(_(" -E, --dbport=DBPORT database port\n")); + printf(_(" -X, --barrierid=BARRIERID recovery target for standby\n")); #else printf(_(" -Z NODE-TYPE can be \"single_node\"\n")); #endif - printf(_(" -?, --help show this help, then exit\n")); + printf(_(" -?, -h, --help show this help, then exit\n")); printf(_("(The default is to wait for shutdown, start and restart.)\n\n")); printf(_("If the -D option is omitted, the environment variable PGDATA is used.\n")); @@ -3587,6 +3605,9 @@ static void do_help(void) printf(_(" -m, --mode=MODE MODE can be \"fast\" or \"immediate\"\n")); printf(_("\nOptions for restore:\n")); printf(_(" --remove-backup Remove the pg_rewind_bak dir after restore with \"restore\" command\n")); + printf(_("\nOptions for xlog copy:\n")); + printf(_( + " -Q, --mode=MODE MODE can be \"copy_from_local\", \"force_copy_from_local\", \"copy_from_share\"\n")); #if defined(ENABLE_MULTIPLE_NODES) || defined(ENABLE_PRIVATEGAUSS) printf(_("\nOptions for hotpatch:\n")); @@ -3632,7 +3653,9 @@ static void do_help(void) #endif printf(_("\nBuild connection option:\n")); printf(_(" -r, --recvtimeout=INTERVAL time that receiver waits for communication from server (in seconds)\n")); +#ifdef ENABLE_MULTIPLE_NODES printf(_(" -C, connector CN/DN connect to CN for build\n")); +#endif #if ((defined(ENABLE_MULTIPLE_NODES)) || (defined(ENABLE_PRIVATEGAUSS))) printf("\nReport bugs to GaussDB support.\n"); @@ -3901,7 +3924,8 @@ static void do_build_stop(pgpid_t pid) } do_wait = true; - if (build_mode == FULL_BUILD || build_mode == STANDBY_FULL_BUILD) { + if (build_mode == FULL_BUILD || build_mode == CROSS_CLUSTER_FULL_BUILD || + build_mode == STANDBY_FULL_BUILD || build_mode == CROSS_CLUSTER_STANDBY_FULL_BUILD) { shutdown_mode = IMMEDIATE_MODE; sig = SIGQUIT; do_stop(true); @@ -3954,6 +3978,111 @@ static void createRewindFile(char* prefixPath) fd = NULL; } +static void BackupHbaConf() +{ + char path[MAXPGPATH]; + char newpath[MAXPGPATH]; + struct stat st; + int ret = EOK; + ret = snprintf_s(path, MAXPGPATH, MAXPGPATH - 1, "%s/pg_hba.conf", pg_data); + securec_check_ss_c(ret, "\0", "\0"); + ret = snprintf_s(newpath, MAXPGPATH, MAXPGPATH - 1, "%s/pg_hba.conf.old", pg_data); + securec_check_ss_c(ret, "\0", "\0"); + + if (build_mode == AUTO_BUILD || build_mode == FULL_BUILD || build_mode == INC_BUILD || + build_mode == STANDBY_FULL_BUILD) { + if (stat(path, &st) == 0 && stat(newpath, &st) != 0) { + copy_file(path, newpath); + } + } +} + +void ResetBuildInfo() +{ + increment_return_code = BUILD_SUCCESS; + if (datadir_target != NULL) { + pg_free(datadir_target); + datadir_target = NULL; + } + + if (connstr_source != NULL) { + pg_free(connstr_source); + connstr_source = NULL; + } + replication_type = RT_WITH_DUMMY_STANDBY; +} + +static bool DoIncBuild(uint32 term) +{ + bool buildSuccess = false; + for (int i = 0; i < INC_BUILD_RETRY_TIMES; ++i) { + if (conn_str == NULL) { + buildSuccess = do_incremental_build(term); + } else { + buildSuccess = do_incremental_build_xlog(); + } + if (buildSuccess) { + break; + } + ResetBuildInfo(); + } + + return buildSuccess; +} + +static bool DoAutoBuild(uint32 term) +{ + bool buildSuccess = DoIncBuild(term); + if (!buildSuccess) { + pg_log(PG_WARNING, _("inc build failed, change to full build.\n")); + buildSuccess = do_actual_build(term); + } + return buildSuccess; +} + +static bool DoStandbyBuild(uint32 term) +{ + bool buildSuccess = false; + pg_log(PG_WARNING, "%s: change build mode to CROSS_CLUSTER_INC_BUILD.\n", progname); + build_mode = CROSS_CLUSTER_INC_BUILD; + for (int i = 0; i < INC_BUILD_RETRY_TIMES; ++i) { + buildSuccess = do_incremental_build(term); + if (buildSuccess) { + break; + } + ResetBuildInfo(); + } + + if (!buildSuccess) { + pg_log(PG_WARNING, "%s:cross inc build failed, change build mode to standby full build.\n", progname); + build_mode = STANDBY_FULL_BUILD; + buildSuccess = do_actual_build(term); + if (!buildSuccess) { + pg_log(PG_WARNING, "%s:standby full build failed, change build mode to cross full build.\n", progname); + build_mode = CROSS_CLUSTER_FULL_BUILD; + buildSuccess = do_actual_build(term); + } + if (!buildSuccess) { + pg_log(PG_WARNING, + "%s:standby full build failed, change build mode to cross standby full build.\n", progname); + build_mode = CROSS_CLUSTER_STANDBY_FULL_BUILD; + buildSuccess = do_actual_build(term); + } + } + return buildSuccess; +} + +static bool DoCopySecureFileBuild(uint32 term) +{ + bool buildSuccess = false; + buildSuccess = CopySecureFilesMain(pg_data, term); + if (!buildSuccess) { + pg_log(PG_WARNING, _("%s failed(%s).\n"), BuildModeToString(build_mode), pg_data); + } + pg_log(PG_WARNING, _("%s build completed(%s).\n"), BuildModeToString(build_mode), pg_data); + return buildSuccess; +} + static void do_build(uint32 term) { /* Prevent incremental build in DCF mode */ @@ -3971,31 +4100,38 @@ static void do_build(uint32 term) pg_log(PG_WARNING, "%s: Invalid coordinator connector: %s.\n", progname, conn_str); exit(1); } - if (pid > 0) { + if (pid > 0 && build_mode != COPY_SECURE_FILES_BUILD) { do_build_stop(pid); - } else { + } else if (pid <= 0 && build_mode != COPY_SECURE_FILES_BUILD) { kill_proton_force(); } - /* Standby DN incremental build from Primary DN */ - if (((build_mode == INC_BUILD) || (build_mode == AUTO_BUILD)) && (conn_str == NULL)) { - createRewindFile(pg_data); - do_incremental_build(term); + createRewindFile(pg_data); + bool buildSuccess = false; + BackupHbaConf(); + /* Standby DN auto build */ + if ((build_mode == AUTO_BUILD)) { + buildSuccess = DoAutoBuild(term); } /* Standby DN full build from Primary DN or CN/DN full build from CN */ - else if (build_mode == FULL_BUILD) { - createRewindFile(pg_data); - do_actual_build(term); + else if ((build_mode == FULL_BUILD) || (build_mode == CROSS_CLUSTER_FULL_BUILD)) { + buildSuccess = do_actual_build(term); } - /* CN/DN incremental build from CN */ - else if (build_mode == INC_BUILD && conn_str != NULL) { - createRewindFile(pg_data); - do_incremental_build_xlog(); + /* CN/DN incremental build */ + else if (((build_mode == INC_BUILD) || (build_mode == CROSS_CLUSTER_INC_BUILD))) { + buildSuccess = DoIncBuild(term); } /* standby DN full build from standby DN */ - else if (build_mode == STANDBY_FULL_BUILD) { - createRewindFile(pg_data); - do_actual_build(term); + else if (build_mode == STANDBY_FULL_BUILD || build_mode == CROSS_CLUSTER_STANDBY_FULL_BUILD) { + buildSuccess = DoStandbyBuild(term); + } + /* disaster cluster copy secure file from remote */ + else if (build_mode == COPY_SECURE_FILES_BUILD) { + buildSuccess = DoCopySecureFileBuild(term); + } + + if (!buildSuccess) { + exit(1); } } @@ -4015,6 +4151,27 @@ static void do_restore(void) return; } +static void do_xlog_copy(void) +{ + pgpid_t pid = get_pgpid(); + if (pid != 0 && postmaster_is_alive((pid_t)pid) +#ifndef WIN32 + && IsMyPostmasterPid((pid_t)pid, pg_config) +#endif + ) { + pg_log(PG_WARNING, _("terminating xlog copy process due to gaussdb is still alive")); + return; + } + + if (xlog_overwrite_opt != NULL) { + do_overwrite(); + } else { + pg_log(PG_WARNING, _("no copy mode specified.\n")); + } + + return; +} + static void read_pgxc_node_name(void) { char config_file[MAXPGPATH] = {0}; @@ -4158,7 +4315,12 @@ static void do_full_backup(uint32 term) "select * from gs_upload_obs_file('%s', 'base.tar.gz', '%s/base.tar.gz')", slotname, pgxc_node_name); securec_check_ss_c(ret, "\0", "\0"); - backup_main(pg_data, term, false); + bool buildSuccess = backup_main(pg_data, term, false); + if (!buildSuccess) { + pg_log(PG_WARNING, _("build failed \n")); + close_connection(); + exit(1); + } if (ExecuteCmd(tar_cmd, timeOut)) { pg_log(PG_WARNING, _("execute command [%s] failed \n"), tar_cmd); @@ -4357,7 +4519,8 @@ static void do_full_restore(void) static void CheckBuildParameter() { if ((pgha_str != NULL) && (strncmp(pgha_str, "standby", strlen("standby")) != 0) && - (strncmp(pgha_str, "cascade_standby", strlen("cascade_standby")) != 0)) { + (strncmp(pgha_str, "cascade_standby", strlen("cascade_standby")) != 0) && + (strncmp(pgha_str, "hadr_main_standby", strlen("hadr_main_standby")) != 0)) { pg_log(PG_WARNING, _(" the parameter of build is not recognized\n")); exit(1); } @@ -4369,7 +4532,7 @@ static void CheckBuildParameter() build instead. * INC_BUILD: do gs_rewind only. */ -static void do_incremental_build(uint32 term) +static bool do_incremental_build(uint32 term) { errno_t tnRet = 0; BuildErrorCode status = BUILD_SUCCESS; @@ -4393,7 +4556,7 @@ static void do_incremental_build(uint32 term) streamConn = check_and_conn(standby_connect_timeout, standby_recv_timeout, term); if (streamConn == NULL) { pg_log(PG_WARNING, _("could not connect to server.\n")); - exit(1); + return false; } /* Concate connection str to primary host for performing rewind. */ @@ -4413,14 +4576,14 @@ static void do_incremental_build(uint32 term) PQfinish(streamConn); streamConn = NULL; PQclear(res); - exit(1); + return false; } if (PQntuples(res) != 1 || PQnfields(res) != 4) { pg_log(PG_WARNING, _("could not identify system, got %d rows and %d fields\n"), PQntuples(res), PQnfields(res)); PQfinish(streamConn); streamConn = NULL; PQclear(res); - exit(1); + return false; } sysidentifier = pg_strdup(PQgetvalue(res, 0, 0)); timeline = atoi(PQgetvalue(res, 0, 1)); @@ -4433,9 +4596,11 @@ static void do_incremental_build(uint32 term) /* Pretend to be gs_rewind and perform rewind. */ progname = "gs_rewind"; status = gs_increment_build(pg_data, connstrSource, sysidentifier, timeline, term); + libpqDisconnect(); if (sysidentifier != NULL) { pg_free(sysidentifier); + sysidentifier = NULL; } if (bgchild > 0) { (void)kill(bgchild, SIGTERM); @@ -4448,7 +4613,7 @@ static void do_incremental_build(uint32 term) streamConn = check_and_conn(standby_connect_timeout, standby_recv_timeout, term); if (streamConn == NULL) { pg_log(PG_WARNING, _("fetch MOT checkpoint: could not connect to server.\n")); - exit(1); + return false; } } @@ -4471,7 +4636,8 @@ static void do_incremental_build(uint32 term) if (status == BUILD_SUCCESS) { /* cascade standby will use use pgha_opt directly */ - if (pgha_opt == NULL || strstr(pgha_opt, "cascade_standby") == NULL) { + if (pgha_opt == NULL || (strstr(pgha_opt, "cascade_standby") == NULL && + strstr(pgha_opt, "hadr_main_standby") == NULL)) { /* pg_ctl start -M standby */ FREE_AND_RESET(pgha_opt); pgha_opt = (char*)pg_malloc(sizeof(standbymode_str)); @@ -4483,15 +4649,13 @@ static void do_incremental_build(uint32 term) do_start(); } set_build_pid(0); - return; + return true; } else if (status == BUILD_FATAL || status == BUILD_ERROR) { - if (build_mode == INC_BUILD) { - return; - } else { - do_actual_build(term); - return; - } + pg_log(PG_WARNING, _("inc build failed.\n")); + return false; } + + return false; } /* @@ -4553,7 +4717,78 @@ static void read_ssl_confval(void) optlines = NULL; } -static void do_actual_build(uint32 term) +static void do_overwrite() +{ + char cmd[MAX_PATH_LEN] = {0}; + int nRet = 0; + + nRet = snprintf_s( + cmd, sizeof(cmd), sizeof(cmd) - 1, "gaussdb --single -Q %s postgres", xlog_overwrite_opt); + securec_check_ss_c(nRet, "\0", "\0"); + + if (xlog_overwrite_opt != NULL && strcmp(xlog_overwrite_opt, "copy_from_local") == 0) { + pg_log(PG_WARNING, + _("start to overwrite xlog from local pg_xlog to shared storage.\n")); + } else if (xlog_overwrite_opt != NULL && strcmp(xlog_overwrite_opt, "force_copy_from_local") == 0) { + pg_log(PG_WARNING, + _("start to force overwrite xlog local pg_xlog to shared storage.\n")); + } else if (xlog_overwrite_opt != NULL && strcmp(xlog_overwrite_opt, "copy_from_share") == 0) { + pg_log(PG_WARNING, + _("start to overwrite xlog from shared storage to local pg_xlog.\n")); + } else { + pg_log(PG_WARNING, _(" unrecognized xlog copy mode \"%s\"\n"), xlog_overwrite_opt); + FREE_AND_RESET(xlog_overwrite_opt); + return; + } + FREE_AND_RESET(xlog_overwrite_opt); + + nRet = system(cmd); + if (nRet != 0) { + pg_log(PG_WARNING, + _("overwrite xlog: fail.\n")); + } else { + pg_log(PG_WARNING, + _("overwrite xlog: success.\n")); + } +} + +const char *BuildModeToString(BuildMode mode) +{ + switch (mode) { + case NONE_BUILD: + return "none build"; + break; + case AUTO_BUILD: + return "auto build"; + break; + case FULL_BUILD: + return "full build"; + break; + case INC_BUILD: + return "inc build"; + break; + case STANDBY_FULL_BUILD: + return "standby full build"; + break; + case CROSS_CLUSTER_FULL_BUILD: + return "cross cluster full build"; + break; + case CROSS_CLUSTER_INC_BUILD: + return "cross cluster inc build"; + break; + case CROSS_CLUSTER_STANDBY_FULL_BUILD: + return "cross cluster standby full build"; + break; + case COPY_SECURE_FILES_BUILD: + return "copy secure files build"; + default: + return "unkwon"; + break; + } + return "unkwon"; +} + +static bool do_actual_build(uint32 term) { GaussState state; errno_t tnRet = 0; @@ -4580,18 +4815,25 @@ static void do_actual_build(uint32 term) state.build_info.build_mode = FULL_BUILD; UpdateDBStateFile(gaussdb_state_file, &state); pg_log(PG_WARNING, - _("set gaussdb state file when full build:" - "db state(BUILDING_STATE), server mode(STANDBY_MODE), build mode(FULL_BUILD).\n")); + _("set gaussdb state file when %s build:" + "db state(BUILDING_STATE), server mode(STANDBY_MODE), build mode(FULL_BUILD).\n"), + BuildModeToString(build_mode)); read_ssl_confval(); - if (build_mode == STANDBY_FULL_BUILD) { - backup_main(pg_data, term, true); - } else { - backup_main(pg_data, term, false); + bool is_from_standby = (build_mode == STANDBY_FULL_BUILD || build_mode == CROSS_CLUSTER_STANDBY_FULL_BUILD); + bool buildSuccess = backup_main(pg_data, term, is_from_standby); + if (!buildSuccess) { + pg_log(PG_WARNING, _("%s failed(%s).\n"), BuildModeToString(build_mode), pg_data); + return buildSuccess; } - pg_log(PG_WARNING, _("build completed(%s).\n"), pg_data); + pg_log(PG_WARNING, _("%s build completed(%s).\n"), BuildModeToString(build_mode), pg_data); + + /* xlog overwrite */ + if (xlog_overwrite_opt != NULL) { + do_overwrite(); + } /* * CN Build CN or CN Build DN cannot auto start,for update pgxc_node by start in restore mode. @@ -4600,7 +4842,8 @@ static void do_actual_build(uint32 term) */ if (conn_str == NULL || (build_mode == STANDBY_FULL_BUILD && conn_str != NULL)) { /* cascade standby will use use pgha_opt directly */ - if (pgha_opt == NULL || strstr(pgha_opt, "cascade_standby") == NULL) { + if (pgha_opt == NULL || (strstr(pgha_opt, "cascade_standby") == NULL && + strstr(pgha_opt, "hadr_main_standby") == NULL)) { /* pg_ctl start -M standby */ FREE_AND_RESET(pgha_opt); pgha_opt = (char*)pg_malloc(sizeof(standbymode_str)); @@ -4617,13 +4860,15 @@ static void do_actual_build(uint32 term) } set_build_pid(0); } + + return true; } /* * used to CN build DN,get connect string from command line.find xlog position and copy * xlog from CN start with this position. */ -static void do_incremental_build_xlog() +static bool do_incremental_build_xlog() { /* save progress info */ GaussState state; @@ -4648,11 +4893,13 @@ static void do_incremental_build_xlog() /* check ssl mode opened */ read_ssl_confval(); + bool buildSuccess = false; /* only copy xlog from CN to DN */ - backup_incremental_xlog(pg_data); + buildSuccess = backup_incremental_xlog(pg_data); /* set pid to zero for cm can start DN */ set_build_pid(0); - pg_log(PG_WARNING, _("build completed(%s).\n"), pg_data); + pg_log(PG_WARNING, _("build %s(%s).\n"), buildSuccess ? "success" : "failed", pg_data); + return buildSuccess; } static void kill_proton_force(void) @@ -5046,6 +5293,105 @@ static void Help(int argc, const char** argv) } } +#ifndef ENABLE_MULTIPLE_NODES +/* Write one object with memsize into a file named filename as binary format */ +static bool WriteFileInfo(const char *filename, const void *content, size_t memsize) +{ + FILE* sofile = nullptr; + if ((sofile = fopen(filename, "wb")) == nullptr) { + pg_log(PG_WARNING, _("fail to open file \"%s\": %s\n"), filename, strerror(errno)); + return false; + } + if (fwrite(content, memsize, 1, sofile) != 1) { + fclose(sofile); + pg_log(PG_WARNING, _("fail to write file \"%s\": %s.\n"), filename, strerror(errno)); + return false; + } + if (fclose(sofile)) { + pg_log(PG_WARNING, _("fail to close file \"%s\": %s.\n"), filename, strerror(errno)); + return false; + } + return true; +} + +static bool SendSigUsr1ToPM(void) +{ + pgpid_t pid; + pid = get_pgpid(); + if (pid == 0) { /* no pid file */ + pg_log(PG_WARNING, _(" PID file \"%s\" does not exist\n"), pid_file); + pg_log(PG_WARNING, _("Is server running?\n")); + return false; + } else if (pid < 0) { /* standalone backend, not postmaster */ + pid = -pid; + pg_log(PG_WARNING, + _(" cannot run command; " + "single-user server is running (PID: %ld)\n"), + pid); + return false; + } + sig = SIGUSR1; + if (kill((pid_t)pid, sig) != 0) { + pg_log(PG_WARNING, _("could not send signal (PID: %ld): %s\n"), pid, strerror(errno)); + return false; + } + return true; +} + +static bool RemoveFileIfExist(const char *filename) +{ + struct stat buffer; + if (stat(filename, &buffer)) { + return true; + } + if (unlink(filename)) { + pg_log(PG_WARNING, _("could not remove file \"%s\": %s\n"), filename, strerror(errno)); + return false; + } + return true; +} + +/* + * Check status in filename during timeout and param isTimeout keeps timeout result. + * Status: -1 demotes failed, 0 demotes success and 1 denotes timeout. + */ +static bool IsRightStatus(const char *filename, bool *isTimeout) { + int wait_count = 0; + FILE *sofile = nullptr; + *isTimeout = false; + while (wait_count++ < wait_seconds) { + if ((sofile = fopen(filename, "rb")) != nullptr) { + int status = -1; + pg_usleep(1000000); /* sleep 1 sec in case no value written */ + int ret = fread(&status, sizeof(status), 1, sofile); + if (ret != 1) { + fclose(sofile); + pg_log(PG_WARNING, _("Read %s failed!\n"), filename); + return false; + } + fclose(sofile); + sofile = nullptr; + if (status == -1) { + pg_log(PG_WARNING, _("Failed status was read!\n")); + return false; + } + if (status == 1) { + *isTimeout = true; + pg_log(PG_WARNING, _("Timeout status was read!\n")); + return false; + } + if (status == 0) { + return true; + } + return false; + } + pg_log(PG_PRINT, "."); + pg_usleep(1000000); /* 1 sec */ + } + *isTimeout = true; + return false; +} + void do_add_member(void) { if (!g_dcfEnabled) { @@ -5063,9 +5409,6 @@ void do_add_member(void) pg_log(PG_WARNING, _("Were invalid node id, ip and port provided?\n")); exit(1); } - - FILE* sofile = NULL; - pgpid_t pid; NewNodeInfo nodeInfo; nodeInfo.stream_id = 1; nodeInfo.node_id = new_node_id; @@ -5077,45 +5420,19 @@ void do_add_member(void) pg_log(PG_WARNING, _("Start adding a new member with node id %u ip %s port %u role %u timeout %u.\n"), nodeInfo.node_id, nodeInfo.ip, nodeInfo.port, nodeInfo.role, nodeInfo.wait_timeout_ms); - if ((sofile = fopen(add_member_file, "w")) == NULL) { - pg_log(PG_WARNING, _("fail to open file \"%s\": %s\n"), add_member_file, strerror(errno)); + if (!WriteFileInfo(add_member_file, &nodeInfo, sizeof(nodeInfo))) { + RemoveFileIfExist(add_member_file); exit(1); } - if (fwrite(&nodeInfo, 1, sizeof(nodeInfo), sofile) == 0) { - fclose(sofile); - unlink(add_member_file); - pg_log(PG_WARNING, _("fail to write file \"%s\": %s\n"), add_member_file, strerror(errno)); + + if (!SendSigUsr1ToPM()) { + RemoveFileIfExist(add_member_file); + pg_log(PG_WARNING, _("Adding member failed!")); exit(1); + } else { + pg_log(PG_WARNING, _("Please check adding member result by command 'gs_ctl query'")); + return; } - if (fclose(sofile)) { - unlink(add_member_file); - pg_log(PG_WARNING, _("fail to close file \"%s\": %s\n"), add_member_file, strerror(errno)); - exit(1); - } - sofile = NULL; - pid = get_pgpid(); - if (pid == 0) { /* no pid file */ - unlink(add_member_file); - pg_log(PG_WARNING, _(" PID file \"%s\" does not exist\n"), pid_file); - pg_log(PG_WARNING, _("Is server running?\n")); - exit(1); - } else if (pid < 0) { /* standalone backend, not postmaster */ - unlink(add_member_file); - pid = -pid; - pg_log(PG_WARNING, - _(" cannot add member; " - "single-user server is running (PID: %ld)\n"), - pid); - exit(1); - } - sig = SIGUSR1; - if (kill((pid_t)pid, sig) != 0) { - pg_log(PG_WARNING, _(" could not send add member signal (PID: %ld): %s\n"), pid, strerror(errno)); - if (unlink(add_member_file) != 0) - pg_log(PG_WARNING, _(" could not send add member signal (PID: %ld): %s\n"), pid, strerror(errno)); - exit(1); - } - return; } void do_remove_member(void) @@ -5124,7 +5441,6 @@ void do_remove_member(void) pg_log(PG_WARNING, _("Can't run this command in non DCF mode!\n")); exit(1); } - ServerMode run_mode = get_runmode(); if (run_mode != PRIMARY_MODE) { pg_log(PG_WARNING, _("Can't remove a member in a non-primary node\n")); @@ -5137,47 +5453,19 @@ void do_remove_member(void) } pg_log(PG_WARNING, _("Start removing a member with node id %u.\n"), new_node_id); - FILE* sofile = NULL; - pgpid_t pid; - if ((sofile = fopen(remove_member_file, "w")) == NULL) { - pg_log(PG_WARNING, _("fail to open file \"%s\": %s\n"), remove_member_file, strerror(errno)); + if (!WriteFileInfo(remove_member_file, &new_node_id, sizeof(new_node_id))) { + RemoveFileIfExist(remove_member_file); exit(1); } - if (fwrite(&new_node_id, 1, sizeof(new_node_id), sofile) == 0) { - fclose(sofile); - unlink(remove_member_file); - pg_log(PG_WARNING, _("fail to write file \"%s\": %s\n"), remove_member_file, strerror(errno)); + + if (!SendSigUsr1ToPM()) { + RemoveFileIfExist(remove_member_file); + pg_log(PG_WARNING, _("Removing member failed!")); exit(1); + } else { + pg_log(PG_WARNING, _("Please check removing member result by command 'gs_ctl query'")); + return; } - if (fclose(sofile)) { - unlink(remove_member_file); - pg_log(PG_WARNING, _("fail to close file \"%s\": %s\n"), remove_member_file, strerror(errno)); - exit(1); - } - sofile = NULL; - pid = get_pgpid(); - if (pid == 0) { /* no pid file */ - unlink(remove_member_file); - pg_log(PG_WARNING, _(" PID file \"%s\" does not exist\n"), pid_file); - pg_log(PG_WARNING, _("Is server running?\n")); - exit(1); - } else if (pid < 0) { /* standalone backend, not postmaster */ - pid = -pid; - unlink(remove_member_file); - pg_log(PG_WARNING,\ - _(" cannot remove member; " - "single-user server is running (PID: %ld)\n"), - pid); - exit(1); - } - sig = SIGUSR1; - if (kill((pid_t)pid, sig) != 0) { - pg_log(PG_WARNING, _(" could not send remove member signal (PID: %ld): %s\n"), pid, strerror(errno)); - if (unlink(remove_member_file) != 0) - pg_log(PG_WARNING, _(" could not send remove member signal (PID: %ld): %s\n"), pid, strerror(errno)); - exit(1); - } - return; } void do_change_role(void) @@ -5186,9 +5474,9 @@ void do_change_role(void) pg_log(PG_WARNING, _("Can't run this command in non DCF mode!\n")); exit(1); } - FILE* sofile = NULL; int timeoutRet = 2; - pgpid_t pid; + bool isTimeout = false; + bool isSuccess = false; ServerMode run_mode = get_runmode(); if (run_mode == PRIMARY_MODE) { pg_log(PG_WARNING, _("Can't change primary role.\n")); @@ -5204,110 +5492,55 @@ void do_change_role(void) exit(1); } pg_log(PG_WARNING, _("Start changing local DCF node role.\n")); + /* Write role into change_role_file */ - sofile = fopen(change_role_file, "w"); - if (sofile == NULL) { - pg_log(PG_WARNING, _("fail to open file \"%s\": %s\n"), change_role_file, strerror(errno)); + if (!WriteFileInfo(change_role_file, new_role, strlen(new_role))) { + RemoveFileIfExist(change_role_file); exit(1); } - if (fwrite(new_role, sizeof(char), strlen(new_role), sofile) == 0) { - pg_log(PG_WARNING, _("fail to write file \"%s\": %s\n"), change_role_file, strerror(errno)); - fclose(sofile); - unlink(change_role_file); - exit(1); - } - if (fclose(sofile)) { - pg_log(PG_WARNING, _("fail to close file \"%s\": %s\n"), change_role_file, strerror(errno)); - unlink(change_role_file); - exit(1); - } - sofile = NULL; /* Write timeout into timeout file */ - sofile = fopen(timeout_file, "w"); - if (sofile == NULL) { - pg_log(PG_WARNING, _("fail to open file \"%s\": %s\n"), timeout_file, strerror(errno)); + if (!WriteFileInfo(timeout_file, &wait_seconds, sizeof(wait_seconds))) { + RemoveFileIfExist(timeout_file); exit(1); } - if ((fwrite(&wait_seconds, sizeof(wait_seconds), 1, sofile)) == 0) { - pg_log(PG_WARNING, _("fail to write file \"%s\": %s\n"), timeout_file, strerror(errno)); - fclose(sofile); - unlink(timeout_file); + /* + * Remove the changerole status file before sending signal + * in case the last one hasn't been deleted and read a wrong value. + */ + if (!RemoveFileIfExist(g_changeroleStatusFile)) { + /* Clear env */ + RemoveFileIfExist(change_role_file); + RemoveFileIfExist(timeout_file); exit(1); } - if (fclose(sofile)) { - pg_log(PG_WARNING, _("fail to close file \"%s\": %s\n"), timeout_file, strerror(errno)); - unlink(timeout_file); + if (!SendSigUsr1ToPM()) { + /* Clear env */ + RemoveFileIfExist(change_role_file); + RemoveFileIfExist(timeout_file); exit(1); } - sofile = NULL; - - pid = get_pgpid(); - if (pid == 0) { /* no pid file */ - pg_log(PG_WARNING, _(" PID file \"%s\" does not exist\n"), pid_file); - pg_log(PG_WARNING, _("Is server running?\n")); - unlink(change_role_file); - exit(1); - } else if (pid < 0) { /* standalone backend, not postmaster */ - pid = -pid; - pg_log(PG_WARNING, - _(" cannot change role; " - "single-user server is running (PID: %ld)\n"), - pid); - unlink(change_role_file); - exit(1); - } - /* Remove the changerole status file in case the last one hasn't been deleted. */ - unlink(g_changeroleStatusFile); - sig = SIGUSR1; - if (kill((pid_t)pid, sig) != 0) { - pg_log(PG_WARNING, _("could not send change role signal (PID: %ld): %s\n"), pid, strerror(errno)); - if (unlink(change_role_file) != 0) - pg_log(PG_WARNING, _("could not remove change role signal file \"%s\": %s\n"), - change_role_file, strerror(errno)); - exit(1); - } - int wait_count = 0; - while (wait_count++ < wait_seconds) { - /* Check change role file status in DCF mode */ - if ((sofile = fopen(g_changeroleStatusFile, "r")) != NULL) { - int status = -1; - pg_usleep(1000000); /* 1 sec */ - wait_count++; - int ret = fread(&status, sizeof(status), 1, sofile); - if (ret != 1) { - fclose(sofile); - sofile = NULL; - pg_log(PG_WARNING, _("Read %s failed!\n"), g_changeroleStatusFile); - unlink(g_changeroleStatusFile); - exit(1); - } - fclose(sofile); - sofile = NULL; - unlink(g_changeroleStatusFile); - if (status == -1) { - pg_log(PG_WARNING, _("Change role failed!\n")); - exit(1); - } - if (status == 1) { - pg_log(PG_WARNING, _("Change role timeout!\n")); - exit(timeoutRet); - } - pg_log(PG_WARNING, _("Change role success!\n")); - return; + isSuccess = IsRightStatus(g_changeroleStatusFile, &isTimeout); + RemoveFileIfExist(g_changeroleStatusFile); + if (isSuccess) { + pg_log(PG_WARNING, _("Change role success")); + return; + } else { + if (isTimeout) { + pg_log(PG_WARNING, _("Change role timeout after %d seconds!\n"), wait_seconds); + exit(timeoutRet); } - pg_log(PG_PRINT, "."); - pg_usleep(1000000); /* 1 sec */ + pg_log(PG_WARNING, _("Change role failed!\n")); } - pg_log(PG_WARNING, _("Change role timeout after %d seconds!\n"), wait_seconds); - exit(timeoutRet); + exit(1); } -void do_minority_start(void) +void do_set_run_mode(void) { pg_log(PG_WARNING, _("Start set run mode.\n")); - FILE* sofile = NULL; - pgpid_t pid; + bool isTimeout = false; + bool isSuccess = false; + RunModeParam param; if (!g_dcfEnabled) { pg_log(PG_WARNING, _("Can't run this command in non-DCF mode!\n")); @@ -5334,82 +5567,37 @@ void do_minority_start(void) } pg_log(PG_WARNING, _("DCF going to set run mode with xmode %u vote num %u!\n"), xmode, vote_num); - sofile = fopen(start_minority_file, "w"); - if (sofile == NULL) { - pg_log(PG_WARNING, _("fail to open file \"%s\": %s\n"), start_minority_file, strerror(errno)); + param.voteNum = vote_num; + param.xMode = xmode; + /* Write set run mode signal file */ + if (!WriteFileInfo(start_minority_file, ¶m, sizeof(param))) { + RemoveFileIfExist(start_minority_file); exit(1); } - if (fwrite(&vote_num, sizeof(vote_num), 1, sofile) == 0) { - pg_log(PG_WARNING, _("fail to write file \"%s\": %s\n"), start_minority_file, strerror(errno)); - fclose(sofile); - unlink(start_minority_file); + /* Remove the status file in case reading status from the last one */ + if (!RemoveFileIfExist(setrunmode_status_file)) { exit(1); } - if (fwrite(&xmode, sizeof(xmode), 1, sofile) == 0) { - pg_log(PG_WARNING, _("fail to write file \"%s\": %s\n"), start_minority_file, strerror(errno)); - fclose(sofile); - unlink(start_minority_file); + if (!SendSigUsr1ToPM()) { + RemoveFileIfExist(start_minority_file); exit(1); } - if (fclose(sofile)) { - pg_log(PG_WARNING, _("fail to close file \"%s\": %s\n"), start_minority_file, strerror(errno)); - unlink(start_minority_file); - exit(1); - } - sofile = NULL; - pid = get_pgpid(); - if (pid == 0) { /* no pid file */ - pg_log(PG_WARNING, _(" PID file \"%s\" does not exist\n"), pid_file); - pg_log(PG_WARNING, _("Is server running?\n")); - unlink(start_minority_file); - exit(1); - } else if (pid < 0) { /* standalone backend, not postmaster */ - pid = -pid; - pg_log(PG_WARNING, - _(" cannot set run mode; " - "single-user server is running (PID: %ld)\n"), - pid); - unlink(start_minority_file); - exit(1); - } - sig = SIGUSR1; - if (kill((pid_t)pid, sig) != 0) { - pg_log(PG_WARNING, _("could not send set run mode signal (PID: %ld): %s\n"), pid, strerror(errno)); - if (unlink(start_minority_file) != 0) - pg_log(PG_WARNING, _("could not remove set run mode signal file \"%s\": %s\n"), - start_minority_file, strerror(errno)); - exit(1); - } - sofile = fopen(setrunmode_status_file, "r"); - int wait_count = 0; - while (wait_count++ < wait_seconds) { - /* Check set run mode status in DCF mode */ - if ((sofile = fopen(setrunmode_status_file, "r")) != NULL) { - int status = -1; - int ret = fread(&status, sizeof(status), 1, sofile); - if (ret != 1) { - fclose(sofile); - sofile = NULL; - pg_log(PG_WARNING, _("Read %s failed!\n"), setrunmode_status_file); - unlink(setrunmode_status_file); - exit(1); - } - fclose(sofile); - sofile = NULL; - unlink(setrunmode_status_file); - if (status != 0) { - pg_log(PG_WARNING, _("Set run mode failed!\n")); - exit(1); - } - pg_log(PG_WARNING, _("Set run mode success!\n")); - return; + + isSuccess = IsRightStatus(setrunmode_status_file, &isTimeout); + RemoveFileIfExist(setrunmode_status_file); + if (isSuccess) { + pg_log(PG_WARNING, _("Set run mode success!\n")); + return; + } else { + if (isTimeout) { + pg_log(PG_WARNING, _("Setting run-mode timeout after %d seconds!\n"), wait_seconds); + exit(1); } - pg_log(PG_PRINT, "."); - pg_usleep(1000000); /* 1 sec */ + pg_log(PG_WARNING, _("Set run mode failed!\n")); } - pg_log(PG_WARNING, _("Setting run-mode timeout after %d seconds!\n"), wait_seconds); exit(1); } +#endif void check_ipv4_format(const char* ipv4) { @@ -5446,6 +5634,72 @@ void check_num_input(char* input) } } +void SetConfigFilePath() +{ + int ret; + if (pg_data != NULL) { + ret = snprintf_s(postopts_file, MAXPGPATH, MAXPGPATH - 1, "%s/postmaster.opts", pg_data); + securec_check_ss_c(ret, "\0", "\0"); + ret = snprintf_s(pid_file, MAXPGPATH, MAXPGPATH - 1, "%s/postmaster.pid", pg_data); + securec_check_ss_c(ret, "\0", "\0"); + ret = snprintf_s(backup_file, MAXPGPATH, MAXPGPATH - 1, "%s/backup_label", pg_data); + securec_check_ss_c(ret, "\0", "\0"); + ret = snprintf_s(recovery_file, MAXPGPATH, MAXPGPATH - 1, "%s/recovery.conf", pg_data); + securec_check_ss_c(ret, "\0", "\0"); + ret = snprintf_s(recovery_done_file, MAXPGPATH, MAXPGPATH - 1, "%s/recovery.done", pg_data); + securec_check_ss_c(ret, "\0", "\0"); + ret = snprintf_s(failover_file, MAXPGPATH, MAXPGPATH - 1, "%s/failover", pg_data); + securec_check_ss_c(ret, "\0", "\0"); + ret = snprintf_s(switchover_file, MAXPGPATH, MAXPGPATH - 1, "%s/switchover", pg_data); + securec_check_ss_c(ret, "\0", "\0"); + ret = snprintf_s(primary_file, MAXPGPATH, MAXPGPATH - 1, "%s/primary", pg_data); + securec_check_ss_c(ret, "\0", "\0"); + ret = snprintf_s(standby_file, MAXPGPATH, MAXPGPATH - 1, "%s/standby", pg_data); + securec_check_ss_c(ret, "\0", "\0"); + ret = snprintf_s(pg_ctl_lockfile, MAXPGPATH, MAXPGPATH - 1, "%s/pg_ctl.lock", pg_data); + securec_check_ss_c(ret, "\0", "\0"); + ret = snprintf_s(pg_conf_file, MAXPGPATH, MAXPGPATH - 1, "%s/postgresql.conf", pg_data); + securec_check_ss_c(ret, "\0", "\0"); + ret = snprintf_s(build_pid_file, MAXPGPATH, MAXPGPATH - 1, "%s/gs_build.pid", pg_data); + securec_check_ss_c(ret, "\0", "\0"); + ret = snprintf_s(gaussdb_state_file, MAXPGPATH, MAXPGPATH - 1, "%s/gaussdb.state", pg_data); + securec_check_ss_c(ret, "\0", "\0"); + ret = snprintf_s(postport_lock_file, MAXPGPATH, MAXPGPATH - 1, "%s/postport.lock", pg_data); + securec_check_ss_c(ret, "\0", "\0"); + ret = snprintf_s(g_hotpatch_cmd_file, MAXPGPATH, MAXPGPATH - 1, "%s/hotpatch.cmd", pg_data); + securec_check_ss_c(ret, "\0", "\0"); + ret = snprintf_s(g_hotpatch_tmp_cmd_file, MAXPGPATH, MAXPGPATH - 1, "%s/hotpatch.cmd.tmp", pg_data); + securec_check_ss_c(ret, "\0", "\0"); + ret = snprintf_s(g_hotpatch_ret_file, MAXPGPATH, MAXPGPATH - 1, "%s/hotpatch.ret", pg_data); + securec_check_ss_c(ret, "\0", "\0"); + ret = snprintf_s(g_hotpatch_lockfile, MAXPGPATH, MAXPGPATH - 1, "%s/hotpatch.lock", pg_data); + securec_check_ss_c(ret, "\0", "\0"); + g_dcfEnabled = GetPaxosValue(pg_conf_file); + if (g_dcfEnabled) { + ret = snprintf_s(add_member_file, MAXPGPATH, MAXPGPATH - 1, "%s/addmember", pg_data); + securec_check_ss_c(ret, "\0", "\0"); + ret = snprintf_s(remove_member_file, MAXPGPATH, MAXPGPATH - 1, "%s/removemember", pg_data); + securec_check_ss_c(ret, "\0", "\0"); + ret = snprintf_s(timeout_file, MAXPGPATH, MAXPGPATH - 1, "%s/timeout", pg_data); + securec_check_ss_c(ret, "\0", "\0"); + ret = snprintf_s(switchover_status_file, MAXPGPATH, MAXPGPATH - 1, "%s/switchoverstatus", pg_data); + securec_check_ss_c(ret, "\0", "\0"); + + ret = snprintf_s(change_role_file, MAXPGPATH, MAXPGPATH - 1, "%s/changerole", pg_data); + securec_check_ss_c(ret, "\0", "\0"); + + ret = snprintf_s(g_changeroleStatusFile, MAXPGPATH, MAXPGPATH - 1, "%s/changerolestatus", pg_data); + securec_check_ss_c(ret, "\0", "\0"); + + ret = snprintf_s(start_minority_file, MAXPGPATH, MAXPGPATH - 1, "%s/startminority", pg_data); + securec_check_ss_c(ret, "\0", "\0"); + + ret = snprintf_s(setrunmode_status_file, MAXPGPATH, MAXPGPATH - 1, "%s/setrunmodestatus", pg_data); + securec_check_ss_c(ret, "\0", "\0"); + } + } +} + int main(int argc, char** argv) { static struct option long_options[] = {{"help", no_argument, NULL, '?'}, @@ -5538,18 +5792,18 @@ int main(int argc, char** argv) /* process command-line options */ while (optind < argc) { #ifdef ENABLE_MULTIPLE_NODES - while ((c = getopt_long( - argc, argv, "a:b:cD:fl:m:M:N:n:o:p:P:r:sS:t:U:wWZ:C:T:dqL:k:K:I:E:", long_options, &option_index)) != -1) + while ((c = getopt_long(argc, argv, "a:b:cD:fl:m:M:N:n:o:p:P:r:sS:t:U:wWZ:C:T:dqL:k:K:I:E:Q:X:", long_options, + &option_index)) != -1) #else // The node defaults to a datanode FREE_AND_RESET(pgxcCommand); pgxcCommand = xstrdup("--single_node"); #ifdef ENABLE_PRIVATEGAUSS - while ((c = getopt_long( - argc, argv, "a:b:cD:e:fi:l:m:M:N:n:o:O:p:P:r:R:v:x:sS:t:u:U:wWZ:dqL:T:", long_options, &option_index)) != -1) + while ((c = getopt_long(argc, argv, "a:b:cD:e:fi:l:m:M:N:n:o:O:p:P:r:R:v:x:sS:t:u:U:wWZ:C:dqL:T:Q:", long_options, + &option_index)) != -1) #else - while ((c = getopt_long( - argc, argv, "b:cD:e:fi:l:m:M:N:o:O:p:P:r:R:v:x:sS:t:u:U:wWZ:dqL:T:", long_options, &option_index)) != -1) + while ((c = getopt_long(argc, argv, "b:cD:e:fi:l:m:M:N:o:O:p:P:r:R:v:x:sS:t:u:U:wWZ:dqL:T:Q:", long_options, + &option_index)) != -1) #endif #endif { @@ -5559,14 +5813,24 @@ int main(int argc, char** argv) build_mode = FULL_BUILD; } else if (strcmp(optarg, "incremental") == 0) { build_mode = INC_BUILD; + } else if (strcmp(optarg, "cross_cluster_full") == 0) { + build_mode = CROSS_CLUSTER_FULL_BUILD; + } else if (strcmp(optarg, "cross_cluster_incremental") == 0) { + build_mode = CROSS_CLUSTER_INC_BUILD; } else if (strcmp(optarg, "standby_full") == 0) { build_mode = STANDBY_FULL_BUILD; + } else if (strcmp(optarg, "cross_cluster_standby_full") == 0) { + build_mode = CROSS_CLUSTER_STANDBY_FULL_BUILD; + } else if (strcmp(optarg, "copy_secure_files") == 0) { + build_mode = COPY_SECURE_FILES_BUILD; + } else if (strcmp(optarg, "copy_upgrade_file") == 0) { + build_mode = COPY_SECURE_FILES_BUILD; + need_copy_upgrade_file = true; } break; } case 'D': { char* pgdata_D = NULL; - check_input_for_security(optarg); if (strlen(optarg) > MAX_PATH_LEN) { pg_log(PG_WARNING, _("max path length is exceeded\n")); @@ -5659,6 +5923,27 @@ int main(int argc, char** argv) ret = memset_s(optarg, strlen(optarg), 0, strlen(optarg)); securec_check_c(ret, optarg, "\0"); break; + case 'Q': + check_input_for_security(optarg); + FREE_AND_RESET(xlog_overwrite_opt); + xlog_overwrite_opt = xstrdup(optarg); + break; + case 'X': + check_input_for_security(optarg); + { + int ret = 0; + int opt_len = strlen(optarg); + if (opt_len >= MAX_BARRIER_ID_LENGTH) { + pg_log(PG_WARNING, _("invalid stop barrier command \n")); + goto Error; + } + ret = memset_s(barrier_id, MAX_STOP_BARRIER_LEN, 0, MAX_STOP_BARRIER_LEN); + securec_check(ret, "", ""); + ret = snprintf_s(barrier_id, MAX_STOP_BARRIER_LEN, MAX_STOP_BARRIER_LEN - 1, "-X %s", optarg); + securec_check_ss_c(ret, "\0", "\0"); + stop_barrier = barrier_id; + } + break; case 'Z': FREE_AND_RESET(pgxcCommand); #ifndef ENABLE_MULTIPLE_NODES @@ -5939,6 +6224,8 @@ int main(int argc, char** argv) ctl_command = HOTPATCH_COMMAND; else if (strcmp(argv[optind], "finishredo") == 0) ctl_command = FINISH_REDO_COMMAND; + else if (strcmp(argv[optind], "copy") == 0) + ctl_command = COPY_COMMAND; else { pg_log(PG_WARNING, _(" unrecognized operation mode \"%s\"\n"), argv[optind]); do_advice(); @@ -6024,67 +6311,7 @@ int main(int argc, char** argv) do_wait = false; } - if (pg_data != NULL) { - ret = snprintf_s(postopts_file, MAXPGPATH, MAXPGPATH - 1, "%s/postmaster.opts", pg_data); - securec_check_ss_c(ret, "\0", "\0"); - ret = snprintf_s(pid_file, MAXPGPATH, MAXPGPATH - 1, "%s/postmaster.pid", pg_data); - securec_check_ss_c(ret, "\0", "\0"); - ret = snprintf_s(backup_file, MAXPGPATH, MAXPGPATH - 1, "%s/backup_label", pg_data); - securec_check_ss_c(ret, "\0", "\0"); - ret = snprintf_s(recovery_file, MAXPGPATH, MAXPGPATH - 1, "%s/recovery.conf", pg_data); - securec_check_ss_c(ret, "\0", "\0"); - ret = snprintf_s(recovery_done_file, MAXPGPATH, MAXPGPATH - 1, "%s/recovery.done", pg_data); - securec_check_ss_c(ret, "\0", "\0"); - ret = snprintf_s(failover_file, MAXPGPATH, MAXPGPATH - 1, "%s/failover", pg_data); - securec_check_ss_c(ret, "\0", "\0"); - ret = snprintf_s(switchover_file, MAXPGPATH, MAXPGPATH - 1, "%s/switchover", pg_data); - securec_check_ss_c(ret, "\0", "\0"); - ret = snprintf_s(primary_file, MAXPGPATH, MAXPGPATH - 1, "%s/primary", pg_data); - securec_check_ss_c(ret, "\0", "\0"); - ret = snprintf_s(standby_file, MAXPGPATH, MAXPGPATH - 1, "%s/standby", pg_data); - securec_check_ss_c(ret, "\0", "\0"); - ret = snprintf_s(pg_ctl_lockfile, MAXPGPATH, MAXPGPATH - 1, "%s/pg_ctl.lock", pg_data); - securec_check_ss_c(ret, "\0", "\0"); - ret = snprintf_s(pg_conf_file, MAXPGPATH, MAXPGPATH - 1, "%s/postgresql.conf", pg_data); - securec_check_ss_c(ret, "\0", "\0"); - ret = snprintf_s(build_pid_file, MAXPGPATH, MAXPGPATH - 1, "%s/gs_build.pid", pg_data); - securec_check_ss_c(ret, "\0", "\0"); - ret = snprintf_s(gaussdb_state_file, MAXPGPATH, MAXPGPATH - 1, "%s/gaussdb.state", pg_data); - securec_check_ss_c(ret, "\0", "\0"); - ret = snprintf_s(postport_lock_file, MAXPGPATH, MAXPGPATH - 1, "%s/postport.lock", pg_data); - securec_check_ss_c(ret, "\0", "\0"); - ret = snprintf_s(g_hotpatch_cmd_file, MAXPGPATH, MAXPGPATH - 1, "%s/hotpatch.cmd", pg_data); - securec_check_ss_c(ret, "\0", "\0"); - ret = snprintf_s(g_hotpatch_tmp_cmd_file, MAXPGPATH, MAXPGPATH - 1, "%s/hotpatch.cmd.tmp", pg_data); - securec_check_ss_c(ret, "\0", "\0"); - ret = snprintf_s(g_hotpatch_ret_file, MAXPGPATH, MAXPGPATH - 1, "%s/hotpatch.ret", pg_data); - securec_check_ss_c(ret, "\0", "\0"); - ret = snprintf_s(g_hotpatch_lockfile, MAXPGPATH, MAXPGPATH - 1, "%s/hotpatch.lock", pg_data); - securec_check_ss_c(ret, "\0", "\0"); - g_dcfEnabled = GetPaxosValue(pg_conf_file); - if (g_dcfEnabled) { - ret = snprintf_s(add_member_file, MAXPGPATH, MAXPGPATH - 1, "%s/addmember", pg_data); - securec_check_ss_c(ret, "\0", "\0"); - ret = snprintf_s(remove_member_file, MAXPGPATH, MAXPGPATH - 1, "%s/removemember", pg_data); - securec_check_ss_c(ret, "\0", "\0"); - ret = snprintf_s(timeout_file, MAXPGPATH, MAXPGPATH - 1, "%s/timeout", pg_data); - securec_check_ss_c(ret, "\0", "\0"); - ret = snprintf_s(switchover_status_file, MAXPGPATH, MAXPGPATH - 1, "%s/switchoverstatus", pg_data); - securec_check_ss_c(ret, "\0", "\0"); - - ret = snprintf_s(change_role_file, MAXPGPATH, MAXPGPATH - 1, "%s/changerole", pg_data); - securec_check_ss_c(ret, "\0", "\0"); - - ret = snprintf_s(g_changeroleStatusFile, MAXPGPATH, MAXPGPATH - 1, "%s/changerolestatus", pg_data); - securec_check_ss_c(ret, "\0", "\0"); - - ret = snprintf_s(start_minority_file, MAXPGPATH, MAXPGPATH - 1, "%s/startminority", pg_data); - securec_check_ss_c(ret, "\0", "\0"); - - ret = snprintf_s(setrunmode_status_file, MAXPGPATH, MAXPGPATH - 1, "%s/setrunmodestatus", pg_data); - securec_check_ss_c(ret, "\0", "\0"); - } - } + SetConfigFilePath(); pg_host = getenv("PGHOST"); check_input_for_security(pg_host); @@ -6178,17 +6405,27 @@ int main(int argc, char** argv) break; #endif case BUILD_COMMAND: + if (build_mode == COPY_SECURE_FILES_BUILD && (conn_str == NULL || register_username == NULL || + register_password == NULL)) { + pg_log(PG_PROGRESS, _("When copy secure files from remote, need remote host and authentication!\n")); + goto Error; + } if (conn_str != NULL) { - if (build_mode == FULL_BUILD) { + if (build_mode == FULL_BUILD || build_mode == CROSS_CLUSTER_FULL_BUILD) { pg_log(PG_PROGRESS, _("gs_ctl full build ,datadir is %s,conn_str is \'%s\'\n"), pg_data, conn_str); - } else if (build_mode == STANDBY_FULL_BUILD) { + } else if (build_mode == STANDBY_FULL_BUILD || build_mode == CROSS_CLUSTER_STANDBY_FULL_BUILD) { pg_log(PG_PROGRESS, _("gs_ctl standby full build ,datadir is %s,conn_str is \'%s\'\n"), pg_data, conn_str); + } else if (build_mode == COPY_SECURE_FILES_BUILD) { + pg_log(PG_PROGRESS, + _("gs_ctl copy secure files from remote build ,datadir is %s,conn_str is \'%s\'\n"), + pg_data, + conn_str); } else { pg_log(PG_PROGRESS, _("gs_ctl incremental build ,datadir is %s,conn_str is \'%s\'\n"), @@ -6196,11 +6433,11 @@ int main(int argc, char** argv) conn_str); } } else { - if (build_mode == FULL_BUILD) { + if (build_mode == FULL_BUILD || build_mode == CROSS_CLUSTER_FULL_BUILD) { pg_log(PG_PROGRESS, _("gs_ctl full build ,datadir is %s\n"), pg_data); - } else if (build_mode == STANDBY_FULL_BUILD) { + } else if (build_mode == STANDBY_FULL_BUILD || build_mode == CROSS_CLUSTER_STANDBY_FULL_BUILD) { pg_log(PG_PROGRESS, _("gs_ctl standby full build ,datadir is %s\n"), pg_data); @@ -6234,6 +6471,7 @@ int main(int argc, char** argv) pg_log(PG_PROGRESS, _("[PATCH-ERROR] Another gs_ctl command is still running,hotpatch failed !\n")); } break; +#ifndef ENABLE_MULTIPLE_NODES case ADD_MEMBER_COMMAND: if (-1 != pg_ctl_lock(pg_ctl_lockfile, &lockfile)) { do_add_member(); @@ -6263,13 +6501,14 @@ int main(int argc, char** argv) break; case MINORITY_START_COMMAND: if (-1 != pg_ctl_lock(pg_ctl_lockfile, &lockfile)) { - do_minority_start(); + do_set_run_mode(); (void)pg_ctl_unlock(lockfile); } else { pg_log(PG_PROGRESS, _("Another gs_ctl command is still running, minority start failed.\n")); goto Error; } break; +#endif case RESTORE_COMMAND: if (-1 != pg_ctl_lock(pg_ctl_lockfile, &lockfile)) { if (g_is_obsmode) { @@ -6281,6 +6520,13 @@ int main(int argc, char** argv) } else { pg_log(PG_PROGRESS, _("Another gs_ctl command is still running, restore failed.\n")); } + case COPY_COMMAND: + if (-1 != pg_ctl_lock(pg_ctl_lockfile, &lockfile)) { + do_xlog_copy(); + (void)pg_ctl_unlock(lockfile); + } else { + pg_log(PG_PROGRESS, _("Another gs_ctl command is still running, restore failed.\n")); + } default: break; } diff --git a/src/bin/pg_dump/CMakeLists.txt b/src/bin/pg_dump/CMakeLists.txt index 2d65125c8..01a0329b5 100755 --- a/src/bin/pg_dump/CMakeLists.txt +++ b/src/bin/pg_dump/CMakeLists.txt @@ -60,6 +60,7 @@ set(TGT_dump_INC ${LIBCURL_INCLUDE_PATH} ${BOOST_INCLUDE_PATH} ${ZLIB_INCLUDE_PATH} + ${ZSTD_INCLUDE_PATH} ) set(dump_DEF_OPTIONS ${MACRO_OPTIONS} -DHAVE_LIBZ -DHAVE_CE) @@ -71,7 +72,7 @@ if(NOT "${ENABLE_MULTIPLE_NODES}_${ENABLE_PRIVATEGAUSS}" STREQUAL "OFF_OFF") endif() set(dump_LINK_LIBS utils_aes_aes ${dump_LINK_LIBS}) set(dump_LINK_DIRS ${LIBOPENSSL_LIB_PATH} ${PROTOBUF_LIB_PATH} ${LIBPARQUET_LIB_PATH} ${LIBCURL_LIB_PATH} - ${ZLIB_LIB_PATH} ${LIBOBS_LIB_PATH} ${LIBEDIT_LIB_PATH} ${LIBCGROUP_LIB_PATH} + ${ZLIB_LIB_PATH} ${ZSTD_LIB_PATH} ${LIBOBS_LIB_PATH} ${LIBEDIT_LIB_PATH} ${LIBCGROUP_LIB_PATH} ${SECURE_LIB_PATH} ${KMC_LIB_PATH} ${CJSON_LIB_PATH} ${LIBCURL_LIB_PATH} ${KERBEROS_LIB_PATH} ${CMAKE_BINARY_DIR}/lib) set(dump_LINK_DEPEND utils_aes_aes elog_static pgport_static pq_ce) if(NOT "${ENABLE_MULTIPLE_NODES}_${ENABLE_PRIVATEGAUSS}" STREQUAL "OFF_OFF") diff --git a/src/bin/pg_dump/common.cpp b/src/bin/pg_dump/common.cpp index 0777f59df..2121cac1e 100644 --- a/src/bin/pg_dump/common.cpp +++ b/src/bin/pg_dump/common.cpp @@ -6,6 +6,7 @@ * * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -125,13 +126,6 @@ TableInfo* getSchemaData(Archive* fout, int* numTablesPtr) funinfo = getFuncs(fout, &numFuncs); funinfoindex = buildIndexArray(funinfo, numFuncs, sizeof(FuncInfo)); - if (g_verbose) - write_msg(NULL, "reading user-defined packages\n"); - packageinfo = getPackages(fout, &numPackages); - if (packageinfo!=NULL) { - packageinfoindex = buildIndexArray(packageinfo, numPackages, sizeof(PkgInfo)); - } - /* this must be after getTables and getFuncs */ if (g_verbose) write_msg(NULL, "reading user-defined types\n"); @@ -256,6 +250,13 @@ TableInfo* getSchemaData(Archive* fout, int* numTablesPtr) write_msg(NULL, "reading row level security policies\n"); getRlsPolicies(fout, tblinfo, numTables); + if (g_verbose) + write_msg(NULL, "reading user-defined packages\n"); + packageinfo = getPackages(fout, &numPackages); + if (packageinfo!=NULL) { + packageinfoindex = buildIndexArray(packageinfo, numPackages, sizeof(PkgInfo)); + } + if (g_verbose) { write_msg(NULL, "reading publications\n"); } @@ -294,7 +295,7 @@ static void flagInhTables(TableInfo* ptblinfo, int inumTables, InhInfo* inhinfo, for (i = 0; i < inumTables; i++) { /* Sequences, contqueries and views never have parents */ - if (ptblinfo[i].relkind == RELKIND_SEQUENCE || ptblinfo[i].relkind == RELKIND_VIEW || + if (RELKIND_IS_SEQUENCE(ptblinfo[i].relkind) || ptblinfo[i].relkind == RELKIND_VIEW || ptblinfo[i].relkind == RELKIND_CONTQUERY) continue; @@ -335,7 +336,7 @@ static void flagInhAttrs(TableInfo* ptblinfo, int inumTables) TableInfo** parents; /* Sequences, contqueries and views never have parents */ - if (tbinfo->relkind == RELKIND_SEQUENCE || tbinfo->relkind == RELKIND_VIEW || + if (RELKIND_IS_SEQUENCE(tbinfo->relkind) || tbinfo->relkind == RELKIND_VIEW || tbinfo->relkind == RELKIND_MATVIEW || tbinfo->relkind == RELKIND_CONTQUERY) continue; diff --git a/src/bin/pg_dump/dumputils.cpp b/src/bin/pg_dump/dumputils.cpp index 27166c56b..4f8f28acb 100644 --- a/src/bin/pg_dump/dumputils.cpp +++ b/src/bin/pg_dump/dumputils.cpp @@ -565,6 +565,7 @@ bool buildACLCommands(const char* name, const char* subname, const char* type, c PQExpBuffer grantee, grantor, privs, privswgo; PQExpBuffer firstsql, secondsql; bool found_owner_privs = false; + bool hasRevoke = false; char* rolepassword = NULL; char* newname = NULL; @@ -667,11 +668,14 @@ bool buildACLCommands(const char* name, const char* subname, const char* type, c temp_grantee_username = binary_upgrade_newowner; } - (void)appendPQExpBuffer(firstsql, "%sREVOKE ALL", prefix); - if (NULL != subname) - (void)appendPQExpBuffer(firstsql, "(%s)", subname); - (void)appendPQExpBuffer( - firstsql, " ON %s %s FROM %s;\n", type, newname, fmtId(temp_grantee_username)); + if (!hasRevoke) { + (void)appendPQExpBuffer(firstsql, "%sREVOKE ALL", prefix); + if (NULL != subname) + (void)appendPQExpBuffer(firstsql, "(%s)", subname); + (void)appendPQExpBuffer( + firstsql, " ON %s %s FROM %s;\n", type, newname, fmtId(temp_grantee_username)); + hasRevoke = true; + } if (privs->len > 0) (void)appendPQExpBuffer(firstsql, "%sGRANT %s ON %s %s TO %s;\n", @@ -886,13 +890,13 @@ static bool parseAclItem(const char* item, const char* type, const char* name, c (void)resetPQExpBuffer(privswgo); if (strcmp(type, "TABLE") == 0 || strcmp(type, "SEQUENCE") == 0 || strcmp(type, "TABLES") == 0 || - strcmp(type, "SEQUENCES") == 0) { + strcmp(type, "SEQUENCES") == 0 || strcmp(type, "LARGE SEQUENCE") == 0) { CONVERT_PRIV('r', "SELECT"); if (remoteVersion >= 90200) { CONVERT_PRIV('m', "COMMENT"); } - if (strcmp(type, "SEQUENCE") == 0 || strcmp(type, "SEQUENCES") == 0) { + if (strcmp(type, "SEQUENCE") == 0 || strcmp(type, "SEQUENCES") == 0 || strcmp(type, "LARGE SEQUENCE") == 0) { /* sequence only */ CONVERT_PRIV('U', "USAGE"); @@ -925,7 +929,8 @@ static bool parseAclItem(const char* item, const char* type, const char* name, c } /* UPDATE */ - if (remoteVersion >= 70200 || strcmp(type, "SEQUENCE") == 0 || strcmp(type, "SEQUENCES") == 0) + if (remoteVersion >= 70200 || strcmp(type, "SEQUENCE") == 0 || strcmp(type, "SEQUENCES") == 0 || + strcmp(type, "LARGE SEQUENCE") == 0) CONVERT_PRIV('w', "UPDATE"); else /* 7.0 and 7.1 have a simpler worldview */ @@ -1005,11 +1010,20 @@ static bool parseAclItem(const char* item, const char* type, const char* name, c } else if (strcmp(type, "DATA SOURCE") == 0) { CONVERT_PRIV('U', "USAGE"); } else if (strcmp(type, "DIRECTORY") == 0) { - CONVERT_PRIV('X', "EXECUTE"); - CONVERT_PRIV('C', "CREATE"); + CONVERT_PRIV('R', "READ"); + CONVERT_PRIV('W', "WRITE"); + if (remoteVersion >= 90200) { + CONVERT_PRIV('A', "ALTER"); + CONVERT_PRIV('P', "DROP"); + } } else if (strcmp(type, "GLOBAL SETTINGS") == 0 || strcmp(type, "COLUMN SETTINGS") == 0) { CONVERT_PRIV('U', "USAGE"); CONVERT_PRIV('P', "DROP"); + } else if (strcmp(type, "PACKAGE") == 0 || strcmp(type, "PACKAGE BODY") == 0) { + CONVERT_PRIV('X', "EXECUTE"); + CONVERT_PRIV('A', "ALTER"); + CONVERT_PRIV('P', "DROP"); + CONVERT_PRIV('m', "COMMENT"); } else { abort(); } diff --git a/src/bin/pg_dump/dumputils.h b/src/bin/pg_dump/dumputils.h index 976decdf3..19e237f8c 100644 --- a/src/bin/pg_dump/dumputils.h +++ b/src/bin/pg_dump/dumputils.h @@ -38,6 +38,7 @@ #define DIR_LOCK_FILE "dir.lock" #define DIR_SEPARATOR "/" #define FILE_PERMISSION 0600 +#define MAX_PASSWDLEN 100 /* Data structures for simple lists of OIDs and strings. The support for * these is very primitive compared to the backend's List facilities, but diff --git a/src/bin/pg_dump/pg_backup_archiver.cpp b/src/bin/pg_dump/pg_backup_archiver.cpp index cf3f3a46c..617cb4765 100644 --- a/src/bin/pg_dump/pg_backup_archiver.cpp +++ b/src/bin/pg_dump/pg_backup_archiver.cpp @@ -508,7 +508,7 @@ void RestoreArchive(Archive* AHX) } /* Otherwise, drop anything that's selected and has a dropStmt */ - if (((te->reqs & (REQ_SCHEMA | REQ_DATA)) != 0) && (te->dropStmt != NULL)) { + if (((te->reqs & (REQ_SCHEMA | REQ_DATA)) != 0) && (te->dropStmt != NULL) && (strlen(te->dropStmt) != 0)) { /* Show namespace if available */ if (te->nmspace) { ahlog(AH, 1, "dropping %s \"%s.%s\"\n", te->desc, te->nmspace, te->tag); @@ -2762,7 +2762,6 @@ static void _doResetSessionAuth(ArchiveHandle* AH) { (void)destroyPQExpBuffer(cmd); } - /* * Issue a SET default_with_oids command. Caller is responsible * for updating state if appropriate. @@ -2992,7 +2991,7 @@ static void _getObjectDescription(PQExpBuffer buf, TocEntry* te, ArchiveHandle* strcmp(type, "TABLE") == 0 || strcmp(type, "SYNONYM") == 0 || strcmp(type, "VIEW") == 0 || strcmp(type, "SEQUENCE") == 0 || strcmp(type, "TYPE") == 0 || strcmp(type, "FOREIGN TABLE") == 0 || strcmp(type, "TEXT SEARCH DICTIONARY") == 0 || strcmp(type, "TEXT SEARCH CONFIGURATION") == 0 || - strcmp(type, "MATERIALIZED VIEW") == 0) { + strcmp(type, "MATERIALIZED VIEW") == 0 || strcmp(type, "LARGE SEQUENCE") == 0) { (void)appendPQExpBuffer(buf, "%s ", type); if ((te->nmspace != NULL) && te->nmspace[0]) /* is null pre-7.3 */ (void)appendPQExpBuffer(buf, "%s.", fmtId(te->nmspace)); @@ -3259,6 +3258,7 @@ static void _printTocEntry(ArchiveHandle* AH, TocEntry* te, RestoreOptions* ropt || strcmp(te->desc, "VIEW") == 0 || strcmp(te->desc, "MATERIALIZED VIEW") == 0 || strcmp(te->desc, "SEQUENCE") == 0 + || strcmp(te->desc, "LARGE SEQUENCE") == 0 || strcmp(te->desc, "TEXT SEARCH DICTIONARY") == 0 || strcmp(te->desc, "TEXT SEARCH CONFIGURATION") == 0 || strcmp(te->desc, "FOREIGN DATA WRAPPER") == 0 @@ -4546,8 +4546,6 @@ static void DeCloneArchive(ArchiveHandle* AH) */ void check_encrypt_parameters(Archive* fout, const char* encrypt_mode, const char* encrypt_key) { - int key_lenth = 0; - if (NULL == encrypt_mode && NULL == encrypt_key) { fout->encryptfile = false; return; @@ -4560,19 +4558,16 @@ void check_encrypt_parameters(Archive* fout, const char* encrypt_mode, const cha } if (NULL == encrypt_key) { exit_horribly(NULL, "No key for encryption,please input the key\n"); - } else { - key_lenth = strlen(encrypt_key); } - if (KEY_LEN != key_lenth) { - exit_horribly(NULL, "The key is illegal,the length must be %d\n", KEY_LEN); - } else { - if (!check_key(encrypt_key, KEY_LEN)) - exit_horribly(NULL, "The key is illegal, must be letters or numbers\n"); + if (!check_input_password(encrypt_key)) { + exit_horribly(NULL, "The input key must be %d~%d bytes and " + "contain at least three kinds of characters!\n", + MIN_KEY_LEN, MAX_KEY_LEN); } errno_t rc = memset_s(fout->Key, KEY_MAX_LEN, 0, KEY_MAX_LEN); securec_check_c(rc, "\0", "\0"); - rc = strncpy_s((char*)fout->Key, KEY_MAX_LEN, encrypt_key, KEY_LEN); + rc = strncpy_s((char*)fout->Key, KEY_MAX_LEN, encrypt_key, KEY_MAX_LEN - 1); securec_check_c(rc, "\0", "\0"); fout->encryptfile = true; } diff --git a/src/bin/pg_dump/pg_dump.cpp b/src/bin/pg_dump/pg_dump.cpp index afce2b3ae..543d0ee1d 100644 --- a/src/bin/pg_dump/pg_dump.cpp +++ b/src/bin/pg_dump/pg_dump.cpp @@ -228,7 +228,8 @@ static char connected_node_type = 'N'; /* 'N' -- NONE */ char* all_data_nodename_list = NULL; const uint32 USTORE_UPGRADE_VERSION = 92368; -const uint32 SUBSCRIPTION_VERSION = 92425; +const uint32 PACKAGE_ENHANCEMENT = 92444; +const uint32 SUBSCRIPTION_VERSION = 92504; #ifdef DUMPSYSLOG char* syslogpath = NULL; @@ -354,6 +355,7 @@ static void dumpDumpableObject(Archive* fout, DumpableObject* dobj); static void dumpNamespace(Archive* fout, NamespaceInfo* nspinfo); static void dumpDirectory(Archive* fout); static void dumpExtension(Archive* fout, ExtensionInfo* extinfo); +static void dumpTableofType(Archive* fout, TypeInfo* tyinfo); static void dumpType(Archive* fout, TypeInfo* tyinfo); static void dumpBaseType(Archive* fout, TypeInfo* tyinfo); static void dumpEnumType(Archive* fout, TypeInfo* tyinfo); @@ -379,8 +381,8 @@ static void dumpTrigger(Archive* fout, TriggerInfo* tginfo); static void dumpTable(Archive* fout, TableInfo* tbinfo); static void dumpTableSchema(Archive* fout, TableInfo* tbinfo); static void dumpAttrDef(Archive* fout, AttrDefInfo* adinfo); -static void dumpSequence(Archive* fout, TableInfo* tbinfo); -static void dumpSequenceData(Archive* fout, TableDataInfo* tdinfo); +static void dumpSequence(Archive* fout, TableInfo* tbinfo, bool large); +static void dumpSequenceData(Archive* fout, TableDataInfo* tdinfo, bool large); static void dumpIndex(Archive* fout, IndxInfo* indxinfo); static void dumpConstraint(Archive* fout, ConstraintInfo* coninfo); static void dumpConstraintForForeignTbl(Archive* fout, ConstraintInfo* coninfo); @@ -448,6 +450,9 @@ static const char* getAttrName(int attrnum, TableInfo* tblInfo); static const char* fmtCopyColumnList(const TableInfo* ti); static PGresult* ExecuteSqlQueryForSingleRow(Archive* fout, const char* query); static PQExpBuffer createTablePartition(Archive* fout, TableInfo* tbinfo); +static void GenerateSubPartitionBy(PQExpBuffer result, Archive *fout, TableInfo *tbinfo); +static void GenerateSubPartitionDetail(PQExpBuffer result, Archive *fout, TableInfo *tbinfo, Oid partOid, + int subpartkeynum, Oid *subpartkeycols); static bool isTypeString(const TableInfo* tbinfo, unsigned int colum); static void find_current_connection_node_type(Archive* fout); static char* changeTableName(const char* tableName); @@ -458,6 +463,7 @@ static bool isExecUserSuperRole(Archive* fout); static bool isExecUserNotObjectOwner(Archive* fout, const char* objRoleName); static bool isTsStoreTable(const TableInfo *tbinfo); static bool IsIncrementalMatview(Archive* fout, Oid matviewOid); +static bool IsPackageObject(Archive* fout, Oid classid, Oid objid); static Oid* GetMatviewOid(Archive* fout, Oid tableoid, int *nMatviews); static void DumpMatviewSchema( Archive* fout, TableInfo* tbinfo, PQExpBuffer query, PQExpBuffer q, PQExpBuffer delq, PQExpBuffer labelq); @@ -467,6 +473,7 @@ static PQExpBuffer DumpListDistribution(Archive* fout, const TableInfo* tbinfo); static void DumpHashDistribution(PQExpBuffer resultBuf, const TableInfo* tbinfo); static void get_password_pipeline(); static void get_role_password(); +static void get_encrypt_key(); #ifdef DUMPSYSLOG static void ReceiveSyslog(PGconn* conn, const char* current_path); @@ -726,6 +733,10 @@ int main(int argc, char** argv) /* Let the archiver know how noisy to be */ fout->verbose = g_verbose; + + if ((encrypt_mode != NULL) && (encrypt_key == NULL)) { + get_encrypt_key(); + } /* Database Security: Data importing/dumping support AES128. */ check_encrypt_parameters(fout, encrypt_mode, encrypt_key); @@ -1136,6 +1147,15 @@ static void get_role_password() { } } +static void get_encrypt_key() +{ + GS_FREE(encrypt_key); + encrypt_key = simple_prompt("Encrypt Key: ", MAX_PASSWDLEN, false); + if (encrypt_key == NULL) { + exit_horribly(NULL, "out of memory\n"); + } +} + static void free_dump() { GS_FREE(dumpencoding); @@ -2008,9 +2028,10 @@ static void expand_table_name_patterns( "SELECT c.oid" "\nFROM pg_catalog.pg_class c" "\n LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace" - "\nWHERE c.relkind in ('%c', '%c', '%c', '%c','%c', '%c', '%c')\n", + "\nWHERE c.relkind in ('%c', '%c', '%c', '%c', '%c','%c', '%c', '%c')\n", RELKIND_RELATION, RELKIND_SEQUENCE, + RELKIND_LARGE_SEQUENCE, RELKIND_VIEW, RELKIND_MATVIEW, RELKIND_CONTQUERY, @@ -2217,6 +2238,7 @@ static void selectDumpableTable(Archive* fout, TableInfo* tbinfo) } } + /* * selectDumpableType: policy-setting subroutine * Mark a type as to be dumped or not @@ -2232,6 +2254,15 @@ static void selectDumpableTable(Archive* fout, TableInfo* tbinfo) */ static void selectDumpableType(Archive* fout, TypeInfo* tyinfo) { + /* + * Do not dump type defined by package. + */ + if (GetVersionNum(fout) >= PACKAGE_ENHANCEMENT && + IsPackageObject(fout, tyinfo->dobj.catId.tableoid, tyinfo->dobj.catId.oid)) { + tyinfo->dobj.dump = false; + return; + } + if (GetVersionNum(fout) >= USTORE_UPGRADE_VERSION && IsRbObject(fout, tyinfo->dobj.catId.tableoid, tyinfo->dobj.catId.oid, tyinfo->dobj.name)) { tyinfo->dobj.dump = false; @@ -2868,7 +2899,7 @@ static void guessConstraintInheritance(TableInfo* tblinfo, int numTables) /* Sequences and views never have parents */ if (tbinfo->relkind == RELKIND_SEQUENCE || tbinfo->relkind == RELKIND_VIEW || - tbinfo->relkind == RELKIND_CONTQUERY) + tbinfo->relkind == RELKIND_CONTQUERY || tbinfo->relkind == RELKIND_LARGE_SEQUENCE) continue; /* Don't bother computing anything for non-target tables, either */ @@ -3673,7 +3704,7 @@ static void dumpColumnEncryptionKeys(Archive *fout, const Oid nspoid, const char &deprocessed_cek_len)) { exit_nicely(1); } - + deprocessed_cek = (unsigned char *)pg_realloc(deprocessed_cek, MAX_CLIENT_ENCRYPTION_KEYS_SIZE); char ch = '\''; for (size_t decrypted_key_index = 0; deprocessed_cek[decrypted_key_index] != '\0'; decrypted_key_index++) { @@ -4984,7 +5015,6 @@ TypeInfo* getTypes(Archive* fout, int* numTypes) /* Make sure we are in proper schema */ selectSourceSchema(fout, "pg_catalog"); - if (fout->remoteVersion >= 90200) { appendPQExpBuffer(query, "SELECT tableoid, oid, typname, " @@ -6137,6 +6167,7 @@ static SimpleOidList getDependObjectOid(Archive* fout, SimpleOidList* inputList) break; case RELKIND_SEQUENCE: + case RELKIND_LARGE_SEQUENCE: /* 1. sequence -> table/partition table 2. sequence -> foreign table(default values on foreign tables are not supported) @@ -6512,7 +6543,7 @@ TableInfo* getTables(Archive* fout, int* numTables) "array_to_string(array(SELECT 'toast.' || x FROM unnest(tc.reloptions) x), ', ') AS toast_reloptions " "FROM pg_class c " "LEFT JOIN pg_depend d ON " - "(c.relkind = '%c' AND " + "(c.relkind in ('%c','%c') AND " "d.classid = c.tableoid AND d.objid = c.oid AND " "d.objsubid = 0 AND " "d.refclassid = c.tableoid AND d.deptype = 'a') " @@ -6520,6 +6551,7 @@ TableInfo* getTables(Archive* fout, int* numTables) "WHERE c.oid = %u " "ORDER BY c.oid", RELKIND_SEQUENCE, + RELKIND_LARGE_SEQUENCE, table_include_oids.head->val); } else { appendPQExpBuffer(query, @@ -6560,16 +6592,18 @@ TableInfo* getTables(Archive* fout, int* numTables) "array_to_string(array(SELECT 'toast.' || x FROM unnest(tc.reloptions) x), ', ') AS toast_reloptions " "FROM pg_class c " "LEFT JOIN pg_depend d ON " - "(c.relkind = '%c' AND " + "(c.relkind in ('%c', '%c') AND " "d.classid = c.tableoid AND d.objid = c.oid AND " "d.objsubid = 0 AND " "d.refclassid = c.tableoid AND d.deptype = 'a') " "LEFT JOIN pg_class tc ON (c.reltoastrelid = tc.oid) " - "WHERE c.relkind in ('%c', '%c', '%c', '%c', '%c', '%c', '%c', '%c') AND c.relnamespace != %d " + "WHERE c.relkind in ('%c', '%c', '%c', '%c', '%c', '%c', '%c', '%c', '%c') AND c.relnamespace != %d " "ORDER BY c.oid", RELKIND_SEQUENCE, + RELKIND_LARGE_SEQUENCE, RELKIND_RELATION, RELKIND_SEQUENCE, + RELKIND_LARGE_SEQUENCE, RELKIND_VIEW, RELKIND_MATVIEW, RELKIND_CONTQUERY, @@ -6600,17 +6634,19 @@ TableInfo* getTables(Archive* fout, int* numTables) "array_to_string(array(SELECT 'toast.' || x FROM unnest(tc.reloptions) x), ', ') AS toast_reloptions " "FROM pg_class c " "LEFT JOIN pg_depend d ON " - "(c.relkind = '%c' AND " + "(c.relkind in ('%c', '%c') AND " "d.classid = c.tableoid AND d.objid = c.oid AND " "d.objsubid = 0 AND " "d.refclassid = c.tableoid AND d.deptype = 'a') " "LEFT JOIN pg_class tc ON (c.reltoastrelid = tc.oid) " - "WHERE c.relkind in ('%c', '%c', '%c', '%c') " + "WHERE c.relkind in ('%c', '%c', '%c', '%c', '%c') " "ORDER BY c.oid", username_subquery, RELKIND_SEQUENCE, + RELKIND_LARGE_SEQUENCE, RELKIND_RELATION, RELKIND_SEQUENCE, + RELKIND_LARGE_SEQUENCE, RELKIND_VIEW, RELKIND_COMPOSITE_TYPE); } else if (fout->remoteVersion >= 80400) { @@ -6637,17 +6673,19 @@ TableInfo* getTables(Archive* fout, int* numTables) "array_to_string(array(SELECT 'toast.' || x FROM unnest(tc.reloptions) x), ', ') AS toast_reloptions " "FROM pg_class c " "LEFT JOIN pg_depend d ON " - "(c.relkind = '%c' AND " + "(c.relkind in ('%c', '%c') AND " "d.classid = c.tableoid AND d.objid = c.oid AND " "d.objsubid = 0 AND " "d.refclassid = c.tableoid AND d.deptype = 'a') " "LEFT JOIN pg_class tc ON (c.reltoastrelid = tc.oid) " - "WHERE c.relkind in ('%c', '%c', '%c', '%c') " + "WHERE c.relkind in ('%c', '%c', '%c', '%c', '%c') " "ORDER BY c.oid", username_subquery, RELKIND_SEQUENCE, + RELKIND_LARGE_SEQUENCE, RELKIND_RELATION, RELKIND_SEQUENCE, + RELKIND_LARGE_SEQUENCE, RELKIND_VIEW, RELKIND_COMPOSITE_TYPE); } else if (fout->remoteVersion >= 80200) { @@ -6672,17 +6710,19 @@ TableInfo* getTables(Archive* fout, int* numTables) "NULL AS toast_reloptions " "FROM pg_class c " "LEFT JOIN pg_depend d ON " - "(c.relkind = '%c' AND " + "(c.relkind in ('%c', '%c') AND " "d.classid = c.tableoid AND d.objid = c.oid AND " "d.objsubid = 0 AND " "d.refclassid = c.tableoid AND d.deptype = 'a') " "LEFT JOIN pg_class tc ON (c.reltoastrelid = tc.oid) " - "WHERE c.relkind in ('%c', '%c', '%c', '%c') " + "WHERE c.relkind in ('%c', '%c', '%c', '%c', '%c') " "ORDER BY c.oid", username_subquery, RELKIND_SEQUENCE, + RELKIND_LARGE_SEQUENCE, RELKIND_RELATION, RELKIND_SEQUENCE, + RELKIND_LARGE_SEQUENCE, RELKIND_VIEW, RELKIND_COMPOSITE_TYPE); } else if (fout->remoteVersion >= 80000) { @@ -6708,16 +6748,18 @@ TableInfo* getTables(Archive* fout, int* numTables) "NULL AS toast_reloptions " "FROM pg_class c " "LEFT JOIN pg_depend d ON " - "(c.relkind = '%c' AND " + "(c.relkind = ('%c', '%c') AND " "d.classid = c.tableoid AND d.objid = c.oid AND " "d.objsubid = 0 AND " "d.refclassid = c.tableoid AND d.deptype = 'i') " - "WHERE relkind in ('%c', '%c', '%c', '%c') " + "WHERE relkind in ('%c', '%c', '%c', '%c', '%c') " "ORDER BY c.oid", username_subquery, RELKIND_SEQUENCE, + RELKIND_LARGE_SEQUENCE, RELKIND_RELATION, RELKIND_SEQUENCE, + RELKIND_LARGE_SEQUENCE, RELKIND_VIEW, RELKIND_COMPOSITE_TYPE); } else if (fout->remoteVersion >= 70300) { @@ -6743,16 +6785,18 @@ TableInfo* getTables(Archive* fout, int* numTables) "NULL AS toast_reloptions " "FROM pg_class c " "LEFT JOIN pg_depend d ON " - "(c.relkind = '%c' AND " + "(c.relkind in ('%c', '%c') AND " "d.classid = c.tableoid AND d.objid = c.oid AND " "d.objsubid = 0 AND " "d.refclassid = c.tableoid AND d.deptype = 'i') " - "WHERE relkind IN ('%c', '%c', '%c', '%c') " + "WHERE relkind IN ('%c', '%c', '%c', '%c', '%c') " "ORDER BY c.oid", username_subquery, RELKIND_SEQUENCE, + RELKIND_LARGE_SEQUENCE, RELKIND_RELATION, RELKIND_SEQUENCE, + RELKIND_LARGE_SEQUENCE, RELKIND_VIEW, RELKIND_COMPOSITE_TYPE); } else if (fout->remoteVersion >= 70200) { @@ -6773,11 +6817,12 @@ TableInfo* getTables(Archive* fout, int* numTables) "NULL AS reloptions, " "NULL AS toast_reloptions " "FROM pg_class " - "WHERE relkind IN ('%c', '%c', '%c') " + "WHERE relkind IN ('%c', '%c', '%c', '%c') " "ORDER BY oid", username_subquery, RELKIND_RELATION, RELKIND_SEQUENCE, + RELKIND_LARGE_SEQUENCE, RELKIND_VIEW); } else if (fout->remoteVersion >= 70100) { /* all tables have oids in 7.1 */ @@ -6799,11 +6844,12 @@ TableInfo* getTables(Archive* fout, int* numTables) "NULL AS reloptions, " "NULL AS toast_reloptions " "FROM pg_class " - "WHERE relkind IN ('%c', '%c', '%c') " + "WHERE relkind IN ('%c', '%c', '%c', '%c') " "ORDER BY oid", username_subquery, RELKIND_RELATION, RELKIND_SEQUENCE, + RELKIND_LARGE_SEQUENCE, RELKIND_VIEW); } else { /* @@ -6835,12 +6881,13 @@ TableInfo* getTables(Archive* fout, int* numTables) "NULL AS reloptions, " "NULL AS toast_reloptions " "FROM pg_class c " - "WHERE relkind IN ('%c', '%c') " + "WHERE relkind IN ('%c', '%c', '%c') " "ORDER BY oid", RELKIND_VIEW, username_subquery, RELKIND_RELATION, - RELKIND_SEQUENCE); + RELKIND_SEQUENCE, + RELKIND_LARGE_SEQUENCE); } res = ExecuteSqlQuery(fout, query->data, PGRES_TUPLES_OK); @@ -8800,7 +8847,7 @@ void getTableAttrs(Archive* fout, TableInfo* tblinfo, int numTables) TableInfo* tbinfo = &tblinfo[i]; /* Don't bother to collect info for sequences */ - if (tbinfo->relkind == RELKIND_SEQUENCE) + if (RELKIND_IS_SEQUENCE(tbinfo->relkind)) continue; /* Don't bother with uninteresting tables, either */ @@ -9026,6 +9073,10 @@ void getTableAttrs(Archive* fout, TableInfo* tblinfo, int numTables) if (temp_column_name != NULL && strcmp(temp_column_name, tbinfo->attnames[j]) == 0) { tbinfo->column_key_names[j] = gs_strdup(PQgetvalue(ce_res, k, i_column_key_name)); tbinfo->encryption_type[j] = atoi(PQgetvalue(ce_res, k, i_encryption_type)); + if (tbinfo->atttypnames[j] != NULL) { + free(tbinfo->atttypnames[j]); + tbinfo->atttypnames[j] = NULL; + } tbinfo->atttypnames[j] = gs_strdup(PQgetvalue(ce_res, k, i_client_encryption_original_type)); break; } @@ -10448,8 +10499,8 @@ static void dumpDumpableObject(Archive* fout, DumpableObject* dobj) } } - if (RELKIND_SEQUENCE == tbinfo->relkind) - dumpSequenceData(fout, (TableDataInfo*)dobj); + if (RELKIND_IS_SEQUENCE(tbinfo->relkind)) + dumpSequenceData(fout, (TableDataInfo*)dobj, tbinfo->relkind == RELKIND_LARGE_SEQUENCE); else dumpTableData(fout, (TableDataInfo*)dobj); break; @@ -10873,10 +10924,117 @@ static void dumpType(Archive* fout, TypeInfo* tyinfo) dumpEnumType(fout, tyinfo); else if (tyinfo->typtype == TYPTYPE_RANGE) dumpRangeType(fout, tyinfo); + else if (tyinfo->typtype == TYPTYPE_TABLEOF) + dumpTableofType(fout, tyinfo); else write_msg(NULL, "WARNING: typtype of data type \"%s\" appears to be invalid\n", tyinfo->dobj.name); } +/* + * dumpTableofType + * writes out to fout the queries to recreate a user-defined tableof type + */ +static void dumpTableofType(Archive* fout, TypeInfo* tyinfo) +{ + PQExpBuffer q = createPQExpBuffer(); + PQExpBuffer delq = createPQExpBuffer(); + PQExpBuffer labelq = createPQExpBuffer(); + PQExpBuffer query = createPQExpBuffer(); + PGresult* res = NULL; + int num = 0; + int i = 0; + char* qtypname = NULL; + char* label = NULL; + int field_num = -1; + + /* Set proper schema search path */ + selectSourceSchema(fout, "pg_catalog"); + appendPQExpBuffer(query, + "SELECT typname " + "FROM pg_catalog.pg_type join " + "(select typelem from pg_catalog.pg_type " + "WHERE oid = '%u') t " + "on oid = t.typelem", + tyinfo->typelem); + + res = ExecuteSqlQuery(fout, query->data, PGRES_TUPLES_OK); + num = PQntuples(res); + /* + * DROP must be fully qualified in case same name appears in pg_catalog. + * CASCADE shouldn't be required here as for normal types since the I/O + * functions are generic and do not get dropped. + */ + appendPQExpBuffer(delq, "DROP TYPE %s%s.", if_exists, fmtId(tyinfo->dobj.nmspace->dobj.name)); + appendPQExpBuffer(delq, "%s%s;\n", qtypname, if_cascade); + + qtypname = gs_strdup(fmtId(tyinfo->dobj.name)); + appendPQExpBuffer(q, "CREATE TYPE %s AS TABLE OF ", qtypname); + + if (num > 1) { + PQclear(res); + destroyPQExpBuffer(query); + return; + } + field_num = PQfnumber(res, "typname"); + label = PQgetvalue(res, i, field_num); + appendPQExpBuffer(q, "%s;\n", fmtId(label)); + + appendPQExpBuffer(labelq, "TYPE %s", qtypname); + + ArchiveEntry(fout, + tyinfo->dobj.catId, + tyinfo->dobj.dumpId, + tyinfo->dobj.name, + tyinfo->dobj.nmspace->dobj.name, + NULL, + tyinfo->rolname, + false, + "TYPE", + SECTION_PRE_DATA, + q->data, + delq->data, + NULL, + NULL, + 0, + NULL, + NULL); + + /* Dump Type Comments and Security Labels */ + dumpComment(fout, + labelq->data, + tyinfo->dobj.nmspace->dobj.name, + tyinfo->rolname, + tyinfo->dobj.catId, + 0, + tyinfo->dobj.dumpId); + dumpSecLabel(fout, + labelq->data, + tyinfo->dobj.nmspace->dobj.name, + tyinfo->rolname, + tyinfo->dobj.catId, + 0, + tyinfo->dobj.dumpId); + + dumpACL(fout, + tyinfo->dobj.catId, + tyinfo->dobj.dumpId, + "TYPE", + qtypname, + NULL, + tyinfo->dobj.name, + tyinfo->dobj.nmspace->dobj.name, + tyinfo->rolname, + tyinfo->typacl); + + PQclear(res); + destroyPQExpBuffer(q); + destroyPQExpBuffer(delq); + destroyPQExpBuffer(labelq); + destroyPQExpBuffer(query); + free(qtypname); + qtypname = NULL; +} + /* * dumpEnumType * writes out to fout the queries to recreate a user-defined enum type @@ -15527,6 +15685,9 @@ static void dumpDefaultACL(Archive* fout, DefaultACLInfo* daclinfo) case DEFACLOBJ_SEQUENCE: type = "SEQUENCES"; break; + case DEFACLOBJ_LARGE_SEQUENCE: + type = "LARGE SEQUENCES"; + break; case DEFACLOBJ_FUNCTION: type = "FUNCTIONS"; break; @@ -15978,17 +16139,20 @@ static void dumpTable(Archive* fout, TableInfo* tbinfo) if (tbinfo->dobj.dump && !dataOnly) { char* namecopy = NULL; - if (tbinfo->relkind == RELKIND_SEQUENCE) - dumpSequence(fout, tbinfo); + if (RELKIND_IS_SEQUENCE(tbinfo->relkind)) + dumpSequence(fout, tbinfo, tbinfo->relkind == RELKIND_LARGE_SEQUENCE); else dumpTableSchema(fout, tbinfo); /* Handle the ACL here */ namecopy = gs_strdup(fmtId(tbinfo->dobj.name)); + const char* kind = RELKIND_IS_SEQUENCE(tbinfo->relkind) ? + (tbinfo->relkind == RELKIND_SEQUENCE ? "SEQUENCE" : "LARGE SEQUENCE") : + "TABLE"; dumpACL(fout, tbinfo->dobj.catId, tbinfo->dobj.dumpId, - (tbinfo->relkind == RELKIND_SEQUENCE) ? "SEQUENCE" : "TABLE", + kind, namecopy, NULL, tbinfo->dobj.name, @@ -17167,6 +17331,221 @@ static void OutputIntervalPartitionDef(Archive* fout, const PGresult* res, PQExp free(interTblSpcs); } +static void GenerateSubPartitionBy(PQExpBuffer result, Archive *fout, TableInfo *tbinfo) +{ + int i; + int i_partkey; + int i_partkeynum; + char partStrategy; + int partkeynum; + Oid *partkeycols = NULL; + PQExpBuffer subPartStrategyQ = createPQExpBuffer(); + PGresult *res = NULL; + + /* get subpartitioned table's partstrategy */ + appendPQExpBuffer(subPartStrategyQ, + "SELECT partstrategy " + "FROM pg_partition a " + "INNER JOIN (SELECT oid FROM pg_partition b WHERE b.parentid = '%u' AND b.parttype = '%c') c " + "ON a.parentid = c.oid", + tbinfo->dobj.catId.oid, PART_OBJ_TYPE_TABLE_PARTITION); + res = ExecuteSqlQuery(fout, subPartStrategyQ->data, PGRES_TUPLES_OK); + Assert(PQntuples(res) > 0); + partStrategy = *PQgetvalue(res, 0, 0); + PQclear(res); + + /* get subpartitioned table's partkey */ + resetPQExpBuffer(subPartStrategyQ); + appendPQExpBuffer(subPartStrategyQ, + "SELECT array_length(partkey, 1) AS partkeynum, partkey " + "FROM pg_partition WHERE parentid = '%u' AND parttype = '%c'", + tbinfo->dobj.catId.oid, PART_OBJ_TYPE_TABLE_PARTITION); + res = ExecuteSqlQuery(fout, subPartStrategyQ->data, PGRES_TUPLES_OK); + Assert(PQntuples(res) > 0); + i_partkeynum = PQfnumber(res, "partkeynum"); + i_partkey = PQfnumber(res, "partkey"); + partkeynum = atoi(PQgetvalue(res, 0, i_partkeynum)); + partkeycols = (Oid *)pg_malloc((size_t)partkeynum * sizeof(Oid)); + parseOidArray(PQgetvalue(res, 0, i_partkey), partkeycols, partkeynum); + + switch (partStrategy) { + case PART_STRATEGY_LIST: + appendPQExpBuffer(result, "SUBPARTITION BY LIST ("); + break; + case PART_STRATEGY_HASH: + appendPQExpBuffer(result, "SUBPARTITION BY HASH ("); + break; + case PART_STRATEGY_RANGE: + appendPQExpBuffer(result, "SUBPARTITION BY RANGE ("); + break; + default: + exit_horribly(NULL, "unsupported subpartition type %c\n", partStrategy); + } + + /* assign subpartitioning columns */ + for (i = 0; i < partkeynum; i++) { + if (i > 0) + appendPQExpBuffer(result, ", "); + if (partkeycols[i] < 1) { + exit_horribly(NULL, "array index should not be smaller than zero: %d\n", partkeycols[i] - 1); + } + appendPQExpBuffer(result, "%s", fmtId(tbinfo->attnames[partkeycols[i] - 1])); + } + appendPQExpBuffer(result, ")\n"); + + PQclear(res); + destroyPQExpBuffer(subPartStrategyQ); + free(partkeycols); +} + +static void GenerateSubPartitionDetail(PQExpBuffer result, Archive *fout, TableInfo *tbinfo, Oid partOid, + int subpartkeynum, Oid *subpartkeycols) +{ + int i, j; + int i_partname; + int *i_partboundary = NULL; + int i_boundaries; + int i_boundStr; + int i_reltblspc; + int i_subpartStrategy; + char subpartStrategy; + int ntups; + + appendPQExpBuffer(result, "\n ("); + + PQExpBuffer subPartDetailQ = createPQExpBuffer(); + PGresult *res = NULL; + + appendPQExpBuffer(subPartDetailQ, "SELECT p.relname AS partName, p.partstrategy AS partstrategy, "); + for (i = 1; i <= subpartkeynum; i++) { + appendPQExpBuffer(subPartDetailQ, "p.boundaries[%d] AS partBoundary_%d, ", i, i); + } + appendPQExpBuffer(subPartDetailQ, + "array_to_string(p.boundaries, ',') as bound, " + "array_to_string(p.boundaries, ''',''') as boundstr, " + "t.spcname AS reltblspc " + "FROM pg_partition p LEFT JOIN pg_tablespace t " + "ON p.reltablespace = t.oid " + "WHERE p.parentid = '%u' AND p.parttype = '%c' " + "ORDER BY ", + partOid, PART_OBJ_TYPE_TABLE_SUB_PARTITION); + for (i = 1; i <= subpartkeynum; i++) { + if (i == subpartkeynum) { + appendPQExpBuffer(subPartDetailQ, "p.boundaries[%d]::%s ASC", i, + tbinfo->atttypnames[subpartkeycols[i - 1] - 1]); + } else { + appendPQExpBuffer(subPartDetailQ, "p.boundaries[%d]::%s, ", i, + tbinfo->atttypnames[subpartkeycols[i - 1] - 1]); + } + } + res = ExecuteSqlQuery(fout, subPartDetailQ->data, PGRES_TUPLES_OK); + + i_partname = PQfnumber(res, "partName"); + i_partboundary = (int *)pg_malloc(subpartkeynum * sizeof(int)); + for (i = 1; i <= subpartkeynum; i++) { + char checkRowName[32] = {0}; + int nRet = 0; + nRet = snprintf_s(checkRowName, sizeof(checkRowName) / sizeof(char), sizeof(checkRowName) / sizeof(char) - 1, + "partBoundary_%d", i); + securec_check_ss_c(nRet, "\0", "\0"); + i_partboundary[i - 1] = PQfnumber(res, checkRowName); + } + i_boundaries = PQfnumber(res, "bound"); + i_boundStr = PQfnumber(res, "boundstr"); + i_reltblspc = PQfnumber(res, "reltblspc"); + i_subpartStrategy = PQfnumber(res, "partstrategy"); + ntups = PQntuples(res); + + /* + * Restructure the subpartition definition by checking the information in + * pg_partition. Notes: the top boundary could be MAXVALUE, so we should + * check before restructuring. + */ + for (i = 0; i < ntups; i++) { + char *pname = gs_strdup(PQgetvalue(res, i, i_partname)); + subpartStrategy = *PQgetvalue(res, i, i_subpartStrategy); + + if (i > 0) { + appendPQExpBuffer(result, ","); + } + appendPQExpBuffer(result, "\n "); + if (subpartStrategy == PART_STRATEGY_LIST) { + appendPQExpBuffer(result, "SUBPARTITION %s VALUES (", fmtId(pname)); + } else if (subpartStrategy == PART_STRATEGY_HASH) { + appendPQExpBuffer(result, "SUBPARTITION %s ", fmtId(pname)); + } else { /* PART_STRATEGY_RANGE */ + appendPQExpBuffer(result, "SUBPARTITION %s VALUES LESS THAN (", fmtId(pname)); + } + if (subpartStrategy == PART_STRATEGY_RANGE) { + for (j = 0; j < subpartkeynum; j++) { + char *pvalue = NULL; + if (!PQgetisnull(res, i, i_partboundary[j])) { + pvalue = gs_strdup(PQgetvalue(res, i, i_partboundary[j])); + } + + if (j > 0) { + appendPQExpBuffer(result, ","); + } + + if (pvalue == NULL) { + appendPQExpBuffer(result, "MAXVALUE"); + continue; + } else if (isTypeString(tbinfo, subpartkeycols[j])) { + appendPQExpBuffer(result, "'%s'", pvalue); + } else { + appendPQExpBuffer(result, "%s", pvalue); + } + + free(pvalue); + pvalue = NULL; + } + appendPQExpBuffer(result, ")"); + } else if (subpartStrategy == PART_STRATEGY_LIST) { + char *boundaryValue = NULL; + if (!PQgetisnull(res, i, i_boundaries)) { + boundaryValue = gs_strdup(PQgetvalue(res, i, i_boundaries)); + } + if (boundaryValue == NULL || (boundaryValue != NULL && strlen(boundaryValue) == 0)) { + appendPQExpBuffer(result, "DEFAULT"); + } else if (isTypeString(tbinfo, subpartkeycols[0])) { + char *boundStr = gs_strdup(PQgetvalue(res, i, i_boundStr)); + appendPQExpBuffer(result, "'%s'", boundStr); + free(boundStr); + } else { + appendPQExpBuffer(result, "%s", boundaryValue); + } + if (boundaryValue != NULL) { + free(boundaryValue); + boundaryValue = NULL; + } + + appendPQExpBuffer(result, ")"); + } + /* + * Append subpartition tablespace. + * Skip it, if subpartition tablespace is the same as partition tablespace. + */ + if (!PQgetisnull(res, i, i_reltblspc)) { + char *parttblspc = gs_strdup(PQgetvalue(res, i, i_reltblspc)); + if (strcmp(parttblspc, tbinfo->reltablespace) != 0) { + appendPQExpBuffer(result, " TABLESPACE %s", fmtId(parttblspc)); + } + free(parttblspc); + parttblspc = NULL; + } else { + appendPQExpBuffer(result, " TABLESPACE pg_default"); + } + free(pname); + pname = NULL; + } + + appendPQExpBuffer(result, "\n )"); + + PQclear(res); + destroyPQExpBuffer(subPartDetailQ); + free(i_partboundary); +} + /* * createTablePartition * Write the declaration of partitioned table. @@ -17266,7 +17645,13 @@ static PQExpBuffer createTablePartition(Archive* fout, TableInfo* tbinfo) } appendPQExpBuffer(result, "%s", fmtId(tbinfo->attnames[partkeycols[i] - 1])); } - appendPQExpBuffer(result, ")\n"); + + if (tbinfo->parttype == PARTTYPE_SUBPARTITIONED_RELATION) { + appendPQExpBuffer(result, ") "); + GenerateSubPartitionBy(result, fout, tbinfo); + } else { + appendPQExpBuffer(result, ")\n"); + } if (partStrategy == PART_STRATEGY_INTERVAL) { OutputIntervalPartitionDef(fout, res, result); @@ -17284,7 +17669,11 @@ static PQExpBuffer createTablePartition(Archive* fout, TableInfo* tbinfo) i_partboundary = (int*)pg_malloc(partkeynum * sizeof(int)); /* get table partitions info */ - appendPQExpBuffer(partitionq, "SELECT p.relname AS partName, "); + appendPQExpBuffer(partitionq, + "SELECT p.oid as oid, " + "p.relname AS partName, " + "array_length(partkey, 1) AS subpartkeynum, " + "partkey AS subpartkey, "); for (i = 1; i <= partkeynum; i++) appendPQExpBuffer(partitionq, "p.boundaries[%d] AS partBoundary_%d, ", i, i); @@ -17323,6 +17712,9 @@ static PQExpBuffer createTablePartition(Archive* fout, TableInfo* tbinfo) } int iBoundaries = PQfnumber(res, "bound"); int iBoundStr = PQfnumber(res, "boundstr"); + int iPartoid = PQfnumber(res, "oid"); + int iSubpartkeynum = PQfnumber(res, "subpartkeynum"); + int iSubpartkey = PQfnumber(res, "subpartkey"); i_reltblspc = PQfnumber(res, "reltblspc"); ntups = PQntuples(res); @@ -17370,16 +17762,21 @@ static PQExpBuffer createTablePartition(Archive* fout, TableInfo* tbinfo) char* boundaryValue = NULL; if (!PQgetisnull(res, i, iBoundaries)) { boundaryValue = gs_strdup(PQgetvalue(res, i, iBoundaries)); - if (isTypeString(tbinfo, partkeycols[0])) { - char* boundStr = gs_strdup(PQgetvalue(res, i, iBoundStr)); - appendPQExpBuffer(result, "'%s'", boundStr); - free(boundStr); - } - else - appendPQExpBuffer(result, "%s", boundaryValue); + } + if (boundaryValue == NULL || (boundaryValue != NULL && strlen(boundaryValue) == 0)) { + appendPQExpBuffer(result, "DEFAULT"); + } else if (isTypeString(tbinfo, partkeycols[0])) { + char *boundStr = gs_strdup(PQgetvalue(res, i, iBoundStr)); + appendPQExpBuffer(result, "'%s'", boundStr); + free(boundStr); + } else { + appendPQExpBuffer(result, "%s", boundaryValue); + } + if (boundaryValue != NULL) { free(boundaryValue); boundaryValue = NULL; } + appendPQExpBuffer(result, ")"); } /* @@ -17397,6 +17794,15 @@ static PQExpBuffer createTablePartition(Archive* fout, TableInfo* tbinfo) } free(pname); pname = NULL; + + if (tbinfo->parttype == PARTTYPE_SUBPARTITIONED_RELATION) { + Oid partid = atooid(PQgetvalue(res, i, iPartoid)); + int subpartkeynum = atoi(PQgetvalue(res, 0, iSubpartkeynum)); + Oid* subpartkeycols = (Oid*)pg_malloc((size_t)subpartkeynum * sizeof(Oid)); + parseOidArray(PQgetvalue(res, 0, iSubpartkey), subpartkeycols, subpartkeynum); + GenerateSubPartitionDetail(result, fout, tbinfo, partid, subpartkeynum, subpartkeycols); + free(subpartkeycols); + } } appendPQExpBuffer(result, "\n)"); @@ -18246,11 +18652,14 @@ static void dumpTableSchema(Archive* fout, TableInfo* tbinfo) if (binary_upgrade) { binary_upgrade_set_pg_class_oids(fout, q, tbinfo->dobj.catId.oid, false, false); if (tbinfo->parttype == PARTTYPE_PARTITIONED_RELATION || - tbinfo->parttype == PARTTYPE_VALUE_PARTITIONED_RELATION) { + tbinfo->parttype == PARTTYPE_SUBPARTITIONED_RELATION || + tbinfo->parttype == PARTTYPE_VALUE_PARTITIONED_RELATION || + tbinfo->parttype == PARTTYPE_SUBPARTITIONED_RELATION) { binary_upgrade_set_pg_partition_oids(fout, q, tbinfo, NULL, false); } if (isColumnStoreTbl) { + /* cstore doesn't support subpartition now */ if (tbinfo->parttype == PARTTYPE_PARTITIONED_RELATION) { bupgrade_set_pg_partition_cstore_oids(fout, q, tbinfo, NULL, false); } else { @@ -18324,7 +18733,7 @@ static void dumpTableSchema(Archive* fout, TableInfo* tbinfo) destroyPQExpBuffer(getHashbucketQuery); fout->getHashbucketInfo = true; } - if (tbinfo->parttype == PARTTYPE_PARTITIONED_RELATION) { + if (tbinfo->parttype == PARTTYPE_PARTITIONED_RELATION || tbinfo->parttype == PARTTYPE_SUBPARTITIONED_RELATION) { appendPQExpBuffer(q, "CREATE %s %s", reltypename, fmtId(tbinfo->dobj.name)); } else { const char *tableType = nullptr; @@ -18463,10 +18872,11 @@ static void dumpTableSchema(Archive* fout, TableInfo* tbinfo) if (is_clientlogic_datatype(tbinfo->typid[j])) { size_t plainTextSize = 0; unsigned char *plaintext = NULL; - int originalTypeId = TypesMap::typesTextToOidMap.find(tbinfo->atttypnames[j]); + int originalTypeId = tbinfo->atttypmod[j]; + ProcessStatus process_status = ADD_QUOTATION_MARK; ValuesProcessor::deprocess_value(((ArchiveHandle *)fout)->connection, (unsigned char *)default_value, strlen(default_value), originalTypeId, 0, &plaintext, - plainTextSize, true); + plainTextSize, process_status); default_value = (char *)plaintext; } #endif @@ -18475,6 +18885,11 @@ static void dumpTableSchema(Archive* fout, TableInfo* tbinfo) default_value); else appendPQExpBuffer(q, " DEFAULT %s", default_value); +#ifdef HAVE_CE + if (is_clientlogic_datatype(tbinfo->typid[j])) { + libpq_free(default_value); + } +#endif } if (has_notnull) appendPQExpBuffer(q, " NOT NULL"); @@ -18629,8 +19044,10 @@ static void dumpTableSchema(Archive* fout, TableInfo* tbinfo) * partitioned.(But for toast table, i have no idea about whether * it has partitioned porperties. */ - if ((tbinfo->parttype == PARTTYPE_PARTITIONED_RELATION && tbinfo->relkind != RELKIND_FOREIGN_TABLE - && tbinfo->relkind != RELKIND_STREAM) || tbinfo->parttype == PARTTYPE_VALUE_PARTITIONED_RELATION) { + if (((tbinfo->parttype == PARTTYPE_PARTITIONED_RELATION || + tbinfo->parttype == PARTTYPE_SUBPARTITIONED_RELATION) && + tbinfo->relkind != RELKIND_FOREIGN_TABLE && tbinfo->relkind != RELKIND_STREAM) || + tbinfo->parttype == PARTTYPE_VALUE_PARTITIONED_RELATION) { PQExpBuffer result; result = createTablePartition(fout, tbinfo); if (result != NULL) { @@ -19496,6 +19913,7 @@ static void dumpIndex(Archive* fout, IndxInfo* indxinfo) binary_upgrade_set_pg_class_oids(fout, q, indxinfo->dobj.catId.oid, true, false); if (tbinfo->parttype == PARTTYPE_PARTITIONED_RELATION || + tbinfo->parttype == PARTTYPE_SUBPARTITIONED_RELATION || tbinfo->parttype == PARTTYPE_VALUE_PARTITIONED_RELATION) { binary_upgrade_set_pg_partition_oids(fout, q, tbinfo, indxinfo, true); } @@ -19764,6 +20182,7 @@ static void dumpConstraint(Archive* fout, ConstraintInfo* coninfo) binary_upgrade_set_pg_class_oids(fout, q, indxinfo->dobj.catId.oid, true, false); if (tbinfo->parttype == PARTTYPE_PARTITIONED_RELATION || + tbinfo->parttype == PARTTYPE_SUBPARTITIONED_RELATION || tbinfo->parttype == PARTTYPE_VALUE_PARTITIONED_RELATION) { binary_upgrade_set_pg_partition_oids(fout, q, tbinfo, indxinfo, true); } @@ -20034,7 +20453,7 @@ static Oid findLastBuiltinOid_V70(Archive* fout) * dumpSequence * write the declaration (not data) of one user-defined sequence */ -static void dumpSequence(Archive* fout, TableInfo* tbinfo) +static void dumpSequence(Archive* fout, TableInfo* tbinfo, bool large) { PGresult* res = NULL; char* startv = NULL; @@ -20046,6 +20465,7 @@ static void dumpSequence(Archive* fout, TableInfo* tbinfo) char bufx[100] = {0}; bool cycled = false; int nRet = 0; + const char* optLarge = large ? "LARGE" : ""; PQExpBuffer query = createPQExpBuffer(); PQExpBuffer delqry = createPQExpBuffer(); PQExpBuffer labelq = createPQExpBuffer(); @@ -20127,7 +20547,7 @@ static void dumpSequence(Archive* fout, TableInfo* tbinfo) /* * DROP must be fully qualified in case same name appears in pg_catalog */ - appendPQExpBuffer(delqry, "DROP SEQUENCE IF EXISTS %s.", fmtId(tbinfo->dobj.nmspace->dobj.name)); + appendPQExpBuffer(delqry, "DROP %s SEQUENCE IF EXISTS %s.", optLarge, fmtId(tbinfo->dobj.nmspace->dobj.name)); appendPQExpBuffer(delqry, "%s%s;\n", fmtId(tbinfo->dobj.name), if_cascade); resetPQExpBuffer(query); @@ -20142,11 +20562,11 @@ static void dumpSequence(Archive* fout, TableInfo* tbinfo) * So when use include_depend_objs and -p, we should also add the function. */ if (include_depend_objs && !outputClean && (*format == 'p')) { - appendPQExpBuffer(query, "DROP SEQUENCE IF EXISTS %s.", fmtId(tbinfo->dobj.nmspace->dobj.name)); + appendPQExpBuffer(query, "DROP %s SEQUENCE IF EXISTS %s.", optLarge, fmtId(tbinfo->dobj.nmspace->dobj.name)); appendPQExpBuffer(query, "%s CASCADE;\n", fmtId(tbinfo->dobj.name)); } - appendPQExpBuffer(query, "CREATE SEQUENCE %s\n", fmtId(tbinfo->dobj.name)); + appendPQExpBuffer(query, "CREATE %s SEQUENCE %s\n", optLarge, fmtId(tbinfo->dobj.name)); if (fout->remoteVersion >= 80400) appendPQExpBuffer(query, " START WITH %s\n", startv); @@ -20167,7 +20587,7 @@ static void dumpSequence(Archive* fout, TableInfo* tbinfo) appendPQExpBuffer(query, ";\n"); - appendPQExpBuffer(labelq, "SEQUENCE %s", fmtId(tbinfo->dobj.name)); + appendPQExpBuffer(labelq, "%s SEQUENCE %s", optLarge, fmtId(tbinfo->dobj.name)); /* binary_upgrade: no need to clear TOAST table oid */ if (binary_upgrade) @@ -20181,7 +20601,7 @@ static void dumpSequence(Archive* fout, TableInfo* tbinfo) NULL, tbinfo->rolname, false, - "SEQUENCE", + large ? "LARGE SEQUENCE" : "SEQUENCE", SECTION_PRE_DATA, query->data, delqry->data, @@ -20208,10 +20628,9 @@ static void dumpSequence(Archive* fout, TableInfo* tbinfo) if (NULL != owning_tab && owning_tab->dobj.dump) { resetPQExpBuffer(query); - appendPQExpBuffer(query, "ALTER SEQUENCE %s", fmtId(tbinfo->dobj.name)); + appendPQExpBuffer(query, "ALTER %s SEQUENCE %s", optLarge, fmtId(tbinfo->dobj.name)); appendPQExpBuffer(query, " OWNED BY %s", fmtId(owning_tab->dobj.name)); appendPQExpBuffer(query, ".%s;\n", fmtId(owning_tab->attnames[tbinfo->owning_col - 1])); - ArchiveEntry(fout, nilCatalogId, createDumpId(), @@ -20220,7 +20639,7 @@ static void dumpSequence(Archive* fout, TableInfo* tbinfo) NULL, tbinfo->rolname, false, - "SEQUENCE OWNED BY", + large ? "SEQUENCE OWNED BY" : "LARGE SEQUENCE OWNED BY", SECTION_PRE_DATA, query->data, "", @@ -20259,7 +20678,7 @@ static void dumpSequence(Archive* fout, TableInfo* tbinfo) * dumpSequenceData * write the data of one user-defined sequence */ -static void dumpSequenceData(Archive* fout, TableDataInfo* tdinfo) +static void dumpSequenceData(Archive* fout, TableDataInfo* tdinfo, bool large) { TableInfo* tbinfo = tdinfo->tdtable; PGresult* res = NULL; @@ -20338,10 +20757,10 @@ static void dumpSequenceData(Archive* fout, TableDataInfo* tdinfo) if (PQresultStatus(res) != PGRES_TUPLES_OK) { /*Check if it fail because of reaching maximum value or not*/ char* errMessage = PQerrorMessage(AH->connection); - if (strstr(errMessage, "Sequence reached maximum value") != NULL) { + if (strstr(errMessage, "reached maximum value") != NULL) { last = max; called = true; - } else if (strstr(errMessage, "Sequence reached minimum value") != NULL) { + } else if (strstr(errMessage, "reached minimum value") != NULL) { last = min; called = true; } else { @@ -20376,6 +20795,8 @@ static void dumpSequenceData(Archive* fout, TableDataInfo* tdinfo) appendStringLiteralAH(query, fmtId(tbinfo->dobj.name), fout); appendPQExpBuffer(query, ", %s, %s);\n", last, (called ? "true" : "false")); + const char* sequenceSet = large ? "LARGE SEQUENCE SET" : "SEQUENCE SET"; + ArchiveEntry(fout, nilCatalogId, createDumpId(), @@ -20384,7 +20805,7 @@ static void dumpSequenceData(Archive* fout, TableDataInfo* tdinfo) NULL, tbinfo->rolname, false, - "SEQUENCE SET", + sequenceSet, SECTION_DATA, query->data, "", @@ -20884,6 +21305,13 @@ static void dumpSynonym(Archive* fout) objId.tableoid = atooid(PQgetvalue(res, i, i_tableoid)); objId.oid = atooid(PQgetvalue(res, i, i_oid)); + /* + * Do not dump synonym defined by package. + */ + if (GetVersionNum(fout) >= PACKAGE_ENHANCEMENT && + IsPackageObject(fout, objId.tableoid, objId.oid)) { + continue; + } synname = gs_strdup(PQgetvalue(res, i, i_synname)); nspname = gs_strdup(PQgetvalue(res, i, i_nspname)); rolname = gs_strdup(PQgetvalue(res, i, i_rolname)); @@ -21258,7 +21686,6 @@ static void addBoundaryDependencies(DumpableObject** dobjs, int numObjs, Dumpabl case DO_TYPE: case DO_SHELL_TYPE: case DO_FUNC: - case DO_PACKAGE: case DO_AGG: case DO_OPERATOR: case DO_OPCLASS: @@ -21282,6 +21709,11 @@ static void addBoundaryDependencies(DumpableObject** dobjs, int numObjs, Dumpabl break; case DO_TABLE_DATA: case DO_BLOB_DATA: + /* + * This is more of a hack fix to break dependency loop due to untracked dependencies. + * Consider move it back to pre-data catagory after dependencies are correctly handled. + */ + case DO_PACKAGE: /* Data objects: must come between the boundaries */ addObjectDependency(dobj, preDataBound->dumpId); addObjectDependency(postDataBound, dobj->dumpId); @@ -21881,3 +22313,27 @@ static void find_current_connection_node_type(Archive* fout) PQclear(res); } } + +static bool IsPackageObject(Archive* fout, Oid classid, Oid objid) +{ + PGresult* res = NULL; + PQExpBuffer query = createPQExpBuffer(); + const int gs_package_oid = 7815; + int colNum = 0; + int tupNum = 0; + int count; + + /* Make sure we are in proper schema */ + selectSourceSchema(fout, "pg_catalog"); + + appendPQExpBuffer(query, + "SELECT count(*) from pg_depend where classid = %d and objid = %d and refclassid = %d and deptype = 'a'", + classid, objid, gs_package_oid); + + res = ExecuteSqlQuery(fout, query->data, PGRES_TUPLES_OK); + colNum = PQfnumber(res, "count"); + count = atoi(PQgetvalue(res, tupNum, colNum)); + PQclear(res); + destroyPQExpBuffer(query); + return count > 0; +} diff --git a/src/bin/pg_dump/pg_dump.h b/src/bin/pg_dump/pg_dump.h index 03a32a2a6..4c7fdbc93 100644 --- a/src/bin/pg_dump/pg_dump.h +++ b/src/bin/pg_dump/pg_dump.h @@ -59,7 +59,6 @@ typedef enum { DO_TYPE, DO_SHELL_TYPE, DO_FUNC, - DO_PACKAGE, DO_AGG, DO_OPERATOR, DO_OPCLASS, @@ -75,6 +74,7 @@ typedef enum { DO_FK_CONSTRAINT, /* see note for ConstraintInfo */ DO_PROCLANG, DO_CAST, + DO_PACKAGE, DO_TABLE_DATA, DO_DUMMY_TYPE, DO_TSPARSER, diff --git a/src/bin/pg_dump/pg_dumpall.cpp b/src/bin/pg_dump/pg_dumpall.cpp index 440473d47..704c9e876 100644 --- a/src/bin/pg_dump/pg_dumpall.cpp +++ b/src/bin/pg_dump/pg_dumpall.cpp @@ -171,9 +171,11 @@ void stopLLT() } #endif /* PGXC */ +static void generateRandArray(); static void free_dumpall(); static void get_password_pipeline(); static void get_role_password(); +static void get_encrypt_key(); int main(int argc, char* argv[]) { @@ -601,6 +603,23 @@ static void get_role_password() { } } +static void get_encrypt_key() +{ + GS_FREE(encrypt_key); + encrypt_key = simple_prompt("Encrypt Key: ", MAX_PASSWDLEN, false); + if (encrypt_key == NULL) { + exit_horribly(NULL, "out of memory\n"); + } + appendPQExpBuffer(pgdumpopts, " --with-key "); + doShellQuoting(pgdumpopts, encrypt_key); + generateRandArray(); + appendPQExpBuffer(pgdumpopts, " --with-salt "); + /* + * --with-salt comes from random generation, so we need to make sure it doesn't contain '\n' and '\r' + */ + doShellQuotingForRandomstring(pgdumpopts, (char*)init_rand); +} + static void free_dumpall() { GS_FREE(binary_upgrade_oldowner); @@ -624,8 +643,6 @@ static void free_dumpall() */ static void check_encrypt_parameters_dumpall(const char* pEncrypt_mode, const char* pEncrypt_key) { - int key_lenth = 0; - if (pEncrypt_mode == NULL && pEncrypt_key == NULL) { return; } @@ -637,15 +654,12 @@ static void check_encrypt_parameters_dumpall(const char* pEncrypt_mode, const ch } if (pEncrypt_key == NULL) { exit_horribly(NULL, "No key for encryption,please input the key\n"); - } else { - key_lenth = (int)strlen(pEncrypt_key); } - if (key_lenth != KEY_LEN) { - exit_horribly(NULL, "The key is illegal,the length must be %d\n", KEY_LEN); - } else { - if (!check_key(pEncrypt_key, KEY_LEN)) - exit_horribly(NULL, "The key is illegal, must be letters or numbers\n"); + if (!check_input_password(pEncrypt_key)) { + exit_horribly(NULL, "The input key must be %d~%d bytes and " + "contain at least three kinds of characters!\n", + MIN_KEY_LEN, MAX_KEY_LEN); } return; @@ -1139,6 +1153,9 @@ static void validate_dumpall_options(char** argv) } } + if ((encrypt_mode != NULL) && (encrypt_key == NULL)) { + get_encrypt_key(); + } /* validate encryption mode and key */ check_encrypt_parameters_dumpall(encrypt_mode, encrypt_key); diff --git a/src/bin/pg_dump/pg_restore.cpp b/src/bin/pg_dump/pg_restore.cpp index 658eea0c2..19304022d 100644 --- a/src/bin/pg_dump/pg_restore.cpp +++ b/src/bin/pg_dump/pg_restore.cpp @@ -434,6 +434,11 @@ static void free_restoreopts(RestoreOptions* opts) free(opts->pgport); opts->pgport = NULL; + if (opts->idWanted != NULL) { + free(opts->idWanted); + opts->idWanted = NULL; + } + /* free index names */ free_SimpleStringList(&opts->indexNames); diff --git a/src/bin/pg_probackup/backup.cpp b/src/bin/pg_probackup/backup.cpp index ab71d748f..9e77374f6 100644 --- a/src/bin/pg_probackup/backup.cpp +++ b/src/bin/pg_probackup/backup.cpp @@ -2377,8 +2377,10 @@ StreamLog(void *arg) ctl.synchronous = false; ctl.mark_done = false; - if(ReceiveXlogStream(stream_arg->conn, &ctl) == false) + if(ReceiveXlogStream(stream_arg->conn, &ctl) == false) { + interrupted = true; elog(ERROR, "Problem in receivexlog"); + } #if PG_VERSION_NUM >= 100000 if (!ctl.walmethod->finish()) @@ -2389,8 +2391,10 @@ StreamLog(void *arg) #else if(ReceiveXlogStream(stream_arg->conn, stream_arg->startpos, stream_arg->starttli, NULL, (const char *) stream_arg->basedir, stop_streaming, - standby_message_timeout_local, stream_arg->renamepartial) == false) + standby_message_timeout_local, stream_arg->renamepartial) == false) { + interrupted = true; elog(ERROR, "Problem in receivexlog"); + } #endif elog(LOG, "finished streaming WAL at %X/%X (timeline %u)", diff --git a/src/bin/pg_probackup/catalog.cpp b/src/bin/pg_probackup/catalog.cpp index 85d7aa2df..8a7eddc23 100644 --- a/src/bin/pg_probackup/catalog.cpp +++ b/src/bin/pg_probackup/catalog.cpp @@ -1927,13 +1927,17 @@ write_backup(pgBackup *backup, bool strict) securec_check_ss_c(nRet, "\0", "\0"); canonicalize_path(path_temp); fp = fopen(path_temp, PG_BINARY_W); - if (fp == NULL) + if (fp == NULL) { elog(ERROR, "Cannot open control file \"%s\": %s", path_temp, strerror(errno)); + return; + } - if (chmod(path_temp, FILE_PERMISSION) == -1) + if (chmod(path_temp, FILE_PERMISSION) == -1) { elog(ERROR, "Cannot change mode of \"%s\": %s", path_temp, strerror(errno)); + return; + } setvbuf(fp, buf, _IOFBF, sizeof(buf)); diff --git a/src/bin/pg_probackup/data.cpp b/src/bin/pg_probackup/data.cpp index 0c1954418..4ca1ed7d0 100644 --- a/src/bin/pg_probackup/data.cpp +++ b/src/bin/pg_probackup/data.cpp @@ -684,8 +684,6 @@ restore_data_file(parray *parent_chain, pgFile *dest_file, FILE *out, /* start with full backup */ backup_seq = parray_num(parent_chain) - 1; - // for (i = parray_num(parent_chain) - 1; i >= 0; i--) - // for (i = 0; i < parray_num(parent_chain); i++) while (backup_seq >= 0 && (size_t)backup_seq < parray_num(parent_chain)) { char from_root[MAXPGPATH]; @@ -1928,9 +1926,11 @@ open_local_file_rw(const char *to_fullpath, char **out_buf, uint32 buf_size) FILE *out = NULL; /* open backup file for write */ out = fopen(to_fullpath, PG_BINARY_W); - if (out == NULL) + if (out == NULL) { elog(ERROR, "Cannot open backup file \"%s\": %s", to_fullpath, strerror(errno)); + exit(1); + } /* update file permission */ if (chmod(to_fullpath, FILE_PERMISSION) == -1) diff --git a/src/bin/pg_probackup/logger.cpp b/src/bin/pg_probackup/logger.cpp index cafb99a66..f1bd7d30f 100644 --- a/src/bin/pg_probackup/logger.cpp +++ b/src/bin/pg_probackup/logger.cpp @@ -169,8 +169,20 @@ exit_if_necessary(int elevel) if (remote_agent) sleep(1); /* Let parent receive sent messages */ - on_cleanup(); - exit(elevel); + /* If this is not the main thread then don't call exit() */ + if (main_tid != pthread_self()) + { + /* Interrupt other possible routines */ + thread_interrupted = true; +#ifdef WIN32 + ExitThread(elevel); +#else + pthread_exit(NULL); +#endif + } else { + on_cleanup(); + exit(elevel); + } } } diff --git a/src/bin/pg_probackup/parsexlog.cpp b/src/bin/pg_probackup/parsexlog.cpp index 8a12b0824..977b0fa11 100644 --- a/src/bin/pg_probackup/parsexlog.cpp +++ b/src/bin/pg_probackup/parsexlog.cpp @@ -1228,7 +1228,6 @@ RunXLogThreads(const char *archivedir, time_t target_time, if (!XLogRecPtrIsInvalid(endpoint)) { - // if (XRecOffIsNull(endpoint) && !inclusive_endpoint) if (XRecOffIsNull(endpoint)) { GetXLogSegNo(endpoint, endSegNo, segment_size); diff --git a/src/bin/pg_probackup/pg_lzcompress.cpp b/src/bin/pg_probackup/pg_lzcompress.cpp index b9e8070c8..32d01f5b7 100644 --- a/src/bin/pg_probackup/pg_lzcompress.cpp +++ b/src/bin/pg_probackup/pg_lzcompress.cpp @@ -317,8 +317,7 @@ do { \ /* scribble on the unused entry if it was not, but that's */ \ /* harmless. Avoiding the branch in this critical path */ \ /* speeds this up a little bit. */ \ - /* if (*__myhsp != INVALID_ENTRY) */ \ - (_he)[(*__myhsp)].prev = __myhe; \ + (_he)[(*__myhsp)].prev = __myhe; \ *__myhsp = _hn; \ if (++(_hn) >= PGLZ_HISTORY_SIZE + 1) { \ (_hn) = 1; \ diff --git a/src/bin/pg_probackup/restore.cpp b/src/bin/pg_probackup/restore.cpp index 5c74a514b..17edc2781 100644 --- a/src/bin/pg_probackup/restore.cpp +++ b/src/bin/pg_probackup/restore.cpp @@ -1386,7 +1386,9 @@ create_recovery_conf(time_t backup_id, timestamp = (char *)pg_malloc(RESTORE_ARRAY_LEN); time2iso(timestamp, RESTORE_ARRAY_LEN, backup->end_time); oldtime = rt->time_string; - rt->time_string = timestamp; + if (rt->time_string) { + rt->time_string = timestamp; + } construct_restore_cmd(fp, rt, restore_command_provided, target_immediate); rt->time_string = oldtime; free(timestamp); diff --git a/src/bin/pg_rewind/CMakeLists.txt b/src/bin/pg_rewind/CMakeLists.txt index 0283a3e5e..5e591ca8d 100755 --- a/src/bin/pg_rewind/CMakeLists.txt +++ b/src/bin/pg_rewind/CMakeLists.txt @@ -1,6 +1,7 @@ #This is the main CMAKE for build all components. # pg_rewind.bin set(TGT_rewind_SRC ${CMAKE_CURRENT_SOURCE_DIR}/datapagemap.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/compressed_rewind.cpp ${CMAKE_CURRENT_SOURCE_DIR}/fetch.cpp ${CMAKE_CURRENT_SOURCE_DIR}/filemap.cpp ${CMAKE_CURRENT_SOURCE_DIR}/file_ops.cpp @@ -16,6 +17,7 @@ set(TGT_rewind_INC ${PROJECT_SRC_DIR}/common/interfaces/libpq ${PROJECT_SRC_DIR}/include/libpq ${LIBOPENSSL_INCLUDE_PATH} + ${ZSTD_INCLUDE_PATH} ) set(rewind_DEF_OPTIONS ${MACRO_OPTIONS}) diff --git a/src/bin/pg_rewind/compressed_rewind.cpp b/src/bin/pg_rewind/compressed_rewind.cpp index c73e4d29c..a936af733 100644 --- a/src/bin/pg_rewind/compressed_rewind.cpp +++ b/src/bin/pg_rewind/compressed_rewind.cpp @@ -126,4 +126,4 @@ bool ProcessLocalPca(const char* tablePath, RewindCompressInfo* rewindCompressIn bool success = ReadRewindCompressedInfo(file, pcaFilePath, MAXPGPATH, rewindCompressInfo); fclose(file); return success; -} \ No newline at end of file +} diff --git a/src/bin/pg_rewind/datapagemap.cpp b/src/bin/pg_rewind/datapagemap.cpp index f0c904e53..f350fe8ea 100644 --- a/src/bin/pg_rewind/datapagemap.cpp +++ b/src/bin/pg_rewind/datapagemap.cpp @@ -21,15 +21,6 @@ struct datapagemap_iterator { BlockNumber nextblkno; }; -/* - * clear a specified bitmap. - */ -void datapagemap_clear(datapagemap_t* map) -{ - pg_free((void*)map->bitmap); - map->bitmapsize = 0; -} - /* * Add a block to the bitmap. */ @@ -124,4 +115,5 @@ void datapagemap_print(datapagemap_t* map) pg_log(PG_DEBUG, " block %u\n", blocknum); pg_free(iter); + iter = NULL; } diff --git a/src/bin/pg_rewind/datapagemap.h b/src/bin/pg_rewind/datapagemap.h index 7eb3564ec..85c725be6 100644 --- a/src/bin/pg_rewind/datapagemap.h +++ b/src/bin/pg_rewind/datapagemap.h @@ -21,7 +21,6 @@ typedef struct datapagemap datapagemap_t; typedef struct datapagemap_iterator datapagemap_iterator_t; extern void datapagemap_add(datapagemap_t* map, BlockNumber blkno); -extern void datapagemap_clear(datapagemap_t* map); extern datapagemap_iterator_t* datapagemap_iterate(datapagemap_t* map); extern bool datapagemap_next(datapagemap_iterator_t* iter, BlockNumber* blkno); extern void datapagemap_print(datapagemap_t* map); diff --git a/src/bin/pg_rewind/fetch.cpp b/src/bin/pg_rewind/fetch.cpp index 4ad5aa894..97e34edf4 100755 --- a/src/bin/pg_rewind/fetch.cpp +++ b/src/bin/pg_rewind/fetch.cpp @@ -101,9 +101,11 @@ BuildErrorCode libpqGetParameters(void) if (strcmp(str, "f") != 0) { pg_log(PG_ERROR, "source server must not be in recovery mode\n"); pg_free(str); + str = NULL; return BUILD_ERROR; } pg_free(str); + str = NULL; /* * Also check that full_page_writes is enabled. We can get torn pages if @@ -123,10 +125,14 @@ BuildErrorCode libpqGetParameters(void) "full_page_writes must be enabled in the source server when the incremental checkpoint is not used.\n"); pg_free(str); pg_free(str2); + str = NULL; + str2 = NULL; return BUILD_FATAL; } pg_free(str); pg_free(str2); + str = NULL; + str2 = NULL; /* Get the pgxc_node_name */ str = run_simple_query("SHOW pgxc_node_name"); @@ -136,6 +142,7 @@ BuildErrorCode libpqGetParameters(void) ss_c = snprintf_s(pgxcnodename, MAX_VALUE_LEN, MAX_VALUE_LEN - 1, "%s", str); securec_check_ss_c(ss_c, "\0", "\0"); pg_free(str); + str = NULL; pg_log(PG_DEBUG, "pgxc_node_name is %s.\n", pgxcnodename); @@ -149,6 +156,7 @@ BuildErrorCode libpqGetParameters(void) } replication_type = atoi(str); pg_free(str); + str = NULL; pg_log(PG_DEBUG, "replication_type is %d.\n", replication_type); return BUILD_SUCCESS; @@ -436,6 +444,7 @@ static BuildErrorCode receiveFileChunks(const char* sql, FILE* file) pg_log(PG_DEBUG, "received null value for chunk for file \"%s\", file has been deleted", filename); remove_target_file(filename, true); pg_free(filename); + filename = NULL; PQclear(res); res = NULL; continue; @@ -450,6 +459,7 @@ static BuildErrorCode receiveFileChunks(const char* sql, FILE* file) fprintf(file, "received chunk for file \"%s\", offset %d, size %d\n", filename, chunkoff, chunksize); open_target_file(filename, false); pg_free(filename); + filename = NULL; PG_CHECKBUILD_AND_FREE_PGRESULT_RETURN(res); write_target_range(chunk, chunkoff, chunksize, chunkspace); } else { @@ -664,11 +674,17 @@ BuildErrorCode executeFileMap(filemap_t* map, FILE* file) for (i = 0; i < map->narray; i++) { entry = map->array[i]; + if ((IS_CROSS_CLUSTER_BUILD && strcmp(entry->path, "pg_hba.conf") == 0) || + strcmp(entry->path, "pg_hba.conf.old") == 0) { + continue; + } + /* report all the path to check whether it's correct */ if (entry->rewindCompressInfo.compressed) { pg_log(PG_PROGRESS, "path: %s, type: %d, action: %d\n", entry->path, entry->type, entry->action); } + pg_log(PG_DEBUG, "path: %s, type: %d, action: %d\n", entry->path, entry->type, entry->action); fprintf(file, "path: %s, type: %d, action: %d\n", entry->path, entry->type, entry->action); @@ -754,6 +770,7 @@ BuildErrorCode executeFileMap(filemap_t* map, FILE* file) * We've now copied the list of file ranges that we need to fetch to the * temporary table. Now, actually fetch all of those ranges. */ + sql = "SELECT path, begin, \n" " pg_read_binary_file(path, begin, len, true) AS chunk, len, algorithm, chunksize,rebuild \n" "FROM fetchchunks where algorithm =0 \n" @@ -911,6 +928,7 @@ static BuildErrorCode execute_pagemap(file_entry_t* entry, FILE* file) } } pg_free(iter); + iter = NULL; return BUILD_SUCCESS; } diff --git a/src/bin/pg_rewind/file_ops.cpp b/src/bin/pg_rewind/file_ops.cpp index 50ef7dae5..29e5dadb7 100644 --- a/src/bin/pg_rewind/file_ops.cpp +++ b/src/bin/pg_rewind/file_ops.cpp @@ -48,7 +48,6 @@ static void remove_target_symlink(const char* path); static bool is_special_dir(const char* path); static void get_file_path(const char* path, const char* file_name, char* file_path); static bool directory_is_empty(const char* path); -static void copy_file(const char* fromfile, char* tofile); static void copy_dir(const char* fromdir, char* todir); static void restore_gaussdb_state(void); @@ -433,6 +432,7 @@ char* slurpFile(const char* datadir, const char* path, size_t* filesize) if (read(fd, buffer, len) != len) { (void)close(fd); pg_free(buffer); + buffer = NULL; pg_fatal("could not read file \"%s\": %s\n", fullpath, strerror(errno)); return NULL; } @@ -1042,7 +1042,7 @@ go_exit: } #define COPY_BUF_SIZE (8 * BLCKSZ) -static void copy_file(const char* fromfile, char* tofile) +void copy_file(const char* fromfile, char* tofile) { char* buffer = NULL; int srcfd = 0; @@ -1128,6 +1128,10 @@ static void copy_file(const char* fromfile, char* tofile) } return; go_exit: + if (buffer != NULL) { + free(buffer); + buffer = NULL; + } pg_log(PG_PRINT, _("%s"), errmsg); exit(1); return; /* suppress compile warning. */ diff --git a/src/bin/pg_rewind/file_ops.h b/src/bin/pg_rewind/file_ops.h index f28bb79af..4b6b2b132 100644 --- a/src/bin/pg_rewind/file_ops.h +++ b/src/bin/pg_rewind/file_ops.h @@ -41,6 +41,7 @@ extern bool restore_target_dir(const char* datadir_target, bool remove_from); extern void delete_target_file(const char* file); extern bool isPathInFilemap(const char* path); extern bool tablespaceDataIsValid(const char* path); +extern void copy_file(const char* fromfile, char* tofile); extern void CompressedFileTruncate(const char* path, const RewindCompressInfo* rewindCompressInfo); void FetchCompressedFile(char* buf, BlockNumber begin, int32 size); void OpenCompressedPcaFile(const char* fileName, int32 chunkSize, int32 algorithm, bool rebuild); diff --git a/src/bin/pg_rewind/filemap.cpp b/src/bin/pg_rewind/filemap.cpp index 8c9fcfff1..62c7c6129 100755 --- a/src/bin/pg_rewind/filemap.cpp +++ b/src/bin/pg_rewind/filemap.cpp @@ -83,6 +83,7 @@ const char *excludeFiles[] = { "build_completed.done", "barrier_lsn", "pg_dw", + "pg_dw_single", "pg_dw.build", "cacert.pem", "server.crt", @@ -102,7 +103,7 @@ static char* relpathbackend_t(RelFileNode rnode, BackendId backend, ForkNumber f static bool check_abs_tblspac_path(const char *fname, unsigned int *segNo, RelFileNode *rnode); static bool check_base_path(const char *fname, unsigned int *segNo, RelFileNode *rnode); static bool check_rel_tblspac_path(const char *fname, unsigned int *segNo, RelFileNode *rnode); -static int get_cu_alignsize_columnId(int columnId); +static void ResetOldFileMaps(void); static pthread_t targetfilestatpid; /* @@ -117,11 +118,13 @@ filemap_t* filemap_create(void) map->nlist = 0; map->array = NULL; map->narray = 0; + map->arrayForSearch = NULL; return map; } void filemapInit(void) { + ResetOldFileMaps(); Assert(filemap == NULL); Assert(filemaptarget == NULL); filemap = filemap_create(); @@ -679,6 +682,7 @@ void process_block_change(ForkNumber forknum, RelFileNode rnode, BlockNumber blk else entry = NULL; pg_free(path); + path = NULL; if (entry != NULL) { Assert(entry->isrelfile); @@ -734,93 +738,6 @@ void process_block_change(ForkNumber forknum, RelFileNode rnode, BlockNumber blk } } -/* - * This callback gets called while we read the WAL in the target, for every - * replication data block need to be synchronized in the target system. It makes note of all the - * replication data blocks in the pagemap of the file. - */ -void process_waldata_change( - ForkNumber forknum, RelFileNode rnode, StorageEngine store, off_t file_offset, size_t data_size) -{ - char* path = NULL; - file_entry_t key; - file_entry_t* key_ptr = NULL; - file_entry_t* entry = NULL; - off_t data_offset; - int file_segno; - filemap_t* map = filemap; - file_entry_t** e; - uint64 max_file_size = 0; - uint32 cu_slice_index = 0; - - Assert(map->array); - - /* for ROW_STORE the file_offset means blkno, for COLUMN STORE the file_offset means cu_offset */ - if (store == ROW_STORE) - max_file_size = RELSEG_SIZE; - else - max_file_size = MAX_FILE_SIZE; - - file_segno = file_offset / max_file_size; - data_offset = file_offset % max_file_size; - - /* for COLUMN_STORE the forknum = MAX_FORKNUM + attrid */ - if (store == COLUMN_STORE) - Assert(forknum > MAX_FORKNUM); - - path = datasegpath(rnode, forknum, file_segno); - - key.path = (char*)path; - key_ptr = &key; - - e = (file_entry_t**)bsearch(&key_ptr, map->array, map->narray, sizeof(file_entry_t*), path_cmp); - if (e != NULL) - entry = *e; - else - entry = NULL; - - if (entry != NULL) - Assert(entry->isrelfile); - else { - /* Create a new entry for this file */ - entry = (file_entry_t*)pg_malloc(sizeof(file_entry_t)); - entry->path = pg_strdup(path); - entry->type = FILE_TYPE_REGULAR; - entry->action = FILE_ACTION_CREATE; - entry->oldsize = 0; - entry->newsize = 0; - entry->link_target = NULL; - entry->next = NULL; - entry->pagemap.bitmap = NULL; - entry->pagemap.bitmapsize = 0; - entry->isrelfile = isRelDataFile(path); - RewindCompressInfo *rewindCompressInfo = NULL; - COPY_REWIND_COMPRESS_INFO(entry, rewindCompressInfo, 0, 0) - if (map->last != NULL) { - map->last->next = entry; - map->last = entry; - } else - map->first = map->last = entry; - map->nlist++; - } - - pg_free(path); - path = NULL; - uint32 align_size = (uint32)get_cu_alignsize_columnId(forknum - MAX_FORKNUM); - if (ROW_STORE == store) - pg_fatal("The Row Store Heap SHOULD BE NOT synchronized in the WAL Streaming.\n"); - else - entry->block_size = align_size; - - Assert(0 == data_size % align_size); - if (data_size % align_size != 0) - pg_fatal("unexpected CU data size %lu bytes which isn't aligned with the required CU data size.\n", data_size); - /* Here we just follow the ALIGNOF_CUSIZE(8192) of CU */ - for (cu_slice_index = 0; cu_slice_index < data_size / align_size; cu_slice_index++) - datapagemap_add(&entry->pagemap, cu_slice_index); - return; -} - /* * Convert the linked list of entries in map->first/last to the array, * map->array. @@ -920,6 +837,7 @@ void calculate_totals(void) map->fetch_size += BLCKSZ; pg_free(iter); + iter = NULL; } } } @@ -965,6 +883,7 @@ void print_filemap_to_file(FILE* file) while (datapagemap_next(iter, &blocknum)) fprintf(file, " block %u\n", blocknum); pg_free(iter); + iter = NULL; } } } @@ -1047,6 +966,7 @@ bool isRelDataFile(const char* path) matched = false; pg_free(check_path); + check_path = NULL; } return matched; @@ -1066,6 +986,7 @@ static char* datasegpath(RelFileNode rnode, ForkNumber forknum, BlockNumber segn if (segno > 0 || forknum > MAX_FORKNUM) { segpath = format_text("%s.%u", path, segno); pg_free(path); + path = NULL; return segpath; } else { return path; @@ -1226,6 +1147,7 @@ static char* format_text(const char* fmt, ...) /* Release buffer and loop around to try again with larger len. */ pg_free(result); + result = NULL; len = newlen; } } @@ -1625,12 +1547,56 @@ bool isPathInFilemap(const char* path) return true; } -static int get_cu_alignsize_columnId(int columnId) +static void ResetOldFileMaps(void) { - Assert(columnId > 0); - int align_size = ALIGNOF_CUSIZE; - if (columnId >= TS_COLUMN_ID_BASE) { - align_size = ALIGNOF_TIMESERIES_CUSIZE; + if (filemap != NULL) { + if (filemap->array != NULL) { + pg_free(filemap->array); + filemap->array = NULL; + } + if (filemap->arrayForSearch != NULL) { + pg_free(filemap->arrayForSearch); + filemap->arrayForSearch = NULL; + } + if (filemap->first != NULL) { + file_entry_t* currNode = filemap->first; + while (currNode != NULL) { + file_entry_t* needFreeNode = currNode; + currNode = currNode->next; + pg_free(needFreeNode->path); + needFreeNode->path = NULL; + pg_free(needFreeNode->link_target); + needFreeNode->link_target = NULL; + pg_free(needFreeNode->pagemap.bitmap); + needFreeNode->pagemap.bitmap = NULL; + pg_free(needFreeNode); + needFreeNode = NULL; + } + } + pg_free(filemap); + filemap = NULL; + } + if (filemaptarget != NULL) { + if (filemaptarget->array != NULL) { + pg_free(filemaptarget->array); + filemaptarget->array = NULL; + } + if (filemaptarget->first != NULL) { + file_entry_t* currNode = filemaptarget->first; + while (currNode != NULL) { + file_entry_t* needFreeNode = currNode; + currNode = currNode->next; + pg_free(needFreeNode->path); + needFreeNode->path = NULL; + pg_free(needFreeNode->link_target); + needFreeNode->link_target = NULL; + pg_free(needFreeNode->pagemap.bitmap); + needFreeNode->pagemap.bitmap = NULL; + pg_free(needFreeNode); + needFreeNode = NULL; + } + } + pg_free(filemaptarget); + filemaptarget = NULL; } - return align_size; } diff --git a/src/bin/pg_rewind/nls.mk b/src/bin/pg_rewind/nls.mk index d6eb536b5..4f0200b15 100644 --- a/src/bin/pg_rewind/nls.mk +++ b/src/bin/pg_rewind/nls.mk @@ -1,7 +1,7 @@ # src/bin/pg_rewind/nls.mk CATALOG_NAME = pg_rewind AVAIL_LANGUAGES =de -GETTEXT_FILES = copy_fetch.c datapagemap.c fetch.c file_ops.c filemap.c libpq_fetch.c logging.c parsexlog.c pg_rewind.c timeline.c ../../common/fe_memutils.c ../../common/restricted_token.c ../../../src/backend/access/transam/xlogreader.c +GETTEXT_FILES = copy_fetch.c datapagemap.c fetch.c file_ops.c filemap.c libpq_fetch.c logging.c parsexlog.c pg_rewind.c compressed_rewind.c timeline.c ../../common/fe_memutils.c ../../common/restricted_token.c ../../../src/backend/access/transam/xlogreader.c GETTEXT_TRIGGERS = pg_log:2 pg_fatal report_invalid_record:2 GETTEXT_FLAGS = pg_log:2:c-format \ diff --git a/src/bin/pg_rewind/parsexlog.cpp b/src/bin/pg_rewind/parsexlog.cpp index cf6757959..f918300f3 100644 --- a/src/bin/pg_rewind/parsexlog.cpp +++ b/src/bin/pg_rewind/parsexlog.cpp @@ -161,7 +161,7 @@ BuildErrorCode findCommonCheckpoint(const char* datadir, TimeLineID tli, XLogRec pg_fatal("find max lsn fail, errmsg:%s\n", returnmsg); return BUILD_FATAL; } - pg_log(PG_PROGRESS, "find max lsn success, %s", returnmsg); + pg_log(PG_PROGRESS, "find max lsn success, %s\n", returnmsg); readprivate.datadir = datadir; readprivate.tli = tli; diff --git a/src/bin/pg_rewind/pg_rewind.cpp b/src/bin/pg_rewind/pg_rewind.cpp index a2f5d2c37..0281f8b45 100755 --- a/src/bin/pg_rewind/pg_rewind.cpp +++ b/src/bin/pg_rewind/pg_rewind.cpp @@ -171,8 +171,9 @@ BuildErrorCode gs_increment_build(const char* pgdata, const char* connstr, char* state.build_info.build_mode = INC_BUILD; UpdateDBStateFile(gaussdb_state_file, &state); pg_log(PG_PROGRESS, - "set gaussdb state file when rewind:" - "db state(BUILDING_STATE), server mode(STANDBY_MODE), build mode(INC_BUILD).\n"); + "set gaussdb state file when %s build:" + "db state(BUILDING_STATE), server mode(STANDBY_MODE), build mode(INC_BUILD).\n", + (build_mode == CROSS_CLUSTER_INC_BUILD? "cross_cluster_incremental" : "incremental")); /* Connect to remote server */ rv = libpqConnect(connstr_source); @@ -186,6 +187,7 @@ BuildErrorCode gs_increment_build(const char* pgdata, const char* connstr, char* "The source DN primary can't connect to dummy standby. Please repairing the dummy standby first.\n"); libpqDisconnect(); pg_free(sysidentifier); + sysidentifier = NULL; exit(1); } @@ -197,12 +199,14 @@ BuildErrorCode gs_increment_build(const char* pgdata, const char* connstr, char* PG_CHECKBUILD_AND_RETURN(); digestControlFile(&ControlFile_target, (const char*)buffer); pg_free(buffer); + buffer = NULL; PG_CHECKBUILD_AND_RETURN(); buffer = fetchFile("global/pg_control", &size); PG_CHECKBUILD_AND_RETURN(); digestControlFile(&ControlFile_source, buffer); pg_free(buffer); + buffer = NULL; PG_CHECKBUILD_AND_RETURN(); pg_log(PG_PROGRESS, "get pg_control success\n"); @@ -319,8 +323,12 @@ BuildErrorCode gs_increment_build(const char* pgdata, const char* connstr, char* securec_check_ss_c(nRet, "", ""); get_xlog_location(xlog_location); pg_log(PG_PROGRESS, "Starting copy xlog, start point: %s\n", xlog_start); - StartLogStreamer(xlog_start, timeline, sysidentifier, (const char*)xlog_location, term); - + bool startSuccess = StartLogStreamer(xlog_start, timeline, sysidentifier, (const char*)xlog_location, term); + if (!startSuccess) { + pg_fatal("start log streamer failed: %s\n", strerror(errno)); + return BUILD_FATAL; + } + /* Create build_complete.start file first */ canonicalize_path(start_file); if ((fd = open(start_file, O_WRONLY | O_CREAT | O_EXCL, 0600)) < 0) { @@ -471,7 +479,8 @@ BuildErrorCode gs_increment_build(const char* pgdata, const char* connstr, char* datadir_target = NULL; } - pg_log(PG_PROGRESS, "dn incremental build completed.\n"); + pg_log(PG_PROGRESS, "dn %s build completed.\n", + (build_mode == CROSS_CLUSTER_INC_BUILD? "cross_cluster_incremental" : "incremental")); return BUILD_SUCCESS; } diff --git a/src/bin/pg_rewind/pg_rewind.h b/src/bin/pg_rewind/pg_rewind.h index 101df2ba9..a342f75b8 100644 --- a/src/bin/pg_rewind/pg_rewind.h +++ b/src/bin/pg_rewind/pg_rewind.h @@ -53,7 +53,8 @@ extern char divergeXlogFileName[MAXFNAMELEN]; /* in parsexlog.c */ extern void extractPageMap(const char* datadir, XLogRecPtr startpoint, TimeLineID tli); extern XLogRecPtr readOneRecord(const char* datadir, XLogRecPtr ptr, TimeLineID tli); -extern XLogRecPtr FindMaxLSN(char* workingpath, char* returnmsg, pg_crc32 *maxLsnCrc); +extern XLogRecPtr FindMaxLSN(char* workingpath, char* returnmsg, pg_crc32 *maxLsnCrc, uint32 *maxLsnLen = NULL, + TimeLineID *returnTli = NULL); BuildErrorCode findCommonCheckpoint(const char* datadir, TimeLineID tli, XLogRecPtr startrec, XLogRecPtr* lastchkptrec, TimeLineID* lastchkpttli, XLogRecPtr *lastchkptredo, uint32 term); extern int find_gucoption(const char** optlines, const char* opt_name, int* name_offset, int* name_len, diff --git a/src/bin/pgxc_clean/pgxc_clean.cpp b/src/bin/pgxc_clean/pgxc_clean.cpp index 2ea8c9d3f..71c0688eb 100644 --- a/src/bin/pgxc_clean/pgxc_clean.cpp +++ b/src/bin/pgxc_clean/pgxc_clean.cpp @@ -2821,6 +2821,7 @@ static void parse_pgxc_clean_options(int argc, char* argv[]) case 'W': try_password_opt = TRI_YES; if (optarg != NULL) { + check_env_name_c(optarg); password = pg_strdup(optarg); rc = memset_s(optarg, strlen(optarg), 0, strlen(optarg)); securec_check_c(rc, "\0", "\0"); diff --git a/src/bin/psql/command.cpp b/src/bin/psql/command.cpp index adb2a8369..d48ab1a7e 100644 --- a/src/bin/psql/command.cpp +++ b/src/bin/psql/command.cpp @@ -67,6 +67,8 @@ #define static #endif +SqlErrorHandle sqlErrHandle = SQLERROR_HANDLE_CONTINUE; + /* functions for use in this file */ static backslashResult exec_command(const char* cmd, PsqlScanState scan_state, PQExpBuffer query_buf); static bool do_edit(const char* filename_arg, PQExpBuffer query_buf, int lineno, bool* edited); @@ -804,14 +806,12 @@ static backslashResult exec_command(const char* cmd, PsqlScanState scan_state, P if (NULL != dencrypt_key) { tmpkeylen = strlen(dencrypt_key); - if (KEY_LEN == tmpkeylen) { - isIllegal = check_key((const char*)dencrypt_key, KEY_LEN); - if (isIllegal) { - rc = memset_s(pset.decryptInfo.Key, KEY_MAX_LEN, 0, KEY_MAX_LEN); - securec_check_c(rc, "\0", "\0"); - rc = strncpy_s((char*)pset.decryptInfo.Key, KEY_MAX_LEN, dencrypt_key, KEY_MAX_LEN - 1); - securec_check_c(rc, dencrypt_key, "\0"); - } + isIllegal = check_input_password(dencrypt_key); + if (isIllegal) { + rc = memset_s(pset.decryptInfo.Key, KEY_MAX_LEN, 0, KEY_MAX_LEN); + securec_check_c(rc, "\0", "\0"); + rc = strncpy_s((char*)pset.decryptInfo.Key, KEY_MAX_LEN, dencrypt_key, KEY_MAX_LEN - 1); + securec_check_c(rc, dencrypt_key, "\0"); } rc = memset_s(dencrypt_key, tmpkeylen, 0, tmpkeylen); securec_check_c(rc, dencrypt_key, "\0"); @@ -830,14 +830,15 @@ static backslashResult exec_command(const char* cmd, PsqlScanState scan_state, P strcmp(cmd, "include_relative") == 0 || strcmp(cmd, "include_relative+") == 0); expand_tilde(&fname); /* Database Security: Data importing/dumping support AES128. */ - if ((pset.decryptInfo.encryptInclude == true && KEY_LEN == tmpkeylen && isIllegal) || + if ((pset.decryptInfo.encryptInclude == true && isIllegal) || (pset.decryptInfo.encryptInclude == false)) { success = (process_file(fname, false, include_relative) == EXIT_SUCCESS); } else { - psql_error("\\%s: Missing the key or the key is illegal,must be letters or numbers and the length must " - "be %d\n", + psql_error("\\%s: Missing the key or the key is illegal,must be %d~%d bytes and " + "contain at least three kinds of characters!\n", cmd, - KEY_LEN); + MIN_KEY_LEN, + MAX_KEY_LEN); } free(fname); fname = NULL; @@ -2237,6 +2238,41 @@ static bool setToptFormat(const char* value, size_t vallen, printQueryOpt* popt, return true; } +static bool setSqlErrorHandle(const char* value, size_t vallen, bool quiet) +{ + if (value == NULL) { + ; + } else if (pg_strncasecmp("continue", value, vallen) == 0) { + sqlErrHandle = SQLERROR_HANDLE_CONTINUE; + } else if (pg_strncasecmp("exit", value, vallen) == 0) { + sqlErrHandle = SQLERROR_HANDLE_EXIT; + } else { + psql_error("\\pset: allowed sqlerror_handle are continue, exit\n"); + return false; + } + + if (!quiet) { + if (sqlErrHandle == SQLERROR_HANDLE_CONTINUE) { + printf(_("Whenever Error behavior is continue.\n")); + } else { + printf(_("Whenever Error behavior is exit.\n")); + } + } + + return true; +} + +static bool setBorder(const char* value, printQueryOpt* popt, bool quiet) +{ + if (NULL != value) + popt->topt.border = atoi(value); + + if (!quiet) + printf(_("Border style is %d.\n"), popt->topt.border); + + return true; +} + bool do_pset(const char* param, const char* value, printQueryOpt* popt, bool quiet) { size_t vallen = 0; @@ -2253,6 +2289,13 @@ bool do_pset(const char* param, const char* value, printQueryOpt* popt, bool qui } } + // set Sql Error Handle + else if (strcmp(param, "sqlerror_handle") == 0) { + if (!setSqlErrorHandle(value, vallen, quiet)) { + return false; + } + } + /* set table line style */ else if (strcmp(param, "linestyle") == 0) { if (NULL == value) @@ -2274,11 +2317,9 @@ bool do_pset(const char* param, const char* value, printQueryOpt* popt, bool qui /* set border style/width */ else if (strcmp(param, "border") == 0) { - if (NULL != value) - popt->topt.border = atoi(value); - - if (!quiet) - printf(_("Border style is %d.\n"), popt->topt.border); + if(!setBorder(value, popt, quiet)) { + return false; + } } /* set expanded/vertical mode */ diff --git a/src/bin/psql/command.h b/src/bin/psql/command.h index 8c4e168a7..479c1603a 100644 --- a/src/bin/psql/command.h +++ b/src/bin/psql/command.h @@ -21,6 +21,13 @@ typedef enum _backslashResult { * resulted in an error */ } backslashResult; +typedef enum SqlErrorHandle { + SQLERROR_HANDLE_CONTINUE = 0, + SQLERROR_HANDLE_EXIT +} SqlErrorHandle; + +extern SqlErrorHandle sqlErrHandle; + extern backslashResult HandleSlashCmds(PsqlScanState scan_state, PQExpBuffer query_buf); extern int process_file(char* filename, bool single_txn, bool use_relative_path); diff --git a/src/bin/psql/copy.cpp b/src/bin/psql/copy.cpp index 747fde1b8..d21398331 100644 --- a/src/bin/psql/copy.cpp +++ b/src/bin/psql/copy.cpp @@ -57,8 +57,13 @@ struct copy_options { char* relName; /* relation name. If enclosed in quotation marks, take out the value in the quotation marks, * otherwise convert to lowercase. only for copy from */ bool isFileBinary; /* true if file format is binary, only for copy from */ + bool isEol; /* true if 'eol' exists in copy options, only for copy from */ + bool hasHeader; /* true if 'header' exists and value is true in copy options, only for copy from */ }; +/* read chunk size for COPY IN - size is not critical */ +#define COPYBUFSIZ 8192 + static void free_copy_options(struct copy_options* ptr) { if (ptr == NULL) @@ -115,6 +120,59 @@ static bool AtoiStrictly(const char *str, int *num) return true; } +static void toUpper(char* dest, const char* source) +{ + size_t i; + size_t len = strlen(source); + for (i = 0; i < len; i++) { + dest[i] = toupper(source[i]); + } + dest[len] = '\0'; +} + +// check if copy options keyword key exists in source or not +// if ,key or key' exists in source, return true +static bool IsCopyOptionKeyWordExists(const char* source, const char* key) +{ + size_t sourceLen = strlen(source); + size_t keyLen = strlen(key); + + if (sourceLen < keyLen) { + return false; + } + + if (pg_strcasecmp(source, key) == 0) { + return true; + } + + char* upperSource = (char*)pg_malloc(sourceLen + 1); + // compare ,key or key', so malloc size is keyLen + 2 + char* upperKey = (char*)pg_malloc(keyLen + 2); + + *upperKey = ','; + toUpper(upperSource, source); + toUpper(upperKey + 1, key); + if (strstr(upperSource, upperKey) != NULL) { + free(upperKey); + free(upperSource); + return true; + } + + toUpper(upperKey, key); + upperKey[keyLen] = '\''; + upperKey[keyLen + 1] = '\0'; + + if (strstr(upperSource, upperKey) != NULL) { + free(upperKey); + free(upperSource); + return true; + } + + free(upperKey); + free(upperSource); + return false; +} + /* parse parallel settings */ static bool ParseParallelOption(struct copy_options* result, char** errToken) { @@ -153,12 +211,32 @@ static bool ParseParallelOption(struct copy_options* result, char** errToken) return true; } - if (pg_strcasecmp(token, "binary") == 0) { + if (IsCopyOptionKeyWordExists(token, "binary")) { result->isFileBinary = true; } - xstrcat(&result->after_tofrom, " "); - xstrcat(&result->after_tofrom, token); + if (IsCopyOptionKeyWordExists(token, "eol")) { + result->isEol = true; + } + + if (IsCopyOptionKeyWordExists(token, "header")) { + // if header keyword exists, read a token forward + // when header is true, copy "header false" to result->after_tofrom + xstrcat(&result->after_tofrom, " "); + xstrcat(&result->after_tofrom, token); + + token = strtokx(nullptr, whitespace, ",()", NULL, 0, false, false, pset.encoding); + if (pg_strcasecmp(token, "true") == 0) { + result->hasHeader = true; + xstrcat(&result->after_tofrom, " false"); + } else { + xstrcat(&result->after_tofrom, " "); + xstrcat(&result->after_tofrom, token); + } + } else { + xstrcat(&result->after_tofrom, " "); + xstrcat(&result->after_tofrom, token); + } token = strtokx(nullptr, whitespace, NULL, NULL, 0, false, false, pset.encoding); if (token == nullptr) { @@ -205,6 +283,7 @@ static struct copy_options* parse_slash_copy(const char* args) result->before_tofrom = pg_strdup(""); /* initialize for appending */ result->parallel = 0; result->isFileBinary = false; + result->isEol = false; token = strtokx(args, whitespace, ".,()", "\"", 0, false, false, pset.encoding); if (token == NULL) @@ -335,7 +414,7 @@ static bool IsParallelCopyFrom(const struct copy_options* options) return false; } - if (!options->from || options->parallel == 0 + if (!options->from || options->parallel == 0 || options->isEol || options->isFileBinary || pset.decryptInfo.encryptInclude) { return false; } @@ -369,6 +448,16 @@ static bool IsParallelCopyFrom(const struct copy_options* options) return true; } +static void skip_first_line_when_has_header(const struct copy_options* options, FILE* copystream) +{ + if (!options->hasHeader) { + return; + } + + char buf[COPYBUFSIZ]; + fgets(buf, sizeof(buf), copystream); +} + /* * Execute a \copy command (frontend copy). We have to open a file, then * submit a COPY query to the backend and either feed it data from the @@ -421,6 +510,9 @@ bool do_copy(const char* args) return false; } + // if header = true, skip first line + skip_first_line_when_has_header(options, copystream); + /* make sure the specified file is not a directory */ fstat(fileno(copystream), &st); if (S_ISDIR(st.st_mode)) { @@ -558,9 +650,6 @@ bool handleCopyOut(PGconn* conn, FILE* copystream) * result is true if successful, false if not. */ -/* read chunk size for COPY IN - size is not critical */ -#define COPYBUFSIZ 8192 - bool handleCopyIn(PGconn* conn, FILE* copystream, bool isbinary) { bool OK = false; diff --git a/src/bin/psql/describe.cpp b/src/bin/psql/describe.cpp index 6a4c24fad..6a0045412 100644 --- a/src/bin/psql/describe.cpp +++ b/src/bin/psql/describe.cpp @@ -7,6 +7,7 @@ * information for an old server, but not to fail outright. * * Copyright (c) 2000-2012, PostgreSQL Global Development Group + * Portions Copyright (c) 2021, openGauss Contributors * * src/bin/psql/describe.c */ @@ -760,7 +761,7 @@ bool permissionsList(const char* pattern) "SELECT n.nspname as \"%s\",\n" " c.relname as \"%s\",\n" " CASE c.relkind WHEN 'r' THEN '%s' WHEN 'v' THEN '%s' WHEN 'm' THEN '%s'" - " WHEN 'S' THEN '%s' WHEN 'f' THEN '%s' END as \"%s\",\n" + " WHEN 'S' THEN '%s' WHEN 'L' THEN '%s' WHEN 'f' THEN '%s' END as \"%s\",\n" " ", gettext_noop("Schema"), gettext_noop("Name"), @@ -768,6 +769,7 @@ bool permissionsList(const char* pattern) gettext_noop("view"), gettext_noop("materialized view"), gettext_noop("sequence"), + gettext_noop("large sequence"), gettext_noop("foreign table"), gettext_noop("Type")); @@ -856,7 +858,8 @@ bool listDefaultACLs(const char* pattern) printfPQExpBuffer(&buf, "SELECT pg_catalog.pg_get_userbyid(d.defaclrole) AS \"%s\",\n" " n.nspname AS \"%s\",\n" - " CASE d.defaclobjtype WHEN '%c' THEN '%s' WHEN '%c' THEN '%s' WHEN '%c' THEN '%s' WHEN '%c' THEN '%s' END AS " + " CASE d.defaclobjtype WHEN '%c' THEN '%s' WHEN '%c' THEN '%s'" + " WHEN '%c' THEN '%s' WHEN '%c' THEN '%s' WHEN '%c' THEN '%s' END AS " "\"%s\",\n" " ", gettext_noop("Owner"), @@ -865,6 +868,8 @@ bool listDefaultACLs(const char* pattern) gettext_noop("table"), DEFACLOBJ_SEQUENCE, gettext_noop("sequence"), + DEFACLOBJ_LARGE_SEQUENCE, + gettext_noop("large sequence"), DEFACLOBJ_FUNCTION, gettext_noop("function"), DEFACLOBJ_TYPE, @@ -1419,7 +1424,7 @@ static bool describeOneTableDetails(const char* schemaname, const char* relation * If it's a sequence, fetch its values and store into an array that will * be used later. */ - if (tableinfo.relkind == 'S') { + if (tableinfo.relkind == 'S' || tableinfo.relkind == 'L') { printfPQExpBuffer(&buf, "SELECT * FROM %s", fmtId(schemaname)); /* must be separate because fmtId isn't reentrant */ appendPQExpBuffer(&buf, ".%s;", fmtId(relationname)); @@ -1562,6 +1567,9 @@ static bool describeOneTableDetails(const char* schemaname, const char* relation case 'S': printfPQExpBuffer(&title, _("Sequence \"%s.%s\""), schemaname, relationname); break; + case 'L': + printfPQExpBuffer(&title, _("Large Sequence \"%s.%s\""), schemaname, relationname); + break; case 'i': case 'I': if (tableinfo.relpersistence == 'u') @@ -1610,7 +1618,7 @@ static bool describeOneTableDetails(const char* schemaname, const char* relation modifiers = (char**)pg_malloc_zero((unsigned long)(numrows + 1) * sizeof(*modifiers)); } - if (tableinfo.relkind == 'S') + if (tableinfo.relkind == 'S' || tableinfo.relkind == 'L') headers[cols++] = gettext_noop("Value"); if (tableinfo.relkind == 'i' || tableinfo.relkind == 'I') @@ -1691,32 +1699,39 @@ static bool describeOneTableDetails(const char* schemaname, const char* relation /* handle "default" here */ /* (note: above we cut off the 'default' string at 128) */ char *default_value = PQgetvalue(res, i, 2); +#ifdef HAVE_CE + unsigned char *plaintext = NULL; +#endif if (strlen(default_value) != 0) { #ifdef HAVE_CE - if (hasFullEncryptFeature && - strlen(PQgetvalue(res, i, PQfnumber(res, "clientlogic_original_type"))) > 0) { - size_t plainTextSize = 0; - unsigned char *plaintext = NULL; - int original_type_id = atoi(PQgetvalue(res, i, PQfnumber(res, "clientlogic_original_type_oid"))); - ValuesProcessor::deprocess_value(pset.db, (unsigned char *)default_value, strlen(default_value), - original_type_id, 0, &plaintext, plainTextSize, true); - default_value = (char *)plaintext; - } + if (hasFullEncryptFeature && + strlen(PQgetvalue(res, i, PQfnumber(res, "clientlogic_original_type"))) > 0) { + size_t plainTextSize = 0; + int original_type_id = atoi(PQgetvalue(res, i, PQfnumber(res, "clientlogic_original_type_oid"))); + ProcessStatus process_status = ADD_TYPE; + ValuesProcessor::deprocess_value(pset.db, (unsigned char *)default_value, strlen(default_value), + original_type_id, 0, &plaintext, plainTextSize, process_status); + default_value = (char *)plaintext; + } #endif - if (tmpbuf.len > 0) { - appendPQExpBufferStr(&tmpbuf, " "); - } - /* translator: default values of column definitions */ - if (strlen(PQgetvalue(res, i, PQfnumber(res, "generated_column"))) > 0) { - appendPQExpBuffer(&tmpbuf, _("generated always as (%s) stored"), default_value); - } else { - appendPQExpBuffer(&tmpbuf, _("default %s"), default_value); - } + if (tmpbuf.len > 0) { + appendPQExpBufferStr(&tmpbuf, " "); + } + /* translator: default values of column definitions */ + if (strlen(PQgetvalue(res, i, PQfnumber(res, "generated_column"))) > 0) { + appendPQExpBuffer(&tmpbuf, _("generated always as (%s) stored"), default_value); + } else { + appendPQExpBuffer(&tmpbuf, _("default %s"), default_value); + } } #ifdef HAVE_CE if (hasFullEncryptFeature && strlen(PQgetvalue(res, i, PQfnumber(res, "clientlogic_original_type"))) > 0) { appendPQExpBufferStr(&tmpbuf, _(" encrypted")); + if (plaintext != NULL) { + free(plaintext); + plaintext = NULL; + } } #endif /* HAVE_CE */ @@ -1725,7 +1740,7 @@ static bool describeOneTableDetails(const char* schemaname, const char* relation } /* Value: for sequences only */ - if (tableinfo.relkind == 'S') + if (tableinfo.relkind == 'S' || tableinfo.relkind == 'L') printTableAddCell(&cont, seq_values[i], false, false); /* Expression for index column */ @@ -1902,7 +1917,7 @@ static bool describeOneTableDetails(const char* schemaname, const char* relation } PQclear(result); } - } else if (tableinfo.relkind == 'S') { + } else if (tableinfo.relkind == 'S' || tableinfo.relkind == 'L') { /* Footer information about a sequence */ PGresult* result = NULL; @@ -2567,9 +2582,9 @@ static bool describeOneTableDetails(const char* schemaname, const char* relation * Show information about partition table. * 1. Get the partition key postition and partition strategy from pg_partition. */ - printfPQExpBuffer( - &buf, "select partkey,partstrategy from pg_partition where parentid = %s order by partkey", oid); - PGresult* tmp_result = NULL; + printfPQExpBuffer(&buf, + "select partkey,partstrategy,interval[1] from pg_partition where parentid = %s and parttype = 'r'", oid); + PGresult *tmp_result = NULL; result = PSQLexec(buf.data, false); if (result == NULL) @@ -2584,18 +2599,20 @@ static bool describeOneTableDetails(const char* schemaname, const char* relation char separator_symbol[] = " "; /* the separator between multiple partition keys. */ char* next_key = NULL; /*store the next partition key in strtok_s. */ bool first_flag = false; + int parttuples = 0; + int subtuples = 0; + PGresult* partresult = NULL; + PGresult* subresult = NULL; /* 2. Show partition strategy by the partstrategy of pg_partition. */ - if (strcmp(partition_type, "r") == 0) - printfPQExpBuffer(&tmp_part_buf, "%s(", "Range partition by"); - else if (strcmp(partition_type, "i") == 0) - printfPQExpBuffer(&tmp_part_buf, "%s(", "Interval partition by"); + if (strcmp(partition_type, "r") == 0 || strcmp(partition_type, "i") == 0) + printfPQExpBuffer(&tmp_part_buf, "Partition By RANGE("); else if (strcmp(partition_type, "v") == 0) - printfPQExpBuffer(&tmp_part_buf, "%s(", "Value partition by"); + printfPQExpBuffer(&tmp_part_buf, "Partition By VALUE("); else if (strcmp(partition_type, "l") == 0) - printfPQExpBuffer(&tmp_part_buf, "%s(", "List partition by"); + printfPQExpBuffer(&tmp_part_buf, "Partition By LIST("); else if (strcmp(partition_type, "h") == 0) - printfPQExpBuffer(&tmp_part_buf, "%s(", "Hash partition by"); + printfPQExpBuffer(&tmp_part_buf, "Partition By HASH("); /* 3. Get partition key name through partition key postition and pg_attribute. */ printfPQExpBuffer(&buf, "SELECT attname\n" @@ -2622,6 +2639,56 @@ static bool describeOneTableDetails(const char* schemaname, const char* relation key_position = strtok_s(NULL, separator_symbol, &next_key); } appendPQExpBuffer(&tmp_part_buf, ")"); + + if (strcmp(partition_type, "i") == 0) { + char* interval = PQgetvalue(result, 0, 2); + appendPQExpBuffer(&tmp_part_buf, " INTERVAL('%s')", interval); + } + + printfPQExpBuffer( + &buf, "select partkey from pg_partition where parentid = %s and parttype = 'p'", oid); + partresult = PSQLexec(buf.data, false); + parttuples = PQntuples(partresult); + + /* show subpartition details */ + printfPQExpBuffer(&buf, + "select partstrategy from pg_partition where parttype = 's' and parentid in (select " + "oid from pg_partition where parttype = 'p' and parentid = %s)", + oid); + subresult = PSQLexec(buf.data, false); + if (subresult != NULL) { + subtuples = PQntuples(subresult); + } + if (subtuples > 0) { + appendPQExpBuffer(&tmp_part_buf, " "); + + char* subpartition_type = PQgetvalue(subresult, 0, 0); + if (strcmp(subpartition_type, "r") == 0) { + appendPQExpBuffer(&tmp_part_buf, "Subpartition By RANGE("); + } else if (strcmp(subpartition_type, "l") == 0) { + appendPQExpBuffer(&tmp_part_buf, "Subpartition By LIST("); + } else if (strcmp(subpartition_type, "h") == 0) { + appendPQExpBuffer(&tmp_part_buf, "Subpartition By HASH("); + } else { + goto error_return; + } + + char* subpartition_key = PQgetvalue(partresult, 0, 0); + char* next_subkey = NULL; + char* subkey_position = strtok_s(subpartition_key, separator_symbol, &next_subkey); + first_flag = false; + while (subkey_position != NULL) { + if (!first_flag) { + appendPQExpBuffer(&tmp_part_buf, "%s", PQgetvalue(tmp_result, atoi(subkey_position) - 1, 0)); + first_flag = true; + } else { + appendPQExpBuffer(&tmp_part_buf, ", %s", PQgetvalue(tmp_result, atoi(subkey_position) - 1, 0)); + } + subkey_position = strtok_s(NULL, separator_symbol, &next_subkey); + } + appendPQExpBuffer(&tmp_part_buf, ")"); + } + printTableAddFooter(&cont, tmp_part_buf.data); /* @@ -2630,9 +2697,18 @@ static bool describeOneTableDetails(const char* schemaname, const char* relation */ if (strcmp(partition_type, "v") != 0) { printfPQExpBuffer( - &buf, _("Number of partition: %d (View pg_partition to check each partition range.)"), tuples - 1); + &buf, _("Number of partitions: %d (View pg_partition to check each partition range.)"), parttuples); printTableAddFooter(&cont, buf.data); } + /* show subpartition num and notice the method to check subpartition range. */ + if (subtuples > 0) { + printfPQExpBuffer(&buf, + _("Number of subpartitions: %d (View pg_partition to check each subpartition range.)"), subtuples); + printTableAddFooter(&cont, buf.data); + } + + PQclear(partresult); + PQclear(subresult); PQclear(tmp_result); } PQclear(result); @@ -2999,7 +3075,8 @@ bool describeRoles(const char* pattern, bool verbose) appendPQExpBufferStr(&buf, "\nFROM pg_catalog.pg_roles r\n"); if (!pattern) { appendPQExpBufferStr(&buf, "WHERE r.rolname not in ('gs_role_copy_files', 'gs_role_signal_backend', " - "'gs_role_tablespace', 'gs_role_replication', 'gs_role_account_lock', 'gs_role_pldebugger')\n"); + "'gs_role_tablespace', 'gs_role_replication', 'gs_role_account_lock', 'gs_role_pldebugger', " + "'gs_role_directory_create', 'gs_role_directory_drop')\n"); } (void)processSQLNamePattern(pset.db, &buf, pattern, false, false, NULL, "r.rolname", NULL, NULL); @@ -3259,7 +3336,7 @@ bool listTables(const char* tabtypes, const char* pattern, bool verbose, bool sh "SELECT n.nspname as \"%s\",\n" " c.relname as \"%s\",\n" " CASE c.relkind WHEN 'r' THEN '%s' WHEN 'v' THEN '%s' WHEN 'i' THEN '%s' WHEN 'I' THEN '%s' " - "WHEN 'S' THEN '%s' WHEN 's' THEN '%s' WHEN 'f' THEN '%s' WHEN 'm' THEN '%s' WHEN 'e' THEN '%s' " + "WHEN 'S' THEN '%s' WHEN 'L' THEN '%s' WHEN 'f' THEN '%s' WHEN 'm' THEN '%s' WHEN 'e' THEN '%s' " "WHEN 'o' THEN '%s' END as \"%s\",\n" " pg_catalog.pg_get_userbyid(c.relowner) as \"%s\"", gettext_noop("Schema"), @@ -3269,7 +3346,7 @@ bool listTables(const char* tabtypes, const char* pattern, bool verbose, bool sh gettext_noop("index"), gettext_noop("global partition index"), gettext_noop("sequence"), - gettext_noop("special"), + gettext_noop("large sequence"), gettext_noop("foreign table"), gettext_noop("materialized view"), gettext_noop("stream"), @@ -3320,7 +3397,7 @@ bool listTables(const char* tabtypes, const char* pattern, bool verbose, bool sh if (showIndexes) appendPQExpBuffer(&buf, "'i','I',"); if (showSeq) - appendPQExpBuffer(&buf, "'S',"); + appendPQExpBuffer(&buf, "'S','L',"); if (showSystem || NULL != pattern) appendPQExpBuffer(&buf, "'s',"); /* was RELKIND_SPECIAL in <= * 8.1 */ diff --git a/src/bin/psql/help.cpp b/src/bin/psql/help.cpp index 9119e775a..619a67c65 100644 --- a/src/bin/psql/help.cpp +++ b/src/bin/psql/help.cpp @@ -160,8 +160,14 @@ void usage(void) tmp = GetEnvStr("PGHOST"); if (tmp != NULL) check_env_value(tmp); +#ifndef ENABLE_MULTIPLE_NODES + printf(_(" -h, --host=HOSTNAME database server host or socket directory (default: \"%s\")\n" + " allow multi host IP address with comma separator in centralized cluster\n"), + tmp != NULL ? tmp : _("local socket")); +#else printf(_(" -h, --host=HOSTNAME database server host or socket directory (default: \"%s\")\n"), tmp != NULL ? tmp : _("local socket")); +#endif if (NULL != tmp) free(tmp); tmp = NULL; @@ -298,7 +304,8 @@ void slashUsage(unsigned short int pager) fprintf(output, _(" \\pset NAME [VALUE] set table output option\n" " (NAME := {format|border|expanded|fieldsep|fieldsep_zero|footer|null|\n" - " numericlocale|recordsep|recordsep_zero|tuples_only|title|tableattr|pager})\n")); + " numericlocale|recordsep|recordsep_zero|tuples_only|title|tableattr|pager" + "|sqlerror_handle})\n")); fprintf(output, _(" \\t [on|off] show only rows (currently %s)\n"), ON(pset.popt.topt.tuples_only)); fprintf(output, _(" \\T [STRING] set HTML tag attributes, or unset if none\n")); fprintf(output, diff --git a/src/bin/psql/mainloop.cpp b/src/bin/psql/mainloop.cpp index 887b3c062..527ae9772 100644 --- a/src/bin/psql/mainloop.cpp +++ b/src/bin/psql/mainloop.cpp @@ -364,10 +364,15 @@ int MainLoop(FILE* source, char* querystring) } #endif success = SendQuery(query_buf->data); + bool is_handle_error = !success && (sqlErrHandle == SQLERROR_HANDLE_EXIT); + if (is_handle_error) { + exit(EXIT_FAILURE); + } // Query fail, if need retry, invoke QueryRetryController(). // - if (!success && pset.retry_on) { + bool is_retry_on = !success && pset.retry_on; + if (is_retry_on) { success = QueryRetryController(query_buf->data); } } else { diff --git a/src/bin/psql/print.cpp b/src/bin/psql/print.cpp index b12e072ce..44a5f3a6d 100644 --- a/src/bin/psql/print.cpp +++ b/src/bin/psql/print.cpp @@ -2,6 +2,7 @@ * psql - the openGauss interactive terminal * * Copyright (c) 2000-2012, PostgreSQL Global Development Group + * Portions Copyright (c) 2021, openGauss Contributors * * src/bin/psql/print.c */ @@ -2265,6 +2266,7 @@ void printQuery(const PGresult* result, const printQueryOpt* opt, FILE* fout, FI case INT2OID: case INT4OID: case INT8OID: + case INT16OID: case FLOAT4OID: case FLOAT8OID: case NUMERICOID: diff --git a/src/bin/psql/psqlscan.l b/src/bin/psql/psqlscan.l index ddeffb1f2..0fd34d31d 100644 --- a/src/bin/psql/psqlscan.l +++ b/src/bin/psql/psqlscan.l @@ -1849,7 +1849,6 @@ evaluate_backtick(void) cmd_output.len--; appendBinaryPQExpBuffer(output_buf, cmd_output.data, cmd_output.len); } - termPQExpBuffer(&cmd_output); } @@ -2227,6 +2226,7 @@ analyze_state(const char* text,PsqlScanStateData* state) state->gram_state[IDEN_IS] = true; state->gram_state[IDEN_RETURN] = true; state->gram_state[IDEN_RETURNS] = true; + state->include_ora_comment = true; state->count_to_read = -1; break; case IDEN_RETURN: diff --git a/src/bin/psql/startup.cpp b/src/bin/psql/startup.cpp index 6b3e03db8..8482dd638 100644 --- a/src/bin/psql/startup.cpp +++ b/src/bin/psql/startup.cpp @@ -45,9 +45,15 @@ PsqlSettings pset; /* Used for change child process name in gsql parallel execute mode. */ char* argv_para; int argv_num; +static int PASSWORD_STR_LEN = 9; +static bool dbname_alloced = false; static bool is_pipeline = false; static bool is_interactive = true; - +#ifndef ENABLE_MULTIPLE_NODES +static const char *g_queryNodeState = "select local_role, db_state from pg_stat_get_stream_replications();"; +static const char *g_expectedLocalRole = "Primary"; +static const char *g_expectedDbState = "Normal"; +#endif /* The version of libpq */ extern const char* libpqVersionString; @@ -81,6 +87,11 @@ struct adhoc_opts { bool no_readline; bool no_psqlrc; bool single_txn; +#ifndef ENABLE_MULTIPLE_NODES + bool multi_host; + uint32 hostCount; + List *hostList; +#endif }; static void parse_psql_options(int argc, char* const argv[], struct adhoc_opts* options); @@ -113,6 +124,122 @@ static void set_aes_key(const char* dencrypt_key); #else #define PARAMS_ARRAY_SIZE 11 #endif + +#ifndef ENABLE_MULTIPLE_NODES +static bool IsPrimaryOfCentralizedCluster(PGconn *conn) +{ + PGresult* res = PQexec(conn, g_queryNodeState); + if (res == NULL) { + return false; + } + if (PQresultStatus(res) != PGRES_TUPLES_OK) { + PQclear(res); + return false; + } + if (PQntuples(res) <= 0) { + PQclear(res); + return false; + } + if (PQgetisnull(res, 0, 0)) { + PQclear(res); + return false; + } + char *localRole = pg_strdup(PQgetvalue(res, 0, 0)); + if (localRole == NULL) { + PQclear(res); + return false; + } + if (strcmp(localRole, g_expectedLocalRole) != 0) { + free(localRole); + PQclear(res); + return false; + } + free(localRole); + if (PQgetisnull(res, 0, 1)) { + PQclear(res); + return false; + } + char *dbState = pg_strdup(PQgetvalue(res, 0, 1)); + if (dbState == NULL) { + PQclear(res); + return false; + } + if (strcmp(dbState, g_expectedDbState) != 0) { + free(dbState); + PQclear(res); + return false; + } + free(dbState); + PQclear(res); + return true; +} +PGconn* PQconnectdbMultiHostParams(const char** keywords, + char** values, + struct adhoc_opts *option, + char **password, + const char *password_prompt) +{ + PGconn* conn = NULL; + bool pass = false; + ConnStatusType status = CONNECTION_BAD; + char *hostname = NULL; + List *hostList = NULL; + bool isParseOnly = false; + while (option->hostCount > 0) { + hostList = option->hostList; + hostname = (char *)linitial(hostList); + values[0] = hostname; + do { + conn = PQconnectdbParams(keywords, values, (int)true); + pass = false; + status = CONNECTION_BAD; + if (conn == NULL || conn->sock < 0) { + fprintf(stderr, + "failed to connect %s:%s.\n", + ((conn->pghost == NULL) ? "Unknown" : conn->pghost), + ((conn->pgport == NULL) ? "Unknown" : conn->pgport)); + break; + } + status = PQstatus(conn); + if (status == CONNECTION_BAD + && (strstr(PQerrorMessage(conn), "password") != NULL) + && (*password == NULL) + && (pset.getPassword != TRI_NO)) { + PQfinish(conn); + *password = simple_prompt(password_prompt, MAX_PASSWORD_LENGTH, false); + pass = true; + values[3] = *password; + } + } while (pass); + if ((status == CONNECTION_OK) && IsPrimaryOfCentralizedCluster(conn)) { + fprintf(stderr, "Connect primary node %s\n", hostname); + break; + } + if (hostname != NULL) { + free(hostname); + } + if (option->hostCount > 1) { + option->hostList = list_delete_first(hostList); + option->hostCount--; + PQfinish(conn); + } else { +#if defined(USE_ASSERT_CHECKING) || defined(FASTCHECK) + isParseOnly = check_parseonly_parameter(*option); +#endif + option->hostCount--; + if (status == CONNECTION_BAD && !isParseOnly) { + fprintf(stderr, "%s: %s", pset.progname, PQerrorMessage(conn)); + PQfinish(conn); + exit(EXIT_BADCONN); + } + PQfinish(conn); + conn = NULL; + } + } + return conn; +} +#endif + /* * * main @@ -127,6 +254,7 @@ int main(int argc, char* argv[]) bool new_pass = false; errno_t rc; bool isparseonly = false; + bool has_action = false; /* Database Security: Data importing/dumping support AES128. */ struct timeval aes_start_time; @@ -320,7 +448,19 @@ int main(int argc, char* argv[]) keywords[PARAMS_ARRAY_SIZE - 1] = NULL; values[PARAMS_ARRAY_SIZE - 1] = NULL; new_pass = false; +#ifdef ENABLE_MULTIPLE_NODES pset.db = PQconnectdbParams(keywords, values, (int)true); +#else + if (options.multi_host && options.hostCount > 1) { + pset.db = PQconnectdbMultiHostParams(keywords, values, &options, &password, password_prompt); + if (pset.db == NULL) { + fprintf(stderr, "failed to connect %s:%s.\n", options.host, options.port); + exit(EXIT_BADCONN); + } + } else { + pset.db = PQconnectdbParams(keywords, values, (int)true); + } +#endif if (pset.db->sock < 0) { fprintf(stderr, @@ -370,7 +510,12 @@ int main(int argc, char* argv[]) free(values_free); values_free = NULL; } - } while (new_pass); + } +#ifdef ENABLE_MULTIPLE_NODES + while (new_pass); +#else + while (new_pass && options.multi_host == false); +#endif if (options.passwd == NULL) { if (password == pset.connInfo.values[3]) { pset.connInfo.values_free[3] = false; @@ -557,7 +702,8 @@ int main(int argc, char* argv[]) pset.guc_stmt = NULL; /* Free options.action_string, because it alloced memory when options.action is ACT_FILE*/ - if (options.action == ACT_FILE && (options.action_string != NULL)) { + has_action = (options.action == ACT_FILE) && (options.action_string != NULL); + if (has_action) { free(options.action_string); options.action_string = NULL; } @@ -567,6 +713,13 @@ int main(int argc, char* argv[]) ResetQueryRetryController(); EmptyRetryErrcodesList(pset.errcodes_list); + if (dbname_alloced) { + rc = memset_s(options.dbname, strlen(options.dbname), 0, strlen(options.dbname)); + securec_check_c(rc, "\0", "\0"); + free(options.dbname); + options.dbname = NULL; + } + return successResult; } @@ -602,6 +755,63 @@ static void get_password_pipeline(struct adhoc_opts* options) pass_buf = NULL; } +#ifndef ENABLE_MULTIPLE_NODES +static void TrimHost(char *src) +{ + char *begin = src; + char *end = src + strlen(src); + if (begin == end) { + return; + } + while (isspace(*begin)) { + ++begin; + } + while (isspace(*end)) { + --end; + } + if (begin > end) { + *src = 0; + return; + } + while (begin != end) { + *src = *begin; + src++; + begin++; + } + *src = *end; + src++; + *src = '\0'; + return; +} + +static void ParseHostArg(const char *arg, struct adhoc_opts *options) +{ + const char *sep = ","; + options->multi_host = false; + options->hostList = NULL; + options->hostCount = 0; + if ((arg == NULL) || (strstr(arg, sep) == NULL)) { + return; + } + char *inputStr = pg_strdup(arg); + char *host = NULL; + for (char *subStr = strtok(inputStr, sep); subStr != NULL; subStr = strtok(NULL, sep)) { + host = pg_strdup(subStr); + TrimHost(host); + if (strlen(host) == 0) { + free(host); + continue; + } + options->hostList = (options->hostList == NULL) ? list_make1(host) : lappend(options->hostList, host); + options->hostCount++; + } + if (options->hostCount > 1) { + options->multi_host = true; + } + free(inputStr); +} +#endif + /* * Parse command line options */ @@ -656,6 +866,7 @@ static void parse_psql_options(int argc, char* const argv[], struct adhoc_opts* extern char* optarg; extern int optind; int c; + bool is_action_file = false; /* Database Security: Data importing/dumping support AES128. */ char* dencrypt_key = NULL; errno_t rc = EOK; @@ -712,7 +923,8 @@ static void parse_psql_options(int argc, char* const argv[], struct adhoc_opts* break; } is_interactive = false; - if ((options->action_string != NULL) && options->action == ACT_FILE) + is_action_file = (options->action_string != NULL) && (options->action == ACT_FILE); + if (is_action_file) free(options->action_string); options->action_string = pg_strdup(optarg); options->action = ACT_FILE; @@ -725,6 +937,9 @@ static void parse_psql_options(int argc, char* const argv[], struct adhoc_opts* break; case 'h': options->host = optarg; +#ifndef ENABLE_MULTIPLE_NODES + ParseHostArg(options->host, options); +#endif break; case 'H': pset.popt.topt.format = PRINT_HTML; @@ -900,7 +1115,15 @@ static void parse_psql_options(int argc, char* const argv[], struct adhoc_opts* */ while (argc - optind >= 1) { if (options->dbname == NULL) { + char *temp = NULL; options->dbname = argv[optind]; + if ((temp = strstr(argv[optind], "password")) != NULL) { + options->dbname = pg_strdup(argv[optind]); + rc = memset_s(temp + PASSWORD_STR_LEN, strlen(argv[optind]), + 0, strlen(temp + PASSWORD_STR_LEN)); + check_memset_s(rc); + dbname_alloced = true; + } /* mask informations in URI string. */ if (strncmp(options->dbname, "postgresql://", strlen("postgresql://")) == 0) { options->dbname = pg_strdup(argv[optind]); @@ -1313,25 +1536,24 @@ static void EstablishVariableSpace(void) */ static void set_aes_key(const char* dencrypt_key) { - int tmpkeylen = 0; errno_t rc; - if (dencrypt_key != NULL) { - tmpkeylen = (int)strlen(dencrypt_key); - } else { + if (dencrypt_key == NULL) { fprintf(stderr, _("%s: missing key\n"), pset.progname); exit(EXIT_FAILURE); } - if (tmpkeylen == KEY_LEN && check_key((const char*)dencrypt_key, KEY_LEN)) { + if (check_input_password(dencrypt_key)) { rc = memset_s(pset.decryptInfo.Key, KEY_MAX_LEN, 0, KEY_MAX_LEN); securec_check_c(rc, "\0", "\0"); rc = strncpy_s((char*)pset.decryptInfo.Key, KEY_MAX_LEN, dencrypt_key, KEY_MAX_LEN - 1); securec_check_c(rc, "\0", "\0"); } else { fprintf(stderr, - _("%s: the key is illegal,must be letters or numbers and the length must be %d\n"), + _("%s: The input key must be %d~%d bytes and " + "contain at least three kinds of characters!\n"), pset.progname, - KEY_LEN); + MIN_KEY_LEN, + MAX_KEY_LEN); exit(EXIT_FAILURE); } } \ No newline at end of file diff --git a/src/common/backend/catalog/CMakeLists.txt b/src/common/backend/catalog/CMakeLists.txt index e783da94d..61e6df6e0 100755 --- a/src/common/backend/catalog/CMakeLists.txt +++ b/src/common/backend/catalog/CMakeLists.txt @@ -14,7 +14,7 @@ set(POSTGRES_BKI_SRCS_S @gs_client_global_keys_args.h @pg_job.h @gs_asp.h @pg_job_proc.h @pg_extension_data_source.h @pg_statistic_ext.h @pg_object.h @pg_synonym.h @toasting.h @indexing.h @gs_obsscaninfo.h @pg_directory.h @pg_hashbucket.h @gs_global_chain.h @gs_global_config.h @pg_streaming_stream.h @pg_streaming_cont_query.h @pg_streaming_reaper_status.h @gs_matview.h @gs_matview_dependency.h @pgxc_slice.h -@gs_opt_model.h @pg_recyclebin.h @pg_snapshot.h @gs_model.h @gs_package.h +@gs_opt_model.h @pg_recyclebin.h @pg_snapshot.h @gs_model.h @gs_package.h @gs_job_argument.h @gs_job_attribute.h @pg_replication_origin.h @pg_publication.h @pg_publication_rel.h @pg_subscription.h" ) diff --git a/src/common/backend/catalog/Makefile b/src/common/backend/catalog/Makefile index 4be4eb793..c1147e0ae 100644 --- a/src/common/backend/catalog/Makefile +++ b/src/common/backend/catalog/Makefile @@ -23,7 +23,8 @@ OBJS = catalog.o dependency.o heap.o index.o indexing.o namespace.o aclchk.o \ pg_operator.o gs_package.o pg_proc.o pg_range.o pg_db_role_setting.o pg_shdepend.o pg_synonym.o\ pg_type.o pgxc_class.o storage.o storage_gtt.o toasting.o pg_job.o pg_partition.o\ pg_hashbucket.o cstore_ctlg.o dfsstore_ctlg.o pg_builtin_proc.o streaming_stream.o\ - gs_matview.o pgxc_slice.o pg_publication.o pg_subscription.o + gs_matview.o pgxc_slice.o pg_job_proc.o gs_job_argument.o gs_job_attribute.o\ + pg_publication.o pg_subscription.o BKIFILES = postgres.bki postgres.description postgres.shdescription @@ -58,8 +59,9 @@ POSTGRES_BKI_SRCS = $(addprefix $(top_srcdir)/src/include/catalog/,\ toasting.h indexing.h gs_obsscaninfo.h pg_directory.h pg_hashbucket.h gs_global_chain.h gs_global_config.h\ pg_streaming_stream.h pg_streaming_cont_query.h pg_streaming_reaper_status.h gs_matview.h\ gs_matview_dependency.h pgxc_slice.h gs_opt_model.h gs_model.h\ - pg_recyclebin.h pg_snapshot.h pg_replication_origin.h pg_publication.h pg_publication_rel.h pg_subscription.h\ - ) + pg_recyclebin.h pg_snapshot.h gs_job_argument.h gs_job_attribute.h\ + pg_replication_origin.h pg_publication.h pg_publication_rel.h pg_subscription.h\ + ) # location of Catalog.pm catalogdir = $(top_srcdir)/src/common/backend/catalog diff --git a/src/common/backend/catalog/aclchk.cpp b/src/common/backend/catalog/aclchk.cpp index 7a9bd5643..27bcbca6a 100644 --- a/src/common/backend/catalog/aclchk.cpp +++ b/src/common/backend/catalog/aclchk.cpp @@ -273,7 +273,6 @@ static void dumpacl(Acl* acl) } #endif /* ACLDEBUG */ -#define DATA_NODE_CHECK() if (IS_PGXC_DATANODE) break; /* if we have a detoasted copy of acl, free it */ #define FREE_DETOASTED_ACL(acl, aclDatum) do { \ if ((acl) && ((Pointer)(acl) != DatumGetPointer((aclDatum)))) { \ @@ -815,6 +814,18 @@ static List *objectNamesToOids(GrantObjectType objtype, List *objnames) oid = typenameTypeId(NULL, makeTypeNameFromNameList(typname)); objects = lappend_oid(objects, oid); +#ifndef ENABLE_MULTIPLE_NODES + /* don't allow to alter package or procedure type */ + if (IsPackageDependType(oid, InvalidOid)) { + ereport(ERROR, + (errcode(ERRCODE_WRONG_OBJECT_TYPE), + errmodule(MOD_PLSQL), + errmsg("Not allowed to GRANT/REVOKE type \"%s\"", NameListToString(typname)), + errdetail("\"%s\" is a package or procedure type", NameListToString(typname)), + errcause("feature not supported"), + erraction("check type name"))); + } +#endif } break; case ACL_OBJECT_FUNCTION: @@ -927,15 +938,9 @@ static List *objectNamesToOids(GrantObjectType objtype, List *objnames) } break; case ACL_OBJECT_GLOBAL_SETTING: -#ifdef ENABLE_MULTIPLE_NODES - DATA_NODE_CHECK(); -#endif get_global_objects(objnames, &objects); break; case ACL_OBJECT_COLUMN_SETTING: -#ifdef ENABLE_MULTIPLE_NODES - DATA_NODE_CHECK(); -#endif get_column_objects(objnames, &objects); break; @@ -987,6 +992,8 @@ static List* objectsInSchemaToOids(GrantObjectType objtype, List* nspnames) case ACL_OBJECT_SEQUENCE: objs = getRelationsInNamespace(namespaceId, RELKIND_SEQUENCE); objects = list_concat(objects, objs); + objs = getRelationsInNamespace(namespaceId, RELKIND_LARGE_SEQUENCE); + objects = list_concat(objects, objs); break; case ACL_OBJECT_FUNCTION: { ScanKeyData key[1]; @@ -2018,7 +2025,7 @@ static void ExecGrantRelationTypeCheck(Form_pg_class classTuple, const InternalG erraction("Check GRANT/REVOKE syntax to obtain the supported object types."))); /* Used GRANT SEQUENCE on a non-sequence? */ - if (istmt->objtype == ACL_OBJECT_SEQUENCE && classTuple->relkind != RELKIND_SEQUENCE) + if (istmt->objtype == ACL_OBJECT_SEQUENCE && !RELKIND_IS_SEQUENCE(classTuple->relkind)) ereport(ERROR, (errmodule(MOD_SEC_FE), errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("wrong object type"), errdetail("\"%s\" is not a sequence", NameStr(classTuple->relname)), errcause("GRANT/REVOKE SEQUENCE only support sequence objects."), @@ -2026,7 +2033,7 @@ static void ExecGrantRelationTypeCheck(Form_pg_class classTuple, const InternalG /* Adjust the default permissions based on object type */ if (istmt->all_privs && istmt->privileges == ACL_NO_RIGHTS && istmt->ddl_privileges == ACL_NO_DDL_RIGHTS) { - if (classTuple->relkind == RELKIND_SEQUENCE) { + if (RELKIND_IS_SEQUENCE(classTuple->relkind)) { *privileges = ACL_ALL_RIGHTS_SEQUENCE; *ddlPrivileges = (t_thrd.proc->workingVersionNum >= PRIVS_VERSION_NUM) ? ACL_ALL_DDL_RIGHTS_SEQUENCE : ACL_NO_DDL_RIGHTS; @@ -2043,7 +2050,7 @@ static void ExecGrantRelationTypeCheck(Form_pg_class classTuple, const InternalG static void ExecGrantRelationPrivilegesCheck(Form_pg_class tuple, AclMode* privileges, AclMode* ddlprivileges) { - if (tuple->relkind == RELKIND_SEQUENCE) { + if (RELKIND_IS_SEQUENCE(tuple->relkind)) { /* * For backward compatibility, just throw a warning for * invalid sequence permissions when using the non-sequence @@ -2174,6 +2181,7 @@ static void ExecGrant_Relation(InternalGrant* istmt) if (isNull) { switch (pg_class_tuple->relkind) { case RELKIND_SEQUENCE: + case RELKIND_LARGE_SEQUENCE: old_acl = acldefault(ACL_OBJECT_SEQUENCE, ownerId); break; default: @@ -2222,6 +2230,7 @@ static void ExecGrant_Relation(InternalGrant* istmt) switch (pg_class_tuple->relkind) { case RELKIND_SEQUENCE: + case RELKIND_LARGE_SEQUENCE: aclkind = ACL_KIND_SEQUENCE; break; default: @@ -2299,7 +2308,7 @@ static void ExecGrant_Relation(InternalGrant* istmt) erraction("Check GRANT/REVOKE syntax to obtain the supported privilege types " "for column object."))); - if (pg_class_tuple->relkind == RELKIND_SEQUENCE && (privileges & ~((AclMode)ACL_SELECT))) { + if (RELKIND_IS_SEQUENCE(pg_class_tuple->relkind) && (privileges & ~((AclMode)ACL_SELECT))) { /* * The only column privilege allowed on sequences is SELECT. * This is a warning not error because we do it that way for @@ -4428,7 +4437,8 @@ static void ExecGrant_Directory(InternalGrant* istmt) errno_t rc; if (istmt->all_privs && istmt->privileges == ACL_NO_RIGHTS && istmt->ddl_privileges == ACL_NO_DDL_RIGHTS) { istmt->privileges = ACL_ALL_RIGHTS_DIRECTORY; - istmt->ddl_privileges = ACL_ALL_DDL_RIGHTS_DIRECTORY; + istmt->ddl_privileges = (t_thrd.proc->workingVersionNum >= PRIVS_DIRECTORY_VERSION_NUM) ? + ACL_ALL_DDL_RIGHTS_DIRECTORY : ACL_NO_DDL_RIGHTS; } relation = heap_open(PgDirectoryRelationId, RowExclusiveLock); @@ -5100,6 +5110,7 @@ AclMode pg_class_aclmask(Oid table_oid, Oid roleid, AclMode mask, AclMaskHow how /* No ACL, so build default ACL */ switch (classForm->relkind) { case RELKIND_SEQUENCE: + case RELKIND_LARGE_SEQUENCE: acl = acldefault(ACL_OBJECT_SEQUENCE, ownerId); break; default: @@ -5245,10 +5256,13 @@ AclMode pg_proc_aclmask(Oid proc_oid, Oid roleid, AclMode mask, AclMaskHow how, { AclMode result; HeapTuple tuple = NULL; + HeapTuple pkgTuple = NULL; Datum aclDatum; + Datum packageOidDatum; bool isNull = false; Acl* acl = NULL; - Oid ownerId; + Oid ownerId = InvalidOid; + Oid packageOid = InvalidOid; if(IsSystemObjOid(proc_oid) && isOperatoradmin(roleid) && u_sess->attr.attr_security.operation_mode){ return REMOVE_DDL_FLAG(mask); @@ -5264,7 +5278,10 @@ AclMode pg_proc_aclmask(Oid proc_oid, Oid roleid, AclMode mask, AclMaskHow how, errcause("System error."), erraction("Contact engineer to support."))); ownerId = ((Form_pg_proc)GETSTRUCT(tuple))->proowner; - + packageOidDatum = SysCacheGetAttr(PROCOID, tuple, Anum_pg_proc_packageid, &isNull); + if (!isNull) { + packageOid = DatumGetObjectId(packageOidDatum); + } /* For procs in schema dbe_perf and schema snapshot, * initial user and monitorsdmin bypass all permission-checking. */ @@ -5279,8 +5296,17 @@ AclMode pg_proc_aclmask(Oid proc_oid, Oid roleid, AclMode mask, AclMaskHow how, ReleaseSysCache(tuple); return REMOVE_DDL_FLAG(mask); } - - aclDatum = SysCacheGetAttr(PROCOID, tuple, Anum_pg_proc_proacl, &isNull); + if (!OidIsValid(packageOid)) { + aclDatum = SysCacheGetAttr(PROCOID, tuple, Anum_pg_proc_proacl, &isNull); + } else { + pkgTuple = SearchSysCache1(PACKAGEOID, ObjectIdGetDatum(packageOid)); + if (!HeapTupleIsValid(pkgTuple)) { + ereport(ERROR, (errmodule(MOD_SEC), errcode(ERRCODE_UNDEFINED_FUNCTION), + errmsg("package with OID %u does not exist", packageOid), errdetail("N/A"), + errcause("System error."), erraction("Contact engineer to support."))); + } + aclDatum = SysCacheGetAttr(PACKAGEOID, pkgTuple, Anum_gs_package_pkgacl, &isNull); + } if (isNull) { /* No ACL, so build default ACL */ acl = acldefault(ACL_OBJECT_FUNCTION, ownerId); @@ -5302,12 +5328,66 @@ AclMode pg_proc_aclmask(Oid proc_oid, Oid roleid, AclMode mask, AclMaskHow how, /* if we have a detoasted copy, free it */ FREE_DETOASTED_ACL(acl, aclDatum); - + if (HeapTupleIsValid(pkgTuple)) { + ReleaseSysCache(pkgTuple); + } ReleaseSysCache(tuple); return result; } +/* + * Exported routine for examining a user's privileges for a package + */ +AclMode pg_package_aclmask(Oid packageOid, Oid roleid, AclMode mask, AclMaskHow how) +{ + AclMode result; + HeapTuple tuple = NULL; + HeapTuple pkgTuple = NULL; + Datum aclDatum; + bool isNull = false; + Acl* acl = NULL; + Oid ownerId = InvalidOid; + + /* + * Get the package's ACL from gs_package + */ + tuple = SearchSysCache1(PACKAGEOID, ObjectIdGetDatum(packageOid)); + if (!HeapTupleIsValid(tuple)) { + ereport(ERROR, (errmodule(MOD_SEC), errcode(ERRCODE_UNDEFINED_PACKAGE), + errmsg("package with OID %u does not exist", packageOid), errdetail("N/A"), + errcause("System error."), erraction("Contact engineer to support."))); + } + ownerId = ((Form_gs_package)GETSTRUCT(tuple))->pkgowner; + + pkgTuple = SearchSysCache1(PACKAGEOID, ObjectIdGetDatum(packageOid)); + if (!HeapTupleIsValid(pkgTuple)) { + ReleaseSysCache(pkgTuple); + ereport(ERROR, (errmodule(MOD_SEC), errcode(ERRCODE_UNDEFINED_FUNCTION), + errmsg("package with OID %u does not exist", packageOid), errdetail("N/A"), + errcause("System error."), erraction("Contact engineer to support."))); + } + aclDatum = SysCacheGetAttr(PACKAGEOID, pkgTuple, Anum_gs_package_pkgacl, &isNull); + if (isNull) { + /* No ACL, so build default ACL */ + acl = acldefault(ACL_OBJECT_PACKAGE, ownerId); + aclDatum = (Datum)0; + } else { + /* detoast ACL if necessary */ + acl = DatumGetAclP(aclDatum); + } + result = aclmask(acl, roleid, ownerId, mask, how); + /* if we have a detoasted copy, free it */ + FREE_DETOASTED_ACL(acl, aclDatum); + if (HeapTupleIsValid(pkgTuple)) { + ReleaseSysCache(pkgTuple); + } + ReleaseSysCache(tuple); + + return result; +} + + /* * Exported routine for examining a user's privileges for a client master key */ @@ -6159,6 +6239,17 @@ AclResult pg_proc_aclcheck(Oid proc_oid, Oid roleid, AclMode mode, bool check_no return ACLCHECK_NO_PRIV; } +/* + * Exported routine for checking a user's access privileges to a package + */ +AclResult pg_package_aclcheck(Oid pkgOid, Oid roleid, AclMode mode, bool checkNodegroup) +{ + if (pg_package_aclmask(pkgOid, roleid, mode, ACLMASK_ANY) != 0) + return ACLCHECK_OK; + else + return ACLCHECK_NO_PRIV; +} + /* * Exported routine for checking a user's access privileges to a client master key */ @@ -7185,7 +7276,7 @@ bool independent_priv_aclcheck(AclMode mask, char relkind) */ if (u_sess->proc_cxt.clientIsGsredis && ClusterResizingInProgress()) { return true; - } else if (u_sess->proc_cxt.clientIsGsdump && relkind == RELKIND_SEQUENCE) { + } else if (u_sess->proc_cxt.clientIsGsdump && RELKIND_IS_SEQUENCE(relkind)) { return true; } else { return false; diff --git a/src/common/backend/catalog/builtin_funcs.ini b/src/common/backend/catalog/builtin_funcs.ini index 466a9e6a7..f74579dec 100755 --- a/src/common/backend/catalog/builtin_funcs.ini +++ b/src/common/backend/catalog/builtin_funcs.ini @@ -1,3343 +1,3457 @@ AddFuncGroup( "abbrev", 2, - AddBuiltinFunc(_0(598), _1("abbrev"), _2(1), _3(true), _4(false), _5(inet_abbrev), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("inet_abbrev"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(599), _1("abbrev"), _2(1), _3(true), _4(false), _5(cidr_abbrev), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 650), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cidr_abbrev"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(598), _1("abbrev"), _2(1), _3(true), _4(false), _5(inet_abbrev), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("inet_abbrev"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("abbreviated display of inet value"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(599), _1("abbrev"), _2(1), _3(true), _4(false), _5(cidr_abbrev), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 650), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cidr_abbrev"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("abbreviated display of cidr value"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "abort", 1, - AddBuiltinFunc(_0(1503), _1("abort"), _2(2), _3(true), _4(false), _5(debug_client_abort), _6(16), _7(PG_PLDEBUG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("debug_client_abort"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1503), _1("abort"), _2(2), _3(true), _4(false), _5(debug_client_abort), _6(16), _7(PG_PLDEBUG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("debug_client_abort"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "abs", 6, - AddBuiltinFunc(_0(1394), _1("abs"), _2(1), _3(true), _4(false), _5(float4abs), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4abs"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1395), _1("abs"), _2(1), _3(true), _4(false), _5(float8abs), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8abs"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1396), _1("abs"), _2(1), _3(true), _4(false), _5(int8abs), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8abs"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1397), _1("abs"), _2(1), _3(true), _4(false), _5(int4abs), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4abs"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1398), _1("abs"), _2(1), _3(true), _4(false), _5(int2abs), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2abs"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1705), _1("abs"), _2(1), _3(true), _4(false), _5(numeric_abs), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_abs"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1394), _1("abs"), _2(1), _3(true), _4(false), _5(float4abs), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4abs"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("absolute value"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1395), _1("abs"), _2(1), _3(true), _4(false), _5(float8abs), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8abs"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("absolute value"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1396), _1("abs"), _2(1), _3(true), _4(false), _5(int8abs), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8abs"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("absolute value"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1397), _1("abs"), _2(1), _3(true), _4(false), _5(int4abs), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4abs"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("absolute value"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1398), _1("abs"), _2(1), _3(true), _4(false), _5(int2abs), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2abs"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("absolute value"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1705), _1("abs"), _2(1), _3(true), _4(false), _5(numeric_abs), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_abs"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "abstime", 2, - AddBuiltinFunc(_0(1180), _1("abstime"), _2(1), _3(true), _4(false), _5(timestamptz_abstime), _6(702), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_abstime"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(TIMESTAMP2ABSTIMEFUNCOID), _1("abstime"), _2(1), _3(true), _4(false), _5(timestamp_abstime), _6(702), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_abstime"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1180), _1("abstime"), _2(1), _3(true), _4(false), _5(timestamptz_abstime), _6(702), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_abstime"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(TIMESTAMP2ABSTIMEFUNCOID), _1("abstime"), _2(1), _3(true), _4(false), _5(timestamp_abstime), _6(702), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_abstime"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "abstimeeq", 1, - AddBuiltinFunc(_0(251), _1("abstimeeq"), _2(2), _3(true), _4(false), _5(abstimeeq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 702, 702), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("abstimeeq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(251), _1("abstimeeq"), _2(2), _3(true), _4(false), _5(abstimeeq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 702, 702), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("abstimeeq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "abstimege", 1, - AddBuiltinFunc(_0(256), _1("abstimege"), _2(2), _3(true), _4(false), _5(abstimege), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 702, 702), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("abstimege"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(256), _1("abstimege"), _2(2), _3(true), _4(false), _5(abstimege), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 702, 702), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("abstimege"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "abstimegt", 1, - AddBuiltinFunc(_0(254), _1("abstimegt"), _2(2), _3(true), _4(false), _5(abstimegt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 702, 702), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("abstimegt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(254), _1("abstimegt"), _2(2), _3(true), _4(false), _5(abstimegt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 702, 702), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("abstimegt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "abstimein", 1, - AddBuiltinFunc(_0(ABSTIMEINFUNCOID), _1("abstimein"), _2(1), _3(true), _4(false), _5(abstimein), _6(702), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("abstimein"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(ABSTIMEINFUNCOID), _1("abstimein"), _2(1), _3(true), _4(false), _5(abstimein), _6(702), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("abstimein"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "abstimele", 1, - AddBuiltinFunc(_0(255), _1("abstimele"), _2(2), _3(true), _4(false), _5(abstimele), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 702, 702), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("abstimele"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(255), _1("abstimele"), _2(2), _3(true), _4(false), _5(abstimele), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 702, 702), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("abstimele"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "abstimelt", 1, - AddBuiltinFunc(_0(253), _1("abstimelt"), _2(2), _3(true), _4(false), _5(abstimelt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 702, 702), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("abstimelt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(253), _1("abstimelt"), _2(2), _3(true), _4(false), _5(abstimelt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 702, 702), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("abstimelt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "abstimene", 1, - AddBuiltinFunc(_0(252), _1("abstimene"), _2(2), _3(true), _4(false), _5(abstimene), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 702, 702), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("abstimene"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(252), _1("abstimene"), _2(2), _3(true), _4(false), _5(abstimene), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 702, 702), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("abstimene"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "abstimeout", 1, - AddBuiltinFunc(_0(ABSTIMEOUTFUNCOID), _1("abstimeout"), _2(1), _3(true), _4(false), _5(abstimeout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 702), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("abstimeout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(ABSTIMEOUTFUNCOID), _1("abstimeout"), _2(1), _3(true), _4(false), _5(abstimeout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 702), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("abstimeout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "abstimerecv", 1, - AddBuiltinFunc(_0(2462), _1("abstimerecv"), _2(1), _3(true), _4(false), _5(abstimerecv), _6(702), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("abstimerecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2462), _1("abstimerecv"), _2(1), _3(true), _4(false), _5(abstimerecv), _6(702), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("abstimerecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "abstimesend", 1, - AddBuiltinFunc(_0(2463), _1("abstimesend"), _2(1), _3(true), _4(false), _5(abstimesend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 702), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("abstimesend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2463), _1("abstimesend"), _2(1), _3(true), _4(false), _5(abstimesend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 702), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("abstimesend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "aclcontains", 1, - AddBuiltinFunc(_0(1037), _1("aclcontains"), _2(2), _3(true), _4(false), _5(aclcontains), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1034, 1033), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aclcontains"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1037), _1("aclcontains"), _2(2), _3(true), _4(false), _5(aclcontains), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1034, 1033), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aclcontains"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("contains"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "acldefault", 1, - AddBuiltinFunc(_0(3943), _1("acldefault"), _2(2), _3(true), _4(false), _5(acldefault_sql), _6(1034), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 18, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("acldefault_sql"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3943), _1("acldefault"), _2(2), _3(true), _4(false), _5(acldefault_sql), _6(1034), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 18, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("acldefault_sql"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("show hardwired default privileges, primarily for use by the information schema"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "aclexplode", 1, - AddBuiltinFunc(_0(1689), _1("aclexplode"), _2(1), _3(true), _4(true), _5(aclexplode), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1034), _21(5, 1034, 26, 26, 25, 16), _22(5, 'i', 'o', 'o', 'o', 'o'), _23(5, "acl", "grantor", "grantee", "privilege_type", "is_grantable"), _24(NULL), _25("aclexplode"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1689), _1("aclexplode"), _2(1), _3(true), _4(true), _5(aclexplode), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1034), _21(5, 1034, 26, 26, 25, 16), _22(5, 'i', 'o', 'o', 'o', 'o'), _23(5, "acl", "grantor", "grantee", "privilege_type", "is_grantable"), _24(NULL), _25("aclexplode"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert ACL item array to table, primarily for use by information schema"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "aclinsert", 1, - AddBuiltinFunc(_0(1035), _1("aclinsert"), _2(2), _3(true), _4(false), _5(aclinsert), _6(1034), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1034, 1033), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aclinsert"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1035), _1("aclinsert"), _2(2), _3(true), _4(false), _5(aclinsert), _6(1034), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1034, 1033), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aclinsert"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "aclitemeq", 1, - AddBuiltinFunc(_0(1062), _1("aclitemeq"), _2(2), _3(true), _4(false), _5(aclitem_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1033, 1033), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aclitem_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1062), _1("aclitemeq"), _2(2), _3(true), _4(false), _5(aclitem_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1033, 1033), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aclitem_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "aclitemin", 1, - AddBuiltinFunc(_0(1031), _1("aclitemin"), _2(1), _3(true), _4(false), _5(aclitemin), _6(1033), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aclitemin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1031), _1("aclitemin"), _2(1), _3(true), _4(false), _5(aclitemin), _6(1033), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aclitemin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "aclitemout", 1, - AddBuiltinFunc(_0(1032), _1("aclitemout"), _2(1), _3(true), _4(false), _5(aclitemout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1033), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aclitemout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1032), _1("aclitemout"), _2(1), _3(true), _4(false), _5(aclitemout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1033), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aclitemout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "aclremove", 1, - AddBuiltinFunc(_0(1036), _1("aclremove"), _2(2), _3(true), _4(false), _5(aclremove), _6(1034), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1034, 1033), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aclremove"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1036), _1("aclremove"), _2(2), _3(true), _4(false), _5(aclremove), _6(1034), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1034, 1033), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aclremove"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("remove ACL item"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "acos", 1, - AddBuiltinFunc(_0(1601), _1("acos"), _2(1), _3(true), _4(false), _5(dacos), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dacos"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1601), _1("acos"), _2(1), _3(true), _4(false), _5(dacos), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dacos"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("arccosine"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "add_breakpoint", 1, - AddBuiltinFunc(_0(1507), _1("add_breakpoint"), _2(2), _3(true), _4(false), _5(debug_client_add_breakpoint), _6(23), _7(PG_PLDEBUG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 23), _21(3, 26, 23, 23), _22(3, 'i', 'i', 'o'), _23(3, "funcoid", "lineno", "breakpointno"), _24(NULL), _25("debug_client_add_breakpoint"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1507), _1("add_breakpoint"), _2(2), _3(true), _4(false), _5(debug_client_add_breakpoint), _6(23), _7(PG_PLDEBUG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 23), _21(3, 26, 23, 23), _22(3, 'i', 'i', 'o'), _23(3, "funcoid", "lineno", "breakpointno"), _24(NULL), _25("debug_client_add_breakpoint"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "add_months", 1, - AddBuiltinFunc(_0(4074), _1("add_months"), _2(2), _3(true), _4(false), _5(add_months), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("add_months"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4074), _1("add_months"), _2(2), _3(true), _4(false), _5(add_months), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("add_months"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "age", 5, - AddBuiltinFunc(_0(1181), _1("age"), _2(1), _3(true), _4(false), _5(xid_age), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 28), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xid_age"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1199), _1("age"), _2(2), _3(true), _4(false), _5(timestamptz_age), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1184, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_age"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(AGEDATETOTIMETZFUNCOID), _1("age"), _2(1), _3(true), _4(false), _5(NULL), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.age(cast(current_date as timestamp with time zone), $1)"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2058), _1("age"), _2(2), _3(true), _4(false), _5(timestamp_age), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_age"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(AGEDATETOTIMEFUNCOID), _1("age"), _2(1), _3(true), _4(false), _5(NULL), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.age(cast(current_date as timestamp without time zone), $1)"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1181), _1("age"), _2(1), _3(true), _4(false), _5(xid_age), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 28), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xid_age"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("age of a transaction ID, in transactions before current transaction"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1199), _1("age"), _2(2), _3(true), _4(false), _5(timestamptz_age), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1184, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_age"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(AGEDATETOTIMETZFUNCOID), _1("age"), _2(1), _3(true), _4(false), _5(NULL), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.age(cast(current_date as timestamp with time zone), $1)"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("date difference from today preserving months and years"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2058), _1("age"), _2(2), _3(true), _4(false), _5(timestamp_age), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_age"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("date difference preserving months and years"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(AGEDATETOTIMEFUNCOID), _1("age"), _2(1), _3(true), _4(false), _5(NULL), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.age(cast(current_date as timestamp without time zone), $1)"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("date difference from today preserving months and years"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "analyze_query", 1, - AddBuiltinFunc(_0(7801), _1("analyze_query"), _2(2), _3(true), _4(false), _5(analyze_query), _6(16), _7(PG_SQLADVISOR_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(1), _20(2, 25, 23), _21(NULL), _22(NULL), _23(NULL), _24("({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :ismaxvalue false :location 27 :constvalue 4 [ 1 0 0 0 0 0 0 0 ] :cursor_data :row_count 0 :cur_dno -1 :is_open false :found false :not_found false :null_open false :null_fetch false})"), _25("analyze_query"), _26(NULL), _27(NULL), _28(NULL), _29(1, 1), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(7801), _1("analyze_query"), _2(2), _3(true), _4(false), _5(analyze_query), _6(16), _7(PG_SQLADVISOR_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(1), _20(2, 25, 23), _21(NULL), _22(NULL), _23(NULL), _24("({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :ismaxvalue false :location 27 :constvalue 4 [ 1 0 0 0 0 0 0 0 ] :cursor_data :row_count 0 :cur_dno -1 :is_open false :found false :not_found false :null_open false :null_fetch false})"), _25("analyze_query"), _26(NULL), _27(NULL), _28(NULL), _29(1, 1), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "analyze_workload", 1, - AddBuiltinFunc(_0(7812), _1("analyze_workload"), _2(0), _3(true), _4(false), _5(analyze_workload), _6(16), _7(PG_SQLADVISOR_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("analyze_workload"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(7812), _1("analyze_workload"), _2(0), _3(true), _4(false), _5(analyze_workload), _6(16), _7(PG_SQLADVISOR_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("analyze_workload"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "any_in", 1, - AddBuiltinFunc(_0(2294), _1("any_in"), _2(1), _3(true), _4(false), _5(any_in), _6(2276), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("any_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2294), _1("any_in"), _2(1), _3(true), _4(false), _5(any_in), _6(2276), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("any_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "any_out", 1, - AddBuiltinFunc(_0(2295), _1("any_out"), _2(1), _3(true), _4(false), _5(any_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2276), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("any_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2295), _1("any_out"), _2(1), _3(true), _4(false), _5(any_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2276), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("any_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "anyarray_in", 1, - AddBuiltinFunc(_0(ANYARRAYINFUNCOID), _1("anyarray_in"), _2(1), _3(true), _4(false), _5(anyarray_in), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("anyarray_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(ANYARRAYINFUNCOID), _1("anyarray_in"), _2(1), _3(true), _4(false), _5(anyarray_in), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("anyarray_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "anyarray_out", 1, - AddBuiltinFunc(_0(2297), _1("anyarray_out"), _2(1), _3(true), _4(false), _5(anyarray_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("anyarray_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2297), _1("anyarray_out"), _2(1), _3(true), _4(false), _5(anyarray_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("anyarray_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "anyarray_recv", 1, - AddBuiltinFunc(_0(2502), _1("anyarray_recv"), _2(1), _3(true), _4(false), _5(anyarray_recv), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("anyarray_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2502), _1("anyarray_recv"), _2(1), _3(true), _4(false), _5(anyarray_recv), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("anyarray_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "anyarray_send", 1, - AddBuiltinFunc(_0(2503), _1("anyarray_send"), _2(1), _3(true), _4(false), _5(anyarray_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("anyarray_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2503), _1("anyarray_send"), _2(1), _3(true), _4(false), _5(anyarray_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("anyarray_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "anyelement_in", 1, - AddBuiltinFunc(_0(2312), _1("anyelement_in"), _2(1), _3(true), _4(false), _5(anyelement_in), _6(2283), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("anyelement_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2312), _1("anyelement_in"), _2(1), _3(true), _4(false), _5(anyelement_in), _6(2283), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("anyelement_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "anyelement_out", 1, - AddBuiltinFunc(_0(2313), _1("anyelement_out"), _2(1), _3(true), _4(false), _5(anyelement_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2283), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("anyelement_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2313), _1("anyelement_out"), _2(1), _3(true), _4(false), _5(anyelement_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2283), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("anyelement_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "anyenum_in", 1, - AddBuiltinFunc(_0(3504), _1("anyenum_in"), _2(1), _3(true), _4(false), _5(anyenum_in), _6(3500), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("anyenum_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3504), _1("anyenum_in"), _2(1), _3(true), _4(false), _5(anyenum_in), _6(3500), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("anyenum_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "anyenum_out", 1, - AddBuiltinFunc(_0(3505), _1("anyenum_out"), _2(1), _3(true), _4(false), _5(anyenum_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 3500), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("anyenum_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3505), _1("anyenum_out"), _2(1), _3(true), _4(false), _5(anyenum_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 3500), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("anyenum_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "anynonarray_in", 1, - AddBuiltinFunc(_0(2777), _1("anynonarray_in"), _2(1), _3(true), _4(false), _5(anynonarray_in), _6(2776), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("anynonarray_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2777), _1("anynonarray_in"), _2(1), _3(true), _4(false), _5(anynonarray_in), _6(2776), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("anynonarray_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "anynonarray_out", 1, - AddBuiltinFunc(_0(2778), _1("anynonarray_out"), _2(1), _3(true), _4(false), _5(anynonarray_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2776), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("anynonarray_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2778), _1("anynonarray_out"), _2(1), _3(true), _4(false), _5(anynonarray_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2776), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("anynonarray_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "anyrange_in", 1, - AddBuiltinFunc(_0(3832), _1("anyrange_in"), _2(3), _3(true), _4(false), _5(anyrange_in), _6(3831), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 2275, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("anyrange_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3832), _1("anyrange_in"), _2(3), _3(true), _4(false), _5(anyrange_in), _6(3831), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 2275, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("anyrange_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "anyrange_out", 1, - AddBuiltinFunc(_0(3833), _1("anyrange_out"), _2(1), _3(true), _4(false), _5(anyrange_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("anyrange_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3833), _1("anyrange_out"), _2(1), _3(true), _4(false), _5(anyrange_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("anyrange_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "anytextcat", 1, - AddBuiltinFunc(_0(ANYTEXTCATFUNCOID), _1("anytextcat"), _2(2), _3(true), _4(false), _5(NULL), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 2776, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select $1::pg_catalog.text || $2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(ANYTEXTCATFUNCOID), _1("anytextcat"), _2(2), _3(true), _4(false), _5(NULL), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 2776, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select $1::pg_catalog.text || $2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "area", 3, - AddBuiltinFunc(_0(975), _1("area"), _2(1), _3(true), _4(false), _5(box_area), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_area"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(979), _1("area"), _2(1), _3(true), _4(false), _5(path_area), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_area"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1468), _1("area"), _2(1), _3(true), _4(false), _5(circle_area), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_area"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(975), _1("area"), _2(1), _3(true), _4(false), _5(box_area), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_area"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("box area"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(979), _1("area"), _2(1), _3(true), _4(false), _5(path_area), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_area"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("area of a closed path"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1468), _1("area"), _2(1), _3(true), _4(false), _5(circle_area), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_area"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("area of circle"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "areajoinsel", 1, - AddBuiltinFunc(_0(140), _1("areajoinsel"), _2(5), _3(true), _4(false), _5(areajoinsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(5, 2281, 26, 2281, 21, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("areajoinsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(140), _1("areajoinsel"), _2(5), _3(true), _4(false), _5(areajoinsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(5, 2281, 26, 2281, 21, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("areajoinsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("join selectivity for area-comparison operators"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "areasel", 1, - AddBuiltinFunc(_0(139), _1("areasel"), _2(4), _3(true), _4(false), _5(areasel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 2281, 26, 2281, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("areasel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(139), _1("areasel"), _2(4), _3(true), _4(false), _5(areasel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 2281, 26, 2281, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("areasel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("restriction selectivity for area-comparison operators"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "array_agg", 1, - AddBuiltinFunc(_0(ARRAYAGGFUNCOID), _1("array_agg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2283), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(ARRAYAGGFUNCOID), _1("array_agg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2283), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "array_agg_finalfn", 1, - AddBuiltinFunc(_0(2334), _1("array_agg_finalfn"), _2(1), _3(false), _4(false), _5(array_agg_finalfn), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_agg_finalfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2334), _1("array_agg_finalfn"), _2(1), _3(false), _4(false), _5(array_agg_finalfn), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_agg_finalfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate final function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "array_agg_transfn", 1, - AddBuiltinFunc(_0(2333), _1("array_agg_transfn"), _2(2), _3(false), _4(false), _5(array_agg_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2283), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_agg_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2333), _1("array_agg_transfn"), _2(2), _3(false), _4(false), _5(array_agg_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2283), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_agg_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate transition function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "array_append", 1, - AddBuiltinFunc(_0(378), _1("array_append"), _2(2), _3(false), _4(false), _5(array_push), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 2283), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_push"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(378), _1("array_append"), _2(2), _3(false), _4(false), _5(array_push), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 2283), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_push"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "array_cat", 1, - AddBuiltinFunc(_0(383), _1("array_cat"), _2(2), _3(false), _4(false), _5(array_cat), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_cat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(383), _1("array_cat"), _2(2), _3(false), _4(false), _5(array_cat), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_cat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "array_delete", 1, + AddBuiltinFunc(_0(6012), _1("array_delete"), _2(1), _3(true), _4(false), _5(array_delete), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_delete"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "array_deleteidx", 1, + AddBuiltinFunc(_0(6015), _1("array_deleteidx"), _2(2), _3(true), _4(false), _5(array_deleteidx), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_deleteidx"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) ), AddFuncGroup( "array_dims", 1, - AddBuiltinFunc(_0(747), _1("array_dims"), _2(1), _3(true), _4(false), _5(array_dims), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_dims"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(747), _1("array_dims"), _2(1), _3(true), _4(false), _5(array_dims), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_dims"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("array dimensions"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "array_eq", 1, - AddBuiltinFunc(_0(744), _1("array_eq"), _2(2), _3(true), _4(false), _5(array_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(744), _1("array_eq"), _2(2), _3(true), _4(false), _5(array_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "array_except", 1, + AddBuiltinFunc(_0(8703), _1("array_except"), _2(2), _3(false), _4(false), _5(array_except), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_except"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "array_except_distinct", 1, + AddBuiltinFunc(_0(8704), _1("array_except_distinct"), _2(2), _3(false), _4(false), _5(array_except_distinct), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_except_distinct"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "array_exists", 1, + AddBuiltinFunc(_0(6009), _1("array_exists"), _2(2), _3(true), _4(false), _5(array_exists), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_exists"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "array_extend", 1, - AddBuiltinFunc(_0(3179), _1("array_extend"), _2(1), _3(true), _4(false), _5(array_extend), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_extend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3179), _1("array_extend"), _2(1), _3(true), _4(false), _5(array_extend), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_extend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "array_extendnull", 1, + AddBuiltinFunc(_0(6014), _1("array_extendnull"), _2(2), _3(true), _4(false), _5(array_extendnull), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_extendnull"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "array_fill", 2, - AddBuiltinFunc(_0(1193), _1("array_fill"), _2(2), _3(false), _4(false), _5(array_fill), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2283, 1007), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_fill"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1286), _1("array_fill"), _2(3), _3(false), _4(false), _5(array_fill_with_lower_bounds), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2283, 1007, 1007), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_fill_with_lower_bounds"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1193), _1("array_fill"), _2(2), _3(false), _4(false), _5(array_fill), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2283, 1007), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_fill"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("array constructor with value"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1286), _1("array_fill"), _2(3), _3(false), _4(false), _5(array_fill_with_lower_bounds), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2283, 1007, 1007), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_fill_with_lower_bounds"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("array constructor with value"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "array_ge", 1, - AddBuiltinFunc(_0(396), _1("array_ge"), _2(2), _3(true), _4(false), _5(array_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(396), _1("array_ge"), _2(2), _3(true), _4(false), _5(array_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "array_gt", 1, - AddBuiltinFunc(_0(392), _1("array_gt"), _2(2), _3(true), _4(false), _5(array_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(392), _1("array_gt"), _2(2), _3(true), _4(false), _5(array_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "array_in", 1, - AddBuiltinFunc(_0(750), _1("array_in"), _2(3), _3(true), _4(false), _5(array_in), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 2275, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(750), _1("array_in"), _2(3), _3(true), _4(false), _5(array_in), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 2275, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "array_indexby_length", 1, + AddBuiltinFunc(_0(7895), _1("array_indexby_length"), _2(2), _3(false), _4(false), _5(array_indexby_length), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_indexby_length"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("array index by length"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "array_integer_delete", 1, + AddBuiltinFunc(_0(7887), _1("array_integer_deleteidx"), _2(2), _3(true), _4(false), _5(array_integer_deleteidx), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_integer_deleteidx"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "array_integer_exists", 1, + AddBuiltinFunc(_0(7888), _1("array_integer_exists"), _2(2), _3(true), _4(false), _5(array_integer_exists), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_integer_exists"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "array_integer_first", 1, + AddBuiltinFunc(_0(7889), _1("array_integer_first"), _2(1), _3(true), _4(false), _5(array_integer_first), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_integer_first"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("array_integer_first"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "array_integer_last", 1, + AddBuiltinFunc(_0(7890), _1("array_integer_last"), _2(1), _3(true), _4(false), _5(array_integer_last), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_integer_last"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("array_integer_last"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "array_integer_next", 1, + AddBuiltinFunc(_0(7891), _1("array_integer_next"), _2(2), _3(true), _4(false), _5(array_integer_next), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_integer_next"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "array_integer_prior", 1, + AddBuiltinFunc(_0(7892), _1("array_integer_prior"), _2(2), _3(true), _4(false), _5(array_integer_prior), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_integer_prior"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "array_intersect", 1, + AddBuiltinFunc(_0(8701), _1("array_intersect"), _2(2), _3(false), _4(false), _5(array_intersect), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_intersect"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "array_intersect_distinct", 1, + AddBuiltinFunc(_0(8702), _1("array_intersect_distinct"), _2(2), _3(false), _4(false), _5(array_intersect_distinct), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_intersect_distinct"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "array_larger", 1, - AddBuiltinFunc(_0(515), _1("array_larger"), _2(2), _3(true), _4(false), _5(array_larger), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_larger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(515), _1("array_larger"), _2(2), _3(true), _4(false), _5(array_larger), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_larger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("larger of two"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "array_le", 1, - AddBuiltinFunc(_0(393), _1("array_le"), _2(2), _3(true), _4(false), _5(array_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(393), _1("array_le"), _2(2), _3(true), _4(false), _5(array_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "array_length", 1, - AddBuiltinFunc(_0(2176), _1("array_length"), _2(2), _3(true), _4(false), _5(array_length), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_length"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2176), _1("array_length"), _2(2), _3(true), _4(false), _5(array_length), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_length"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("array length"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "array_lower", 1, - AddBuiltinFunc(_0(2091), _1("array_lower"), _2(2), _3(true), _4(false), _5(array_lower), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_lower"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2091), _1("array_lower"), _2(2), _3(true), _4(false), _5(array_lower), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_lower"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("array lower dimension"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "array_lt", 1, - AddBuiltinFunc(_0(391), _1("array_lt"), _2(2), _3(true), _4(false), _5(array_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(391), _1("array_lt"), _2(2), _3(true), _4(false), _5(array_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "array_ndims", 1, - AddBuiltinFunc(_0(748), _1("array_ndims"), _2(1), _3(true), _4(false), _5(array_ndims), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_ndims"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(748), _1("array_ndims"), _2(1), _3(true), _4(false), _5(array_ndims), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_ndims"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("number of array dimensions"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "array_ne", 1, - AddBuiltinFunc(_0(390), _1("array_ne"), _2(2), _3(true), _4(false), _5(array_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(390), _1("array_ne"), _2(2), _3(true), _4(false), _5(array_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "array_next", 1, + AddBuiltinFunc(_0(6010), _1("array_next"), _2(2), _3(true), _4(false), _5(array_next), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_next"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "array_out", 1, - AddBuiltinFunc(_0(751), _1("array_out"), _2(1), _3(true), _4(false), _5(array_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(751), _1("array_out"), _2(1), _3(true), _4(false), _5(array_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "array_prepend", 1, - AddBuiltinFunc(_0(379), _1("array_prepend"), _2(2), _3(false), _4(false), _5(array_push), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2283, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_push"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(379), _1("array_prepend"), _2(2), _3(false), _4(false), _5(array_push), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2283, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_push"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "array_prior", 1, + AddBuiltinFunc(_0(6011), _1("array_prior"), _2(2), _3(true), _4(false), _5(array_prior), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_prior"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "array_recv", 1, - AddBuiltinFunc(_0(2400), _1("array_recv"), _2(3), _3(true), _4(false), _5(array_recv), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 2281, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "array_remove", 1, - AddBuiltinFunc(_0(6555), _1("array_remove"), _2(2), _3(false), _4(false), _5(array_remove), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 2283), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_remove"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')) - ), - AddFuncGroup( - "array_replace", 1, - AddBuiltinFunc(_0(6556), _1("array_replace"), _2(3), _3(false), _4(false), _5(array_replace), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2277, 2283,2283), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_replace"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(2400), _1("array_recv"), _2(3), _3(true), _4(false), _5(array_recv), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 2281, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "array_send", 1, - AddBuiltinFunc(_0(2401), _1("array_send"), _2(1), _3(true), _4(false), _5(array_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2401), _1("array_send"), _2(1), _3(true), _4(false), _5(array_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "array_smaller", 1, - AddBuiltinFunc(_0(516), _1("array_smaller"), _2(2), _3(true), _4(false), _5(array_smaller), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_smaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(516), _1("array_smaller"), _2(2), _3(true), _4(false), _5(array_smaller), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_smaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("smaller of two"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "array_to_json", 2, - AddBuiltinFunc(_0(3153), _1("array_to_json"), _2(1), _3(true), _4(false), _5(array_to_json), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_to_json"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3154), _1("array_to_json"), _2(2), _3(true), _4(false), _5(array_to_json_pretty), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 2277, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_to_json_pretty"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3153), _1("array_to_json"), _2(1), _3(true), _4(false), _5(array_to_json), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_to_json"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("map array to json"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3154), _1("array_to_json"), _2(2), _3(true), _4(false), _5(array_to_json_pretty), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 2277, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_to_json_pretty"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("map array to json with optional pretty printing"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "array_to_string", 2, - AddBuiltinFunc(_0(ARRAYTOSTRINGNULLFUNCOID), _1("array_to_string"), _2(3), _3(false), _4(false), _5(array_to_text_null), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 2277, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_to_text_null"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(ARRAYTOSTRINGFUNCOID), _1("array_to_string"), _2(2), _3(true), _4(false), _5(array_to_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 2277, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_to_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(ARRAYTOSTRINGNULLFUNCOID), _1("array_to_string"), _2(3), _3(false), _4(false), _5(array_to_text_null), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 2277, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_to_text_null"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("concatenate array elements, using delimiter and null string, into text"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(ARRAYTOSTRINGFUNCOID), _1("array_to_string"), _2(2), _3(true), _4(false), _5(array_to_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 2277, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_to_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("concatenate array elements, using delimiter, into text"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "array_trim", 1, + AddBuiltinFunc(_0(6013), _1("array_trim"), _2(2), _3(true), _4(false), _5(array_trim), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_trim"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "array_typanalyze", 1, - AddBuiltinFunc(_0(3816), _1("array_typanalyze"), _2(1), _3(true), _4(false), _5(array_typanalyze), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_typanalyze"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3816), _1("array_typanalyze"), _2(1), _3(true), _4(false), _5(array_typanalyze), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_typanalyze"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("array typanalyze"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "array_union", 1, + AddBuiltinFunc(_0(7894), _1("array_union"), _2(2), _3(false), _4(false), _5(array_union), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_union"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "array_union_distinct", 1, + AddBuiltinFunc(_0(8700), _1("array_union_distinct"), _2(2), _3(false), _4(false), _5(array_union_distinct), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_union_distinct"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "array_upper", 1, - AddBuiltinFunc(_0(2092), _1("array_upper"), _2(2), _3(true), _4(false), _5(array_upper), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_upper"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2092), _1("array_upper"), _2(2), _3(true), _4(false), _5(array_upper), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_upper"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("array upper dimension"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "array_varchar_delete", 1, + AddBuiltinFunc(_0(7886), _1("array_varchar_deleteidx"), _2(2), _3(true), _4(false), _5(array_varchar_deleteidx), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 1043), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_varchar_deleteidx"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "array_varchar_exists", 1, + AddBuiltinFunc(_0(7882), _1("array_varchar_exists"), _2(2), _3(true), _4(false), _5(array_varchar_exists), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 1043), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_varchar_exists"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "array_varchar_first", 1, + AddBuiltinFunc(_0(7884), _1("array_varchar_first"), _2(1), _3(true), _4(false), _5(array_varchar_first), _6(1043), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_varchar_first"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("array_varchar_first"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "array_varchar_last", 1, + AddBuiltinFunc(_0(7885), _1("array_varchar_last"), _2(1), _3(true), _4(false), _5(array_varchar_last), _6(1043), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_varchar_last"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("array_varchar_last"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "array_varchar_next", 1, + AddBuiltinFunc(_0(7881), _1("array_varchar_next"), _2(2), _3(true), _4(false), _5(array_varchar_next), _6(1043), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 1043), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_varchar_next"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "array_varchar_prior", 1, + AddBuiltinFunc(_0(7883), _1("array_varchar_prior"), _2(2), _3(true), _4(false), _5(array_varchar_prior), _6(1043), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 1043), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_varchar_prior"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "arraycontained", 1, - AddBuiltinFunc(_0(2749), _1("arraycontained"), _2(2), _3(true), _4(false), _5(arraycontained), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("arraycontained"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2749), _1("arraycontained"), _2(2), _3(true), _4(false), _5(arraycontained), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("arraycontained"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "arraycontains", 1, - AddBuiltinFunc(_0(2748), _1("arraycontains"), _2(2), _3(true), _4(false), _5(arraycontains), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("arraycontains"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2748), _1("arraycontains"), _2(2), _3(true), _4(false), _5(arraycontains), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("arraycontains"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "arraycontjoinsel", 1, - AddBuiltinFunc(_0(3818), _1("arraycontjoinsel"), _2(5), _3(true), _4(false), _5(arraycontjoinsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(5, 2281, 26, 2281, 21, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("arraycontjoinsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3818), _1("arraycontjoinsel"), _2(5), _3(true), _4(false), _5(arraycontjoinsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(5, 2281, 26, 2281, 21, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("arraycontjoinsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("join selectivity for array-containment operators"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "arraycontsel", 1, - AddBuiltinFunc(_0(3817), _1("arraycontsel"), _2(4), _3(true), _4(false), _5(arraycontsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 2281, 26, 2281, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("arraycontsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3817), _1("arraycontsel"), _2(4), _3(true), _4(false), _5(arraycontsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 2281, 26, 2281, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("arraycontsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("restriction selectivity for array-containment operators"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "arrayoverlap", 1, - AddBuiltinFunc(_0(2747), _1("arrayoverlap"), _2(2), _3(true), _4(false), _5(arrayoverlap), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("arrayoverlap"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2747), _1("arrayoverlap"), _2(2), _3(true), _4(false), _5(arrayoverlap), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("arrayoverlap"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ascii", 1, - AddBuiltinFunc(_0(1620), _1("ascii"), _2(1), _3(true), _4(false), _5(ascii), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ascii"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1620), _1("ascii"), _2(1), _3(true), _4(false), _5(ascii), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ascii"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert first char to int4"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "asin", 1, - AddBuiltinFunc(_0(ARCSINEFUNCOID), _1("asin"), _2(1), _3(true), _4(false), _5(dasin), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dasin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(ARCSINEFUNCOID), _1("asin"), _2(1), _3(true), _4(false), _5(dasin), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dasin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("arcsine"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "assign_table_type", 1, - AddBuiltinFunc(_0(7805), _1("assign_table_type"), _2(2), _3(true), _4(false), _5(assign_table_type), _6(16), _7(PG_SQLADVISOR_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("assign_table_type"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(7805), _1("assign_table_type"), _2(2), _3(true), _4(false), _5(assign_table_type), _6(16), _7(PG_SQLADVISOR_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("assign_table_type"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "atan", 1, - AddBuiltinFunc(_0(1602), _1("atan"), _2(1), _3(true), _4(false), _5(datan), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("datan"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1602), _1("atan"), _2(1), _3(true), _4(false), _5(datan), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("datan"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("arctangent"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "atan2", 1, - AddBuiltinFunc(_0(1603), _1("atan2"), _2(2), _3(true), _4(false), _5(datan2), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("datan2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1603), _1("atan2"), _2(2), _3(true), _4(false), _5(datan2), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("datan2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("arctangent, two arguments"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "attach", 1, - AddBuiltinFunc(_0(1504), _1("attach"), _2(2), _3(true), _4(true), _5(debug_client_attatch), _6(2249), _7(PG_PLDEBUG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 23), _21(6, 25, 23, 26, 25, 23, 25), _22(6, 'i', 'i', 'o', 'o', 'o', 'o'), _23(6, "nodename", "port", "funcoid", "funcname", "lineno", "query"), _24(NULL), _25("debug_client_attatch"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), + AddBuiltinFunc(_0(1504), _1("attach"), _2(2), _3(true), _4(true), _5(debug_client_attatch), _6(2249), _7(PG_PLDEBUG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 23), _21(6, 25, 23, 26, 25, 23, 25), _22(6, 'i', 'i', 'o', 'o', 'o', 'o'), _23(6, "nodename", "port", "funcoid", "funcname", "lineno", "query"), _24(NULL), _25("debug_client_attatch"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), ), AddFuncGroup( "avg", 8, - AddBuiltinFunc(_0(2100), _1("avg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2101), _1("avg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2102), _1("avg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2103), _1("avg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2104), _1("avg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2105), _1("avg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2106), _1("avg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(5537), _1("avg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2100), _1("avg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("concatenate aggregate input into an array"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2101), _1("avg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("concatenate aggregate input into an array"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2102), _1("avg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("concatenate aggregate input into an array"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2103), _1("avg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("concatenate aggregate input into an array"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2104), _1("avg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("concatenate aggregate input into an array"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2105), _1("avg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("concatenate aggregate input into an array"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2106), _1("avg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("concatenate aggregate input into an array"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(5537), _1("avg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("concatenate aggregate input into an array"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "backtrace", 1, - AddBuiltinFunc(_0(1510), _1("backtrace"), _2(0), _3(true), _4(true), _5(debug_client_backtrace), _6(2249), _7(PG_PLDEBUG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(4, 23, 25, 23, 25), _22(4, 'o', 'o', 'o', 'o'), _23(4, "frameno", "funcname", "lineno", "query"), _24(NULL), _25("debug_client_backtrace"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1510), _1("backtrace"), _2(0), _3(true), _4(true), _5(debug_client_backtrace), _6(2249), _7(PG_PLDEBUG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(5, 23, 25, 23, 25, 26), _22(5, 'o', 'o', 'o', 'o', 'o'), _23(5, "frameno", "funcname", "lineno", "query", "funcoid"), _24(NULL), _25("debug_client_backtrace"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bigint_tid", 1, - AddBuiltinFunc(_0(3214), _1("bigint_tid"), _2(1), _3(true), _4(false), _5(bigint_tid), _6(27), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bigint_tid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3214), _1("bigint_tid"), _2(1), _3(true), _4(false), _5(bigint_tid), _6(27), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bigint_tid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bit", 3, - AddBuiltinFunc(_0(1683), _1("bit"), _2(2), _3(true), _4(false), _5(bitfromint4), _6(1560), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitfromint4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1685), _1("bit"), _2(3), _3(true), _4(false), _5(bit), _6(1560), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 1560, 23, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2075), _1("bit"), _2(2), _3(true), _4(false), _5(bitfromint8), _6(1560), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitfromint8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1683), _1("bit"), _2(2), _3(true), _4(false), _5(bitfromint4), _6(1560), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitfromint4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert int4 to bitstring"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1685), _1("bit"), _2(3), _3(true), _4(false), _5(bit), _6(1560), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 1560, 23, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("adjust bit() to typmod length"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2075), _1("bit"), _2(2), _3(true), _4(false), _5(bitfromint8), _6(1560), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitfromint8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert int8 to bitstring"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bit_and", 5, - AddBuiltinFunc(_0(2236), _1("bit_and"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2238), _1("bit_and"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2240), _1("bit_and"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2242), _1("bit_and"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1560), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1560), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(5539), _1("bit_and"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2236), _1("bit_and"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2238), _1("bit_and"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2240), _1("bit_and"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2242), _1("bit_and"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1560), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1560), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(5539), _1("bit_and"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bit_in", 1, - AddBuiltinFunc(_0(1564), _1("bit_in"), _2(3), _3(true), _4(false), _5(bit_in), _6(1560), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2275, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bit_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1564), _1("bit_in"), _2(3), _3(true), _4(false), _5(bit_in), _6(1560), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2275, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bit_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bit_length", 3, - AddBuiltinFunc(_0(1810), _1("bit_length"), _2(1), _3(true), _4(false), _5(NULL), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.octet_length($1) * 8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1811), _1("bit_length"), _2(1), _3(true), _4(false), _5(NULL), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.octet_length($1) * 8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1812), _1("bit_length"), _2(1), _3(true), _4(false), _5(NULL), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1560), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.length($1)"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1810), _1("bit_length"), _2(1), _3(true), _4(false), _5(NULL), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.octet_length($1) * 8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("length in bits"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1811), _1("bit_length"), _2(1), _3(true), _4(false), _5(NULL), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.octet_length($1) * 8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("length in bits"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1812), _1("bit_length"), _2(1), _3(true), _4(false), _5(NULL), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1560), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.length($1)"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("length in bits"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bit_or", 5, - AddBuiltinFunc(_0(2237), _1("bit_or"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2239), _1("bit_or"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2241), _1("bit_or"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2243), _1("bit_or"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1560), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1560), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(5540), _1("bit_or"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2237), _1("bit_or"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2239), _1("bit_or"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2241), _1("bit_or"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2243), _1("bit_or"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1560), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1560), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(5540), _1("bit_or"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bit_out", 1, - AddBuiltinFunc(_0(1565), _1("bit_out"), _2(1), _3(true), _4(false), _5(bit_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1560), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bit_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1565), _1("bit_out"), _2(1), _3(true), _4(false), _5(bit_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1560), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bit_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bit_recv", 1, - AddBuiltinFunc(_0(2456), _1("bit_recv"), _2(3), _3(true), _4(false), _5(bit_recv), _6(1560), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bit_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2456), _1("bit_recv"), _2(3), _3(true), _4(false), _5(bit_recv), _6(1560), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bit_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bit_send", 1, - AddBuiltinFunc(_0(2457), _1("bit_send"), _2(1), _3(true), _4(false), _5(bit_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1560), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bit_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2457), _1("bit_send"), _2(1), _3(true), _4(false), _5(bit_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1560), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bit_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bitand", 1, - AddBuiltinFunc(_0(1673), _1("bitand"), _2(2), _3(true), _4(false), _5(bit_and), _6(1560), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1560, 1560), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bit_and"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1673), _1("bitand"), _2(2), _3(true), _4(false), _5(bit_and), _6(1560), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1560, 1560), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bit_and"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bitcat", 1, - AddBuiltinFunc(_0(1679), _1("bitcat"), _2(2), _3(true), _4(false), _5(bitcat), _6(1562), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1562, 1562), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitcat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1679), _1("bitcat"), _2(2), _3(true), _4(false), _5(bitcat), _6(1562), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1562, 1562), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitcat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bitcmp", 1, - AddBuiltinFunc(_0(1596), _1("bitcmp"), _2(2), _3(true), _4(false), _5(bitcmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1560, 1560), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitcmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1596), _1("bitcmp"), _2(2), _3(true), _4(false), _5(bitcmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1560, 1560), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitcmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "biteq", 1, - AddBuiltinFunc(_0(1581), _1("biteq"), _2(2), _3(true), _4(false), _5(biteq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1560, 1560), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("biteq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1581), _1("biteq"), _2(2), _3(true), _4(false), _5(biteq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1560, 1560), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("biteq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bitge", 1, - AddBuiltinFunc(_0(1592), _1("bitge"), _2(2), _3(true), _4(false), _5(bitge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1560, 1560), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1592), _1("bitge"), _2(2), _3(true), _4(false), _5(bitge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1560, 1560), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bitgt", 1, - AddBuiltinFunc(_0(1593), _1("bitgt"), _2(2), _3(true), _4(false), _5(bitgt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1560, 1560), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitgt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1593), _1("bitgt"), _2(2), _3(true), _4(false), _5(bitgt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1560, 1560), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitgt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bitle", 1, - AddBuiltinFunc(_0(1594), _1("bitle"), _2(2), _3(true), _4(false), _5(bitle), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1560, 1560), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitle"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1594), _1("bitle"), _2(2), _3(true), _4(false), _5(bitle), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1560, 1560), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitle"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bitlt", 1, - AddBuiltinFunc(_0(1595), _1("bitlt"), _2(2), _3(true), _4(false), _5(bitlt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1560, 1560), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitlt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1595), _1("bitlt"), _2(2), _3(true), _4(false), _5(bitlt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1560, 1560), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitlt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bitne", 1, - AddBuiltinFunc(_0(1582), _1("bitne"), _2(2), _3(true), _4(false), _5(bitne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1560, 1560), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1582), _1("bitne"), _2(2), _3(true), _4(false), _5(bitne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1560, 1560), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bitnot", 1, - AddBuiltinFunc(_0(1676), _1("bitnot"), _2(1), _3(true), _4(false), _5(bitnot), _6(1560), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1560), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitnot"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1676), _1("bitnot"), _2(1), _3(true), _4(false), _5(bitnot), _6(1560), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1560), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitnot"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bitor", 1, - AddBuiltinFunc(_0(1674), _1("bitor"), _2(2), _3(true), _4(false), _5(bit_or), _6(1560), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1560, 1560), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bit_or"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1674), _1("bitor"), _2(2), _3(true), _4(false), _5(bit_or), _6(1560), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1560, 1560), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bit_or"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bitshiftleft", 1, - AddBuiltinFunc(_0(1677), _1("bitshiftleft"), _2(2), _3(true), _4(false), _5(bitshiftleft), _6(1560), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1560, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitshiftleft"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1677), _1("bitshiftleft"), _2(2), _3(true), _4(false), _5(bitshiftleft), _6(1560), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1560, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitshiftleft"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bitshiftright", 1, - AddBuiltinFunc(_0(1678), _1("bitshiftright"), _2(2), _3(true), _4(false), _5(bitshiftright), _6(1560), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1560, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitshiftright"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1678), _1("bitshiftright"), _2(2), _3(true), _4(false), _5(bitshiftright), _6(1560), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1560, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitshiftright"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bittypmodin", 1, - AddBuiltinFunc(_0(2919), _1("bittypmodin"), _2(1), _3(true), _4(false), _5(bittypmodin), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1263), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bittypmodin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2919), _1("bittypmodin"), _2(1), _3(true), _4(false), _5(bittypmodin), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1263), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bittypmodin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O typmod"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bittypmodout", 1, - AddBuiltinFunc(_0(2920), _1("bittypmodout"), _2(1), _3(true), _4(false), _5(bittypmodout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bittypmodout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2920), _1("bittypmodout"), _2(1), _3(true), _4(false), _5(bittypmodout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bittypmodout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O typmod"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bitxor", 1, - AddBuiltinFunc(_0(1675), _1("bitxor"), _2(2), _3(true), _4(false), _5(bitxor), _6(1560), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1560, 1560), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitxor"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1675), _1("bitxor"), _2(2), _3(true), _4(false), _5(bitxor), _6(1560), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1560, 1560), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitxor"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bool", 1, - AddBuiltinFunc(_0(2557), _1("bool"), _2(1), _3(true), _4(false), _5(int4_bool), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4_bool"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2557), _1("bool"), _2(1), _3(true), _4(false), _5(int4_bool), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4_bool"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert int4 to boolean"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bool_and", 1, - AddBuiltinFunc(_0(2517), _1("bool_and"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2517), _1("bool_and"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bool_int1", 1, - AddBuiltinFunc(_0(5534), _1("bool_int1"), _2(1), _3(true), _4(false), _5(bool_int1), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bool_int1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5534), _1("bool_int1"), _2(1), _3(true), _4(false), _5(bool_int1), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bool_int1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bool_int2", 1, - AddBuiltinFunc(_0(3181), _1("bool_int2"), _2(1), _3(true), _4(false), _5(bool_int2), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bool_int2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3181), _1("bool_int2"), _2(1), _3(true), _4(false), _5(bool_int2), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bool_int2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bool_int8", 1, - AddBuiltinFunc(_0(3178), _1("bool_int8"), _2(1), _3(true), _4(false), _5(bool_int8), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bool_int8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3178), _1("bool_int8"), _2(1), _3(true), _4(false), _5(bool_int8), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bool_int8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bool_or", 1, - AddBuiltinFunc(_0(2518), _1("bool_or"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2518), _1("bool_or"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "booland_statefunc", 1, - AddBuiltinFunc(_0(2515), _1("booland_statefunc"), _2(2), _3(true), _4(false), _5(booland_statefunc), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 16, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("booland_statefunc"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2515), _1("booland_statefunc"), _2(2), _3(true), _4(false), _5(booland_statefunc), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 16, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("booland_statefunc"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate transition function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "booleq", 1, - AddBuiltinFunc(_0(60), _1("booleq"), _2(2), _3(true), _4(false), _5(booleq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 16, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("booleq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(60), _1("booleq"), _2(2), _3(true), _4(false), _5(booleq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 16, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("booleq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "boolge", 1, - AddBuiltinFunc(_0(1692), _1("boolge"), _2(2), _3(true), _4(false), _5(boolge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 16, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("boolge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1692), _1("boolge"), _2(2), _3(true), _4(false), _5(boolge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 16, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("boolge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "boolgt", 1, - AddBuiltinFunc(_0(57), _1("boolgt"), _2(2), _3(true), _4(false), _5(boolgt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 16, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("boolgt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(57), _1("boolgt"), _2(2), _3(true), _4(false), _5(boolgt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 16, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("boolgt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "boolin", 1, - AddBuiltinFunc(_0(1242), _1("boolin"), _2(1), _3(true), _4(false), _5(boolin), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("boolin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1242), _1("boolin"), _2(1), _3(true), _4(false), _5(boolin), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("boolin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "boolle", 1, - AddBuiltinFunc(_0(1691), _1("boolle"), _2(2), _3(true), _4(false), _5(boolle), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 16, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("boolle"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1691), _1("boolle"), _2(2), _3(true), _4(false), _5(boolle), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 16, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("boolle"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "boollt", 1, - AddBuiltinFunc(_0(56), _1("boollt"), _2(2), _3(true), _4(false), _5(boollt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 16, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("boollt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(56), _1("boollt"), _2(2), _3(true), _4(false), _5(boollt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 16, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("boollt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "boolne", 1, - AddBuiltinFunc(_0(84), _1("boolne"), _2(2), _3(true), _4(false), _5(boolne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 16, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("boolne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(84), _1("boolne"), _2(2), _3(true), _4(false), _5(boolne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 16, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("boolne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "boolor_statefunc", 1, - AddBuiltinFunc(_0(2516), _1("boolor_statefunc"), _2(2), _3(true), _4(false), _5(boolor_statefunc), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 16, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("boolor_statefunc"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2516), _1("boolor_statefunc"), _2(2), _3(true), _4(false), _5(boolor_statefunc), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 16, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("boolor_statefunc"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate transition function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "boolout", 1, - AddBuiltinFunc(_0(1243), _1("boolout"), _2(1), _3(true), _4(false), _5(boolout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("boolout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1243), _1("boolout"), _2(1), _3(true), _4(false), _5(boolout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("boolout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "boolrecv", 1, - AddBuiltinFunc(_0(2436), _1("boolrecv"), _2(1), _3(true), _4(false), _5(boolrecv), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("boolrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2436), _1("boolrecv"), _2(1), _3(true), _4(false), _5(boolrecv), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("boolrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "boolsend", 1, - AddBuiltinFunc(_0(2437), _1("boolsend"), _2(1), _3(true), _4(false), _5(boolsend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("boolsend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2437), _1("boolsend"), _2(1), _3(true), _4(false), _5(boolsend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("boolsend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "box", 3, - AddBuiltinFunc(_0(1421), _1("box"), _2(2), _3(true), _4(false), _5(points_box), _6(603), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("points_box"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1446), _1("box"), _2(1), _3(true), _4(false), _5(poly_box), _6(603), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_box"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1480), _1("box"), _2(1), _3(true), _4(false), _5(circle_box), _6(603), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_box"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1421), _1("box"), _2(2), _3(true), _4(false), _5(points_box), _6(603), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("points_box"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert points to box"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1446), _1("box"), _2(1), _3(true), _4(false), _5(poly_box), _6(603), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_box"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert polygon to bounding box"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1480), _1("box"), _2(1), _3(true), _4(false), _5(circle_box), _6(603), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_box"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert circle to box"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "box_above", 1, - AddBuiltinFunc(_0(2565), _1("box_above"), _2(2), _3(true), _4(false), _5(box_above), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_above"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2565), _1("box_above"), _2(2), _3(true), _4(false), _5(box_above), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_above"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "box_above_eq", 1, - AddBuiltinFunc(_0(115), _1("box_above_eq"), _2(2), _3(true), _4(false), _5(box_above_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_above_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(115), _1("box_above_eq"), _2(2), _3(true), _4(false), _5(box_above_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_above_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "box_add", 1, - AddBuiltinFunc(_0(1422), _1("box_add"), _2(2), _3(true), _4(false), _5(box_add), _6(603), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_add"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1422), _1("box_add"), _2(2), _3(true), _4(false), _5(box_add), _6(603), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_add"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "box_below", 1, - AddBuiltinFunc(_0(2562), _1("box_below"), _2(2), _3(true), _4(false), _5(box_below), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_below"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2562), _1("box_below"), _2(2), _3(true), _4(false), _5(box_below), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_below"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "box_below_eq", 1, - AddBuiltinFunc(_0(116), _1("box_below_eq"), _2(2), _3(true), _4(false), _5(box_below_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_below_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(116), _1("box_below_eq"), _2(2), _3(true), _4(false), _5(box_below_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_below_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "box_center", 1, - AddBuiltinFunc(_0(138), _1("box_center"), _2(1), _3(true), _4(false), _5(box_center), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_center"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(138), _1("box_center"), _2(1), _3(true), _4(false), _5(box_center), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_center"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("center of"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "box_contain", 1, - AddBuiltinFunc(_0(187), _1("box_contain"), _2(2), _3(true), _4(false), _5(box_contain), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_contain"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(187), _1("box_contain"), _2(2), _3(true), _4(false), _5(box_contain), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_contain"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "box_contain_pt", 1, - AddBuiltinFunc(_0(193), _1("box_contain_pt"), _2(2), _3(true), _4(false), _5(box_contain_pt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_contain_pt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(193), _1("box_contain_pt"), _2(2), _3(true), _4(false), _5(box_contain_pt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_contain_pt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "box_contained", 1, - AddBuiltinFunc(_0(192), _1("box_contained"), _2(2), _3(true), _4(false), _5(box_contained), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_contained"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(192), _1("box_contained"), _2(2), _3(true), _4(false), _5(box_contained), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_contained"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "box_distance", 1, - AddBuiltinFunc(_0(978), _1("box_distance"), _2(2), _3(true), _4(false), _5(box_distance), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_distance"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(978), _1("box_distance"), _2(2), _3(true), _4(false), _5(box_distance), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_distance"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "box_div", 1, - AddBuiltinFunc(_0(1425), _1("box_div"), _2(2), _3(true), _4(false), _5(box_div), _6(603), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_div"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1425), _1("box_div"), _2(2), _3(true), _4(false), _5(box_div), _6(603), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_div"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "box_eq", 1, - AddBuiltinFunc(_0(128), _1("box_eq"), _2(2), _3(true), _4(false), _5(box_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(128), _1("box_eq"), _2(2), _3(true), _4(false), _5(box_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "box_ge", 1, - AddBuiltinFunc(_0(126), _1("box_ge"), _2(2), _3(true), _4(false), _5(box_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(126), _1("box_ge"), _2(2), _3(true), _4(false), _5(box_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "box_gt", 1, - AddBuiltinFunc(_0(127), _1("box_gt"), _2(2), _3(true), _4(false), _5(box_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(127), _1("box_gt"), _2(2), _3(true), _4(false), _5(box_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "box_in", 1, - AddBuiltinFunc(_0(123), _1("box_in"), _2(1), _3(true), _4(false), _5(box_in), _6(603), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(123), _1("box_in"), _2(1), _3(true), _4(false), _5(box_in), _6(603), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "box_intersect", 1, - AddBuiltinFunc(_0(980), _1("box_intersect"), _2(2), _3(true), _4(false), _5(box_intersect), _6(603), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_intersect"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(980), _1("box_intersect"), _2(2), _3(true), _4(false), _5(box_intersect), _6(603), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_intersect"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "box_le", 1, - AddBuiltinFunc(_0(130), _1("box_le"), _2(2), _3(true), _4(false), _5(box_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(130), _1("box_le"), _2(2), _3(true), _4(false), _5(box_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "box_left", 1, - AddBuiltinFunc(_0(188), _1("box_left"), _2(2), _3(true), _4(false), _5(box_left), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_left"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(188), _1("box_left"), _2(2), _3(true), _4(false), _5(box_left), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_left"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "box_lt", 1, - AddBuiltinFunc(_0(129), _1("box_lt"), _2(2), _3(true), _4(false), _5(box_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(129), _1("box_lt"), _2(2), _3(true), _4(false), _5(box_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "box_mul", 1, - AddBuiltinFunc(_0(1424), _1("box_mul"), _2(2), _3(true), _4(false), _5(box_mul), _6(603), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_mul"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1424), _1("box_mul"), _2(2), _3(true), _4(false), _5(box_mul), _6(603), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_mul"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "box_out", 1, - AddBuiltinFunc(_0(124), _1("box_out"), _2(1), _3(true), _4(false), _5(box_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(124), _1("box_out"), _2(1), _3(true), _4(false), _5(box_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "box_overabove", 1, - AddBuiltinFunc(_0(2564), _1("box_overabove"), _2(2), _3(true), _4(false), _5(box_overabove), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_overabove"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2564), _1("box_overabove"), _2(2), _3(true), _4(false), _5(box_overabove), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_overabove"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "box_overbelow", 1, - AddBuiltinFunc(_0(2563), _1("box_overbelow"), _2(2), _3(true), _4(false), _5(box_overbelow), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_overbelow"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2563), _1("box_overbelow"), _2(2), _3(true), _4(false), _5(box_overbelow), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_overbelow"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "box_overlap", 1, - AddBuiltinFunc(_0(125), _1("box_overlap"), _2(2), _3(true), _4(false), _5(box_overlap), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_overlap"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(125), _1("box_overlap"), _2(2), _3(true), _4(false), _5(box_overlap), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_overlap"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "box_overleft", 1, - AddBuiltinFunc(_0(189), _1("box_overleft"), _2(2), _3(true), _4(false), _5(box_overleft), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_overleft"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(189), _1("box_overleft"), _2(2), _3(true), _4(false), _5(box_overleft), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_overleft"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "box_overright", 1, - AddBuiltinFunc(_0(190), _1("box_overright"), _2(2), _3(true), _4(false), _5(box_overright), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_overright"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(190), _1("box_overright"), _2(2), _3(true), _4(false), _5(box_overright), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_overright"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "box_recv", 1, - AddBuiltinFunc(_0(2484), _1("box_recv"), _2(1), _3(true), _4(false), _5(box_recv), _6(603), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2484), _1("box_recv"), _2(1), _3(true), _4(false), _5(box_recv), _6(603), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "box_right", 1, - AddBuiltinFunc(_0(191), _1("box_right"), _2(2), _3(true), _4(false), _5(box_right), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_right"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(191), _1("box_right"), _2(2), _3(true), _4(false), _5(box_right), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_right"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "box_same", 1, - AddBuiltinFunc(_0(186), _1("box_same"), _2(2), _3(true), _4(false), _5(box_same), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_same"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(186), _1("box_same"), _2(2), _3(true), _4(false), _5(box_same), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_same"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "box_send", 1, - AddBuiltinFunc(_0(2485), _1("box_send"), _2(1), _3(true), _4(false), _5(box_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2485), _1("box_send"), _2(1), _3(true), _4(false), _5(box_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "box_sub", 1, - AddBuiltinFunc(_0(1423), _1("box_sub"), _2(2), _3(true), _4(false), _5(box_sub), _6(603), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_sub"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1423), _1("box_sub"), _2(2), _3(true), _4(false), _5(box_sub), _6(603), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 603, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_sub"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bpchar", 3, - AddBuiltinFunc(_0(408), _1("bpchar"), _2(1), _3(true), _4(false), _5(name_bpchar), _6(1042), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("name_bpchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(668), _1("bpchar"), _2(3), _3(true), _4(false), _5(bpchar), _6(1042), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 1042, 23, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(860), _1("bpchar"), _2(1), _3(true), _4(false), _5(char_bpchar), _6(1042), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 18), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("char_bpchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(408), _1("bpchar"), _2(1), _3(true), _4(false), _5(name_bpchar), _6(1042), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("name_bpchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert name to char(n)"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(668), _1("bpchar"), _2(3), _3(true), _4(false), _5(bpchar), _6(1042), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 1042, 23, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("adjust char() to typmod length"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(860), _1("bpchar"), _2(1), _3(true), _4(false), _5(char_bpchar), _6(1042), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 18), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("char_bpchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert char to char(n)"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bpchar_date", 1, - AddBuiltinFunc(_0(4163), _1("bpchar_date"), _2(1), _3(true), _4(false), _5(bpchar_date), _6(1082), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpchar_date"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4163), _1("bpchar_date"), _2(1), _3(true), _4(false), _5(bpchar_date), _6(1082), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpchar_date"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bpchar_float4", 1, - AddBuiltinFunc(_0(4196), _1("bpchar_float4"), _2(1), _3(true), _4(false), _5(bpchar_float4), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpchar_float4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4196), _1("bpchar_float4"), _2(1), _3(true), _4(false), _5(bpchar_float4), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpchar_float4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bpchar_float8", 1, - AddBuiltinFunc(_0(4197), _1("bpchar_float8"), _2(1), _3(true), _4(false), _5(bpchar_float8), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpchar_float8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4197), _1("bpchar_float8"), _2(1), _3(true), _4(false), _5(bpchar_float8), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpchar_float8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bpchar_int4", 1, - AddBuiltinFunc(_0(4175), _1("bpchar_int4"), _2(1), _3(true), _4(false), _5(bpchar_int4), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpchar_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4175), _1("bpchar_int4"), _2(1), _3(true), _4(false), _5(bpchar_int4), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpchar_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bpchar_int8", 1, - AddBuiltinFunc(_0(4195), _1("bpchar_int8"), _2(1), _3(true), _4(false), _5(bpchar_int8), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpchar_int8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4195), _1("bpchar_int8"), _2(1), _3(true), _4(false), _5(bpchar_int8), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpchar_int8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bpchar_larger", 1, - AddBuiltinFunc(_0(1063), _1("bpchar_larger"), _2(2), _3(true), _4(false), _5(bpchar_larger), _6(1042), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpchar_larger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1063), _1("bpchar_larger"), _2(2), _3(true), _4(false), _5(bpchar_larger), _6(1042), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpchar_larger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("larger of two"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bpchar_numeric", 1, - AddBuiltinFunc(_0(4172), _1("bpchar_numeric"), _2(1), _3(true), _4(false), _5(bpchar_numeric), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpchar_numeric"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4172), _1("bpchar_numeric"), _2(1), _3(true), _4(false), _5(bpchar_numeric), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpchar_numeric"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bpchar_pattern_ge", 1, - AddBuiltinFunc(_0(2177), _1("bpchar_pattern_ge"), _2(2), _3(true), _4(false), _5(bpchar_pattern_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpchar_pattern_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2177), _1("bpchar_pattern_ge"), _2(2), _3(true), _4(false), _5(bpchar_pattern_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpchar_pattern_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bpchar_pattern_gt", 1, - AddBuiltinFunc(_0(2178), _1("bpchar_pattern_gt"), _2(2), _3(true), _4(false), _5(bpchar_pattern_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpchar_pattern_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2178), _1("bpchar_pattern_gt"), _2(2), _3(true), _4(false), _5(bpchar_pattern_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpchar_pattern_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bpchar_pattern_le", 1, - AddBuiltinFunc(_0(2175), _1("bpchar_pattern_le"), _2(2), _3(true), _4(false), _5(bpchar_pattern_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpchar_pattern_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2175), _1("bpchar_pattern_le"), _2(2), _3(true), _4(false), _5(bpchar_pattern_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpchar_pattern_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bpchar_pattern_lt", 1, - AddBuiltinFunc(_0(2174), _1("bpchar_pattern_lt"), _2(2), _3(true), _4(false), _5(bpchar_pattern_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpchar_pattern_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2174), _1("bpchar_pattern_lt"), _2(2), _3(true), _4(false), _5(bpchar_pattern_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpchar_pattern_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bpchar_smaller", 1, - AddBuiltinFunc(_0(1064), _1("bpchar_smaller"), _2(2), _3(true), _4(false), _5(bpchar_smaller), _6(1042), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpchar_smaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1064), _1("bpchar_smaller"), _2(2), _3(true), _4(false), _5(bpchar_smaller), _6(1042), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpchar_smaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("smaller of two"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bpchar_sortsupport", 1, - AddBuiltinFunc(_0(3256), _1("bpchar_sortsupport"), _2(1), _3(true), _4(false), _5(bpchar_sortsupport), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpchar_sortsupport"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3256), _1("bpchar_sortsupport"), _2(1), _3(true), _4(false), _5(bpchar_sortsupport), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpchar_sortsupport"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("sort support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bpchar_timestamp", 1, - AddBuiltinFunc(_0(4187), _1("bpchar_timestamp"), _2(1), _3(true), _4(false), _5(bpchar_timestamp), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpchar_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4187), _1("bpchar_timestamp"), _2(1), _3(true), _4(false), _5(bpchar_timestamp), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpchar_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bpcharcmp", 1, - AddBuiltinFunc(_0(1078), _1("bpcharcmp"), _2(2), _3(true), _4(false), _5(bpcharcmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpcharcmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1078), _1("bpcharcmp"), _2(2), _3(true), _4(false), _5(bpcharcmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpcharcmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bpchareq", 1, - AddBuiltinFunc(_0(1048), _1("bpchareq"), _2(2), _3(true), _4(false), _5(bpchareq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1042, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpchareq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1048), _1("bpchareq"), _2(2), _3(true), _4(false), _5(bpchareq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1042, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpchareq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bpcharge", 1, - AddBuiltinFunc(_0(1052), _1("bpcharge"), _2(2), _3(true), _4(false), _5(bpcharge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpcharge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1052), _1("bpcharge"), _2(2), _3(true), _4(false), _5(bpcharge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpcharge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bpchargt", 1, - AddBuiltinFunc(_0(1051), _1("bpchargt"), _2(2), _3(true), _4(false), _5(bpchargt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpchargt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1051), _1("bpchargt"), _2(2), _3(true), _4(false), _5(bpchargt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpchargt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bpchariclike", 1, - AddBuiltinFunc(_0(1660), _1("bpchariclike"), _2(2), _3(true), _4(false), _5(texticlike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("texticlike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1660), _1("bpchariclike"), _2(2), _3(true), _4(false), _5(texticlike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("texticlike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bpcharicnlike", 1, - AddBuiltinFunc(_0(1661), _1("bpcharicnlike"), _2(2), _3(true), _4(false), _5(texticnlike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("texticnlike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1661), _1("bpcharicnlike"), _2(2), _3(true), _4(false), _5(texticnlike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("texticnlike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bpcharicregexeq", 1, - AddBuiltinFunc(_0(1656), _1("bpcharicregexeq"), _2(2), _3(true), _4(false), _5(texticregexeq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("texticregexeq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1656), _1("bpcharicregexeq"), _2(2), _3(true), _4(false), _5(texticregexeq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("texticregexeq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bpcharicregexne", 1, - AddBuiltinFunc(_0(1657), _1("bpcharicregexne"), _2(2), _3(true), _4(false), _5(texticregexne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("texticregexne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1657), _1("bpcharicregexne"), _2(2), _3(true), _4(false), _5(texticregexne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("texticregexne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bpcharin", 1, - AddBuiltinFunc(_0(1044), _1("bpcharin"), _2(3), _3(true), _4(false), _5(bpcharin), _6(1042), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2275, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpcharin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1044), _1("bpcharin"), _2(3), _3(true), _4(false), _5(bpcharin), _6(1042), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2275, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpcharin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bpcharle", 1, - AddBuiltinFunc(_0(1050), _1("bpcharle"), _2(2), _3(true), _4(false), _5(bpcharle), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpcharle"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1050), _1("bpcharle"), _2(2), _3(true), _4(false), _5(bpcharle), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpcharle"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bpcharlike", 1, - AddBuiltinFunc(_0(1631), _1("bpcharlike"), _2(2), _3(true), _4(false), _5(textlike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textlike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1631), _1("bpcharlike"), _2(2), _3(true), _4(false), _5(textlike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textlike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("matches LIKE expression"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bpcharlt", 1, - AddBuiltinFunc(_0(1049), _1("bpcharlt"), _2(2), _3(true), _4(false), _5(bpcharlt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpcharlt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1049), _1("bpcharlt"), _2(2), _3(true), _4(false), _5(bpcharlt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpcharlt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bpcharne", 1, - AddBuiltinFunc(_0(1053), _1("bpcharne"), _2(2), _3(true), _4(false), _5(bpcharne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1042, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpcharne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1053), _1("bpcharne"), _2(2), _3(true), _4(false), _5(bpcharne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1042, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpcharne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bpcharnlike", 1, - AddBuiltinFunc(_0(1632), _1("bpcharnlike"), _2(2), _3(true), _4(false), _5(textnlike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textnlike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1632), _1("bpcharnlike"), _2(2), _3(true), _4(false), _5(textnlike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textnlike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("does not match LIKE expression"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bpcharout", 1, - AddBuiltinFunc(_0(1045), _1("bpcharout"), _2(1), _3(true), _4(false), _5(bpcharout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpcharout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1045), _1("bpcharout"), _2(1), _3(true), _4(false), _5(bpcharout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpcharout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bpcharrecv", 1, - AddBuiltinFunc(_0(2430), _1("bpcharrecv"), _2(3), _3(true), _4(false), _5(bpcharrecv), _6(1042), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 2281, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpcharrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2430), _1("bpcharrecv"), _2(3), _3(true), _4(false), _5(bpcharrecv), _6(1042), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 2281, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpcharrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bpcharregexeq", 1, - AddBuiltinFunc(_0(1658), _1("bpcharregexeq"), _2(2), _3(true), _4(false), _5(textregexeq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textregexeq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1658), _1("bpcharregexeq"), _2(2), _3(true), _4(false), _5(textregexeq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textregexeq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bpcharregexne", 1, - AddBuiltinFunc(_0(1659), _1("bpcharregexne"), _2(2), _3(true), _4(false), _5(textregexne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textregexne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1659), _1("bpcharregexne"), _2(2), _3(true), _4(false), _5(textregexne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textregexne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bpcharsend", 1, - AddBuiltinFunc(_0(2431), _1("bpcharsend"), _2(1), _3(true), _4(false), _5(bpcharsend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpcharsend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2431), _1("bpcharsend"), _2(1), _3(true), _4(false), _5(bpcharsend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpcharsend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bpchartypmodin", 1, - AddBuiltinFunc(_0(2913), _1("bpchartypmodin"), _2(1), _3(true), _4(false), _5(bpchartypmodin), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1263), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpchartypmodin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2913), _1("bpchartypmodin"), _2(1), _3(true), _4(false), _5(bpchartypmodin), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1263), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpchartypmodin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O typmod"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bpchartypmodout", 1, - AddBuiltinFunc(_0(2914), _1("bpchartypmodout"), _2(1), _3(true), _4(false), _5(bpchartypmodout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpchartypmodout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2914), _1("bpchartypmodout"), _2(1), _3(true), _4(false), _5(bpchartypmodout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpchartypmodout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O typmod"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "broadcast", 1, - AddBuiltinFunc(_0(698), _1("broadcast"), _2(1), _3(true), _4(false), _5(network_broadcast), _6(869), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("network_broadcast"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(698), _1("broadcast"), _2(1), _3(true), _4(false), _5(network_broadcast), _6(869), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("network_broadcast"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("broadcast address of network"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btabstimecmp", 1, - AddBuiltinFunc(_0(357), _1("btabstimecmp"), _2(2), _3(true), _4(false), _5(btabstimecmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 702, 702), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btabstimecmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(357), _1("btabstimecmp"), _2(2), _3(true), _4(false), _5(btabstimecmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 702, 702), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btabstimecmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btarraycmp", 1, - AddBuiltinFunc(_0(382), _1("btarraycmp"), _2(2), _3(true), _4(false), _5(btarraycmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btarraycmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(382), _1("btarraycmp"), _2(2), _3(true), _4(false), _5(btarraycmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btarraycmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btbeginscan", 1, - AddBuiltinFunc(_0(333), _1("btbeginscan"), _2(3), _3(true), _4(false), _5(btbeginscan), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btbeginscan"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(333), _1("btbeginscan"), _2(3), _3(true), _4(false), _5(btbeginscan), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btbeginscan"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btboolcmp", 1, - AddBuiltinFunc(_0(1693), _1("btboolcmp"), _2(2), _3(true), _4(false), _5(btboolcmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 16, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btboolcmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1693), _1("btboolcmp"), _2(2), _3(true), _4(false), _5(btboolcmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 16, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btboolcmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btbpchar_pattern_cmp", 1, - AddBuiltinFunc(_0(2180), _1("btbpchar_pattern_cmp"), _2(2), _3(true), _4(false), _5(btbpchar_pattern_cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btbpchar_pattern_cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2180), _1("btbpchar_pattern_cmp"), _2(2), _3(true), _4(false), _5(btbpchar_pattern_cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btbpchar_pattern_cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btbuild", 1, - AddBuiltinFunc(_0(338), _1("btbuild"), _2(3), _3(true), _4(false), _5(btbuild), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btbuild"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(338), _1("btbuild"), _2(3), _3(true), _4(false), _5(btbuild), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btbuild"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btbuildempty", 1, - AddBuiltinFunc(_0(328), _1("btbuildempty"), _2(1), _3(true), _4(false), _5(btbuildempty), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btbuildempty"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(328), _1("btbuildempty"), _2(1), _3(true), _4(false), _5(btbuildempty), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btbuildempty"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btbulkdelete", 1, - AddBuiltinFunc(_0(332), _1("btbulkdelete"), _2(4), _3(true), _4(false), _5(btbulkdelete), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(4, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btbulkdelete"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(332), _1("btbulkdelete"), _2(4), _3(true), _4(false), _5(btbulkdelete), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(4, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btbulkdelete"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btcanreturn", 1, - AddBuiltinFunc(_0(276), _1("btcanreturn"), _2(1), _3(true), _4(false), _5(btcanreturn), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btcanreturn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(276), _1("btcanreturn"), _2(1), _3(true), _4(false), _5(btcanreturn), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btcanreturn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btcharcmp", 1, - AddBuiltinFunc(_0(358), _1("btcharcmp"), _2(2), _3(true), _4(false), _5(btcharcmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 18, 18), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btcharcmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(358), _1("btcharcmp"), _2(2), _3(true), _4(false), _5(btcharcmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 18, 18), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btcharcmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btcostestimate", 1, - AddBuiltinFunc(_0(1268), _1("btcostestimate"), _2(7), _3(true), _4(false), _5(btcostestimate), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(7, 2281, 2281, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btcostestimate"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1268), _1("btcostestimate"), _2(7), _3(true), _4(false), _5(btcostestimate), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(7, 2281, 2281, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btcostestimate"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btendscan", 1, - AddBuiltinFunc(_0(335), _1("btendscan"), _2(1), _3(true), _4(false), _5(btendscan), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btendscan"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(335), _1("btendscan"), _2(1), _3(true), _4(false), _5(btendscan), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btendscan"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btfloat48cmp", 1, - AddBuiltinFunc(_0(2194), _1("btfloat48cmp"), _2(2), _3(true), _4(false), _5(btfloat48cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 700, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btfloat48cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2194), _1("btfloat48cmp"), _2(2), _3(true), _4(false), _5(btfloat48cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 700, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btfloat48cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btfloat4cmp", 1, - AddBuiltinFunc(_0(354), _1("btfloat4cmp"), _2(2), _3(true), _4(false), _5(btfloat4cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 700, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btfloat4cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(354), _1("btfloat4cmp"), _2(2), _3(true), _4(false), _5(btfloat4cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 700, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btfloat4cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btfloat4sortsupport", 1, - AddBuiltinFunc(_0(3132), _1("btfloat4sortsupport"), _2(1), _3(true), _4(false), _5(btfloat4sortsupport), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btfloat4sortsupport"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3132), _1("btfloat4sortsupport"), _2(1), _3(true), _4(false), _5(btfloat4sortsupport), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btfloat4sortsupport"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("sort support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btfloat84cmp", 1, - AddBuiltinFunc(_0(2195), _1("btfloat84cmp"), _2(2), _3(true), _4(false), _5(btfloat84cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btfloat84cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2195), _1("btfloat84cmp"), _2(2), _3(true), _4(false), _5(btfloat84cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btfloat84cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btfloat8cmp", 1, - AddBuiltinFunc(_0(355), _1("btfloat8cmp"), _2(2), _3(true), _4(false), _5(btfloat8cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btfloat8cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(355), _1("btfloat8cmp"), _2(2), _3(true), _4(false), _5(btfloat8cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btfloat8cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btfloat8sortsupport", 1, - AddBuiltinFunc(_0(3133), _1("btfloat8sortsupport"), _2(1), _3(true), _4(false), _5(btfloat8sortsupport), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btfloat8sortsupport"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3133), _1("btfloat8sortsupport"), _2(1), _3(true), _4(false), _5(btfloat8sortsupport), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btfloat8sortsupport"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("sort support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btgetbitmap", 1, - AddBuiltinFunc(_0(636), _1("btgetbitmap"), _2(2), _3(true), _4(false), _5(btgetbitmap), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btgetbitmap"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(636), _1("btgetbitmap"), _2(2), _3(true), _4(false), _5(btgetbitmap), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btgetbitmap"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btgettuple", 1, - AddBuiltinFunc(_0(330), _1("btgettuple"), _2(2), _3(true), _4(false), _5(btgettuple), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btgettuple"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(330), _1("btgettuple"), _2(2), _3(true), _4(false), _5(btgettuple), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btgettuple"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btinsert", 1, - AddBuiltinFunc(_0(331), _1("btinsert"), _2(6), _3(true), _4(false), _5(btinsert), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(6, 2281, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btinsert"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(331), _1("btinsert"), _2(6), _3(true), _4(false), _5(btinsert), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(6, 2281, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btinsert"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btint24cmp", 1, - AddBuiltinFunc(_0(2190), _1("btint24cmp"), _2(2), _3(true), _4(false), _5(btint24cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btint24cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2190), _1("btint24cmp"), _2(2), _3(true), _4(false), _5(btint24cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btint24cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btint28cmp", 1, - AddBuiltinFunc(_0(2192), _1("btint28cmp"), _2(2), _3(true), _4(false), _5(btint28cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btint28cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2192), _1("btint28cmp"), _2(2), _3(true), _4(false), _5(btint28cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btint28cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btint2cmp", 1, - AddBuiltinFunc(_0(350), _1("btint2cmp"), _2(2), _3(true), _4(false), _5(btint2cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btint2cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(350), _1("btint2cmp"), _2(2), _3(true), _4(false), _5(btint2cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btint2cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btint2sortsupport", 1, - AddBuiltinFunc(_0(3129), _1("btint2sortsupport"), _2(1), _3(true), _4(false), _5(btint2sortsupport), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btint2sortsupport"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3129), _1("btint2sortsupport"), _2(1), _3(true), _4(false), _5(btint2sortsupport), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btint2sortsupport"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("sort support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btint42cmp", 1, - AddBuiltinFunc(_0(2191), _1("btint42cmp"), _2(2), _3(true), _4(false), _5(btint42cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btint42cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2191), _1("btint42cmp"), _2(2), _3(true), _4(false), _5(btint42cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btint42cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btint48cmp", 1, - AddBuiltinFunc(_0(2188), _1("btint48cmp"), _2(2), _3(true), _4(false), _5(btint48cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btint48cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2188), _1("btint48cmp"), _2(2), _3(true), _4(false), _5(btint48cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btint48cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btint4cmp", 1, - AddBuiltinFunc(_0(351), _1("btint4cmp"), _2(2), _3(true), _4(false), _5(btint4cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btint4cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(351), _1("btint4cmp"), _2(2), _3(true), _4(false), _5(btint4cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btint4cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btint4sortsupport", 1, - AddBuiltinFunc(_0(3130), _1("btint4sortsupport"), _2(1), _3(true), _4(false), _5(btint4sortsupport), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btint4sortsupport"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3130), _1("btint4sortsupport"), _2(1), _3(true), _4(false), _5(btint4sortsupport), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btint4sortsupport"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("sort support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btint82cmp", 1, - AddBuiltinFunc(_0(2193), _1("btint82cmp"), _2(2), _3(true), _4(false), _5(btint82cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btint82cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2193), _1("btint82cmp"), _2(2), _3(true), _4(false), _5(btint82cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btint82cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btint84cmp", 1, - AddBuiltinFunc(_0(2189), _1("btint84cmp"), _2(2), _3(true), _4(false), _5(btint84cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btint84cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2189), _1("btint84cmp"), _2(2), _3(true), _4(false), _5(btint84cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btint84cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btint8cmp", 1, - AddBuiltinFunc(_0(842), _1("btint8cmp"), _2(2), _3(true), _4(false), _5(btint8cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btint8cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(842), _1("btint8cmp"), _2(2), _3(true), _4(false), _5(btint8cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btint8cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btint8sortsupport", 1, - AddBuiltinFunc(_0(3131), _1("btint8sortsupport"), _2(1), _3(true), _4(false), _5(btint8sortsupport), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btint8sortsupport"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3131), _1("btint8sortsupport"), _2(1), _3(true), _4(false), _5(btint8sortsupport), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btint8sortsupport"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("sort support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btmarkpos", 1, - AddBuiltinFunc(_0(336), _1("btmarkpos"), _2(1), _3(true), _4(false), _5(btmarkpos), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btmarkpos"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(336), _1("btmarkpos"), _2(1), _3(true), _4(false), _5(btmarkpos), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btmarkpos"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btmerge", 1, - AddBuiltinFunc(_0(3184), _1("btmerge"), _2(5), _3(true), _4(false), _5(btmerge), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(5, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btmerge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3184), _1("btmerge"), _2(5), _3(true), _4(false), _5(btmerge), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(5, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btmerge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btnamecmp", 1, - AddBuiltinFunc(_0(359), _1("btnamecmp"), _2(2), _3(true), _4(false), _5(btnamecmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 19, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btnamecmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(359), _1("btnamecmp"), _2(2), _3(true), _4(false), _5(btnamecmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 19, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btnamecmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btnamesortsupport", 1, - AddBuiltinFunc(_0(3135), _1("btnamesortsupport"), _2(1), _3(true), _4(false), _5(btnamesortsupport), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btnamesortsupport"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3135), _1("btnamesortsupport"), _2(1), _3(true), _4(false), _5(btnamesortsupport), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btnamesortsupport"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("sort support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btoidcmp", 1, - AddBuiltinFunc(_0(356), _1("btoidcmp"), _2(2), _3(true), _4(false), _5(btoidcmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 26, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btoidcmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(356), _1("btoidcmp"), _2(2), _3(true), _4(false), _5(btoidcmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 26, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btoidcmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btoidsortsupport", 1, - AddBuiltinFunc(_0(3134), _1("btoidsortsupport"), _2(1), _3(true), _4(false), _5(btoidsortsupport), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btoidsortsupport"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3134), _1("btoidsortsupport"), _2(1), _3(true), _4(false), _5(btoidsortsupport), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btoidsortsupport"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("sort support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btoidvectorcmp", 1, - AddBuiltinFunc(_0(404), _1("btoidvectorcmp"), _2(2), _3(true), _4(false), _5(btoidvectorcmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 30, 30), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btoidvectorcmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(404), _1("btoidvectorcmp"), _2(2), _3(true), _4(false), _5(btoidvectorcmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 30, 30), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btoidvectorcmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btoptions", 1, - AddBuiltinFunc(_0(2785), _1("btoptions"), _2(2), _3(true), _4(false), _5(btoptions), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1009, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btoptions"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2785), _1("btoptions"), _2(2), _3(true), _4(false), _5(btoptions), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1009, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btoptions"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btrecordcmp", 1, - AddBuiltinFunc(_0(2987), _1("btrecordcmp"), _2(2), _3(true), _4(false), _5(btrecordcmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2249, 2249), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btrecordcmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2987), _1("btrecordcmp"), _2(2), _3(true), _4(false), _5(btrecordcmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2249, 2249), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btrecordcmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btreltimecmp", 1, - AddBuiltinFunc(_0(380), _1("btreltimecmp"), _2(2), _3(true), _4(false), _5(btreltimecmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 703, 703), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btreltimecmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(380), _1("btreltimecmp"), _2(2), _3(true), _4(false), _5(btreltimecmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 703, 703), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btreltimecmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btrescan", 1, - AddBuiltinFunc(_0(334), _1("btrescan"), _2(5), _3(true), _4(false), _5(btrescan), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(5, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btrescan"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(334), _1("btrescan"), _2(5), _3(true), _4(false), _5(btrescan), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(5, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btrescan"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btrestrpos", 1, - AddBuiltinFunc(_0(337), _1("btrestrpos"), _2(1), _3(true), _4(false), _5(btrestrpos), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btrestrpos"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(337), _1("btrestrpos"), _2(1), _3(true), _4(false), _5(btrestrpos), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btrestrpos"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btrim", 3, - AddBuiltinFunc(_0(BTRIMPARAFUNCOID), _1("btrim"), _2(2), _3(true), _4(false), _5(btrim), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btrim"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(BTRIMFUNCOID), _1("btrim"), _2(1), _3(true), _4(false), _5(btrim1), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btrim1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2015), _1("btrim"), _2(2), _3(true), _4(false), _5(byteatrim), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 17, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteatrim"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(BTRIMPARAFUNCOID), _1("btrim"), _2(2), _3(true), _4(false), _5(btrim), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btrim"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("trim selected characters from both ends of string"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(BTRIMFUNCOID), _1("btrim"), _2(1), _3(true), _4(false), _5(btrim1), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btrim1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("trim spaces from both ends of string"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2015), _1("btrim"), _2(2), _3(true), _4(false), _5(byteatrim), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 17, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteatrim"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("trim both ends of string"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bttext_pattern_cmp", 1, - AddBuiltinFunc(_0(2166), _1("bttext_pattern_cmp"), _2(2), _3(true), _4(false), _5(bttext_pattern_cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bttext_pattern_cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2166), _1("bttext_pattern_cmp"), _2(2), _3(true), _4(false), _5(bttext_pattern_cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bttext_pattern_cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bttextcmp", 1, - AddBuiltinFunc(_0(360), _1("bttextcmp"), _2(2), _3(true), _4(false), _5(bttextcmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bttextcmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(360), _1("bttextcmp"), _2(2), _3(true), _4(false), _5(bttextcmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bttextcmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bttextsortsupport", 1, - AddBuiltinFunc(_0(3255), _1("bttextsortsupport"), _2(1), _3(true), _4(false), _5(bttextsortsupport), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bttextsortsupport"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3255), _1("bttextsortsupport"), _2(1), _3(true), _4(false), _5(bttextsortsupport), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bttextsortsupport"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("sort support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bttidcmp", 1, - AddBuiltinFunc(_0(2794), _1("bttidcmp"), _2(2), _3(true), _4(false), _5(bttidcmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 27, 27), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bttidcmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2794), _1("bttidcmp"), _2(2), _3(true), _4(false), _5(bttidcmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 27, 27), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bttidcmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bttintervalcmp", 1, - AddBuiltinFunc(_0(381), _1("bttintervalcmp"), _2(2), _3(true), _4(false), _5(bttintervalcmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 704, 704), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bttintervalcmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(381), _1("bttintervalcmp"), _2(2), _3(true), _4(false), _5(bttintervalcmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 704, 704), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bttintervalcmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "btvacuumcleanup", 1, - AddBuiltinFunc(_0(972), _1("btvacuumcleanup"), _2(2), _3(true), _4(false), _5(btvacuumcleanup), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btvacuumcleanup"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(972), _1("btvacuumcleanup"), _2(2), _3(true), _4(false), _5(btvacuumcleanup), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("btvacuumcleanup"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bucketabstime", 1, - AddBuiltinFunc(_0(4136), _1("bucketabstime"), _2(2), _3(true), _4(false), _5(bucketabstime), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 702, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketabstime"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4136), _1("bucketabstime"), _2(2), _3(true), _4(false), _5(bucketabstime), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 702, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketabstime"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bucketbool", 1, - AddBuiltinFunc(_0(4146), _1("bucketbool"), _2(2), _3(true), _4(false), _5(bucketbool), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 16, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketbool"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4146), _1("bucketbool"), _2(2), _3(true), _4(false), _5(bucketbool), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 16, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketbool"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bucketbpchar", 1, - AddBuiltinFunc(_0(4107), _1("bucketbpchar"), _2(2), _3(true), _4(false), _5(bucketbpchar), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketbpchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4107), _1("bucketbpchar"), _2(2), _3(true), _4(false), _5(bucketbpchar), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketbpchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bucketbytea", 1, - AddBuiltinFunc(_0(4142), _1("bucketbytea"), _2(2), _3(true), _4(false), _5(bucketbytea), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 17, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketbytea"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4142), _1("bucketbytea"), _2(2), _3(true), _4(false), _5(bucketbytea), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 17, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketbytea"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bucketcash", 1, - AddBuiltinFunc(_0(4140), _1("bucketcash"), _2(2), _3(true), _4(false), _5(bucketcash), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 790, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketcash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4140), _1("bucketcash"), _2(2), _3(true), _4(false), _5(bucketcash), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 790, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketcash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bucketchar", 1, - AddBuiltinFunc(_0(4109), _1("bucketchar"), _2(2), _3(true), _4(false), _5(bucketchar), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 18, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4109), _1("bucketchar"), _2(2), _3(true), _4(false), _5(bucketchar), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 18, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bucketdate", 1, - AddBuiltinFunc(_0(4113), _1("bucketdate"), _2(2), _3(true), _4(false), _5(bucketdate), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketdate"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4113), _1("bucketdate"), _2(2), _3(true), _4(false), _5(bucketdate), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketdate"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bucketfloat4", 1, - AddBuiltinFunc(_0(4156), _1("bucketfloat4"), _2(2), _3(true), _4(false), _5(bucketfloat4), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 700, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketfloat4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4156), _1("bucketfloat4"), _2(2), _3(true), _4(false), _5(bucketfloat4), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 700, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketfloat4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bucketfloat8", 1, - AddBuiltinFunc(_0(4158), _1("bucketfloat8"), _2(2), _3(true), _4(false), _5(bucketfloat8), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketfloat8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4158), _1("bucketfloat8"), _2(2), _3(true), _4(false), _5(bucketfloat8), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketfloat8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bucketint1", 1, - AddBuiltinFunc(_0(4125), _1("bucketint1"), _2(2), _3(true), _4(false), _5(bucketint1), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 5545, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketint1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4125), _1("bucketint1"), _2(2), _3(true), _4(false), _5(bucketint1), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 5545, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketint1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bucketint2", 1, - AddBuiltinFunc(_0(4103), _1("bucketint2"), _2(2), _3(true), _4(false), _5(bucketint2), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketint2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4103), _1("bucketint2"), _2(2), _3(true), _4(false), _5(bucketint2), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketint2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bucketint2vector", 1, - AddBuiltinFunc(_0(4150), _1("bucketint2vector"), _2(2), _3(true), _4(false), _5(bucketint2vector), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 22, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketint2vector"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4150), _1("bucketint2vector"), _2(2), _3(true), _4(false), _5(bucketint2vector), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 22, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketint2vector"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bucketint4", 1, - AddBuiltinFunc(_0(4101), _1("bucketint4"), _2(2), _3(true), _4(false), _5(bucketint4), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketint4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4101), _1("bucketint4"), _2(2), _3(true), _4(false), _5(bucketint4), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketint4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bucketint8", 1, - AddBuiltinFunc(_0(4105), _1("bucketint8"), _2(2), _3(true), _4(false), _5(bucketint8), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketint8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4105), _1("bucketint8"), _2(2), _3(true), _4(false), _5(bucketint8), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketint8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bucketinterval", 1, - AddBuiltinFunc(_0(4121), _1("bucketinterval"), _2(2), _3(true), _4(false), _5(bucketinterval), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1186, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketinterval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4121), _1("bucketinterval"), _2(2), _3(true), _4(false), _5(bucketinterval), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1186, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketinterval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bucketname", 1, - AddBuiltinFunc(_0(4148), _1("bucketname"), _2(2), _3(true), _4(false), _5(bucketname), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 19, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketname"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4148), _1("bucketname"), _2(2), _3(true), _4(false), _5(bucketname), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 19, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketname"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bucketnumeric", 1, - AddBuiltinFunc(_0(4132), _1("bucketnumeric"), _2(2), _3(true), _4(false), _5(bucketnumeric), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketnumeric"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4132), _1("bucketnumeric"), _2(2), _3(true), _4(false), _5(bucketnumeric), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketnumeric"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bucketnvarchar2", 1, - AddBuiltinFunc(_0(4129), _1("bucketnvarchar2"), _2(2), _3(true), _4(false), _5(bucketnvarchar2), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3969, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketnvarchar2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4129), _1("bucketnvarchar2"), _2(2), _3(true), _4(false), _5(bucketnvarchar2), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3969, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketnvarchar2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bucketoid", 1, - AddBuiltinFunc(_0(4134), _1("bucketoid"), _2(2), _3(true), _4(false), _5(bucketoid), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketoid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4134), _1("bucketoid"), _2(2), _3(true), _4(false), _5(bucketoid), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketoid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bucketoidvector", 1, - AddBuiltinFunc(_0(4154), _1("bucketoidvector"), _2(2), _3(true), _4(false), _5(bucketoidvector), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 30, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketoidvector"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4154), _1("bucketoidvector"), _2(2), _3(true), _4(false), _5(bucketoidvector), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 30, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketoidvector"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bucketraw", 1, - AddBuiltinFunc(_0(4144), _1("bucketraw"), _2(2), _3(true), _4(false), _5(bucketraw), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 86, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketraw"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4144), _1("bucketraw"), _2(2), _3(true), _4(false), _5(bucketraw), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 86, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketraw"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bucketreltime", 1, - AddBuiltinFunc(_0(4138), _1("bucketreltime"), _2(2), _3(true), _4(false), _5(bucketreltime), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 703, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketreltime"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4138), _1("bucketreltime"), _2(2), _3(true), _4(false), _5(bucketreltime), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 703, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketreltime"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bucketsmalldatetime", 1, - AddBuiltinFunc(_0(4127), _1("bucketsmalldatetime"), _2(2), _3(true), _4(false), _5(bucketsmalldatetime), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 9003, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketsmalldatetime"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4127), _1("bucketsmalldatetime"), _2(2), _3(true), _4(false), _5(bucketsmalldatetime), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 9003, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketsmalldatetime"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "buckettext", 1, - AddBuiltinFunc(_0(4152), _1("buckettext"), _2(2), _3(true), _4(false), _5(buckettext), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("buckettext"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4152), _1("buckettext"), _2(2), _3(true), _4(false), _5(buckettext), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("buckettext"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "buckettime", 1, - AddBuiltinFunc(_0(4115), _1("buckettime"), _2(2), _3(true), _4(false), _5(buckettime), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1083, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("buckettime"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4115), _1("buckettime"), _2(2), _3(true), _4(false), _5(buckettime), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1083, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("buckettime"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "buckettimestamp", 1, - AddBuiltinFunc(_0(4117), _1("buckettimestamp"), _2(2), _3(true), _4(false), _5(buckettimestamp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("buckettimestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4117), _1("buckettimestamp"), _2(2), _3(true), _4(false), _5(buckettimestamp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("buckettimestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "buckettimestamptz", 1, - AddBuiltinFunc(_0(4123), _1("buckettimestamptz"), _2(2), _3(true), _4(false), _5(buckettimestamptz), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1184, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("buckettimestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4123), _1("buckettimestamptz"), _2(2), _3(true), _4(false), _5(buckettimestamptz), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1184, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("buckettimestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "buckettimetz", 1, - AddBuiltinFunc(_0(4119), _1("buckettimetz"), _2(2), _3(true), _4(false), _5(buckettimetz), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1266, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("buckettimetz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4119), _1("buckettimetz"), _2(2), _3(true), _4(false), _5(buckettimetz), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1266, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("buckettimetz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bucketuuid", 1, - AddBuiltinFunc(_0(6001), _1("bucketuuid"), _2(2), _3(true), _4(false), _5(bucketuuid), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2950, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketuuid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(6001), _1("bucketuuid"), _2(2), _3(true), _4(false), _5(bucketuuid), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2950, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketuuid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bucketvarchar", 1, - AddBuiltinFunc(_0(4111), _1("bucketvarchar"), _2(2), _3(true), _4(false), _5(bucketvarchar), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1043, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketvarchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4111), _1("bucketvarchar"), _2(2), _3(true), _4(false), _5(bucketvarchar), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1043, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketvarchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bytea_sortsupport", 1, - AddBuiltinFunc(_0(3452), _1("bytea_sortsupport"), _2(1), _3(true), _4(false), _5(bytea_sortsupport), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bytea_sortsupport"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3452), _1("bytea_sortsupport"), _2(1), _3(true), _4(false), _5(bytea_sortsupport), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bytea_sortsupport"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("sort support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bytea_string_agg_finalfn", 1, - AddBuiltinFunc(_0(3544), _1("bytea_string_agg_finalfn"), _2(1), _3(false), _4(false), _5(bytea_string_agg_finalfn), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bytea_string_agg_finalfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3544), _1("bytea_string_agg_finalfn"), _2(1), _3(false), _4(false), _5(bytea_string_agg_finalfn), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bytea_string_agg_finalfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("concatenate aggregate input into a bytea"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bytea_string_agg_transfn", 1, - AddBuiltinFunc(_0(3543), _1("bytea_string_agg_transfn"), _2(3), _3(false), _4(false), _5(bytea_string_agg_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 17, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bytea_string_agg_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3543), _1("bytea_string_agg_transfn"), _2(3), _3(false), _4(false), _5(bytea_string_agg_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 17, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bytea_string_agg_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate transition function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "byteacat", 1, - AddBuiltinFunc(_0(2011), _1("byteacat"), _2(2), _3(true), _4(false), _5(byteacat), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 17, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteacat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2011), _1("byteacat"), _2(2), _3(true), _4(false), _5(byteacat), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 17, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteacat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "byteacmp", 1, - AddBuiltinFunc(_0(1954), _1("byteacmp"), _2(2), _3(true), _4(false), _5(byteacmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 17, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteacmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1954), _1("byteacmp"), _2(2), _3(true), _4(false), _5(byteacmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 17, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteacmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "byteaeq", 1, - AddBuiltinFunc(_0(1948), _1("byteaeq"), _2(2), _3(true), _4(false), _5(byteaeq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 17, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteaeq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1948), _1("byteaeq"), _2(2), _3(true), _4(false), _5(byteaeq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 17, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteaeq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "byteage", 1, - AddBuiltinFunc(_0(1952), _1("byteage"), _2(2), _3(true), _4(false), _5(byteage), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 17, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteage"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1952), _1("byteage"), _2(2), _3(true), _4(false), _5(byteage), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 17, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteage"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "byteagt", 1, - AddBuiltinFunc(_0(1951), _1("byteagt"), _2(2), _3(true), _4(false), _5(byteagt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 17, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteagt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1951), _1("byteagt"), _2(2), _3(true), _4(false), _5(byteagt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 17, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteagt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "byteain", 1, - AddBuiltinFunc(_0(1244), _1("byteain"), _2(1), _3(true), _4(false), _5(byteain), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteain"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1244), _1("byteain"), _2(1), _3(true), _4(false), _5(byteain), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteain"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "byteale", 1, - AddBuiltinFunc(_0(1950), _1("byteale"), _2(2), _3(true), _4(false), _5(byteale), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 17, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteale"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1950), _1("byteale"), _2(2), _3(true), _4(false), _5(byteale), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 17, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteale"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bytealike", 1, - AddBuiltinFunc(_0(2005), _1("bytealike"), _2(2), _3(true), _4(false), _5(bytealike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 17, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bytealike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2005), _1("bytealike"), _2(2), _3(true), _4(false), _5(bytealike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 17, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bytealike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("matches LIKE expression"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bytealt", 1, - AddBuiltinFunc(_0(1949), _1("bytealt"), _2(2), _3(true), _4(false), _5(bytealt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 17, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bytealt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1949), _1("bytealt"), _2(2), _3(true), _4(false), _5(bytealt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 17, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bytealt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "byteane", 1, - AddBuiltinFunc(_0(1953), _1("byteane"), _2(2), _3(true), _4(false), _5(byteane), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 17, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteane"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1953), _1("byteane"), _2(2), _3(true), _4(false), _5(byteane), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 17, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteane"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "byteanlike", 1, - AddBuiltinFunc(_0(2006), _1("byteanlike"), _2(2), _3(true), _4(false), _5(byteanlike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 17, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteanlike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2006), _1("byteanlike"), _2(2), _3(true), _4(false), _5(byteanlike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 17, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteanlike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("does not match LIKE expression"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "byteaout", 1, - AddBuiltinFunc(_0(31), _1("byteaout"), _2(1), _3(true), _4(false), _5(byteaout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteaout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(31), _1("byteaout"), _2(1), _3(true), _4(false), _5(byteaout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteaout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "bytearecv", 1, - AddBuiltinFunc(_0(2412), _1("bytearecv"), _2(1), _3(true), _4(false), _5(bytearecv), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bytearecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2412), _1("bytearecv"), _2(1), _3(true), _4(false), _5(bytearecv), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bytearecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "byteasend", 1, - AddBuiltinFunc(_0(2413), _1("byteasend"), _2(1), _3(true), _4(false), _5(byteasend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteasend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2413), _1("byteasend"), _2(1), _3(true), _4(false), _5(byteasend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteasend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "byteawithoutordercolin", 1, - AddBuiltinFunc(_0(4423), _1("byteawithoutordercolin"), _2(1), _3(true), _4(false), _5(byteawithoutordercolin), _6(4403), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteawithoutordercolin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4423), _1("byteawithoutordercolin"), _2(1), _3(true), _4(false), _5(byteawithoutordercolin), _6(4403), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteawithoutordercolin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "byteawithoutordercolout", 1, - AddBuiltinFunc(_0(4428), _1("byteawithoutordercolout"), _2(1), _3(true), _4(false), _5(byteawithoutordercolout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4403), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteawithoutordercolout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4428), _1("byteawithoutordercolout"), _2(1), _3(true), _4(false), _5(byteawithoutordercolout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4403), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteawithoutordercolout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "byteawithoutordercolrecv", 1, - AddBuiltinFunc(_0(4424), _1("byteawithoutordercolrecv"), _2(1), _3(true), _4(false), _5(byteawithoutordercolrecv), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteawithoutordercolrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4424), _1("byteawithoutordercolrecv"), _2(1), _3(true), _4(false), _5(byteawithoutordercolrecv), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteawithoutordercolrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "byteawithoutordercolsend", 1, - AddBuiltinFunc(_0(4425), _1("byteawithoutordercolsend"), _2(1), _3(true), _4(false), _5(byteawithoutordercolsend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteawithoutordercolsend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4425), _1("byteawithoutordercolsend"), _2(1), _3(true), _4(false), _5(byteawithoutordercolsend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteawithoutordercolsend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "byteawithoutorderwithequalcolcmp", 1, - AddBuiltinFunc(_0(4418), _1("byteawithoutorderwithequalcolcmp"), _2(2), _3(true), _4(false), _5(byteawithoutorderwithequalcolcmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 4402, 4402), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteawithoutorderwithequalcolcmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4418), _1("byteawithoutorderwithequalcolcmp"), _2(2), _3(true), _4(false), _5(byteawithoutorderwithequalcolcmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 4402, 4402), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteawithoutorderwithequalcolcmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "byteawithoutorderwithequalcolcmpbytear", 1, - AddBuiltinFunc(_0(4456), _1("byteawithoutorderwithequalcolcmpbytear"), _2(2), _3(true), _4(false), _5(byteawithoutorderwithequalcolcmpbytear), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 4402, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteawithoutorderwithequalcolcmpbytear"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4456), _1("byteawithoutorderwithequalcolcmpbytear"), _2(2), _3(true), _4(false), _5(byteawithoutorderwithequalcolcmpbytear), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 4402, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteawithoutorderwithequalcolcmpbytear"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "byteawithoutorderwithequalcolcmpbyteal", 1, - AddBuiltinFunc(_0(4463), _1("byteawithoutorderwithequalcolcmpbyteal"), _2(2), _3(true), _4(false), _5(byteawithoutorderwithequalcolcmpbyteal), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 17, 4402), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteawithoutorderwithequalcolcmpbyteal"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4463), _1("byteawithoutorderwithequalcolcmpbyteal"), _2(2), _3(true), _4(false), _5(byteawithoutorderwithequalcolcmpbyteal), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 17, 4402), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteawithoutorderwithequalcolcmpbyteal"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "byteawithoutorderwithequalcoleq", 1, - AddBuiltinFunc(_0(4412), _1("byteawithoutorderwithequalcoleq"), _2(2), _3(true), _4(false), _5(byteawithoutorderwithequalcoleq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 4402, 4402), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteawithoutorderwithequalcoleq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4412), _1("byteawithoutorderwithequalcoleq"), _2(2), _3(true), _4(false), _5(byteawithoutorderwithequalcoleq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 4402, 4402), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteawithoutorderwithequalcoleq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "byteawithoutorderwithequalcoleqbyteal", 1, - AddBuiltinFunc(_0(4457), _1("byteawithoutorderwithequalcoleqbyteal"), _2(2), _3(true), _4(false), _5(byteawithoutorderwithequalcoleqbyteal), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 17, 4402), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteawithoutorderwithequalcoleqbyteal"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4457), _1("byteawithoutorderwithequalcoleqbyteal"), _2(2), _3(true), _4(false), _5(byteawithoutorderwithequalcoleqbyteal), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 17, 4402), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteawithoutorderwithequalcoleqbyteal"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "byteawithoutorderwithequalcoleqbytear", 1, - AddBuiltinFunc(_0(4447), _1("byteawithoutorderwithequalcoleqbytear"), _2(2), _3(true), _4(false), _5(byteawithoutorderwithequalcoleqbytear), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 4402, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteawithoutorderwithequalcoleqbytear"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4447), _1("byteawithoutorderwithequalcoleqbytear"), _2(2), _3(true), _4(false), _5(byteawithoutorderwithequalcoleqbytear), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 4402, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteawithoutorderwithequalcoleqbytear"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "byteawithoutorderwithequalcolin", 1, - AddBuiltinFunc(_0(4440), _1("byteawithoutorderwithequalcolin"), _2(1), _3(true), _4(false), _5(byteawithoutorderwithequalcolin), _6(4402), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteawithoutorderwithequalcolin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4440), _1("byteawithoutorderwithequalcolin"), _2(1), _3(true), _4(false), _5(byteawithoutorderwithequalcolin), _6(4402), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteawithoutorderwithequalcolin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "byteawithoutorderwithequalcolne", 1, - AddBuiltinFunc(_0(4417), _1("byteawithoutorderwithequalcolne"), _2(2), _3(true), _4(false), _5(byteawithoutorderwithequalcolne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 4402, 4402), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteawithoutorderwithequalcolne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4417), _1("byteawithoutorderwithequalcolne"), _2(2), _3(true), _4(false), _5(byteawithoutorderwithequalcolne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 4402, 4402), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteawithoutorderwithequalcolne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "byteawithoutorderwithequalcolnebyteal", 1, - AddBuiltinFunc(_0(4561), _1("byteawithoutorderwithequalcolnebyteal"), _2(2), _3(true), _4(false), _5(byteawithoutorderwithequalcolnebyteal), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 17, 4402), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteawithoutorderwithequalcolnebyteal"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4561), _1("byteawithoutorderwithequalcolnebyteal"), _2(2), _3(true), _4(false), _5(byteawithoutorderwithequalcolnebyteal), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 17, 4402), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteawithoutorderwithequalcolnebyteal"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "byteawithoutorderwithequalcolnebytear", 1, - AddBuiltinFunc(_0(4460), _1("byteawithoutorderwithequalcolnebytear"), _2(2), _3(true), _4(false), _5(byteawithoutorderwithequalcolnebytear), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 4402, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteawithoutorderwithequalcolnebytear"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4460), _1("byteawithoutorderwithequalcolnebytear"), _2(2), _3(true), _4(false), _5(byteawithoutorderwithequalcolnebytear), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 4402, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteawithoutorderwithequalcolnebytear"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "byteawithoutorderwithequalcolout", 1, - AddBuiltinFunc(_0(4446), _1("byteawithoutorderwithequalcolout"), _2(1), _3(true), _4(false), _5(byteawithoutorderwithequalcolout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4402), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteawithoutorderwithequalcolout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4446), _1("byteawithoutorderwithequalcolout"), _2(1), _3(true), _4(false), _5(byteawithoutorderwithequalcolout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4402), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteawithoutorderwithequalcolout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "byteawithoutorderwithequalcolrecv", 1, - AddBuiltinFunc(_0(4444), _1("byteawithoutorderwithequalcolrecv"), _2(1), _3(true), _4(false), _5(byteawithoutorderwithequalcolrecv), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteawithoutorderwithequalcolrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4444), _1("byteawithoutorderwithequalcolrecv"), _2(1), _3(true), _4(false), _5(byteawithoutorderwithequalcolrecv), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteawithoutorderwithequalcolrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "byteawithoutorderwithequalcolsend", 1, - AddBuiltinFunc(_0(4451), _1("byteawithoutorderwithequalcolsend"), _2(1), _3(true), _4(false), _5(byteawithoutorderwithequalcolsend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteawithoutorderwithequalcolsend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4451), _1("byteawithoutorderwithequalcolsend"), _2(1), _3(true), _4(false), _5(byteawithoutorderwithequalcolsend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteawithoutorderwithequalcolsend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "byteawithoutorderwithequalcoltypmodin", 1, - AddBuiltinFunc(_0(4449), _1("byteawithoutorderwithequalcoltypmodin"), _2(1), _3(true), _4(false), _5(varchartypmodin), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1263), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteawithoutorderwithequalcoltypmodin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4449), _1("byteawithoutorderwithequalcoltypmodin"), _2(1), _3(true), _4(false), _5(varchartypmodin), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1263), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteawithoutorderwithequalcoltypmodin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "byteawithoutorderwithequalcoltypmodout", 1, - AddBuiltinFunc(_0(4450), _1("byteawithoutorderwithequalcoltypmodout"), _2(1), _3(true), _4(false), _5(varchartypmodout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteawithoutorderwithequalcoltypmodout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4450), _1("byteawithoutorderwithequalcoltypmodout"), _2(1), _3(true), _4(false), _5(varchartypmodout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteawithoutorderwithequalcoltypmodout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "calculate_quantile_of", 1, - AddBuiltinFunc(_0(9987), _1("calculate_quantile_of"), _2(1), _3(false), _4(false), _5(calculate_quantile_of), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4406), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("calculate_quantile_of"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(9987), _1("calculate_quantile_of"), _2(1), _3(false), _4(false), _5(calculate_quantile_of), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4406), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("calculate_quantile_of"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "calculate_value_at", 1, - AddBuiltinFunc(_0(9985), _1("calculate_value_at"), _2(1), _3(false), _4(false), _5(calculate_value_at), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4406), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("calculate_value_at"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(9985), _1("calculate_value_at"), _2(1), _3(false), _4(false), _5(calculate_value_at), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4406), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("calculate_value_at"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "capture_view_to_json", 1, - AddBuiltinFunc(_0(5719), _1("capture_view_to_json"), _2(3), _3(false), _4(false), _5(capture_view_to_json), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 25, 23), _21(NULL), _22(2, 'i', 'i'), _23(2, "view_name", "is_all_db"), _24(NULL), _25("capture_view_to_json"), _26(NULL), _27(NULL), _28(NULL), _29(2, 1, 2), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5719), _1("capture_view_to_json"), _2(3), _3(false), _4(false), _5(capture_view_to_json), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 25, 23), _21(NULL), _22(2, 'i', 'i'), _23(2, "view_name", "is_all_db"), _24(NULL), _25("capture_view_to_json"), _26(NULL), _27(NULL), _28(NULL), _29(2, 1, 2), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cash_cmp", 1, - AddBuiltinFunc(_0(377), _1("cash_cmp"), _2(2), _3(true), _4(false), _5(cash_cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 790, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(377), _1("cash_cmp"), _2(2), _3(true), _4(false), _5(cash_cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 790, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cash_div_cash", 1, - AddBuiltinFunc(_0(3822), _1("cash_div_cash"), _2(2), _3(true), _4(false), _5(cash_div_cash), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 790, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_div_cash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3822), _1("cash_div_cash"), _2(2), _3(true), _4(false), _5(cash_div_cash), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 790, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_div_cash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cash_div_flt4", 1, - AddBuiltinFunc(_0(847), _1("cash_div_flt4"), _2(2), _3(true), _4(false), _5(cash_div_flt4), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 790, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_div_flt4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(847), _1("cash_div_flt4"), _2(2), _3(true), _4(false), _5(cash_div_flt4), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 790, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_div_flt4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cash_div_flt8", 1, - AddBuiltinFunc(_0(897), _1("cash_div_flt8"), _2(2), _3(true), _4(false), _5(cash_div_flt8), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 790, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_div_flt8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(897), _1("cash_div_flt8"), _2(2), _3(true), _4(false), _5(cash_div_flt8), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 790, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_div_flt8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cash_div_int1", 1, - AddBuiltinFunc(_0(3351), _1("cash_div_int1"), _2(2), _3(true), _4(false), _5(cash_div_int1), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 790, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_div_int1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3351), _1("cash_div_int1"), _2(2), _3(true), _4(false), _5(cash_div_int1), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 790, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_div_int1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cash_div_int2", 1, - AddBuiltinFunc(_0(867), _1("cash_div_int2"), _2(2), _3(true), _4(false), _5(cash_div_int2), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 790, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_div_int2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(867), _1("cash_div_int2"), _2(2), _3(true), _4(false), _5(cash_div_int2), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 790, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_div_int2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cash_div_int4", 1, - AddBuiltinFunc(_0(865), _1("cash_div_int4"), _2(2), _3(true), _4(false), _5(cash_div_int4), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 790, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_div_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(865), _1("cash_div_int4"), _2(2), _3(true), _4(false), _5(cash_div_int4), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 790, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_div_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cash_div_int8", 1, - AddBuiltinFunc(_0(3345), _1("cash_div_int8"), _2(2), _3(true), _4(false), _5(cash_div_int8), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 790, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_div_int8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3345), _1("cash_div_int8"), _2(2), _3(true), _4(false), _5(cash_div_int8), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 790, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_div_int8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cash_eq", 1, - AddBuiltinFunc(_0(888), _1("cash_eq"), _2(2), _3(true), _4(false), _5(cash_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 790, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(888), _1("cash_eq"), _2(2), _3(true), _4(false), _5(cash_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 790, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cash_ge", 1, - AddBuiltinFunc(_0(893), _1("cash_ge"), _2(2), _3(true), _4(false), _5(cash_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 790, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(893), _1("cash_ge"), _2(2), _3(true), _4(false), _5(cash_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 790, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cash_gt", 1, - AddBuiltinFunc(_0(892), _1("cash_gt"), _2(2), _3(true), _4(false), _5(cash_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 790, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(892), _1("cash_gt"), _2(2), _3(true), _4(false), _5(cash_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 790, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cash_in", 1, - AddBuiltinFunc(_0(CASHINFUNCOID), _1("cash_in"), _2(1), _3(true), _4(false), _5(cash_in), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(CASHINFUNCOID), _1("cash_in"), _2(1), _3(true), _4(false), _5(cash_in), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cash_le", 1, - AddBuiltinFunc(_0(891), _1("cash_le"), _2(2), _3(true), _4(false), _5(cash_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 790, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(891), _1("cash_le"), _2(2), _3(true), _4(false), _5(cash_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 790, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cash_lt", 1, - AddBuiltinFunc(_0(890), _1("cash_lt"), _2(2), _3(true), _4(false), _5(cash_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 790, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(890), _1("cash_lt"), _2(2), _3(true), _4(false), _5(cash_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 790, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cash_mi", 1, - AddBuiltinFunc(_0(895), _1("cash_mi"), _2(2), _3(true), _4(false), _5(cash_mi), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 790, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_mi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(895), _1("cash_mi"), _2(2), _3(true), _4(false), _5(cash_mi), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 790, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_mi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cash_mul_flt4", 1, - AddBuiltinFunc(_0(846), _1("cash_mul_flt4"), _2(2), _3(true), _4(false), _5(cash_mul_flt4), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 790, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_mul_flt4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(846), _1("cash_mul_flt4"), _2(2), _3(true), _4(false), _5(cash_mul_flt4), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 790, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_mul_flt4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cash_mul_flt8", 1, - AddBuiltinFunc(_0(896), _1("cash_mul_flt8"), _2(2), _3(true), _4(false), _5(cash_mul_flt8), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 790, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_mul_flt8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(896), _1("cash_mul_flt8"), _2(2), _3(true), _4(false), _5(cash_mul_flt8), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 790, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_mul_flt8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cash_mul_int1", 1, - AddBuiltinFunc(_0(3350), _1("cash_mul_int1"), _2(2), _3(true), _4(false), _5(cash_mul_int1), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 790, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_mul_int1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3350), _1("cash_mul_int1"), _2(2), _3(true), _4(false), _5(cash_mul_int1), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 790, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_mul_int1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cash_mul_int2", 1, - AddBuiltinFunc(_0(866), _1("cash_mul_int2"), _2(2), _3(true), _4(false), _5(cash_mul_int2), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 790, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_mul_int2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(866), _1("cash_mul_int2"), _2(2), _3(true), _4(false), _5(cash_mul_int2), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 790, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_mul_int2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cash_mul_int4", 1, - AddBuiltinFunc(_0(864), _1("cash_mul_int4"), _2(2), _3(true), _4(false), _5(cash_mul_int4), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 790, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_mul_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(864), _1("cash_mul_int4"), _2(2), _3(true), _4(false), _5(cash_mul_int4), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 790, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_mul_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cash_mul_int8", 1, - AddBuiltinFunc(_0(3344), _1("cash_mul_int8"), _2(2), _3(true), _4(false), _5(cash_mul_int8), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 790, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_mul_int8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3344), _1("cash_mul_int8"), _2(2), _3(true), _4(false), _5(cash_mul_int8), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 790, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_mul_int8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cash_ne", 1, - AddBuiltinFunc(_0(889), _1("cash_ne"), _2(2), _3(true), _4(false), _5(cash_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 790, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(889), _1("cash_ne"), _2(2), _3(true), _4(false), _5(cash_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 790, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cash_out", 1, - AddBuiltinFunc(_0(CASHOUTFUNCOID), _1("cash_out"), _2(1), _3(true), _4(false), _5(cash_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(CASHOUTFUNCOID), _1("cash_out"), _2(1), _3(true), _4(false), _5(cash_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cash_pl", 1, - AddBuiltinFunc(_0(894), _1("cash_pl"), _2(2), _3(true), _4(false), _5(cash_pl), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 790, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_pl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(894), _1("cash_pl"), _2(2), _3(true), _4(false), _5(cash_pl), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 790, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_pl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cash_recv", 1, - AddBuiltinFunc(_0(2492), _1("cash_recv"), _2(1), _3(true), _4(false), _5(cash_recv), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2492), _1("cash_recv"), _2(1), _3(true), _4(false), _5(cash_recv), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cash_send", 1, - AddBuiltinFunc(_0(2493), _1("cash_send"), _2(1), _3(true), _4(false), _5(cash_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2493), _1("cash_send"), _2(1), _3(true), _4(false), _5(cash_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cash_words", 1, - AddBuiltinFunc(_0(935), _1("cash_words"), _2(1), _3(true), _4(false), _5(cash_words), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_words"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(935), _1("cash_words"), _2(1), _3(true), _4(false), _5(cash_words), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_words"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("output money amount as words"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cashlarger", 1, - AddBuiltinFunc(_0(898), _1("cashlarger"), _2(2), _3(true), _4(false), _5(cashlarger), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 790, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cashlarger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(898), _1("cashlarger"), _2(2), _3(true), _4(false), _5(cashlarger), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 790, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cashlarger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("larger of two"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cashsmaller", 1, - AddBuiltinFunc(_0(899), _1("cashsmaller"), _2(2), _3(true), _4(false), _5(cashsmaller), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 790, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cashsmaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(899), _1("cashsmaller"), _2(2), _3(true), _4(false), _5(cashsmaller), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 790, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cashsmaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("smaller of two"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cbrt", 1, - AddBuiltinFunc(_0(1345), _1("cbrt"), _2(1), _3(true), _4(false), _5(dcbrt), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dcbrt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1345), _1("cbrt"), _2(1), _3(true), _4(false), _5(dcbrt), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dcbrt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("cube root"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cbtreebuild", 1, - AddBuiltinFunc(_0(4240), _1("cbtreebuild"), _2(3), _3(true), _4(false), _5(cbtreebuild), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cbtreebuild"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4240), _1("cbtreebuild"), _2(3), _3(true), _4(false), _5(cbtreebuild), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cbtreebuild"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cbtreecanreturn", 1, - AddBuiltinFunc(_0(4245), _1("cbtreecanreturn"), _2(1), _3(true), _4(false), _5(cbtreecanreturn), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cbtreecanreturn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4245), _1("cbtreecanreturn"), _2(1), _3(true), _4(false), _5(cbtreecanreturn), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cbtreecanreturn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cbtreecostestimate", 1, - AddBuiltinFunc(_0(4243), _1("cbtreecostestimate"), _2(7), _3(true), _4(false), _5(cbtreecostestimate), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(7, 2281, 2281, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cbtreecostestimate"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4243), _1("cbtreecostestimate"), _2(7), _3(true), _4(false), _5(cbtreecostestimate), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(7, 2281, 2281, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cbtreecostestimate"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cbtreegetbitmap", 1, - AddBuiltinFunc(_0(4246), _1("cbtreegetbitmap"), _2(2), _3(true), _4(false), _5(cbtreegetbitmap), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cbtreegetbitmap"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4246), _1("cbtreegetbitmap"), _2(2), _3(true), _4(false), _5(cbtreegetbitmap), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cbtreegetbitmap"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cbtreegettuple", 1, - AddBuiltinFunc(_0(4242), _1("cbtreegettuple"), _2(2), _3(true), _4(false), _5(cbtreegettuple), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cbtreegettuple"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4242), _1("cbtreegettuple"), _2(2), _3(true), _4(false), _5(cbtreegettuple), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cbtreegettuple"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cbtreeoptions", 1, - AddBuiltinFunc(_0(4241), _1("cbtreeoptions"), _2(2), _3(true), _4(false), _5(cbtreeoptions), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1009, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cbtreeoptions"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4241), _1("cbtreeoptions"), _2(2), _3(true), _4(false), _5(cbtreeoptions), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1009, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cbtreeoptions"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ceil", 2, - AddBuiltinFunc(_0(1711), _1("ceil"), _2(1), _3(true), _4(false), _5(numeric_ceil), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_ceil"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2308), _1("ceil"), _2(1), _3(true), _4(false), _5(dceil), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dceil"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1711), _1("ceil"), _2(1), _3(true), _4(false), _5(numeric_ceil), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_ceil"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("nearest integer >= value"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2308), _1("ceil"), _2(1), _3(true), _4(false), _5(dceil), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dceil"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("nearest integer >= value"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ceiling", 2, - AddBuiltinFunc(_0(2167), _1("ceiling"), _2(1), _3(true), _4(false), _5(numeric_ceil), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_ceil"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2320), _1("ceiling"), _2(1), _3(true), _4(false), _5(dceil), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dceil"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2167), _1("ceiling"), _2(1), _3(true), _4(false), _5(numeric_ceil), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_ceil"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("nearest integer >= value"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2320), _1("ceiling"), _2(1), _3(true), _4(false), _5(dceil), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dceil"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("nearest integer >= value"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "center", 2, - AddBuiltinFunc(_0(1542), _1("center"), _2(1), _3(true), _4(false), _5(box_center), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_center"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1543), _1("center"), _2(1), _3(true), _4(false), _5(circle_center), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_center"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1542), _1("center"), _2(1), _3(true), _4(false), _5(box_center), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_center"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("center of"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1543), _1("center"), _2(1), _3(true), _4(false), _5(circle_center), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_center"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("center of"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cginbuild", 1, - AddBuiltinFunc(_0(4400), _1("cginbuild"), _2(3), _3(true), _4(false), _5(cginbuild), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cginbuild"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4400), _1("cginbuild"), _2(3), _3(true), _4(false), _5(cginbuild), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cginbuild"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cgingetbitmap", 1, - AddBuiltinFunc(_0(4401), _1("cgingetbitmap"), _2(2), _3(true), _4(false), _5(cgingetbitmap), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cgingetbitmap"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4401), _1("cgingetbitmap"), _2(2), _3(true), _4(false), _5(cgingetbitmap), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cgingetbitmap"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "char", 2, - AddBuiltinFunc(_0(78), _1("char"), _2(1), _3(true), _4(false), _5(i4tochar), _6(18), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("i4tochar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(944), _1("char"), _2(1), _3(true), _4(false), _5(text_char), _6(18), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_char"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(78), _1("char"), _2(1), _3(true), _4(false), _5(i4tochar), _6(18), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("i4tochar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(944), _1("char"), _2(1), _3(true), _4(false), _5(text_char), _6(18), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_char"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert text to char"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "char_length", 2, - AddBuiltinFunc(_0(1372), _1("char_length"), _2(1), _3(true), _4(false), _5(bpcharlen), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpcharlen"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(CHARLENFUNCOID), _1("char_length"), _2(1), _3(true), _4(false), _5(textlen), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textlen"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1372), _1("char_length"), _2(1), _3(true), _4(false), _5(bpcharlen), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpcharlen"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("character length"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(CHARLENFUNCOID), _1("char_length"), _2(1), _3(true), _4(false), _5(textlen), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textlen"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("length"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "character_length", 2, - AddBuiltinFunc(_0(1367), _1("character_length"), _2(1), _3(true), _4(false), _5(bpcharlen), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpcharlen"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1369), _1("character_length"), _2(1), _3(true), _4(false), _5(textlen), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textlen"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1367), _1("character_length"), _2(1), _3(true), _4(false), _5(bpcharlen), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpcharlen"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("character length"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1369), _1("character_length"), _2(1), _3(true), _4(false), _5(textlen), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textlen"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("length"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "chareq", 1, - AddBuiltinFunc(_0(61), _1("chareq"), _2(2), _3(true), _4(false), _5(chareq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 18, 18), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("chareq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(61), _1("chareq"), _2(2), _3(true), _4(false), _5(chareq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 18, 18), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("chareq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "charge", 1, - AddBuiltinFunc(_0(74), _1("charge"), _2(2), _3(true), _4(false), _5(charge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 18, 18), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("charge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(74), _1("charge"), _2(2), _3(true), _4(false), _5(charge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 18, 18), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("charge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "chargt", 1, - AddBuiltinFunc(_0(73), _1("chargt"), _2(2), _3(true), _4(false), _5(chargt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 18, 18), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("chargt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(73), _1("chargt"), _2(2), _3(true), _4(false), _5(chargt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 18, 18), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("chargt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "charin", 1, - AddBuiltinFunc(_0(1245), _1("charin"), _2(1), _3(true), _4(false), _5(charin), _6(18), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("charin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1245), _1("charin"), _2(1), _3(true), _4(false), _5(charin), _6(18), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("charin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "charle", 1, - AddBuiltinFunc(_0(72), _1("charle"), _2(2), _3(true), _4(false), _5(charle), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 18, 18), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("charle"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(72), _1("charle"), _2(2), _3(true), _4(false), _5(charle), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 18, 18), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("charle"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "charlt", 1, - AddBuiltinFunc(_0(1246), _1("charlt"), _2(2), _3(true), _4(false), _5(charlt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 18, 18), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("charlt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1246), _1("charlt"), _2(2), _3(true), _4(false), _5(charlt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 18, 18), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("charlt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "charne", 1, - AddBuiltinFunc(_0(70), _1("charne"), _2(2), _3(true), _4(false), _5(charne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 18, 18), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("charne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(70), _1("charne"), _2(2), _3(true), _4(false), _5(charne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 18, 18), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("charne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "charout", 1, - AddBuiltinFunc(_0(33), _1("charout"), _2(1), _3(true), _4(false), _5(charout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 18), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("charout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(33), _1("charout"), _2(1), _3(true), _4(false), _5(charout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 18), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("charout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "charrecv", 1, - AddBuiltinFunc(_0(2434), _1("charrecv"), _2(1), _3(true), _4(false), _5(charrecv), _6(18), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("charrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2434), _1("charrecv"), _2(1), _3(true), _4(false), _5(charrecv), _6(18), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("charrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "charsend", 1, - AddBuiltinFunc(_0(2435), _1("charsend"), _2(1), _3(true), _4(false), _5(charsend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 18), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("charsend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2435), _1("charsend"), _2(1), _3(true), _4(false), _5(charsend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 18), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("charsend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "check_engine_status", 1, - AddBuiltinFunc(_0(3466), _1("check_engine_status"), _2(2), _3(true), _4(false), _5(check_engine_status), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(3, 25, 25, 25), _22(3, 'i', 'i', 'o'), _23(NULL), _24(NULL), _25("check_engine_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3466), _1("check_engine_status"), _2(2), _3(true), _4(false), _5(check_engine_status), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(3, 25, 25, 25), _22(3, 'i', 'i', 'o'), _23(NULL), _24(NULL), _25("check_engine_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "checksum", 1, - AddBuiltinFunc(_0(4600), _1("checksum"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4600), _1("checksum"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "checksumtext_agg_transfn", 1, - AddBuiltinFunc(_0(4601), _1("checksumtext_agg_transfn"), _2(2), _3(false), _4(false), _5(checksumtext_agg_transfn), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("checksumtext_agg_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4601), _1("checksumtext_agg_transfn"), _2(2), _3(false), _4(false), _5(checksumtext_agg_transfn), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("checksumtext_agg_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "chr", 1, - AddBuiltinFunc(_0(1621), _1("chr"), _2(1), _3(true), _4(false), _5(chr), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("chr"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1621), _1("chr"), _2(1), _3(true), _4(false), _5(chr), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("chr"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert int4 to char"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cideq", 1, - AddBuiltinFunc(_0(69), _1("cideq"), _2(2), _3(true), _4(false), _5(cideq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 29, 29), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cideq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(69), _1("cideq"), _2(2), _3(true), _4(false), _5(cideq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 29, 29), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cideq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cidin", 1, - AddBuiltinFunc(_0(52), _1("cidin"), _2(1), _3(true), _4(false), _5(cidin), _6(29), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cidin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(52), _1("cidin"), _2(1), _3(true), _4(false), _5(cidin), _6(29), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cidin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cidout", 1, - AddBuiltinFunc(_0(53), _1("cidout"), _2(1), _3(true), _4(false), _5(cidout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 29), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cidout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(53), _1("cidout"), _2(1), _3(true), _4(false), _5(cidout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 29), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cidout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cidr", 1, - AddBuiltinFunc(_0(1715), _1("cidr"), _2(1), _3(true), _4(false), _5(inet_to_cidr), _6(650), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("inet_to_cidr"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1715), _1("cidr"), _2(1), _3(true), _4(false), _5(inet_to_cidr), _6(650), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("inet_to_cidr"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert inet to cidr"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cidr_in", 1, - AddBuiltinFunc(_0(1267), _1("cidr_in"), _2(1), _3(true), _4(false), _5(cidr_in), _6(650), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cidr_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1267), _1("cidr_in"), _2(1), _3(true), _4(false), _5(cidr_in), _6(650), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cidr_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cidr_out", 1, - AddBuiltinFunc(_0(1427), _1("cidr_out"), _2(1), _3(true), _4(false), _5(cidr_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 650), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cidr_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1427), _1("cidr_out"), _2(1), _3(true), _4(false), _5(cidr_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 650), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cidr_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cidr_recv", 1, - AddBuiltinFunc(_0(2498), _1("cidr_recv"), _2(1), _3(true), _4(false), _5(cidr_recv), _6(650), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cidr_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2498), _1("cidr_recv"), _2(1), _3(true), _4(false), _5(cidr_recv), _6(650), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cidr_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cidr_send", 1, - AddBuiltinFunc(_0(2499), _1("cidr_send"), _2(1), _3(true), _4(false), _5(cidr_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 650), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cidr_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2499), _1("cidr_send"), _2(1), _3(true), _4(false), _5(cidr_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 650), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cidr_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cidrecv", 1, - AddBuiltinFunc(_0(2442), _1("cidrecv"), _2(1), _3(true), _4(false), _5(cidrecv), _6(29), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cidrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2442), _1("cidrecv"), _2(1), _3(true), _4(false), _5(cidrecv), _6(29), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cidrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cidsend", 1, - AddBuiltinFunc(_0(2443), _1("cidsend"), _2(1), _3(true), _4(false), _5(cidsend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 29), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cidsend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2443), _1("cidsend"), _2(1), _3(true), _4(false), _5(cidsend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 29), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cidsend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "circle", 3, - AddBuiltinFunc(_0(1473), _1("circle"), _2(2), _3(true), _4(false), _5(cr_circle), _6(718), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cr_circle"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1474), _1("circle"), _2(1), _3(true), _4(false), _5(poly_circle), _6(718), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_circle"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1479), _1("circle"), _2(1), _3(true), _4(false), _5(box_circle), _6(718), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_circle"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1473), _1("circle"), _2(2), _3(true), _4(false), _5(cr_circle), _6(718), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cr_circle"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert point and radius to circle"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1474), _1("circle"), _2(1), _3(true), _4(false), _5(poly_circle), _6(718), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_circle"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert polygon to circle"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1479), _1("circle"), _2(1), _3(true), _4(false), _5(box_circle), _6(718), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_circle"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert box to circle"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "circle_above", 1, - AddBuiltinFunc(_0(1461), _1("circle_above"), _2(2), _3(true), _4(false), _5(circle_above), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 718, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_above"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1461), _1("circle_above"), _2(2), _3(true), _4(false), _5(circle_above), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 718, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_above"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "circle_add_pt", 1, - AddBuiltinFunc(_0(1146), _1("circle_add_pt"), _2(2), _3(true), _4(false), _5(circle_add_pt), _6(718), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 718, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_add_pt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1146), _1("circle_add_pt"), _2(2), _3(true), _4(false), _5(circle_add_pt), _6(718), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 718, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_add_pt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "circle_below", 1, - AddBuiltinFunc(_0(1460), _1("circle_below"), _2(2), _3(true), _4(false), _5(circle_below), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 718, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_below"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1460), _1("circle_below"), _2(2), _3(true), _4(false), _5(circle_below), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 718, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_below"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "circle_center", 1, - AddBuiltinFunc(_0(1472), _1("circle_center"), _2(1), _3(true), _4(false), _5(circle_center), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_center"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1472), _1("circle_center"), _2(1), _3(true), _4(false), _5(circle_center), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_center"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("center of"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "circle_contain", 1, - AddBuiltinFunc(_0(1453), _1("circle_contain"), _2(2), _3(true), _4(false), _5(circle_contain), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 718, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_contain"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1453), _1("circle_contain"), _2(2), _3(true), _4(false), _5(circle_contain), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 718, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_contain"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "circle_contain_pt", 1, - AddBuiltinFunc(_0(1477), _1("circle_contain_pt"), _2(2), _3(true), _4(false), _5(circle_contain_pt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 718, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_contain_pt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1477), _1("circle_contain_pt"), _2(2), _3(true), _4(false), _5(circle_contain_pt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 718, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_contain_pt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "circle_contained", 1, - AddBuiltinFunc(_0(1458), _1("circle_contained"), _2(2), _3(true), _4(false), _5(circle_contained), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 718, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_contained"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1458), _1("circle_contained"), _2(2), _3(true), _4(false), _5(circle_contained), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 718, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_contained"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "circle_distance", 1, - AddBuiltinFunc(_0(1471), _1("circle_distance"), _2(2), _3(true), _4(false), _5(circle_distance), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 718, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_distance"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1471), _1("circle_distance"), _2(2), _3(true), _4(false), _5(circle_distance), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 718, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_distance"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "circle_div_pt", 1, - AddBuiltinFunc(_0(1149), _1("circle_div_pt"), _2(2), _3(true), _4(false), _5(circle_div_pt), _6(718), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 718, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_div_pt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1149), _1("circle_div_pt"), _2(2), _3(true), _4(false), _5(circle_div_pt), _6(718), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 718, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_div_pt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "circle_eq", 1, - AddBuiltinFunc(_0(1462), _1("circle_eq"), _2(2), _3(true), _4(false), _5(circle_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 718, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1462), _1("circle_eq"), _2(2), _3(true), _4(false), _5(circle_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 718, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "circle_ge", 1, - AddBuiltinFunc(_0(1467), _1("circle_ge"), _2(2), _3(true), _4(false), _5(circle_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 718, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1467), _1("circle_ge"), _2(2), _3(true), _4(false), _5(circle_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 718, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "circle_gt", 1, - AddBuiltinFunc(_0(1465), _1("circle_gt"), _2(2), _3(true), _4(false), _5(circle_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 718, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1465), _1("circle_gt"), _2(2), _3(true), _4(false), _5(circle_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 718, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "circle_in", 1, - AddBuiltinFunc(_0(1450), _1("circle_in"), _2(1), _3(true), _4(false), _5(circle_in), _6(718), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1450), _1("circle_in"), _2(1), _3(true), _4(false), _5(circle_in), _6(718), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "circle_le", 1, - AddBuiltinFunc(_0(1466), _1("circle_le"), _2(2), _3(true), _4(false), _5(circle_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 718, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1466), _1("circle_le"), _2(2), _3(true), _4(false), _5(circle_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 718, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "circle_left", 1, - AddBuiltinFunc(_0(1454), _1("circle_left"), _2(2), _3(true), _4(false), _5(circle_left), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 718, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_left"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1454), _1("circle_left"), _2(2), _3(true), _4(false), _5(circle_left), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 718, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_left"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "circle_lt", 1, - AddBuiltinFunc(_0(1464), _1("circle_lt"), _2(2), _3(true), _4(false), _5(circle_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 718, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1464), _1("circle_lt"), _2(2), _3(true), _4(false), _5(circle_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 718, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "circle_mul_pt", 1, - AddBuiltinFunc(_0(1148), _1("circle_mul_pt"), _2(2), _3(true), _4(false), _5(circle_mul_pt), _6(718), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 718, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_mul_pt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1148), _1("circle_mul_pt"), _2(2), _3(true), _4(false), _5(circle_mul_pt), _6(718), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 718, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_mul_pt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "circle_ne", 1, - AddBuiltinFunc(_0(1463), _1("circle_ne"), _2(2), _3(true), _4(false), _5(circle_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 718, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1463), _1("circle_ne"), _2(2), _3(true), _4(false), _5(circle_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 718, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "circle_out", 1, - AddBuiltinFunc(_0(1451), _1("circle_out"), _2(1), _3(true), _4(false), _5(circle_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1451), _1("circle_out"), _2(1), _3(true), _4(false), _5(circle_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "circle_overabove", 1, - AddBuiltinFunc(_0(2588), _1("circle_overabove"), _2(2), _3(true), _4(false), _5(circle_overabove), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 718, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_overabove"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2588), _1("circle_overabove"), _2(2), _3(true), _4(false), _5(circle_overabove), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 718, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_overabove"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "circle_overbelow", 1, - AddBuiltinFunc(_0(2587), _1("circle_overbelow"), _2(2), _3(true), _4(false), _5(circle_overbelow), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 718, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_overbelow"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2587), _1("circle_overbelow"), _2(2), _3(true), _4(false), _5(circle_overbelow), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 718, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_overbelow"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "circle_overlap", 1, - AddBuiltinFunc(_0(1459), _1("circle_overlap"), _2(2), _3(true), _4(false), _5(circle_overlap), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 718, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_overlap"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1459), _1("circle_overlap"), _2(2), _3(true), _4(false), _5(circle_overlap), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 718, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_overlap"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "circle_overleft", 1, - AddBuiltinFunc(_0(1455), _1("circle_overleft"), _2(2), _3(true), _4(false), _5(circle_overleft), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 718, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_overleft"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1455), _1("circle_overleft"), _2(2), _3(true), _4(false), _5(circle_overleft), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 718, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_overleft"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "circle_overright", 1, - AddBuiltinFunc(_0(1456), _1("circle_overright"), _2(2), _3(true), _4(false), _5(circle_overright), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 718, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_overright"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1456), _1("circle_overright"), _2(2), _3(true), _4(false), _5(circle_overright), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 718, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_overright"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "circle_recv", 1, - AddBuiltinFunc(_0(2490), _1("circle_recv"), _2(1), _3(true), _4(false), _5(circle_recv), _6(718), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2490), _1("circle_recv"), _2(1), _3(true), _4(false), _5(circle_recv), _6(718), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "circle_right", 1, - AddBuiltinFunc(_0(1457), _1("circle_right"), _2(2), _3(true), _4(false), _5(circle_right), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 718, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_right"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1457), _1("circle_right"), _2(2), _3(true), _4(false), _5(circle_right), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 718, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_right"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "circle_same", 1, - AddBuiltinFunc(_0(1452), _1("circle_same"), _2(2), _3(true), _4(false), _5(circle_same), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 718, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_same"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1452), _1("circle_same"), _2(2), _3(true), _4(false), _5(circle_same), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 718, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_same"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "circle_send", 1, - AddBuiltinFunc(_0(2491), _1("circle_send"), _2(1), _3(true), _4(false), _5(circle_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2491), _1("circle_send"), _2(1), _3(true), _4(false), _5(circle_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "circle_sub_pt", 1, - AddBuiltinFunc(_0(1147), _1("circle_sub_pt"), _2(2), _3(true), _4(false), _5(circle_sub_pt), _6(718), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 718, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_sub_pt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1147), _1("circle_sub_pt"), _2(2), _3(true), _4(false), _5(circle_sub_pt), _6(718), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 718, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_sub_pt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "clean", 1, - AddBuiltinFunc(_0(7804), _1("clean"), _2(0), _3(true), _4(false), _5(clean), _6(16), _7(PG_SQLADVISOR_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("clean"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(7804), _1("clean"), _2(0), _3(true), _4(false), _5(clean), _6(16), _7(PG_SQLADVISOR_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("clean"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "clean_workload", 1, - AddBuiltinFunc(_0(7806), _1("clean_workload"), _2(0), _3(true), _4(false), _5(clean_workload), _6(16), _7(PG_SQLADVISOR_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("clean_workload"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(7806), _1("clean_workload"), _2(0), _3(true), _4(false), _5(clean_workload), _6(16), _7(PG_SQLADVISOR_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("clean_workload"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "clock_timestamp", 1, - AddBuiltinFunc(_0(2649), _1("clock_timestamp"), _2(0), _3(true), _4(false), _5(clock_timestamp), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("clock_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2649), _1("clock_timestamp"), _2(0), _3(true), _4(false), _5(clock_timestamp), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("clock_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("current clock time"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "close_lb", 1, - AddBuiltinFunc(_0(963), _1("close_lb"), _2(2), _3(true), _4(false), _5(close_lb), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 628, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("close_lb"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(963), _1("close_lb"), _2(2), _3(true), _4(false), _5(close_lb), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 628, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("close_lb"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "close_ls", 1, - AddBuiltinFunc(_0(1488), _1("close_ls"), _2(2), _3(true), _4(false), _5(close_ls), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 628, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("close_ls"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1488), _1("close_ls"), _2(2), _3(true), _4(false), _5(close_ls), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 628, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("close_ls"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "close_lseg", 1, - AddBuiltinFunc(_0(1489), _1("close_lseg"), _2(2), _3(true), _4(false), _5(close_lseg), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 601, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("close_lseg"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1489), _1("close_lseg"), _2(2), _3(true), _4(false), _5(close_lseg), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 601, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("close_lseg"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "close_pb", 1, - AddBuiltinFunc(_0(367), _1("close_pb"), _2(2), _3(true), _4(false), _5(close_pb), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("close_pb"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(367), _1("close_pb"), _2(2), _3(true), _4(false), _5(close_pb), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("close_pb"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "close_pl", 1, - AddBuiltinFunc(_0(961), _1("close_pl"), _2(2), _3(true), _4(false), _5(close_pl), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 628), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("close_pl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(961), _1("close_pl"), _2(2), _3(true), _4(false), _5(close_pl), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 628), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("close_pl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "close_ps", 1, - AddBuiltinFunc(_0(366), _1("close_ps"), _2(2), _3(true), _4(false), _5(close_ps), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("close_ps"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(366), _1("close_ps"), _2(2), _3(true), _4(false), _5(close_ps), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("close_ps"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "close_sb", 1, - AddBuiltinFunc(_0(368), _1("close_sb"), _2(2), _3(true), _4(false), _5(close_sb), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 601, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("close_sb"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(368), _1("close_sb"), _2(2), _3(true), _4(false), _5(close_sb), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 601, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("close_sb"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "close_sl", 1, - AddBuiltinFunc(_0(962), _1("close_sl"), _2(2), _3(true), _4(false), _5(close_sl), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 601, 628), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("close_sl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(962), _1("close_sl"), _2(2), _3(true), _4(false), _5(close_sl), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 601, 628), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("close_sl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "col_description", 1, - AddBuiltinFunc(_0(1216), _1("col_description"), _2(2), _3(true), _4(false), _5(NULL), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(100), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select description from pg_catalog.pg_description where objoid = $1 and classoid = 'pg_catalog.pg_class'::pg_catalog.regclass and objsubid = $2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1216), _1("col_description"), _2(2), _3(true), _4(false), _5(NULL), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(100), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select description from pg_catalog.pg_description where objoid = $1 and classoid = 'pg_catalog.pg_class'::pg_catalog.regclass and objsubid = $2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("get description for table column"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "comm_client_info", 1, - AddBuiltinFunc(_0(1991), _1("comm_client_info"), _2(0), _3(true), _4(true), _5(comm_client_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(9, 25, 25, 20, 23, 20, 23, 25, 25, 23), _22(9, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(9, "node_name", "app", "tid", "lwtid", "query_id", "socket", "remote_ip", "remote_port", "logic_id"), _24(NULL), _25("comm_client_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1991), _1("comm_client_info"), _2(0), _3(true), _4(true), _5(comm_client_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(9, 25, 25, 20, 23, 20, 23, 25, 25, 23), _22(9, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(9, "node_name", "app", "tid", "lwtid", "query_id", "socket", "remote_ip", "remote_port", "logic_id"), _24(NULL), _25("comm_client_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "comm_check_connection_status", 1, - AddBuiltinFunc(_0(1982), _1("comm_check_connection_status"), _2(0), _3(true), _4(true), _5(comm_check_connection_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(5, 25, 25, 25, 23, 16), _22(5, 'o', 'o', 'o', 'o', 'o'), _23(5, "node_name", "remote_name", "remote_host", "remote_port", "is_connected"), _24(NULL), _25("comm_check_connection_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1982), _1("comm_check_connection_status"), _2(0), _3(true), _4(true), _5(comm_check_connection_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(5, 25, 25, 25, 23, 16), _22(5, 'o', 'o', 'o', 'o', 'o'), _23(5, "node_name", "remote_name", "remote_host", "remote_port", "is_connected"), _24(NULL), _25("comm_check_connection_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "complex_array_in", 1, - AddBuiltinFunc(_0(756), _1("complex_array_in"), _2(3), _3(true), _4(false), _5(complex_array_in), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 2275, 26, 22), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("complex_array_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(756), _1("complex_array_in"), _2(3), _3(true), _4(false), _5(complex_array_in), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 2275, 26, 22), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("complex_array_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "concat", 1, - AddBuiltinFunc(_0(CONCATFUNCOID), _1("concat"), _2(1), _3(false), _4(false), _5(text_concat), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(2276), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2276), _21(1, 2276), _22(1, 'v'), _23(NULL), _24(NULL), _25("text_concat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(CONCATFUNCOID), _1("concat"), _2(1), _3(false), _4(false), _5(text_concat), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(2276), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2276), _21(1, 2276), _22(1, 'v'), _23(NULL), _24(NULL), _25("text_concat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("concatenate values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "concat_ws", 1, - AddBuiltinFunc(_0(CONCATWSFUNCOID), _1("concat_ws"), _2(2), _3(false), _4(false), _5(text_concat_ws), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(2276), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 2276), _21(2, 25, 2276), _22(2, 'i', 'v'), _23(NULL), _24(NULL), _25("text_concat_ws"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(CONCATWSFUNCOID), _1("concat_ws"), _2(2), _3(false), _4(false), _5(text_concat_ws), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(2276), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 2276), _21(2, 25, 2276), _22(2, 'i', 'v'), _23(NULL), _24(NULL), _25("text_concat_ws"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("concatenate values with separators"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "connect_by_root", 1, + AddBuiltinFunc(_0(9351), _1("connect_by_root"), _2(1), _3(true), _4(false), _5(connect_by_root), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0),_13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("connect_by_root"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "continue", 1, - AddBuiltinFunc(_0(1506), _1("continue"), _2(2), _3(true), _4(false), _5(debug_client_continue), _6(2249), _7(PG_PLDEBUG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('s'), _19(0), _20(0), _21(4, 26, 25, 23, 25), _22(4, 'o', 'o', 'o', 'o'), _23(4, "funcoid", "funcname", "lineno", "query"), _24(NULL), _25("debug_client_continue"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1506), _1("continue"), _2(2), _3(true), _4(false), _5(debug_client_continue), _6(2249), _7(PG_PLDEBUG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('s'), _19(0), _20(0), _21(4, 26, 25, 23, 25), _22(4, 'o', 'o', 'o', 'o'), _23(4, "funcoid", "funcname", "lineno", "query"), _24(NULL), _25("debug_client_continue"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "contjoinsel", 1, - AddBuiltinFunc(_0(1303), _1("contjoinsel"), _2(5), _3(true), _4(false), _5(contjoinsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(5, 2281, 26, 2281, 21, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("contjoinsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1303), _1("contjoinsel"), _2(5), _3(true), _4(false), _5(contjoinsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(5, 2281, 26, 2281, 21, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("contjoinsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("join selectivity for containment comparison operators"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "contsel", 1, - AddBuiltinFunc(_0(1302), _1("contsel"), _2(4), _3(true), _4(false), _5(contsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 2281, 26, 2281, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("contsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1302), _1("contsel"), _2(4), _3(true), _4(false), _5(contsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 2281, 26, 2281, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("contsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("restriction selectivity for containment comparison operators"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "convert", 1, - AddBuiltinFunc(_0(CONVERTFUNCOID), _1("convert"), _2(3), _3(true), _4(false), _5(pg_convert), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 17, 19, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_convert"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(CONVERTFUNCOID), _1("convert"), _2(3), _3(true), _4(false), _5(pg_convert), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 17, 19, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_convert"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("convert string with specified encoding names"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "convert_from", 1, - AddBuiltinFunc(_0(CONVERTFROMFUNCOID), _1("convert_from"), _2(2), _3(true), _4(false), _5(pg_convert_from), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 17, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_convert_from"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(CONVERTFROMFUNCOID), _1("convert_from"), _2(2), _3(true), _4(false), _5(pg_convert_from), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 17, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_convert_from"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("convert string with specified source encoding name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "convert_to", 1, - AddBuiltinFunc(_0(CONVERTTOFUNCOID), _1("convert_to"), _2(2), _3(true), _4(false), _5(pg_convert_to), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_convert_to"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(CONVERTTOFUNCOID), _1("convert_to"), _2(2), _3(true), _4(false), _5(pg_convert_to), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_convert_to"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("convert string with specified destination encoding name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "convert_to_nocase", 1, - AddBuiltinFunc(_0(3198), _1("convert_to_nocase"), _2(2), _3(true), _4(false), _5(pg_convert_to_nocase), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_convert_to_nocase"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3198), _1("convert_to_nocase"), _2(2), _3(true), _4(false), _5(pg_convert_to_nocase), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_convert_to_nocase"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "corr", 1, - AddBuiltinFunc(_0(2829), _1("corr"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2829), _1("corr"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cos", 1, - AddBuiltinFunc(_0(COSINEFUNCOID), _1("cos"), _2(1), _3(true), _4(false), _5(dcos), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dcos"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(COSINEFUNCOID), _1("cos"), _2(1), _3(true), _4(false), _5(dcos), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dcos"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("cosine"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cot", 1, - AddBuiltinFunc(_0(1607), _1("cot"), _2(1), _3(true), _4(false), _5(dcot), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dcot"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1607), _1("cot"), _2(1), _3(true), _4(false), _5(dcot), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dcot"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("cotangent"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "count", 2, - AddBuiltinFunc(_0(ANYCOUNTOID), _1("count"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2276), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(COUNTOID), _1("count"), _2(0), _3(false), _4(false), _5(aggregate_dummy), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(ANYCOUNTOID), _1("count"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2276), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(COUNTOID), _1("count"), _2(0), _3(false), _4(false), _5(aggregate_dummy), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "covar_pop", 1, - AddBuiltinFunc(_0(2827), _1("covar_pop"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2827), _1("covar_pop"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "covar_samp", 1, - AddBuiltinFunc(_0(2828), _1("covar_samp"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2828), _1("covar_samp"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "create_wdr_snapshot", 1, - AddBuiltinFunc(_0(5711), _1("create_wdr_snapshot"), _2(0), _3(true), _4(false), _5(create_wdr_snapshot), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("create_wdr_snapshot"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5711), _1("create_wdr_snapshot"), _2(0), _3(true), _4(false), _5(create_wdr_snapshot), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("create_wdr_snapshot"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cstore_tid_out", 1, - AddBuiltinFunc(_0(3215), _1("cstore_tid_out"), _2(1), _3(true), _4(false), _5(cstore_tid_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cstore_tid_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3215), _1("cstore_tid_out"), _2(1), _3(true), _4(false), _5(cstore_tid_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cstore_tid_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cstring_in", 1, - AddBuiltinFunc(_0(2292), _1("cstring_in"), _2(1), _3(true), _4(false), _5(cstring_in), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cstring_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2292), _1("cstring_in"), _2(1), _3(true), _4(false), _5(cstring_in), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cstring_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cstring_out", 1, - AddBuiltinFunc(_0(2293), _1("cstring_out"), _2(1), _3(true), _4(false), _5(cstring_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cstring_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2293), _1("cstring_out"), _2(1), _3(true), _4(false), _5(cstring_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cstring_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cstring_recv", 1, - AddBuiltinFunc(_0(2500), _1("cstring_recv"), _2(1), _3(true), _4(false), _5(cstring_recv), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cstring_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2500), _1("cstring_recv"), _2(1), _3(true), _4(false), _5(cstring_recv), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cstring_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cstring_send", 1, - AddBuiltinFunc(_0(2501), _1("cstring_send"), _2(1), _3(true), _4(false), _5(cstring_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cstring_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2501), _1("cstring_send"), _2(1), _3(true), _4(false), _5(cstring_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cstring_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cume_dist", 1, - AddBuiltinFunc(_0(3104), _1("cume_dist"), _2(0), _3(false), _4(false), _5(window_cume_dist), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(true), _16(false), _17(false), _18('i'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("window_cume_dist"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3104), _1("cume_dist"), _2(0), _3(false), _4(false), _5(window_cume_dist), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(true), _16(false), _17(false), _18('i'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("window_cume_dist"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("fractional row number within partition"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cupointer_bigint", 1, - AddBuiltinFunc(_0(3217), _1("cupointer_bigint"), _2(1), _3(true), _4(false), _5(cupointer_bigint), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cupointer_bigint"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3217), _1("cupointer_bigint"), _2(1), _3(true), _4(false), _5(cupointer_bigint), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cupointer_bigint"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( - "current_database", 1, - AddBuiltinFunc(_0(CURRENTDATABASEFUNCOID), _1("current_database"), _2(0), _3(true), _4(false), _5(current_database), _6(19), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("current_database"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + "current_database", 1, + AddBuiltinFunc(_0(CURRENTDATABASEFUNCOID), _1("current_database"), _2(0), _3(true), _4(false), _5(current_database), _6(19), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("current_database"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("name of the current database"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "current_query", 1, - AddBuiltinFunc(_0(817), _1("current_query"), _2(0), _3(false), _4(false), _5(current_query), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("current_query"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(817), _1("current_query"), _2(0), _3(false), _4(false), _5(current_query), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("current_query"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("get the currently executing query"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "current_schema", 1, - AddBuiltinFunc(_0(CURRENTSCHEMAFUNCOID), _1("current_schema"), _2(0), _3(true), _4(false), _5(current_schema), _6(19), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("current_schema"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(CURRENTSCHEMAFUNCOID), _1("current_schema"), _2(0), _3(true), _4(false), _5(current_schema), _6(19), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("current_schema"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("current schema name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "current_schemas", 1, - AddBuiltinFunc(_0(1403), _1("current_schemas"), _2(1), _3(true), _4(false), _5(current_schemas), _6(1003), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("current_schemas"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1403), _1("current_schemas"), _2(1), _3(true), _4(false), _5(current_schemas), _6(1003), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("current_schemas"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("current schema search list"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "current_setting", 1, - AddBuiltinFunc(_0(2077), _1("current_setting"), _2(1), _3(true), _4(false), _5(show_config_by_name), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("show_config_by_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2077), _1("current_setting"), _2(1), _3(true), _4(false), _5(show_config_by_name), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("show_config_by_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("SHOW X as a function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "current_user", 1, - AddBuiltinFunc(_0(CURRENTUSERFUNCOID), _1("current_user"), _2(0), _3(true), _4(false), _5(current_user), _6(19), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("current_user"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(CURRENTUSERFUNCOID), _1("current_user"), _2(0), _3(true), _4(false), _5(current_user), _6(19), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("current_user"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("current user name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "currtid", 1, - AddBuiltinFunc(_0(1293), _1("currtid"), _2(2), _3(true), _4(false), _5(currtid_byreloid), _6(27), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 26, 27), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("currtid_byreloid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1293), _1("currtid"), _2(2), _3(true), _4(false), _5(currtid_byreloid), _6(27), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 26, 27), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("currtid_byreloid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("latest tid of a tuple"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "currtid2", 1, - AddBuiltinFunc(_0(1294), _1("currtid2"), _2(2), _3(true), _4(false), _5(currtid_byrelname), _6(27), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 25, 27), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("currtid_byrelname"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1294), _1("currtid2"), _2(2), _3(true), _4(false), _5(currtid_byrelname), _6(27), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 25, 27), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("currtid_byrelname"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("latest tid of a tuple"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "currval", 1, - AddBuiltinFunc(_0(CURRVALFUNCOID), _1("currval"), _2(1), _3(true), _4(false), _5(currval_oid), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2205), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("currval_oid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(CURRVALFUNCOID), _1("currval"), _2(1), _3(true), _4(false), _5(currval_oid), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2205), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("currval_oid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("sequence current value"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cursor_to_xml", 1, - AddBuiltinFunc(_0(2925), _1("cursor_to_xml"), _2(5), _3(false), _4(false), _5(cursor_to_xml), _6(142), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(100), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(5, 1790, 23, 16, 16, 25), _21(NULL), _22(NULL), _23(5, "cursor", "count", "nulls", "tableforest", "targetns"), _24(NULL), _25("cursor_to_xml"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2925), _1("cursor_to_xml"), _2(5), _3(false), _4(false), _5(cursor_to_xml), _6(142), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(100), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(5, 1790, 23, 16, 16, 25), _21(NULL), _22(NULL), _23(5, "cursor", "count", "nulls", "tableforest", "targetns"), _24(NULL), _25("cursor_to_xml"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("map rows from cursor to XML"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "cursor_to_xmlschema", 1, - AddBuiltinFunc(_0(2928), _1("cursor_to_xmlschema"), _2(4), _3(false), _4(false), _5(cursor_to_xmlschema), _6(142), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(100), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 1790, 16, 16, 25), _21(NULL), _22(NULL), _23(4, "cursor", "nulls", "tableforest", "targetns"), _24(NULL), _25("cursor_to_xmlschema"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2928), _1("cursor_to_xmlschema"), _2(4), _3(false), _4(false), _5(cursor_to_xmlschema), _6(142), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(100), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 1790, 16, 16, 25), _21(NULL), _22(NULL), _23(4, "cursor", "nulls", "tableforest", "targetns"), _24(NULL), _25("cursor_to_xmlschema"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("map cursor structure to XML Schema"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "database_to_xml", 1, - AddBuiltinFunc(_0(2936), _1("database_to_xml"), _2(3), _3(true), _4(false), _5(database_to_xml), _6(142), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(100), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 16, 16, 25), _21(NULL), _22(NULL), _23(3, "nulls", "tableforest", "targetns"), _24(NULL), _25("database_to_xml"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2936), _1("database_to_xml"), _2(3), _3(true), _4(false), _5(database_to_xml), _6(142), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(100), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 16, 16, 25), _21(NULL), _22(NULL), _23(3, "nulls", "tableforest", "targetns"), _24(NULL), _25("database_to_xml"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("map database contents to XML"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "database_to_xml_and_xmlschema", 1, - AddBuiltinFunc(_0(2938), _1("database_to_xml_and_xmlschema"), _2(3), _3(true), _4(false), _5(database_to_xml_and_xmlschema), _6(142), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(100), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 16, 16, 25), _21(NULL), _22(NULL), _23(3, "nulls", "tableforest", "targetns"), _24(NULL), _25("database_to_xml_and_xmlschema"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2938), _1("database_to_xml_and_xmlschema"), _2(3), _3(true), _4(false), _5(database_to_xml_and_xmlschema), _6(142), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(100), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 16, 16, 25), _21(NULL), _22(NULL), _23(3, "nulls", "tableforest", "targetns"), _24(NULL), _25("database_to_xml_and_xmlschema"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("map database contents and structure to XML and XML Schema"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "database_to_xmlschema", 1, - AddBuiltinFunc(_0(2937), _1("database_to_xmlschema"), _2(3), _3(true), _4(false), _5(database_to_xmlschema), _6(142), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(100), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 16, 16, 25), _21(NULL), _22(NULL), _23(3, "nulls", "tableforest", "targetns"), _24(NULL), _25("database_to_xmlschema"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2937), _1("database_to_xmlschema"), _2(3), _3(true), _4(false), _5(database_to_xmlschema), _6(142), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(100), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 16, 16, 25), _21(NULL), _22(NULL), _23(3, "nulls", "tableforest", "targetns"), _24(NULL), _25("database_to_xmlschema"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("map database structure to XML Schema"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "datalength", 1, - AddBuiltinFunc(_0(8050), _1("datalength"), _2(1), _3(true), _4(false), _5(datalength), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2276), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("datalength"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(8050), _1("datalength"), _2(1), _3(true), _4(false), _5(datalength), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2276), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("datalength"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "date", 3, - AddBuiltinFunc(_0(TIMESTAMPTZ2DATEFUNCOID), _1("date"), _2(1), _3(true), _4(false), _5(timestamptz_date), _6(1082), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_date"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(ABSTIME2DATEFUNCOID), _1("date"), _2(1), _3(true), _4(false), _5(abstime_date), _6(1082), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 702), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("abstime_date"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(TIMESTAMP2DATEOID), _1("date"), _2(1), _3(true), _4(false), _5(timestamp_date), _6(1082), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_date"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TIMESTAMPTZ2DATEFUNCOID), _1("date"), _2(1), _3(true), _4(false), _5(timestamptz_date), _6(1082), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_date"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("convert timestamp with time zone to date"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(ABSTIME2DATEFUNCOID), _1("date"), _2(1), _3(true), _4(false), _5(abstime_date), _6(1082), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 702), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("abstime_date"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(TIMESTAMP2DATEOID), _1("date"), _2(1), _3(true), _4(false), _5(timestamp_date), _6(1082), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_date"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert timestamp to date"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "date_bpchar", 1, - AddBuiltinFunc(_0(4160), _1("date_bpchar"), _2(1), _3(true), _4(false), _5(date_bpchar), _6(1042), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_bpchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4160), _1("date_bpchar"), _2(1), _3(true), _4(false), _5(date_bpchar), _6(1042), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_bpchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "date_cmp", 1, - AddBuiltinFunc(_0(1092), _1("date_cmp"), _2(2), _3(true), _4(false), _5(date_cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1092), _1("date_cmp"), _2(2), _3(true), _4(false), _5(date_cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "date_cmp_timestamp", 1, - AddBuiltinFunc(_0(2344), _1("date_cmp_timestamp"), _2(2), _3(true), _4(false), _5(date_cmp_timestamp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_cmp_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2344), _1("date_cmp_timestamp"), _2(2), _3(true), _4(false), _5(date_cmp_timestamp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_cmp_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "date_cmp_timestamptz", 1, - AddBuiltinFunc(_0(DATECMPTIMESTAMPTZFUNCOID), _1("date_cmp_timestamptz"), _2(2), _3(true), _4(false), _5(date_cmp_timestamptz), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1082, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_cmp_timestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(DATECMPTIMESTAMPTZFUNCOID), _1("date_cmp_timestamptz"), _2(2), _3(true), _4(false), _5(date_cmp_timestamptz), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1082, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_cmp_timestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "date_eq", 1, - AddBuiltinFunc(_0(1086), _1("date_eq"), _2(2), _3(true), _4(false), _5(date_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1082, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1086), _1("date_eq"), _2(2), _3(true), _4(false), _5(date_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1082, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "date_eq_timestamp", 1, - AddBuiltinFunc(_0(2340), _1("date_eq_timestamp"), _2(2), _3(true), _4(false), _5(date_eq_timestamp), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_eq_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2340), _1("date_eq_timestamp"), _2(2), _3(true), _4(false), _5(date_eq_timestamp), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_eq_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "date_eq_timestamptz", 1, - AddBuiltinFunc(_0(DATEEQTIMESTAMPTZFUNCOID), _1("date_eq_timestamptz"), _2(2), _3(true), _4(false), _5(date_eq_timestamptz), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1082, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_eq_timestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(DATEEQTIMESTAMPTZFUNCOID), _1("date_eq_timestamptz"), _2(2), _3(true), _4(false), _5(date_eq_timestamptz), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1082, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_eq_timestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "date_ge", 1, - AddBuiltinFunc(_0(1090), _1("date_ge"), _2(2), _3(true), _4(false), _5(date_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1082, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1090), _1("date_ge"), _2(2), _3(true), _4(false), _5(date_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1082, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "date_ge_timestamp", 1, - AddBuiltinFunc(_0(2342), _1("date_ge_timestamp"), _2(2), _3(true), _4(false), _5(date_ge_timestamp), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_ge_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2342), _1("date_ge_timestamp"), _2(2), _3(true), _4(false), _5(date_ge_timestamp), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_ge_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "date_ge_timestamptz", 1, - AddBuiltinFunc(_0(DATEGETIMESTAMPTZFUNCOID), _1("date_ge_timestamptz"), _2(2), _3(true), _4(false), _5(date_ge_timestamptz), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1082, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_ge_timestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(DATEGETIMESTAMPTZFUNCOID), _1("date_ge_timestamptz"), _2(2), _3(true), _4(false), _5(date_ge_timestamptz), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1082, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_ge_timestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "date_gt", 1, - AddBuiltinFunc(_0(1089), _1("date_gt"), _2(2), _3(true), _4(false), _5(date_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1082, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1089), _1("date_gt"), _2(2), _3(true), _4(false), _5(date_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1082, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "date_gt_timestamp", 1, - AddBuiltinFunc(_0(2341), _1("date_gt_timestamp"), _2(2), _3(true), _4(false), _5(date_gt_timestamp), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_gt_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2341), _1("date_gt_timestamp"), _2(2), _3(true), _4(false), _5(date_gt_timestamp), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_gt_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "date_gt_timestamptz", 1, - AddBuiltinFunc(_0(DATEGTTIMESTAMPTZFUNCOID), _1("date_gt_timestamptz"), _2(2), _3(true), _4(false), _5(date_gt_timestamptz), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1082, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_gt_timestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(DATEGTTIMESTAMPTZFUNCOID), _1("date_gt_timestamptz"), _2(2), _3(true), _4(false), _5(date_gt_timestamptz), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1082, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_gt_timestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "date_in", 1, - AddBuiltinFunc(_0(DATEINFUNCOID), _1("date_in"), _2(1), _3(true), _4(false), _5(date_in), _6(1082), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(DATEINFUNCOID), _1("date_in"), _2(1), _3(true), _4(false), _5(date_in), _6(1082), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "date_larger", 1, - AddBuiltinFunc(_0(1138), _1("date_larger"), _2(2), _3(true), _4(false), _5(date_larger), _6(1082), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_larger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1138), _1("date_larger"), _2(2), _3(true), _4(false), _5(date_larger), _6(1082), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_larger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "date_le", 1, - AddBuiltinFunc(_0(1088), _1("date_le"), _2(2), _3(true), _4(false), _5(date_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1082, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1088), _1("date_le"), _2(2), _3(true), _4(false), _5(date_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1082, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "date_le_timestamp", 1, - AddBuiltinFunc(_0(2339), _1("date_le_timestamp"), _2(2), _3(true), _4(false), _5(date_le_timestamp), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_le_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2339), _1("date_le_timestamp"), _2(2), _3(true), _4(false), _5(date_le_timestamp), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_le_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "date_le_timestamptz", 1, - AddBuiltinFunc(_0(DATELETIMESTAMPTZFUNCOID), _1("date_le_timestamptz"), _2(2), _3(true), _4(false), _5(date_le_timestamptz), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1082, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_le_timestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(DATELETIMESTAMPTZFUNCOID), _1("date_le_timestamptz"), _2(2), _3(true), _4(false), _5(date_le_timestamptz), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1082, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_le_timestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "date_list_agg_noarg2_transfn", 1, - AddBuiltinFunc(_0(3581), _1("date_list_agg_noarg2_transfn"), _2(2), _3(false), _4(false), _5(date_list_agg_noarg2_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_list_agg_noarg2_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3581), _1("date_list_agg_noarg2_transfn"), _2(2), _3(false), _4(false), _5(date_list_agg_noarg2_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_list_agg_noarg2_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "date_list_agg_transfn", 1, - AddBuiltinFunc(_0(3579), _1("date_list_agg_transfn"), _2(3), _3(false), _4(false), _5(date_list_agg_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 1082, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_list_agg_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3579), _1("date_list_agg_transfn"), _2(3), _3(false), _4(false), _5(date_list_agg_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 1082, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_list_agg_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "date_lt", 1, - AddBuiltinFunc(_0(1087), _1("date_lt"), _2(2), _3(true), _4(false), _5(date_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1082, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1087), _1("date_lt"), _2(2), _3(true), _4(false), _5(date_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1082, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "date_lt_timestamp", 1, - AddBuiltinFunc(_0(2338), _1("date_lt_timestamp"), _2(2), _3(true), _4(false), _5(date_lt_timestamp), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_lt_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2338), _1("date_lt_timestamp"), _2(2), _3(true), _4(false), _5(date_lt_timestamp), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_lt_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "date_lt_timestamptz", 1, - AddBuiltinFunc(_0(DATELTTIMESTAMPTZFUNCOID), _1("date_lt_timestamptz"), _2(2), _3(true), _4(false), _5(date_lt_timestamptz), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1082, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_lt_timestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(DATELTTIMESTAMPTZFUNCOID), _1("date_lt_timestamptz"), _2(2), _3(true), _4(false), _5(date_lt_timestamptz), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1082, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_lt_timestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "date_mi", 1, - AddBuiltinFunc(_0(1140), _1("date_mi"), _2(2), _3(true), _4(false), _5(date_mi), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_mi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1140), _1("date_mi"), _2(2), _3(true), _4(false), _5(date_mi), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_mi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "date_mi_interval", 1, - AddBuiltinFunc(_0(2072), _1("date_mi_interval"), _2(2), _3(true), _4(false), _5(date_mi_interval), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_mi_interval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2072), _1("date_mi_interval"), _2(2), _3(true), _4(false), _5(date_mi_interval), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_mi_interval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "date_mii", 1, - AddBuiltinFunc(_0(1142), _1("date_mii"), _2(2), _3(true), _4(false), _5(date_mii), _6(1082), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_mii"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1142), _1("date_mii"), _2(2), _3(true), _4(false), _5(date_mii), _6(1082), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_mii"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "date_ne", 1, - AddBuiltinFunc(_0(1091), _1("date_ne"), _2(2), _3(true), _4(false), _5(date_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1082, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1091), _1("date_ne"), _2(2), _3(true), _4(false), _5(date_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1082, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "date_ne_timestamp", 1, - AddBuiltinFunc(_0(2343), _1("date_ne_timestamp"), _2(2), _3(true), _4(false), _5(date_ne_timestamp), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_ne_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2343), _1("date_ne_timestamp"), _2(2), _3(true), _4(false), _5(date_ne_timestamp), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_ne_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "date_ne_timestamptz", 1, - AddBuiltinFunc(_0(DATENETIMESTAMPTZFUNCOID), _1("date_ne_timestamptz"), _2(2), _3(true), _4(false), _5(date_ne_timestamptz), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1082, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_ne_timestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(DATENETIMESTAMPTZFUNCOID), _1("date_ne_timestamptz"), _2(2), _3(true), _4(false), _5(date_ne_timestamptz), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1082, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_ne_timestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "date_out", 1, - AddBuiltinFunc(_0(DATEOUTFUNCOID), _1("date_out"), _2(1), _3(true), _4(false), _5(date_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(DATEOUTFUNCOID), _1("date_out"), _2(1), _3(true), _4(false), _5(date_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "date_part", 8, - AddBuiltinFunc(_0(TIMESTAMPTZPARTFUNCOID), _1("date_part"), _2(2), _3(true), _4(false), _5(timestamptz_part), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_part"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(INTERVALPARTFUNCOID), _1("date_part"), _2(2), _3(true), _4(false), _5(interval_part), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_part"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(TIMEZPARTFUNCOID), _1("date_part"), _2(2), _3(true), _4(false), _5(timetz_part), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetz_part"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(DATEPARTFROMABSTIMEFUNCOID), _1("date_part"), _2(2), _3(true), _4(false), _5(NULL), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 702), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.date_part($1, cast($2 as timestamp with time zone))"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(DATEPARTFROMRELTIMEFUNCOID), _1("date_part"), _2(2), _3(true), _4(false), _5(NULL), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 703), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.date_part($1, cast($2 as pg_catalog.interval))"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(DATEPARTFUNCOID), _1("date_part"), _2(2), _3(true), _4(false), _5(NULL), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.date_part($1, cast($2 as timestamp without time zone))"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(TIMEPARTFUNCOID), _1("date_part"), _2(2), _3(true), _4(false), _5(time_part), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_part"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(TIMESTAMPPARTFUNCOID), _1("date_part"), _2(2), _3(true), _4(false), _5(timestamp_part), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_part"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TIMESTAMPTZPARTFUNCOID), _1("date_part"), _2(2), _3(true), _4(false), _5(timestamptz_part), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_part"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("extract field from timestamp with time zone"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(INTERVALPARTFUNCOID), _1("date_part"), _2(2), _3(true), _4(false), _5(interval_part), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_part"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("extract field from interval"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(TIMEZPARTFUNCOID), _1("date_part"), _2(2), _3(true), _4(false), _5(timetz_part), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetz_part"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("extract field from time with time zone"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(DATEPARTFROMABSTIMEFUNCOID), _1("date_part"), _2(2), _3(true), _4(false), _5(NULL), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 702), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.date_part($1, cast($2 as timestamp with time zone))"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(DATEPARTFROMRELTIMEFUNCOID), _1("date_part"), _2(2), _3(true), _4(false), _5(NULL), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 703), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.date_part($1, cast($2 as pg_catalog.interval))"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(DATEPARTFUNCOID), _1("date_part"), _2(2), _3(true), _4(false), _5(NULL), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.date_part($1, cast($2 as timestamp without time zone))"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("extract field from date"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(TIMEPARTFUNCOID), _1("date_part"), _2(2), _3(true), _4(false), _5(time_part), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_part"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("extract field from time"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(TIMESTAMPPARTFUNCOID), _1("date_part"), _2(2), _3(true), _4(false), _5(timestamp_part), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_part"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("extract field from timestamp"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "date_pl_interval", 1, - AddBuiltinFunc(_0(2071), _1("date_pl_interval"), _2(2), _3(true), _4(false), _5(date_pl_interval), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_pl_interval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2071), _1("date_pl_interval"), _2(2), _3(true), _4(false), _5(date_pl_interval), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_pl_interval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "date_pli", 1, - AddBuiltinFunc(_0(1141), _1("date_pli"), _2(2), _3(true), _4(false), _5(date_pli), _6(1082), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_pli"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1141), _1("date_pli"), _2(2), _3(true), _4(false), _5(date_pli), _6(1082), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_pli"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "date_recv", 1, - AddBuiltinFunc(_0(2468), _1("date_recv"), _2(1), _3(true), _4(false), _5(date_recv), _6(1082), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2468), _1("date_recv"), _2(1), _3(true), _4(false), _5(date_recv), _6(1082), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "date_send", 1, - AddBuiltinFunc(_0(2469), _1("date_send"), _2(1), _3(true), _4(false), _5(date_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2469), _1("date_send"), _2(1), _3(true), _4(false), _5(date_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "date_smaller", 1, - AddBuiltinFunc(_0(1139), _1("date_smaller"), _2(2), _3(true), _4(false), _5(date_smaller), _6(1082), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_smaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1139), _1("date_smaller"), _2(2), _3(true), _4(false), _5(date_smaller), _6(1082), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_smaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "date_sortsupport", 1, - AddBuiltinFunc(_0(3136), _1("date_sortsupport"), _2(1), _3(true), _4(false), _5(date_sortsupport), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_sortsupport"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3136), _1("date_sortsupport"), _2(1), _3(true), _4(false), _5(date_sortsupport), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_sortsupport"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("sort support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "date_text", 1, - AddBuiltinFunc(_0(4159), _1("date_text"), _2(1), _3(true), _4(false), _5(date_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4159), _1("date_text"), _2(1), _3(true), _4(false), _5(date_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "date_trunc", 3, - AddBuiltinFunc(_0(TIMESTAMPTZTRUNCFUNCOID), _1("date_trunc"), _2(2), _3(true), _4(false), _5(timestamptz_trunc), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_trunc"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(INTERVALTRUNCFUNCOID), _1("date_trunc"), _2(2), _3(true), _4(false), _5(interval_trunc), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_trunc"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(TIMESTAMPTRUNCFUNCOID), _1("date_trunc"), _2(2), _3(true), _4(false), _5(timestamp_trunc), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_trunc"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TIMESTAMPTZTRUNCFUNCOID), _1("date_trunc"), _2(2), _3(true), _4(false), _5(timestamptz_trunc), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_trunc"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("truncate timestamp with time zone to specified units"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(INTERVALTRUNCFUNCOID), _1("date_trunc"), _2(2), _3(true), _4(false), _5(interval_trunc), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_trunc"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("truncate interval to specified units"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(TIMESTAMPTRUNCFUNCOID), _1("date_trunc"), _2(2), _3(true), _4(false), _5(timestamp_trunc), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_trunc"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("truncate timestamp to specified units"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "date_varchar", 1, - AddBuiltinFunc(_0(4161), _1("date_varchar"), _2(1), _3(true), _4(false), _5(date_varchar), _6(1043), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_varchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4161), _1("date_varchar"), _2(1), _3(true), _4(false), _5(date_varchar), _6(1043), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_varchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "daterange", 2, - AddBuiltinFunc(_0(3941), _1("daterange"), _2(2), _3(false), _4(false), _5(range_constructor2), _6(3912), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_constructor2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3942), _1("daterange"), _2(3), _3(false), _4(false), _5(range_constructor3), _6(3912), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 1082, 1082, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_constructor3"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3941), _1("daterange"), _2(2), _3(false), _4(false), _5(range_constructor2), _6(3912), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_constructor2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3942), _1("daterange"), _2(3), _3(false), _4(false), _5(range_constructor3), _6(3912), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 1082, 1082, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_constructor3"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "daterange_canonical", 1, - AddBuiltinFunc(_0(3915), _1("daterange_canonical"), _2(1), _3(true), _4(false), _5(daterange_canonical), _6(3912), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3912), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("daterange_canonical"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3915), _1("daterange_canonical"), _2(1), _3(true), _4(false), _5(daterange_canonical), _6(3912), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3912), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("daterange_canonical"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert a date range to canonical form"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "daterange_subdiff", 1, - AddBuiltinFunc(_0(3925), _1("daterange_subdiff"), _2(2), _3(true), _4(false), _5(daterange_subdiff), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("daterange_subdiff"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3925), _1("daterange_subdiff"), _2(2), _3(true), _4(false), _5(daterange_subdiff), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("daterange_subdiff"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "datetime_pl", 1, - AddBuiltinFunc(_0(1272), _1("datetime_pl"), _2(2), _3(true), _4(false), _5(datetime_timestamp), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("datetime_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1272), _1("datetime_pl"), _2(2), _3(true), _4(false), _5(datetime_timestamp), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("datetime_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "datetimetz_pl", 1, - AddBuiltinFunc(_0(1297), _1("datetimetz_pl"), _2(2), _3(true), _4(false), _5(datetimetz_timestamptz), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("datetimetz_timestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1297), _1("datetimetz_pl"), _2(2), _3(true), _4(false), _5(datetimetz_timestamptz), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("datetimetz_timestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "db4ai_predict_by_bool", 1, - AddBuiltinFunc(_0(DB4AI_PREDICT_BY_BOOL_OID), _1("db4ai_predict_by_bool"), _2(2), _3(false), _4(false), _5(db4ai_predict_by_bool), _6(BOOLOID), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(ANYOID), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, TEXTOID, ANYOID), _21(2, TEXTOID, ANYOID), _22(2, 'i', 'v'), _23(NULL), _24(NULL), _25("db4ai_predict_by_bool"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33("f"), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(DB4AI_PREDICT_BY_BOOL_OID), _1("db4ai_predict_by_bool"), _2(2), _3(false), _4(false), _5(db4ai_predict_by_bool), _6(BOOLOID), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(ANYOID), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, TEXTOID, ANYOID), _21(2, TEXTOID, ANYOID), _22(2, 'i', 'v'), _23(NULL), _24(NULL), _25("db4ai_predict_by_bool"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "db4ai_predict_by_float4", 1, - AddBuiltinFunc(_0(DB4AI_PREDICT_BY_FLOAT4_OID), _1("db4ai_predict_by_float4"), _2(2), _3(false), _4(false), _5(db4ai_predict_by_float4), _6(FLOAT4OID), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(ANYOID), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, TEXTOID, ANYOID), _21(2, TEXTOID, ANYOID), _22(2, 'i', 'v'), _23(NULL), _24(NULL), _25("db4ai_predict_by_float4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33("f"), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(DB4AI_PREDICT_BY_FLOAT4_OID), _1("db4ai_predict_by_float4"), _2(2), _3(false), _4(false), _5(db4ai_predict_by_float4), _6(FLOAT4OID), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(ANYOID), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, TEXTOID, ANYOID), _21(2, TEXTOID, ANYOID), _22(2, 'i', 'v'), _23(NULL), _24(NULL), _25("db4ai_predict_by_float4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "db4ai_predict_by_float8", 1, - AddBuiltinFunc(_0(DB4AI_PREDICT_BY_FLOAT8_OID), _1("db4ai_predict_by_float8"), _2(2), _3(false), _4(false), _5(db4ai_predict_by_float8), _6(FLOAT8OID), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(ANYOID), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, TEXTOID, ANYOID), _21(2, TEXTOID, ANYOID), _22(2, 'i', 'v'), _23(NULL), _24(NULL), _25("db4ai_predict_by_float8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33("f"), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(DB4AI_PREDICT_BY_FLOAT8_OID), _1("db4ai_predict_by_float8"), _2(2), _3(false), _4(false), _5(db4ai_predict_by_float8), _6(FLOAT8OID), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(ANYOID), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, TEXTOID, ANYOID), _21(2, TEXTOID, ANYOID), _22(2, 'i', 'v'), _23(NULL), _24(NULL), _25("db4ai_predict_by_float8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "db4ai_predict_by_int32", 1, - AddBuiltinFunc(_0(DB4AI_PREDICT_BY_INT32_OID), _1("db4ai_predict_by_int32"), _2(2), _3(false), _4(false), _5(db4ai_predict_by_int32), _6(INT4OID), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(ANYOID), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, TEXTOID, ANYOID), _21(2, TEXTOID, ANYOID), _22(2, 'i', 'v'), _23(NULL), _24(NULL), _25("db4ai_predict_by_int32"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33("f"), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(DB4AI_PREDICT_BY_INT32_OID), _1("db4ai_predict_by_int32"), _2(2), _3(false), _4(false), _5(db4ai_predict_by_int32), _6(INT4OID), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(ANYOID), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, TEXTOID, ANYOID), _21(2, TEXTOID, ANYOID), _22(2, 'i', 'v'), _23(NULL), _24(NULL), _25("db4ai_predict_by_int32"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "db4ai_predict_by_int64", 1, - AddBuiltinFunc(_0(DB4AI_PREDICT_BY_INT64_OID), _1("db4ai_predict_by_int64"), _2(2), _3(false), _4(false), _5(db4ai_predict_by_int64), _6(INT8OID), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(ANYOID), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, TEXTOID, ANYOID), _21(2, TEXTOID, ANYOID), _22(2, 'i', 'v'), _23(NULL), _24(NULL), _25("db4ai_predict_by_int64"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33("f"), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(DB4AI_PREDICT_BY_INT64_OID), _1("db4ai_predict_by_int64"), _2(2), _3(false), _4(false), _5(db4ai_predict_by_int64), _6(INT8OID), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(ANYOID), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, TEXTOID, ANYOID), _21(2, TEXTOID, ANYOID), _22(2, 'i', 'v'), _23(NULL), _24(NULL), _25("db4ai_predict_by_int64"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "db4ai_predict_by_numeric", 1, - AddBuiltinFunc(_0(DB4AI_PREDICT_BY_NUMERIC_OID), _1("db4ai_predict_by_numeric"), _2(2), _3(false), _4(false), _5(db4ai_predict_by_numeric), _6(NUMERICOID), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(ANYOID), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, TEXTOID, ANYOID), _21(2, TEXTOID, ANYOID), _22(2, 'i', 'v'), _23(NULL), _24(NULL), _25("db4ai_predict_by_numeric"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33("f"), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(DB4AI_PREDICT_BY_NUMERIC_OID), _1("db4ai_predict_by_numeric"), _2(2), _3(false), _4(false), _5(db4ai_predict_by_numeric), _6(NUMERICOID), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(ANYOID), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, TEXTOID, ANYOID), _21(2, TEXTOID, ANYOID), _22(2, 'i', 'v'), _23(NULL), _24(NULL), _25("db4ai_predict_by_numeric"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "db4ai_predict_by_text", 1, - AddBuiltinFunc(_0(DB4AI_PREDICT_BY_TEXT_OID), _1("db4ai_predict_by_text"), _2(2), _3(false), _4(false), _5(db4ai_predict_by_text), _6(TEXTOID), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(ANYOID), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, TEXTOID, ANYOID), _21(2, TEXTOID, ANYOID), _22(2, 'i', 'v'), _23(NULL), _24(NULL), _25("db4ai_predict_by_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33("f"), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(DB4AI_PREDICT_BY_TEXT_OID), _1("db4ai_predict_by_text"), _2(2), _3(false), _4(false), _5(db4ai_predict_by_text), _6(TEXTOID), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(ANYOID), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, TEXTOID, ANYOID), _21(2, TEXTOID, ANYOID), _22(2, 'i', 'v'), _23(NULL), _24(NULL), _25("db4ai_predict_by_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "dcbrt", 1, - AddBuiltinFunc(_0(231), _1("dcbrt"), _2(1), _3(true), _4(false), _5(dcbrt), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dcbrt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(231), _1("dcbrt"), _2(1), _3(true), _4(false), _5(dcbrt), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dcbrt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "decode", 1, - AddBuiltinFunc(_0(1947), _1("decode"), _2(2), _3(true), _4(false), _5(binary_decode), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("binary_decode"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1947), _1("decode"), _2(2), _3(true), _4(false), _5(binary_decode), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("binary_decode"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert ascii-encoded text string into bytea value"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "definer_current_user", 1, - AddBuiltinFunc(_0(3216), _1("definer_current_user"), _2(0), _3(true), _4(false), _5(pseudo_current_user), _6(19), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pseudo_current_user"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3216), _1("definer_current_user"), _2(0), _3(true), _4(false), _5(pseudo_current_user), _6(19), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pseudo_current_user"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "degrees", 1, - AddBuiltinFunc(_0(1608), _1("degrees"), _2(1), _3(true), _4(false), _5(degrees), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("degrees"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1608), _1("degrees"), _2(1), _3(true), _4(false), _5(degrees), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("degrees"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("radians to degrees"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "delete_breakpoint", 1, - AddBuiltinFunc(_0(1508), _1("delete_breakpoint"), _2(1), _3(true), _4(false), _5(debug_client_delete_breakpoint), _6(16), _7(PG_PLDEBUG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("debug_client_delete_breakpoint"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1508), _1("delete_breakpoint"), _2(1), _3(true), _4(false), _5(debug_client_delete_breakpoint), _6(16), _7(PG_PLDEBUG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("debug_client_delete_breakpoint"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "dense_rank", 1, - AddBuiltinFunc(_0(DENSERANKFUNCOID), _1("dense_rank"), _2(0), _3(false), _4(false), _5(window_dense_rank), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(true), _16(false), _17(false), _18('i'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("window_dense_rank"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(DENSERANKFUNCOID), _1("dense_rank"), _2(0), _3(false), _4(false), _5(window_dense_rank), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(true), _16(false), _17(false), _18('i'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("window_dense_rank"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("integer rank without gaps"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "dexp", 1, - AddBuiltinFunc(_0(233), _1("dexp"), _2(1), _3(true), _4(false), _5(dexp), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dexp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(233), _1("dexp"), _2(1), _3(true), _4(false), _5(dexp), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dexp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("natural exponential (e^x)"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "diagonal", 1, - AddBuiltinFunc(_0(981), _1("diagonal"), _2(1), _3(true), _4(false), _5(box_diagonal), _6(601), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_diagonal"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(981), _1("diagonal"), _2(1), _3(true), _4(false), _5(box_diagonal), _6(601), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_diagonal"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("box diagonal"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "diameter", 1, - AddBuiltinFunc(_0(1469), _1("diameter"), _2(1), _3(true), _4(false), _5(circle_diameter), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_diameter"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1469), _1("diameter"), _2(1), _3(true), _4(false), _5(circle_diameter), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_diameter"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("diameter of circle"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "disable_breakpoint", 1, + AddBuiltinFunc(_0(1517), _1("disable_breakpoint"), _2(1), _3(true), _4(false), _5(debug_client_disable_breakpoint), _6(16), _7(PG_PLDEBUG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("debug_client_disable_breakpoint"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "disable_conn", 1, - AddBuiltinFunc(_0(4221), _1("disable_conn"), _2(3), _3(false), _4(false), _5(disable_conn), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 25, 25, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("disable_conn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4221), _1("disable_conn"), _2(3), _3(false), _4(false), _5(disable_conn), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 25, 25, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("disable_conn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "dispell_init", 1, - AddBuiltinFunc(_0(3731), _1("dispell_init"), _2(1), _3(true), _4(false), _5(dispell_init), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dispell_init"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3731), _1("dispell_init"), _2(1), _3(true), _4(false), _5(dispell_init), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dispell_init"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("(internal)"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "dispell_lexize", 1, - AddBuiltinFunc(_0(3732), _1("dispell_lexize"), _2(4), _3(true), _4(false), _5(dispell_lexize), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dispell_lexize"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3732), _1("dispell_lexize"), _2(4), _3(true), _4(false), _5(dispell_lexize), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dispell_lexize"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("(internal)"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "dist_cpoly", 1, - AddBuiltinFunc(_0(728), _1("dist_cpoly"), _2(2), _3(true), _4(false), _5(dist_cpoly), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 718, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dist_cpoly"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(728), _1("dist_cpoly"), _2(2), _3(true), _4(false), _5(dist_cpoly), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 718, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dist_cpoly"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "dist_lb", 1, - AddBuiltinFunc(_0(726), _1("dist_lb"), _2(2), _3(true), _4(false), _5(dist_lb), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 628, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dist_lb"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(726), _1("dist_lb"), _2(2), _3(true), _4(false), _5(dist_lb), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 628, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dist_lb"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "dist_pb", 1, - AddBuiltinFunc(_0(364), _1("dist_pb"), _2(2), _3(true), _4(false), _5(dist_pb), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dist_pb"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(364), _1("dist_pb"), _2(2), _3(true), _4(false), _5(dist_pb), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dist_pb"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "dist_pc", 1, - AddBuiltinFunc(_0(1476), _1("dist_pc"), _2(2), _3(true), _4(false), _5(dist_pc), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dist_pc"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1476), _1("dist_pc"), _2(2), _3(true), _4(false), _5(dist_pc), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dist_pc"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "dist_pl", 1, - AddBuiltinFunc(_0(725), _1("dist_pl"), _2(2), _3(true), _4(false), _5(dist_pl), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 628), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dist_pl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(725), _1("dist_pl"), _2(2), _3(true), _4(false), _5(dist_pl), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 628), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dist_pl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "dist_ppath", 1, - AddBuiltinFunc(_0(371), _1("dist_ppath"), _2(2), _3(true), _4(false), _5(dist_ppath), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dist_ppath"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(371), _1("dist_ppath"), _2(2), _3(true), _4(false), _5(dist_ppath), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dist_ppath"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "dist_ps", 1, - AddBuiltinFunc(_0(363), _1("dist_ps"), _2(2), _3(true), _4(false), _5(dist_ps), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dist_ps"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(363), _1("dist_ps"), _2(2), _3(true), _4(false), _5(dist_ps), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dist_ps"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "dist_sb", 1, - AddBuiltinFunc(_0(365), _1("dist_sb"), _2(2), _3(true), _4(false), _5(dist_sb), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 601, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dist_sb"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(365), _1("dist_sb"), _2(2), _3(true), _4(false), _5(dist_sb), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 601, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dist_sb"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "dist_sl", 1, - AddBuiltinFunc(_0(727), _1("dist_sl"), _2(2), _3(true), _4(false), _5(dist_sl), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 601, 628), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dist_sl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(727), _1("dist_sl"), _2(2), _3(true), _4(false), _5(dist_sl), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 601, 628), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dist_sl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "div", 1, - AddBuiltinFunc(_0(1973), _1("div"), _2(2), _3(true), _4(false), _5(numeric_div_trunc), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_div_trunc"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1973), _1("div"), _2(2), _3(true), _4(false), _5(numeric_div_trunc), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_div_trunc"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("trunc(x/y)"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "dlog1", 1, - AddBuiltinFunc(_0(234), _1("dlog1"), _2(1), _3(true), _4(false), _5(dlog1), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dlog1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(234), _1("dlog1"), _2(1), _3(true), _4(false), _5(dlog1), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dlog1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("natural logarithm"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "dlog10", 1, - AddBuiltinFunc(_0(1339), _1("dlog10"), _2(1), _3(true), _4(false), _5(dlog10), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dlog10"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1339), _1("dlog10"), _2(1), _3(true), _4(false), _5(dlog10), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dlog10"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("base 10 logarithm"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "domain_in", 1, - AddBuiltinFunc(_0(2597), _1("domain_in"), _2(3), _3(false), _4(false), _5(domain_in), _6(2276), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 2275, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("domain_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2597), _1("domain_in"), _2(3), _3(false), _4(false), _5(domain_in), _6(2276), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 2275, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("domain_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "domain_recv", 1, - AddBuiltinFunc(_0(2598), _1("domain_recv"), _2(3), _3(false), _4(false), _5(domain_recv), _6(2276), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 2281, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("domain_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2598), _1("domain_recv"), _2(3), _3(false), _4(false), _5(domain_recv), _6(2276), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 2281, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("domain_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "dpow", 1, - AddBuiltinFunc(_0(232), _1("dpow"), _2(2), _3(true), _4(false), _5(dpow), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dpow"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(232), _1("dpow"), _2(2), _3(true), _4(false), _5(dpow), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dpow"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("exponentiation"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "dround", 1, - AddBuiltinFunc(_0(228), _1("dround"), _2(1), _3(true), _4(false), _5(dround), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dround"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(228), _1("dround"), _2(1), _3(true), _4(false), _5(dround), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dround"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("round to nearest integer"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "dsimple_init", 1, - AddBuiltinFunc(_0(3725), _1("dsimple_init"), _2(1), _3(true), _4(false), _5(dsimple_init), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dsimple_init"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3725), _1("dsimple_init"), _2(1), _3(true), _4(false), _5(dsimple_init), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dsimple_init"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("(internal)"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "dsimple_lexize", 1, - AddBuiltinFunc(_0(3726), _1("dsimple_lexize"), _2(4), _3(true), _4(false), _5(dsimple_lexize), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dsimple_lexize"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3726), _1("dsimple_lexize"), _2(4), _3(true), _4(false), _5(dsimple_lexize), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dsimple_lexize"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("(internal)"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "dsqrt", 1, - AddBuiltinFunc(_0(230), _1("dsqrt"), _2(1), _3(true), _4(false), _5(dsqrt), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dsqrt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(230), _1("dsqrt"), _2(1), _3(true), _4(false), _5(dsqrt), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dsqrt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("square root"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "dsynonym_init", 1, - AddBuiltinFunc(_0(3728), _1("dsynonym_init"), _2(1), _3(true), _4(false), _5(dsynonym_init), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dsynonym_init"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3728), _1("dsynonym_init"), _2(1), _3(true), _4(false), _5(dsynonym_init), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dsynonym_init"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("(internal)"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "dsynonym_lexize", 1, - AddBuiltinFunc(_0(3729), _1("dsynonym_lexize"), _2(4), _3(true), _4(false), _5(dsynonym_lexize), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dsynonym_lexize"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3729), _1("dsynonym_lexize"), _2(4), _3(true), _4(false), _5(dsynonym_lexize), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dsynonym_lexize"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("(internal)"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "dtrunc", 1, - AddBuiltinFunc(_0(229), _1("dtrunc"), _2(1), _3(true), _4(false), _5(dtrunc), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dtrunc"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(229), _1("dtrunc"), _2(1), _3(true), _4(false), _5(dtrunc), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dtrunc"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("truncate to integer"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "dynamic_func_control", 1, + AddBuiltinFunc(_0(5733), _1("dynamic_func_control"), _2(0), _3(false), _4(true), _5(dynamic_func_control), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 25, 25, 25, 1009), _21(6, 25, 25, 25, 1009, 25, 25), _22(6, 'i', 'i', 'i', 'i', 'o', 'o'), _23(6, "scope", "function_name", "action", "{params}", "node_name", "result"), _24(NULL), _25("dynamic_func_control"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "elem_contained_by_range", 1, - AddBuiltinFunc(_0(3860), _1("elem_contained_by_range"), _2(2), _3(true), _4(false), _5(elem_contained_by_range), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2283, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("elem_contained_by_range"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3860), _1("elem_contained_by_range"), _2(2), _3(true), _4(false), _5(elem_contained_by_range), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2283, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("elem_contained_by_range"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "empty_blob", 1, - AddBuiltinFunc(_0(3814), _1("empty_blob"), _2(0), _3(true), _4(false), _5(get_empty_blob), _6(88), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("get_empty_blob"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3814), _1("empty_blob"), _2(0), _3(true), _4(false), _5(get_empty_blob), _6(88), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("get_empty_blob"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "enable_breakpoint", 1, + AddBuiltinFunc(_0(1516), _1("enable_breakpoint"), _2(1), _3(true), _4(false), _5(debug_client_enable_breakpoint), _6(16), _7(PG_PLDEBUG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("debug_client_enable_breakpoint"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "encode", 1, - AddBuiltinFunc(_0(1946), _1("encode"), _2(2), _3(true), _4(false), _5(binary_encode), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 17, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("binary_encode"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1946), _1("encode"), _2(2), _3(true), _4(false), _5(binary_encode), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 17, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("binary_encode"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert bytea value into some ascii-only text string"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "end_collect_workload", 1, - AddBuiltinFunc(_0(7811), _1("end_collect_workload"), _2(0), _3(true), _4(false), _5(end_collect_workload), _6(16), _7(PG_SQLADVISOR_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("end_collect_workload"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(7811), _1("end_collect_workload"), _2(0), _3(true), _4(false), _5(end_collect_workload), _6(16), _7(PG_SQLADVISOR_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("end_collect_workload"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "enum_cmp", 1, - AddBuiltinFunc(_0(3514), _1("enum_cmp"), _2(2), _3(true), _4(false), _5(enum_cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3500, 3500), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("enum_cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3514), _1("enum_cmp"), _2(2), _3(true), _4(false), _5(enum_cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3500, 3500), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("enum_cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "encode_plan_node", 1, - AddBuiltinFunc(_0(3467), _1("encode_plan_node"), _2(7), _3(false), _4(false), _5(encode_plan_node), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(7, 25, 25, 25, 25, 20, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("encode_plan_node"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3467), _1("encode_plan_node"), _2(7), _3(false), _4(false), _5(encode_plan_node), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(7, 25, 25, 25, 25, 20, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("encode_plan_node"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "enum_eq", 1, - AddBuiltinFunc(_0(3508), _1("enum_eq"), _2(2), _3(true), _4(false), _5(enum_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3500, 3500), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("enum_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3508), _1("enum_eq"), _2(2), _3(true), _4(false), _5(enum_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3500, 3500), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("enum_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "enum_first", 1, - AddBuiltinFunc(_0(3528), _1("enum_first"), _2(1), _3(false), _4(false), _5(enum_first), _6(3500), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 3500), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("enum_first"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3528), _1("enum_first"), _2(1), _3(false), _4(false), _5(enum_first), _6(3500), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 3500), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("enum_first"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("first value of the input enum type"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "enum_ge", 1, - AddBuiltinFunc(_0(3513), _1("enum_ge"), _2(2), _3(true), _4(false), _5(enum_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3500, 3500), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("enum_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3513), _1("enum_ge"), _2(2), _3(true), _4(false), _5(enum_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3500, 3500), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("enum_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "enum_gt", 1, - AddBuiltinFunc(_0(3511), _1("enum_gt"), _2(2), _3(true), _4(false), _5(enum_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3500, 3500), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("enum_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3511), _1("enum_gt"), _2(2), _3(true), _4(false), _5(enum_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3500, 3500), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("enum_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "enum_in", 1, - AddBuiltinFunc(_0(3506), _1("enum_in"), _2(2), _3(true), _4(false), _5(enum_in), _6(3500), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 2275, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("enum_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3506), _1("enum_in"), _2(2), _3(true), _4(false), _5(enum_in), _6(3500), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 2275, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("enum_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "enum_larger", 1, - AddBuiltinFunc(_0(3525), _1("enum_larger"), _2(2), _3(true), _4(false), _5(enum_larger), _6(3500), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3500, 3500), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("enum_larger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3525), _1("enum_larger"), _2(2), _3(true), _4(false), _5(enum_larger), _6(3500), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3500, 3500), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("enum_larger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("larger of two"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "enum_last", 1, - AddBuiltinFunc(_0(3529), _1("enum_last"), _2(1), _3(false), _4(false), _5(enum_last), _6(3500), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 3500), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("enum_last"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3529), _1("enum_last"), _2(1), _3(false), _4(false), _5(enum_last), _6(3500), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 3500), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("enum_last"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("last value of the input enum type"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "enum_le", 1, - AddBuiltinFunc(_0(3512), _1("enum_le"), _2(2), _3(true), _4(false), _5(enum_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3500, 3500), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("enum_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3512), _1("enum_le"), _2(2), _3(true), _4(false), _5(enum_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3500, 3500), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("enum_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "enum_lt", 1, - AddBuiltinFunc(_0(3510), _1("enum_lt"), _2(2), _3(true), _4(false), _5(enum_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3500, 3500), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("enum_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3510), _1("enum_lt"), _2(2), _3(true), _4(false), _5(enum_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3500, 3500), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("enum_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "enum_ne", 1, - AddBuiltinFunc(_0(3509), _1("enum_ne"), _2(2), _3(true), _4(false), _5(enum_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3500, 3500), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("enum_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3509), _1("enum_ne"), _2(2), _3(true), _4(false), _5(enum_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3500, 3500), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("enum_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "enum_out", 1, - AddBuiltinFunc(_0(3507), _1("enum_out"), _2(1), _3(true), _4(false), _5(enum_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 3500), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("enum_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3507), _1("enum_out"), _2(1), _3(true), _4(false), _5(enum_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 3500), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("enum_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "enum_range", 2, - AddBuiltinFunc(_0(3530), _1("enum_range"), _2(2), _3(false), _4(false), _5(enum_range_bounds), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 3500, 3500), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("enum_range_bounds"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3531), _1("enum_range"), _2(1), _3(false), _4(false), _5(enum_range_all), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 3500), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("enum_range_all"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3530), _1("enum_range"), _2(2), _3(false), _4(false), _5(enum_range_bounds), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 3500, 3500), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("enum_range_bounds"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("range between the two given enum values, as an ordered array"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3531), _1("enum_range"), _2(1), _3(false), _4(false), _5(enum_range_all), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 3500), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("enum_range_all"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("range of the given enum type, as an ordered array"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "enum_recv", 1, - AddBuiltinFunc(_0(3532), _1("enum_recv"), _2(2), _3(true), _4(false), _5(enum_recv), _6(3500), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 2275, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("enum_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3532), _1("enum_recv"), _2(2), _3(true), _4(false), _5(enum_recv), _6(3500), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 2275, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("enum_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "enum_send", 1, - AddBuiltinFunc(_0(3533), _1("enum_send"), _2(1), _3(true), _4(false), _5(enum_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 3500), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("enum_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3533), _1("enum_send"), _2(1), _3(true), _4(false), _5(enum_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 3500), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("enum_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "enum_smaller", 1, - AddBuiltinFunc(_0(3524), _1("enum_smaller"), _2(2), _3(true), _4(false), _5(enum_smaller), _6(3500), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3500, 3500), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("enum_smaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3524), _1("enum_smaller"), _2(2), _3(true), _4(false), _5(enum_smaller), _6(3500), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3500, 3500), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("enum_smaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("smaller of two"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "eqjoinsel", 1, - AddBuiltinFunc(_0(105), _1("eqjoinsel"), _2(5), _3(true), _4(false), _5(eqjoinsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(5, 2281, 26, 2281, 21, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("eqjoinsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(105), _1("eqjoinsel"), _2(5), _3(true), _4(false), _5(eqjoinsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(5, 2281, 26, 2281, 21, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("eqjoinsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("join selectivity of = and related operators"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "eqsel", 1, - AddBuiltinFunc(_0(EQSELRETURNOID), _1("eqsel"), _2(4), _3(true), _4(false), _5(eqsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 2281, 26, 2281, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("eqsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(EQSELRETURNOID), _1("eqsel"), _2(4), _3(true), _4(false), _5(eqsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 2281, 26, 2281, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("eqsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("restriction selectivity of = and related operators"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "every", 1, - AddBuiltinFunc(_0(EVERYFUNCOID), _1("every"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(EVERYFUNCOID), _1("every"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "exec_hadoop_sql", 1, - AddBuiltinFunc(_0(ECHADOOPFUNCOID), _1("exec_hadoop_sql"), _2(3), _3(false), _4(true), _5(exec_hadoop_sql), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 25, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("exec_hadoop_sql"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(ECHADOOPFUNCOID), _1("exec_hadoop_sql"), _2(3), _3(false), _4(true), _5(exec_hadoop_sql), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 25, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("exec_hadoop_sql"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "exec_on_extension", 1, - AddBuiltinFunc(_0(ECEXTENSIONFUNCOID), _1("exec_on_extension"), _2(2), _3(false), _4(true), _5(exec_on_extension), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("exec_on_extension"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(ECEXTENSIONFUNCOID), _1("exec_on_extension"), _2(2), _3(false), _4(true), _5(exec_on_extension), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("exec_on_extension"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "exp", 2, - AddBuiltinFunc(_0(1347), _1("exp"), _2(1), _3(true), _4(false), _5(dexp), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dexp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1732), _1("exp"), _2(1), _3(true), _4(false), _5(numeric_exp), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_exp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1347), _1("exp"), _2(1), _3(true), _4(false), _5(dexp), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dexp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("natural exponential (e^x)"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1732), _1("exp"), _2(1), _3(true), _4(false), _5(numeric_exp), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_exp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("natural exponential (e^x)"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "f4toi1", 1, - AddBuiltinFunc(_0(5530), _1("f4toi1"), _2(1), _3(true), _4(false), _5(f4toi1), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("f4toi1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5530), _1("f4toi1"), _2(1), _3(true), _4(false), _5(f4toi1), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("f4toi1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "f8toi1", 1, - AddBuiltinFunc(_0(5532), _1("f8toi1"), _2(1), _3(true), _4(false), _5(f8toi1), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("f8toi1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5532), _1("f8toi1"), _2(1), _3(true), _4(false), _5(f8toi1), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("f8toi1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "factorial", 1, - AddBuiltinFunc(_0(1376), _1("factorial"), _2(1), _3(true), _4(false), _5(numeric_fac), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_fac"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1376), _1("factorial"), _2(1), _3(true), _4(false), _5(numeric_fac), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_fac"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("implementation of deprecated ! and !! factorial operators"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "family", 1, - AddBuiltinFunc(_0(711), _1("family"), _2(1), _3(true), _4(false), _5(network_family), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("network_family"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(711), _1("family"), _2(1), _3(true), _4(false), _5(network_family), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("network_family"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("address family (4 for IPv4, 6 for IPv6)"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "fdw_handler_in", 1, - AddBuiltinFunc(_0(3116), _1("fdw_handler_in"), _2(1), _3(false), _4(false), _5(fdw_handler_in), _6(3115), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("fdw_handler_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3116), _1("fdw_handler_in"), _2(1), _3(false), _4(false), _5(fdw_handler_in), _6(3115), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("fdw_handler_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "fdw_handler_out", 1, - AddBuiltinFunc(_0(3117), _1("fdw_handler_out"), _2(1), _3(true), _4(false), _5(fdw_handler_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3115), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("fdw_handler_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3117), _1("fdw_handler_out"), _2(1), _3(true), _4(false), _5(fdw_handler_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3115), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("fdw_handler_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "fenced_udf_process", 1, - AddBuiltinFunc(_0(4207), _1("fenced_udf_process"), _2(1), _3(true), _4(false), _5(fenced_udf_process), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("fenced_udf_process"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4207), _1("fenced_udf_process"), _2(1), _3(true), _4(false), _5(fenced_udf_process), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("fenced_udf_process"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( - "first", 1, - AddBuiltinFunc(_0(6560), _1("first"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(2283), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2283), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')) - ), - AddFuncGroup( - "first_transition", 1, - AddBuiltinFunc(_0(6558), _1("first_transition"), _2(2), _3(true), _4(false), _5(first_transition), _6(2283), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2283, 2283), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("first_transition"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')) + "finish", 1, + AddBuiltinFunc(_0(1518), _1("finish"), _2(0), _3(true), _4(true), _5(debug_client_finish), _6(2249), _7(PG_PLDEBUG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(4, 26, 25, 23, 25), _22(4, 'o', 'o', 'o', 'o'), _23(4, "funcoid", "funcname", "lineno", "query"), _24(NULL), _25("debug_client_finish"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "first_value", 1, - AddBuiltinFunc(_0(3112), _1("first_value"), _2(1), _3(true), _4(false), _5(window_first_value), _6(2283), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(true), _16(false), _17(false), _18('i'), _19(0), _20(1, 2283), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("window_first_value"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3112), _1("first_value"), _2(1), _3(true), _4(false), _5(window_first_value), _6(2283), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(true), _16(false), _17(false), _18('i'), _19(0), _20(1, 2283), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("window_first_value"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("fetch the first row value"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "delta", 1, - AddBuiltinFunc(_0(4805), _1("delta"), _2(1), _3(true), _4(false), _5(window_delta), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(true), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("window_delta"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4805), _1("delta"), _2(1), _3(true), _4(false), _5(window_delta), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(true), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("window_delta"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( - "float4", 5, - AddBuiltinFunc(_0(236), _1("float4"), _2(1), _3(true), _4(false), _5(i2tof), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("i2tof"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(312), _1("float4"), _2(1), _3(true), _4(false), _5(dtof), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dtof"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(318), _1("float4"), _2(1), _3(true), _4(false), _5(i4tof), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("i4tof"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(652), _1("float4"), _2(1), _3(true), _4(false), _5(i8tof), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("i8tof"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1745), _1("float4"), _2(1), _3(true), _4(false), _5(numeric_float4), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_float4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + "float4", 6, + AddBuiltinFunc(_0(236), _1("float4"), _2(1), _3(true), _4(false), _5(i2tof), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("i2tof"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert int2 to float4"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(312), _1("float4"), _2(1), _3(true), _4(false), _5(dtof), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dtof"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert double to float4"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(318), _1("float4"), _2(1), _3(true), _4(false), _5(i4tof), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("i4tof"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert int4 to float4"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(652), _1("float4"), _2(1), _3(true), _4(false), _5(i8tof), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("i8tof"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert int8 to float4"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1745), _1("float4"), _2(1), _3(true), _4(false), _5(numeric_float4), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_float4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert numeric to float4"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(6416), _1("float4"), _2(1), _3(true), _4(false), _5(i16tof), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 34), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("i16tof"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float48div", 1, - AddBuiltinFunc(_0(280), _1("float48div"), _2(2), _3(true), _4(false), _5(float48div), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 700, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float48div"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(280), _1("float48div"), _2(2), _3(true), _4(false), _5(float48div), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 700, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float48div"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float48eq", 1, - AddBuiltinFunc(_0(299), _1("float48eq"), _2(2), _3(true), _4(false), _5(float48eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 700, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float48eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(299), _1("float48eq"), _2(2), _3(true), _4(false), _5(float48eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 700, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float48eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float48ge", 1, - AddBuiltinFunc(_0(304), _1("float48ge"), _2(2), _3(true), _4(false), _5(float48ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 700, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float48ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(304), _1("float48ge"), _2(2), _3(true), _4(false), _5(float48ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 700, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float48ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float48gt", 1, - AddBuiltinFunc(_0(303), _1("float48gt"), _2(2), _3(true), _4(false), _5(float48gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 700, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float48gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(303), _1("float48gt"), _2(2), _3(true), _4(false), _5(float48gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 700, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float48gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float48le", 1, - AddBuiltinFunc(_0(302), _1("float48le"), _2(2), _3(true), _4(false), _5(float48le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 700, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float48le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(302), _1("float48le"), _2(2), _3(true), _4(false), _5(float48le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 700, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float48le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float48lt", 1, - AddBuiltinFunc(_0(301), _1("float48lt"), _2(2), _3(true), _4(false), _5(float48lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 700, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float48lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(301), _1("float48lt"), _2(2), _3(true), _4(false), _5(float48lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 700, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float48lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float48mi", 1, - AddBuiltinFunc(_0(282), _1("float48mi"), _2(2), _3(true), _4(false), _5(float48mi), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 700, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float48mi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(282), _1("float48mi"), _2(2), _3(true), _4(false), _5(float48mi), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 700, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float48mi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float48mul", 1, - AddBuiltinFunc(_0(279), _1("float48mul"), _2(2), _3(true), _4(false), _5(float48mul), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 700, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float48mul"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(279), _1("float48mul"), _2(2), _3(true), _4(false), _5(float48mul), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 700, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float48mul"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float48ne", 1, - AddBuiltinFunc(_0(300), _1("float48ne"), _2(2), _3(true), _4(false), _5(float48ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 700, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float48ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(300), _1("float48ne"), _2(2), _3(true), _4(false), _5(float48ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 700, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float48ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float48pl", 1, - AddBuiltinFunc(_0(281), _1("float48pl"), _2(2), _3(true), _4(false), _5(float48pl), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 700, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float48pl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(281), _1("float48pl"), _2(2), _3(true), _4(false), _5(float48pl), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 700, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float48pl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float4_accum", 1, - AddBuiltinFunc(_0(208), _1("float4_accum"), _2(2), _3(true), _4(false), _5(float4_accum), _6(1022), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1022, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4_accum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(208), _1("float4_accum"), _2(2), _3(true), _4(false), _5(float4_accum), _6(1022), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1022, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4_accum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate transition function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float4_bpchar", 1, - AddBuiltinFunc(_0(4070), _1("float4_bpchar"), _2(1), _3(true), _4(false), _5(float4_bpchar), _6(1042), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4_bpchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4070), _1("float4_bpchar"), _2(1), _3(true), _4(false), _5(float4_bpchar), _6(1042), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4_bpchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float4_list_agg_noarg2_transfn", 1, - AddBuiltinFunc(_0(3569), _1("float4_list_agg_noarg2_transfn"), _2(2), _3(false), _4(false), _5(float4_list_agg_noarg2_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4_list_agg_noarg2_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3569), _1("float4_list_agg_noarg2_transfn"), _2(2), _3(false), _4(false), _5(float4_list_agg_noarg2_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4_list_agg_noarg2_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float4_list_agg_transfn", 1, - AddBuiltinFunc(_0(3567), _1("float4_list_agg_transfn"), _2(3), _3(false), _4(false), _5(float4_list_agg_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 700, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4_list_agg_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3567), _1("float4_list_agg_transfn"), _2(3), _3(false), _4(false), _5(float4_list_agg_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 700, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4_list_agg_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float4_text", 1, - AddBuiltinFunc(_0(4169), _1("float4_text"), _2(1), _3(true), _4(false), _5(float4_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4169), _1("float4_text"), _2(1), _3(true), _4(false), _5(float4_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float4_varchar", 1, - AddBuiltinFunc(_0(4184), _1("float4_varchar"), _2(1), _3(true), _4(false), _5(float4_varchar), _6(1043), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4_varchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4184), _1("float4_varchar"), _2(1), _3(true), _4(false), _5(float4_varchar), _6(1043), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4_varchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float4abs", 1, - AddBuiltinFunc(_0(207), _1("float4abs"), _2(1), _3(true), _4(false), _5(float4abs), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4abs"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(207), _1("float4abs"), _2(1), _3(true), _4(false), _5(float4abs), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4abs"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float4div", 1, - AddBuiltinFunc(_0(203), _1("float4div"), _2(2), _3(true), _4(false), _5(float4div), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 700, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4div"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(203), _1("float4div"), _2(2), _3(true), _4(false), _5(float4div), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 700, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4div"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float4eq", 1, - AddBuiltinFunc(_0(287), _1("float4eq"), _2(2), _3(true), _4(false), _5(float4eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 700, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(287), _1("float4eq"), _2(2), _3(true), _4(false), _5(float4eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 700, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float4ge", 1, - AddBuiltinFunc(_0(292), _1("float4ge"), _2(2), _3(true), _4(false), _5(float4ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 700, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(292), _1("float4ge"), _2(2), _3(true), _4(false), _5(float4ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 700, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float4gt", 1, - AddBuiltinFunc(_0(291), _1("float4gt"), _2(2), _3(true), _4(false), _5(float4gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 700, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(291), _1("float4gt"), _2(2), _3(true), _4(false), _5(float4gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 700, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float4in", 1, - AddBuiltinFunc(_0(200), _1("float4in"), _2(1), _3(true), _4(false), _5(float4in), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(200), _1("float4in"), _2(1), _3(true), _4(false), _5(float4in), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float4larger", 1, - AddBuiltinFunc(_0(209), _1("float4larger"), _2(2), _3(true), _4(false), _5(float4larger), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 700, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4larger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(209), _1("float4larger"), _2(2), _3(true), _4(false), _5(float4larger), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 700, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4larger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("larger of two"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float4le", 1, - AddBuiltinFunc(_0(290), _1("float4le"), _2(2), _3(true), _4(false), _5(float4le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 700, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(290), _1("float4le"), _2(2), _3(true), _4(false), _5(float4le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 700, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float4lt", 1, - AddBuiltinFunc(_0(289), _1("float4lt"), _2(2), _3(true), _4(false), _5(float4lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 700, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(289), _1("float4lt"), _2(2), _3(true), _4(false), _5(float4lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 700, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float4mi", 1, - AddBuiltinFunc(_0(205), _1("float4mi"), _2(2), _3(true), _4(false), _5(float4mi), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 700, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4mi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(205), _1("float4mi"), _2(2), _3(true), _4(false), _5(float4mi), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 700, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4mi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float4mul", 1, - AddBuiltinFunc(_0(202), _1("float4mul"), _2(2), _3(true), _4(false), _5(float4mul), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 700, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4mul"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(202), _1("float4mul"), _2(2), _3(true), _4(false), _5(float4mul), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 700, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4mul"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float4ne", 1, - AddBuiltinFunc(_0(288), _1("float4ne"), _2(2), _3(true), _4(false), _5(float4ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 700, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(288), _1("float4ne"), _2(2), _3(true), _4(false), _5(float4ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 700, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float4out", 1, - AddBuiltinFunc(_0(201), _1("float4out"), _2(1), _3(true), _4(false), _5(float4out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(201), _1("float4out"), _2(1), _3(true), _4(false), _5(float4out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float4pl", 1, - AddBuiltinFunc(_0(204), _1("float4pl"), _2(2), _3(true), _4(false), _5(float4pl), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 700, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4pl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(204), _1("float4pl"), _2(2), _3(true), _4(false), _5(float4pl), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 700, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4pl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float4recv", 1, - AddBuiltinFunc(_0(2424), _1("float4recv"), _2(1), _3(true), _4(false), _5(float4recv), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2424), _1("float4recv"), _2(1), _3(true), _4(false), _5(float4recv), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float4send", 1, - AddBuiltinFunc(_0(2425), _1("float4send"), _2(1), _3(true), _4(false), _5(float4send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2425), _1("float4send"), _2(1), _3(true), _4(false), _5(float4send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float4smaller", 1, - AddBuiltinFunc(_0(211), _1("float4smaller"), _2(2), _3(true), _4(false), _5(float4smaller), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 700, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4smaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(211), _1("float4smaller"), _2(2), _3(true), _4(false), _5(float4smaller), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 700, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4smaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("smaller of two"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float4um", 1, - AddBuiltinFunc(_0(206), _1("float4um"), _2(1), _3(true), _4(false), _5(float4um), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4um"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(206), _1("float4um"), _2(1), _3(true), _4(false), _5(float4um), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4um"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float4up", 1, - AddBuiltinFunc(_0(1913), _1("float4up"), _2(1), _3(true), _4(false), _5(float4up), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4up"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1913), _1("float4up"), _2(1), _3(true), _4(false), _5(float4up), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4up"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( - "float8", 5, - AddBuiltinFunc(_0(235), _1("float8"), _2(1), _3(true), _4(false), _5(i2tod), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("i2tod"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(311), _1("float8"), _2(1), _3(true), _4(false), _5(ftod), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ftod"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(INT4TOFLOAT8FUNCOID), _1("float8"), _2(1), _3(true), _4(false), _5(i4tod), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("i4tod"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(482), _1("float8"), _2(1), _3(true), _4(false), _5(i8tod), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("i8tod"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(NUMTOFLOAT8FUNCOID), _1("float8"), _2(1), _3(true), _4(false), _5(numeric_float8), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_float8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + "float8", 6, + AddBuiltinFunc(_0(235), _1("float8"), _2(1), _3(true), _4(false), _5(i2tod), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("i2tod"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert int2 to float8"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(311), _1("float8"), _2(1), _3(true), _4(false), _5(ftod), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ftod"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert float4 to float8"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(INT4TOFLOAT8FUNCOID), _1("float8"), _2(1), _3(true), _4(false), _5(i4tod), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("i4tod"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(482), _1("float8"), _2(1), _3(true), _4(false), _5(i8tod), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("i8tod"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert int8 to float8"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(NUMTOFLOAT8FUNCOID), _1("float8"), _2(1), _3(true), _4(false), _5(numeric_float8), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_float8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert numeric to float8"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(6414), _1("float8"), _2(1), _3(true), _4(false), _5(i16tod), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 34), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("i16tod"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float84div", 1, - AddBuiltinFunc(_0(284), _1("float84div"), _2(2), _3(true), _4(false), _5(float84div), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float84div"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(284), _1("float84div"), _2(2), _3(true), _4(false), _5(float84div), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float84div"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float84eq", 1, - AddBuiltinFunc(_0(305), _1("float84eq"), _2(2), _3(true), _4(false), _5(float84eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 701, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float84eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(305), _1("float84eq"), _2(2), _3(true), _4(false), _5(float84eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 701, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float84eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float84ge", 1, - AddBuiltinFunc(_0(310), _1("float84ge"), _2(2), _3(true), _4(false), _5(float84ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 701, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float84ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(310), _1("float84ge"), _2(2), _3(true), _4(false), _5(float84ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 701, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float84ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float84gt", 1, - AddBuiltinFunc(_0(309), _1("float84gt"), _2(2), _3(true), _4(false), _5(float84gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 701, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float84gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(309), _1("float84gt"), _2(2), _3(true), _4(false), _5(float84gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 701, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float84gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float84le", 1, - AddBuiltinFunc(_0(308), _1("float84le"), _2(2), _3(true), _4(false), _5(float84le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 701, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float84le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(308), _1("float84le"), _2(2), _3(true), _4(false), _5(float84le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 701, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float84le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float84lt", 1, - AddBuiltinFunc(_0(307), _1("float84lt"), _2(2), _3(true), _4(false), _5(float84lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 701, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float84lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(307), _1("float84lt"), _2(2), _3(true), _4(false), _5(float84lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 701, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float84lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float84mi", 1, - AddBuiltinFunc(_0(286), _1("float84mi"), _2(2), _3(true), _4(false), _5(float84mi), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float84mi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(286), _1("float84mi"), _2(2), _3(true), _4(false), _5(float84mi), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float84mi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float84mul", 1, - AddBuiltinFunc(_0(283), _1("float84mul"), _2(2), _3(true), _4(false), _5(float84mul), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float84mul"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(283), _1("float84mul"), _2(2), _3(true), _4(false), _5(float84mul), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float84mul"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float84ne", 1, - AddBuiltinFunc(_0(306), _1("float84ne"), _2(2), _3(true), _4(false), _5(float84ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 701, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float84ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(306), _1("float84ne"), _2(2), _3(true), _4(false), _5(float84ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 701, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float84ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float84pl", 1, - AddBuiltinFunc(_0(285), _1("float84pl"), _2(2), _3(true), _4(false), _5(float84pl), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float84pl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(285), _1("float84pl"), _2(2), _3(true), _4(false), _5(float84pl), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float84pl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8_accum", 1, - AddBuiltinFunc(_0(222), _1("float8_accum"), _2(2), _3(true), _4(false), _5(float8_accum), _6(1022), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1022, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_accum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(222), _1("float8_accum"), _2(2), _3(true), _4(false), _5(float8_accum), _6(1022), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1022, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_accum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate transition function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8_avg", 1, - AddBuiltinFunc(_0(1830), _1("float8_avg"), _2(1), _3(true), _4(false), _5(float8_avg), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1022), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_avg"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1830), _1("float8_avg"), _2(1), _3(true), _4(false), _5(float8_avg), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1022), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_avg"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate final function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8_bpchar", 1, - AddBuiltinFunc(_0(4071), _1("float8_bpchar"), _2(1), _3(true), _4(false), _5(float8_bpchar), _6(1042), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_bpchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4071), _1("float8_bpchar"), _2(1), _3(true), _4(false), _5(float8_bpchar), _6(1042), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_bpchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8_collect", 1, - AddBuiltinFunc(_0(2966), _1("float8_collect"), _2(2), _3(true), _4(false), _5(float8_collect), _6(1022), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1022, 1022), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_collect"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2966), _1("float8_collect"), _2(2), _3(true), _4(false), _5(float8_collect), _6(1022), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1022, 1022), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_collect"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8_corr", 1, - AddBuiltinFunc(_0(2817), _1("float8_corr"), _2(1), _3(true), _4(false), _5(float8_corr), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1022), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_corr"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2817), _1("float8_corr"), _2(1), _3(true), _4(false), _5(float8_corr), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1022), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_corr"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate final function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8_covar_pop", 1, - AddBuiltinFunc(_0(2815), _1("float8_covar_pop"), _2(1), _3(true), _4(false), _5(float8_covar_pop), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1022), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_covar_pop"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2815), _1("float8_covar_pop"), _2(1), _3(true), _4(false), _5(float8_covar_pop), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1022), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_covar_pop"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate final function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8_covar_samp", 1, - AddBuiltinFunc(_0(2816), _1("float8_covar_samp"), _2(1), _3(true), _4(false), _5(float8_covar_samp), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1022), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_covar_samp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2816), _1("float8_covar_samp"), _2(1), _3(true), _4(false), _5(float8_covar_samp), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1022), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_covar_samp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate final function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8_interval", 1, - AddBuiltinFunc(_0(4229), _1("float8_interval"), _2(1), _3(true), _4(false), _5(float8_interval), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_interval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4229), _1("float8_interval"), _2(1), _3(true), _4(false), _5(float8_interval), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_interval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8_list_agg_noarg2_transfn", 1, - AddBuiltinFunc(_0(3573), _1("float8_list_agg_noarg2_transfn"), _2(2), _3(false), _4(false), _5(float8_list_agg_noarg2_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_list_agg_noarg2_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3573), _1("float8_list_agg_noarg2_transfn"), _2(2), _3(false), _4(false), _5(float8_list_agg_noarg2_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_list_agg_noarg2_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8_list_agg_transfn", 1, - AddBuiltinFunc(_0(3571), _1("float8_list_agg_transfn"), _2(3), _3(false), _4(false), _5(float8_list_agg_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 701, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_list_agg_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3571), _1("float8_list_agg_transfn"), _2(3), _3(false), _4(false), _5(float8_list_agg_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 701, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_list_agg_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8_regr_accum", 1, - AddBuiltinFunc(_0(2806), _1("float8_regr_accum"), _2(3), _3(true), _4(false), _5(float8_regr_accum), _6(1022), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 1022, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_regr_accum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2806), _1("float8_regr_accum"), _2(3), _3(true), _4(false), _5(float8_regr_accum), _6(1022), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 1022, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_regr_accum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate transition function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8_regr_avgx", 1, - AddBuiltinFunc(_0(2810), _1("float8_regr_avgx"), _2(1), _3(true), _4(false), _5(float8_regr_avgx), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1022), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_regr_avgx"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2810), _1("float8_regr_avgx"), _2(1), _3(true), _4(false), _5(float8_regr_avgx), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1022), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_regr_avgx"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate final function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8_regr_avgy", 1, - AddBuiltinFunc(_0(2811), _1("float8_regr_avgy"), _2(1), _3(true), _4(false), _5(float8_regr_avgy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1022), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_regr_avgy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2811), _1("float8_regr_avgy"), _2(1), _3(true), _4(false), _5(float8_regr_avgy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1022), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_regr_avgy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate final function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8_regr_collect", 1, - AddBuiltinFunc(_0(2995), _1("float8_regr_collect"), _2(2), _3(true), _4(false), _5(float8_regr_collect), _6(1022), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1022, 1022), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_regr_collect"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2995), _1("float8_regr_collect"), _2(2), _3(true), _4(false), _5(float8_regr_collect), _6(1022), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1022, 1022), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_regr_collect"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8_regr_intercept", 1, - AddBuiltinFunc(_0(2814), _1("float8_regr_intercept"), _2(1), _3(true), _4(false), _5(float8_regr_intercept), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1022), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_regr_intercept"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2814), _1("float8_regr_intercept"), _2(1), _3(true), _4(false), _5(float8_regr_intercept), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1022), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_regr_intercept"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate final function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8_regr_r2", 1, - AddBuiltinFunc(_0(2812), _1("float8_regr_r2"), _2(1), _3(true), _4(false), _5(float8_regr_r2), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1022), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_regr_r2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2812), _1("float8_regr_r2"), _2(1), _3(true), _4(false), _5(float8_regr_r2), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1022), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_regr_r2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate final function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8_regr_slope", 1, - AddBuiltinFunc(_0(2813), _1("float8_regr_slope"), _2(1), _3(true), _4(false), _5(float8_regr_slope), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1022), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_regr_slope"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2813), _1("float8_regr_slope"), _2(1), _3(true), _4(false), _5(float8_regr_slope), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1022), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_regr_slope"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate final function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8_regr_sxx", 1, - AddBuiltinFunc(_0(2807), _1("float8_regr_sxx"), _2(1), _3(true), _4(false), _5(float8_regr_sxx), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1022), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_regr_sxx"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2807), _1("float8_regr_sxx"), _2(1), _3(true), _4(false), _5(float8_regr_sxx), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1022), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_regr_sxx"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate final function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8_regr_sxy", 1, - AddBuiltinFunc(_0(2809), _1("float8_regr_sxy"), _2(1), _3(true), _4(false), _5(float8_regr_sxy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1022), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_regr_sxy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2809), _1("float8_regr_sxy"), _2(1), _3(true), _4(false), _5(float8_regr_sxy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1022), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_regr_sxy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate final function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8_regr_syy", 1, - AddBuiltinFunc(_0(2808), _1("float8_regr_syy"), _2(1), _3(true), _4(false), _5(float8_regr_syy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1022), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_regr_syy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2808), _1("float8_regr_syy"), _2(1), _3(true), _4(false), _5(float8_regr_syy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1022), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_regr_syy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate final function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8_stddev_pop", 1, - AddBuiltinFunc(_0(2513), _1("float8_stddev_pop"), _2(1), _3(true), _4(false), _5(float8_stddev_pop), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1022), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_stddev_pop"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2513), _1("float8_stddev_pop"), _2(1), _3(true), _4(false), _5(float8_stddev_pop), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1022), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_stddev_pop"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate final function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8_stddev_samp", 1, - AddBuiltinFunc(_0(1832), _1("float8_stddev_samp"), _2(1), _3(true), _4(false), _5(float8_stddev_samp), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1022), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_stddev_samp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1832), _1("float8_stddev_samp"), _2(1), _3(true), _4(false), _5(float8_stddev_samp), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1022), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_stddev_samp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate final function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8_text", 1, - AddBuiltinFunc(_0(4170), _1("float8_text"), _2(1), _3(true), _4(false), _5(float8_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4170), _1("float8_text"), _2(1), _3(true), _4(false), _5(float8_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8_var_pop", 1, - AddBuiltinFunc(_0(2512), _1("float8_var_pop"), _2(1), _3(true), _4(false), _5(float8_var_pop), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1022), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_var_pop"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2512), _1("float8_var_pop"), _2(1), _3(true), _4(false), _5(float8_var_pop), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1022), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_var_pop"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate final function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8_var_samp", 1, - AddBuiltinFunc(_0(1831), _1("float8_var_samp"), _2(1), _3(true), _4(false), _5(float8_var_samp), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1022), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_var_samp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1831), _1("float8_var_samp"), _2(1), _3(true), _4(false), _5(float8_var_samp), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1022), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_var_samp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate final function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8_varchar", 1, - AddBuiltinFunc(_0(4185), _1("float8_varchar"), _2(1), _3(true), _4(false), _5(float8_varchar), _6(1043), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_varchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4185), _1("float8_varchar"), _2(1), _3(true), _4(false), _5(float8_varchar), _6(1043), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_varchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8abs", 1, - AddBuiltinFunc(_0(221), _1("float8abs"), _2(1), _3(true), _4(false), _5(float8abs), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8abs"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(221), _1("float8abs"), _2(1), _3(true), _4(false), _5(float8abs), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8abs"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8div", 1, - AddBuiltinFunc(_0(217), _1("float8div"), _2(2), _3(true), _4(false), _5(float8div), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8div"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(217), _1("float8div"), _2(2), _3(true), _4(false), _5(float8div), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8div"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8eq", 1, - AddBuiltinFunc(_0(293), _1("float8eq"), _2(2), _3(true), _4(false), _5(float8eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(293), _1("float8eq"), _2(2), _3(true), _4(false), _5(float8eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8ge", 1, - AddBuiltinFunc(_0(298), _1("float8ge"), _2(2), _3(true), _4(false), _5(float8ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(298), _1("float8ge"), _2(2), _3(true), _4(false), _5(float8ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8gt", 1, - AddBuiltinFunc(_0(297), _1("float8gt"), _2(2), _3(true), _4(false), _5(float8gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(297), _1("float8gt"), _2(2), _3(true), _4(false), _5(float8gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8in", 1, - AddBuiltinFunc(_0(214), _1("float8in"), _2(1), _3(true), _4(false), _5(float8in), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(214), _1("float8in"), _2(1), _3(true), _4(false), _5(float8in), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8larger", 1, - AddBuiltinFunc(_0(223), _1("float8larger"), _2(2), _3(true), _4(false), _5(float8larger), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8larger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(223), _1("float8larger"), _2(2), _3(true), _4(false), _5(float8larger), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8larger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("larger of two"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8le", 1, - AddBuiltinFunc(_0(296), _1("float8le"), _2(2), _3(true), _4(false), _5(float8le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(296), _1("float8le"), _2(2), _3(true), _4(false), _5(float8le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8lt", 1, - AddBuiltinFunc(_0(295), _1("float8lt"), _2(2), _3(true), _4(false), _5(float8lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(295), _1("float8lt"), _2(2), _3(true), _4(false), _5(float8lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8mi", 1, - AddBuiltinFunc(_0(219), _1("float8mi"), _2(2), _3(true), _4(false), _5(float8mi), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8mi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(219), _1("float8mi"), _2(2), _3(true), _4(false), _5(float8mi), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8mi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8mul", 1, - AddBuiltinFunc(_0(216), _1("float8mul"), _2(2), _3(true), _4(false), _5(float8mul), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8mul"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(216), _1("float8mul"), _2(2), _3(true), _4(false), _5(float8mul), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8mul"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8ne", 1, - AddBuiltinFunc(_0(294), _1("float8ne"), _2(2), _3(true), _4(false), _5(float8ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(294), _1("float8ne"), _2(2), _3(true), _4(false), _5(float8ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8out", 1, - AddBuiltinFunc(_0(215), _1("float8out"), _2(1), _3(true), _4(false), _5(float8out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(215), _1("float8out"), _2(1), _3(true), _4(false), _5(float8out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8pl", 1, - AddBuiltinFunc(_0(218), _1("float8pl"), _2(2), _3(true), _4(false), _5(float8pl), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8pl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(218), _1("float8pl"), _2(2), _3(true), _4(false), _5(float8pl), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8pl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8recv", 1, - AddBuiltinFunc(_0(2426), _1("float8recv"), _2(1), _3(true), _4(false), _5(float8recv), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2426), _1("float8recv"), _2(1), _3(true), _4(false), _5(float8recv), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8send", 1, - AddBuiltinFunc(_0(2427), _1("float8send"), _2(1), _3(true), _4(false), _5(float8send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2427), _1("float8send"), _2(1), _3(true), _4(false), _5(float8send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8smaller", 1, - AddBuiltinFunc(_0(224), _1("float8smaller"), _2(2), _3(true), _4(false), _5(float8smaller), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8smaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(224), _1("float8smaller"), _2(2), _3(true), _4(false), _5(float8smaller), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8smaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("smaller of two"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8um", 1, - AddBuiltinFunc(_0(220), _1("float8um"), _2(1), _3(true), _4(false), _5(float8um), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8um"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(220), _1("float8um"), _2(1), _3(true), _4(false), _5(float8um), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8um"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "float8up", 1, - AddBuiltinFunc(_0(1914), _1("float8up"), _2(1), _3(true), _4(false), _5(float8up), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8up"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1914), _1("float8up"), _2(1), _3(true), _4(false), _5(float8up), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8up"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "floor", 2, - AddBuiltinFunc(_0(1712), _1("floor"), _2(1), _3(true), _4(false), _5(numeric_floor), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_floor"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2309), _1("floor"), _2(1), _3(true), _4(false), _5(dfloor), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dfloor"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1712), _1("floor"), _2(1), _3(true), _4(false), _5(numeric_floor), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_floor"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("nearest integer <= value"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2309), _1("floor"), _2(1), _3(true), _4(false), _5(dfloor), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dfloor"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("nearest integer <= value"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "flt4_mul_cash", 1, - AddBuiltinFunc(_0(848), _1("flt4_mul_cash"), _2(2), _3(true), _4(false), _5(flt4_mul_cash), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 700, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("flt4_mul_cash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(848), _1("flt4_mul_cash"), _2(2), _3(true), _4(false), _5(flt4_mul_cash), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 700, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("flt4_mul_cash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "flt8_mul_cash", 1, - AddBuiltinFunc(_0(919), _1("flt8_mul_cash"), _2(2), _3(true), _4(false), _5(flt8_mul_cash), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("flt8_mul_cash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(919), _1("flt8_mul_cash"), _2(2), _3(true), _4(false), _5(flt8_mul_cash), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("flt8_mul_cash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "fmgr_c_validator", 1, - AddBuiltinFunc(_0(2247), _1("fmgr_c_validator"), _2(1), _3(true), _4(false), _5(fmgr_c_validator), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("fmgr_c_validator"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2247), _1("fmgr_c_validator"), _2(1), _3(true), _4(false), _5(fmgr_c_validator), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("fmgr_c_validator"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("(internal)"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "fmgr_internal_validator", 1, - AddBuiltinFunc(_0(2246), _1("fmgr_internal_validator"), _2(1), _3(true), _4(false), _5(fmgr_internal_validator), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("fmgr_internal_validator"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2246), _1("fmgr_internal_validator"), _2(1), _3(true), _4(false), _5(fmgr_internal_validator), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("fmgr_internal_validator"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("(internal)"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "fmgr_sql_validator", 1, - AddBuiltinFunc(_0(2248), _1("fmgr_sql_validator"), _2(1), _3(true), _4(false), _5(fmgr_sql_validator), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("fmgr_sql_validator"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2248), _1("fmgr_sql_validator"), _2(1), _3(true), _4(false), _5(fmgr_sql_validator), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("fmgr_sql_validator"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("(internal)"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "format", 2, - AddBuiltinFunc(_0(ANYTOTEXTFORMATFUNCOID), _1("format"), _2(2), _3(false), _4(false), _5(text_format), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(2276), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 2276), _21(2, 25, 2276), _22(2, 'i', 'v'), _23(NULL), _24(NULL), _25("text_format"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(DEFAULTFORMATFUNCOID), _1("format"), _2(1), _3(false), _4(false), _5(text_format_nv), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_format_nv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(ANYTOTEXTFORMATFUNCOID), _1("format"), _2(2), _3(false), _4(false), _5(text_format), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(2276), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 2276), _21(2, 25, 2276), _22(2, 'i', 'v'), _23(NULL), _24(NULL), _25("text_format"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("format text message"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(DEFAULTFORMATFUNCOID), _1("format"), _2(1), _3(false), _4(false), _5(text_format_nv), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_format_nv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("format text message"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "format_type", 1, - AddBuiltinFunc(_0(1081), _1("format_type"), _2(2), _3(false), _4(false), _5(format_type), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("format_type"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1081), _1("format_type"), _2(2), _3(false), _4(false), _5(format_type), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("format_type"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("format a type oid and atttypmod to canonical SQL"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "generate_series", 8, - AddBuiltinFunc(_0(938), _1("generate_series"), _2(3), _3(true), _4(true), _5(generate_series_timestamp), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 1114, 1114, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("generate_series_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(GENERATESERIESFUNCOID), _1("generate_series"), _2(3), _3(true), _4(true), _5(generate_series_timestamptz), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 1184, 1184, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("generate_series_timestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1066), _1("generate_series"), _2(3), _3(true), _4(true), _5(generate_series_step_int4), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 23, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("generate_series_step_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1067), _1("generate_series"), _2(2), _3(true), _4(true), _5(generate_series_int4), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("generate_series_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1068), _1("generate_series"), _2(3), _3(true), _4(true), _5(generate_series_step_int8), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 20, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("generate_series_step_int8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1069), _1("generate_series"), _2(2), _3(true), _4(true), _5(generate_series_int8), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("generate_series_int8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1070), _1("generate_series"), _2(3), _3(true), _4(true), _5(generate_series_step_numeric), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 1700, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("generate_series_step_numeric"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1071), _1("generate_series"), _2(2), _3(true), _4(true), _5(generate_series_numeric), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("generate_series_numeric"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(938), _1("generate_series"), _2(3), _3(true), _4(true), _5(generate_series_timestamp), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 1114, 1114, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("generate_series_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("non-persistent series generator"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(GENERATESERIESFUNCOID), _1("generate_series"), _2(3), _3(true), _4(true), _5(generate_series_timestamptz), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 1184, 1184, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("generate_series_timestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("non-persistent series generator"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1066), _1("generate_series"), _2(3), _3(true), _4(true), _5(generate_series_step_int4), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 23, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("generate_series_step_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("non-persistent series generator"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1067), _1("generate_series"), _2(2), _3(true), _4(true), _5(generate_series_int4), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("generate_series_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1068), _1("generate_series"), _2(3), _3(true), _4(true), _5(generate_series_step_int8), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 20, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("generate_series_step_int8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("non-persistent series generator"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1069), _1("generate_series"), _2(2), _3(true), _4(true), _5(generate_series_int8), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("generate_series_int8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("non-persistent series generator"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1070), _1("generate_series"), _2(3), _3(true), _4(true), _5(generate_series_step_numeric), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 1700, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("generate_series_step_numeric"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("non-persistent series generator"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1071), _1("generate_series"), _2(2), _3(true), _4(true), _5(generate_series_numeric), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("generate_series_numeric"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("non-persistent series generator"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "generate_subscripts", 2, - AddBuiltinFunc(_0(1191), _1("generate_subscripts"), _2(3), _3(true), _4(true), _5(generate_subscripts), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2277, 23, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("generate_subscripts"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1192), _1("generate_subscripts"), _2(2), _3(true), _4(true), _5(generate_subscripts_nodir), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("generate_subscripts_nodir"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1191), _1("generate_subscripts"), _2(3), _3(true), _4(true), _5(generate_subscripts), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2277, 23, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("generate_subscripts"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35("array subscripts generator"), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1192), _1("generate_subscripts"), _2(2), _3(true), _4(true), _5(generate_subscripts_nodir), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("generate_subscripts_nodir"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("array subscripts generator"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "generate_wdr_report", 1, - AddBuiltinFunc(_0(5703), _1("generate_wdr_report"), _2(5), _3(false), _4(false), _5(generate_wdr_report), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(1), _20(5, 20, 20, 2275, 2275, 2275), _21(NULL), _22(NULL), _23(5, "begin_snap_id", "end_snap_id", "report_type", "report_scope", "node_name"), _24("({CONST :consttype 2275 :consttypmod -1 :constcollid 0 :constlen -2 :constbyval false :constisnull false :ismaxvalue false :location 217538 :constvalue 1 [ 0 ] :cursor_data :row_count 0 :cur_dno 0 :is_open false :found false :not_found false :null_open false :null_fetch false})"), _25("generate_wdr_report"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5703), _1("generate_wdr_report"), _2(5), _3(false), _4(false), _5(generate_wdr_report), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(1), _20(5, 20, 20, 2275, 2275, 2275), _21(NULL), _22(NULL), _23(5, "begin_snap_id", "end_snap_id", "report_type", "report_scope", "node_name"), _24("({CONST :consttype 2275 :consttypmod -1 :constcollid 0 :constlen -2 :constbyval false :constisnull false :ismaxvalue false :location 217538 :constvalue 1 [ 0 ] :cursor_data :row_count 0 :cur_dno 0 :is_open false :found false :not_found false :null_open false :null_fetch false})"), _25("generate_wdr_report"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "get_analyzed_result", 1, - AddBuiltinFunc(_0(7802), _1("get_analyzed_result"), _2(1), _3(false), _4(true), _5(get_analyzed_result), _6(2249), _7(PG_SQLADVISOR_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 25), _21(5, 25, 25, 25, 25, 23), _22(5, 'o', 'o', 'o', 'o', 'o'), _23(5, "schema_name", "table_name", "col_name", "operator", "count"), _24(NULL), _25("get_analyzed_result"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(7802), _1("get_analyzed_result"), _2(1), _3(false), _4(true), _5(get_analyzed_result), _6(2249), _7(PG_SQLADVISOR_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 25), _21(5, 25, 25, 25, 25, 23), _22(5, 'o', 'o', 'o', 'o', 'o'), _23(5, "schema_name", "table_name", "col_name", "operator", "count"), _24(NULL), _25("get_analyzed_result"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "get_bit", 2, - AddBuiltinFunc(_0(723), _1("get_bit"), _2(2), _3(true), _4(false), _5(byteaGetBit), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 17, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteaGetBit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3032), _1("get_bit"), _2(2), _3(true), _4(false), _5(bitgetbit), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1560, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitgetbit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(723), _1("get_bit"), _2(2), _3(true), _4(false), _5(byteaGetBit), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 17, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteaGetBit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("get bit"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3032), _1("get_bit"), _2(2), _3(true), _4(false), _5(bitgetbit), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1560, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitgetbit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("get bit"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "get_byte", 1, - AddBuiltinFunc(_0(721), _1("get_byte"), _2(2), _3(true), _4(false), _5(byteaGetByte), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 17, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteaGetByte"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(721), _1("get_byte"), _2(2), _3(true), _4(false), _5(byteaGetByte), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 17, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteaGetByte"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("get byte"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "get_current_ts_config", 1, - AddBuiltinFunc(_0(3759), _1("get_current_ts_config"), _2(0), _3(true), _4(false), _5(get_current_ts_config), _6(3734), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("get_current_ts_config"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3759), _1("get_current_ts_config"), _2(0), _3(true), _4(false), _5(get_current_ts_config), _6(3734), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("get_current_ts_config"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("get current tsearch configuration"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "get_db_source_datasize", 1, - AddBuiltinFunc(_0(4208), _1("get_db_source_datasize"), _2(0), _3(true), _4(false), _5(get_db_source_datasize), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("get_db_source_datasize"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4208), _1("get_db_source_datasize"), _2(0), _3(true), _4(false), _5(get_db_source_datasize), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("get_db_source_datasize"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "get_distribution_key", 1, - AddBuiltinFunc(_0(7807), _1("get_distribution_key"), _2(0), _3(false), _4(true), _5(get_distribution_key), _6(2249), _7(PG_SQLADVISOR_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(9, 25, 25, 25, 25, 25, 1184, 1184, 25, 25), _22(9, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(9, "db_name", "schema_name", "table_name", "distribution_type", "distribution_key", "start_time", "end_time", "cost_improve", "comment"), _24(NULL), _25("get_distribution_key"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(7807), _1("get_distribution_key"), _2(0), _3(false), _4(true), _5(get_distribution_key), _6(2249), _7(PG_SQLADVISOR_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(9, 25, 25, 25, 25, 25, 1184, 1184, 25, 25), _22(9, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(9, "db_name", "schema_name", "table_name", "distribution_type", "distribution_key", "start_time", "end_time", "cost_improve", "comment"), _24(NULL), _25("get_distribution_key"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "get_dn_hist_relhash", 1, - AddBuiltinFunc(_0(5681), _1("get_dn_hist_relhash"), _2(2), _3(true), _4(false), _5(get_dn_hist_relhash), _6(5801), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("get_dn_hist_relhash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5681), _1("get_dn_hist_relhash"), _2(2), _3(true), _4(false), _5(get_dn_hist_relhash), _6(5801), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("get_dn_hist_relhash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "get_gtm_lite_status", 1, - AddBuiltinFunc(_0(5999), _1("get_gtm_lite_status"), _2(0), _3(true), _4(true), _5(get_gtm_lite_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(0), _21(2, 28, 28), _22(2, 'o', 'o'), _23(2, "backup_xid", "csn"), _24(NULL), _25("get_gtm_lite_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5999), _1("get_gtm_lite_status"), _2(0), _3(true), _4(true), _5(get_gtm_lite_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(0), _21(2, 28, 28), _22(2, 'o', 'o'), _23(2, "backup_xid", "csn"), _24(NULL), _25("get_gtm_lite_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "get_hostname", 1, - AddBuiltinFunc(_0(3977), _1("get_hostname"), _2(0), _3(true), _4(false), _5(get_hostname), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("get_hostname"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3977), _1("get_hostname"), _2(0), _3(true), _4(false), _5(get_hostname), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("get_hostname"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "get_instr_rt_percentile", 1, - AddBuiltinFunc(_0(5712), _1("get_instr_rt_percentile"), _2(1), _3(false), _4(true), _5(get_instr_rt_percentile), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(2, 20, 20), _22(2, 'o', 'o'), _23(2, "P80", "P95"), _24(NULL), _25("get_instr_rt_percentile"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5712), _1("get_instr_rt_percentile"), _2(1), _3(false), _4(true), _5(get_instr_rt_percentile), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(2, 20, 20), _22(2, 'o', 'o'), _23(2, "P80", "P95"), _24(NULL), _25("get_instr_rt_percentile"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "get_instr_unique_sql", 1, - AddBuiltinFunc(_0(5702), _1("get_instr_unique_sql"), _2(0), _3(false), _4(true), _5(get_instr_unique_sql), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(44, 19, 23, 19, 26, 20, 25, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 25, 25, 25, 25, 1184, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20), _22(44, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o','o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(44, "node_name", "node_id", "user_name", "user_id", "unique_sql_id", "query", "n_calls", "min_elapse_time", "max_elapse_time", "total_elapse_time", "n_returned_rows", "n_tuples_fetched", "n_tuples_returned", "n_tuples_inserted", "n_tuples_updated", "n_tuples_deleted", "n_blocks_fetched", "n_blocks_hit", "n_soft_parse", "n_hard_parse", "db_time", "cpu_time", "execution_time", "parse_time", "plan_time", "rewrite_time", "pl_execution_time", "pl_compilation_time", "data_io_time", "net_send_info", "net_recv_info", "net_stream_send_info", "net_stream_recv_info", "last_updated", "sort_count", "sort_time", "sort_mem_used", "sort_spill_count", "sort_spill_size", "hash_count", "hash_time", "hash_mem_used", "hash_spill_count", "hash_spill_size"), _24(NULL), _25("get_instr_unique_sql"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5702), _1("get_instr_unique_sql"), _2(0), _3(false), _4(true), _5(get_instr_unique_sql), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(44, 19, 23, 19, 26, 20, 25, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 25, 25, 25, 25, 1184, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20), _22(44, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o','o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(44, "node_name", "node_id", "user_name", "user_id", "unique_sql_id", "query", "n_calls", "min_elapse_time", "max_elapse_time", "total_elapse_time", "n_returned_rows", "n_tuples_fetched", "n_tuples_returned", "n_tuples_inserted", "n_tuples_updated", "n_tuples_deleted", "n_blocks_fetched", "n_blocks_hit", "n_soft_parse", "n_hard_parse", "db_time", "cpu_time", "execution_time", "parse_time", "plan_time", "rewrite_time", "pl_execution_time", "pl_compilation_time", "data_io_time", "net_send_info", "net_recv_info", "net_stream_send_info", "net_stream_recv_info", "last_updated", "sort_count", "sort_time", "sort_mem_used", "sort_spill_count", "sort_spill_size", "hash_count", "hash_time", "hash_mem_used", "hash_spill_count", "hash_spill_size"), _24(NULL), _25("get_instr_unique_sql"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "get_instr_user_login", 1, - AddBuiltinFunc(_0(5706), _1("get_instr_user_login"), _2(0), _3(false), _4(true), _5(get_instr_user_login), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(5, 25, 25, 23, 20, 20), _22(5, 'o', 'o', 'o', 'o', 'o'), _23(5, "node_name", "user_name", "user_id", "login_counter", "logout_counter"), _24(NULL), _25("get_instr_user_login"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5706), _1("get_instr_user_login"), _2(0), _3(false), _4(true), _5(get_instr_user_login), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(5, 25, 25, 23, 20, 20), _22(5, 'o', 'o', 'o', 'o', 'o'), _23(5, "node_name", "user_name", "user_id", "login_counter", "logout_counter"), _24(NULL), _25("get_instr_user_login"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "get_instr_wait_event", 1, - AddBuiltinFunc(_0(5705), _1("get_instr_wait_event"), _2(1), _3(false), _4(true), _5(get_instr_wait_event), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(11, 23, 25, 25, 25, 20, 20, 20, 20, 20, 20, 1184), _22(11, 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(11, "param", "nodename", "type", "event", "wait", "failed_wait", "total_wait_time", "avg_wait_time", "max_wait_time", "min_wait_time", "last_updated"), _24(NULL), _25("get_instr_wait_event"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5705), _1("get_instr_wait_event"), _2(1), _3(false), _4(true), _5(get_instr_wait_event), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(11, 23, 25, 25, 25, 20, 20, 20, 20, 20, 20, 1184), _22(11, 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(11, "param", "nodename", "type", "event", "wait", "failed_wait", "total_wait_time", "avg_wait_time", "max_wait_time", "min_wait_time", "last_updated"), _24(NULL), _25("get_instr_wait_event"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "get_instr_workload_info", 1, - AddBuiltinFunc(_0(5000), _1("get_instr_workload_info"), _2(1), _3(false), _4(true), _5(get_instr_workload_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(13, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20), _22(13, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(13, "user_oid", "commit_counter", "rollback_counter", "resp_min", "resp_max", "resp_avg", "resp_total", "bg_commit_counter", "bg_rollback_counter", "bg_resp_min", "bg_resp_max", "bg_resp_avg", "bg_resp_total"), _24(NULL), _25("get_instr_workload_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5000), _1("get_instr_workload_info"), _2(1), _3(false), _4(true), _5(get_instr_workload_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(13, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20), _22(13, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(13, "user_oid", "commit_counter", "rollback_counter", "resp_min", "resp_max", "resp_avg", "resp_total", "bg_commit_counter", "bg_rollback_counter", "bg_resp_min", "bg_resp_max", "bg_resp_avg", "bg_resp_total"), _24(NULL), _25("get_instr_workload_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "get_local_active_session", 1, - AddBuiltinFunc(_0(5721), _1("get_local_active_session"), _2(1), _3(false), _4(true), _5(get_local_active_session), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(27, 20, 1184, 16, 26, 20, 20, 1184, 25, 23, 20, 23, 23, 26, 25, 869, 25, 23, 20, 20, 26, 23, 25, 25, 25, 20, 25, 25), _22(27, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(27, "sampleid", "sample_time", "need_flush_sample", "databaseid", "thread_id", "sessionid", "start_time", "event", "lwtid", "psessionid", "tlevel", "smpid", "userid", "application_name", "client_addr", "client_hostname", "client_port", "query_id", "unique_query_id", "user_id", "cn_id", "unique_query", "locktag", "lockmode", "block_sessionid", "wait_status", "global_sessionid"), _24(NULL), _25("get_local_active_session"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5721), _1("get_local_active_session"), _2(1), _3(false), _4(true), _5(get_local_active_session), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(27, 20, 1184, 16, 26, 20, 20, 1184, 25, 23, 20, 23, 23, 26, 25, 869, 25, 23, 20, 20, 26, 23, 25, 25, 25, 20, 25, 25), _22(27, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(27, "sampleid", "sample_time", "need_flush_sample", "databaseid", "thread_id", "sessionid", "start_time", "event", "lwtid", "psessionid", "tlevel", "smpid", "userid", "application_name", "client_addr", "client_hostname", "client_port", "query_id", "unique_query_id", "user_id", "cn_id", "unique_query", "locktag", "lockmode", "block_sessionid", "wait_status", "global_sessionid"), _24(NULL), _25("get_local_active_session"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "get_local_prepared_xact", 1, - AddBuiltinFunc(_0(3332), _1("get_local_prepared_xact"), _2(0), _3(false), _4(true), _5(get_local_prepared_xact), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(6, 28, 25, 1184, 26, 26, 25), _22(6, 'o', 'o', 'o', 'o', 'o', 'o'), _23(6, "transaction", "gid", "prepared", "ownerid", "dbid", "node_name"), _24(NULL), _25("get_local_prepared_xact"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3332), _1("get_local_prepared_xact"), _2(0), _3(false), _4(true), _5(get_local_prepared_xact), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(6, 28, 25, 1184, 26, 26, 25), _22(6, 'o', 'o', 'o', 'o', 'o', 'o'), _23(6, "transaction", "gid", "prepared", "ownerid", "dbid", "node_name"), _24(NULL), _25("get_local_prepared_xact"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "get_local_rel_iostat", 1, - AddBuiltinFunc(_0(5708), _1("get_local_rel_iostat"), _2(0), _3(false), _4(true), _5(get_local_rel_iostat), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(4, 20, 20, 20, 20), _22(4, 'o', 'o', 'o', 'o'), _23(4, "phyrds", "phywrts", "phyblkrd", "phyblkwrt"), _24(NULL), _25("get_local_rel_iostat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5708), _1("get_local_rel_iostat"), _2(0), _3(false), _4(true), _5(get_local_rel_iostat), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(4, 20, 20, 20, 20), _22(4, 'o', 'o', 'o', 'o'), _23(4, "phyrds", "phywrts", "phyblkrd", "phyblkwrt"), _24(NULL), _25("get_local_rel_iostat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "get_node_stat_reset_time", 1, - AddBuiltinFunc(_0(5720), _1("get_node_stat_reset_time"), _2(0), _3(true), _4(false), _5(get_node_stat_reset_time), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("get_node_stat_reset_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5720), _1("get_node_stat_reset_time"), _2(0), _3(true), _4(false), _5(get_node_stat_reset_time), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("get_node_stat_reset_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "get_nodename", 1, - AddBuiltinFunc(_0(5015), _1("get_nodename"), _2(0), _3(true), _4(false), _5(pg_get_nodename), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_nodename"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5015), _1("get_nodename"), _2(0), _3(true), _4(false), _5(pg_get_nodename), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_nodename"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "get_paxos_replication_info", 1, + AddBuiltinFunc(_0(8001), _1("get_paxos_replication_info"), _2(0), _3(false), _4(true), _5(get_paxos_replication_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(6, 25, 25, 25, 25, 25, 25), _22(6, 'o', 'o', 'o', 'o', 'o', 'o'), _23(6, "paxos_write_location", "paxos_commit_location", "local_write_location", "local_flush_location", "local_replay_location", "dcf_replication_info"), _24(NULL), _25("get_paxos_replication_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "get_prepared_pending_xid", 1, - AddBuiltinFunc(_0(3199), _1("get_prepared_pending_xid"), _2(0), _3(true), _4(false), _5(get_prepared_pending_xid), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("get_prepared_pending_xid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3199), _1("get_prepared_pending_xid"), _2(0), _3(true), _4(false), _5(get_prepared_pending_xid), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("get_prepared_pending_xid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "get_remote_prepared_xacts", 1, - AddBuiltinFunc(_0(3333), _1("get_remote_prepared_xacts"), _2(0), _3(false), _4(true), _5(get_remote_prepared_xacts), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(6, 28, 25, 1184, 19, 19, 25), _22(6, 'o', 'o', 'o', 'o', 'o', 'o'), _23(6, "transaction", "gid", "prepared", "owner", "database", "node_name"), _24(NULL), _25("get_remote_prepared_xacts"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3333), _1("get_remote_prepared_xacts"), _2(0), _3(false), _4(true), _5(get_remote_prepared_xacts), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(6, 28, 25, 1184, 19, 19, 25), _22(6, 'o', 'o', 'o', 'o', 'o', 'o'), _23(6, "transaction", "gid", "prepared", "owner", "database", "node_name"), _24(NULL), _25("get_remote_prepared_xacts"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "get_schema_oid", 1, - AddBuiltinFunc(_0(3953), _1("get_schema_oid"), _2(1), _3(true), _4(false), _5(get_schema_oid), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("get_schema_oid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3953), _1("get_schema_oid"), _2(1), _3(true), _4(false), _5(get_schema_oid), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("get_schema_oid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "get_wait_event_info", 1, - AddBuiltinFunc(_0(5723), _1("get_wait_event_info"), _2(1), _3(false), _4(true), _5(get_wait_event_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(3, 25, 25, 25), _22(3, 'o', 'o', 'o'), _23(3, "module", "type", "event"), _24(NULL), _25("get_wait_event_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5723), _1("get_wait_event_info"), _2(1), _3(false), _4(true), _5(get_wait_event_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(3, 25, 25, 25), _22(3, 'o', 'o', 'o'), _23(3, "module", "type", "event"), _24(NULL), _25("get_wait_event_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "getbucket", 31, - AddBuiltinFunc(_0(4046), _1("getbucket"), _2(2), _3(true), _4(false), _5(getbucket), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2249, 18), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("getbucket"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4100), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketint4), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketint4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4102), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketint2), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketint2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4104), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketint8), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketint8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4106), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketbpchar), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketbpchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4108), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketchar), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 18, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4110), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketvarchar), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1043, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketvarchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4112), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketdate), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketdate"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4114), _1("getbucket"), _2(2), _3(true), _4(false), _5(buckettime), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1083, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("buckettime"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4116), _1("getbucket"), _2(2), _3(true), _4(false), _5(buckettimestamp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("buckettimestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4118), _1("getbucket"), _2(2), _3(true), _4(false), _5(buckettimetz), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1266, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("buckettimetz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4120), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketinterval), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1186, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketinterval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4122), _1("getbucket"), _2(2), _3(true), _4(false), _5(buckettimestamptz), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1184, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("buckettimestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4124), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketint1), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 5545, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketint1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4126), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketsmalldatetime), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 9003, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketsmalldatetime"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4128), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketnvarchar2), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3969, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketnvarchar2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4131), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketnumeric), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketnumeric"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4133), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketoid), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketoid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4135), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketabstime), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 702, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketabstime"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4137), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketreltime), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 703, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketreltime"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4139), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketcash), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 790, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketcash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4141), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketbytea), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 17, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketbytea"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4143), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketraw), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 86, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketraw"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4145), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketbool), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 16, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketbool"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4147), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketname), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 19, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketname"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4149), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketint2vector), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 22, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketint2vector"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4151), _1("getbucket"), _2(2), _3(true), _4(false), _5(buckettext), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("buckettext"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4153), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketoidvector), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 30, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketoidvector"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4155), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketfloat4), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 700, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketfloat4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4157), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketfloat8), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketfloat8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(6000), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketuuid), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2950, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketuuid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4046), _1("getbucket"), _2(2), _3(true), _4(false), _5(getbucket), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2249, 18), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("getbucket"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4100), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketint4), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketint4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4102), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketint2), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketint2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4104), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketint8), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketint8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4106), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketbpchar), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1042, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketbpchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4108), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketchar), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 18, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4110), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketvarchar), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1043, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketvarchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4112), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketdate), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketdate"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4114), _1("getbucket"), _2(2), _3(true), _4(false), _5(buckettime), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1083, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("buckettime"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4116), _1("getbucket"), _2(2), _3(true), _4(false), _5(buckettimestamp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("buckettimestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4118), _1("getbucket"), _2(2), _3(true), _4(false), _5(buckettimetz), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1266, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("buckettimetz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4120), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketinterval), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1186, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketinterval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4122), _1("getbucket"), _2(2), _3(true), _4(false), _5(buckettimestamptz), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1184, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("buckettimestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4124), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketint1), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 5545, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketint1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4126), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketsmalldatetime), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 9003, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketsmalldatetime"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4128), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketnvarchar2), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3969, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketnvarchar2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4131), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketnumeric), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketnumeric"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4133), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketoid), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketoid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4135), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketabstime), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 702, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketabstime"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4137), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketreltime), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 703, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketreltime"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4139), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketcash), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 790, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketcash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4141), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketbytea), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 17, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketbytea"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4143), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketraw), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 86, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketraw"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4145), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketbool), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 16, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketbool"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4147), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketname), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 19, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketname"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4149), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketint2vector), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 22, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketint2vector"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4151), _1("getbucket"), _2(2), _3(true), _4(false), _5(buckettext), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("buckettext"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4153), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketoidvector), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 30, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketoidvector"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4155), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketfloat4), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 700, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketfloat4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4157), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketfloat8), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketfloat8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(6000), _1("getbucket"), _2(2), _3(true), _4(false), _5(bucketuuid), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2950, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bucketuuid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "getdatabaseencoding", 1, - AddBuiltinFunc(_0(1039), _1("getdatabaseencoding"), _2(0), _3(true), _4(false), _5(getdatabaseencoding), _6(19), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("getdatabaseencoding"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1039), _1("getdatabaseencoding"), _2(0), _3(true), _4(false), _5(getdatabaseencoding), _6(19), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("getdatabaseencoding"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("encoding name of current database"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "getdistributekey", 1, - AddBuiltinFunc(_0(4047), _1("getdistributekey"), _2(1), _3(true), _4(false), _5(getDistributeKey), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2205), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("getDistributeKey"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4047), _1("getdistributekey"), _2(1), _3(true), _4(false), _5(getDistributeKey), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2205), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("getDistributeKey"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "getpgusername", 1, - AddBuiltinFunc(_0(GETPGUSERNAMEFUNCOID), _1("getpgusername"), _2(0), _3(true), _4(false), _5(current_user), _6(19), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("current_user"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(GETPGUSERNAMEFUNCOID), _1("getpgusername"), _2(0), _3(true), _4(false), _5(current_user), _6(19), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("current_user"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gin_clean_pending_list", 1, - AddBuiltinFunc(_0(3989), _1("gin_clean_pending_list"), _2(1), _3(true), _4(false), _5(gin_clean_pending_list), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2205), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gin_clean_pending_list"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3989), _1("gin_clean_pending_list"), _2(1), _3(true), _4(false), _5(gin_clean_pending_list), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2205), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gin_clean_pending_list"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("clean up GIN pending list"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gin_cmp_prefix", 1, - AddBuiltinFunc(_0(2700), _1("gin_cmp_prefix"), _2(4), _3(true), _4(false), _5(gin_cmp_prefix), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 25, 25, 21, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gin_cmp_prefix"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2700), _1("gin_cmp_prefix"), _2(4), _3(true), _4(false), _5(gin_cmp_prefix), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 25, 25, 21, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gin_cmp_prefix"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GIN tsvector support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gin_cmp_tslexeme", 1, - AddBuiltinFunc(_0(3724), _1("gin_cmp_tslexeme"), _2(2), _3(true), _4(false), _5(gin_cmp_tslexeme), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gin_cmp_tslexeme"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3724), _1("gin_cmp_tslexeme"), _2(2), _3(true), _4(false), _5(gin_cmp_tslexeme), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gin_cmp_tslexeme"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GIN tsvector support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gin_compare_jsonb", 1, - AddBuiltinFunc(_0(3498), _1("gin_compare_jsonb"), _2(2), _3(true), _4(false), _5(gin_compare_jsonb), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gin_compare_jsonb"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3498), _1("gin_compare_jsonb"), _2(2), _3(true), _4(false), _5(gin_compare_jsonb), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gin_compare_jsonb"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gin_consistent_jsonb", 1, - AddBuiltinFunc(_0(3497), _1("gin_consistent_jsonb"), _2(8), _3(true), _4(false), _5(gin_consistent_jsonb), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(8, 2281, 21, 2277, 23, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gin_consistent_jsonb"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3497), _1("gin_consistent_jsonb"), _2(8), _3(true), _4(false), _5(gin_consistent_jsonb), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(8, 2281, 21, 2277, 23, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gin_consistent_jsonb"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gin_consistent_jsonb_hash", 1, - AddBuiltinFunc(_0(3487), _1("gin_consistent_jsonb_hash"), _2(8), _3(true), _4(false), _5(gin_consistent_jsonb_hash), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(8, 2281, 21, 2277, 23, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gin_consistent_jsonb_hash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3487), _1("gin_consistent_jsonb_hash"), _2(8), _3(true), _4(false), _5(gin_consistent_jsonb_hash), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(8, 2281, 21, 2277, 23, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gin_consistent_jsonb_hash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gin_extract_jsonb", 1, - AddBuiltinFunc(_0(3482), _1("gin_extract_jsonb"), _2(3), _3(true), _4(false), _5(gin_extract_jsonb), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gin_extract_jsonb"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3482), _1("gin_extract_jsonb"), _2(3), _3(true), _4(false), _5(gin_extract_jsonb), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gin_extract_jsonb"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gin_extract_jsonb_hash", 1, - AddBuiltinFunc(_0(3492), _1("gin_extract_jsonb_hash"), _2(3), _3(true), _4(false), _5(gin_extract_jsonb_hash), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gin_extract_jsonb_hash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3492), _1("gin_extract_jsonb_hash"), _2(3), _3(true), _4(false), _5(gin_extract_jsonb_hash), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gin_extract_jsonb_hash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gin_extract_jsonb_query", 1, - AddBuiltinFunc(_0(3493), _1("gin_extract_jsonb_query"), _2(7), _3(true), _4(false), _5(gin_extract_jsonb_query), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(7, 2277, 2281, 21, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gin_extract_jsonb_query"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3493), _1("gin_extract_jsonb_query"), _2(7), _3(true), _4(false), _5(gin_extract_jsonb_query), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(7, 2277, 2281, 21, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gin_extract_jsonb_query"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gin_extract_jsonb_query_hash", 1, - AddBuiltinFunc(_0(3486), _1("gin_extract_jsonb_query_hash"), _2(7), _3(true), _4(false), _5(gin_extract_jsonb_query_hash), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(7, 2277, 2281, 21, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gin_extract_jsonb_query_hash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3486), _1("gin_extract_jsonb_query_hash"), _2(7), _3(true), _4(false), _5(gin_extract_jsonb_query_hash), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(7, 2277, 2281, 21, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gin_extract_jsonb_query_hash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gin_extract_tsquery", 2, - AddBuiltinFunc(_0(3087), _1("gin_extract_tsquery"), _2(5), _3(true), _4(false), _5(gin_extract_tsquery_5args), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(5, 3615, 2281, 21, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gin_extract_tsquery_5args"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3657), _1("gin_extract_tsquery"), _2(7), _3(true), _4(false), _5(gin_extract_tsquery), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(7, 3615, 2281, 21, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gin_extract_tsquery"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3087), _1("gin_extract_tsquery"), _2(5), _3(true), _4(false), _5(gin_extract_tsquery_5args), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(5, 3615, 2281, 21, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gin_extract_tsquery_5args"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GIN tsvector support (obsolete)"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3657), _1("gin_extract_tsquery"), _2(7), _3(true), _4(false), _5(gin_extract_tsquery), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(7, 3615, 2281, 21, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gin_extract_tsquery"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GIN tsvector support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gin_extract_tsvector", 2, - AddBuiltinFunc(_0(3077), _1("gin_extract_tsvector"), _2(2), _3(true), _4(false), _5(gin_extract_tsvector_2args), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3614, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gin_extract_tsvector_2args"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3656), _1("gin_extract_tsvector"), _2(3), _3(true), _4(false), _5(gin_extract_tsvector), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 3614, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gin_extract_tsvector"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3077), _1("gin_extract_tsvector"), _2(2), _3(true), _4(false), _5(gin_extract_tsvector_2args), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3614, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gin_extract_tsvector_2args"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GIN tsvector support (obsolete)"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3656), _1("gin_extract_tsvector"), _2(3), _3(true), _4(false), _5(gin_extract_tsvector), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 3614, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gin_extract_tsvector"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GIN tsvector support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gin_triconsistent_jsonb", 1, - AddBuiltinFunc(_0(3494), _1("gin_triconsistent_jsonb"), _2(7), _3(true), _4(false), _5(gin_triconsistent_jsonb), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(7, 2281, 21, 2277, 23, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gin_triconsistent_jsonb"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3494), _1("gin_triconsistent_jsonb"), _2(7), _3(true), _4(false), _5(gin_triconsistent_jsonb), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(7, 2281, 21, 2277, 23, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gin_triconsistent_jsonb"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gin_triconsistent_jsonb_hash", 1, - AddBuiltinFunc(_0(3495), _1("gin_triconsistent_jsonb_hash"), _2(7), _3(true), _4(false), _5(gin_triconsistent_jsonb_hash), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(7, 2281, 21, 2277, 23, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gin_triconsistent_jsonb_hash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3495), _1("gin_triconsistent_jsonb_hash"), _2(7), _3(true), _4(false), _5(gin_triconsistent_jsonb_hash), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(7, 2281, 21, 2277, 23, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gin_triconsistent_jsonb_hash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gin_tsquery_consistent", 2, - AddBuiltinFunc(_0(3088), _1("gin_tsquery_consistent"), _2(6), _3(true), _4(false), _5(gin_tsquery_consistent_6args), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(6, 2281, 21, 3615, 23, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gin_tsquery_consistent_6args"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3658), _1("gin_tsquery_consistent"), _2(8), _3(true), _4(false), _5(gin_tsquery_consistent), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(8, 2281, 21, 3615, 23, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gin_tsquery_consistent"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3088), _1("gin_tsquery_consistent"), _2(6), _3(true), _4(false), _5(gin_tsquery_consistent_6args), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(6, 2281, 21, 3615, 23, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gin_tsquery_consistent_6args"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GIN tsvector support (obsolete)"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3658), _1("gin_tsquery_consistent"), _2(8), _3(true), _4(false), _5(gin_tsquery_consistent), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(8, 2281, 21, 3615, 23, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gin_tsquery_consistent"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GIN tsvector support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gin_tsquery_triconsistent", 1, - AddBuiltinFunc(_0(3921), _1("gin_tsquery_triconsistent"), _2(7), _3(true), _4(false), _5(gin_tsquery_triconsistent), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(7, 2281, 21, 3615, 23, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gin_tsquery_triconsistent"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3921), _1("gin_tsquery_triconsistent"), _2(7), _3(true), _4(false), _5(gin_tsquery_triconsistent), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(7, 2281, 21, 3615, 23, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gin_tsquery_triconsistent"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GIN tsvector support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ginarrayconsistent", 1, - AddBuiltinFunc(_0(2744), _1("ginarrayconsistent"), _2(8), _3(true), _4(false), _5(ginarrayconsistent), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(8, 2281, 21, 2277, 23, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ginarrayconsistent"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2744), _1("ginarrayconsistent"), _2(8), _3(true), _4(false), _5(ginarrayconsistent), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(8, 2281, 21, 2277, 23, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ginarrayconsistent"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GIN array support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ginarrayextract", 2, - AddBuiltinFunc(_0(2743), _1("ginarrayextract"), _2(3), _3(true), _4(false), _5(ginarrayextract), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2277, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ginarrayextract"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3076), _1("ginarrayextract"), _2(2), _3(true), _4(false), _5(ginarrayextract_2args), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ginarrayextract_2args"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2743), _1("ginarrayextract"), _2(3), _3(true), _4(false), _5(ginarrayextract), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2277, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ginarrayextract"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GIN array support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3076), _1("ginarrayextract"), _2(2), _3(true), _4(false), _5(ginarrayextract_2args), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2277, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ginarrayextract_2args"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GIN array support (obsolete)"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ginarraytriconsistent", 1, - AddBuiltinFunc(_0(3920), _1("ginarraytriconsistent"), _2(7), _3(true), _4(false), _5(ginarraytriconsistent), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(7, 2281, 21, 2277, 23, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ginarraytriconsistent"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3920), _1("ginarraytriconsistent"), _2(7), _3(true), _4(false), _5(ginarraytriconsistent), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(7, 2281, 21, 2277, 23, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ginarraytriconsistent"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GIN array support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ginbeginscan", 1, - AddBuiltinFunc(_0(2733), _1("ginbeginscan"), _2(3), _3(true), _4(false), _5(ginbeginscan), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ginbeginscan"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2733), _1("ginbeginscan"), _2(3), _3(true), _4(false), _5(ginbeginscan), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ginbeginscan"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ginbuild", 1, - AddBuiltinFunc(_0(2738), _1("ginbuild"), _2(3), _3(true), _4(false), _5(ginbuild), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ginbuild"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2738), _1("ginbuild"), _2(3), _3(true), _4(false), _5(ginbuild), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ginbuild"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ginbuildempty", 1, - AddBuiltinFunc(_0(325), _1("ginbuildempty"), _2(1), _3(true), _4(false), _5(ginbuildempty), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ginbuildempty"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(325), _1("ginbuildempty"), _2(1), _3(true), _4(false), _5(ginbuildempty), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ginbuildempty"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ginbulkdelete", 1, - AddBuiltinFunc(_0(2739), _1("ginbulkdelete"), _2(4), _3(true), _4(false), _5(ginbulkdelete), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(4, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ginbulkdelete"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2739), _1("ginbulkdelete"), _2(4), _3(true), _4(false), _5(ginbulkdelete), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(4, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ginbulkdelete"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gincostestimate", 1, - AddBuiltinFunc(_0(2741), _1("gincostestimate"), _2(7), _3(true), _4(false), _5(gincostestimate), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(7, 2281, 2281, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gincostestimate"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2741), _1("gincostestimate"), _2(7), _3(true), _4(false), _5(gincostestimate), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(7, 2281, 2281, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gincostestimate"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ginendscan", 1, - AddBuiltinFunc(_0(2735), _1("ginendscan"), _2(1), _3(true), _4(false), _5(ginendscan), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ginendscan"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2735), _1("ginendscan"), _2(1), _3(true), _4(false), _5(ginendscan), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ginendscan"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gingetbitmap", 1, - AddBuiltinFunc(_0(2731), _1("gingetbitmap"), _2(2), _3(true), _4(false), _5(gingetbitmap), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gingetbitmap"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2731), _1("gingetbitmap"), _2(2), _3(true), _4(false), _5(gingetbitmap), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gingetbitmap"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gininsert", 1, - AddBuiltinFunc(_0(2732), _1("gininsert"), _2(6), _3(true), _4(false), _5(gininsert), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(6, 2281, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gininsert"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2732), _1("gininsert"), _2(6), _3(true), _4(false), _5(gininsert), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(6, 2281, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gininsert"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ginmarkpos", 1, - AddBuiltinFunc(_0(2736), _1("ginmarkpos"), _2(1), _3(true), _4(false), _5(ginmarkpos), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ginmarkpos"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2736), _1("ginmarkpos"), _2(1), _3(true), _4(false), _5(ginmarkpos), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ginmarkpos"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ginmerge", 1, - AddBuiltinFunc(_0(3186), _1("ginmerge"), _2(5), _3(true), _4(false), _5(ginmerge), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(5, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ginmerge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3186), _1("ginmerge"), _2(5), _3(true), _4(false), _5(ginmerge), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(5, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ginmerge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ginoptions", 1, - AddBuiltinFunc(_0(2788), _1("ginoptions"), _2(2), _3(true), _4(false), _5(ginoptions), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1009, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ginoptions"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2788), _1("ginoptions"), _2(2), _3(true), _4(false), _5(ginoptions), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1009, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ginoptions"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ginqueryarrayextract", 1, - AddBuiltinFunc(_0(2774), _1("ginqueryarrayextract"), _2(7), _3(true), _4(false), _5(ginqueryarrayextract), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(7, 2277, 2281, 21, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ginqueryarrayextract"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2774), _1("ginqueryarrayextract"), _2(7), _3(true), _4(false), _5(ginqueryarrayextract), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(7, 2277, 2281, 21, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ginqueryarrayextract"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GIN array support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ginrescan", 1, - AddBuiltinFunc(_0(2734), _1("ginrescan"), _2(5), _3(true), _4(false), _5(ginrescan), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(5, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ginrescan"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2734), _1("ginrescan"), _2(5), _3(true), _4(false), _5(ginrescan), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(5, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ginrescan"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ginrestrpos", 1, - AddBuiltinFunc(_0(2737), _1("ginrestrpos"), _2(1), _3(true), _4(false), _5(ginrestrpos), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ginrestrpos"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2737), _1("ginrestrpos"), _2(1), _3(true), _4(false), _5(ginrestrpos), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ginrestrpos"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ginvacuumcleanup", 1, - AddBuiltinFunc(_0(2740), _1("ginvacuumcleanup"), _2(2), _3(true), _4(false), _5(ginvacuumcleanup), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ginvacuumcleanup"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2740), _1("ginvacuumcleanup"), _2(2), _3(true), _4(false), _5(ginvacuumcleanup), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ginvacuumcleanup"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gist_box_compress", 1, - AddBuiltinFunc(_0(2579), _1("gist_box_compress"), _2(1), _3(true), _4(false), _5(gist_box_compress), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gist_box_compress"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2579), _1("gist_box_compress"), _2(1), _3(true), _4(false), _5(gist_box_compress), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gist_box_compress"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gist_box_consistent", 1, - AddBuiltinFunc(_0(2578), _1("gist_box_consistent"), _2(5), _3(true), _4(false), _5(gist_box_consistent), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(5, 2281, 603, 23, 26, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gist_box_consistent"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2578), _1("gist_box_consistent"), _2(5), _3(true), _4(false), _5(gist_box_consistent), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(5, 2281, 603, 23, 26, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gist_box_consistent"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GiST support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gist_box_decompress", 1, - AddBuiltinFunc(_0(2580), _1("gist_box_decompress"), _2(1), _3(true), _4(false), _5(gist_box_decompress), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gist_box_decompress"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2580), _1("gist_box_decompress"), _2(1), _3(true), _4(false), _5(gist_box_decompress), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gist_box_decompress"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gist_box_penalty", 1, - AddBuiltinFunc(_0(2581), _1("gist_box_penalty"), _2(3), _3(true), _4(false), _5(gist_box_penalty), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gist_box_penalty"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2581), _1("gist_box_penalty"), _2(3), _3(true), _4(false), _5(gist_box_penalty), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gist_box_penalty"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GiST support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gist_box_picksplit", 1, - AddBuiltinFunc(_0(2582), _1("gist_box_picksplit"), _2(2), _3(true), _4(false), _5(gist_box_picksplit), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gist_box_picksplit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2582), _1("gist_box_picksplit"), _2(2), _3(true), _4(false), _5(gist_box_picksplit), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gist_box_picksplit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GiST support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gist_box_same", 1, - AddBuiltinFunc(_0(2584), _1("gist_box_same"), _2(3), _3(true), _4(false), _5(gist_box_same), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 603, 603, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gist_box_same"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2584), _1("gist_box_same"), _2(3), _3(true), _4(false), _5(gist_box_same), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 603, 603, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gist_box_same"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GiST support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gist_box_union", 1, - AddBuiltinFunc(_0(2583), _1("gist_box_union"), _2(2), _3(true), _4(false), _5(gist_box_union), _6(603), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gist_box_union"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2583), _1("gist_box_union"), _2(2), _3(true), _4(false), _5(gist_box_union), _6(603), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gist_box_union"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GiST support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gist_circle_compress", 1, - AddBuiltinFunc(_0(2592), _1("gist_circle_compress"), _2(1), _3(true), _4(false), _5(gist_circle_compress), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gist_circle_compress"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2592), _1("gist_circle_compress"), _2(1), _3(true), _4(false), _5(gist_circle_compress), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gist_circle_compress"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GiST support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gist_circle_consistent", 1, - AddBuiltinFunc(_0(2591), _1("gist_circle_consistent"), _2(5), _3(true), _4(false), _5(gist_circle_consistent), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(5, 2281, 718, 23, 26, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gist_circle_consistent"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2591), _1("gist_circle_consistent"), _2(5), _3(true), _4(false), _5(gist_circle_consistent), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(5, 2281, 718, 23, 26, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gist_circle_consistent"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GiST support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gist_point_compress", 1, - AddBuiltinFunc(_0(1030), _1("gist_point_compress"), _2(1), _3(true), _4(false), _5(gist_point_compress), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gist_point_compress"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1030), _1("gist_point_compress"), _2(1), _3(true), _4(false), _5(gist_point_compress), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gist_point_compress"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GiST support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gist_point_consistent", 1, - AddBuiltinFunc(_0(2179), _1("gist_point_consistent"), _2(5), _3(true), _4(false), _5(gist_point_consistent), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(5, 2281, 600, 23, 26, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gist_point_consistent"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2179), _1("gist_point_consistent"), _2(5), _3(true), _4(false), _5(gist_point_consistent), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(5, 2281, 600, 23, 26, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gist_point_consistent"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GiST support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gist_point_distance", 1, - AddBuiltinFunc(_0(3064), _1("gist_point_distance"), _2(4), _3(true), _4(false), _5(gist_point_distance), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 2281, 600, 23, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gist_point_distance"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3064), _1("gist_point_distance"), _2(4), _3(true), _4(false), _5(gist_point_distance), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 2281, 600, 23, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gist_point_distance"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GiST support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gist_poly_compress", 1, - AddBuiltinFunc(_0(2586), _1("gist_poly_compress"), _2(1), _3(true), _4(false), _5(gist_poly_compress), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gist_poly_compress"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2586), _1("gist_poly_compress"), _2(1), _3(true), _4(false), _5(gist_poly_compress), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gist_poly_compress"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GiST support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gist_poly_consistent", 1, - AddBuiltinFunc(_0(2585), _1("gist_poly_consistent"), _2(5), _3(true), _4(false), _5(gist_poly_consistent), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(5, 2281, 604, 23, 26, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gist_poly_consistent"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2585), _1("gist_poly_consistent"), _2(5), _3(true), _4(false), _5(gist_poly_consistent), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(5, 2281, 604, 23, 26, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gist_poly_consistent"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GiST support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gistbeginscan", 1, - AddBuiltinFunc(_0(777), _1("gistbeginscan"), _2(3), _3(true), _4(false), _5(gistbeginscan), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gistbeginscan"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(777), _1("gistbeginscan"), _2(3), _3(true), _4(false), _5(gistbeginscan), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gistbeginscan"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gistbuild", 1, - AddBuiltinFunc(_0(782), _1("gistbuild"), _2(3), _3(true), _4(false), _5(gistbuild), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gistbuild"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(782), _1("gistbuild"), _2(3), _3(true), _4(false), _5(gistbuild), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gistbuild"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gistbuildempty", 1, - AddBuiltinFunc(_0(326), _1("gistbuildempty"), _2(1), _3(true), _4(false), _5(gistbuildempty), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gistbuildempty"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(326), _1("gistbuildempty"), _2(1), _3(true), _4(false), _5(gistbuildempty), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gistbuildempty"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gistbulkdelete", 1, - AddBuiltinFunc(_0(776), _1("gistbulkdelete"), _2(4), _3(true), _4(false), _5(gistbulkdelete), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(4, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gistbulkdelete"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(776), _1("gistbulkdelete"), _2(4), _3(true), _4(false), _5(gistbulkdelete), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(4, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gistbulkdelete"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gistcostestimate", 1, - AddBuiltinFunc(_0(772), _1("gistcostestimate"), _2(7), _3(true), _4(false), _5(gistcostestimate), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(7, 2281, 2281, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gistcostestimate"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(772), _1("gistcostestimate"), _2(7), _3(true), _4(false), _5(gistcostestimate), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(7, 2281, 2281, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gistcostestimate"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gistendscan", 1, - AddBuiltinFunc(_0(779), _1("gistendscan"), _2(1), _3(true), _4(false), _5(gistendscan), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gistendscan"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(779), _1("gistendscan"), _2(1), _3(true), _4(false), _5(gistendscan), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gistendscan"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gistgetbitmap", 1, - AddBuiltinFunc(_0(638), _1("gistgetbitmap"), _2(2), _3(true), _4(false), _5(gistgetbitmap), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gistgetbitmap"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(638), _1("gistgetbitmap"), _2(2), _3(true), _4(false), _5(gistgetbitmap), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gistgetbitmap"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gistgettuple", 1, - AddBuiltinFunc(_0(774), _1("gistgettuple"), _2(2), _3(true), _4(false), _5(gistgettuple), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gistgettuple"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(774), _1("gistgettuple"), _2(2), _3(true), _4(false), _5(gistgettuple), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gistgettuple"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gistinsert", 1, - AddBuiltinFunc(_0(775), _1("gistinsert"), _2(6), _3(true), _4(false), _5(gistinsert), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(6, 2281, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gistinsert"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(775), _1("gistinsert"), _2(6), _3(true), _4(false), _5(gistinsert), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(6, 2281, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gistinsert"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gistmarkpos", 1, - AddBuiltinFunc(_0(780), _1("gistmarkpos"), _2(1), _3(true), _4(false), _5(gistmarkpos), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gistmarkpos"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(780), _1("gistmarkpos"), _2(1), _3(true), _4(false), _5(gistmarkpos), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gistmarkpos"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gistmerge", 1, - AddBuiltinFunc(_0(3187), _1("gistmerge"), _2(5), _3(true), _4(false), _5(gistmerge), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(5, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gistmerge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3187), _1("gistmerge"), _2(5), _3(true), _4(false), _5(gistmerge), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(5, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gistmerge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gistoptions", 1, - AddBuiltinFunc(_0(2787), _1("gistoptions"), _2(2), _3(true), _4(false), _5(gistoptions), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1009, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gistoptions"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2787), _1("gistoptions"), _2(2), _3(true), _4(false), _5(gistoptions), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1009, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gistoptions"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gistrescan", 1, - AddBuiltinFunc(_0(778), _1("gistrescan"), _2(5), _3(true), _4(false), _5(gistrescan), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(5, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gistrescan"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(778), _1("gistrescan"), _2(5), _3(true), _4(false), _5(gistrescan), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(5, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gistrescan"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gistrestrpos", 1, - AddBuiltinFunc(_0(781), _1("gistrestrpos"), _2(1), _3(true), _4(false), _5(gistrestrpos), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gistrestrpos"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(781), _1("gistrestrpos"), _2(1), _3(true), _4(false), _5(gistrestrpos), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gistrestrpos"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gistvacuumcleanup", 1, - AddBuiltinFunc(_0(2561), _1("gistvacuumcleanup"), _2(2), _3(true), _4(false), _5(gistvacuumcleanup), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gistvacuumcleanup"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2561), _1("gistvacuumcleanup"), _2(2), _3(true), _4(false), _5(gistvacuumcleanup), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gistvacuumcleanup"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "global_clean_prepared_xacts", 1, - AddBuiltinFunc(_0(3334), _1("global_clean_prepared_xacts"), _2(2), _3(true), _4(false), _5(global_clean_prepared_xacts), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("global_clean_prepared_xacts"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3334), _1("global_clean_prepared_xacts"), _2(2), _3(true), _4(false), _5(global_clean_prepared_xacts), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("global_clean_prepared_xacts"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "global_comm_get_client_info", 1, - AddBuiltinFunc(_0(1992), _1("global_comm_get_client_info"), _2(0), _3(true), _4(true), _5(global_comm_get_client_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(9, 25, 25, 20, 23, 20, 23, 25, 25, 23), _22(9, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(9, "node_name", "app", "tid", "lwtid", "query_id", "socket", "remote_ip", "remote_port", "logic_id"), _24(NULL), _25("global_comm_get_client_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1992), _1("global_comm_get_client_info"), _2(0), _3(true), _4(true), _5(global_comm_get_client_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(9, 25, 25, 20, 23, 20, 23, 25, 25, 23), _22(9, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(9, "node_name", "app", "tid", "lwtid", "query_id", "socket", "remote_ip", "remote_port", "logic_id"), _24(NULL), _25("global_comm_get_client_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "global_comm_get_recv_stream", 1, - AddBuiltinFunc(_0(1988), _1("global_comm_get_recv_stream"), _2(0), _3(true), _4(true), _5(global_comm_get_recv_stream), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(17, 25, 20, 25, 20, 23, 23, 23, 25, 20, 23, 23, 23, 20, 20, 20, 20, 20), _22(17, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(17, "node_name", "local_tid", "remote_name", "remote_tid", "idx", "sid", "tcp_sock", "state", "query_id", "pn_id", "send_smp", "recv_smp", "recv_bytes", "time", "speed", "quota", "buff_usize"), _24(NULL), _25("global_comm_get_recv_stream"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1988), _1("global_comm_get_recv_stream"), _2(0), _3(true), _4(true), _5(global_comm_get_recv_stream), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(17, 25, 20, 25, 20, 23, 23, 23, 25, 20, 23, 23, 23, 20, 20, 20, 20, 20), _22(17, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(17, "node_name", "local_tid", "remote_name", "remote_tid", "idx", "sid", "tcp_sock", "state", "query_id", "pn_id", "send_smp", "recv_smp", "recv_bytes", "time", "speed", "quota", "buff_usize"), _24(NULL), _25("global_comm_get_recv_stream"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "global_comm_get_send_stream", 1, - AddBuiltinFunc(_0(1989), _1("global_comm_get_send_stream"), _2(0), _3(true), _4(true), _5(global_comm_get_send_stream), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(17, 25, 20, 25, 20, 23, 23, 23, 25, 20, 23, 23, 23, 20, 20, 20, 20, 20), _22(17, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(17, "node_name", "local_tid", "remote_name", "remote_tid", "idx", "sid", "tcp_sock", "state", "query_id", "pn_id", "send_smp", "recv_smp", "send_bytes", "time", "speed", "quota", "wait_quota"), _24(NULL), _25("global_comm_get_send_stream"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1989), _1("global_comm_get_send_stream"), _2(0), _3(true), _4(true), _5(global_comm_get_send_stream), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(17, 25, 20, 25, 20, 23, 23, 23, 25, 20, 23, 23, 23, 20, 20, 20, 20, 20), _22(17, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(17, "node_name", "local_tid", "remote_name", "remote_tid", "idx", "sid", "tcp_sock", "state", "query_id", "pn_id", "send_smp", "recv_smp", "send_bytes", "time", "speed", "quota", "wait_quota"), _24(NULL), _25("global_comm_get_send_stream"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "global_comm_get_status", 1, - AddBuiltinFunc(_0(1990), _1("global_comm_get_status"), _2(0), _3(true), _4(true), _5(global_comm_get_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(13, 25, 23, 23, 20, 20, 20, 20, 20, 23, 23, 23, 23, 23), _22(13, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(13, "node_name", "rxpck_rate", "txpck_rate", "rxkb_rate", "txkb_rate", "buffer", "memkb_libcomm", "memkb_libpq", "used_pm", "used_sflow", "used_rflow", "used_rloop", "stream"), _24(NULL), _25("global_comm_get_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1990), _1("global_comm_get_status"), _2(0), _3(true), _4(true), _5(global_comm_get_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(13, 25, 23, 23, 20, 20, 20, 20, 20, 23, 23, 23, 23, 23), _22(13, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(13, "node_name", "rxpck_rate", "txpck_rate", "rxkbyte_rate", "txkbyte_rate", "buffer", "memkbyte_libcomm", "memkbyte_libpq", "used_pm", "used_sflow", "used_rflow", "used_rloop", "stream"), _24(NULL), _25("global_comm_get_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "global_stat_clean_hotkeys", 1, - AddBuiltinFunc(_0(3900), _1("global_stat_clean_hotkeys"), _2(0), _3(true), _4(true), _5(global_stat_clean_hotkeys), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("global_stat_clean_hotkeys"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3900), _1("global_stat_clean_hotkeys"), _2(0), _3(true), _4(true), _5(global_stat_clean_hotkeys), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("global_stat_clean_hotkeys"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "global_stat_get_hotkeys_info", 1, - AddBuiltinFunc(_0(3903), _1("global_stat_get_hotkeys_info"), _2(0), _3(true), _4(true), _5(global_stat_get_hotkeys_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(6, 25, 25, 25, 25, 20, 20), _22(6, 'o', 'o', 'o', 'o', 'o', 'o'), _23(6, "database_name", "schema_name", "table_name", "key_value", "hash_value", "count"), _24(NULL), _25("global_stat_get_hotkeys_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3903), _1("global_stat_get_hotkeys_info"), _2(0), _3(true), _4(true), _5(global_stat_get_hotkeys_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(6, 25, 25, 25, 25, 20, 20), _22(6, 'o', 'o', 'o', 'o', 'o', 'o'), _23(6, "database_name", "schema_name", "table_name", "key_value", "hash_value", "count"), _24(NULL), _25("global_stat_get_hotkeys_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_all_control_group_info", 1, - AddBuiltinFunc(_0(4502), _1("gs_all_control_group_info"), _2(0), _3(true), _4(true), _5(gs_all_control_group_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(10, 25, 25, 20, 20, 25, 25, 20, 20, 20, 25), _22(10, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(10, "name", "type", "gid", "classgid", "class", "workload", "shares", "limits", "wdlevel", "cpucores"), _24(NULL), _25("gs_all_control_group_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4502), _1("gs_all_control_group_info"), _2(0), _3(true), _4(true), _5(gs_all_control_group_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(10, 25, 25, 20, 20, 25, 25, 20, 20, 20, 25), _22(10, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(10, "name", "type", "gid", "classgid", "class", "workload", "shares", "limits", "wdlevel", "cpucores"), _24(NULL), _25("gs_all_control_group_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_all_nodegroup_control_group_info", 1, - AddBuiltinFunc(_0(4504), _1("gs_all_nodegroup_control_group_info"), _2(1), _3(true), _4(true), _5(gs_all_nodegroup_control_group_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(10, 25, 25, 20, 20, 25, 25, 20, 20, 20, 25), _22(10, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(10, "name", "type", "gid", "classgid", "class", "workload", "shares", "limits", "wdlevel", "cpucores"), _24(NULL), _25("gs_all_nodegroup_control_group_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4504), _1("gs_all_nodegroup_control_group_info"), _2(1), _3(true), _4(true), _5(gs_all_nodegroup_control_group_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(10, 25, 25, 20, 20, 25, 25, 20, 20, 20, 25), _22(10, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(10, "name", "type", "gid", "classgid", "class", "workload", "shares", "limits", "wdlevel", "cpucores"), _24(NULL), _25("gs_all_nodegroup_control_group_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_cgroup_map_ng_conf", 1, - AddBuiltinFunc(_0(4503), _1("gs_cgroup_map_ng_conf"), _2(1), _3(false), _4(true), _5(gs_cgroup_map_ng_conf), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_cgroup_map_ng_conf"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4503), _1("gs_cgroup_map_ng_conf"), _2(1), _3(false), _4(true), _5(gs_cgroup_map_ng_conf), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_cgroup_map_ng_conf"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_control_group_info", 1, - AddBuiltinFunc(_0(4500), _1("gs_control_group_info"), _2(1), _3(false), _4(true), _5(gs_control_group_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(9, 25, 25, 25, 25, 20, 20, 20, 20, 25), _22(9, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(9, "name", "class", "workload", "type", "gid", "shares", "limits", "rate", "cpucores"), _24(NULL), _25("gs_control_group_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4500), _1("gs_control_group_info"), _2(1), _3(false), _4(true), _5(gs_control_group_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(9, 25, 25, 25, 25, 20, 20, 20, 20, 25), _22(9, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(9, "name", "class", "workload", "type", "gid", "shares", "limits", "rate", "cpucores"), _24(NULL), _25("gs_control_group_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_current_xlog_insert_end_location", 1, - AddBuiltinFunc(_0(2860), _1("gs_current_xlog_insert_end_location"), _2(0), _3(true), _4(false), _5(gs_current_xlog_insert_end_location), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_current_xlog_insert_end_location"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2860), _1("gs_current_xlog_insert_end_location"), _2(0), _3(true), _4(false), _5(gs_current_xlog_insert_end_location), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_current_xlog_insert_end_location"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_decrypt", 1, - AddBuiltinFunc(_0(6322), _1("gs_decrypt"), _2(3), _3(false), _4(false), _5(gs_decrypt), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_decrypt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(6322), _1("gs_decrypt"), _2(3), _3(false), _4(false), _5(gs_decrypt), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_decrypt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_decrypt_aes128", 1, - AddBuiltinFunc(_0(3465), _1("gs_decrypt_aes128"), _2(2), _3(false), _4(false), _5(gs_decrypt_aes128), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_decrypt_aes128"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3465), _1("gs_decrypt_aes128"), _2(2), _3(false), _4(false), _5(gs_decrypt_aes128), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_decrypt_aes128"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_deployment", 1, - AddBuiltinFunc(_0(5998), _1("gs_deployment"), _2(0), _3(true), _4(false), _5(gs_deployment), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_deployment"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5998), _1("gs_deployment"), _2(0), _3(true), _4(false), _5(gs_deployment), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_deployment"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_download_obs_file", 1, @@ -3345,23 +3459,23 @@ ), AddFuncGroup( "gs_encrypt", 1, - AddBuiltinFunc(_0(6323), _1("gs_encrypt"), _2(3), _3(false), _4(false), _5(gs_encrypt), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 25, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_encrypt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(6323), _1("gs_encrypt"), _2(3), _3(false), _4(false), _5(gs_encrypt), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 25, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_encrypt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_encrypt_aes128", 1, - AddBuiltinFunc(_0(GSENCRYPTAES128FUNCOID), _1("gs_encrypt_aes128"), _2(2), _3(false), _4(false), _5(gs_encrypt_aes128), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_encrypt_aes128"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(GSENCRYPTAES128FUNCOID), _1("gs_encrypt_aes128"), _2(2), _3(false), _4(false), _5(gs_encrypt_aes128), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_encrypt_aes128"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_extend_library", 1, - AddBuiltinFunc(_0(4210), _1("gs_extend_library"), _2(2), _3(false), _4(false), _5(gs_extend_library), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2275, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_extend_library"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4210), _1("gs_extend_library"), _2(2), _3(false), _4(false), _5(gs_extend_library), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2275, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_extend_library"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_fault_inject", 1, - AddBuiltinFunc(_0(4000), _1("gs_fault_inject"), _2(6), _3(true), _4(false), _5(gs_fault_inject), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(6, 20, 25, 25, 25, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_fault_inject"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4000), _1("gs_fault_inject"), _2(6), _3(true), _4(false), _5(gs_fault_inject), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(6, 20, 25, 25, 25, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_fault_inject"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_get_global_barrier_status", 1, - AddBuiltinFunc(_0(9032), _1("gs_get_global_barrier_status"), _2(0), _3(true), _4(false), _5(gs_get_global_barrier_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(2, 25, 25), _22(2, 'o', 'o'), _23(2, "global_barrier_id", "global_achive_barrier_id"), _24(NULL), _25("gs_get_global_barrier_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(9032), _1("gs_get_global_barrier_status"), _2(0), _3(true), _4(false), _5(gs_get_global_barrier_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(2, 25, 25), _22(2, 'o', 'o'), _23(2, "global_barrier_id", "global_achive_barrier_id"), _24(NULL), _25("gs_get_global_barrier_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_get_hadr_key_cn", 1, @@ -3369,84 +3483,100 @@ ), AddFuncGroup( "gs_get_local_barrier_status", 1, - AddBuiltinFunc(_0(9033), _1("gs_get_local_barrier_status"), _2(0), _3(true), _4(false), _5(gs_get_local_barrier_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(4, 25, 25, 25, 25), _22(4, 'o', 'o', 'o', 'o'), _23(4, "barrier_id", "barrier_lsn", "archive_lsn", "flush_lsn"), _24(NULL), _25("gs_get_local_barrier_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(9033), _1("gs_get_local_barrier_status"), _2(0), _3(true), _4(false), _5(gs_get_local_barrier_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(4, 25, 25, 25, 25), _22(4, 'o', 'o', 'o', 'o'), _23(4, "barrier_id", "barrier_lsn", "archive_lsn", "flush_lsn"), _24(NULL), _25("gs_get_local_barrier_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_get_global_barriers_status", 1, - AddBuiltinFunc(_0(9034), _1("gs_get_global_barriers_status"), _2(0), _3(true), _4(false), _5(gs_get_global_barriers_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(3, 25, 25, 25), _22(3, 'o', 'o', 'o'), _23(3, "slot_name", "global_barrier_id", "global_achive_barrier_id"), _24(NULL), _25("gs_get_global_barriers_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(9034), _1("gs_get_global_barriers_status"), _2(0), _3(true), _4(false), _5(gs_get_global_barriers_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(3, 25, 25, 25), _22(3, 'o', 'o', 'o'), _23(3, "slot_name", "global_barrier_id", "global_achive_barrier_id"), _24(NULL), _25("gs_get_global_barriers_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_get_next_xid_csn", 1, - AddBuiltinFunc(_0(6224), _1("gs_get_next_xid_csn"), _2(1), _3(true), _4(true), _5(gs_get_next_xid_csn), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(3, 25, 28, 28), _22(3, 'o', 'o', 'o'), _23(3, "node_name", "next_xid", "next_csn"), _24(NULL), _25("gs_get_next_xid_csn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(6224), _1("gs_get_next_xid_csn"), _2(1), _3(true), _4(true), _5(gs_get_next_xid_csn), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(3, 25, 28, 28), _22(3, 'o', 'o', 'o'), _23(3, "node_name", "next_xid", "next_csn"), _24(NULL), _25("gs_get_next_xid_csn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_get_nodegroup_tablecount", 1, - AddBuiltinFunc(_0(5027), _1("gs_get_nodegroup_tablecount"), _2(1), _3(false), _4(true), _5(gs_get_nodegroup_tablecount), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_get_nodegroup_tablecount"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5027), _1("gs_get_nodegroup_tablecount"), _2(1), _3(false), _4(true), _5(gs_get_nodegroup_tablecount), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_get_nodegroup_tablecount"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), - AddFuncGroup( - "gs_hadr_do_switchover", 1, - AddBuiltinFunc(_0(9136), _1("gs_hadr_do_switchover"), _2(0), _3(true), _4(false), _5(gs_hadr_do_switchover), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(1, 16), _22(1, 'o'), _23(1, "service_truncation_result"), _24(NULL), _25("gs_hadr_do_switchover"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "gs_hadr_has_barrier_creator", 1, - AddBuiltinFunc(_0(9137), _1("gs_hadr_has_barrier_creator"), _2(0), _3(true), _4(false), _5(gs_hadr_has_barrier_creator), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(1, 16), _22(1, 'o'), _23(1, "has_barrier_creator"), _24(NULL), _25("gs_hadr_has_barrier_creator"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "gs_hadr_in_recovery", 1, - AddBuiltinFunc(_0(9138), _1("gs_hadr_in_recovery"), _2(0), _3(true), _4(false), _5(gs_hadr_in_recovery), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(1, 16), _22(1, 'o'), _23(1, "is_in_recovery"), _24(NULL), _25("gs_hadr_in_recovery"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), AddFuncGroup( "gs_get_obs_file_context", 1, AddBuiltinFunc(_0(5128), _1("gs_get_obs_file_context"), _2(2), _3(true), _4(false), _5(gs_get_obs_file_context), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2275, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_get_obs_file_context"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL)) ), + AddFuncGroup( + "gs_hadr_do_switchover", 1, + AddBuiltinFunc(_0(9136), _1("gs_hadr_do_switchover"), _2(0), _3(true), _4(false), _5(gs_hadr_do_switchover), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(1, 16), _22(1, 'o'), _23(1, "service_truncation_result"), _24(NULL), _25("gs_hadr_do_switchover"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "gs_hadr_has_barrier_creator", 1, + AddBuiltinFunc(_0(9137), _1("gs_hadr_has_barrier_creator"), _2(0), _3(true), _4(false), _5(gs_hadr_has_barrier_creator), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(1, 16), _22(1, 'o'), _23(1, "has_barrier_creator"), _24(NULL), _25("gs_hadr_has_barrier_creator"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "gs_hadr_in_recovery", 1, + AddBuiltinFunc(_0(9138), _1("gs_hadr_in_recovery"), _2(0), _3(true), _4(false), _5(gs_hadr_in_recovery), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(1, 16), _22(1, 'o'), _23(1, "is_in_recovery"), _24(NULL), _25("gs_hadr_in_recovery"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "gs_hadr_local_rto_and_rpo_stat", 1, + AddBuiltinFunc(_0(5077), _1("gs_hadr_local_rto_and_rpo_stat"), _2(0), _3(false), _4(true), _5(gs_hadr_local_rto_and_rpo_stat), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(11,25,25,25,23,25,23,20,20,20,20,20), _22(11,'o','o','o','o','o','o','o','o','o','o','o'), _23(11,"hadr_sender_node_name", "hadr_receiver_node_name", "source_ip", "source_port", "dest_ip", "dest_port", "current_rto", "target_rto", "current_rpo", "target_rpo", "current_sleep_time"), _24(NULL), _25("gs_hadr_local_rto_and_rpo_stat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "gs_hadr_remote_rto_and_rpo_stat", 1, + AddBuiltinFunc(_0(5078), _1("gs_hadr_remote_rto_and_rpo_stat"), _2(0), _3(false), _4(true), _5(gs_hadr_remote_rto_and_rpo_stat), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(11,25,25,25,23,25,23,20,20,20,20,20), _22(11,'o','o','o','o','o','o','o','o','o','o','o'), _23(11,"hadr_sender_node_name", "hadr_receiver_node_name", "source_ip", "source_port", "dest_ip", "dest_port", "current_rto", "target_rto", "current_rpo", "target_rpo", "current_sleep_time"), _24(NULL), _25("gs_hadr_remote_rto_and_rpo_stat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), AddFuncGroup( "gs_index_advise", 1, - AddBuiltinFunc(_0(4888), _1("gs_index_advise"), _2(1), _3(false), _4(true), _5(gs_index_advise), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(3, 25, 25, 25), _22(3, 'o', 'o', 'o'), _23(3, "schema", "table", "column"), _24(NULL), _25("gs_index_advise"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4888), _1("gs_index_advise"), _2(1), _3(false), _4(true), _5(gs_index_advise), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(3, 25, 25, 25), _22(3, 'o', 'o', 'o'), _23(3, "schema", "table", "column"), _24(NULL), _25("gs_index_advise"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "gs_io_wait_status", 1, + AddBuiltinFunc(_0(5034), _1("gs_io_wait_status"), _2(0), _3(false), _4(true), _5(pg_stat_get_wlm_io_wait_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(9, 25, 25, 701, 701, 701, 701, 23, 23, 23), _22(9, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(9, "node_name", "device_name", "read_per_second", "write_per_second", "write_ratio", "io_util", "total_io_util", "tick_count", "io_wait_list_len"), _24(NULL), _25("pg_stat_get_wlm_io_wait_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_is_recycle_object", 1, - AddBuiltinFunc(_0(4895), _1("gs_is_recycle_object"), _2(3), _3(false), _4(false), _5(gs_is_recycle_object), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 23, 23, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_is_recycle_object"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4895), _1("gs_is_recycle_object"), _2(3), _3(false), _4(false), _5(gs_is_recycle_object), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 23, 23, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_is_recycle_object"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_password_deadline", 1, - AddBuiltinFunc(_0(3469), _1("gs_password_deadline"), _2(0), _3(true), _4(false), _5(gs_password_deadline), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_password_deadline"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3469), _1("gs_password_deadline"), _2(0), _3(true), _4(false), _5(gs_password_deadline), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_password_deadline"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_password_notifytime", 1, - AddBuiltinFunc(_0(3470), _1("gs_password_notifytime"), _2(0), _3(true), _4(false), _5(gs_password_notifytime), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_password_notifytime"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3470), _1("gs_password_notifytime"), _2(0), _3(true), _4(false), _5(gs_password_notifytime), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_password_notifytime"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_read_block_from_remote", 2, AddBuiltinFunc(_0(4767), _1("gs_read_block_from_remote"), _2(9), _3(true), _4(false), _5(gs_read_block_from_remote), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(9, 23, 23, 23, 21, 23, 28, 23, 28, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_read_block_from_remote"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), AddBuiltinFunc(_0(4768), _1("gs_read_block_from_remote"), _2(10), _3(true), _4(false), _5(gs_read_block_from_remote_compress), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(10, 23, 23, 23, 21, 21, 23, 28, 23, 28, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_read_block_from_remote_compress"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) ), + AddFuncGroup( + "gs_paxos_stat_replication", 1, + AddBuiltinFunc(_0(4650), _1("gs_paxos_stat_replication"), _2(0), _3(false), _4(true), _5(gs_paxos_stat_replication), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(16, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 23, 25), _22(16, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(16, "local_role", "peer_role", "local_dcf_role", "peer_dcf_role", "peer_state", "sender_write_location", "sender_commit_location", "sender_flush_location", "sender_replay_location", "receiver_write_location", "receiver_commit_location", "receiver_flush_location", "receiver_replay_location", "sync_percent", "dcf_run_mode", "channel"), _24(NULL), _25("gs_paxos_stat_replication"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), AddFuncGroup( "gs_respool_exception_info", 1, - AddBuiltinFunc(_0(4501), _1("gs_respool_exception_info"), _2(1), _3(true), _4(true), _5(gs_respool_exception_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2275), _21(6, 25, 25, 25, 25, 25, 20), _22(6, 'o', 'o', 'o', 'o', 'o', 'o'), _23(6, "name", "class", "workload", "rule", "type", "value"), _24(NULL), _25("gs_respool_exception_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4501), _1("gs_respool_exception_info"), _2(1), _3(true), _4(true), _5(gs_respool_exception_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2275), _21(6, 25, 25, 25, 25, 25, 20), _22(6, 'o', 'o', 'o', 'o', 'o', 'o'), _23(6, "name", "class", "workload", "rule", "type", "value"), _24(NULL), _25("gs_respool_exception_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_roach_disable_delay_ddl_recycle", 1, - AddBuiltinFunc(_0(2202), _1("gs_roach_disable_delay_ddl_recycle"), _2(1), _3(true), _4(false), _5(gs_roach_disable_delay_ddl_recycle), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 19), _21(3, 19, 25, 25), _22(3, 'i', 'o', 'o'), _23(3, "slotname", "ddl_delay_start_lsn", "ddl_delay_end_lsn"), _24(NULL), _25("gs_roach_disable_delay_ddl_recycle"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2202), _1("gs_roach_disable_delay_ddl_recycle"), _2(1), _3(true), _4(false), _5(gs_roach_disable_delay_ddl_recycle), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 19), _21(3, 19, 25, 25), _22(3, 'i', 'o', 'o'), _23(3, "slotname", "ddl_delay_start_lsn", "ddl_delay_end_lsn"), _24(NULL), _25("gs_roach_disable_delay_ddl_recycle"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_roach_enable_delay_ddl_recycle", 1, - AddBuiltinFunc(_0(2201), _1("gs_roach_enable_delay_ddl_recycle"), _2(1), _3(true), _4(false), _5(gs_roach_enable_delay_ddl_recycle), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 19), _21(2, 19, 25), _22(2, 'i', 'o'), _23(2, "slotname", "ddl_delay_start_lsn"), _24(NULL), _25("gs_roach_enable_delay_ddl_recycle"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2201), _1("gs_roach_enable_delay_ddl_recycle"), _2(1), _3(true), _4(false), _5(gs_roach_enable_delay_ddl_recycle), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 19), _21(2, 19, 25), _22(2, 'i', 'o'), _23(2, "slotname", "ddl_delay_start_lsn"), _24(NULL), _25("gs_roach_enable_delay_ddl_recycle"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_roach_stop_backup", 1, - AddBuiltinFunc(_0(2200), _1("gs_roach_stop_backup"), _2(1), _3(true), _4(false), _5(gs_roach_stop_backup), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 25), _21(2, 25, 25), _22(2, 'i', 'o'), _23(2, "slotname", "backup_stop_lsn"), _24(NULL), _25("gs_roach_stop_backup"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2200), _1("gs_roach_stop_backup"), _2(1), _3(true), _4(false), _5(gs_roach_stop_backup), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 25), _21(2, 25, 25), _22(2, 'i', 'o'), _23(2, "slotname", "backup_stop_lsn"), _24(NULL), _25("gs_roach_stop_backup"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_roach_switch_xlog", 1, - AddBuiltinFunc(_0(2203), _1("gs_roach_switch_xlog"), _2(1), _3(true), _4(false), _5(gs_roach_switch_xlog), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_roach_switch_xlog"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2203), _1("gs_roach_switch_xlog"), _2(1), _3(true), _4(false), _5(gs_roach_switch_xlog), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_roach_switch_xlog"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_set_obs_delete_location", 1, - AddBuiltinFunc(_0(9031), _1("gs_set_obs_delete_location"), _2(1), _3(true), _4(false), _5(gs_set_obs_delete_location), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_set_obs_delete_location"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(9031), _1("gs_set_obs_delete_location"), _2(1), _3(true), _4(false), _5(gs_set_obs_delete_location), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_set_obs_delete_location"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_set_obs_delete_location_with_slotname", 1, - AddBuiltinFunc(_0(9035), _1("gs_set_obs_delete_location_with_slotname"), _2(2), _3(true), _4(false), _5(gs_set_obs_delete_location_with_slotname), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2275, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_set_obs_delete_location_with_slotname"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(9035), _1("gs_set_obs_delete_location_with_slotname"), _2(2), _3(true), _4(false), _5(gs_set_obs_delete_location_with_slotname), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2275, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_set_obs_delete_location_with_slotname"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_set_obs_file_context",1, @@ -3454,55 +3584,67 @@ ), AddFuncGroup( "gs_space_shrink", 1, - AddBuiltinFunc(_0(7002), _1("gs_space_shrink"), _2(4), _3(true), _4(false), _5(gs_space_shrink), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10000), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, INT4OID, INT4OID, INT4OID, INT4OID), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_space_shrink"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(7002), _1("gs_space_shrink"), _2(4), _3(true), _4(false), _5(gs_space_shrink), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10000), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, INT4OID, INT4OID, INT4OID, INT4OID), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_space_shrink"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "local_space_shrink", 1, - AddBuiltinFunc(_0(7006), _1("local_space_shrink"), _2(4), _3(true), _4(false), _5(local_space_shrink), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10000), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, TEXTOID, TEXTOID), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("local_space_shrink"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(7006), _1("local_space_shrink"), _2(4), _3(true), _4(false), _5(local_space_shrink), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10000), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, TEXTOID, TEXTOID), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("local_space_shrink"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "global_space_shrink", 1, - AddBuiltinFunc(_0(7008), _1("global_space_shrink"), _2(4), _3(true), _4(false), _5(global_space_shrink), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10000), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, TEXTOID, TEXTOID), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("global_space_shrink"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(7008), _1("global_space_shrink"), _2(4), _3(true), _4(false), _5(global_space_shrink), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10000), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, TEXTOID, TEXTOID), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("global_space_shrink"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_stat_activity_timeout", 1, - AddBuiltinFunc(_0(4520), _1("gs_stat_activity_timeout"), _2(1), _3(false), _4(true), _5(gs_stat_activity_timeout), _6(2249), _7(PG_DBEPERF_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(10, 23, 19, 20, 20, 26, 25, 25, 1184, 1184, 20), _22(10, 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(10, "timeout_threshold", "database", "pid", "sessionid", "usesysid", "application_name", "query", "xact_start", "query_start", "query_id"), _24(NULL), _25("gs_stat_activity_timeout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4520), _1("gs_stat_activity_timeout"), _2(1), _3(false), _4(true), _5(gs_stat_activity_timeout), _6(2249), _7(PG_DBEPERF_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(10, 23, 19, 20, 20, 26, 25, 25, 1184, 1184, 20), _22(10, 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(10, "timeout_threshold", "database", "pid", "sessionid", "usesysid", "application_name", "query", "xact_start", "query_start", "query_id"), _24(NULL), _25("gs_stat_activity_timeout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_stat_clean_hotkeys", 1, - AddBuiltinFunc(_0(3805), _1("gs_stat_clean_hotkeys"), _2(0), _3(true), _4(true), _5(gs_stat_clean_hotkeys), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_stat_clean_hotkeys"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3805), _1("gs_stat_clean_hotkeys"), _2(0), _3(true), _4(true), _5(gs_stat_clean_hotkeys), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_stat_clean_hotkeys"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_stat_get_hotkeys_info", 1, - AddBuiltinFunc(_0(3803), _1("gs_stat_get_hotkeys_info"), _2(0), _3(true), _4(true), _5(gs_stat_get_hotkeys_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(6, 25, 25, 25, 25, 20, 20), _22(6, 'o', 'o', 'o', 'o', 'o', 'o'), _23(6, "database_name", "schema_name", "table_name", "key_value", "hash_value", "count"), _24(NULL), _25("gs_stat_get_hotkeys_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3803), _1("gs_stat_get_hotkeys_info"), _2(0), _3(true), _4(true), _5(gs_stat_get_hotkeys_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(6, 25, 25, 25, 25, 20, 20), _22(6, 'o', 'o', 'o', 'o', 'o', 'o'), _23(6, "database_name", "schema_name", "table_name", "key_value", "hash_value", "count"), _24(NULL), _25("gs_stat_get_hotkeys_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_stat_get_wlm_plan_operator_info", 1, - AddBuiltinFunc(_0(5033), _1("gs_stat_get_wlm_plan_operator_info"), _2(1), _3(false), _4(true), _5(gs_stat_get_wlm_plan_operator_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(17, 25, 20, 23, 20, 20, 20, 23, 23, 23, 23, 23, 25, 25, 25, 25, 25, 25), _22(17, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(17, "datname", "queryid", "plan_node_id", "startup_time", "total_time", "actual_rows", "max_peak_memory", "query_dop", "parent_node_id", "left_child_id", "right_child_id", "operation", "orientation", "strategy", "options", "condition", "projection"), _24(NULL), _25("gs_stat_get_wlm_plan_operator_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5033), _1("gs_stat_get_wlm_plan_operator_info"), _2(1), _3(false), _4(true), _5(gs_stat_get_wlm_plan_operator_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(17, 25, 20, 23, 20, 20, 20, 23, 23, 23, 23, 23, 25, 25, 25, 25, 25, 25), _22(17, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(17, "datname", "queryid", "plan_node_id", "startup_time", "total_time", "actual_rows", "max_peak_memory", "query_dop", "parent_node_id", "left_child_id", "right_child_id", "operation", "orientation", "strategy", "options", "condition", "projection"), _24(NULL), _25("gs_stat_get_wlm_plan_operator_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_stat_ustore", 1, - AddBuiltinFunc(_0(7893), _1("gs_stat_ustore"), _2(0), _3(false), _4(false), _5(gs_stat_ustore), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_stat_ustore"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(7893), _1("gs_stat_ustore"), _2(0), _3(false), _4(false), _5(gs_stat_ustore), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_stat_ustore"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), + AddFuncGroup( + "gs_streaming_dr_get_switchover_barrier", 1, + AddBuiltinFunc(_0(9139), _1("gs_streaming_dr_get_switchover_barrier"), _2(0), _3(true), _4(false), _5(gs_streaming_dr_get_switchover_barrier), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(1, 16), _22(1, 'o'), _23(1, "get_switchover_barrier"), _24(NULL), _25("gs_streaming_dr_get_switchover_barrier"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "gs_streaming_dr_in_switchover", 1, + AddBuiltinFunc(_0(9140), _1("gs_streaming_dr_in_switchover"), _2(0), _3(true), _4(false), _5(gs_streaming_dr_in_switchover), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(1, 16), _22(1, 'o'), _23(1, "is_in_switchover"), _24(NULL), _25("gs_streaming_dr_in_switchover"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "gs_streaming_dr_service_truncation_check", 1, + AddBuiltinFunc(_0(9141), _1("gs_streaming_dr_service_truncation_check"), _2(0), _3(true), _4(false), _5(gs_streaming_dr_service_truncation_check), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(1, 16), _22(1, 'o'), _23(1, "complete_truncation"), _24(NULL), _25("gs_streaming_dr_service_truncation_check"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), AddFuncGroup( "gs_switch_relfilenode", 1, - AddBuiltinFunc(_0(4049), _1("gs_switch_relfilenode"), _2(2), _3(true), _4(false), _5(pg_switch_relfilenode_name), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 2205, 2205, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_switch_relfilenode_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4049), _1("gs_switch_relfilenode"), _2(2), _3(true), _4(false), _5(pg_switch_relfilenode_name), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 2205, 2205, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_switch_relfilenode_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_total_nodegroup_memory_detail", 1, - AddBuiltinFunc(_0(2847), _1("gs_total_nodegroup_memory_detail"), _2(0), _3(true), _4(true), _5(gs_total_nodegroup_memory_detail), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(3, 25, 25, 23), _22(3, 'o', 'o', 'o'), _23(3, "ngname", "memorytype", "memorymbytes"), _24(NULL), _25("gs_total_nodegroup_memory_detail"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2847), _1("gs_total_nodegroup_memory_detail"), _2(0), _3(true), _4(true), _5(gs_total_nodegroup_memory_detail), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(3, 25, 25, 23), _22(3, 'o', 'o', 'o'), _23(3, "ngname", "memorytype", "memorymbytes"), _24(NULL), _25("gs_total_nodegroup_memory_detail"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_txid_oldestxmin", 1, - AddBuiltinFunc(_0(8642), _1("gs_txid_oldestxmin"), _2(0), _3(true), _4(false), _5(gs_txid_oldestxmin), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_txid_oldestxmin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(8642), _1("gs_txid_oldestxmin"), _2(0), _3(true), _4(false), _5(gs_txid_oldestxmin), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_txid_oldestxmin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_undo_meta", 1, - AddBuiltinFunc(_0(4430), _1("gs_undo_meta"), _2(3), _3(false), _4(true), _5(gs_undo_meta), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 23, 23, 23), _21(7, 26, 26, 25, 25, 25, 25, 25), _22(7, 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(7, "zoneId", "persistType", "insert", "discard", "end", "used", "lsn"), _24(NULL), _25("gs_undo_meta"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4430), _1("gs_undo_meta"), _2(3), _3(false), _4(true), _5(gs_undo_meta), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 23, 23, 23), _21(7, 26, 26, 25, 25, 25, 25, 25), _22(7, 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(7, "zoneId", "persistType", "insert", "discard", "end", "used", "lsn"), _24(NULL), _25("gs_undo_meta"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_undo_translot", 1, - AddBuiltinFunc(_0(4431), _1("gs_undo_translot"), _2(2), _3(false), _4(true), _5(gs_undo_translot), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 23, 23), _21(5, 26, 25, 25, 25, 25), _22(5, 'o', 'o', 'o', 'o', 'o'), _23(5, "groupId", "xactId", "startUndoPtr", "endUndoPtr","lsn"), _24(NULL), _25("gs_undo_translot"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4431), _1("gs_undo_translot"), _2(2), _3(false), _4(true), _5(gs_undo_translot), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 23, 23), _21(5, 26, 25, 25, 25, 25), _22(5, 'o', 'o', 'o', 'o', 'o'), _23(5, "groupId", "xactId", "startUndoPtr", "endUndoPtr","lsn"), _24(NULL), _25("gs_undo_translot"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_upload_obs_file", 1, @@ -3510,4185 +3652,4270 @@ ), AddFuncGroup( "gs_wlm_get_resource_pool_info", 1, - AddBuiltinFunc(_0(5004), _1("gs_wlm_get_resource_pool_info"), _2(1), _3(false), _4(true), _5(pg_stat_get_resource_pool_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(8, 23, 26, 23, 23, 23, 23, 23, 23), _22(8, 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(8, "input", "respool_oid", "ref_count", "active_points", "running_count", "waiting_count", "iops_limits", "io_priority"), _24(NULL), _25("pg_stat_get_resource_pool_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5004), _1("gs_wlm_get_resource_pool_info"), _2(1), _3(false), _4(true), _5(pg_stat_get_resource_pool_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(8, 23, 26, 23, 23, 23, 23, 23, 23), _22(8, 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(8, "input", "respool_oid", "ref_count", "active_points", "running_count", "waiting_count", "iops_limits", "io_priority"), _24(NULL), _25("pg_stat_get_resource_pool_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_wlm_get_session_info", 1, - AddBuiltinFunc(_0(5009), _1("gs_wlm_get_session_info"), _2(1), _3(false), _4(true), _5(pg_wlm_get_session_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 20), _21(8, 20, 25, 23, 23, 23, 20, 23, 23), _22(8, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(8, "threadid", "node_name", "used_memory", "peak_memory", "spill_count", "cpu_time", "peak_iops", "curr_iops"), _24(NULL), _25("pg_wlm_get_session_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5009), _1("gs_wlm_get_session_info"), _2(1), _3(false), _4(true), _5(pg_wlm_get_session_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 20), _21(8, 20, 25, 23, 23, 23, 20, 23, 23), _22(8, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(8, "threadid", "node_name", "used_memory", "peak_memory", "spill_count", "cpu_time", "peak_iops", "curr_iops"), _24(NULL), _25("pg_wlm_get_session_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_wlm_get_user_info", 1, - AddBuiltinFunc(_0(5007), _1("gs_wlm_get_user_info"), _2(1), _3(false), _4(true), _5(pg_stat_get_wlm_user_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(9, 23, 26, 16, 26, 26, 20, 20, 23, 25), _22(9, 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(9, "input", "userid", "sysadmin", "rpoid", "parentid", "totalspace", "spacelimit", "childcount", "childlist"), _24(NULL), _25("pg_stat_get_wlm_user_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5007), _1("gs_wlm_get_user_info"), _2(1), _3(false), _4(true), _5(pg_stat_get_wlm_user_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(9, 23, 26, 16, 26, 26, 20, 20, 23, 25), _22(9, 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(9, "input", "userid", "sysadmin", "rpoid", "parentid", "totalspace", "spacelimit", "childcount", "childlist"), _24(NULL), _25("pg_stat_get_wlm_user_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_wlm_get_user_session_info", 1, - AddBuiltinFunc(_0(5020), _1("gs_wlm_get_user_session_info"), _2(1), _3(false), _4(true), _5(pg_wlm_get_user_session_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(8, 25, 25, 23, 23, 23, 20, 23, 23), _22(8, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(8, "username", "node_name", "used_memory", "peak_memory", "spill_count", "cpu_time", "peak_iops", "curr_iops"), _24(NULL), _25("pg_wlm_get_user_session_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5020), _1("gs_wlm_get_user_session_info"), _2(1), _3(false), _4(true), _5(pg_wlm_get_user_session_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(8, 25, 25, 23, 23, 23, 20, 23, 23), _22(8, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(8, "username", "node_name", "used_memory", "peak_memory", "spill_count", "cpu_time", "peak_iops", "curr_iops"), _24(NULL), _25("pg_wlm_get_user_session_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_wlm_get_workload_records", 1, - AddBuiltinFunc(_0(5018), _1("gs_wlm_get_workload_records"), _2(1), _3(false), _4(true), _5(pg_stat_get_workload_records), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(12, 23, 26, 20, 20, 23, 23, 23, 23, 25, 25, 25, 25), _22(12, 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(12, "intpu", "node_idx", "query_pid", "start_time", "memory", "actpts", "maxpts", "priority", "resource_pool", "node_name", "queue_type", "node_group"), _24(NULL), _25("pg_stat_get_workload_records"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5018), _1("gs_wlm_get_workload_records"), _2(1), _3(false), _4(true), _5(pg_stat_get_workload_records), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(12, 23, 26, 20, 20, 23, 23, 23, 23, 25, 25, 25, 25), _22(12, 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(12, "intpu", "node_idx", "query_pid", "start_time", "memory", "actpts", "maxpts", "priority", "resource_pool", "node_name", "queue_type", "node_group"), _24(NULL), _25("pg_stat_get_workload_records"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_wlm_node_clean", 1, - AddBuiltinFunc(_0(5016), _1("gs_wlm_node_clean"), _2(1), _3(true), _4(false), _5(gs_wlm_node_clean), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_wlm_node_clean"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5016), _1("gs_wlm_node_clean"), _2(1), _3(true), _4(false), _5(gs_wlm_node_clean), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_wlm_node_clean"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_wlm_node_recover", 1, - AddBuiltinFunc(_0(5017), _1("gs_wlm_node_recover"), _2(1), _3(true), _4(false), _5(gs_wlm_node_recover), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_wlm_node_recover"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5017), _1("gs_wlm_node_recover"), _2(1), _3(true), _4(false), _5(gs_wlm_node_recover), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_wlm_node_recover"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_wlm_readjust_user_space", 1, - AddBuiltinFunc(_0(5011), _1("gs_wlm_readjust_user_space"), _2(1), _3(true), _4(false), _5(gs_wlm_readjust_user_space), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_wlm_readjust_user_space"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5011), _1("gs_wlm_readjust_user_space"), _2(1), _3(true), _4(false), _5(gs_wlm_readjust_user_space), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_wlm_readjust_user_space"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_wlm_readjust_user_space_through_username", 1, - AddBuiltinFunc(_0(5030), _1("gs_wlm_readjust_user_space_through_username"), _2(1), _3(true), _4(false), _5(gs_wlm_readjust_user_space_through_username), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_wlm_readjust_user_space_through_username"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5030), _1("gs_wlm_readjust_user_space_through_username"), _2(1), _3(true), _4(false), _5(gs_wlm_readjust_user_space_through_username), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_wlm_readjust_user_space_through_username"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_wlm_readjust_user_space_with_reset_flag", 1, - AddBuiltinFunc(_0(5029), _1("gs_wlm_readjust_user_space_with_reset_flag"), _2(2), _3(true), _4(false), _5(gs_wlm_readjust_user_space_with_reset_flag), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 2275, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_wlm_readjust_user_space_with_reset_flag"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5029), _1("gs_wlm_readjust_user_space_with_reset_flag"), _2(2), _3(true), _4(false), _5(gs_wlm_readjust_user_space_with_reset_flag), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 2275, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_wlm_readjust_user_space_with_reset_flag"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_wlm_rebuild_user_resource_pool", 1, - AddBuiltinFunc(_0(5006), _1("gs_wlm_rebuild_user_resource_pool"), _2(1), _3(true), _4(false), _5(gs_wlm_rebuild_user_resource_pool), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_wlm_rebuild_user_resource_pool"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5006), _1("gs_wlm_rebuild_user_resource_pool"), _2(1), _3(true), _4(false), _5(gs_wlm_rebuild_user_resource_pool), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_wlm_rebuild_user_resource_pool"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_wlm_session_respool", 1, - AddBuiltinFunc(_0(5021), _1("gs_wlm_session_respool"), _2(1), _3(false), _4(true), _5(pg_stat_get_session_respool), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 20), _21(8, 20, 26, 20, 20, 23, 26, 25, 19), _22(8, 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(8, "input", "datid", "threadid", "sessionid", "threadpid", "usesysid", "cgroup", "session_respool"), _24(NULL), _25("pg_stat_get_session_respool"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5021), _1("gs_wlm_session_respool"), _2(1), _3(false), _4(true), _5(pg_stat_get_session_respool), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 20), _21(8, 20, 26, 20, 20, 23, 26, 25, 19), _22(8, 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(8, "input", "datid", "threadid", "sessionid", "threadpid", "usesysid", "cgroup", "session_respool"), _24(NULL), _25("pg_stat_get_session_respool"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_wlm_switch_cgroup", 1, - AddBuiltinFunc(_0(5005), _1("gs_wlm_switch_cgroup"), _2(2), _3(true), _4(false), _5(gs_wlm_switch_cgroup), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 20, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_wlm_switch_cgroup"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5005), _1("gs_wlm_switch_cgroup"), _2(2), _3(true), _4(false), _5(gs_wlm_switch_cgroup), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 20, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_wlm_switch_cgroup"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_wlm_user_resource_info", 1, - AddBuiltinFunc(_0(5012), _1("gs_wlm_user_resource_info"), _2(1), _3(false), _4(true), _5(pg_stat_get_wlm_user_resource_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(17,26,23,23,701,23,20,20,20,20,20,20,20,20,20,20,701,701), _22(17, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(17, "userid", "used_memory", "total_memory", "used_cpu", "total_cpu", "used_space", "total_space", "used_temp_space", "total_temp_space", "used_spill_space", "total_spill_space", "read_kbytes", "write_kbytes", "read_counts", "write_counts", "read_speed", "write_speed"), _24(NULL), _25("pg_stat_get_wlm_user_resource_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5012), _1("gs_wlm_user_resource_info"), _2(1), _3(false), _4(true), _5(pg_stat_get_wlm_user_resource_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(17,26,23,23,701,23,20,20,20,20,20,20,20,20,20,20,701,701), _22(17, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(17, "userid", "used_memory", "total_memory", "used_cpu", "total_cpu", "used_space", "total_space", "used_temp_space", "total_temp_space", "used_spill_space", "total_spill_space", "read_kbytes", "write_kbytes", "read_counts", "write_counts", "read_speed", "write_speed"), _24(NULL), _25("pg_stat_get_wlm_user_resource_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( - "gs_io_wait_status", 1, - AddBuiltinFunc(_0(5034), _1("gs_io_wait_status"), _2(0), _3(false), _4(true), _5(pg_stat_get_wlm_io_wait_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(9, 25, 25, 701, 701, 701, 701, 23, 23, 23), _22(9, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(9, "node_name", "device_name", "read_per_second", "write_per_second", "write_ratio", "io_util", "total_io_util", "tick_count", "io_wait_list_len"), _24(NULL), _25("pg_stat_get_wlm_io_wait_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + "gs_write_term_log", 1, + AddBuiltinFunc(_0(9376), _1("gs_write_term_log"), _2(1), _3(true), _4(false), _5(gs_write_term_log), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(1, 16), _22(1, 'o'), _23(1, "setTermDone"), _24(NULL), _25("gs_write_term_log"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL)) ), AddFuncGroup( "gtsquery_compress", 1, - AddBuiltinFunc(_0(3695), _1("gtsquery_compress"), _2(1), _3(true), _4(false), _5(gtsquery_compress), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gtsquery_compress"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3695), _1("gtsquery_compress"), _2(1), _3(true), _4(false), _5(gtsquery_compress), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gtsquery_compress"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GiST tsquery support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gtsquery_consistent", 1, - AddBuiltinFunc(_0(3701), _1("gtsquery_consistent"), _2(5), _3(true), _4(false), _5(gtsquery_consistent), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(5, 2281, 2281, 23, 26, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gtsquery_consistent"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3701), _1("gtsquery_consistent"), _2(5), _3(true), _4(false), _5(gtsquery_consistent), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(5, 2281, 2281, 23, 26, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gtsquery_consistent"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GiST tsquery support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gtsquery_decompress", 1, - AddBuiltinFunc(_0(3696), _1("gtsquery_decompress"), _2(1), _3(true), _4(false), _5(gtsquery_decompress), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gtsquery_decompress"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3696), _1("gtsquery_decompress"), _2(1), _3(true), _4(false), _5(gtsquery_decompress), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gtsquery_decompress"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gtsquery_penalty", 1, - AddBuiltinFunc(_0(3700), _1("gtsquery_penalty"), _2(3), _3(true), _4(false), _5(gtsquery_penalty), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gtsquery_penalty"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3700), _1("gtsquery_penalty"), _2(3), _3(true), _4(false), _5(gtsquery_penalty), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gtsquery_penalty"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GiST tsquery support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gtsquery_picksplit", 1, - AddBuiltinFunc(_0(3697), _1("gtsquery_picksplit"), _2(2), _3(true), _4(false), _5(gtsquery_picksplit), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gtsquery_picksplit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3697), _1("gtsquery_picksplit"), _2(2), _3(true), _4(false), _5(gtsquery_picksplit), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gtsquery_picksplit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GiST tsquery support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gtsquery_same", 1, - AddBuiltinFunc(_0(3699), _1("gtsquery_same"), _2(3), _3(true), _4(false), _5(gtsquery_same), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 20, 20, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gtsquery_same"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3699), _1("gtsquery_same"), _2(3), _3(true), _4(false), _5(gtsquery_same), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 20, 20, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gtsquery_same"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GiST tsquery support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gtsquery_union", 1, - AddBuiltinFunc(_0(3698), _1("gtsquery_union"), _2(2), _3(true), _4(false), _5(gtsquery_union), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gtsquery_union"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3698), _1("gtsquery_union"), _2(2), _3(true), _4(false), _5(gtsquery_union), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gtsquery_union"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GiST tsquery support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gtsvector_compress", 1, - AddBuiltinFunc(_0(3648), _1("gtsvector_compress"), _2(1), _3(true), _4(false), _5(gtsvector_compress), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gtsvector_compress"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3648), _1("gtsvector_compress"), _2(1), _3(true), _4(false), _5(gtsvector_compress), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gtsvector_compress"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GiST tsvector support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gtsvector_consistent", 1, - AddBuiltinFunc(_0(3654), _1("gtsvector_consistent"), _2(5), _3(true), _4(false), _5(gtsvector_consistent), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(5, 2281, 3642, 23, 26, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gtsvector_consistent"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3654), _1("gtsvector_consistent"), _2(5), _3(true), _4(false), _5(gtsvector_consistent), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(5, 2281, 3642, 23, 26, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gtsvector_consistent"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GiST tsvector support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gtsvector_decompress", 1, - AddBuiltinFunc(_0(3649), _1("gtsvector_decompress"), _2(1), _3(true), _4(false), _5(gtsvector_decompress), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gtsvector_decompress"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3649), _1("gtsvector_decompress"), _2(1), _3(true), _4(false), _5(gtsvector_decompress), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gtsvector_decompress"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GiST tsvector support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gtsvector_penalty", 1, - AddBuiltinFunc(_0(3653), _1("gtsvector_penalty"), _2(3), _3(true), _4(false), _5(gtsvector_penalty), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gtsvector_penalty"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3653), _1("gtsvector_penalty"), _2(3), _3(true), _4(false), _5(gtsvector_penalty), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gtsvector_penalty"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GiST tsvector support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gtsvector_picksplit", 1, - AddBuiltinFunc(_0(3650), _1("gtsvector_picksplit"), _2(2), _3(true), _4(false), _5(gtsvector_picksplit), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gtsvector_picksplit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3650), _1("gtsvector_picksplit"), _2(2), _3(true), _4(false), _5(gtsvector_picksplit), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gtsvector_picksplit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GiST tsvector support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gtsvector_same", 1, - AddBuiltinFunc(_0(3652), _1("gtsvector_same"), _2(3), _3(true), _4(false), _5(gtsvector_same), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 3642, 3642, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gtsvector_same"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3652), _1("gtsvector_same"), _2(3), _3(true), _4(false), _5(gtsvector_same), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 3642, 3642, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gtsvector_same"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GiST tsvector support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gtsvector_union", 1, - AddBuiltinFunc(_0(3651), _1("gtsvector_union"), _2(2), _3(true), _4(false), _5(gtsvector_union), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gtsvector_union"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3651), _1("gtsvector_union"), _2(2), _3(true), _4(false), _5(gtsvector_union), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gtsvector_union"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GiST tsvector support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gtsvectorin", 1, - AddBuiltinFunc(_0(3646), _1("gtsvectorin"), _2(1), _3(true), _4(false), _5(gtsvectorin), _6(3642), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gtsvectorin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3646), _1("gtsvectorin"), _2(1), _3(true), _4(false), _5(gtsvectorin), _6(3642), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gtsvectorin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gtsvectorout", 1, - AddBuiltinFunc(_0(3647), _1("gtsvectorout"), _2(1), _3(true), _4(false), _5(gtsvectorout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3642), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gtsvectorout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3647), _1("gtsvectorout"), _2(1), _3(true), _4(false), _5(gtsvectorout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3642), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gtsvectorout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "has_any_column_privilege", 6, - AddBuiltinFunc(_0(3024), _1("has_any_column_privilege"), _2(3), _3(true), _4(false), _5(has_any_column_privilege_name_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_any_column_privilege_name_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3025), _1("has_any_column_privilege"), _2(3), _3(true), _4(false), _5(has_any_column_privilege_name_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_any_column_privilege_name_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3026), _1("has_any_column_privilege"), _2(3), _3(true), _4(false), _5(has_any_column_privilege_id_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_any_column_privilege_id_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3027), _1("has_any_column_privilege"), _2(3), _3(true), _4(false), _5(has_any_column_privilege_id_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_any_column_privilege_id_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3028), _1("has_any_column_privilege"), _2(2), _3(true), _4(false), _5(has_any_column_privilege_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_any_column_privilege_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3029), _1("has_any_column_privilege"), _2(2), _3(true), _4(false), _5(has_any_column_privilege_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_any_column_privilege_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3024), _1("has_any_column_privilege"), _2(3), _3(true), _4(false), _5(has_any_column_privilege_name_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_any_column_privilege_name_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on any column by username, rel name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3025), _1("has_any_column_privilege"), _2(3), _3(true), _4(false), _5(has_any_column_privilege_name_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_any_column_privilege_name_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on any column by username, rel oid"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3026), _1("has_any_column_privilege"), _2(3), _3(true), _4(false), _5(has_any_column_privilege_id_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_any_column_privilege_id_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on any column by user oid, rel name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3027), _1("has_any_column_privilege"), _2(3), _3(true), _4(false), _5(has_any_column_privilege_id_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_any_column_privilege_id_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on any column by user oid, rel oid"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3028), _1("has_any_column_privilege"), _2(2), _3(true), _4(false), _5(has_any_column_privilege_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_any_column_privilege_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("current user privilege on any column by rel name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3029), _1("has_any_column_privilege"), _2(2), _3(true), _4(false), _5(has_any_column_privilege_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_any_column_privilege_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("current user privilege on any column by rel oid"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "has_cek_privilege", 6, - AddBuiltinFunc(_0(9130), _1("has_cek_privilege"), _2(3), _3(true), _4(false), _5(has_cek_privilege_name_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_cek_privilege_name_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(9131), _1("has_cek_privilege"), _2(3), _3(true), _4(false), _5(has_cek_privilege_name_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_cek_privilege_name_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(9132), _1("has_cek_privilege"), _2(3), _3(true), _4(false), _5(has_cek_privilege_id_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26,25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_cek_privilege_id_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(9133), _1("has_cek_privilege"), _2(3), _3(true), _4(false), _5(has_cek_privilege_id_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_cek_privilege_id_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(9134), _1("has_cek_privilege"), _2(2), _3(true), _4(false), _5(has_cek_privilege_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_cek_privilege_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(9135), _1("has_cek_privilege"), _2(2), _3(true), _4(false), _5(has_cek_privilege_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_cek_privilege_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(9130), _1("has_cek_privilege"), _2(3), _3(true), _4(false), _5(has_cek_privilege_name_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_cek_privilege_name_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(9131), _1("has_cek_privilege"), _2(3), _3(true), _4(false), _5(has_cek_privilege_name_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_cek_privilege_name_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(9132), _1("has_cek_privilege"), _2(3), _3(true), _4(false), _5(has_cek_privilege_id_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26,25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_cek_privilege_id_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(9133), _1("has_cek_privilege"), _2(3), _3(true), _4(false), _5(has_cek_privilege_id_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_cek_privilege_id_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(9134), _1("has_cek_privilege"), _2(2), _3(true), _4(false), _5(has_cek_privilege_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_cek_privilege_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(9135), _1("has_cek_privilege"), _2(2), _3(true), _4(false), _5(has_cek_privilege_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_cek_privilege_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "has_cmk_privilege", 6, - AddBuiltinFunc(_0(9024), _1("has_cmk_privilege"), _2(3), _3(true), _4(false), _5(has_cmk_privilege_name_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_cmk_privilege_name_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(9025), _1("has_cmk_privilege"), _2(3), _3(true), _4(false), _5(has_cmk_privilege_name_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_cmk_privilege_name_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(9026), _1("has_cmk_privilege"), _2(3), _3(true), _4(false), _5(has_cmk_privilege_id_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_cmk_privilege_id_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(9027), _1("has_cmk_privilege"), _2(3), _3(true), _4(false), _5(has_cmk_privilege_id_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_cmk_privilege_id_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(9028), _1("has_cmk_privilege"), _2(2), _3(true), _4(false), _5(has_cmk_privilege_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_cmk_privilege_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(9029), _1("has_cmk_privilege"), _2(2), _3(true), _4(false), _5(has_cmk_privilege_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_cmk_privilege_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(9024), _1("has_cmk_privilege"), _2(3), _3(true), _4(false), _5(has_cmk_privilege_name_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_cmk_privilege_name_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(9025), _1("has_cmk_privilege"), _2(3), _3(true), _4(false), _5(has_cmk_privilege_name_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_cmk_privilege_name_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(9026), _1("has_cmk_privilege"), _2(3), _3(true), _4(false), _5(has_cmk_privilege_id_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_cmk_privilege_id_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(9027), _1("has_cmk_privilege"), _2(3), _3(true), _4(false), _5(has_cmk_privilege_id_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_cmk_privilege_id_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(9028), _1("has_cmk_privilege"), _2(2), _3(true), _4(false), _5(has_cmk_privilege_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_cmk_privilege_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(9029), _1("has_cmk_privilege"), _2(2), _3(true), _4(false), _5(has_cmk_privilege_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_cmk_privilege_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "has_column_privilege", 12, - AddBuiltinFunc(_0(3012), _1("has_column_privilege"), _2(4), _3(true), _4(false), _5(has_column_privilege_name_name_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 19, 25, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_column_privilege_name_name_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3013), _1("has_column_privilege"), _2(4), _3(true), _4(false), _5(has_column_privilege_name_name_attnum), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 19, 25, 21, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_column_privilege_name_name_attnum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3014), _1("has_column_privilege"), _2(4), _3(true), _4(false), _5(has_column_privilege_name_id_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 19, 26, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_column_privilege_name_id_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3015), _1("has_column_privilege"), _2(4), _3(true), _4(false), _5(has_column_privilege_name_id_attnum), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 19, 26, 21, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_column_privilege_name_id_attnum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3016), _1("has_column_privilege"), _2(4), _3(true), _4(false), _5(has_column_privilege_id_name_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 26, 25, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_column_privilege_id_name_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3017), _1("has_column_privilege"), _2(4), _3(true), _4(false), _5(has_column_privilege_id_name_attnum), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 26, 25, 21, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_column_privilege_id_name_attnum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3018), _1("has_column_privilege"), _2(4), _3(true), _4(false), _5(has_column_privilege_id_id_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 26, 26, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_column_privilege_id_id_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3019), _1("has_column_privilege"), _2(4), _3(true), _4(false), _5(has_column_privilege_id_id_attnum), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 26, 26, 21, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_column_privilege_id_id_attnum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3020), _1("has_column_privilege"), _2(3), _3(true), _4(false), _5(has_column_privilege_name_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 25, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_column_privilege_name_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3021), _1("has_column_privilege"), _2(3), _3(true), _4(false), _5(has_column_privilege_name_attnum), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 25, 21, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_column_privilege_name_attnum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3022), _1("has_column_privilege"), _2(3), _3(true), _4(false), _5(has_column_privilege_id_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_column_privilege_id_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3023), _1("has_column_privilege"), _2(3), _3(true), _4(false), _5(has_column_privilege_id_attnum), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 21, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_column_privilege_id_attnum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3012), _1("has_column_privilege"), _2(4), _3(true), _4(false), _5(has_column_privilege_name_name_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 19, 25, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_column_privilege_name_name_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on column by username, rel name, col name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3013), _1("has_column_privilege"), _2(4), _3(true), _4(false), _5(has_column_privilege_name_name_attnum), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 19, 25, 21, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_column_privilege_name_name_attnum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on column by username, rel name, col attnum"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3014), _1("has_column_privilege"), _2(4), _3(true), _4(false), _5(has_column_privilege_name_id_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 19, 26, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_column_privilege_name_id_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on column by username, rel oid, col name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3015), _1("has_column_privilege"), _2(4), _3(true), _4(false), _5(has_column_privilege_name_id_attnum), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 19, 26, 21, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_column_privilege_name_id_attnum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on column by username, rel oid, col attnum"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3016), _1("has_column_privilege"), _2(4), _3(true), _4(false), _5(has_column_privilege_id_name_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 26, 25, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_column_privilege_id_name_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on column by user oid, rel name, col name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3017), _1("has_column_privilege"), _2(4), _3(true), _4(false), _5(has_column_privilege_id_name_attnum), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 26, 25, 21, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_column_privilege_id_name_attnum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on column by user oid, rel name, col attnum"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3018), _1("has_column_privilege"), _2(4), _3(true), _4(false), _5(has_column_privilege_id_id_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 26, 26, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_column_privilege_id_id_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on column by user oid, rel oid, col name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3019), _1("has_column_privilege"), _2(4), _3(true), _4(false), _5(has_column_privilege_id_id_attnum), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 26, 26, 21, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_column_privilege_id_id_attnum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on column by user oid, rel oid, col attnum"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3020), _1("has_column_privilege"), _2(3), _3(true), _4(false), _5(has_column_privilege_name_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 25, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_column_privilege_name_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("current user privilege on column by rel name, col name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3021), _1("has_column_privilege"), _2(3), _3(true), _4(false), _5(has_column_privilege_name_attnum), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 25, 21, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_column_privilege_name_attnum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("current user privilege on column by rel name, col attnum"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3022), _1("has_column_privilege"), _2(3), _3(true), _4(false), _5(has_column_privilege_id_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_column_privilege_id_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("current user privilege on column by rel oid, col name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3023), _1("has_column_privilege"), _2(3), _3(true), _4(false), _5(has_column_privilege_id_attnum), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 21, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_column_privilege_id_attnum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("current user privilege on column by rel oid, col attnum"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "has_database_privilege", 6, - AddBuiltinFunc(_0(2250), _1("has_database_privilege"), _2(3), _3(true), _4(false), _5(has_database_privilege_name_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_database_privilege_name_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2251), _1("has_database_privilege"), _2(3), _3(true), _4(false), _5(has_database_privilege_name_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_database_privilege_name_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2252), _1("has_database_privilege"), _2(3), _3(true), _4(false), _5(has_database_privilege_id_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_database_privilege_id_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2253), _1("has_database_privilege"), _2(3), _3(true), _4(false), _5(has_database_privilege_id_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_database_privilege_id_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2254), _1("has_database_privilege"), _2(2), _3(true), _4(false), _5(has_database_privilege_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_database_privilege_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2255), _1("has_database_privilege"), _2(2), _3(true), _4(false), _5(has_database_privilege_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_database_privilege_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2250), _1("has_database_privilege"), _2(3), _3(true), _4(false), _5(has_database_privilege_name_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_database_privilege_name_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on database by username, database name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2251), _1("has_database_privilege"), _2(3), _3(true), _4(false), _5(has_database_privilege_name_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_database_privilege_name_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on database by username, database oid"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2252), _1("has_database_privilege"), _2(3), _3(true), _4(false), _5(has_database_privilege_id_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_database_privilege_id_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on database by user oid, database name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2253), _1("has_database_privilege"), _2(3), _3(true), _4(false), _5(has_database_privilege_id_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_database_privilege_id_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on database by user oid, database oid"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2254), _1("has_database_privilege"), _2(2), _3(true), _4(false), _5(has_database_privilege_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_database_privilege_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("current user privilege on database by database name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2255), _1("has_database_privilege"), _2(2), _3(true), _4(false), _5(has_database_privilege_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_database_privilege_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("current user privilege on database by database oid"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "has_directory_privilege", 6, - AddBuiltinFunc(_0(4700), _1("has_directory_privilege"), _2(3), _3(true), _4(false), _5(has_directory_privilege_name_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_directory_privilege_name_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4701), _1("has_directory_privilege"), _2(3), _3(true), _4(false), _5(has_directory_privilege_name_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_directory_privilege_name_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4702), _1("has_directory_privilege"), _2(3), _3(true), _4(false), _5(has_directory_privilege_id_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_directory_privilege_id_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4703), _1("has_directory_privilege"), _2(3), _3(true), _4(false), _5(has_directory_privilege_id_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_directory_privilege_id_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4704), _1("has_directory_privilege"), _2(2), _3(true), _4(false), _5(has_directory_privilege_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_directory_privilege_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4705), _1("has_directory_privilege"), _2(2), _3(true), _4(false), _5(has_directory_privilege_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_directory_privilege_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4700), _1("has_directory_privilege"), _2(3), _3(true), _4(false), _5(has_directory_privilege_name_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_directory_privilege_name_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4701), _1("has_directory_privilege"), _2(3), _3(true), _4(false), _5(has_directory_privilege_name_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_directory_privilege_name_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4702), _1("has_directory_privilege"), _2(3), _3(true), _4(false), _5(has_directory_privilege_id_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_directory_privilege_id_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4703), _1("has_directory_privilege"), _2(3), _3(true), _4(false), _5(has_directory_privilege_id_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_directory_privilege_id_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4704), _1("has_directory_privilege"), _2(2), _3(true), _4(false), _5(has_directory_privilege_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_directory_privilege_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4705), _1("has_directory_privilege"), _2(2), _3(true), _4(false), _5(has_directory_privilege_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_directory_privilege_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "has_foreign_data_wrapper_privilege", 6, - AddBuiltinFunc(_0(3000), _1("has_foreign_data_wrapper_privilege"), _2(3), _3(true), _4(false), _5(has_foreign_data_wrapper_privilege_name_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_foreign_data_wrapper_privilege_name_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3001), _1("has_foreign_data_wrapper_privilege"), _2(3), _3(true), _4(false), _5(has_foreign_data_wrapper_privilege_name_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_foreign_data_wrapper_privilege_name_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3002), _1("has_foreign_data_wrapper_privilege"), _2(3), _3(true), _4(false), _5(has_foreign_data_wrapper_privilege_id_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_foreign_data_wrapper_privilege_id_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3003), _1("has_foreign_data_wrapper_privilege"), _2(3), _3(true), _4(false), _5(has_foreign_data_wrapper_privilege_id_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_foreign_data_wrapper_privilege_id_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3004), _1("has_foreign_data_wrapper_privilege"), _2(2), _3(true), _4(false), _5(has_foreign_data_wrapper_privilege_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_foreign_data_wrapper_privilege_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3005), _1("has_foreign_data_wrapper_privilege"), _2(2), _3(true), _4(false), _5(has_foreign_data_wrapper_privilege_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_foreign_data_wrapper_privilege_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3000), _1("has_foreign_data_wrapper_privilege"), _2(3), _3(true), _4(false), _5(has_foreign_data_wrapper_privilege_name_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_foreign_data_wrapper_privilege_name_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on foreign data wrapper by username, foreign data wrapper name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3001), _1("has_foreign_data_wrapper_privilege"), _2(3), _3(true), _4(false), _5(has_foreign_data_wrapper_privilege_name_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_foreign_data_wrapper_privilege_name_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on foreign data wrapper by username, foreign data wrapper oid"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3002), _1("has_foreign_data_wrapper_privilege"), _2(3), _3(true), _4(false), _5(has_foreign_data_wrapper_privilege_id_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_foreign_data_wrapper_privilege_id_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on foreign data wrapper by user oid, foreign data wrapper name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3003), _1("has_foreign_data_wrapper_privilege"), _2(3), _3(true), _4(false), _5(has_foreign_data_wrapper_privilege_id_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_foreign_data_wrapper_privilege_id_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on foreign data wrapper by user oid, foreign data wrapper oid"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3004), _1("has_foreign_data_wrapper_privilege"), _2(2), _3(true), _4(false), _5(has_foreign_data_wrapper_privilege_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_foreign_data_wrapper_privilege_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("current user privilege on foreign data wrapper by foreign data wrapper name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3005), _1("has_foreign_data_wrapper_privilege"), _2(2), _3(true), _4(false), _5(has_foreign_data_wrapper_privilege_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_foreign_data_wrapper_privilege_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("current user privilege on foreign data wrapper by foreign data wrapper oid"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "has_function_privilege", 6, - AddBuiltinFunc(_0(2256), _1("has_function_privilege"), _2(3), _3(true), _4(false), _5(has_function_privilege_name_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_function_privilege_name_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2257), _1("has_function_privilege"), _2(3), _3(true), _4(false), _5(has_function_privilege_name_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_function_privilege_name_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2258), _1("has_function_privilege"), _2(3), _3(true), _4(false), _5(has_function_privilege_id_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_function_privilege_id_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2259), _1("has_function_privilege"), _2(3), _3(true), _4(false), _5(has_function_privilege_id_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_function_privilege_id_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2260), _1("has_function_privilege"), _2(2), _3(true), _4(false), _5(has_function_privilege_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_function_privilege_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2261), _1("has_function_privilege"), _2(2), _3(true), _4(false), _5(has_function_privilege_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_function_privilege_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2256), _1("has_function_privilege"), _2(3), _3(true), _4(false), _5(has_function_privilege_name_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_function_privilege_name_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on function by username, function name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2257), _1("has_function_privilege"), _2(3), _3(true), _4(false), _5(has_function_privilege_name_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_function_privilege_name_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on function by username, function oid"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2258), _1("has_function_privilege"), _2(3), _3(true), _4(false), _5(has_function_privilege_id_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_function_privilege_id_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on function by user oid, function name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2259), _1("has_function_privilege"), _2(3), _3(true), _4(false), _5(has_function_privilege_id_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_function_privilege_id_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on function by user oid, function oid"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2260), _1("has_function_privilege"), _2(2), _3(true), _4(false), _5(has_function_privilege_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_function_privilege_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("current user privilege on function by function name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2261), _1("has_function_privilege"), _2(2), _3(true), _4(false), _5(has_function_privilege_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_function_privilege_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("current user privilege on function by function oid"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "has_language_privilege", 6, - AddBuiltinFunc(_0(2262), _1("has_language_privilege"), _2(3), _3(true), _4(false), _5(has_language_privilege_name_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_language_privilege_name_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2263), _1("has_language_privilege"), _2(3), _3(true), _4(false), _5(has_language_privilege_name_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_language_privilege_name_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2264), _1("has_language_privilege"), _2(3), _3(true), _4(false), _5(has_language_privilege_id_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_language_privilege_id_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2265), _1("has_language_privilege"), _2(3), _3(true), _4(false), _5(has_language_privilege_id_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_language_privilege_id_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2266), _1("has_language_privilege"), _2(2), _3(true), _4(false), _5(has_language_privilege_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_language_privilege_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2267), _1("has_language_privilege"), _2(2), _3(true), _4(false), _5(has_language_privilege_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_language_privilege_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2262), _1("has_language_privilege"), _2(3), _3(true), _4(false), _5(has_language_privilege_name_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_language_privilege_name_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on language by username, language name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2263), _1("has_language_privilege"), _2(3), _3(true), _4(false), _5(has_language_privilege_name_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_language_privilege_name_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on language by username, language oid"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2264), _1("has_language_privilege"), _2(3), _3(true), _4(false), _5(has_language_privilege_id_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_language_privilege_id_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on language by user oid, language name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2265), _1("has_language_privilege"), _2(3), _3(true), _4(false), _5(has_language_privilege_id_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_language_privilege_id_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on language by user oid, language oid"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2266), _1("has_language_privilege"), _2(2), _3(true), _4(false), _5(has_language_privilege_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_language_privilege_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("current user privilege on language by language name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2267), _1("has_language_privilege"), _2(2), _3(true), _4(false), _5(has_language_privilege_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_language_privilege_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("current user privilege on language by language oid"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "has_nodegroup_privilege", 6, - AddBuiltinFunc(_0(4201), _1("has_nodegroup_privilege"), _2(3), _3(true), _4(false), _5(has_nodegroup_privilege_name_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_nodegroup_privilege_name_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4202), _1("has_nodegroup_privilege"), _2(3), _3(true), _4(false), _5(has_nodegroup_privilege_name_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_nodegroup_privilege_name_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4203), _1("has_nodegroup_privilege"), _2(3), _3(true), _4(false), _5(has_nodegroup_privilege_id_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_nodegroup_privilege_id_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4204), _1("has_nodegroup_privilege"), _2(3), _3(true), _4(false), _5(has_nodegroup_privilege_id_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_nodegroup_privilege_id_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4205), _1("has_nodegroup_privilege"), _2(2), _3(true), _4(false), _5(has_nodegroup_privilege_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_nodegroup_privilege_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4206), _1("has_nodegroup_privilege"), _2(2), _3(true), _4(false), _5(has_nodegroup_privilege_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_nodegroup_privilege_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4201), _1("has_nodegroup_privilege"), _2(3), _3(true), _4(false), _5(has_nodegroup_privilege_name_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_nodegroup_privilege_name_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4202), _1("has_nodegroup_privilege"), _2(3), _3(true), _4(false), _5(has_nodegroup_privilege_name_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_nodegroup_privilege_name_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4203), _1("has_nodegroup_privilege"), _2(3), _3(true), _4(false), _5(has_nodegroup_privilege_id_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_nodegroup_privilege_id_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4204), _1("has_nodegroup_privilege"), _2(3), _3(true), _4(false), _5(has_nodegroup_privilege_id_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_nodegroup_privilege_id_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4205), _1("has_nodegroup_privilege"), _2(2), _3(true), _4(false), _5(has_nodegroup_privilege_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_nodegroup_privilege_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4206), _1("has_nodegroup_privilege"), _2(2), _3(true), _4(false), _5(has_nodegroup_privilege_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_nodegroup_privilege_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "has_schema_privilege", 6, - AddBuiltinFunc(_0(2268), _1("has_schema_privilege"), _2(3), _3(true), _4(false), _5(has_schema_privilege_name_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_schema_privilege_name_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2269), _1("has_schema_privilege"), _2(3), _3(true), _4(false), _5(has_schema_privilege_name_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_schema_privilege_name_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2270), _1("has_schema_privilege"), _2(3), _3(true), _4(false), _5(has_schema_privilege_id_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_schema_privilege_id_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2271), _1("has_schema_privilege"), _2(3), _3(true), _4(false), _5(has_schema_privilege_id_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_schema_privilege_id_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2272), _1("has_schema_privilege"), _2(2), _3(true), _4(false), _5(has_schema_privilege_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_schema_privilege_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2273), _1("has_schema_privilege"), _2(2), _3(true), _4(false), _5(has_schema_privilege_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_schema_privilege_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2268), _1("has_schema_privilege"), _2(3), _3(true), _4(false), _5(has_schema_privilege_name_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_schema_privilege_name_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on schema by username, schema name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2269), _1("has_schema_privilege"), _2(3), _3(true), _4(false), _5(has_schema_privilege_name_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_schema_privilege_name_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on schema by username, schema oid"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2270), _1("has_schema_privilege"), _2(3), _3(true), _4(false), _5(has_schema_privilege_id_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_schema_privilege_id_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on schema by user oid, schema name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2271), _1("has_schema_privilege"), _2(3), _3(true), _4(false), _5(has_schema_privilege_id_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_schema_privilege_id_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on schema by user oid, schema oid"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2272), _1("has_schema_privilege"), _2(2), _3(true), _4(false), _5(has_schema_privilege_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_schema_privilege_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("current user privilege on schema by schema name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2273), _1("has_schema_privilege"), _2(2), _3(true), _4(false), _5(has_schema_privilege_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_schema_privilege_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("current user privilege on schema by schema oid"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "has_sequence_privilege", 6, - AddBuiltinFunc(_0(2181), _1("has_sequence_privilege"), _2(3), _3(true), _4(false), _5(has_sequence_privilege_name_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_sequence_privilege_name_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2182), _1("has_sequence_privilege"), _2(3), _3(true), _4(false), _5(has_sequence_privilege_name_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_sequence_privilege_name_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2183), _1("has_sequence_privilege"), _2(3), _3(true), _4(false), _5(has_sequence_privilege_id_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_sequence_privilege_id_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2184), _1("has_sequence_privilege"), _2(3), _3(true), _4(false), _5(has_sequence_privilege_id_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_sequence_privilege_id_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2185), _1("has_sequence_privilege"), _2(2), _3(true), _4(false), _5(has_sequence_privilege_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_sequence_privilege_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2186), _1("has_sequence_privilege"), _2(2), _3(true), _4(false), _5(has_sequence_privilege_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_sequence_privilege_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2181), _1("has_sequence_privilege"), _2(3), _3(true), _4(false), _5(has_sequence_privilege_name_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_sequence_privilege_name_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on sequence by username, seq name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2182), _1("has_sequence_privilege"), _2(3), _3(true), _4(false), _5(has_sequence_privilege_name_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_sequence_privilege_name_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on sequence by username, seq oid"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2183), _1("has_sequence_privilege"), _2(3), _3(true), _4(false), _5(has_sequence_privilege_id_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_sequence_privilege_id_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on sequence by user oid, seq name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2184), _1("has_sequence_privilege"), _2(3), _3(true), _4(false), _5(has_sequence_privilege_id_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_sequence_privilege_id_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on sequence by user oid, seq oid"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2185), _1("has_sequence_privilege"), _2(2), _3(true), _4(false), _5(has_sequence_privilege_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_sequence_privilege_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("current user privilege on sequence by seq name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2186), _1("has_sequence_privilege"), _2(2), _3(true), _4(false), _5(has_sequence_privilege_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_sequence_privilege_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("current user privilege on sequence by seq oid"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "has_server_privilege", 6, - AddBuiltinFunc(_0(3006), _1("has_server_privilege"), _2(3), _3(true), _4(false), _5(has_server_privilege_name_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_server_privilege_name_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3007), _1("has_server_privilege"), _2(3), _3(true), _4(false), _5(has_server_privilege_name_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_server_privilege_name_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3008), _1("has_server_privilege"), _2(3), _3(true), _4(false), _5(has_server_privilege_id_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_server_privilege_id_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3009), _1("has_server_privilege"), _2(3), _3(true), _4(false), _5(has_server_privilege_id_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_server_privilege_id_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3010), _1("has_server_privilege"), _2(2), _3(true), _4(false), _5(has_server_privilege_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_server_privilege_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3011), _1("has_server_privilege"), _2(2), _3(true), _4(false), _5(has_server_privilege_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_server_privilege_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3006), _1("has_server_privilege"), _2(3), _3(true), _4(false), _5(has_server_privilege_name_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_server_privilege_name_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on server by username, server name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3007), _1("has_server_privilege"), _2(3), _3(true), _4(false), _5(has_server_privilege_name_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_server_privilege_name_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on server by username, server oid"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3008), _1("has_server_privilege"), _2(3), _3(true), _4(false), _5(has_server_privilege_id_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_server_privilege_id_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on server by user oid, server name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3009), _1("has_server_privilege"), _2(3), _3(true), _4(false), _5(has_server_privilege_id_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_server_privilege_id_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on server by user oid, server oid"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3010), _1("has_server_privilege"), _2(2), _3(true), _4(false), _5(has_server_privilege_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_server_privilege_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("current user privilege on server by server name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3011), _1("has_server_privilege"), _2(2), _3(true), _4(false), _5(has_server_privilege_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_server_privilege_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("current user privilege on server by server oid"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "has_table_privilege", 6, - AddBuiltinFunc(_0(1922), _1("has_table_privilege"), _2(3), _3(true), _4(false), _5(has_table_privilege_name_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_table_privilege_name_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1923), _1("has_table_privilege"), _2(3), _3(true), _4(false), _5(has_table_privilege_name_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_table_privilege_name_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1924), _1("has_table_privilege"), _2(3), _3(true), _4(false), _5(has_table_privilege_id_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_table_privilege_id_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1925), _1("has_table_privilege"), _2(3), _3(true), _4(false), _5(has_table_privilege_id_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_table_privilege_id_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1926), _1("has_table_privilege"), _2(2), _3(true), _4(false), _5(has_table_privilege_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_table_privilege_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1927), _1("has_table_privilege"), _2(2), _3(true), _4(false), _5(has_table_privilege_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_table_privilege_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1922), _1("has_table_privilege"), _2(3), _3(true), _4(false), _5(has_table_privilege_name_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_table_privilege_name_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on relation by username, rel name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1923), _1("has_table_privilege"), _2(3), _3(true), _4(false), _5(has_table_privilege_name_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_table_privilege_name_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on relation by username, rel oid"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1924), _1("has_table_privilege"), _2(3), _3(true), _4(false), _5(has_table_privilege_id_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_table_privilege_id_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on relation by user oid, rel name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1925), _1("has_table_privilege"), _2(3), _3(true), _4(false), _5(has_table_privilege_id_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_table_privilege_id_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on relation by user oid, rel oid"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1926), _1("has_table_privilege"), _2(2), _3(true), _4(false), _5(has_table_privilege_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_table_privilege_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("current user privilege on relation by rel name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1927), _1("has_table_privilege"), _2(2), _3(true), _4(false), _5(has_table_privilege_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_table_privilege_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("current user privilege on relation by rel oid"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "has_tablespace_privilege", 6, - AddBuiltinFunc(_0(2390), _1("has_tablespace_privilege"), _2(3), _3(true), _4(false), _5(has_tablespace_privilege_name_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_tablespace_privilege_name_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2391), _1("has_tablespace_privilege"), _2(3), _3(true), _4(false), _5(has_tablespace_privilege_name_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_tablespace_privilege_name_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2392), _1("has_tablespace_privilege"), _2(3), _3(true), _4(false), _5(has_tablespace_privilege_id_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_tablespace_privilege_id_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2393), _1("has_tablespace_privilege"), _2(3), _3(true), _4(false), _5(has_tablespace_privilege_id_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_tablespace_privilege_id_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2394), _1("has_tablespace_privilege"), _2(2), _3(true), _4(false), _5(has_tablespace_privilege_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_tablespace_privilege_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2395), _1("has_tablespace_privilege"), _2(2), _3(true), _4(false), _5(has_tablespace_privilege_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_tablespace_privilege_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2390), _1("has_tablespace_privilege"), _2(3), _3(true), _4(false), _5(has_tablespace_privilege_name_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_tablespace_privilege_name_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on tablespace by username, tablespace name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2391), _1("has_tablespace_privilege"), _2(3), _3(true), _4(false), _5(has_tablespace_privilege_name_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_tablespace_privilege_name_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on tablespace by username, tablespace oid"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2392), _1("has_tablespace_privilege"), _2(3), _3(true), _4(false), _5(has_tablespace_privilege_id_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_tablespace_privilege_id_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on tablespace by user oid, tablespace name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2393), _1("has_tablespace_privilege"), _2(3), _3(true), _4(false), _5(has_tablespace_privilege_id_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_tablespace_privilege_id_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on tablespace by user oid, tablespace oid"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2394), _1("has_tablespace_privilege"), _2(2), _3(true), _4(false), _5(has_tablespace_privilege_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_tablespace_privilege_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("current user privilege on tablespace by tablespace name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2395), _1("has_tablespace_privilege"), _2(2), _3(true), _4(false), _5(has_tablespace_privilege_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_tablespace_privilege_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("current user privilege on tablespace by tablespace oid"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "has_type_privilege", 6, - AddBuiltinFunc(_0(3138), _1("has_type_privilege"), _2(3), _3(true), _4(false), _5(has_type_privilege_name_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_type_privilege_name_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3139), _1("has_type_privilege"), _2(3), _3(true), _4(false), _5(has_type_privilege_name_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_type_privilege_name_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3140), _1("has_type_privilege"), _2(3), _3(true), _4(false), _5(has_type_privilege_id_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_type_privilege_id_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3141), _1("has_type_privilege"), _2(3), _3(true), _4(false), _5(has_type_privilege_id_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_type_privilege_id_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3142), _1("has_type_privilege"), _2(2), _3(true), _4(false), _5(has_type_privilege_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_type_privilege_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3143), _1("has_type_privilege"), _2(2), _3(true), _4(false), _5(has_type_privilege_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_type_privilege_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3138), _1("has_type_privilege"), _2(3), _3(true), _4(false), _5(has_type_privilege_name_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_type_privilege_name_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on type by username, type name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3139), _1("has_type_privilege"), _2(3), _3(true), _4(false), _5(has_type_privilege_name_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_type_privilege_name_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on type by username, type oid"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3140), _1("has_type_privilege"), _2(3), _3(true), _4(false), _5(has_type_privilege_id_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_type_privilege_id_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on type by user oid, type name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3141), _1("has_type_privilege"), _2(3), _3(true), _4(false), _5(has_type_privilege_id_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_type_privilege_id_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on type by user oid, type oid"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3142), _1("has_type_privilege"), _2(2), _3(true), _4(false), _5(has_type_privilege_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_type_privilege_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("current user privilege on type by type name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3143), _1("has_type_privilege"), _2(2), _3(true), _4(false), _5(has_type_privilege_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("has_type_privilege_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("current user privilege on type by type oid"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hash16in", 1, - AddBuiltinFunc(_0(5812), _1("hash16in"), _2(1), _3(true), _4(false), _5(hash16in), _6(5801), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hash16in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5812), _1("hash16in"), _2(1), _3(true), _4(false), _5(hash16in), _6(5801), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hash16in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hash16out", 1, - AddBuiltinFunc(_0(5813), _1("hash16out"), _2(1), _3(true), _4(false), _5(hash16out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5801), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hash16out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5813), _1("hash16out"), _2(1), _3(true), _4(false), _5(hash16out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5801), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hash16out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hash32in", 1, - AddBuiltinFunc(_0(5814), _1("hash32in"), _2(1), _3(true), _4(false), _5(hash32in), _6(5802), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hash32in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5814), _1("hash32in"), _2(1), _3(true), _4(false), _5(hash32in), _6(5802), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hash32in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hash32out", 1, - AddBuiltinFunc(_0(5815), _1("hash32out"), _2(1), _3(true), _4(false), _5(hash32out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5802), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hash32out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5815), _1("hash32out"), _2(1), _3(true), _4(false), _5(hash32out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5802), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hash32out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hash_aclitem", 1, - AddBuiltinFunc(_0(329), _1("hash_aclitem"), _2(1), _3(true), _4(false), _5(hash_aclitem), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1033), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hash_aclitem"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(329), _1("hash_aclitem"), _2(1), _3(true), _4(false), _5(hash_aclitem), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1033), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hash_aclitem"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("hash"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hash_array", 1, - AddBuiltinFunc(_0(626), _1("hash_array"), _2(1), _3(true), _4(false), _5(hash_array), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hash_array"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(626), _1("hash_array"), _2(1), _3(true), _4(false), _5(hash_array), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hash_array"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("hash"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hash_numeric", 1, - AddBuiltinFunc(_0(432), _1("hash_numeric"), _2(1), _3(true), _4(false), _5(hash_numeric), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hash_numeric"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(432), _1("hash_numeric"), _2(1), _3(true), _4(false), _5(hash_numeric), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hash_numeric"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("hash"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hash_range", 1, - AddBuiltinFunc(_0(3902), _1("hash_range"), _2(1), _3(true), _4(false), _5(hash_range), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hash_range"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3902), _1("hash_range"), _2(1), _3(true), _4(false), _5(hash_range), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hash_range"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("hash a range"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hashbeginscan", 1, - AddBuiltinFunc(_0(443), _1("hashbeginscan"), _2(3), _3(true), _4(false), _5(hashbeginscan), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashbeginscan"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(443), _1("hashbeginscan"), _2(3), _3(true), _4(false), _5(hashbeginscan), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashbeginscan"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hashbpchar", 1, - AddBuiltinFunc(_0(HASHBPCHAROID), _1("hashbpchar"), _2(1), _3(true), _4(false), _5(hashbpchar), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashbpchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(HASHBPCHAROID), _1("hashbpchar"), _2(1), _3(true), _4(false), _5(hashbpchar), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashbpchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("hash"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hashbuild", 1, - AddBuiltinFunc(_0(448), _1("hashbuild"), _2(3), _3(true), _4(false), _5(hashbuild), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashbuild"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(448), _1("hashbuild"), _2(3), _3(true), _4(false), _5(hashbuild), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashbuild"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hashbuildempty", 1, - AddBuiltinFunc(_0(327), _1("hashbuildempty"), _2(1), _3(true), _4(false), _5(hashbuildempty), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashbuildempty"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(327), _1("hashbuildempty"), _2(1), _3(true), _4(false), _5(hashbuildempty), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashbuildempty"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hashbulkdelete", 1, - AddBuiltinFunc(_0(442), _1("hashbulkdelete"), _2(4), _3(true), _4(false), _5(hashbulkdelete), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(4, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashbulkdelete"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(442), _1("hashbulkdelete"), _2(4), _3(true), _4(false), _5(hashbulkdelete), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(4, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashbulkdelete"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hashchar", 1, - AddBuiltinFunc(_0(454), _1("hashchar"), _2(1), _3(true), _4(false), _5(hashchar), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 18), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(454), _1("hashchar"), _2(1), _3(true), _4(false), _5(hashchar), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 18), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hashcostestimate", 1, - AddBuiltinFunc(_0(438), _1("hashcostestimate"), _2(7), _3(true), _4(false), _5(hashcostestimate), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(7, 2281, 2281, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashcostestimate"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(438), _1("hashcostestimate"), _2(7), _3(true), _4(false), _5(hashcostestimate), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(7, 2281, 2281, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashcostestimate"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hashendscan", 1, - AddBuiltinFunc(_0(445), _1("hashendscan"), _2(1), _3(true), _4(false), _5(hashendscan), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashendscan"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(445), _1("hashendscan"), _2(1), _3(true), _4(false), _5(hashendscan), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashendscan"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hashenum", 1, - AddBuiltinFunc(_0(3515), _1("hashenum"), _2(1), _3(true), _4(false), _5(hashenum), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3500), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashenum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3515), _1("hashenum"), _2(1), _3(true), _4(false), _5(hashenum), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3500), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashenum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("hash"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hashfloat4", 1, - AddBuiltinFunc(_0(451), _1("hashfloat4"), _2(1), _3(true), _4(false), _5(hashfloat4), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashfloat4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(451), _1("hashfloat4"), _2(1), _3(true), _4(false), _5(hashfloat4), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashfloat4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("hash"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hashfloat8", 1, - AddBuiltinFunc(_0(452), _1("hashfloat8"), _2(1), _3(true), _4(false), _5(hashfloat8), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashfloat8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(452), _1("hashfloat8"), _2(1), _3(true), _4(false), _5(hashfloat8), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashfloat8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("hash"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hashgetbitmap", 1, - AddBuiltinFunc(_0(637), _1("hashgetbitmap"), _2(2), _3(true), _4(false), _5(hashgetbitmap), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashgetbitmap"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(637), _1("hashgetbitmap"), _2(2), _3(true), _4(false), _5(hashgetbitmap), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashgetbitmap"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hashgettuple", 1, - AddBuiltinFunc(_0(440), _1("hashgettuple"), _2(2), _3(true), _4(false), _5(hashgettuple), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashgettuple"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(440), _1("hashgettuple"), _2(2), _3(true), _4(false), _5(hashgettuple), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashgettuple"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hashinet", 1, - AddBuiltinFunc(_0(422), _1("hashinet"), _2(1), _3(true), _4(false), _5(hashinet), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashinet"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(422), _1("hashinet"), _2(1), _3(true), _4(false), _5(hashinet), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashinet"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("hash"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hashinsert", 1, - AddBuiltinFunc(_0(441), _1("hashinsert"), _2(6), _3(true), _4(false), _5(hashinsert), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(6, 2281, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashinsert"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(441), _1("hashinsert"), _2(6), _3(true), _4(false), _5(hashinsert), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(6, 2281, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashinsert"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hashint1", 1, - AddBuiltinFunc(_0(5520), _1("hashint1"), _2(1), _3(true), _4(false), _5(hashint1), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashint1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5520), _1("hashint1"), _2(1), _3(true), _4(false), _5(hashint1), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashint1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hashint2", 1, - AddBuiltinFunc(_0(449), _1("hashint2"), _2(1), _3(true), _4(false), _5(hashint2), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashint2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(449), _1("hashint2"), _2(1), _3(true), _4(false), _5(hashint2), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashint2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("hash"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hashint2vector", 1, - AddBuiltinFunc(_0(398), _1("hashint2vector"), _2(1), _3(true), _4(false), _5(hashint2vector), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 22), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashint2vector"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(398), _1("hashint2vector"), _2(1), _3(true), _4(false), _5(hashint2vector), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 22), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashint2vector"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hashint4", 1, - AddBuiltinFunc(_0(HASHINT4OID), _1("hashint4"), _2(1), _3(true), _4(false), _5(hashint4), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashint4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(HASHINT4OID), _1("hashint4"), _2(1), _3(true), _4(false), _5(hashint4), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashint4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("hash"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hashint8", 1, - AddBuiltinFunc(_0(HASHINT8OID), _1("hashint8"), _2(1), _3(true), _4(false), _5(hashint8), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashint8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(HASHINT8OID), _1("hashint8"), _2(1), _3(true), _4(false), _5(hashint8), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashint8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("hash"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hashmacaddr", 1, - AddBuiltinFunc(_0(399), _1("hashmacaddr"), _2(1), _3(true), _4(false), _5(hashmacaddr), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 829), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashmacaddr"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(399), _1("hashmacaddr"), _2(1), _3(true), _4(false), _5(hashmacaddr), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 829), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashmacaddr"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("hash"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hashmarkpos", 1, - AddBuiltinFunc(_0(446), _1("hashmarkpos"), _2(1), _3(true), _4(false), _5(hashmarkpos), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashmarkpos"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(446), _1("hashmarkpos"), _2(1), _3(true), _4(false), _5(hashmarkpos), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashmarkpos"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hashmerge", 1, - AddBuiltinFunc(_0(3185), _1("hashmerge"), _2(5), _3(true), _4(false), _5(hashmerge), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(5, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashmerge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3185), _1("hashmerge"), _2(5), _3(true), _4(false), _5(hashmerge), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(5, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashmerge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hashname", 1, - AddBuiltinFunc(_0(455), _1("hashname"), _2(1), _3(true), _4(false), _5(hashname), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashname"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(455), _1("hashname"), _2(1), _3(true), _4(false), _5(hashname), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashname"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("hash"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hashoid", 1, - AddBuiltinFunc(_0(453), _1("hashoid"), _2(1), _3(true), _4(false), _5(hashoid), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashoid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(453), _1("hashoid"), _2(1), _3(true), _4(false), _5(hashoid), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashoid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("hash"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hashoidvector", 1, - AddBuiltinFunc(_0(457), _1("hashoidvector"), _2(1), _3(true), _4(false), _5(hashoidvector), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 30), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashoidvector"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(457), _1("hashoidvector"), _2(1), _3(true), _4(false), _5(hashoidvector), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 30), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashoidvector"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("hash"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hashoptions", 1, - AddBuiltinFunc(_0(2786), _1("hashoptions"), _2(2), _3(true), _4(false), _5(hashoptions), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1009, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashoptions"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2786), _1("hashoptions"), _2(2), _3(true), _4(false), _5(hashoptions), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1009, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashoptions"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hashrescan", 1, - AddBuiltinFunc(_0(444), _1("hashrescan"), _2(5), _3(true), _4(false), _5(hashrescan), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(5, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashrescan"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(444), _1("hashrescan"), _2(5), _3(true), _4(false), _5(hashrescan), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(5, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashrescan"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hashrestrpos", 1, - AddBuiltinFunc(_0(447), _1("hashrestrpos"), _2(1), _3(true), _4(false), _5(hashrestrpos), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashrestrpos"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(447), _1("hashrestrpos"), _2(1), _3(true), _4(false), _5(hashrestrpos), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashrestrpos"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hashtext", 1, - AddBuiltinFunc(_0(HASHTEXTOID), _1("hashtext"), _2(1), _3(true), _4(false), _5(hashtext), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashtext"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(HASHTEXTOID), _1("hashtext"), _2(1), _3(true), _4(false), _5(hashtext), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashtext"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("hash"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hashvacuumcleanup", 1, - AddBuiltinFunc(_0(425), _1("hashvacuumcleanup"), _2(2), _3(true), _4(false), _5(hashvacuumcleanup), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashvacuumcleanup"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(425), _1("hashvacuumcleanup"), _2(2), _3(true), _4(false), _5(hashvacuumcleanup), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashvacuumcleanup"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hashvarlena", 1, - AddBuiltinFunc(_0(456), _1("hashvarlena"), _2(1), _3(true), _4(false), _5(hashvarlena), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashvarlena"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(456), _1("hashvarlena"), _2(1), _3(true), _4(false), _5(hashvarlena), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hashvarlena"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("hash"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "height", 1, - AddBuiltinFunc(_0(977), _1("height"), _2(1), _3(true), _4(false), _5(box_height), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_height"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(977), _1("height"), _2(1), _3(true), _4(false), _5(box_height), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_height"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("box height"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hextoraw", 1, - AddBuiltinFunc(_0(4038), _1("hextoraw"), _2(1), _3(true), _4(false), _5(texttoraw), _6(86), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("texttoraw"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4038), _1("hextoraw"), _2(1), _3(true), _4(false), _5(texttoraw), _6(86), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("texttoraw"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll", 1, - AddBuiltinFunc(_0(4311), _1("hll"), _2(3), _3(true), _4(false), _5(hll), _6(4301), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 4301, 23, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4311), _1("hll"), _2(3), _3(true), _4(false), _5(hll), _6(4301), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 4301, 23, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_add", 1, - AddBuiltinFunc(_0(4322), _1("hll_add"), _2(2), _3(true), _4(false), _5(hll_add), _6(4301), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 4301, 4303), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_add"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4322), _1("hll_add"), _2(2), _3(true), _4(false), _5(hll_add), _6(4301), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 4301, 4303), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_add"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_add_agg", 5, - AddBuiltinFunc(_0(4366), _1("hll_add_agg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(4301), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4303), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4380), _1("hll_add_agg"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(4301), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 4303, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4381), _1("hll_add_agg"), _2(3), _3(false), _4(false), _5(aggregate_dummy), _6(4301), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 4303, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4382), _1("hll_add_agg"), _2(4), _3(false), _4(false), _5(aggregate_dummy), _6(4301), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 4303, 23, 23, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4383), _1("hll_add_agg"), _2(5), _3(false), _4(false), _5(aggregate_dummy), _6(4301), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(5, 4303, 23, 23, 20, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4366), _1("hll_add_agg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(4301), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4303), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4380), _1("hll_add_agg"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(4301), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 4303, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4381), _1("hll_add_agg"), _2(3), _3(false), _4(false), _5(aggregate_dummy), _6(4301), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 4303, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4382), _1("hll_add_agg"), _2(4), _3(false), _4(false), _5(aggregate_dummy), _6(4301), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 4303, 23, 23, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4383), _1("hll_add_agg"), _2(5), _3(false), _4(false), _5(aggregate_dummy), _6(4301), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(5, 4303, 23, 23, 20, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_add_rev", 1, - AddBuiltinFunc(_0(4323), _1("hll_add_rev"), _2(2), _3(true), _4(false), _5(hll_add_rev), _6(4301), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 4303, 4301), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_add_rev"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4323), _1("hll_add_rev"), _2(2), _3(true), _4(false), _5(hll_add_rev), _6(4301), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 4303, 4301), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_add_rev"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_add_trans0", 1, - AddBuiltinFunc(_0(4351), _1("hll_add_trans0"), _2(2), _3(false), _4(false), _5(hll_add_trans0), _6(4370), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 4370, 4303), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_add_trans0"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4351), _1("hll_add_trans0"), _2(2), _3(false), _4(false), _5(hll_add_trans0), _6(4370), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 4370, 4303), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_add_trans0"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_add_trans1", 1, - AddBuiltinFunc(_0(4336), _1("hll_add_trans1"), _2(3), _3(false), _4(false), _5(hll_add_trans1), _6(4370), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 4370, 4303, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_add_trans1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4336), _1("hll_add_trans1"), _2(3), _3(false), _4(false), _5(hll_add_trans1), _6(4370), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 4370, 4303, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_add_trans1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_add_trans2", 1, - AddBuiltinFunc(_0(4337), _1("hll_add_trans2"), _2(4), _3(false), _4(false), _5(hll_add_trans2), _6(4370), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(4, 4370, 4303, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_add_trans2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4337), _1("hll_add_trans2"), _2(4), _3(false), _4(false), _5(hll_add_trans2), _6(4370), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(4, 4370, 4303, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_add_trans2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_add_trans3", 1, - AddBuiltinFunc(_0(4338), _1("hll_add_trans3"), _2(5), _3(false), _4(false), _5(hll_add_trans3), _6(4370), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(5, 4370, 4303, 23, 23, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_add_trans3"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4338), _1("hll_add_trans3"), _2(5), _3(false), _4(false), _5(hll_add_trans3), _6(4370), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(5, 4370, 4303, 23, 23, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_add_trans3"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_add_trans4", 1, - AddBuiltinFunc(_0(4360), _1("hll_add_trans4"), _2(6), _3(false), _4(false), _5(hll_add_trans4), _6(4370), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(6, 4370, 4303, 23, 23, 20, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_add_trans4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4360), _1("hll_add_trans4"), _2(6), _3(false), _4(false), _5(hll_add_trans4), _6(4370), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(6, 4370, 4303, 23, 23, 20, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_add_trans4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_cardinality", 1, - AddBuiltinFunc(_0(4320), _1("hll_cardinality"), _2(1), _3(true), _4(false), _5(hll_cardinality), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4301), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_cardinality"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4320), _1("hll_cardinality"), _2(1), _3(true), _4(false), _5(hll_cardinality), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4301), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_cardinality"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_duplicatecheck", 1, - AddBuiltinFunc(_0(4350), _1("hll_duplicatecheck"), _2(1), _3(true), _4(false), _5(hll_duplicatecheck), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4301), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_duplicatecheck"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4350), _1("hll_duplicatecheck"), _2(1), _3(true), _4(false), _5(hll_duplicatecheck), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4301), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_duplicatecheck"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_empty", 5, - AddBuiltinFunc(_0(4325), _1("hll_empty"), _2(0), _3(true), _4(false), _5(hll_empty0), _6(4301), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_empty0"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4326), _1("hll_empty"), _2(1), _3(true), _4(false), _5(hll_empty1), _6(4301), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_empty1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4327), _1("hll_empty"), _2(2), _3(true), _4(false), _5(hll_empty2), _6(4301), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_empty2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4328), _1("hll_empty"), _2(3), _3(true), _4(false), _5(hll_empty3), _6(4301), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 23, 23, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_empty3"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4329), _1("hll_empty"), _2(4), _3(true), _4(false), _5(hll_empty4), _6(4301), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 23, 23, 20, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_empty4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4325), _1("hll_empty"), _2(0), _3(true), _4(false), _5(hll_empty0), _6(4301), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_empty0"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4326), _1("hll_empty"), _2(1), _3(true), _4(false), _5(hll_empty1), _6(4301), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_empty1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4327), _1("hll_empty"), _2(2), _3(true), _4(false), _5(hll_empty2), _6(4301), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_empty2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4328), _1("hll_empty"), _2(3), _3(true), _4(false), _5(hll_empty3), _6(4301), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 23, 23, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_empty3"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4329), _1("hll_empty"), _2(4), _3(true), _4(false), _5(hll_empty4), _6(4301), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 23, 23, 20, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_empty4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_eq", 1, - AddBuiltinFunc(_0(4318), _1("hll_eq"), _2(2), _3(true), _4(false), _5(hll_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 4301, 4301), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4318), _1("hll_eq"), _2(2), _3(true), _4(false), _5(hll_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 4301, 4301), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_expthresh", 1, - AddBuiltinFunc(_0(4334), _1("hll_expthresh"), _2(1), _3(true), _4(false), _5(hll_expthresh), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4301), _21(3, 4301, 20, 20), _22(3, 'i', 'o', 'o'), _23(3, "data", "specified", "effective"), _24(NULL), _25("hll_expthresh"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4334), _1("hll_expthresh"), _2(1), _3(true), _4(false), _5(hll_expthresh), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4301), _21(3, 4301, 20, 20), _22(3, 'i', 'o', 'o'), _23(3, "data", "specified", "effective"), _24(NULL), _25("hll_expthresh"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_hash_any", 2, - AddBuiltinFunc(_0(4345), _1("hll_hash_any"), _2(1), _3(true), _4(false), _5(hll_hash_any), _6(4303), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2283), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_hash_any"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4359), _1("hll_hash_any"), _2(2), _3(true), _4(false), _5(hll_hash_anys), _6(4303), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2283, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_hash_anys"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4345), _1("hll_hash_any"), _2(1), _3(true), _4(false), _5(hll_hash_any), _6(4303), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2283), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_hash_any"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4359), _1("hll_hash_any"), _2(2), _3(true), _4(false), _5(hll_hash_anys), _6(4303), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2283, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_hash_anys"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_hash_bigint", 2, - AddBuiltinFunc(_0(4342), _1("hll_hash_bigint"), _2(1), _3(true), _4(false), _5(hll_hash_8byte), _6(4303), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_hash_8byte"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4356), _1("hll_hash_bigint"), _2(2), _3(true), _4(false), _5(hll_hash_8bytes), _6(4303), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_hash_8bytes"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4342), _1("hll_hash_bigint"), _2(1), _3(true), _4(false), _5(hll_hash_8byte), _6(4303), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_hash_8byte"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4356), _1("hll_hash_bigint"), _2(2), _3(true), _4(false), _5(hll_hash_8bytes), _6(4303), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_hash_8bytes"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_hash_boolean", 2, - AddBuiltinFunc(_0(4339), _1("hll_hash_boolean"), _2(1), _3(true), _4(false), _5(hll_hash_1byte), _6(4303), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_hash_1byte"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4353), _1("hll_hash_boolean"), _2(2), _3(true), _4(false), _5(hll_hash_1bytes), _6(4303), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 16, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_hash_1bytes"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4339), _1("hll_hash_boolean"), _2(1), _3(true), _4(false), _5(hll_hash_1byte), _6(4303), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_hash_1byte"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4353), _1("hll_hash_boolean"), _2(2), _3(true), _4(false), _5(hll_hash_1bytes), _6(4303), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 16, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_hash_1bytes"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_hash_bytea", 2, - AddBuiltinFunc(_0(4343), _1("hll_hash_bytea"), _2(1), _3(true), _4(false), _5(hll_hash_varlena), _6(4303), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_hash_varlena"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4357), _1("hll_hash_bytea"), _2(2), _3(true), _4(false), _5(hll_hash_varlenas), _6(4303), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 17, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_hash_varlenas"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4343), _1("hll_hash_bytea"), _2(1), _3(true), _4(false), _5(hll_hash_varlena), _6(4303), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_hash_varlena"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4357), _1("hll_hash_bytea"), _2(2), _3(true), _4(false), _5(hll_hash_varlenas), _6(4303), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 17, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_hash_varlenas"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_hash_byteawithoutorderwithequalcol", 1, - AddBuiltinFunc(_0(4369), _1("hll_hash_byteawithoutorderwithequalcol"), _2(1), _3(true), _4(false), _5(hll_hash_varlena), _6(4303), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4402), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_hash_varlena"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4369), _1("hll_hash_byteawithoutorderwithequalcol"), _2(1), _3(true), _4(false), _5(hll_hash_varlena), _6(4303), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4402), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_hash_varlena"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_hash_integer", 2, - AddBuiltinFunc(_0(4341), _1("hll_hash_integer"), _2(1), _3(true), _4(false), _5(hll_hash_4byte), _6(4303), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_hash_4byte"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4355), _1("hll_hash_integer"), _2(2), _3(true), _4(false), _5(hll_hash_4bytes), _6(4303), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_hash_4bytes"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4341), _1("hll_hash_integer"), _2(1), _3(true), _4(false), _5(hll_hash_4byte), _6(4303), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_hash_4byte"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4355), _1("hll_hash_integer"), _2(2), _3(true), _4(false), _5(hll_hash_4bytes), _6(4303), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_hash_4bytes"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_hash_smallint", 2, - AddBuiltinFunc(_0(4340), _1("hll_hash_smallint"), _2(1), _3(true), _4(false), _5(hll_hash_2byte), _6(4303), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_hash_2byte"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4354), _1("hll_hash_smallint"), _2(2), _3(true), _4(false), _5(hll_hash_2bytes), _6(4303), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_hash_2bytes"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4340), _1("hll_hash_smallint"), _2(1), _3(true), _4(false), _5(hll_hash_2byte), _6(4303), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_hash_2byte"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4354), _1("hll_hash_smallint"), _2(2), _3(true), _4(false), _5(hll_hash_2bytes), _6(4303), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_hash_2bytes"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_hash_text", 2, - AddBuiltinFunc(_0(4344), _1("hll_hash_text"), _2(1), _3(true), _4(false), _5(hll_hash_varlena), _6(4303), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_hash_varlena"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4358), _1("hll_hash_text"), _2(2), _3(true), _4(false), _5(hll_hash_varlenas), _6(4303), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_hash_varlenas"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4344), _1("hll_hash_text"), _2(1), _3(true), _4(false), _5(hll_hash_varlena), _6(4303), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_hash_varlena"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4358), _1("hll_hash_text"), _2(2), _3(true), _4(false), _5(hll_hash_varlenas), _6(4303), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_hash_varlenas"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_hashval", 1, - AddBuiltinFunc(_0(4316), _1("hll_hashval"), _2(1), _3(true), _4(false), _5(hll_hashval), _6(4303), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_hashval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4316), _1("hll_hashval"), _2(1), _3(true), _4(false), _5(hll_hashval), _6(4303), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_hashval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_hashval_eq", 1, - AddBuiltinFunc(_0(4314), _1("hll_hashval_eq"), _2(2), _3(true), _4(false), _5(hll_hashval_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 4303, 4303), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_hashval_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4314), _1("hll_hashval_eq"), _2(2), _3(true), _4(false), _5(hll_hashval_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 4303, 4303), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_hashval_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_hashval_in", 1, - AddBuiltinFunc(_0(4312), _1("hll_hashval_in"), _2(3), _3(true), _4(false), _5(hll_hashval_in), _6(4303), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2275, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_hashval_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4312), _1("hll_hashval_in"), _2(3), _3(true), _4(false), _5(hll_hashval_in), _6(4303), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2275, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_hashval_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_hashval_int4", 1, - AddBuiltinFunc(_0(4317), _1("hll_hashval_int4"), _2(1), _3(true), _4(false), _5(hll_hashval_int4), _6(4303), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_hashval_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4317), _1("hll_hashval_int4"), _2(1), _3(true), _4(false), _5(hll_hashval_int4), _6(4303), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_hashval_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_hashval_ne", 1, - AddBuiltinFunc(_0(4315), _1("hll_hashval_ne"), _2(2), _3(true), _4(false), _5(hll_hashval_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 4303, 4303), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_hashval_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4315), _1("hll_hashval_ne"), _2(2), _3(true), _4(false), _5(hll_hashval_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 4303, 4303), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_hashval_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_hashval_out", 1, - AddBuiltinFunc(_0(4313), _1("hll_hashval_out"), _2(1), _3(true), _4(false), _5(hll_hashval_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4303), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_hashval_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4313), _1("hll_hashval_out"), _2(1), _3(true), _4(false), _5(hll_hashval_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4303), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_hashval_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_in", 1, - AddBuiltinFunc(_0(4305), _1("hll_in"), _2(3), _3(true), _4(false), _5(hll_in), _6(4301), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2275, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4305), _1("hll_in"), _2(3), _3(true), _4(false), _5(hll_in), _6(4301), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2275, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_log2explicit", 1, - AddBuiltinFunc(_0(4378), _1("hll_log2explicit"), _2(1), _3(true), _4(false), _5(hll_log2explicit), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4301), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_log2explicit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4378), _1("hll_log2explicit"), _2(1), _3(true), _4(false), _5(hll_log2explicit), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4301), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_log2explicit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_log2m", 1, - AddBuiltinFunc(_0(4332), _1("hll_log2m"), _2(1), _3(true), _4(false), _5(hll_log2m), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4301), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_log2m"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4332), _1("hll_log2m"), _2(1), _3(true), _4(false), _5(hll_log2m), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4301), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_log2m"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_log2sparse", 1, - AddBuiltinFunc(_0(4379), _1("hll_log2sparse"), _2(1), _3(true), _4(false), _5(hll_log2sparse), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4301), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_log2sparse"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4379), _1("hll_log2sparse"), _2(1), _3(true), _4(false), _5(hll_log2sparse), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4301), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_log2sparse"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_ne", 1, - AddBuiltinFunc(_0(4319), _1("hll_ne"), _2(2), _3(true), _4(false), _5(hll_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 4301, 4301), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4319), _1("hll_ne"), _2(2), _3(true), _4(false), _5(hll_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 4301, 4301), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_out", 1, - AddBuiltinFunc(_0(4306), _1("hll_out"), _2(1), _3(true), _4(false), _5(hll_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4301), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4306), _1("hll_out"), _2(1), _3(true), _4(false), _5(hll_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4301), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_pack", 1, - AddBuiltinFunc(_0(4352), _1("hll_pack"), _2(1), _3(false), _4(false), _5(hll_pack), _6(4301), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 4370), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_pack"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4352), _1("hll_pack"), _2(1), _3(false), _4(false), _5(hll_pack), _6(4301), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 4370), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_pack"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_print", 1, - AddBuiltinFunc(_0(4324), _1("hll_print"), _2(1), _3(true), _4(false), _5(hll_print), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4301), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_print"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4324), _1("hll_print"), _2(1), _3(true), _4(false), _5(hll_print), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4301), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_print"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_recv", 1, - AddBuiltinFunc(_0(4307), _1("hll_recv"), _2(1), _3(true), _4(false), _5(hll_recv), _6(4301), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4307), _1("hll_recv"), _2(1), _3(true), _4(false), _5(hll_recv), _6(4301), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_regwidth", 1, - AddBuiltinFunc(_0(4333), _1("hll_regwidth"), _2(1), _3(true), _4(false), _5(hll_regwidth), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4301), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_regwidth"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4333), _1("hll_regwidth"), _2(1), _3(true), _4(false), _5(hll_regwidth), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4301), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_regwidth"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_schema_version", 1, - AddBuiltinFunc(_0(4330), _1("hll_schema_version"), _2(1), _3(true), _4(false), _5(hll_schema_version), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4301), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_schema_version"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4330), _1("hll_schema_version"), _2(1), _3(true), _4(false), _5(hll_schema_version), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4301), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_schema_version"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_send", 1, - AddBuiltinFunc(_0(4308), _1("hll_send"), _2(1), _3(true), _4(false), _5(hll_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4301), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4308), _1("hll_send"), _2(1), _3(true), _4(false), _5(hll_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4301), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_sparseon", 1, - AddBuiltinFunc(_0(4335), _1("hll_sparseon"), _2(1), _3(true), _4(false), _5(hll_sparseon), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4301), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_sparseon"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4335), _1("hll_sparseon"), _2(1), _3(true), _4(false), _5(hll_sparseon), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4301), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_sparseon"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_trans_in", 1, - AddBuiltinFunc(_0(4364), _1("hll_trans_in"), _2(1), _3(true), _4(false), _5(hll_trans_in), _6(4370), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_trans_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4364), _1("hll_trans_in"), _2(1), _3(true), _4(false), _5(hll_trans_in), _6(4370), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_trans_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_trans_out", 1, - AddBuiltinFunc(_0(4365), _1("hll_trans_out"), _2(1), _3(true), _4(false), _5(hll_trans_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4370), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_trans_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4365), _1("hll_trans_out"), _2(1), _3(true), _4(false), _5(hll_trans_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4370), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_trans_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_trans_recv", 1, - AddBuiltinFunc(_0(4362), _1("hll_trans_recv"), _2(1), _3(true), _4(false), _5(hll_trans_recv), _6(4370), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_trans_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4362), _1("hll_trans_recv"), _2(1), _3(true), _4(false), _5(hll_trans_recv), _6(4370), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_trans_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_trans_send", 1, - AddBuiltinFunc(_0(4363), _1("hll_trans_send"), _2(1), _3(true), _4(false), _5(hll_trans_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4370), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_trans_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4363), _1("hll_trans_send"), _2(1), _3(true), _4(false), _5(hll_trans_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4370), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_trans_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_type", 1, - AddBuiltinFunc(_0(4331), _1("hll_type"), _2(1), _3(true), _4(false), _5(hll_type), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4301), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_type"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4331), _1("hll_type"), _2(1), _3(true), _4(false), _5(hll_type), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4301), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_type"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_typmod_in", 1, - AddBuiltinFunc(_0(4309), _1("hll_typmod_in"), _2(1), _3(true), _4(false), _5(hll_typmod_in), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1263), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_typmod_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4309), _1("hll_typmod_in"), _2(1), _3(true), _4(false), _5(hll_typmod_in), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1263), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_typmod_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_typmod_out", 1, - AddBuiltinFunc(_0(4310), _1("hll_typmod_out"), _2(1), _3(true), _4(false), _5(hll_typmod_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_typmod_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4310), _1("hll_typmod_out"), _2(1), _3(true), _4(false), _5(hll_typmod_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_typmod_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_union", 1, - AddBuiltinFunc(_0(4321), _1("hll_union"), _2(2), _3(true), _4(false), _5(hll_union), _6(4301), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 4301, 4301), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_union"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4321), _1("hll_union"), _2(2), _3(true), _4(false), _5(hll_union), _6(4301), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 4301, 4301), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_union"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_union_agg", 1, - AddBuiltinFunc(_0(4367), _1("hll_union_agg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(4301), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4301), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4367), _1("hll_union_agg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(4301), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4301), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_union_collect", 1, - AddBuiltinFunc(_0(4348), _1("hll_union_collect"), _2(2), _3(false), _4(false), _5(hll_union_collect), _6(4370), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 4370, 4370), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_union_collect"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4348), _1("hll_union_collect"), _2(2), _3(false), _4(false), _5(hll_union_collect), _6(4370), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 4370, 4370), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_union_collect"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hll_union_trans", 1, - AddBuiltinFunc(_0(4346), _1("hll_union_trans"), _2(2), _3(false), _4(false), _5(hll_union_trans), _6(4370), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 4370, 4301), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_union_trans"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4346), _1("hll_union_trans"), _2(2), _3(false), _4(false), _5(hll_union_trans), _6(4370), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 4370, 4301), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hll_union_trans"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "host", 1, - AddBuiltinFunc(_0(699), _1("host"), _2(1), _3(true), _4(false), _5(network_host), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("network_host"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(699), _1("host"), _2(1), _3(true), _4(false), _5(network_host), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("network_host"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("show address octets only"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hostmask", 1, - AddBuiltinFunc(_0(1362), _1("hostmask"), _2(1), _3(true), _4(false), _5(network_hostmask), _6(869), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("network_hostmask"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1362), _1("hostmask"), _2(1), _3(true), _4(false), _5(network_hostmask), _6(869), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("network_hostmask"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("hostmask of address"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hypopg_create_index", 1, - AddBuiltinFunc(_0(4889), _1("hypopg_create_index"), _2(1), _3(false), _4(true), _5(hypopg_create_index), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 25), _21(2, 23, 25), _22(2, 'o', 'o'), _23(2, "indexrelid", "indexname"), _24(NULL), _25("hypopg_create_index"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4889), _1("hypopg_create_index"), _2(1), _3(false), _4(true), _5(hypopg_create_index), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 25), _21(2, 23, 25), _22(2, 'o', 'o'), _23(2, "indexrelid", "indexname"), _24(NULL), _25("hypopg_create_index"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hypopg_display_index", 1, - AddBuiltinFunc(_0(4890), _1("hypopg_display_index"), _2(0), _3(false), _4(true), _5(hypopg_display_index), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(4, 25, 23, 25, 25), _22(4, 'o', 'o', 'o', 'o'), _23(4, "indexname", "indexrelid", "table", "column"), _24(NULL), _25("hypopg_display_index"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4890), _1("hypopg_display_index"), _2(0), _3(false), _4(true), _5(hypopg_display_index), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(4, 25, 23, 25, 25), _22(4, 'o', 'o', 'o', 'o'), _23(4, "indexname", "indexrelid", "table", "column"), _24(NULL), _25("hypopg_display_index"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hypopg_drop_index", 1, - AddBuiltinFunc(_0(4891), _1("hypopg_drop_index"), _2(1), _3(false), _4(false), _5(hypopg_drop_index), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hypopg_drop_index"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4891), _1("hypopg_drop_index"), _2(1), _3(false), _4(false), _5(hypopg_drop_index), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hypopg_drop_index"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hypopg_estimate_size", 1, - AddBuiltinFunc(_0(4892), _1("hypopg_estimate_size"), _2(1), _3(false), _4(false), _5(hypopg_estimate_size), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hypopg_estimate_size"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4892), _1("hypopg_estimate_size"), _2(1), _3(false), _4(false), _5(hypopg_estimate_size), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hypopg_estimate_size"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "hypopg_reset_index", 1, - AddBuiltinFunc(_0(4893), _1("hypopg_reset_index"), _2(0), _3(false), _4(false), _5(hypopg_reset_index), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hypopg_reset_index"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4893), _1("hypopg_reset_index"), _2(0), _3(false), _4(false), _5(hypopg_reset_index), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("hypopg_reset_index"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "i16toi1", 1, + AddBuiltinFunc(_0(6406), _1("i16toi1"), _2(1), _3(true), _4(false), _5(int16_1), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 34), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int16_1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "i1tof4", 1, - AddBuiltinFunc(_0(5529), _1("i1tof4"), _2(1), _3(true), _4(false), _5(i1tof4), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("i1tof4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5529), _1("i1tof4"), _2(1), _3(true), _4(false), _5(i1tof4), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("i1tof4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "i1tof8", 1, - AddBuiltinFunc(_0(5531), _1("i1tof8"), _2(1), _3(true), _4(false), _5(i1tof8), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("i1tof8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5531), _1("i1tof8"), _2(1), _3(true), _4(false), _5(i1tof8), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("i1tof8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "i1toi2", 1, - AddBuiltinFunc(_0(5523), _1("i1toi2"), _2(1), _3(true), _4(false), _5(i1toi2), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("i1toi2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5523), _1("i1toi2"), _2(1), _3(true), _4(false), _5(i1toi2), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("i1toi2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "i1toi4", 1, - AddBuiltinFunc(_0(5525), _1("i1toi4"), _2(1), _3(true), _4(false), _5(i1toi4), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("i1toi4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5525), _1("i1toi4"), _2(1), _3(true), _4(false), _5(i1toi4), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("i1toi4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "i1toi8", 1, - AddBuiltinFunc(_0(5527), _1("i1toi8"), _2(1), _3(true), _4(false), _5(i1toi8), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("i1toi8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5527), _1("i1toi8"), _2(1), _3(true), _4(false), _5(i1toi8), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("i1toi8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "i2toi1", 1, - AddBuiltinFunc(_0(5524), _1("i2toi1"), _2(1), _3(true), _4(false), _5(i2toi1), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("i2toi1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5524), _1("i2toi1"), _2(1), _3(true), _4(false), _5(i2toi1), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("i2toi1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "i4toi1", 1, - AddBuiltinFunc(_0(5526), _1("i4toi1"), _2(1), _3(true), _4(false), _5(i4toi1), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("i4toi1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5526), _1("i4toi1"), _2(1), _3(true), _4(false), _5(i4toi1), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("i4toi1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "i8toi1", 1, - AddBuiltinFunc(_0(5528), _1("i8toi1"), _2(1), _3(true), _4(false), _5(i8toi1), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("i8toi1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5528), _1("i8toi1"), _2(1), _3(true), _4(false), _5(i8toi1), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("i8toi1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "iclikejoinsel", 1, - AddBuiltinFunc(_0(1816), _1("iclikejoinsel"), _2(5), _3(true), _4(false), _5(iclikejoinsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(5, 2281, 26, 2281, 21, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("iclikejoinsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1816), _1("iclikejoinsel"), _2(5), _3(true), _4(false), _5(iclikejoinsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(5, 2281, 26, 2281, 21, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("iclikejoinsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("join selectivity of ILIKE"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "iclikesel", 1, - AddBuiltinFunc(_0(1814), _1("iclikesel"), _2(4), _3(true), _4(false), _5(iclikesel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 2281, 26, 2281, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("iclikesel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1814), _1("iclikesel"), _2(4), _3(true), _4(false), _5(iclikesel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 2281, 26, 2281, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("iclikesel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("restriction selectivity of ILIKE"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "icnlikejoinsel", 1, - AddBuiltinFunc(_0(1817), _1("icnlikejoinsel"), _2(5), _3(true), _4(false), _5(icnlikejoinsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(5, 2281, 26, 2281, 21, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("icnlikejoinsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1817), _1("icnlikejoinsel"), _2(5), _3(true), _4(false), _5(icnlikejoinsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(5, 2281, 26, 2281, 21, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("icnlikejoinsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("join selectivity of NOT ILIKE"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "icnlikesel", 1, - AddBuiltinFunc(_0(1815), _1("icnlikesel"), _2(4), _3(true), _4(false), _5(icnlikesel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 2281, 26, 2281, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("icnlikesel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1815), _1("icnlikesel"), _2(4), _3(true), _4(false), _5(icnlikesel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 2281, 26, 2281, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("icnlikesel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("restriction selectivity of NOT ILIKE"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "icregexeqjoinsel", 1, - AddBuiltinFunc(_0(1826), _1("icregexeqjoinsel"), _2(5), _3(true), _4(false), _5(icregexeqjoinsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(5, 2281, 26, 2281, 21, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("icregexeqjoinsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1826), _1("icregexeqjoinsel"), _2(5), _3(true), _4(false), _5(icregexeqjoinsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(5, 2281, 26, 2281, 21, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("icregexeqjoinsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("join selectivity of case-insensitive regex match"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "icregexeqsel", 1, - AddBuiltinFunc(_0(1820), _1("icregexeqsel"), _2(4), _3(true), _4(false), _5(icregexeqsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 2281, 26, 2281, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("icregexeqsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1820), _1("icregexeqsel"), _2(4), _3(true), _4(false), _5(icregexeqsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 2281, 26, 2281, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("icregexeqsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("restriction selectivity of case-insensitive regex match"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "icregexnejoinsel", 1, - AddBuiltinFunc(_0(1829), _1("icregexnejoinsel"), _2(5), _3(true), _4(false), _5(icregexnejoinsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(5, 2281, 26, 2281, 21, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("icregexnejoinsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1829), _1("icregexnejoinsel"), _2(5), _3(true), _4(false), _5(icregexnejoinsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(5, 2281, 26, 2281, 21, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("icregexnejoinsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("join selectivity of case-insensitive regex non-match"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "icregexnesel", 1, - AddBuiltinFunc(_0(1823), _1("icregexnesel"), _2(4), _3(true), _4(false), _5(icregexnesel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 2281, 26, 2281, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("icregexnesel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1823), _1("icregexnesel"), _2(4), _3(true), _4(false), _5(icregexnesel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 2281, 26, 2281, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("icregexnesel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("restriction selectivity of case-insensitive regex non-match"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "inet_client_addr", 1, - AddBuiltinFunc(_0(2196), _1("inet_client_addr"), _2(0), _3(false), _4(false), _5(inet_client_addr), _6(869), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("inet_client_addr"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2196), _1("inet_client_addr"), _2(0), _3(false), _4(false), _5(inet_client_addr), _6(869), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("inet_client_addr"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("inet address of the client"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "inet_client_port", 1, - AddBuiltinFunc(_0(2197), _1("inet_client_port"), _2(0), _3(false), _4(false), _5(inet_client_port), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("inet_client_port"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2197), _1("inet_client_port"), _2(0), _3(false), _4(false), _5(inet_client_port), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("inet_client_port"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("client\'s port number for this connection"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "inet_in", 1, - AddBuiltinFunc(_0(910), _1("inet_in"), _2(1), _3(true), _4(false), _5(inet_in), _6(869), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("inet_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(910), _1("inet_in"), _2(1), _3(true), _4(false), _5(inet_in), _6(869), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("inet_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "inet_out", 1, - AddBuiltinFunc(_0(911), _1("inet_out"), _2(1), _3(true), _4(false), _5(inet_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("inet_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(911), _1("inet_out"), _2(1), _3(true), _4(false), _5(inet_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("inet_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "inet_recv", 1, - AddBuiltinFunc(_0(2496), _1("inet_recv"), _2(1), _3(true), _4(false), _5(inet_recv), _6(869), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("inet_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2496), _1("inet_recv"), _2(1), _3(true), _4(false), _5(inet_recv), _6(869), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("inet_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "inet_send", 1, - AddBuiltinFunc(_0(2497), _1("inet_send"), _2(1), _3(true), _4(false), _5(inet_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("inet_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2497), _1("inet_send"), _2(1), _3(true), _4(false), _5(inet_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("inet_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "inet_server_addr", 1, - AddBuiltinFunc(_0(2198), _1("inet_server_addr"), _2(0), _3(false), _4(false), _5(inet_server_addr), _6(869), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("inet_server_addr"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2198), _1("inet_server_addr"), _2(0), _3(false), _4(false), _5(inet_server_addr), _6(869), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("inet_server_addr"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("inet address of the server"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "inet_server_port", 1, - AddBuiltinFunc(_0(2199), _1("inet_server_port"), _2(0), _3(false), _4(false), _5(inet_server_port), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("inet_server_port"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2199), _1("inet_server_port"), _2(0), _3(false), _4(false), _5(inet_server_port), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("inet_server_port"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("server\'s port number for this connection"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "inetand", 1, - AddBuiltinFunc(_0(2628), _1("inetand"), _2(2), _3(true), _4(false), _5(inetand), _6(869), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 869, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("inetand"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2628), _1("inetand"), _2(2), _3(true), _4(false), _5(inetand), _6(869), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 869, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("inetand"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "inetmi", 1, - AddBuiltinFunc(_0(2633), _1("inetmi"), _2(2), _3(true), _4(false), _5(inetmi), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 869, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("inetmi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2633), _1("inetmi"), _2(2), _3(true), _4(false), _5(inetmi), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 869, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("inetmi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "inetmi_int8", 1, - AddBuiltinFunc(_0(2632), _1("inetmi_int8"), _2(2), _3(true), _4(false), _5(inetmi_int8), _6(869), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 869, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("inetmi_int8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2632), _1("inetmi_int8"), _2(2), _3(true), _4(false), _5(inetmi_int8), _6(869), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 869, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("inetmi_int8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "inetnot", 1, - AddBuiltinFunc(_0(2627), _1("inetnot"), _2(1), _3(true), _4(false), _5(inetnot), _6(869), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("inetnot"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2627), _1("inetnot"), _2(1), _3(true), _4(false), _5(inetnot), _6(869), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("inetnot"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "inetor", 1, - AddBuiltinFunc(_0(2629), _1("inetor"), _2(2), _3(true), _4(false), _5(inetor), _6(869), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 869, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("inetor"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2629), _1("inetor"), _2(2), _3(true), _4(false), _5(inetor), _6(869), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 869, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("inetor"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "inetpl", 1, - AddBuiltinFunc(_0(2630), _1("inetpl"), _2(2), _3(true), _4(false), _5(inetpl), _6(869), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 869, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("inetpl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2630), _1("inetpl"), _2(2), _3(true), _4(false), _5(inetpl), _6(869), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 869, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("inetpl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "info_breakpoints", 1, - AddBuiltinFunc(_0(1509), _1("info_breakpoints"), _2(0), _3(true), _4(true), _5(debug_client_info_breakpoints), _6(2249), _7(PG_PLDEBUG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(4, 23, 26, 23, 25), _22(4, 'o', 'o', 'o', 'o'), _23(4, "breakpointno", "funcoid", "lineno", "query"), _24(NULL), _25("debug_client_info_breakpoints"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1509), _1("info_breakpoints"), _2(0), _3(true), _4(true), _5(debug_client_info_breakpoints), _6(2249), _7(PG_PLDEBUG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(5, 23, 26, 23, 25, 16), _22(5, 'o', 'o', 'o', 'o', 'o'), _23(5, "breakpointno", "funcoid", "lineno", "query", "enable"), _24(NULL), _25("debug_client_info_breakpoints"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "info_code", 1, - AddBuiltinFunc(_0(1511), _1("info_code"), _2(1), _3(true), _4(true), _5(debug_client_info_code), _6(2249), _7(PG_PLDEBUG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(4, 26, 23, 25, 16), _22(4, 'i', 'o', 'o', 'o'), _23(4, "funcoid", "lineno", "query", "canbreak"), _24(NULL), _25("debug_client_info_code"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1511), _1("info_code"), _2(1), _3(true), _4(true), _5(debug_client_info_code), _6(2249), _7(PG_PLDEBUG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(4, 26, 23, 25, 16), _22(4, 'i', 'o', 'o', 'o'), _23(4, "funcoid", "lineno", "query", "canbreak"), _24(NULL), _25("debug_client_info_code"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( - "info_locals", 1, - AddBuiltinFunc(_0(1505), _1("info_locals"), _2(0), _3(true), _4(true), _5(debug_client_local_variables), _6(2249), _7(PG_PLDEBUG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(4, 25, 25, 25, 25), _22(4, 'o', 'o', 'o', 'o'), _23(4, "varname", "vartype", "value", "package_name"), _24(NULL), _25("debug_client_local_variables"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + "info_locals", 2, + AddBuiltinFunc(_0(1505), _1("info_locals"), _2(0), _3(true), _4(true), _5(debug_client_local_variables), _6(2249), _7(PG_PLDEBUG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(5, 25, 25, 25, 25, 16), _22(5, 'o', 'o', 'o', 'o', 'o'), _23(5, "varname", "vartype", "value", "package_name", "isconst"), _24(NULL), _25("debug_client_local_variables"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1520), _1("info_locals"), _2(0), _3(true), _4(true), _5(debug_client_local_variables_frame), _6(2249), _7(PG_PLDEBUG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(6, 23, 25, 25, 25, 25, 16), _22(6, 'i', 'o', 'o', 'o', 'o', 'o'), _23(6, "frameno", "varname", "vartype", "value", "package_name", "isconst"), _24(NULL), _25("debug_client_local_variables_frame"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "init", 1, - AddBuiltinFunc(_0(7800), _1("init"), _2(6), _3(false), _4(false), _5(init), _6(16), _7(PG_SQLADVISOR_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(4), _20(6, 18, 16, 16, 16, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24("({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :ismaxvalue false :location 79 :constvalue 1 [ 0 0 0 0 0 0 0 0 ] :cursor_data :row_count 0 :cur_dno -1 :is_open false :found false :not_found false :null_open false :null_fetch false} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :ismaxvalue false :location 111 :constvalue 1 [ 1 0 0 0 0 0 0 0 ] :cursor_data :row_count 0 :cur_dno -1 :is_open false :found false :not_found false :null_open false :null_fetch false} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :ismaxvalue false :location 27 :constvalue 4 [ 16 39 0 0 0 0 0 0 ] :cursor_data :row_count 0 :cur_dno -1 :is_open false :found false :not_found false :null_open false :null_fetch false} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :ismaxvalue false :location 27 :constvalue 4 [ 0 4 0 0 0 0 0 0 ] :cursor_data :row_count 0 :cur_dno -1 :is_open false :found false :not_found false :null_open false :null_fetch false})"), _25("init"), _26(NULL), _27(NULL), _28(NULL), _29(4, 2, 3, 4, 5), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(7800), _1("init"), _2(6), _3(false), _4(false), _5(init), _6(16), _7(PG_SQLADVISOR_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(4), _20(6, 18, 16, 16, 16, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24("({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :ismaxvalue false :location 79 :constvalue 1 [ 0 0 0 0 0 0 0 0 ] :cursor_data :row_count 0 :cur_dno -1 :is_open false :found false :not_found false :null_open false :null_fetch false} {CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :ismaxvalue false :location 111 :constvalue 1 [ 1 0 0 0 0 0 0 0 ] :cursor_data :row_count 0 :cur_dno -1 :is_open false :found false :not_found false :null_open false :null_fetch false} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :ismaxvalue false :location 27 :constvalue 4 [ 16 39 0 0 0 0 0 0 ] :cursor_data :row_count 0 :cur_dno -1 :is_open false :found false :not_found false :null_open false :null_fetch false} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :ismaxvalue false :location 27 :constvalue 4 [ 0 4 0 0 0 0 0 0 ] :cursor_data :row_count 0 :cur_dno -1 :is_open false :found false :not_found false :null_open false :null_fetch false})"), _25("init"), _26(NULL), _27(NULL), _28(NULL), _29(4, 2, 3, 4, 5), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "initcap", 1, - AddBuiltinFunc(_0(872), _1("initcap"), _2(1), _3(true), _4(false), _5(initcap), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("initcap"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(872), _1("initcap"), _2(1), _3(true), _4(false), _5(initcap), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("initcap"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("capitalize each word"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "instr", 3, - AddBuiltinFunc(_0(INSTR2FUNCOID), _1("instr"), _2(2), _3(true), _4(false), _5(textpos), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textpos"), _26("-"), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(INSTR3FUNCOID), _1("instr"), _2(3), _3(true), _4(false), _5(instr_3args), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 25, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("instr_3args"), _26("-"), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(INSTR4FUNCOID), _1("instr"), _2(4), _3(true), _4(false), _5(instr_4args), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 25, 25, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("instr_4args"), _26("-"), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(INSTR2FUNCOID), _1("instr"), _2(2), _3(true), _4(false), _5(textpos), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textpos"), _26("-"), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(INSTR3FUNCOID), _1("instr"), _2(3), _3(true), _4(false), _5(instr_3args), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 25, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("instr_3args"), _26("-"), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(INSTR4FUNCOID), _1("instr"), _2(4), _3(true), _4(false), _5(instr_4args), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 25, 25, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("instr_4args"), _26("-"), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "int16", 9, + AddBuiltinFunc(_0(6405), _1("int16"), _2(1), _3(true), _4(false), _5(int1_16), _6(34), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1_16"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(6407), _1("int16"), _2(1), _3(true), _4(false), _5(int2_16), _6(34), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2_16"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(6409), _1("int16"), _2(1), _3(true), _4(false), _5(int4_16), _6(34), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4_16"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(6411), _1("int16"), _2(1), _3(true), _4(false), _5(int8_16), _6(34), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8_16"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(6413), _1("int16"), _2(1), _3(true), _4(false), _5(dtoi16), _6(34), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dtoi16"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(6415), _1("int16"), _2(1), _3(true), _4(false), _5(ftoi16), _6(34), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ftoi16"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(6417), _1("int16"), _2(1), _3(true), _4(false), _5(oidtoi16), _6(34), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidtoi16"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(6419), _1("int16"), _2(1), _3(true), _4(false), _5(bool_int16), _6(34), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bool_int16"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(6421), _1("int16"), _2(1), _3(true), _4(false), _5(numeric_int16), _6(34), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_int16"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + ), + AddFuncGroup( + "int16_bool", 1, + AddBuiltinFunc(_0(6420), _1("int16_bool"), _2(1), _3(true), _4(false), _5(int16_bool), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 34), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int16_bool"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "int16eq", 1, + AddBuiltinFunc(_0(6423), _1("int16eq"), _2(2), _3(true), _4(false), _5(int16eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 34, 34), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int16eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "int16div", 1, + AddBuiltinFunc(_0(6432), _1("int16div"), _2(2), _3(true), _4(false), _5(int16div), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 34, 34), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int16div"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "int16ge", 1, + AddBuiltinFunc(_0(6428), _1("int16ge"), _2(2), _3(true), _4(false), _5(int16ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 34, 34), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int16ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "int16gt", 1, + AddBuiltinFunc(_0(6427), _1("int16gt"), _2(2), _3(true), _4(false), _5(int16gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 34, 34), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int16gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "int16in", 1, + AddBuiltinFunc(_0(6401), _1("int16in"), _2(1), _3(true), _4(false), _5(int16in), _6(34), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int16in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "int16le", 1, + AddBuiltinFunc(_0(6426), _1("int16le"), _2(2), _3(true), _4(false), _5(int16le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 34, 34), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int16le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "int16lt", 1, + AddBuiltinFunc(_0(6425), _1("int16lt"), _2(2), _3(true), _4(false), _5(int16lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 34, 34), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int16lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "int16mi", 1, + AddBuiltinFunc(_0(6430), _1("int16mi"), _2(2), _3(true), _4(false), _5(int16mi), _6(34), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 34, 34), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int16mi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "int16mul", 1, + AddBuiltinFunc(_0(6431), _1("int16mul"), _2(2), _3(true), _4(false), _5(int16mul), _6(34), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 34, 34), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int16mul"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "int16ne", 1, + AddBuiltinFunc(_0(6424), _1("int16ne"), _2(2), _3(true), _4(false), _5(int16ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 34, 34), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int16ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "int16out", 1, + AddBuiltinFunc(_0(6402), _1("int16out"), _2(1), _3(true), _4(false), _5(int16out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 34), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int16out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "int16pl", 1, + AddBuiltinFunc(_0(6429), _1("int16pl"), _2(2), _3(true), _4(false), _5(int16pl), _6(34), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 34, 34), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int16pl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "int16recv", 1, + AddBuiltinFunc(_0(6403), _1("int16recv"), _2(1), _3(true), _4(false), _5(int16recv), _6(34), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int16recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "int16send", 1, + AddBuiltinFunc(_0(6404), _1("int16send"), _2(1), _3(true), _4(false), _5(int16send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 34), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int16send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int1_avg_accum", 1, - AddBuiltinFunc(_0(5548), _1("int1_avg_accum"), _2(2), _3(true), _4(false), _5(int1_avg_accum), _6(1016), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1016, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1_avg_accum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5548), _1("int1_avg_accum"), _2(2), _3(true), _4(false), _5(int1_avg_accum), _6(1016), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1016, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1_avg_accum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int1_bool", 1, - AddBuiltinFunc(_0(5533), _1("int1_bool"), _2(1), _3(true), _4(false), _5(int1_bool), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1_bool"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5533), _1("int1_bool"), _2(1), _3(true), _4(false), _5(int1_bool), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1_bool"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int1_bpchar", 1, - AddBuiltinFunc(_0(4067), _1("int1_bpchar"), _2(1), _3(true), _4(false), _5(int1_bpchar), _6(1042), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1_bpchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4067), _1("int1_bpchar"), _2(1), _3(true), _4(false), _5(int1_bpchar), _6(1042), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1_bpchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int1_mul_cash", 1, - AddBuiltinFunc(_0(3348), _1("int1_mul_cash"), _2(2), _3(true), _4(false), _5(int1_mul_cash), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 5545, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1_mul_cash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3348), _1("int1_mul_cash"), _2(2), _3(true), _4(false), _5(int1_mul_cash), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 5545, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1_mul_cash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int1_numeric", 1, - AddBuiltinFunc(_0(5521), _1("int1_numeric"), _2(1), _3(true), _4(false), _5(int1_numeric), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1_numeric"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5521), _1("int1_numeric"), _2(1), _3(true), _4(false), _5(int1_numeric), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1_numeric"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int1_nvarchar2", 1, - AddBuiltinFunc(_0(4066), _1("int1_nvarchar2"), _2(1), _3(true), _4(false), _5(int1_nvarchar2), _6(3969), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1_nvarchar2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4066), _1("int1_nvarchar2"), _2(1), _3(true), _4(false), _5(int1_nvarchar2), _6(3969), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1_nvarchar2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int1_text", 1, - AddBuiltinFunc(_0(4165), _1("int1_text"), _2(1), _3(true), _4(false), _5(int1_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4165), _1("int1_text"), _2(1), _3(true), _4(false), _5(int1_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int1_varchar", 1, - AddBuiltinFunc(_0(4065), _1("int1_varchar"), _2(1), _3(true), _4(false), _5(int1_varchar), _6(1043), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1_varchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4065), _1("int1_varchar"), _2(1), _3(true), _4(false), _5(int1_varchar), _6(1043), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1_varchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int1abs", 1, - AddBuiltinFunc(_0(6113), _1("int1abs"), _2(1), _3(true), _4(false), _5(int1abs), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1abs"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(6113), _1("int1abs"), _2(1), _3(true), _4(false), _5(int1abs), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1abs"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int1and", 1, - AddBuiltinFunc(_0(6101), _1("int1and"), _2(2), _3(true), _4(false), _5(int1and), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 5545, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1and"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(6101), _1("int1and"), _2(2), _3(true), _4(false), _5(int1and), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 5545, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1and"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int1cmp", 1, - AddBuiltinFunc(_0(5519), _1("int1cmp"), _2(2), _3(true), _4(false), _5(int1cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 5545, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5519), _1("int1cmp"), _2(2), _3(true), _4(false), _5(int1cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 5545, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int1div", 1, - AddBuiltinFunc(_0(6112), _1("int1div"), _2(2), _3(true), _4(false), _5(int1div), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 5545, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1div"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(6112), _1("int1div"), _2(2), _3(true), _4(false), _5(int1div), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 5545, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1div"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int1eq", 1, - AddBuiltinFunc(_0(5547), _1("int1eq"), _2(2), _3(true), _4(false), _5(int1eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 5545, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5547), _1("int1eq"), _2(2), _3(true), _4(false), _5(int1eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 5545, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int1ge", 1, - AddBuiltinFunc(_0(5512), _1("int1ge"), _2(2), _3(true), _4(false), _5(int1ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 5545, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5512), _1("int1ge"), _2(2), _3(true), _4(false), _5(int1ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 5545, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int1gt", 1, - AddBuiltinFunc(_0(5511), _1("int1gt"), _2(2), _3(true), _4(false), _5(int1gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 5545, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5511), _1("int1gt"), _2(2), _3(true), _4(false), _5(int1gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 5545, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int1in", 1, - AddBuiltinFunc(_0(5541), _1("int1in"), _2(1), _3(true), _4(false), _5(int1in), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5541), _1("int1in"), _2(1), _3(true), _4(false), _5(int1in), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int1inc", 1, - AddBuiltinFunc(_0(6117), _1("int1inc"), _2(1), _3(true), _4(false), _5(int1inc), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1inc"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(6117), _1("int1inc"), _2(1), _3(true), _4(false), _5(int1inc), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1inc"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int1larger", 1, - AddBuiltinFunc(_0(6115), _1("int1larger"), _2(2), _3(true), _4(false), _5(int1larger), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 5545, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1larger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(6115), _1("int1larger"), _2(2), _3(true), _4(false), _5(int1larger), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 5545, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1larger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int1le", 1, - AddBuiltinFunc(_0(5510), _1("int1le"), _2(2), _3(true), _4(false), _5(int1le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 5545, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5510), _1("int1le"), _2(2), _3(true), _4(false), _5(int1le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 5545, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int1lt", 1, - AddBuiltinFunc(_0(5509), _1("int1lt"), _2(2), _3(true), _4(false), _5(int1lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 5545, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5509), _1("int1lt"), _2(2), _3(true), _4(false), _5(int1lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 5545, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int1mi", 1, - AddBuiltinFunc(_0(6110), _1("int1mi"), _2(2), _3(true), _4(false), _5(int1mi), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 5545, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1mi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(6110), _1("int1mi"), _2(2), _3(true), _4(false), _5(int1mi), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 5545, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1mi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int1mod", 1, - AddBuiltinFunc(_0(6114), _1("int1mod"), _2(2), _3(true), _4(false), _5(int1mod), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 5545, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1mod"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(6114), _1("int1mod"), _2(2), _3(true), _4(false), _5(int1mod), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 5545, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1mod"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int1mul", 1, - AddBuiltinFunc(_0(6111), _1("int1mul"), _2(2), _3(true), _4(false), _5(int1mul), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 5545, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1mul"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(6111), _1("int1mul"), _2(2), _3(true), _4(false), _5(int1mul), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 5545, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1mul"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int1ne", 1, - AddBuiltinFunc(_0(5508), _1("int1ne"), _2(2), _3(true), _4(false), _5(int1ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 5545, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5508), _1("int1ne"), _2(2), _3(true), _4(false), _5(int1ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 5545, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int1not", 1, - AddBuiltinFunc(_0(6104), _1("int1not"), _2(1), _3(true), _4(false), _5(int1not), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1not"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(6104), _1("int1not"), _2(1), _3(true), _4(false), _5(int1not), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1not"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int1or", 1, - AddBuiltinFunc(_0(6102), _1("int1or"), _2(2), _3(true), _4(false), _5(int1or), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 5545, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1or"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(6102), _1("int1or"), _2(2), _3(true), _4(false), _5(int1or), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 5545, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1or"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int1out", 1, - AddBuiltinFunc(_0(5542), _1("int1out"), _2(1), _3(true), _4(false), _5(int1out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5542), _1("int1out"), _2(1), _3(true), _4(false), _5(int1out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int1pl", 1, - AddBuiltinFunc(_0(6109), _1("int1pl"), _2(2), _3(true), _4(false), _5(int1pl), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 5545, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1pl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(6109), _1("int1pl"), _2(2), _3(true), _4(false), _5(int1pl), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 5545, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1pl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int1recv", 1, - AddBuiltinFunc(_0(5543), _1("int1recv"), _2(1), _3(true), _4(false), _5(int1recv), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5543), _1("int1recv"), _2(1), _3(true), _4(false), _5(int1recv), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int1send", 1, - AddBuiltinFunc(_0(5544), _1("int1send"), _2(1), _3(true), _4(false), _5(int1send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5544), _1("int1send"), _2(1), _3(true), _4(false), _5(int1send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int1shl", 1, - AddBuiltinFunc(_0(6105), _1("int1shl"), _2(2), _3(true), _4(false), _5(int1shl), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 5545, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1shl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(6105), _1("int1shl"), _2(2), _3(true), _4(false), _5(int1shl), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 5545, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1shl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int1shr", 1, - AddBuiltinFunc(_0(6106), _1("int1shr"), _2(2), _3(true), _4(false), _5(int1shr), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 5545, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1shr"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(6106), _1("int1shr"), _2(2), _3(true), _4(false), _5(int1shr), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 5545, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1shr"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int1smaller", 1, - AddBuiltinFunc(_0(6116), _1("int1smaller"), _2(2), _3(true), _4(false), _5(int1smaller), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 5545, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1smaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(6116), _1("int1smaller"), _2(2), _3(true), _4(false), _5(int1smaller), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 5545, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1smaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int1um", 1, - AddBuiltinFunc(_0(6108), _1("int1um"), _2(1), _3(true), _4(false), _5(int1um), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1um"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(6108), _1("int1um"), _2(1), _3(true), _4(false), _5(int1um), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1um"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int1up", 1, - AddBuiltinFunc(_0(6107), _1("int1up"), _2(1), _3(true), _4(false), _5(int1up), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1up"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(6107), _1("int1up"), _2(1), _3(true), _4(false), _5(int1up), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1up"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int1xor", 1, - AddBuiltinFunc(_0(6103), _1("int1xor"), _2(2), _3(true), _4(false), _5(int1xor), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 5545, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1xor"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(6103), _1("int1xor"), _2(2), _3(true), _4(false), _5(int1xor), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 5545, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1xor"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( - "int2", 5, - AddBuiltinFunc(_0(237), _1("int2"), _2(1), _3(true), _4(false), _5(dtoi2), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dtoi2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(238), _1("int2"), _2(1), _3(true), _4(false), _5(ftoi2), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ftoi2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(314), _1("int2"), _2(1), _3(true), _4(false), _5(i4toi2), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("i4toi2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(714), _1("int2"), _2(1), _3(true), _4(false), _5(int82), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int82"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1783), _1("int2"), _2(1), _3(true), _4(false), _5(numeric_int2), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_int2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + "int2", 6, + AddBuiltinFunc(_0(237), _1("int2"), _2(1), _3(true), _4(false), _5(dtoi2), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dtoi2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert float8 to int2"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(238), _1("int2"), _2(1), _3(true), _4(false), _5(ftoi2), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ftoi2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert float4 to int2"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(314), _1("int2"), _2(1), _3(true), _4(false), _5(i4toi2), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("i4toi2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert int4 to int2"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(714), _1("int2"), _2(1), _3(true), _4(false), _5(int82), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int82"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert int8 to int2"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1783), _1("int2"), _2(1), _3(true), _4(false), _5(numeric_int2), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_int2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert numeric to int2"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(6408), _1("int2"), _2(1), _3(true), _4(false), _5(int16_2), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 34), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int16_2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int24div", 1, - AddBuiltinFunc(_0(172), _1("int24div"), _2(2), _3(true), _4(false), _5(int24div), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int24div"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(172), _1("int24div"), _2(2), _3(true), _4(false), _5(int24div), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int24div"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int24eq", 1, - AddBuiltinFunc(_0(158), _1("int24eq"), _2(2), _3(true), _4(false), _5(int24eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 21, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int24eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(158), _1("int24eq"), _2(2), _3(true), _4(false), _5(int24eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 21, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int24eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int24ge", 1, - AddBuiltinFunc(_0(168), _1("int24ge"), _2(2), _3(true), _4(false), _5(int24ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 21, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int24ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(168), _1("int24ge"), _2(2), _3(true), _4(false), _5(int24ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 21, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int24ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int24gt", 1, - AddBuiltinFunc(_0(162), _1("int24gt"), _2(2), _3(true), _4(false), _5(int24gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 21, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int24gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(162), _1("int24gt"), _2(2), _3(true), _4(false), _5(int24gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 21, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int24gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int24le", 1, - AddBuiltinFunc(_0(166), _1("int24le"), _2(2), _3(true), _4(false), _5(int24le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 21, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int24le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(166), _1("int24le"), _2(2), _3(true), _4(false), _5(int24le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 21, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int24le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int24lt", 1, - AddBuiltinFunc(_0(160), _1("int24lt"), _2(2), _3(true), _4(false), _5(int24lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 21, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int24lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(160), _1("int24lt"), _2(2), _3(true), _4(false), _5(int24lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 21, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int24lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int24mi", 1, - AddBuiltinFunc(_0(182), _1("int24mi"), _2(2), _3(true), _4(false), _5(int24mi), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int24mi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(182), _1("int24mi"), _2(2), _3(true), _4(false), _5(int24mi), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int24mi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int24mul", 1, - AddBuiltinFunc(_0(170), _1("int24mul"), _2(2), _3(true), _4(false), _5(int24mul), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int24mul"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(170), _1("int24mul"), _2(2), _3(true), _4(false), _5(int24mul), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int24mul"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int24ne", 1, - AddBuiltinFunc(_0(164), _1("int24ne"), _2(2), _3(true), _4(false), _5(int24ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 21, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int24ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(164), _1("int24ne"), _2(2), _3(true), _4(false), _5(int24ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 21, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int24ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int24pl", 1, - AddBuiltinFunc(_0(178), _1("int24pl"), _2(2), _3(true), _4(false), _5(int24pl), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int24pl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(178), _1("int24pl"), _2(2), _3(true), _4(false), _5(int24pl), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int24pl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int28div", 1, - AddBuiltinFunc(_0(948), _1("int28div"), _2(2), _3(true), _4(false), _5(int28div), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int28div"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(948), _1("int28div"), _2(2), _3(true), _4(false), _5(int28div), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int28div"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int28eq", 1, - AddBuiltinFunc(_0(1850), _1("int28eq"), _2(2), _3(true), _4(false), _5(int28eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 21, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int28eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1850), _1("int28eq"), _2(2), _3(true), _4(false), _5(int28eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 21, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int28eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int28ge", 1, - AddBuiltinFunc(_0(1855), _1("int28ge"), _2(2), _3(true), _4(false), _5(int28ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 21, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int28ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1855), _1("int28ge"), _2(2), _3(true), _4(false), _5(int28ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 21, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int28ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int28gt", 1, - AddBuiltinFunc(_0(1853), _1("int28gt"), _2(2), _3(true), _4(false), _5(int28gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 21, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int28gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1853), _1("int28gt"), _2(2), _3(true), _4(false), _5(int28gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 21, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int28gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int28le", 1, - AddBuiltinFunc(_0(1854), _1("int28le"), _2(2), _3(true), _4(false), _5(int28le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 21, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int28le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1854), _1("int28le"), _2(2), _3(true), _4(false), _5(int28le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 21, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int28le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int28lt", 1, - AddBuiltinFunc(_0(1852), _1("int28lt"), _2(2), _3(true), _4(false), _5(int28lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 21, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int28lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1852), _1("int28lt"), _2(2), _3(true), _4(false), _5(int28lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 21, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int28lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int28mi", 1, - AddBuiltinFunc(_0(942), _1("int28mi"), _2(2), _3(true), _4(false), _5(int28mi), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int28mi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(942), _1("int28mi"), _2(2), _3(true), _4(false), _5(int28mi), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int28mi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int28mul", 1, - AddBuiltinFunc(_0(943), _1("int28mul"), _2(2), _3(true), _4(false), _5(int28mul), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int28mul"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(943), _1("int28mul"), _2(2), _3(true), _4(false), _5(int28mul), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int28mul"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int28ne", 1, - AddBuiltinFunc(_0(1851), _1("int28ne"), _2(2), _3(true), _4(false), _5(int28ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 21, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int28ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1851), _1("int28ne"), _2(2), _3(true), _4(false), _5(int28ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 21, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int28ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int28pl", 1, - AddBuiltinFunc(_0(841), _1("int28pl"), _2(2), _3(true), _4(false), _5(int28pl), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int28pl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(841), _1("int28pl"), _2(2), _3(true), _4(false), _5(int28pl), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int28pl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2_accum", 1, - AddBuiltinFunc(_0(1834), _1("int2_accum"), _2(2), _3(true), _4(false), _5(int2_accum), _6(1231), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1231, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2_accum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1834), _1("int2_accum"), _2(2), _3(true), _4(false), _5(int2_accum), _6(1231), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1231, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2_accum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate transition function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2_avg_accum", 1, - AddBuiltinFunc(_0(1962), _1("int2_avg_accum"), _2(2), _3(true), _4(false), _5(int2_avg_accum), _6(1016), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1016, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2_avg_accum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1962), _1("int2_avg_accum"), _2(2), _3(true), _4(false), _5(int2_avg_accum), _6(1016), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1016, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2_avg_accum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate transition function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2_bool", 1, - AddBuiltinFunc(_0(3180), _1("int2_bool"), _2(1), _3(true), _4(false), _5(int2_bool), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2_bool"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3180), _1("int2_bool"), _2(1), _3(true), _4(false), _5(int2_bool), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2_bool"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2_bpchar", 1, - AddBuiltinFunc(_0(4068), _1("int2_bpchar"), _2(1), _3(true), _4(false), _5(int2_bpchar), _6(1042), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2_bpchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4068), _1("int2_bpchar"), _2(1), _3(true), _4(false), _5(int2_bpchar), _6(1042), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2_bpchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2_list_agg_noarg2_transfn", 1, - AddBuiltinFunc(_0(3557), _1("int2_list_agg_noarg2_transfn"), _2(2), _3(false), _4(false), _5(int2_list_agg_noarg2_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2_list_agg_noarg2_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3557), _1("int2_list_agg_noarg2_transfn"), _2(2), _3(false), _4(false), _5(int2_list_agg_noarg2_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2_list_agg_noarg2_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2_list_agg_transfn", 1, - AddBuiltinFunc(_0(3555), _1("int2_list_agg_transfn"), _2(3), _3(false), _4(false), _5(int2_list_agg_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 21, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2_list_agg_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3555), _1("int2_list_agg_transfn"), _2(3), _3(false), _4(false), _5(int2_list_agg_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 21, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2_list_agg_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2_mul_cash", 1, - AddBuiltinFunc(_0(863), _1("int2_mul_cash"), _2(2), _3(true), _4(false), _5(int2_mul_cash), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2_mul_cash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(863), _1("int2_mul_cash"), _2(2), _3(true), _4(false), _5(int2_mul_cash), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2_mul_cash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2_sum", 1, - AddBuiltinFunc(_0(1840), _1("int2_sum"), _2(2), _3(false), _4(false), _5(int2_sum), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2_sum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1840), _1("int2_sum"), _2(2), _3(false), _4(false), _5(int2_sum), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2_sum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate transition function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2_text", 1, - AddBuiltinFunc(_0(4166), _1("int2_text"), _2(1), _3(true), _4(false), _5(int2_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4166), _1("int2_text"), _2(1), _3(true), _4(false), _5(int2_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2_varchar", 1, - AddBuiltinFunc(_0(4180), _1("int2_varchar"), _2(1), _3(true), _4(false), _5(int2_varchar), _6(1043), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2_varchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4180), _1("int2_varchar"), _2(1), _3(true), _4(false), _5(int2_varchar), _6(1043), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2_varchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2abs", 1, - AddBuiltinFunc(_0(1253), _1("int2abs"), _2(1), _3(true), _4(false), _5(int2abs), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2abs"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1253), _1("int2abs"), _2(1), _3(true), _4(false), _5(int2abs), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2abs"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2and", 1, - AddBuiltinFunc(_0(1892), _1("int2and"), _2(2), _3(true), _4(false), _5(int2and), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2and"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1892), _1("int2and"), _2(2), _3(true), _4(false), _5(int2and), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2and"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2div", 1, - AddBuiltinFunc(_0(153), _1("int2div"), _2(2), _3(true), _4(false), _5(int2div), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2div"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(153), _1("int2div"), _2(2), _3(true), _4(false), _5(int2div), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2div"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2eq", 1, - AddBuiltinFunc(_0(63), _1("int2eq"), _2(2), _3(true), _4(false), _5(int2eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 21, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(63), _1("int2eq"), _2(2), _3(true), _4(false), _5(int2eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 21, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2ge", 1, - AddBuiltinFunc(_0(151), _1("int2ge"), _2(2), _3(true), _4(false), _5(int2ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 21, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(151), _1("int2ge"), _2(2), _3(true), _4(false), _5(int2ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 21, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2gt", 1, - AddBuiltinFunc(_0(146), _1("int2gt"), _2(2), _3(true), _4(false), _5(int2gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 21, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(146), _1("int2gt"), _2(2), _3(true), _4(false), _5(int2gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 21, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2in", 1, - AddBuiltinFunc(_0(38), _1("int2in"), _2(1), _3(true), _4(false), _5(int2in), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(38), _1("int2in"), _2(1), _3(true), _4(false), _5(int2in), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2larger", 1, - AddBuiltinFunc(_0(770), _1("int2larger"), _2(2), _3(true), _4(false), _5(int2larger), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2larger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(770), _1("int2larger"), _2(2), _3(true), _4(false), _5(int2larger), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2larger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("larger of two"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2le", 1, - AddBuiltinFunc(_0(148), _1("int2le"), _2(2), _3(true), _4(false), _5(int2le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 21, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(148), _1("int2le"), _2(2), _3(true), _4(false), _5(int2le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 21, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2lt", 1, - AddBuiltinFunc(_0(64), _1("int2lt"), _2(2), _3(true), _4(false), _5(int2lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 21, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(64), _1("int2lt"), _2(2), _3(true), _4(false), _5(int2lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 21, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2mi", 1, - AddBuiltinFunc(_0(180), _1("int2mi"), _2(2), _3(true), _4(false), _5(int2mi), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2mi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(180), _1("int2mi"), _2(2), _3(true), _4(false), _5(int2mi), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2mi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2mod", 1, - AddBuiltinFunc(_0(155), _1("int2mod"), _2(2), _3(true), _4(false), _5(int2mod), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2mod"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(155), _1("int2mod"), _2(2), _3(true), _4(false), _5(int2mod), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2mod"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("modulus"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2mul", 1, - AddBuiltinFunc(_0(152), _1("int2mul"), _2(2), _3(true), _4(false), _5(int2mul), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2mul"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(152), _1("int2mul"), _2(2), _3(true), _4(false), _5(int2mul), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2mul"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2ne", 1, - AddBuiltinFunc(_0(145), _1("int2ne"), _2(2), _3(true), _4(false), _5(int2ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 21, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(145), _1("int2ne"), _2(2), _3(true), _4(false), _5(int2ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 21, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2not", 1, - AddBuiltinFunc(_0(1895), _1("int2not"), _2(1), _3(true), _4(false), _5(int2not), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2not"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1895), _1("int2not"), _2(1), _3(true), _4(false), _5(int2not), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2not"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2or", 1, - AddBuiltinFunc(_0(1893), _1("int2or"), _2(2), _3(true), _4(false), _5(int2or), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2or"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1893), _1("int2or"), _2(2), _3(true), _4(false), _5(int2or), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2or"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2out", 1, - AddBuiltinFunc(_0(39), _1("int2out"), _2(1), _3(true), _4(false), _5(int2out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(39), _1("int2out"), _2(1), _3(true), _4(false), _5(int2out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2pl", 1, - AddBuiltinFunc(_0(176), _1("int2pl"), _2(2), _3(true), _4(false), _5(int2pl), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2pl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(176), _1("int2pl"), _2(2), _3(true), _4(false), _5(int2pl), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2pl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2recv", 1, - AddBuiltinFunc(_0(2404), _1("int2recv"), _2(1), _3(true), _4(false), _5(int2recv), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2404), _1("int2recv"), _2(1), _3(true), _4(false), _5(int2recv), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2send", 1, - AddBuiltinFunc(_0(2405), _1("int2send"), _2(1), _3(true), _4(false), _5(int2send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2405), _1("int2send"), _2(1), _3(true), _4(false), _5(int2send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2shl", 1, - AddBuiltinFunc(_0(1896), _1("int2shl"), _2(2), _3(true), _4(false), _5(int2shl), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2shl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1896), _1("int2shl"), _2(2), _3(true), _4(false), _5(int2shl), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2shl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2shr", 1, - AddBuiltinFunc(_0(1897), _1("int2shr"), _2(2), _3(true), _4(false), _5(int2shr), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2shr"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1897), _1("int2shr"), _2(2), _3(true), _4(false), _5(int2shr), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2shr"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2smaller", 1, - AddBuiltinFunc(_0(771), _1("int2smaller"), _2(2), _3(true), _4(false), _5(int2smaller), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2smaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(771), _1("int2smaller"), _2(2), _3(true), _4(false), _5(int2smaller), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2smaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("smaller of two"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2um", 1, - AddBuiltinFunc(_0(213), _1("int2um"), _2(1), _3(true), _4(false), _5(int2um), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2um"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(213), _1("int2um"), _2(1), _3(true), _4(false), _5(int2um), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2um"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2up", 1, - AddBuiltinFunc(_0(1911), _1("int2up"), _2(1), _3(true), _4(false), _5(int2up), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2up"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1911), _1("int2up"), _2(1), _3(true), _4(false), _5(int2up), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2up"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2vectoreq", 1, - AddBuiltinFunc(_0(315), _1("int2vectoreq"), _2(2), _3(true), _4(false), _5(int2vectoreq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 22, 22), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2vectoreq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(315), _1("int2vectoreq"), _2(2), _3(true), _4(false), _5(int2vectoreq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 22, 22), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2vectoreq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2vectorin", 1, - AddBuiltinFunc(_0(40), _1("int2vectorin"), _2(1), _3(true), _4(false), _5(int2vectorin), _6(22), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2vectorin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(40), _1("int2vectorin"), _2(1), _3(true), _4(false), _5(int2vectorin), _6(22), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2vectorin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2vectorin_extend", 1, - AddBuiltinFunc(_0(2600), _1("int2vectorin_extend"), _2(1), _3(true), _4(false), _5(int2vectorin_extend), _6(33), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2vectorin_extend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2600), _1("int2vectorin_extend"), _2(1), _3(true), _4(false), _5(int2vectorin_extend), _6(33), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2vectorin_extend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2vectorout", 1, - AddBuiltinFunc(_0(41), _1("int2vectorout"), _2(1), _3(true), _4(false), _5(int2vectorout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 22), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2vectorout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(41), _1("int2vectorout"), _2(1), _3(true), _4(false), _5(int2vectorout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 22), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2vectorout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2vectorout_extend", 1, - AddBuiltinFunc(_0(2601), _1("int2vectorout_extend"), _2(1), _3(true), _4(false), _5(int2vectorout_extend), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 33), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2vectorout_extend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2601), _1("int2vectorout_extend"), _2(1), _3(true), _4(false), _5(int2vectorout_extend), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 33), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2vectorout_extend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2vectorrecv", 1, - AddBuiltinFunc(_0(2410), _1("int2vectorrecv"), _2(1), _3(true), _4(false), _5(int2vectorrecv), _6(22), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2vectorrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2410), _1("int2vectorrecv"), _2(1), _3(true), _4(false), _5(int2vectorrecv), _6(22), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2vectorrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2vectorrecv_extend", 1, - AddBuiltinFunc(_0(2602), _1("int2vectorrecv_extend"), _2(1), _3(true), _4(false), _5(int2vectorrecv_extend), _6(33), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2vectorrecv_extend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2602), _1("int2vectorrecv_extend"), _2(1), _3(true), _4(false), _5(int2vectorrecv_extend), _6(33), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2vectorrecv_extend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2vectorsend", 1, - AddBuiltinFunc(_0(2411), _1("int2vectorsend"), _2(1), _3(true), _4(false), _5(int2vectorsend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 22), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2vectorsend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2411), _1("int2vectorsend"), _2(1), _3(true), _4(false), _5(int2vectorsend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 22), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2vectorsend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2vectorsend_extend", 1, - AddBuiltinFunc(_0(2603), _1("int2vectorsend_extend"), _2(1), _3(true), _4(false), _5(int2vectorsend_extend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 33), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2vectorsend_extend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2603), _1("int2vectorsend_extend"), _2(1), _3(true), _4(false), _5(int2vectorsend_extend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 33), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2vectorsend_extend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int2xor", 1, - AddBuiltinFunc(_0(1894), _1("int2xor"), _2(2), _3(true), _4(false), _5(int2xor), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2xor"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1894), _1("int2xor"), _2(2), _3(true), _4(false), _5(int2xor), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2xor"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( - "int4", 8, - AddBuiltinFunc(_0(77), _1("int4"), _2(1), _3(true), _4(false), _5(chartoi4), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 18), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("chartoi4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(313), _1("int4"), _2(1), _3(true), _4(false), _5(i2toi4), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("i2toi4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(317), _1("int4"), _2(1), _3(true), _4(false), _5(dtoi4), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dtoi4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(319), _1("int4"), _2(1), _3(true), _4(false), _5(ftoi4), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ftoi4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(480), _1("int4"), _2(1), _3(true), _4(false), _5(int84), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int84"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1684), _1("int4"), _2(1), _3(true), _4(false), _5(bittoint4), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1560), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bittoint4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1744), _1("int4"), _2(1), _3(true), _4(false), _5(numeric_int4), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2558), _1("int4"), _2(1), _3(true), _4(false), _5(bool_int4), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bool_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + "int4", 9, + AddBuiltinFunc(_0(77), _1("int4"), _2(1), _3(true), _4(false), _5(chartoi4), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 18), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("chartoi4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert char to int4"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(313), _1("int4"), _2(1), _3(true), _4(false), _5(i2toi4), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("i2toi4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert int2 to int4"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(317), _1("int4"), _2(1), _3(true), _4(false), _5(dtoi4), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dtoi4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert double to int4"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(319), _1("int4"), _2(1), _3(true), _4(false), _5(ftoi4), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ftoi4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert float to int4"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(480), _1("int4"), _2(1), _3(true), _4(false), _5(int84), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int84"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert int8 to int4"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1684), _1("int4"), _2(1), _3(true), _4(false), _5(bittoint4), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1560), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bittoint4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert bit to int4"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1744), _1("int4"), _2(1), _3(true), _4(false), _5(numeric_int4), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert numeric to int4"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2558), _1("int4"), _2(1), _3(true), _4(false), _5(bool_int4), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bool_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert bool to int4"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(6410), _1("int4"), _2(1), _3(true), _4(false), _5(int16_4), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 34), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int16_4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int42div", 1, - AddBuiltinFunc(_0(173), _1("int42div"), _2(2), _3(true), _4(false), _5(int42div), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int42div"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(173), _1("int42div"), _2(2), _3(true), _4(false), _5(int42div), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int42div"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int42eq", 1, - AddBuiltinFunc(_0(159), _1("int42eq"), _2(2), _3(true), _4(false), _5(int42eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 23, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int42eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(159), _1("int42eq"), _2(2), _3(true), _4(false), _5(int42eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 23, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int42eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int42ge", 1, - AddBuiltinFunc(_0(169), _1("int42ge"), _2(2), _3(true), _4(false), _5(int42ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 23, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int42ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(169), _1("int42ge"), _2(2), _3(true), _4(false), _5(int42ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 23, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int42ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int42gt", 1, - AddBuiltinFunc(_0(163), _1("int42gt"), _2(2), _3(true), _4(false), _5(int42gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 23, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int42gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(163), _1("int42gt"), _2(2), _3(true), _4(false), _5(int42gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 23, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int42gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int42le", 1, - AddBuiltinFunc(_0(167), _1("int42le"), _2(2), _3(true), _4(false), _5(int42le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 23, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int42le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(167), _1("int42le"), _2(2), _3(true), _4(false), _5(int42le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 23, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int42le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int42lt", 1, - AddBuiltinFunc(_0(161), _1("int42lt"), _2(2), _3(true), _4(false), _5(int42lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 23, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int42lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(161), _1("int42lt"), _2(2), _3(true), _4(false), _5(int42lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 23, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int42lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int42mi", 1, - AddBuiltinFunc(_0(183), _1("int42mi"), _2(2), _3(true), _4(false), _5(int42mi), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int42mi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(183), _1("int42mi"), _2(2), _3(true), _4(false), _5(int42mi), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int42mi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int42mul", 1, - AddBuiltinFunc(_0(171), _1("int42mul"), _2(2), _3(true), _4(false), _5(int42mul), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int42mul"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(171), _1("int42mul"), _2(2), _3(true), _4(false), _5(int42mul), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int42mul"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int42ne", 1, - AddBuiltinFunc(_0(165), _1("int42ne"), _2(2), _3(true), _4(false), _5(int42ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 23, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int42ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(165), _1("int42ne"), _2(2), _3(true), _4(false), _5(int42ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 23, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int42ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int42pl", 1, - AddBuiltinFunc(_0(179), _1("int42pl"), _2(2), _3(true), _4(false), _5(int42pl), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int42pl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(179), _1("int42pl"), _2(2), _3(true), _4(false), _5(int42pl), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int42pl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int48div", 1, - AddBuiltinFunc(_0(1281), _1("int48div"), _2(2), _3(true), _4(false), _5(int48div), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int48div"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1281), _1("int48div"), _2(2), _3(true), _4(false), _5(int48div), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int48div"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int48eq", 1, - AddBuiltinFunc(_0(852), _1("int48eq"), _2(2), _3(true), _4(false), _5(int48eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 23, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int48eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(852), _1("int48eq"), _2(2), _3(true), _4(false), _5(int48eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 23, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int48eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int48ge", 1, - AddBuiltinFunc(_0(857), _1("int48ge"), _2(2), _3(true), _4(false), _5(int48ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 23, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int48ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(857), _1("int48ge"), _2(2), _3(true), _4(false), _5(int48ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 23, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int48ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int48gt", 1, - AddBuiltinFunc(_0(855), _1("int48gt"), _2(2), _3(true), _4(false), _5(int48gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 23, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int48gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(855), _1("int48gt"), _2(2), _3(true), _4(false), _5(int48gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 23, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int48gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int48le", 1, - AddBuiltinFunc(_0(856), _1("int48le"), _2(2), _3(true), _4(false), _5(int48le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 23, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int48le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(856), _1("int48le"), _2(2), _3(true), _4(false), _5(int48le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 23, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int48le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int48lt", 1, - AddBuiltinFunc(_0(854), _1("int48lt"), _2(2), _3(true), _4(false), _5(int48lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 23, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int48lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(854), _1("int48lt"), _2(2), _3(true), _4(false), _5(int48lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 23, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int48lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int48mi", 1, - AddBuiltinFunc(_0(1279), _1("int48mi"), _2(2), _3(true), _4(false), _5(int48mi), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int48mi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1279), _1("int48mi"), _2(2), _3(true), _4(false), _5(int48mi), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int48mi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int48mul", 1, - AddBuiltinFunc(_0(1280), _1("int48mul"), _2(2), _3(true), _4(false), _5(int48mul), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int48mul"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1280), _1("int48mul"), _2(2), _3(true), _4(false), _5(int48mul), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int48mul"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int48ne", 1, - AddBuiltinFunc(_0(853), _1("int48ne"), _2(2), _3(true), _4(false), _5(int48ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 23, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int48ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(853), _1("int48ne"), _2(2), _3(true), _4(false), _5(int48ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 23, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int48ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int48pl", 1, - AddBuiltinFunc(_0(1278), _1("int48pl"), _2(2), _3(true), _4(false), _5(int48pl), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int48pl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1278), _1("int48pl"), _2(2), _3(true), _4(false), _5(int48pl), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int48pl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int4_accum", 1, - AddBuiltinFunc(_0(1835), _1("int4_accum"), _2(2), _3(true), _4(false), _5(int4_accum), _6(1231), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1231, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4_accum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1835), _1("int4_accum"), _2(2), _3(true), _4(false), _5(int4_accum), _6(1231), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1231, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4_accum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate transition function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int4_avg_accum", 1, - AddBuiltinFunc(_0(1963), _1("int4_avg_accum"), _2(2), _3(true), _4(false), _5(int4_avg_accum), _6(1016), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1016, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4_avg_accum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1963), _1("int4_avg_accum"), _2(2), _3(true), _4(false), _5(int4_avg_accum), _6(1016), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1016, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4_avg_accum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate transition function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int4_bpchar", 1, - AddBuiltinFunc(_0(3192), _1("int4_bpchar"), _2(1), _3(true), _4(false), _5(int4_bpchar), _6(1042), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4_bpchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3192), _1("int4_bpchar"), _2(1), _3(true), _4(false), _5(int4_bpchar), _6(1042), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4_bpchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int4_list_agg_noarg2_transfn", 1, - AddBuiltinFunc(_0(3561), _1("int4_list_agg_noarg2_transfn"), _2(2), _3(false), _4(false), _5(int4_list_agg_noarg2_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4_list_agg_noarg2_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3561), _1("int4_list_agg_noarg2_transfn"), _2(2), _3(false), _4(false), _5(int4_list_agg_noarg2_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4_list_agg_noarg2_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int4_list_agg_transfn", 1, - AddBuiltinFunc(_0(3559), _1("int4_list_agg_transfn"), _2(3), _3(false), _4(false), _5(int4_list_agg_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 23, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4_list_agg_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3559), _1("int4_list_agg_transfn"), _2(3), _3(false), _4(false), _5(int4_list_agg_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 23, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4_list_agg_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int4_mul_cash", 1, - AddBuiltinFunc(_0(862), _1("int4_mul_cash"), _2(2), _3(true), _4(false), _5(int4_mul_cash), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4_mul_cash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(862), _1("int4_mul_cash"), _2(2), _3(true), _4(false), _5(int4_mul_cash), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4_mul_cash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int4_sum", 1, - AddBuiltinFunc(_0(1841), _1("int4_sum"), _2(2), _3(false), _4(false), _5(int4_sum), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4_sum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1841), _1("int4_sum"), _2(2), _3(false), _4(false), _5(int4_sum), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4_sum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate transition function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int4_text", 1, - AddBuiltinFunc(_0(4167), _1("int4_text"), _2(1), _3(true), _4(false), _5(int4_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4167), _1("int4_text"), _2(1), _3(true), _4(false), _5(int4_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int4_varchar", 1, - AddBuiltinFunc(_0(4181), _1("int4_varchar"), _2(1), _3(true), _4(false), _5(int4_varchar), _6(1043), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4_varchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4181), _1("int4_varchar"), _2(1), _3(true), _4(false), _5(int4_varchar), _6(1043), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4_varchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int4abs", 1, - AddBuiltinFunc(_0(1251), _1("int4abs"), _2(1), _3(true), _4(false), _5(int4abs), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4abs"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1251), _1("int4abs"), _2(1), _3(true), _4(false), _5(int4abs), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4abs"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int4and", 1, - AddBuiltinFunc(_0(1898), _1("int4and"), _2(2), _3(true), _4(false), _5(int4and), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4and"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1898), _1("int4and"), _2(2), _3(true), _4(false), _5(int4and), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4and"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int4div", 1, - AddBuiltinFunc(_0(154), _1("int4div"), _2(2), _3(true), _4(false), _5(int4div), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4div"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(154), _1("int4div"), _2(2), _3(true), _4(false), _5(int4div), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4div"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int4eq", 1, - AddBuiltinFunc(_0(65), _1("int4eq"), _2(2), _3(true), _4(false), _5(int4eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(65), _1("int4eq"), _2(2), _3(true), _4(false), _5(int4eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int4ge", 1, - AddBuiltinFunc(_0(150), _1("int4ge"), _2(2), _3(true), _4(false), _5(int4ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(150), _1("int4ge"), _2(2), _3(true), _4(false), _5(int4ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int4gt", 1, - AddBuiltinFunc(_0(147), _1("int4gt"), _2(2), _3(true), _4(false), _5(int4gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(147), _1("int4gt"), _2(2), _3(true), _4(false), _5(int4gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int4in", 1, - AddBuiltinFunc(_0(42), _1("int4in"), _2(1), _3(true), _4(false), _5(int4in), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(42), _1("int4in"), _2(1), _3(true), _4(false), _5(int4in), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int4inc", 1, - AddBuiltinFunc(_0(766), _1("int4inc"), _2(1), _3(true), _4(false), _5(int4inc), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4inc"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(766), _1("int4inc"), _2(1), _3(true), _4(false), _5(int4inc), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4inc"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("increment"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int4larger", 1, - AddBuiltinFunc(_0(768), _1("int4larger"), _2(2), _3(true), _4(false), _5(int4larger), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4larger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(768), _1("int4larger"), _2(2), _3(true), _4(false), _5(int4larger), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4larger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("larger of two"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int4le", 1, - AddBuiltinFunc(_0(149), _1("int4le"), _2(2), _3(true), _4(false), _5(int4le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(149), _1("int4le"), _2(2), _3(true), _4(false), _5(int4le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int4lt", 1, - AddBuiltinFunc(_0(66), _1("int4lt"), _2(2), _3(true), _4(false), _5(int4lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(66), _1("int4lt"), _2(2), _3(true), _4(false), _5(int4lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int4mi", 1, - AddBuiltinFunc(_0(181), _1("int4mi"), _2(2), _3(true), _4(false), _5(int4mi), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4mi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(181), _1("int4mi"), _2(2), _3(true), _4(false), _5(int4mi), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4mi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int4mod", 1, - AddBuiltinFunc(_0(156), _1("int4mod"), _2(2), _3(true), _4(false), _5(int4mod), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4mod"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(156), _1("int4mod"), _2(2), _3(true), _4(false), _5(int4mod), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4mod"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("modulus"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int4mul", 1, - AddBuiltinFunc(_0(141), _1("int4mul"), _2(2), _3(true), _4(false), _5(int4mul), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4mul"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(141), _1("int4mul"), _2(2), _3(true), _4(false), _5(int4mul), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4mul"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int4ne", 1, - AddBuiltinFunc(_0(144), _1("int4ne"), _2(2), _3(true), _4(false), _5(int4ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(144), _1("int4ne"), _2(2), _3(true), _4(false), _5(int4ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int4not", 1, - AddBuiltinFunc(_0(1901), _1("int4not"), _2(1), _3(true), _4(false), _5(int4not), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4not"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1901), _1("int4not"), _2(1), _3(true), _4(false), _5(int4not), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4not"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int4or", 1, - AddBuiltinFunc(_0(1899), _1("int4or"), _2(2), _3(true), _4(false), _5(int4or), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4or"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1899), _1("int4or"), _2(2), _3(true), _4(false), _5(int4or), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4or"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int4out", 1, - AddBuiltinFunc(_0(43), _1("int4out"), _2(1), _3(true), _4(false), _5(int4out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(43), _1("int4out"), _2(1), _3(true), _4(false), _5(int4out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int4pl", 1, - AddBuiltinFunc(_0(177), _1("int4pl"), _2(2), _3(true), _4(false), _5(int4pl), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4pl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(177), _1("int4pl"), _2(2), _3(true), _4(false), _5(int4pl), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4pl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int4range", 2, - AddBuiltinFunc(_0(3840), _1("int4range"), _2(2), _3(false), _4(false), _5(range_constructor2), _6(3904), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_constructor2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3841), _1("int4range"), _2(3), _3(false), _4(false), _5(range_constructor3), _6(3904), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 23, 23, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_constructor3"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3840), _1("int4range"), _2(2), _3(false), _4(false), _5(range_constructor2), _6(3904), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_constructor2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("int4range constructor"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3841), _1("int4range"), _2(3), _3(false), _4(false), _5(range_constructor3), _6(3904), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 23, 23, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_constructor3"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("int4range constructor"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int4range_canonical", 1, - AddBuiltinFunc(_0(3914), _1("int4range_canonical"), _2(1), _3(true), _4(false), _5(int4range_canonical), _6(3904), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3904), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4range_canonical"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3914), _1("int4range_canonical"), _2(1), _3(true), _4(false), _5(int4range_canonical), _6(3904), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3904), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4range_canonical"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert an int4 range to canonical form"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int4range_subdiff", 1, - AddBuiltinFunc(_0(3922), _1("int4range_subdiff"), _2(2), _3(true), _4(false), _5(int4range_subdiff), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4range_subdiff"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3922), _1("int4range_subdiff"), _2(2), _3(true), _4(false), _5(int4range_subdiff), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4range_subdiff"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("float8 difference of two int4 values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int4recv", 1, - AddBuiltinFunc(_0(2406), _1("int4recv"), _2(1), _3(true), _4(false), _5(int4recv), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2406), _1("int4recv"), _2(1), _3(true), _4(false), _5(int4recv), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int4send", 1, - AddBuiltinFunc(_0(2407), _1("int4send"), _2(1), _3(true), _4(false), _5(int4send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2407), _1("int4send"), _2(1), _3(true), _4(false), _5(int4send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int4shl", 1, - AddBuiltinFunc(_0(1902), _1("int4shl"), _2(2), _3(true), _4(false), _5(int4shl), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4shl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1902), _1("int4shl"), _2(2), _3(true), _4(false), _5(int4shl), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4shl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int4shr", 1, - AddBuiltinFunc(_0(1903), _1("int4shr"), _2(2), _3(true), _4(false), _5(int4shr), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4shr"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1903), _1("int4shr"), _2(2), _3(true), _4(false), _5(int4shr), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4shr"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int4smaller", 1, - AddBuiltinFunc(_0(769), _1("int4smaller"), _2(2), _3(true), _4(false), _5(int4smaller), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4smaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(769), _1("int4smaller"), _2(2), _3(true), _4(false), _5(int4smaller), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4smaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("smaller of two"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int4um", 1, - AddBuiltinFunc(_0(212), _1("int4um"), _2(1), _3(true), _4(false), _5(int4um), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4um"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(212), _1("int4um"), _2(1), _3(true), _4(false), _5(int4um), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4um"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int4up", 1, - AddBuiltinFunc(_0(1912), _1("int4up"), _2(1), _3(true), _4(false), _5(int4up), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4up"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1912), _1("int4up"), _2(1), _3(true), _4(false), _5(int4up), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4up"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int4xor", 1, - AddBuiltinFunc(_0(1900), _1("int4xor"), _2(2), _3(true), _4(false), _5(int4xor), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4xor"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1900), _1("int4xor"), _2(2), _3(true), _4(false), _5(int4xor), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4xor"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( - "int8", 7, - AddBuiltinFunc(_0(481), _1("int8"), _2(1), _3(true), _4(false), _5(int48), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int48"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(483), _1("int8"), _2(1), _3(true), _4(false), _5(dtoi8), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dtoi8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(653), _1("int8"), _2(1), _3(true), _4(false), _5(ftoi8), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ftoi8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(754), _1("int8"), _2(1), _3(true), _4(false), _5(int28), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int28"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1288), _1("int8"), _2(1), _3(true), _4(false), _5(oidtoi8), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidtoi8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1779), _1("int8"), _2(1), _3(true), _4(false), _5(numeric_int8), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_int8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2076), _1("int8"), _2(1), _3(true), _4(false), _5(bittoint8), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1560), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bittoint8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + "int8", 8, + AddBuiltinFunc(_0(481), _1("int8"), _2(1), _3(true), _4(false), _5(int48), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int48"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert int4 to int8"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(483), _1("int8"), _2(1), _3(true), _4(false), _5(dtoi8), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dtoi8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert float8 to int8"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(653), _1("int8"), _2(1), _3(true), _4(false), _5(ftoi8), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ftoi8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert float4 to int8"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(754), _1("int8"), _2(1), _3(true), _4(false), _5(int28), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int28"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert int2 to int8"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1288), _1("int8"), _2(1), _3(true), _4(false), _5(oidtoi8), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidtoi8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert oid to int8"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1779), _1("int8"), _2(1), _3(true), _4(false), _5(numeric_int8), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_int8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert numeric to int8"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2076), _1("int8"), _2(1), _3(true), _4(false), _5(bittoint8), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1560), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bittoint8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert bitstring to int8"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(6412), _1("int8"), _2(1), _3(true), _4(false), _5(int16_8), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 34), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int16_8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int82div", 1, - AddBuiltinFunc(_0(840), _1("int82div"), _2(2), _3(true), _4(false), _5(int82div), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int82div"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(840), _1("int82div"), _2(2), _3(true), _4(false), _5(int82div), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int82div"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int82eq", 1, - AddBuiltinFunc(_0(1856), _1("int82eq"), _2(2), _3(true), _4(false), _5(int82eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 20, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int82eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1856), _1("int82eq"), _2(2), _3(true), _4(false), _5(int82eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 20, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int82eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int82ge", 1, - AddBuiltinFunc(_0(1861), _1("int82ge"), _2(2), _3(true), _4(false), _5(int82ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 20, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int82ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1861), _1("int82ge"), _2(2), _3(true), _4(false), _5(int82ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 20, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int82ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int82gt", 1, - AddBuiltinFunc(_0(1859), _1("int82gt"), _2(2), _3(true), _4(false), _5(int82gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 20, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int82gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1859), _1("int82gt"), _2(2), _3(true), _4(false), _5(int82gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 20, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int82gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int82le", 1, - AddBuiltinFunc(_0(1860), _1("int82le"), _2(2), _3(true), _4(false), _5(int82le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 20, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int82le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1860), _1("int82le"), _2(2), _3(true), _4(false), _5(int82le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 20, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int82le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int82lt", 1, - AddBuiltinFunc(_0(1858), _1("int82lt"), _2(2), _3(true), _4(false), _5(int82lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 20, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int82lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1858), _1("int82lt"), _2(2), _3(true), _4(false), _5(int82lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 20, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int82lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int82mi", 1, - AddBuiltinFunc(_0(838), _1("int82mi"), _2(2), _3(true), _4(false), _5(int82mi), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int82mi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(838), _1("int82mi"), _2(2), _3(true), _4(false), _5(int82mi), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int82mi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int82mul", 1, - AddBuiltinFunc(_0(839), _1("int82mul"), _2(2), _3(true), _4(false), _5(int82mul), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int82mul"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(839), _1("int82mul"), _2(2), _3(true), _4(false), _5(int82mul), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int82mul"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int82ne", 1, - AddBuiltinFunc(_0(1857), _1("int82ne"), _2(2), _3(true), _4(false), _5(int82ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 20, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int82ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1857), _1("int82ne"), _2(2), _3(true), _4(false), _5(int82ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 20, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int82ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int82pl", 1, - AddBuiltinFunc(_0(837), _1("int82pl"), _2(2), _3(true), _4(false), _5(int82pl), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int82pl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(837), _1("int82pl"), _2(2), _3(true), _4(false), _5(int82pl), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int82pl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int84div", 1, - AddBuiltinFunc(_0(1277), _1("int84div"), _2(2), _3(true), _4(false), _5(int84div), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int84div"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1277), _1("int84div"), _2(2), _3(true), _4(false), _5(int84div), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int84div"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int84eq", 1, - AddBuiltinFunc(_0(474), _1("int84eq"), _2(2), _3(true), _4(false), _5(int84eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 20, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int84eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(474), _1("int84eq"), _2(2), _3(true), _4(false), _5(int84eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 20, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int84eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int84ge", 1, - AddBuiltinFunc(_0(479), _1("int84ge"), _2(2), _3(true), _4(false), _5(int84ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 20, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int84ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(479), _1("int84ge"), _2(2), _3(true), _4(false), _5(int84ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 20, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int84ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int84gt", 1, - AddBuiltinFunc(_0(477), _1("int84gt"), _2(2), _3(true), _4(false), _5(int84gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 20, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int84gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(477), _1("int84gt"), _2(2), _3(true), _4(false), _5(int84gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 20, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int84gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int84le", 1, - AddBuiltinFunc(_0(478), _1("int84le"), _2(2), _3(true), _4(false), _5(int84le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 20, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int84le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(478), _1("int84le"), _2(2), _3(true), _4(false), _5(int84le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 20, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int84le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int84lt", 1, - AddBuiltinFunc(_0(476), _1("int84lt"), _2(2), _3(true), _4(false), _5(int84lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 20, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int84lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(476), _1("int84lt"), _2(2), _3(true), _4(false), _5(int84lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 20, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int84lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int84mi", 1, - AddBuiltinFunc(_0(1275), _1("int84mi"), _2(2), _3(true), _4(false), _5(int84mi), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int84mi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1275), _1("int84mi"), _2(2), _3(true), _4(false), _5(int84mi), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int84mi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int84mul", 1, - AddBuiltinFunc(_0(1276), _1("int84mul"), _2(2), _3(true), _4(false), _5(int84mul), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int84mul"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1276), _1("int84mul"), _2(2), _3(true), _4(false), _5(int84mul), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int84mul"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int84ne", 1, - AddBuiltinFunc(_0(475), _1("int84ne"), _2(2), _3(true), _4(false), _5(int84ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 20, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int84ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(475), _1("int84ne"), _2(2), _3(true), _4(false), _5(int84ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 20, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int84ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int84pl", 1, - AddBuiltinFunc(_0(1274), _1("int84pl"), _2(2), _3(true), _4(false), _5(int84pl), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int84pl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1274), _1("int84pl"), _2(2), _3(true), _4(false), _5(int84pl), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int84pl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8_accum", 1, - AddBuiltinFunc(_0(1836), _1("int8_accum"), _2(2), _3(true), _4(false), _5(int8_accum), _6(1231), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1231, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8_accum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1836), _1("int8_accum"), _2(2), _3(true), _4(false), _5(int8_accum), _6(1231), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1231, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8_accum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate transition function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8_avg", 1, - AddBuiltinFunc(_0(1964), _1("int8_avg"), _2(1), _3(true), _4(false), _5(int8_avg), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1016), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8_avg"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1964), _1("int8_avg"), _2(1), _3(true), _4(false), _5(int8_avg), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1016), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8_avg"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate final function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8_avg_accum", 1, - AddBuiltinFunc(_0(2746), _1("int8_avg_accum"), _2(2), _3(true), _4(false), _5(int8_avg_accum), _6(1231), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1231, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8_avg_accum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2746), _1("int8_avg_accum"), _2(2), _3(true), _4(false), _5(int8_avg_accum), _6(1231), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1231, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8_avg_accum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8_avg_collect", 1, - AddBuiltinFunc(_0(2965), _1("int8_avg_collect"), _2(2), _3(true), _4(false), _5(int8_avg_collect), _6(1016), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1016, 1016), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8_avg_collect"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2965), _1("int8_avg_collect"), _2(2), _3(true), _4(false), _5(int8_avg_collect), _6(1016), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1016, 1016), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8_avg_collect"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8_bool", 1, - AddBuiltinFunc(_0(3177), _1("int8_bool"), _2(1), _3(true), _4(false), _5(int8_bool), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8_bool"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3177), _1("int8_bool"), _2(1), _3(true), _4(false), _5(int8_bool), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8_bool"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8_bpchar", 1, - AddBuiltinFunc(_0(4069), _1("int8_bpchar"), _2(1), _3(true), _4(false), _5(int8_bpchar), _6(1042), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8_bpchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4069), _1("int8_bpchar"), _2(1), _3(true), _4(false), _5(int8_bpchar), _6(1042), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8_bpchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8_list_agg_noarg2_transfn", 1, - AddBuiltinFunc(_0(3565), _1("int8_list_agg_noarg2_transfn"), _2(2), _3(false), _4(false), _5(int8_list_agg_noarg2_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8_list_agg_noarg2_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3565), _1("int8_list_agg_noarg2_transfn"), _2(2), _3(false), _4(false), _5(int8_list_agg_noarg2_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8_list_agg_noarg2_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8_list_agg_transfn", 1, - AddBuiltinFunc(_0(3563), _1("int8_list_agg_transfn"), _2(3), _3(false), _4(false), _5(int8_list_agg_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 20, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8_list_agg_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3563), _1("int8_list_agg_transfn"), _2(3), _3(false), _4(false), _5(int8_list_agg_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 20, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8_list_agg_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8_mul_cash", 1, - AddBuiltinFunc(_0(3343), _1("int8_mul_cash"), _2(2), _3(true), _4(false), _5(int8_mul_cash), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8_mul_cash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3343), _1("int8_mul_cash"), _2(2), _3(true), _4(false), _5(int8_mul_cash), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8_mul_cash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8_sum", 1, - AddBuiltinFunc(_0(1842), _1("int8_sum"), _2(2), _3(false), _4(false), _5(int8_sum), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8_sum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1842), _1("int8_sum"), _2(2), _3(false), _4(false), _5(int8_sum), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8_sum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate transition function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8_sum_to_int8", 1, - AddBuiltinFunc(_0(2996), _1("int8_sum_to_int8"), _2(2), _3(false), _4(false), _5(int8_sum_to_int8), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8_sum_to_int8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2996), _1("int8_sum_to_int8"), _2(2), _3(false), _4(false), _5(int8_sum_to_int8), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8_sum_to_int8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8_text", 1, - AddBuiltinFunc(_0(4168), _1("int8_text"), _2(1), _3(true), _4(false), _5(int8_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4168), _1("int8_text"), _2(1), _3(true), _4(false), _5(int8_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8_varchar", 1, - AddBuiltinFunc(_0(4182), _1("int8_varchar"), _2(1), _3(true), _4(false), _5(int8_varchar), _6(1043), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8_varchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4182), _1("int8_varchar"), _2(1), _3(true), _4(false), _5(int8_varchar), _6(1043), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8_varchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8abs", 1, - AddBuiltinFunc(_0(1230), _1("int8abs"), _2(1), _3(true), _4(false), _5(int8abs), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8abs"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1230), _1("int8abs"), _2(1), _3(true), _4(false), _5(int8abs), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8abs"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8and", 1, - AddBuiltinFunc(_0(1904), _1("int8and"), _2(2), _3(true), _4(false), _5(int8and), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8and"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1904), _1("int8and"), _2(2), _3(true), _4(false), _5(int8and), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8and"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8div", 1, - AddBuiltinFunc(_0(466), _1("int8div"), _2(2), _3(true), _4(false), _5(int8div), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8div"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(466), _1("int8div"), _2(2), _3(true), _4(false), _5(int8div), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8div"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8eq", 1, - AddBuiltinFunc(_0(467), _1("int8eq"), _2(2), _3(true), _4(false), _5(int8eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(467), _1("int8eq"), _2(2), _3(true), _4(false), _5(int8eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8ge", 1, - AddBuiltinFunc(_0(472), _1("int8ge"), _2(2), _3(true), _4(false), _5(int8ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(472), _1("int8ge"), _2(2), _3(true), _4(false), _5(int8ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8gt", 1, - AddBuiltinFunc(_0(470), _1("int8gt"), _2(2), _3(true), _4(false), _5(int8gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(470), _1("int8gt"), _2(2), _3(true), _4(false), _5(int8gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8in", 1, - AddBuiltinFunc(_0(460), _1("int8in"), _2(1), _3(true), _4(false), _5(int8in), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(460), _1("int8in"), _2(1), _3(true), _4(false), _5(int8in), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8inc", 1, - AddBuiltinFunc(_0(1219), _1("int8inc"), _2(1), _3(true), _4(false), _5(int8inc), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8inc"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1219), _1("int8inc"), _2(1), _3(true), _4(false), _5(int8inc), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8inc"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("increment"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8inc_any", 1, - AddBuiltinFunc(_0(2804), _1("int8inc_any"), _2(2), _3(true), _4(false), _5(int8inc_any), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 2276), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8inc_any"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2804), _1("int8inc_any"), _2(2), _3(true), _4(false), _5(int8inc_any), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 2276), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8inc_any"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("increment, ignores second argument"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8inc_float8_float8", 1, - AddBuiltinFunc(_0(2805), _1("int8inc_float8_float8"), _2(3), _3(true), _4(false), _5(int8inc_float8_float8), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 20, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8inc_float8_float8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2805), _1("int8inc_float8_float8"), _2(3), _3(true), _4(false), _5(int8inc_float8_float8), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 20, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8inc_float8_float8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate transition function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8larger", 1, - AddBuiltinFunc(_0(1236), _1("int8larger"), _2(2), _3(true), _4(false), _5(int8larger), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8larger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1236), _1("int8larger"), _2(2), _3(true), _4(false), _5(int8larger), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8larger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("larger of two"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8le", 1, - AddBuiltinFunc(_0(471), _1("int8le"), _2(2), _3(true), _4(false), _5(int8le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(471), _1("int8le"), _2(2), _3(true), _4(false), _5(int8le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8lt", 1, - AddBuiltinFunc(_0(469), _1("int8lt"), _2(2), _3(true), _4(false), _5(int8lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(469), _1("int8lt"), _2(2), _3(true), _4(false), _5(int8lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8mi", 1, - AddBuiltinFunc(_0(464), _1("int8mi"), _2(2), _3(true), _4(false), _5(int8mi), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8mi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(464), _1("int8mi"), _2(2), _3(true), _4(false), _5(int8mi), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8mi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8mod", 1, - AddBuiltinFunc(_0(945), _1("int8mod"), _2(2), _3(true), _4(false), _5(int8mod), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8mod"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(945), _1("int8mod"), _2(2), _3(true), _4(false), _5(int8mod), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8mod"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("modulus"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8mul", 1, - AddBuiltinFunc(_0(465), _1("int8mul"), _2(2), _3(true), _4(false), _5(int8mul), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8mul"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(465), _1("int8mul"), _2(2), _3(true), _4(false), _5(int8mul), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8mul"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8ne", 1, - AddBuiltinFunc(_0(468), _1("int8ne"), _2(2), _3(true), _4(false), _5(int8ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(468), _1("int8ne"), _2(2), _3(true), _4(false), _5(int8ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8not", 1, - AddBuiltinFunc(_0(1907), _1("int8not"), _2(1), _3(true), _4(false), _5(int8not), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8not"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1907), _1("int8not"), _2(1), _3(true), _4(false), _5(int8not), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8not"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8or", 1, - AddBuiltinFunc(_0(1905), _1("int8or"), _2(2), _3(true), _4(false), _5(int8or), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8or"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1905), _1("int8or"), _2(2), _3(true), _4(false), _5(int8or), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8or"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8out", 1, - AddBuiltinFunc(_0(461), _1("int8out"), _2(1), _3(true), _4(false), _5(int8out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(461), _1("int8out"), _2(1), _3(true), _4(false), _5(int8out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8pl", 1, - AddBuiltinFunc(_0(463), _1("int8pl"), _2(2), _3(true), _4(false), _5(int8pl), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8pl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(463), _1("int8pl"), _2(2), _3(true), _4(false), _5(int8pl), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8pl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8pl_inet", 1, - AddBuiltinFunc(_0(2631), _1("int8pl_inet"), _2(2), _3(true), _4(false), _5(NULL), _6(869), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select $2 + $1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2631), _1("int8pl_inet"), _2(2), _3(true), _4(false), _5(NULL), _6(869), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select $2 + $1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8range", 2, - AddBuiltinFunc(_0(3945), _1("int8range"), _2(2), _3(false), _4(false), _5(range_constructor2), _6(3926), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_constructor2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3946), _1("int8range"), _2(3), _3(false), _4(false), _5(range_constructor3), _6(3926), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 20, 20, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_constructor3"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3945), _1("int8range"), _2(2), _3(false), _4(false), _5(range_constructor2), _6(3926), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_constructor2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("int8range constructor"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3946), _1("int8range"), _2(3), _3(false), _4(false), _5(range_constructor3), _6(3926), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 20, 20, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_constructor3"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("int8range constructor"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8range_canonical", 1, - AddBuiltinFunc(_0(3928), _1("int8range_canonical"), _2(1), _3(true), _4(false), _5(int8range_canonical), _6(3926), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3926), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8range_canonical"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3928), _1("int8range_canonical"), _2(1), _3(true), _4(false), _5(int8range_canonical), _6(3926), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3926), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8range_canonical"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert an int8 range to canonical form"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8range_subdiff", 1, - AddBuiltinFunc(_0(3923), _1("int8range_subdiff"), _2(2), _3(true), _4(false), _5(int8range_subdiff), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8range_subdiff"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3923), _1("int8range_subdiff"), _2(2), _3(true), _4(false), _5(int8range_subdiff), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8range_subdiff"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("float8 difference of two int8 values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8recv", 1, - AddBuiltinFunc(_0(2408), _1("int8recv"), _2(1), _3(true), _4(false), _5(int8recv), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2408), _1("int8recv"), _2(1), _3(true), _4(false), _5(int8recv), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8send", 1, - AddBuiltinFunc(_0(2409), _1("int8send"), _2(1), _3(true), _4(false), _5(int8send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2409), _1("int8send"), _2(1), _3(true), _4(false), _5(int8send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8shl", 1, - AddBuiltinFunc(_0(1908), _1("int8shl"), _2(2), _3(true), _4(false), _5(int8shl), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8shl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1908), _1("int8shl"), _2(2), _3(true), _4(false), _5(int8shl), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8shl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8shr", 1, - AddBuiltinFunc(_0(1909), _1("int8shr"), _2(2), _3(true), _4(false), _5(int8shr), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8shr"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1909), _1("int8shr"), _2(2), _3(true), _4(false), _5(int8shr), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8shr"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8smaller", 1, - AddBuiltinFunc(_0(1237), _1("int8smaller"), _2(2), _3(true), _4(false), _5(int8smaller), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8smaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1237), _1("int8smaller"), _2(2), _3(true), _4(false), _5(int8smaller), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8smaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("smaller of two"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8um", 1, - AddBuiltinFunc(_0(462), _1("int8um"), _2(1), _3(true), _4(false), _5(int8um), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8um"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(462), _1("int8um"), _2(1), _3(true), _4(false), _5(int8um), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8um"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8up", 1, - AddBuiltinFunc(_0(1910), _1("int8up"), _2(1), _3(true), _4(false), _5(int8up), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8up"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1910), _1("int8up"), _2(1), _3(true), _4(false), _5(int8up), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8up"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "int8xor", 1, - AddBuiltinFunc(_0(1906), _1("int8xor"), _2(2), _3(true), _4(false), _5(int8xor), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8xor"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1906), _1("int8xor"), _2(2), _3(true), _4(false), _5(int8xor), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8xor"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "integer_pl_date", 1, - AddBuiltinFunc(_0(2550), _1("integer_pl_date"), _2(2), _3(true), _4(false), _5(NULL), _6(1082), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select $2 + $1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2550), _1("integer_pl_date"), _2(2), _3(true), _4(false), _5(NULL), _6(1082), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select $2 + $1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "inter_lb", 1, - AddBuiltinFunc(_0(278), _1("inter_lb"), _2(2), _3(true), _4(false), _5(inter_lb), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 628, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("inter_lb"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(278), _1("inter_lb"), _2(2), _3(true), _4(false), _5(inter_lb), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 628, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("inter_lb"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "inter_sb", 1, - AddBuiltinFunc(_0(373), _1("inter_sb"), _2(2), _3(true), _4(false), _5(inter_sb), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 601, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("inter_sb"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(373), _1("inter_sb"), _2(2), _3(true), _4(false), _5(inter_sb), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 601, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("inter_sb"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "inter_sl", 1, - AddBuiltinFunc(_0(277), _1("inter_sl"), _2(2), _3(true), _4(false), _5(inter_sl), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 601, 628), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("inter_sl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(277), _1("inter_sl"), _2(2), _3(true), _4(false), _5(inter_sl), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 601, 628), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("inter_sl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "internal_in", 1, - AddBuiltinFunc(_0(2304), _1("internal_in"), _2(1), _3(false), _4(false), _5(internal_in), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("internal_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2304), _1("internal_in"), _2(1), _3(false), _4(false), _5(internal_in), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("internal_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "internal_out", 1, - AddBuiltinFunc(_0(2305), _1("internal_out"), _2(1), _3(true), _4(false), _5(internal_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("internal_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2305), _1("internal_out"), _2(1), _3(true), _4(false), _5(internal_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("internal_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "interval", 3, - AddBuiltinFunc(_0(1177), _1("interval"), _2(1), _3(true), _4(false), _5(reltime_interval), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 703), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("reltime_interval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1200), _1("interval"), _2(2), _3(true), _4(false), _5(interval_scale), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(3918), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1186, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_scale"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1370), _1("interval"), _2(1), _3(true), _4(false), _5(time_interval), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_interval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), + AddBuiltinFunc(_0(1177), _1("interval"), _2(1), _3(true), _4(false), _5(reltime_interval), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 703), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("reltime_interval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1200), _1("interval"), _2(2), _3(true), _4(false), _5(interval_scale), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(3918), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1186, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_scale"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("adjust interval precision"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1370), _1("interval"), _2(1), _3(true), _4(false), _5(time_interval), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_interval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert time to interval"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), ), AddFuncGroup( "interval_accum", 1, - AddBuiltinFunc(_0(INTERVALACCUMFUNCOID), _1("interval_accum"), _2(2), _3(true), _4(false), _5(interval_accum), _6(1187), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1187, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_accum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(INTERVALACCUMFUNCOID), _1("interval_accum"), _2(2), _3(true), _4(false), _5(interval_accum), _6(1187), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1187, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_accum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate transition function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "interval_avg", 1, - AddBuiltinFunc(_0(INTERVALAVGFUNCOID), _1("interval_avg"), _2(1), _3(true), _4(false), _5(interval_avg), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1187), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_avg"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(INTERVALAVGFUNCOID), _1("interval_avg"), _2(1), _3(true), _4(false), _5(interval_avg), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1187), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_avg"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate final function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "interval_cmp", 1, - AddBuiltinFunc(_0(1315), _1("interval_cmp"), _2(2), _3(true), _4(false), _5(interval_cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1186, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1315), _1("interval_cmp"), _2(2), _3(true), _4(false), _5(interval_cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1186, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "interval_collect", 1, - AddBuiltinFunc(_0(2967), _1("interval_collect"), _2(2), _3(true), _4(false), _5(interval_collect), _6(1187), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1187, 1187), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_collect"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2967), _1("interval_collect"), _2(2), _3(true), _4(false), _5(interval_collect), _6(1187), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1187, 1187), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_collect"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "interval_div", 1, - AddBuiltinFunc(_0(1326), _1("interval_div"), _2(2), _3(true), _4(false), _5(interval_div), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1186, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_div"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1326), _1("interval_div"), _2(2), _3(true), _4(false), _5(interval_div), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1186, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_div"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "interval_eq", 1, - AddBuiltinFunc(_0(1162), _1("interval_eq"), _2(2), _3(true), _4(false), _5(interval_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1186, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1162), _1("interval_eq"), _2(2), _3(true), _4(false), _5(interval_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1186, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "interval_ge", 1, - AddBuiltinFunc(_0(1166), _1("interval_ge"), _2(2), _3(true), _4(false), _5(interval_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1186, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1166), _1("interval_ge"), _2(2), _3(true), _4(false), _5(interval_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1186, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "interval_gt", 1, - AddBuiltinFunc(_0(1167), _1("interval_gt"), _2(2), _3(true), _4(false), _5(interval_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1186, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1167), _1("interval_gt"), _2(2), _3(true), _4(false), _5(interval_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1186, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "interval_hash", 1, - AddBuiltinFunc(_0(1697), _1("interval_hash"), _2(1), _3(true), _4(false), _5(interval_hash), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_hash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1697), _1("interval_hash"), _2(1), _3(true), _4(false), _5(interval_hash), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_hash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("hash"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "interval_in", 1, - AddBuiltinFunc(_0(INTERVALINFUNCOID), _1("interval_in"), _2(3), _3(true), _4(false), _5(interval_in), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 2275, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(INTERVALINFUNCOID), _1("interval_in"), _2(3), _3(true), _4(false), _5(interval_in), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 2275, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35("I/O"), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "interval_larger", 1, - AddBuiltinFunc(_0(1198), _1("interval_larger"), _2(2), _3(true), _4(false), _5(interval_larger), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1186, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_larger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1198), _1("interval_larger"), _2(2), _3(true), _4(false), _5(interval_larger), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1186, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_larger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("larger of two"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "interval_le", 1, - AddBuiltinFunc(_0(1165), _1("interval_le"), _2(2), _3(true), _4(false), _5(interval_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1186, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1165), _1("interval_le"), _2(2), _3(true), _4(false), _5(interval_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1186, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "interval_list_agg_noarg2_transfn", 1, - AddBuiltinFunc(_0(4507), _1("interval_list_agg_noarg2_transfn"), _2(2), _3(false), _4(false), _5(interval_list_agg_noarg2_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_list_agg_noarg2_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4507), _1("interval_list_agg_noarg2_transfn"), _2(2), _3(false), _4(false), _5(interval_list_agg_noarg2_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_list_agg_noarg2_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "interval_list_agg_transfn", 1, - AddBuiltinFunc(_0(4505), _1("interval_list_agg_transfn"), _2(3), _3(false), _4(false), _5(interval_list_agg_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 1186, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_list_agg_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4505), _1("interval_list_agg_transfn"), _2(3), _3(false), _4(false), _5(interval_list_agg_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 1186, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_list_agg_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "interval_lt", 1, - AddBuiltinFunc(_0(1164), _1("interval_lt"), _2(2), _3(true), _4(false), _5(interval_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1186, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1164), _1("interval_lt"), _2(2), _3(true), _4(false), _5(interval_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1186, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "interval_mi", 1, - AddBuiltinFunc(_0(1170), _1("interval_mi"), _2(2), _3(true), _4(false), _5(interval_mi), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1186, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_mi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1170), _1("interval_mi"), _2(2), _3(true), _4(false), _5(interval_mi), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1186, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_mi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "interval_mul", 1, - AddBuiltinFunc(_0(1618), _1("interval_mul"), _2(2), _3(true), _4(false), _5(interval_mul), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1186, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_mul"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1618), _1("interval_mul"), _2(2), _3(true), _4(false), _5(interval_mul), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1186, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_mul"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "interval_ne", 1, - AddBuiltinFunc(_0(1163), _1("interval_ne"), _2(2), _3(true), _4(false), _5(interval_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1186, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1163), _1("interval_ne"), _2(2), _3(true), _4(false), _5(interval_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1186, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "interval_out", 1, - AddBuiltinFunc(_0(1161), _1("interval_out"), _2(1), _3(true), _4(false), _5(interval_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1161), _1("interval_out"), _2(1), _3(true), _4(false), _5(interval_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "interval_pl", 1, - AddBuiltinFunc(_0(1169), _1("interval_pl"), _2(2), _3(true), _4(false), _5(interval_pl), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1186, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_pl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1169), _1("interval_pl"), _2(2), _3(true), _4(false), _5(interval_pl), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1186, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_pl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "interval_pl_date", 1, - AddBuiltinFunc(_0(2546), _1("interval_pl_date"), _2(2), _3(true), _4(false), _5(NULL), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1186, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select $2 + $1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2546), _1("interval_pl_date"), _2(2), _3(true), _4(false), _5(NULL), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1186, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select $2 + $1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "interval_pl_time", 1, - AddBuiltinFunc(_0(1848), _1("interval_pl_time"), _2(2), _3(true), _4(false), _5(NULL), _6(1083), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1186, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select $2 + $1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1848), _1("interval_pl_time"), _2(2), _3(true), _4(false), _5(NULL), _6(1083), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1186, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select $2 + $1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "interval_pl_timestamp", 1, - AddBuiltinFunc(_0(2548), _1("interval_pl_timestamp"), _2(2), _3(true), _4(false), _5(NULL), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1186, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select $2 + $1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2548), _1("interval_pl_timestamp"), _2(2), _3(true), _4(false), _5(NULL), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1186, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select $2 + $1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "interval_pl_timestamptz", 1, - AddBuiltinFunc(_0(INTERVALPLTIMESTAMPTZFUNCOID), _1("interval_pl_timestamptz"), _2(2), _3(true), _4(false), _5(NULL), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1186, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select $2 + $1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(INTERVALPLTIMESTAMPTZFUNCOID), _1("interval_pl_timestamptz"), _2(2), _3(true), _4(false), _5(NULL), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1186, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select $2 + $1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "interval_pl_timetz", 1, - AddBuiltinFunc(_0(2547), _1("interval_pl_timetz"), _2(2), _3(true), _4(false), _5(NULL), _6(1266), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1186, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select $2 + $1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2547), _1("interval_pl_timetz"), _2(2), _3(true), _4(false), _5(NULL), _6(1266), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1186, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select $2 + $1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "interval_recv", 1, - AddBuiltinFunc(_0(2478), _1("interval_recv"), _2(3), _3(true), _4(false), _5(interval_recv), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2478), _1("interval_recv"), _2(3), _3(true), _4(false), _5(interval_recv), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "interval_send", 1, - AddBuiltinFunc(_0(2479), _1("interval_send"), _2(1), _3(true), _4(false), _5(interval_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2479), _1("interval_send"), _2(1), _3(true), _4(false), _5(interval_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "interval_smaller", 1, - AddBuiltinFunc(_0(1197), _1("interval_smaller"), _2(2), _3(true), _4(false), _5(interval_smaller), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1186, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_smaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1197), _1("interval_smaller"), _2(2), _3(true), _4(false), _5(interval_smaller), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1186, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_smaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("smaller of two"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "interval_transform", 1, - AddBuiltinFunc(_0(3918), _1("interval_transform"), _2(1), _3(true), _4(false), _5(interval_transform), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_transform"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3918), _1("interval_transform"), _2(1), _3(true), _4(false), _5(interval_transform), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_transform"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "interval_um", 1, - AddBuiltinFunc(_0(1168), _1("interval_um"), _2(1), _3(true), _4(false), _5(interval_um), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_um"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1168), _1("interval_um"), _2(1), _3(true), _4(false), _5(interval_um), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_um"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "intervaltypmodin", 1, - AddBuiltinFunc(_0(2903), _1("intervaltypmodin"), _2(1), _3(true), _4(false), _5(intervaltypmodin), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1263), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("intervaltypmodin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2903), _1("intervaltypmodin"), _2(1), _3(true), _4(false), _5(intervaltypmodin), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1263), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("intervaltypmodin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O typmod"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "intervaltypmodout", 1, - AddBuiltinFunc(_0(2904), _1("intervaltypmodout"), _2(1), _3(true), _4(false), _5(intervaltypmodout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("intervaltypmodout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2904), _1("intervaltypmodout"), _2(1), _3(true), _4(false), _5(intervaltypmodout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("intervaltypmodout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O typmod"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "intinterval", 1, - AddBuiltinFunc(_0(248), _1("intinterval"), _2(2), _3(true), _4(false), _5(intinterval), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 702, 704), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("intinterval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(248), _1("intinterval"), _2(2), _3(true), _4(false), _5(intinterval), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 702, 704), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("intinterval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "isclosed", 1, - AddBuiltinFunc(_0(1430), _1("isclosed"), _2(1), _3(true), _4(false), _5(path_isclosed), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_isclosed"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1430), _1("isclosed"), _2(1), _3(true), _4(false), _5(path_isclosed), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_isclosed"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("path closed?"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "isempty", 1, - AddBuiltinFunc(_0(3850), _1("isempty"), _2(1), _3(true), _4(false), _5(range_empty), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_empty"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3850), _1("isempty"), _2(1), _3(true), _4(false), _5(range_empty), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_empty"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("is the range empty?"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "isfinite", 5, - AddBuiltinFunc(_0(275), _1("isfinite"), _2(1), _3(true), _4(false), _5(abstime_finite), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 702), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("abstime_finite"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1373), _1("isfinite"), _2(1), _3(true), _4(false), _5(date_finite), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_finite"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1389), _1("isfinite"), _2(1), _3(true), _4(false), _5(timestamp_finite), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_finite"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1390), _1("isfinite"), _2(1), _3(true), _4(false), _5(interval_finite), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_finite"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2048), _1("isfinite"), _2(1), _3(true), _4(false), _5(timestamp_finite), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_finite"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(275), _1("isfinite"), _2(1), _3(true), _4(false), _5(abstime_finite), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 702), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("abstime_finite"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1373), _1("isfinite"), _2(1), _3(true), _4(false), _5(date_finite), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_finite"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("finite date?"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1389), _1("isfinite"), _2(1), _3(true), _4(false), _5(timestamp_finite), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_finite"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("finite timestamp?"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1390), _1("isfinite"), _2(1), _3(true), _4(false), _5(interval_finite), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_finite"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("finite interval?"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2048), _1("isfinite"), _2(1), _3(true), _4(false), _5(timestamp_finite), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_finite"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("finite timestamp?"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ishorizontal", 3, - AddBuiltinFunc(_0(1407), _1("ishorizontal"), _2(2), _3(true), _4(false), _5(point_horiz), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("point_horiz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1411), _1("ishorizontal"), _2(1), _3(true), _4(false), _5(lseg_horizontal), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_horizontal"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1415), _1("ishorizontal"), _2(1), _3(true), _4(false), _5(line_horizontal), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 628), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("line_horizontal"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1407), _1("ishorizontal"), _2(2), _3(true), _4(false), _5(point_horiz), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("point_horiz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1411), _1("ishorizontal"), _2(1), _3(true), _4(false), _5(lseg_horizontal), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_horizontal"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1415), _1("ishorizontal"), _2(1), _3(true), _4(false), _5(line_horizontal), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 628), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("line_horizontal"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "isopen", 1, - AddBuiltinFunc(_0(1431), _1("isopen"), _2(1), _3(true), _4(false), _5(path_isopen), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_isopen"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1431), _1("isopen"), _2(1), _3(true), _4(false), _5(path_isopen), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_isopen"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("path open?"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "isparallel", 2, - AddBuiltinFunc(_0(1408), _1("isparallel"), _2(2), _3(true), _4(false), _5(lseg_parallel), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 601, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_parallel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1412), _1("isparallel"), _2(2), _3(true), _4(false), _5(line_parallel), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 628, 628), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("line_parallel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1408), _1("isparallel"), _2(2), _3(true), _4(false), _5(lseg_parallel), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 601, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_parallel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1412), _1("isparallel"), _2(2), _3(true), _4(false), _5(line_parallel), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 628, 628), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("line_parallel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "isperp", 2, - AddBuiltinFunc(_0(1409), _1("isperp"), _2(2), _3(true), _4(false), _5(lseg_perp), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 601, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_perp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1413), _1("isperp"), _2(2), _3(true), _4(false), _5(line_perp), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 628, 628), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("line_perp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1409), _1("isperp"), _2(2), _3(true), _4(false), _5(lseg_perp), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 601, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_perp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1413), _1("isperp"), _2(2), _3(true), _4(false), _5(line_perp), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 628, 628), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("line_perp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "isubmit_on_nodes", 1, - AddBuiltinFunc(_0(5718), _1("isubmit_on_nodes"), _2(4), _3(false), _4(false), _5(isubmit_job_on_nodes), _6(23), _7(PG_PKG_SERVICE_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(6, 20, 19, 19, 25, 1114, 25), _21(NULL), _22(NULL), _23(6, "job", "node_name", "database", "what", "next_date", "job_interval"), _24(NULL), _25("isubmit_job_on_nodes"), _26(NULL), _27(NULL), _28(NULL), _29(2, 2, 3), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5718), _1("isubmit_on_nodes"), _2(4), _3(false), _4(false), _5(isubmit_job_on_nodes), _6(23), _7(PG_PKG_SERVICE_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(6, 20, 19, 19, 25, 1114, 25), _21(NULL), _22(NULL), _23(6, "job", "node_name", "database", "what", "next_date", "job_interval"), _24(NULL), _25("isubmit_job_on_nodes"), _26(NULL), _27(NULL), _28(NULL), _29(2, 2, 3), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "isvertical", 3, - AddBuiltinFunc(_0(1406), _1("isvertical"), _2(2), _3(true), _4(false), _5(point_vert), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("point_vert"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1410), _1("isvertical"), _2(1), _3(true), _4(false), _5(lseg_vertical), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_vertical"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1414), _1("isvertical"), _2(1), _3(true), _4(false), _5(line_vertical), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 628), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("line_vertical"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1406), _1("isvertical"), _2(2), _3(true), _4(false), _5(point_vert), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("point_vert"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1410), _1("isvertical"), _2(1), _3(true), _4(false), _5(lseg_vertical), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_vertical"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1414), _1("isvertical"), _2(1), _3(true), _4(false), _5(line_vertical), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 628), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("line_vertical"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "job_cancel", 1, - AddBuiltinFunc(_0(4800), _1("job_cancel"), _2(1), _3(false), _4(false), _5(job_cancel), _6(2278), _7(PG_PKG_SERVICE_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("job_cancel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4800), _1("job_cancel"), _2(1), _3(false), _4(false), _5(job_cancel), _6(2278), _7(PG_PKG_SERVICE_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("job_cancel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "job_finish", 1, - AddBuiltinFunc(_0(4801), _1("job_finish"), _2(3), _3(false), _4(false), _5(job_finish), _6(2278), _7(PG_PKG_SERVICE_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(1), _20(3, 20, 16, 1114), _21(NULL), _22(NULL), _23(3, "id", "finished", "next_time"), _24("({FUNCEXPR :funcid 7777 :funcresulttype 1114 :funcretset false :funcformat 0 :funccollid 0 :inputcollid 0 :args <> :location 80799})"), _25("job_finish"), _26(NULL), _27(NULL), _28(NULL), _29(1, 2), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4801), _1("job_finish"), _2(3), _3(false), _4(false), _5(job_finish), _6(2278), _7(PG_PKG_SERVICE_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(1), _20(3, 20, 16, 1114), _21(NULL), _22(NULL), _23(3, "id", "finished", "next_time"), _24("({FUNCEXPR :funcid 7777 :funcresulttype 1114 :funcretset false :funcformat 0 :funccollid 0 :inputcollid 0 :args <> :location 80799})"), _25("job_finish"), _26(NULL), _27(NULL), _28(NULL), _29(1, 2), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "job_submit", 1, - AddBuiltinFunc(_0(4802), _1("job_submit"), _2(4), _3(false), _4(false), _5(job_submit), _6(23), _7(PG_PKG_SERVICE_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(2), _20(4, 20, 25, 1114, 25), _21(5, 20, 25, 1114, 25, 23), _22(5, 'i', 'i', 'i', 'i', 'o'), _23(5, "id", "content", "next_time", "interval_time", "job"), _24("({FUNCEXPR :funcid 7777 :funcresulttype 1114 :funcretset false :funcformat 0 :funccollid 0 :inputcollid 0 :args <> :location 80589} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :ismaxvalue false :location 80624 :constvalue 8 [ 32 0 0 0 110 117 108 108 ] :cursor_data :row_count 0 :cur_dno 0 :is_open false :found false :not_found false :null_open false :null_fetch false})"), _25("job_submit"), _26(NULL), _27(NULL), _28(NULL), _29(2, 2, 3), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4802), _1("job_submit"), _2(4), _3(false), _4(false), _5(job_submit), _6(23), _7(PG_PKG_SERVICE_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(2), _20(4, 20, 25, 1114, 25), _21(5, 20, 25, 1114, 25, 23), _22(5, 'i', 'i', 'i', 'i', 'o'), _23(5, "id", "content", "next_time", "interval_time", "job"), _24("({FUNCEXPR :funcid 7777 :funcresulttype 1114 :funcretset false :funcformat 0 :funccollid 0 :inputcollid 0 :args <> :location 80589} {CONST :consttype 25 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :ismaxvalue false :location 80624 :constvalue 8 [ 32 0 0 0 110 117 108 108 ] :cursor_data :row_count 0 :cur_dno 0 :is_open false :found false :not_found false :null_open false :null_fetch false})"), _25("job_submit"), _26(NULL), _27(NULL), _28(NULL), _29(2, 2, 3), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "job_update", 1, - AddBuiltinFunc(_0(4803), _1("job_update"), _2(4), _3(false), _4(false), _5(job_update), _6(2278), _7(PG_PKG_SERVICE_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 20, 1114, 25, 25), _21(NULL), _22(NULL), _23(4, "id", "next_time", "interval_time", "content"), _24(NULL), _25("job_update"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4803), _1("job_update"), _2(4), _3(false), _4(false), _5(job_update), _6(2278), _7(PG_PKG_SERVICE_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 20, 1114, 25, 25), _21(NULL), _22(NULL), _23(4, "id", "next_time", "interval_time", "content"), _24(NULL), _25("job_update"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "json_agg", 1, - AddBuiltinFunc(_0(3124), _1("json_agg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2283), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3124), _1("json_agg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2283), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "json_agg_finalfn", 1, - AddBuiltinFunc(_0(3125), _1("json_agg_finalfn"), _2(1), _3(false), _4(false), _5(json_agg_finalfn), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_agg_finalfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3125), _1("json_agg_finalfn"), _2(1), _3(false), _4(false), _5(json_agg_finalfn), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_agg_finalfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "json_agg_transfn", 1, - AddBuiltinFunc(_0(3126), _1("json_agg_transfn"), _2(2), _3(false), _4(false), _5(json_agg_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2283), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_agg_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3126), _1("json_agg_transfn"), _2(2), _3(false), _4(false), _5(json_agg_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2283), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_agg_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "json_array_element", 1, - AddBuiltinFunc(_0(3949), _1("json_array_element"), _2(2), _3(true), _4(false), _5(json_array_element), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 114, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_array_element"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3949), _1("json_array_element"), _2(2), _3(true), _4(false), _5(json_array_element), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 114, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_array_element"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "json_array_element_text", 1, - AddBuiltinFunc(_0(3079), _1("json_array_element_text"), _2(2), _3(true), _4(false), _5(json_array_element_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 114, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_array_element_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3079), _1("json_array_element_text"), _2(2), _3(true), _4(false), _5(json_array_element_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 114, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_array_element_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "json_array_elements", 1, - AddBuiltinFunc(_0(3549), _1("json_array_elements"), _2(1), _3(true), _4(true), _5(json_array_elements), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 114), _21(2, 114, 114), _22(2, 'i', 'o'), _23(2, "from_json", "value"), _24(NULL), _25("json_array_elements"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3549), _1("json_array_elements"), _2(1), _3(true), _4(true), _5(json_array_elements), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 114), _21(2, 114, 114), _22(2, 'i', 'o'), _23(2, "from_json", "value"), _24(NULL), _25("json_array_elements"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "json_array_elements_text", 1, - AddBuiltinFunc(_0(3127), _1("json_array_elements_text"), _2(1), _3(true), _4(true), _5(json_array_elements_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 114), _21(2, 114, 25), _22(2, 'i', 'o'), _23(2, "from_json", "value"), _24(NULL), _25("json_array_elements_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3127), _1("json_array_elements_text"), _2(1), _3(true), _4(true), _5(json_array_elements_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 114), _21(2, 114, 25), _22(2, 'i', 'o'), _23(2, "from_json", "value"), _24(NULL), _25("json_array_elements_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "json_array_length", 1, - AddBuiltinFunc(_0(3128), _1("json_array_length"), _2(1), _3(true), _4(false), _5(json_array_length), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_array_length"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3128), _1("json_array_length"), _2(1), _3(true), _4(false), _5(json_array_length), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_array_length"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "json_build_array", 2, - AddBuiltinFunc(_0(3238), _1("json_build_array"), _2(0), _3(false), _4(false), _5(json_build_array), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_build_array_noargs"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(3239), _1("json_build_array"), _2(1), _3(false), _4(false), _5(json_build_array), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(2276), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2276), _21(1, 2276), _22(1, 'v'), _23(NULL), _24(NULL), _25("json_build_array"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3238), _1("json_build_array"), _2(0), _3(false), _4(false), _5(json_build_array), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_build_array_noargs"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3239), _1("json_build_array"), _2(1), _3(false), _4(false), _5(json_build_array), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(2276), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2276), _21(1, 2276), _22(1, 'v'), _23(NULL), _24(NULL), _25("json_build_array"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "json_build_object", 2, - AddBuiltinFunc(_0(3260), _1("json_build_object"), _2(0), _3(false), _4(false), _5(json_build_object), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_build_object_noargs"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(3261), _1("json_build_object"), _2(1), _3(false), _4(false), _5(json_build_object), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(2276), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2276), _21(1, 2276), _22(1, 'v'), _23(NULL), _24(NULL), _25("json_build_object"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3260), _1("json_build_object"), _2(0), _3(false), _4(false), _5(json_build_object), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_build_object_noargs"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3261), _1("json_build_object"), _2(1), _3(false), _4(false), _5(json_build_object), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(2276), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2276), _21(1, 2276), _22(1, 'v'), _23(NULL), _24(NULL), _25("json_build_object"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "json_each", 1, - AddBuiltinFunc(_0(3258), _1("json_each"), _2(1), _3(true), _4(true), _5(json_each), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 114), _21(3, 114, 25, 114), _22(3, 'i', 'o', 'o'), _23(3, "from_json", "key", "value"), _24(NULL), _25("json_each"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3258), _1("json_each"), _2(1), _3(true), _4(true), _5(json_each), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 114), _21(3, 114, 25, 114), _22(3, 'i', 'o', 'o'), _23(3, "from_json", "key", "value"), _24(NULL), _25("json_each"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "json_each_text", 1, - AddBuiltinFunc(_0(3259), _1("json_each_text"), _2(1), _3(true), _4(true), _5(json_each_text), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 114), _21(3, 114, 25, 25), _22(3, 'i', 'o', 'o'), _23(3, "from_json", "key", "value"), _24(NULL), _25("json_each_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3259), _1("json_each_text"), _2(1), _3(true), _4(true), _5(json_each_text), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 114), _21(3, 114, 25, 25), _22(3, 'i', 'o', 'o'), _23(3, "from_json", "key", "value"), _24(NULL), _25("json_each_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "json_extract_path", 1, - AddBuiltinFunc(_0(3262), _1("json_extract_path"), _2(2), _3(true), _4(false), _5(json_extract_path), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(25), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 114, 1009), _21(2, 114, 1009), _22(2, 'i', 'v'), _23(NULL), _24(NULL), _25("json_extract_path"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3262), _1("json_extract_path"), _2(2), _3(true), _4(false), _5(json_extract_path), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(25), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 114, 1009), _21(2, 114, 1009), _22(2, 'i', 'v'), _23(NULL), _24(NULL), _25("json_extract_path"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "json_extract_path_op", 1, - AddBuiltinFunc(_0(3263), _1("json_extract_path_op"), _2(2), _3(true), _4(false), _5(json_extract_path), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 114, 1009), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_extract_path"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3263), _1("json_extract_path_op"), _2(2), _3(true), _4(false), _5(json_extract_path), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 114, 1009), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_extract_path"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "json_extract_path_text", 1, - AddBuiltinFunc(_0(3264), _1("json_extract_path_text"), _2(2), _3(true), _4(false), _5(json_extract_path_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(25), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 114, 1009), _21(2, 114, 1009), _22(2, 'i', 'v'), _23(NULL), _24(NULL), _25("json_extract_path_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3264), _1("json_extract_path_text"), _2(2), _3(true), _4(false), _5(json_extract_path_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(25), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 114, 1009), _21(2, 114, 1009), _22(2, 'i', 'v'), _23(NULL), _24(NULL), _25("json_extract_path_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "json_extract_path_text_op", 1, - AddBuiltinFunc(_0(3318), _1("json_extract_path_text_op"), _2(2), _3(true), _4(false), _5(json_extract_path_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 114, 1009), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_extract_path_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3318), _1("json_extract_path_text_op"), _2(2), _3(true), _4(false), _5(json_extract_path_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 114, 1009), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_extract_path_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "json_in", 1, - AddBuiltinFunc(_0(321), _1("json_in"), _2(1), _3(true), _4(false), _5(json_in), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(321), _1("json_in"), _2(1), _3(true), _4(false), _5(json_in), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "json_object", 2, - AddBuiltinFunc(_0(3401), _1("json_object"), _2(2), _3(true), _4(false), _5(json_object_two_arg), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1009, 1009), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_object_two_arg"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(3402), _1("json_object"), _2(1), _3(true), _4(false), _5(json_object), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1009), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_object"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3401), _1("json_object"), _2(2), _3(true), _4(false), _5(json_object_two_arg), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1009, 1009), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_object_two_arg"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3402), _1("json_object"), _2(1), _3(true), _4(false), _5(json_object), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1009), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_object"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "json_object_agg", 1, - AddBuiltinFunc(_0(3403), _1("json_object_agg"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2276, 2276), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3403), _1("json_object_agg"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2276, 2276), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "json_object_agg_finalfn", 1, - AddBuiltinFunc(_0(3404), _1("json_object_agg_finalfn"), _2(1), _3(false), _4(false), _5(json_object_agg_finalfn), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_object_agg_finalfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3404), _1("json_object_agg_finalfn"), _2(1), _3(false), _4(false), _5(json_object_agg_finalfn), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_object_agg_finalfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "json_object_agg_transfn", 1, - AddBuiltinFunc(_0(3405), _1("json_object_agg_transfn"), _2(3), _3(false), _4(false), _5(json_object_agg_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 2276, 2276), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_object_agg_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3405), _1("json_object_agg_transfn"), _2(3), _3(false), _4(false), _5(json_object_agg_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 2276, 2276), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_object_agg_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "json_object_field", 1, - AddBuiltinFunc(_0(3406), _1("json_object_field"), _2(2), _3(true), _4(false), _5(json_object_field), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 114, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_object_field"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3406), _1("json_object_field"), _2(2), _3(true), _4(false), _5(json_object_field), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 114, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_object_field"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "json_object_field_text", 1, - AddBuiltinFunc(_0(3948), _1("json_object_field_text"), _2(2), _3(true), _4(false), _5(json_object_field_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 114, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_object_field_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3948), _1("json_object_field_text"), _2(2), _3(true), _4(false), _5(json_object_field_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 114, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_object_field_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "json_object_keys", 1, - AddBuiltinFunc(_0(3407), _1("json_object_keys"), _2(1), _3(true), _4(true), _5(json_object_keys), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_object_keys"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3407), _1("json_object_keys"), _2(1), _3(true), _4(true), _5(json_object_keys), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_object_keys"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "json_out", 1, - AddBuiltinFunc(_0(322), _1("json_out"), _2(1), _3(true), _4(false), _5(json_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(322), _1("json_out"), _2(1), _3(true), _4(false), _5(json_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "json_populate_record", 1, - AddBuiltinFunc(_0(3408), _1("json_populate_record"), _2(3), _3(false), _4(false), _5(json_populate_record), _6(2283), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(1), _20(3, 2283, 114, 16), _21(NULL), _22(NULL), _23(NULL), _24("({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :ismaxvalue false :location 72803 :constvalue 1 [ 0 0 0 0 0 0 0 0 ] :cursor_data :row_count 0 :cur_dno 0 :is_open false :found false :not_found false :null_open false :null_fetch false})"), _25("json_populate_record"), _26(NULL), _27(NULL), _28(NULL), _29(1, 2), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3408), _1("json_populate_record"), _2(3), _3(false), _4(false), _5(json_populate_record), _6(2283), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(1), _20(3, 2283, 114, 16), _21(NULL), _22(NULL), _23(NULL), _24("({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :ismaxvalue false :location 72803 :constvalue 1 [ 0 0 0 0 0 0 0 0 ] :cursor_data :row_count 0 :cur_dno 0 :is_open false :found false :not_found false :null_open false :null_fetch false})"), _25("json_populate_record"), _26(NULL), _27(NULL), _28(NULL), _29(1, 2), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "json_populate_recordset", 1, - AddBuiltinFunc(_0(3409), _1("json_populate_recordset"), _2(3), _3(false), _4(true), _5(json_populate_recordset), _6(2283), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(1), _20(3, 2283, 114, 16), _21(NULL), _22(NULL), _23(NULL), _24("({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :ismaxvalue false :location 72803 :constvalue 1 [ 0 0 0 0 0 0 0 0 ] :cursor_data :row_count 0 :cur_dno 0 :is_open false :found false :not_found false :null_open false :null_fetch false})"), _25("json_populate_recordset"), _26(NULL), _27(NULL), _28(NULL), _29(1, 2), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3409), _1("json_populate_recordset"), _2(3), _3(false), _4(true), _5(json_populate_recordset), _6(2283), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(1), _20(3, 2283, 114, 16), _21(NULL), _22(NULL), _23(NULL), _24("({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :ismaxvalue false :location 72803 :constvalue 1 [ 0 0 0 0 0 0 0 0 ] :cursor_data :row_count 0 :cur_dno 0 :is_open false :found false :not_found false :null_open false :null_fetch false})"), _25("json_populate_recordset"), _26(NULL), _27(NULL), _28(NULL), _29(1, 2), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "json_to_record", 1, - AddBuiltinFunc(_0(3410), _1("json_to_record"), _2(2), _3(false), _4(false), _5(json_to_record), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 114, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_to_record"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3410), _1("json_to_record"), _2(2), _3(false), _4(false), _5(json_to_record), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 114, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_to_record"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "json_to_recordset", 1, - AddBuiltinFunc(_0(3411), _1("json_to_recordset"), _2(2), _3(false), _4(true), _5(json_to_recordset), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 114, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_to_recordset"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3411), _1("json_to_recordset"), _2(2), _3(false), _4(true), _5(json_to_recordset), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 114, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_to_recordset"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "json_typeof", 1, - AddBuiltinFunc(_0(3270), _1("json_typeof"), _2(1), _3(true), _4(false), _5(json_typeof), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_typeof"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3270), _1("json_typeof"), _2(1), _3(true), _4(false), _5(json_typeof), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_typeof"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "json_recv", 1, - AddBuiltinFunc(_0(323), _1("json_recv"), _2(1), _3(true), _4(false), _5(json_recv), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(323), _1("json_recv"), _2(1), _3(true), _4(false), _5(json_recv), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "json_send", 1, - AddBuiltinFunc(_0(324), _1("json_send"), _2(1), _3(true), _4(false), _5(json_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(324), _1("json_send"), _2(1), _3(true), _4(false), _5(json_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("json_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "jsonb_array_element", 1, - AddBuiltinFunc(_0(3412), _1("jsonb_array_element"), _2(2), _3(true), _4(false), _5(jsonb_array_element), _6(3802), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3802, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_array_element"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3412), _1("jsonb_array_element"), _2(2), _3(true), _4(false), _5(jsonb_array_element), _6(3802), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3802, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_array_element"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "jsonb_array_element_text", 1, - AddBuiltinFunc(_0(3413), _1("jsonb_array_element_text"), _2(2), _3(true), _4(false), _5(jsonb_array_element_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3802, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_array_element_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3413), _1("jsonb_array_element_text"), _2(2), _3(true), _4(false), _5(jsonb_array_element_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3802, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_array_element_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "jsonb_array_elements", 1, - AddBuiltinFunc(_0(3414), _1("jsonb_array_elements"), _2(1), _3(true), _4(true), _5(jsonb_array_elements), _6(3802), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3802), _21(2, 3802, 3802), _22(2, 'i', 'o'), _23(2, "from_json", "value"), _24(NULL), _25("jsonb_array_elements"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3414), _1("jsonb_array_elements"), _2(1), _3(true), _4(true), _5(jsonb_array_elements), _6(3802), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3802), _21(2, 3802, 3802), _22(2, 'i', 'o'), _23(2, "from_json", "value"), _24(NULL), _25("jsonb_array_elements"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "jsonb_array_elements_text", 1, - AddBuiltinFunc(_0(3415), _1("jsonb_array_elements_text"), _2(1), _3(true), _4(true), _5(jsonb_array_elements_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3802), _21(2, 3802, 25), _22(2, 'i', 'o'), _23(2, "from_json", "value"), _24(NULL), _25("jsonb_array_elements_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3415), _1("jsonb_array_elements_text"), _2(1), _3(true), _4(true), _5(jsonb_array_elements_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3802), _21(2, 3802, 25), _22(2, 'i', 'o'), _23(2, "from_json", "value"), _24(NULL), _25("jsonb_array_elements_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "jsonb_array_length", 1, - AddBuiltinFunc(_0(3416), _1("jsonb_array_length"), _2(1), _3(true), _4(false), _5(jsonb_array_length), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3802), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_array_length"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3416), _1("jsonb_array_length"), _2(1), _3(true), _4(false), _5(jsonb_array_length), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3802), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_array_length"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "jsonb_cmp", 1, - AddBuiltinFunc(_0(3417), _1("jsonb_cmp"), _2(2), _3(true), _4(false), _5(jsonb_cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3802, 3802), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3417), _1("jsonb_cmp"), _2(2), _3(true), _4(false), _5(jsonb_cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3802, 3802), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "jsonb_contained", 1, - AddBuiltinFunc(_0(4050), _1("jsonb_contained"), _2(2), _3(true), _4(false), _5(jsonb_contained), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3802, 3802), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_contained"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(4050), _1("jsonb_contained"), _2(2), _3(true), _4(false), _5(jsonb_contained), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3802, 3802), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_contained"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "jsonb_contains", 1, - AddBuiltinFunc(_0(3418), _1("jsonb_contains"), _2(2), _3(true), _4(false), _5(jsonb_contains), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3802, 3802), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_contains"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3418), _1("jsonb_contains"), _2(2), _3(true), _4(false), _5(jsonb_contains), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3802, 3802), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_contains"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "jsonb_each", 1, - AddBuiltinFunc(_0(3419), _1("jsonb_each"), _2(1), _3(true), _4(true), _5(jsonb_each), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3802), _21(3, 3802, 25, 3802), _22(3, 'i', 'o', 'o'), _23(3, "from_json", "key", "value"), _24(NULL), _25("jsonb_each"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3419), _1("jsonb_each"), _2(1), _3(true), _4(true), _5(jsonb_each), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3802), _21(3, 3802, 25, 3802), _22(3, 'i', 'o', 'o'), _23(3, "from_json", "key", "value"), _24(NULL), _25("jsonb_each"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "jsonb_each_text", 1, - AddBuiltinFunc(_0(3420), _1("jsonb_each_text"), _2(1), _3(true), _4(true), _5(jsonb_each_text), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3802), _21(3, 3802, 25, 25), _22(3, 'i', 'o', 'o'), _23(3, "from_json", "key", "value"), _24(NULL), _25("jsonb_each_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3420), _1("jsonb_each_text"), _2(1), _3(true), _4(true), _5(jsonb_each_text), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3802), _21(3, 3802, 25, 25), _22(3, 'i', 'o', 'o'), _23(3, "from_json", "key", "value"), _24(NULL), _25("jsonb_each_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "jsonb_eq", 1, - AddBuiltinFunc(_0(3421), _1("jsonb_eq"), _2(2), _3(true), _4(false), _5(jsonb_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3802, 3802), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3421), _1("jsonb_eq"), _2(2), _3(true), _4(false), _5(jsonb_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3802, 3802), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "jsonb_exists", 1, - AddBuiltinFunc(_0(3422), _1("jsonb_exists"), _2(2), _3(true), _4(false), _5(jsonb_exists), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3802, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_exists"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3422), _1("jsonb_exists"), _2(2), _3(true), _4(false), _5(jsonb_exists), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3802, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_exists"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "jsonb_exists_all", 1, - AddBuiltinFunc(_0(3423), _1("jsonb_exists_all"), _2(2), _3(true), _4(false), _5(jsonb_exists_all), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3802, 1009), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_exists_all"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3423), _1("jsonb_exists_all"), _2(2), _3(true), _4(false), _5(jsonb_exists_all), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3802, 1009), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_exists_all"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "jsonb_exists_any", 1, - AddBuiltinFunc(_0(3424), _1("jsonb_exists_any"), _2(2), _3(true), _4(false), _5(jsonb_exists_any), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3802, 1009), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_exists_any"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3424), _1("jsonb_exists_any"), _2(2), _3(true), _4(false), _5(jsonb_exists_any), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3802, 1009), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_exists_any"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "jsonb_extract_path", 1, - AddBuiltinFunc(_0(3425), _1("jsonb_extract_path"), _2(2), _3(true), _4(false), _5(jsonb_extract_path), _6(3802), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(25), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3802, 1009), _21(2, 3802, 1009), _22(2, 'i', 'v'), _23(NULL), _24(NULL), _25("jsonb_extract_path"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3425), _1("jsonb_extract_path"), _2(2), _3(true), _4(false), _5(jsonb_extract_path), _6(3802), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(25), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3802, 1009), _21(2, 3802, 1009), _22(2, 'i', 'v'), _23(NULL), _24(NULL), _25("jsonb_extract_path"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "jsonb_extract_path_op", 1, - AddBuiltinFunc(_0(3319), _1("jsonb_extract_path_op"), _2(2), _3(true), _4(false), _5(jsonb_extract_path), _6(3802), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3802, 1009), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_extract_path"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3319), _1("jsonb_extract_path_op"), _2(2), _3(true), _4(false), _5(jsonb_extract_path), _6(3802), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3802, 1009), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_extract_path"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "jsonb_extract_path_text", 1, - AddBuiltinFunc(_0(3426), _1("jsonb_extract_path_text"), _2(2), _3(true), _4(false), _5(jsonb_extract_path_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(25), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3802, 1009), _21(2, 3802, 1009), _22(2, 'i', 'v'), _23(NULL), _24(NULL), _25("jsonb_extract_path_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3426), _1("jsonb_extract_path_text"), _2(2), _3(true), _4(false), _5(jsonb_extract_path_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(25), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3802, 1009), _21(2, 3802, 1009), _22(2, 'i', 'v'), _23(NULL), _24(NULL), _25("jsonb_extract_path_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "jsonb_extract_path_text_op", 1, - AddBuiltinFunc(_0(3427), _1("jsonb_extract_path_text_op"), _2(2), _3(true), _4(false), _5(jsonb_extract_path_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3802, 1009), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_extract_path_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3427), _1("jsonb_extract_path_text_op"), _2(2), _3(true), _4(false), _5(jsonb_extract_path_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3802, 1009), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_extract_path_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "jsonb_ge", 1, - AddBuiltinFunc(_0(3428), _1("jsonb_ge"), _2(2), _3(true), _4(false), _5(jsonb_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3802, 3802), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3428), _1("jsonb_ge"), _2(2), _3(true), _4(false), _5(jsonb_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3802, 3802), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "jsonb_gt", 1, - AddBuiltinFunc(_0(3429), _1("jsonb_gt"), _2(2), _3(true), _4(false), _5(jsonb_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3802, 3802), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3429), _1("jsonb_gt"), _2(2), _3(true), _4(false), _5(jsonb_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3802, 3802), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "jsonb_hash", 1, - AddBuiltinFunc(_0(3430), _1("jsonb_hash"), _2(1), _3(true), _4(false), _5(jsonb_hash), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3802), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_hash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3430), _1("jsonb_hash"), _2(1), _3(true), _4(false), _5(jsonb_hash), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3802), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_hash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "jsonb_in", 1, - AddBuiltinFunc(_0(3806), _1("jsonb_in"), _2(1), _3(true), _4(false), _5(jsonb_in), _6(3802), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3806), _1("jsonb_in"), _2(1), _3(true), _4(false), _5(jsonb_in), _6(3802), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "jsonb_le", 1, - AddBuiltinFunc(_0(3431), _1("jsonb_le"), _2(2), _3(true), _4(false), _5(jsonb_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3802, 3802), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3431), _1("jsonb_le"), _2(2), _3(true), _4(false), _5(jsonb_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3802, 3802), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "jsonb_lt", 1, - AddBuiltinFunc(_0(4039), _1("jsonb_lt"), _2(2), _3(true), _4(false), _5(jsonb_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3802, 3802), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(4039), _1("jsonb_lt"), _2(2), _3(true), _4(false), _5(jsonb_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3802, 3802), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "jsonb_ne", 1, - AddBuiltinFunc(_0(3432), _1("jsonb_ne"), _2(2), _3(true), _4(false), _5(jsonb_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3802, 3802), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3432), _1("jsonb_ne"), _2(2), _3(true), _4(false), _5(jsonb_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3802, 3802), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "jsonb_object_field", 1, - AddBuiltinFunc(_0(3433), _1("jsonb_object_field"), _2(2), _3(true), _4(false), _5(jsonb_object_field), _6(3802), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3802, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_object_field"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3433), _1("jsonb_object_field"), _2(2), _3(true), _4(false), _5(jsonb_object_field), _6(3802), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3802, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_object_field"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "jsonb_object_field_text", 1, - AddBuiltinFunc(_0(3434), _1("jsonb_object_field_text"), _2(2), _3(true), _4(false), _5(jsonb_object_field_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3802, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_object_field_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3434), _1("jsonb_object_field_text"), _2(2), _3(true), _4(false), _5(jsonb_object_field_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3802, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_object_field_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "jsonb_object_keys", 1, - AddBuiltinFunc(_0(3435), _1("jsonb_object_keys"), _2(1), _3(true), _4(true), _5(jsonb_object_keys), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3802), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_object_keys"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3435), _1("jsonb_object_keys"), _2(1), _3(true), _4(true), _5(jsonb_object_keys), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3802), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_object_keys"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "jsonb_out", 1, - AddBuiltinFunc(_0(3436), _1("jsonb_out"), _2(1), _3(true), _4(false), _5(jsonb_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3802), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3436), _1("jsonb_out"), _2(1), _3(true), _4(false), _5(jsonb_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3802), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "jsonb_populate_record", 1, - AddBuiltinFunc(_0(3437), _1("jsonb_populate_record"), _2(3), _3(false), _4(false), _5(jsonb_populate_record), _6(2283), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(1), _20(3, 2283, 3802, 16), _21(NULL), _22(NULL), _23(NULL), _24("({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :ismaxvalue false :location 72803 :constvalue 1 [ 0 0 0 0 0 0 0 0 ] :cursor_data :row_count 0 :cur_dno 0 :is_open false :found false :not_found false :null_open false :null_fetch false})"), _25("jsonb_populate_record"), _26(NULL), _27(NULL), _28(NULL), _29(1, 2), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3437), _1("jsonb_populate_record"), _2(3), _3(false), _4(false), _5(jsonb_populate_record), _6(2283), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(1), _20(3, 2283, 3802, 16), _21(NULL), _22(NULL), _23(NULL), _24("({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :ismaxvalue false :location 72803 :constvalue 1 [ 0 0 0 0 0 0 0 0 ] :cursor_data :row_count 0 :cur_dno 0 :is_open false :found false :not_found false :null_open false :null_fetch false})"), _25("jsonb_populate_record"), _26(NULL), _27(NULL), _28(NULL), _29(1, 2), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "jsonb_populate_recordset", 1, - AddBuiltinFunc(_0(3438), _1("jsonb_populate_recordset"), _2(3), _3(false), _4(true), _5(jsonb_populate_recordset), _6(2283), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(1), _20(3, 2283, 3802, 16), _21(NULL), _22(NULL), _23(NULL), _24("({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :ismaxvalue false :location 72803 :constvalue 1 [ 0 0 0 0 0 0 0 0 ] :cursor_data :row_count 0 :cur_dno 0 :is_open false :found false :not_found false :null_open false :null_fetch false})"), _25("jsonb_populate_recordset"), _26(NULL), _27(NULL), _28(NULL), _29(1, 2), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3438), _1("jsonb_populate_recordset"), _2(3), _3(false), _4(true), _5(jsonb_populate_recordset), _6(2283), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(1), _20(3, 2283, 3802, 16), _21(NULL), _22(NULL), _23(NULL), _24("({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :ismaxvalue false :location 72803 :constvalue 1 [ 0 0 0 0 0 0 0 0 ] :cursor_data :row_count 0 :cur_dno 0 :is_open false :found false :not_found false :null_open false :null_fetch false})"), _25("jsonb_populate_recordset"), _26(NULL), _27(NULL), _28(NULL), _29(1, 2), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "jsonb_recv", 1, - AddBuiltinFunc(_0(3443), _1("jsonb_recv"), _2(1), _3(true), _4(false), _5(jsonb_recv), _6(3802), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3443), _1("jsonb_recv"), _2(1), _3(true), _4(false), _5(jsonb_recv), _6(3802), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "jsonb_send", 1, - AddBuiltinFunc(_0(3444), _1("jsonb_send"), _2(1), _3(true), _4(false), _5(jsonb_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3802), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3444), _1("jsonb_send"), _2(1), _3(true), _4(false), _5(jsonb_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3802), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "jsonb_typeof", 1, - AddBuiltinFunc(_0(3445), _1("jsonb_typeof"), _2(1), _3(true), _4(false), _5(jsonb_typeof), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3802), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_typeof"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3445), _1("jsonb_typeof"), _2(1), _3(true), _4(false), _5(jsonb_typeof), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3802), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("jsonb_typeof"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "justify_days", 1, - AddBuiltinFunc(_0(1295), _1("justify_days"), _2(1), _3(true), _4(false), _5(interval_justify_days), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_justify_days"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1295), _1("justify_days"), _2(1), _3(true), _4(false), _5(interval_justify_days), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_justify_days"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("promote groups of 30 days to numbers of months"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "justify_hours", 1, - AddBuiltinFunc(_0(1175), _1("justify_hours"), _2(1), _3(true), _4(false), _5(interval_justify_hours), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_justify_hours"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1175), _1("justify_hours"), _2(1), _3(true), _4(false), _5(interval_justify_hours), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_justify_hours"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("promote groups of 24 hours to numbers of days"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "justify_interval", 1, - AddBuiltinFunc(_0(2711), _1("justify_interval"), _2(1), _3(true), _4(false), _5(interval_justify_interval), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_justify_interval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2711), _1("justify_interval"), _2(1), _3(true), _4(false), _5(interval_justify_interval), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_justify_interval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("promote groups of 24 hours to numbers of days and promote groups of 30 days to numbers of months"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "kill_snapshot", 1, - AddBuiltinFunc(_0(5714), _1("kill_snapshot"), _2(0), _3(true), _4(false), _5(kill_snapshot), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("kill_snapshot"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5714), _1("kill_snapshot"), _2(0), _3(true), _4(false), _5(kill_snapshot), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("kill_snapshot"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "lag", 3, - AddBuiltinFunc(_0(3106), _1("lag"), _2(1), _3(true), _4(false), _5(window_lag), _6(2283), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(true), _16(false), _17(false), _18('i'), _19(0), _20(1, 2283), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("window_lag"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3107), _1("lag"), _2(2), _3(true), _4(false), _5(window_lag_with_offset), _6(2283), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(true), _16(false), _17(false), _18('i'), _19(0), _20(2, 2283, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("window_lag_with_offset"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3108), _1("lag"), _2(3), _3(true), _4(false), _5(window_lag_with_offset_and_default), _6(2283), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(true), _16(false), _17(false), _18('i'), _19(0), _20(3, 2283, 23, 2283), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("window_lag_with_offset_and_default"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3106), _1("lag"), _2(1), _3(true), _4(false), _5(window_lag), _6(2283), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(true), _16(false), _17(false), _18('i'), _19(0), _20(1, 2283), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("window_lag"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("fetch the preceding row value"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3107), _1("lag"), _2(2), _3(true), _4(false), _5(window_lag_with_offset), _6(2283), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(true), _16(false), _17(false), _18('i'), _19(0), _20(2, 2283, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("window_lag_with_offset"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("fetch the Nth preceding row value"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3108), _1("lag"), _2(3), _3(true), _4(false), _5(window_lag_with_offset_and_default), _6(2283), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(true), _16(false), _17(false), _18('i'), _19(0), _20(3, 2283, 23, 2283), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("window_lag_with_offset_and_default"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("fetch the Nth preceding row value with default"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "language_handler_in", 1, - AddBuiltinFunc(_0(2302), _1("language_handler_in"), _2(1), _3(false), _4(false), _5(language_handler_in), _6(2280), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("language_handler_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2302), _1("language_handler_in"), _2(1), _3(false), _4(false), _5(language_handler_in), _6(2280), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("language_handler_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "language_handler_out", 1, - AddBuiltinFunc(_0(2303), _1("language_handler_out"), _2(1), _3(true), _4(false), _5(language_handler_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2280), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("language_handler_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "last", 1, - AddBuiltinFunc(_0(6561), _1("last"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(2283), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2283), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(2303), _1("language_handler_out"), _2(1), _3(true), _4(false), _5(language_handler_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2280), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("language_handler_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "last_day", 1, - AddBuiltinFunc(_0(4075), _1("last_day"), _2(1), _3(true), _4(false), _5(last_day), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("last_day"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "last_transition", 1, - AddBuiltinFunc(_0(6559), _1("last_transition"), _2(2), _3(true), _4(false), _5(last_transition), _6(2283), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2283, 2283), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("last_transition"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(4075), _1("last_day"), _2(1), _3(true), _4(false), _5(last_day), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("last_day"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "last_value", 1, - AddBuiltinFunc(_0(3113), _1("last_value"), _2(1), _3(true), _4(false), _5(window_last_value), _6(2283), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(true), _16(false), _17(false), _18('i'), _19(0), _20(1, 2283), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("window_last_value"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3113), _1("last_value"), _2(1), _3(true), _4(false), _5(window_last_value), _6(2283), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(true), _16(false), _17(false), _18('i'), _19(0), _20(1, 2283), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("window_last_value"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("fetch the last row value"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "lastval", 1, - AddBuiltinFunc(_0(LASTVALFUNCOID), _1("lastval"), _2(0), _3(true), _4(false), _5(lastval), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lastval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(LASTVALFUNCOID), _1("lastval"), _2(0), _3(true), _4(false), _5(lastval), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lastval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("current value from last used sequence"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "lead", 3, - AddBuiltinFunc(_0(3109), _1("lead"), _2(1), _3(true), _4(false), _5(window_lead), _6(2283), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(true), _16(false), _17(false), _18('i'), _19(0), _20(1, 2283), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("window_lead"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3110), _1("lead"), _2(2), _3(true), _4(false), _5(window_lead_with_offset), _6(2283), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(true), _16(false), _17(false), _18('i'), _19(0), _20(2, 2283, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("window_lead_with_offset"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3111), _1("lead"), _2(3), _3(true), _4(false), _5(window_lead_with_offset_and_default), _6(2283), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(true), _16(false), _17(false), _18('i'), _19(0), _20(3, 2283, 23, 2283), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("window_lead_with_offset_and_default"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3109), _1("lead"), _2(1), _3(true), _4(false), _5(window_lead), _6(2283), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(true), _16(false), _17(false), _18('i'), _19(0), _20(1, 2283), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("window_lead"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("fetch the following row value"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3110), _1("lead"), _2(2), _3(true), _4(false), _5(window_lead_with_offset), _6(2283), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(true), _16(false), _17(false), _18('i'), _19(0), _20(2, 2283, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("window_lead_with_offset"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("fetch the Nth following row value"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3111), _1("lead"), _2(3), _3(true), _4(false), _5(window_lead_with_offset_and_default), _6(2283), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(true), _16(false), _17(false), _18('i'), _19(0), _20(3, 2283, 23, 2283), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("window_lead_with_offset_and_default"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("fetch the Nth following row value with default"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ledger_gchain_archive", 1, - AddBuiltinFunc(_0(5684), _1("ledger_gchain_archive"), _2(0), _3(true), _4(false), _5(ledger_gchain_archive), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ledger_gchain_archive"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5684), _1("ledger_gchain_archive"), _2(0), _3(true), _4(false), _5(ledger_gchain_archive), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ledger_gchain_archive"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ledger_gchain_check", 1, - AddBuiltinFunc(_0(5682), _1("ledger_gchain_check"), _2(2), _3(true), _4(false), _5(ledger_gchain_check), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ledger_gchain_check"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5682), _1("ledger_gchain_check"), _2(2), _3(true), _4(false), _5(ledger_gchain_check), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ledger_gchain_check"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ledger_gchain_repair", 1, - AddBuiltinFunc(_0(5686), _1("ledger_gchain_repair"), _2(2), _3(true), _4(false), _5(ledger_gchain_repair), _6(5801), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ledger_gchain_repair"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5686), _1("ledger_gchain_repair"), _2(2), _3(true), _4(false), _5(ledger_gchain_repair), _6(5801), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ledger_gchain_repair"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ledger_hist_archive", 1, - AddBuiltinFunc(_0(5683), _1("ledger_hist_archive"), _2(2), _3(true), _4(false), _5(ledger_hist_archive), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ledger_hist_archive"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5683), _1("ledger_hist_archive"), _2(2), _3(true), _4(false), _5(ledger_hist_archive), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ledger_hist_archive"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ledger_hist_check", 1, - AddBuiltinFunc(_0(5722), _1("ledger_hist_check"), _2(2), _3(true), _4(false), _5(ledger_hist_check), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ledger_hist_check"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5722), _1("ledger_hist_check"), _2(2), _3(true), _4(false), _5(ledger_hist_check), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ledger_hist_check"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ledger_hist_repair", 1, - AddBuiltinFunc(_0(5685), _1("ledger_hist_repair"), _2(2), _3(true), _4(false), _5(ledger_hist_repair), _6(5801), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ledger_hist_repair"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5685), _1("ledger_hist_repair"), _2(2), _3(true), _4(false), _5(ledger_hist_repair), _6(5801), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ledger_hist_repair"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "left", 1, - AddBuiltinFunc(_0(3060), _1("left"), _2(2), _3(true), _4(false), _5(text_left), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_left"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3060), _1("left"), _2(2), _3(true), _4(false), _5(text_left), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_left"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("extract the first n characters"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "length", 8, - AddBuiltinFunc(_0(LENGTHFUNCOID), _1("length"), _2(1), _3(true), _4(false), _5(textlen), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textlen"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(BPLENFUNCOID), _1("length"), _2(1), _3(true), _4(false), _5(bpcharlen), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpcharlen"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1530), _1("length"), _2(1), _3(true), _4(false), _5(lseg_length), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_length"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1531), _1("length"), _2(1), _3(true), _4(false), _5(path_length), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_length"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1681), _1("length"), _2(1), _3(true), _4(false), _5(bitlength), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1560), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitlength"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1713), _1("length"), _2(2), _3(true), _4(false), _5(length_in_encoding), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 17, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("length_in_encoding"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2010), _1("length"), _2(1), _3(true), _4(false), _5(byteaoctetlen), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteaoctetlen"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3711), _1("length"), _2(1), _3(true), _4(false), _5(tsvector_length), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3614), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsvector_length"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(LENGTHFUNCOID), _1("length"), _2(1), _3(true), _4(false), _5(textlen), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textlen"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("character length"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(BPLENFUNCOID), _1("length"), _2(1), _3(true), _4(false), _5(bpcharlen), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpcharlen"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("character length"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1530), _1("length"), _2(1), _3(true), _4(false), _5(lseg_length), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_length"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("distance between endpoints"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1531), _1("length"), _2(1), _3(true), _4(false), _5(path_length), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_length"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("sum of path segments"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1681), _1("length"), _2(1), _3(true), _4(false), _5(bitlength), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1560), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitlength"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("bitstring length"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1713), _1("length"), _2(2), _3(true), _4(false), _5(length_in_encoding), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 17, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("length_in_encoding"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("length of string in specified encoding"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2010), _1("length"), _2(1), _3(true), _4(false), _5(byteaoctetlen), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteaoctetlen"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("octet length"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3711), _1("length"), _2(1), _3(true), _4(false), _5(tsvector_length), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3614), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsvector_length"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("number of lexemes"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "lengthb", 2, - AddBuiltinFunc(_0(TEXTOCTLENFUNCOID), _1("lengthb"), _2(1), _3(true), _4(false), _5(textoctetlen), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textoctetlen"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(BPOCTLENFUNCOID), _1("lengthb"), _2(1), _3(true), _4(false), _5(bpcharlenb), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpcharlenb"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TEXTOCTLENFUNCOID), _1("lengthb"), _2(1), _3(true), _4(false), _5(textoctetlen), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textoctetlen"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("octet length"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(BPOCTLENFUNCOID), _1("lengthb"), _2(1), _3(true), _4(false), _5(bpcharlenb), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpcharlenb"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "like", 3, - AddBuiltinFunc(_0(1569), _1("like"), _2(2), _3(true), _4(false), _5(textlike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textlike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1571), _1("like"), _2(2), _3(true), _4(false), _5(namelike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 19, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("namelike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2007), _1("like"), _2(2), _3(true), _4(false), _5(bytealike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 17, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bytealike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1569), _1("like"), _2(2), _3(true), _4(false), _5(textlike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textlike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("matches LIKE expression"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1571), _1("like"), _2(2), _3(true), _4(false), _5(namelike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 19, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("namelike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("matches LIKE expression"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2007), _1("like"), _2(2), _3(true), _4(false), _5(bytealike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 17, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bytealike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "like_escape", 2, - AddBuiltinFunc(_0(1637), _1("like_escape"), _2(2), _3(true), _4(false), _5(like_escape), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("like_escape"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2009), _1("like_escape"), _2(2), _3(true), _4(false), _5(like_escape_bytea), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 17, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("like_escape_bytea"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1637), _1("like_escape"), _2(2), _3(true), _4(false), _5(like_escape), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("like_escape"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert LIKE pattern to use backslash escapes"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2009), _1("like_escape"), _2(2), _3(true), _4(false), _5(like_escape_bytea), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 17, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("like_escape_bytea"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert LIKE pattern to use backslash escapes"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "likejoinsel", 1, - AddBuiltinFunc(_0(1825), _1("likejoinsel"), _2(5), _3(true), _4(false), _5(likejoinsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(5, 2281, 26, 2281, 21, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("likejoinsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1825), _1("likejoinsel"), _2(5), _3(true), _4(false), _5(likejoinsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(5, 2281, 26, 2281, 21, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("likejoinsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("join selectivity of LIKE"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "likesel", 1, - AddBuiltinFunc(_0(1819), _1("likesel"), _2(4), _3(true), _4(false), _5(likesel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 2281, 26, 2281, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("likesel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1819), _1("likesel"), _2(4), _3(true), _4(false), _5(likesel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 2281, 26, 2281, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("likesel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("restriction selectivity of LIKE"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "line", 1, - AddBuiltinFunc(_0(1493), _1("line"), _2(2), _3(true), _4(false), _5(line_construct_pp), _6(628), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("line_construct_pp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1493), _1("line"), _2(2), _3(true), _4(false), _5(line_construct_pp), _6(628), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("line_construct_pp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "line_distance", 1, - AddBuiltinFunc(_0(239), _1("line_distance"), _2(2), _3(true), _4(false), _5(line_distance), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 628, 628), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("line_distance"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(239), _1("line_distance"), _2(2), _3(true), _4(false), _5(line_distance), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 628, 628), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("line_distance"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "line_eq", 1, - AddBuiltinFunc(_0(1492), _1("line_eq"), _2(2), _3(true), _4(false), _5(line_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 628, 628), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("line_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1492), _1("line_eq"), _2(2), _3(true), _4(false), _5(line_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 628, 628), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("line_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "line_horizontal", 1, - AddBuiltinFunc(_0(1499), _1("line_horizontal"), _2(1), _3(true), _4(false), _5(line_horizontal), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 628), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("line_horizontal"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1499), _1("line_horizontal"), _2(1), _3(true), _4(false), _5(line_horizontal), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 628), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("line_horizontal"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "line_in", 1, - AddBuiltinFunc(_0(1490), _1("line_in"), _2(1), _3(true), _4(false), _5(line_in), _6(628), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("line_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1490), _1("line_in"), _2(1), _3(true), _4(false), _5(line_in), _6(628), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("line_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "line_interpt", 1, - AddBuiltinFunc(_0(1494), _1("line_interpt"), _2(2), _3(true), _4(false), _5(line_interpt), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 628, 628), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("line_interpt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1494), _1("line_interpt"), _2(2), _3(true), _4(false), _5(line_interpt), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 628, 628), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("line_interpt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "line_intersect", 1, - AddBuiltinFunc(_0(1495), _1("line_intersect"), _2(2), _3(true), _4(false), _5(line_intersect), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 628, 628), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("line_intersect"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1495), _1("line_intersect"), _2(2), _3(true), _4(false), _5(line_intersect), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 628, 628), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("line_intersect"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "line_out", 1, - AddBuiltinFunc(_0(1491), _1("line_out"), _2(1), _3(true), _4(false), _5(line_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 628), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("line_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1491), _1("line_out"), _2(1), _3(true), _4(false), _5(line_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 628), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("line_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "line_parallel", 1, - AddBuiltinFunc(_0(1496), _1("line_parallel"), _2(2), _3(true), _4(false), _5(line_parallel), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 628, 628), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("line_parallel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1496), _1("line_parallel"), _2(2), _3(true), _4(false), _5(line_parallel), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 628, 628), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("line_parallel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "line_perp", 1, - AddBuiltinFunc(_0(1497), _1("line_perp"), _2(2), _3(true), _4(false), _5(line_perp), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 628, 628), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("line_perp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1497), _1("line_perp"), _2(2), _3(true), _4(false), _5(line_perp), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 628, 628), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("line_perp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "line_recv", 1, - AddBuiltinFunc(_0(2488), _1("line_recv"), _2(1), _3(true), _4(false), _5(line_recv), _6(628), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("line_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2488), _1("line_recv"), _2(1), _3(true), _4(false), _5(line_recv), _6(628), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("line_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "line_send", 1, - AddBuiltinFunc(_0(2489), _1("line_send"), _2(1), _3(true), _4(false), _5(line_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 628), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("line_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2489), _1("line_send"), _2(1), _3(true), _4(false), _5(line_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 628), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("line_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "line_vertical", 1, - AddBuiltinFunc(_0(1498), _1("line_vertical"), _2(1), _3(true), _4(false), _5(line_vertical), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 628), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("line_vertical"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1498), _1("line_vertical"), _2(1), _3(true), _4(false), _5(line_vertical), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 628), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("line_vertical"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "list_agg_finalfn", 1, - AddBuiltinFunc(_0(3551), _1("list_agg_finalfn"), _2(1), _3(false), _4(false), _5(list_agg_finalfn), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("list_agg_finalfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3551), _1("list_agg_finalfn"), _2(1), _3(false), _4(false), _5(list_agg_finalfn), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("list_agg_finalfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "list_agg_noarg2_transfn", 1, - AddBuiltinFunc(_0(3553), _1("list_agg_noarg2_transfn"), _2(2), _3(false), _4(false), _5(list_agg_noarg2_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("list_agg_noarg2_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3553), _1("list_agg_noarg2_transfn"), _2(2), _3(false), _4(false), _5(list_agg_noarg2_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("list_agg_noarg2_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "list_agg_transfn", 1, - AddBuiltinFunc(_0(3550), _1("list_agg_transfn"), _2(3), _3(false), _4(false), _5(list_agg_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("list_agg_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3550), _1("list_agg_transfn"), _2(3), _3(false), _4(false), _5(list_agg_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("list_agg_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "listagg", 22, - AddBuiltinFunc(_0(LISTAGGFUNCOID), _1("listagg"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(LISTAGGNOARG2FUNCOID), _1("listagg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(INT2LISTAGGFUNCOID), _1("listagg"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(INT2LISTAGGNOARG2FUNCOID), _1("listagg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(INT4LISTAGGFUNCOID), _1("listagg"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(INT4LISTAGGNOARG2FUNCOID), _1("listagg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(INT8LISTAGGFUNCOID), _1("listagg"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(INT8LISTAGGNOARG2FUNCOID), _1("listagg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(FLOAT4LISTAGGFUNCOID), _1("listagg"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 700, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(FLOAT4LISTAGGNOARG2FUNCOID), _1("listagg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(FLOAT8LISTAGGFUNCOID), _1("listagg"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(FLOAT8LISTAGGNOARG2FUNCOID), _1("listagg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(NUMERICLISTAGGFUNCOID), _1("listagg"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(NUMERICLISTAGGNOARG2FUNCOID), _1("listagg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(DATELISTAGGFUNCOID), _1("listagg"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(DATELISTAGGNOARG2FUNCOID), _1("listagg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(TIMESTAMPLISTAGGFUNCOID), _1("listagg"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(TIMESTAMPLISTAGGNOARG2FUNCOID), _1("listagg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(TIMESTAMPTZLISTAGGFUNCOID), _1("listagg"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1184, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(TIMESTAMPTZLISTAGGNOARG2FUNCOID), _1("listagg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(INTERVALLISTAGGFUNCOID), _1("listagg"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1186, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(INTERVALLISTAGGNOARG2FUNCOID), _1("listagg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(LISTAGGFUNCOID), _1("listagg"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(LISTAGGNOARG2FUNCOID), _1("listagg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(INT2LISTAGGFUNCOID), _1("listagg"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(INT2LISTAGGNOARG2FUNCOID), _1("listagg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(INT4LISTAGGFUNCOID), _1("listagg"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(INT4LISTAGGNOARG2FUNCOID), _1("listagg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(INT8LISTAGGFUNCOID), _1("listagg"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(INT8LISTAGGNOARG2FUNCOID), _1("listagg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(FLOAT4LISTAGGFUNCOID), _1("listagg"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 700, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(FLOAT4LISTAGGNOARG2FUNCOID), _1("listagg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(FLOAT8LISTAGGFUNCOID), _1("listagg"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(FLOAT8LISTAGGNOARG2FUNCOID), _1("listagg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(NUMERICLISTAGGFUNCOID), _1("listagg"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(NUMERICLISTAGGNOARG2FUNCOID), _1("listagg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(DATELISTAGGFUNCOID), _1("listagg"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(DATELISTAGGNOARG2FUNCOID), _1("listagg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(TIMESTAMPLISTAGGFUNCOID), _1("listagg"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(TIMESTAMPLISTAGGNOARG2FUNCOID), _1("listagg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(TIMESTAMPTZLISTAGGFUNCOID), _1("listagg"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1184, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(TIMESTAMPTZLISTAGGNOARG2FUNCOID), _1("listagg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(INTERVALLISTAGGFUNCOID), _1("listagg"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1186, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(INTERVALLISTAGGNOARG2FUNCOID), _1("listagg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ln", 2, - AddBuiltinFunc(_0(1341), _1("ln"), _2(1), _3(true), _4(false), _5(dlog1), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dlog1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1734), _1("ln"), _2(1), _3(true), _4(false), _5(numeric_ln), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_ln"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1341), _1("ln"), _2(1), _3(true), _4(false), _5(dlog1), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dlog1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("natural logarithm"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1734), _1("ln"), _2(1), _3(true), _4(false), _5(numeric_ln), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_ln"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("natural logarithm"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "lo_close", 1, - AddBuiltinFunc(_0(953), _1("lo_close"), _2(1), _3(true), _4(false), _5(lo_close), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lo_close"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(953), _1("lo_close"), _2(1), _3(true), _4(false), _5(lo_close), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lo_close"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "lo_creat", 1, - AddBuiltinFunc(_0(957), _1("lo_creat"), _2(1), _3(true), _4(false), _5(lo_creat), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lo_creat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(957), _1("lo_creat"), _2(1), _3(true), _4(false), _5(lo_creat), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lo_creat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "lo_create", 1, - AddBuiltinFunc(_0(715), _1("lo_create"), _2(1), _3(true), _4(false), _5(lo_create), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lo_create"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(715), _1("lo_create"), _2(1), _3(true), _4(false), _5(lo_create), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lo_create"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "lo_export", 1, - AddBuiltinFunc(_0(765), _1("lo_export"), _2(2), _3(true), _4(false), _5(lo_export), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lo_export"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(765), _1("lo_export"), _2(2), _3(true), _4(false), _5(lo_export), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lo_export"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "lo_import", 2, - AddBuiltinFunc(_0(764), _1("lo_import"), _2(1), _3(true), _4(false), _5(lo_import), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lo_import"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(767), _1("lo_import"), _2(2), _3(true), _4(false), _5(lo_import_with_oid), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 25, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lo_import_with_oid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(764), _1("lo_import"), _2(1), _3(true), _4(false), _5(lo_import), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lo_import"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(767), _1("lo_import"), _2(2), _3(true), _4(false), _5(lo_import_with_oid), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 25, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lo_import_with_oid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "lo_lseek", 1, - AddBuiltinFunc(_0(956), _1("lo_lseek"), _2(3), _3(true), _4(false), _5(lo_lseek), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 23, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lo_lseek"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(956), _1("lo_lseek"), _2(3), _3(true), _4(false), _5(lo_lseek), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 23, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lo_lseek"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "lo_open", 1, - AddBuiltinFunc(_0(952), _1("lo_open"), _2(2), _3(true), _4(false), _5(lo_open), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lo_open"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(952), _1("lo_open"), _2(2), _3(true), _4(false), _5(lo_open), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lo_open"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "lo_tell", 1, - AddBuiltinFunc(_0(958), _1("lo_tell"), _2(1), _3(true), _4(false), _5(lo_tell), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lo_tell"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(958), _1("lo_tell"), _2(1), _3(true), _4(false), _5(lo_tell), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lo_tell"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "lo_truncate", 1, - AddBuiltinFunc(_0(1004), _1("lo_truncate"), _2(2), _3(true), _4(false), _5(lo_truncate), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lo_truncate"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "lo_unlink", 1, - AddBuiltinFunc(_0(964), _1("lo_unlink"), _2(1), _3(true), _4(false), _5(lo_unlink), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lo_unlink"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "local_bgwriter_stat", 1, - AddBuiltinFunc(_0(4373), _1("local_bgwriter_stat"), _2(0), _3(false), _4(true), _5(local_bgwriter_stat), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(6, 25, 20, 23, 23, 20, 20), _22(6, 'o', 'o', 'o', 'o', 'o', 'o'), _23(6, "node_name", "bgwr_actual_flush_total_num", "bgwr_last_flush_num", "candidate_slots", "get_buffer_from_list", "get_buf_clock_sweep"), _24(NULL), _25("local_bgwriter_stat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "local_ckpt_stat", 1, - AddBuiltinFunc(_0(4371), _1("local_ckpt_stat"), _2(0), _3(false), _4(true), _5(local_ckpt_stat), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(7, 25, 25, 20, 20, 20, 20, 20), _22(7, 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(7, "node_name", "ckpt_redo_point", "ckpt_clog_flush_num", "ckpt_csnlog_flush_num", "ckpt_multixact_flush_num", "ckpt_predicate_flush_num", "ckpt_twophase_flush_num"), _24(NULL), _25("local_ckpt_stat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "local_debug_server_info", 1, - AddBuiltinFunc(_0(1513), _1("local_debug_server_info"), _2(0), _3(true), _4(true), _5(local_debug_server_info), _6(2249), _7(PG_PLDEBUG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(3, 25, 20, 26), _22(3, 'o', 'o', 'o'), _23(3, "nodename", "port", "funcoid"), _24(NULL), _25("local_debug_server_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "local_double_write_stat", 1, - AddBuiltinFunc(_0(4384), _1("local_double_write_stat"), _2(0), _3(false), _4(true), _5(local_double_write_stat), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(11, 25, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20), _22(11, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(11, "node_name", "curr_dwn", "curr_start_page", "file_trunc_num", "file_reset_num", "total_writes", "low_threshold_writes", "high_threshold_writes", "total_pages", "low_threshold_pages", "high_threshold_pages"), _24(NULL), _25("local_double_write_stat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "local_pagewriter_stat", 1, - AddBuiltinFunc(_0(4361), _1("local_pagewriter_stat"), _2(0), _3(false), _4(true), _5(local_pagewriter_stat), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(8, 25, 20, 23, 20, 25, 25, 25, 25), _22(8, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(8, "node_name", "pgwr_actual_flush_total_num", "pgwr_last_flush_num", "remain_dirty_page_num", "queue_head_page_rec_lsn", "queue_rec_lsn", "current_xlog_insert_lsn", "ckpt_redo_point"), _24(NULL), _25("local_pagewriter_stat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "local_recovery_status", 1, - AddBuiltinFunc(_0(3250), _1("local_recovery_status"), _2(0), _3(false), _4(true), _5(local_recovery_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(9,25,25,25,23,25,23,20,20,20), _22(9, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(9, "node_name", "standby_node_name", "source_ip", "source_port", "dest_ip", "dest_port", "current_rto", "target_rto", "current_sleep_time"), _24(NULL), _25("local_recovery_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "local_redo_stat", 1, - AddBuiltinFunc(_0(4388), _1("local_redo_stat"), _2(0), _3(false), _4(true), _5(local_redo_stat), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(23, 25, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 25), _22(23, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(23, "node_name", "redo_start_ptr", "redo_start_time", "redo_done_time", "curr_time", "min_recovery_point", "read_ptr", "last_replayed_read_ptr", "recovery_done_ptr", "read_xlog_io_counter", "read_xlog_io_total_dur", "read_data_io_counter", "read_data_io_total_dur", "write_data_io_counter", "write_data_io_total_dur", "process_pending_counter", "process_pending_total_dur", "apply_counter", "apply_total_dur", "speed", "local_max_ptr", "primary_flush_ptr", "worker_info"), _24(NULL), _25("local_redo_stat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "local_rto_stat", 1, - AddBuiltinFunc(_0(3299), _1("local_rto_stat"), _2(0), _3(false), _4(true), _5(local_rto_stat), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(2,25,25), _22(2, 'o', 'o'), _23(2, "node_name", "rto_info"), _24(NULL), _25("local_rto_stat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "local_single_flush_dw_stat", 1, - AddBuiltinFunc(_0(4375), _1("local_single_flush_dw_stat"), _2(0), _3(false), _4(true), _5(local_single_flush_dw_stat), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(6, 25, 23, 23, 20, 20, 20), _22(6, 'o', 'o', 'o', 'o', 'o', 'o'), _23(6, "node_name", "curr_dwn", "curr_start_page", "total_writes", "file_trunc_num", "file_reset_num"), _24(NULL), _25("local_single_flush_dw_stat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "locktag_decode", 1, - AddBuiltinFunc(_0(5730), _1("locktag_decode"), _2(1), _3(true), _4(false), _5(locktag_decode), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("locktag_decode"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "log", 3, - AddBuiltinFunc(_0(1340), _1("log"), _2(1), _3(true), _4(false), _5(dlog10), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dlog10"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1736), _1("log"), _2(2), _3(true), _4(false), _5(numeric_log), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_log"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1741), _1("log"), _2(1), _3(true), _4(false), _5(NULL), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.log(10, $1)"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "loread", 1, - AddBuiltinFunc(_0(954), _1("loread"), _2(2), _3(true), _4(false), _5(loread), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("loread"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "lower", 2, - AddBuiltinFunc(_0(870), _1("lower"), _2(1), _3(true), _4(false), _5(lower), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lower"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3848), _1("lower"), _2(1), _3(true), _4(false), _5(range_lower), _6(2283), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_lower"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "lower_inc", 1, - AddBuiltinFunc(_0(3851), _1("lower_inc"), _2(1), _3(true), _4(false), _5(range_lower_inc), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_lower_inc"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "lower_inf", 1, - AddBuiltinFunc(_0(3853), _1("lower_inf"), _2(1), _3(true), _4(false), _5(range_lower_inf), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_lower_inf"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "lowrite", 1, - AddBuiltinFunc(_0(955), _1("lowrite"), _2(2), _3(true), _4(false), _5(lowrite), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 23, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lowrite"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "lpad", 2, - AddBuiltinFunc(_0(LPADFUNCOID), _1("lpad"), _2(3), _3(true), _4(false), _5(lpad), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 23, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lpad"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(LPADPARAFUNCOID), _1("lpad"), _2(2), _3(true), _4(false), _5(NULL), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.lpad($1, $2, ' ')"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "lseg", 2, - AddBuiltinFunc(_0(993), _1("lseg"), _2(2), _3(true), _4(false), _5(lseg_construct), _6(601), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_construct"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1541), _1("lseg"), _2(1), _3(true), _4(false), _5(box_diagonal), _6(601), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_diagonal"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "lseg_center", 1, - AddBuiltinFunc(_0(225), _1("lseg_center"), _2(1), _3(true), _4(false), _5(lseg_center), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_center"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "lseg_distance", 1, - AddBuiltinFunc(_0(361), _1("lseg_distance"), _2(2), _3(true), _4(false), _5(lseg_distance), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 601, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_distance"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "lseg_eq", 1, - AddBuiltinFunc(_0(999), _1("lseg_eq"), _2(2), _3(true), _4(false), _5(lseg_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 601, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "lseg_ge", 1, - AddBuiltinFunc(_0(1486), _1("lseg_ge"), _2(2), _3(true), _4(false), _5(lseg_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 601, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "lseg_gt", 1, - AddBuiltinFunc(_0(1485), _1("lseg_gt"), _2(2), _3(true), _4(false), _5(lseg_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 601, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "lseg_horizontal", 1, - AddBuiltinFunc(_0(998), _1("lseg_horizontal"), _2(1), _3(true), _4(false), _5(lseg_horizontal), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_horizontal"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "lseg_in", 1, - AddBuiltinFunc(_0(119), _1("lseg_in"), _2(1), _3(true), _4(false), _5(lseg_in), _6(601), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "lseg_interpt", 1, - AddBuiltinFunc(_0(362), _1("lseg_interpt"), _2(2), _3(true), _4(false), _5(lseg_interpt), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 601, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_interpt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "lseg_intersect", 1, - AddBuiltinFunc(_0(994), _1("lseg_intersect"), _2(2), _3(true), _4(false), _5(lseg_intersect), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 601, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_intersect"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "lseg_le", 1, - AddBuiltinFunc(_0(1484), _1("lseg_le"), _2(2), _3(true), _4(false), _5(lseg_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 601, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "lseg_length", 1, - AddBuiltinFunc(_0(1487), _1("lseg_length"), _2(1), _3(true), _4(false), _5(lseg_length), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_length"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "lseg_lt", 1, - AddBuiltinFunc(_0(1483), _1("lseg_lt"), _2(2), _3(true), _4(false), _5(lseg_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 601, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "lseg_ne", 1, - AddBuiltinFunc(_0(1482), _1("lseg_ne"), _2(2), _3(true), _4(false), _5(lseg_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 601, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "lseg_out", 1, - AddBuiltinFunc(_0(120), _1("lseg_out"), _2(1), _3(true), _4(false), _5(lseg_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "lseg_parallel", 1, - AddBuiltinFunc(_0(995), _1("lseg_parallel"), _2(2), _3(true), _4(false), _5(lseg_parallel), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 601, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_parallel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "lseg_perp", 1, - AddBuiltinFunc(_0(996), _1("lseg_perp"), _2(2), _3(true), _4(false), _5(lseg_perp), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 601, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_perp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "lseg_recv", 1, - AddBuiltinFunc(_0(2480), _1("lseg_recv"), _2(1), _3(true), _4(false), _5(lseg_recv), _6(601), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "lseg_send", 1, - AddBuiltinFunc(_0(2481), _1("lseg_send"), _2(1), _3(true), _4(false), _5(lseg_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "lseg_vertical", 1, - AddBuiltinFunc(_0(997), _1("lseg_vertical"), _2(1), _3(true), _4(false), _5(lseg_vertical), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_vertical"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "ltrim", 2, - AddBuiltinFunc(_0(LTRIMFUNCOID), _1("ltrim"), _2(2), _3(true), _4(false), _5(ltrim), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ltrim"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(LTRIMPARAFUNCOID), _1("ltrim"), _2(1), _3(true), _4(false), _5(ltrim1), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ltrim1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "macaddr_and", 1, - AddBuiltinFunc(_0(3145), _1("macaddr_and"), _2(2), _3(true), _4(false), _5(macaddr_and), _6(829), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 829, 829), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("macaddr_and"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "macaddr_cmp", 1, - AddBuiltinFunc(_0(836), _1("macaddr_cmp"), _2(2), _3(true), _4(false), _5(macaddr_cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 829, 829), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("macaddr_cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "macaddr_eq", 1, - AddBuiltinFunc(_0(830), _1("macaddr_eq"), _2(2), _3(true), _4(false), _5(macaddr_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 829, 829), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("macaddr_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "macaddr_ge", 1, - AddBuiltinFunc(_0(834), _1("macaddr_ge"), _2(2), _3(true), _4(false), _5(macaddr_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 829, 829), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("macaddr_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "macaddr_gt", 1, - AddBuiltinFunc(_0(833), _1("macaddr_gt"), _2(2), _3(true), _4(false), _5(macaddr_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 829, 829), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("macaddr_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "macaddr_in", 1, - AddBuiltinFunc(_0(436), _1("macaddr_in"), _2(1), _3(true), _4(false), _5(macaddr_in), _6(829), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("macaddr_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "macaddr_le", 1, - AddBuiltinFunc(_0(832), _1("macaddr_le"), _2(2), _3(true), _4(false), _5(macaddr_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 829, 829), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("macaddr_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "macaddr_lt", 1, - AddBuiltinFunc(_0(831), _1("macaddr_lt"), _2(2), _3(true), _4(false), _5(macaddr_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 829, 829), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("macaddr_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "macaddr_ne", 1, - AddBuiltinFunc(_0(835), _1("macaddr_ne"), _2(2), _3(true), _4(false), _5(macaddr_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 829, 829), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("macaddr_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "macaddr_not", 1, - AddBuiltinFunc(_0(3144), _1("macaddr_not"), _2(1), _3(true), _4(false), _5(macaddr_not), _6(829), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 829), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("macaddr_not"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "macaddr_or", 1, - AddBuiltinFunc(_0(3146), _1("macaddr_or"), _2(2), _3(true), _4(false), _5(macaddr_or), _6(829), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 829, 829), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("macaddr_or"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "macaddr_out", 1, - AddBuiltinFunc(_0(437), _1("macaddr_out"), _2(1), _3(true), _4(false), _5(macaddr_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 829), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("macaddr_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "macaddr_recv", 1, - AddBuiltinFunc(_0(2494), _1("macaddr_recv"), _2(1), _3(true), _4(false), _5(macaddr_recv), _6(829), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("macaddr_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "macaddr_send", 1, - AddBuiltinFunc(_0(2495), _1("macaddr_send"), _2(1), _3(true), _4(false), _5(macaddr_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 829), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("macaddr_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "makeaclitem", 1, - AddBuiltinFunc(_0(1365), _1("makeaclitem"), _2(4), _3(true), _4(false), _5(makeaclitem), _6(1033), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 26, 26, 25, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("makeaclitem"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "masklen", 1, - AddBuiltinFunc(_0(697), _1("masklen"), _2(1), _3(true), _4(false), _5(network_masklen), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("network_masklen"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "max", 23, - AddBuiltinFunc(_0(2050), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(2115), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(2116), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(2117), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(2118), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(2119), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(2120), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(2121), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(702), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 702), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(2122), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1082), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(2123), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1083), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(2124), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1266), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(2125), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(2126), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(2127), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(2128), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(2129), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(2130), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(2244), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1042), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(2797), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(27), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 27), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(3526), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(3500), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3500), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(5538), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(9010), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(9003), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 9003), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(6668), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(869), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - ), - AddFuncGroup( - "md5", 2, - AddBuiltinFunc(_0(2311), _1("md5"), _2(1), _3(true), _4(false), _5(md5_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("md5_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2321), _1("md5"), _2(1), _3(true), _4(false), _5(md5_bytea), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("md5_bytea"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "median", 2, - AddBuiltinFunc(_0(5555), _1("median"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(5556), _1("median"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "median_float8_finalfn", 1, - AddBuiltinFunc(_0(5557), _1("median_float8_finalfn"), _2(1), _3(false), _4(false), _5(median_float8_finalfn), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("median_float8_finalfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "median_interval_finalfn", 1, - AddBuiltinFunc(_0(5558), _1("median_interval_finalfn"), _2(1), _3(false), _4(false), _5(median_interval_finalfn), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("median_interval_finalfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "median_transfn", 1, - AddBuiltinFunc(_0(5559), _1("median_transfn"), _2(2), _3(false), _4(false), _5(median_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2276), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("median_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - ), - AddFuncGroup( - "min", 22, - AddBuiltinFunc(_0(2051), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(2131), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(2132), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(2133), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(2134), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(2135), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(2136), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(2137), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(702), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 702), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(2138), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1082), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(2139), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1083), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(2140), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1266), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(2141), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(2142), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(2143), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(2144), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(2145), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(2146), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(2245), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1042), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(2798), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(27), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 27), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(3527), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(3500), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3500), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(9009), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(9003), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 9003), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')), - AddBuiltinFunc(_0(6669), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(869), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')) - ), - AddFuncGroup( - "mktinterval", 1, - AddBuiltinFunc(_0(676), _1("mktinterval"), _2(2), _3(true), _4(false), _5(mktinterval), _6(704), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 702, 702), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("mktinterval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "mod", 4, - AddBuiltinFunc(_0(940), _1("mod"), _2(2), _3(true), _4(false), _5(int2mod), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2mod"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(941), _1("mod"), _2(2), _3(true), _4(false), _5(int4mod), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4mod"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(947), _1("mod"), _2(2), _3(true), _4(false), _5(int8mod), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8mod"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1728), _1("mod"), _2(2), _3(true), _4(false), _5(numeric_mod), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_mod"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "mode", 1, - AddBuiltinFunc(_0(MODEAGGFUNCOID), _1("mode"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(2283), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2283), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "mode_final", 1, - AddBuiltinFunc(_0(4462), _1("mode_final"), _2(1), _3(false), _4(false), _5(mode_final), _6(2283), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("mode_final"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "model_train_opt", 1, - AddBuiltinFunc(_0(3481), _1("model_train_opt"), _2(2), _3(true), _4(true), _5(model_train_opt), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(6, 25, 25, 701, 701, 701, 701), _22(6, 'i', 'i', 'o', 'o', 'o', 'o'), _23(6, "template_name", "model_name", "startup_time_accuracy", "total_time_accuracy", "rows_accuracy", "peak_memory_accuracy"), _24(NULL), _25("model_train_opt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "money", 3, - AddBuiltinFunc(_0(INTEGER2CASHFUNCOID), _1("money"), _2(1), _3(true), _4(false), _5(int4_cash), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4_cash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(BIGINT2CASHFUNCOID), _1("money"), _2(1), _3(true), _4(false), _5(int8_cash), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8_cash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(NUMERIC2CASHFUNCOID), _1("money"), _2(1), _3(true), _4(false), _5(numeric_cash), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_cash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "mot_global_memory_detail", 1, - AddBuiltinFunc(_0(6201), _1("mot_global_memory_detail"), _2(0), _3(false), _4(true), _5(mot_global_memory_detail), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(3, 23, 20, 20), _22(3, 'o', 'o', 'o'), _23(3, "numa_node", "reserved_size", "used_size"), _24(NULL), _25("mot_global_memory_detail"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "mot_local_memory_detail", 1, - AddBuiltinFunc(_0(6202), _1("mot_local_memory_detail"), _2(0), _3(false), _4(true), _5(mot_local_memory_detail), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(3, 23, 20, 20), _22(3, 'o', 'o', 'o'), _23(3, "numa_node", "reserved_size", "used_size"), _24(NULL), _25("mot_local_memory_detail"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "mot_session_memory_detail", 1, - AddBuiltinFunc(_0(6200), _1("mot_session_memory_detail"), _2(0), _3(false), _4(true), _5(mot_session_memory_detail), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(4, 25, 20, 20, 20), _22(4, 'o', 'o', 'o', 'o'), _23(4, "sessid", "total_size", "free_size", "used_size"), _24(NULL), _25("mot_session_memory_detail"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "mul_d_interval", 1, - AddBuiltinFunc(_0(1624), _1("mul_d_interval"), _2(2), _3(true), _4(false), _5(mul_d_interval), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("mul_d_interval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "multiply", 2, - AddBuiltinFunc(_0(3170), _1("multiply"), _2(2), _3(true), _4(false), _5(text_multiply_float8), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_multiply_float8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3171), _1("multiply"), _2(2), _3(true), _4(false), _5(float8_multiply_text), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_multiply_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "name", 3, - AddBuiltinFunc(_0(407), _1("name"), _2(1), _3(true), _4(false), _5(text_name), _6(19), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(409), _1("name"), _2(1), _3(true), _4(false), _5(bpchar_name), _6(19), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpchar_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1400), _1("name"), _2(1), _3(true), _4(false), _5(text_name), _6(19), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1043), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "nameeq", 1, - AddBuiltinFunc(_0(62), _1("nameeq"), _2(2), _3(true), _4(false), _5(nameeq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 19, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("nameeq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "namege", 1, - AddBuiltinFunc(_0(658), _1("namege"), _2(2), _3(true), _4(false), _5(namege), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 19, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("namege"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "namegt", 1, - AddBuiltinFunc(_0(657), _1("namegt"), _2(2), _3(true), _4(false), _5(namegt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 19, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("namegt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "nameiclike", 1, - AddBuiltinFunc(_0(1635), _1("nameiclike"), _2(2), _3(true), _4(false), _5(nameiclike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 19, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("nameiclike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "nameicnlike", 1, - AddBuiltinFunc(_0(1636), _1("nameicnlike"), _2(2), _3(true), _4(false), _5(nameicnlike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 19, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("nameicnlike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "nameicregexeq", 1, - AddBuiltinFunc(_0(1240), _1("nameicregexeq"), _2(2), _3(true), _4(false), _5(nameicregexeq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 19, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("nameicregexeq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "nameicregexne", 1, - AddBuiltinFunc(_0(1241), _1("nameicregexne"), _2(2), _3(true), _4(false), _5(nameicregexne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 19, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("nameicregexne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "namein", 1, - AddBuiltinFunc(_0(34), _1("namein"), _2(1), _3(true), _4(false), _5(namein), _6(19), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("namein"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "namele", 1, - AddBuiltinFunc(_0(656), _1("namele"), _2(2), _3(true), _4(false), _5(namele), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 19, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("namele"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "namelike", 1, - AddBuiltinFunc(_0(858), _1("namelike"), _2(2), _3(true), _4(false), _5(namelike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 19, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("namelike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "namelt", 1, - AddBuiltinFunc(_0(655), _1("namelt"), _2(2), _3(true), _4(false), _5(namelt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 19, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("namelt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "namene", 1, - AddBuiltinFunc(_0(659), _1("namene"), _2(2), _3(true), _4(false), _5(namene), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 19, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("namene"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "namenlike", 1, - AddBuiltinFunc(_0(859), _1("namenlike"), _2(2), _3(true), _4(false), _5(namenlike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 19, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("namenlike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "nameout", 1, - AddBuiltinFunc(_0(35), _1("nameout"), _2(1), _3(true), _4(false), _5(nameout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("nameout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "namerecv", 1, - AddBuiltinFunc(_0(2422), _1("namerecv"), _2(1), _3(true), _4(false), _5(namerecv), _6(19), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("namerecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "nameregexeq", 1, - AddBuiltinFunc(_0(79), _1("nameregexeq"), _2(2), _3(true), _4(false), _5(nameregexeq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 19, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("nameregexeq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "nameregexne", 1, - AddBuiltinFunc(_0(1252), _1("nameregexne"), _2(2), _3(true), _4(false), _5(nameregexne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 19, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("nameregexne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "namesend", 1, - AddBuiltinFunc(_0(2423), _1("namesend"), _2(1), _3(true), _4(false), _5(namesend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("namesend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "neqjoinsel", 1, - AddBuiltinFunc(_0(106), _1("neqjoinsel"), _2(5), _3(true), _4(false), _5(neqjoinsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(5, 2281, 26, 2281, 21, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("neqjoinsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "neqsel", 1, - AddBuiltinFunc(_0(NEQSELRETURNOID), _1("neqsel"), _2(4), _3(true), _4(false), _5(neqsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 2281, 26, 2281, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("neqsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "netmask", 1, - AddBuiltinFunc(_0(696), _1("netmask"), _2(1), _3(true), _4(false), _5(network_netmask), _6(869), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("network_netmask"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "network", 1, - AddBuiltinFunc(_0(683), _1("network"), _2(1), _3(true), _4(false), _5(network_network), _6(650), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("network_network"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "network_cmp", 1, - AddBuiltinFunc(_0(926), _1("network_cmp"), _2(2), _3(true), _4(false), _5(network_cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 869, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("network_cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "network_eq", 1, - AddBuiltinFunc(_0(920), _1("network_eq"), _2(2), _3(true), _4(false), _5(network_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 869, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("network_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "network_ge", 1, - AddBuiltinFunc(_0(924), _1("network_ge"), _2(2), _3(true), _4(false), _5(network_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 869, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("network_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "network_gt", 1, - AddBuiltinFunc(_0(923), _1("network_gt"), _2(2), _3(true), _4(false), _5(network_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 869, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("network_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1004), _1("lo_truncate"), _2(2), _3(true), _4(false), _5(lo_truncate), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lo_truncate"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "network_larger", 1, AddBuiltinFunc(_0(6666), _1("network_larger"), _2(2), _3(true), _4(false), _5(network_larger), _6(869), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 869, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("network_larger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')) ), AddFuncGroup( - "network_le", 1, - AddBuiltinFunc(_0(922), _1("network_le"), _2(2), _3(true), _4(false), _5(network_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 869, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("network_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + "lo_unlink", 1, + AddBuiltinFunc(_0(964), _1("lo_unlink"), _2(1), _3(true), _4(false), _5(lo_unlink), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lo_unlink"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( - "network_lt", 1, - AddBuiltinFunc(_0(921), _1("network_lt"), _2(2), _3(true), _4(false), _5(network_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 869, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("network_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + "local_bgwriter_stat", 1, + AddBuiltinFunc(_0(4373), _1("local_bgwriter_stat"), _2(0), _3(false), _4(true), _5(local_bgwriter_stat), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(6, 25, 20, 23, 23, 20, 20), _22(6, 'o', 'o', 'o', 'o', 'o', 'o'), _23(6, "node_name", "bgwr_actual_flush_total_num", "bgwr_last_flush_num", "candidate_slots", "get_buffer_from_list", "get_buf_clock_sweep"), _24(NULL), _25("local_bgwriter_stat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( - "network_ne", 1, - AddBuiltinFunc(_0(925), _1("network_ne"), _2(2), _3(true), _4(false), _5(network_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 869, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("network_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + "local_candidate_stat", 1, + AddBuiltinFunc(_0(4377), _1("local_candidate_stat"), _2(0), _3(false), _4(true), _5(local_candidate_stat), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(7, 25, 23, 20, 20, 23, 20, 20), _22(7, 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(7, "node_name", "candidate_slots", "get_buf_from_list", "get_buf_clock_sweep", "seg_candidate_slots", "seg_get_buf_from_list", "seg_get_buf_clock_sweep"), _24(NULL), _25("local_candidate_stat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "network_smaller", 1, AddBuiltinFunc(_0(6667), _1("network_smaller"), _2(2), _3(true), _4(false), _5(network_smaller), _6(869), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 869, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("network_smaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f')) ), + AddFuncGroup( + "local_ckpt_stat", 1, + AddBuiltinFunc(_0(4371), _1("local_ckpt_stat"), _2(0), _3(false), _4(true), _5(local_ckpt_stat), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(7, 25, 25, 20, 20, 20, 20, 20), _22(7, 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(7, "node_name", "ckpt_redo_point", "ckpt_clog_flush_num", "ckpt_csnlog_flush_num", "ckpt_multixact_flush_num", "ckpt_predicate_flush_num", "ckpt_twophase_flush_num"), _24(NULL), _25("local_ckpt_stat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "local_debug_server_info", 1, + AddBuiltinFunc(_0(1513), _1("local_debug_server_info"), _2(0), _3(true), _4(true), _5(local_debug_server_info), _6(2249), _7(PG_PLDEBUG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(3, 25, 20, 26), _22(3, 'o', 'o', 'o'), _23(3, "nodename", "port", "funcoid"), _24(NULL), _25("local_debug_server_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "local_double_write_stat", 1, + AddBuiltinFunc(_0(4384), _1("local_double_write_stat"), _2(0), _3(false), _4(true), _5(local_double_write_stat), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(11, 25, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20), _22(11, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(11, "node_name", "curr_dwn", "curr_start_page", "file_trunc_num", "file_reset_num", "total_writes", "low_threshold_writes", "high_threshold_writes", "total_pages", "low_threshold_pages", "high_threshold_pages"), _24(NULL), _25("local_double_write_stat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "local_pagewriter_stat", 1, + AddBuiltinFunc(_0(4361), _1("local_pagewriter_stat"), _2(0), _3(false), _4(true), _5(local_pagewriter_stat), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(8, 25, 20, 23, 20, 25, 25, 25, 25), _22(8, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(8, "node_name", "pgwr_actual_flush_total_num", "pgwr_last_flush_num", "remain_dirty_page_num", "queue_head_page_rec_lsn", "queue_rec_lsn", "current_xlog_insert_lsn", "ckpt_redo_point"), _24(NULL), _25("local_pagewriter_stat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "local_recovery_status", 1, + AddBuiltinFunc(_0(3250), _1("local_recovery_status"), _2(0), _3(false), _4(true), _5(local_recovery_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(9,25,25,25,23,25,23,20,20,20), _22(9, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(9, "node_name", "standby_node_name", "source_ip", "source_port", "dest_ip", "dest_port", "current_rto", "target_rto", "current_sleep_time"), _24(NULL), _25("local_recovery_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "local_redo_stat", 1, + AddBuiltinFunc(_0(4388), _1("local_redo_stat"), _2(0), _3(false), _4(true), _5(local_redo_stat), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(23, 25, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 25), _22(23, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(23, "node_name", "redo_start_ptr", "redo_start_time", "redo_done_time", "curr_time", "min_recovery_point", "read_ptr", "last_replayed_read_ptr", "recovery_done_ptr", "read_xlog_io_counter", "read_xlog_io_total_dur", "read_data_io_counter", "read_data_io_total_dur", "write_data_io_counter", "write_data_io_total_dur", "process_pending_counter", "process_pending_total_dur", "apply_counter", "apply_total_dur", "speed", "local_max_ptr", "primary_flush_ptr", "worker_info"), _24(NULL), _25("local_redo_stat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "local_rto_stat", 1, + AddBuiltinFunc(_0(3299), _1("local_rto_stat"), _2(0), _3(false), _4(true), _5(local_rto_stat), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(2,25,25), _22(2, 'o', 'o'), _23(2, "node_name", "rto_info"), _24(NULL), _25("local_rto_stat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "local_single_flush_dw_stat", 1, + AddBuiltinFunc(_0(4375), _1("local_single_flush_dw_stat"), _2(0), _3(false), _4(true), _5(local_single_flush_dw_stat), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(6, 25, 25, 25, 25, 25, 25), _22(6, 'o', 'o', 'o', 'o', 'o', 'o'), _23(6, "node_name", "curr_dwn", "curr_start_page", "total_writes", "file_trunc_num", "file_reset_num"), _24(NULL), _25("local_single_flush_dw_stat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "locktag_decode", 1, + AddBuiltinFunc(_0(5730), _1("locktag_decode"), _2(1), _3(true), _4(false), _5(locktag_decode), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("locktag_decode"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "log", 3, + AddBuiltinFunc(_0(1340), _1("log"), _2(1), _3(true), _4(false), _5(dlog10), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dlog10"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("base 10 logarithm"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1736), _1("log"), _2(2), _3(true), _4(false), _5(numeric_log), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_log"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("logarithm base m of n"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1741), _1("log"), _2(1), _3(true), _4(false), _5(NULL), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.log(10, $1)"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("base 10 logarithm"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "loread", 1, + AddBuiltinFunc(_0(954), _1("loread"), _2(2), _3(true), _4(false), _5(loread), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("loread"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "lower", 2, + AddBuiltinFunc(_0(870), _1("lower"), _2(1), _3(true), _4(false), _5(lower), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lower"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("lowercase"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3848), _1("lower"), _2(1), _3(true), _4(false), _5(range_lower), _6(2283), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_lower"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("lower bound of range"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "lower_inc", 1, + AddBuiltinFunc(_0(3851), _1("lower_inc"), _2(1), _3(true), _4(false), _5(range_lower_inc), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_lower_inc"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("is the range\'s lower bound inclusive?"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "lower_inf", 1, + AddBuiltinFunc(_0(3853), _1("lower_inf"), _2(1), _3(true), _4(false), _5(range_lower_inf), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_lower_inf"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("is the range\'s lower bound infinite?"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "lowrite", 1, + AddBuiltinFunc(_0(955), _1("lowrite"), _2(2), _3(true), _4(false), _5(lowrite), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 23, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lowrite"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "lpad", 2, + AddBuiltinFunc(_0(LPADFUNCOID), _1("lpad"), _2(3), _3(true), _4(false), _5(lpad), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 23, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lpad"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("left-pad string to length"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(LPADPARAFUNCOID), _1("lpad"), _2(2), _3(true), _4(false), _5(NULL), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.lpad($1, $2, ' ')"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "lseg", 2, + AddBuiltinFunc(_0(993), _1("lseg"), _2(2), _3(true), _4(false), _5(lseg_construct), _6(601), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_construct"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert points to line segment"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1541), _1("lseg"), _2(1), _3(true), _4(false), _5(box_diagonal), _6(601), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_diagonal"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("box diagonal"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "lseg_center", 1, + AddBuiltinFunc(_0(225), _1("lseg_center"), _2(1), _3(true), _4(false), _5(lseg_center), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_center"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("center of"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "lseg_distance", 1, + AddBuiltinFunc(_0(361), _1("lseg_distance"), _2(2), _3(true), _4(false), _5(lseg_distance), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 601, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_distance"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "lseg_eq", 1, + AddBuiltinFunc(_0(999), _1("lseg_eq"), _2(2), _3(true), _4(false), _5(lseg_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 601, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "lseg_ge", 1, + AddBuiltinFunc(_0(1486), _1("lseg_ge"), _2(2), _3(true), _4(false), _5(lseg_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 601, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "lseg_gt", 1, + AddBuiltinFunc(_0(1485), _1("lseg_gt"), _2(2), _3(true), _4(false), _5(lseg_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 601, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "lseg_horizontal", 1, + AddBuiltinFunc(_0(998), _1("lseg_horizontal"), _2(1), _3(true), _4(false), _5(lseg_horizontal), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_horizontal"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("horizontal"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "lseg_in", 1, + AddBuiltinFunc(_0(119), _1("lseg_in"), _2(1), _3(true), _4(false), _5(lseg_in), _6(601), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "lseg_interpt", 1, + AddBuiltinFunc(_0(362), _1("lseg_interpt"), _2(2), _3(true), _4(false), _5(lseg_interpt), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 601, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_interpt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "lseg_intersect", 1, + AddBuiltinFunc(_0(994), _1("lseg_intersect"), _2(2), _3(true), _4(false), _5(lseg_intersect), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 601, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_intersect"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "lseg_le", 1, + AddBuiltinFunc(_0(1484), _1("lseg_le"), _2(2), _3(true), _4(false), _5(lseg_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 601, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "lseg_length", 1, + AddBuiltinFunc(_0(1487), _1("lseg_length"), _2(1), _3(true), _4(false), _5(lseg_length), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_length"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("distance between endpoints"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "lseg_lt", 1, + AddBuiltinFunc(_0(1483), _1("lseg_lt"), _2(2), _3(true), _4(false), _5(lseg_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 601, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "lseg_ne", 1, + AddBuiltinFunc(_0(1482), _1("lseg_ne"), _2(2), _3(true), _4(false), _5(lseg_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 601, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "lseg_out", 1, + AddBuiltinFunc(_0(120), _1("lseg_out"), _2(1), _3(true), _4(false), _5(lseg_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "lseg_parallel", 1, + AddBuiltinFunc(_0(995), _1("lseg_parallel"), _2(2), _3(true), _4(false), _5(lseg_parallel), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 601, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_parallel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "lseg_perp", 1, + AddBuiltinFunc(_0(996), _1("lseg_perp"), _2(2), _3(true), _4(false), _5(lseg_perp), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 601, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_perp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("perpendicular"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "lseg_recv", 1, + AddBuiltinFunc(_0(2480), _1("lseg_recv"), _2(1), _3(true), _4(false), _5(lseg_recv), _6(601), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "lseg_send", 1, + AddBuiltinFunc(_0(2481), _1("lseg_send"), _2(1), _3(true), _4(false), _5(lseg_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "lseg_vertical", 1, + AddBuiltinFunc(_0(997), _1("lseg_vertical"), _2(1), _3(true), _4(false), _5(lseg_vertical), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_vertical"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("vertical"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "ltrim", 2, + AddBuiltinFunc(_0(LTRIMFUNCOID), _1("ltrim"), _2(2), _3(true), _4(false), _5(ltrim), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ltrim"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("trim selected characters from left end of string"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(LTRIMPARAFUNCOID), _1("ltrim"), _2(1), _3(true), _4(false), _5(ltrim1), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ltrim1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("trim spaces from left end of string"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "macaddr_and", 1, + AddBuiltinFunc(_0(3145), _1("macaddr_and"), _2(2), _3(true), _4(false), _5(macaddr_and), _6(829), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 829, 829), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("macaddr_and"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "macaddr_cmp", 1, + AddBuiltinFunc(_0(836), _1("macaddr_cmp"), _2(2), _3(true), _4(false), _5(macaddr_cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 829, 829), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("macaddr_cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "macaddr_eq", 1, + AddBuiltinFunc(_0(830), _1("macaddr_eq"), _2(2), _3(true), _4(false), _5(macaddr_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 829, 829), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("macaddr_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "macaddr_ge", 1, + AddBuiltinFunc(_0(834), _1("macaddr_ge"), _2(2), _3(true), _4(false), _5(macaddr_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 829, 829), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("macaddr_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "macaddr_gt", 1, + AddBuiltinFunc(_0(833), _1("macaddr_gt"), _2(2), _3(true), _4(false), _5(macaddr_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 829, 829), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("macaddr_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "macaddr_in", 1, + AddBuiltinFunc(_0(436), _1("macaddr_in"), _2(1), _3(true), _4(false), _5(macaddr_in), _6(829), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("macaddr_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "macaddr_le", 1, + AddBuiltinFunc(_0(832), _1("macaddr_le"), _2(2), _3(true), _4(false), _5(macaddr_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 829, 829), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("macaddr_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "macaddr_lt", 1, + AddBuiltinFunc(_0(831), _1("macaddr_lt"), _2(2), _3(true), _4(false), _5(macaddr_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 829, 829), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("macaddr_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "macaddr_ne", 1, + AddBuiltinFunc(_0(835), _1("macaddr_ne"), _2(2), _3(true), _4(false), _5(macaddr_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 829, 829), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("macaddr_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "macaddr_not", 1, + AddBuiltinFunc(_0(3144), _1("macaddr_not"), _2(1), _3(true), _4(false), _5(macaddr_not), _6(829), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 829), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("macaddr_not"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "macaddr_or", 1, + AddBuiltinFunc(_0(3146), _1("macaddr_or"), _2(2), _3(true), _4(false), _5(macaddr_or), _6(829), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 829, 829), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("macaddr_or"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "macaddr_out", 1, + AddBuiltinFunc(_0(437), _1("macaddr_out"), _2(1), _3(true), _4(false), _5(macaddr_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 829), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("macaddr_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "macaddr_recv", 1, + AddBuiltinFunc(_0(2494), _1("macaddr_recv"), _2(1), _3(true), _4(false), _5(macaddr_recv), _6(829), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("macaddr_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "macaddr_send", 1, + AddBuiltinFunc(_0(2495), _1("macaddr_send"), _2(1), _3(true), _4(false), _5(macaddr_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 829), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("macaddr_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "makeaclitem", 1, + AddBuiltinFunc(_0(1365), _1("makeaclitem"), _2(4), _3(true), _4(false), _5(makeaclitem), _6(1033), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 26, 26, 25, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("makeaclitem"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("make ACL item"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "masklen", 1, + AddBuiltinFunc(_0(697), _1("masklen"), _2(1), _3(true), _4(false), _5(network_masklen), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("network_masklen"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("netmask length"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "max", 22, + AddBuiltinFunc(_0(2050), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2115), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2116), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2117), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2118), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2119), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2120), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2121), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(702), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 702), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2122), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1082), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2123), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1083), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2124), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1266), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2125), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2126), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2127), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2128), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2129), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2130), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2244), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1042), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2797), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(27), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 27), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3526), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(3500), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3500), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(5538), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(9010), _1("max"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(9003), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 9003), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "md5", 2, + AddBuiltinFunc(_0(2311), _1("md5"), _2(1), _3(true), _4(false), _5(md5_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("md5_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("MD5 hash"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2321), _1("md5"), _2(1), _3(true), _4(false), _5(md5_bytea), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("md5_bytea"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("MD5 hash"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "median", 2, + AddBuiltinFunc(_0(5555), _1("median"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(5556), _1("median"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "median_float8_finalfn", 1, + AddBuiltinFunc(_0(5557), _1("median_float8_finalfn"), _2(1), _3(false), _4(false), _5(median_float8_finalfn), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("median_float8_finalfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "median_interval_finalfn", 1, + AddBuiltinFunc(_0(5558), _1("median_interval_finalfn"), _2(1), _3(false), _4(false), _5(median_interval_finalfn), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("median_interval_finalfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "median_transfn", 1, + AddBuiltinFunc(_0(5559), _1("median_transfn"), _2(2), _3(false), _4(false), _5(median_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2276), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("median_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + ), + AddFuncGroup( + "min", 21, + AddBuiltinFunc(_0(2051), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(2277), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2131), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2132), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2133), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2134), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2135), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2136), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2137), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(702), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 702), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2138), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1082), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2139), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1083), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2140), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1266), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2141), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2142), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2143), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2144), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2145), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2146), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2245), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1042), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2798), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(27), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 27), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3527), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(3500), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3500), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(9009), _1("min"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(9003), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 9003), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "mktinterval", 1, + AddBuiltinFunc(_0(676), _1("mktinterval"), _2(2), _3(true), _4(false), _5(mktinterval), _6(704), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 702, 702), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("mktinterval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "mod", 4, + AddBuiltinFunc(_0(940), _1("mod"), _2(2), _3(true), _4(false), _5(int2mod), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 21, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2mod"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(941), _1("mod"), _2(2), _3(true), _4(false), _5(int4mod), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4mod"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(947), _1("mod"), _2(2), _3(true), _4(false), _5(int8mod), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8mod"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1728), _1("mod"), _2(2), _3(true), _4(false), _5(numeric_mod), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_mod"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("modulus"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "mode", 1, + AddBuiltinFunc(_0(MODEAGGFUNCOID), _1("mode"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(2283), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2283), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "mode_final", 1, + AddBuiltinFunc(_0(4462), _1("mode_final"), _2(1), _3(false), _4(false), _5(mode_final), _6(2283), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("mode_final"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate final function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "model_train_opt", 1, + AddBuiltinFunc(_0(3481), _1("model_train_opt"), _2(2), _3(true), _4(true), _5(model_train_opt), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(6, 25, 25, 701, 701, 701, 701), _22(6, 'i', 'i', 'o', 'o', 'o', 'o'), _23(6, "template_name", "model_name", "startup_time_accuracy", "total_time_accuracy", "rows_accuracy", "peak_memory_accuracy"), _24(NULL), _25("model_train_opt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "money", 3, + AddBuiltinFunc(_0(INTEGER2CASHFUNCOID), _1("money"), _2(1), _3(true), _4(false), _5(int4_cash), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4_cash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("convert int4 to money"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(BIGINT2CASHFUNCOID), _1("money"), _2(1), _3(true), _4(false), _5(int8_cash), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8_cash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("convert int8 to money"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(NUMERIC2CASHFUNCOID), _1("money"), _2(1), _3(true), _4(false), _5(numeric_cash), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_cash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("convert numeric to money"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "mot_global_memory_detail", 1, + AddBuiltinFunc(_0(6201), _1("mot_global_memory_detail"), _2(0), _3(false), _4(true), _5(mot_global_memory_detail), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(3, 23, 20, 20), _22(3, 'o', 'o', 'o'), _23(3, "numa_node", "reserved_size", "used_size"), _24(NULL), _25("mot_global_memory_detail"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "mot_local_memory_detail", 1, + AddBuiltinFunc(_0(6202), _1("mot_local_memory_detail"), _2(0), _3(false), _4(true), _5(mot_local_memory_detail), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(3, 23, 20, 20), _22(3, 'o', 'o', 'o'), _23(3, "numa_node", "reserved_size", "used_size"), _24(NULL), _25("mot_local_memory_detail"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "mot_session_memory_detail", 1, + AddBuiltinFunc(_0(6200), _1("mot_session_memory_detail"), _2(0), _3(false), _4(true), _5(mot_session_memory_detail), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(4, 25, 20, 20, 20), _22(4, 'o', 'o', 'o', 'o'), _23(4, "sessid", "total_size", "free_size", "used_size"), _24(NULL), _25("mot_session_memory_detail"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "mul_d_interval", 1, + AddBuiltinFunc(_0(1624), _1("mul_d_interval"), _2(2), _3(true), _4(false), _5(mul_d_interval), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("mul_d_interval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "multiply", 2, + AddBuiltinFunc(_0(3170), _1("multiply"), _2(2), _3(true), _4(false), _5(text_multiply_float8), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_multiply_float8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3171), _1("multiply"), _2(2), _3(true), _4(false), _5(float8_multiply_text), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_multiply_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "name", 3, + AddBuiltinFunc(_0(407), _1("name"), _2(1), _3(true), _4(false), _5(text_name), _6(19), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert varchar to name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(409), _1("name"), _2(1), _3(true), _4(false), _5(bpchar_name), _6(19), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpchar_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert char(n) to name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1400), _1("name"), _2(1), _3(true), _4(false), _5(text_name), _6(19), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1043), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert varchar to name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "nameeq", 1, + AddBuiltinFunc(_0(62), _1("nameeq"), _2(2), _3(true), _4(false), _5(nameeq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 19, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("nameeq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "namege", 1, + AddBuiltinFunc(_0(658), _1("namege"), _2(2), _3(true), _4(false), _5(namege), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 19, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("namege"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "namegt", 1, + AddBuiltinFunc(_0(657), _1("namegt"), _2(2), _3(true), _4(false), _5(namegt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 19, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("namegt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "nameiclike", 1, + AddBuiltinFunc(_0(1635), _1("nameiclike"), _2(2), _3(true), _4(false), _5(nameiclike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 19, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("nameiclike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "nameicnlike", 1, + AddBuiltinFunc(_0(1636), _1("nameicnlike"), _2(2), _3(true), _4(false), _5(nameicnlike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 19, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("nameicnlike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "nameicregexeq", 1, + AddBuiltinFunc(_0(1240), _1("nameicregexeq"), _2(2), _3(true), _4(false), _5(nameicregexeq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 19, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("nameicregexeq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "nameicregexne", 1, + AddBuiltinFunc(_0(1241), _1("nameicregexne"), _2(2), _3(true), _4(false), _5(nameicregexne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 19, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("nameicregexne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "namein", 1, + AddBuiltinFunc(_0(34), _1("namein"), _2(1), _3(true), _4(false), _5(namein), _6(19), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("namein"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "namele", 1, + AddBuiltinFunc(_0(656), _1("namele"), _2(2), _3(true), _4(false), _5(namele), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 19, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("namele"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "namelike", 1, + AddBuiltinFunc(_0(858), _1("namelike"), _2(2), _3(true), _4(false), _5(namelike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 19, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("namelike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("matches LIKE expression"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "namelt", 1, + AddBuiltinFunc(_0(655), _1("namelt"), _2(2), _3(true), _4(false), _5(namelt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 19, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("namelt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "namene", 1, + AddBuiltinFunc(_0(659), _1("namene"), _2(2), _3(true), _4(false), _5(namene), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 19, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("namene"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "namenlike", 1, + AddBuiltinFunc(_0(859), _1("namenlike"), _2(2), _3(true), _4(false), _5(namenlike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 19, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("namenlike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("does not match LIKE expression"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "nameout", 1, + AddBuiltinFunc(_0(35), _1("nameout"), _2(1), _3(true), _4(false), _5(nameout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("nameout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "namerecv", 1, + AddBuiltinFunc(_0(2422), _1("namerecv"), _2(1), _3(true), _4(false), _5(namerecv), _6(19), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("namerecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "nameregexeq", 1, + AddBuiltinFunc(_0(79), _1("nameregexeq"), _2(2), _3(true), _4(false), _5(nameregexeq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 19, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("nameregexeq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "nameregexne", 1, + AddBuiltinFunc(_0(1252), _1("nameregexne"), _2(2), _3(true), _4(false), _5(nameregexne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 19, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("nameregexne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "namesend", 1, + AddBuiltinFunc(_0(2423), _1("namesend"), _2(1), _3(true), _4(false), _5(namesend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("namesend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "neqjoinsel", 1, + AddBuiltinFunc(_0(106), _1("neqjoinsel"), _2(5), _3(true), _4(false), _5(neqjoinsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(5, 2281, 26, 2281, 21, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("neqjoinsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("join selectivity of <> and related operators"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "neqsel", 1, + AddBuiltinFunc(_0(NEQSELRETURNOID), _1("neqsel"), _2(4), _3(true), _4(false), _5(neqsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 2281, 26, 2281, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("neqsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("restriction selectivity of <> and related operators"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "netmask", 1, + AddBuiltinFunc(_0(696), _1("netmask"), _2(1), _3(true), _4(false), _5(network_netmask), _6(869), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("network_netmask"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("netmask of address"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "network", 1, + AddBuiltinFunc(_0(683), _1("network"), _2(1), _3(true), _4(false), _5(network_network), _6(650), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("network_network"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("network part of address"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "network_cmp", 1, + AddBuiltinFunc(_0(926), _1("network_cmp"), _2(2), _3(true), _4(false), _5(network_cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 869, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("network_cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "network_eq", 1, + AddBuiltinFunc(_0(920), _1("network_eq"), _2(2), _3(true), _4(false), _5(network_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 869, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("network_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "network_ge", 1, + AddBuiltinFunc(_0(924), _1("network_ge"), _2(2), _3(true), _4(false), _5(network_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 869, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("network_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "network_gt", 1, + AddBuiltinFunc(_0(923), _1("network_gt"), _2(2), _3(true), _4(false), _5(network_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 869, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("network_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "network_le", 1, + AddBuiltinFunc(_0(922), _1("network_le"), _2(2), _3(true), _4(false), _5(network_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 869, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("network_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "network_lt", 1, + AddBuiltinFunc(_0(921), _1("network_lt"), _2(2), _3(true), _4(false), _5(network_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 869, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("network_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "network_ne", 1, + AddBuiltinFunc(_0(925), _1("network_ne"), _2(2), _3(true), _4(false), _5(network_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 869, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("network_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), AddFuncGroup( "network_sub", 1, - AddBuiltinFunc(_0(927), _1("network_sub"), _2(2), _3(true), _4(false), _5(network_sub), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 869, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("network_sub"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(927), _1("network_sub"), _2(2), _3(true), _4(false), _5(network_sub), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 869, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("network_sub"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "network_subeq", 1, - AddBuiltinFunc(_0(928), _1("network_subeq"), _2(2), _3(true), _4(false), _5(network_subeq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 869, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("network_subeq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(928), _1("network_subeq"), _2(2), _3(true), _4(false), _5(network_subeq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 869, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("network_subeq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "network_sup", 1, - AddBuiltinFunc(_0(929), _1("network_sup"), _2(2), _3(true), _4(false), _5(network_sup), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 869, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("network_sup"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(929), _1("network_sup"), _2(2), _3(true), _4(false), _5(network_sup), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 869, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("network_sup"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "network_supeq", 1, - AddBuiltinFunc(_0(930), _1("network_supeq"), _2(2), _3(true), _4(false), _5(network_supeq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 869, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("network_supeq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(930), _1("network_supeq"), _2(2), _3(true), _4(false), _5(network_supeq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 869, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("network_supeq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "next", 1, - AddBuiltinFunc(_0(1502), _1("next"), _2(0), _3(true), _4(true), _5(debug_client_next), _6(2249), _7(PG_PLDEBUG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0),_21(4, 26, 25, 23, 25), _22(4, 'o', 'o', 'o', 'o'), _23(4, "funcoid", "funcname", "lineno", "query"), _24(NULL), _25("debug_client_next"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), + AddBuiltinFunc(_0(1502), _1("next"), _2(0), _3(true), _4(true), _5(debug_client_next), _6(2249), _7(PG_PLDEBUG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0),_21(4, 26, 25, 23, 25), _22(4, 'o', 'o', 'o', 'o'), _23(4, "funcoid", "funcname", "lineno", "query"), _24(NULL), _25("debug_client_next"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), ), AddFuncGroup( "next_day", 2, - AddBuiltinFunc(_0(4076), _1("next_day"), _2(2), _3(true), _4(false), _5(next_day_int), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("next_day_int"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4077), _1("next_day"), _2(2), _3(true), _4(false), _5(next_day_str), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("next_day_str"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4076), _1("next_day"), _2(2), _3(true), _4(false), _5(next_day_int), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("next_day_int"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4077), _1("next_day"), _2(2), _3(true), _4(false), _5(next_day_str), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("next_day_str"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "nextval", 1, - AddBuiltinFunc(_0(NEXTVALFUNCOID), _1("nextval"), _2(1), _3(true), _4(false), _5(nextval_oid), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2205), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("nextval_oid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(NEXTVALFUNCOID), _1("nextval"), _2(1), _3(true), _4(false), _5(nextval_oid), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2205), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("nextval_oid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("sequence next value"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ngram_end", 1, - AddBuiltinFunc(_0(3788), _1("ngram_end"), _2(1), _3(true), _4(false), _5(ngram_end), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ngram_end"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3788), _1("ngram_end"), _2(1), _3(true), _4(false), _5(ngram_end), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ngram_end"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ngram_lextype", 1, - AddBuiltinFunc(_0(3789), _1("ngram_lextype"), _2(1), _3(true), _4(false), _5(ngram_lextype), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ngram_lextype"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3789), _1("ngram_lextype"), _2(1), _3(true), _4(false), _5(ngram_lextype), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ngram_lextype"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ngram_nexttoken", 1, - AddBuiltinFunc(_0(3787), _1("ngram_nexttoken"), _2(3), _3(true), _4(false), _5(ngram_nexttoken), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ngram_nexttoken"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3787), _1("ngram_nexttoken"), _2(3), _3(true), _4(false), _5(ngram_nexttoken), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ngram_nexttoken"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ngram_start", 1, - AddBuiltinFunc(_0(3786), _1("ngram_start"), _2(3), _3(true), _4(false), _5(ngram_start), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 23, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ngram_start"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3786), _1("ngram_start"), _2(3), _3(true), _4(false), _5(ngram_start), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 23, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ngram_start"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "nlikejoinsel", 1, - AddBuiltinFunc(_0(1828), _1("nlikejoinsel"), _2(5), _3(true), _4(false), _5(nlikejoinsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(5, 2281, 26, 2281, 21, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("nlikejoinsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1828), _1("nlikejoinsel"), _2(5), _3(true), _4(false), _5(nlikejoinsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(5, 2281, 26, 2281, 21, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("nlikejoinsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("join selectivity of NOT LIKE"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "nlikesel", 1, - AddBuiltinFunc(_0(1822), _1("nlikesel"), _2(4), _3(true), _4(false), _5(nlikesel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 2281, 26, 2281, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("nlikesel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1822), _1("nlikesel"), _2(4), _3(true), _4(false), _5(nlikesel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 2281, 26, 2281, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("nlikesel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("restriction selectivity of NOT LIKE"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "nlssort", 1, + AddBuiltinFunc(_0(1849), _1("nlssort"), _2(2), _3(false), _4(false), _5(nlssort), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("nlssort"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "node_oid_name", 1, - AddBuiltinFunc(_0(3950), _1("node_oid_name"), _2(1), _3(true), _4(false), _5(node_oid_name), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("node_oid_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3950), _1("node_oid_name"), _2(1), _3(true), _4(false), _5(node_oid_name), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("node_oid_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "notlike", 3, - AddBuiltinFunc(_0(1570), _1("notlike"), _2(2), _3(true), _4(false), _5(textnlike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textnlike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1572), _1("notlike"), _2(2), _3(true), _4(false), _5(namenlike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 19, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("namenlike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2008), _1("notlike"), _2(2), _3(true), _4(false), _5(byteanlike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 17, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteanlike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1570), _1("notlike"), _2(2), _3(true), _4(false), _5(textnlike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textnlike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1572), _1("notlike"), _2(2), _3(true), _4(false), _5(namenlike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 19, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("namenlike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("does not match LIKE expression"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2008), _1("notlike"), _2(2), _3(true), _4(false), _5(byteanlike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 17, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteanlike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "now", 1, - AddBuiltinFunc(_0(NOWFUNCOID), _1("now"), _2(0), _3(true), _4(false), _5(now), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("now"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(NOWFUNCOID), _1("now"), _2(0), _3(true), _4(false), _5(now), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("now"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("current transaction time"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "npoints", 2, - AddBuiltinFunc(_0(1545), _1("npoints"), _2(1), _3(true), _4(false), _5(path_npoints), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_npoints"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1556), _1("npoints"), _2(1), _3(true), _4(false), _5(poly_npoints), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_npoints"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1545), _1("npoints"), _2(1), _3(true), _4(false), _5(path_npoints), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_npoints"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("number of points"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1556), _1("npoints"), _2(1), _3(true), _4(false), _5(poly_npoints), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_npoints"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("number of points"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "nth_value", 1, - AddBuiltinFunc(_0(3114), _1("nth_value"), _2(2), _3(true), _4(false), _5(window_nth_value), _6(2283), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(true), _16(false), _17(false), _18('i'), _19(0), _20(2, 2283, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("window_nth_value"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3114), _1("nth_value"), _2(2), _3(true), _4(false), _5(window_nth_value), _6(2283), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(true), _16(false), _17(false), _18('i'), _19(0), _20(2, 2283, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("window_nth_value"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("fetch the Nth row value"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ntile", 1, - AddBuiltinFunc(_0(3105), _1("ntile"), _2(1), _3(true), _4(false), _5(window_ntile), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(true), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("window_ntile"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3105), _1("ntile"), _2(1), _3(true), _4(false), _5(window_ntile), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(true), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("window_ntile"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("split rows into N groups"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( - "numeric", 7, - AddBuiltinFunc(_0(1703), _1("numeric"), _2(2), _3(true), _4(false), _5(numeric), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(3157), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1740), _1("numeric"), _2(1), _3(true), _4(false), _5(int4_numeric), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4_numeric"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1742), _1("numeric"), _2(1), _3(true), _4(false), _5(float4_numeric), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4_numeric"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1743), _1("numeric"), _2(1), _3(true), _4(false), _5(float8_numeric), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_numeric"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1781), _1("numeric"), _2(1), _3(true), _4(false), _5(int8_numeric), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8_numeric"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1782), _1("numeric"), _2(1), _3(true), _4(false), _5(int2_numeric), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2_numeric"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(CASH2NUMERICFUNCOID), _1("numeric"), _2(1), _3(true), _4(false), _5(cash_numeric), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_numeric"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + "numeric", 9, + AddBuiltinFunc(_0(1703), _1("numeric"), _2(2), _3(true), _4(false), _5(numeric), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(3157), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("adjust numeric to typmod precision/scale"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1740), _1("numeric"), _2(1), _3(true), _4(false), _5(int4_numeric), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4_numeric"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert int4 to numeric"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1742), _1("numeric"), _2(1), _3(true), _4(false), _5(float4_numeric), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4_numeric"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert float4 to numeric"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1743), _1("numeric"), _2(1), _3(true), _4(false), _5(float8_numeric), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_numeric"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert float8 to numeric"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1781), _1("numeric"), _2(1), _3(true), _4(false), _5(int8_numeric), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8_numeric"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert int8 to numeric"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1782), _1("numeric"), _2(1), _3(true), _4(false), _5(int2_numeric), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2_numeric"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert int2 to numeric"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(CASH2NUMERICFUNCOID), _1("numeric"), _2(1), _3(true), _4(false), _5(cash_numeric), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cash_numeric"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("convert money to numeric"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(6422), _1("numeric"), _2(1), _3(true), _4(false), _5(int16_numeric), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 34), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int16_numeric"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(6433), _1("numeric"), _2(1), _3(true), _4(false), _5(bool_numeric), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bool_numeric"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), ), AddFuncGroup( "numeric_abs", 1, - AddBuiltinFunc(_0(1704), _1("numeric_abs"), _2(1), _3(true), _4(false), _5(numeric_abs), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_abs"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1704), _1("numeric_abs"), _2(1), _3(true), _4(false), _5(numeric_abs), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_abs"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("sign of value"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_accum", 1, - AddBuiltinFunc(_0(1833), _1("numeric_accum"), _2(2), _3(true), _4(false), _5(numeric_accum), _6(1231), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1231, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_accum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1833), _1("numeric_accum"), _2(2), _3(true), _4(false), _5(numeric_accum), _6(1231), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1231, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_accum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate transition function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_add", 1, - AddBuiltinFunc(_0(1724), _1("numeric_add"), _2(2), _3(true), _4(false), _5(numeric_add), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_add"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1724), _1("numeric_add"), _2(2), _3(true), _4(false), _5(numeric_add), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_add"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_avg", 1, - AddBuiltinFunc(_0(1837), _1("numeric_avg"), _2(1), _3(true), _4(false), _5(numeric_avg), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1231), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_avg"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1837), _1("numeric_avg"), _2(1), _3(true), _4(false), _5(numeric_avg), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1231), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_avg"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate final function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_avg_accum", 1, - AddBuiltinFunc(_0(2858), _1("numeric_avg_accum"), _2(2), _3(true), _4(false), _5(numeric_avg_accum), _6(1231), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1231, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_avg_accum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2858), _1("numeric_avg_accum"), _2(2), _3(true), _4(false), _5(numeric_avg_accum), _6(1231), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1231, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_avg_accum"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate transition function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_avg_collect", 1, - AddBuiltinFunc(_0(2964), _1("numeric_avg_collect"), _2(2), _3(true), _4(false), _5(numeric_avg_collect), _6(1231), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1231, 1231), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_avg_collect"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2964), _1("numeric_avg_collect"), _2(2), _3(true), _4(false), _5(numeric_avg_collect), _6(1231), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1231, 1231), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_avg_collect"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "numeric_bool", 1, + AddBuiltinFunc(_0(6434), _1("numeric_bool"), _2(1), _3(true), _4(false), _5(numeric_bool), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_bool"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_bpchar", 1, - AddBuiltinFunc(_0(4072), _1("numeric_bpchar"), _2(1), _3(true), _4(false), _5(numeric_bpchar), _6(1042), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_bpchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4072), _1("numeric_bpchar"), _2(1), _3(true), _4(false), _5(numeric_bpchar), _6(1042), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_bpchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_cmp", 1, - AddBuiltinFunc(_0(1769), _1("numeric_cmp"), _2(2), _3(true), _4(false), _5(numeric_cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1769), _1("numeric_cmp"), _2(2), _3(true), _4(false), _5(numeric_cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_collect", 1, - AddBuiltinFunc(_0(2968), _1("numeric_collect"), _2(2), _3(true), _4(false), _5(numeric_collect), _6(1231), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1231, 1231), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_collect"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2968), _1("numeric_collect"), _2(2), _3(true), _4(false), _5(numeric_collect), _6(1231), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1231, 1231), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_collect"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_div", 1, - AddBuiltinFunc(_0(1727), _1("numeric_div"), _2(2), _3(true), _4(false), _5(numeric_div), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_div"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1727), _1("numeric_div"), _2(2), _3(true), _4(false), _5(numeric_div), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_div"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_div_trunc", 1, - AddBuiltinFunc(_0(1980), _1("numeric_div_trunc"), _2(2), _3(true), _4(false), _5(numeric_div_trunc), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_div_trunc"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1980), _1("numeric_div_trunc"), _2(2), _3(true), _4(false), _5(numeric_div_trunc), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_div_trunc"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("trunc(x/y)"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_eq", 1, - AddBuiltinFunc(_0(1718), _1("numeric_eq"), _2(2), _3(true), _4(false), _5(numeric_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1718), _1("numeric_eq"), _2(2), _3(true), _4(false), _5(numeric_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_exp", 1, - AddBuiltinFunc(_0(1733), _1("numeric_exp"), _2(1), _3(true), _4(false), _5(numeric_exp), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_exp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1733), _1("numeric_exp"), _2(1), _3(true), _4(false), _5(numeric_exp), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_exp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("natural exponential (e^x)"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_fac", 1, - AddBuiltinFunc(_0(111), _1("numeric_fac"), _2(1), _3(true), _4(false), _5(numeric_fac), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_fac"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(111), _1("numeric_fac"), _2(1), _3(true), _4(false), _5(numeric_fac), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_fac"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("factorial"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_ge", 1, - AddBuiltinFunc(_0(1721), _1("numeric_ge"), _2(2), _3(true), _4(false), _5(numeric_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1721), _1("numeric_ge"), _2(2), _3(true), _4(false), _5(numeric_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_gt", 1, - AddBuiltinFunc(_0(1720), _1("numeric_gt"), _2(2), _3(true), _4(false), _5(numeric_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1720), _1("numeric_gt"), _2(2), _3(true), _4(false), _5(numeric_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_in", 1, - AddBuiltinFunc(_0(1701), _1("numeric_in"), _2(3), _3(true), _4(false), _5(numeric_in), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2275, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1701), _1("numeric_in"), _2(3), _3(true), _4(false), _5(numeric_in), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2275, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_inc", 1, - AddBuiltinFunc(_0(1764), _1("numeric_inc"), _2(1), _3(true), _4(false), _5(numeric_inc), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_inc"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1764), _1("numeric_inc"), _2(1), _3(true), _4(false), _5(numeric_inc), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_inc"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("increment by one"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_int1", 1, - AddBuiltinFunc(_0(5522), _1("numeric_int1"), _2(1), _3(true), _4(false), _5(numeric_int1), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_int1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5522), _1("numeric_int1"), _2(1), _3(true), _4(false), _5(numeric_int1), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_int1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_larger", 1, - AddBuiltinFunc(_0(1767), _1("numeric_larger"), _2(2), _3(true), _4(false), _5(numeric_larger), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_larger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1767), _1("numeric_larger"), _2(2), _3(true), _4(false), _5(numeric_larger), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_larger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("larger of two"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_le", 1, - AddBuiltinFunc(_0(1723), _1("numeric_le"), _2(2), _3(true), _4(false), _5(numeric_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1723), _1("numeric_le"), _2(2), _3(true), _4(false), _5(numeric_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_list_agg_noarg2_transfn", 1, - AddBuiltinFunc(_0(3577), _1("numeric_list_agg_noarg2_transfn"), _2(2), _3(false), _4(false), _5(numeric_list_agg_noarg2_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_list_agg_noarg2_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3577), _1("numeric_list_agg_noarg2_transfn"), _2(2), _3(false), _4(false), _5(numeric_list_agg_noarg2_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_list_agg_noarg2_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_list_agg_transfn", 1, - AddBuiltinFunc(_0(3575), _1("numeric_list_agg_transfn"), _2(3), _3(false), _4(false), _5(numeric_list_agg_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 1700, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_list_agg_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3575), _1("numeric_list_agg_transfn"), _2(3), _3(false), _4(false), _5(numeric_list_agg_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 1700, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_list_agg_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_ln", 1, - AddBuiltinFunc(_0(1735), _1("numeric_ln"), _2(1), _3(true), _4(false), _5(numeric_ln), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_ln"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1735), _1("numeric_ln"), _2(1), _3(true), _4(false), _5(numeric_ln), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_ln"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("natural logarithm"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_log", 1, - AddBuiltinFunc(_0(1737), _1("numeric_log"), _2(2), _3(true), _4(false), _5(numeric_log), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_log"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1737), _1("numeric_log"), _2(2), _3(true), _4(false), _5(numeric_log), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_log"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("logarithm base m of n"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_lt", 1, - AddBuiltinFunc(_0(1722), _1("numeric_lt"), _2(2), _3(true), _4(false), _5(numeric_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1722), _1("numeric_lt"), _2(2), _3(true), _4(false), _5(numeric_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_mod", 1, - AddBuiltinFunc(_0(1729), _1("numeric_mod"), _2(2), _3(true), _4(false), _5(numeric_mod), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_mod"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1729), _1("numeric_mod"), _2(2), _3(true), _4(false), _5(numeric_mod), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_mod"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("modulus"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_mul", 1, - AddBuiltinFunc(_0(1726), _1("numeric_mul"), _2(2), _3(true), _4(false), _5(numeric_mul), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_mul"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1726), _1("numeric_mul"), _2(2), _3(true), _4(false), _5(numeric_mul), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_mul"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_ne", 1, - AddBuiltinFunc(_0(1719), _1("numeric_ne"), _2(2), _3(true), _4(false), _5(numeric_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1719), _1("numeric_ne"), _2(2), _3(true), _4(false), _5(numeric_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_out", 1, - AddBuiltinFunc(_0(1702), _1("numeric_out"), _2(1), _3(true), _4(false), _5(numeric_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1702), _1("numeric_out"), _2(1), _3(true), _4(false), _5(numeric_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_power", 1, - AddBuiltinFunc(_0(1739), _1("numeric_power"), _2(2), _3(true), _4(false), _5(numeric_power), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_power"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1739), _1("numeric_power"), _2(2), _3(true), _4(false), _5(numeric_power), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_power"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("exponentiation"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_recv", 1, - AddBuiltinFunc(_0(2460), _1("numeric_recv"), _2(3), _3(true), _4(false), _5(numeric_recv), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2460), _1("numeric_recv"), _2(3), _3(true), _4(false), _5(numeric_recv), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_send", 1, - AddBuiltinFunc(_0(2461), _1("numeric_send"), _2(1), _3(true), _4(false), _5(numeric_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2461), _1("numeric_send"), _2(1), _3(true), _4(false), _5(numeric_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_smaller", 1, - AddBuiltinFunc(_0(1766), _1("numeric_smaller"), _2(2), _3(true), _4(false), _5(numeric_smaller), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_smaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1766), _1("numeric_smaller"), _2(2), _3(true), _4(false), _5(numeric_smaller), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_smaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("smaller of two"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_sortsupport", 1, - AddBuiltinFunc(_0(3283), _1("numeric_sortsupport"), _2(1), _3(true), _4(false), _5(numeric_sortsupport), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_sortsupport"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3283), _1("numeric_sortsupport"), _2(1), _3(true), _4(false), _5(numeric_sortsupport), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_sortsupport"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("sort support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_sqrt", 1, - AddBuiltinFunc(_0(1731), _1("numeric_sqrt"), _2(1), _3(true), _4(false), _5(numeric_sqrt), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_sqrt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1731), _1("numeric_sqrt"), _2(1), _3(true), _4(false), _5(numeric_sqrt), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_sqrt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("square root"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_stddev_pop", 1, - AddBuiltinFunc(_0(2596), _1("numeric_stddev_pop"), _2(1), _3(true), _4(false), _5(numeric_stddev_pop), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1231), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_stddev_pop"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2596), _1("numeric_stddev_pop"), _2(1), _3(true), _4(false), _5(numeric_stddev_pop), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1231), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_stddev_pop"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate final function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_stddev_samp", 1, - AddBuiltinFunc(_0(1839), _1("numeric_stddev_samp"), _2(1), _3(true), _4(false), _5(numeric_stddev_samp), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1231), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_stddev_samp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1839), _1("numeric_stddev_samp"), _2(1), _3(true), _4(false), _5(numeric_stddev_samp), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1231), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_stddev_samp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate final function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_sub", 1, - AddBuiltinFunc(_0(1725), _1("numeric_sub"), _2(2), _3(true), _4(false), _5(numeric_sub), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_sub"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1725), _1("numeric_sub"), _2(2), _3(true), _4(false), _5(numeric_sub), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_sub"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_text", 1, - AddBuiltinFunc(_0(4171), _1("numeric_text"), _2(1), _3(true), _4(false), _5(numeric_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4171), _1("numeric_text"), _2(1), _3(true), _4(false), _5(numeric_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_transform", 1, - AddBuiltinFunc(_0(3157), _1("numeric_transform"), _2(1), _3(true), _4(false), _5(numeric_transform), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_transform"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3157), _1("numeric_transform"), _2(1), _3(true), _4(false), _5(numeric_transform), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_transform"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_uminus", 1, - AddBuiltinFunc(_0(1771), _1("numeric_uminus"), _2(1), _3(true), _4(false), _5(numeric_uminus), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_uminus"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1771), _1("numeric_uminus"), _2(1), _3(true), _4(false), _5(numeric_uminus), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_uminus"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_uplus", 1, - AddBuiltinFunc(_0(1915), _1("numeric_uplus"), _2(1), _3(true), _4(false), _5(numeric_uplus), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_uplus"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1915), _1("numeric_uplus"), _2(1), _3(true), _4(false), _5(numeric_uplus), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_uplus"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_var_pop", 1, - AddBuiltinFunc(_0(2514), _1("numeric_var_pop"), _2(1), _3(true), _4(false), _5(numeric_var_pop), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1231), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_var_pop"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2514), _1("numeric_var_pop"), _2(1), _3(true), _4(false), _5(numeric_var_pop), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1231), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_var_pop"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate final function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_var_samp", 1, - AddBuiltinFunc(_0(1838), _1("numeric_var_samp"), _2(1), _3(true), _4(false), _5(numeric_var_samp), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1231), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_var_samp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1838), _1("numeric_var_samp"), _2(1), _3(true), _4(false), _5(numeric_var_samp), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1231), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_var_samp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate final function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numeric_varchar", 1, - AddBuiltinFunc(_0(4183), _1("numeric_varchar"), _2(1), _3(true), _4(false), _5(numeric_varchar), _6(1043), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_varchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4183), _1("numeric_varchar"), _2(1), _3(true), _4(false), _5(numeric_varchar), _6(1043), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_varchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numerictypmodin", 1, - AddBuiltinFunc(_0(2917), _1("numerictypmodin"), _2(1), _3(true), _4(false), _5(numerictypmodin), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1263), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numerictypmodin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2917), _1("numerictypmodin"), _2(1), _3(true), _4(false), _5(numerictypmodin), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1263), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numerictypmodin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O typmod"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numerictypmodout", 1, - AddBuiltinFunc(_0(2918), _1("numerictypmodout"), _2(1), _3(true), _4(false), _5(numerictypmodout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numerictypmodout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2918), _1("numerictypmodout"), _2(1), _3(true), _4(false), _5(numerictypmodout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numerictypmodout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O typmod"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numnode", 1, - AddBuiltinFunc(_0(3672), _1("numnode"), _2(1), _3(true), _4(false), _5(tsquery_numnode), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsquery_numnode"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3672), _1("numnode"), _2(1), _3(true), _4(false), _5(tsquery_numnode), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsquery_numnode"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("number of nodes"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numrange", 2, - AddBuiltinFunc(_0(3844), _1("numrange"), _2(2), _3(false), _4(false), _5(range_constructor2), _6(3906), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_constructor2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3845), _1("numrange"), _2(3), _3(false), _4(false), _5(range_constructor3), _6(3906), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 1700, 1700, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_constructor3"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3844), _1("numrange"), _2(2), _3(false), _4(false), _5(range_constructor2), _6(3906), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_constructor2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("numrange constructor"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3845), _1("numrange"), _2(3), _3(false), _4(false), _5(range_constructor3), _6(3906), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 1700, 1700, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_constructor3"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("numrange constructor"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numrange_subdiff", 1, - AddBuiltinFunc(_0(3924), _1("numrange_subdiff"), _2(2), _3(true), _4(false), _5(numrange_subdiff), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numrange_subdiff"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3924), _1("numrange_subdiff"), _2(2), _3(true), _4(false), _5(numrange_subdiff), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numrange_subdiff"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("float8 difference of two numeric values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numtoday", 4, - AddBuiltinFunc(_0(3189), _1("numtoday"), _2(1), _3(true), _4(false), _5(int1_interval), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1_interval"), _26("-"), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3190), _1("numtoday"), _2(1), _3(true), _4(false), _5(int2_interval), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2_interval"), _26("-"), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3191), _1("numtoday"), _2(1), _3(true), _4(false), _5(int4_interval), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4_interval"), _26("-"), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3842), _1("numtoday"), _2(1), _3(true), _4(false), _5(numeric_interval), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_interval"), _26("-"), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3189), _1("numtoday"), _2(1), _3(true), _4(false), _5(int1_interval), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 5545), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int1_interval"), _26("-"), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3190), _1("numtoday"), _2(1), _3(true), _4(false), _5(int2_interval), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int2_interval"), _26("-"), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3191), _1("numtoday"), _2(1), _3(true), _4(false), _5(int4_interval), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4_interval"), _26("-"), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3842), _1("numtoday"), _2(1), _3(true), _4(false), _5(numeric_interval), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_interval"), _26("-"), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "numtodsinterval", 1, - AddBuiltinFunc(_0(3172), _1("numtodsinterval"), _2(2), _3(true), _4(false), _5(numtodsinterval), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numtodsinterval"), _26("-"), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3172), _1("numtodsinterval"), _2(2), _3(true), _4(false), _5(numtodsinterval), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numtodsinterval"), _26("-"), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "nvarchar2", 1, - AddBuiltinFunc(_0(3961), _1("nvarchar2"), _2(3), _3(true), _4(false), _5(nvarchar2), _6(3969), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(3097), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 3969, 23, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("nvarchar2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3961), _1("nvarchar2"), _2(3), _3(true), _4(false), _5(nvarchar2), _6(3969), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(3097), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 3969, 23, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("nvarchar2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "nvarchar2in", 1, - AddBuiltinFunc(_0(3962), _1("nvarchar2in"), _2(3), _3(true), _4(false), _5(nvarchar2in), _6(3969), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2275, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("nvarchar2in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3962), _1("nvarchar2in"), _2(3), _3(true), _4(false), _5(nvarchar2in), _6(3969), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2275, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("nvarchar2in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "nvarchar2out", 1, - AddBuiltinFunc(_0(3963), _1("nvarchar2out"), _2(1), _3(true), _4(false), _5(nvarchar2out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3969), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("nvarchar2out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3963), _1("nvarchar2out"), _2(1), _3(true), _4(false), _5(nvarchar2out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3969), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("nvarchar2out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "nvarchar2recv", 1, - AddBuiltinFunc(_0(3966), _1("nvarchar2recv"), _2(3), _3(true), _4(false), _5(nvarchar2recv), _6(3969), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 2281, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("nvarchar2recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3966), _1("nvarchar2recv"), _2(3), _3(true), _4(false), _5(nvarchar2recv), _6(3969), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 2281, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("nvarchar2recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "nvarchar2send", 1, - AddBuiltinFunc(_0(3967), _1("nvarchar2send"), _2(1), _3(true), _4(false), _5(nvarchar2send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 3969), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("nvarchar2send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3967), _1("nvarchar2send"), _2(1), _3(true), _4(false), _5(nvarchar2send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 3969), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("nvarchar2send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "nvarchar2typmodin", 1, - AddBuiltinFunc(_0(3964), _1("nvarchar2typmodin"), _2(1), _3(true), _4(false), _5(nvarchar2typmodin), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1263), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("nvarchar2typmodin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3964), _1("nvarchar2typmodin"), _2(1), _3(true), _4(false), _5(nvarchar2typmodin), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1263), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("nvarchar2typmodin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "nvarchar2typmodout", 1, - AddBuiltinFunc(_0(3965), _1("nvarchar2typmodout"), _2(1), _3(true), _4(false), _5(nvarchar2typmodout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("nvarchar2typmodout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3965), _1("nvarchar2typmodout"), _2(1), _3(true), _4(false), _5(nvarchar2typmodout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("nvarchar2typmodout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "obj_description", 2, - AddBuiltinFunc(_0(1215), _1("obj_description"), _2(2), _3(true), _4(false), _5(NULL), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(100), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select description from pg_catalog.pg_description where objoid = $1 and classoid = (select oid from pg_catalog.pg_class where relname = $2 and relnamespace = 11) and objsubid = 0"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1348), _1("obj_description"), _2(1), _3(true), _4(false), _5(NULL), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(100), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select description from pg_catalog.pg_description where objoid = $1 and objsubid = 0"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1215), _1("obj_description"), _2(2), _3(true), _4(false), _5(NULL), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(100), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select description from pg_catalog.pg_description where objoid = $1 and classoid = (select oid from pg_catalog.pg_class where relname = $2 and relnamespace = 11) and objsubid = 0"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("get description for object id and catalog name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1348), _1("obj_description"), _2(1), _3(true), _4(false), _5(NULL), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(100), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select description from pg_catalog.pg_description where objoid = $1 and objsubid = 0"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("deprecated, use two-argument form instead"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "octet_length", 4, - AddBuiltinFunc(_0(720), _1("octet_length"), _2(1), _3(true), _4(false), _5(byteaoctetlen), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteaoctetlen"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1374), _1("octet_length"), _2(1), _3(true), _4(false), _5(textoctetlen), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textoctetlen"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1375), _1("octet_length"), _2(1), _3(true), _4(false), _5(bpcharoctetlen), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpcharoctetlen"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1682), _1("octet_length"), _2(1), _3(true), _4(false), _5(bitoctetlength), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1560), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitoctetlength"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(720), _1("octet_length"), _2(1), _3(true), _4(false), _5(byteaoctetlen), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteaoctetlen"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("octet length"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1374), _1("octet_length"), _2(1), _3(true), _4(false), _5(textoctetlen), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textoctetlen"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1375), _1("octet_length"), _2(1), _3(true), _4(false), _5(bpcharoctetlen), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bpcharoctetlen"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("octet length"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1682), _1("octet_length"), _2(1), _3(true), _4(false), _5(bitoctetlength), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1560), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitoctetlength"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("octet length"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( - "oid", 1, - AddBuiltinFunc(_0(1287), _1("oid"), _2(1), _3(true), _4(false), _5(i8tooid), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("i8tooid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + "oid", 2, + AddBuiltinFunc(_0(1287), _1("oid"), _2(1), _3(true), _4(false), _5(i8tooid), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("i8tooid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert int8 to oid"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(6418), _1("oid"), _2(1), _3(true), _4(false), _5(i16tooid), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 34), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("i16tooid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "oideq", 1, - AddBuiltinFunc(_0(184), _1("oideq"), _2(2), _3(true), _4(false), _5(oideq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 26, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oideq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(184), _1("oideq"), _2(2), _3(true), _4(false), _5(oideq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 26, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oideq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "oidge", 1, - AddBuiltinFunc(_0(1639), _1("oidge"), _2(2), _3(true), _4(false), _5(oidge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 26, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1639), _1("oidge"), _2(2), _3(true), _4(false), _5(oidge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 26, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "oidgt", 1, - AddBuiltinFunc(_0(1638), _1("oidgt"), _2(2), _3(true), _4(false), _5(oidgt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 26, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidgt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1638), _1("oidgt"), _2(2), _3(true), _4(false), _5(oidgt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 26, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidgt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "oidin", 1, - AddBuiltinFunc(_0(1798), _1("oidin"), _2(1), _3(true), _4(false), _5(oidin), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1798), _1("oidin"), _2(1), _3(true), _4(false), _5(oidin), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "oidlarger", 1, - AddBuiltinFunc(_0(1965), _1("oidlarger"), _2(2), _3(true), _4(false), _5(oidlarger), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 26, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidlarger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1965), _1("oidlarger"), _2(2), _3(true), _4(false), _5(oidlarger), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 26, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidlarger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("larger of two"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "oidle", 1, - AddBuiltinFunc(_0(717), _1("oidle"), _2(2), _3(true), _4(false), _5(oidle), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 26, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidle"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(717), _1("oidle"), _2(2), _3(true), _4(false), _5(oidle), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 26, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidle"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "oidlt", 1, - AddBuiltinFunc(_0(716), _1("oidlt"), _2(2), _3(true), _4(false), _5(oidlt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 26, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidlt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(716), _1("oidlt"), _2(2), _3(true), _4(false), _5(oidlt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 26, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidlt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "oidne", 1, - AddBuiltinFunc(_0(185), _1("oidne"), _2(2), _3(true), _4(false), _5(oidne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 26, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(185), _1("oidne"), _2(2), _3(true), _4(false), _5(oidne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 26, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "oidout", 1, - AddBuiltinFunc(_0(1799), _1("oidout"), _2(1), _3(true), _4(false), _5(oidout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1799), _1("oidout"), _2(1), _3(true), _4(false), _5(oidout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "oidrecv", 1, - AddBuiltinFunc(_0(2418), _1("oidrecv"), _2(1), _3(true), _4(false), _5(oidrecv), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2418), _1("oidrecv"), _2(1), _3(true), _4(false), _5(oidrecv), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "oidsend", 1, - AddBuiltinFunc(_0(2419), _1("oidsend"), _2(1), _3(true), _4(false), _5(oidsend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidsend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2419), _1("oidsend"), _2(1), _3(true), _4(false), _5(oidsend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidsend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "oidsmaller", 1, - AddBuiltinFunc(_0(1966), _1("oidsmaller"), _2(2), _3(true), _4(false), _5(oidsmaller), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 26, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidsmaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1966), _1("oidsmaller"), _2(2), _3(true), _4(false), _5(oidsmaller), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 26, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidsmaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("smaller of two"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "oidvectoreq", 1, - AddBuiltinFunc(_0(679), _1("oidvectoreq"), _2(2), _3(true), _4(false), _5(oidvectoreq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 30, 30), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidvectoreq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(679), _1("oidvectoreq"), _2(2), _3(true), _4(false), _5(oidvectoreq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 30, 30), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidvectoreq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "oidvectorge", 1, - AddBuiltinFunc(_0(680), _1("oidvectorge"), _2(2), _3(true), _4(false), _5(oidvectorge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 30, 30), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidvectorge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(680), _1("oidvectorge"), _2(2), _3(true), _4(false), _5(oidvectorge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 30, 30), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidvectorge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "oidvectorgt", 1, - AddBuiltinFunc(_0(681), _1("oidvectorgt"), _2(2), _3(true), _4(false), _5(oidvectorgt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 30, 30), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidvectorgt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(681), _1("oidvectorgt"), _2(2), _3(true), _4(false), _5(oidvectorgt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 30, 30), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidvectorgt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "oidvectorin", 1, - AddBuiltinFunc(_0(54), _1("oidvectorin"), _2(1), _3(true), _4(false), _5(oidvectorin), _6(30), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidvectorin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(54), _1("oidvectorin"), _2(1), _3(true), _4(false), _5(oidvectorin), _6(30), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidvectorin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "oidvectorin_extend", 1, - AddBuiltinFunc(_0(91), _1("oidvectorin_extend"), _2(1), _3(true), _4(false), _5(oidvectorin_extend), _6(32), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidvectorin_extend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(91), _1("oidvectorin_extend"), _2(1), _3(true), _4(false), _5(oidvectorin_extend), _6(32), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidvectorin_extend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "oidvectorle", 1, - AddBuiltinFunc(_0(678), _1("oidvectorle"), _2(2), _3(true), _4(false), _5(oidvectorle), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 30, 30), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidvectorle"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(678), _1("oidvectorle"), _2(2), _3(true), _4(false), _5(oidvectorle), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 30, 30), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidvectorle"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "oidvectorlt", 1, - AddBuiltinFunc(_0(677), _1("oidvectorlt"), _2(2), _3(true), _4(false), _5(oidvectorlt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 30, 30), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidvectorlt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(677), _1("oidvectorlt"), _2(2), _3(true), _4(false), _5(oidvectorlt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 30, 30), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidvectorlt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "oidvectorne", 1, - AddBuiltinFunc(_0(619), _1("oidvectorne"), _2(2), _3(true), _4(false), _5(oidvectorne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 30, 30), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidvectorne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(619), _1("oidvectorne"), _2(2), _3(true), _4(false), _5(oidvectorne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 30, 30), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidvectorne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "oidvectorout", 1, - AddBuiltinFunc(_0(55), _1("oidvectorout"), _2(1), _3(true), _4(false), _5(oidvectorout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 30), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidvectorout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(55), _1("oidvectorout"), _2(1), _3(true), _4(false), _5(oidvectorout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 30), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidvectorout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "oidvectorout_extend", 1, - AddBuiltinFunc(_0(92), _1("oidvectorout_extend"), _2(1), _3(true), _4(false), _5(oidvectorout_extend), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 32), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidvectorout_extend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(92), _1("oidvectorout_extend"), _2(1), _3(true), _4(false), _5(oidvectorout_extend), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 32), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidvectorout_extend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "oidvectorrecv", 1, - AddBuiltinFunc(_0(2420), _1("oidvectorrecv"), _2(1), _3(true), _4(false), _5(oidvectorrecv), _6(30), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidvectorrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2420), _1("oidvectorrecv"), _2(1), _3(true), _4(false), _5(oidvectorrecv), _6(30), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidvectorrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "oidvectorrecv_extend", 1, - AddBuiltinFunc(_0(3122), _1("oidvectorrecv_extend"), _2(1), _3(true), _4(false), _5(oidvectorrecv_extend), _6(32), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidvectorrecv_extend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3122), _1("oidvectorrecv_extend"), _2(1), _3(true), _4(false), _5(oidvectorrecv_extend), _6(32), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidvectorrecv_extend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "oidvectorsend", 1, - AddBuiltinFunc(_0(2421), _1("oidvectorsend"), _2(1), _3(true), _4(false), _5(oidvectorsend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 30), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidvectorsend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2421), _1("oidvectorsend"), _2(1), _3(true), _4(false), _5(oidvectorsend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 30), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidvectorsend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "oidvectorsend_extend", 1, - AddBuiltinFunc(_0(3123), _1("oidvectorsend_extend"), _2(1), _3(true), _4(false), _5(oidvectorsend_extend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 32), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidvectorsend_extend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3123), _1("oidvectorsend_extend"), _2(1), _3(true), _4(false), _5(oidvectorsend_extend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 32), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidvectorsend_extend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "oidvectortypes", 1, - AddBuiltinFunc(_0(1349), _1("oidvectortypes"), _2(1), _3(true), _4(false), _5(oidvectortypes), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 30), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidvectortypes"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1349), _1("oidvectortypes"), _2(1), _3(true), _4(false), _5(oidvectortypes), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 30), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("oidvectortypes"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("print type names of oidvector field"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "on_pb", 1, - AddBuiltinFunc(_0(136), _1("on_pb"), _2(2), _3(true), _4(false), _5(on_pb), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("on_pb"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(136), _1("on_pb"), _2(2), _3(true), _4(false), _5(on_pb), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("on_pb"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "on_pl", 1, - AddBuiltinFunc(_0(959), _1("on_pl"), _2(2), _3(true), _4(false), _5(on_pl), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 628), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("on_pl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(959), _1("on_pl"), _2(2), _3(true), _4(false), _5(on_pl), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 628), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("on_pl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "on_ppath", 1, - AddBuiltinFunc(_0(137), _1("on_ppath"), _2(2), _3(true), _4(false), _5(on_ppath), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("on_ppath"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(137), _1("on_ppath"), _2(2), _3(true), _4(false), _5(on_ppath), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("on_ppath"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "on_ps", 1, - AddBuiltinFunc(_0(369), _1("on_ps"), _2(2), _3(true), _4(false), _5(on_ps), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("on_ps"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(369), _1("on_ps"), _2(2), _3(true), _4(false), _5(on_ps), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("on_ps"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "on_sb", 1, - AddBuiltinFunc(_0(372), _1("on_sb"), _2(2), _3(true), _4(false), _5(on_sb), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 601, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("on_sb"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(372), _1("on_sb"), _2(2), _3(true), _4(false), _5(on_sb), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 601, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("on_sb"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "on_sl", 1, - AddBuiltinFunc(_0(960), _1("on_sl"), _2(2), _3(true), _4(false), _5(on_sl), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 601, 628), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("on_sl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(960), _1("on_sl"), _2(2), _3(true), _4(false), _5(on_sl), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 601, 628), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("on_sl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "opaque_in", 1, - AddBuiltinFunc(_0(2306), _1("opaque_in"), _2(1), _3(false), _4(false), _5(opaque_in), _6(2282), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("opaque_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2306), _1("opaque_in"), _2(1), _3(false), _4(false), _5(opaque_in), _6(2282), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("opaque_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "opaque_out", 1, - AddBuiltinFunc(_0(2307), _1("opaque_out"), _2(1), _3(true), _4(false), _5(opaque_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2282), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("opaque_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2307), _1("opaque_out"), _2(1), _3(true), _4(false), _5(opaque_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2282), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("opaque_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "opengauss_version", 1, - AddBuiltinFunc(_0(90), _1("opengauss_version"), _2(0), _3(true), _4(false), _5(opengauss_version), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("opengauss_version"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(90), _1("opengauss_version"), _2(0), _3(true), _4(false), _5(opengauss_version), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("opengauss_version"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ordered_set_transition", 1, - AddBuiltinFunc(_0(4448), _1("ordered_set_transition"), _2(2), _3(false), _4(false), _5(ordered_set_transition), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2276), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ordered_set_transition"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4448), _1("ordered_set_transition"), _2(2), _3(false), _4(false), _5(ordered_set_transition), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2276), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ordered_set_transition"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate transition function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "overlaps", 13, - AddBuiltinFunc(_0(1271), _1("overlaps"), _2(4), _3(false), _4(false), _5(overlaps_timetz), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 1266, 1266, 1266, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("overlaps_timetz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1304), _1("overlaps"), _2(4), _3(false), _4(false), _5(overlaps_timestamp), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 1184, 1184, 1184, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("overlaps_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(OVERLAPSV1FUNCOID), _1("overlaps"), _2(4), _3(false), _4(false), _5(NULL), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 1184, 1186, 1184, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select ($1, ($1 + $2)) overlaps ($3, ($3 + $4))"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(OVERLAPSV2FUNCOID), _1("overlaps"), _2(4), _3(false), _4(false), _5(NULL), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 1184, 1184, 1184, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select ($1, $2) overlaps ($3, ($3 + $4))"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(OVERLAPSV3FUNCOID), _1("overlaps"), _2(4), _3(false), _4(false), _5(NULL), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 1184, 1186, 1184, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select ($1, ($1 + $2)) overlaps ($3, $4)"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1308), _1("overlaps"), _2(4), _3(false), _4(false), _5(overlaps_time), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 1083, 1083, 1083, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("overlaps_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1309), _1("overlaps"), _2(4), _3(false), _4(false), _5(NULL), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 1083, 1186, 1083, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select ($1, ($1 + $2)) overlaps ($3, ($3 + $4))"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1310), _1("overlaps"), _2(4), _3(false), _4(false), _5(NULL), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 1083, 1083, 1083, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select ($1, $2) overlaps ($3, ($3 + $4))"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1311), _1("overlaps"), _2(4), _3(false), _4(false), _5(NULL), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 1083, 1186, 1083, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select ($1, ($1 + $2)) overlaps ($3, $4)"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2041), _1("overlaps"), _2(4), _3(false), _4(false), _5(overlaps_timestamp), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 1114, 1114, 1114, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("overlaps_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2042), _1("overlaps"), _2(4), _3(false), _4(false), _5(NULL), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 1114, 1186, 1114, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select ($1, ($1 + $2)) overlaps ($3, ($3 + $4))"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2043), _1("overlaps"), _2(4), _3(false), _4(false), _5(NULL), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 1114, 1114, 1114, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select ($1, $2) overlaps ($3, ($3 + $4))"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2044), _1("overlaps"), _2(4), _3(false), _4(false), _5(NULL), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 1114, 1186, 1114, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select ($1, ($1 + $2)) overlaps ($3, $4)"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1271), _1("overlaps"), _2(4), _3(false), _4(false), _5(overlaps_timetz), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 1266, 1266, 1266, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("overlaps_timetz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("intervals overlap?"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1304), _1("overlaps"), _2(4), _3(false), _4(false), _5(overlaps_timestamp), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 1184, 1184, 1184, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("overlaps_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("intervals overlap?"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(OVERLAPSV1FUNCOID), _1("overlaps"), _2(4), _3(false), _4(false), _5(NULL), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 1184, 1186, 1184, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select ($1, ($1 + $2)) overlaps ($3, ($3 + $4))"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("intervals overlap?"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(OVERLAPSV2FUNCOID), _1("overlaps"), _2(4), _3(false), _4(false), _5(NULL), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 1184, 1184, 1184, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select ($1, $2) overlaps ($3, ($3 + $4))"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("intervals overlap?"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(OVERLAPSV3FUNCOID), _1("overlaps"), _2(4), _3(false), _4(false), _5(NULL), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 1184, 1186, 1184, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select ($1, ($1 + $2)) overlaps ($3, $4)"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("intervals overlap?"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1308), _1("overlaps"), _2(4), _3(false), _4(false), _5(overlaps_time), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 1083, 1083, 1083, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("overlaps_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("intervals overlap?"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1309), _1("overlaps"), _2(4), _3(false), _4(false), _5(NULL), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 1083, 1186, 1083, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select ($1, ($1 + $2)) overlaps ($3, ($3 + $4))"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("intervals overlap?"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1310), _1("overlaps"), _2(4), _3(false), _4(false), _5(NULL), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 1083, 1083, 1083, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select ($1, $2) overlaps ($3, ($3 + $4))"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("intervals overlap?"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1311), _1("overlaps"), _2(4), _3(false), _4(false), _5(NULL), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 1083, 1186, 1083, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select ($1, ($1 + $2)) overlaps ($3, $4)"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("intervals overlap?"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2041), _1("overlaps"), _2(4), _3(false), _4(false), _5(overlaps_timestamp), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 1114, 1114, 1114, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("overlaps_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("intervals overlap?"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2042), _1("overlaps"), _2(4), _3(false), _4(false), _5(NULL), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 1114, 1186, 1114, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select ($1, ($1 + $2)) overlaps ($3, ($3 + $4))"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("intervals overlap?"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2043), _1("overlaps"), _2(4), _3(false), _4(false), _5(NULL), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 1114, 1114, 1114, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select ($1, $2) overlaps ($3, ($3 + $4))"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("intervals overlap?"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2044), _1("overlaps"), _2(4), _3(false), _4(false), _5(NULL), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 1114, 1186, 1114, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select ($1, ($1 + $2)) overlaps ($3, $4)"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("intervals overlap?"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "overlay", 6, - AddBuiltinFunc(_0(749), _1("overlay"), _2(4), _3(true), _4(false), _5(byteaoverlay), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 17, 17, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteaoverlay"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(752), _1("overlay"), _2(3), _3(true), _4(false), _5(byteaoverlay_no_len), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 17, 17, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteaoverlay_no_len"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1404), _1("overlay"), _2(4), _3(true), _4(false), _5(textoverlay), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 25, 25, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textoverlay"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1405), _1("overlay"), _2(3), _3(true), _4(false), _5(textoverlay_no_len), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 25, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textoverlay_no_len"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3030), _1("overlay"), _2(4), _3(true), _4(false), _5(bitoverlay), _6(1560), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 1560, 1560, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitoverlay"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3031), _1("overlay"), _2(3), _3(true), _4(false), _5(bitoverlay_no_len), _6(1560), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 1560, 1560, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitoverlay_no_len"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(749), _1("overlay"), _2(4), _3(true), _4(false), _5(byteaoverlay), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 17, 17, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteaoverlay"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("substitute portion of string"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(752), _1("overlay"), _2(3), _3(true), _4(false), _5(byteaoverlay_no_len), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 17, 17, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteaoverlay_no_len"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("substitute portion of string"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1404), _1("overlay"), _2(4), _3(true), _4(false), _5(textoverlay), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 25, 25, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textoverlay"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("substitute portion of string"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1405), _1("overlay"), _2(3), _3(true), _4(false), _5(textoverlay_no_len), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 25, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textoverlay_no_len"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("substitute portion of string"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3030), _1("overlay"), _2(4), _3(true), _4(false), _5(bitoverlay), _6(1560), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 1560, 1560, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitoverlay"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("substitute portion of bitstring"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3031), _1("overlay"), _2(3), _3(true), _4(false), _5(bitoverlay_no_len), _6(1560), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 1560, 1560, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitoverlay_no_len"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("substitute portion of bitstring"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "path", 1, - AddBuiltinFunc(_0(1447), _1("path"), _2(1), _3(true), _4(false), _5(poly_path), _6(602), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_path"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1447), _1("path"), _2(1), _3(true), _4(false), _5(poly_path), _6(602), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_path"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert polygon to path"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "path_add", 1, - AddBuiltinFunc(_0(1435), _1("path_add"), _2(2), _3(true), _4(false), _5(path_add), _6(602), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 602, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_add"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1435), _1("path_add"), _2(2), _3(true), _4(false), _5(path_add), _6(602), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 602, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_add"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "path_add_pt", 1, - AddBuiltinFunc(_0(1436), _1("path_add_pt"), _2(2), _3(true), _4(false), _5(path_add_pt), _6(602), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 602, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_add_pt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1436), _1("path_add_pt"), _2(2), _3(true), _4(false), _5(path_add_pt), _6(602), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 602, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_add_pt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "path_center", 1, - AddBuiltinFunc(_0(226), _1("path_center"), _2(1), _3(true), _4(false), _5(path_center), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_center"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(226), _1("path_center"), _2(1), _3(true), _4(false), _5(path_center), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_center"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("center of"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "path_contain_pt", 1, - AddBuiltinFunc(_0(1426), _1("path_contain_pt"), _2(2), _3(true), _4(false), _5(NULL), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 602, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.on_ppath($2, $1)"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1426), _1("path_contain_pt"), _2(2), _3(true), _4(false), _5(NULL), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 602, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.on_ppath($2, $1)"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "path_distance", 1, - AddBuiltinFunc(_0(370), _1("path_distance"), _2(2), _3(true), _4(false), _5(path_distance), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 602, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_distance"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(370), _1("path_distance"), _2(2), _3(true), _4(false), _5(path_distance), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 602, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_distance"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "path_div_pt", 1, - AddBuiltinFunc(_0(1439), _1("path_div_pt"), _2(2), _3(true), _4(false), _5(path_div_pt), _6(602), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 602, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_div_pt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1439), _1("path_div_pt"), _2(2), _3(true), _4(false), _5(path_div_pt), _6(602), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 602, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_div_pt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "path_in", 1, - AddBuiltinFunc(_0(121), _1("path_in"), _2(1), _3(true), _4(false), _5(path_in), _6(602), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(121), _1("path_in"), _2(1), _3(true), _4(false), _5(path_in), _6(602), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "path_inter", 1, - AddBuiltinFunc(_0(973), _1("path_inter"), _2(2), _3(true), _4(false), _5(path_inter), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 602, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_inter"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(973), _1("path_inter"), _2(2), _3(true), _4(false), _5(path_inter), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 602, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_inter"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "path_length", 1, - AddBuiltinFunc(_0(987), _1("path_length"), _2(1), _3(true), _4(false), _5(path_length), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_length"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(987), _1("path_length"), _2(1), _3(true), _4(false), _5(path_length), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_length"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("sum of path segments"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "path_mul_pt", 1, - AddBuiltinFunc(_0(1438), _1("path_mul_pt"), _2(2), _3(true), _4(false), _5(path_mul_pt), _6(602), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 602, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_mul_pt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1438), _1("path_mul_pt"), _2(2), _3(true), _4(false), _5(path_mul_pt), _6(602), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 602, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_mul_pt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "path_n_eq", 1, - AddBuiltinFunc(_0(984), _1("path_n_eq"), _2(2), _3(true), _4(false), _5(path_n_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 602, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_n_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(984), _1("path_n_eq"), _2(2), _3(true), _4(false), _5(path_n_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 602, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_n_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "path_n_ge", 1, - AddBuiltinFunc(_0(986), _1("path_n_ge"), _2(2), _3(true), _4(false), _5(path_n_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 602, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_n_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(986), _1("path_n_ge"), _2(2), _3(true), _4(false), _5(path_n_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 602, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_n_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "path_n_gt", 1, - AddBuiltinFunc(_0(983), _1("path_n_gt"), _2(2), _3(true), _4(false), _5(path_n_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 602, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_n_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(983), _1("path_n_gt"), _2(2), _3(true), _4(false), _5(path_n_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 602, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_n_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "path_n_le", 1, - AddBuiltinFunc(_0(985), _1("path_n_le"), _2(2), _3(true), _4(false), _5(path_n_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 602, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_n_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(985), _1("path_n_le"), _2(2), _3(true), _4(false), _5(path_n_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 602, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_n_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "path_n_lt", 1, - AddBuiltinFunc(_0(982), _1("path_n_lt"), _2(2), _3(true), _4(false), _5(path_n_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 602, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_n_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(982), _1("path_n_lt"), _2(2), _3(true), _4(false), _5(path_n_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 602, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_n_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "path_npoints", 1, - AddBuiltinFunc(_0(1432), _1("path_npoints"), _2(1), _3(true), _4(false), _5(path_npoints), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_npoints"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1432), _1("path_npoints"), _2(1), _3(true), _4(false), _5(path_npoints), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_npoints"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("number of points"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "path_out", 1, - AddBuiltinFunc(_0(122), _1("path_out"), _2(1), _3(true), _4(false), _5(path_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(122), _1("path_out"), _2(1), _3(true), _4(false), _5(path_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "path_recv", 1, - AddBuiltinFunc(_0(2482), _1("path_recv"), _2(1), _3(true), _4(false), _5(path_recv), _6(602), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2482), _1("path_recv"), _2(1), _3(true), _4(false), _5(path_recv), _6(602), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "path_send", 1, - AddBuiltinFunc(_0(2483), _1("path_send"), _2(1), _3(true), _4(false), _5(path_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2483), _1("path_send"), _2(1), _3(true), _4(false), _5(path_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "path_sub_pt", 1, - AddBuiltinFunc(_0(1437), _1("path_sub_pt"), _2(2), _3(true), _4(false), _5(path_sub_pt), _6(602), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 602, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_sub_pt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1437), _1("path_sub_pt"), _2(2), _3(true), _4(false), _5(path_sub_pt), _6(602), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 602, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_sub_pt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pclose", 1, - AddBuiltinFunc(_0(1433), _1("pclose"), _2(1), _3(true), _4(false), _5(path_close), _6(602), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_close"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1433), _1("pclose"), _2(1), _3(true), _4(false), _5(path_close), _6(602), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_close"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("close path"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "percent_rank", 1, - AddBuiltinFunc(_0(3103), _1("percent_rank"), _2(0), _3(false), _4(false), _5(window_percent_rank), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(true), _16(false), _17(false), _18('i'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("window_percent_rank"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3103), _1("percent_rank"), _2(0), _3(false), _4(false), _5(window_percent_rank), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(true), _16(false), _17(false), _18('i'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("window_percent_rank"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("fractional rank within partition"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "percentile_cont", 2, - AddBuiltinFunc(_0(PERCENTILECONTAGGFUNCOID), _1("percentile_cont"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4454), _1("percentile_cont"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(PERCENTILECONTAGGFUNCOID), _1("percentile_cont"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4454), _1("percentile_cont"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "percentile_cont_float8_final", 1, - AddBuiltinFunc(_0(4453), _1("percentile_cont_float8_final"), _2(3), _3(false), _4(false), _5(percentile_cont_float8_final), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("percentile_cont_float8_final"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4453), _1("percentile_cont_float8_final"), _2(3), _3(false), _4(false), _5(percentile_cont_float8_final), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("percentile_cont_float8_final"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate final function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "percentile_cont_interval_final", 1, - AddBuiltinFunc(_0(4455), _1("percentile_cont_interval_final"), _2(3), _3(false), _4(false), _5(percentile_cont_interval_final), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 701, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("percentile_cont_interval_final"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4455), _1("percentile_cont_interval_final"), _2(3), _3(false), _4(false), _5(percentile_cont_interval_final), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 701, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("percentile_cont_interval_final"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate final function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "percentile_of_value", 1, - AddBuiltinFunc(_0(9990), _1("percentile_of_value"), _2(3), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 701, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(9990), _1("percentile_of_value"), _2(3), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 701, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_advisory_lock", 3, - AddBuiltinFunc(_0(2880), _1("pg_advisory_lock"), _2(1), _3(true), _4(false), _5(pg_advisory_lock_int8), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_advisory_lock_int8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2886), _1("pg_advisory_lock"), _2(2), _3(true), _4(false), _5(pg_advisory_lock_int4), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_advisory_lock_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(9016), _1("pg_advisory_lock"), _2(3), _3(true), _4(false), _5(pg_advisory_lock_sp_db_int4), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 23, 23, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_advisory_lock_sp_db_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2880), _1("pg_advisory_lock"), _2(1), _3(true), _4(false), _5(pg_advisory_lock_int8), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_advisory_lock_int8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("obtain exclusive advisory lock"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2886), _1("pg_advisory_lock"), _2(2), _3(true), _4(false), _5(pg_advisory_lock_int4), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_advisory_lock_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("obtain exclusive advisory lock"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(9016), _1("pg_advisory_lock"), _2(3), _3(true), _4(false), _5(pg_advisory_lock_sp_db_int4), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 23, 23, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_advisory_lock_sp_db_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_advisory_lock_shared", 2, - AddBuiltinFunc(_0(2881), _1("pg_advisory_lock_shared"), _2(1), _3(true), _4(false), _5(pg_advisory_lock_shared_int8), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_advisory_lock_shared_int8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2887), _1("pg_advisory_lock_shared"), _2(2), _3(true), _4(false), _5(pg_advisory_lock_shared_int4), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_advisory_lock_shared_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2881), _1("pg_advisory_lock_shared"), _2(1), _3(true), _4(false), _5(pg_advisory_lock_shared_int8), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_advisory_lock_shared_int8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("obtain shared advisory lock"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2887), _1("pg_advisory_lock_shared"), _2(2), _3(true), _4(false), _5(pg_advisory_lock_shared_int4), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_advisory_lock_shared_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("obtain shared advisory lock"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_advisory_unlock", 3, - AddBuiltinFunc(_0(2884), _1("pg_advisory_unlock"), _2(1), _3(true), _4(false), _5(pg_advisory_unlock_int8), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_advisory_unlock_int8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2890), _1("pg_advisory_unlock"), _2(2), _3(true), _4(false), _5(pg_advisory_unlock_int4), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_advisory_unlock_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(9015), _1("pg_advisory_unlock"), _2(3), _3(true), _4(false), _5(pg_advisory_unlock_sp_db_int4), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 23, 23, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_advisory_unlock_sp_db_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2884), _1("pg_advisory_unlock"), _2(1), _3(true), _4(false), _5(pg_advisory_unlock_int8), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_advisory_unlock_int8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("release exclusive advisory lock"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2890), _1("pg_advisory_unlock"), _2(2), _3(true), _4(false), _5(pg_advisory_unlock_int4), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_advisory_unlock_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("release exclusive advisory lock"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(9015), _1("pg_advisory_unlock"), _2(3), _3(true), _4(false), _5(pg_advisory_unlock_sp_db_int4), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 23, 23, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_advisory_unlock_sp_db_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_advisory_unlock_all", 1, - AddBuiltinFunc(_0(2892), _1("pg_advisory_unlock_all"), _2(0), _3(true), _4(false), _5(pg_advisory_unlock_all), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_advisory_unlock_all"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2892), _1("pg_advisory_unlock_all"), _2(0), _3(true), _4(false), _5(pg_advisory_unlock_all), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_advisory_unlock_all"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("release all advisory locks"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_advisory_unlock_shared", 2, - AddBuiltinFunc(_0(2885), _1("pg_advisory_unlock_shared"), _2(1), _3(true), _4(false), _5(pg_advisory_unlock_shared_int8), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_advisory_unlock_shared_int8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2891), _1("pg_advisory_unlock_shared"), _2(2), _3(true), _4(false), _5(pg_advisory_unlock_shared_int4), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_advisory_unlock_shared_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2885), _1("pg_advisory_unlock_shared"), _2(1), _3(true), _4(false), _5(pg_advisory_unlock_shared_int8), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_advisory_unlock_shared_int8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("release shared advisory lock"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2891), _1("pg_advisory_unlock_shared"), _2(2), _3(true), _4(false), _5(pg_advisory_unlock_shared_int4), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_advisory_unlock_shared_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("release shared advisory lock"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_advisory_xact_lock", 2, - AddBuiltinFunc(_0(3089), _1("pg_advisory_xact_lock"), _2(1), _3(true), _4(false), _5(pg_advisory_xact_lock_int8), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_advisory_xact_lock_int8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3093), _1("pg_advisory_xact_lock"), _2(2), _3(true), _4(false), _5(pg_advisory_xact_lock_int4), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_advisory_xact_lock_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3089), _1("pg_advisory_xact_lock"), _2(1), _3(true), _4(false), _5(pg_advisory_xact_lock_int8), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_advisory_xact_lock_int8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("obtain exclusive advisory lock"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3093), _1("pg_advisory_xact_lock"), _2(2), _3(true), _4(false), _5(pg_advisory_xact_lock_int4), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_advisory_xact_lock_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("obtain exclusive advisory lock"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_advisory_xact_lock_shared", 2, - AddBuiltinFunc(_0(3090), _1("pg_advisory_xact_lock_shared"), _2(1), _3(true), _4(false), _5(pg_advisory_xact_lock_shared_int8), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_advisory_xact_lock_shared_int8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3094), _1("pg_advisory_xact_lock_shared"), _2(2), _3(true), _4(false), _5(pg_advisory_xact_lock_shared_int4), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_advisory_xact_lock_shared_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3090), _1("pg_advisory_xact_lock_shared"), _2(1), _3(true), _4(false), _5(pg_advisory_xact_lock_shared_int8), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_advisory_xact_lock_shared_int8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("obtain shared advisory lock"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3094), _1("pg_advisory_xact_lock_shared"), _2(2), _3(true), _4(false), _5(pg_advisory_xact_lock_shared_int4), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_advisory_xact_lock_shared_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("obtain shared advisory lock"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_autovac_coordinator", 1, - AddBuiltinFunc(_0(4081), _1("pg_autovac_coordinator"), _2(1), _3(false), _4(true), _5(pg_autovac_coordinator), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_autovac_coordinator"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4081), _1("pg_autovac_coordinator"), _2(1), _3(false), _4(true), _5(pg_autovac_coordinator), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_autovac_coordinator"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_autovac_status", 1, - AddBuiltinFunc(_0(3223), _1("pg_autovac_status"), _2(1), _3(true), _4(true), _5(pg_autovac_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(10, 26, 25, 25, 25, 16, 20, 20, 16, 20, 20), _22(10, 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(10, "relid", "nspname", "relname", "nodename", "doanalyze", "anltuples", "anlthresh", "dovacuum", "vactuples", "vacthresh"), _24(NULL), _25("pg_autovac_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3223), _1("pg_autovac_status"), _2(1), _3(true), _4(true), _5(pg_autovac_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(10, 26, 25, 25, 25, 16, 20, 20, 16, 20, 20), _22(10, 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(10, "relid", "nspname", "relname", "nodename", "doanalyze", "anltuples", "anlthresh", "dovacuum", "vactuples", "vacthresh"), _24(NULL), _25("pg_autovac_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_autovac_timeout", 1, - AddBuiltinFunc(_0(4080), _1("pg_autovac_timeout"), _2(1), _3(false), _4(true), _5(pg_autovac_timeout), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_autovac_timeout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4080), _1("pg_autovac_timeout"), _2(1), _3(false), _4(true), _5(pg_autovac_timeout), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_autovac_timeout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_available_extension_versions", 1, - AddBuiltinFunc(_0(3083), _1("pg_available_extension_versions"), _2(0), _3(true), _4(true), _5(pg_available_extension_versions), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(7, 19, 25, 16, 16, 19, 1003, 25), _22(7, 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(7, "name", "version", "superuser", "relocatable", "schema", "requires", "comment"), _24(NULL), _25("pg_available_extension_versions"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3083), _1("pg_available_extension_versions"), _2(0), _3(true), _4(true), _5(pg_available_extension_versions), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(7, 19, 25, 16, 16, 19, 1003, 25), _22(7, 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(7, "name", "version", "superuser", "relocatable", "schema", "requires", "comment"), _24(NULL), _25("pg_available_extension_versions"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("list available extension versions"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_available_extensions", 1, - AddBuiltinFunc(_0(3082), _1("pg_available_extensions"), _2(0), _3(true), _4(true), _5(pg_available_extensions), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(3, 19, 25, 25), _22(3, 'o', 'o', 'o'), _23(3, "name", "default_version", "comment"), _24(NULL), _25("pg_available_extensions"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3082), _1("pg_available_extensions"), _2(0), _3(true), _4(true), _5(pg_available_extensions), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(3, 19, 25, 25), _22(3, 'o', 'o', 'o'), _23(3, "name", "default_version", "comment"), _24(NULL), _25("pg_available_extensions"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("list available extensions"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_backend_pid", 1, - AddBuiltinFunc(_0(PGBACKENDPIDFUNCOID), _1("pg_backend_pid"), _2(0), _3(true), _4(false), _5(pg_backend_pid), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_backend_pid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(PGBACKENDPIDFUNCOID), _1("pg_backend_pid"), _2(0), _3(true), _4(false), _5(pg_backend_pid), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_backend_pid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: current backend PID"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_buffercache_pages", 1, - AddBuiltinFunc(_0(4130), _1("pg_buffercache_pages"), _2(0), _3(false), _4(true), _5(pg_buffercache_pages), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(12, 23, 26, 23, 20, 26, 26, 23, 26, 16, 16, 21, 23), _22(12, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(12, "bufferid", "relfilenode", "bucketid", "storage_type", "reltablespace", "reldatabase", "relforknumber", "relblocknumber", "isdirty", "isvalid", "usage_count", "pinning_backends"), _24(NULL), _25("pg_buffercache_pages"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("f"), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4130), _1("pg_buffercache_pages"), _2(0), _3(false), _4(true), _5(pg_buffercache_pages), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(12, 23, 26, 23, 20, 26, 26, 23, 26, 16, 16, 21, 23), _22(12, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(12, "bufferid", "relfilenode", "bucketid", "storage_type", "reltablespace", "reldatabase", "relforknumber", "relblocknumber", "isdirty", "isvalid", "usage_count", "pinning_backends"), _24(NULL), _25("pg_buffercache_pages"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_cancel_backend", 1, - AddBuiltinFunc(_0(2171), _1("pg_cancel_backend"), _2(1), _3(true), _4(false), _5(pg_cancel_backend), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_cancel_backend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2171), _1("pg_cancel_backend"), _2(1), _3(true), _4(false), _5(pg_cancel_backend), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_cancel_backend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("cancel a server process\' current query"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_cancel_invalid_query", 1, - AddBuiltinFunc(_0(3213), _1("pg_cancel_invalid_query"), _2(0), _3(true), _4(false), _5(pg_cancel_invalid_query), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_cancel_invalid_query"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3213), _1("pg_cancel_invalid_query"), _2(0), _3(true), _4(false), _5(pg_cancel_invalid_query), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_cancel_invalid_query"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_cancel_session", 1, - AddBuiltinFunc(_0(3991), _1("pg_cancel_session"), _2(2), _3(true), _4(false), _5(pg_cancel_session), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_cancel_session"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("f")) + AddBuiltinFunc(_0(3991), _1("pg_cancel_session"), _2(2), _3(true), _4(false), _5(pg_cancel_session), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_cancel_session"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL)) ), AddFuncGroup( "pg_cbm_force_track", 1, - AddBuiltinFunc(_0(4655), _1("pg_cbm_force_track"), _2(2), _3(true), _4(false), _5(pg_cbm_force_track), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 23), _21(3, 25, 23, 25), _22(3, 'i', 'i', 'o'), _23(3, "target_lsn", "time_out", "tracked_lsn"), _24(NULL), _25("pg_cbm_force_track"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4655), _1("pg_cbm_force_track"), _2(2), _3(true), _4(false), _5(pg_cbm_force_track), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 23), _21(3, 25, 23, 25), _22(3, 'i', 'i', 'o'), _23(3, "target_lsn", "time_out", "tracked_lsn"), _24(NULL), _25("pg_cbm_force_track"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_cbm_get_changed_block", 1, - AddBuiltinFunc(_0(4653), _1("pg_cbm_get_changed_block"), _2(2), _3(true), _4(true), _5(pg_cbm_get_changed_block), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(15, 25, 25, 25, 25, 26, 26, 26, 23, 25, 16, 16, 16, 26, 26, 25), _22(15, 'i', 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(15, "start_lsn", "end_lsn", "merged_start_lsn", "merged_end_lsn", "tablespace_oid", "database_oid", "relfilenode", "fork_number", "path", "rel_dropped", "rel_created", "rel_truncated", "truncate_blocknum", "changed_block_number", "changed_block_list"), _24(NULL), _25("pg_cbm_get_changed_block"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4653), _1("pg_cbm_get_changed_block"), _2(2), _3(true), _4(true), _5(pg_cbm_get_changed_block), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(15, 25, 25, 25, 25, 26, 26, 26, 23, 25, 16, 16, 16, 26, 26, 25), _22(15, 'i', 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(15, "start_lsn", "end_lsn", "merged_start_lsn", "merged_end_lsn", "tablespace_oid", "database_oid", "relfilenode", "fork_number", "path", "rel_dropped", "rel_created", "rel_truncated", "truncate_blocknum", "changed_block_number", "changed_block_list"), _24(NULL), _25("pg_cbm_get_changed_block"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_cbm_get_merged_file", 1, - AddBuiltinFunc(_0(4652), _1("pg_cbm_get_merged_file"), _2(2), _3(true), _4(false), _5(pg_cbm_get_merged_file), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(3, 25, 25, 25), _22(3, 'i', 'i', 'o'), _23(3, "start_lsn", "end_lsn", "output_file_name"), _24(NULL), _25("pg_cbm_get_merged_file"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4652), _1("pg_cbm_get_merged_file"), _2(2), _3(true), _4(false), _5(pg_cbm_get_merged_file), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(3, 25, 25, 25), _22(3, 'i', 'i', 'o'), _23(3, "start_lsn", "end_lsn", "output_file_name"), _24(NULL), _25("pg_cbm_get_merged_file"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_cbm_recycle_file", 1, - AddBuiltinFunc(_0(4654), _1("pg_cbm_recycle_file"), _2(1), _3(true), _4(false), _5(pg_cbm_recycle_file), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(2, 25, 25), _22(2, 'i', 'o'), _23(2, "target_lsn", "recycle_end_lsn"), _24(NULL), _25("pg_cbm_recycle_file"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4654), _1("pg_cbm_recycle_file"), _2(1), _3(true), _4(false), _5(pg_cbm_recycle_file), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(2, 25, 25), _22(2, 'i', 'o'), _23(2, "target_lsn", "recycle_end_lsn"), _24(NULL), _25("pg_cbm_recycle_file"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_cbm_rotate_file", 1, - AddBuiltinFunc(_0(4660), _1("pg_cbm_rotate_file"), _2(1), _3(true), _4(false), _5(pg_cbm_rotate_file), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(1, 25), _22(1, 'i'), _23(1, "rotate_lsn"), _24(NULL), _25("pg_cbm_rotate_file"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4660), _1("pg_cbm_rotate_file"), _2(1), _3(true), _4(false), _5(pg_cbm_rotate_file), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(1, 25), _22(1, 'i'), _23(1, "rotate_lsn"), _24(NULL), _25("pg_cbm_rotate_file"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_cbm_tracked_location", 1, - AddBuiltinFunc(_0(4651), _1("pg_cbm_tracked_location"), _2(0), _3(true), _4(false), _5(pg_cbm_tracked_location), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_cbm_tracked_location"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4651), _1("pg_cbm_tracked_location"), _2(0), _3(true), _4(false), _5(pg_cbm_tracked_location), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_cbm_tracked_location"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_char_to_encoding", 1, - AddBuiltinFunc(_0(PGCHARTOENCODINGFUNCOID), _1("pg_char_to_encoding"), _2(1), _3(true), _4(false), _5(PG_char_to_encoding), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("PG_char_to_encoding"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(PGCHARTOENCODINGFUNCOID), _1("pg_char_to_encoding"), _2(1), _3(true), _4(false), _5(PG_char_to_encoding), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("PG_char_to_encoding"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("convert encoding name to encoding id"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_check_authid", 1, - AddBuiltinFunc(_0(PGCHECKAUTHIDFUNCOID), _1("pg_check_authid"), _2(1), _3(true), _4(false), _5(pg_check_authid), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_check_authid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(PGCHECKAUTHIDFUNCOID), _1("pg_check_authid"), _2(1), _3(true), _4(false), _5(pg_check_authid), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_check_authid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_check_xidlimit", 1, - AddBuiltinFunc(_0(1999), _1("pg_check_xidlimit"), _2(0), _3(true), _4(false), _5(pg_check_xidlimit), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_check_xidlimit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1999), _1("pg_check_xidlimit"), _2(0), _3(true), _4(false), _5(pg_check_xidlimit), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_check_xidlimit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_clean_region_info", 1, - AddBuiltinFunc(_0(4209), _1("pg_clean_region_info"), _2(0), _3(true), _4(false), _5(pg_clean_region_info), _6(1043), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_clean_region_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4209), _1("pg_clean_region_info"), _2(0), _3(true), _4(false), _5(pg_clean_region_info), _6(1043), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_clean_region_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_client_encoding", 1, - AddBuiltinFunc(_0(PGCLIENTENCODINGFUNCOID), _1("pg_client_encoding"), _2(0), _3(true), _4(false), _5(pg_client_encoding), _6(19), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_client_encoding"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(PGCLIENTENCODINGFUNCOID), _1("pg_client_encoding"), _2(0), _3(true), _4(false), _5(pg_client_encoding), _6(19), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_client_encoding"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("encoding name of current database"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_collation_for", 1, - AddBuiltinFunc(_0(3162), _1("pg_collation_for"), _2(1), _3(false), _4(false), _5(pg_collation_for), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2276), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_collation_for"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3162), _1("pg_collation_for"), _2(1), _3(false), _4(false), _5(pg_collation_for), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2276), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_collation_for"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("collation of the argument; implementation of the COLLATION FOR expression"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_collation_is_visible", 1, - AddBuiltinFunc(_0(3815), _1("pg_collation_is_visible"), _2(1), _3(true), _4(false), _5(pg_collation_is_visible), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_collation_is_visible"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3815), _1("pg_collation_is_visible"), _2(1), _3(true), _4(false), _5(pg_collation_is_visible), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_collation_is_visible"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("is collation visible in search path?"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_column_size", 1, - AddBuiltinFunc(_0(PGCOLUMNSIZEFUNCOID), _1("pg_column_size"), _2(1), _3(true), _4(false), _5(pg_column_size), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2276), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_column_size"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(PGCOLUMNSIZEFUNCOID), _1("pg_column_size"), _2(1), _3(true), _4(false), _5(pg_column_size), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2276), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_column_size"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("bytes required to store the value, perhaps with compression"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_comm_delay", 1, - AddBuiltinFunc(_0(1987), _1("pg_comm_delay"), _2(0), _3(true), _4(true), _5(pg_comm_delay), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(7, 25, 25, 25, 23, 23, 23, 23), _22(7, 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(7, "node_name", "remote_name", "remote_host", "stream_num", "min_delay", "average", "max_delay"), _24(NULL), _25("pg_comm_delay"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1987), _1("pg_comm_delay"), _2(0), _3(true), _4(true), _5(pg_comm_delay), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(7, 25, 25, 25, 23, 23, 23, 23), _22(7, 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(7, "node_name", "remote_name", "remote_host", "stream_num", "min_delay", "average", "max_delay"), _24(NULL), _25("pg_comm_delay"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "gs_comm_proxy_thread_status", 1, - AddBuiltinFunc(_0(1995), _1("gs_comm_proxy_thread_status"), _2(0), _3(true), _4(true), _5(gs_comm_proxy_thread_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(7, 20, 25, 25, 20, 20, 701, 701), _22(7, 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(7, "ProxyThreadId", "ProxyCpuAffinity", "ThreadStartTime", "RxPckNums", "TxPckNums", "RxPcks", "TxPcks"), _24(NULL), _25("gs_comm_proxy_thread_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1995), _1("gs_comm_proxy_thread_status"), _2(0), _3(true), _4(true), _5(gs_comm_proxy_thread_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(7, 20, 25, 25, 20, 20, 701, 701), _22(7, 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(7, "ProxyThreadId", "ProxyCpuAffinity", "ThreadStartTime", "RxPckNums", "TxPckNums", "RxPcks", "TxPcks"), _24(NULL), _25("gs_comm_proxy_thread_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_comm_recv_stream", 1, - AddBuiltinFunc(_0(1984), _1("pg_comm_recv_stream"), _2(0), _3(true), _4(true), _5(pg_comm_recv_stream), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(17, 25, 20, 25, 20, 23, 23, 23, 25, 20, 23, 23, 23, 20, 20, 20, 20, 20), _22(17, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(17, "node_name", "local_tid", "remote_name", "remote_tid", "idx", "sid", "tcp_sock", "state", "query_id", "pn_id", "send_smp", "recv_smp", "recv_bytes", "time", "speed", "quota", "buff_usize"), _24(NULL), _25("pg_comm_recv_stream"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1984), _1("pg_comm_recv_stream"), _2(0), _3(true), _4(true), _5(pg_comm_recv_stream), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(17, 25, 20, 25, 20, 23, 23, 23, 25, 20, 23, 23, 23, 20, 20, 20, 20, 20), _22(17, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(17, "node_name", "local_tid", "remote_name", "remote_tid", "idx", "sid", "tcp_sock", "state", "query_id", "pn_id", "send_smp", "recv_smp", "recv_bytes", "time", "speed", "quota", "buff_usize"), _24(NULL), _25("pg_comm_recv_stream"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_comm_send_stream", 1, - AddBuiltinFunc(_0(1985), _1("pg_comm_send_stream"), _2(0), _3(true), _4(true), _5(pg_comm_send_stream), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(17, 25, 20, 25, 20, 23, 23, 23, 25, 20, 23, 23, 23, 20, 20, 20, 20, 20), _22(17, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(17, "node_name", "local_tid", "remote_name", "remote_tid", "idx", "sid", "tcp_sock", "state", "query_id", "pn_id", "send_smp", "recv_smp", "send_bytes", "time", "speed", "quota", "wait_quota"), _24(NULL), _25("pg_comm_send_stream"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1985), _1("pg_comm_send_stream"), _2(0), _3(true), _4(true), _5(pg_comm_send_stream), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(17, 25, 20, 25, 20, 23, 23, 23, 25, 20, 23, 23, 23, 20, 20, 20, 20, 20), _22(17, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(17, "node_name", "local_tid", "remote_name", "remote_tid", "idx", "sid", "tcp_sock", "state", "query_id", "pn_id", "send_smp", "recv_smp", "send_bytes", "time", "speed", "quota", "wait_quota"), _24(NULL), _25("pg_comm_send_stream"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_comm_status", 1, - AddBuiltinFunc(_0(1986), _1("pg_comm_status"), _2(0), _3(true), _4(true), _5(pg_comm_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(13, 25, 23, 23, 20, 20, 20, 20, 20, 23, 23, 23, 23, 23), _22(13, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(13, "node_name", "rxpck_rate", "txpck_rate", "rxkb_rate", "txkb_rate", "buffer", "memkb_libcomm", "memkb_libpq", "used_pm", "used_sflow", "used_rflow", "used_rloop", "stream"), _24(NULL), _25("pg_comm_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1986), _1("pg_comm_status"), _2(0), _3(true), _4(true), _5(pg_comm_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(13, 25, 23, 23, 20, 20, 20, 20, 20, 23, 23, 23, 23, 23), _22(13, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(13, "node_name", "rxpck_rate", "txpck_rate", "rxkbyte_rate", "txkbyte_rate", "buffer", "memkbyte_libcomm", "memkbyte_libpq", "used_pm", "used_sflow", "used_rflow", "used_rloop", "stream"), _24(NULL), _25("pg_comm_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_conf_load_time", 1, - AddBuiltinFunc(_0(2034), _1("pg_conf_load_time"), _2(0), _3(true), _4(false), _5(pg_conf_load_time), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_conf_load_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2034), _1("pg_conf_load_time"), _2(0), _3(true), _4(false), _5(pg_conf_load_time), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_conf_load_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("configuration load time"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_control_checkpoint", 1, - AddBuiltinFunc(_0(3442), _1("pg_control_checkpoint"), _2(0), _3(true), _4(true), _5(pg_control_checkpoint), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(12), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(12, 20, 20, 25, 23, 16, 26, 28, 28, 28, 26, 28, 1184), _22(12, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(12, "checkpoint_lsn", "redo_lsn", "redo_wal_file", "timeline_id", "full_page_writes", "next_oid", "next_multixact_id", "next_multi_offset", "oldest_xid", "oldest_xid_dbid", "oldest_active_xid", "checkpoint_time"), _24(NULL), _25("pg_control_checkpoint"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3442), _1("pg_control_checkpoint"), _2(0), _3(true), _4(true), _5(pg_control_checkpoint), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(12), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(12, 20, 20, 25, 23, 16, 26, 28, 28, 28, 26, 28, 1184), _22(12, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(12, "checkpoint_lsn", "redo_lsn", "redo_wal_file", "timeline_id", "full_page_writes", "next_oid", "next_multixact_id", "next_multi_offset", "oldest_xid", "oldest_xid_dbid", "oldest_active_xid", "checkpoint_time"), _24(NULL), _25("pg_control_checkpoint"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("pg_controldata checkpoint state information as a function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_control_group_config", 1, - AddBuiltinFunc(_0(3843), _1("pg_control_group_config"), _2(0), _3(true), _4(false), _5(pg_control_group_config), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_control_group_config"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3843), _1("pg_control_group_config"), _2(0), _3(true), _4(false), _5(pg_control_group_config), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_control_group_config"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_control_system", 1, - AddBuiltinFunc(_0(3441), _1("pg_control_system"), _2(0), _3(true), _4(true), _5(pg_control_system), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(5), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(4, 23, 23, 28, 1184), _22(4, 'o', 'o', 'o', 'o'), _23(4, "pg_control_version", "catalog_version_no", "system_identifier", "pg_control_last_modified"), _24(NULL), _25("pg_control_system"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3441), _1("pg_control_system"), _2(0), _3(true), _4(true), _5(pg_control_system), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(5), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(4, 23, 23, 28, 1184), _22(4, 'o', 'o', 'o', 'o'), _23(4, "pg_control_version", "catalog_version_no", "system_identifier", "pg_control_last_modified"), _24(NULL), _25("pg_control_system"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("pg_controldata general state information as a function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_conversion_is_visible", 1, - AddBuiltinFunc(_0(2093), _1("pg_conversion_is_visible"), _2(1), _3(true), _4(false), _5(pg_conversion_is_visible), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_conversion_is_visible"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2093), _1("pg_conversion_is_visible"), _2(1), _3(true), _4(false), _5(pg_conversion_is_visible), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_conversion_is_visible"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("is conversion visible in search path?"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_create_logical_replication_slot", 1, - AddBuiltinFunc(_0(4215), _1("pg_create_logical_replication_slot"), _2(2), _3(false), _4(false), _5(pg_create_logical_replication_slot), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 19, 19), _21(4, 19, 19, 25, 25), _22(4, 'i', 'i', 'o', 'o'), _23(4, "slotname", "plugin", "slotname", "xlog_position"), _24(NULL), _25("pg_create_logical_replication_slot"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4215), _1("pg_create_logical_replication_slot"), _2(2), _3(false), _4(false), _5(pg_create_logical_replication_slot), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 19, 19), _21(4, 19, 19, 25, 25), _22(4, 'i', 'i', 'o', 'o'), _23(4, "slotname", "plugin", "slotname", "xlog_position"), _24(NULL), _25("pg_create_logical_replication_slot"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("set up a logical replication slot"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_create_physical_replication_slot", 1, - AddBuiltinFunc(_0(3779), _1("pg_create_physical_replication_slot"), _2(2), _3(false), _4(false), _5(pg_create_physical_replication_slot), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 19, 16), _21(4, 19, 16, 25, 25), _22(4, 'i', 'i', 'o', 'o'), _23(4, "slotname", "dummy_standby", "slotname", "xlog_position"), _24(NULL), _25("pg_create_physical_replication_slot"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3779), _1("pg_create_physical_replication_slot"), _2(2), _3(false), _4(false), _5(pg_create_physical_replication_slot), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 19, 16), _21(4, 19, 16, 25, 25), _22(4, 'i', 'i', 'o', 'o'), _23(4, "slotname", "dummy_standby", "slotname", "xlog_position"), _24(NULL), _25("pg_create_physical_replication_slot"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("create a physical replication slot"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_create_physical_replication_slot_extern", 1, - AddBuiltinFunc(_0(3790), _1("pg_create_physical_replication_slot_extern"), _2(3), _3(false), _4(false), _5(pg_create_physical_replication_slot_extern), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 19, 16, 25), _21(5, 19, 16, 25, 25, 25), _22(5, 'i', 'i', 'i', 'o', 'o'), _23(5, "slotname", "dummy_standby", "extra_content", "slotname", "xlog_position"), _24(NULL), _25("pg_create_physical_replication_slot_extern"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3790), _1("pg_create_physical_replication_slot_extern"), _2(3), _3(false), _4(false), _5(pg_create_physical_replication_slot_extern), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 19, 16, 25), _21(5, 19, 16, 25, 25, 25), _22(5, 'i', 'i', 'i', 'o', 'o'), _23(5, "slotname", "dummy_standby", "extra_content", "slotname", "xlog_position"), _24(NULL), _25("pg_create_physical_replication_slot_extern"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_create_restore_point", 1, - AddBuiltinFunc(_0(3098), _1("pg_create_restore_point"), _2(1), _3(true), _4(false), _5(pg_create_restore_point), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_create_restore_point"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3098), _1("pg_create_restore_point"), _2(1), _3(true), _4(false), _5(pg_create_restore_point), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_create_restore_point"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("create a named restore point"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_current_sessid", 1, - AddBuiltinFunc(_0(3267), _1("pg_current_sessid"), _2(0), _3(true), _4(false), _5(pg_current_sessid), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_current_sessid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3267), _1("pg_current_sessid"), _2(0), _3(true), _4(false), _5(pg_current_sessid), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_current_sessid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_current_sessionid", 1, - AddBuiltinFunc(_0(3266), _1("pg_current_sessionid"), _2(0), _3(false), _4(false), _5(pg_current_sessionid), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_current_sessionid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3266), _1("pg_current_sessionid"), _2(0), _3(false), _4(false), _5(pg_current_sessionid), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_current_sessionid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_current_userid", 1, - AddBuiltinFunc(_0(3265), _1("pg_current_userid"), _2(0), _3(false), _4(false), _5(pg_current_userid), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_current_userid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3265), _1("pg_current_userid"), _2(0), _3(false), _4(false), _5(pg_current_userid), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_current_userid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_current_xlog_insert_location", 1, - AddBuiltinFunc(_0(2852), _1("pg_current_xlog_insert_location"), _2(0), _3(true), _4(false), _5(pg_current_xlog_insert_location), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_current_xlog_insert_location"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2852), _1("pg_current_xlog_insert_location"), _2(0), _3(true), _4(false), _5(pg_current_xlog_insert_location), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_current_xlog_insert_location"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_current_xlog_location", 1, - AddBuiltinFunc(_0(2849), _1("pg_current_xlog_location"), _2(0), _3(true), _4(false), _5(pg_current_xlog_location), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_current_xlog_location"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2849), _1("pg_current_xlog_location"), _2(0), _3(true), _4(false), _5(pg_current_xlog_location), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_current_xlog_location"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_cursor", 1, - AddBuiltinFunc(_0(2511), _1("pg_cursor"), _2(0), _3(true), _4(true), _5(pg_cursor), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(6, 25, 25, 16, 16, 16, 1184), _22(6, 'o', 'o', 'o', 'o', 'o', 'o'), _23(6, "name", "statement", "is_holdable", "is_binary", "is_scrollable", "creation_time"), _24(NULL), _25("pg_cursor"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2511), _1("pg_cursor"), _2(0), _3(true), _4(true), _5(pg_cursor), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(6, 25, 25, 16, 16, 16, 1184), _22(6, 'o', 'o', 'o', 'o', 'o', 'o'), _23(6, "name", "statement", "is_holdable", "is_binary", "is_scrollable", "creation_time"), _24(NULL), _25("pg_cursor"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("get the open cursors for this session"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_database_size", 2, - AddBuiltinFunc(_0(2168), _1("pg_database_size"), _2(1), _3(true), _4(false), _5(pg_database_size_name), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_database_size_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2324), _1("pg_database_size"), _2(1), _3(true), _4(false), _5(pg_database_size_oid), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_database_size_oid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2168), _1("pg_database_size"), _2(1), _3(true), _4(false), _5(pg_database_size_name), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_database_size_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("total disk space usage for the specified database"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2324), _1("pg_database_size"), _2(1), _3(true), _4(false), _5(pg_database_size_oid), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_database_size_oid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("total disk space usage for the specified database"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_delete_audit", 1, - AddBuiltinFunc(_0(3781), _1("pg_delete_audit"), _2(2), _3(false), _4(false), _5(pg_delete_audit), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 1184, 1184), _21(2, 1184, 1184), _22(2, 'i', 'i'), _23(2, "begin", "end"), _24(NULL), _25("pg_delete_audit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3781), _1("pg_delete_audit"), _2(2), _3(false), _4(false), _5(pg_delete_audit), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 1184, 1184), _21(2, 1184, 1184), _22(2, 'i', 'i'), _23(2, "begin", "end"), _24(NULL), _25("pg_delete_audit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_describe_object", 1, - AddBuiltinFunc(_0(3537), _1("pg_describe_object"), _2(3), _3(true), _4(false), _5(pg_describe_object), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_describe_object"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3537), _1("pg_describe_object"), _2(3), _3(true), _4(false), _5(pg_describe_object), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_describe_object"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("get identification of SQL object"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_disable_delay_ddl_recycle", 1, - AddBuiltinFunc(_0(4657), _1("pg_disable_delay_ddl_recycle"), _2(2), _3(true), _4(false), _5(pg_disable_delay_ddl_recycle), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 25, 16), _21(4, 25, 16, 25, 25), _22(4, 'i', 'i', 'o', 'o'), _23(4, "barrier_lsn", "is_force", "ddl_delay_start_lsn", "ddl_delay_end_lsn"), _24(NULL), _25("pg_disable_delay_ddl_recycle"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4657), _1("pg_disable_delay_ddl_recycle"), _2(2), _3(true), _4(false), _5(pg_disable_delay_ddl_recycle), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 25, 16), _21(4, 25, 16, 25, 25), _22(4, 'i', 'i', 'o', 'o'), _23(4, "barrier_lsn", "is_force", "ddl_delay_start_lsn", "ddl_delay_end_lsn"), _24(NULL), _25("pg_disable_delay_ddl_recycle"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_disable_delay_xlog_recycle", 1, - AddBuiltinFunc(_0(4659), _1("pg_disable_delay_xlog_recycle"), _2(0), _3(true), _4(false), _5(pg_disable_delay_xlog_recycle), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_disable_delay_xlog_recycle"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4659), _1("pg_disable_delay_xlog_recycle"), _2(0), _3(true), _4(false), _5(pg_disable_delay_xlog_recycle), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_disable_delay_xlog_recycle"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_drop_replication_slot", 1, - AddBuiltinFunc(_0(3783), _1("pg_drop_replication_slot"), _2(1), _3(false), _4(false), _5(pg_drop_replication_slot), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_drop_replication_slot"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3783), _1("pg_drop_replication_slot"), _2(1), _3(false), _4(false), _5(pg_drop_replication_slot), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_drop_replication_slot"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("drop a replication slot"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_enable_delay_ddl_recycle", 1, - AddBuiltinFunc(_0(4656), _1("pg_enable_delay_ddl_recycle"), _2(0), _3(true), _4(false), _5(pg_enable_delay_ddl_recycle), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_enable_delay_ddl_recycle"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4656), _1("pg_enable_delay_ddl_recycle"), _2(0), _3(true), _4(false), _5(pg_enable_delay_ddl_recycle), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_enable_delay_ddl_recycle"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_enable_delay_xlog_recycle", 1, - AddBuiltinFunc(_0(4658), _1("pg_enable_delay_xlog_recycle"), _2(0), _3(true), _4(false), _5(pg_enable_delay_xlog_recycle), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_enable_delay_xlog_recycle"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4658), _1("pg_enable_delay_xlog_recycle"), _2(0), _3(true), _4(false), _5(pg_enable_delay_xlog_recycle), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_enable_delay_xlog_recycle"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_encoding_max_length", 1, - AddBuiltinFunc(_0(2319), _1("pg_encoding_max_length"), _2(1), _3(true), _4(false), _5(pg_encoding_max_length_sql), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_encoding_max_length_sql"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2319), _1("pg_encoding_max_length"), _2(1), _3(true), _4(false), _5(pg_encoding_max_length_sql), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_encoding_max_length_sql"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("maximum octet length of a character in given encoding"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_encoding_to_char", 1, - AddBuiltinFunc(_0(PGENCODINGTOCHARFUNCOID), _1("pg_encoding_to_char"), _2(1), _3(true), _4(false), _5(PG_encoding_to_char), _6(19), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("PG_encoding_to_char"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(PGENCODINGTOCHARFUNCOID), _1("pg_encoding_to_char"), _2(1), _3(true), _4(false), _5(PG_encoding_to_char), _6(19), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("PG_encoding_to_char"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("convert encoding id to encoding name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_export_snapshot", 1, - AddBuiltinFunc(_0(3809), _1("pg_export_snapshot"), _2(0), _3(true), _4(false), _5(pg_export_snapshot), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_export_snapshot"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3809), _1("pg_export_snapshot"), _2(0), _3(true), _4(false), _5(pg_export_snapshot), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_export_snapshot"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("export a snapshot"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_export_snapshot_and_csn", 1, - AddBuiltinFunc(_0(4396), _1("pg_export_snapshot_and_csn"), _2(0), _3(true), _4(false), _5(pg_export_snapshot_and_csn), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(2, 25, 25), _22(2, 'o', 'o'), _23(2, "snapshot", "csn"), _24(NULL), _25("pg_export_snapshot_and_csn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4396), _1("pg_export_snapshot_and_csn"), _2(0), _3(true), _4(false), _5(pg_export_snapshot_and_csn), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(2, 25, 25), _22(2, 'o', 'o'), _23(2, "snapshot", "csn"), _24(NULL), _25("pg_export_snapshot_and_csn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_extension_config_dump", 1, - AddBuiltinFunc(_0(3086), _1("pg_extension_config_dump"), _2(2), _3(true), _4(false), _5(pg_extension_config_dump), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2205, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_extension_config_dump"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3086), _1("pg_extension_config_dump"), _2(2), _3(true), _4(false), _5(pg_extension_config_dump), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2205, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_extension_config_dump"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("flag an extension\'s table contents to be emitted by pg_dump"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_extension_update_paths", 1, - AddBuiltinFunc(_0(3084), _1("pg_extension_update_paths"), _2(1), _3(true), _4(true), _5(pg_extension_update_paths), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 19), _21(4, 19, 25, 25, 25), _22(4, 'i', 'o', 'o', 'o'), _23(4, "name", "source", "target", "path"), _24(NULL), _25("pg_extension_update_paths"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3084), _1("pg_extension_update_paths"), _2(1), _3(true), _4(true), _5(pg_extension_update_paths), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 19), _21(4, 19, 25, 25, 25), _22(4, 'i', 'o', 'o', 'o'), _23(4, "name", "source", "target", "path"), _24(NULL), _25("pg_extension_update_paths"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("list an extension\'s version update paths"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_filenode_relation", 1, - AddBuiltinFunc(_0(3454), _1("pg_filenode_relation"), _2(2), _3(true), _4(false), _5(pg_filenode_relation), _6(2205), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_filenode_relation"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3454), _1("pg_filenode_relation"), _2(2), _3(true), _4(false), _5(pg_filenode_relation), _6(2205), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_filenode_relation"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("relation OID for filenode and tablespace"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_free_remain_segment", 1, - AddBuiltinFunc(_0(7004), _1("pg_free_remain_segment"), _2(3), _3(true), _4(false), _5(pg_free_remain_segment), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10000), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, INT4OID, INT4OID, INT4OID), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_free_remain_segment"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(7004), _1("pg_free_remain_segment"), _2(3), _3(true), _4(false), _5(pg_free_remain_segment), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10000), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, INT4OID, INT4OID, INT4OID), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_free_remain_segment"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_function_is_visible", 1, - AddBuiltinFunc(_0(2081), _1("pg_function_is_visible"), _2(1), _3(true), _4(false), _5(pg_function_is_visible), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_function_is_visible"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2081), _1("pg_function_is_visible"), _2(1), _3(true), _4(false), _5(pg_function_is_visible), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_function_is_visible"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("is function visible in search path?"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_get_constraintdef", 2, - AddBuiltinFunc(_0(1387), _1("pg_get_constraintdef"), _2(1), _3(true), _4(false), _5(pg_get_constraintdef), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_constraintdef"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2508), _1("pg_get_constraintdef"), _2(2), _3(true), _4(false), _5(pg_get_constraintdef_ext), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_constraintdef_ext"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1387), _1("pg_get_constraintdef"), _2(1), _3(true), _4(false), _5(pg_get_constraintdef), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_constraintdef"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("constraint description"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2508), _1("pg_get_constraintdef"), _2(2), _3(true), _4(false), _5(pg_get_constraintdef_ext), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_constraintdef_ext"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("constraint description with pretty-print option"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_get_expr", 2, - AddBuiltinFunc(_0(1716), _1("pg_get_expr"), _2(2), _3(true), _4(false), _5(pg_get_expr), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 194, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_expr"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2509), _1("pg_get_expr"), _2(3), _3(true), _4(false), _5(pg_get_expr_ext), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 194, 26, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_expr_ext"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1716), _1("pg_get_expr"), _2(2), _3(true), _4(false), _5(pg_get_expr), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 194, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_expr"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2509), _1("pg_get_expr"), _2(3), _3(true), _4(false), _5(pg_get_expr_ext), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 194, 26, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_expr_ext"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_get_flush_lsn", 1, - AddBuiltinFunc(_0(3316), _1("pg_get_flush_lsn"), _2(0), _3(false), _4(false), _5(pg_get_flush_lsn), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(1, 25), _22(1, 'o'), _23(1, "flush_lsn"), _24(NULL), _25("pg_get_flush_lsn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3316), _1("pg_get_flush_lsn"), _2(0), _3(false), _4(false), _5(pg_get_flush_lsn), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(1, 25), _22(1, 'o'), _23(1, "flush_lsn"), _24(NULL), _25("pg_get_flush_lsn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_get_function_arguments", 1, - AddBuiltinFunc(_0(2162), _1("pg_get_function_arguments"), _2(1), _3(true), _4(false), _5(pg_get_function_arguments), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_function_arguments"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2162), _1("pg_get_function_arguments"), _2(1), _3(true), _4(false), _5(pg_get_function_arguments), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_function_arguments"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("argument list of a function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_get_function_identity_arguments", 1, - AddBuiltinFunc(_0(2232), _1("pg_get_function_identity_arguments"), _2(1), _3(true), _4(false), _5(pg_get_function_identity_arguments), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_function_identity_arguments"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2232), _1("pg_get_function_identity_arguments"), _2(1), _3(true), _4(false), _5(pg_get_function_identity_arguments), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_function_identity_arguments"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("identity argument list of a function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_get_function_result", 1, - AddBuiltinFunc(_0(2165), _1("pg_get_function_result"), _2(1), _3(true), _4(false), _5(pg_get_function_result), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_function_result"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2165), _1("pg_get_function_result"), _2(1), _3(true), _4(false), _5(pg_get_function_result), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_function_result"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("result type of a function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_get_functiondef", 1, - AddBuiltinFunc(_0(2098), _1("pg_get_functiondef"), _2(1), _3(true), _4(false), _5(pg_get_functiondef), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(3, 26, 23, 25), _22(3, 'i', 'o', 'o'), _23(3, "funcid", "headerlines", "definition"), _24(NULL), _25("pg_get_functiondef"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2098), _1("pg_get_functiondef"), _2(1), _3(true), _4(false), _5(pg_get_functiondef), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(3, 26, 23, 25), _22(3, 'i', 'o', 'o'), _23(3, "funcid", "headerlines", "definition"), _24(NULL), _25("pg_get_functiondef"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("definition of a function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_get_gtt_relstats", 1, - AddBuiltinFunc(_0(3596), _1("pg_get_gtt_relstats"), _2(1), _3(true), _4(true), _5(pg_get_gtt_relstats), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(7, 26, 26, 23, 700, 23, 28, 28), _22(7, 'i', 'o', 'o', 'o', 'o', 'o', 'o'), _23(7, "relid", "relfilenode", "relpages", "reltuples", "relallvisible", "relfrozenxid", "relminmxid"), _24(NULL), _25("pg_get_gtt_relstats"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3596), _1("pg_get_gtt_relstats"), _2(1), _3(true), _4(true), _5(pg_get_gtt_relstats), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(7, 26, 26, 23, 700, 23, 28, 28), _22(7, 'i', 'o', 'o', 'o', 'o', 'o', 'o'), _23(7, "relid", "relfilenode", "relpages", "reltuples", "relallvisible", "relfrozenxid", "relminmxid"), _24(NULL), _25("pg_get_gtt_relstats"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_get_gtt_statistics", 1, - AddBuiltinFunc(_0(3597), _1("pg_get_gtt_statistics"), _2(3), _3(false), _4(true), _5(pg_get_gtt_statistics), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 26, 23, 2283), _21(32, 26, 23, 2283, 26, 18, 21, 16, 700, 23, 700, 21, 21, 21, 21, 21, 26, 26, 26, 26, 26, 1021, 1021, 1021, 1021, 1021, 2277, 2277, 2277, 2277, 2277, 700, 25), _22(32, 'i', 'i', 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(32, "relid", "att", "x", "starelid", "starelkind", "staattnum", "stainherit", "stanullfrac", "stawidth", "stadistinct", "stakind1", "stakind2", "stakind3", "stakind4", "stakind5", "staop1", "staop2", "staop3", "staop4", "staop5", "stanumbers1", "stanumbers2", "stanumbers3", "stanumbers4", "stanumbers5", "stavalues1", "stavalues2", "stavalues3", "stavalues4", "stavalues5", "stadndistinct", "staextinfo"), _24(NULL), _25("pg_get_gtt_statistics"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3597), _1("pg_get_gtt_statistics"), _2(3), _3(false), _4(true), _5(pg_get_gtt_statistics), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 26, 23, 2283), _21(32, 26, 23, 2283, 26, 18, 21, 16, 700, 23, 700, 21, 21, 21, 21, 21, 26, 26, 26, 26, 26, 1021, 1021, 1021, 1021, 1021, 2277, 2277, 2277, 2277, 2277, 700, 25), _22(32, 'i', 'i', 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(32, "relid", "att", "x", "starelid", "starelkind", "staattnum", "stainherit", "stanullfrac", "stawidth", "stadistinct", "stakind1", "stakind2", "stakind3", "stakind4", "stakind5", "staop1", "staop2", "staop3", "staop4", "staop5", "stanumbers1", "stanumbers2", "stanumbers3", "stanumbers4", "stanumbers5", "stavalues1", "stavalues2", "stavalues3", "stavalues4", "stavalues5", "stadndistinct", "staextinfo"), _24(NULL), _25("pg_get_gtt_statistics"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_get_indexdef", 3, - AddBuiltinFunc(_0(1643), _1("pg_get_indexdef"), _2(1), _3(true), _4(false), _5(pg_get_indexdef), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_indexdef"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2507), _1("pg_get_indexdef"), _2(3), _3(true), _4(false), _5(pg_get_indexdef_ext), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 23, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_indexdef_ext"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(5035), _1("pg_get_indexdef"), _2(2), _3(true), _4(false), _5(pg_get_indexdef_for_dump), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_indexdef_for_dump"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1643), _1("pg_get_indexdef"), _2(1), _3(true), _4(false), _5(pg_get_indexdef), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_indexdef"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("index description"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2507), _1("pg_get_indexdef"), _2(3), _3(true), _4(false), _5(pg_get_indexdef_ext), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 23, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_indexdef_ext"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("index description (full create statement or single expression) with pretty-print option"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(5035), _1("pg_get_indexdef"), _2(2), _3(true), _4(false), _5(pg_get_indexdef_for_dump), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_indexdef_for_dump"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_get_keywords", 1, - AddBuiltinFunc(_0(1686), _1("pg_get_keywords"), _2(0), _3(true), _4(true), _5(pg_get_keywords), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10), _11(400), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(3, 25, 18, 25), _22(3, 'o', 'o', 'o'), _23(3, "word", "catcode", "catdesc"), _24(NULL), _25("pg_get_keywords"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1686), _1("pg_get_keywords"), _2(0), _3(true), _4(true), _5(pg_get_keywords), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10), _11(400), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(3, 25, 18, 25), _22(3, 'o', 'o', 'o'), _23(3, "word", "catcode", "catdesc"), _24(NULL), _25("pg_get_keywords"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("list of SQL keywords"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_get_publication_tables", 1, - AddBuiltinFunc(_0(2801), _1("pg_get_publication_tables"), _2(1), _3(true), _4(true), _5(pg_get_publication_tables), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 25), _21(2, 25, 26), _22(2, 'i', 'o'), _23(2, "pubname", "relid"), _24(NULL), _25("pg_get_publication_tables"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("get OIDs of tables in a publication"), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2801), _1("pg_get_publication_tables"), _2(1), _3(true), _4(true), _5(pg_get_publication_tables), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 25), _21(2, 25, 26), _22(2, 'i', 'o'), _23(2, "pubname", "relid"), _24(NULL), _25("pg_get_publication_tables"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("get OIDs of tables in a publication"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_get_replication_slot_name", 1, - AddBuiltinFunc(_0(6003), _1("pg_get_replication_slot_name"), _2(0), _3(true), _4(false), _5(pg_get_replication_slot_name), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_replication_slot_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(6003), _1("pg_get_replication_slot_name"), _2(0), _3(true), _4(false), _5(pg_get_replication_slot_name), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_replication_slot_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_get_replication_slots", 1, - AddBuiltinFunc(_0(3784), _1("pg_get_replication_slots"), _2(0), _3(false), _4(true), _5(pg_get_replication_slots), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(9, 25, 25, 25, 26, 16, 28, 28, 25, 16), _22(9, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(9, "slot_name", "plugin", "slot_type", "datoid", "active", "xmin", "catalog_xmin", "restart_lsn", "dummy_standby"), _24(NULL), _25("pg_get_replication_slots"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3784), _1("pg_get_replication_slots"), _2(0), _3(false), _4(true), _5(pg_get_replication_slots), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(9, 25, 25, 25, 26, 16, 28, 28, 25, 16), _22(9, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(9, "slot_name", "plugin", "slot_type", "datoid", "active", "xmin", "catalog_xmin", "restart_lsn", "dummy_standby"), _24(NULL), _25("pg_get_replication_slots"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("information about replication slots currently in use"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_get_ruledef", 2, - AddBuiltinFunc(_0(1573), _1("pg_get_ruledef"), _2(1), _3(true), _4(false), _5(pg_get_ruledef), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_ruledef"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2504), _1("pg_get_ruledef"), _2(2), _3(true), _4(false), _5(pg_get_ruledef_ext), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_ruledef_ext"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1573), _1("pg_get_ruledef"), _2(1), _3(true), _4(false), _5(pg_get_ruledef), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_ruledef"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("source text of a rule"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2504), _1("pg_get_ruledef"), _2(2), _3(true), _4(false), _5(pg_get_ruledef_ext), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_ruledef_ext"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("source text of a rule with pretty-print option"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_get_running_xacts", 1, - AddBuiltinFunc(_0(1998), _1("pg_get_running_xacts"), _2(0), _3(true), _4(true), _5(pg_get_running_xacts), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(10, 23, 28, 5545, 25, 28, 16, 20, 28, 20, 28), _22(10, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(10, "handle", "gxid", "state", "node", "xmin", "vacuum", "timeline", "prepare_xid", "pid", "next_xid"), _24(NULL), _25("pg_get_running_xacts"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1998), _1("pg_get_running_xacts"), _2(0), _3(true), _4(true), _5(pg_get_running_xacts), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(10, 23, 28, 5545, 25, 28, 16, 20, 28, 20, 28), _22(10, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(10, "handle", "gxid", "state", "node", "xmin", "vacuum", "timeline", "prepare_xid", "pid", "next_xid"), _24(NULL), _25("pg_get_running_xacts"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_get_serial_sequence", 1, - AddBuiltinFunc(_0(1665), _1("pg_get_serial_sequence"), _2(2), _3(true), _4(false), _5(pg_get_serial_sequence), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_serial_sequence"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1665), _1("pg_get_serial_sequence"), _2(2), _3(true), _4(false), _5(pg_get_serial_sequence), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_serial_sequence"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("name of sequence for a serial column"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_get_sync_flush_lsn", 1, - AddBuiltinFunc(_0(3317), _1("pg_get_sync_flush_lsn"), _2(0), _3(false), _4(false), _5(pg_get_sync_flush_lsn), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(1, 25), _22(1, 'o'), _23(1, "sync_flush_lsn"), _24(NULL), _25("pg_get_sync_flush_lsn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3317), _1("pg_get_sync_flush_lsn"), _2(0), _3(false), _4(false), _5(pg_get_sync_flush_lsn), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(1, 25), _22(1, 'o'), _23(1, "sync_flush_lsn"), _24(NULL), _25("pg_get_sync_flush_lsn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_get_tabledef", 1, - AddBuiltinFunc(_0(4443), _1("pg_get_tabledef"), _2(1), _3(true), _4(false), _5(pg_get_tabledef_ext), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2205), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_tabledef_ext"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4443), _1("pg_get_tabledef"), _2(1), _3(true), _4(false), _5(pg_get_tabledef_ext), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2205), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_tabledef_ext"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_get_triggerdef", 2, - AddBuiltinFunc(_0(1662), _1("pg_get_triggerdef"), _2(1), _3(true), _4(false), _5(pg_get_triggerdef), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_triggerdef"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2730), _1("pg_get_triggerdef"), _2(2), _3(true), _4(false), _5(pg_get_triggerdef_ext), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_triggerdef_ext"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1662), _1("pg_get_triggerdef"), _2(1), _3(true), _4(false), _5(pg_get_triggerdef), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_triggerdef"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("trigger description"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2730), _1("pg_get_triggerdef"), _2(2), _3(true), _4(false), _5(pg_get_triggerdef_ext), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_triggerdef_ext"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("trigger description with pretty-print option"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_get_userbyid", 1, - AddBuiltinFunc(_0(1642), _1("pg_get_userbyid"), _2(1), _3(true), _4(false), _5(pg_get_userbyid), _6(19), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_userbyid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1642), _1("pg_get_userbyid"), _2(1), _3(true), _4(false), _5(pg_get_userbyid), _6(19), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_userbyid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("role name by OID (with fallback)"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_get_variable_info", 1, - AddBuiltinFunc(_0(2097), _1("pg_get_variable_info"), _2(0), _3(true), _4(true), _5(pg_get_variable_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(11, 25, 26, 28, 28, 28, 26, 28, 28, 28, 28, 28), _22(11, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(11, "node_name", "next_oid", "next_xid", "oldest_xid", "xid_vac_limit", "oldest_xid_db", "last_extend_csn_logpage", "start_extend_csn_logpage", "next_commit_seqno", "latest_completed_xid", "startup_max_xid"), _24(NULL), _25("pg_get_variable_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2097), _1("pg_get_variable_info"), _2(0), _3(true), _4(true), _5(pg_get_variable_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(11, 25, 26, 28, 28, 28, 26, 28, 28, 28, 28, 28), _22(11, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(11, "node_name", "next_oid", "next_xid", "oldest_xid", "xid_vac_limit", "oldest_xid_db", "last_extend_csn_logpage", "start_extend_csn_logpage", "next_commit_seqno", "latest_completed_xid", "startup_max_xid"), _24(NULL), _25("pg_get_variable_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_get_viewdef", 5, - AddBuiltinFunc(_0(1640), _1("pg_get_viewdef"), _2(1), _3(true), _4(false), _5(pg_get_viewdef_name), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_viewdef_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1641), _1("pg_get_viewdef"), _2(1), _3(true), _4(false), _5(pg_get_viewdef), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_viewdef"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2505), _1("pg_get_viewdef"), _2(2), _3(true), _4(false), _5(pg_get_viewdef_name_ext), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_viewdef_name_ext"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2506), _1("pg_get_viewdef"), _2(2), _3(true), _4(false), _5(pg_get_viewdef_ext), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_viewdef_ext"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3159), _1("pg_get_viewdef"), _2(2), _3(true), _4(false), _5(pg_get_viewdef_wrap), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_viewdef_wrap"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1640), _1("pg_get_viewdef"), _2(1), _3(true), _4(false), _5(pg_get_viewdef_name), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_viewdef_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("select statement of a view"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1641), _1("pg_get_viewdef"), _2(1), _3(true), _4(false), _5(pg_get_viewdef), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_viewdef"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("select statement of a view"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2505), _1("pg_get_viewdef"), _2(2), _3(true), _4(false), _5(pg_get_viewdef_name_ext), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_viewdef_name_ext"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("select statement of a view with pretty-print option"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2506), _1("pg_get_viewdef"), _2(2), _3(true), _4(false), _5(pg_get_viewdef_ext), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_viewdef_ext"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("select statement of a view with pretty-print option"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3159), _1("pg_get_viewdef"), _2(2), _3(true), _4(false), _5(pg_get_viewdef_wrap), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_get_viewdef_wrap"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("select statement of a view with pretty-printing and specified line wrapping"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_get_xidlimit", 1, - AddBuiltinFunc(_0(2000), _1("pg_get_xidlimit"), _2(0), _3(true), _4(true), _5(pg_get_xidlimit), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(7, 28, 28, 28, 28, 28, 28, 26), _22(7, 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(7, "next_xid", "oldest_xid", "xid_vac_limit", "xid_warn_limit", "xid_stop_limit", "xid_wrap_limit", "oldest_xid_db"), _24(NULL), _25("pg_get_xidlimit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2000), _1("pg_get_xidlimit"), _2(0), _3(true), _4(true), _5(pg_get_xidlimit), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(7, 28, 28, 28, 28, 28, 28, 26), _22(7, 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(7, "next_xid", "oldest_xid", "xid_vac_limit", "xid_warn_limit", "xid_stop_limit", "xid_wrap_limit", "oldest_xid_db"), _24(NULL), _25("pg_get_xidlimit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_gtt_attached_pid", 1, - AddBuiltinFunc(_0(3598), _1("pg_gtt_attached_pid"), _2(1), _3(true), _4(true), _5(pg_gtt_attached_pid), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(3, 26, 26, 20), _22(3, 'i', 'o', 'o'), _23(3, "relid", "relid", "pid"), _24(NULL), _25("pg_gtt_attached_pid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3598), _1("pg_gtt_attached_pid"), _2(1), _3(true), _4(true), _5(pg_gtt_attached_pid), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(3, 26, 26, 20), _22(3, 'i', 'o', 'o'), _23(3, "relid", "relid", "pid"), _24(NULL), _25("pg_gtt_attached_pid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_has_role", 6, - AddBuiltinFunc(_0(2705), _1("pg_has_role"), _2(3), _3(true), _4(false), _5(pg_has_role_name_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 19, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_has_role_name_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2706), _1("pg_has_role"), _2(3), _3(true), _4(false), _5(pg_has_role_name_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_has_role_name_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2707), _1("pg_has_role"), _2(3), _3(true), _4(false), _5(pg_has_role_id_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 19, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_has_role_id_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2708), _1("pg_has_role"), _2(3), _3(true), _4(false), _5(pg_has_role_id_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_has_role_id_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2709), _1("pg_has_role"), _2(2), _3(true), _4(false), _5(pg_has_role_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 19, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_has_role_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2710), _1("pg_has_role"), _2(2), _3(true), _4(false), _5(pg_has_role_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_has_role_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2705), _1("pg_has_role"), _2(3), _3(true), _4(false), _5(pg_has_role_name_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 19, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_has_role_name_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on role by username, role name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2706), _1("pg_has_role"), _2(3), _3(true), _4(false), _5(pg_has_role_name_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 19, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_has_role_name_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on role by username, role oid"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2707), _1("pg_has_role"), _2(3), _3(true), _4(false), _5(pg_has_role_id_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 19, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_has_role_id_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on role by user oid, role name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2708), _1("pg_has_role"), _2(3), _3(true), _4(false), _5(pg_has_role_id_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 26, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_has_role_id_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("user privilege on role by user oid, role oid"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2709), _1("pg_has_role"), _2(2), _3(true), _4(false), _5(pg_has_role_name), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 19, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_has_role_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("current user privilege on role by role name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2710), _1("pg_has_role"), _2(2), _3(true), _4(false), _5(pg_has_role_id), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_has_role_id"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("current user privilege on role by role oid"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_indexes_size", 1, - AddBuiltinFunc(_0(2998), _1("pg_indexes_size"), _2(1), _3(true), _4(false), _5(pg_indexes_size), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2205), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_indexes_size"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2998), _1("pg_indexes_size"), _2(1), _3(true), _4(false), _5(pg_indexes_size), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2205), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_indexes_size"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("disk space usage for all indexes attached to the specified table"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_is_in_recovery", 1, - AddBuiltinFunc(_0(3810), _1("pg_is_in_recovery"), _2(0), _3(true), _4(false), _5(pg_is_in_recovery), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_is_in_recovery"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3810), _1("pg_is_in_recovery"), _2(0), _3(true), _4(false), _5(pg_is_in_recovery), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_is_in_recovery"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("true if server is in recovery"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_is_other_temp_schema", 1, - AddBuiltinFunc(_0(2855), _1("pg_is_other_temp_schema"), _2(1), _3(true), _4(false), _5(pg_is_other_temp_schema), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_is_other_temp_schema"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2855), _1("pg_is_other_temp_schema"), _2(1), _3(true), _4(false), _5(pg_is_other_temp_schema), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_is_other_temp_schema"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("is schema another session\'s temp schema?"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_is_xlog_replay_paused", 1, - AddBuiltinFunc(_0(3073), _1("pg_is_xlog_replay_paused"), _2(0), _3(true), _4(false), _5(pg_is_xlog_replay_paused), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_is_xlog_replay_paused"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3073), _1("pg_is_xlog_replay_paused"), _2(0), _3(true), _4(false), _5(pg_is_xlog_replay_paused), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_is_xlog_replay_paused"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_last_xact_replay_timestamp", 1, - AddBuiltinFunc(_0(3830), _1("pg_last_xact_replay_timestamp"), _2(0), _3(true), _4(false), _5(pg_last_xact_replay_timestamp), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_last_xact_replay_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3830), _1("pg_last_xact_replay_timestamp"), _2(0), _3(true), _4(false), _5(pg_last_xact_replay_timestamp), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_last_xact_replay_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("timestamp of last replay xact"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_last_xlog_receive_location", 1, - AddBuiltinFunc(_0(3820), _1("pg_last_xlog_receive_location"), _2(0), _3(true), _4(false), _5(pg_last_xlog_receive_location), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_last_xlog_receive_location"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3820), _1("pg_last_xlog_receive_location"), _2(0), _3(true), _4(false), _5(pg_last_xlog_receive_location), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_last_xlog_receive_location"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_last_xlog_replay_location", 1, - AddBuiltinFunc(_0(3821), _1("pg_last_xlog_replay_location"), _2(0), _3(true), _4(false), _5(pg_last_xlog_replay_location), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(2, 25, 25), _22(2, 'o', 'o'), _23(2, "term", "lsn"), _24(NULL), _25("pg_last_xlog_replay_location"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3821), _1("pg_last_xlog_replay_location"), _2(0), _3(true), _4(false), _5(pg_last_xlog_replay_location), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(2, 25, 25), _22(2, 'o', 'o'), _23(2, "term", "lsn"), _24(NULL), _25("pg_last_xlog_replay_location"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_list_gtt_relfrozenxids", 1, - AddBuiltinFunc(_0(3599), _1("pg_list_gtt_relfrozenxids"), _2(0), _3(true), _4(true), _5(pg_list_gtt_relfrozenxids), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(2, 20, 28), _22(2, 'o', 'o'), _23(2, "pid", "relfrozenxid"), _24(NULL), _25("pg_list_gtt_relfrozenxids"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3599), _1("pg_list_gtt_relfrozenxids"), _2(0), _3(true), _4(true), _5(pg_list_gtt_relfrozenxids), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(2, 20, 28), _22(2, 'o', 'o'), _23(2, "pid", "relfrozenxid"), _24(NULL), _25("pg_list_gtt_relfrozenxids"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_listening_channels", 1, - AddBuiltinFunc(_0(3035), _1("pg_listening_channels"), _2(0), _3(true), _4(true), _5(pg_listening_channels), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_listening_channels"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3035), _1("pg_listening_channels"), _2(0), _3(true), _4(true), _5(pg_listening_channels), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_listening_channels"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("get the channels that the current backend listens to"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( - "pg_lock_status", 1, - AddBuiltinFunc(_0(1371), _1("pg_lock_status"), _2(0), _3(true), _4(true), _5(pg_lock_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(19, 25, 26, 26, 23, 21, 23, 25, 28, 26, 26, 21, 25, 20, 20, 25, 16, 16, 25, 25), _22(19, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(19, "locktype", "database", "relation", "page", "tuple", "bucket", "virtualxid", "transactionid", "classid", "objid", "objsubid", "virtualtransaction", "pid", "sessionid", "mode", "granted", "fastpath", "locktag", "global_sessionid"), _24(NULL), _25("pg_lock_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + "pg_lock_status", 1, + AddBuiltinFunc(_0(1371), _1("pg_lock_status"), _2(0), _3(true), _4(true), _5(pg_lock_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(19, 25, 26, 26, 23, 21, 23, 25, 28, 26, 26, 21, 25, 20, 20, 25, 16, 16, 25, 25), _22(19, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(19, "locktype", "database", "relation", "page", "tuple", "bucket", "virtualxid", "transactionid", "classid", "objid", "objsubid", "virtualtransaction", "pid", "sessionid", "mode", "granted", "fastpath", "locktag", "global_sessionid"), _24(NULL), _25("pg_lock_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("view system lock information"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_log_comm_status", 1, - AddBuiltinFunc(_0(1983), _1("pg_log_comm_status"), _2(0), _3(true), _4(false), _5(pg_log_comm_status), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_log_comm_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1983), _1("pg_log_comm_status"), _2(0), _3(true), _4(false), _5(pg_log_comm_status), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_log_comm_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_logical_slot_get_binary_changes", 1, - AddBuiltinFunc(_0(4217), _1("pg_logical_slot_get_binary_changes"), _2(4), _3(false), _4(true), _5(pg_logical_slot_get_binary_changes), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1000), _11(1000), _12(25), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(1), _20(4, 19, 25, 23, 1009), _21(7, 19, 25, 23, 1009, 25, 28, 17), _22(7, 'i', 'i', 'i', 'v', 'o', 'o', 'o'), _23(7, "slotname", "upto_lsn", "upto_nchanges", "options", "location", "xid", "data"), _24("({CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :ismaxvalue false :location 74881 :constvalue 16 [ 64 0 0 0 0 0 0 0 0 0 0 0 25 0 0 0 ] :cursor_data :row_count 0 :cur_dno 0 :is_open false :found false :not_found false :null_open false :null_fetch false})"), _25("pg_logical_slot_get_binary_changes"), _26(NULL), _27(NULL), _28(NULL), _29(1, 3), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4217), _1("pg_logical_slot_get_binary_changes"), _2(4), _3(false), _4(true), _5(pg_logical_slot_get_binary_changes), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1000), _11(1000), _12(25), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(1), _20(4, 19, 25, 23, 1009), _21(7, 19, 25, 23, 1009, 25, 28, 17), _22(7, 'i', 'i', 'i', 'v', 'o', 'o', 'o'), _23(7, "slotname", "upto_lsn", "upto_nchanges", "options", "location", "xid", "data"), _24("({CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :ismaxvalue false :location 74881 :constvalue 16 [ 64 0 0 0 0 0 0 0 0 0 0 0 25 0 0 0 ] :cursor_data :row_count 0 :cur_dno 0 :is_open false :found false :not_found false :null_open false :null_fetch false})"), _25("pg_logical_slot_get_binary_changes"), _26(NULL), _27(NULL), _28(NULL), _29(1, 3), _30(false), _31(false), _32(false), _33("get binary changes from replication slot"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_logical_slot_get_changes", 1, - AddBuiltinFunc(_0(4216), _1("pg_logical_slot_get_changes"), _2(4), _3(false), _4(true), _5(pg_logical_slot_get_changes), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1000), _11(1000), _12(25), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(1), _20(4, 19, 25, 23, 1009), _21(7, 19, 25, 23, 1009, 25, 28, 25), _22(7, 'i', 'i', 'i', 'v', 'o', 'o', 'o'), _23(7, "slotname", "upto_lsn", "upto_nchanges", "options", "location", "xid", "data"), _24("({CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :ismaxvalue false :location 74230 :constvalue 16 [ 64 0 0 0 0 0 0 0 0 0 0 0 25 0 0 0 ] :cursor_data :row_count 0 :cur_dno 0 :is_open false :found false :not_found false :null_open false :null_fetch false})"), _25("pg_logical_slot_get_changes"), _26(NULL), _27(NULL), _28(NULL), _29(1, 3), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4216), _1("pg_logical_slot_get_changes"), _2(4), _3(false), _4(true), _5(pg_logical_slot_get_changes), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1000), _11(1000), _12(25), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(1), _20(4, 19, 25, 23, 1009), _21(7, 19, 25, 23, 1009, 25, 28, 25), _22(7, 'i', 'i', 'i', 'v', 'o', 'o', 'o'), _23(7, "slotname", "upto_lsn", "upto_nchanges", "options", "location", "xid", "data"), _24("({CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :ismaxvalue false :location 74230 :constvalue 16 [ 64 0 0 0 0 0 0 0 0 0 0 0 25 0 0 0 ] :cursor_data :row_count 0 :cur_dno 0 :is_open false :found false :not_found false :null_open false :null_fetch false})"), _25("pg_logical_slot_get_changes"), _26(NULL), _27(NULL), _28(NULL), _29(1, 3), _30(false), _31(false), _32(false), _33("get changes from replication slot"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_logical_slot_peek_binary_changes", 1, - AddBuiltinFunc(_0(4219), _1("pg_logical_slot_peek_binary_changes"), _2(4), _3(false), _4(true), _5(pg_logical_slot_peek_binary_changes), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1000), _11(1000), _12(25), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(1), _20(4, 19, 25, 23, 1009), _21(7, 19, 25, 23, 1009, 25, 28, 17), _22(7, 'i', 'i', 'i', 'v', 'o', 'o', 'o'), _23(7, "slotname", "upto_lsn", "upto_nchanges", "options", "location", "xid", "data"), _24("({CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :ismaxvalue false :location 75218 :constvalue 16 [ 64 0 0 0 0 0 0 0 0 0 0 0 25 0 0 0 ] :cursor_data :row_count 0 :cur_dno 0 :is_open false :found false :not_found false :null_open false :null_fetch false})"), _25("pg_logical_slot_peek_binary_changes"), _26(NULL), _27(NULL), _28(NULL), _29(1, 3), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4219), _1("pg_logical_slot_peek_binary_changes"), _2(4), _3(false), _4(true), _5(pg_logical_slot_peek_binary_changes), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1000), _11(1000), _12(25), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(1), _20(4, 19, 25, 23, 1009), _21(7, 19, 25, 23, 1009, 25, 28, 17), _22(7, 'i', 'i', 'i', 'v', 'o', 'o', 'o'), _23(7, "slotname", "upto_lsn", "upto_nchanges", "options", "location", "xid", "data"), _24("({CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :ismaxvalue false :location 75218 :constvalue 16 [ 64 0 0 0 0 0 0 0 0 0 0 0 25 0 0 0 ] :cursor_data :row_count 0 :cur_dno 0 :is_open false :found false :not_found false :null_open false :null_fetch false})"), _25("pg_logical_slot_peek_binary_changes"), _26(NULL), _27(NULL), _28(NULL), _29(1, 3), _30(false), _31(false), _32(false), _33("peek at binary changes from replication slot"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_logical_slot_peek_changes", 1, - AddBuiltinFunc(_0(4218), _1("pg_logical_slot_peek_changes"), _2(4), _3(false), _4(true), _5(pg_logical_slot_peek_changes), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1000), _11(1000), _12(25), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(1), _20(4, 19, 25, 23, 1009), _21(7, 19, 25, 23, 1009, 25, 28, 25), _22(7, 'i', 'i', 'i', 'v', 'o', 'o', 'o'), _23(7, "slotname", "upto_lsn", "upto_nchanges", "options", "location", "xid", "data"), _24("({CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :ismaxvalue false :location 74552 :constvalue 16 [ 64 0 0 0 0 0 0 0 0 0 0 0 25 0 0 0 ] :cursor_data :row_count 0 :cur_dno 0 :is_open false :found false :not_found false :null_open false :null_fetch false})"), _25("pg_logical_slot_peek_changes"), _26(NULL), _27(NULL), _28(NULL), _29(1, 3), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4218), _1("pg_logical_slot_peek_changes"), _2(4), _3(false), _4(true), _5(pg_logical_slot_peek_changes), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1000), _11(1000), _12(25), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(1), _20(4, 19, 25, 23, 1009), _21(7, 19, 25, 23, 1009, 25, 28, 25), _22(7, 'i', 'i', 'i', 'v', 'o', 'o', 'o'), _23(7, "slotname", "upto_lsn", "upto_nchanges", "options", "location", "xid", "data"), _24("({CONST :consttype 1009 :consttypmod -1 :constcollid 100 :constlen -1 :constbyval false :constisnull false :ismaxvalue false :location 74552 :constvalue 16 [ 64 0 0 0 0 0 0 0 0 0 0 0 25 0 0 0 ] :cursor_data :row_count 0 :cur_dno 0 :is_open false :found false :not_found false :null_open false :null_fetch false})"), _25("pg_logical_slot_peek_changes"), _26(NULL), _27(NULL), _28(NULL), _29(1, 3), _30(false), _31(false), _32(false), _33("peek at changes from replication slot"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_ls_dir", 1, - AddBuiltinFunc(_0(2625), _1("pg_ls_dir"), _2(1), _3(true), _4(true), _5(pg_ls_dir), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_ls_dir"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2625), _1("pg_ls_dir"), _2(1), _3(true), _4(true), _5(pg_ls_dir), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_ls_dir"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("list all files in a directory"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_my_temp_schema", 1, - AddBuiltinFunc(_0(2854), _1("pg_my_temp_schema"), _2(0), _3(true), _4(false), _5(pg_my_temp_schema), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_my_temp_schema"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2854), _1("pg_my_temp_schema"), _2(0), _3(true), _4(false), _5(pg_my_temp_schema), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_my_temp_schema"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("get OID of current session\'s temp schema, if any"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_node_tree_in", 1, - AddBuiltinFunc(_0(195), _1("pg_node_tree_in"), _2(1), _3(true), _4(false), _5(pg_node_tree_in), _6(194), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_node_tree_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(195), _1("pg_node_tree_in"), _2(1), _3(true), _4(false), _5(pg_node_tree_in), _6(194), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_node_tree_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_node_tree_out", 1, - AddBuiltinFunc(_0(196), _1("pg_node_tree_out"), _2(1), _3(true), _4(false), _5(pg_node_tree_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 194), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_node_tree_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(196), _1("pg_node_tree_out"), _2(1), _3(true), _4(false), _5(pg_node_tree_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 194), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_node_tree_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_node_tree_recv", 1, - AddBuiltinFunc(_0(197), _1("pg_node_tree_recv"), _2(1), _3(true), _4(false), _5(pg_node_tree_recv), _6(194), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_node_tree_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(197), _1("pg_node_tree_recv"), _2(1), _3(true), _4(false), _5(pg_node_tree_recv), _6(194), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_node_tree_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_node_tree_send", 1, - AddBuiltinFunc(_0(198), _1("pg_node_tree_send"), _2(1), _3(true), _4(false), _5(pg_node_tree_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 194), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_node_tree_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(198), _1("pg_node_tree_send"), _2(1), _3(true), _4(false), _5(pg_node_tree_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 194), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_node_tree_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_notify", 1, - AddBuiltinFunc(_0(3036), _1("pg_notify"), _2(2), _3(false), _4(false), _5(pg_notify), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_notify"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3036), _1("pg_notify"), _2(2), _3(false), _4(false), _5(pg_notify), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_notify"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("send a notification event"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_opclass_is_visible", 1, - AddBuiltinFunc(_0(2083), _1("pg_opclass_is_visible"), _2(1), _3(true), _4(false), _5(pg_opclass_is_visible), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_opclass_is_visible"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2083), _1("pg_opclass_is_visible"), _2(1), _3(true), _4(false), _5(pg_opclass_is_visible), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_opclass_is_visible"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("is opclass visible in search path?"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_operator_is_visible", 1, - AddBuiltinFunc(_0(2082), _1("pg_operator_is_visible"), _2(1), _3(true), _4(false), _5(pg_operator_is_visible), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_operator_is_visible"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2082), _1("pg_operator_is_visible"), _2(1), _3(true), _4(false), _5(pg_operator_is_visible), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_operator_is_visible"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("is operator visible in search path?"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_opfamily_is_visible", 1, - AddBuiltinFunc(_0(3829), _1("pg_opfamily_is_visible"), _2(1), _3(true), _4(false), _5(pg_opfamily_is_visible), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_opfamily_is_visible"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3829), _1("pg_opfamily_is_visible"), _2(1), _3(true), _4(false), _5(pg_opfamily_is_visible), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_opfamily_is_visible"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("is opfamily visible in search path?"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_options_to_table", 1, - AddBuiltinFunc(_0(2289), _1("pg_options_to_table"), _2(1), _3(true), _4(true), _5(pg_options_to_table), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(3), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1009), _21(3, 1009, 25, 25), _22(3, 'i', 'o', 'o'), _23(3, "options_array", "option_name", "option_value"), _24(NULL), _25("pg_options_to_table"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2289), _1("pg_options_to_table"), _2(1), _3(true), _4(true), _5(pg_options_to_table), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(3), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1009), _21(3, 1009, 25, 25), _22(3, 'i', 'o', 'o'), _23(3, "options_array", "option_name", "option_value"), _24(NULL), _25("pg_options_to_table"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert generic options array to name/value table"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_parse_clog", 1, - AddBuiltinFunc(_0(3212), _1("pg_parse_clog"), _2(0), _3(true), _4(true), _5(pg_parse_clog), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(2, 28, 25), _22(2, 'o', 'o'), _23(2, "xid", "status"), _24(NULL), _25("pg_parse_clog"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3212), _1("pg_parse_clog"), _2(0), _3(true), _4(true), _5(pg_parse_clog), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(2, 28, 25), _22(2, 'o', 'o'), _23(2, "xid", "status"), _24(NULL), _25("pg_parse_clog"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_partition_filenode", 1, - AddBuiltinFunc(_0(3197), _1("pg_partition_filenode"), _2(1), _3(true), _4(false), _5(pg_partition_filenode), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2205), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_partition_filenode"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3197), _1("pg_partition_filenode"), _2(1), _3(true), _4(false), _5(pg_partition_filenode), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2205), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_partition_filenode"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_partition_filepath", 1, - AddBuiltinFunc(_0(3220), _1("pg_partition_filepath"), _2(1), _3(true), _4(false), _5(pg_partition_filepath), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(2, 26, 25), _22(2, 'i', 'o'), _23(2, "partition_oid", "filepath"), _24(NULL), _25("pg_partition_filepath"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3220), _1("pg_partition_filepath"), _2(1), _3(true), _4(false), _5(pg_partition_filepath), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(2, 26, 25), _22(2, 'i', 'o'), _23(2, "partition_oid", "filepath"), _24(NULL), _25("pg_partition_filepath"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_partition_indexes_size", 2, - AddBuiltinFunc(_0(3195), _1("pg_partition_indexes_size"), _2(2), _3(true), _4(false), _5(pg_partition_indexes_size_name), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_partition_indexes_size_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3196), _1("pg_partition_indexes_size"), _2(2), _3(true), _4(false), _5(pg_partition_indexes_size_oid), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 26, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_partition_indexes_size_oid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3195), _1("pg_partition_indexes_size"), _2(2), _3(true), _4(false), _5(pg_partition_indexes_size_name), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_partition_indexes_size_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3196), _1("pg_partition_indexes_size"), _2(2), _3(true), _4(false), _5(pg_partition_indexes_size_oid), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 26, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_partition_indexes_size_oid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_partition_size", 2, - AddBuiltinFunc(_0(3193), _1("pg_partition_size"), _2(2), _3(true), _4(false), _5(pg_partition_size_name), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_partition_size_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3194), _1("pg_partition_size"), _2(2), _3(true), _4(false), _5(pg_partition_size_oid), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 26, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_partition_size_oid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3193), _1("pg_partition_size"), _2(2), _3(true), _4(false), _5(pg_partition_size_name), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_partition_size_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3194), _1("pg_partition_size"), _2(2), _3(true), _4(false), _5(pg_partition_size_oid), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 26, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_partition_size_oid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_pool_ping", 1, - AddBuiltinFunc(_0(3472), _1("pg_pool_ping"), _2(1), _3(true), _4(true), _5(pg_pool_ping), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_pool_ping"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3472), _1("pg_pool_ping"), _2(1), _3(true), _4(true), _5(pg_pool_ping), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_pool_ping"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_pool_validate", 1, - AddBuiltinFunc(_0(3471), _1("pg_pool_validate"), _2(2), _3(true), _4(true), _5(pg_pool_validate), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 16, 2275), _21(4, 16, 2275, 20, 25), _22(4, 'i', 'i', 'o', 'o'), _23(4, "clear", "co_node_name", "pid", "node_name"), _24(NULL), _25("pg_pool_validate"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3471), _1("pg_pool_validate"), _2(2), _3(true), _4(true), _5(pg_pool_validate), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 16, 2275), _21(4, 16, 2275, 20, 25), _22(4, 'i', 'i', 'o', 'o'), _23(4, "clear", "co_node_name", "pid", "node_name"), _24(NULL), _25("pg_pool_validate"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_postmaster_start_time", 1, - AddBuiltinFunc(_0(2560), _1("pg_postmaster_start_time"), _2(0), _3(true), _4(false), _5(pg_postmaster_start_time), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_postmaster_start_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2560), _1("pg_postmaster_start_time"), _2(0), _3(true), _4(false), _5(pg_postmaster_start_time), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_postmaster_start_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("postmaster start time"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_prepared_statement", 1, - AddBuiltinFunc(_0(2510), _1("pg_prepared_statement"), _2(0), _3(true), _4(true), _5(pg_prepared_statement), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(5, 25, 25, 1184, 2211, 16), _22(5, 'o', 'o', 'o', 'o', 'o'), _23(5, "name", "statement", "prepare_time", "parameter_types", "from_sql"), _24(NULL), _25("pg_prepared_statement"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2510), _1("pg_prepared_statement"), _2(0), _3(true), _4(true), _5(pg_prepared_statement), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(5, 25, 25, 1184, 2211, 16), _22(5, 'o', 'o', 'o', 'o', 'o'), _23(5, "name", "statement", "prepare_time", "parameter_types", "from_sql"), _24(NULL), _25("pg_prepared_statement"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("get the prepared statements for this session"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_prepared_xact", 1, - AddBuiltinFunc(_0(1065), _1("pg_prepared_xact"), _2(0), _3(true), _4(true), _5(pg_prepared_xact), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(5, 28, 25, 1184, 26, 26), _22(5, 'o', 'o', 'o', 'o', 'o'), _23(5, "transaction", "gid", "prepared", "ownerid", "dbid"), _24(NULL), _25("pg_prepared_xact"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1065), _1("pg_prepared_xact"), _2(0), _3(true), _4(true), _5(pg_prepared_xact), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(5, 28, 25, 1184, 26, 26), _22(5, 'o', 'o', 'o', 'o', 'o'), _23(5, "transaction", "gid", "prepared", "ownerid", "dbid"), _24(NULL), _25("pg_prepared_xact"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("view two-phase transactions"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_query_audit", 2, - AddBuiltinFunc(_0(3780), _1("pg_query_audit"), _2(2), _3(false), _4(true), _5(pg_query_audit), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 1184, 1184), _21(15, 1184, 1184, 1184, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25), _22(15, 'i', 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(15, "begin", "end", "time", "type", "result", "userid", "username", "database", "client_conninfo", "object_name", "detail_info", "node_name", "thread_id", "local_port", "remote_port"), _24(NULL), _25("pg_query_audit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3782), _1("pg_query_audit"), _2(3), _3(false), _4(true), _5(pg_query_audit), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 1184, 1184, 25), _21(16, 1184, 1184, 25, 1184, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25), _22(16, 'i', 'i', 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(16, "begin", "end", "directory", "time", "type", "result", "userid", "username", "database", "client_conninfo", "object_name", "detail_info", "node_name", "thread_id", "local_port", "remote_port"), _24(NULL), _25("pg_query_audit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3780), _1("pg_query_audit"), _2(2), _3(false), _4(true), _5(pg_query_audit), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 1184, 1184), _21(15, 1184, 1184, 1184, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25), _22(15, 'i', 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(15, "begin", "end", "time", "type", "result", "userid", "username", "database", "client_conninfo", "object_name", "detail_info", "node_name", "thread_id", "local_port", "remote_port"), _24(NULL), _25("pg_query_audit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3782), _1("pg_query_audit"), _2(3), _3(false), _4(true), _5(pg_query_audit), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 1184, 1184, 25), _21(16, 1184, 1184, 25, 1184, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25), _22(16, 'i', 'i', 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(16, "begin", "end", "directory", "time", "type", "result", "userid", "username", "database", "client_conninfo", "object_name", "detail_info", "node_name", "thread_id", "local_port", "remote_port"), _24(NULL), _25("pg_query_audit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_read_binary_file", 2, - AddBuiltinFunc(_0(3827), _1("pg_read_binary_file"), _2(4), _3(true), _4(false), _5(pg_read_binary_file), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(4, 25, 20, 20, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_read_binary_file"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3828), _1("pg_read_binary_file"), _2(1), _3(true), _4(false), _5(pg_read_binary_file_all), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_read_binary_file_all"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3827), _1("pg_read_binary_file"), _2(4), _3(true), _4(false), _5(pg_read_binary_file), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(4, 25, 20, 20, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_read_binary_file"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("read bytea from a file"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3828), _1("pg_read_binary_file"), _2(1), _3(true), _4(false), _5(pg_read_binary_file_all), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_read_binary_file_all"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("read bytea from a file"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_read_binary_file_blocks", 1, @@ -7696,4048 +7923,4065 @@ ), AddFuncGroup( "pg_read_file", 2, - AddBuiltinFunc(_0(2624), _1("pg_read_file"), _2(3), _3(true), _4(false), _5(pg_read_file), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 25, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_read_file"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3826), _1("pg_read_file"), _2(1), _3(true), _4(false), _5(pg_read_file_all), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_read_file_all"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2624), _1("pg_read_file"), _2(3), _3(true), _4(false), _5(pg_read_file), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 25, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_read_file"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("read text from a file - old version for adminpack 1.0"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3826), _1("pg_read_file"), _2(1), _3(true), _4(false), _5(pg_read_file_all), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_read_file_all"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("read text from a file"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_relation_compression_ratio", 1, - AddBuiltinFunc(_0(3211), _1("pg_relation_compression_ratio"), _2(1), _3(true), _4(false), _5(pg_relation_compression_ratio), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_relation_compression_ratio"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3211), _1("pg_relation_compression_ratio"), _2(1), _3(true), _4(false), _5(pg_relation_compression_ratio), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_relation_compression_ratio"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_relation_filenode", 1, - AddBuiltinFunc(_0(2999), _1("pg_relation_filenode"), _2(1), _3(true), _4(false), _5(pg_relation_filenode), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2205), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_relation_filenode"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2999), _1("pg_relation_filenode"), _2(1), _3(true), _4(false), _5(pg_relation_filenode), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2205), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_relation_filenode"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("filenode identifier of relation"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_relation_filepath", 1, - AddBuiltinFunc(_0(3034), _1("pg_relation_filepath"), _2(1), _3(true), _4(false), _5(pg_relation_filepath), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2205), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_relation_filepath"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3034), _1("pg_relation_filepath"), _2(1), _3(true), _4(false), _5(pg_relation_filepath), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2205), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_relation_filepath"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("file path of relation"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_relation_size", 2, - AddBuiltinFunc(_0(2325), _1("pg_relation_size"), _2(1), _3(true), _4(false), _5(NULL), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2205), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.pg_relation_size($1, 'main')"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2332), _1("pg_relation_size"), _2(2), _3(true), _4(false), _5(pg_relation_size), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2205, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_relation_size"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2325), _1("pg_relation_size"), _2(1), _3(true), _4(false), _5(NULL), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2205), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.pg_relation_size($1, 'main')"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2332), _1("pg_relation_size"), _2(2), _3(true), _4(false), _5(pg_relation_size), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2205, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_relation_size"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("disk space usage for the specified fork of a table or index"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_relation_with_compression", 1, - AddBuiltinFunc(_0(3210), _1("pg_relation_with_compression"), _2(1), _3(true), _4(false), _5(pg_relation_with_compression), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_relation_with_compression"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3210), _1("pg_relation_with_compression"), _2(1), _3(true), _4(false), _5(pg_relation_with_compression), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_relation_with_compression"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_reload_conf", 1, - AddBuiltinFunc(_0(2621), _1("pg_reload_conf"), _2(0), _3(true), _4(false), _5(pg_reload_conf), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_reload_conf"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_replication_slot_advance", 1, - AddBuiltinFunc(_0(4220), _1("pg_replication_slot_advance"), _2(2), _3(false), _4(false), _5(pg_replication_slot_advance), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 19, 25), _21(4, 19, 25, 19, 25), _22(4, 'i', 'i', 'o', 'o'), _23(4, "slot_name", "upto_lsn", "slot_name", "end_lsn"), _24(NULL), _25("pg_replication_slot_advance"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_resume_bkp_flag", 1, - AddBuiltinFunc(_0(4445), _1("pg_resume_bkp_flag"), _2(1), _3(true), _4(false), _5(pg_resume_bkp_flag), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 19), _21(5, 19, 16, 16, 25, 25), _22(5, 'i', 'o', 'o', 'o', 'o'), _23(5, "slot_name", "start_backup_flag", "to_delay", "ddl_delay_recycle_ptr", "rewind_time"), _24(NULL), _25("pg_resume_bkp_flag"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_rotate_logfile", 1, - AddBuiltinFunc(_0(2622), _1("pg_rotate_logfile"), _2(0), _3(true), _4(false), _5(pg_rotate_logfile), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_rotate_logfile"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_sequence_parameters", 1, - AddBuiltinFunc(_0(3078), _1("pg_sequence_parameters"), _2(1), _3(true), _4(false), _5(pg_sequence_parameters), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(6, 26, 20, 20, 20, 20, 16), _22(6, 'i', 'o', 'o', 'o', 'o', 'o'), _23(6, "sequence_oid", "start_value", "minimum_value", "maximum_value", "increment", "cycle_option"), _24(NULL), _25("pg_sequence_parameters"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_shared_memctx_detail", 1, - AddBuiltinFunc(_0(3987), _1("pg_shared_memctx_detail"), _2(1), _3(false), _4(true), _5(pg_shared_memctx_detail), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_shared_memctx_detail"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_shared_memory_detail", 1, - AddBuiltinFunc(_0(3986), _1("pg_shared_memory_detail"), _2(0), _3(false), _4(true), _5(pg_shared_memory_detail), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(6, 25, 21, 25, 20, 20, 20), _22(6, 'o', 'o', 'o', 'o', 'o', 'o'), _23(6, "contextname", "level", "parent", "totalsize", "freesize", "usedsize"), _24(NULL), _25("pg_shared_memory_detail"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_show_all_settings", 1, - AddBuiltinFunc(_0(2084), _1("pg_show_all_settings"), _2(0), _3(true), _4(true), _5(show_all_settings), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(16, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 1009, 25, 25, 25, 23), _22(16, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(16, "name", "setting", "unit", "category", "short_desc", "extra_desc", "context", "vartype", "source", "min_val", "max_val", "enumvals", "boot_val", "reset_val", "sourcefile", "sourceline"), _24(NULL), _25("show_all_settings"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_size_pretty", 2, - AddBuiltinFunc(_0(2288), _1("pg_size_pretty"), _2(1), _3(true), _4(false), _5(pg_size_pretty), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_size_pretty"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3166), _1("pg_size_pretty"), _2(1), _3(true), _4(false), _5(pg_size_pretty_numeric), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_size_pretty_numeric"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_sleep", 1, - AddBuiltinFunc(_0(2626), _1("pg_sleep"), _2(1), _3(true), _4(false), _5(pg_sleep), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_sleep"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_start_backup", 2, - AddBuiltinFunc(_0(2172), _1("pg_start_backup"), _2(2), _3(true), _4(false), _5(pg_start_backup), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(1), _20(2, 25, 16), _21(NULL), _22(NULL), _23(2, "label", "fast"), _24("({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :ismaxvalue false :location 72803 :constvalue 1 [ 0 0 0 0 0 0 0 0 ] :cursor_data :row_count 0 :cur_dno 0 :is_open false :found false :not_found false :null_open false :null_fetch false})"), _25("pg_start_backup"), _26(NULL), _27(NULL), _28(NULL), _29(1, 1), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(6203), _1("pg_start_backup"), _2(3), _3(true), _4(false), _5(pg_start_backup_v2), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 25, 16, 16), _21(NULL), _22(NULL), _23(3, "label", "fast", "exclusive"), _24(NULL), _25("pg_start_backup_v2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_bad_block", 1, - AddBuiltinFunc(_0(3218), _1("pg_stat_bad_block"), _2(0), _3(true), _4(true), _5(pg_stat_bad_block), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(9, 25, 23, 23, 23, 21, 23, 23, 1184, 1184), _22(9, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(9, "nodename", "databaseid", "tablespaceid", "relfilenode", "bucketid", "forknum", "error_count", "first_time", "last_time"), _24(NULL), _25("pg_stat_bad_block"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_bad_block_clear", 1, - AddBuiltinFunc(_0(3219), _1("pg_stat_bad_block_clear"), _2(0), _3(false), _4(false), _5(pg_stat_bad_block_clear), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_bad_block_clear"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_clear_snapshot", 1, - AddBuiltinFunc(_0(2230), _1("pg_stat_clear_snapshot"), _2(0), _3(false), _4(false), _5(pg_stat_clear_snapshot), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_clear_snapshot"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_file", 1, - AddBuiltinFunc(_0(2623), _1("pg_stat_file"), _2(1), _3(true), _4(false), _5(pg_stat_file), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 25), _21(7, 25, 20, 1184, 1184, 1184, 1184, 16), _22(7, 'i', 'o', 'o', 'o', 'o', 'o', 'o'), _23(7, "filename", "size", "access", "modification", "change", "creation", "isdir"), _24(NULL), _25("pg_stat_file"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_file_recursive", 1, - AddBuiltinFunc(_0(6321), _1("pg_stat_file_recursive"), _2(1), _3(true), _4(true), _5(pg_stat_file_recursive), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 25), _21(5, 25, 25, 25, 20, 16), _22(5, 'i', 'o', 'o', 'o', 'o'), _23(5, "location", "path", "filename", "size", "isdir"), _24(NULL), _25("pg_stat_file_recursive"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_get_activity", 1, - AddBuiltinFunc(_0(2022), _1("pg_stat_get_activity"), _2(1), _3(false), _4(true), _5(pg_stat_get_activity), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 20), _21(20, 20, 26, 20, 20, 26, 25, 25, 25, 16, 1184, 1184, 1184, 1184, 869, 25, 23, 25, 20, 19, 25), _22(20, 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(20, "pid", "datid", "pid", "sessionid", "usesysid", "application_name", "state", "query", "waiting", "xact_start", "query_start", "backend_start", "state_change", "client_addr", "client_hostname", "client_port", "enqueue", "query_id", "srespool", "global_sessionid"), _24(NULL), _25("pg_stat_get_activity"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_get_activity_for_temptable", 1, - AddBuiltinFunc(_0(4213), _1("pg_stat_get_activity_for_temptable"), _2(0), _3(true), _4(true), _5(pg_stat_get_activity_for_temptable), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(4, 26, 23, 23, 20), _22(4, 'o', 'o', 'o', 'o'), _23(4, "datid", "timelineid", "tempid", "sessionid"), _24(NULL), _25("pg_stat_get_activity_for_temptable"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_get_activity_ng", 1, - AddBuiltinFunc(_0(5549), _1("pg_stat_get_activity_ng"), _2(1), _3(false), _4(true), _5(pg_stat_get_activity_ng), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 20), _21(5, 20, 26, 20, 20, 25), _22(5, 'i', 'o', 'o', 'o', 'o'), _23(5, "pid", "datid", "pid", "sessionid", "node_group"), _24(NULL), _25("pg_stat_get_activity_ng"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_get_activity_with_conninfo", 1, - AddBuiltinFunc(_0(4212), _1("pg_stat_get_activity_with_conninfo"), _2(1), _3(false), _4(true), _5(pg_stat_get_activity_with_conninfo), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 20), _21(21, 20, 26, 20, 20, 26, 25, 25, 25, 16, 1184, 1184, 1184, 1184, 869, 25, 23, 25, 20, 25, 19, 25), _22(21, 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(21, "pid", "datid", "pid", "sessionid", "usesysid", "application_name", "state", "query", "waiting", "xact_start", "query_start", "backend_start", "state_change", "client_addr", "client_hostname", "client_port", "enqueue", "query_id", "connection_info", "srespool", "global_sessionid"), _24(NULL), _25("pg_stat_get_activity_with_conninfo"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_get_analyze_count", 1, - AddBuiltinFunc(_0(3056), _1("pg_stat_get_analyze_count"), _2(1), _3(true), _4(false), _5(pg_stat_get_analyze_count), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_analyze_count"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_get_autoanalyze_count", 1, - AddBuiltinFunc(_0(3057), _1("pg_stat_get_autoanalyze_count"), _2(1), _3(true), _4(false), _5(pg_stat_get_autoanalyze_count), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_autoanalyze_count"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_get_autovacuum_count", 1, - AddBuiltinFunc(_0(3055), _1("pg_stat_get_autovacuum_count"), _2(1), _3(true), _4(false), _5(pg_stat_get_autovacuum_count), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_autovacuum_count"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_get_backend_activity", 1, - AddBuiltinFunc(_0(1940), _1("pg_stat_get_backend_activity"), _2(1), _3(true), _4(false), _5(pg_stat_get_backend_activity), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_backend_activity"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_get_backend_activity_start", 1, - AddBuiltinFunc(_0(2094), _1("pg_stat_get_backend_activity_start"), _2(1), _3(true), _4(false), _5(pg_stat_get_backend_activity_start), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_backend_activity_start"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_get_backend_client_addr", 1, - AddBuiltinFunc(_0(1392), _1("pg_stat_get_backend_client_addr"), _2(1), _3(true), _4(false), _5(pg_stat_get_backend_client_addr), _6(869), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_backend_client_addr"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_get_backend_client_port", 1, - AddBuiltinFunc(_0(1393), _1("pg_stat_get_backend_client_port"), _2(1), _3(true), _4(false), _5(pg_stat_get_backend_client_port), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_backend_client_port"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_get_backend_dbid", 1, - AddBuiltinFunc(_0(1938), _1("pg_stat_get_backend_dbid"), _2(1), _3(true), _4(false), _5(pg_stat_get_backend_dbid), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_backend_dbid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_get_backend_idset", 1, - AddBuiltinFunc(_0(1936), _1("pg_stat_get_backend_idset"), _2(0), _3(true), _4(true), _5(pg_stat_get_backend_idset), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_backend_idset"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_get_backend_pid", 1, - AddBuiltinFunc(_0(PGSTATGETBACKENDPIDFUNCOID), _1("pg_stat_get_backend_pid"), _2(1), _3(true), _4(false), _5(pg_stat_get_backend_pid), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_backend_pid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_get_backend_start", 1, - AddBuiltinFunc(_0(1391), _1("pg_stat_get_backend_start"), _2(1), _3(true), _4(false), _5(pg_stat_get_backend_start), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_backend_start"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_get_backend_userid", 1, - AddBuiltinFunc(_0(1939), _1("pg_stat_get_backend_userid"), _2(1), _3(true), _4(false), _5(pg_stat_get_backend_userid), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_backend_userid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_get_backend_waiting", 1, - AddBuiltinFunc(_0(2853), _1("pg_stat_get_backend_waiting"), _2(1), _3(true), _4(false), _5(pg_stat_get_backend_waiting), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_backend_waiting"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_get_backend_xact_start", 1, - AddBuiltinFunc(_0(2857), _1("pg_stat_get_backend_xact_start"), _2(1), _3(true), _4(false), _5(pg_stat_get_backend_xact_start), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_backend_xact_start"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_get_bgwriter_buf_written_checkpoints", 1, - AddBuiltinFunc(_0(2771), _1("pg_stat_get_bgwriter_buf_written_checkpoints"), _2(0), _3(true), _4(false), _5(pg_stat_get_bgwriter_buf_written_checkpoints), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_bgwriter_buf_written_checkpoints"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_get_bgwriter_buf_written_clean", 1, - AddBuiltinFunc(_0(2772), _1("pg_stat_get_bgwriter_buf_written_clean"), _2(0), _3(true), _4(false), _5(pg_stat_get_bgwriter_buf_written_clean), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_bgwriter_buf_written_clean"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_get_bgwriter_maxwritten_clean", 1, - AddBuiltinFunc(_0(2773), _1("pg_stat_get_bgwriter_maxwritten_clean"), _2(0), _3(true), _4(false), _5(pg_stat_get_bgwriter_maxwritten_clean), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_bgwriter_maxwritten_clean"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_get_bgwriter_requested_checkpoints", 1, - AddBuiltinFunc(_0(2770), _1("pg_stat_get_bgwriter_requested_checkpoints"), _2(0), _3(true), _4(false), _5(pg_stat_get_bgwriter_requested_checkpoints), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_bgwriter_requested_checkpoints"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_get_bgwriter_stat_reset_time", 1, - AddBuiltinFunc(_0(3075), _1("pg_stat_get_bgwriter_stat_reset_time"), _2(0), _3(true), _4(false), _5(pg_stat_get_bgwriter_stat_reset_time), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_bgwriter_stat_reset_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_get_bgwriter_timed_checkpoints", 1, - AddBuiltinFunc(_0(2769), _1("pg_stat_get_bgwriter_timed_checkpoints"), _2(0), _3(true), _4(false), _5(pg_stat_get_bgwriter_timed_checkpoints), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_bgwriter_timed_checkpoints"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_get_blocks_fetched", 1, - AddBuiltinFunc(_0(1934), _1("pg_stat_get_blocks_fetched"), _2(1), _3(true), _4(false), _5(pg_stat_get_blocks_fetched), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_blocks_fetched"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_get_blocks_hit", 1, - AddBuiltinFunc(_0(1935), _1("pg_stat_get_blocks_hit"), _2(1), _3(true), _4(false), _5(pg_stat_get_blocks_hit), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_blocks_hit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_get_buf_alloc", 1, - AddBuiltinFunc(_0(2859), _1("pg_stat_get_buf_alloc"), _2(0), _3(true), _4(false), _5(pg_stat_get_buf_alloc), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_buf_alloc"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_get_buf_fsync_backend", 1, - AddBuiltinFunc(_0(3063), _1("pg_stat_get_buf_fsync_backend"), _2(0), _3(true), _4(false), _5(pg_stat_get_buf_fsync_backend), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_buf_fsync_backend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_get_buf_written_backend", 1, - AddBuiltinFunc(_0(2775), _1("pg_stat_get_buf_written_backend"), _2(0), _3(true), _4(false), _5(pg_stat_get_buf_written_backend), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_buf_written_backend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_get_cgroup_info", 1, - AddBuiltinFunc(_0(5008), _1("pg_stat_get_cgroup_info"), _2(1), _3(false), _4(true), _5(pg_stat_get_cgroup_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(9, 25, 23, 23, 20, 20, 25, 25, 25, 25), _22(9, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(9, "cgroup_name", "percent", "usage_percent", "shares", "usage", "cpuset", "relpath", "valid", "node_group"), _24(NULL), _25("pg_stat_get_cgroup_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_get_checkpoint_sync_time", 1, - AddBuiltinFunc(_0(3161), _1("pg_stat_get_checkpoint_sync_time"), _2(0), _3(true), _4(false), _5(pg_stat_get_checkpoint_sync_time), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_checkpoint_sync_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_get_checkpoint_write_time", 1, - AddBuiltinFunc(_0(3160), _1("pg_stat_get_checkpoint_write_time"), _2(0), _3(true), _4(false), _5(pg_stat_get_checkpoint_write_time), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_checkpoint_write_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_get_cu_hdd_asyn", 1, - AddBuiltinFunc(_0(3484), _1("pg_stat_get_cu_hdd_asyn"), _2(1), _3(true), _4(false), _5(pg_stat_get_cu_hdd_asyn), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_cu_hdd_asyn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_get_cu_hdd_sync", 1, - AddBuiltinFunc(_0(3483), _1("pg_stat_get_cu_hdd_sync"), _2(1), _3(true), _4(false), _5(pg_stat_get_cu_hdd_sync), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_cu_hdd_sync"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_get_cu_mem_hit", 1, - AddBuiltinFunc(_0(3480), _1("pg_stat_get_cu_mem_hit"), _2(1), _3(true), _4(false), _5(pg_stat_get_cu_mem_hit), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_cu_mem_hit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_get_data_senders", 1, - AddBuiltinFunc(_0(3785), _1("pg_stat_get_data_senders"), _2(0), _3(false), _4(true), _5(pg_stat_get_data_senders), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(13, 20, 23, 25, 25, 25, 1184, 1184, 23, 25, 25, 25, 25, 25), _22(13, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(13, "pid", "sender_pid", "local_role", "peer_role", "state", "catchup_start", "catchup_end", "queue_size", "queue_lower_tail", "queue_header", "queue_upper_tail", "send_position", "receive_position"), _24(NULL), _25("pg_stat_get_data_senders"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_get_db_blk_read_time", 1, - AddBuiltinFunc(_0(2844), _1("pg_stat_get_db_blk_read_time"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_blk_read_time), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_blk_read_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_get_db_blk_write_time", 1, - AddBuiltinFunc(_0(2845), _1("pg_stat_get_db_blk_write_time"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_blk_write_time), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_blk_write_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_get_db_blocks_fetched", 1, - AddBuiltinFunc(_0(1944), _1("pg_stat_get_db_blocks_fetched"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_blocks_fetched), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_blocks_fetched"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_get_db_blocks_hit", 1, - AddBuiltinFunc(_0(1945), _1("pg_stat_get_db_blocks_hit"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_blocks_hit), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_blocks_hit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2621), _1("pg_reload_conf"), _2(0), _3(true), _4(false), _5(pg_reload_conf), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_reload_conf"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("reload configuration files"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_replication_origin_advance", 1, - AddBuiltinFunc(_0(2634), _1("pg_replication_origin_advance"), _2(2), _3(true), _4(false), _5(pg_replication_origin_advance), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_replication_origin_advance"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("advance replication itentifier to specific location"), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2634), _1("pg_replication_origin_advance"), _2(2), _3(true), _4(false), _5(pg_replication_origin_advance), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_replication_origin_advance"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("advance replication itentifier to specific location"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_replication_origin_create", 1, - AddBuiltinFunc(_0(2635), _1("pg_replication_origin_create"), _2(1), _3(true), _4(false), _5(pg_replication_origin_create), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_replication_origin_create"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("create a replication origin"), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2635), _1("pg_replication_origin_create"), _2(1), _3(true), _4(false), _5(pg_replication_origin_create), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_replication_origin_create"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("create a replication origin"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_replication_origin_drop", 1, - AddBuiltinFunc(_0(2636), _1("pg_replication_origin_drop"), _2(1), _3(true), _4(false), _5(pg_replication_origin_drop), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_replication_origin_drop"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("drop replication origin identified by its name"), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2636), _1("pg_replication_origin_drop"), _2(1), _3(true), _4(false), _5(pg_replication_origin_drop), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_replication_origin_drop"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("drop replication origin identified by its name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_replication_origin_oid", 1, - AddBuiltinFunc(_0(2637), _1("pg_replication_origin_oid"), _2(1), _3(true), _4(false), _5(pg_replication_origin_oid), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_replication_origin_oid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("translate the replication origin's name to its id"), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2637), _1("pg_replication_origin_oid"), _2(1), _3(true), _4(false), _5(pg_replication_origin_oid), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_replication_origin_oid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("translate the replication origin's name to its id"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_replication_origin_progress", 1, - AddBuiltinFunc(_0(2638), _1("pg_replication_origin_progress"), _2(2), _3(true), _4(false), _5(pg_replication_origin_progress), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 25, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_replication_origin_progress"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("get an individual replication origin's replication progress"), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2638), _1("pg_replication_origin_progress"), _2(2), _3(true), _4(false), _5(pg_replication_origin_progress), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 25, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_replication_origin_progress"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("get an individual replication origin's replication progress"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_replication_origin_session_is_setup", 1, - AddBuiltinFunc(_0(2639), _1("pg_replication_origin_session_is_setup"), _2(0), _3(true), _4(false), _5(pg_replication_origin_session_is_setup), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_replication_origin_session_is_setup"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("is a replication origin configured in this session"), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2639), _1("pg_replication_origin_session_is_setup"), _2(0), _3(true), _4(false), _5(pg_replication_origin_session_is_setup), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_replication_origin_session_is_setup"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("is a replication origin configured in this session"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_replication_origin_session_progress", 1, - AddBuiltinFunc(_0(2640), _1("pg_replication_origin_session_progress"), _2(1), _3(true), _4(false), _5(pg_replication_origin_session_progress), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_replication_origin_session_progress"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("get the replication progress of the current session"), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2640), _1("pg_replication_origin_session_progress"), _2(1), _3(true), _4(false), _5(pg_replication_origin_session_progress), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_replication_origin_session_progress"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("get the replication progress of the current session"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_replication_origin_session_reset", 1, - AddBuiltinFunc(_0(2750), _1("pg_replication_origin_session_reset"), _2(0), _3(true), _4(false), _5(pg_replication_origin_session_reset), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_replication_origin_session_reset"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("teardown configured replication progress tracking"), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2750), _1("pg_replication_origin_session_reset"), _2(0), _3(true), _4(false), _5(pg_replication_origin_session_reset), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_replication_origin_session_reset"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("teardown configured replication progress tracking"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_replication_origin_session_setup", 1, - AddBuiltinFunc(_0(2751), _1("pg_replication_origin_session_setup"), _2(1), _3(true), _4(false), _5(pg_replication_origin_session_setup), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_replication_origin_session_setup"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("configure session to maintain replication progress tracking for the passed in origin"), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2751), _1("pg_replication_origin_session_setup"), _2(1), _3(true), _4(false), _5(pg_replication_origin_session_setup), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_replication_origin_session_setup"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("configure session to maintain replication progress tracking for the passed in origin"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_replication_origin_xact_reset", 1, - AddBuiltinFunc(_0(2752), _1("pg_replication_origin_xact_reset"), _2(0), _3(true), _4(false), _5(pg_replication_origin_xact_reset), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_replication_origin_xact_reset"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("reset the transaction's origin lsn and timestamp"), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2752), _1("pg_replication_origin_xact_reset"), _2(0), _3(true), _4(false), _5(pg_replication_origin_xact_reset), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_replication_origin_xact_reset"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("reset the transaction's origin lsn and timestamp"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_replication_origin_xact_setup", 1, - AddBuiltinFunc(_0(2799), _1("pg_replication_origin_xact_setup"), _2(2), _3(true), _4(false), _5(pg_replication_origin_xact_setup), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 25, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_replication_origin_xact_setup"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("setup the transaction's origin lsn and timestamp"), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2799), _1("pg_replication_origin_xact_setup"), _2(2), _3(true), _4(false), _5(pg_replication_origin_xact_setup), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 25, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_replication_origin_xact_setup"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("setup the transaction's origin lsn and timestamp"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( - "pg_stat_get_db_conflict_all", 1, - AddBuiltinFunc(_0(3070), _1("pg_stat_get_db_conflict_all"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_conflict_all), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_conflict_all"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + "pg_replication_slot_advance", 1, + AddBuiltinFunc(_0(4220), _1("pg_replication_slot_advance"), _2(2), _3(false), _4(false), _5(pg_replication_slot_advance), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 19, 25), _21(4, 19, 25, 19, 25), _22(4, 'i', 'i', 'o', 'o'), _23(4, "slot_name", "upto_lsn", "slot_name", "end_lsn"), _24(NULL), _25("pg_replication_slot_advance"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("advance logical replication slot"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( - "pg_stat_get_db_conflict_bufferpin", 1, - AddBuiltinFunc(_0(3068), _1("pg_stat_get_db_conflict_bufferpin"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_conflict_bufferpin), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_conflict_bufferpin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + "pg_resume_bkp_flag", 1, + AddBuiltinFunc(_0(4445), _1("pg_resume_bkp_flag"), _2(1), _3(true), _4(false), _5(pg_resume_bkp_flag), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 19), _21(5, 19, 16, 16, 25, 25), _22(5, 'i', 'o', 'o', 'o', 'o'), _23(5, "slot_name", "start_backup_flag", "to_delay", "ddl_delay_recycle_ptr", "rewind_time"), _24(NULL), _25("pg_resume_bkp_flag"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( - "pg_stat_get_db_conflict_lock", 1, - AddBuiltinFunc(_0(3066), _1("pg_stat_get_db_conflict_lock"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_conflict_lock), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_conflict_lock"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + "pg_rotate_logfile", 1, + AddBuiltinFunc(_0(2622), _1("pg_rotate_logfile"), _2(0), _3(true), _4(false), _5(pg_rotate_logfile), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_rotate_logfile"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("rotate log file - old version for adminpack 1.0"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( - "pg_stat_get_db_conflict_snapshot", 1, - AddBuiltinFunc(_0(3067), _1("pg_stat_get_db_conflict_snapshot"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_conflict_snapshot), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_conflict_snapshot"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + "pg_sequence_parameters", 1, + AddBuiltinFunc(_0(3078), _1("pg_sequence_parameters"), _2(1), _3(true), _4(false), _5(pg_sequence_parameters), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(6, 26, 34, 34, 34, 34, 16), _22(6, 'i', 'o', 'o', 'o', 'o', 'o'), _23(6, "sequence_oid", "start_value", "minimum_value", "maximum_value", "increment", "cycle_option"), _24(NULL), _25("pg_sequence_parameters"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("sequence parameters, for use by information schema"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( - "pg_stat_get_db_conflict_startup_deadlock", 1, - AddBuiltinFunc(_0(3069), _1("pg_stat_get_db_conflict_startup_deadlock"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_conflict_startup_deadlock), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_conflict_startup_deadlock"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + "pg_sequence_last_value", 1, + AddBuiltinFunc(_0(3080), _1("pg_sequence_last_value"), _2(1), _3(true), _4(false), _5(pg_sequence_last_value), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(3, 26, 34, 34), _22(3, 'i', 'o', 'o'), _23(3, "sequence_oid", "cache_value", "last_value"), _24(NULL), _25("pg_sequence_last_value"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) ), AddFuncGroup( - "pg_stat_get_db_conflict_tablespace", 1, - AddBuiltinFunc(_0(3065), _1("pg_stat_get_db_conflict_tablespace"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_conflict_tablespace), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_conflict_tablespace"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + "pg_shared_memctx_detail", 1, + AddBuiltinFunc(_0(3987), _1("pg_shared_memctx_detail"), _2(1), _3(false), _4(true), _5(pg_shared_memctx_detail), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_shared_memctx_detail"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( - "pg_stat_get_db_cu_hdd_asyn", 1, - AddBuiltinFunc(_0(3489), _1("pg_stat_get_db_cu_hdd_asyn"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_cu_hdd_asyn), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_cu_hdd_asyn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + "pg_shared_memory_detail", 1, + AddBuiltinFunc(_0(3986), _1("pg_shared_memory_detail"), _2(0), _3(false), _4(true), _5(pg_shared_memory_detail), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(6, 25, 21, 25, 20, 20, 20), _22(6, 'o', 'o', 'o', 'o', 'o', 'o'), _23(6, "contextname", "level", "parent", "totalsize", "freesize", "usedsize"), _24(NULL), _25("pg_shared_memory_detail"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( - "pg_stat_get_db_cu_hdd_sync", 1, - AddBuiltinFunc(_0(3488), _1("pg_stat_get_db_cu_hdd_sync"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_cu_hdd_sync), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_cu_hdd_sync"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + "pg_show_all_settings", 1, + AddBuiltinFunc(_0(2084), _1("pg_show_all_settings"), _2(0), _3(true), _4(true), _5(show_all_settings), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(16, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 1009, 25, 25, 25, 23), _22(16, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(16, "name", "setting", "unit", "category", "short_desc", "extra_desc", "context", "vartype", "source", "min_val", "max_val", "enumvals", "boot_val", "reset_val", "sourcefile", "sourceline"), _24(NULL), _25("show_all_settings"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("SHOW ALL as a function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_show_replication_origin_status", 1, - AddBuiltinFunc(_0(2800), _1("pg_show_replication_origin_status"), _2(0), _3(false), _4(true), _5(pg_show_replication_origin_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(4, 26, 25, 25, 25), _22(4, 'o', 'o', 'o', 'o'), _23(4, "local_id", "external_id", "remote_lsn", "local_lsn"), _24(NULL), _25("pg_show_replication_origin_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("get progress for all replication origins"), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2800), _1("pg_show_replication_origin_status"), _2(0), _3(false), _4(true), _5(pg_show_replication_origin_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(4, 26, 25, 25, 25), _22(4, 'o', 'o', 'o', 'o'), _23(4, "local_id", "external_id", "remote_lsn", "local_lsn"), _24(NULL), _25("pg_show_replication_origin_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("get progress for all replication origins"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_size_pretty", 2, + AddBuiltinFunc(_0(2288), _1("pg_size_pretty"), _2(1), _3(true), _4(false), _5(pg_size_pretty), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_size_pretty"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert a long int to a human readable text using size units"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3166), _1("pg_size_pretty"), _2(1), _3(true), _4(false), _5(pg_size_pretty_numeric), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_size_pretty_numeric"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert a numeric to a human readable text using size units"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_sleep", 1, + AddBuiltinFunc(_0(2626), _1("pg_sleep"), _2(1), _3(true), _4(false), _5(pg_sleep), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_sleep"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("sleep for the specified time in seconds"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_start_backup", 2, + AddBuiltinFunc(_0(2172), _1("pg_start_backup"), _2(2), _3(true), _4(false), _5(pg_start_backup), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(1), _20(2, 25, 16), _21(NULL), _22(NULL), _23(2, "label", "fast"), _24("({CONST :consttype 16 :consttypmod -1 :constcollid 0 :constlen 1 :constbyval true :constisnull false :ismaxvalue false :location 72803 :constvalue 1 [ 0 0 0 0 0 0 0 0 ] :cursor_data :row_count 0 :cur_dno 0 :is_open false :found false :not_found false :null_open false :null_fetch false})"), _25("pg_start_backup"), _26(NULL), _27(NULL), _28(NULL), _29(1, 1), _30(false), _31(false), _32(false), _33("prepare for taking an online backup"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(6203), _1("pg_start_backup"), _2(3), _3(true), _4(false), _5(pg_start_backup_v2), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 25, 16, 16), _21(NULL), _22(NULL), _23(3, "label", "fast", "exclusive"), _24(NULL), _25("pg_start_backup_v2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_bad_block", 1, + AddBuiltinFunc(_0(3218), _1("pg_stat_bad_block"), _2(0), _3(true), _4(true), _5(pg_stat_bad_block), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(9, 25, 23, 23, 23, 21, 23, 23, 1184, 1184), _22(9, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(9, "nodename", "databaseid", "tablespaceid", "relfilenode", "bucketid", "forknum", "error_count", "first_time", "last_time"), _24(NULL), _25("pg_stat_bad_block"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_bad_block_clear", 1, + AddBuiltinFunc(_0(3219), _1("pg_stat_bad_block_clear"), _2(0), _3(false), _4(false), _5(pg_stat_bad_block_clear), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_bad_block_clear"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_clear_snapshot", 1, + AddBuiltinFunc(_0(2230), _1("pg_stat_clear_snapshot"), _2(0), _3(false), _4(false), _5(pg_stat_clear_snapshot), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_clear_snapshot"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: discard current transaction\'s statistics snapshot"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_file", 1, + AddBuiltinFunc(_0(2623), _1("pg_stat_file"), _2(1), _3(true), _4(false), _5(pg_stat_file), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 25), _21(7, 25, 20, 1184, 1184, 1184, 1184, 16), _22(7, 'i', 'o', 'o', 'o', 'o', 'o', 'o'), _23(7, "filename", "size", "access", "modification", "change", "creation", "isdir"), _24(NULL), _25("pg_stat_file"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("get information about file"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_file_recursive", 1, + AddBuiltinFunc(_0(6321), _1("pg_stat_file_recursive"), _2(1), _3(true), _4(true), _5(pg_stat_file_recursive), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 25), _21(5, 25, 25, 25, 20, 16), _22(5, 'i', 'o', 'o', 'o', 'o'), _23(5, "location", "path", "filename", "size", "isdir"), _24(NULL), _25("pg_stat_file_recursive"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_activity", 1, + AddBuiltinFunc(_0(2022), _1("pg_stat_get_activity"), _2(1), _3(false), _4(true), _5(pg_stat_get_activity), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 20), _21(20, 20, 26, 20, 20, 26, 25, 25, 25, 16, 1184, 1184, 1184, 1184, 869, 25, 23, 25, 20, 19, 25), _22(20, 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(20, "pid", "datid", "pid", "sessionid", "usesysid", "application_name", "state", "query", "waiting", "xact_start", "query_start", "backend_start", "state_change", "client_addr", "client_hostname", "client_port", "enqueue", "query_id", "srespool", "global_sessionid"), _24(NULL), _25("pg_stat_get_activity"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: information about currently active backends"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_activity_for_temptable", 1, + AddBuiltinFunc(_0(4213), _1("pg_stat_get_activity_for_temptable"), _2(0), _3(true), _4(true), _5(pg_stat_get_activity_for_temptable), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(4, 26, 23, 23, 20), _22(4, 'o', 'o', 'o', 'o'), _23(4, "datid", "timelineid", "tempid", "sessionid"), _24(NULL), _25("pg_stat_get_activity_for_temptable"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_activity_ng", 1, + AddBuiltinFunc(_0(5549), _1("pg_stat_get_activity_ng"), _2(1), _3(false), _4(true), _5(pg_stat_get_activity_ng), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 20), _21(5, 20, 26, 20, 20, 25), _22(5, 'i', 'o', 'o', 'o', 'o'), _23(5, "pid", "datid", "pid", "sessionid", "node_group"), _24(NULL), _25("pg_stat_get_activity_ng"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_activity_with_conninfo", 1, + AddBuiltinFunc(_0(4212), _1("pg_stat_get_activity_with_conninfo"), _2(1), _3(false), _4(true), _5(pg_stat_get_activity_with_conninfo), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 20), _21(21, 20, 26, 20, 20, 26, 25, 25, 25, 16, 1184, 1184, 1184, 1184, 869, 25, 23, 25, 20, 25, 19, 25), _22(21, 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(21, "pid", "datid", "pid", "sessionid", "usesysid", "application_name", "state", "query", "waiting", "xact_start", "query_start", "backend_start", "state_change", "client_addr", "client_hostname", "client_port", "enqueue", "query_id", "connection_info", "srespool", "global_sessionid"), _24(NULL), _25("pg_stat_get_activity_with_conninfo"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_analyze_count", 1, + AddBuiltinFunc(_0(3056), _1("pg_stat_get_analyze_count"), _2(1), _3(true), _4(false), _5(pg_stat_get_analyze_count), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_analyze_count"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: number of manual analyzes for a table"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_autoanalyze_count", 1, + AddBuiltinFunc(_0(3057), _1("pg_stat_get_autoanalyze_count"), _2(1), _3(true), _4(false), _5(pg_stat_get_autoanalyze_count), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_autoanalyze_count"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: number of auto analyzes for a table"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_autovacuum_count", 1, + AddBuiltinFunc(_0(3055), _1("pg_stat_get_autovacuum_count"), _2(1), _3(true), _4(false), _5(pg_stat_get_autovacuum_count), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_autovacuum_count"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: number of auto vacuums for a table"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_backend_activity", 1, + AddBuiltinFunc(_0(1940), _1("pg_stat_get_backend_activity"), _2(1), _3(true), _4(false), _5(pg_stat_get_backend_activity), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_backend_activity"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: current query of backend"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_backend_activity_start", 1, + AddBuiltinFunc(_0(2094), _1("pg_stat_get_backend_activity_start"), _2(1), _3(true), _4(false), _5(pg_stat_get_backend_activity_start), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_backend_activity_start"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: start time for current query of backend"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_backend_client_addr", 1, + AddBuiltinFunc(_0(1392), _1("pg_stat_get_backend_client_addr"), _2(1), _3(true), _4(false), _5(pg_stat_get_backend_client_addr), _6(869), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_backend_client_addr"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: address of client connected to backend"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_backend_client_port", 1, + AddBuiltinFunc(_0(1393), _1("pg_stat_get_backend_client_port"), _2(1), _3(true), _4(false), _5(pg_stat_get_backend_client_port), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_backend_client_port"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: port number of client connected to backend"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_backend_dbid", 1, + AddBuiltinFunc(_0(1938), _1("pg_stat_get_backend_dbid"), _2(1), _3(true), _4(false), _5(pg_stat_get_backend_dbid), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_backend_dbid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: database ID of backend"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_backend_idset", 1, + AddBuiltinFunc(_0(1936), _1("pg_stat_get_backend_idset"), _2(0), _3(true), _4(true), _5(pg_stat_get_backend_idset), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_backend_idset"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: currently active backend IDs"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_backend_pid", 1, + AddBuiltinFunc(_0(PGSTATGETBACKENDPIDFUNCOID), _1("pg_stat_get_backend_pid"), _2(1), _3(true), _4(false), _5(pg_stat_get_backend_pid), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_backend_pid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: PID of backend"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_backend_start", 1, + AddBuiltinFunc(_0(1391), _1("pg_stat_get_backend_start"), _2(1), _3(true), _4(false), _5(pg_stat_get_backend_start), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_backend_start"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: start time for current backend session"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_backend_userid", 1, + AddBuiltinFunc(_0(1939), _1("pg_stat_get_backend_userid"), _2(1), _3(true), _4(false), _5(pg_stat_get_backend_userid), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_backend_userid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: user ID of backend"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_backend_waiting", 1, + AddBuiltinFunc(_0(2853), _1("pg_stat_get_backend_waiting"), _2(1), _3(true), _4(false), _5(pg_stat_get_backend_waiting), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_backend_waiting"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_backend_xact_start", 1, + AddBuiltinFunc(_0(2857), _1("pg_stat_get_backend_xact_start"), _2(1), _3(true), _4(false), _5(pg_stat_get_backend_xact_start), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_backend_xact_start"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: start time for backend\'s current transaction"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_bgwriter_buf_written_checkpoints", 1, + AddBuiltinFunc(_0(2771), _1("pg_stat_get_bgwriter_buf_written_checkpoints"), _2(0), _3(true), _4(false), _5(pg_stat_get_bgwriter_buf_written_checkpoints), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_bgwriter_buf_written_checkpoints"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: number of buffers written by the bgwriter during checkpoints"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_bgwriter_buf_written_clean", 1, + AddBuiltinFunc(_0(2772), _1("pg_stat_get_bgwriter_buf_written_clean"), _2(0), _3(true), _4(false), _5(pg_stat_get_bgwriter_buf_written_clean), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_bgwriter_buf_written_clean"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: number of buffers written by the bgwriter for cleaning dirty buffers"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_bgwriter_maxwritten_clean", 1, + AddBuiltinFunc(_0(2773), _1("pg_stat_get_bgwriter_maxwritten_clean"), _2(0), _3(true), _4(false), _5(pg_stat_get_bgwriter_maxwritten_clean), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_bgwriter_maxwritten_clean"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: number of times the bgwriter stopped processing when it had written too many buffers while cleaning"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_bgwriter_requested_checkpoints", 1, + AddBuiltinFunc(_0(2770), _1("pg_stat_get_bgwriter_requested_checkpoints"), _2(0), _3(true), _4(false), _5(pg_stat_get_bgwriter_requested_checkpoints), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_bgwriter_requested_checkpoints"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: number of backend requested checkpoints started by the bgwriter"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_bgwriter_stat_reset_time", 1, + AddBuiltinFunc(_0(3075), _1("pg_stat_get_bgwriter_stat_reset_time"), _2(0), _3(true), _4(false), _5(pg_stat_get_bgwriter_stat_reset_time), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_bgwriter_stat_reset_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: last reset for the bgwriter"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_bgwriter_timed_checkpoints", 1, + AddBuiltinFunc(_0(2769), _1("pg_stat_get_bgwriter_timed_checkpoints"), _2(0), _3(true), _4(false), _5(pg_stat_get_bgwriter_timed_checkpoints), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_bgwriter_timed_checkpoints"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: number of timed checkpoints started by the bgwriter"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_blocks_fetched", 1, + AddBuiltinFunc(_0(1934), _1("pg_stat_get_blocks_fetched"), _2(1), _3(true), _4(false), _5(pg_stat_get_blocks_fetched), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_blocks_fetched"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: number of blocks fetched"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_blocks_hit", 1, + AddBuiltinFunc(_0(1935), _1("pg_stat_get_blocks_hit"), _2(1), _3(true), _4(false), _5(pg_stat_get_blocks_hit), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_blocks_hit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: number of blocks found in cache"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_buf_alloc", 1, + AddBuiltinFunc(_0(2859), _1("pg_stat_get_buf_alloc"), _2(0), _3(true), _4(false), _5(pg_stat_get_buf_alloc), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_buf_alloc"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: number of buffer allocations"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_buf_fsync_backend", 1, + AddBuiltinFunc(_0(3063), _1("pg_stat_get_buf_fsync_backend"), _2(0), _3(true), _4(false), _5(pg_stat_get_buf_fsync_backend), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_buf_fsync_backend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: number of backend buffer writes that did their own fsync"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_buf_written_backend", 1, + AddBuiltinFunc(_0(2775), _1("pg_stat_get_buf_written_backend"), _2(0), _3(true), _4(false), _5(pg_stat_get_buf_written_backend), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_buf_written_backend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: number of buffers written by backends"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_cgroup_info", 1, + AddBuiltinFunc(_0(5008), _1("pg_stat_get_cgroup_info"), _2(1), _3(false), _4(true), _5(pg_stat_get_cgroup_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(9, 25, 23, 23, 20, 20, 25, 25, 25, 25), _22(9, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(9, "cgroup_name", "percent", "usage_percent", "shares", "usage", "cpuset", "relpath", "valid", "node_group"), _24(NULL), _25("pg_stat_get_cgroup_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_checkpoint_sync_time", 1, + AddBuiltinFunc(_0(3161), _1("pg_stat_get_checkpoint_sync_time"), _2(0), _3(true), _4(false), _5(pg_stat_get_checkpoint_sync_time), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_checkpoint_sync_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: checkpoint time spent synchronizing buffers to disk, in milliseconds"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_checkpoint_write_time", 1, + AddBuiltinFunc(_0(3160), _1("pg_stat_get_checkpoint_write_time"), _2(0), _3(true), _4(false), _5(pg_stat_get_checkpoint_write_time), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_checkpoint_write_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: checkpoint time spent writing buffers to disk, in milliseconds"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_cu_hdd_asyn", 1, + AddBuiltinFunc(_0(3484), _1("pg_stat_get_cu_hdd_asyn"), _2(1), _3(true), _4(false), _5(pg_stat_get_cu_hdd_asyn), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_cu_hdd_asyn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_cu_hdd_sync", 1, + AddBuiltinFunc(_0(3483), _1("pg_stat_get_cu_hdd_sync"), _2(1), _3(true), _4(false), _5(pg_stat_get_cu_hdd_sync), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_cu_hdd_sync"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_cu_mem_hit", 1, + AddBuiltinFunc(_0(3480), _1("pg_stat_get_cu_mem_hit"), _2(1), _3(true), _4(false), _5(pg_stat_get_cu_mem_hit), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_cu_mem_hit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_data_senders", 1, + AddBuiltinFunc(_0(3785), _1("pg_stat_get_data_senders"), _2(0), _3(false), _4(true), _5(pg_stat_get_data_senders), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(13, 20, 23, 25, 25, 25, 1184, 1184, 23, 25, 25, 25, 25, 25), _22(13, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(13, "pid", "sender_pid", "local_role", "peer_role", "state", "catchup_start", "catchup_end", "queue_size", "queue_lower_tail", "queue_header", "queue_upper_tail", "send_position", "receive_position"), _24(NULL), _25("pg_stat_get_data_senders"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_db_blk_read_time", 1, + AddBuiltinFunc(_0(2844), _1("pg_stat_get_db_blk_read_time"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_blk_read_time), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_blk_read_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: block read time, in milliseconds"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_db_blk_write_time", 1, + AddBuiltinFunc(_0(2845), _1("pg_stat_get_db_blk_write_time"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_blk_write_time), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_blk_write_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: block write time, in milliseconds"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_db_blocks_fetched", 1, + AddBuiltinFunc(_0(1944), _1("pg_stat_get_db_blocks_fetched"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_blocks_fetched), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_blocks_fetched"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: blocks fetched for database"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_db_blocks_hit", 1, + AddBuiltinFunc(_0(1945), _1("pg_stat_get_db_blocks_hit"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_blocks_hit), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_blocks_hit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: blocks found in cache for database"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_db_conflict_all", 1, + AddBuiltinFunc(_0(3070), _1("pg_stat_get_db_conflict_all"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_conflict_all), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_conflict_all"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: recovery conflicts in database"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_db_conflict_bufferpin", 1, + AddBuiltinFunc(_0(3068), _1("pg_stat_get_db_conflict_bufferpin"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_conflict_bufferpin), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_conflict_bufferpin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: recovery conflicts in database caused by shared buffer pin"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_db_conflict_lock", 1, + AddBuiltinFunc(_0(3066), _1("pg_stat_get_db_conflict_lock"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_conflict_lock), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_conflict_lock"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: recovery conflicts in database caused by relation lock"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_db_conflict_snapshot", 1, + AddBuiltinFunc(_0(3067), _1("pg_stat_get_db_conflict_snapshot"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_conflict_snapshot), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_conflict_snapshot"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: recovery conflicts in database caused by snapshot expiry"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_db_conflict_startup_deadlock", 1, + AddBuiltinFunc(_0(3069), _1("pg_stat_get_db_conflict_startup_deadlock"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_conflict_startup_deadlock), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_conflict_startup_deadlock"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: recovery conflicts in database caused by buffer deadlock"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_db_conflict_tablespace", 1, + AddBuiltinFunc(_0(3065), _1("pg_stat_get_db_conflict_tablespace"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_conflict_tablespace), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_conflict_tablespace"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: recovery conflicts in database caused by drop tablespace"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_db_cu_hdd_asyn", 1, + AddBuiltinFunc(_0(3489), _1("pg_stat_get_db_cu_hdd_asyn"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_cu_hdd_asyn), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_cu_hdd_asyn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_db_cu_hdd_sync", 1, + AddBuiltinFunc(_0(3488), _1("pg_stat_get_db_cu_hdd_sync"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_cu_hdd_sync), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_cu_hdd_sync"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_db_cu_mem_hit", 1, - AddBuiltinFunc(_0(3485), _1("pg_stat_get_db_cu_mem_hit"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_cu_mem_hit), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_cu_mem_hit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3485), _1("pg_stat_get_db_cu_mem_hit"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_cu_mem_hit), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_cu_mem_hit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_db_deadlocks", 1, - AddBuiltinFunc(_0(3152), _1("pg_stat_get_db_deadlocks"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_deadlocks), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_deadlocks"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3152), _1("pg_stat_get_db_deadlocks"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_deadlocks), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_deadlocks"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: deadlocks detected in database"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_db_numbackends", 1, - AddBuiltinFunc(_0(1941), _1("pg_stat_get_db_numbackends"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_numbackends), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_numbackends"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1941), _1("pg_stat_get_db_numbackends"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_numbackends), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_numbackends"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: number of backends in database"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_db_stat_reset_time", 1, - AddBuiltinFunc(_0(3074), _1("pg_stat_get_db_stat_reset_time"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_stat_reset_time), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_stat_reset_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3074), _1("pg_stat_get_db_stat_reset_time"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_stat_reset_time), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_stat_reset_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: last reset for a database"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_db_temp_bytes", 1, - AddBuiltinFunc(_0(3151), _1("pg_stat_get_db_temp_bytes"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_temp_bytes), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_temp_bytes"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3151), _1("pg_stat_get_db_temp_bytes"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_temp_bytes), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_temp_bytes"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: number of bytes in temporary files written"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_db_temp_files", 1, - AddBuiltinFunc(_0(3150), _1("pg_stat_get_db_temp_files"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_temp_files), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_temp_files"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3150), _1("pg_stat_get_db_temp_files"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_temp_files), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_temp_files"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: number of temporary files written"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_db_tuples_deleted", 1, - AddBuiltinFunc(_0(2762), _1("pg_stat_get_db_tuples_deleted"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_tuples_deleted), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_tuples_deleted"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2762), _1("pg_stat_get_db_tuples_deleted"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_tuples_deleted), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_tuples_deleted"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: tuples deleted in database"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_db_tuples_fetched", 1, - AddBuiltinFunc(_0(2759), _1("pg_stat_get_db_tuples_fetched"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_tuples_fetched), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_tuples_fetched"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2759), _1("pg_stat_get_db_tuples_fetched"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_tuples_fetched), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_tuples_fetched"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: tuples fetched for database"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_db_tuples_inserted", 1, - AddBuiltinFunc(_0(2760), _1("pg_stat_get_db_tuples_inserted"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_tuples_inserted), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_tuples_inserted"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2760), _1("pg_stat_get_db_tuples_inserted"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_tuples_inserted), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_tuples_inserted"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: tuples inserted in database"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_db_tuples_returned", 1, - AddBuiltinFunc(_0(2758), _1("pg_stat_get_db_tuples_returned"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_tuples_returned), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_tuples_returned"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2758), _1("pg_stat_get_db_tuples_returned"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_tuples_returned), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_tuples_returned"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: tuples returned for database"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_db_tuples_updated", 1, - AddBuiltinFunc(_0(2761), _1("pg_stat_get_db_tuples_updated"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_tuples_updated), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_tuples_updated"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2761), _1("pg_stat_get_db_tuples_updated"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_tuples_updated), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_tuples_updated"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: tuples updated in database"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_db_xact_commit", 1, - AddBuiltinFunc(_0(1942), _1("pg_stat_get_db_xact_commit"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_xact_commit), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_xact_commit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1942), _1("pg_stat_get_db_xact_commit"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_xact_commit), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_xact_commit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: transactions committed"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_db_xact_rollback", 1, - AddBuiltinFunc(_0(1943), _1("pg_stat_get_db_xact_rollback"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_xact_rollback), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_xact_rollback"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1943), _1("pg_stat_get_db_xact_rollback"), _2(1), _3(true), _4(false), _5(pg_stat_get_db_xact_rollback), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_db_xact_rollback"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: transactions rolled back"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_dead_tuples", 1, - AddBuiltinFunc(_0(2879), _1("pg_stat_get_dead_tuples"), _2(1), _3(true), _4(false), _5(pg_stat_get_dead_tuples), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_dead_tuples"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2879), _1("pg_stat_get_dead_tuples"), _2(1), _3(true), _4(false), _5(pg_stat_get_dead_tuples), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_dead_tuples"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: number of dead tuples"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_env", 1, - AddBuiltinFunc(_0(3982), _1("pg_stat_get_env"), _2(0), _3(false), _4(true), _5(pg_stat_get_env), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(7, 25, 25, 23, 23, 25, 25, 25), _22(7, 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(7, "node_name", "host", "process", "port", "installpath", "datapath", "log_directory"), _24(NULL), _25("pg_stat_get_env"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3982), _1("pg_stat_get_env"), _2(0), _3(false), _4(true), _5(pg_stat_get_env), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(7, 25, 25, 23, 23, 25, 25, 25), _22(7, 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(7, "node_name", "host", "process", "port", "installpath", "datapath", "log_directory"), _24(NULL), _25("pg_stat_get_env"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_file_stat", 1, - AddBuiltinFunc(_0(3975), _1("pg_stat_get_file_stat"), _2(0), _3(false), _4(true), _5(pg_stat_get_file_stat), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(13, 26, 26, 26, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20), _22(13, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(13, "filenum", "dbid", "spcid", "phyrds", "phywrts", "phyblkrd", "phyblkwrt", "readtim", "writetim", "avgiotim", "lstiotim", "miniotim", "maxiowtm"), _24(NULL), _25("pg_stat_get_file_stat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3975), _1("pg_stat_get_file_stat"), _2(0), _3(false), _4(true), _5(pg_stat_get_file_stat), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(13, 26, 26, 26, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20), _22(13, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(13, "filenum", "dbid", "spcid", "phyrds", "phywrts", "phyblkrd", "phyblkwrt", "readtim", "writetim", "avgiotim", "lstiotim", "miniotim", "maxiowtm"), _24(NULL), _25("pg_stat_get_file_stat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_function_calls", 1, - AddBuiltinFunc(_0(2978), _1("pg_stat_get_function_calls"), _2(1), _3(true), _4(false), _5(pg_stat_get_function_calls), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_function_calls"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2978), _1("pg_stat_get_function_calls"), _2(1), _3(true), _4(false), _5(pg_stat_get_function_calls), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_function_calls"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: number of function calls"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_function_self_time", 1, - AddBuiltinFunc(_0(2980), _1("pg_stat_get_function_self_time"), _2(1), _3(true), _4(false), _5(pg_stat_get_function_self_time), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_function_self_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2980), _1("pg_stat_get_function_self_time"), _2(1), _3(true), _4(false), _5(pg_stat_get_function_self_time), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_function_self_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: self execution time of function, in milliseconds"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_function_total_time", 1, - AddBuiltinFunc(_0(2979), _1("pg_stat_get_function_total_time"), _2(1), _3(true), _4(false), _5(pg_stat_get_function_total_time), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_function_total_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2979), _1("pg_stat_get_function_total_time"), _2(1), _3(true), _4(false), _5(pg_stat_get_function_total_time), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_function_total_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: total execution time of function, in milliseconds"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_last_analyze_time", 1, - AddBuiltinFunc(_0(2783), _1("pg_stat_get_last_analyze_time"), _2(1), _3(true), _4(false), _5(pg_stat_get_last_analyze_time), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_last_analyze_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2783), _1("pg_stat_get_last_analyze_time"), _2(1), _3(true), _4(false), _5(pg_stat_get_last_analyze_time), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_last_analyze_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: last manual analyze time for a table"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_last_autoanalyze_time", 1, - AddBuiltinFunc(_0(2784), _1("pg_stat_get_last_autoanalyze_time"), _2(1), _3(true), _4(false), _5(pg_stat_get_last_autoanalyze_time), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_last_autoanalyze_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2784), _1("pg_stat_get_last_autoanalyze_time"), _2(1), _3(true), _4(false), _5(pg_stat_get_last_autoanalyze_time), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_last_autoanalyze_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: last auto analyze time for a table"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_last_autovacuum_time", 1, - AddBuiltinFunc(_0(2782), _1("pg_stat_get_last_autovacuum_time"), _2(1), _3(true), _4(false), _5(pg_stat_get_last_autovacuum_time), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_last_autovacuum_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2782), _1("pg_stat_get_last_autovacuum_time"), _2(1), _3(true), _4(false), _5(pg_stat_get_last_autovacuum_time), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_last_autovacuum_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: last auto vacuum time for a table"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_last_data_changed_time", 1, - AddBuiltinFunc(_0(5600), _1("pg_stat_get_last_data_changed_time"), _2(1), _3(true), _4(false), _5(pg_stat_get_last_data_changed_time), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_last_data_changed_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5600), _1("pg_stat_get_last_data_changed_time"), _2(1), _3(true), _4(false), _5(pg_stat_get_last_data_changed_time), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_last_data_changed_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_last_vacuum_time", 1, - AddBuiltinFunc(_0(2781), _1("pg_stat_get_last_vacuum_time"), _2(1), _3(true), _4(false), _5(pg_stat_get_last_vacuum_time), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_last_vacuum_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2781), _1("pg_stat_get_last_vacuum_time"), _2(1), _3(true), _4(false), _5(pg_stat_get_last_vacuum_time), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_last_vacuum_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: last manual vacuum time for a table"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_live_tuples", 1, - AddBuiltinFunc(_0(2878), _1("pg_stat_get_live_tuples"), _2(1), _3(true), _4(false), _5(pg_stat_get_live_tuples), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_live_tuples"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2878), _1("pg_stat_get_live_tuples"), _2(1), _3(true), _4(false), _5(pg_stat_get_live_tuples), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_live_tuples"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: number of live tuples"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_mem_mbytes_reserved", 1, - AddBuiltinFunc(_0(2846), _1("pg_stat_get_mem_mbytes_reserved"), _2(1), _3(true), _4(false), _5(pg_stat_get_mem_mbytes_reserved), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_mem_mbytes_reserved"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2846), _1("pg_stat_get_mem_mbytes_reserved"), _2(1), _3(true), _4(false), _5(pg_stat_get_mem_mbytes_reserved), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_mem_mbytes_reserved"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_numscans", 1, - AddBuiltinFunc(_0(1928), _1("pg_stat_get_numscans"), _2(1), _3(true), _4(false), _5(pg_stat_get_numscans), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_numscans"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1928), _1("pg_stat_get_numscans"), _2(1), _3(true), _4(false), _5(pg_stat_get_numscans), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_numscans"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: number of scans done for table/index"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_partition_dead_tuples", 1, - AddBuiltinFunc(_0(4087), _1("pg_stat_get_partition_dead_tuples"), _2(1), _3(false), _4(true), _5(pg_stat_get_partition_dead_tuples), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_partition_dead_tuples"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4087), _1("pg_stat_get_partition_dead_tuples"), _2(1), _3(false), _4(true), _5(pg_stat_get_partition_dead_tuples), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_partition_dead_tuples"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_partition_live_tuples", 1, - AddBuiltinFunc(_0(4092), _1("pg_stat_get_partition_live_tuples"), _2(1), _3(false), _4(true), _5(pg_stat_get_partition_live_tuples), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_partition_live_tuples"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4092), _1("pg_stat_get_partition_live_tuples"), _2(1), _3(false), _4(true), _5(pg_stat_get_partition_live_tuples), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_partition_live_tuples"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_partition_tuples_changed", 1, - AddBuiltinFunc(_0(4086), _1("pg_stat_get_partition_tuples_changed"), _2(1), _3(false), _4(true), _5(pg_stat_get_partition_tuples_changed), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_partition_tuples_changed"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4086), _1("pg_stat_get_partition_tuples_changed"), _2(1), _3(false), _4(true), _5(pg_stat_get_partition_tuples_changed), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_partition_tuples_changed"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_partition_tuples_deleted", 1, - AddBuiltinFunc(_0(4090), _1("pg_stat_get_partition_tuples_deleted"), _2(1), _3(false), _4(true), _5(pg_stat_get_partition_tuples_deleted), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_partition_tuples_deleted"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4090), _1("pg_stat_get_partition_tuples_deleted"), _2(1), _3(false), _4(true), _5(pg_stat_get_partition_tuples_deleted), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_partition_tuples_deleted"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_partition_tuples_hot_updated", 1, - AddBuiltinFunc(_0(4091), _1("pg_stat_get_partition_tuples_hot_updated"), _2(1), _3(false), _4(true), _5(pg_stat_get_partition_tuples_hot_updated), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_partition_tuples_hot_updated"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4091), _1("pg_stat_get_partition_tuples_hot_updated"), _2(1), _3(false), _4(true), _5(pg_stat_get_partition_tuples_hot_updated), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_partition_tuples_hot_updated"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_partition_tuples_inserted", 1, - AddBuiltinFunc(_0(4088), _1("pg_stat_get_partition_tuples_inserted"), _2(1), _3(false), _4(true), _5(pg_stat_get_partition_tuples_inserted), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_partition_tuples_inserted"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4088), _1("pg_stat_get_partition_tuples_inserted"), _2(1), _3(false), _4(true), _5(pg_stat_get_partition_tuples_inserted), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_partition_tuples_inserted"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_partition_tuples_updated", 1, - AddBuiltinFunc(_0(4089), _1("pg_stat_get_partition_tuples_updated"), _2(1), _3(false), _4(true), _5(pg_stat_get_partition_tuples_updated), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_partition_tuples_updated"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4089), _1("pg_stat_get_partition_tuples_updated"), _2(1), _3(false), _4(true), _5(pg_stat_get_partition_tuples_updated), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_partition_tuples_updated"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_pooler_status", 1, - AddBuiltinFunc(_0(3955), _1("pg_stat_get_pooler_status"), _2(0), _3(false), _4(true), _5(pg_stat_get_pooler_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(12, 25, 25, 20, 25, 20, 16, 25, 20, 20, 20, 20, 20), _22(12, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(12, "database_name", "user_name", "tid", "pgoptions", "node_oid", "in_use", "session_params", "fdsock", "remote_pid", "used_count", "idx", "streamid"), _24(NULL), _25("pg_stat_get_pooler_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3955), _1("pg_stat_get_pooler_status"), _2(0), _3(false), _4(true), _5(pg_stat_get_pooler_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(12, 25, 25, 20, 25, 20, 16, 25, 20, 20, 20, 20, 20), _22(12, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(12, "database_name", "user_name", "tid", "pgoptions", "node_oid", "in_use", "session_params", "fdsock", "remote_pid", "used_count", "idx", "streamid"), _24(NULL), _25("pg_stat_get_pooler_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_realtime_info_internal", 1, - AddBuiltinFunc(_0(3500), _1("pg_stat_get_realtime_info_internal"), _2(5), _3(true), _4(false), _5(pg_stat_get_realtime_info_internal), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(5, 26, 26, 20, 2275, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_realtime_info_internal"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3500), _1("pg_stat_get_realtime_info_internal"), _2(5), _3(true), _4(false), _5(pg_stat_get_realtime_info_internal), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(5, 26, 26, 20, 2275, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_realtime_info_internal"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_redo_stat", 1, - AddBuiltinFunc(_0(3973), _1("pg_stat_get_redo_stat"), _2(0), _3(false), _4(true), _5(pg_stat_get_redo_stat), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(7, 20, 20, 20, 20, 20, 20, 20), _22(7, 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(7, "phywrts", "phyblkwrt", "writetim", "avgiotim", "lstiotim", "miniotim", "maxiowtm"), _24(NULL), _25("pg_stat_get_redo_stat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3973), _1("pg_stat_get_redo_stat"), _2(0), _3(false), _4(true), _5(pg_stat_get_redo_stat), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(7, 20, 20, 20, 20, 20, 20, 20), _22(7, 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(7, "phywrts", "phyblkwrt", "writetim", "avgiotim", "lstiotim", "miniotim", "maxiowtm"), _24(NULL), _25("pg_stat_get_redo_stat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_role_name", 1, - AddBuiltinFunc(_0(5010), _1("pg_stat_get_role_name"), _2(1), _3(true), _4(false), _5(gs_get_role_name), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_get_role_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5010), _1("pg_stat_get_role_name"), _2(1), _3(true), _4(false), _5(gs_get_role_name), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("gs_get_role_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_session_wlmstat", 1, - AddBuiltinFunc(_0(3502), _1("pg_stat_get_session_wlmstat"), _2(1), _3(false), _4(true), _5(pg_stat_get_session_wlmstat), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(23, 23, 26, 20, 20, 23, 26, 25, 25, 20, 20, 20, 20, 23, 23, 23, 23, 25, 25, 25, 25, 16, 25, 19), _22(23, 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(23, "pid", "datid", "threadid", "sessionid", "threadpid", "usesysid", "appname", "query", "priority", "block_time", "elapsed_time", "total_cpu_time", "skew_percent", "statement_mem", "active_points", "dop_value", "current_cgroup", "current_status", "enqueue_state", "attribute", "is_plana", "node_group", "srespool"), _24(NULL), _25("pg_stat_get_session_wlmstat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3502), _1("pg_stat_get_session_wlmstat"), _2(1), _3(false), _4(true), _5(pg_stat_get_session_wlmstat), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(23, 23, 26, 20, 20, 23, 26, 25, 25, 20, 20, 20, 20, 23, 23, 23, 23, 25, 25, 25, 25, 16, 25, 19), _22(23, 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(23, "pid", "datid", "threadid", "sessionid", "threadpid", "usesysid", "appname", "query", "priority", "block_time", "elapsed_time", "total_cpu_time", "skew_percent", "statement_mem", "active_points", "dop_value", "current_cgroup", "current_status", "enqueue_state", "attribute", "is_plana", "node_group", "srespool"), _24(NULL), _25("pg_stat_get_session_wlmstat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_sql_count", 1, - AddBuiltinFunc(_0(3947), _1("pg_stat_get_sql_count"), _2(0), _3(false), _4(true), _5(pg_stat_get_sql_count), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(26, 25, 25, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20), _22(26, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(26, "node_name", "user_name", "select_count", "update_count", "insert_count", "delete_count", "mergeinto_count", "ddl_count", "dml_count", "dcl_count", "total_select_elapse", "avg_select_elapse", "max_select_elapse", "min_select_elapse", "total_update_elapse", "avg_update_elapse", "max_update_elapse", "min_update_elapse", "total_insert_elapse", "avg_insert_elapse", "max_insert_elapse", "min_insert_elapse", "total_delete_elapse", "avg_delete_elapse", "max_delete_elapse", "min_delete_elapse"), _24(NULL), _25("pg_stat_get_sql_count"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3947), _1("pg_stat_get_sql_count"), _2(0), _3(false), _4(true), _5(pg_stat_get_sql_count), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(26, 25, 25, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20), _22(26, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(26, "node_name", "user_name", "select_count", "update_count", "insert_count", "delete_count", "mergeinto_count", "ddl_count", "dml_count", "dcl_count", "total_select_elapse", "avg_select_elapse", "max_select_elapse", "min_select_elapse", "total_update_elapse", "avg_update_elapse", "max_update_elapse", "min_update_elapse", "total_insert_elapse", "avg_insert_elapse", "max_insert_elapse", "min_insert_elapse", "total_delete_elapse", "avg_delete_elapse", "max_delete_elapse", "min_delete_elapse"), _24(NULL), _25("pg_stat_get_sql_count"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_status", 1, - AddBuiltinFunc(_0(3980), _1("pg_stat_get_status"), _2(1), _3(false), _4(true), _5(pg_stat_get_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 20), _21(17, 20, 25, 25, 25, 20, 20, 20, 23, 20, 23, 23, 25, 25, 25, 25, 20, 25), _22(17, 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(17, "tid", "node_name", "db_name", "thread_name", "query_id", "tid", "sessionid", "lwtid", "psessionid", "tlevel", "smpid", "wait_status", "wait_event", "locktag", "lockmode", "block_sessionid", "global_sessionid"), _24(NULL), _25("pg_stat_get_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3980), _1("pg_stat_get_status"), _2(1), _3(false), _4(true), _5(pg_stat_get_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 20), _21(17, 20, 25, 25, 25, 20, 20, 20, 23, 20, 23, 23, 25, 25, 25, 25, 20, 25), _22(17, 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(17, "tid", "node_name", "db_name", "thread_name", "query_id", "tid", "sessionid", "lwtid", "psessionid", "tlevel", "smpid", "wait_status", "wait_event", "locktag", "lockmode", "block_sessionid", "global_sessionid"), _24(NULL), _25("pg_stat_get_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_stream_replications", 1, - AddBuiltinFunc(_0(3499), _1("pg_stat_get_stream_replications"), _2(0), _3(false), _4(true), _5(pg_stat_get_stream_replications), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(4, 25, 23, 25, 25), _22(4, 'o', 'o', 'o', 'o'), _23(4, "local_role", "static_connections", "db_state", "detail_information"), _24(NULL), _25("pg_stat_get_stream_replications"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3499), _1("pg_stat_get_stream_replications"), _2(0), _3(false), _4(true), _5(pg_stat_get_stream_replications), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(4, 25, 23, 25, 25), _22(4, 'o', 'o', 'o', 'o'), _23(4, "local_role", "static_connections", "db_state", "detail_information"), _24(NULL), _25("pg_stat_get_stream_replications"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "pg_stat_get_subscription", 1, + AddBuiltinFunc(_0(2802), _1("pg_stat_get_subscription"), _2(1), _3(false), _4(false), _5(pg_stat_get_subscription), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(8, 26, 26, 23, 25, 1184, 1184, 25, 1184), _22(8, 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(8, "subid", "subid", "pid", "received_lsn", "last_msg_send_time", "last_msg_receipt_time", "latest_end_lsn", "latest_end_time"), _24(NULL), _25("pg_stat_get_subscription"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: information about subscription"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_thread", 1, - AddBuiltinFunc(_0(3981), _1("pg_stat_get_thread"), _2(0), _3(false), _4(true), _5(pg_stat_get_thread), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(5, 25, 20, 23, 25, 1184), _22(5, 'o', 'o', 'o', 'o', 'o'), _23(5, "node_name", "pid", "lwpid", "thread_name", "creation_time"), _24(NULL), _25("pg_stat_get_thread"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3981), _1("pg_stat_get_thread"), _2(0), _3(false), _4(true), _5(pg_stat_get_thread), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(5, 25, 20, 23, 25, 1184), _22(5, 'o', 'o', 'o', 'o', 'o'), _23(5, "node_name", "pid", "lwpid", "thread_name", "creation_time"), _24(NULL), _25("pg_stat_get_thread"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_tuples_changed", 1, - AddBuiltinFunc(_0(3221), _1("pg_stat_get_tuples_changed"), _2(1), _3(true), _4(false), _5(pg_stat_get_tuples_changed), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_tuples_changed"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3221), _1("pg_stat_get_tuples_changed"), _2(1), _3(true), _4(false), _5(pg_stat_get_tuples_changed), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_tuples_changed"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_tuples_deleted", 1, - AddBuiltinFunc(_0(1933), _1("pg_stat_get_tuples_deleted"), _2(1), _3(true), _4(false), _5(pg_stat_get_tuples_deleted), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_tuples_deleted"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1933), _1("pg_stat_get_tuples_deleted"), _2(1), _3(true), _4(false), _5(pg_stat_get_tuples_deleted), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_tuples_deleted"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: number of tuples deleted"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_tuples_fetched", 1, - AddBuiltinFunc(_0(1930), _1("pg_stat_get_tuples_fetched"), _2(1), _3(true), _4(false), _5(pg_stat_get_tuples_fetched), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_tuples_fetched"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1930), _1("pg_stat_get_tuples_fetched"), _2(1), _3(true), _4(false), _5(pg_stat_get_tuples_fetched), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_tuples_fetched"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: number of tuples fetched by idxscan"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_tuples_hot_updated", 1, - AddBuiltinFunc(_0(1972), _1("pg_stat_get_tuples_hot_updated"), _2(1), _3(true), _4(false), _5(pg_stat_get_tuples_hot_updated), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_tuples_hot_updated"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1972), _1("pg_stat_get_tuples_hot_updated"), _2(1), _3(true), _4(false), _5(pg_stat_get_tuples_hot_updated), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_tuples_hot_updated"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: number of tuples hot updated"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_tuples_inserted", 1, - AddBuiltinFunc(_0(1931), _1("pg_stat_get_tuples_inserted"), _2(1), _3(true), _4(false), _5(pg_stat_get_tuples_inserted), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_tuples_inserted"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1931), _1("pg_stat_get_tuples_inserted"), _2(1), _3(true), _4(false), _5(pg_stat_get_tuples_inserted), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_tuples_inserted"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: number of tuples inserted"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_tuples_returned", 1, - AddBuiltinFunc(_0(1929), _1("pg_stat_get_tuples_returned"), _2(1), _3(true), _4(false), _5(pg_stat_get_tuples_returned), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_tuples_returned"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1929), _1("pg_stat_get_tuples_returned"), _2(1), _3(true), _4(false), _5(pg_stat_get_tuples_returned), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_tuples_returned"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: number of tuples read by seqscan"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_tuples_updated", 1, - AddBuiltinFunc(_0(1932), _1("pg_stat_get_tuples_updated"), _2(1), _3(true), _4(false), _5(pg_stat_get_tuples_updated), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_tuples_updated"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1932), _1("pg_stat_get_tuples_updated"), _2(1), _3(true), _4(false), _5(pg_stat_get_tuples_updated), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_tuples_updated"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: number of tuples updated"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_vacuum_count", 1, - AddBuiltinFunc(_0(3054), _1("pg_stat_get_vacuum_count"), _2(1), _3(true), _4(false), _5(pg_stat_get_vacuum_count), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_vacuum_count"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3054), _1("pg_stat_get_vacuum_count"), _2(1), _3(true), _4(false), _5(pg_stat_get_vacuum_count), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_vacuum_count"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: number of manual vacuums for a table"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_wal_receiver", 1, - AddBuiltinFunc(_0(3819), _1("pg_stat_get_wal_receiver"), _2(0), _3(false), _4(true), _5(pg_stat_get_wal_receiver), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(15, 23, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25), _22(15, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(15, "receiver_pid", "local_role", "peer_role", "peer_state", "state", "sender_sent_location", "sender_write_location", "sender_flush_location", "sender_replay_location", "receiver_received_location", "receiver_write_location", "receiver_flush_location", "receiver_replay_location", "sync_percent", "channel"), _24(NULL), _25("pg_stat_get_wal_receiver"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3819), _1("pg_stat_get_wal_receiver"), _2(0), _3(false), _4(true), _5(pg_stat_get_wal_receiver), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(15, 23, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25), _22(15, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(15, "receiver_pid", "local_role", "peer_role", "peer_state", "state", "sender_sent_location", "sender_write_location", "sender_flush_location", "sender_replay_location", "receiver_received_location", "receiver_write_location", "receiver_flush_location", "receiver_replay_location", "sync_percent", "channel"), _24(NULL), _25("pg_stat_get_wal_receiver"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: information about WAL receiver"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_wal_senders", 1, - AddBuiltinFunc(_0(3099), _1("pg_stat_get_wal_senders"), _2(0), _3(false), _4(true), _5(pg_stat_get_wal_senders), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(21, 20, 23, 25, 25, 25, 25, 1184, 1184, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 23, 25, 25), _22(21, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(21, "pid", "sender_pid", "local_role", "peer_role", "peer_state", "state", "catchup_start", "catchup_end", "sender_sent_location", "sender_write_location", "sender_flush_location", "sender_replay_location", "receiver_received_location", "receiver_write_location", "receiver_flush_location", "receiver_replay_location", "sync_percent", "sync_state", "sync_priority", "sync_most_available", "channel"), _24(NULL), _25("pg_stat_get_wal_senders"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "get_paxos_replication_info", 1, - AddBuiltinFunc(_0(8001), _1("get_paxos_replication_info"), _2(0), _3(false), _4(true), _5(get_paxos_replication_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(6, 25, 25, 25, 25, 25, 25), _22(6, 'o', 'o', 'o', 'o', 'o', 'o'), _23(6, "paxos_write_location", "paxos_commit_location", "local_write_location", "local_flush_location", "local_replay_location", "dcf_replication_info"), _24(NULL), _25("get_paxos_replication_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3099), _1("pg_stat_get_wal_senders"), _2(0), _3(false), _4(true), _5(pg_stat_get_wal_senders), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(21, 20, 23, 25, 25, 25, 25, 1184, 1184, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 23, 25, 25), _22(21, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(21, "pid", "sender_pid", "local_role", "peer_role", "peer_state", "state", "catchup_start", "catchup_end", "sender_sent_location", "sender_write_location", "sender_flush_location", "sender_replay_location", "receiver_received_location", "receiver_write_location", "receiver_flush_location", "receiver_replay_location", "sync_percent", "sync_state", "sync_priority", "sync_most_available", "channel"), _24(NULL), _25("pg_stat_get_wal_senders"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: information about currently active replication"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_wlm_ec_operator_info", 1, - AddBuiltinFunc(_0(5024), _1("pg_stat_get_wlm_ec_operator_info"), _2(1), _3(false), _4(true), _5(pg_stat_get_wlm_ec_operator_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(17, 20, 23, 25, 1184, 20, 20, 23, 23, 23, 23, 25, 25, 25, 25, 25, 25, 20), _22(17, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(17, "queryid", "plan_node_id", "plan_node_name", "start_time", "duration", "tuple_processed", "min_peak_memory", "max_peak_memory", "average_peak_memory", "ec_operator", "ec_status", "ec_execute_datanode", "ec_dsn", "ec_username", "ec_query", "ec_libodbc_type", "ec_fetch_count"), _24(NULL), _25("pg_stat_get_wlm_ec_operator_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5024), _1("pg_stat_get_wlm_ec_operator_info"), _2(1), _3(false), _4(true), _5(pg_stat_get_wlm_ec_operator_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(17, 20, 23, 25, 1184, 20, 20, 23, 23, 23, 23, 25, 25, 25, 25, 25, 25, 20), _22(17, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(17, "queryid", "plan_node_id", "plan_node_name", "start_time", "duration", "tuple_processed", "min_peak_memory", "max_peak_memory", "average_peak_memory", "ec_operator", "ec_status", "ec_execute_datanode", "ec_dsn", "ec_username", "ec_query", "ec_libodbc_type", "ec_fetch_count"), _24(NULL), _25("pg_stat_get_wlm_ec_operator_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_wlm_instance_info", 1, - AddBuiltinFunc(_0(5031), _1("pg_stat_get_wlm_instance_info"), _2(0), _3(false), _4(true), _5(pg_stat_get_wlm_instance_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(15, 25,1184,23,23,23,701,701,701,701,20,20,20,20,20,20), _22(15, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(15,"instancename","timestamp","used_cpu","free_memory","used_memory","io_await","io_util","disk_read","disk_write","process_read","process_write","logical_read","logical_write","read_counts","write_counts"), _24(NULL), _25("pg_stat_get_wlm_instance_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5031), _1("pg_stat_get_wlm_instance_info"), _2(0), _3(false), _4(true), _5(pg_stat_get_wlm_instance_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(15, 25,1184,23,23,23,701,701,701,701,20,20,20,20,20,20), _22(15, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(15,"instancename","timestamp","used_cpu","free_memory","used_memory","io_await","io_util","disk_read","disk_write","process_read","process_write","logical_read","logical_write","read_counts","write_counts"), _24(NULL), _25("pg_stat_get_wlm_instance_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_wlm_instance_info_with_cleanup", 1, - AddBuiltinFunc(_0(5032), _1("pg_stat_get_wlm_instance_info_with_cleanup"), _2(0), _3(false), _4(true), _5(pg_stat_get_wlm_instance_info_with_cleanup), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(15, 25,1184,23,23,23,701,701,701,701,20,20,20,20,20,20), _22(15, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(15,"instancename","timestamp","used_cpu","free_memory","used_memory","io_await","io_util","disk_read","disk_write","process_read","process_write","logical_read","logical_write","read_counts","write_counts"), _24(NULL), _25("pg_stat_get_wlm_instance_info_with_cleanup"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5032), _1("pg_stat_get_wlm_instance_info_with_cleanup"), _2(0), _3(false), _4(true), _5(pg_stat_get_wlm_instance_info_with_cleanup), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(15, 25,1184,23,23,23,701,701,701,701,20,20,20,20,20,20), _22(15, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(15,"instancename","timestamp","used_cpu","free_memory","used_memory","io_await","io_util","disk_read","disk_write","process_read","process_write","logical_read","logical_write","read_counts","write_counts"), _24(NULL), _25("pg_stat_get_wlm_instance_info_with_cleanup"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_wlm_node_resource_info", 1, - AddBuiltinFunc(_0(5019), _1("pg_stat_get_wlm_node_resource_info"), _2(1), _3(false), _4(true), _5(pg_stat_get_wlm_node_resource_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(7, 23, 23, 23, 23, 23, 23, 23), _22(7, 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(7, "min_mem_util", "max_mem_util", "min_cpu_util", "max_cpu_util", "min_io_util", "max_io_util", "used_mem_rate"), _24(NULL), _25("pg_stat_get_wlm_node_resource_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5019), _1("pg_stat_get_wlm_node_resource_info"), _2(1), _3(false), _4(true), _5(pg_stat_get_wlm_node_resource_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(7, 23, 23, 23, 23, 23, 23, 23), _22(7, 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(7, "min_mem_util", "max_mem_util", "min_cpu_util", "max_cpu_util", "min_io_util", "max_io_util", "used_mem_rate"), _24(NULL), _25("pg_stat_get_wlm_node_resource_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_wlm_operator_info", 1, - AddBuiltinFunc(_0(5023), _1("pg_stat_get_wlm_operator_info"), _2(1), _3(false), _4(true), _5(pg_stat_get_wlm_operator_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(22, 20, 20, 23, 25, 1184, 20, 23, 20, 20, 23, 23, 23, 23, 23, 23, 23, 23, 20, 20, 20, 23, 25), _22(22, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(22, "queryid", "pid", "plan_node_id", "plan_node_name", "start_time", "duration", "query_dop", "estimated_rows", "tuple_processed", "min_peak_memory", "max_peak_memory", "average_peak_memory", "memory_skew_percent", "min_spill_size", "max_spill_size", "average_spill_size", "spill_skew_percent", "min_cpu_time", "max_cpu_time", "total_cpu_time", "cpu_skew_percent", "warning"), _24(NULL), _25("pg_stat_get_wlm_operator_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5023), _1("pg_stat_get_wlm_operator_info"), _2(1), _3(false), _4(true), _5(pg_stat_get_wlm_operator_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(22, 20, 20, 23, 25, 1184, 20, 23, 20, 20, 23, 23, 23, 23, 23, 23, 23, 23, 20, 20, 20, 23, 25), _22(22, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(22, "queryid", "pid", "plan_node_id", "plan_node_name", "start_time", "duration", "query_dop", "estimated_rows", "tuple_processed", "min_peak_memory", "max_peak_memory", "average_peak_memory", "memory_skew_percent", "min_spill_size", "max_spill_size", "average_spill_size", "spill_skew_percent", "min_cpu_time", "max_cpu_time", "total_cpu_time", "cpu_skew_percent", "warning"), _24(NULL), _25("pg_stat_get_wlm_operator_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_wlm_realtime_ec_operator_info", 1, - AddBuiltinFunc(_0(5025), _1("pg_stat_get_wlm_realtime_ec_operator_info"), _2(1), _3(false), _4(true), _5(pg_stat_get_wlm_realtime_ec_operator_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(12, 20, 23, 25, 1184, 23, 25, 25, 25, 25, 25, 25, 20), _22(12, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(12, "queryid", "plan_node_id", "plan_node_name", "start_time", "ec_operator", "ec_status", "ec_execute_datanode", "ec_dsn", "ec_username", "ec_query", "ec_libodbc_type", "ec_fetch_count"), _24(NULL), _25("pg_stat_get_wlm_realtime_ec_operator_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5025), _1("pg_stat_get_wlm_realtime_ec_operator_info"), _2(1), _3(false), _4(true), _5(pg_stat_get_wlm_realtime_ec_operator_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(12, 20, 23, 25, 1184, 23, 25, 25, 25, 25, 25, 25, 20), _22(12, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(12, "queryid", "plan_node_id", "plan_node_name", "start_time", "ec_operator", "ec_status", "ec_execute_datanode", "ec_dsn", "ec_username", "ec_query", "ec_libodbc_type", "ec_fetch_count"), _24(NULL), _25("pg_stat_get_wlm_realtime_ec_operator_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_wlm_realtime_operator_info", 1, - AddBuiltinFunc(_0(5022), _1("pg_stat_get_wlm_realtime_operator_info"), _2(1), _3(false), _4(true), _5(pg_stat_get_wlm_realtime_operator_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(23, 20, 20, 23, 25, 1184, 20, 25, 23, 20, 20, 23, 23, 23, 23, 23, 23, 23, 23, 20, 20, 20, 23, 25), _22(23, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(23, "queryid", "pid", "plan_node_id", "plan_node_name", "start_time", "duration", "status", "query_dop", "estimated_rows", "tuple_processed", "min_peak_memory", "max_peak_memory", "average_peak_memory", "memory_skew_percent", "min_spill_size", "max_spill_size", "average_spill_size", "spill_skew_percent", "min_cpu_time", "max_cpu_time", "total_cpu_time", "cpu_skew_percent", "warning"), _24(NULL), _25("pg_stat_get_wlm_realtime_operator_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5022), _1("pg_stat_get_wlm_realtime_operator_info"), _2(1), _3(false), _4(true), _5(pg_stat_get_wlm_realtime_operator_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(23, 20, 20, 23, 25, 1184, 20, 25, 23, 20, 20, 23, 23, 23, 23, 23, 23, 23, 23, 20, 20, 20, 23, 25), _22(23, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(23, "queryid", "pid", "plan_node_id", "plan_node_name", "start_time", "duration", "status", "query_dop", "estimated_rows", "tuple_processed", "min_peak_memory", "max_peak_memory", "average_peak_memory", "memory_skew_percent", "min_spill_size", "max_spill_size", "average_spill_size", "spill_skew_percent", "min_cpu_time", "max_cpu_time", "total_cpu_time", "cpu_skew_percent", "warning"), _24(NULL), _25("pg_stat_get_wlm_realtime_operator_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_wlm_realtime_session_info", 1, - AddBuiltinFunc(_0(5003), _1("pg_stat_get_wlm_realtime_session_info"), _2(1), _3(false), _4(true), _5(pg_stat_get_wlm_realtime_session_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(56, 25, 20, 20, 20, 20, 20, 25, 25, 25, 25, 23, 23, 23, 23, 23, 23, 23, 23, 23, 20, 20, 20, 23, 20, 20, 20, 23, 23, 23, 23, 23, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 25, 25), _22(56, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(56, "nodename", "threadid", "block_time", "duration", "estimate_total_time", "estimate_left_time", "schemaname", "query_band", "spill_info", "control_group", "estimate_memory", "min_peak_memory", "max_peak_memory", "average_peak_memory", "memory_skew_percent", "min_spill_size", "max_spill_size", "average_spill_size", "spill_skew_percent", "min_dn_time", "max_dn_time", "average_dn_time", "dntime_skew_percent", "min_cpu_time", "max_cpu_time", "total_cpu_time", "cpu_skew_percent", "min_peak_iops", "max_peak_iops", "average_peak_iops", "iops_skew_percent", "warning", "query", "query_plan", "cpu_top1_node_name", "cpu_top2_node_name", "cpu_top3_node_name", "cpu_top4_node_name", "cpu_top5_node_name", "mem_top1_node_name", "mem_top2_node_name", "mem_top3_node_name", "mem_top4_node_name", "mem_top5_node_name", "cpu_top1_value", "cpu_top2_value", "cpu_top3_value", "cpu_top4_value", "cpu_top5_value", "mem_top1_value", "mem_top2_value", "mem_top3_value", "mem_top4_value", "mem_top5_value", "top_mem_dn", "top_cpu_dn"), _24(NULL), _25("pg_stat_get_wlm_realtime_session_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5003), _1("pg_stat_get_wlm_realtime_session_info"), _2(1), _3(false), _4(true), _5(pg_stat_get_wlm_realtime_session_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(56, 25, 20, 20, 20, 20, 20, 25, 25, 25, 25, 23, 23, 23, 23, 23, 23, 23, 23, 23, 20, 20, 20, 23, 20, 20, 20, 23, 23, 23, 23, 23, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 25, 25), _22(56, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(56, "nodename", "threadid", "block_time", "duration", "estimate_total_time", "estimate_left_time", "schemaname", "query_band", "spill_info", "control_group", "estimate_memory", "min_peak_memory", "max_peak_memory", "average_peak_memory", "memory_skew_percent", "min_spill_size", "max_spill_size", "average_spill_size", "spill_skew_percent", "min_dn_time", "max_dn_time", "average_dn_time", "dntime_skew_percent", "min_cpu_time", "max_cpu_time", "total_cpu_time", "cpu_skew_percent", "min_peak_iops", "max_peak_iops", "average_peak_iops", "iops_skew_percent", "warning", "query", "query_plan", "cpu_top1_node_name", "cpu_top2_node_name", "cpu_top3_node_name", "cpu_top4_node_name", "cpu_top5_node_name", "mem_top1_node_name", "mem_top2_node_name", "mem_top3_node_name", "mem_top4_node_name", "mem_top5_node_name", "cpu_top1_value", "cpu_top2_value", "cpu_top3_value", "cpu_top4_value", "cpu_top5_value", "mem_top1_value", "mem_top2_value", "mem_top3_value", "mem_top4_value", "mem_top5_value", "top_mem_dn", "top_cpu_dn"), _24(NULL), _25("pg_stat_get_wlm_realtime_session_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_wlm_session_info", 1, - AddBuiltinFunc(_0(5002), _1("pg_stat_get_wlm_session_info"), _2(1), _3(false), _4(true), _5(pg_stat_get_wlm_session_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(87, 26, 25, 25, 25, 25, 25, 869, 25, 23, 25, 20, 1184, 1184, 20, 20, 25, 25, 25, 25, 23, 23, 23, 23, 23, 25, 23, 23, 23, 23, 20, 20, 20, 23, 20, 20, 20, 23, 23, 23, 23, 23, 25, 20, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 25, 25, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20), _22(87, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(87, "datid", "dbname", "schemaname", "nodename", "username", "application_name", "client_addr", "client_hostname", "client_port", "query_band", "block_time", "start_time", "finish_time", "duration", "estimate_total_time", "status", "abort_info", "resource_pool", "control_group", "estimate_memory", "min_peak_memory", "max_peak_memory", "average_peak_memory", "memory_skew_percent", "spill_info", "min_spill_size", "max_spill_size", "average_spill_size", "spill_skew_percent", "min_dn_time", "max_dn_time", "average_dn_time", "dntime_skew_percent", "min_cpu_time", "max_cpu_time", "total_cpu_time", "cpu_skew_percent", "min_peak_iops", "max_peak_iops", "average_peak_iops", "iops_skew_percent", "warning", "queryid", "query", "query_plan", "node_group", "cpu_top1_node_name", "cpu_top2_node_name", "cpu_top3_node_name", "cpu_top4_node_name", "cpu_top5_node_name", "mem_top1_node_name", "mem_top2_node_name", "mem_top3_node_name", "mem_top4_node_name", "mem_top5_node_name", "cpu_top1_value", "cpu_top2_value", "cpu_top3_value", "cpu_top4_value", "cpu_top5_value", "mem_top1_value", "mem_top2_value", "mem_top3_value", "mem_top4_value", "mem_top5_value", "top_mem_dn", "top_cpu_dn", "n_returned_rows", "n_tuples_fetched", "n_tuples_returned", "n_tuples_inserted", "n_tuples_updated", "n_tuples_deleted", "n_blocks_fetched", "n_blocks_hit", "db_time", "cpu_time", "execution_time", "parse_time", "plan_time", "rewrite_time", "pl_execution_time", "pl_compilation_time", "net_send_time", "data_io_time", "is_slow_query"), _24(NULL), _25("pg_stat_get_wlm_session_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5002), _1("pg_stat_get_wlm_session_info"), _2(1), _3(false), _4(true), _5(pg_stat_get_wlm_session_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(87, 26, 25, 25, 25, 25, 25, 869, 25, 23, 25, 20, 1184, 1184, 20, 20, 25, 25, 25, 25, 23, 23, 23, 23, 23, 25, 23, 23, 23, 23, 20, 20, 20, 23, 20, 20, 20, 23, 23, 23, 23, 23, 25, 20, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 25, 25, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20), _22(87, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(87, "datid", "dbname", "schemaname", "nodename", "username", "application_name", "client_addr", "client_hostname", "client_port", "query_band", "block_time", "start_time", "finish_time", "duration", "estimate_total_time", "status", "abort_info", "resource_pool", "control_group", "estimate_memory", "min_peak_memory", "max_peak_memory", "average_peak_memory", "memory_skew_percent", "spill_info", "min_spill_size", "max_spill_size", "average_spill_size", "spill_skew_percent", "min_dn_time", "max_dn_time", "average_dn_time", "dntime_skew_percent", "min_cpu_time", "max_cpu_time", "total_cpu_time", "cpu_skew_percent", "min_peak_iops", "max_peak_iops", "average_peak_iops", "iops_skew_percent", "warning", "queryid", "query", "query_plan", "node_group", "cpu_top1_node_name", "cpu_top2_node_name", "cpu_top3_node_name", "cpu_top4_node_name", "cpu_top5_node_name", "mem_top1_node_name", "mem_top2_node_name", "mem_top3_node_name", "mem_top4_node_name", "mem_top5_node_name", "cpu_top1_value", "cpu_top2_value", "cpu_top3_value", "cpu_top4_value", "cpu_top5_value", "mem_top1_value", "mem_top2_value", "mem_top3_value", "mem_top4_value", "mem_top5_value", "top_mem_dn", "top_cpu_dn", "n_returned_rows", "n_tuples_fetched", "n_tuples_returned", "n_tuples_inserted", "n_tuples_updated", "n_tuples_deleted", "n_blocks_fetched", "n_blocks_hit", "db_time", "cpu_time", "execution_time", "parse_time", "plan_time", "rewrite_time", "pl_execution_time", "pl_compilation_time", "net_send_time", "data_io_time", "is_slow_query"), _24(NULL), _25("pg_stat_get_wlm_session_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_wlm_session_info_internal", 1, - AddBuiltinFunc(_0(5001), _1("pg_stat_get_wlm_session_info_internal"), _2(4), _3(false), _4(true), _5(pg_stat_get_wlm_session_info_internal), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 26, 20, 20, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_wlm_session_info_internal"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5001), _1("pg_stat_get_wlm_session_info_internal"), _2(4), _3(false), _4(true), _5(pg_stat_get_wlm_session_info_internal), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 26, 20, 20, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_wlm_session_info_internal"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_wlm_session_iostat_info", 1, - AddBuiltinFunc(_0(5014), _1("pg_stat_get_wlm_session_iostat_info"), _2(1), _3(false), _4(true), _5(pg_stat_get_wlm_session_iostat_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(9, 23, 20, 23, 23, 23, 23, 23, 23, 23), _22(9, 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(9, "unuseattr", "threadid", "maxcurr_iops", "mincurr_iops", "maxpeak_iops", "minpeak_iops", "iops_limits", "io_priority", "curr_io_limits"), _24(NULL), _25("pg_stat_get_wlm_session_iostat_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5014), _1("pg_stat_get_wlm_session_iostat_info"), _2(1), _3(false), _4(true), _5(pg_stat_get_wlm_session_iostat_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(9, 23, 20, 23, 23, 23, 23, 23, 23, 23), _22(9, 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(9, "unuseattr", "threadid", "maxcurr_iops", "mincurr_iops", "maxpeak_iops", "minpeak_iops", "iops_limits", "io_priority", "curr_io_limits"), _24(NULL), _25("pg_stat_get_wlm_session_iostat_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_wlm_statistics", 1, - AddBuiltinFunc(_0(3501), _1("pg_stat_get_wlm_statistics"), _2(1), _3(false), _4(true), _5(pg_stat_get_wlm_statistics), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(9, 25, 20, 20, 20, 20, 23, 25, 25, 25), _22(9, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(9, "statement", "block_time", "elapsed_time", "total_cpu_time", "qualification_time", "skew_percent", "control_group", "status", "action"), _24(NULL), _25("pg_stat_get_wlm_statistics"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3501), _1("pg_stat_get_wlm_statistics"), _2(1), _3(false), _4(true), _5(pg_stat_get_wlm_statistics), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 23), _21(9, 25, 20, 20, 20, 20, 23, 25, 25, 25), _22(9, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(9, "statement", "block_time", "elapsed_time", "total_cpu_time", "qualification_time", "skew_percent", "control_group", "status", "action"), _24(NULL), _25("pg_stat_get_wlm_statistics"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_workload_struct_info", 1, - AddBuiltinFunc(_0(5026), _1("pg_stat_get_workload_struct_info"), _2(0), _3(true), _4(false), _5(pg_stat_get_workload_struct_info), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_workload_struct_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5026), _1("pg_stat_get_workload_struct_info"), _2(0), _3(true), _4(false), _5(pg_stat_get_workload_struct_info), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_workload_struct_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_xact_blocks_fetched", 1, - AddBuiltinFunc(_0(3044), _1("pg_stat_get_xact_blocks_fetched"), _2(1), _3(true), _4(false), _5(pg_stat_get_xact_blocks_fetched), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_xact_blocks_fetched"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3044), _1("pg_stat_get_xact_blocks_fetched"), _2(1), _3(true), _4(false), _5(pg_stat_get_xact_blocks_fetched), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_xact_blocks_fetched"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: number of blocks fetched in current transaction"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_xact_blocks_hit", 1, - AddBuiltinFunc(_0(3045), _1("pg_stat_get_xact_blocks_hit"), _2(1), _3(true), _4(false), _5(pg_stat_get_xact_blocks_hit), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_xact_blocks_hit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3045), _1("pg_stat_get_xact_blocks_hit"), _2(1), _3(true), _4(false), _5(pg_stat_get_xact_blocks_hit), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_xact_blocks_hit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: number of blocks found in cache in current transaction"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_xact_function_calls", 1, - AddBuiltinFunc(_0(3046), _1("pg_stat_get_xact_function_calls"), _2(1), _3(true), _4(false), _5(pg_stat_get_xact_function_calls), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_xact_function_calls"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3046), _1("pg_stat_get_xact_function_calls"), _2(1), _3(true), _4(false), _5(pg_stat_get_xact_function_calls), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_xact_function_calls"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: number of function calls in current transaction"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_xact_function_self_time", 1, - AddBuiltinFunc(_0(3048), _1("pg_stat_get_xact_function_self_time"), _2(1), _3(true), _4(false), _5(pg_stat_get_xact_function_self_time), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_xact_function_self_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3048), _1("pg_stat_get_xact_function_self_time"), _2(1), _3(true), _4(false), _5(pg_stat_get_xact_function_self_time), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_xact_function_self_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: self execution time of function in current transaction, in milliseconds"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_xact_function_total_time", 1, - AddBuiltinFunc(_0(3047), _1("pg_stat_get_xact_function_total_time"), _2(1), _3(true), _4(false), _5(pg_stat_get_xact_function_total_time), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_xact_function_total_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3047), _1("pg_stat_get_xact_function_total_time"), _2(1), _3(true), _4(false), _5(pg_stat_get_xact_function_total_time), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_xact_function_total_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: total execution time of function in current transaction, in milliseconds"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_xact_numscans", 1, - AddBuiltinFunc(_0(3037), _1("pg_stat_get_xact_numscans"), _2(1), _3(true), _4(false), _5(pg_stat_get_xact_numscans), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_xact_numscans"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3037), _1("pg_stat_get_xact_numscans"), _2(1), _3(true), _4(false), _5(pg_stat_get_xact_numscans), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_xact_numscans"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: number of scans done for table/index in current transaction"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_xact_partition_tuples_deleted", 1, - AddBuiltinFunc(_0(4093), _1("pg_stat_get_xact_partition_tuples_deleted"), _2(1), _3(false), _4(true), _5(pg_stat_get_xact_partition_tuples_deleted), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_xact_partition_tuples_deleted"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4093), _1("pg_stat_get_xact_partition_tuples_deleted"), _2(1), _3(false), _4(true), _5(pg_stat_get_xact_partition_tuples_deleted), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_xact_partition_tuples_deleted"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_xact_partition_tuples_hot_updated", 1, - AddBuiltinFunc(_0(4096), _1("pg_stat_get_xact_partition_tuples_hot_updated"), _2(1), _3(false), _4(true), _5(pg_stat_get_xact_partition_tuples_hot_updated), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_xact_partition_tuples_hot_updated"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4096), _1("pg_stat_get_xact_partition_tuples_hot_updated"), _2(1), _3(false), _4(true), _5(pg_stat_get_xact_partition_tuples_hot_updated), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_xact_partition_tuples_hot_updated"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_xact_partition_tuples_inserted", 1, - AddBuiltinFunc(_0(4094), _1("pg_stat_get_xact_partition_tuples_inserted"), _2(1), _3(false), _4(true), _5(pg_stat_get_xact_partition_tuples_inserted), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_xact_partition_tuples_inserted"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4094), _1("pg_stat_get_xact_partition_tuples_inserted"), _2(1), _3(false), _4(true), _5(pg_stat_get_xact_partition_tuples_inserted), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_xact_partition_tuples_inserted"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_xact_partition_tuples_updated", 1, - AddBuiltinFunc(_0(4095), _1("pg_stat_get_xact_partition_tuples_updated"), _2(1), _3(false), _4(true), _5(pg_stat_get_xact_partition_tuples_updated), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_xact_partition_tuples_updated"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4095), _1("pg_stat_get_xact_partition_tuples_updated"), _2(1), _3(false), _4(true), _5(pg_stat_get_xact_partition_tuples_updated), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_xact_partition_tuples_updated"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_xact_tuples_deleted", 1, - AddBuiltinFunc(_0(3042), _1("pg_stat_get_xact_tuples_deleted"), _2(1), _3(true), _4(false), _5(pg_stat_get_xact_tuples_deleted), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_xact_tuples_deleted"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3042), _1("pg_stat_get_xact_tuples_deleted"), _2(1), _3(true), _4(false), _5(pg_stat_get_xact_tuples_deleted), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_xact_tuples_deleted"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: number of tuples deleted in current transaction"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_xact_tuples_fetched", 1, - AddBuiltinFunc(_0(3039), _1("pg_stat_get_xact_tuples_fetched"), _2(1), _3(true), _4(false), _5(pg_stat_get_xact_tuples_fetched), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_xact_tuples_fetched"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3039), _1("pg_stat_get_xact_tuples_fetched"), _2(1), _3(true), _4(false), _5(pg_stat_get_xact_tuples_fetched), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_xact_tuples_fetched"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: number of tuples fetched by idxscan in current transaction"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_xact_tuples_hot_updated", 1, - AddBuiltinFunc(_0(3043), _1("pg_stat_get_xact_tuples_hot_updated"), _2(1), _3(true), _4(false), _5(pg_stat_get_xact_tuples_hot_updated), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_xact_tuples_hot_updated"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3043), _1("pg_stat_get_xact_tuples_hot_updated"), _2(1), _3(true), _4(false), _5(pg_stat_get_xact_tuples_hot_updated), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_xact_tuples_hot_updated"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: number of tuples hot updated in current transaction"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_xact_tuples_inserted", 1, - AddBuiltinFunc(_0(3040), _1("pg_stat_get_xact_tuples_inserted"), _2(1), _3(true), _4(false), _5(pg_stat_get_xact_tuples_inserted), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_xact_tuples_inserted"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3040), _1("pg_stat_get_xact_tuples_inserted"), _2(1), _3(true), _4(false), _5(pg_stat_get_xact_tuples_inserted), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_xact_tuples_inserted"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: number of tuples inserted in current transaction"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_xact_tuples_returned", 1, - AddBuiltinFunc(_0(3038), _1("pg_stat_get_xact_tuples_returned"), _2(1), _3(true), _4(false), _5(pg_stat_get_xact_tuples_returned), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_xact_tuples_returned"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3038), _1("pg_stat_get_xact_tuples_returned"), _2(1), _3(true), _4(false), _5(pg_stat_get_xact_tuples_returned), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_xact_tuples_returned"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: number of tuples read by seqscan in current transaction"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_get_xact_tuples_updated", 1, - AddBuiltinFunc(_0(3041), _1("pg_stat_get_xact_tuples_updated"), _2(1), _3(true), _4(false), _5(pg_stat_get_xact_tuples_updated), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_xact_tuples_updated"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3041), _1("pg_stat_get_xact_tuples_updated"), _2(1), _3(true), _4(false), _5(pg_stat_get_xact_tuples_updated), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_get_xact_tuples_updated"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: number of tuples updated in current transaction"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_remain_segment_info", 1, - AddBuiltinFunc(_0(7003), _1("pg_stat_remain_segment_info"), _2(0), _3(true), _4(true), _5(pg_stat_remain_segment_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10000), _11(4), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(4, OIDOID, OIDOID, OIDOID, TEXTOID), _22(4, 'o', 'o', 'o', 'o'), _23(4, "space_id", "db_id", "block_id", "type"), _24(NULL), _25("pg_stat_remain_segment_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(7003), _1("pg_stat_remain_segment_info"), _2(0), _3(true), _4(true), _5(pg_stat_remain_segment_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10000), _11(4), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(4, OIDOID, OIDOID, OIDOID, TEXTOID), _22(4, 'o', 'o', 'o', 'o'), _23(4, "space_id", "db_id", "block_id", "type"), _24(NULL), _25("pg_stat_remain_segment_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_reset", 1, - AddBuiltinFunc(_0(2274), _1("pg_stat_reset"), _2(0), _3(false), _4(false), _5(pg_stat_reset), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_reset"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2274), _1("pg_stat_reset"), _2(0), _3(false), _4(false), _5(pg_stat_reset), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_reset"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: reset collected statistics for current database"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_reset_shared", 1, - AddBuiltinFunc(_0(3775), _1("pg_stat_reset_shared"), _2(1), _3(true), _4(false), _5(pg_stat_reset_shared), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_reset_shared"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3775), _1("pg_stat_reset_shared"), _2(1), _3(true), _4(false), _5(pg_stat_reset_shared), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_reset_shared"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: reset collected statistics shared across the cluster"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_reset_single_function_counters", 1, - AddBuiltinFunc(_0(3777), _1("pg_stat_reset_single_function_counters"), _2(1), _3(false), _4(false), _5(pg_stat_reset_single_function_counters), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_reset_single_function_counters"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3777), _1("pg_stat_reset_single_function_counters"), _2(1), _3(false), _4(false), _5(pg_stat_reset_single_function_counters), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_reset_single_function_counters"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: reset collected statistics for a single function in the current database"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_reset_single_table_counters", 1, - AddBuiltinFunc(_0(3776), _1("pg_stat_reset_single_table_counters"), _2(1), _3(false), _4(false), _5(pg_stat_reset_single_table_counters), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_reset_single_table_counters"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3776), _1("pg_stat_reset_single_table_counters"), _2(1), _3(false), _4(false), _5(pg_stat_reset_single_table_counters), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_reset_single_table_counters"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: reset collected statistics for a single table or index in the current database"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_segment_extent_usage", 1, - AddBuiltinFunc(_0(7001), _1("pg_stat_segment_extent_usage"), _2(4), _3(true), _4(true), _5(pg_stat_segment_extent_usage), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1000), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(4, INT4OID, INT4OID, INT4OID, INT4OID), _21(5, OIDOID, OIDOID, TEXTOID, OIDOID, OIDOID), _22(5, 'o', 'o', 'o', 'o', 'o'), _23(5, "start_block", "extent_size", "usage_type", "ower_location", "special_data"), _24(NULL), _25("pg_stat_segment_extent_usage"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(7001), _1("pg_stat_segment_extent_usage"), _2(4), _3(true), _4(true), _5(pg_stat_segment_extent_usage), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1000), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(4, INT4OID, INT4OID, INT4OID, INT4OID), _21(5, OIDOID, OIDOID, TEXTOID, OIDOID, OIDOID), _22(5, 'o', 'o', 'o', 'o', 'o'), _23(5, "start_block", "extent_size", "usage_type", "ower_location", "special_data"), _24(NULL), _25("pg_stat_segment_extent_usage"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_segment_space_info", 1, - AddBuiltinFunc(_0(7000), _1("pg_stat_segment_space_info"), _2(2), _3(true), _4(true), _5(pg_stat_segment_space_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(100), _11(4), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, INT4OID, INT4OID), _21(8, TEXTOID, OIDOID, INT4OID, OIDOID, OIDOID, OIDOID, FLOAT4OID, OIDOID), _22(8, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(8, "node_name", "extent_size", "forknum", "total_blocks", "meta_data_blocks", "used_data_blocks", "utilization", "high_water_mark"), _24(NULL), _25("pg_stat_segment_space_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(7000), _1("pg_stat_segment_space_info"), _2(2), _3(true), _4(true), _5(pg_stat_segment_space_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(100), _11(4), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, INT4OID, INT4OID), _21(8, TEXTOID, OIDOID, INT4OID, OIDOID, OIDOID, OIDOID, FLOAT4OID, OIDOID), _22(8, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(8, "node_name", "extent_size", "forknum", "total_blocks", "meta_data_blocks", "used_data_blocks", "utilization", "high_water_mark"), _24(NULL), _25("pg_stat_segment_space_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "local_segment_space_info", 1, - AddBuiltinFunc(_0(7005), _1("local_segment_space_info"), _2(2), _3(true), _4(true), _5(local_segment_space_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(100), _11(4), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, TEXTOID, TEXTOID), _21(8, TEXTOID, OIDOID, INT4OID, OIDOID, OIDOID, OIDOID, FLOAT4OID, OIDOID), _22(8, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(8, "node_name", "extent_size", "forknum", "total_blocks", "meta_data_blocks", "used_data_blocks", "utilization", "high_water_mark"), _24(NULL), _25("local_segment_space_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(7005), _1("local_segment_space_info"), _2(2), _3(true), _4(true), _5(local_segment_space_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(100), _11(4), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, TEXTOID, TEXTOID), _21(8, TEXTOID, OIDOID, INT4OID, OIDOID, OIDOID, OIDOID, FLOAT4OID, OIDOID), _22(8, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(8, "node_name", "extent_size", "forknum", "total_blocks", "meta_data_blocks", "used_data_blocks", "utilization", "high_water_mark"), _24(NULL), _25("local_segment_space_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "remote_segment_space_info", 1, - AddBuiltinFunc(_0(7007), _1("remote_segment_space_info"), _2(2), _3(true), _4(true), _5(remote_segment_space_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(100), _11(4), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, TEXTOID, TEXTOID), _21(8, TEXTOID, OIDOID, INT4OID, OIDOID, OIDOID, OIDOID, FLOAT4OID, OIDOID), _22(8, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(8, "node_name", "extent_size", "forknum", "total_blocks", "meta_data_blocks", "used_data_blocks", "utilization", "high_water_mark"), _24(NULL), _25("remote_segment_space_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(7007), _1("remote_segment_space_info"), _2(2), _3(true), _4(true), _5(remote_segment_space_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(100), _11(4), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, TEXTOID, TEXTOID), _21(8, TEXTOID, OIDOID, INT4OID, OIDOID, OIDOID, OIDOID, FLOAT4OID, OIDOID), _22(8, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(8, "node_name", "extent_size", "forknum", "total_blocks", "meta_data_blocks", "used_data_blocks", "utilization", "high_water_mark"), _24(NULL), _25("remote_segment_space_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stat_set_last_data_changed_time", 1, - AddBuiltinFunc(_0(5601), _1("pg_stat_set_last_data_changed_time"), _2(1), _3(true), _4(false), _5(pg_stat_set_last_data_changed_time), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_set_last_data_changed_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5601), _1("pg_stat_set_last_data_changed_time"), _2(1), _3(true), _4(false), _5(pg_stat_set_last_data_changed_time), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stat_set_last_data_changed_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_stop_backup", 2, - AddBuiltinFunc(_0(2173), _1("pg_stop_backup"), _2(0), _3(true), _4(false), _5(pg_stop_backup), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stop_backup"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(6204), _1("pg_stop_backup"), _2(1), _3(true), _4(true), _5(pg_stop_backup_v2), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1,16), _21(4, 16, 25, 25, 25), _22(4, 'i', 'o', 'o', 'o'), _23(4, "exclusive", "lsn","labelfile", "spcmapfile"), _24(NULL), _25("pg_stop_backup_v2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2173), _1("pg_stop_backup"), _2(0), _3(true), _4(false), _5(pg_stop_backup), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_stop_backup"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(6204), _1("pg_stop_backup"), _2(1), _3(true), _4(true), _5(pg_stop_backup_v2), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1,16), _21(4, 16, 25, 25, 25), _22(4, 'i', 'o', 'o', 'o'), _23(4, "exclusive", "lsn","labelfile", "spcmapfile"), _24(NULL), _25("pg_stop_backup_v2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_switch_xlog", 1, - AddBuiltinFunc(_0(2848), _1("pg_switch_xlog"), _2(0), _3(true), _4(false), _5(pg_switch_xlog), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_switch_xlog"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2848), _1("pg_switch_xlog"), _2(0), _3(true), _4(false), _5(pg_switch_xlog), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_switch_xlog"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_sync_cstore_delta", 2, - AddBuiltinFunc(_0(3164), _1("pg_sync_cstore_delta"), _2(1), _3(true), _4(false), _5(pg_sync_cstore_delta), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_sync_cstore_delta"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3534), _1("pg_sync_cstore_delta"), _2(0), _3(true), _4(false), _5(pg_sync_all_cstore_delta), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_sync_all_cstore_delta"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3164), _1("pg_sync_cstore_delta"), _2(1), _3(true), _4(false), _5(pg_sync_cstore_delta), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_sync_cstore_delta"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3534), _1("pg_sync_cstore_delta"), _2(0), _3(true), _4(false), _5(pg_sync_all_cstore_delta), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_sync_all_cstore_delta"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_systimestamp", 1, - AddBuiltinFunc(_0(PGSYSTIMESTAMPFUNCOID), _1("pg_systimestamp"), _2(0), _3(true), _4(false), _5(pg_system_timestamp), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_system_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(PGSYSTIMESTAMPFUNCOID), _1("pg_systimestamp"), _2(0), _3(true), _4(false), _5(pg_system_timestamp), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_system_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_table_is_visible", 1, - AddBuiltinFunc(_0(2079), _1("pg_table_is_visible"), _2(1), _3(true), _4(false), _5(pg_table_is_visible), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_table_is_visible"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) - ), - AddFuncGroup( - "pg_stat_get_subscription", 1, - AddBuiltinFunc(_0(2802), _1("pg_stat_get_subscription"), _2(1), _3(false), _4(false), _5(pg_stat_get_subscription), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(8, 26, 26, 23, 25, 1184, 1184, 25, 1184), _22(8, 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(8, "subid", "subid", "pid", "received_lsn", "last_msg_send_time", "last_msg_receipt_time", "latest_end_lsn", "latest_end_time"), _24(NULL), _25("pg_stat_get_subscription"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics: information about subscription"), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2079), _1("pg_table_is_visible"), _2(1), _3(true), _4(false), _5(pg_table_is_visible), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_table_is_visible"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("is table visible in search path?"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_table_size", 1, - AddBuiltinFunc(_0(2997), _1("pg_table_size"), _2(1), _3(true), _4(false), _5(pg_table_size), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2205), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_table_size"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2997), _1("pg_table_size"), _2(1), _3(true), _4(false), _5(pg_table_size), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2205), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_table_size"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("disk space usage for the specified table, including TOAST, free space and visibility map"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_tablespace_databases", 1, - AddBuiltinFunc(_0(2556), _1("pg_tablespace_databases"), _2(1), _3(true), _4(true), _5(pg_tablespace_databases), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_tablespace_databases"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2556), _1("pg_tablespace_databases"), _2(1), _3(true), _4(true), _5(pg_tablespace_databases), _6(26), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_tablespace_databases"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("get OIDs of databases in a tablespace"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_tablespace_location", 1, - AddBuiltinFunc(_0(3778), _1("pg_tablespace_location"), _2(1), _3(true), _4(false), _5(pg_tablespace_location), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_tablespace_location"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3778), _1("pg_tablespace_location"), _2(1), _3(true), _4(false), _5(pg_tablespace_location), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_tablespace_location"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("tablespace location"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_tablespace_size", 2, - AddBuiltinFunc(_0(2322), _1("pg_tablespace_size"), _2(1), _3(true), _4(false), _5(pg_tablespace_size_oid), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_tablespace_size_oid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2323), _1("pg_tablespace_size"), _2(1), _3(true), _4(false), _5(pg_tablespace_size_name), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_tablespace_size_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2322), _1("pg_tablespace_size"), _2(1), _3(true), _4(false), _5(pg_tablespace_size_oid), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_tablespace_size_oid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("total disk space usage for the specified tablespace"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2323), _1("pg_tablespace_size"), _2(1), _3(true), _4(false), _5(pg_tablespace_size_name), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_tablespace_size_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("total disk space usage for the specified tablespace"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_tde_info", 1, - AddBuiltinFunc(_0(3999), _1("pg_tde_info"), _2(0), _3(true), _4(true), _5(pg_tde_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(3, 16, 25, 25), _22(3, 'o', 'o', 'o'), _23(3, "is_encrypt", "g_tde_algo", "remain"), _24(NULL), _25("pg_tde_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3999), _1("pg_tde_info"), _2(0), _3(true), _4(true), _5(pg_tde_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(3, 16, 25, 25), _22(3, 'o', 'o', 'o'), _23(3, "is_encrypt", "g_tde_algo", "remain"), _24(NULL), _25("pg_tde_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_terminate_backend", 1, - AddBuiltinFunc(_0(2096), _1("pg_terminate_backend"), _2(1), _3(true), _4(false), _5(pg_terminate_backend), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_terminate_backend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2096), _1("pg_terminate_backend"), _2(1), _3(true), _4(false), _5(pg_terminate_backend), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_terminate_backend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("terminate a server process"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_terminate_session", 1, - AddBuiltinFunc(_0(2099), _1("pg_terminate_session"), _2(2), _3(true), _4(false), _5(pg_terminate_session), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_terminate_session"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2099), _1("pg_terminate_session"), _2(2), _3(true), _4(false), _5(pg_terminate_session), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 20, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_terminate_session"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_test_err_contain_err", 1, - AddBuiltinFunc(_0(9999), _1("pg_test_err_contain_err"), _2(1), _3(true), _4(false), _5(pg_test_err_contain_err), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_test_err_contain_err"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(9999), _1("pg_test_err_contain_err"), _2(1), _3(true), _4(false), _5(pg_test_err_contain_err), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_test_err_contain_err"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_timezone_abbrevs", 1, - AddBuiltinFunc(_0(2599), _1("pg_timezone_abbrevs"), _2(0), _3(true), _4(true), _5(pg_timezone_abbrevs), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(3, 25, 1186, 16), _22(3, 'o', 'o', 'o'), _23(3, "abbrev", "utc_offset", "is_dst"), _24(NULL), _25("pg_timezone_abbrevs"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2599), _1("pg_timezone_abbrevs"), _2(0), _3(true), _4(true), _5(pg_timezone_abbrevs), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(3, 25, 1186, 16), _22(3, 'o', 'o', 'o'), _23(3, "abbrev", "utc_offset", "is_dst"), _24(NULL), _25("pg_timezone_abbrevs"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("get the available time zone abbreviations"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_timezone_names", 1, - AddBuiltinFunc(_0(2856), _1("pg_timezone_names"), _2(0), _3(true), _4(true), _5(pg_timezone_names), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(4, 25, 25, 1186, 16), _22(4, 'o', 'o', 'o', 'o'), _23(4, "name", "abbrev", "utc_offset", "is_dst"), _24(NULL), _25("pg_timezone_names"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2856), _1("pg_timezone_names"), _2(0), _3(true), _4(true), _5(pg_timezone_names), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(4, 25, 25, 1186, 16), _22(4, 'o', 'o', 'o', 'o'), _23(4, "name", "abbrev", "utc_offset", "is_dst"), _24(NULL), _25("pg_timezone_names"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("get the available time zone names"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_total_autovac_tuples", 1, - AddBuiltinFunc(_0(3222), _1("pg_total_autovac_tuples"), _2(1), _3(true), _4(true), _5(pg_total_autovac_tuples), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 16), _21(8, 16, 19, 19, 19, 19, 20, 20, 20), _22(8, 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(8, "for_raltion", "nodename", "nspname", "relname", "partname", "n_dead_tuples", "n_live_tuples", "changes_since_analyze"), _24(NULL), _25("pg_total_autovac_tuples"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3222), _1("pg_total_autovac_tuples"), _2(1), _3(true), _4(true), _5(pg_total_autovac_tuples), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 16), _21(8, 16, 19, 19, 19, 19, 20, 20, 20), _22(8, 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(8, "for_raltion", "nodename", "nspname", "relname", "partname", "n_dead_tuples", "n_live_tuples", "changes_since_analyze"), _24(NULL), _25("pg_total_autovac_tuples"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_total_relation_size", 1, - AddBuiltinFunc(_0(2286), _1("pg_total_relation_size"), _2(1), _3(true), _4(false), _5(pg_total_relation_size), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2205), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_total_relation_size"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2286), _1("pg_total_relation_size"), _2(1), _3(true), _4(false), _5(pg_total_relation_size), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2205), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_total_relation_size"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("total disk space usage for the specified table and associated indexes"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_trigger_depth", 1, - AddBuiltinFunc(_0(3163), _1("pg_trigger_depth"), _2(0), _3(true), _4(false), _5(pg_trigger_depth), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_trigger_depth"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3163), _1("pg_trigger_depth"), _2(0), _3(true), _4(false), _5(pg_trigger_depth), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_trigger_depth"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("current trigger depth"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_try_advisory_lock", 2, - AddBuiltinFunc(_0(2882), _1("pg_try_advisory_lock"), _2(1), _3(true), _4(false), _5(pg_try_advisory_lock_int8), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_try_advisory_lock_int8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2888), _1("pg_try_advisory_lock"), _2(2), _3(true), _4(false), _5(pg_try_advisory_lock_int4), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_try_advisory_lock_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2882), _1("pg_try_advisory_lock"), _2(1), _3(true), _4(false), _5(pg_try_advisory_lock_int8), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_try_advisory_lock_int8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("obtain exclusive advisory lock if available"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2888), _1("pg_try_advisory_lock"), _2(2), _3(true), _4(false), _5(pg_try_advisory_lock_int4), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_try_advisory_lock_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("obtain exclusive advisory lock if available"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_try_advisory_lock_shared", 2, - AddBuiltinFunc(_0(2883), _1("pg_try_advisory_lock_shared"), _2(1), _3(true), _4(false), _5(pg_try_advisory_lock_shared_int8), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_try_advisory_lock_shared_int8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2889), _1("pg_try_advisory_lock_shared"), _2(2), _3(true), _4(false), _5(pg_try_advisory_lock_shared_int4), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_try_advisory_lock_shared_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2883), _1("pg_try_advisory_lock_shared"), _2(1), _3(true), _4(false), _5(pg_try_advisory_lock_shared_int8), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_try_advisory_lock_shared_int8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("obtain shared advisory lock if available"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2889), _1("pg_try_advisory_lock_shared"), _2(2), _3(true), _4(false), _5(pg_try_advisory_lock_shared_int4), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_try_advisory_lock_shared_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("obtain shared advisory lock if available"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_try_advisory_xact_lock", 2, - AddBuiltinFunc(_0(3091), _1("pg_try_advisory_xact_lock"), _2(1), _3(true), _4(false), _5(pg_try_advisory_xact_lock_int8), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_try_advisory_xact_lock_int8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3095), _1("pg_try_advisory_xact_lock"), _2(2), _3(true), _4(false), _5(pg_try_advisory_xact_lock_int4), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_try_advisory_xact_lock_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3091), _1("pg_try_advisory_xact_lock"), _2(1), _3(true), _4(false), _5(pg_try_advisory_xact_lock_int8), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_try_advisory_xact_lock_int8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("obtain exclusive advisory lock if available"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3095), _1("pg_try_advisory_xact_lock"), _2(2), _3(true), _4(false), _5(pg_try_advisory_xact_lock_int4), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_try_advisory_xact_lock_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("obtain exclusive advisory lock if available"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_try_advisory_xact_lock_shared", 2, - AddBuiltinFunc(_0(3092), _1("pg_try_advisory_xact_lock_shared"), _2(1), _3(true), _4(false), _5(pg_try_advisory_xact_lock_shared_int8), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_try_advisory_xact_lock_shared_int8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3096), _1("pg_try_advisory_xact_lock_shared"), _2(2), _3(true), _4(false), _5(pg_try_advisory_xact_lock_shared_int4), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_try_advisory_xact_lock_shared_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3092), _1("pg_try_advisory_xact_lock_shared"), _2(1), _3(true), _4(false), _5(pg_try_advisory_xact_lock_shared_int8), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_try_advisory_xact_lock_shared_int8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("obtain shared advisory lock if available"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3096), _1("pg_try_advisory_xact_lock_shared"), _2(2), _3(true), _4(false), _5(pg_try_advisory_xact_lock_shared_int4), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_try_advisory_xact_lock_shared_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("obtain shared advisory lock if available"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_ts_config_is_visible", 1, - AddBuiltinFunc(_0(3758), _1("pg_ts_config_is_visible"), _2(1), _3(true), _4(false), _5(pg_ts_config_is_visible), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_ts_config_is_visible"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3758), _1("pg_ts_config_is_visible"), _2(1), _3(true), _4(false), _5(pg_ts_config_is_visible), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_ts_config_is_visible"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("is text search configuration visible in search path?"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_ts_dict_is_visible", 1, - AddBuiltinFunc(_0(3757), _1("pg_ts_dict_is_visible"), _2(1), _3(true), _4(false), _5(pg_ts_dict_is_visible), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_ts_dict_is_visible"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3757), _1("pg_ts_dict_is_visible"), _2(1), _3(true), _4(false), _5(pg_ts_dict_is_visible), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_ts_dict_is_visible"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("is text search dictionary visible in search path?"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_ts_parser_is_visible", 1, - AddBuiltinFunc(_0(3756), _1("pg_ts_parser_is_visible"), _2(1), _3(true), _4(false), _5(pg_ts_parser_is_visible), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_ts_parser_is_visible"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3756), _1("pg_ts_parser_is_visible"), _2(1), _3(true), _4(false), _5(pg_ts_parser_is_visible), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_ts_parser_is_visible"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("is text search parser visible in search path?"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_ts_template_is_visible", 1, - AddBuiltinFunc(_0(3768), _1("pg_ts_template_is_visible"), _2(1), _3(true), _4(false), _5(pg_ts_template_is_visible), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_ts_template_is_visible"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3768), _1("pg_ts_template_is_visible"), _2(1), _3(true), _4(false), _5(pg_ts_template_is_visible), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_ts_template_is_visible"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("is text search template visible in search path?"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_type_is_visible", 1, - AddBuiltinFunc(_0(2080), _1("pg_type_is_visible"), _2(1), _3(true), _4(false), _5(pg_type_is_visible), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_type_is_visible"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2080), _1("pg_type_is_visible"), _2(1), _3(true), _4(false), _5(pg_type_is_visible), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_type_is_visible"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("is type visible in search path?"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_typeof", 1, - AddBuiltinFunc(_0(PGTYPEOFFUNCOID), _1("pg_typeof"), _2(1), _3(false), _4(false), _5(pg_typeof), _6(2206), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2276), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_typeof"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(PGTYPEOFFUNCOID), _1("pg_typeof"), _2(1), _3(false), _4(false), _5(pg_typeof), _6(2206), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2276), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_typeof"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("type of the argument"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_user_iostat", 1, - AddBuiltinFunc(_0(5013), _1("pg_user_iostat"), _2(1), _3(false), _4(true), _5(pg_stat_get_wlm_user_iostat_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(8, 26, 23, 23, 23, 23, 23, 25, 23), _22(8, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(8, "userid", "min_curr_iops", "max_curr_iops", "min_peak_iops", "max_peak_iops", "io_limits", "io_priority", "curr_io_limits"), _24(NULL), _25("pg_stat_get_wlm_user_iostat_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5013), _1("pg_user_iostat"), _2(1), _3(false), _4(true), _5(pg_stat_get_wlm_user_iostat_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(8, 26, 23, 23, 23, 23, 23, 25, 23), _22(8, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(8, "userid", "min_curr_iops", "max_curr_iops", "min_peak_iops", "max_peak_iops", "io_limits", "io_priority", "curr_io_limits"), _24(NULL), _25("pg_stat_get_wlm_user_iostat_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_wlm_jump_queue", 1, - AddBuiltinFunc(_0(3503), _1("pg_wlm_jump_queue"), _2(1), _3(true), _4(false), _5(pg_wlm_jump_queue), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_wlm_jump_queue"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3503), _1("pg_wlm_jump_queue"), _2(1), _3(true), _4(false), _5(pg_wlm_jump_queue), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_wlm_jump_queue"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_xlog_location_diff", 1, - AddBuiltinFunc(_0(3165), _1("pg_xlog_location_diff"), _2(2), _3(true), _4(false), _5(pg_xlog_location_diff), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_xlog_location_diff"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3165), _1("pg_xlog_location_diff"), _2(2), _3(true), _4(false), _5(pg_xlog_location_diff), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_xlog_location_diff"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_xlog_replay_pause", 1, - AddBuiltinFunc(_0(3071), _1("pg_xlog_replay_pause"), _2(0), _3(true), _4(false), _5(pg_xlog_replay_pause), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_xlog_replay_pause"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3071), _1("pg_xlog_replay_pause"), _2(0), _3(true), _4(false), _5(pg_xlog_replay_pause), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_xlog_replay_pause"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_xlog_replay_resume", 1, - AddBuiltinFunc(_0(3072), _1("pg_xlog_replay_resume"), _2(0), _3(true), _4(false), _5(pg_xlog_replay_resume), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_xlog_replay_resume"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3072), _1("pg_xlog_replay_resume"), _2(0), _3(true), _4(false), _5(pg_xlog_replay_resume), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_xlog_replay_resume"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_xlogfile_name", 1, - AddBuiltinFunc(_0(2851), _1("pg_xlogfile_name"), _2(1), _3(true), _4(false), _5(pg_xlogfile_name), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_xlogfile_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2851), _1("pg_xlogfile_name"), _2(1), _3(true), _4(false), _5(pg_xlogfile_name), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pg_xlogfile_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pg_xlogfile_name_offset", 1, - AddBuiltinFunc(_0(2850), _1("pg_xlogfile_name_offset"), _2(1), _3(true), _4(false), _5(pg_xlogfile_name_offset), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(3, 25, 25, 23), _22(3, 'i', 'o', 'o'), _23(3, "wal_location", "file_name", "file_offset"), _24(NULL), _25("pg_xlogfile_name_offset"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2850), _1("pg_xlogfile_name_offset"), _2(1), _3(true), _4(false), _5(pg_xlogfile_name_offset), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(3, 25, 25, 23), _22(3, 'i', 'o', 'o'), _23(3, "wal_location", "file_name", "file_offset"), _24(NULL), _25("pg_xlogfile_name_offset"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pgxc_get_csn", 1, - AddBuiltinFunc(_0(3960), _1("pgxc_get_csn"), _2(1), _3(true), _4(true), _5(pgxc_get_csn), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 28), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pgxc_get_csn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3960), _1("pgxc_get_csn"), _2(1), _3(true), _4(true), _5(pgxc_get_csn), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 28), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pgxc_get_csn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pgxc_get_thread_wait_status", 1, - AddBuiltinFunc(_0(3591), _1("pgxc_get_thread_wait_status"), _2(0), _3(false), _4(true), _5(pgxc_stat_get_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(100), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(16, 25, 25, 25, 20, 20, 20, 23, 20, 23, 23, 25, 25,25,25,20,25), _22(16, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o','o'), _23(16, "node_name", "db_name", "thread_name", "query_id", "tid", "sessionid", "lwtid", "psessionid", "tlevel", "smpid", "wait_status", "wait_event", "locktag", "lockmode", "block_sessionid", "global_sessionid"), _24(NULL), _25("pgxc_stat_get_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3591), _1("pgxc_get_thread_wait_status"), _2(0), _3(false), _4(true), _5(pgxc_stat_get_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(100), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(16, 25, 25, 25, 20, 20, 20, 23, 20, 23, 23, 25, 25,25,25,20,25), _22(16, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o','o'), _23(16, "node_name", "db_name", "thread_name", "query_id", "tid", "sessionid", "lwtid", "psessionid", "tlevel", "smpid", "wait_status", "wait_event", "locktag", "lockmode", "block_sessionid", "global_sessionid"), _24(NULL), _25("pgxc_stat_get_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pgxc_gtm_snapshot_status", 1, - AddBuiltinFunc(_0(2095), _1("pgxc_gtm_snapshot_status"), _2(0), _3(true), _4(true), _5(pgxc_gtm_snapshot_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(0), _21(6, 28, 28, 28, 28, 28, 25), _22(6, 'o', 'o', 'o', 'o', 'o', 'o'), _23(6, "xmin", "xmax", "csn", "oldestxmin", "xcnt", "running_xids"), _24(NULL), _25("pgxc_gtm_snapshot_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2095), _1("pgxc_gtm_snapshot_status"), _2(0), _3(true), _4(true), _5(pgxc_gtm_snapshot_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(0), _21(6, 28, 28, 28, 28, 28, 25), _22(6, 'o', 'o', 'o', 'o', 'o', 'o'), _23(6, "xmin", "xmax", "csn", "oldestxmin", "xcnt", "running_xids"), _24(NULL), _25("pgxc_gtm_snapshot_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pgxc_is_committed", 1, - AddBuiltinFunc(_0(3203), _1("pgxc_is_committed"), _2(1), _3(true), _4(true), _5(pgxc_is_committed), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 28), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pgxc_is_committed"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3203), _1("pgxc_is_committed"), _2(1), _3(true), _4(true), _5(pgxc_is_committed), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 28), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pgxc_is_committed"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pgxc_lock_for_backup", 1, - AddBuiltinFunc(_0(3204), _1("pgxc_lock_for_backup"), _2(0), _3(true), _4(false), _5(pgxc_lock_for_backup), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pgxc_lock_for_backup"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3204), _1("pgxc_lock_for_backup"), _2(0), _3(true), _4(false), _5(pgxc_lock_for_backup), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pgxc_lock_for_backup"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pgxc_lock_for_sp_database", 1, - AddBuiltinFunc(_0(9014), _1("pgxc_lock_for_sp_database"), _2(1), _3(true), _4(false), _5(pgxc_lock_for_sp_database), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pgxc_lock_for_sp_database"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(9014), _1("pgxc_lock_for_sp_database"), _2(1), _3(true), _4(false), _5(pgxc_lock_for_sp_database), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pgxc_lock_for_sp_database"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pgxc_lock_for_transfer", 1, - AddBuiltinFunc(_0(9018), _1("pgxc_lock_for_transfer"), _2(1), _3(true), _4(false), _5(pgxc_lock_for_transfer), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pgxc_lock_for_transfer"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(9018), _1("pgxc_lock_for_transfer"), _2(1), _3(true), _4(false), _5(pgxc_lock_for_transfer), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pgxc_lock_for_transfer"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pgxc_max_datanode_size", 1, - AddBuiltinFunc(_0(5028), _1("pgxc_max_datanode_size"), _2(1), _3(false), _4(true), _5(pgxc_max_datanode_size_name), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pgxc_max_datanode_size_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5028), _1("pgxc_max_datanode_size"), _2(1), _3(false), _4(true), _5(pgxc_max_datanode_size_name), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pgxc_max_datanode_size_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pgxc_node_str", 1, - AddBuiltinFunc(_0(3202), _1("pgxc_node_str"), _2(0), _3(true), _4(false), _5(pgxc_node_str), _6(19), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pgxc_node_str"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3202), _1("pgxc_node_str"), _2(0), _3(true), _4(false), _5(pgxc_node_str), _6(19), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pgxc_node_str"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pgxc_pool_check", 1, - AddBuiltinFunc(_0(3200), _1("pgxc_pool_check"), _2(0), _3(true), _4(false), _5(pgxc_pool_check), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pgxc_pool_check"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3200), _1("pgxc_pool_check"), _2(0), _3(true), _4(false), _5(pgxc_pool_check), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pgxc_pool_check"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pgxc_pool_connection_status", 1, - AddBuiltinFunc(_0(3954), _1("pgxc_pool_connection_status"), _2(0), _3(true), _4(false), _5(pgxc_pool_connection_status), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pgxc_pool_connection_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3954), _1("pgxc_pool_connection_status"), _2(0), _3(true), _4(false), _5(pgxc_pool_connection_status), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pgxc_pool_connection_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pgxc_pool_reload", 1, - AddBuiltinFunc(_0(3201), _1("pgxc_pool_reload"), _2(0), _3(true), _4(false), _5(pgxc_pool_reload), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pgxc_pool_reload"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3201), _1("pgxc_pool_reload"), _2(0), _3(true), _4(false), _5(pgxc_pool_reload), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pgxc_pool_reload"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pgxc_snapshot_status", 1, - AddBuiltinFunc(_0(2949), _1("pgxc_snapshot_status"), _2(0), _3(true), _4(false), _5(pgxc_snapshot_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(0), _21(10, 28, 28, 23, 28, 28, 23, 23, 23, 23, 20), _22(10, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(10, "xmin", "xmax", "xcnt", "oldestxmin", "next_xid", "timeline", "active_thread_num", "max_active_thread_num", "snapshot_num", "snapshot_totalsize"), _24(NULL), _25("pgxc_snapshot_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2949), _1("pgxc_snapshot_status"), _2(0), _3(true), _4(false), _5(pgxc_snapshot_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(0), _21(10, 28, 28, 23, 28, 28, 23, 23, 23, 23, 20), _22(10, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(10, "xmin", "xmax", "xcnt", "oldestxmin", "next_xid", "timeline", "active_thread_num", "max_active_thread_num", "snapshot_num", "snapshot_totalsize"), _24(NULL), _25("pgxc_snapshot_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pgxc_stat_dirty_tables", 2, - AddBuiltinFunc(_0(4410), _1("pgxc_stat_dirty_tables"), _2(2), _3(false), _4(true), _5(pgxc_stat_all_dirty_tables), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 23, 23), _21(9, 23, 23, 19, 19, 20, 20, 20, 20, 20), _22(9, 'i', 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(9, "dirty_pecent", "n_tuples", "relname", "schemaname", "n_tup_ins", "n_tup_upd", "n_tup_del", "n_live_tup", "n_dead_tup"), _24(NULL), _25("pgxc_stat_all_dirty_tables"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4411), _1("pgxc_stat_dirty_tables"), _2(3), _3(true), _4(true), _5(pgxc_stat_schema_dirty_tables), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 23, 23, 25), _21(10, 23, 23, 25, 19, 19, 20, 20, 20, 20, 20), _22(10, 'i', 'i', 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(10, "dirty_pecent", "n_tuples", "schema", "relname", "schemaname", "n_tup_ins", "n_tup_upd", "n_tup_del", "n_live_tup", "n_dead_tup"), _24(NULL), _25("pgxc_stat_schema_dirty_tables"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4410), _1("pgxc_stat_dirty_tables"), _2(2), _3(false), _4(true), _5(pgxc_stat_all_dirty_tables), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 23, 23), _21(9, 23, 23, 19, 19, 20, 20, 20, 20, 20), _22(9, 'i', 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(9, "dirty_pecent", "n_tuples", "relname", "schemaname", "n_tup_ins", "n_tup_upd", "n_tup_del", "n_live_tup", "n_dead_tup"), _24(NULL), _25("pgxc_stat_all_dirty_tables"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4411), _1("pgxc_stat_dirty_tables"), _2(3), _3(true), _4(true), _5(pgxc_stat_schema_dirty_tables), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 23, 23, 25), _21(10, 23, 23, 25, 19, 19, 20, 20, 20, 20, 20), _22(10, 'i', 'i', 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(10, "dirty_pecent", "n_tuples", "schema", "relname", "schemaname", "n_tup_ins", "n_tup_upd", "n_tup_del", "n_live_tup", "n_dead_tup"), _24(NULL), _25("pgxc_stat_schema_dirty_tables"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pgxc_unlock_for_sp_database", 1, - AddBuiltinFunc(_0(9017), _1("pgxc_unlock_for_sp_database"), _2(1), _3(true), _4(false), _5(pgxc_unlock_for_sp_database), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pgxc_unlock_for_sp_database"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(9017), _1("pgxc_unlock_for_sp_database"), _2(1), _3(true), _4(false), _5(pgxc_unlock_for_sp_database), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pgxc_unlock_for_sp_database"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pgxc_unlock_for_transfer", 1, - AddBuiltinFunc(_0(9019), _1("pgxc_unlock_for_transfer"), _2(1), _3(true), _4(false), _5(pgxc_unlock_for_transfer), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pgxc_unlock_for_transfer"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(9019), _1("pgxc_unlock_for_transfer"), _2(1), _3(true), _4(false), _5(pgxc_unlock_for_transfer), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pgxc_unlock_for_transfer"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pi", 1, - AddBuiltinFunc(_0(1610), _1("pi"), _2(0), _3(true), _4(false), _5(dpi), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dpi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1610), _1("pi"), _2(0), _3(true), _4(false), _5(dpi), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dpi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("PI"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "plainto_tsquery", 2, - AddBuiltinFunc(_0(3747), _1("plainto_tsquery"), _2(2), _3(true), _4(false), _5(plainto_tsquery_byid), _6(3615), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3734, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("plainto_tsquery_byid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3751), _1("plainto_tsquery"), _2(1), _3(true), _4(false), _5(plainto_tsquery), _6(3615), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("plainto_tsquery"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3747), _1("plainto_tsquery"), _2(2), _3(true), _4(false), _5(plainto_tsquery_byid), _6(3615), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3734, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("plainto_tsquery_byid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("transform to tsquery"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3751), _1("plainto_tsquery"), _2(1), _3(true), _4(false), _5(plainto_tsquery), _6(3615), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("plainto_tsquery"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("transform to tsquery"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "plan_seed", 1, - AddBuiltinFunc(_0(4200), _1("plan_seed"), _2(0), _3(true), _4(false), _5(get_plan_seed), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("get_plan_seed"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4200), _1("plan_seed"), _2(0), _3(true), _4(false), _5(get_plan_seed), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("get_plan_seed"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "plancache_clean", 1, - AddBuiltinFunc(_0(3958), _1("plancache_clean"), _2(0), _3(false), _4(false), _5(GPCPlanClean),_6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(2, 2950, 16), _22(NULL), _23(NULL), _24(NULL), _25("GPCPlanClean"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3958), _1("plancache_clean"), _2(0), _3(false), _4(false), _5(GPCPlanClean),_6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(2, 2950, 16), _22(NULL), _23(NULL), _24(NULL), _25("GPCPlanClean"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "plancache_status", 1, - AddBuiltinFunc(_0(3957), _1("plancache_status"), _2(0), _3(false), _4(true), _5(gs_globalplancache_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(8, 25, 25, 23, 16, 26, 25, 23, 26), _22(8, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(8, "nodename", "query", "refcount", "valid", "databaseid", "schema_name", "params_num", "func_id"), _24(NULL), _25("gs_globalplancache_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3957), _1("plancache_status"), _2(0), _3(false), _4(true), _5(gs_globalplancache_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(8, 25, 25, 23, 16, 26, 25, 23, 26), _22(8, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(8, "nodename", "query", "refcount", "valid", "databaseid", "schema_name", "params_num", "func_id"), _24(NULL), _25("gs_globalplancache_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "point", 6, - AddBuiltinFunc(_0(1416), _1("point"), _2(1), _3(true), _4(false), _5(circle_center), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_center"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1440), _1("point"), _2(2), _3(true), _4(false), _5(construct_point), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("construct_point"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1532), _1("point"), _2(1), _3(true), _4(false), _5(lseg_center), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_center"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1533), _1("point"), _2(1), _3(true), _4(false), _5(path_center), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_center"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1534), _1("point"), _2(1), _3(true), _4(false), _5(box_center), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_center"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1540), _1("point"), _2(1), _3(true), _4(false), _5(poly_center), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_center"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1416), _1("point"), _2(1), _3(true), _4(false), _5(circle_center), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_center"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("center of"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1440), _1("point"), _2(2), _3(true), _4(false), _5(construct_point), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("construct_point"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert x, y to point"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1532), _1("point"), _2(1), _3(true), _4(false), _5(lseg_center), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 601), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("lseg_center"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("center of"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1533), _1("point"), _2(1), _3(true), _4(false), _5(path_center), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_center"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("center of"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1534), _1("point"), _2(1), _3(true), _4(false), _5(box_center), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_center"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("center of"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1540), _1("point"), _2(1), _3(true), _4(false), _5(poly_center), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_center"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("center of"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "point_above", 1, - AddBuiltinFunc(_0(131), _1("point_above"), _2(2), _3(true), _4(false), _5(point_above), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("point_above"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(131), _1("point_above"), _2(2), _3(true), _4(false), _5(point_above), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("point_above"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "point_add", 1, - AddBuiltinFunc(_0(1441), _1("point_add"), _2(2), _3(true), _4(false), _5(point_add), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("point_add"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1441), _1("point_add"), _2(2), _3(true), _4(false), _5(point_add), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("point_add"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "point_below", 1, - AddBuiltinFunc(_0(134), _1("point_below"), _2(2), _3(true), _4(false), _5(point_below), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("point_below"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(134), _1("point_below"), _2(2), _3(true), _4(false), _5(point_below), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("point_below"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "point_distance", 1, - AddBuiltinFunc(_0(991), _1("point_distance"), _2(2), _3(true), _4(false), _5(point_distance), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("point_distance"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(991), _1("point_distance"), _2(2), _3(true), _4(false), _5(point_distance), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("point_distance"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "point_div", 1, - AddBuiltinFunc(_0(1444), _1("point_div"), _2(2), _3(true), _4(false), _5(point_div), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("point_div"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1444), _1("point_div"), _2(2), _3(true), _4(false), _5(point_div), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("point_div"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "point_eq", 1, - AddBuiltinFunc(_0(135), _1("point_eq"), _2(2), _3(true), _4(false), _5(point_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("point_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(135), _1("point_eq"), _2(2), _3(true), _4(false), _5(point_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("point_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "point_horiz", 1, - AddBuiltinFunc(_0(990), _1("point_horiz"), _2(2), _3(true), _4(false), _5(point_horiz), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("point_horiz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(990), _1("point_horiz"), _2(2), _3(true), _4(false), _5(point_horiz), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("point_horiz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "point_in", 1, - AddBuiltinFunc(_0(117), _1("point_in"), _2(1), _3(true), _4(false), _5(point_in), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("point_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(117), _1("point_in"), _2(1), _3(true), _4(false), _5(point_in), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("point_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "point_left", 1, - AddBuiltinFunc(_0(132), _1("point_left"), _2(2), _3(true), _4(false), _5(point_left), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("point_left"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(132), _1("point_left"), _2(2), _3(true), _4(false), _5(point_left), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("point_left"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "point_mul", 1, - AddBuiltinFunc(_0(1443), _1("point_mul"), _2(2), _3(true), _4(false), _5(point_mul), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("point_mul"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1443), _1("point_mul"), _2(2), _3(true), _4(false), _5(point_mul), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("point_mul"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "point_ne", 1, - AddBuiltinFunc(_0(988), _1("point_ne"), _2(2), _3(true), _4(false), _5(point_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("point_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(988), _1("point_ne"), _2(2), _3(true), _4(false), _5(point_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("point_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "point_out", 1, - AddBuiltinFunc(_0(118), _1("point_out"), _2(1), _3(true), _4(false), _5(point_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("point_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(118), _1("point_out"), _2(1), _3(true), _4(false), _5(point_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("point_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "point_recv", 1, - AddBuiltinFunc(_0(2428), _1("point_recv"), _2(1), _3(true), _4(false), _5(point_recv), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("point_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2428), _1("point_recv"), _2(1), _3(true), _4(false), _5(point_recv), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("point_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "point_right", 1, - AddBuiltinFunc(_0(133), _1("point_right"), _2(2), _3(true), _4(false), _5(point_right), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("point_right"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(133), _1("point_right"), _2(2), _3(true), _4(false), _5(point_right), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("point_right"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "point_send", 1, - AddBuiltinFunc(_0(2429), _1("point_send"), _2(1), _3(true), _4(false), _5(point_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("point_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2429), _1("point_send"), _2(1), _3(true), _4(false), _5(point_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("point_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "point_sub", 1, - AddBuiltinFunc(_0(1442), _1("point_sub"), _2(2), _3(true), _4(false), _5(point_sub), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("point_sub"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1442), _1("point_sub"), _2(2), _3(true), _4(false), _5(point_sub), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("point_sub"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "point_vert", 1, - AddBuiltinFunc(_0(989), _1("point_vert"), _2(2), _3(true), _4(false), _5(point_vert), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("point_vert"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(989), _1("point_vert"), _2(2), _3(true), _4(false), _5(point_vert), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("point_vert"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("vertically aligned"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "poly_above", 1, - AddBuiltinFunc(_0(2569), _1("poly_above"), _2(2), _3(true), _4(false), _5(poly_above), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 604, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_above"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2569), _1("poly_above"), _2(2), _3(true), _4(false), _5(poly_above), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 604, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_above"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "poly_below", 1, - AddBuiltinFunc(_0(2566), _1("poly_below"), _2(2), _3(true), _4(false), _5(poly_below), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 604, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_below"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2566), _1("poly_below"), _2(2), _3(true), _4(false), _5(poly_below), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 604, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_below"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "poly_center", 1, - AddBuiltinFunc(_0(227), _1("poly_center"), _2(1), _3(true), _4(false), _5(poly_center), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_center"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(227), _1("poly_center"), _2(1), _3(true), _4(false), _5(poly_center), _6(600), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_center"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("center of"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "poly_contain", 1, - AddBuiltinFunc(_0(340), _1("poly_contain"), _2(2), _3(true), _4(false), _5(poly_contain), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 604, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_contain"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(340), _1("poly_contain"), _2(2), _3(true), _4(false), _5(poly_contain), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 604, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_contain"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "poly_contain_pt", 1, - AddBuiltinFunc(_0(1428), _1("poly_contain_pt"), _2(2), _3(true), _4(false), _5(poly_contain_pt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 604, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_contain_pt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1428), _1("poly_contain_pt"), _2(2), _3(true), _4(false), _5(poly_contain_pt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 604, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_contain_pt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "poly_contained", 1, - AddBuiltinFunc(_0(345), _1("poly_contained"), _2(2), _3(true), _4(false), _5(poly_contained), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 604, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_contained"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(345), _1("poly_contained"), _2(2), _3(true), _4(false), _5(poly_contained), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 604, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_contained"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "poly_distance", 1, - AddBuiltinFunc(_0(729), _1("poly_distance"), _2(2), _3(true), _4(false), _5(poly_distance), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 604, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_distance"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(729), _1("poly_distance"), _2(2), _3(true), _4(false), _5(poly_distance), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 604, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_distance"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "poly_in", 1, - AddBuiltinFunc(_0(347), _1("poly_in"), _2(1), _3(true), _4(false), _5(poly_in), _6(604), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(347), _1("poly_in"), _2(1), _3(true), _4(false), _5(poly_in), _6(604), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "poly_left", 1, - AddBuiltinFunc(_0(341), _1("poly_left"), _2(2), _3(true), _4(false), _5(poly_left), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 604, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_left"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(341), _1("poly_left"), _2(2), _3(true), _4(false), _5(poly_left), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 604, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_left"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "poly_npoints", 1, - AddBuiltinFunc(_0(1445), _1("poly_npoints"), _2(1), _3(true), _4(false), _5(poly_npoints), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_npoints"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1445), _1("poly_npoints"), _2(1), _3(true), _4(false), _5(poly_npoints), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_npoints"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("number of points"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "poly_out", 1, - AddBuiltinFunc(_0(348), _1("poly_out"), _2(1), _3(true), _4(false), _5(poly_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(348), _1("poly_out"), _2(1), _3(true), _4(false), _5(poly_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "poly_overabove", 1, - AddBuiltinFunc(_0(2568), _1("poly_overabove"), _2(2), _3(true), _4(false), _5(poly_overabove), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 604, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_overabove"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2568), _1("poly_overabove"), _2(2), _3(true), _4(false), _5(poly_overabove), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 604, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_overabove"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "poly_overbelow", 1, - AddBuiltinFunc(_0(2567), _1("poly_overbelow"), _2(2), _3(true), _4(false), _5(poly_overbelow), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 604, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_overbelow"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2567), _1("poly_overbelow"), _2(2), _3(true), _4(false), _5(poly_overbelow), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 604, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_overbelow"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "poly_overlap", 1, - AddBuiltinFunc(_0(346), _1("poly_overlap"), _2(2), _3(true), _4(false), _5(poly_overlap), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 604, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_overlap"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(346), _1("poly_overlap"), _2(2), _3(true), _4(false), _5(poly_overlap), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 604, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_overlap"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "poly_overleft", 1, - AddBuiltinFunc(_0(342), _1("poly_overleft"), _2(2), _3(true), _4(false), _5(poly_overleft), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 604, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_overleft"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(342), _1("poly_overleft"), _2(2), _3(true), _4(false), _5(poly_overleft), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 604, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_overleft"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "poly_overright", 1, - AddBuiltinFunc(_0(343), _1("poly_overright"), _2(2), _3(true), _4(false), _5(poly_overright), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 604, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_overright"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(343), _1("poly_overright"), _2(2), _3(true), _4(false), _5(poly_overright), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 604, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_overright"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "poly_recv", 1, - AddBuiltinFunc(_0(2486), _1("poly_recv"), _2(1), _3(true), _4(false), _5(poly_recv), _6(604), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2486), _1("poly_recv"), _2(1), _3(true), _4(false), _5(poly_recv), _6(604), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "poly_right", 1, - AddBuiltinFunc(_0(344), _1("poly_right"), _2(2), _3(true), _4(false), _5(poly_right), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 604, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_right"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(344), _1("poly_right"), _2(2), _3(true), _4(false), _5(poly_right), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 604, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_right"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "poly_same", 1, - AddBuiltinFunc(_0(339), _1("poly_same"), _2(2), _3(true), _4(false), _5(poly_same), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 604, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_same"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(339), _1("poly_same"), _2(2), _3(true), _4(false), _5(poly_same), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 604, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_same"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "poly_send", 1, - AddBuiltinFunc(_0(2487), _1("poly_send"), _2(1), _3(true), _4(false), _5(poly_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2487), _1("poly_send"), _2(1), _3(true), _4(false), _5(poly_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("poly_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "polygon", 4, - AddBuiltinFunc(_0(1448), _1("polygon"), _2(1), _3(true), _4(false), _5(box_poly), _6(604), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_poly"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1449), _1("polygon"), _2(1), _3(true), _4(false), _5(path_poly), _6(604), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_poly"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1475), _1("polygon"), _2(2), _3(true), _4(false), _5(circle_poly), _6(604), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_poly"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1544), _1("polygon"), _2(1), _3(true), _4(false), _5(NULL), _6(604), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.polygon(12, $1)"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1448), _1("polygon"), _2(1), _3(true), _4(false), _5(box_poly), _6(604), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_poly"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert box to polygon"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1449), _1("polygon"), _2(1), _3(true), _4(false), _5(path_poly), _6(604), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_poly"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert path to polygon"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1475), _1("polygon"), _2(2), _3(true), _4(false), _5(circle_poly), _6(604), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 23, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_poly"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert vertex count and circle to polygon"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1544), _1("polygon"), _2(1), _3(true), _4(false), _5(NULL), _6(604), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.polygon(12, $1)"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert circle to 12-vertex polygon"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "popen", 1, - AddBuiltinFunc(_0(1434), _1("popen"), _2(1), _3(true), _4(false), _5(path_open), _6(602), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_open"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1434), _1("popen"), _2(1), _3(true), _4(false), _5(path_open), _6(602), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 602), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("path_open"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("open path"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "position", 3, - AddBuiltinFunc(_0(POSITIONFUNCOID), _1("position"), _2(2), _3(true), _4(false), _5(textpos), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textpos"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(BITPOSITIONFUNCOID), _1("position"), _2(2), _3(true), _4(false), _5(bitposition), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1560, 1560), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitposition"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(BYTEAPOSFUNCOID), _1("position"), _2(2), _3(true), _4(false), _5(byteapos), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 17, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteapos"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(POSITIONFUNCOID), _1("position"), _2(2), _3(true), _4(false), _5(textpos), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textpos"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("position of substring"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(BITPOSITIONFUNCOID), _1("position"), _2(2), _3(true), _4(false), _5(bitposition), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1560, 1560), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitposition"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("position of sub-bitstring"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(BYTEAPOSFUNCOID), _1("position"), _2(2), _3(true), _4(false), _5(byteapos), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 17, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteapos"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("position of substring"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "positionjoinsel", 1, - AddBuiltinFunc(_0(1301), _1("positionjoinsel"), _2(5), _3(true), _4(false), _5(positionjoinsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(5, 2281, 26, 2281, 21, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("positionjoinsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1301), _1("positionjoinsel"), _2(5), _3(true), _4(false), _5(positionjoinsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(5, 2281, 26, 2281, 21, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("positionjoinsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("join selectivity for position-comparison operators"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "positionsel", 1, - AddBuiltinFunc(_0(1300), _1("positionsel"), _2(4), _3(true), _4(false), _5(positionsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 2281, 26, 2281, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("positionsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1300), _1("positionsel"), _2(4), _3(true), _4(false), _5(positionsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 2281, 26, 2281, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("positionsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("restriction selectivity for position-comparison operators"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "postgresql_fdw_validator", 1, - AddBuiltinFunc(_0(2316), _1("postgresql_fdw_validator"), _2(2), _3(true), _4(false), _5(postgresql_fdw_validator), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1009, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("postgresql_fdw_validator"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2316), _1("postgresql_fdw_validator"), _2(2), _3(true), _4(false), _5(postgresql_fdw_validator), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1009, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("postgresql_fdw_validator"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("(internal)"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pound_end", 1, - AddBuiltinFunc(_0(3800), _1("pound_end"), _2(1), _3(true), _4(false), _5(pound_end), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pound_end"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3800), _1("pound_end"), _2(1), _3(true), _4(false), _5(pound_end), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pound_end"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pound_lextype", 1, - AddBuiltinFunc(_0(3801), _1("pound_lextype"), _2(1), _3(true), _4(false), _5(pound_lextype), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pound_lextype"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3801), _1("pound_lextype"), _2(1), _3(true), _4(false), _5(pound_lextype), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pound_lextype"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pound_nexttoken", 1, - AddBuiltinFunc(_0(3799), _1("pound_nexttoken"), _2(3), _3(true), _4(false), _5(pound_nexttoken), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pound_nexttoken"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3799), _1("pound_nexttoken"), _2(3), _3(true), _4(false), _5(pound_nexttoken), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pound_nexttoken"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pound_start", 1, - AddBuiltinFunc(_0(3798), _1("pound_start"), _2(3), _3(true), _4(false), _5(pound_start), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 23, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pound_start"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3798), _1("pound_start"), _2(3), _3(true), _4(false), _5(pound_start), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 23, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pound_start"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pow", 2, - AddBuiltinFunc(_0(POWFUNCOID), _1("pow"), _2(2), _3(true), _4(false), _5(dpow), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dpow"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1738), _1("pow"), _2(2), _3(true), _4(false), _5(numeric_power), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_power"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(POWFUNCOID), _1("pow"), _2(2), _3(true), _4(false), _5(dpow), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dpow"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("exponentiation"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1738), _1("pow"), _2(2), _3(true), _4(false), _5(numeric_power), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_power"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("exponentiation"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "power", 2, - AddBuiltinFunc(_0(POWERFUNCOID), _1("power"), _2(2), _3(true), _4(false), _5(dpow), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dpow"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2169), _1("power"), _2(2), _3(true), _4(false), _5(numeric_power), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_power"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(POWERFUNCOID), _1("power"), _2(2), _3(true), _4(false), _5(dpow), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dpow"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("exponentiation"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2169), _1("power"), _2(2), _3(true), _4(false), _5(numeric_power), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_power"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("exponentiation"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "prepare_statement_status", 1, - AddBuiltinFunc(_0(3959), _1("prepare_statement_status"), _2(0), _3(false), _4(true), _5(gs_globalplancache_prepare_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(8, 25, 20, 23, 23, 25, 23, 16, 25), _22(8, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(8, "nodename", "cn_sess_id", "cn_node_id","cn_time_line","statement_name", "refcount", "is_shared", "query"), _24(NULL), _25("gs_globalplancache_prepare_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3959), _1("prepare_statement_status"), _2(0), _3(false), _4(true), _5(gs_globalplancache_prepare_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(8, 25, 20, 23, 23, 25, 23, 16, 25), _22(8, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(8, "nodename", "cn_sess_id", "cn_node_id","cn_time_line","statement_name", "refcount", "is_shared", "query"), _24(NULL), _25("gs_globalplancache_prepare_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( - "print_var", 1, - AddBuiltinFunc(_0(1515), _1("print_var"), _2(0), _3(true), _4(true), _5(debug_client_print_variables), _6(2249), _7(PG_PLDEBUG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 25), _21(5, 25, 25, 25, 25, 25), _22(5, 'i', 'o', 'o', 'o', 'o'), _23(5, "var_name", "varname", "vartype", "value", "package_name"), _24(NULL), _25("debug_client_print_variables"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + "print_var", 2, + AddBuiltinFunc(_0(1515), _1("print_var"), _2(0), _3(true), _4(true), _5(debug_client_print_variables), _6(2249), _7(PG_PLDEBUG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 25), _21(6, 25, 25, 25, 25, 25, 16), _22(6, 'i', 'o', 'o', 'o', 'o', 'o'), _23(6, "var_name", "varname", "vartype", "value", "package_name", "isconst"), _24(NULL), _25("debug_client_print_variables"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1521), _1("print_var"), _2(0), _3(true), _4(true), _5(debug_client_print_variables_frame), _6(2249), _7(PG_PLDEBUG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 23), _21(7, 25, 23, 25, 25, 25, 25, 16), _22(7, 'i', 'i', 'o', 'o', 'o', 'o', 'o'), _23(7, "var_name", "frameno", "varname", "vartype", "value", "package_name", "isconst"), _24(NULL), _25("debug_client_print_variables_frame"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "prsd_end", 1, - AddBuiltinFunc(_0(3719), _1("prsd_end"), _2(1), _3(true), _4(false), _5(prsd_end), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("prsd_end"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3719), _1("prsd_end"), _2(1), _3(true), _4(false), _5(prsd_end), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("prsd_end"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("(internal)"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "prsd_headline", 1, - AddBuiltinFunc(_0(3720), _1("prsd_headline"), _2(3), _3(true), _4(false), _5(prsd_headline), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 2281, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("prsd_headline"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3720), _1("prsd_headline"), _2(3), _3(true), _4(false), _5(prsd_headline), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 2281, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("prsd_headline"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("(internal)"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "prsd_lextype", 1, - AddBuiltinFunc(_0(3721), _1("prsd_lextype"), _2(1), _3(true), _4(false), _5(prsd_lextype), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("prsd_lextype"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3721), _1("prsd_lextype"), _2(1), _3(true), _4(false), _5(prsd_lextype), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("prsd_lextype"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("(internal)"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "prsd_nexttoken", 1, - AddBuiltinFunc(_0(3718), _1("prsd_nexttoken"), _2(3), _3(true), _4(false), _5(prsd_nexttoken), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("prsd_nexttoken"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3718), _1("prsd_nexttoken"), _2(3), _3(true), _4(false), _5(prsd_nexttoken), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("prsd_nexttoken"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("(internal)"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "prsd_start", 1, - AddBuiltinFunc(_0(3717), _1("prsd_start"), _2(3), _3(true), _4(false), _5(prsd_start), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 23, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("prsd_start"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3717), _1("prsd_start"), _2(3), _3(true), _4(false), _5(prsd_start), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 23, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("prsd_start"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("(internal)"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "psortbuild", 1, - AddBuiltinFunc(_0(4040), _1("psortbuild"), _2(3), _3(true), _4(false), _5(psortbuild), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("psortbuild"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4040), _1("psortbuild"), _2(3), _3(true), _4(false), _5(psortbuild), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("psortbuild"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "psortcanreturn", 1, - AddBuiltinFunc(_0(4045), _1("psortcanreturn"), _2(1), _3(true), _4(false), _5(psortcanreturn), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("psortcanreturn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4045), _1("psortcanreturn"), _2(1), _3(true), _4(false), _5(psortcanreturn), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("psortcanreturn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "psortcostestimate", 1, - AddBuiltinFunc(_0(4044), _1("psortcostestimate"), _2(7), _3(true), _4(false), _5(psortcostestimate), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(7, 2281, 2281, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("psortcostestimate"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4044), _1("psortcostestimate"), _2(7), _3(true), _4(false), _5(psortcostestimate), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(7, 2281, 2281, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("psortcostestimate"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "psortgetbitmap", 1, - AddBuiltinFunc(_0(4043), _1("psortgetbitmap"), _2(2), _3(true), _4(false), _5(psortgetbitmap), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("psortgetbitmap"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4043), _1("psortgetbitmap"), _2(2), _3(true), _4(false), _5(psortgetbitmap), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("psortgetbitmap"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "psortgettuple", 1, - AddBuiltinFunc(_0(4042), _1("psortgettuple"), _2(2), _3(true), _4(false), _5(psortgettuple), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("psortgettuple"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4042), _1("psortgettuple"), _2(2), _3(true), _4(false), _5(psortgettuple), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("psortgettuple"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "psortoptions", 1, - AddBuiltinFunc(_0(4041), _1("psortoptions"), _2(2), _3(true), _4(false), _5(psortoptions), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1009, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("psortoptions"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4041), _1("psortoptions"), _2(2), _3(true), _4(false), _5(psortoptions), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1009, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("psortoptions"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pt_contained_circle", 1, - AddBuiltinFunc(_0(1478), _1("pt_contained_circle"), _2(2), _3(true), _4(false), _5(pt_contained_circle), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pt_contained_circle"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1478), _1("pt_contained_circle"), _2(2), _3(true), _4(false), _5(pt_contained_circle), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pt_contained_circle"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pt_contained_poly", 1, - AddBuiltinFunc(_0(1429), _1("pt_contained_poly"), _2(2), _3(true), _4(false), _5(pt_contained_poly), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pt_contained_poly"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1429), _1("pt_contained_poly"), _2(2), _3(true), _4(false), _5(pt_contained_poly), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 604), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pt_contained_poly"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pv_builtin_functions", 1, - AddBuiltinFunc(_0(5345), _1("pv_builtin_functions"), _2(0), _3(false), _4(true), _5(pv_builtin_functions), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(3100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(32, 19, 26, 26, 26, 700, 700, 26, 24, 16, 16, 16, 16, 16, 16, 18, 21, 21, 26, 30, 1007, 1002, 1009, 194, 25, 25, 1009, 1034, 22, 16, 16, 16, 26), _22(32, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(32, "proname", "pronamespace", "proowner", "prolang", "procost", "prorows", "provariadic", "protransform", "proisagg", "proiswindow", "prosecdef", "proleakproof", "proisstrict", "proretset", "provolatile", "pronargs", "pronargdefaults", "prorettype", "proargtypes", "proallargtypes", "proargmodes", "proargnames", "proargdefaults", "prosrc", "probin", "proconfig", "proacl", "prodefaultargpos", "fencedmode", "proshippable", "propackage", "oid"), _24(NULL), _25("pv_builtin_functions"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5345), _1("pv_builtin_functions"), _2(0), _3(false), _4(true), _5(pv_builtin_functions), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(3100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(32, 19, 26, 26, 26, 700, 700, 26, 24, 16, 16, 16, 16, 16, 16, 18, 21, 21, 26, 30, 1007, 1002, 1009, 194, 25, 25, 1009, 1034, 22, 16, 16, 16, 26), _22(32, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(32, "proname", "pronamespace", "proowner", "prolang", "procost", "prorows", "provariadic", "protransform", "proisagg", "proiswindow", "prosecdef", "proleakproof", "proisstrict", "proretset", "provolatile", "pronargs", "pronargdefaults", "prorettype", "proargtypes", "proallargtypes", "proargmodes", "proargnames", "proargdefaults", "prosrc", "probin", "proconfig", "proacl", "prodefaultargpos", "fencedmode", "proshippable", "propackage", "oid"), _24(NULL), _25("pv_builtin_functions"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pv_compute_pool_workload", 1, - AddBuiltinFunc(_0(4300), _1("pv_compute_pool_workload"), _2(0), _3(false), _4(true), _5(pv_compute_pool_workload), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(4, 25, 23, 23, 25), _22(4, 'o', 'o', 'o', 'o'), _23(4, "nodename", "rpinuse", "maxrp", "nodestate"), _24(NULL), _25("pv_compute_pool_workload"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4300), _1("pv_compute_pool_workload"), _2(0), _3(false), _4(true), _5(pv_compute_pool_workload), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(4, 25, 23, 23, 25), _22(4, 'o', 'o', 'o', 'o'), _23(4, "nodename", "rpinuse", "maxrp", "nodestate"), _24(NULL), _25("pv_compute_pool_workload"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pv_instance_time", 1, - AddBuiltinFunc(_0(3969), _1("pv_instance_time"), _2(0), _3(false), _4(true), _5(pv_instance_time), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(3, 23, 25, 20), _22(3, 'o', 'o', 'o'), _23(3, "stat_id", "stat_name", "value"), _24(NULL), _25("pv_instance_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3969), _1("pv_instance_time"), _2(0), _3(false), _4(true), _5(pv_instance_time), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(3, 23, 25, 20), _22(3, 'o', 'o', 'o'), _23(3, "stat_id", "stat_name", "value"), _24(NULL), _25("pv_instance_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pv_os_run_info", 1, - AddBuiltinFunc(_0(3970), _1("pv_os_run_info"), _2(0), _3(false), _4(true), _5(pv_os_run_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(5, 23, 25, 1700, 25, 16), _22(5, 'o', 'o', 'o', 'o', 'o'), _23(5, "id", "name", "value", "comments", "cumulative"), _24(NULL), _25("pv_os_run_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3970), _1("pv_os_run_info"), _2(0), _3(false), _4(true), _5(pv_os_run_info), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(5, 23, 25, 1700, 25, 16), _22(5, 'o', 'o', 'o', 'o', 'o'), _23(5, "id", "name", "value", "comments", "cumulative"), _24(NULL), _25("pv_os_run_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pv_session_memctx_detail", 1, - AddBuiltinFunc(_0(3983), _1("pv_session_memctx_detail"), _2(2), _3(false), _4(true), _5(pv_session_memctx_detail), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 20, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pv_session_memctx_detail"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3983), _1("pv_session_memctx_detail"), _2(2), _3(false), _4(true), _5(pv_session_memctx_detail), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 20, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pv_session_memctx_detail"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pv_session_memory", 1, - AddBuiltinFunc(_0(3984), _1("pv_session_memory"), _2(0), _3(false), _4(true), _5(pv_session_memory), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(4, 25, 23, 23, 23), _22(4, 'o', 'o', 'o', 'o'), _23(4, "sessid", "init_mem", "used_mem", "peak_mem"), _24(NULL), _25("pv_session_memory"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3984), _1("pv_session_memory"), _2(0), _3(false), _4(true), _5(pv_session_memory), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(4, 25, 23, 23, 23), _22(4, 'o', 'o', 'o', 'o'), _23(4, "sessid", "init_mem", "used_mem", "peak_mem"), _24(NULL), _25("pv_session_memory"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pv_session_memory_detail", 1, - AddBuiltinFunc(_0(3971), _1("pv_session_memory_detail"), _2(0), _3(false), _4(true), _5(pv_session_memory_detail), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(8, 25, 20, 25, 21, 25, 20, 20, 20), _22(8, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(8, "sessid", "threadid", "contextname", "level", "parent", "totalsize", "freesize", "usedsize"), _24(NULL), _25("pv_session_memory_detail"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3971), _1("pv_session_memory_detail"), _2(0), _3(false), _4(true), _5(pv_session_memory_detail), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(8, 25, 20, 25, 21, 25, 20, 20, 20), _22(8, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(8, "sessid", "threadid", "contextname", "level", "parent", "totalsize", "freesize", "usedsize"), _24(NULL), _25("pv_session_memory_detail"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pv_session_stat", 1, - AddBuiltinFunc(_0(3974), _1("pv_session_stat"), _2(0), _3(false), _4(true), _5(pv_session_stat), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(5, 25, 23, 25, 25, 20), _22(5, 'o', 'o', 'o', 'o', 'o'), _23(5, "sessid", "statid", "statname", "statunit", "value"), _24(NULL), _25("pv_session_stat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3974), _1("pv_session_stat"), _2(0), _3(false), _4(true), _5(pv_session_stat), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(5, 25, 23, 25, 25, 20), _22(5, 'o', 'o', 'o', 'o', 'o'), _23(5, "sessid", "statid", "statname", "statunit", "value"), _24(NULL), _25("pv_session_stat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pv_session_time", 1, - AddBuiltinFunc(_0(3972), _1("pv_session_time"), _2(0), _3(false), _4(true), _5(pv_session_time), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(4, 25, 23, 25, 20), _22(4, 'o', 'o', 'o', 'o'), _23(4, "sessid", "stat_id", "stat_name", "value"), _24(NULL), _25("pv_session_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3972), _1("pv_session_time"), _2(0), _3(false), _4(true), _5(pv_session_time), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(4, 25, 23, 25, 20), _22(4, 'o', 'o', 'o', 'o'), _23(4, "sessid", "stat_id", "stat_name", "value"), _24(NULL), _25("pv_session_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pv_thread_memory_detail", 1, - AddBuiltinFunc(_0(3968), _1("pv_thread_memory_detail"), _2(0), _3(false), _4(true), _5(pv_thread_memory_detail), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(9, 25, 20, 25, 25, 21, 25, 20, 20, 20), _22(9, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(9, "threadid", "tid", "thrdtype", "contextname", "level", "parent", "totalsize", "freesize", "usedsize"), _24(NULL), _25("pv_thread_memory_detail"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3968), _1("pv_thread_memory_detail"), _2(0), _3(false), _4(true), _5(pv_thread_memory_detail), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(9, 25, 20, 25, 25, 21, 25, 20, 20, 20), _22(9, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(9, "threadid", "tid", "thrdtype", "contextname", "level", "parent", "totalsize", "freesize", "usedsize"), _24(NULL), _25("pv_thread_memory_detail"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "pv_total_memory_detail", 1, - AddBuiltinFunc(_0(3985), _1("pv_total_memory_detail"), _2(0), _3(true), _4(true), _5(pv_total_memory_detail), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(3, 25, 25, 23), _22(3, 'o', 'o', 'o'), _23(3, "nodename", "memorytype", "memorymbytes"), _24(NULL), _25("pv_total_memory_detail"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3985), _1("pv_total_memory_detail"), _2(0), _3(true), _4(true), _5(pv_total_memory_detail), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(3, 25, 25, 23), _22(3, 'o', 'o', 'o'), _23(3, "nodename", "memorytype", "memorymbytes"), _24(NULL), _25("pv_total_memory_detail"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "query_to_xml", 1, - AddBuiltinFunc(_0(2924), _1("query_to_xml"), _2(4), _3(false), _4(false), _5(query_to_xml), _6(142), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(100), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 25, 16, 16, 25), _21(NULL), _22(NULL), _23(4, "query", "nulls", "tableforest", "targetns"), _24(NULL), _25("query_to_xml"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2924), _1("query_to_xml"), _2(4), _3(false), _4(false), _5(query_to_xml), _6(142), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(100), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 25, 16, 16, 25), _21(NULL), _22(NULL), _23(4, "query", "nulls", "tableforest", "targetns"), _24(NULL), _25("query_to_xml"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("map query result to XML"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "query_to_xml_and_xmlschema", 1, - AddBuiltinFunc(_0(2930), _1("query_to_xml_and_xmlschema"), _2(4), _3(false), _4(false), _5(query_to_xml_and_xmlschema), _6(142), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(100), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 25, 16, 16, 25), _21(NULL), _22(NULL), _23(4, "query", "nulls", "tableforest", "targetns"), _24(NULL), _25("query_to_xml_and_xmlschema"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2930), _1("query_to_xml_and_xmlschema"), _2(4), _3(false), _4(false), _5(query_to_xml_and_xmlschema), _6(142), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(100), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 25, 16, 16, 25), _21(NULL), _22(NULL), _23(4, "query", "nulls", "tableforest", "targetns"), _24(NULL), _25("query_to_xml_and_xmlschema"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("map query result and structure to XML and XML Schema"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "query_to_xmlschema", 1, - AddBuiltinFunc(_0(2927), _1("query_to_xmlschema"), _2(4), _3(false), _4(false), _5(query_to_xmlschema), _6(142), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(100), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 25, 16, 16, 25), _21(NULL), _22(NULL), _23(4, "query", "nulls", "tableforest", "targetns"), _24(NULL), _25("query_to_xmlschema"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2927), _1("query_to_xmlschema"), _2(4), _3(false), _4(false), _5(query_to_xmlschema), _6(142), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(100), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 25, 16, 16, 25), _21(NULL), _22(NULL), _23(4, "query", "nulls", "tableforest", "targetns"), _24(NULL), _25("query_to_xmlschema"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("map query result structure to XML Schema"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "querytree", 1, - AddBuiltinFunc(_0(3673), _1("querytree"), _2(1), _3(true), _4(false), _5(tsquerytree), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsquerytree"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3673), _1("querytree"), _2(1), _3(true), _4(false), _5(tsquerytree), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsquerytree"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("show real useful query for GiST index"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "quote_ident", 1, - AddBuiltinFunc(_0(1282), _1("quote_ident"), _2(1), _3(true), _4(false), _5(quote_ident), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("quote_ident"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1282), _1("quote_ident"), _2(1), _3(true), _4(false), _5(quote_ident), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("quote_ident"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("quote an identifier for usage in a querystring"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "quote_literal", 2, - AddBuiltinFunc(_0(1283), _1("quote_literal"), _2(1), _3(true), _4(false), _5(quote_literal), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("quote_literal"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1285), _1("quote_literal"), _2(1), _3(true), _4(false), _5(NULL), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2283), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.quote_literal($1::pg_catalog.text)"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1283), _1("quote_literal"), _2(1), _3(true), _4(false), _5(quote_literal), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("quote_literal"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("quote a literal for usage in a querystring"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1285), _1("quote_literal"), _2(1), _3(true), _4(false), _5(NULL), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2283), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.quote_literal($1::pg_catalog.text)"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("quote a data value for usage in a querystring"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "quote_nullable", 2, - AddBuiltinFunc(_0(1289), _1("quote_nullable"), _2(1), _3(false), _4(false), _5(quote_nullable), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("quote_nullable"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1290), _1("quote_nullable"), _2(1), _3(false), _4(false), _5(NULL), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2283), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.quote_nullable($1::pg_catalog.text)"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1289), _1("quote_nullable"), _2(1), _3(false), _4(false), _5(quote_nullable), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("quote_nullable"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("quote a possibly-null literal for usage in a querystring"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1290), _1("quote_nullable"), _2(1), _3(false), _4(false), _5(NULL), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2283), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.quote_nullable($1::pg_catalog.text)"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("quote a possibly-null data value for usage in a querystring"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "radians", 1, - AddBuiltinFunc(_0(1609), _1("radians"), _2(1), _3(true), _4(false), _5(radians), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("radians"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1609), _1("radians"), _2(1), _3(true), _4(false), _5(radians), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("radians"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("degrees to radians"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "radius", 1, - AddBuiltinFunc(_0(1470), _1("radius"), _2(1), _3(true), _4(false), _5(circle_radius), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_radius"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1470), _1("radius"), _2(1), _3(true), _4(false), _5(circle_radius), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 718), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("circle_radius"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("radius of circle"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "random", 1, - AddBuiltinFunc(_0(RANDOMFUNCOID), _1("random"), _2(0), _3(true), _4(false), _5(drandom), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("drandom"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(RANDOMFUNCOID), _1("random"), _2(0), _3(true), _4(false), _5(drandom), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("drandom"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("random value"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "range_adjacent", 1, - AddBuiltinFunc(_0(3862), _1("range_adjacent"), _2(2), _3(true), _4(false), _5(range_adjacent), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3831, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_adjacent"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3862), _1("range_adjacent"), _2(2), _3(true), _4(false), _5(range_adjacent), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3831, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_adjacent"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "range_after", 1, - AddBuiltinFunc(_0(3864), _1("range_after"), _2(2), _3(true), _4(false), _5(range_after), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3831, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_after"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3864), _1("range_after"), _2(2), _3(true), _4(false), _5(range_after), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3831, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_after"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "range_before", 1, - AddBuiltinFunc(_0(3863), _1("range_before"), _2(2), _3(true), _4(false), _5(range_before), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3831, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_before"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3863), _1("range_before"), _2(2), _3(true), _4(false), _5(range_before), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3831, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_before"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "range_cmp", 1, - AddBuiltinFunc(_0(3870), _1("range_cmp"), _2(2), _3(true), _4(false), _5(range_cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3831, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3870), _1("range_cmp"), _2(2), _3(true), _4(false), _5(range_cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3831, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "range_contained_by", 1, - AddBuiltinFunc(_0(3861), _1("range_contained_by"), _2(2), _3(true), _4(false), _5(range_contained_by), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3831, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_contained_by"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3861), _1("range_contained_by"), _2(2), _3(true), _4(false), _5(range_contained_by), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3831, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_contained_by"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "range_contains", 1, - AddBuiltinFunc(_0(3859), _1("range_contains"), _2(2), _3(true), _4(false), _5(range_contains), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3831, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_contains"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3859), _1("range_contains"), _2(2), _3(true), _4(false), _5(range_contains), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3831, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_contains"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "range_contains_elem", 1, - AddBuiltinFunc(_0(3858), _1("range_contains_elem"), _2(2), _3(true), _4(false), _5(range_contains_elem), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3831, 2283), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_contains_elem"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3858), _1("range_contains_elem"), _2(2), _3(true), _4(false), _5(range_contains_elem), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3831, 2283), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_contains_elem"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "range_eq", 1, - AddBuiltinFunc(_0(3855), _1("range_eq"), _2(2), _3(true), _4(false), _5(range_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3831, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3855), _1("range_eq"), _2(2), _3(true), _4(false), _5(range_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3831, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "range_ge", 1, - AddBuiltinFunc(_0(3873), _1("range_ge"), _2(2), _3(true), _4(false), _5(range_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3831, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3873), _1("range_ge"), _2(2), _3(true), _4(false), _5(range_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3831, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "range_gist_compress", 1, - AddBuiltinFunc(_0(3877), _1("range_gist_compress"), _2(1), _3(true), _4(false), _5(range_gist_compress), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_gist_compress"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3877), _1("range_gist_compress"), _2(1), _3(true), _4(false), _5(range_gist_compress), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_gist_compress"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "range_gist_consistent", 1, - AddBuiltinFunc(_0(3875), _1("range_gist_consistent"), _2(5), _3(true), _4(false), _5(range_gist_consistent), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(5, 2281, 3831, 23, 26, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_gist_consistent"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3875), _1("range_gist_consistent"), _2(5), _3(true), _4(false), _5(range_gist_consistent), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(5, 2281, 3831, 23, 26, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_gist_consistent"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GiST support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "range_gist_decompress", 1, - AddBuiltinFunc(_0(3878), _1("range_gist_decompress"), _2(1), _3(true), _4(false), _5(range_gist_decompress), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_gist_decompress"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3878), _1("range_gist_decompress"), _2(1), _3(true), _4(false), _5(range_gist_decompress), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_gist_decompress"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "range_gist_penalty", 1, - AddBuiltinFunc(_0(3879), _1("range_gist_penalty"), _2(3), _3(true), _4(false), _5(range_gist_penalty), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_gist_penalty"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3879), _1("range_gist_penalty"), _2(3), _3(true), _4(false), _5(range_gist_penalty), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_gist_penalty"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GiST support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "range_gist_picksplit", 1, - AddBuiltinFunc(_0(3880), _1("range_gist_picksplit"), _2(2), _3(true), _4(false), _5(range_gist_picksplit), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_gist_picksplit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3880), _1("range_gist_picksplit"), _2(2), _3(true), _4(false), _5(range_gist_picksplit), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_gist_picksplit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GiST support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "range_gist_same", 1, - AddBuiltinFunc(_0(3881), _1("range_gist_same"), _2(3), _3(true), _4(false), _5(range_gist_same), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 3831, 3831, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_gist_same"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3881), _1("range_gist_same"), _2(3), _3(true), _4(false), _5(range_gist_same), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 3831, 3831, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_gist_same"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GiST support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "range_gist_union", 1, - AddBuiltinFunc(_0(3876), _1("range_gist_union"), _2(2), _3(true), _4(false), _5(range_gist_union), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_gist_union"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3876), _1("range_gist_union"), _2(2), _3(true), _4(false), _5(range_gist_union), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_gist_union"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("GiST support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "range_gt", 1, - AddBuiltinFunc(_0(3874), _1("range_gt"), _2(2), _3(true), _4(false), _5(range_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3831, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3874), _1("range_gt"), _2(2), _3(true), _4(false), _5(range_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3831, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "range_in", 1, - AddBuiltinFunc(_0(3834), _1("range_in"), _2(3), _3(true), _4(false), _5(range_in), _6(3831), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 2275, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3834), _1("range_in"), _2(3), _3(true), _4(false), _5(range_in), _6(3831), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 2275, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "range_intersect", 1, - AddBuiltinFunc(_0(3868), _1("range_intersect"), _2(2), _3(true), _4(false), _5(range_intersect), _6(3831), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3831, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_intersect"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3868), _1("range_intersect"), _2(2), _3(true), _4(false), _5(range_intersect), _6(3831), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3831, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_intersect"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "range_le", 1, - AddBuiltinFunc(_0(3872), _1("range_le"), _2(2), _3(true), _4(false), _5(range_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3831, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3872), _1("range_le"), _2(2), _3(true), _4(false), _5(range_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3831, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "range_lt", 1, - AddBuiltinFunc(_0(3871), _1("range_lt"), _2(2), _3(true), _4(false), _5(range_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3831, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3871), _1("range_lt"), _2(2), _3(true), _4(false), _5(range_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3831, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "range_minus", 1, - AddBuiltinFunc(_0(3869), _1("range_minus"), _2(2), _3(true), _4(false), _5(range_minus), _6(3831), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3831, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_minus"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3869), _1("range_minus"), _2(2), _3(true), _4(false), _5(range_minus), _6(3831), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3831, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_minus"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "range_ne", 1, - AddBuiltinFunc(_0(3856), _1("range_ne"), _2(2), _3(true), _4(false), _5(range_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3831, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3856), _1("range_ne"), _2(2), _3(true), _4(false), _5(range_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3831, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "range_out", 1, - AddBuiltinFunc(_0(3835), _1("range_out"), _2(1), _3(true), _4(false), _5(range_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3835), _1("range_out"), _2(1), _3(true), _4(false), _5(range_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "range_overlaps", 1, - AddBuiltinFunc(_0(3857), _1("range_overlaps"), _2(2), _3(true), _4(false), _5(range_overlaps), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3831, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_overlaps"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3857), _1("range_overlaps"), _2(2), _3(true), _4(false), _5(range_overlaps), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3831, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_overlaps"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "range_overleft", 1, - AddBuiltinFunc(_0(3865), _1("range_overleft"), _2(2), _3(true), _4(false), _5(range_overleft), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3831, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_overleft"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3865), _1("range_overleft"), _2(2), _3(true), _4(false), _5(range_overleft), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3831, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_overleft"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "range_overright", 1, - AddBuiltinFunc(_0(3866), _1("range_overright"), _2(2), _3(true), _4(false), _5(range_overright), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3831, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_overright"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3866), _1("range_overright"), _2(2), _3(true), _4(false), _5(range_overright), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3831, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_overright"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "range_recv", 1, - AddBuiltinFunc(_0(3836), _1("range_recv"), _2(3), _3(true), _4(false), _5(range_recv), _6(3831), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 2281, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3836), _1("range_recv"), _2(3), _3(true), _4(false), _5(range_recv), _6(3831), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 2281, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "range_send", 1, - AddBuiltinFunc(_0(3837), _1("range_send"), _2(1), _3(true), _4(false), _5(range_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3837), _1("range_send"), _2(1), _3(true), _4(false), _5(range_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "range_typanalyze", 1, - AddBuiltinFunc(_0(3916), _1("range_typanalyze"), _2(1), _3(true), _4(false), _5(range_typanalyze), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_typanalyze"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3916), _1("range_typanalyze"), _2(1), _3(true), _4(false), _5(range_typanalyze), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_typanalyze"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("range typanalyze"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "range_union", 1, - AddBuiltinFunc(_0(3867), _1("range_union"), _2(2), _3(true), _4(false), _5(range_union), _6(3831), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3831, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_union"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3867), _1("range_union"), _2(2), _3(true), _4(false), _5(range_union), _6(3831), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3831, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_union"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "rank", 1, - AddBuiltinFunc(_0(RANKFUNCOID), _1("rank"), _2(0), _3(false), _4(false), _5(window_rank), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(true), _16(false), _17(false), _18('i'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("window_rank"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(RANKFUNCOID), _1("rank"), _2(0), _3(false), _4(false), _5(window_rank), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(true), _16(false), _17(false), _18('i'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("window_rank"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("integer rank with gaps"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "rawcat", 1, - AddBuiltinFunc(_0(3478), _1("rawcat"), _2(2), _3(true), _4(false), _5(rawcat), _6(86), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 86, 86), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("rawcat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3478), _1("rawcat"), _2(2), _3(true), _4(false), _5(rawcat), _6(86), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 86, 86), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("rawcat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "rawcmp", 1, - AddBuiltinFunc(_0(3475), _1("rawcmp"), _2(2), _3(true), _4(false), _5(rawcmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 86, 86), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("rawcmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3475), _1("rawcmp"), _2(2), _3(true), _4(false), _5(rawcmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 86, 86), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("rawcmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "raweq", 1, - AddBuiltinFunc(_0(3931), _1("raweq"), _2(2), _3(true), _4(false), _5(raweq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 86, 86), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("raweq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3931), _1("raweq"), _2(2), _3(true), _4(false), _5(raweq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 86, 86), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("raweq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "rawge", 1, - AddBuiltinFunc(_0(3939), _1("rawge"), _2(2), _3(true), _4(false), _5(rawge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 86, 86), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("rawge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3939), _1("rawge"), _2(2), _3(true), _4(false), _5(rawge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 86, 86), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("rawge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "rawgt", 1, - AddBuiltinFunc(_0(3936), _1("rawgt"), _2(2), _3(true), _4(false), _5(rawgt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 86, 86), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("rawgt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3936), _1("rawgt"), _2(2), _3(true), _4(false), _5(rawgt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 86, 86), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("rawgt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "rawin", 1, - AddBuiltinFunc(_0(4035), _1("rawin"), _2(1), _3(true), _4(false), _5(rawin), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("rawin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4035), _1("rawin"), _2(1), _3(true), _4(false), _5(rawin), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("rawin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "rawle", 1, - AddBuiltinFunc(_0(3935), _1("rawle"), _2(2), _3(true), _4(false), _5(rawle), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 86, 86), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("rawle"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3935), _1("rawle"), _2(2), _3(true), _4(false), _5(rawle), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 86, 86), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("rawle"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "rawlike", 1, - AddBuiltinFunc(_0(3476), _1("rawlike"), _2(2), _3(true), _4(false), _5(rawlike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 86, 86), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("rawlike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3476), _1("rawlike"), _2(2), _3(true), _4(false), _5(rawlike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 86, 86), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("rawlike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "rawlt", 1, - AddBuiltinFunc(_0(3932), _1("rawlt"), _2(2), _3(true), _4(false), _5(rawlt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 86, 86), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("rawlt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3932), _1("rawlt"), _2(2), _3(true), _4(false), _5(rawlt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 86, 86), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("rawlt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "rawne", 1, - AddBuiltinFunc(_0(3940), _1("rawne"), _2(2), _3(true), _4(false), _5(rawne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 86, 86), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("rawne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3940), _1("rawne"), _2(2), _3(true), _4(false), _5(rawne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 86, 86), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("rawne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "rawnlike", 1, - AddBuiltinFunc(_0(3477), _1("rawnlike"), _2(2), _3(true), _4(false), _5(rawnlike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 86, 86), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("rawnlike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3477), _1("rawnlike"), _2(2), _3(true), _4(false), _5(rawnlike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 86, 86), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("rawnlike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "rawout", 1, - AddBuiltinFunc(_0(4036), _1("rawout"), _2(1), _3(true), _4(false), _5(rawout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("rawout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4036), _1("rawout"), _2(1), _3(true), _4(false), _5(rawout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("rawout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "rawrecv", 1, - AddBuiltinFunc(_0(4033), _1("rawrecv"), _2(1), _3(true), _4(false), _5(bytearecv), _6(86), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bytearecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4033), _1("rawrecv"), _2(1), _3(true), _4(false), _5(bytearecv), _6(86), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bytearecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "rawsend", 1, - AddBuiltinFunc(_0(4034), _1("rawsend"), _2(1), _3(true), _4(false), _5(byteasend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 86), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteasend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4034), _1("rawsend"), _2(1), _3(true), _4(false), _5(byteasend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 86), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteasend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "rawtohex", 1, - AddBuiltinFunc(_0(4037), _1("rawtohex"), _2(1), _3(true), _4(false), _5(rawtotext), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 86), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("rawtotext"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4037), _1("rawtohex"), _2(1), _3(true), _4(false), _5(rawtotext), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 86), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("rawtotext"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "read_disable_conn_file", 1, - AddBuiltinFunc(_0(4222), _1("read_disable_conn_file"), _2(0), _3(false), _4(false), _5(read_disable_conn_file), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(6, 25, 25, 25, 25, 25, 25), _22(6, 'o', 'o', 'o', 'o', 'o', 'o'), _23(6, "disconn_mode", "disconn_host", "disconn_port", "local_host", "local_port", "redo_finished"), _24(NULL), _25("read_disable_conn_file"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4222), _1("read_disable_conn_file"), _2(0), _3(false), _4(false), _5(read_disable_conn_file), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(6, 25, 25, 25, 25, 25, 25), _22(6, 'o', 'o', 'o', 'o', 'o', 'o'), _23(6, "disconn_mode", "disconn_host", "disconn_port", "local_host", "local_port", "redo_finished"), _24(NULL), _25("read_disable_conn_file"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "record_eq", 1, - AddBuiltinFunc(_0(2981), _1("record_eq"), _2(2), _3(true), _4(false), _5(record_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2249, 2249), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("record_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2981), _1("record_eq"), _2(2), _3(true), _4(false), _5(record_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2249, 2249), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("record_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "record_ge", 1, - AddBuiltinFunc(_0(2986), _1("record_ge"), _2(2), _3(true), _4(false), _5(record_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2249, 2249), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("record_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2986), _1("record_ge"), _2(2), _3(true), _4(false), _5(record_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2249, 2249), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("record_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "record_gt", 1, - AddBuiltinFunc(_0(2984), _1("record_gt"), _2(2), _3(true), _4(false), _5(record_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2249, 2249), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("record_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2984), _1("record_gt"), _2(2), _3(true), _4(false), _5(record_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2249, 2249), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("record_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "record_in", 1, - AddBuiltinFunc(_0(2290), _1("record_in"), _2(3), _3(true), _4(false), _5(record_in), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 2275, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("record_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2290), _1("record_in"), _2(3), _3(true), _4(false), _5(record_in), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 2275, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("record_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "record_le", 1, - AddBuiltinFunc(_0(2985), _1("record_le"), _2(2), _3(true), _4(false), _5(record_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2249, 2249), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("record_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2985), _1("record_le"), _2(2), _3(true), _4(false), _5(record_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2249, 2249), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("record_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "record_lt", 1, - AddBuiltinFunc(_0(2983), _1("record_lt"), _2(2), _3(true), _4(false), _5(record_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2249, 2249), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("record_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2983), _1("record_lt"), _2(2), _3(true), _4(false), _5(record_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2249, 2249), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("record_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "record_ne", 1, - AddBuiltinFunc(_0(2982), _1("record_ne"), _2(2), _3(true), _4(false), _5(record_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2249, 2249), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("record_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2982), _1("record_ne"), _2(2), _3(true), _4(false), _5(record_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2249, 2249), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("record_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "record_out", 1, - AddBuiltinFunc(_0(2291), _1("record_out"), _2(1), _3(true), _4(false), _5(record_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2249), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("record_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2291), _1("record_out"), _2(1), _3(true), _4(false), _5(record_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2249), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("record_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "record_recv", 1, - AddBuiltinFunc(_0(2402), _1("record_recv"), _2(3), _3(true), _4(false), _5(record_recv), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 2281, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("record_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2402), _1("record_recv"), _2(3), _3(true), _4(false), _5(record_recv), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 2281, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("record_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "record_send", 1, - AddBuiltinFunc(_0(2403), _1("record_send"), _2(1), _3(true), _4(false), _5(record_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2249), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("record_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2403), _1("record_send"), _2(1), _3(true), _4(false), _5(record_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2249), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("record_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regclass", 1, - AddBuiltinFunc(_0(1079), _1("regclass"), _2(1), _3(true), _4(false), _5(text_regclass), _6(2205), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_regclass"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1079), _1("regclass"), _2(1), _3(true), _4(false), _5(text_regclass), _6(2205), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_regclass"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert text to regclass"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regclassin", 1, - AddBuiltinFunc(_0(2218), _1("regclassin"), _2(1), _3(true), _4(false), _5(regclassin), _6(2205), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regclassin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2218), _1("regclassin"), _2(1), _3(true), _4(false), _5(regclassin), _6(2205), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regclassin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regclassout", 1, - AddBuiltinFunc(_0(2219), _1("regclassout"), _2(1), _3(true), _4(false), _5(regclassout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2205), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regclassout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2219), _1("regclassout"), _2(1), _3(true), _4(false), _5(regclassout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2205), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regclassout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regclassrecv", 1, - AddBuiltinFunc(_0(2452), _1("regclassrecv"), _2(1), _3(true), _4(false), _5(regclassrecv), _6(2205), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regclassrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2452), _1("regclassrecv"), _2(1), _3(true), _4(false), _5(regclassrecv), _6(2205), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regclassrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regclasssend", 1, - AddBuiltinFunc(_0(2453), _1("regclasssend"), _2(1), _3(true), _4(false), _5(regclasssend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2205), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regclasssend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2453), _1("regclasssend"), _2(1), _3(true), _4(false), _5(regclasssend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2205), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regclasssend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regconfigin", 1, - AddBuiltinFunc(_0(3736), _1("regconfigin"), _2(1), _3(true), _4(false), _5(regconfigin), _6(3734), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regconfigin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3736), _1("regconfigin"), _2(1), _3(true), _4(false), _5(regconfigin), _6(3734), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regconfigin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regconfigout", 1, - AddBuiltinFunc(_0(3737), _1("regconfigout"), _2(1), _3(true), _4(false), _5(regconfigout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 3734), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regconfigout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3737), _1("regconfigout"), _2(1), _3(true), _4(false), _5(regconfigout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 3734), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regconfigout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regconfigrecv", 1, - AddBuiltinFunc(_0(3738), _1("regconfigrecv"), _2(1), _3(true), _4(false), _5(regconfigrecv), _6(3734), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regconfigrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3738), _1("regconfigrecv"), _2(1), _3(true), _4(false), _5(regconfigrecv), _6(3734), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regconfigrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regconfigsend", 1, - AddBuiltinFunc(_0(3739), _1("regconfigsend"), _2(1), _3(true), _4(false), _5(regconfigsend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3734), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regconfigsend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3739), _1("regconfigsend"), _2(1), _3(true), _4(false), _5(regconfigsend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3734), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regconfigsend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regdictionaryin", 1, - AddBuiltinFunc(_0(3771), _1("regdictionaryin"), _2(1), _3(true), _4(false), _5(regdictionaryin), _6(3769), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regdictionaryin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3771), _1("regdictionaryin"), _2(1), _3(true), _4(false), _5(regdictionaryin), _6(3769), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regdictionaryin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regdictionaryout", 1, - AddBuiltinFunc(_0(3772), _1("regdictionaryout"), _2(1), _3(true), _4(false), _5(regdictionaryout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 3769), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regdictionaryout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3772), _1("regdictionaryout"), _2(1), _3(true), _4(false), _5(regdictionaryout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 3769), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regdictionaryout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regdictionaryrecv", 1, - AddBuiltinFunc(_0(3773), _1("regdictionaryrecv"), _2(1), _3(true), _4(false), _5(regdictionaryrecv), _6(3769), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regdictionaryrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3773), _1("regdictionaryrecv"), _2(1), _3(true), _4(false), _5(regdictionaryrecv), _6(3769), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regdictionaryrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regdictionarysend", 1, - AddBuiltinFunc(_0(3774), _1("regdictionarysend"), _2(1), _3(true), _4(false), _5(regdictionarysend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3769), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regdictionarysend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3774), _1("regdictionarysend"), _2(1), _3(true), _4(false), _5(regdictionarysend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3769), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regdictionarysend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regexeqjoinsel", 1, - AddBuiltinFunc(_0(1824), _1("regexeqjoinsel"), _2(5), _3(true), _4(false), _5(regexeqjoinsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(5, 2281, 26, 2281, 21, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regexeqjoinsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1824), _1("regexeqjoinsel"), _2(5), _3(true), _4(false), _5(regexeqjoinsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(5, 2281, 26, 2281, 21, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regexeqjoinsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("join selectivity of regex match"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regexeqsel", 1, - AddBuiltinFunc(_0(1818), _1("regexeqsel"), _2(4), _3(true), _4(false), _5(regexeqsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 2281, 26, 2281, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regexeqsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1818), _1("regexeqsel"), _2(4), _3(true), _4(false), _5(regexeqsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 2281, 26, 2281, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regexeqsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regexnejoinsel", 1, - AddBuiltinFunc(_0(1827), _1("regexnejoinsel"), _2(5), _3(true), _4(false), _5(regexnejoinsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(5, 2281, 26, 2281, 21, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regexnejoinsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1827), _1("regexnejoinsel"), _2(5), _3(true), _4(false), _5(regexnejoinsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(5, 2281, 26, 2281, 21, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regexnejoinsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("join selectivity of regex non-match"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regexnesel", 1, - AddBuiltinFunc(_0(1821), _1("regexnesel"), _2(4), _3(true), _4(false), _5(regexnesel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 2281, 26, 2281, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regexnesel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1821), _1("regexnesel"), _2(4), _3(true), _4(false), _5(regexnesel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 2281, 26, 2281, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regexnesel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("restriction selectivity of regex non-match"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regexp_matches", 2, - AddBuiltinFunc(_0(2763), _1("regexp_matches"), _2(2), _3(true), _4(true), _5(regexp_matches_no_flags), _6(1009), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regexp_matches_no_flags"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2764), _1("regexp_matches"), _2(3), _3(true), _4(true), _5(regexp_matches), _6(1009), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regexp_matches"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2763), _1("regexp_matches"), _2(2), _3(true), _4(true), _5(regexp_matches_no_flags), _6(1009), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regexp_matches_no_flags"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("find match(es) for regexp"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2764), _1("regexp_matches"), _2(3), _3(true), _4(true), _5(regexp_matches), _6(1009), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(10), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regexp_matches"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("find match(es) for regexp"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regexp_replace", 2, - AddBuiltinFunc(_0(2284), _1("regexp_replace"), _2(3), _3(false), _4(false), _5(textregexreplace_noopt), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textregexreplace_noopt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2285), _1("regexp_replace"), _2(4), _3(false), _4(false), _5(textregexreplace), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 25, 25, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textregexreplace"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2284), _1("regexp_replace"), _2(3), _3(false), _4(false), _5(textregexreplace_noopt), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textregexreplace_noopt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("replace text using regexp"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2285), _1("regexp_replace"), _2(4), _3(false), _4(false), _5(textregexreplace), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 25, 25, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textregexreplace"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("replace text using regexp"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regexp_split_to_array", 2, - AddBuiltinFunc(_0(2767), _1("regexp_split_to_array"), _2(2), _3(true), _4(false), _5(regexp_split_to_array_no_flags), _6(1009), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regexp_split_to_array_no_flags"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2768), _1("regexp_split_to_array"), _2(3), _3(true), _4(false), _5(regexp_split_to_array), _6(1009), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regexp_split_to_array"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2767), _1("regexp_split_to_array"), _2(2), _3(true), _4(false), _5(regexp_split_to_array_no_flags), _6(1009), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regexp_split_to_array_no_flags"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("split string by pattern"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2768), _1("regexp_split_to_array"), _2(3), _3(true), _4(false), _5(regexp_split_to_array), _6(1009), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regexp_split_to_array"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("split string by pattern"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regexp_split_to_table", 2, - AddBuiltinFunc(_0(2765), _1("regexp_split_to_table"), _2(2), _3(true), _4(true), _5(regexp_split_to_table_no_flags), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regexp_split_to_table_no_flags"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2766), _1("regexp_split_to_table"), _2(3), _3(true), _4(true), _5(regexp_split_to_table), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regexp_split_to_table"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2765), _1("regexp_split_to_table"), _2(2), _3(true), _4(true), _5(regexp_split_to_table_no_flags), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regexp_split_to_table_no_flags"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("split string by pattern"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2766), _1("regexp_split_to_table"), _2(3), _3(true), _4(true), _5(regexp_split_to_table), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regexp_split_to_table"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("split string by pattern"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regoperatorin", 1, - AddBuiltinFunc(_0(2216), _1("regoperatorin"), _2(1), _3(true), _4(false), _5(regoperatorin), _6(2204), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regoperatorin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2216), _1("regoperatorin"), _2(1), _3(true), _4(false), _5(regoperatorin), _6(2204), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regoperatorin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regoperatorout", 1, - AddBuiltinFunc(_0(2217), _1("regoperatorout"), _2(1), _3(true), _4(false), _5(regoperatorout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2204), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regoperatorout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2217), _1("regoperatorout"), _2(1), _3(true), _4(false), _5(regoperatorout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2204), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regoperatorout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regoperatorrecv", 1, - AddBuiltinFunc(_0(2450), _1("regoperatorrecv"), _2(1), _3(true), _4(false), _5(regoperatorrecv), _6(2204), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regoperatorrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2450), _1("regoperatorrecv"), _2(1), _3(true), _4(false), _5(regoperatorrecv), _6(2204), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regoperatorrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regoperatorsend", 1, - AddBuiltinFunc(_0(2451), _1("regoperatorsend"), _2(1), _3(true), _4(false), _5(regoperatorsend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2204), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regoperatorsend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2451), _1("regoperatorsend"), _2(1), _3(true), _4(false), _5(regoperatorsend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2204), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regoperatorsend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regoperin", 1, - AddBuiltinFunc(_0(2214), _1("regoperin"), _2(1), _3(true), _4(false), _5(regoperin), _6(2203), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regoperin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2214), _1("regoperin"), _2(1), _3(true), _4(false), _5(regoperin), _6(2203), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regoperin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regoperout", 1, - AddBuiltinFunc(_0(2215), _1("regoperout"), _2(1), _3(true), _4(false), _5(regoperout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2203), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regoperout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2215), _1("regoperout"), _2(1), _3(true), _4(false), _5(regoperout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2203), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regoperout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regoperrecv", 1, - AddBuiltinFunc(_0(2448), _1("regoperrecv"), _2(1), _3(true), _4(false), _5(regoperrecv), _6(2203), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regoperrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2448), _1("regoperrecv"), _2(1), _3(true), _4(false), _5(regoperrecv), _6(2203), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regoperrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regopersend", 1, - AddBuiltinFunc(_0(2449), _1("regopersend"), _2(1), _3(true), _4(false), _5(regopersend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2203), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regopersend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2449), _1("regopersend"), _2(1), _3(true), _4(false), _5(regopersend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2203), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regopersend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regprocedurein", 1, - AddBuiltinFunc(_0(2212), _1("regprocedurein"), _2(1), _3(true), _4(false), _5(regprocedurein), _6(2202), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regprocedurein"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2212), _1("regprocedurein"), _2(1), _3(true), _4(false), _5(regprocedurein), _6(2202), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regprocedurein"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regprocedureout", 1, - AddBuiltinFunc(_0(2213), _1("regprocedureout"), _2(1), _3(true), _4(false), _5(regprocedureout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2202), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regprocedureout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2213), _1("regprocedureout"), _2(1), _3(true), _4(false), _5(regprocedureout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2202), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regprocedureout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regprocedurerecv", 1, - AddBuiltinFunc(_0(2446), _1("regprocedurerecv"), _2(1), _3(true), _4(false), _5(regprocedurerecv), _6(2202), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regprocedurerecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2446), _1("regprocedurerecv"), _2(1), _3(true), _4(false), _5(regprocedurerecv), _6(2202), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regprocedurerecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regproceduresend", 1, - AddBuiltinFunc(_0(2447), _1("regproceduresend"), _2(1), _3(true), _4(false), _5(regproceduresend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2202), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regproceduresend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2447), _1("regproceduresend"), _2(1), _3(true), _4(false), _5(regproceduresend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2202), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regproceduresend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regprocin", 1, - AddBuiltinFunc(_0(44), _1("regprocin"), _2(1), _3(true), _4(false), _5(regprocin), _6(24), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regprocin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(44), _1("regprocin"), _2(1), _3(true), _4(false), _5(regprocin), _6(24), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regprocin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regprocout", 1, - AddBuiltinFunc(_0(45), _1("regprocout"), _2(1), _3(true), _4(false), _5(regprocout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 24), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regprocout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(45), _1("regprocout"), _2(1), _3(true), _4(false), _5(regprocout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 24), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regprocout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regprocrecv", 1, - AddBuiltinFunc(_0(2444), _1("regprocrecv"), _2(1), _3(true), _4(false), _5(regprocrecv), _6(24), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regprocrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2444), _1("regprocrecv"), _2(1), _3(true), _4(false), _5(regprocrecv), _6(24), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regprocrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regprocsend", 1, - AddBuiltinFunc(_0(2445), _1("regprocsend"), _2(1), _3(true), _4(false), _5(regprocsend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 24), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regprocsend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2445), _1("regprocsend"), _2(1), _3(true), _4(false), _5(regprocsend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 24), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regprocsend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regr_avgx", 1, - AddBuiltinFunc(_0(2822), _1("regr_avgx"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2822), _1("regr_avgx"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regr_avgy", 1, - AddBuiltinFunc(_0(2823), _1("regr_avgy"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2823), _1("regr_avgy"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regr_count", 1, - AddBuiltinFunc(_0(2818), _1("regr_count"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2818), _1("regr_count"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regr_intercept", 1, - AddBuiltinFunc(_0(2826), _1("regr_intercept"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2826), _1("regr_intercept"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regr_r2", 1, - AddBuiltinFunc(_0(2824), _1("regr_r2"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2824), _1("regr_r2"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regr_slope", 1, - AddBuiltinFunc(_0(2825), _1("regr_slope"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2825), _1("regr_slope"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regr_sxx", 1, - AddBuiltinFunc(_0(2819), _1("regr_sxx"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2819), _1("regr_sxx"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regr_sxy", 1, - AddBuiltinFunc(_0(2821), _1("regr_sxy"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2821), _1("regr_sxy"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regr_syy", 1, - AddBuiltinFunc(_0(2820), _1("regr_syy"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2820), _1("regr_syy"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regtypein", 1, - AddBuiltinFunc(_0(2220), _1("regtypein"), _2(1), _3(true), _4(false), _5(regtypein), _6(2206), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regtypein"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2220), _1("regtypein"), _2(1), _3(true), _4(false), _5(regtypein), _6(2206), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regtypein"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regtypeout", 1, - AddBuiltinFunc(_0(2221), _1("regtypeout"), _2(1), _3(true), _4(false), _5(regtypeout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2206), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regtypeout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2221), _1("regtypeout"), _2(1), _3(true), _4(false), _5(regtypeout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2206), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regtypeout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regtyperecv", 1, - AddBuiltinFunc(_0(2454), _1("regtyperecv"), _2(1), _3(true), _4(false), _5(regtyperecv), _6(2206), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regtyperecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2454), _1("regtyperecv"), _2(1), _3(true), _4(false), _5(regtyperecv), _6(2206), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regtyperecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "regtypesend", 1, - AddBuiltinFunc(_0(2455), _1("regtypesend"), _2(1), _3(true), _4(false), _5(regtypesend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2206), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regtypesend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2455), _1("regtypesend"), _2(1), _3(true), _4(false), _5(regtypesend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2206), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("regtypesend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "reltime", 1, - AddBuiltinFunc(_0(1194), _1("reltime"), _2(1), _3(true), _4(false), _5(interval_reltime), _6(703), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_reltime"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1194), _1("reltime"), _2(1), _3(true), _4(false), _5(interval_reltime), _6(703), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_reltime"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "reltimeeq", 1, - AddBuiltinFunc(_0(257), _1("reltimeeq"), _2(2), _3(true), _4(false), _5(reltimeeq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 703, 703), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("reltimeeq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(257), _1("reltimeeq"), _2(2), _3(true), _4(false), _5(reltimeeq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 703, 703), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("reltimeeq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "reltimege", 1, - AddBuiltinFunc(_0(262), _1("reltimege"), _2(2), _3(true), _4(false), _5(reltimege), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 703, 703), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("reltimege"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(262), _1("reltimege"), _2(2), _3(true), _4(false), _5(reltimege), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 703, 703), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("reltimege"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "reltimegt", 1, - AddBuiltinFunc(_0(260), _1("reltimegt"), _2(2), _3(true), _4(false), _5(reltimegt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 703, 703), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("reltimegt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(260), _1("reltimegt"), _2(2), _3(true), _4(false), _5(reltimegt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 703, 703), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("reltimegt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "reltimein", 1, - AddBuiltinFunc(_0(RELTIMEINFUNCOID), _1("reltimein"), _2(1), _3(true), _4(false), _5(reltimein), _6(703), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("reltimein"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(RELTIMEINFUNCOID), _1("reltimein"), _2(1), _3(true), _4(false), _5(reltimein), _6(703), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("reltimein"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "reltimele", 1, - AddBuiltinFunc(_0(261), _1("reltimele"), _2(2), _3(true), _4(false), _5(reltimele), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 703, 703), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("reltimele"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(261), _1("reltimele"), _2(2), _3(true), _4(false), _5(reltimele), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 703, 703), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("reltimele"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "reltimelt", 1, - AddBuiltinFunc(_0(259), _1("reltimelt"), _2(2), _3(true), _4(false), _5(reltimelt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 703, 703), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("reltimelt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(259), _1("reltimelt"), _2(2), _3(true), _4(false), _5(reltimelt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 703, 703), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("reltimelt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "reltimene", 1, - AddBuiltinFunc(_0(258), _1("reltimene"), _2(2), _3(true), _4(false), _5(reltimene), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 703, 703), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("reltimene"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(258), _1("reltimene"), _2(2), _3(true), _4(false), _5(reltimene), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 703, 703), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("reltimene"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "reltimeout", 1, - AddBuiltinFunc(_0(RELTIMEOUTFUNCOID), _1("reltimeout"), _2(1), _3(true), _4(false), _5(reltimeout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 703), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("reltimeout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(RELTIMEOUTFUNCOID), _1("reltimeout"), _2(1), _3(true), _4(false), _5(reltimeout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 703), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("reltimeout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "reltimerecv", 1, - AddBuiltinFunc(_0(2464), _1("reltimerecv"), _2(1), _3(true), _4(false), _5(reltimerecv), _6(703), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("reltimerecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2464), _1("reltimerecv"), _2(1), _3(true), _4(false), _5(reltimerecv), _6(703), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("reltimerecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "reltimesend", 1, - AddBuiltinFunc(_0(2465), _1("reltimesend"), _2(1), _3(true), _4(false), _5(reltimesend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 703), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("reltimesend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2465), _1("reltimesend"), _2(1), _3(true), _4(false), _5(reltimesend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 703), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("reltimesend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "remote_bgwriter_stat", 1, - AddBuiltinFunc(_0(4374), _1("remote_bgwriter_stat"), _2(0), _3(false), _4(true), _5(remote_bgwriter_stat), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(6, 25, 20, 23, 23, 20, 20), _22(6, 'o', 'o', 'o', 'o', 'o', 'o'), _23(6, "node_name", "bgwr_actual_flush_total_num", "bgwr_last_flush_num", "candidate_slots", "get_buffer_from_list", "get_buf_clock_sweep"), _24(NULL), _25("remote_bgwriter_stat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4374), _1("remote_bgwriter_stat"), _2(0), _3(false), _4(true), _5(remote_bgwriter_stat), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(6, 25, 20, 23, 23, 20, 20), _22(6, 'o', 'o', 'o', 'o', 'o', 'o'), _23(6, "node_name", "bgwr_actual_flush_total_num", "bgwr_last_flush_num", "candidate_slots", "get_buffer_from_list", "get_buf_clock_sweep"), _24(NULL), _25("remote_bgwriter_stat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "remote_candidate_stat", 1, + AddBuiltinFunc(_0(4386), _1("remote_candidate_stat"), _2(0), _3(false), _4(true), _5(remote_candidate_stat), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(7, 25, 23, 20, 20, 23, 20, 20), _22(7, 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(7, "node_name", "candidate_slots", "get_buf_from_list", "get_buf_clock_sweep", "seg_candidate_slots", "seg_get_buf_from_list", "seg_get_buf_clock_sweep"), _24(NULL), _25("remote_candidate_stat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "remote_ckpt_stat", 1, - AddBuiltinFunc(_0(4372), _1("remote_ckpt_stat"), _2(0), _3(false), _4(true), _5(remote_ckpt_stat), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(7, 25, 25, 20, 20, 20, 20, 20), _22(7, 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(7, "node_name", "ckpt_redo_point", "ckpt_clog_flush_num", "ckpt_csnlog_flush_num", "ckpt_multixact_flush_num", "ckpt_predicate_flush_num", "ckpt_twophase_flush_num"), _24(NULL), _25("remote_ckpt_stat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4372), _1("remote_ckpt_stat"), _2(0), _3(false), _4(true), _5(remote_ckpt_stat), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(7, 25, 25, 20, 20, 20, 20, 20), _22(7, 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(7, "node_name", "ckpt_redo_point", "ckpt_clog_flush_num", "ckpt_csnlog_flush_num", "ckpt_multixact_flush_num", "ckpt_predicate_flush_num", "ckpt_twophase_flush_num"), _24(NULL), _25("remote_ckpt_stat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "remote_double_write_stat", 1, - AddBuiltinFunc(_0(4385), _1("remote_double_write_stat"), _2(0), _3(false), _4(true), _5(remote_double_write_stat), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(11, 25, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20), _22(11, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(11, "node_name", "curr_dwn", "curr_start_page", "file_trunc_num", "file_reset_num", "total_writes", "low_threshold_writes", "high_threshold_writes", "total_pages", "low_threshold_pages", "high_threshold_pages"), _24(NULL), _25("remote_double_write_stat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4385), _1("remote_double_write_stat"), _2(0), _3(false), _4(true), _5(remote_double_write_stat), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(11, 25, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20), _22(11, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(11, "node_name", "curr_dwn", "curr_start_page", "file_trunc_num", "file_reset_num", "total_writes", "low_threshold_writes", "high_threshold_writes", "total_pages", "low_threshold_pages", "high_threshold_pages"), _24(NULL), _25("remote_double_write_stat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "remote_pagewriter_stat", 1, - AddBuiltinFunc(_0(4368), _1("remote_pagewriter_stat"), _2(0), _3(false), _4(true), _5(remote_pagewriter_stat), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(8, 25, 20, 23, 20, 25, 25, 25, 25), _22(8, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(8, "node_name", "pgwr_actual_flush_total_num", "pgwr_last_flush_num", "remain_dirty_page_num", "queue_head_page_rec_lsn", "queue_rec_lsn", "current_xlog_insert_lsn", "ckpt_redo_point"), _24(NULL), _25("remote_pagewriter_stat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4368), _1("remote_pagewriter_stat"), _2(0), _3(false), _4(true), _5(remote_pagewriter_stat), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(8, 25, 20, 23, 20, 25, 25, 25, 25), _22(8, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(8, "node_name", "pgwr_actual_flush_total_num", "pgwr_last_flush_num", "remain_dirty_page_num", "queue_head_page_rec_lsn", "queue_rec_lsn", "current_xlog_insert_lsn", "ckpt_redo_point"), _24(NULL), _25("remote_pagewriter_stat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "remote_recovery_status", 1, - AddBuiltinFunc(_0(4999), _1("remote_recovery_status"), _2(0), _3(false), _4(true), _5(remote_recovery_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(9,25,25,25,23,25,23,20,20,20), _22(9, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(9, "node_name", "standby_node_name", "source_ip", "source_port", "dest_ip", "dest_port", "current_rto", "target_rto", "current_sleep_time"), _24(NULL), _25("remote_recovery_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4999), _1("remote_recovery_status"), _2(0), _3(false), _4(true), _5(remote_recovery_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(9,25,25,25,23,25,23,20,20,20), _22(9, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(9, "node_name", "standby_node_name", "source_ip", "source_port", "dest_ip", "dest_port", "current_rto", "target_rto", "current_sleep_time"), _24(NULL), _25("remote_recovery_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "remote_redo_stat", 1, - AddBuiltinFunc(_0(4389), _1("remote_redo_stat"), _2(0), _3(false), _4(true), _5(remote_redo_stat), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(23, 25, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 25), _22(23, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(23, "node_name", "redo_start_ptr", "redo_start_time", "redo_done_time", "curr_time", "min_recovery_point", "read_ptr", "last_replayed_read_ptr", "recovery_done_ptr", "read_xlog_io_counter", "read_xlog_io_total_dur", "read_data_io_counter", "read_data_io_total_dur", "write_data_io_counter", "write_data_io_total_dur", "process_pending_counter", "process_pending_total_dur", "apply_counter", "apply_total_dur", "speed", "local_max_ptr", "primary_flush_ptr", "worker_info"), _24(NULL), _25("remote_redo_stat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4389), _1("remote_redo_stat"), _2(0), _3(false), _4(true), _5(remote_redo_stat), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(23, 25, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 25), _22(23, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(23, "node_name", "redo_start_ptr", "redo_start_time", "redo_done_time", "curr_time", "min_recovery_point", "read_ptr", "last_replayed_read_ptr", "recovery_done_ptr", "read_xlog_io_counter", "read_xlog_io_total_dur", "read_data_io_counter", "read_data_io_total_dur", "write_data_io_counter", "write_data_io_total_dur", "process_pending_counter", "process_pending_total_dur", "apply_counter", "apply_total_dur", "speed", "local_max_ptr", "primary_flush_ptr", "worker_info"), _24(NULL), _25("remote_redo_stat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "remote_rto_stat", 1, - AddBuiltinFunc(_0(4789), _1("remote_rto_stat"), _2(0), _3(false), _4(true), _5(remote_rto_stat), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(2,25,25), _22(2, 'o', 'o'), _23(2, "node_name", "rto_info"), _24(NULL), _25("remote_rto_stat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4789), _1("remote_rto_stat"), _2(0), _3(false), _4(true), _5(remote_rto_stat), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(2,25,25), _22(2, 'o', 'o'), _23(2, "node_name", "rto_info"), _24(NULL), _25("remote_rto_stat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "remote_single_flush_dw_stat", 1, - AddBuiltinFunc(_0(4376), _1("remote_single_flush_dw_stat"), _2(0), _3(false), _4(true), _5(remote_single_flush_dw_stat), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(6, 25, 23, 23, 20, 20, 20), _22(6, 'o', 'o', 'o', 'o', 'o', 'o'), _23(6, "node_name", "curr_dwn", "curr_start_page", "total_writes", "file_trunc_num", "file_reset_num"), _24(NULL), _25("remote_single_flush_dw_stat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4376), _1("remote_single_flush_dw_stat"), _2(0), _3(false), _4(true), _5(remote_single_flush_dw_stat), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(6, 25, 25, 25, 25, 25, 25), _22(6, 'o', 'o', 'o', 'o', 'o', 'o'), _23(6, "node_name", "curr_dwn", "curr_start_page", "total_writes", "file_trunc_num", "file_reset_num"), _24(NULL), _25("remote_single_flush_dw_stat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "repeat", 1, - AddBuiltinFunc(_0(1622), _1("repeat"), _2(2), _3(true), _4(false), _5(repeat), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("repeat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1622), _1("repeat"), _2(2), _3(true), _4(false), _5(repeat), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("repeat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("replicate string n times"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( - "replace", 1, - AddBuiltinFunc(_0(2087), _1("replace"), _2(3), _3(false), _4(false), _5(replace_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("replace_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + "replace", 2, + AddBuiltinFunc(_0(2087), _1("replace"), _2(3), _3(false), _4(false), _5(replace_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("replace_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("replace all occurrences in string of old_substr with new_substr"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2187), _1("replace"), _2(2), _3(false), _4(false), _5(replace_text_with_two_args), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("replace_text_with_two_args"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "reset_unique_sql", 1, - AddBuiltinFunc(_0(5716), _1("reset_unique_sql"), _2(3), _3(true), _4(false), _5(reset_unique_sql), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 25, 25, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("reset_unique_sql"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5716), _1("reset_unique_sql"), _2(3), _3(true), _4(false), _5(reset_unique_sql), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 25, 25, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("reset_unique_sql"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "reverse", 1, - AddBuiltinFunc(_0(3062), _1("reverse"), _2(1), _3(true), _4(false), _5(text_reverse), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_reverse"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3062), _1("reverse"), _2(1), _3(true), _4(false), _5(text_reverse), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_reverse"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("reverse text"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "run", 1, - AddBuiltinFunc(_0(7803), _1("run"), _2(0), _3(true), _4(false), _5(run), _6(16), _7(PG_SQLADVISOR_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("run"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(7803), _1("run"), _2(0), _3(true), _4(false), _5(run), _6(16), _7(PG_SQLADVISOR_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("run"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "RI_FKey_cascade_del", 1, - AddBuiltinFunc(_0(1646), _1("RI_FKey_cascade_del"), _2(0), _3(true), _4(false), _5(RI_FKey_cascade_del), _6(2279), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("RI_FKey_cascade_del"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1646), _1("RI_FKey_cascade_del"), _2(0), _3(true), _4(false), _5(RI_FKey_cascade_del), _6(2279), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("RI_FKey_cascade_del"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "RI_FKey_cascade_upd", 1, - AddBuiltinFunc(_0(1647), _1("RI_FKey_cascade_upd"), _2(0), _3(true), _4(false), _5(RI_FKey_cascade_upd), _6(2279), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("RI_FKey_cascade_upd"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1647), _1("RI_FKey_cascade_upd"), _2(0), _3(true), _4(false), _5(RI_FKey_cascade_upd), _6(2279), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("RI_FKey_cascade_upd"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "RI_FKey_check_ins", 1, - AddBuiltinFunc(_0(1644), _1("RI_FKey_check_ins"), _2(0), _3(true), _4(false), _5(RI_FKey_check_ins), _6(2279), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("RI_FKey_check_ins"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1644), _1("RI_FKey_check_ins"), _2(0), _3(true), _4(false), _5(RI_FKey_check_ins), _6(2279), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("RI_FKey_check_ins"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "RI_FKey_check_upd", 1, - AddBuiltinFunc(_0(1645), _1("RI_FKey_check_upd"), _2(0), _3(true), _4(false), _5(RI_FKey_check_upd), _6(2279), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("RI_FKey_check_upd"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1645), _1("RI_FKey_check_upd"), _2(0), _3(true), _4(false), _5(RI_FKey_check_upd), _6(2279), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("RI_FKey_check_upd"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "RI_FKey_noaction_del", 1, - AddBuiltinFunc(_0(1654), _1("RI_FKey_noaction_del"), _2(0), _3(true), _4(false), _5(RI_FKey_noaction_del), _6(2279), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("RI_FKey_noaction_del"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1654), _1("RI_FKey_noaction_del"), _2(0), _3(true), _4(false), _5(RI_FKey_noaction_del), _6(2279), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("RI_FKey_noaction_del"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "RI_FKey_noaction_upd", 1, - AddBuiltinFunc(_0(1655), _1("RI_FKey_noaction_upd"), _2(0), _3(true), _4(false), _5(RI_FKey_noaction_upd), _6(2279), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("RI_FKey_noaction_upd"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1655), _1("RI_FKey_noaction_upd"), _2(0), _3(true), _4(false), _5(RI_FKey_noaction_upd), _6(2279), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("RI_FKey_noaction_upd"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "RI_FKey_restrict_del", 1, - AddBuiltinFunc(_0(1648), _1("RI_FKey_restrict_del"), _2(0), _3(true), _4(false), _5(RI_FKey_restrict_del), _6(2279), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("RI_FKey_restrict_del"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1648), _1("RI_FKey_restrict_del"), _2(0), _3(true), _4(false), _5(RI_FKey_restrict_del), _6(2279), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("RI_FKey_restrict_del"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "RI_FKey_restrict_upd", 1, - AddBuiltinFunc(_0(1649), _1("RI_FKey_restrict_upd"), _2(0), _3(true), _4(false), _5(RI_FKey_restrict_upd), _6(2279), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("RI_FKey_restrict_upd"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1649), _1("RI_FKey_restrict_upd"), _2(0), _3(true), _4(false), _5(RI_FKey_restrict_upd), _6(2279), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("RI_FKey_restrict_upd"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "RI_FKey_setdefault_del", 1, - AddBuiltinFunc(_0(1652), _1("RI_FKey_setdefault_del"), _2(0), _3(true), _4(false), _5(RI_FKey_setdefault_del), _6(2279), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("RI_FKey_setdefault_del"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1652), _1("RI_FKey_setdefault_del"), _2(0), _3(true), _4(false), _5(RI_FKey_setdefault_del), _6(2279), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("RI_FKey_setdefault_del"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "RI_FKey_setdefault_upd", 1, - AddBuiltinFunc(_0(1653), _1("RI_FKey_setdefault_upd"), _2(0), _3(true), _4(false), _5(RI_FKey_setdefault_upd), _6(2279), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("RI_FKey_setdefault_upd"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1653), _1("RI_FKey_setdefault_upd"), _2(0), _3(true), _4(false), _5(RI_FKey_setdefault_upd), _6(2279), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("RI_FKey_setdefault_upd"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "RI_FKey_setnull_del", 1, - AddBuiltinFunc(_0(1650), _1("RI_FKey_setnull_del"), _2(0), _3(true), _4(false), _5(RI_FKey_setnull_del), _6(2279), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("RI_FKey_setnull_del"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1650), _1("RI_FKey_setnull_del"), _2(0), _3(true), _4(false), _5(RI_FKey_setnull_del), _6(2279), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("RI_FKey_setnull_del"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "RI_FKey_setnull_upd", 1, - AddBuiltinFunc(_0(1651), _1("RI_FKey_setnull_upd"), _2(0), _3(true), _4(false), _5(RI_FKey_setnull_upd), _6(2279), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("RI_FKey_setnull_upd"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1651), _1("RI_FKey_setnull_upd"), _2(0), _3(true), _4(false), _5(RI_FKey_setnull_upd), _6(2279), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("RI_FKey_setnull_upd"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "right", 1, - AddBuiltinFunc(_0(3061), _1("right"), _2(2), _3(true), _4(false), _5(text_right), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_right"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3061), _1("right"), _2(2), _3(true), _4(false), _5(text_right), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_right"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("extract the last n characters"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "round", 3, - AddBuiltinFunc(_0(1342), _1("round"), _2(1), _3(true), _4(false), _5(dround), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dround"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1707), _1("round"), _2(2), _3(true), _4(false), _5(numeric_round), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_round"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1708), _1("round"), _2(1), _3(true), _4(false), _5(NULL), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.round($1,0)"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1342), _1("round"), _2(1), _3(true), _4(false), _5(dround), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dround"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("round to nearest integer"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1707), _1("round"), _2(2), _3(true), _4(false), _5(numeric_round), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_round"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("value rounded to \'scale\'"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1708), _1("round"), _2(1), _3(true), _4(false), _5(NULL), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.round($1,0)"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("value rounded to \'scale\' of zero"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "row_number", 1, - AddBuiltinFunc(_0(ROWNUMBERFUNCOID), _1("row_number"), _2(0), _3(false), _4(false), _5(window_row_number), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(true), _16(false), _17(false), _18('i'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("window_row_number"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(ROWNUMBERFUNCOID), _1("row_number"), _2(0), _3(false), _4(false), _5(window_row_number), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(true), _16(false), _17(false), _18('i'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("window_row_number"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("row number within partition"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "row_to_json", 2, - AddBuiltinFunc(_0(3155), _1("row_to_json"), _2(1), _3(true), _4(false), _5(row_to_json), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2249), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("row_to_json"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3156), _1("row_to_json"), _2(2), _3(true), _4(false), _5(row_to_json_pretty), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 2249, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("row_to_json_pretty"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3155), _1("row_to_json"), _2(1), _3(true), _4(false), _5(row_to_json), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2249), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("row_to_json"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("map row to json"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3156), _1("row_to_json"), _2(2), _3(true), _4(false), _5(row_to_json_pretty), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 2249, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("row_to_json_pretty"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("map row to json with optional pretty printing"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "rpad", 2, - AddBuiltinFunc(_0(RPADFUNCOID), _1("rpad"), _2(3), _3(true), _4(false), _5(rpad), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 23, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("rpad"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(RPADPARAFUNCOID), _1("rpad"), _2(2), _3(true), _4(false), _5(NULL), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.rpad($1, $2, ' ')"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(RPADFUNCOID), _1("rpad"), _2(3), _3(true), _4(false), _5(rpad), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 23, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("rpad"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("right-pad string to length"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(RPADPARAFUNCOID), _1("rpad"), _2(2), _3(true), _4(false), _5(NULL), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.rpad($1, $2, ' ')"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "rtrim", 2, - AddBuiltinFunc(_0(RTRIMFUNCOID), _1("rtrim"), _2(2), _3(true), _4(false), _5(rtrim), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("rtrim"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(RTRIMPARAFUNCOID), _1("rtrim"), _2(1), _3(true), _4(false), _5(rtrim1), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("rtrim1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(RTRIMFUNCOID), _1("rtrim"), _2(2), _3(true), _4(false), _5(rtrim), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("rtrim"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("trim selected characters from right end of string"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(RTRIMPARAFUNCOID), _1("rtrim"), _2(1), _3(true), _4(false), _5(rtrim1), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("rtrim1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("trim spaces from right end of string"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "scalargtjoinsel", 1, - AddBuiltinFunc(_0(108), _1("scalargtjoinsel"), _2(5), _3(true), _4(false), _5(scalargtjoinsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(5, 2281, 26, 2281, 21, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("scalargtjoinsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(108), _1("scalargtjoinsel"), _2(5), _3(true), _4(false), _5(scalargtjoinsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(5, 2281, 26, 2281, 21, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("scalargtjoinsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("join selectivity of > and related operators on scalar datatypes"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "scalargtsel", 1, - AddBuiltinFunc(_0(104), _1("scalargtsel"), _2(4), _3(true), _4(false), _5(scalargtsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 2281, 26, 2281, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("scalargtsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(104), _1("scalargtsel"), _2(4), _3(true), _4(false), _5(scalargtsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 2281, 26, 2281, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("scalargtsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("restriction selectivity of > and related operators on scalar datatypes"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "scalarltjoinsel", 1, - AddBuiltinFunc(_0(107), _1("scalarltjoinsel"), _2(5), _3(true), _4(false), _5(scalarltjoinsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(5, 2281, 26, 2281, 21, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("scalarltjoinsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(107), _1("scalarltjoinsel"), _2(5), _3(true), _4(false), _5(scalarltjoinsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(5, 2281, 26, 2281, 21, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("scalarltjoinsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("join selectivity of < and related operators on scalar datatypes"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "scalarltsel", 1, - AddBuiltinFunc(_0(103), _1("scalarltsel"), _2(4), _3(true), _4(false), _5(scalarltsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 2281, 26, 2281, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("scalarltsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(103), _1("scalarltsel"), _2(4), _3(true), _4(false), _5(scalarltsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 2281, 26, 2281, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("scalarltsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("restriction selectivity of < and related operators on scalar datatypes"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "schema_to_xml", 1, - AddBuiltinFunc(_0(2933), _1("schema_to_xml"), _2(4), _3(false), _4(false), _5(schema_to_xml), _6(142), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(100), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 19, 16, 16, 25), _21(NULL), _22(NULL), _23(4, "schema", "nulls", "tableforest", "targetns"), _24(NULL), _25("schema_to_xml"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2933), _1("schema_to_xml"), _2(4), _3(false), _4(false), _5(schema_to_xml), _6(142), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(100), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 19, 16, 16, 25), _21(NULL), _22(NULL), _23(4, "schema", "nulls", "tableforest", "targetns"), _24(NULL), _25("schema_to_xml"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("map schema contents to XML"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "schema_to_xml_and_xmlschema", 1, - AddBuiltinFunc(_0(2935), _1("schema_to_xml_and_xmlschema"), _2(4), _3(false), _4(false), _5(schema_to_xml_and_xmlschema), _6(142), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(100), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 19, 16, 16, 25), _21(NULL), _22(NULL), _23(4, "schema", "nulls", "tableforest", "targetns"), _24(NULL), _25("schema_to_xml_and_xmlschema"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2935), _1("schema_to_xml_and_xmlschema"), _2(4), _3(false), _4(false), _5(schema_to_xml_and_xmlschema), _6(142), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(100), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 19, 16, 16, 25), _21(NULL), _22(NULL), _23(4, "schema", "nulls", "tableforest", "targetns"), _24(NULL), _25("schema_to_xml_and_xmlschema"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("map schema contents and structure to XML and XML Schema"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "schema_to_xmlschema", 1, - AddBuiltinFunc(_0(2934), _1("schema_to_xmlschema"), _2(4), _3(false), _4(false), _5(schema_to_xmlschema), _6(142), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(100), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 19, 16, 16, 25), _21(NULL), _22(NULL), _23(4, "schema", "nulls", "tableforest", "targetns"), _24(NULL), _25("schema_to_xmlschema"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2934), _1("schema_to_xmlschema"), _2(4), _3(false), _4(false), _5(schema_to_xmlschema), _6(142), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(100), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 19, 16, 16, 25), _21(NULL), _22(NULL), _23(4, "schema", "nulls", "tableforest", "targetns"), _24(NULL), _25("schema_to_xmlschema"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("map schema structure to XML Schema"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "session_user", 1, - AddBuiltinFunc(_0(SESSIONUSERFUNCOID), _1("session_user"), _2(0), _3(true), _4(false), _5(session_user), _6(19), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("session_user"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(SESSIONUSERFUNCOID), _1("session_user"), _2(0), _3(true), _4(false), _5(session_user), _6(19), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("session_user"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("session user name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "sessionid2pid", 1, - AddBuiltinFunc(_0(3978), _1("sessionid2pid"), _2(1), _3(true), _4(false), _5(sessionid_to_pid), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("sessionid_to_pid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3978), _1("sessionid2pid"), _2(1), _3(true), _4(false), _5(sessionid_to_pid), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("sessionid_to_pid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "set_bit", 2, - AddBuiltinFunc(_0(724), _1("set_bit"), _2(3), _3(true), _4(false), _5(byteaSetBit), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 17, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteaSetBit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3033), _1("set_bit"), _2(3), _3(true), _4(false), _5(bitsetbit), _6(1560), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 1560, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitsetbit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(724), _1("set_bit"), _2(3), _3(true), _4(false), _5(byteaSetBit), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 17, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteaSetBit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("set bit"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3033), _1("set_bit"), _2(3), _3(true), _4(false), _5(bitsetbit), _6(1560), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 1560, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitsetbit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("set bit"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "set_byte", 1, - AddBuiltinFunc(_0(722), _1("set_byte"), _2(3), _3(true), _4(false), _5(byteaSetByte), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 17, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteaSetByte"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(722), _1("set_byte"), _2(3), _3(true), _4(false), _5(byteaSetByte), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 17, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("byteaSetByte"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("set byte"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "set_config", 1, - AddBuiltinFunc(_0(2078), _1("set_config"), _2(3), _3(false), _4(false), _5(set_config_by_name), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 25, 25, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("set_config_by_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2078), _1("set_config"), _2(3), _3(false), _4(false), _5(set_config_by_name), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 25, 25, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("set_config_by_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("SET X as a function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "set_cost_params", 1, - AddBuiltinFunc(_0(7809), _1("set_cost_params"), _2(3), _3(true), _4(false), _5(set_cost_params), _6(16), _7(PG_SQLADVISOR_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 20, 16, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("set_cost_params"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(7809), _1("set_cost_params"), _2(3), _3(true), _4(false), _5(set_cost_params), _6(16), _7(PG_SQLADVISOR_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 20, 16, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("set_cost_params"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), - AddFuncGroup( "set_hashbucket_info", 1, AddBuiltinFunc(_0(6118), _1("set_hashbucket_info"), _2(1), _3(true), _4(false), _5(set_hashbucket_info), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("set_hashbucket_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) ), + AddFuncGroup( "set_hashbucket_info", 1, AddBuiltinFunc(_0(6118), _1("set_hashbucket_info"), _2(1), _3(true), _4(false), _5(set_hashbucket_info), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("set_hashbucket_info"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "set_masklen", 2, - AddBuiltinFunc(_0(605), _1("set_masklen"), _2(2), _3(true), _4(false), _5(inet_set_masklen), _6(869), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 869, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("inet_set_masklen"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(635), _1("set_masklen"), _2(2), _3(true), _4(false), _5(cidr_set_masklen), _6(650), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 650, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cidr_set_masklen"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(605), _1("set_masklen"), _2(2), _3(true), _4(false), _5(inet_set_masklen), _6(869), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 869, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("inet_set_masklen"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("change netmask of inet"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(635), _1("set_masklen"), _2(2), _3(true), _4(false), _5(cidr_set_masklen), _6(650), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 650, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("cidr_set_masklen"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("change netmask of cidr"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "set_var", 1, + AddBuiltinFunc(_0(1519), _1("set_var"), _2(0), _3(true), _4(true), _5(debug_client_set_variable), _6(16), _7(PG_PLDEBUG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("debug_client_set_variable"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "set_weight_params", 1, - AddBuiltinFunc(_0(7808), _1("set_weight_params"), _2(3), _3(true), _4(false), _5(set_weight_params), _6(16), _7(PG_SQLADVISOR_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 700, 700, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("set_weight_params"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(7808), _1("set_weight_params"), _2(3), _3(true), _4(false), _5(set_weight_params), _6(16), _7(PG_SQLADVISOR_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 700, 700, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("set_weight_params"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "set_working_grand_version_num_manually", 1, - AddBuiltinFunc(_0(7998), _1("set_working_grand_version_num_manually"), _2(1), _3(true), _4(false), _5(set_working_grand_version_num_manually), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("set_working_grand_version_num_manually"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(7998), _1("set_working_grand_version_num_manually"), _2(1), _3(true), _4(false), _5(set_working_grand_version_num_manually), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("set_working_grand_version_num_manually"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "setseed", 1, - AddBuiltinFunc(_0(1599), _1("setseed"), _2(1), _3(true), _4(false), _5(setseed), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("setseed"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1599), _1("setseed"), _2(1), _3(true), _4(false), _5(setseed), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("setseed"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("set random seed"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "setval", 2, - AddBuiltinFunc(_0(SETVAL1FUNCOID), _1("setval"), _2(2), _3(true), _4(false), _5(setval_oid), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2205, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("setval_oid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(SETVAL3FUNCOID), _1("setval"), _2(3), _3(true), _4(false), _5(setval3_oid), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 2205, 20, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("setval3_oid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(SETVAL1FUNCOID), _1("setval"), _2(2), _3(true), _4(false), _5(setval_oid), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2205, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("setval_oid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("set sequence value"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(SETVAL3FUNCOID), _1("setval"), _2(3), _3(true), _4(false), _5(setval3_oid), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 2205, 1700, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("setval3_oid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("set sequence value and is_called status"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "setweight", 1, - AddBuiltinFunc(_0(3624), _1("setweight"), _2(2), _3(true), _4(false), _5(tsvector_setweight), _6(3614), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3614, 18), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsvector_setweight"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3624), _1("setweight"), _2(2), _3(true), _4(false), _5(tsvector_setweight), _6(3614), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3614, 18), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsvector_setweight"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("set given weight for whole tsvector"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "shell_in", 1, - AddBuiltinFunc(_0(2398), _1("shell_in"), _2(1), _3(false), _4(false), _5(shell_in), _6(2282), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("shell_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2398), _1("shell_in"), _2(1), _3(false), _4(false), _5(shell_in), _6(2282), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("shell_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "shell_out", 1, - AddBuiltinFunc(_0(2399), _1("shell_out"), _2(1), _3(true), _4(false), _5(shell_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2282), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("shell_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2399), _1("shell_out"), _2(1), _3(true), _4(false), _5(shell_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2282), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("shell_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "shobj_description", 1, - AddBuiltinFunc(_0(1993), _1("shobj_description"), _2(2), _3(true), _4(false), _5(NULL), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(100), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select description from pg_catalog.pg_shdescription where objoid = $1 and classoid = (select oid from pg_catalog.pg_class where relname = $2 and relnamespace = 11)"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1993), _1("shobj_description"), _2(2), _3(true), _4(false), _5(NULL), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(100), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 26, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select description from pg_catalog.pg_shdescription where objoid = $1 and classoid = (select oid from pg_catalog.pg_class where relname = $2 and relnamespace = 11)"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("get description for object id and shared catalog name"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "sign", 2, - AddBuiltinFunc(_0(1706), _1("sign"), _2(1), _3(true), _4(false), _5(numeric_sign), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_sign"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2310), _1("sign"), _2(1), _3(true), _4(false), _5(dsign), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dsign"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1706), _1("sign"), _2(1), _3(true), _4(false), _5(numeric_sign), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_sign"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2310), _1("sign"), _2(1), _3(true), _4(false), _5(dsign), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dsign"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "similar_escape", 1, - AddBuiltinFunc(_0(1623), _1("similar_escape"), _2(2), _3(false), _4(false), _5(similar_escape), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("similar_escape"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1623), _1("similar_escape"), _2(2), _3(false), _4(false), _5(similar_escape), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("similar_escape"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert SQL regexp pattern to POSIX style"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "sin", 1, - AddBuiltinFunc(_0(SINEFUNCOID), _1("sin"), _2(1), _3(true), _4(false), _5(dsin), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dsin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(SINEFUNCOID), _1("sin"), _2(1), _3(true), _4(false), _5(dsin), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dsin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("sine"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "slope", 1, - AddBuiltinFunc(_0(992), _1("slope"), _2(2), _3(true), _4(false), _5(point_slope), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("point_slope"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(992), _1("slope"), _2(2), _3(true), _4(false), _5(point_slope), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 600, 600), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("point_slope"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("slope between points"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "smalldatetime_cmp", 1, - AddBuiltinFunc(_0(5586), _1("smalldatetime_cmp"), _2(2), _3(true), _4(false), _5(smalldatetime_cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 9003, 9003), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("smalldatetime_cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5586), _1("smalldatetime_cmp"), _2(2), _3(true), _4(false), _5(smalldatetime_cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 9003, 9003), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("smalldatetime_cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "smalldatetime_eq", 1, - AddBuiltinFunc(_0(5580), _1("smalldatetime_eq"), _2(2), _3(true), _4(false), _5(smalldatetime_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 9003, 9003), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("smalldatetime_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5580), _1("smalldatetime_eq"), _2(2), _3(true), _4(false), _5(smalldatetime_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 9003, 9003), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("smalldatetime_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "smalldatetime_ge", 1, - AddBuiltinFunc(_0(5584), _1("smalldatetime_ge"), _2(2), _3(true), _4(false), _5(smalldatetime_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 9003, 9003), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("smalldatetime_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5584), _1("smalldatetime_ge"), _2(2), _3(true), _4(false), _5(smalldatetime_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 9003, 9003), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("smalldatetime_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "smalldatetime_gt", 1, - AddBuiltinFunc(_0(5585), _1("smalldatetime_gt"), _2(2), _3(true), _4(false), _5(smalldatetime_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 9003, 9003), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("smalldatetime_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5585), _1("smalldatetime_gt"), _2(2), _3(true), _4(false), _5(smalldatetime_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 9003, 9003), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("smalldatetime_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "smalldatetime_hash", 1, - AddBuiltinFunc(_0(5587), _1("smalldatetime_hash"), _2(1), _3(true), _4(false), _5(smalldatetime_hash), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 9003), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("smalldatetime_hash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5587), _1("smalldatetime_hash"), _2(1), _3(true), _4(false), _5(smalldatetime_hash), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 9003), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("smalldatetime_hash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "smalldatetime_in", 1, - AddBuiltinFunc(_0(SMALLDATETIMEINFUNCOID), _1("smalldatetime_in"), _2(3), _3(true), _4(false), _5(smalldatetime_in), _6(9003), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 2275, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("smalldatetime_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(SMALLDATETIMEINFUNCOID), _1("smalldatetime_in"), _2(3), _3(true), _4(false), _5(smalldatetime_in), _6(9003), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 2275, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("smalldatetime_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "smalldatetime_larger", 1, - AddBuiltinFunc(_0(9012), _1("smalldatetime_larger"), _2(2), _3(true), _4(false), _5(smalldatetime_larger), _6(9003), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 9003, 9003), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("smalldatetime_larger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(9012), _1("smalldatetime_larger"), _2(2), _3(true), _4(false), _5(smalldatetime_larger), _6(9003), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 9003, 9003), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("smalldatetime_larger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "smalldatetime_le", 1, - AddBuiltinFunc(_0(5583), _1("smalldatetime_le"), _2(2), _3(true), _4(false), _5(smalldatetime_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 9003, 9003), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("smalldatetime_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5583), _1("smalldatetime_le"), _2(2), _3(true), _4(false), _5(smalldatetime_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 9003, 9003), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("smalldatetime_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "smalldatetime_lt", 1, - AddBuiltinFunc(_0(5582), _1("smalldatetime_lt"), _2(2), _3(true), _4(false), _5(smalldatetime_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 9003, 9003), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("smalldatetime_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5582), _1("smalldatetime_lt"), _2(2), _3(true), _4(false), _5(smalldatetime_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 9003, 9003), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("smalldatetime_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "smalldatetime_ne", 1, - AddBuiltinFunc(_0(5581), _1("smalldatetime_ne"), _2(2), _3(true), _4(false), _5(smalldatetime_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 9003, 9003), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("smalldatetime_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5581), _1("smalldatetime_ne"), _2(2), _3(true), _4(false), _5(smalldatetime_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 9003, 9003), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("smalldatetime_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "smalldatetime_out", 1, - AddBuiltinFunc(_0(SMALLDATETIMEOUTFUNCOID), _1("smalldatetime_out"), _2(1), _3(true), _4(false), _5(smalldatetime_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 9003), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("smalldatetime_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(SMALLDATETIMEOUTFUNCOID), _1("smalldatetime_out"), _2(1), _3(true), _4(false), _5(smalldatetime_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 9003), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("smalldatetime_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "smalldatetime_recv", 1, - AddBuiltinFunc(_0(9007), _1("smalldatetime_recv"), _2(3), _3(true), _4(false), _5(smalldatetime_recv), _6(9003), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("smalldatetime_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(9007), _1("smalldatetime_recv"), _2(3), _3(true), _4(false), _5(smalldatetime_recv), _6(9003), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("smalldatetime_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "smalldatetime_send", 1, - AddBuiltinFunc(_0(9008), _1("smalldatetime_send"), _2(1), _3(true), _4(false), _5(smalldatetime_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 9003), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("smalldatetime_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(9008), _1("smalldatetime_send"), _2(1), _3(true), _4(false), _5(smalldatetime_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 9003), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("smalldatetime_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "smalldatetime_smaller", 1, - AddBuiltinFunc(_0(9011), _1("smalldatetime_smaller"), _2(2), _3(true), _4(false), _5(smalldatetime_smaller), _6(9003), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 9003, 9003), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("smalldatetime_smaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(9011), _1("smalldatetime_smaller"), _2(2), _3(true), _4(false), _5(smalldatetime_smaller), _6(9003), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 9003, 9003), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("smalldatetime_smaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "smgreq", 1, - AddBuiltinFunc(_0(762), _1("smgreq"), _2(2), _3(true), _4(false), _5(smgreq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 210, 210), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("smgreq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(762), _1("smgreq"), _2(2), _3(true), _4(false), _5(smgreq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 210, 210), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("smgreq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "smgrin", 1, - AddBuiltinFunc(_0(760), _1("smgrin"), _2(1), _3(true), _4(false), _5(smgrin), _6(210), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("smgrin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(760), _1("smgrin"), _2(1), _3(true), _4(false), _5(smgrin), _6(210), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("smgrin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "smgrne", 1, - AddBuiltinFunc(_0(763), _1("smgrne"), _2(2), _3(true), _4(false), _5(smgrne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 210, 210), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("smgrne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(763), _1("smgrne"), _2(2), _3(true), _4(false), _5(smgrne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 210, 210), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("smgrne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "smgrout", 1, - AddBuiltinFunc(_0(761), _1("smgrout"), _2(1), _3(true), _4(false), _5(smgrout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 210), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("smgrout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(761), _1("smgrout"), _2(1), _3(true), _4(false), _5(smgrout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 210), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("smgrout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "spg_kd_choose", 1, - AddBuiltinFunc(_0(4024), _1("spg_kd_choose"), _2(2), _3(true), _4(false), _5(spg_kd_choose), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spg_kd_choose"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4024), _1("spg_kd_choose"), _2(2), _3(true), _4(false), _5(spg_kd_choose), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spg_kd_choose"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("SP-GiST support for k-d tree over point"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "spg_kd_config", 1, - AddBuiltinFunc(_0(4023), _1("spg_kd_config"), _2(2), _3(true), _4(false), _5(spg_kd_config), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spg_kd_config"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4023), _1("spg_kd_config"), _2(2), _3(true), _4(false), _5(spg_kd_config), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spg_kd_config"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("SP-GiST support for k-d tree over point"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "spg_kd_inner_consistent", 1, - AddBuiltinFunc(_0(4026), _1("spg_kd_inner_consistent"), _2(2), _3(true), _4(false), _5(spg_kd_inner_consistent), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spg_kd_inner_consistent"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4026), _1("spg_kd_inner_consistent"), _2(2), _3(true), _4(false), _5(spg_kd_inner_consistent), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spg_kd_inner_consistent"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("SP-GiST support for k-d tree over point"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "spg_kd_picksplit", 1, - AddBuiltinFunc(_0(4025), _1("spg_kd_picksplit"), _2(2), _3(true), _4(false), _5(spg_kd_picksplit), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spg_kd_picksplit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4025), _1("spg_kd_picksplit"), _2(2), _3(true), _4(false), _5(spg_kd_picksplit), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spg_kd_picksplit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("SP-GiST support for k-d tree over point"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "spg_quad_choose", 1, - AddBuiltinFunc(_0(4019), _1("spg_quad_choose"), _2(2), _3(true), _4(false), _5(spg_quad_choose), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spg_quad_choose"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4019), _1("spg_quad_choose"), _2(2), _3(true), _4(false), _5(spg_quad_choose), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spg_quad_choose"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("SP-GiST support for quad tree over point"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "spg_quad_config", 1, - AddBuiltinFunc(_0(4018), _1("spg_quad_config"), _2(2), _3(true), _4(false), _5(spg_quad_config), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spg_quad_config"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4018), _1("spg_quad_config"), _2(2), _3(true), _4(false), _5(spg_quad_config), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spg_quad_config"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("SP-GiST support for quad tree over point"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "spg_quad_inner_consistent", 1, - AddBuiltinFunc(_0(4021), _1("spg_quad_inner_consistent"), _2(2), _3(true), _4(false), _5(spg_quad_inner_consistent), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spg_quad_inner_consistent"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4021), _1("spg_quad_inner_consistent"), _2(2), _3(true), _4(false), _5(spg_quad_inner_consistent), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spg_quad_inner_consistent"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("SP-GiST support for quad tree over point"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "spg_quad_leaf_consistent", 1, - AddBuiltinFunc(_0(4022), _1("spg_quad_leaf_consistent"), _2(2), _3(true), _4(false), _5(spg_quad_leaf_consistent), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spg_quad_leaf_consistent"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4022), _1("spg_quad_leaf_consistent"), _2(2), _3(true), _4(false), _5(spg_quad_leaf_consistent), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spg_quad_leaf_consistent"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("SP-GiST support for quad tree and k-d tree over point"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "spg_quad_picksplit", 1, - AddBuiltinFunc(_0(4020), _1("spg_quad_picksplit"), _2(2), _3(true), _4(false), _5(spg_quad_picksplit), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spg_quad_picksplit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4020), _1("spg_quad_picksplit"), _2(2), _3(true), _4(false), _5(spg_quad_picksplit), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spg_quad_picksplit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("SP-GiST support for quad tree over point"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "spg_text_choose", 1, - AddBuiltinFunc(_0(4028), _1("spg_text_choose"), _2(2), _3(true), _4(false), _5(spg_text_choose), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spg_text_choose"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4028), _1("spg_text_choose"), _2(2), _3(true), _4(false), _5(spg_text_choose), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spg_text_choose"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("SP-GiST support for radix tree over text"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "spg_text_config", 1, - AddBuiltinFunc(_0(4027), _1("spg_text_config"), _2(2), _3(true), _4(false), _5(spg_text_config), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spg_text_config"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4027), _1("spg_text_config"), _2(2), _3(true), _4(false), _5(spg_text_config), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spg_text_config"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("SP-GiST support for radix tree over text"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "spg_text_inner_consistent", 1, - AddBuiltinFunc(_0(4030), _1("spg_text_inner_consistent"), _2(2), _3(true), _4(false), _5(spg_text_inner_consistent), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spg_text_inner_consistent"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4030), _1("spg_text_inner_consistent"), _2(2), _3(true), _4(false), _5(spg_text_inner_consistent), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spg_text_inner_consistent"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("SP-GiST support for radix tree over text"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "spg_text_leaf_consistent", 1, - AddBuiltinFunc(_0(4031), _1("spg_text_leaf_consistent"), _2(2), _3(true), _4(false), _5(spg_text_leaf_consistent), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spg_text_leaf_consistent"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4031), _1("spg_text_leaf_consistent"), _2(2), _3(true), _4(false), _5(spg_text_leaf_consistent), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spg_text_leaf_consistent"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("SP-GiST support for radix tree over text"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "spg_text_picksplit", 1, - AddBuiltinFunc(_0(4029), _1("spg_text_picksplit"), _2(2), _3(true), _4(false), _5(spg_text_picksplit), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spg_text_picksplit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4029), _1("spg_text_picksplit"), _2(2), _3(true), _4(false), _5(spg_text_picksplit), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spg_text_picksplit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("SP-GiST support for radix tree over text"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "spgbeginscan", 1, - AddBuiltinFunc(_0(4004), _1("spgbeginscan"), _2(3), _3(true), _4(false), _5(spgbeginscan), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spgbeginscan"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4004), _1("spgbeginscan"), _2(3), _3(true), _4(false), _5(spgbeginscan), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spgbeginscan"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "spgbuild", 1, - AddBuiltinFunc(_0(4009), _1("spgbuild"), _2(3), _3(true), _4(false), _5(spgbuild), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spgbuild"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4009), _1("spgbuild"), _2(3), _3(true), _4(false), _5(spgbuild), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spgbuild"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "spgbuildempty", 1, - AddBuiltinFunc(_0(4010), _1("spgbuildempty"), _2(1), _3(true), _4(false), _5(spgbuildempty), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spgbuildempty"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4010), _1("spgbuildempty"), _2(1), _3(true), _4(false), _5(spgbuildempty), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spgbuildempty"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "spgbulkdelete", 1, - AddBuiltinFunc(_0(4011), _1("spgbulkdelete"), _2(4), _3(true), _4(false), _5(spgbulkdelete), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(4, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spgbulkdelete"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4011), _1("spgbulkdelete"), _2(4), _3(true), _4(false), _5(spgbulkdelete), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(4, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spgbulkdelete"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "spgcanreturn", 1, - AddBuiltinFunc(_0(4032), _1("spgcanreturn"), _2(1), _3(true), _4(false), _5(spgcanreturn), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spgcanreturn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4032), _1("spgcanreturn"), _2(1), _3(true), _4(false), _5(spgcanreturn), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spgcanreturn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "spgcostestimate", 1, - AddBuiltinFunc(_0(4013), _1("spgcostestimate"), _2(7), _3(true), _4(false), _5(spgcostestimate), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(7, 2281, 2281, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spgcostestimate"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4013), _1("spgcostestimate"), _2(7), _3(true), _4(false), _5(spgcostestimate), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(7, 2281, 2281, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spgcostestimate"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "spgendscan", 1, - AddBuiltinFunc(_0(4006), _1("spgendscan"), _2(1), _3(true), _4(false), _5(spgendscan), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spgendscan"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4006), _1("spgendscan"), _2(1), _3(true), _4(false), _5(spgendscan), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spgendscan"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "spggetbitmap", 1, - AddBuiltinFunc(_0(4002), _1("spggetbitmap"), _2(2), _3(true), _4(false), _5(spggetbitmap), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spggetbitmap"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4002), _1("spggetbitmap"), _2(2), _3(true), _4(false), _5(spggetbitmap), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spggetbitmap"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "spggettuple", 1, - AddBuiltinFunc(_0(4001), _1("spggettuple"), _2(2), _3(true), _4(false), _5(spggettuple), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spggettuple"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4001), _1("spggettuple"), _2(2), _3(true), _4(false), _5(spggettuple), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spggettuple"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "spginsert", 1, - AddBuiltinFunc(_0(4003), _1("spginsert"), _2(6), _3(true), _4(false), _5(spginsert), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(6, 2281, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spginsert"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4003), _1("spginsert"), _2(6), _3(true), _4(false), _5(spginsert), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(6, 2281, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spginsert"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "spgmarkpos", 1, - AddBuiltinFunc(_0(4007), _1("spgmarkpos"), _2(1), _3(true), _4(false), _5(spgmarkpos), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spgmarkpos"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4007), _1("spgmarkpos"), _2(1), _3(true), _4(false), _5(spgmarkpos), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spgmarkpos"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "spgmerge", 1, - AddBuiltinFunc(_0(3188), _1("spgmerge"), _2(5), _3(true), _4(false), _5(spgmerge), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(5, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spgmerge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3188), _1("spgmerge"), _2(5), _3(true), _4(false), _5(spgmerge), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(5, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spgmerge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "spgoptions", 1, - AddBuiltinFunc(_0(4014), _1("spgoptions"), _2(2), _3(true), _4(false), _5(spgoptions), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1009, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spgoptions"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4014), _1("spgoptions"), _2(2), _3(true), _4(false), _5(spgoptions), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1009, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spgoptions"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "spgrescan", 1, - AddBuiltinFunc(_0(4005), _1("spgrescan"), _2(5), _3(true), _4(false), _5(spgrescan), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(5, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spgrescan"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4005), _1("spgrescan"), _2(5), _3(true), _4(false), _5(spgrescan), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(5, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spgrescan"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "spgrestrpos", 1, - AddBuiltinFunc(_0(4008), _1("spgrestrpos"), _2(1), _3(true), _4(false), _5(spgrestrpos), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spgrestrpos"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4008), _1("spgrestrpos"), _2(1), _3(true), _4(false), _5(spgrestrpos), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spgrestrpos"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "spgvacuumcleanup", 1, - AddBuiltinFunc(_0(4012), _1("spgvacuumcleanup"), _2(2), _3(true), _4(false), _5(spgvacuumcleanup), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spgvacuumcleanup"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4012), _1("spgvacuumcleanup"), _2(2), _3(true), _4(false), _5(spgvacuumcleanup), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("spgvacuumcleanup"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "split_part", 1, - AddBuiltinFunc(_0(2088), _1("split_part"), _2(3), _3(true), _4(false), _5(split_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 25, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("split_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2088), _1("split_part"), _2(3), _3(true), _4(false), _5(split_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 25, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("split_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("split string by field_sep and return field_num"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "sqrt", 2, - AddBuiltinFunc(_0(SQRTFUNCOID), _1("sqrt"), _2(1), _3(true), _4(false), _5(dsqrt), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dsqrt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1730), _1("sqrt"), _2(1), _3(true), _4(false), _5(numeric_sqrt), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_sqrt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(SQRTFUNCOID), _1("sqrt"), _2(1), _3(true), _4(false), _5(dsqrt), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dsqrt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1730), _1("sqrt"), _2(1), _3(true), _4(false), _5(numeric_sqrt), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_sqrt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("square root"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "start_collect_workload", 1, - AddBuiltinFunc(_0(7810), _1("start_collect_workload"), _2(2), _3(true), _4(false), _5(start_collect_workload), _6(16), _7(PG_SQLADVISOR_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(2), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24("({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :ismaxvalue false :location 27 :constvalue 4 [ 16 39 0 0 0 0 0 0 ] :cursor_data :row_count 0 :cur_dno -1 :is_open false :found false :not_found false :null_open false :null_fetch false} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :ismaxvalue false :location 27 :constvalue 4 [ 0 4 0 0 0 0 0 0 ] :cursor_data :row_count 0 :cur_dno -1 :is_open false :found false :not_found false :null_open false :null_fetch false})"), _25("start_collect_workload"), _26(NULL), _27(NULL), _28(NULL), _29(2, 0, 1), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(7810), _1("start_collect_workload"), _2(2), _3(true), _4(false), _5(start_collect_workload), _6(16), _7(PG_SQLADVISOR_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(2), _20(2, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24("({CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :ismaxvalue false :location 27 :constvalue 4 [ 16 39 0 0 0 0 0 0 ] :cursor_data :row_count 0 :cur_dno -1 :is_open false :found false :not_found false :null_open false :null_fetch false} {CONST :consttype 23 :consttypmod -1 :constcollid 0 :constlen 4 :constbyval true :constisnull false :ismaxvalue false :location 27 :constvalue 4 [ 0 4 0 0 0 0 0 0 ] :cursor_data :row_count 0 :cur_dno -1 :is_open false :found false :not_found false :null_open false :null_fetch false})"), _25("start_collect_workload"), _26(NULL), _27(NULL), _28(NULL), _29(2, 0, 1), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "statement_detail_decode", 1, - AddBuiltinFunc(_0(5732), _1("statement_detail_decode"), _2(3), _3(true), _4(false), _5(statement_detail_decode), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 17, 25, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("statement_detail_decode"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5732), _1("statement_detail_decode"), _2(3), _3(true), _4(false), _5(statement_detail_decode), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 17, 25, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("statement_detail_decode"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "statement_timestamp", 1, - AddBuiltinFunc(_0(STATEMENTTIMESTAMPFUNCOID), _1("statement_timestamp"), _2(0), _3(true), _4(false), _5(statement_timestamp), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("statement_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(STATEMENTTIMESTAMPFUNCOID), _1("statement_timestamp"), _2(0), _3(true), _4(false), _5(statement_timestamp), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("statement_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("current statement time"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "stddev", 6, - AddBuiltinFunc(_0(2154), _1("stddev"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2155), _1("stddev"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2156), _1("stddev"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2157), _1("stddev"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2158), _1("stddev"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2159), _1("stddev"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2154), _1("stddev"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2155), _1("stddev"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2156), _1("stddev"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2157), _1("stddev"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2158), _1("stddev"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2159), _1("stddev"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "stddev_pop", 6, - AddBuiltinFunc(_0(2724), _1("stddev_pop"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2725), _1("stddev_pop"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2726), _1("stddev_pop"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2727), _1("stddev_pop"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2728), _1("stddev_pop"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2729), _1("stddev_pop"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2724), _1("stddev_pop"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2725), _1("stddev_pop"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2726), _1("stddev_pop"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2727), _1("stddev_pop"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2728), _1("stddev_pop"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2729), _1("stddev_pop"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "stddev_samp", 6, - AddBuiltinFunc(_0(2712), _1("stddev_samp"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2713), _1("stddev_samp"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2714), _1("stddev_samp"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2715), _1("stddev_samp"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2716), _1("stddev_samp"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2717), _1("stddev_samp"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2712), _1("stddev_samp"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2713), _1("stddev_samp"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2714), _1("stddev_samp"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2715), _1("stddev_samp"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2716), _1("stddev_samp"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2717), _1("stddev_samp"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "step", 1, - AddBuiltinFunc(_0(1512), _1("step"), _2(0), _3(true), _4(true), _5(debug_client_info_step), _6(2249), _7(PG_PLDEBUG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(4, 26, 25, 23, 25), _22(4, 'o', 'o', 'o', 'o'), _23(4, "funcoid", "funcname", "lineno", "query"), _24(NULL), _25("debug_client_info_step"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1512), _1("step"), _2(0), _3(true), _4(true), _5(debug_client_info_step), _6(2249), _7(PG_PLDEBUG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(4, 26, 25, 23, 25), _22(4, 'o', 'o', 'o', 'o'), _23(4, "funcoid", "funcname", "lineno", "query"), _24(NULL), _25("debug_client_info_step"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "string_agg", 2, - AddBuiltinFunc(_0(STRINGAGGFUNCOID), _1("string_agg"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(BYTEASTRINGAGGFUNCOID), _1("string_agg"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 17, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(STRINGAGGFUNCOID), _1("string_agg"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("concatenate aggregate input into a string"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(BYTEASTRINGAGGFUNCOID), _1("string_agg"), _2(2), _3(false), _4(false), _5(aggregate_dummy), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 17, 17), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("concatenate aggregate input into a string"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "string_agg_finalfn", 1, - AddBuiltinFunc(_0(3536), _1("string_agg_finalfn"), _2(1), _3(false), _4(false), _5(string_agg_finalfn), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("string_agg_finalfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3536), _1("string_agg_finalfn"), _2(1), _3(false), _4(false), _5(string_agg_finalfn), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("string_agg_finalfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate final function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "string_agg_transfn", 1, - AddBuiltinFunc(_0(STRINGAGGTRANSFNFUNCOID), _1("string_agg_transfn"), _2(3), _3(false), _4(false), _5(string_agg_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("string_agg_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(STRINGAGGTRANSFNFUNCOID), _1("string_agg_transfn"), _2(3), _3(false), _4(false), _5(string_agg_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("string_agg_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("aggregate transition function"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "string_to_array", 2, - AddBuiltinFunc(_0(376), _1("string_to_array"), _2(3), _3(false), _4(false), _5(text_to_array_null), _6(1009), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_to_array_null"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(394), _1("string_to_array"), _2(2), _3(false), _4(false), _5(text_to_array), _6(1009), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_to_array"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(376), _1("string_to_array"), _2(3), _3(false), _4(false), _5(text_to_array_null), _6(1009), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_to_array_null"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("concatenate array elements, using delimiter, into text"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(394), _1("string_to_array"), _2(2), _3(false), _4(false), _5(text_to_array), _6(1009), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_to_array"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("split delimited text into text[]"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "strip", 1, - AddBuiltinFunc(_0(3623), _1("strip"), _2(1), _3(true), _4(false), _5(tsvector_strip), _6(3614), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3614), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsvector_strip"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3623), _1("strip"), _2(1), _3(true), _4(false), _5(tsvector_strip), _6(3614), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3614), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsvector_strip"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("strip position information"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "strpos", 1, - AddBuiltinFunc(_0(STRPOSFUNCOID), _1("strpos"), _2(2), _3(true), _4(false), _5(textpos), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textpos"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(STRPOSFUNCOID), _1("strpos"), _2(2), _3(true), _4(false), _5(textpos), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textpos"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "submit_on_nodes", 1, - AddBuiltinFunc(_0(5717), _1("submit_on_nodes"), _2(3), _3(false), _4(false), _5(submit_job_on_nodes), _6(23), _7(PG_PKG_SERVICE_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(5, 19, 19, 25, 1114, 25), _21(6, 19, 19, 25, 1114, 25, 23), _22(6, 'i', 'i', 'i', 'i', 'i', 'o'), _23(6, "node_name", "database", "what", "next_date", "job_interval", "job"), _24(NULL), _25("submit_job_on_nodes"), _26(NULL), _27(NULL), _28(NULL), _29(2, 1, 2), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5717), _1("submit_on_nodes"), _2(3), _3(false), _4(false), _5(submit_job_on_nodes), _6(23), _7(PG_PKG_SERVICE_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(5, 19, 19, 25, 1114, 25), _21(6, 19, 19, 25, 1114, 25, 23), _22(6, 'i', 'i', 'i', 'i', 'i', 'o'), _23(6, "node_name", "database", "what", "next_date", "job_interval", "job"), _24(NULL), _25("submit_job_on_nodes"), _26(NULL), _27(NULL), _28(NULL), _29(2, 1, 2), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "substr", 4, - AddBuiltinFunc(_0(SUBSTRFUNCOID), _1("substr"), _2(3), _3(true), _4(false), _5(text_substr_orclcompat), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_substr_orclcompat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(SUBSTRNOLENFUNCOID), _1("substr"), _2(2), _3(true), _4(false), _5(text_substr_no_len_orclcompat), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_substr_no_len_orclcompat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(BYTEASUBSTRFUNCOID), _1("substr"), _2(3), _3(true), _4(false), _5(bytea_substr_orclcompat), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 17, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bytea_substr_orclcompat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(BYTEASUBSTRNOLENFUNCOID), _1("substr"), _2(2), _3(true), _4(false), _5(bytea_substr_no_len_orclcompat), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 17, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bytea_substr_no_len_orclcompat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(SUBSTRFUNCOID), _1("substr"), _2(3), _3(true), _4(false), _5(text_substr_orclcompat), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_substr_orclcompat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(SUBSTRNOLENFUNCOID), _1("substr"), _2(2), _3(true), _4(false), _5(text_substr_no_len_orclcompat), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_substr_no_len_orclcompat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(BYTEASUBSTRFUNCOID), _1("substr"), _2(3), _3(true), _4(false), _5(bytea_substr_orclcompat), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 17, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bytea_substr_orclcompat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(BYTEASUBSTRNOLENFUNCOID), _1("substr"), _2(2), _3(true), _4(false), _5(bytea_substr_no_len_orclcompat), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 17, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bytea_substr_no_len_orclcompat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "substrb", 2, - AddBuiltinFunc(_0(SUBSTRBWITHLENFUNCOID), _1("substrb"), _2(3), _3(true), _4(false), _5(substrb_with_lenth), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("substrb_with_lenth"), _26("-"), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(SUBSTRBNOLENFUNCOID), _1("substrb"), _2(2), _3(true), _4(false), _5(substrb_without_lenth), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("substrb_without_lenth"), _26("-"), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(SUBSTRBWITHLENFUNCOID), _1("substrb"), _2(3), _3(true), _4(false), _5(substrb_with_lenth), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("substrb_with_lenth"), _26("-"), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(SUBSTRBNOLENFUNCOID), _1("substrb"), _2(2), _3(true), _4(false), _5(substrb_without_lenth), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("substrb_without_lenth"), _26("-"), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "substring", 8, - AddBuiltinFunc(_0(TEXTSUBSTRINGFUNCOID), _1("substring"), _2(3), _3(true), _4(false), _5(text_substr_null), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_substr_null"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(TEXTSUBSTRINGNOLENFUNCOID), _1("substring"), _2(2), _3(true), _4(false), _5(text_substr_no_len_null), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_substr_no_len_null"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(BITSUBSTRINGFUNOID), _1("substring"), _2(3), _3(true), _4(false), _5(bitsubstr), _6(1560), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 1560, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitsubstr"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(BITSUBSTRINGNOLENFUNCOID), _1("substring"), _2(2), _3(true), _4(false), _5(bitsubstr_no_len), _6(1560), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1560, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitsubstr_no_len"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(BYTEASUBSTRINGFUNCOID), _1("substring"), _2(3), _3(true), _4(false), _5(bytea_substr), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 17, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bytea_substr"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(BYTEASUBSTRINGNOLENOID), _1("substring"), _2(2), _3(true), _4(false), _5(bytea_substr_no_len), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 17, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bytea_substr_no_len"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(TEXTREGEXSUBSTRINGOID), _1("substring"), _2(2), _3(true), _4(false), _5(textregexsubstr), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textregexsubstr"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(SUBSTRINGESCAPEFUNCOID), _1("substring"), _2(3), _3(true), _4(false), _5(NULL), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.substring($1, pg_catalog.similar_escape($2, $3))"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TEXTSUBSTRINGFUNCOID), _1("substring"), _2(3), _3(true), _4(false), _5(text_substr_null), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_substr_null"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(TEXTSUBSTRINGNOLENFUNCOID), _1("substring"), _2(2), _3(true), _4(false), _5(text_substr_no_len_null), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_substr_no_len_null"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(BITSUBSTRINGFUNOID), _1("substring"), _2(3), _3(true), _4(false), _5(bitsubstr), _6(1560), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 1560, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitsubstr"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("extract portion of bitstring"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(BITSUBSTRINGNOLENFUNCOID), _1("substring"), _2(2), _3(true), _4(false), _5(bitsubstr_no_len), _6(1560), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1560, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitsubstr_no_len"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("extract portion of bitstring"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(BYTEASUBSTRINGFUNCOID), _1("substring"), _2(3), _3(true), _4(false), _5(bytea_substr), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 17, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bytea_substr"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("extract portion of string"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(BYTEASUBSTRINGNOLENOID), _1("substring"), _2(2), _3(true), _4(false), _5(bytea_substr_no_len), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 17, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bytea_substr_no_len"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("extract portion of string"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(TEXTREGEXSUBSTRINGOID), _1("substring"), _2(2), _3(true), _4(false), _5(textregexsubstr), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textregexsubstr"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("extract text matching regular expression"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(SUBSTRINGESCAPEFUNCOID), _1("substring"), _2(3), _3(true), _4(false), _5(NULL), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.substring($1, pg_catalog.similar_escape($2, $3))"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "substring_inner", 2, - AddBuiltinFunc(_0(SUBSTRINNFUNCOID), _1("substring_inner"), _2(3), _3(true), _4(false), _5(text_substr), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_substr"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(SUBSTRINNNOLENFUNCOID), _1("substring_inner"), _2(2), _3(true), _4(false), _5(text_substr_no_len), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_substr_no_len"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(SUBSTRINNFUNCOID), _1("substring_inner"), _2(3), _3(true), _4(false), _5(text_substr), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 23, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_substr"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("extract portion of string"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(SUBSTRINNNOLENFUNCOID), _1("substring_inner"), _2(2), _3(true), _4(false), _5(text_substr_no_len), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_substr_no_len"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("extract portion of string"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "sum", 8, - AddBuiltinFunc(_0(2107), _1("sum"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2108), _1("sum"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2109), _1("sum"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2110), _1("sum"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2111), _1("sum"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2112), _1("sum"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2113), _1("sum"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2114), _1("sum"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2107), _1("sum"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2108), _1("sum"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2109), _1("sum"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2110), _1("sum"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2111), _1("sum"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2112), _1("sum"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(790), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 790), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2113), _1("sum"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2114), _1("sum"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "suppress_redundant_updates_trigger", 1, - AddBuiltinFunc(_0(1291), _1("suppress_redundant_updates_trigger"), _2(0), _3(true), _4(false), _5(suppress_redundant_updates_trigger), _6(2279), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("suppress_redundant_updates_trigger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1291), _1("suppress_redundant_updates_trigger"), _2(0), _3(true), _4(false), _5(suppress_redundant_updates_trigger), _6(2279), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("suppress_redundant_updates_trigger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("trigger to suppress updates when new and old records match"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) + ), + AddFuncGroup( + "sys_connect_by_path", 1, + AddBuiltinFunc(_0(9350), _1("sys_connect_by_path"), _2(2), _3(false), _4(false), _5(sys_connect_by_path), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("sys_connect_by_path"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "sysdate", 1, - AddBuiltinFunc(_0(7777), _1("sysdate"), _2(0), _3(false), _4(false), _5(NULL), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(100), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("SELECT CURRENT_TIMESTAMP::timestamp(0)"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(7777), _1("sysdate"), _2(0), _3(false), _4(false), _5(NULL), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(100), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("SELECT CURRENT_TIMESTAMP::timestamp(0)"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "table_data_skewness", 1, - AddBuiltinFunc(_0(TESTSKEWNESSRETURNTYPE), _1("table_data_skewness"), _2(2), _3(true), _4(false), _5(table_data_skewness), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2249, 18), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("table_data_skewness"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TESTSKEWNESSRETURNTYPE), _1("table_data_skewness"), _2(2), _3(true), _4(false), _5(table_data_skewness), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2249, 18), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("table_data_skewness"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "table_distribution", 2, - AddBuiltinFunc(_0(4441), _1("table_distribution"), _2(0), _3(false), _4(true), _5(all_table_distribution), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(4, 19, 19, 19, 20), _22(4, 'o', 'o', 'o', 'o'), _23(4, "schemaname", "tablename", "nodename", "dnsize"), _24(NULL), _25("all_table_distribution"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(4442), _1("table_distribution"), _2(2), _3(true), _4(true), _5(single_table_distribution), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 25, 25), _21(6, 25, 25, 19, 19, 19, 20), _22(6, 'i', 'i', 'o', 'o', 'o', 'o'), _23(6, "schema", "table", "schemaname", "tablename", "nodename", "dnsize"), _24(NULL), _25("single_table_distribution"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4441), _1("table_distribution"), _2(0), _3(false), _4(true), _5(all_table_distribution), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(4, 19, 19, 19, 20), _22(4, 'o', 'o', 'o', 'o'), _23(4, "schemaname", "tablename", "nodename", "dnsize"), _24(NULL), _25("all_table_distribution"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(4442), _1("table_distribution"), _2(2), _3(true), _4(true), _5(single_table_distribution), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 25, 25), _21(6, 25, 25, 19, 19, 19, 20), _22(6, 'i', 'i', 'o', 'o', 'o', 'o'), _23(6, "schema", "table", "schemaname", "tablename", "nodename", "dnsize"), _24(NULL), _25("single_table_distribution"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "table_to_xml", 1, - AddBuiltinFunc(_0(2923), _1("table_to_xml"), _2(4), _3(false), _4(false), _5(table_to_xml), _6(142), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(100), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 2205, 16, 16, 25), _21(NULL), _22(NULL), _23(4, "tbl", "nulls", "tableforest", "targetns"), _24(NULL), _25("table_to_xml"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2923), _1("table_to_xml"), _2(4), _3(false), _4(false), _5(table_to_xml), _6(142), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(100), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 2205, 16, 16, 25), _21(NULL), _22(NULL), _23(4, "tbl", "nulls", "tableforest", "targetns"), _24(NULL), _25("table_to_xml"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("map table contents to XML"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "table_to_xml_and_xmlschema", 1, - AddBuiltinFunc(_0(2929), _1("table_to_xml_and_xmlschema"), _2(4), _3(false), _4(false), _5(table_to_xml_and_xmlschema), _6(142), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(100), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 2205, 16, 16, 25), _21(NULL), _22(NULL), _23(4, "tbl", "nulls", "tableforest", "targetns"), _24(NULL), _25("table_to_xml_and_xmlschema"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2929), _1("table_to_xml_and_xmlschema"), _2(4), _3(false), _4(false), _5(table_to_xml_and_xmlschema), _6(142), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(100), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 2205, 16, 16, 25), _21(NULL), _22(NULL), _23(4, "tbl", "nulls", "tableforest", "targetns"), _24(NULL), _25("table_to_xml_and_xmlschema"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("map table contents and structure to XML and XML Schema"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "table_to_xmlschema", 1, - AddBuiltinFunc(_0(2926), _1("table_to_xmlschema"), _2(4), _3(false), _4(false), _5(table_to_xmlschema), _6(142), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(100), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 2205, 16, 16, 25), _21(NULL), _22(NULL), _23(4, "tbl", "nulls", "tableforest", "targetns"), _24(NULL), _25("table_to_xmlschema"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2926), _1("table_to_xmlschema"), _2(4), _3(false), _4(false), _5(table_to_xmlschema), _6(142), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(100), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 2205, 16, 16, 25), _21(NULL), _22(NULL), _23(4, "tbl", "nulls", "tableforest", "targetns"), _24(NULL), _25("table_to_xmlschema"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("map table structure to XML Schema"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tablespace_oid_name", 1, - AddBuiltinFunc(_0(3952), _1("tablespace_oid_name"), _2(1), _3(true), _4(false), _5(tablespace_oid_name), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tablespace_oid_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3952), _1("tablespace_oid_name"), _2(1), _3(true), _4(false), _5(tablespace_oid_name), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tablespace_oid_name"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tan", 1, - AddBuiltinFunc(_0(1606), _1("tan"), _2(1), _3(true), _4(false), _5(dtan), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dtan"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1606), _1("tan"), _2(1), _3(true), _4(false), _5(dtan), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dtan"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("tangent"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tdigest_in", 1, - AddBuiltinFunc(_0(9983), _1("tdigest_in"), _2(1), _3(true), _4(false), _5(tdigest_in), _6(4406), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tdigest_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(9983), _1("tdigest_in"), _2(1), _3(true), _4(false), _5(tdigest_in), _6(4406), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tdigest_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tdigest_out", 1, - AddBuiltinFunc(_0(9984), _1("tdigest_out"), _2(1), _3(true), _4(false), _5(tdigest_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4406), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tdigest_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(9984), _1("tdigest_out"), _2(1), _3(true), _4(false), _5(tdigest_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 4406), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tdigest_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tdigest_merge", 1, - AddBuiltinFunc(_0(9989), _1("tdigest_merge"), _2(4), _3(false), _4(false), _5(tdigest_merge), _6(4406), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 4406, 701, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tdigest_merge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(9989), _1("tdigest_merge"), _2(4), _3(false), _4(false), _5(tdigest_merge), _6(4406), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 4406, 701, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tdigest_merge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tdigest_mergep", 1, - AddBuiltinFunc(_0(9982), _1("tdigest_mergep"), _2(4), _3(false), _4(false), _5(tdigest_mergep), _6(4406), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 4406, 701, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tdigest_mergep"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(9982), _1("tdigest_mergep"), _2(4), _3(false), _4(false), _5(tdigest_mergep), _6(4406), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 4406, 701, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tdigest_mergep"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tdigest_merge_to_one", 1, - AddBuiltinFunc(_0(9988), _1("tdigest_merge_to_one"), _2(2), _3(false), _4(false), _5(tdigest_merge_to_one), _6(4406), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 4406, 4406), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tdigest_merge_to_one"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(9988), _1("tdigest_merge_to_one"), _2(2), _3(false), _4(false), _5(tdigest_merge_to_one), _6(4406), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 4406, 4406), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tdigest_merge_to_one"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "text", 6, - AddBuiltinFunc(_0(RTRIM1FUNCOID), _1("text"), _2(1), _3(true), _4(false), _5(rtrim1), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("rtrim1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(406), _1("text"), _2(1), _3(true), _4(false), _5(name_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("name_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(730), _1("text"), _2(1), _3(true), _4(false), _5(network_show), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("network_show"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(946), _1("text"), _2(1), _3(true), _4(false), _5(char_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 18), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("char_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2922), _1("text"), _2(1), _3(true), _4(false), _5(xmltotext), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 142), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xmltotext"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2971), _1("text"), _2(1), _3(true), _4(false), _5(booltext), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("booltext"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(RTRIM1FUNCOID), _1("text"), _2(1), _3(true), _4(false), _5(rtrim1), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1042), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("rtrim1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert char(n) to text"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(406), _1("text"), _2(1), _3(true), _4(false), _5(name_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("name_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert name to text"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(730), _1("text"), _2(1), _3(true), _4(false), _5(network_show), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 869), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("network_show"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("show all parts of inet/cidr value"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(946), _1("text"), _2(1), _3(true), _4(false), _5(char_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 18), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("char_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert char to text"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2922), _1("text"), _2(1), _3(true), _4(false), _5(xmltotext), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 142), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xmltotext"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2971), _1("text"), _2(1), _3(true), _4(false), _5(booltext), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("booltext"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert boolean to text"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "text_date", 1, - AddBuiltinFunc(_0(4164), _1("text_date"), _2(1), _3(true), _4(false), _5(text_date), _6(1082), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_date"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4164), _1("text_date"), _2(1), _3(true), _4(false), _5(text_date), _6(1082), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_date"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "text_float4", 1, - AddBuiltinFunc(_0(4192), _1("text_float4"), _2(1), _3(true), _4(false), _5(text_float4), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_float4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4192), _1("text_float4"), _2(1), _3(true), _4(false), _5(text_float4), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_float4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "text_float8", 1, - AddBuiltinFunc(_0(4193), _1("text_float8"), _2(1), _3(true), _4(false), _5(text_float8), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_float8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4193), _1("text_float8"), _2(1), _3(true), _4(false), _5(text_float8), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_float8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "text_ge", 1, - AddBuiltinFunc(_0(743), _1("text_ge"), _2(2), _3(true), _4(false), _5(text_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(743), _1("text_ge"), _2(2), _3(true), _4(false), _5(text_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "text_gt", 1, - AddBuiltinFunc(_0(742), _1("text_gt"), _2(2), _3(true), _4(false), _5(text_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(742), _1("text_gt"), _2(2), _3(true), _4(false), _5(text_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "text_int1", 1, - AddBuiltinFunc(_0(4188), _1("text_int1"), _2(1), _3(true), _4(false), _5(text_int1), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_int1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4188), _1("text_int1"), _2(1), _3(true), _4(false), _5(text_int1), _6(5545), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_int1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "text_int2", 1, - AddBuiltinFunc(_0(4189), _1("text_int2"), _2(1), _3(true), _4(false), _5(text_int2), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_int2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4189), _1("text_int2"), _2(1), _3(true), _4(false), _5(text_int2), _6(21), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_int2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "text_int4", 1, - AddBuiltinFunc(_0(4190), _1("text_int4"), _2(1), _3(true), _4(false), _5(text_int4), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4190), _1("text_int4"), _2(1), _3(true), _4(false), _5(text_int4), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "text_int8", 1, - AddBuiltinFunc(_0(4191), _1("text_int8"), _2(1), _3(true), _4(false), _5(text_int8), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_int8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4191), _1("text_int8"), _2(1), _3(true), _4(false), _5(text_int8), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_int8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "text_larger", 1, - AddBuiltinFunc(_0(458), _1("text_larger"), _2(2), _3(true), _4(false), _5(text_larger), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_larger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(458), _1("text_larger"), _2(2), _3(true), _4(false), _5(text_larger), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_larger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("larger of two"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "text_le", 1, - AddBuiltinFunc(_0(741), _1("text_le"), _2(2), _3(true), _4(false), _5(text_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(741), _1("text_le"), _2(2), _3(true), _4(false), _5(text_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "text_lt", 1, - AddBuiltinFunc(_0(740), _1("text_lt"), _2(2), _3(true), _4(false), _5(text_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(740), _1("text_lt"), _2(2), _3(true), _4(false), _5(text_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "text_numeric", 1, - AddBuiltinFunc(_0(4194), _1("text_numeric"), _2(1), _3(true), _4(false), _5(text_numeric), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_numeric"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4194), _1("text_numeric"), _2(1), _3(true), _4(false), _5(text_numeric), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_numeric"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "text_pattern_ge", 1, - AddBuiltinFunc(_0(2163), _1("text_pattern_ge"), _2(2), _3(true), _4(false), _5(text_pattern_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_pattern_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2163), _1("text_pattern_ge"), _2(2), _3(true), _4(false), _5(text_pattern_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_pattern_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "text_pattern_gt", 1, - AddBuiltinFunc(_0(2164), _1("text_pattern_gt"), _2(2), _3(true), _4(false), _5(text_pattern_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_pattern_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2164), _1("text_pattern_gt"), _2(2), _3(true), _4(false), _5(text_pattern_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_pattern_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "text_pattern_le", 1, - AddBuiltinFunc(_0(2161), _1("text_pattern_le"), _2(2), _3(true), _4(false), _5(text_pattern_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_pattern_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2161), _1("text_pattern_le"), _2(2), _3(true), _4(false), _5(text_pattern_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_pattern_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "text_pattern_lt", 1, - AddBuiltinFunc(_0(2160), _1("text_pattern_lt"), _2(2), _3(true), _4(false), _5(text_pattern_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_pattern_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2160), _1("text_pattern_lt"), _2(2), _3(true), _4(false), _5(text_pattern_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_pattern_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "text_smaller", 1, - AddBuiltinFunc(_0(459), _1("text_smaller"), _2(2), _3(true), _4(false), _5(text_smaller), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_smaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(459), _1("text_smaller"), _2(2), _3(true), _4(false), _5(text_smaller), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_smaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("smaller of two"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "text_timestamp", 1, - AddBuiltinFunc(_0(4073), _1("text_timestamp"), _2(1), _3(true), _4(false), _5(text_timestamp), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4073), _1("text_timestamp"), _2(1), _3(true), _4(false), _5(text_timestamp), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("text_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "textanycat", 1, - AddBuiltinFunc(_0(TEXTANYCATFUNCOID), _1("textanycat"), _2(2), _3(false), _4(false), _5(NULL), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 2776), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select $1 || $2::pg_catalog.text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TEXTANYCATFUNCOID), _1("textanycat"), _2(2), _3(false), _4(false), _5(NULL), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 2776), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select $1 || $2::pg_catalog.text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "textcat", 1, - AddBuiltinFunc(_0(1258), _1("textcat"), _2(2), _3(false), _4(false), _5(textcat), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textcat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1258), _1("textcat"), _2(2), _3(false), _4(false), _5(textcat), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textcat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "texteq", 1, - AddBuiltinFunc(_0(67), _1("texteq"), _2(2), _3(true), _4(false), _5(texteq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("texteq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(67), _1("texteq"), _2(2), _3(true), _4(false), _5(texteq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("texteq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "texticlike", 1, - AddBuiltinFunc(_0(1633), _1("texticlike"), _2(2), _3(true), _4(false), _5(texticlike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("texticlike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1633), _1("texticlike"), _2(2), _3(true), _4(false), _5(texticlike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("texticlike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "texticnlike", 1, - AddBuiltinFunc(_0(1634), _1("texticnlike"), _2(2), _3(true), _4(false), _5(texticnlike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("texticnlike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1634), _1("texticnlike"), _2(2), _3(true), _4(false), _5(texticnlike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("texticnlike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "texticregexeq", 1, - AddBuiltinFunc(_0(1238), _1("texticregexeq"), _2(2), _3(true), _4(false), _5(texticregexeq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("texticregexeq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1238), _1("texticregexeq"), _2(2), _3(true), _4(false), _5(texticregexeq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("texticregexeq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "texticregexne", 1, - AddBuiltinFunc(_0(1239), _1("texticregexne"), _2(2), _3(true), _4(false), _5(texticregexne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("texticregexne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1239), _1("texticregexne"), _2(2), _3(true), _4(false), _5(texticregexne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("texticregexne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "textin", 1, - AddBuiltinFunc(_0(46), _1("textin"), _2(1), _3(true), _4(false), _5(textin), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(46), _1("textin"), _2(1), _3(true), _4(false), _5(textin), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "textlen", 1, - AddBuiltinFunc(_0(TEXTLENOID), _1("textlen"), _2(1), _3(true), _4(false), _5(textlen), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textlen"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TEXTLENOID), _1("textlen"), _2(1), _3(true), _4(false), _5(textlen), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textlen"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("length"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "textlike", 1, - AddBuiltinFunc(_0(850), _1("textlike"), _2(2), _3(true), _4(false), _5(textlike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textlike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(850), _1("textlike"), _2(2), _3(true), _4(false), _5(textlike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textlike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("matches LIKE expression"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "textne", 1, - AddBuiltinFunc(_0(157), _1("textne"), _2(2), _3(true), _4(false), _5(textne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(157), _1("textne"), _2(2), _3(true), _4(false), _5(textne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "textnlike", 1, - AddBuiltinFunc(_0(851), _1("textnlike"), _2(2), _3(true), _4(false), _5(textnlike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textnlike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(851), _1("textnlike"), _2(2), _3(true), _4(false), _5(textnlike), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textnlike"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("does not match LIKE expression"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "textout", 1, - AddBuiltinFunc(_0(47), _1("textout"), _2(1), _3(true), _4(false), _5(textout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(47), _1("textout"), _2(1), _3(true), _4(false), _5(textout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "textrecv", 1, - AddBuiltinFunc(_0(2414), _1("textrecv"), _2(1), _3(true), _4(false), _5(textrecv), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2414), _1("textrecv"), _2(1), _3(true), _4(false), _5(textrecv), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "textregexeq", 1, - AddBuiltinFunc(_0(1254), _1("textregexeq"), _2(2), _3(true), _4(false), _5(textregexeq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textregexeq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1254), _1("textregexeq"), _2(2), _3(true), _4(false), _5(textregexeq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textregexeq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "textregexne", 1, - AddBuiltinFunc(_0(1256), _1("textregexne"), _2(2), _3(true), _4(false), _5(textregexne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textregexne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1256), _1("textregexne"), _2(2), _3(true), _4(false), _5(textregexne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textregexne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "textsend", 1, - AddBuiltinFunc(_0(2415), _1("textsend"), _2(1), _3(true), _4(false), _5(textsend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textsend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2415), _1("textsend"), _2(1), _3(true), _4(false), _5(textsend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("textsend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "thesaurus_init", 1, - AddBuiltinFunc(_0(3740), _1("thesaurus_init"), _2(1), _3(true), _4(false), _5(thesaurus_init), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("thesaurus_init"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3740), _1("thesaurus_init"), _2(1), _3(true), _4(false), _5(thesaurus_init), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("thesaurus_init"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("(internal)"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "thesaurus_lexize", 1, - AddBuiltinFunc(_0(3741), _1("thesaurus_lexize"), _2(4), _3(true), _4(false), _5(thesaurus_lexize), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("thesaurus_lexize"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3741), _1("thesaurus_lexize"), _2(4), _3(true), _4(false), _5(thesaurus_lexize), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("thesaurus_lexize"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("(internal)"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "threadpool_status", 1, - AddBuiltinFunc(_0(3956), _1("threadpool_status"), _2(0), _3(false), _4(true), _5(gs_threadpool_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(8, 25, 23, 23, 23, 23, 25, 25, 25), _22(8, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(8, "node_name", "group_id", "bind_numa_id", "bind_cpu_number", "listener", "worker_info", "session_info", "stream_info"), _24(NULL), _25("gs_threadpool_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3956), _1("threadpool_status"), _2(0), _3(false), _4(true), _5(gs_threadpool_status), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(8, 25, 23, 23, 23, 23, 25, 25, 25), _22(8, 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o'), _23(8, "node_name", "group_id", "bind_numa_id", "bind_cpu_number", "listener", "worker_info", "session_info", "stream_info"), _24(NULL), _25("gs_threadpool_status"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tideq", 1, - AddBuiltinFunc(_0(1292), _1("tideq"), _2(2), _3(true), _4(false), _5(tideq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 27, 27), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tideq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1292), _1("tideq"), _2(2), _3(true), _4(false), _5(tideq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 27, 27), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tideq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tidge", 1, - AddBuiltinFunc(_0(2792), _1("tidge"), _2(2), _3(true), _4(false), _5(tidge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 27, 27), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tidge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2792), _1("tidge"), _2(2), _3(true), _4(false), _5(tidge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 27, 27), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tidge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tidgt", 1, - AddBuiltinFunc(_0(2790), _1("tidgt"), _2(2), _3(true), _4(false), _5(tidgt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 27, 27), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tidgt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2790), _1("tidgt"), _2(2), _3(true), _4(false), _5(tidgt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 27, 27), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tidgt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tidin", 1, - AddBuiltinFunc(_0(48), _1("tidin"), _2(1), _3(true), _4(false), _5(tidin), _6(27), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tidin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(48), _1("tidin"), _2(1), _3(true), _4(false), _5(tidin), _6(27), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tidin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tidlarger", 1, - AddBuiltinFunc(_0(2795), _1("tidlarger"), _2(2), _3(true), _4(false), _5(tidlarger), _6(27), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 27, 27), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tidlarger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2795), _1("tidlarger"), _2(2), _3(true), _4(false), _5(tidlarger), _6(27), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 27, 27), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tidlarger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("larger of two"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tidle", 1, - AddBuiltinFunc(_0(2793), _1("tidle"), _2(2), _3(true), _4(false), _5(tidle), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 27, 27), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tidle"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2793), _1("tidle"), _2(2), _3(true), _4(false), _5(tidle), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 27, 27), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tidle"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tidlt", 1, - AddBuiltinFunc(_0(2791), _1("tidlt"), _2(2), _3(true), _4(false), _5(tidlt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 27, 27), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tidlt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2791), _1("tidlt"), _2(2), _3(true), _4(false), _5(tidlt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 27, 27), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tidlt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tidne", 1, - AddBuiltinFunc(_0(1265), _1("tidne"), _2(2), _3(true), _4(false), _5(tidne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 27, 27), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tidne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1265), _1("tidne"), _2(2), _3(true), _4(false), _5(tidne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 27, 27), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tidne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tidout", 1, - AddBuiltinFunc(_0(49), _1("tidout"), _2(1), _3(true), _4(false), _5(tidout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 27), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tidout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(49), _1("tidout"), _2(1), _3(true), _4(false), _5(tidout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 27), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tidout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tidrecv", 1, - AddBuiltinFunc(_0(2438), _1("tidrecv"), _2(1), _3(true), _4(false), _5(tidrecv), _6(27), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tidrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2438), _1("tidrecv"), _2(1), _3(true), _4(false), _5(tidrecv), _6(27), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tidrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tidsend", 1, - AddBuiltinFunc(_0(2439), _1("tidsend"), _2(1), _3(true), _4(false), _5(tidsend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 27), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tidsend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2439), _1("tidsend"), _2(1), _3(true), _4(false), _5(tidsend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 27), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tidsend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tidsmaller", 1, - AddBuiltinFunc(_0(2796), _1("tidsmaller"), _2(2), _3(true), _4(false), _5(tidsmaller), _6(27), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 27, 27), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tidsmaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2796), _1("tidsmaller"), _2(2), _3(true), _4(false), _5(tidsmaller), _6(27), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 27, 27), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tidsmaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("smaller of two"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "time", 6, - AddBuiltinFunc(_0(1316), _1("time"), _2(1), _3(true), _4(false), _5(timestamp_time), _6(1083), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(ABSTIME2TIMEFUNCOID), _1("time"), _2(1), _3(true), _4(false), _5(NULL), _6(1083), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 702), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select cast(cast($1 as timestamp without time zone) as pg_catalog.time)"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1419), _1("time"), _2(1), _3(true), _4(false), _5(interval_time), _6(1083), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1968), _1("time"), _2(2), _3(true), _4(false), _5(time_scale), _6(1083), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(3944), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1083, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_scale"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(TIMESTAMPTZ2TIMEFUNCOID), _1("time"), _2(1), _3(true), _4(false), _5(timestamptz_time), _6(1083), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2046), _1("time"), _2(1), _3(true), _4(false), _5(timetz_time), _6(1083), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetz_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1316), _1("time"), _2(1), _3(true), _4(false), _5(timestamp_time), _6(1083), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert timestamp to time"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(ABSTIME2TIMEFUNCOID), _1("time"), _2(1), _3(true), _4(false), _5(NULL), _6(1083), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 702), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select cast(cast($1 as timestamp without time zone) as pg_catalog.time)"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1419), _1("time"), _2(1), _3(true), _4(false), _5(interval_time), _6(1083), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert interval to time"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1968), _1("time"), _2(2), _3(true), _4(false), _5(time_scale), _6(1083), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(3944), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1083, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_scale"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("adjust time precision"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(TIMESTAMPTZ2TIMEFUNCOID), _1("time"), _2(1), _3(true), _4(false), _5(timestamptz_time), _6(1083), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("convert timestamp with time zone to time"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2046), _1("time"), _2(1), _3(true), _4(false), _5(timetz_time), _6(1083), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetz_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert time with time zone to time"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "time_cmp", 1, - AddBuiltinFunc(_0(1107), _1("time_cmp"), _2(2), _3(true), _4(false), _5(time_cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1083, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1107), _1("time_cmp"), _2(2), _3(true), _4(false), _5(time_cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1083, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "time_eq", 1, - AddBuiltinFunc(_0(1145), _1("time_eq"), _2(2), _3(true), _4(false), _5(time_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1083, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1145), _1("time_eq"), _2(2), _3(true), _4(false), _5(time_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1083, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "time_ge", 1, - AddBuiltinFunc(_0(1105), _1("time_ge"), _2(2), _3(true), _4(false), _5(time_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1083, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1105), _1("time_ge"), _2(2), _3(true), _4(false), _5(time_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1083, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "time_gt", 1, - AddBuiltinFunc(_0(1104), _1("time_gt"), _2(2), _3(true), _4(false), _5(time_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1083, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1104), _1("time_gt"), _2(2), _3(true), _4(false), _5(time_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1083, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "time_hash", 1, - AddBuiltinFunc(_0(1688), _1("time_hash"), _2(1), _3(true), _4(false), _5(time_hash), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_hash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1688), _1("time_hash"), _2(1), _3(true), _4(false), _5(time_hash), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_hash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("hash"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "time_in", 1, - AddBuiltinFunc(_0(TIMEINFUNCOID), _1("time_in"), _2(3), _3(true), _4(false), _5(time_in), _6(1083), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 2275, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TIMEINFUNCOID), _1("time_in"), _2(3), _3(true), _4(false), _5(time_in), _6(1083), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 2275, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "time_larger", 1, - AddBuiltinFunc(_0(1377), _1("time_larger"), _2(2), _3(true), _4(false), _5(time_larger), _6(1083), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1083, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_larger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1377), _1("time_larger"), _2(2), _3(true), _4(false), _5(time_larger), _6(1083), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1083, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_larger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("larger of two"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "time_le", 1, - AddBuiltinFunc(_0(1103), _1("time_le"), _2(2), _3(true), _4(false), _5(time_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1083, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1103), _1("time_le"), _2(2), _3(true), _4(false), _5(time_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1083, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "time_lt", 1, - AddBuiltinFunc(_0(1102), _1("time_lt"), _2(2), _3(true), _4(false), _5(time_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1083, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1102), _1("time_lt"), _2(2), _3(true), _4(false), _5(time_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1083, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "time_mi_interval", 1, - AddBuiltinFunc(_0(1748), _1("time_mi_interval"), _2(2), _3(true), _4(false), _5(time_mi_interval), _6(1083), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1083, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_mi_interval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1748), _1("time_mi_interval"), _2(2), _3(true), _4(false), _5(time_mi_interval), _6(1083), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1083, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_mi_interval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "time_mi_time", 1, - AddBuiltinFunc(_0(1690), _1("time_mi_time"), _2(2), _3(true), _4(false), _5(time_mi_time), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1083, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_mi_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1690), _1("time_mi_time"), _2(2), _3(true), _4(false), _5(time_mi_time), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1083, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_mi_time"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "time_ne", 1, - AddBuiltinFunc(_0(1106), _1("time_ne"), _2(2), _3(true), _4(false), _5(time_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1083, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1106), _1("time_ne"), _2(2), _3(true), _4(false), _5(time_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1083, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "time_out", 1, - AddBuiltinFunc(_0(TIMEOUTFUNCOID), _1("time_out"), _2(1), _3(true), _4(false), _5(time_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TIMEOUTFUNCOID), _1("time_out"), _2(1), _3(true), _4(false), _5(time_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "time_pl_interval", 1, - AddBuiltinFunc(_0(1747), _1("time_pl_interval"), _2(2), _3(true), _4(false), _5(time_pl_interval), _6(1083), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1083, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_pl_interval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1747), _1("time_pl_interval"), _2(2), _3(true), _4(false), _5(time_pl_interval), _6(1083), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1083, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_pl_interval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "time_recv", 1, - AddBuiltinFunc(_0(2470), _1("time_recv"), _2(3), _3(true), _4(false), _5(time_recv), _6(1083), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2470), _1("time_recv"), _2(3), _3(true), _4(false), _5(time_recv), _6(1083), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "time_send", 1, - AddBuiltinFunc(_0(2471), _1("time_send"), _2(1), _3(true), _4(false), _5(time_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2471), _1("time_send"), _2(1), _3(true), _4(false), _5(time_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "time_smaller", 1, - AddBuiltinFunc(_0(1378), _1("time_smaller"), _2(2), _3(true), _4(false), _5(time_smaller), _6(1083), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1083, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_smaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1378), _1("time_smaller"), _2(2), _3(true), _4(false), _5(time_smaller), _6(1083), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1083, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_smaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("smaller of two"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "time_transform", 1, - AddBuiltinFunc(_0(3944), _1("time_transform"), _2(1), _3(true), _4(false), _5(time_transform), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_transform"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3944), _1("time_transform"), _2(1), _3(true), _4(false), _5(time_transform), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_transform"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timedate_pl", 1, - AddBuiltinFunc(_0(1296), _1("timedate_pl"), _2(2), _3(true), _4(false), _5(NULL), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1083, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select ($2 + $1)"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1296), _1("timedate_pl"), _2(2), _3(true), _4(false), _5(NULL), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1083, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select ($2 + $1)"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timemi", 1, - AddBuiltinFunc(_0(245), _1("timemi"), _2(2), _3(true), _4(false), _5(timemi), _6(702), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 702, 703), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timemi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(245), _1("timemi"), _2(2), _3(true), _4(false), _5(timemi), _6(702), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 702, 703), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timemi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timenow", 1, - AddBuiltinFunc(_0(TIMENOWFUNCOID), _1("timenow"), _2(0), _3(true), _4(false), _5(timenow), _6(702), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timenow"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TIMENOWFUNCOID), _1("timenow"), _2(0), _3(true), _4(false), _5(timenow), _6(702), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timenow"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timeofday", 1, - AddBuiltinFunc(_0(274), _1("timeofday"), _2(0), _3(true), _4(false), _5(timeofday), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timeofday"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(274), _1("timeofday"), _2(0), _3(true), _4(false), _5(timeofday), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timeofday"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("current date and time - increments during transactions"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timepl", 1, - AddBuiltinFunc(_0(244), _1("timepl"), _2(2), _3(true), _4(false), _5(timepl), _6(702), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 702, 703), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timepl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(244), _1("timepl"), _2(2), _3(true), _4(false), _5(timepl), _6(702), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 702, 703), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timepl"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamp", 5, - AddBuiltinFunc(_0(1961), _1("timestamp"), _2(2), _3(true), _4(false), _5(timestamp_scale), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(3917), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_scale"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(ABSTIMETIMESTAMPFUNCOID), _1("timestamp"), _2(1), _3(true), _4(false), _5(abstime_timestamp), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 702), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("abstime_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2024), _1("timestamp"), _2(1), _3(true), _4(false), _5(date_timestamp), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2025), _1("timestamp"), _2(2), _3(true), _4(false), _5(datetime_timestamp), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("datetime_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(TIMESTAMPTZ2TIMESTAMPFUNCOID), _1("timestamp"), _2(1), _3(true), _4(false), _5(timestamptz_timestamp), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1961), _1("timestamp"), _2(2), _3(true), _4(false), _5(timestamp_scale), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(3917), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_scale"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("adjust timestamp precision"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(ABSTIMETIMESTAMPFUNCOID), _1("timestamp"), _2(1), _3(true), _4(false), _5(abstime_timestamp), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 702), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("abstime_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2024), _1("timestamp"), _2(1), _3(true), _4(false), _5(date_timestamp), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2025), _1("timestamp"), _2(2), _3(true), _4(false), _5(datetime_timestamp), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("datetime_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(TIMESTAMPTZ2TIMESTAMPFUNCOID), _1("timestamp"), _2(1), _3(true), _4(false), _5(timestamptz_timestamp), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("convert timestamp with time zone to timestamp"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamp_cmp", 1, - AddBuiltinFunc(_0(2045), _1("timestamp_cmp"), _2(2), _3(true), _4(false), _5(timestamp_cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2045), _1("timestamp_cmp"), _2(2), _3(true), _4(false), _5(timestamp_cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamp_cmp_date", 1, - AddBuiltinFunc(_0(2370), _1("timestamp_cmp_date"), _2(2), _3(true), _4(false), _5(timestamp_cmp_date), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_cmp_date"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2370), _1("timestamp_cmp_date"), _2(2), _3(true), _4(false), _5(timestamp_cmp_date), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_cmp_date"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamp_cmp_timestamptz", 1, - AddBuiltinFunc(_0(TIMESTAMPCMPTIMESTAMPTZFUNCOID), _1("timestamp_cmp_timestamptz"), _2(2), _3(true), _4(false), _5(timestamp_cmp_timestamptz), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1114, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_cmp_timestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TIMESTAMPCMPTIMESTAMPTZFUNCOID), _1("timestamp_cmp_timestamptz"), _2(2), _3(true), _4(false), _5(timestamp_cmp_timestamptz), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1114, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_cmp_timestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamp_diff", 2, - AddBuiltinFunc(_0(3227), _1("timestamp_diff"), _2(3), _3(true), _4(false), _5(timestamp_diff), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 1184, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_diff"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3226), _1("timestamp_diff"), _2(3), _3(true), _4(false), _5(timestamp_diff), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 1114, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.timestamp_diff($1, cast($2 as timestamp with time zone), cast($3 as timestamp with time zone))"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3227), _1("timestamp_diff"), _2(3), _3(true), _4(false), _5(timestamp_diff), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 1184, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_diff"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3226), _1("timestamp_diff"), _2(3), _3(true), _4(false), _5(timestamp_diff), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 1114, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.timestamp_diff($1, cast($2 as timestamp with time zone), cast($3 as timestamp with time zone))"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamp_eq", 1, - AddBuiltinFunc(_0(2052), _1("timestamp_eq"), _2(2), _3(true), _4(false), _5(timestamp_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1114, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2052), _1("timestamp_eq"), _2(2), _3(true), _4(false), _5(timestamp_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1114, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamp_eq_date", 1, - AddBuiltinFunc(_0(2366), _1("timestamp_eq_date"), _2(2), _3(true), _4(false), _5(timestamp_eq_date), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_eq_date"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2366), _1("timestamp_eq_date"), _2(2), _3(true), _4(false), _5(timestamp_eq_date), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_eq_date"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamp_eq_timestamptz", 1, - AddBuiltinFunc(_0(TIMESTAMPEQTIMESTAMPTZFUNCOID), _1("timestamp_eq_timestamptz"), _2(2), _3(true), _4(false), _5(timestamp_eq_timestamptz), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1114, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_eq_timestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TIMESTAMPEQTIMESTAMPTZFUNCOID), _1("timestamp_eq_timestamptz"), _2(2), _3(true), _4(false), _5(timestamp_eq_timestamptz), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1114, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_eq_timestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamp_ge", 1, - AddBuiltinFunc(_0(2056), _1("timestamp_ge"), _2(2), _3(true), _4(false), _5(timestamp_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1114, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2056), _1("timestamp_ge"), _2(2), _3(true), _4(false), _5(timestamp_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1114, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamp_ge_date", 1, - AddBuiltinFunc(_0(2368), _1("timestamp_ge_date"), _2(2), _3(true), _4(false), _5(timestamp_ge_date), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_ge_date"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2368), _1("timestamp_ge_date"), _2(2), _3(true), _4(false), _5(timestamp_ge_date), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_ge_date"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamp_ge_timestamptz", 1, - AddBuiltinFunc(_0(TIMESTAMPGETIMESTAMPTZFUNCOID), _1("timestamp_ge_timestamptz"), _2(2), _3(true), _4(false), _5(timestamp_ge_timestamptz), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1114, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_ge_timestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TIMESTAMPGETIMESTAMPTZFUNCOID), _1("timestamp_ge_timestamptz"), _2(2), _3(true), _4(false), _5(timestamp_ge_timestamptz), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1114, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_ge_timestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamp_gt", 1, - AddBuiltinFunc(_0(2057), _1("timestamp_gt"), _2(2), _3(true), _4(false), _5(timestamp_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1114, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2057), _1("timestamp_gt"), _2(2), _3(true), _4(false), _5(timestamp_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1114, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamp_gt_date", 1, - AddBuiltinFunc(_0(2367), _1("timestamp_gt_date"), _2(2), _3(true), _4(false), _5(timestamp_gt_date), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_gt_date"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2367), _1("timestamp_gt_date"), _2(2), _3(true), _4(false), _5(timestamp_gt_date), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_gt_date"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamp_gt_timestamptz", 1, - AddBuiltinFunc(_0(TIMESTAMPGTTIMESTAMPTZFUNCOID), _1("timestamp_gt_timestamptz"), _2(2), _3(true), _4(false), _5(timestamp_gt_timestamptz), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1114, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_gt_timestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TIMESTAMPGTTIMESTAMPTZFUNCOID), _1("timestamp_gt_timestamptz"), _2(2), _3(true), _4(false), _5(timestamp_gt_timestamptz), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1114, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_gt_timestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamp_hash", 1, - AddBuiltinFunc(_0(TIMESTAMPHASHOID), _1("timestamp_hash"), _2(1), _3(true), _4(false), _5(timestamp_hash), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_hash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TIMESTAMPHASHOID), _1("timestamp_hash"), _2(1), _3(true), _4(false), _5(timestamp_hash), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_hash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("hash"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamp_in", 1, - AddBuiltinFunc(_0(TIMESTAMPINFUNCOID), _1("timestamp_in"), _2(3), _3(true), _4(false), _5(timestamp_in), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 2275, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TIMESTAMPINFUNCOID), _1("timestamp_in"), _2(3), _3(true), _4(false), _5(timestamp_in), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 2275, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamp_larger", 1, - AddBuiltinFunc(_0(2036), _1("timestamp_larger"), _2(2), _3(true), _4(false), _5(timestamp_larger), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_larger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2036), _1("timestamp_larger"), _2(2), _3(true), _4(false), _5(timestamp_larger), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_larger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("larger of two"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamp_le", 1, - AddBuiltinFunc(_0(2055), _1("timestamp_le"), _2(2), _3(true), _4(false), _5(timestamp_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1114, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2055), _1("timestamp_le"), _2(2), _3(true), _4(false), _5(timestamp_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1114, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamp_le_date", 1, - AddBuiltinFunc(_0(2365), _1("timestamp_le_date"), _2(2), _3(true), _4(false), _5(timestamp_le_date), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_le_date"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2365), _1("timestamp_le_date"), _2(2), _3(true), _4(false), _5(timestamp_le_date), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_le_date"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamp_le_timestamptz", 1, - AddBuiltinFunc(_0(TIMESTAMPLETIMESTAMPTZFUNCOID), _1("timestamp_le_timestamptz"), _2(2), _3(true), _4(false), _5(timestamp_le_timestamptz), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1114, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_le_timestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TIMESTAMPLETIMESTAMPTZFUNCOID), _1("timestamp_le_timestamptz"), _2(2), _3(true), _4(false), _5(timestamp_le_timestamptz), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1114, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_le_timestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamp_list_agg_noarg2_transfn", 1, - AddBuiltinFunc(_0(3585), _1("timestamp_list_agg_noarg2_transfn"), _2(2), _3(false), _4(false), _5(timestamp_list_agg_noarg2_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_list_agg_noarg2_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3585), _1("timestamp_list_agg_noarg2_transfn"), _2(2), _3(false), _4(false), _5(timestamp_list_agg_noarg2_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_list_agg_noarg2_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamp_list_agg_transfn", 1, - AddBuiltinFunc(_0(3583), _1("timestamp_list_agg_transfn"), _2(3), _3(false), _4(false), _5(timestamp_list_agg_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 1114, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_list_agg_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3583), _1("timestamp_list_agg_transfn"), _2(3), _3(false), _4(false), _5(timestamp_list_agg_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 1114, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_list_agg_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamp_lt", 1, - AddBuiltinFunc(_0(2054), _1("timestamp_lt"), _2(2), _3(true), _4(false), _5(timestamp_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1114, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2054), _1("timestamp_lt"), _2(2), _3(true), _4(false), _5(timestamp_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1114, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamp_lt_date", 1, - AddBuiltinFunc(_0(2364), _1("timestamp_lt_date"), _2(2), _3(true), _4(false), _5(timestamp_lt_date), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_lt_date"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2364), _1("timestamp_lt_date"), _2(2), _3(true), _4(false), _5(timestamp_lt_date), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_lt_date"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamp_lt_timestamptz", 1, - AddBuiltinFunc(_0(TIMESTAMPLTTIMESTAMPTZFUNCOID), _1("timestamp_lt_timestamptz"), _2(2), _3(true), _4(false), _5(timestamp_lt_timestamptz), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1114, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_lt_timestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TIMESTAMPLTTIMESTAMPTZFUNCOID), _1("timestamp_lt_timestamptz"), _2(2), _3(true), _4(false), _5(timestamp_lt_timestamptz), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1114, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_lt_timestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamp_mi", 1, - AddBuiltinFunc(_0(2031), _1("timestamp_mi"), _2(2), _3(true), _4(false), _5(timestamp_mi), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_mi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2031), _1("timestamp_mi"), _2(2), _3(true), _4(false), _5(timestamp_mi), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_mi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamp_mi_interval", 1, - AddBuiltinFunc(_0(2033), _1("timestamp_mi_interval"), _2(2), _3(true), _4(false), _5(timestamp_mi_interval), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_mi_interval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2033), _1("timestamp_mi_interval"), _2(2), _3(true), _4(false), _5(timestamp_mi_interval), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_mi_interval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamp_ne", 1, - AddBuiltinFunc(_0(2053), _1("timestamp_ne"), _2(2), _3(true), _4(false), _5(timestamp_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1114, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2053), _1("timestamp_ne"), _2(2), _3(true), _4(false), _5(timestamp_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1114, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamp_ne_date", 1, - AddBuiltinFunc(_0(2369), _1("timestamp_ne_date"), _2(2), _3(true), _4(false), _5(timestamp_ne_date), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_ne_date"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2369), _1("timestamp_ne_date"), _2(2), _3(true), _4(false), _5(timestamp_ne_date), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_ne_date"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamp_ne_timestamptz", 1, - AddBuiltinFunc(_0(TIMESTAMPNETIMESTAMPTZFUNCOID), _1("timestamp_ne_timestamptz"), _2(2), _3(true), _4(false), _5(timestamp_ne_timestamptz), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1114, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_ne_timestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TIMESTAMPNETIMESTAMPTZFUNCOID), _1("timestamp_ne_timestamptz"), _2(2), _3(true), _4(false), _5(timestamp_ne_timestamptz), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1114, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_ne_timestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamp_out", 1, - AddBuiltinFunc(_0(TIMESTAMPOUTFUNCOID), _1("timestamp_out"), _2(1), _3(true), _4(false), _5(timestamp_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TIMESTAMPOUTFUNCOID), _1("timestamp_out"), _2(1), _3(true), _4(false), _5(timestamp_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamp_pl_interval", 1, - AddBuiltinFunc(_0(2032), _1("timestamp_pl_interval"), _2(2), _3(true), _4(false), _5(timestamp_pl_interval), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_pl_interval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2032), _1("timestamp_pl_interval"), _2(2), _3(true), _4(false), _5(timestamp_pl_interval), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_pl_interval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamp_recv", 1, - AddBuiltinFunc(_0(2474), _1("timestamp_recv"), _2(3), _3(true), _4(false), _5(timestamp_recv), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2474), _1("timestamp_recv"), _2(3), _3(true), _4(false), _5(timestamp_recv), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamp_send", 1, - AddBuiltinFunc(_0(2475), _1("timestamp_send"), _2(1), _3(true), _4(false), _5(timestamp_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2475), _1("timestamp_send"), _2(1), _3(true), _4(false), _5(timestamp_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamp_smaller", 1, - AddBuiltinFunc(_0(2035), _1("timestamp_smaller"), _2(2), _3(true), _4(false), _5(timestamp_smaller), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_smaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2035), _1("timestamp_smaller"), _2(2), _3(true), _4(false), _5(timestamp_smaller), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_smaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("smaller of two"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamp_sortsupport", 1, - AddBuiltinFunc(_0(3137), _1("timestamp_sortsupport"), _2(1), _3(true), _4(false), _5(timestamp_sortsupport), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_sortsupport"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3137), _1("timestamp_sortsupport"), _2(1), _3(true), _4(false), _5(timestamp_sortsupport), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_sortsupport"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("sort support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamp_text", 1, - AddBuiltinFunc(_0(4178), _1("timestamp_text"), _2(1), _3(true), _4(false), _5(timestamp_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4178), _1("timestamp_text"), _2(1), _3(true), _4(false), _5(timestamp_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamp_transform", 1, - AddBuiltinFunc(_0(3917), _1("timestamp_transform"), _2(1), _3(true), _4(false), _5(timestamp_transform), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_transform"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3917), _1("timestamp_transform"), _2(1), _3(true), _4(false), _5(timestamp_transform), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_transform"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamp_varchar", 1, - AddBuiltinFunc(_0(4179), _1("timestamp_varchar"), _2(1), _3(true), _4(false), _5(timestamp_varchar), _6(1043), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_varchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4179), _1("timestamp_varchar"), _2(1), _3(true), _4(false), _5(timestamp_varchar), _6(1043), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_varchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamptypmodin", 1, - AddBuiltinFunc(_0(2905), _1("timestamptypmodin"), _2(1), _3(true), _4(false), _5(timestamptypmodin), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1263), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptypmodin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2905), _1("timestamptypmodin"), _2(1), _3(true), _4(false), _5(timestamptypmodin), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1263), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptypmodin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O typmod"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamptypmodout", 1, - AddBuiltinFunc(_0(2906), _1("timestamptypmodout"), _2(1), _3(true), _4(false), _5(timestamptypmodout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptypmodout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2906), _1("timestamptypmodout"), _2(1), _3(true), _4(false), _5(timestamptypmodout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptypmodout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O typmod"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamptz", 6, - AddBuiltinFunc(_0(1173), _1("timestamptz"), _2(1), _3(true), _4(false), _5(abstime_timestamptz), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 702), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("abstime_timestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(DATETIMESTAMPTZFUNCOID), _1("timestamptz"), _2(1), _3(true), _4(false), _5(date_timestamptz), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_timestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(DTAETIME2TIMESTAMPTZFUNCOID), _1("timestamptz"), _2(2), _3(true), _4(false), _5(NULL), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1082, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select cast(($1 + $2) as timestamp with time zone)"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1359), _1("timestamptz"), _2(2), _3(true), _4(false), _5(datetimetz_timestamptz), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("datetimetz_timestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1967), _1("timestamptz"), _2(2), _3(true), _4(false), _5(timestamptz_scale), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(3917), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1184, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_scale"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(TIMESTAMP2TIMESTAMPTZFUNCOID), _1("timestamptz"), _2(1), _3(true), _4(false), _5(timestamp_timestamptz), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_timestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1173), _1("timestamptz"), _2(1), _3(true), _4(false), _5(abstime_timestamptz), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 702), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("abstime_timestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(DATETIMESTAMPTZFUNCOID), _1("timestamptz"), _2(1), _3(true), _4(false), _5(date_timestamptz), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("date_timestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("convert date to timestamp with time zone"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(DTAETIME2TIMESTAMPTZFUNCOID), _1("timestamptz"), _2(2), _3(true), _4(false), _5(NULL), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1082, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select cast(($1 + $2) as timestamp with time zone)"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1359), _1("timestamptz"), _2(2), _3(true), _4(false), _5(datetimetz_timestamptz), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1082, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("datetimetz_timestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1967), _1("timestamptz"), _2(2), _3(true), _4(false), _5(timestamptz_scale), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(3917), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1184, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_scale"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("adjust timestamptz precision"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(TIMESTAMP2TIMESTAMPTZFUNCOID), _1("timestamptz"), _2(1), _3(true), _4(false), _5(timestamp_timestamptz), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_timestamptz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("convert timestamp to timestamp with time zone"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamptz_cmp", 1, - AddBuiltinFunc(_0(1314), _1("timestamptz_cmp"), _2(2), _3(true), _4(false), _5(timestamp_cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1184, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1314), _1("timestamptz_cmp"), _2(2), _3(true), _4(false), _5(timestamp_cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1184, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamptz_cmp_date", 1, - AddBuiltinFunc(_0(TIMESTAMPTZCMPDATEFUNCOID), _1("timestamptz_cmp_date"), _2(2), _3(true), _4(false), _5(timestamptz_cmp_date), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1184, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_cmp_date"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TIMESTAMPTZCMPDATEFUNCOID), _1("timestamptz_cmp_date"), _2(2), _3(true), _4(false), _5(timestamptz_cmp_date), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1184, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_cmp_date"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamptz_cmp_timestamp", 1, - AddBuiltinFunc(_0(TIMESTAMPTZCMPTIMESTAMPFUNCOID), _1("timestamptz_cmp_timestamp"), _2(2), _3(true), _4(false), _5(timestamptz_cmp_timestamp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1184, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_cmp_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TIMESTAMPTZCMPTIMESTAMPFUNCOID), _1("timestamptz_cmp_timestamp"), _2(2), _3(true), _4(false), _5(timestamptz_cmp_timestamp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1184, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_cmp_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamptz_eq", 1, - AddBuiltinFunc(_0(1152), _1("timestamptz_eq"), _2(2), _3(true), _4(false), _5(timestamp_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1184, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1152), _1("timestamptz_eq"), _2(2), _3(true), _4(false), _5(timestamp_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1184, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamptz_eq_date", 1, - AddBuiltinFunc(_0(TIMESTAMPTZEQDATEFUNCOID), _1("timestamptz_eq_date"), _2(2), _3(true), _4(false), _5(timestamptz_eq_date), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1184, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_eq_date"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TIMESTAMPTZEQDATEFUNCOID), _1("timestamptz_eq_date"), _2(2), _3(true), _4(false), _5(timestamptz_eq_date), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1184, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_eq_date"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamptz_eq_timestamp", 1, - AddBuiltinFunc(_0(TIMESTAMPTZEQTIMESTAMPFUNCOID), _1("timestamptz_eq_timestamp"), _2(2), _3(true), _4(false), _5(timestamptz_eq_timestamp), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1184, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_eq_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TIMESTAMPTZEQTIMESTAMPFUNCOID), _1("timestamptz_eq_timestamp"), _2(2), _3(true), _4(false), _5(timestamptz_eq_timestamp), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1184, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_eq_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamptz_ge", 1, - AddBuiltinFunc(_0(1156), _1("timestamptz_ge"), _2(2), _3(true), _4(false), _5(timestamp_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1184, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1156), _1("timestamptz_ge"), _2(2), _3(true), _4(false), _5(timestamp_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1184, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamptz_ge_date", 1, - AddBuiltinFunc(_0(TIMESTAMPTZGEDATEFUNCOID), _1("timestamptz_ge_date"), _2(2), _3(true), _4(false), _5(timestamptz_ge_date), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1184, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_ge_date"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TIMESTAMPTZGEDATEFUNCOID), _1("timestamptz_ge_date"), _2(2), _3(true), _4(false), _5(timestamptz_ge_date), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1184, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_ge_date"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamptz_ge_timestamp", 1, - AddBuiltinFunc(_0(TIMESTAMPTZGETIMESTAMPFUNCOID), _1("timestamptz_ge_timestamp"), _2(2), _3(true), _4(false), _5(timestamptz_ge_timestamp), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1184, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_ge_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TIMESTAMPTZGETIMESTAMPFUNCOID), _1("timestamptz_ge_timestamp"), _2(2), _3(true), _4(false), _5(timestamptz_ge_timestamp), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1184, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_ge_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamptz_gt", 1, - AddBuiltinFunc(_0(1157), _1("timestamptz_gt"), _2(2), _3(true), _4(false), _5(timestamp_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1184, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1157), _1("timestamptz_gt"), _2(2), _3(true), _4(false), _5(timestamp_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1184, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamptz_gt_date", 1, - AddBuiltinFunc(_0(TIMESTAMPTZGTDATEFUNCOID), _1("timestamptz_gt_date"), _2(2), _3(true), _4(false), _5(timestamptz_gt_date), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1184, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_gt_date"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TIMESTAMPTZGTDATEFUNCOID), _1("timestamptz_gt_date"), _2(2), _3(true), _4(false), _5(timestamptz_gt_date), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1184, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_gt_date"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamptz_gt_timestamp", 1, - AddBuiltinFunc(_0(TIMESTAMPTZGTTIMESTAMPFUNCOID), _1("timestamptz_gt_timestamp"), _2(2), _3(true), _4(false), _5(timestamptz_gt_timestamp), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1184, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_gt_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TIMESTAMPTZGTTIMESTAMPFUNCOID), _1("timestamptz_gt_timestamp"), _2(2), _3(true), _4(false), _5(timestamptz_gt_timestamp), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1184, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_gt_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamptz_in", 1, - AddBuiltinFunc(_0(TIMESTAMPTZINFUNCOID), _1("timestamptz_in"), _2(3), _3(true), _4(false), _5(timestamptz_in), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 2275, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TIMESTAMPTZINFUNCOID), _1("timestamptz_in"), _2(3), _3(true), _4(false), _5(timestamptz_in), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 2275, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamptz_larger", 1, - AddBuiltinFunc(_0(1196), _1("timestamptz_larger"), _2(2), _3(true), _4(false), _5(timestamp_larger), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1184, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_larger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1196), _1("timestamptz_larger"), _2(2), _3(true), _4(false), _5(timestamp_larger), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1184, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_larger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("larger of two"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamptz_le", 1, - AddBuiltinFunc(_0(1155), _1("timestamptz_le"), _2(2), _3(true), _4(false), _5(timestamp_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1184, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1155), _1("timestamptz_le"), _2(2), _3(true), _4(false), _5(timestamp_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1184, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamptz_le_date", 1, - AddBuiltinFunc(_0(TIMESTAMPTZLEDATEFUNCOID), _1("timestamptz_le_date"), _2(2), _3(true), _4(false), _5(timestamptz_le_date), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1184, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_le_date"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TIMESTAMPTZLEDATEFUNCOID), _1("timestamptz_le_date"), _2(2), _3(true), _4(false), _5(timestamptz_le_date), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1184, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_le_date"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamptz_le_timestamp", 1, - AddBuiltinFunc(_0(TIMESTAMPTZLETIMESTAMPFUNCOID), _1("timestamptz_le_timestamp"), _2(2), _3(true), _4(false), _5(timestamptz_le_timestamp), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1184, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_le_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TIMESTAMPTZLETIMESTAMPFUNCOID), _1("timestamptz_le_timestamp"), _2(2), _3(true), _4(false), _5(timestamptz_le_timestamp), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1184, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_le_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamptz_list_agg_noarg2_transfn", 1, - AddBuiltinFunc(_0(3589), _1("timestamptz_list_agg_noarg2_transfn"), _2(2), _3(false), _4(false), _5(timestamptz_list_agg_noarg2_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_list_agg_noarg2_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3589), _1("timestamptz_list_agg_noarg2_transfn"), _2(2), _3(false), _4(false), _5(timestamptz_list_agg_noarg2_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2281, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_list_agg_noarg2_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamptz_list_agg_transfn", 1, - AddBuiltinFunc(_0(3587), _1("timestamptz_list_agg_transfn"), _2(3), _3(false), _4(false), _5(timestamptz_list_agg_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 1184, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_list_agg_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3587), _1("timestamptz_list_agg_transfn"), _2(3), _3(false), _4(false), _5(timestamptz_list_agg_transfn), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 1184, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_list_agg_transfn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamptz_lt", 1, - AddBuiltinFunc(_0(1154), _1("timestamptz_lt"), _2(2), _3(true), _4(false), _5(timestamp_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1184, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1154), _1("timestamptz_lt"), _2(2), _3(true), _4(false), _5(timestamp_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1184, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamptz_lt_date", 1, - AddBuiltinFunc(_0(TIMESTAMPTZLTDATEFUNCOID), _1("timestamptz_lt_date"), _2(2), _3(true), _4(false), _5(timestamptz_lt_date), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1184, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_lt_date"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TIMESTAMPTZLTDATEFUNCOID), _1("timestamptz_lt_date"), _2(2), _3(true), _4(false), _5(timestamptz_lt_date), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1184, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_lt_date"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamptz_lt_timestamp", 1, - AddBuiltinFunc(_0(TIMESTAMPTZLTTIMESTAMPFUNCOID), _1("timestamptz_lt_timestamp"), _2(2), _3(true), _4(false), _5(timestamptz_lt_timestamp), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1184, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_lt_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TIMESTAMPTZLTTIMESTAMPFUNCOID), _1("timestamptz_lt_timestamp"), _2(2), _3(true), _4(false), _5(timestamptz_lt_timestamp), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1184, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_lt_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamptz_mi", 1, - AddBuiltinFunc(_0(1188), _1("timestamptz_mi"), _2(2), _3(true), _4(false), _5(timestamp_mi), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1184, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_mi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1188), _1("timestamptz_mi"), _2(2), _3(true), _4(false), _5(timestamp_mi), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1184, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_mi"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamptz_mi_interval", 1, - AddBuiltinFunc(_0(TIMESTAMPTZMIINTERVALFUNCOID), _1("timestamptz_mi_interval"), _2(2), _3(true), _4(false), _5(timestamptz_mi_interval), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1184, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_mi_interval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TIMESTAMPTZMIINTERVALFUNCOID), _1("timestamptz_mi_interval"), _2(2), _3(true), _4(false), _5(timestamptz_mi_interval), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1184, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_mi_interval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamptz_ne", 1, - AddBuiltinFunc(_0(1153), _1("timestamptz_ne"), _2(2), _3(true), _4(false), _5(timestamp_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1184, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1153), _1("timestamptz_ne"), _2(2), _3(true), _4(false), _5(timestamp_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1184, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamptz_ne_date", 1, - AddBuiltinFunc(_0(TIMESTAMPTZNEDATEFUNCOID), _1("timestamptz_ne_date"), _2(2), _3(true), _4(false), _5(timestamptz_ne_date), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1184, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_ne_date"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TIMESTAMPTZNEDATEFUNCOID), _1("timestamptz_ne_date"), _2(2), _3(true), _4(false), _5(timestamptz_ne_date), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1184, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_ne_date"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamptz_ne_timestamp", 1, - AddBuiltinFunc(_0(TIMESTAMPTZNETIMESTAMPFUNCOID), _1("timestamptz_ne_timestamp"), _2(2), _3(true), _4(false), _5(timestamptz_ne_timestamp), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1184, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_ne_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TIMESTAMPTZNETIMESTAMPFUNCOID), _1("timestamptz_ne_timestamp"), _2(2), _3(true), _4(false), _5(timestamptz_ne_timestamp), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1184, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_ne_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamptz_out", 1, - AddBuiltinFunc(_0(TIMESTAMPTZOUTFUNCOID), _1("timestamptz_out"), _2(1), _3(true), _4(false), _5(timestamptz_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TIMESTAMPTZOUTFUNCOID), _1("timestamptz_out"), _2(1), _3(true), _4(false), _5(timestamptz_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamptz_pl_interval", 1, - AddBuiltinFunc(_0(TIMESTAMPTZPLINTERVALFUNCOID), _1("timestamptz_pl_interval"), _2(2), _3(true), _4(false), _5(timestamptz_pl_interval), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1184, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_pl_interval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TIMESTAMPTZPLINTERVALFUNCOID), _1("timestamptz_pl_interval"), _2(2), _3(true), _4(false), _5(timestamptz_pl_interval), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1184, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_pl_interval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamptz_recv", 1, - AddBuiltinFunc(_0(2476), _1("timestamptz_recv"), _2(3), _3(true), _4(false), _5(timestamptz_recv), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2476), _1("timestamptz_recv"), _2(3), _3(true), _4(false), _5(timestamptz_recv), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamptz_send", 1, - AddBuiltinFunc(_0(2477), _1("timestamptz_send"), _2(1), _3(true), _4(false), _5(timestamptz_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2477), _1("timestamptz_send"), _2(1), _3(true), _4(false), _5(timestamptz_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamptz_smaller", 1, - AddBuiltinFunc(_0(1195), _1("timestamptz_smaller"), _2(2), _3(true), _4(false), _5(timestamp_smaller), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1184, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_smaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1195), _1("timestamptz_smaller"), _2(2), _3(true), _4(false), _5(timestamp_smaller), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1184, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_smaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("smaller of two"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamptztypmodin", 1, - AddBuiltinFunc(_0(2907), _1("timestamptztypmodin"), _2(1), _3(true), _4(false), _5(timestamptztypmodin), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1263), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptztypmodin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2907), _1("timestamptztypmodin"), _2(1), _3(true), _4(false), _5(timestamptztypmodin), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1263), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptztypmodin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O typmod"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestamptztypmodout", 1, - AddBuiltinFunc(_0(2908), _1("timestamptztypmodout"), _2(1), _3(true), _4(false), _5(timestamptztypmodout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptztypmodout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2908), _1("timestamptztypmodout"), _2(1), _3(true), _4(false), _5(timestamptztypmodout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptztypmodout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O typmod"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timestampzone_text", 1, - AddBuiltinFunc(_0(4177), _1("timestampzone_text"), _2(1), _3(true), _4(false), _5(timestampzone_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestampzone_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4177), _1("timestampzone_text"), _2(1), _3(true), _4(false), _5(timestampzone_text), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestampzone_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timetypmodin", 1, - AddBuiltinFunc(_0(2909), _1("timetypmodin"), _2(1), _3(true), _4(false), _5(timetypmodin), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1263), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetypmodin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2909), _1("timetypmodin"), _2(1), _3(true), _4(false), _5(timetypmodin), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1263), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetypmodin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O typmod"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timetypmodout", 1, - AddBuiltinFunc(_0(2910), _1("timetypmodout"), _2(1), _3(true), _4(false), _5(timetypmodout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetypmodout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2910), _1("timetypmodout"), _2(1), _3(true), _4(false), _5(timetypmodout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetypmodout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O typmod"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timetz", 3, - AddBuiltinFunc(_0(TIMESTAMPTZ2TIMETZFUNCOID), _1("timetz"), _2(1), _3(true), _4(false), _5(timestamptz_timetz), _6(1266), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_timetz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1969), _1("timetz"), _2(2), _3(true), _4(false), _5(timetz_scale), _6(1266), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(3944), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1266, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetz_scale"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(TIME2TIMETZFUNCOID), _1("timetz"), _2(1), _3(true), _4(false), _5(time_timetz), _6(1266), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_timetz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TIMESTAMPTZ2TIMETZFUNCOID), _1("timetz"), _2(1), _3(true), _4(false), _5(timestamptz_timetz), _6(1266), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_timetz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("convert timestamp with time zone to time with time zone"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1969), _1("timetz"), _2(2), _3(true), _4(false), _5(timetz_scale), _6(1266), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(3944), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1266, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetz_scale"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("adjust time with time zone precision"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(TIME2TIMETZFUNCOID), _1("timetz"), _2(1), _3(true), _4(false), _5(time_timetz), _6(1266), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1083), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("time_timetz"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("convert time to time with time zone"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timetz_cmp", 1, - AddBuiltinFunc(_0(1358), _1("timetz_cmp"), _2(2), _3(true), _4(false), _5(timetz_cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1266, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetz_cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1358), _1("timetz_cmp"), _2(2), _3(true), _4(false), _5(timetz_cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1266, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetz_cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timetz_eq", 1, - AddBuiltinFunc(_0(1352), _1("timetz_eq"), _2(2), _3(true), _4(false), _5(timetz_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1266, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetz_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1352), _1("timetz_eq"), _2(2), _3(true), _4(false), _5(timetz_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1266, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetz_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timetz_ge", 1, - AddBuiltinFunc(_0(1356), _1("timetz_ge"), _2(2), _3(true), _4(false), _5(timetz_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1266, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetz_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1356), _1("timetz_ge"), _2(2), _3(true), _4(false), _5(timetz_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1266, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetz_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timetz_gt", 1, - AddBuiltinFunc(_0(1357), _1("timetz_gt"), _2(2), _3(true), _4(false), _5(timetz_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1266, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetz_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1357), _1("timetz_gt"), _2(2), _3(true), _4(false), _5(timetz_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1266, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetz_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timetz_hash", 1, - AddBuiltinFunc(_0(1696), _1("timetz_hash"), _2(1), _3(true), _4(false), _5(timetz_hash), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetz_hash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1696), _1("timetz_hash"), _2(1), _3(true), _4(false), _5(timetz_hash), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetz_hash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("hash"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timetz_in", 1, - AddBuiltinFunc(_0(TIMETZINFUNCOID), _1("timetz_in"), _2(3), _3(true), _4(false), _5(timetz_in), _6(1266), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 2275, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetz_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TIMETZINFUNCOID), _1("timetz_in"), _2(3), _3(true), _4(false), _5(timetz_in), _6(1266), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 2275, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetz_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timetz_larger", 1, - AddBuiltinFunc(_0(1379), _1("timetz_larger"), _2(2), _3(true), _4(false), _5(timetz_larger), _6(1266), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1266, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetz_larger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1379), _1("timetz_larger"), _2(2), _3(true), _4(false), _5(timetz_larger), _6(1266), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1266, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetz_larger"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("larger of two"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timetz_le", 1, - AddBuiltinFunc(_0(1355), _1("timetz_le"), _2(2), _3(true), _4(false), _5(timetz_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1266, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetz_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1355), _1("timetz_le"), _2(2), _3(true), _4(false), _5(timetz_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1266, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetz_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timetz_lt", 1, - AddBuiltinFunc(_0(1354), _1("timetz_lt"), _2(2), _3(true), _4(false), _5(timetz_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1266, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetz_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1354), _1("timetz_lt"), _2(2), _3(true), _4(false), _5(timetz_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1266, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetz_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timetz_mi_interval", 1, - AddBuiltinFunc(_0(1750), _1("timetz_mi_interval"), _2(2), _3(true), _4(false), _5(timetz_mi_interval), _6(1266), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1266, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetz_mi_interval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1750), _1("timetz_mi_interval"), _2(2), _3(true), _4(false), _5(timetz_mi_interval), _6(1266), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1266, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetz_mi_interval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timetz_ne", 1, - AddBuiltinFunc(_0(1353), _1("timetz_ne"), _2(2), _3(true), _4(false), _5(timetz_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1266, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetz_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1353), _1("timetz_ne"), _2(2), _3(true), _4(false), _5(timetz_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1266, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetz_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timetz_out", 1, - AddBuiltinFunc(_0(1351), _1("timetz_out"), _2(1), _3(true), _4(false), _5(timetz_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetz_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1351), _1("timetz_out"), _2(1), _3(true), _4(false), _5(timetz_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetz_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timetz_pl_interval", 1, - AddBuiltinFunc(_0(1749), _1("timetz_pl_interval"), _2(2), _3(true), _4(false), _5(timetz_pl_interval), _6(1266), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1266, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetz_pl_interval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1749), _1("timetz_pl_interval"), _2(2), _3(true), _4(false), _5(timetz_pl_interval), _6(1266), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1266, 1186), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetz_pl_interval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timetz_recv", 1, - AddBuiltinFunc(_0(2472), _1("timetz_recv"), _2(3), _3(true), _4(false), _5(timetz_recv), _6(1266), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetz_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2472), _1("timetz_recv"), _2(3), _3(true), _4(false), _5(timetz_recv), _6(1266), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetz_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timetz_send", 1, - AddBuiltinFunc(_0(2473), _1("timetz_send"), _2(1), _3(true), _4(false), _5(timetz_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetz_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2473), _1("timetz_send"), _2(1), _3(true), _4(false), _5(timetz_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetz_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timetz_smaller", 1, - AddBuiltinFunc(_0(1380), _1("timetz_smaller"), _2(2), _3(true), _4(false), _5(timetz_smaller), _6(1266), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1266, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetz_smaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1380), _1("timetz_smaller"), _2(2), _3(true), _4(false), _5(timetz_smaller), _6(1266), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1266, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetz_smaller"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("smaller of two"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timetzdate_pl", 1, - AddBuiltinFunc(_0(1298), _1("timetzdate_pl"), _2(2), _3(true), _4(false), _5(NULL), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1266, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select ($2 + $1)"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1298), _1("timetzdate_pl"), _2(2), _3(true), _4(false), _5(NULL), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1266, 1082), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select ($2 + $1)"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timetztypmodin", 1, - AddBuiltinFunc(_0(2911), _1("timetztypmodin"), _2(1), _3(true), _4(false), _5(timetztypmodin), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1263), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetztypmodin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2911), _1("timetztypmodin"), _2(1), _3(true), _4(false), _5(timetztypmodin), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1263), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetztypmodin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O typmod"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timetztypmodout", 1, - AddBuiltinFunc(_0(2912), _1("timetztypmodout"), _2(1), _3(true), _4(false), _5(timetztypmodout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetztypmodout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2912), _1("timetztypmodout"), _2(1), _3(true), _4(false), _5(timetztypmodout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetztypmodout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O typmod"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "timezone", 6, - AddBuiltinFunc(_0(1026), _1("timezone"), _2(2), _3(true), _4(false), _5(timestamptz_izone), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1186, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_izone"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1159), _1("timezone"), _2(2), _3(true), _4(false), _5(timestamptz_zone), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_zone"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(TIMEZONETZFUNCOID), _1("timezone"), _2(2), _3(true), _4(false), _5(timetz_zone), _6(1266), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 25, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetz_zone"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2038), _1("timezone"), _2(2), _3(true), _4(false), _5(timetz_izone), _6(1266), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1186, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetz_izone"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2069), _1("timezone"), _2(2), _3(true), _4(false), _5(timestamp_zone), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_zone"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2070), _1("timezone"), _2(2), _3(true), _4(false), _5(timestamp_izone), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1186, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_izone"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1026), _1("timezone"), _2(2), _3(true), _4(false), _5(timestamptz_izone), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1186, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_izone"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("adjust timestamp to new time zone"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1159), _1("timezone"), _2(2), _3(true), _4(false), _5(timestamptz_zone), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_zone"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("adjust timestamp to new time zone"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(TIMEZONETZFUNCOID), _1("timezone"), _2(2), _3(true), _4(false), _5(timetz_zone), _6(1266), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 25, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetz_zone"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("adjust time with time zone to new zone"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2038), _1("timezone"), _2(2), _3(true), _4(false), _5(timetz_izone), _6(1266), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1186, 1266), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timetz_izone"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("adjust time with time zone to new zone"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2069), _1("timezone"), _2(2), _3(true), _4(false), _5(timestamp_zone), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_zone"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("adjust timestamp to new time zone"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2070), _1("timezone"), _2(2), _3(true), _4(false), _5(timestamp_izone), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1186, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_izone"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("adjust timestamp to new time zone"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tinterval", 1, - AddBuiltinFunc(_0(1481), _1("tinterval"), _2(2), _3(true), _4(false), _5(mktinterval), _6(704), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 702, 702), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("mktinterval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1481), _1("tinterval"), _2(2), _3(true), _4(false), _5(mktinterval), _6(704), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 702, 702), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("mktinterval"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tintervalct", 1, - AddBuiltinFunc(_0(264), _1("tintervalct"), _2(2), _3(true), _4(false), _5(tintervalct), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 704, 704), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervalct"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(264), _1("tintervalct"), _2(2), _3(true), _4(false), _5(tintervalct), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 704, 704), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervalct"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tintervalend", 1, - AddBuiltinFunc(_0(273), _1("tintervalend"), _2(1), _3(true), _4(false), _5(tintervalend), _6(702), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 704), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervalend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(273), _1("tintervalend"), _2(1), _3(true), _4(false), _5(tintervalend), _6(702), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 704), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervalend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tintervaleq", 1, - AddBuiltinFunc(_0(784), _1("tintervaleq"), _2(2), _3(true), _4(false), _5(tintervaleq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 704, 704), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervaleq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(784), _1("tintervaleq"), _2(2), _3(true), _4(false), _5(tintervaleq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 704, 704), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervaleq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tintervalge", 1, - AddBuiltinFunc(_0(789), _1("tintervalge"), _2(2), _3(true), _4(false), _5(tintervalge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 704, 704), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervalge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(789), _1("tintervalge"), _2(2), _3(true), _4(false), _5(tintervalge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 704, 704), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervalge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tintervalgt", 1, - AddBuiltinFunc(_0(787), _1("tintervalgt"), _2(2), _3(true), _4(false), _5(tintervalgt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 704, 704), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervalgt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(787), _1("tintervalgt"), _2(2), _3(true), _4(false), _5(tintervalgt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 704, 704), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervalgt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tintervalin", 1, - AddBuiltinFunc(_0(TINTERVALINFUNCOID), _1("tintervalin"), _2(1), _3(true), _4(false), _5(tintervalin), _6(704), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervalin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TINTERVALINFUNCOID), _1("tintervalin"), _2(1), _3(true), _4(false), _5(tintervalin), _6(704), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervalin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tintervalle", 1, - AddBuiltinFunc(_0(788), _1("tintervalle"), _2(2), _3(true), _4(false), _5(tintervalle), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 704, 704), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervalle"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(788), _1("tintervalle"), _2(2), _3(true), _4(false), _5(tintervalle), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 704, 704), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervalle"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tintervalleneq", 1, - AddBuiltinFunc(_0(266), _1("tintervalleneq"), _2(2), _3(true), _4(false), _5(tintervalleneq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 704, 703), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervalleneq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(266), _1("tintervalleneq"), _2(2), _3(true), _4(false), _5(tintervalleneq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 704, 703), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervalleneq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tintervallenge", 1, - AddBuiltinFunc(_0(271), _1("tintervallenge"), _2(2), _3(true), _4(false), _5(tintervallenge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 704, 703), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervallenge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(271), _1("tintervallenge"), _2(2), _3(true), _4(false), _5(tintervallenge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 704, 703), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervallenge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tintervallengt", 1, - AddBuiltinFunc(_0(269), _1("tintervallengt"), _2(2), _3(true), _4(false), _5(tintervallengt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 704, 703), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervallengt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(269), _1("tintervallengt"), _2(2), _3(true), _4(false), _5(tintervallengt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 704, 703), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervallengt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tintervallenle", 1, - AddBuiltinFunc(_0(270), _1("tintervallenle"), _2(2), _3(true), _4(false), _5(tintervallenle), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 704, 703), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervallenle"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(270), _1("tintervallenle"), _2(2), _3(true), _4(false), _5(tintervallenle), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 704, 703), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervallenle"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tintervallenlt", 1, - AddBuiltinFunc(_0(268), _1("tintervallenlt"), _2(2), _3(true), _4(false), _5(tintervallenlt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 704, 703), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervallenlt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(268), _1("tintervallenlt"), _2(2), _3(true), _4(false), _5(tintervallenlt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 704, 703), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervallenlt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tintervallenne", 1, - AddBuiltinFunc(_0(267), _1("tintervallenne"), _2(2), _3(true), _4(false), _5(tintervallenne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 704, 703), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervallenne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(267), _1("tintervallenne"), _2(2), _3(true), _4(false), _5(tintervallenne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 704, 703), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervallenne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tintervallt", 1, - AddBuiltinFunc(_0(786), _1("tintervallt"), _2(2), _3(true), _4(false), _5(tintervallt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 704, 704), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervallt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(786), _1("tintervallt"), _2(2), _3(true), _4(false), _5(tintervallt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 704, 704), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervallt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tintervalne", 1, - AddBuiltinFunc(_0(785), _1("tintervalne"), _2(2), _3(true), _4(false), _5(tintervalne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 704, 704), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervalne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(785), _1("tintervalne"), _2(2), _3(true), _4(false), _5(tintervalne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 704, 704), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervalne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tintervalout", 1, - AddBuiltinFunc(_0(TINTERVALOUTFUNCOID), _1("tintervalout"), _2(1), _3(true), _4(false), _5(tintervalout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 704), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervalout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TINTERVALOUTFUNCOID), _1("tintervalout"), _2(1), _3(true), _4(false), _5(tintervalout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 704), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervalout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tintervalov", 1, - AddBuiltinFunc(_0(265), _1("tintervalov"), _2(2), _3(true), _4(false), _5(tintervalov), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 704, 704), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervalov"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(265), _1("tintervalov"), _2(2), _3(true), _4(false), _5(tintervalov), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 704, 704), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervalov"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tintervalrecv", 1, - AddBuiltinFunc(_0(2466), _1("tintervalrecv"), _2(1), _3(true), _4(false), _5(tintervalrecv), _6(704), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervalrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2466), _1("tintervalrecv"), _2(1), _3(true), _4(false), _5(tintervalrecv), _6(704), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervalrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tintervalrel", 1, - AddBuiltinFunc(_0(249), _1("tintervalrel"), _2(1), _3(true), _4(false), _5(tintervalrel), _6(703), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 704), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervalrel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(249), _1("tintervalrel"), _2(1), _3(true), _4(false), _5(tintervalrel), _6(703), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 704), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervalrel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tintervalsame", 1, - AddBuiltinFunc(_0(263), _1("tintervalsame"), _2(2), _3(true), _4(false), _5(tintervalsame), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 704, 704), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervalsame"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(263), _1("tintervalsame"), _2(2), _3(true), _4(false), _5(tintervalsame), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 704, 704), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervalsame"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tintervalsend", 1, - AddBuiltinFunc(_0(2467), _1("tintervalsend"), _2(1), _3(true), _4(false), _5(tintervalsend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 704), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervalsend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2467), _1("tintervalsend"), _2(1), _3(true), _4(false), _5(tintervalsend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 704), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervalsend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tintervalstart", 1, - AddBuiltinFunc(_0(272), _1("tintervalstart"), _2(1), _3(true), _4(false), _5(tintervalstart), _6(702), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 704), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervalstart"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(272), _1("tintervalstart"), _2(1), _3(true), _4(false), _5(tintervalstart), _6(702), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 704), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tintervalstart"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "to_ascii", 3, - AddBuiltinFunc(_0(1845), _1("to_ascii"), _2(1), _3(true), _4(false), _5(to_ascii_default), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("to_ascii_default"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1846), _1("to_ascii"), _2(2), _3(true), _4(false), _5(to_ascii_enc), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("to_ascii_enc"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1847), _1("to_ascii"), _2(2), _3(true), _4(false), _5(to_ascii_encname), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("to_ascii_encname"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1845), _1("to_ascii"), _2(1), _3(true), _4(false), _5(to_ascii_default), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("to_ascii_default"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("encode text from DB encoding to ASCII text"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1846), _1("to_ascii"), _2(2), _3(true), _4(false), _5(to_ascii_enc), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("to_ascii_enc"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("encode text from encoding to ASCII text"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1847), _1("to_ascii"), _2(2), _3(true), _4(false), _5(to_ascii_encname), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("to_ascii_encname"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("encode text from encoding to ASCII text"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "to_char", 10, - AddBuiltinFunc(_0(INTERVALTOCHARFUNCOID), _1("to_char"), _2(2), _3(true), _4(false), _5(interval_to_char), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1186, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_to_char"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(TIMESTAMPTZ2CHARFUNCOID), _1("to_char"), _2(2), _3(true), _4(false), _5(timestamptz_to_char), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1184, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_to_char"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(NUMERIC2CHARFUNCOID), _1("to_char"), _2(2), _3(true), _4(false), _5(numeric_to_char), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1700, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_to_char"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(INTEGER2CHARFUNCOID), _1("to_char"), _2(2), _3(true), _4(false), _5(int4_to_char), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 23, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4_to_char"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(BIGINT2CHARFUNCOID), _1("to_char"), _2(2), _3(true), _4(false), _5(int8_to_char), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 20, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8_to_char"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(FLOAT4TOCHARFUNCOID), _1("to_char"), _2(2), _3(true), _4(false), _5(float4_to_char), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 700, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4_to_char"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(FLOAT8TOCHARFUNCOID), _1("to_char"), _2(2), _3(true), _4(false), _5(float8_to_char), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 701, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_to_char"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(TIMESTAMP2CHARFUNCOID), _1("to_char"), _2(2), _3(true), _4(false), _5(timestamp_to_char), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1114, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_to_char"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(DEFAULTFORMATTIMESTAMP2CHARFUNCOID), _1("to_char"), _2(1), _3(true), _4(false), _5(timestamp_to_char_default_format), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_to_char_default_format"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(DEFAULTFORMATTIMESTAMPTZ2CHARFUNCOID), _1("to_char"), _2(1), _3(true), _4(false), _5(timestamptz_to_char_default_format), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_to_char_default_format"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(INTERVALTOCHARFUNCOID), _1("to_char"), _2(2), _3(true), _4(false), _5(interval_to_char), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1186, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_to_char"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("format interval to text"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(TIMESTAMPTZ2CHARFUNCOID), _1("to_char"), _2(2), _3(true), _4(false), _5(timestamptz_to_char), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1184, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_to_char"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("format timestamp with time zone to text"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(NUMERIC2CHARFUNCOID), _1("to_char"), _2(2), _3(true), _4(false), _5(numeric_to_char), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1700, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_to_char"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("format numeric to text"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(INTEGER2CHARFUNCOID), _1("to_char"), _2(2), _3(true), _4(false), _5(int4_to_char), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 23, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int4_to_char"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("format int4 to text"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(BIGINT2CHARFUNCOID), _1("to_char"), _2(2), _3(true), _4(false), _5(int8_to_char), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 20, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("int8_to_char"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("format int8 to text"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(FLOAT4TOCHARFUNCOID), _1("to_char"), _2(2), _3(true), _4(false), _5(float4_to_char), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 700, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float4_to_char"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("format float4 to text"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(FLOAT8TOCHARFUNCOID), _1("to_char"), _2(2), _3(true), _4(false), _5(float8_to_char), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 701, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("float8_to_char"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("format float8 to text"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(TIMESTAMP2CHARFUNCOID), _1("to_char"), _2(2), _3(true), _4(false), _5(timestamp_to_char), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1114, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_to_char"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("format timestamp to text"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(DEFAULTFORMATTIMESTAMP2CHARFUNCOID), _1("to_char"), _2(1), _3(true), _4(false), _5(timestamp_to_char_default_format), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_to_char_default_format"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(DEFAULTFORMATTIMESTAMPTZ2CHARFUNCOID), _1("to_char"), _2(1), _3(true), _4(false), _5(timestamptz_to_char_default_format), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_to_char_default_format"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "to_date", 2, - AddBuiltinFunc(_0(TODATEFUNCOID), _1("to_date"), _2(2), _3(true), _4(false), _5(to_timestamp), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("to_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(TODATEDEFAULTFUNCOID), _1("to_date"), _2(1), _3(true), _4(false), _5(to_date_default_format), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("to_date_default_format"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TODATEFUNCOID), _1("to_date"), _2(2), _3(true), _4(false), _5(to_timestamp), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("to_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("convert text to timestamp with time zone"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(TODATEDEFAULTFUNCOID), _1("to_date"), _2(1), _3(true), _4(false), _5(to_date_default_format), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("to_date_default_format"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "to_hex", 2, - AddBuiltinFunc(_0(2089), _1("to_hex"), _2(1), _3(false), _4(false), _5(to_hex32), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("to_hex32"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2090), _1("to_hex"), _2(1), _3(false), _4(false), _5(to_hex64), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("to_hex64"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2089), _1("to_hex"), _2(1), _3(false), _4(false), _5(to_hex32), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("to_hex32"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert int4 number to hex"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2090), _1("to_hex"), _2(1), _3(false), _4(false), _5(to_hex64), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("to_hex64"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert int8 number to hex"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "to_json", 1, - AddBuiltinFunc(_0(3446), _1("to_json"), _2(1), _3(true), _4(false), _5(to_json), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2283), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("to_json"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f')) + AddBuiltinFunc(_0(3446), _1("to_json"), _2(1), _3(true), _4(false), _5(to_json), _6(114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2283), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("to_json"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "to_number", 1, - AddBuiltinFunc(_0(TONUMBERFUNCOID), _1("to_number"), _2(2), _3(true), _4(false), _5(numeric_to_number), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_to_number"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TONUMBERFUNCOID), _1("to_number"), _2(2), _3(true), _4(false), _5(numeric_to_number), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_to_number"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("convert text to numeric"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "to_timestamp", 3, - AddBuiltinFunc(_0(1158), _1("to_timestamp"), _2(1), _3(true), _4(false), _5(NULL), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select ('epoch'::pg_catalog.timestamptz + $1 * '1 second'::pg_catalog.interval)"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(TOTIMESTAMPFUNCOID), _1("to_timestamp"), _2(2), _3(true), _4(false), _5(to_timestamp), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("to_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(TOTIMESTAMPDEFAULTFUNCOID), _1("to_timestamp"), _2(1), _3(true), _4(false), _5(to_timestamp_default_format), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("to_timestamp_default_format"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1158), _1("to_timestamp"), _2(1), _3(true), _4(false), _5(NULL), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select ('epoch'::pg_catalog.timestamptz + $1 * '1 second'::pg_catalog.interval)"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(TOTIMESTAMPFUNCOID), _1("to_timestamp"), _2(2), _3(true), _4(false), _5(to_timestamp), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("to_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("convert text to timestamp with time zone"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(TOTIMESTAMPDEFAULTFUNCOID), _1("to_timestamp"), _2(1), _3(true), _4(false), _5(to_timestamp_default_format), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("to_timestamp_default_format"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "to_tsquery", 2, - AddBuiltinFunc(_0(3746), _1("to_tsquery"), _2(2), _3(true), _4(false), _5(to_tsquery_byid), _6(3615), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3734, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("to_tsquery_byid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3750), _1("to_tsquery"), _2(1), _3(true), _4(false), _5(to_tsquery), _6(3615), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("to_tsquery"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3746), _1("to_tsquery"), _2(2), _3(true), _4(false), _5(to_tsquery_byid), _6(3615), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3734, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("to_tsquery_byid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("make tsquery"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3750), _1("to_tsquery"), _2(1), _3(true), _4(false), _5(to_tsquery), _6(3615), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("to_tsquery"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("make tsquery"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "to_tsvector", 2, - AddBuiltinFunc(_0(3745), _1("to_tsvector"), _2(2), _3(true), _4(false), _5(to_tsvector_byid), _6(3614), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3734, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("to_tsvector_byid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3749), _1("to_tsvector"), _2(1), _3(true), _4(false), _5(to_tsvector), _6(3614), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("to_tsvector"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3745), _1("to_tsvector"), _2(2), _3(true), _4(false), _5(to_tsvector_byid), _6(3614), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3734, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("to_tsvector_byid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("transform to tsvector"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3749), _1("to_tsvector"), _2(1), _3(true), _4(false), _5(to_tsvector), _6(3614), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("to_tsvector"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("transform to tsvector"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "to_tsvector_for_batch", 2, - AddBuiltinFunc(_0(3208), _1("to_tsvector_for_batch"), _2(2), _3(true), _4(false), _5(to_tsvector_byid), _6(3614), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3734, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("to_tsvector_byid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3209), _1("to_tsvector_for_batch"), _2(1), _3(true), _4(false), _5(to_tsvector), _6(3614), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("to_tsvector"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3208), _1("to_tsvector_for_batch"), _2(2), _3(true), _4(false), _5(to_tsvector_byid), _6(3614), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3734, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("to_tsvector_byid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("transform to tsvector"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3209), _1("to_tsvector_for_batch"), _2(1), _3(true), _4(false), _5(to_tsvector), _6(3614), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("to_tsvector"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("transform to tsvector"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "total_cpu", 1, - AddBuiltinFunc(_0(3976), _1("total_cpu"), _2(0), _3(true), _4(false), _5(total_cpu), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("total_cpu"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3976), _1("total_cpu"), _2(0), _3(true), _4(false), _5(total_cpu), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("total_cpu"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "total_memory", 1, - AddBuiltinFunc(_0(3979), _1("total_memory"), _2(0), _3(true), _4(false), _5(total_memory), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("total_memory"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3979), _1("total_memory"), _2(0), _3(true), _4(false), _5(total_memory), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("total_memory"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "track_memory_context", 1, - AddBuiltinFunc(_0(3988), _1("track_memory_context"), _2(1), _3(true), _4(false), _5(track_memory_context), _6(16), _7(PG_DBEPERF_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("track_memory_context"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3988), _1("track_memory_context"), _2(1), _3(true), _4(false), _5(track_memory_context), _6(16), _7(PG_DBEPERF_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("track_memory_context"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "track_memory_context_detail", 1, - AddBuiltinFunc(_0(3990), _1("track_memory_context_detail"), _2(1), _3(true), _4(true), _5(track_memory_context_detail), _6(2249), _7(PG_DBEPERF_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(50), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(4, 25, 25, 23, 20), _22(4, 'o', 'o', 'o', 'o'), _23(4, "context_name", "file", "line", "size"), _24(NULL), _25("track_memory_context_detail"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3990), _1("track_memory_context_detail"), _2(1), _3(true), _4(true), _5(track_memory_context_detail), _6(2249), _7(PG_DBEPERF_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(50), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(4, 25, 25, 23, 20), _22(4, 'o', 'o', 'o', 'o'), _23(4, "context_name", "file", "line", "size"), _24(NULL), _25("track_memory_context_detail"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "track_model_train_opt", 1, - AddBuiltinFunc(_0(3468), _1("track_model_train_opt"), _2(2), _3(false), _4(false), _5(track_model_train_opt), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("track_model_train_opt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3468), _1("track_model_train_opt"), _2(2), _3(false), _4(false), _5(track_model_train_opt), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("track_model_train_opt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "transaction_timestamp", 1, - AddBuiltinFunc(_0(TRANSACTIONTIMESTAMPFUNCOID), _1("transaction_timestamp"), _2(0), _3(true), _4(false), _5(now), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("now"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(TRANSACTIONTIMESTAMPFUNCOID), _1("transaction_timestamp"), _2(0), _3(true), _4(false), _5(now), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("now"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33("current transaction time"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "translate", 1, - AddBuiltinFunc(_0(878), _1("translate"), _2(3), _3(true), _4(false), _5(translate), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("translate"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(878), _1("translate"), _2(3), _3(true), _4(false), _5(translate), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("translate"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("map a set of characters appearing in string"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "trigger_in", 1, - AddBuiltinFunc(_0(2300), _1("trigger_in"), _2(1), _3(false), _4(false), _5(trigger_in), _6(2279), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("trigger_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2300), _1("trigger_in"), _2(1), _3(false), _4(false), _5(trigger_in), _6(2279), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("trigger_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "trigger_out", 1, - AddBuiltinFunc(_0(2301), _1("trigger_out"), _2(1), _3(true), _4(false), _5(trigger_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2279), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("trigger_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2301), _1("trigger_out"), _2(1), _3(true), _4(false), _5(trigger_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2279), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("trigger_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( - "trunc", 4, - AddBuiltinFunc(_0(753), _1("trunc"), _2(1), _3(true), _4(false), _5(macaddr_trunc), _6(829), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 829), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("macaddr_trunc"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1343), _1("trunc"), _2(1), _3(true), _4(false), _5(dtrunc), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dtrunc"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1709), _1("trunc"), _2(2), _3(true), _4(false), _5(numeric_trunc), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_trunc"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1710), _1("trunc"), _2(1), _3(true), _4(false), _5(NULL), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.trunc($1,0)"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + "trunc", 7, + AddBuiltinFunc(_0(753), _1("trunc"), _2(1), _3(true), _4(false), _5(macaddr_trunc), _6(829), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 829), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("macaddr_trunc"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("MACADDR manufacturer fields"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1343), _1("trunc"), _2(1), _3(true), _4(false), _5(dtrunc), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("dtrunc"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("truncate to integer"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1709), _1("trunc"), _2(2), _3(true), _4(false), _5(numeric_trunc), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1700, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("numeric_trunc"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("value truncated to \'scale\'"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1710), _1("trunc"), _2(1), _3(true), _4(false), _5(NULL), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.trunc($1,0)"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("value truncated to \'scale\' of zero"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1751), _1("trunc"), _2(2), _3(true), _4(false), _5(timestamptz_trunc_alias), _6(1184), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1184, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamptz_trunc_alias"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1752), _1("trunc"), _2(2), _3(true), _4(false), _5(interval_trunc_alias), _6(1186), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1186, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("interval_trunc_alias"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1753), _1("trunc"), _2(2), _3(true), _4(false), _5(timestamp_trunc_alias), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("timestamp_trunc_alias"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(true), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ts_headline", 4, - AddBuiltinFunc(_0(3743), _1("ts_headline"), _2(4), _3(true), _4(false), _5(ts_headline_byid_opt), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 3734, 25, 3615, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ts_headline_byid_opt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3744), _1("ts_headline"), _2(3), _3(true), _4(false), _5(ts_headline_byid), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 3734, 25, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ts_headline_byid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3754), _1("ts_headline"), _2(3), _3(true), _4(false), _5(ts_headline_opt), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 25, 3615, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ts_headline_opt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3755), _1("ts_headline"), _2(2), _3(true), _4(false), _5(ts_headline), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ts_headline"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3743), _1("ts_headline"), _2(4), _3(true), _4(false), _5(ts_headline_byid_opt), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 3734, 25, 3615, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ts_headline_byid_opt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("generate headline"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3744), _1("ts_headline"), _2(3), _3(true), _4(false), _5(ts_headline_byid), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 3734, 25, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ts_headline_byid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("generate headline"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3754), _1("ts_headline"), _2(3), _3(true), _4(false), _5(ts_headline_opt), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 25, 3615, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ts_headline_opt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("generate headline"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3755), _1("ts_headline"), _2(2), _3(true), _4(false), _5(ts_headline), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ts_headline"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("generate headline"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ts_lexize", 1, - AddBuiltinFunc(_0(3723), _1("ts_lexize"), _2(2), _3(true), _4(false), _5(ts_lexize), _6(1009), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3769, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ts_lexize"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3723), _1("ts_lexize"), _2(2), _3(true), _4(false), _5(ts_lexize), _6(1009), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3769, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ts_lexize"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("normalize one word by dictionary"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ts_match_qv", 1, - AddBuiltinFunc(_0(3635), _1("ts_match_qv"), _2(2), _3(true), _4(false), _5(ts_match_qv), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3615, 3614), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ts_match_qv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3635), _1("ts_match_qv"), _2(2), _3(true), _4(false), _5(ts_match_qv), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3615, 3614), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ts_match_qv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ts_match_tq", 1, - AddBuiltinFunc(_0(3761), _1("ts_match_tq"), _2(2), _3(true), _4(false), _5(ts_match_tq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(2), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ts_match_tq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3761), _1("ts_match_tq"), _2(2), _3(true), _4(false), _5(ts_match_tq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(2), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ts_match_tq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ts_match_tt", 1, - AddBuiltinFunc(_0(3760), _1("ts_match_tt"), _2(2), _3(true), _4(false), _5(ts_match_tt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(3), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ts_match_tt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3760), _1("ts_match_tt"), _2(2), _3(true), _4(false), _5(ts_match_tt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(3), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ts_match_tt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ts_match_vq", 1, - AddBuiltinFunc(_0(3634), _1("ts_match_vq"), _2(2), _3(true), _4(false), _5(ts_match_vq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3614, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ts_match_vq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3634), _1("ts_match_vq"), _2(2), _3(true), _4(false), _5(ts_match_vq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3614, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ts_match_vq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ts_parse", 2, - AddBuiltinFunc(_0(3715), _1("ts_parse"), _2(2), _3(true), _4(true), _5(ts_parse_byid), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 26, 25), _21(4, 26, 25, 23, 25), _22(4, 'i', 'i', 'o', 'o'), _23(4, "parser_oid", "txt", "tokid", "token"), _24(NULL), _25("ts_parse_byid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3716), _1("ts_parse"), _2(2), _3(true), _4(true), _5(ts_parse_byname), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(4, 25, 25, 23, 25), _22(4, 'i', 'i', 'o', 'o'), _23(4, "parser_name", "txt", "tokid", "token"), _24(NULL), _25("ts_parse_byname"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3715), _1("ts_parse"), _2(2), _3(true), _4(true), _5(ts_parse_byid), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 26, 25), _21(4, 26, 25, 23, 25), _22(4, 'i', 'i', 'o', 'o'), _23(4, "parser_oid", "txt", "tokid", "token"), _24(NULL), _25("ts_parse_byid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("parse text to tokens"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3716), _1("ts_parse"), _2(2), _3(true), _4(true), _5(ts_parse_byname), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 25, 25), _21(4, 25, 25, 23, 25), _22(4, 'i', 'i', 'o', 'o'), _23(4, "parser_name", "txt", "tokid", "token"), _24(NULL), _25("ts_parse_byname"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("parse text to tokens"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ts_rank", 4, - AddBuiltinFunc(_0(3703), _1("ts_rank"), _2(4), _3(true), _4(false), _5(ts_rank_wttf), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 1021, 3614, 3615, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ts_rank_wttf"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3704), _1("ts_rank"), _2(3), _3(true), _4(false), _5(ts_rank_wtt), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 1021, 3614, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ts_rank_wtt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3705), _1("ts_rank"), _2(3), _3(true), _4(false), _5(ts_rank_ttf), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 3614, 3615, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ts_rank_ttf"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3706), _1("ts_rank"), _2(2), _3(true), _4(false), _5(ts_rank_tt), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3614, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ts_rank_tt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3703), _1("ts_rank"), _2(4), _3(true), _4(false), _5(ts_rank_wttf), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 1021, 3614, 3615, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ts_rank_wttf"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("relevance"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3704), _1("ts_rank"), _2(3), _3(true), _4(false), _5(ts_rank_wtt), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 1021, 3614, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ts_rank_wtt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("relevance"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3705), _1("ts_rank"), _2(3), _3(true), _4(false), _5(ts_rank_ttf), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 3614, 3615, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ts_rank_ttf"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("relevance"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3706), _1("ts_rank"), _2(2), _3(true), _4(false), _5(ts_rank_tt), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3614, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ts_rank_tt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("relevance"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ts_rank_cd", 4, - AddBuiltinFunc(_0(3707), _1("ts_rank_cd"), _2(4), _3(true), _4(false), _5(ts_rankcd_wttf), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 1021, 3614, 3615, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ts_rankcd_wttf"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3708), _1("ts_rank_cd"), _2(3), _3(true), _4(false), _5(ts_rankcd_wtt), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 1021, 3614, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ts_rankcd_wtt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3709), _1("ts_rank_cd"), _2(3), _3(true), _4(false), _5(ts_rankcd_ttf), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 3614, 3615, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ts_rankcd_ttf"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3710), _1("ts_rank_cd"), _2(2), _3(true), _4(false), _5(ts_rankcd_tt), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3614, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ts_rankcd_tt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3707), _1("ts_rank_cd"), _2(4), _3(true), _4(false), _5(ts_rankcd_wttf), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 1021, 3614, 3615, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ts_rankcd_wttf"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("relevance"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3708), _1("ts_rank_cd"), _2(3), _3(true), _4(false), _5(ts_rankcd_wtt), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 1021, 3614, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ts_rankcd_wtt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("relevance"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3709), _1("ts_rank_cd"), _2(3), _3(true), _4(false), _5(ts_rankcd_ttf), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 3614, 3615, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ts_rankcd_ttf"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("relevance"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3710), _1("ts_rank_cd"), _2(2), _3(true), _4(false), _5(ts_rankcd_tt), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3614, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ts_rankcd_tt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("relevance"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ts_rewrite", 2, - AddBuiltinFunc(_0(3684), _1("ts_rewrite"), _2(3), _3(true), _4(false), _5(tsquery_rewrite), _6(3615), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 3615, 3615, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsquery_rewrite"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3685), _1("ts_rewrite"), _2(2), _3(true), _4(false), _5(tsquery_rewrite_query), _6(3615), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 3615, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsquery_rewrite_query"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3684), _1("ts_rewrite"), _2(3), _3(true), _4(false), _5(tsquery_rewrite), _6(3615), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 3615, 3615, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsquery_rewrite"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("rewrite tsquery"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3685), _1("ts_rewrite"), _2(2), _3(true), _4(false), _5(tsquery_rewrite_query), _6(3615), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 3615, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsquery_rewrite_query"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("rewrite tsquery"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ts_stat", 2, - AddBuiltinFunc(_0(3689), _1("ts_stat"), _2(1), _3(true), _4(true), _5(ts_stat1), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10), _11(10000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 25), _21(4, 25, 25, 23, 23), _22(4, 'i', 'o', 'o', 'o'), _23(4, "query", "word", "ndoc", "nentry"), _24(NULL), _25("ts_stat1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3690), _1("ts_stat"), _2(2), _3(true), _4(true), _5(ts_stat2), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10), _11(10000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 25, 25), _21(5, 25, 25, 25, 23, 23), _22(5, 'i', 'i', 'o', 'o', 'o'), _23(5, "query", "weights", "word", "ndoc", "nentry"), _24(NULL), _25("ts_stat2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3689), _1("ts_stat"), _2(1), _3(true), _4(true), _5(ts_stat1), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10), _11(10000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 25), _21(4, 25, 25, 23, 23), _22(4, 'i', 'o', 'o', 'o'), _23(4, "query", "word", "ndoc", "nentry"), _24(NULL), _25("ts_stat1"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics of tsvector column"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3690), _1("ts_stat"), _2(2), _3(true), _4(true), _5(ts_stat2), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(10), _11(10000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 25, 25), _21(5, 25, 25, 25, 23, 23), _22(5, 'i', 'i', 'o', 'o', 'o'), _23(5, "query", "weights", "word", "ndoc", "nentry"), _24(NULL), _25("ts_stat2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("statistics of tsvector column"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ts_token_type", 2, - AddBuiltinFunc(_0(3713), _1("ts_token_type"), _2(1), _3(true), _4(true), _5(ts_token_type_byid), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(16), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 26), _21(4, 26, 23, 25, 25), _22(4, 'i', 'o', 'o', 'o'), _23(4, "parser_oid", "tokid", "alias", "description"), _24(NULL), _25("ts_token_type_byid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3714), _1("ts_token_type"), _2(1), _3(true), _4(true), _5(ts_token_type_byname), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(16), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 25), _21(4, 25, 23, 25, 25), _22(4, 'i', 'o', 'o', 'o'), _23(4, "parser_name", "tokid", "alias", "description"), _24(NULL), _25("ts_token_type_byname"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3713), _1("ts_token_type"), _2(1), _3(true), _4(true), _5(ts_token_type_byid), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(16), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 26), _21(4, 26, 23, 25, 25), _22(4, 'i', 'o', 'o', 'o'), _23(4, "parser_oid", "tokid", "alias", "description"), _24(NULL), _25("ts_token_type_byid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("get parser\'s token types"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3714), _1("ts_token_type"), _2(1), _3(true), _4(true), _5(ts_token_type_byname), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(16), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 25), _21(4, 25, 23, 25, 25), _22(4, 'i', 'o', 'o', 'o'), _23(4, "parser_name", "tokid", "alias", "description"), _24(NULL), _25("ts_token_type_byname"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("get parser\'s token types"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ts_typanalyze", 1, - AddBuiltinFunc(_0(3688), _1("ts_typanalyze"), _2(1), _3(true), _4(false), _5(ts_typanalyze), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ts_typanalyze"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3688), _1("ts_typanalyze"), _2(1), _3(true), _4(false), _5(ts_typanalyze), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ts_typanalyze"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("tsvector typanalyze"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tsmatchjoinsel", 1, - AddBuiltinFunc(_0(3687), _1("tsmatchjoinsel"), _2(5), _3(true), _4(false), _5(tsmatchjoinsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(5, 2281, 26, 2281, 21, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsmatchjoinsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3687), _1("tsmatchjoinsel"), _2(5), _3(true), _4(false), _5(tsmatchjoinsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(5, 2281, 26, 2281, 21, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsmatchjoinsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("join selectivity of tsvector @@ tsquery"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tsmatchsel", 1, - AddBuiltinFunc(_0(3686), _1("tsmatchsel"), _2(4), _3(true), _4(false), _5(tsmatchsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 2281, 26, 2281, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsmatchsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3686), _1("tsmatchsel"), _2(4), _3(true), _4(false), _5(tsmatchsel), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(4, 2281, 26, 2281, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsmatchsel"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("restriction selectivity of tsvector @@ tsquery"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tsq_mcontained", 1, - AddBuiltinFunc(_0(3692), _1("tsq_mcontained"), _2(2), _3(true), _4(false), _5(tsq_mcontained), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3615, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsq_mcontained"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3692), _1("tsq_mcontained"), _2(2), _3(true), _4(false), _5(tsq_mcontained), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3615, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsq_mcontained"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tsq_mcontains", 1, - AddBuiltinFunc(_0(3691), _1("tsq_mcontains"), _2(2), _3(true), _4(false), _5(tsq_mcontains), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3615, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsq_mcontains"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3691), _1("tsq_mcontains"), _2(2), _3(true), _4(false), _5(tsq_mcontains), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3615, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsq_mcontains"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tsquery_and", 1, - AddBuiltinFunc(_0(3669), _1("tsquery_and"), _2(2), _3(true), _4(false), _5(tsquery_and), _6(3615), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3615, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsquery_and"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3669), _1("tsquery_and"), _2(2), _3(true), _4(false), _5(tsquery_and), _6(3615), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3615, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsquery_and"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tsquery_cmp", 1, - AddBuiltinFunc(_0(3668), _1("tsquery_cmp"), _2(2), _3(true), _4(false), _5(tsquery_cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3615, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsquery_cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3668), _1("tsquery_cmp"), _2(2), _3(true), _4(false), _5(tsquery_cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3615, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsquery_cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tsquery_eq", 1, - AddBuiltinFunc(_0(3664), _1("tsquery_eq"), _2(2), _3(true), _4(false), _5(tsquery_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3615, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsquery_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3664), _1("tsquery_eq"), _2(2), _3(true), _4(false), _5(tsquery_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3615, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsquery_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tsquery_ge", 1, - AddBuiltinFunc(_0(3666), _1("tsquery_ge"), _2(2), _3(true), _4(false), _5(tsquery_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3615, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsquery_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3666), _1("tsquery_ge"), _2(2), _3(true), _4(false), _5(tsquery_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3615, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsquery_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tsquery_gt", 1, - AddBuiltinFunc(_0(3667), _1("tsquery_gt"), _2(2), _3(true), _4(false), _5(tsquery_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3615, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsquery_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3667), _1("tsquery_gt"), _2(2), _3(true), _4(false), _5(tsquery_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3615, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsquery_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tsquery_le", 1, - AddBuiltinFunc(_0(3663), _1("tsquery_le"), _2(2), _3(true), _4(false), _5(tsquery_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3615, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsquery_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3663), _1("tsquery_le"), _2(2), _3(true), _4(false), _5(tsquery_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3615, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsquery_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tsquery_lt", 1, - AddBuiltinFunc(_0(3662), _1("tsquery_lt"), _2(2), _3(true), _4(false), _5(tsquery_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3615, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsquery_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3662), _1("tsquery_lt"), _2(2), _3(true), _4(false), _5(tsquery_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3615, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsquery_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tsquery_ne", 1, - AddBuiltinFunc(_0(3665), _1("tsquery_ne"), _2(2), _3(true), _4(false), _5(tsquery_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3615, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsquery_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3665), _1("tsquery_ne"), _2(2), _3(true), _4(false), _5(tsquery_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3615, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsquery_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tsquery_not", 1, - AddBuiltinFunc(_0(3671), _1("tsquery_not"), _2(1), _3(true), _4(false), _5(tsquery_not), _6(3615), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsquery_not"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3671), _1("tsquery_not"), _2(1), _3(true), _4(false), _5(tsquery_not), _6(3615), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsquery_not"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tsquery_or", 1, - AddBuiltinFunc(_0(3670), _1("tsquery_or"), _2(2), _3(true), _4(false), _5(tsquery_or), _6(3615), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3615, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsquery_or"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3670), _1("tsquery_or"), _2(2), _3(true), _4(false), _5(tsquery_or), _6(3615), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3615, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsquery_or"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tsqueryin", 1, - AddBuiltinFunc(_0(3612), _1("tsqueryin"), _2(1), _3(true), _4(false), _5(tsqueryin), _6(3615), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsqueryin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3612), _1("tsqueryin"), _2(1), _3(true), _4(false), _5(tsqueryin), _6(3615), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsqueryin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tsqueryout", 1, - AddBuiltinFunc(_0(3613), _1("tsqueryout"), _2(1), _3(true), _4(false), _5(tsqueryout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsqueryout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3613), _1("tsqueryout"), _2(1), _3(true), _4(false), _5(tsqueryout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsqueryout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tsqueryrecv", 1, - AddBuiltinFunc(_0(3641), _1("tsqueryrecv"), _2(1), _3(true), _4(false), _5(tsqueryrecv), _6(3615), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsqueryrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3641), _1("tsqueryrecv"), _2(1), _3(true), _4(false), _5(tsqueryrecv), _6(3615), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsqueryrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tsquerysend", 1, - AddBuiltinFunc(_0(3640), _1("tsquerysend"), _2(1), _3(true), _4(false), _5(tsquerysend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsquerysend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3640), _1("tsquerysend"), _2(1), _3(true), _4(false), _5(tsquerysend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3615), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsquerysend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tsrange", 2, - AddBuiltinFunc(_0(3933), _1("tsrange"), _2(2), _3(false), _4(false), _5(range_constructor2), _6(3908), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_constructor2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3934), _1("tsrange"), _2(3), _3(false), _4(false), _5(range_constructor3), _6(3908), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 1114, 1114, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_constructor3"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3933), _1("tsrange"), _2(2), _3(false), _4(false), _5(range_constructor2), _6(3908), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_constructor2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("tsrange constructor"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3934), _1("tsrange"), _2(3), _3(false), _4(false), _5(range_constructor3), _6(3908), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 1114, 1114, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_constructor3"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("tsrange constructor"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tsrange_subdiff", 1, - AddBuiltinFunc(_0(3929), _1("tsrange_subdiff"), _2(2), _3(true), _4(false), _5(tsrange_subdiff), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsrange_subdiff"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3929), _1("tsrange_subdiff"), _2(2), _3(true), _4(false), _5(tsrange_subdiff), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1114, 1114), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsrange_subdiff"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("float8 difference of two timestamp values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tstzrange", 2, - AddBuiltinFunc(_0(3937), _1("tstzrange"), _2(2), _3(false), _4(false), _5(range_constructor2), _6(3910), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1184, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_constructor2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3938), _1("tstzrange"), _2(3), _3(false), _4(false), _5(range_constructor3), _6(3910), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 1184, 1184, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_constructor3"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3937), _1("tstzrange"), _2(2), _3(false), _4(false), _5(range_constructor2), _6(3910), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1184, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_constructor2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("tstzrange constructor"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3938), _1("tstzrange"), _2(3), _3(false), _4(false), _5(range_constructor3), _6(3910), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 1184, 1184, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_constructor3"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("tstzrange constructor"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tstzrange_subdiff", 1, - AddBuiltinFunc(_0(3930), _1("tstzrange_subdiff"), _2(2), _3(true), _4(false), _5(tstzrange_subdiff), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1184, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tstzrange_subdiff"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3930), _1("tstzrange_subdiff"), _2(2), _3(true), _4(false), _5(tstzrange_subdiff), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1184, 1184), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tstzrange_subdiff"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("float8 difference of two timestamp with time zone values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tsvector_cmp", 1, - AddBuiltinFunc(_0(3622), _1("tsvector_cmp"), _2(2), _3(true), _4(false), _5(tsvector_cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3614, 3614), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsvector_cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3622), _1("tsvector_cmp"), _2(2), _3(true), _4(false), _5(tsvector_cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3614, 3614), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsvector_cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tsvector_concat", 1, - AddBuiltinFunc(_0(3625), _1("tsvector_concat"), _2(2), _3(true), _4(false), _5(tsvector_concat), _6(3614), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3614, 3614), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsvector_concat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3625), _1("tsvector_concat"), _2(2), _3(true), _4(false), _5(tsvector_concat), _6(3614), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3614, 3614), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsvector_concat"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tsvector_eq", 1, - AddBuiltinFunc(_0(3618), _1("tsvector_eq"), _2(2), _3(true), _4(false), _5(tsvector_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3614, 3614), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsvector_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3618), _1("tsvector_eq"), _2(2), _3(true), _4(false), _5(tsvector_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3614, 3614), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsvector_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tsvector_ge", 1, - AddBuiltinFunc(_0(3620), _1("tsvector_ge"), _2(2), _3(true), _4(false), _5(tsvector_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3614, 3614), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsvector_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3620), _1("tsvector_ge"), _2(2), _3(true), _4(false), _5(tsvector_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3614, 3614), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsvector_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tsvector_gt", 1, - AddBuiltinFunc(_0(3621), _1("tsvector_gt"), _2(2), _3(true), _4(false), _5(tsvector_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3614, 3614), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsvector_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3621), _1("tsvector_gt"), _2(2), _3(true), _4(false), _5(tsvector_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3614, 3614), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsvector_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tsvector_le", 1, - AddBuiltinFunc(_0(3617), _1("tsvector_le"), _2(2), _3(true), _4(false), _5(tsvector_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3614, 3614), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsvector_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3617), _1("tsvector_le"), _2(2), _3(true), _4(false), _5(tsvector_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3614, 3614), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsvector_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tsvector_lt", 1, - AddBuiltinFunc(_0(3616), _1("tsvector_lt"), _2(2), _3(true), _4(false), _5(tsvector_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3614, 3614), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsvector_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3616), _1("tsvector_lt"), _2(2), _3(true), _4(false), _5(tsvector_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3614, 3614), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsvector_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tsvector_ne", 1, - AddBuiltinFunc(_0(3619), _1("tsvector_ne"), _2(2), _3(true), _4(false), _5(tsvector_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3614, 3614), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsvector_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3619), _1("tsvector_ne"), _2(2), _3(true), _4(false), _5(tsvector_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 3614, 3614), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsvector_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tsvector_update_trigger", 1, - AddBuiltinFunc(_0(3752), _1("tsvector_update_trigger"), _2(0), _3(false), _4(false), _5(tsvector_update_trigger_byid), _6(2279), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsvector_update_trigger_byid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3752), _1("tsvector_update_trigger"), _2(0), _3(false), _4(false), _5(tsvector_update_trigger_byid), _6(2279), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsvector_update_trigger_byid"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("trigger for automatic update of tsvector column"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tsvector_update_trigger_column", 1, - AddBuiltinFunc(_0(3753), _1("tsvector_update_trigger_column"), _2(0), _3(false), _4(false), _5(tsvector_update_trigger_bycolumn), _6(2279), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsvector_update_trigger_bycolumn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3753), _1("tsvector_update_trigger_column"), _2(0), _3(false), _4(false), _5(tsvector_update_trigger_bycolumn), _6(2279), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsvector_update_trigger_bycolumn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("trigger for automatic update of tsvector column"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tsvectorin", 1, - AddBuiltinFunc(_0(3610), _1("tsvectorin"), _2(1), _3(true), _4(false), _5(tsvectorin), _6(3614), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsvectorin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3610), _1("tsvectorin"), _2(1), _3(true), _4(false), _5(tsvectorin), _6(3614), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsvectorin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tsvectorout", 1, - AddBuiltinFunc(_0(3611), _1("tsvectorout"), _2(1), _3(true), _4(false), _5(tsvectorout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3614), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsvectorout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3611), _1("tsvectorout"), _2(1), _3(true), _4(false), _5(tsvectorout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3614), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsvectorout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tsvectorrecv", 1, - AddBuiltinFunc(_0(3639), _1("tsvectorrecv"), _2(1), _3(true), _4(false), _5(tsvectorrecv), _6(3614), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsvectorrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3639), _1("tsvectorrecv"), _2(1), _3(true), _4(false), _5(tsvectorrecv), _6(3614), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsvectorrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "tsvectorsend", 1, - AddBuiltinFunc(_0(3638), _1("tsvectorsend"), _2(1), _3(true), _4(false), _5(tsvectorsend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3614), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsvectorsend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3638), _1("tsvectorsend"), _2(1), _3(true), _4(false), _5(tsvectorsend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3614), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("tsvectorsend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "txid_current", 1, - AddBuiltinFunc(_0(2943), _1("txid_current"), _2(0), _3(true), _4(false), _5(txid_current), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("txid_current"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2943), _1("txid_current"), _2(0), _3(true), _4(false), _5(txid_current), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("txid_current"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "txid_current_snapshot", 1, - AddBuiltinFunc(_0(2944), _1("txid_current_snapshot"), _2(0), _3(true), _4(false), _5(txid_current_snapshot), _6(2970), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("txid_current_snapshot"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2944), _1("txid_current_snapshot"), _2(0), _3(true), _4(false), _5(txid_current_snapshot), _6(2970), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("txid_current_snapshot"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "txid_snapshot_in", 1, - AddBuiltinFunc(_0(2939), _1("txid_snapshot_in"), _2(1), _3(true), _4(false), _5(txid_snapshot_in), _6(2970), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("txid_snapshot_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2939), _1("txid_snapshot_in"), _2(1), _3(true), _4(false), _5(txid_snapshot_in), _6(2970), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("txid_snapshot_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "txid_snapshot_out", 1, - AddBuiltinFunc(_0(2940), _1("txid_snapshot_out"), _2(1), _3(true), _4(false), _5(txid_snapshot_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2970), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("txid_snapshot_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2940), _1("txid_snapshot_out"), _2(1), _3(true), _4(false), _5(txid_snapshot_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2970), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("txid_snapshot_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "txid_snapshot_recv", 1, - AddBuiltinFunc(_0(2941), _1("txid_snapshot_recv"), _2(1), _3(true), _4(false), _5(txid_snapshot_recv), _6(2970), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("txid_snapshot_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2941), _1("txid_snapshot_recv"), _2(1), _3(true), _4(false), _5(txid_snapshot_recv), _6(2970), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("txid_snapshot_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "txid_snapshot_send", 1, - AddBuiltinFunc(_0(2942), _1("txid_snapshot_send"), _2(1), _3(true), _4(false), _5(txid_snapshot_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2970), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("txid_snapshot_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2942), _1("txid_snapshot_send"), _2(1), _3(true), _4(false), _5(txid_snapshot_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2970), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("txid_snapshot_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "txid_snapshot_xip", 1, - AddBuiltinFunc(_0(2947), _1("txid_snapshot_xip"), _2(1), _3(true), _4(true), _5(txid_snapshot_xip), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(50), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2970), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("txid_snapshot_xip"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2947), _1("txid_snapshot_xip"), _2(1), _3(true), _4(true), _5(txid_snapshot_xip), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(50), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2970), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("txid_snapshot_xip"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "txid_snapshot_xmax", 1, - AddBuiltinFunc(_0(2946), _1("txid_snapshot_xmax"), _2(1), _3(true), _4(false), _5(txid_snapshot_xmax), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2970), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("txid_snapshot_xmax"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2946), _1("txid_snapshot_xmax"), _2(1), _3(true), _4(false), _5(txid_snapshot_xmax), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2970), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("txid_snapshot_xmax"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "txid_snapshot_xmin", 1, - AddBuiltinFunc(_0(2945), _1("txid_snapshot_xmin"), _2(1), _3(true), _4(false), _5(txid_snapshot_xmin), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2970), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("txid_snapshot_xmin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2945), _1("txid_snapshot_xmin"), _2(1), _3(true), _4(false), _5(txid_snapshot_xmin), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2970), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("txid_snapshot_xmin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "txid_visible_in_snapshot", 1, - AddBuiltinFunc(_0(2948), _1("txid_visible_in_snapshot"), _2(2), _3(true), _4(false), _5(txid_visible_in_snapshot), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 2970), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("txid_visible_in_snapshot"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2948), _1("txid_visible_in_snapshot"), _2(2), _3(true), _4(false), _5(txid_visible_in_snapshot), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 20, 2970), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("txid_visible_in_snapshot"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "turn_off", 1, - AddBuiltinFunc(_0(1500), _1("turn_off"), _2(2), _3(true), _4(false), _5(debug_server_turn_off), _6(16), _7(PG_PLDEBUG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("debug_server_turn_off"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1500), _1("turn_off"), _2(2), _3(true), _4(false), _5(debug_server_turn_off), _6(16), _7(PG_PLDEBUG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("debug_server_turn_off"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "turn_on", 1, - AddBuiltinFunc(_0(1501), _1("turn_on"), _2(1), _3(true), _4(true), _5(debug_server_turn_on), _6(2249), _7(PG_PLDEBUG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(3, 26, 25, 23), _22(3, 'i', 'o', 'o' ), _23(3, "funcoid", "nodename", "port" ), _24(NULL), _25("debug_server_turn_on"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1501), _1("turn_on"), _2(1), _3(true), _4(true), _5(debug_server_turn_on), _6(2249), _7(PG_PLDEBUG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 26), _21(3, 26, 25, 23), _22(3, 'i', 'o', 'o' ), _23(3, "funcoid", "nodename", "port" ), _24(NULL), _25("debug_server_turn_on"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(false), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ubtbeginscan", 1, - AddBuiltinFunc(_0(4751), _1("ubtbeginscan"), _2(3), _3(true), _4(false), _5(ubtbeginscan), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ubtbeginscan"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("f"), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4751), _1("ubtbeginscan"), _2(3), _3(true), _4(false), _5(ubtbeginscan), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ubtbeginscan"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ubtbuild", 1, - AddBuiltinFunc(_0(4759), _1("ubtbuild"), _2(3), _3(true), _4(false), _5(ubtbuild), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ubtbuild"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("f"), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4759), _1("ubtbuild"), _2(3), _3(true), _4(false), _5(ubtbuild), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ubtbuild"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ubtbuildempty", 1, - AddBuiltinFunc(_0(4760), _1("ubtbuildempty"), _2(1), _3(true), _4(false), _5(ubtbuildempty), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ubtbuildempty"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("f"), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4760), _1("ubtbuildempty"), _2(1), _3(true), _4(false), _5(ubtbuildempty), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ubtbuildempty"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ubtbulkdelete", 1, - AddBuiltinFunc(_0(4761), _1("ubtbulkdelete"), _2(4), _3(true), _4(false), _5(ubtbulkdelete), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(4, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ubtbulkdelete"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("f"), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4761), _1("ubtbulkdelete"), _2(4), _3(true), _4(false), _5(ubtbulkdelete), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(4, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ubtbulkdelete"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ubtcanreturn", 1, - AddBuiltinFunc(_0(4763), _1("ubtcanreturn"), _2(1), _3(true), _4(false), _5(ubtcanreturn), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ubtcanreturn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("f"), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4763), _1("ubtcanreturn"), _2(1), _3(true), _4(false), _5(ubtcanreturn), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ubtcanreturn"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ubtcostestimate", 1, - AddBuiltinFunc(_0(4765), _1("ubtcostestimate"), _2(7), _3(true), _4(false), _5(ubtcostestimate), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(7, 2281, 2281, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ubtcostestimate"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("f"), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4765), _1("ubtcostestimate"), _2(7), _3(true), _4(false), _5(ubtcostestimate), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(7, 2281, 2281, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ubtcostestimate"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ubtendscan", 1, - AddBuiltinFunc(_0(4755), _1("ubtendscan"), _2(1), _3(true), _4(false), _5(ubtendscan), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ubtendscan"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("f"), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4755), _1("ubtendscan"), _2(1), _3(true), _4(false), _5(ubtendscan), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ubtendscan"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ubtgetbitmap", 1, - AddBuiltinFunc(_0(4753), _1("ubtgetbitmap"), _2(2), _3(true), _4(false), _5(ubtgetbitmap), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ubtgetbitmap"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("f"), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4753), _1("ubtgetbitmap"), _2(2), _3(true), _4(false), _5(ubtgetbitmap), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ubtgetbitmap"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ubtgettuple", 1, - AddBuiltinFunc(_0(4752), _1("ubtgettuple"), _2(2), _3(true), _4(false), _5(ubtgettuple), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ubtgettuple"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("f"), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4752), _1("ubtgettuple"), _2(2), _3(true), _4(false), _5(ubtgettuple), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ubtgettuple"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ubtinsert", 1, - AddBuiltinFunc(_0(4750), _1("ubtinsert"), _2(6), _3(true), _4(false), _5(ubtinsert), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(6, 2281, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ubtinsert"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("f"), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4750), _1("ubtinsert"), _2(6), _3(true), _4(false), _5(ubtinsert), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(6, 2281, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ubtinsert"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ubtmarkpos", 1, - AddBuiltinFunc(_0(4756), _1("ubtmarkpos"), _2(1), _3(true), _4(false), _5(ubtmarkpos), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ubtmarkpos"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("f"), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4756), _1("ubtmarkpos"), _2(1), _3(true), _4(false), _5(ubtmarkpos), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ubtmarkpos"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ubtmerge", 1, - AddBuiltinFunc(_0(4758), _1("ubtmerge"), _2(5), _3(true), _4(false), _5(ubtmerge), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(5, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ubtmerge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("f"), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4758), _1("ubtmerge"), _2(5), _3(true), _4(false), _5(ubtmerge), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(5, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ubtmerge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ubtoptions", 1, - AddBuiltinFunc(_0(4764), _1("ubtoptions"), _2(2), _3(true), _4(false), _5(ubtoptions), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1009, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ubtoptions"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("f"), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4764), _1("ubtoptions"), _2(2), _3(true), _4(false), _5(ubtoptions), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(2, 1009, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ubtoptions"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ubtrescan", 1, - AddBuiltinFunc(_0(4754), _1("ubtrescan"), _2(5), _3(true), _4(false), _5(ubtrescan), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(5, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ubtrescan"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("f"), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4754), _1("ubtrescan"), _2(5), _3(true), _4(false), _5(ubtrescan), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(5, 2281, 2281, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ubtrescan"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ubtrestrpos", 1, - AddBuiltinFunc(_0(4757), _1("ubtrestrpos"), _2(1), _3(true), _4(false), _5(ubtrestrpos), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ubtrestrpos"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("f"), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4757), _1("ubtrestrpos"), _2(1), _3(true), _4(false), _5(ubtrestrpos), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ubtrestrpos"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "ubtvacuumcleanup", 1, - AddBuiltinFunc(_0(4762), _1("ubtvacuumcleanup"), _2(2), _3(true), _4(false), _5(ubtvacuumcleanup), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ubtvacuumcleanup"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("f"), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4762), _1("ubtvacuumcleanup"), _2(2), _3(true), _4(false), _5(ubtvacuumcleanup), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("ubtvacuumcleanup"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "unique_key_recheck", 1, - AddBuiltinFunc(_0(1250), _1("unique_key_recheck"), _2(0), _3(true), _4(false), _5(unique_key_recheck), _6(2279), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("unique_key_recheck"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1250), _1("unique_key_recheck"), _2(0), _3(true), _4(false), _5(unique_key_recheck), _6(2279), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("unique_key_recheck"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("deferred UNIQUE constraint check"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "unknownin", 1, - AddBuiltinFunc(_0(109), _1("unknownin"), _2(1), _3(true), _4(false), _5(unknownin), _6(705), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("unknownin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(109), _1("unknownin"), _2(1), _3(true), _4(false), _5(unknownin), _6(705), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("unknownin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "unknownout", 1, - AddBuiltinFunc(_0(110), _1("unknownout"), _2(1), _3(true), _4(false), _5(unknownout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 705), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("unknownout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(110), _1("unknownout"), _2(1), _3(true), _4(false), _5(unknownout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 705), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("unknownout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "unknownrecv", 1, - AddBuiltinFunc(_0(2416), _1("unknownrecv"), _2(1), _3(true), _4(false), _5(unknownrecv), _6(705), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("unknownrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2416), _1("unknownrecv"), _2(1), _3(true), _4(false), _5(unknownrecv), _6(705), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("unknownrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "unknownsend", 1, - AddBuiltinFunc(_0(2417), _1("unknownsend"), _2(1), _3(true), _4(false), _5(unknownsend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 705), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("unknownsend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2417), _1("unknownsend"), _2(1), _3(true), _4(false), _5(unknownsend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 705), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("unknownsend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "unnest", 1, - AddBuiltinFunc(_0(2331), _1("unnest"), _2(1), _3(true), _4(true), _5(array_unnest), _6(2283), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_unnest"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2331), _1("unnest"), _2(1), _3(true), _4(true), _5(array_unnest), _6(2283), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(100), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2277), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("array_unnest"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("expand array to set of rows"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "update_pgjob", 1, - AddBuiltinFunc(_0(3998), _1("update_pgjob"), _2(9), _3(false), _4(false), _5(syn_update_pg_job), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(9, 20, 18, 20, 1114, 1114, 1114, 1114, 1114, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("syn_update_pg_job"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3998), _1("update_pgjob"), _2(10), _3(false), _4(false), _5(syn_update_pg_job), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(10, 20, 18, 20, 1114, 1114, 1114, 1114, 1114, 21, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("syn_update_pg_job"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "upper", 2, - AddBuiltinFunc(_0(871), _1("upper"), _2(1), _3(true), _4(false), _5(upper), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("upper"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3849), _1("upper"), _2(1), _3(true), _4(false), _5(range_upper), _6(2283), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_upper"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(871), _1("upper"), _2(1), _3(true), _4(false), _5(upper), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("upper"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("uppercase"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3849), _1("upper"), _2(1), _3(true), _4(false), _5(range_upper), _6(2283), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_upper"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("upper bound of range"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "upper_inc", 1, - AddBuiltinFunc(_0(3852), _1("upper_inc"), _2(1), _3(true), _4(false), _5(range_upper_inc), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_upper_inc"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3852), _1("upper_inc"), _2(1), _3(true), _4(false), _5(range_upper_inc), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_upper_inc"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("is the range\'s upper bound inclusive?"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "upper_inf", 1, - AddBuiltinFunc(_0(3854), _1("upper_inf"), _2(1), _3(true), _4(false), _5(range_upper_inf), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_upper_inf"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3854), _1("upper_inf"), _2(1), _3(true), _4(false), _5(range_upper_inf), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 3831), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("range_upper_inf"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("is the range\'s upper bound infinite?"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "uuid_cmp", 1, - AddBuiltinFunc(_0(2960), _1("uuid_cmp"), _2(2), _3(true), _4(false), _5(uuid_cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2950, 2950), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("uuid_cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2960), _1("uuid_cmp"), _2(2), _3(true), _4(false), _5(uuid_cmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 2950, 2950), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("uuid_cmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "uuid_eq", 1, - AddBuiltinFunc(_0(2956), _1("uuid_eq"), _2(2), _3(true), _4(false), _5(uuid_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 2950, 2950), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("uuid_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2956), _1("uuid_eq"), _2(2), _3(true), _4(false), _5(uuid_eq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 2950, 2950), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("uuid_eq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "uuid_ge", 1, - AddBuiltinFunc(_0(2957), _1("uuid_ge"), _2(2), _3(true), _4(false), _5(uuid_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 2950, 2950), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("uuid_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2957), _1("uuid_ge"), _2(2), _3(true), _4(false), _5(uuid_ge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 2950, 2950), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("uuid_ge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "uuid_gt", 1, - AddBuiltinFunc(_0(2958), _1("uuid_gt"), _2(2), _3(true), _4(false), _5(uuid_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 2950, 2950), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("uuid_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2958), _1("uuid_gt"), _2(2), _3(true), _4(false), _5(uuid_gt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 2950, 2950), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("uuid_gt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "uuid_hash", 1, - AddBuiltinFunc(_0(2963), _1("uuid_hash"), _2(1), _3(true), _4(false), _5(uuid_hash), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2950), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("uuid_hash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2963), _1("uuid_hash"), _2(1), _3(true), _4(false), _5(uuid_hash), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2950), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("uuid_hash"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("hash"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "uuid_in", 1, - AddBuiltinFunc(_0(2952), _1("uuid_in"), _2(1), _3(true), _4(false), _5(uuid_in), _6(2950), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("uuid_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2952), _1("uuid_in"), _2(1), _3(true), _4(false), _5(uuid_in), _6(2950), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("uuid_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "uuid_le", 1, - AddBuiltinFunc(_0(2955), _1("uuid_le"), _2(2), _3(true), _4(false), _5(uuid_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 2950, 2950), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("uuid_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2955), _1("uuid_le"), _2(2), _3(true), _4(false), _5(uuid_le), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 2950, 2950), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("uuid_le"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "uuid_lt", 1, - AddBuiltinFunc(_0(2954), _1("uuid_lt"), _2(2), _3(true), _4(false), _5(uuid_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 2950, 2950), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("uuid_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2954), _1("uuid_lt"), _2(2), _3(true), _4(false), _5(uuid_lt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 2950, 2950), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("uuid_lt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "uuid_ne", 1, - AddBuiltinFunc(_0(2959), _1("uuid_ne"), _2(2), _3(true), _4(false), _5(uuid_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 2950, 2950), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("uuid_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2959), _1("uuid_ne"), _2(2), _3(true), _4(false), _5(uuid_ne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 2950, 2950), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("uuid_ne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "uuid_out", 1, - AddBuiltinFunc(_0(2953), _1("uuid_out"), _2(1), _3(true), _4(false), _5(uuid_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2950), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("uuid_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2953), _1("uuid_out"), _2(1), _3(true), _4(false), _5(uuid_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2950), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("uuid_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "uuid_recv", 1, - AddBuiltinFunc(_0(2961), _1("uuid_recv"), _2(1), _3(true), _4(false), _5(uuid_recv), _6(2950), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("uuid_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2961), _1("uuid_recv"), _2(1), _3(true), _4(false), _5(uuid_recv), _6(2950), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("uuid_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "uuid_send", 1, - AddBuiltinFunc(_0(2962), _1("uuid_send"), _2(1), _3(true), _4(false), _5(uuid_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2950), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("uuid_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2962), _1("uuid_send"), _2(1), _3(true), _4(false), _5(uuid_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2950), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("uuid_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "value_of_percentile", 1, - AddBuiltinFunc(_0(9986), _1("value_of_percentile"), _2(3), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 701, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(9986), _1("value_of_percentile"), _2(3), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 701, 701, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "var_pop", 6, - AddBuiltinFunc(_0(2718), _1("var_pop"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2719), _1("var_pop"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2720), _1("var_pop"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2721), _1("var_pop"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2722), _1("var_pop"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2723), _1("var_pop"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2718), _1("var_pop"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2719), _1("var_pop"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2720), _1("var_pop"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2721), _1("var_pop"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2722), _1("var_pop"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2723), _1("var_pop"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "var_samp", 6, - AddBuiltinFunc(_0(2641), _1("var_samp"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2642), _1("var_samp"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2643), _1("var_samp"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2644), _1("var_samp"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2645), _1("var_samp"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2646), _1("var_samp"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2641), _1("var_samp"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2642), _1("var_samp"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2643), _1("var_samp"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2644), _1("var_samp"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2645), _1("var_samp"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2646), _1("var_samp"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "varbit", 1, - AddBuiltinFunc(_0(1687), _1("varbit"), _2(3), _3(true), _4(false), _5(varbit), _6(1562), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(3158), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 1562, 23, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varbit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1687), _1("varbit"), _2(3), _3(true), _4(false), _5(varbit), _6(1562), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(3158), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 1562, 23, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varbit"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("adjust varbit() to typmod length"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "varbit_in", 1, - AddBuiltinFunc(_0(1579), _1("varbit_in"), _2(3), _3(true), _4(false), _5(varbit_in), _6(1562), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2275, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varbit_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1579), _1("varbit_in"), _2(3), _3(true), _4(false), _5(varbit_in), _6(1562), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2275, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varbit_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "varbit_out", 1, - AddBuiltinFunc(_0(1580), _1("varbit_out"), _2(1), _3(true), _4(false), _5(varbit_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1562), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varbit_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1580), _1("varbit_out"), _2(1), _3(true), _4(false), _5(varbit_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1562), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varbit_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "varbit_recv", 1, - AddBuiltinFunc(_0(2458), _1("varbit_recv"), _2(3), _3(true), _4(false), _5(varbit_recv), _6(1562), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varbit_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2458), _1("varbit_recv"), _2(3), _3(true), _4(false), _5(varbit_recv), _6(1562), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varbit_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "varbit_send", 1, - AddBuiltinFunc(_0(2459), _1("varbit_send"), _2(1), _3(true), _4(false), _5(varbit_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1562), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varbit_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2459), _1("varbit_send"), _2(1), _3(true), _4(false), _5(varbit_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1562), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varbit_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "varbit_transform", 1, - AddBuiltinFunc(_0(3158), _1("varbit_transform"), _2(1), _3(true), _4(false), _5(varbit_transform), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varbit_transform"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3158), _1("varbit_transform"), _2(1), _3(true), _4(false), _5(varbit_transform), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varbit_transform"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "varbitcmp", 1, - AddBuiltinFunc(_0(1672), _1("varbitcmp"), _2(2), _3(true), _4(false), _5(bitcmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1562, 1562), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitcmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1672), _1("varbitcmp"), _2(2), _3(true), _4(false), _5(bitcmp), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 1562, 1562), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitcmp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("less-equal-greater"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "varbiteq", 1, - AddBuiltinFunc(_0(1666), _1("varbiteq"), _2(2), _3(true), _4(false), _5(biteq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1562, 1562), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("biteq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1666), _1("varbiteq"), _2(2), _3(true), _4(false), _5(biteq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1562, 1562), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("biteq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "varbitge", 1, - AddBuiltinFunc(_0(1668), _1("varbitge"), _2(2), _3(true), _4(false), _5(bitge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1562, 1562), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1668), _1("varbitge"), _2(2), _3(true), _4(false), _5(bitge), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1562, 1562), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitge"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "varbitgt", 1, - AddBuiltinFunc(_0(1669), _1("varbitgt"), _2(2), _3(true), _4(false), _5(bitgt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1562, 1562), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitgt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1669), _1("varbitgt"), _2(2), _3(true), _4(false), _5(bitgt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1562, 1562), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitgt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "varbitle", 1, - AddBuiltinFunc(_0(1670), _1("varbitle"), _2(2), _3(true), _4(false), _5(bitle), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1562, 1562), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitle"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1670), _1("varbitle"), _2(2), _3(true), _4(false), _5(bitle), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1562, 1562), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitle"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "varbitlt", 1, - AddBuiltinFunc(_0(1671), _1("varbitlt"), _2(2), _3(true), _4(false), _5(bitlt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1562, 1562), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitlt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1671), _1("varbitlt"), _2(2), _3(true), _4(false), _5(bitlt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1562, 1562), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitlt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "varbitne", 1, - AddBuiltinFunc(_0(1667), _1("varbitne"), _2(2), _3(true), _4(false), _5(bitne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1562, 1562), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1667), _1("varbitne"), _2(2), _3(true), _4(false), _5(bitne), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 1562, 1562), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("bitne"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "varbittypmodin", 1, - AddBuiltinFunc(_0(2902), _1("varbittypmodin"), _2(1), _3(true), _4(false), _5(varbittypmodin), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1263), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varbittypmodin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2902), _1("varbittypmodin"), _2(1), _3(true), _4(false), _5(varbittypmodin), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1263), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varbittypmodin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O typmod"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "varbittypmodout", 1, - AddBuiltinFunc(_0(2921), _1("varbittypmodout"), _2(1), _3(true), _4(false), _5(varbittypmodout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varbittypmodout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2921), _1("varbittypmodout"), _2(1), _3(true), _4(false), _5(varbittypmodout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varbittypmodout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O typmod"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "varchar", 2, - AddBuiltinFunc(_0(669), _1("varchar"), _2(3), _3(true), _4(false), _5(varchar), _6(1043), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(3097), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 1043, 23, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(1401), _1("varchar"), _2(1), _3(true), _4(false), _5(name_text), _6(1043), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("name_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(669), _1("varchar"), _2(3), _3(true), _4(false), _5(varchar), _6(1043), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(3097), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 1043, 23, 16), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varchar"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("adjust varchar() to typmod length"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(1401), _1("varchar"), _2(1), _3(true), _4(false), _5(name_text), _6(1043), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 19), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("name_text"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("convert name to varchar"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "varchar_date", 1, - AddBuiltinFunc(_0(4162), _1("varchar_date"), _2(1), _3(true), _4(false), _5(varchar_date), _6(1082), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1043), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varchar_date"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4162), _1("varchar_date"), _2(1), _3(true), _4(false), _5(varchar_date), _6(1082), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1043), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varchar_date"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "varchar_float4", 1, - AddBuiltinFunc(_0(4198), _1("varchar_float4"), _2(1), _3(true), _4(false), _5(varchar_float4), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1043), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varchar_float4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4198), _1("varchar_float4"), _2(1), _3(true), _4(false), _5(varchar_float4), _6(700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1043), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varchar_float4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "varchar_float8", 1, - AddBuiltinFunc(_0(4199), _1("varchar_float8"), _2(1), _3(true), _4(false), _5(varchar_float8), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1043), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varchar_float8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4199), _1("varchar_float8"), _2(1), _3(true), _4(false), _5(varchar_float8), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1043), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varchar_float8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "varchar_int4", 1, - AddBuiltinFunc(_0(4174), _1("varchar_int4"), _2(1), _3(true), _4(false), _5(varchar_int4), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1043), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varchar_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4174), _1("varchar_int4"), _2(1), _3(true), _4(false), _5(varchar_int4), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1043), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varchar_int4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "varchar_int8", 1, - AddBuiltinFunc(_0(4176), _1("varchar_int8"), _2(1), _3(true), _4(false), _5(varchar_int8), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1043), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varchar_int8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4176), _1("varchar_int8"), _2(1), _3(true), _4(false), _5(varchar_int8), _6(20), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1043), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varchar_int8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "varchar_numeric", 1, - AddBuiltinFunc(_0(4173), _1("varchar_numeric"), _2(1), _3(true), _4(false), _5(varchar_numeric), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1043), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varchar_numeric"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4173), _1("varchar_numeric"), _2(1), _3(true), _4(false), _5(varchar_numeric), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1043), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varchar_numeric"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "varchar_timestamp", 1, - AddBuiltinFunc(_0(4186), _1("varchar_timestamp"), _2(1), _3(true), _4(false), _5(varchar_timestamp), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1043), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varchar_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(4186), _1("varchar_timestamp"), _2(1), _3(true), _4(false), _5(varchar_timestamp), _6(1114), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1043), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varchar_timestamp"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "varchar_transform", 1, - AddBuiltinFunc(_0(3097), _1("varchar_transform"), _2(1), _3(true), _4(false), _5(varchar_transform), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varchar_transform"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3097), _1("varchar_transform"), _2(1), _3(true), _4(false), _5(varchar_transform), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varchar_transform"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "varcharin", 1, - AddBuiltinFunc(_0(1046), _1("varcharin"), _2(3), _3(true), _4(false), _5(varcharin), _6(1043), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2275, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varcharin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1046), _1("varcharin"), _2(3), _3(true), _4(false), _5(varcharin), _6(1043), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2275, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varcharin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "varcharout", 1, - AddBuiltinFunc(_0(1047), _1("varcharout"), _2(1), _3(true), _4(false), _5(varcharout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1043), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varcharout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1047), _1("varcharout"), _2(1), _3(true), _4(false), _5(varcharout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1043), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varcharout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "varcharrecv", 1, - AddBuiltinFunc(_0(2432), _1("varcharrecv"), _2(3), _3(true), _4(false), _5(varcharrecv), _6(1043), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 2281, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varcharrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2432), _1("varcharrecv"), _2(3), _3(true), _4(false), _5(varcharrecv), _6(1043), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(3, 2281, 26, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varcharrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "varcharsend", 1, - AddBuiltinFunc(_0(2433), _1("varcharsend"), _2(1), _3(true), _4(false), _5(varcharsend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1043), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varcharsend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2433), _1("varcharsend"), _2(1), _3(true), _4(false), _5(varcharsend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 1043), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varcharsend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "varchartypmodin", 1, - AddBuiltinFunc(_0(2915), _1("varchartypmodin"), _2(1), _3(true), _4(false), _5(varchartypmodin), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1263), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varchartypmodin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2915), _1("varchartypmodin"), _2(1), _3(true), _4(false), _5(varchartypmodin), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1263), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varchartypmodin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O typmod"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "varchartypmodout", 1, - AddBuiltinFunc(_0(2916), _1("varchartypmodout"), _2(1), _3(true), _4(false), _5(varchartypmodout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varchartypmodout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2916), _1("varchartypmodout"), _2(1), _3(true), _4(false), _5(varchartypmodout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("varchartypmodout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O typmod"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "variance", 6, - AddBuiltinFunc(_0(2148), _1("variance"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2149), _1("variance"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2150), _1("variance"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2151), _1("variance"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2152), _1("variance"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2153), _1("variance"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2148), _1("variance"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2149), _1("variance"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2150), _1("variance"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 21), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2151), _1("variance"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2152), _1("variance"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 701), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2153), _1("variance"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(1700), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 1700), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("the average (arithmetic mean) as numeric of all bigint values"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "version", 1, - AddBuiltinFunc(_0(89), _1("version"), _2(0), _3(true), _4(false), _5(pgsql_version), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pgsql_version"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(89), _1("version"), _2(0), _3(true), _4(false), _5(pgsql_version), _6(25), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("pgsql_version"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "void_in", 1, - AddBuiltinFunc(_0(2298), _1("void_in"), _2(1), _3(true), _4(false), _5(void_in), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("void_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2298), _1("void_in"), _2(1), _3(true), _4(false), _5(void_in), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("void_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "void_out", 1, - AddBuiltinFunc(_0(2299), _1("void_out"), _2(1), _3(true), _4(false), _5(void_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2278), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("void_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2299), _1("void_out"), _2(1), _3(true), _4(false), _5(void_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2278), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("void_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "void_recv", 1, - AddBuiltinFunc(_0(3120), _1("void_recv"), _2(1), _3(true), _4(false), _5(void_recv), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("void_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3120), _1("void_recv"), _2(1), _3(true), _4(false), _5(void_recv), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("void_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "void_send", 1, - AddBuiltinFunc(_0(3121), _1("void_send"), _2(1), _3(true), _4(false), _5(void_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2278), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("void_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3121), _1("void_send"), _2(1), _3(true), _4(false), _5(void_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2278), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("void_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "wdr_xdb_query", 1, - AddBuiltinFunc(_0(5713), _1("wdr_xdb_query"), _2(2), _3(true), _4(true), _5(wdr_xdb_query), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("wdr_xdb_query"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5713), _1("wdr_xdb_query"), _2(2), _3(true), _4(true), _5(wdr_xdb_query), _6(2249), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(1000), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(2, 25, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("wdr_xdb_query"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "width", 1, - AddBuiltinFunc(_0(976), _1("width"), _2(1), _3(true), _4(false), _5(box_width), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_width"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(976), _1("width"), _2(1), _3(true), _4(false), _5(box_width), _6(701), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 603), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("box_width"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("box width"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "width_bucket", 2, - AddBuiltinFunc(_0(320), _1("width_bucket"), _2(4), _3(true), _4(false), _5(width_bucket_float8), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 701, 701, 701, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("width_bucket_float8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2170), _1("width_bucket"), _2(4), _3(true), _4(false), _5(width_bucket_numeric), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 1700, 1700, 1700, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("width_bucket_numeric"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(320), _1("width_bucket"), _2(4), _3(true), _4(false), _5(width_bucket_float8), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 701, 701, 701, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("width_bucket_float8"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2170), _1("width_bucket"), _2(4), _3(true), _4(false), _5(width_bucket_numeric), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(4, 1700, 1700, 1700, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("width_bucket_numeric"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("bucket number of operand in equal-width histogram"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "working_version_num", 1, - AddBuiltinFunc(_0(5731), _1("working_version_num"), _2(0), _3(true), _4(false), _5(working_version_num), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("working_version_num"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(5731), _1("working_version_num"), _2(0), _3(true), _4(false), _5(working_version_num), _6(23), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('v'), _19(0), _20(0), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("working_version_num"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "xideq", 1, - AddBuiltinFunc(_0(68), _1("xideq"), _2(2), _3(true), _4(false), _5(xideq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 28, 28), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xideq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(68), _1("xideq"), _2(2), _3(true), _4(false), _5(xideq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 28, 28), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xideq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "xideq4", 1, - AddBuiltinFunc(_0(71), _1("xideq4"), _2(2), _3(true), _4(false), _5(xideq4), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 31, 31), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xideq4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(71), _1("xideq4"), _2(2), _3(true), _4(false), _5(xideq4), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 31, 31), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xideq4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "xideqint4", 1, - AddBuiltinFunc(_0(1321), _1("xideqint4"), _2(2), _3(true), _4(false), _5(xideq4), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 31, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xideq4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1321), _1("xideqint4"), _2(2), _3(true), _4(false), _5(xideq4), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 31, 23), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xideq4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "xideqint8", 1, - AddBuiltinFunc(_0(1319), _1("xideqint8"), _2(2), _3(true), _4(false), _5(xideq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 28, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xideq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1319), _1("xideqint8"), _2(2), _3(true), _4(false), _5(xideq), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 28, 20), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xideq"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "xidin", 1, - AddBuiltinFunc(_0(50), _1("xidin"), _2(1), _3(true), _4(false), _5(xidin), _6(28), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xidin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(50), _1("xidin"), _2(1), _3(true), _4(false), _5(xidin), _6(28), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xidin"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "xidin4", 1, - AddBuiltinFunc(_0(58), _1("xidin4"), _2(1), _3(true), _4(false), _5(xidin4), _6(31), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xidin4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(58), _1("xidin4"), _2(1), _3(true), _4(false), _5(xidin4), _6(31), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xidin4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "xidlt", 1, - AddBuiltinFunc(_0(1320), _1("xidlt"), _2(2), _3(true), _4(false), _5(xidlt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 28, 28), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xidlt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1320), _1("xidlt"), _2(2), _3(true), _4(false), _5(xidlt), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 28, 28), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xidlt"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "xidlt4", 1, - AddBuiltinFunc(_0(1322), _1("xidlt4"), _2(2), _3(true), _4(false), _5(xidlt4), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 31, 31), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xidlt4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(1322), _1("xidlt4"), _2(2), _3(true), _4(false), _5(xidlt4), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(true), _18('i'), _19(0), _20(2, 31, 31), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xidlt4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "xidout", 1, - AddBuiltinFunc(_0(51), _1("xidout"), _2(1), _3(true), _4(false), _5(xidout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 28), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xidout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(51), _1("xidout"), _2(1), _3(true), _4(false), _5(xidout), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 28), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xidout"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "xidout4", 1, - AddBuiltinFunc(_0(59), _1("xidout4"), _2(1), _3(true), _4(false), _5(xidout4), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 31), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xidout4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(59), _1("xidout4"), _2(1), _3(true), _4(false), _5(xidout4), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 31), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xidout4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "xidrecv", 1, - AddBuiltinFunc(_0(2440), _1("xidrecv"), _2(1), _3(true), _4(false), _5(xidrecv), _6(28), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xidrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2440), _1("xidrecv"), _2(1), _3(true), _4(false), _5(xidrecv), _6(28), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xidrecv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "xidrecv4", 1, - AddBuiltinFunc(_0(2779), _1("xidrecv4"), _2(1), _3(true), _4(false), _5(xidrecv4), _6(31), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xidrecv4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2779), _1("xidrecv4"), _2(1), _3(true), _4(false), _5(xidrecv4), _6(31), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xidrecv4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "xidsend", 1, - AddBuiltinFunc(_0(2441), _1("xidsend"), _2(1), _3(true), _4(false), _5(xidsend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 28), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xidsend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2441), _1("xidsend"), _2(1), _3(true), _4(false), _5(xidsend), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 28), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xidsend"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("I/O"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "xidsend4", 1, - AddBuiltinFunc(_0(2780), _1("xidsend4"), _2(1), _3(true), _4(false), _5(xidsend4), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 31), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xidsend4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2780), _1("xidsend4"), _2(1), _3(true), _4(false), _5(xidsend4), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 31), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xidsend4"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "xml", 1, - AddBuiltinFunc(_0(2896), _1("xml"), _2(1), _3(true), _4(false), _5(texttoxml), _6(142), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("texttoxml"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2896), _1("xml"), _2(1), _3(true), _4(false), _5(texttoxml), _6(142), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("texttoxml"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "xml_in", 1, - AddBuiltinFunc(_0(2893), _1("xml_in"), _2(1), _3(true), _4(false), _5(xml_in), _6(142), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xml_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2893), _1("xml_in"), _2(1), _3(true), _4(false), _5(xml_in), _6(142), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2275), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xml_in"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "xml_is_well_formed", 1, - AddBuiltinFunc(_0(3051), _1("xml_is_well_formed"), _2(1), _3(true), _4(false), _5(xml_is_well_formed), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xml_is_well_formed"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3051), _1("xml_is_well_formed"), _2(1), _3(true), _4(false), _5(xml_is_well_formed), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xml_is_well_formed"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "xml_is_well_formed_content", 1, - AddBuiltinFunc(_0(3053), _1("xml_is_well_formed_content"), _2(1), _3(true), _4(false), _5(xml_is_well_formed_content), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xml_is_well_formed_content"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3053), _1("xml_is_well_formed_content"), _2(1), _3(true), _4(false), _5(xml_is_well_formed_content), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xml_is_well_formed_content"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "xml_is_well_formed_document", 1, - AddBuiltinFunc(_0(3052), _1("xml_is_well_formed_document"), _2(1), _3(true), _4(false), _5(xml_is_well_formed_document), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xml_is_well_formed_document"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3052), _1("xml_is_well_formed_document"), _2(1), _3(true), _4(false), _5(xml_is_well_formed_document), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xml_is_well_formed_document"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "xml_out", 1, - AddBuiltinFunc(_0(2894), _1("xml_out"), _2(1), _3(true), _4(false), _5(xml_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 142), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xml_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2894), _1("xml_out"), _2(1), _3(true), _4(false), _5(xml_out), _6(2275), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 142), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xml_out"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "xml_recv", 1, - AddBuiltinFunc(_0(2898), _1("xml_recv"), _2(1), _3(true), _4(false), _5(xml_recv), _6(142), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xml_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2898), _1("xml_recv"), _2(1), _3(true), _4(false), _5(xml_recv), _6(142), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xml_recv"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "xml_send", 1, - AddBuiltinFunc(_0(2899), _1("xml_send"), _2(1), _3(true), _4(false), _5(xml_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 142), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xml_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2899), _1("xml_send"), _2(1), _3(true), _4(false), _5(xml_send), _6(17), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('s'), _19(0), _20(1, 142), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xml_send"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "xmlagg", 1, - AddBuiltinFunc(_0(XMLAGGFUNCOID), _1("xmlagg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(142), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 142), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(XMLAGGFUNCOID), _1("xmlagg"), _2(1), _3(false), _4(false), _5(aggregate_dummy), _6(142), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(true), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 142), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("aggregate_dummy"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "xmlcomment", 1, - AddBuiltinFunc(_0(2895), _1("xmlcomment"), _2(1), _3(true), _4(false), _5(xmlcomment), _6(142), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xmlcomment"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2895), _1("xmlcomment"), _2(1), _3(true), _4(false), _5(xmlcomment), _6(142), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xmlcomment"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "xmlconcat2", 1, - AddBuiltinFunc(_0(2900), _1("xmlconcat2"), _2(2), _3(false), _4(false), _5(xmlconcat2), _6(142), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 142, 142), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xmlconcat2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2900), _1("xmlconcat2"), _2(2), _3(false), _4(false), _5(xmlconcat2), _6(142), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 142, 142), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xmlconcat2"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "xmlexists", 1, - AddBuiltinFunc(_0(2614), _1("xmlexists"), _2(2), _3(true), _4(false), _5(xmlexists), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 142), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xmlexists"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2614), _1("xmlexists"), _2(2), _3(true), _4(false), _5(xmlexists), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 142), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xmlexists"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "xmlvalidate", 1, - AddBuiltinFunc(_0(2897), _1("xmlvalidate"), _2(2), _3(true), _4(false), _5(xmlvalidate), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 142, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xmlvalidate"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2897), _1("xmlvalidate"), _2(2), _3(true), _4(false), _5(xmlvalidate), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 142, 25), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xmlvalidate"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "xpath", 2, - AddBuiltinFunc(_0(2931), _1("xpath"), _2(3), _3(true), _4(false), _5(xpath), _6(143), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 142, 1009), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xpath"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(2932), _1("xpath"), _2(2), _3(true), _4(false), _5(NULL), _6(143), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 142), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.xpath($1, $2, '{}'::pg_catalog.text[])"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(2931), _1("xpath"), _2(3), _3(true), _4(false), _5(xpath), _6(143), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 142, 1009), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xpath"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("evaluate XPath expression, with namespaces support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(2932), _1("xpath"), _2(2), _3(true), _4(false), _5(NULL), _6(143), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 142), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.xpath($1, $2, '{}'::pg_catalog.text[])"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("evaluate XPath expression"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "xpath_exists", 2, - AddBuiltinFunc(_0(3049), _1("xpath_exists"), _2(3), _3(true), _4(false), _5(xpath_exists), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 142, 1009), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xpath_exists"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)), - AddBuiltinFunc(_0(3050), _1("xpath_exists"), _2(2), _3(true), _4(false), _5(NULL), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 142), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.xpath_exists($1, $2, '{}'::pg_catalog.text[])"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3049), _1("xpath_exists"), _2(3), _3(true), _4(false), _5(xpath_exists), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 25, 142, 1009), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("xpath_exists"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33("test XML value against XPath expression, with namespace support"), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)), + AddBuiltinFunc(_0(3050), _1("xpath_exists"), _2(2), _3(true), _4(false), _5(NULL), _6(16), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(SQLlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(2, 25, 142), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("select pg_catalog.xpath_exists($1, $2, '{}'::pg_catalog.text[])"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "zhprs_end", 1, - AddBuiltinFunc(_0(3794), _1("zhprs_end"), _2(1), _3(true), _4(false), _5(zhprs_end), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("zhprs_end"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3794), _1("zhprs_end"), _2(1), _3(true), _4(false), _5(zhprs_end), _6(2278), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("zhprs_end"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "zhprs_getlexeme", 1, - AddBuiltinFunc(_0(3793), _1("zhprs_getlexeme"), _2(3), _3(true), _4(false), _5(zhprs_getlexeme), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("zhprs_getlexeme"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3793), _1("zhprs_getlexeme"), _2(3), _3(true), _4(false), _5(zhprs_getlexeme), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 2281, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("zhprs_getlexeme"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "zhprs_lextype", 1, - AddBuiltinFunc(_0(3795), _1("zhprs_lextype"), _2(1), _3(true), _4(false), _5(zhprs_lextype), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("zhprs_lextype"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3795), _1("zhprs_lextype"), _2(1), _3(true), _4(false), _5(zhprs_lextype), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(1, 2281), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("zhprs_lextype"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), AddFuncGroup( "zhprs_start", 1, - AddBuiltinFunc(_0(3792), _1("zhprs_start"), _2(3), _3(true), _4(false), _5(zhprs_start), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 23, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("zhprs_start"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false)) + AddBuiltinFunc(_0(3792), _1("zhprs_start"), _2(3), _3(true), _4(false), _5(zhprs_start), _6(2281), _7(PG_CATALOG_NAMESPACE), _8(BOOTSTRAP_SUPERUSERID), _9(INTERNALlanguageId), _10(1), _11(0), _12(0), _13(0), _14(false), _15(false), _16(false), _17(false), _18('i'), _19(0), _20(3, 2281, 23, 26), _21(NULL), _22(NULL), _23(NULL), _24(NULL), _25("zhprs_start"), _26(NULL), _27(NULL), _28(NULL), _29(0), _30(false), _31(NULL), _32(false), _33(NULL), _34('f'), _35(NULL), _36(0), _37(false), _38(NULL), _39(NULL), _40(0)) ), diff --git a/src/common/backend/catalog/catalog.cpp b/src/common/backend/catalog/catalog.cpp index f35035f91..28524fa0f 100644 --- a/src/common/backend/catalog/catalog.cpp +++ b/src/common/backend/catalog/catalog.cpp @@ -7,6 +7,7 @@ * * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -34,6 +35,8 @@ #include "catalog/pg_directory.h" #include "catalog/pg_job.h" #include "catalog/pg_job_proc.h" +#include "catalog/gs_job_argument.h" +#include "catalog/gs_job_attribute.h" #include "catalog/pg_namespace.h" #include "catalog/pg_obsscaninfo.h" #include "catalog/pg_pltemplate.h" @@ -66,6 +69,7 @@ #include "storage/smgr/fd.h" #include "storage/smgr/segment.h" #include "utils/fmgroids.h" +#include "utils/lsyscache.h" #include "utils/rel.h" #include "utils/rel_gs.h" #include "utils/snapmgr.h" @@ -637,7 +641,7 @@ bool IsSystemClass(Form_pg_class reltuple) { Oid relnamespace = reltuple->relnamespace; - return IsSystemNamespace(relnamespace) || IsToastNamespace(relnamespace); + return IsSystemNamespace(relnamespace) || IsToastNamespace(relnamespace) || IsPackageSchemaOid(relnamespace); } /* @@ -846,9 +850,10 @@ bool IsSharedRelation(Oid relationId) relationId == DbRoleSettingDatidRolidIndexId || /* Add job system table indexs */ relationId == PgJobOidIndexId || relationId == PgJobIdIndexId || relationId == PgJobProcOidIndexId || - relationId == PgJobProcIdIndexId || relationId == DataSourceOidIndexId || relationId == DataSourceNameIndexId || - relationId == SubscriptionObjectIndexId || relationId == SubscriptionNameIndexId || - relationId == ReplicationOriginIdentIndex || relationId == ReplicationOriginNameIndex) + relationId == PgJobProcIdIndexId || relationId == DataSourceOidIndexId || + relationId == DataSourceNameIndexId || relationId == SubscriptionObjectIndexId || + relationId == SubscriptionNameIndexId || relationId == ReplicationOriginIdentIndex || + relationId == ReplicationOriginNameIndex) return true; /* These are their toast tables and toast indexes (see toasting.h) */ if (relationId == PgShdescriptionToastTable || relationId == PgShdescriptionToastIndex || @@ -940,23 +945,29 @@ Oid GetNewOidWithIndex(Relation relation, Oid indexId, AttrNumber oidcolumn) Oid newOid; SysScanDesc scan; ScanKeyData key; + Snapshot snapshot; + SnapshotData snapshotDirty; bool collides = false; + bool isToastRel = IsToastNamespace(RelationGetNamespace(relation)); + + InitDirtySnapshot(snapshotDirty); + + /* + * See notes in GetNewOid about using SnapshotAny. + * Exception: SnapshotDirty is used for upgrading non-TOAST catalog rels, because the time qual used + * for catalogs is SnapshotNow, rather than MVCC or SnapshotToast. + */ + snapshot = (u_sess->attr.attr_common.IsInplaceUpgrade && !isToastRel) ? &snapshotDirty : SnapshotAny; /* Generate new OIDs until we find one not in the table */ do { CHECK_FOR_INTERRUPTS(); - /* - * See comments in GetNewObjectId. - * In the future, we might turn to SnapshotToast when getting new - * chunk_id for toast datum to prevent wrap around. - */ - newOid = GetNewObjectId(IsToastNamespace(RelationGetNamespace(relation))); + newOid = GetNewObjectId(isToastRel); ScanKeyInit(&key, oidcolumn, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(newOid)); - /* see notes above about using SnapshotAny */ - scan = systable_beginscan(relation, indexId, true, SnapshotAny, 1, &key); + scan = systable_beginscan(relation, indexId, true, snapshot, 1, &key); collides = HeapTupleIsValid(systable_getnext(scan)); @@ -1061,3 +1072,57 @@ Oid GetNewRelFileNode(Oid reltablespace, Relation pg_class, char relpersistence) return rnode.node.relNode; } + +bool IsPackageSchemaOid(Oid relnamespace) +{ + const char* packageSchemaList[] = { + "dbe_lob", + "dbe_random", + "dbe_output", + "dbe_raw", + "dbe_task", + "dbe_scheduler", + "dbe_sql", + "dbe_file", + "pkg_service", + "pkg_util", + "dbe_match", + "dbe_perf", + "dbe_session" + }; + int schemaNum = 10; + char* schemaName = get_namespace_name(relnamespace); + if (schemaName == NULL) { + return false; + } + for (int i = 0; i < schemaNum; ++i) { + if (strcmp(schemaName, packageSchemaList[i]) == 0) { + pfree_ext(schemaName); + return true; + } + } + return false; +} + +bool IsPackageSchemaName(const char* schemaName) +{ + const char* packageSchemaList[] = { + "dbe_lob", + "dbe_random", + "dbe_output", + "dbe_raw", + "dbe_task", + "dbe_scheduler", + "dbe_sql", + "dbe_file", + "pkg_service", + "pkg_util" + }; + int schemaNum = 10; + for (int i = 0; i < schemaNum; ++i) { + if (strcmp(schemaName, packageSchemaList[i]) == 0) { + return true; + } + } + return false; +} diff --git a/src/common/backend/catalog/cstore_ctlg.cpp b/src/common/backend/catalog/cstore_ctlg.cpp index 3f7b0c183..ff4d1c548 100644 --- a/src/common/backend/catalog/cstore_ctlg.cpp +++ b/src/common/backend/catalog/cstore_ctlg.cpp @@ -1,4 +1,5 @@ /* + * Portions Copyright (c) 2021, openGauss Contributors * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. * Portions Copyright (c) 1996-2013, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California @@ -39,6 +40,7 @@ #include "catalog/pg_depend.h" #include "catalog/pg_namespace.h" #include "catalog/pg_opclass.h" +#include "catalog/pg_partition_fn.h" #include "catalog/pg_type.h" #include "catalog/cstore_ctlg.h" #include "catalog/toasting.h" diff --git a/src/common/backend/catalog/dependency.cpp b/src/common/backend/catalog/dependency.cpp index ee6bfcc4b..79446cac1 100644 --- a/src/common/backend/catalog/dependency.cpp +++ b/src/common/backend/catalog/dependency.cpp @@ -329,7 +329,7 @@ static void PreDropForDfsTable(ObjectAddresses* targetObjects) * dropped, is the union of the implicit-object list for all objects. This * makes each check be more relaxed. */ -void performMultipleDeletions(const ObjectAddresses* objects, DropBehavior behavior, uint32 flags) +void performMultipleDeletions(const ObjectAddresses* objects, DropBehavior behavior, uint32 flags, bool isPkgDropTypes) { Relation depRel; ObjectAddresses* targetObjects = NULL; @@ -395,7 +395,11 @@ void performMultipleDeletions(const ObjectAddresses* objects, DropBehavior behav * If there's exactly one object being deleted, report it the same way as * in performDeletion(), else we have to be vaguer. */ - reportDependentObjects(targetObjects, behavior, NOTICE, (objects->numrefs == 1 ? objects->refs : NULL)); + if (isPkgDropTypes) { + reportDependentObjects(targetObjects, behavior, INFO, ((objects->numrefs == 1) ? objects->refs : NULL)); + } else { + reportDependentObjects(targetObjects, behavior, NOTICE, ((objects->numrefs == 1) ? objects->refs : NULL)); + } /* * Don't allow "drop DFS table" to run inside a transaction block. @@ -1184,7 +1188,7 @@ static void doDeletion(const ObjectAddress* object, int flags) */ if (relKind == RELKIND_RELATION) isTmpTable = IsTempTable(object->objectId); - else if (relKind == RELKIND_SEQUENCE) { + else if (RELKIND_IS_SEQUENCE(relKind)) { isTmpSequence = IsTempSequence(object->objectId); /* * A relation is opened to get the schema and database name as @@ -1234,6 +1238,7 @@ static void doDeletion(const ObjectAddress* object, int flags) */ switch (relKind) { case RELKIND_SEQUENCE: + case RELKIND_LARGE_SEQUENCE: /* * Drop the sequence on GTM. * Sequence is dropped on GTM by a remote Coordinator only @@ -1442,7 +1447,7 @@ static void doDeletion(const ObjectAddress* object, int flags) break; case OCLASS_PG_JOB: - remove_job_by_oid(NULL, RelOid, true, object->objectId); + remove_job_by_oid(object->objectId, RelOid, true); break; case OCLASS_SYNONYM: @@ -3204,6 +3209,9 @@ static void getRelationDescription(StringInfo buffer, Oid relid) case RELKIND_SEQUENCE: appendStringInfo(buffer, _("sequence %s"), relname); break; + case RELKIND_LARGE_SEQUENCE: + appendStringInfo(buffer, _("large sequence %s"), relname); + break; case RELKIND_TOASTVALUE: appendStringInfo(buffer, _("toast table %s"), relname); break; diff --git a/src/common/backend/catalog/gs_job_argument.cpp b/src/common/backend/catalog/gs_job_argument.cpp new file mode 100644 index 000000000..d2734858f --- /dev/null +++ b/src/common/backend/catalog/gs_job_argument.cpp @@ -0,0 +1,482 @@ +/* + * Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors + * + * openGauss is licensed under Mulan PSL v2. + * You can use this software according to the terms and conditions of the Mulan PSL v2. + * You may obtain a copy of Mulan PSL v2 at: + * + * http://license.coscl.org.cn/MulanPSL2 + * + * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, + * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, + * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + * See the Mulan PSL v2 for more details. + * ------------------------------------------------------------------------- + * + * gs_job_argument.cpp + * + * IDENTIFICATION + * src/common/backend/catalog/catalog/gs_job_argument.cpp + * + * ------------------------------------------------------------------------- + */ + +#include "postgres.h" +#include "knl/knl_variable.h" +#include +#include "access/sysattr.h" +#include "access/xact.h" +#include "catalog/indexing.h" +#include "catalog/namespace.h" +#include "catalog/objectaccess.h" +#include "catalog/pg_collation.h" +#include "catalog/pg_type.h" +#include "commands/alter.h" +#include "commands/comment.h" +#include "commands/dbcommands.h" +#include "commands/extension.h" +#include "commands/schemacmds.h" +#include "executor/spi.h" +#include "funcapi.h" +#include "mb/pg_wchar.h" +#include "miscadmin.h" +#include "pgxc/pgxc.h" +#include "tcop/utility.h" +#include "utils/builtins.h" +#include "utils/dbe_scheduler.h" +#include "utils/fmgroids.h" +#include "utils/formatting.h" +#include "utils/lsyscache.h" +#include "utils/rel.h" +#include "utils/rel_gs.h" +#include "utils/snapmgr.h" +#include "access/heapam.h" +#include "access/tableam.h" +#include "catalog/pg_job.h" +#include "catalog/pg_job_proc.h" +#include "catalog/pg_authid.h" +#include "catalog/pg_database.h" +#include "catalog/gs_job_argument.h" +#include "catalog/gs_job_attribute.h" +#include "fmgr.h" +#include "utils/syscache.h" +#include "utils/timestamp.h" +#include "pgxc/execRemote.h" + +/* Function definitions */ +static void check_define_argument_valid(const Datum job_name, const Datum argument_position); + +/* + * @brief search_by_sysscan_1 + * Perform sysscan. + * @param rel + * @param scan_key_info + * @return List* + */ +List *search_by_sysscan_1(Relation rel, ScanKeyInfo *scan_key_info) +{ + ScanKeyData key[1]; + ScanKeyInit(&key[0], scan_key_info->attribute_number, BTEqualStrategyNumber, scan_key_info->procedure, + scan_key_info->attribute_value); + SysScanDesc index_scan = systable_beginscan(rel, InvalidOid, false, SnapshotNow, 1, key); + HeapTuple tuple; + List *tuples = NIL; + while (HeapTupleIsValid(tuple = systable_getnext(index_scan))) { + tuples = lappend(tuples, heap_copytuple(tuple)); + } + systable_endscan(index_scan); + return tuples; +} + +/* + * @brief search_by_sysscan_2 + * Perform sysscan with two keys. + * @param rel + * @param scan_key_info1 + * @param scan_key_info2 + * @return List* + */ +List *search_by_sysscan_2(Relation rel, ScanKeyInfo *scan_key_info1, ScanKeyInfo *scan_key_info2) +{ + ScanKeyData key[2]; + ScanKeyInit(&key[0], scan_key_info1->attribute_number, BTEqualStrategyNumber, scan_key_info1->procedure, + scan_key_info1->attribute_value); + ScanKeyInit(&key[1], scan_key_info2->attribute_number, BTEqualStrategyNumber, scan_key_info2->procedure, + scan_key_info2->attribute_value); + SysScanDesc index_scan = systable_beginscan(rel, InvalidOid, false, SnapshotNow, 2, key); + HeapTuple tuple; + List *tuples = NIL; + while (HeapTupleIsValid(tuple = systable_getnext(index_scan))) { + tuples = lappend(tuples, heap_copytuple(tuple)); + } + systable_endscan(index_scan); + return tuples; +} + +/* + * @brief search_by_argument_position + * Get the tuple from gs_job_argument with given position. + */ +static HeapTuple search_by_argument_position(Relation gs_job_argument_rel, Datum job_name, Datum argument_position) +{ + ScanKeyInfo scan_key_info1; + scan_key_info1.attribute_value = job_name; + scan_key_info1.attribute_number = Anum_gs_job_argument_job_name; + scan_key_info1.procedure = F_TEXTEQ; + ScanKeyInfo scan_key_info2; + scan_key_info2.attribute_value = argument_position; + scan_key_info2.attribute_number = Anum_gs_job_argument_argument_position; + scan_key_info2.procedure = F_INT4EQ; + + List *tuples = search_by_sysscan_2(gs_job_argument_rel, &scan_key_info1, &scan_key_info2); + Assert(list_length(tuples) <= 1); + HeapTuple tuple = NULL; + if (list_length(tuples) > 1) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_UNDEFINED_OBJECT), + errmsg("find %d rows match the search in system table gs_job_argument.", list_length(tuples)), + errdetail("N/A"), errcause("job_name or argument not match"), + erraction("Please check job_name and argument"))); + } else if (list_length(tuples) == 1) { + tuple = (HeapTuple)linitial(tuples); + list_free_ext(tuples); + } + return tuple; +} + +/* + * @brief search_by_argument_name + * Get the tuple from gs_job_argument with given name for PROGRAM ONLY. + */ +static HeapTuple search_by_argument_name(Relation gs_job_argument_rel, Datum program_name, Datum argument_name) +{ + ScanKeyInfo scan_key_info1; + scan_key_info1.attribute_value = program_name; + scan_key_info1.attribute_number = Anum_gs_job_argument_job_name; + scan_key_info1.procedure = F_TEXTEQ; + ScanKeyInfo scan_key_info2; + scan_key_info2.attribute_value = argument_name; + scan_key_info2.attribute_number = Anum_gs_job_argument_argument_name; + scan_key_info2.procedure = F_TEXTEQ; + + List *tuples = search_by_sysscan_2(gs_job_argument_rel, &scan_key_info1, &scan_key_info2); + Assert(list_length(tuples) <= 1); + HeapTuple tuple = NULL; + if (list_length(tuples) > 1) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_UNDEFINED_OBJECT), + errmsg("Cannot set job argument value."), errdetail("Arguments cannot have the same name."), + errcause("Multiple arguments found."), erraction("Please check program's argument name."))); + } else if (list_length(tuples) == 1) { + tuple = (HeapTuple)linitial(tuples); + list_free_ext(tuples); + } + return tuple; +} + +/* + * @brief get_default_argument_name + * Get the default argument name. + */ +static Datum get_default_argument_name(Datum argument_position) +{ +#define MAX_ARGUMENT_NAME_LEN 1024 + char name[MAX_ARGUMENT_NAME_LEN] = {0}; + int position = DatumGetInt32(argument_position); + errno_t rc = snprintf_s(name, MAX_ARGUMENT_NAME_LEN, MAX_ARGUMENT_NAME_LEN, "default_argument_%d", position); + securec_check_ss_c(rc, "\0", "\0"); + + return CStringGetTextDatum(name); +} + +/* + * @brief get_program_argument_type + * Get argument type from associated program. + */ +static Datum get_program_argument_type(Relation gs_job_argument_rel, Datum job_name, Datum arg_position, Datum *values) +{ + Datum program_name = get_attribute_value(job_name, "program_name", AccessShareLock, false, false); + HeapTuple oldtuple = SearchSysCache2(JOBARGUMENTPOSITION, program_name, arg_position); + if (oldtuple == NULL) { + return get_default_argument_type(); + } + bool isnull = false; + Datum argument_type = heap_getattr(oldtuple, Anum_gs_job_argument_argument_type, + RelationGetDescr(gs_job_argument_rel), &isnull); + Datum argument_type_dup = DirectFunctionCall1(namein, CStringGetDatum(pstrdup(DatumGetPointer(argument_type)))); + ReleaseSysCache(oldtuple); + pfree(DatumGetPointer(program_name)); + return argument_type_dup; +} + +/* + * @brief insert_argument_value + * Insert argument value base on position. + */ +static void insert_argument_value(Relation gs_job_argument_rel, Datum job_name, Datum arg_position, Datum arg_value) +{ + Relation attr_rel = heap_open(GsJobAttributeRelationId, RowExclusiveLock); + Datum program_name = CStringGetTextDatum("program_name"); + bool isnull = false; + Datum program_name_value = lookup_job_attribute(attr_rel, job_name, program_name, &isnull, false); + + check_define_argument_valid(program_name_value, arg_position); + heap_close(attr_rel, NoLock); + pfree(DatumGetPointer(program_name_value)); + pfree(DatumGetPointer(program_name)); + + Datum values[Natts_gs_job_argument]; + bool nulls[Natts_gs_job_argument]; + error_t rc = memset_s(nulls, sizeof(nulls), 0, sizeof(nulls)); + securec_check(rc, "\0", "\0"); + + Datum arg_type = get_program_argument_type(gs_job_argument_rel, job_name, arg_position, values); + values[Anum_gs_job_argument_argument_name - 1] = get_default_argument_name(arg_position); + values[Anum_gs_job_argument_argument_type - 1] = arg_type; + values[Anum_gs_job_argument_job_name - 1] = job_name; + values[Anum_gs_job_argument_argument_position - 1] = arg_position; + values[Anum_gs_job_argument_argument_value - 1] = arg_value; + nulls[Anum_gs_job_argument_default_value - 1] = true; + + HeapTuple tuple = heap_form_tuple(RelationGetDescr(gs_job_argument_rel), values, nulls); + (void)simple_heap_insert(gs_job_argument_rel, tuple); + CatalogUpdateIndexes(gs_job_argument_rel, tuple); + heap_freetuple_ext(tuple); + pfree(DatumGetPointer(values[Anum_gs_job_argument_argument_name - 1])); +} + +/* + * @brief update_argument_value + * Update the job argument value. + */ +static void update_argument_value(Relation gs_job_argument_rel, HeapTuple oldtuple, Datum job_name, + Datum argument_position, Datum argument_value) +{ + Datum values[Natts_gs_job_argument]; + bool nulls[Natts_gs_job_argument]; + bool replaces[Natts_gs_job_argument]; + error_t rc = memset_s(replaces, sizeof(replaces), 0, sizeof(replaces)); + securec_check(rc, "\0", "\0"); + + Datum argument_type = get_program_argument_type(gs_job_argument_rel, job_name, argument_position, values); + replaces[Anum_gs_job_argument_argument_type - 1] = true; + values[Anum_gs_job_argument_argument_type - 1] = argument_type; + nulls[Anum_gs_job_argument_argument_type - 1] = false; + + replaces[Anum_gs_job_argument_argument_value - 1] = true; + values[Anum_gs_job_argument_argument_value - 1] = argument_value; + nulls[Anum_gs_job_argument_argument_value - 1] = false; + + HeapTuple newtuple = heap_modify_tuple(oldtuple, RelationGetDescr(gs_job_argument_rel), values, nulls, replaces); + simple_heap_update(gs_job_argument_rel, &newtuple->t_self, newtuple); + CatalogUpdateIndexes(gs_job_argument_rel, newtuple); + heap_freetuple_ext(newtuple); +} + +/* + * @brief set_job_argument_value_1_internal + * Set the job argument value. + */ +void set_job_argument_value_1_internal(PG_FUNCTION_ARGS) +{ + Datum job_name = PG_GETARG_DATUM(0); + Datum argument_position = PG_GETARG_DATUM(1); + Datum argument_value = PG_GETARG_DATUM(2); + check_object_type_matched(job_name, "job"); + check_object_is_visible(job_name); + + Relation gs_job_argument_rel = heap_open(GsJobArgumentRelationId, RowExclusiveLock); + HeapTuple oldtuple = search_by_argument_position(gs_job_argument_rel, job_name, argument_position); + if (oldtuple != NULL) { + update_argument_value(gs_job_argument_rel, oldtuple, job_name, argument_position, argument_value); + pfree(oldtuple); + } else { + insert_argument_value(gs_job_argument_rel, job_name, argument_position, argument_value); + } + heap_close(gs_job_argument_rel, NoLock); +} + +/* + * @brief get_argument_position_from_name + * Get arguemnt position base on its argument name. + * @param gs_job_argument_rel relation + * @param job_name job name + * @param argument_name argument name + * @return Datum argument position + */ +static Datum get_argument_position_from_name(Relation gs_job_argument_rel, Datum job_name, Datum argument_name) +{ + Datum program_name = get_attribute_value(job_name, "program_name", AccessShareLock, false, false); + HeapTuple tuple = search_by_argument_name(gs_job_argument_rel, program_name, argument_name); + if (tuple == NULL) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_UNDEFINED_OBJECT), + errmsg("Fail to set job argument value."), + errdetail("Argument %s was never defined.", TextDatumGetCString(argument_name)), + errcause("Trying to set argument value without defining it."), + erraction("Please define program argument before set value."))); + } + bool isnull = true; + Datum argument_position = heap_getattr(tuple, Anum_gs_job_argument_argument_position, + RelationGetDescr(gs_job_argument_rel), &isnull); + int position = DatumGetInt32(argument_position); + pfree(tuple); + return Int32GetDatum(position); +} + +/* + * @brief set_job_argument_value_2_internal + * Set the job argument value. This is a common overload of the previous one. + * Note that we do not actually save the name for job entries. + */ +void set_job_argument_value_2_internal(PG_FUNCTION_ARGS) +{ + Datum job_name = PG_GETARG_DATUM(0); + Datum argument_name = PG_GETARG_DATUM(1); + Datum argument_value = PG_GETARG_DATUM(2); + check_object_type_matched(job_name, "job"); + check_object_is_visible(job_name); + + Relation gs_job_argument_rel = heap_open(GsJobArgumentRelationId, RowExclusiveLock); + Datum argument_position = get_argument_position_from_name(gs_job_argument_rel, job_name, argument_name); + HeapTuple oldtuple = search_by_argument_position(gs_job_argument_rel, job_name, argument_position); + if (oldtuple != NULL) { + update_argument_value(gs_job_argument_rel, oldtuple, job_name, argument_position, argument_value); + pfree(oldtuple); + } else { + insert_argument_value(gs_job_argument_rel, job_name, argument_position, argument_value); + } + heap_close(gs_job_argument_rel, NoLock); +} + +/* + * @brief delete_argument_by_position + * Delete argument entry by its position. + * @param gs_job_argument_rel + * @param program_name + * @param argument_position + */ +static void delete_argument_by_position(Relation gs_job_argument_rel, Datum program_name, Datum argument_position) +{ + ScanKeyData key[2]; + ScanKeyInit(&key[0], Anum_gs_job_argument_job_name, BTEqualStrategyNumber, F_TEXTEQ, program_name); + ScanKeyInit(&key[1], Anum_gs_job_argument_argument_position, BTEqualStrategyNumber, F_INT4EQ, argument_position); + SysScanDesc index_scan = systable_beginscan(gs_job_argument_rel, InvalidOid, false, SnapshotNow, 2, key); + HeapTuple tuple; + while (HeapTupleIsValid(tuple = systable_getnext(index_scan))) { + simple_heap_delete(gs_job_argument_rel, &tuple->t_self); + } + systable_endscan(index_scan); +} + +/* + * @brief delete_deprecated_program_arguments + * Clean up program arguments and related job's argument. Then disable the program. + * @param program_name + * @param delete_self delete program's argument if true. + */ +void delete_deprecated_program_arguments(Datum program_name, bool delete_self) +{ + if (delete_self) { + delete_from_argument(program_name); + enable_program(program_name, CStringGetTextDatum("false")); + } + Relation gs_job_attribute_rel = heap_open(GsJobAttributeRelationId, RowExclusiveLock); + List *tuples = search_related_attribute(gs_job_attribute_rel, CStringGetTextDatum("program_name"), program_name); + ListCell *lc = NULL; + foreach(lc, tuples) { + HeapTuple tuple = (HeapTuple)lfirst(lc); + bool isnull = false; + Datum job_name = heap_getattr(tuple, Anum_gs_job_attribute_job_name, gs_job_attribute_rel->rd_att, &isnull); + delete_from_argument(job_name); + } + heap_close(gs_job_attribute_rel, NoLock); + list_free_deep(tuples); +} + +/* + * @brief check_define_argument_valid + * Check if argument number is within range. + * @param program_name + * @param argument_position + */ +static void check_define_argument_valid(const Datum program_name, const Datum argument_position) +{ + Relation gs_job_attribute_rel = heap_open(GsJobAttributeRelationId, RowExclusiveLock); + bool isNull = false; + Datum number_of_arguments = lookup_job_attribute(gs_job_attribute_rel, program_name, + CStringGetTextDatum("number_of_arguments"), &isNull, false); + int32_t max_number = DatumGetInt32(TextToInt32(number_of_arguments)); + int32 position = DatumGetInt32(argument_position); + if (position <= 0 || position > max_number) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("Argument position specified is out of range."), + errdetail("Argument %d should within range (0, %d].", position, max_number), errcause("N/A"), + erraction("Please check argument_position"))); + } + heap_close(gs_job_attribute_rel, NoLock); +} + +/* + * @brief define_program_argument + * Define arguments. + */ +static void define_program_argument(PG_FUNCTION_ARGS) +{ + Datum values[Natts_gs_job_argument]; + bool nulls[Natts_gs_job_argument]; + error_t rc = memset_s(nulls, sizeof(nulls), 0, sizeof(nulls)); + securec_check(rc, "\0", "\0"); + + Datum program_name = PG_GETARG_DATUM(0); + check_object_is_visible(PG_GETARG_DATUM(0)); + check_object_type_matched(program_name, "program"); + if (is_inlined_program(program_name)) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("Invalid program name"), errdetail("Cannot modify inlined program."), + errcause("Try to modify inlined object."), erraction("Please enter a valid program name"))); + } + Datum argument_position = PG_GETARG_DATUM(1); + check_define_argument_valid(program_name, argument_position); + + Datum argument_name = PG_GETARG_DATUM(2); + Datum argument_type = DirectFunctionCall1(namein, CStringGetDatum(TextDatumGetCString(PG_GETARG_DATUM(3)))); + if (PG_NARGS() == 6) { + Datum default_value = PG_GETARG_DATUM(4); + values[Anum_gs_job_argument_default_value - 1] = default_value; + } else { + nulls[Anum_gs_job_argument_default_value - 1] = true; + } + + values[Anum_gs_job_argument_job_name - 1] = program_name; + values[Anum_gs_job_argument_argument_name - 1] = PG_ARGISNULL(2) ? get_default_argument_name(argument_position) : \ + argument_name; + values[Anum_gs_job_argument_argument_position - 1] = argument_position; + values[Anum_gs_job_argument_argument_type - 1] = argument_type; + nulls[Anum_gs_job_argument_argument_value - 1] = true; + + Relation gs_job_argument_rel = heap_open(GsJobArgumentRelationId, RowExclusiveLock); + delete_argument_by_position(gs_job_argument_rel, program_name, argument_position); + HeapTuple tuple = heap_form_tuple(RelationGetDescr(gs_job_argument_rel), values, nulls); + (void)simple_heap_insert(gs_job_argument_rel, tuple); + CatalogUpdateIndexes(gs_job_argument_rel, tuple); + heap_freetuple_ext(tuple); + heap_close(gs_job_argument_rel, NoLock); + delete_deprecated_program_arguments(program_name, false); +} + +/* + * @brief define_program_argument_1_internal + * Wrapper. + */ +void define_program_argument_1_internal(PG_FUNCTION_ARGS) +{ + define_program_argument(fcinfo); +} + +/* + * @brief define_program_argument_2_internal + * Wrapper. + */ +void define_program_argument_2_internal(PG_FUNCTION_ARGS) +{ + define_program_argument(fcinfo); +} \ No newline at end of file diff --git a/src/common/backend/catalog/gs_job_attribute.cpp b/src/common/backend/catalog/gs_job_attribute.cpp new file mode 100644 index 000000000..2056d98e1 --- /dev/null +++ b/src/common/backend/catalog/gs_job_attribute.cpp @@ -0,0 +1,1999 @@ +/* + * Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors + * + * openGauss is licensed under Mulan PSL v2. + * You can use this software according to the terms and conditions of the Mulan PSL v2. + * You may obtain a copy of Mulan PSL v2 at: + * + * http://license.coscl.org.cn/MulanPSL2 + * + * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, + * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, + * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + * See the Mulan PSL v2 for more details. + * ------------------------------------------------------------------------- + * + * gs_job_attribute.cpp + * + * IDENTIFICATION + * src/common/backend/catalog/catalog/gs_job_attribute.cpp + * + * ------------------------------------------------------------------------- + */ + +#include "postgres.h" +#include "knl/knl_variable.h" +#include +#include "access/sysattr.h" +#include "access/xact.h" +#include "catalog/indexing.h" +#include "catalog/namespace.h" +#include "catalog/objectaccess.h" +#include "catalog/pg_collation.h" +#include "catalog/pg_type.h" +#include "commands/alter.h" +#include "commands/comment.h" +#include "commands/dbcommands.h" +#include "commands/extension.h" +#include "commands/schemacmds.h" +#include "executor/spi.h" +#include "funcapi.h" +#include "mb/pg_wchar.h" +#include "miscadmin.h" +#include "pgxc/pgxc.h" +#include "tcop/utility.h" +#include "utils/builtins.h" +#include "utils/dbe_scheduler.h" +#include "utils/fmgroids.h" +#include "utils/formatting.h" +#include "utils/lsyscache.h" +#include "utils/rel.h" +#include "utils/rel_gs.h" +#include "utils/snapmgr.h" +#include "access/heapam.h" +#include "access/tableam.h" +#include "catalog/pg_job.h" +#include "catalog/pg_job_proc.h" +#include "catalog/pg_authid.h" +#include "catalog/pg_database.h" +#include "catalog/gs_job_argument.h" +#include "catalog/gs_job_attribute.h" +#include "fmgr.h" +#include "utils/syscache.h" +#include "utils/timestamp.h" +#include "pgxc/execRemote.h" + +/* + * @brief get_scheduler_max_timestamp + * Get max timestamp 4000-1-1. + */ +Datum get_scheduler_max_timestamp() +{ + return DirectFunctionCall2(to_timestamp, + DirectFunctionCall1(textin, CStringGetDatum("4000-1-1")), + DirectFunctionCall1(textin, CStringGetDatum("yyyy-mm-dd"))); +} + +/* + * @brief get_scheduler_max_timestamptz + * Get max timestamp eith time zone 4000-1-1. + */ +Datum get_scheduler_max_timestamptz() +{ + return DirectFunctionCall1(timestamp_timestamptz, get_scheduler_max_timestamp()); +} + +/* + * @brief get_role_name_str + * Get the string version of role id. + */ +char *get_role_name_str(Oid oid) +{ + oid = (oid != InvalidOid) ? oid : GetUserId(); + char *name = (char *)palloc(MAX_JOB_NAME_LEN * sizeof(char)); + pg_ltoa((int)oid, name); + return name; +} + +/* + * @brief get_role_datum + * Get text datum version of role id. + */ +Datum get_role_datum(Datum name) +{ + char *role_id_str = NULL; + if (name == (Datum)0) { + role_id_str = get_role_name_str(); + } else { + role_id_str = get_role_name_str(get_role_oid(TextDatumGetCString(name), false)); + } + return CStringGetTextDatum(role_id_str); +} + +/* + * @brief get_raw_role_datum + * From text datum role id to role name string. + */ +char *get_raw_role_str(Datum name) +{ + char *name_str = TextDatumGetCString(name); + return GetUserNameFromId((Oid)atoi(name_str)); +} + +/* + * @brief get_default_argument_type + * Wrapper for default argument type. + */ +Datum get_default_argument_type() +{ + return DirectFunctionCall1(namein, CStringGetDatum("text")); +} + +/* + * @brief get_pg_job_node_name + * Get the pg job node name, can be an empty string. + * @return Datum node_name datum + */ +static Datum get_pg_job_node_name() +{ + if (!IsConnFromCoord()) { + return DirectFunctionCall1(namein, CStringGetDatum(g_instance.attr.attr_common.PGXCNodeName)); + } + return DirectFunctionCall1(namein, CStringGetDatum("")); +} + +/* + * @brief is_inlined_program + * Check if name start with INLINE_JOB_PROGRAM_PREFIX. + */ +bool is_inlined_program(Datum program_name) +{ + char *str = TextDatumGetCString(program_name); + if (strncmp(str, INLINE_JOB_PROGRAM_PREFIX, strlen(INLINE_JOB_PROGRAM_PREFIX)) == 0) { + return true; + } + return false; +} + +/* + * @brief is_inlined_schedule + * Check if name start with INLINE_JOB_SCHEDULE_PREFIX. + */ +bool is_inlined_schedule(Datum schedule_name) +{ + char *str = TextDatumGetCString(schedule_name); + if (strncmp(str, INLINE_JOB_SCHEDULE_PREFIX, strlen(INLINE_JOB_SCHEDULE_PREFIX)) == 0) { + return true; + } + return false; +} + +/* + * @brief IsLegalNameStr + * Check if a given name string is legal. + * @param nameStr name string + * @param hasAlpha alphabet check + * @return true legal + * @return false too long/contains invalid character + */ +static bool IsLegalNameStr(const char* nameStr, bool *hasAlpha) +{ + size_t NBytes = (unsigned int)strlen(nameStr); + if (NBytes > (MAX_JOB_NAME_LEN - sizeof(INLINE_JOB_SCHEDULE_PREFIX))) { /* 1024 - 17 */ + return false; + } + + for (size_t i = 0; i < NBytes; i++) { + /* check whether the character is correct */ + if (IsIllegalCharacter(nameStr[i])) { + return false; + } + + /* NOTE: make sure if hasAlpha is true, the alphabet check is disabled */ + if (!(*hasAlpha) && isalpha(nameStr[i])) { + *hasAlpha = true; + } + } + return true; +} + +/* + * @brief is_job_running + * Is job at running state? + * @param job_name + * @return true + * @return false + */ +bool is_job_running(Datum job_name) +{ + bool is_running = false; + Relation pg_job_rel = heap_open(PgJobRelationId, AccessShareLock); + HeapTuple tuple = search_from_pg_job(pg_job_rel, job_name); + if (!HeapTupleIsValid(tuple)) { + heap_close(pg_job_rel, AccessShareLock); + return false; + } + Form_pg_job pg_job_value = (Form_pg_job)GETSTRUCT(tuple); + if (pg_job_value->job_status == PGJOB_RUN_STATUS) { + is_running = true; + } + heap_close(pg_job_rel, AccessShareLock); + heap_freetuple_ext(tuple); + return is_running; +} + +/* + * @brief can_disable_job + * Check if a job is running. This is a wrapper. + * @param job_name + */ +static void can_disable_job(Datum job_name) +{ + if (is_job_running(job_name)) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_INVALID_STATUS), + errmsg("disable job_name %s running not allowed.", TextDatumGetCString(job_name)), + errdetail("N/A"), errcause("disable job running not allowed"), + erraction("Please check job_name running status"))); + } +} + +/* + * @brief get_attribute_value + * Get single attribute Datum. + */ +Datum get_attribute_value(Datum object, const char *attribute, LOCKMODE lockmode, bool miss_ok, bool can_be_null) +{ + bool isnull = false; + Relation rel = heap_open(GsJobAttributeRelationId, lockmode); + Datum attribute_name = CStringGetTextDatum(attribute); + Datum attribute_value = lookup_job_attribute(rel, object, attribute_name, &isnull, miss_ok); + heap_close(rel, NoLock); + if (!PointerIsValid(attribute_value) && !can_be_null) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_UNDEFINED_OBJECT), + errmsg("Attribute %s of object %s can not be empty.", attribute, TextDatumGetCString(object)), + errdetail("Corrupted attribute value."), errcause("N/A"), + erraction("Please check object name"))); + } + return attribute_value; +} + +/* + * @brief get_attribute_value_str + * Get single attribute value string, wrapper. + */ +char *get_attribute_value_str(Datum object, const char *attribute, LOCKMODE lockmode, bool miss_ok, bool can_be_null) +{ + Datum val = get_attribute_value(object, attribute, lockmode, miss_ok, can_be_null); + if (val == Datum(0)) { + return NULL; + } + return TextDatumGetCString(val); +} + +/* + * @brief check_object_is_visible + * Check if object is visible for current user. + * @param object_name + * @param is_readonly means that if we need to double check EXECUTE_ANY_PROGRAM_PRIVILEGE + */ +void check_object_is_visible(Datum object_name, bool is_readonly) +{ + if(superuser()) { + return; + } + char *cur_user = get_role_name_str(); + char *username = get_attribute_value_str(object_name, "owner", AccessShareLock, false, false); + if(pg_strcasecmp(cur_user, username) == 0) { + pfree_ext(username); + pfree_ext(cur_user); + return; + } + pfree_ext(username); + char *object_type = get_attribute_value_str(object_name, "object_type", AccessShareLock, false, false); + if (is_readonly && pg_strcasecmp(object_type, "program") == 0) { + check_privilege(cur_user, EXECUTE_ANY_PROGRAM_PRIVILEGE); + } else { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), + errmsg("Object %s is not valid for current user.", TextDatumGetCString(object_name)), + errdetail("Insufficient privilege given."), errcause("N/A"), + erraction("Please contact database administrator."))); + } + pfree_ext(cur_user); + pfree_ext(object_type); +} + +/* + * @brief check_object_type_matched + * Check if the name has expected object type. + * @param object_name + * @param object_type + */ +void check_object_type_matched(Datum object_name, const char *object_type) +{ + char *attribute_value_str = get_attribute_value_str(object_name, "object_type", RowExclusiveLock, false, false); + if (pg_strcasecmp(object_type, attribute_value_str) != 0) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_DATATYPE_MISMATCH), + errmsg("Object %s has type %s.", TextDatumGetCString(object_name), attribute_value_str), + errdetail("Object type does not match."), errcause("N/A"), + erraction("Please check %s name", object_type))); + } + pfree(attribute_value_str); +} + +/* + * @brief check_job_class_valid + * Check if job class is valid. + * @param job_class + */ +void check_job_class_valid(Datum job_class) +{ + if (strcasecmp(TextDatumGetCString(job_class), "DEFAULT_JOB_CLASS") != 0) { + check_object_type_matched(job_class, "job_class"); + } +} + +/* + * @brief get_job_type + * Get the job type string. + * @param job_name + * @param miss_ok + * @return char* + */ +char *get_job_type(Datum job_name, bool miss_ok) +{ + Datum program_name = get_attribute_value(job_name, "program_name", AccessShareLock, miss_ok, miss_ok); + if (program_name == Datum(0)) { + Assert(miss_ok); + return NULL; + } + return get_attribute_value_str(program_name, "program_type", AccessShareLock, miss_ok, miss_ok); +} + +/* + * @brief get_program_number_of_arguments + * Get the program number of arguments attribute. + * @param program_name + * @param miss_ok + * @return int + */ +int get_program_number_of_arguments(Datum program_name, bool miss_ok) +{ + Datum val = get_attribute_value(program_name, "number_of_arguments", AccessShareLock, miss_ok, true); + if (val == Datum(0)) { + return 0; + } + return TextToInt32(val); +} + +/* + * @brief insert_gs_job_attribute + * Insert into gs_job_attribute. + * @param gs_job_attribute_rel + * @param attribute_name + * @param attribute_value + * @param values + * @param nulls + */ +static void insert_gs_job_attribute(const Relation gs_job_attribute_rel, const Datum attribute_name, + const Datum attribute_value, Datum *values, bool *nulls) +{ + values[Anum_gs_job_attribute_attribute_name - 1] = attribute_name; + if (!PointerIsValid(attribute_value)) { + Assert(pg_strcasecmp(TextDatumGetCString(attribute_name), "object_type") != 0); + nulls[Anum_gs_job_attribute_attribute_value - 1] = true; + } else { + values[Anum_gs_job_attribute_attribute_value - 1] = attribute_value; + nulls[Anum_gs_job_attribute_attribute_value - 1] = false; + } + HeapTuple tuple = heap_form_tuple(RelationGetDescr(gs_job_attribute_rel), values, nulls); + (void)simple_heap_insert(gs_job_attribute_rel, tuple); + CatalogUpdateIndexes(gs_job_attribute_rel, tuple); + heap_freetuple_ext(tuple); +} + +/* + * @brief insert_attribute + * Insert one attribute. + * @param object_name + * @param attribute_name + * @param attribute_value + */ +void insert_attribute(const Datum object_name, const Datum attribute_name, const Datum attribute_value) +{ + Datum values[Natts_gs_job_attribute]; + bool nulls[Natts_gs_job_attribute]; + errno_t rc = memset_s(nulls, sizeof(nulls), 0, sizeof(nulls)); + securec_check(rc, "\0", "\0"); + values[Anum_gs_job_attribute_job_name - 1] = PointerGetDatum(object_name); + Relation gs_job_attribute_rel = heap_open(GsJobAttributeRelationId, RowExclusiveLock); + insert_gs_job_attribute(gs_job_attribute_rel, attribute_name, attribute_value, values, nulls); + heap_close(gs_job_attribute_rel, NoLock); +} + +/* + * @brief multi_insert_attribute + * Batch insert attributes. + * @param object_name + * @param attribute_name + * @param attribute_value + * @param n + */ +void multi_insert_attribute(const Datum object_name, const Datum *attribute_name, const Datum *attribute_value, int n) +{ + Datum values[Natts_gs_job_attribute]; + bool nulls[Natts_gs_job_attribute]; + errno_t rc = memset_s(nulls, sizeof(nulls), 0, sizeof(nulls)); + securec_check(rc, "\0", "\0"); + values[Anum_gs_job_attribute_job_name - 1] = object_name; + Relation gs_job_attribute_rel = heap_open(GsJobAttributeRelationId, RowExclusiveLock); + for (int i = 0; i < n; i++) { + insert_gs_job_attribute(gs_job_attribute_rel, attribute_name[i], attribute_value[i], values, nulls); + } + heap_close(gs_job_attribute_rel, NoLock); +} + +/* + * @brief update_attribute + * Given a attribute name and value, perform an update. + * @param object_name + * @param attribute_name + * @param attribute_value + */ +void update_attribute(Datum object_name, Datum attribute_name, Datum attribute_value) +{ + Datum values[Natts_gs_job_attribute]; + bool nulls[Natts_gs_job_attribute]; + bool replaces[Natts_gs_job_attribute]; + errno_t rc = memset_s(replaces, sizeof(replaces), 0, sizeof(replaces)); + securec_check(rc, "\0", "\0"); + replaces[Anum_gs_job_attribute_attribute_value - 1] = true; + values[Anum_gs_job_attribute_attribute_value - 1] = attribute_value; + nulls[Anum_gs_job_attribute_attribute_value - 1] = false; + + Relation gs_job_attribute_rel = heap_open(GsJobAttributeRelationId, RowExclusiveLock); + HeapTuple oldtuple = SearchSysCache2(JOBATTRIBUTENAME, object_name, attribute_name); + if (oldtuple == NULL) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_UNDEFINED_OBJECT), + errmsg("Fail to update attribute."), + errdetail("Attribute entry %s not found.", TextDatumGetCString(attribute_name)), + errcause("attribute is not exist"), erraction("Please check object_name"))); + } + HeapTuple newtuple = heap_modify_tuple(oldtuple, RelationGetDescr(gs_job_attribute_rel), values, nulls, replaces); + simple_heap_update(gs_job_attribute_rel, &newtuple->t_self, newtuple); + CatalogUpdateIndexes(gs_job_attribute_rel, newtuple); + heap_close(gs_job_attribute_rel, NoLock); + ReleaseSysCache(oldtuple); + heap_freetuple_ext(newtuple); +} + +/* + * @brief check_privilege + * Lookup if user has authorization, report error immediately if doesn't. + * @param username + * @param authorization + */ +void check_privilege(char *username, const char *authorization) +{ + if (superuser()) { + return; + } + Datum attribute_name = CStringGetTextDatum(authorization); + check_authorization_valid(attribute_name); + bool isnull = false; + Relation rel = heap_open(GsJobAttributeRelationId, AccessShareLock); + Datum username_text = CStringGetTextDatum(username); + Datum attribute_value = lookup_job_attribute(rel, username_text, attribute_name, &isnull, true); + if (attribute_value == Datum(0)) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_UNDEFINED_OBJECT), + errmsg("User needs '%s' privilege to perform this operation.", authorization), + errdetail("Not enough privileges."), errcause("N/A"), + erraction("Please ensure the user have enough privilege."))); + } + heap_close(rel, NoLock); + pfree(DatumGetPointer(attribute_value)); + pfree(DatumGetPointer(attribute_name)); + pfree(DatumGetPointer(username_text)); +} + +/* + * @brief check_authorization_valid + * Check if authorization is valid. + * @param privilege + */ +void check_authorization_valid(Datum privilege) +{ + char *privilege_str = TextDatumGetCString(privilege); + const char *privilege_arr[] = {EXECUTE_ANY_PROGRAM_PRIVILEGE, CREATE_JOB_PRIVILEGE, + CREATE_EXTERNAL_JOB_PRIVILEGE, RUN_EXTERNAL_JOB_PRIVILEGE}; + int len = lengthof(privilege_arr); + for (int i = 0; i < len; ++i) { + if (pg_strcasecmp(privilege_str, privilege_arr[i]) == 0) { + pfree(privilege_str); + return; + } + } + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_INVALID_NAME), + errmsg("Invalid privilege %s", privilege_str), + errdetail("privilege contains invalid character"), errcause("privilege is invalid"), + erraction("Please enter a valid privilege"))); +} + +/* + * @brief grant_user_authorization_internal + * Grant authorization to user. + */ +void grant_user_authorization_internal(PG_FUNCTION_ARGS) +{ + if (!superuser()) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), + errmsg("Fail to grant authorization."), + errdetail("Insufficient privilege to grant authorization."), errcause("N/A"), + erraction("Please login in with initial user or contact database administrator."))); + } + const Datum username = get_role_datum(PG_GETARG_DATUM(0)); + const Datum privilege = PG_GETARG_DATUM(1); + check_authorization_valid(privilege); + + Datum attribute_name[] = {privilege}; + int count = lengthof(attribute_name); + Datum attribute_value[] = {CStringGetTextDatum("granted")}; + multi_insert_attribute(username, attribute_name, attribute_value, count); + for (int i = 0; i < count; i++) { + pfree(DatumGetPointer(attribute_name[i])); + } + pfree(DatumGetPointer(attribute_value[0])); +} + +/* + * @brief check_credential_name_valid + * Check if a user input string is a valid username. + * @param file_name + */ +static void check_credential_name_valid(const Datum username) +{ + char *name_str = TextDatumGetCString(username); + const char *danger_character_list[] = {"|", ";", "&", "$", "<", ">", "`", "\\", "'", "\"", "{", + "}", "(", ")", "[", "]", "~", "*", "?", "!", "\n", NULL}; + for (int i = 0; danger_character_list[i] != NULL; i++) { + if (strstr(name_str, danger_character_list[i]) != NULL) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_INVALID_NAME), + errmsg("Credential username is invalid."), + errdetail("Credential username contains invalid character"), errcause("str is invalid"), + erraction("Please enter a valid str"))); + } + } + pfree(name_str); +} + +/* + * @brief create_credential_internal + * Create a credential. + */ +void create_credential_internal(PG_FUNCTION_ARGS) +{ + if (!superuser()) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), + errmsg("Fail to create credential."), + errdetail("Insufficient privilege to create credential."), errcause("N/A"), + erraction("Please login in with initial user or contact database administrator."))); + } + const Datum credential_name = PG_GETARG_DATUM(0); + const Datum username = PG_GETARG_DATUM(1); + const Datum database_role = (Datum)0; + const Datum windows_domain = (Datum)0; + if (!PG_ARGISNULL(3) || !PG_ARGISNULL(4)) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("Scheduler does not support remote database job."), + errdetail("N/A"), errcause("N/A"), + erraction("Please leave database_role, windows_domain blank."))); + } + const Datum comments = PG_ARGISNULL(5) ? (Datum)0 : PG_GETARG_DATUM(5); + + /* perform username check */ + check_credential_name_valid(username); + + const char *object_type = "credential"; + Datum attribute_name[] = {CStringGetTextDatum("object_type"), CStringGetTextDatum("username"), + CStringGetTextDatum("database_role"), CStringGetTextDatum("windows_domain"), + CStringGetTextDatum("comments"), CStringGetTextDatum("owner")}; + int count = lengthof(attribute_name); + Datum attribute_value[] = {CStringGetTextDatum(object_type), username, database_role, windows_domain, comments, + CStringGetTextDatum(get_role_name_str())}; + multi_insert_attribute(credential_name, attribute_name, attribute_value, count); + for (int i = 0; i < count; i++) { + pfree(DatumGetPointer(attribute_name[i])); + } + pfree(DatumGetPointer(attribute_value[0])); +} + +/* + * @brief check_job_name_valid + * Check if a job_name is valid. + * @param job_name + */ +static void check_schedule_name_valid(Datum schedule_name) +{ + bool hasAlpha = false; + char *schedule_name_str = TextDatumGetCString(schedule_name); + if (!IsLegalNameStr(schedule_name_str, &hasAlpha)) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_INVALID_NAME), + errmsg("Invalid schedule name."), errdetail("Schedule name contains invalid character."), + errcause("Schedule name is too long/conatains invalid character."), + erraction("Please enter a valid name."))); + } + if (!hasAlpha) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_INVALID_NAME), + errmsg("Invalid schedule name."), + errdetail("Schedule name should contain at least one alphabet."), + errcause("Invalid object name given."), + erraction("Please enter a valid name"))); + } + pfree(schedule_name_str); +} + +/* + * @brief check_job_creation_privilege + * Check if current user can create the job. + * @param job_type + */ +static void check_schedule_creation_privilege() +{ + char *username = get_role_name_str(); + check_privilege(username, CREATE_JOB_PRIVILEGE); + pfree(username); +} + +/* + * @brief create_schedule_internal + * Create a schedule + */ +void create_schedule_internal(PG_FUNCTION_ARGS) +{ + Datum schedule_name = PG_GETARG_DATUM(0); + Datum start_date = PG_ARGISNULL(1) ? Datum(0) : TimeStampTzToText(PG_GETARG_DATUM(1)); + Datum repeat_interval = PG_ARGISNULL(2) ? Datum(0) : PG_GETARG_DATUM(2); + Datum end_date = PG_ARGISNULL(3) ? Datum(0) : TimeStampTzToText(PG_GETARG_DATUM(3)); + Datum comments = PG_ARGISNULL(4) ? Datum(0) : PG_GETARG_DATUM(4); + + /* Various checks */ + check_schedule_creation_privilege(); + check_schedule_name_valid(schedule_name); + + const char *object_type = "schedule"; + char *username = get_role_name_str(); + Datum owner = CStringGetTextDatum(username); + Datum attribute_name[] = {CStringGetTextDatum("object_type"), CStringGetTextDatum("start_date"), + CStringGetTextDatum("repeat_interval"), CStringGetTextDatum("end_date"), + CStringGetTextDatum("comments"), CStringGetTextDatum("owner")}; + int count = lengthof(attribute_name); + Datum attribute_value[] = {CStringGetTextDatum(object_type), start_date, repeat_interval, end_date, comments, + owner}; + multi_insert_attribute(schedule_name, attribute_name, attribute_value, count); + for (int i = 0; i < count; i++) { + pfree(DatumGetPointer(attribute_name[i])); + } + pfree(DatumGetPointer(attribute_value[0])); +} + +/* + * @brief check_program_name_valid + * Check if program_name is valid. + * @param program_name + * @param is_inline + */ +static void check_program_name_valid(Datum program_name, bool is_inline) +{ + bool hasAlpha = false; + char *program_name_str = TextDatumGetCString(program_name); + if (!is_inline && strncmp(program_name_str, INLINE_JOB_PROGRAM_PREFIX, strlen(INLINE_JOB_PROGRAM_PREFIX)) == 0) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("Invalid program name"), errdetail("Program name cannot start with inline_program_"), + errcause("Program name cannot start with inline_program_"), + erraction("Please enter a valid program name"))); + } + if (!IsLegalNameStr(program_name_str, &hasAlpha)) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_INVALID_NAME), + errmsg("Invalid program name"), errdetail("Program name contains invalid character"), + errcause("Program name is too long/conatains invalid character"), + erraction("Please enter a valid name"))); + } + if (!hasAlpha) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_INVALID_NAME), + errmsg("Invalid program name."), + errdetail("Program name should contain at least one alphabet."), + errcause("Invalid object name given."), + erraction("Please enter a valid name"))); + } + pfree_ext(program_name_str); +} + +/* + * @brief check_program_type + * Check if program type is valid. + * @param program_type + */ +static void check_program_type_valid(Datum program_type) +{ + char *type = TextDatumGetCString(program_type); + if (pg_strcasecmp(type, EXTERNAL_JOB_TYPE) == 0) { + check_privilege(get_role_name_str(), CREATE_EXTERNAL_JOB_PRIVILEGE); + } + const char *valid_types[] = {PLSQL_JOB_TYPE, PRECEDURE_JOB_TYPE, EXTERNAL_JOB_TYPE}; + int count = lengthof(valid_types); + for (int i = 0; i < count; i++) { + if (pg_strcasecmp(valid_types[i], type) == 0) { + pfree(type); + return; + } + } + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("program_type %s not support.", type), + errdetail("Invalid program type."), errcause("N/A"), + erraction("Please use PLSQL_BLOCK, STORED_PROCEDURE, EXTERNAL_SCRIPT"))); +} + +/* + * @brief check_program_creation_privilege + * check if current user are able to create external job. + * @param program_type + * @param check_run_external + */ +static void check_program_creation_privilege(Datum program_type) +{ + char *program_type_str = TextDatumGetCString(program_type); + char *username = get_role_name_str(); + check_privilege(username, CREATE_JOB_PRIVILEGE); + + if (pg_strcasecmp(program_type_str, EXTERNAL_JOB_TYPE) == 0) { + check_privilege(username, CREATE_EXTERNAL_JOB_PRIVILEGE); + } + pfree(program_type_str); + pfree(username); +} + +/* + * @brief check_program_action + * Check if program action contains sensitive info. + * @param action program action/job with inlined program action + * @param type program type/job with inlined program type + */ +void check_program_action(Datum action) +{ + if (action == (Datum)0) { + return; + } + + char *action_str = TextDatumGetCString(action); + char *masked_str = maskPassword(action_str); + if (masked_str != NULL) { + /* free allocated memory at the end of transaction */ + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("Job action specified is not allowed."), + errdetail("Job action cannot be executed securely."), + errcause("Unsecure action specified."), + erraction("Please revise your job action."))); + } +} + +/* + * @brief create_program_internal + * Create a program + */ +void create_program_internal(PG_FUNCTION_ARGS, bool is_inline) +{ + Datum program_name = PG_GETARG_DATUM(0); + Datum program_type = PG_GETARG_DATUM(1); + Datum program_action = PG_ARGISNULL(2) ? (Datum)0 : PG_GETARG_DATUM(2); + Datum number_of_arguments = Int32ToText(PG_GETARG_INT32(3)); + Datum enabled = BoolToText(PG_GETARG_DATUM(4)); + Datum comments = PG_ARGISNULL(5) ? (Datum)0 : PG_GETARG_DATUM(5); + + /* perform program check */ + check_program_name_valid(program_name, is_inline); + check_program_type_valid(program_type); + check_program_creation_privilege(program_type); + check_program_type_argument(program_type, PG_GETARG_INT32(3)); + check_program_action(program_action); + if (PG_GETARG_BOOL(4)) { + check_if_arguments_defined(program_name, PG_GETARG_INT32(3)); + } + + const char *object_type = "program"; + char *username = get_role_name_str(); + Datum owner = CStringGetTextDatum(username); + Datum attribute_name[] = {CStringGetTextDatum("object_type"), CStringGetTextDatum("program_type"), + CStringGetTextDatum("program_action"), CStringGetTextDatum("number_of_arguments"), + CStringGetTextDatum("enabled"), CStringGetTextDatum("comments"), + CStringGetTextDatum("owner")}; + int count = lengthof(attribute_name); + Datum attribute_value[] = {CStringGetTextDatum(object_type), program_type, program_action, number_of_arguments, + enabled, comments, owner}; + multi_insert_attribute(program_name, attribute_name, attribute_value, count); + + for (int i = 0; i < count; i++) { + pfree(DatumGetPointer(attribute_name[i])); + } + pfree(DatumGetPointer(attribute_value[0])); +} + +/* + * @brief dbe_insert_pg_job + * Insert all necessary key values into the pg_job tuple. + * @param name Job name + * @param job_id Generated job name + * @param start_date Job start_date, can be use input or came from existing schedule + * @param interval Program interval, always, inlined program or normal program + * @param end_date Job end_date, can be use input or came from existing schedule + * @param enabled Object enabled? or not + */ +static void dbe_insert_pg_job(Datum name, Datum job_id, Datum start_date, Datum interval, Datum end_date, Datum enabled, + Datum priv_user) +{ + errno_t rc = EOK; + Datum values[Natts_pg_job]; + rc = memset_s(values, sizeof(values), 0, sizeof(values)); + securec_check(rc, "\0", "\0"); + bool nulls[Natts_pg_job]; + rc = memset_s(nulls, sizeof(nulls), false, sizeof(nulls)); + securec_check_c(rc, "\0", "\0"); + Relation pg_job_rel = heap_open(PgJobRelationId, RowExclusiveLock); + + /* Fill lookup values */ + values[Anum_pg_job_interval - 1] = PointerIsValid(interval) ? interval : CStringGetTextDatum("null"); + values[Anum_pg_job_job_id - 1] = job_id; + values[Anum_pg_job_job_name - 1] = name; + values[Anum_pg_job_enable - 1] = TextToBool(enabled); + values[Anum_pg_job_start_date - 1] = DirectFunctionCall1(timestamptz_timestamp, TextToTimeStampTz(start_date)); + values[Anum_pg_job_end_date - 1] = DirectFunctionCall1(timestamptz_timestamp, TextToTimeStampTz(end_date)); + + /* Fill other values */ + const char* db_name = get_and_check_db_name(u_sess->proc_cxt.MyDatabaseId, true); + values[Anum_pg_job_log_user - 1] = DirectFunctionCall1(namein, CStringGetDatum(GetUserNameFromId(GetUserId()))); + values[Anum_pg_job_priv_user - 1] = priv_user; /* program's owner */ + values[Anum_pg_job_dbname - 1] = DirectFunctionCall1(namein, CStringGetDatum(db_name)); + values[Anum_pg_job_nspname - 1] = DirectFunctionCall1(namein, CStringGetDatum(get_real_search_schema())); + values[Anum_pg_job_node_name - 1] = get_pg_job_node_name(); + values[Anum_pg_job_job_status - 1] = CharGetDatum(PGJOB_SUCC_STATUS); + values[Anum_pg_job_current_postgres_pid - 1] = Int64GetDatum(-1); + nulls[Anum_pg_job_last_start_date - 1] = true; + nulls[Anum_pg_job_last_end_date - 1] = true; + nulls[Anum_pg_job_last_suc_date - 1] = true; + nulls[Anum_pg_job_this_run_date - 1] = true; + values[Anum_pg_job_next_run_date - 1] = DirectFunctionCall1(timestamptz_timestamp, TextToTimeStampTz(start_date)); + values[Anum_pg_job_failure_msg - 1] = PointerGetDatum(cstring_to_text("")); + + /* Insert into pg_job */ + HeapTuple tuple = heap_form_tuple(RelationGetDescr(pg_job_rel), values, nulls); + (void)simple_heap_insert(pg_job_rel, tuple); + CatalogUpdateIndexes(pg_job_rel, tuple); + heap_freetuple_ext(tuple); + heap_close(pg_job_rel, NoLock); +} + +/* + * @brief get_inline_schedule_name + * Get the inline schedule name + * @param job_name + * @return char* + */ +static char *get_inline_schedule_name(Datum job_name) +{ + errno_t rc; + char *c_job_name = TextDatumGetCString(job_name); + + char *schedule_name = (char *)palloc(sizeof(char) * MAX_JOB_NAME_LEN); + rc = strcpy_s(schedule_name, MAX_JOB_NAME_LEN, INLINE_JOB_SCHEDULE_PREFIX); + securec_check(rc, "\0", "\0"); + rc = strcat_s(schedule_name, MAX_JOB_NAME_LEN, c_job_name); + securec_check(rc, "\0", "\0"); + return schedule_name; +} + +/* + * @brief create_inline_program + * Create a inline program object + */ +static char *create_inline_program(Datum job_name, Datum job_type, Datum job_action, Datum num_of_args, Datum enabled) +{ + errno_t rc; + char *c_job_name = TextDatumGetCString(job_name); + + char *program_name = (char *)palloc(sizeof(char) * MAX_JOB_NAME_LEN); + rc = strcpy_s(program_name, MAX_JOB_NAME_LEN, INLINE_JOB_PROGRAM_PREFIX); + securec_check(rc, "\0", "\0"); + rc = strcat_s(program_name, MAX_JOB_NAME_LEN, c_job_name); + securec_check(rc, "\0", "\0"); + + static const short nrgs_program = 6; + FunctionCallInfoData fcinfo_program; + InitFunctionCallInfoData(fcinfo_program, NULL, nrgs_program, InvalidOid, NULL, NULL); + fcinfo_program.arg[0] = CStringGetTextDatum(program_name); /* program_name */ + fcinfo_program.arg[1] = job_type; /* program_type */ + fcinfo_program.arg[2] = job_action; /* program_action */ + fcinfo_program.arg[3] = num_of_args; /* number_of_arguments */ + fcinfo_program.arg[4] = enabled; /* enabled */ + fcinfo_program.argnull[5] = true; /* comments */ + create_program_internal(&fcinfo_program, true); + + return program_name; +} + +/* + * @brief get_job_id + * Get the unique job id. + * @return int id + */ +static int get_job_id() +{ + /* pg_job */ + Relation rel = heap_open(PgJobRelationId, RowExclusiveLock); + uint16 id = 0; + int ret = jobid_alloc(&id, JOBID_MAX_NUMBER); + if (ret == JOBID_ALLOC_ERROR) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), + errmsg("Fail to create job"), + errdetail("All 32768 jobids have alloc, and there is no free jobid"), + errcause("N/A"), erraction("Please drop inactive jobs"))); + } + heap_close(rel, NoLock); + return id; +} + +/* + * @brief check_job_creation_privilege + * Check if current user can create the job. + * @param job_type + */ +static void check_job_creation_privilege(Datum job_type) +{ + char *job_type_str = TextDatumGetCString(job_type); + char *username = get_role_name_str(); + check_privilege(username, CREATE_JOB_PRIVILEGE); + + if (pg_strcasecmp(job_type_str, EXTERNAL_JOB_TYPE) == 0) { + check_privilege(username, CREATE_EXTERNAL_JOB_PRIVILEGE); + } + pfree(job_type_str); + pfree(username); +} + +/* + * @brief check_job_name_valid + * Check if a job_name is valid. + * @param job_name + */ +static void check_job_name_valid(Datum job_name) +{ + bool hasAlpha = false; + char *job_name_str = TextDatumGetCString(job_name); + if (!IsLegalNameStr(job_name_str, &hasAlpha)) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_INVALID_NAME), + errmsg("Fail to create job."), errdetail("Invalid job name."), + errcause("Job name is too long/conatains invalid character."), + erraction("Please enter a valid name."))); + } + if (!hasAlpha) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_INVALID_NAME), + errmsg("Invalid job name."), + errdetail("Job name should contain at least one alphabet."), + errcause("Invalid object name given."), + erraction("Please enter a valid name"))); + } + pfree(job_name_str); +} + +/* + * @brief get_priv_user + * Get privilege user base on job_intype. + */ +Datum get_priv_user(Datum program_name, Datum job_intype) +{ + Datum priv_user = 0; + switch (DatumGetChar(job_intype)) { + case JOB_INTYPE_PLAIN: /* fall through */ + case JOB_INTYPE_SCHEDULE: + return DirectFunctionCall1(namein, CStringGetDatum(GetUserNameFromId(GetUserId()))); + case JOB_INTYPE_SCHEDULE_PROGRAM: /* fall through */ + case JOB_INTYPE_PROGRAM: { + check_object_is_visible(program_name); + JobAttribute *attributes = (JobAttribute *)palloc(sizeof(JobAttribute)); + attributes[0].object_name = program_name; + attributes[0].name = CStringGetTextDatum("owner"); + batch_lookup_job_attribute(attributes, 1); + priv_user = DirectFunctionCall1(namein, CStringGetDatum(get_raw_role_str(attributes[0].value))); + pfree_ext(attributes); + break; + } + default: { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_INVALID_NAME), + errmsg("Fail to get privilege user."), + errdetail("Cannot identify job intype."), errcause("Wrong job intype."), + erraction("Please contact engineer to support."))); + } + } + return priv_user; +} + +/* + * @brief create_job_raw + * Bare bone function of creating a job. + */ +void create_job_raw(PG_FUNCTION_ARGS) +{ + Datum job_name = PG_GETARG_DATUM(0); + Datum program_name = PG_GETARG_DATUM(1); + Datum schedule_name = PG_GETARG_DATUM(2); + Datum job_class = PG_GETARG_DATUM(3); + Datum enabled = BoolToText(PG_GETARG_DATUM(4)); + Datum auto_drop = BoolToText(PG_GETARG_DATUM(5)); + Datum comments = PG_GETARG_DATUM(6); + Datum job_style = PG_GETARG_DATUM(7); + Datum credential_name = PG_GETARG_DATUM(8); + Datum destination_name = PG_GETARG_DATUM(9); + Datum job_intype = PG_GETARG_DATUM(10); + Datum start_date = PG_GETARG_DATUM(11); + Datum repeat_interval = PG_GETARG_DATUM(12); + Datum end_date = PG_GETARG_DATUM(13); + Datum job_action = PG_GETARG_DATUM(14); + Datum job_type = PG_GETARG_DATUM(15); + + /* Various checks */ + check_job_name_valid(job_name); + check_job_creation_privilege(job_type); + check_job_class_valid(job_class); + + /* gs_job_attribute */ + const char *object_type = "job"; + char *username = get_role_name_str(); + Datum owner = CStringGetTextDatum(username); + const Datum attribute_name[] = {CStringGetTextDatum("object_type"), CStringGetTextDatum("program_name"), + CStringGetTextDatum("schedule_name"), CStringGetTextDatum("job_class"), + CStringGetTextDatum("auto_drop"), CStringGetTextDatum("comments"), + CStringGetTextDatum("job_style"), CStringGetTextDatum("credential_name"), + CStringGetTextDatum("destination_name"), CStringGetTextDatum("owner")}; + int count = lengthof(attribute_name); + const Datum attribute_value[] = {CStringGetTextDatum(object_type), program_name, schedule_name, job_class, + auto_drop, comments, job_style, credential_name, destination_name, owner}; + multi_insert_attribute(job_name, attribute_name, attribute_value, count); + + /* pg_job && pg_job_proc */ + Datum job_id = Int16GetDatum(get_job_id()); + Datum priv_user = get_priv_user(program_name, job_intype); + dbe_insert_pg_job(job_name, job_id, start_date, repeat_interval, end_date, enabled, priv_user); + dbe_insert_pg_job_proc(job_id, job_action, job_name); + for (int i = 0; i < count; i++) { + pfree(DatumGetPointer(attribute_name[i])); + } + pfree(DatumGetPointer(attribute_value[0])); +} + +/* + * @brief create_job_1_internal + * Create a job with inline program and inline schedule. + */ +void create_job_1_internal(PG_FUNCTION_ARGS) +{ + /* inline schedule */ + Datum job_name = PG_GETARG_DATUM(0); + Datum start_date = PG_ARGISNULL(4) ? GetCurrentTimestamp() : PG_GETARG_DATUM(4); + Datum repeat_interval = PG_ARGISNULL(5) ? CStringGetTextDatum("null") : PG_GETARG_DATUM(5); + Datum end_date = PG_ARGISNULL(6) ? get_scheduler_max_timestamptz() : PG_GETARG_DATUM(6); + char* c_schedule_name = get_inline_schedule_name(job_name); + Datum schedule_name = CStringGetTextDatum(c_schedule_name); + + /* inline program */ + Datum job_type = PG_GETARG_DATUM(1); + Datum job_action = PG_GETARG_DATUM(2); + Datum num_of_args = PG_GETARG_DATUM(3); + Datum enabled = PG_GETARG_DATUM(8); + char* c_program_name = create_inline_program(job_name, job_type, job_action, num_of_args, BoolGetDatum(true)); + Datum program_name = CStringGetTextDatum(c_program_name); + pfree_ext(c_program_name); + + static const short nrgs_job = 16; + FunctionCallInfoData fcinfo_job; + InitFunctionCallInfoData(fcinfo_job, NULL, nrgs_job, InvalidOid, NULL, NULL); + + fcinfo_job.arg[0] = job_name; /* job_name */ + fcinfo_job.arg[1] = program_name; /* program_name */ + fcinfo_job.arg[2] = schedule_name; /* schedule_name */ + fcinfo_job.arg[3] = PG_GETARG_DATUM(7); /* job_class */ + fcinfo_job.arg[4] = enabled; /* enabled */ + fcinfo_job.arg[5] = PG_GETARG_DATUM(9); /* auto_drop */ + fcinfo_job.arg[6] = PG_ARGISNULL(10) ? Datum(0) : PG_GETARG_DATUM(10); /* comments */ + fcinfo_job.arg[7] = Datum(0); /* job_style */ + fcinfo_job.arg[8] = PG_ARGISNULL(11) ? Datum(0) : PG_GETARG_DATUM(11); /* credential_name */ + fcinfo_job.arg[9] = PG_ARGISNULL(12) ? Datum(0) : PG_GETARG_DATUM(12); /* destination_name */ + fcinfo_job.arg[10] = CharGetDatum(JOB_INTYPE_PLAIN); /* job_intype */ + fcinfo_job.arg[11] = TimeStampTzToText(start_date); /* start_date */ + fcinfo_job.arg[12] = repeat_interval; /* repeat_interval */ + fcinfo_job.arg[13] = TimeStampTzToText(end_date); /* end_date */ + fcinfo_job.arg[14] = job_action; /* job action */ + fcinfo_job.arg[15] = job_type; /* job type */ + create_job_raw(&fcinfo_job); +} + +/* + * @brief get_schedule_info + * + * @param schedule_name + * @param start_date + * @param repeat_interval + * @param end_date + */ +static void get_schedule_info(Datum schedule_name, Datum *start_date, Datum *repeat_interval, Datum *end_date) +{ + check_object_is_visible(schedule_name); + int count = 3; + JobAttribute *attributes = (JobAttribute *)palloc(sizeof(JobAttribute) * count); + attributes[0].object_name = schedule_name; + attributes[0].name = CStringGetTextDatum("start_date"); + attributes[1].object_name = schedule_name; + attributes[1].name = CStringGetTextDatum("repeat_interval"); + attributes[2].object_name = schedule_name; + attributes[2].name = CStringGetTextDatum("end_date"); + batch_lookup_job_attribute(attributes, count); + + *start_date = (attributes[0].null) ? TimeStampTzToText(GetCurrentTimestamp()) : attributes[0].value; + *repeat_interval = (attributes[1].null) ? CStringGetTextDatum("null") : attributes[1].value; + *end_date = (attributes[2].null) ? TimeStampTzToText(get_scheduler_max_timestamptz()) : attributes[2].value; + + pfree_ext(attributes); +} + +/* + * @brief get_program_info + * Get relative program info from system table. + * @param program_name + * @param job_type + * @param job_action + * @param num_of_args + * @param enabled + */ +static void get_program_info(Datum program_name, Datum *job_type, Datum *job_action, Datum *num_of_args, Datum *enabled) +{ + check_object_is_visible(program_name); + /* total of 4 attributes: program_type, number_of_arguments, enabled, program_action from program */ + int count = 4; + JobAttribute *attributes = (JobAttribute *)palloc(sizeof(JobAttribute) * count); + attributes[0].object_name = program_name; + attributes[0].name = CStringGetTextDatum("program_type"); + attributes[1].object_name = program_name; + attributes[1].name = CStringGetTextDatum("number_of_arguments"); + attributes[2].object_name = program_name; + attributes[2].name = CStringGetTextDatum("enabled"); + attributes[3].object_name = program_name; + attributes[3].name = CStringGetTextDatum("program_action"); + batch_lookup_job_attribute(attributes, count); + + *job_type = (attributes[0].null) ? Datum(0) : attributes[0].value; + *num_of_args = (attributes[1].null) ? Datum(0) : attributes[1].value; + *enabled = (attributes[2].null) ? Datum(0) : attributes[2].value; + *job_action = (attributes[3].null) ? Datum(0) : attributes[3].value; + + pfree_ext(attributes); +} + +/* + * @brief create_job_2_internal + * Create a job with program and schedule. + */ +void create_job_2_internal(PG_FUNCTION_ARGS) +{ + /* schedule */ + Datum schedule_name = PG_GETARG_DATUM(2); + Datum start_date; + Datum repeat_interval; + Datum end_date; + get_schedule_info(schedule_name, &start_date, &repeat_interval, &end_date); + + /* program */ + Datum program_name = PG_GETARG_DATUM(1); + Datum job_type; + Datum job_action; + Datum num_of_args; + Datum enabled; + get_program_info(program_name, &job_type, &job_action, &num_of_args, &enabled); + + static const short nrgs_job = 16; + FunctionCallInfoData fcinfo_job; + InitFunctionCallInfoData(fcinfo_job, NULL, nrgs_job, InvalidOid, NULL, NULL); + + fcinfo_job.arg[0] = PG_GETARG_DATUM(0); /* job_name */ + fcinfo_job.arg[1] = program_name; /* program_name */ + fcinfo_job.arg[2] = schedule_name; /* schedule_name */ + fcinfo_job.arg[3] = PG_GETARG_DATUM(3); /* job_class */ + fcinfo_job.arg[4] = enabled; /* enabled */ + fcinfo_job.arg[5] = PG_GETARG_DATUM(5); /* auto_drop */ + fcinfo_job.arg[6] = PG_ARGISNULL(6) ? Datum(0) : PG_GETARG_DATUM(6); /* comments */ + fcinfo_job.arg[7] = PG_GETARG_DATUM(7); /* job_style */ + fcinfo_job.arg[8] = PG_ARGISNULL(8) ? Datum(0) : PG_GETARG_DATUM(8); /* credential_name */ + fcinfo_job.arg[9] = PG_ARGISNULL(9) ? Datum(0) : PG_GETARG_DATUM(9); /* destination_name */ + fcinfo_job.arg[10] = CharGetDatum(JOB_INTYPE_SCHEDULE_PROGRAM); /* job_intype */ + + /* pg_job */ + fcinfo_job.arg[11] = start_date; /* start_date */ + fcinfo_job.arg[12] = repeat_interval; /* repeat_interval */ + fcinfo_job.arg[13] = end_date; /* end_date */ + fcinfo_job.arg[14] = job_action; /* job action */ + fcinfo_job.arg[15] = job_type; /* job type */ + create_job_raw(&fcinfo_job); +} + +/* + * @brief create_job_3_internal + * Create a job with program and inline schedule. + */ +void create_job_3_internal(PG_FUNCTION_ARGS) +{ + /* inline schedule */ + Datum job_name = PG_GETARG_DATUM(0); + Datum start_date = PG_ARGISNULL(2) ? GetCurrentTimestamp() : PG_GETARG_DATUM(2); + Datum repeat_interval = PG_ARGISNULL(3) ? CStringGetTextDatum("null") : PG_GETARG_DATUM(3); + Datum end_date = PG_ARGISNULL(4) ? get_scheduler_max_timestamptz() : PG_GETARG_DATUM(4); + char* c_schedule_name = get_inline_schedule_name(job_name); + Datum schedule_name = CStringGetTextDatum(c_schedule_name); + + /* program */ + Datum program_name = PG_GETARG_DATUM(1); + Datum job_type; + Datum job_action; + Datum num_of_args; + Datum enabled; + get_program_info(program_name, &job_type, &job_action, &num_of_args, &enabled); + + static const short nrgs_job = 16; + FunctionCallInfoData fcinfo_job; + InitFunctionCallInfoData(fcinfo_job, NULL, nrgs_job, InvalidOid, NULL, NULL); + + fcinfo_job.arg[0] = job_name; /* job_name */ + fcinfo_job.arg[1] = program_name; /* program_name */ + fcinfo_job.arg[2] = schedule_name; /* schedule_name */ + fcinfo_job.arg[3] = PG_GETARG_DATUM(5); /* job_class */ + fcinfo_job.arg[4] = PG_GETARG_DATUM(6); /* enabled */ + fcinfo_job.arg[5] = PG_GETARG_DATUM(7); /* auto_drop */ + fcinfo_job.arg[6] = PG_ARGISNULL(8) ? Datum(0) : PG_GETARG_DATUM(8); /* comments */ + fcinfo_job.arg[7] = PG_GETARG_DATUM(9); /* job_style */ + fcinfo_job.arg[8] = PG_ARGISNULL(10) ? Datum(0) : PG_GETARG_DATUM(10); /* credential_name */ + fcinfo_job.arg[9] = PG_ARGISNULL(11) ? Datum(0) : PG_GETARG_DATUM(11); /* destination_name */ + fcinfo_job.arg[10] = CharGetDatum(JOB_INTYPE_PROGRAM); /* job_intype */ + + /* pg_job */ + fcinfo_job.arg[11] = TimeStampTzToText(start_date); /* start_date */ + fcinfo_job.arg[12] = repeat_interval; /* repeat_interval */ + fcinfo_job.arg[13] = TimeStampTzToText(end_date); /* end_date */ + fcinfo_job.arg[14] = job_action; /* job action */ + fcinfo_job.arg[15] = job_type; /* job type */ + create_job_raw(&fcinfo_job); +} + +/* + * @brief create_job_4_internal + * Create a job with inline program and schedule. + */ +void create_job_4_internal(PG_FUNCTION_ARGS) +{ + /* schedule */ + Datum schedule_name = PG_GETARG_DATUM(1); + Datum start_date; + Datum repeat_interval; + Datum end_date; + get_schedule_info(schedule_name, &start_date, &repeat_interval, &end_date); + + /* inline program */ + Datum job_name = PG_GETARG_DATUM(0); + Datum job_type = PG_GETARG_DATUM(2); + + Datum job_action = PG_GETARG_DATUM(3); + Datum num_of_args = PG_GETARG_DATUM(4); + Datum enabled = PG_GETARG_DATUM(6); + char* c_program_name = create_inline_program(job_name, job_type, job_action, num_of_args, BoolGetDatum(true)); + Datum program_name = CStringGetTextDatum(c_program_name); + pfree_ext(c_program_name); + + static const short nrgs_job = 16; + FunctionCallInfoData fcinfo_job; + InitFunctionCallInfoData(fcinfo_job, NULL, nrgs_job, InvalidOid, NULL, NULL); + + fcinfo_job.arg[0] = job_name; /* job_name */ + fcinfo_job.arg[1] = program_name; /* program_name */ + fcinfo_job.arg[2] = schedule_name; /* schedule_name */ + fcinfo_job.arg[3] = PG_GETARG_DATUM(5); /* job_class */ + fcinfo_job.arg[4] = enabled; /* enabled */ + fcinfo_job.arg[5] = PG_GETARG_DATUM(7); /* auto_drop */ + fcinfo_job.arg[6] = PG_ARGISNULL(8) ? Datum(0) : PG_GETARG_DATUM(8); /* comments */ + fcinfo_job.arg[7] = Datum(0); /* job_style */ + fcinfo_job.arg[8] = PG_ARGISNULL(9) ? Datum(0) : PG_GETARG_DATUM(9); /* credential_name */ + fcinfo_job.arg[9] = PG_ARGISNULL(10) ? Datum(0) : PG_GETARG_DATUM(10); /* destination_name */ + fcinfo_job.arg[10] = CharGetDatum(JOB_INTYPE_SCHEDULE); /* job_intype */ + + /* pg_job */ + fcinfo_job.arg[11] = start_date; /* start_date */ + fcinfo_job.arg[12] = repeat_interval; /* repeat_interval */ + fcinfo_job.arg[13] = end_date; /* end_date */ + fcinfo_job.arg[14] = job_action; /* job action */ + fcinfo_job.arg[15] = job_type; /* job type */ + create_job_raw(&fcinfo_job); +} + +/* + * @brief check_job_name_valid + * Check if a job_name is valid. + * @param job_name + */ +static void check_job_class_name_valid(Datum job_class_name) +{ + bool hasAlpha = false; + char *job_class_name_str = TextDatumGetCString(job_class_name); + if (pg_strcasecmp(job_class_name_str, "DEFAULT_JOB_CLASS") == 0) { + return; + } + if (!IsLegalNameStr(job_class_name_str, &hasAlpha)) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_INVALID_NAME), + errmsg("Invalid job class name"), errdetail("Job class name contains invalid character"), + errcause("Job class name is too long/conatains invalid character"), + erraction("Please enter a valid name"))); + } + if (!hasAlpha) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_INVALID_NAME), + errmsg("Invalid job class name."), + errdetail("Job class name should contain at least one alphabet."), + errcause("Invalid object name given."), + erraction("Please enter a valid name"))); + } + pfree(job_class_name_str); +} + +/* + * @brief check_job_creation_privilege + * Check if current user can create the job. + * @param job_type + */ +static void check_job_class_creation_privilege() +{ + char *username = get_role_name_str(); + check_privilege(username, CREATE_JOB_PRIVILEGE); + pfree(username); +} + +/* + * @brief create_job_class_internal + * Create a job class object. + */ +void create_job_class_internal(PG_FUNCTION_ARGS) +{ + Datum job_class_name = PG_GETARG_DATUM(0); + Datum resource_consumer_group = PG_ARGISNULL(1) ? (Datum)0 : PG_GETARG_DATUM(1); + Datum service = PG_ARGISNULL(2) ? (Datum)0 : PG_GETARG_DATUM(2); + Datum logging_level = Int32ToText(PG_GETARG_INT32(3)); + Datum log_history = PG_ARGISNULL(4) ? (Datum)0 : Int32ToText(PG_GETARG_INT32(4)); + Datum comments = PG_ARGISNULL(5) ? (Datum)0 : PG_GETARG_DATUM(5); + + /* Various class */ + check_job_class_name_valid(job_class_name); + check_job_class_creation_privilege(); + + const char *object_type = "job_class"; + char *username = get_role_name_str(); + Datum owner = CStringGetTextDatum(username); + const Datum attribute_name[] = {CStringGetTextDatum("object_type"), CStringGetTextDatum("resource_consumer_group"), + CStringGetTextDatum("service"), CStringGetTextDatum("logging_level"), + CStringGetTextDatum("log_history"), CStringGetTextDatum("comments"), + CStringGetTextDatum("owner")}; + int count = lengthof(attribute_name); + const Datum attribute_value[] = {CStringGetTextDatum(object_type), resource_consumer_group, service, + logging_level, log_history, comments,owner}; + multi_insert_attribute(job_class_name, attribute_name, attribute_value, count); + for (int i = 0; i < count; i++) { + pfree(DatumGetPointer(attribute_name[i])); + } + pfree(DatumGetPointer(attribute_value[0])); +} + +/* + * @brief set_program_action + * Set program attribute. + * @param program_name + * @param program_action + */ +static void set_program_action(const Datum program_name, const Datum program_action) +{ + /* check if program action is valid and secure */ + check_program_action(program_action); + + /* update program action and all jobs associated with this program */ + update_attribute(program_name, CStringGetTextDatum("program_action"), program_action); + Datum attribute_name = CStringGetTextDatum("program_name"); + Datum attribute_value = program_name; + Relation gs_job_attribute_rel = heap_open(GsJobAttributeRelationId, RowExclusiveLock); + List *tuples = search_related_attribute(gs_job_attribute_rel, attribute_name, attribute_value); + ListCell *lc = NULL; + foreach(lc, tuples) { + HeapTuple tuple = (HeapTuple)lfirst(lc); + bool isNull = false; + Datum related_job_name = heap_getattr(tuple, Anum_gs_job_attribute_job_name, + RelationGetDescr(gs_job_attribute_rel), &isNull); + Assert(!isNull); + dbe_update_pg_job_proc(program_action, related_job_name); + } + heap_close(gs_job_attribute_rel, NoLock); + list_free_deep(tuples); + pfree(DatumGetPointer(attribute_value)); +} + +/* + * @brief set_job_class_attribute + * Set job class attributes. + * @param job_class_name + * @param attribute_name + * @param attribute_value + */ +static void set_job_class_attribute(const Datum job_class_name, const Datum attribute_name, Datum attribute_value) +{ + if (strcasecmp(TextDatumGetCString(attribute_value), "DEFAULT_JOB_CLASS") != 0) { + return; + } + update_attribute(job_class_name, attribute_name, attribute_value); +} + +/* + * @brief set_program_attribute + * Set program attributes. + * @param program_name + * @param attribute_name + * @param attribute_value + */ +static void set_program_attribute(const Datum program_name, const Datum attribute_name, Datum attribute_value) +{ + if (is_inlined_program(program_name)) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("Invalid program name"), errdetail("Cannot modify inlined program."), + errcause("Try to modify inlined object."), erraction("Please enter a valid program name"))); + } + + /* Get original program values */ + Datum type = (Datum)0; + Datum action = (Datum)0; + Datum num_of_args = (Datum)0; + Datum enabled = (Datum)0; + get_program_info(program_name, &type, &action, &num_of_args, &enabled); + + /* program action and enabled needs extra checks to perform */ + char *attribute_name_str = TextDatumGetCString(attribute_name); + if (pg_strcasecmp(attribute_name_str, "program_action") == 0) { + set_program_action(program_name, attribute_value); + return; + } + if (pg_strcasecmp(attribute_name_str, "enabled") == 0) { + enable_program(program_name, attribute_value); + return; + } + + /* For type, number of arguments, we simply update the attribute, then check if it is valid */ + update_attribute(program_name, attribute_name, attribute_value); + + /* For program type, check privilege && argument needed */ + if (pg_strcasecmp(TextDatumGetCString(attribute_name), "program_type") == 0) { + check_program_type_valid(attribute_value); + check_program_type_argument(attribute_value, TextToInt32(num_of_args)); + char *program_type_str = TextDatumGetCString(attribute_value); + if (pg_strcasecmp(program_type_str, EXTERNAL_JOB_TYPE) == 0) { + check_privilege(get_role_name_str(), CREATE_EXTERNAL_JOB_PRIVILEGE); + } + pfree_ext(program_type_str); + delete_deprecated_program_arguments(program_name); + } + + /* For number_of_arguments, delete all deprecated arguments */ + if (pg_strcasecmp(TextDatumGetCString(attribute_name), "number_of_arguments") == 0) { + check_program_type_argument(type, TextToInt32(attribute_value)); + delete_deprecated_program_arguments(program_name); + } +} + +/* + * @brief set_schedule_attribute + * Note that: set_attribute don't take in NULLs, therefore we don't care if attribute_value is valid(=0). + * @param schedule_name + * @param attribute_name + * @param attribute_value + */ +static void set_schedule_attribute(const Datum schedule_name, const Datum attribute_name, Datum attribute_value) +{ + if (is_inlined_schedule(schedule_name)) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("Invalid schedule name"), errdetail("Cannot modify inlined schedule."), + errcause("Try to modify inlined object."), erraction("Please enter a valid schedule name"))); + } + + Relation gs_job_attribute_rel = heap_open(GsJobAttributeRelationId, RowExclusiveLock); + update_attribute(schedule_name, attribute_name, attribute_value); + char *attribute_name_str = TextDatumGetCString(attribute_name); + const char *job_related_attr[] = {"start_date", "repeat_interval", "end_date"}; + const int job_related_num[] = {Anum_pg_job_start_date, Anum_pg_job_interval, Anum_pg_job_end_date}; + + int count = lengthof(job_related_attr); + int col_att = -1; + for (int i = 0; i < count; i++) { + if (pg_strcasecmp(job_related_attr[i], attribute_name_str) == 0) { + col_att = i; + break; + } + } + if (col_att == -1) { + heap_close(gs_job_attribute_rel, NoLock); + return; + } + if (job_related_num[col_att] == Anum_pg_job_start_date || job_related_num[col_att] == Anum_pg_job_end_date) { + attribute_value = DirectFunctionCall1(timestamptz_timestamp, TextToTimeStampTz(attribute_value)); + } + + Datum schedule_name_attribute = CStringGetTextDatum("schedule_name"); + List *tuples = search_related_attribute(gs_job_attribute_rel, schedule_name_attribute, schedule_name); + ListCell *lc = NULL; + foreach(lc, tuples) { + HeapTuple tuple = (HeapTuple)lfirst(lc); + bool isnull = false; + Datum job_name = heap_getattr(tuple, Anum_gs_job_attribute_job_name, gs_job_attribute_rel->rd_att, &isnull); + update_pg_job(job_name, job_related_num[col_att], attribute_value); + } + heap_close(gs_job_attribute_rel, NoLock); + list_free_deep(tuples); + pfree(DatumGetPointer(schedule_name_attribute)); +} + +/* + * @brief set_job_inline_schedule_attribute + * Set the job inline schedule attributes. + * @param job_name + * @param attribute_name + * @param attribute_value + * @param attribute_name_str + * @return true + * @return false + */ +static bool set_job_inline_schedule_attribute(const Datum job_name, const Datum attribute_name, + const Datum attribute_value, char *attribute_name_str) +{ + /* start_date, repeat_interval, end_date, enabled store in pg_job */ + if (pg_strcasecmp(attribute_name_str, "start_date") == 0) { + Datum start_date = DirectFunctionCall1(timestamptz_timestamp, TextToTimeStampTz(attribute_value)); + int attribute_numbers[] = {Anum_pg_job_start_date, Anum_pg_job_next_run_date}; + Datum attribute_values[] = {start_date, start_date}; + bool isnull[] = {false, false}; + update_pg_job_multi_columns(job_name, attribute_numbers, attribute_values, isnull, lengthof(attribute_numbers)); + return true; + } + if (pg_strcasecmp(attribute_name_str, "end_date") == 0) { + Datum end_date = DirectFunctionCall1(timestamptz_timestamp, TextToTimeStampTz(attribute_value)); + update_pg_job(job_name, Anum_pg_job_end_date, end_date); + return true; + } + if (pg_strcasecmp(attribute_name_str, "repeat_interval") == 0) { + Datum repeat_interval = CStringGetTextDatum("null"); + if (PointerIsValid(attribute_value)) { + repeat_interval = attribute_value; + } + update_pg_job(job_name, Anum_pg_job_interval, repeat_interval); + return true; + } + return false; +} + +/* + * @brief set_job_inline_program_attribute + * Set job inline program attributes. + * @param job_name + * @param attribute_name + * @param attribute_value + * @param attribute_name_str + */ +static bool set_job_inline_program_attribute(const Datum job_name, const Datum attribute_name, + const Datum attribute_value, char *attribute_name_str) +{ + /* Get original program values */ + Datum type = (Datum)0; + Datum action = (Datum)0; + Datum num_of_args = (Datum)0; + Datum enabled = (Datum)0; + Datum program_name = get_attribute_value(job_name, "program_name", AccessShareLock); + get_program_info(program_name, &type, &action, &num_of_args, &enabled); + + /* Update number of argument */ + if (pg_strcasecmp(attribute_name_str, "number_of_arguments") == 0) { + check_program_type_argument(type, TextToInt32(attribute_value)); + update_attribute(program_name, attribute_name, attribute_value); + return true; + } + + /* + * Update inline program action. We need to update both job action and program_action. + * Which means we need to update both pg_job_proc and gs_job_attribute. + */ + if (pg_strcasecmp(attribute_name_str, "job_action") == 0) { + check_program_action(attribute_value); + dbe_update_pg_job_proc(attribute_value, job_name); + update_attribute(program_name, CStringGetTextDatum("program_action"), attribute_value); + return true; + } + + /* Update job type, check valid && if need argument */ + if (pg_strcasecmp(attribute_name_str, "job_type") == 0) { + check_program_type_valid(attribute_value); + check_program_type_argument(attribute_value, TextToInt32(num_of_args)); + char *job_type_str = TextDatumGetCString(attribute_value); + if (pg_strcasecmp(job_type_str, EXTERNAL_JOB_TYPE) == 0) { + check_privilege(get_role_name_str(), CREATE_EXTERNAL_JOB_PRIVILEGE); + } + pfree_ext(job_type_str); + update_attribute(program_name, CStringGetTextDatum("program_type"), attribute_value); + return true; + } + return false; +} + +/* + * @brief set_job_associated_object_attribute + * Set all associated job object attributes. + * @param job_name + * @param attribute_name + * @param attribute_value + * @param attribute_name_str + */ +static bool set_job_associated_object_attribute(const Datum job_name, const Datum attribute_name, + const Datum attribute_value, char *attribute_name_str) +{ + if (pg_strcasecmp(attribute_name_str, "schedule_name") == 0) { + update_attribute(job_name, attribute_name, attribute_value); + Datum start_date; + Datum repeat_interval; + Datum end_date; + get_schedule_info(attribute_value, &start_date, &repeat_interval, &end_date); + start_date = DirectFunctionCall1(timestamptz_timestamp, TextToTimeStampTz(start_date)); + end_date = DirectFunctionCall1(timestamptz_timestamp, TextToTimeStampTz(end_date)); + Datum job_related_attr[] = {start_date, repeat_interval, end_date}; + int job_related_num[] = {Anum_pg_job_start_date, Anum_pg_job_interval, Anum_pg_job_end_date}; + bool isnull[] = {false, false, false}; + update_pg_job_multi_columns(job_name, (int *)job_related_num, job_related_attr, isnull, + lengthof(job_related_attr)); + return true; + } + if (pg_strcasecmp(attribute_name_str, "program_name") == 0) { + update_attribute(job_name, attribute_name, attribute_value); + drop_inline_program(job_name); + Datum job_type; + Datum job_action; + Datum num_of_args; + Datum enabled; + get_program_info(attribute_value, &job_type, &job_action, &num_of_args, &enabled); + char *job_type_str = TextDatumGetCString(job_type); + if (pg_strcasecmp(job_type_str, EXTERNAL_JOB_TYPE) == 0) { + check_privilege(get_role_name_str(), CREATE_EXTERNAL_JOB_PRIVILEGE); + } + pfree_ext(job_type_str); + dbe_update_pg_job_proc(job_action, job_name); + delete_from_argument(job_name); + return true; + } + if (pg_strcasecmp(attribute_name_str, "job_class") == 0) { + check_job_class_valid(attribute_value); + update_attribute(job_name, attribute_name, attribute_value); + return true; + } + return false; +} + +/* + * @brief set_job_attribute + * Set job attribute, given its attribute name, choose the update method. + * @param job_name + * @param attribute_name + * @param attribute_value + */ +void set_job_attribute(const Datum job_name, const Datum attribute_name, const Datum attribute_value) +{ + char *attribute_name_str = TextDatumGetCString(attribute_name); + if (set_job_inline_schedule_attribute(job_name, attribute_name, attribute_value, attribute_name_str) || + set_job_inline_program_attribute(job_name, attribute_name, attribute_value, attribute_name_str) || + set_job_associated_object_attribute(job_name, attribute_name, attribute_value, attribute_name_str)) { + pfree_ext(attribute_name_str); + return; + } + + /* Other attributes */ + if (pg_strcasecmp(attribute_name_str, "enabled") == 0) { + Assert(attribute_value != 0); + Datum enabled = TextToBool(attribute_value); + update_pg_job(job_name, Anum_pg_job_enable, enabled); + return; + } + pfree_ext(attribute_name_str); + update_attribute(job_name, attribute_name, attribute_value); +} + +/* + * @brief set_attribute_with_related_rel + * Set attributes and update their related objects. + * @param object_name + * @param attribute_name + * @param attribute_value + */ +static void set_attribute_with_related_rel(const Datum object_name, const Datum attribute_name, + const Datum attribute_value) +{ + char *object_type = get_attribute_value_str(object_name, "object_type", RowExclusiveLock, false, false); + if (pg_strcasecmp(object_type, "program") == 0) { + set_program_attribute(object_name, attribute_name, attribute_value); + } else if (pg_strcasecmp(object_type, "schedule") == 0) { + set_schedule_attribute(object_name, attribute_name, attribute_value); + } else if (pg_strcasecmp(object_type, "job") == 0) { + set_job_attribute(object_name, attribute_name, attribute_value); + } else if (pg_strcasecmp(object_type, "job_class") == 0) { + set_job_class_attribute(object_name, attribute_name, attribute_value); + } else { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("object_type %s not support.", object_type), errdetail("N/A"), + errcause("object_type is not exist"), erraction("Please check check object_type"))); + } + pfree(object_type); +} + +/* + * @brief set_attribute_1_internal + * Set attribute with only one value. + * @param type set_attribute supported types. + */ +void set_attribute_1_internal(PG_FUNCTION_ARGS, Oid type) +{ + Datum object_name = PG_GETARG_DATUM(0); + check_object_is_visible(object_name, false); + Datum attribute_name = PG_GETARG_DATUM(1); + Datum attribute_value; + switch (type) { + case BOOLOID: + attribute_value = BoolToText(PG_GETARG_DATUM(2)); + break; + case TIMESTAMPTZOID: + attribute_value = TimeStampTzToText(PG_GETARG_DATUM(2)); + break; + case TIMESTAMPOID: + attribute_value = TimeStampTzToText(DirectFunctionCall1(timestamp_timestamptz, PG_GETARG_DATUM(2))); + break; + case DATEOID: + attribute_value = DateToText(PG_GETARG_DATUM(2)); + break; + case INTERVALOID: + attribute_value = IntervalToText(PG_GETARG_DATUM(2)); + break; + default: + attribute_value = (Datum)0; + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("value type %d not support.", type), errdetail("N/A"), + errcause("value type is not exist"), erraction("Please check check value type"))); + } + set_attribute_with_related_rel(object_name, attribute_name, attribute_value); +} + +/* + * @brief prepare_set_attribute + * Prepare set_attribute_5 stuff. + * @param attribute_name attribute entry name + * @param name first attribute name + * @param value first attribute value + * @param extra_name secondary attribute name for 'event_spec' + * @param extra_value secondary attribute value if exists + */ +static void prepare_set_attribute(Datum attribute, Datum *name, Datum *value, Datum *extra_name, Datum extra_value) +{ + /* Cannot change owner. */ + char *attribute_str = TextDatumGetCString(attribute); + if (pg_strcasecmp(attribute_str, "owner") == 0) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_INVALID_STATUS), + errmsg("Changing the object owner is not allowed."), + errdetail("N/A"), errcause("Forbidden operation."), + erraction("Please contact database administrator."))); + } + + /* Only 'event_spec' requires extra attribute entries. */ + if (pg_strcasecmp(attribute_str, "event_spec") == 0) { + *name = CStringGetTextDatum("event_condition"); + *extra_name = CStringGetTextDatum("queue_spec"); + } else { + if (extra_value != Datum(0)) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_UNDEFINED_OBJECT), + errmsg("Can not recognize attribute name %s.", attribute_str), + errdetail("Attribute %s does not exists.", attribute_str), + errcause("Attribute name is invalid."), + erraction("Please check attribute name."))); + } + *name = attribute; + *extra_name = Datum(0); + } + + /* Lower attribute values */ + if (pg_strcasecmp(attribute_str, "program_action") != 0 && pg_strcasecmp(attribute_str, "job_action") != 0) { + *value = DirectFunctionCall1Coll(lower, DEFAULT_COLLATION_OID, *value); + } + pfree_ext(attribute_str); +} + +/* + * @brief set_attribute_2_internal + * Set object attribute with two values. + */ +void set_attribute_2_internal(PG_FUNCTION_ARGS) +{ + const Datum object_name = PG_GETARG_DATUM(0); + check_object_is_visible(object_name, false); + const Datum attribute_name = PG_GETARG_DATUM(1); + Datum attribute_value1 = PG_ARGISNULL(2) ? Datum(0) : PG_GETARG_DATUM(2); + Datum attribute_value2 = PG_ARGISNULL(3) ? Datum(0) : PG_GETARG_DATUM(3); + Datum attribute_name1; + Datum attribute_name2; + + if (PG_ARGISNULL(2)) { /* attribute value cannot be NULL */ + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_INVALID_STATUS), + errmsg("Fail to set attribute."), + errdetail("Attribute value can't be NULL"), errcause("Forbidden operation."), + erraction("Please pass the correct value."))); + } + + prepare_set_attribute(attribute_name, &attribute_name1, &attribute_value1, &attribute_name2, attribute_value2); + set_attribute_with_related_rel(object_name, attribute_name1, attribute_value1); + if (PointerIsValid(attribute_value2)) { + set_attribute_with_related_rel(object_name, attribute_name2, attribute_value2); + } +} + +/* + * @brief enable_job_by_job_class + * Enable/Disable objects of a entire job class. + * @param job_class_name + * @param enable_value Datum (boolean) enable/disable + * @param force + */ +static void enable_job_by_job_class(const Datum job_class_name, Datum enable_value, bool force) +{ + Relation gs_job_attribute_rel = heap_open(GsJobAttributeRelationId, RowExclusiveLock); + Datum job_class_attribute_name = CStringGetTextDatum("job_class"); + List *tuples = search_related_attribute(gs_job_attribute_rel, job_class_attribute_name, job_class_name); + ListCell *lc = NULL; + foreach(lc, tuples) { + HeapTuple tuple = (HeapTuple)lfirst(lc); + bool isnull = false; + Datum job_name = heap_getattr(tuple, Anum_gs_job_attribute_job_name, gs_job_attribute_rel->rd_att, &isnull); + if (!force) { + can_disable_job(job_name); + } + update_pg_job(job_name, Anum_pg_job_enable, enable_value); + } + heap_close(gs_job_attribute_rel, NoLock); + list_free_deep(tuples); +} + +/* + * @brief check_enable_program_privilege + * check if a program can be enabled. + * @param rel + * @param program_name + */ +static void check_enable_program_privilege(Relation rel, Datum program_name) +{ + bool isnull = false; + Datum program_type = lookup_job_attribute(rel, program_name, CStringGetTextDatum("program_type"), &isnull, false); + char *job_type_str = TextDatumGetCString(program_type); + bool is_shell_job = (pg_strcasecmp(job_type_str, EXTERNAL_JOB_TYPE) == 0); + pfree_ext(job_type_str); + char *cur_user = get_role_name_str(); + if (is_shell_job) { + check_privilege(cur_user, RUN_EXTERNAL_JOB_PRIVILEGE); + } + check_object_is_visible(program_name, false); + pfree_ext(cur_user); +} + +/* + * @brief check_if_arguments_defined + */ +void check_if_arguments_defined(Datum program_name, int number_of_arguments) +{ + if (is_inlined_program(program_name)) { + return; + } + + HeapTuple argument_tuple = NULL; + for (int i = 1; i <= number_of_arguments; i++) { + argument_tuple = SearchSysCache2(JOBARGUMENTPOSITION, program_name, Int32GetDatum(i)); + if (!HeapTupleIsValid(argument_tuple)) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_UNDEFINED_OBJECT), + errmsg("Can not find argument info of object \'%s\'.", TextDatumGetCString(program_name)), + errdetail("N/A"), errcause("argument information not found"), + erraction("Please check object name"))); + } + ReleaseSysCache(argument_tuple); + } +} + +/* + * @brief enable_program + * @param program_name + * @param enable_value + */ +void enable_program(Datum program_name, Datum enable_value) +{ + /* check arguments */ + bool isnull = true; + Relation rel = heap_open(GsJobAttributeRelationId, AccessShareLock); + check_enable_program_privilege(rel, program_name); + Datum number_of_arguments = lookup_job_attribute(rel, program_name, CStringGetTextDatum("number_of_arguments"), + &isnull, false); + int32_t max_number = DatumGetInt32(TextToInt32(number_of_arguments)); + heap_close(rel, NoLock); + + /* validate enable input */ + char *enable_str = TextDatumGetCString(enable_value); + if (pg_strcasecmp(enable_str, "true") != 0 && pg_strcasecmp(enable_str, "false") != 0) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("enable value must be true or false."), errdetail("N/A"), + errcause("enable value must be true or false."), + erraction("Please entry true or false for enable param"))); + } + if (pg_strcasecmp(enable_str, "true") == 0) { + check_if_arguments_defined(program_name, max_number); + } + pfree_ext(enable_str); + update_attribute(program_name, CStringGetTextDatum("enabled"), enable_value); +} + +/* + * @brief enable_single_force + * Enable/Disable one object. + * @param object_name A comma-seperated list of objects + * @param enable_value enable/disable + * @param force if TRUE, objects are disabled even if other objects depend on them + */ +void enable_single_force(Datum object_name, Datum enable_value, bool force) +{ + char *object_type = get_attribute_value_str(object_name, "object_type", RowExclusiveLock, false, false); + if (!force && pg_strcasecmp(object_type, "job") == 0) { + can_disable_job(object_name); + } + if (pg_strcasecmp(object_type, "job") == 0) { + update_pg_job(object_name, Anum_pg_job_enable, TextToBool(enable_value)); + } else if (pg_strcasecmp(object_type, "job_class") == 0) { + enable_job_by_job_class(object_name, TextToBool(enable_value), force); + } else if (pg_strcasecmp(object_type, "program") == 0) { + enable_program(object_name, enable_value); + } +} + +/* + * @brief enable_single_internal + * Enable an object. + */ +void enable_single_internal(PG_FUNCTION_ARGS) +{ + /* + * If a job was disabled and you enable it, the Scheduler begins to automatically run the job according to its + * schedule. Enabling a disabled job also resets the job RUN_COUNT, FAILURE_COUNT and RETRY_COUNT columns in the + * *_SCHEDULER_JOBS data dictionary views. + */ + Datum object_name = PG_GETARG_DATUM(0); + check_object_is_visible(object_name, false); + Datum enable_value = BoolToText(true); + enable_single_force(object_name, enable_value, true); +} + +/* + * @brief disable_single_internal + * Disable one object. + */ +void disable_single_internal(PG_FUNCTION_ARGS) +{ + Datum object_name = PG_GETARG_DATUM(0); + check_object_is_visible(object_name, false); + bool force = PG_GETARG_BOOL(1); + Datum enable_value = BoolToText(false); + enable_single_force(object_name, enable_value, force); +} diff --git a/src/common/backend/catalog/gs_package.cpp b/src/common/backend/catalog/gs_package.cpp index 9587c6bbf..79eb66334 100644 --- a/src/common/backend/catalog/gs_package.cpp +++ b/src/common/backend/catalog/gs_package.cpp @@ -1,5 +1,6 @@ /* * Copyright (c) 2021 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors * * openGauss is licensed under Mulan PSL v2. * You can use this software according to the terms and conditions of the Mulan PSL v2. @@ -37,7 +38,9 @@ #include "catalog/gs_package_fn.h" #include "catalog/pg_object.h" #include "catalog/pg_proc.h" +#include "catalog/pg_synonym.h" #include "commands/defrem.h" +#include "commands/sqladvisor.h" #include "pgxc/pgxc.h" #include "utils/acl.h" #include "utils/builtins.h" @@ -45,8 +48,52 @@ #include "utils/rel_gs.h" #include "utils/syscache.h" #include "utils/lsyscache.h" +#include "tcop/autonomoustransaction.h" #include "tcop/utility.h" #include "utils/plpgsql.h" +#include "utils/pl_global_package_runtime_cache.h" +#include "utils/pl_package.h" + +static PLpgSQL_datum* copypPackageVarDatum(PLpgSQL_datum* datum); +static PackageRuntimeState* buildPkgRunStatesbyPackage(PLpgSQL_package* pkg); +static PackageRuntimeState* buildPkgRunStatebyPkgRunState(PackageRuntimeState* parentPkgState); +static void copyCurrentSessionPkgs(SessionPackageRuntime* sessionPkgs, DList* pkgList); +static bool pkgExistInSession(PackageRuntimeState* pkgState); +static void copyParentSessionPkgs(SessionPackageRuntime* sessionPkgs, List* pkgList); +static void restorePkgValuesByPkgState(PLpgSQL_package* targetPkg, PackageRuntimeState* pkgState, bool isInit = false); +static void restoreAutonmSessionPkgs(SessionPackageRuntime* sessionPkgs); + +static Acl* PackageAclDefault(Oid ownerId) +{ + AclMode world_default; + AclMode owner_default; + int nacl = 0; + Acl* acl = NULL; + AclItem* aip = NULL; + world_default = ACL_NO_RIGHTS; + owner_default = ACL_ALL_RIGHTS_PACKAGE; + if (world_default != ACL_NO_RIGHTS) + nacl++; + if (owner_default != ACL_NO_RIGHTS) + nacl++; + acl = allocacl(nacl); + aip = ACL_DAT(acl); + if (world_default != ACL_NO_RIGHTS) { + aip->ai_grantee = ACL_ID_PUBLIC; + aip->ai_grantor = ownerId; + ACLITEM_SET_PRIVS_GOPTIONS(*aip, world_default, ACL_NO_RIGHTS); + aip++; + } + + if (owner_default != ACL_NO_RIGHTS) { + aip->ai_grantee = ownerId; + aip->ai_grantor = ownerId; + ACLITEM_SET_PRIVS_GOPTIONS(*aip, owner_default, ACL_NO_RIGHTS); + } + + return acl; +} + /* ---------------- * PackageSpecCreate @@ -69,6 +116,11 @@ Oid PackageNameGetOid(const char* pkgname, Oid namespaceId) if (OidIsValid(pkgOid)) { return pkgOid; } + /* search for sysynonym object */ + pkgOid = SysynonymPkgNameGetOid(pkgname, namespaceId); + if (OidIsValid(pkgOid)) { + return pkgOid; + } } else { List* tempActiveSearchPath = NIL; Oid pkgOid; @@ -85,6 +137,11 @@ Oid PackageNameGetOid(const char* pkgname, Oid namespaceId) list_free_ext(tempActiveSearchPath); return pkgOid; } + pkgOid = SysynonymPkgNameGetOid(pkgname, namespaceId); + if (OidIsValid(pkgOid)) { + list_free_ext(tempActiveSearchPath); + return pkgOid; + } } list_free_ext(tempActiveSearchPath); @@ -92,6 +149,21 @@ Oid PackageNameGetOid(const char* pkgname, Oid namespaceId) return InvalidOid; } +Oid SysynonymPkgNameGetOid(const char* pkgname, Oid namespaceId) +{ + HeapTuple synTuple = NULL; + Oid pkgOid = InvalidOid; + synTuple = SearchSysCache2(SYNONYMNAMENSP, PointerGetDatum(pkgname), ObjectIdGetDatum(namespaceId)); + if (HeapTupleIsValid(synTuple)) { + Form_pg_synonym synForm = (Form_pg_synonym)GETSTRUCT(synTuple); + namespaceId = get_namespace_oid(NameStr(synForm->synobjschema), true); + pkgOid = GetSysCacheOid2(PKGNAMENSP, CStringGetDatum(NameStr(synForm->synobjname)), + ObjectIdGetDatum(namespaceId)); + ReleaseSysCache(synTuple); + } + return pkgOid; +} + bool IsExistPackageName(const char* pkgname) { CatCList* catlist = NULL; @@ -153,6 +225,24 @@ NameData* GetPackageName(Oid packageOid) return pkgName; } +Oid GetPackageNamespace(Oid packageOid) +{ + Oid namespaceId = InvalidOid; + HeapTuple pkgtup = SearchSysCache1(PACKAGEOID, ObjectIdGetDatum(packageOid)); + if (!HeapTupleIsValid(pkgtup)) { + ereport(ERROR, + (errmodule(MOD_PLSQL), errcode(ERRCODE_CACHE_LOOKUP_FAILED), + errmsg("cache lookup failed for package %u, while compile package", packageOid), + errdetail("cache lookup failed"), + errcause("System error"), + erraction("Drop and rebuild package"))); + } + Form_gs_package packageform = (Form_gs_package)GETSTRUCT(pkgtup); + namespaceId = packageform->pkgnamespace; + ReleaseSysCache(pkgtup); + return namespaceId; +} + PLpgSQL_package* PackageInstantiation(Oid packageOid) { #ifdef ENABLE_MULTIPLE_NODES @@ -178,16 +268,18 @@ PLpgSQL_package* PackageInstantiation(Oid packageOid) } ReleaseSysCache(pkgTuple); + SPI_STACK_LOG("push cond", NULL, NULL); pushed = SPI_push_conditional(); pkg = plpgsql_package_validator(packageOid, isSpec); + SPI_STACK_LOG("pop cond", NULL, NULL); SPI_pop_conditional(pushed); return pkg; } -Oid PackageSpecCreate(Oid pkgNamespace, const char* pkgName, const Oid ownerId, const char* pkgSpecSrc, bool replace) +Oid PackageSpecCreate(Oid pkgNamespace, const char* pkgName, const Oid ownerId, const char* pkgSpecSrc, bool replace, bool pkgSecDef) { Relation pkgDesc; Oid pkgOid = InvalidOid; @@ -200,6 +292,14 @@ Oid PackageSpecCreate(Oid pkgNamespace, const char* pkgName, const Oid ownerId, ObjectAddress referenced; int i; bool isReplaced = false; + bool isUpgrade = false; +#ifndef ENABLE_MULTIPLE_NODES + if (u_sess->attr.attr_common.plsql_show_all_error == true) { + if (pkgSpecSrc == NULL) { + return InvalidOid; + } + } +#endif Assert(PointerIsValid(pkgSpecSrc)); HeapTuple tup; HeapTuple oldpkgtup; @@ -228,7 +328,15 @@ Oid PackageSpecCreate(Oid pkgNamespace, const char* pkgName, const Oid ownerId, values[Anum_gs_package_pkgspecsrc - 1] = CStringGetTextDatum(pkgSpecSrc); nulls[Anum_gs_package_pkgbodydeclsrc - 1] = true; nulls[Anum_gs_package_pkgbodyinitsrc - 1] = true; - nulls[Anum_gs_package_pkgacl - 1] = true; + values[Anum_gs_package_pkgsecdef - 1] = BoolGetDatum(pkgSecDef); + pkgacl = get_user_default_acl(ACL_OBJECT_PACKAGE, ownerId, pkgNamespace); + if (pkgacl != NULL) + values[Anum_gs_package_pkgacl - 1] = PointerGetDatum(pkgacl); + else if (PLSQL_SECURITY_DEFINER) { + values[Anum_gs_package_pkgacl - 1] = PointerGetDatum(PackageAclDefault(ownerId)); + } else { + nulls[Anum_gs_package_pkgacl - 1] = true; + } pkgDesc = heap_open(PackageRelationId, RowExclusiveLock); tupDesc = RelationGetDescr(pkgDesc); @@ -243,7 +351,6 @@ Oid PackageSpecCreate(Oid pkgNamespace, const char* pkgName, const Oid ownerId, errmsg("package \"%s\" already exists.", pkgName))); } else { oldpkgtup = SearchSysCache1(PACKAGEOID, ObjectIdGetDatum(oldPkgOid)); - replaces[Anum_gs_package_pkgacl - 1] = false; if (!HeapTupleIsValid(oldpkgtup)) { ereport(ERROR, (errmodule(MOD_PLSQL), errcode(ERRCODE_CACHE_LOOKUP_FAILED), @@ -260,17 +367,13 @@ Oid PackageSpecCreate(Oid pkgNamespace, const char* pkgName, const Oid ownerId, } else { oldpkgtup = NULL; (void)simple_heap_insert(pkgDesc, tup); - pkgacl = get_user_default_acl(ACL_OBJECT_PACKAGE, ownerId, pkgNamespace); - if (pkgacl != NULL) - values[Anum_gs_package_pkgacl - 1] = PointerGetDatum(pkgacl); - else - nulls[Anum_gs_package_pkgacl - 1] = true; } if (u_sess->attr.attr_common.IsInplaceUpgrade && u_sess->upg_cxt.Inplace_upgrade_next_gs_package_oid != InvalidOid) { HeapTupleSetOid(tup, u_sess->upg_cxt.Inplace_upgrade_next_gs_package_oid); u_sess->upg_cxt.Inplace_upgrade_next_gs_package_oid = InvalidOid; } + pkgOid = HeapTupleGetOid(tup); Assert(OidIsValid(pkgOid)); @@ -278,6 +381,7 @@ Oid PackageSpecCreate(Oid pkgNamespace, const char* pkgName, const Oid ownerId, if (isReplaced) { (void)deleteDependencyRecordsFor(PackageRelationId, pkgOid, true); + DeleteTypesDenpendOnPackage(PackageRelationId, pkgOid); /* the 'shared dependencies' also change when update. */ deleteSharedDependencyRecordsFor(PackageRelationId, pkgOid, 0); dropFunctionByPackageOid(pkgOid); @@ -290,10 +394,10 @@ Oid PackageSpecCreate(Oid pkgNamespace, const char* pkgName, const Oid ownerId, myself.classId = PackageRelationId; myself.objectId = pkgOid; myself.objectSubId = 0; - - if (u_sess->attr.attr_common.IsInplaceUpgrade && myself.objectId < FirstBootstrapObjectId && !isReplaced) + isUpgrade = u_sess->attr.attr_common.IsInplaceUpgrade && myself.objectId < FirstBootstrapObjectId && !isReplaced; + if (isUpgrade) { recordPinnedDependency(&myself); - else { + } else { /* dependency on owner */ referenced.classId = NamespaceRelationId; referenced.objectId = pkgNamespace; @@ -313,14 +417,41 @@ Oid PackageSpecCreate(Oid pkgNamespace, const char* pkgName, const Oid ownerId, /* Recode the procedure create time. */ if (OidIsValid(pkgOid)) { - if (!isReplaced) { - PgObjectOption objectOpt = {true, true, false, false}; - CreatePgObject(pkgOid, OBJECT_TYPE_PKGSPEC, ownerId, objectOpt); - } else { - UpdatePgObjectMtime(pkgOid, OBJECT_TYPE_PROC); - } + if (!isReplaced) { + PgObjectOption objectOpt = {true, true, false, false}; + CreatePgObject(pkgOid, OBJECT_TYPE_PKGSPEC, ownerId, objectOpt); + } else { + UpdatePgObjectMtime(pkgOid, OBJECT_TYPE_PROC); + } + } + + /* dependency between packages are only needed for package spec */ + if (!isUpgrade) { + u_sess->plsql_cxt.pkg_dependencies = NIL; + u_sess->plsql_cxt.need_pkg_dependencies = true; + } + PG_TRY(); + { + plpgsql_package_validator(pkgOid, true, true); + } + PG_CATCH(); + { + u_sess->plsql_cxt.need_pkg_dependencies = false; + if (u_sess->plsql_cxt.pkg_dependencies != NIL) { + list_free(u_sess->plsql_cxt.pkg_dependencies); + u_sess->plsql_cxt.pkg_dependencies = NIL; + } + PG_RE_THROW(); + } + PG_END_TRY(); + u_sess->plsql_cxt.need_pkg_dependencies = false; + + /* record dependency discovered during validation */ + if (!isUpgrade && u_sess->plsql_cxt.pkg_dependencies != NIL) { + recordDependencyOnPackage(PackageRelationId, pkgOid, u_sess->plsql_cxt.pkg_dependencies); + list_free(u_sess->plsql_cxt.pkg_dependencies); + u_sess->plsql_cxt.pkg_dependencies = NIL; } - plpgsql_package_validator(pkgOid, true, true); return pkgOid; } @@ -334,10 +465,15 @@ Oid PackageBodyCreate(Oid pkgNamespace, const char* pkgName, const Oid ownerId, bool replaces[Natts_gs_package]; NameData nname; TupleDesc tupDesc; - ObjectAddress myself; - ObjectAddress referenced; int i = 0; bool isReplaced = false; +#ifndef ENABLE_MULTIPLE_NODES + if (u_sess->attr.attr_common.plsql_show_all_error == true) { + if (pkgBodySrc == NULL) { + return InvalidOid; + } + } +#endif Assert(PointerIsValid(pkgBodySrc)); HeapTuple tup = NULL; HeapTuple oldpkgtup = NULL; @@ -380,7 +516,6 @@ Oid PackageBodyCreate(Oid pkgNamespace, const char* pkgName, const Oid ownerId, pkgDesc = heap_open(PackageRelationId, RowExclusiveLock); tupDesc = RelationGetDescr(pkgDesc); - oldPkgOid = PackageNameGetOid(pkgName, pkgNamespace); if (OidIsValid(oldPkgOid)) { oldpkgtup = SearchSysCache1(PACKAGEOID, ObjectIdGetDatum(oldPkgOid)); @@ -417,34 +552,12 @@ Oid PackageBodyCreate(Oid pkgNamespace, const char* pkgName, const Oid ownerId, CatalogUpdateIndexes(pkgDesc, tup); if (isReplaced) { - (void)deleteDependencyRecordsFor(PackageRelationId, pkgOid, true); - /* the 'shared dependencies' also change when update. */ - deleteSharedDependencyRecordsFor(PackageRelationId, pkgOid, 0); - dropFunctionByPackageOid(pkgOid); - } + DeleteTypesDenpendOnPackage(PackageRelationId, pkgOid, false); + } heap_freetuple_ext(tup); - heap_close(pkgDesc, RowExclusiveLock); - - /* Record dependencies */ - myself.classId = PackageRelationId; - myself.objectId = pkgOid; - myself.objectSubId = 0; - - if (u_sess->attr.attr_common.IsInplaceUpgrade && myself.objectId < FirstBootstrapObjectId && !isReplaced) - recordPinnedDependency(&myself); - else { - /* dependency on owner */ - referenced.classId = NamespaceRelationId; - referenced.objectId = pkgNamespace; - referenced.objectSubId = 0; - recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL); - - recordDependencyOnOwner(PackageRelationId, pkgOid, ownerId); - - recordDependencyOnCurrentExtension(&myself, false); - } + heap_close(pkgDesc, NoLock); /* Post creation hook for new schema */ InvokeObjectAccessHook(OAT_POST_CREATE, PackageRelationId, pkgOid, 0, NULL); @@ -506,3 +619,290 @@ bool IsFunctionInPackage(List* wholename) heap_close(pg_proc_rel, RowExclusiveLock); return false; } + +static void free_var_value(PLpgSQL_var* var) +{ + if (var->freeval) { + pfree(DatumGetPointer(var->value)); + var->freeval = false; + } +} + +void BuildSessionPackageRuntime(uint64 sessionId, uint64 parentSessionId) +{ + SessionPackageRuntime* parentSessionPkgs = NULL; + + /* get parent session pkgs, build current session pkgs need include them */ + if (parentSessionId != 0) { + if (!u_sess->plsql_cxt.not_found_parent_session_pkgs) { + if (u_sess->plsql_cxt.auto_parent_session_pkgs == NULL) { + MemoryContext oldcontext = MemoryContextSwitchTo(SESS_GET_MEM_CXT_GROUP(MEMORY_CONTEXT_OPTIMIZER)); + parentSessionPkgs = g_instance.global_session_pkg->fetch(parentSessionId); + MemoryContextSwitchTo(oldcontext); + u_sess->plsql_cxt.auto_parent_session_pkgs = parentSessionPkgs; + } else { + parentSessionPkgs = u_sess->plsql_cxt.auto_parent_session_pkgs; + } + } + } + MemoryContext pkgRuntimeCtx = AllocSetContextCreate(CurrentMemoryContext, + "SessionPackageRuntime", + ALLOCSET_SMALL_MINSIZE, + ALLOCSET_SMALL_INITSIZE, + ALLOCSET_DEFAULT_MAXSIZE); + MemoryContext oldCtx = MemoryContextSwitchTo(pkgRuntimeCtx); + SessionPackageRuntime* resultSessionPkgs = (SessionPackageRuntime*)palloc0(sizeof(SessionPackageRuntime)); + resultSessionPkgs->context = pkgRuntimeCtx; + if (u_sess->plsql_cxt.plpgsqlpkg_dlist_objects != NULL) { + copyCurrentSessionPkgs(resultSessionPkgs, u_sess->plsql_cxt.plpgsqlpkg_dlist_objects); + } + + if (parentSessionPkgs) { + List* parentPkgList = parentSessionPkgs->runtimes; + copyParentSessionPkgs(resultSessionPkgs, parentPkgList); + } else if (parentSessionId != 0) { + u_sess->plsql_cxt.not_found_parent_session_pkgs = true; + } + + g_instance.global_session_pkg->add(sessionId, resultSessionPkgs); + + MemoryContextSwitchTo(oldCtx); + MemoryContextDelete(resultSessionPkgs->context); +} + +static void copyCurrentSessionPkgs(SessionPackageRuntime* sessionPkgs, DList* pkgList) +{ + PLpgSQL_package* pkg = NULL; + DListCell* cell = NULL; + dlist_foreach_cell(cell, pkgList) { + pkg = ((plpgsql_pkg_HashEnt*)lfirst(cell))->package; + PackageRuntimeState* pkgState = buildPkgRunStatesbyPackage(pkg); + sessionPkgs->runtimes = lappend(sessionPkgs->runtimes, pkgState); + } +} + +static bool pkgExistInSession(PackageRuntimeState* pkgState) +{ + if (pkgState == NULL) { + return false; + } + PLpgSQL_pkg_hashkey hashkey; + hashkey.pkgOid = pkgState->packageId; + PLpgSQL_package* getpkg = plpgsql_pkg_HashTableLookup(&hashkey); + if (getpkg) { + return true; + } else { + return false; + } +} + +static void copyParentSessionPkgs(SessionPackageRuntime* sessionPkgs, List* pkgList) +{ + ListCell* cell = NULL; + foreach(cell, pkgList) { + /* if package exist in current session, we already copy it */ + if (pkgExistInSession((PackageRuntimeState*)lfirst(cell))) { + continue; + } + PackageRuntimeState* parentPkgState = (PackageRuntimeState*)lfirst(cell); + PackageRuntimeState* pkgState = buildPkgRunStatebyPkgRunState(parentPkgState); + sessionPkgs->runtimes = lappend(sessionPkgs->runtimes, pkgState); + } +} + +static PackageRuntimeState* buildPkgRunStatesbyPackage(PLpgSQL_package* pkg) +{ + PackageRuntimeState* pkgState = (PackageRuntimeState*)palloc0(sizeof(PackageRuntimeState)); + pkgState->packageId = pkg->pkg_oid; + pkgState->size = pkg->ndatums; + pkgState->datums = (PLpgSQL_datum**)palloc0(sizeof(PLpgSQL_datum*) * pkg->ndatums); + for (int i = 0; i < pkg->ndatums; i++) { + pkgState->datums[i] = copypPackageVarDatum(pkg->datums[i]); + } + + return pkgState; +} + +static PackageRuntimeState* buildPkgRunStatebyPkgRunState(PackageRuntimeState* parentPkgState) +{ + PackageRuntimeState* pkgState = (PackageRuntimeState*)palloc0(sizeof(PackageRuntimeState)); + pkgState->packageId = parentPkgState->packageId; + pkgState->size = parentPkgState->size; + pkgState->datums = (PLpgSQL_datum**)palloc0(sizeof(PLpgSQL_datum*) * parentPkgState->size); + for (int i = 0; i < parentPkgState->size; i++) { + pkgState->datums[i] = copypPackageVarDatum(parentPkgState->datums[i]); + } + + return pkgState; +} + +static PLpgSQL_datum* copypPackageVarDatum(PLpgSQL_datum* datum) +{ + PLpgSQL_datum* result = NULL; + + if (datum == NULL) + return NULL; + /* only VAR store value */ + switch (datum->dtype) { + case PLPGSQL_DTYPE_VAR: { + PLpgSQL_var* newm = copyPlpgsqlVar((PLpgSQL_var*)datum); + result = (PLpgSQL_datum*)newm; + break; + } + default: + break; + } + return result; +} + +/* restore package values by Autonm SessionPkgs */ +static void restoreAutonmSessionPkgs(SessionPackageRuntime* sessionPkgs) +{ + if (sessionPkgs == NULL || sessionPkgs->runtimes == NULL) { + return; + } + + ListCell* cell = NULL; + PackageRuntimeState* pkgState = NULL; + Oid pkgOid = InvalidOid; + PLpgSQL_pkg_hashkey hashkey; + PLpgSQL_package* pkg = NULL; + + foreach(cell, sessionPkgs->runtimes) { + pkgState = (PackageRuntimeState*)lfirst(cell); + pkgOid = pkgState->packageId; + hashkey.pkgOid = pkgOid; + pkg = plpgsql_pkg_HashTableLookup(&hashkey); + if (pkg == NULL) { + pkg = PackageInstantiation(pkgOid); + } + restorePkgValuesByPkgState(pkg, pkgState); + } +} + +/* restore package values by pkgState */ +static void restorePkgValuesByPkgState(PLpgSQL_package* targetPkg, PackageRuntimeState* pkgState, bool isInit) +{ + if (targetPkg == NULL || pkgState == NULL) { + return; + } + + PLpgSQL_var* targetVar = NULL; + PLpgSQL_var* fromVar = NULL; + Datum newvalue = (Datum)0; + + /* this session pkg only contain spec, need compile body */ + if (!isInit && targetPkg->ndatums < pkgState->size) { + targetPkg = PackageInstantiation(targetPkg->pkg_oid); + } + + for (int i = 0; i < targetPkg->ndatums && i < pkgState->size; i++) { + /* null mean datum not a var */ + if (pkgState->datums[i] == NULL) { + continue; + } + + fromVar = (PLpgSQL_var*)pkgState->datums[i]; + /* const value cannot be changed, cursor not supported by automo func yet */ + if (fromVar->isconst || fromVar->is_cursor_var || fromVar->datatype->typoid == REFCURSOROID) { + continue; + } + + newvalue = fromVar->value; + targetVar = (PLpgSQL_var*)targetPkg->datums[i]; + bool isByReference = !targetVar->datatype->typbyval && !fromVar->isnull; + if (isByReference) { + MemoryContext temp = MemoryContextSwitchTo(targetVar->pkg->pkg_cxt); + newvalue = datumCopy(fromVar->value, false, targetVar->datatype->typlen); + MemoryContextSwitchTo(temp); + } + free_var_value(targetVar); + + targetVar->value = newvalue; + targetVar->isnull = fromVar->isnull; + if (isByReference) { + targetVar->freeval = true; + } + + if (fromVar->tableOfIndex != NULL) { + MemoryContext temp = MemoryContextSwitchTo(targetVar->pkg->pkg_cxt); + targetVar->tableOfIndex = copyTableOfIndex(fromVar->tableOfIndex); + MemoryContextSwitchTo(temp); + } else if (fromVar->isnull) { + hash_destroy(targetVar->tableOfIndex); + targetVar->tableOfIndex = NULL; + } + } +} + +/* init Autonomous session package values by parent session */ +void initAutonomousPkgValue(PLpgSQL_package* targetPkg, uint64 sessionId) +{ + if (u_sess->plsql_cxt.not_found_parent_session_pkgs) { + return; + } + + SessionPackageRuntime* sessionPkgs = NULL; + if (u_sess->plsql_cxt.auto_parent_session_pkgs == NULL) { + MemoryContext oldcontext = MemoryContextSwitchTo(SESS_GET_MEM_CXT_GROUP(MEMORY_CONTEXT_OPTIMIZER)); + sessionPkgs = g_instance.global_session_pkg->fetch(sessionId); + MemoryContextSwitchTo(oldcontext); + u_sess->plsql_cxt.auto_parent_session_pkgs = sessionPkgs; + } else { + sessionPkgs = u_sess->plsql_cxt.auto_parent_session_pkgs; + } + + if (sessionPkgs == NULL) { + u_sess->plsql_cxt.not_found_parent_session_pkgs = true; + return; + } + + ListCell* cell = NULL; + PackageRuntimeState* pkgState = NULL; + + foreach(cell, sessionPkgs->runtimes) { + pkgState = (PackageRuntimeState*)lfirst(cell); + if (targetPkg->pkg_oid == pkgState->packageId) { + restorePkgValuesByPkgState(targetPkg, pkgState, true); + break; + } else { + continue; + } + } +} + +void processAutonmSessionPkgs(PLpgSQL_function* func) +{ + /* ignore inline_code_block function */ + if (!OidIsValid(func->fn_oid)) { + return; + } + + uint64 currentSessionId = IS_THREAD_POOL_WORKER ? u_sess->session_id : t_thrd.proc_cxt.MyProcPid; + + if (IsAutonomousTransaction(func->action->isAutonomous)) { + /* + * call after plpgsql_exec_autonm_function(), need restore + * autonm session pkgs to current session, and remove + * sessionpkgs from g_instance.global_session_pkg. + */ + uint64 automnSessionId = u_sess->SPI_cxt.autonomous_session->current_attach_sessionid; + SessionPackageRuntime* sessionpkgs = g_instance.global_session_pkg->fetch(automnSessionId); + restoreAutonmSessionPkgs(sessionpkgs); + if (sessionpkgs != NULL) { + MemoryContextDelete(sessionpkgs->context); + g_instance.global_session_pkg->remove(automnSessionId); + } + g_instance.global_session_pkg->remove(currentSessionId); + } else { + /* + * call after plpgsql_exec_function(), If it is first level + * autonomous func, need add its all session package values + * to global, the parent session will fetch the sessionPkgs, + * and restore package values by it. + */ + if (u_sess->is_autonomous_session == true && u_sess->SPI_cxt._connected == 0) { + BuildSessionPackageRuntime(currentSessionId, 0); + } + } +} diff --git a/src/common/backend/catalog/heap.cpp b/src/common/backend/catalog/heap.cpp index 066ceaed6..241077c08 100644 --- a/src/common/backend/catalog/heap.cpp +++ b/src/common/backend/catalog/heap.cpp @@ -72,6 +72,7 @@ #include "commands/tablespace.h" #include "commands/typecmds.h" #include "miscadmin.h" +#include "nodes/makefuncs.h" #include "nodes/nodeFuncs.h" #include "nodes/params.h" #include "optimizer/var.h" @@ -79,6 +80,7 @@ #include "parser/parse_collate.h" #include "parser/parse_expr.h" #include "parser/parse_relation.h" +#include "parser/parse_utilcmd.h" #include "parser/parsetree.h" #include "pgxc/groupmgr.h" #include "storage/buf/buf.h" @@ -94,6 +96,7 @@ #include "utils/fmgroids.h" #include "utils/hotkey.h" #include "utils/int8.h" +#include "utils/int16.h" #include "utils/inval.h" #include "utils/lsyscache.h" #include "utils/partitionmap.h" @@ -123,6 +126,11 @@ #include "client_logic/client_logic.h" +#ifndef ENABLE_MULTIPLE_NODES +#include "utils/pl_package.h" +#endif + + static void AddNewRelationTuple(Relation pg_class_desc, Relation new_rel_desc, Oid new_rel_oid, Oid new_type_oid, Oid reloftype, Oid relowner, char relkind, char relpersistence, Datum relacl, Datum reloptions, int2vector* bucketcol, bool ispartrel); @@ -154,6 +162,7 @@ static void SetRelationNumChecks(Relation rel, int numchecks); static Node* cookConstraint(ParseState* pstate, Node* raw_constraint, char* relname); static List* insert_ordered_unique_oid(List* list, Oid datum); static void InitPartitionDef(Partition newPartition, Oid partOid, char strategy); +static void InitSubPartitionDef(Partition newPartition, Oid partOid, char strategy); static bool binary_upgrade_is_next_part_pg_partition_oid_valid(); static Oid binary_upgrade_get_next_part_pg_partition_oid(); bool binary_upgrade_is_next_part_toast_pg_class_oid_valid(); @@ -437,6 +446,23 @@ static void InitPartitionDef(Partition newPartition, Oid partOid, char strategy) newPartition->pd_part->indisusable = true; } +static void InitSubPartitionDef(Partition newPartition, Oid partOid, char strategy) +{ + newPartition->pd_part->parttype = PART_OBJ_TYPE_TABLE_SUB_PARTITION; + newPartition->pd_part->parentid = partOid; + newPartition->pd_part->rangenum = 0; + newPartition->pd_part->intervalnum = 0; + newPartition->pd_part->partstrategy = strategy; + newPartition->pd_part->reltoastrelid = InvalidOid; + newPartition->pd_part->reltoastidxid = InvalidOid; + newPartition->pd_part->indextblid = InvalidOid; + newPartition->pd_part->reldeltarelid = InvalidOid; + newPartition->pd_part->reldeltaidx = InvalidOid; + newPartition->pd_part->relcudescrelid = InvalidOid; + newPartition->pd_part->relcudescidx = InvalidOid; + newPartition->pd_part->indisusable = true; +} + /* ---------------------------------------------------------------- * XXX END OF UGLY HARD CODED BADNESS XXX * ---------------------------------------------------------------- */ @@ -468,9 +494,9 @@ Relation heap_create(const char* relname, Oid relnamespace, Oid reltablespace, O /* * sanity checks */ - if (!allow_system_table_mods && - (IsSystemNamespace(relnamespace) || IsToastNamespace(relnamespace) || IsCStoreNamespace(relnamespace)) && - IsNormalProcessingMode()) { + if (!allow_system_table_mods && + (IsSystemNamespace(relnamespace) || IsToastNamespace(relnamespace) || IsCStoreNamespace(relnamespace) || + IsPackageSchemaOid(relnamespace)) && IsNormalProcessingMode()) { ereport(ERROR, (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("permission denied to create \"%s.%s\"", get_namespace_name(relnamespace), relname), @@ -495,6 +521,7 @@ Relation heap_create(const char* relname, Oid relnamespace, Oid reltablespace, O reltablespace = InvalidOid; break; case RELKIND_SEQUENCE: + case RELKIND_LARGE_SEQUENCE: create_storage = true; /* @@ -736,10 +763,19 @@ void CheckAttributeType( * catalogs (this allows creating pg_statistic and cloning it during * VACUUM FULL) */ - if (atttypid != ANYARRAYOID || !allow_system_table_mods) + if (atttypid != ANYARRAYOID || !allow_system_table_mods) { +#ifndef ENABLE_MULTIPLE_NODES + if (u_sess->attr.attr_common.plsql_show_all_error) { + StringInfoData message; + initStringInfo(&message); + appendStringInfo(&message, "column \"%s\" has pseudo-type %s", attname, format_type_be(atttypid)); + InsertErrorMessage(message.data, 0, true); + } +#endif ereport(ERROR, (errcode(ERRCODE_INVALID_TABLE_DEFINITION), errmsg("column \"%s\" has pseudo-type %s", attname, format_type_be(atttypid)))); + } } else if (att_typtype == TYPTYPE_DOMAIN) { /* * If it's a domain, recurse to check its base type. @@ -759,10 +795,14 @@ void CheckAttributeType( * many other places would require anti-recursion defenses before it * would be safe to allow tables to contain their own rowtype. */ - if (list_member_oid(containing_rowtypes, atttypid)) + if (list_member_oid(containing_rowtypes, atttypid)) { + if (strcmp(attname, "pljson_list_data") == 0) { + return; + } ereport(ERROR, (errcode(ERRCODE_INVALID_TABLE_DEFINITION), errmsg("composite type %s cannot be made a member of itself", format_type_be(atttypid)))); + } containing_rowtypes = lcons_oid(atttypid, containing_rowtypes); @@ -785,6 +825,13 @@ void CheckAttributeType( relation_close(relation, AccessShareLock); containing_rowtypes = list_delete_first(containing_rowtypes); + } else if (att_typtype == TYPTYPE_TABLEOF) { + /* + * For a table of type, find its base elemid and collation + */ + att_typelem = get_element_type(atttypid); + Oid att_collation = get_typcollation(att_typelem); + CheckAttributeType(attname, att_typelem, att_collation, containing_rowtypes, allow_system_table_mods); } else if (OidIsValid((att_typelem = get_element_type(atttypid)))) { /* * Must recurse into array types, too, in case they are composite. @@ -997,11 +1044,6 @@ static void AddNewGsSecEncryptedColumnsTuples(const Oid new_rel_oid, List *ceLst { Relation rel; CatalogIndexState indstate; -#ifdef ENABLE_MULTIPLE_NODES - if (!IS_PGXC_COORDINATOR) { - return; - } -#endif /* * open gs_encrypted_columns and its indexes. */ @@ -1171,6 +1213,7 @@ static void AddNewRelationTuple(Relation pg_class_desc, Relation new_rel_desc, O new_rel_reltup->relallvisible = 0; break; case RELKIND_SEQUENCE: + case RELKIND_LARGE_SEQUENCE: /* Sequences always have a known size */ new_rel_reltup->relpages = 1; new_rel_reltup->reltuples = 1; @@ -2060,26 +2103,6 @@ void GetRelationDistributionItems(Oid relid, DistributeBy* distributeby, TupleDe *locatortype = local_locatortype; } -/* - * @@GaussDB@@ - * Target : GetRelationBucketKey - * Brief : - * Description : - * Notes : - * Author : - */ -static int bid_cmp(const void* p1, const void* p2) -{ - Oid b1 = *((const Oid*)p1); - Oid b2 = *((const Oid*)p2); - - if (b1 < b2) - return -1; - if (b1 > b2) - return 1; - return 0; -} - HashBucketInfo* GetRelationBucketInfo(DistributeBy* distributeby, TupleDesc tupledsc, bool* createbucket, @@ -2484,8 +2507,15 @@ Oid heap_create_with_catalog(const char *relname, Oid relnamespace, Oid reltable * by catching it here we can emit a nicer error message. */ existing_relid = get_relname_relid(relname, relnamespace); - if (existing_relid != InvalidOid) - ereport(ERROR, (errcode(ERRCODE_DUPLICATE_TABLE), errmsg("relation \"%s\" already exists", relname))); + if (existing_relid != InvalidOid) { + Oid namespaceid_of_existing_rel = get_rel_namespace(existing_relid); + char* namespace_of_existing_rel = get_namespace_name(namespaceid_of_existing_rel); + ereport(ERROR, (errmodule(MOD_COMMAND), errcode(ERRCODE_DUPLICATE_TABLE), + errmsg("relation \"%s\" already exists in schema \"%s\"", relname, namespace_of_existing_rel), + errdetail("creating new table with existing name in the same schema"), + errcause("the name of the table being created already exists"), + erraction("change a new name"))); + } /* * Since we are going to create a rowtype as well, also check for @@ -2525,7 +2555,7 @@ Oid heap_create_with_catalog(const char *relname, Oid relnamespace, Oid reltable * supplied. */ if (u_sess->proc_cxt.IsBinaryUpgrade && OidIsValid(u_sess->upg_cxt.binary_upgrade_next_heap_pg_class_oid) && - (relkind == RELKIND_RELATION || relkind == RELKIND_SEQUENCE || relkind == RELKIND_VIEW || + (relkind == RELKIND_RELATION || RELKIND_IS_SEQUENCE(relkind) || relkind == RELKIND_VIEW || relkind == RELKIND_COMPOSITE_TYPE || relkind == RELKIND_FOREIGN_TABLE || relkind == RELKIND_MATVIEW || relkind == RELKIND_STREAM || relkind == RELKIND_CONTQUERY)) { relid = u_sess->upg_cxt.binary_upgrade_next_heap_pg_class_oid; @@ -2549,7 +2579,7 @@ Oid heap_create_with_catalog(const char *relname, Oid relnamespace, Oid reltable relfileid = binary_upgrade_get_next_part_toast_pg_class_rfoid(); } else if (u_sess->attr.attr_common.IsInplaceUpgrade && OidIsValid(u_sess->upg_cxt.Inplace_upgrade_next_heap_pg_class_oid) && - (relkind == RELKIND_RELATION || relkind == RELKIND_SEQUENCE || relkind == RELKIND_VIEW || + (relkind == RELKIND_RELATION || RELKIND_IS_SEQUENCE(relkind) || relkind == RELKIND_VIEW || relkind == RELKIND_COMPOSITE_TYPE || relkind == RELKIND_FOREIGN_TABLE || relkind == RELKIND_STREAM || relkind == RELKIND_CONTQUERY)) { relid = u_sess->upg_cxt.Inplace_upgrade_next_heap_pg_class_oid; @@ -2580,6 +2610,7 @@ Oid heap_create_with_catalog(const char *relname, Oid relnamespace, Oid reltable relacl = get_user_default_acl(ACL_OBJECT_RELATION, ownerid, relnamespace); break; case RELKIND_SEQUENCE: + case RELKIND_LARGE_SEQUENCE: // tbf relacl = get_user_default_acl(ACL_OBJECT_SEQUENCE, ownerid, relnamespace); break; default: @@ -2669,10 +2700,11 @@ Oid heap_create_with_catalog(const char *relname, Oid relnamespace, Oid reltable * composite types and foreign tables ... but not, eg, for toast tables or * sequences. */ - if (IsUnderPostmaster && !u_sess->attr.attr_common.IsInplaceUpgrade && + if ((IsUnderPostmaster && !u_sess->attr.attr_common.IsInplaceUpgrade && (relkind == RELKIND_RELATION || relkind == RELKIND_VIEW || relkind == RELKIND_FOREIGN_TABLE || relkind == RELKIND_COMPOSITE_TYPE || relkind == RELKIND_MATVIEW || relkind == RELKIND_STREAM || - relkind == RELKIND_CONTQUERY)) + relkind == RELKIND_CONTQUERY)) || + (strcmp(relname, "bulk_exception") == 0) || (strcmp(relname, "desc_rec") == 0)) new_array_oid = AssignTypeArrayOid(); /* @@ -2778,6 +2810,10 @@ Oid heap_create_with_catalog(const char *relname, Oid relnamespace, Oid reltable new_rel_desc->rd_rel->parttype = PARTTYPE_VALUE_PARTITIONED_RELATION; } + if (partTableState != NULL && partTableState->subPartitionState != NULL) { + new_rel_desc->rd_rel->parttype = PARTTYPE_SUBPARTITIONED_RELATION; + } + /* * now create an entry in pg_class for the relation. * @@ -2802,11 +2838,7 @@ Oid heap_create_with_catalog(const char *relname, Oid relnamespace, Oid reltable */ AddNewAttributeTuples( relid, new_rel_desc->rd_att, relkind, oidislocal, oidinhcount, relhasbucket); - if ( -#ifdef ENABLE_MULTIPLE_NODES - IS_PGXC_COORDINATOR && -#endif - ceLst != NULL) { + if (ceLst != NULL) { AddNewGsSecEncryptedColumnsTuples(relid, ceLst); } if (partTableState && (RELKIND_TOASTVALUE != relkind)) { @@ -4994,7 +5026,8 @@ void addNewPartitionTuple(Relation pg_part_desc, Partition new_part_desc, int2ve if (new_part_tup->parttype == PART_OBJ_TYPE_PARTED_TABLE) { new_part_tup->relfrozenxid = (ShortTransactionId)InvalidTransactionId; } else { - Assert(new_part_tup->parttype == PART_OBJ_TYPE_TABLE_PARTITION); + Assert(new_part_tup->parttype == PART_OBJ_TYPE_TABLE_PARTITION || + new_part_tup->parttype == PART_OBJ_TYPE_TABLE_SUB_PARTITION); new_part_tup->relfrozenxid = (ShortTransactionId)u_sess->utils_cxt.RecentXmin; } @@ -5299,6 +5332,77 @@ void heapDropPartitionToastList(List* toastList) /*cleanup*/ free_object_addresses(objects); } + +void heapDropSubPartitionList(Relation rel, Oid partId) +{ + ListCell* cell = NULL; + List *partCacheList = NIL; + HeapTuple partTuple = NULL; + Oid subPartOid = InvalidOid; + Form_pg_partition partForm = NULL; + Oid toastOid = InvalidOid; + Oid cuDesc = InvalidOid; + Oid delta = InvalidOid; + List *toastOidList = NIL; + List *cuDescOidList = NIL; + List *deltaOidList = NIL; + List *subPartOidList = NIL; + + partCacheList = searchPgPartitionByParentId(PART_OBJ_TYPE_TABLE_SUB_PARTITION, partId); + foreach (cell, partCacheList) { + partTuple = (HeapTuple)lfirst(cell); + + if (PointerIsValid(partTuple)) { + subPartOid = HeapTupleGetOid(partTuple); + subPartOidList = lappend_oid(subPartOidList, subPartOid); + + partForm = (Form_pg_partition)GETSTRUCT(partTuple); + toastOid = partForm->reltoastrelid; + cuDesc = partForm->relcudescrelid; + delta = partForm->reldeltarelid; + + if (OidIsValid(toastOid)) { + toastOidList = lappend_oid(toastOidList, toastOid); + } + + if (OidIsValid(cuDesc)) { + cuDescOidList = lappend_oid(cuDescOidList, cuDesc); + } + + if (OidIsValid(delta)) { + deltaOidList = lappend_oid(deltaOidList, delta); + } + } + } + + /* + * drop table partition's toast table + */ + if (PointerIsValid(toastOidList)) { + heapDropPartitionToastList(toastOidList); + list_free(toastOidList); + } + + if (PointerIsValid(cuDescOidList)) { + heapDropPartitionToastList(cuDescOidList); + list_free(cuDescOidList); + } + + if (PointerIsValid(deltaOidList)) { + heapDropPartitionToastList(deltaOidList); + list_free(deltaOidList); + } + + /* + * drop table partition + */ + if (PointerIsValid(subPartOidList)) { + heapDropPartitionList(rel, subPartOidList); + list_free(subPartOidList); + } + freePartList(partCacheList); +} + /* * @@GaussDB@@ * Target : data partition @@ -5312,6 +5416,7 @@ void heapDropPartitionList(Relation rel, List* partitionList) ListCell* cell = NULL; Oid partId = InvalidOid; Partition part = NULL; + Relation partRel = NULL; /*check input parameters validity*/ Assert(PointerIsValid(rel)); @@ -5325,6 +5430,11 @@ void heapDropPartitionList(Relation rel, List* partitionList) partId = lfirst_oid(cell); if (OidIsValid(partId)) { part = partitionOpen(rel, partId, AccessExclusiveLock); + if (RelationIsSubPartitioned(rel)) { + partRel = partitionGetRelation(rel, part); + heapDropSubPartitionList(partRel, partId); + releaseDummyRelation(&partRel); + } newPartList = lappend(newPartList, part); } } @@ -5363,14 +5473,17 @@ void heapDropPartition(Relation relation, Partition part) checkPartNotInUse(part, "DROP PARTITION"); - partRel = partitionGetRelation(relation, part); + if (!(RelationIsSubPartitioned(relation) && part->pd_part->parttype == PART_OBJ_TYPE_TABLE_PARTITION)) { + partRel = partitionGetRelation(relation, part); - TransferPredicateLocksToHeapRelation(partRel); + TransferPredicateLocksToHeapRelation(partRel); - /* - * Schedule unlinking of the relation's physical files at commit. - */ - RelationDropStorage(partRel); + /* + * Schedule unlinking of the relation's physical files at commit. + */ + RelationDropStorage(partRel); + releaseDummyRelation(&partRel); + } partitionClose(relation, part, NoLock); /* @@ -5391,8 +5504,6 @@ void heapDropPartition(Relation relation, Partition part) * delete partition tuple */ deletePartitionTuple(partid); - - releaseDummyRelation(&partRel); } static void heapDropPartitionTable(Relation relation) @@ -5538,6 +5649,31 @@ void heapDropPartitionIndex(Relation parentIndex, Oid partIndexId) releaseDummyRelation(&partRel); } +void GetNewPartitionOidAndNewPartrelfileOid(List *subPartitionDefState, Oid *newPartitionOid, Oid *newPartrelfileOid, + Relation pgPartRel, Oid newPartitionTableSpaceOid) +{ + if (subPartitionDefState != NULL) { + if (u_sess->proc_cxt.IsBinaryUpgrade && + OidIsValid(u_sess->upg_cxt.binary_upgrade_next_partrel_pg_partition_oid)) { + *newPartitionOid = u_sess->upg_cxt.binary_upgrade_next_partrel_pg_partition_oid; + u_sess->upg_cxt.binary_upgrade_next_partrel_pg_partition_oid = InvalidOid; + *newPartrelfileOid = u_sess->upg_cxt.binary_upgrade_next_partrel_pg_partition_rfoid; + u_sess->upg_cxt.binary_upgrade_next_partrel_pg_partition_rfoid = InvalidOid; + } else { + *newPartitionOid = GetNewOid(pgPartRel); + } + } else { + if (u_sess->proc_cxt.IsBinaryUpgrade && binary_upgrade_is_next_part_pg_partition_oid_valid()) { + *newPartitionOid = binary_upgrade_get_next_part_pg_partition_oid(); + *newPartrelfileOid = binary_upgrade_get_next_part_pg_partition_rfoid(); + } else { + *newPartitionOid = GetNewRelFileNode(newPartitionTableSpaceOid, pgPartRel, + RELPERSISTENCE_PERMANENT); /* partition's persistence only + can be 'p'(permanent table) */ + } + } +} + /* * @@GaussDB@@ * Brief : @@ -5555,7 +5691,7 @@ void heapDropPartitionIndex(Relation parentIndex, Oid partIndexId) */ Oid heapAddRangePartition(Relation pgPartRel, Oid partTableOid, Oid partTablespace, Oid bucketOid, RangePartitionDefState *newPartDef, Oid ownerid, Datum reloptions, const bool *isTimestamptz, - StorageType storage_type, LOCKMODE partLockMode) + StorageType storage_type, LOCKMODE partLockMode, int2vector* subpartition_key, bool isSubpartition) { Datum boundaryValue = (Datum)0; Oid newPartitionOid = InvalidOid; @@ -5606,20 +5742,22 @@ Oid heapAddRangePartition(Relation pgPartRel, Oid partTableOid, Oid partTablespa } /* create partition */ - if (u_sess->proc_cxt.IsBinaryUpgrade && binary_upgrade_is_next_part_pg_partition_oid_valid()) { - newPartitionOid = binary_upgrade_get_next_part_pg_partition_oid(); - newPartrelfileOid = binary_upgrade_get_next_part_pg_partition_rfoid(); - } else { - newPartitionOid = GetNewRelFileNode(newPartitionTableSpaceOid, pgPartRel, - RELPERSISTENCE_PERMANENT); /* partition's persistence only - can be 'p'(permanent table) */ - } + GetNewPartitionOidAndNewPartrelfileOid(newPartDef->subPartitionDefState, &newPartitionOid, &newPartrelfileOid, + pgPartRel, newPartitionTableSpaceOid); if (partLockMode != NoLock) { LockPartitionOid(partTableOid, (uint32)newPartitionOid, partLockMode); } + bool forPartitionTable = false; + if (isSubpartition) { /* Level-2 partition of subpartition */ + forPartitionTable = false; + } else if (newPartDef->subPartitionDefState != NULL) { /* Level-2 partition of subpartition */ + forPartitionTable = true; + } else { /* Common partition */ + forPartitionTable = false; + } newPartition = heapCreatePartition(newPartDef->partitionName, /* partition's name */ - false, /* false for partition */ + forPartitionTable, /* false for partition */ newPartitionTableSpaceOid, /* partition's tablespace*/ newPartitionOid, /* partition's oid*/ newPartrelfileOid, @@ -5630,23 +5768,37 @@ Oid heapAddRangePartition(Relation pgPartRel, Oid partTableOid, Oid partTablespa reloptions); Assert(newPartitionOid == PartitionGetPartid(newPartition)); - InitPartitionDef(newPartition, partTableOid, PART_STRATEGY_RANGE); + if (isSubpartition) { + InitSubPartitionDef(newPartition, partTableOid, PART_STRATEGY_RANGE); + } else { + InitPartitionDef(newPartition, partTableOid, PART_STRATEGY_RANGE); + } /* step 3: insert into pg_partition tuple */ addNewPartitionTuple(pgPartRel, /* RelationData pointer for pg_partition */ newPartition, /* PartitionData pointer for partition */ - NULL, /* */ + subpartition_key, /* */ NULL, (Datum)0, /* interval*/ boundaryValue, /* max values */ (Datum)0, /* transition point */ reloptions); - relation = relation_open(partTableOid, NoLock); - PartitionCloseSmgr(newPartition); + if (isSubpartition) { + PartitionCloseSmgr(newPartition); + Partition part = newPartition; + if (PartitionIsBucket(newPartition)) { + part = newPartition->parent; + bucketClosePartition(newPartition); + } + PartitionClose(part); + } else { + relation = relation_open(partTableOid, NoLock); + PartitionCloseSmgr(newPartition); - partitionClose(relation, newPartition, NoLock); - relation_close(relation, NoLock); + partitionClose(relation, newPartition, NoLock); + relation_close(relation, NoLock); + } return newPartitionOid; } @@ -5848,7 +6000,7 @@ Oid HeapAddIntervalPartition(Relation pgPartRel, Relation rel, Oid partTableOid, Oid HeapAddListPartition(Relation pgPartRel, Oid partTableOid, Oid partTablespace, Oid bucketOid, ListPartitionDefState* newListPartDef, Oid ownerid, Datum reloptions, const bool* isTimestamptz, - StorageType storage_type) + StorageType storage_type, int2vector* subpartition_key, bool isSubpartition) { Datum boundaryValue = (Datum)0; Oid newListPartitionOid = InvalidOid; @@ -5897,46 +6049,55 @@ Oid HeapAddListPartition(Relation pgPartRel, Oid partTableOid, Oid partTablespac } /* create partition */ - if (u_sess->proc_cxt.IsBinaryUpgrade - && binary_upgrade_is_next_part_pg_partition_oid_valid()) { - newListPartitionOid = binary_upgrade_get_next_part_pg_partition_oid(); - partrelfileOid = binary_upgrade_get_next_part_pg_partition_rfoid(); - } else { - newListPartitionOid = GetNewRelFileNode(newPartitionTableSpaceOid, - pgPartRel, RELPERSISTENCE_PERMANENT); - } + GetNewPartitionOidAndNewPartrelfileOid(newListPartDef->subPartitionDefState, &newListPartitionOid, &partrelfileOid, + pgPartRel, newPartitionTableSpaceOid); + LockPartitionOid(partTableOid, (uint32)newListPartitionOid, AccessExclusiveLock); - newListPartition = heapCreatePartition(newListPartDef->partitionName, - false, - newPartitionTableSpaceOid, - newListPartitionOid, - partrelfileOid, - bucketOid, - ownerid, - storage_type, - false, - reloptions); - + bool forPartitionTable = false; + if (isSubpartition) { /* Level-2 partition of subpartition */ + forPartitionTable = false; + } else if (newListPartDef->subPartitionDefState != NULL) { /* Level-2 partition of subpartition */ + forPartitionTable = true; + } else { /* Common partition */ + forPartitionTable = false; + } + newListPartition = heapCreatePartition(newListPartDef->partitionName, forPartitionTable, newPartitionTableSpaceOid, + newListPartitionOid, partrelfileOid, bucketOid, ownerid, storage_type); Assert(newListPartitionOid == PartitionGetPartid(newListPartition)); - InitPartitionDef(newListPartition, partTableOid, PART_STRATEGY_LIST); + + if (isSubpartition) { + InitSubPartitionDef(newListPartition, partTableOid, PART_STRATEGY_LIST); + } else { + InitPartitionDef(newListPartition, partTableOid, PART_STRATEGY_LIST); + } /* step 3: insert into pg_partition tuple */ addNewPartitionTuple(pgPartRel, /* RelationData pointer for pg_partition */ newListPartition, /* PartitionData pointer for partition */ - NULL, /* */ + subpartition_key, /* */ NULL, (Datum)0, /* interval*/ boundaryValue, /* max values */ (Datum)0, /* transition point */ reloptions); - relation = relation_open(partTableOid, NoLock); - PartitionCloseSmgr(newListPartition); - - partitionClose(relation, newListPartition, NoLock); - relation_close(relation, NoLock); + if (isSubpartition) { + PartitionCloseSmgr(newListPartition); + Partition part = newListPartition; + if (PartitionIsBucket(newListPartition)) { + part = newListPartition->parent; + bucketClosePartition(newListPartition); + } + PartitionClose(part); + } else { + relation = relation_open(partTableOid, NoLock); + PartitionCloseSmgr(newListPartition); + + partitionClose(relation, newListPartition, NoLock); + relation_close(relation, NoLock); + } return newListPartitionOid; } @@ -6069,6 +6230,10 @@ Oid AddNewIntervalPartition(Relation rel, void* insertTuple) /* add new partition entry in pg_partition */ /* TRANSFORM into target first */ tuple = SearchSysCache1(RELOID, ObjectIdGetDatum(rel->rd_id)); + if (!HeapTupleIsValid(tuple)) { + ereport(ERROR, (errcode(ERRCODE_CACHE_LOOKUP_FAILED), + errmsg("cache lookup failed for relation %u", rel->rd_id))); + } relOptions = SysCacheGetAttr(RELOID, tuple, Anum_pg_class_reloptions, &isNull); oldRelOptions = untransformRelOptions(relOptions); @@ -6112,7 +6277,7 @@ Oid AddNewIntervalPartition(Relation rel, void* insertTuple) Oid HeapAddHashPartition(Relation pgPartRel, Oid partTableOid, Oid partTablespace, Oid bucketOid, HashPartitionDefState* newHashPartDef, Oid ownerid, Datum reloptions, const bool* isTimestamptz, - StorageType storage_type) + StorageType storage_type, int2vector* subpartition_key, bool isSubpartition) { Datum boundaryValue = (Datum)0; Oid newHashPartitionOid = InvalidOid; @@ -6164,17 +6329,21 @@ Oid HeapAddHashPartition(Relation pgPartRel, Oid partTableOid, Oid partTablespac } /* create partition */ - if (u_sess->proc_cxt.IsBinaryUpgrade - && binary_upgrade_is_next_part_pg_partition_oid_valid()) { - newHashPartitionOid = binary_upgrade_get_next_part_pg_partition_oid(); - partrelfileOid = binary_upgrade_get_next_part_pg_partition_rfoid(); - } else { - newHashPartitionOid = GetNewRelFileNode(newPartitionTableSpaceOid, pgPartRel, RELPERSISTENCE_PERMANENT); - } + GetNewPartitionOidAndNewPartrelfileOid(newHashPartDef->subPartitionDefState, &newHashPartitionOid, &partrelfileOid, + pgPartRel, newPartitionTableSpaceOid); + LockPartitionOid(partTableOid, (uint32)newHashPartitionOid, AccessExclusiveLock); + bool forPartitionTable = false; + if (isSubpartition) { /* Level-2 partition of subpartition */ + forPartitionTable = false; + } else if (newHashPartDef->subPartitionDefState != NULL) { /* Level-2 partition of subpartition */ + forPartitionTable = true; + } else { /* Common partition */ + forPartitionTable = false; + } newHashPartition = heapCreatePartition(newHashPartDef->partitionName, - false, + forPartitionTable, newPartitionTableSpaceOid, newHashPartitionOid, partrelfileOid, @@ -6185,23 +6354,37 @@ Oid HeapAddHashPartition(Relation pgPartRel, Oid partTableOid, Oid partTablespac reloptions); Assert(newHashPartitionOid == PartitionGetPartid(newHashPartition)); - InitPartitionDef(newHashPartition, partTableOid, PART_STRATEGY_HASH); + if (isSubpartition) { + InitSubPartitionDef(newHashPartition, partTableOid, PART_STRATEGY_HASH); + } else { + InitPartitionDef(newHashPartition, partTableOid, PART_STRATEGY_HASH); + } /* step 3: insert into pg_partition tuple */ addNewPartitionTuple(pgPartRel, /* RelationData pointer for pg_partition */ newHashPartition, /* PartitionData pointer for partition */ - NULL, /* */ + subpartition_key, /* */ NULL, (Datum)0, /* interval*/ boundaryValue, /* max values */ (Datum)0, /* transition point */ reloptions); - relation = relation_open(partTableOid, NoLock); - PartitionCloseSmgr(newHashPartition); + if (isSubpartition) { + PartitionCloseSmgr(newHashPartition); + Partition part = newHashPartition; + if (PartitionIsBucket(newHashPartition)) { + part = newHashPartition->parent; + bucketClosePartition(newHashPartition); + } + PartitionClose(part); + } else { + relation = relation_open(partTableOid, NoLock); + PartitionCloseSmgr(newHashPartition); - partitionClose(relation, newHashPartition, NoLock); - relation_close(relation, NoLock); + partitionClose(relation, newHashPartition, NoLock); + relation_close(relation, NoLock); + } return newHashPartitionOid; } @@ -6391,6 +6574,172 @@ static void addNewPartitionTupleForTable(Relation pg_partition_rel, const char* } } +bool IsExistDefaultSubpartitionName(List *partitionNameList, char *defaultPartitionName) +{ + ListCell *cell = NULL; + foreach (cell, partitionNameList) { + char *partitionName = (char *)lfirst(cell); + if (!strcmp(partitionName, defaultPartitionName)) { + return true; + } + } + return false; +} + +void MakeDefaultSubpartitionName(PartitionState *partitionState, char** subPartitionName, const char* partitionName) +{ + int numLen = 0; + int subPartitionNameLen = 0; + List *partitionNameList = GetPartitionNameList(partitionState->partitionList); + + for (int i = 1; i < INT32_MAX_VALUE; i++) { + numLen = (int)log10(i) + 1; + subPartitionNameLen = strlen(partitionName) + strlen("_subpartdefault") + numLen + 1; + if (subPartitionNameLen > NAMEDATALEN) { + subPartitionNameLen = strlen("sys_subpartdefault") + numLen + 1; + *subPartitionName = (char *)palloc0(subPartitionNameLen); + errno_t rc = snprintf_s(*subPartitionName, subPartitionNameLen, subPartitionNameLen - 1, + "sys_subpartdefault%d", i); + securec_check_ss(rc, "\0", "\0"); + } else { + *subPartitionName = (char *)palloc0(subPartitionNameLen); + errno_t rc = snprintf_s(*subPartitionName, subPartitionNameLen, subPartitionNameLen - 1, + "%s_subpartdefault%d", partitionName, i); + securec_check_ss(rc, "\0", "\0"); + } + + bool isExist = IsExistDefaultSubpartitionName(partitionNameList, *subPartitionName); + if (isExist) { + pfree_ext(*subPartitionName); + } else { + break; + } + } + list_free_ext(partitionNameList); +} + +ListPartitionDefState *MakeListDefaultSubpartition(PartitionState *partitionState, char *partitionName, + char *tablespacename) +{ + ListPartitionDefState *subPartitionDefState = makeNode(ListPartitionDefState); + MakeDefaultSubpartitionName(partitionState, &subPartitionDefState->partitionName, partitionName); + + Const *boundaryDefault = makeNode(Const); + boundaryDefault->ismaxvalue = true; + boundaryDefault->location = -1; + subPartitionDefState->boundary = list_make1(boundaryDefault); + subPartitionDefState->tablespacename = pstrdup(tablespacename); + return subPartitionDefState; +} + +HashPartitionDefState *MakeHashDefaultSubpartition(PartitionState *partitionState, char *partitionName, + char *tablespacename) +{ + HashPartitionDefState *subPartitionDefState = makeNode(HashPartitionDefState); + MakeDefaultSubpartitionName(partitionState, &subPartitionDefState->partitionName, partitionName); + + Const *boundaryDefault = makeConst(INT4OID, -1, InvalidOid, sizeof(int32), Int32GetDatum(0), false, true); + subPartitionDefState->boundary = list_make1(boundaryDefault); + subPartitionDefState->tablespacename = pstrdup(tablespacename); + return subPartitionDefState; +} + +RangePartitionDefState *MakeRangeDefaultSubpartition(PartitionState *partitionState, char *partitionName, + char *tablespacename) +{ + RangePartitionDefState *subPartitionDefState = makeNode(RangePartitionDefState); + MakeDefaultSubpartitionName(partitionState, &subPartitionDefState->partitionName, partitionName); + + Const *boundaryDefault = makeNode(Const); + boundaryDefault->ismaxvalue = true; + subPartitionDefState->boundary = list_make1(boundaryDefault); + subPartitionDefState->tablespacename = pstrdup(tablespacename); + return subPartitionDefState; +} + +void getSubPartitionInfo(char partitionStrategy, Node *partitionDefState, + List **subPartitionDefState, char **partitionName, char **tablespacename) +{ + if (partitionStrategy == PART_STRATEGY_LIST) { + *subPartitionDefState = ((ListPartitionDefState *)partitionDefState)->subPartitionDefState; + *partitionName = ((ListPartitionDefState *)partitionDefState)->partitionName; + *tablespacename = ((ListPartitionDefState *)partitionDefState)->tablespacename; + } else if (partitionStrategy == PART_STRATEGY_HASH) { + *subPartitionDefState = ((HashPartitionDefState *)partitionDefState)->subPartitionDefState; + *partitionName = ((HashPartitionDefState *)partitionDefState)->partitionName; + *tablespacename = ((HashPartitionDefState *)partitionDefState)->tablespacename; + } else { + *subPartitionDefState = ((RangePartitionDefState *)partitionDefState)->subPartitionDefState; + *partitionName = ((RangePartitionDefState *)partitionDefState)->partitionName; + *tablespacename = ((RangePartitionDefState *)partitionDefState)->tablespacename; + } +} + +Node *MakeDefaultSubpartition(PartitionState *partitionState, Node *partitionDefState) +{ + PartitionState *subPartitionState = partitionState->subPartitionState; + List *subPartitionDefStateList = NIL; + char *partitionName = NULL; + char *tablespacename = NULL; + char partitionStrategy = partitionState->partitionStrategy; + char subPartitionStrategy = subPartitionState->partitionStrategy; + + getSubPartitionInfo(partitionStrategy, partitionDefState, &subPartitionDefStateList, &partitionName, + &tablespacename); + if (subPartitionStrategy == PART_STRATEGY_LIST) { + ListPartitionDefState *subPartitionDefState = + MakeListDefaultSubpartition(partitionState, partitionName, tablespacename); + return (Node *)subPartitionDefState; + } else if (subPartitionStrategy == PART_STRATEGY_HASH) { + HashPartitionDefState *subPartitionDefState = + MakeHashDefaultSubpartition(partitionState, partitionName, tablespacename); + return (Node *)subPartitionDefState; + } else { + RangePartitionDefState *subPartitionDefState = + MakeRangeDefaultSubpartition(partitionState, partitionName, tablespacename); + return (Node *)subPartitionDefState; + } + return NULL; +} + +static void addNewSubPartitionTuplesForPartition(Relation pgPartRel, Oid partTableOid, Oid partTablespace, + Oid bucketOid, Oid ownerid, Datum reloptions, + const bool *isTimestamptz, StorageType storage_type, + PartitionState *partitionState, Node *partitionDefState, + LOCKMODE partLockMode) +{ + if (partitionState->subPartitionState != NULL) { + PartitionState *subPartitionState = partitionState->subPartitionState; + List *subPartitionDefStateList = NIL; + char *partitionName = NULL; + char *tablespacename = NULL; + ListCell *lc = NULL; + char partitionStrategy = partitionState->partitionStrategy; + char subPartitionStrategy = subPartitionState->partitionStrategy; + getSubPartitionInfo(partitionStrategy, partitionDefState, &subPartitionDefStateList, &partitionName, + &tablespacename); + if (subPartitionStrategy == PART_STRATEGY_LIST) { + foreach (lc, subPartitionDefStateList) { + ListPartitionDefState *subPartitionDefState = (ListPartitionDefState *)lfirst(lc); + (void)HeapAddListPartition(pgPartRel, partTableOid, partTablespace, bucketOid, subPartitionDefState, + ownerid, reloptions, isTimestamptz, storage_type, NULL, true); + } + } else if (subPartitionStrategy == PART_STRATEGY_HASH) { + foreach (lc, subPartitionDefStateList) { + HashPartitionDefState *subPartitionDefState = (HashPartitionDefState *)lfirst(lc); + (void)HeapAddHashPartition(pgPartRel, partTableOid, partTablespace, bucketOid, subPartitionDefState, + ownerid, reloptions, isTimestamptz, storage_type, NULL, true); + } + } else { + foreach (lc, subPartitionDefStateList) { + RangePartitionDefState *subPartitionDefState = (RangePartitionDefState *)lfirst(lc); + (void)heapAddRangePartition(pgPartRel, partTableOid, partTablespace, bucketOid, subPartitionDefState, + ownerid, reloptions, isTimestamptz, storage_type, partLockMode, NULL, true); + } + } + } +} + /* * @@GaussDB@@ * Brief : @@ -6445,30 +6794,63 @@ static void addNewPartitionTuplesForPartition(Relation pg_partition_rel, Oid rel Assert(pg_partition_rel); + List *subPartitionKey = NIL; + int2vector* subpartition_key_attr_no = NULL; + if (partTableState->subPartitionState != NULL) { + subPartitionKey = partTableState->subPartitionState->partitionKey; + subpartition_key_attr_no = buildPartitionKey(subPartitionKey, tupledesc); + } + /*insert partition entries into pg_partition*/ foreach (cell, partTableState->partitionList) { if (strategy == PART_STRATEGY_LIST) { - (void)HeapAddListPartition(pg_partition_rel, + ListPartitionDefState* partitionDefState = (ListPartitionDefState*)lfirst(cell); + if (partTableState->subPartitionState != NULL && partitionDefState->subPartitionDefState == NULL) { + Node *subPartitionDefState = MakeDefaultSubpartition(partTableState, (Node *)partitionDefState); + partitionDefState->subPartitionDefState = + lappend(partitionDefState->subPartitionDefState, subPartitionDefState); + } + Oid partitionOid = HeapAddListPartition(pg_partition_rel, relid, reltablespace, bucketOid, - (ListPartitionDefState*)lfirst(cell), + partitionDefState, ownerid, reloptions, isTimestamptz, - storage_type); + storage_type, + subpartition_key_attr_no); + addNewSubPartitionTuplesForPartition( + pg_partition_rel, partitionOid, reltablespace, bucketOid, ownerid, reloptions, isTimestamptz, + storage_type, partTableState, (Node*)partitionDefState, partLockMode); } else if (strategy == PART_STRATEGY_HASH) { - (void)HeapAddHashPartition(pg_partition_rel, + HashPartitionDefState* partitionDefState = (HashPartitionDefState*)lfirst(cell); + if (partTableState->subPartitionState != NULL && partitionDefState->subPartitionDefState == NULL) { + Node *subPartitionDefState = MakeDefaultSubpartition(partTableState, (Node *)partitionDefState); + partitionDefState->subPartitionDefState = + lappend(partitionDefState->subPartitionDefState, subPartitionDefState); + } + Oid partitionOid = HeapAddHashPartition(pg_partition_rel, relid, reltablespace, bucketOid, - (HashPartitionDefState*)lfirst(cell), + partitionDefState, ownerid, reloptions, isTimestamptz, - storage_type); + storage_type, + subpartition_key_attr_no); + addNewSubPartitionTuplesForPartition( + pg_partition_rel, partitionOid, reltablespace, bucketOid, ownerid, reloptions, isTimestamptz, + storage_type, partTableState, (Node*)partitionDefState, partLockMode); } else { - (void)heapAddRangePartition(pg_partition_rel, + RangePartitionDefState* partitionDefState = (RangePartitionDefState*)lfirst(cell); + if (partTableState->subPartitionState != NULL && partitionDefState->subPartitionDefState == NULL) { + Node *subPartitionDefState = MakeDefaultSubpartition(partTableState, (Node *)partitionDefState); + partitionDefState->subPartitionDefState = + lappend(partitionDefState->subPartitionDefState, subPartitionDefState); + } + Oid partitionOid = heapAddRangePartition(pg_partition_rel, relid, reltablespace, bucketOid, @@ -6477,7 +6859,11 @@ static void addNewPartitionTuplesForPartition(Relation pg_partition_rel, Oid rel reloptions, isTimestamptz, storage_type, - partLockMode); + partLockMode, + subpartition_key_attr_no); + addNewSubPartitionTuplesForPartition( + pg_partition_rel, partitionOid, reltablespace, bucketOid, ownerid, reloptions, isTimestamptz, + storage_type, partTableState, (Node*)partitionDefState, partLockMode); } } } @@ -6490,7 +6876,7 @@ void heap_truncate_one_part(Relation rel, Oid partOid) List* partIndexlist = NULL; Relation parentIndex = NULL; mySubid = GetCurrentSubTransactionId(); - MultiXactId multiXid = GetOldestMultiXactId(); + MultiXactId multiXid = GetOldestMultiXactId();; partIndexlist = searchPartitionIndexesByblid(partOid); @@ -6656,6 +7042,25 @@ Oid heapTupleGetPartitionId(Relation rel, void *tuple) return partitionid; } +Oid heapTupleGetSubPartitionId(Relation rel, void *tuple) +{ + Oid partitionId = InvalidOid; + Oid subPartitionId = InvalidOid; + Partition part = NULL; + Relation partRel = NULL; + /* get partititon oid for the record */ + partitionId = heapTupleGetPartitionId(rel, tuple); + part = partitionOpen(rel, partitionId, RowExclusiveLock); + partRel = partitionGetRelation(rel, part); + /* get subpartititon oid for the record */ + subPartitionId = heapTupleGetPartitionId(partRel, tuple); + + releaseDummyRelation(&partRel); + partitionClose(rel, part, RowExclusiveLock); + + return subPartitionId; +} + static bool binary_upgrade_is_next_part_pg_partition_oid_valid() { if (NULL == u_sess->upg_cxt.binary_upgrade_next_part_pg_partition_oid) { @@ -7008,7 +7413,7 @@ char* make_column_map(TupleDesc tuple_desc) * @return: a bool array to indicate the result. The length of array is equal to the number of partition keys. * @Notes: remember to pfree the array. */ -bool* check_partkey_has_timestampwithzone(Relation partTableRel) +bool* CheckPartkeyHasTimestampwithzone(Relation partTableRel, bool isForSubPartition) { Relation pgPartRel = NULL; HeapTuple partitionTableTuple = NULL; @@ -7023,8 +7428,13 @@ bool* check_partkey_has_timestampwithzone(Relation partTableRel) pgPartRel = relation_open(PartitionRelationId, AccessShareLock); - partitionTableTuple = + if (isForSubPartition) { + partitionTableTuple = SearchSysCache1(PARTRELID, ObjectIdGetDatum(partTableRel->rd_id)); + } else { + partitionTableTuple = searchPgPartitionByParentIdCopy(PART_OBJ_TYPE_PARTED_TABLE, ObjectIdGetDatum(partTableRel->rd_id)); + } + if (NULL == partitionTableTuple) { relation_close(pgPartRel, AccessShareLock); ereport(ERROR, @@ -7083,6 +7493,11 @@ bool* check_partkey_has_timestampwithzone(Relation partTableRel) } } + if (isForSubPartition) + ReleaseSysCache(partitionTableTuple); + else + heap_freetuple_ext(partitionTableTuple); + relation_close(pgPartRel, AccessShareLock); return isTimestamptz; } diff --git a/src/common/backend/catalog/index.cpp b/src/common/backend/catalog/index.cpp index 5c5a4cf8a..f2312132b 100644 --- a/src/common/backend/catalog/index.cpp +++ b/src/common/backend/catalog/index.cpp @@ -5,6 +5,7 @@ * * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -2301,6 +2302,24 @@ void index_update_stats( heap_close(pg_class, RowExclusiveLock); } +static Relation part_get_parent(Partition rel) +{ + Oid parentOid = InvalidOid; + Relation parent = NULL; + + Assert(rel != NULL); + + if (PartitionIsTableSubPartition(rel)) { + parentOid = partid_get_parentid(rel->pd_part->parentid); + parent = relation_open(parentOid, NoLock); + } else { + parent = relation_open(rel->pd_part->parentid, NoLock); + } + parentOid = partid_get_parentid(rel->pd_part->parentid); + + return parent; +} + static void partition_index_update_stats( Partition rel, bool hasindex, bool isprimary, Oid reltoastidxid, Oid relcudescidx, double reltuples) { @@ -2310,7 +2329,7 @@ static void partition_index_update_stats( HeapTuple tuple; Form_pg_partition rd_rel; bool dirty = false; - Relation parent = relation_open(rel->pd_part->parentid, NoLock); + Relation parent = part_get_parent(rel); /* * We always update the pg_class row using a non-transactional, @@ -2347,7 +2366,6 @@ static void partition_index_update_stats( * updated reltuples count, because that would bollix the * reltuples/relpages ratio which is what's really important. */ - pg_partition = heap_open(PartitionRelationId, RowExclusiveLock); /* @@ -2409,8 +2427,6 @@ static void partition_index_update_stats( BlockNumber relpages = PartitionGetNumberOfBlocks(parent, rel); BlockNumber relallvisible; - Relation partRel = partitionGetRelation(parent, rel); - if (rd_rel->parttype != PART_OBJ_TYPE_INDEX_PARTITION) { relallvisible = visibilitymap_count(parent, rel); } else /* don't bother for indexes */ @@ -2430,8 +2446,6 @@ static void partition_index_update_stats( rd_rel->relallvisible = (int32)relallvisible; dirty = true; } - - releaseDummyRelation(&partRel); } #ifdef PGXC } @@ -2474,6 +2488,7 @@ static void index_build_bucketstorage_main(const BgWorkerContext *bwc) IndexBucketShared *ibshared = (IndexBucketShared *)bwc->bgshared; Relation heapRel = heap_open(ibshared->heaprelid, NoLock); Relation indexRel = index_open(ibshared->indexrelid, NoLock); + IndexInfo* indexInfo = NULL; oidvector *bucketlist = searchHashBucketByOid(indexRel->rd_bucketoid); MemoryContext indexbuildContext = NULL; MemoryContext old_context = NULL; @@ -2499,9 +2514,10 @@ static void index_build_bucketstorage_main(const BgWorkerContext *bwc) bucketid = bucketlist->values[bucketid]; Relation indexBucketRel = bucketGetRelation(indexRel, indexPart, bucketid); Relation heapBucketRel = bucketGetRelation(heapRel, heapPart, bucketid); + indexInfo = BuildIndexInfo(indexBucketRel); old_context = MemoryContextSwitchTo(indexbuildContext); - IndexBuildResult* results = index_build_storage(heapBucketRel, indexBucketRel, &ibshared->indexInfo); + IndexBuildResult* results = index_build_storage(heapBucketRel, indexBucketRel, indexInfo); indexTuples += results->index_tuples; heapTuples += results->heap_tuples; @@ -2526,7 +2542,7 @@ static void index_build_bucketstorage_main(const BgWorkerContext *bwc) MemoryContextDelete(indexbuildContext); } -static IndexBuildResult* index_build_bucketstorage_end(IndexBucketShared *ibshared, IndexInfo* indexInfo) +static IndexBuildResult* index_build_bucketstorage_end(IndexBucketShared *ibshared) { BgworkerListWaitFinish(&ibshared->nparticipants); @@ -2539,14 +2555,13 @@ static IndexBuildResult* index_build_bucketstorage_end(IndexBucketShared *ibshar stats->index_tuples += ibshared->indresult.index_tuples; stats->heap_tuples += ibshared->indresult.heap_tuples; - *indexInfo = ibshared->indexInfo; BgworkerListSyncQuit(); return stats; } static IndexBuildResult* index_build_bucketstorage_parallel(Relation heapRelation, Relation indexRelation, - Partition heapPartition, Partition indexPartition, IndexInfo* indexInfo, int parallel_workers) + Partition heapPartition, Partition indexPartition, int parallel_workers) { IndexBucketShared *ibshared; @@ -2558,12 +2573,11 @@ static IndexBuildResult* index_build_bucketstorage_parallel(Relation heapRelatio ibshared->indexrelid = RelationGetRelid(indexRelation); ibshared->heappartid = heapPartition ? PartitionGetPartid(heapPartition) : InvalidOid; ibshared->indexpartid = indexPartition ? PartitionGetPartid(indexPartition) : InvalidOid; - ibshared->indexInfo = *indexInfo; ibshared->nparticipants = parallel_workers; SpinLockInit(&ibshared->mutex); LaunchBackgroundWorkers(parallel_workers, ibshared, index_build_bucketstorage_main, NULL); - IndexBuildResult* stats = index_build_bucketstorage_end(ibshared, indexInfo); + IndexBuildResult* stats = index_build_bucketstorage_end(ibshared); return stats; } @@ -2581,7 +2595,6 @@ static IndexBuildResult* index_build_bucketstorage(Relation heapRelation, Relati indexRelation, heapPartition, indexPartition, - indexInfo, parallel_workers); if (stats != NULL) { return stats; @@ -2620,14 +2633,32 @@ void UpdateStatsForGlobalIndex( foreach (partitionCell, partitionOidList) { partitionOid = lfirst_oid(partitionCell); partition = partitionOpen(heapRelation, partitionOid, ShareLock); - partition_index_update_stats(partition, - true, - isPrimary, - (heapRelation->rd_rel->relkind == RELKIND_TOASTVALUE) ? RelationGetRelid(indexRelation) : InvalidOid, - cudescIdxOid, - (stats->all_part_tuples != NULL) ? stats->all_part_tuples[partitionIdx] : 0); - partitionClose(heapRelation, partition, NoLock); - partitionIdx++; + if (RelationIsSubPartitioned(heapRelation)) { + Relation partRel = partitionGetRelation(heapRelation, partition); + List* subPartitionOidList = relationGetPartitionOidList(partRel); + ListCell* subPartitionCell = NULL; + foreach (subPartitionCell, subPartitionOidList) { + Oid subPartitionOid = lfirst_oid(subPartitionCell); + Partition subPart = partitionOpen(partRel, subPartitionOid, ShareLock); + partition_index_update_stats( + subPart, true, isPrimary, + (heapRelation->rd_rel->relkind == RELKIND_TOASTVALUE) ? RelationGetRelid(indexRelation) + : InvalidOid, + cudescIdxOid, (stats->all_part_tuples != NULL) ? stats->all_part_tuples[partitionIdx] : 0); + partitionClose(partRel, subPart, NoLock); + partitionIdx++; + } + releasePartitionOidList(&subPartitionOidList); + releaseDummyRelation(&partRel); + partitionClose(heapRelation, partition, ShareLock); + } else { + partition_index_update_stats( + partition, true, isPrimary, + (heapRelation->rd_rel->relkind == RELKIND_TOASTVALUE) ? RelationGetRelid(indexRelation) : InvalidOid, + cudescIdxOid, (stats->all_part_tuples != NULL) ? stats->all_part_tuples[partitionIdx] : 0); + partitionClose(heapRelation, partition, NoLock); + partitionIdx++; + } } releasePartitionOidList(&partitionOidList); index_update_stats(heapRelation, @@ -2680,6 +2711,8 @@ void index_build(Relation heapRelation, Partition heapPartition, Relation indexR Assert(RelationIsValid(indexRelation)); Assert(PointerIsValid(indexRelation->rd_am)); + Oid parentOid = partid_get_parentid(RelationGetRelid(heapRelation)); + /* * Determine worker process details for parallel CREATE INDEX. Currently, * only btree has support for parallel builds. @@ -2695,8 +2728,16 @@ void index_build(Relation heapRelation, Partition heapPartition, Relation indexR indexInfo->ii_ParallelWorkers = RELATION_OWN_BUCKET(heapRelation) ? parallel_workers : 0; } else if (RelationIsGlobalIndex(indexRelation)) { /* pure global partitioned index */ - int nparts = getPartitionNumber(heapRelation->partMap); + int nparts = 0; + if (RelationIsSubPartitioned(heapRelation)) { + nparts = GetSubPartitionNumber(heapRelation); + } else { + nparts = getPartitionNumber(heapRelation->partMap); + } indexInfo->ii_ParallelWorkers = Min(parallel_workers, nparts); + } else if (parentOid != InvalidOid) { + /* sub-partition */ + indexInfo->ii_ParallelWorkers = 0; } else if (!RELATION_OWN_BUCKET(heapRelation)) { /* plain table or part of table, no extra partition or bucket under it */ indexInfo->ii_ParallelWorkers = plan_create_index_workers(RelationGetRelid(heapRelation)); @@ -3487,30 +3528,29 @@ double IndexBuildUHeapScan(Relation heapRelation, Relation indexRelation, IndexI return reltuples; } -double* GlobalIndexBuildHeapScan(Relation heapRelation, Relation indexRelation, IndexInfo* indexInfo, +double* GetGlobalIndexTuplesForPartition(Relation heapRelation, Relation indexRelation, IndexInfo* indexInfo, IndexBuildCallback callback, void* callbackState) { - ListCell* partitionCell = NULL; + ListCell *partitionCell = NULL; Oid partitionId; Partition partition = NULL; - List* partitionIdList = NIL; + List *partitionIdList = NIL; Relation heapPartRel = NULL; partitionIdList = relationGetPartitionOidList(heapRelation); - double relTuples; int partitionIdx = 0; int partNum = partitionIdList->length; - double* globalIndexTuples = (double*)palloc0(partNum * sizeof(double)); - foreach(partitionCell, partitionIdList) { + double *globalIndexTuples = (double *)palloc0(partNum * sizeof(double)); + foreach (partitionCell, partitionIdList) { partitionId = lfirst_oid(partitionCell); partition = partitionOpen(heapRelation, partitionId, ShareLock); heapPartRel = partitionGetRelation(heapRelation, partition); if (RelationIsCrossBucketIndex(indexRelation)) { relTuples = IndexBuildHeapScanCrossBucket(heapPartRel, indexRelation, indexInfo, callback, callbackState); } else { - relTuples = tableam_index_build_scan(heapPartRel, indexRelation, indexInfo, true, callback, callbackState, - NULL); + relTuples = + tableam_index_build_scan(heapPartRel, indexRelation, indexInfo, true, callback, callbackState, NULL); } globalIndexTuples[partitionIdx] = relTuples; releaseDummyRelation(&heapPartRel); @@ -3521,6 +3561,94 @@ double* GlobalIndexBuildHeapScan(Relation heapRelation, Relation indexRelation, return globalIndexTuples; } +List* LockAllGlobalIndexes(Relation relation, LOCKMODE lockmode) +{ + ListCell* cell = NULL; + List* indexRelList = NIL; + List* indexIds = NIL; + + indexIds = RelationGetSpecificKindIndexList(relation, true); + foreach (cell, indexIds) { + Oid indexOid = lfirst_oid(cell); + Relation indexRel = index_open(indexOid, lockmode); + indexRelList = lappend(indexRelList, indexRel); + } + list_free_ext(indexIds); + return indexRelList; +} + +void ReleaseLockAllGlobalIndexes(List** indexRelList, LOCKMODE lockmode) +{ + ListCell* cell = NULL; + foreach (cell, *indexRelList) { + Relation indexRel = (Relation)lfirst(cell); + relation_close(indexRel, lockmode); + } + list_free_ext(*indexRelList); +} + +double* GetGlobalIndexTuplesForSubPartition(Relation heapRelation, Relation indexRelation, IndexInfo* indexInfo, + IndexBuildCallback callback, void* callbackState) +{ + ListCell* partitionCell = NULL; + ListCell* subPartitionCell = NULL; + Oid partitionId = InvalidOid; + Oid subPartitionId = InvalidOid; + Partition partition = NULL; + Partition subPartition = NULL; + List* partitionIdList = NIL; + List* subPartitionIdList = NIL; + Relation heapPartRel = NULL; + Relation heapSubPartRel = NULL; + + partitionIdList = relationGetPartitionOidList(heapRelation); + double relTuples; + int subPartitionIdx = 0; + double* globalIndexTuples = NULL; + foreach(partitionCell, partitionIdList) { + partitionId = lfirst_oid(partitionCell); + partition = partitionOpen(heapRelation, partitionId, ShareLock); + heapPartRel = partitionGetRelation(heapRelation, partition); + subPartitionIdList = relationGetPartitionOidList(heapPartRel); + int subPartNum = subPartitionIdList->length; + if (globalIndexTuples != NULL) { + globalIndexTuples = (double*)repalloc(globalIndexTuples, (subPartitionIdx + subPartNum) * sizeof(double)); + } else { + globalIndexTuples = (double*)palloc0(subPartNum * sizeof(double)); + } + foreach(subPartitionCell, subPartitionIdList) { + subPartitionId = lfirst_oid(subPartitionCell); + subPartition = partitionOpen(heapPartRel, subPartitionId, ShareLock); + heapSubPartRel = partitionGetRelation(heapPartRel, subPartition); + relTuples = + tableam_index_build_scan(heapSubPartRel, indexRelation, indexInfo, true, callback, callbackState, NULL); + globalIndexTuples[subPartitionIdx] = relTuples; + subPartitionIdx++; + releaseDummyRelation(&heapSubPartRel); + partitionClose(heapPartRel, subPartition, NoLock); + } + releaseDummyRelation(&heapPartRel); + partitionClose(heapRelation, partition, ShareLock); + releasePartitionOidList(&subPartitionIdList); + } + releasePartitionOidList(&partitionIdList); + return globalIndexTuples; +} + +double* GlobalIndexBuildHeapScan(Relation heapRelation, Relation indexRelation, IndexInfo* indexInfo, + IndexBuildCallback callback, void* callbackState) +{ + double* globalIndexTuples = NULL; + if (RelationIsSubPartitioned(heapRelation)) { + globalIndexTuples = + GetGlobalIndexTuplesForSubPartition(heapRelation, indexRelation, indexInfo, callback, callbackState); + } else { + globalIndexTuples = + GetGlobalIndexTuplesForPartition(heapRelation, indexRelation, indexInfo, callback, callbackState); + } + return globalIndexTuples; +} + double IndexBuildHeapScanCrossBucket(Relation heapRelation, Relation indexRelation, IndexInfo *indexInfo, IndexBuildCallback callback, void *callbackState) { @@ -4244,7 +4372,11 @@ void ReindexGlobalIndexInternal(Relation heapRelation, Relation iRel, IndexInfo* { List* partitionList = NULL; /* We'll open any partition of relation by partition OID and lock it */ - partitionList = relationGetPartitionList(heapRelation, ShareLock); + if (RelationIsSubPartitioned(heapRelation)) { + partitionList = RelationGetSubPartitionList(heapRelation, ShareLock); + } else { + partitionList = relationGetPartitionList(heapRelation, ShareLock); + } /* We'll build a new physical relation for the index */ RelationSetNewRelfilenode(iRel, InvalidTransactionId, InvalidMultiXactId); @@ -5598,6 +5730,8 @@ void AddGPIForPartition(Oid partTableOid, Oid partOid) List* indexRelList = NIL; List* indexInfoList = NIL; ListCell* cell = NULL; + ListCell* lc1 = NULL; + ListCell* lc2 = NULL; partTableRel = heap_open(partTableOid, AccessShareLock); part = partitionOpen(partTableRel, partOid, AccessExclusiveLock); @@ -5615,10 +5749,12 @@ void AddGPIForPartition(Oid partTableOid, Oid partOid) ScanPartitionInsertIndex(partTableRel, partRel, indexRelList, indexInfoList); - foreach (cell, indexRelList) { - Relation indexRel = (Relation)lfirst(cell); + forboth (lc1, indexRelList, lc2, indexInfoList) { + Relation indexRel = (Relation)lfirst(lc1); + IndexInfo* indexInfo = (IndexInfo*)lfirst(lc2); relation_close(indexRel, RowExclusiveLock); + pfree_ext(indexInfo); } list_free_ext(indexList); @@ -5632,11 +5768,67 @@ void AddGPIForPartition(Oid partTableOid, Oid partOid) /* * @@GaussDB@@ - * Target : This routine is used to scan partition tuples and elete them from all global partition indexes. + * Target : This routine is used to inserts the partition tuples into all global partition indexes. * Brief : * Description : * Notes : */ +void AddGPIForSubPartition(Oid partTableOid, Oid partOid, Oid subPartOid) +{ + Relation partTableRel = NULL; + Relation partRel = NULL; + Partition part = NULL; + Relation subPartRel = NULL; + Partition subPart = NULL; + List* indexList = NIL; + List* indexRelList = NIL; + List* indexInfoList = NIL; + ListCell* cell = NULL; + ListCell* lc1 = NULL; + ListCell* lc2 = NULL; + + partTableRel = heap_open(partTableOid, AccessShareLock); + part = partitionOpen(partTableRel, partOid, AccessShareLock); + partRel = partitionGetRelation(partTableRel, part); + subPart = partitionOpen(partRel, subPartOid, AccessExclusiveLock); + subPartRel = partitionGetRelation(partRel, subPart); + indexList = RelationGetSpecificKindIndexList(partTableRel, true); + + foreach (cell, indexList) { + Oid indexOid = lfirst_oid(cell); + Relation indexRel = relation_open(indexOid, RowExclusiveLock); + IndexInfo* indexInfo = BuildIndexInfo(indexRel); + + indexRelList = lappend(indexRelList, indexRel); + indexInfoList = lappend(indexInfoList, indexInfo); + } + + ScanPartitionInsertIndex(partTableRel, subPartRel, indexRelList, indexInfoList); + + forboth (lc1, indexRelList, lc2, indexInfoList) { + Relation indexRel = (Relation)lfirst(lc1); + IndexInfo* indexInfo = (IndexInfo*)lfirst(lc2); + + relation_close(indexRel, RowExclusiveLock); + pfree_ext(indexInfo); + } + + + list_free_ext(indexList); + list_free_ext(indexRelList); + list_free_ext(indexInfoList); + + releaseDummyRelation(&subPartRel); + partitionClose(partRel, subPart, NoLock); + releaseDummyRelation(&partRel); + partitionClose(partTableRel, part, NoLock); + heap_close(partTableRel, NoLock); +} + +/* + * @@GaussDB@@ + * Target : This routine is used to scan partition tuples and elete them from all global partition indexes. + */ void ScanPartitionDeleteGPITuples(Relation partTableRel, Relation partRel, const List* indexRelList, const List* indexInfoList) { @@ -5704,10 +5896,7 @@ void ScanPartitionDeleteGPITuples(Relation partTableRel, Relation partRel, const /* * @@GaussDB@@ - * Target : This routine is used to delete the partition tuples from all global partition indexes. - * Brief : - * Description : - * Notes : + * Target : This routine is used to delete the partition tuples from all global partition indexes. */ void DeleteGPITuplesForPartition(Oid partTableOid, Oid partOid) { @@ -5750,6 +5939,60 @@ void DeleteGPITuplesForPartition(Oid partTableOid, Oid partOid) heap_close(partTableRel, NoLock); } +/* + * @@GaussDB@@ + * Target : This routine is used to delete the partition tuples from all global partition indexes. + * Brief : + * Description : + * Notes : + */ +void DeleteGPITuplesForSubPartition(Oid partTableOid, Oid partOid, Oid subPartOid) +{ + Relation partTableRel = NULL; + Relation partRel = NULL; + Partition part = NULL; + Relation subPartRel = NULL; + Partition subPart = NULL; + List* indexList = NIL; + List* indexRelList = NIL; + List* indexInfoList = NIL; + ListCell* cell = NULL; + + partTableRel = heap_open(partTableOid, AccessShareLock); + part = partitionOpen(partTableRel, partOid, AccessShareLock); + partRel = partitionGetRelation(partTableRel, part); + subPart = partitionOpen(partRel, subPartOid, AccessExclusiveLock); + subPartRel = partitionGetRelation(partRel, subPart); + indexList = RelationGetSpecificKindIndexList(partTableRel, true); + + foreach (cell, indexList) { + Oid indexOid = lfirst_oid(cell); + Relation indexRel = relation_open(indexOid, RowExclusiveLock); + IndexInfo* indexInfo = BuildIndexInfo(indexRel); + + indexRelList = lappend(indexRelList, indexRel); + indexInfoList = lappend(indexInfoList, indexInfo); + } + + ScanPartitionDeleteGPITuples(partTableRel, subPartRel, indexRelList, indexInfoList); + + foreach (cell, indexRelList) { + Relation indexRel = (Relation)lfirst(cell); + + relation_close(indexRel, RowExclusiveLock); + } + + list_free_ext(indexList); + list_free_ext(indexRelList); + list_free_ext(indexInfoList); + + releaseDummyRelation(&subPartRel); + partitionClose(partRel, subPart, NoLock); + releaseDummyRelation(&partRel); + partitionClose(partTableRel, part, NoLock); + heap_close(partTableRel, NoLock); +} + void mergeBTreeIndexes(List* mergingBtreeIndexes, List* srcPartMergeOffset, int2 bktId) { Relation targetIndexRelation = NULL; diff --git a/src/common/backend/catalog/information_schema.sql b/src/common/backend/catalog/information_schema.sql index a1603c60d..7d1a8373b 100644 --- a/src/common/backend/catalog/information_schema.sql +++ b/src/common/backend/catalog/information_schema.sql @@ -527,7 +527,8 @@ CREATE VIEW column_domain_usage AS AND a.attrelid = c.oid AND a.atttypid = t.oid AND t.typtype = 'd' - AND c.relkind IN ('r', 'v', 'f') + AND c.relkind IN ('r', 'm', 'v', 'f') + AND (c.relname not like 'mlog_%' AND c.relname not like 'matviewmap_%') AND a.attnum > 0 AND NOT a.attisdropped AND pg_has_role(t.typowner, 'USAGE'); @@ -566,7 +567,7 @@ CREATE VIEW column_privileges AS pr_c.relowner FROM (SELECT oid, relname, relnamespace, relowner, (aclexplode(coalesce(relacl, acldefault('r', relowner)))).* FROM pg_class - WHERE relkind IN ('r', 'v', 'f') + WHERE relkind IN ('r', 'm', 'v', 'f') ) pr_c (oid, relname, relnamespace, relowner, grantor, grantee, prtype, grantable), pg_attribute a WHERE a.attrelid = pr_c.oid @@ -588,7 +589,7 @@ CREATE VIEW column_privileges AS ) pr_a (attrelid, attname, grantor, grantee, prtype, grantable), pg_class c WHERE pr_a.attrelid = c.oid - AND relkind IN ('r', 'v', 'f') + AND relkind IN ('r', 'm', 'v', 'f') ) x, pg_namespace nc, pg_authid u_grantor, @@ -602,6 +603,7 @@ CREATE VIEW column_privileges AS AND x.grantee = grantee.oid AND x.grantor = u_grantor.oid AND x.prtype IN ('INSERT', 'SELECT', 'UPDATE', 'REFERENCES', 'COMMENT') + AND (x.relname not like 'mlog_%' AND x.relname not like 'matviewmap_%') AND (pg_has_role(u_grantor.oid, 'USAGE') OR pg_has_role(grantee.oid, 'USAGE') OR grantee.rolname = 'PUBLIC'); @@ -631,7 +633,8 @@ CREATE VIEW column_udt_usage AS WHERE a.attrelid = c.oid AND a.atttypid = t.oid AND nc.oid = c.relnamespace - AND a.attnum > 0 AND NOT a.attisdropped AND c.relkind in ('r', 'v', 'f') + AND a.attnum > 0 AND NOT a.attisdropped AND c.relkind in ('r', 'm', 'v', 'f') + AND (c.relname not like 'mlog_%' AND c.relname not like 'matviewmap_%') AND pg_has_role(coalesce(bt.typowner, t.typowner), 'USAGE'); GRANT SELECT ON column_udt_usage TO PUBLIC; @@ -756,7 +759,9 @@ CREATE VIEW columns AS WHERE (NOT pg_is_other_temp_schema(nc.oid)) - AND a.attnum > 0 AND NOT a.attisdropped AND c.relkind in ('r', 'v', 'f') + AND a.attnum > 0 AND NOT a.attisdropped AND c.relkind in ('r', 'm', 'v', 'f') + + AND (c.relname not like 'mlog_%' AND c.relname not like 'matviewmap_%') AND (pg_has_role(c.relowner, 'USAGE') OR has_column_privilege(c.oid, a.attnum, @@ -1495,8 +1500,8 @@ CREATE VIEW sequences AS SELECT CAST(current_database() AS sql_identifier) AS sequence_catalog, CAST(nc.nspname AS sql_identifier) AS sequence_schema, CAST(c.relname AS sql_identifier) AS sequence_name, - CAST('bigint' AS character_data) AS data_type, - CAST(64 AS cardinal_number) AS numeric_precision, + CAST('int16' AS character_data) AS data_type, + CAST(128 AS cardinal_number) AS numeric_precision, CAST(2 AS cardinal_number) AS numeric_precision_radix, CAST(0 AS cardinal_number) AS numeric_scale, -- XXX: The following could be improved if we had LATERAL. @@ -1507,7 +1512,7 @@ CREATE VIEW sequences AS CAST(CASE WHEN (pg_sequence_parameters(c.oid)).cycle_option THEN 'YES' ELSE 'NO' END AS yes_or_no) AS cycle_option FROM pg_namespace nc, pg_class c WHERE c.relnamespace = nc.oid - AND c.relkind = 'S' + AND (c.relkind = 'L' or c.relkind = 'S') AND (NOT pg_is_other_temp_schema(nc.oid)) AND (pg_has_role(c.relowner, 'USAGE') OR has_sequence_privilege(c.oid, 'SELECT, UPDATE, USAGE') ); @@ -1818,11 +1823,13 @@ CREATE VIEW table_privileges AS ) AS grantee (oid, rolname) WHERE c.relnamespace = nc.oid - AND c.relkind IN ('r', 'v') + AND c.relkind IN ('r', 'm', 'v') + AND (c.relname not like 'mlog_%' AND c.relname not like 'matviewmap_%') AND c.grantee = grantee.oid AND c.grantor = u_grantor.oid - AND c.prtype IN ('INSERT', 'SELECT', 'UPDATE', 'DELETE', 'TRUNCATE', 'REFERENCES', 'TRIGGER' , - 'ALTER', 'DROP', 'COMMENT', 'INDEX', 'VACUUM') + AND (c.prtype IN ('INSERT', 'SELECT', 'UPDATE', 'DELETE', 'TRUNCATE', 'REFERENCES', 'TRIGGER') + OR c.prtype IN ('ALTER', 'DROP', 'COMMENT', 'INDEX', 'VACUUM') + ) AND (pg_has_role(u_grantor.oid, 'USAGE') OR pg_has_role(grantee.oid, 'USAGE') OR grantee.rolname = 'PUBLIC'); @@ -1864,6 +1871,7 @@ CREATE VIEW tables AS CAST( CASE WHEN nc.oid = pg_my_temp_schema() THEN 'LOCAL TEMPORARY' WHEN c.relkind = 'r' THEN 'BASE TABLE' + WHEN c.relkind = 'm' THEN 'MATERIALIZED VIEW' WHEN c.relkind = 'v' THEN 'VIEW' WHEN c.relkind = 'f' THEN 'FOREIGN TABLE' ELSE null END @@ -1887,7 +1895,8 @@ CREATE VIEW tables AS FROM pg_namespace nc JOIN pg_class c ON (nc.oid = c.relnamespace) LEFT JOIN (pg_type t JOIN pg_namespace nt ON (t.typnamespace = nt.oid)) ON (c.reloftype = t.oid) - WHERE c.relkind IN ('r', 'v', 'f') + WHERE c.relkind IN ('r', 'm', 'v', 'f') + AND (c.relname not like 'mlog_%' AND c.relname not like 'matviewmap_%') AND (NOT pg_is_other_temp_schema(nc.oid)) AND (pg_has_role(c.relowner, 'USAGE') OR has_table_privilege(c.oid, 'SELECT, INSERT, UPDATE, DELETE, TRUNCATE, REFERENCES, TRIGGER') @@ -2256,7 +2265,7 @@ CREATE VIEW usage_privileges AS ) AS grantee (oid, rolname) WHERE c.relnamespace = n.oid - AND c.relkind = 'S' + AND (c.relkind = 'S' or c.relkind = 'L') AND c.grantee = grantee.oid AND c.grantor = u_grantor.oid AND c.prtype IN ('USAGE') @@ -2366,7 +2375,8 @@ CREATE VIEW view_column_usage AS AND dt.refclassid = 'pg_catalog.pg_class'::regclass AND dt.refobjid = t.oid AND t.relnamespace = nt.oid - AND t.relkind IN ('r', 'v', 'f') + AND t.relkind IN ('r', 'm', 'v', 'f') + AND (t.relname not like 'mlog_%' AND t.relname not like 'matviewmap_%') AND t.oid = a.attrelid AND dt.refobjsubid = a.attnum AND pg_has_role(t.relowner, 'USAGE'); @@ -2436,7 +2446,8 @@ CREATE VIEW view_table_usage AS AND dt.refclassid = 'pg_catalog.pg_class'::regclass AND dt.refobjid = t.oid AND t.relnamespace = nt.oid - AND t.relkind IN ('r', 'v', 'f') + AND t.relkind IN ('r', 'm', 'v', 'f') + AND (t.relname not like 'mlog_%' AND t.relname not like 'matviewmap_%') AND pg_has_role(t.relowner, 'USAGE'); GRANT SELECT ON view_table_usage TO PUBLIC; @@ -2582,7 +2593,8 @@ CREATE VIEW element_types AS a.attnum, a.atttypid, a.attcollation FROM pg_class c, pg_attribute a WHERE c.oid = a.attrelid - AND c.relkind IN ('r', 'v', 'f', 'c') + AND c.relkind IN ('r', 'm', 'v', 'f', 'c') + AND (c.relname not like 'mlog_%' AND c.relname not like 'matviewmap_%') AND attnum > 0 AND NOT attisdropped UNION ALL diff --git a/src/common/backend/catalog/namespace.cpp b/src/common/backend/catalog/namespace.cpp index 2dd87be35..18104d7a7 100644 --- a/src/common/backend/catalog/namespace.cpp +++ b/src/common/backend/catalog/namespace.cpp @@ -11,6 +11,7 @@ * * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * IDENTIFICATION * src/common/backend/catalog/namespace.cpp @@ -70,6 +71,7 @@ #include "utils/memutils.h" #include "utils/syscache.h" #include "utils/snapmgr.h" +#include "utils/pl_package.h" #include "tcop/utility.h" #include "nodes/nodes.h" #include "c.h" @@ -79,7 +81,7 @@ #ifdef ENABLE_MULTIPLE_NODES #include "streaming/planner.h" #endif - +#define MAXSTRLEN ((1 << 11) - 1) /* * The namespace search path is a possibly-empty list of namespace OIDs. * In addition to the explicit list, implicitly-searched namespaces @@ -160,7 +162,9 @@ static bool CheckTSObjectVisible(NameData name, SysCacheIdentifier id, Oid nmspa static bool InitTempTblNamespace(); static void CheckTempTblAlias(); static Oid GetTSObjectOid(const char* objname, SysCacheIdentifier id); - +static FuncCandidateList FuncnameAddCandidates(FuncCandidateList resultList, HeapTuple procTup, List* argNames, + Oid namespaceId, Oid objNsp, int nargs, CatCList* catList, bool expandVariadic, bool expandDefaults, + bool includeOut, Oid refSynOid, bool enable_outparam_override = false); #ifdef ENABLE_UT void dropExistTempNamespace(char* namespaceName); #else @@ -796,6 +800,21 @@ Oid TypenameGetTypid(const char *typname) return TypenameGetTypidExtended(typname, true); } +Oid TryLookForSynonymType(const char* typname, const Oid namespaceId) +{ + Oid typid = InvalidOid; + RangeVar* objVar = SearchReferencedObject(typname, namespaceId); + if (objVar != NULL) { + char* synTypname = objVar->relname; + Oid objNamespaceOid = get_namespace_oid(objVar->schemaname, true); + ereport(DEBUG3, (errmodule(MOD_PARSER), + errmsg("Found synonym %s in namespace %ud", synTypname, objNamespaceOid))); + typid = GetSysCacheOid2(TYPENAMENSP, PointerGetDatum(synTypname), ObjectIdGetDatum(objNamespaceOid)); + } + pfree_ext(objVar); + return typid; +} + /* * TypenameGetTypidExtended * Try to resolve an unqualified datatype name. @@ -820,6 +839,10 @@ Oid TypenameGetTypidExtended(const char* typname, bool temp_ok) continue; typid = GetSysCacheOid2(TYPENAMENSP, PointerGetDatum(typname), ObjectIdGetDatum(namespaceId)); + if (!OidIsValid(typid)) { + typid = TryLookForSynonymType(typname, namespaceId); + } + if (OidIsValid(typid)) { list_free_ext(tempActiveSearchPath); return typid; @@ -896,10 +919,13 @@ bool TypeIsVisible(Oid typid) static FuncCandidateList FuncnameAddCandidates(FuncCandidateList resultList, HeapTuple procTup, List* argNames, Oid namespaceId, Oid objNsp, int nargs, CatCList* catList, bool expandVariadic, bool expandDefaults, - bool includeOut, Oid refSynOid) + bool includeOut, Oid refSynOid, bool enable_outparam_override) { Form_pg_proc procForm = (Form_pg_proc)GETSTRUCT(procTup); - int proNargs = procForm->pronargs; +#ifndef ENABLE_MULTIPLE_NODES + oidvector* allArgTypes = NULL; +#endif + int proNargs = -1; int effectiveNargs; int pathPos = 0; bool variadic = false; @@ -908,6 +934,33 @@ static FuncCandidateList FuncnameAddCandidates(FuncCandidateList resultList, Hea Oid vaElemType; int* argNumbers = NULL; FuncCandidateList newResult; + bool isNull = false; + +#ifndef ENABLE_MULTIPLE_NODES + if (enable_outparam_override) { + Datum argTypes = ProcedureGetAllArgTypes(procTup, &isNull); + if (!isNull) { + allArgTypes = (oidvector *)PG_DETOAST_DATUM(argTypes); + proNargs = allArgTypes->dim1; + + // For compatiable with the non-A special cases, for example function with out + // param can't be called by SQL in A, but some of these are stilled called by + // such as gsql in SQL. + Datum pprokind = SysCacheGetAttr(PROCOID, procTup, Anum_pg_proc_prokind, &isNull); + if ((!isNull && PROC_IS_FUNC(pprokind)) || isNull) { + proNargs = procForm->pronargs; + allArgTypes = NULL; + includeOut = false; + } + } else { + proNargs = procForm->pronargs; + } + } else { + proNargs = procForm->pronargs; + } +#else + proNargs = procForm->pronargs; +#endif if (OidIsValid(namespaceId)) { /* Consider only procs in specified namespace */ @@ -934,12 +987,15 @@ static FuncCandidateList FuncnameAddCandidates(FuncCandidateList resultList, Hea } Datum proAllArgTypes; - Datum packageOidDatum; - bool isNull = false; + Datum packageOidDatum; ArrayType* arr = NULL; int numProcAllArgs = proNargs; packageOidDatum = SysCacheGetAttr(PROCOID, procTup, Anum_pg_proc_packageid, &isNull); +#ifndef ENABLE_MULTIPLE_NODES + if (!enable_outparam_override && includeOut) { +#else if (includeOut) { +#endif proAllArgTypes = SysCacheGetAttr(PROCOID, procTup, Anum_pg_proc_proallargtypes, &isNull); if (!isNull) { @@ -1049,13 +1105,26 @@ static FuncCandidateList FuncnameAddCandidates(FuncCandidateList resultList, Hea /* record the referenced synonym oid for building view dependency. */ newResult->refSynOid = refSynOid; - Oid* proargtypes = NULL; + Oid* proargtypes = NULL; +#ifndef ENABLE_MULTIPLE_NODES + if (!enable_outparam_override || allArgTypes == NULL) { + if (!includeOut || arr == NULL) { + oidvector* proargs = ProcedureGetArgTypes(procTup); + proargtypes = proargs->values; + } else { + proargtypes = (Oid*)ARR_DATA_PTR(arr); + } + } else { + proargtypes = allArgTypes->values; + } +#else if (!includeOut) { oidvector* proargs = ProcedureGetArgTypes(procTup); proargtypes = proargs->values; } else { proargtypes = (Oid*)ARR_DATA_PTR(arr); } +#endif if (argNumbers != NULL) { /* Re-order the argument types into call's logical order */ @@ -1264,26 +1333,37 @@ static FuncCandidateList FuncnameAddCandidates(FuncCandidateList resultList, Hea * such an entry it should react as though the call were ambiguous. */ FuncCandidateList FuncnameGetCandidates(List* names, int nargs, List* argnames, bool expand_variadic, - bool expand_defaults, bool func_create, bool include_out) + bool expand_defaults, bool func_create, bool include_out, char expect_prokind) { FuncCandidateList resultList = NULL; char* schemaname = NULL; char* funcname = NULL; Oid namespaceId; - CatCList* catlist = NULL; char* pkgname = NULL; int i; bool isNull; Oid funcoid; Oid caller_pkg_oid = InvalidOid; - if (u_sess->plsql_cxt.plpgsql_curr_compile_package != NULL) { - caller_pkg_oid = u_sess->plsql_cxt.plpgsql_curr_compile_package->pkg_oid; + Oid initNamesapceId = InvalidOid; + bool enable_outparam_override = false; + +#ifndef ENABLE_MULTIPLE_NODES + enable_outparam_override = enable_out_param_override(); + if (enable_outparam_override) { + include_out = true; + } +#endif + + if (u_sess->plsql_cxt.curr_compile_context != NULL && + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package != NULL) { + caller_pkg_oid = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->pkg_oid; } else { caller_pkg_oid = u_sess->plsql_cxt.running_pkg_oid; } /* check for caller error */ Assert(nargs >= 0 || !(expand_variadic || expand_defaults)); + /* deconstruct the name list */ DeconstructQualifiedName(names, &schemaname, &funcname, &pkgname); if (schemaname != NULL) { @@ -1293,33 +1373,34 @@ FuncCandidateList FuncnameGetCandidates(List* names, int nargs, List* argnames, else /* use exact schema given */ namespaceId = LookupExplicitNamespace(schemaname); - } else if (OidIsValid(caller_pkg_oid)) { - HeapTuple pkgtup = SearchSysCache1(PACKAGEOID, ObjectIdGetDatum(caller_pkg_oid)); - if (!HeapTupleIsValid(pkgtup)) { - ereport(ERROR, - (errmodule(MOD_PLSQL), errcode(ERRCODE_CACHE_LOOKUP_FAILED), - errmsg("cache lookup failed for package %u, while compile package", caller_pkg_oid), - errdetail("cache lookup failed"), - errcause("System error"), - erraction("Drop and rebuild package"))); - } - Form_gs_package packageform = (Form_gs_package)GETSTRUCT(pkgtup); - namespaceId = packageform->pkgnamespace; - ReleaseSysCache(pkgtup); } else { /* flag to indicate we need namespace search */ namespaceId = InvalidOid; recomputeNamespacePath(); } + initNamesapceId = namespaceId; /* Step1. search syscache by name only and add candidates from pg_proc */ + CatCList* catlist = NULL; catlist = SearchSysCacheList1(PROCNAMEARGSNSP, CStringGetDatum(funcname)); for (i = 0; i < catlist->n_members; i++) { + namespaceId = initNamesapceId; HeapTuple proctup = &catlist->members[i]->tuple; if (!OidIsValid(HeapTupleGetOid(proctup)) || !HeapTupleIsValid(proctup)) { continue; } + +#ifndef ENABLE_MULTIPLE_NODES + Datum pprokind = SysCacheGetAttr(PROCOID, proctup, Anum_pg_proc_prokind, &isNull); + if (!isNull) { + char prokind = CharGetDatum(pprokind); + if (!PROC_IS_UNKNOWN(expect_prokind) && prokind != expect_prokind) { + continue; + } + } +#endif + /* judge the function in package is called by a function in same package or another package. if it's called by another package,it will continue*/ funcoid = HeapTupleGetOid(proctup); @@ -1343,17 +1424,15 @@ FuncCandidateList FuncnameGetCandidates(List* names, int nargs, List* argnames, if (pkg_oid != package_oid) { continue; } + namespaceId = GetPackageNamespace(pkg_oid); } else if (caller_pkg_oid == package_oid) { - if (pkgname != NULL) { - if (namespaceId == InvalidOid) { - pkg_oid = PackageNameGetOid(pkgname); - } else { - pkg_oid = PackageNameGetOid(pkgname, namespaceId); - } + if (pkgname != NULL) { + pkg_oid = PackageNameGetOid(pkgname, namespaceId); if (pkg_oid != caller_pkg_oid) { continue; } - } + } + namespaceId = GetPackageNamespace(caller_pkg_oid); } } else if (!OidIsValid(package_oid)) { if (pkgname != NULL) { @@ -1373,8 +1452,9 @@ FuncCandidateList FuncnameGetCandidates(List* names, int nargs, List* argnames, expand_variadic, expand_defaults, include_out, - InvalidOid); - continue; + InvalidOid, + enable_outparam_override); + continue; } } @@ -1388,51 +1468,71 @@ FuncCandidateList FuncnameGetCandidates(List* names, int nargs, List* argnames, expand_variadic, expand_defaults, include_out, - InvalidOid); + InvalidOid, + enable_outparam_override); } ReleaseSysCacheList(catlist); + + /* avoid POC error temporary */ + if (resultList != NULL) { + return resultList; + } + /* Step2. try to add candidates with referenced name if funcname is regarded as synonym object. */ - if (IsNormalProcessingMode() && !IsInitdb && t_thrd.proc->workingVersionNum >= SYNONYM_VERSION_NUM) { + if (IsNormalProcessingMode() && !IsInitdb + && t_thrd.proc->workingVersionNum >= SYNONYM_VERSION_NUM && pkgname == NULL) { if (SearchSysCacheExists1(RELOID, PgSynonymRelationId)) { HeapTuple synTuple = NULL; + List* tempActiveSearchPath = NIL; + ListCell* l = NULL; /* Recompute and fill up the default namespace.*/ - if (!OidIsValid(namespaceId)) { + if (schemaname == NULL) { recomputeNamespacePath(); - - if (u_sess->catalog_cxt.activeTempCreationPending) { - InitTempTableNamespace(); - namespaceId = u_sess->catalog_cxt.myTempNamespace; - } else { - namespaceId = u_sess->catalog_cxt.activeCreationNamespace; - } + tempActiveSearchPath = list_copy(u_sess->catalog_cxt.activeSearchPath); + } else { + tempActiveSearchPath = list_make1_oid(namespaceId); } + foreach (l, tempActiveSearchPath) { + Oid tempnamespaceId = lfirst_oid(l); + synTuple = SearchSysCache2(SYNONYMNAMENSP, PointerGetDatum(funcname), + ObjectIdGetDatum(tempnamespaceId)); - synTuple = SearchSysCache2(SYNONYMNAMENSP, PointerGetDatum(funcname), ObjectIdGetDatum(namespaceId)); - - if (HeapTupleIsValid(synTuple)) { - Form_pg_synonym synForm = (Form_pg_synonym)GETSTRUCT(synTuple); - catlist = SearchSysCacheList1(PROCNAMEARGSNSP, CStringGetDatum(NameStr(synForm->synobjname))); - - for (i = 0; i < catlist->n_members; i++) { - HeapTuple procTuple = &catlist->members[i]->tuple; - if (!OidIsValid(HeapTupleGetOid(procTuple))) { - continue; + if (HeapTupleIsValid(synTuple)) { + Form_pg_synonym synForm = (Form_pg_synonym)GETSTRUCT(synTuple); +#ifndef ENABLE_MULTIPLE_NODES + if (t_thrd.proc->workingVersionNum < 92470) { + catlist = SearchSysCacheList1(PROCNAMEARGSNSP, CStringGetDatum(NameStr(synForm->synobjname))); + } else { + catlist = SearchSysCacheList1(PROCALLARGS, CStringGetDatum(NameStr(synForm->synobjname))); } - resultList = FuncnameAddCandidates(resultList, - procTuple, - argnames, - get_namespace_oid(NameStr(synForm->synobjschema), false), - ((Form_pg_proc)GETSTRUCT(procTuple))->pronamespace, - nargs, - catlist, - expand_variadic, - expand_defaults, - include_out, - HeapTupleGetOid(synTuple)); +#else + catlist = SearchSysCacheList1(PROCNAMEARGSNSP, CStringGetDatum(NameStr(synForm->synobjname))); +#endif + for (i = 0; i < catlist->n_members; i++) { + HeapTuple procTuple = &catlist->members[i]->tuple; + if (!OidIsValid(HeapTupleGetOid(procTuple))) { + continue; + } + if (!OidIsValid(get_namespace_oid(NameStr(synForm->synobjschema), true))) { + continue; + } + resultList = FuncnameAddCandidates(resultList, + procTuple, + argnames, + get_namespace_oid(NameStr(synForm->synobjschema), false), + ((Form_pg_proc)GETSTRUCT(procTuple))->pronamespace, + nargs, + catlist, + expand_variadic, + expand_defaults, + include_out, + HeapTupleGetOid(synTuple), + enable_outparam_override); + } + ReleaseSysCache(synTuple); + ReleaseSysCacheList(catlist); } - ReleaseSysCache(synTuple); - ReleaseSysCacheList(catlist); } } } @@ -1627,7 +1727,7 @@ static bool MatchNamedCall(HeapTuple proctup, int nargs, List* argnames, int** a Assert(nargs <= pronargs); /* initialize state for matching */ - *argnumbers = (int*)palloc(pronargs * sizeof(int)); + *argnumbers = (int*)palloc(FUNC_MAX_ARGS * sizeof(int)); errno_t rc = memset_s(arggiven, FUNC_MAX_ARGS, false, pronargs * sizeof(bool)); securec_check(rc, "", ""); @@ -2761,9 +2861,13 @@ void DeconstructQualifiedName(const List* names, char** nspname_p, char** objnam } pkgname = strVal(linitial(names)); if (!OidIsValid(PackageNameGetOid(pkgname, nspoid))) { - schemaname = strVal(linitial(names)); - pkgname = NULL; - break; + pkgname = strVal(lsecond(names)); + if (OidIsValid(PackageNameGetOid(pkgname, nspoid))) { + schemaname = strVal(linitial(names)); + objname = pkgname; + } else { + pkgname = NULL; + } } else { schemaname = NULL; } @@ -2822,6 +2926,8 @@ bool IsPackageFunction(List* funcname) bool result = false; Oid namespaceId = InvalidOid; char *pkgname = NULL; + bool isFirstFunction = true; + /* deconstruct the name list */ DeconstructQualifiedName(funcname, &schemaname, &func_name, &pkgname); @@ -2833,8 +2939,15 @@ bool IsPackageFunction(List* funcname) recomputeNamespacePath(); } +#ifndef ENABLE_MULTIPLE_NODES + if (t_thrd.proc->workingVersionNum < 92470) { + catlist = SearchSysCacheList1(PROCNAMEARGSNSP, CStringGetDatum(func_name)); + } else { + catlist = SearchSysCacheList1(PROCALLARGS, CStringGetDatum(func_name)); + } +#else catlist = SearchSysCacheList1(PROCNAMEARGSNSP, CStringGetDatum(func_name)); - bool isFirstFunction = true; +#endif bool isFirstPackageFunction = false; for (int i = 0; i < catlist->n_members; i++) { HeapTuple proctup = &catlist->members[i]->tuple; @@ -2871,6 +2984,9 @@ bool IsPackageFunction(List* funcname) proctup = &catlist->members[i]->tuple; Datum ispackage = SysCacheGetAttr(PROCOID, proctup, Anum_pg_proc_package, &isNull); result = DatumGetBool(ispackage); + if (IsSystemObjOid(HeapTupleGetOid(proctup))) { + continue; + } if (isFirstFunction && !OidIsValid(packageid)) { isFirstFunction = false; if (result) { @@ -3157,12 +3273,18 @@ Oid get_namespace_oid(const char* nspname, bool missing_ok) Oid oid = InvalidOid; oid = GetSysCacheOid1(NAMESPACENAME, CStringGetDatum(nspname)); - if (!OidIsValid(oid) && !missing_ok) + if (!OidIsValid(oid) && !missing_ok) { + char message[MAXSTRLEN]; + errno_t rc = sprintf_s(message, MAXSTRLEN, "schema \"%s\" does not exist", nspname); + securec_check_ss_c(rc, "", ""); + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc, true); ereport(ERROR, (errcode(ERRCODE_UNDEFINED_SCHEMA), errmsg("schema \"%s\" does not exist", nspname))); + } return oid; } + /* * makeRangeVarFromNameList * Utility routine to convert a qualified-name list into RangeVar form. @@ -3584,10 +3706,12 @@ void PopOverrideSearchPath(void) /* Sanity checks. */ if (u_sess->catalog_cxt.overrideStack == NIL) ereport(ERROR, (errcode(ERRCODE_UNEXPECTED_NODE_STATE), errmsg("bogus PopOverrideSearchPath call"))); + + /* + * With the creation or release of savepoint after pushing, CurrentTransactionNestLevel can either greater + * than or less than stack level. + */ entry = (OverrideStackEntry*)linitial(u_sess->catalog_cxt.overrideStack); - if (entry->nestLevel != GetCurrentTransactionNestLevel()) - ereport(ERROR, (errcode(ERRCODE_UNEXPECTED_NODE_STATE), errmsg("bogus PopOverrideSearchPath call, stack level %d, xact level %d", - entry->nestLevel, GetCurrentTransactionNestLevel()))); /* Pop the stack and free storage. */ u_sess->catalog_cxt.overrideStack = list_delete_first(u_sess->catalog_cxt.overrideStack); @@ -4035,6 +4159,11 @@ static void InitTempTableNamespace(void) int ret; errno_t rc; +#ifndef ENABLE_MULTIPLE_NODES + Assert(g_instance.exec_cxt.global_application_name != NULL); + nameLen = strlen(g_instance.exec_cxt.global_application_name); +#endif + Assert(!OidIsValid(u_sess->catalog_cxt.myTempNamespace)); /* @@ -4081,7 +4210,11 @@ static void InitTempTableNamespace(void) */ ret = strncpy_s(PGXCNodeNameSimplified, sizeof(PGXCNodeNameSimplified), +#ifndef ENABLE_MULTIPLE_NODES + g_instance.exec_cxt.global_application_name, +#else g_instance.attr.attr_common.PGXCNodeName, +#endif nameLen >= NAME_SIMPLIFIED_LEN ? NAME_SIMPLIFIED_LEN : nameLen); securec_check(ret, "\0", "\0"); diff --git a/src/common/backend/catalog/objectaddress.cpp b/src/common/backend/catalog/objectaddress.cpp index 9582aa887..2b998e04f 100644 --- a/src/common/backend/catalog/objectaddress.cpp +++ b/src/common/backend/catalog/objectaddress.cpp @@ -209,6 +209,7 @@ ObjectAddress get_object_address( switch (objtype) { case OBJECT_INDEX: case OBJECT_SEQUENCE: + case OBJECT_LARGE_SEQUENCE: case OBJECT_TABLE: case OBJECT_VIEW: case OBJECT_CONTQUERY: @@ -590,6 +591,12 @@ static ObjectAddress get_relation_by_qualified_name( (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("\"%s\" is not a sequence", RelationGetRelationName(relation)))); break; + case OBJECT_LARGE_SEQUENCE: + if (relation->rd_rel->relkind != RELKIND_LARGE_SEQUENCE) + ereport(ERROR, + (errcode(ERRCODE_WRONG_OBJECT_TYPE), + errmsg("\"%s\" is not a large sequence", RelationGetRelationName(relation)))); + break; case OBJECT_TABLE: if (relation->rd_rel->relkind != RELKIND_RELATION) ereport(ERROR, @@ -805,6 +812,18 @@ static ObjectAddress get_object_address_type(ObjectType objtype, List* objname, (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("\"%s\" is not a domain", TypeNameToString(typname)))); } +#ifndef ENABLE_MULTIPLE_NODES + if (IsPackageDependType(typeTypeId(tup), InvalidOid)) { + ereport(ERROR, + (errcode(ERRCODE_WRONG_OBJECT_TYPE), + errmodule(MOD_PLSQL), + errmsg("Not allowed to drop type \"%s\"", TypeNameToString(typname)), + errdetail("\"%s\" is a package or procedure type", TypeNameToString(typname)), + errcause("feature not supported"), + erraction("check type name"))); + } +#endif + ReleaseSysCache(tup); return address; @@ -893,6 +912,7 @@ void check_object_ownership( switch (objtype) { case OBJECT_INDEX: case OBJECT_SEQUENCE: + case OBJECT_LARGE_SEQUENCE: case OBJECT_TABLE: case OBJECT_VIEW: case OBJECT_CONTQUERY: @@ -1047,7 +1067,7 @@ void check_object_ownership( break; case OBJECT_DIRECTORY: if (!pg_directory_ownercheck(address.objectId, roleid)) - aclcheck_error(ACLCHECK_NOT_OWNER, ACL_KIND_DIRECTORY, NameListToString(objname)); + aclcheck_error(ACLCHECK_NO_PRIV, ACL_KIND_DIRECTORY, NameListToString(objname)); break; case OBJECT_PUBLICATION: if (!pg_publication_ownercheck(address.objectId, roleid)) { diff --git a/src/common/backend/catalog/performance_views.sql b/src/common/backend/catalog/performance_views.sql index 81e7792e8..e84e81324 100644 --- a/src/common/backend/catalog/performance_views.sql +++ b/src/common/backend/catalog/performance_views.sql @@ -1219,7 +1219,7 @@ CREATE VIEW dbe_perf.statio_all_sequences AS pg_stat_get_blocks_hit(C.oid) AS blks_hit FROM pg_class C LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace) - WHERE C.relkind = 'S'; + WHERE C.relkind = 'S' or C.relkind = 'L'; CREATE OR REPLACE FUNCTION dbe_perf.get_global_statio_all_sequences (OUT node_name name, OUT relid oid, OUT schemaname name, @@ -4440,6 +4440,10 @@ DECLARE END; $$ LANGUAGE 'plpgsql'; +CREATE VIEW dbe_perf.global_candidate_status AS + SELECT node_name, candidate_slots, get_buf_from_list, get_buf_clock_sweep, seg_candidate_slots, seg_get_buf_from_list, seg_get_buf_clock_sweep + FROM pg_catalog.local_candidate_stat(); + CREATE VIEW dbe_perf.global_ckpt_status AS SELECT node_name,ckpt_redo_point,ckpt_clog_flush_num,ckpt_csnlog_flush_num,ckpt_multixact_flush_num,ckpt_predicate_flush_num,ckpt_twophase_flush_num FROM pg_catalog.local_ckpt_stat(); @@ -4450,6 +4454,10 @@ CREATE OR REPLACE VIEW dbe_perf.global_double_write_status AS total_pages, low_threshold_pages, high_threshold_pages FROM pg_catalog.local_double_write_stat(); +CREATE OR REPLACE VIEW DBE_PERF.global_single_flush_dw_status AS + SELECT node_name, curr_dwn, curr_start_page, total_writes, file_trunc_num, file_reset_num + FROM pg_catalog.local_single_flush_dw_stat(); + CREATE VIEW dbe_perf.global_pagewriter_status AS SELECT node_name,pgwr_actual_flush_total_num,pgwr_last_flush_num,remain_dirty_page_num,queue_head_page_rec_lsn,queue_rec_lsn,current_xlog_insert_lsn,ckpt_redo_point FROM pg_catalog.local_pagewriter_stat(); @@ -4470,6 +4478,10 @@ CREATE OR REPLACE VIEW dbe_perf.global_rto_status AS SELECT node_name, rto_info FROM pg_catalog.local_rto_stat(); +CREATE OR REPLACE VIEW dbe_perf.global_streaming_hadr_rto_and_rpo_stat AS +SELECT hadr_sender_node_name, hadr_receiver_node_name, current_rto, target_rto, current_rpo, target_rpo, current_sleep_time +FROM pg_catalog.gs_hadr_local_rto_and_rpo_stat(); + CREATE OR REPLACE VIEW dbe_perf.global_recovery_status AS SELECT node_name, standby_node_name, source_ip, source_port, dest_ip, dest_port, current_rto, target_rto, current_sleep_time FROM pg_catalog.local_recovery_status(); diff --git a/src/common/backend/catalog/pg_depend.cpp b/src/common/backend/catalog/pg_depend.cpp index 40f6694cf..325aec8b5 100644 --- a/src/common/backend/catalog/pg_depend.cpp +++ b/src/common/backend/catalog/pg_depend.cpp @@ -5,6 +5,7 @@ * * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -19,11 +20,13 @@ #include "access/heapam.h" #include "access/transam.h" #include "catalog/dependency.h" +#include "catalog/gs_package.h" #include "catalog/indexing.h" #include "catalog/pg_constraint.h" #include "catalog/pg_depend.h" #include "catalog/pg_extension.h" #include "catalog/pg_proc.h" +#include "catalog/pg_synonym.h" #include "commands/extension.h" #include "miscadmin.h" #include "storage/tcap.h" @@ -573,7 +576,7 @@ List* getOwnedSequences(Oid relid, List* attrList) * can also have auto dependencies on columns.) */ if (deprec->classid == RelationRelationId && deprec->objsubid == 0 && deprec->refobjsubid != 0 && - deprec->deptype == DEPENDENCY_AUTO && get_rel_relkind(deprec->objid) == RELKIND_SEQUENCE) { + deprec->deptype == DEPENDENCY_AUTO && RELKIND_IS_SEQUENCE(get_rel_relkind(deprec->objid))) { if (attrList != NULL) { if (list_member_int(attrList, deprec->refobjsubid)) result = lappend_oid(result, deprec->objid); @@ -681,3 +684,109 @@ Oid get_index_constraint(Oid indexId) return constraintId; } + +long DeleteTypesDenpendOnPackage(Oid classId, Oid objectId, bool isSpec) +{ + long count = 0; + Relation depRel; + ScanKeyData key[2]; + SysScanDesc scan; + HeapTuple tup; + ObjectAddresses* objects = new_object_addresses(); + ObjectAddress address; + const int keyNumber = 2; + char* typName = NULL; + bool isPkgDepTyp = false; + Form_pg_depend depTuple = NULL; + + depRel = heap_open(DependRelationId, RowExclusiveLock); + + ScanKeyInit(&key[0], Anum_pg_depend_refclassid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(classId)); + ScanKeyInit(&key[1], Anum_pg_depend_refobjid, BTEqualStrategyNumber, F_OIDEQ, ObjectIdGetDatum(objectId)); + + scan = systable_beginscan(depRel, DependReferenceIndexId, true, NULL, keyNumber, key); + + while (HeapTupleIsValid(tup = systable_getnext(scan))) { + depTuple = (Form_pg_depend)GETSTRUCT(tup); + isPkgDepTyp = (depTuple->deptype == DEPENDENCY_AUTO) && + (depTuple->classid == TypeRelationId || depTuple->classid == PgSynonymRelationId); + if (!isPkgDepTyp) { + continue; + } + + if (!isSpec) { + /* body just delete private type */ + if (depTuple->classid == TypeRelationId) { + typName = get_typename(depTuple->objid); + } else { + typName = pstrdup(GetQualifiedSynonymName(depTuple->objid, false)); + } + if (typName[0] != '$') { + pfree(typName); + continue; + } + pfree(typName); + } + + address.classId = depTuple->classid; + address.objectId = depTuple->objid; + address.objectSubId = 0; + add_exact_object_address(&address, objects); + count++; + } + + systable_endscan(scan); + + heap_close(depRel, RowExclusiveLock); + + CommandCounterIncrement(); + performMultipleDeletions(objects, DROP_CASCADE, PERFORM_DELETION_INTERNAL, true); + + return count; +} + +bool IsPackageDependType(Oid typOid, Oid pkgOid, bool isRefCur) +{ + Relation depRel; + ScanKeyData key[2]; + SysScanDesc scan; + HeapTuple tup; + const int keyNumber = 2; + bool isFind = false; + + depRel = heap_open(DependRelationId, RowExclusiveLock); + if (isRefCur) { + ScanKeyInit(&key[0], Anum_pg_depend_classid, BTEqualStrategyNumber, + F_OIDEQ, ObjectIdGetDatum(PgSynonymRelationId)); + } else { + ScanKeyInit(&key[0], Anum_pg_depend_classid, BTEqualStrategyNumber, + F_OIDEQ, ObjectIdGetDatum(TypeRelationId)); + } + ScanKeyInit(&key[1], Anum_pg_depend_objid, BTEqualStrategyNumber, + F_OIDEQ, ObjectIdGetDatum(typOid)); + + scan = systable_beginscan(depRel, DependDependerIndexId, true, NULL, keyNumber, key); + + while (HeapTupleIsValid(tup = systable_getnext(scan))) { + if (((Form_pg_depend)GETSTRUCT(tup))->deptype == DEPENDENCY_AUTO) { + if (OidIsValid(pkgOid)) { + if (((Form_pg_depend)GETSTRUCT(tup))->refobjid == pkgOid) { + isFind = true; + break; + } + } else { + if (((Form_pg_depend)GETSTRUCT(tup))->refclassid == PackageRelationId + || ((Form_pg_depend)GETSTRUCT(tup))->refclassid == ProcedureRelationId) { + isFind = true; + break; + } + } + } + } + + systable_endscan(scan); + + heap_close(depRel, RowExclusiveLock); + + return isFind; +} \ No newline at end of file diff --git a/src/common/backend/catalog/pg_hashbucket.cpp b/src/common/backend/catalog/pg_hashbucket.cpp index 937ee0a42..cdb2b26f2 100755 --- a/src/common/backend/catalog/pg_hashbucket.cpp +++ b/src/common/backend/catalog/pg_hashbucket.cpp @@ -544,8 +544,8 @@ void bucketClosePartition(Partition bucket) { pfree_ext(bucket->pd_part); } - if(PartitionIsBucket(bucket)) { - pfree_ext(bucket->pd_smgr); + if(bucket->pd_smgr && PartitionIsBucket(bucket)) { + smgrclose(bucket->pd_smgr); } pfree_ext(bucket); } @@ -678,6 +678,8 @@ Relation bucketGetRelation(Relation rel, Partition part, int2 bucketId) bucket->rd_newRelfilenodeSubid = part->pd_newRelfilenodeSubid; bucket->rd_lockInfo = part->pd_lockInfo; bucket->rd_rel->relfilenode = part->pd_part->relfilenode; + bucket->rd_rel->reltoastrelid = part->pd_part->reltoastrelid; + bucket->rd_rel->reltablespace = part->pd_part->reltablespace; } /* fix relation bucketid info */ bucket->rd_node.bucketNode = bucketId; @@ -1762,3 +1764,15 @@ bool hashbucket_eq(oidvector* bucket1, oidvector* bucket2) } return true; } + +int bid_cmp(const void* p1, const void* p2) +{ + Oid b1 = *((const Oid*)p1); + Oid b2 = *((const Oid*)p2); + + if (b1 < b2) + return -1; + if (b1 > b2) + return 1; + return 0; +} diff --git a/src/common/backend/catalog/pg_job.cpp b/src/common/backend/catalog/pg_job.cpp index e8727fcd7..b6b6207d6 100644 --- a/src/common/backend/catalog/pg_job.cpp +++ b/src/common/backend/catalog/pg_job.cpp @@ -1,5 +1,6 @@ /* * Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors * * openGauss is licensed under Mulan PSL v2. * You can use this software according to the terms and conditions of the Mulan PSL v2. @@ -43,6 +44,7 @@ #include "pgxc/pgxc.h" #include "tcop/utility.h" #include "utils/builtins.h" +#include "utils/dbe_scheduler.h" #include "utils/fmgroids.h" #include "utils/formatting.h" #include "utils/lsyscache.h" @@ -55,6 +57,7 @@ #include "catalog/pg_job_proc.h" #include "catalog/pg_authid.h" #include "catalog/pg_database.h" +#include "catalog/gs_job_attribute.h" #include "fmgr.h" #include "utils/syscache.h" #include "utils/timestamp.h" @@ -74,15 +77,29 @@ extern void syn_command_to_other_node_internal(Datum node_name, Datum database, Datum what, Datum next_date, Datum job_interval, bool broken); static void elog_job_detail(int4 job_id, char* what, Update_Pgjob_Status status, char* errmsg); static char* query_with_update_job(int4 job_id, Datum job_status, int64 pid, Datum last_start_date, Datum last_end_date, - Datum last_suc_date, Datum this_run_date, Datum next_run_date, int2 failure_count, Datum node_name); -static void get_interval_nextdate_by_spi(int4 job_id, bool ischeck, const char* job_interval, Datum start_date, - Datum* next_date, MemoryContext current_context); + Datum last_suc_date, Datum this_run_date, Datum next_run_date, int2 failure_count, Datum node_name, Datum fail_msg); static bool is_internal_perf_job(int64 job_id); static bool is_job_aborted(Datum job_status); static HeapTuple get_job_tup_from_rel(Relation job_rel, int job_id); -static char* get_real_search_schema(); static char* get_job_what(int4 job_id, bool throw_not_found_error = true); +/* + * @brief is_scheduler_job_id + * Check if a job is scheduler job by searching its job name. + */ +bool is_scheduler_job_id(Relation relation, int64 job_id) +{ + bool is_regular_job = true; + HeapTuple tuple = NULL; + tuple = get_job_tup_from_rel(relation, job_id); + if (!HeapTupleIsValid(tuple)) { + return false; + } + (void)heap_getattr(tuple, Anum_pg_job_job_name, relation->rd_att, &is_regular_job); + + return !is_regular_job; +} + /* * @Description: Insert a new record to pg_job_proc. * @in job_id - Job id. @@ -102,6 +119,7 @@ static void insert_pg_job_proc(int4 job_id, Datum what) rc = memset_s(nulls, sizeof(nulls), false, sizeof(nulls)); securec_check_c(rc, "\0", "\0"); + nulls[Anum_pg_job_proc_job_name - 1] = true; rel = heap_open(PgJobProcRelationId, RowExclusiveLock); @@ -117,13 +135,14 @@ static void insert_pg_job_proc(int4 job_id, Datum what) heap_close(rel, RowExclusiveLock); } + /* * Encapsulating a function with the job interface will cause the function's schema be * inserted into the pg_job system table. * In order to avoid the situation that the job function in the dbe_task schema can only * call functions or procedures under the dbe_task schema, convert the dbe_task to public. */ -static char* get_real_search_schema() +char* get_real_search_schema() { char *cur_schema = get_namespace_name(SchemaNameGetSchemaOid(NULL)); if (strcmp(cur_schema, "dbe_task") == 0) { @@ -215,6 +234,14 @@ static void insert_pg_job(Relation rel, int job_id, Datum next_date, Datum job_i values[Anum_pg_job_interval - 1] = job_interval; values[Anum_pg_job_failure_count - 1] = Int16GetDatum(0); + /* + * These entries are exclusive for dbms package extensions. + */ + nulls[Anum_pg_job_job_name - 1] = true; + nulls[Anum_pg_job_end_date - 1] = true; + nulls[Anum_pg_job_enable - 1] = true; + nulls[Anum_pg_job_failure_msg - 1] = PointerGetDatum(cstring_to_text("")); + tuple = heap_form_tuple(RelationGetDescr(rel), values, nulls); (void)simple_heap_insert(rel, tuple); @@ -422,7 +449,8 @@ void update_pg_job_dbname(Oid jobid, const char* dbname) * @in next_date: Job next time. * Returns: void */ -static void update_pg_job_info(int job_id, Update_Pgjob_Status status, Datum start_date, Datum next_date) +static void update_pg_job_info(int job_id, Update_Pgjob_Status status, Datum start_date, Datum next_date, + const char* failure_msg, bool is_scheduler_job) { Relation relation = NULL; HeapTuple tup = NULL; @@ -494,7 +522,8 @@ static void update_pg_job_info(int job_id, Update_Pgjob_Status status, Datum sta values[Anum_pg_job_this_run_date - 1], old_value[Anum_pg_job_next_run_date - 1], failure_count, - values[Anum_pg_job_node_name - 1]); + values[Anum_pg_job_node_name - 1], + visnull[Anum_pg_job_failure_msg - 1] ? 0 : old_value[Anum_pg_job_failure_msg - 1]); break; } case Pgjob_Succ: { @@ -503,6 +532,7 @@ static void update_pg_job_info(int job_id, Update_Pgjob_Status status, Datum sta replaces[Anum_pg_job_last_suc_date - 1] = true; replaces[Anum_pg_job_failure_count - 1] = true; replaces[Anum_pg_job_next_run_date - 1] = true; + replaces[Anum_pg_job_failure_msg - 1] = true; values[Anum_pg_job_job_status - 1] = CharGetDatum(is_job_abort ? PGJOB_ABORT_STATUS : PGJOB_SUCC_STATUS); values[Anum_pg_job_current_postgres_pid - 1] = Int64GetDatum(-1); values[Anum_pg_job_last_start_date - 1] = start_date; @@ -515,13 +545,15 @@ static void update_pg_job_info(int job_id, Update_Pgjob_Status status, Datum sta /* Only execute the job once and set status to 'd' if interval is 'null'. */ if (next_date == 0) { - values[Anum_pg_job_job_status - 1] = CharGetDatum(PGJOB_ABORT_STATUS); + values[Anum_pg_job_job_status - 1] = is_scheduler_job ? values[Anum_pg_job_job_status - 1] : \ + CharGetDatum(PGJOB_ABORT_STATUS); values[Anum_pg_job_next_run_date - 1] = DirectFunctionCall2(to_timestamp, DirectFunctionCall1(textin, CStringGetDatum("4000-1-1")), DirectFunctionCall1(textin, CStringGetDatum("yyyy-mm-dd"))); } else { values[Anum_pg_job_next_run_date - 1] = next_date; } + values[Anum_pg_job_failure_msg - 1] = PointerGetDatum(cstring_to_text("")); update_query = query_with_update_job(job_id, values[Anum_pg_job_job_status - 1], @@ -532,7 +564,8 @@ static void update_pg_job_info(int job_id, Update_Pgjob_Status status, Datum sta visnull[Anum_pg_job_this_run_date - 1] ? 0 : old_value[Anum_pg_job_this_run_date - 1], values[Anum_pg_job_next_run_date - 1], failure_count, - values[Anum_pg_job_node_name - 1]); + values[Anum_pg_job_node_name - 1], + values[Anum_pg_job_failure_msg - 1]); break; } case Pgjob_Fail: { @@ -541,6 +574,7 @@ static void update_pg_job_info(int job_id, Update_Pgjob_Status status, Datum sta replaces[Anum_pg_job_last_end_date - 1] = true; replaces[Anum_pg_job_failure_count - 1] = true; replaces[Anum_pg_job_next_run_date - 1] = true; + replaces[Anum_pg_job_failure_msg - 1] = true; values[Anum_pg_job_job_status - 1] = CharGetDatum(is_job_abort ? PGJOB_ABORT_STATUS : PGJOB_FAIL_STATUS); values[Anum_pg_job_current_postgres_pid - 1] = Int64GetDatum(-1); values[Anum_pg_job_last_start_date - 1] = start_date; @@ -552,9 +586,13 @@ static void update_pg_job_info(int job_id, Update_Pgjob_Status status, Datum sta * Set job_status as 'd' if failure_count more or equal to 16 or * execute the job once if interval is 'null'. * Then set next_run_date as default date "4000-1-1". + * + * Scheduler jobs is an exception, since scheduler has proprietary enable flag which does + * not rely on PGJOB_ABORT_STATUS. */ if (next_date == 0) { - values[Anum_pg_job_job_status - 1] = CharGetDatum(PGJOB_ABORT_STATUS); + values[Anum_pg_job_job_status - 1] = is_scheduler_job ? values[Anum_pg_job_job_status - 1] : \ + CharGetDatum(PGJOB_ABORT_STATUS); values[Anum_pg_job_next_run_date - 1] = DirectFunctionCall2(to_timestamp, DirectFunctionCall1(textin, CStringGetDatum("4000-1-1")), DirectFunctionCall1(textin, CStringGetDatum("yyyy-mm-dd"))); @@ -562,11 +600,13 @@ static void update_pg_job_info(int job_id, Update_Pgjob_Status status, Datum sta ereport(WARNING, (errcode(ERRCODE_OPERATE_FAILED), errmsg("job with id % is abnormal, fail exceeds %d times", job_id, JOB_MAX_FAIL_COUNT))); - + values[Anum_pg_job_job_status - 1] = is_scheduler_job ? values[Anum_pg_job_job_status - 1] : \ + CharGetDatum(PGJOB_ABORT_STATUS); values[Anum_pg_job_next_run_date - 1] = next_date; } else { values[Anum_pg_job_next_run_date - 1] = next_date; } + values[Anum_pg_job_failure_msg - 1] = PointerGetDatum(cstring_to_text(failure_msg)); update_query = query_with_update_job(job_id, values[Anum_pg_job_job_status - 1], @@ -577,7 +617,8 @@ static void update_pg_job_info(int job_id, Update_Pgjob_Status status, Datum sta visnull[Anum_pg_job_this_run_date - 1] ? 0 : old_value[Anum_pg_job_this_run_date - 1], values[Anum_pg_job_next_run_date - 1], failure_count, - values[Anum_pg_job_node_name - 1]); + values[Anum_pg_job_node_name - 1], + values[Anum_pg_job_failure_msg - 1]); break; } default: { @@ -619,17 +660,17 @@ static void update_pg_job_info(int job_id, Update_Pgjob_Status status, Datum sta t_thrd.utils_cxt.CurrentResourceOwner = save; } -static void check_job_id(int64 job_id) +static void check_job_id(int64 job_id, int64 job_max_number = JOBID_MAX_NUMBER) { - if (job_id <= InvalidJobId || job_id > JOBID_MAX_NUMBER) { + if (job_id <= InvalidJobId || job_id > job_max_number) { ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("Invalid job_id: %ld", job_id), - errdetail("The scope of jobid should between 1 and %d", JOBID_MAX_NUMBER))); + errdetail("The scope of jobid should between 1 and %ld", job_max_number))); } } -static void check_job_status(Datum job_status) +void check_job_status(Datum job_status) { char status = DatumGetChar(job_status); @@ -662,6 +703,8 @@ void syn_update_pg_job(PG_FUNCTION_ARGS) Datum this_run_date = PG_GETARG_DATUM(6); Datum next_run_date = PG_GETARG_DATUM(7); Datum failure_count = PG_GETARG_DATUM(8); + Datum failure_msg = PG_GETARG_DATUM(9); + Relation relation; HeapTuple tup = NULL; HeapTuple newtuple = NULL; @@ -681,6 +724,13 @@ void syn_update_pg_job(PG_FUNCTION_ARGS) /* Update pg_job system table. */ relation = heap_open(PgJobRelationId, RowExclusiveLock); + if (is_scheduler_job_id(relation, job_id)) { + heap_close(relation, RowExclusiveLock); + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_INVALID_STATUS), + errmsg("Cannot modify job with jobid:%ld.", job_id), + errdetail("Cannot modify scheduler job with current method."), errcause("Forbidden operation."), + erraction("Please use scheduler interface to operate this action."))); + } get_job_values(job_id, tup, relation, old_value, visnull); @@ -701,6 +751,7 @@ void syn_update_pg_job(PG_FUNCTION_ARGS) values[Anum_pg_job_current_postgres_pid - 1] = pid; values[Anum_pg_job_next_run_date - 1] = next_run_date; values[Anum_pg_job_failure_count - 1] = failure_count; + values[Anum_pg_job_failure_msg - 1] = failure_msg; if (!PG_ARGISNULL(3)) { replaces[Anum_pg_job_last_start_date - 1] = true; @@ -778,6 +829,7 @@ static void get_interval_nextdate_by_spi(int4 job_id, bool ischeck, const char* ret = snprintf_s(exec_job_interval, interval_len, interval_len - 1, "select %s", job_interval); securec_check_ss_c(ret, "\0", "\0"); + SPI_STACK_LOG("connect", NULL, NULL); if (SPI_OK_CONNECT != SPI_connect()) { ereport(ERROR, (errcode(ERRCODE_SPI_CONNECTION_FAILURE), @@ -832,9 +884,30 @@ static void get_interval_nextdate_by_spi(int4 job_id, bool ischeck, const char* } } + SPI_STACK_LOG("finish", NULL, NULL); SPI_finish(); } +/* + * @brief get_interval_nextdate + * Get next job run date base on interval string (can either be a INTERVAL type or a calendaring syntax) + */ +static Datum get_interval_nextdate(int4 job_id, bool ischeck, const char* interval, Datum start_date, Datum base_date, + MemoryContext current_context) +{ + Datum new_next_date; + if (pg_strncasecmp(interval, "freq=", strlen("freq=")) != 0) { + get_interval_nextdate_by_spi(job_id, ischeck, interval, start_date, &new_next_date, current_context); + } else { + /* scheduler job uses timestamp with time zone all the way, so convert it */ + Datum start_date_tz = DirectFunctionCall1(timestamp_timestamptz, start_date); + Datum base_date_tz = DirectFunctionCall1(timestamp_timestamptz, base_date); + Datum next_date_tz = evaluate_repeat_interval(CStringGetTextDatum(interval), base_date_tz, start_date_tz); + new_next_date = DirectFunctionCall1(timestamptz_timestamp, next_date_tz); + } + return new_next_date; +} + /* * Description: Begin to execute the job. * @@ -845,8 +918,17 @@ static void get_interval_nextdate_by_spi(int4 job_id, bool ischeck, const char* void execute_job(int4 job_id) { Datum start_date = 0; + Datum base_date = 0; /* The actual start date of the scheduler job */ Datum old_next_date = 0; - Datum new_next_date = 0; + /* + * In RELEASE version, some of these variables will be optimized into + * registers. Be extra careful with updating the variables inside PG_TRY(), + * since PG_CATCH() will always flush and restore those registers to its + * original state(right before PG_CATCH()). An unexpected optimization would + * change how these codes behaves. + */ + volatile Datum new_next_date = 0; + Datum job_name = 0; char* what = NULL; char* job_interval = NULL; char* nspname = NULL; @@ -854,6 +936,7 @@ void execute_job(int4 job_id) Relation job_rel = NULL; Datum values[Natts_pg_job]; bool nulls[Natts_pg_job]; + bool is_scheduler_job = false; ResourceOwner save = t_thrd.utils_cxt.CurrentResourceOwner; /* MessagesContext */ MemoryContext current_context = CurrentMemoryContext; StringInfoData buf; @@ -863,15 +946,17 @@ void execute_job(int4 job_id) job_rel = heap_open(PgJobRelationId, AccessShareLock); get_job_values(job_id, job_tup, job_rel, values, nulls); + is_scheduler_job = !nulls[Anum_pg_job_job_name - 1]; /* scheduler job flag */ + job_name = is_scheduler_job ? PointerGetDatum(PG_DETOAST_DATUM_COPY(values[Anum_pg_job_job_name - 1])) : Datum(0); job_interval = text_to_cstring(DatumGetTextP(values[Anum_pg_job_interval - 1])); old_next_date = values[Anum_pg_job_next_run_date - 1]; - /* Set initial value for the new next_date. */ - new_next_date = old_next_date; + new_next_date = old_next_date; /* Set initial value for the new next_date. */ what = get_job_what(job_id); start_date = DirectFunctionCall1(timestamptz_timestamp, GetCurrentTimestamp()); - - if (!nulls[Anum_pg_job_nspname - 1]) + base_date = values[Anum_pg_job_start_date - 1]; + if (!nulls[Anum_pg_job_nspname - 1]) { nspname = DatumGetCString(DirectFunctionCall1(nameout, NameGetDatum(values[Anum_pg_job_nspname - 1]))); + } heap_close(job_rel, AccessShareLock); ReleaseSysCache(job_tup); @@ -879,7 +964,7 @@ void execute_job(int4 job_id) PG_TRY(); { /* Update the job state to 'r' before starting to execute it. */ - update_pg_job_info(job_id, Pgjob_Run, start_date, 0); + update_pg_job_info(job_id, Pgjob_Run, start_date, 0, NULL, is_scheduler_job); /* * Compute next_date if interval is not 'null'. @@ -890,7 +975,7 @@ void execute_job(int4 job_id) StartTransactionCommand(); /* Get new interval by execute 'select interval' for computing new next_date. */ - get_interval_nextdate_by_spi(job_id, false, job_interval, start_date, &new_next_date, current_context); + new_next_date = get_interval_nextdate(job_id, false, job_interval, start_date, base_date, current_context); CommitTransactionCommand(); t_thrd.utils_cxt.CurrentResourceOwner = save; @@ -922,9 +1007,10 @@ void execute_job(int4 job_id) if (nspname != NULL) appendStringInfo(&buf, "set current_schema=%s;", quote_identifier(nspname)); - - appendStringInfo(&buf, "%s", what); - execute_simple_query(buf.data); + if (!execute_backend_scheduler_job(job_name, &buf)) { + appendStringInfo(&buf, "%s", what); + execute_simple_query(buf.data); + } pfree_ext(buf.data); pfree_ext(job_interval); @@ -939,7 +1025,7 @@ void execute_job(int4 job_id) t_thrd.utils_cxt.CurrentResourceOwner = save; /* Update last_end_date and job_status='f' and failure_count++ */ - update_pg_job_info(job_id, Pgjob_Fail, start_date, new_next_date); + update_pg_job_info(job_id, Pgjob_Fail, start_date, new_next_date, edata->message, is_scheduler_job); elog_job_detail(job_id, what, Pgjob_Fail, edata->message); (void)MemoryContextSwitchTo(ecxt); @@ -955,7 +1041,7 @@ void execute_job(int4 job_id) PG_END_TRY(); /* Update last_suc_date and job_status='s' */ - update_pg_job_info(job_id, Pgjob_Succ, start_date, new_next_date); + update_pg_job_info(job_id, Pgjob_Succ, start_date, new_next_date, NULL, is_scheduler_job); elog_job_detail(job_id, what, Pgjob_Succ, NULL); pfree_ext(what); @@ -972,7 +1058,7 @@ void execute_job(int4 job_id) * @in next_date: Next_date for the job. * Returns: void */ -static void check_interval_valid(int4 job_id, Relation rel, Datum interval) +void check_interval_valid(int4 job_id, Relation rel, Datum interval) { char* job_interval = text_to_cstring(DatumGetTextP(interval)); MemoryContext current_context = CurrentMemoryContext; @@ -981,9 +1067,7 @@ static void check_interval_valid(int4 job_id, Relation rel, Datum interval) /* Check if param interval is valid or not by execute 'select interval'. */ PG_TRY(); { - Datum new_next_date; - - get_interval_nextdate_by_spi(job_id, true, job_interval, 0, &new_next_date, CurrentMemoryContext); + (void)get_interval_nextdate(job_id, true, job_interval, 0, 0, CurrentMemoryContext); } PG_CATCH(); { @@ -1273,12 +1357,7 @@ static void remove_job_internal(Relation pg_job, int4 job_id, bool ischeck, bool { HeapTuple tup = NULL; - if (job_id <= InvalidJobId || job_id > JOBID_MAX_NUMBER) { - ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("Invalid job_id: %d", job_id), - errdetail("The scope of jobid should between 1 and %d", JOBID_MAX_NUMBER))); - } + check_job_id(job_id); tup = get_job_tup_from_rel(pg_job, job_id); if (!HeapTupleIsValid(tup)) { @@ -1316,26 +1395,60 @@ static void remove_job_internal(Relation pg_job, int4 job_id, bool ischeck, bool * @in local: remove job locally if true * Returns: void */ -void remove_job_by_oid(const char* objname, Delete_Pgjob_Oid oidFlag, bool local, Oid jobid) +void remove_job_by_oid(Oid oid, Delete_Pgjob_Oid oidFlag, bool local) { Relation pg_job_tbl = NULL; TableScanDesc scan = NULL; HeapTuple tuple = NULL; + bool is_regular_job = true; + bool object_not_found = true; + const char *objname = NULL; + Oid jobid = InvalidOid; + + /* Get object names from oid base on oidFlag */ + switch (oidFlag) { + case DbOid: + objname = get_database_name(oid); + object_not_found = (objname == NULL); + break; + case UserOid: + objname = GetUserNameFromId(oid); + object_not_found = (objname == NULL); + break; + case RelOid: + jobid = oid; + object_not_found = false; + break; + default: + object_not_found = true; + } + + if (object_not_found) { + return; + } pg_job_tbl = heap_open(PgJobRelationId, ExclusiveLock); scan = heap_beginscan(pg_job_tbl, SnapshotNow, 0, NULL); while (HeapTupleIsValid(tuple = heap_getnext(scan, ForwardScanDirection))) { + /* non-scheduler jobs does not come with a job name */ + (void)heap_getattr(tuple, Anum_pg_job_job_name, pg_job_tbl->rd_att, &is_regular_job); Form_pg_job pg_job = (Form_pg_job)GETSTRUCT(tuple); - if ((oidFlag == DbOid && 0 == strcmp(NameStr(pg_job->dbname), objname)) || + if (((oidFlag == DbOid && 0 == strcmp(NameStr(pg_job->dbname), objname)) || (oidFlag == UserOid && 0 == strcmp(NameStr(pg_job->log_user), objname)) || - (oidFlag == RelOid && pg_job->job_id == jobid)) { + (oidFlag == RelOid && pg_job->job_id == jobid)) && + (oidFlag != UserOid || is_regular_job)) { remove_job_internal(pg_job_tbl, pg_job->job_id, false, local); } } heap_endscan(scan); heap_close(pg_job_tbl, ExclusiveLock); + + /* always remove scheduler objects when drop role */ + if (oidFlag == UserOid) { + remove_scheduler_objects_from_owner(get_role_name_str(oid)); + } } /* @@ -1358,6 +1471,12 @@ Datum job_cancel(PG_FUNCTION_ARGS) PG_TRY(); { + if (is_scheduler_job_id(relation, job_id)) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_INVALID_STATUS), + errmsg("Cannot remove job with jobid:%ld.", job_id), + errdetail("Cannot remove scheduler job with job_cancel"), errcause("Forbidden operation."), + erraction("Please use scheduler interface to operate this action."))); + } remove_job_internal(relation, job_id, ischeck, false); } PG_CATCH(); @@ -1396,12 +1515,7 @@ void RemoveJobById(Oid objectId) relation = heap_open(PgJobRelationId, RowExclusiveLock); PG_TRY(); { - if (job_id <= InvalidJobId || job_id > JOBID_MAX_NUMBER) { - ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("Invalid job_id: %ld", job_id), - errdetail("The scope of jobid should between 1 and %d", JOBID_MAX_NUMBER))); - } + check_job_id(job_id); TableScanDesc scan = NULL; char* myrolename = NULL; HeapTuple tuple = NULL; @@ -1506,6 +1620,14 @@ void job_finish(PG_FUNCTION_ARGS) return; } check_job_permission(tup, !is_perf_job); + if (is_scheduler_job_id(relation, job_id)) { + heap_close(relation, RowExclusiveLock); + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_INVALID_STATUS), + errmsg("Cannot execute job with jobid:%ld.", job_id), + errdetail("Cannot execute scheduler job with current method."), + errcause("Forbidden operation."), + erraction("Please use scheduler interface."))); + } get_job_values(job_id, tup, relation, oldvalues, oldvisnulls); @@ -1643,7 +1765,6 @@ void job_update(PG_FUNCTION_ARGS) return; } - check_job_id(job_id); tup = get_job_tup(job_id); @@ -1655,6 +1776,13 @@ void job_update(PG_FUNCTION_ARGS) /* Update pg_job system table.*/ relation = heap_open(PgJobRelationId, RowExclusiveLock); + if (is_scheduler_job_id(relation, job_id)) { + heap_close(relation, RowExclusiveLock); + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_INVALID_STATUS), + errmsg("Cannot update job with jobid:%ld.", job_id), + errdetail("Cannot update scheduler job with current method."), errcause("Forbidden operation."), + erraction("Please use scheduler interface."))); + } if (!PG_ARGISNULL(3)) { /* Update pg_job_proc if content is not null.*/ @@ -1793,7 +1921,8 @@ void update_run_job_to_fail() visnull[Anum_pg_job_this_run_date - 1] ? 0 : old_value[Anum_pg_job_this_run_date - 1], values[Anum_pg_job_next_run_date - 1], values[Anum_pg_job_failure_count - 1], - values[Anum_pg_job_node_name - 1]); + values[Anum_pg_job_node_name - 1], + visnull[Anum_pg_job_failure_msg - 1] ? 0 : old_value[Anum_pg_job_failure_msg - 1]); /* * If update job status in local success and only synchronize to other coordinator fail, @@ -1816,12 +1945,17 @@ void update_run_job_to_fail() * CAUTION: the function only tries JOBID_MAX_NUMBER times. So if there have been a lot of jobs in pg_job, * the function is likely to fail, although there is still valid id to use. */ -static int get_random_job_id() +static int get_random_job_id(int64 job_max_number = JOBID_MAX_NUMBER) { - int job_id = gs_random() % JOBID_MAX_NUMBER; + if (job_max_number < InvalidJobId) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("Cannot generate job id."), errdetail("N/A"), errcause("Invalid job id range set."), + erraction("Please recheck job status."))); + } + int job_id = gs_random() % job_max_number; HeapTuple tup = NULL; uint32 loop_count = 0; - while (loop_count < JOBID_MAX_NUMBER) { + while (loop_count < job_max_number) { if (likely(job_id > 0)) { tup = SearchSysCache1(PGJOBID, Int64GetDatum(job_id)); /* Find a invalid jobid. */ @@ -1831,10 +1965,10 @@ static int get_random_job_id() loop_count++; ReleaseSysCache(tup); } - job_id = gs_random() % JOBID_MAX_NUMBER; + job_id = gs_random() % job_max_number; } - if (loop_count == JOBID_MAX_NUMBER) { + if (loop_count == job_max_number) { ereport(LOG, (errmodule(MOD_TIMESERIES), errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("Cannot find a valid job_id randomly, try to search one by one."))); @@ -1850,16 +1984,16 @@ static int get_random_job_id() * @in pusJobId: Return job id. * Returns: int */ -int jobid_alloc(uint16* pusJobId) +int jobid_alloc(uint16* pusJobId, int64 job_max_number) { - int job_id = get_random_job_id(); + int job_id = get_random_job_id(job_max_number); if (job_id != 0) { *pusJobId = job_id; return JOBID_ALLOC_OK; } HeapTuple tup = NULL; - for (int job_id = 1; job_id <= JOBID_MAX_NUMBER; job_id++) { + for (int job_id = 1; job_id <= job_max_number; job_id++) { tup = SearchSysCache1(PGJOBID, Int64GetDatum(job_id)); /* Find a invalid jobid. */ if (!HeapTupleIsValid(tup)) { @@ -1995,7 +2129,7 @@ static void elog_job_detail(int4 job_id, char* what, Update_Pgjob_Status status, * Returns: char* */ static char* query_with_update_job(int4 job_id, Datum job_status, int64 pid, Datum last_start_date, Datum last_end_date, - Datum last_suc_date, Datum this_run_date, Datum next_run_date, int2 failure_count, Datum node_name) + Datum last_suc_date, Datum this_run_date, Datum next_run_date, int2 failure_count, Datum node_name, Datum fail_msg) { StringInfoData queryString; @@ -2013,25 +2147,58 @@ static char* query_with_update_job(int4 job_id, Datum job_status, int64 pid, Dat } initStringInfo(&queryString); - appendStringInfo(&queryString, - "select * from update_pgjob(%d, \'%c\', %ld, %s, %s, %s, %s, %s, %d);", - job_id, - DatumGetChar(job_status), - pid, - last_start_date == 0 ? "null" - : quote_literal_cstr(DatumGetCString( - DirectFunctionCall1(timestamp_out, DatumGetTimestamp(last_start_date)))), - last_end_date == 0 - ? "null" - : quote_literal_cstr(DatumGetCString(DirectFunctionCall1(timestamp_out, DatumGetTimestamp(last_end_date)))), - last_suc_date == 0 - ? "null" - : quote_literal_cstr(DatumGetCString(DirectFunctionCall1(timestamp_out, DatumGetTimestamp(last_suc_date)))), - this_run_date == 0 - ? "null" - : quote_literal_cstr(DatumGetCString(DirectFunctionCall1(timestamp_out, DatumGetTimestamp(this_run_date)))), - quote_literal_cstr(DatumGetCString(DirectFunctionCall1(timestamp_out, DatumGetTimestamp(next_run_date)))), - failure_count); + if (t_thrd.proc->workingVersionNum >= 92473) { + appendStringInfo(&queryString, + "select * from update_pgjob(%d, \'%c\', %ld, %s, %s, %s, %s, %s, %d , %s);", + job_id, + DatumGetChar(job_status), + pid, + last_start_date == 0 ? "null" + : quote_literal_cstr(DatumGetCString( + DirectFunctionCall1(timestamp_out, DatumGetTimestamp(last_start_date)))), + last_end_date == 0 + ? "null" + : quote_literal_cstr(DatumGetCString(DirectFunctionCall1(timestamp_out, + DatumGetTimestamp(last_end_date)))), + last_suc_date == 0 + ? "null" + : quote_literal_cstr(DatumGetCString(DirectFunctionCall1(timestamp_out, + DatumGetTimestamp(last_suc_date)))), + this_run_date == 0 + ? "null" + : quote_literal_cstr(DatumGetCString(DirectFunctionCall1(timestamp_out, + DatumGetTimestamp(this_run_date)))), + quote_literal_cstr(DatumGetCString(DirectFunctionCall1(timestamp_out, DatumGetTimestamp(next_run_date)))), + failure_count, + fail_msg == 0 + ? "null" + : quote_literal_cstr(DatumGetCString(fail_msg))); + } else { + appendStringInfo(&queryString, + "select * from update_pgjob(%d, \'%c\', %ld, %s, %s, %s, %s, %s, %d);", + job_id, + DatumGetChar(job_status), + pid, + last_start_date == 0 ? "null" + : quote_literal_cstr(DatumGetCString( + DirectFunctionCall1(timestamp_out, DatumGetTimestamp(last_start_date)))), + last_end_date == 0 + ? "null" + : quote_literal_cstr(DatumGetCString(DirectFunctionCall1(timestamp_out, + DatumGetTimestamp(last_end_date)))), + last_suc_date == 0 + ? "null" + : quote_literal_cstr(DatumGetCString(DirectFunctionCall1(timestamp_out, + DatumGetTimestamp(last_suc_date)))), + this_run_date == 0 + ? "null" + : quote_literal_cstr(DatumGetCString(DirectFunctionCall1(timestamp_out, + DatumGetTimestamp(this_run_date)))), + quote_literal_cstr(DatumGetCString(DirectFunctionCall1(timestamp_out, DatumGetTimestamp(next_run_date)))), + failure_count); + + } + elog(LOG, "query with update job: %s", queryString.data); diff --git a/src/common/backend/catalog/pg_job_proc.cpp b/src/common/backend/catalog/pg_job_proc.cpp new file mode 100644 index 000000000..a3a6e04a8 --- /dev/null +++ b/src/common/backend/catalog/pg_job_proc.cpp @@ -0,0 +1,240 @@ +/* + * Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors + * + * openGauss is licensed under Mulan PSL v2. + * You can use this software according to the terms and conditions of the Mulan PSL v2. + * You may obtain a copy of Mulan PSL v2 at: + * + * http://license.coscl.org.cn/MulanPSL2 + * + * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, + * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, + * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + * See the Mulan PSL v2 for more details. + * ------------------------------------------------------------------------- + * + * pg_job_proc.cpp + * + * IDENTIFICATION + * src/common/backend/catalog/catalog/pg_job_proc.cpp + * + * ------------------------------------------------------------------------- + */ + +#include "postgres.h" +#include "knl/knl_variable.h" +#include +#include "access/sysattr.h" +#include "access/xact.h" +#include "catalog/indexing.h" +#include "catalog/namespace.h" +#include "catalog/objectaccess.h" +#include "catalog/pg_collation.h" +#include "catalog/pg_type.h" +#include "commands/alter.h" +#include "commands/comment.h" +#include "commands/dbcommands.h" +#include "commands/extension.h" +#include "commands/schemacmds.h" +#include "executor/spi.h" +#include "funcapi.h" +#include "mb/pg_wchar.h" +#include "miscadmin.h" +#include "pgxc/pgxc.h" +#include "tcop/utility.h" +#include "utils/builtins.h" +#include "utils/fmgroids.h" +#include "utils/formatting.h" +#include "utils/lsyscache.h" +#include "utils/rel.h" +#include "utils/rel_gs.h" +#include "utils/snapmgr.h" +#include "access/heapam.h" +#include "access/tableam.h" +#include "catalog/pg_job.h" +#include "catalog/pg_job_proc.h" +#include "catalog/pg_authid.h" +#include "catalog/pg_database.h" +#include "catalog/gs_job_argument.h" +#include "fmgr.h" +#include "utils/syscache.h" +#include "utils/timestamp.h" +#include "pgxc/execRemote.h" + +/* + * @brief get_random_program_proc_id + * Get large random program proc id. used only for program + * @return uint32_t + */ +static uint32_t get_random_program_proc_id() +{ + uint32_t job_id; + const int RANDOM_LOOP_MAX = 1024; + for (int i = 0; i < RANDOM_LOOP_MAX; i++) { + job_id = gs_random() % INT32_MAX_VALUE; + job_id += INT32_MAX_VALUE; + bool exist = SearchSysCacheExists1(PGJOBPROCID, UInt32GetDatum(job_id)); + if (!exist) { + return job_id; + } + } + + for (job_id = INT32_MAX_VALUE; job_id > 0; job_id--) { + /* Find a invalid jobid. */ + bool exist = SearchSysCacheExists1(PGJOBPROCID, UInt32GetDatum(job_id)); + if (!exist) { + return job_id; + } + } + if (!OidIsValid(job_id)) { + ereport(ERROR, + (errmodule(MOD_JOB), errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), + errmsg("All virtual jobids have alloc, and there is no free jobid."), + errdetail("N/A"), + errcause("cannot alloc job id"), + erraction("Please drop some job"))); + } + return 0; +} + +/* + * @brief dbe_insert_pg_job_proc + * + * @param job_id + * @param job_action + * @param job_name + * @return Datum + */ +Datum dbe_insert_pg_job_proc(Datum job_id, Datum job_action, const Datum job_name) +{ + Datum values[Natts_pg_job_proc]; + bool nulls[Natts_pg_job_proc]; + errno_t rc = memset_s(nulls, sizeof(nulls), false, sizeof(nulls)); + securec_check_c(rc, "\0", "\0"); + + Relation rel = heap_open(PgJobProcRelationId, RowExclusiveLock); + if (!OidIsValid(job_id)) { + job_id = ObjectIdGetDatum(get_random_program_proc_id()); + } + + values[Anum_pg_job_proc_job_id - 1] = job_id; + if (!PointerIsValid(job_action)) { + nulls[Anum_pg_job_proc_what - 1] = true; + } + values[Anum_pg_job_proc_what - 1] = job_action; + values[Anum_pg_job_proc_job_name - 1] = job_name; + + HeapTuple tuple = heap_form_tuple(RelationGetDescr(rel), values, nulls); + (void)simple_heap_insert(rel, tuple); + CatalogUpdateIndexes(rel, tuple); + + heap_close(rel, RowExclusiveLock); + heap_freetuple_ext(tuple); + + return job_id; +} + +/* + * @brief search_from_pg_job_proc_no_exception + * + * @param rel + * @param job_name + * @return HeapTuple + */ +static HeapTuple search_from_pg_job_proc_no_exception(Relation rel, Datum job_name) +{ + ScanKeyInfo scan_key_info; + scan_key_info.attribute_value = job_name; + scan_key_info.attribute_number = Anum_pg_job_proc_job_name; + scan_key_info.procedure = F_TEXTEQ; + List *tuples = search_by_sysscan_1(rel, &scan_key_info); + if (list_length(tuples) != 1) { + return NULL; + } + HeapTuple tuple = (HeapTuple)linitial(tuples); + list_free_ext(tuples); + return tuple; +} + +/* + * @brief search_from_pg_job_proc + * + * @param rel + * @param name + * @return HeapTuple + */ +static HeapTuple search_from_pg_job_proc(Relation rel, Datum name) +{ + HeapTuple tuple = search_from_pg_job_proc_no_exception(rel, name); + if (!HeapTupleIsValid(tuple)) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_UNDEFINED_OBJECT), + errmsg("Can not find job with object name \'%s\'.", TextDatumGetCString(name)), + errdetail("N/A"), errcause("attribute does not exist"), erraction("Please check object name"))); + } + return tuple; +} + +/* + * @brief lookup_pg_job_proc + * + * @param name + * @param job_id + * @param job_action + */ +void lookup_pg_job_proc(Datum name, Datum *job_id, Datum *job_action) +{ + bool isnull = false; + Relation rel = heap_open(PgJobProcRelationId, AccessShareLock); + HeapTuple tuple = search_from_pg_job_proc(rel, name); + /* integer job id */ + if (job_id != NULL) { + *job_id = heap_getattr(tuple, Anum_pg_job_proc_job_id, rel->rd_att, &isnull); + if (isnull) { + *job_id = 0; + } + } + + if (job_action != NULL) { + /* text: job action */ + Datum job_action_src = heap_getattr(tuple, Anum_pg_job_proc_what, rel->rd_att, &isnull); + if (isnull) { + *job_action = Datum(0); + } else { + *job_action = PointerGetDatum(PG_DETOAST_DATUM_COPY(job_action_src)); + } + } + + heap_close(rel, AccessShareLock); +} + +/* + * @brief dbe_update_pg_job_proc + * + * @param job_action + * @param job_name + */ +void dbe_update_pg_job_proc(Datum job_action, const Datum job_name) +{ + Datum values[Natts_pg_job_proc]; + bool nulls[Natts_pg_job_proc]; + + bool replaces[Natts_pg_job_proc]; + (void)memset_s(replaces, sizeof(replaces), 0, sizeof(replaces)); + + Relation rel = heap_open(PgJobProcRelationId, RowExclusiveLock); + + replaces[Anum_pg_job_proc_what - 1] = true; + values[Anum_pg_job_proc_what - 1] = job_action; + nulls[Anum_pg_job_proc_what - 1] = false; + + HeapTuple oldtuple = search_from_pg_job_proc(rel, job_name); + + HeapTuple newtuple = heap_modify_tuple(oldtuple, RelationGetDescr(rel), values, nulls, replaces); + simple_heap_update(rel, &newtuple->t_self, newtuple); + CatalogUpdateIndexes(rel, newtuple); + + heap_close(rel, RowExclusiveLock); + heap_freetuple_ext(oldtuple); + heap_freetuple_ext(newtuple); +} diff --git a/src/common/backend/catalog/pg_object.cpp b/src/common/backend/catalog/pg_object.cpp index edb2a930e..b933653eb 100644 --- a/src/common/backend/catalog/pg_object.cpp +++ b/src/common/backend/catalog/pg_object.cpp @@ -1,5 +1,6 @@ /* * Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors * * openGauss is licensed under Mulan PSL v2. * You can use this software according to the terms and conditions of the Mulan PSL v2. @@ -424,6 +425,9 @@ PgObjectType GetPgObjectTypePgClass(char relkind) case RELKIND_SEQUENCE: objectType = OBJECT_TYPE_SEQUENCE; break; + case RELKIND_LARGE_SEQUENCE: + objectType = OBJECT_TYPE_LARGE_SEQUENCE; + break; case RELKIND_INDEX: case RELKIND_GLOBAL_INDEX: objectType = OBJECT_TYPE_INDEX; @@ -465,6 +469,7 @@ void recordCommentObjectTime(ObjectAddress addr, Relation rel, ObjectType objTyp switch (objType) { case OBJECT_INDEX: case OBJECT_SEQUENCE: + case OBJECT_LARGE_SEQUENCE: case OBJECT_TABLE: case OBJECT_VIEW: case OBJECT_CONTQUERY: diff --git a/src/common/backend/catalog/pg_partition.cpp b/src/common/backend/catalog/pg_partition.cpp index 6340fe686..ef5ddb688 100644 --- a/src/common/backend/catalog/pg_partition.cpp +++ b/src/common/backend/catalog/pg_partition.cpp @@ -2,6 +2,7 @@ * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * openGauss is licensed under Mulan PSL v2. * You can use this software according to the terms and conditions of the Mulan PSL v2. @@ -34,6 +35,7 @@ #include "tcop/utility.h" #include "utils/acl.h" #include "utils/inval.h" +#include "utils/lsyscache.h" #include "utils/syscache.h" #include "access/genam.h" #include "access/multixact.h" @@ -55,7 +57,8 @@ void insertPartitionEntry(Relation pg_partition_desc, Partition new_part_desc, O pd_part = new_part_desc->pd_part; Assert(pd_part->parttype == PART_OBJ_TYPE_PARTED_TABLE || pd_part->parttype == PART_OBJ_TYPE_TOAST_TABLE || - pd_part->parttype == PART_OBJ_TYPE_TABLE_PARTITION || pd_part->parttype == PART_OBJ_TYPE_INDEX_PARTITION); + pd_part->parttype == PART_OBJ_TYPE_TABLE_PARTITION || pd_part->parttype == PART_OBJ_TYPE_INDEX_PARTITION || + pd_part->parttype == PART_OBJ_TYPE_TABLE_SUB_PARTITION); /* This is a tad tedious, but way cleaner than what we used to do... */ errorno = memset_s(values, sizeof(values), 0, sizeof(values)); @@ -172,6 +175,22 @@ typedef struct { bool topClosed; /* whether the top range is closed or open */ } GetPartitionOidArgs; +void ExceptionHandlerForPartition(GetPartitionOidArgs *args, Oid partitionOid, bool missingOk) +{ + // For subpartition, we'll deal with it in subPartitionGetSubPartitionOid + if (args->objectType != PART_OBJ_TYPE_TABLE_SUB_PARTITION && !OidIsValid(partitionOid)) { + if (!missingOk) { + if (args->partitionName != NULL) { + ereport(ERROR, (errcode(ERRCODE_UNDEFINED_OBJECT), + errmsg("partition \"%s\" does not exist", args->partitionName))); + } else { + /* here partitionOid is InvalidOid, so it's meaningless to print its value */ + ereport(ERROR, (errcode(ERRCODE_UNDEFINED_OBJECT), errmsg("Specified partition does not exist"))); + } + } + } +} + /* * @Description: get partitoin oid from partition name or values list * @Param[IN] args: info about partition name or values list. @@ -311,18 +330,41 @@ static Oid partitionGetPartitionOid(GetPartitionOidArgs* args, LOCKMODE lockMode partitionOldOid = partitionOid; } + ExceptionHandlerForPartition(args, partitionOid, missingOk); + + return partitionOid; +} + +Oid SubPartitionGetSubPartitionOid(GetPartitionOidArgs *args, Oid partitionedRelationOid, Oid *partOidForSubPart, + LOCKMODE lockMode, bool missingOk, bool noWait) +{ + Relation rel = relation_open(partitionedRelationOid, lockMode); + List *partOidList = relationGetPartitionOidList(rel); + ListCell *cell = NULL; + Oid partitionOid = InvalidOid; + foreach (cell, partOidList) { + Oid partOid = lfirst_oid(cell); + args->partitionedRelOid = partOid; + partitionOid = partitionGetPartitionOid(args, lockMode, missingOk, noWait); + if (OidIsValid(partitionOid)) { + *partOidForSubPart = partOid; + break; + } + } + relation_close(rel, lockMode); + if (!OidIsValid(partitionOid)) { if (!missingOk) { if (args->partitionName != NULL) { - ereport(ERROR, - (errcode(ERRCODE_UNDEFINED_OBJECT), - errmsg("partition \"%s\" does not exist", args->partitionName))); + ereport(ERROR, (errcode(ERRCODE_UNDEFINED_OBJECT), + errmsg("subpartition \"%s\" does not exist", args->partitionName))); } else { - /* here partitionOid is InvalidOid, so it's meaningless to print its value */ - ereport(ERROR, (errcode(ERRCODE_UNDEFINED_OBJECT), errmsg("Specified partition does not exist"))); + /* here subpartitionOid is InvalidOid, so it's meaningless to print its value */ + ereport(ERROR, (errcode(ERRCODE_UNDEFINED_OBJECT), errmsg("Specified subpartition does not exist"))); } } } + return partitionOid; } @@ -338,7 +380,7 @@ static Oid partitionGetPartitionOid(GetPartitionOidArgs* args, LOCKMODE lockMode */ Oid partitionNameGetPartitionOid(Oid partitionedRelationOid, const char* partitionName, char objectType, LOCKMODE lockMode, bool missingOk, bool noWait, PartitionNameGetPartidCallback callback, void* callback_arg, - LOCKMODE callbackobj_lockMode) + LOCKMODE callbackobj_lockMode, Oid *partOidForSubPart) { if (!OidIsValid(partitionedRelationOid) || !PointerIsValid(partitionName)) { return InvalidOid; @@ -360,7 +402,13 @@ Oid partitionNameGetPartitionOid(Oid partitionedRelationOid, const char* partiti Relation partitionRelRelation = relation_open(PartitionRelationId, AccessShareLock); - Oid partitionOid = partitionGetPartitionOid(&args, lockMode, missingOk, noWait); + Oid partitionOid = InvalidOid; + if (objectType == PART_OBJ_TYPE_TABLE_SUB_PARTITION) { + partitionOid = SubPartitionGetSubPartitionOid(&args, partitionedRelationOid, partOidForSubPart, lockMode, + missingOk, noWait); + } else { + partitionOid = partitionGetPartitionOid(&args, lockMode, missingOk, noWait); + } relation_close(partitionRelRelation, AccessShareLock); @@ -693,7 +741,9 @@ List* getPartitionObjectIdList(Oid relid, char relkind) HeapTuple tuple = NULL; /* only a table or index can have partitions */ - Assert(PART_OBJ_TYPE_TABLE_PARTITION == relkind || PART_OBJ_TYPE_INDEX_PARTITION == relkind); + Assert(PART_OBJ_TYPE_TABLE_PARTITION == relkind || + PART_OBJ_TYPE_INDEX_PARTITION == relkind || + PART_OBJ_TYPE_TABLE_SUB_PARTITION == relkind); relation = heap_open(PartitionRelationId, AccessShareLock); @@ -792,12 +842,24 @@ List* searchPgPartitionByParentId(char parttype, Oid parentId) } /* - * @@GaussDB@@ - * Target : data partition - * Brief : - * Description : - * Notes : + * Get the sub-partition list-list */ +List* searchPgSubPartitionByParentId(char parttype, List *partTuples) +{ + List *result = NIL; + ListCell *lc = NULL; + + foreach (lc, partTuples) + { + HeapTuple tuple = (HeapTuple)lfirst(lc); + Oid parentOid = HeapTupleGetOid(tuple); + List *subPartTuples = searchPgPartitionByParentId(parttype, parentOid); + result = lappend(result, subPartTuples); + } + + return result; +} + void freePartList(List* plist) { ListCell* tuplecell = NULL; @@ -816,6 +878,298 @@ void freePartList(List* plist) } } +void freeSubPartList(List* plist) +{ + ListCell* cell = NULL; + + foreach (cell, plist) { + List *subParts = (List *)lfirst(cell); + freePartList(subParts); + } + + if (PointerIsValid(plist)) { + pfree_ext(plist); + } +} + +/* IMPORTANT: This function will case invalidation message process, the relation may + be rebuild, and the relation->partMap may be changed. + After call this founction, should not call getNumberOfRangePartitions/getNumberOfPartitions, + using list_length(partitionList) instead + */ +List* relationGetPartitionList(Relation relation, LOCKMODE lockmode) +{ + List* partitionOidList = NIL; + List* partitionList = NIL; + + partitionOidList = relationGetPartitionOidList(relation); + if (PointerIsValid(partitionOidList)) { + ListCell* cell = NULL; + Oid partitionId = InvalidOid; + Partition partition = NULL; + + foreach (cell, partitionOidList) { + partitionId = lfirst_oid(cell); + Assert(OidIsValid(partitionId)); + partition = partitionOpen(relation, partitionId, lockmode); + partitionList = lappend(partitionList, partition); + } + + list_free_ext(partitionOidList); + } + + return partitionList; +} + +List* RelationGetSubPartitionList(Relation relation, LOCKMODE lockmode) +{ + List* partitionOidList = NIL; + List* subPartList = NIL; + + partitionOidList = relationGetPartitionOidList(relation); + if (PointerIsValid(partitionOidList)) { + ListCell* cell = NULL; + Oid partitionId = InvalidOid; + Partition partition = NULL; + + foreach (cell, partitionOidList) { + partitionId = lfirst_oid(cell); + Assert(OidIsValid(partitionId)); + partition = partitionOpen(relation, partitionId, lockmode); + Relation partRel = partitionGetRelation(relation, partition); + List* subPartListTmp = relationGetPartitionList(partRel, lockmode); + subPartList = list_concat(subPartList, subPartListTmp); + releaseDummyRelation(&partRel); + partitionClose(relation, partition, lockmode); + } + + list_free_ext(partitionOidList); + } + + return subPartList; +} + +// give one partitioned index relation, +// return a list, consisting of oid of all its index partition +List* indexGetPartitionOidList(Relation indexRelation) +{ + List* indexPartitionOidList = NIL; + List* indexPartitionTupleList = NIL; + ListCell* cell = NULL; + + if (indexRelation->rd_rel->relkind != RELKIND_INDEX || RelationIsNonpartitioned(indexRelation)) + return indexPartitionOidList; + indexPartitionTupleList = searchPgPartitionByParentId(PART_OBJ_TYPE_INDEX_PARTITION, indexRelation->rd_id); + foreach (cell, indexPartitionTupleList) { + Oid indexPartOid = HeapTupleGetOid((HeapTuple)lfirst(cell)); + if (OidIsValid(indexPartOid)) { + indexPartitionOidList = lappend_oid(indexPartitionOidList, indexPartOid); + } + } + + freePartList(indexPartitionTupleList); + return indexPartitionOidList; +} + +List* indexGetPartitionList(Relation indexRelation, LOCKMODE lockmode) +{ + List* indexPartitionList = NIL; + List* indexPartitionTupleList = NIL; + ListCell* cell = NULL; + + if (indexRelation->rd_rel->relkind != RELKIND_INDEX || RelationIsNonpartitioned(indexRelation)) + return indexPartitionList; + indexPartitionTupleList = searchPgPartitionByParentId(PART_OBJ_TYPE_INDEX_PARTITION, indexRelation->rd_id); + foreach (cell, indexPartitionTupleList) { + Partition indexPartition = NULL; + Oid indexPartOid = HeapTupleGetOid((HeapTuple)lfirst(cell)); + + if (OidIsValid(indexPartOid)) { + indexPartition = partitionOpen(indexRelation, indexPartOid, lockmode); + indexPartitionList = lappend(indexPartitionList, indexPartition); + } + } + + freePartList(indexPartitionTupleList); + return indexPartitionList; +} + +Relation SubPartitionGetRelation(Relation heap, Partition subPart, LOCKMODE lockmode) +{ + Oid partOid = subPart->pd_part->parentid; + Partition part = partitionOpen(heap, partOid, lockmode); + Relation partRel = partitionGetRelation(heap, part); + Relation subPartRel = partitionGetRelation(partRel, subPart); + releaseDummyRelation(&partRel); + partitionClose(heap, part, lockmode); + + return subPartRel; +} + +Relation SubPartitionOidGetParentRelation(Relation rel, Oid subPartOid, LOCKMODE lockmode) +{ + Oid parentOid = partid_get_parentid(subPartOid); + Partition part = partitionOpen(rel, parentOid, lockmode); + Relation partRel = partitionGetRelation(rel, part); + partitionClose(rel, part, lockmode); + + return partRel; +} + +void releasePartitionList(Relation relation, List** partList, LOCKMODE lockmode, bool validCheck) +{ + ListCell* cell = NULL; + Partition partition = NULL; + Relation partRel = NULL; + + foreach (cell, *partList) { + partition = (Partition)lfirst(cell); + Assert(!validCheck || PointerIsValid(partition)); + if (PointerIsValid(partition)) { + if (partition->pd_part->parentid != relation->rd_id) { + partRel = SubPartitionOidGetParentRelation(relation, partition->pd_id, lockmode); + partitionClose(partRel, partition, lockmode); + releaseDummyRelation(&partRel); + } else { + partitionClose(relation, partition, lockmode); + } + } + } + + list_free_ext(*partList); + *partList = NULL; +} + +void releaseSubPartitionList(Relation relation, List** partList, LOCKMODE lockmode) +{ + ListCell* cell = NULL; + List *subpartList = NULL; + Partition subPart = NULL; + Oid partOid = InvalidOid; + Partition part = NULL; + Relation partRel = NULL; + + foreach (cell, *partList) { + subpartList = (List *)lfirst(cell); + Assert(PointerIsValid(subpartList)); + if (RelationIsIndex(relation)) { + releasePartitionList(relation, &subpartList, lockmode); + } else { + subPart = (Partition)linitial(subpartList); + partOid = subPart->pd_part->parentid; + part = partitionOpen(relation, partOid, lockmode); + partRel = partitionGetRelation(relation, part); + releasePartitionList(partRel, &subpartList, lockmode); + releaseDummyRelation(&partRel); + partitionClose(relation, part, lockmode); + } + } + + list_free_ext(*partList); + *partList = NULL; +} + +/* + * Get partition list, free with releasePartitionOidList. + */ +List* relationGetPartitionOidList(Relation rel) +{ + List* result = NIL; + Oid partitionId = InvalidOid; + + if (rel == NULL || rel->partMap == NULL) { + return NIL; + } + + PartitionMap* map = rel->partMap; + int sumtotal = getPartitionNumber(map); + for (int conuter = 0; conuter < sumtotal; ++conuter) { + if (map->type == PART_TYPE_LIST) { + partitionId = ((ListPartitionMap*)map)->listElements[conuter].partitionOid; + } else if (map->type == PART_TYPE_HASH) { + partitionId = ((HashPartitionMap*)map)->hashElements[conuter].partitionOid; + } else { + partitionId = ((RangePartitionMap*)map)->rangeElements[conuter].partitionOid; + } + result = lappend_oid(result, partitionId); + } + + return result; +} + +/* + * Get sub-partition list, free with releasePartitionOidList. + */ +List* RelationGetSubPartitionOidList(Relation rel, LOCKMODE lockmode) +{ + if (!RelationIsSubPartitioned(rel)) + return NULL; + + List *parts = relationGetPartitionOidList(rel); + List *result = NULL; + ListCell *lc = NULL; + foreach (lc, parts) + { + Oid partOid = lfirst_oid(lc); + Partition part = partitionOpen(rel, partOid, lockmode); + Relation partRel = partitionGetRelation(rel, part); + List *subParts = relationGetPartitionOidList(partRel); + result = list_concat(result, subParts); + releaseDummyRelation(&partRel); + partitionClose(rel, part, lockmode); + } + + return result; +} + +/* + * Get sub-partition list-list, free with ReleaseSubPartitionOidList. + */ +List* RelationGetSubPartitionOidListList(Relation rel) +{ + if (!RelationIsSubPartitioned(rel)) + return NULL; + + List *parts = relationGetPartitionOidList(rel); + List *result = NULL; + ListCell *lc = NULL; + foreach (lc, parts) + { + Oid partOid = lfirst_oid(lc); + Partition part = partitionOpen(rel, partOid, AccessShareLock); + Relation partRel = partitionGetRelation(rel, part); + List *subParts = relationGetPartitionOidList(partRel); + result = lappend(result, subParts); + releaseDummyRelation(&partRel); + partitionClose(rel, part, AccessShareLock); + } + + return result; +} + +void releasePartitionOidList(List** partList) +{ + if (PointerIsValid(partList)) { + list_free_ext(*partList); + + *partList = NIL; + } +} + +void ReleaseSubPartitionOidList(List** partList) +{ + ListCell* cell = NULL; + List *subPartOidList = NULL; + + foreach (cell, *partList) { + subPartOidList = (List *)lfirst(cell); + releasePartitionOidList(&subPartOidList); + } + + list_free_ext(*partList); + *partList = NULL; +} + /* * @@GaussDB@@ * Target : data partition diff --git a/src/common/backend/catalog/pg_proc.cpp b/src/common/backend/catalog/pg_proc.cpp index cd146c108..76735029d 100644 --- a/src/common/backend/catalog/pg_proc.cpp +++ b/src/common/backend/catalog/pg_proc.cpp @@ -5,6 +5,7 @@ * * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -77,6 +78,7 @@ typedef enum CFunType { NormalType = 0, DumpType } CFunType; +#define MAXSTRLEN ((1 << 11) - 1) /* * If "Create function ... LANGUAGE SQL" include agg function, agg->aggtype * is the final aggtype. While for "Select agg()", agg->aggtype should be agg->aggtrantype. @@ -115,6 +117,38 @@ static void checkFunctionConflicts(HeapTuple oldtup, const char* procedureName, bool isAgg, bool isWindowFunc); static bool user_define_func_check(Oid languageId, const char* probin, char** absolutePath, CFunType* function_type); static const char* get_file_name(const char* filePath, CFunType function_type); +static int get_decimal_from_hex(char hex); + +static Acl* ProcAclDefault(Oid ownerId) +{ + AclMode world_default; + AclMode owner_default; + int nacl = 0; + Acl* acl = NULL; + AclItem* aip = NULL; + world_default = ACL_NO_RIGHTS; + owner_default = ACL_ALL_RIGHTS_FUNCTION; + if (world_default != ACL_NO_RIGHTS) + nacl++; + if (owner_default != ACL_NO_RIGHTS) + nacl++; + acl = allocacl(nacl); + aip = ACL_DAT(acl); + if (world_default != ACL_NO_RIGHTS) { + aip->ai_grantee = ACL_ID_PUBLIC; + aip->ai_grantor = ownerId; + ACLITEM_SET_PRIVS_GOPTIONS(*aip, world_default, ACL_NO_RIGHTS); + aip++; + } + + if (owner_default != ACL_NO_RIGHTS) { + aip->ai_grantee = ownerId; + aip->ai_grantor = ownerId; + ACLITEM_SET_PRIVS_GOPTIONS(*aip, owner_default, ACL_NO_RIGHTS); + } + + return acl; +} /* * @Description: Check character c if is special. @@ -560,9 +594,16 @@ static bool checkPackageFunctionConflicts( /* search the function */ /* Search syscache by name only */ - CatCList* catlist = NULL; + CatCList *catlist = NULL; +#ifndef ENABLE_MULTIPLE_NODES + if (t_thrd.proc->workingVersionNum < 92470) { + catlist = SearchSysCacheList1(PROCNAMEARGSNSP, CStringGetDatum(procedureName)); + } else { + catlist = SearchSysCacheList1(PROCALLARGS, CStringGetDatum(procedureName)); + } +#else catlist = SearchSysCacheList1(PROCNAMEARGSNSP, CStringGetDatum(procedureName)); - +#endif for (int i = 0; i < catlist->n_members; i++) { proctup = &catlist->members[i]->tuple; Oid* argtypes = NULL; @@ -573,7 +614,6 @@ static bool checkPackageFunctionConflicts( oidvector* proc_allpara_type = NULL; oidvector* proc_para_type = NULL; bool result1 = false; - bool result2 = false; bool result3 = false; if (HeapTupleIsValid(proctup)) { pform = (Form_pg_proc)GETSTRUCT(proctup); @@ -635,10 +675,6 @@ static bool checkPackageFunctionConflicts( } if (proc_allpara_type != NULL) { - /* old function all param type compare new function in param type */ - result2 = DatumGetBool( - DirectFunctionCall2(oidvectoreq, PointerGetDatum(proc_allpara_type), PointerGetDatum(inpara_type))); - if (allpara_type != NULL) { /* old function all param type compare new function all param type */ result3 = DatumGetBool(DirectFunctionCall2( @@ -646,7 +682,7 @@ static bool checkPackageFunctionConflicts( } } - result = result1 || result2 || result3; + result = result1 || result3; if (proc_allpara_type != NULL) { pfree_ext(proc_allpara_type); } @@ -776,7 +812,15 @@ static void checkFunctionConflicts(HeapTuple oldtup, const char* procedureName, * names have not been changed, as this could break existing calls. We * allow adding names to formerly unnamed parameters, though. */ +#ifndef ENABLE_MULTIPLE_NODES + if (t_thrd.proc->workingVersionNum < 92470) { + proargnames = SysCacheGetAttr(PROCNAMEARGSNSP, oldtup, Anum_pg_proc_proargnames, &isnull); + } else { + proargnames = SysCacheGetAttr(PROCALLARGS, oldtup, Anum_pg_proc_proargnames, &isnull); + } +#else proargnames = SysCacheGetAttr(PROCNAMEARGSNSP, oldtup, Anum_pg_proc_proargnames, &isnull); +#endif if (!isnull) { Datum proargmodes; char** old_arg_names; @@ -785,7 +829,15 @@ static void checkFunctionConflicts(HeapTuple oldtup, const char* procedureName, int n_new_arg_names; int j; +#ifndef ENABLE_MULTIPLE_NODES + if (t_thrd.proc->workingVersionNum < 92470) { + proargmodes = SysCacheGetAttr(PROCNAMEARGSNSP, oldtup, Anum_pg_proc_proargmodes, &isnull); + } else { + proargmodes = SysCacheGetAttr(PROCALLARGS, oldtup, Anum_pg_proc_proargmodes, &isnull); + } +#else proargmodes = SysCacheGetAttr(PROCNAMEARGSNSP, oldtup, Anum_pg_proc_proargmodes, &isnull); +#endif if (isnull) { proargmodes = PointerGetDatum(NULL); } @@ -994,6 +1046,7 @@ Oid ProcedureCreate(const char* procedureName, Oid procNamespace, Oid propackage char* libPath = NULL; char* final_file_name = NULL; List* name = NULL; + /* sanity checks */ Assert(PointerIsValid(prosrc)); @@ -1235,10 +1288,39 @@ Oid ProcedureCreate(const char* procedureName, Oid procNamespace, Oid propackage } else { values[Anum_pg_proc_packageid - 1] = ObjectIdGetDatum(InvalidOid); } + if (allParameterTypes != PointerGetDatum(NULL)) values[Anum_pg_proc_proallargtypes - 1] = allParameterTypes; else nulls[Anum_pg_proc_proallargtypes - 1] = true; + + if (allParameterTypes != PointerGetDatum(NULL)) { + /* + * do this when the number of all paramters is too large + */ + if (allParamCount <= FUNC_MAX_ARGS_INROW) { + values[Anum_pg_proc_allargtypes - 1] = PointerGetDatum(allParameterTypes); + nulls[Anum_pg_proc_allargtypesext - 1] = true; + } else { + /* + * The OIDVECTOR and INT2VECTOR datatypes are storage-compatible with + * generic arrays, but they support only one-dimensional arrays with no + * nulls (and no null bitmap). + */ + oidvector* dummy = MakeMd5HashArgTypes((oidvector*)allParameterTypes); + + values[Anum_pg_proc_allargtypes - 1] = PointerGetDatum(dummy); + values[Anum_pg_proc_allargtypesext - 1] = PointerGetDatum(allParameterTypes); + } + } else if (parameterTypes != PointerGetDatum(NULL)) { + values[Anum_pg_proc_allargtypes - 1] = values[Anum_pg_proc_proargtypes - 1]; + values[Anum_pg_proc_allargtypesext - 1] = values[Anum_pg_proc_proargtypesext - 1]; + nulls[Anum_pg_proc_allargtypesext - 1] = nulls[Anum_pg_proc_proargtypesext - 1]; + } else { + nulls[Anum_pg_proc_allargtypes - 1] = true; + nulls[Anum_pg_proc_allargtypesext - 1] = true; + } + if (parameterModes != PointerGetDatum(NULL)) values[Anum_pg_proc_proargmodes - 1] = parameterModes; else @@ -1335,39 +1417,30 @@ Oid ProcedureCreate(const char* procedureName, Oid procNamespace, Oid propackage } } else { /* Check for pre-existing definition */ +#ifndef ENABLE_MULTIPLE_NODES + if (t_thrd.proc->workingVersionNum < 92470) { + oldtup = SearchSysCache3(PROCNAMEARGSNSP, + PointerGetDatum(procedureName), + values[Anum_pg_proc_proargtypes - 1], + ObjectIdGetDatum(procNamespace)); + } else { + oldtup = SearchSysCache4(PROCALLARGS, + PointerGetDatum(procedureName), + values[Anum_pg_proc_allargtypes - 1], + ObjectIdGetDatum(procNamespace), + ObjectIdGetDatum(propackageid)); + } +#else oldtup = SearchSysCache3(PROCNAMEARGSNSP, PointerGetDatum(procedureName), values[Anum_pg_proc_proargtypes - 1], ObjectIdGetDatum(procNamespace)); +#endif } if (HeapTupleIsValid(oldtup)) { /* There is one; okay to replace it? */ bool isNull = false; - Datum packageOidDatum = SysCacheGetAttr(PROCOID, oldtup, Anum_pg_proc_packageid, &isNull); - Oid oldPkgOid = DatumGetObjectId(packageOidDatum); - if (!isNull) { - if (OidIsValid(oldPkgOid)) { - if (oldPkgOid != propackageid) { - ereport(ERROR, - (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("Due to upgrade mode," - "Do not allow different package have same function name with same parameter," - "please drop package by oid %d first", oldPkgOid))); - } - } - if (OidIsValid(propackageid) && !OidIsValid(oldPkgOid)) { - ereport(ERROR, - (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("Do not allow have same function name with same parameter in this version," - "please drop function first."))); - } else if (!OidIsValid(propackageid) && OidIsValid(oldPkgOid)) { - ereport(ERROR, - (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("Do not allow have same function name with same parameter in this version," - "please drop package by oid %d first.", oldPkgOid))); - } - } checkFunctionConflicts(oldtup, procedureName, proowner, @@ -1429,8 +1502,11 @@ Oid ProcedureCreate(const char* procedureName, Oid procNamespace, Oid propackage proacl = get_user_default_acl(ACL_OBJECT_FUNCTION, proowner, procNamespace); if (proacl != NULL) values[Anum_pg_proc_proacl - 1] = PointerGetDatum(proacl); - else + else if (PLSQL_SECURITY_DEFINER){ + values[Anum_pg_proc_proacl - 1] = PointerGetDatum(ProcAclDefault(proowner)); + } else { nulls[Anum_pg_proc_proacl - 1] = true; + } tup = heap_form_tuple(tupDesc, values, nulls); @@ -1458,6 +1534,9 @@ Oid ProcedureCreate(const char* procedureName, Oid procNamespace, Oid propackage if (is_update) { (void)deleteDependencyRecordsFor(ProcedureRelationId, retval, true); + /* drop the types build on procedure */ + DeleteTypesDenpendOnPackage(ProcedureRelationId, retval); + /* the 'shared dependencies' also change when update. */ deleteSharedDependencyRecordsFor(ProcedureRelationId, retval, 0); @@ -2203,7 +2282,16 @@ Node *plpgsql_create_proc_operator_ref(ParseState *pstate, Node *left, Node *rig } char *argmodes = NULL; bool isNull = false; - Datum proargmodes = SysCacheGetAttr(PROCNAMEARGSNSP, tuple, Anum_pg_proc_proargmodes, &isNull); + Datum proargmodes; +#ifndef ENABLE_MULTIPLE_NODES + if (t_thrd.proc->workingVersionNum < 92470) { + proargmodes = SysCacheGetAttr(PROCNAMEARGSNSP, tuple, Anum_pg_proc_proargmodes, &isNull); + } else { + proargmodes = SysCacheGetAttr(PROCALLARGS, tuple, Anum_pg_proc_proargmodes, &isNull); + } +#else + proargmodes = SysCacheGetAttr(PROCNAMEARGSNSP, tuple, Anum_pg_proc_proargmodes, &isNull); +#endif if (!isNull) { ArrayType *arr = DatumGetArrayTypeP(proargmodes); /* ensure not toasted */ if (arr) { @@ -2238,11 +2326,48 @@ Node *plpgsql_create_proc_operator_ref(ParseState *pstate, Node *left, Node *rig return NULL; } +bool isSameParameterList(List* parameterList1, List* parameterList2) +{ + int length1 = list_length(parameterList1); + int length2 = list_length(parameterList2); + if (length1 != length2) { + return false; + } + ListCell* cell1 = NULL; + foreach(cell1, parameterList1) { + DefElem* defel1 = (DefElem*)lfirst(cell1); + bool match = false; + ListCell* cell2 = NULL; + foreach(cell2, parameterList2) { + DefElem* defel2 = (DefElem*)lfirst(cell2); + if (strcmp(defel1->defname, defel2->defname) != 0) { + continue; + } + match = true; + /* mutable param must equal */ + if (strcmp(defel1->defname, "volatility") != 0) { + break; + } + char* str1 = strVal(defel1->arg); + char* str2 = strVal(defel2->arg); + if (strcmp(str1, str2) != 0) { + return false; + } + break; + } + if (!match) { + return false; + } + } + return true; +} /* * judage the two arglis is same or not */ -bool isSameArgList(List* argList1, List* argList2) +bool isSameArgList(CreateFunctionStmt* stmt1, CreateFunctionStmt* stmt2) { + List* argList1 = stmt1->parameters; + List* argList2 = stmt2->parameters; ListCell* cell = NULL; int length1 = list_length(argList1); int length2 = list_length(argList2); @@ -2250,8 +2375,8 @@ bool isSameArgList(List* argList1, List* argList2) if (length1 != length2) { return false; } - FunctionParameter* arr1[length1]; - FunctionParameter* arr2[length2]; + FunctionParameter** arr1 = (FunctionParameter**)palloc0(length1 * sizeof(FunctionParameter*)); + FunctionParameter** arr2 = (FunctionParameter**)palloc0(length2 * sizeof(FunctionParameter*)); int length = 0; foreach(cell, argList1) { arr1[length] = (FunctionParameter*)lfirst(cell); @@ -2271,6 +2396,7 @@ bool isSameArgList(List* argList1, List* argList2) Oid toid2; Type typtup1; Type typtup2; + errno_t rc; typtup1 = LookupTypeName(NULL, t1, NULL); typtup2 = LookupTypeName(NULL, t2, NULL); if (HeapTupleIsValid(typtup1)) { @@ -2279,6 +2405,10 @@ bool isSameArgList(List* argList1, List* argList2) } else { toid1 = findPackageParameter(strVal(linitial(t1->names))); if (!OidIsValid(toid1)) { + char message[MAXSTRLEN]; + rc = sprintf_s(message, MAXSTRLEN, "type is not exists %s.", fp1->name); + securec_check_ss_c(rc, "", ""); + InsertErrorMessage(message, stmt1->startLineNumber); ereport(ERROR, (errmodule(MOD_PLSQL), errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("type is not exists %s.", fp1->name), @@ -2293,6 +2423,10 @@ bool isSameArgList(List* argList1, List* argList2) } else { toid2 = findPackageParameter(strVal(linitial(t2->names))); if (!OidIsValid(toid2)) { + char message[MAXSTRLEN]; + rc = sprintf_s(message, MAXSTRLEN, "type is not exists %s.", fp2->name); + securec_check_ss_c(rc, "", ""); + InsertErrorMessage(message, stmt1->startLineNumber); ereport(ERROR, (errmodule(MOD_PLSQL), errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("type is not exists %s.", fp2->name), @@ -2302,9 +2436,13 @@ bool isSameArgList(List* argList1, List* argList2) } } if (toid1 != toid2 || fp1->mode != fp2->mode) { + pfree(arr1); + pfree(arr2); return false; } } + pfree(arr1); + pfree(arr2); return true; } @@ -2316,6 +2454,59 @@ char* getFuncName(List* funcNameList) { return funcname; } +/* Return decimal value for a hexadecimal digit */ +static int get_decimal_from_hex(char hex) +{ + if (isdigit((unsigned char)hex)) { + return (hex - '0'); + } else { + const int decimal_base = 10; + return ((tolower((unsigned char)hex) - 'a') + decimal_base); + } +} + +oidvector* MakeMd5HashArgTypes(oidvector* paramterTypes) +{ + char hex[MD5_HASH_LEN + 1]; + + Oid* oidvec = paramterTypes->values; + int parameterCount = paramterTypes->dim1; + + StringInfoData oidvec2str; + initStringInfo(&oidvec2str); + int i; + for (i = 0; i < parameterCount - 1; i++) { + appendStringInfo(&oidvec2str, "%d", oidvec[i]); + appendStringInfoSpaces(&oidvec2str, 1); + } + appendStringInfo(&oidvec2str, "%d", oidvec[parameterCount - 1]); + + /* + * convert oidvector to text and make md5 hash + */ + text* in_text = cstring_to_text(oidvec2str.data); + size_t len = VARSIZE_ANY_EXHDR(in_text); + if (!pg_md5_hash(VARDATA_ANY(in_text), len, hex)) { + ereport(ERROR, (errcode(ERRCODE_OUT_OF_MEMORY), errmsg("out of memory"))); + } + + pfree_ext(oidvec2str.data); + pfree_ext(in_text); + in_text = NULL; + + /* + * hex: an MD5 sum is 16 bytes long. + * each byte is represented by two heaxadecimal characters. + */ + Oid hex2oid[MD5_HASH_LEN]; + for (i = 0; i < MD5_HASH_LEN; i++) { + hex2oid[i] = get_decimal_from_hex(hex[i]); + } + + /* Build a oidvector using the hash value and use it as allargtypes field value. */ + return buildoidvector(hex2oid, MD5_HASH_LEN); +} + oidvector* ProcedureGetArgTypes(HeapTuple tuple) { oidvector* proargs; @@ -2336,3 +2527,17 @@ oidvector* ProcedureGetArgTypes(HeapTuple tuple) } return proargs; } + +Datum ProcedureGetAllArgTypes(HeapTuple tuple, bool* isNull) +{ + /* + * Get allargtypes from ext when allargtypesext is not null, + * which means the number of args greater than FUNC_MAX_ARGS_INROW, + * and allargtypes stored md5 of the origin value. + */ + Datum allargtypes = SysCacheGetAttr(PROCOID, tuple, Anum_pg_proc_allargtypesext, isNull); + if (*isNull) { + allargtypes = SysCacheGetAttr(PROCOID, tuple, Anum_pg_proc_allargtypes, isNull); + } + return allargtypes; +} diff --git a/src/common/backend/catalog/pg_shdepend.cpp b/src/common/backend/catalog/pg_shdepend.cpp index 44829cf9d..c39d4264a 100644 --- a/src/common/backend/catalog/pg_shdepend.cpp +++ b/src/common/backend/catalog/pg_shdepend.cpp @@ -5,6 +5,7 @@ * * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -21,6 +22,7 @@ #include "catalog/catalog.h" #include "catalog/dependency.h" #include "catalog/indexing.h" +#include "catalog/gs_package.h" #include "catalog/pg_authid.h" #include "catalog/pg_collation.h" #include "catalog/pg_conversion.h" @@ -157,6 +159,42 @@ void recordDependencyOnOwner(Oid classId, Oid objectId, Oid owner, const char* o recordSharedDependencyOn(&myself, &referenced, SHARED_DEPENDENCY_OWNER, objfile); } +/* + * recordDependencyOnPackage + * + * Register the dependencies to packages in batch. + */ +void recordDependencyOnPackage(Oid classId, Oid objectId, List* pkgOidList) +{ + ObjectAddress myself; + int nSkip = 0; + int referencedCnt = 0; + if ((referencedCnt = list_length(pkgOidList)) == 0) { + return; + } + + myself.classId = classId; + myself.objectId = objectId; + myself.objectSubId = 0; + + ObjectAddress* referenced = (ObjectAddress*)palloc(sizeof(ObjectAddress) * referencedCnt); + ObjectAddress* cursor = referenced; + ListCell* lc = NULL; + foreach(lc, pkgOidList) { + Oid pkgOid = lfirst_oid(lc); + if (pkgOid == objectId) { + nSkip++; + continue; + } + cursor->classId = PackageRelationId; + cursor->objectId = lfirst_oid(lc); + cursor->objectSubId = 0; + cursor++; + } + recordMultipleDependencies(&myself, referenced, referencedCnt - nSkip, DEPENDENCY_AUTO); + pfree_ext(referenced); +} + #ifdef ENABLE_MOT void recordDependencyOnDatabase(Oid classId, Oid objectId, Oid serverId, Oid database, const char* objfile) { diff --git a/src/common/backend/catalog/pg_synonym.cpp b/src/common/backend/catalog/pg_synonym.cpp index 32c91dd94..73e22ecdc 100644 --- a/src/common/backend/catalog/pg_synonym.cpp +++ b/src/common/backend/catalog/pg_synonym.cpp @@ -1,5 +1,6 @@ /* * Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors * * openGauss is licensed under Mulan PSL v2. * You can use this software according to the terms and conditions of the Mulan PSL v2. @@ -441,8 +442,10 @@ char* CheckReferencedObject(Oid relOid, RangeVar* objVar, const char* synName) &detail, _("Maybe you want to use synonym to reference a type object, but it is not yet supported.")); break; case RELKIND_SEQUENCE: + case RELKIND_LARGE_SEQUENCE: appendStringInfo(&detail, - _("Maybe you want to use synonym to reference a sequence object, but it is not yet supported.")); + _("Maybe you want to use synonym to reference a (large) sequence object, " + "but it is not yet supported.")); break; default: appendStringInfo(&detail, diff --git a/src/common/backend/catalog/storage.cpp b/src/common/backend/catalog/storage.cpp index 3d8ee8893..02c4a420d 100644 --- a/src/common/backend/catalog/storage.cpp +++ b/src/common/backend/catalog/storage.cpp @@ -5,6 +5,7 @@ * * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -32,6 +33,7 @@ #include "catalog/catalog.h" #include "catalog/dependency.h" #include "catalog/dfsstore_ctlg.h" +#include "catalog/pg_partition_fn.h" #include "catalog/storage.h" #include "catalog/storage_gtt.h" #include "catalog/storage_xlog.h" diff --git a/src/common/backend/catalog/storage_gtt.cpp b/src/common/backend/catalog/storage_gtt.cpp index 15415ccdc..6d52e52df 100644 --- a/src/common/backend/catalog/storage_gtt.cpp +++ b/src/common/backend/catalog/storage_gtt.cpp @@ -6,6 +6,7 @@ * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 2010-2012 Postgres-XC Development Group + * Portions Copyright (c) 2021, openGauss Contributors * * IDENTIFICATION * src/backend/catalog/storage_gtt.c @@ -402,7 +403,7 @@ void remember_gtt_storage_info(const RelFileNode rnode, Relation rel) } } - if (entry->relkind == RELKIND_RELATION || entry->relkind == RELKIND_SEQUENCE) { + if (entry->relkind == RELKIND_RELATION || RELKIND_IS_SEQUENCE(entry->relkind)) { gtt_storage_checkin(relid); } } @@ -428,11 +429,7 @@ void remember_gtt_storage_info(const RelFileNode rnode, Relation rel) (void)MemoryContextSwitchTo(oldcontext); if (!u_sess->gtt_ctx.gtt_cleaner_exit_registered) { - if (!ENABLE_THREAD_POOL) { - on_shmem_exit(gtt_storage_removeall, 0); - } else { - u_sess->gtt_ctx.gtt_sess_exit = gtt_storage_removeall; - } + u_sess->gtt_ctx.gtt_sess_exit = gtt_storage_removeall; u_sess->gtt_ctx.gtt_cleaner_exit_registered = true; } @@ -477,7 +474,7 @@ void forget_gtt_storage_info(Oid relid, const RelFileNode rnode, bool isCommit) Assert(dRnode); } else { if (entry->relfilenode_list == NIL) { - if (entry->relkind == RELKIND_RELATION || entry->relkind == RELKIND_SEQUENCE) + if (entry->relkind == RELKIND_RELATION || RELKIND_IS_SEQUENCE(entry->relkind)) gtt_storage_checkout(relid, false, isCommit); gtt_free_statistics(entry); @@ -498,7 +495,7 @@ void forget_gtt_storage_info(Oid relid, const RelFileNode rnode, bool isCommit) entry->relfilenode_list = list_delete_ptr(entry->relfilenode_list, dRnode); pfree(dRnode); if (entry->relfilenode_list == NIL) { - if (entry->relkind == RELKIND_RELATION || entry->relkind == RELKIND_SEQUENCE) + if (entry->relkind == RELKIND_RELATION || RELKIND_IS_SEQUENCE(entry->relkind)) gtt_storage_checkout(relid, false, isCommit); if (isCommit && entry->oldrelid != InvalidOid) { @@ -604,7 +601,7 @@ static void gtt_storage_removeall(int code, Datum arg) if (nrels) { (void)LWLockAcquire(&t_thrd.shemem_ptr_cxt.gtt_shared_ctl->lock, LW_EXCLUSIVE); for (i = 0; i < nrels; i++) { - if (relkinds[i] == RELKIND_RELATION || relkinds[i] == RELKIND_SEQUENCE) + if (relkinds[i] == RELKIND_RELATION || RELKIND_IS_SEQUENCE(relkinds[i])) gtt_storage_checkout(relids[i], true, false); } LWLockRelease(&t_thrd.shemem_ptr_cxt.gtt_shared_ctl->lock); diff --git a/src/common/backend/catalog/system_views.sql b/src/common/backend/catalog/system_views.sql index 846127232..883bdb3ff 100644 --- a/src/common/backend/catalog/system_views.sql +++ b/src/common/backend/catalog/system_views.sql @@ -2,6 +2,7 @@ * PostgreSQL System Views * * Copyright (c) 1996-2012, PostgreSQL Global Development Group + * Portions Copyright (c) 2021, openGauss Contributors * * src/backend/catalog/system_views.sql */ @@ -344,7 +345,7 @@ CREATE VIEW pg_catalog.pg_gtt_attached_pids WITH (security_barrier) AS FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace - WHERE c.relpersistence='g' AND c.relkind in('r','S'); + WHERE c.relpersistence='g' AND c.relkind in('r', 'S', 'L'); CREATE VIEW pg_catalog.pg_gtt_stats WITH (security_barrier) AS SELECT s.nspname AS schemaname, @@ -583,6 +584,7 @@ SELECT WHEN rel.relkind = 'v' THEN 'view'::text WHEN rel.relkind = 'm' THEN 'materialized view'::text WHEN rel.relkind = 'S' THEN 'sequence'::text + WHEN rel.relkind = 'L' THEN 'large sequence'::text WHEN rel.relkind = 'f' THEN 'foreign table'::text END AS objtype, rel.relnamespace AS objnamespace, CASE WHEN pg_table_is_visible(rel.oid) @@ -909,7 +911,7 @@ CREATE VIEW pg_statio_all_sequences AS pg_stat_get_blocks_hit(C.oid) AS blks_hit FROM pg_class C LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace) - WHERE C.relkind = 'S'; + WHERE C.relkind = 'S' or C.relkind = 'L'; CREATE VIEW pg_statio_sys_sequences AS SELECT * FROM pg_statio_all_sequences @@ -1849,10 +1851,6 @@ CREATE VIEW pg_user_mappings AS REVOKE ALL on pg_user_mapping FROM public; ---some function will use the new column that use -CREATE OR REPLACE VIEW PG_CATALOG.SYS_DUMMY AS (SELECT 'X'::TEXT AS DUMMY); -GRANT SELECT ON TABLE SYS_DUMMY TO PUBLIC; - -- these functions are added for supporting default format transformation CREATE OR REPLACE FUNCTION to_char(NUMERIC) RETURNS VARCHAR2 @@ -3117,6 +3115,21 @@ LANGUAGE 'plpgsql' NOT FENCED; REVOKE ALL on FUNCTION pg_catalog.copy_error_log_create() FROM public; +CREATE OR REPLACE FUNCTION pg_catalog.copy_summary_create() +RETURNS bool +AS $$ +DECLARE + BEGIN + EXECUTE 'CREATE TABLE public.gs_copy_summary + (relname varchar, begintime timestamptz, endtime timestamptz, + id bigint, pid bigint, readrows bigint, skiprows bigint, loadrows bigint, errorrows bigint, whenrows bigint, allnullrows bigint, detail text);'; + + EXECUTE 'CREATE INDEX gs_copy_summary_idx on public.gs_copy_summary (id);'; + + return true; + END; $$ +LANGUAGE 'plpgsql' NOT FENCED; + -- Get all control group information including installation group and logic cluster group. CREATE OR REPLACE FUNCTION pg_catalog.gs_get_control_group_info() RETURNS setof record @@ -3458,9 +3471,39 @@ CREATE unlogged table statement_history( REVOKE ALL on table pg_catalog.statement_history FROM public; create index statement_history_time_idx on pg_catalog.statement_history USING btree (start_time, is_slow_sql); +CREATE TABLE DBE_PLDEVELOPER.gs_source +( + id oid, + owner bigint, + nspid oid, + name name, + type text, + status boolean, + src text +); +CREATE INDEX DBE_PLDEVELOPER.gs_source_id_idx ON DBE_PLDEVELOPER.gs_source USING btree(id); +CREATE INDEX DBE_PLDEVELOPER.gs_source_idx ON DBE_PLDEVELOPER.gs_source USING btree(owner, nspid, name, type); +GRANT SELECT,INSERT,UPDATE,DELETE ON TABLE DBE_PLDEVELOPER.gs_source TO PUBLIC; + +CREATE TABLE DBE_PLDEVELOPER.gs_errors +( + id oid, + owner bigint, + nspid oid, + name name, + type text, + line int, + src text +); +CREATE INDEX DBE_PLDEVELOPER.gs_errors_id_idx ON DBE_PLDEVELOPER.gs_source USING btree(id); +CREATE INDEX DBE_PLDEVELOPER.gs_errors_idx ON DBE_PLDEVELOPER.gs_errors USING btree(owner, nspid, name); +GRANT SELECT,INSERT,UPDATE,DELETE ON TABLE DBE_PLDEVELOPER.gs_errors TO PUBLIC; + CREATE OR REPLACE VIEW PG_CATALOG.SYS_DUMMY AS (SELECT 'X'::TEXT AS DUMMY); GRANT SELECT ON TABLE SYS_DUMMY TO PUBLIC; +CREATE TYPE pg_catalog.bulk_exception as (error_index integer, error_code integer, error_message text); + CREATE VIEW pg_publication_tables AS SELECT P.pubname AS pubname, @@ -3488,4 +3531,4 @@ CREATE VIEW pg_replication_origin_status AS SELECT * FROM pg_show_replication_origin_status(); -REVOKE ALL ON pg_replication_origin_status FROM public; \ No newline at end of file +REVOKE ALL ON pg_replication_origin_status FROM public; diff --git a/src/common/backend/catalog/toasting.cpp b/src/common/backend/catalog/toasting.cpp index 063e9591e..7571f1b55 100644 --- a/src/common/backend/catalog/toasting.cpp +++ b/src/common/backend/catalog/toasting.cpp @@ -6,6 +6,7 @@ * * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * IDENTIFICATION * src/common/backend/catalog/toasting.cpp @@ -26,6 +27,7 @@ #include "catalog/namespace.h" #include "catalog/pg_namespace.h" #include "catalog/pg_opclass.h" +#include "catalog/pg_partition_fn.h" #include "catalog/pg_type.h" #include "catalog/toasting.h" #include "catalog/pg_hashbucket.h" @@ -410,6 +412,55 @@ bool createToastTableForPartition(Oid relOid, Oid partOid, Datum reloptions, LOC return result; } +bool CreateToastTableForSubPartition(Relation partRel, Oid subPartOid, Datum reloptions, LOCKMODE partLockMode) +{ + Partition partition = NULL; + Relation subPartRel = NULL; + bool result = false; + + /* already toasted? */ + if (partitionHasToast(subPartOid)) { + return false; + } + + partition = partitionOpen(partRel, subPartOid, partLockMode); + + /* + * create toast table for the special table subpartition + * fake a relation and then invoke create_toast_table to + * create the toast table + */ + subPartRel = partitionGetRelation(partRel, partition); + + Assert(PointerIsValid(subPartRel)); + result = + create_toast_table(subPartRel, InvalidOid, InvalidOid, reloptions, true, (partLockMode == AccessShareLock)); + + releaseDummyRelation(&subPartRel); + partitionClose(partRel, partition, partLockMode); + + return result; +} + +bool CreateToastTableForPartitioneOfSubpartTable(Relation rel, Oid partOid, Datum reloptions, LOCKMODE partLockMode) +{ + bool result = false; + ListCell *cell = NULL; + Partition part = partitionOpen(rel, partOid, partLockMode); + Relation partRel = partitionGetRelation(rel, part); + + List *partitionList = relationGetPartitionOidList(partRel); + foreach (cell, partitionList) { + Oid subPartOid = DatumGetObjectId(lfirst(cell)); + result = CreateToastTableForSubPartition(partRel, subPartOid, reloptions, partLockMode); + } + + releaseDummyRelation(&partRel); + partitionClose(rel, part, partLockMode); + + return result; +} + /* * @@GaussDB@@ * Target : data partition @@ -423,7 +474,7 @@ bool createToastTableForPartition(Oid relOid, Oid partOid, Datum reloptions, LOC */ static bool createToastTableForPartitionedTable(Relation rel, Datum reloptions, LOCKMODE partLockMode) { - Oid partition = InvalidOid; + Oid partitionOid = InvalidOid; List* partitionList = NIL; ListCell* cell = NULL; bool result = false; @@ -444,8 +495,12 @@ static bool createToastTableForPartitionedTable(Relation rel, Datum reloptions, partitionList = relationGetPartitionOidList(rel); foreach (cell, partitionList) { - partition = DatumGetObjectId(lfirst(cell)); - result = createToastTableForPartition(rel->rd_id, partition, reloptions, partLockMode); + partitionOid = DatumGetObjectId(lfirst(cell)); + if (RelationIsSubPartitioned(rel)) { + result = CreateToastTableForPartitioneOfSubpartTable(rel, partitionOid, reloptions, partLockMode); + } else { + result = createToastTableForPartition(rel->rd_id, partitionOid, reloptions, partLockMode); + } } if (partitionList != NIL) { diff --git a/src/common/backend/client_logic/cache.cpp b/src/common/backend/client_logic/cache.cpp index 2a9d8cd44..56711aa29 100644 --- a/src/common/backend/client_logic/cache.cpp +++ b/src/common/backend/client_logic/cache.cpp @@ -23,61 +23,6 @@ #include "client_logic/cache.h" #include "pgxc/pgxc.h" -/* - * search_sys_cache_ce_col_name - * - * This routine is equivalent to SearchSysCache on the CERELIDCOUMNNAME cache, - * except that it will return NULL if the found attribute is marked - * attisdropped. This is convenient for callers that want to act as - * though dropped attributes don't exist. - */ - -HeapTuple search_syscache_cek_name(const char *key_name, Oid namespace_id) -{ -#ifdef ENABLE_MULTIPLE_NODES - if (!IS_PGXC_COORDINATOR) - return NULL; -#endif - HeapTuple tuple; - - tuple = SearchSysCache2(COLUMNSETTINGNAME, PointerGetDatum(key_name), ObjectIdGetDatum(namespace_id)); - if (!HeapTupleIsValid(tuple)) { - return NULL; - } - - return tuple; -} - -HeapTuple search_syscache_cmk_name(const char *key_name, Oid namespace_id) -{ -#ifdef ENABLE_MULTIPLE_NODES - if (!IS_PGXC_COORDINATOR) - return NULL; -#endif - HeapTuple tuple; - - tuple = SearchSysCache2(GLOBALSETTINGNAME, PointerGetDatum(key_name), ObjectIdGetDatum(namespace_id)); - if (!HeapTupleIsValid(tuple)) { - return NULL; - } - - return tuple; -} - -HeapTuple search_sys_cache_ce_col_name(Oid relid, const char *attname) -{ -#ifdef ENABLE_MULTIPLE_NODES - if (!IS_PGXC_COORDINATOR) - return NULL; -#endif - HeapTuple tuple; - - tuple = SearchSysCache2(CERELIDCOUMNNAME, ObjectIdGetDatum(relid), CStringGetDatum(attname)); - if (!HeapTupleIsValid(tuple)) { - return NULL; - } - return tuple; -} /* * search_sys_cache_copy_ce_col_name @@ -86,17 +31,11 @@ HeapTuple search_sys_cache_ce_col_name(Oid relid, const char *attname) */ HeapTuple search_sys_cache_copy_ce_col_name(Oid relid, const char *attname) { -#ifdef ENABLE_MULTIPLE_NODES - if (!IS_PGXC_COORDINATOR) - return NULL; -#endif - HeapTuple tuple, newtuple; - - tuple = search_sys_cache_ce_col_name(relid, attname); + HeapTuple tuple = SearchSysCache2(CERELIDCOUMNNAME, ObjectIdGetDatum(relid), CStringGetDatum(attname)); if (!HeapTupleIsValid(tuple)) { return tuple; } - newtuple = heap_copytuple(tuple); + HeapTuple newtuple = heap_copytuple(tuple); ReleaseSysCache(tuple); return newtuple; } @@ -108,14 +47,7 @@ HeapTuple search_sys_cache_copy_ce_col_name(Oid relid, const char *attname) */ bool search_sys_cache_exists_ce_col_name(Oid relid, const char *attname) { -#ifdef ENABLE_MULTIPLE_NODES - if (!IS_PGXC_COORDINATOR) { - return false; - } -#endif - HeapTuple tuple; - - tuple = search_sys_cache_ce_col_name(relid, attname); + HeapTuple tuple = SearchSysCache2(CERELIDCOUMNNAME, ObjectIdGetDatum(relid), CStringGetDatum(attname)); if (!HeapTupleIsValid(tuple)) { return false; } diff --git a/src/common/backend/client_logic/client_logic.cpp b/src/common/backend/client_logic/client_logic.cpp index 0e61b38b3..e20daba17 100644 --- a/src/common/backend/client_logic/client_logic.cpp +++ b/src/common/backend/client_logic/client_logic.cpp @@ -44,24 +44,13 @@ #include "catalog/namespace.h" #include "commands/sec_rls_cmds.h" #include "rewrite/rewriteRlsPolicy.h" +#include "nodes/makefuncs.h" #include "commands/tablecmds.h" #include "nodes/pg_list.h" #include "tcop/utility.h" #include "pgxc/pgxc.h" #include "utils/fmgroids.h" -#define INIT_VALUES_NULLS(type, id) \ - do { \ - HeapTuple htup = NULL; \ - Relation rel = heap_open(id, RowExclusiveLock); \ - bool type##_nulls[Natts_gs_sec_##type]; \ - Datum type##_values[Natts_gs_sec_##type]; \ - int rc = memset_s(type##_values, sizeof(type##_values), 0, sizeof(type##_values)); \ - securec_check(rc, "\0", "\0"); \ - rc = memset_s(type##_nulls, sizeof(type##_nulls), false, sizeof(type##_nulls)); \ - securec_check(rc, "\0", "\0"); \ - } while (0) - const size_t ENCRYPTED_VALUE_MIN_LENGTH = 170; const size_t ENCRYPTED_VALUE_MAX_LENGTH = 1024; static bool get_cmk_name(const Oid global_key_id, NameData &cmk_name); @@ -145,20 +134,6 @@ void delete_column_keys(Oid roleid) list_free(column_keys); } -static bool check_feature_enabled() -{ -#ifdef ENABLE_MULTIPLE_NODES - if (!IsConnFromCoord() && !u_sess->attr.attr_common.enable_full_encryption) { - return false; - } -#else - if (!u_sess->attr.attr_common.enable_full_encryption) { - return false; - } -#endif -return true; -} - static Oid check_namespace(const List *key_name, Node * const stmt, char **keyname) { Oid namespace_id; @@ -215,7 +190,7 @@ Oid get_column_key_id_by_namespace(const char *key_name, const Oid namespace_id, HeapTuple rtup = NULL; Form_gs_column_keys rel_data = NULL; Oid column_key_id = InvalidOid; - rtup = search_syscache_cek_name(key_name, namespace_id); + rtup = SearchSysCache2(COLUMNSETTINGNAME, PointerGetDatum(key_name), ObjectIdGetDatum(namespace_id)); if (rtup != NULL) { rel_data = (Form_gs_column_keys)GETSTRUCT(rtup); if (rel_data != NULL && namespace_id == rel_data->key_namespace && @@ -291,11 +266,7 @@ int process_encrypted_columns(const ColumnDef * const def, CeHeapInfo *ce_heap_i ce_heap_info->orig_mod = def->clientLogicColumnRef->orig_typname->typemod; Oid global_key_id(0); ce_heap_info->cek_id = get_column_key_id(def->clientLogicColumnRef->column_key_name, GetUserId(), global_key_id); - if ( -#ifdef ENABLE_MULTIPLE_NODES - IS_PGXC_COORDINATOR && -#endif - ce_heap_info->cek_id == InvalidOid) { + if (ce_heap_info->cek_id == InvalidOid) { ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("object does not exist. column encryption key: %s", NameListToString(def->clientLogicColumnRef->column_key_name)))); return -1; @@ -313,15 +284,15 @@ void insert_gs_sec_encrypted_column_tuple(CeHeapInfo *ce_heap_info, Relation rel CatalogIndexState indstate) { #ifdef ENABLE_MULTIPLE_NODES - if (!IS_PGXC_COORDINATOR) - return; + if (IS_MAIN_COORDINATOR && !u_sess->attr.attr_common.enable_full_encryption) { +#else + if (!u_sess->attr.attr_common.enable_full_encryption) { #endif - if (!check_feature_enabled()) { ereport(ERROR, (errcode(ERRCODE_OPERATE_NOT_SUPPORTED), errmsg("Un-support to add column encryption key when client encryption is disabled."))); } - + HeapTuple htup = NULL; bool encrypted_columns_nulls[Natts_gs_encrypted_columns]; @@ -497,7 +468,40 @@ int process_global_settings(CreateClientLogicGlobal *parsetree) /* write to catalog table */ Relation rel = heap_open(ClientLogicGlobalSettingsId, RowExclusiveLock); HeapTuple htup = heap_form_tuple(rel->rd_att, client_master_keys_values, client_master_keys_nulls); - const Oid global_key_id = finish_processing(&rel, &htup); + /* + * try to report a nicer error message rather than 'duplicate key' + */ + MemoryContext old_context = CurrentMemoryContext; + Oid global_key_id = InvalidOid; + PG_TRY(); + { + /* + * NOTE: we could get a unique-index failure here, in case someone else is + * creating the same key name in parallel but hadn't committed yet when + * we checked for a duplicate name above. in such case we try to emit a + * nicer error message using try...catch + */ + global_key_id = finish_processing(&rel, &htup); + } + PG_CATCH(); + { + ErrorData* edata = NULL; + (void*)MemoryContextSwitchTo(old_context); + edata = CopyErrorData(); + if (edata->sqlerrcode == ERRCODE_UNIQUE_VIOLATION) { + FlushErrorState(); + /* the old edata is no longer used */ + FreeErrorData(edata); + ereport(ERROR, + (errcode(ERRCODE_DUPLICATE_KEY), + errmodule(MOD_SEC_FE), + errmsg("client master key \"%s\" already exists", keyname))); + } else { + /* we still reporting other error messages */ + ReThrowError(edata); + } + } + PG_END_TRY(); /* update dependency tables */ ObjectAddress nsp_addr; @@ -540,7 +544,7 @@ static Oid get_cmk_oid(const char *key_name, const Oid namespace_id) HeapTuple rtup = NULL; Form_gs_client_global_keys rel_data = NULL; Oid cmk_oid = InvalidOid; - rtup = search_syscache_cmk_name(key_name, namespace_id); + rtup = SearchSysCache2(GLOBALSETTINGNAME, PointerGetDatum(key_name), ObjectIdGetDatum(namespace_id)); if (rtup != NULL) { rel_data = (Form_gs_client_global_keys)GETSTRUCT(rtup); if (rel_data != NULL && namespace_id == rel_data->key_namespace && @@ -623,7 +627,11 @@ static bool get_cmk_name(const Oid global_key_id, NameData &cmk_name) static bool process_column_settings_flush_args(Oid column_key_id, const char *column_function, const char *key, size_t keySize, const char *value, size_t valueSize) { - if (!check_feature_enabled()) { +#ifdef ENABLE_MULTIPLE_NODES + if (IS_MAIN_COORDINATOR && !u_sess->attr.attr_common.enable_full_encryption) { +#else + if (!u_sess->attr.attr_common.enable_full_encryption) { +#endif ereport(ERROR, (errcode(ERRCODE_OPERATE_NOT_SUPPORTED), errmsg("Un-support to process column keys when client encryption is disabled."))); @@ -803,7 +811,40 @@ int process_column_settings(CreateClientLogicColumn *parsetree) /* write to catalog table */ Relation rel = heap_open(ClientLogicColumnSettingsId, RowExclusiveLock); HeapTuple htup = heap_form_tuple(rel->rd_att, column_settings_values, column_settings_nulls); - const Oid column_key_id = finish_processing(&rel, &htup); + /* + * try to report a nicer error message rather than 'duplicate key' + */ + MemoryContext old_context = CurrentMemoryContext; + Oid column_key_id = InvalidOid; + PG_TRY(); + { + /* + * NOTE: we could get a unique-index failure here, in case someone else is + * creating the same key name in parallel but hadn't committed yet when + * we checked for a duplicate name above. in such case we try to emit a + * nicer error message using try...catch + */ + column_key_id = finish_processing(&rel, &htup); + } + PG_CATCH(); + { + ErrorData* edata = NULL; + (void*)MemoryContextSwitchTo(old_context); + edata = CopyErrorData(); + if (edata->sqlerrcode == ERRCODE_UNIQUE_VIOLATION) { + FlushErrorState(); + /* the old edata is no longer used */ + FreeErrorData(edata); + ereport(ERROR, + (errcode(ERRCODE_DUPLICATE_KEY), + errmodule(MOD_SEC_FE), + errmsg("column encryption key \"%s\" already exists", cek_name))); + } else { + /* we still reporting other error messages */ + ReThrowError(edata); + } + } + PG_END_TRY(); /* update dependency table */ ObjectAddress cmk_addr; @@ -844,34 +885,18 @@ int process_column_settings(CreateClientLogicColumn *parsetree) } return 0; } -int set_column_encryption(const ColumnDef *def, CeHeapInfo *ce_heap_info) -{ - Oid res = 0; -#ifdef ENABLE_MULTIPLE_NODES - if (IS_PGXC_COORDINATOR) -#endif - res = process_encrypted_columns(def, ce_heap_info); - return res; -} int drop_global_settings(DropStmt *stmt) { #ifdef ENABLE_MULTIPLE_NODES - if (!IS_PGXC_COORDINATOR) { - return 0; - } - if (!IsConnFromCoord() && !u_sess->attr.attr_common.enable_full_encryption) { - ereport(ERROR, - (errcode(ERRCODE_OPERATE_NOT_SUPPORTED), - errmsg("Un-support to drop client master key when client encryption is disabled."))); - } + if (IS_MAIN_COORDINATOR && !u_sess->attr.attr_common.enable_full_encryption) { #else if (!u_sess->attr.attr_common.enable_full_encryption) { +#endif ereport(ERROR, (errcode(ERRCODE_OPERATE_NOT_SUPPORTED), errmsg("Un-support to drop client master key when client encryption is disabled."))); } -#endif char *global_key_name = NULL; ListCell *cell = NULL; @@ -931,21 +956,14 @@ int drop_global_settings(DropStmt *stmt) int drop_column_settings(DropStmt *stmt) { #ifdef ENABLE_MULTIPLE_NODES - if (!IS_PGXC_COORDINATOR) { - return 0; - } - if (!IsConnFromCoord() && !u_sess->attr.attr_common.enable_full_encryption) { - ereport(ERROR, - (errcode(ERRCODE_OPERATE_NOT_SUPPORTED), - errmsg("Un-support to drop column encryption key when client encryption is disabled."))); - } + if (IS_MAIN_COORDINATOR && !u_sess->attr.attr_common.enable_full_encryption) { #else if (!u_sess->attr.attr_common.enable_full_encryption) { +#endif ereport(ERROR, (errcode(ERRCODE_OPERATE_NOT_SUPPORTED), errmsg("Un-support to drop column encryption key when client encryption is disabled."))); } -#endif char *cek_name = NULL; ListCell *cell = NULL; foreach (cell, stmt->objects) { @@ -1041,7 +1059,11 @@ void remove_cmk_by_id(Oid id) } void remove_encrypted_col_by_id(Oid id) { - if (!check_feature_enabled()) { +#ifdef ENABLE_MULTIPLE_NODES + if (IS_MAIN_COORDINATOR && !u_sess->attr.attr_common.enable_full_encryption) { +#else + if (!u_sess->attr.attr_common.enable_full_encryption) { +#endif ereport(ERROR, (errcode(ERRCODE_OPERATE_NOT_SUPPORTED), errmsg("Un-support to remove encrypted column when client encryption is disabled."))); @@ -1224,3 +1246,81 @@ bool is_exist_encrypted_column(const ObjectAddresses *targetObjects) } return false; } + +bool is_enc_type(Oid type_oid) +{ + Oid enc_type[] = { + BYTEAWITHOUTORDERWITHEQUALCOLOID, + BYTEAWITHOUTORDERCOLOID, + BYTEAWITHOUTORDERWITHEQUALCOLARRAYOID, + BYTEAWITHOUTORDERCOLARRAYOID, + }; + + for (size_t i = 0; i < sizeof(enc_type) / sizeof(enc_type[0]); i++) { + if (type_oid == enc_type[i]) { + return true; + } + } + + return false; +} + +bool is_enc_type(const char *type_name) +{ + const char *enc_type[] = { + "byteawithoutordercol", + "byteawithoutorderwithequalcol", + "_byteawithoutordercol", + "_byteawithoutorderwithequalcol", + }; + + for (size_t i = 0; i < sizeof(enc_type) / sizeof(enc_type[0]); i++) { + if (strcmp(type_name, enc_type[i]) == 0) { + return true; + } + } + return false; +} + +/* + * if a column is encrypted, we will rewrite its type and + * (1) store its source col_type in catalog 'gs_encrypted_columns' + * (2) store its new col_type in catalog 'pg_attribute' + * + * while process 'CREATE TABLE AS' / 'SELECT INTO' statement, + * we need get the source col_type from 'gs_encrypted_columns', then rewrite the parse tree + */ +ClientLogicColumnRef *get_column_enc_def(Oid rel_oid, const char *col_name) +{ + ClientLogicColumnRef *enc_def = makeNode(ClientLogicColumnRef); + HeapTuple enc_col_tup; + Form_gs_encrypted_columns enc_col; + HeapTuple cek_tup; + Form_gs_column_keys cek; + + /* search CEK oid from catalog 'gs_encrypted_columns' */ + enc_col_tup = SearchSysCache2(CERELIDCOUMNNAME, ObjectIdGetDatum(rel_oid), CStringGetDatum(col_name)); + if (!HeapTupleIsValid(enc_col_tup)) { + return NULL; + } + enc_col = (Form_gs_encrypted_columns)GETSTRUCT(enc_col_tup); + + /* search CEK name from catalog 'gs_column_keys' */ + cek_tup = SearchSysCache1(COLUMNSETTINGOID, ObjectIdGetDatum(enc_col->column_key_id)); + if (!HeapTupleIsValid(cek_tup)) { + ReleaseSysCache(enc_col_tup); + return NULL; + } + cek = (Form_gs_column_keys) GETSTRUCT(cek_tup); + + enc_def->columnEncryptionAlgorithmType = (EncryptionType)enc_col->encryption_type; + enc_def->column_key_name = list_make1(makeString(NameStr(cek->column_key_name))); + enc_def->orig_typname = makeTypeNameFromOid(enc_col->data_type_original_oid, enc_col->data_type_original_mod); + enc_def->dest_typname = NULL; + enc_def->location = -1; /* not used */ + + ReleaseSysCache(enc_col_tup); + ReleaseSysCache(cek_tup); + + return enc_def; +} diff --git a/src/common/backend/client_logic/client_logic_proc.cpp b/src/common/backend/client_logic/client_logic_proc.cpp index 82b48fbb5..596e366fb 100755 --- a/src/common/backend/client_logic/client_logic_proc.cpp +++ b/src/common/backend/client_logic/client_logic_proc.cpp @@ -69,7 +69,16 @@ void add_rettype_orig(const Oid func_id, const Oid ret_type, const Oid res_type) int out_param_id = -1; Oid out_param_type = InvalidOid; int allnumargs = 0; - Datum proargmodes = SysCacheGetAttr(PROCNAMEARGSNSP, oldtup, Anum_pg_proc_proargmodes, &isNull); + Datum proargmodes; +#ifndef ENABLE_MULTIPLE_NODES + if (t_thrd.proc->workingVersionNum < 92470) { + proargmodes = SysCacheGetAttr(PROCNAMEARGSNSP, oldtup, Anum_pg_proc_proargmodes, &isNull); + } else { + proargmodes = SysCacheGetAttr(PROCALLARGS, oldtup, Anum_pg_proc_proargmodes, &isNull); + } +#else + proargmodes = SysCacheGetAttr(PROCNAMEARGSNSP, oldtup, Anum_pg_proc_proargmodes, &isNull); +#endif if (!isNull) { ArrayType* arr = DatumGetArrayTypeP(proargmodes); /* ensure not toasted */ if (arr) { @@ -117,6 +126,8 @@ void add_rettype_orig(const Oid func_id, const Oid ret_type, const Oid res_type) HeapTuple gs_oldtup = SearchSysCache1(GSCLPROCID, ObjectIdGetDatum(func_id)); Relation gs_rel = heap_open(ClientLogicProcId, RowExclusiveLock); TupleDesc gs_tupDesc = RelationGetDescr(gs_rel); + gs_values[Anum_gs_encrypted_proc_last_change - 1] = + DirectFunctionCall1(timestamptz_timestamp, GetCurrentTimestamp()); if (!HeapTupleIsValid(gs_oldtup)) { gs_values[Anum_gs_encrypted_proc_func_id - 1] = ObjectIdGetDatum(func_id); gs_values[Anum_gs_encrypted_proc_prorettype_orig - 1] = ObjectIdGetDatum(ret_type); @@ -129,6 +140,7 @@ void add_rettype_orig(const Oid func_id, const Oid ret_type, const Oid res_type) ArrayType* arr_gs_all_types_orig = construct_array(gs_all_args_orig, allnumargs, INT4OID, sizeof(int4), true, 'i'); gs_values[Anum_gs_encrypted_proc_proallargtypes_orig - 1] = PointerGetDatum(arr_gs_all_types_orig); + gs_values[Anum_gs_encrypted_proc_last_change - 1] = PointerGetDatum(arr_gs_all_types_orig); pfree_ext(gs_all_args_orig); } else { gs_nulls[Anum_gs_encrypted_proc_proallargtypes_orig - 1] = true; @@ -140,6 +152,7 @@ void add_rettype_orig(const Oid func_id, const Oid ret_type, const Oid res_type) } else { gs_values[Anum_gs_encrypted_proc_prorettype_orig - 1] = ObjectIdGetDatum(ret_type); gs_replaces[Anum_gs_encrypted_proc_prorettype_orig - 1] = true; + gs_replaces[Anum_gs_encrypted_proc_last_change - 1] = true; Datum gs_all_types_orig = SysCacheGetAttr(GSCLPROCID, gs_oldtup, Anum_gs_encrypted_proc_proallargtypes_orig, &isNull); if (!isNull) { @@ -205,7 +218,15 @@ void add_allargtypes_orig(const Oid func_id, Datum* all_types_orig, Datum* all_t } vec_all_arg_types = (Oid*)ARR_DATA_PTR(arr_all_arg_types); +#ifndef ENABLE_MULTIPLE_NODES + if (t_thrd.proc->workingVersionNum < 92470) { + proargmodes = SysCacheGetAttr(PROCNAMEARGSNSP, oldtup, Anum_pg_proc_proargmodes, &isNull); + } else { + proargmodes = SysCacheGetAttr(PROCALLARGS, oldtup, Anum_pg_proc_proargmodes, &isNull); + } +#else proargmodes = SysCacheGetAttr(PROCNAMEARGSNSP, oldtup, Anum_pg_proc_proargmodes, &isNull); +#endif if (!isNull) { arr_proargmodes = DatumGetArrayTypeP(proargmodes); /* ensure not toasted */ bool is_char_oid_array = ARR_NDIM(arr_proargmodes) != 1 || ARR_DIMS(arr_proargmodes)[0] != allnumargs || @@ -264,6 +285,8 @@ void add_allargtypes_orig(const Oid func_id, Datum* all_types_orig, Datum* all_t heap_close(rel, RowExclusiveLock); Relation gs_rel = heap_open(ClientLogicProcId, RowExclusiveLock); TupleDesc gs_tupDesc = RelationGetDescr(gs_rel); + gs_values[Anum_gs_encrypted_proc_last_change - 1] = + DirectFunctionCall1(timestamptz_timestamp, GetCurrentTimestamp()); if (!HeapTupleIsValid(gs_oldtup)) { gs_values[Anum_gs_encrypted_proc_func_id - 1] = ObjectIdGetDatum(func_id); Datum* all_types_orig_datum = (Datum*)palloc(allnumargs * sizeof(Datum)); @@ -280,6 +303,7 @@ void add_allargtypes_orig(const Oid func_id, Datum* all_types_orig, Datum* all_t } else { gs_values[Anum_gs_encrypted_proc_proallargtypes_orig - 1] = PointerGetDatum(arr_gs_all_types_orig); gs_replaces[Anum_gs_encrypted_proc_proallargtypes_orig - 1] = true; + gs_replaces[Anum_gs_encrypted_proc_last_change - 1] = true; /* Okay, do it... */ gs_tup = heap_modify_tuple(gs_oldtup, gs_tupDesc, gs_values, gs_nulls, gs_replaces); simple_heap_update(gs_rel, &gs_tup->t_self, gs_tup); @@ -295,7 +319,16 @@ void add_allargtypes_orig(const Oid func_id, Datum* all_types_orig, Datum* all_t void verify_out_param(HeapTuple oldtup, int *out_param_id) { bool isNull = false; - Datum proargmodes = SysCacheGetAttr(PROCNAMEARGSNSP, oldtup, Anum_pg_proc_proargmodes, &isNull); + Datum proargmodes; +#ifndef ENABLE_MULTIPLE_NODES + if (t_thrd.proc->workingVersionNum < 92470) { + proargmodes = SysCacheGetAttr(PROCNAMEARGSNSP, oldtup, Anum_pg_proc_proargmodes, &isNull); + } else { + proargmodes = SysCacheGetAttr(PROCALLARGS, oldtup, Anum_pg_proc_proargmodes, &isNull); + } +#else + proargmodes = SysCacheGetAttr(PROCNAMEARGSNSP, oldtup, Anum_pg_proc_proargmodes, &isNull); +#endif if (isNull) { return; } @@ -380,6 +413,8 @@ void verify_rettype_for_out_param(const Oid func_id) HeapTuple gs_oldtup = SearchSysCache1(GSCLPROCID, ObjectIdGetDatum(func_id)); Relation gs_rel = heap_open(ClientLogicProcId, RowExclusiveLock); TupleDesc gs_tupDesc = RelationGetDescr(gs_rel); + gs_values[Anum_gs_encrypted_proc_last_change - 1] = + DirectFunctionCall1(timestamptz_timestamp, GetCurrentTimestamp()); if (!HeapTupleIsValid(gs_oldtup)) { gs_values[Anum_gs_encrypted_proc_func_id - 1] = ObjectIdGetDatum(func_id); gs_values[Anum_gs_encrypted_proc_prorettype_orig - 1] = ObjectIdGetDatum(ret_type); @@ -402,7 +437,8 @@ void verify_rettype_for_out_param(const Oid func_id) record_proc_depend(func_id, gs_encrypted_proc_id); } else { gs_values[Anum_gs_encrypted_proc_prorettype_orig - 1] = ObjectIdGetDatum(ret_type); - gs_replaces[Anum_gs_encrypted_proc_prorettype_orig-1] = true; + gs_replaces[Anum_gs_encrypted_proc_prorettype_orig - 1] = true; + gs_replaces[Anum_gs_encrypted_proc_last_change - 1] = true; /* Okay, do it... */ gs_tup = heap_modify_tuple(gs_oldtup, gs_tupDesc, gs_values, gs_nulls, gs_replaces); simple_heap_update(gs_rel, &gs_tup->t_self, gs_tup); @@ -424,4 +460,4 @@ void delete_proc_client_info(Oid func_id) heap_close(gs_rel, RowExclusiveLock); ReleaseSysCache(old_gs_tup); } -} \ No newline at end of file +} diff --git a/src/common/backend/libpq/auth.cpp b/src/common/backend/libpq/auth.cpp index ece8126c8..977379a73 100644 --- a/src/common/backend/libpq/auth.cpp +++ b/src/common/backend/libpq/auth.cpp @@ -147,7 +147,9 @@ static int CheckLDAPAuth(Port* port); static int CheckCertAuth(Port* port); #endif +#ifdef USE_IAM static int CheckIAMAuth(Port* port); +#endif /* ---------------------------------------------------------------- * MIT Kerberos authentication system - protocol version 5 @@ -653,7 +655,11 @@ void ClientAuthentication(Port* port) #endif break; case uaIAM: +#ifdef USE_IAM status = CheckIAMAuth(port); +#else + Assert(false); +#endif break; case uaTrust: status = STATUS_OK; @@ -664,7 +670,7 @@ void ClientAuthentication(Port* port) } /* Database Security: Support lock/unlock account */ - if (!AM_WAL_SENDER) { + if (!AM_NOT_HADR_SENDER) { /* * Disable immediate response to SIGTERM/SIGINT/timeout interrupts as there are * some cache and memory operations which can not be interrupted. And nothing will @@ -756,15 +762,15 @@ void GenerateFakeSaltBytes(const char* user_name, char* fake_salt_bytes, int sal char postfix[POSTFIX_LENGTH + 1] = {0}; char superuser_name[NAMEDATALEN] = {0}; unsigned char buf[SHA256_DIGEST_LENGTH] = {0}; - char encryptString[ENCRYPTED_STRING_LENGTH + 1] = {0}; + char encrypt_string[ENCRYPTED_STRING_LENGTH + 1] = {0}; int32 superuser_stored_method; errno_t rc = EOK; int rcs = 0; (void)GetSuperUserName((char*)superuser_name); - superuser_stored_method = get_password_stored_method(superuser_name, encryptString, ENCRYPTED_STRING_LENGTH + 1); + superuser_stored_method = get_password_stored_method(superuser_name, encrypt_string, ENCRYPTED_STRING_LENGTH + 1); if (superuser_stored_method == SHA256_PASSWORD || superuser_stored_method == COMBINED_PASSWORD) { - rc = strncpy_s(postfix, POSTFIX_LENGTH + 1, encryptString + SALT_STRING_LENGTH, POSTFIX_LENGTH); + rc = strncpy_s(postfix, POSTFIX_LENGTH + 1, encrypt_string + SALT_STRING_LENGTH, POSTFIX_LENGTH); securec_check(rc, "\0", "\0"); } @@ -775,7 +781,7 @@ void GenerateFakeSaltBytes(const char* user_name, char* fake_salt_bytes, int sal SHA256_Final2(buf, &ctx); rc = memcpy_s(fake_salt_bytes, salt_len, buf, (salt_len < SHA256_DIGEST_LENGTH) ? salt_len : SHA256_DIGEST_LENGTH); securec_check(rc, "\0", "\0"); - rc = memset_s(encryptString, ENCRYPTED_STRING_LENGTH + 1, 0, ENCRYPTED_STRING_LENGTH); + rc = memset_s(encrypt_string, ENCRYPTED_STRING_LENGTH + 1, 0, ENCRYPTED_STRING_LENGTH); securec_check(rc, "\0", "\0"); rc = memset_s(combine_string, combine_string_length + 1, 0, combine_string_length); securec_check(rc, "\0", "\0"); @@ -785,16 +791,16 @@ void GenerateFakeSaltBytes(const char* user_name, char* fake_salt_bytes, int sal /* * Send an authentication request packet to the frontend. */ -static bool GsGenerateFakeEncryptString(char* encryptString, const Port* port, int len) +static bool GsGenerateFakeEncryptString(char* encrypt_string, const Port* port, int len) { int retval = 0; errno_t rc = EOK; char fake_salt_bytes[SALT_LENGTH + 1] = {0}; - char fake_salt[SALT_LENGTH * 2 + 1] = {0}; + char fake_salt[SALT_LENGTH * ENCRY_LENGTH_DOUBLE + 1] = {0}; char fake_serverkey_bytes[HMAC_LENGTH + 1] = {0}; - char fake_serverkey[HMAC_LENGTH * 2 + 1] = {0}; + char fake_serverkey[HMAC_LENGTH * ENCRY_LENGTH_DOUBLE + 1] = {0}; char fake_storedkey_bytes[STORED_KEY_LENGTH + 1] = {0}; - char fake_storedkey[STORED_KEY_LENGTH * 2 + 1] = {0}; + char fake_storedkey[STORED_KEY_LENGTH * ENCRY_LENGTH_DOUBLE + 1] = {0}; GenerateFakeSaltBytes(port->user_name, fake_salt_bytes, SALT_LENGTH); retval = RAND_priv_bytes((GS_UCHAR*)fake_serverkey_bytes, (GS_UINT32)(HMAC_LENGTH)); @@ -813,7 +819,7 @@ static bool GsGenerateFakeEncryptString(char* encryptString, const Port* port, i sha_bytes_to_hex64((uint8*)fake_salt_bytes, fake_salt); sha_bytes_to_hex64((uint8*)fake_serverkey_bytes, fake_serverkey); sha_bytes_to_hex64((uint8*)fake_storedkey_bytes, fake_storedkey); - rc = snprintf_s(encryptString, + rc = snprintf_s(encrypt_string, len, ENCRYPTED_STRING_LENGTH, "%s%s%s", @@ -823,7 +829,6 @@ static bool GsGenerateFakeEncryptString(char* encryptString, const Port* port, i securec_check_ss(rc, "\0", "\0"); return true; } - static void sendAuthRequest(Port* port, AuthRequest areq) { /* Database Security: Support SHA256.*/ @@ -855,10 +860,10 @@ static void sendAuthRequest(Port* port, AuthRequest areq) #ifdef ENABLE_MULTIPLE_NODES if (IsDSorHaWalSender()) { #else - if (IsDSorHaWalSender() && is_node_internal_connection(port)) { + if (IsDSorHaWalSender() && is_node_internal_connection(port) && !AM_WAL_HADR_SENDER) { #endif stored_method = SHA256_PASSWORD; - if (u_sess->attr.attr_security.Password_encryption_type == PASSWORD_TYPE_SM3) { + if (u_sess->attr.attr_security.Password_encryption_type == PASSWORD_TYPE_SM3) { stored_method = SM3_PASSWORD; } } else { @@ -3556,6 +3561,7 @@ static int CheckCertAuth(Port* port) } #endif +#ifdef USE_IAM /* * @Description: the main function for iam authenication check. * @in port : the port which contain socket info for recv password from client. @@ -3638,6 +3644,7 @@ static int CheckIAMAuth(Port* port) passwd = NULL; return STATUS_OK; } +#endif /* * release kerberos gss connection info diff --git a/src/common/backend/libpq/crypt.cpp b/src/common/backend/libpq/crypt.cpp index c6aeba85d..dbb6d3882 100644 --- a/src/common/backend/libpq/crypt.cpp +++ b/src/common/backend/libpq/crypt.cpp @@ -148,6 +148,54 @@ bool get_stored_password(const char* role, password_info* pass_info) return true; } +/* +*Funcation : GetValidPeriod +*Description: ONLY get user valid peroid information +*/ +static bool GetValidPeriod(const char *role, password_info *passInfo) +{ + bool save_ImmediateInterruptOK = t_thrd.int_cxt.ImmediateInterruptOK; + + /* + * Disable immediate interrupts while doing database access. (Note we + * don't bother to turn this back on if we hit one of the failure + * conditions, since we can expect we'll just exit right away anyway.) + */ + t_thrd.int_cxt.ImmediateInterruptOK = false; + + /* Get role info from pg_authid */ + HeapTuple roleTup = SearchSysCache1(AUTHNAME, PointerGetDatum(role)); + if (!HeapTupleIsValid(roleTup)) { + t_thrd.int_cxt.ImmediateInterruptOK = save_ImmediateInterruptOK; + return false; /* no such user */ + } + + /*Get the date validation of password, including starting and expiration time */ + Datum datum1 = SysCacheGetAttr(AUTHNAME, roleTup, + Anum_pg_authid_rolvalidbegin, &(passInfo->isnull_begin)); + + if (!(passInfo->isnull_begin)) { + passInfo->vbegin = DatumGetTimestampTz(datum1); + } + + Datum datum2 = SysCacheGetAttr(AUTHNAME, roleTup, + Anum_pg_authid_rolvaliduntil, &(passInfo->isnull_until)); + + if (!(passInfo->isnull_until)) { + passInfo->vuntil = DatumGetTimestampTz(datum2); + } + + ReleaseSysCache(roleTup); + + /* Resume response to SIGTERM/SIGINT/timeout interrupts */ + t_thrd.int_cxt.ImmediateInterruptOK = save_ImmediateInterruptOK; + /* And don't forget to detect one that already arrived */ + CHECK_FOR_INTERRUPTS(); + + return true; +} + + /* Database Security: check user valid state */ int CheckUserValid(Port* port, const char* role) { @@ -695,6 +743,7 @@ int get_stored_iteration(const char* role) return iteration_count; } +#ifdef USE_IAM /* * @Description: read auth file to buffer for iam token authenication. * @in file_path : the file path with filename. @@ -1215,51 +1264,4 @@ bool check_token(iam_token token, char* rolname) return true; } - -/* -*Funcation : GetValidPeriod -*Description: ONLY get user valid peroid information -*/ -static bool GetValidPeriod(const char *role, password_info *passInfo) -{ - bool save_ImmediateInterruptOK = t_thrd.int_cxt.ImmediateInterruptOK; - - /* - * Disable immediate interrupts while doing database access. (Note we - * don't bother to turn this back on if we hit one of the failure - * conditions, since we can expect we'll just exit right away anyway.) - */ - t_thrd.int_cxt.ImmediateInterruptOK = false; - - /* Get role info from pg_authid */ - HeapTuple roleTup = SearchSysCache1(AUTHNAME, PointerGetDatum(role)); - if (!HeapTupleIsValid(roleTup)) { - t_thrd.int_cxt.ImmediateInterruptOK = save_ImmediateInterruptOK; - return false; /* no such user */ - } - - /*Get the date validation of password, including starting and expiration time */ - Datum datum1 = SysCacheGetAttr(AUTHNAME, roleTup, - Anum_pg_authid_rolvalidbegin, &(passInfo->isnull_begin)); - - if (!(passInfo->isnull_begin)) { - passInfo->vbegin = DatumGetTimestampTz(datum1); - } - - Datum datum2 = SysCacheGetAttr(AUTHNAME, roleTup, - Anum_pg_authid_rolvaliduntil, &(passInfo->isnull_until)); - - if (!(passInfo->isnull_until)) { - passInfo->vuntil = DatumGetTimestampTz(datum2); - } - - ReleaseSysCache(roleTup); - - /* Resume response to SIGTERM/SIGINT/timeout interrupts */ - t_thrd.int_cxt.ImmediateInterruptOK = save_ImmediateInterruptOK; - /* And don't forget to detect one that already arrived */ - CHECK_FOR_INTERRUPTS(); - - return true; -} - +#endif diff --git a/src/common/backend/libpq/hba.cpp b/src/common/backend/libpq/hba.cpp index d6e63071e..46289eb1b 100644 --- a/src/common/backend/libpq/hba.cpp +++ b/src/common/backend/libpq/hba.cpp @@ -35,6 +35,7 @@ #include "regex/regex.h" #include "replication/walsender.h" #include "storage/smgr/fd.h" +#include "storage/ipc.h" #include "utils/acl.h" #include "utils/guc.h" #include "utils/lsyscache.h" @@ -711,6 +712,11 @@ static bool check_same_host_or_net(SockAddr* raddr, IPCompareMethod method) } \ } while (0); +static void hba_rwlock_cleanup(int code, Datum arg) +{ + (void)pthread_rwlock_unlock(&hba_rwlock); +} + /* * Parse one tokenised line from the hba config file and store the result in a * HbaLine structure, or NULL if parsing fails. @@ -1029,11 +1035,7 @@ static HbaLine* parse_hba_line(List* line, int line_num) unsupauth = "ident"; #endif else if (strcmp(token->string, "peer") == 0) -#ifdef USE_IDENT parsedline->auth_method = uaPeer; -#else - unsupauth = "peer"; -#endif else if (strcmp(token->string, "krb5") == 0) #ifdef KRB5 parsedline->auth_method = uaKrb5; @@ -1380,21 +1382,21 @@ static void check_hba_replication(hbaPort* port) errmsg("get hba rwlock failed when check hba replication, return value:%d", ret))); } - /* Any ERROR will become PANIC errors when holding rwlock of hba_rwlock. */ - START_CRIT_SECTION(); + /* hba_rwlock will be released when ereport ERROR or FATAL. */ + PG_ENSURE_ERROR_CLEANUP(hba_rwlock_cleanup, (Datum)0); foreach (line, g_instance.libpq_cxt.comm_parsed_hba_lines) { /* * memory copy here will not copy pointer types like List* and char*, * the char* type in HbaLine will copy to session memctx by copy_hba_line() */ errno_t rc = memcpy_s(hba, sizeof(HbaLine), lfirst(line), sizeof(HbaLine)); - securec_check_errno(rc, (void)pthread_rwlock_unlock(&hba_rwlock),); + securec_check(rc, "\0", "\0"); foreach (cell, hba->databases) { HbaToken* tok = NULL; tok = (HbaToken*)lfirst(cell); if (token_is_keyword(tok, "replication") && hba->conntype != ctLocal) { - if (hba->auth_method != uaGSS) { + if (hba->auth_method != uaGSS && !AM_WAL_HADR_SENDER) { hba->auth_method = uaTrust; } ereport(LOG, @@ -1410,8 +1412,8 @@ static void check_hba_replication(hbaPort* port) } copy_hba_line(hba); + PG_END_ENSURE_ERROR_CLEANUP(hba_rwlock_cleanup, (Datum)0); (void)pthread_rwlock_unlock(&hba_rwlock); - END_CRIT_SECTION(); DIRECT_TRUST: /* cannot get invalid method, trust as default. */ @@ -1450,6 +1452,70 @@ bool IsLoopBackAddr(Port* port) #define USER_NULL_MASK 0xFFFFFFFF /* Max size of username operator system can return */ #define SYS_USERNAME_MAX 512 + +static bool IsSysUsernameSameToDB(uid_t uid, const char* dbUserName) +{ + errno_t rc = 0; + char sysUser[SYS_USERNAME_MAX + 1] = {0}; + /* get the actual user name according to the user id */ + errno = 0; + struct passwd pwtmp; + struct passwd* pw = NULL; + const int pwbufsz = sysconf(_SC_GETPW_R_SIZE_MAX); + char* pwbuf = (char*)palloc0(pwbufsz); + (void)getpwuid_r(uid, &pwtmp, pwbuf, pwbufsz, &pw); + + /* Here we discard pwret, as if any record in passwd found, pw is always a non-NULL value. */ + if (pw == NULL) { + pfree_ext(pwbuf); + ereport(ERROR, + (errcode(ERRCODE_INVALID_OPERATION), + errmsg("could not look up local user ID %ld: %s", + (long)uid, errno ? gs_strerror(errno) : _("user does not exist")))); + } + + /* record the system username */ + rc = strcpy_s(sysUser, SYS_USERNAME_MAX + 1, pw->pw_name); + pfree_ext(pwbuf); + securec_check(rc, "\0", "\0"); + if (strcmp(dbUserName, sysUser) == 0) { + return true; + } else { + return false; + } +} + +static UserAuth get_default_auth_method(const char* role) +{ + int32 storedMethod; + UserAuth defaultAuthMethod = uaSHA256; + char encryptString[ENCRYPTED_STRING_LENGTH + 1] = {0}; + errno_t rc; + + storedMethod = get_password_stored_method(role, encryptString, ENCRYPTED_STRING_LENGTH + 1); + switch (storedMethod) { + case SHA256_PASSWORD: + defaultAuthMethod = uaSHA256; + break; + case COMBINED_PASSWORD: + defaultAuthMethod = uaSHA256; + break; + case SM3_PASSWORD: + defaultAuthMethod = uaSM3; + break; + case MD5_PASSWORD: + defaultAuthMethod = uaMD5; + break; + default: + defaultAuthMethod = uaSHA256; + break; + } + + rc = memset_s(encryptString, ENCRYPTED_STRING_LENGTH + 1, 0, ENCRYPTED_STRING_LENGTH + 1); + securec_check(rc, "\0", "\0"); + return defaultAuthMethod; +} + /* * Scan the pre-parsed hba file, looking for a match to the port's connection * request. @@ -1459,11 +1525,19 @@ static void check_hba(hbaPort* port) Oid roleid; ListCell* line = NULL; HbaLine* hba = NULL; + bool isUsernameSame = false; + bool isMatched = false; /* Get the target role's OID. Note we do not error out for bad role. */ roleid = get_role_oid(port->user_name, true); + +#ifdef USE_IAM + bool isIAM = false; + if (roleid != InvalidOid) { + isIAM = is_role_iamauth(roleid); + } +#endif hba = (HbaLine*)palloc0(sizeof(HbaLine)); - int ret = pthread_rwlock_rdlock(&hba_rwlock); if (ret != 0) { pfree_ext(hba); @@ -1472,13 +1546,12 @@ static void check_hba(hbaPort* port) errmsg("get hba rwlock failed when check hba config, return value:%d", ret))); } - /* Any ERROR will become PANIC errors when holding rwlock of hba_rwlock. */ - START_CRIT_SECTION(); + /* hba_rwlock will be released when ereport ERROR or FATAL. */ + PG_ENSURE_ERROR_CLEANUP(hba_rwlock_cleanup, (Datum)0); foreach (line, g_instance.libpq_cxt.comm_parsed_hba_lines) { /* the value of char* types in HbaLine will be copied to session memctx by copy_hba_line() in the end */ errno_t rc = memcpy_s(hba, sizeof(HbaLine), lfirst(line), sizeof(HbaLine)); - securec_check_errno(rc, (void)pthread_rwlock_unlock(&hba_rwlock),); - + securec_check(rc, "\0", "\0"); /* Check connection type */ if (hba->conntype == ctLocal) { /* @@ -1486,14 +1559,11 @@ static void check_hba(hbaPort* port) * the installation enviroment. */ if (roleid == INITIAL_USER_ID) { - char sys_user[SYS_USERNAME_MAX + 1]; - uid_t uid; - gid_t gid; + uid_t uid = 0; + gid_t gid = 0; /* get the user id of the system, where client in */ if (getpeereid(port->sock, &uid, &gid) != 0) { pfree_ext(hba); - (void)pthread_rwlock_unlock(&hba_rwlock); - END_CRIT_SECTION(); /* Provide special error message if getpeereid is a stub */ ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), @@ -1506,35 +1576,9 @@ static void check_hba(hbaPort* port) * like tools. (Usually happed when login with -h localhost * or 127.0.0.1) */ - if ((long)uid == USER_NULL_MASK) + if ((long)uid == USER_NULL_MASK) { continue; - - /* get the actual user name according to the user id */ - errno = 0; - struct passwd pwtmp; - struct passwd* pw = NULL; - const int pwbufsz = sysconf(_SC_GETPW_R_SIZE_MAX); - char* pwbuf = (char*)palloc0_noexcept(pwbufsz); - if (pwbuf != NULL) { - (void)getpwuid_r(uid, &pwtmp, pwbuf, pwbufsz, &pw); } - /* Here we discard pwret, as if any record in passwd found, pw is always a non-NULL value. */ - if (pw == NULL) { - pfree_ext(pwbuf); - pfree_ext(hba); - (void)pthread_rwlock_unlock(&hba_rwlock); - END_CRIT_SECTION(); - ereport(ERROR, - (errcode(ERRCODE_INVALID_OPERATION), - errmsg("could not look up local user ID %ld: %s", - (long)uid, - errno ? gs_strerror(errno) : _("user does not exist")))); - } - - /* record the system username */ - rc = strncpy_s(sys_user, SYS_USERNAME_MAX + 1, pw->pw_name, SYS_USERNAME_MAX); - securec_check_errno(rc, (void)pthread_rwlock_unlock(&hba_rwlock),); - /* * If the system username equals to the database username, continue * the authorization without checking the usermap. If not, we should @@ -1542,18 +1586,13 @@ static void check_hba(hbaPort* port) * needed when login in in the non-installation enviroment under the * same system user group. */ - if (strcmp(port->user_name, sys_user) != 0) - hba->auth_method = uaSHA256; - pfree_ext(pwbuf); + isUsernameSame= IsSysUsernameSameToDB(uid, port->user_name); + if (!isUsernameSame && hba->auth_method == uaTrust) { + hba->auth_method = get_default_auth_method(port->user_name); + } } else if (hba->auth_method == uaTrust) { /* For non-initdb user, password is always needed */ - hba->auth_method = uaSHA256; - password_info pass_info; - if (get_stored_password(port->user_name, &pass_info)) { - if (isSM3(pass_info.shadow_pass)) { - hba->auth_method = uaSM3; - } - } + hba->auth_method = get_default_auth_method(port->user_name); } if (!IS_AF_UNIX(port->raddr.addr.ss_family)) @@ -1562,7 +1601,7 @@ static void check_hba(hbaPort* port) if (IS_AF_UNIX(port->raddr.addr.ss_family)) continue; - /* Check SSL state */ + /* Check SSL state */ #ifdef USE_SSL if (port->ssl != NULL) { /* Connection is SSL, match both "host" and "hostssl" */ @@ -1628,7 +1667,7 @@ static void check_hba(hbaPort* port) /* exception 1, just pass */ } else if (IsLoopBackAddr(port)) { /* exception 2, for local loop back connections, hba->remote_trust should be false */ - hba->auth_method = uaSHA256; + hba->auth_method = get_default_auth_method(port->user_name); hba->remoteTrust = false; } else if (roleid != INITIAL_USER_ID && IS_PGXC_COORDINATOR && is_cluster_internal_connection(port)) { /* @@ -1638,13 +1677,11 @@ static void check_hba(hbaPort* port) * Nevertheless, this should not be a serious problem, because periodically * local cm_agent connections will soon populate node information in shared memory. */ - hba->auth_method = uaSHA256; + hba->auth_method = get_default_auth_method(port->user_name); hba->remoteTrust = false; } else { ConnAuthMethodCorrect = false; pfree_ext(hba); - (void)pthread_rwlock_unlock(&hba_rwlock); - END_CRIT_SECTION(); ereport(FATAL, (errcode(ERRCODE_INVALID_AUTHORIZATION_SPECIFICATION), errmsg("Forbid remote connection with trust method!"))); @@ -1652,38 +1689,30 @@ static void check_hba(hbaPort* port) } } - /* - * Change the inner auth method to IAM when using iam role with SHA256 or MD5 - * to avoid confict. - */ - if (InvalidOid != roleid && is_role_iamauth(roleid) && - (hba->auth_method == uaSHA256 || hba->auth_method == uaMD5)) { +#ifdef USE_IAM + /* Change the inner auth method to IAM when using iam role with SHA256/MD5/SM3 to avoid confict. */ + if (isIAM && (hba->auth_method == uaSHA256 || hba->auth_method == uaMD5 || hba->auth_method == uaSM3)) { hba->auth_method = uaIAM; } - +#endif #if defined(ENABLE_GSS) || defined(ENABLE_SSPI) - /* - * for non-initial user, krb authentication is not allowed, sha256 req will be processed - */ + /* For non-initial user, krb authentication is not allowed, sha256 req will be processed. */ if (hba->auth_method == uaGSS && roleid != INITIAL_USER_ID && IsConnFromApp()) { - hba->auth_method = uaSHA256; + hba->auth_method = get_default_auth_method(port->user_name); } #endif - - copy_hba_line(hba); - port->hba = hba; - (void)pthread_rwlock_unlock(&hba_rwlock); - END_CRIT_SECTION(); - return; + isMatched = true; + break; } - copy_hba_line(hba); - (void)pthread_rwlock_unlock(&hba_rwlock); - END_CRIT_SECTION(); - /* If no matching entry was found, then implicitly reject. */ - hba->auth_method = uaImplicitReject; + if (!isMatched) { + hba->auth_method = uaImplicitReject; + } + copy_hba_line(hba); port->hba = hba; + PG_END_ENSURE_ERROR_CLEANUP(hba_rwlock_cleanup, (Datum)0); + (void)pthread_rwlock_unlock(&hba_rwlock); } /* @@ -1778,15 +1807,17 @@ bool load_hba(void) /* Any ERROR will become PANIC errors when holding rwlock of hba_rwlock. */ int ret = pthread_rwlock_wrlock(&hba_rwlock); if (ret == 0) { - START_CRIT_SECTION(); + /* hba_rwlock will be released when ereport ERROR or FATAL. */ + PG_ENSURE_ERROR_CLEANUP(hba_rwlock_cleanup, (Datum)0); /* Loaded new file successfully, replace the one we use */ if (g_instance.libpq_cxt.parsed_hba_context != NULL) { MemoryContextDelete(g_instance.libpq_cxt.parsed_hba_context); } g_instance.libpq_cxt.parsed_hba_context = hbacxt; g_instance.libpq_cxt.comm_parsed_hba_lines = new_parsed_lines; + PG_END_ENSURE_ERROR_CLEANUP(hba_rwlock_cleanup, (Datum)0); (void)pthread_rwlock_unlock(&hba_rwlock); - END_CRIT_SECTION(); + check_old_hba(false); return true; } else { MemoryContextDelete(hbacxt); @@ -1797,6 +1828,35 @@ bool load_hba(void) } } +void check_old_hba(bool need_old_hba) +{ + struct stat st; + char path[MAXPGPATH]; + int nRet = snprintf_s(path, MAXPGPATH, MAXPGPATH - 1, "%s/pg_hba.conf.old", + g_instance.attr.attr_common.data_directory); + securec_check_ss_c(nRet, "", ""); + + if (stat(path, &st) != 0) { + ereport(DEBUG5, + (errcode_for_file_access(), + errmsg("file does not exists \"%s\"", path))); + return; + } + if (need_old_hba) { + if (rename(path, g_instance.attr.attr_common.HbaFileName)) { + ereport(LOG, + (errcode_for_file_access(), + errmsg("failed to rename file \"%s\": %m", path))); + } + } else { + if (unlink(path)) { + ereport(LOG, + (errcode_for_file_access(), + errmsg("failed to remove file \"%s\": %m", path))); + } + } +} + /* * Check whether the username actually matched or not */ @@ -2090,7 +2150,7 @@ void hba_getauthmethod(hbaPort* port) #ifdef ENABLE_MULTIPLE_NODES if (IsDSorHaWalSender() ) { #else - if (IsDSorHaWalSender() && is_node_internal_connection(port)) { + if (IsDSorHaWalSender() && (is_node_internal_connection(port) || AM_WAL_HADR_SENDER)) { #endif check_hba_replication(port); } else { @@ -2130,11 +2190,15 @@ bool is_node_internal_connection(hbaPort* port) return true; } - for (int i = 1; i < MAX_REPLNODE_NUM; i++) { - if (u_sess->attr.attr_storage.ReplConnInfoArr[i] && *(u_sess->attr.attr_storage.ReplConnInfoArr[i]) != '\0' && - strcasestr(u_sess->attr.attr_storage.ReplConnInfoArr[i], remote_host) != NULL) { - ereport(DEBUG2, (errmsg("remote host is:%s in replconninfo %s", - remote_host, u_sess->attr.attr_storage.ReplConnInfoArr[1]))); + for (int i = 1; i < DOUBLE_MAX_REPLNODE_NUM; i++) { + char *replconninfo = NULL; + if (i >= MAX_REPLNODE_NUM) { + replconninfo = u_sess->attr.attr_storage.CrossClusterReplConnInfoArr[i - MAX_REPLNODE_NUM]; + } else { + replconninfo = u_sess->attr.attr_storage.ReplConnInfoArr[i]; + } + if (replconninfo && *replconninfo != '\0' && strcasestr(replconninfo, remote_host) != NULL) { + ereport(DEBUG2, (errmsg("remote host is:%s in replconninfo %s", remote_host, replconninfo))); return true; } } @@ -2226,6 +2290,8 @@ bool is_cluster_internal_IP(sockaddr peer_addr) sockaddr_in* pSin = (sockaddr_in*)&peer_addr; const int MAX_IP_ADDRESS_LEN = 64; char ipstr[MAX_IP_ADDRESS_LEN] = {'\0'}; + bool isInternalIP = false; + inet_ntop(AF_INET, &pSin->sin_addr, ipstr, MAX_IP_ADDRESS_LEN - 1); if (strcmp(ipstr, "127.0.0.1") == 0 || strcmp(ipstr, "localhost") == 0) return true; @@ -2259,25 +2325,23 @@ bool is_cluster_internal_IP(sockaddr peer_addr) return false; } - /* Any ERROR will become PANIC errors when holding rwlock of hba_rwlock. */ - START_CRIT_SECTION(); + /* hba_rwlock will be released when ereport ERROR or FATAL. */ + PG_ENSURE_ERROR_CLEANUP(hba_rwlock_cleanup, (Datum)0); foreach (line, g_instance.libpq_cxt.comm_parsed_hba_lines) { hba = (HbaLine*)lfirst(line); - /* check connection type */ if (hba->auth_method == uaTrust || hba->auth_method == uaGSS) { if (check_ip(raddr, (struct sockaddr*)&hba->addr, (struct sockaddr*)&hba->mask)) { - (void)pthread_rwlock_unlock(&hba_rwlock); - END_CRIT_SECTION(); - free(raddr); - return true; + isInternalIP = true; + break; } } } + + PG_END_ENSURE_ERROR_CLEANUP(hba_rwlock_cleanup, (Datum)0); (void)pthread_rwlock_unlock(&hba_rwlock); - END_CRIT_SECTION(); free(raddr); - return false; + return isInternalIP; } /* Check whether the ip is configured in pg_hba.conf */ @@ -2288,6 +2352,7 @@ bool check_ip_whitelist(hbaPort* port, char* ip, unsigned int ip_len) const SockAddr local_addr = port->laddr; char remote_host[NI_MAXHOST]; char local_host[NI_MAXHOST]; + bool isWhitelistIP = false; remote_host[0] = '\0'; local_host[0] = '\0'; @@ -2318,21 +2383,20 @@ bool check_ip_whitelist(hbaPort* port, char* ip, unsigned int ip_len) return false; } - /* Any ERROR will become PANIC errors when holding rwlock of hba_rwlock. */ - START_CRIT_SECTION(); + /* hba_rwlock will be released when ereport ERROR or FATAL. */ + PG_ENSURE_ERROR_CLEANUP(hba_rwlock_cleanup, (Datum)0); foreach (line, g_instance.libpq_cxt.comm_parsed_hba_lines) { hba = (HbaLine*)lfirst(line); if (hba->auth_method != uaReject) { if (check_ip(&port->raddr, (struct sockaddr*)&hba->addr, (struct sockaddr*)&hba->mask)) { - (void)pthread_rwlock_unlock(&hba_rwlock); - END_CRIT_SECTION(); - return true; + isWhitelistIP = true; + break; } } } + PG_END_ENSURE_ERROR_CLEANUP(hba_rwlock_cleanup, (Datum)0); (void)pthread_rwlock_unlock(&hba_rwlock); - END_CRIT_SECTION(); - return false; + return isWhitelistIP; } diff --git a/src/common/backend/libpq/pqcomm.cpp b/src/common/backend/libpq/pqcomm.cpp index 2cb095aa6..40cde3203 100644 --- a/src/common/backend/libpq/pqcomm.cpp +++ b/src/common/backend/libpq/pqcomm.cpp @@ -1027,8 +1027,8 @@ int StreamConnection(pgsocket server_fd, Port* port) #ifdef WIN32 /* - * This is a Win32 socket optimization. The ideal size is 32k. - * http://support.microsoft.com/kb/823764/EN-US/ + * This is a Win32 socket optimization. + * The ideal buffer size is 32k for a Win32 socket at most efficiency. */ on = PQ_SEND_BUFFER_SIZE * 4; diff --git a/src/common/backend/libpq/pqformat.cpp b/src/common/backend/libpq/pqformat.cpp index 0482b2b0f..b69e7ea89 100644 --- a/src/common/backend/libpq/pqformat.cpp +++ b/src/common/backend/libpq/pqformat.cpp @@ -23,6 +23,7 @@ * * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * src/common/backend/libpq/pqformat.cpp * @@ -479,6 +480,25 @@ int64 pq_getmsgint64(StringInfo msg) return (int64)result; } +/* -------------------------------- + * pq_getmsgint128 - get a binary 16-byte int from a message buffer + * + * It is tempting to merge this with pq_getmsgint, but we'd have to make the + * result int128 for all data widths --- that could be a big performance + * hit on machines where int64 isn't efficient. + * -------------------------------- + */ +int128 pq_getmsgint128(StringInfo msg) +{ + uint128 n128; + + const int int128bytes = 4; + + pq_copymsgbytes(msg, (char*)&n128, int128bytes); + + return (int128)pg_ntoh128(n128); +} + /* -------------------------------- * pq_getmsgfloat4 - get a float4 from a message buffer * diff --git a/src/common/backend/nodes/copyfuncs.cpp b/src/common/backend/nodes/copyfuncs.cpp index 465addc54..6f88706f4 100644 --- a/src/common/backend/nodes/copyfuncs.cpp +++ b/src/common/backend/nodes/copyfuncs.cpp @@ -206,6 +206,7 @@ static void CopyPlanFields(const Plan* from, Plan* newnode) COPY_NODE_FIELD(righttree); COPY_SCALAR_FIELD(ispwj); COPY_SCALAR_FIELD(paramno); + COPY_SCALAR_FIELD(subparamno); COPY_NODE_FIELD(initPlan); COPY_NODE_FIELD(distributed_keys); COPY_NODE_FIELD(exec_nodes); @@ -311,7 +312,6 @@ static ModifyTable* _copyModifyTable(const ModifyTable* from) COPY_NODE_FIELD(updateTlist); COPY_NODE_FIELD(exclRelTlist); COPY_SCALAR_FIELD(exclRelRTIndex); - COPY_SCALAR_FIELD(partKeyUpsert); return newnode; } @@ -393,6 +393,7 @@ static PartIteratorParam* _copyPartIteratorParam(const PartIteratorParam* from) PartIteratorParam* newnode = makeNode(PartIteratorParam); COPY_SCALAR_FIELD(paramno); + COPY_SCALAR_FIELD(subPartParamno); return newnode; } @@ -423,6 +424,36 @@ static RecursiveUnion* _copyRecursiveUnion(const RecursiveUnion* from) COPY_SCALAR_FIELD(is_used); COPY_SCALAR_FIELD(is_correlated); + /* start with support */ + COPY_NODE_FIELD(internalEntryList); + + return newnode; +} + +static StartWithOp *_copyStartWithOp(const StartWithOp *from) +{ + StartWithOp *newnode = makeNode(StartWithOp); + + /* + * copy node superclass fields + */ + CopyPlanFields((const Plan*)from, (Plan*)newnode); + + /* + * copy remainder of node + */ + COPY_NODE_FIELD(cteplan); + COPY_NODE_FIELD(ruplan); + COPY_NODE_FIELD(keyEntryList); + COPY_NODE_FIELD(colEntryList); + COPY_NODE_FIELD(internalEntryList); + COPY_NODE_FIELD(fullEntryList); + + COPY_NODE_FIELD(swoptions); + + COPY_SCALAR_FIELD(swExecOptions); + COPY_NODE_FIELD(prcTargetEntryList); + return newnode; } @@ -877,6 +908,9 @@ static CteScan* _copyCteScan(const CteScan* from) COPY_SCALAR_FIELD(ctePlanId); COPY_SCALAR_FIELD(cteParam); + /* start with support */ + COPY_NODE_FIELD(cteRef); + COPY_NODE_FIELD(internalEntryList); return newnode; } @@ -896,6 +930,7 @@ static WorkTableScan* _copyWorkTableScan(const WorkTableScan* from) * copy remainder of node */ COPY_SCALAR_FIELD(wtParam); + COPY_SCALAR_FIELD(forStartWith); return newnode; } @@ -1532,6 +1567,16 @@ static PlanInvalItem* _copyPlanInvalItem(const PlanInvalItem* from) return newnode; } +static FuncInvalItem* _copyFuncInvalItem(const FuncInvalItem* from) +{ + FuncInvalItem* newnode = makeNode(FuncInvalItem); + + COPY_SCALAR_FIELD(cacheId); + COPY_SCALAR_FIELD(objId); + + return newnode; +} + static VecToRow* _copyVecToRow(const VecToRow* from) { VecToRow* newnode = makeNode(VecToRow); @@ -2248,11 +2293,13 @@ static RangeVar* _copyRangeVar(const RangeVar* from) COPY_STRING_FIELD(schemaname); COPY_STRING_FIELD(relname); COPY_STRING_FIELD(partitionname); + COPY_STRING_FIELD(subpartitionname); COPY_SCALAR_FIELD(inhOpt); COPY_SCALAR_FIELD(relpersistence); COPY_NODE_FIELD(alias); COPY_LOCATION_FIELD(location); COPY_SCALAR_FIELD(ispartition); + COPY_SCALAR_FIELD(issubpartition); COPY_NODE_FIELD(partitionKeyValuesList); COPY_SCALAR_FIELD(isbucket); COPY_NODE_FIELD(buckets); @@ -2288,6 +2335,24 @@ static IntoClause* _copyIntoClause(const IntoClause* from) return newnode; } +/* + * _copyStartWithClause + */ +static StartWithClause* _copyStartWithClause(const StartWithClause* from) +{ + StartWithClause* newnode = makeNode(StartWithClause); + + COPY_NODE_FIELD(startWithExpr); + COPY_NODE_FIELD(connectByExpr); + COPY_NODE_FIELD(siblingsOrderBy); + + COPY_SCALAR_FIELD(priorDirection); + COPY_SCALAR_FIELD(nocycle); + COPY_SCALAR_FIELD(opt); + + return newnode; +} + /* * We don't need a _copyExpr because Expr is an abstract supertype which * should never actually get instantiated. Also, since it has no common @@ -2362,6 +2427,8 @@ static Param* _copyParam(const Param* from) COPY_SCALAR_FIELD(paramtypmod); COPY_SCALAR_FIELD(paramcollid); COPY_LOCATION_FIELD(location); + COPY_SCALAR_FIELD(tableOfIndexType); + COPY_SCALAR_FIELD(recordVarTypOid); return newnode; } @@ -3019,6 +3086,20 @@ static TargetEntry* _copyTargetEntry(const TargetEntry* from) return newnode; } + +/* + * _copyPseudoTargetEntry + */ +static PseudoTargetEntry* _copyPseudoTargetEntry(const PseudoTargetEntry* from) +{ + PseudoTargetEntry* newnode = makeNode(PseudoTargetEntry); + + COPY_NODE_FIELD(tle); + COPY_NODE_FIELD(srctle); + + return newnode; +} + /* * _copyRangeTblRef */ @@ -3072,6 +3153,7 @@ static PartitionState* _copyPartitionState(const PartitionState* from) COPY_NODE_FIELD(partitionKey); COPY_NODE_FIELD(partitionList); COPY_SCALAR_FIELD(rowMovement); + COPY_NODE_FIELD(subPartitionState); return newnode; } @@ -3085,6 +3167,7 @@ static RangePartitionDefState* _copyRangePartitionDefState(const RangePartitionD COPY_STRING_FIELD(tablespacename); COPY_SCALAR_FIELD(curStartVal); COPY_STRING_FIELD(partitionInitName); + COPY_NODE_FIELD(subPartitionDefState); return newnode; } @@ -3096,6 +3179,7 @@ static HashPartitionDefState* _copyHashPartitionDefState(const HashPartitionDefS COPY_STRING_FIELD(partitionName); COPY_NODE_FIELD(boundary); COPY_STRING_FIELD(tablespacename); + COPY_NODE_FIELD(subPartitionDefState); return newnode; } @@ -3107,6 +3191,7 @@ static ListPartitionDefState* _copyListPartitionDefState(const ListPartitionDefS COPY_STRING_FIELD(partitionName); COPY_NODE_FIELD(boundary); COPY_STRING_FIELD(tablespacename); + COPY_NODE_FIELD(subPartitionDefState); return newnode; } @@ -3124,10 +3209,12 @@ static SplitPartitionState* _copySplitPartitionState(const SplitPartitionState* { SplitPartitionState* newnode = makeNode(SplitPartitionState); + COPY_SCALAR_FIELD(splitType); COPY_STRING_FIELD(src_partition_name); COPY_NODE_FIELD(partition_for_values); COPY_NODE_FIELD(split_point); COPY_NODE_FIELD(dest_partition_define_list); + COPY_NODE_FIELD(newListSubPartitionBoundry); return newnode; } @@ -3258,6 +3345,7 @@ static RestrictInfo* _copyRestrictInfo(const RestrictInfo* from) COPY_SCALAR_FIELD(hashjoinoperator); COPY_SCALAR_FIELD(left_bucketsize); COPY_SCALAR_FIELD(right_bucketsize); + COPY_SCALAR_FIELD(converted); return newnode; } @@ -3361,6 +3449,8 @@ static RangeTblEntry* _copyRangeTblEntry(const RangeTblEntry* from) COPY_SCALAR_FIELD(relid); COPY_SCALAR_FIELD(partitionOid); COPY_SCALAR_FIELD(isContainPartition); + COPY_SCALAR_FIELD(subpartitionOid); + COPY_SCALAR_FIELD(isContainSubPartition); COPY_SCALAR_FIELD(refSynOid); COPY_NODE_FIELD(partid_list); COPY_SCALAR_FIELD(relkind); @@ -3382,9 +3472,14 @@ static RangeTblEntry* _copyRangeTblEntry(const RangeTblEntry* from) COPY_STRING_FIELD(ctename); COPY_SCALAR_FIELD(ctelevelsup); COPY_SCALAR_FIELD(self_reference); + COPY_SCALAR_FIELD(cterecursive); COPY_NODE_FIELD(ctecoltypes); COPY_NODE_FIELD(ctecoltypmods); COPY_NODE_FIELD(ctecolcollations); + COPY_SCALAR_FIELD(swConverted); + COPY_NODE_FIELD(origin_index); + COPY_SCALAR_FIELD(swAborted); + COPY_SCALAR_FIELD(swSubExist); COPY_SCALAR_FIELD(locator_type); COPY_NODE_FIELD(alias); COPY_NODE_FIELD(eref); @@ -3508,6 +3603,8 @@ static WithClause* _copyWithClause(const WithClause* from) COPY_SCALAR_FIELD(recursive); COPY_LOCATION_FIELD(location); + COPY_NODE_FIELD(sw_clause); + return newnode; } @@ -3529,15 +3626,34 @@ static UpsertExpr* _copyUpsertExpr(const UpsertExpr* from) COPY_NODE_FIELD(updateTlist); COPY_NODE_FIELD(exclRelTlist); COPY_SCALAR_FIELD(exclRelIndex); - COPY_SCALAR_FIELD(partKeyUpsert); + return newnode; } + +static StartWithTargetRelInfo* _copyStartWithTargetRelInfo(const StartWithTargetRelInfo* from) +{ + StartWithTargetRelInfo* newnode = makeNode(StartWithTargetRelInfo); + + COPY_STRING_FIELD(relname); + COPY_STRING_FIELD(aliasname); + COPY_STRING_FIELD(ctename); + COPY_NODE_FIELD(columns); + COPY_NODE_FIELD(tblstmt); + + COPY_SCALAR_FIELD(rtekind); + COPY_NODE_FIELD(rte); + COPY_NODE_FIELD(rtr); + + return newnode; +} + static CommonTableExpr* _copyCommonTableExpr(const CommonTableExpr* from) { CommonTableExpr* newnode = makeNode(CommonTableExpr); COPY_STRING_FIELD(ctename); COPY_NODE_FIELD(aliascolnames); + COPY_SCALAR_FIELD(ctematerialized); COPY_NODE_FIELD(ctequery); COPY_LOCATION_FIELD(location); COPY_SCALAR_FIELD(cterecursive); @@ -3547,6 +3663,25 @@ static CommonTableExpr* _copyCommonTableExpr(const CommonTableExpr* from) COPY_NODE_FIELD(ctecoltypmods); COPY_NODE_FIELD(ctecolcollations); COPY_SCALAR_FIELD(locator_type); + COPY_SCALAR_FIELD(self_reference); + COPY_SCALAR_FIELD(referenced_by_subquery); + + /* copy start-with specific part */ + COPY_NODE_FIELD(swoptions); + + return newnode; +} + +static StartWithOptions *_copyStartWithOptions(const StartWithOptions* from) +{ + StartWithOptions* newnode = makeNode(StartWithOptions); + + COPY_NODE_FIELD(siblings_orderby_clause); + COPY_NODE_FIELD(prior_key_index); + COPY_SCALAR_FIELD(connect_by_type); + COPY_NODE_FIELD(connect_by_level_quals); + COPY_NODE_FIELD(connect_by_other_quals); + COPY_SCALAR_FIELD(nocycle); return newnode; } @@ -3569,6 +3704,7 @@ static ColumnRef* _copyColumnRef(const ColumnRef* from) ColumnRef* newnode = makeNode(ColumnRef); COPY_NODE_FIELD(fields); + COPY_SCALAR_FIELD(prior); COPY_LOCATION_FIELD(location); return newnode; @@ -3694,6 +3830,7 @@ static TypeName* _copyTypeName(const TypeName* from) COPY_NODE_FIELD(arrayBounds); COPY_LOCATION_FIELD(location); COPY_LOCATION_FIELD(end_location); + COPY_SCALAR_FIELD(pct_rowtype); return newnode; } @@ -4448,6 +4585,7 @@ static SelectStmt* _copySelectStmt(const SelectStmt* from) COPY_NODE_FIELD(intoClause); COPY_NODE_FIELD(targetList); COPY_NODE_FIELD(fromClause); + COPY_NODE_FIELD(startWithClause); COPY_NODE_FIELD(whereClause); COPY_NODE_FIELD(groupClause); COPY_NODE_FIELD(havingClause); @@ -4899,7 +5037,7 @@ static CreatePackageStmt* _copyCreatePackageStmt(const CreatePackageStmt* from) COPY_SCALAR_FIELD(replace); COPY_NODE_FIELD(pkgname); - COPY_NODE_FIELD(options); + COPY_SCALAR_FIELD(pkgsecdef); COPY_STRING_FIELD(pkgspec); return newnode; @@ -4912,8 +5050,8 @@ static CreatePackageBodyStmt* _copyCreatePackageBodyStmt(const CreatePackageBody COPY_SCALAR_FIELD(replace); COPY_NODE_FIELD(pkgname); COPY_STRING_FIELD(pkgbody); - COPY_STRING_FIELD(pkginit); - + COPY_STRING_FIELD(pkginit); + COPY_SCALAR_FIELD(pkgsecdef); return newnode; } @@ -5059,6 +5197,16 @@ static CompositeTypeStmt* _copyCompositeTypeStmt(const CompositeTypeStmt* from) return newnode; } +static TableOfTypeStmt* _copyTableOfTypeStmt(const TableOfTypeStmt* from) +{ + TableOfTypeStmt* newnode = makeNode(TableOfTypeStmt); + + COPY_NODE_FIELD(typname); + COPY_NODE_FIELD(reftypname); + + return newnode; +} + static CreateEnumStmt* _copyCreateEnumStmt(const CreateEnumStmt* from) { CreateEnumStmt* newnode = makeNode(CreateEnumStmt); @@ -5114,6 +5262,14 @@ static LoadStmt* _copyLoadStmt(const LoadStmt* from) COPY_STRING_FIELD(filename); + COPY_NODE_FIELD(pre_load_options); + COPY_SCALAR_FIELD(is_load_data); + COPY_SCALAR_FIELD(is_only_special_filed); + COPY_NODE_FIELD(load_options); + COPY_SCALAR_FIELD(load_type); + COPY_NODE_FIELD(relation); + COPY_NODE_FIELD(rel_options); + return newnode; } @@ -5297,6 +5453,7 @@ static CreateSeqStmt* _copyCreateSeqStmt(const CreateSeqStmt* from) #endif COPY_SCALAR_FIELD(uuid); COPY_SCALAR_FIELD(canCreateTempSeq); + COPY_SCALAR_FIELD(is_large); return newnode; } @@ -5308,6 +5465,7 @@ static AlterSeqStmt* _copyAlterSeqStmt(const AlterSeqStmt* from) COPY_NODE_FIELD(sequence); COPY_NODE_FIELD(options); COPY_SCALAR_FIELD(missing_ok); + COPY_SCALAR_FIELD(is_large); return newnode; } @@ -5329,6 +5487,7 @@ static VariableShowStmt* _copyVariableShowStmt(const VariableShowStmt* from) VariableShowStmt* newnode = makeNode(VariableShowStmt); COPY_STRING_FIELD(name); + COPY_STRING_FIELD(likename); return newnode; } @@ -6181,9 +6340,11 @@ static CreateGroupStmt* _copyCreateGroupStmt(const CreateGroupStmt* from) CreateGroupStmt* newnode = makeNode(CreateGroupStmt); COPY_STRING_FIELD(group_name); + COPY_STRING_FIELD(group_parent); COPY_STRING_FIELD(src_group_name); COPY_NODE_FIELD(nodes); COPY_NODE_FIELD(buckets); + COPY_SCALAR_FIELD(bucketcnt); COPY_SCALAR_FIELD(vcgroup); return newnode; @@ -6431,6 +6592,15 @@ static ShutdownStmt* _copyShutdownStmt(const ShutdownStmt* from) return newnode; } +static SubPartitionPruningResult *_copySubPartitionPruningResult(const SubPartitionPruningResult *from) +{ + SubPartitionPruningResult* newnode = makeNode(SubPartitionPruningResult); + COPY_SCALAR_FIELD(partSeq); + COPY_BITMAPSET_FIELD(bm_selectedSubPartitions); + COPY_NODE_FIELD(ls_selectedSubPartitions); + return newnode; +} + /* * copyObject * @@ -6476,6 +6646,9 @@ void* copyObject(const void* from) case T_RecursiveUnion: retval = _copyRecursiveUnion((RecursiveUnion*)from); break; + case T_StartWithOp: + retval = _copyStartWithOp((StartWithOp*)from); + break; case T_BitmapAnd: retval = _copyBitmapAnd((BitmapAnd*)from); break; @@ -6614,6 +6787,9 @@ void* copyObject(const void* from) case T_PlanInvalItem: retval = _copyPlanInvalItem((PlanInvalItem*)from); break; + case T_FuncInvalItem: + retval = _copyFuncInvalItem((FuncInvalItem*)from); + break; case T_VecToRow: retval = _copyVecToRow((VecToRow*)from); break; @@ -6721,6 +6897,9 @@ void* copyObject(const void* from) case T_IntoClause: retval = _copyIntoClause((IntoClause*)from); break; + case T_StartWithClause: + retval = _copyStartWithClause((StartWithClause*)from); + break; case T_Var: retval = _copyVar((Var*)from); break; @@ -6847,6 +7026,9 @@ void* copyObject(const void* from) case T_TargetEntry: retval = _copyTargetEntry((TargetEntry*)from); break; + case T_PseudoTargetEntry: + retval = _copyPseudoTargetEntry((PseudoTargetEntry*)from); + break; case T_RangeTblRef: retval = _copyRangeTblRef((RangeTblRef*)from); break; @@ -7076,6 +7258,9 @@ void* copyObject(const void* from) case T_CompositeTypeStmt: retval = _copyCompositeTypeStmt((CompositeTypeStmt*)from); break; + case T_TableOfTypeStmt: + retval = _copyTableOfTypeStmt((TableOfTypeStmt*)from); + break; case T_CreateEnumStmt: retval = _copyCreateEnumStmt((CreateEnumStmt*)from); break; @@ -7491,6 +7676,12 @@ void* copyObject(const void* from) case T_CommonTableExpr: retval = _copyCommonTableExpr((CommonTableExpr*)from); break; + case T_StartWithTargetRelInfo: + retval = _copyStartWithTargetRelInfo((StartWithTargetRelInfo*)from); + break; + case T_StartWithOptions: + retval = _copyStartWithOptions((StartWithOptions*)from); + break; case T_Position: retval = _copyPosition((Position*)from); break; @@ -7633,6 +7824,9 @@ void* copyObject(const void* from) case T_ShutdownStmt: retval = _copyShutdownStmt((ShutdownStmt*)from); break; + case T_SubPartitionPruningResult: + retval = _copySubPartitionPruningResult((SubPartitionPruningResult*)from); + break; case T_CreatePublicationStmt: retval = _copyCreatePublicationStmt((CreatePublicationStmt *)from); diff --git a/src/common/backend/nodes/equalfuncs.cpp b/src/common/backend/nodes/equalfuncs.cpp index c8d278433..c986b1a9f 100644 --- a/src/common/backend/nodes/equalfuncs.cpp +++ b/src/common/backend/nodes/equalfuncs.cpp @@ -109,11 +109,13 @@ static bool _equalRangeVar(const RangeVar* a, const RangeVar* b) COMPARE_STRING_FIELD(schemaname); COMPARE_STRING_FIELD(relname); COMPARE_STRING_FIELD(partitionname); + COMPARE_STRING_FIELD(subpartitionname); COMPARE_SCALAR_FIELD(inhOpt); COMPARE_SCALAR_FIELD(relpersistence); COMPARE_NODE_FIELD(alias); COMPARE_LOCATION_FIELD(location); COMPARE_SCALAR_FIELD(ispartition); + COMPARE_SCALAR_FIELD(issubpartition); COMPARE_NODE_FIELD(partitionKeyValuesList); COMPARE_SCALAR_FIELD(isbucket); COMPARE_NODE_FIELD(buckets); @@ -186,6 +188,8 @@ static bool _equalParam(const Param* a, const Param* b) COMPARE_SCALAR_FIELD(paramtypmod); COMPARE_SCALAR_FIELD(paramcollid); COMPARE_LOCATION_FIELD(location); + COMPARE_SCALAR_FIELD(tableOfIndexType); + COMPARE_SCALAR_FIELD(recordVarTypOid); return true; } @@ -652,6 +656,14 @@ static bool _equalTargetEntry(const TargetEntry* a, const TargetEntry* b) return true; } +static bool _equalPseudoTargetEntry(const PseudoTargetEntry * a, const PseudoTargetEntry * b) +{ + COMPARE_NODE_FIELD(tle); + COMPARE_NODE_FIELD(srctle); + + return true; +} + static bool _equalRangeTblRef(const RangeTblRef* a, const RangeTblRef* b) { COMPARE_SCALAR_FIELD(rtindex); @@ -698,7 +710,7 @@ static bool _equalUpsertExpr(const UpsertExpr* a, const UpsertExpr* b) COMPARE_NODE_FIELD(updateTlist); COMPARE_NODE_FIELD(exclRelTlist); COMPARE_SCALAR_FIELD(exclRelIndex); - COMPARE_SCALAR_FIELD(partKeyUpsert); + return true; } /* @@ -937,6 +949,7 @@ static bool _equalSelectStmt(const SelectStmt* a, const SelectStmt* b) COMPARE_NODE_FIELD(intoClause); COMPARE_NODE_FIELD(targetList); COMPARE_NODE_FIELD(fromClause); + COMPARE_NODE_FIELD(startWithClause); COMPARE_NODE_FIELD(whereClause); COMPARE_NODE_FIELD(groupClause); COMPARE_NODE_FIELD(havingClause); @@ -1232,10 +1245,12 @@ static bool _equalDistFdwDataNodeTask(const DistFdwDataNodeTask* a, const DistFd static bool _equalSplitPartitionState(const SplitPartitionState* a, const SplitPartitionState* b) { + COMPARE_SCALAR_FIELD(splitType); COMPARE_SCALAR_FIELD(src_partition_name); COMPARE_NODE_FIELD(partition_for_values); COMPARE_NODE_FIELD(split_point); COMPARE_NODE_FIELD(dest_partition_define_list); + COMPARE_NODE_FIELD(newListSubPartitionBoundry); return true; } @@ -1488,6 +1503,14 @@ static bool _equalCompositeTypeStmt(const CompositeTypeStmt* a, const CompositeT return true; } +static bool _equalTableOfTypeStmt(const TableOfTypeStmt* a, const TableOfTypeStmt* b) +{ + COMPARE_NODE_FIELD(typname); + COMPARE_NODE_FIELD(reftypname); + + return true; +} + static bool _equalCreateEnumStmt(const CreateEnumStmt* a, const CreateEnumStmt* b) { COMPARE_NODE_FIELD(typname); @@ -1533,6 +1556,14 @@ static bool _equalLoadStmt(const LoadStmt* a, const LoadStmt* b) { COMPARE_STRING_FIELD(filename); + COMPARE_NODE_FIELD(pre_load_options); + COMPARE_SCALAR_FIELD(is_load_data); + COMPARE_SCALAR_FIELD(is_only_special_filed); + COMPARE_NODE_FIELD(load_options); + COMPARE_SCALAR_FIELD(load_type); + COMPARE_NODE_FIELD(relation); + COMPARE_NODE_FIELD(rel_options); + return true; } @@ -1691,6 +1722,7 @@ static bool _equalCreateSeqStmt(const CreateSeqStmt* a, const CreateSeqStmt* b) #endif COMPARE_SCALAR_FIELD(uuid); COMPARE_SCALAR_FIELD(canCreateTempSeq); + COMPARE_SCALAR_FIELD(is_large); return true; } @@ -1700,6 +1732,7 @@ static bool _equalAlterSeqStmt(const AlterSeqStmt* a, const AlterSeqStmt* b) COMPARE_NODE_FIELD(sequence); COMPARE_NODE_FIELD(options); COMPARE_SCALAR_FIELD(missing_ok); + COMPARE_SCALAR_FIELD(is_large); return true; } @@ -1717,6 +1750,7 @@ static bool _equalVariableSetStmt(const VariableSetStmt* a, const VariableSetStm static bool _equalVariableShowStmt(const VariableShowStmt* a, const VariableShowStmt* b) { COMPARE_STRING_FIELD(name); + COMPARE_STRING_FIELD(likename); return true; } @@ -2225,6 +2259,7 @@ static bool _equalAExpr(const A_Expr* a, const A_Expr* b) static bool _equalColumnRef(const ColumnRef* a, const ColumnRef* b) { COMPARE_NODE_FIELD(fields); + COMPARE_SCALAR_FIELD(prior); COMPARE_LOCATION_FIELD(location); return true; @@ -2555,6 +2590,8 @@ static bool _equalRangeTblEntry(const RangeTblEntry* a, const RangeTblEntry* b) COMPARE_SCALAR_FIELD(relid); COMPARE_SCALAR_FIELD(partitionOid); COMPARE_SCALAR_FIELD(isContainPartition); + COMPARE_SCALAR_FIELD(subpartitionOid); + COMPARE_SCALAR_FIELD(isContainSubPartition); COMPARE_SCALAR_FIELD(refSynOid); COMPARE_NODE_FIELD(partid_list); COMPARE_SCALAR_FIELD(relkind); @@ -2575,9 +2612,14 @@ static bool _equalRangeTblEntry(const RangeTblEntry* a, const RangeTblEntry* b) COMPARE_STRING_FIELD(ctename); COMPARE_SCALAR_FIELD(ctelevelsup); COMPARE_SCALAR_FIELD(self_reference); + COMPARE_SCALAR_FIELD(cterecursive); COMPARE_NODE_FIELD(ctecoltypes); COMPARE_NODE_FIELD(ctecoltypmods); COMPARE_NODE_FIELD(ctecolcollations); + COMPARE_SCALAR_FIELD(swConverted); + COMPARE_NODE_FIELD(origin_index); + COMPARE_SCALAR_FIELD(swAborted); + COMPARE_SCALAR_FIELD(swSubExist); COMPARE_NODE_FIELD(alias); COMPARE_NODE_FIELD(eref); COMPARE_NODE_FIELD(pname); @@ -2695,6 +2737,20 @@ static bool _equalWithClause(const WithClause* a, const WithClause* b) COMPARE_NODE_FIELD(ctes); COMPARE_SCALAR_FIELD(recursive); COMPARE_LOCATION_FIELD(location); + COMPARE_NODE_FIELD(sw_clause); + + return true; +} + +static bool _equalStartWithClause(const StartWithClause * a, const StartWithClause * b) +{ + COMPARE_NODE_FIELD(startWithExpr); + COMPARE_NODE_FIELD(connectByExpr); + COMPARE_NODE_FIELD(siblingsOrderBy); + + COMPARE_SCALAR_FIELD(priorDirection); + COMPARE_SCALAR_FIELD(nocycle); + COMPARE_SCALAR_FIELD(opt); return true; } @@ -2706,10 +2762,19 @@ static bool _equalUpsertClause(const UpsertClause* a, const UpsertClause* b) return true; } + +static bool _equalStartWithTargetRelInfo(const StartWithTargetRelInfo *a, + const StartWithTargetRelInfo *b) +{ + /* simple compare pointer */ + return a == b; +} + static bool _equalCommonTableExpr(const CommonTableExpr* a, const CommonTableExpr* b) { COMPARE_STRING_FIELD(ctename); COMPARE_NODE_FIELD(aliascolnames); + COMPARE_SCALAR_FIELD(ctematerialized); COMPARE_NODE_FIELD(ctequery); COMPARE_LOCATION_FIELD(location); COMPARE_SCALAR_FIELD(cterecursive); @@ -2719,6 +2784,22 @@ static bool _equalCommonTableExpr(const CommonTableExpr* a, const CommonTableExp COMPARE_NODE_FIELD(ctecoltypmods); COMPARE_NODE_FIELD(ctecolcollations); COMPARE_SCALAR_FIELD(locator_type); + COMPARE_NODE_FIELD(swoptions); + COMPARE_SCALAR_FIELD(self_reference); + COMPARE_SCALAR_FIELD(referenced_by_subquery); + return true; +} + +static bool _equalStartWithOptions(const StartWithOptions * a, const StartWithOptions * b) +{ + COMPARE_NODE_FIELD(siblings_orderby_clause); + COMPARE_NODE_FIELD(prior_key_index); + COMPARE_NODE_FIELD(prior_key_index); + + COMPARE_SCALAR_FIELD(connect_by_type); + COMPARE_NODE_FIELD(connect_by_level_quals); + COMPARE_NODE_FIELD(connect_by_other_quals); + COMPARE_SCALAR_FIELD(nocycle); return true; } @@ -3254,6 +3335,9 @@ bool equal(const void* a, const void* b) case T_TargetEntry: retval = _equalTargetEntry((TargetEntry*)a, (TargetEntry*)b); break; + case T_PseudoTargetEntry: + retval = _equalPseudoTargetEntry((PseudoTargetEntry*) a, (PseudoTargetEntry*) b); + break; case T_RangeTblRef: retval = _equalRangeTblRef((RangeTblRef*)a, (RangeTblRef*)b); break; @@ -3476,6 +3560,9 @@ bool equal(const void* a, const void* b) case T_CompositeTypeStmt: retval = _equalCompositeTypeStmt((CompositeTypeStmt*)a, (CompositeTypeStmt*)b); break; + case T_TableOfTypeStmt: + retval = _equalTableOfTypeStmt((TableOfTypeStmt*)a, (TableOfTypeStmt*)b); + break; case T_CreateEnumStmt: retval = _equalCreateEnumStmt((CreateEnumStmt*)a, (CreateEnumStmt*)b); break; @@ -3880,12 +3967,22 @@ bool equal(const void* a, const void* b) case T_WithClause: retval = _equalWithClause((WithClause*)a, (WithClause*)b); break; + case T_StartWithClause: + retval = _equalStartWithClause((StartWithClause*) a, (StartWithClause*) b); + break; case T_UpsertClause: retval = _equalUpsertClause((UpsertClause*)a, (UpsertClause*)b); break; + case T_StartWithTargetRelInfo: + retval = _equalStartWithTargetRelInfo((StartWithTargetRelInfo *)a, + (StartWithTargetRelInfo *)b); + break; case T_CommonTableExpr: retval = _equalCommonTableExpr((CommonTableExpr*)a, (CommonTableExpr*)b); break; + case T_StartWithOptions: + retval = _equalStartWithOptions((StartWithOptions*) a, (StartWithOptions*) b); + break; case T_PrivGrantee: retval = _equalPrivGrantee((PrivGrantee*)a, (PrivGrantee*)b); break; diff --git a/src/common/backend/nodes/makefuncs.cpp b/src/common/backend/nodes/makefuncs.cpp index 2fffafb69..edf45b3f5 100644 --- a/src/common/backend/nodes/makefuncs.cpp +++ b/src/common/backend/nodes/makefuncs.cpp @@ -6,6 +6,7 @@ * * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -445,11 +446,13 @@ RangeVar* makeRangeVar(char* schemaname, char* relname, int location) r->schemaname = schemaname; r->relname = relname; r->partitionname = NULL; + r->subpartitionname = NULL; r->inhOpt = INH_DEFAULT; r->relpersistence = RELPERSISTENCE_PERMANENT; r->alias = NULL; r->location = location; r->ispartition = false; + r->issubpartition = false; r->partitionKeyValuesList = NIL; r->isbucket = false; r->buckets = NIL; @@ -484,6 +487,7 @@ TypeName* makeTypeNameFromNameList(List* names) n->typmods = NIL; n->typemod = -1; n->location = -1; + n->pct_rowtype = false; return n; } diff --git a/src/common/backend/nodes/nodeFuncs.cpp b/src/common/backend/nodes/nodeFuncs.cpp index d6a90abb4..768615a07 100644 --- a/src/common/backend/nodes/nodeFuncs.cpp +++ b/src/common/backend/nodes/nodeFuncs.cpp @@ -5,6 +5,7 @@ * * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -230,7 +231,7 @@ Oid exprType(const Node* expr) type = INT4OID; break; case T_Rownum: - type = INT8OID; + type = NUMERICOID; break; case T_GradientDescentExpr: type = ((const GradientDescentExpr*)expr)->fieldtype; diff --git a/src/common/backend/nodes/nodes.cpp b/src/common/backend/nodes/nodes.cpp index 9266f85f5..e35aa7bf2 100755 --- a/src/common/backend/nodes/nodes.cpp +++ b/src/common/backend/nodes/nodes.cpp @@ -6,6 +6,7 @@ * * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -41,6 +42,7 @@ static const TagStr g_tagStrArr[] = {{T_Invalid, "Invalid"}, {T_PartIterator, "PartIterator"}, {T_MergeAppend, "MergeAppend"}, {T_RecursiveUnion, "RecursiveUnion"}, + {T_StartWithOp, "StartWithOp"}, {T_BitmapAnd, "BitmapAnd"}, {T_BitmapOr, "BitmapOr"}, {T_Scan, "Scan"}, @@ -365,6 +367,7 @@ static const TagStr g_tagStrArr[] = {{T_Invalid, "Invalid"}, {T_DropOwnedStmt, "DropOwnedStmt"}, {T_ReassignOwnedStmt, "ReassignOwnedStmt"}, {T_CompositeTypeStmt, "CompositeTypeStmt"}, + {T_TableOfTypeStmt, "TableOfTypeStmt"}, {T_CreateEnumStmt, "CreateEnumStmt"}, {T_CreateRangeStmt, "CreateRangeStmt"}, {T_AlterEnumStmt, "AlterEnumStmt"}, @@ -445,6 +448,7 @@ static const TagStr g_tagStrArr[] = {{T_Invalid, "Invalid"}, {T_WithClause, "WithClause"}, {T_CommonTableExpr, "CommonTableExpr"}, {T_PruningResult, "PruningResult"}, + {T_SubPartitionPruningResult, "SubPartitionPruningResult"}, {T_Position, "Position"}, {T_MergeWhenClause, "MergeWhenClause"}, {T_IdentifySystemCmd, "IdentifySystemCmd"}, diff --git a/src/common/backend/nodes/outfuncs.cpp b/src/common/backend/nodes/outfuncs.cpp index 091fb917d..70dda9cca 100755 --- a/src/common/backend/nodes/outfuncs.cpp +++ b/src/common/backend/nodes/outfuncs.cpp @@ -628,6 +628,9 @@ static void _outPlanInfo(StringInfo str, Plan* node) WRITE_NODE_FIELD(righttree); WRITE_BOOL_FIELD(ispwj); WRITE_INT_FIELD(paramno); + if (t_thrd.proc->workingVersionNum >= SUBPARTITION_VERSION_NUM) { + WRITE_INT_FIELD(subparamno); + } WRITE_NODE_FIELD(initPlan); WRITE_NODE_FIELD(distributed_keys); WRITE_NODE_FIELD(exec_nodes); @@ -669,11 +672,23 @@ static void _outPruningResult(StringInfo str, PruningResult* node) WRITE_INT_FIELD(intervalOffset); WRITE_BITMAPSET_FIELD(intervalSelectedPartitions); WRITE_NODE_FIELD(ls_rangeSelectedPartitions); + if (t_thrd.proc->workingVersionNum >= SUBPARTITION_VERSION_NUM) { + WRITE_NODE_FIELD(ls_selectedSubPartitions); + } if (t_thrd.proc->workingVersionNum >= num) { WRITE_NODE_FIELD(expr); } } +static void _outSubPartitionPruningResult(StringInfo str, SubPartitionPruningResult* node) +{ + WRITE_NODE_TYPE("SUBPARTITIONPRUNINGRESULT"); + + WRITE_INT_FIELD(partSeq); + WRITE_BITMAPSET_FIELD(bm_selectedSubPartitions); + WRITE_NODE_FIELD(ls_selectedSubPartitions); +} + /* * print the basic stuff of all nodes that inherit from Scan */ @@ -760,14 +775,12 @@ static void _outModifyTable(StringInfo str, ModifyTable* node) WRITE_NODE_FIELD(updateTlist); WRITE_NODE_FIELD(exclRelTlist); WRITE_INT_FIELD(exclRelRTIndex); - WRITE_BOOL_FIELD(partKeyUpsert); } #else WRITE_ENUM_FIELD(upsertAction, UpsertAction); WRITE_NODE_FIELD(updateTlist); WRITE_NODE_FIELD(exclRelTlist); WRITE_INT_FIELD(exclRelRTIndex); - WRITE_BOOL_FIELD(partKeyUpsert); #endif } @@ -787,7 +800,6 @@ static void _outUpsertExpr(StringInfo str, const UpsertExpr* node) WRITE_NODE_FIELD(updateTlist); WRITE_NODE_FIELD(exclRelTlist); WRITE_INT_FIELD(exclRelIndex); - WRITE_BOOL_FIELD(partKeyUpsert); } static void _outMergeWhenClause(StringInfo str, const MergeWhenClause* node) { @@ -861,6 +873,35 @@ static void _outMergeAppend(StringInfo str, MergeAppend* node) } } +static void _outStartWithOp(StringInfo str, StartWithOp *node) +{ + WRITE_NODE_TYPE("STARTWITHOP"); + + _outPlanInfo(str, (Plan*)node); + + WRITE_NODE_FIELD(cteplan); + WRITE_NODE_FIELD(ruplan); + + WRITE_NODE_FIELD(keyEntryList); + WRITE_NODE_FIELD(colEntryList); + WRITE_NODE_FIELD(internalEntryList); + WRITE_NODE_FIELD(fullEntryList); + + WRITE_NODE_FIELD(swoptions); +} + +static void _outStartWithOptions(StringInfo str, StartWithOptions* node) +{ + WRITE_NODE_TYPE("STARTWITHOPTIONS"); + + WRITE_NODE_FIELD(siblings_orderby_clause); + WRITE_NODE_FIELD(prior_key_index); + WRITE_ENUM_FIELD(connect_by_type, StartWithConnectByType); + WRITE_NODE_FIELD(connect_by_level_quals); + WRITE_NODE_FIELD(connect_by_other_quals); + WRITE_BOOL_FIELD(nocycle); +} + static void _outRecursiveUnion(StringInfo str, RecursiveUnion* node) { int i; @@ -883,6 +924,9 @@ static void _outRecursiveUnion(StringInfo str, RecursiveUnion* node) WRITE_BOOL_FIELD(has_outer_stream); WRITE_BOOL_FIELD(is_used); WRITE_BOOL_FIELD(is_correlated); + if (t_thrd.proc->workingVersionNum >= SWCB_VERSION_NUM) { + WRITE_NODE_FIELD(internalEntryList); + } } static void _outBitmapAnd(StringInfo str, BitmapAnd* node) @@ -1319,6 +1363,9 @@ static void _outPartIteratorParam(StringInfo str, PartIteratorParam* node) WRITE_NODE_TYPE("PARTITERATORPARAM"); WRITE_INT_FIELD(paramno); + if (t_thrd.proc->workingVersionNum >= SUBPARTITION_VERSION_NUM) { + WRITE_INT_FIELD(subPartParamno); + } } static void _outPartIterator(StringInfo str, PartIterator* node) @@ -1374,6 +1421,10 @@ static void _outCteScan(StringInfo str, CteScan* node) WRITE_INT_FIELD(ctePlanId); WRITE_INT_FIELD(cteParam); + if (t_thrd.proc->workingVersionNum >= SWCB_VERSION_NUM) { + WRITE_NODE_FIELD(cteRef); + WRITE_NODE_FIELD(internalEntryList); + } } static void _outWorkTableScan(StringInfo str, WorkTableScan* node) @@ -1383,6 +1434,9 @@ static void _outWorkTableScan(StringInfo str, WorkTableScan* node) _outScanInfo(str, (Scan*)node); WRITE_INT_FIELD(wtParam); + if (t_thrd.proc->workingVersionNum >= SWCB_VERSION_NUM) { + WRITE_BOOL_FIELD(forStartWith); + } } template @@ -1953,11 +2007,17 @@ static void _outRangeVar(StringInfo str, RangeVar* node) WRITE_STRING_FIELD(schemaname); WRITE_STRING_FIELD(relname); WRITE_STRING_FIELD(partitionname); + if (t_thrd.proc->workingVersionNum >= SUBPARTITION_VERSION_NUM) { + WRITE_STRING_FIELD(subpartitionname); + } WRITE_ENUM_FIELD(inhOpt, InhOption); WRITE_CHAR_FIELD(relpersistence); WRITE_NODE_FIELD(alias); WRITE_LOCATION_FIELD(location); WRITE_BOOL_FIELD(ispartition); + if (t_thrd.proc->workingVersionNum >= SUBPARTITION_VERSION_NUM) { + WRITE_BOOL_FIELD(issubpartition); + } WRITE_NODE_FIELD(partitionKeyValuesList); if (t_thrd.proc->workingVersionNum >= 92063) { WRITE_BOOL_FIELD(isbucket); @@ -2078,8 +2138,17 @@ static void _outParam(StringInfo str, Param* node) WRITE_INT_FIELD(paramtypmod); WRITE_OID_FIELD(paramcollid); WRITE_LOCATION_FIELD(location); - WRITE_TYPEINFO_FIELD(paramtype); + + if (t_thrd.proc->workingVersionNum >= COMMENT_ROWTYPE_TABLEOF_VERSION_NUM) + { + WRITE_OID_FIELD(tableOfIndexType); + } + if (t_thrd.proc->workingVersionNum >= COMMENT_RECORD_PARAM_VERSION_NUM) + { + WRITE_OID_FIELD(recordVarTypOid); + } + } static void _outRownum(StringInfo str, const Rownum* node) @@ -2264,7 +2333,11 @@ static void _outFuncExpr(StringInfo str, FuncExpr* node) ereport(ERROR, (errcode(ERRCODE_UNEXPECTED_NULL_VALUE), errmsg("seqname of nextval() is not found"))); } - Assert(IsA(firstArg, Const)); + if (!IsA(firstArg, Const)) { + ereport(ERROR, (errcode(ERRCODE_UNRECOGNIZED_NODE_TYPE), + errmsg("argument of nextval() must be plain const value"))); + } + Oid seqId = DatumGetObjectId(firstArg->constvalue); getNameById(seqId, "SEQUENCE", &seqNameSpace, &seqName); @@ -2726,6 +2799,14 @@ static void _outTargetEntry(StringInfo str, TargetEntry* node) WRITE_BOOL_FIELD(resjunk); } +static void _outPseudoTargetEntry(StringInfo str, PseudoTargetEntry* node) +{ + WRITE_NODE_TYPE("PSEUDOTARGETENTRY"); + + WRITE_NODE_FIELD(tle); + WRITE_NODE_FIELD(srctle); +} + static void _outRangeTblRef(StringInfo str, RangeTblRef* node) { WRITE_NODE_TYPE("RANGETBLREF"); @@ -3101,6 +3182,9 @@ static void _outPlannerInfo(StringInfo str, PlannerInfo* node) WRITE_BITMAPSET_FIELD(curOuterRels); WRITE_NODE_FIELD(curOuterParams); WRITE_UINT_FIELD(curIteratorParamIndex); + if (t_thrd.proc->workingVersionNum >= SUBPARTITION_VERSION_NUM) { + WRITE_UINT_FIELD(curSubPartIteratorParamIndex); + } WRITE_BOOL_FIELD(isPartIteratorPlanning); WRITE_INT_FIELD(curItrs); WRITE_NODE_FIELD(subqueryRestrictInfo); @@ -3584,6 +3668,9 @@ static void _outSelectStmt(StringInfo str, SelectStmt* node) WRITE_NODE_FIELD(intoClause); WRITE_NODE_FIELD(targetList); WRITE_NODE_FIELD(fromClause); + if (t_thrd.proc->workingVersionNum >= SWCB_VERSION_NUM) { + WRITE_NODE_FIELD(startWithClause); + } WRITE_NODE_FIELD(whereClause); WRITE_NODE_FIELD(groupClause); WRITE_NODE_FIELD(havingClause); @@ -3695,6 +3782,10 @@ static void _outTypeName(StringInfo str, TypeName* node) WRITE_INT_FIELD(typemod); WRITE_NODE_FIELD(arrayBounds); WRITE_LOCATION_FIELD(location); + if (t_thrd.proc->workingVersionNum >= COMMENT_ROWTYPE_TABLEOF_VERSION_NUM) + { + WRITE_BOOL_FIELD(pct_rowtype); + } if (t_thrd.proc->workingVersionNum >= COMMENT_PCT_TYPE_VERSION_NUM) { WRITE_LOCATION_FIELD(end_location); @@ -3794,6 +3885,8 @@ static void _outPLDebug_variable(StringInfo str, PLDebug_variable* node) WRITE_STRING_FIELD(name); WRITE_STRING_FIELD(var_type); WRITE_STRING_FIELD(value); + WRITE_STRING_FIELD(pkgname); + WRITE_BOOL_FIELD(isconst); } static void _outPLDebug_breakPoint(StringInfo str, PLDebug_breakPoint* node) @@ -3803,6 +3896,7 @@ static void _outPLDebug_breakPoint(StringInfo str, PLDebug_breakPoint* node) WRITE_OID_FIELD(funcoid); WRITE_INT_FIELD(lineno); WRITE_STRING_FIELD(query); + WRITE_BOOL_FIELD(active); } static void _outPLDebug_frame(StringInfo str, PLDebug_frame* node) @@ -3812,6 +3906,7 @@ static void _outPLDebug_frame(StringInfo str, PLDebug_frame* node) WRITE_STRING_FIELD(funcname); WRITE_INT_FIELD(lineno); WRITE_STRING_FIELD(query); + WRITE_INT_FIELD(funcoid); } /* @@ -4284,6 +4379,22 @@ static void _outWithClause(StringInfo str, WithClause* node) WRITE_NODE_FIELD(ctes); WRITE_BOOL_FIELD(recursive); WRITE_LOCATION_FIELD(location); + if (t_thrd.proc->workingVersionNum >= SWCB_VERSION_NUM) { + WRITE_NODE_FIELD(sw_clause); + } +} + +static void _outStartWithClause(StringInfo str, StartWithClause* node) +{ + WRITE_NODE_TYPE("STARTWITHCLAUSE"); + + WRITE_NODE_FIELD(startWithExpr); + WRITE_NODE_FIELD(connectByExpr); + WRITE_NODE_FIELD(siblingsOrderBy); + + WRITE_BOOL_FIELD(priorDirection); + WRITE_BOOL_FIELD(nocycle); + WRITE_BOOL_FIELD(opt); } static void _outCommonTableExpr(StringInfo str, CommonTableExpr* node) @@ -4292,6 +4403,9 @@ static void _outCommonTableExpr(StringInfo str, CommonTableExpr* node) WRITE_STRING_FIELD(ctename); WRITE_NODE_FIELD(aliascolnames); + if (t_thrd.proc->workingVersionNum >= MATERIALIZED_CTE_NUM) { + WRITE_ENUM_FIELD(ctematerialized, CTEMaterialize); + } WRITE_NODE_FIELD(ctequery); WRITE_LOCATION_FIELD(location); WRITE_BOOL_FIELD(cterecursive); @@ -4302,6 +4416,30 @@ static void _outCommonTableExpr(StringInfo str, CommonTableExpr* node) WRITE_NODE_FIELD(ctecolcollations); WRITE_TYPEINFO_LIST(ctecoltypes); /* Not write locator_type in accordance with old version. */ + if (t_thrd.proc->workingVersionNum >= MATERIALIZED_CTE_NUM) { + WRITE_BOOL_FIELD(self_reference); + } + if (t_thrd.proc->workingVersionNum >= SWCB_VERSION_NUM) { + WRITE_NODE_FIELD(swoptions); + } + if (t_thrd.proc->workingVersionNum >= DEFAULT_MAT_CTE_NUM) { + WRITE_BOOL_FIELD(referenced_by_subquery); + } +} + +static void _outStartWithTargetRelInfo(StringInfo str, StartWithTargetRelInfo* node) +{ + WRITE_NODE_TYPE("STARTWITHTARGETRELINFO"); + + WRITE_STRING_FIELD(relname); + WRITE_STRING_FIELD(aliasname); + WRITE_STRING_FIELD(ctename); + WRITE_NODE_FIELD(columns); + WRITE_NODE_FIELD(tblstmt); + + WRITE_ENUM_FIELD(rtekind, RTEKind); + WRITE_NODE_FIELD(rte); + WRITE_NODE_FIELD(rtr); } static void _outSetOperationStmt(StringInfo str, SetOperationStmt* node) @@ -4333,6 +4471,10 @@ static void _outRteRelation(StringInfo str, const RangeTblEntry *node) } WRITE_OID_FIELD(partitionOid); WRITE_BOOL_FIELD(isContainPartition); + if (t_thrd.proc->workingVersionNum >= SUBPARTITION_VERSION_NUM) { + WRITE_OID_FIELD(subpartitionOid); + WRITE_BOOL_FIELD(isContainSubPartition); + } if (t_thrd.proc->workingVersionNum >= SYNONYM_VERSION_NUM) { WRITE_OID_FIELD(refSynOid); } @@ -4415,10 +4557,20 @@ static void _outRangeTblEntry(StringInfo str, RangeTblEntry* node) WRITE_STRING_FIELD(ctename); WRITE_UINT_FIELD(ctelevelsup); WRITE_BOOL_FIELD(self_reference); + if (t_thrd.proc->workingVersionNum >= MATERIALIZED_CTE_NUM) { + WRITE_BOOL_FIELD(cterecursive); + } WRITE_NODE_FIELD(ctecoltypes); WRITE_NODE_FIELD(ctecoltypmods); WRITE_NODE_FIELD(ctecolcollations); + if (t_thrd.proc->workingVersionNum >= SWCB_VERSION_NUM) { + WRITE_BOOL_FIELD(swConverted); + WRITE_NODE_FIELD(origin_index); + WRITE_BOOL_FIELD(swAborted); + WRITE_BOOL_FIELD(swSubExist); + } + WRITE_TYPEINFO_LIST(ctecoltypes); break; #ifdef PGXC @@ -4602,6 +4754,12 @@ static void _outColumnRef(StringInfo str, ColumnRef* node) WRITE_NODE_TYPE("COLUMNREF"); WRITE_NODE_FIELD(fields); + if (t_thrd.proc->workingVersionNum >= SWCB_VERSION_NUM) { + WRITE_BOOL_FIELD(prior); + } + if (t_thrd.proc->workingVersionNum >= FUNC_PARAM_COL_VERSION_NUM) { + WRITE_INT_FIELD(indnum); + } WRITE_LOCATION_FIELD(location); } @@ -5419,6 +5577,12 @@ static void _outNode(StringInfo str, const void* obj) case T_RecursiveUnion: _outRecursiveUnion(str, (RecursiveUnion*)obj); break; + case T_StartWithOptions: + _outStartWithOptions(str, (StartWithOptions*)obj); + break; + case T_StartWithOp: + _outStartWithOp(str, (StartWithOp*)obj); + break; case T_BitmapAnd: _outBitmapAnd(str, (BitmapAnd*)obj); break; @@ -5700,6 +5864,9 @@ static void _outNode(StringInfo str, const void* obj) case T_TargetEntry: _outTargetEntry(str, (TargetEntry*)obj); break; + case T_PseudoTargetEntry: + _outPseudoTargetEntry(str, (PseudoTargetEntry*)obj); + break; case T_RangeTblRef: _outRangeTblRef(str, (RangeTblRef*)obj); break; @@ -5917,12 +6084,18 @@ static void _outNode(StringInfo str, const void* obj) case T_WithClause: _outWithClause(str, (WithClause*)obj); break; + case T_StartWithClause: + _outStartWithClause(str, (StartWithClause*)obj); + break; case T_UpsertClause: _outUpsertClause(str, (UpsertClause*)obj); break; case T_CommonTableExpr: _outCommonTableExpr(str, (CommonTableExpr*)obj); break; + case T_StartWithTargetRelInfo: + _outStartWithTargetRelInfo(str, (StartWithTargetRelInfo*) obj); + break; case T_SetOperationStmt: _outSetOperationStmt(str, (SetOperationStmt*)obj); break; @@ -6015,7 +6188,10 @@ static void _outNode(StringInfo str, const void* obj) #endif case T_PruningResult: - _outPruningResult(str, (PruningResult*)obj); + _outPruningResult(str, (PruningResult *)obj); + break; + case T_SubPartitionPruningResult: + _outSubPartitionPruningResult(str, (SubPartitionPruningResult *)obj); break; case T_DistFdwDataNodeTask: _outDistFdwDataNodeTask(str, (DistFdwDataNodeTask*)obj); diff --git a/src/common/backend/nodes/params.cpp b/src/common/backend/nodes/params.cpp index 7f28bb5e9..fdfb6e7f9 100644 --- a/src/common/backend/nodes/params.cpp +++ b/src/common/backend/nodes/params.cpp @@ -70,6 +70,9 @@ ParamListInfo copyParamList(ParamListInfo from) } get_typlenbyval(nprm->ptype, &typLen, &typByVal); nprm->value = datumCopy(nprm->value, typByVal, typLen); + nprm->tableOfIndexType = oprm->tableOfIndexType; + nprm->tableOfIndex = copyTableOfIndex(oprm->tableOfIndex); + nprm->isnestedtable = oprm->isnestedtable; } return retval; diff --git a/src/common/backend/nodes/readfuncs.cpp b/src/common/backend/nodes/readfuncs.cpp index ac6d70fb7..3e067765b 100755 --- a/src/common/backend/nodes/readfuncs.cpp +++ b/src/common/backend/nodes/readfuncs.cpp @@ -1518,6 +1518,8 @@ static PLDebug_variable* _readPLDebug_variable(void) READ_STRING_FIELD(name); READ_STRING_FIELD(var_type); READ_STRING_FIELD(value); + READ_STRING_FIELD(pkgname); + READ_BOOL_FIELD(isconst); READ_DONE(); } @@ -1529,6 +1531,7 @@ static PLDebug_breakPoint* _readPLDebug_breakPoint(void) READ_OID_FIELD(funcoid); READ_INT_FIELD(lineno); READ_STRING_FIELD(query); + READ_BOOL_FIELD(active); READ_DONE(); } @@ -1540,6 +1543,7 @@ static PLDebug_frame* _readPLDebug_frame(void) READ_STRING_FIELD(funcname); READ_INT_FIELD(lineno); READ_STRING_FIELD(query); + READ_INT_FIELD(funcoid); READ_DONE(); } @@ -1624,6 +1628,9 @@ static CommonTableExpr* _readCommonTableExpr(void) READ_STRING_FIELD(ctename); READ_NODE_FIELD(aliascolnames); + IF_EXIST(ctematerialized) { + READ_ENUM_FIELD(ctematerialized, CTEMaterialize); + } READ_NODE_FIELD(ctequery); READ_LOCATION_FIELD(location); READ_BOOL_FIELD(cterecursive); @@ -1639,6 +1646,34 @@ static CommonTableExpr* _readCommonTableExpr(void) * in SS_process_ctes later. */ local_node->locator_type = LOCATOR_TYPE_NONE; + IF_EXIST(self_reference) { + READ_BOOL_FIELD(self_reference); + } + IF_EXIST(swoptions) { + READ_NODE_FIELD(swoptions); + } + IF_EXIST(referenced_by_subquery) { + READ_BOOL_FIELD(referenced_by_subquery); + } + READ_DONE(); +} + +/* + * _readStartWithTargetRelInfo + */ +static StartWithTargetRelInfo* _readStartWithTargetRelInfo(void) +{ + READ_LOCALS(StartWithTargetRelInfo); + + READ_STRING_FIELD(relname); + READ_STRING_FIELD(aliasname); + READ_STRING_FIELD(ctename); + READ_NODE_FIELD(columns); + READ_NODE_FIELD(tblstmt); + + READ_ENUM_FIELD(rtekind, RTEKind); + READ_NODE_FIELD(rte); + READ_NODE_FIELD(rtr); READ_DONE(); } @@ -1687,11 +1722,17 @@ static RangeVar* _readRangeVar(void) READ_STRING_FIELD(schemaname); READ_STRING_FIELD(relname); READ_STRING_FIELD(partitionname); + IF_EXIST(subpartitionname) { + READ_STRING_FIELD(subpartitionname); + } READ_ENUM_FIELD(inhOpt, InhOption); READ_CHAR_FIELD(relpersistence); READ_NODE_FIELD(alias); READ_LOCATION_FIELD(location); READ_BOOL_FIELD(ispartition); + IF_EXIST(issubpartition) { + READ_BOOL_FIELD(issubpartition); + } READ_NODE_FIELD(partitionKeyValuesList); IF_EXIST(isbucket){ @@ -1845,7 +1886,14 @@ static Param* _readParam(void) READ_LOCATION_FIELD(location); READ_TYPEINFO_FIELD(paramtype); - + IF_EXIST(tableOfIndexType) + { + READ_OID_FIELD(tableOfIndexType); + } + IF_EXIST(recordVarTypOid) + { + READ_OID_FIELD(recordVarTypOid); + } READ_DONE(); } @@ -2655,6 +2703,19 @@ static TargetEntry* _readTargetEntry(void) READ_DONE(); } +/* + * _readPseudoTargetEntry + */ +static PseudoTargetEntry* _readPseudoTargetEntry(void) +{ + READ_LOCALS(PseudoTargetEntry); + + READ_NODE_FIELD(tle); + READ_NODE_FIELD(srctle); + + READ_DONE(); +} + /* * _readRangeTblRef */ @@ -2760,6 +2821,12 @@ static RangeTblEntry* _readRangeTblEntry(void) READ_OID_FIELD(partitionOid); READ_BOOL_FIELD(isContainPartition); + IF_EXIST(subpartitionOid) { + READ_OID_FIELD(subpartitionOid); + } + IF_EXIST(isContainSubPartition) { + READ_BOOL_FIELD(isContainSubPartition); + } IF_EXIST(refSynOid) { @@ -2877,10 +2944,26 @@ static RangeTblEntry* _readRangeTblEntry(void) READ_STRING_FIELD(ctename); READ_UINT_FIELD(ctelevelsup); READ_BOOL_FIELD(self_reference); + IF_EXIST(cterecursive) { + READ_BOOL_FIELD(cterecursive); + } READ_NODE_FIELD(ctecoltypes); READ_NODE_FIELD(ctecoltypmods); READ_NODE_FIELD(ctecolcollations); + IF_EXIST(swConverted) { + READ_BOOL_FIELD(swConverted); + } + IF_EXIST(origin_index) { + READ_NODE_FIELD(origin_index); + } + IF_EXIST(swAborted) { + READ_BOOL_FIELD(swAborted); + } + IF_EXIST(swSubExist) { + READ_BOOL_FIELD(swSubExist); + } + READ_TYPEINFO_LIST(ctecoltypes); break; #ifdef PGXC @@ -2987,6 +3070,9 @@ static Plan* _readPlan(Plan* local_node) READ_NODE_FIELD(righttree); READ_BOOL_FIELD(ispwj); READ_INT_FIELD(paramno); + IF_EXIST(subparamno) { + READ_INT_FIELD(subparamno); + } READ_NODE_FIELD(initPlan); READ_NODE_FIELD(distributed_keys); READ_NODE_FIELD(exec_nodes); @@ -3192,12 +3278,29 @@ static PruningResult* _readPruningResult(PruningResult* local_node) READ_INT_FIELD(intervalOffset); READ_BITMAPSET_FIELD(intervalSelectedPartitions); READ_NODE_FIELD(ls_rangeSelectedPartitions); + IF_EXIST(ls_selectedSubPartitions) { + READ_NODE_FIELD(ls_selectedSubPartitions); + } if (t_thrd.proc->workingVersionNum >= num) { READ_NODE_FIELD(expr); } READ_DONE(); } + +static SubPartitionPruningResult* _readSubPartitionPruningResult(SubPartitionPruningResult* local_node) +{ + READ_LOCALS_NULL(SubPartitionPruningResult); + READ_TEMP_LOCALS(); + + /* skip boundary info */ + READ_INT_FIELD(partSeq); + READ_BITMAPSET_FIELD(bm_selectedSubPartitions); + READ_NODE_FIELD(ls_selectedSubPartitions); + + READ_DONE(); +} + static BucketInfo* _readBucketInfo(BucketInfo* local_node) { READ_LOCALS_NULL(BucketInfo); @@ -3260,6 +3363,9 @@ static PartIteratorParam* _readPartIteratorParam(PartIteratorParam* local_node) READ_TEMP_LOCALS(); READ_INT_FIELD(paramno); + IF_EXIST(subPartParamno) { + READ_INT_FIELD(subPartParamno); + } READ_DONE(); } @@ -3274,6 +3380,13 @@ static CteScan* _readCteScan(CteScan* local_node) READ_INT_FIELD(ctePlanId); READ_INT_FIELD(cteParam); + IF_EXIST(cteRef) { + READ_NODE_FIELD(cteRef); + } + IF_EXIST(internalEntryList) { + READ_NODE_FIELD(internalEntryList); + } + READ_DONE(); } @@ -3831,7 +3944,7 @@ static ModifyTable* _readModifyTable(ModifyTable* local_node) IF_EXIST(exclRelRTIndex) { READ_INT_FIELD(exclRelRTIndex); } - READ_BOOL_FIELD(partKeyUpsert); + READ_DONE(); } @@ -3843,7 +3956,7 @@ static UpsertExpr* _readUpsertExpr(void) READ_NODE_FIELD(updateTlist); READ_NODE_FIELD(exclRelTlist); READ_INT_FIELD(exclRelIndex); - READ_BOOL_FIELD(partKeyUpsert); + READ_DONE(); } @@ -4298,6 +4411,47 @@ static RecursiveUnion* _readRecursiveUnion(RecursiveUnion* local_node) READ_BOOL_FIELD(has_outer_stream); READ_BOOL_FIELD(is_used); READ_BOOL_FIELD(is_correlated); + IF_EXIST(internalEntryList) { + READ_NODE_FIELD(internalEntryList); + } + + READ_DONE(); +} + +static StartWithOp* _readStartWithOp(StartWithOp* local_node) +{ + READ_LOCALS_NULL(StartWithOp); + + READ_TEMP_LOCALS(); + + // Read Plan + _readPlan(&local_node->plan); + + READ_NODE_FIELD(cteplan); + READ_NODE_FIELD(ruplan); + + READ_NODE_FIELD(keyEntryList); + READ_NODE_FIELD(colEntryList); + READ_NODE_FIELD(internalEntryList); + READ_NODE_FIELD(fullEntryList); + + READ_NODE_FIELD(swoptions); + + READ_DONE(); +} + +static StartWithOptions* _readStartWithOptions(StartWithOptions* local_node) +{ + READ_LOCALS_NULL(StartWithOptions); + + READ_TEMP_LOCALS(); + + READ_NODE_FIELD(siblings_orderby_clause); + READ_NODE_FIELD(prior_key_index); + READ_ENUM_FIELD(connect_by_type, StartWithConnectByType); + READ_NODE_FIELD(connect_by_level_quals); + READ_NODE_FIELD(connect_by_other_quals); + READ_BOOL_FIELD(nocycle); READ_DONE(); } @@ -4311,6 +4465,9 @@ static WorkTableScan* _readWorkTableScan(WorkTableScan* local_node) _readScan(&local_node->scan); READ_INT_FIELD(wtParam); + IF_EXIST(forStartWith) { + READ_BOOL_FIELD(forStartWith); + } READ_DONE(); } @@ -5054,6 +5211,12 @@ static ColumnRef* _readColumnRef() READ_LOCALS(ColumnRef); READ_NODE_FIELD(fields); + IF_EXIST(prior) { + READ_BOOL_FIELD(prior); + } + IF_EXIST(indnum) { + READ_INT_FIELD(indnum); + } READ_LOCATION_FIELD(location); READ_DONE(); @@ -5076,6 +5239,10 @@ static TypeName* _readTypeName() READ_INT_FIELD(typemod); READ_NODE_FIELD(arrayBounds); READ_LOCATION_FIELD(location); + IF_EXIST(pct_rowtype) + { + READ_BOOL_FIELD(pct_rowtype); + } IF_EXIST(end_location) { READ_LOCATION_FIELD(end_location); @@ -5405,10 +5572,16 @@ static SplitPartitionState* _readSplitPartitionState() { READ_LOCALS(SplitPartitionState); + IF_EXIST(splitType) { + READ_ENUM_FIELD(splitType, SplitPartitionType); + } READ_STRING_FIELD(src_partition_name); READ_NODE_FIELD(partition_for_values); READ_NODE_FIELD(split_point); READ_NODE_FIELD(dest_partition_define_list); + IF_EXIST(newListSubPartitionBoundry) { + READ_NODE_FIELD(newListSubPartitionBoundry); + } READ_DONE(); } @@ -5503,6 +5676,8 @@ Node* parseNodeString(void) return_value = _readRowMarkClause(); } else if (MATCH("COMMONTABLEEXPR", 15)) { return_value = _readCommonTableExpr(); + } else if (MATCH("STARTWITHTARGETRELINFO", 22)) { + return_value = _readStartWithTargetRelInfo(); } else if (MATCH("SETOPERATIONSTMT", 16)) { return_value = _readSetOperationStmt(); } else if (MATCH("ALIAS", 5)) { @@ -5591,6 +5766,12 @@ Node* parseNodeString(void) return_value = _readCurrentOfExpr(); } else if (MATCH("TARGETENTRY", 11)) { return_value = _readTargetEntry(); + } else if (MATCH("PSEUDOTARGETENTRY", 17)) { + return_value = _readPseudoTargetEntry(); + } else if (MATCH("STARTWITHOPTIONS", 16)) { + return_value = _readStartWithOptions(NULL); + } else if (MATCH("STARTWITHOP", 11)) { + return_value = _readStartWithOp(NULL); } else if (MATCH("RANGETBLREF", 11)) { return_value = _readRangeTblRef(); } else if (MATCH("JOINEXPR", 8)) { @@ -5723,6 +5904,8 @@ Node* parseNodeString(void) return_value = _readCStoreIndexOr(NULL); } else if (MATCH("PRUNINGRESULT", 13)) { return_value = _readPruningResult(NULL); + } else if (MATCH("SUBPARTITIONPRUNINGRESULT", 25)) { + return_value = _readSubPartitionPruningResult(NULL); } else if (MATCH("PARTITERATOR", 12)) { return_value = _readPartIterator(NULL); } else if (MATCH("PARTITERATORPARAM", 17)) { diff --git a/src/common/backend/parser/CMakeLists.txt b/src/common/backend/parser/CMakeLists.txt index 41d29cc8a..cb6d8b063 100755 --- a/src/common/backend/parser/CMakeLists.txt +++ b/src/common/backend/parser/CMakeLists.txt @@ -49,6 +49,7 @@ set(TGT_parser_SRC ${CMAKE_CURRENT_SOURCE_DIR}/parse_node.cpp ${CMAKE_CURRENT_SOURCE_DIR}/parse_oper.cpp ${CMAKE_CURRENT_SOURCE_DIR}/parse_param.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/parse_startwith.cpp ${CMAKE_CURRENT_SOURCE_DIR}/parser.cpp ${CMAKE_CURRENT_SOURCE_DIR}/parse_relation.cpp ${CMAKE_CURRENT_SOURCE_DIR}/parse_target.cpp diff --git a/src/common/backend/parser/Makefile b/src/common/backend/parser/Makefile index 66ebe0300..6c0fb2f87 100644 --- a/src/common/backend/parser/Makefile +++ b/src/common/backend/parser/Makefile @@ -20,7 +20,7 @@ ifneq "$(MAKECMDGOALS)" "clean" endif endif OBJS= analyze.o gram.o hint_gram.o keywords.o kwlookup.o parser.o \ - parse_agg.o parse_clause.o parse_coerce.o parse_collate.o parse_cte.o \ + parse_agg.o parse_clause.o parse_startwith.o parse_coerce.o parse_collate.o parse_cte.o \ parse_expr.o parse_func.o parse_hint.o parse_merge.o parse_node.o parse_oper.o parse_param.o \ parse_relation.o parse_target.o parse_type.o parse_utilcmd.o scansup.o parse_compatibility.o diff --git a/src/common/backend/parser/analyze.cpp b/src/common/backend/parser/analyze.cpp index 9c2bd69e0..383489153 100644 --- a/src/common/backend/parser/analyze.cpp +++ b/src/common/backend/parser/analyze.cpp @@ -16,6 +16,7 @@ * * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * src/common/backend/parser/analyze.cpp * @@ -56,6 +57,7 @@ #include "parser/parse_relation.h" #include "parser/parse_target.h" #include "parser/parse_type.h" +#include "parser/parse_expr.h" #include "parser/parsetree.h" #include "rewrite/rewriteManip.h" #include "rewrite/rewriteRlsPolicy.h" @@ -1961,7 +1963,6 @@ static UpsertExpr* transformUpsertClause(ParseState* pstate, UpsertClause* upser List* exclRelTlist = NIL; UpsertAction action = UPSERT_NOTHING; Relation targetrel = pstate->p_target_relation; - bool partKeyUpsert = false; #ifdef ENABLE_MULTIPLE_NODES if (targetrel->rd_rel->relhastriggers) { @@ -1982,6 +1983,12 @@ static UpsertExpr* transformUpsertClause(ParseState* pstate, UpsertClause* upser "UPDATE."))); } + if (RelationIsSubPartitioned(targetrel)) { + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("Subpartition is not supported for INSERT ON DUPLICATE KEY UPDATE."))); + } + if (upsertClause->targetList != NIL) { pstate->p_is_insert = false; action = UPSERT_UPDATE; @@ -2000,6 +2007,7 @@ static UpsertExpr* transformUpsertClause(ParseState* pstate, UpsertClause* upser * adds have to be reset. markVarForSelectPriv() will add the exact * required permissions back. */ + exclRelTlist = BuildExcludedTargetlist(targetrel, exclRelIndex); exclRte->requiredPerms = 0; exclRte->selectedCols = NULL; @@ -2013,7 +2021,6 @@ static UpsertExpr* transformUpsertClause(ParseState* pstate, UpsertClause* upser updateTlist = transformTargetList(pstate, upsertClause->targetList); updateTlist = transformUpdateTargetList(pstate, updateTlist, upsertClause->targetList, relation); - /* We can't update primary or unique key in upsert, check it here */ #ifdef ENABLE_MULTIPLE_NODES if (IS_PGXC_COORDINATOR && !u_sess->attr.attr_sql.enable_upsert_to_merge) { @@ -2022,7 +2029,6 @@ static UpsertExpr* transformUpsertClause(ParseState* pstate, UpsertClause* upser #else checkUpsertTargetlist(pstate->p_target_relation, updateTlist); #endif - partKeyUpsert = RELATION_IS_PARTITIONED(targetrel) && targetListHasPartitionKey(updateTlist, targetrel->rd_id); } /* Finally, build DUPLICATE KEY UPDATE [NOTHING | ... ] expression */ @@ -2031,7 +2037,6 @@ static UpsertExpr* transformUpsertClause(ParseState* pstate, UpsertClause* upser result->exclRelIndex = exclRelIndex; result->exclRelTlist = exclRelTlist; result->upsertAction = action; - result->partKeyUpsert = partKeyUpsert; return result; } @@ -2153,6 +2158,30 @@ static int count_rowexpr_columns(ParseState* pstate, Node* expr) return -1; } +static char* fetchSelectStmtFromCTAS(char* source_text) +{ + char* select_pos = strcasestr(source_text, "SELECT"); + return select_pos; +} + +static bool shouldTransformStartWithStmt(ParseState* pstate, SelectStmt* stmt, Query* selectQuery) +{ + /* + * Only applicable to START WITH CONNECT BY clauses. + */ + if (stmt->startWithClause == NULL || pstate->p_sourcetext == NULL) { + return false; + } + + /* + * Back up the current select statement to be restored after query re-writing + * for cases of START WITH CONNNECT BY under CREATE TABLE AS. + */ + selectQuery->sql_statement = fetchSelectStmtFromCTAS((char*)pstate->p_sourcetext); + + return true; +} + /* * transformSelectStmt - * transforms a Select Statement @@ -2168,6 +2197,12 @@ static Query* transformSelectStmt(ParseState* pstate, SelectStmt* stmt, bool isF qry->commandType = CMD_SELECT; + if (stmt->startWithClause != NULL) { + pstate->p_addStartInfo = true; + pstate->p_sw_selectstmt = stmt; + pstate->origin_with = (WithClause *)copyObject(stmt->withClause); + } + /* process the WITH clause independently of all else */ if (stmt->withClause) { qry->hasRecursive = stmt->withClause->recursive; @@ -2192,6 +2227,11 @@ static Query* transformSelectStmt(ParseState* pstate, SelectStmt* stmt, bool isF /* process the FROM clause */ transformFromClause(pstate, stmt->fromClause, isFirstNode, isCreateView); + /* transform START WITH...CONNECT BY clause */ + if (shouldTransformStartWithStmt(pstate, stmt, qry)) { + transformStartWith(pstate, stmt, qry); + } + /* transform targetlist */ qry->targetList = transformTargetList(pstate, stmt->targetList); @@ -2309,6 +2349,14 @@ static Query* transformSelectStmt(ParseState* pstate, SelectStmt* stmt, bool isF parseCheckAggregates(pstate, qry); } + /* + * If SelectStmt has been rewrite by startwith/connectby, it should + * return as With-Recursive for upper level. So we need to fix fromClause. + */ + if (pstate->p_addStartInfo) { + AdaptSWSelectStmt(pstate, stmt); + } + return qry; } diff --git a/src/common/backend/parser/gram.y b/src/common/backend/parser/gram.y index f26a6d1cb..cb37e00fc 100644 --- a/src/common/backend/parser/gram.y +++ b/src/common/backend/parser/gram.y @@ -66,6 +66,7 @@ #include "miscadmin.h" #include "nodes/makefuncs.h" #include "nodes/nodeFuncs.h" +#include "optimizer/planner.h" #include "parser/gramparse.h" #include "parser/parse_type.h" #include "parser/parse_hint.h" @@ -79,16 +80,18 @@ #include "utils/builtins.h" #include "utils/date.h" #include "utils/datetime.h" +#include "utils/rel.h" #include "utils/numeric.h" #include "utils/syscache.h" #include "utils/xml.h" +#include "utils/pl_package.h" #include "catalog/pg_streaming_fn.h" #pragma GCC diagnostic ignored "-Wsign-compare" #pragma GCC diagnostic ignored "-Wunused-variable" #define MAXFNAMELEN 64 - +#define isquote(C) ((C) == '\"') #ifndef ENABLE_MULTIPLE_NODES DB_CompatibilityAttr g_dbCompatArray[] = { {DB_CMPT_A, "A"}, @@ -181,7 +184,7 @@ static void doNegateFloat(Value *v); static Node *makeAArrayExpr(List *elements, int location); static Node *makeXmlExpr(XmlExprOp op, char *name, List *named_args, List *args, int location); -static Node *makeCallFuncStmt(List* funcname, List* parameters); +static Node *makeCallFuncStmt(List* funcname, List* parameters, bool is_call = false); static List *mergeTableFuncParameters(List *func_args, List *columns); static TypeName *TableFuncTypeName(List *columns); static RangeVar *makeRangeVarFromAnyName(List *names, int position, core_yyscan_t yyscanner); @@ -194,7 +197,7 @@ static void SplitColQualList(List *qualList, static void processCASbits(int cas_bits, int location, const char *constrType, bool *deferrable, bool *initdeferred, bool *not_valid, bool *no_inherit, core_yyscan_t yyscanner); -static void getPkgName(char* pkgname); +static char* GetPkgName(char* pkgName); static Expr *makeNodeDecodeCondtion(Expr* firstCond,Expr* secondCond); static List *make_action_func(List *arguments); static List *get_func_args(char *sid); @@ -224,19 +227,31 @@ static void check_outarg_info(const bool *have_assigend, bool IsValidIdentClientKey(const char *input); bool IsValidIdent(char *input); bool IsValidGroupname(const char *input); -static bool checkNlssortArgs(const char *argname); static void ParseUpdateMultiSet(List *set_target_list, SelectStmt *stmt, core_yyscan_t yyscanner); static char *GetTargetFuncArgTypeName(char *typeString, TypeName* t); static char *FormatFuncArgType(core_yyscan_t yyscanner, char *argsString, List* parameters); static char *ParseFunctionArgSrc(core_yyscan_t yyscanner); static void parameter_check_execute_direct(const char* query); static Node *make_node_from_scanbuf(int start_pos, int end_pos, core_yyscan_t yyscanner); - +static int64 SequenceStrGetInt64(const char *str); +static int GetLoadType(int load_type_f, int load_type_s); +static Node *MakeSqlLoadNode(char *colname); +static bool IsConnectByRootIdent(Node* node); +static void ValidateTripleTuple(Node* node, core_yyscan_t yyscanner, int location, char* token); +static Node* MakeConnectByRootNode(ColumnRef* cr, int location); +static char* MakeConnectByRootColName(char* tabname, char* colname); +static void FilterStartWithUseCases(SelectStmt* stmt, List* locking_clause, core_yyscan_t yyscanner, int location); +#ifndef ENABLE_MULTIPLE_NODES +static bool CheckWhetherInColList(char *colname, List *col_list); +#endif +static int GetFillerColIndex(char *filler_col_name, List *col_list); +static void RemoveFillerCol(List *filler_list, List *col_list); +static int errstate; %} -%pure-parser +%define api.pure %expect 0 -%name-prefix="base_yy" +%name-prefix "base_yy" %locations %parse-param {core_yyscan_t yyscanner} @@ -252,6 +267,7 @@ static Node *make_node_from_scanbuf(int start_pos, int end_pos, core_yyscan_t yy char chr; bool boolean; + int64 ival64; JoinType jtype; DropBehavior dbehavior; OnCommitAction oncommit; @@ -287,7 +303,7 @@ static Node *make_node_from_scanbuf(int start_pos, int end_pos, core_yyscan_t yy MergeWhenClause *mergewhen; UpsertClause *upsert; EncryptionType algtype; - LockClauseStrength lockstrength; + LockClauseStrength lockstrength; } %type stmt schema_stmt @@ -379,7 +395,7 @@ static Node *make_node_from_scanbuf(int start_pos, int end_pos, core_yyscan_t yy %type vacuum_option_list vacuum_option_elem opt_verify_options %type opt_check opt_force opt_or_replace opt_grant_grant_option opt_grant_admin_option - opt_nowait opt_if_exists opt_with_data + opt_nowait opt_if_exists opt_with_data opt_large_seq %type OptRoleList AlterOptRoleList %type CreateOptRoleElem AlterOptRoleElem @@ -461,7 +477,6 @@ static Node *make_node_from_scanbuf(int start_pos, int end_pos, core_yyscan_t yy create_generic_options alter_generic_options relation_expr_list dostmt_opt_list merge_values_clause publication_name_list - invoker_rights %type group_by_list %type group_by_item empty_grouping_set rollup_clause cube_clause @@ -480,7 +495,7 @@ static Node *make_node_from_scanbuf(int start_pos, int end_pos, core_yyscan_t yy %type arg_class %type func_return func_type -%type opt_trusted opt_restart_seqs opt_purge +%type opt_trusted opt_restart_seqs opt_purge invoker_rights %type OptTemp OptKind %type OnCommitOption @@ -502,9 +517,10 @@ static Node *make_node_from_scanbuf(int start_pos, int end_pos, core_yyscan_t yy %type opt_unique opt_concurrently opt_verbose opt_full opt_deltamerge opt_compact opt_hdfsdirectory opt_verify %type opt_freeze opt_default opt_recheck opt_cascade %type opt_binary opt_oids copy_delimiter opt_noescaping -%type OptCopyLogError OptCopyRejectLimit +%type OptCopyLogError OptCopyRejectLimit opt_load %type opt_processed +%type opt_useeof %type DirectStmt CleanConnDbName CleanConnUserName /* PGXC_END */ @@ -534,9 +550,9 @@ static Node *make_node_from_scanbuf(int start_pos, int end_pos, core_yyscan_t yy ForeignTableElement %type columnDef columnOptions %type def_elem tsconf_def_elem reloption_elem tblspc_option_elem old_aggr_elem cfoption_elem -%type def_arg columnElem where_clause where_or_current_clause - a_expr b_expr c_expr c_expr_noparen AexprConst indirection_el - columnref in_expr having_clause func_table array_expr +%type def_arg columnElem where_clause where_or_current_clause start_with_expr connect_by_expr + a_expr b_expr c_expr c_expr_noparen AexprConst indirection_el siblings_clause + columnref in_expr start_with_clause having_clause func_table array_expr ExclusionWhereClause %type ExclusionConstraintList ExclusionConstraintElem %type func_arg_list @@ -544,7 +560,7 @@ static Node *make_node_from_scanbuf(int start_pos, int end_pos, core_yyscan_t yy %type row explicit_row implicit_row type_list array_expr_list %type case_expr case_arg when_clause case_default %type when_clause_list -%type sub_type +%type sub_type opt_materialized %type ctext_expr %type NumericOnly %type NumericOnly_list @@ -555,7 +571,7 @@ static Node *make_node_from_scanbuf(int start_pos, int end_pos, core_yyscan_t yy %type joined_table %type relation_expr %type relation_expr_opt_alias -%type target_el single_set_clause set_target insert_column_item +%type target_el single_set_clause set_target insert_column_item connect_by_root_expr %type tablesample_clause timecapsule_clause opt_timecapsule_clause opt_repeatable_clause %type generic_option_name @@ -624,7 +640,7 @@ static Node *make_node_from_scanbuf(int start_pos, int end_pos, core_yyscan_t yy %type with_clause opt_with_clause %type cte_list -%type within_group_clause pkg_subprogram pkg_body_subprogram +%type within_group_clause pkg_body_subprogram %type window_clause window_definition_list opt_partition_clause %type window_definition over_clause window_specification opt_frame_clause frame_extent frame_bound @@ -634,16 +650,18 @@ static Node *make_node_from_scanbuf(int start_pos, int end_pos, core_yyscan_t yy %type KVType %type ColCmprsMode %type subprogram_body -%type as_is +%type as_is as_empty %type column_item opt_table_partitioning_clause opt_partition_index_def range_partition_index_item range_partition_index_list range_partitioning_clause value_partitioning_clause opt_interval_partition_clause interval_expr maxValueItem list_partitioning_clause hash_partitioning_clause range_start_end_item range_less_than_item list_partition_item hash_partition_item + subpartitioning_clause range_subpartitioning_clause hash_subpartitioning_clause + list_subpartitioning_clause subpartition_item %type range_partition_definition_list list_partition_definition_list hash_partition_definition_list maxValueList column_item_list tablespaceList opt_interval_tablespaceList - split_dest_partition_define_list - range_start_end_list range_less_than_list opt_range_every_list + split_dest_partition_define_list split_dest_listsubpartition_define_list split_dest_rangesubpartition_define_list + range_start_end_list range_less_than_list opt_range_every_list subpartition_definition_list %type partition_name %type opt_row_movement_clause @@ -721,6 +739,18 @@ static Node *make_node_from_scanbuf(int start_pos, int end_pos, core_yyscan_t yy %type alter_policy_condition %type masking_policy_condition_value +/* LOAD DATA */ +%type load_options_list load_table_options_list opt_load_data_options_list load_when_option_list +%type load_type_set load_oper_table_type +%type load_table_options_item opt_load_data_options_item load_when_option load_options_item +%type load_quote_str load_col_nullif_spec + +%type load_column_expr_item load_col_sequence load_col_scalar_spec load_col_position_spec load_col_sql_str +%type copy_column_sequence_item copy_column_filler_item copy_column_constant_item load_when_option_item +%type load_column_expr_list copy_column_sequence_list copy_column_filler_list copy_column_constant_list +%type load_col_data_type +%type load_col_sequence_item_sart column_sequence_item_step column_sequence_item_sart + /* * Non-keyword token types. These are hard-wired into the "flex" lexer. * They must be listed first so that their numeric codes do not depend on @@ -744,17 +774,17 @@ static Node *make_node_from_scanbuf(int start_pos, int end_pos, core_yyscan_t yy /* ordinary key words in alphabetical order */ /* PGXC - added DISTRIBUTE, DIRECT, COORDINATOR, CLEAN, NODE, BARRIER, SLICE, DATANODE */ %token ABORT_P ABSOLUTE_P ACCESS ACCOUNT ACTION ADD_P ADMIN AFTER - AGGREGATE ALGORITHM ALL ALSO ALTER ALWAYS ANALYSE ANALYZE AND ANY APP ARCHIVE ARRAY AS ASC + AGGREGATE ALGORITHM ALL ALSO ALTER ALWAYS ANALYSE ANALYZE AND ANY APP APPEND ARCHIVE ARRAY AS ASC ASSERTION ASSIGNMENT ASYMMETRIC AT ATTRIBUTE AUDIT AUTHID AUTHORIZATION AUTOEXTEND AUTOMAPPED - BACKWARD BARRIER BEFORE BEGIN_NON_ANOYBLOCK BEGIN_P BETWEEN BIGINT BINARY BINARY_DOUBLE BINARY_FLOAT BINARY_INTEGER BIT BLOB_P - BLOCKCHAIN BODY_P BOGUS BOOLEAN_P BOTH BUCKETCNT BUCKETS BY BYTEAWITHOUTORDER BYTEAWITHOUTORDERWITHEQUAL + BACKWARD BARRIER BEFORE BEGIN_NON_ANOYBLOCK BEGIN_P BETWEEN BIGINT BINARY BINARY_DOUBLE BINARY_INTEGER BIT BLANKS + BLOB_P BLOCKCHAIN BODY_P BOGUS BOOLEAN_P BOTH BUCKETCNT BUCKETS BY BYTEAWITHOUTORDER BYTEAWITHOUTORDERWITHEQUAL CACHE CALL CALLED CASCADE CASCADED CASE CAST CATALOG_P CHAIN CHAR_P - CHARACTER CHARACTERISTICS CHECK CHECKPOINT CLASS CLEAN CLIENT CLIENT_MASTER_KEY CLIENT_MASTER_KEYS CLOB CLOSE - CLUSTER COALESCE COLLATE COLLATION COLUMN COLUMN_ARGS COLUMN_ENCRYPTION_KEY COLUMN_ENCRYPTION_KEYS COLUMN_FUNCTION COMMENT COMMENTS COMMIT - COMMITTED COMPACT COMPATIBLE_ILLEGAL_CHARS COMPLETE COMPRESS CONCURRENTLY CONDITION CONFIGURATION CONNECTION CONSTRAINT CONSTRAINTS - CONTENT_P CONTINUE_P CONTVIEW CONVERSION_P COORDINATOR COORDINATORS COPY COST CREATE + CHARACTER CHARACTERISTICS CHARACTERSET CHECK CHECKPOINT CLASS CLEAN CLIENT CLIENT_MASTER_KEY CLIENT_MASTER_KEYS CLOB CLOSE + CLUSTER COALESCE COLLATE COLLATION COLUMN COLUMN_ENCRYPTION_KEY COLUMN_ENCRYPTION_KEYS COMMENT COMMENTS COMMIT + COMMITTED COMPACT COMPATIBLE_ILLEGAL_CHARS COMPLETE COMPRESS CONCURRENTLY CONDITION CONFIGURATION CONNECTION CONSTANT CONSTRAINT CONSTRAINTS + CONTENT_P CONTINUE_P CONTVIEW CONVERSION_P CONNECT COORDINATOR COORDINATORS COPY COST CREATE CROSS CSN CSV CUBE CURRENT_P CURRENT_CATALOG CURRENT_DATE CURRENT_ROLE CURRENT_SCHEMA CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER CURSOR CYCLE @@ -766,20 +796,20 @@ static Node *make_node_from_scanbuf(int start_pos, int end_pos, core_yyscan_t yy /* PGXC_END */ DROP DUPLICATE DISCONNECT - EACH ELASTIC ELSE ENABLE_P ENCODING ENCRYPTED ENCRYPTED_VALUE ENCRYPTION ENCRYPTION_TYPE END_P ENFORCED ENUM_P ERRORS ESCAPE EOL ESCAPING EVERY EXCEPT EXCHANGE + EACH ELASTIC ELSE ENABLE_P ENCLOSED ENCODING ENCRYPTED ENCRYPTED_VALUE ENCRYPTION ENCRYPTION_TYPE END_P ENFORCED ENUM_P ERRORS ESCAPE EOL ESCAPING EVERY EXCEPT EXCHANGE EXCLUDE EXCLUDED EXCLUDING EXCLUSIVE EXECUTE EXISTS EXPIRED_P EXPLAIN EXTENSION EXTERNAL EXTRACT - FALSE_P FAMILY FAST FENCED FETCH FILEHEADER_P FILL_MISSING_FIELDS FILTER FIRST_P FIXED_P FLOAT_P FOLLOWING FOR FORCE FOREIGN FORMATTER FORWARD + FALSE_P FAMILY FAST FENCED FETCH FIELDS FILEHEADER_P FILL_MISSING_FIELDS FILLER FILTER FIRST_P FIXED_P FLOAT_P FOLLOWING FOR FORCE FOREIGN FORMATTER FORWARD FEATURES // DB4AI FREEZE FROM FULL FUNCTION FUNCTIONS - GENERATED GLOBAL GLOBAL_FUNCTION GRANT GRANTED GREATEST GROUP_P GROUPING_P GROUPPARENT + GENERATED GLOBAL GRANT GRANTED GREATEST GROUP_P GROUPING_P GROUPPARENT HANDLER HAVING HDFSDIRECTORY HEADER_P HOLD HOUR_P IDENTIFIED IDENTITY_P IF_P IGNORE_EXTRA_DATA ILIKE IMMEDIATE IMMUTABLE IMPLICIT_P IN_P INCLUDE - INCLUDING INCREMENT INCREMENTAL INDEX INDEXES INHERIT INHERITS INITIAL_P INITIALLY INITRANS INLINE_P + INCLUDING INCREMENT INCREMENTAL INDEX INDEXES INFILE INHERIT INHERITS INITIAL_P INITIALLY INITRANS INLINE_P INNER_P INOUT INPUT_P INSENSITIVE INSERT INSTEAD INT_P INTEGER INTERNAL INTERSECT INTERVAL INTO INVOKER IP IS ISNULL ISOLATION @@ -793,9 +823,10 @@ static Node *make_node_from_scanbuf(int start_pos, int end_pos, core_yyscan_t yy LOCATION LOCK_P LOG_P LOGGING LOGIN_ANY LOGIN_FAILURE LOGIN_SUCCESS LOGOUT LOOP MAPPING MASKING MASTER MATCH MATERIALIZED MATCHED MAXEXTENTS MAXSIZE MAXTRANS MAXVALUE MERGE MINUS_P MINUTE_P MINVALUE MINEXTENTS MODE MODIFY_P MONTH_P MOVE MOVEMENT MODEL // DB4AI - NAME_P NAMES NATIONAL NATURAL NCHAR NEXT NLSSORT NO NOCOMPRESS NOCYCLE NODE NOLOGGING NOMAXVALUE NOMINVALUE NONE - NOT NOTHING NOTIFY NOTNULL NOWAIT NULL_P NULLIF NULLS_P NUMBER_P NUMERIC NUMSTR NVARCHAR NVARCHAR2 NVL - OBJECT_P OF OFF OFFSET OIDS ON ONLY OPERATOR OPTIMIZATION OPTION OPTIONS OR + NAME_P NAMES NATIONAL NATURAL NCHAR NEXT NO NOCOMPRESS NOCYCLE NODE NOLOGGING NOMAXVALUE NOMINVALUE NONE + NOT NOTHING NOTIFY NOTNULL NOWAIT NULL_P NULLCOLS NULLIF NULLS_P NUMBER_P NUMERIC NUMSTR NVARCHAR2 NVL + + OBJECT_P OF OFF OFFSET OIDS ON ONLY OPERATOR OPTIMIZATION OPTION OPTIONALLY OPTIONS OR ORDER OUT_P OUTER_P OVER OVERLAPS OVERLAY OWNED OWNER PACKAGE PARSER PARTIAL PARTITION PARTITIONS PASSING PASSWORD PCTFREE PER_P PERCENT PERFORMANCE PERM PLACING PLAN PLANS POLICY POSITION @@ -806,29 +837,29 @@ static Node *make_node_from_scanbuf(int start_pos, int end_pos, core_yyscan_t yy /* PGXC_BEGIN */ PREFERRED PREFIX PRESERVE PREPARE PREPARED PRIMARY /* PGXC_END */ - PRIVATE PRIOR PRIVILEGES PRIVILEGE PROCEDURAL PROCEDURE PROFILE PUBLICATION PUBLISH PURGE + PRIVATE PRIOR PRIORER PRIVILEGES PRIVILEGE PROCEDURAL PROCEDURE PROFILE PUBLICATION PUBLISH PURGE QUERY QUOTE RANDOMIZED RANGE RATIO RAW READ REAL REASSIGN REBUILD RECHECK RECURSIVE RECYCLEBIN REDISANYVALUE REF REFERENCES REFRESH REINDEX REJECT_P RELATIVE_P RELEASE RELOPTIONS REMOTE_P REMOVE RENAME REPEATABLE REPLACE REPLICA RESET RESIZE RESOURCE RESTART RESTRICT RETURN RETURNING RETURNS REUSE REVOKE RIGHT ROLE ROLES ROLLBACK ROLLUP - ROTATION ROW ROWNUM ROWS RULE + ROTATION ROW ROWNUM ROWS ROWTYPE_P RULE SAMPLE SAVEPOINT SCHEMA SCROLL SEARCH SECOND_P SECURITY SELECT SEQUENCE SEQUENCES - SERIALIZABLE SERVER SESSION SESSION_USER SET SETS SETOF SHARE SHIPPABLE SHOW SHUTDOWN - SIMILAR SIMPLE SIZE SLICE SMALLDATETIME SMALLDATETIME_FORMAT_P SMALLINT SNAPSHOT SOME SOURCE_P SPACE SPILL SPLIT STABLE STANDALONE_P START - STATEMENT STATEMENT_ID STATISTICS STDIN STDOUT STORAGE STORE_P STORED STRATIFY STREAM STRICT_P STRIP_P SUBSCRIPTION SUBSTRING + SERIALIZABLE SERVER SESSION SESSION_USER SET SETS SETOF SHARE SHIPPABLE SHOW SHUTDOWN SIBLINGS + SIMILAR SIMPLE SIZE SKIP SLICE SMALLDATETIME SMALLDATETIME_FORMAT_P SMALLINT SNAPSHOT SOME SOURCE_P SPACE SPILL SPLIT STABLE STANDALONE_P START STARTWITH + STATEMENT STATEMENT_ID STATISTICS STDIN STDOUT STORAGE STORE_P STORED STRATIFY STREAM STRICT_P STRIP_P SUBPARTITION SUBSCRIPTION SUBSTRING SYMMETRIC SYNONYM SYSDATE SYSID SYSTEM_P SYS_REFCURSOR - TABLE TABLES TABLESAMPLE TABLESPACE TARGET TEMP TEMPLATE TEMPORARY TEXT_P THAN THEN TIME TIME_FORMAT_P TIMECAPSULE TIMESTAMP TIMESTAMP_FORMAT_P TIMESTAMPDIFF TINYINT + TABLE TABLES TABLESAMPLE TABLESPACE TARGET TEMP TEMPLATE TEMPORARY TERMINATED TEXT_P THAN THEN TIME TIME_FORMAT_P TIMECAPSULE TIMESTAMP TIMESTAMP_FORMAT_P TIMESTAMPDIFF TINYINT TO TRAILING TRANSACTION TRANSFORM TREAT TRIGGER TRIM TRUE_P TRUNCATE TRUSTED TSFIELD TSTAG TSTIME TYPE_P TYPES_P UNBOUNDED UNCOMMITTED UNENCRYPTED UNION UNIQUE UNKNOWN UNLIMITED UNLISTEN UNLOCK UNLOGGED - UNTIL UNUSABLE UPDATE USER USING + UNTIL UNUSABLE UPDATE USEEOF USER USING - VACUUM VALID VALIDATE VALIDATION VALIDATOR VALUE_P VALUES VARCHAR VARCHAR2 VARIADIC VARRAY VARYING VCGROUP + VACUUM VALID VALIDATE VALIDATION VALIDATOR VALUE_P VALUES VARCHAR VARCHAR2 VARIABLES VARIADIC VARRAY VARYING VCGROUP VERBOSE VERIFY VERSION_P VIEW VOLATILE WEAK WHEN WHERE WHITESPACE_P WINDOW WITH WITHIN WITHOUT WORK WORKLOAD WRAPPER WRITE @@ -900,7 +931,7 @@ static Node *make_node_from_scanbuf(int start_pos, int end_pos, core_yyscan_t yy * blame any funny behavior of UNBOUNDED on the SQL standard, though. */ %nonassoc UNBOUNDED /* ideally should have same precedence as IDENT */ -%nonassoc IDENT GENERATED NULL_P PARTITION RANGE ROWS PRECEDING FOLLOWING CUBE ROLLUP +%nonassoc IDENT GENERATED NULL_P PARTITION SUBPARTITION RANGE ROWS PRECEDING FOLLOWING CUBE ROLLUP %left Op OPERATOR '@' /* multi-character ops and user-defined operators */ %nonassoc NOTNULL %nonassoc ISNULL @@ -926,7 +957,6 @@ static Node *make_node_from_scanbuf(int start_pos, int end_pos, core_yyscan_t yy %left JOIN CROSS LEFT FULL RIGHT INNER_P NATURAL ENCRYPTED /* kluge to keep xml_whitespace_option from causing shift/reduce conflicts */ %right PRESERVE STRIP_P - %% /* @@ -955,17 +985,30 @@ stmtmulti: stmtmulti ';' stmt else $$ = $1; } - | stmt + | + { + #ifndef ENABLE_MULTIPLE_NODES + if (u_sess->attr.attr_common.plsql_show_all_error && + CompileWhich() != PLPGSQL_COMPILE_NULL) { + errstate = NOTICE; + } else { + errstate = ERROR; + } + #else + errstate = ERROR; + #endif + } + stmt { - if ($1 != NULL) + if ($2 != NULL) { - if (IsA($1, List)) + if (IsA($2, List)) { - $$ = (List*)$1; + $$ = (List*)$2; } else { - $$ = list_make1($1); + $$ = list_make1($2); } } else @@ -1138,7 +1181,7 @@ stmt : | RuleStmt | SecLabelStmt | SelectStmt - | ShutdownStmt + | ShutdownStmt | TimeCapsuleStmt | SnapshotStmt | TransactionStmt @@ -1206,10 +1249,13 @@ password_string: core_yy_extra_type yyextra = pg_yyget_extra(yyscanner)->core_yy_extra; if (yyextra.ident_quoted) $$ = $1; - else - ereport(ERROR, + else { + const char* message = "Password must be quoted"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("Password must be quoted"))); + } } namedata_string: Sconst @@ -1221,10 +1267,13 @@ namedata_string: core_yy_extra_type yyextra = pg_yyget_extra(yyscanner)->core_yy_extra; if (yyextra.ident_quoted) $$ = $1; - else - ereport(ERROR, + else { + const char* message = "name data must be quoted"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("name data must be quoted"))); + } } ; AlterOptRoleElem: @@ -1431,11 +1480,14 @@ AlterOptRoleElem: { $$ = makeDefElem("pguser", (Node *)makeInteger(TRUE)); } - else - ereport(ERROR, + else { + const char* message = "unrecognized role option"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("unrecognized role option \"%s\"", $1), parser_errposition(@1))); + } } ; @@ -1731,7 +1783,9 @@ AlterSystemStmt: | ALTER SYSTEM_P DISCONNECT SESSION Sconst altersys_option { - ereport(ERROR, + const char* message = "unsupported action \"DISCONNECT\" for statement \" alter system "; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_UNDEFINED_OBJECT), errmsg("unsupported action \"DISCONNECT\" for statement \" alter system \""))); } @@ -1739,7 +1793,9 @@ AlterSystemStmt: | ALTER SYSTEM_P SET generic_set { #if defined(ENABLE_MULTIPLE_NODES) || defined (ENABLE_PRIVATEGAUSS) - ereport(ERROR, + const char* message = "ALTER SYSTEM SET is not supported"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("ALTER SYSTEM SET is not supported."))); #else @@ -1923,7 +1979,9 @@ generic_set: /* if we are setting role, we switch to the new syntax which check the password of role */ if(!strcmp("role", n->name) || !pg_strcasecmp("session_authorization", n->name)) { - ereport(ERROR, + const char* message = "SET TO rolename\" not yet supported"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("\"SET %s TO rolename\" not yet supported", n->name), errhint("Use \"SET %s rolename\" clauses.", n->name))); @@ -1943,7 +2001,9 @@ generic_set: /* if we are setting role, we switch to the new syntax which check the password of role */ if(!strcmp("role", n->name) || !pg_strcasecmp("session_authorization", n->name)) { - ereport(ERROR, + const char* message = "SET TO rolename\" not yet supported"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("\"SET %s = rolename\" not yet supported", n->name), errhint("Use \"SET %s rolename\" clauses.", n->name))); @@ -2026,7 +2086,9 @@ set_rest_more: /* Generic SET syntaxes: */ } | CATALOG_P Sconst { - ereport(ERROR, + const char* message = "current database cannot be changed"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("current database cannot be changed"), parser_errposition(@2))); @@ -2163,11 +2225,14 @@ zone_value: if ($3 != NIL) { A_Const *n = (A_Const *) linitial($3); - if ((n->val.val.ival & ~(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE))) != 0) - ereport(ERROR, + if ((n->val.val.ival & ~(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE))) != 0) { + const char* message = "time zone interval must be HOUR or HOUR TO MINUTE"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("time zone interval must be HOUR or HOUR TO MINUTE"), parser_errposition(@3))); + } } t->typmods = $3; $$ = makeStringConstCast($2, @2, t); @@ -2178,16 +2243,22 @@ zone_value: if ($6 != NIL) { A_Const *n = (A_Const *) linitial($6); - if ((n->val.val.ival & ~(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE))) != 0) - ereport(ERROR, + if ((n->val.val.ival & ~(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE))) != 0) { + const char* message = "time zone interval must be HOUR or HOUR TO MINUTE"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("time zone interval must be HOUR or HOUR TO MINUTE"), parser_errposition(@6))); - if (list_length($6) != 1) - ereport(ERROR, + } + if (list_length($6) != 1) { + const char* message = "interval precision specified twice"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("interval precision specified twice"), parser_errposition(@1))); + } t->typmods = lappend($6, makeIntConst($3, @3)); } else @@ -2299,6 +2370,13 @@ VariableShowStmt: n->name = "session_authorization"; $$ = (Node *) n; } + | SHOW VARIABLES LIKE var_name + { + VariableShowStmt *n = makeNode(VariableShowStmt); + n->name = "all"; + n->likename = $4; + $$ = (Node *) n; + } | SHOW ALL { VariableShowStmt *n = makeNode(VariableShowStmt); @@ -2529,7 +2607,9 @@ AlterTableStmt: if (cmd->subtype == AT_RebuildIndex || cmd->subtype == AT_RebuildIndexPartition) { - ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), + const char* message = "REBUILD is not supported for multiple commands"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("REBUILD is not supported for multiple commands"))); } } @@ -2551,7 +2631,9 @@ AlterTableStmt: if (cmd->subtype == AT_RebuildIndex || cmd->subtype == AT_RebuildIndexPartition) { - ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), + const char* message = "IF EXISTS is not supported for REBUILD"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("IF EXISTS is not supported for REBUILD"))); } } @@ -2572,6 +2654,15 @@ AlterTableStmt: n->missing_ok = false; $$ = (Node *)n; } + | ALTER LARGE_P SEQUENCE qualified_name alter_table_cmds + { + AlterTableStmt *n = makeNode(AlterTableStmt); + n->relation = $4; + n->cmds = $5; + n->relkind = OBJECT_LARGE_SEQUENCE; + n->missing_ok = false; + $$ = (Node *)n; + } | ALTER SEQUENCE IF_P EXISTS qualified_name alter_table_cmds { AlterTableStmt *n = makeNode(AlterTableStmt); @@ -2581,6 +2672,15 @@ AlterTableStmt: n->missing_ok = true; $$ = (Node *)n; } + | ALTER LARGE_P SEQUENCE IF_P EXISTS qualified_name alter_table_cmds + { + AlterTableStmt *n = makeNode(AlterTableStmt); + n->relation = $6; + n->cmds = $7; + n->relkind = OBJECT_LARGE_SEQUENCE; + n->missing_ok = true; + $$ = (Node *)n; + } | ALTER VIEW qualified_name alter_table_cmds { AlterTableStmt *n = makeNode(AlterTableStmt); @@ -2940,7 +3040,55 @@ alter_partition_cmd: n->def = (Node*)s; n->subtype = AT_SplitPartition; - n->alterGPI = 10; + n->alterGPI = $10; + $$ = (Node*)n; + } + /* split one list subpartition into two subpartition */ + | SPLIT SUBPARTITION name VALUES '(' maxValueList ')' INTO + '(' split_dest_listsubpartition_define_list ')' OptGPI + { + if (list_length($10) != 2) { + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("Un-support feature"), + errdetail("List subpartition can be split into only two subpartitions."))); + } + AlterTableCmd *n = makeNode(AlterTableCmd); + SplitPartitionState *s = makeNode(SplitPartitionState); + + s->src_partition_name = $3; + s->newListSubPartitionBoundry = $6; + s->dest_partition_define_list = $10; + s->partition_for_values = NULL; + s->splitType = LISTSUBPARTITIION; + + n->def = (Node*)s; + n->subtype = AT_SplitSubPartition; + n->alterGPI = $12; + $$ = (Node*)n; + } + /* split one range subpartition into two subpartition */ + | SPLIT SUBPARTITION name AT '(' maxValueList ')' INTO + '(' split_dest_rangesubpartition_define_list ')' OptGPI + { + if (list_length($10) != 2) { + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("Un-support feature"), + errdetail("List subpartition can be split into only two subpartitions."))); + } + AlterTableCmd *n = makeNode(AlterTableCmd); + SplitPartitionState *s = makeNode(SplitPartitionState); + + s->src_partition_name = $3; + s->split_point = $6; + s->dest_partition_define_list = $10; + s->partition_for_values = NULL; + s->splitType = RANGESUBPARTITIION; + + n->def = (Node*)s; + n->subtype = AT_SplitSubPartition; + n->alterGPI = $12; $$ = (Node*)n; } /* truncate partition */ @@ -2969,6 +3117,18 @@ alter_partition_cmd: n->alterGPI = $6; $$ = (Node *)n; + } + /* truncate subpartition */ + | TRUNCATE SUBPARTITION ColId OptGPI + { + AlterTableCmd *n = makeNode(AlterTableCmd); + n->subtype = AT_TruncateSubPartition; + n->missing_ok = FALSE; + n->alterGPI = $4; + $$ = (Node *)n; + + n->name = $3; + } /* ENABLE ROW MOVEMENT */ | ENABLE_P ROW MOVEMENT @@ -3750,6 +3910,50 @@ split_dest_partition_define_list: } ; +split_dest_listsubpartition_define_list: + SUBPARTITION name OptTableSpace ',' SUBPARTITION name OptTableSpace + { + List *result = NULL; + ListPartitionDefState *p1 = makeNode(ListPartitionDefState); + ListPartitionDefState *p2 = makeNode(ListPartitionDefState); + + p1->partitionName = $2; + p1->tablespacename = $3; + p1->boundary = NULL; + + p2->partitionName = $6; + p2->tablespacename = $7; + p2->boundary = NULL; + + result = lappend(result, p1); + result = lappend(result, p2); + + $$ = result; + } + ; + +split_dest_rangesubpartition_define_list: + SUBPARTITION name OptTableSpace ',' SUBPARTITION name OptTableSpace + { + List *result = NULL; + RangePartitionDefState *p1 = makeNode(RangePartitionDefState); + RangePartitionDefState *p2 = makeNode(RangePartitionDefState); + + p1->partitionName = $2; + p1->tablespacename = $3; + p1->boundary = NULL; + + p2->partitionName = $6; + p2->tablespacename = $7; + p2->boundary = NULL; + + result = lappend(result, p1); + result = lappend(result, p2); + + $$ = result; + } + ; + /***************************************************************************** * * ALTER TYPE @@ -3866,13 +4070,13 @@ ClosePortalStmt: *****************************************************************************/ CopyStmt: COPY opt_binary qualified_name opt_column_list opt_oids - copy_from copy_file_name copy_delimiter opt_noescaping OptCopyLogError OptCopyRejectLimit opt_with copy_options + copy_from copy_file_name opt_load opt_useeof copy_delimiter opt_noescaping OptCopyLogError OptCopyRejectLimit opt_with copy_options opt_processed { CopyStmt *n = makeNode(CopyStmt); n->relation = $3; n->query = NULL; - n->attlist = $4; + n->attlist = u_sess->parser_cxt.col_list; n->is_from = $6; n->filename = $7; if ($4) @@ -3887,17 +4091,26 @@ CopyStmt: COPY opt_binary qualified_name opt_column_list opt_oids n->options = lappend(n->options, $2); if ($5) n->options = lappend(n->options, $5); + if ($8) n->options = lappend(n->options, $8); + if ($9) n->options = lappend(n->options, $9); - if ($10) - n->options = lappend(n->options, $10); + if ($10) + n->options = lappend(n->options, $10); if ($11) n->options = lappend(n->options, $11); + if ($12) + n->options = lappend(n->options, $12); if ($13) - n->options = list_concat(n->options, $13); + n->options = lappend(n->options, $13); + if ($15) + n->options = list_concat(n->options, $15); $$ = (Node *)n; + + u_sess->parser_cxt.is_load_copy = false; + u_sess->parser_cxt.col_list = NULL; } | COPY select_with_parens TO copy_file_name opt_noescaping opt_with copy_options opt_processed { @@ -3918,8 +4131,29 @@ opt_processed: ENCRYPTED {$$=TRUE;} | /*EMPTY*/ { $$ = FALSE; } +opt_load: + LOAD + { +#ifdef ENABLE_MULTIPLE_NODES + const char* message = "COPY ... LOAD FROM is not supported"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("COPY ... LOAD FROM is not supported"))); +#endif + u_sess->parser_cxt.is_load_copy = true; + $$ = makeDefElem("loader", (Node *)makeInteger(TRUE)); + } + | /*EMPTY*/ { $$ = NULL; } + +opt_useeof: + USEEOF + { + $$ = makeDefElem("useeof", (Node *)makeInteger(TRUE)); + } + | /*EMPTY*/ { $$ = NULL; } + + copy_from: - FROM { $$ = TRUE; } + FROM { $$ = TRUE; } | TO { $$ = FALSE; } ; @@ -4039,13 +4273,68 @@ copy_opt_item: $$ = makeDefElem("compatible_illegal_chars", (Node *)makeInteger(TRUE)); } | FILL_MISSING_FIELDS - { - $$ = makeDefElem("fill_missing_fields", (Node *)makeInteger(TRUE)); - } + { + $$ = makeDefElem("fill_missing_fields", (Node *)makeString("one")); + } + | FILL_MISSING_FIELDS Sconst + { +#ifdef ENABLE_MULTIPLE_NODES + const char* message = "FILL_MISSING_FIELDS is not supported"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("FILL_MISSING_FIELDS is not supported"))); +#endif + $$ = makeDefElem("fill_missing_fields", (Node *)makeString($2)); + } | TRANSFORM '(' copy_column_expr_list ')' { $$ = MakeDefElemWithLoc("transform", (Node *)$3, @1, @4); } + | load_when_option + { +#ifdef ENABLE_MULTIPLE_NODES + const char* message = "WHEN is not supported"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("WHEN is not supported"))); +#endif + $$ = $1; + } + | SKIP Iconst + { +#ifdef ENABLE_MULTIPLE_NODES + const char* message = "SKIP is not supported"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("SKIP is not supported"))); +#endif + $$ = makeDefElem("skip", (Node *)makeInteger($2)); + } + | SEQUENCE '(' copy_column_sequence_list ')' + { +#ifdef ENABLE_MULTIPLE_NODES + const char* message = "SEQUENCE is not supported"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("SEQUENCE is not supported"))); +#endif + $$ = makeDefElem("sequence", (Node *)$3); + } + | FILLER '(' copy_column_filler_list ')' + { +#ifdef ENABLE_MULTIPLE_NODES + const char* message = "FILLER is not supported"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("FILLER is not supported"))); +#endif + RemoveFillerCol($3, u_sess->parser_cxt.col_list); + $$ = makeDefElem("filler", (Node *)$3); + } + | CONSTANT '(' copy_column_constant_list ')' + { +#ifdef ENABLE_MULTIPLE_NODES + const char* message = "CONSTANT is not supported"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("CONSTANT is not supported"))); +#endif + $$ = makeDefElem("constant", (Node *)$3); + } ; /* The following exist for backward compatibility with very old versions */ @@ -4198,6 +4487,7 @@ copy_column_expr_item: $$ = (Node*)n; } ; + OptCopyColTypename: Typename { $$ = $1; } | /*EMPTY*/ { $$ = NULL; } @@ -4207,6 +4497,77 @@ OptCopyColExpr: | /*EMPTY*/ { $$ = NULL; } ; +copy_column_sequence_list: + copy_column_sequence_item + { + $$ = list_make1($1); + } + | copy_column_sequence_list ',' copy_column_sequence_item + { + $$ = lappend($1, $3); + } + ; +copy_column_sequence_item: + ColId '(' column_sequence_item_sart column_sequence_item_step ')' + { + SqlLoadSequInfo* n = makeNode(SqlLoadSequInfo); + n->colname = $1; + n->start = $3; + n->step = $4; + $$ = (Node *)n; + } + ; + +column_sequence_item_step: + ',' Iconst { $$ = $2; } + | ',' FCONST { $$ = SequenceStrGetInt64($2); } + | /*EMPTY*/ { $$ = 1; } + ; +column_sequence_item_sart: + Iconst { $$ = $1; } + | FCONST { $$ = SequenceStrGetInt64($1); } + ; + +copy_column_filler_list: + copy_column_filler_item + { + $$ = list_make1($1); + } + | copy_column_filler_list ',' copy_column_filler_item + { + $$ = lappend($1, $3); + } + ; +copy_column_filler_item: + ColId + { + SqlLoadFillerInfo* n = makeNode(SqlLoadFillerInfo); + n->colname = $1; + n->index = GetFillerColIndex($1, u_sess->parser_cxt.col_list); + $$ = (Node *)n; + } + ; + +copy_column_constant_list: + copy_column_constant_item + { + $$ = list_make1($1); + } + | copy_column_constant_list ',' copy_column_constant_item + { + $$ = lappend($1, $3); + } + ; +copy_column_constant_item: + ColId Sconst + { + SqlLoadConsInfo* n = makeNode(SqlLoadConsInfo); + n->colname = $1; + n->consVal = $2; + $$ = (Node *)n; + } + ; + /***************************************************************************** * * QUERY : @@ -4269,7 +4630,9 @@ PurgeStmt: | PURGE TABLESPACE name { - ereport(ERROR, + const char* message = "PURGE TABLESPACE is not yet supported."; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("PURGE TABLESPACE is not yet supported."))); TcapFeatureEnsure(); @@ -4498,87 +4861,97 @@ opt_table_partitioning_clause: range_partitioning_clause: PARTITION BY RANGE '(' column_item_list ')' - opt_interval_partition_clause '(' range_partition_definition_list ')' opt_row_movement_clause + opt_interval_partition_clause subpartitioning_clause '(' range_partition_definition_list ')' opt_row_movement_clause { PartitionState *n = makeNode(PartitionState); + if ($8 != NULL && list_length($5) != 1) { + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("Un-support feature"), + errdetail("The partition key's length should be 1."))); + } n->partitionKey = $5; n->intervalPartDef = (IntervalPartitionDefState *)$7; - n->partitionList = $9; + n->partitionList = $10; if (n->intervalPartDef) n->partitionStrategy = 'i'; else n->partitionStrategy = 'r'; - n->rowMovement = (RowMovementValue)$11; + n->rowMovement = (RowMovementValue)$12; + n->subPartitionState = (PartitionState *)$8; $$ = (Node *)n; } ; list_partitioning_clause: - PARTITION BY LIST '(' column_item_list ')' - '(' list_partition_definition_list ')' + PARTITION BY LIST '(' column_item_list ')' subpartitioning_clause + '(' list_partition_definition_list ')' opt_row_movement_clause { #ifdef ENABLE_MULTIPLE_NODES - ereport(ERROR, + const char* message = "Un-support feature"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("Un-support feature"), errdetail("The distributed capability is not supported currently."))); #endif if (list_length($5) != 1) { - ereport(ERROR, + const char* message = "Un-support feature"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("Un-support feature"), errdetail("The partition key's length should be 1."))); } - if (list_length($8) > 64) { - ereport(ERROR, - (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("Un-support feature"), - errdetail("The partition's length should be less than 65."))); - } PartitionState *n = makeNode(PartitionState); n->partitionKey = $5; n->intervalPartDef = NULL; - n->partitionList = $8; + n->partitionList = $9; n->partitionStrategy = 'l'; + n->subPartitionState = (PartitionState *)$7; + n->rowMovement = (RowMovementValue)$11; + $$ = (Node *)n; } ; hash_partitioning_clause: - PARTITION BY IDENT '(' column_item_list ')' - '(' hash_partition_definition_list ')' + PARTITION BY IDENT '(' column_item_list ')' subpartitioning_clause + '(' hash_partition_definition_list ')' opt_row_movement_clause { #ifdef ENABLE_MULTIPLE_NODES - ereport(ERROR, + const char* message = "Un-support feature"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("Un-support feature"), errdetail("The distributed capability is not supported currently."))); #endif if (list_length($5) != 1) { - ereport(ERROR, + const char* message = "Un-support feature"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("Un-support feature"), errdetail("The partition key's length should be 1."))); } if (strcmp($3, "hash") != 0) { - ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), + const char* message = "Un-support feature"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("unrecognized option \"%s\"", $3))); } - if (list_length($8) > 64) { - ereport(ERROR, - (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("Un-support feature"), - errdetail("The partition's length should be less than 65."))); - } PartitionState *n = makeNode(PartitionState); n->partitionKey = $5; n->intervalPartDef = NULL; - n->partitionList = $8; + n->partitionList = $9; n->partitionStrategy = 'h'; + n->subPartitionState = (PartitionState *)$7;; + n->rowMovement = (RowMovementValue)$11; int i = 0; ListCell *elem = NULL; List *parts = n->partitionList; @@ -4603,6 +4976,168 @@ value_partitioning_clause: } ; +subpartitioning_clause: + range_subpartitioning_clause + { + $$ = $1; + } + |hash_subpartitioning_clause + { + $$ = $1; + } + |list_subpartitioning_clause + { + $$ = $1; + } + | /* empty */ { $$ = NULL; } + ; + +range_subpartitioning_clause: + SUBPARTITION BY RANGE '(' column_item_list ')' + { +#ifdef ENABLE_MULTIPLE_NODES + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("Un-support feature"), + errdetail("The distributed capability is not supported currently."))); +#endif + PartitionState *n = makeNode(PartitionState); + if (list_length($5) != 1) { + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("Un-support feature"), + errdetail("The partition key's length should be 1."))); + } + n->partitionKey = $5; + n->intervalPartDef = NULL; + n->partitionList = NIL; + n->partitionStrategy = 'r'; + + n->rowMovement = ROWMOVEMENT_DEFAULT; + n->subPartitionState = NULL; + + $$ = (Node *)n; + } + ; + +list_subpartitioning_clause: + SUBPARTITION BY LIST '(' column_item_list ')' + { +#ifdef ENABLE_MULTIPLE_NODE + const char* message = "Un-support feature"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("Un-support feature"), + errdetail("The distributed capability is not supported currently."))); +#endif + if (list_length($5) != 1) { + const char* message = "Un-support feature"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("Un-support feature"), + errdetail("The partition key's length should be 1."))); + } + PartitionState *n = makeNode(PartitionState); + n->partitionKey = $5; + n->intervalPartDef = NULL; + n->partitionList = NIL; + n->partitionStrategy = 'l'; + n->subPartitionState = NULL; + $$ = (Node *)n; + } + ; + +hash_subpartitioning_clause: + SUBPARTITION BY IDENT '(' column_item_list ')' + { +#ifdef ENABLE_MULTIPLE_NODES + const char* message = "Un-support feature"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("Un-support feature"), + errdetail("The distributed capability is not supported currently."))); +#endif + if (list_length($5) != 1) { + const char* message = "Un-support feature"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("Un-support feature"), + errdetail("The partition key's length should be 1."))); + } + if (strcmp($3, "hash") != 0) { + const char* message = "Un-support feature"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("unrecognized option \"%s\"", $3))); + } + PartitionState *n = makeNode(PartitionState); + n->partitionKey = $5; + n->intervalPartDef = NULL; + n->partitionList = NIL; + n->partitionStrategy = 'h'; + n->subPartitionState = NULL; + + $$ = (Node *)n; + + } + ; + +subpartition_definition_list: + subpartition_item + { + $$ = list_make1($1); + } + | subpartition_definition_list ',' subpartition_item + { + $$ = lappend($1, $3); + } + ; + +subpartition_item: + SUBPARTITION name VALUES '(' expr_list ')' OptTableSpace + { + ListPartitionDefState *n = makeNode(ListPartitionDefState); + n->partitionName = $2; + n->boundary = $5; + n->tablespacename = $7; + + $$ = (Node *)n; + } + | SUBPARTITION name VALUES '(' DEFAULT ')' OptTableSpace + { + ListPartitionDefState *n = makeNode(ListPartitionDefState); + n->partitionName = $2; + Const *n_default = makeNode(Const); + n_default->ismaxvalue = true; + n_default->location = -1; + n->boundary = list_make1(n_default); + n->tablespacename = $7; + $$ = (Node *)n; + } + | SUBPARTITION name OptTableSpace + { + HashPartitionDefState *n = makeNode(HashPartitionDefState); + n->partitionName = $2; + n->tablespacename = $3; + + $$ = (Node*)n; + } + | SUBPARTITION name VALUES LESS THAN + '(' maxValueList ')' OptTableSpace + { + RangePartitionDefState *n = makeNode(RangePartitionDefState); + n->partitionName = $2; + n->boundary = $7; + n->tablespacename = $9; + + $$ = (Node *)n; + } + ; + column_item_list: column_item { @@ -4717,10 +5252,6 @@ list_partition_item: } | PARTITION name VALUES '(' DEFAULT ')' OptTableSpace { - ereport(ERROR, - (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("Un-support feature"), - errdetail("The default list's partition is not supported currently."))); ListPartitionDefState *n = makeNode(ListPartitionDefState); n->partitionName = $2; Const *n_default = makeNode(Const); @@ -4730,6 +5261,49 @@ list_partition_item: n->tablespacename = $7; $$ = (Node *)n; } + | PARTITION name VALUES '(' expr_list ')' OptTableSpace '(' subpartition_definition_list ')' + { + ListPartitionDefState *n = makeNode(ListPartitionDefState); + n->partitionName = $2; + n->boundary = $5; + n->tablespacename = $7; + n->subPartitionDefState = $9; + int i = 0; + ListCell *elem = NULL; + List *parts = n->subPartitionDefState; + foreach(elem, parts) { + if (!IsA((Node*)lfirst(elem), HashPartitionDefState)) { + break; + } + HashPartitionDefState *hashPart = (HashPartitionDefState*)lfirst(elem); + hashPart->boundary = list_make1(makeIntConst(i, -1)); + i++; + } + $$ = (Node *)n; + } + | PARTITION name VALUES '(' DEFAULT ')' OptTableSpace '(' subpartition_definition_list ')' + { + ListPartitionDefState *n = makeNode(ListPartitionDefState); + n->partitionName = $2; + Const *n_default = makeNode(Const); + n_default->ismaxvalue = true; + n_default->location = -1; + n->boundary = list_make1(n_default); + n->tablespacename = $7; + n->subPartitionDefState = $9; + int i = 0; + ListCell *elem = NULL; + List *parts = n->subPartitionDefState; + foreach(elem, parts) { + if (!IsA((Node*)lfirst(elem), HashPartitionDefState)) { + break; + } + HashPartitionDefState *hashPart = (HashPartitionDefState*)lfirst(elem); + hashPart->boundary = list_make1(makeIntConst(i, -1)); + i++; + } + $$ = (Node *)n; + } ; hash_partition_item: @@ -4741,6 +5315,26 @@ hash_partition_item: $$ = (Node*)n; } + | PARTITION name OptTableSpace '(' subpartition_definition_list ')' + { + HashPartitionDefState *n = makeNode(HashPartitionDefState); + n->partitionName = $2; + n->tablespacename = $3; + n->subPartitionDefState = $5; + int i = 0; + ListCell *elem = NULL; + List *parts = n->subPartitionDefState; + foreach(elem, parts) { + if (!IsA((Node*)lfirst(elem), HashPartitionDefState)) { + break; + } + HashPartitionDefState *hashPart = (HashPartitionDefState*)lfirst(elem); + hashPart->boundary = list_make1(makeIntConst(i, -1)); + i++; + } + $$ = (Node *)n; + } + ; range_less_than_item: PARTITION name VALUES LESS THAN @@ -4751,6 +5345,28 @@ range_less_than_item: n->boundary = $7; n->tablespacename = $9; + $$ = (Node *)n; + } + | PARTITION name VALUES LESS THAN + '(' maxValueList ')' OptTableSpace '(' subpartition_definition_list ')' + { + RangePartitionDefState *n = makeNode(RangePartitionDefState); + n->partitionName = $2; + n->boundary = $7; + n->tablespacename = $9; + n->subPartitionDefState = $11; + int i = 0; + ListCell *elem = NULL; + List *parts = n->subPartitionDefState; + foreach(elem, parts) { + if (!IsA((Node*)lfirst(elem), HashPartitionDefState)) { + break; + } + HashPartitionDefState *hashPart = (HashPartitionDefState*)lfirst(elem); + hashPart->boundary = list_make1(makeIntConst(i, -1)); + i++; + } + $$ = (Node *)n; } ; @@ -4867,6 +5483,8 @@ OptTemp: TEMPORARY { $$ = RELPERSISTENCE_TEMP; } | GLOBAL TEMPORARY { #ifdef ENABLE_MULTIPLE_NODES + const char* message = "GLOBAL is deprecated in temporary table creation"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); ereport(WARNING, (errmsg("GLOBAL is deprecated in temporary table creation"), parser_errposition(@1))); @@ -4878,6 +5496,8 @@ OptTemp: TEMPORARY { $$ = RELPERSISTENCE_TEMP; } | GLOBAL TEMP { #ifdef ENABLE_MULTIPLE_NODES + const char* message = "GLOBAL is deprecated in temporary table creation"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); ereport(WARNING, (errmsg("GLOBAL is deprecated in temporary table creation"), parser_errposition(@1))); @@ -5002,6 +5622,8 @@ ColConstraint: CONSTRAINT name ColConstraintElem { Constraint *n = (Constraint *) $3; + const char* message = "check node type inconsistant"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); AssertEreport(IsA(n, Constraint), MOD_OPT, "check node type inconsistant"); @@ -5345,7 +5967,9 @@ ColConstraintElem: | GENERATED ALWAYS AS '(' a_expr ')' STORED { #ifdef ENABLE_MULTIPLE_NODES - ereport(ERROR, (errmodule(MOD_GEN_COL), errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + const char* message = "Generated column is not yet supported"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errmodule(MOD_GEN_COL), errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("Generated column is not yet supported."))); #endif Constraint *n = makeNode(Constraint); @@ -5359,7 +5983,9 @@ ColConstraintElem: | REFERENCES qualified_name opt_column_list key_match key_actions { #ifdef ENABLE_MULTIPLE_NODES - ereport(ERROR, + const char* message = "REFERENCES constraint is not yet supported."; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("REFERENCES constraint is not yet supported."))); #endif @@ -5378,7 +6004,9 @@ ColConstraintElem: } | REFERENCES qualified_name opt_column_list key_match key_actions ENABLE_P { - ereport(ERROR, + const char* message = "REFERENCES constraint is not yet supported."; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("REFERENCES constraint is not yet supported."))); Constraint *n = makeNode(Constraint); @@ -5452,7 +6080,9 @@ TableLikeClause: #ifndef ENABLE_MULTIPLE_NODES if (IS_SINGLE_NODE && (n->options & CREATE_TABLE_LIKE_DISTRIBUTION)) { - ereport(ERROR, + const char* message = "Un-support feature"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("Un-support feature"), errdetail("The distributed capability is not supported currently."))); @@ -5654,7 +6284,9 @@ ConstraintElem: opt_c_include opt_definition OptConsTableSpace ExclusionWhereClause ConstraintAttributeSpec { - ereport(ERROR, + const char* message = "EXCLUDE constraint is not yet supported."; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("EXCLUDE constraint is not yet supported."))); Constraint *n = makeNode(Constraint); @@ -5675,8 +6307,10 @@ ConstraintElem: | FOREIGN KEY '(' columnList ')' REFERENCES qualified_name opt_column_list key_match key_actions ConstraintAttributeSpec { -#ifdef ENABLE_MULTIPLE_NODES - ereport(ERROR, +#ifdef ENABLE_MULTIPLE_NODES + const char* message = "FOREIGN KEY ... REFERENCES constraint is not yet supported."; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("FOREIGN KEY ... REFERENCES constraint is not yet supported."))); #endif @@ -5714,8 +6348,8 @@ opt_no_inherit: NO INHERIT { $$ = TRUE; } ; opt_column_list: - '(' columnList ')' { $$ = $2; } - | /*EMPTY*/ { $$ = NIL; } + '(' columnList ')' { u_sess->parser_cxt.col_list = $2; $$ = $2; } + | /*EMPTY*/ { u_sess->parser_cxt.col_list = NIL; $$ = NIL; } ; columnList: @@ -5739,7 +6373,9 @@ key_match: MATCH FULL } | MATCH PARTIAL { - ereport(ERROR, + const char* message = "MATCH PARTIAL not yet implemented"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("MATCH PARTIAL not yet implemented"), parser_errposition(@1))); @@ -5812,7 +6448,9 @@ key_action: OptInherit: INHERITS '(' qualified_name_list ')' { - ereport(ERROR, + const char* message = "CREATE TABLE ... INHERITS is not yet supported."; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("CREATE TABLE ... INHERITS is not yet supported."))); $$ = $3; @@ -5825,10 +6463,13 @@ OptWith: WITH reloptions { $$ = $2; } | WITH OIDS { - if (!u_sess->attr.attr_common.IsInplaceUpgrade) - ereport(ERROR, + if (!u_sess->attr.attr_common.IsInplaceUpgrade) { + const char* message = "CREATE TABLE ... WITH OIDS is not yet supported."; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("CREATE TABLE ... WITH OIDS is not yet supported."))); + } $$ = list_make1(defWithOids(true)); } | WITHOUT OIDS { $$ = list_make1(defWithOids(false)); } @@ -5874,7 +6515,9 @@ OptDistributeByInternal: DISTRIBUTE BY OptDistributeType '(' name_list ')' #ifndef ENABLE_MULTIPLE_NODES if (IS_SINGLE_NODE) { - ereport(ERROR, + const char* message = "Un-support feature"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("Un-support feature"), errdetail("The distributed capability is not supported currently."))); @@ -5885,17 +6528,24 @@ OptDistributeByInternal: DISTRIBUTE BY OptDistributeType '(' name_list ')' else if (strcmp($3, "hash") == 0) n->disttype = DISTTYPE_HASH; else if (strcmp($3, "list") == 0 || strcmp($3, "range") == 0) { - ereport(ERROR, + const char* message = "distribution needs user-defined slice clause"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("%s distribution needs user-defined slice clause", $3))); - } else - ereport(ERROR, + } else { + const char* message = "unrecognized distribution option"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("unrecognized distribution option \"%s\"", $3))); + } n->colname = $5; if (list_length(n->colname) > 1 && strcmp($3, "hash") != 0) { - ereport(ERROR, + const char* message = "distribute key can not exceed 1"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("The number of %s distribute key can not exceed 1", $3))); @@ -5908,7 +6558,9 @@ OptDistributeByInternal: DISTRIBUTE BY OptDistributeType '(' name_list ')' #ifndef ENABLE_MULTIPLE_NODES if (IS_SINGLE_NODE) { - ereport(ERROR, + const char* message = "Un-support feature"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("Un-support feature"), errdetail("The distributed capability is not supported currently."))); @@ -5920,10 +6572,13 @@ OptDistributeByInternal: DISTRIBUTE BY OptDistributeType '(' name_list ')' n->disttype = DISTTYPE_ROUNDROBIN; else if (strcmp($3, "hidetag") == 0) n->disttype = DISTTYPE_HIDETAG; - else - ereport(ERROR, + else { + const char* message = "unrecognized distribution option"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("unrecognized distribution option \"%s\"", $3))); + } n->colname = NULL; $$ = n; } @@ -5942,8 +6597,9 @@ distribute_by_list_clause: /* distribute by list ..., or distribute by list ... DISTRIBUTE BY LIST '(' name_list ')' OptListDistribution { #ifndef ENABLE_MULTIPLE_NODES - - ereport(ERROR, + const char* message = "unrecognized distribution option"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("Un-support feature"), errdetail("The distributed capability is not supported currently."))); @@ -5957,7 +6613,9 @@ distribute_by_list_clause: /* distribute by list ..., or distribute by list ... if (list_length(n->colname) > 4) { - ereport(ERROR, + const char* message = "The number of LIST distribution keys can not exceed 4"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("The number of LIST distribution keys can not exceed 4"))); @@ -6052,8 +6710,10 @@ list_distribution_rule_single: distribute_by_range_clause: DISTRIBUTE BY RANGE '(' name_list ')' '(' range_slice_definition_list ')' { -#ifndef ENABLE_MULTIPLE_NODES - ereport(ERROR, +#ifndef ENABLE_MULTIPLE_NODES + const char* message = "The number of LIST distribution keys can not exceed 4"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("Un-support feature"), errdetail("The distributed capability is not supported currently."))); @@ -6067,7 +6727,9 @@ distribute_by_range_clause: n->distState = n1; if (list_length(n->colname) > 4) { - ereport(ERROR, + const char* message = "The number of LIST distribution keys can not exceed 4"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("The number of range distribution key can not exceed 4"))); } @@ -6076,8 +6738,10 @@ distribute_by_range_clause: } | DISTRIBUTE BY RANGE '(' name_list ')' SliceReferenceClause { -#ifndef ENABLE_MULTIPLE_NODES - ereport(ERROR, +#ifndef ENABLE_MULTIPLE_NODES + const char* message = "Un-support feature"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("Un-support feature"), errdetail("The distributed capability is not supported currently."))); @@ -6333,21 +6997,27 @@ SnapshotStmt: AS SelectStmt { #ifdef ENABLE_MULTIPLE_NODES - ereport(ERROR, + const char* message = "CREATE SNAPSHOT is not yet supported."; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("CREATE SNAPSHOT is not yet supported."))); #endif if ($2 != RELPERSISTENCE_PERMANENT) { - ereport(ERROR, + const char* message = "Temporary snapshots are not supported."; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("Temporary snapshots are not supported."))); } if ($7 != NULL) { - ereport(ERROR, + const char* message = "Clustered snapshots are not supported."; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("Clustered snapshots are not supported."))); } @@ -6367,21 +7037,27 @@ SnapshotStmt: USING '(' AlterSnapshotCmdList ')' { #ifdef ENABLE_MULTIPLE_NODES - ereport(ERROR, + const char* message = "CREATE SNAPSHOT is not yet supported."; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("CREATE SNAPSHOT is not yet supported."))); #endif if ($2 != RELPERSISTENCE_PERMANENT) { - ereport(ERROR, + const char* message = "Temporary snapshots are not supported."; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("Temporary snapshots are not supported."))); } if ($6 != NULL) { - ereport(ERROR, + const char* message = "illegal DISTRIBUTE BY clause in CREATE SNAPSHOT ... FROM"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("illegal DISTRIBUTE BY clause in CREATE SNAPSHOT ... FROM"), errhint("DISTRIBUTE BY is inherited from parent snapshot."), @@ -6390,7 +7066,9 @@ SnapshotStmt: if ($7 != NULL) { - ereport(ERROR, + const char* message = "Clustered snapshots are not supported."; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("Clustered snapshots are not supported."), parser_errposition(@7))); @@ -6398,7 +7076,9 @@ SnapshotStmt: if ($13 == NIL) { - ereport(ERROR, + const char* message = "List of snapshot modifications is empty."; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("List of snapshot modifications is empty."), parser_errposition(@13))); @@ -6416,7 +7096,9 @@ SnapshotStmt: | SAMPLE SNAPSHOT qualified_name SnapshotVersion OptSnapshotStratify SnapshotSampleList { #ifdef ENABLE_MULTIPLE_NODES - ereport(ERROR, + const char* message = "SAMPLE SNAPSHOT is not yet supported."; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("SAMPLE SNAPSHOT is not yet supported."))); #endif @@ -6451,7 +7133,9 @@ SnapshotStmt: | ARCHIVE SNAPSHOT qualified_name SnapshotVersion { #ifdef ENABLE_MULTIPLE_NODES - ereport(ERROR, + const char* message = "ARCHIVE SNAPSHOT is not yet supported."; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("ARCHIVE SNAPSHOT is not yet supported."))); #endif @@ -6467,7 +7151,9 @@ SnapshotStmt: | PUBLISH SNAPSHOT qualified_name SnapshotVersion { #ifdef ENABLE_MULTIPLE_NODES - ereport(ERROR, + const char* message = "PUBLISH SNAPSHOT is not yet supported."; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("PUBLISH SNAPSHOT is not yet supported."))); #endif @@ -6483,7 +7169,9 @@ SnapshotStmt: | PURGE SNAPSHOT qualified_name SnapshotVersion {} { #ifdef ENABLE_MULTIPLE_NODES - ereport(ERROR, + const char* message = "PURGE SNAPSHOT is not yet supported."; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("PURGE SNAPSHOT is not yet supported."))); #endif @@ -6523,7 +7211,9 @@ OptSnapshotVersion: SnapshotVersion { #ifdef ENABLE_MULTIPLE_NODES - ereport(ERROR, + const char* message = "SNAPSHOT VERSION syntax is not yet supported."; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("SNAPSHOT VERSION syntax is not yet supported."))); #endif @@ -6653,18 +7343,24 @@ CreateMatViewStmt: $6->rel->relpersistence = $2; $6->skipData = !($9); if ($6->skipData) { - ereport(ERROR, + const char* message = "WITH NO DATA for materialized views not yet supported"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("WITH NO DATA for materialized views not yet supported"))); } if ($3 && $6->options) { - ereport(ERROR, + const char* message = "options for incremental materialized views not yet supported"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("options for incremental materialized views not yet supported"))); } #ifndef ENABLE_MULTIPLE_NODES if ($3 && $6->distributeby) { - ereport(ERROR, + const char* message = "It's not supported to specify distribute key on incremental materialized views"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("It's not supported to specify distribute key on incremental materialized views"))); } @@ -6721,7 +7417,9 @@ RefreshMatViewStmt: n->incremental = $2; n->skipData = !($6); if (n->skipData) { - ereport(ERROR, + const char* message = "WITH NO DATA for materialized views not yet supported"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("WITH NO DATA for materialized views not yet supported"))); } @@ -6739,12 +7437,24 @@ RefreshMatViewStmt: *****************************************************************************/ CreateSeqStmt: - CREATE OptTemp SEQUENCE qualified_name OptSeqOptList + CREATE OptTemp opt_large_seq SEQUENCE qualified_name OptSeqOptList { CreateSeqStmt *n = makeNode(CreateSeqStmt); - $4->relpersistence = $2; - n->sequence = $4; - n->options = $5; + $5->relpersistence = $2; + n->is_large = $3; +#ifdef ENABLE_MULTIPLE_NODES + if (n->is_large) { + const char* message = "large sequence is not supported."; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(ERROR, + (errmodule(MOD_PARSER), + errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("large sequence is not supported."))); + } +#endif + + n->sequence = $5; + n->options = $6; n->ownerId = InvalidOid; /* PGXC_BEGIN */ n->is_serial = false; @@ -6764,6 +7474,18 @@ AlterSeqStmt: n->missing_ok = false; /* PGXC_BEGIN */ n->is_serial = false; +/* PGXC_END */ + $$ = (Node *)n; + } + | ALTER LARGE_P SEQUENCE qualified_name SeqOptList + { + AlterSeqStmt *n = makeNode(AlterSeqStmt); + n->is_large = true; + n->sequence = $4; + n->options = $5; + n->missing_ok = false; +/* PGXC_BEGIN */ + n->is_serial = false; /* PGXC_END */ $$ = (Node *)n; } @@ -6775,7 +7497,19 @@ AlterSeqStmt: n->missing_ok = true; $$ = (Node *)n; } + | ALTER LARGE_P SEQUENCE IF_P EXISTS qualified_name SeqOptList + { + AlterSeqStmt *n = makeNode(AlterSeqStmt); + n->is_large = true; + n->sequence = $6; + n->options = $7; + n->missing_ok = true; + $$ = (Node *)n; + } + ; +opt_large_seq: LARGE_P {$$ = true; } + | /*EMPTY*/ {$$ = false; } ; OptSeqOptList: SeqOptList { $$ = $1; } @@ -6981,7 +7715,9 @@ tblspc_option_elem: { if(0 != pg_strcasecmp($1, "filesystem")) { - ereport(ERROR, + const char* message = "Must use single quoted string for option"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("Must use single quoted string for \"%s\" option.", $1))); } @@ -7633,10 +8369,13 @@ alter_generic_option_elem: generic_option_elem: generic_option_name generic_option_arg { - if (strcmp($1, "error_table") == 0) - ereport(ERROR, + if (strcmp($1, "error_table") == 0) { + const char* message = "Invalid option"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("Invalid option %s", $1))); + } $$ = makeDefElem($1, $2); } @@ -7848,7 +8587,9 @@ CreateForeignTableStmt: #ifdef ENABLE_MOT n->servername = pstrdup("mot_server"); #else - ereport(ERROR, + const char* message = "Foreign server is not specified"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("Foreign server is not specified"))); #endif @@ -7888,7 +8629,9 @@ CreateForeignTableStmt: #ifdef ENABLE_MOT n->servername = pstrdup("mot_server"); #else - ereport(ERROR, + const char* message = "Foreign server is not specified"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("Foreign server is not specified"))); #endif @@ -8205,7 +8948,7 @@ features_clause: List* l = (cr != NULL) ? cr->fields : NULL; Node* node = list_length(l) > 0 ? linitial_node(Node, l) : NULL; if (node != NULL && IsA(node, A_Star)){ - elog(ERROR, "FEATURES clause cannot be *"); + elog(errstate, "FEATURES clause cannot be *"); } } @@ -8227,7 +8970,7 @@ target_clause: List* l = (cr != NULL) ? cr->fields : NULL; Node* node = list_length(l) > 0 ? linitial_node(Node, l) : NULL; if (node != NULL && IsA(node, A_Star)){ - elog(ERROR, "TARGET clause cannot be *"); + elog(errstate, "TARGET clause cannot be *"); } } @@ -8312,7 +9055,9 @@ CreateRlsPolicyStmt: if (strcmp($6, "insert") == 0 || strcmp($6, "merge") == 0) { - ereport(ERROR, + const char* message = "Row Level Security is not yet supported for INSERT and MERGE"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("Row Level Security is not yet supported for INSERT and MERGE"))); } @@ -8415,12 +9160,15 @@ RLSDefaultPermissive: $$ = true; else if (strcmp($2, "restrictive") == 0) $$ = false; - else - ereport(ERROR, + else { + const char* message = "unrecognized row security option"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("unrecognized row security option \"%s\"", $2), errhint("Only PERMISSIVE or RESTRICTIVE policies are supported currently."), parser_errposition(@2))); + } } | /* EMPTY */ { $$ = true; } ; @@ -8785,18 +9533,24 @@ ConstraintAttributeSpec: int newspec = $1 | $2; /* special message for this case */ - if ((newspec & (CAS_NOT_DEFERRABLE | CAS_INITIALLY_DEFERRED)) == (CAS_NOT_DEFERRABLE | CAS_INITIALLY_DEFERRED)) - ereport(ERROR, + if ((newspec & (CAS_NOT_DEFERRABLE | CAS_INITIALLY_DEFERRED)) == (CAS_NOT_DEFERRABLE | CAS_INITIALLY_DEFERRED)) { + const char* message = "constraint declared INITIALLY DEFERRED must be DEFERRABLE"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("constraint declared INITIALLY DEFERRED must be DEFERRABLE"), parser_errposition(@2))); + } /* generic message for other conflicts */ if ((newspec & (CAS_NOT_DEFERRABLE | CAS_DEFERRABLE)) == (CAS_NOT_DEFERRABLE | CAS_DEFERRABLE) || - (newspec & (CAS_INITIALLY_IMMEDIATE | CAS_INITIALLY_DEFERRED)) == (CAS_INITIALLY_IMMEDIATE | CAS_INITIALLY_DEFERRED)) - ereport(ERROR, + (newspec & (CAS_INITIALLY_IMMEDIATE | CAS_INITIALLY_DEFERRED)) == (CAS_INITIALLY_IMMEDIATE | CAS_INITIALLY_DEFERRED)) { + const char* message = "conflicting constraint properties"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("conflicting constraint properties"), parser_errposition(@2))); + } $$ = newspec; } ; @@ -8856,8 +9610,9 @@ CreateAssertStmt: processCASbits($8, @8, "ASSERTION", &n->deferrable, &n->initdeferred, NULL, NULL, yyscanner); - - ereport(ERROR, + const char* message = "CREATE ASSERTION is not yet implemented"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("CREATE ASSERTION is not yet implemented"))); @@ -8873,7 +9628,7 @@ DropAssertStmt: n->arguments = NIL; n->behavior = $4; n->removeType = OBJECT_TRIGGER; /* XXX */ - ereport(ERROR, + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("DROP ASSERTION is not yet implemented"))); $$ = (Node *) n; @@ -8941,7 +9696,7 @@ DefineStmt: n->definition = NIL; $$ = (Node *)n; } - | CREATE TYPE_P any_name AS '(' OptTableFuncElementList ')' + | CREATE TYPE_P any_name as_is '(' OptTableFuncElementList ')' { CompositeTypeStmt *n = makeNode(CompositeTypeStmt); @@ -8950,14 +9705,21 @@ DefineStmt: n->coldeflist = $6; $$ = (Node *)n; } - | CREATE TYPE_P any_name AS ENUM_P '(' opt_enum_val_list ')' + | CREATE TYPE_P any_name as_is TABLE OF func_type + { + TableOfTypeStmt *n = makeNode(TableOfTypeStmt); + n->typname = $3; + n->reftypname = $7; + $$ = (Node *)n; + } + | CREATE TYPE_P any_name as_is ENUM_P '(' opt_enum_val_list ')' { CreateEnumStmt *n = makeNode(CreateEnumStmt); n->typname = $3; n->vals = $7; $$ = (Node *)n; } - | CREATE TYPE_P any_name AS RANGE definition + | CREATE TYPE_P any_name as_is RANGE definition { CreateRangeStmt *n = makeNode(CreateRangeStmt); n->typname = $3; @@ -9440,7 +10202,9 @@ DropStmt: DROP drop_type IF_P EXISTS any_name_list opt_drop_behavior opt_purge n->concurrent = false; n->purge = $7; if (n->removeType != OBJECT_TABLE && n->purge) { - ereport(ERROR, + const char* message = "PURGE clause only allowed in \"DROP TABLE\" statement"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("PURGE clause only allowed in \"DROP TABLE\" statement"), parser_errposition(@7))); @@ -9459,7 +10223,9 @@ DropStmt: DROP drop_type IF_P EXISTS any_name_list opt_drop_behavior opt_purge n->concurrent = false; n->purge = $5; if (n->removeType != OBJECT_TABLE && n->purge) { - ereport(ERROR, + const char* message = "PURGE clause only allowed in \"DROP TABLE\" statement"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("PURGE clause only allowed in \"DROP TABLE\" statement"), parser_errposition(@5))); @@ -9500,6 +10266,7 @@ drop_type: TABLE { $$ = OBJECT_TABLE; } | CONTVIEW { $$ = OBJECT_CONTQUERY; } | STREAM { $$ = OBJECT_STREAM; } | SEQUENCE { $$ = OBJECT_SEQUENCE; } + | LARGE_P SEQUENCE { $$ = OBJECT_LARGE_SEQUENCE; } | VIEW { $$ = OBJECT_VIEW; } | MATERIALIZED VIEW { $$ = OBJECT_MATVIEW; } | INDEX { $$ = OBJECT_INDEX; } @@ -9742,6 +10509,7 @@ comment_type: | SCHEMA { $$ = OBJECT_SCHEMA; } | INDEX { $$ = OBJECT_INDEX; } | SEQUENCE { $$ = OBJECT_SEQUENCE; } + | LARGE_P SEQUENCE { $$ = OBJECT_LARGE_SEQUENCE; } | TABLE { $$ = OBJECT_TABLE; } | DOMAIN_P { $$ = OBJECT_DOMAIN; } | TYPE_P { $$ = OBJECT_TYPE; } @@ -10151,6 +10919,14 @@ privilege: SELECT opt_column_list n->cols = $2; $$ = n; } + | CONNECT opt_column_list + { + AccessPriv *n = makeNode(AccessPriv); + n->priv_name = pstrdup($1); + n->cols = $2; + $$ = n; + } + ; @@ -10182,6 +10958,14 @@ privilege_target: n->objs = $2; $$ = n; } + | LARGE_P SEQUENCE qualified_name_list + { + PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); + n->targtype = ACL_TARGET_OBJECT; + n->objtype = ACL_OBJECT_SEQUENCE; + n->objs = $3; + $$ = n; + } | FOREIGN DATA_P WRAPPER name_list { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); @@ -10206,14 +10990,6 @@ privilege_target: n->objs = $2; $$ = n; } - | PROCEDURE function_with_argtypes_list - { - PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); - n->targtype = ACL_TARGET_OBJECT; - n->objtype = ACL_OBJECT_FUNCTION; - n->objs = $2; - $$ = n; - } | PACKAGE any_name_list { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); @@ -10222,6 +10998,14 @@ privilege_target: n->objs = $2; $$ = n; } + | PROCEDURE function_with_argtypes_list + { + PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); + n->targtype = ACL_TARGET_OBJECT; + n->objtype = ACL_OBJECT_FUNCTION; + n->objs = $2; + $$ = n; + } | DATABASE name_list { PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget)); @@ -10379,7 +11163,9 @@ opt_grant_grant_option: if (isSecurityMode) { /* Do not support this grammar in security mode.*/ - ereport(ERROR, + const char* message = "WITH GRANT OPTION is not supported in security mode."; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("WITH GRANT OPTION is not supported in security mode."))); } @@ -10664,6 +11450,7 @@ opt_index_name: { check_qualified_name($2, yyscanner); $$ = makeRangeVar(NULL, NULL, @1); + const char* message = "improper qualified name (too many dotted names): %s"; switch (list_length($2)) { case 1: @@ -10672,7 +11459,8 @@ opt_index_name: $$->relname = strVal(linitial($2)); break; default: - ereport(ERROR, + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("improper qualified name (too many dotted names): %s", NameListToString(lcons(makeString($1), $2))), @@ -10853,8 +11641,14 @@ CreateFunctionStmt: u_sess->parser_cxt.eaten_declare = false; u_sess->parser_cxt.eaten_begin = false; pg_yyget_extra(yyscanner)->core_yy_extra.include_ora_comment = true; + u_sess->parser_cxt.isCreateFuncOrProc = true; } subprogram_body { + int rc = 0; + rc = CompileWhich(); + if (rc == PLPGSQL_COMPILE_PROC || rc == PLPGSQL_COMPILE_NULL) { + u_sess->plsql_cxt.procedure_first_line = GetLineNumber(t_thrd.postgres_cxt.debug_query_string, @9); + } CreateFunctionStmt *n = makeNode(CreateFunctionStmt); FunctionSources *funSource = (FunctionSources *)$11; n->isOraStyle = true; @@ -10873,16 +11667,17 @@ CreateFunctionStmt: n->withClause = NIL; n->withClause = NIL; n->isProcedure = false; + u_sess->parser_cxt.isCreateFuncOrProc = false; $$ = (Node *)n; } ; CallFuncStmt: CALL func_name '(' ')' { - $$ = makeCallFuncStmt($2,NULL); + $$ = makeCallFuncStmt($2, NULL, enable_out_param_override()); } | CALL func_name '(' callfunc_args ')' { - $$ = makeCallFuncStmt($2,$4); + $$ = makeCallFuncStmt($2, $4, enable_out_param_override()); } ; callfunc_args: func_arg_expr @@ -10900,8 +11695,15 @@ CreateProcedureStmt: u_sess->parser_cxt.eaten_declare = false; u_sess->parser_cxt.eaten_begin = false; pg_yyget_extra(yyscanner)->core_yy_extra.include_ora_comment = true; + u_sess->parser_cxt.isCreateFuncOrProc = true; } subprogram_body { + int rc = 0; + rc = CompileWhich(); + if ((rc == PLPGSQL_COMPILE_PROC || rc == PLPGSQL_COMPILE_NULL) && u_sess->cmd_cxt.CurrentExtensionObject == InvalidOid) { + u_sess->plsql_cxt.procedure_first_line = GetLineNumber(t_thrd.postgres_cxt.debug_query_string, @7); + } + rc = CompileWhich(); CreateFunctionStmt *n = makeNode(CreateFunctionStmt); FunctionSources *funSource = (FunctionSources *)$9; int count = get_outarg_num($5); @@ -10926,18 +11728,20 @@ CreateProcedureStmt: n->options = lappend(n->options, makeDefElem("language", (Node *)makeString("plpgsql"))); n->withClause = NIL; + u_sess->parser_cxt.isCreateFuncOrProc = false; $$ = (Node *)n; } ; CreatePackageStmt: - CREATE opt_or_replace PACKAGE pkg_name invoker_rights as_is {pg_yyget_extra(yyscanner)->core_yy_extra.include_ora_comment = true;} pkg_subprogram + CREATE opt_or_replace PACKAGE pkg_name invoker_rights as_is {pg_yyget_extra(yyscanner)->core_yy_extra.include_ora_comment = true;} { + pg_yyget_extra(yyscanner)->core_yy_extra.in_slash_proc_body = true; + u_sess->plsql_cxt.package_as_line = GetLineNumber(t_thrd.postgres_cxt.debug_query_string, @6); char *pkgNameBegin = NULL; char *pkgNameEnd = NULL; - char *pkgName = NULL; - DefElem *def = NULL; + char *pkgName = NULL; switch (list_length($4)) { case 1: pkgName = strVal(linitial($4)); @@ -10952,32 +11756,139 @@ CreatePackageStmt: parser_yyerror("package name is invalid!"); break; } - pkgNameBegin = (char *)palloc(strlen(pkgName) + 1); - strcpy(pkgNameBegin, pkgName); + pkgNameBegin = (char *)palloc(strlen(pkgName) + 1); + pkgNameEnd = (char *)palloc(strlen(pkgName) + 1); + strcpy(pkgNameBegin, pkgName); pkgNameBegin = pg_strtolower(pkgNameBegin); - def = (DefElem *)lsecond($8); - if (strcmp(def->defname,"name") != 0) - { - parser_yyerror("internal grammer error!"); + + int tok = YYEMPTY; + base_yy_extra_type *yyextra = pg_yyget_extra(yyscanner); + if (yychar == YYEOF || yychar == YYEMPTY) + tok = YYLEX; + else + { + tok = yychar; + yychar = YYEMPTY; + } + int proc_start_pos = yylloc; + u_sess->plsql_cxt.package_first_line = GetLineNumber(t_thrd.postgres_cxt.debug_query_string, yylloc); + + // Scan whole stmt. + List* toks = NULL; + List* positions = NULL; + + while(true) { + if (tok == YYEOF) { + break; + } + + toks = lappend_int(toks, tok); + positions = lappend_int(positions, yylloc); + + if (tok == END_P) { + tok = YYLEX; + // append pkgname into toks + toks = lappend_int(toks, tok); + positions = lappend_int(positions, yylloc); + if (tok == IDENT) { + // append ; into toks + tok = YYLEX; + toks = lappend_int(toks, tok); + positions = lappend_int(positions, yylloc); + + int start_pos = list_nth_int(positions, positions->length - 2); + int end_pos = list_nth_int(positions, positions->length - 1); + StringInfoData name_info; + initStringInfo(&name_info); + appendBinaryStringInfo(&name_info, yyextra->core_yy_extra.scanbuf + start_pos - 1, end_pos - start_pos + 1); + char* pkg_name_temp = GetPkgName(name_info.data); + pkg_name_temp = pg_strtolower(pkg_name_temp); + truncate_identifier(pkg_name_temp, strlen(pkg_name_temp), false); + if (strcmp(pkgNameBegin, pkg_name_temp) == 0) { + strcpy(pkgNameEnd, pkg_name_temp); + pg_yyget_extra(yyscanner)->core_yy_extra.include_ora_comment = false; + break; + } + pfree(name_info.data); + pkg_name_temp = NULL; + } + } + tok = YYLEX; + } + + if (toks == NULL || toks->length < 1) { + parser_yyerror("package spec is not ended correctly"); + } + int last_tok = list_nth_int(toks, toks->length - 1); + if (last_tok != ';') { + parser_yyerror("variable/func/proc declare in package spec is not ended correctly"); + } + + if (toks->length < 2) { + parser_yyerror("package spec is not ended correctly"); + } + last_tok = list_nth_int(toks, toks->length - 2); + if (last_tok != IDENT) { + parser_yyerror("variable/func/proc declare in package spec is not ended correctly"); + } + + // Package spec content. + int name_start_pos = list_nth_int(positions, positions->length - 2); + StringInfoData content_info; + initStringInfo(&content_info); + appendStringInfo(&content_info, "%s", PACKAGE_STR); + appendStringInfo(&content_info, "%s", DECLARE_STR); + appendBinaryStringInfo(&content_info, yyextra->core_yy_extra.scanbuf + proc_start_pos - 1, name_start_pos - proc_start_pos + 1); + char* pkg_spec_str = content_info.data; + + if (yyextra->lookahead_num != 0) { + parser_yyerror("package spec is not ended correctly"); + } else { + yyextra->lookahead_token[0] = tok; + yyextra->lookahead_num = 1; + } + + /* Reset the flag which mark whether we are in slash proc. */ + pg_yyget_extra(yyscanner)->core_yy_extra.in_slash_proc_body = false; + yyextra->core_yy_extra.dolqstart = NULL; + /* + * Add the end location of slash proc to the locationlist for the multi-query + * processed. + */ + yyextra->core_yy_extra.query_string_locationlist = + lappend_int(yyextra->core_yy_extra.query_string_locationlist, yylloc); + + u_sess->plsql_cxt.package_as_line = GetLineNumber(t_thrd.postgres_cxt.debug_query_string, @6); +#ifndef ENABLE_MULTIPLE_NODES + if (u_sess->attr.attr_common.plsql_show_all_error == true) { + if (pkgNameBegin != NULL && pkgNameEnd != NULL) { + if (strcmp(pkgNameBegin, pkgNameEnd) != 0) + { + parser_yyerror("package name end is not match the one begin!"); + } + } else { + parser_yyerror("package name end is not match the one begin!"); + } + } else { + if (strcmp(pkgNameBegin, pkgNameEnd) != 0) + { + parser_yyerror("package name end is not match the one begin!"); + } } - pkgNameEnd = strVal(def->arg); - getPkgName(pkgNameEnd); +#else if (strcmp(pkgNameBegin, pkgNameEnd) != 0) { parser_yyerror("package name end is not match the one begin!"); } +#endif CreatePackageStmt *n = makeNode(CreatePackageStmt); n->replace = $2; n->pkgname = $4; - n->options = $5; - def = (DefElem *)linitial($8); - if (strcmp(def->defname,"decl") != 0) - { - parser_yyerror("internal grammer error!"); - } - n->pkgspec = strVal(def->arg); + n->pkgspec = pkg_spec_str; + n->pkgsecdef = $5; $$ = (Node *)n; } + ; pkg_name: ColId { $$ = list_make1(makeString($1)); } @@ -10989,116 +11900,28 @@ pkg_name: ColId ; invoker_rights: AUTHID DEFINER { - $$ = list_make1(makeDefElem("security", (Node *)makeInteger(TRUE))); + $$ = true; } | AUTHID CURRENT_USER { - $$ = list_make1(makeDefElem("security", (Node *)makeInteger(FALSE))); + $$ = false; } | { - $$ = list_make1(makeDefElem("security", (Node *)makeInteger(TRUE))); + if (PLSQL_SECURITY_DEFINER) { + $$ = true; + } else { + $$ = false; + } } ; -pkg_subprogram: { - int proc_b = 0; - int proc_e = 0; - char *pkg_spec_str = NULL; - char *pkg_name_str = NULL; - int pkg_spec_len = 0; - int tok = YYEMPTY; - int pre_tok = 0; - base_yy_extra_type *yyextra = pg_yyget_extra(yyscanner); - yyextra->core_yy_extra.in_slash_proc_body = true; - /* the token BEGIN_P have been parsed */ - if (yychar == YYEOF || yychar == YYEMPTY) - tok = YYLEX; - else - { - tok = yychar; - yychar = YYEMPTY; - } - proc_b = yylloc; - while(true) - { - if (tok == YYEOF) - parser_yyerror("package spec is not ended correctly"); - if (tok == END_P) - { - pg_yyget_extra(yyscanner)->core_yy_extra.include_ora_comment = false; - tok = YYLEX; - proc_e = yylloc; - if (tok == ';') - { - continue; - } - - tok = YYLEX; - if (tok != ';') - { - parser_yyerror("variable declare in package spec is not ended correctly"); - } - - if (proc_e == 0) { - parser_yyerror("variable declare in package spec is not ended correctly"); - } - - pkg_spec_len = proc_e - proc_b + 1; - pkg_spec_str = (char *)palloc0(pkg_spec_len + DECLARE_LEN + PACKAGE_LEN + 1); - strncpy_s(pkg_spec_str, PACKAGE_LEN + 1, PACKAGE_STR, PACKAGE_LEN); - strncpy_s(pkg_spec_str + PACKAGE_LEN, DECLARE_LEN + 1, DECLARE_STR, DECLARE_LEN); - strncpy_s(pkg_spec_str + DECLARE_LEN + PACKAGE_LEN, pkg_spec_len + 1, - yyextra->core_yy_extra.scanbuf + proc_b - 1, pkg_spec_len); - pkg_spec_str[pkg_spec_len + DECLARE_LEN + PACKAGE_LEN] = '\0'; - proc_b = proc_e; - proc_e = yylloc; - if (proc_e == 0) - { - parser_yyerror("variable declare in package spec is not ended correctly"); - } - pkg_spec_len = proc_e - proc_b + 1 ; - pkg_name_str = (char *)palloc0(pkg_spec_len + 1); - strncpy_s(pkg_name_str, pkg_spec_len + 1, - yyextra->core_yy_extra.scanbuf + proc_b - 1, pkg_spec_len); - pkg_name_str[pkg_spec_len] = '\0'; - while (isspace((unsigned char)*pkg_name_str)) { - pkg_name_str++; - } - truncate_identifier(pkg_name_str, strlen(pkg_name_str), false); - break; - } - tok = YYLEX; - } - pkg_name_str = pg_strtolower(pkg_name_str); - if (yyextra->lookahead_num != 0) - parser_yyerror("package spec is not ended correctly"); - else - { - yyextra->lookahead_token[0] = tok; - yyextra->lookahead_num = 1; - } - /* Reset the flag which mark whether we are in slash proc. */ - yyextra->core_yy_extra.in_slash_proc_body = false; - yyextra->core_yy_extra.dolqstart = NULL; - /* - * Add the end location of slash proc to the locationlist for the multi-query - * processed. - */ - yyextra->core_yy_extra.query_string_locationlist = - lappend_int(yyextra->core_yy_extra.query_string_locationlist, yylloc); - $$ = list_concat(list_make1(makeDefElem("decl", (Node *)makeString(pkg_spec_str))), - list_make1(makeDefElem("name", (Node *)makeString(pkg_name_str)))); - } - ; - - pkg_body_subprogram: { int proc_b = 0; int proc_e = 0; - char *pkg_body_str = NULL; - char *pkg_name_str = NULL; + char *pkg_body_str = NULL; + char *pkg_name_str = NULL; int pkg_name_len = 0; int pkg_body_len = 0; int instantiation_start = 0; @@ -11106,6 +11929,8 @@ pkg_body_subprogram: { int block_level = 0; int tok = YYEMPTY; int pre_tok_loc = 0; + int pre_tok = 0; + int pre_pre_tok = 0; bool pkg_end = true; char* instantiation_str = NULL; base_yy_extra_type *yyextra = pg_yyget_extra(yyscanner); @@ -11123,11 +11948,20 @@ pkg_body_subprogram: { yychar = YYEMPTY; } proc_b = yylloc; + u_sess->plsql_cxt.package_first_line = GetLineNumber(t_thrd.postgres_cxt.debug_query_string, yylloc); + + List* toks = NULL; + List* positions = NULL; + while(true) { if (tok == YYEOF) { - parser_yyerror("package is not ended correctly"); + break; } + + toks = lappend_int(toks, tok); + positions = lappend_int(positions, yylloc); + if (tok == PROCEDURE || tok == FUNCTION) { in_procedure = true; } @@ -11144,6 +11978,16 @@ pkg_body_subprogram: { pg_yyget_extra(yyscanner)->core_yy_extra.include_ora_comment = false; tok = YYLEX; proc_e = yylloc; + + toks = lappend_int(toks, tok); + positions = lappend_int(positions, yylloc); + /* If there is a comment before END_P, check pre_pre_tok */ + if ((pre_tok != ';' && pre_tok != BEGIN_P && pre_tok != 0 && pre_tok != COMMENTSTRING) || + (pre_tok == COMMENTSTRING && pre_pre_tok != 0 && pre_pre_tok != ';' && pre_pre_tok != BEGIN_P)) { + continue; + } else if (block_level == 0 && tok != ';') { + in_procedure = false; + } if (tok == ';') { block_level = block_level - 1; @@ -11158,75 +12002,97 @@ pkg_body_subprogram: { continue; } tok = YYLEX; + + toks = lappend_int(toks, tok); + positions = lappend_int(positions, yylloc); + if (tok != ';' && tok != 0) { continue; - } else if (tok == 0){ + } else if (tok == 0) { parser_yyerror("package is not ended correctly"); + break; } - if (proc_e == 0) + if (proc_e == 0) { parser_yyerror("variable declare in package is not ended correctly"); - if (instantiation_start == 0) { - pkg_body_len = proc_e - proc_b + 1; - pkg_body_str = (char *)palloc0(pkg_body_len + DECLARE_LEN + PACKAGE_LEN + 1); - strncpy_s(pkg_body_str, PACKAGE_LEN + 1, PACKAGE_STR, PACKAGE_LEN); - strncpy_s(pkg_body_str + PACKAGE_LEN, DECLARE_LEN + 1, DECLARE_STR, DECLARE_LEN); - strncpy_s(pkg_body_str + DECLARE_LEN + PACKAGE_LEN, pkg_body_len + 1, - yyextra->core_yy_extra.scanbuf + proc_b - 1, pkg_body_len); - pkg_body_str[pkg_body_len + DECLARE_LEN + PACKAGE_LEN] = '\0'; - proc_b = proc_e; - proc_e = yylloc; - if (proc_e == 0) - parser_yyerror("variable declare in package spec is not ended correctly"); - pkg_name_len = proc_e - proc_b + 1 ; - pkg_name_str = (char *)palloc0(pkg_name_len + 1); - strncpy_s(pkg_name_str, pkg_name_len + 1, - yyextra->core_yy_extra.scanbuf + proc_b - 1, pkg_name_len); - pkg_name_str[pkg_name_len] = '\0'; - while (isspace((unsigned char)*pkg_name_str)) { - pkg_name_str++; - } - truncate_identifier(pkg_name_str, strlen(pkg_name_str), false); - break; - } else { - int proc_end_all = proc_e; - proc_e = instantiation_start; - pkg_body_len = proc_e - proc_b + 1; - pkg_body_str = (char *)palloc0(pkg_body_len + DECLARE_LEN + PACKAGE_LEN + END_LEN + 2); - strncpy_s(pkg_body_str, PACKAGE_LEN + 1, PACKAGE_STR, PACKAGE_LEN); - strncpy_s(pkg_body_str + PACKAGE_LEN, DECLARE_LEN + 1, DECLARE_STR, DECLARE_LEN); - strncpy_s(pkg_body_str + DECLARE_LEN + PACKAGE_LEN, pkg_body_len + 1, - yyextra->core_yy_extra.scanbuf + proc_b - 1, pkg_body_len); - strncpy_s(pkg_body_str + DECLARE_LEN + PACKAGE_LEN + pkg_body_len, END_LEN + 1, - END_STR, END_LEN); - pkg_body_str[pkg_body_len + DECLARE_LEN + PACKAGE_LEN + END_LEN] = '\0'; - proc_b = proc_end_all; - proc_e = yylloc; - if (proc_e == 0) - parser_yyerror("variable declare in package spec is not ended correctly"); - pkg_name_len = proc_e - proc_b + 1 ; - pkg_name_str = (char *)palloc0(pkg_name_len + 1); - strncpy_s(pkg_name_str, pkg_name_len + 1, - yyextra->core_yy_extra.scanbuf + proc_b - 1, pkg_name_len); - pkg_name_str[pkg_name_len] = '\0'; - while (isspace((unsigned char)*pkg_name_str)) { - pkg_name_str++; - } - truncate_identifier(pkg_name_str, strlen(pkg_name_str), false); - instantiation_end = pre_tok_loc; - int pkg_instantiation_len = instantiation_end - instantiation_start; - instantiation_str = (char *)palloc0(INSTANTIATION_LEN + pkg_instantiation_len + END_LEN + 2); - strncpy_s(instantiation_str, INSTANTIATION_LEN + 1, INSTANTIATION_STR, INSTANTIATION_LEN); - strncpy_s(instantiation_str + INSTANTIATION_LEN, pkg_instantiation_len + 1, - yyextra->core_yy_extra.scanbuf + instantiation_start - 1, pkg_instantiation_len); - strncpy_s(instantiation_str + INSTANTIATION_LEN + pkg_instantiation_len, END_LEN + 1 , END_STR, END_LEN); - instantiation_str[INSTANTIATION_LEN + pkg_instantiation_len + END_LEN] = '\0'; - break; - } + break; + } + break; } + /* When multiple lines are commented out, pre_pre_tok should not is COMMENTSTRING, + * but should be displayed as the tok before the COMMENTSTRING start. + */ + if (tok != COMMENTSTRING || pre_tok != COMMENTSTRING) { + pre_pre_tok = pre_tok; + } + pre_tok = tok; tok = YYLEX; pre_tok_loc = yylloc; } + + if (toks == NULL || toks->length < 1) { + parser_yyerror("package is not ended correctly"); + } + int last_tok = list_nth_int(toks, toks->length - 1); + if (last_tok != ';') { + parser_yyerror("package is not ended correctly"); + } + + if (toks->length < 2) { + parser_yyerror("package is not ended correctly"); + } + last_tok = list_nth_int(toks, toks->length - 2); + if (last_tok != IDENT) { + parser_yyerror("package is not ended correctly"); + } + + // package name. + int name_start_pos = list_nth_int(positions, positions->length - 2); + int name_end_pos = list_nth_int(positions, positions->length -1); + StringInfoData name_info; + initStringInfo(&name_info); + appendBinaryStringInfo(&name_info, yyextra->core_yy_extra.scanbuf + name_start_pos - 1, name_end_pos - name_start_pos + 1); + pkg_name_str = GetPkgName(name_info.data); pkg_name_str = pg_strtolower(pkg_name_str); + truncate_identifier(pkg_name_str, strlen(pkg_name_str), false); + + if (instantiation_start == 0) { + pkg_body_len = proc_e - proc_b + 1; + pkg_body_str = (char *)palloc0(pkg_body_len + DECLARE_LEN + PACKAGE_LEN + 1); + strncpy_s(pkg_body_str, PACKAGE_LEN + 1, PACKAGE_STR, PACKAGE_LEN); + strncpy_s(pkg_body_str + PACKAGE_LEN, DECLARE_LEN + 1, DECLARE_STR, DECLARE_LEN); + strncpy_s(pkg_body_str + DECLARE_LEN + PACKAGE_LEN, pkg_body_len + 1, + yyextra->core_yy_extra.scanbuf + proc_b - 1, pkg_body_len); + pkg_body_str[pkg_body_len + DECLARE_LEN + PACKAGE_LEN] = '\0'; + proc_b = proc_e; + proc_e = yylloc; + if (proc_e == 0) + parser_yyerror("variable declare in package spec is not ended correctly"); + } else { + int proc_end_all = proc_e; + proc_e = instantiation_start; + pkg_body_len = proc_e - proc_b + 1; + pkg_body_str = (char *)palloc0(pkg_body_len + DECLARE_LEN + PACKAGE_LEN + END_LEN + 2); + strncpy_s(pkg_body_str, PACKAGE_LEN + 1, PACKAGE_STR, PACKAGE_LEN); + strncpy_s(pkg_body_str + PACKAGE_LEN, DECLARE_LEN + 1, DECLARE_STR, DECLARE_LEN); + strncpy_s(pkg_body_str + DECLARE_LEN + PACKAGE_LEN, pkg_body_len + 1, + yyextra->core_yy_extra.scanbuf + proc_b - 1, pkg_body_len); + strncpy_s(pkg_body_str + DECLARE_LEN + PACKAGE_LEN + pkg_body_len, END_LEN + 1, + END_STR, END_LEN); + pkg_body_str[pkg_body_len + DECLARE_LEN + PACKAGE_LEN + END_LEN] = '\0'; + proc_b = proc_end_all; + proc_e = yylloc; + if (proc_e == 0) + parser_yyerror("variable declare in package spec is not ended correctly"); + instantiation_end = pre_tok_loc; + int pkg_instantiation_len = instantiation_end - instantiation_start; + instantiation_str = (char *)palloc0(INSTANTIATION_LEN + pkg_instantiation_len + END_LEN + 2); + strncpy_s(instantiation_str, INSTANTIATION_LEN + 1, INSTANTIATION_STR, INSTANTIATION_LEN); + strncpy_s(instantiation_str + INSTANTIATION_LEN, pkg_instantiation_len + 1, + yyextra->core_yy_extra.scanbuf + instantiation_start - 1, pkg_instantiation_len); + strncpy_s(instantiation_str + INSTANTIATION_LEN + pkg_instantiation_len, END_LEN + 1 , END_STR, END_LEN); + instantiation_str[INSTANTIATION_LEN + pkg_instantiation_len + END_LEN] = '\0'; + } + if (yyextra->lookahead_num != 0) parser_yyerror("package spec is not ended correctly"); else @@ -11259,8 +12125,9 @@ CreatePackageBodyStmt: { char *pkgNameBegin = NULL; char *pkgNameEnd = NULL; - char *pkgName = NULL; + char *pkgName = NULL; DefElem *def = NULL; + u_sess->plsql_cxt.package_as_line = GetLineNumber(t_thrd.postgres_cxt.debug_query_string, @6); switch (list_length($5)) { case 1: pkgName = strVal(linitial($5)); @@ -11275,8 +12142,8 @@ CreatePackageBodyStmt: parser_yyerror("package name is invalid!"); break; } - pkgNameBegin = (char *)palloc(strlen(pkgName) + 1); - strcpy(pkgNameBegin, pkgName); + pkgNameBegin = (char *)palloc(strlen(pkgName) + 1); + strcpy(pkgNameBegin, pkgName); pkgNameBegin = pg_strtolower(pkgNameBegin); int length = list_length($8); def = (DefElem *)lsecond($8); @@ -11284,12 +12151,29 @@ CreatePackageBodyStmt: { parser_yyerror("internal grammer error!"); } - pkgNameEnd = strVal(def->arg); - getPkgName(pkgNameEnd); + pkgNameEnd = GetPkgName(strVal(def->arg)); +#ifndef ENABLE_MULTIPLE_NODES + if (u_sess->attr.attr_common.plsql_show_all_error == true) { + if (pkgNameBegin != NULL && pkgNameEnd != NULL) { + if (strcmp(pkgNameBegin, pkgNameEnd) != 0) + { + parser_yyerror("package name end is not match the one begin!"); + } + } else { + parser_yyerror("package name end is not match the one begin!"); + } + } else { + if (strcmp(pkgNameBegin, pkgNameEnd) != 0) + { + parser_yyerror("package name end is not match the one begin!"); + } + } +#else if (strcmp(pkgNameBegin, pkgNameEnd) != 0) { parser_yyerror("package name end is not match the one begin!"); } +#endif CreatePackageBodyStmt *n = makeNode(CreatePackageBodyStmt); n->replace = $2; n->pkgname = $5; @@ -11337,6 +12221,11 @@ as_is: | IS ; +as_empty: + AS + | /*EMPTY*/ { $$ = NULL; } + ; + /* * func_args_with_defaults is separate because we only want to accept * defaults in CREATE FUNCTION, not in ALTER etc. @@ -11445,21 +12334,45 @@ func_return: * is next best choice. */ func_type: Typename { $$ = $1; } - | type_function_name attrs '%' TYPE_P - { - $$ = makeTypeNameFromNameList(lcons(makeString($1), $2)); - $$->pct_type = true; - $$->location = @1; - $$->end_location = @4 + TYPE_LEN; - } - | SETOF type_function_name attrs '%' TYPE_P - { - $$ = makeTypeNameFromNameList(lcons(makeString($2), $3)); - $$->pct_type = true; - $$->setof = TRUE; - $$->location = @2; - $$->end_location = @5 + TYPE_LEN; - } + | type_function_name attrs '%' ROWTYPE_P opt_array_bounds + { + $$ = makeTypeNameFromNameList(lcons(makeString($1), $2)); + $$->location = @1; + $$->arrayBounds = $5; + $$->pct_rowtype = true; + } + | type_function_name '%' ROWTYPE_P opt_array_bounds + { + $$ = makeTypeName($1); + $$->location = @1; + $$->arrayBounds = $4; + $$->pct_rowtype = true; + } + | type_function_name attrs '%' TYPE_P opt_array_bounds + { + $$ = makeTypeNameFromNameList(lcons(makeString($1), $2)); + $$->pct_type = true; + $$->location = @1; + $$->end_location = @4 + TYPE_LEN; + $$->arrayBounds = $5; + } + | type_function_name '%' TYPE_P opt_array_bounds + { + $$ = makeTypeName($1); + $$->pct_type = true; + $$->location = @1; + $$->end_location = @3 + TYPE_LEN; + $$->arrayBounds = $4; + } + | SETOF type_function_name attrs '%' TYPE_P opt_array_bounds + { + $$ = makeTypeNameFromNameList(lcons(makeString($2), $3)); + $$->pct_type = true; + $$->setof = TRUE; + $$->location = @2; + $$->end_location = @5 + TYPE_LEN; + $$->arrayBounds = $6; + } ; func_arg_with_default: @@ -11638,7 +12551,8 @@ subprogram_body: { bool add_declare = true; /* Mark if need to add a DECLARE */ FunctionSources *funSrc = NULL; char *proc_header_str = NULL; - + int rc = 0; + rc = CompileWhich(); int tok = YYEMPTY; int pre_tok = 0; base_yy_extra_type *yyextra = pg_yyget_extra(yyscanner); @@ -11664,12 +12578,17 @@ subprogram_body: { /* Save the beginning of procedure body. */ proc_b = yylloc; - + if (rc != PLPGSQL_COMPILE_NULL && rc != PLPGSQL_COMPILE_PROC) { + u_sess->plsql_cxt.procedure_first_line = GetLineNumber(yyextra->core_yy_extra.scanbuf, yylloc); + } /* start procedure body scan */ while(true) { - if (tok == YYEOF) + if (tok == YYEOF) { + proc_e = yylloc; parser_yyerror("subprogram body is not ended correctly"); + break; + } if (tok == BEGIN_P) blocklevel++; @@ -11702,8 +12621,10 @@ subprogram_body: { if (tok == ';' ) { - if (yyextra->lookahead_num != 0) + if (yyextra->lookahead_num != 0) { parser_yyerror("subprogram body is not ended correctly"); + break; + } else { yyextra->lookahead_token[0] = tok; @@ -11728,8 +12649,9 @@ subprogram_body: { tok = YYLEX; } - if (proc_e == 0) - parser_yyerror("subprogram body is not ended correctly"); + if (proc_e == 0) { + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("subprogram body is not ended correctly"))); + } proc_body_len = proc_e - proc_b + 1 ; @@ -12053,7 +12975,9 @@ RemoveOperStmt: oper_argtypes: '(' Typename ')' { - ereport(ERROR, + const char* message = "missing argument"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("missing argument"), errhint("Use NONE to denote the missing argument of a unary operator."), @@ -12485,6 +13409,16 @@ RenameStmt: ALTER AGGREGATE func_name aggr_args RENAME TO name n->missing_ok = false; $$ = (Node *)n; } + | ALTER LARGE_P SEQUENCE qualified_name RENAME TO name + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_LARGE_SEQUENCE; + n->relation = $4; + n->subname = NULL; + n->newname = $7; + n->missing_ok = false; + $$ = (Node *)n; + } | ALTER SEQUENCE IF_P EXISTS qualified_name RENAME TO name { RenameStmt *n = makeNode(RenameStmt); @@ -12495,6 +13429,16 @@ RenameStmt: ALTER AGGREGATE func_name aggr_args RENAME TO name n->missing_ok = true; $$ = (Node *)n; } + | ALTER LARGE_P SEQUENCE IF_P EXISTS qualified_name RENAME TO name + { + RenameStmt *n = makeNode(RenameStmt); + n->renameType = OBJECT_LARGE_SEQUENCE; + n->relation = $6; + n->subname = NULL; + n->newname = $9; + n->missing_ok = true; + $$ = (Node *)n; + } | ALTER VIEW qualified_name RENAME TO name { RenameStmt *n = makeNode(RenameStmt); @@ -13015,6 +13959,15 @@ AlterObjectSchemaStmt: n->missing_ok = false; $$ = (Node *)n; } + | ALTER LARGE_P SEQUENCE qualified_name SET SCHEMA name + { + AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); + n->objectType = OBJECT_LARGE_SEQUENCE; + n->relation = $4; + n->newschema = $7; + n->missing_ok = false; + $$ = (Node *)n; + } | ALTER SEQUENCE IF_P EXISTS qualified_name SET SCHEMA name { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); @@ -13024,6 +13977,15 @@ AlterObjectSchemaStmt: n->missing_ok = true; $$ = (Node *)n; } + | ALTER LARGE_P SEQUENCE IF_P EXISTS qualified_name SET SCHEMA name + { + AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); + n->objectType = OBJECT_LARGE_SEQUENCE; + n->relation = $6; + n->newschema = $9; + n->missing_ok = true; + $$ = (Node *)n; + } | ALTER VIEW qualified_name SET SCHEMA name { AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt); @@ -13872,19 +14834,25 @@ ViewStmt: CREATE OptTemp VIEW qualified_name opt_column_list opt_reloptions opt_check_option: WITH CHECK OPTION { - ereport(ERROR, + const char* message = "WITH CHECK OPTION is not implemented"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("WITH CHECK OPTION is not implemented"))); } | WITH CASCADED CHECK OPTION { - ereport(ERROR, + const char* message = "WITH CHECK OPTION is not implemented"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("WITH CHECK OPTION is not implemented"))); } | WITH LOCAL CHECK OPTION { - ereport(ERROR, + const char* message = "WITH CHECK OPTION is not implemented"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("WITH CHECK OPTION is not implemented"))); } @@ -13902,10 +14870,301 @@ LoadStmt: LOAD file_name { LoadStmt *n = makeNode(LoadStmt); n->filename = $2; + n->is_load_data = false; $$ = (Node *)n; } + + | LOAD {u_sess->parser_cxt.is_load_copy = true;} opt_load_data opt_load_data_options_list load_type_set qualified_name load_oper_table_type load_table_options_list + { + LoadStmt *n = makeNode(LoadStmt); + n->is_load_data = true; + n->pre_load_options = NULL; + n->load_options = $4; + n->load_type = (LOAD_DATA_TYPE)GetLoadType($5, $7); + n->relation = $6; + n->rel_options = $8; + $$ = (Node *)n; + u_sess->parser_cxt.is_load_copy = false; + } + | OPTIONS '(' load_options_list ')' LOAD {u_sess->parser_cxt.is_load_copy = true;} opt_load_data opt_load_data_options_list load_type_set qualified_name load_oper_table_type load_table_options_list + { + LoadStmt *n = makeNode(LoadStmt); + n->is_load_data = true; + n->pre_load_options = $3; + n->load_options = $8; + n->load_type = (LOAD_DATA_TYPE)GetLoadType($9, $11); + n->relation = $10; + n->rel_options = $12; + $$ = (Node *)n; + u_sess->parser_cxt.is_load_copy = false; + } + ; + +load_options_list: + load_options_item { $$ = list_make1($1); } + | load_options_list ',' load_options_item { $$ = lappend($1, $3); } + | /* EMPTY */ { $$ = NULL; } + ; + +load_options_item: + ERRORS '=' NumericOnly { $$ = makeDefElem("errors", (Node *)$3); } + | SKIP '=' NumericOnly { $$ = makeDefElem("skip", (Node *)$3); } + | DATA_P '=' load_quote_str { $$ = makeDefElem("data", (Node *)makeString($3)); + } + ; + +opt_load_data: + DATA_P { } + | /* EMPTY */ { } + ; + +opt_load_data_options_list: + opt_load_data_options_list opt_load_data_options_item + { + $$ = lappend($1, $2); + } + | /* EMPTY */ { $$ = NIL; } + ; + +opt_load_data_options_item: + INFILE load_quote_str + { + $$ = makeDefElem("infile", (Node *)makeString($2)); + } + | CHARACTERSET load_quote_str + { + $$ = makeDefElem("characterset", (Node *)makeString($2)); + } + ; + +load_oper_table_type: + TRUNCATE + { + $$ = LOAD_DATA_TRUNCATE; + } + | APPEND + { + $$ = LOAD_DATA_APPEND; + } + | REPLACE + { + $$ = LOAD_DATA_REPLACE; + } + | INSERT + { + $$ = LOAD_DATA_INSERT; + } + | /* EMPTY */ { $$ = LOAD_DATA_UNKNOWN; } + ; + +load_type_set: + load_oper_table_type INTO TABLE + { + $$ = $1; + } + ; + +load_table_options_list: + load_table_options_list load_table_options_item + { + $$ = lappend($1, $2); + } + | /* EMPTY */ { $$ = NIL; } + ; + +load_table_options_item: + TRAILING NULLCOLS + { + $$ = makeDefElem("trailing_nullcols", (Node *)makeInteger(TRUE)); + } + | FIELDS CSV + { + $$ = makeDefElem("fields_csv", (Node *)makeInteger(TRUE)); + } + | FIELDS TERMINATED load_quote_str + { + $$ = makeDefElem("fields_terminated_by", (Node *)makeString($3)); + } + | FIELDS TERMINATED BY load_quote_str + { + $$ = makeDefElem("fields_terminated_by", (Node *)makeString($4)); + } + | OPTIONALLY ENCLOSED BY load_quote_str + { + $$ = makeDefElem("optionally_enclosed_by", (Node *)makeString($4)); + } + | load_when_option + { + $$ = $1; + } + | '(' load_column_expr_list ')' + { + $$ = MakeDefElemWithLoc("fields_list", (Node *)$2, @1, @3); + } + ; + +load_column_expr_list: + load_column_expr_item + { + $$ = list_make1($1); + } + | load_column_expr_list ',' load_column_expr_item + { + $$ = lappend($1, $3); + } + ; + +load_column_expr_item: + ColId CONSTANT load_quote_str + { + SqlLoadColExpr* n = (SqlLoadColExpr*)MakeSqlLoadNode($1); + n->const_info = makeStringConst($3, @3); + $$ = (Node*)n; + } + | ColId load_col_sequence + { + SqlLoadColExpr* n = (SqlLoadColExpr*)MakeSqlLoadNode($1); + n->sequence_info = $2; + $$ = (Node*)n; + } + | ColId FILLER load_col_data_type + { + SqlLoadColExpr* n = (SqlLoadColExpr*)MakeSqlLoadNode($1); + n->is_filler = true; + $$ = (Node*)n; + } + | ColId load_col_scalar_spec + { + SqlLoadColExpr* n = (SqlLoadColExpr*)MakeSqlLoadNode($1); + n->scalar_spec = $2; + $$ = (Node*)n; + } + ; + +load_col_sequence_item_sart: + Iconst { $$ = $1; } + | FCONST { $$ = SequenceStrGetInt64($1); } + | MAXVALUE { $$ = LOADER_SEQUENCE_MAX_FLAG; } + | ROWS { $$ = LOADER_SEQUENCE_COUNT_FLAG; } ; +load_col_sequence: + SEQUENCE '(' load_col_sequence_item_sart column_sequence_item_step ')' + { + SqlLoadSequInfo* n = makeNode(SqlLoadSequInfo); + n->start = $3; + n->step = $4; + $$ = (Node *)n; + } + ; + +load_col_scalar_spec: + load_col_position_spec load_col_data_type load_col_nullif_spec load_col_sql_str + { + SqlLoadScalarSpec* n = makeNode(SqlLoadScalarSpec); + n->position_info = $1; + n->typname = $2; + n->sqlstr = $4; + n->nullif_col = $3; + $$ = (Node*)n; + } + ; + +load_col_position_spec: + POSITION '(' Iconst '-' Iconst ')' + { + SqlLoadColPosInfo *n = makeNode(SqlLoadColPosInfo); + n->start = $3; + n->end = $5; + $$ = (Node *)n; + } + | /* EMPTY */ { $$ = NULL; } + ; + +load_col_nullif_spec: + NULLIF '(' ColId '=' BLANKS ')' + { + $$ = $3; + } + | /* EMPTY */ { $$ = NULL; } + ; + +load_col_data_type: + Numeric { $$ = $1; } + | Numeric EXTERNAL { $$ = $1; } + | Character { $$ = $1; } + | ConstDatetime { $$ = $1; } + | /*EMPTY*/ { $$ = NULL; } + ; + +load_col_sql_str: + IDENT + { + $$ = makeStringConst($1, @1); + } + | /* EMPTY */ { $$ = NULL; } + ; + +load_when_option: + WHEN load_when_option_list + { + $$ = MakeDefElemWithLoc("when_expr", (Node *)$2, @1, @2); + } + +load_when_option_list: + load_when_option_item + { + $$ = list_make1($1); + } + | load_when_option_list AND load_when_option_item + { + $$ = lappend($1, $3); + } + ; + +load_when_option_item: + '(' Iconst '-' Iconst ')' masking_policy_condition_operator load_quote_str + { + LoadWhenExpr *n = makeNode(LoadWhenExpr); + n->whentype = 0; + n->start = $2; + n->end = $4; + n->oper = $6; + n->val = $7; + $$ = (Node*)n; + } + | '(' Iconst ')' masking_policy_condition_operator load_quote_str + { + LoadWhenExpr *n = makeNode(LoadWhenExpr); + n->whentype = 0; + n->start = $2; + n->end = $2; + n->oper = $4; + n->val = $5; + $$ = (Node*)n; + } + | ColId masking_policy_condition_operator load_quote_str + { + LoadWhenExpr *n = makeNode(LoadWhenExpr); + n->whentype = 1; + n->start = -1; + n->end = -1; + n->attname = $1; + n->oper = $2; + n->val = $3; + $$ = (Node*)n; + } + ; + +/* + three string formats used to be compatible with oracle + 1. string + 2. 'string' + 3. "string" +*/ +load_quote_str: + IDENT { $$ = $1; } + | Sconst { $$ = $1; } /***************************************************************************** * @@ -13978,7 +15237,9 @@ createdb_opt_item: { if (checkCompArgs($3) == false) { - ereport(ERROR, + const char* message = "Compatibility args %s is invalid\n"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("Compatibility args %s is invalid\n", $3))); } @@ -14438,12 +15699,16 @@ VacuumStmt: { if (n->options != options) { - ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), + const char* message = "COMPACT can only be used with VACUUM FULL"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("COMPACT can only be used with VACUUM FULL"))); } if ($3) { - ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), + const char* message = "COMPACT can not be used with FREEZE"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("COMPACT can not be used with FREEZE"))); } } @@ -14469,12 +15734,16 @@ VacuumStmt: { if (n->options != options) { - ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), + const char* message = "COMPACT can only be used with VACUUM FULL"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("COMPACT can only be used with VACUUM FULL"))); } if ($3) { - ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), + const char* message = "COMPACT can not be used with FREEZE"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("COMPACT can not be used with FREEZE"))); } } @@ -14494,7 +15763,9 @@ VacuumStmt: n->options |= VACOPT_VERBOSE; if ($5) { - ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), + const char* message = "COMPACT can not be used with PARTITION"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("COMPACT can not be used with PARTITION"))); } n->freeze_min_age = $3 ? 0 : -1; @@ -14514,7 +15785,9 @@ VacuumStmt: n->options |= VACOPT_VERBOSE; if ($5) { - ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), + const char* message = "COMPACT can not be used with ANALYZE"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("COMPACT can not be used with ANALYZE"))); } n->freeze_min_age = $3 ? 0 : -1; @@ -16463,7 +17736,9 @@ ExecuteStmt: EXECUTE name execute_param_clause /* cram additional flags into the IntoClause */ $4->rel->relpersistence = $2; #ifdef PGXC - ereport(ERROR, + const char* message = "CREATE TABLE AS EXECUTE not yet supported"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("CREATE TABLE AS EXECUTE not yet supported"))); #endif @@ -16527,13 +17802,17 @@ InsertStmt: opt_with_clause INSERT hint_string INTO qualified_name insert_rest r | opt_with_clause INSERT hint_string INTO qualified_name insert_rest upsert_clause returning_clause { if ($8 != NIL) { - ereport(ERROR, + const char* message = "RETURNING clause is not yet supported whithin INSERT ON DUPLICATE KEY UPDATE statement."; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errmodule(MOD_PARSER), errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("RETURNING clause is not yet supported whithin INSERT ON DUPLICATE KEY UPDATE statement."))); } if ($1 != NULL) { - ereport(ERROR, + const char* message = "WITH clause is not yet supported whithin INSERT ON DUPLICATE KEY UPDATE statement."; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errmodule(MOD_PARSER), errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("WITH clause is not yet supported whithin INSERT ON DUPLICATE KEY UPDATE statement."))); @@ -16551,7 +17830,9 @@ InsertStmt: opt_with_clause INSERT hint_string INTO qualified_name insert_rest r foreach (c, cols) { ResTarget *rt = (ResTarget *)lfirst(c); if (rt->indirection != NIL) { - ereport(ERROR, + const char* message = "Try assign a composite or an array expression to column "; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errmodule(MOD_PARSER), errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("Subfield name or array subscript of column \"%s\" " @@ -16681,17 +17962,17 @@ upsert_clause: /* check subquery in set clause*/ ListCell* cell = NULL; ResTarget* res = NULL; -#ifdef ENABLE_MULTIPLE_NODES foreach (cell, $5) { res = (ResTarget*)lfirst(cell); if (IsA(res->val,SubLink)) { - ereport(ERROR, + const char* message = "Update with subquery is not yet supported whithin INSERT ON DUPLICATE KEY UPDATE statement."; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errmodule(MOD_PARSER), - errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("Update with subquery is not yet supported whithin INSERT ON DUPLICATE KEY UPDATE statement."))); + errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("Update with subquery is not yet supported whithin INSERT ON DUPLICATE KEY UPDATE statement."))); } } -#endif UpsertClause *uc = makeNode(UpsertClause); uc->targetList = $5; @@ -16847,7 +18128,9 @@ single_set_clause: /* only allow col.*, col[...], col */ if (nfields > 1) { - ereport(ERROR, + const char* message = "only allow column name within VALUES"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("only allow column name within VALUES"), parser_errposition(@5))); @@ -16870,11 +18153,14 @@ multiple_set_clause: * into the destination ResTargets. XXX this approach * cannot work for general row expressions as sources. */ - if (list_length($2) != list_length($5)) - ereport(ERROR, + if (list_length($2) != list_length($5)) { + const char* message = "number of columns does not match number of values"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("number of columns does not match number of values"), parser_errposition(@1))); + } forboth(col_cell, $2, val_cell, $5) { ResTarget *res_col = (ResTarget *) lfirst(col_cell); @@ -16897,11 +18183,13 @@ multiple_set_clause: select->groupClause = $12; select->havingClause = $13; - if (list_length($2) != list_length($9)) - ereport(ERROR, + if (list_length($2) != list_length($9)) { + const char* message = "number of columns does not match number of values"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("number of columns does not match number of values"))); - + } ParseUpdateMultiSet($2, select, yyscanner); $$ = $2; @@ -17055,7 +18343,9 @@ cursor_options: /*EMPTY*/ { $$ = 0; } | cursor_options NO SCROLL { $$ = $1 | CURSOR_OPT_NO_SCROLL; } | cursor_options SCROLL { - ereport(ERROR, + const char* message = "SCROLL CURSOR is not yet supported"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("SCROLL CURSOR is not yet supported."))); $$ = $1 | CURSOR_OPT_SCROLL; @@ -17063,7 +18353,9 @@ cursor_options: /*EMPTY*/ { $$ = 0; } | cursor_options BINARY { $$ = $1 | CURSOR_OPT_BINARY; } | cursor_options INSENSITIVE { - ereport(ERROR, + const char* message = "INSENSITIVE CURSOR is not yet supported."; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("INSENSITIVE CURSOR is not yet supported."))); $$ = $1 | CURSOR_OPT_INSENSITIVE; @@ -17141,6 +18433,37 @@ select_with_parens: */ select_no_parens: simple_select { $$ = $1; } + | select_clause siblings_clause + { + SelectStmt* stmt = (SelectStmt *) $1; + StartWithClause* swc = (StartWithClause*) stmt->startWithClause; + if (swc == NULL) { + ereport(errstate, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("order siblings by clause can only be used on start-with qualifed relations"), + parser_errposition(@2))); + } else { + swc->siblingsOrderBy = $2; + } + $$ = $1; + } + | select_clause siblings_clause sort_clause + { + SelectStmt* stmt = (SelectStmt *) $1; + insertSelectOptions((SelectStmt *) $1, $3, NIL, + NULL, NULL, NULL, + yyscanner); + StartWithClause* swc = (StartWithClause*) stmt->startWithClause; + if (swc == NULL) { + ereport(errstate, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("order siblings by clause can only be used on start-with qualifed relations"), + parser_errposition(@2))); + } else { + swc->siblingsOrderBy = $2; + } + $$ = $1; + } | select_clause sort_clause { insertSelectOptions((SelectStmt *) $1, $2, NIL, @@ -17150,6 +18473,7 @@ select_no_parens: } | select_clause opt_sort_clause for_locking_clause opt_select_limit { + FilterStartWithUseCases((SelectStmt *) $1, $3, yyscanner, @3); insertSelectOptions((SelectStmt *) $1, $2, $3, (Node*)list_nth($4, 0), (Node*)list_nth($4, 1), NULL, @@ -17158,6 +18482,7 @@ select_no_parens: } | select_clause opt_sort_clause select_limit opt_for_locking_clause { + FilterStartWithUseCases((SelectStmt *) $1, $4, yyscanner, @4); insertSelectOptions((SelectStmt *) $1, $2, $4, (Node*)list_nth($3, 0), (Node*)list_nth($3, 1), NULL, @@ -17182,6 +18507,7 @@ select_no_parens: } | with_clause select_clause opt_sort_clause for_locking_clause opt_select_limit { + FilterStartWithUseCases((SelectStmt *) $2, $4, yyscanner, @4); insertSelectOptions((SelectStmt *) $2, $3, $4, (Node*)list_nth($5, 0), (Node*)list_nth($5, 1), $1, @@ -17190,6 +18516,7 @@ select_no_parens: } | with_clause select_clause opt_sort_clause select_limit opt_for_locking_clause { + FilterStartWithUseCases((SelectStmt *) $2, $5, yyscanner, @5); insertSelectOptions((SelectStmt *) $2, $3, $5, (Node*)list_nth($4, 0), (Node*)list_nth($4, 1), $1, @@ -17228,7 +18555,7 @@ select_clause: */ simple_select: SELECT hint_string opt_distinct target_list - into_clause from_clause where_clause + into_clause from_clause where_clause start_with_clause group_clause having_clause window_clause { SelectStmt *n = makeNode(SelectStmt); @@ -17237,9 +18564,10 @@ simple_select: n->intoClause = $5; n->fromClause = $6; n->whereClause = $7; - n->groupClause = $8; - n->havingClause = $9; - n->windowClause = $10; + n->startWithClause = $8; + n->groupClause = $9; + n->havingClause = $10; + n->windowClause = $11; n->hintState = create_hintstate($2); n->hasPlus = getOperatorPlusFlag(); $$ = (Node *)n; @@ -17254,6 +18582,7 @@ simple_select: cr->fields = list_make1(makeNode(A_Star)); cr->location = -1; + cr->indnum = 0; rt->name = NULL; rt->indirection = NIL; @@ -17322,18 +18651,25 @@ cte_list: | cte_list ',' common_table_expr { $$ = lappend($1, $3); } ; -common_table_expr: name opt_name_list AS '(' PreparableStmt ')' +common_table_expr: name opt_name_list AS opt_materialized '(' PreparableStmt ')' { CommonTableExpr *n = makeNode(CommonTableExpr); n->ctename = $1; n->aliascolnames = $2; - n->ctequery = $5; + n->ctematerialized = (CTEMaterialize)$4; + n->ctequery = $6; n->location = @1; n->locator_type = LOCATOR_TYPE_NONE; $$ = (Node *) n; } ; +opt_materialized: + MATERIALIZED { $$ = CTEMaterializeAlways; } + | NOT MATERIALIZED { $$ = CTEMaterializeNever; } + | /*EMPTY*/ { $$ = CTEMaterializeDefault; } + ; + opt_with_clause: with_clause { $$ = $1; } | /*EMPTY*/ { $$ = NULL; } @@ -17386,6 +18722,8 @@ OptTempTableName: { $$ = $4; #ifdef ENABLE_MULTIPLE_NODES + const char* message = "GLOBAL is deprecated in temporary table creation"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); ereport(WARNING, (errmsg("GLOBAL is deprecated in temporary table creation"), parser_errposition(@1))); @@ -17398,6 +18736,8 @@ OptTempTableName: { $$ = $4; #ifdef ENABLE_MULTIPLE_NODES + const char* message = "GLOBAL is deprecated in temporary table creation"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); ereport(WARNING, (errmsg("GLOBAL is deprecated in temporary table creation"), parser_errposition(@1))); @@ -17451,6 +18791,10 @@ sort_clause: ORDER BY sortby_list { $$ = $3; } ; +siblings_clause: + ORDER SIBLINGS BY sortby_list { $$ = (Node*)$4; } + ; + sortby_list: sortby { $$ = list_make1($1); } | sortby_list ',' sortby { $$ = lappend($1, $3); } @@ -17474,38 +18818,6 @@ sortby: a_expr USING qual_all_Op opt_nulls_order $$->useOp = NIL; $$->location = -1; /* no operator */ } - | NLSSORT '(' a_expr ',' Sconst ')' opt_asc_desc opt_nulls_order - { - if (checkNlssortArgs($5)) - { - Node *c = NULL; - FuncCall *n = makeNode(FuncCall); - c = $3; - - n->funcname = SystemFuncName("convert_to_nocase"); - n->args =list_make2(c,makeStringConst("gbk",-1)); - n->agg_order = NIL; - n->agg_star = FALSE; - n->agg_distinct = FALSE; - n->func_variadic = FALSE; - n->over = NULL; - n->location = @1; - n->call_func = false; - - $$ = makeNode(SortBy); - $$->node = (Node*)n; - $$->sortby_dir = (SortByDir)$7; - $$->sortby_nulls = (SortByNulls)$8; - $$->useOp = NIL; - $$->location = @1; - } - else - { - $$ = NULL; - ereport(ERROR,(errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("Sort method %s is not supported!",$5))); - } - } ; @@ -17669,6 +18981,74 @@ having_clause: | /*EMPTY*/ { $$ = NULL; } ; +start_with_clause: + START WITH start_with_expr connect_by_expr + { + StartWithClause *n = makeNode(StartWithClause); + n->startWithExpr = $3; + n->connectByExpr = $4; + n->siblingsOrderBy = NULL; + n->priorDirection = false; + n->nocycle = false; + $$ = (Node *) n; + } + | START WITH start_with_expr CONNECT BY NOCYCLE a_expr + { + StartWithClause *n = makeNode(StartWithClause); + n->startWithExpr = $3; + n->connectByExpr = $7; + n->siblingsOrderBy = NULL; + n->priorDirection = false; + n->nocycle = true; + $$ = (Node *) n; + } + | connect_by_expr START WITH start_with_expr + { + StartWithClause *n = makeNode(StartWithClause); + n->startWithExpr = $4; + n->connectByExpr = $1; + n->siblingsOrderBy = NULL; + n->priorDirection = false; + n->nocycle = false; + $$ = (Node *) n; + } + | CONNECT BY NOCYCLE a_expr START WITH start_with_expr + { + StartWithClause *n = makeNode(StartWithClause); + n->startWithExpr = $7; + n->connectByExpr = $4; + n->siblingsOrderBy = NULL; + n->priorDirection = false; + n->nocycle = true; + $$ = (Node *) n; + } + | connect_by_expr + { + Node* tmp = (Node*) $1; + StartWithClause *n = makeNode(StartWithClause); + n->startWithExpr = NULL; + n->connectByExpr = $1; + $$ = (Node *) n; + } + | /*EMPTY*/ { $$ = NULL; } + ; +start_with_expr: + a_expr { $$ = $1; } + ; + +connect_by_expr: + CONNECT BY a_expr + { +#ifdef ENABLE_MULTIPLE_NODES + const char* message = "START WITH CONNECT BY is not yet supported."; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("START WITH CONNECT BY is not yet supported."))); +#endif + $$ = $3; + } + ; + for_locking_clause: for_locking_items { $$ = $1; } | FOR READ ONLY { $$ = NIL; } @@ -17685,19 +19065,31 @@ for_locking_items: ; for_locking_item: - for_locking_strength locked_rels_list opt_nowait + FOR UPDATE hint_string locked_rels_list opt_nowait + { + LockingClause *n = makeNode(LockingClause); + n->lockedRels = $4; + n->forUpdate = TRUE; + n->strength = LCS_FORUPDATE; + n->noWait = $5; + $$ = (Node *) n; + } + | for_locking_strength locked_rels_list opt_nowait { LockingClause *n = makeNode(LockingClause); n->lockedRels = $2; n->strength = $1; + n->forUpdate = FALSE; + if (n->strength == LCS_FORUPDATE) { + n->forUpdate = true; + } n->noWait = $3; $$ = (Node *) n; } ; for_locking_strength: - FOR UPDATE { $$ = LCS_FORUPDATE; } - | FOR NO KEY UPDATE + FOR NO KEY UPDATE { #ifdef ENABLE_MULTIPLE_NODES ereport(ERROR, @@ -17707,7 +19099,7 @@ for_locking_strength: $$ = LCS_FORNOKEYUPDATE; #endif } - | FOR SHARE { $$ = LCS_FORSHARE; } + | FOR SHARE { $$ = LCS_FORSHARE; } | FOR KEY SHARE { #ifdef ENABLE_MULTIPLE_NODES @@ -17718,7 +19110,7 @@ for_locking_strength: $$ = LCS_FORKEYSHARE; #endif } - ; + ; locked_rels_list: OF qualified_name_list { $$ = $2; } @@ -17769,6 +19161,34 @@ from_list: */ table_ref: relation_expr { +#ifndef ENABLE_MULTIPLE_NODES + StringInfoData detailInfo; + initStringInfo(&detailInfo); + RangeVar* r = $1; + int rc = CompileWhich(); + if (rc != PLPGSQL_COMPILE_NULL && u_sess->attr.attr_common.plsql_show_all_error) { + Relation rel = HeapOpenrvExtended(r, NoLock, true, true, &detailInfo); + CatCList* catlist = SearchSysCacheList1(PROCNAMEARGSNSP, CStringGetDatum(r->relname)); + + if (catlist->n_members == 0 && rel == NULL) { + char message[MAXFNAMELEN]; + int rc = sprintf_s(message, MAXFNAMELEN, "relation \"%s\" does not exist", r->relname); + securec_check_ss_c(rc, "", ""); + ReleaseSysCacheList(catlist); + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc, true); + ereport(ERROR, + (errcode(ERRCODE_UNDEFINED_TABLE), + errmsg("relation \"%s\" does not exist", r->relname), + errdetail("%s", detailInfo.data))); + } + if (rel != NULL) { + heap_close(rel, NoLock); + } + if (catlist != NULL) { + ReleaseSysCacheList(catlist); + } + } +#endif $$ = (Node *) $1; } | relation_expr alias_clause @@ -17804,6 +19224,12 @@ table_ref: relation_expr $1->ispartition = true; $$ = (Node *)$1; } + | relation_expr SUBPARTITION '(' name ')' + { + $1->subpartitionname = $4; + $1->issubpartition = true; + $$ = (Node *)$1; + } | relation_expr BUCKETS '(' bucket_list ')' { $1->buckets = $4; @@ -17825,6 +19251,15 @@ table_ref: relation_expr $$ = (Node *)$1; } + | relation_expr SUBPARTITION '(' name ')' alias_clause + { + $1->subpartitionname = $4; + $1->alias = $6; + $1->issubpartition = true; + $$ = (Node *)$1; + } + + | relation_expr PARTITION_FOR '(' maxValueList ')' alias_clause { $1->partitionKeyValuesList = $4; @@ -17891,12 +19326,15 @@ table_ref: relation_expr /* add select_with_parens whthout alias_clause adapt A db for procedure dubug */ $$ = NULL; if (IsA($1, SelectStmt) && - ((SelectStmt *) $1)->valuesLists) - ereport(ERROR, + ((SelectStmt *) $1)->valuesLists) { + const char* message = "VALUES in FROM must have an alias"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("VALUES in FROM must have an alias"), errhint("For example, FROM (VALUES ...) [AS] foo."), parser_errposition(@1))); + } else { /* @@ -18234,7 +19672,7 @@ TableFuncElementList: } ; -TableFuncElement: ColId Typename opt_collate_clause +TableFuncElement: ColId func_type opt_collate_clause { ColumnDef *n = makeNode(ColumnDef); n->colname = $1; @@ -18325,11 +19763,14 @@ SimpleTypename: $$ = $1; if ($5 != NIL) { - if (list_length($5) != 1) - ereport(ERROR, + if (list_length($5) != 1) { + const char* message = "interval precision specified twice"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("interval precision specified twice"), parser_errposition(@1))); + } $$->typmods = lappend($5, makeIntConst($3, @3)); } else @@ -18434,11 +19875,6 @@ Numeric: INT_P $$ = SystemTypeName("float8"); $$->location = @1; } - | BINARY_FLOAT - { - $$ = SystemTypeName("float4"); - $$->location = @1; - } | BINARY_INTEGER { $$ = SystemTypeName("int4"); @@ -18486,20 +19922,26 @@ opt_float: '(' Iconst ')' * Check FLOAT() precision limits assuming IEEE floating * types - thomas 1997-09-18 */ - if ($2 < 1) - ereport(ERROR, + if ($2 < 1) { + const char* message = "precision for type float must be at least 1 bit"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("precision for type float must be at least 1 bit"), parser_errposition(@2))); + } else if ($2 <= 24) $$ = SystemTypeName("float4"); else if ($2 <= 53) $$ = SystemTypeName("float8"); - else - ereport(ERROR, + else { + const char* message = "precision for type float must be less than 54 bits"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("precision for type float must be less than 54 bits"), parser_errposition(@2))); + } } | /*EMPTY*/ { @@ -18643,8 +20085,6 @@ character: CHARACTER opt_varying { $$ = (char *)($2 ? "varchar": "bpchar"); } | NVARCHAR2 { $$ = "nvarchar2"; } - | NVARCHAR - { $$ = "nvarchar2"; } | VARCHAR { $$ = "varchar"; } | VARCHAR2 @@ -19136,16 +20576,22 @@ a_expr: c_expr { $$ = $1; } /* Create and populate a FuncCall node to support the OVERLAPS operator. */ FuncCall *n = makeNode(FuncCall); n->funcname = SystemFuncName("overlaps"); - if (list_length($1) != 2) - ereport(ERROR, + if (list_length($1) != 2) { + const char* message = "wrong number of parameters on left side of OVERLAPS expression"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("wrong number of parameters on left side of OVERLAPS expression"), parser_errposition(@1))); - if (list_length($3) != 2) - ereport(ERROR, + } + if (list_length($3) != 2) { + const char* message = "wrong number of parameters on left side of OVERLAPS expression"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("wrong number of parameters on right side of OVERLAPS expression"), parser_errposition(@3))); + } n->args = list_concat($1, $3); n->agg_order = NIL; n->agg_star = FALSE; @@ -19332,7 +20778,9 @@ a_expr: c_expr { $$ = $1; } * entire result equal to one. * But, will probably implement a separate node in the executor. */ - ereport(ERROR, + const char* message = "UNIQUE predicate is not yet implemented"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("UNIQUE predicate is not yet implemented"), parser_errposition(@1))); @@ -19448,20 +20896,51 @@ b_expr: c_expr */ c_expr: columnref { $$ = $1; } | AexprConst { $$ = $1; } + | PRIOR '(' c_expr ')' + { + Node* n = $3; + AssertEreport(IsA(n, ColumnRef), + MOD_OPT, + "Inconsistent expression after PRIOR"); + ColumnRef *col = (ColumnRef *)$3; + col->prior = true; + $$ = n; + } + | PRIOR columnref + { + ColumnRef *n = (ColumnRef *)$2; + n->prior = true; + $$ = (Node *)n; + } | PARAM opt_indirection { - ParamRef *p = makeNode(ParamRef); - p->number = $1; - p->location = @1; - if ($2) - { - A_Indirection *n = makeNode(A_Indirection); - n->arg = (Node *) p; - n->indirection = check_indirection($2, yyscanner); - $$ = (Node *) n; + if (u_sess->parser_cxt.is_load_copy == false) { + ParamRef *p = makeNode(ParamRef); + p->number = $1; + p->location = @1; + if ($2) + { + A_Indirection *n = makeNode(A_Indirection); + n->arg = (Node *) p; + n->indirection = check_indirection($2, yyscanner); + $$ = (Node *) n; + } + else + $$ = (Node *) p; +#ifndef ENABLE_MULTIPLE_NODES + } + else { + char *colname = u_sess->parser_cxt.copy_fieldname; + if (CheckWhetherInColList(colname, u_sess->parser_cxt.col_list) == true) { + $$ = makeColumnRef(colname, NIL, @1, yyscanner); + } else { + ereport(errstate, + (errcode(ERRCODE_INVALID_COLUMN_REFERENCE), + errmsg("Col \"%s\" is not in the col list", colname), + parser_errposition(@1))); + } +#endif } - else - $$ = (Node *) p; } | '(' a_expr ')' opt_indirection { @@ -19698,7 +21177,9 @@ func_expr: func_application within_group_clause over_clause { if ($2 == NIL) { - ereport(ERROR, + const char* message = "missing WITHIN keyword."; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("missing WITHIN keyword."), parser_errposition(@2))); @@ -19707,21 +21188,27 @@ func_expr: func_application within_group_clause over_clause { if (n->agg_order != NIL) { - ereport(ERROR, + const char* message = "cannot use multiple ORDER BY clauses with WITHIN GROUP."; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("cannot use multiple ORDER BY clauses with WITHIN GROUP."), parser_errposition(@2))); } if (n->agg_distinct) { - ereport(ERROR, + const char* message = "cannot use DISTINCT with WITHIN GROUP."; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("cannot use DISTINCT with WITHIN GROUP."), parser_errposition(@2))); } if (n->func_variadic) { - ereport(ERROR, + const char* message = "cannot use VARIADIC with WITHIN GROUP."; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("cannot use VARIADIC with WITHIN GROUP."), parser_errposition(@2))); @@ -19739,21 +21226,30 @@ func_expr: func_application within_group_clause over_clause } else if ($2 != NIL) { - if (n->agg_order != NIL) - ereport(ERROR, + if (n->agg_order != NIL) { + const char* message = "cannot use multiple ORDER BY clauses with WITHIN GROUP"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("cannot use multiple ORDER BY clauses with WITHIN GROUP"), parser_errposition(@2))); - if (n->agg_distinct) - ereport(ERROR, + } + if (n->agg_distinct) { + const char* message = "cannot use DISTINCT with WITHIN GROUP."; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("cannot use DISTINCT with WITHIN GROUP"), parser_errposition(@2))); - if (n->func_variadic) - ereport(ERROR, + } + if (n->func_variadic) { + const char* message = "cannot use VARIADIC with WITHIN GROUP."; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("cannot use VARIADIC with WITHIN GROUP"), parser_errposition(@2))); + } n->agg_order = $2; n->agg_within_group = TRUE; n->over = $3; @@ -20070,7 +21566,9 @@ func_expr_common_subexpr: | ROWNUM { #ifdef ENABLE_MULTIPLE_NODES - ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + const char* message = "ROWNUM is not yet supported."; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("ROWNUM is not yet supported."))); #endif Rownum *r = makeNode(Rownum); @@ -20195,7 +21693,9 @@ func_expr_common_subexpr: } else { - ereport(ERROR, + const char* message = "timestampdiff syntax is not supported."; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errmodule(MOD_PARSER), errcode(ERRCODE_SYNTAX_ERROR), errmsg("timestampdiff syntax is not supported."), @@ -20617,17 +22117,23 @@ opt_frame_clause: WindowDef *n = $2; n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_RANGE; if (n->frameOptions & (FRAMEOPTION_START_VALUE_PRECEDING | - FRAMEOPTION_END_VALUE_PRECEDING)) - ereport(ERROR, + FRAMEOPTION_END_VALUE_PRECEDING)) { + const char* message = "RANGE PRECEDING is only supported with UNBOUNDED"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("RANGE PRECEDING is only supported with UNBOUNDED"), parser_errposition(@1))); + } if (n->frameOptions & (FRAMEOPTION_START_VALUE_FOLLOWING | - FRAMEOPTION_END_VALUE_FOLLOWING)) - ereport(ERROR, + FRAMEOPTION_END_VALUE_FOLLOWING)) { + const char* message = "RANGE PRECEDING is only supported with UNBOUNDED"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("RANGE FOLLOWING is only supported with UNBOUNDED"), parser_errposition(@1))); + } $$ = n; } | ROWS frame_extent @@ -20650,16 +22156,22 @@ frame_extent: frame_bound { WindowDef *n = $1; /* reject invalid cases */ - if (n->frameOptions & FRAMEOPTION_START_UNBOUNDED_FOLLOWING) - ereport(ERROR, + if (n->frameOptions & FRAMEOPTION_START_UNBOUNDED_FOLLOWING) { + const char* message = "frame start cannot be UNBOUNDED FOLLOWING"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_WINDOWING_ERROR), errmsg("frame start cannot be UNBOUNDED FOLLOWING"), parser_errposition(@1))); - if (n->frameOptions & FRAMEOPTION_START_VALUE_FOLLOWING) - ereport(ERROR, + } + if (n->frameOptions & FRAMEOPTION_START_VALUE_FOLLOWING) { + const char* message = "frame starting from following row cannot end with current row"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_WINDOWING_ERROR), errmsg("frame starting from following row cannot end with current row"), parser_errposition(@1))); + } n->frameOptions |= FRAMEOPTION_END_CURRENT_ROW; $$ = n; } @@ -20673,29 +22185,41 @@ frame_extent: frame_bound frameOptions |= n2->frameOptions << 1; frameOptions |= FRAMEOPTION_BETWEEN; /* reject invalid cases */ - if (frameOptions & FRAMEOPTION_START_UNBOUNDED_FOLLOWING) - ereport(ERROR, + if (frameOptions & FRAMEOPTION_START_UNBOUNDED_FOLLOWING) { + const char* message = "frame start cannot be UNBOUNDED FOLLOWING"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_WINDOWING_ERROR), errmsg("frame start cannot be UNBOUNDED FOLLOWING"), parser_errposition(@2))); - if (frameOptions & FRAMEOPTION_END_UNBOUNDED_PRECEDING) - ereport(ERROR, + } + if (frameOptions & FRAMEOPTION_END_UNBOUNDED_PRECEDING) { + const char* message = "frame start cannot be UNBOUNDED PRECEDING"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_WINDOWING_ERROR), errmsg("frame end cannot be UNBOUNDED PRECEDING"), parser_errposition(@4))); + } if ((frameOptions & FRAMEOPTION_START_CURRENT_ROW) && - (frameOptions & FRAMEOPTION_END_VALUE_PRECEDING)) - ereport(ERROR, + (frameOptions & FRAMEOPTION_END_VALUE_PRECEDING)) { + const char* message = "frame starting from current row cannot have preceding rows"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_WINDOWING_ERROR), errmsg("frame starting from current row cannot have preceding rows"), parser_errposition(@4))); + } if ((frameOptions & FRAMEOPTION_START_VALUE_FOLLOWING) && (frameOptions & (FRAMEOPTION_END_VALUE_PRECEDING | - FRAMEOPTION_END_CURRENT_ROW))) - ereport(ERROR, + FRAMEOPTION_END_CURRENT_ROW))) { + const char* message = "frame starting from current row cannot have preceding rows"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_WINDOWING_ERROR), errmsg("frame starting from following row cannot have preceding rows"), parser_errposition(@4))); + } n1->frameOptions = frameOptions; n1->endOffset = n2->startOffset; $$ = n1; @@ -21261,6 +22785,12 @@ target_el: a_expr AS ColLabel $$->indirection = NIL; $$->val = (Node *)$1; $$->location = @1; + if (IsConnectByRootIdent($1)) { + Node* cr = (Node*) makeColumnRef($2, NIL, @1, yyscanner); + Node* n = MakeConnectByRootNode((ColumnRef*) cr, @1); + $$->name = MakeConnectByRootColName(NULL, $2); + $$->val = (Node*) n; + } } | a_expr { @@ -21269,12 +22799,13 @@ target_el: a_expr AS ColLabel $$->indirection = NIL; $$->val = (Node *)$1; $$->location = @1; - } + } | '*' { ColumnRef *n = makeNode(ColumnRef); n->fields = list_make1(makeNode(A_Star)); n->location = @1; + n->indnum = 0; $$ = makeNode(ResTarget); $$->name = NULL; @@ -21306,8 +22837,46 @@ target_el: a_expr AS ColLabel $$->val = (Node *)$1; $$->location = @1; } + | connect_by_root_expr + { + $$ = (ResTarget*) $1; + } ; +connect_by_root_expr: a_expr IDENT '.' IDENT + { + ValidateTripleTuple((Node*)$1, yyscanner, @2, $2); + Node* cr = (Node*) makeColumnRef($2, list_make1(makeString($4)), @1, yyscanner); + Node* n = MakeConnectByRootNode((ColumnRef*) cr, @1); + $$ = makeNode(ResTarget); + $$->name = MakeConnectByRootColName($2, $4); + $$->val = (Node*) n; + $$->indirection = NIL; + $$->location = @1; + } + | a_expr IDENT '.' IDENT as_empty IDENT + { + ValidateTripleTuple((Node*)$1, yyscanner, @2, $2); + Node* cr = (Node*) makeColumnRef($2, list_make1(makeString($4)), @1, yyscanner); + Node* n = MakeConnectByRootNode((ColumnRef*) cr, @1); + $$ = makeNode(ResTarget); + $$->name = $6; + $$->val = (Node*) n; + $$->indirection = NIL; + $$->location = @1; + } + | a_expr IDENT as_empty IDENT + { + ValidateTripleTuple((Node*) $1, yyscanner, @2, $2); + Node* cr = (Node*) makeColumnRef($2, NIL, @1, yyscanner); + Node* n = MakeConnectByRootNode((ColumnRef*) cr, @1); + $$ = makeNode(ResTarget); + $$->name = $4; + $$->val = (Node *) n; + $$->indirection = NIL; + $$->location = @1; + } + ; /***************************************************************************** * @@ -21336,6 +22905,7 @@ qualified_name: { check_qualified_name($2, yyscanner); $$ = makeRangeVar(NULL, NULL, @1); + const char* message = "improper qualified name (too many dotted names)"; switch (list_length($2)) { case 1: @@ -21349,7 +22919,8 @@ qualified_name: $$->relname = strVal(lsecond($2)); break; default: - ereport(ERROR, + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("improper qualified name (too many dotted names): %s", NameListToString(lcons(makeString($1), $2))), @@ -21454,18 +23025,24 @@ AexprConst: Iconst { NamedArgExpr *arg = (NamedArgExpr *) lfirst(lc); - if (IsA(arg, NamedArgExpr)) - ereport(ERROR, + if (IsA(arg, NamedArgExpr)) { + const char* message = "type modifier cannot have parameter name"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("type modifier cannot have parameter name"), parser_errposition(arg->location))); + } } - if ($4 != NIL) - ereport(ERROR, + if ($4 != NIL) { + const char* message = "type modifier cannot have ORDER BY"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("type modifier cannot have ORDER BY"), parser_errposition(@4))); + } t->typmods = $3; t->location = @1; $$ = makeStringConstCast($6, @6, t); @@ -21485,11 +23062,14 @@ AexprConst: Iconst TypeName *t = $1; if ($6 != NIL) { - if (list_length($6) != 1) - ereport(ERROR, + if (list_length($6) != 1) { + const char* message = "interval precision specified twice"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("interval precision specified twice"), parser_errposition(@1))); + } t->typmods = lappend($6, makeIntConst($3, @3)); } else @@ -21556,7 +23136,9 @@ ColLabel: IDENT { $$ = $1; } { /* ROWNUM can not be used as alias */ if (strcmp($1, "rownum") == 0) { - ereport(ERROR, + const char* message = "ROWNUM cannot be used as an alias"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("ROWNUM cannot be used as an alias"), parser_errposition(@1))); @@ -21597,6 +23179,7 @@ unreserved_keyword: | ALTER | ALWAYS | APP + | APPEND | ARCHIVE | ASSERTION | ASSIGNMENT @@ -21612,6 +23195,7 @@ unreserved_keyword: | BEFORE | BEGIN_NON_ANOYBLOCK | BEGIN_P + | BLANKS | BLOB_P | BLOCKCHAIN | BODY_P @@ -21624,6 +23208,7 @@ unreserved_keyword: | CATALOG_P | CHAIN | CHARACTERISTICS + | CHARACTERSET | CHECKPOINT | CLASS | CLEAN @@ -21645,6 +23230,7 @@ unreserved_keyword: | CONDITION | CONFIGURATION | CONNECTION + | CONSTANT | CONSTRAINTS | CONTENT_P | CONTINUE_P @@ -21694,6 +23280,7 @@ unreserved_keyword: | DUPLICATE | EACH | ENABLE_P + | ENCLOSED | ENCODING | ENCRYPTED | ENCRYPTED_VALUE @@ -21718,8 +23305,10 @@ unreserved_keyword: | FAMILY | FAST | FEATURES // DB4AI + | FIELDS | FILEHEADER_P | FILL_MISSING_FIELDS + | FILLER | FILTER | FIRST_P | FIXED_P @@ -21731,7 +23320,6 @@ unreserved_keyword: | FUNCTIONS | GENERATED | GLOBAL - | GLOBAL_FUNCTION | GRANTED | HANDLER | HEADER_P @@ -21750,6 +23338,7 @@ unreserved_keyword: | INCREMENTAL | INDEX | INDEXES + | INFILE | INHERIT | INHERITS | INITIAL_P @@ -21775,7 +23364,7 @@ unreserved_keyword: | LC_COLLATE_P | LC_CTYPE_P | LEAKPROOF - | LEVEL + | LEVEL | LIST | LISTEN | LOAD @@ -21812,7 +23401,6 @@ unreserved_keyword: | NEXT | NO | NOCOMPRESS - | NOCYCLE | NODE | NOLOGGING | NOMAXVALUE @@ -21820,6 +23408,7 @@ unreserved_keyword: | NOTHING | NOTIFY | NOWAIT + | NULLCOLS | NULLS_P | NUMSTR | OBJECT_P @@ -21829,6 +23418,7 @@ unreserved_keyword: | OPERATOR | OPTIMIZATION | OPTION + | OPTIONALLY | OPTIONS | OVER | OWNED @@ -21857,8 +23447,7 @@ unreserved_keyword: | PREPARE | PREPARED | PRESERVE - | PRIOR - | PRIVATE + | PRIVATE | PRIVILEGE | PRIVILEGES | PROCEDURAL @@ -21927,6 +23516,7 @@ unreserved_keyword: | SHUTDOWN | SIMPLE | SIZE + | SKIP | SLICE | SMALLDATETIME_FORMAT_P | SNAPSHOT @@ -21936,7 +23526,6 @@ unreserved_keyword: | SPLIT | STABLE | STANDALONE_P - | START | STATEMENT | STATEMENT_ID | STATISTICS @@ -21949,6 +23538,7 @@ unreserved_keyword: | STREAM | STRICT_P | STRIP_P + | SUBPARTITION | SUBSCRIPTION | SYNONYM | SYS_REFCURSOR { $$ = "refcursor"; } @@ -21960,6 +23550,7 @@ unreserved_keyword: | TEMP | TEMPLATE | TEMPORARY + | TERMINATED | TEXT_P | THAN | TIME_FORMAT_P @@ -21985,12 +23576,14 @@ unreserved_keyword: | UNTIL | UNUSABLE | UPDATE + | USEEOF | VACUUM | VALID | VALIDATE | VALIDATION | VALIDATOR | VALUE_P + | VARIABLES | VARYING | VERSION_P | VIEW @@ -22023,7 +23616,6 @@ col_name_keyword: BETWEEN | BIGINT | BINARY_DOUBLE - | BINARY_FLOAT | BINARY_INTEGER | BIT | BOOLEAN_P @@ -22053,7 +23645,6 @@ col_name_keyword: | NULLIF | NUMBER_P | NUMERIC - | NVARCHAR | NVARCHAR2 | NVL | OUT_P @@ -22151,6 +23742,7 @@ reserved_keyword: | COLLATE | COLUMN | CONSTRAINT + | CONNECT | CREATE | CURRENT_CATALOG | CURRENT_DATE @@ -22189,8 +23781,8 @@ reserved_keyword: | MAXVALUE | MINUS_P | MODIFY_P - | NLSSORT | NOT + | NOCYCLE | NULL_P | OFFSET | ON @@ -22200,13 +23792,17 @@ reserved_keyword: | PERFORMANCE | PLACING | PRIMARY + | PRIOR | PROCEDURE | REFERENCES | REJECT_P | RETURNING + | ROWNUM | SELECT | SESSION_USER + | SIBLINGS | SOME + | START | SYMMETRIC | SYSDATE | TABLE @@ -22224,7 +23820,6 @@ reserved_keyword: | WHERE | WINDOW | WITH - | ROWNUM ; %% @@ -22252,14 +23847,17 @@ makeColumnRef(char *colname, List *indirection, */ ColumnRef *c = makeNode(ColumnRef); int nfields = 0; + int indnum = 0; ListCell *l; c->location = location; + c->indnum = 0; foreach(l, indirection) { if (IsA(lfirst(l), A_Indices)) { A_Indirection *i = makeNode(A_Indirection); + indnum++; if (nfields == 0) { @@ -22276,6 +23874,7 @@ makeColumnRef(char *colname, List *indirection, indirection = list_truncate(indirection, nfields); c->fields = lcons(makeString(colname), indirection); } + c->indnum = indnum; i->arg = (Node *) c; return (Node *) i; } @@ -22306,17 +23905,34 @@ makeTypeCast(Node *arg, TypeName *typname, int location) return (Node *) n; } -static void -getPkgName(char* pkgname) { - while (isspace((unsigned char)*pkgname) && (unsigned char)*pkgname != '\0') { - pkgname++; +static void StrCopy(char *dst, char *src) +{ + char *p = src; + char *q = dst; + int len = strlen(src); + int i = 0; + while (*p != '\"' && *p != ' ' && i < len) + { + *(q++) = *(p++); + i++; } - while (!isspace((unsigned char)*pkgname) && (unsigned char)*pkgname != '\0') { - pkgname++; + *(q++)='\0'; +} + +static char* +GetPkgName(char* pkgName) +{ + if (pkgName == NULL) { + return NULL; } - if (isspace((unsigned char)*pkgname)) { - *pkgname = '\0'; + int begin = 0; + char* destName = (char *) palloc(strlen(pkgName) + 1); + while ((isspace(*pkgName) || isquote(*pkgName)) && begin < strlen(pkgName)) { + pkgName++; + begin++; } + StrCopy(destName, pkgName); + return destName; } static Node * @@ -22506,12 +24122,16 @@ check_setting_name(List *names, core_yyscan_t yyscanner) { Value* v = (Value *)lfirst(i); if (v == NULL || v->type != T_String) { - ereport(ERROR, + const char* message = "invalid name"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("invalid name"))); } if (!IsValidIdentClientKey(v->val.str)) { - ereport(ERROR, + const char* message = "invalid name"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("invalid name"))); } @@ -22582,40 +24202,52 @@ insertSelectOptions(SelectStmt *stmt, */ if (sortClause) { - if (stmt->sortClause) - ereport(ERROR, + if (stmt->sortClause) { + const char* message = "multiple ORDER BY clauses not allowed"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("multiple ORDER BY clauses not allowed"), parser_errposition(exprLocation((Node *) sortClause)))); + } stmt->sortClause = sortClause; } /* We can handle multiple locking clauses, though */ stmt->lockingClause = list_concat(stmt->lockingClause, lockingClause); if (limitOffset) { - if (stmt->limitOffset) - ereport(ERROR, + if (stmt->limitOffset) { + const char* message = "multiple OFFSET clauses not allowed"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("multiple OFFSET clauses not allowed"), parser_errposition(exprLocation(limitOffset)))); + } stmt->limitOffset = limitOffset; } if (limitCount) { - if (stmt->limitCount) - ereport(ERROR, + if (stmt->limitCount) { + const char* message = "multiple OFFSET clauses not allowed"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("multiple LIMIT clauses not allowed"), parser_errposition(exprLocation(limitCount)))); + } stmt->limitCount = limitCount; } if (withClause) { - if (stmt->withClause) - ereport(ERROR, + if (stmt->withClause) { + const char* message = "multiple OFFSET clauses not allowed"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("multiple WITH clauses not allowed"), parser_errposition(exprLocation((Node *) withClause)))); + } stmt->withClause = withClause; } } @@ -22757,10 +24389,13 @@ mergeTableFuncParameters(List *func_args, List *columns) { FunctionParameter *p = (FunctionParameter *) lfirst(lc); - if (p->mode != FUNC_PARAM_IN && p->mode != FUNC_PARAM_VARIADIC) - ereport(ERROR, + if (p->mode != FUNC_PARAM_IN && p->mode != FUNC_PARAM_VARIADIC) { + const char* message = "OUT and INOUT arguments aren't allowed in TABLE functions"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("OUT and INOUT arguments aren't allowed in TABLE functions"))); + } } return list_concat(func_args, columns); @@ -22798,7 +24433,7 @@ static RangeVar * makeRangeVarFromAnyName(List *names, int position, core_yyscan_t yyscanner) { RangeVar *r = makeNode(RangeVar); - + const char* message = "improper qualified name (too many dotted names)"; switch (list_length(names)) { case 1: @@ -22817,7 +24452,8 @@ makeRangeVarFromAnyName(List *names, int position, core_yyscan_t yyscanner) r->relname = strVal(lthird(names)); break; default: - ereport(ERROR, + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("improper qualified name (too many dotted names): %s", NameListToString(names)), @@ -22861,24 +24497,32 @@ SplitColQualList(List *qualList, { CollateClause *c = (CollateClause *) n; - if (*collClause) - ereport(ERROR, + if (*collClause) { + const char* message = "multiple COLLATE clauses not allowed"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("multiple COLLATE clauses not allowed"), parser_errposition(c->location))); + } *collClause = c; } else if (IsA(n, ClientLogicColumnRef)) { - ereport(ERROR, (errmodule(MOD_SEC), errcode(ERRCODE_SYNTAX_ERROR), + const char* message = "unsupported syntax: ENCRYPTED WITH in this operation"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errmodule(MOD_SEC), errcode(ERRCODE_SYNTAX_ERROR), errmsg("unsupported syntax: ENCRYPTED WITH in this operation"), errdetail("N/A"), errcause("client encryption feature is not supported this operation."), erraction("Check client encryption feature whether supported this operation."))); } - else - ereport(ERROR, + else { + const char* message = "unexpected node type"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_UNRECOGNIZED_NODE_TYPE), errmsg("unexpected node type %d", (int) n->type))); + } /* remove non-Constraint nodes from qualList */ qualList = list_delete_cell(qualList, cell, prev); } @@ -22913,28 +24557,37 @@ SplitColQualList(List *qualList, { CollateClause *c = (CollateClause *) n; - if (*collClause) - ereport(ERROR, + if (*collClause) { + const char* message = "multiple COLLATE clauses not allowed"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("multiple COLLATE clauses not allowed"), parser_errposition(c->location))); + } *collClause = c; } else if (IsA(n, ClientLogicColumnRef)) { ClientLogicColumnRef *e = (ClientLogicColumnRef *) n; - if (*clientLogicColumnRef) - ereport(ERROR, + if (*clientLogicColumnRef) { + const char* message = "multiple encrypted columns are not allowed"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("multiple encrypted columns are not allowed"), parser_errposition(e->location))); + } *clientLogicColumnRef = e; } - else - ereport(ERROR, + else { + const char* message = "unexpected node type"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_UNRECOGNIZED_NODE_TYPE), errmsg("unexpected node type %d", (int) n->type))); + } /* remove non-Constraint nodes from qualList */ qualList = list_delete_cell(qualList, cell, prev); } @@ -22963,52 +24616,64 @@ processCASbits(int cas_bits, int location, const char *constrType, { if (deferrable) *deferrable = true; - else - ereport(ERROR, + else { + const char* message = "constraints cannot be marked DEFERRABLE"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), /* translator: %s is CHECK, UNIQUE, or similar */ errmsg("%s constraints cannot be marked DEFERRABLE", constrType), parser_errposition(location))); + } } if (cas_bits & CAS_INITIALLY_DEFERRED) { if (initdeferred) *initdeferred = true; - else - ereport(ERROR, + else { + const char* message = "constraints cannot be marked DEFERRABLE"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), /* translator: %s is CHECK, UNIQUE, or similar */ errmsg("%s constraints cannot be marked DEFERRABLE", constrType), parser_errposition(location))); + } } if (cas_bits & CAS_NOT_VALID) { if (not_valid) *not_valid = true; - else - ereport(ERROR, + else { + const char* message = "constraints cannot be marked NOT VALID"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), /* translator: %s is CHECK, UNIQUE, or similar */ errmsg("%s constraints cannot be marked NOT VALID", constrType), parser_errposition(location))); + } } if (cas_bits & CAS_NO_INHERIT) { if (no_inherit) *no_inherit = true; - else - ereport(ERROR, + else { + const char* message = "constraints cannot be marked NO INHERIT"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), /* translator: %s is CHECK, UNIQUE, or similar */ errmsg("%s constraints cannot be marked NO INHERIT", constrType), parser_errposition(location))); + } } } @@ -23101,7 +24766,9 @@ get_func_args(char *sid) */ if (2 != sidlist->length) { - ereport(ERROR, + const char* message = "missing or invalid session ID"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_UNDEFINED_OBJECT), errmsg("missing or invalid session ID"))); return NIL; @@ -23115,7 +24782,9 @@ get_func_args(char *sid) */ if (pid < 0 || serial < 0) { - ereport(ERROR, + const char* message = "missing or invalid session ID"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_UNDEFINED_OBJECT), errmsg("missing or invalid session ID"))); return NIL; @@ -23138,7 +24807,9 @@ get_pid(const char *strsid) */ if (!strsid) { - ereport(ERROR, + const char* message = "missing or invalid session ID"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_UNDEFINED_OBJECT), errmsg("missing or invalid session ID"))); return 0; @@ -23152,7 +24823,9 @@ get_pid(const char *strsid) */ if (!isdigit(cur_char) && !isspace(cur_char)) { - ereport(ERROR, + const char* message = "missing or invalid session ID"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_UNDEFINED_OBJECT), errmsg("missing or invalid session ID"))); return 0; @@ -23168,7 +24841,9 @@ get_pid(const char *strsid) */ if (start && end && !isspace(cur_char)) { - ereport(ERROR, + const char* message = "missing or invalid session ID"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_UNDEFINED_OBJECT), errmsg("missing or invalid session ID"))); return 0; @@ -23178,7 +24853,9 @@ get_pid(const char *strsid) if (!start) { - ereport(ERROR, + const char* message = "missing or invalid session ID"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_UNDEFINED_OBJECT), errmsg("missing or invalid session ID"))); return 0; @@ -23291,14 +24968,18 @@ get_arg_mode_by_name(const char *argname, const char * const *argnames, const char *paraname= NULL; if (argnames == NULL) { - ereport(ERROR, + const char* message = "No function matches the given arguments names."; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("No function matches the given arguments names. " "You might need to add explicit declare arguments names."))); } if (unlikely(argname == NULL)) { - ereport(ERROR, + const char* message = "argname should not be null"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("argname should not be null"))); } @@ -23320,7 +25001,9 @@ get_arg_mode_by_name(const char *argname, const char * const *argnames, if (curpos < proargnum && have_assigend[curpos]) { - ereport(ERROR, + const char* message = "aparameter is assigned more than once"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_DUPLICATE_OBJECT), errmsg("parameter \"%s\" is assigned more than once", argname))); return; @@ -23328,7 +25011,9 @@ get_arg_mode_by_name(const char *argname, const char * const *argnames, if (curpos == proargnum) { - ereport(ERROR, + const char* message = "parameter is undefined"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_UNDEFINED_PARAMETER), errmsg("parameter \"%s\" is undefined", argname))); return; @@ -23346,7 +25031,9 @@ get_arg_mode_by_pos(const int pos, const char *argmodes, if (have_assigend[pos]) { - ereport(ERROR, + const char* message = "the parameter located have been assigned"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_DUPLICATE_OBJECT), errmsg("the parameter located \"%d\" have been assigned", pos + 1))); return; @@ -23376,6 +25063,7 @@ static int get_table_modes(int narg, const char *p_argmodes) static List * append_inarg_list(const char argmode,const ListCell *cell,List *in_parameters) { + const char* message = "parameter mode doesn't exist"; switch(argmode) { case FUNC_PARAM_IN: @@ -23390,7 +25078,8 @@ append_inarg_list(const char argmode,const ListCell *cell,List *in_parameters) case FUNC_PARAM_TABLE: break; default: - ereport(ERROR, + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_UNRECOGNIZED_NODE_TYPE), errmsg("parameter mode %c doesn't exist",argmode))); break; @@ -23412,7 +25101,9 @@ check_outarg_info(const bool *have_assigend, const char *argmodes,const int proa { if (!have_assigend[counter] && (FUNC_PARAM_OUT == argmodes[counter])) { - ereport(ERROR, + const char* message = "output argument located does not assigned"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("output argument located \"%d\" doesnot assigned", counter + 1))); @@ -23423,7 +25114,7 @@ check_outarg_info(const bool *have_assigend, const char *argmodes,const int proa // Added CALL for procedure and function static Node * -makeCallFuncStmt(List* funcname,List* parameters) +makeCallFuncStmt(List* funcname,List* parameters, bool is_call) { SelectStmt *newm = NULL; ColumnRef *column = NULL; @@ -23456,7 +25147,9 @@ makeCallFuncStmt(List* funcname,List* parameters) clist = FuncnameGetCandidates(funcname, -1, NIL, false, false, false); if (!clist) { - ereport(ERROR, + const char* message = "function doesn't exist "; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_UNDEFINED_FUNCTION), errmsg("function \"%s\" doesn't exist ", name))); return NULL; @@ -23467,7 +25160,9 @@ makeCallFuncStmt(List* funcname,List* parameters) has_overload_func = true; if (!IsPackageFunction(funcname)) { - ereport(ERROR, + const char* message = "function isn't exclusive "; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_DUPLICATE_FUNCTION), errmsg("function \"%s\" isn't exclusive ", name))); return NULL; @@ -23482,12 +25177,19 @@ makeCallFuncStmt(List* funcname,List* parameters) */ if (!HeapTupleIsValid(proctup)) { - ereport(ERROR, + const char* message = "function doesn't exist"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_UNDEFINED_FUNCTION), errmsg("function \"%s\" doesn't exist ", name))); return NULL; } - if (!has_overload_func) + +#ifndef ENABLE_MULTIPLE_NODES + if (!has_overload_func && !enable_out_param_override()) +#else + if (!has_overload_func) +#endif { /* get the all args informations, only "in" parameters if p_argmodes is null */ narg = get_func_arg_info(proctup,&p_argtypes,&p_argnames,&p_argmodes); @@ -23502,7 +25204,9 @@ makeCallFuncStmt(List* funcname,List* parameters) /* check the parameters' count*/ if (narg - ndefaultargs > (parameters ? parameters->length : 0) ) { - ereport(ERROR, + const char* message = "function with %d parameters doesn't exist"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_UNDEFINED_FUNCTION), errmsg("function \"%s\" with %d parameters doesn't exist ", name,parameters? parameters->length : 0))); @@ -23510,7 +25214,9 @@ makeCallFuncStmt(List* funcname,List* parameters) if (parameters && (narg < parameters->length)) { - ereport(ERROR, + const char* message = "function with %d parameters doesn't exist"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_UNDEFINED_FUNCTION), errmsg("function \"%s\" with %d parameters doesn't exist ", name, parameters->length))); @@ -23556,6 +25262,7 @@ makeCallFuncStmt(List* funcname,List* parameters) column = makeNode(ColumnRef); column->fields = list_make1(makeNode(A_Star)); column->location = -1; + column->indnum = 0; resTarget = makeNode(ResTarget); resTarget->name = NULL; @@ -23572,11 +25279,16 @@ makeCallFuncStmt(List* funcname,List* parameters) funcCall->agg_order = NIL; funcCall->over = NULL; funcCall->location = -1; + /*funcCall->pkgoid = pkgoid;*/ - if (has_overload_func) - funcCall->call_func = true; +#ifndef ENABLE_MULTIPLE_NODES + if (has_overload_func || is_call) +#else + if (has_overload_func) +#endif + funcCall->call_func = true; else - funcCall->call_func = false; + funcCall->call_func = false; rangeFunction = makeNode(RangeFunction); rangeFunction->funccallnode = (Node*)funcCall; @@ -23604,7 +25316,9 @@ IsValidIdent(char *input) /*The first character id numbers or dollar*/ if ((c >= '0' && c <= '9') || c == '$') { - ereport(ERROR, + const char* message = "invalid name"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("invalid name: %s", input))); return false; @@ -23620,7 +25334,9 @@ IsValidIdent(char *input) } else { - ereport(ERROR, + const char* message = "invalid name"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("invalid name: %s", input))); return false; @@ -23640,7 +25356,9 @@ IsValidGroupname(const char *input) { if (IS_HIGHBIT_SET(input[i])) { - ereport(ERROR, + const char* message = "node group name is not allowed to contain multibyte characters"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("node group name is not allowed to contain multibyte characters"))); } @@ -23648,43 +25366,6 @@ IsValidGroupname(const char *input) return true; } -static bool -checkNlssortArgs(const char *argname) -{ - List *sortlist = NULL; - char *nlskey = NULL; - char *nlsvalue = NULL; - - char *raw = pstrdup(argname); - - /* - * Split string like: NLS_SORT=SCHINESE_PINYIN_M,Converting strings to lowercase - * and removing back and forth spaces. - */ - if (!SplitIdentifierString(raw, '=', &sortlist) || list_length(sortlist) != 2) - { - return false; - } - - nlskey = (char *) linitial(sortlist); - - if (strcmp(nlskey, "nls_sort")) - { - return false; - } - - nlsvalue = (char *) lsecond(sortlist); - - if (strcmp(nlsvalue, "schinese_pinyin_m") && strcmp(nlsvalue, "generic_m_ci")) - { - return false; - } - - FREE_POINTER(raw); - - return true; -} - static void ParseUpdateMultiSet(List *set_target_list, SelectStmt *stmt, core_yyscan_t yyscanner) { /* @@ -23874,7 +25555,9 @@ static void parameter_check_execute_direct(const char* query) { #ifndef ENABLE_MULTIPLE_NODES if (IS_SINGLE_NODE) { - ereport(ERROR, + const char* message = "Un-support feature"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("Un-support feature"), errdetail("The distributed capability is not supported currently."))); @@ -23885,10 +25568,13 @@ static void parameter_check_execute_direct(const char* query) * when enable_nonsysadmin_execute_direct is on, any user can use EXECUTE DIRECT; */ if (!g_instance.attr.attr_security.enable_nonsysadmin_execute_direct && - !CheckExecDirectPrivilege(query)) - ereport(ERROR, + !CheckExecDirectPrivilege(query)) { + const char* message = "must be system admin or monitor admin to use EXECUTE DIRECT"; + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be system admin or monitor admin to use EXECUTE DIRECT"))); + } } static Node *make_node_from_scanbuf(int start_pos, int end_pos, core_yyscan_t yyscanner) @@ -23907,6 +25593,204 @@ static Node *make_node_from_scanbuf(int start_pos, int end_pos, core_yyscan_t yy return makeStringConst(str, start_pos); } +static int64 SequenceStrGetInt64(const char *str) +{ + const char *ptr = str; + + while (*ptr && isspace((unsigned char)*ptr)) { + ptr++; + } + + /* handle sign */ + if (*ptr == '-') { + ereport(errstate, + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("Sequence args %s is negative number\n", str))); + } else if (*ptr == '+') { + ptr++; + } + + while (*ptr) { + if (!isdigit((unsigned char)*ptr)) { + ereport(errstate, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("Sequence args %s is invalid\n", str))); + } + ptr++; + } + + return strtol(str, NULL, 10); +} + +static int GetLoadType(int load_type_f, int load_type_s) +{ + if (load_type_s != LOAD_DATA_UNKNOWN) { + return load_type_s; + } else if (load_type_f != LOAD_DATA_UNKNOWN) { + return load_type_f; + } + + return LOAD_DATA_INSERT; +} + +static Node *MakeSqlLoadNode(char *colname) +{ + SqlLoadColExpr* n = makeNode(SqlLoadColExpr); + n->colname = colname; + n->const_info = NULL; + n->sequence_info = NULL; + n->is_filler = false; + n->scalar_spec = NULL; + + return (Node *)n; +} + +static bool IsConnectByRootIdent(Node* node) +{ + if (!IsA(node, ColumnRef)) { + return false; + } + ColumnRef* cr = (ColumnRef*) node; + List* l = (cr != NULL) ? cr->fields : NULL; + Node* sn = list_length(l) > 0 ? linitial_node(Node, l) : NULL; + if (sn != NULL && !IsA(sn, String)){ + return false; + } + char* colname = strVal(sn); + return (strcasecmp("connect_by_root", colname) == 0); +} + +static void ValidateTripleTuple(Node* node, core_yyscan_t yyscanner, int location, char* token) +{ + if (!IsConnectByRootIdent(node)) { + ereport(ERROR, + (errmodule(MOD_PARSER), errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("Invalid use of identifiers."), + parser_errposition(location), + errdetail("Syntax error found near token \"%s\"", token), + errcause("Unsupported expression found in SELECT statement"), + erraction("Check and revise your query or contact Huawei engineers."))); + } +} + +static void FilterStartWithUseCases(SelectStmt* stmt, List* locking_clause, core_yyscan_t yyscanner, int location) +{ + if (stmt->startWithClause != NULL && locking_clause != NULL) { + ereport(ERROR, + (errmodule(MOD_PARSER), errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("Syntax error found."), + parser_errposition(location), + errdetail("FOR UPDATE/SHARE cannot be used with START WITH CONNECT BY clauses"), + errcause("Unsupported expression found in SELECT statement"), + erraction("Check and revise your query or contact Huawei engineers."))); + } +} + + +static Node* MakeConnectByRootNode(ColumnRef* cr, int location) +{ + FuncCall *n = makeNode(FuncCall); + n->funcname = list_make1(makeString("connect_by_root")); + n->args = list_make1(cr); + n->agg_order = NIL; + n->agg_star = FALSE; + n->agg_distinct = FALSE; + n->func_variadic = FALSE; + n->over = NULL; + n->location = location; + n->call_func = false; + return (Node*) n; +} + +static char* MakeConnectByRootColName(char* tabname, char* colname) +{ + char* ret = NULL; + if (tabname != NULL) { + int max_len = strlen("connect_by_root") + strlen(tabname) + 1 + strlen(colname) + 1; + ret = (char *)palloc(max_len); + strcpy_s(ret, max_len, "connect_by_root"); + strcat_s(ret, max_len, tabname); + strcat_s(ret, max_len, "."); + strcat_s(ret, max_len,colname); + } else { + int max_len = strlen("connect_by_root") + strlen(colname) + 1; + ret = (char *)palloc(max_len); + strcpy_s(ret, max_len, "connect_by_root"); + strcat_s(ret, max_len, colname); + } + return ret; +} + +#ifndef ENABLE_MULTIPLE_NODES +static bool CheckWhetherInColList(char *colname, List *col_list) +{ + ListCell* lc = NULL; + char *colname_l = pg_strtolower(colname); + + if (col_list == NULL) { + return true; + } + + foreach (lc, col_list) { + char* name = strVal(lfirst(lc)); + if (strcmp(name, colname_l) == 0) { + return true; + } + } + + return false; +} +#endif + +static int GetFillerColIndex(char *filler_col_name, List *col_list) +{ + ListCell* lc = NULL; + int index = 0; + + if (col_list == NULL) { + ereport(errstate, (errcode(ERRCODE_INVALID_COLUMN_REFERENCE), + errmsg("Column list cannot be empty for \"FILLER\""))); + return InvalidAttrNumber; + } + + foreach (lc, col_list) { + index++; + char* colname = strVal(lfirst(lc)); + if (strcmp(colname, filler_col_name) == 0) { + return index; + } + } + + ereport(errstate, (errcode(ERRCODE_INVALID_COLUMN_REFERENCE), + errmsg("Filler col \"%s\" is not in the col list", filler_col_name))); + return InvalidAttrNumber; +} + +static void RemoveFillerCol(List *filler_list, List *col_list) +{ + ListCell* filler_cell = NULL; + ListCell* col_cell = NULL; + ListCell* prev = NULL; + SqlLoadFillerInfo *fillerInfo = NULL; + char* colname = NULL; + + if (filler_list == NULL || col_list == NULL) { + return; + } + + foreach (filler_cell, filler_list) { + fillerInfo = (SqlLoadFillerInfo *)lfirst(filler_cell); + prev = NULL; + foreach (col_cell, col_list) { + colname = strVal(lfirst(col_cell)); + if (strcmp(fillerInfo->colname, colname) == 0) { + list_delete_cell(col_list, col_cell, prev); + break; + } + prev = col_cell; + } + } + + return; +} + /* * Must undefine this stuff before including scan.c, since it has different * definitions for these macros. diff --git a/src/common/backend/parser/hint_gram.y b/src/common/backend/parser/hint_gram.y index a2ae0dd6a..2ef455612 100755 --- a/src/common/backend/parser/hint_gram.y +++ b/src/common/backend/parser/hint_gram.y @@ -33,7 +33,7 @@ static double convert_to_numeric(Node *value); %} -%pure-parser +%define api.pure %expect 0 %parse-param {yyscan_t yyscanner} diff --git a/src/common/backend/parser/parse_agg.cpp b/src/common/backend/parser/parse_agg.cpp index f3c6a923d..f173c553f 100644 --- a/src/common/backend/parser/parse_agg.cpp +++ b/src/common/backend/parser/parse_agg.cpp @@ -817,6 +817,14 @@ static bool check_ungrouped_columns_walker(Node* node, check_ungrouped_columns_c /* Found an ungrouped local variable; generate error message */ attname = get_rte_attribute_name(rte, var->varattno); + + /* Fix attname if the RTE has been rewrited by start with...connect by. */ + char* orig_attname = attname; + if (IsSWCBRewriteRTE(rte)) { + attname = strrchr(attname, '@'); + attname = (attname != NULL) ? (attname + 1) : orig_attname; + } + if (context->sublevels_up == 0) { ereport(ERROR, (errcode(ERRCODE_GROUPING_ERROR), @@ -826,6 +834,7 @@ static bool check_ungrouped_columns_walker(Node* node, check_ungrouped_columns_c context->in_agg_direct_args ? errdetail("Direct arguments of an ordered-set aggregate must use only grouped columns.") : 0, + rte->swConverted ? errdetail("Please check your start with rewrite table's column.") : 0, parser_errposition(context->pstate, var->location))); } else { ereport(ERROR, diff --git a/src/common/backend/parser/parse_clause.cpp b/src/common/backend/parser/parse_clause.cpp index 1fa018723..5e60326fb 100644 --- a/src/common/backend/parser/parse_clause.cpp +++ b/src/common/backend/parser/parse_clause.cpp @@ -5,6 +5,7 @@ * * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -29,6 +30,7 @@ #include "nodes/nodeFuncs.h" #include "optimizer/clauses.h" #include "optimizer/tlist.h" +#include "optimizer/planner.h" #include "parser/analyze.h" #include "parser/parsetree.h" #include "parser/parse_clause.h" @@ -38,6 +40,7 @@ #include "parser/parse_oper.h" #include "parser/parse_relation.h" #include "parser/parse_target.h" +#include "parser/parse_cte.h" #include "pgxc/pgxc.h" #include "rewrite/rewriteManip.h" #include "storage/tcap.h" @@ -130,6 +133,13 @@ void transformFromClause(ParseState* pstate, List* frmList, bool isFirstNode, bo { ListCell* fl = NULL; + /* + * copy original fromClause for future start with rewrite + */ + if (pstate->p_addStartInfo) { + pstate->sw_fromClause = (List *)copyObject(frmList); + } + /* * The grammar will have produced a list of RangeVars, RangeSubselects, * RangeFunctions, and/or JoinExprs. Transform each one (possibly adding @@ -478,7 +488,7 @@ static RangeTblEntry* transformCTEReference(ParseState* pstate, RangeVar* r, Com { RangeTblEntry* rte = NULL; - if (r->ispartition) { + if (r->ispartition || r->issubpartition) { ereport( ERROR, (errcode(ERRCODE_UNDEFINED_TABLE), errmsg("relation \"%s\" is not partitioned table", r->relname))); } @@ -784,14 +794,41 @@ Node* transformFromClauseItem(ParseState* pstate, Node* n, RangeTblEntry** top_r } rtr = transformItem(pstate, rte, top_rte, top_rti, relnamespace); + + /* add startinfo if needed */ + if (pstate->p_addStartInfo) { + AddStartWithTargetRelInfo(pstate, n, rte, rtr); + } + return (Node*)rtr; } else if (IsA(n, RangeSubselect)) { /* sub-SELECT is like a plain relation */ RangeTblRef* rtr = NULL; RangeTblEntry* rte = NULL; + Node *sw_backup = NULL; + + if (pstate->p_addStartInfo) { + /* + * In start with case we should back up SubselectStmt for further + * SW Rewrite. + * */ + sw_backup = (Node *)copyObject(n); + } rte = transformRangeSubselect(pstate, (RangeSubselect*)n); rtr = transformItem(pstate, rte, top_rte, top_rti, relnamespace); + + /* add startinfo if needed */ + if (pstate->p_addStartInfo) { + AddStartWithTargetRelInfo(pstate, sw_backup, rte, rtr); + + /* + * (RangeSubselect*)n is mainly related to RTE during whole transform as pointer, + * so anything fixed on sw_backup could also fix back to (RangeSubselect*)n. + * */ + ((RangeSubselect*)n)->alias->aliasname = ((RangeSubselect*)sw_backup)->alias->aliasname; + } + return (Node*)rtr; } else if (IsA(n, RangeFunction)) { /* function is like a plain relation */ diff --git a/src/common/backend/parser/parse_coerce.cpp b/src/common/backend/parser/parse_coerce.cpp index c6a66dcfc..7bdb4ddf7 100644 --- a/src/common/backend/parser/parse_coerce.cpp +++ b/src/common/backend/parser/parse_coerce.cpp @@ -5,6 +5,7 @@ * * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -879,11 +880,20 @@ static Node* coerce_record_to_complex( rte = GetRTEByRangeTablePosn(pstate, rtindex, sublevels_up); expandRTE(rte, rtindex, sublevels_up, vlocation, false, NULL, &args); - } else + } else { + bool isParamExtenRecord = node && IsA(node, Param) && ((Param*)node)->paramkind == PARAM_EXTERN + && ((Param*)node)->paramtype == RECORDOID; + if (isParamExtenRecord) { + /* package record var'type same with target type, no need cast, just return */ + if (((Param*)node)->recordVarTypOid == targetTypeId) { + return node; + } + } ereport(ERROR, (errcode(ERRCODE_CANNOT_COERCE), errmsg("cannot cast type %s to %s", format_type_be(RECORDOID), format_type_be(targetTypeId)), parser_coercion_errposition(pstate, location, node))); + } tupdesc = lookup_rowtype_tupdesc(targetTypeId, -1); newargs = NIL; @@ -1331,9 +1341,17 @@ Oid select_common_type(ParseState* pstate, List* exprs, const char* context, Nod } } - if (u_sess->attr.attr_sql.sql_compatibility == C_FORMAT && context != NULL && - (0 == strncmp(context, "CASE", sizeof("CASE")) || 0 == strncmp(context, "COALESCE", sizeof("COALESCE")))) { - /* To C format, we need handle numeric and string mix situation*/ + if ((u_sess->attr.attr_sql.sql_compatibility == C_FORMAT && context != NULL && + (0 == strncmp(context, "CASE", sizeof("CASE")) || 0 == strncmp(context, "COALESCE", sizeof("COALESCE")))) || + (ENABLE_SQL_BETA_FEATURE(A_STYLE_COERCE) && context != NULL && + (0 == strncmp(context, "CASE", sizeof("CASE"))))) { + /* + * To C format, we need handle numeric and string mix situation. + * For A format, type should be coerced by the first case, therefore, it can accept cases like + * select decode(1, 2, 'a', 3); + * where the default value 3 will be cast to the first value "a"'s type category. We temporarily fix this by + * using C format coercion. + */ ptype = choose_specific_expr_type(pstate, exprs, context); } /* Follow A db nvl*/ diff --git a/src/common/backend/parser/parse_cte.cpp b/src/common/backend/parser/parse_cte.cpp index de5d9d1d7..48229c1b2 100644 --- a/src/common/backend/parser/parse_cte.cpp +++ b/src/common/backend/parser/parse_cte.cpp @@ -128,6 +128,7 @@ List* transformWithClause(ParseState* pstate, WithClause* withClause) cte->cterecursive = false; cte->cterefcount = 0; + cte->referenced_by_subquery = false; if (!IsA(cte->ctequery, SelectStmt)) { /* must be a data-modifying statement */ diff --git a/src/common/backend/parser/parse_expr.cpp b/src/common/backend/parser/parse_expr.cpp index 3124d8b7e..7b77c3343 100644 --- a/src/common/backend/parser/parse_expr.cpp +++ b/src/common/backend/parser/parse_expr.cpp @@ -18,15 +18,18 @@ #include "catalog/pg_type.h" #include "catalog/pg_proc.h" +#include "catalog/gs_package.h" #include "commands/dbcommands.h" #include "commands/sequence.h" #include "db4ai/predict_by.h" +#include "executor/node/nodeCtescan.h" #include "foreign/foreign.h" #include "miscadmin.h" #include "nodes/makefuncs.h" #include "nodes/nodeFuncs.h" #include "optimizer/clauses.h" #include "optimizer/var.h" +#include "optimizer/planner.h" #include "parser/analyze.h" #include "parser/parser.h" #include "parser/parse_coerce.h" @@ -43,6 +46,7 @@ #include "utils/lsyscache.h" #include "utils/plpgsql.h" #include "utils/xml.h" +#include "funcapi.h" extern Node* makeAConst(Value* v, int location); extern Value* makeStringValue(char* str); @@ -69,7 +73,6 @@ static Node* transformXmlSerialize(ParseState* pstate, XmlSerialize* xs); static Node* transformBooleanTest(ParseState* pstate, BooleanTest* b); static Node* transformCurrentOfExpr(ParseState* pstate, CurrentOfExpr* cexpr); static Node* transformPredictByFunction(ParseState* pstate, PredictByFunction* cexpr); -static Node* transformColumnRef(ParseState* pstate, ColumnRef* cref); static Node* transformWholeRowRef(ParseState* pstate, RangeTblEntry* rte, int location); static Node* transformIndirection(ParseState* pstate, Node* basenode, List* indirection); static Node* transformTypeCast(ParseState* pstate, TypeCast* tc); @@ -79,6 +82,10 @@ static Node* make_row_distinct_op(ParseState* pstate, List* opname, RowExpr* lro static Node* convertStarToCRef(RangeTblEntry* rte, char* catname, char* nspname, char* relname, int location); static bool IsSequenceFuncCall(Node* filed1, Node* filed2, Node* filed3); static Node* transformSequenceFuncCall(ParseState* pstate, Node* field1, Node* field2, Node* field3, int location); +static Node* transformConnectByRootFuncCall(ParseState* pstate, Node* funcNameVal, ColumnRef *cref); +static char *ColumnRefFindRelname(ParseState *pstate, const char *colname); +static Node *transformStartWithColumnRef(ParseState *pstate, ColumnRef *cref, char **colname); +static Node* tryTransformFunc(ParseState* pstate, List* fields, int location); #define OrientedIsCOLorPAX(rte) ((rte)->orientation == REL_COL_ORIENTED || (rte)->orientation == REL_PAX_ORIENTED) @@ -440,10 +447,14 @@ static Node* replaceExprAliasIfNecessary(ParseState* pstate, char* colname, Colu foreach (lc, pstate->p_target_list) { tle = (TargetEntry*)lfirst(lc); /* - * in a select stmt in stored procudre, a columnref may be a param(e.g. a declared var or the stored procedure's - * arg), which is not a alias, so can not be matched here. + * 1. in a select stmt in stored procudre, a columnref may be a param(e.g. a declared var or the stored + * procedure's arg), which is not a alias, so can not be matched here. + * 2. in a select stmt in stored procudre such like a[1],a[2],a[3], they have same name, + * so, we should pass this target. */ - if (tle->resname != NULL && !IsA(tle->expr, Param) && + bool isArrayParam = IsA(tle->expr, ArrayRef) && ((ArrayRef*)tle->expr)->refexpr != NULL && + IsA(((ArrayRef*)tle->expr)->refexpr, Param); + if (tle->resname != NULL && !IsA(tle->expr, Param) && !isArrayParam && strncmp(tle->resname, colname, strlen(colname) + 1) == 0) { if (checkExprHasWindowFuncs((Node*)tle->expr)) { ereport(ERROR, @@ -494,12 +505,32 @@ static Node* ParseColumnRef(ParseState* pstate, RangeTblEntry* rte, char* colnam return node; } +static ColumnRef *fixSWNameSubLevel(RangeTblEntry *rte, char *rname, char **colname) +{ + ListCell *lc = NULL; + + foreach(lc, rte->eref->colnames) { + Value *val = (Value *)lfirst(lc); + + if (strstr(strVal(val), *colname)) { + *colname = pstrdup(strVal(val)); + break; + } + } + + ColumnRef* c = makeNode(ColumnRef); + c->fields = list_make2((Node*)makeString(rname), (Node*)makeString(*colname)); + c->location = -1; + + return c; +} + /* * Transform a ColumnRef. * * If you find yourself changing this code, see also ExpandColumnRefStar. */ -static Node* transformColumnRef(ParseState* pstate, ColumnRef* cref) +Node* transformColumnRef(ParseState* pstate, ColumnRef* cref) { Node* node = NULL; char* nspname = NULL; @@ -573,6 +604,15 @@ static Node* transformColumnRef(ParseState* pstate, ColumnRef* cref) AssertEreport(IsA(field1, String), MOD_OPT, ""); colname = strVal(field1); + if (pstate->p_hasStartWith) { + Node *expr = transformStartWithColumnRef(pstate, cref, &colname); + + /* function case, return directly */ + if (expr != NULL) { + return expr; + } + } + /* * Try to identify as an unqualified column * @@ -643,6 +683,17 @@ static Node* transformColumnRef(ParseState* pstate, ColumnRef* cref) "Alias \"%s\" contains subplan, which is not supported to use in grouping() function", colname))); } + /* + * Now give the p_bind_variable_columnref_hook, check column index. only DBE_SQL can get here. + */ + if (node == NULL) { + if (pstate->p_bind_variable_columnref_hook != NULL) { + node = (*pstate->p_bind_variable_columnref_hook)(pstate, cref); + if (node != NULL) { + return node; + } + } + } } break; } @@ -683,6 +734,33 @@ static Node* transformColumnRef(ParseState* pstate, ColumnRef* cref) AssertEreport(IsA(field2, String), MOD_OPT, ""); colname = strVal(field2); + if (rte->rtekind == RTE_SUBQUERY && rte->swSubExist) { + cref = fixSWNameSubLevel(rte, relname, &colname); + } + + if (pstate->p_hasStartWith || rte->swConverted) { + Node *expr = transformStartWithColumnRef(pstate, cref, &colname); + + /* function case, return directly */ + if (expr != NULL) { + return expr; + } + + if (strstr(colname, "@")) { + ListCell *lc = NULL; + + foreach(lc, pstate->p_rtable) { + RangeTblEntry *tbl = (RangeTblEntry *)lfirst(lc); + + if (tbl->relname != NULL && + strcmp(tbl->relname, "tmp_reuslt") == 0) { + rte = tbl; + break; + } + } + } + } + node = ParseColumnRef(pstate, rte, colname, cref); break; } @@ -815,6 +893,20 @@ static Node* transformColumnRef(ParseState* pstate, ColumnRef* cref) parser_errposition(pstate, cref->location))); } } + + if (node == NULL && u_sess->attr.attr_sql.sql_compatibility == A_FORMAT) { + node = tryTransformFunc(pstate, cref->fields, cref->location); + if (node) { + return node; + } + } + /* check current column match request index or not, use value in func in A_FORMAT */ + if (u_sess->attr.attr_sql.sql_compatibility == A_FORMAT) { + Node* check = plpgsql_check_match_var(node, pstate, cref); + if (check) { + return check; + } + } /* * Throw error if no translation found. @@ -853,6 +945,103 @@ static Node* transformColumnRef(ParseState* pstate, ColumnRef* cref) return node; } +static bool isCol2Function(List* fields) +{ + char* schemaname = NULL; + char* pkgname = NULL; + char* funcname = NULL; + DeconstructQualifiedName(fields, &schemaname, &funcname, &pkgname); + Oid npsOid = InvalidOid; + Oid pkgOid = InvalidOid; + if (schemaname != NULL) { + npsOid = get_namespace_oid(schemaname, true); + } + else { + npsOid = getCurrentNamespace(); + } + + if (pkgname != NULL) { + pkgOid = PackageNameListGetOid(fields, true); + } + + bool is_found = false; + /* check args and if have return arg*/ + CatCList *catlist = NULL; +#ifndef ENABLE_MULTIPLE_NODES + if (t_thrd.proc->workingVersionNum < 92470) { + catlist = SearchSysCacheList1(PROCNAMEARGSNSP, CStringGetDatum(funcname)); + } else { + catlist = SearchSysCacheList1(PROCALLARGS, CStringGetDatum(funcname)); + } +#else + catlist = SearchSysCacheList1(PROCNAMEARGSNSP, CStringGetDatum(funcname)); +#endif + for (int i = 0; i < catlist->n_members; i++) { + HeapTuple proctup = &catlist->members[i]->tuple; + Form_pg_proc procform = (Form_pg_proc)GETSTRUCT(proctup); + /* get function all args */ + Oid *p_argtypes = NULL; + char **p_argnames = NULL; + char *p_argmodes = NULL; + int allArgs = get_func_arg_info(proctup, &p_argtypes, &p_argnames, &p_argmodes); + if (allArgs > 0 || !OidIsValid(procform->prorettype)) { + continue; + } + + if (OidIsValid(npsOid)) { + /* Consider only procs in specified namespace */ + if (procform->pronamespace != npsOid) { + continue; + } + } + + if (OidIsValid(pkgOid)) { + bool isNull = false; + Datum packageid_datum = SysCacheGetAttr(PROCOID, proctup, Anum_pg_proc_packageid, &isNull); + Oid packageid = ObjectIdGetDatum(packageid_datum); + if (packageid != pkgOid) { + continue; + } + } + is_found = true; + } + ReleaseSysCacheList(catlist); + return is_found; +} + +static Node* tryTransformFunc(ParseState* pstate, List* fields, int location) +{ + if (!isCol2Function(fields)) { + return NULL; + } + + Node* result = NULL; + FuncCall *fn = makeNode(FuncCall); + fn->funcname = fields; + fn->args = NIL; + fn->agg_order = NIL; + fn->agg_star = FALSE; + fn->agg_distinct = FALSE; + fn->func_variadic = FALSE; + fn->over = NULL; + fn->location = location; + fn->call_func = false; + /* function must have 0 args */ + List* targs = NIL; + + /* ... and hand off to ParseFuncOrColumn */ + result = ParseFuncOrColumn(pstate, fn->funcname, targs, fn, fn->location, fn->call_func); + + /* extract out parameter for package function */ + if (IsPackageFunction(fn->funcname) && result != NULL && nodeTag(result) == T_FuncExpr && fn->call_func) { + FuncExpr* funcexpr = (FuncExpr*)result; + int funcoid = funcexpr->funcid; + funcexpr->args = extract_function_outarguments(funcoid, funcexpr->args, fn->funcname); + } + + return result; +} + static Node* transformParamRef(ParseState* pstate, ParamRef* pref) { Node* result = NULL; @@ -1202,6 +1391,38 @@ static Node* transformAExprIn(ParseState* pstate, A_Expr* a) return result; } +static bool IsStartWithFunction(FuncExpr* result) +{ + return result->funcid == SYS_CONNECT_BY_PATH_FUNCOID || + result->funcid == CONNECT_BY_ROOT_FUNCOID; +} + +static bool NeedExtractOutParam(FuncCall* fn, Node* result) +{ + if (result == NULL || nodeTag(result) != T_FuncExpr) { + return false; + } + + /* Always extract for called package functions */ + if (IsPackageFunction(fn->funcname) && fn->call_func) { + return true; + } + + /* + * When proc_outparam_override is on, extract all but select func + */ + FuncExpr* funcexpr = (FuncExpr*)result; + char prokind = get_func_prokind(funcexpr->funcid); + if (!PROC_IS_PRO(prokind) && !fn->call_func) { + return false; + } + + if (enable_out_param_override()) { + return true; + } + return false; +} + static Node* transformFuncCall(ParseState* pstate, FuncCall* fn) { List* targs = NIL; @@ -1226,8 +1447,17 @@ static Node* transformFuncCall(ParseState* pstate, FuncCall* fn) /* ... and hand off to ParseFuncOrColumn */ result = ParseFuncOrColumn(pstate, fn->funcname, targs, fn, fn->location, fn->call_func); + if (IsStartWithFunction((FuncExpr*)result) && !pstate->p_hasStartWith) { + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmodule(MOD_OPT), + errmsg("Invalid function call."), + errdetail("START WITH CONNECT BY function found in non-hierarchical query."), + errcause("Incorrect query input"), + erraction("Please check and revise your query"))); + } + /* extract out parameter for package function */ - if (IsPackageFunction(fn->funcname) && result != NULL && nodeTag(result) == T_FuncExpr && fn->call_func) { + if (NeedExtractOutParam(fn, result)) { FuncExpr* funcexpr = (FuncExpr*)result; int funcoid = funcexpr->funcid; funcexpr->args = extract_function_outarguments(funcoid, funcexpr->args, fn->funcname); @@ -1320,6 +1550,8 @@ static Node* transformCaseExpr(ParseState* pstate, CaseExpr* c) if (OidIsValid(c->casetype)) { return (Node*)c; } + bool saved_is_case_when = pstate->p_is_case_when; + pstate->p_is_case_when = true; newc = makeNode(CaseExpr); /* transform the test expression, if any */ @@ -1417,7 +1649,7 @@ static Node* transformCaseExpr(ParseState* pstate, CaseExpr* c) } newc->location = c->location; - + pstate->p_is_case_when = saved_is_case_when; return (Node*)newc; } @@ -1512,6 +1744,7 @@ static Node* transformSubLink(ParseState* pstate, SubLink* sublink) param->paramtypmod = exprTypmod((Node*)tent->expr); param->paramcollid = exprCollation((Node*)tent->expr); param->location = -1; + param->tableOfIndexType = InvalidOid; right_list = lappend(right_list, param); } @@ -2602,12 +2835,189 @@ static bool IsSequenceFuncCall(Node* filed1, Node* filed2, Node* filed3) } if (strcmp(funcname, "nextval") == 0 || strcmp(funcname, "currval") == 0) { - if (filed1 != NULL && get_rel_relkind(get_relname_relid(relname, nspid)) == RELKIND_SEQUENCE) { + if (filed1 != NULL && RELKIND_IS_SEQUENCE(get_rel_relkind(get_relname_relid(relname, nspid)))) { return true; - } else if (filed1 == NULL && get_rel_relkind(RelnameGetRelid(relname)) == RELKIND_SEQUENCE) { + } else if (filed1 == NULL && RELKIND_IS_SEQUENCE(get_rel_relkind(RelnameGetRelid(relname)))) { return true; } } return false; } + +/* + * start with transform support + */ +static Node *transformStartWithColumnRef(ParseState *pstate, ColumnRef *cref, char **colname) +{ + Assert (*colname != NULL); + + Node *field1 = NULL; + Node *field2 = NULL; + char *local_column_ref = *colname; + + int len = list_length(cref->fields); + switch (len) { + case 1: { + field1 = (Node*)linitial(cref->fields); + + if (pg_strcasecmp(local_column_ref, "connect_by_root") == 0 ) { + Node *funexpr = transformConnectByRootFuncCall(pstate, field1, cref); + + /* + * Return function funexpr, otherwise process + * connect_by_root as regular case + */ + if (funexpr != NULL) { + return funexpr; + } + } + + /* for pseudo column, we don't do column name replacement */ + if (IsPseudoReturnColumn(local_column_ref) || + pg_strcasecmp(local_column_ref, "connect_by_root") == 0) { + return NULL; + } + + char *relname = ColumnRefFindRelname(pstate, local_column_ref); + if (relname == NULL) { + elog(LOG, "do not find colname %s in sw-aborted RTE, maybe it's a normal column", *colname); + return NULL; + } + + *colname = makeStartWithDummayColname(relname, local_column_ref); + field1 = (Node*)makeString(pstrdup(*colname)); + cref->fields = list_make1(field1); + + break; + } + case 2: { + field1 = (Node*)linitial(cref->fields); + field2 = (Node*)lsecond(cref->fields); + + char *relname = strVal(field1); + + /* Already rewrite column once relname equal tmp_reuslt */ + if (pg_strcasecmp(relname, "tmp_reuslt") == 0) { + return NULL; + } + + *colname = makeStartWithDummayColname(relname, local_column_ref); + field1 = (Node *)makeString("tmp_reuslt"); + field2 = (Node*)makeString(pstrdup(*colname)); + cref->fields = list_make2(field1, field2); + + break; + } + + default: + break; + } + + return NULL; +} + +static Node* transformConnectByRootFuncCall(ParseState* pstate, Node* funcNameVal, ColumnRef *cref) +{ + Assert (pg_strcasecmp(strVal(funcNameVal), "connect_by_root") == 0 && + IsA(pstate->p_sw_selectstmt, SelectStmt)); + + /* find the targe column name */ + List *targetlist = pstate->p_sw_selectstmt->targetList; + ListCell *lc = NULL; + + char *relname = NULL; + char *colname = NULL; + + /* scan SelectStmt's targetlist to find corresponding ColumnRef */ + foreach (lc, targetlist) { + ResTarget *rt = (ResTarget *)lfirst(lc); + + if (equal(rt->val, cref)) { + colname = rt->name; + + /* + * Indicate we do not find a case "connect_by_root column", so return to + * transformColumnRef and treat conect_by_column as a regular RTE's entry + */ + if (colname == NULL) { + return NULL; + } + + relname = ColumnRefFindRelname(pstate, colname); + if (relname == NULL) { + elog(ERROR, "do not find colname %s in sw-aborted RTE", colname); + return NULL; + } + + colname = makeStartWithDummayColname(relname, colname); + + break; + } + } + + /* construct function call expr */ + Value* argExpr = (Value *)makeColumnRef("tmp_reuslt", colname, -1); + List* args = list_make1(argExpr); + List* funcExpr = list_make1((Value*)funcNameVal); + FuncCall* fn = makeFuncCall(funcExpr, args, cref->location); + + return transformFuncCall(pstate, fn); +} + +/* + * Note, currently, only support 1 fild ColumnRef, will expand to support multiple case + */ +static char *ColumnRefFindRelname(ParseState *pstate, const char *colname) +{ + ListCell *lc1 = NULL; + ListCell *lc2 = NULL; + char *relname = NULL; + int count = 0; + + while (pstate != NULL) { + foreach(lc1, pstate->p_rtable) { + RangeTblEntry *rte = (RangeTblEntry *)lfirst(lc1); + + if (!rte->swAborted) { + continue; + } + + if (rte->rtekind == RTE_RELATION || rte->rtekind == RTE_SUBQUERY || rte->rtekind == RTE_CTE) { + List *colnames = rte->eref->colnames; + + foreach(lc2, colnames) { + Value *col = (Value *)lfirst(lc2); + if (strcmp(colname, strVal(col)) == 0) { + if (rte->rtekind == RTE_RELATION) { + relname = (rte->alias && rte->alias->aliasname) ? + rte->alias->aliasname : rte->relname; + } else if (rte->rtekind == RTE_SUBQUERY) { + relname = rte->alias->aliasname; + } else if (rte->rtekind == RTE_CTE) { + relname = (rte->alias && rte->alias->aliasname) ? + rte->alias->aliasname : rte->ctename; + } + + count++; + } + } + } + } + + /* If we found just break */ + if (count > 1) { + ereport(ERROR, + (errcode(ERRCODE_AMBIGUOUS_COLUMN), + errmsg("column reference \"%s\" is ambiguous", colname))); + } + + if (count == 1) { + break; + } + + pstate = pstate->parentParseState; + } + + return relname; +} diff --git a/src/common/backend/parser/parse_func.cpp b/src/common/backend/parser/parse_func.cpp index f0b9b18fa..73de82e59 100644 --- a/src/common/backend/parser/parse_func.cpp +++ b/src/common/backend/parser/parse_func.cpp @@ -5,6 +5,7 @@ * * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -119,7 +120,6 @@ Node* ParseFuncOrColumn(ParseState* pstate, List* funcname, List* fargs, FuncCal for (l = list_head(fargs); l != NULL; l = nextl) { Node* arg = (Node*)lfirst(l); Oid argtype = exprType(arg); - nextl = lnext(l); if (argtype == VOIDOID && IsA(arg, Param) && !is_column && !agg_within_group) { @@ -1398,7 +1398,30 @@ FuncCandidateList func_select_candidate(int nargs, Oid* input_typeids, FuncCandi if (ncandidates == 1) return candidates; +#ifndef ENABLE_MULTIPLE_NODES + Oid caller_pkg_oid = InvalidOid; + if (u_sess->plsql_cxt.curr_compile_context != NULL && + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package != NULL) { + caller_pkg_oid = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->pkg_oid; + } else { + caller_pkg_oid = u_sess->plsql_cxt.running_pkg_oid; + } + nbestMatch = 0; + ncandidates = 0; + last_candidate = NULL; + for (current_candidate = candidates; current_candidate != NULL; current_candidate = current_candidate->next) { + nmatch = 0; + if (current_candidate->packageOid == caller_pkg_oid) { + nmatch++; + } + keep_candidate(nmatch, nbestMatch, current_candidate, last_candidate, candidates, ncandidates); + } + if (last_candidate) /* terminate rebuilt list */ + last_candidate->next = NULL; + if (ncandidates == 1) + return candidates; +#endif return NULL; /* failed to select a best candidate */ } /* func_select_candidate() */ @@ -1460,6 +1483,34 @@ FuncDetailCode func_get_detail(List* funcname, List* fargs, List* fargnames, int *refSynOid = InvalidOid; } +#ifndef ENABLE_MULTIPLE_NODES + if (enable_out_param_override()) { + /* For A compatiablity, CALL statement only can invoke Procedure in SQL or Function in PLSQL, */ + /* and SELECT statement can only invoke Function. but now it does't distinguish for compatible with the old code.*/ + raw_candidates = FuncnameGetCandidates(funcname, nargs, fargnames, expand_variadic, expand_defaults, false, true, PROKIND_UNKNOWN); + } else { + /* Get list of possible candidates from namespace search */ + raw_candidates = FuncnameGetCandidates(funcname, nargs, fargnames, expand_variadic, expand_defaults, false); + + /* Get list of possible candidates from namespace search including proallargtypes for package function */ + if (call_func && IsPackageFunction(funcname)) { + all_candidates = + FuncnameGetCandidates(funcname, nargs, fargnames, expand_variadic, expand_defaults, false, true); + if (all_candidates != NULL) { + if (raw_candidates != NULL) { + best_candidate = raw_candidates; + while (best_candidate && best_candidate->next) { + best_candidate = best_candidate->next; + } + + best_candidate->next = all_candidates; + } else { + raw_candidates = all_candidates; + } + } + } + } +#else /* Get list of possible candidates from namespace search */ raw_candidates = FuncnameGetCandidates(funcname, nargs, fargnames, expand_variadic, expand_defaults, false); @@ -1480,14 +1531,16 @@ FuncDetailCode func_get_detail(List* funcname, List* fargs, List* fargnames, int } } } +#endif /* * Quickly check if there is an exact match to the input datatypes (there * can be only one) */ for (best_candidate = raw_candidates; best_candidate != NULL; best_candidate = best_candidate->next) { - if (memcmp(argtypes, best_candidate->args, nargs * sizeof(Oid)) == 0) + if (memcmp(argtypes, best_candidate->args, nargs * sizeof(Oid)) == 0) { break; + } } if (best_candidate == NULL) { @@ -1933,7 +1986,7 @@ Oid LookupFuncName(List* funcname, int nargs, const Oid* argtypes, bool noError) * LookupTypeNameOid * Convenience routine to look up a type, silently accepting shell types */ -static Oid LookupTypeNameOid(const TypeName* typname) +Oid LookupTypeNameOid(const TypeName* typname) { Oid result; Type typtup; @@ -2245,4 +2298,4 @@ static Oid cl_get_input_param_original_type(Oid func_id, int argno) ReleaseSysCache(gs_oldtup); } return ret; -} \ No newline at end of file +} diff --git a/src/common/backend/parser/parse_hint.cpp b/src/common/backend/parser/parse_hint.cpp index fac9044a8..f33cc4927 100755 --- a/src/common/backend/parser/parse_hint.cpp +++ b/src/common/backend/parser/parse_hint.cpp @@ -134,6 +134,8 @@ extern Const* makeConst(Oid consttype, int32 consttypmod, Oid constcollid, int c bool constisnull, bool constbyval, Cursor_Data* vars = NULL); extern Numeric int64_to_numeric(int64 v); +static bool IsScanUseDesthint(void* val1, void* val2); + /* Expression kind codes for preprocess_expression */ #define EXPRKIND_QUAL 0 #define EXPRKIND_TARGET 1 @@ -3661,3 +3663,46 @@ bool has_no_gpc_hint(HintState* hintState) } return false; } + +/* + * check if is dest hinttype, it's used by function list_cell_clear + * val1: ScanMethodHint + * val2: HintKeyword + */ +static bool IsScanUseDesthint(void* val1, void* val2) +{ + ScanMethodHint *scanmethod = (ScanMethodHint*)lfirst((ListCell*)val1); + HintKeyword* desthint = (HintKeyword*)val2; + + if (scanmethod == NULL) { + return false; + } + + if (scanmethod->base.hint_keyword == *desthint) { + return true; + } else { + return false; + } +} + +void RemoveQueryHintByType(Query *query, HintKeyword hint) +{ + if (query->hintState && query->hintState->scan_hint) { + query->hintState->scan_hint = list_cell_clear(query->hintState->scan_hint, &hint, IsScanUseDesthint); + } +} + +bool CheckNodeNameHint(HintState* hintstate) +{ + if (hintstate == NULL) { + return false; + } + ListCell* lc = NULL; + foreach (lc, hintstate->set_hint) { + SetHint* hint = (SetHint*)lfirst(lc); + if (unlikely(strcmp(hint->name, "node_name") == 0)) { + return true; + } + } + return false; +} \ No newline at end of file diff --git a/src/common/backend/parser/parse_merge.cpp b/src/common/backend/parser/parse_merge.cpp index 657ab7b31..22d6c1a76 100644 --- a/src/common/backend/parser/parse_merge.cpp +++ b/src/common/backend/parser/parse_merge.cpp @@ -820,6 +820,13 @@ static void checkUnsupportedCases(ParseState* pstate, MergeStmt* stmt) (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("Target relation type is not supported for %s", stmt->is_insert_update ? "INSERT ... ON DUPLICATE KEY UPDATE" : "MERGE INTO"))); + + if (RelationIsSubPartitioned(pstate->p_target_relation)) { + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("Subpartition is not supported for %s", + stmt->is_insert_update ? "INSERT ... ON DUPLICATE KEY UPDATE" : "MERGE INTO"))); + } } static Query* tryTransformMergeInsertStmt(ParseState* pstate, MergeStmt* stmt) diff --git a/src/common/backend/parser/parse_node.cpp b/src/common/backend/parser/parse_node.cpp index b30b519d1..c38b85e4a 100644 --- a/src/common/backend/parser/parse_node.cpp +++ b/src/common/backend/parser/parse_node.cpp @@ -5,6 +5,7 @@ * * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -304,6 +305,7 @@ ArrayRef* transformArraySubscripts(ParseState* pstate, Node* arrayBase, Oid arra List* lowerIndexpr = NIL; ListCell* idx = NULL; ArrayRef* aref = NULL; + bool isIndexByVarchar = false; /* * Caller may or may not have bothered to determine elementType. Note @@ -358,9 +360,20 @@ ArrayRef* transformArraySubscripts(ParseState* pstate, Node* arrayBase, Oid arra lowerIndexpr = lappend(lowerIndexpr, subexpr); } subexpr = transformExpr(pstate, ai->uidx); - /* If it's not int4 already, try to coerce */ - subexpr = coerce_to_target_type( - pstate, subexpr, exprType(subexpr), INT4OID, -1, COERCION_ASSIGNMENT, COERCE_IMPLICIT_CAST, -1); + if (get_typecategory(arrayType) == TYPCATEGORY_TABLEOF_VARCHAR) { + isIndexByVarchar = true; + } + if ((nodeTag(arrayBase) == T_Param && ((Param*)arrayBase)->tableOfIndexType == VARCHAROID) + || isIndexByVarchar) { + /* subcript type is varchar */ + subexpr = coerce_to_target_type(pstate, subexpr, exprType(subexpr), + ((Param*)arrayBase)->tableOfIndexType, -1, COERCION_ASSIGNMENT, COERCE_IMPLICIT_CAST, -1); + } else { + /* If it's not int4 already, try to coerce */ + subexpr = coerce_to_target_type( + pstate, subexpr, exprType(subexpr), INT4OID, -1, COERCION_ASSIGNMENT, COERCE_IMPLICIT_CAST, -1); + } + if (subexpr == NULL) { ereport(ERROR, (errcode(ERRCODE_DATATYPE_MISMATCH), diff --git a/src/common/backend/parser/parse_oper.cpp b/src/common/backend/parser/parse_oper.cpp index 6d218f5cd..19acb9dc7 100644 --- a/src/common/backend/parser/parse_oper.cpp +++ b/src/common/backend/parser/parse_oper.cpp @@ -52,6 +52,7 @@ typedef struct OprCacheKey { Oid left_arg; /* Left input OID, or 0 if prefix op */ Oid right_arg; /* Right input OID, or 0 if postfix op */ Oid search_path[MAX_CACHED_PATH_LEN]; + bool use_a_style_coercion; } OprCacheKey; typedef struct OprCacheEntry { @@ -61,12 +62,13 @@ typedef struct OprCacheEntry { Oid opr_oid; /* OID of the resolved operator */ } OprCacheEntry; -static Oid binary_oper_exact(List* opname, Oid arg1, Oid arg2); +static Oid binary_oper_exact(List* opname, Oid arg1, Oid arg2, bool use_a_style_coercion); static FuncDetailCode oper_select_candidate(int nargs, Oid* input_typeids, FuncCandidateList candidates, Oid* operOid); static const char* op_signature_string(List* op, char oprkind, Oid arg1, Oid arg2); static void op_error( ParseState* pstate, List* op, char oprkind, Oid arg1, Oid arg2, FuncDetailCode fdresult, int location); -static bool make_oper_cache_key(OprCacheKey* key, List* opname, Oid ltypeId, Oid rtypeId); +static bool make_oper_cache_key( + OprCacheKey* key, List* opname, Oid ltypeId, Oid rtypeId, bool use_a_style_coercion = false); static Oid find_oper_cache_entry(OprCacheKey* key); static void make_oper_cache_entry(OprCacheKey* key, Oid opr_oid); @@ -253,19 +255,28 @@ static HeapTuple find_mapping_in_cache(OprCacheKey key, bool key_ok) * the same type as the other operand for this purpose. Also, consider * the possibility that the other operand is a domain type that needs to * be reduced to its base type to find an "exact" match. + * + * If A-style coercion is active, other = unkonw will be treated as + * text = text rather than other = other for other cases. */ -static Oid binary_oper_exact(List* opname, Oid arg1, Oid arg2) +static Oid binary_oper_exact(List* opname, Oid arg1, Oid arg2, bool use_a_style_coercion) { Oid result; bool was_unknown = false; + bool other_was_num = false; /* Unspecified type for one of the arguments? then use the other */ if ((arg1 == UNKNOWNOID) && (arg2 != InvalidOid)) { arg1 = arg2; was_unknown = true; + other_was_num = get_typecategory(arg2) == TYPCATEGORY_NUMERIC; } else if ((arg2 == UNKNOWNOID) && (arg1 != InvalidOid)) { arg2 = arg1; was_unknown = true; + other_was_num = get_typecategory(arg1) == TYPCATEGORY_NUMERIC; + } + if (use_a_style_coercion && was_unknown && other_was_num) { + return OpernameGetOprid(opname, TEXTOID, TEXTOID); } result = OpernameGetOprid(opname, arg1, arg2); @@ -369,6 +380,7 @@ Operator oper(ParseState* pstate, List* opname, Oid ltypeId, Oid rtypeId, bool n bool key_ok = false; FuncDetailCode fdresult = FUNCDETAIL_NOTFOUND; HeapTuple tup; + bool use_a_style_coercion = false; if (inNumeric && u_sess->attr.attr_sql.convert_string_to_digit && ((IsIntType(ltypeId) && IsCharType(rtypeId)) || (IsIntType(rtypeId) && IsCharType(ltypeId)))) { @@ -379,7 +391,11 @@ Operator oper(ParseState* pstate, List* opname, Oid ltypeId, Oid rtypeId, bool n /* * Try to find the mapping in the lookaside cache. */ - key_ok = make_oper_cache_key(&key, opname, ltypeId, rtypeId); + if (pstate != NULL) { + use_a_style_coercion = pstate->p_is_case_when && ENABLE_SQL_BETA_FEATURE(A_STYLE_COERCE); + } + + key_ok = make_oper_cache_key(&key, opname, ltypeId, rtypeId, use_a_style_coercion); tup = find_mapping_in_cache(key, key_ok); if (HeapTupleIsValid(tup)) return (Operator)tup; @@ -387,7 +403,7 @@ Operator oper(ParseState* pstate, List* opname, Oid ltypeId, Oid rtypeId, bool n /* * First try for an "exact" match. */ - operOid = binary_oper_exact(opname, ltypeId, rtypeId); + operOid = binary_oper_exact(opname, ltypeId, rtypeId, use_a_style_coercion); if (!OidIsValid(operOid)) { /* * Otherwise, search for the most suitable candidate. @@ -891,7 +907,7 @@ Expr* make_scalar_array_op(ParseState* pstate, List* opname, bool useOr, Node* l * Returns TRUE if successful, FALSE if the search_path overflowed * (hence no caching is possible). */ -static bool make_oper_cache_key(OprCacheKey* key, List* opname, Oid ltypeId, Oid rtypeId) +static bool make_oper_cache_key(OprCacheKey* key, List* opname, Oid ltypeId, Oid rtypeId, bool use_a_style_coercion) { char* schemaname = NULL; char* opername = NULL; @@ -908,6 +924,7 @@ static bool make_oper_cache_key(OprCacheKey* key, List* opname, Oid ltypeId, Oid strlcpy(key->oprname, opername, NAMEDATALEN); key->left_arg = ltypeId; key->right_arg = rtypeId; + key->use_a_style_coercion = use_a_style_coercion; if (schemaname != NULL) { /* search only in exact schema given */ diff --git a/src/common/backend/parser/parse_param.cpp b/src/common/backend/parser/parse_param.cpp index d0113ad67..661ec4a81 100644 --- a/src/common/backend/parser/parse_param.cpp +++ b/src/common/backend/parser/parse_param.cpp @@ -110,6 +110,7 @@ static Node* fixed_paramref_hook(ParseState* pstate, ParamRef* pref) param->paramtypmod = -1; param->paramcollid = get_typcollation(param->paramtype); param->location = pref->location; + param->tableOfIndexType = InvalidOid; return (Node*)param; } @@ -165,6 +166,7 @@ static Node* variable_paramref_hook(ParseState* pstate, ParamRef* pref) param->paramtypmod = -1; param->paramcollid = get_typcollation(param->paramtype); param->location = pref->location; + param->tableOfIndexType = InvalidOid; return (Node*)param; } diff --git a/src/common/backend/parser/parse_relation.cpp b/src/common/backend/parser/parse_relation.cpp index 03feb6bcc..025341518 100755 --- a/src/common/backend/parser/parse_relation.cpp +++ b/src/common/backend/parser/parse_relation.cpp @@ -29,6 +29,8 @@ #include "parser/parse_hint.h" #include "parser/parse_relation.h" #include "parser/parse_type.h" +#include "parser/parse_clause.h" +#include "parser/parse_expr.h" #ifdef PGXC #include "access/transam.h" #include "pgxc/pgxc.h" @@ -38,9 +40,11 @@ #include "utils/rel.h" #include "utils/rel_gs.h" #include "utils/syscache.h" +#include "utils/pl_package.h" #include "catalog/pg_partition_fn.h" #include "catalog/pg_synonym.h" #include "parser/parse_utilcmd.h" +#include "parser/parse_expr.h" #include "commands/tablecmds.h" #include "catalog/pg_user_status.h" #include "commands/user.h" @@ -49,9 +53,11 @@ #include "storage/lmgr.h" #include "tcop/utility.h" #include "optimizer/bucketinfo.h" +#include "optimizer/planner.h" #include "storage/tcap.h" #include "gs_ledger/ledger_utils.h" +#define MAXSTRLEN ((1 << 11) - 1) static RangeTblEntry* scanNameSpaceForRefname(ParseState* pstate, const char* refname, int location); static RangeTblEntry* scanNameSpaceForRelid(ParseState* pstate, Oid relid, int location); static void markRTEForSelectPriv(ParseState* pstate, RangeTblEntry* rte, int rtindex, AttrNumber col); @@ -65,7 +71,40 @@ static int32* getValuesTypmods(RangeTblEntry* rte); static int specialAttNum(const char* attname); #endif -static Oid getPartitionOidForRTE(RangeTblEntry* rte, RangeVar* relation, ParseState* pstate, Relation rel); +static Oid getPartitionOidForRTE(RangeTblEntry *rte, RangeVar *relation, ParseState *pstate, Relation rel); +static Oid getSubPartitionOidForRTE(RangeTblEntry *rte, RangeVar *relation, ParseState *pstate, Relation rel, + Oid *partOid); + +static char *ReplaceSWCTEOutSrting(ParseState *pstate, RangeTblEntry *rte, char *label) +{ + ListCell *lc = NULL; + char *result = NULL; + char *relname = NULL; + + if (pstate->parentParseState != NULL) { + return label; + } + + foreach(lc, rte->origin_index) { + int index = (int)lfirst_int(lc); + RangeTblEntry *old_rte = (RangeTblEntry *)list_nth(pstate->p_rtable, index - 1); + + if (old_rte->rtekind == RTE_RELATION || old_rte->rtekind == RTE_CTE) { + relname = old_rte->relname; + } else if (old_rte->rtekind == RTE_SUBQUERY) { + relname = old_rte->alias->aliasname; + } + + /* replace cte alias name t1@c1 to c1 */ + if (strrchr(label, '@')) { + label = strrchr(label, '@'); + label += 1; + } + } + + result = pstrdup(label); + return result; +} /* * @Description: set the RTE common flags @@ -218,6 +257,19 @@ static RangeTblEntry* scanNameSpaceForRefname(ParseState* pstate, const char* re result = rte; } } + + /* handle start with...conenct by replace result with cte */ + if (result != NULL && pstate->p_hasStartWith && result->swAborted) { + foreach(l, pstate->p_rtable) { + RangeTblEntry *tbl = (RangeTblEntry *)lfirst(l); + + if (tbl->swConverted) { + result = tbl; + break; + } + } + } + return result; } @@ -991,7 +1043,7 @@ static Oid getPartitionOidForRTE(RangeTblEntry* rte, RangeVar* relation, ParseSt rangePartDef = makeNode(RangePartitionDefState); rangePartDef->boundary = relation->partitionKeyValuesList; - transformRangePartitionValue(pstate, (Node*)rangePartDef, false); + transformPartitionValue(pstate, (Node*)rangePartDef, false); rangePartDef->boundary = transformConstIntoTargetType( rel->rd_att->attrs, ((RangePartitionMap*)rel->partMap)->partitionKey, rangePartDef->boundary); @@ -1022,6 +1074,53 @@ static Oid getPartitionOidForRTE(RangeTblEntry* rte, RangeVar* relation, ParseSt return partitionOid; } +/* + * @@GaussDB@@ + * Target : data partition + * Brief : select * from subpartition (subpartition_name) + * Description : get partition oid for rte->partitionOid + */ +static Oid getSubPartitionOidForRTE(RangeTblEntry *rte, RangeVar *relation, ParseState *pstate, Relation rel, + Oid *partOid) +{ + Oid subPartitionOid = InvalidOid; + + if (!PointerIsValid(rte) || !PointerIsValid(relation) || !PointerIsValid(pstate) || !PointerIsValid(rel)) { + return InvalidOid; + } + + /* relation is not partitioned table. */ + if (!rte->ispartrel || rte->relkind != RELKIND_RELATION) { + ereport(ERROR, + (errcode(ERRCODE_UNDEFINED_TABLE), errmsg("relation \"%s\" is not partitioned table", relation->relname))); + } else { + /* relation is partitioned table, from clause is subpartition (subpartition_name). */ + if (PointerIsValid(relation->subpartitionname)) { + subPartitionOid = partitionNameGetPartitionOid(rte->relid, + relation->subpartitionname, + PART_OBJ_TYPE_TABLE_SUB_PARTITION, + AccessShareLock, + true, + false, + NULL, + NULL, + NoLock, + partOid); + /* partiton does not exist. */ + if (!OidIsValid(subPartitionOid)) { + ereport(ERROR, + (errcode(ERRCODE_UNDEFINED_TABLE), + errmsg("subpartition \"%s\" of relation \"%s\" does not exist", + relation->subpartitionname, + relation->relname))); + } + + rte->pname = makeAlias(relation->subpartitionname, NIL); + } + } + return subPartitionOid; +} + /* * Open a table during parse analysis * @@ -1033,8 +1132,8 @@ static Oid getPartitionOidForRTE(RangeTblEntry* rte, RangeVar* relation, ParseSt * would require importing storage/lock/lock.h into parse_relation.h. Since * LOCKMODE is typedef'd as int anyway, that seems like overkill. */ -Relation parserOpenTable(ParseState* pstate, const RangeVar* relation, int lockmode, bool isFirstNode, - bool isCreateView, bool isSupportSynonym) +Relation parserOpenTable(ParseState *pstate, const RangeVar *relation, int lockmode, bool isFirstNode, + bool isCreateView, bool isSupportSynonym) { Relation rel = NULL; ParseCallbackState pcbstate; @@ -1107,12 +1206,17 @@ Relation parserOpenTable(ParseState* pstate, const RangeVar* relation, int lockm relation->relname), errhint("Use WITH RECURSIVE, or re-order the WITH items to remove forward references."))); } else { + errno_t rc = 0; if (IS_PGXC_DATANODE) { /* * support multi-nodegroup, maybe the relation is in coordinator, * but not in datanode. */ if (detailInfo.len > 0) { + char message[MAXSTRLEN]; + rc = sprintf_s(message, MAXSTRLEN, "relation \"%s\" does not exist", relation->relname); + securec_check_ss_c(rc, "", ""); + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc, true); ereport(ERROR, (errcode(ERRCODE_UNDEFINED_TABLE), errmsg("relation \"%s\" does not exist on%s %s", @@ -1121,6 +1225,10 @@ Relation parserOpenTable(ParseState* pstate, const RangeVar* relation, int lockm g_instance.attr.attr_common.PGXCNodeName), errdetail("%s", detailInfo.data))); } else { + char message[MAXSTRLEN]; + rc = sprintf_s(message, MAXSTRLEN, "relation \"%s\" does not exist", relation->relname); + securec_check_ss_c(rc, "", ""); + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc, true); ereport(ERROR, (errcode(ERRCODE_UNDEFINED_TABLE), errmsg("relation \"%s\" does not exist on%s %s", @@ -1129,12 +1237,20 @@ Relation parserOpenTable(ParseState* pstate, const RangeVar* relation, int lockm g_instance.attr.attr_common.PGXCNodeName))); } } else { + char message[MAXSTRLEN]; + rc = sprintf_s(message, MAXSTRLEN, "relation \"%s\" does not exist", relation->relname); + securec_check_ss_c(rc, "", ""); + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc, true); if (detailInfo.len > 0) { ereport(ERROR, (errcode(ERRCODE_UNDEFINED_TABLE), errmsg("relation \"%s\" does not exist", relation->relname), errdetail("%s", detailInfo.data))); } else { + char message[MAXSTRLEN]; + rc = sprintf_s(message, MAXSTRLEN, "relation \"%s\" does not exist", relation->relname); + securec_check_ss_c(rc, "", ""); + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc, true); ereport(ERROR, (errcode(ERRCODE_UNDEFINED_TABLE), errmsg("relation \"%s\" does not exist", relation->relname))); @@ -1150,9 +1266,9 @@ Relation parserOpenTable(ParseState* pstate, const RangeVar* relation, int lockm /* check wlm session info whether is valid in this database */ if (!CheckWLMSessionInfoTableValid(relation->relname) && !u_sess->attr.attr_common.IsInplaceUpgrade) { - ereport(ERROR, + ereport(NOTICE, (errcode(ERRCODE_UNDEFINED_TABLE), - errmsg("relation \"%s\" does not exist", relation->relname), + errmsg("relation \"%s\" has data only in database \"postgres\"", relation->relname), errhint("please use database \"postgres\""))); } @@ -1236,6 +1352,11 @@ RangeTblEntry* addRangeTableEntry(ParseState* pstate, RangeVar* relation, Alias* rte->isContainPartition = true; rte->partitionOid = getPartitionOidForRTE(rte, relation, pstate, rel); } + /* select from clause contain subpartition. */ + if (relation->issubpartition) { + rte->isContainSubPartition = true; + rte->subpartitionOid = getSubPartitionOidForRTE(rte, relation, pstate, rel, &rte->partitionOid); + } if (!rte->relhasbucket && relation->isbucket) { ereport(ERROR, (errmsg("table is normal,cannot contains buckets(0,1,2...)"))); } @@ -1423,7 +1544,18 @@ RangeTblEntry* addRangeTableEntryForSubquery( if (varattno > numaliases) { char* attrname = NULL; - attrname = pstrdup(te->resname); + if (te->resname != NULL && + IsQuerySWCBRewrite(subquery) && + strstr(te->resname, "@")) { + rte->swSubExist = true; + + char *label = strrchr(te->resname, '@'); + label += 1; + attrname = pstrdup(label); + } else { + attrname = pstrdup(te->resname); + } + eref->colnames = lappend(eref->colnames, makeString(attrname)); } } @@ -1702,9 +1834,14 @@ RangeTblEntry* addRangeTableEntryForCTE( rte->rtekind = RTE_CTE; rte->ctename = cte->ctename; rte->ctelevelsup = levelsup; + if (levelsup > 0) { + cte->referenced_by_subquery = true; + } /* Self-reference if and only if CTE's parse analysis isn't completed */ rte->self_reference = !IsA(cte->ctequery, Query); + cte->self_reference = rte->self_reference; + rte->cterecursive = cte->cterecursive; AssertEreport(cte->cterecursive || !rte->self_reference, MOD_OPT, ""); /* Bump the CTE's refcount if this isn't a self-reference */ if (!rte->self_reference) { @@ -1783,7 +1920,15 @@ RangeTblEntry* addRangeTableEntryForCTE( */ if (pstate != NULL) { pstate->p_rtable = lappend(pstate->p_rtable, rte); - } + } + + /* + * If the CTE is rewrited from startwith/connectby. We need to add pseudo columns + * because it return parser tree from sub level and don't have pseudo column infos. + */ + if (cte->swoptions != NULL && IsA(cte->ctequery, Query) && pstate != NULL) { + AddStartWithCTEPseudoReturnColumns(cte, rte, list_length(pstate->p_rtable)); + } return rte; } @@ -1930,7 +2075,7 @@ void addRTEtoQuery( * output pointer for the unwanted one. */ void expandRTE(RangeTblEntry* rte, int rtindex, int sublevels_up, int location, bool include_dropped, List** colnames, - List** colvars) + List** colvars, ParseState* pstate) { int varattno; @@ -2165,16 +2310,26 @@ void expandRTE(RangeTblEntry* rte, int rtindex, int sublevels_up, int location, int32 coltypmod = lfirst_int(lcm); Oid colcoll = lfirst_oid(lcc); - varattno++; - if (colnames != NULL) { /* Assume there is one alias per output column */ char* label = strVal(lfirst(aliasp_item)); + if (rte->swConverted) { + /* skip pseudo return column in case of RTE expension for CTE case */ + if (IsPseudoReturnColumn(label)) { + continue; + } + + label = ReplaceSWCTEOutSrting(pstate, rte, label); + } + *colnames = lappend(*colnames, makeString(pstrdup(label))); aliasp_item = lnext(aliasp_item); } + /* counting varattno */ + varattno++; + if (colvars != NULL) { Var* varnode = NULL; @@ -2346,7 +2501,7 @@ List* expandRelAttrs(ParseState* pstate, RangeTblEntry* rte, int rtindex, int su List* te_list = NIL; bool is_ledger = is_ledger_usertable(rte->relid); - expandRTE(rte, rtindex, sublevels_up, location, false, &names, &vars); + expandRTE(rte, rtindex, sublevels_up, location, false, &names, &vars, pstate); /* * Require read access to the table. This is normally redundant with the @@ -2606,7 +2761,6 @@ bool get_rte_attribute_is_dropped(RangeTblEntry* rte, AttrNumber attnum) tp = SearchSysCache2(ATTNUM, ObjectIdGetDatum(rte->relid), Int16GetDatum(attnum)); if (!HeapTupleIsValid(tp)) { /* shouldn't happen */ - Assert(0); ereport(ERROR, (errcode(ERRCODE_CACHE_LOOKUP_FAILED), errmsg("cache lookup failed for attribute %d of relation %u", attnum, rte->relid))); @@ -2921,12 +3075,17 @@ errorMissingColumn(ParseState *pstate, * bad qualification name should end up at errorMissingRTE, not here, so * no need to work hard on this case.) */ - if (relname) - ereport(ERROR, + if (relname) { + char message[MAXSTRLEN]; + errno_t rc = 0; + rc = sprintf_s(message, MAXSTRLEN, "column %s.%s does not exist", relname, colname); + securec_check_ss_c(rc, "", ""); + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc, true); + ereport(ERROR, (errcode(ERRCODE_UNDEFINED_COLUMN), errmsg("column %s.%s does not exist", relname, colname), parser_errposition(pstate, location))); - + } /* * Otherwise, search the entire rtable looking for possible matches. If * we find one, emit a hint about it. diff --git a/src/common/backend/parser/parse_startwith.cpp b/src/common/backend/parser/parse_startwith.cpp new file mode 100644 index 000000000..d6749fead --- /dev/null +++ b/src/common/backend/parser/parse_startwith.cpp @@ -0,0 +1,1730 @@ +/* ------------------------------------------------------------------------- + * + * parse_startwith.cpp + * Implement start with related modules in transform state + * + * Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors + * + * + * IDENTIFICATION + * src/common/backend/parser/parse_startwith.cpp + * + * ------------------------------------------------------------------------- + */ + +#include "postgres.h" +#include "knl/knl_variable.h" + +#include "miscadmin.h" + +#include "access/heapam.h" +#include "catalog/catalog.h" +#include "catalog/heap.h" +#include "catalog/pg_synonym.h" +#include "catalog/pg_type.h" +#include "commands/defrem.h" +#include "commands/tablecmds.h" +#include "nodes/makefuncs.h" +#include "nodes/nodeFuncs.h" +#include "optimizer/clauses.h" +#include "optimizer/tlist.h" +#include "optimizer/planner.h" +#include "parser/analyze.h" +#include "parser/parsetree.h" +#include "parser/parse_clause.h" +#include "parser/parse_coerce.h" +#include "parser/parse_collate.h" +#include "parser/parse_expr.h" +#include "parser/parse_oper.h" +#include "parser/parse_relation.h" +#include "parser/parse_target.h" +#include "parser/parse_cte.h" +#include "pgxc/pgxc.h" +#include "rewrite/rewriteManip.h" +#include "storage/tcap.h" +#include "utils/guc.h" +#include "utils/lsyscache.h" +#include "utils/rel.h" +#include "utils/rel_gs.h" +#include "utils/syscache.h" + +/* + **************************************************************************************** + * @Brief: Oracle compatible START WITH...CONNECT BY support, define start with relevant + * data structures and routines + * + * @Note: The only entry point of START WITH in parser is transformStartWith() where + * all internal implementations are hiden behind + * + **************************************************************************************** + */ +typedef struct StartWithTransformContext { + ParseState* pstate; + List *relInfoList; + List *where_infos; + List *connectby_prior_name; + Node *startWithExpr; + Node *connectByExpr; + Node *whereClause; + List *siblingsOrderBy; + bool is_where; + StartWithConnectByType connect_by_type; + + /* + * for multiple pushdown case + */ + List *fromClause; + + /* + * connectByLevelExpr & connectByOtherExpr + * + * Normally consider performance to for connect by level/rownum, we extract the + * level/rownum expr from connectByExpr + * - connectByOtherExpr: evaluated in RecursiveUnion's inner join cond + * - connectByLevelExpr: evaluated in StartWithOp's node + * + * e.g. + * connectByExpr: (level < 10) AND (t1.c1 > 1) AND (t1.c2 > 0) + * connectByLevelExpr: level < 10 + * connectByOtherExpr: t1.c1 = 1 AND + */ + Node *connectByLevelExpr; + Node *connectByOtherExpr; + bool nocycle; +} StartWithTransformContext; + +typedef enum StartWithRewrite { + SW_NONE = 0, + SW_SINGLE, + SW_FROMLIST, + SW_JOINEXP, +} StaretWithRewrite; + +typedef struct StartWithCTEPseudoReturnAtts { + char *colname; + Oid coltype; + int32 coltypmod; + Oid colcollation; +} StartWithCTEPseudoReturnAtts; + +static StartWithCTEPseudoReturnAtts g_StartWithCTEPseudoReturnAtts[] = +{ + {"level", INT4OID, -1, InvalidOid}, + {"connect_by_isleaf", INT4OID, -1, InvalidOid}, + {"connect_by_iscycle", INT4OID, -1, InvalidOid}, + {"rownum", INT4OID, -1, InvalidOid} +}; + +/* function parsing startWithExpr and connectByExpr */ +static void transformStartWithClause(StartWithTransformContext *context, SelectStmt *stmt); + +static List *expandAllTargetList(List *targetRelInfoList); + +static List *ExtractColumnRefStartInfo(ParseState *pstate, ColumnRef *column, + char *relname, char *colname); +static void HandleSWCBColumnRef(StartWithTransformContext* context, Node *node); +static void StartWithWalker(StartWithTransformContext *context, Node *expr); +static void AddWithClauseToBranch(ParseState *pstate, SelectStmt *stmt, List *relInfoList); + +static void transformSingleRTE(ParseState* pstate, + Query* qry, + StartWithTransformContext *context, + Node *start_clause); +static void transformFromList(ParseState* pstate, + Query* qry, + StartWithTransformContext *context, + Node *n); +static RangeTblEntry *transformStartWithCTE(ParseState* pstate, List *prior_names); +static bool preSkipPLSQLParams(ParseState *pstate, ColumnRef *cref); + + +/* functions to make start-with converted CTE's left/right branch */ +static SelectStmt *CreateStartWithCTEOuterBranch(ParseState* pstate, + StartWithTransformContext *context, + List *relInfoList, + Node *startWithExpr, + Node *whereClause); +static SelectStmt *CreateStartWithCTEInnerBranch(ParseState* pstate, + StartWithTransformContext *context, + List *relInfoList, + Node *connectByExpr, + Node *whereClause); +static void CreateStartWithCTE(ParseState *pstate, + Query *qry, + SelectStmt *initpart, + SelectStmt *workpart, + StartWithTransformContext *context); + +static Node *makeBoolAConst(bool state, int location); +static StartWithRewrite ChooseSWCBStrategy(StartWithTransformContext context); + +static Node *makeBoolAConst(bool state, int location) +{ + A_Const *constExpr = makeNode(A_Const); + + constExpr->val.type = T_String; + constExpr->val.val.str = (char *)(state ? "t" : "f"); + constExpr->location = location; + + TypeCast *typecast = makeNode(TypeCast); + typecast->arg = (Node *)constExpr; + typecast->typname = makeTypeNameFromNameList( + list_make2(makeString("pg_catalog"), + makeString("bool"))); + typecast->location = location; + + return (Node *)typecast; +} + +/* + * --------------------------------------------------------------------------------------- + * + * Oracle Compatible "START WITH...CONNECT BY" support routines + * + * --------------------------------------------------------------------------------------- + */ +/* + **************************************************************************************** + * transformStartWith - + * + * @Brief: Start With primary entry point, all internal implementations are hiden behind + * processing implemantion are described as follow: + * + * exec_simple_query() + * -> parse_and_analyze() + * -> transformStmt() + * -> transformSelectStmt() {... details described as below ...} + * + * transformSelectStmt(pstate) { + * ... + * transformFromClause() { + * // identify START WITH...CONNECT BY's target relation and create a relevant + * // StartWithTargetRelInfo put them in parse->p_start_info and later processed in top + * // level transformStartWith() + * } + * ... + * transformStartWith() { + * // 1st. parse startWithExpr/connectByExpr + * transformStartWithClause(); + * + * // 2nd. convert a START WITH...CONNECT BY object into a recursive CTE + * transformSingleRTE() { + * // 2.1 construct CTE's lefttree, a.w.k non-recursive term + * CreateStartWithCTEOuterBranch(); + * + * // 2.2 construct CTE's righttree, a.w.k recursive term + * CreateStartWithCTEInnerBranch(); + * + * // 2.3 construct start with converted CTE object + * CreateStartWithCTE(); + * + * // 2.4 transform start with CTE normally as we did for a regular + * // with-recursive case + * transformStartWithCTE(); + * } + * } + * } + * + **************************************************************************************** + */ +void transformStartWith(ParseState *pstate, SelectStmt *stmt, Query *qry) +{ + ListCell *lc = NULL; + StartWithTransformContext context; + + if (pstate->p_start_info == NULL) { + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("Not found correct element in fromclause could be rewrited by start with/connect by."), + errdetail("Only support table and subquery in fromclause can be rewrited."))); + } + + errno_t rc = memset_s(&context, sizeof(StartWithTransformContext), + 0, sizeof(StartWithTransformContext)); + securec_check(rc, "\0", "\0"); + + context.pstate = pstate; + context.relInfoList = NULL; + context.connectby_prior_name = NULL; + + transformStartWithClause(&context, stmt); + pstate->p_hasStartWith = true; + + int lens = list_length(pstate->p_start_info); + if (lens != 1) { + context.relInfoList = pstate->p_start_info; + context.fromClause = pstate->sw_fromClause; + } + + /* set result-RTEs as replaced flag */ + foreach(lc, context.relInfoList) { + StartWithTargetRelInfo *info = (StartWithTargetRelInfo *)lfirst(lc); + info->rte->swAborted = true; + } + + /* Choose SWCB Rewrite Strategy. */ + StartWithRewrite op = ChooseSWCBStrategy(context); + if (op == SW_SINGLE) { + transformSingleRTE(pstate, qry, &context, (Node *)stmt->startWithClause); + } else { + transformFromList(pstate, qry, &context, (Node *)stmt->startWithClause); + } + + return; +} + +/* + * -------------------------------------------------------------------------------------- + * @Brief: SWCB's helper function in transform stage, here we create StartWithInfo object + * to each "start with" applied FromClauseItem and insert it into pastate, + * normally we are handling following case: + * - RangeVar(baserel) + * - RangeSubSelect (subquery) + * - Function and CTE will considered in the future + * + * @Param + * - pstate: paser stage + * - n: one FromClauseItem + * - rte: the FromClauseItem relevant RTE + * - rte: the FromClauseItem relevant RTR + * + * @Return: none + * -------------------------------------------------------------------------------------- + */ +void AddStartWithTargetRelInfo(ParseState* pstate, Node* relNode, + RangeTblEntry* rte, RangeTblRef *rtr) +{ + StartWithTargetRelInfo *startInfo = makeNode(StartWithTargetRelInfo); + + if (IsA(relNode, RangeVar)) { + RangeVar* rv = (RangeVar*)relNode; + + startInfo->relname = rv->relname; + if (rv->alias != NULL) { + startInfo->aliasname = rv->alias->aliasname; + } + startInfo->rte = rte; + startInfo->rtr = rtr; + startInfo->rtekind = rte->rtekind; + + RangeVar *tbl = (RangeVar *)copyObject(relNode); + + startInfo->tblstmt = (Node *)tbl; + startInfo->columns = rte->eref->colnames; + } else if (IsA(relNode, RangeSubselect)) { + RangeSubselect *sub = (RangeSubselect *)relNode; + + /* name __unnamed_subquery__ */ + if (pg_strcasecmp(sub->alias->aliasname, "__unnamed_subquery__") != 0) { + startInfo->aliasname = sub->alias->aliasname; + } else { + char swname[NAMEDATALEN]; + int rc = snprintf_s(swname, sizeof(swname), sizeof(swname) - 1, + "sw_subquery_%d", pstate->sw_subquery_idx); + securec_check_ss(rc, "", ""); + pstate->sw_subquery_idx++; + + sub->alias->aliasname = pstrdup(swname); + startInfo->aliasname = sub->alias->aliasname; + } + + startInfo->rte = rte; + startInfo->rtr = rtr; + startInfo->rtekind = rte->rtekind; + startInfo->tblstmt = relNode; + startInfo->columns = rte->eref->colnames; + } else { + ereport(ERROR, + (errcode(ERRCODE_UNRECOGNIZED_NODE_TYPE), + errmsg("Not support unrecognized node type: %d %s once AddStartWithInfo.", + (int)nodeTag(relNode), nodeToString(relNode)))); + } + + pstate->p_start_info = lappend(pstate->p_start_info, startInfo); + + return; +} + +/* + * -------------------------------------------------------------------------------------- + * @Brief: Generate dummy target name for start with converted RTE, relation is renamed + * as "t1" -> "tmp_result", "t1.c1" -> "tmp_result@c1" + * + * @param: + * - alias: base cte's ctename + * - colname: base table's attr name + * + * @Return: a copied string version of dummy-colname + * -------------------------------------------------------------------------------------- + */ +char *makeStartWithDummayColname(char *alias, char *column) +{ + errno_t rc; + char *result = NULL; + char *split = "@"; + char dumy_name[NAMEDATALEN]; + + int total = strlen(alias) + strlen(column) + strlen(split); + if (total >= NAMEDATALEN) { + ereport(ERROR, + (errcode(ERRCODE_UNRECOGNIZED_NODE_TYPE), + errmsg("Exceed maximum StartWithDummayColname length %d, relname %s, column %s.", + total, alias, column))); + } + + rc = memset_s(dumy_name, NAMEDATALEN, 0, NAMEDATALEN); + securec_check_c(rc, "\0", "\0"); + rc = strncat_s(dumy_name, NAMEDATALEN, alias, strlen(alias)); + securec_check_c(rc, "\0", "\0"); + + /* add split operator @ */ + rc = strncat_s(dumy_name, NAMEDATALEN, split, strlen(split)); + securec_check_c(rc, "\0", "\0"); + + rc = strncat_s(dumy_name, NAMEDATALEN, column, strlen(column)); + securec_check_c(rc, "\0", "\0"); + + result = pstrdup(dumy_name); + + return result; +} + +/* + * -------------------------------------------------------------------------------------- + * @Brief: to be added + * + * @param: + * + * @Return: to be add + * -------------------------------------------------------------------------------------- + */ +void AdaptSWSelectStmt(ParseState *pstate, SelectStmt *stmt) +{ + ListCell *lc = NULL; + List *tbls = NULL; + + foreach(lc, pstate->p_start_info) { + StartWithTargetRelInfo *info = (StartWithTargetRelInfo *)lfirst(lc); + + if (!info->rte->swAborted) { + tbls = lappend(tbls, info->tblstmt); + } + } + + RangeVar *cte = makeRangeVar(NULL, "tmp_reuslt", -1); + tbls = lappend(tbls, cte); + + stmt->fromClause = tbls; + + return; +} + +bool IsSWCBRewriteRTE(RangeTblEntry *rte) +{ + bool result = false; + + if (rte->rtekind != RTE_CTE) { + return result; + } + + if (pg_strcasecmp(rte->ctename, "tmp_reuslt") != 0) { + return result; + } + + result = rte->swConverted; + return result; +} + +/* + * -------------------------------------------------------------------------------------- + * @Brief: to be added + * + * @param: + * + * @Return: to be add + * -------------------------------------------------------------------------------------- + */ +bool IsQuerySWCBRewrite(Query *query) +{ + bool isSWCBRewrite = false; + ListCell *lc = NULL; + + foreach(lc, query->rtable) { + RangeTblEntry *rte = (RangeTblEntry *)lfirst(lc); + + /* + * Only RTE_CTE chould be rerwite startwith CTE, others skip. + * */ + if (rte->rtekind != RTE_CTE) { + continue; + } + + if (pg_strcasecmp(rte->ctename, "tmp_reuslt") == 0) { + isSWCBRewrite = true; + break; + } + } + + return isSWCBRewrite; +} + +static StartWithRewrite ChooseSWCBStrategy(StartWithTransformContext context) +{ + StartWithRewrite op = SW_NONE; + int info_lens = list_length(context.relInfoList); + + /* + * Only one StartWithInfos is SW_SINGLE, and multiples stands for + * SW_FROMLIST Strategy. Others is coming. + */ + if (info_lens == 1) { + op = SW_SINGLE; + } else { + op = SW_FROMLIST; + } + + return op; +} + +/* + * -------------------------------------------------------------------------------------- + * @Brief: pre-check PLSQL input/output columns same as transformColumnRef + * + * @param: + * + * @Return: skip these columns during startWithWalker or not + * -------------------------------------------------------------------------------------- + */ +static bool preSkipPLSQLParams(ParseState *pstate, ColumnRef *cref) +{ + Node* node = NULL; + + /* + * Give the PreParseColumnRefHook, if any, first shot. If it returns + * non-null then that's all, folks. + */ + if (pstate->p_pre_columnref_hook != NULL) { + node = (*pstate->p_pre_columnref_hook)(pstate, cref); + if (node != NULL) { + return true; + } + } + + if (pstate->p_post_columnref_hook != NULL) { + Node* hookresult = NULL; + + /* + * if node is not a table column, we should pass a null to the hook, + * or it will misjudge the columnref as ambiguous. + */ + hookresult = (*pstate->p_post_columnref_hook)(pstate, cref, node); + if (hookresult != NULL) { + return true; + } + } + + if (pstate->p_bind_variable_columnref_hook != NULL) { + node = (*pstate->p_bind_variable_columnref_hook)(pstate, cref); + if (node != NULL) { + return true; + } + } + + return false; +} + +/* + * -------------------------------------------------------------------------------------- + * @Brief: to be input + * + * @param: to be input + * + * @Return: to be input + * -------------------------------------------------------------------------------------- + */ +static List *ExtractColumnRefStartInfo(ParseState *pstate, ColumnRef *column, + char *relname, char *colname) +{ + ListCell *lc1 = NULL; + ListCell *lc2 = NULL; + List *extract_infos = NIL; + + foreach(lc1, pstate->p_start_info) { + StartWithTargetRelInfo *start_info = (StartWithTargetRelInfo *)lfirst(lc1); + + bool column_exist = false; + /* + * relname not exist, then check column names, + * otherwise relanme exist, then check StartWithInfo's relname/aliasname directly. + */ + if (relname == NULL) { + foreach(lc2, start_info->columns) { + Value *val = (Value *)lfirst(lc2); + if (strcmp(colname, strVal(val)) == 0) { + column_exist = true; + break; + } + } + } else { + if (start_info->aliasname != NULL && + strcmp(start_info->aliasname, relname) == 0) { + column_exist = true; + } else if (start_info->relname != NULL && + strcmp(start_info->relname, relname) == 0) { + column_exist = true; + } else { + column_exist = false; + } + } + + /* handle with sub startwith cte targetlist */ + if (start_info->rte->swSubExist) { + Assert(start_info->rtekind == RTE_SUBQUERY); + + foreach(lc2, start_info->columns) { + Value *val = (Value *)lfirst(lc2); + if (strstr(strVal(val), colname)) { + column_exist = true; + colname = pstrdup(strVal(val)); + break; + } + } + } + + if (column_exist) { + extract_infos = lappend(extract_infos, start_info); + + if (start_info->rtekind == RTE_RELATION) { + relname = start_info->aliasname ? start_info->aliasname : start_info->relname; + } else if (start_info->rtekind == RTE_SUBQUERY) { + relname = start_info->aliasname; + } else if (start_info->rtekind == RTE_CTE) { + relname = start_info->aliasname ? start_info->aliasname : start_info->relname; + } + + column->fields = list_make2(makeString(relname), makeString(colname)); + } + } + + if (list_length(extract_infos) > 1) { + ereport(ERROR, + (errcode(ERRCODE_AMBIGUOUS_COLUMN), + errmsg("column reference \"%s\" is ambiguous.", colname))); + } + + if (list_length(extract_infos) == 0) { + ereport(WARNING, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("Cannot match table with startwith/connectby column %s.%s, maybe it is a upper query column", + relname, colname))); + } + + return extract_infos; +} + +/* + * -------------------------------------------------------------------------------------- + * @Brief: A helper function invoked under startWithWalker(), where transform ConnectBy + * or StartWith expression, reach a ColumnRef node, we need evaluate it into its + * "baserel->cte" format by call makeStartWithDummayColname() + * + * @param: + * - context: the startwith conversion context + * - node: the ColumnRef node, basically we need assum it is with type of ColumnRef + * + * @Return: none + * -------------------------------------------------------------------------------------- + */ +static void HandleSWCBColumnRef(StartWithTransformContext *context, Node *node) +{ + List *result = NIL; + char* relname = NULL; + char* colname = NULL; + ParseState *pstate = context->pstate; + + if (node == NULL) { + return; + } + + Assert(nodeTag(node) == T_ColumnRef); + ColumnRef *column = (ColumnRef *)node; + bool prior = column->prior; + char *initname = strVal(linitial(column->fields)); + + if (pg_strcasecmp(initname, "tmp_reuslt") == 0) { + return; + } + + /* Skip params in procedure */ + if (preSkipPLSQLParams(pstate, column) && !prior) { + return; + } + + ColumnRef *preColumn = (ColumnRef *)copyObject(column); + Node *preResult = transformColumnRef(pstate, preColumn); + if (preResult == NULL) { + return; + } + + int len = list_length(column->fields); + switch (len) { + case 1: { + Node* field1 = (Node*)linitial(column->fields); + colname = strVal(field1); + + /* + * In-place replace columnref with two fields, like convert id to test.id, + * which will be helpful for after SWCB rewrite. So here columnref will contain + * two fields after ExtractColumnRefStartInfo. + */ + result = ExtractColumnRefStartInfo(pstate, column, NULL, colname); + + if (prior) { + char *dummy = makeStartWithDummayColname( + strVal(linitial(column->fields)), + strVal(lsecond(column->fields))); + + column->fields = list_make2(makeString("tmp_reuslt"), makeString(dummy)); + + /* record working table name */ + context->connectby_prior_name = lappend(context->connectby_prior_name, + makeString(dummy)); + } + + break; + } + case 2: { + Node* field1 = (Node*)linitial(column->fields); + Node* field2 = (Node*)lsecond(column->fields); + relname = strVal(field1); + colname = strVal(field2); + + result = ExtractColumnRefStartInfo(pstate, column, relname, colname); + + if (prior) { + char *dummy = makeStartWithDummayColname(strVal(linitial(column->fields)), + strVal(lsecond(column->fields))); + column->fields = list_make2(makeString("tmp_reuslt"), makeString(dummy)); + + /* record working table name */ + context->connectby_prior_name = lappend(context->connectby_prior_name, + makeString(dummy)); + } + + break; + } + default: { + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("Not support %d column lengths when HandleSWCBColumnRef", len))); + } + } + + if (context->is_where) { + context->where_infos = list_concat_unique(context->where_infos, result); + } else { + context->relInfoList = list_concat_unique(context->relInfoList, result); + } + + return; +} + +static bool is_cref_by_name(Node *expr, const char* col_name) +{ + if (expr == NULL || !IsA(expr, ColumnRef)) { + return false; + } + ColumnRef *cref = (ColumnRef *) expr; + char* colname = NameListToString(cref->fields); + bool ret = (strcasecmp(colname, col_name) == 0) ? true : false; + pfree(colname); + return ret; +} + +static Node* makeIntConst(int val, int location) +{ + A_Const *n = makeNode(A_Const); + + n->val.type = T_Integer; + n->val.val.ival = val; + n->location = location; + + return (Node *)n; +} + +static Node* tryReplaceFakeValue(Node *node) +{ + if (IsA(node, Rownum)) { + node = makeIntConst(CONNECT_BY_ROWNUM_FAKEVALUE, -1); + } else if (is_cref_by_name(node, "level")) { + node = makeIntConst(CONNECT_BY_LEVEL_FAKEVALUE, -1); + } + return node; +} + +static bool pseudo_level_rownum_walker(Node *node, Node* context_parent_node) +{ + if (node == NULL) { + return false; + } + + Node* newNode = tryReplaceFakeValue(node); + + /* Case 1: Fake value replacement did not occur. Return immediately. */ + if (newNode == node) { + return raw_expression_tree_walker(node, (bool (*)()) pseudo_level_rownum_walker, node); + } + + /* Case 2: Fake value replacement occurred. Need to update parent node */ + switch (nodeTag(context_parent_node)) { + case T_A_Expr: { + A_Expr *expr = (A_Expr *) context_parent_node; + if (expr->lexpr == node) { + expr->lexpr = newNode; + } else { + expr->rexpr = newNode; + } + break; + } + case T_TypeCast: { + TypeCast* tc = (TypeCast*) context_parent_node; + tc->arg = newNode; + break; + } + case T_NullTest: { + NullTest* nt = (NullTest*) context_parent_node; + nt->arg = (Expr*) newNode; + break; + } + default: + break; + } + return raw_expression_tree_walker(node, (bool (*)()) pseudo_level_rownum_walker, node); +} + +/* + * -------------------------------------------------------------------------------------- + * @Brief: SWCB's expr processing function, normally we do tow kinds of process + * (1). Recursively find a base column and do column name normalization for example: + * c1 -> t1.c1 aiming to provide more detail for later process + * (2). Find a const and identify connect-by-type ROWNUM/LEVEL + * + * @param + * - context: SWCB expression processing context, hold in-processing states and some + * processign result + * - expr: expression node + * + * @return: none, some of information is returned under *context + * -------------------------------------------------------------------------------------- + */ +static void StartWithWalker(StartWithTransformContext *context, Node *expr) +{ + if (expr == NULL) { + return; + } + + check_stack_depth(); + + switch (nodeTag(expr)) { + case T_ColumnRef: { + ColumnRef* colRef = (ColumnRef*)expr; + HandleSWCBColumnRef(context, (Node *)colRef); + break; + } + + case T_NullTest: { + NullTest* nullTestExpr = (NullTest*)expr; + Node* arg = (Node *)nullTestExpr->arg; + if (arg != NULL && nodeTag(arg) == T_ColumnRef) { + HandleSWCBColumnRef(context, arg); + } else { + StartWithWalker(context, arg); + } + break; + } + + case T_SubLink: { + SubLink *sublink = (SubLink *)expr; + Node *testexpr = sublink->testexpr; + if (testexpr != NULL && nodeTag(testexpr) == T_ColumnRef) { + HandleSWCBColumnRef(context, testexpr); + } else { + StartWithWalker(context, testexpr); + } + break; + } + + case T_CollateClause: { + CollateClause *cc = (CollateClause*) expr; + StartWithWalker(context, cc->arg); + break; + } + + case T_TypeCast: { + TypeCast* tc = (TypeCast*)expr; + StartWithWalker(context, tc->arg); + break; + } + + case T_List: { + List* l = (List*)expr; + ListCell* lc = NULL; + foreach (lc, l) { + StartWithWalker(context, (Node*)lfirst(lc)); + } + break; + } + + case T_FuncCall: { + ListCell *args = NULL; + FuncCall* fn = (FuncCall *)expr; + + foreach (args, fn->args) { + StartWithWalker(context, (Node*)lfirst(args)); + } + break; + } + + case T_A_Indirection: { + A_Indirection* idn = (A_Indirection *)expr; + StartWithWalker(context, idn->arg); + break; + } + + case T_A_Expr: { + A_Expr *a_expr = (A_Expr *)expr; + + switch (a_expr->kind) { + case AEXPR_OP: { + Node *left_expr = a_expr->lexpr; + Node *right_expr = a_expr->rexpr; + + if (left_expr != NULL && (is_cref_by_name(left_expr, "level") || + IsA(left_expr, Rownum))) { + context->connect_by_type = CONNECT_BY_MIXED_LEVEL; + context->connectByLevelExpr = (Node *)copyObject(a_expr); + a_expr->kind = AEXPR_OR; + a_expr->lexpr = makeBoolAConst(true, -1); + a_expr->rexpr = makeBoolAConst(true, -1); + A_Expr* cble = (A_Expr*) context->connectByLevelExpr; + A_Const *n = makeNode(A_Const); + n->val.type = T_Integer; + n->val.val.ival = IsA(left_expr, Rownum) ? + CONNECT_BY_ROWNUM_FAKEVALUE : CONNECT_BY_LEVEL_FAKEVALUE; + n->location = -1; + cble->lexpr = (Node*) n; + break; + } + + /* convert right/left expr surround AEXPR_OP */ + if (left_expr != NULL && nodeTag(left_expr) == T_ColumnRef) { + HandleSWCBColumnRef(context, left_expr); + } else { + StartWithWalker(context, left_expr); + } + + if (right_expr != NULL && nodeTag(right_expr) == T_ColumnRef) { + HandleSWCBColumnRef(context, right_expr); + } else { + StartWithWalker(context, right_expr); + } + + break; + } + case AEXPR_AND: + case AEXPR_OR: { + /* deep copy rexpr before walking into lexpr: + this is to prevent lexpr transformation procedures from tweaking rexpr + in cases when lexpr and rexpr share common nodes, + e.g. in 'between ... and ...' clauses duplicated columnrefs are found + in both lexpr and rexpr */ + a_expr->rexpr = (Node*) copyObject(a_expr->rexpr); + StartWithWalker(context, a_expr->lexpr); + StartWithWalker(context, a_expr->rexpr); + break; + } + case AEXPR_IN: { + StartWithWalker(context, a_expr->lexpr); + StartWithWalker(context, a_expr->rexpr); + break; + } + case AEXPR_NOT: { + StartWithWalker(context, a_expr->rexpr); + break; + } + default: { + ereport(ERROR, + (errmodule(MOD_PARSER), errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("Unsupported expression found in START WITH / CONNECT BY clause."), + errdetail("Unsupported expr type: %d.", (int)a_expr->kind), + errcause("Unsupported expression in START WITH / CONNECT BY clause."), + erraction("Check and revise your query or contact Huawei engineers."))); + break; + } + } + break; + } + + case T_A_Const: { + A_Const *n = (A_Const *)expr; + + int32 val = GetStartWithFakeConstValue(n); + if (val == CONNECT_BY_LEVEL_FAKEVALUE) { + context->connect_by_type = CONNECT_BY_LEVEL; + } else if (val == CONNECT_BY_ROWNUM_FAKEVALUE) { + context->connect_by_type = CONNECT_BY_ROWNUM; + } + + break; + } + + case T_ParamRef: { + break; + } + + default: { + ereport(ERROR, + (errmodule(MOD_PARSER), errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("Unsupported expression found in START WITH / CONNECT BY clause."), + errdetail("Unsupported node type: %d.", (int)nodeTag(expr)), + errcause("Unsupported expression in START WITH / CONNECT BY clause."), + erraction("Check and revise your query or contact Huawei engineers."))); + break; + } + + } + + return; +} + +static bool isForbiddenClausesPresent(SelectStmt *stmt) +{ + ListCell* cell = NULL; + foreach (cell, stmt->fromClause) { + Node* n = (Node*)lfirst(cell); + if (IsA(n, RangeTimeCapsule) || IsA(n, RangeTableSample)) { + return true; + } + } + return false; +} + +static void checkConnectByExprValidity(Node* connectByExpr) +{ + Node* node = tryReplaceFakeValue(connectByExpr); + if (node != connectByExpr) { + ereport(ERROR, + (errmodule(MOD_PARSER), errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("Unsupported expression found in CONNECT BY clause."), + errdetail("Pseudo column expects an operator"), + errcause("Unsupported expression in CONNECT BY clause."), + erraction("Check and revise your query or contact Huawei engineers."))); + } +} + +/* + * -------------------------------------------------------------------------------------- + * @Brief: transfrom startwith/connectby clasue + * 1. For startwith we need to replace column name, return info lists + * 2. For connect by we should replace column name(include table name and work table + * tmp_result name) and also record prior name then return ino lists. + * + * @param: + * - context: global SWCB conversion context + * - stmt: current SWCB's belonging SelectStmt + * + * @Return: to be input + * -------------------------------------------------------------------------------------- + */ +static void transformStartWithClause(StartWithTransformContext *context, SelectStmt *stmt) +{ + if (stmt == NULL) { + return; + } + + if (isForbiddenClausesPresent(stmt)) { + ereport(ERROR, + (errmodule(MOD_PARSER), errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("Cannot use start with / connect by with TABLESAMPLE / TIMECAPSULE."), + errdetail("Unsupported target type"), + errcause("Unsupported target type in START WITH / CONNECT BY clause."), + erraction("Check and revise your query or contact Huawei engineers."))); + } + + StartWithClause *clause = (StartWithClause *)stmt->startWithClause; + Node *startWithExpr = clause->startWithExpr; + Node *connectByExpr = clause->connectByExpr; + context->connectByExpr = connectByExpr; + context->startWithExpr = startWithExpr; + context->connect_by_type = CONNECT_BY_PRIOR; + context->nocycle = clause->nocycle; + context->siblingsOrderBy = (List *)clause->siblingsOrderBy; + + /* Handling CONNECT BY ROWNUM / LEVEL */ + if (startWithExpr == NULL) { + raw_expression_tree_walker((Node*)context->connectByExpr, + (bool (*)())pseudo_level_rownum_walker, (Node*)context->connectByExpr); + checkConnectByExprValidity((Node*)connectByExpr); + context->relInfoList = context->pstate->p_start_info; + context->connect_by_type = CONNECT_BY_LEVEL; + context->connectByLevelExpr = connectByExpr; + context->connectByOtherExpr = NULL; + } + + /* transform start with ... connect by's expr */ + StartWithWalker(context, startWithExpr); + if (startWithExpr != NULL) { + StartWithWalker(context, connectByExpr); + } + + /* now handle where quals which could whole push down */ + int lens = list_length(context->pstate->p_start_info); + if (lens != 1) { + Node *whereClause = (Node *)copyObject(stmt->whereClause); + context->whereClause = whereClause; + stmt->whereClause = NULL; + } + + + if (startWithExpr != NULL && context->connectby_prior_name == NULL) { + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("START WITH CONNECT BY clauses must have at least one prior key."))); + } + Assert(context->relInfoList); + return; +} + +/* + * -------------------------------------------------------------------------------------- + * @Brief: Add SWCB's pseudo column to basereal converted CTE object, we do so is want to + * consider level/rownum/iscycle/isleaf is SWCB's return column, so that follow + * up steps could keep their origin + * + * @param: + * - cte: cte of SWCB converted + * - rte: rte of SWCB converted that pointing cte in current transform level + * - rte_index: rte's rt_index, a.w.k. varno, rt_fetch() + * + * @Return: none + * -------------------------------------------------------------------------------------- + */ +void AddStartWithCTEPseudoReturnColumns(CommonTableExpr *cte, + RangeTblEntry *rte, Index rte_index) +{ + Assert (rte->rtekind == RTE_CTE); + + /* Add and fix target entry for pseudo columns */ + /* step 1. fix ctequery's output */ + Query *ctequery = (Query *)cte->ctequery; + + /* Add pseudo output column into rte->eref->colnames */ + Node *expr = NULL; + TargetEntry *tle = NULL; + StartWithCTEPseudoReturnAtts *att = NULL; + bool pseudoExist = false; + ListCell *lc = NULL; + + foreach(lc, ctequery->targetList) { + TargetEntry *entry = (TargetEntry *)lfirst(lc); + + if (IsPseudoReturnTargetEntry(entry)) { + pseudoExist = true; + break; + } + } + + if (pseudoExist) { + return; + } + + for (uint i = 0; i < STARTWITH_PSEUDO_RETURN_ATTNUMS; i++) { + /* Create a pseudo return column in "TargetEntry" format */ + att = &g_StartWithCTEPseudoReturnAtts[i]; + + /* make var for pseudo return column */ + expr = (Node *)makeVar(rte_index, + list_length(ctequery->targetList) + 1, + att->coltype, + att->coltypmod, + att->colcollation, 0); + + /* make pseudo return column's TLE */ + tle = makeTargetEntry((Expr *)expr, list_length(ctequery->targetList) + 1, att->colname, false); + + /* Add the pseudo return column to CTE's target list */ + ctequery->targetList = lappend(ctequery->targetList, tle); + + /* Fix cte's relevant output data structure */ + rte->eref->colnames = lappend(rte->eref->colnames, makeString(att->colname)); + rte->ctecoltypes = lappend_oid(rte->ctecoltypes, att->coltype); + rte->ctecoltypmods = lappend_int(rte->ctecoltypmods, att->coltypmod); + rte->ctecolcollations = lappend_oid(rte->ctecolcollations, att->colcollation); + } + + return; +} + +/* + * -------------------------------------------------------------------------------------- + * @Brief: A helper function invoked in CreateStartWithCteInner/OuterBranch() where we + * add SWCB's information ot inner/outer subselect + * + * @param: + * - (1). pstate: parse states of current level + * - (2). stmt: WithClause's branch SelectStmt + * - (3). relInfoList: current SWCB's constitute target rels + * + * @Return: none + * -------------------------------------------------------------------------------------- + */ +static void AddWithClauseToBranch(ParseState *pstate, SelectStmt *stmt, List *relInfoList) +{ + ListCell *lc1 = NULL; + ListCell *lc2 = NULL; + List *ctes = NIL; + + if (pstate->origin_with == NULL) { + return; + } + + WithClause *clause = (WithClause *)copyObject(pstate->origin_with); + + foreach(lc1, relInfoList) { + StartWithTargetRelInfo *info = (StartWithTargetRelInfo *)lfirst(lc1); + CommonTableExpr *removed = NULL; + + if (info->rtekind != RTE_CTE) { + continue; + } + + foreach(lc2, clause->ctes) { + CommonTableExpr *cte = (CommonTableExpr *)lfirst(lc2); + + if (pg_strcasecmp(cte->ctename, info->relname) == 0) { + ctes = lappend(ctes, cte); + } + } + + foreach(lc2, pstate->p_ctenamespace) { + CommonTableExpr* cte = (CommonTableExpr*)lfirst(lc2); + + if (pg_strcasecmp(cte->ctename, info->relname) == 0) { + removed = cte; + break; + } + } + + if (removed != NULL) { + pstate->p_ctenamespace = list_delete(pstate->p_ctenamespace, removed); + } + } + + if (ctes == NULL) { + return; + } + + clause->ctes = ctes; + stmt->withClause = clause; + + return; +} + +/* + * -------------------------------------------------------------------------------------- + * @Brief: Create SWCB's conversion CTE's inner branch, normally we add ConnectByExpr to + * inner branch's joincond + * + * @param: + * - (1). pstate, current SWCB belonging query level's parseState + * - (2). context current SWCB's trnasform context + * - (3). relInfoList, SWCB's relating base RangeVar + * - (4). connectByExpr: expr of connectby clause will be put as RQ's join cond + * - (5). whereClause: expr of where clause + * + * @Return: to be input + * -------------------------------------------------------------------------------------- + */ +static SelectStmt *CreateStartWithCTEInnerBranch(ParseState* pstate, + StartWithTransformContext *context, + List *relInfoList, + Node *connectByExpr, + Node *whereClause) +{ + Node *origin_table = NULL; + SelectStmt *result = makeNode(SelectStmt); + JoinExpr *join = makeNode(JoinExpr); + RangeVar *work_table = makeRangeVar(NULL, "tmp_reuslt", -1); + + AddWithClauseToBranch(pstate, result, relInfoList); + + if (list_length(relInfoList) == 1) { + StartWithTargetRelInfo *info = (StartWithTargetRelInfo *)linitial(relInfoList); + origin_table = (Node *)copyObject(info->tblstmt); + } else { + ListCell *lc = NULL; + + List *fromClause = (List *)copyObject(context->fromClause); + foreach(lc, fromClause) { + Node *node = (Node *)lfirst(lc); + + if (origin_table == NULL) { + origin_table = node; + continue; + } + + /* make new JoinExpr */ + Node *qual = makeBoolAConst(true, -1); + JoinExpr *joiniter = makeNode(JoinExpr); + + joiniter->larg = origin_table; + joiniter->rarg = node; + joiniter->quals = qual; + + origin_table = (Node *)joiniter; + } + + if (whereClause != NULL) { + JoinExpr *final_join = (JoinExpr *)origin_table; + final_join->quals = whereClause; + } + } + + /* process regular/level */ + switch (context->connect_by_type) { + case CONNECT_BY_PRIOR: { + join->jointype = JOIN_INNER; + join->isNatural = FALSE; + join->larg = (Node *)work_table; + join->rarg = origin_table; + join->usingClause = NIL; + join->quals = (Node *)copyObject(connectByExpr); + + result->targetList = expandAllTargetList(relInfoList); + result->fromClause = list_make1(join); + + break; + } + case CONNECT_BY_ROWNUM: + case CONNECT_BY_LEVEL: { + join->jointype = JOIN_INNER; + join->isNatural = TRUE; + join->larg = (Node *)work_table; + join->rarg = origin_table; + join->usingClause = NIL; + + /* for connect-by-level we set joinquals to TRUE as a netural join */ + join->quals = makeBoolAConst(true, -1); + + result->targetList = expandAllTargetList(relInfoList); + result->fromClause = list_make1(join); + result->whereClause = (Node *)context->connectByOtherExpr; + + break; + } + case CONNECT_BY_MIXED_LEVEL: { + join->jointype = JOIN_INNER; + join->isNatural = TRUE; + join->larg = (Node *)work_table; + join->rarg = origin_table; + join->usingClause = NIL; + /* for MIXED connect-by-level we keep the original quals except for the level part */ + join->quals = (Node *)copyObject(connectByExpr); + result->targetList = expandAllTargetList(relInfoList); + result->fromClause = list_make1(join); + result->whereClause = (Node *)context->connectByOtherExpr; + break; + } + default: { + elog(ERROR, "unrecognized connect by type %d", context->connect_by_type); + } + } + + return result; +} + +/* + * -------------------------------------------------------------------------------------- + * @Brief: Create SWCB's conversion CTE's outer branch, normally we add StartWithExpr to + * outer branch's filtering cond + * + * @param: + * - (1). pstate, current SWCB belonging query level's parseState + * - (2). context current SWCB's trnasform context + * - (3). relInfoList, SWCB's relating base RangeVar + * - (4). startWithExpr: expr of start with clause will be put as RQ's init cond + * - (5). whereClause: expr of where clause + * + * @Return: to be input + * -------------------------------------------------------------------------------------- + */ +static SelectStmt *CreateStartWithCTEOuterBranch(ParseState *pstate, + StartWithTransformContext *context, + List *relInfoList, + Node *startWithExpr, + Node *whereClause) +{ + ListCell *lc = NULL; + List *targetlist = NIL; + List *tblist = NIL; + Node *quals = NULL; + + SelectStmt *result = makeNode(SelectStmt); + + AddWithClauseToBranch(pstate, result, relInfoList); + + /* form targetlist */ + targetlist = expandAllTargetList(relInfoList); + + if (context->fromClause != NULL) { + tblist = (List *)copyObject(context->fromClause); + } else { + foreach(lc, relInfoList) { + StartWithTargetRelInfo *info = (StartWithTargetRelInfo *)lfirst(lc); + tblist = lappend(tblist, copyObject(info->tblstmt)); + } + } + + if (whereClause == NULL) { + quals = (Node *)startWithExpr; + } else { + quals = (Node *)makeA_Expr(AEXPR_AND, NULL, whereClause, (Node*)startWithExpr, -1); + } + + result->fromClause = tblist; + result->whereClause = quals; + result->targetList = targetlist; + + return result; +} + +/* + * -------------------------------------------------------------------------------------- + * @Brief: transform recursive part and non-recursive part to recursive union + * -------------------------------------------------------------------------------------- + */ +static void CreateStartWithCTE(ParseState *pstate, Query *qry, + SelectStmt *initpart, SelectStmt *workpart, StartWithTransformContext *context) +{ + SelectStmt *setop = makeNode(SelectStmt); + setop->op = SETOP_UNION; + setop->all = true; + setop->larg = initpart; + setop->rarg = workpart; + + CommonTableExpr *common_expr = makeNode(CommonTableExpr); + common_expr->swoptions = makeNode(StartWithOptions); + common_expr->ctename = "tmp_reuslt"; + common_expr->ctequery = (Node *)setop; + common_expr->swoptions->siblings_orderby_clause = context->siblingsOrderBy; + common_expr->swoptions->connect_by_type = context->connect_by_type; + + /* + * CTE is not available at this stage yet so we disable start-with style columnref + * transformation with maneuvers on p_hasStartWith to avoid column not found errors + */ + pstate->p_hasStartWith = false; + common_expr->swoptions->connect_by_level_quals = + transformWhereClause(pstate, context->connectByLevelExpr, "LEVEL/ROWNUM quals"); + + /* need to fix the collations in the quals as well */ + assign_expr_collations(pstate, common_expr->swoptions->connect_by_level_quals); + + pstate->p_hasStartWith = true; + + common_expr->swoptions->connect_by_other_quals = context->connectByOtherExpr; + common_expr->swoptions->nocycle= context->nocycle; + + WithClause *with_clause = makeNode(WithClause); + with_clause->ctes = NULL; + with_clause->recursive = true; + + with_clause->ctes = lappend(with_clause->ctes, common_expr); + + /* used for multiple level startwith...connnectby */ + pstate->p_sw_selectstmt->withClause = (WithClause *)copyObject(with_clause); + pstate->p_sw_selectstmt->startWithClause = NULL; + + /* backup p_ctenamespace and recovery */ + List *p_ctenamespace = pstate->p_ctenamespace; + pstate->p_ctenamespace = NULL; + + qry->hasRecursive = with_clause->recursive; + qry->cteList = transformWithClause(pstate, with_clause); + qry->hasModifyingCTE = pstate->p_hasModifyingCTE; + + pstate->p_ctenamespace = list_concat_unique(pstate->p_ctenamespace, p_ctenamespace); + list_free_ext(p_ctenamespace); + + return; +} + +/* + * -------------------------------------------------------------------------------------- + * @Brief: detail to be added + * -------------------------------------------------------------------------------------- + */ +static RangeTblEntry *transformStartWithCTE(ParseState* pstate, List *prior_names) +{ + ListCell *lc = NULL; + Index ctelevelsup = 0; + RangeTblEntry* rte = makeNode(RangeTblEntry); + + CommonTableExpr *cte = scanNameSpaceForCTE(pstate, "tmp_reuslt", &ctelevelsup); + + Assert(cte != NULL); + + rte->rtekind = RTE_CTE; + rte->ctename = cte->ctename; + rte->relname = cte->ctename; + rte->ctelevelsup = ctelevelsup; + rte->inh = false; + rte->inFromCl = true; + + rte->self_reference = !IsA(cte->ctequery, Query); + if (!rte->self_reference) { + cte->cterefcount++; + } + + rte->ctecoltypes = cte->ctecoltypes; + rte->ctecoltypmods = cte->ctecoltypmods; + rte->ctecolcollations = cte->ctecolcollations; + + Alias* eref = makeAlias(cte->ctename, NIL); + Alias* alias = makeAlias(cte->ctename, NIL); + + foreach(lc, cte->ctecolnames) { + eref->colnames = lappend(eref->colnames, lfirst(lc)); + } + + rte->eref = eref; + rte->alias = alias; + + int index = 0; + List *key_index = NIL; + foreach(lc, cte->ctecolnames) { + Value *colname = (Value *)lfirst(lc); + + if (list_member(prior_names, colname)) { + key_index = lappend_int(key_index, index); + } + + index++; + } + cte->swoptions->prior_key_index = key_index; + + /* + * We also should fill some rewrite informations in origin selectStmt, + * So it can be took for upper level for next step rewrite. + */ + foreach(lc, pstate->p_sw_selectstmt->withClause->ctes) { + CommonTableExpr* common = (CommonTableExpr*)lfirst(lc); + + if (strcmp(common->ctename, "tmp_reuslt") == 0) { + common->swoptions->prior_key_index = key_index; + break; + } + } + + /* set rewrited RTE to aborted */ + foreach (lc, pstate->p_rtable) { + RangeTblEntry *rte = (RangeTblEntry *)lfirst(lc); + rte->swAborted = true; + } + + pstate->p_rtable = lappend(pstate->p_rtable, rte); + + AddStartWithCTEPseudoReturnColumns(cte, rte, list_length(pstate->p_rtable)); + + return rte; +} + +/* + * -------------------------------------------------------------------------------------- + * @Brief: detail to be added + * + * @param: detail to be added + * + * @Return: detail to be added + * -------------------------------------------------------------------------------------- + */ +static void transformFromList(ParseState* pstate, Query* qry, + StartWithTransformContext *context, Node *n) +{ + ListCell *lc = NULL; + A_Expr *startWithExpr = (A_Expr *)context->startWithExpr; + A_Expr *connectByExpr = (A_Expr *)context->connectByExpr; + List *relInfoList = context->relInfoList; + Node *whereClause = context->whereClause; + + /* make union-all branch for none- recursive part */ + SelectStmt *outerBranch = CreateStartWithCTEOuterBranch(pstate, context, + relInfoList, (Node *)startWithExpr, whereClause); + + /* make joinExpr for recursive part */ + SelectStmt *innerBranch = CreateStartWithCTEInnerBranch(pstate, context, + relInfoList, (Node *)connectByExpr, whereClause); + + CreateStartWithCTE(pstate, qry, outerBranch, innerBranch, context); + + /* + * FINAL NEED FIX RTE POSITION, replace one of start_with_rtes with cte + **/ + foreach(lc, relInfoList) { + StartWithTargetRelInfo *info = (StartWithTargetRelInfo *)lfirst(lc); + RangeTblEntry* rte = info->rte; + RangeTblRef *rtr = info->rtr; + + pstate->p_joinlist = list_delete(pstate->p_joinlist, rtr); + + /* delete from p_varnamespace */ + ListCell *lcc = NULL; + ParseNamespaceItem *nsitem = NULL; + foreach(lcc, pstate->p_varnamespace) { + ParseNamespaceItem *sitem = (ParseNamespaceItem *)lfirst(lcc); + + if (sitem->p_rte == rte) { + nsitem = sitem; + break; + } + } + pstate->p_varnamespace = list_delete(pstate->p_varnamespace, nsitem); + } + + RangeTblEntry *replace = transformStartWithCTE(pstate, context->connectby_prior_name); + int rtindex = list_length(pstate->p_rtable); + RangeTblRef *rtr = makeNode(RangeTblRef); + rtr->rtindex = rtindex; + replace->swConverted = true; + replace->origin_index = list_make1_int(rtr->rtindex); + + pstate->p_joinlist = list_make1(rtr); + pstate->p_varnamespace = list_make1(makeNamespaceItem(replace, false, true)); + pstate->p_relnamespace = lappend(pstate->p_relnamespace, + makeNamespaceItem(replace, false, true)); + + return; +} + +/* + * -------------------------------------------------------------------------------------- + * @Brief: detail to be added + * + * @param: detail to be added + * + * @Return: detail to be added + * -------------------------------------------------------------------------------------- + */ +static void transformSingleRTE(ParseState* pstate, Query* qry, + StartWithTransformContext *context, Node *start_clause) +{ + ListCell *lc = NULL; + + A_Expr *connectByExpr = (A_Expr *)context->connectByExpr; + A_Expr *startWithExpr = (A_Expr *)context->startWithExpr; + List *startWithRelInfoList = context->relInfoList; + + StartWithTargetRelInfo *info = (StartWithTargetRelInfo *)linitial(context->relInfoList); + + /* first non-recursive part */ + SelectStmt *outerBranch = CreateStartWithCTEOuterBranch(pstate, context, + startWithRelInfoList, (Node *)startWithExpr, NULL); + + /* second recursive part */ + SelectStmt *innerBranch = CreateStartWithCTEInnerBranch(pstate, context, + startWithRelInfoList, (Node *)connectByExpr, NULL); + + /* final finish setop and commonTableExpr */ + CreateStartWithCTE(pstate, qry, outerBranch, innerBranch, context); + + /* found origin rte then replace it by new cte */ + RangeTblEntry* rte = info->rte; + RangeTblRef *rtr = info->rtr; + pstate->p_joinlist = list_delete(pstate->p_joinlist, rtr); + + //delete from p_varnamespace + ParseNamespaceItem *nsitem = NULL; + foreach(lc, pstate->p_varnamespace) { + ParseNamespaceItem *sitem = (ParseNamespaceItem *)lfirst(lc); + + if (sitem->p_rte == rte) { + nsitem = sitem; + break; + } + } + pstate->p_varnamespace = list_delete(pstate->p_varnamespace, nsitem); + + RangeTblEntry *replace = transformStartWithCTE(pstate, context->connectby_prior_name); + replace->swConverted = true; + replace->origin_index = list_make1_int(info->rtr->rtindex); + int rtindex = list_length(pstate->p_rtable); + rtr = makeNode(RangeTblRef); + rtr->rtindex = rtindex; + + pstate->p_joinlist = lappend(pstate->p_joinlist, rtr); + pstate->p_varnamespace = lappend(pstate->p_varnamespace, + makeNamespaceItem(replace, false, true)); + pstate->p_relnamespace = lappend(pstate->p_relnamespace, + makeNamespaceItem(replace, false, true)); + + return; +} + +/* + * -------------------------------------------------------------------------------------- + * @Brief: detail to be added + * + * @param: detail to be added + * + * @Return: detail to be added + * -------------------------------------------------------------------------------------- + */ +static List *expandAllTargetList(List *targetRelInfoList) +{ + ListCell *lc1 = NULL; + ListCell *lc2 = NULL; + List *targetlist = NIL; + + foreach(lc1, targetRelInfoList) { + StartWithTargetRelInfo *info = (StartWithTargetRelInfo *)lfirst(lc1); + RangeTblEntry *rte = info->rte; + + /* transForm targetlist with table alias name */ + char *relname = NULL; + Alias *alias = rte->eref; + + if (info->rtekind == RTE_SUBQUERY) { + relname = info->aliasname; + } else if (info->rtekind == RTE_RELATION) { + relname = info->aliasname ? info->aliasname : info->relname; + } else if (info->rtekind == RTE_CTE) { + relname = info->aliasname ? info->aliasname : info->relname; + } + + foreach(lc2, alias->colnames) { + Value *val = (Value *)lfirst(lc2); + + ColumnRef *column = makeNode(ColumnRef); + char *colname = strVal(val); + + /* skip already dropped column where attached as tableAlias."" */ + if (strlen(colname) == 0) { + continue; + } + + ResTarget *target = makeNode(ResTarget); + + column->fields = list_make2(makeString(relname), val); + column->location = -1; + target->val = (Node *)column; + target->location = -1; + + target->name = makeStartWithDummayColname(relname, colname); + targetlist = lappend(targetlist, target); + } + } + + return targetlist; +} diff --git a/src/common/backend/parser/parse_target.cpp b/src/common/backend/parser/parse_target.cpp index 933cae52e..63d8a3df5 100644 --- a/src/common/backend/parser/parse_target.cpp +++ b/src/common/backend/parser/parse_target.cpp @@ -130,6 +130,12 @@ List* transformTargetList(ParseState* pstate, List* targetlist) if (IsA(res->val, ColumnRef)) { ColumnRef* cref = (ColumnRef*)res->val; + if (cref->prior) { + ereport(ERROR, + (errcode(ERRCODE_OPTIMIZER_INCONSISTENT_STATE), + errmsg("Not Support prior column in TargetList in case swcb."))); + } + if (IsA(llast(cref->fields), A_Star)) { /* It is something.*, expand into multiple items */ p_target = list_concat(p_target, ExpandColumnRefStar(pstate, cref, true)); diff --git a/src/common/backend/parser/parse_type.cpp b/src/common/backend/parser/parse_type.cpp index 09af091da..4f795f0f2 100644 --- a/src/common/backend/parser/parse_type.cpp +++ b/src/common/backend/parser/parse_type.cpp @@ -5,6 +5,7 @@ * * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -18,6 +19,7 @@ #include "access/transam.h" #include "catalog/namespace.h" +#include "catalog/gs_package.h" #include "catalog/pg_type.h" #include "lib/stringinfo.h" #include "nodes/makefuncs.h" @@ -31,6 +33,7 @@ #include "utils/datum.h" #include "utils/lsyscache.h" #include "utils/syscache.h" +#include "utils/pl_package.h" const static Oid cstoreSupportType[] = {BOOLOID, HLL_OID, // same as BYTEA @@ -104,6 +107,33 @@ static int32 typenameTypeMod(ParseState* pstate, const TypeName* typname, Type t static bool IsTypeInBlacklist(Oid typoid); +Oid LookupPctTypeInPackage(RangeVar* rel, Oid pkgOid, const char* field) +{ + char* castTypeName = CastPackageTypeName(rel->relname, pkgOid, true); + char* oldTypName = rel->relname; + rel->relname = castTypeName; + Oid relid = RangeVarGetRelidExtended(rel, NoLock, true, false, false, true, NULL, NULL, NULL, NULL); + if (!OidIsValid(relid)) { + rel->relname = oldTypName; + pfree_ext(castTypeName); + return InvalidOid; + } + AttrNumber attnum = get_attnum(relid, field); + if (attnum == InvalidAttrNumber) { + rel->relname = oldTypName; + pfree_ext(castTypeName); + return InvalidOid; + } + Oid typoid = get_atttype(relid, attnum); + rel->relname = oldTypName; + pfree_ext(castTypeName); + if (OidIsValid(typoid)) { + return relid; + } else { + return InvalidOid; + } +} + /* * LookupTypeName * Wrapper for typical case. @@ -143,9 +173,11 @@ Type LookupTypeName(ParseState *pstate, const TypeName *typeName, int32 *typmod_ Type LookupTypeNameExtended(ParseState* pstate, const TypeName* typname, int32* typmod_p, bool temp_ok, bool print_notice) { - Oid typoid; + Oid typoid = InvalidOid; HeapTuple tup; - int32 typmod; + int32 typmod = -1; + Oid pkgOid = InvalidOid; + bool notPkgType = false; if (typname->names == NIL) { /* We have the OID already if it's an internally generated TypeName */ @@ -154,12 +186,17 @@ Type LookupTypeNameExtended(ParseState* pstate, const TypeName* typname, int32* /* Handle %TYPE reference to type of an existing field */ RangeVar* rel = makeRangeVar(NULL, NULL, typname->location); char* field = NULL; - Oid relid; - AttrNumber attnum; - Oid pkgNamespaceOid = InvalidOid; + Oid relid = InvalidOid; + AttrNumber attnum = InvalidAttrNumber; + char* pkgName = NULL; + char* schemaName = NULL; /* deconstruct the name list */ switch (list_length(typname->names)) { case 1: + tup = getPLpgsqlVarTypeTup(strVal(linitial(typname->names))); + if (HeapTupleIsValid(tup)) { + return tup; + } ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg( @@ -167,24 +204,44 @@ Type LookupTypeNameExtended(ParseState* pstate, const TypeName* typname, int32* parser_errposition(pstate, typname->location))); break; case 2: - if (u_sess->plsql_cxt.plpgsql_curr_compile_package != NULL) { - pkgNamespaceOid = u_sess->plsql_cxt.plpgsql_curr_compile_package->namespaceOid; - } - if (OidIsValid(pkgNamespaceOid)) { - rel->schemaname = get_namespace_name(pkgNamespaceOid); + tup = FindPkgVariableType(pstate, typname, typmod_p); + if (HeapTupleIsValid(tup)) { + return (Type)tup; } rel->relname = strVal(linitial(typname->names)); field = strVal(lsecond(typname->names)); break; case 3: - rel->schemaname = strVal(linitial(typname->names)); - rel->relname = strVal(lsecond(typname->names)); + tup = FindPkgVariableType(pstate, typname, typmod_p); + if (HeapTupleIsValid(tup)) { + return (Type)tup; + } + pkgName = strVal(linitial(typname->names)); + pkgOid = PackageNameGetOid(pkgName, InvalidOid); + if (OidIsValid(pkgOid)) { + rel->relname = CastPackageTypeName(strVal(lsecond(typname->names)), pkgOid, true); + } else { + rel->schemaname = strVal(linitial(typname->names)); + rel->relname = strVal(lsecond(typname->names)); + } field = strVal(lthird(typname->names)); break; case 4: - rel->catalogname = strVal(linitial(typname->names)); - rel->schemaname = strVal(lsecond(typname->names)); - rel->relname = strVal(lthird(typname->names)); + tup = FindPkgVariableType(pstate, typname, typmod_p); + if (HeapTupleIsValid(tup)) { + return (Type)tup; + } + pkgName = strVal(lsecond(typname->names)); + schemaName = strVal(linitial(typname->names)); + pkgOid = PackageNameGetOid(pkgName, get_namespace_oid(schemaName, true)); + if (OidIsValid(pkgOid)) { + rel->relname = CastPackageTypeName(strVal(lthird(typname->names)), pkgOid, true); + rel->schemaname = schemaName; + } else { + rel->catalogname = strVal(linitial(typname->names)); + rel->schemaname = strVal(lsecond(typname->names)); + rel->relname = strVal(lthird(typname->names)); + } field = strVal(lfourth(typname->names)); break; default: @@ -203,7 +260,14 @@ Type LookupTypeNameExtended(ParseState* pstate, const TypeName* typname, int32* * concurrent DDL. But taking a lock would carry a performance * penalty and would also require a permissions check. */ - relid = RangeVarGetRelid(rel, NoLock, false); + if (u_sess->plsql_cxt.curr_compile_context != NULL && + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package != NULL) { + relid = LookupPctTypeInPackage(rel, + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->pkg_oid, field); + } + if (!OidIsValid(relid)) { + relid = RangeVarGetRelidExtended(rel, NoLock, false, false, false, true, NULL, NULL, NULL, NULL); + } attnum = get_attnum(relid, field); if (attnum == InvalidAttrNumber) { ereport(ERROR, @@ -212,41 +276,140 @@ Type LookupTypeNameExtended(ParseState* pstate, const TypeName* typname, int32* parser_errposition(pstate, typname->location))); } typoid = get_atttype(relid, attnum); + if (IsClientLogicType(typoid)) { typoid = get_atttypmod(relid, attnum); - } - - /* this construct should never have an array indicator */ - Assert(typname->arrayBounds == NIL); - - /* emit nuisance notice (intentionally not errposition'd) */ - if (print_notice) { - ereport(NOTICE, - (errmsg("type reference %s converted to %s", TypeNameToString(typname), format_type_be(typoid)))); - } - } else { - /* Normal reference to a type name */ - char* schemaname = NULL; - char* typeName = NULL; - - /* deconstruct the name list */ - DeconstructQualifiedName(typname->names, &schemaname, &typeName); - - if (schemaname != NULL) { - /* Look in specific schema only */ - Oid namespaceId; - - namespaceId = LookupExplicitNamespace(schemaname); - typoid = GetSysCacheOid2(TYPENAMENSP, PointerGetDatum(typeName), ObjectIdGetDatum(namespaceId)); } else { - /* Unqualified type name, so search the search path */ - typoid = TypenameGetTypidExtended(typeName, temp_ok); + typmod = get_atttypmod(relid, attnum); } /* If an array reference, return the array type instead */ if (typname->arrayBounds != NIL) { typoid = get_array_type(typoid); } + + /* emit nuisance notice (intentionally not errposition'd) */ + if (print_notice) { + ereport(NOTICE, + (errmsg("type reference %s converted to %s", TypeNameToString(typname), format_type_be(typoid)))); + } + if (OidIsValid(pkgOid)) { + pfree_ext(rel->relname); + } + } else { + /* Normal reference to a type name */ + char* schemaname = NULL; + char* typeName = NULL; + char* pkgName = NULL; + + /* Handle %ROWTYPE reference to type of an existing table. */ + if (typname->pct_rowtype) { + RangeVar* relvar = NULL; + /* deconstruct the name list */ + switch (list_length(typname->names)) { + case 1: + relvar = makeRangeVar(NULL, strVal(linitial(typname->names)), -1); + break; + case 2: + relvar = makeRangeVar(strVal(linitial(typname->names)), strVal(lsecond(typname->names)), -1); + break; + case 3: + relvar = makeRangeVar(strVal(lsecond(typname->names)), strVal(lthird(typname->names)), -1); + relvar->catalogname = strVal(linitial(typname->names)); + break; + default: + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("improper %%ROWTYPE reference"), + errdetail("improper %%ROWTYPE reference (too many dotted names): %s", + NameListToString(typname->names)), + errcause("syntax error"), + erraction("check the relation name for %%ROWTYPE"))); + break; + } + Oid class_oid = RangeVarGetRelidExtended(relvar, NoLock, true, false, false, true, NULL, NULL); + if (!OidIsValid(class_oid)) { + pfree_ext(relvar); + /* if case: cursor%rowtype */ + tup = getCursorTypeTup(strVal(linitial(typname->names))); + if (HeapTupleIsValid(tup)) { + return (Type)tup; + } + + ereport(ERROR, + (errmodule(MOD_PARSER), + errcode(ERRCODE_UNDEFINED_TABLE), + errmsg("relation does not exist when parse word."), + errdetail(" relation \"%s\" referenced by %%ROWTYPE does not exist.", + NameListToString(typname->names)), + errcause("incorrectly referencing relation"), + erraction("check the relation name for %%ROWTYPE"))); + } + char relkind = get_rel_relkind(class_oid); + /* onyl table is allowed for %ROWTYPE. */ + if ((relkind != 'r') && (relkind != 'm')) { + pfree_ext(relvar); + ereport(ERROR, + (errmodule(MOD_PARSER), + errcode(ERRCODE_UNDEFINED_TABLE), + errmsg("relation does not exist when parse word."), + errdetail(" relation \"%s\" referenced by %%ROWTYPE does not exist.", + NameListToString(typname->names)), + errcause("incorrectly referencing relation"), + erraction("check the relation name for %%ROWTYPE"))); + + } + pfree_ext(relvar); + } + + /* deconstruct the name list */ + DeconstructQualifiedName(typname->names, &schemaname, &typeName, &pkgName); + Oid namespaceId = InvalidOid; + if (schemaname != NULL) { + namespaceId = LookupExplicitNamespace(schemaname); + } + bool isPkgType = (pkgName != NULL) && + !(list_length(typname->names) == 2 && schemaname != NULL && strcmp(pkgName, typeName) == 0); + if (isPkgType) { + /* type is package defined, get the cast type name */ + pkgOid = PackageNameGetOid(pkgName, namespaceId); + } + if (schemaname != NULL) { + /* Look in package type */ + if (isPkgType) { + typoid = LookupTypeInPackage(typeName, pkgOid, namespaceId); + } else { + /* Look in specific schema only */ + typoid = GetSysCacheOid2(TYPENAMENSP, PointerGetDatum(typeName), ObjectIdGetDatum(namespaceId)); + } + if (!OidIsValid(typoid)) { + typoid = TryLookForSynonymType(typeName, namespaceId); + notPkgType = true; /* should also track type dependency, fix when refactoring */ + } + } else { + if (pkgName == NULL) { + /* find type in current packgae first */ + typoid = LookupTypeInPackage(typeName); + } + if (isPkgType) { + typoid = LookupTypeInPackage(typeName, pkgOid); + } + if (!OidIsValid(typoid)) { + /* Unqualified type name, so search the search path */ + typoid = TypenameGetTypidExtended(typeName, temp_ok); + notPkgType = true; /* should also track type dependency, fix when refactoring */ + } + } + + /* If an array reference, return the array type instead */ + if (typname->arrayBounds != NIL) { + typoid = get_array_type(typoid); + } + } + + if (u_sess->plsql_cxt.need_pkg_dependencies && OidIsValid(pkgOid) && !notPkgType) { + u_sess->plsql_cxt.pkg_dependencies = + list_append_unique_oid(u_sess->plsql_cxt.pkg_dependencies, pkgOid); } if (!OidIsValid(typoid)) { @@ -269,9 +432,9 @@ Type LookupTypeNameExtended(ParseState* pstate, const TypeName* typname, int32* if (!HeapTupleIsValid(tup)) { ereport(ERROR, (errcode(ERRCODE_CACHE_LOOKUP_FAILED), errmsg("cache lookup failed for type %u", typoid))); } - - typmod = typenameTypeMod(pstate, typname, (Type)tup); - + if (!typname->pct_type) { + typmod = typenameTypeMod(pstate, typname, (Type)tup); + } if (typmod_p != NULL) { *typmod_p = typmod; } @@ -297,12 +460,14 @@ Type typenameType(ParseState* pstate, const TypeName* typname, int32* typmod_p) * whether the table is in installation group */ if (!in_logic_cluster() && !IsTypeTableInInstallationGroup(tup)) { + InsertErrorMessage("type must be in installation group", u_sess->plsql_cxt.plpgsql_yylloc); ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("type '%s' must be in installation group", TypeNameToString(typname)))); } if (tup == NULL) { + InsertErrorMessage("type does not exist", u_sess->plsql_cxt.plpgsql_yylloc); ereport(ERROR, (errcode(ERRCODE_UNDEFINED_OBJECT), errmsg("type \"%s\" does not exist", TypeNameToString(typname)), @@ -310,6 +475,7 @@ Type typenameType(ParseState* pstate, const TypeName* typname, int32* typmod_p) } if (!((Form_pg_type)GETSTRUCT(tup))->typisdefined) { + InsertErrorMessage("type is only a shell", u_sess->plsql_cxt.plpgsql_yylloc); ereport(ERROR, (errcode(ERRCODE_UNDEFINED_OBJECT), errmsg("type \"%s\" is only a shell", TypeNameToString(typname)), @@ -805,6 +971,7 @@ void parseTypeString(const char* str, Oid* typeid_p, int32* typmod_p) return; fail: + InsertErrorMessage("invalid type name", u_sess->plsql_cxt.plpgsql_yylloc); ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("invalid type name \"%s\"", str))); } @@ -1078,3 +1245,155 @@ bool IsTypeTableInInstallationGroup(const Type type_tup) } return true; } + +char* CastPackageTypeName(const char* typName, Oid objOid, bool isPackage, bool isPublic) +{ + StringInfoData castTypName; + initStringInfo(&castTypName); + + /* private type name cast '$' in the beginning */ + if (isPackage) { + if (!isPublic) { + appendStringInfoString(&castTypName, "$"); + } + } + + /* cast package or procedure oid */ + char* oidStr = NULL; + const int oidStrLen = 12; + oidStr = (char *)palloc0(oidStrLen * sizeof(char)); + pg_ltoa(objOid, oidStr); + appendStringInfoString(&castTypName, oidStr); + pfree_ext(oidStr); + + /* cast type name */ + appendStringInfoString(&castTypName, "."); + appendStringInfoString(&castTypName, typName); + + return castTypName.data; +} + +/* find if %type ref a package variable type */ +HeapTuple FindPkgVariableType(ParseState* pstate, const TypeName* typname, int32* typmod_p) +{ + HeapTuple tup = NULL; + +#ifdef ENABLE_MULTIPLE_NODES + return tup; +#else + int32 typmod = -1; + + if (u_sess->plsql_cxt.curr_compile_context == NULL) { + return tup; + } + + /* handle var.col%TYPE firsr */ + tup = FindRowVarColType(typname->names); + if (tup != NULL) { + typmod = typenameTypeMod(pstate, typname, (Type)tup); + if (typmod_p != NULL) { + *typmod_p = typmod; + } + return tup; + } + + /* find package.var%TYPE second */ + if (list_length(typname->names) <= 1 || list_length(typname->names) >= 4) { + return tup; + } + PLpgSQL_datum* datum = GetPackageDatum(typname->names); + if (datum != NULL && datum->dtype == PLPGSQL_DTYPE_VAR) { + Oid typOid = ((PLpgSQL_var*)datum)->datatype->typoid; + tup = SearchSysCache1(TYPEOID, ObjectIdGetDatum(typOid)); + /* should not happen */ + if (!HeapTupleIsValid(tup)) { + ereport(ERROR, (errcode(ERRCODE_CACHE_LOOKUP_FAILED), + errmsg("cache lookup failed for type %u", typOid))); + } + typmod = typenameTypeMod(pstate, typname, (Type)tup); + if (typmod_p != NULL) { + *typmod_p = typmod; + } + } + return tup; +#endif +} + +/* find the type if it is a package type */ +Oid LookupTypeInPackage(const char* typeName, Oid pkgOid, Oid namespaceId) +{ + Oid typOid = InvalidOid; + char* castTypeName = NULL; + + /* pkgOid is invalid, try to find the type in current compile package */ + if (!OidIsValid(pkgOid)) { + /* if not compiling packgae, just return invalid oid */ + if (u_sess->plsql_cxt.curr_compile_context == NULL || + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package == NULL) { + return typOid; + } + + pkgOid = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->pkg_oid; + /* find public package type first */ + castTypeName = CastPackageTypeName(typeName, pkgOid, true, true); + typOid = TypenameGetTypidExtended(castTypeName, false); + pfree_ext(castTypeName); + if (!OidIsValid(typOid)) { + /* try to find private package type */ + castTypeName = CastPackageTypeName(typeName, pkgOid, true, false); + typOid = TypenameGetTypidExtended(castTypeName, false); + pfree_ext(castTypeName); + } + + return typOid; + } + + /* pkgOid is valid, just to find the given pkg type, public first */ + castTypeName = CastPackageTypeName(typeName, pkgOid, true, true); + + if (OidIsValid(namespaceId)) { + typOid = GetSysCacheOid2(TYPENAMENSP, PointerGetDatum(castTypeName), ObjectIdGetDatum(namespaceId)); + if (!OidIsValid(typOid)) { + typOid = TryLookForSynonymType(castTypeName, namespaceId); + } + } else { + typOid = TypenameGetTypidExtended(castTypeName, false); + } + + pfree_ext(castTypeName); + + if (OidIsValid(typOid)) { + return typOid; + } + + /* + * find private pkg type, if compile package is the same pkg + * if not compiling packgae, just return invalid oid + */ + if (u_sess->plsql_cxt.curr_compile_context == NULL || + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package == NULL) { + return typOid; + } + + /* not same package, return */ + if (pkgOid != u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->pkg_oid) { + return typOid; + } + + castTypeName = CastPackageTypeName(typeName, pkgOid, true, false); + + if (OidIsValid(namespaceId)) { + typOid = GetSysCacheOid2(TYPENAMENSP, PointerGetDatum(castTypeName), ObjectIdGetDatum(namespaceId)); + if (!OidIsValid(typOid)) { + typOid = TryLookForSynonymType(castTypeName, namespaceId); + } + } else { + typOid = TypenameGetTypidExtended(castTypeName, false); + } + + pfree_ext(castTypeName); + + return typOid; + + +} diff --git a/src/common/backend/parser/parse_utilcmd.cpp b/src/common/backend/parser/parse_utilcmd.cpp index 8f5235656..3fc27627a 100644 --- a/src/common/backend/parser/parse_utilcmd.cpp +++ b/src/common/backend/parser/parse_utilcmd.cpp @@ -180,6 +180,8 @@ static void get_rel_partition_info(Relation partTableRel, List** pos, Const** up static void get_src_partition_bound(Relation partTableRel, Oid srcPartOid, Const** lowBound, Const** upBound); static Oid get_split_partition_oid(Relation partTableRel, SplitPartitionState* splitState); static List* add_range_partition_def_state(List* xL, List* boundary, const char* partName, const char* tblSpaceName); +static bool CheckStepInRange(ParseState *pstate, Const *startVal, Const *endVal, Const *everyVal, + Form_pg_attribute attr); static List* divide_start_end_every_internal(ParseState* pstate, char* partName, Form_pg_attribute attr, Const* startVal, Const* endVal, Node* everyExpr, int* numPart, int maxNum, bool isinterval, bool needCheck, bool isPartition); @@ -219,12 +221,12 @@ Oid *namespaceid, bool isFirstNode) * overkill, but easy.) */ stmt = (CreateStmt*)copyObject(stmt); - + if (uuids != NIL) { list_free_deep(stmt->uuids); stmt->uuids = (List*)copyObject(uuids); } - + if (stmt->relation->relpersistence == RELPERSISTENCE_TEMP && stmt->relation->schemaname) ereport(ERROR, (errcode(ERRCODE_INVALID_TABLE_DEFINITION), errmsg("temporary tables cannot specify a schema name"))); @@ -250,13 +252,20 @@ Oid *namespaceid, bool isFirstNode) ReleaseSysCache(tp); } + if (is_ledger_nsp && stmt->partTableState != NULL && stmt->partTableState->subPartitionState != NULL) { + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + (errmsg("Un-support feature"), errdetail("Subpartition table does not support ledger user table."), + errcause("The function is not implemented."), erraction("Use other actions instead.")))); + } + /* * If the relation already exists and the user specified "IF NOT EXISTS", * bail out with a NOTICE. */ if (stmt->if_not_exists && OidIsValid(existing_relid)) { bool exists_ok = true; - /* + /* * Emit the right error or warning message for a "CREATE" command issued on a exist relation. * remote node : should have relation if recieve "IF NOT EXISTS" stmt. */ @@ -418,6 +427,18 @@ Oid *namespaceid, bool isFirstNode) errmsg("\"hash\" column is reserved for system in ledger schema."))); } transformColumnDefinition(&cxt, (ColumnDef*)element, !isFirstNode && preCheck); + + if (((ColumnDef *)element)->clientLogicColumnRef != NULL) { + if (stmt->partTableState != NULL && stmt->partTableState->subPartitionState != NULL) { + ereport( + ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + (errmsg("Un-support feature"), + errdetail("For subpartition table, cryptographic database is not yet supported."), + errcause("The function is not implemented."), erraction("Use other actions instead.")))); + } + } + break; case T_Constraint: @@ -521,6 +542,7 @@ Oid *namespaceid, bool isFirstNode) if (NULL != ftblStmt->part_state) { cxt.ispartitioned = true; cxt.partitionKey = ftblStmt->part_state->partitionKey; + cxt.subPartitionKey = NULL; } else { cxt.ispartitioned = false; } @@ -528,6 +550,11 @@ Oid *namespaceid, bool isFirstNode) cxt.ispartitioned = PointerIsValid(stmt->partTableState); if (cxt.ispartitioned) { cxt.partitionKey = stmt->partTableState->partitionKey; + if (stmt->partTableState->subPartitionState != NULL) { + cxt.subPartitionKey = stmt->partTableState->subPartitionState->partitionKey; + } else { + cxt.subPartitionKey = NULL; + } } } @@ -557,7 +584,11 @@ Oid *namespaceid, bool isFirstNode) // only check partition name duplication on primary coordinator #ifdef PGXC if ((IS_PGXC_COORDINATOR && !IsConnFromCoord()) || IS_SINGLE_NODE) { - checkPartitionName(stmt->partTableState->partitionList); + if (stmt->partTableState->subPartitionState != NULL) { + checkSubPartitionName(stmt->partTableState->partitionList); + } else { + checkPartitionName(stmt->partTableState->partitionList); + } } #else checkPartitionName(stmt->partTableState->partitionList); @@ -672,7 +703,7 @@ Oid *namespaceid, bool isFirstNode) * create a sequence owned by table, need to add record to pg_depend. * used in CREATE TABLE and CREATE TABLE ... LIKE */ -static void createSeqOwnedByTable(CreateStmtContext* cxt, ColumnDef* column, bool preCheck) +static void createSeqOwnedByTable(CreateStmtContext* cxt, ColumnDef* column, bool preCheck, bool large) { Oid snamespaceid; char* snamespace = NULL; @@ -725,6 +756,7 @@ static void createSeqOwnedByTable(CreateStmtContext* cxt, ColumnDef* column, boo #ifdef PGXC seqstmt->is_serial = true; #endif + seqstmt->is_large = large; /* Assign UUID for create sequence */ if (!IS_SINGLE_NODE) @@ -768,6 +800,7 @@ static void createSeqOwnedByTable(CreateStmtContext* cxt, ColumnDef* column, boo #endif attnamelist = list_make3(makeString(snamespace), makeString(cxt->relation->relname), makeString(column->colname)); altseqstmt->options = list_make1(makeDefElem("owned_by", (Node*)attnamelist)); + altseqstmt->is_large = large; cxt->alist = lappend(cxt->alist, altseqstmt); @@ -832,6 +865,7 @@ static bool isColumnEncryptionAllowed(CreateStmtContext *cxt, ColumnDef *column) static void transformColumnDefinition(CreateStmtContext* cxt, ColumnDef* column, bool preCheck) { bool is_serial = false; + bool large = false; bool saw_nullable = false; bool saw_default = false; bool saw_generated = false; @@ -861,10 +895,19 @@ static void transformColumnDefinition(CreateStmtContext* cxt, ColumnDef* column, is_serial = true; column->typname->names = NIL; column->typname->typeOid = INT8OID; - } else if (strcmp(typname, "byteawithoutordercol") == 0 || - strcmp(typname, "byteawithoutorderwithequalcol") == 0 || - strcmp(typname, "_byteawithoutordercol") == 0 || - strcmp(typname, "_byteawithoutorderwithequalcol") == 0) { + } else if (strcmp(typname, "largeserial") == 0 || strcmp(typname, "serial16") == 0) { +#ifdef ENABLE_MULTIPLE_NODES + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("Un-support feature"), + errdetail("Pldebug is not supported for distribute currently."))); +#endif + is_serial = true; + column->typname->names = NIL; + column->typname->typeOid = NUMERICOID; + large = true; + } else if ((is_enc_type(typname) && IS_MAIN_COORDINATOR) || + (!u_sess->attr.attr_common.enable_beta_features && strcmp(typname, "int16") == 0)) { ereport(ERROR, (errcode(ERRCODE_OPERATE_NOT_SUPPORTED), errmsg("It's not supported to create %s column", typname))); @@ -901,7 +944,7 @@ static void transformColumnDefinition(CreateStmtContext* cxt, ColumnDef* column, /* Special actions for SERIAL pseudo-types */ column->is_serial = is_serial; if (is_serial) { - createSeqOwnedByTable(cxt, column, preCheck); + createSeqOwnedByTable(cxt, column, preCheck, large); } /* Process column constraints, if any... */ @@ -1010,7 +1053,11 @@ static void transformColumnDefinition(CreateStmtContext* cxt, ColumnDef* column, } } if (column->clientLogicColumnRef != NULL) { - if (!IsConnFromCoord() && !u_sess->attr.attr_common.enable_full_encryption) { +#ifdef ENABLE_MULTIPLE_NODES + if (IS_MAIN_COORDINATOR && !u_sess->attr.attr_common.enable_full_encryption) { +#else + if (!u_sess->attr.attr_common.enable_full_encryption) { +#endif ereport(ERROR, (errcode(ERRCODE_OPERATE_NOT_SUPPORTED), errmsg("Un-support to define encrypted column when client encryption is disabled."))); @@ -1169,7 +1216,7 @@ static void checkTableLikeSequence(Node* cooked_default) errmsg("CREATE TABLE LIKE with column sequence " "in different NodeGroup is not supported."), errdetail("Recommend to LIKE table with sequence in installation NodeGroup."))); - } + } pfree_ext(seq_name); } @@ -1203,13 +1250,32 @@ static void transformTableLikeFromSerialData(CreateStmtContext* cxt, TableLikeCl foreach (cell, cxt->columns) { ColumnDef* column = (ColumnDef*)lfirst(cell); if (column->is_serial) { - createSeqOwnedByTable(cxt, column, false); + bool large = (column->typname->typeOid == NUMERICOID); + createSeqOwnedByTable(cxt, column, false, large); } else if (column->cooked_default != NULL) { checkTableLikeSequence(column->cooked_default); } } } +/* + * Get all tag for tsdb + */ + +static DistributeBy* GetHideTagDistribution(TupleDesc tupleDesc) +{ + DistributeBy* distributeby = makeNode(DistributeBy); + distributeby->disttype = DISTTYPE_HASH; + for (int attno = 1; attno <= tupleDesc->natts; attno++) { + Form_pg_attribute attribute = tupleDesc->attrs[attno - 1]; + char* attributeName = NameStr(attribute->attname); + if (attribute->attkvtype == ATT_KV_TAG) { + distributeby->colname = lappend(distributeby->colname, makeString(attributeName)); + } + } + return distributeby; +} + /* * transformTableLikeClause * @@ -1273,6 +1339,15 @@ static void transformTableLikeClause( cancel_parser_errposition_callback(&pcbstate); + if (RelationIsSubPartitioned(relation)) { + ereport( + ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + (errmsg("Subpartition table does not support create table like."), + errdetail("N/A."), + errcause("The feature is not currently supported."), erraction("Use other actions instead.")))); + } + // If specify 'INCLUDING ALL' for non-partitioned table, just remove the option 'INCLUDING PARTITION'. // Right shift 10 bits can handle both 'INCLUDING ALL' and 'INCLUDING ALL EXCLUDING option(s)'. // if add a new option, the number '10'(see marco 'MAX_TABLE_LIKE_OPTIONS') should be changed. @@ -1423,14 +1498,14 @@ static void transformTableLikeClause( def->colname = pstrdup(attributeName); if (attribute->atttypid == BYTEAWITHOUTORDERCOLOID || attribute->atttypid == BYTEAWITHOUTORDERWITHEQUALCOLOID) { /* this is client logic column. need to rewrite */ - HeapTuple col_tup = SearchSysCache2(CERELIDCOUMNNAME, + HeapTuple col_tup = SearchSysCache2(CERELIDCOUMNNAME, ObjectIdGetDatum(RelationGetRelid(relation)), PointerGetDatum (def->colname)); - + if (!col_tup) { ereport(ERROR, (errcode(ERRCODE_UNDEFINED_CL_COLUMN), errmsg("could not find encrypted column for %s", def->colname))); } else { - + Form_gs_encrypted_columns columns_rel_data = (Form_gs_encrypted_columns)GETSTRUCT(col_tup); const Oid ColSettingOid = columns_rel_data->column_key_id; HeapTuple col_setting_tup = SearchSysCache1(COLUMNSETTINGOID, ObjectIdGetDatum(ColSettingOid)); @@ -1518,8 +1593,10 @@ static void transformTableLikeClause( if (seqs != NULL && list_member_oid(seqs, DatumGetObjectId(seqId))) { /* is serial type */ def->is_serial = true; + bool large = (get_rel_relkind(seqId) == RELKIND_LARGE_SEQUENCE); /* Special actions for SERIAL pseudo-types */ - createSeqOwnedByTable(cxt, def, preCheck); + + createSeqOwnedByTable(cxt, def, preCheck, large); } } } @@ -1814,9 +1891,9 @@ static void transformTableLikeClause( * Likewise, copy distribution if requested */ if (table_like_clause->options & CREATE_TABLE_LIKE_DISTRIBUTION) { - cxt->distributeby = (IS_PGXC_COORDINATOR) ? - getTableDistribution(relation->rd_id) : - getTableHBucketDistribution(relation); + cxt->distributeby = (IS_PGXC_COORDINATOR) ? + (hideTag ? GetHideTagDistribution(tupleDesc) : getTableDistribution(relation->rd_id)) : + getTableHBucketDistribution(relation); } #endif @@ -1844,7 +1921,7 @@ static void transformTableLikeClause( } if (u_sess->attr.attr_sql.enable_cluster_resize) { - cxt->isResizing = RelationInClusterResizing(relation); + cxt->isResizing = RelationInClusterResizing(relation); } /* @@ -2598,6 +2675,42 @@ static List* get_opclass(Oid opclass, Oid actual_datatype) return result; } +static bool IsPartitionKeyInParmaryKeyAndUniqueKey(const char *pkname, const List* constraintKeys) +{ + bool found = false; + ListCell *ixcell = NULL; + + foreach (ixcell, constraintKeys) { + char *ikname = strVal(lfirst(ixcell)); + + if (!strcmp(pkname, ikname)) { + found = true; + break; + } + } + + return found; +} + +static bool IsPartitionKeyAllInParmaryKeyAndUniqueKey(const List *partitionKey, const List *constraintKeys) +{ + ListCell *pkcell = NULL; + bool found = true; + + foreach (pkcell, partitionKey) { + ColumnRef *colref = (ColumnRef *)lfirst(pkcell); + char *pkname = ((Value *)linitial(colref->fields))->val.str; + + found = found && IsPartitionKeyInParmaryKeyAndUniqueKey(pkname, constraintKeys); + + if (!found) { + return false; + } + } + + return found; +} + /* * transformIndexConstraints * Handle UNIQUE, PRIMARY KEY, EXCLUDE constraints, which create indexes. @@ -2642,31 +2755,15 @@ static void transformIndexConstraints(CreateStmtContext* cxt) (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("Partitioned table does not support EXCLUDE index"))); } else { - ListCell* ixcell = NULL; - ListCell* pkcell = NULL; - - foreach (pkcell, cxt->partitionKey) { - ColumnRef* colref = (ColumnRef*)lfirst(pkcell); - char* pkname = ((Value*)linitial(colref->fields))->val.str; - bool found = false; - - foreach (ixcell, constraint->keys) { - char* ikname = strVal(lfirst(ixcell)); - - /* - * Indexkey column for PRIMARY KEY/UNIQUE constraint Must - * contain partitionKey - */ - if (!strcmp(pkname, ikname)) { - found = true; - break; - } - } - - if (!found) { - mustGlobal = true; - break; - } + bool checkPartitionKey = IsPartitionKeyAllInParmaryKeyAndUniqueKey(cxt->partitionKey, constraint->keys); + if (cxt->subPartitionKey != NULL) { + // for subpartition table. + bool checkSubPartitionKey = + IsPartitionKeyAllInParmaryKeyAndUniqueKey(cxt->subPartitionKey, constraint->keys); + mustGlobal = !(checkPartitionKey && checkSubPartitionKey); + } else { + // for partition table. + mustGlobal = !checkPartitionKey; } } } @@ -3432,12 +3529,12 @@ IndexStmt* transformIndexStmt(Oid relid, IndexStmt* stmt, const char* queryStrin errmsg("Invalid PRIMARY KEY/UNIQUE constraint for column partitioned table"), errdetail("Columns of PRIMARY KEY/UNIQUE constraint Must contain PARTITION KEY"))); } - ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("Global partition index does not support column store."))); + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("Global partition index does not support column store."))); } if (crossbucketopt > 0) { - ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("cross-bucket index does not support column store"))); + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("cross-bucket index does not support column store"))); } if (stmt->isconstraint && (stmt->unique || stmt->primary)) { /* cstore unique and primary key only support cbtree */ @@ -3451,21 +3548,21 @@ IndexStmt* transformIndexStmt(Oid relid, IndexStmt* stmt, const char* queryStrin /* Global partition index only support btree index */ if (pg_strcasecmp(stmt->accessMethod, DEFAULT_INDEX_TYPE) != 0 && pg_strcasecmp(stmt->accessMethod, DEFAULT_USTORE_INDEX_TYPE) != 0) { - ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("Global partition index only support btree."))); } if (isColStore) { - ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("Global partition index does not support column store."))); } } else if (crossbucketopt > 0) { if (pg_strcasecmp(stmt->accessMethod, DEFAULT_INDEX_TYPE) != 0) { /* report error when presenting crossbucket option with non-btree access method */ - ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("cross-bucket index only supports btree"))); } if (isColStore) { - ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("cross-bucket index does not support column store"))); } } else { @@ -3493,12 +3590,12 @@ IndexStmt* transformIndexStmt(Oid relid, IndexStmt* stmt, const char* queryStrin ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("Unsupport cgin index in this version"))); } - /* row store only support btree/ubtree/gin/gist/hash index */ if (!isColStore && (0 != pg_strcasecmp(stmt->accessMethod, DEFAULT_INDEX_TYPE)) && (0 != pg_strcasecmp(stmt->accessMethod, DEFAULT_GIN_INDEX_TYPE)) && (0 != pg_strcasecmp(stmt->accessMethod, DEFAULT_GIST_INDEX_TYPE)) && - (0 != pg_strcasecmp(stmt->accessMethod, DEFAULT_USTORE_INDEX_TYPE)) && - (0 != pg_strcasecmp(stmt->accessMethod, DEFAULT_HASH_INDEX_TYPE))) { + (0 != pg_strcasecmp(stmt->accessMethod, DEFAULT_HASH_INDEX_TYPE)) && + (0 != pg_strcasecmp(stmt->accessMethod, DEFAULT_USTORE_INDEX_TYPE))) { + /* row store only support btree/ubtree/gin/gist index */ ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("access method \"%s\" does not support row store", stmt->accessMethod))); @@ -3810,11 +3907,11 @@ void transformRuleStmt(RuleStmt* stmt, const char* queryString, List** actions, case CMD_UTILITY: if (has_old) ereport(ERROR, - (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), + (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), errmsg("ON SELECT or UTILITY rule cannot use OLD"))); if (has_new) ereport(ERROR, - (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), + (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), errmsg("ON SELECT or UTILITY rule cannot use NEW"))); break; case CMD_UPDATE: @@ -3945,8 +4042,8 @@ List* transformAlterTableStmt(Oid relid, AlterTableStmt* stmt, const char* query */ if (isSecurityMode && !have_useft_privilege()) { ereport(ERROR, - (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), - errmsg("permission denied to alter foreign table in security mode"))); + (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), + errmsg("permission denied to alter foreign table in security mode"))); } } @@ -4038,9 +4135,9 @@ List* transformAlterTableStmt(Oid relid, AlterTableStmt* stmt, const char* query } } else ereport(ERROR, - (errcode(ERRCODE_UNRECOGNIZED_NODE_TYPE), - errmodule(MOD_OPT), - errmsg("unrecognized node type: %d", (int)nodeTag(cmd->def)))); + (errcode(ERRCODE_UNRECOGNIZED_NODE_TYPE), + errmodule(MOD_OPT), + errmsg("unrecognized node type: %d", (int)nodeTag(cmd->def)))); break; case AT_ProcessedConstraint: @@ -4058,16 +4155,16 @@ List* transformAlterTableStmt(Oid relid, AlterTableStmt* stmt, const char* query addDefState = (AddPartitionState*)cmd->def; if (!PointerIsValid(addDefState)) { ereport(ERROR, - (errcode(ERRCODE_UNEXPECTED_NULL_VALUE), errmsg("missing definition of adding partition"))); + (errcode(ERRCODE_UNEXPECTED_NULL_VALUE), errmsg("missing definition of adding partition"))); } /* A_Const -->Const */ foreach (cell, addDefState->partitionList) { rangePartDef = (Node*)lfirst(cell); - transformRangePartitionValue(pstate, rangePartDef, true); + transformPartitionValue(pstate, rangePartDef, true); } /* transform START/END into LESS/THAN: - * Put this part behind the transformRangePartitionValue(). + * Put this part behind the transformPartitionValue(). */ if (addDefState->isStartEnd) { List* pos = NIL; @@ -4102,33 +4199,41 @@ List* transformAlterTableStmt(Oid relid, AlterTableStmt* stmt, const char* query case AT_DropPartition: case AT_TruncatePartition: case AT_ExchangePartition: + case AT_TruncateSubPartition: /* transform the boundary of range partition, * this step transform it from A_Const into Const */ rangePartDef = (Node*)cmd->def; if (PointerIsValid(rangePartDef)) { - transformRangePartitionValue(pstate, rangePartDef, false); + transformPartitionValue(pstate, rangePartDef, false); } newcmds = lappend(newcmds, cmd); break; case AT_SplitPartition: - if (!RELATION_IS_PARTITIONED(rel)) + if (!RELATION_IS_PARTITIONED(rel)) { ereport(ERROR, (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), errmodule(MOD_OPT), errmsg("can not split partition against NON-PARTITIONED table"))); + } + if (RelationIsSubPartitioned(rel)) { + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + (errmsg("Un-support feature"), + errdetail("For subpartition table, split partition is not supported yet."), + errcause("The function is not implemented."), erraction("Use other actions instead.")))); + } if (rel->partMap->type == PART_TYPE_LIST || rel->partMap->type == PART_TYPE_HASH) { ereport(ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("can not split LIST/HASH partition table"))); } - /* transform the boundary of range partition: from A_Const into Const */ splitDefState = (SplitPartitionState*)cmd->def; if (!PointerIsValid(splitDefState->split_point)) { foreach (cell, splitDefState->dest_partition_define_list) { rangePartDef = (Node*)lfirst(cell); - transformRangePartitionValue(pstate, rangePartDef, true); + transformPartitionValue(pstate, rangePartDef, true); } } if (splitDefState->partition_for_values) @@ -4172,6 +4277,20 @@ List* transformAlterTableStmt(Oid relid, AlterTableStmt* stmt, const char* query newcmds = lappend(newcmds, cmd); break; + case AT_SplitSubPartition: + splitDefState = (SplitPartitionState*)cmd->def; + if (splitDefState->splitType == LISTSUBPARTITIION) { + newcmds = lappend(newcmds, cmd); + } else if (splitDefState->splitType == RANGESUBPARTITIION) { + if (!PointerIsValid(splitDefState->split_point)) { + foreach (cell, splitDefState->dest_partition_define_list) { + rangePartDef = (Node *)lfirst(cell); + transformPartitionValue(pstate, rangePartDef, true); + } + } + newcmds = lappend(newcmds, cmd); + } + break; default: newcmds = lappend(newcmds, cmd); break; @@ -4323,22 +4442,22 @@ static void transformConstraintAttrs(CreateStmtContext* cxt, List* constraintLis lastprimarycon->deferrable = false; if (saw_initially && lastprimarycon->initdeferred) ereport(ERROR, - (errcode(ERRCODE_SYNTAX_ERROR), - errmsg("constraint declared INITIALLY DEFERRED must be DEFERRABLE"), - parser_errposition(cxt->pstate, con->location))); + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("constraint declared INITIALLY DEFERRED must be DEFERRABLE"), + parser_errposition(cxt->pstate, con->location))); break; case CONSTR_ATTR_DEFERRED: if (!SUPPORTS_ATTRS(lastprimarycon)) ereport(ERROR, - (errcode(ERRCODE_SYNTAX_ERROR), - errmsg("misplaced INITIALLY DEFERRED clause"), - parser_errposition(cxt->pstate, con->location))); + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("misplaced INITIALLY DEFERRED clause"), + parser_errposition(cxt->pstate, con->location))); if (saw_initially) ereport(ERROR, - (errcode(ERRCODE_SYNTAX_ERROR), - errmsg("multiple INITIALLY IMMEDIATE/DEFERRED clauses not allowed"), - parser_errposition(cxt->pstate, con->location))); + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("multiple INITIALLY IMMEDIATE/DEFERRED clauses not allowed"), + parser_errposition(cxt->pstate, con->location))); saw_initially = true; lastprimarycon->initdeferred = true; @@ -4349,22 +4468,22 @@ static void transformConstraintAttrs(CreateStmtContext* cxt, List* constraintLis lastprimarycon->deferrable = true; else if (!lastprimarycon->deferrable) ereport(ERROR, - (errcode(ERRCODE_SYNTAX_ERROR), - errmsg("constraint declared INITIALLY DEFERRED must be DEFERRABLE"), - parser_errposition(cxt->pstate, con->location))); + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("constraint declared INITIALLY DEFERRED must be DEFERRABLE"), + parser_errposition(cxt->pstate, con->location))); break; case CONSTR_ATTR_IMMEDIATE: if (!SUPPORTS_ATTRS(lastprimarycon)) ereport(ERROR, - (errcode(ERRCODE_SYNTAX_ERROR), - errmsg("misplaced INITIALLY IMMEDIATE clause"), - parser_errposition(cxt->pstate, con->location))); + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("misplaced INITIALLY IMMEDIATE clause"), + parser_errposition(cxt->pstate, con->location))); if (saw_initially) ereport(ERROR, - (errcode(ERRCODE_SYNTAX_ERROR), - errmsg("multiple INITIALLY IMMEDIATE/DEFERRED clauses not allowed"), - parser_errposition(cxt->pstate, con->location))); + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("multiple INITIALLY IMMEDIATE/DEFERRED clauses not allowed"), + parser_errposition(cxt->pstate, con->location))); saw_initially = true; lastprimarycon->initdeferred = false; break; @@ -4398,11 +4517,23 @@ static void transformColumnType(CreateStmtContext* cxt, ColumnDef* column) /* Complain if COLLATE is applied to an uncollatable type */ if (!OidIsValid(typtup->typcollation)) ereport(ERROR, - (errcode(ERRCODE_DATATYPE_MISMATCH), - errmsg("collations are not supported by type %s", format_type_be(HeapTupleGetOid(ctype))), - parser_errposition(cxt->pstate, column->collClause->location))); + (errcode(ERRCODE_DATATYPE_MISMATCH), + errmsg("collations are not supported by type %s", format_type_be(HeapTupleGetOid(ctype))), + parser_errposition(cxt->pstate, column->collClause->location))); } +#ifndef ENABLE_MULTIPLE_NODES + /* don't allow package or procedure type as column type */ + if (IsPackageDependType(typeTypeId(ctype), InvalidOid)) { + ereport(ERROR, + (errcode(ERRCODE_DATATYPE_MISMATCH), + errmodule(MOD_PLSQL), + errmsg("type \"%s\" is not supported as column type", TypeNameToString(column->typname)), + errdetail("\"%s\" is a package or procedure type", TypeNameToString(column->typname)), + errcause("feature not supported"), + erraction("check type name"))); + } +#endif ReleaseSysCache(ctype); } @@ -4530,6 +4661,67 @@ static void setSchemaName(char* context_schema, char** stmt_schema_name) context_schema))); } +NodeTag GetPartitionStateType(char type) +{ + NodeTag partitionType = T_Invalid; + switch (type) { + case 'r': + partitionType = T_RangePartitionDefState; + break; + case 'l': + partitionType = T_ListPartitionDefState; + break; + case 'h': + partitionType = T_HashPartitionDefState; + break; + default: + ereport(ERROR, (errcode(ERRCODE_INVALID_OPERATION), + errmsg("unsupported subpartition type: %c", type))); + break; + } + return partitionType; +} + +char* GetPartitionDefStateName(Node *partitionDefState) +{ + char* partitionName = NULL; + switch (nodeTag(partitionDefState)) { + case T_RangePartitionDefState: + partitionName = ((RangePartitionDefState *)partitionDefState)->partitionName; + break; + case T_ListPartitionDefState: + partitionName = ((ListPartitionDefState *)partitionDefState)->partitionName; + break; + case T_HashPartitionDefState: + partitionName = ((HashPartitionDefState *)partitionDefState)->partitionName; + break; + default: + ereport(ERROR, (errcode(ERRCODE_INVALID_OPERATION), errmsg("unsupported subpartition type"))); + break; + } + return partitionName; +} + +List* GetSubPartitionDefStateList(Node *partitionDefState) +{ + List* subPartitionList = NIL; + switch (nodeTag(partitionDefState)) { + case T_RangePartitionDefState: + subPartitionList = ((RangePartitionDefState *)partitionDefState)->subPartitionDefState; + break; + case T_ListPartitionDefState: + subPartitionList = ((ListPartitionDefState *)partitionDefState)->subPartitionDefState; + break; + case T_HashPartitionDefState: + subPartitionList = ((HashPartitionDefState *)partitionDefState)->subPartitionDefState; + break; + default: + subPartitionList = NIL; + break; + } + return subPartitionList; +} + /* * @@GaussDB@@ * Target : data partition @@ -4559,20 +4751,20 @@ void checkPartitionSynax(CreateStmt* stmt) */ if (rel->rd_rel->relkind == RELKIND_FOREIGN_TABLE || rel->rd_rel->relkind == RELKIND_STREAM) { ereport(ERROR, - (errcode(ERRCODE_WRONG_OBJECT_TYPE), - errmsg("inherited relation \"%s\" is a foreign table", inh->relname), - errdetail("can not inherit from a foreign table"))); + (errcode(ERRCODE_WRONG_OBJECT_TYPE), + errmsg("inherited relation \"%s\" is a foreign table", inh->relname), + errdetail("can not inherit from a foreign table"))); } else if (rel->rd_rel->relkind != RELKIND_RELATION) { ereport(ERROR, - (errcode(ERRCODE_WRONG_OBJECT_TYPE), - errmsg("inherited relation \"%s\" is not a table", inh->relname))); + (errcode(ERRCODE_WRONG_OBJECT_TYPE), + errmsg("inherited relation \"%s\" is not a table", inh->relname))); } if (RELATION_IS_PARTITIONED(rel)) { ereport(ERROR, - (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), - errmodule(MOD_OPT), - errmsg("inherited relation \"%s\" is a partitioned table", inh->relname), - errdetail("can not inherit from partitioned table"))); + (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), + errmodule(MOD_OPT), + errmsg("inherited relation \"%s\" is a partitioned table", inh->relname), + errdetail("can not inherit from partitioned table"))); } heap_close(rel, NoLock); } @@ -4590,9 +4782,9 @@ void checkPartitionSynax(CreateStmt* stmt) /* do partition-key null check as part of sytax check */ if (list_length(stmt->partTableState->partitionKey) == 0) { ereport(ERROR, - (errmodule(MOD_OPT), - errcode(ERRCODE_SYNTAX_ERROR), - errmsg("Value-based partition table should have one column at least"))); + (errmodule(MOD_OPT), + errcode(ERRCODE_SYNTAX_ERROR), + errmsg("Value-based partition table should have one column at least"))); } /* @@ -4601,9 +4793,9 @@ void checkPartitionSynax(CreateStmt* stmt) */ if (stmt->partTableState->intervalPartDef || stmt->partTableState->partitionList) { ereport(ERROR, - (errcode(ERRCODE_INVALID_OPERATION), - errmsg("Value-Based partition table creation encounters unexpected data in unnecessary fields"), - errdetail("save context and get assistance from DB Dev team"))); + (errcode(ERRCODE_INVALID_OPERATION), + errmsg("Value-Based partition table creation encounters unexpected data in unnecessary fields"), + errdetail("save context and get assistance from DB Dev team"))); } } @@ -4621,8 +4813,8 @@ void checkPartitionSynax(CreateStmt* stmt) /* unsupport typed table */ if (stmt->relation->relpersistence != RELPERSISTENCE_PERMANENT) { ereport(ERROR, - (errcode(ERRCODE_SYNTAX_ERROR), - errmsg("unsupported feature with temporary/unlogged table for partitioned table"))); + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("unsupported feature with temporary/unlogged table for partitioned table"))); } /* unsupport oids option */ @@ -4638,17 +4830,17 @@ void checkPartitionSynax(CreateStmt* stmt) /* check partition key number for none value-partition table */ if (!value_partition && stmt->partTableState->partitionKey->length > MAX_PARTITIONKEY_NUM) { ereport(ERROR, - (errcode(ERRCODE_INVALID_TABLE_DEFINITION), - errmsg("too many partition keys for partitioned table"), - errhint("Partittion key columns can not be more than %d", MAX_PARTITIONKEY_NUM))); + (errcode(ERRCODE_INVALID_TABLE_DEFINITION), + errmsg("too many partition keys for partitioned table"), + errhint("Partittion key columns can not be more than %d", MAX_PARTITIONKEY_NUM))); } /* check range partition number for none value-partition table */ if (!value_partition && stmt->partTableState->partitionList->length > MAX_PARTITION_NUM) { ereport(ERROR, - (errcode(ERRCODE_INVALID_TABLE_DEFINITION), - errmsg("too many partitions for partitioned table"), - errhint("Number of partitions can not be more than %d", MAX_PARTITION_NUM))); + (errcode(ERRCODE_INVALID_TABLE_DEFINITION), + errmsg("too many partitions for partitioned table"), + errhint("Number of partitions can not be more than %d", MAX_PARTITION_NUM))); } /* check interval synax */ @@ -4660,15 +4852,15 @@ void checkPartitionSynax(CreateStmt* stmt) #else if (1 < stmt->partTableState->partitionKey->length) { ereport(ERROR, - (errcode(ERRCODE_INVALID_TABLE_DEFINITION), - errmsg("Range partitioned table with INTERVAL clause has more than one column"), - errhint("Only support one partition key for interval partition"))); + (errcode(ERRCODE_INVALID_TABLE_DEFINITION), + errmsg("Range partitioned table with INTERVAL clause has more than one column"), + errhint("Only support one partition key for interval partition"))); } if (!IsA(stmt->partTableState->intervalPartDef->partInterval, A_Const) || ((A_Const*)stmt->partTableState->intervalPartDef->partInterval)->val.type != T_String) { ereport(ERROR, - (errcode(ERRCODE_INVALID_DATETIME_FORMAT), - errmsg("invalid input syntax for type interval"))); + (errcode(ERRCODE_INVALID_DATETIME_FORMAT), + errmsg("invalid input syntax for type interval"))); } int32 typmod = -1; Interval* interval = NULL; @@ -4677,6 +4869,49 @@ void checkPartitionSynax(CreateStmt* stmt) pfree(interval); #endif } + + /* check subpartition synax */ + if (stmt->partTableState->subPartitionState != NULL) { + NodeTag subPartitionType = GetPartitionStateType(stmt->partTableState->subPartitionState->partitionStrategy); + List* partitionList = stmt->partTableState->partitionList; + ListCell* lc1 = NULL; + ListCell* lc2 = NULL; + foreach (lc1, partitionList) { + Node* partitionDefState = (Node*)lfirst(lc1); + List* subPartitionList = GetSubPartitionDefStateList(partitionDefState); + foreach (lc2, subPartitionList) { + Node *subPartitionDefState = (Node *)lfirst(lc2); + if ((nodeTag(subPartitionDefState) != subPartitionType)) { + ereport(ERROR, (errcode(ERRCODE_INVALID_OPERATION), + errmsg("The syntax format of subpartition is incorrect, the declaration and " + "definition of the subpartition do not match."), + errdetail("The syntax format of subpartition %s is incorrect.", + GetPartitionDefStateName(subPartitionDefState)), + errcause("The declaration and definition of the subpartition do not match."), + erraction("Consistent declaration and definition of subpartition."))); + } + } + } + } else { + /* If there is a definition of subpartition, there must be a declaration of subpartition. + * However, if there is a declaration of subpartition, there may not be a definition of subpartition. + * This is because the system creates a default subpartition. + */ + List* partitionList = stmt->partTableState->partitionList; + ListCell* lc1 = NULL; + foreach (lc1, partitionList) { + Node* partitionDefState = (Node*)lfirst(lc1); + List *subPartitionList = GetSubPartitionDefStateList(partitionDefState); + if (subPartitionList != NIL) { + ereport( + ERROR, + (errcode(ERRCODE_INVALID_OPERATION), + errmsg("The syntax format of subpartition is incorrect, missing declaration of subpartition."), + errdetail("N/A"), errcause("Missing declaration of subpartition."), + erraction("Supplements declaration of subpartition."))); + } + } + } } /* @@ -4698,7 +4933,7 @@ static void checkPartitionValue(CreateStmtContext* cxt, CreateStmt* stmt) /* transform expression in partition definition and evaluate the expression */ foreach (cell, partdef->partitionList) { Node* state = (Node*)lfirst(cell); - transformRangePartitionValue(cxt->pstate, state, true); + transformPartitionValue(cxt->pstate, state, true); } } @@ -4787,6 +5022,66 @@ void checkPartitionName(List* partitionList, bool isPartition) } } +List* GetPartitionNameList(List* partitionList) +{ + ListCell* cell = NULL; + ListCell* lc = NULL; + List* subPartitionDefStateList = NIL; + List* partitionNameList = NIL; + + foreach (cell, partitionList) { + if (IsA((Node*)lfirst(cell), RangePartitionDefState)) { + RangePartitionDefState* partitionDefState = (RangePartitionDefState*)lfirst(cell); + subPartitionDefStateList = partitionDefState->subPartitionDefState; + partitionNameList = lappend(partitionNameList, partitionDefState->partitionName); + } else if (IsA((Node*)lfirst(cell), ListPartitionDefState)) { + ListPartitionDefState* partitionDefState = (ListPartitionDefState*)lfirst(cell); + subPartitionDefStateList = partitionDefState->subPartitionDefState; + partitionNameList = lappend(partitionNameList, partitionDefState->partitionName); + } else { + HashPartitionDefState* partitionDefState = (HashPartitionDefState*)lfirst(cell); + subPartitionDefStateList = partitionDefState->subPartitionDefState; + partitionNameList = lappend(partitionNameList, partitionDefState->partitionName); + } + + foreach (lc, subPartitionDefStateList) { + if (IsA((Node *)lfirst(lc), RangePartitionDefState)) { + RangePartitionDefState *partitionDefState = (RangePartitionDefState *)lfirst(lc); + partitionNameList = lappend(partitionNameList, partitionDefState->partitionName); + } else if (IsA((Node *)lfirst(lc), ListPartitionDefState)) { + ListPartitionDefState *partitionDefState = (ListPartitionDefState *)lfirst(lc); + partitionNameList = lappend(partitionNameList, partitionDefState->partitionName); + } else { + HashPartitionDefState *partitionDefState = (HashPartitionDefState *)lfirst(lc); + partitionNameList = lappend(partitionNameList, partitionDefState->partitionName); + } + } + } + + return partitionNameList; +} + +void checkSubPartitionName(List* partitionList) +{ + ListCell* cell = NULL; + ListCell* lc = NULL; + List* partitionNameList = GetPartitionNameList(partitionList); + + foreach (cell, partitionNameList) { + char *subPartitionName1 = (char *)lfirst(cell); + lc = cell; + while ((lc = lnext(lc)) != NULL) { + char *subPartitionName2 = (char *)lfirst(lc); + if (!strcmp(subPartitionName1, subPartitionName2)) { + list_free_ext(partitionNameList); + ereport(ERROR, (errcode(ERRCODE_DUPLICATE_OBJECT), + errmsg("duplicate subpartition name: \"%s\"", subPartitionName2))); + } + } + } + list_free_ext(partitionNameList); +} + static void CheckDistributionSyntax(CreateStmt* stmt) { DistributeBy *distBy = stmt->distributeby; @@ -4819,7 +5114,7 @@ static void CheckSliceValue(CreateStmtContext *cxt, CreateStmt *stmt) def->boundary = transformRangePartitionValueInternal(cxt->pstate, def->boundary, true, true, false); break; } - + case T_RangePartitionStartEndDefState: { RangePartitionStartEndDefState *def = (RangePartitionStartEndDefState *)slice; def->startValue = transformRangePartitionValueInternal(cxt->pstate, def->startValue, true, true, false); @@ -4849,7 +5144,7 @@ static void CheckSliceValue(CreateStmtContext *cxt, CreateStmt *stmt) } } -static void TransformListDistributionValue(ParseState* pstate, Node** listDistDef, bool needCheck) +static void TransformListDistributionValue(ParseState* pstate, Node** listDistDef, bool needCheck) { *listDistDef = (Node *)transformRangePartitionValueInternal( pstate, (List *)*listDistDef, needCheck, true, false); @@ -4886,8 +5181,8 @@ static List* GetDistributionkeyPos(List* partitionkeys, List* schema) if (isExist[columnCount]) { pfree_ext(isExist); ereport(ERROR, - (errcode(ERRCODE_DUPLICATE_COLUMN), - errmsg("Include identical distribution column: \"%s\"", distributionkeyName))); + (errcode(ERRCODE_DUPLICATE_COLUMN), + errmsg("Include identical distribution column: \"%s\"", distributionkeyName))); } isExist[columnCount] = true; @@ -4900,8 +5195,8 @@ static List* GetDistributionkeyPos(List* partitionkeys, List* schema) if (columnCount >= len) { pfree_ext(isExist); ereport(ERROR, - (errcode(ERRCODE_UNDEFINED_COLUMN), - errmsg("Invalid distribution column specified"))); + (errcode(ERRCODE_UNDEFINED_COLUMN), + errmsg("Invalid distribution column specified"))); } pos = lappend_int(pos, columnCount); @@ -4938,8 +5233,8 @@ static void ConvertSliceStartEnd2LessThan(CreateStmtContext *cxt, CreateStmt *st char *storeChar = CreatestmtGetOrientation(stmt); if ((pg_strcasecmp(storeChar, ORIENTATION_ROW) != 0) && (pg_strcasecmp(storeChar, ORIENTATION_COLUMN) != 0)) { ereport(ERROR, - (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("Un-supported feature"), + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("Un-supported feature"), errdetail("Orientation type %s is not supported for range distributed table.", storeChar))); } desc = BuildDescForRelation(cxt->columns, (Node *)makeString(storeChar)); @@ -4965,8 +5260,8 @@ static void CheckListSliceName(List* sliceList) curName = ((ListSliceDefState *)lfirst(next))->name; if (strcmp(refName, curName) == 0) { ereport(ERROR, - (errcode(ERRCODE_DUPLICATE_OBJECT), - errmsg("duplicate slice name: \"%s\"", refName))); + (errcode(ERRCODE_DUPLICATE_OBJECT), + errmsg("duplicate slice name: \"%s\"", refName))); } } } @@ -5026,9 +5321,9 @@ static void checkClusterConstraints(CreateStmtContext* cxt) char* key2 = strVal(lfirst(lc2)); if (0 == strcasecmp(key1, key2)) { ereport(ERROR, - (errcode(ERRCODE_DUPLICATE_COLUMN), - errmsg("column \"%s\" appears twice in partial cluster key constraint", key1), - parser_errposition(cxt->pstate, constraint->location))); + (errcode(ERRCODE_DUPLICATE_COLUMN), + errmsg("column \"%s\" appears twice in partial cluster key constraint", key1), + parser_errposition(cxt->pstate, constraint->location))); } } } @@ -5055,8 +5350,8 @@ static void checkReserveColumn(CreateStmtContext* cxt) if (CHCHK_PSORT_RESERVE_COLUMN(col->colname)) { ereport(ERROR, - (errcode(ERRCODE_DUPLICATE_COLUMN), - errmsg("column name \"%s\" conflicts with a system column name", col->colname))); + (errcode(ERRCODE_DUPLICATE_COLUMN), + errmsg("column name \"%s\" conflicts with a system column name", col->colname))); } } } @@ -5065,7 +5360,7 @@ static void checkPsortIndexCompatible(IndexStmt* stmt) { if (stmt->whereClause) { ereport(ERROR, - (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("access method \"psort\" does not support WHERE clause"))); + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("access method \"psort\" does not support WHERE clause"))); } /* psort index can not support index expressions */ @@ -5075,8 +5370,8 @@ static void checkPsortIndexCompatible(IndexStmt* stmt) if (ielem->expr) { ereport(ERROR, - (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("access method \"psort\" does not support index expressions"))); + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("access method \"psort\" does not support index expressions"))); } } } @@ -5085,7 +5380,7 @@ static void checkCBtreeIndexCompatible(IndexStmt* stmt) { if (stmt->whereClause) { ereport(ERROR, - (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("access method \"cbtree\" does not support WHERE clause"))); + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("access method \"cbtree\" does not support WHERE clause"))); } /* psort index can not support index expressions */ @@ -5095,8 +5390,8 @@ static void checkCBtreeIndexCompatible(IndexStmt* stmt) if (ielem->expr) { ereport(ERROR, - (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("access method \"cbtree\" does not support index expressions"))); + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("access method \"cbtree\" does not support index expressions"))); } } } @@ -5107,7 +5402,7 @@ static void checkCGinBtreeIndexCompatible(IndexStmt* stmt) if (stmt->whereClause) { ereport(ERROR, - (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("access method \"cgin\" does not support WHERE clause"))); + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("access method \"cgin\" does not support WHERE clause"))); } /* cgin index can not support null text search parser */ @@ -5126,8 +5421,8 @@ static void checkCGinBtreeIndexCompatible(IndexStmt* stmt) Const* constarg = (Const*)firstarg; if (constarg->constisnull) ereport(ERROR, - (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("access method \"cgin\" does not support null text search parser"))); + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("access method \"cgin\" does not support null text search parser"))); } } } @@ -5147,10 +5442,10 @@ List* transformListPartitionValue(ParseState* pstate, List* boundary, bool needC result = transformIntoConst(pstate, elem); if (PointerIsValid(result) && needCheck && ((Const*)result)->constisnull && !((Const*)result)->ismaxvalue) { ereport(ERROR, - (errcode(ERRCODE_SYNTAX_ERROR), - errmsg("Partition key value can not be null"), - errdetail("partition bound element must be one of: string, datetime or interval literal, number, " - "or MAXVALUE, and not null"))); + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("Partition key value can not be null"), + errdetail("partition bound element must be one of: string, datetime or interval literal, number, " + "or MAXVALUE, and not null"))); } newValueList = lappend(newValueList, result); } @@ -5161,7 +5456,19 @@ List* transformListPartitionValue(ParseState* pstate, List* boundary, bool needC return newValueList; } -void transformRangePartitionValue(ParseState* pstate, Node* rangePartDef, bool needCheck) +void transformRangeSubPartitionValue(ParseState* pstate, List* subPartitionDefStateList) +{ + if (subPartitionDefStateList == NIL) { + return; + } + ListCell *cell = NULL; + foreach (cell, subPartitionDefStateList) { + Node *subPartitionDefState = (Node *)lfirst(cell); + transformPartitionValue(pstate, subPartitionDefState, true); + } +} + +void transformPartitionValue(ParseState* pstate, Node* rangePartDef, bool needCheck) { Assert(rangePartDef); /* never null */ @@ -5170,6 +5477,7 @@ void transformRangePartitionValue(ParseState* pstate, Node* rangePartDef, bool n RangePartitionDefState* state = (RangePartitionDefState*)rangePartDef; /* only one boundary need transform */ state->boundary = transformRangePartitionValueInternal(pstate, state->boundary, needCheck, true); + transformRangeSubPartitionValue(pstate, state->subPartitionDefState); break; } case T_RangePartitionStartEndDefState: { @@ -5184,12 +5492,14 @@ void transformRangePartitionValue(ParseState* pstate, Node* rangePartDef, bool n case T_ListPartitionDefState: { ListPartitionDefState* state = (ListPartitionDefState*)rangePartDef; state->boundary = transformListPartitionValue(pstate, state->boundary, needCheck, true); + transformRangeSubPartitionValue(pstate, state->subPartitionDefState); break; } case T_HashPartitionDefState: { HashPartitionDefState* state = (HashPartitionDefState*)rangePartDef; /* only one boundary need transform */ state->boundary = transformListPartitionValue(pstate, state->boundary, needCheck, true); + transformRangeSubPartitionValue(pstate, state->subPartitionDefState); break; } @@ -5198,7 +5508,7 @@ void transformRangePartitionValue(ParseState* pstate, Node* rangePartDef, bool n } } -List* transformRangePartitionValueInternal(ParseState* pstate, List* boundary, bool needCheck, bool needFree, +List* transformRangePartitionValueInternal(ParseState* pstate, List* boundary, bool needCheck, bool needFree, bool isPartition) { List* newMaxValueList = NIL; @@ -5248,7 +5558,7 @@ Node* transformIntoConst(ParseState* pstate, Node* maxElem, bool isPartition) case T_Const: result = maxElem; break; - /* MaxValue for Date must be a function expression(to_date) */ + /* MaxValue for Date must be a function expression(to_date) */ case T_FuncExpr: { funcexpr = (FuncExpr*)maxElem; result = (Node*)evaluate_expr( @@ -5260,16 +5570,16 @@ Node* transformIntoConst(ParseState* pstate, Node* maxElem, bool isPartition) */ if (T_Const != nodeTag((Node*)result)) { ereport(ERROR, - (errcode(ERRCODE_SYNTAX_ERROR), - errmsg("%s key value must be const or const-evaluable expression", - (isPartition ? "partition" : "distribution")))); + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("%s key value must be const or const-evaluable expression", + (isPartition ? "partition" : "distribution")))); } } break; default: { ereport(ERROR, - (errcode(ERRCODE_SYNTAX_ERROR), - errmsg("%s key value must be const or const-evaluable expression", - (isPartition ? "partition" : "distribution")))); + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("%s key value must be const or const-evaluable expression", + (isPartition ? "partition" : "distribution")))); } break; } return result; @@ -5282,7 +5592,7 @@ Node* transformIntoConst(ParseState* pstate, Node* maxElem, bool isPartition) * Notes : */ Oid generateClonedIndex(Relation source_idx, Relation source_relation, char* tempIndexName, Oid targetTblspcOid, - bool skip_build, bool partitionedIndex) + bool skip_build, bool partitionedIndex) { CreateStmtContext cxt; IndexStmt* index_stmt = NULL; @@ -5336,12 +5646,12 @@ Oid generateClonedIndex(Relation source_idx, Relation source_relation, char* tem /* ... and do it */ WaitState oldStatus = pgstat_report_waitstatus(STATE_CREATE_INDEX); ret = DefineIndex(RelationGetRelid(source_relation), - index_stmt, - InvalidOid, /* no predefined OID */ - false, /* is_alter_table */ - true, /* check_rights */ - skip_build, /* skip_build */ - false); /* quiet */ + index_stmt, + InvalidOid, /* no predefined OID */ + false, /* is_alter_table */ + true, /* check_rights */ + skip_build, /* skip_build */ + false); /* quiet */ (void)pgstat_report_waitstatus(oldStatus); /* clean up */ @@ -5397,8 +5707,8 @@ void checkInformationalConstraint(Node* node, bool isForeignTbl) if (!isForeignTbl) { if (constr->inforConstraint && constr->inforConstraint->nonforced) { ereport(ERROR, - (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("It is not allowed to support \"NOT ENFORCED\" informational constraint."))); + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("It is not allowed to support \"NOT ENFORCED\" informational constraint."))); } return; } @@ -5409,19 +5719,19 @@ void checkInformationalConstraint(Node* node, bool isForeignTbl) /* HDFS foreign table only support not enforced informational primary key and unique Constraint. */ if (constr->inforConstraint == NULL || !constr->inforConstraint->nonforced) { ereport(ERROR, - (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("The foreign table only support \"NOT ENFORCED\" informational constraint."))); + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("The foreign table only support \"NOT ENFORCED\" informational constraint."))); } } else { ereport(ERROR, - (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("Only the primary key, unique, not null and null be supported."))); + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("Only the primary key, unique, not null and null be supported."))); } if (constr->keys != NIL && list_length(constr->keys) != 1) { ereport(ERROR, - (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("Multi-column combined informational constraint is forbidden."))); + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("Multi-column combined informational constraint is forbidden."))); } } @@ -5518,9 +5828,9 @@ void get_range_partition_name_prefix(char* namePrefix, char* srcName, bool print namePrefix[k] = '\0'; if (printNotice) ereport(NOTICE, - (errcode(ERRCODE_INVALID_TABLE_DEFINITION), - errmsg("%s name's prefix \"%s\" will be truncated to \"%s\"", - (isPartition ? "Partition" : "Slice"), srcName, namePrefix))); + (errcode(ERRCODE_INVALID_TABLE_DEFINITION), + errmsg("%s name's prefix \"%s\" will be truncated to \"%s\"", + (isPartition ? "Partition" : "Slice"), srcName, namePrefix))); } } @@ -5541,9 +5851,9 @@ static void get_rel_partition_info(Relation partTableRel, List** pos, Const** up if (!RELATION_IS_PARTITIONED(partTableRel)) { ereport(ERROR, - (errmodule(MOD_OPT), - errcode(ERRCODE_INVALID_OBJECT_DEFINITION), - errmsg("CAN NOT get detail info from a NON-PARTITIONED relation."))); + (errmodule(MOD_OPT), + errcode(ERRCODE_INVALID_OBJECT_DEFINITION), + errmsg("CAN NOT get detail info from a NON-PARTITIONED relation."))); } if (pos == NULL && upBound == NULL) @@ -5586,9 +5896,9 @@ static void get_src_partition_bound(Relation partTableRel, Oid srcPartOid, Const if (!RELATION_IS_PARTITIONED(partTableRel)) { ereport(ERROR, - (errmodule(MOD_OPT), - errcode(ERRCODE_INVALID_OBJECT_DEFINITION), - errmsg("CAN NOT get detail info from a NON-PARTITIONED relation."))); + (errmodule(MOD_OPT), + errcode(ERRCODE_INVALID_OBJECT_DEFINITION), + errmsg("CAN NOT get detail info from a NON-PARTITIONED relation."))); } if (lowBound == NULL && upBound == NULL) @@ -5596,9 +5906,9 @@ static void get_src_partition_bound(Relation partTableRel, Oid srcPartOid, Const if (srcPartOid == InvalidOid) ereport(ERROR, - (errmodule(MOD_OPT), - errcode(ERRCODE_INVALID_OBJECT_DEFINITION), - errmsg("CAN NOT get detail info from a partitioned relation WITHOUT specified partition."))); + (errmodule(MOD_OPT), + errcode(ERRCODE_INVALID_OBJECT_DEFINITION), + errmsg("CAN NOT get detail info from a partitioned relation WITHOUT specified partition."))); Assert(partTableRel->partMap->type == PART_TYPE_RANGE || partTableRel->partMap->type == PART_TYPE_INTERVAL); partMap = (RangePartitionMap*)partTableRel->partMap; @@ -5630,23 +5940,23 @@ static Oid get_split_partition_oid(Relation partTableRel, SplitPartitionState* s if (!RELATION_IS_PARTITIONED(partTableRel)) { ereport(ERROR, - (errmodule(MOD_OPT), - errcode(ERRCODE_INVALID_OBJECT_DEFINITION), - errmsg("CAN NOT get partition oid from a NON-PARTITIONED relation."))); + (errmodule(MOD_OPT), + errcode(ERRCODE_INVALID_OBJECT_DEFINITION), + errmsg("CAN NOT get partition oid from a NON-PARTITIONED relation."))); } partMap = (RangePartitionMap*)partTableRel->partMap; if (PointerIsValid(splitState->src_partition_name)) { srcPartOid = partitionNameGetPartitionOid(RelationGetRelid(partTableRel), - splitState->src_partition_name, - PART_OBJ_TYPE_TABLE_PARTITION, - AccessExclusiveLock, - true, - false, - NULL, - NULL, - NoLock); + splitState->src_partition_name, + PART_OBJ_TYPE_TABLE_PARTITION, + AccessExclusiveLock, + true, + false, + NULL, + NULL, + NoLock); } else { Assert(PointerIsValid(splitState->partition_for_values)); splitState->partition_for_values = transformConstIntoTargetType( @@ -5677,15 +5987,15 @@ static Oid get_split_partition_oid(Relation partTableRel, SplitPartitionState* s * precheck start/end value of a range partition defstate */ static void precheck_start_end_defstate(List* pos, Form_pg_attribute* attrs, - RangePartitionStartEndDefState* defState, bool isPartition) + RangePartitionStartEndDefState* defState, bool isPartition) { ListCell* cell = NULL; if (pos == NULL || attrs == NULL || defState == NULL) ereport(ERROR, - (errmodule(MOD_OPT), - errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("unexpected parameter for precheck start/end defstate."))); + (errmodule(MOD_OPT), + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("unexpected parameter for precheck start/end defstate."))); Assert(pos->length == 1); /* already been checked in caller */ foreach (cell, pos) { @@ -5754,9 +6064,9 @@ static Datum get_partition_arg_value(Node* node, bool* isnull) c = (Const*)evaluate_expr((Expr*)node, exprType(node), exprTypmod(node), exprCollation(node)); if (!IsA(c, Const)) ereport(ERROR, - (errmodule(MOD_OPT), - errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("partition parameter is not constant."))); + (errmodule(MOD_OPT), + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("partition parameter is not constant."))); *isnull = c->constisnull; return c->constvalue; @@ -5800,9 +6110,9 @@ static Datum evaluate_opexpr( oprcode = get_opcode(opexpr->opno); if (oprcode == InvalidOid) /* should not fail */ ereport(ERROR, - (errcode(ERRCODE_CACHE_LOOKUP_FAILED), - errmodule(MOD_OPT), - errmsg("cache lookup failed for operator %u", opexpr->opno))); + (errcode(ERRCODE_CACHE_LOOKUP_FAILED), + errmodule(MOD_OPT), + errmsg("cache lookup failed for operator %u", opexpr->opno))); opexpr->opfuncid = oprcode; @@ -5825,12 +6135,12 @@ static Datum evaluate_opexpr( typ = typeidType(opexpr->opresulttype); c = makeConst(opexpr->opresulttype, - ((Form_pg_type)GETSTRUCT(typ))->typtypmod, - ((Form_pg_type)GETSTRUCT(typ))->typcollation, - typeLen(typ), - res, - false, - typeByVal(typ)); + ((Form_pg_type)GETSTRUCT(typ))->typtypmod, + ((Form_pg_type)GETSTRUCT(typ))->typcollation, + typeLen(typ), + res, + false, + typeByVal(typ)); ReleaseSysCache(typ); typ = typeidType(*restypid); @@ -5839,13 +6149,13 @@ static Datum evaluate_opexpr( /* coerce from oprresulttype to resttypid */ e = (Expr*)coerce_type(NULL, - (Node*)c, - opexpr->opresulttype, - *restypid, - typmod, - COERCION_ASSIGNMENT, - COERCE_IMPLICIT_CAST, - -1); + (Node*)c, + opexpr->opresulttype, + *restypid, + typmod, + COERCION_ASSIGNMENT, + COERCE_IMPLICIT_CAST, + -1); res = get_partition_arg_value((Node*)e, &isnull); } @@ -5920,6 +6230,70 @@ static Oid choose_coerce_type(Oid leftid, Oid rightid) return InvalidOid; /* let make_op decide */ } +/* check if everyVal <= endVal - startVal, but think of overflow, we should be careful */ +static bool CheckStepInRange(ParseState *pstate, Const *startVal, Const *endVal, Const *everyVal, + Form_pg_attribute attr) +{ + List *opr_mi = list_make1(makeString("-")); + List *opr_lt = list_make1(makeString("<")); + List *opr_le = list_make1(makeString("<=")); + + Datum res; + Oid targetType = attr->atttypid; + Oid targetCollation = attr->attcollation; + int16 targetLen = attr->attlen; + bool targetByval = attr->attbyval; + bool targetIsVarlena = (!targetByval) && (targetLen == -1); + int32 targetTypmod; + bool targetIsTimetype = (targetType == DATEOID || targetType == TIMESTAMPOID || targetType == TIMESTAMPTZOID); + if (targetIsTimetype) { + targetTypmod = -1; /* avoid accuracy-problem of date */ + } else { + targetTypmod = attr->atttypmod; + } + + bool flag1 = false; /* whether startVal < 0 */ + bool flag2 = false; /* whether endVal < 0 */ + if (!targetIsTimetype) { + Const *zeroVal = NULL; + if (targetType == NUMERICOID) { + zeroVal = makeConst(NUMERICOID, targetTypmod, targetCollation, targetLen, + (Datum)DirectFunctionCall3(numeric_in, CStringGetDatum("0.0"), ObjectIdGetDatum(0), Int32GetDatum(-1)), + false, targetByval); + } else if (targetIsVarlena) { + /* if it's a varlena type, we make cstring type, type cast will be done in evaluate_opexpr */ + zeroVal = makeConst(UNKNOWNOID, -1, InvalidOid, -2, CStringGetDatum(""), false, false); + } else { + zeroVal = makeConst(targetType, targetTypmod, targetCollation, targetLen, (Datum)0, false, targetByval); + } + + res = evaluate_opexpr(pstate, opr_lt, (Node *)startVal, (Node *)zeroVal, NULL, -1); + flag1 = DatumGetBool(res); /* whether startVal < 0 */ + res = evaluate_opexpr(pstate, opr_lt, (Node *)endVal, (Node *)zeroVal, NULL, -1); + flag2 = DatumGetBool(res); /* whether endVal < 0 */ + } + + /* we've checked startVal < endVal, so if startVal >= 0, make sure endVal >= 0 too, + * (!flag1 && flag2) can never happen */ + Assert(flag1 || !flag2); + + /* there are some errors on interval compare, because it treats one month as 30days, but one year as 12 months. + * so for time type, we don't use interval type. */ + if ((flag1 && !flag2) || targetIsTimetype) { /* startVal < 0 && endVal >= 0 */ + /* check if startVal <= endVal - everyVal */ + res = evaluate_opexpr(pstate, opr_mi, (Node *)endVal, (Node *)everyVal, &targetType, -1); + Const *secheck = makeConst(targetType, targetTypmod, targetCollation, targetLen, res, false, targetByval); + res = evaluate_opexpr(pstate, opr_le, (Node *)startVal, (Node *)secheck, NULL, -1); + } else { /* startVal < 0 && endVal < 0, or startVal >= 0 && endVal >= 0 */ + /* check if everyVal <= endVal - startVal */ + res = evaluate_opexpr(pstate, opr_mi, (Node *)endVal, (Node *)startVal, &everyVal->consttype, -1); + Const *secheck = + makeConst(everyVal->consttype, targetTypmod, targetCollation, targetLen, res, false, targetByval); + res = evaluate_opexpr(pstate, opr_le, (Node *)everyVal, (Node *)secheck, NULL, -1); + } + return DatumGetBool(res); +} + /* * divide_start_end_every_internal * internal implementaion for dividing an interval indicated by any-datatype @@ -5944,11 +6318,12 @@ static Oid choose_coerce_type(Oid leftid, Oid rightid) * RETURN: end points of all sub-intervals */ static List* divide_start_end_every_internal(ParseState* pstate, char* partName, Form_pg_attribute attr, - Const* startVal, Const* endVal, Node* everyExpr, int* numPart, - int maxNum, bool isinterval, bool needCheck, bool isPartition) + Const* startVal, Const* endVal, Node* everyExpr, int* numPart, + int maxNum, bool isinterval, bool needCheck, bool isPartition) { List* result = NIL; List* opr_pl = NIL; + List* opr_mi = NIL; List* opr_lt = NIL; List* opr_le = NIL; List* opr_mul = NIL; @@ -5958,7 +6333,6 @@ static List* divide_start_end_every_internal(ParseState* pstate, char* partName, Oid restypid; Const* curpnt = NULL; int32 nPart; - bool isEnd = false; Const* everyVal = NULL; Oid targetType; bool targetByval = false; @@ -5970,11 +6344,23 @@ static List* divide_start_end_every_internal(ParseState* pstate, char* partName, Assert(maxNum > 0 && maxNum <= MAX_PARTITION_NUM); opr_pl = list_make1(makeString("+")); + opr_mi = list_make1(makeString("-")); opr_lt = list_make1(makeString("<")); opr_le = list_make1(makeString("<=")); opr_mul = list_make1(makeString("*")); opr_eq = list_make1(makeString("=")); + /* get target type info */ + targetType = attr->atttypid; + targetByval = attr->attbyval; + targetCollation = attr->attcollation; + if (targetType == DATEOID || targetType == TIMESTAMPOID || targetType == TIMESTAMPTZOID) { + targetTypmod = -1; /* avoid accuracy-problem of date */ + } else { + targetTypmod = attr->atttypmod; + } + targetLen = attr->attlen; + /* * cast everyExpr to targetType * Note: everyExpr goes through transformExpr and transformIntoConst already. @@ -5983,31 +6369,43 @@ static List* divide_start_end_every_internal(ParseState* pstate, char* partName, /* first compare start/end value */ res = evaluate_opexpr(pstate, opr_le, (Node*)endVal, (Node*)startVal, NULL, -1); - if (DatumGetBool(res)) + if (DatumGetBool(res)) { ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("start value must be less than end value for %s \"%s\".", partTypeName, partName))); + } - /* get target type info */ - targetType = attr->atttypid; - targetByval = attr->attbyval; - targetCollation = attr->attcollation; - if (targetType == DATEOID || targetType == TIMESTAMPOID || targetType == TIMESTAMPTZOID) - targetTypmod = -1; /* avoid accuracy-problem of date */ - else - targetTypmod = attr->atttypmod; - targetLen = attr->attlen; + /* second, we should make sure that everyVal <= endVal - startVal */ + if (!CheckStepInRange(pstate, startVal, endVal, everyVal, attr)) { + ereport(ERROR, + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("%s step is too big for %s \"%s\".", partTypeName, partTypeName, partName))); + } /* build result */ curpnt = startVal; nPart = 0; - isEnd = false; - while (nPart < maxNum) { - /* compute currentPnt + everyval */ - res = evaluate_opexpr(pstate, opr_pl, (Node*)curpnt, (Node*)everyVal, &targetType, -1); - pnt = makeConst(targetType, targetTypmod, targetCollation, targetLen, res, false, targetByval); - pnt = (Const*)GetTargetValue(attr, (Const*)pnt, false); + while (true) { + /* if too many partitions, report error */ + if (nPart >= maxNum) { + pfree_ext(pnt); + ereport(ERROR, + (errcode(ERRCODE_INVALID_TABLE_DEFINITION), + errmsg("too many %ss after split %s \"%s\".", partTypeName, partTypeName, partName), + errhint("number of %ss can not be more than %d, MINVALUE will be auto-included if not assigned.", + partTypeName, MAX_PARTITION_NUM))); + } + + /* compute curpnt + everyval, but if curpnt + everyVal > endVal, we use endVal instead, + * so we can make sure that pnt <= endVal */ + if (!CheckStepInRange(pstate, curpnt, endVal, everyVal, attr)) { + pnt = (Const*)copyObject(endVal); + } else { + res = evaluate_opexpr(pstate, opr_pl, (Node*)curpnt, (Node*)everyVal, &targetType, -1); + pnt = makeConst(targetType, targetTypmod, targetCollation, targetLen, res, false, targetByval); + pnt = (Const*)GetTargetValue(attr, (Const*)pnt, false); + } /* necessary check in first pass */ if (nPart == 0) { @@ -6044,8 +6442,8 @@ static List* divide_start_end_every_internal(ParseState* pstate, char* partName, if (!DatumGetBool(res)) ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg((isPartition ? - "ambiguous partition rule is raised by EVERY parameter in partition \"%s\"." : + errmsg((isPartition ? + "ambiguous partition rule is raised by EVERY parameter in partition \"%s\"." : "ambiguous distribution rule is raised by EVERY parameter in slice \"%s\"."), partName))); } @@ -6058,52 +6456,29 @@ static List* divide_start_end_every_internal(ParseState* pstate, char* partName, errmsg("%s step is too small for %s \"%s\".", partTypeName, partTypeName, partName))); } + /* pnt must be less than or equal to endVal */ + Assert(DatumGetBool(evaluate_opexpr(pstate, opr_le, (Node*)pnt, (Node*)endVal, NULL, -1))); + result = lappend(result, pnt); + nPart++; + /* check to determine if it is the final partition */ - res = evaluate_opexpr(pstate, opr_le, (Node*)pnt, (Node*)endVal, NULL, -1); + res = evaluate_opexpr(pstate, opr_eq, (Node*)pnt, (Node*)endVal, NULL, -1); if (DatumGetBool(res)) { - result = lappend(result, pnt); - nPart++; - res = evaluate_opexpr(pstate, opr_lt, (Node*)pnt, (Node*)endVal, NULL, -1); - if (!DatumGetBool(res)) { - /* case-1: final partition just matches endVal */ - isEnd = true; - break; - } - } else if (nPart == 0) { - ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("%s step is too big for %s \"%s\".", partTypeName, partTypeName, partName))); - } else { - /* case-2: final partition is smaller than others */ - pfree_ext(pnt); - pnt = (Const*)copyObject(endVal); - result = lappend(result, pnt); - nPart++; - isEnd = true; break; } - curpnt = pnt; } - if (!isEnd) { - /* too many partitions, report error */ - ereport(ERROR, - (errcode(ERRCODE_INVALID_TABLE_DEFINITION), - errmsg("too many %ss after split %s \"%s\".", partTypeName, partTypeName, partName), - errhint("number of %ss can not be more than %d, MINVALUE will be auto-included if not assigned.", - partTypeName, MAX_PARTITION_NUM))); - } - /* done */ Assert(result && result->length == nPart); - if (numPart != NULL) + if (numPart != NULL) { *numPart = nPart; + } return result; } -template void CheckTIMESTAMPISFinite(Const* startVal, Const* endVal, char* partName) +template void CheckTIMESTAMPISFinite(Const* startVal, Const* endVal, char* partName) { if (isTimestampz) { TimestampTz t1 = DatumGetTimestampTz(startVal->constvalue); @@ -6316,7 +6691,7 @@ static List* DividePartitionStartEndInterval(ParseState* pstate, Form_pg_attribu * RETURN: a new partition list (wrote by "less/than" syntax). */ List* transformRangePartStartEndStmt(ParseState* pstate, List* partitionList, List* pos, Form_pg_attribute* attrs, - int32 existPartNum, Const* lowBound, Const* upBound, bool needFree, bool isPartition) + int32 existPartNum, Const* lowBound, Const* upBound, bool needFree, bool isPartition) { ListCell* cell = NULL; int i, j; @@ -6353,11 +6728,11 @@ List* transformRangePartStartEndStmt(ParseState* pstate, List* partitionList, Li /* only one partition key is allowed */ if (pos->length != 1) { ereport(ERROR, - (errcode(ERRCODE_INVALID_TABLE_DEFINITION), - errmsg((isPartition ? "partitioned table has too many partition keys." : - "distributed table has too many distribution keys.")), - errhint((isPartition ? "start/end syntax requires a partitioned table with only one partition key." : - "start/end syntax requires a distributed table with only one distribution key.")))); + (errcode(ERRCODE_INVALID_TABLE_DEFINITION), + errmsg((isPartition ? "partitioned table has too many partition keys." : + "distributed table has too many distribution keys.")), + errhint((isPartition ? "start/end syntax requires a partitioned table with only one partition key." : + "start/end syntax requires a distributed table with only one distribution key.")))); } /* @@ -6376,10 +6751,10 @@ List* transformRangePartStartEndStmt(ParseState* pstate, List* partitionList, Li (defState->endValue && defState->endValue->length != 1) || (defState->everyValue && defState->everyValue->length != 1)) ereport(ERROR, - (errcode(ERRCODE_INVALID_TABLE_DEFINITION), - errmsg((isPartition ? "too many partition keys for partition \"%s\"." : - "too many distribution keys for slice \"%s\"."), defState->partitionName), - errhint(isPartition ? "only one partition key is allowed in start/end clause." : + (errcode(ERRCODE_INVALID_TABLE_DEFINITION), + errmsg((isPartition ? "too many partition keys for partition \"%s\"." : + "too many distribution keys for slice \"%s\"."), defState->partitionName), + errhint(isPartition ? "only one partition key is allowed in start/end clause." : "only one distribution key is allowed in start/end clause."))); } @@ -6410,11 +6785,11 @@ List* transformRangePartStartEndStmt(ParseState* pstate, List* partitionList, Li default: ereport(ERROR, - (errcode(ERRCODE_DATATYPE_MISMATCH), - errmsg("datatype of column \"%s\" is unsupported for %s key in start/end clause.", - NameStr(attrs[i]->attname), (isPartition ? "partition" : "distribution")), - errhint("Valid datatypes are: smallint, int, bigint, float4/real, float8/double, numeric, date " - "and timestamp [with time zone]."))); + (errcode(ERRCODE_DATATYPE_MISMATCH), + errmsg("datatype of column \"%s\" is unsupported for %s key in start/end clause.", + NameStr(attrs[i]->attname), (isPartition ? "partition" : "distribution")), + errhint("Valid datatypes are: smallint, int, bigint, float4/real, float8/double, numeric, date " + "and timestamp [with time zone]."))); break; } } @@ -6422,8 +6797,8 @@ List* transformRangePartStartEndStmt(ParseState* pstate, List* partitionList, Li /* check exist partition number */ if (existPartNum >= MAX_PARTITION_NUM) ereport(ERROR, - (errcode(ERRCODE_DATATYPE_MISMATCH), - errmsg("can not add more %ss as %s number is already at its maximum.", partTypeName, partTypeName))); + (errcode(ERRCODE_DATATYPE_MISMATCH), + errmsg("can not add more %ss as %s number is already at its maximum.", partTypeName, partTypeName))); /* * Start transform (including check) @@ -6457,38 +6832,38 @@ List* transformRangePartStartEndStmt(ParseState* pstate, List* partitionList, Li /* check value */ if (startVal->ismaxvalue || endVal->ismaxvalue || everyVal->ismaxvalue) ereport(ERROR, - (errcode(ERRCODE_INVALID_TABLE_DEFINITION), - errmsg("%s \"%s\" is invalid.", partTypeName, defState->partitionName), - errhint("MAXVALUE can not appear in a (START, END, EVERY) clause."))); + (errcode(ERRCODE_INVALID_TABLE_DEFINITION), + errmsg("%s \"%s\" is invalid.", partTypeName, defState->partitionName), + errhint("MAXVALUE can not appear in a (START, END, EVERY) clause."))); if (partitonKeyCompare(&startVal, &endVal, 1) >= 0) ereport(ERROR, - (errcode(ERRCODE_INVALID_TABLE_DEFINITION), - errmsg( - "start value must be less than end value for %s \"%s\".", - partTypeName, defState->partitionName))); + (errcode(ERRCODE_INVALID_TABLE_DEFINITION), + errmsg( + "start value must be less than end value for %s \"%s\".", + partTypeName, defState->partitionName))); if (lastVal != NULL) { if (lastVal->ismaxvalue) ereport(ERROR, - (errcode(ERRCODE_INVALID_TABLE_DEFINITION), - errmsg("%s \"%s\" is not allowed behind MAXVALUE.", - partTypeName, defState->partitionName))); + (errcode(ERRCODE_INVALID_TABLE_DEFINITION), + errmsg("%s \"%s\" is not allowed behind MAXVALUE.", + partTypeName, defState->partitionName))); kc = partitonKeyCompare(&lastVal, &startVal, 1); if (kc > 0) ereport(ERROR, - (errcode(ERRCODE_INVALID_TABLE_DEFINITION), - errmsg("start value of %s \"%s\" is too low.", - partTypeName, defState->partitionName), - errhint("%s gap or overlapping is not allowed.", - partTypeName))); + (errcode(ERRCODE_INVALID_TABLE_DEFINITION), + errmsg("start value of %s \"%s\" is too low.", + partTypeName, defState->partitionName), + errhint("%s gap or overlapping is not allowed.", + partTypeName))); if (kc < 0) ereport(ERROR, - (errcode(ERRCODE_INVALID_TABLE_DEFINITION), - errmsg("start value of %s \"%s\" is too high.", - partTypeName, defState->partitionName), - errhint("%s gap or overlapping is not allowed.", - partTypeName))); + (errcode(ERRCODE_INVALID_TABLE_DEFINITION), + errmsg("start value of %s \"%s\" is too high.", + partTypeName, defState->partitionName), + errhint("%s gap or overlapping is not allowed.", + partTypeName))); } /* build necessary MINVALUE, check lowBound, append for last single START, etc. */ @@ -6515,10 +6890,10 @@ List* transformRangePartStartEndStmt(ParseState* pstate, List* partitionList, Li if (NULL != lowBound && NULL != upBound) { if (partitonKeyCompare(&lowBound, &startVal, 1) != 0) ereport(ERROR, - (errcode(ERRCODE_INVALID_TABLE_DEFINITION), - errmsg( - "start value of %s \"%s\" NOT EQUAL up-boundary of last %s.", - partTypeName, defState->partitionName, partTypeName))); + (errcode(ERRCODE_INVALID_TABLE_DEFINITION), + errmsg( + "start value of %s \"%s\" NOT EQUAL up-boundary of last %s.", + partTypeName, defState->partitionName, partTypeName))); } } } @@ -6529,15 +6904,15 @@ List* transformRangePartStartEndStmt(ParseState* pstate, List* partitionList, Li Assert(totalPart < MAX_PARTITION_NUM); Assert(everyExpr); resList = DividePartitionStartEndInterval(pstate, - attr, - defState->partitionName, - startVal, - endVal, - everyVal, - everyExpr, - &numPart, - MAX_PARTITION_NUM - totalPart, - isPartition); + attr, + defState->partitionName, + startVal, + endVal, + everyVal, + everyExpr, + &numPart, + MAX_PARTITION_NUM - totalPart, + isPartition); Assert(resList && numPart == resList->length); j = 1; @@ -6571,35 +6946,35 @@ List* transformRangePartStartEndStmt(ParseState* pstate, List* partitionList, Li /* check value */ if (startVal->ismaxvalue) ereport(ERROR, - (errcode(ERRCODE_INVALID_TABLE_DEFINITION), - errmsg("start value can not be MAXVALUE for %s \"%s\".", - partTypeName, defState->partitionName))); + (errcode(ERRCODE_INVALID_TABLE_DEFINITION), + errmsg("start value can not be MAXVALUE for %s \"%s\".", + partTypeName, defState->partitionName))); if (partitonKeyCompare(&startVal, &endVal, 1) >= 0) ereport(ERROR, - (errcode(ERRCODE_INVALID_TABLE_DEFINITION), - errmsg( - "start value must be less than end value for %s \"%s\".", - partTypeName, defState->partitionName))); + (errcode(ERRCODE_INVALID_TABLE_DEFINITION), + errmsg( + "start value must be less than end value for %s \"%s\".", + partTypeName, defState->partitionName))); if (lastVal != NULL) { if (lastVal->ismaxvalue) ereport(ERROR, - (errcode(ERRCODE_INVALID_TABLE_DEFINITION), - errmsg("%s \"%s\" is not allowed behind MAXVALUE.", - partTypeName, defState->partitionName))); + (errcode(ERRCODE_INVALID_TABLE_DEFINITION), + errmsg("%s \"%s\" is not allowed behind MAXVALUE.", + partTypeName, defState->partitionName))); kc = partitonKeyCompare(&lastVal, &startVal, 1); if (kc > 0) ereport(ERROR, - (errcode(ERRCODE_INVALID_TABLE_DEFINITION), - errmsg("start value of %s \"%s\" is too low.", partTypeName, defState->partitionName), - errhint("%s gap or overlapping is not allowed.", partTypeName))); + (errcode(ERRCODE_INVALID_TABLE_DEFINITION), + errmsg("start value of %s \"%s\" is too low.", partTypeName, defState->partitionName), + errhint("%s gap or overlapping is not allowed.", partTypeName))); if (kc < 0) ereport(ERROR, - (errcode(ERRCODE_INVALID_TABLE_DEFINITION), - errmsg("start value of %s \"%s\" is too high.", partTypeName, defState->partitionName), - errhint("%s gap or overlapping is not allowed.", partTypeName))); + (errcode(ERRCODE_INVALID_TABLE_DEFINITION), + errmsg("start value of %s \"%s\" is too high.", partTypeName, defState->partitionName), + errhint("%s gap or overlapping is not allowed.", partTypeName))); } /* build less than defstate */ @@ -6646,9 +7021,9 @@ List* transformRangePartStartEndStmt(ParseState* pstate, List* partitionList, Li if (NULL != lowBound && NULL != upBound) { if (partitonKeyCompare(&lowBound, &startVal, 1) != 0) ereport(ERROR, - (errcode(ERRCODE_INVALID_TABLE_DEFINITION), - errmsg("start value of %s \"%s\" NOT EQUAL up-boundary of last %s.", - partTypeName, defState->partitionName, partTypeName))); + (errcode(ERRCODE_INVALID_TABLE_DEFINITION), + errmsg("start value of %s \"%s\" NOT EQUAL up-boundary of last %s.", + partTypeName, defState->partitionName, partTypeName))); } /* add endVal as a pnt */ @@ -6674,28 +7049,28 @@ List* transformRangePartStartEndStmt(ParseState* pstate, List* partitionList, Li /* check value */ if (startVal->ismaxvalue) ereport(ERROR, - (errcode(ERRCODE_INVALID_TABLE_DEFINITION), - errmsg("start value can not be MAXVALUE for %s \"%s\".", - partTypeName, defState->partitionName))); + (errcode(ERRCODE_INVALID_TABLE_DEFINITION), + errmsg("start value can not be MAXVALUE for %s \"%s\".", + partTypeName, defState->partitionName))); if (lastVal != NULL) { if (lastVal->ismaxvalue) ereport(ERROR, - (errcode(ERRCODE_INVALID_TABLE_DEFINITION), - errmsg("%s \"%s\" is not allowed behind MAXVALUE.", - partTypeName, defState->partitionName))); + (errcode(ERRCODE_INVALID_TABLE_DEFINITION), + errmsg("%s \"%s\" is not allowed behind MAXVALUE.", + partTypeName, defState->partitionName))); kc = partitonKeyCompare(&lastVal, &startVal, 1); if (kc > 0) ereport(ERROR, - (errcode(ERRCODE_INVALID_TABLE_DEFINITION), - errmsg("start value of %s \"%s\" is too low.", partTypeName, defState->partitionName), - errhint("%s gap or overlapping is not allowed.", partTypeName))); + (errcode(ERRCODE_INVALID_TABLE_DEFINITION), + errmsg("start value of %s \"%s\" is too low.", partTypeName, defState->partitionName), + errhint("%s gap or overlapping is not allowed.", partTypeName))); if (kc < 0) ereport(ERROR, - (errcode(ERRCODE_INVALID_TABLE_DEFINITION), - errmsg("start value of %s \"%s\" is too high.", partTypeName, defState->partitionName), - errhint("%s gap or overlapping is not allowed.", partTypeName))); + (errcode(ERRCODE_INVALID_TABLE_DEFINITION), + errmsg("start value of %s \"%s\" is too high.", partTypeName, defState->partitionName), + errhint("%s gap or overlapping is not allowed.", partTypeName))); } /* build less than defstate */ @@ -6725,10 +7100,10 @@ List* transformRangePartStartEndStmt(ParseState* pstate, List* partitionList, Li if (NULL != lowBound && NULL != upBound) { if (partitonKeyCompare(&lowBound, &startVal, 1) != 0) ereport(ERROR, - (errcode(ERRCODE_INVALID_TABLE_DEFINITION), - errmsg( - "start value of %s \"%s\" NOT EQUAL up-boundary of last %s.", - partTypeName, defState->partitionName, partTypeName))); + (errcode(ERRCODE_INVALID_TABLE_DEFINITION), + errmsg( + "start value of %s \"%s\" NOT EQUAL up-boundary of last %s.", + partTypeName, defState->partitionName, partTypeName))); } } } @@ -6745,15 +7120,15 @@ List* transformRangePartStartEndStmt(ParseState* pstate, List* partitionList, Li if (lastVal != NULL) { if (lastVal->ismaxvalue) ereport(ERROR, - (errcode(ERRCODE_INVALID_TABLE_DEFINITION), - errmsg("%s \"%s\" is not allowed behind MAXVALUE.", - partTypeName, defState->partitionName))); + (errcode(ERRCODE_INVALID_TABLE_DEFINITION), + errmsg("%s \"%s\" is not allowed behind MAXVALUE.", + partTypeName, defState->partitionName))); if (partitonKeyCompare(&lastVal, &endVal, 1) >= 0) { ereport(ERROR, - (errcode(ERRCODE_INVALID_TABLE_DEFINITION), - errmsg("end value of %s \"%s\" is too low.", partTypeName, defState->partitionName), - errhint("%s gap or overlapping is not allowed.", partTypeName))); + (errcode(ERRCODE_INVALID_TABLE_DEFINITION), + errmsg("end value of %s \"%s\" is too low.", partTypeName, defState->partitionName), + errhint("%s gap or overlapping is not allowed.", partTypeName))); } } @@ -6762,18 +7137,18 @@ List* transformRangePartStartEndStmt(ParseState* pstate, List* partitionList, Li if (lastState != NULL) { /* last def is a single START, invalid definition */ ereport(ERROR, - (errcode(ERRCODE_INVALID_TABLE_DEFINITION), - errmsg("%s \"%s\" is an invalid definition clause.", partTypeName, defState->partitionName), - errhint("Do not use a single END after a single START."))); + (errcode(ERRCODE_INVALID_TABLE_DEFINITION), + errmsg("%s \"%s\" is an invalid definition clause.", partTypeName, defState->partitionName), + errhint("Do not use a single END after a single START."))); } else { /* this is the first def state END, check lowBound if any */ /* case for ADD_PARTITION, SPLIT_PARTITION */ if (lowBound && partitonKeyCompare(&lowBound, &endVal, 1) >= 0) ereport(ERROR, - (errcode(ERRCODE_INVALID_TABLE_DEFINITION), - errmsg( - "end value of %s \"%s\" MUST be greater than up-boundary of last %s.", - partTypeName, defState->partitionName, partTypeName))); + (errcode(ERRCODE_INVALID_TABLE_DEFINITION), + errmsg( + "end value of %s \"%s\" MUST be greater than up-boundary of last %s.", + partTypeName, defState->partitionName, partTypeName))); } } pnt = (Const*)copyObject(endVal); @@ -6783,7 +7158,7 @@ List* transformRangePartStartEndStmt(ParseState* pstate, List* partitionList, Li totalPart++; if (lastVal != NULL) { - pfree_ext(lastVal); + pfree_ext(lastVal); } lastVal = endVal; startVal = NULL; @@ -6798,12 +7173,12 @@ List* transformRangePartStartEndStmt(ParseState* pstate, List* partitionList, Li break; } else { ereport(ERROR, - (errcode(ERRCODE_INVALID_TABLE_DEFINITION), - errmsg("too many %ss after split %s \"%s\".", - partTypeName, partTypeName, defState->partitionName), - errhint("number of %ss can not be more than %d, MINVALUE will be auto-included if not " - "assigned.", - partTypeName, MAX_PARTITION_NUM))); + (errcode(ERRCODE_INVALID_TABLE_DEFINITION), + errmsg("too many %ss after split %s \"%s\".", + partTypeName, partTypeName, defState->partitionName), + errhint("number of %ss can not be more than %d, MINVALUE will be auto-included if not " + "assigned.", + partTypeName, MAX_PARTITION_NUM))); } } @@ -6964,7 +7339,7 @@ bool is_multi_nodegroup_createtbllike(PGXCSubCluster* subcluster, Oid oid) static bool IsCreatingSeqforAnalyzeTempTable(CreateStmtContext* cxt) { if (cxt->relation->relpersistence != RELPERSISTENCE_TEMP) { - return false; + return false; } bool isUnderAnalyze = false; if (IS_PGXC_COORDINATOR || IS_SINGLE_NODE) { @@ -6975,7 +7350,7 @@ static bool IsCreatingSeqforAnalyzeTempTable(CreateStmtContext* cxt) * to determine the analyze state of dn. */ isUnderAnalyze = (strncmp(cxt->relation->relname, ANALYZE_TEMP_TABLE_PREFIX, - strlen(ANALYZE_TEMP_TABLE_PREFIX)) == 0); + strlen(ANALYZE_TEMP_TABLE_PREFIX)) == 0); } return isUnderAnalyze; } diff --git a/src/common/backend/parser/parser.cpp b/src/common/backend/parser/parser.cpp index 1858a528b..31640d316 100644 --- a/src/common/backend/parser/parser.cpp +++ b/src/common/backend/parser/parser.cpp @@ -28,6 +28,11 @@ extern void resetOperatorPlusFlag(); +static void resetCreateFuncFlag() +{ + u_sess->parser_cxt.isCreateFuncOrProc = false; +} + /* * raw_parser * Given a query in string form, do lexical and grammatical analysis. @@ -43,6 +48,9 @@ List* raw_parser(const char* str, List** query_string_locationlist) /* reset u_sess->parser_cxt.stmt_contains_operator_plus */ resetOperatorPlusFlag(); + /* reset u_sess->parser_cxt.isCreateFuncOrProc */ + resetCreateFuncFlag(); + /* initialize the flex scanner */ yyscanner = scanner_init(str, &yyextra.core_yy_extra, ScanKeywords, NumScanKeywords); diff --git a/src/common/backend/parser/scan.l b/src/common/backend/parser/scan.l index 9daee5c9f..75f3c8055 100755 --- a/src/common/backend/parser/scan.l +++ b/src/common/backend/parser/scan.l @@ -39,7 +39,8 @@ #include "parser/scanner.h" #include "parser/scansup.h" #include "mb/pg_wchar.h" - +#include "utils/pl_package.h" +#include "utils/plpgsql.h" /* Avoid exit() on fatal scanner errors (a bit ugly -- see yy_fatal_error) */ #undef fprintf @@ -68,7 +69,6 @@ long getDynaParamSeq(const char *string, bool initflag, bool placeholder, core_y #define SET_YYLLOC() (*(yylloc) = yytext - yyextra->scanbuf) #define COMMENT_NOT_IGNORED() (yyextra->is_hint_str || yyextra->include_ora_comment) - /* * Advance yylloc by the given number of bytes. */ @@ -175,7 +175,6 @@ space [ \t\n\r\f] horiz_space [ \t\f] newline [\n\r] non_newline [^\n\r] - comment ("--"{non_newline}*) whitespace ({space}+|{comment}) @@ -448,7 +447,7 @@ other . } } -<> { yyerror("unterminated /* comment"); } +<> { yyerror("unterminated /* comment"); return 0;} {xbstart} { /* Binary bit type. @@ -478,7 +477,7 @@ other . {quotecontinue} { /* ignore */ } -<> { yyerror("unterminated bit string literal"); } +<> { yyerror("unterminated bit string literal"); return 0;} {xhstart} { /* Hexadecimal bit type. @@ -500,7 +499,7 @@ other . yyextra->is_hint_str = false; return XCONST; } -<> { yyerror("unterminated hexadecimal string literal"); } +<> { yyerror("unterminated hexadecimal string literal"); return 0;} {xnstart} { /* National character. @@ -674,7 +673,7 @@ other . /* This is only needed for \ just before EOF */ addlitchar(yytext[0], yyscanner); } -<> { yyerror("unterminated quoted string"); } +<> { yyerror("unterminated quoted string"); return 0;} {dolqdelim} { SET_YYLLOC(); @@ -721,7 +720,7 @@ other . /* This is only needed for $ inside the quoted text */ addlitchar(yytext[0], yyscanner); } -<> { yyerror("unterminated dollar-quoted string"); } +<> { yyerror("unterminated dollar-quoted string"); return 0;} {xdstart} { SET_YYLLOC(); @@ -740,7 +739,7 @@ other . if (yyextra->literallen == 0) yyerror("zero-length delimited identifier"); ident = litbufdup(yyscanner); - if (yyextra->literallen >= NAMEDATALEN) + if (yyextra->literallen >= NAMEDATALEN && u_sess->parser_cxt.is_load_copy == false) truncate_identifier(ident, yyextra->literallen, yyextra->warnOnTruncateIdent); yylval->str = ident; yyextra->ident_quoted = true; @@ -756,7 +755,7 @@ other . yyerror("zero-length delimited identifier"); ident = litbuf_udeescape('\\', yyscanner); identlen = strlen(ident); - if (identlen >= NAMEDATALEN) + if (identlen >= NAMEDATALEN && u_sess->parser_cxt.is_load_copy == false) truncate_identifier(ident, identlen, yyextra->warnOnTruncateIdent); yylval->str = ident; /* throw back all but the quote */ @@ -774,7 +773,7 @@ other . yyerror("zero-length delimited identifier"); ident = litbuf_udeescape(yytext[yyleng - 2], yyscanner); identlen = strlen(ident); - if (identlen >= NAMEDATALEN) + if (identlen >= NAMEDATALEN && u_sess->parser_cxt.is_load_copy == false) truncate_identifier(ident, identlen, yyextra->warnOnTruncateIdent); yylval->str = ident; yyextra->ident_quoted = false; @@ -787,7 +786,7 @@ other . {xdinside} { addlit(yytext, yyleng, yyscanner); } -<> { yyerror("unterminated quoted identifier"); } +<> { yyerror("unterminated quoted identifier"); return 0;} {xufailed} { char *ident; @@ -845,8 +844,11 @@ other . yyextra->paren_depth++; else if (yytext[0] == ')' && yyextra->paren_depth > 0) yyextra->paren_depth--; - else if (yytext[0] == ';' && yyextra->paren_depth == 0 && !yyextra->in_slash_proc_body) + else if (yytext[0] == ';' && yyextra->paren_depth == 0 && !yyextra->in_slash_proc_body) { yyextra->query_string_locationlist = lappend_int(yyextra->query_string_locationlist, *yylloc); + /* reset is_createstmt to parse next sql */ + yyextra->is_createstmt = false; + } } yyextra->is_hint_str = false; return yytext[0]; @@ -1034,6 +1036,7 @@ other . yyextra->num_keywords); yyextra->is_hint_str = false; + bool isPlpgsqlKeyword = yyextra->isPlpgsqlKeyWord; if (keyword != NULL) { @@ -1049,26 +1052,29 @@ other . /* Create trigger don't need set dolqstart */ yyextra->is_createstmt = false; } - else if ((keyword->value == PROCEDURE || keyword->value == FUNCTION) - && yyextra->is_createstmt) + else if ((keyword->value == (isPlpgsqlKeyword? yyextra->plKeywordValue->procedure : PROCEDURE) || + keyword->value == (isPlpgsqlKeyword? yyextra->plKeywordValue->function : FUNCTION)) + && (yyextra->is_createstmt)) { /* Make yyextra->dolqstart not NULL means its in a proc with $$. */ yyextra->dolqstart = ""; } - else if (keyword->value == BEGIN_P) + else if (keyword->value == (isPlpgsqlKeyword? yyextra->plKeywordValue->begin : BEGIN_P)) { - /* cases that have to be a trans stmt and fall quickly */ - if (yyg->yy_hold_char == ';' || /* found ';' after 'begin' */ - yyg->yy_hold_char == '\0') /* found '\0' after 'begin' */ - return BEGIN_NON_ANOYBLOCK; - /* look for other transaction stmt */ - if (is_trans_stmt(yyextra->scanbuf, yyextra->scanbuflen)) - return BEGIN_NON_ANOYBLOCK; + if (!(u_sess->parser_cxt.isCreateFuncOrProc || u_sess->plsql_cxt.curr_compile_context != NULL)) { + /* cases that have to be a trans stmt and fall quickly */ + if (yyg->yy_hold_char == ';' || /* found ';' after 'begin' */ + yyg->yy_hold_char == '\0') /* found '\0' after 'begin' */ + return BEGIN_NON_ANOYBLOCK; + /* look for other transaction stmt */ + if (is_trans_stmt(yyextra->scanbuf, yyextra->scanbuflen)) + return BEGIN_NON_ANOYBLOCK; + } } - else if (keyword->value == SELECT || - keyword->value == UPDATE|| - keyword->value == INSERT || - keyword->value == DELETE_P || + else if (keyword->value == (isPlpgsqlKeyword? yyextra->plKeywordValue->select : SELECT) || + keyword->value == (isPlpgsqlKeyword? yyextra->plKeywordValue->update : UPDATE) || + keyword->value == (isPlpgsqlKeyword? yyextra->plKeywordValue->insert : INSERT) || + keyword->value == (isPlpgsqlKeyword? yyextra->plKeywordValue->Delete : DELETE_P) || keyword->value == MERGE) { yyextra->is_hint_str = true; @@ -1157,13 +1163,28 @@ void scanner_yyerror(const char *message, core_yyscan_t yyscanner) { const char *loc = yyextra->scanbuf + *yylloc; - - if (u_sess->plsql_cxt.plpgsql_curr_compile != NULL && - u_sess->plsql_cxt.plpgsql_curr_compile_package != NULL) { - PLpgSQL_function* func = u_sess->plsql_cxt.plpgsql_curr_compile; + u_sess->plsql_cxt.have_error = true; + int errstate = 0; + int lines = 0; + int rc = CompileWhich(); +#ifndef ENABLE_MULTIPLE_NODES + if (rc != PLPGSQL_COMPILE_NULL && u_sess->attr.attr_common.plsql_show_all_error) { + lines = GetProcedureLineNumberInPackage(u_sess->plsql_cxt.curr_compile_context->core_yy->scanbuf, u_sess->plsql_cxt.plpgsql_yylloc); + addErrorList(message, lines); + } + if (u_sess->attr.attr_common.plsql_show_all_error && rc != PLPGSQL_COMPILE_NULL) { + errstate = NOTICE; + } else { + errstate = ERROR; + } +#else + errstate = ERROR; +#endif + if (rc == PLPGSQL_COMPILE_PACKAGE_PROC) { + PLpgSQL_function* func = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile; if (*loc == YY_END_OF_BUFFER_CHAR) { - ereport(ERROR, + ereport(errstate, (errmodule(MOD_PLSQL), errcode(ERRCODE_SYNTAX_ERROR), errmsg("%s at end of input when compile function %s", _(message), func->fn_signature), errdetail("syntax error"), @@ -1172,7 +1193,7 @@ scanner_yyerror(const char *message, core_yyscan_t yyscanner) } else { - ereport(ERROR, + ereport(errstate, (errmodule(MOD_PLSQL), errcode(ERRCODE_SYNTAX_ERROR), errmsg("%s at or near \"%s\" when compile function %s", _(message), loc, func->fn_signature), errdetail("syntax error"), @@ -1182,7 +1203,7 @@ scanner_yyerror(const char *message, core_yyscan_t yyscanner) } else { if (*loc == YY_END_OF_BUFFER_CHAR) { - ereport(ERROR, + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), /* translator: %s is typically the translation of "syntax error" */ errmsg("%s at end of input", _(message)), @@ -1190,7 +1211,7 @@ scanner_yyerror(const char *message, core_yyscan_t yyscanner) } else { - ereport(ERROR, + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), /* translator: first %s is typically the translation of "syntax error" */ errmsg("%s at or near \"%s\"", _(message), loc), @@ -1247,6 +1268,10 @@ scanner_init(const char *str, yyext->literallen = 0; yyext->warnOnTruncateIdent = true; + /* plpgsql keyword params */ + yyext->isPlpgsqlKeyWord = false; + yyext->plKeywordValue = NULL; + // Added CALL for procedure and function getDynaParamSeq("init", true, true, NULL); @@ -1693,6 +1718,8 @@ getDynaParamSeq(const char *string, bool initflag, bool placeholder, core_yyscan if (initflag) { + u_sess->parser_cxt.is_load_copy = false; + u_sess->parser_cxt.col_list = NULL; u_sess->parser_cxt.has_dollar = false; u_sess->parser_cxt.has_placeholder = false; return 0; @@ -1715,6 +1742,12 @@ getDynaParamSeq(const char *string, bool initflag, bool placeholder, core_yyscan errmsg("It is forbidden to use placeholder and dollar quoting together."))); + if(u_sess->parser_cxt.is_load_copy == true){ + if (yyextra->ident_quoted) + u_sess->parser_cxt.copy_fieldname = pstrdup(string); + else + u_sess->parser_cxt.copy_fieldname = pg_strtolower(pstrdup(string)); + } foreach(cell, yyextra->parameter_list) { result++; @@ -1801,3 +1834,15 @@ is_trans_stmt(const char *haystack, int haystack_len) */ return found_non_blank_char ? false : true; } + +void addErrorList(const char* message, int lines) +{ + PLpgSQL_error* erritem; + MemoryContext oldcxt; + oldcxt = MemoryContextSwitchTo(SESS_GET_MEM_CXT_GROUP(MEMORY_CONTEXT_OPTIMIZER)); + erritem = (PLpgSQL_error*)palloc(sizeof(PLpgSQL_error)); + erritem->errmsg = pstrdup(message); + erritem->line = lines; + u_sess->plsql_cxt.errorList = lappend(u_sess->plsql_cxt.errorList, erritem); + MemoryContextSwitchTo(oldcxt); +} diff --git a/src/common/backend/pgxc_single/barrier/barrier.cpp b/src/common/backend/pgxc_single/barrier/barrier.cpp index 7a4c5b3e9..e21db40bc 100755 --- a/src/common/backend/pgxc_single/barrier/barrier.cpp +++ b/src/common/backend/pgxc_single/barrier/barrier.cpp @@ -268,13 +268,47 @@ void DisasterRecoveryRequestBarrier(const char* id, bool isSwitchoverBarrier) LWLockRelease(BarrierLock); } +void CreateHadrSwitchoverBarrier() +{ + XLogRecPtr recptr; + char barrier_id[MAX_BARRIER_ID_LENGTH] = HADR_SWITCHOVER_BARRIER_ID; + ereport(LOG, (errmsg("DISASTER RECOVERY CREATE SWITCHOVER BARRIER <%s>", barrier_id))); + + /* + * Ensure that we are a DataNode + */ + if (!IS_PGXC_DATANODE) + ereport(ERROR, + (errcode(ERRCODE_OPERATE_NOT_SUPPORTED), + errmsg("DISASTER RECOVERY CREATE BARRIER command must be sent to a DataNode"))); + + + // The access of all users is not blocked temporarily. + /* + * Force a checkpoint before starting the switchover. This will force dirty + * buffers out to disk, to ensure source database is up-to-date on disk + */ + RequestCheckpoint(CHECKPOINT_IMMEDIATE | CHECKPOINT_FORCE | CHECKPOINT_WAIT); + + XLogBeginInsert(); + XLogRegisterData((char*)barrier_id, strlen(barrier_id) + 1); + + recptr = XLogInsert(RM_BARRIER_ID, XLOG_BARRIER_CREATE, false, InvalidBktId, true); + XLogWaitFlush(recptr); + + g_instance.streaming_dr_cxt.switchoverBarrierLsn = recptr; +} + static void barrier_redo_pause() { volatile WalRcvData *walrcv = t_thrd.walreceiverfuncs_cxt.WalRcv; while (IS_DISASTER_RECOVER_MODE) { RedoInterruptCallBack(); - if (strcmp((char *)walrcv->lastRecoveredBarrierId, (char *)walrcv->recoveryTargetBarrierId) < 0 || + if ((strncmp((char *)walrcv->lastRecoveredBarrierId, (char *)walrcv->recoveryTargetBarrierId, + BARRIER_ID_WITHOUT_TIMESTAMP_LEN) < 0 || + strcmp((char *)walrcv->lastRecoveredBarrierId + BARRIER_ID_WITHOUT_TIMESTAMP_LEN + 1, + (char *)walrcv->recoveryTargetBarrierId + BARRIER_ID_WITHOUT_TIMESTAMP_LEN + 1) < 0) || strcmp((char *)walrcv->lastRecoveredBarrierId, (char *)walrcv->recoveryStopBarrierId) == 0 || strcmp((char *)walrcv->lastRecoveredBarrierId, (char *)walrcv->recoverySwitchoverBarrierId) == 0) { break; @@ -306,6 +340,15 @@ void barrier_redo(XLogReaderState* record) /* Nothing to do */ XLogRecPtr barrierLSN = record->EndRecPtr; char* barrierId = XLogRecGetData(record); + + if (strcmp(barrierId, HADR_SWITCHOVER_BARRIER_ID) == 0) { + walrcv->lastSwitchoverBarrierLSN = barrierLSN; + ereport(LOG, (errmsg("GET SWITCHOVER BARRIER <%s>, LSN <%X/%X>", barrierId, + (uint32)(walrcv->lastSwitchoverBarrierLSN >> 32), + (uint32)(walrcv->lastSwitchoverBarrierLSN)))); + return; + } + walrcv->lastRecoveredBarrierLSN = barrierLSN; if (strcmp(barrierId, (char *)walrcv->lastRecoveredBarrierId) <= 0) { ereport(WARNING, (errmodule(MOD_REDO), errcode(ERRCODE_INVALID_PARAMETER_VALUE), @@ -314,6 +357,11 @@ void barrier_redo(XLogReaderState* record) rc = strncpy_s((char *)walrcv->lastRecoveredBarrierId, MAX_BARRIER_ID_LENGTH, barrierId, MAX_BARRIER_ID_LENGTH - 1); securec_check_ss(rc, "\0", "\0"); + + if (XLByteLE(barrierLSN, t_thrd.xlog_cxt.minRecoveryPoint)) { + return; + } + UpdateMinRecoveryPoint(barrierLSN, false); barrier_redo_pause(); return; } diff --git a/src/common/backend/pgxc_single/nodemgr/groupmgr.cpp b/src/common/backend/pgxc_single/nodemgr/groupmgr.cpp index f6dbaa210..677e8bf31 100644 --- a/src/common/backend/pgxc_single/nodemgr/groupmgr.cpp +++ b/src/common/backend/pgxc_single/nodemgr/groupmgr.cpp @@ -4692,7 +4692,7 @@ List* PgxcGroupGetLogicClusterList(Bitmapset* nodeids) /* * gs_get_nodegroup_tablecount - * get total table numbers of a nodegroup. + * marked unsupported for centralized * * Parameters: * @in node group name @@ -4701,66 +4701,10 @@ List* PgxcGroupGetLogicClusterList(Bitmapset* nodeids) */ Datum gs_get_nodegroup_tablecount(PG_FUNCTION_ARGS) { - Name str = PG_GETARG_NAME(0); - int32 count = 0; - char* group_name = NULL; - char* database_name = NULL; - Relation pg_database_rel = NULL; - TableScanDesc scan; - HeapTuple tup = NULL; - Datum datum; - bool isNull = false; - Oid group_oid; - errno_t rc; - char cmd[CHAR_BUF_SIZE]; - - if (str == NULL) { - ereport(ERROR, - (errcode(ERRCODE_INVALID_ATTRIBUTE), - errmsg("Invalid null pointer attribute for gs_get_nodegroup_tablecount()"))); - } - - group_name = NameStr(*str); - - group_oid = get_pgxc_groupoid(group_name, true); - if (!OidIsValid(group_oid)) - PG_RETURN_INT32(0); - - rc = snprintf_s(cmd, - CHAR_BUF_SIZE, - CHAR_BUF_SIZE - 1, - "select count(*) from pgxc_class, pgxc_group " - "where pgroup=group_name and pgxc_group.oid=%u;", - group_oid); - - securec_check_ss(rc, "\0", "\0"); - - pg_database_rel = heap_open(DatabaseRelationId, AccessShareLock); - - if (!pg_database_rel) { - ereport(ERROR, (errcode(ERRCODE_SYSTEM_ERROR), errmsg("can not open pg_database"))); - } - - scan = tableam_scan_begin(pg_database_rel, SnapshotNow, 0, NULL); - while ((tup = (HeapTuple) tableam_scan_getnexttuple(scan, ForwardScanDirection)) != NULL) { - datum = heap_getattr(tup, Anum_pg_database_datname, RelationGetDescr(pg_database_rel), &isNull); - Assert(!isNull); - - database_name = (char*)DatumGetCString(datum); - if (strcmp(database_name, "template0") == 0) { - continue; - } - - int tmpCount = GetTableCountByDatabase(database_name, cmd); - if (INT_MAX - tmpCount < count) { - ereport(ERROR, (errcode(ERRCODE_SYSTEM_ERROR), - errmsg("count is invalid, count:%d, tmpCount:%d", count, tmpCount))); - } - count += tmpCount; - } - - tableam_scan_end(scan); - heap_close(pg_database_rel, AccessShareLock); - - PG_RETURN_INT32(count); + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + (errmsg("Unsupport feature"), + errdetail("gs_get_nodegroup_tablecount is not supported for centralize deployment"), + errcause("The function is not implemented."), + erraction("Do not use this function with centralize deployment.")))); + PG_RETURN_INT32(0); } diff --git a/src/common/backend/pgxc_single/pool/execRemote.cpp b/src/common/backend/pgxc_single/pool/execRemote.cpp index 7defcb4eb..7d9d8135c 100755 --- a/src/common/backend/pgxc_single/pool/execRemote.cpp +++ b/src/common/backend/pgxc_single/pool/execRemote.cpp @@ -7,6 +7,7 @@ * * Portions Copyright (c) 1996-2011, PostgreSQL Global Development Group * Portions Copyright (c) 2010-2012 Postgres-XC Development Group + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -300,7 +301,8 @@ RemoteQueryState* CreateResponseCombiner(int node_count, CombineType combine_typ combiner->currentRow.msg = NULL; combiner->currentRow.msglen = 0; combiner->currentRow.msgnode = 0; - combiner->row_store = RowStoreAlloc(CurrentMemoryContext, ROW_STORE_MAX_MEM); + combiner->row_store = RowStoreAlloc(CurrentMemoryContext, ROW_STORE_MAX_MEM, + t_thrd.utils_cxt.CurrentResourceOwner); combiner->tapenodes = NULL; combiner->remoteCopyType = REMOTE_COPY_NONE; combiner->copy_file = NULL; diff --git a/src/common/backend/pgxc_single/pool/pgxcnode.cpp b/src/common/backend/pgxc_single/pool/pgxcnode.cpp index 8010d8acd..80be29ceb 100644 --- a/src/common/backend/pgxc_single/pool/pgxcnode.cpp +++ b/src/common/backend/pgxc_single/pool/pgxcnode.cpp @@ -2939,11 +2939,8 @@ pgxc_node_send_parse(PGXCNodeHandle * handle, const char* statement, /* message length */ int msgLen; int cnt_params; -#if 0 - size_t old_outEnd = handle->outEnd; -#else + #define old_outEnd handle->outEnd -#endif if(ENABLE_CN_GPC) { GPC_LOG("send parse", 0, statement); diff --git a/src/common/backend/pgxc_single/pool/poolmgr.cpp b/src/common/backend/pgxc_single/pool/poolmgr.cpp index 663e1f685..628c713ab 100644 --- a/src/common/backend/pgxc_single/pool/poolmgr.cpp +++ b/src/common/backend/pgxc_single/pool/poolmgr.cpp @@ -4243,13 +4243,13 @@ static int pingNode(const char* host, const char* port, const char* dbname) if (host != NULL) { nRet = snprintf_s(editBuf, MAXPATH + 1, MAXPATH, "host = '%s' ", host); securec_check_ss(nRet, "\0", "\0"); - rc = strncat_s(conninfo, MAXLINE + 1, editBuf, MAXLINE); + rc = strncat_s(conninfo, MAXLINE + 1, editBuf, strlen(editBuf)); securec_check(rc, "\0", "\0"); } if (port != NULL) { nRet = snprintf_s(editBuf, MAXPATH + 1, MAXPATH, "port = %d ", atoi(port)); securec_check_ss(nRet, "\0", "\0"); - rc = strncat_s(conninfo, MAXLINE + 1, editBuf, MAXLINE); + rc = strncat_s(conninfo, MAXLINE + 1, editBuf, strlen(editBuf)); securec_check(rc, "\0", "\0"); } @@ -4260,13 +4260,13 @@ static int pingNode(const char* host, const char* port, const char* dbname) dbname ? dbname : "postgres", u_sess->attr.attr_network.PoolerCancelTimeout); securec_check_ss(nRet, "\0", "\0"); - rc = strncat_s(conninfo, MAXLINE + 1, editBuf, MAXLINE); + rc = strncat_s(conninfo, MAXLINE + 1, editBuf, strlen(editBuf)); securec_check(rc, "\0", "\0"); char* remoteType = (char*)(IS_PGXC_COORDINATOR ? "coordinator" : "datanode"); nRet = snprintf_s(editBuf, MAXPATH + 1, MAXPATH, "options='-c remotetype=%s' ", remoteType); securec_check_ss(nRet, "\0", "\0"); - rc = strncat_s(conninfo, MAXLINE + 1, editBuf, MAXLINE); + rc = strncat_s(conninfo, MAXLINE + 1, editBuf, strlen(editBuf)); securec_check(rc, "\0", "\0"); if (conninfo[0]) { diff --git a/src/common/backend/port/sysv_sema.cpp b/src/common/backend/port/sysv_sema.cpp index 5a78375ae..8b8b9f432 100644 --- a/src/common/backend/port/sysv_sema.cpp +++ b/src/common/backend/port/sysv_sema.cpp @@ -109,10 +109,10 @@ static IpcSemaphoreId InternalIpcSemaphoreCreate(IpcSemaphoreKey semKey, int num "It occurs when either the system limit for the maximum number of " "semaphore sets (SEMMNI), or the system wide maximum number of " "semaphores (SEMMNS), would be exceeded. You need to raise the " - "respective kernel parameter. Alternatively, reduce PostgreSQL's " + "respective kernel parameter. Alternatively, reduce openGauss's " "consumption of semaphores by reducing its max_connections parameter.\n" - "The PostgreSQL documentation contains more information about " - "configuring your system for PostgreSQL.") + "The openGauss documentation contains more information about " + "configuring your system for openGauss.") : 0)); } @@ -131,7 +131,7 @@ static void IpcSemaphoreInitialize(IpcSemaphoreId semId, int semNum, int value) ereport(FATAL, (errmsg_internal("semctl(%d, %d, SETVAL, %d) failed: %m", semId, semNum, value), (errno == ERANGE) ? errhint("You possibly need to raise your kernel's SEMVMX value to be at least " - "%d. Look into the PostgreSQL documentation for details.", value) + "%d. Look into the openGauss documentation for details.", value) : 0)); } diff --git a/src/common/backend/port/sysv_shmem.cpp b/src/common/backend/port/sysv_shmem.cpp index ca0837e98..21fdfa3fd 100644 --- a/src/common/backend/port/sysv_shmem.cpp +++ b/src/common/backend/port/sysv_shmem.cpp @@ -138,24 +138,24 @@ static void* InternalIpcMemoryCreate(IpcMemoryKey memKey, Size size) (unsigned long)memKey, (unsigned long)size, IPC_CREAT | IPC_EXCL | IPCProtection), - (errno == EINVAL) ? errhint("This error usually means that PostgreSQL's request for a shared memory " + (errno == EINVAL) ? errhint("This error usually means that openGauss's request for a shared memory " "segment exceeded your kernel's SHMMAX parameter. You can either " "reduce the request size or reconfigure the kernel with larger SHMMAX. " "To reduce the request size (currently %lu bytes), reduce " - "PostgreSQL's shared memory usage, perhaps by reducing shared_buffers.\n" + "openGauss's shared memory usage, perhaps by reducing shared_buffers.\n" "If the request size is already small, it's possible that it is less than " "your kernel's SHMMIN parameter, in which case raising the request size or " "reconfiguring SHMMIN is called for.\n" - "The PostgreSQL documentation contains more information about shared " + "The openGauss documentation contains more information about shared " "memory configuration.", (unsigned long)size) : 0, - (errno == ENOMEM) ? errhint("This error usually means that PostgreSQL's request for a shared " + (errno == ENOMEM) ? errhint("This error usually means that openGauss's request for a shared " "memory segment exceeded available memory or swap space, " "or exceeded your kernel's SHMALL parameter. You can either " "reduce the request size or reconfigure the kernel with larger SHMALL. " "To reduce the request size (currently %lu bytes), reduce " - "PostgreSQL's shared memory usage, perhaps by reducing shared_buffers.\n" - "The PostgreSQL documentation contains more information about shared " + "openGauss's shared memory usage, perhaps by reducing shared_buffers.\n" + "The openGauss documentation contains more information about shared " "memory configuration.", (unsigned long)size) : 0, (errno == ENOSPC) ? errhint("This error does *not* mean that you have run out of disk space. " @@ -163,9 +163,9 @@ static void* InternalIpcMemoryCreate(IpcMemoryKey memKey, Size size) "in which case you need to raise the SHMMNI parameter in your kernel, " "or because the system's overall limit for shared memory has been " "reached. If you cannot increase the shared memory limit, " - "reduce PostgreSQL's shared memory request (currently %lu bytes), " + "reduce openGauss's shared memory request (currently %lu bytes), " "perhaps by reducing shared_buffers.\n" - "The PostgreSQL documentation contains more information about shared " + "The openGauss documentation contains more information about shared " "memory configuration.", (unsigned long)size) : 0)); } diff --git a/src/common/backend/utils/adt/CMakeLists.txt b/src/common/backend/utils/adt/CMakeLists.txt index b33909070..78c07a9c9 100755 --- a/src/common/backend/utils/adt/CMakeLists.txt +++ b/src/common/backend/utils/adt/CMakeLists.txt @@ -8,6 +8,7 @@ set(TGT_adt_INC ${PROJECT_TRUNK_DIR}/distribute/include ${PROJECT_SRC_DIR}/include ${PROJECT_SRC_DIR}/lib/gstrace + ${LIBXML_INCLUDE_PATH}/libxml2 ${LZ4_INCLUDE_PATH} ${ZLIB_INCLUDE_PATH} ${LIBOPENSSL_INCLUDE_PATH} diff --git a/src/common/backend/utils/adt/Makefile b/src/common/backend/utils/adt/Makefile index b75312ad4..608403ecb 100644 --- a/src/common/backend/utils/adt/Makefile +++ b/src/common/backend/utils/adt/Makefile @@ -26,7 +26,8 @@ OBJS = acl.o arrayfuncs.o array_selfuncs.o array_typanalyze.o \ array_userfuncs.o arrayutils.o bool.o \ cash.o char.o date.o datetime.o datum.o domains.o \ enum.o float.o format_type.o \ - geo_ops.o geo_selfuncs.o hotkey.o int.o int8.o json.o jsonb.o jsonb_gin.o jsonb_op.o jsonb_util.o jsonfuncs.o like.o lockfuncs.o \ + geo_ops.o geo_selfuncs.o hotkey.o int.o int8.o int16.o \ + json.o jsonb.o jsonb_gin.o jsonb_op.o jsonb_util.o jsonfuncs.o like.o lockfuncs.o \ misc.o nabstime.o name.o numeric.o numutils.o \ oid.o a_compat.o orderedsetaggs.o pseudotypes.o rangetypes.o rangetypes_gist.o \ rowtypes.o regexp.o regproc.o ruleutils.o selfuncs.o \ @@ -38,7 +39,7 @@ OBJS = acl.o arrayfuncs.o array_selfuncs.o array_typanalyze.o \ tsquery_op.o tsquery_rewrite.o tsquery_util.o tsrank.o \ tsvector.o tsvector_op.o tsvector_parser.o \ txid.o uuid.o windowfuncs.o xml.o extended_statistics.o clientlogic_bytea.o clientlogicsettings.o \ - median_aggs.o expr_distinct.o first_last_agg.o + median_aggs.o expr_distinct.o nlssort.o like.o: like.cpp like_match.cpp diff --git a/src/common/backend/utils/adt/acl.cpp b/src/common/backend/utils/adt/acl.cpp index a57f342d3..b7518f376 100644 --- a/src/common/backend/utils/adt/acl.cpp +++ b/src/common/backend/utils/adt/acl.cpp @@ -5,6 +5,7 @@ * * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -40,7 +41,6 @@ static const char* getid(const char* s, char* n); static void putid(char* p, const char* s); -static Acl* allocacl(int n); void check_acl(const Acl* acl); static const char* aclparse(const char* s, AclItem* aip); static bool aclitem_match(const AclItem* a1, const AclItem* a2); @@ -122,7 +122,7 @@ const struct AclObjType { {ACL_OBJECT_SEQUENCE, ACL_NO_RIGHTS, ACL_ALL_RIGHTS_SEQUENCE}, {ACL_OBJECT_DATABASE, (ACL_CREATE_TEMP | ACL_CONNECT), ACL_ALL_RIGHTS_DATABASE}, {ACL_OBJECT_FUNCTION, ACL_EXECUTE, ACL_ALL_RIGHTS_FUNCTION}, - {ACL_OBJECT_PACKAGE, ACL_EXECUTE, ACL_ALL_RIGHTS_PACKAGE}, + {ACL_OBJECT_PACKAGE, ACL_NO_RIGHTS, ACL_ALL_RIGHTS_PACKAGE}, {ACL_OBJECT_LARGEOBJECT, ACL_NO_RIGHTS, ACL_ALL_RIGHTS_LARGEOBJECT}, {ACL_OBJECT_NAMESPACE, ACL_NO_RIGHTS, ACL_ALL_RIGHTS_NAMESPACE}, {ACL_OBJECT_NODEGROUP, ACL_NO_RIGHTS, ACL_ALL_RIGHTS_NODEGROUP}, @@ -352,7 +352,7 @@ static const char* aclparse(const char* s, AclItem* aip) * RETURNS: * the new Acl */ -static Acl* allocacl(int n) +Acl* allocacl(int n) { Acl* new_acl = NULL; Size size; @@ -2035,9 +2035,10 @@ Datum has_sequence_privilege_name_name(PG_FUNCTION_ARGS) roleid = get_role_oid_or_public(NameStr(*rolename)); mode = convert_sequence_priv_string(priv_type_text); sequenceoid = convert_table_name(sequencename); - if (get_rel_relkind(sequenceoid) != RELKIND_SEQUENCE) + if (!(RELKIND_IS_SEQUENCE(get_rel_relkind(sequenceoid)))) ereport(ERROR, - (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("\"%s\" is not a sequence", text_to_cstring(sequencename)))); + (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("\"%s\" is not a (large) sequence", + text_to_cstring(sequencename)))); aclresult = pg_class_aclcheck(sequenceoid, roleid, mode, false); @@ -2062,9 +2063,10 @@ Datum has_sequence_privilege_name(PG_FUNCTION_ARGS) roleid = GetUserId(); mode = convert_sequence_priv_string(priv_type_text); sequenceoid = convert_table_name(sequencename); - if (get_rel_relkind(sequenceoid) != RELKIND_SEQUENCE) + if (!RELKIND_IS_SEQUENCE(get_rel_relkind(sequenceoid))) ereport(ERROR, - (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("\"%s\" is not a sequence", text_to_cstring(sequencename)))); + (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("\"%s\" is not a (large) sequence", + text_to_cstring(sequencename)))); aclresult = pg_class_aclcheck(sequenceoid, roleid, mode, false); @@ -2091,9 +2093,10 @@ Datum has_sequence_privilege_name_id(PG_FUNCTION_ARGS) relkind = get_rel_relkind(sequenceoid); if (relkind == '\0') PG_RETURN_NULL(); - else if (relkind != RELKIND_SEQUENCE) + else if (!RELKIND_IS_SEQUENCE(relkind)) ereport( - ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("\"%s\" is not a sequence", get_rel_name(sequenceoid)))); + ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("\"%s\" is not a (large) sequence", + get_rel_name(sequenceoid)))); aclresult = pg_class_aclcheck(sequenceoid, roleid, mode, false); @@ -2120,9 +2123,10 @@ Datum has_sequence_privilege_id(PG_FUNCTION_ARGS) relkind = get_rel_relkind(sequenceoid); if (relkind == '\0') PG_RETURN_NULL(); - else if (relkind != RELKIND_SEQUENCE) + else if (!RELKIND_IS_SEQUENCE(relkind)) ereport( - ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("\"%s\" is not a sequence", get_rel_name(sequenceoid)))); + ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("\"%s\" is not a (large) sequence", + get_rel_name(sequenceoid)))); aclresult = pg_class_aclcheck(sequenceoid, roleid, mode, false); @@ -2145,9 +2149,10 @@ Datum has_sequence_privilege_id_name(PG_FUNCTION_ARGS) mode = convert_sequence_priv_string(priv_type_text); sequenceoid = convert_table_name(sequencename); - if (get_rel_relkind(sequenceoid) != RELKIND_SEQUENCE) + if (!RELKIND_IS_SEQUENCE(get_rel_relkind(sequenceoid))) ereport(ERROR, - (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("\"%s\" is not a sequence", text_to_cstring(sequencename)))); + (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("\"%s\" is not a (large) sequence", + text_to_cstring(sequencename)))); aclresult = pg_class_aclcheck(sequenceoid, roleid, mode, false); @@ -2172,9 +2177,10 @@ Datum has_sequence_privilege_id_id(PG_FUNCTION_ARGS) relkind = get_rel_relkind(sequenceoid); if (relkind == '\0') PG_RETURN_NULL(); - else if (relkind != RELKIND_SEQUENCE) + else if (!RELKIND_IS_SEQUENCE(relkind)) ereport( - ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("\"%s\" is not a sequence", get_rel_name(sequenceoid)))); + ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("\"%s\" is not a (large) sequence", + get_rel_name(sequenceoid)))); aclresult = pg_class_aclcheck(sequenceoid, roleid, mode, false); @@ -4994,7 +5000,15 @@ static Oid convert_directory_name(text* dirName) */ static AclMode convert_directory_priv_string(text* priv_dir_text) { - static const priv_map dir_priv_map[] = {{"READ", ACL_READ}, {"WRITE", ACL_WRITE}, {NULL, 0}}; + static const priv_map dir_priv_map[] = {{"READ", ACL_READ}, + {"READ WITH GRANT OPTION", ACL_GRANT_OPTION_FOR(ACL_READ)}, + {"WRITE", ACL_WRITE}, + {"WRITE WITH GRANT OPTION", ACL_GRANT_OPTION_FOR(ACL_WRITE)}, + {"ALTER", ACL_ALTER}, + {"ALTER WITH GRANT OPTION", ADD_DDL_FLAG(ACL_GRANT_OPTION_FOR(REMOVE_DDL_FLAG(ACL_ALTER)))}, + {"DROP", ACL_DROP}, + {"DROP WITH GRANT OPTION", ADD_DDL_FLAG(ACL_GRANT_OPTION_FOR(REMOVE_DDL_FLAG(ACL_DROP)))}, + {NULL, 0}}; return convert_any_priv_string(priv_dir_text, dir_priv_map); } diff --git a/src/common/backend/utils/adt/arrayfuncs.cpp b/src/common/backend/utils/adt/arrayfuncs.cpp index dbeee0d6a..621ca0f01 100644 --- a/src/common/backend/utils/adt/arrayfuncs.cpp +++ b/src/common/backend/utils/adt/arrayfuncs.cpp @@ -95,6 +95,7 @@ static int array_cmp(FunctionCallInfo fcinfo); static ArrayType* create_array_envelope(int ndims, int* dimv, const int* lbv, int nbytes, Oid elmtype, int dataoffset); static ArrayType* array_fill_internal( ArrayType* dims, ArrayType* lbs, Datum value, bool isnull, Oid elmtype, FunctionCallInfo fcinfo); +static ArrayType* array_deleteidx_internal(ArrayType *v, int delIndex); /* * complex_array_in : @@ -1582,16 +1583,18 @@ Datum array_lower(PG_FUNCTION_ARGS) { ArrayType* v = PG_GETARG_ARRAYTYPE_P(0); int reqdim = PG_GETARG_INT32(1); - int* lb = NULL; + int *lb = NULL; int result; - /* Sanity check: does it look like an array at all? */ - if (ARR_NDIM(v) <= 0 || ARR_NDIM(v) > MAXDIM) + /* Sanity check: does it look like an array at all */ + if (ARR_NDIM(v) <= 0 || ARR_NDIM(v) > MAXDIM) { PG_RETURN_NULL(); + } /* Sanity check: was the requested dim valid */ - if (reqdim <= 0 || reqdim > ARR_NDIM(v)) + if (reqdim <= 0 || reqdim > ARR_NDIM(v)) { PG_RETURN_NULL(); + } lb = ARR_LBOUND(v); result = lb[reqdim - 1]; @@ -1608,16 +1611,19 @@ Datum array_upper(PG_FUNCTION_ARGS) { ArrayType* v = PG_GETARG_ARRAYTYPE_P(0); int reqdim = PG_GETARG_INT32(1); - int *dimv = NULL, *lb = NULL; + int *dimv = NULL; + int *lb = NULL; int result; /* Sanity check: does it look like an array at all? */ - if (ARR_NDIM(v) <= 0 || ARR_NDIM(v) > MAXDIM) + if (ARR_NDIM(v) <= 0 || ARR_NDIM(v) > MAXDIM) { PG_RETURN_NULL(); + } /* Sanity check: was the requested dim valid */ - if (reqdim <= 0 || reqdim > ARR_NDIM(v)) + if (reqdim <= 0 || reqdim > ARR_NDIM(v)) { PG_RETURN_NULL(); + } lb = ARR_LBOUND(v); dimv = ARR_DIMS(v); @@ -1637,15 +1643,25 @@ Datum array_length(PG_FUNCTION_ARGS) ArrayType* v = PG_GETARG_ARRAYTYPE_P(0); int reqdim = PG_GETARG_INT32(1); int* dimv = NULL; - int result; + int result = 0; - /* Sanity check: does it look like an array at all? */ - if (ARR_NDIM(v) <= 0 || ARR_NDIM(v) > MAXDIM) - PG_RETURN_NULL(); + /* Sanity check: does it look like an array at all */ + if (ARR_NDIM(v) <= 0 || ARR_NDIM(v) > MAXDIM) { + if (u_sess->attr.attr_sql.sql_compatibility != A_FORMAT) { + PG_RETURN_NULL(); + } else { + PG_RETURN_INT32(result); + } + } /* Sanity check: was the requested dim valid */ - if (reqdim <= 0 || reqdim > ARR_NDIM(v)) - PG_RETURN_NULL(); + if (reqdim <= 0 || reqdim > ARR_NDIM(v)) { + if (u_sess->attr.attr_sql.sql_compatibility != A_FORMAT) { + PG_RETURN_NULL(); + } else { + PG_RETURN_INT32(result); + } + } dimv = ARR_DIMS(v); @@ -1654,7 +1670,906 @@ Datum array_length(PG_FUNCTION_ARGS) PG_RETURN_INT32(result); } -// do nothing, just to be compatible with A db's "extend" keyword +Datum array_indexby_length(PG_FUNCTION_ARGS) +{ + if (PG_ARGISNULL(0)) { + PG_RETURN_INT32(0); + } + + ArrayType* v = PG_GETARG_ARRAYTYPE_P(0); + int reqdim = PG_GETARG_INT32(1); + int* dimv = NULL; + int result = 0; + + /* Sanity check: does it look like an array at all */ + if (ARR_NDIM(v) <= 0 || ARR_NDIM(v) > MAXDIM) { + if (u_sess->attr.attr_sql.sql_compatibility != A_FORMAT) { + PG_RETURN_NULL(); + } else { + PG_RETURN_INT32(result); + } + } + + /* Sanity check: was the requested dim valid */ + if (reqdim <= 0 || reqdim > ARR_NDIM(v)) { + if (u_sess->attr.attr_sql.sql_compatibility != A_FORMAT) { + PG_RETURN_NULL(); + } else { + PG_RETURN_INT32(result); + } + } + + dimv = ARR_DIMS(v); + + result = dimv[reqdim - 1]; + + PG_RETURN_INT32(result); +} + +/* + * array_exists: + * returns whether index element is null + */ +Datum array_exists(PG_FUNCTION_ARGS) +{ + ArrayType* v = PG_GETARG_ARRAYTYPE_P(0); + int index = PG_GETARG_INT32(1); + int* dimv = NULL; + int length = 0; + int *lb = NULL; + int lower; + int upper; + bool result = true; + + /* Sanity check: does it look like an array at all */ + if (ARR_NDIM(v) <= 0 || ARR_NDIM(v) > MAXDIM) { + result = false; + PG_RETURN_BOOL(result); + } + + dimv = ARR_DIMS(v); + length = dimv[0]; + lb = ARR_LBOUND(v); + lower = lb[0]; + upper = lower + length - 1; + + /* if index is not in [lower, upper] range, return false */ + if (index < lower || index > upper) { + result = false; + } + PG_RETURN_BOOL(result); +} + +static void checkEnv() +{ +#ifdef ENABLE_MULTIPLE_NODES + ereport(ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), + errmsg("distribute database not support this function"))); +#endif +} + +static bool array_index_exists_internal(ArrayType* v, HTAB* table_index, Oid tableOfIndexType, Datum index_datum) +{ + TableOfIndexKey key; + key.exprtypeid = tableOfIndexType; + key.exprdatum = index_datum; + int index = getTableOfIndexByDatumValue(key, table_index, NULL); + + int* dimv = NULL; + int length = 0; + int *lb = NULL; + int lower; + int upper; + bool result = true; + dimv = ARR_DIMS(v); + length = dimv[0]; + lb = ARR_LBOUND(v); + lower = lb[0]; + upper = lower + length - 1; + + /* if index is not in [lower, upper] range, return false */ + if (index < lower || index > upper) { + result = false; + } + return result; +} + +/* + * array_varchar_exists: + * returns whether index element is null + */ +Datum array_varchar_exists(PG_FUNCTION_ARGS) +{ + checkEnv(); + if (PG_ARGISNULL(0)) { + PG_RETURN_BOOL(false); + } + ArrayType* v = PG_GETARG_ARRAYTYPE_P(0); + /* Sanity check: does it look like an array at all */ + if (ARR_NDIM(v) <= 0 || ARR_NDIM(v) > MAXDIM) { + PG_RETURN_BOOL(false); + } + Datum index_datum = PG_GETARG_DATUM(1); + if (u_sess->SPI_cxt.cur_tableof_index->tableOfIndex == NULL) { + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("array_varchar_exists must be call in procedure"))); + } + + bool result = array_index_exists_internal(v, + u_sess->SPI_cxt.cur_tableof_index->tableOfIndex, + u_sess->SPI_cxt.cur_tableof_index->tableOfIndexType, + index_datum); + PG_RETURN_BOOL(result); +} + +Datum array_integer_exists(PG_FUNCTION_ARGS) +{ + checkEnv(); + if (PG_ARGISNULL(0)) { + PG_RETURN_BOOL(false); + } + ArrayType* v = PG_GETARG_ARRAYTYPE_P(0); + /* Sanity check: does it look like an array at all */ + if (ARR_NDIM(v) <= 0 || ARR_NDIM(v) > MAXDIM) { + PG_RETURN_BOOL(false); + } + Datum index_datum = PG_GETARG_DATUM(1); + if (u_sess->SPI_cxt.cur_tableof_index->tableOfIndex == NULL) { + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("array_integer_exists must be call in procedure"))); + } + + bool result = array_index_exists_internal(v, + u_sess->SPI_cxt.cur_tableof_index->tableOfIndex, + u_sess->SPI_cxt.cur_tableof_index->tableOfIndexType, + index_datum); + PG_RETURN_BOOL(result); +} + +/* + * array_next : + * returns next index of current index + */ +Datum array_next(PG_FUNCTION_ARGS) +{ + ArrayType* v = PG_GETARG_ARRAYTYPE_P(0); + int index = PG_GETARG_INT32(1); + int* dimv = NULL; + int length = 0; + int *lb = NULL; + int lower; + int upper; + int result = 0; + + /* Sanity check: does it look like an array at all? */ + if (ARR_NDIM(v) <= 0 || ARR_NDIM(v) > MAXDIM) { + PG_RETURN_NULL(); + } + + dimv = ARR_DIMS(v); + length = dimv[0]; + lb = ARR_LBOUND(v); + lower = lb[0]; + upper = lower + length - 1; + + /* if index is more than upper, return null */ + if (index >= upper) { + PG_RETURN_NULL(); + } + + result = (index < lower) ? lower : (index + 1); + PG_RETURN_INT32(result); +} + +static bool IsIndexGreater(Datum datum1, Datum datum2) +{ + text* arg1 = DatumGetTextPP(datum1); + text* arg2 = DatumGetTextPP(datum2); + /* if arg1 > arg2, return true */ + return (text_cmp(arg1, arg2, DEFAULT_COLLATION_OID) > 0); +} + +static Datum tableOfIndexVarcharNextValue(HTAB* tableOfIndex, TableOfIndexKey* cmpKey) +{ + HASH_SEQ_STATUS hashSeq; + hash_seq_init(&hashSeq, tableOfIndex); + TableOfIndexEntry* srcEntry = NULL; + Datum resultDatum = (Datum)0; + while ((srcEntry = (TableOfIndexEntry*)hash_seq_search(&hashSeq)) != NULL) { + if (IsIndexGreater(srcEntry->key.exprdatum, cmpKey->exprdatum)) { + if (resultDatum == (Datum)0) { + resultDatum = srcEntry->key.exprdatum; + } else if (IsIndexGreater(resultDatum, srcEntry->key.exprdatum)) { + resultDatum = srcEntry->key.exprdatum; + } + } + } + + return resultDatum; +} + +static Datum tableOfIndexVarcharPriorValue(HTAB* tableOfIndex, TableOfIndexKey* cmpKey) +{ + HASH_SEQ_STATUS hashSeq; + hash_seq_init(&hashSeq, tableOfIndex); + TableOfIndexEntry* srcEntry = NULL; + Datum resultDatum = (Datum)0; + while ((srcEntry = (TableOfIndexEntry*)hash_seq_search(&hashSeq)) != NULL) { + if (IsIndexGreater(cmpKey->exprdatum, srcEntry->key.exprdatum)) { + if (resultDatum == (Datum)0) { + resultDatum = srcEntry->key.exprdatum; + } else if (IsIndexGreater(srcEntry->key.exprdatum, resultDatum)) { + resultDatum = srcEntry->key.exprdatum; + } + } + } + + return resultDatum; +} + +static Datum tableOfIndexVarcharFirstValue(HTAB* tableOfIndex) +{ + HASH_SEQ_STATUS hashSeq; + hash_seq_init(&hashSeq, tableOfIndex); + TableOfIndexEntry* srcEntry = NULL; + Datum resultDatum = (Datum)0; + while ((srcEntry = (TableOfIndexEntry*)hash_seq_search(&hashSeq)) != NULL) { + if (resultDatum == (Datum)0) { + resultDatum = srcEntry->key.exprdatum; + } else if (IsIndexGreater(resultDatum, srcEntry->key.exprdatum)) { + resultDatum = srcEntry->key.exprdatum; + } + } + + return resultDatum; +} + +static Datum tableOfIndexVarcharLastValue(HTAB* tableOfIndex) +{ + HASH_SEQ_STATUS hashSeq; + hash_seq_init(&hashSeq, tableOfIndex); + TableOfIndexEntry* srcEntry = NULL; + Datum resultDatum = (Datum)0; + while ((srcEntry = (TableOfIndexEntry*)hash_seq_search(&hashSeq)) != NULL) { + if (resultDatum == (Datum)0) { + resultDatum = srcEntry->key.exprdatum; + } else if (IsIndexGreater(srcEntry->key.exprdatum, resultDatum)) { + resultDatum = srcEntry->key.exprdatum; + } + } + + return resultDatum; +} + +/* + * array_varchar_next : + * returns next index of current index, only for varchar type index, return varchar type of index. + */ +Datum array_varchar_next(PG_FUNCTION_ARGS) +{ + checkEnv(); + if (PG_ARGISNULL(0)) { + PG_RETURN_NULL(); + } + ArrayType* v = PG_GETARG_ARRAYTYPE_P(0); + /* Sanity check: does it look like an array at all */ + if (ARR_NDIM(v) <= 0 || ARR_NDIM(v) > MAXDIM) { + PG_RETURN_NULL(); + } + + int index = 0; + Datum index_datum = PG_GETARG_DATUM(1); + if (u_sess->SPI_cxt.cur_tableof_index->tableOfIndex == NULL) { + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("array_varchar_next must be call in procedure"))); + } + /* turn varchar index */ + HTAB* table_index = u_sess->SPI_cxt.cur_tableof_index->tableOfIndex; + TableOfIndexKey key; + key.exprtypeid = u_sess->SPI_cxt.cur_tableof_index->tableOfIndexType; + key.exprdatum = index_datum; + index = getTableOfIndexByDatumValue(key, table_index, NULL); + /* if exist index? */ + if (index < 0) { + PG_RETURN_NULL(); + } + Datum next_datum = tableOfIndexVarcharNextValue(table_index, &key); + if (next_datum == Datum(0)) { + PG_RETURN_NULL(); + } else { + PG_RETURN_VARCHAR_P(next_datum); + } +} + +Datum array_varchar_prior(PG_FUNCTION_ARGS) +{ + checkEnv(); + if (PG_ARGISNULL(0)) { + PG_RETURN_NULL(); + } + ArrayType* v = PG_GETARG_ARRAYTYPE_P(0); + /* Sanity check: does it look like an array at all */ + if (ARR_NDIM(v) <= 0 || ARR_NDIM(v) > MAXDIM) { + PG_RETURN_NULL(); + } + + int index = 0; + Datum index_datum = PG_GETARG_DATUM(1); + if (u_sess->SPI_cxt.cur_tableof_index->tableOfIndex == NULL) { + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("array_varchar_prior must be call in procedure"))); + } + /* turn varchar index */ + HTAB* table_index = u_sess->SPI_cxt.cur_tableof_index->tableOfIndex; + TableOfIndexKey key; + key.exprtypeid = u_sess->SPI_cxt.cur_tableof_index->tableOfIndexType; + key.exprdatum = index_datum; + index = getTableOfIndexByDatumValue(key, table_index, NULL); + if (index < 0) { + PG_RETURN_NULL(); + } + Datum prior_datum = tableOfIndexVarcharPriorValue(table_index, &key); + /* check ? */ + if (prior_datum == Datum(0)) { + PG_RETURN_NULL(); + } else { + PG_RETURN_VARCHAR_P(prior_datum); + } +} + +Datum array_varchar_first(PG_FUNCTION_ARGS) +{ + checkEnv(); + if (PG_ARGISNULL(0)) { + PG_RETURN_NULL(); + } + ArrayType* v = PG_GETARG_ARRAYTYPE_P(0); + /* Sanity check: does it look like an array at all */ + if (ARR_NDIM(v) <= 0 || ARR_NDIM(v) > MAXDIM) { + PG_RETURN_NULL(); + } + + if (u_sess->SPI_cxt.cur_tableof_index->tableOfIndex == NULL) { + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("array_varchar_first must be call in procedure"))); + } + /* turn varchar index */ + HTAB* table_index = u_sess->SPI_cxt.cur_tableof_index->tableOfIndex; + Datum first_datum = tableOfIndexVarcharFirstValue(table_index); + if (first_datum == Datum(0)) { + PG_RETURN_NULL(); + } else { + PG_RETURN_VARCHAR_P(first_datum); + } +} + +static Datum tableOfIndexIntegerNextValue(HTAB* tableOfIndex, TableOfIndexKey* cmpKey, bool* isAssign) +{ + HASH_SEQ_STATUS hashSeq; + hash_seq_init(&hashSeq, tableOfIndex); + TableOfIndexEntry* srcEntry = NULL; + Datum resultDatum = (Datum)0; + while ((srcEntry = (TableOfIndexEntry*)hash_seq_search(&hashSeq)) != NULL) { + if (DatumGetInt32(srcEntry->key.exprdatum) > DatumGetInt32(cmpKey->exprdatum)) { + if (!*isAssign) { + resultDatum = srcEntry->key.exprdatum; + *isAssign = true; + } else if (DatumGetInt32(resultDatum) > DatumGetInt32(srcEntry->key.exprdatum)) { + resultDatum = srcEntry->key.exprdatum; + } + } + } + + return resultDatum; +} + +Datum array_integer_next(PG_FUNCTION_ARGS) +{ + checkEnv(); + if (PG_ARGISNULL(0)) { + PG_RETURN_NULL(); + } + ArrayType* v = PG_GETARG_ARRAYTYPE_P(0); + /* Sanity check: does it look like an array at all */ + if (ARR_NDIM(v) <= 0 || ARR_NDIM(v) > MAXDIM) { + PG_RETURN_NULL(); + } + + Datum index_datum = PG_GETARG_DATUM(1); + if (u_sess->SPI_cxt.cur_tableof_index->tableOfIndex == NULL) { + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("array_integer_next must be call in procedure"))); + } + /* turn integer index */ + HTAB* table_index = u_sess->SPI_cxt.cur_tableof_index->tableOfIndex; + TableOfIndexKey key; + key.exprtypeid = u_sess->SPI_cxt.cur_tableof_index->tableOfIndexType; + key.exprdatum = index_datum; + int index = getTableOfIndexByDatumValue(key, table_index, NULL); + /* if exist index? */ + if (index < 0) { + PG_RETURN_NULL(); + } + bool isAssign = false; + Datum next_datum = tableOfIndexIntegerNextValue(table_index, &key, &isAssign); + + if (isAssign) { + PG_RETURN_INT32(next_datum); + } else { + PG_RETURN_NULL(); + } +} + +static Datum tableOfIndexIntegerPriorValue(HTAB* tableOfIndex, TableOfIndexKey* cmpKey, bool* isAssign) +{ + HASH_SEQ_STATUS hashSeq; + hash_seq_init(&hashSeq, tableOfIndex); + TableOfIndexEntry* srcEntry = NULL; + Datum resultDatum = (Datum)0; + while ((srcEntry = (TableOfIndexEntry*)hash_seq_search(&hashSeq)) != NULL) { + if (DatumGetInt32(cmpKey->exprdatum) > DatumGetInt32(srcEntry->key.exprdatum)) { + if (!*isAssign) { + resultDatum = srcEntry->key.exprdatum; + *isAssign = true; + } else if (DatumGetInt32(srcEntry->key.exprdatum) > DatumGetInt32(resultDatum)) { + resultDatum = srcEntry->key.exprdatum; + } + } + } + + return resultDatum; +} + +Datum array_integer_prior(PG_FUNCTION_ARGS) +{ + checkEnv(); + if (PG_ARGISNULL(0)) { + PG_RETURN_NULL(); + } + ArrayType* v = PG_GETARG_ARRAYTYPE_P(0); + /* Sanity check: does it look like an array at all */ + if (ARR_NDIM(v) <= 0 || ARR_NDIM(v) > MAXDIM) { + PG_RETURN_NULL(); + } + + Datum index_datum = PG_GETARG_DATUM(1); + if (u_sess->SPI_cxt.cur_tableof_index->tableOfIndex == NULL) { + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("array_integer_prior must be call in procedure"))); + } + /* turn varchar index */ + HTAB* table_index = u_sess->SPI_cxt.cur_tableof_index->tableOfIndex; + TableOfIndexKey key; + key.exprtypeid = u_sess->SPI_cxt.cur_tableof_index->tableOfIndexType; + key.exprdatum = index_datum; + int index = getTableOfIndexByDatumValue(key, table_index, NULL); + if (index < 0) { + PG_RETURN_NULL(); + } + bool isAssign = false; + Datum prior_datum = tableOfIndexIntegerPriorValue(table_index, &key, &isAssign); + if (isAssign) { + PG_RETURN_INT32(prior_datum); + } else { + PG_RETURN_NULL(); + } +} + +static Datum tableOfIndexIntegerFirstValue(HTAB* tableOfIndex) +{ + HASH_SEQ_STATUS hashSeq; + hash_seq_init(&hashSeq, tableOfIndex); + TableOfIndexEntry* srcEntry = NULL; + Datum resultDatum = (Datum)0; + bool isAssign = false; + while ((srcEntry = (TableOfIndexEntry*)hash_seq_search(&hashSeq)) != NULL) { + if (!isAssign) { + resultDatum = srcEntry->key.exprdatum; + isAssign = true; + } else if (DatumGetInt32(resultDatum) > DatumGetInt32(srcEntry->key.exprdatum)) { + resultDatum = srcEntry->key.exprdatum; + } + } + + return resultDatum; +} + +Datum array_integer_first(PG_FUNCTION_ARGS) +{ + checkEnv(); + if (PG_ARGISNULL(0)) { + PG_RETURN_NULL(); + } + ArrayType* v = PG_GETARG_ARRAYTYPE_P(0); + /* Sanity check: does it look like an array at all */ + if (ARR_NDIM(v) <= 0 || ARR_NDIM(v) > MAXDIM) { + PG_RETURN_NULL(); + } + + if (u_sess->SPI_cxt.cur_tableof_index->tableOfIndex == NULL) { + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("array_integer_first must be call in procedure"))); + } + + HTAB* table_index = u_sess->SPI_cxt.cur_tableof_index->tableOfIndex; + if (hash_get_num_entries(table_index) == 0) { + PG_RETURN_NULL(); + } + Datum first_datum = tableOfIndexIntegerFirstValue(table_index); + PG_RETURN_INT32(first_datum); +} + +static Datum tableOfIndexIntegerLastValue(HTAB* tableOfIndex) +{ + HASH_SEQ_STATUS hashSeq; + hash_seq_init(&hashSeq, tableOfIndex); + TableOfIndexEntry* srcEntry = NULL; + Datum resultDatum = (Datum)0; + bool isAssign = false; + while ((srcEntry = (TableOfIndexEntry*)hash_seq_search(&hashSeq)) != NULL) { + if (!isAssign) { + resultDatum = srcEntry->key.exprdatum; + isAssign = true; + } else if (DatumGetInt32(resultDatum) < DatumGetInt32(srcEntry->key.exprdatum)) { + resultDatum = srcEntry->key.exprdatum; + } + } + + return resultDatum; +} + +Datum array_integer_last(PG_FUNCTION_ARGS) +{ + checkEnv(); + if (PG_ARGISNULL(0)) { + PG_RETURN_NULL(); + } + ArrayType* v = PG_GETARG_ARRAYTYPE_P(0); + /* Sanity check: does it look like an array at all */ + if (ARR_NDIM(v) <= 0 || ARR_NDIM(v) > MAXDIM) { + PG_RETURN_NULL(); + } + + if (u_sess->SPI_cxt.cur_tableof_index->tableOfIndex == NULL) { + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("array_integer_last must be call in procedure"))); + } + + HTAB* table_index = u_sess->SPI_cxt.cur_tableof_index->tableOfIndex; + if (hash_get_num_entries(table_index) == 0) { + PG_RETURN_NULL(); + } + Datum last_datum = tableOfIndexIntegerLastValue(table_index); + PG_RETURN_INT32(last_datum); +} + +Datum array_varchar_last(PG_FUNCTION_ARGS) +{ + checkEnv(); + if (PG_ARGISNULL(0)) { + PG_RETURN_NULL(); + } + ArrayType* v = PG_GETARG_ARRAYTYPE_P(0); + /* Sanity check: does it look like an array at all */ + if (ARR_NDIM(v) <= 0 || ARR_NDIM(v) > MAXDIM) { + PG_RETURN_NULL(); + } + + if (u_sess->SPI_cxt.cur_tableof_index->tableOfIndex == NULL) { + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("array_varchar_last must be call in procedure"))); + } + /* turn varchar index */ + HTAB* table_index = u_sess->SPI_cxt.cur_tableof_index->tableOfIndex; + Datum last_datum = tableOfIndexVarcharLastValue(table_index); + if (last_datum == Datum(0)) { + PG_RETURN_NULL(); + } else { + PG_RETURN_VARCHAR_P(last_datum); + } +} + +static ArrayType* array_index_delete_internal(ArrayType* v, HTAB* table_index, Oid tableOfIndexType, Datum index_datum) +{ + TableOfIndexKey key; + key.exprtypeid = tableOfIndexType; + key.exprdatum = index_datum; + int index = getTableOfIndexByDatumValue(key, table_index, NULL); + if (index < 0) { + return v; + } + + ArrayType* array = array_deleteidx_internal(v, index); + bool found = false; + (void)hash_search(table_index, (const void*)&key, HASH_REMOVE, &found); + + return array; +} + +Datum array_integer_deleteidx(PG_FUNCTION_ARGS) +{ + checkEnv(); + if (PG_ARGISNULL(0)) { + PG_RETURN_NULL(); + } + ArrayType* v = PG_GETARG_ARRAYTYPE_P(0); + /* Sanity check: does it look like an array at all */ + if (ARR_NDIM(v) <= 0 || ARR_NDIM(v) > MAXDIM) { + PG_RETURN_ARRAYTYPE_P(v); + } + + Datum index_datum = PG_GETARG_DATUM(1); + if (u_sess->SPI_cxt.cur_tableof_index->tableOfIndex == NULL) { + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("array_integer_deleteidx must be call in procedure"))); + } + ArrayType* array = array_index_delete_internal(v, + u_sess->SPI_cxt.cur_tableof_index->tableOfIndex, + u_sess->SPI_cxt.cur_tableof_index->tableOfIndexType, + index_datum); + PG_RETURN_ARRAYTYPE_P(array); +} + + +Datum array_varchar_deleteidx(PG_FUNCTION_ARGS) +{ + checkEnv(); + if (PG_ARGISNULL(0)) { + PG_RETURN_NULL(); + } + ArrayType* v = PG_GETARG_ARRAYTYPE_P(0); + /* Sanity check: does it look like an array at all */ + if (ARR_NDIM(v) <= 0 || ARR_NDIM(v) > MAXDIM) { + PG_RETURN_ARRAYTYPE_P(v); + } + + Datum index_datum = PG_GETARG_DATUM(1); + if (u_sess->SPI_cxt.cur_tableof_index->tableOfIndex == NULL) { + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("array_varchar_deleteidx must be call in procedure"))); + } + ArrayType* array = array_index_delete_internal(v, + u_sess->SPI_cxt.cur_tableof_index->tableOfIndex, + u_sess->SPI_cxt.cur_tableof_index->tableOfIndexType, + index_datum); + PG_RETURN_ARRAYTYPE_P(array); +} + +/* + * array_prior : + * returns previous index of current index + */ +Datum array_prior(PG_FUNCTION_ARGS) +{ + ArrayType* v = PG_GETARG_ARRAYTYPE_P(0); + int index = PG_GETARG_INT32(1); + int* dimv = NULL; + int length = 0; + int *lb = NULL; + int lower; + int upper; + int result = 0; + + /* Sanity check: does it look like an array at all? */ + if (ARR_NDIM(v) <= 0 || ARR_NDIM(v) > MAXDIM) { + PG_RETURN_NULL(); + } + + dimv = ARR_DIMS(v); + length = dimv[0]; + lb = ARR_LBOUND(v); + lower = lb[0]; + upper = lower + length - 1; + + /* if index is less than lower, return null */ + if (index <= lower) { + PG_RETURN_NULL(); + } + + result = (index > upper) ? upper : (index - 1); + PG_RETURN_INT32(result); +} + +Datum array_extendnull(PG_FUNCTION_ARGS) +{ + ArrayType *v = PG_GETARG_ARRAYTYPE_P(0); + int count = PG_GETARG_INT32(1); + ArrayType *array = v; + Oid element_type; + Datum newelem = (Datum)0; + int16 typlen; + bool typbyval = false; + char typalign; + int indx; + int *dimv = NULL; + int *lb = NULL; + int lower; + int upper; + int length; + + if (count <= 0 || ARR_NDIM(v) > MAXDIM) { + PG_RETURN_ARRAYTYPE_P(array); + } + + if (ARR_NDIM(v) <= 0) { + lower = 0; + upper = 0; + } else { + dimv = ARR_DIMS(v); + length = dimv[0]; + lb = ARR_LBOUND(v); + lower = lb[0]; + upper = lower + length - 1; + } + + element_type = ARR_ELEMTYPE(v); + get_typlenbyvalalign(element_type, &typlen, &typbyval, &typalign); + + for (int i = 1; i <= count; i++) { + indx = upper + i; + array = array_set(array, 1, &indx, newelem, true, -1, typlen, typbyval, typalign); + } + + PG_RETURN_ARRAYTYPE_P(array); +} + +static ArrayType* array_deleteidx_internal(ArrayType *v, int delIndex) +{ + ArrayType *array = v; + Oid element_type; + Datum newelem = (Datum)0; + int16 typlen; + bool typbyval = false; + char typalign; + int indx; + int offset = 0; + int *dimv = NULL; + int *lb = NULL; + int lower; + int upper; + int length; + char* ptr = NULL; + bits8* bitmap = NULL; + uint32 bitmask; + bool isnull; + int realIndex; + if (ARR_NDIM(v) <= 0 || ARR_NDIM(v) > MAXDIM) { + return v; + } + + dimv = ARR_DIMS(v); + length = dimv[0]; + lb = ARR_LBOUND(v); + lower = lb[0]; + upper = lower + length - 1; + + if (delIndex < lower || delIndex > upper) { + return array; + } + array = construct_empty_array(ARR_ELEMTYPE(v)); + + element_type = ARR_ELEMTYPE(v); + get_typlenbyvalalign(element_type, &typlen, &typbyval, &typalign); + + ptr = ARR_DATA_PTR(v); + bitmap = ARR_NULLBITMAP(v); + bitmask = 1; + + for (indx = lower; indx <= upper; indx++) { + /* Get elements, checking for NULL */ + if (bitmap && (*bitmap & bitmask) == 0) { + isnull = true; + newelem = (Datum)0; + } else { + isnull = false; + newelem = fetch_att(ptr, typbyval, typlen); + ptr = att_addlength_pointer(ptr, typlen, ptr); + ptr = (char*)att_align_nominal(ptr, typalign); + } + bitmask <<= 1; + if (bitmask == 0x100) { + bitmask = 1; + if (bitmap != NULL) { + bitmap++; + } + } + /* If index is delIndex, skip */ + if (indx == delIndex) { + offset = 1; + continue; + } + realIndex = indx - offset; + array = array_set(array, 1, &realIndex, newelem, isnull, -1, typlen, typbyval, typalign); + } + return array; +} + +Datum array_deleteidx(PG_FUNCTION_ARGS) +{ + ArrayType* v = PG_GETARG_ARRAYTYPE_P(0); + int delIndex = PG_GETARG_INT32(1); + ArrayType* array = array_deleteidx_internal(v, delIndex); + + PG_RETURN_ARRAYTYPE_P(array); +} + +Datum array_delete(PG_FUNCTION_ARGS) +{ + ArrayType* v = PG_GETARG_ARRAYTYPE_P(0); + ArrayType* array = construct_empty_array(ARR_ELEMTYPE(v)); + PG_RETURN_ARRAYTYPE_P(array); +} + +Datum array_trim(PG_FUNCTION_ARGS) +{ + ArrayType *v = PG_GETARG_ARRAYTYPE_P(0); + int count = PG_GETARG_INT32(1); + ArrayType *array = v; + Oid element_type; + Datum newelem = (Datum)0; + int16 typlen; + bool typbyval = false; + char typalign; + int indx; + int *dimv = NULL; + int *lb = NULL; + int lower; + int upper; + int length; + char* ptr = NULL; + bits8* bitmap = NULL; + uint32 bitmask; + bool isnull; + + if (ARR_NDIM(v) <= 0 || ARR_NDIM(v) > MAXDIM) { + PG_RETURN_ARRAYTYPE_P(v); + } + + dimv = ARR_DIMS(v); + length = dimv[0]; + lb = ARR_LBOUND(v); + lower = lb[0]; + upper = lower + length - 1; + + if (count <= 0) { + PG_RETURN_ARRAYTYPE_P(array); + } + array = construct_empty_array(ARR_ELEMTYPE(v)); + if (count >= length) { + PG_RETURN_ARRAYTYPE_P(array); + } + + element_type = ARR_ELEMTYPE(v); + get_typlenbyvalalign(element_type, &typlen, &typbyval, &typalign); + + ptr = ARR_DATA_PTR(v); + bitmap = ARR_NULLBITMAP(v); + bitmask = 1; + + for (indx = lower; indx <= upper - count; indx++) { + /* Get elements, checking for NULL */ + if (bitmap && (*bitmap & bitmask) == 0) { + isnull = true; + newelem = (Datum)0; + } else { + isnull = false; + newelem = fetch_att(ptr, typbyval, typlen); + ptr = att_addlength_pointer(ptr, typlen, ptr); + ptr = (char*)att_align_nominal(ptr, typalign); + } + array = array_set(array, 1, &indx, newelem, isnull, -1, typlen, typbyval, typalign); + bitmask <<= 1; + if (bitmask == 0x100) { + bitmask = 1; + if (bitmap != NULL) { + bitmap++; + } + } + } + + PG_RETURN_ARRAYTYPE_P(array); +} + Datum array_extend(PG_FUNCTION_ARGS) { PG_RETURN_VOID(); @@ -2547,7 +3462,15 @@ Datum array_map(FunctionCallInfo fcinfo, Oid inpType, Oid retType, ArrayMapState if (callit) { fcinfo->isnull = false; + /* The input parameters are transferred by ExecEvalArrayCoerceExpr. + * The number of input parameters is fixed to three. + * However, the number of input parameters required by the function is not necessarily three. + * Therefore, the number of input parameters required by the function is assigned to fcinfo->nargs. + */ + int oldnargs = fcinfo->nargs; + fcinfo->nargs = fcinfo->flinfo->fn_nargs; values[i] = FunctionCallInvoke(fcinfo); + fcinfo->nargs = oldnargs; } else fcinfo->isnull = true; @@ -3164,7 +4087,6 @@ static int array_cmp(FunctionCallInfo fcinfo) locfcinfo.argnull[1] = false; locfcinfo.isnull = false; cmpresult = DatumGetInt32(FunctionCallInvoke(&locfcinfo)); - if (cmpresult == 0) continue; /* equal */ @@ -3404,8 +4326,9 @@ static bool array_contain_compare(ArrayType* array1, ArrayType* array2, Oid coll /* advance bitmap pointer if any */ bitmask <<= 1; if (bitmask == 0x100) { - if (bitmap1 != NULL) + if (bitmap1 != NULL) { bitmap1++; + } bitmask = 1; } @@ -4609,294 +5532,555 @@ Datum array_unnest(PG_FUNCTION_ARGS) } /* - * check if search is same as replace + * The type, dimension needs to be checked during collection operations. */ -static bool array_same_replace(FunctionCallInfo locfcinfo, Datum search, bool search_isnull, - Datum replace, bool replace_isnull) +static void array_multiset_check(const ArrayType* v1, const ArrayType* v2) { - if (search_isnull != replace_isnull) { - return false; - } else if (search_isnull == true) { - Assert(replace_isnull); - return true; - } else { - locfcinfo->arg[0] = search; - locfcinfo->arg[1] = replace; - locfcinfo->argnull[0] = search_isnull; - locfcinfo->argnull[1] = replace_isnull; - locfcinfo->isnull = false; - return DatumGetBool(FunctionCallInvoke(locfcinfo)); + int ndims1 = (v1 == NULL) ? 0 : ARR_NDIM(v1); + int ndims2 = (v2 == NULL) ? 0 : ARR_NDIM(v2); + if (v1 && v2) { + /* check element type */ + Oid element_type1 = ARR_ELEMTYPE(v1); + Oid element_type2 = ARR_ELEMTYPE(v2); + if (element_type1 != element_type2) { + ereport(ERROR, + (errcode(ERRCODE_DATATYPE_MISMATCH), + errmsg("multiset function cannot support different element types"))); + } + } + + /* check dimensions */ + if (ndims1 > 1 || ndims2 > 1) { + ereport(ERROR, + (errcode(ERRCODE_ARRAY_SUBSCRIPT_ERROR), + errmsg("Arrays larger than one-dimension are now not supported"))); } } -/* - * array_replace/array_remove support - * - * Find all array entries matching (not distinct from) search/search_isnull, - * and delete them if remove is true, else replace them with - * replace/replace_isnull. Comparisons are done using the specified - * collation. fcinfo is passed only for caching purposes. - */ -static ArrayType *array_replace_internal(ArrayType *array, Datum search, bool search_isnull, Datum replace, - bool replace_isnull, bool remove, Oid collation, FunctionCallInfo fcinfo) +/* Find the number of elements in the array. */ +static int numDatumInArray(FunctionCallInfoData locfcinfo, Datum elt1, bool isnull1, ArrayType* array, + const TypeCacheEntry* typentry, bool isEarlyReturn) { - - ArrayType *result = NULL; - Oid element_type; - Datum *values = NULL; - bool *nulls = NULL; - int *dim = NULL; - int ndim; - int nitems; - int nresult; - int i; - int32 nbytes = 0; - int32 dataoffset; - bool hasnulls = false; - int typlen; - bool typbyval = false; - char typalign; - char *arraydataptr = NULL; - bits8 *bitmap = NULL; - int bitmask; - bool changed = false; - TypeCacheEntry *typentry = NULL; + bool oprresult = false; + int typlen = typentry->typlen; + bool typbyval = typentry->typbyval; + char typalign = typentry->typalign; + Oid element_type = ARR_ELEMTYPE(array); + Datum* values2 = NULL; + bool* nulls2 = NULL; + int nelems2 = 0; + deconstruct_array(array, element_type, typlen, typbyval, typalign, &values2, &nulls2, &nelems2); + int j; + int numresult = 0; + for (j = 0; j < nelems2; j++) { + Datum elt2 = values2[j]; + bool isnull2 = nulls2[j]; + if (isnull1 && isnull2) { + numresult += 1; + if (isEarlyReturn) { + break; + } + } + if (isnull1 || isnull2) { + continue; + } + + /* + * Apply the operator to the element pair + */ + locfcinfo.arg[0] = elt1; + locfcinfo.arg[1] = elt2; + locfcinfo.argnull[0] = false; + locfcinfo.argnull[1] = false; + locfcinfo.isnull = false; + oprresult = DatumGetBool(FunctionCallInvoke(&locfcinfo)); + if (oprresult) { + numresult += 1; + if (isEarlyReturn) { + break; + } + } + } + + pfree(values2); + pfree(nulls2); + return numresult; +} + +/* + * This function is only called when the element first appears. + * The first occurrence of the element is startIndex. So we're going to search from the + * next location (startIndex + 1) to see if there's the same element + */ +static int numDatumInArratByIndex(FunctionCallInfoData locfcinfo, Datum elt1, bool isnull1, + int startIndex, Datum* values2, const bool* nulls2, int nelems2) +{ + /* elt1 is values2[startIndex] */ + int num = 1; + int j; + for (j = startIndex + 1; j < nelems2; j++) { + Datum elt2 = values2[j]; + bool isnull2 = nulls2[j]; + if (isnull1 && isnull2) { + num += 1; + } + if (isnull1 || isnull2) { + continue; + } + /* + * Apply the operator to the element pair + */ + locfcinfo.arg[0] = elt1; + locfcinfo.arg[1] = elt2; + locfcinfo.argnull[0] = false; + locfcinfo.argnull[1] = false; + locfcinfo.isnull = false; + if (DatumGetBool(FunctionCallInvoke(&locfcinfo))) { + num += 1; + } + } + return num; +} + +/* + * Insert array A into array B and deduplicate array B. + */ +static ArrayType* arrayInsertDistinctArray(ArrayType* result, ArrayType* src, TypeCacheEntry* typentry, int* index) +{ + int typlen = typentry->typlen; + bool typbyval = typentry->typbyval; + char typalign = typentry->typalign; + /* + * Apply the comparison operator to each pair of array elements. + */ FunctionCallInfoData locfcinfo; - errno_t rc = EOK; + InitFunctionCallInfoData(locfcinfo, &typentry->eq_opr_finfo, MULTISET_ARGS_NUM, 0, NULL, NULL); + /* Loop over source data */ + int nelems1 = ArrayGetNItems(ARR_NDIM(src), ARR_DIMS(src)); + char* ptr1 = ARR_DATA_PTR(src); + bits8* bitmap1 = ARR_NULLBITMAP(src); + uint32 bitmask = 1; + int i; + + for (i = 0; i < nelems1; i++) { + Datum elt1; + bool isnull1 = false; + + /* Get element, checking for NULL */ + if (bitmap1 && (*bitmap1 & bitmask) == 0) { + isnull1 = true; + elt1 = (Datum)0; + } else { + isnull1 = false; + elt1 = fetch_att(ptr1, typbyval, typlen); + ptr1 = att_addlength_pointer(ptr1, typlen, ptr1); + ptr1 = (char*)att_align_nominal(ptr1, typalign); + } + + /* advance bitmap pointer if any */ + if (bitmap1 != NULL) { + bitmask <<= 1; + if (bitmask == 0x100) { + bitmap1++; + bitmask = 1; + } + } + + if (numDatumInArray(locfcinfo, elt1, isnull1, result, typentry, true) <= 0) { + result = array_set(result, 1, index, elt1, isnull1, -1, typlen, typbyval, typalign); + *index += 1; + } + } - element_type = ARR_ELEMTYPE(array); - ndim = ARR_NDIM(array); - dim = ARR_DIMS(array); - nitems = ArrayGetNItems(ndim, dim); + return result; +} - /* Return input array unmodified if it is empty */ - if (nitems <= 0) - return array; +/* + * ARRAY1 = [1,2,3] + * ARRAY2 = [3,4,5] + * [1,2,3,3,4,5] = array_union(ARRAY1, ARRAY2) + * Note: only support 1 dimensional arrays + */ +Datum array_union(PG_FUNCTION_ARGS) +{ + ArrayType *v1 = NULL, *v2 = NULL; + ArrayType* result = NULL; + int *dims = NULL, *lbs = NULL, ndims, nitems, ndatabytes, nbytes; + int *dims1 = NULL, *lbs1 = NULL, ndims1, nitems1, ndatabytes1; + int *dims2 = NULL, *lbs2 = NULL, ndims2, nitems2, ndatabytes2; + char *dat1 = NULL, *dat2 = NULL; + bits8 *bitmap1 = NULL, *bitmap2 = NULL; + Oid element_type; + int32 dataoffset; + errno_t rc = EOK; + + /* Concatenating a null array is a no-op, just return the other input */ + if (PG_ARGISNULL(0)) { + if (PG_ARGISNULL(1)) + PG_RETURN_NULL(); + result = PG_GETARG_ARRAYTYPE_P(1); + PG_RETURN_ARRAYTYPE_P(result); + } + if (PG_ARGISNULL(1)) { + result = PG_GETARG_ARRAYTYPE_P(0); + PG_RETURN_ARRAYTYPE_P(result); + } + + v1 = PG_GETARG_ARRAYTYPE_P(0); + v2 = PG_GETARG_ARRAYTYPE_P(1); + + array_multiset_check(v1, v2); + + /* OK, use it */ + element_type = ARR_ELEMTYPE(v1); + + ndims1 = ARR_NDIM(v1); + ndims2 = ARR_NDIM(v2); /* - * We can't remove elements from multi-dimensional arrays, since the - * result might not be rectangular. + * short circuit - if one input array is empty, and the other is not, we + * return the non-empty one as the result + * + * if both are empty, return the first one */ - if (remove && ndim > 1) + if (ndims1 == 0 && ndims2 > 0) + PG_RETURN_ARRAYTYPE_P(v2); + + if (ndims2 == 0) + PG_RETURN_ARRAYTYPE_P(v1); + + if (ndims1 != ndims2) ereport(ERROR, - (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("removing elements from multidimensional arrays is not supported"))); + (errcode(ERRCODE_ARRAY_SUBSCRIPT_ERROR), + errmsg("cannot union incompatible arrays"), + errdetail("Arrays of %d and %d dimensions are not " + "compatible for concatenation.", + ndims1, + ndims2))); + + /* get argument array details */ + lbs1 = ARR_LBOUND(v1); + lbs2 = ARR_LBOUND(v2); + dims1 = ARR_DIMS(v1); + dims2 = ARR_DIMS(v2); + dat1 = ARR_DATA_PTR(v1); + dat2 = ARR_DATA_PTR(v2); + bitmap1 = ARR_NULLBITMAP(v1); + bitmap2 = ARR_NULLBITMAP(v2); + nitems1 = ArrayGetNItems(ndims1, dims1); + nitems2 = ArrayGetNItems(ndims2, dims2); + ndatabytes1 = ARR_SIZE(v1) - ARR_DATA_OFFSET(v1); + ndatabytes2 = ARR_SIZE(v2) - ARR_DATA_OFFSET(v2); /* - * We arrange to look up the equality function only once per series of - * calls, assuming the element type doesn't change underneath us. + * resulting array is made up of the elements (possibly arrays + * themselves) of the input argument arrays */ - typentry = (TypeCacheEntry *) fcinfo->flinfo->fn_extra; + ndims = ndims1; + dims = (int*)palloc(ndims * sizeof(int)); + lbs = (int*)palloc(ndims * sizeof(int)); + /* dims1[0] is elements nums of dimension 1 in the left array */ + if (unlikely(INT_MAX - dims1[0] < dims2[0])) { + ereport(ERROR, + (errcode(ERRCODE_ARRAY_SUBSCRIPT_ERROR), + errmsg("cannot accpect arrays with dimensions out of range"))); + } + dims[0] = dims1[0] + dims2[0]; + /* start index must be 1 in multiset union */ + lbs[0] = 1; + + /* Do this mainly for overflow checking */ + nitems = ArrayGetNItems(ndims, dims); + + /* build the result array */ + ndatabytes = ndatabytes1 + ndatabytes2; + if (ARR_HASNULL(v1) || ARR_HASNULL(v2)) { + dataoffset = ARR_OVERHEAD_WITHNULLS(ndims, nitems); + nbytes = ndatabytes + dataoffset; + } else { + dataoffset = 0; /* marker for no null bitmap */ + nbytes = ndatabytes + ARR_OVERHEAD_NONULLS(ndims); + } + result = (ArrayType*)palloc0(nbytes); + SET_VARSIZE(result, nbytes); + result->ndim = ndims; + result->dataoffset = dataoffset; + result->elemtype = element_type; + rc = memcpy_s(ARR_DIMS(result), ndims * sizeof(int), dims, ndims * sizeof(int)); + securec_check(rc, "", ""); + rc = memcpy_s(ARR_LBOUND(result), ndims * sizeof(int), lbs, ndims * sizeof(int)); + securec_check(rc, "", ""); + + /* data area is arg1 then arg2. And make sure the destMax of memcpy_s should never be zero. */ + if (ndatabytes1 > 0) { + rc = memcpy_s(ARR_DATA_PTR(result), ndatabytes1, dat1, ndatabytes1); + securec_check(rc, "", ""); + } + if (ndatabytes2 > 0) { + rc = memcpy_s(ARR_DATA_PTR(result) + ndatabytes1, ndatabytes2, dat2, ndatabytes2); + securec_check(rc, "", ""); + } + + /* handle the null bitmap if needed */ + if (ARR_HASNULL(result)) { + array_bitmap_copy(ARR_NULLBITMAP(result), 0, bitmap1, 0, nitems1); + array_bitmap_copy(ARR_NULLBITMAP(result), nitems1, bitmap2, 0, nitems2); + } + + PG_RETURN_ARRAYTYPE_P(result); +} + +/* + * ARRAY1 = [1,2,3] + * ARRAY2 = [3,4,5] + * [1,2,3,4,5] = array_union_distinct(ARRAY1, ARRAY2) + * Note: only support 1 dimensional arrays + */ +Datum array_union_distinct(PG_FUNCTION_ARGS) +{ + ArrayType* v1 = NULL; + ArrayType* v2 = NULL; + Oid element_type = InvalidOid; + + if (PG_ARGISNULL(0) && PG_ARGISNULL(1)) { + PG_RETURN_NULL(); + } + if (PG_ARGISNULL(0)) { + v1 = NULL; + } else { + v1 = PG_GETARG_ARRAYTYPE_P(0); + element_type = ARR_ELEMTYPE(v1); + } + if (PG_ARGISNULL(1)) { + v2 = NULL; + } else { + v2 = PG_GETARG_ARRAYTYPE_P(1); + element_type = ARR_ELEMTYPE(v2); + } + + array_multiset_check(v1, v2); + TypeCacheEntry* typentry = (TypeCacheEntry*)fcinfo->flinfo->fn_extra; if (typentry == NULL || typentry->type_id != element_type) { typentry = lookup_type_cache(element_type, TYPECACHE_EQ_OPR_FINFO); if (!OidIsValid(typentry->eq_opr_finfo.fn_oid)) ereport(ERROR, - (errcode(ERRCODE_UNDEFINED_FUNCTION), - errmsg("could not identify an equality operator for type %s", - format_type_be(element_type)))); - fcinfo->flinfo->fn_extra = (void *) typentry; + (errcode(ERRCODE_UNDEFINED_FUNCTION), + errmsg("could not identify an equality operator for type %s", format_type_be(element_type)))); + } + + ArrayType* result = construct_empty_array(element_type); + int index = 1; + if (v1 != NULL && ARR_NDIM(v1) == 1) { + result = arrayInsertDistinctArray(result, v1, typentry, &index); } - typlen = typentry->typlen; - typbyval = typentry->typbyval; - typalign = typentry->typalign; + if (v2 != NULL && ARR_NDIM(v2) == 1) { + result = arrayInsertDistinctArray(result, v2, typentry, &index); + } + + PG_RETURN_ARRAYTYPE_P(result); +} + +static ArrayType* array_intersect_internal(ArrayType* v1, ArrayType* v2, TypeCacheEntry* typentry, bool isDistinct) +{ + Oid element_type = ARR_ELEMTYPE(v1); + if (typentry == NULL || typentry->type_id != element_type) { + typentry = lookup_type_cache(element_type, TYPECACHE_EQ_OPR_FINFO); + if (!OidIsValid(typentry->eq_opr_finfo.fn_oid)) + ereport(ERROR, + (errcode(ERRCODE_UNDEFINED_FUNCTION), + errmsg("could not identify an equality operator for type %s", format_type_be(element_type)))); + } /* - * Detoast values if they are toasted. The replacement value must be - * detoasted for insertion into the result array, while detoasting the - * search value only once saves cycles. + * Apply the comparison operator to each pair of array elements. */ - if (typlen == -1) { - if (!search_isnull) - search = PointerGetDatum(PG_DETOAST_DATUM(search)); - if (!replace_isnull) - replace = PointerGetDatum(PG_DETOAST_DATUM(replace)); - } + FunctionCallInfoData locfcinfo; + InitFunctionCallInfoData(locfcinfo, &typentry->eq_opr_finfo, MULTISET_ARGS_NUM, 0, NULL, NULL); + int typlen = typentry->typlen; + bool typbyval = typentry->typbyval; + char typalign = typentry->typalign; + Datum* values1 = NULL; + bool* nulls1 = NULL; + int nelems1 = 0; + deconstruct_array(v1, element_type, typlen, typbyval, typalign, &values1, &nulls1, &nelems1); + ArrayType* result = construct_empty_array(element_type); + int i; + int index = 1; + for (i = 0; i < nelems1; i++) { + Datum elt1 = values1[i]; + bool isnull1 = nulls1[i]; + /* if this element is already in result, continue */ + if (numDatumInArray(locfcinfo, elt1, isnull1, result, typentry, true) > 0) { + continue; + } - /* Prepare to apply the comparison operator */ - InitFunctionCallInfoData(locfcinfo, &typentry->eq_opr_finfo, 2, collation, NULL, NULL); - - /* directly return if search is same as replace */ - if (!remove && array_same_replace(&locfcinfo, search, search_isnull, replace, replace_isnull)) { - return array; - } - - /* Allocate temporary arrays for new values */ - values = (Datum *) palloc(nitems * sizeof(Datum)); - nulls = (bool *) palloc(nitems * sizeof(bool)); - - /* Loop over source data */ - arraydataptr = ARR_DATA_PTR(array); - bitmap = ARR_NULLBITMAP(array); - bitmask = 1; - hasnulls = false; - nresult = 0; - - for (i = 0; i < nitems; i++) { - Datum elt; - bool isNull = false; - bool oprresult = false; - bool skip = false; - - /* Get source element, checking for NULL */ - if (bitmap && (*bitmap & bitmask) == 0) { - isNull = true; - /* If searching for NULL, we have a match */ - if (search_isnull) { - if (remove) { - skip = true; - changed = true; - } else if (!replace_isnull) { - values[nresult] = replace; - isNull = false; - changed = true; - } + if (isDistinct) { + /* find the first same element, and return */ + if (numDatumInArray(locfcinfo, elt1, isnull1, v2, typentry, true) > 0) { + result = array_set(result, 1, &index, elt1, isnull1, -1, typlen, typbyval, typalign); + index += 1; } } else { - isNull = false; - elt = fetch_att(arraydataptr, typbyval, typlen); - arraydataptr = att_addlength_datum(arraydataptr, typlen, elt); - arraydataptr = (char *) att_align_nominal(arraydataptr, typalign); - - if (search_isnull) { - /* no match possible, keep element */ - values[nresult] = elt; - } else { - /* Compare the pair of elements */ - locfcinfo.arg[0] = elt; - locfcinfo.arg[1] = search; - locfcinfo.argnull[0] = false; - locfcinfo.argnull[1] = false; - locfcinfo.isnull = false; - oprresult = DatumGetBool(FunctionCallInvoke(&locfcinfo)); - if (locfcinfo.isnull || !oprresult) { - /* no match, keep element */ - values[nresult] = elt; - } else { - /* match, so replace or delete */ - changed = true; - if (remove) { - skip = true; - } else { - values[nresult] = replace; - isNull = replace_isnull; - } + /* find the num of the same element in array2 */ + int numInArray2 = numDatumInArray(locfcinfo, elt1, isnull1, v2, typentry, false); + if (numInArray2) { + /* find the num of the same element in array1 */ + int numInArray1 = + numDatumInArratByIndex(locfcinfo, elt1, isnull1, i, values1, nulls1, nelems1); + int minNum = (numInArray1 > numInArray2) ? numInArray2 : numInArray1; + for (int k = 0; k < minNum; k++) { + result = array_set(result, 1, &index, elt1, isnull1, -1, typlen, typbyval, typalign); + index += 1; } } } - - if (!skip) { - nulls[nresult] = isNull; - if (isNull) { - hasnulls = true; - } else { - /* Update total result size */ - nbytes = att_addlength_datum(nbytes, typlen, values[nresult]); - nbytes = att_align_nominal(nbytes, typalign); - /* check for overflow of total request */ - if (!AllocSizeIsValid(nbytes)) - ereport(ERROR, - (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), - errmsg("array size exceeds the maximum allowed (%d)", - (int) MaxAllocSize))); - } - nresult++; - } - - /* advance bitmap pointer if any */ - if (bitmap) { - bitmask <<= 1; - if (bitmask == 0x100) { - bitmap++; - bitmask = 1; - } - } } - - /* - * If not changed just return the original array - */ - if (!changed) { - pfree(values); - pfree(nulls); - return array; - } - - /* If all elements were removed return an empty array */ - if (nresult == 0) { - pfree(values); - pfree(nulls); - return construct_empty_array(element_type); - } - - /* Allocate and initialize the result array */ - if (hasnulls) { - dataoffset = ARR_OVERHEAD_WITHNULLS(ndim, nresult); - nbytes += dataoffset; - } else { - dataoffset = 0; /* marker for no null bitmap */ - nbytes += ARR_OVERHEAD_NONULLS(ndim); - } - result = (ArrayType *) palloc0(nbytes); - SET_VARSIZE(result, nbytes); - result->ndim = ndim; - result->dataoffset = dataoffset; - result->elemtype = element_type; - rc = memcpy_s(ARR_DIMS(result), nbytes - sizeof(ArrayType), ARR_DIMS(array), ndim * sizeof(int)); - securec_check(rc, "\0", "\0"); - rc = memcpy_s(ARR_LBOUND(result), nbytes - (sizeof(ArrayType) + sizeof(int) * ndim), - ARR_LBOUND(array), ndim * sizeof(int)); - securec_check(rc, "\0", "\0"); - - if (remove) { - /* Adjust the result length */ - ARR_DIMS(result)[0] = nresult; - } - - /* Insert data into result array */ - CopyArrayEls(result, values, nulls, nresult, typlen, typbyval, typalign, false); - - pfree(values); - pfree(nulls); - return result; } /* - * Remove any occurrences of an element from an array - * - * If used on a multi-dimensional array this will raise an error. + * ARRAY1 = [1,2,3,3,NULL,NULL] + * ARRAY2 = [3,3,4,5,NULL,NULL] + * [3,3,NULL,NULL] = array_intersect(ARRAY1, ARRAY2) */ -Datum array_remove(PG_FUNCTION_ARGS) +Datum array_intersect(PG_FUNCTION_ARGS) { - ArrayType *array = NULL; - Datum search = PG_GETARG_DATUM(1); - bool search_isnull = PG_ARGISNULL(1); - - if (PG_ARGISNULL(0)) + if (PG_ARGISNULL(0) || PG_ARGISNULL(1)) { PG_RETURN_NULL(); - array = PG_GETARG_ARRAYTYPE_P(0); - - array = array_replace_internal(array, search, search_isnull, (Datum) 0, true, true, PG_GET_COLLATION(), fcinfo); - PG_RETURN_ARRAYTYPE_P(array); + } + ArrayType* v1 = PG_GETARG_ARRAYTYPE_P(0); + ArrayType* v2 = PG_GETARG_ARRAYTYPE_P(1); + array_multiset_check(v1, v2); + TypeCacheEntry* typentry = (TypeCacheEntry*)fcinfo->flinfo->fn_extra; + ArrayType* result = array_intersect_internal(v1, v2, typentry, false); + PG_RETURN_ARRAYTYPE_P(result); } /* - * Replace any occurrences of an element in an array + * ARRAY1 = [1,2,3,3,NULL,NULL] + * ARRAY2 = [3,3,4,5,NULL,NULL] + * [3,NULL] = array_intersect_distinct(ARRAY1, ARRAY2) */ -Datum array_replace(PG_FUNCTION_ARGS) +Datum array_intersect_distinct(PG_FUNCTION_ARGS) { - ArrayType *array = NULL; - Datum search = PG_GETARG_DATUM(1); - bool search_isnull = PG_ARGISNULL(1); - Datum replace = PG_GETARG_DATUM(2); - bool replace_isnull = PG_ARGISNULL(2); - - if (PG_ARGISNULL(0)) + if (PG_ARGISNULL(0) || PG_ARGISNULL(1)) { PG_RETURN_NULL(); - array = PG_GETARG_ARRAYTYPE_P(0); - - array = array_replace_internal(array, search, search_isnull, replace, replace_isnull, false, PG_GET_COLLATION(), - fcinfo); - PG_RETURN_ARRAYTYPE_P(array); + } + ArrayType* v1 = PG_GETARG_ARRAYTYPE_P(0); + ArrayType* v2 = PG_GETARG_ARRAYTYPE_P(1); + array_multiset_check(v1, v2); + TypeCacheEntry* typentry = (TypeCacheEntry*)fcinfo->flinfo->fn_extra; + ArrayType* result = array_intersect_internal(v1, v2, typentry, true); + PG_RETURN_ARRAYTYPE_P(result); } +static ArrayType* array_except_internal(ArrayType* v1, ArrayType* v2, TypeCacheEntry* typentry, bool isDistinct) +{ + Oid element_type = ARR_ELEMTYPE(v1); + if (typentry == NULL || typentry->type_id != element_type) { + typentry = lookup_type_cache(element_type, TYPECACHE_EQ_OPR_FINFO); + if (!OidIsValid(typentry->eq_opr_finfo.fn_oid)) + ereport(ERROR, + (errcode(ERRCODE_UNDEFINED_FUNCTION), + errmsg("could not identify an equality operator for type %s", format_type_be(element_type)))); + } + + ArrayType* result = construct_empty_array(element_type); + int index = 1; + if (v2 == NULL) { + /* must be distincted */ + Assert(isDistinct); + result = arrayInsertDistinctArray(result, v1, typentry, &index); + return result; + } + + /* + * Apply the comparison operator to each pair of array elements. + */ + FunctionCallInfoData locfcinfo; + InitFunctionCallInfoData(locfcinfo, &typentry->eq_opr_finfo, MULTISET_ARGS_NUM, 0, NULL, NULL); + int typlen = typentry->typlen; + bool typbyval = typentry->typbyval; + char typalign = typentry->typalign; + Datum* values1 = NULL; + bool* nulls1 = NULL; + int nelems1 = 0; + deconstruct_array(v1, element_type, typlen, typbyval, typalign, &values1, &nulls1, &nelems1); + int i; + for (i = 0; i < nelems1; i++) { + Datum elt1 = values1[i]; + bool isnull1 = nulls1[i]; + /* if this element is already in result, continue */ + if (numDatumInArray(locfcinfo, elt1, isnull1, result, typentry, true) > 0) { + continue; + } + /* find the num of the same element in array2 */ + int numInArray2 = numDatumInArray(locfcinfo, elt1, isnull1, v2, typentry, false); + int insertNum = 0; + if (numInArray2) { + if (isDistinct) { + continue; + } else { + int numInArray1 = + numDatumInArratByIndex(locfcinfo, elt1, isnull1, i, values1, nulls1, nelems1); + insertNum = numInArray1 - numInArray2; + } + } else { + if (isDistinct) { + /* distinct only insert 1 element */ + insertNum = 1; + } else { + /* non-distinct should insert all same element */ + insertNum = numDatumInArratByIndex(locfcinfo, elt1, isnull1, i, values1, nulls1, nelems1); + } + } + + for (int k = 0; k < insertNum; k++) { + result = array_set(result, 1, &index, elt1, isnull1, -1, typlen, typbyval, typalign); + index += 1; + } + } + return result; +} + +/* + * ARRAY1 = [1,2,3,3,NULL,NULL] + * ARRAY2 = [3,4,5,NULL] + * [1,2,3,NULL] = array_except(ARRAY1, ARRAY2) + */ +Datum array_except(PG_FUNCTION_ARGS) +{ + if (PG_ARGISNULL(0)) { + PG_RETURN_NULL(); + } + ArrayType* v1 = PG_GETARG_ARRAYTYPE_P(0); + if (PG_ARGISNULL(1)) { + PG_RETURN_ARRAYTYPE_P(v1); + } + ArrayType* v2 = PG_GETARG_ARRAYTYPE_P(1); + array_multiset_check(v1, v2); + TypeCacheEntry* typentry = (TypeCacheEntry*)fcinfo->flinfo->fn_extra; + ArrayType* result = array_except_internal(v1, v2, typentry, false); + PG_RETURN_ARRAYTYPE_P(result); +} + +/* + * ARRAY1 = [1,2,3,3,NULL,NULL] + * ARRAY2 = [3,4,5,NULL] + * [1,2] = array_except(ARRAY1, ARRAY2) + */ +Datum array_except_distinct(PG_FUNCTION_ARGS) +{ + if (PG_ARGISNULL(0)) { + PG_RETURN_NULL(); + } + ArrayType* v1 = PG_GETARG_ARRAYTYPE_P(0); + ArrayType* v2 = NULL; + if (!PG_ARGISNULL(1)) { + v2 = PG_GETARG_ARRAYTYPE_P(1); + } + array_multiset_check(v1, v2); + TypeCacheEntry* typentry = (TypeCacheEntry*)fcinfo->flinfo->fn_extra; + ArrayType* result = array_except_internal(v1, v2, typentry, true); + PG_RETURN_ARRAYTYPE_P(result); +} diff --git a/src/common/backend/utils/adt/datetime.cpp b/src/common/backend/utils/adt/datetime.cpp index 4c66c823e..f8ae0f43c 100644 --- a/src/common/backend/utils/adt/datetime.cpp +++ b/src/common/backend/utils/adt/datetime.cpp @@ -158,23 +158,29 @@ static datetkn deltatktbl[] = { {"@", IGNORE_DTF, 0}, /* openGauss relative prefix */ {DAGO, AGO, 0}, /* "ago" indicates negative time offset */ {"c", UNITS, DTK_CENTURY}, /* "century" relative */ + {"cc", UNITS, DTK_CENTURY}, /* "century" relative */ {"cent", UNITS, DTK_CENTURY}, /* "century" relative */ {"centuries", UNITS, DTK_CENTURY}, /* "centuries" relative */ {DCENTURY, UNITS, DTK_CENTURY}, /* "century" relative */ {"d", UNITS, DTK_DAY}, /* "day" relative */ {DDAY, UNITS, DTK_DAY}, /* "day" relative */ {"days", UNITS, DTK_DAY}, /* "days" relative */ + {"dd", UNITS, DTK_DAY}, /* "day" relative */ + {"ddd", UNITS, DTK_DAY}, /* "day" relative */ {"dec", UNITS, DTK_DECADE}, /* "decade" relative */ {DDECADE, UNITS, DTK_DECADE}, /* "decade" relative */ {"decades", UNITS, DTK_DECADE}, /* "decades" relative */ {"decs", UNITS, DTK_DECADE}, /* "decades" relative */ {"h", UNITS, DTK_HOUR}, /* "hour" relative */ + {"hh", UNITS, DTK_HOUR}, /* "hour" relative */ {DHOUR, UNITS, DTK_HOUR}, /* "hour" relative */ {"hours", UNITS, DTK_HOUR}, /* "hours" relative */ {"hr", UNITS, DTK_HOUR}, /* "hour" relative */ {"hrs", UNITS, DTK_HOUR}, /* "hours" relative */ {INVALID, RESERV, DTK_INVALID}, /* reserved for invalid time */ + {"j", UNITS, DTK_DAY}, /* "day" relative */ {"m", UNITS, DTK_MINUTE}, /* "minute" relative */ + {"mi", UNITS, DTK_MINUTE}, /* "minute" relative */ {"microsecon", UNITS, DTK_MICROSEC}, /* "microsecond" relative */ {"mil", UNITS, DTK_MILLENNIUM}, /* "millennium" relative */ {"millennia", UNITS, DTK_MILLENNIUM}, /* "millennia" relative */ @@ -185,6 +191,7 @@ static datetkn deltatktbl[] = { {"mins", UNITS, DTK_MINUTE}, /* "minutes" relative */ {DMINUTE, UNITS, DTK_MINUTE}, /* "minute" relative */ {"minutes", UNITS, DTK_MINUTE}, /* "minutes" relative */ + {"mm", UNITS, DTK_MONTH}, /* "month" relative */ {"mon", UNITS, DTK_MONTH}, /* "months" relative */ {"mons", UNITS, DTK_MONTH}, /* "months" relative */ {DMONTH, UNITS, DTK_MONTH}, /* "month" relative */ @@ -194,6 +201,7 @@ static datetkn deltatktbl[] = { {DMILLISEC, UNITS, DTK_MILLISEC}, {"mseconds", UNITS, DTK_MILLISEC}, {"msecs", UNITS, DTK_MILLISEC}, + {"q", UNITS, DTK_QUARTER}, /* "quarter" relative */ {"qtr", UNITS, DTK_QUARTER}, /* "quarter" relative */ {DQUARTER, UNITS, DTK_QUARTER}, /* "quarter" relative */ {"s", UNITS, DTK_SECOND}, @@ -217,7 +225,8 @@ static datetkn deltatktbl[] = { {DYEAR, UNITS, DTK_YEAR}, /* "year" relative */ {"years", UNITS, DTK_YEAR}, /* "years" relative */ {"yr", UNITS, DTK_YEAR}, /* "year" relative */ - {"yrs", UNITS, DTK_YEAR} /* "years" relative */ + {"yrs", UNITS, DTK_YEAR}, /* "years" relative */ + {"yyyy", UNITS, DTK_YEAR} /* "year" relative */ }; static int szdeltatktbl = sizeof deltatktbl / sizeof deltatktbl[0]; diff --git a/src/common/backend/utils/adt/dbsize.cpp b/src/common/backend/utils/adt/dbsize.cpp index 93e5b9f30..3cfcbf594 100644 --- a/src/common/backend/utils/adt/dbsize.cpp +++ b/src/common/backend/utils/adt/dbsize.cpp @@ -3,6 +3,7 @@ * Database object size functions, and related inquiries * * Copyright (c) 2002-2012, PostgreSQL Global Development Group + * Portions Copyright (c) 2021, openGauss Contributors * * IDENTIFICATION * src/backend/utils/adt/dbsize.c @@ -1261,8 +1262,21 @@ static int64 CalculateRelSize(Relation rel, int forkNumOption) foreach (cell, partitions) { partition = (Partition)lfirst(cell); partRel = partitionGetRelation(rel, partition); - - size += calculate_table_file_size(partRel, RelationIsColStore(rel), forkNumOption); + if (RelationIsSubPartitioned(rel)) { + ListCell* subcell = NULL; + Partition subpartition = NULL; + Relation subpartRel = NULL; + List* subpartitions = relationGetPartitionList(partRel, AccessShareLock); + foreach (subcell, subpartitions) { + subpartition = (Partition)lfirst(subcell); + subpartRel = partitionGetRelation(partRel, subpartition); + size += calculate_table_file_size(subpartRel, RelationIsColStore(rel), forkNumOption); + releaseDummyRelation(&subpartRel); + } + releasePartitionList(partRel, &subpartitions, AccessShareLock); + } else { + size += calculate_table_file_size(partRel, RelationIsColStore(rel), forkNumOption); + } releaseDummyRelation(&partRel); } @@ -1586,7 +1600,7 @@ static int64 calculate_partition_indexes_size(Oid partTableOid, Oid partOid) return 0; } - indexOids = RelationGetIndexList(partTableRel); + indexOids = RelationGetSpecificKindIndexList(partTableRel, false); foreach (cell, indexOids) { Oid indexOid = lfirst_oid(cell); @@ -1889,6 +1903,7 @@ Datum pg_relation_filenode(PG_FUNCTION_ARGS) case RELKIND_INDEX: case RELKIND_GLOBAL_INDEX: case RELKIND_SEQUENCE: + case RELKIND_LARGE_SEQUENCE: case RELKIND_TOASTVALUE: /* okay, these have storage */ if (relform->relfilenode) @@ -2061,6 +2076,7 @@ Datum pg_relation_filepath(PG_FUNCTION_ARGS) case RELKIND_INDEX: case RELKIND_GLOBAL_INDEX: case RELKIND_SEQUENCE: + case RELKIND_LARGE_SEQUENCE: case RELKIND_TOASTVALUE: /* okay, these have storage */ @@ -2230,6 +2246,7 @@ Datum pgxc_execute_on_nodes(int numnodes, Oid* nodelist, char* query) /* * Connect to SPI manager */ + SPI_STACK_LOG("connect", NULL, NULL); if ((ret = SPI_connect()) < 0) /* internal error */ ereport(ERROR, (errcode(ERRCODE_SPI_CONNECTION_FAILURE), errmsg("SPI connect failure - returned %d", ret))); @@ -2270,6 +2287,7 @@ Datum pgxc_execute_on_nodes(int numnodes, Oid* nodelist, char* query) total_size += size; } + SPI_STACK_LOG("finish", NULL, NULL); SPI_finish(); if (numnodes == 1) diff --git a/src/common/backend/utils/adt/float.cpp b/src/common/backend/utils/adt/float.cpp index a4309c374..a3c077ac7 100644 --- a/src/common/backend/utils/adt/float.cpp +++ b/src/common/backend/utils/adt/float.cpp @@ -5,6 +5,7 @@ * * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -24,6 +25,7 @@ #include "libpq/pqformat.h" #include "utils/array.h" #include "utils/builtins.h" +#include "utils/guc_sql.h" #include "optimizer/pgxcship.h" #include "miscadmin.h" @@ -61,6 +63,7 @@ static const uint32 nan[2] = {0xffffffff, 0x7fffffff}; static int float4_cmp_internal(float4 a, float4 b); int float8_cmp_internal(float8 a, float8 b); +double float8in_internal(char* str, char** s, bool* hasError); #ifndef HAVE_CBRT /* @@ -84,6 +87,78 @@ static double cbrt(double x); * INFINITY and NAN macros. We centralize our workarounds for this here. */ +double float8in_internal(char* str, char** endptr_p, bool* hasError) +{ + double val; + char* endptr = NULL; + /* Marking down the initial value of str. */ + const char* orig_num = str; + const int nanLen = 3; + const int infinityLen = 8; + const int minusInfinityLen = 9; + + Assert(str != NULL); + + while (*str != '\0' && isspace((unsigned char)*str)) { + str++; + } + + if (*str == '\0') { + *hasError = TRUE; + return 0.0; + } + + errno = 0; + val = strtod(str, &endptr); + + if (endptr == str || errno != 0) { + int save_errno = errno; + + if (pg_strncasecmp(str, "NaN", nanLen) == 0) { + val = get_float8_nan(); + endptr = str + 3; + } else if (pg_strncasecmp(str, "Infinity", infinityLen) == 0) { + val = get_float8_infinity(); + endptr = str + 8; + } else if (pg_strncasecmp(str, "-Infinity", minusInfinityLen) == 0) { + val = -get_float8_infinity(); + endptr = str + 9; + } else if (save_errno == ERANGE) { + if (val == 0.0 || val >= HUGE_VAL || val <= -HUGE_VAL) { + char* errnumber = pstrdup(str); + errnumber[endptr - str] = '\0'; + ereport(ERROR, + (errmodule(MOD_FUNCTION), errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE), + errmsg("\"%s\" is out of range for type double precision", errnumber), + errdetail("N/A"), + errcause("Input number exceeding limit of float8."), + erraction("Change input number within float8 interval."))); + } + } else { + *hasError = TRUE; + return 0.0; + } + } + + while (*endptr != '\0' && isspace((unsigned char)*endptr)) { + endptr++; + } + + /* report stopping point, else report error if not end of string */ + if (endptr_p) { + *endptr_p = endptr; + } else if (*endptr != '\0') { + ereport(ERROR, + (errmodule(MOD_FUNCTION), errcode(ERRCODE_INVALID_TEXT_REPRESENTATION), + errmsg("invalid input syntax for type double precision: \"%s\"", orig_num), + errdetail("N/A"), + errcause("Wrong input syntax."), + erraction("Change input syntax."))); + } + return val; +} + + double get_float8_infinity(void) { #ifdef INFINITY @@ -294,6 +369,20 @@ Datum float4in(PG_FUNCTION_ARGS) Datum float4out(PG_FUNCTION_ARGS) { float4 num = PG_GETARG_FLOAT4(0); + + if (u_sess->attr.attr_sql.for_print_tuple) { + char *result = NULL; + double var = (double)num; + if (strcmp(u_sess->attr.attr_common.pset_num_format, "")) { + result = apply_num_format(var); + } else if (u_sess->attr.attr_common.pset_num_width > 0) { + result = apply_num_width(var); + } + if (result != NULL) { + PG_RETURN_CSTRING(result); + } + } + char* ascii = (char*)palloc(MAXFLOATWIDTH + 1); errno_t rc = EOK; @@ -508,6 +597,20 @@ Datum float8in(PG_FUNCTION_ARGS) Datum float8out(PG_FUNCTION_ARGS) { float8 num = PG_GETARG_FLOAT8(0); + + if (u_sess->attr.attr_sql.for_print_tuple) { + char *result = NULL; + double var = num; + if (strcmp(u_sess->attr.attr_common.pset_num_format, "")) { + result = apply_num_format(var); + } else if (u_sess->attr.attr_common.pset_num_width > 0) { + result = apply_num_width(var); + } + if (result != NULL) { + PG_RETURN_CSTRING(result); + } + } + char* ascii = (char*)palloc(MAXDOUBLEWIDTH + 1); errno_t rc = EOK; diff --git a/src/common/backend/utils/adt/formatting.cpp b/src/common/backend/utils/adt/formatting.cpp index 79182e567..1f2340cad 100644 --- a/src/common/backend/utils/adt/formatting.cpp +++ b/src/common/backend/utils/adt/formatting.cpp @@ -1100,6 +1100,12 @@ typedef enum { DCH_Day, DCH_Dy, DCH_D, + DCH_FF1, + DCH_FF2, + DCH_FF3, + DCH_FF4, + DCH_FF5, + DCH_FF6, DCH_FF, DCH_FX, DCH_HH24, @@ -1133,6 +1139,7 @@ typedef enum { DCH_US, DCH_WW, DCH_W, + DCH_X, DCH_Y_YYY, DCH_YYYY, DCH_YYY, @@ -1150,6 +1157,12 @@ typedef enum { DCH_dd, DCH_dy, DCH_d, + DCH_ff1, + DCH_ff2, + DCH_ff3, + DCH_ff4, + DCH_ff5, + DCH_ff6, DCH_ff, DCH_fx, DCH_hh24, @@ -1181,6 +1194,7 @@ typedef enum { DCH_us, DCH_ww, DCH_w, + DCH_x, DCH_y_yyy, DCH_yyyy, DCH_yyy, @@ -1255,7 +1269,13 @@ static const KeyWord DCH_keywords[] = { {"Day", 3, DCH_Day, FALSE, FROM_CHAR_DATE_NONE}, {"Dy", 2, DCH_Dy, FALSE, FROM_CHAR_DATE_NONE}, {"D", 1, DCH_D, TRUE, FROM_CHAR_DATE_GREGORIAN}, - {"FF", 2, DCH_US, TRUE, FROM_CHAR_DATE_NONE}, /* F */ + {"FF1", 3, DCH_FF1, TRUE, FROM_CHAR_DATE_NONE}, /* F */ + {"FF2", 3, DCH_FF2, TRUE, FROM_CHAR_DATE_NONE}, + {"FF3", 3, DCH_FF3, TRUE, FROM_CHAR_DATE_NONE}, + {"FF4", 3, DCH_FF4, TRUE, FROM_CHAR_DATE_NONE}, + {"FF5", 3, DCH_FF5, TRUE, FROM_CHAR_DATE_NONE}, + {"FF6", 3, DCH_FF6, TRUE, FROM_CHAR_DATE_NONE}, + {"FF", 2, DCH_US, TRUE, FROM_CHAR_DATE_NONE}, {"FX", 2, DCH_FX, FALSE, FROM_CHAR_DATE_NONE}, {"HH24", 4, DCH_HH24, TRUE, FROM_CHAR_DATE_NONE}, /* H */ {"HH12", 4, DCH_HH12, TRUE, FROM_CHAR_DATE_NONE}, @@ -1288,6 +1308,7 @@ static const KeyWord DCH_keywords[] = { {"US", 2, DCH_US, TRUE, FROM_CHAR_DATE_NONE}, /* U */ {"WW", 2, DCH_WW, TRUE, FROM_CHAR_DATE_GREGORIAN}, /* W */ {"W", 1, DCH_W, TRUE, FROM_CHAR_DATE_GREGORIAN}, + {"X", 1, DCH_X, TRUE, FROM_CHAR_DATE_NONE}, /* X */ {"Y,YYY", 5, DCH_Y_YYY, TRUE, FROM_CHAR_DATE_GREGORIAN}, /* Y */ {"YYYY", 4, DCH_YYYY, TRUE, FROM_CHAR_DATE_GREGORIAN}, {"YYY", 3, DCH_YYY, TRUE, FROM_CHAR_DATE_GREGORIAN}, @@ -1305,7 +1326,13 @@ static const KeyWord DCH_keywords[] = { {"dd", 2, DCH_DD, TRUE, FROM_CHAR_DATE_GREGORIAN}, {"dy", 2, DCH_dy, FALSE, FROM_CHAR_DATE_NONE}, {"d", 1, DCH_D, TRUE, FROM_CHAR_DATE_GREGORIAN}, - {"ff", 2, DCH_US, TRUE, FROM_CHAR_DATE_NONE}, /* f */ + {"ff1", 3, DCH_FF1, TRUE, FROM_CHAR_DATE_NONE}, /* f */ + {"ff2", 3, DCH_FF2, TRUE, FROM_CHAR_DATE_NONE}, + {"ff3", 3, DCH_FF3, TRUE, FROM_CHAR_DATE_NONE}, + {"ff4", 3, DCH_FF4, TRUE, FROM_CHAR_DATE_NONE}, + {"ff5", 3, DCH_FF5, TRUE, FROM_CHAR_DATE_NONE}, + {"ff6", 3, DCH_FF6, TRUE, FROM_CHAR_DATE_NONE}, + {"ff", 2, DCH_US, TRUE, FROM_CHAR_DATE_NONE}, {"fx", 2, DCH_FX, FALSE, FROM_CHAR_DATE_NONE}, {"hh24", 4, DCH_HH24, TRUE, FROM_CHAR_DATE_NONE}, /* h */ {"hh12", 4, DCH_HH12, TRUE, FROM_CHAR_DATE_NONE}, @@ -1336,6 +1363,7 @@ static const KeyWord DCH_keywords[] = { {"us", 2, DCH_US, TRUE, FROM_CHAR_DATE_NONE}, /* u */ {"ww", 2, DCH_WW, TRUE, FROM_CHAR_DATE_GREGORIAN}, /* w */ {"w", 1, DCH_W, TRUE, FROM_CHAR_DATE_GREGORIAN}, + {"x", 1, DCH_X, TRUE, FROM_CHAR_DATE_NONE}, /* x */ {"y,yyy", 5, DCH_Y_YYY, TRUE, FROM_CHAR_DATE_GREGORIAN}, /* y */ {"yyyy", 4, DCH_YYYY, TRUE, FROM_CHAR_DATE_GREGORIAN}, {"yyy", 3, DCH_YYY, TRUE, FROM_CHAR_DATE_GREGORIAN}, @@ -1443,7 +1471,7 @@ static const int DCH_index[KeyWord_INDEX_SIZE] = { DCH_CC, DCH_DAY, -1, - DCH_FF, + DCH_FF1, -1, DCH_HH24, DCH_IDDD, @@ -1461,7 +1489,7 @@ static const int DCH_index[KeyWord_INDEX_SIZE] = { DCH_US, -1, DCH_WW, - -1, + DCH_X, DCH_Y_YYY, -1, -1, @@ -1475,7 +1503,7 @@ static const int DCH_index[KeyWord_INDEX_SIZE] = { DCH_cc, DCH_day, -1, - DCH_ff, + DCH_ff1, -1, DCH_hh24, DCH_iddd, @@ -1493,7 +1521,7 @@ static const int DCH_index[KeyWord_INDEX_SIZE] = { DCH_us, -1, DCH_ww, - -1, + DCH_x, DCH_y_yyy, -1, -1, @@ -3251,11 +3279,56 @@ static void DCH_to_char(FormatNode* node, bool is_interval, TmToChar* in, char* s += strlen(s); break; case DCH_MS: /* millisecond */ + case DCH_FF3: #ifdef HAVE_INT64_TIMESTAMP rc = sprintf_s(s, len, "%03d", (int)(in->fsec / INT64CONST(1000))); #else /* No rint() because we can't overflow and we might print US */ rc = sprintf_s(s, len, "%03d", (int)(in->fsec * 1000)); +#endif + securec_check_ss(rc, "\0", "\0"); + if (S_THth(n->suffix)) + str_numth(s, s, S_TH_TYPE(n->suffix)); + s += strlen(s); + break; + case DCH_FF1: /* millisecond */ +#ifdef HAVE_INT64_TIMESTAMP + rc = sprintf_s(s, len, "%01d", (int)(in->fsec / INT64CONST(100000))); +#else + rc = sprintf_s(s, len, "%01d", (int)(in->fsec * 1000000 / 100000)); +#endif + securec_check_ss(rc, "\0", "\0"); + if (S_THth(n->suffix)) + str_numth(s, s, S_TH_TYPE(n->suffix)); + s += strlen(s); + break; + case DCH_FF2: /* millisecond */ +#ifdef HAVE_INT64_TIMESTAMP + rc = sprintf_s(s, len, "%02d", (int)(in->fsec / INT64CONST(10000))); +#else + rc = sprintf_s(s, len, "%02d", (int)(in->fsec * 1000000 / 10000)); +#endif + securec_check_ss(rc, "\0", "\0"); + if (S_THth(n->suffix)) + str_numth(s, s, S_TH_TYPE(n->suffix)); + s += strlen(s); + break; + case DCH_FF4: /* millisecond */ +#ifdef HAVE_INT64_TIMESTAMP + rc = sprintf_s(s, len, "%04d", (int)(in->fsec / INT64CONST(100))); +#else + rc = sprintf_s(s, len, "%04d", (int)(in->fsec * 1000000 / 100)); +#endif + securec_check_ss(rc, "\0", "\0"); + if (S_THth(n->suffix)) + str_numth(s, s, S_TH_TYPE(n->suffix)); + s += strlen(s); + break; + case DCH_FF5: /* millisecond */ +#ifdef HAVE_INT64_TIMESTAMP + rc = sprintf_s(s, len, "%05d", (int)(in->fsec / INT64CONST(10))); +#else + rc = sprintf_s(s, len, "%05d", (int)(in->fsec * 1000000 / 10)); #endif securec_check_ss(rc, "\0", "\0"); if (S_THth(n->suffix)) @@ -3263,6 +3336,7 @@ static void DCH_to_char(FormatNode* node, bool is_interval, TmToChar* in, char* s += strlen(s); break; case DCH_US: /* microsecond */ + case DCH_FF6: #ifdef HAVE_INT64_TIMESTAMP rc = sprintf_s(s, len, "%06d", (int)in->fsec); #else @@ -3644,6 +3718,16 @@ static void DCH_to_char(FormatNode* node, bool is_interval, TmToChar* in, char* str_numth(s, s, S_TH_TYPE(n->suffix)); s += strlen(s); break; + case DCH_X: + /* + * Convert 'X' and 'x' to '.' when "sql_compatibility == A_FORMAT". + */ + if (u_sess->attr.attr_sql.sql_compatibility == A_FORMAT) { + rc = strcpy_s(s, len, "."); + securec_check(rc, "\0", "\0"); + s += strlen(s); + } + break; case DCH_J: rc = sprintf_s(s, len, "%d", date2j(tm->tm_year, tm->tm_mon, tm->tm_mday)); securec_check_ss(rc, "\0", "\0"); @@ -7535,53 +7619,62 @@ static const parse_field parse_field_map[] = { parse_field_d, /* DCH_Day */ parse_field_d, /* DCH_Dy */ parse_field_d_int, /* DCH_D */ - parse_field_usff, /* DCH_FF */ - NULL, /* DCH_FX */ - parse_field_hh24, /* DCH_HH24 */ - parse_field_hh12, /* DCH_HH12 */ - parse_field_hh12, /* DCH_HH */ - parse_field_iddd, /* DCH_IDDD */ + NULL, /* DCH_FF1 */ + NULL, /* DCH_FF2 */ + NULL, /* DCH_FF3 */ + NULL, /* DCH_FF4 */ + NULL, /* DCH_FF5 */ + NULL, /* DCH_FF6 */ /* ----- 20~29 ----- */ + parse_field_usff, /* DCH_FF */ + NULL, /* DCH_FX */ + parse_field_hh24, /* DCH_HH24 */ + parse_field_hh12, /* DCH_HH12 */ + parse_field_hh12, /* DCH_HH */ + parse_field_iddd, /* DCH_IDDD */ parse_field_id, /* DCH_ID */ parse_field_iw, /* DCH_IW */ parse_field_yyyy, /* DCH_IYYY */ parse_field_yyy, /* DCH_IYY */ - parse_field_yy, /* DCH_IY */ - parse_field_y, /* DCH_I */ - parse_field_j, /* DCH_J */ - parse_field_mi, /* DCH_MI */ - parse_field_mm, /* DCH_MM */ - parse_field_mm_full, /* DCH_MONTH */ /* ----- 30~39 ----- */ + parse_field_yy, /* DCH_IY */ + parse_field_y, /* DCH_I */ + parse_field_j, /* DCH_J */ + parse_field_mi, /* DCH_MI */ + parse_field_mm, /* DCH_MM */ + parse_field_mm_full, /* DCH_MONTH */ parse_field_mm_short, /* DCH_MON */ parse_field_ms, /* DCH_MS */ parse_field_mm_full, /* DCH_Month */ parse_field_mm_short, /* DCH_Mon */ + + /* ----- 40~49 ----- */ parse_field_ampm_long, /* DCH_P_M */ parse_field_ampm, /* DCH_PM */ parse_field_q, /* DCH_Q */ parse_field_RM, /* DCH_RM */ parse_field_rrrr, /* DCH_RRRR */ parse_field_rr, /* DCH_RR */ - - /* ----- 40~49 ----- */ - parse_field_sssss, /* DCH_SSSSS */ - parse_field_ss, /* DCH_SS */ - parse_field_syyyy, /* DCH_SYYYY */ - NULL, /* DCH_TZ */ - parse_field_usff, /* DCH_US */ - parse_field_iw, /* DCH_WW */ - parse_field_w, /* DCH_W */ - parse_field_y_yyy, /* DCH_Y_YYY */ - parse_field_yyyy, /* DCH_YYYY */ - parse_field_yyy, /* DCH_YYY */ + parse_field_sssss, /* DCH_SSSSS */ + parse_field_ss, /* DCH_SS */ + parse_field_syyyy, /* DCH_SYYYY */ + NULL, /* DCH_TZ */ /* ----- 50~59 ----- */ + parse_field_usff, /* DCH_US */ + parse_field_iw, /* DCH_WW */ + parse_field_w, /* DCH_W */ + NULL, /* DCH_X */ + parse_field_y_yyy, /* DCH_Y_YYY */ + parse_field_yyyy, /* DCH_YYYY */ + parse_field_yyy, /* DCH_YYY */ parse_field_yy, /* DCH_YY */ parse_field_y, /* DCH_Y */ parse_field_adbc_long, /* DCH_a_d */ + + /* ----- 60~69 ----- */ parse_field_ampm_long, /* DCH_a_m */ parse_field_adbc, /* DCH_ad */ parse_field_ampm, /* DCH_am */ @@ -7589,20 +7682,26 @@ static const parse_field parse_field_map[] = { parse_field_adbc, /* DCH_bc */ parse_field_cc, /* DCH_cc */ parse_field_d, /* DCH_day */ + parse_field_ddd, /* DCH_ddd */ + parse_field_dd, /* DCH_dd */ + parse_field_d, /* DCH_dy */ - /* ----- 60~69 ----- */ - parse_field_ddd, /* DCH_ddd */ - parse_field_dd, /* DCH_dd */ - parse_field_d, /* DCH_dy */ + /* ----- 70~79 ----- */ parse_field_d_int, /* DCH_d */ + NULL, /* DCH_ff1 */ + NULL, /* DCH_ff2 */ + NULL, /* DCH_ff3 */ + NULL, /* DCH_ff4 */ + NULL, /* DCH_ff5 */ + NULL, /* DCH_ff6 */ parse_field_usff, /* DCH_ff */ NULL, /* DCH_fx */ parse_field_hh24, /* DCH_hh24 */ - parse_field_hh12, /* DCH_hh12 */ - parse_field_hh12, /* DCH_hh */ - parse_field_iddd, /* DCH_iddd */ - /* ----- 70~79 ----- */ + /* ----- 80~89 ----- */ + parse_field_hh12, /* DCH_hh12 */ + parse_field_hh12, /* DCH_hh */ + parse_field_iddd, /* DCH_iddd */ parse_field_id, /* DCH_id */ parse_field_iw, /* DCH_iw */ parse_field_yyyy, /* DCH_iyyy */ @@ -7610,11 +7709,11 @@ static const parse_field parse_field_map[] = { parse_field_yy, /* DCH_iy */ parse_field_y, /* DCH_i */ parse_field_j, /* DCH_j */ - parse_field_mi, /* DCH_mi */ - parse_field_mm, /* DCH_mm */ - parse_field_mm_full, /* DCH_month */ - /* ----- 80~89 ----- */ + /* ----- 90~99 ----- */ + parse_field_mi, /* DCH_mi */ + parse_field_mm, /* DCH_mm */ + parse_field_mm_full, /* DCH_month */ parse_field_mm_short, /* DCH_mon */ parse_field_ms, /* DCH_ms */ parse_field_ampm_long, /* DCH_p_m */ @@ -7622,24 +7721,26 @@ static const parse_field parse_field_map[] = { parse_field_q, /* DCH_q */ parse_field_rm, /* DCH_rm */ parse_field_rrrr, /* DCH_rrrr */ + + /* ---- 100~110 ---- */ parse_field_rr, /* DCH_rr */ parse_field_sssss, /* DCH_sssss */ parse_field_ss, /* DCH_ss */ + parse_field_syyyy, /* DCH_syyyy */ + NULL, /* DCH_tz */ + parse_field_usff, /* DCH_us */ + parse_field_iw, /* DCH_ww */ + parse_field_w, /* DCH_w */ + NULL, /* DCH_x */ + parse_field_y_yyy, /* DCH_y_yyy */ - /* ----- 90~99 ----- */ - parse_field_syyyy, /* DCH_syyyy */ - NULL, /* DCH_tz */ - parse_field_usff, /* DCH_us */ - parse_field_iw, /* DCH_ww */ - parse_field_w, /* DCH_w */ - parse_field_y_yyy, /* DCH_y_yyy */ + /* ----- 110~ ----- */ parse_field_yyyy, /* DCH_yyyy */ parse_field_yyy, /* DCH_yyy */ parse_field_yy, /* DCH_yy */ parse_field_y, /* DCH_y */ - /* ----- 100~ ----- */ - NULL /* _DCH_last_ */ + NULL /* _DCH_last_ */ }; /* diff --git a/src/common/backend/utils/adt/genfile.cpp b/src/common/backend/utils/adt/genfile.cpp index 295850a60..a96365143 100644 --- a/src/common/backend/utils/adt/genfile.cpp +++ b/src/common/backend/utils/adt/genfile.cpp @@ -148,7 +148,7 @@ recheck: errmsg("could not read file \"%s\": %m", filename))); } - if (g_instance.attr.attr_storage.enableIncrementalCheckpoint && isNeedCheck && need_check) { + if (ENABLE_INCRE_CKPT && isNeedCheck && need_check) { uint32 check_loc = 0; BlockNumber blkno = 0; uint16 checksum = 0; diff --git a/src/common/backend/utils/adt/geo_ops.cpp b/src/common/backend/utils/adt/geo_ops.cpp index 4bbe9f1b0..79e11394c 100644 --- a/src/common/backend/utils/adt/geo_ops.cpp +++ b/src/common/backend/utils/adt/geo_ops.cpp @@ -158,7 +158,7 @@ static int single_encode(float8 x, char* str) static int pair_decode(char* str, float8* x, float8* y, char** s) { int has_delim; - char* cp = NULL; + bool hasError = FALSE; if (!PointerIsValid(str)) return FALSE; @@ -172,33 +172,36 @@ static int pair_decode(char* str, float8* x, float8* y, char** s) while (isspace((unsigned char)*str)) { str++; } - *x = strtod(str, &cp); - if (cp <= str) + + *x = float8in_internal(str, &str, &hasError); + + if (hasError) { return FALSE; - while (isspace((unsigned char)*cp)) { - cp++; } - if (*cp++ != DELIM) + + if (*str++ != DELIM) return FALSE; - while (isspace((unsigned char)*cp)) { - cp++; - } - *y = strtod(cp, &str); - if (str <= cp) + + *y = float8in_internal(str, &str, &hasError); + + if (hasError) { return FALSE; - while (isspace((unsigned char)*str)) { - str++; } - if (has_delim) { - if (*str != RDELIM) + + if (has_delim) + { + if (*str++ != RDELIM) return FALSE; - str++; while (isspace((unsigned char)*str)) { str++; } } - if (s != NULL) + + if (s) { *s = str; + } else if (*str != '\0') { + return FALSE; + } return TRUE; } diff --git a/src/common/backend/utils/adt/int.cpp b/src/common/backend/utils/adt/int.cpp index 006e8809b..10eb1be59 100644 --- a/src/common/backend/utils/adt/int.cpp +++ b/src/common/backend/utils/adt/int.cpp @@ -5,6 +5,7 @@ * * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -38,6 +39,7 @@ #include "libpq/pqformat.h" #include "utils/array.h" #include "utils/builtins.h" +#include "utils/guc_sql.h" #define SAMESIGN(a, b) (((a) < 0) == ((b) < 0)) @@ -68,10 +70,23 @@ Datum int2in(PG_FUNCTION_ARGS) */ Datum int2out(PG_FUNCTION_ARGS) { + char* result = NULL; int16 arg1 = PG_GETARG_INT16(0); - char* result = (char*)palloc(7); /* sign, 5 digits, '\0' */ - pg_itoa(arg1, result); + if (u_sess->attr.attr_sql.for_print_tuple) { + double var = (double)arg1; + if (strcmp(u_sess->attr.attr_common.pset_num_format, "")) { + result = apply_num_format(var); + } else if (u_sess->attr.attr_common.pset_num_width > 0) { + result = apply_num_width(var); + } + } + + if (result == NULL) { + result = (char*)palloc(7); /* sign, 5 digits, '\0' */ + pg_itoa(arg1, result); + } + PG_RETURN_CSTRING(result); } @@ -303,10 +318,23 @@ Datum int4in(PG_FUNCTION_ARGS) */ Datum int4out(PG_FUNCTION_ARGS) { + char* result = NULL; int32 arg1 = PG_GETARG_INT32(0); - char* result = (char*)palloc(12); /* sign, 10 digits, '\0' */ - pg_ltoa(arg1, result); + if (u_sess->attr.attr_sql.for_print_tuple) { + double var = (double)arg1; + if (strcmp(u_sess->attr.attr_common.pset_num_format, "")) { + result = apply_num_format(var); + } else if (u_sess->attr.attr_common.pset_num_width > 0) { + result = apply_num_width(var); + } + } + + if (result == NULL) { + result = (char*)palloc(12); /* sign, 10 digits, '\0' */ + pg_ltoa(arg1, result); + } + PG_RETURN_CSTRING(result); } @@ -1224,10 +1252,23 @@ Datum int1in(PG_FUNCTION_ARGS) // int1out - converts uint8 to "num" Datum int1out(PG_FUNCTION_ARGS) { + char* result = NULL; uint8 arg1 = PG_GETARG_UINT8(0); - char* result = (char*)palloc(5); /* sign, 3 digits, '\0' */ - pg_ctoa(arg1, result); + if (u_sess->attr.attr_sql.for_print_tuple) { + double var = (double)arg1; + if (strcmp(u_sess->attr.attr_common.pset_num_format, "")) { + result = apply_num_format(var); + } else if (u_sess->attr.attr_common.pset_num_width > 0) { + result = apply_num_width(var); + } + } + + if (result == NULL) { + result = (char*)palloc(5); /* sign, 3 digits, '\0' */ + pg_ctoa(arg1, result); + } + PG_RETURN_CSTRING(result); } diff --git a/src/common/backend/utils/adt/int16.cpp b/src/common/backend/utils/adt/int16.cpp new file mode 100644 index 000000000..3b07fe2e5 --- /dev/null +++ b/src/common/backend/utils/adt/int16.cpp @@ -0,0 +1,563 @@ +/* + * Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors + * + * openGauss is licensed under Mulan PSL v2. + * You can use this software according to the terms and conditions of the Mulan PSL v2. + * You may obtain a copy of Mulan PSL v2 at: + * + * http://license.coscl.org.cn/MulanPSL2 + * + * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, + * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, + * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + * See the Mulan PSL v2 for more details. + * ------------------------------------------------------------------------- + * + * int16.cpp + * Internal 128-bit integer operations. + * + * Portions Copyright (c) 2018, Huawei Tech. Co., Ltd. + * Portions Copyright (c) 2021, openGauss Contributors + * + * IDENTIFICATION + * src/common/backend/utils/adt/int16.cpp + * + * ------------------------------------------------------------------------- + */ + +#include "postgres.h" +#include "knl/knl_variable.h" + +#include +#include +#include + +#include "common/int.h" +#include "funcapi.h" +#include "libpq/pqformat.h" +#include "utils/builtins.h" +#include "utils/int16.h" +#include "utils/int8.h" +#include "utils/numeric.h" + +const int MAXINT16LEN = 45; + +typedef struct { + const char* str; + unsigned char ptr; + bool errorOK; + int128 tmp; +} CheckContext; + +static inline bool check_one_digit(const CheckContext* cxt, int128* result, bool* ret) +{ + /* require at least one digit */ + if (unlikely(!isdigit(cxt->ptr))) { + if (cxt->errorOK) { + *ret = false; + return true; + } else if (DB_IS_CMPT(A_FORMAT | PG_FORMAT)) { + ereport(ERROR, + (errmodule(MOD_FUNCTION), errcode(ERRCODE_INVALID_TEXT_REPRESENTATION), + errmsg("invalid input syntax for type %s: \"%s\"", "int16", cxt->str), + errdetail("cannot convert input text to int16"), + errcause("invalid input."), + erraction("modify input text to be valid integer format."))); + } else if (u_sess->attr.attr_sql.sql_compatibility == B_FORMAT) { + *result = cxt->tmp; + *ret = true; + return true; + } + } + return false; +} + +static inline bool check_trailing_symbol(unsigned char ptr) +{ + return ptr != '\0' && isspace(ptr); +} + +bool scanint16(const char* str, bool errorOK, int128* result) +{ + const char* ptr = str; + int128 tmp = 0; + bool neg = false; + + /* + * Do our own scan, rather than relying on sscanf which might be broken + * for long long. + * + * As INT64_MIN can't be stored as a positive 64 bit integer, accumulate + * value as a negative number. + */ + + /* skip leading spaces */ + while (*ptr && isspace((unsigned char)*ptr)) { + ptr++; + } + + /* handle sign */ + if (*ptr == '-') { + ptr++; + neg = true; + } else if (*ptr == '+') { + ptr++; + } + bool ret = false; + CheckContext cxt = {str, (unsigned char)*ptr, errorOK, tmp}; + if (check_one_digit(&cxt, result, &ret)) { + return ret; + } + const int base = 10; + + /* process digits */ + while (*ptr && isdigit((unsigned char)*ptr)) { + int8 digit = (*ptr++ - '0'); + if (unlikely(pg_mul_s128_overflow(tmp, base, &tmp)) || unlikely(pg_sub_s128_overflow(tmp, digit, &tmp))) { + if (errorOK) { + return false; + } else { + ereport(ERROR, + (errmodule(MOD_FUNCTION), errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE), + errmsg("value \"%s\" is out of range for type %s", str, "int16"), + errdetail("text exceeds the length of int16"), + errcause("invalid input."), + erraction("use numeric for large integer value."))); + } + } + } + + /* allow trailing whitespace, but not other trailing chars */ + while (check_trailing_symbol((unsigned char)*ptr)) { + ptr++; + } + + if (unlikely(*ptr != '\0')) { + if (errorOK) { + return false; + } else { + /* Empty string will be treated as NULL if sql_compatibility == A_FORMAT, + Other wise whitespace will be convert to 0 */ + ereport(ERROR, + (errmodule(MOD_FUNCTION), errcode(ERRCODE_INVALID_TEXT_REPRESENTATION), + errmsg("invalid input syntax for type %s: \"%s\"", "int16", str), + errdetail("text contain invalid character"), + errcause("invalid input."), + erraction("check the validity of input."))); + } + } + + if (!neg) { + /* could fail if input is most negative number */ + if (unlikely(tmp == PG_INT128_MIN)) { + if (errorOK) { + return false; + } else { + ereport(ERROR, + (errmodule(MOD_FUNCTION), errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE), + errmsg("value \"%s\" is out of range for type %s", str, "int16"), + errdetail("text exceeds the length of int16"), + errcause("invalid input."), + erraction("use numeric for large integer value."))); + } + } + tmp = -tmp; + } + + *result = tmp; + return true; +} + +/* int16in() + */ +Datum int16in(PG_FUNCTION_ARGS) +{ + char* str = PG_GETARG_CSTRING(0); + int128 result; + + (void)scanint16(str, false, &result); + PG_RETURN_INT128(result); +} + +/* int16out() + */ +Datum int16out(PG_FUNCTION_ARGS) +{ + int128 val = PG_GETARG_INT128(0); + char buf[MAXINT16LEN + 1]; + char* result = NULL; + + pg_i128toa(val, buf, MAXINT16LEN + 1); + result = pstrdup(buf); + PG_RETURN_CSTRING(result); +} + +/* int16recv() + */ +Datum int16recv(PG_FUNCTION_ARGS) +{ + StringInfo buf = (StringInfo)PG_GETARG_POINTER(0); + + PG_RETURN_INT128(pq_getmsgint128(buf)); +} + +/* int16send() + */ +Datum int16send(PG_FUNCTION_ARGS) +{ + int128 arg1 = PG_GETARG_INT128(0); + StringInfoData buf; + + pq_begintypsend(&buf); + pq_sendint128(&buf, arg1); + PG_RETURN_BYTEA_P(pq_endtypsend(&buf)); +} + +Datum int1_16(PG_FUNCTION_ARGS) +{ + uint1 arg = PG_GETARG_UINT8(0); + PG_RETURN_INT128((int128)arg); +} + +Datum int16_1(PG_FUNCTION_ARGS) +{ + int128 arg = PG_GETARG_INT128(0); + uint8 result; + + result = (uint8)arg; + + /* Test for overflow by reverse-conversion. */ + if ((int128)result != arg) { + ereport(ERROR, + (errmodule(MOD_FUNCTION), errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE), + errmsg("tinyint out of range"), + errdetail("cannot cast value too large for tinyint"), + errcause("invalid cast."), + erraction("cast overflow."))); + } + + PG_RETURN_INT16(result); +} + + +Datum int2_16(PG_FUNCTION_ARGS) +{ + int16 arg = PG_GETARG_INT16(0); + PG_RETURN_INT128((int128)arg); +} + +Datum int16_2(PG_FUNCTION_ARGS) +{ + int128 arg = PG_GETARG_INT128(0); + int16 result; + + result = (int16)arg; + + /* Test for overflow by reverse-conversion. */ + if ((int128)result != arg) { + ereport(ERROR, + (errmodule(MOD_FUNCTION), errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE), + errmsg("smallint out of range"), + errdetail("cannot cast value too large for smallint"), + errcause("invalid cast."), + erraction("cast overflow."))); + } + + PG_RETURN_INT16(result); +} + +Datum int4_16(PG_FUNCTION_ARGS) +{ + int32 arg = PG_GETARG_INT32(0); + PG_RETURN_INT128((int128)arg); +} + +Datum int16_4(PG_FUNCTION_ARGS) +{ + int128 arg = PG_GETARG_INT128(0); + int32 result; + + result = (int32)arg; + + /* Test for overflow by reverse-conversion. */ + if ((int128)result != arg) { + ereport(ERROR, + (errmodule(MOD_FUNCTION), errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE), + errmsg("integer out of range"), + errdetail("cannot cast value too large for integer"), + errcause("invalid cast."), + erraction("cast overflow."))); + } + + PG_RETURN_INT32(result); +} + +Datum int8_16(PG_FUNCTION_ARGS) +{ + int64 arg = PG_GETARG_INT64(0); + PG_RETURN_INT128((int128)arg); +} + +Datum int16_8(PG_FUNCTION_ARGS) +{ + int128 arg = PG_GETARG_INT128(0); + int64 result; + + result = (int64)arg; + + /* Test for overflow by reverse-conversion. */ + if ((int128)result != arg) { + ereport(ERROR, + (errmodule(MOD_FUNCTION), errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE), + errmsg("bigint out of range"), + errdetail("cannot cast value too large for bigint"), + errcause("invalid cast."), + erraction("cast overflow."))); + } + + PG_RETURN_INT64(result); +} + +Datum i16tod(PG_FUNCTION_ARGS) +{ + int128 arg = PG_GETARG_INT128(0); + float8 result; + + result = arg; + + PG_RETURN_FLOAT8(result); +} + +Datum dtoi16(PG_FUNCTION_ARGS) +{ + float8 num = PG_GETARG_FLOAT8(0); + + /* + * Get rid of any fractional part in the input. This is so we don't fail + * on just-out-of-range values that would round into range. Note + * assumption that rint() will pass through a NaN or Inf unchanged. + */ + num = rint(num); + /* + * Range check. We must be careful here that the boundary values are + * expressed exactly in the float domain. We expect PG_INT128_MIN to be an + * exact power of 2, so it will be represented exactly; but PG_INT128_MAX + * isn't, and might get rounded off, so avoid using it. + */ + if (num < (float8)PG_INT128_MIN || num >= -((float8)PG_INT128_MIN) || isnan(num)) { + ereport(ERROR, + (errmodule(MOD_FUNCTION), errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE), + errmsg("int16 out of range"), + errdetail("cannot cast value too large for int16"), + errcause("invalid cast."), + erraction("cast overflow."))); + } + + PG_RETURN_INT128((int128)num); +} + +Datum i16tof(PG_FUNCTION_ARGS) +{ + int128 arg = PG_GETARG_INT128(0); + float4 result; + + result = arg; + + PG_RETURN_FLOAT4(result); +} + +Datum ftoi16(PG_FUNCTION_ARGS) +{ + float4 num = PG_GETARG_FLOAT4(0); + + /* + * Get rid of any fractional part in the input. This is so we don't fail + * on just-out-of-range values that would round into range. Note + * assumption that rint() will pass through a NaN or Inf unchanged. + */ + num = rint(num); + /* + * Range check. We must be careful here that the boundary values are + * expressed exactly in the float domain. We expect PG_INT128_MIN to be an + * exact power of 2, so it will be represented exactly; but PG_INT128_MIN + * isn't, and might get rounded off, so avoid using it. + */ + if (num < (float4)PG_INT128_MIN || num >= -((float4)PG_INT128_MIN) || isnan(num)) { + ereport(ERROR, + (errmodule(MOD_FUNCTION), errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE), + errmsg("int16 out of range"), + errdetail("cannot cast value too large for int16"), + errcause("invalid cast."), + erraction("cast overflow."))); + } + + PG_RETURN_INT128((int128)num); +} + +Datum i16tooid(PG_FUNCTION_ARGS) +{ + int128 arg = PG_GETARG_INT128(0); + Oid result; + + result = (Oid)arg; + + /* Test for overflow by reverse-conversion. */ + if ((int128)result != arg) { + ereport(ERROR, + (errmodule(MOD_FUNCTION), errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE), + errmsg("OID out of range"), + errdetail("cannot cast value too large for OID"), + errcause("invalid cast."), + erraction("cast overflow."))); + } + + PG_RETURN_OID(result); +} + +Datum oidtoi16(PG_FUNCTION_ARGS) +{ + Oid arg = PG_GETARG_OID(0); + + PG_RETURN_INT128((int128)arg); +} + +Datum int16_bool(PG_FUNCTION_ARGS) +{ + if (PG_GETARG_INT128(0) == 0) + PG_RETURN_BOOL(false); + else + PG_RETURN_BOOL(true); +} + +Datum bool_int16(PG_FUNCTION_ARGS) +{ + if (PG_GETARG_BOOL(0) == false) + PG_RETURN_INT128(0); + else + PG_RETURN_INT128(1); +} + +Datum int16eq(PG_FUNCTION_ARGS) +{ + int128 val1 = PG_GETARG_INT128(0); + int128 val2 = PG_GETARG_INT128(1); + + PG_RETURN_BOOL(val1 == val2); +} + +Datum int16ne(PG_FUNCTION_ARGS) +{ + int128 val1 = PG_GETARG_INT128(0); + int128 val2 = PG_GETARG_INT128(1); + + PG_RETURN_BOOL(val1 != val2); +} + +Datum int16lt(PG_FUNCTION_ARGS) +{ + int128 val1 = PG_GETARG_INT128(0); + int128 val2 = PG_GETARG_INT128(1); + + PG_RETURN_BOOL(val1 < val2); +} + +Datum int16gt(PG_FUNCTION_ARGS) +{ + int128 val1 = PG_GETARG_INT128(0); + int128 val2 = PG_GETARG_INT128(1); + + PG_RETURN_BOOL(val1 > val2); +} + +Datum int16le(PG_FUNCTION_ARGS) +{ + int128 val1 = PG_GETARG_INT128(0); + int128 val2 = PG_GETARG_INT128(1); + + PG_RETURN_BOOL(val1 <= val2); +} + +Datum int16ge(PG_FUNCTION_ARGS) +{ + int128 val1 = PG_GETARG_INT128(0); + int128 val2 = PG_GETARG_INT128(1); + + PG_RETURN_BOOL(val1 >= val2); +} + +Datum int16pl(PG_FUNCTION_ARGS) +{ + int128 arg1 = PG_GETARG_INT128(0); + int128 arg2 = PG_GETARG_INT128(1); + int128 result; + + if (unlikely(pg_add_s128_overflow(arg1, arg2, &result))) { + ereport(ERROR, + (errmodule(MOD_FUNCTION), errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE), + errmsg("int16 out of range"), + errdetail("result is too large for int16"), + errcause("invalid expression."), + erraction("result overflow."))); + } + PG_RETURN_INT128(result); +} + +Datum int16mi(PG_FUNCTION_ARGS) +{ + int128 arg1 = PG_GETARG_INT128(0); + int128 arg2 = PG_GETARG_INT128(1); + int128 result; + + if (unlikely(pg_sub_s128_overflow(arg1, arg2, &result))) { + ereport(ERROR, + (errmodule(MOD_FUNCTION), errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE), + errmsg("int16 out of range"), + errdetail("result is too large for int16"), + errcause("invalid expression."), + erraction("result overflow."))); + } + PG_RETURN_INT128(result); +} + +Datum int16mul(PG_FUNCTION_ARGS) +{ + int128 arg1 = PG_GETARG_INT128(0); + int128 arg2 = PG_GETARG_INT128(1); + int128 result; + + if (unlikely(pg_mul_s128_overflow(arg1, arg2, &result))) { + ereport(ERROR, + (errmodule(MOD_FUNCTION), errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE), + errmsg("int16 out of range"), + errdetail("result is too large for int16"), + errcause("invalid expression."), + erraction("result overflow."))); + } + PG_RETURN_INT128(result); +} + +Datum int16div(PG_FUNCTION_ARGS) +{ + int128 arg1 = PG_GETARG_INT128(0); + int128 arg2 = PG_GETARG_INT128(1); + float8 result; + + if (arg2 == 0) { + ereport(ERROR, + (errmodule(MOD_FUNCTION), errcode(ERRCODE_DIVISION_BY_ZERO), + errmsg("division by zero"), + errdetail("N/A"), + errcause("invalid expression."), + erraction("division by zero."))); + } + + if (arg1 == 0) { + PG_RETURN_FLOAT8(0); + } + + /* No overflow is possible */ + result = (arg1 * 1.0) / (arg2 * 1.0); + + PG_RETURN_FLOAT8(result); +} diff --git a/src/common/backend/utils/adt/int8.cpp b/src/common/backend/utils/adt/int8.cpp index bcd622d38..a05ed0653 100644 --- a/src/common/backend/utils/adt/int8.cpp +++ b/src/common/backend/utils/adt/int8.cpp @@ -5,6 +5,7 @@ * * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * IDENTIFICATION * src/backend/utils/adt/int8.c @@ -23,6 +24,7 @@ #include "libpq/pqformat.h" #include "utils/int8.h" #include "utils/builtins.h" +#include "utils/guc_sql.h" #define MAXINT8LEN 25 @@ -152,11 +154,23 @@ Datum int8in(PG_FUNCTION_ARGS) Datum int8out(PG_FUNCTION_ARGS) { int64 val = PG_GETARG_INT64(0); - char buf[MAXINT8LEN + 1]; char* result = NULL; - pg_lltoa(val, buf); - result = pstrdup(buf); + if (u_sess->attr.attr_sql.for_print_tuple) { + double var = (double)val; + if (strcmp(u_sess->attr.attr_common.pset_num_format, "")) { + result = apply_num_format(var); + } else if (u_sess->attr.attr_common.pset_num_width > 0) { + result = apply_num_width(var); + } + } + + if (result == NULL) { + char buf[MAXINT8LEN + 1]; + pg_lltoa(val, buf); + result = pstrdup(buf); + } + PG_RETURN_CSTRING(result); } diff --git a/src/common/backend/utils/adt/json.cpp b/src/common/backend/utils/adt/json.cpp index 9d3faa78c..b533ef10a 100644 --- a/src/common/backend/utils/adt/json.cpp +++ b/src/common/backend/utils/adt/json.cpp @@ -63,7 +63,7 @@ static void parse_array(JsonLexContext *lex, JsonSemAction *sem); static void report_parse_error(JsonParseContext ctx, JsonLexContext *lex); static void report_invalid_token(JsonLexContext *lex); static int report_json_context(JsonLexContext *lex); -static char *extract_mb_char(char *s); +static char *extract_mb_char(const char *s); static void composite_to_json(Datum composite, StringInfo result, bool use_line_feeds); static void array_dim_to_json(StringInfo result, int dim, int ndims, int *dims, Datum *vals, bool *nulls, int *valcount, TYPCATEGORY tcategory, Oid typoutputfunc, bool use_line_feeds); @@ -327,7 +327,7 @@ static void parse_object_field(JsonLexContext *lex, JsonSemAction *sem) char *fname = NULL; /* keep compiler quiet */ json_ofield_action ostart = sem->object_field_start; json_ofield_action oend = sem->object_field_end; - bool isnull; + bool isnull = false; char **fnameaddr = NULL; JsonTokenType tok; @@ -686,7 +686,7 @@ static inline void json_lex_string(JsonLexContext *lex) errdetail("Unicode high surrogate must not follow a high surrogate."), report_json_context(lex))); } - hi_surrogate = (ch & 0x3ff) << 10; + hi_surrogate = ((uint32)ch & 0x3ff) << 10; continue; } else if (ch >= 0xdc00 && ch <= 0xdfff) { if (hi_surrogate == -1) { @@ -696,7 +696,7 @@ static inline void json_lex_string(JsonLexContext *lex) errdetail("Unicode low surrogate must follow a high surrogate."), report_json_context(lex))); } - ch = 0x10000 + hi_surrogate + (ch & 0x3ff); + ch = 0x10000 + hi_surrogate + ((uint32)ch & 0x3ff); hi_surrogate = -1; } if (hi_surrogate != -1) { @@ -1122,7 +1122,7 @@ static int report_json_context(JsonLexContext *lex) /* * Extract a single, possibly multi-byte char from the input string. */ -static char *extract_mb_char(char *s) +static char *extract_mb_char(const char *s) { char *res = NULL; int len; @@ -1148,7 +1148,7 @@ static void datum_to_json(Datum val, bool is_null, StringInfo result, { char *outputstr = NULL; text *jsontext = NULL; - bool numeric_error; + bool numeric_error = false; JsonLexContext dummy_lex; check_stack_depth(); @@ -1268,7 +1268,7 @@ static void array_to_json_internal(Datum array, StringInfo result, bool use_line Datum *elements = NULL; bool *nulls = NULL; int16 typlen; - bool typbyval; + bool typbyval = false; char typalign, typdelim; Oid typioparam; Oid typoutputfunc; @@ -1353,11 +1353,11 @@ static void composite_to_json(Datum composite, StringInfo result, bool use_line_ for (i = 0; i < tupdesc->natts; i++) { Datum val; - bool isnull; + bool isnull = false; char *attname = NULL; TYPCATEGORY tcategory; Oid typoutput; - bool typisvarlena; + bool typisvarlena = false; Oid castfunc = InvalidOid; if (tupdesc->attrs[i]->attisdropped) { @@ -1414,7 +1414,7 @@ static void add_json(Datum val, bool is_null, StringInfo result, Oid val_type, b { TYPCATEGORY tcategory; Oid typoutput; - bool typisvarlena; + bool typisvarlena = false; Oid castfunc = InvalidOid; if (val_type == InvalidOid) { @@ -1527,7 +1527,7 @@ Datum to_json(PG_FUNCTION_ARGS) StringInfo result; TYPCATEGORY tcategory; Oid typoutput; - bool typisvarlena; + bool typisvarlena = false; Oid castfunc = InvalidOid; if (val_type == InvalidOid) { @@ -1578,7 +1578,7 @@ Datum json_agg_transfn(PG_FUNCTION_ARGS) Datum val; TYPCATEGORY tcategory; Oid typoutput; - bool typisvarlena; + bool typisvarlena = false; Oid castfunc = InvalidOid; if (val_type == InvalidOid) { diff --git a/src/common/backend/utils/adt/jsonb_util.cpp b/src/common/backend/utils/adt/jsonb_util.cpp index 042a6103a..b0a99691f 100644 --- a/src/common/backend/utils/adt/jsonb_util.cpp +++ b/src/common/backend/utils/adt/jsonb_util.cpp @@ -768,7 +768,7 @@ bool JsonbDeepContains(JsonbIterator **val, JsonbIterator **mContained) Assert(rcont == WJB_BEGIN_OBJECT || rcont == WJB_BEGIN_ARRAY); return false; } else if (rcont == WJB_BEGIN_OBJECT) { - JsonbValue *lhsVal; /* lhsVal is from pair in lhs object */ + JsonbValue *lhsVal = NULL; /* lhsVal is from pair in lhs object */ Assert(vcontained.type == jbvObject); @@ -1035,12 +1035,12 @@ void JsonbHashScalarValue(const JsonbValue * scalarVal, uint32 * hash) return; case jbvString: tmp = hash_any((unsigned char *) scalarVal->string.val, scalarVal->string.len); - *hash ^= tmp; + *hash ^= (uint32)tmp; return; case jbvNumeric: /* Must be unaffected by trailing zeroes */ tmp = DatumGetInt32(DirectFunctionCall1(hash_numeric, NumericGetDatum(scalarVal->numeric))); - *hash ^= tmp; + *hash ^= (uint32)tmp; return; case jbvBool: *hash ^= scalarVal->boolean? 0x02:0x04; @@ -1230,7 +1230,7 @@ static void putJsonbValueConversion(convertState *cstate, JsonbValue *val, uint3 cstate->contPtr->i = 0; if (val->type == jbvArray) { - *cstate->contPtr->header = val->array.nElems | JB_FARRAY; + *cstate->contPtr->header = (uint32)val->array.nElems | JB_FARRAY; cstate->ptr += sizeof(JEntry) * val->array.nElems; if (val->array.rawScalar) { @@ -1239,7 +1239,7 @@ static void putJsonbValueConversion(convertState *cstate, JsonbValue *val, uint3 *cstate->contPtr->header |= JB_FSCALAR; } } else { - *cstate->contPtr->header = val->object.nPairs | JB_FOBJECT; + *cstate->contPtr->header = (uint32)val->object.nPairs | JB_FOBJECT; cstate->ptr += sizeof(JEntry) * val->object.nPairs * 2; } } else if (flags & WJB_ELEM) { @@ -1331,10 +1331,10 @@ static void putScalarConversion(convertState *cstate, JsonbValue *scalarVal, uin cstate->ptr += scalarVal->string.len; if (i == 0) { - cstate->contPtr->meta[0].header |= scalarVal->string.len; + cstate->contPtr->meta[0].header |= (uint32)scalarVal->string.len; } else { cstate->contPtr->meta[i].header |= - (cstate->contPtr->meta[i - 1].header & JENTRY_POSMASK) + scalarVal->string.len; + (uint32)((cstate->contPtr->meta[i - 1].header & JENTRY_POSMASK) + scalarVal->string.len); } break; case jbvNumeric: @@ -1347,10 +1347,10 @@ static void putScalarConversion(convertState *cstate, JsonbValue *scalarVal, uin cstate->contPtr->meta[i].header |= JENTRY_ISNUMERIC; if (i == 0) { - cstate->contPtr->meta[0].header |= padlen + numlen; + cstate->contPtr->meta[0].header |= (uint32)(padlen + numlen); } else { cstate->contPtr->meta[i].header |= - (cstate->contPtr->meta[i - 1].header & JENTRY_POSMASK) + padlen + numlen; + (uint32)((cstate->contPtr->meta[i - 1].header & JENTRY_POSMASK) + padlen + numlen); } break; case jbvBool: diff --git a/src/common/backend/utils/adt/jsonfuncs.cpp b/src/common/backend/utils/adt/jsonfuncs.cpp index 925d0c4bd..77f88ace6 100644 --- a/src/common/backend/utils/adt/jsonfuncs.cpp +++ b/src/common/backend/utils/adt/jsonfuncs.cpp @@ -1261,7 +1261,7 @@ static inline Datum each_worker_jsonb(FunctionCallInfo fcinfo, bool as_text) rsi = (ReturnSetInfo *) fcinfo->resultinfo; if (!rsi || !IsA(rsi, ReturnSetInfo) || - (rsi->allowedModes & SFRM_Materialize) == 0 || + ((uint32)rsi->allowedModes & SFRM_Materialize) == 0 || rsi->expectedDesc == NULL) { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), @@ -1282,8 +1282,8 @@ static inline Datum each_worker_jsonb(FunctionCallInfo fcinfo, bool as_text) ret_tdesc = CreateTupleDescCopy(tupdesc); BlessTupleDesc(ret_tdesc); - tuple_store = - tuplestore_begin_heap(rsi->allowedModes & SFRM_Materialize_Random, false, u_sess->attr.attr_memory.work_mem); + tuple_store = tuplestore_begin_heap((uint32)rsi->allowedModes & SFRM_Materialize_Random, + false, u_sess->attr.attr_memory.work_mem); MemoryContextSwitchTo(old_cxt); @@ -1369,7 +1369,7 @@ static inline Datum each_worker(FunctionCallInfo fcinfo, bool as_text) rsi = (ReturnSetInfo *) fcinfo->resultinfo; if (!rsi || !IsA(rsi, ReturnSetInfo) || - (rsi->allowedModes & SFRM_Materialize) == 0 || + ((uint32)rsi->allowedModes & SFRM_Materialize) == 0 || rsi->expectedDesc == NULL) { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), @@ -1379,13 +1379,21 @@ static inline Datum each_worker(FunctionCallInfo fcinfo, bool as_text) rsi->returnMode = SFRM_Materialize; (void) get_call_result_type(fcinfo, NULL, &tupdesc); + if (tupdesc == NULL) { + ereport(ERROR, + (errmodule(MOD_OPT), errcode(ERRCODE_UNEXPECTED_NULL_VALUE), + errmsg("tupdesc should not be NULL value"), + errdetail("N/A"), + errcause("An error occurred when obtaining the value of tupdesc."), + erraction("Contact Huawei Engineer."))); + } /* make these in a sufficiently long-lived memory context */ old_cxt = MemoryContextSwitchTo(rsi->econtext->ecxt_per_query_memory); state->ret_tdesc = CreateTupleDescCopy(tupdesc); BlessTupleDesc(state->ret_tdesc); - state->tuple_store = - tuplestore_begin_heap(rsi->allowedModes & SFRM_Materialize_Random, false, u_sess->attr.attr_memory.work_mem); + state->tuple_store = tuplestore_begin_heap((uint32)rsi->allowedModes & SFRM_Materialize_Random, + false, u_sess->attr.attr_memory.work_mem); MemoryContextSwitchTo(old_cxt); sem->semstate = (void *) state; @@ -1638,7 +1646,7 @@ static inline Datum elements_worker(FunctionCallInfo fcinfo, bool as_text) rsi = (ReturnSetInfo *) fcinfo->resultinfo; if (!rsi || !IsA(rsi, ReturnSetInfo) || - (rsi->allowedModes & SFRM_Materialize) == 0 || + ((uint32)rsi->allowedModes & SFRM_Materialize) == 0 || rsi->expectedDesc == NULL) { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), @@ -1655,7 +1663,7 @@ static inline Datum elements_worker(FunctionCallInfo fcinfo, bool as_text) state->ret_tdesc = CreateTupleDescCopy(tupdesc); BlessTupleDesc(state->ret_tdesc); state->tuple_store = - tuplestore_begin_heap(rsi->allowedModes & SFRM_Materialize_Random, + tuplestore_begin_heap((uint32)rsi->allowedModes & SFRM_Materialize_Random, false, u_sess->attr.attr_memory.work_mem); MemoryContextSwitchTo(old_cxt); @@ -1799,7 +1807,7 @@ static inline Datum populate_record_worker(FunctionCallInfo fcinfo, bool have_re Oid jtype = get_fn_expr_argtype(fcinfo->flinfo, have_record_arg ? 1 : 0); text *json = NULL; Jsonb *jb = NULL; - bool use_json_as_text; + bool use_json_as_text = false; HTAB *json_hash = NULL; HeapTupleHeader rec = NULL; Oid tupType = InvalidOid; @@ -2091,7 +2099,7 @@ static void hash_object_field_end(void *state, char *fname, bool isnull) { JHashState *_state = (JHashState *) state; JsonHashEntry *hashentry = NULL; - bool found; + bool found = false; char name[NAMEDATALEN]; /* @@ -2289,7 +2297,7 @@ static inline Datum populate_recordset_worker(FunctionCallInfo fcinfo, bool have { Oid argtype; Oid jtype = get_fn_expr_argtype(fcinfo->flinfo, have_record_arg ? 1 : 0); - bool use_json_as_text; + bool use_json_as_text = false; ReturnSetInfo *rsi = NULL; MemoryContext old_cxt; Oid tupType; @@ -2315,7 +2323,7 @@ static inline Datum populate_recordset_worker(FunctionCallInfo fcinfo, bool have rsi = (ReturnSetInfo *) fcinfo->resultinfo; if (!rsi || !IsA(rsi, ReturnSetInfo) || - (rsi->allowedModes & SFRM_Materialize) == 0 || + ((uint32)rsi->allowedModes & SFRM_Materialize) == 0 || rsi->expectedDesc == NULL) { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), @@ -2381,7 +2389,7 @@ static inline Datum populate_recordset_worker(FunctionCallInfo fcinfo, bool have old_cxt = MemoryContextSwitchTo(rsi->econtext->ecxt_per_query_memory); state->ret_tdesc = CreateTupleDescCopy(tupdesc); BlessTupleDesc(state->ret_tdesc); - state->tuple_store = tuplestore_begin_heap(rsi->allowedModes & SFRM_Materialize_Random, + state->tuple_store = tuplestore_begin_heap((uint32)rsi->allowedModes & SFRM_Materialize_Random, false, u_sess->attr.attr_memory.work_mem); MemoryContextSwitchTo(old_cxt); @@ -2621,7 +2629,7 @@ static void populate_recordset_object_field_end(void *state, char *fname, bool i { PopulateRecordsetState *_state = (PopulateRecordsetState *) state; JsonHashEntry *hashentry = NULL; - bool found; + bool found = false; char name[NAMEDATALEN]; /* diff --git a/src/common/backend/utils/adt/like.cpp b/src/common/backend/utils/adt/like.cpp index 9632cb9a2..811cb1952 100644 --- a/src/common/backend/utils/adt/like.cpp +++ b/src/common/backend/utils/adt/like.cpp @@ -371,8 +371,7 @@ Datum rawlike(PG_FUNCTION_ARGS) p = VARDATA_ANY(pat); plen = VARSIZE_ANY_EXHDR(pat); - result = (GenericMatchText(s, slen, p, plen) == LIKE_TRUE); - + result = SB_MatchText(s, slen, p, plen, 0, true) == LIKE_TRUE; PG_RETURN_BOOL(result); } @@ -389,7 +388,7 @@ Datum rawnlike(PG_FUNCTION_ARGS) p = VARDATA_ANY(pat); plen = VARSIZE_ANY_EXHDR(pat); - result = (GenericMatchText(s, slen, p, plen) != LIKE_TRUE); + result = SB_MatchText(s, slen, p, plen, 0, true) != LIKE_TRUE; PG_RETURN_BOOL(result); } diff --git a/src/common/backend/utils/adt/lockfuncs.cpp b/src/common/backend/utils/adt/lockfuncs.cpp index cba8b3189..e559daf96 100644 --- a/src/common/backend/utils/adt/lockfuncs.cpp +++ b/src/common/backend/utils/adt/lockfuncs.cpp @@ -1321,6 +1321,7 @@ Datum pgxc_lock_for_backup(PG_FUNCTION_ARGS) * is denied. */ /* Connect to SPI manager to check any prepared transactions */ + SPI_STACK_LOG("connect", NULL, NULL); if (SPI_connect() < 0) { ereport(ERROR, (errcode(ERRCODE_CONNECTION_EXCEPTION), errmsg("internal error while locking the cluster for backup"))); @@ -1329,6 +1330,7 @@ Datum pgxc_lock_for_backup(PG_FUNCTION_ARGS) /* Are there any prepared transactions that have not yet been committed? */ SPI_execute("select gid from pg_catalog.pg_prepared_xacts limit 1", true, 0); prepared_xact_count = SPI_processed; + SPI_STACK_LOG("finish", NULL, NULL); SPI_finish(); if (prepared_xact_count > 0) { @@ -1430,6 +1432,7 @@ Datum pgxc_lock_for_sp_database(PG_FUNCTION_ARGS) */ /* Connect to SPI manager to check any prepared transactions */ + SPI_STACK_LOG("connect", NULL, NULL); if (SPI_connect() < 0) { ereport(ERROR, (errcode(ERRCODE_CONNECTION_EXCEPTION), errmsg("internal error while locking the cluster for backup"))); @@ -1438,6 +1441,7 @@ Datum pgxc_lock_for_sp_database(PG_FUNCTION_ARGS) /* Are there any prepared transactions that have not yet been committed? */ SPI_execute("select gid from pg_catalog.pg_prepared_xacts limit 1", true, 0); prepared_xact_count = SPI_processed; + SPI_STACK_LOG("finish", NULL, NULL); SPI_finish(); if (prepared_xact_count > 0) { diff --git a/src/common/backend/utils/adt/nlssort.cpp b/src/common/backend/utils/adt/nlssort.cpp new file mode 100644 index 000000000..78195c725 --- /dev/null +++ b/src/common/backend/utils/adt/nlssort.cpp @@ -0,0 +1,380 @@ +/* + * Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors + * + * openGauss is licensed under Mulan PSL v2. + * You can use this software according to the terms and conditions of the Mulan PSL v2. + * You may obtain a copy of Mulan PSL v2 at: + * + * http://license.coscl.org.cn/MulanPSL2 + * + * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, + * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, + * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + * See the Mulan PSL v2 for more details. + * --------------------------------------------------------------------------------------- + * + * nlssort.cpp + * routines to support nlssort + * + * IDENTIFICATION + * src/common/backend/utils/adt/nlssort.cpp + * + * --------------------------------------------------------------------------------------- + */ +#include "postgres.h" +#include "mb/pg_wchar.h" +#include "utils/builtins.h" + +#include "../mb/nlssort/nlssort_pinyin_map1_simple.map" +#include "../mb/nlssort/nlssort_pinyin_map1_complex.map" +#include "../mb/nlssort/nlssort_pinyin_map3.map" +#include "../mb/nlssort/nlssort_pinyin_map5.map" + +bool check_nlssort_args(const char *argname, char **sort_method); + +char *nlssort_pinyin(const char *chars_to_be_encoded, const char **sort_method); +char *remove_trailing_spaces(const char *src_str); +bool code_is_supported(uint32 code); +bool code_is_complex(uint32 code); +void append_str_simple(uint32 code, StringInfo chars_encoded_part, int part, + const nlssort_encode_simple *map, int mapsize); +void append_str_complex(uint32 code, StringInfo chars_encoded_part, + const nlssort_encode_complex *map, int mapsize); +static int compare_simple(const void *p1, const void *p2); +static int compare_complex(const void *p1, const void *p2); + +/* + * Find the corresponding encoding rule according to the second argument. + * Return the code of the first argument under this encoding rule. + * + * Now only support "nls_sort=schinese_pinyin_m" and "nls_sort=generic_m_ci". + */ +Datum nlssort(PG_FUNCTION_ARGS) +{ + char *chars_to_be_encoded = NULL; + char *nlssort_arg = NULL; + char *sort_method = NULL; + char *chars_encoded = NULL; + + if (PG_ARGISNULL(1)) { + PG_RETURN_NULL(); + } + + nlssort_arg = text_to_cstring(PG_GETARG_TEXT_P(1)); + if (check_nlssort_args(nlssort_arg, &sort_method)) { + /* the first argument is null or "" */ + if (PG_ARGISNULL(0)) { + PG_RETURN_NULL(); + } + + /* encode the first argument with "gb18030" */ + Datum tmp = DirectFunctionCall3(pg_convert, PG_GETARG_DATUM(0), CStringGetDatum(GetDatabaseEncodingName()), + CStringGetDatum("gb18030")); + chars_to_be_encoded = text_to_cstring(DatumGetTextP(tmp)); + + chars_encoded = (char *)nlssort_pinyin(chars_to_be_encoded, (const char **)&sort_method); + } else { + ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmodule(MOD_OPT), + errmsg("Sort method %s is not supported!", nlssort_arg), errdetail("Not support the given sort method."), + errcause("Error in the nlssort parameter."), erraction("Please check and revise your parameter."))); + } + + pfree_ext(sort_method); + + PG_RETURN_TEXT_P(cstring_to_text(chars_encoded)); +} + +/* + * Check whether the nlssort argument is legal. + * + * Now only support "nls_sort=schinese_pinyin_m" and "nls_sort=generic_m_ci". + */ +bool check_nlssort_args(const char *argname, char **sort_method) +{ + List *sortlist = NULL; + char *nlskey = NULL; + char *nlsvalue = NULL; + + char *raw = pstrdup(argname); + + /* + * Split string like: NLS_SORT=SCHINESE_PINYIN_M. + * Converting strings to lowercase and removing back and forth spaces. + */ + if (!SplitIdentifierString(raw, '=', &sortlist) || list_length(sortlist) != 2) { + list_free(sortlist); + FREE_POINTER(raw); + return false; + } + + nlskey = (char *)linitial(sortlist); + if (strcmp(nlskey, "nls_sort")) { + list_free(sortlist); + FREE_POINTER(raw); + return false; + } + + nlsvalue = (char *)lsecond(sortlist); + if (strcmp(nlsvalue, "schinese_pinyin_m") && strcmp(nlsvalue, "generic_m_ci")) { + list_free(sortlist); + FREE_POINTER(raw); + return false; + } + + *sort_method = pstrdup(nlsvalue); + + list_free(sortlist); + FREE_POINTER(raw); + + return true; +} + +/* + * Encoding rules for "nls_sort=schinese_pinyin_m" && "nls_sort=generic_m_ci" + * + * The code corresponding to the given char/string can be divided into 5 parts. + * 1. get it via pinyin_encode_map1; get empty string when not contains + * 2. "0000" + * 3. get it via pinyin_encode_map3; get empty string when not contains + * 4. "00" + * 5. get it via pinyin_encode_map5; get empty string when not contains + * Concatenate the 5 parts to get the code (when the sort method is "nls_sort=generic_m_ci", + * just concatenate the top 3 parts to get the code). + * + * preprocess: + * 1. erase the trailing spaces in the given string + * 2. when the given string is a pure space string, just leave one space + */ +char *nlssort_pinyin(const char *chars_to_be_encoded, const char **sort_method) +{ + int len, total_len; + unsigned char *preprocessed_str, *preprocessed_str_copy; + StringInfoData chars_encoded, chars_encoded_1, chars_encoded_3, chars_encoded_5; + + initStringInfo(&chars_encoded); + initStringInfo(&chars_encoded_1); + initStringInfo(&chars_encoded_3); + initStringInfo(&chars_encoded_5); + + preprocessed_str = (unsigned char *)remove_trailing_spaces(chars_to_be_encoded); + preprocessed_str_copy = preprocessed_str; + + uint32 code = 0; + for (total_len = strlen((char *)preprocessed_str); total_len > 0; total_len -= len) { + len = pg_encoding_mblen(PG_GB18030, (char *)preprocessed_str); + if (len == 1) { + code = *preprocessed_str++; + } else if (len == 2) { + code = *preprocessed_str++ << 8; + code |= *preprocessed_str++; + } else if (len == 4) { + code = *preprocessed_str++ << 24; + code |= *preprocessed_str++ << 16; + code |= *preprocessed_str++ << 8; + code |= *preprocessed_str++; + } else { + ereport(ERROR, (errcode(ERRCODE_SYSTEM_ERROR), errmodule(MOD_OPT), + errmsg("Error in convert the first argument to gb18030 encoding!"), + errdetail("A correct gb18030 character size should be 1, 2 or 4."), + errcause("Error in the function \"pg_convert\"."), erraction("Please check and revise your input."))); + } + + if (code_is_supported(code)) { + /* select PINYIN_map1_S or PINYIN_map1_C according to the code */ + code_is_complex(code) ? + append_str_complex(code, &chars_encoded_1, PINYIN_map1_C, lengthof(PINYIN_map1_C)) : + append_str_simple(code, &chars_encoded_1, 1, PINYIN_map1_S, lengthof(PINYIN_map1_S)); + append_str_simple(code, &chars_encoded_3, 3, PINYIN_map3, lengthof(PINYIN_map3)); + append_str_simple(code, &chars_encoded_5, 5, PINYIN_map5, lengthof(PINYIN_map5)); + } else { + ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmodule(MOD_OPT), + errmsg("There is some char not supported with nlssort code!"), + errdetail("Can't find the corresponding nlssort code in all the nlssort_pinyin_map*."), + errcause("Invalid parameter value."), erraction("Please check and revise your parameter."))); + } + } + + appendStringInfo(&chars_encoded, "%s", chars_encoded_1.data); + appendStringInfo(&chars_encoded, "%s", "0000"); + appendStringInfo(&chars_encoded, "%s", chars_encoded_3.data); + + /* the sort method is not "nls_sort=generic_m_ci" */ + if (strcmp(*sort_method, "schinese_pinyin_m") == 0) { + appendStringInfo(&chars_encoded, "%s", "00"); + appendStringInfo(&chars_encoded, "%s", chars_encoded_5.data); + } + + pfree_ext(preprocessed_str_copy); + pfree_ext(chars_encoded_1.data); + pfree_ext(chars_encoded_3.data); + pfree_ext(chars_encoded_5.data); + + return chars_encoded.data; +} + +/* + * Erase the trailing spaces in the given string. + * When the given string is a pure space string, just leave one space. + * + * "src_str" is known to be not null and strlen(src_str) > 0. + */ +char *remove_trailing_spaces(const char *src_str) +{ + bool is_all_space = true; + int len = strlen(src_str); + int buf_size = strlen(src_str) + 1; + char *dst_str = (char *)palloc(buf_size); + + /* check if all chars in "src_str"(known to be not null) is space */ + for (int i = strlen(src_str) - 1; i >= 0; i--) { + if (src_str[i] != ' ') { + is_all_space = false; + break; + } + } + + if (unlikely(is_all_space)) { + dst_str[0] = ' '; + dst_str[1] = '\0'; + } else { + while (len > 0 && src_str[len - 1] == ' ') { + len--; + } + errno_t rc = strncpy_s(dst_str, buf_size, src_str, len); + securec_check(rc, "\0", "\0"); + dst_str[len] = '\0'; + } + + return dst_str; +} + +/* + * Determine whether the code is supported (according to gb18030). + * the code of gb18030 is 1 byte 2 bytes or 4 bytes. + * + * 1 2 3 4 + * 1 byte: 0x00 ~ 0x7F + * 2 bytes: 0x81 ~ 0xFE 0x40 ~ 0x7E or 0x80 ~ 0xFE + * 4 bytes: 0x81 ~ 0xFE 0x30 ~ 0x39 0x81 ~ 0xFE 0x30 ~ 0x39 + */ +bool code_is_supported(uint32 code) +{ + bool res = false; + + if (code >= 0x0 && code <= 0x7F) { /* 1 byte */ + res = true; + } else if (code >= 0x8140 && code <= 0xFEFE) { + uint32 v1 = code & 0xFF; + uint32 v2 = (code >> 4) & 0xF; + if (v1 != 0x7F && v1 != 0xFF && (v2 >= 0x4 && v2 <= 0xF)) { /* 2 bytes */ + res = true; + } + } else if ((code >= 0x81308130 && code <= 0x8431A439) || + (code >= 0x95328230 && code <= 0x9A348439)) { /* 4 bytes */ + uint32 v1 = code & 0xFF; + uint32 v2 = (code >> 8) & 0xFF; + uint32 v3 = (code >> 16) & 0xFF; + uint32 v4 = (code >> 12) & 0xF; + if ((v1 >= 0x30 && v1 <= 0x39) && (v2 != 0x80 && v2 != 0xFF) && (v3 >= 0x30 && v3 <= 0x39) && + (v4 >= 0x8 && v4 <= 0xF)) { + res = true; + } + } + + return res; +} + +/* + * Determine whether the code is complex. + */ +bool code_is_complex(uint32 code) +{ + bool res = false; + static uint32 complex_code_arr[] = {0x81318334, 0x81318335, 0x81318336, 0x81318337, 0x81318338, 0x81319332, + 0x81319334, 0x81319531, 0x8131e131, 0x8131e132, 0x81328932, 0x81328935, 0x81328936, 0x81329038, 0x81329632, + 0x81329633, 0x81329634, 0x8132a238, 0x8132ae38, 0x8132af35, 0x8132af36, 0x8132af38, 0x8132bc36, 0x8132bc37, + 0x8132bc38, 0x8132cb30, 0x8132cb32, 0x8132cb34, 0x8132f339, 0x8132f431, 0x8132f533, 0x81338738, 0x8135a232, + 0x8135a234, 0x8135a236, 0x8135a238, 0x8135a330, 0x8135a334, 0x8135a735, 0x8135a737, 0x8135a830, 0x8135a831, + 0x8135a833}; + + if (code >= 0x95328230 && code <= 0x9A3484391) { + res = true; + } + + for (unsigned int i = 0; i < sizeof(complex_code_arr) / sizeof(uint32); i++) { + if (code == complex_code_arr[i]) { + res = true; + break; + } + } + + return res; +} + +/* + * Get the nlssort code (simple) according to the gb18030 code. + * And append it to the correct part. + */ +void append_str_simple(uint32 code, StringInfo chars_encoded_part, int part, + const nlssort_encode_simple *map, int mapsize) +{ + const nlssort_encode_simple *p = NULL; + p = (nlssort_encode_simple *)bsearch(&code, map, mapsize, sizeof(nlssort_encode_simple), compare_simple); + if (p != NULL) { + if (part == 1) { + if (p->nlssort_code & 0xFFFF0000) { + appendStringInfo(chars_encoded_part, "%.8X", p->nlssort_code); + } else { + appendStringInfo(chars_encoded_part, "%.4X", p->nlssort_code); + } + } else { + if (p->nlssort_code & 0xFF000000) { + appendStringInfo(chars_encoded_part, "%.8X", p->nlssort_code); + } else if (p->nlssort_code & 0xFF0000) { + appendStringInfo(chars_encoded_part, "%.6X", p->nlssort_code); + } else if (p->nlssort_code & 0xFF00) { + appendStringInfo(chars_encoded_part, "%.4X", p->nlssort_code); + } else { + appendStringInfo(chars_encoded_part, "%.2X", p->nlssort_code); + } + } + } +} + +/* + * Get the nlssort code (complex) according to the gb18030 code. + * And append it to the correct part. + */ +void append_str_complex(uint32 code, StringInfo chars_encoded_part, const nlssort_encode_complex *map, int mapsize) +{ + const nlssort_encode_complex *p = NULL; + p = (nlssort_encode_complex *)bsearch(&code, map, mapsize, sizeof(nlssort_encode_complex), compare_complex); + if (p != NULL) { + appendStringInfo(chars_encoded_part, "%.16lX", p->nlssort_code); + } +} + +/* + * comparison routine for bsearch() + * this routine is intended for gb18030 code -> nlssort code + */ +static int compare_simple(const void *p1, const void *p2) +{ + uint32 v1, v2; + + v1 = *(const uint32 *)p1; + v2 = ((const nlssort_encode_simple *)p2)->gb18030_code; + + return (v1 > v2) ? 1 : ((v1 == v2) ? 0 : -1); +} + +static int compare_complex(const void *p1, const void *p2) +{ + uint32 v1, v2; + + v1 = *(const uint32 *)p1; + v2 = ((const nlssort_encode_complex *)p2)->gb18030_code; + + return (v1 > v2) ? 1 : ((v1 == v2) ? 0 : -1); +} diff --git a/src/common/backend/utils/adt/numeric.cpp b/src/common/backend/utils/adt/numeric.cpp index 62fd55296..48471ec04 100644 --- a/src/common/backend/utils/adt/numeric.cpp +++ b/src/common/backend/utils/adt/numeric.cpp @@ -39,6 +39,7 @@ #include "utils/biginteger.h" #include "utils/gs_bitmap.h" #include "utils/guc.h" +#include "utils/guc_sql.h" #include "utils/int8.h" #include "utils/numeric.h" #include "utils/sortsupport.h" @@ -335,6 +336,22 @@ Datum numeric_out(PG_FUNCTION_ARGS) char* str = NULL; int scale = 0; + if (u_sess->attr.attr_sql.for_print_tuple && !u_sess->attr.attr_sql.numeric_out_for_format) { + char *result = NULL; + /* to prevent stack overflow*/ + u_sess->attr.attr_sql.numeric_out_for_format = true; + double var = DatumGetFloat8(DirectFunctionCall1(numeric_float8, NumericGetDatum(num))); + u_sess->attr.attr_sql.numeric_out_for_format = false; + if (strcmp(u_sess->attr.attr_common.pset_num_format, "")) { + result = apply_num_format(var); + } else if (u_sess->attr.attr_common.pset_num_width > 0) { + result = apply_num_width(var); + } + if (result != NULL) { + PG_RETURN_CSTRING(result); + } + } + /* * Handle NaN */ @@ -459,7 +476,6 @@ char *numeric_normalize(Numeric num) NumericVar x; char *str = NULL; int orig, last; - /* * Handle NaN */ @@ -482,7 +498,6 @@ char *numeric_normalize(Numeric num) return str; } - /* * numeric_recv - converts external binary format to numeric * @@ -4173,6 +4188,40 @@ static void set_var_from_var(const NumericVar* value, NumericVar* dest) dest->digits = newbuf + 1; } +static void remove_tail_zero(char *ascii) +{ + if (!HIDE_TAILING_ZERO || ascii == NULL) { + return; + } + int len = 0; + bool is_decimal = false; + while (ascii[len] != '\0') { + if (ascii[len] == '.') { + is_decimal = true; + } + len++; + } + if (!is_decimal) { + return; + } + len--; + while (ascii[len] == '0') { + ascii[len] = '\0'; + len--; + } + if (ascii[len] == '.') { + ascii[len] = '\0'; + len--; + } + if (len == -1) { + len++; + ascii[len] = '0'; + len++; + ascii[len] = '\0'; + } + return; +} + /* * get_str_from_var() - * @@ -4303,6 +4352,7 @@ static char* get_str_from_var(NumericVar* var) * terminate the string and return it */ *cp = '\0'; + remove_tail_zero(str); return str; } @@ -18711,6 +18761,13 @@ Numeric convert_int64_to_numeric(int64 data, uint8 scale) return result; } +static inline uint16 GetNHeader(NumericVar var) +{ + return (var.sign == NUMERIC_NEG ? (NUMERIC_SHORT | NUMERIC_SHORT_SIGN_MASK) : NUMERIC_SHORT) | + ((uint32)var.dscale << NUMERIC_SHORT_DSCALE_SHIFT) | (var.weight < 0 ? NUMERIC_SHORT_WEIGHT_SIGN_MASK : 0) | + ((uint32)var.weight & NUMERIC_SHORT_WEIGHT_MASK); +} + /* * @Description: This function convert big integer128 to * short numeric @@ -18869,10 +18926,7 @@ Numeric convert_int128_to_numeric(int128 data, int scale) securec_check(rc, "\0", "\0"); } - result->choice.n_short.n_header = - (var.sign == NUMERIC_NEG ? (NUMERIC_SHORT | NUMERIC_SHORT_SIGN_MASK) : NUMERIC_SHORT) | - (var.dscale << NUMERIC_SHORT_DSCALE_SHIFT) | (var.weight < 0 ? NUMERIC_SHORT_WEIGHT_SIGN_MASK : 0) | - (var.weight & NUMERIC_SHORT_WEIGHT_MASK); + result->choice.n_short.n_header = GetNHeader(var); /* Check for overflow of int64 fields */ Assert(NUMERIC_NDIGITS(result) == (unsigned int)(pre_digits + post_digits)); @@ -18969,3 +19023,196 @@ int32 get_ndigit_from_numeric(Numeric num) return result; } + + +/* + * Convert int16 value to numeric. + */ +void int128_to_numericvar(int128 val, NumericVar* var) +{ + uint128 uval, newuval; + NumericDigit* ptr = NULL; + int ndigits; + + /* int128 can require at most 39 decimal digits; add one for safety */ + alloc_var(var, 40 / DEC_DIGITS); + if (val < 0) { + var->sign = NUMERIC_NEG; + uval = -val; + } else { + var->sign = NUMERIC_POS; + uval = val; + } + var->dscale = 0; + if (val == 0) { + var->ndigits = 0; + var->weight = 0; + return; + } + ptr = var->digits + var->ndigits; + ndigits = 0; + do { + ptr--; + ndigits++; + newuval = uval / NBASE; + *ptr = uval - newuval * NBASE; + uval = newuval; + } while (uval); + var->digits = ptr; + var->ndigits = ndigits; + var->weight = ndigits - 1; +} + +/* + * Convert numeric to int16, rounding if needed. + * + * If overflow, return false (no error is raised). Return true if okay. + */ +static bool numericvar_to_int128(const NumericVar* var, int128* result) +{ + NumericDigit* digits = NULL; + int ndigits; + int weight; + int i; + int128 val; + bool neg = false; + NumericVar rounded; + + /* Round to nearest integer */ + init_var(&rounded); + set_var_from_var(var, &rounded); + round_var(&rounded, 0); + + /* Check for zero input */ + strip_var(&rounded); + ndigits = rounded.ndigits; + if (ndigits == 0) { + *result = 0; + free_var(&rounded); + return true; + } + + /* + * For input like 10000000000, we must treat stripped digits as real. So + * the loop assumes there are weight+1 digits before the decimal point. + */ + weight = rounded.weight; + Assert(weight >= 0 && ndigits <= weight + 1); + + /* + * Construct the result. To avoid issues with converting a value + * corresponding to INT128_MIN (which can't be represented as a positive 64 + * bit two's complement integer), accumulate value as a negative number. + */ + digits = rounded.digits; + neg = (rounded.sign == NUMERIC_NEG); + val = -digits[0]; + for (i = 1; i <= weight; i++) { + if (unlikely(pg_mul_s128_overflow(val, NBASE, &val))) { + free_var(&rounded); + return false; + } + + if (i < ndigits) { + if (unlikely(pg_sub_s128_overflow(val, digits[i], &val))) { + free_var(&rounded); + return false; + } + } + } + + free_var(&rounded); + + if (!neg) { + if (unlikely(val == PG_INT128_MIN)) + return false; + val = -val; + } + *result = val; + + return true; +} + +Datum int16_numeric(PG_FUNCTION_ARGS) +{ + int128 val = PG_GETARG_INT128(0); + Numeric res; + NumericVar result; + + init_var(&result); + + int128_to_numericvar(val, &result); + + res = make_result(&result); + + free_var(&result); + + PG_RETURN_NUMERIC(res); +} + +int128 numeric_int16_internal(Numeric num) +{ + int128 result = 0; + NumericVar x; + uint16 numFlags = NUMERIC_NB_FLAGBITS(num); + + if (NUMERIC_FLAG_IS_NANORBI(numFlags)) { + /* Handle Big Integer */ + if (NUMERIC_FLAG_IS_BI(numFlags)) + num = makeNumericNormal(num); + /* XXX would it be better to return NULL? */ + else + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("cannot convert NaN to int128"))); + } + + /* Convert to variable format and thence to int8 */ + init_var_from_num(num, &x); + + if (!numericvar_to_int128(&x, &result)) + ereport(ERROR, (errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE), errmsg("int128 out of range"))); + + return result; +} + +Datum numeric_int16(PG_FUNCTION_ARGS) +{ + Numeric num = PG_GETARG_NUMERIC(0); + int128 result = numeric_int16_internal(num); + PG_RETURN_INT128(result); +} + +Datum numeric_bool(PG_FUNCTION_ARGS) +{ + Numeric num = PG_GETARG_NUMERIC(0); + bool result = false; + char* tmp = DatumGetCString(DirectFunctionCall1(numeric_out, NumericGetDatum(num))); + + if (strcmp(tmp, "0") != 0) { + result = true; + } + + pfree_ext(tmp); + + PG_RETURN_BOOL(result); +} + +Datum bool_numeric(PG_FUNCTION_ARGS) +{ + int val = 1; + if (PG_GETARG_BOOL(0) == false) { + val = 0; + } + + Numeric res; + NumericVar result; + + init_var(&result); + + int64_to_numericvar((int64)val, &result); + + res = make_result(&result); + + free_var(&result); + + PG_RETURN_NUMERIC(res); +} diff --git a/src/common/backend/utils/adt/numutils.cpp b/src/common/backend/utils/adt/numutils.cpp index 7a0b051d8..02dd855ef 100644 --- a/src/common/backend/utils/adt/numutils.cpp +++ b/src/common/backend/utils/adt/numutils.cpp @@ -5,6 +5,7 @@ * * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -352,8 +353,9 @@ void pg_lltoa(int64 value, char* a) char* start = a; bool neg = false; - if (a == NULL) + if (a == NULL) { return; + } /* * Avoid problems with the most negative integer not being representable @@ -379,6 +381,61 @@ void pg_lltoa(int64 value, char* a) *a++ = '0' + remainder; } while (value != 0); + if (neg) { + *a++ = '-'; + } + + /* Add trailing NUL byte, and back up 'a' to the last character. */ + *a-- = '\0'; + + /* Reverse string. */ + while (start < a) { + char swap = *start; + + *start++ = *a; + *a-- = swap; + } +} + +/* + * pg_lltoa: convert a signed 128-bit integer to its string representation + * + * Caller must ensure that 'a' points to enough memory to hold the result + * (at least MAXINT16LEN+1 bytes, counting a leading sign and trailing NUL). + */ +void pg_i128toa(int128 value, char* a, int length) +{ + char* start = a; + bool neg = false; + + if (a == NULL) + return; + + /* + * Avoid problems with the most negative integer not being representable + * as a positive integer. + */ + if (value == (PG_INT128_MIN)) { + const int int128minStrLength = 41; + const char* int128minStr = "-170141183460469231731687303715884105728"; + errno_t ss_rc = memcpy_s(a, length, int128minStr, int128minStrLength); + securec_check(ss_rc, "\0", "\0"); + return; + } else if (value < 0) { + value = -value; + neg = true; + } + + /* Compute the result string backwards. */ + do { + int128 remainder; + int128 oldval = value; + + value /= 10; + remainder = oldval - value * 10; + *a++ = '0' + remainder; + } while (value != 0); + if (neg) *a++ = '-'; diff --git a/src/common/backend/utils/adt/orderedsetaggs.cpp b/src/common/backend/utils/adt/orderedsetaggs.cpp index e1b9eea49..161c0054e 100644 --- a/src/common/backend/utils/adt/orderedsetaggs.cpp +++ b/src/common/backend/utils/adt/orderedsetaggs.cpp @@ -392,93 +392,36 @@ Datum mode_final(PG_FUNCTION_ARGS) static void Merge(TdigestData *td); -#ifdef ENABLE_MULTIPLE_NODES - -/* - * get palloc BufSize - */ - -static Size GetRequiredBufSize(double compression) -{ - int compressNum = 6; - int compressAdd = 10; - return sizeof(TdigestData) + - (((compressNum * (int)(compression)) + compressAdd) * sizeof(CentroidPoint)); -} - -/* - * InitTidigest and palloc - */ - -static TdigestData *InitTidigest(double compression, Size buf_size, char *buf) -{ - TdigestData *td = (TdigestData *)(buf); - if (!td) { - return NULL; - } - SET_VARSIZE(td, buf_size); - td->compression = compression; - td->cap = (buf_size - sizeof(TdigestData)) / sizeof(CentroidPoint); - td->merged_nodes = 0; - td->merged_count = 0; - td->unmerged_nodes = 0; - td->unmerged_count = 0; - return td; -} - -/* - * New TdigestData - */ - -TdigestData *NewTidigest(double compression) -{ - Size memsize = GetRequiredBufSize(compression); - return InitTidigest(compression, memsize, (char *)(palloc(memsize))); -} -#endif - /* * add one point to TdigestData */ void TdAdd(TdigestData *td, double mean, int64 count) { + CentroidPoint cp; + if ((td->merged_nodes + td->unmerged_nodes) == td->cap) { Merge(td); } - td->nodes[td->merged_nodes + td->unmerged_nodes] = (CentroidPoint) { - .mean = mean, - .count = count, - }; + + cp.count = count; + cp.mean = mean; + td->nodes[td->merged_nodes + td->unmerged_nodes] = cp; td->unmerged_nodes++; td->unmerged_count += count; } -/* - * merge TdigestData in TdigestData from every dn - */ - -void TdMerge(TdigestData *td1, TdigestData *td2) -{ - Merge(td1); - Merge(td2); - for (int i = 0; i < td2->merged_nodes; i++) { - CentroidPoint *cp = &td2->nodes[i]; - TdAdd(td1, cp->mean, cp->count); - } -} - /* * comepare points when sort */ -static int CompareNodes(const void *n1, const void *n2) +static int CompareNodes(const void *firstNode, const void *secondNode) { - CentroidPoint *cp1 = (CentroidPoint *)(n1); - CentroidPoint *cp2 = (CentroidPoint *)(n2); - if (cp1->mean < cp2->mean) { + CentroidPoint *firstCp = (CentroidPoint *)(firstNode); + CentroidPoint *secondCp = (CentroidPoint *)(secondNode); + if (firstCp->mean < secondCp->mean) { return -1; - } else if (cp1->mean > cp2->mean) { + } else if (firstCp->mean > secondCp->mean) { return 1; } else { return 0; @@ -489,55 +432,62 @@ static int CompareNodes(const void *n1, const void *n2) * merge the points */ -static void Merge(TdigestData *td) +static void MergeAct(TdigestData *td, int num) { - int num = 0; + int i = 1; int cur = 0; double denom = 0; - double TotalCount = 0; double normalizer = 0; int64 CountSoFar = 0; - - if (td->unmerged_nodes == 0) { - return; - } - // 1. sort all point - num = td->merged_nodes + td->unmerged_nodes; - qsort((void *)(td->nodes), num, sizeof(CentroidPoint), &CompareNodes); - + double TotalCount = 0; TotalCount = td->merged_count + td->unmerged_count; denom = 2 * M_PI * TotalCount * log(TotalCount); normalizer = td->compression / denom; - - // 2. Go through all the points and merge - for (int i = 1; i < num; i++) { + + while (i < num) { double ProposedCount = td->nodes[cur].count + td->nodes[i].count; double z = ProposedCount * normalizer; double q0 = (double)CountSoFar / TotalCount; double q2 = ((double)CountSoFar + ProposedCount) / TotalCount; bool ShouldAdd = (z <= (q0 * (1 - q0))) && (z <= (q2 * (1 - q2))); if (ShouldAdd) { - // 3. add nodes[i] to nodes[cur] + // add nodes[i] to nodes[cur] td->nodes[cur].count += td->nodes[i].count; double delta = td->nodes[i].mean - td->nodes[cur].mean; double WeightedDelta = (delta * (double)td->nodes[i].count) / (double)td->nodes[cur].count; td->nodes[cur].mean += WeightedDelta; } else { - // 4. don't add nodes[i] to nodes[cur] and move nodes[i] to nodes[cur+1] + // don't add nodes[i] to nodes[cur] and move nodes[i] to nodes[cur+1] CountSoFar += td->nodes[cur].count; cur++; td->nodes[cur] = td->nodes[i]; } if (cur != i) { - // 5. empty nodes[i] + // empty nodes[i] CentroidPoint cp; cp.count = 0; cp.mean = 0; td->nodes[i] = cp; } + i++; } td->merged_nodes = cur + 1; td->merged_count = TotalCount; +} + +static void Merge(TdigestData *td) +{ + int num = 0; + + if (td->unmerged_nodes == 0) { + return; + } + // 1. sort all point + num = td->merged_nodes + td->unmerged_nodes; + qsort((void *)(td->nodes), num, sizeof(CentroidPoint), &CompareNodes); + // 2. Go through all the points and merge + MergeAct(td, num); + // 3. set unmerged_nodes to 0 td->unmerged_nodes = 0; td->unmerged_count = 0; } @@ -546,37 +496,21 @@ static void Merge(TdigestData *td) * Calculate the percentile_of_value from all the points */ -double TdQuantileOf(TdigestData *td, double val) +double CalQuantile(TdigestData *td, double val, int index, CentroidPoint *cp, double CountVal) { - double CountVal = 0; - int i = 0; - CentroidPoint *cp = NULL; - - Merge(td); - if (td->merged_nodes == 0) { - return NAN; - } - - // find a value greater than val - for (i = 0; i < td->merged_nodes; i++) { - cp = &td->nodes[i]; - if (cp->mean >= val) { - break; - } - CountVal += cp->count; - } - // compute result if (val == cp->mean) { // 1.current point. If have the same number, take the middle numberTake the middle number double CountAtValue = cp->count; - for (i += 1; i < td->merged_nodes && td->nodes[i].mean == cp->mean; i++) { - CountAtValue += td->nodes[i].count; + while (index < td->merged_nodes && td->nodes[index].mean == cp->mean) { + CountAtValue += td->nodes[index].count; + index++; } - return (CountVal + (CountAtValue / 2)) / td->merged_count; + double res = (CountVal + (CountAtValue / 2)) / td->merged_count; + return res; } else if (val > cp->mean) { // 2.biggest return 1; - } else if (i == 0) { + } else if (index == 0) { // 3.minimum return 0; } @@ -587,45 +521,54 @@ double TdQuantileOf(TdigestData *td, double val) double m = (cpr->mean - cpl->mean) / ((double)cpl->count / 2 + (double)cpr->count / 2); double x = (val - cpl->mean) / m; - return (CountVal + x) / td->merged_count; + double res = (CountVal + x) / td->merged_count; + return res; +} + +double TdQuantileOf(TdigestData *td, double val) +{ + double CountVal = 0; + int i = 0; + CentroidPoint *cp = NULL; + double res = 0; + + Merge(td); + if (td->merged_nodes == 0) { + return NAN; + } + + // find a value greater than val + while (i < td->merged_nodes) { + cp = &td->nodes[i]; + if (cp->mean >= val) { + break; + } + CountVal += cp->count; + i++; + } + i++; + // compute result + res = CalQuantile(td, val, i, cp, CountVal); + return res; } /* * Calculate the value_of_percentile from all the points */ - -double TdValueAt(TdigestData *td, double q) +double CalValue(TdigestData *td, CentroidPoint *cp, double goal, double count, int index) { - int i = 0; - double k = 0; - double goal = 0; - CentroidPoint *cp = NULL; double minright = 0.000000001; double minleft = -0.000000001; - Merge(td); - if (q < 0 || q > 1 || td->merged_nodes == 0) { - return NAN; - } - - // find a count greater than cur_count - goal = q * td->merged_count; - for (i = 0; i < td->merged_nodes; i++) { - cp = &td->nodes[i]; - if (k + cp->count > goal) { - break; - } - k += cp->count; - } // 1.current point - double DeltaK = goal - k - ((double)cp->count / 2); + double DeltaK = goal - count - ((double)cp->count / 2); if (!(DeltaK > minright || DeltaK < minleft)) { return cp->mean; } // 2.biggest or minimum bool right = DeltaK > 0; - if ((right && ((i + 1) == td->merged_nodes)) || - (!right && (i == 0))) { + if ((right && ((index + 1) == td->merged_nodes)) || + (!right && (index == 0))) { return cp->mean; } // 3.Interpolation calculation @@ -633,19 +576,46 @@ double TdValueAt(TdigestData *td, double q) CentroidPoint *cpr; if (right) { cpl = cp; - cpr = &td->nodes[i + 1]; - k += ((double)cpl->count / 2); + cpr = &td->nodes[index + 1]; + count += ((double)cpl->count / 2); } else { - cpl = &td->nodes[i - 1]; + cpl = &td->nodes[index - 1]; cpr = cp; - k -= ((double)cpl->count / 2); + count -= ((double)cpl->count / 2); } - - double x = goal - k; + + double x = goal - count; double m = (cpr->mean - cpl->mean) / ((double)cpl->count / 2 + (double)cpr->count / 2); return m * x + cpl->mean; } +double TdValueAt(TdigestData *td, double q) +{ + int i = 0; + double k = 0; + double goal = 0; + CentroidPoint *cp = NULL; + double res = 0; + + Merge(td); + if (td->merged_nodes == 0) { + return NAN; + } + // find a count greater than cur_count + goal = q * td->merged_count; + while (i < td->merged_nodes) { + cp = &td->nodes[i]; + if (k + cp->count > goal) { + break; + } + k += cp->count; + i++; + } + // compute result + res = CalValue(td, cp, goal, k, i); + return res; +} + /* * Inputs: param 0-3 * param0: Store results. @@ -671,14 +641,22 @@ Datum tdigest_merge(PG_FUNCTION_ARGS) if (compression <= 0 || compression > 500) { compression = 300; } - TdigestData* res = NewTidigest(compression); - if (res == NULL) { + int compressNum = 6; + int compressAdd = 10; + Size memsize = sizeof(TdigestData) + + (((compressNum * (int)(compression)) + compressAdd) * sizeof(CentroidPoint)); + TdigestData *res = (TdigestData *)(palloc0(memsize)); + if (!res) { ereport(ERROR, (errmodule(MOD_OPT_AGG), errcode(ERRCODE_OUT_OF_MEMORY), - errmsg("Failed to apply for memory"), errdetail("N/A"), - errcause("palloc failed"), - erraction("Check memory"))); + errmsg("Failed to apply for memory"), errdetail("N/A"), + errcause("palloc failed"), + erraction("Check memory"))); PG_RETURN_NULL(); } + SET_VARSIZE(res, memsize); + res->compression = compression; + res->cap = (memsize - sizeof(TdigestData)) / sizeof(CentroidPoint); + res->valuetoc = PG_GETARG_FLOAT8(2); TdAdd(res, newval, 1); @@ -723,7 +701,14 @@ Datum tdigest_merge_to_one(PG_FUNCTION_ARGS) } TdigestData* newval = (TdigestData*)PG_DETOAST_DATUM(PG_GETARG_DATUM(1)); // merge data from dn to param 0 - TdMerge(oldres, newval); + Merge(oldres); + Merge(newval); + int i = 0; + while (i < newval->merged_nodes) { + CentroidPoint *cp = &newval->nodes[i]; + TdAdd(oldres, cp->mean, cp->count); + i++; + } PG_RETURN_POINTER(oldres); } } @@ -772,14 +757,22 @@ Datum tdigest_mergep(PG_FUNCTION_ARGS) if (compression <= 0 || compression > 500) { compression = 300; } - TdigestData* res = NewTidigest(compression); - if (res == NULL) { + int compressNum = 6; + int compressAdd = 10; + Size memsize = sizeof(TdigestData) + + (((compressNum * (int)(compression)) + compressAdd) * sizeof(CentroidPoint)); + TdigestData *res = (TdigestData *)(palloc0(memsize)); + if (!res) { ereport(ERROR, (errmodule(MOD_OPT_AGG), errcode(ERRCODE_OUT_OF_MEMORY), - errmsg("Failed to apply for memory"), errdetail("N/A"), - errcause("palloc failed"), - erraction("Check memory"))); + errmsg("Failed to apply for memory"), errdetail("N/A"), + errcause("palloc failed"), + erraction("Check memory"))); PG_RETURN_NULL(); } + SET_VARSIZE(res, memsize); + res->compression = compression; + res->cap = (memsize - sizeof(TdigestData)) / sizeof(CentroidPoint); + res->valuetoc = PG_GETARG_FLOAT8(2); /* add one point */ TdAdd(res, newval, 1); diff --git a/src/common/backend/utils/adt/pg_lzcompress.cpp b/src/common/backend/utils/adt/pg_lzcompress.cpp index 256c31704..f78152f56 100644 --- a/src/common/backend/utils/adt/pg_lzcompress.cpp +++ b/src/common/backend/utils/adt/pg_lzcompress.cpp @@ -320,6 +320,9 @@ const PGLZ_Strategy* const PGLZ_strategy_always = &strategy_always_data; #define HIST_START_LEN (sizeof(PGLZ_HistEntry*) * PGLZ_HISTORY_LISTS) #define HIST_ENTRIES_LEN (sizeof(PGLZ_HistEntry) * PGLZ_HISTORY_SIZE) +#define MAX_GOOD_DROP 100 +#define MAX_NEED_RATE 99 + /* ---------- * pglz_find_match - * @@ -723,15 +726,15 @@ int32 lz_compress(const char* source, int32 slen, char* dest) good_drop = strategy->match_size_drop; if (good_drop < 0) { good_drop = 0; - } else if (good_drop > 100) { - good_drop = 100; + } else if (good_drop > MAX_GOOD_DROP) { + good_drop = MAX_GOOD_DROP; } need_rate = strategy->min_comp_rate; if (need_rate < 0) { need_rate = 0; - } else if (need_rate > 99) { - need_rate = 99; + } else if (need_rate > MAX_NEED_RATE) { + need_rate = MAX_NEED_RATE; } /* diff --git a/src/common/backend/utils/adt/pgstatfuncs.cpp b/src/common/backend/utils/adt/pgstatfuncs.cpp index 645df8ce1..e2f3f8f65 100644 --- a/src/common/backend/utils/adt/pgstatfuncs.cpp +++ b/src/common/backend/utils/adt/pgstatfuncs.cpp @@ -195,6 +195,14 @@ extern Datum pg_stat_get_buf_written_backend(PG_FUNCTION_ARGS); extern Datum pg_stat_get_buf_fsync_backend(PG_FUNCTION_ARGS); extern Datum pg_stat_get_buf_alloc(PG_FUNCTION_ARGS); +typedef enum XactAction { + XACTION_INSERT = 0, + XACTION_UPDATE, + XACTION_DELETE, + XACTION_HOTUPDATE, + XACTION_OTHER +} XactAction; +static void pg_stat_update_xact_tuples(Oid relid, PgStat_Counter *result, XactAction action); extern Datum pg_stat_get_xact_numscans(PG_FUNCTION_ARGS); extern Datum pg_stat_get_xact_tuples_returned(PG_FUNCTION_ARGS); extern Datum pg_stat_get_xact_tuples_fetched(PG_FUNCTION_ARGS); @@ -815,31 +823,55 @@ Datum pg_stat_get_live_tuples(PG_FUNCTION_ARGS) int64 result = 0; List* stat_list = NIL; ListCell* stat_cell = NULL; + List* sublist = NIL; + ListCell* subcell = NULL; /* for user-define table, fetch live tuples from datanode*/ if (IS_PGXC_COORDINATOR && GetRelationLocInfo((relid))) PG_RETURN_INT64(pgxc_exec_tuples_stat(relid, "pg_stat_get_live_tuples", EXEC_ON_DATANODES)); - if (isPartitionedObject(relid, RELKIND_INDEX, true)) { - tabkey.statFlag = relid; - stat_list = getPartitionObjectIdList(relid, PART_OBJ_TYPE_INDEX_PARTITION); - } else if (isPartitionedObject(relid, RELKIND_RELATION, true)) { - tabkey.statFlag = relid; + HeapTuple reltuple = SearchSysCache1(RELOID, ObjectIdGetDatum(relid)); + if (!HeapTupleIsValid(reltuple)) { + PG_RETURN_INT64(result); + } + Form_pg_class relation = (Form_pg_class)GETSTRUCT(reltuple); + if (PARTTYPE_SUBPARTITIONED_RELATION == relation->parttype) { stat_list = getPartitionObjectIdList(relid, PART_OBJ_TYPE_TABLE_PARTITION); + foreach (stat_cell, stat_list) { + Oid subparentid = lfirst_oid(stat_cell); + sublist = getPartitionObjectIdList(subparentid, PART_OBJ_TYPE_TABLE_SUB_PARTITION); + tabkey.statFlag = subparentid; + foreach (subcell, sublist) { + tabkey.tableid = lfirst_oid(subcell); + tabentry = pgstat_fetch_stat_tabentry(&tabkey); + if (tabentry != NULL) + result += (int64)(tabentry->n_live_tuples); + } + list_free_ext(sublist); + } + list_free_ext(stat_list); + } else if (PARTTYPE_PARTITIONED_RELATION == relation->parttype) { + char objtype = PART_OBJ_TYPE_TABLE_PARTITION; + if (relation->relkind == RELKIND_INDEX) { + objtype = PART_OBJ_TYPE_INDEX_PARTITION; + } + stat_list = getPartitionObjectIdList(relid, objtype); + tabkey.statFlag = relid; + foreach (stat_cell, stat_list) { + tabkey.tableid = lfirst_oid(stat_cell); + tabentry = pgstat_fetch_stat_tabentry(&tabkey); + if (tabentry != NULL) + result += (int64)(tabentry->n_live_tuples); + } + list_free_ext(stat_list); } else { tabkey.statFlag = InvalidOid; - stat_list = lappend_oid(stat_list, relid); - } - - foreach (stat_cell, stat_list) { - tabkey.tableid = lfirst_oid(stat_cell); + tabkey.tableid = relid; tabentry = pgstat_fetch_stat_tabentry(&tabkey); - - if (PointerIsValid(tabentry)) + if (tabentry != NULL) result += (int64)(tabentry->n_live_tuples); } - - list_free(stat_list); + ReleaseSysCache(reltuple); PG_RETURN_INT64(result); } @@ -852,31 +884,54 @@ Datum pg_stat_get_dead_tuples(PG_FUNCTION_ARGS) int64 result = 0; List* stat_list = NIL; ListCell* stat_cell = NULL; + List* sublist = NIL; + ListCell* subcell = NULL; if (IS_PGXC_COORDINATOR && GetRelationLocInfo((relid))) PG_RETURN_INT64(pgxc_exec_tuples_stat(relid, "pg_stat_get_dead_tuples", EXEC_ON_DATANODES)); - if (isPartitionedObject(relid, RELKIND_INDEX, true)) { - tabkey.statFlag = relid; - stat_list = getPartitionObjectIdList(relid, PART_OBJ_TYPE_INDEX_PARTITION); - } else if (isPartitionedObject(relid, RELKIND_RELATION, true)) { - tabkey.statFlag = relid; + HeapTuple reltuple = SearchSysCache1(RELOID, ObjectIdGetDatum(relid)); + if (!HeapTupleIsValid(reltuple)) { + PG_RETURN_INT64(result); + } + Form_pg_class relation = (Form_pg_class)GETSTRUCT(reltuple); + if (PARTTYPE_SUBPARTITIONED_RELATION == relation->parttype) { stat_list = getPartitionObjectIdList(relid, PART_OBJ_TYPE_TABLE_PARTITION); + foreach (stat_cell, stat_list) { + Oid subparentid = lfirst_oid(stat_cell); + sublist = getPartitionObjectIdList(subparentid, PART_OBJ_TYPE_TABLE_SUB_PARTITION); + tabkey.statFlag = subparentid; + foreach (subcell, sublist) { + tabkey.tableid = lfirst_oid(subcell); + tabentry = pgstat_fetch_stat_tabentry(&tabkey); + if (tabentry != NULL) + result += (int64)(tabentry->n_dead_tuples); + } + list_free_ext(sublist); + } + list_free_ext(stat_list); + } else if (PARTTYPE_PARTITIONED_RELATION == relation->parttype) { + char objtype = PART_OBJ_TYPE_TABLE_PARTITION; + if (relation->relkind == RELKIND_INDEX) { + objtype = PART_OBJ_TYPE_INDEX_PARTITION; + } + stat_list = getPartitionObjectIdList(relid, objtype); + tabkey.statFlag = relid; + foreach (stat_cell, stat_list) { + tabkey.tableid = lfirst_oid(stat_cell); + tabentry = pgstat_fetch_stat_tabentry(&tabkey); + if (tabentry != NULL) + result += (int64)(tabentry->n_dead_tuples); + } + list_free_ext(stat_list); } else { tabkey.statFlag = InvalidOid; - stat_list = lappend_oid(stat_list, relid); - } - - foreach (stat_cell, stat_list) { - tabkey.tableid = lfirst_oid(stat_cell); + tabkey.tableid = relid; tabentry = pgstat_fetch_stat_tabentry(&tabkey); - - if (PointerIsValid(tabentry)) + if (tabentry != NULL) result += (int64)(tabentry->n_dead_tuples); } - - if (PointerIsValid(stat_list)) - list_free(stat_list); + ReleaseSysCache(reltuple); PG_RETURN_INT64(result); } @@ -1672,7 +1727,9 @@ static void pgDoFreeRemainSegment(const RemainSegsCtx* remainSegsCtx, uint32 seg if (remainExtentType == ALLOC_SEGMENT || remainExtentType == DROP_SEGMENT) { SMgrRelation srel = smgropen(extentTag->remainExtentHashTag.rnode, InvalidBackendId); - smgrdounlink(srel, false); + if (smgrexists(srel, extentTag->forkNum)) { + smgrdounlink(srel, false); + } smgrclose(srel); } else if (remainExtentType == SHRINK_EXTENT) { if (extentTag->remainExtentHashTag.extentType == EXTENT_INVALID || extentTag->forkNum == InvalidForkNumber) { @@ -1696,27 +1753,76 @@ static void pgRemoveRemainSegInfo(RemainSegsCtx* remainSegsCtx, uint32 segIdx) (remainSegsCtx->remainSegsNum)--; } +static uint32 pgGetRemainContentLen(RemainSegsCtx* remainSegsCtx) +{ + uint32 contentLen = 0; + contentLen += sizeof(const uint32); + contentLen += sizeof(XLogRecPtr); + contentLen += sizeof(uint32); + contentLen += remainSegsCtx->remainSegsNum * sizeof(ExtentTag); + contentLen += sizeof(const uint32); + return contentLen; +} + +static void pgMakeUpRemainSegsContent(const RemainSegsCtx* remainSegsCtx, char* contentBuffer) +{ + uint32 usedLen = 0; + const uint32 magicNum = REMAIN_SEG_MAGIC_NUM; + errno_t errc = memcpy_s(contentBuffer, sizeof(const uint32), &magicNum, sizeof(const uint32)); + securec_check(errc, "\0", "\0"); + usedLen += sizeof(uint32); + + errc = memcpy_s(contentBuffer + usedLen, sizeof(XLogRecPtr), &remainSegsCtx->remainStartPoint, sizeof(XLogRecPtr)); + securec_check(errc, "\0", "\0"); + usedLen += sizeof(XLogRecPtr); + + errc = memcpy_s(contentBuffer + usedLen, sizeof(uint32), &remainSegsCtx->remainSegsNum, sizeof(uint32)); + securec_check(errc, "\0", "\0"); + usedLen += sizeof(uint32); + + if (remainSegsCtx->remainSegsNum) { + errc = memcpy_s(contentBuffer + usedLen, remainSegsCtx->remainSegsNum * sizeof(ExtentTag), + remainSegsCtx->remainSegsBuf, remainSegsCtx->remainSegsNum * sizeof(ExtentTag)); + securec_check(errc, "\0", "\0"); + usedLen += remainSegsCtx->remainSegsNum * sizeof(ExtentTag); + } + + errc = memcpy_s(contentBuffer + usedLen, sizeof(const uint32), &magicNum, sizeof(const uint32)); + securec_check(errc, "\0", "\0"); +} + static void pgOutputRemainInfoToFile(RemainSegsCtx* remainSegsCtx) { - int fd = BasicOpenFile(XLOG_REMAIN_SEGS_FILE_PATH, O_RDWR | O_CREAT | PG_BINARY, S_IRUSR | S_IWUSR); + uint32 contentLen = pgGetRemainContentLen(remainSegsCtx); + pg_crc32c crc; + char* contentBuffer = (char *)palloc_huge(CurrentMemoryContext, (contentLen + sizeof(pg_crc32c))); + + pgMakeUpRemainSegsContent(remainSegsCtx, contentBuffer); + + /* Contents are protected with a CRC */ + INIT_CRC32C(crc); + COMP_CRC32C(crc, contentBuffer, contentLen); + FIN_CRC32C(crc); + *(pg_crc32c *)(contentBuffer + contentLen) = crc; + + int fd = BasicOpenFile(XLOG_REMAIN_SEGS_FILE_PATH, O_RDWR | O_CREAT | O_TRUNC | PG_BINARY, S_IRUSR | S_IWUSR); if (fd < 0) { + pfree_ext(contentBuffer); ereport(ERROR, (errcode_for_file_access(), errmsg("could not create remain segs file \"%s\": %m", XLOG_REMAIN_SEGS_FILE_PATH))); + return; } - uint32 magicNum = REMAIN_SEG_MAGIC_NUM; - WriteRemainSegsFile(fd, (char *)&magicNum, sizeof(const uint32)); - - WriteRemainSegsFile(fd, (char *)&remainSegsCtx->remainStartPoint, sizeof(XLogRecPtr)); - - WriteRemainSegsFile(fd, (char *)remainSegsCtx->remainSegsBuf, sizeof(ExtentTag) * remainSegsCtx->remainSegsNum); - - WriteRemainSegsFile(fd, (char *)&magicNum, sizeof(const uint32)); + WriteRemainSegsFile(fd, contentBuffer, contentLen + sizeof(pg_crc32c)); if (close(fd)) { + pfree_ext(contentBuffer); ereport(ERROR, (errcode_for_file_access(), errmsg("could not close remain segs file \"%s\": %m", XLOG_REMAIN_SEGS_FILE_PATH))); + return; } + + pfree_ext(contentBuffer); } Datum pg_free_remain_segment(PG_FUNCTION_ARGS) @@ -5631,7 +5737,17 @@ void insert_pg_stat_get_session_wlmstat(Tuplestorestate *tupStore, TupleDesc tup if (beentry->st_state == STATE_UNDEFINED || beentry->st_state == STATE_DISABLED) { nulls[++i] = true; } else { - values[++i] = CStringGetTextDatum(beentry->st_activity); + char* mask_string = NULL; + /* Mask password in query string */ + mask_string = maskPassword(beentry->st_activity); + if (mask_string == NULL) { + mask_string = beentry->st_activity; + } + values[++i] = CStringGetTextDatum(mask_string); + + if (mask_string != beentry->st_activity) { + pfree(mask_string); + } } /*use backend state to get all workload info*/ @@ -7739,43 +7855,115 @@ Datum pg_stat_get_xact_tuples_fetched(PG_FUNCTION_ARGS) PG_RETURN_INT64(result); } +static void pg_stat_update_xact_tuples(Oid relid, PgStat_Counter *result, XactAction action) +{ + Assert(result != NULL); + + PgStat_TableStatus* tabentry = NULL; + PgStat_TableXactStatus* trans = NULL; + List* stat_list = NIL; + ListCell* stat_cell = NULL; + List* sublist = NIL; + ListCell* subcell = NULL; + Oid t_statFlag = InvalidOid; + Oid t_id = InvalidOid; + + int offset1 = 0; /* offset of PgStat_TableCounts */ + int offset2 = 0; /* offset of PgStat_TableXactStatus */ + bool hassubtransactions = false; + switch (action) { + /* for iud, subtransactions' counts aren't in t_tuples yet */ + case XACTION_INSERT: + offset1 = offsetof(PgStat_TableCounts, t_tuples_inserted); + offset2 = offsetof(PgStat_TableXactStatus, tuples_inserted); + hassubtransactions = true; + break; + case XACTION_UPDATE: + offset1 = offsetof(PgStat_TableCounts, t_tuples_updated); + offset2 = offsetof(PgStat_TableXactStatus, tuples_updated); + hassubtransactions = true; + break; + case XACTION_DELETE: + offset1 = offsetof(PgStat_TableCounts, t_tuples_deleted); + offset2 = offsetof(PgStat_TableXactStatus, tuples_deleted); + hassubtransactions = true; + break; + case XACTION_HOTUPDATE: + offset1 = offsetof(PgStat_TableCounts, t_tuples_hot_updated); + break; + default: + return; + } + + HeapTuple reltuple = SearchSysCache1(RELOID, ObjectIdGetDatum(relid)); + if (!HeapTupleIsValid(reltuple)) { + return; + } + Form_pg_class relation = (Form_pg_class)GETSTRUCT(reltuple); + + if (PARTTYPE_SUBPARTITIONED_RELATION == relation->parttype) { + stat_list = getPartitionObjectIdList(relid, PART_OBJ_TYPE_TABLE_PARTITION); + foreach (stat_cell, stat_list) { + Oid subparentid = lfirst_oid(stat_cell); + sublist = getPartitionObjectIdList(subparentid, PART_OBJ_TYPE_TABLE_SUB_PARTITION); + t_statFlag = subparentid; + foreach (subcell, sublist) { + t_id = lfirst_oid(subcell); + tabentry = find_tabstat_entry(t_id, t_statFlag); + if (tabentry != NULL) { + *result += *(PgStat_Counter *)((char *)&tabentry->t_counts + offset1); + if (hassubtransactions) { + for (trans = tabentry->trans; trans != NULL; trans = trans->upper) + *result += *(PgStat_Counter *)((char *)trans + offset2); + } + } + } + list_free_ext(sublist); + } + list_free_ext(stat_list); + } else if (PARTTYPE_PARTITIONED_RELATION == relation->parttype) { + char objtype = PART_OBJ_TYPE_TABLE_PARTITION; + if (relation->relkind == RELKIND_INDEX) { + objtype = PART_OBJ_TYPE_INDEX_PARTITION; + } + stat_list = getPartitionObjectIdList(relid, objtype); + t_statFlag = relid; + foreach (stat_cell, stat_list) { + t_id = lfirst_oid(stat_cell); + tabentry = find_tabstat_entry(t_id, t_statFlag); + if (tabentry != NULL) { + *result += *(PgStat_Counter *)((char *)&tabentry->t_counts + offset1); + if (hassubtransactions) { + for (trans = tabentry->trans; trans != NULL; trans = trans->upper) + *result += *(PgStat_Counter *)((char *)trans + offset2); + } + } + } + list_free_ext(stat_list); + } else { + t_statFlag = InvalidOid; + t_id = relid; + tabentry = find_tabstat_entry(t_id, t_statFlag); + if (tabentry != NULL) { + *result += *(PgStat_Counter *)((char *)&tabentry->t_counts + offset1); + if (hassubtransactions) { + for (trans = tabentry->trans; trans != NULL; trans = trans->upper) + *result += *(PgStat_Counter *)((char *)trans + offset2); + } + } + } + ReleaseSysCache(reltuple); +} + Datum pg_stat_get_xact_tuples_inserted(PG_FUNCTION_ARGS) { Oid relid = PG_GETARG_OID(0); int64 result = 0; - List* stat_list = NIL; - ListCell* stat_cell = NULL; - uint32 t_statFlag = InvalidOid; - PgStat_TableStatus* tabentry = NULL; - PgStat_TableXactStatus* trans = NULL; if (IS_PGXC_COORDINATOR && GetRelationLocInfo((relid))) PG_RETURN_INT64(pgxc_exec_tuples_stat(relid, "pg_stat_get_xact_tuples_inserted", EXEC_ON_DATANODES)); - if (isPartitionedObject(relid, RELKIND_RELATION, true)) { - t_statFlag = relid; - stat_list = getPartitionObjectIdList(relid, PART_OBJ_TYPE_TABLE_PARTITION); - } else if (isPartitionedObject(relid, RELKIND_INDEX, true)) { - t_statFlag = relid; - stat_list = getPartitionObjectIdList(relid, PART_OBJ_TYPE_INDEX_PARTITION); - } else { - t_statFlag = InvalidOid; - stat_list = lappend_oid(stat_list, relid); - } - - foreach (stat_cell, stat_list) { - Oid t_id = lfirst_oid(stat_cell); - tabentry = find_tabstat_entry(t_id, t_statFlag); - - if (!PointerIsValid(tabentry)) - continue; - - result += tabentry->t_counts.t_tuples_inserted; - - /* live subtransactions' counts aren't in t_tuples_inserted yet */ - for (trans = tabentry->trans; trans != NULL; trans = trans->upper) - result += trans->tuples_inserted; - } + pg_stat_update_xact_tuples(relid, &result, XACTION_INSERT); PG_RETURN_INT64(result); } @@ -7784,39 +7972,11 @@ Datum pg_stat_get_xact_tuples_updated(PG_FUNCTION_ARGS) { Oid relid = PG_GETARG_OID(0); int64 result = 0; - List* stat_list = NIL; - ListCell* stat_cell = NULL; - uint32 t_statFlag = InvalidOid; - PgStat_TableStatus* tabentry = NULL; - PgStat_TableXactStatus* trans = NULL; if (IS_PGXC_COORDINATOR && GetRelationLocInfo((relid))) PG_RETURN_INT64(pgxc_exec_tuples_stat(relid, "pg_stat_get_xact_tuples_updated", EXEC_ON_DATANODES)); - if (isPartitionedObject(relid, RELKIND_RELATION, true)) { - t_statFlag = relid; - stat_list = getPartitionObjectIdList(relid, PART_OBJ_TYPE_TABLE_PARTITION); - } else if (isPartitionedObject(relid, RELKIND_INDEX, true)) { - t_statFlag = relid; - stat_list = getPartitionObjectIdList(relid, PART_OBJ_TYPE_INDEX_PARTITION); - } else { - t_statFlag = InvalidOid; - stat_list = lappend_oid(stat_list, relid); - } - - foreach (stat_cell, stat_list) { - Oid t_id = lfirst_oid(stat_cell); - tabentry = find_tabstat_entry(t_id, t_statFlag); - - if (!PointerIsValid(tabentry)) - continue; - - result += tabentry->t_counts.t_tuples_updated; - - /* live subtransactions' counts aren't in t_tuples_inserted yet */ - for (trans = tabentry->trans; trans != NULL; trans = trans->upper) - result += trans->tuples_updated; - } + pg_stat_update_xact_tuples(relid, &result, XACTION_UPDATE); PG_RETURN_INT64(result); } @@ -7825,39 +7985,11 @@ Datum pg_stat_get_xact_tuples_deleted(PG_FUNCTION_ARGS) { Oid relid = PG_GETARG_OID(0); int64 result = 0; - List* stat_list = NIL; - ListCell* stat_cell = NULL; - uint32 t_statFlag = InvalidOid; - PgStat_TableStatus* tabentry = NULL; - PgStat_TableXactStatus* trans = NULL; if (IS_PGXC_COORDINATOR && GetRelationLocInfo((relid))) PG_RETURN_INT64(pgxc_exec_tuples_stat(relid, "pg_stat_get_xact_tuples_deleted", EXEC_ON_DATANODES)); - if (isPartitionedObject(relid, RELKIND_RELATION, true)) { - t_statFlag = relid; - stat_list = getPartitionObjectIdList(relid, PART_OBJ_TYPE_TABLE_PARTITION); - } else if (isPartitionedObject(relid, RELKIND_INDEX, true)) { - t_statFlag = relid; - stat_list = getPartitionObjectIdList(relid, PART_OBJ_TYPE_INDEX_PARTITION); - } else { - t_statFlag = InvalidOid; - stat_list = lappend_oid(stat_list, relid); - } - - foreach (stat_cell, stat_list) { - Oid t_id = lfirst_oid(stat_cell); - tabentry = find_tabstat_entry(t_id, t_statFlag); - - if (!PointerIsValid(tabentry)) - continue; - - result += tabentry->t_counts.t_tuples_deleted; - - /* live subtransactions' counts aren't in t_tuples_inserted yet */ - for (trans = tabentry->trans; trans != NULL; trans = trans->upper) - result += trans->tuples_deleted; - } + pg_stat_update_xact_tuples(relid, &result, XACTION_DELETE); PG_RETURN_INT64(result); } @@ -7866,34 +7998,11 @@ Datum pg_stat_get_xact_tuples_hot_updated(PG_FUNCTION_ARGS) { Oid relid = PG_GETARG_OID(0); int64 result = 0; - List* stat_list = NIL; - ListCell* stat_cell = NULL; - uint32 t_statFlag = InvalidOid; - PgStat_TableStatus* tabentry = NULL; if (IS_PGXC_COORDINATOR && GetRelationLocInfo((relid))) PG_RETURN_INT64(pgxc_exec_tuples_stat(relid, "pg_stat_get_xact_tuples_hot_updated", EXEC_ON_DATANODES)); - if (isPartitionedObject(relid, RELKIND_RELATION, true)) { - t_statFlag = relid; - stat_list = getPartitionObjectIdList(relid, PART_OBJ_TYPE_TABLE_PARTITION); - } else if (isPartitionedObject(relid, RELKIND_INDEX, true)) { - t_statFlag = relid; - stat_list = getPartitionObjectIdList(relid, PART_OBJ_TYPE_INDEX_PARTITION); - } else { - t_statFlag = InvalidOid; - stat_list = lappend_oid(stat_list, relid); - } - - foreach (stat_cell, stat_list) { - Oid t_id = lfirst_oid(stat_cell); - tabentry = find_tabstat_entry(t_id, t_statFlag); - - if (!PointerIsValid(tabentry)) - continue; - - result += tabentry->t_counts.t_tuples_hot_updated; - } + pg_stat_update_xact_tuples(relid, &result, XACTION_HOTUPDATE); PG_RETURN_INT64(result); } @@ -8080,28 +8189,47 @@ Datum pg_stat_reset_shared(PG_FUNCTION_ARGS) /* Reset a a single counter in the current database */ Datum pg_stat_reset_single_table_counters(PG_FUNCTION_ARGS) { - Oid taboid = PG_GETARG_OID(0); - Oid p_objectid; + Oid relid = PG_GETARG_OID(0); List* stat_list = NIL; ListCell* stat_cell = NULL; + List* sublist = NIL; + ListCell* subcell = NULL; /* no syscache in collector thread, we just deal with all partitions here */ - if (isPartitionedObject(taboid, RELKIND_INDEX, true)) { - p_objectid = taboid; - stat_list = getPartitionObjectIdList(taboid, PART_OBJ_TYPE_INDEX_PARTITION); - } else if (isPartitionedObject(taboid, RELKIND_RELATION, true)) { - p_objectid = taboid; - stat_list = getPartitionObjectIdList(taboid, PART_OBJ_TYPE_TABLE_PARTITION); + HeapTuple reltuple = SearchSysCache1(RELOID, ObjectIdGetDatum(relid)); + if (!HeapTupleIsValid(reltuple)) { + pgstat_reset_single_counter(InvalidOid, relid, RESET_TABLE); } else { - p_objectid = InvalidOid; - stat_list = lappend_oid(stat_list, taboid); - } + Form_pg_class relation = (Form_pg_class)GETSTRUCT(reltuple); - foreach (stat_cell, stat_list) { - /* reset every partition it is a partitioned object */ - pgstat_reset_single_counter(p_objectid, lfirst_oid(stat_cell), RESET_TABLE); + if (PARTTYPE_SUBPARTITIONED_RELATION == relation->parttype) { + stat_list = getPartitionObjectIdList(relid, PART_OBJ_TYPE_TABLE_PARTITION); + foreach (stat_cell, stat_list) { + Oid subparentid = lfirst_oid(stat_cell); + sublist = getPartitionObjectIdList(subparentid, PART_OBJ_TYPE_TABLE_SUB_PARTITION); + foreach (subcell, sublist) { + /* reset every partition it is a subpartitioned object */ + pgstat_reset_single_counter(subparentid, lfirst_oid(subcell), RESET_TABLE); + } + list_free_ext(sublist); + } + list_free_ext(stat_list); + } else if (PARTTYPE_PARTITIONED_RELATION == relation->parttype) { + char objtype = PART_OBJ_TYPE_TABLE_PARTITION; + if (relation->relkind == RELKIND_INDEX) { + objtype = PART_OBJ_TYPE_INDEX_PARTITION; + } + stat_list = getPartitionObjectIdList(relid, objtype); + foreach (stat_cell, stat_list) { + /* reset every partition it is a partitioned object */ + pgstat_reset_single_counter(relid, lfirst_oid(stat_cell), RESET_TABLE); + } + list_free_ext(stat_list); + } else { + pgstat_reset_single_counter(InvalidOid, relid, RESET_TABLE); + } + ReleaseSysCache(reltuple); } - list_free(stat_list); if (IS_PGXC_COORDINATOR && !IsConnFromCoord()) { Relation rel = NULL; @@ -8112,7 +8240,7 @@ Datum pg_stat_reset_single_table_counters(PG_FUNCTION_ARGS) char* relname = NULL; char* nspname = NULL; - rel = try_relation_open(taboid, AccessShareLock); + rel = try_relation_open(relid, AccessShareLock); if (!rel) PG_RETURN_NULL(); @@ -8129,7 +8257,7 @@ Datum pg_stat_reset_single_table_counters(PG_FUNCTION_ARGS) exec_nodes->accesstype = RELATION_ACCESS_READ; exec_nodes->primarynodelist = NIL; exec_nodes->en_expr = NULL; - exec_nodes->en_relid = taboid; + exec_nodes->en_relid = relid; exec_nodes->nodeList = NIL; initStringInfo(&buf); @@ -8669,7 +8797,7 @@ Datum pg_buffercache_pages(PG_FUNCTION_ARGS) fctx->record[i].forknum = bufHdr->tag.forkNum; fctx->record[i].blocknum = bufHdr->tag.blockNum; fctx->record[i].usagecount = BUF_STATE_GET_USAGECOUNT(buf_state); - fctx->record[i].pinning_backends = BUF_STATE_GET_REFCOUNT(buf_state); + fctx->record[i].pinning_backends = BUF_STATE_GET_REFCOUNT(buf_state); if (buf_state & BM_DIRTY) fctx->record[i].isdirty = true; @@ -8713,7 +8841,7 @@ Datum pg_buffercache_pages(PG_FUNCTION_ARGS) * Set all fields except the bufferid to null if the buffer is unused * or not valid. */ - if (fctx->record[i].blocknum == InvalidBlockNumber) { + if (fctx->record[i].blocknum == InvalidBlockNumber || fctx->record[i].isvalid == false) { nulls[1] = true; nulls[2] = true; nulls[3] = true; @@ -8745,7 +8873,7 @@ Datum pg_buffercache_pages(PG_FUNCTION_ARGS) nulls[8] = false; values[9] = BoolGetDatum(fctx->record[i].isvalid); nulls[9] = false; - values[10] = Int16GetDatum(fctx->record[i].usagecount); + values[10] = Int16GetDatum(fctx->record[i].usagecount); nulls[10] = false; values[11] = Int32GetDatum(fctx->record[i].pinning_backends); nulls[11] = false; @@ -10576,12 +10704,12 @@ void init_pg_comm_status(PG_FUNCTION_ARGS, FuncCallContext *funcctx, const int a TupleDescInitEntry(tupdesc, (AttrNumber) ARG_1, "node_name", TEXTOID, -1, 0); TupleDescInitEntry(tupdesc, (AttrNumber) ARG_2, "rxpck_rate", INT4OID, -1, 0); TupleDescInitEntry(tupdesc, (AttrNumber) ARG_3, "txpck_rate", INT4OID, -1, 0); - TupleDescInitEntry(tupdesc, (AttrNumber) ARG_4, "rxkB_rate", INT8OID, -1, 0); - TupleDescInitEntry(tupdesc, (AttrNumber) ARG_5, "txkB_rate", INT8OID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber) ARG_4, "rxkbyte_rate", INT8OID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber) ARG_5, "txkbyte_rate", INT8OID, -1, 0); TupleDescInitEntry(tupdesc, (AttrNumber) ARG_6, "buffer", INT8OID, -1, 0); - TupleDescInitEntry(tupdesc, (AttrNumber) ARG_7, "memKB_libcomm", INT8OID, -1, 0); - TupleDescInitEntry(tupdesc, (AttrNumber) ARG_8, "memKB_libpq", INT8OID, -1, 0); - TupleDescInitEntry(tupdesc, (AttrNumber) ARG_9, "used_PM", INT4OID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber) ARG_7, "memkbyte_libcomm", INT8OID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber) ARG_8, "memkbyte_libpq", INT8OID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber) ARG_9, "used_pm", INT4OID, -1, 0); TupleDescInitEntry(tupdesc, (AttrNumber) ARG_10, "used_sflow", INT4OID, -1, 0); TupleDescInitEntry(tupdesc, (AttrNumber) ARG_11, "used_rflow", INT4OID, -1, 0); TupleDescInitEntry(tupdesc, (AttrNumber) ARG_12, "used_rloop", INT4OID, -1, 0); @@ -10664,12 +10792,12 @@ void init_pgxc_comm_get_status(PG_FUNCTION_ARGS, FuncCallContext *funcctx, const TupleDescInitEntry(tupdesc, (AttrNumber) ARG_1, "node_name", TEXTOID, -1, 0); TupleDescInitEntry(tupdesc, (AttrNumber) ARG_2, "rxpck_rate", INT4OID, -1, 0); TupleDescInitEntry(tupdesc, (AttrNumber) ARG_3, "txpck_rate", INT4OID, -1, 0); - TupleDescInitEntry(tupdesc, (AttrNumber) ARG_4, "rxkB_rate", INT8OID, -1, 0); - TupleDescInitEntry(tupdesc, (AttrNumber) ARG_5, "txkB_rate", INT8OID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber) ARG_4, "rxkbyte_rate", INT8OID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber) ARG_5, "txkbyte_rate", INT8OID, -1, 0); TupleDescInitEntry(tupdesc, (AttrNumber) ARG_6, "buffer", INT8OID, -1, 0); - TupleDescInitEntry(tupdesc, (AttrNumber) ARG_7, "memKB_libcomm", INT8OID, -1, 0); - TupleDescInitEntry(tupdesc, (AttrNumber) ARG_8, "memKB_libpq", INT8OID, -1, 0); - TupleDescInitEntry(tupdesc, (AttrNumber) ARG_9, "used_PM", INT4OID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber) ARG_7, "memkbyte_libcomm", INT8OID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber) ARG_8, "memkbyte_libpq", INT8OID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber) ARG_9, "used_pm", INT4OID, -1, 0); TupleDescInitEntry(tupdesc, (AttrNumber) ARG_10, "used_sflow", INT4OID, -1, 0); TupleDescInitEntry(tupdesc, (AttrNumber) ARG_11, "used_rflow", INT4OID, -1, 0); TupleDescInitEntry(tupdesc, (AttrNumber) ARG_12, "used_rloop", INT4OID, -1, 0); @@ -13306,7 +13434,8 @@ typedef enum FuncName { INCRE_CKPT_FUNC, INCRE_BGWRITER_FUNC, DW_SINGLE_FUNC, - DW_BATCH_FUNC + DW_BATCH_FUNC, + CANDIDATE_FUNC } FuncName; HeapTuple form_function_tuple(int col_num, FuncName name) @@ -13370,6 +13499,15 @@ HeapTuple form_function_tuple(int col_num, FuncName name) nulls[i] = false; } break; + case CANDIDATE_FUNC: + for (i = 0; i < col_num; i++) { + TupleDescInitEntry( + tupdesc, (AttrNumber)(i + 1), g_pagewirter_view_two_col[i].name, + g_pagewirter_view_two_col[i].data_type, -1, 0); + values[i] = g_pagewirter_view_two_col[i].get_val(); + nulls[i] = false; + } + break; default: ereport(ERROR, (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("unknow func name"))); break; @@ -13398,6 +13536,12 @@ Datum local_bgwriter_stat(PG_FUNCTION_ARGS) PG_RETURN_DATUM(HeapTupleGetDatum(tuple)); } +Datum local_candidate_stat(PG_FUNCTION_ARGS) +{ + HeapTuple tuple = form_function_tuple(CANDIDATE_VIEW_COL_NUM, CANDIDATE_FUNC); + PG_RETURN_DATUM(HeapTupleGetDatum(tuple)); +} + void xc_stat_view(FuncCallContext* funcctx, int col_num, FuncName name) { MemoryContext oldcontext = NULL; @@ -13411,12 +13555,8 @@ void xc_stat_view(FuncCallContext* funcctx, int col_num, FuncName name) switch (name) { case PAGEWRITER_FUNC: for (i = 0; i < col_num; i++) { - TupleDescInitEntry(tupdesc, - (AttrNumber)(i + 1), - g_pagewriter_view_col[i].name, - g_pagewriter_view_col[i].data_type, - -1, - 0); + TupleDescInitEntry(tupdesc, (AttrNumber)(i + 1), g_pagewriter_view_col[i].name, + g_pagewriter_view_col[i].data_type, -1, 0); } break; case INCRE_CKPT_FUNC: @@ -13431,6 +13571,13 @@ void xc_stat_view(FuncCallContext* funcctx, int col_num, FuncName name) tupdesc, (AttrNumber)(i + 1), g_bgwriter_view_col[i].name, g_bgwriter_view_col[i].data_type, -1, 0); } break; + case CANDIDATE_FUNC: + for (i = 0; i < col_num; i++) { + TupleDescInitEntry( + tupdesc, (AttrNumber)(i + 1), g_pagewirter_view_two_col[i].name, + g_pagewirter_view_two_col[i].data_type, -1, 0); + } + break; default: ereport(ERROR, (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("unknow func name"))); break; @@ -13449,6 +13596,9 @@ void xc_stat_view(FuncCallContext* funcctx, int col_num, FuncName name) case INCRE_BGWRITER_FUNC: funcctx->user_fctx = get_remote_stat_bgwriter(funcctx->tuple_desc); break; + case CANDIDATE_FUNC: + funcctx->user_fctx = get_remote_stat_candidate(funcctx->tuple_desc); + break; default: ereport(ERROR, (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("unknow func name"))); break; @@ -13625,6 +13775,64 @@ Datum remote_bgwriter_stat(PG_FUNCTION_ARGS) #endif } +Datum remote_candidate_stat(PG_FUNCTION_ARGS) +{ +#ifndef ENABLE_MULTIPLE_NODES + FuncCallContext* funcctx = NULL; + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("unsupported view in single node mode."))); + + SRF_RETURN_DONE(funcctx); +#else + FuncCallContext* funcctx = NULL; + HeapTuple tuple = NULL; + Datum values[CANDIDATE_VIEW_COL_NUM]; + bool nulls[CANDIDATE_VIEW_COL_NUM] = {false}; + int i; + errno_t rc; + + rc = memset_s(values, sizeof(values), 0, sizeof(values)); + securec_check(rc, "\0", "\0"); + rc = memset_s(nulls, sizeof(nulls), 1, sizeof(nulls)); + securec_check(rc, "\0", "\0"); + + if (SRF_IS_FIRSTCALL()) { + funcctx = SRF_FIRSTCALL_INIT(); + xc_stat_view(funcctx, CANDIDATE_VIEW_COL_NUM, CANDIDATE_FUNC); + + if (funcctx->user_fctx == NULL) { + SRF_RETURN_DONE(funcctx); + } + } + + /* stuff done on every call of the function */ + funcctx = SRF_PERCALL_SETUP(); + + if (funcctx->user_fctx) { + Tuplestorestate* tupstore = ((TableDistributionInfo*)funcctx->user_fctx)->state->tupstore; + TupleTableSlot* slot = ((TableDistributionInfo*)funcctx->user_fctx)->slot; + + if (!tuplestore_gettupleslot(tupstore, true, false, slot)) { + FreeParallelFunctionState(((TableDistributionInfo*)funcctx->user_fctx)->state); + ExecDropSingleTupleTableSlot(slot); + pfree_ext(funcctx->user_fctx); + funcctx->user_fctx = NULL; + SRF_RETURN_DONE(funcctx); + } + for (i = 0; i < CANDIDATE_VIEW_COL_NUM; i++) { + values[i] = tableam_tslot_getattr(slot, (i + 1), &nulls[i]); + } + tuple = heap_form_tuple(funcctx->tuple_desc, values, nulls); + ExecClearTuple(slot); + + SRF_RETURN_NEXT(funcctx, HeapTupleGetDatum(tuple)); + } + + SRF_RETURN_DONE(funcctx); +#endif +} + + Datum local_single_flush_dw_stat(PG_FUNCTION_ARGS) { HeapTuple tuple = form_function_tuple(DW_SINGLE_VIEW_COL_NUM, DW_SINGLE_FUNC); @@ -14143,7 +14351,6 @@ Datum remote_rto_stat(PG_FUNCTION_ARGS) /* stuff done on every call of the function */ funcctx = SRF_PERCALL_SETUP(); - if (funcctx->user_fctx) { Tuplestorestate* tupstore = ((TableDistributionInfo*)funcctx->user_fctx)->state->tupstore; TupleTableSlot* slot = ((TableDistributionInfo*)funcctx->user_fctx)->slot; @@ -14290,7 +14497,6 @@ Datum remote_recovery_status(PG_FUNCTION_ARGS) /* stuff done on every call of the function */ funcctx = SRF_PERCALL_SETUP(); - if (funcctx->user_fctx) { Tuplestorestate* tupstore = ((TableDistributionInfo*)funcctx->user_fctx)->state->tupstore; TupleTableSlot* slot = ((TableDistributionInfo*)funcctx->user_fctx)->slot; @@ -14314,6 +14520,154 @@ Datum remote_recovery_status(PG_FUNCTION_ARGS) #endif } +Datum gs_hadr_local_rto_and_rpo_stat(PG_FUNCTION_ARGS) +{ + FuncCallContext* funcctx = NULL; + MemoryContext oldcontext = NULL; + HadrRTOAndRPOData* entry = NULL; + + /* stuff done only on the first call of the function */ + if (SRF_IS_FIRSTCALL()) { + TupleDesc tupdesc = NULL; + + /* create a function context for cross-call persistence */ + funcctx = SRF_FIRSTCALL_INIT(); + + /* + * switch to memory context appropriate for multiple function + * calls + */ + oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx); + + /* need a tuple descriptor representing 6 columns */ + tupdesc = CreateTemplateTupleDesc(HADR_RTO_RPO_VIEW_COL, false); + + TupleDescInitEntry(tupdesc, (AttrNumber)1, "hadr_sender_node_name", TEXTOID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber)2, "hadr_receiver_node_name", TEXTOID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber)3, "source_ip", TEXTOID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber)4, "source_port", INT4OID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber)5, "dest_ip", TEXTOID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber)6, "dest_port", INT4OID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber)7, "current_rto", INT8OID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber)8, "target_rto", INT8OID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber)9, "current_rpo", INT8OID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber)10, "target_rpo", INT8OID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber)11, "current_sleep_time", INT8OID, -1, 0); + /* complete descriptor of the tupledesc */ + funcctx->tuple_desc = BlessTupleDesc(tupdesc); + + funcctx->user_fctx = (void*)HadrGetRTOStat(&(funcctx->max_calls)); + + (void)MemoryContextSwitchTo(oldcontext); + } + + /* stuff done on every call of the function */ + funcctx = SRF_PERCALL_SETUP(); + + entry = (HadrRTOAndRPOData*)funcctx->user_fctx; + + if (funcctx->call_cntr < funcctx->max_calls) { /* do when there is more left to send */ + Datum values[HADR_RTO_RPO_VIEW_COL]; + bool nulls[HADR_RTO_RPO_VIEW_COL] = {false}; + HeapTuple tuple = NULL; + + errno_t rc = 0; + rc = memset_s(values, sizeof(values), 0, sizeof(values)); + securec_check(rc, "\0", "\0"); + rc = memset_s(nulls, sizeof(nulls), 0, sizeof(nulls)); + securec_check(rc, "\0", "\0"); + + entry += funcctx->call_cntr; + + values[0] = CStringGetTextDatum(g_instance.attr.attr_common.PGXCNodeName); + values[1] = CStringGetTextDatum(entry->id); + values[2] = CStringGetTextDatum(entry->source_ip); + values[3] = Int32GetDatum(entry->source_port); + values[4] = CStringGetTextDatum(entry->dest_ip); + values[5] = Int32GetDatum(entry->dest_port); + values[6] = Int64GetDatum(entry->current_rto); + values[7] = Int64GetDatum(entry->target_rto); + values[8] = Int64GetDatum(entry->current_rpo); + values[9] = Int64GetDatum(entry->target_rpo); + values[10] = Int64GetDatum(entry->current_sleep_time); + + tuple = heap_form_tuple(funcctx->tuple_desc, values, nulls); + SRF_RETURN_NEXT(funcctx, HeapTupleGetDatum(tuple)); + } + + /* do when there is no more left */ + SRF_RETURN_DONE(funcctx); + +} + +Datum gs_hadr_remote_rto_and_rpo_stat(PG_FUNCTION_ARGS) +{ + FuncCallContext* funcctx = NULL; +#ifndef ENABLE_MULTIPLE_NODES + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("unsupported view in single node mode."))); + + SRF_RETURN_DONE(funcctx); +#else + Datum values[HADR_RTO_RPO_VIEW_COL]; + bool nulls[HADR_RTO_RPO_VIEW_COL] = {false}; + + if (SRF_IS_FIRSTCALL()) { + funcctx = SRF_FIRSTCALL_INIT(); + + MemoryContext oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx); + + /* build tupdesc for result tuples. */ + TupleDesc tupdesc = CreateTemplateTupleDesc(HADR_RTO_RPO_VIEW_COL, false, TAM_HEAP); + TupleDescInitEntry(tupdesc, (AttrNumber)1, "hadr_sender_node_name", TEXTOID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber)2, "hadr_receiver_node_name", TEXTOID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber)3, "source_ip", TEXTOID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber)4, "source_port", INT4OID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber)5, "dest_ip", TEXTOID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber)6, "dest_port", INT4OID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber)7, "current_rto", INT8OID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber)8, "target_rto", INT8OID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber)9, "current_rpo", INT8OID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber)10, "target_rpo", INT8OID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber)11, "current_sleep_time", INT8OID, -1, 0); + + funcctx->tuple_desc = BlessTupleDesc(tupdesc); + funcctx->max_calls = u_sess->pgxc_cxt.NumDataNodes + u_sess->pgxc_cxt.NumCoords; + + /* the main call for get get_rto_stat */ + funcctx->user_fctx = streaming_hadr_get_recovery_stat(funcctx->tuple_desc); + MemoryContextSwitchTo(oldcontext); + + if (funcctx->user_fctx == NULL) { + SRF_RETURN_DONE(funcctx); + } + } + + /* stuff done on every call of the function */ + funcctx = SRF_PERCALL_SETUP(); + + if (funcctx->user_fctx) { + Tuplestorestate* tupstore = ((TableDistributionInfo*)funcctx->user_fctx)->state->tupstore; + TupleTableSlot* slot = ((TableDistributionInfo*)funcctx->user_fctx)->slot; + + if (!tuplestore_gettupleslot(tupstore, true, false, slot)) { + FreeParallelFunctionState(((TableDistributionInfo*)funcctx->user_fctx)->state); + ExecDropSingleTupleTableSlot(slot); + pfree_ext(funcctx->user_fctx); + funcctx->user_fctx = NULL; + SRF_RETURN_DONE(funcctx); + } + for (uint32 i = 0; i < HADR_RTO_RPO_VIEW_COL; i++) { + values[i] = tableam_tslot_getattr(slot, (i + 1), &nulls[i]); + } + HeapTuple tuple = heap_form_tuple(funcctx->tuple_desc, values, nulls); + ExecClearTuple(slot); + + SRF_RETURN_NEXT(funcctx, HeapTupleGetDatum(tuple)); + } + SRF_RETURN_DONE(funcctx); +#endif +} + Datum track_memory_context_detail(PG_FUNCTION_ARGS) { #define TRACK_MEMORY_DETAIL_ELEMENT_NUMBER 4 @@ -14406,6 +14760,7 @@ static void ReadUndoZoneMetaFromShared(int id, TupleDesc *tupleDesc, Tuplestores char textBuffer[STAT_UNDO_LOG_SIZE] = {'\0'}; if (id == INVALID_ZONE_ID) { used = UndoSize(UNDO_LOG_SPACE) + UndoSize(UNDO_SLOT_SPACE); + endIdx = UNDO_ZONE_COUNT - 1; } else { used = UndoSize(UNDO_LOG_SPACE); startIdx = id; @@ -14578,7 +14933,7 @@ static void ReadTransSlotMetaFromShared(int id, TupleDesc *tupleDesc, Tuplestore securec_check_ss(rc, "\0", "\0"); values[5] = CStringGetTextDatum(textBuffer); rc = snprintf_s(textBuffer, sizeof(textBuffer), sizeof(textBuffer) - 1, "%016lu", - g_instance.proc_base->oldestXidInUndo); + pg_atomic_read_u64(&g_instance.proc_base->oldestXidInUndo)); securec_check_ss(rc, "\0", "\0"); values[6] = CStringGetTextDatum(textBuffer); tuplestore_putvalues(tupstore, *tupleDesc, values, nulls); @@ -14607,7 +14962,7 @@ void GetTransMetaValues(Datum *values, char *textBuffer, securec_check_ss(*rc, "\0", "\0"); values[5] = CStringGetTextDatum(textBuffer); *rc = snprintf_s(textBuffer, STAT_UNDO_LOG_SIZE, STAT_UNDO_LOG_SIZE - 1, - "%016lu", g_instance.proc_base->oldestXidInUndo); + "%016lu", pg_atomic_read_u64(&g_instance.proc_base->oldestXidInUndo)); securec_check_ss(*rc, "\0", "\0"); values[6] = CStringGetTextDatum(textBuffer); } diff --git a/src/common/backend/utils/adt/regproc.cpp b/src/common/backend/utils/adt/regproc.cpp index d7436fa2d..c8979660a 100644 --- a/src/common/backend/utils/adt/regproc.cpp +++ b/src/common/backend/utils/adt/regproc.cpp @@ -57,8 +57,11 @@ static Datum regprocin_booststrap(char* procname) ScanKeyInit(&skey[0], Anum_pg_proc_proname, BTEqualStrategyNumber, F_NAMEEQ, CStringGetDatum(procname)); hdesc = heap_open(ProcedureRelationId, AccessShareLock); +#ifndef ENABLE_MULTIPLE_NODES + sysscan = systable_beginscan(hdesc, ProcedureNameArgsNspNewIndexId, true, NULL, 1, skey); +#else sysscan = systable_beginscan(hdesc, ProcedureNameArgsNspIndexId, true, NULL, 1, skey); - +#endif while (HeapTupleIsValid(tuple = systable_getnext(sysscan))) { result = (RegProcedure)HeapTupleGetOid(tuple); if (++matches > 1) diff --git a/src/common/backend/utils/adt/ri_triggers.cpp b/src/common/backend/utils/adt/ri_triggers.cpp index c594cf1a8..59707b5e0 100644 --- a/src/common/backend/utils/adt/ri_triggers.cpp +++ b/src/common/backend/utils/adt/ri_triggers.cpp @@ -304,6 +304,7 @@ static Datum RI_FKey_check(PG_FUNCTION_ARGS) if (riinfo.nkeys == 0) { ri_BuildQueryKeyFull(&qkey, &riinfo, RI_PLAN_CHECK_LOOKUPPK_NOCOLS); + SPI_STACK_LOG("connect", NULL, NULL); if (SPI_connect() != SPI_OK_CONNECT) { heap_close(pk_rel, RowShareLock); ereport(ERROR, (errcode(ERRCODE_SPI_CONNECTION_FAILURE), errmsg("SPI_connect failed"))); @@ -338,6 +339,7 @@ static Datum RI_FKey_check(PG_FUNCTION_ARGS) */ (void)ri_PerformCheck(&qkey, qplan, fk_rel, pk_rel, NULL, NULL, false, SPI_OK_SELECT, NameStr(riinfo.conname)); + SPI_STACK_LOG("finish", NULL, NULL); if (SPI_finish() != SPI_OK_FINISH) { heap_close(pk_rel, RowShareLock); ereport(ERROR, (errcode(ERRCODE_SPI_FINISH_FAILURE), errmsg("SPI_finish failed"))); @@ -423,6 +425,7 @@ static Datum RI_FKey_check(PG_FUNCTION_ARGS) break; } + SPI_STACK_LOG("connect", NULL, NULL); if (SPI_connect() != SPI_OK_CONNECT) { heap_close(pk_rel, RowShareLock); ereport(ERROR, (errcode(ERRCODE_SPI_CONNECTION_FAILURE), errmsg("SPI_connect failed"))); @@ -477,6 +480,7 @@ static Datum RI_FKey_check(PG_FUNCTION_ARGS) */ (void)ri_PerformCheck(&qkey, qplan, fk_rel, pk_rel, NULL, new_row, false, SPI_OK_SELECT, NameStr(riinfo.conname)); + SPI_STACK_LOG("finish", NULL, NULL); if (SPI_finish() != SPI_OK_FINISH) { heap_close(pk_rel, RowShareLock); ereport(ERROR, (errcode(ERRCODE_SPI_FINISH_FAILURE), errmsg("SPI_finish failed"))); @@ -575,6 +579,7 @@ static bool ri_Check_Pk_Match(Relation pk_rel, Relation fk_rel, HeapTuple old_ro break; } + SPI_STACK_LOG("connect", NULL, NULL); if (SPI_connect() != SPI_OK_CONNECT) ereport(ERROR, (errcode(ERRCODE_SPI_CONNECTION_FAILURE), errmsg("SPI_connect failed"))); @@ -636,6 +641,7 @@ static bool ri_Check_Pk_Match(Relation pk_rel, Relation fk_rel, HeapTuple old_ro SPI_OK_SELECT, NULL); + SPI_STACK_LOG("finish", NULL, NULL); if (SPI_finish() != SPI_OK_FINISH) ereport(ERROR, (errcode(ERRCODE_SPI_FINISH_FAILURE), errmsg("SPI_finish failed"))); @@ -748,6 +754,7 @@ Datum RI_FKey_noaction(PG_FUNCTION_ARGS) heap_close(fk_rel, RowShareLock); return PointerGetDatum(NULL); } + SPI_STACK_LOG("connect", NULL, NULL); if (SPI_connect() != SPI_OK_CONNECT) ereport(ERROR, (errcode(ERRCODE_SPI_CONNECTION_FAILURE), errmsg("SPI_connect failed"))); @@ -809,6 +816,7 @@ Datum RI_FKey_noaction(PG_FUNCTION_ARGS) SPI_OK_SELECT, NameStr(riinfo.conname)); + SPI_STACK_LOG("finish", NULL, NULL); if (SPI_finish() != SPI_OK_FINISH) ereport(ERROR, (errcode(ERRCODE_SPI_FINISH_FAILURE), errmsg("SPI_finish failed"))); @@ -933,6 +941,7 @@ Datum RI_FKey_cascade_del(PG_FUNCTION_ARGS) break; } + SPI_STACK_LOG("connect", NULL, NULL); if (SPI_connect() != SPI_OK_CONNECT) ereport(ERROR, (errcode(ERRCODE_SPI_CONNECTION_FAILURE), errmsg("SPI_connect failed"))); @@ -989,6 +998,7 @@ Datum RI_FKey_cascade_del(PG_FUNCTION_ARGS) SPI_OK_DELETE, NameStr(riinfo.conname)); + SPI_STACK_LOG("finish", NULL, NULL); if (SPI_finish() != SPI_OK_FINISH) ereport(ERROR, (errcode(ERRCODE_SPI_FINISH_FAILURE), errmsg("SPI_finish failed"))); @@ -1099,6 +1109,7 @@ Datum RI_FKey_cascade_upd(PG_FUNCTION_ARGS) return PointerGetDatum(NULL); } + SPI_STACK_LOG("connect", NULL, NULL); if (SPI_connect() != SPI_OK_CONNECT) ereport(ERROR, (errcode(ERRCODE_SPI_CONNECTION_FAILURE), errmsg("SPI_connect failed"))); @@ -1166,6 +1177,7 @@ Datum RI_FKey_cascade_upd(PG_FUNCTION_ARGS) SPI_OK_UPDATE, NameStr(riinfo.conname)); + SPI_STACK_LOG("finish", NULL, NULL); if (SPI_finish() != SPI_OK_FINISH) ereport(ERROR, (errcode(ERRCODE_SPI_FINISH_FAILURE), errmsg("SPI_finish failed"))); @@ -1280,6 +1292,7 @@ Datum RI_FKey_restrict(PG_FUNCTION_ARGS) return PointerGetDatum(NULL); } + SPI_STACK_LOG("connect", NULL, NULL); if (SPI_connect() != SPI_OK_CONNECT) ereport(ERROR, (errcode(ERRCODE_SPI_CONNECTION_FAILURE), errmsg("SPI_connect failed"))); @@ -1342,6 +1355,7 @@ Datum RI_FKey_restrict(PG_FUNCTION_ARGS) SPI_OK_SELECT, NameStr(riinfo.conname)); + SPI_STACK_LOG("finish", NULL, NULL); if (SPI_finish() != SPI_OK_FINISH) ereport(ERROR, (errcode(ERRCODE_SPI_FINISH_FAILURE), errmsg("SPI_finish failed"))); @@ -1475,6 +1489,7 @@ Datum RI_FKey_setnull_del(PG_FUNCTION_ARGS) break; } + SPI_STACK_LOG("connect", NULL, NULL); if (SPI_connect() != SPI_OK_CONNECT) ereport(ERROR, (errcode(ERRCODE_SPI_CONNECTION_FAILURE), errmsg("SPI_connect failed"))); @@ -1538,6 +1553,7 @@ Datum RI_FKey_setnull_del(PG_FUNCTION_ARGS) SPI_OK_UPDATE, NameStr(riinfo.conname)); + SPI_STACK_LOG("finish", NULL, NULL); if (SPI_finish() != SPI_OK_FINISH) ereport(ERROR, (errcode(ERRCODE_SPI_FINISH_FAILURE), errmsg("SPI_finish failed"))); @@ -1647,6 +1663,7 @@ Datum RI_FKey_setnull_upd(PG_FUNCTION_ARGS) return PointerGetDatum(NULL); } + SPI_STACK_LOG("connect", NULL, NULL); if (SPI_connect() != SPI_OK_CONNECT) ereport(ERROR, (errcode(ERRCODE_SPI_CONNECTION_FAILURE), errmsg("SPI_connect failed"))); @@ -1738,6 +1755,7 @@ Datum RI_FKey_setnull_upd(PG_FUNCTION_ARGS) SPI_OK_UPDATE, NameStr(riinfo.conname)); + SPI_STACK_LOG("finish", NULL, NULL); if (SPI_finish() != SPI_OK_FINISH) ereport(ERROR, (errcode(ERRCODE_SPI_FINISH_FAILURE), errmsg("SPI_finish failed"))); @@ -1849,6 +1867,7 @@ Datum RI_FKey_setdefault(PG_FUNCTION_ARGS) return PointerGetDatum(NULL); } + SPI_STACK_LOG("connect", NULL, NULL); if (SPI_connect() != SPI_OK_CONNECT) ereport(ERROR, (errcode(ERRCODE_SPI_CONNECTION_FAILURE), errmsg("SPI_connect failed"))); @@ -1923,6 +1942,7 @@ Datum RI_FKey_setdefault(PG_FUNCTION_ARGS) SPI_OK_UPDATE, NameStr(riinfo.conname)); + SPI_STACK_LOG("finish", NULL, NULL); if (SPI_finish() != SPI_OK_FINISH) ereport(ERROR, (errcode(ERRCODE_SPI_FINISH_FAILURE), errmsg("SPI_finish failed"))); @@ -2234,6 +2254,7 @@ bool RI_Initial_Check(Trigger* trigger, Relation fk_rel, Relation pk_rel) securec_check_ss(rc, "\0", "\0"); (void)set_config_option("work_mem", workmembuf, PGC_USERSET, PGC_S_SESSION, GUC_ACTION_SAVE, true, 0); + SPI_STACK_LOG("connect", NULL, NULL); if (SPI_connect() != SPI_OK_CONNECT) ereport(ERROR, (errcode(ERRCODE_SPI_CONNECTION_FAILURE), errmsg("SPI_connect failed"))); @@ -2303,6 +2324,7 @@ bool RI_Initial_Check(Trigger* trigger, Relation fk_rel, Relation pk_rel) ri_ReportViolation(&qkey, constrname, pk_rel, fk_rel, tuple, tupdesc, false); } + SPI_STACK_LOG("finish", NULL, NULL); if (SPI_finish() != SPI_OK_FINISH) ereport(ERROR, (errcode(ERRCODE_SPI_FINISH_FAILURE), errmsg("SPI_finish failed"))); diff --git a/src/common/backend/utils/adt/ruleutils.cpp b/src/common/backend/utils/adt/ruleutils.cpp index 52892d04f..1ada3a81f 100644 --- a/src/common/backend/utils/adt/ruleutils.cpp +++ b/src/common/backend/utils/adt/ruleutils.cpp @@ -6,6 +6,7 @@ * * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -289,6 +290,7 @@ static void get_sublink_expr(SubLink* sublink, deparse_context* context); static void get_from_clause(Query* query, const char* prefix, deparse_context* context, List* fromlist = NIL); static void get_from_clause_item(Node* jtnode, Query* query, deparse_context* context); static void get_from_clause_partition(RangeTblEntry* rte, StringInfo buf, deparse_context* context); +static void get_from_clause_subpartition(RangeTblEntry* rte, StringInfo buf); static void get_from_clause_bucket(RangeTblEntry* rte, StringInfo buf, deparse_context* context); static void get_from_clause_alias(Alias* alias, RangeTblEntry* rte, deparse_context* context); static void get_from_clause_coldeflist( @@ -362,6 +364,7 @@ static char* pg_get_ruledef_worker(Oid ruleoid, int prettyFlags) /* * Connect to SPI manager */ + SPI_STACK_LOG("connect", NULL, NULL); if (SPI_connect() != SPI_OK_CONNECT) ereport(ERROR, (errcode(ERRCODE_SPI_CONNECTION_FAILURE), errmsg("SPI_connect failed"))); @@ -407,6 +410,7 @@ static char* pg_get_ruledef_worker(Oid ruleoid, int prettyFlags) /* * Disconnect from SPI manager */ + SPI_STACK_LOG("finish", NULL, NULL); if (SPI_finish() != SPI_OK_FINISH) ereport(ERROR, (errcode(ERRCODE_SPI_FINISH_FAILURE), errmsg("SPI_finish failed"))); return buf.data; @@ -535,6 +539,7 @@ char* pg_get_viewdef_worker(Oid viewoid, int prettyFlags, int wrapColumn) /* * Connect to SPI manager */ + SPI_STACK_LOG("connect", NULL, NULL); if (SPI_connect() != SPI_OK_CONNECT) ereport(ERROR, (errcode(ERRCODE_SPI_CONNECTION_FAILURE), errmsg("SPI_connect failed"))); @@ -583,6 +588,7 @@ char* pg_get_viewdef_worker(Oid viewoid, int prettyFlags, int wrapColumn) /* * Disconnect from SPI manager */ + SPI_STACK_LOG("finish", NULL, NULL); if (SPI_finish() != SPI_OK_FINISH) ereport(ERROR, (errcode(ERRCODE_SPI_FINISH_FAILURE), errmsg("SPI_finish failed"))); @@ -2165,6 +2171,7 @@ static Oid SearchSysTable(const char* query) /* * Connect to SPI manager */ + SPI_STACK_LOG("connect", NULL, NULL); if (SPI_connect() != SPI_OK_CONNECT) { ereport(ERROR, (errcode(ERRCODE_SPI_CONNECTION_FAILURE), errmsg("SPI_connect failed"))); } @@ -2184,6 +2191,7 @@ static Oid SearchSysTable(const char* query) /* * Disconnect from SPI manager */ + SPI_STACK_LOG("finish", NULL, NULL); if (SPI_finish() != SPI_OK_FINISH) { ereport(ERROR, (errcode(ERRCODE_SPI_FINISH_FAILURE), errmsg("SPI_finish failed"))); } @@ -2298,6 +2306,7 @@ static char* pg_get_tabledef_worker(Oid tableoid) /* * Connect to SPI manager */ + SPI_STACK_LOG("connect", NULL, NULL); if (SPI_connect() != SPI_OK_CONNECT) ereport(ERROR, (errcode(ERRCODE_SPI_CONNECTION_FAILURE), errmsg("SPI_connect failed"))); @@ -2476,6 +2485,7 @@ static char* pg_get_tabledef_worker(Oid tableoid) /* * Disconnect from SPI manager */ + SPI_STACK_LOG("finish", NULL, NULL); if (SPI_finish() != SPI_OK_FINISH) ereport(ERROR, (errcode(ERRCODE_SPI_FINISH_FAILURE), errmsg("SPI_finish failed"))); @@ -2851,11 +2861,23 @@ static void pg_get_indexdef_partitions(Oid indexrelid, Form_pg_index idxrec, boo heap_close(rel, NoLock); return; } - List *partList = relationGetPartitionOidList(rel); - ListCell *lc = NULL; - bool isFirst = true; appendStringInfo(buf, " LOCAL"); + /* subpartition don't support creating index local on specifying partitions */ + if (RelationIsSubPartitioned(rel)) { + heap_close(rel, NoLock); + return; + } + + List *partList = NIL; + ListCell *lc = NULL; + bool isFirst = true; + if (RelationIsSubPartitioned(rel)) { + /* reserve this code, oneday we will support it */ + partList = RelationGetSubPartitionOidList(rel); + } else { + partList = relationGetPartitionOidList(rel); + } appendStringInfoChar(buf, '('); @@ -3569,7 +3591,7 @@ static text* pg_get_expr_worker(text* expr, Oid relid, const char* relname, int exprstr = text_to_cstring(expr); /* Convert expression to node tree */ - node = (Node*)stringToNode_skip_extern_fields(exprstr); + node = (Node*)stringToNode(exprstr); pfree_ext(exprstr); @@ -3713,7 +3735,7 @@ Datum pg_get_serial_sequence(PG_FUNCTION_ARGS) * can also have auto dependencies on columns.) */ if (deprec->classid == RelationRelationId && deprec->objsubid == 0 && deprec->deptype == DEPENDENCY_AUTO && - get_rel_relkind(deprec->objid) == RELKIND_SEQUENCE) { + RELKIND_IS_SEQUENCE(get_rel_relkind(deprec->objid))) { sequenceId = deprec->objid; break; } @@ -4579,12 +4601,10 @@ static void set_deparse_planstate(deparse_namespace* dpns, PlanState* ps) #ifdef ENABLE_MULTIPLE_NODES if (IsA(ps, ModifyTableState)) -#else - if (IsA(ps, ModifyTableState) && ((ModifyTableState*)ps)->mt_upsert != NULL && - ((ModifyTableState*)ps)->mt_upsert->us_action != UPSERT_NONE) -#endif dpns->inner_tlist = ((ModifyTableState*)ps)->mt_upsert->us_excludedtlist; - else if (dpns->inner_planstate != NULL) + else +#endif + if (dpns->inner_planstate != NULL) dpns->inner_tlist = dpns->inner_planstate->plan->targetlist; else dpns->inner_tlist = NIL; @@ -5336,7 +5356,23 @@ static void get_with_clause(Query* query, deparse_context* context) } appendStringInfoChar(buf, ')'); } - appendStringInfoString(buf, " AS ("); + appendStringInfoString(buf, " AS "); + switch (cte->ctematerialized) + { + case CTEMaterializeDefault: + break; + case CTEMaterializeAlways: + appendStringInfoString(buf, "MATERIALIZED "); + break; + case CTEMaterializeNever: + appendStringInfoString(buf, "NOT MATERIALIZED "); + break; + default: + ereport(ERROR, + (errcode(ERRCODE_UNRECOGNIZED_NODE_TYPE), + errmsg("unrecognized materialization option: %d", (int)cte->ctematerialized))); + } + appendStringInfoChar(buf, '('); if (PRETTY_INDENT(context)) appendContextKeyword(context, "", 0, 0, 0); get_query_def((Query*)cte->ctequery, @@ -5454,10 +5490,8 @@ static void get_select_query_def(Query* query, deparse_context* context, TupleDe break; } #else - if (rc->forUpdate) - appendContextKeyword(context, " FOR UPDATE", -PRETTYINDENT_STD, PRETTYINDENT_STD, 0); - else - appendContextKeyword(context, " FOR SHARE", -PRETTYINDENT_STD, PRETTYINDENT_STD, 0); + appendContextKeyword(context, rc->forUpdate ? " FOR UPDATE" : " FOR SHARE", + -PRETTYINDENT_STD, PRETTYINDENT_STD, 0); #endif appendStringInfo(buf, " OF %s", quote_identifier(rte->eref->aliasname)); if (rc->noWait) @@ -5737,6 +5771,11 @@ static void get_target_list(Query* query, List* targetList, deparse_context* con if (tle->resjunk) continue; /* ignore junk entries */ + /* Ignore junk columns from the targetlist in start with */ + if (query->hasRecursive && IsPseudoReturnColumn(tle->resname)) { + continue; + } + #ifdef PGXC /* Found at least one element in the target list */ if (no_targetlist) @@ -7248,12 +7287,18 @@ static void get_utility_query_def(Query* query, deparse_context* context) if (IsA(node, ColumnDef)) { ColumnDef* coldef = (ColumnDef*)node; TypeName* tpname = coldef->typname; + ClientLogicColumnRef *coldef_enc = coldef->clientLogicColumnRef; /* error out if we have no recourse at all */ if (!OidIsValid(tpname->typeOid)) ereport( ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("improper type oid: \"%u\"", tpname->typeOid))); + /* if the column is encrypted, we should convert its data type */ + if (coldef_enc != NULL && coldef_enc->dest_typname != NULL) { + tpname = coldef_enc->dest_typname; + } + /* get typename from the oid */ appendStringInfo(buf, "%s %s", @@ -7261,7 +7306,6 @@ static void get_utility_query_def(Query* query, deparse_context* context) format_type_with_typemod(tpname->typeOid, tpname->typemod)); // add the compress mode for this column - // switch (coldef->cmprs_mode) { case ATT_CMPR_NOCOMPRESS: appendStringInfoString(buf, " NOCOMPRESS "); @@ -9446,18 +9490,41 @@ static void get_rule_expr(Node* node, deparse_context* context, bool showimplici if (!PRETTY_PAREN(context)) appendStringInfoChar(buf, '('); get_rule_expr_paren((Node*)ntest->arg, context, true, node, no_alias); - switch (ntest->nulltesttype) { - case IS_NULL: - appendStringInfo(buf, " IS NULL"); - break; - case IS_NOT_NULL: - appendStringInfo(buf, " IS NOT NULL"); - break; - default: - ereport(ERROR, - (errcode(ERRCODE_UNRECOGNIZED_NODE_TYPE), - errmsg("unrecognized nulltesttype: %d", (int)ntest->nulltesttype))); - } + /* + * For scalar inputs, we prefer to print as IS [NOT] NULL, + * which is shorter and traditional. If it's a rowtype input + * but we're applying a scalar test, must print IS [NOT] + * DISTINCT FROM NULL to be semantically correct. + */ + if (ntest->argisrow || !type_is_rowtype(exprType((Node *) ntest->arg))) { + switch (ntest->nulltesttype) + { + case IS_NULL: + appendStringInfoString(buf, " IS NULL"); + break; + case IS_NOT_NULL: + appendStringInfoString(buf, " IS NOT NULL"); + break; + default: + ereport(ERROR, + (errcode(ERRCODE_UNRECOGNIZED_NODE_TYPE), + errmsg("unrecognized nulltesttype: %d", (int)ntest->nulltesttype))); + } + } else { + switch (ntest->nulltesttype) + { + case IS_NULL: + appendStringInfoString(buf, " IS NOT DISTINCT FROM NULL"); + break; + case IS_NOT_NULL: + appendStringInfoString(buf, " IS DISTINCT FROM NULL"); + break; + default: + ereport(ERROR, + (errcode(ERRCODE_UNRECOGNIZED_NODE_TYPE), + errmsg("unrecognized nulltesttype: %d", (int)ntest->nulltesttype))); + } + } if (!PRETTY_PAREN(context)) appendStringInfoChar(buf, ')'); } break; @@ -10568,6 +10635,18 @@ static void get_from_clause_partition(RangeTblEntry* rte, StringInfo buf, depars } } +static void get_from_clause_subpartition(RangeTblEntry* rte, StringInfo buf) +{ + Assert(rte->ispartrel); + + if (rte->pname) { + /* get the newest subpartition name from oid given */ + pfree(rte->pname->aliasname); + rte->pname->aliasname = getPartitionName(rte->subpartitionOid, false); + appendStringInfo(buf, " SUBPARTITION(%s)", quote_identifier(rte->pname->aliasname)); + } +} + static void get_from_clause_item(Node* jtnode, Query* query, deparse_context* context) { StringInfo buf = context->buf; @@ -10636,6 +10715,9 @@ static void get_from_clause_item(Node* jtnode, Query* query, deparse_context* co if (rte->isContainPartition) { get_from_clause_partition(rte, buf, context); } + if (rte->isContainSubPartition) { + get_from_clause_subpartition(rte, buf); + } if (rte->isbucket) { get_from_clause_bucket(rte, buf, context); } @@ -11302,13 +11384,20 @@ static char* generate_function_name( int p_nvargs; Oid* p_true_typeids = NULL; Oid p_vatype; - + NameData* pkgname = NULL; + Datum pkgOiddatum; + Oid pkgOid = InvalidOid; + bool isnull = true; proctup = SearchSysCache1(PROCOID, ObjectIdGetDatum(funcid)); if (!HeapTupleIsValid(proctup)) ereport(ERROR, (errcode(ERRCODE_CACHE_LOOKUP_FAILED), errmsg("cache lookup failed for function %u", funcid))); procform = (Form_pg_proc)GETSTRUCT(proctup); proname = NameStr(procform->proname); - + pkgOiddatum = SysCacheGetAttr(PROCOID, proctup, Anum_pg_proc_packageid, &isnull); + if (!isnull) { + pkgOid = DatumGetObjectId(pkgOiddatum); + pkgname = GetPackageName(pkgOid); + } /* * If this function's element type of variadic array is not ANY * or it was used originally, we should print VARIADIC. We must do @@ -11350,9 +11439,11 @@ static char* generate_function_name( nspname = NULL; else nspname = get_namespace_name(procform->pronamespace); - - result = quote_qualified_identifier(nspname, proname); - + if (OidIsValid(pkgOid)) { + result = quote_qualified_identifier(nspname, pkgname->data, proname); + } else { + result = quote_qualified_identifier(nspname, proname); + } ReleaseSysCache(proctup); return result; diff --git a/src/common/backend/utils/adt/selfuncs.cpp b/src/common/backend/utils/adt/selfuncs.cpp index e46368271..3ab7f5870 100755 --- a/src/common/backend/utils/adt/selfuncs.cpp +++ b/src/common/backend/utils/adt/selfuncs.cpp @@ -12,6 +12,7 @@ * * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -6784,9 +6785,13 @@ Datum btcostestimate(PG_FUNCTION_ARGS) Oid staoid = relid; if (OidIsValid(rte->partitionOid)) { - Assert(rte->isContainPartition && rte->ispartrel); + Assert(rte->ispartrel); + if (rte->isContainPartition) { + staoid = rte->partitionOid; + } else if (rte->isContainSubPartition) { + staoid = rte->subpartitionOid; + } stakind = STARELKIND_PARTITION; - staoid = rte->partitionOid; } if (relPersistence == RELPERSISTENCE_GLOBAL_TEMP) { @@ -8037,7 +8042,6 @@ double estimate_hash_num_distinct(PlannerInfo* root, List* hashkey, Path* inner_ Assert(IsA(inner_path, StreamPath) || IsA(inner_path, HashPath) || IsLocatorReplicated(inner_path->locator_type)); - // if (IsLocatorReplicated(vardata->rel->locator_type) || IsLocatorReplicated(inner_path->locator_type)) if (IsLocatorReplicated(inner_path->locator_type)) { /* Inner is broadcast or replication, we should use global distinct. */ ndistinct = global_ndistinct; diff --git a/src/common/backend/utils/adt/timestamp.cpp b/src/common/backend/utils/adt/timestamp.cpp index f9daa22ca..d41ed9748 100644 --- a/src/common/backend/utils/adt/timestamp.cpp +++ b/src/common/backend/utils/adt/timestamp.cpp @@ -5,6 +5,7 @@ * * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -143,7 +144,8 @@ void CheckTimeValidity(struct pg_tm* tm); static int WhetherFebLeapYear(struct pg_tm* tm); static int WhetherSmallMon(struct pg_tm* tm); static int WhetherBigMon(struct pg_tm* tm); -static int daydiff_timestamp(const struct pg_tm* tm, const struct pg_tm* tm1, const struct pg_tm* tm2); +static int daydiff_timestamp(const struct pg_tm* tm, const struct pg_tm* tm1, const struct pg_tm* tm2, + bool day_fix = false); void timestamp_FilpSign(pg_tm* tm); void timestamp_CalculateFields(TimestampTz* dt1, TimestampTz* dt2, fsec_t* fsec, pg_tm* tm, pg_tm* tm1, pg_tm* tm2); @@ -3197,7 +3199,7 @@ Datum interval_avg(PG_FUNCTION_ARGS) * @in tm1 : timestmap1 * @in tm2 : timestamp2 */ -static int daydiff_timestamp(const struct pg_tm* tm, const struct pg_tm* tm1, const struct pg_tm* tm2) +static int daydiff_timestamp(const struct pg_tm* tm, const struct pg_tm* tm1, const struct pg_tm* tm2, bool day_fix) { int result = 0; int tm1_days_of_year = 0, tm2_days_of_year = 0; @@ -3259,6 +3261,18 @@ static int daydiff_timestamp(const struct pg_tm* tm, const struct pg_tm* tm1, co } result = tm1_days_of_year - tm2_days_of_year; + if (!day_fix) { + return result; + } + + int tm1_secs_of_day = tm1->tm_hour * 60 * 60 + tm1->tm_min * 60 + tm1->tm_sec; + int tm2_secs_of_day = tm2->tm_hour * 60 * 60 + tm2->tm_min * 60 + tm2->tm_sec; + + if (result < 0 && tm1_secs_of_day > tm2_secs_of_day) { + return result + 1; + } else if (result > 0 && tm1_secs_of_day < tm2_secs_of_day) { + return result - 1; + } return result; } @@ -3271,6 +3285,14 @@ Datum timestamp_diff(PG_FUNCTION_ARGS) text* units = PG_GETARG_TEXT_PP(0); TimestampTz dt1 = PG_GETARG_TIMESTAMP(2); TimestampTz dt2 = PG_GETARG_TIMESTAMP(1); + int64 result = PointerGetDatum(0); + + result = timestamp_diff_internal(units, dt1, dt2); + PG_RETURN_INT64(result); +} + +int64 timestamp_diff_internal(text *units, TimestampTz dt1, TimestampTz dt2, bool day_fix) +{ char* lowunits = NULL; int64 result = PointerGetDatum(0); int64 sec_result; @@ -3318,37 +3340,36 @@ Datum timestamp_diff(PG_FUNCTION_ARGS) result = (tm->tm_year * MONTHS_PER_YEAR + tm->tm_mon) / 3; break; case DTK_DAY: - result = daydiff_timestamp(tm, tm1, tm2); + result = daydiff_timestamp(tm, tm1, tm2, day_fix); break; case DTK_WEEK: - result = daydiff_timestamp(tm, tm1, tm2) / 7; + result = daydiff_timestamp(tm, tm1, tm2, day_fix) / 7; break; case DTK_HOUR: #ifdef HAVE_INT64_TIMESTAMP - result = daydiff_timestamp(tm, tm1, tm2) * INT64CONST(24) + tm->tm_hour; + result = daydiff_timestamp(tm, tm1, tm2, day_fix) * INT64CONST(24) + tm->tm_hour; #else - result = daydiff_timestamp(tm, tm1, tm2) * HOURS_PER_DAY + tm->tm_hour; + result = daydiff_timestamp(tm, tm1, tm2, day_fix) * HOURS_PER_DAY + tm->tm_hour; #endif break; case DTK_MINUTE: { #ifdef HAVE_INT64_TIMESTAMP - result = (daydiff_timestamp(tm, tm1, tm2) * INT64CONST(24) + tm->tm_hour) * INT64CONST(60) + tm->tm_min; + result = (daydiff_timestamp(tm, tm1, tm2, day_fix) * INT64CONST(24) + tm->tm_hour) * + INT64CONST(60) + tm->tm_min; #else - result = (daydiff_timestamp(tm, tm1, tm2) * HOURS_PER_DAY + tm->tm_hour) * (double)MINS_PER_HOUR + - tm->tm_min; + result = (daydiff_timestamp(tm, tm1, tm2, day_fix) * HOURS_PER_DAY + tm->tm_hour) * + (double)MINS_PER_HOUR + tm->tm_min; #endif } break; case DTK_SECOND: { #ifdef HAVE_INT64_TIMESTAMP - result = - ((daydiff_timestamp(tm, tm1, tm2) * INT64CONST(24) + tm->tm_hour) * INT64CONST(60) + tm->tm_min) * - INT64CONST(60) + - tm->tm_sec; + result = ((daydiff_timestamp(tm, tm1, tm2, day_fix) * INT64CONST(24) + tm->tm_hour) * + INT64CONST(60) + tm->tm_min) * + INT64CONST(60) + tm->tm_sec; #else - result = ((daydiff_timestamp(tm, tm1, tm2) * HOURS_PER_DAY + tm->tm_hour) * (double)MINS_PER_HOUR + - tm->tm_min) * - (double)SECS_PER_MINUTE + - tm->tm_sec; + result = ((daydiff_timestamp(tm, tm1, tm2, day_fix) * HOURS_PER_DAY + tm->tm_hour) * + (double)MINS_PER_HOUR + tm->tm_min) * + (double)SECS_PER_MINUTE + tm->tm_sec; #endif } break; case DTK_MICROSEC: @@ -3359,9 +3380,8 @@ Datum timestamp_diff(PG_FUNCTION_ARGS) */ { #ifdef HAVE_INT64_TIMESTAMP - sec_result = ((daydiff_timestamp(tm, tm1, tm2) * INT64CONST(24) + tm->tm_hour) * INT64CONST(60) + - tm->tm_min) * - INT64CONST(60) + + sec_result = ((daydiff_timestamp(tm, tm1, tm2, day_fix) * INT64CONST(24) + tm->tm_hour) * + INT64CONST(60) + tm->tm_min) * INT64CONST(60) + tm->tm_sec; if (unlikely((int128)sec_result * INT64CONST(1000000) > (int128)INT64_MAX || (int128)sec_result * INT64CONST(1000000) + (int128)fsec > (int128)INT64_MAX || @@ -3374,11 +3394,9 @@ Datum timestamp_diff(PG_FUNCTION_ARGS) } result = sec_result * INT64CONST(1000000) + fsec; #else - sec_result = - ((daydiff_timestamp(tm, tm1, tm2) * HOURS_PER_DAY + tm->tm_hour) * (double)MINS_PER_HOUR + - tm->tm_min) * - (double)SECS_PER_MINUTE + - tm->tm_sec; + sec_result = ((daydiff_timestamp(tm, tm1, tm2, day_fix) * HOURS_PER_DAY + tm->tm_hour) * + (double)MINS_PER_HOUR + tm->tm_min) * + (double)SECS_PER_MINUTE + tm->tm_sec; if (unlikely((int128)sec_result * (double)USECS_PER_SEC > (int128)INT64_MAX || (int128)sec_result * (double)USECS_PER_SEC + (int128)fsec > (int128)INT64_MAX || (int128)sec_result * (double)USECS_PER_SEC < (int128)INT64_MIN || @@ -3404,8 +3422,7 @@ Datum timestamp_diff(PG_FUNCTION_ARGS) errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("timestamp with time zone units \"%s\" not recognized", lowunits))); } - - PG_RETURN_INT64(result); + return result; } /* timestamp_age() @@ -3844,6 +3861,39 @@ Datum interval_trunc(PG_FUNCTION_ARGS) PG_RETURN_INTERVAL_P(result); } +/* timestamp_trunc_alias() + * truncate timestamp to specified units + * + * reuse from timestamp_trunc and + * provide "trunc" interface for truncating date + */ +Datum timestamp_trunc_alias(PG_FUNCTION_ARGS) +{ + return DirectFunctionCall2(timestamp_trunc, PG_GETARG_DATUM(1), PG_GETARG_DATUM(0)); +} + +/* timestamptz_trunc_alias() + * truncate timestamptz to specified units + * + * reuse from timestamptz_trunc and + * provide "trunc" interface for truncating date + */ +Datum timestamptz_trunc_alias(PG_FUNCTION_ARGS) +{ + return DirectFunctionCall2(timestamptz_trunc, PG_GETARG_DATUM(1), PG_GETARG_DATUM(0)); +} + +/* interval_trunc_alias() + * extract specified field from interval + * + * reuse from interval_trunc and + * provide "trunc" interface for extracting interval + */ +Datum interval_trunc_alias(PG_FUNCTION_ARGS) +{ + return DirectFunctionCall2(interval_trunc, PG_GETARG_DATUM(1), PG_GETARG_DATUM(0)); +} + /* isoweek2j() * * Return the Julian day which corresponds to the first day (Monday) of the given ISO 8601 year and week. diff --git a/src/common/backend/utils/adt/tsvector_op.cpp b/src/common/backend/utils/adt/tsvector_op.cpp index 0fdb0a0ef..4e5bf8ff9 100644 --- a/src/common/backend/utils/adt/tsvector_op.cpp +++ b/src/common/backend/utils/adt/tsvector_op.cpp @@ -1133,6 +1133,7 @@ Datum ts_stat1(PG_FUNCTION_ARGS) /* * Connect to SPI manager */ + SPI_STACK_LOG("connect", NULL, NULL); if ((rc = SPI_connect()) != SPI_OK_CONNECT) ereport(ERROR, (errcode(ERRCODE_SPI_CONNECTION_FAILURE), @@ -1141,6 +1142,7 @@ Datum ts_stat1(PG_FUNCTION_ARGS) stat = ts_stat_sql(funcctx->multi_call_memory_ctx, txt, NULL); PG_FREE_IF_COPY(txt, 0); ts_setup_firstcall(fcinfo, funcctx, stat); + SPI_STACK_LOG("finish", NULL, NULL); SPI_finish(); } @@ -1166,6 +1168,7 @@ Datum ts_stat2(PG_FUNCTION_ARGS) /* * Connect to SPI manager */ + SPI_STACK_LOG("connect", NULL, NULL); if ((rc = SPI_connect()) != SPI_OK_CONNECT) ereport(ERROR, (errcode(ERRCODE_SPI_CONNECTION_FAILURE), @@ -1175,6 +1178,7 @@ Datum ts_stat2(PG_FUNCTION_ARGS) PG_FREE_IF_COPY(txt, 0); PG_FREE_IF_COPY(ws, 1); ts_setup_firstcall(fcinfo, funcctx, stat); + SPI_STACK_LOG("finish", NULL, NULL); SPI_finish(); } diff --git a/src/common/backend/utils/adt/varchar.cpp b/src/common/backend/utils/adt/varchar.cpp index 9a9a00f0b..affccc03b 100644 --- a/src/common/backend/utils/adt/varchar.cpp +++ b/src/common/backend/utils/adt/varchar.cpp @@ -654,7 +654,7 @@ Datum bpcharlen(PG_FUNCTION_ARGS) int len; /* get number of bytes, ignoring trailing spaces */ - if (DB_IS_CMPT(PG_FORMAT | B_FORMAT)) { + if (DB_IS_CMPT(PG_FORMAT)) { len = bcTruelen(arg); } else { len = VARSIZE_ANY_EXHDR(arg); diff --git a/src/common/backend/utils/adt/varlena.cpp b/src/common/backend/utils/adt/varlena.cpp index f409297ad..1d884e9a2 100644 --- a/src/common/backend/utils/adt/varlena.cpp +++ b/src/common/backend/utils/adt/varlena.cpp @@ -5,6 +5,7 @@ * * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -183,6 +184,19 @@ bytea* cstring_to_bytea_with_len(const char* s, int len) return result; } +BpChar* cstring_to_bpchar_with_len(const char* s, int len) +{ + BpChar *result = (BpChar *) palloc0(len + VARHDRSZ); + + SET_VARSIZE(result, len + VARHDRSZ); + if (len > 0) { + int rc = memcpy_s(VARDATA(result), len, s, len); + securec_check(rc, "\0", "\0"); + } + + return result; +} + /* * text_to_cstring * @@ -349,6 +363,56 @@ Datum byteain(PG_FUNCTION_ARGS) PG_RETURN_BYTEA_P(result); } +static bytea* sub_blob(bytea* data, int32 amount) +{ + int32 len = 0; + int32 length = 0; + bytea* result = NULL; + char* ptr = NULL; + int offset = 0; + errno_t rc = EOK; + const int MAX_BATCH_SIZE = 32767; + length = VARSIZE_ANY_EXHDR(data); + if (amount < 1 || amount > MAX_BATCH_SIZE) { + ereport(ERROR, + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("argument is null, invalid, or out of range"))); + } + if (offset > length) { + return NULL; + } + if (length < amount) { + len = length + VARHDRSZ; + } else { + len = amount + VARHDRSZ; + } + /* Avoid the memcpy exceeding */ + if (len > ((length - offset) + VARHDRSZ + 1)) { + len = (length - offset) + VARHDRSZ + 1; + } + result = (bytea*)palloc0(len); + SET_VARSIZE(result, len); + ptr = VARDATA(result); + rc = memcpy_s(ptr, (len - VARHDRSZ), VARDATA_ANY(data) + (offset - 1), (len - VARHDRSZ)); + securec_check(rc, "\0", "\0"); + return result; +} +static text* sub_text(text* t1, int32 amount) +{ + int32 len; + int32 offset = 0; + const int MAX_BATCH_SIZE = 32767; + int32 len1 = text_length(PointerGetDatum(t1)); + if (amount < 1 || amount > MAX_BATCH_SIZE) { + ereport(ERROR, + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("argument is null, invalid, or out of range"))); + } + len = len1 < (amount + offset - 1) ? (len1 - offset + 1) : amount; + return text_substring(PointerGetDatum(t1), Int32GetDatum(offset), Int32GetDatum(len), false); +} + + /* * byteaout - converts to printable representation of byte array * @@ -358,6 +422,12 @@ Datum byteain(PG_FUNCTION_ARGS) Datum byteaout(PG_FUNCTION_ARGS) { bytea* vlena = PG_GETARG_BYTEA_PP(0); + + if (u_sess->attr.attr_sql.for_print_tuple && u_sess->attr.attr_common.pset_lob_length != 0) { + bytea* tmp = NULL; + tmp = sub_blob(vlena, u_sess->attr.attr_common.pset_lob_length); + vlena = tmp; + } char* result = NULL; char* rp = NULL; @@ -454,6 +524,12 @@ Datum rawout(PG_FUNCTION_ARGS) fcinfo->fncollation = DEFAULT_COLLATION_OID; bytea* data = PG_GETARG_BYTEA_P(0); + + if (u_sess->attr.attr_sql.for_print_tuple && u_sess->attr.attr_common.pset_lob_length != 0) { + bytea* tmp = NULL; + tmp = sub_blob(data, u_sess->attr.attr_common.pset_lob_length); + data = tmp; + } text* ans = NULL; int datalen = 0; int resultlen = 0; @@ -464,8 +540,8 @@ Datum rawout(PG_FUNCTION_ARGS) resultlen = datalen << 1; - if (resultlen < (int)(MaxAllocSize - VARHDRSZ)) { - ans = (text*)palloc(VARHDRSZ + resultlen); + if (resultlen < (int)(MaxAllocSize - VARHDRSZ) * 2) { + ans = (text*)palloc_huge(CurrentMemoryContext, VARHDRSZ + resultlen); ans_len = hex_encode(VARDATA(data), datalen, VARDATA(ans)); /* Make this FATAL 'cause we've trodden on memory ... */ if (ans_len > resultlen) @@ -522,11 +598,11 @@ Datum bytearecv(PG_FUNCTION_ARGS) /* Because of the hex encoding when output a blob, the output size of blob will be twice(as func hex_enc_len). And the max palloc size is 1GB, so we only input blobs less than 500M */ - if ((long)nbytes* 2 + VARHDRSZ > (long)(MaxAllocSize)) { + if ((long)nbytes* 2 + VARHDRSZ > (long)(MaxAllocSize) * 2) { ereport(ERROR, (errcode(ERRCODE_OUT_OF_MEMORY), - errmsg("blob/bytea size:%d, only can recevie blob/bytea less than 500M ", nbytes))); + errmsg("blob/bytea size:%d, only can recevie blob/bytea less than 1000M ", nbytes))); } - result = (bytea*)palloc(nbytes + VARHDRSZ); + result = (bytea*)palloc_huge(CurrentMemoryContext, nbytes + VARHDRSZ); SET_VARSIZE(result, nbytes + VARHDRSZ); pq_copymsgbytes(buf, VARDATA(result), nbytes); PG_RETURN_BYTEA_P(result); @@ -614,6 +690,11 @@ Datum textout(PG_FUNCTION_ARGS) { Datum txt = PG_GETARG_DATUM(0); + if (u_sess->attr.attr_sql.for_print_tuple && u_sess->attr.attr_common.pset_lob_length != 0) { + text* outputText = sub_text((text*)DatumGetPointer(txt), u_sess->attr.attr_common.pset_lob_length); + PG_RETURN_CSTRING(text_to_cstring(outputText)); + } + PG_RETURN_CSTRING(TextDatumGetCString(txt)); } @@ -3928,6 +4009,33 @@ static void appendStringInfoText(StringInfo str, const text* t) appendBinaryStringInfo(str, VARDATA_ANY(t), VARSIZE_ANY_EXHDR(t)); } +/* + * replace_text_with_two_args + * replace all occurrences of 'old_sub_str' in 'orig_str' + * with '' to form 'new_str' + * + * the effect is equivalent to + * + * delete all occurrences of 'old_sub_str' in 'orig_str' + * to form 'new_str' + * + * returns 'orig_str' if 'old_sub_str' == '' or 'orig_str' == '' + * otherwise returns 'new_str' + */ +Datum replace_text_with_two_args(PG_FUNCTION_ARGS) +{ + if (PG_ARGISNULL(0)) + PG_RETURN_NULL(); + + if (PG_ARGISNULL(1)) + PG_RETURN_TEXT_P(PG_GETARG_TEXT_PP(0)); + + return DirectFunctionCall3(replace_text, + PG_GETARG_DATUM(0), + PG_GETARG_DATUM(1), + CStringGetTextDatum("\0")); +} + /* * replace_text * replace all occurrences of 'old_sub_str' in 'orig_str' diff --git a/src/common/backend/utils/adt/xml.cpp b/src/common/backend/utils/adt/xml.cpp index 2194c986d..3fbfb3ab9 100644 --- a/src/common/backend/utils/adt/xml.cpp +++ b/src/common/backend/utils/adt/xml.cpp @@ -2176,6 +2176,7 @@ Datum cursor_to_xml(PG_FUNCTION_ARGS) /* * Connect to SPI manager */ + SPI_STACK_LOG("connect", NULL, NULL); if ((rc = SPI_connect()) != SPI_OK_CONNECT) ereport(ERROR, (errmodule(MOD_OPT), @@ -2190,6 +2191,7 @@ Datum cursor_to_xml(PG_FUNCTION_ARGS) for (i = 0; i < (int)SPI_processed; i++) SPI_sql_row_to_xmlelement(i, &result, NULL, nulls, tableforest, targetns, true); + SPI_STACK_LOG("finish", portal->sourceText, NULL); SPI_finish(); PG_RETURN_XML_P(stringinfo_to_xmltype(&result)); @@ -2251,6 +2253,7 @@ static StringInfo query_to_xml_internal(const char* query, char* tablename, cons /* * Connect to SPI manager */ + SPI_STACK_LOG("connect", NULL, NULL); if ((rc = SPI_connect()) != SPI_OK_CONNECT) ereport(ERROR, (errmodule(MOD_OPT), @@ -2272,6 +2275,7 @@ static StringInfo query_to_xml_internal(const char* query, char* tablename, cons if (!tableforest) xmldata_root_element_end(result, xmltn); + SPI_STACK_LOG("finish", query, NULL); SPI_finish(); return result; @@ -2326,6 +2330,7 @@ Datum query_to_xmlschema(PG_FUNCTION_ARGS) /* * Connect to SPI manager */ + SPI_STACK_LOG("connect", NULL, NULL); if ((rc = SPI_connect()) != SPI_OK_CONNECT) ereport(ERROR, (errmodule(MOD_OPT), @@ -2343,6 +2348,7 @@ Datum query_to_xmlschema(PG_FUNCTION_ARGS) result = _SPI_strdup(map_sql_table_to_xmlschema(portal->tupDesc, InvalidOid, nulls, tableforest, targetns)); SPI_cursor_close(portal); + SPI_STACK_LOG("finish", portal->sourceText, NULL); SPI_finish(); PG_RETURN_XML_P(cstring_to_xmltype(result)); @@ -2373,6 +2379,7 @@ Datum cursor_to_xmlschema(PG_FUNCTION_ARGS) /* * Connect to SPI manager */ + SPI_STACK_LOG("connect", NULL, NULL); if ((rc = SPI_connect()) != SPI_OK_CONNECT) ereport(ERROR, (errmodule(MOD_OPT), @@ -2384,6 +2391,7 @@ Datum cursor_to_xmlschema(PG_FUNCTION_ARGS) ereport(ERROR, (errcode(ERRCODE_UNDEFINED_CURSOR), errmsg("cursor \"%s\" does not exist", name))); xmlschema = _SPI_strdup(map_sql_table_to_xmlschema(portal->tupDesc, InvalidOid, nulls, tableforest, targetns)); + SPI_STACK_LOG("finish", portal->sourceText, NULL); SPI_finish(); PG_RETURN_XML_P(cstring_to_xmltype(xmlschema)); @@ -2439,6 +2447,7 @@ Datum query_to_xml_and_xmlschema(PG_FUNCTION_ARGS) /* * Connect to SPI manager */ + SPI_STACK_LOG("connect", NULL, NULL); if ((rc = SPI_connect()) != SPI_OK_CONNECT) ereport(ERROR, (errmodule(MOD_OPT), @@ -2456,6 +2465,7 @@ Datum query_to_xml_and_xmlschema(PG_FUNCTION_ARGS) xmlschema = _SPI_strdup(map_sql_table_to_xmlschema(portal->tupDesc, InvalidOid, nulls, tableforest, targetns)); SPI_cursor_close(portal); + SPI_STACK_LOG("finish", portal->sourceText, NULL); SPI_finish(); PG_RETURN_XML_P( @@ -2487,6 +2497,7 @@ static StringInfo schema_to_xml_internal( /* * Connect to SPI manager */ + SPI_STACK_LOG("connect", NULL, NULL); if ((rc = SPI_connect()) != SPI_OK_CONNECT) ereport(ERROR, (errmodule(MOD_OPT), @@ -2495,6 +2506,7 @@ static StringInfo schema_to_xml_internal( relid_list = schema_get_xml_visible_tables(nspid); + SPI_STACK_LOG("push", NULL, NULL); SPI_push(); foreach (cell, relid_list) { @@ -2507,7 +2519,9 @@ static StringInfo schema_to_xml_internal( appendStringInfoChar(result, '\n'); } + SPI_STACK_LOG("pop", NULL, NULL); SPI_pop(); + SPI_STACK_LOG("finish", NULL, NULL); SPI_finish(); xmldata_root_element_end(result, xmlsn); @@ -2595,6 +2609,7 @@ static StringInfo schema_to_xmlschema_internal( /* * Connect to SPI manager */ + SPI_STACK_LOG("connect", NULL, NULL); if ((rc = SPI_connect()) != SPI_OK_CONNECT) ereport(ERROR, (errmodule(MOD_OPT), @@ -2618,6 +2633,7 @@ static StringInfo schema_to_xmlschema_internal( xsd_schema_element_end(result); + SPI_STACK_LOG("finish", NULL, NULL); SPI_finish(); return result; @@ -2706,6 +2722,7 @@ static StringInfo database_to_xml_internal(const char* xmlschema, bool nulls, bo /* * Connect to SPI manager */ + SPI_STACK_LOG("connect", NULL, NULL); if ((rc = SPI_connect()) != SPI_OK_CONNECT) ereport(ERROR, (errmodule(MOD_OPT), @@ -2714,6 +2731,7 @@ static StringInfo database_to_xml_internal(const char* xmlschema, bool nulls, bo nspid_list = database_get_xml_visible_schemas(); + SPI_STACK_LOG("push", NULL, NULL); SPI_push(); foreach (cell, nspid_list) { @@ -2726,7 +2744,9 @@ static StringInfo database_to_xml_internal(const char* xmlschema, bool nulls, bo appendStringInfoChar(result, '\n'); } + SPI_STACK_LOG("pop", NULL, NULL); SPI_pop(); + SPI_STACK_LOG("finish", NULL, NULL); SPI_finish(); xmldata_root_element_end(result, xmlcn); @@ -2761,6 +2781,7 @@ static StringInfo database_to_xmlschema_internal(bool nulls, bool tableforest, c /* * Connect to SPI manager */ + SPI_STACK_LOG("connect", NULL, NULL); if ((rc = SPI_connect()) != SPI_OK_CONNECT) ereport(ERROR, (errmodule(MOD_OPT), @@ -2785,6 +2806,7 @@ static StringInfo database_to_xmlschema_internal(bool nulls, bool tableforest, c xsd_schema_element_end(result); + SPI_STACK_LOG("finish", NULL, NULL); SPI_finish(); return result; diff --git a/src/common/backend/utils/cache/catcache.cpp b/src/common/backend/utils/cache/catcache.cpp index 221a3269d..5bdb8f387 100644 --- a/src/common/backend/utils/cache/catcache.cpp +++ b/src/common/backend/utils/cache/catcache.cpp @@ -5,6 +5,7 @@ * * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -23,8 +24,10 @@ #include "access/transam.h" #include "access/tuptoaster.h" #include "access/valid.h" +#include "catalog/pg_description.h" #include "catalog/pg_operator.h" #include "catalog/pg_proc.h" +#include "catalog/pg_proc_fn.h" #include "catalog/pg_type.h" #include "catalog/pg_attribute.h" #include "catalog/heap.h" @@ -376,7 +379,11 @@ static uint32 CatalogCacheComputeTupleHashValue(CatCache* cache, int nkeys, Heap case 4: v4 = (cc_keyno[3] == ObjectIdAttributeNumber) ? ObjectIdGetDatum(HeapTupleGetOid(tuple)) : fastgetattr(tuple, cc_keyno[3], cc_tupdesc, &isNull); +#ifndef ENABLE_MULTIPLE_NODES + Assert(!isNull || (cache->cc_reloid == ProcedureRelationId)); +#else Assert(!isNull); +#endif case 3: v3 = (cc_keyno[2] == ObjectIdAttributeNumber) ? ObjectIdGetDatum(HeapTupleGetOid(tuple)) : fastgetattr(tuple, cc_keyno[2], cc_tupdesc, &isNull); @@ -385,7 +392,14 @@ static uint32 CatalogCacheComputeTupleHashValue(CatCache* cache, int nkeys, Heap case 2: v2 = (cc_keyno[1] == ObjectIdAttributeNumber) ? ObjectIdGetDatum(HeapTupleGetOid(tuple)) : fastgetattr(tuple, cc_keyno[1], cc_tupdesc, &isNull); +#ifndef ENABLE_MULTIPLE_NODES + if (unlikely(cache->cc_indexoid == ProcedureNameAllArgsNspIndexId && isNull)) { + v2 = 0; + } + Assert(!isNull || (cache->cc_reloid == ProcedureRelationId)); +#else Assert(!isNull); +#endif /* FALLTHROUGH */ case 1: v1 = (cc_keyno[0] == ObjectIdAttributeNumber) ? ObjectIdGetDatum(HeapTupleGetOid(tuple)) @@ -1024,7 +1038,11 @@ static void CatalogCacheInitializeCache(CatCache* cache) cache->cc_skey[i].sk_strategy = BTEqualStrategyNumber; cache->cc_skey[i].sk_subtype = InvalidOid; /* Currently, there are no catcaches on collation-aware data types */ - cache->cc_skey[i].sk_collation = InvalidOid; + if (keytype == TEXTOID) { + cache->cc_skey[i].sk_collation = DEFAULT_COLLATION_OID; + } else { + cache->cc_skey[i].sk_collation = InvalidOid; + } } /* @@ -1063,12 +1081,26 @@ void InitCatCachePhase2(CatCache* cache, bool touch_index) LockRelationOid(cache->cc_indexoid, AccessShareLock); idesc = RelationIdGetRelation(cache->cc_indexoid); +#ifndef ENABLE_MULTIPLE_NODES + if (!(t_thrd.proc->workingVersionNum < 92470 && cache->cc_indexoid == ProcedureNameAllArgsNspIndexId)) { + if (!RelationIsValid(idesc)) { + elog(LOG, "CatalogCacheCompute:%d", t_thrd.proc->workingVersionNum); + ereport(ERROR, + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("could not open index with OID %u", cache->cc_indexoid))); + } + } else { + UnlockRelationOid(cache->cc_reloid, AccessShareLock); + UnlockRelationOid(cache->cc_indexoid, AccessShareLock); + return; + } +#else if (!RelationIsValid(idesc)) { ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("could not open index with OID %u", cache->cc_indexoid))); } - +#endif index_close(idesc, AccessShareLock); UnlockRelationOid(cache->cc_reloid, AccessShareLock); } @@ -1284,6 +1316,7 @@ HeapTuple SearchCatCacheInternal(CatCache* cache, int nkeys, Datum v1, Datum v2, return SearchCatCacheMiss(cache, nkeys, hashValue, hashIndex, v1, v2, v3, v4, level); } +HeapTuple CreateHeapTuple4BuiltinFuncDesc(const Builtin_func* func, TupleDesc desc); HeapTuple CreateHeapTuple4BuiltinFunc(const Builtin_func* func, TupleDesc desc); /* @@ -1300,7 +1333,7 @@ static HeapTuple SearchBuiltinProcByNameArgNsp(CatCache* cache, int nkeys, Datum oidvector* argtypes = NULL; const FuncGroup* gfuncs = NULL; - Assert(nkeys == 3); + Assert(nkeys == 3 || nkeys == 4); funcname = NameStr(*(DatumGetName(arguments[0]))); gfuncs = SearchBuiltinFuncByName(funcname); @@ -1687,6 +1720,31 @@ uint32 GetCatCacheHashValue(CatCache* cache, Datum v1, Datum v2, Datum v3, Datum return CatalogCacheComputeHashValue(cache, cache->cc_nkeys, v1, v2, v3, v4); } +HeapTuple CreateHeapTuple4BuiltinFuncDesc(const Builtin_func* func, TupleDesc desc) +{ + int i; + HeapTuple tup; + bool nulls[Natts_pg_description]; + Datum values[Natts_pg_description]; + + for (i = 0; i < Natts_pg_description; i++) + { + nulls[i] = false; + values[i] = (Datum)0; + } + values[Anum_pg_description_objoid - 1] = ObjectIdGetDatum(func->foid); + values[Anum_pg_description_classoid - 1] = ObjectIdGetDatum(ProcedureRelationId); + values[Anum_pg_description_objsubid - 1] = Int32GetDatum(0); + values[Anum_pg_description_description - 1] = CStringGetTextDatum(func->descr); + + /* create tuple */ + tup = heap_form_tuple(desc, values, nulls); + + HeapTupleHeaderSetXminFrozen(tup->t_data); + tup->t_data->t_infomask |= HEAP_XMAX_INVALID; + return tup; +} + /* * the function is used only in split the buildin functions from pg_proc systable * param desc: desc isn't NULL when it is called for build builtin function @@ -1983,6 +2041,33 @@ HeapTuple CreateHeapTuple4BuiltinFunc(const Builtin_func* func, TupleDesc desc) nulls[Anum_pg_proc_proallargtypes - 1] = true; } + if (allParameterTypes != PointerGetDatum(NULL)) { + /* + * do this when the number of all paramters is too large + */ + if (allParamCount <= FUNC_MAX_ARGS_INROW) { + values[Anum_pg_proc_allargtypes - 1] = PointerGetDatum(allParameterTypes); + nulls[Anum_pg_proc_allargtypesext - 1] = true; + } else { + /* + * The OIDVECTOR and INT2VECTOR datatypes are storage-compatible with + * generic arrays, but they support only one-dimensional arrays with no + * nulls (and no null bitmap). + */ + oidvector* dummy = MakeMd5HashArgTypes((oidvector*)allParameterTypes); + + values[Anum_pg_proc_allargtypes - 1] = PointerGetDatum(dummy); + values[Anum_pg_proc_allargtypesext - 1] = PointerGetDatum(allParameterTypes); + } + } else if (parameterTypes != PointerGetDatum(NULL)) { + values[Anum_pg_proc_allargtypes - 1] = values[Anum_pg_proc_proargtypes - 1]; + values[Anum_pg_proc_allargtypesext - 1] = values[Anum_pg_proc_proargtypesext - 1]; + nulls[Anum_pg_proc_allargtypesext - 1] = nulls[Anum_pg_proc_proargtypesext - 1]; + } else { + nulls[Anum_pg_proc_allargtypes - 1] = true; + nulls[Anum_pg_proc_allargtypesext - 1] = true; + } + if (parameterModes != PointerGetDatum(NULL)) { values[Anum_pg_proc_proargmodes - 1] = parameterModes; } else { @@ -2245,8 +2330,7 @@ List* SearchBuiltinProcCacheList(CatCache* cache, int nkey, Datum* arguments, Li TupleDesc CreateTupDesc4BuiltinFuncWithOid() { - TupleDesc tupdesc = CreateTemplateTupleDesc(38, false, TAM_HEAP); - + TupleDesc tupdesc = CreateTemplateTupleDesc(40, false, TAM_HEAP); TupleDescInitEntry(tupdesc, (AttrNumber)1, "proname", NAMEOID, -1, 0); TupleDescInitEntry(tupdesc, (AttrNumber)2, "pronamespace", OIDOID, -1, 0); TupleDescInitEntry(tupdesc, (AttrNumber)3, "proowner", OIDOID, -1, 0); @@ -2284,8 +2368,9 @@ TupleDesc CreateTupDesc4BuiltinFuncWithOid() TupleDescInitEntry(tupdesc, (AttrNumber)35, "proisprivate", BOOLOID, -1, 0); TupleDescInitEntry(tupdesc, (AttrNumber)36, "proargtypesext", OIDVECTOREXTENDOID, -1, 0); TupleDescInitEntry(tupdesc, (AttrNumber)37, "prodefaultargposext", INT2VECTOREXTENDOID, -1, 0); - TupleDescInitEntry(tupdesc, (AttrNumber)38, "oid", OIDOID, -1, 0); - + TupleDescInitEntry(tupdesc, (AttrNumber)38, "allargtypes", OIDVECTOROID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber)Anum_pg_proc_allargtypesext, "allargtypesext", OIDVECTOREXTENDOID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber)40, "oid", OIDOID, -1, 0); return tupdesc; } @@ -2339,6 +2424,27 @@ void InsertBuiltinFuncInBootstrap() } } +void InsertBuiltinFuncDescInBootstrap() +{ + HeapTuple tup = NULL; + const Builtin_func* func = NULL; + Relation rel = heap_open(DescriptionRelationId, RowExclusiveLock); + for (int i = 0; i < g_nfuncgroups; i++) { + const FuncGroup* fg = &g_func_groups[i]; + for (int j = 0; j < fg->fnums; j++) { + func = &fg->funcs[j]; + if (func->descr == NULL) { + continue; + } + tup = CreateHeapTuple4BuiltinFuncDesc(func, RelationGetDescr(rel)); + simple_heap_insert(rel, tup); + CatalogUpdateIndexes(rel, tup); + heap_freetuple(tup); + } + } + heap_close(rel, NoLock); +} + /* * SearchCatCacheList * @@ -2903,7 +3009,8 @@ void PrepareToInvalidateCacheTuple( if (ccp->cc_reloid != reloid) continue; - + if (ccp->cc_indexoid == ProcedureNameAllArgsNspIndexId && t_thrd.proc->workingVersionNum < 92470) + continue; /* Just in case cache hasn't finished initialization yet... */ if (ccp->cc_tupdesc == NULL) CatalogCacheInitializeCache(ccp); diff --git a/src/common/backend/utils/cache/inval.cpp b/src/common/backend/utils/cache/inval.cpp index 8844dfdc6..8a0f403a9 100644 --- a/src/common/backend/utils/cache/inval.cpp +++ b/src/common/backend/utils/cache/inval.cpp @@ -337,19 +337,29 @@ static void AddPartcacheInvalidationMessage(InvalidationListHeader* hdr, Oid dbI } /* function invalid and it's plan cache is invalid, need be removed */ -static void AddFunctionCacheInvalidationMessage(InvalidationListHeader* hdr, Oid dbId, Oid funcOid) +static void AddFunctionCacheInvalidationMessage(InvalidationListHeader* hdr, Oid dbId, Oid funcOid, Oid pkgOid) { SharedInvalidationMessage msg; + int cacheId = PACKAGEOID; + Oid objId = InvalidOid; + if (pkgOid == InvalidOid) { + cacheId = PROCOID; + objId = funcOid; + } else { + cacheId = PACKAGEOID; + objId = pkgOid; + } /* Don't add a duplicate item */ /* We assume dbId need not be checked because it will never change */ ProcessMessageList(hdr->rclist, - if (msg->fm.id == SHAREDINVALFUNC_ID && msg->fm.funcOid == funcOid) return ); + if (msg->fm.id == SHAREDINVALFUNC_ID && msg->fm.cacheId == cacheId && msg->fm.objId == objId) return ); /* OK, add the item */ msg.fm.id = SHAREDINVALFUNC_ID; msg.fm.dbId = dbId; - msg.fm.funcOid = funcOid; + msg.fm.cacheId = cacheId; + msg.fm.objId = objId; AddInvalidationMessage(&hdr->rclist, &msg); } @@ -553,7 +563,7 @@ void LocalExecuteInvalidationMessage(SharedInvalidationMessage* msg) } } else if (msg->id == SHAREDINVALFUNC_ID) { if (msg->fm.dbId == u_sess->proc_cxt.MyDatabaseId || msg->fm.dbId == InvalidOid) { - plpgsql_HashTableDeleteFunc(msg->fm.funcOid); + plpgsql_HashTableDeleteAndCheckFunc(msg->fm.cacheId, msg->fm.objId); } } else { ereport(FATAL, (errmsg("unrecognized SI message ID: %d", msg->id))); @@ -1099,11 +1109,12 @@ void CacheInvalidateHeapTuple(Relation relation, HeapTuple tuple, HeapTuple newt RegisterRelcacheInvalidation(databaseId, relationId); } -void CacheInvalidateFunction(Oid funcId) +void CacheInvalidateFunction(Oid funcId, Oid pkgId) { AddFunctionCacheInvalidationMessage(&u_sess->inval_cxt.transInvalInfo->CurrentCmdInvalidMsgs, - u_sess->proc_cxt.MyDatabaseId, funcId); + u_sess->proc_cxt.MyDatabaseId, funcId, pkgId); } + /* * CacheInvalidateCatalog * Register invalidation of the whole content of a system catalog. diff --git a/src/common/backend/utils/cache/lsyscache.cpp b/src/common/backend/utils/cache/lsyscache.cpp index 731facbf6..37cb7686a 100644 --- a/src/common/backend/utils/cache/lsyscache.cpp +++ b/src/common/backend/utils/cache/lsyscache.cpp @@ -5,6 +5,7 @@ * * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * IDENTIFICATION * src/backend/utils/cache/lsyscache.c @@ -76,6 +77,8 @@ #include "streaming/planner.h" #include "catalog/pgxc_group.h" #include "catalog/pg_proc_fn.h" +#include "catalog/gs_package.h" + /* ---------- AMOP CACHES ---------- */ @@ -1643,6 +1646,25 @@ bool get_func_iswindow(Oid funcid) return result; } +char get_func_prokind(const Oid funcid) +{ + HeapTuple tp = NULL; + char result; + bool isnull = false; + tp = SearchSysCache1(PROCOID, ObjectIdGetDatum(funcid)); + if (!HeapTupleIsValid(tp)) { + ereport(ERROR, (errcode(ERRCODE_CACHE_LOOKUP_FAILED), errmsg("cache lookup failed for function %u", funcid))); + } + Datum prokindDatum = SysCacheGetAttr(PROCOID, tp, Anum_pg_proc_prokind, &isnull); + if (isnull) { + result = PROKIND_FUNCTION; /* Null prokind items are created when there is no procedure */ + } else { + result = DatumGetChar(prokindDatum); + } + ReleaseSysCache(tp); + return result; +} + /* ---------- RELATION CACHE ---------- */ /* @@ -1860,6 +1882,7 @@ char* getPartitionName(Oid partid, bool missing_ok) Form_pg_partition partition = (Form_pg_partition)GETSTRUCT(tuple); /* make sure it is a partition */ Assert((PART_OBJ_TYPE_TABLE_PARTITION == partition->parttype) || + (PART_OBJ_TYPE_TABLE_SUB_PARTITION == partition->parttype) || (PART_OBJ_TYPE_INDEX_PARTITION == partition->parttype)); /* get partition name */ pname = pstrdup(NameStr(partition->relname)); @@ -1884,7 +1907,8 @@ bool check_rel_is_partitioned(Oid relid) HeapTuple tp = SearchSysCache1WithLogLevel(RELOID, ObjectIdGetDatum(relid), LOG); if (HeapTupleIsValid(tp)) { Form_pg_class reltup = (Form_pg_class)GETSTRUCT(tp); - bool result = (reltup->parttype == PARTTYPE_PARTITIONED_RELATION); + bool result = (reltup->parttype == PARTTYPE_PARTITIONED_RELATION) || + (reltup->parttype == PARTTYPE_SUBPARTITIONED_RELATION); ReleaseSysCache(tp); return result; } else { @@ -5015,7 +5039,41 @@ Oid get_func_oid(const char* funcname, Oid funcnamespace, Expr* expr) } } /* Search syscache by name only */ + +#ifndef ENABLE_MULTIPLE_NODES + if (u_sess->attr.attr_common.IsInplaceUpgrade) { + catlist = SearchSysCacheList1(PROCNAMEARGSNSP, CStringGetDatum(funcname)); + } else { + catlist = SearchSysCacheList1(PROCALLARGS, CStringGetDatum(funcname)); + } + if (expr) { + HeapTuple proctupl = NULL; + proctupl = SearchSysCache1(PROCOID, ObjectIdGetDatum(((FuncExpr*)expr)->funcid)); + if (HeapTupleIsValid(proctupl)) { + Form_pg_proc procform; + char* proname = NULL; + Datum pkgOiddatum; + bool isnull = true; + NameData* pkgname = NULL; + Oid pkgOid = InvalidOid; + procform = (Form_pg_proc)GETSTRUCT(proctupl); + proname = NameStr(procform->proname); + pkgOiddatum = SysCacheGetAttr(PROCOID, proctupl, Anum_pg_proc_packageid, &isnull); + if (!isnull) { + pkgOid = DatumGetObjectId(pkgOiddatum); + pkgname = GetPackageName(pkgOid); + } + if (pkgname && OidIsValid(pkgOid)) { + ReleaseSysCacheList(catlist); + ReleaseSysCache(proctupl); + return (((FuncExpr*)expr)->funcid); + } + ReleaseSysCache(proctupl); + } + } +#else catlist = SearchSysCacheList1(PROCNAMEARGSNSP, CStringGetDatum(funcname)); +#endif for (i = 0; i < catlist->n_members; i++) { HeapTuple proctup = &catlist->members[i]->tuple; Form_pg_proc procform = (Form_pg_proc)GETSTRUCT(proctup); @@ -5023,9 +5081,11 @@ Oid get_func_oid(const char* funcname, Oid funcnamespace, Expr* expr) /* Consider only procs in specified namespace */ if (procform->pronamespace != funcnamespace) { continue; - } - } + } + } + if (expr != NULL && IsA(expr, FuncExpr) && procform->pronargs != list_length(((FuncExpr*)expr)->args) + && procform->pronargs != list_length(((FuncExpr*)expr)->args) + procform->pronargdefaults #ifdef ENABLE_MULTIPLE_NODES && !is_streaming_hash_group_func(funcname, funcnamespace) #endif /* ENABLE_MULTIPLE_NODES */ @@ -5090,7 +5150,15 @@ Oid get_func_oid_ext(const char* funcname, Oid funcnamespace, Oid funcrettype, i CatCList* catlist = NULL; int i, j; /* Search syscache by name only */ +#ifndef ENABLE_MULTIPLE_NODES + if (t_thrd.proc->workingVersionNum < 92470) { + catlist = SearchSysCacheList1(PROCNAMEARGSNSP, CStringGetDatum(funcname)); + } else { + catlist = SearchSysCacheList1(PROCALLARGS, CStringGetDatum(funcname)); + } +#else catlist = SearchSysCacheList1(PROCNAMEARGSNSP, CStringGetDatum(funcname)); +#endif for (i = 0; i < catlist->n_members; i++) { HeapTuple proctup = &catlist->members[i]->tuple; Form_pg_proc procform = (Form_pg_proc)GETSTRUCT(proctup); @@ -5161,3 +5229,18 @@ bool is_not_strict_agg(Oid funcOid) ReleaseSysCache(func_tuple); return false; } + +char get_typecategory(Oid typid) +{ + HeapTuple tuple; + Form_pg_type typeForm; + char result; + tuple = SearchSysCache1(TYPEOID, ObjectIdGetDatum(typid)); + if (!HeapTupleIsValid(tuple)) { + ereport(ERROR, (errcode(ERRCODE_CACHE_LOOKUP_FAILED), errmsg("cache lookup failed for type %u", typid))); + } + typeForm = (Form_pg_type)GETSTRUCT(tuple); + result = typeForm->typcategory; + ReleaseSysCache(tuple); + return result; +} diff --git a/src/common/backend/utils/cache/partcache.cpp b/src/common/backend/utils/cache/partcache.cpp index c746d96cc..0c3b08cf7 100644 --- a/src/common/backend/utils/cache/partcache.cpp +++ b/src/common/backend/utils/cache/partcache.cpp @@ -1,5 +1,6 @@ /* * Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors * * openGauss is licensed under Mulan PSL v2. * You can use this software according to the terms and conditions of the Mulan PSL v2. @@ -253,6 +254,7 @@ void SetupPageCompressForPartition(RelFileNode* node, PageCompressOpts* compress symbol = false; compressLevel = -compress_options->compressLevel; } + bool success = false; uint1 chunkSize = ConvertChunkSize(compress_options->compressChunkSize, &success); if (!success) { @@ -357,8 +359,14 @@ static Partition PartitionBuildDesc(Oid targetPartId, StorageType storage_type, */ if (partition->pd_part->parentid != InvalidOid) { PartitionInitPhysicalAddr(partition); + Oid partitionTableOid = InvalidOid; + if (partition->pd_part->parttype == PART_OBJ_TYPE_TABLE_SUB_PARTITION) { + partitionTableOid = partid_get_parentid(partition->pd_part->parentid); + } else { + partitionTableOid = partition->pd_part->parentid; + } if (storage_type == INVALID_STORAGE) { - storage_type = PartitionGetStorageType(partition->pd_part->parentid); + storage_type = PartitionGetStorageType(partitionTableOid); } } @@ -377,6 +385,9 @@ static Partition PartitionBuildDesc(Oid targetPartId, StorageType storage_type, /* make sure the partrel is empty yet */ partition->partrel = NULL; + /* Assign value in partitiongetrelation. */ + partition->partMap = NULL; + /* * now we can free the memory allocated for pg_class_tuple */ @@ -626,6 +637,10 @@ static void PartitionDestroyPartition(Partition partition) } releaseDummyRelation(&partition->partrel); } + if (partition->partMap != NULL) { + RelationDestroyPartitionMap(partition->partMap); + partition->partMap = NULL; + } pfree_ext(partition); } @@ -762,6 +777,13 @@ static void PartitionClearPartition(Partition partition, bool rebuild) ereport(LOG, (errmsg("partition %u storage type changing from [%d] to [%d]", save_partid, tempNode, partition->pd_node.bucketNode))); } + if (PartitionHasSubpartition(newpart) && newpart->pd_part->parttype == PART_OBJ_TYPE_TABLE_PARTITION) { + Oid parentOid = partid_get_parentid(newpart->pd_id); + Relation rel = relation_open(parentOid, NoLock); + Relation partRel = partitionGetRelation(rel, newpart); + releaseDummyRelation(&partRel); + relation_close(rel, NoLock); + } /* * Perform swapping of the partcache entry contents. Within this * process the old entry is momentarily invalid, so there *must* be no @@ -805,6 +827,11 @@ static void PartitionClearPartition(Partition partition, bool rebuild) partition->pd_node.bucketNode = newpart->pd_node.bucketNode; } + if (newpart->partMap) { + RebuildPartitonMap(newpart->partMap, partition->partMap); + SWAPFIELD(PartitionMap*, partMap); + } + #undef SWAPFIELD /* And now we can throw away the temporary entry */ @@ -1310,7 +1337,10 @@ Relation partitionGetRelation(Relation rel, Partition part) securec_check(rc, "\0", "\0"); relation->rd_rel->reltoastrelid = part->pd_part->reltoastrelid; relation->rd_rel->reltablespace = part->pd_part->reltablespace; - relation->rd_rel->parttype = PARTTYPE_NON_PARTITIONED_RELATION; + if (PartitionHasSubpartition(part)) + relation->rd_rel->parttype = PARTTYPE_PARTITIONED_RELATION; + else + relation->rd_rel->parttype = PARTTYPE_NON_PARTITIONED_RELATION; relation->rd_rel->relfilenode = part->pd_part->relfilenode; relation->rd_rel->relpages = part->pd_part->relpages; relation->rd_rel->reltuples = part->pd_part->reltuples; @@ -1336,7 +1366,7 @@ Relation partitionGetRelation(Relation rel, Partition part) relation->rd_indexcxt = NULL; } else { Assert(rel->rd_indexcxt != NULL); - relation->rd_indexcxt = AllocSetContextCreate(rel->rd_indexcxt, + relation->rd_indexcxt = AllocSetContextCreate(u_sess->cache_mem_cxt, PartitionGetPartitionName(part), ALLOCSET_SMALL_MINSIZE, ALLOCSET_SMALL_INITSIZE, @@ -1364,8 +1394,14 @@ Relation partitionGetRelation(Relation rel, Partition part) relation->rd_lockInfo = part->pd_lockInfo; relation->rd_toastoid = part->pd_toastoid; relation->partMap = NULL; + relation->subpartitiontype = part->pd_part->parttype; relation->pgstat_info = part->pd_pgstat_info; relation->parentId = rel->rd_id; + if (part->pd_part->parttype == PART_OBJ_TYPE_TABLE_SUB_PARTITION) { + relation->grandparentId = rel->parentId; + } else { + relation->grandparentId = InvalidOid; + } relation->rd_smgr = part->pd_smgr; relation->rd_isblockchain = rel->rd_isblockchain; relation->storage_type = rel->storage_type; @@ -1391,6 +1427,14 @@ Relation partitionGetRelation(Relation rel, Partition part) securec_check(ret, "\0", "\0"); } + if (PartitionHasSubpartition(part) && part->pd_part->parttype == PART_OBJ_TYPE_TABLE_PARTITION) { + if (part->partMap != NULL) { + relation->partMap = part->partMap; + } else { + RelationInitPartitionMap(relation, true); + part->partMap = relation->partMap; + } + } (void)MemoryContextSwitchTo(oldcxt); return relation; @@ -1433,6 +1477,7 @@ void releaseDummyRelation(Relation* relation) if (NULL != (*relation)->rd_options) { pfree_ext((*relation)->rd_options); } + pfree_ext(*relation); *relation = NULL; } @@ -1515,7 +1560,7 @@ void PartitionSetNewRelfilenode(Relation parent, Partition part, TransactionId f errno_t rc; bool isbucket; - Assert((parent->rd_rel->relkind == RELKIND_INDEX || parent->rd_rel->relkind == RELKIND_SEQUENCE) + Assert((parent->rd_rel->relkind == RELKIND_INDEX || RELKIND_IS_SEQUENCE(parent->rd_rel->relkind)) ? freezeXid == InvalidTransactionId : TransactionIdIsNormal(freezeXid)); @@ -1592,7 +1637,7 @@ void PartitionSetNewRelfilenode(Relation parent, Partition part, TransactionId f Assert(!((part)->pd_part->relfilenode == InvalidOid)); partform->relfilenode = newrelfilenode; - Assert(parent->rd_rel->relkind != RELKIND_SEQUENCE); + Assert(!RELKIND_IS_SEQUENCE(parent->rd_rel->relkind)); partform->relpages = 0; /* it's empty until further notice */ partform->reltuples = 0; partform->relallvisible = 0; @@ -1680,12 +1725,12 @@ static void PartitionParseRelOptions(Partition partition, HeapTuple tuple) return; } -/* Check one partition whether it is normal use, and save in Bitmapset liveParts */ -static bool PartitionStatusIsLive(Oid partOid, Bitmapset** liveParts) +/* Check one partition whether it is normal use, and save in liveParts */ +static bool PartitionStatusIsLive(Oid partOid, OidRBTree** liveParts) { HeapTuple partTuple = NULL; - if (bms_is_member(partOid, *liveParts)) { + if (OidRBTreeMemberOid(*liveParts, partOid)) { return true; } @@ -1693,7 +1738,7 @@ static bool PartitionStatusIsLive(Oid partOid, Bitmapset** liveParts) partTuple = SearchSysCache1WithLogLevel(PARTRELID, ObjectIdGetDatum(partOid), LOG); if (HeapTupleIsValid(partTuple)) { ReleaseSysCache(partTuple); - *liveParts = bms_add_member(*liveParts, partOid); + (void)OidRBTreeInsertOid(*liveParts, partOid); return true; } @@ -2045,7 +2090,7 @@ void PartitionedSetEnabledClean(Oid parentOid) * and cannot be executed in parallel with PartitionSetWaitCleanGpi, if updatePartitioned */ void PartitionSetEnabledClean( - Oid parentOid, const Bitmapset* cleanedParts, const Bitmapset* invisibleParts, bool updatePartitioned) + Oid parentOid, OidRBTree* cleanedParts, OidRBTree* invisibleParts, bool updatePartitioned) { if (IS_PGXC_COORDINATOR) { return; @@ -2056,7 +2101,7 @@ void PartitionSetEnabledClean( ScanKeyData key[2]; HeapTuple tuple = NULL; Oid partOid; - Bitmapset* liveParts = NULL; + OidRBTree* liveParts = CreateOidRBTree(); bool needSetOpts = false; bool needSetPartitioned = updatePartitioned; @@ -2073,9 +2118,9 @@ void PartitionSetEnabledClean( while (HeapTupleIsValid(tuple = systable_getnext(scan))) { needSetOpts = false; partOid = HeapTupleGetOid(tuple); - if (bms_is_member(partOid, cleanedParts)) { + if (OidRBTreeMemberOid(cleanedParts, partOid)) { needSetOpts = true; - } else if (bms_is_member(partOid, invisibleParts)) { + } else if (OidRBTreeMemberOid(invisibleParts, partOid)) { needSetOpts = true; } else if (PartitionStatusIsLive(partOid, &liveParts)) { needSetOpts = true; @@ -2091,7 +2136,7 @@ void PartitionSetEnabledClean( } systable_endscan(scan); heap_close(pgPartition, NoLock); - bms_free(liveParts); + DestroyOidRBTree(&liveParts); if (needSetPartitioned) { PartitionedSetEnabledClean(parentOid); @@ -2118,6 +2163,19 @@ void PartitionSetAllEnabledClean(Oid parentOid) scan = systable_beginscan(pgPartition, InvalidOid, false, SnapshotAny, 1, key); while (HeapTupleIsValid(tuple = systable_getnext(scan))) { + Form_pg_partition partitionForm = (Form_pg_partition)GETSTRUCT(tuple); + if (partitionForm->relfilenode == InvalidOid) { + SysScanDesc subscan = NULL; + ScanKeyData subkey[1]; + HeapTuple subtuple = NULL; + ScanKeyInit(&subkey[0], Anum_pg_partition_parentid, BTEqualStrategyNumber, F_OIDEQ, + ObjectIdGetDatum(HeapTupleGetOid(tuple))); + subscan = systable_beginscan(pgPartition, InvalidOid, false, SnapshotAny, 1, subkey); + while (HeapTupleIsValid(subtuple = systable_getnext(subscan))) { + UpdateWaitCleanGpiRelOptions(pgPartition, subtuple, false, true); + } + systable_endscan(subscan); + } UpdateWaitCleanGpiRelOptions(pgPartition, tuple, false, true); } systable_endscan(scan); @@ -2134,13 +2192,13 @@ void PartitionSetAllEnabledClean(Oid parentOid) * and AccessShareLock for ADD_PARTITION_ACTION (to prevent parallelism with the * process of automatically creating partitions in any interval partition) */ -void PartitionGetAllInvisibleParts(Oid parentOid, Bitmapset** invisibleParts) +void PartitionGetAllInvisibleParts(Oid parentOid, OidRBTree** invisibleParts) { Relation pgPartition = NULL; SysScanDesc scan = NULL; ScanKeyData key[2]; HeapTuple tuple = NULL; - Bitmapset* liveParts = NULL; + OidRBTree* liveParts = CreateOidRBTree(); Oid partOid; pgPartition = heap_open(PartitionRelationId, AccessShareLock); @@ -2154,17 +2212,36 @@ void PartitionGetAllInvisibleParts(Oid parentOid, Bitmapset** invisibleParts) scan = systable_beginscan(pgPartition, InvalidOid, false, SnapshotAny, 2, key); while (HeapTupleIsValid(tuple = systable_getnext(scan))) { partOid = HeapTupleGetOid(tuple); - if (bms_is_member(partOid, *invisibleParts)) { + if (OidRBTreeMemberOid(*invisibleParts, partOid)) { continue; } else if (PartitionStatusIsLive(partOid, &liveParts)) { continue; } else { - *invisibleParts = bms_add_member(*invisibleParts, partOid); + (void)OidRBTreeInsertOid(*invisibleParts, partOid); + } + + Form_pg_partition partitionForm = (Form_pg_partition)GETSTRUCT(tuple); + if (partitionForm->relfilenode == InvalidOid) { + SysScanDesc subscan = NULL; + ScanKeyData subkey[2]; + HeapTuple subtuple = NULL; + ScanKeyInit(&subkey[0], Anum_pg_partition_parttype, BTEqualStrategyNumber, F_CHAREQ, + CharGetDatum(PART_OBJ_TYPE_TABLE_SUB_PARTITION)); + ScanKeyInit(&subkey[1], Anum_pg_partition_parentid, BTEqualStrategyNumber, F_OIDEQ, + ObjectIdGetDatum(partOid)); + subscan = systable_beginscan(pgPartition, InvalidOid, false, SnapshotAny, 2, subkey); + while (HeapTupleIsValid(subtuple = systable_getnext(subscan))) { + Oid subpartOid = HeapTupleGetOid(subtuple); + if (!OidRBTreeMemberOid(*invisibleParts, subpartOid) && PartitionStatusIsLive(subpartOid, &liveParts)) { + (void)OidRBTreeInsertOid(*invisibleParts, subpartOid); + } + } + systable_endscan(subscan); } } systable_endscan(scan); heap_close(pgPartition, NoLock); - bms_free(liveParts); + DestroyOidRBTree(&liveParts); } /* diff --git a/src/common/backend/utils/cache/plancache.cpp b/src/common/backend/utils/cache/plancache.cpp index 7cb66dda7..2e3f27a84 100644 --- a/src/common/backend/utils/cache/plancache.cpp +++ b/src/common/backend/utils/cache/plancache.cpp @@ -39,6 +39,7 @@ * * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * IDENTIFICATION * src/backend/utils/cache/plancache.c @@ -429,8 +430,8 @@ CachedPlanSource* CreateOneShotCachedPlan(Node* raw_parse_tree, const char* quer * fixed_result: TRUE to disallow future changes in query's result tupdesc */ void CompleteCachedPlan(CachedPlanSource* plansource, List* querytree_list, MemoryContext querytree_context, - Oid* param_types, int num_params, ParserSetupHook parserSetup, void* parserSetupArg, int cursor_options, - bool fixed_result, const char* stmt_name, ExecNodes* single_exec_node, bool is_read_only) + Oid* param_types, const char* paramModes, int num_params, ParserSetupHook parserSetup, void* parserSetupArg, + int cursor_options, bool fixed_result, const char* stmt_name, ExecNodes* single_exec_node, bool is_read_only) { MemoryContext source_context = plansource->context; MemoryContext oldcxt = CurrentMemoryContext; @@ -516,6 +517,15 @@ void CompleteCachedPlan(CachedPlanSource* plansource, List* querytree_list, Memo securec_check(rc, "", ""); } else plansource->param_types = NULL; + + if (num_params > 0 && paramModes != NULL) { + plansource->param_modes = (char*)palloc(num_params * sizeof(char)); + rc = memcpy_s(plansource->param_modes, num_params * sizeof(char), paramModes, num_params * sizeof(char)); + securec_check(rc, "", ""); + } else { + plansource->param_modes = NULL; + } + plansource->num_params = num_params; plansource->parserSetup = parserSetup; plansource->parserSetupArg = parserSetupArg; @@ -1163,6 +1173,7 @@ static CachedPlan* BuildCachedPlan(CachedPlanSource* plansource, List* qlist, Pa * do SPI_push whenever a replan could happen, it seems best to take care * of the case here. */ + SPI_STACK_LOG("push cond", NULL, NULL); spi_pushed = SPI_push_conditional(); u_sess->pcache_cxt.query_has_params = (plansource->num_params > 0); /* @@ -1174,10 +1185,8 @@ static CachedPlan* BuildCachedPlan(CachedPlanSource* plansource, List* qlist, Pa /* Save stream supported info since it will be reset when generate the plan. */ outer_is_stream = u_sess->opt_cxt.is_stream; outer_is_stream_support = u_sess->opt_cxt.is_stream_support; -#ifndef ENABLE_MULTIPLE_NODES /* opengaussdb:jdbc to create vecplan */ set_default_stream(); -#endif plist = pg_plan_queries(qlist, plansource->cursor_options, boundParams); } PG_CATCH(); @@ -1191,6 +1200,7 @@ static CachedPlan* BuildCachedPlan(CachedPlanSource* plansource, List* qlist, Pa ResetStream(outer_is_stream, outer_is_stream_support); /* Clean up SPI state */ + SPI_STACK_LOG("pop cond", NULL, NULL); SPI_pop_conditional(spi_pushed); /* Release snapshot if we got one */ diff --git a/src/common/backend/utils/cache/relcache.cpp b/src/common/backend/utils/cache/relcache.cpp index 3fd8ef257..36ef07039 100644 --- a/src/common/backend/utils/cache/relcache.cpp +++ b/src/common/backend/utils/cache/relcache.cpp @@ -7,6 +7,7 @@ * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 2010-2012 Postgres-XC Development Group + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -74,6 +75,8 @@ #include "catalog/pg_inherits.h" #include "catalog/pg_job.h" #include "catalog/pg_job_proc.h" +#include "catalog/gs_job_argument.h" +#include "catalog/gs_job_attribute.h" #include "catalog/gs_asp.h" #include "catalog/pg_language.h" #include "catalog/pg_largeobject.h" @@ -280,6 +283,8 @@ static const FormData_pg_attribute Desc_pgxc_node[Natts_pgxc_node] = {Schema_pgx static const FormData_pg_attribute Desc_pg_partition[Natts_pg_partition] = {Schema_pg_partition}; static const FormData_pg_attribute Desc_pg_job[Natts_pg_job] = {Schema_pg_job}; static const FormData_pg_attribute Desc_pg_job_proc[Natts_pg_job_proc] = {Schema_pg_job_proc}; +static const FormData_pg_attribute Desc_gs_job_argument[Natts_gs_job_argument] = {Schema_gs_job_argument}; +static const FormData_pg_attribute Desc_gs_job_attribute[Natts_gs_job_attribute] = {Schema_gs_job_attribute}; static const FormData_pg_attribute Desc_pg_object[Natts_pg_object] = {Schema_pg_object}; static const FormData_pg_attribute Desc_pg_synonym[Natts_pg_synonym] = {Schema_pg_synonym}; static const FormData_pg_attribute Desc_pg_hashbucket[Natts_pg_hashbucket] = {Schema_pg_hashbucket}; @@ -842,6 +847,51 @@ static struct CatalogRelationBuildParam catalogBuildParam[CATALOG_NUM] = {{Defau Desc_gs_global_chain, false, true}, + {SubscriptionRelationId, + "pg_subscription", + SubscriptionRelation_Rowtype_Id, + true, + true, + Natts_pg_subscription, + Desc_pg_subscription, + false, + true}, + {PublicationRelationId, + "pg_publication", + PublicationRelation_Rowtype_Id, + false, + true, + Natts_pg_publication, + Desc_pg_publication, + false, + true}, + {PublicationRelRelationId, + "pg_publication_rel", + PublicationRelRelationId_Rowtype_Id, + false, + true, + Natts_pg_publication_rel, + Desc_pg_publication_rel, + false, + true}, + {ReplicationOriginRelationId, + "pg_replication_origin", + ReplicationOriginRelationId_Rowtype_Id, + true, + false, + Natts_pg_replication_origin, + Desc_pg_replication_origin, + false, + true}, + {PackageRelationId, + "gs_package", + PackageRelation_Rowtype_Id, + false, + true, + Natts_gs_package, + Desc_gs_package, + false, + true}, {RecyclebinRelationId, "gs_recyclebin", RecyclebinRelation_Rowtype_Id, @@ -951,6 +1001,15 @@ static struct CatalogRelationBuildParam catalogBuildParam[CATALOG_NUM] = {{Defau Desc_streaming_reaper_status, false, true}, + {GsJobAttributeRelationId, + "gs_job_attribute", + GsJobAttributeRelation_Rowtype_Id, + false, + true, + Natts_gs_job_attribute, + Desc_gs_job_attribute, + false, + true}, {PgxcSliceRelationId, "pgxc_slice", PgxcSliceRelation_Rowtype_Id, @@ -960,6 +1019,15 @@ static struct CatalogRelationBuildParam catalogBuildParam[CATALOG_NUM] = {{Defau Desc_pgxc_slice, false, true}, + {GsJobArgumentRelationId, + "gs_job_argument", + GsJobArgumentRelation_Rowtype_Id, + false, + true, + Natts_gs_job_argument, + Desc_gs_job_argument, + false, + true}, {GsGlobalConfigRelationId, "gs_global_config", GsGlobalConfigRelationId_Rowtype_Id, @@ -1130,51 +1198,6 @@ static struct CatalogRelationBuildParam catalogBuildParam[CATALOG_NUM] = {{Defau Natts_gs_opt_model, Desc_gs_opt_model, false, - true}, - {SubscriptionRelationId, - "pg_subscription", - SubscriptionRelation_Rowtype_Id, - true, - true, - Natts_pg_subscription, - Desc_pg_subscription, - false, - true}, - {PublicationRelationId, - "pg_publication", - PublicationRelation_Rowtype_Id, - false, - true, - Natts_pg_publication, - Desc_pg_publication, - false, - true}, - {PublicationRelRelationId, - "pg_publication_rel", - PublicationRelRelationId_Rowtype_Id, - false, - true, - Natts_pg_publication_rel, - Desc_pg_publication_rel, - false, - true}, - {ReplicationOriginRelationId, - "pg_replication_origin", - ReplicationOriginRelationId_Rowtype_Id, - true, - false, - Natts_pg_replication_origin, - Desc_pg_replication_origin, - false, - true}, - {PackageRelationId, - "gs_package", - PackageRelation_Rowtype_Id, - false, - true, - Natts_gs_package, - Desc_gs_package, - false, true}}; // Get cluster information of relation @@ -1245,9 +1268,6 @@ typedef struct opclasscacheent { } OpClassCacheEnt; /* non-export function prototypes */ -static void partitionMapDestroyRangeArray(RangeElement* rangeArray, int arrLen); -static void PartitionMapDestroyHashArray(HashPartElement* hashArray, int arrLen); -static void RelationDestroyPartitionMap(Relation relation); static void RelationDestroyRelation(Relation relation, bool remember_tupdesc); static void RememberToFreeTupleDescAtEOX(TupleDesc td); static void RelationClearRelation(Relation relation, bool rebuild); @@ -1342,6 +1362,12 @@ HeapTuple ScanPgRelation(Oid targetRelId, bool indexOK, bool force_non_historic) pg_class_scan = systable_beginscan( pg_class_desc, ClassOidIndexId, indexOK && u_sess->relcache_cxt.criticalRelcachesBuilt, snapshot, 1, key); +#ifdef ENABLE_MULTIPLE_NODES + /* If we do seqscan on pg_class, skip sync. */ + if (pg_class_scan->irel == NULL && snapshot == SnapshotNow) { + pg_class_scan->scan->rs_base.rs_snapshot = SnapshotNowNoSync; + } +#endif pg_class_tuple = systable_getnext(pg_class_scan); /* @@ -1566,7 +1592,9 @@ static void RelationBuildTupleDesc(Relation relation, bool onlyLoadInitDefVal) * its attnum should be zero, use it to check if above scenario happened. */ if (relation->rd_att->attrs[attp->attnum - 1]->attnum != 0) { - ereport(ERROR,(errmsg("Catalog attribute %d for relation \"%s\" has been updated concurrently", + /* Panic if we hit here many times, plus 2 make sure it has enough room in err stack */ + int eLevel = ((t_thrd.log_cxt.errordata_stack_depth + 2) < ERRORDATA_STACK_SIZE) ? ERROR : PANIC; + ereport(eLevel,(errmsg("Catalog attribute %d for relation \"%s\" has been updated concurrently", attp->attnum, RelationGetRelationName(relation)))); } errno_t rc = memcpy_s( @@ -3091,8 +3119,14 @@ Relation RelationIdGetRelation(Oid relationId) * it. */ rd = RelationBuildDesc(relationId, true); - if (RelationIsValid(rd)) + if (RelationIsValid(rd)) { RelationIncrementReferenceCount(rd); + /* Insert TDE key to buffer cache for tde table */ + if (g_instance.attr.attr_security.enable_tde && IS_PGXC_DATANODE && RelationisEncryptEnable(rd)) { + RelationInsertTdeInfoToCache(rd); + } + } + return rd; } @@ -3310,139 +3344,6 @@ static void RelationReloadIndexInfo(Relation relation) relation->rd_isvalid = true; } -/* - * @@GaussDB@@ - * Target : data partition - * Brief : - * Description : - * Notes : - */ -static void partitionMapDestroyRangeArray(RangeElement* rangeArray, int arrLen) -{ - int i, j; - RangeElement* range = NULL; - Const* maxConst = NULL; - - if (NULL == rangeArray || arrLen < 1) { - return; - } - - /*before free range array, free max array in each rangeElement*/ - for (i = 0; i < arrLen; i++) { - range = &(rangeArray[i]); - for (j = 0; j < range->len; j++) { - maxConst = range->boundary[j]; - if (PointerIsValid(maxConst)) { - if (!maxConst->constbyval && !maxConst->constisnull && - PointerIsValid(DatumGetPointer(maxConst->constvalue))) { - pfree(DatumGetPointer(maxConst->constvalue)); - } - - pfree_ext(maxConst); - maxConst = NULL; - } - } - } - - /*free range array*/ - pfree_ext(rangeArray); -} - -static void PartitionMapDestroyHashArray(HashPartElement* hashArray, int arrLen) -{ - int i; - HashPartElement* hashValues = NULL; - Const* value = NULL; - - if (NULL == hashArray || arrLen < 1) { - return; - } - - /*before free range array, free max array in each rangeElement*/ - for (i = 0; i < arrLen; i++) { - hashValues = &(hashArray[i]); - - value = hashValues->boundary[0]; - if (PointerIsValid(value)) { - if (!value->constbyval && !value->constisnull && - PointerIsValid(DatumGetPointer(value->constvalue))) { - pfree(DatumGetPointer(value->constvalue)); - } - - pfree_ext(value); - value = NULL; - } - - } - pfree_ext(hashArray); -} - -/* - * @@GaussDB@@ - * Target : data partition - * Brief : - * Description : - * Notes : - */ -static void RelationDestroyPartitionMap(Relation relation) -{ - /*already a non-partitioned relation, just return*/ - if (!relation->partMap) - return; - - /*partitioned relation, destroy the partition map*/ - if (relation->partMap->type == PART_TYPE_RANGE || relation->partMap->type == PART_TYPE_INTERVAL) { - RangePartitionMap* range_map = ((RangePartitionMap*)(relation->partMap)); - - /*first free partKeyNum/partitionKeyDataType/ranges in the range map*/ - if (range_map->partitionKey) { - pfree_ext(range_map->partitionKey); - } - if (range_map->partitionKeyDataType) { - pfree_ext(range_map->partitionKeyDataType); - } - if (range_map->intervalValue) { - pfree_ext(range_map->intervalValue); - } - if (range_map->intervalTablespace) { - pfree_ext(range_map->intervalTablespace); - } - if (range_map->rangeElements) { - partitionMapDestroyRangeArray(range_map->rangeElements, range_map->rangeElementsNum); - } - } else if (relation->partMap->type == PART_TYPE_LIST) { - ListPartitionMap* list_map = (ListPartitionMap*)(relation->partMap); - if (list_map->partitionKey) { - pfree_ext(list_map->partitionKey); - list_map->partitionKey = NULL; - } - if (list_map->partitionKeyDataType) { - pfree_ext(list_map->partitionKeyDataType); - list_map->partitionKeyDataType = NULL; - } - if (list_map->listElements) { - DestroyListElements(list_map->listElements, list_map->listElementsNum); - list_map->listElements = NULL; - } - } else if (relation->partMap->type == PART_TYPE_HASH) { - HashPartitionMap* hash_map = (HashPartitionMap*)(relation->partMap); - if (hash_map->partitionKey) { - pfree_ext(hash_map->partitionKey); - hash_map->partitionKey = NULL; - } - if (hash_map->partitionKeyDataType) { - pfree_ext(hash_map->partitionKeyDataType); - hash_map->partitionKeyDataType = NULL; - } - if (hash_map->hashElements) { - PartitionMapDestroyHashArray(hash_map->hashElements, hash_map->hashElementsNum); - hash_map->hashElements = NULL; - } - } - pfree_ext(relation->partMap); - return; -} - static void RelationDestroySliceMap(Relation relation) { RangePartitionMap* range_map = (RangePartitionMap*)(relation->sliceMap); @@ -3499,8 +3400,8 @@ static void RelationDestroyRelation(Relation relation, bool remember_tupdesc) } list_free_ext(relation->rd_indexlist); bms_free_ext(relation->rd_indexattr); - bms_free_ext(relation->rd_keyattr); bms_free_ext(relation->rd_pkattr); + bms_free_ext(relation->rd_keyattr); bms_free_ext(relation->rd_idattr); if (relation->rd_options) { pfree_ext(relation->rd_pubactions); @@ -3523,7 +3424,7 @@ static void RelationDestroyRelation(Relation relation, bool remember_tupdesc) if (relation->rd_fdwroutine) pfree_ext(relation->rd_fdwroutine); if (relation->partMap) { - RelationDestroyPartitionMap(relation); + RelationDestroyPartitionMap(relation->partMap); } if (REALTION_BUCKETKEY_VALID(relation)) { pfree_ext(relation->rd_bucketkey->bucketKey); @@ -3611,6 +3512,10 @@ static void RelationClearRelation(Relation relation, bool rebuild) if (relation->rd_refcnt > 1) RelationReloadIndexInfo(relation); } + list_free_ext(relation->rd_indexlist); + relation->rd_indexlist = NIL; + relation->rd_oidindex = InvalidOid; + relation->rd_indexvalid = 0; return; } @@ -4598,7 +4503,7 @@ void RelationSetNewRelfilenode(Relation relation, TransactionId freezeXid, Multi bool modifyPgClass = !RELATION_IS_GLOBAL_TEMP(relation); bool isbucket; /* Indexes, sequences must have Invalid frozenxid; other rels must not */ - Assert(((RelationIsIndex(relation) || relation->rd_rel->relkind == RELKIND_SEQUENCE) + Assert(((RelationIsIndex(relation) || RELKIND_IS_SEQUENCE(relation->rd_rel->relkind)) ? freezeXid == InvalidTransactionId : TransactionIdIsNormal(freezeXid)) || relation->rd_rel->relkind == RELKIND_RELATION); @@ -4702,7 +4607,7 @@ void RelationSetNewRelfilenode(Relation relation, TransactionId freezeXid, Multi classform->relfilenode = newrelfilenode; /* These changes are safe even for a mapped relation */ - if (relation->rd_rel->relkind != RELKIND_SEQUENCE) { + if (!RELKIND_IS_SEQUENCE(relation->rd_rel->relkind)) { classform->relpages = 0; /* it's empty until further notice */ classform->reltuples = 0; classform->relallvisible = 0; @@ -4806,7 +4711,7 @@ void UpdatePgclass(Relation relation, TransactionId freezeXid, const RelFileNode classform->relfilenode = rnode->node.relNode; /* These changes are safe even for a mapped relation */ - if (relation->rd_rel->relkind != RELKIND_SEQUENCE) { + if (!RELKIND_IS_SEQUENCE(relation->rd_rel->relkind)) { classform->relpages = 0; /* it's empty until further notice */ classform->reltuples = 0; classform->relallvisible = 0; @@ -5989,7 +5894,11 @@ Oid RelationGetReplicaIndex(Relation relation) replidindex = RelationGetReplicaIndex(parentRelation); return replidindex; } else if (RelationIsPartition(relation)) { - parentRelation = RelationIdGetRelation(relation->parentId); + if (RelationIsSubPartitionOfSubPartitionTable(relation)) { + parentRelation = RelationIdGetRelation(relation->grandparentId); + } else { + parentRelation = RelationIdGetRelation(relation->parentId); + } if (!RelationIsValid(parentRelation)) { ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), @@ -6309,16 +6218,16 @@ Bitmapset* RelationGetIndexAttrBitmap(Relation relation, IndexAttrBitmapKind att * won't be returned at all by RelationGetIndexList. */ indexattrs = NULL; - uindexattrs = NULL; pkindexattrs = NULL; + uindexattrs = NULL; idindexattrs = NULL; foreach (l, indexoidlist) { Oid indexOid = lfirst_oid(l); Relation indexDesc; IndexInfo* indexInfo = NULL; int i; + bool isPK; /* primary key */ bool isKey = false; /* candidate key */ - bool isPK = false; /* primary key */ bool isIDKey = false; /* replica identity index */ indexDesc = index_open(indexOid, AccessShareLock); @@ -6326,10 +6235,10 @@ Bitmapset* RelationGetIndexAttrBitmap(Relation relation, IndexAttrBitmapKind att /* Extract index key information from the index's pg_index row */ indexInfo = BuildIndexInfo(indexDesc); - /* Can this index be referenced by a foreign key? */ - isKey = indexInfo->ii_Unique && indexInfo->ii_Expressions == NIL && indexInfo->ii_Predicate == NIL; /* Is this a primary key? */ isPK = (indexOid == relpkindex); + /* Can this index be referenced by a foreign key? */ + isKey = indexInfo->ii_Unique && indexInfo->ii_Expressions == NIL && indexInfo->ii_Predicate == NIL; /* Is this index the configured (or default) replica identity? */ isIDKey = (indexOid == relreplindex); @@ -6387,8 +6296,8 @@ Bitmapset* RelationGetIndexAttrBitmap(Relation relation, IndexAttrBitmapKind att * empty. */ oldcxt = MemoryContextSwitchTo(u_sess->cache_mem_cxt); - relation->rd_keyattr = bms_copy(uindexattrs); relation->rd_pkattr = bms_copy(pkindexattrs); + relation->rd_keyattr = bms_copy(uindexattrs); relation->rd_idattr = bms_copy(idindexattrs); relation->rd_indexattr = bms_copy(indexattrs); (void)MemoryContextSwitchTo(oldcxt); @@ -7023,8 +6932,8 @@ static bool load_relcache_init_file(bool shared) rel->rd_oidindex = InvalidOid; rel->rd_pkindex = InvalidOid; rel->rd_indexattr = NULL; - rel->rd_keyattr = NULL; rel->rd_pkattr = NULL; + rel->rd_keyattr = NULL; rel->rd_idattr = NULL; rel->rd_pubactions = NULL; rel->rd_createSubid = InvalidSubTransactionId; @@ -7944,45 +7853,6 @@ void GetTdeInfoFromRel(Relation rel, TdeInfo *tde_info) } } -/* setup page compress options for relation */ -static void SetupPageCompressForRelation(Relation relation, PageCompressOpts* compress_options) -{ - relation->rd_node.opt = 0; - uint1 algorithm = compress_options->compressType; - if (algorithm != COMPRESS_TYPE_NONE) { - if (!SUPPORT_PAGE_COMPRESSION) { - elog(ERROR, "unsupported page compression on this platform"); - } - - uint1 compressLevel; - bool symbol = false; - if (compress_options->compressLevel >= 0) { - symbol = true; - compressLevel = compress_options->compressLevel; - } else { - symbol = false; - compressLevel = -compress_options->compressLevel; - } - bool success = false; - uint1 chunkSize = ConvertChunkSize(compress_options->compressChunkSize, &success); - if (!success) { - elog(ERROR, "invalid compress_chunk_size %d , must be one of %d, %d, %d or %d for %s", - compress_options->compressChunkSize, BLCKSZ / 16, BLCKSZ / 8, BLCKSZ / 4, BLCKSZ / 2, - RelationGetRelationName(relation)); - } - uint1 preallocChunks; - if (compress_options->compressPreallocChunks >= BLCKSZ / compress_options->compressChunkSize) { - preallocChunks = (uint1)(BLCKSZ / compress_options->compressChunkSize - 1); - } else { - preallocChunks = (uint1)(compress_options->compressPreallocChunks); - } - Assert(preallocChunks <= MAX_PREALLOC_CHUNKS); - SET_COMPRESS_OPTION(relation->rd_node, compress_options->compressByteConvert, - compress_options->compressDiffConvert, preallocChunks, - symbol, compressLevel, algorithm, chunkSize); - } -} - char RelationGetRelReplident(Relation r) { bool isNull = false; @@ -8008,3 +7878,44 @@ char RelationGetRelReplident(Relation r) return relreplident; } + +/* setup page compress options for relation */ +static void SetupPageCompressForRelation(Relation relation, PageCompressOpts* compress_options) +{ + relation->rd_node.opt = 0; + uint1 algorithm = compress_options->compressType; + if (algorithm != COMPRESS_TYPE_NONE) { + if (!SUPPORT_PAGE_COMPRESSION) { + elog(ERROR, "unsupported page compression on this platform"); + } + + uint1 compressLevel; + bool symbol = false; + if (compress_options->compressLevel >= 0) { + symbol = true; + compressLevel = compress_options->compressLevel; + } else { + symbol = false; + compressLevel = -compress_options->compressLevel; + } + + bool success = false; + uint1 chunkSize = ConvertChunkSize(compress_options->compressChunkSize, &success); + if (!success) { + elog(ERROR, "invalid compress_chunk_size %d , must be one of %d, %d, %d or %d for %s", + compress_options->compressChunkSize, BLCKSZ / 16, BLCKSZ / 8, BLCKSZ / 4, BLCKSZ / 2, + RelationGetRelationName(relation)); + } + + uint1 preallocChunks; + if (compress_options->compressPreallocChunks >= BLCKSZ / compress_options->compressChunkSize) { + preallocChunks = (uint1)(BLCKSZ / compress_options->compressChunkSize - 1); + } else { + preallocChunks = (uint1)(compress_options->compressPreallocChunks); + } + Assert(preallocChunks <= MAX_PREALLOC_CHUNKS); + SET_COMPRESS_OPTION(relation->rd_node, compress_options->compressByteConvert, + compress_options->compressDiffConvert, preallocChunks, + symbol, compressLevel, algorithm, chunkSize); + } +} diff --git a/src/common/backend/utils/cache/relfilenodemap.cpp b/src/common/backend/utils/cache/relfilenodemap.cpp index de9289187..82af0c38a 100644 --- a/src/common/backend/utils/cache/relfilenodemap.cpp +++ b/src/common/backend/utils/cache/relfilenodemap.cpp @@ -34,6 +34,7 @@ #include "utils/relfilenodemap.h" #include "utils/relmapper.h" #include "utils/snapmgr.h" +#include "utils/syscache.h" const int HASH_ELEM_SIZE = 1024; @@ -461,7 +462,31 @@ Oid PartitionRelidByRelfilenode(Oid reltablespace, Oid relfilenode, Oid &partati Form_pg_partition partForm = (Form_pg_partition)GETSTRUCT(ntp); partationReltoastrelid = partForm->reltoastrelid; relid = partForm->parentid; - StorageType st = PartitionGetStorageType(relid); + if (partForm->parttype == PART_OBJ_TYPE_TABLE_SUB_PARTITION) { + HeapTuple partitionTupleRaw = NULL; + Form_pg_partition partitionTuple = NULL; + partitionTupleRaw = SearchSysCache1((int)PARTRELID, ObjectIdGetDatum(relid)); + if (!PointerIsValid(partitionTupleRaw)) { + relid = InvalidOid; + ReleaseSysCache(partitionTupleRaw); + break; + } + partitionTuple = (Form_pg_partition)GETSTRUCT(partitionTupleRaw); + relid = partitionTuple->parentid; + ReleaseSysCache(partitionTupleRaw); + } + + HeapTuple pg_class_tuple = ScanPgRelation(relid, true, false); + if (!HeapTupleIsValid(pg_class_tuple)) { + /* parent is removed from pg_class. */ + relid = InvalidOid; + break; + } + bool isNull; + heap_getattr(pg_class_tuple, Anum_pg_class_relbucket, GetDefaultPgClassDesc(), &isNull); + StorageType st = isNull ? HEAP_DISK : SEGMENT_PAGE; + heap_freetuple_ext(pg_class_tuple); + if ((st == SEGMENT_PAGE && !segment) || (st == HEAP_DISK && segment)) { relid = InvalidOid; continue; diff --git a/src/common/backend/utils/cache/syscache.cpp b/src/common/backend/utils/cache/syscache.cpp index 08d898e16..ad80317bf 100644 --- a/src/common/backend/utils/cache/syscache.cpp +++ b/src/common/backend/utils/cache/syscache.cpp @@ -6,6 +6,7 @@ * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 2010-2012 Postgres-XC Development Group + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -33,6 +34,8 @@ #include "catalog/gs_column_keys.h" #include "catalog/gs_encrypted_columns.h" #include "catalog/gs_encrypted_proc.h" +#include "catalog/gs_job_argument.h" +#include "catalog/gs_job_attribute.h" #include "catalog/pg_amop.h" #include "catalog/pg_amproc.h" #include "catalog/pg_auth_members.h" @@ -385,6 +388,21 @@ static const struct cachedesc cacheinfo[] = {{AggregateRelationId, /* AGGFNOID * 1, {ObjectIdAttributeNumber, 0, 0, 0}, 128}, + {GsJobArgumentRelationId, /* JOBARGUMENTNAMEID */ + GsJobArgumentNameIndexId, + 2, + {Anum_gs_job_argument_job_name, Anum_gs_job_argument_argument_name, 0, 0}, + 128}, + {GsJobArgumentRelationId, /* JOBARGUMENTNAMEID */ + GsJobArgumentPositionIndexId, + 2, + {Anum_gs_job_argument_job_name, Anum_gs_job_argument_argument_position, 0, 0}, + 128}, + {GsJobAttributeRelationId, /* JOBATTRIBUTENAMEID */ + GsJobAttributeNameIndexId, + 2, + {Anum_gs_job_attribute_job_name, Anum_gs_job_attribute_attribute_name, 0, 0}, + 128}, {IndexRelationId, /* INDEXRELID */ IndexRelidIndexId, 1, @@ -546,11 +564,24 @@ static const struct cachedesc cacheinfo[] = {{AggregateRelationId, /* AGGFNOID * 1, {ObjectIdAttributeNumber, 0, 0, 0}, 256}, +#ifndef ENABLE_MULTIPLE_NODES {ProcedureRelationId, /* PROCNAMEARGSNSP */ - ProcedureNameArgsNspIndexId, + ProcedureNameArgsNspNewIndexId, 3, {Anum_pg_proc_proname, Anum_pg_proc_proargtypes, Anum_pg_proc_pronamespace, 0}, 2048}, + {ProcedureRelationId, /* PROCALLARGS */ + ProcedureNameAllArgsNspIndexId, + 4, + {Anum_pg_proc_proname, Anum_pg_proc_allargtypes, Anum_pg_proc_pronamespace, Anum_pg_proc_packageid}, + 2048}, +#else + {ProcedureRelationId, /* PROCNAMEARGSNSP */ + ProcedureNameArgsNspIndexId, + 3, + {Anum_pg_proc_proname, Anum_pg_proc_proargtypes, Anum_pg_proc_pronamespace, 0}, + 2048}, +#endif {ProcedureRelationId, /* PROCOID */ ProcedureOidIndexId, 1, diff --git a/src/common/backend/utils/errcodes.txt b/src/common/backend/utils/errcodes.txt index 0d7417a1e..c9fdf41ac 100644 --- a/src/common/backend/utils/errcodes.txt +++ b/src/common/backend/utils/errcodes.txt @@ -481,7 +481,7 @@ HV091 E ERRCODE_FDW_INVALID_DESCRIPTOR_FIELD_IDENTIFIER fdw HV00B E ERRCODE_FDW_INVALID_HANDLE fdw_invalid_handle HV00C E ERRCODE_FDW_INVALID_OPTION_INDEX fdw_invalid_option_index HV00D E ERRCODE_FDW_INVALID_OPTION_NAME fdw_invalid_option_name -HV00E E ERRCODE_FDW_INVALID_OPTOIN_DATA fdw_invalid_option_data +HV00E E ERRCODE_FDW_INVALID_OPTION_DATA fdw_invalid_option_data HV090 E ERRCODE_FDW_INVALID_STRING_LENGTH_OR_BUFFER_LENGTH fdw_invalid_string_length_or_buffer_length HV00A E ERRCODE_FDW_INVALID_STRING_FORMAT fdw_invalid_string_format HV009 E ERRCODE_FDW_INVALID_USE_OF_NULL_POINTER fdw_invalid_use_of_null_pointer @@ -594,6 +594,7 @@ D0012 E ERRCODE_MAX_DEBUG_SESSIONS_REACHED max D0013 E ERRCODE_MAX_BREAKPOINTS_REACHED maximum_number_of_breakpoints_reached D0014 E ERRCODE_INITIALIZE_FAILED initialization_failed D0015 E ERRCODE_PLDEBUGGER_TIMEOUT pldebugger_wait_timeout +D0016 E ERRCODE_FORALL_DML_ERROR forall_dml_error # Section: Class RB - RBTree Error RB001 E ERRCODE_RBTREE_INVALID_NODE_STATE rbtree_invalid_node_state diff --git a/src/common/backend/utils/error/be_module.cpp b/src/common/backend/utils/error/be_module.cpp index a9de76bcc..e429edd27 100755 --- a/src/common/backend/utils/error/be_module.cpp +++ b/src/common/backend/utils/error/be_module.cpp @@ -1,5 +1,6 @@ /* * Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors * * openGauss is licensed under Mulan PSL v2. * You can use this software according to the terms and conditions of the Mulan PSL v2. @@ -117,10 +118,16 @@ const module_data module_map[] = {{MOD_ALL, "ALL"}, {MOD_COMM_PROXY, "COMM_PROXY"}, {MOD_COMM_POOLER, "COMM_POOLER"}, {MOD_VACUUM, "VACUUM"}, + {MOD_JOB, "JOB"}, + {MOD_SPI, "SPI"}, + {MOD_NEST_COMPILE, "NEST_COMPILE"}, + {MOD_RESOWNER, "RESOWNER"}, /* add your module name above */ {MOD_MAX, "BACKEND"}}; +static_assert(MOD_MAX == sizeof(module_map)/sizeof(module_map[0]) - 1, "invalid module_map size."); + /* * @Description: check whether module name is unique * @Return: if two modules have the same name, return false; diff --git a/src/common/backend/utils/error/elog.cpp b/src/common/backend/utils/error/elog.cpp index 4630a58d0..9afe38923 100644 --- a/src/common/backend/utils/error/elog.cpp +++ b/src/common/backend/utils/error/elog.cpp @@ -45,6 +45,7 @@ * * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -284,6 +285,9 @@ bool errstart(int elevel, const char* filename, int lineno, const char* funcname */ for (i = 0; i <= t_thrd.log_cxt.errordata_stack_depth; i++) elevel = Max(elevel, t_thrd.log_cxt.errordata[i].elevel); + if (elevel == FATAL && t_thrd.role == JOB_WORKER) { + elevel = ERROR; + } } /* @@ -2396,7 +2400,7 @@ static void log_line_prefix(StringInfo buf, ErrorData* edata) appendStringInfo(buf, XID_FMT, GetTopTransactionIdIfAny()); break; case 'e': - appendStringInfoString(buf, unpack_sql_state(edata->sqlerrcode)); + appendStringInfoString(buf, plpgsql_get_sqlstate(edata->sqlerrcode)); break; case 'n': appendStringInfoString(buf, g_instance.attr.attr_common.PGXCNodeName); @@ -2594,7 +2598,7 @@ static void write_csvlog(ErrorData* edata) /* SQL state code */ /* @CSV_SCHMA@ sql_state text, @ */ - appendStringInfoString(&buf, unpack_sql_state(edata->sqlerrcode)); + appendStringInfoString(&buf, plpgsql_get_sqlstate(edata->sqlerrcode)); appendStringInfoChar(&buf, ','); /* errmessage */ @@ -2729,6 +2733,16 @@ char* unpack_sql_state(int sql_state) return buf; } +/* if sqlcode is init by the database, it must be positive; if is init by the user, then it must be negative */ +char *plpgsql_get_sqlstate(int sqlcode) +{ + if (sqlcode >= 0) { + return unpack_sql_state(sqlcode); + } else { + return plpgsql_code_int2cstring(sqlcode); + } +} + const char* mask_encrypted_key(const char *query_string, int str_len) { int mask_len = 8; @@ -2859,7 +2873,7 @@ static void send_message_to_server_log(ErrorData* edata) } if (u_sess->attr.attr_common.Log_error_verbosity >= PGERROR_VERBOSE && !edata->hide_prefix) - appendStringInfo(&buf, "%s: ", unpack_sql_state(edata->sqlerrcode)); + appendStringInfo(&buf, "%s: ", plpgsql_get_sqlstate(edata->sqlerrcode)); if (edata->message) { append_with_tabs(&buf, edata->message); @@ -4125,36 +4139,63 @@ static void tolower_func(char *convert_query) } } +static void apply_funcs3_mask(char *string, char** end, char replace) +{ + errno_t rc = EOK; + if (*end == NULL || **end == '\0') { + return; + } + char *start = *end; + + /* find '=' in param: field ^= 123abc */ + while (**end != '=' && **end != '\0') { + (*end)++; + } + if (**end != '=') { + return; + } + (*end)++; + + /* find start of value in param: field = ^123abc */ + while (**end == ' ') { + (*end)++; + } + if (**end == '\0') { + return; + } + start = *end; + (*end)++; + + /* find end of value in param: field = 123abc^ */ + while (**end != ' ' && **end != '\0') { + (*end)++; + } + size_t param_len = *end - start; + Assert(param_len < strlen(string)); + /* + * replace value with '*': field = ****** ... + * ^ ^ + * start end + */ + rc = memset_s(start, param_len, replace, param_len); + securec_check_c(rc, "\0", "\0"); +} + char* mask_funcs3_parameters(const char* query_string) { - char* start = NULL; - int len_start = 0; - int j = 0; - errno_t rc = EOK; - const char* funcs3Mask[] = {"accesskey=", "secretkey="}; + const char* funcs3Mask[] = {"accesskey", "secretkey"}; int funcs3MaskNum = sizeof(funcs3Mask) / sizeof(funcs3Mask[0]); - char* mask_string = MemoryContextStrdup( - SESS_GET_MEM_CXT_GROUP(MEMORY_CONTEXT_STORAGE), query_string); + char* mask_string = MemoryContextStrdup(SESS_GET_MEM_CXT_GROUP(MEMORY_CONTEXT_STORAGE), query_string); for (int i = 0; i < funcs3MaskNum; i++) { - start = mask_string; + char *start = mask_string; while ((start = strstr(start, funcs3Mask[i])) != NULL) { - start = start + strlen(funcs3Mask[i]); - len_start = strlen(start); - for (j = 0; j < len_start; j++) { - if (start[j] == '\0' || start[j] == ' ') - break; - } - if (j > 0) { - rc = memset_s(start, len_start, '*', j); - securec_check(rc, "\0", "\0"); - } else { - /* nothing to replace */ - break; - } + /* take the original string and replace the key value with '*' */ + apply_funcs3_mask(mask_string, &start, '*'); } } return mask_string; } + /* * Mask the password in statment CREATE ROLE, CREATE USER, ALTER ROLE, ALTER USER, CREATE GROUP * SET ROLE, CREATE DATABASE LINK, and some function @@ -4181,7 +4222,7 @@ static char* mask_Password_internal(const char* query_string) int truncateLen = 0; /* accumulate total length for each truncate */ /* the functions need to mask all contents */ - const char* funCrypt[] = {"gs_encrypt_aes128", "gs_decrypt_aes128","gs_encrypt", "gs_decrypt"}; + const char* funCrypt[] = {"gs_encrypt_aes128", "gs_decrypt_aes128", "gs_encrypt", "gs_decrypt"}; int funCryptNum = sizeof(funCrypt) / sizeof(funCrypt[0]); bool isCryptFunc = false; @@ -4274,13 +4315,10 @@ static char* mask_Password_internal(const char* query_string) mask_string = MemoryContextStrdup( SESS_GET_MEM_CXT_GROUP(MEMORY_CONTEXT_SECURITY), query_string); } - if (unlikely(yyextra.literallen != (int)strlen(childStmt))) { - ereport(ERROR, - (errcode(ERRCODE_SYNTAX_ERROR), errmsg("parse error on statement %s.", childStmt))); - } - rc = memcpy_s(mask_string + yylloc + 1, yyextra.literallen, childStmt, yyextra.literallen); + + rc = memcpy_s(mask_string + yylloc + 1, yyextra.literallen, childStmt, strlen(childStmt)); securec_check(rc, "\0", "\0"); - rc = memset_s(childStmt, yyextra.literallen, 0, yyextra.literallen); + rc = memset_s(childStmt, strlen(childStmt), 0, strlen(childStmt)); securec_check(rc, "", ""); pfree(childStmt); } @@ -4296,7 +4334,9 @@ static char* mask_Password_internal(const char* query_string) if (curStmtType > 0 && curStmtType != 12 && curStmtType != 13 && curStmtType != 14 && curStmtType != 15 && (currToken == SCONST || currToken == IDENT)) { if (unlikely(yylloc >= (int)strlen(query_string))) { - ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("parse error on query %s.", query_string))); + ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("current index (%d) out of length of query string (%lu).", + yylloc, strlen(query_string)))); } char ch = query_string[yylloc]; position[idx] = yylloc; diff --git a/src/common/backend/utils/fmgr/fmgr.cpp b/src/common/backend/utils/fmgr/fmgr.cpp index 0087c4cb0..e07d98dbd 100755 --- a/src/common/backend/utils/fmgr/fmgr.cpp +++ b/src/common/backend/utils/fmgr/fmgr.cpp @@ -5,6 +5,7 @@ * * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -1092,8 +1093,6 @@ static Datum fmgr_security_definer(PG_FUNCTION_ARGS) /* Does not allow commit in pre setting scenario */ bool savedisAllowCommitRollback = false; - bool needResetErrMsg = false; - needResetErrMsg = stp_disable_xact_and_set_err_msg(&savedisAllowCommitRollback, STP_XACT_OF_SECURE_DEFINER); if (!fcinfo->flinfo->fn_extra) { HeapTuple tuple; @@ -1207,7 +1206,6 @@ static Datum fmgr_security_definer(PG_FUNCTION_ARGS) } /* restore is_allow_commit_rollback */ - stp_reset_xact_state_and_err_msg(savedisAllowCommitRollback, needResetErrMsg); return result; } @@ -2124,6 +2122,7 @@ Datum InputFunctionCall(FmgrInfo* flinfo, char* str, Oid typioparam, int32 typmo return (Datum)0; /* just return null result */ } + SPI_STACK_LOG("push cond", NULL, NULL); pushed = SPI_push_conditional(); InitFunctionCallInfoData(fcinfo, flinfo, 3, InvalidOid, NULL, NULL); @@ -2140,6 +2139,7 @@ Datum InputFunctionCall(FmgrInfo* flinfo, char* str, Oid typioparam, int32 typmo /* Should get null result if and only if str is NULL */ CheckNullResult(fcinfo.flinfo->fn_oid, fcinfo.isnull, str); + SPI_STACK_LOG("pop cond", NULL, NULL); SPI_pop_conditional(pushed); return result; @@ -2165,6 +2165,7 @@ Datum InputFunctionCallForDateType(FmgrInfo* flinfo, char* str, Oid typioparam, return (Datum)0; /* just return null result */ } + SPI_STACK_LOG("push cond", NULL, NULL); pushed = SPI_push_conditional(); InitFunctionCallInfoData(fcinfo, flinfo, 4, InvalidOid, NULL, NULL); @@ -2183,6 +2184,7 @@ Datum InputFunctionCallForDateType(FmgrInfo* flinfo, char* str, Oid typioparam, /* Should get null result if and only if str is NULL */ CheckNullResult(fcinfo.flinfo->fn_oid, fcinfo.isnull, str); + SPI_STACK_LOG("pop cond", NULL, NULL); SPI_pop_conditional(pushed); return result; @@ -2201,10 +2203,12 @@ char* OutputFunctionCall(FmgrInfo* flinfo, Datum val) char* result = NULL; bool pushed = false; + SPI_STACK_LOG("push cond", NULL, NULL); pushed = SPI_push_conditional(); result = DatumGetCString(FunctionCall1(flinfo, val)); + SPI_STACK_LOG("pop cond", NULL, NULL); SPI_pop_conditional(pushed); return result; @@ -2229,6 +2233,7 @@ Datum ReceiveFunctionCall(FmgrInfo* flinfo, StringInfo buf, Oid typioparam, int3 return (Datum)0; /* just return null result */ } + SPI_STACK_LOG("push cond", NULL, NULL); pushed = SPI_push_conditional(); InitFunctionCallInfoData(fcinfo, flinfo, 3, InvalidOid, NULL, NULL); @@ -2255,6 +2260,7 @@ Datum ReceiveFunctionCall(FmgrInfo* flinfo, StringInfo buf, Oid typioparam, int3 } } + SPI_STACK_LOG("pop cond", NULL, NULL); SPI_pop_conditional(pushed); return result; @@ -2275,10 +2281,12 @@ bytea* SendFunctionCall(FmgrInfo* flinfo, Datum val) bytea* result = NULL; bool pushed = false; + SPI_STACK_LOG("push cond", NULL, NULL); pushed = SPI_push_conditional(); result = DatumGetByteaP(FunctionCall1(flinfo, val)); + SPI_STACK_LOG("pop cond", NULL, NULL); SPI_pop_conditional(pushed); return result; @@ -2402,6 +2410,13 @@ Datum Int64GetDatum(int64 X) } #endif /* USE_FLOAT8_BYVAL */ +Datum Int128GetDatum(int128 X) +{ + int128* retval = (int128*)palloc(sizeof(int128)); + *retval = X; + return PointerGetDatum(retval); +} + Datum Float4GetDatum(float4 X) { #ifdef USE_FLOAT4_BYVAL diff --git a/src/common/backend/utils/fmgr/funcapi.cpp b/src/common/backend/utils/fmgr/funcapi.cpp index fa2e4ed0b..ba1959f8e 100644 --- a/src/common/backend/utils/fmgr/funcapi.cpp +++ b/src/common/backend/utils/fmgr/funcapi.cpp @@ -5,6 +5,7 @@ * sets and/or composite types. * * Copyright (c) 2002-2012, PostgreSQL Global Development Group + * Portions Copyright (c) 2021, openGauss Contributors * * IDENTIFICATION * src/backend/utils/fmgr/funcapi.c diff --git a/src/common/backend/utils/init/globals.cpp b/src/common/backend/utils/init/globals.cpp index 22d9454b9..d08c64d36 100644 --- a/src/common/backend/utils/init/globals.cpp +++ b/src/common/backend/utils/init/globals.cpp @@ -59,8 +59,13 @@ bool open_join_children = true; bool will_shutdown = false; /* hard-wired binary version number */ -const uint32 GRAND_VERSION_NUM = 92425; +const uint32 GRAND_VERSION_NUM = 92507; +const uint32 SUPPORT_HASH_XLOG_VERSION_NUM = 92501; +const uint32 FUNC_PARAM_COL_VERSION_NUM = 92500; +const uint32 SUBPARTITION_VERSION_NUM = 92436; +const uint32 DEFAULT_MAT_CTE_NUM = 92429; +const uint32 MATERIALIZED_CTE_NUM = 92424; const uint32 HINT_ENHANCEMENT_VERSION_NUM = 92359; const uint32 MATVIEW_VERSION_NUM = 92213; const uint32 PARTIALPUSH_VERSION_NUM = 92087; @@ -87,6 +92,13 @@ const uint32 DECODE_ABORT_VERSION_NUM = 92386; const uint32 COPY_TRANSFORM_VERSION_NUM = 92394; const uint32 COMMENT_PCT_TYPE_VERSION_NUM = 92396; const uint32 TDE_VERSION_NUM = 92407; +const uint32 SWCB_VERSION_NUM = 92427; +const uint32 COMMENT_ROWTYPE_TABLEOF_VERSION_NUM = 92513; +const uint32 PRIVS_DIRECTORY_VERSION_NUM = 92460; +const uint32 COMMENT_RECORD_PARAM_VERSION_NUM = 92484; +const uint32 ANALYZER_HOOK_VERSION_NUM = 92502; +const uint32 PUBLICATION_VERSION_NUM = 92504; + /* Version number of the guc parameter backend_version added in V500R001C20 */ const uint32 V5R1C20_BACKEND_VERSION_NUM = 92305; /* Version number starting from V500R002C00 */ @@ -94,15 +106,11 @@ const uint32 V5R2C00_START_VERSION_NUM = 92350; /* Version number of the guc parameter backend_version added in V500R002C00 */ const uint32 V5R2C00_BACKEND_VERSION_NUM = 92412; -const uint32 ANALYZER_HOOK_VERSION_NUM = 92420; -const uint32 SUPPORT_HASH_XLOG_VERSION_NUM = 92420; -const uint32 PUBLICATION_VERSION_NUM = 92425; - -const uint32 ENHANCED_TUPLE_LOCK_VERSION_NUM = 92423; - /* This variable indicates wheather the instance is in progress of upgrade as a whole */ uint32 volatile WorkingGrandVersionNum = GRAND_VERSION_NUM; +const uint32 ENHANCED_TUPLE_LOCK_VERSION_NUM = 92506; + const uint32 TWOPHASE_FILE_VERSION = 92414; bool InplaceUpgradePrecommit = false; diff --git a/src/common/backend/utils/init/miscinit.cpp b/src/common/backend/utils/init/miscinit.cpp index 3bd22a09e..490d34c6f 100644 --- a/src/common/backend/utils/init/miscinit.cpp +++ b/src/common/backend/utils/init/miscinit.cpp @@ -451,33 +451,6 @@ const char* show_nodegroup_mode(void) return "unknown"; } } - -#endif - -#ifndef ENABLE_MULTIPLE_NODES -const int GetCustomParserId() -{ - int id = 0; - switch (u_sess->attr.attr_sql.sql_compatibility) { - case A_FORMAT: - id = DB_CMPT_A; - break; - case B_FORMAT: - id = DB_CMPT_B; - break; - case C_FORMAT: - id = DB_CMPT_C; - break; - case PG_FORMAT: - id = DB_CMPT_PG; - break; - default: - ereport(WARNING, (errmsg("Unknown sql compatibility: %d", u_sess->attr.attr_sql.sql_compatibility))); - return -1; - } - Assert(id >= 0 && id < DB_CMPT_MAX); - return id; -} #endif /* @@ -788,10 +761,17 @@ bool has_rolvcadmin(Oid roleid) return result; } +static void DecreaseUserCountReuse(Oid roleid, bool ispoolerreuse) +{ + if (ispoolerreuse == true && ENABLE_THREAD_POOL) { + DecreaseUserCount(roleid); + } +} + /* * Initialize user identity during normal backend startup */ -void InitializeSessionUserId(const char* rolename, Oid useroid) +void InitializeSessionUserId(const char* rolename, bool ispoolerreuse, Oid useroid) { HeapTuple roleTup; Form_pg_authid rform; @@ -899,6 +879,7 @@ void InitializeSessionUserId(const char* rolename, Oid useroid) /* Also mark our PGPROC entry with the authenticated user id */ /* (We assume this is an atomic store so no lock is needed) */ + DecreaseUserCountReuse(roleid, ispoolerreuse); t_thrd.proc->roleId = roleid; /* @@ -910,6 +891,10 @@ void InitializeSessionUserId(const char* rolename, Oid useroid) /* * Is role allowed to login at all? */ + if (ENABLE_THREAD_POOL) { + IncreaseUserCount(roleid); + } + if (!rform->rolcanlogin) ereport(FATAL, (errcode(ERRCODE_INVALID_AUTHORIZATION_SPECIFICATION), @@ -925,7 +910,6 @@ void InitializeSessionUserId(const char* rolename, Oid useroid) * exactly seems more trouble than it is worth, however; instead we * just document that the connection limit is approximate. */ - IncreaseUserCount(roleid); if (rform->rolconnlimit >= 0 && !u_sess->misc_cxt.AuthenticatedUserIsSuperuser && CountUserBackends(roleid) > rform->rolconnlimit) { ReportAlarmTooManyDbUserConn(rolename); diff --git a/src/common/backend/utils/init/postinit.cpp b/src/common/backend/utils/init/postinit.cpp index f8046716e..33bb3cfd0 100644 --- a/src/common/backend/utils/init/postinit.cpp +++ b/src/common/backend/utils/init/postinit.cpp @@ -287,6 +287,8 @@ static void PerformAuthentication(Port* port) /* This should be set already, but let's make sure */ u_sess->ClientAuthInProgress = true; /* limit visibility of log messages */ + load_ident(); + /* * Set up a timeout in case a buggy or malicious client fails to respond * during authentication. Since we're inside a transaction and might do @@ -603,9 +605,11 @@ void BaseInit(void) /* ------------------------------------- * openGauss reset username and pgoption. + * When ENABLE_THREAD_POOL is enabled, poolerreuse requires special processing. + * The usercount needs to be reduced by one. * ------------------------------------- */ -void PostgresResetUsernamePgoption(const char* username) +void PostgresResetUsernamePgoption(const char* username, bool ispoolerreuse) { ereport(DEBUG3, (errmsg("PostgresResetUsernamePgoption()"))); @@ -673,7 +677,7 @@ void PostgresResetUsernamePgoption(const char* username) u_sess->proc_cxt.MyProcPort->user_name = (char*)GetSuperUserName((char*)username); } - InitializeSessionUserId(username); + InitializeSessionUserId(username, ispoolerreuse); am_superuser = superuser(); u_sess->misc_cxt.CurrentUserName = u_sess->proc_cxt.MyProcPort->user_name; } @@ -781,7 +785,8 @@ static void process_startup_options(Port* port, bool am_superuser) /* check 2 -- forbid non-initial users, except gs_roach and during cluster resizing with gs_redis */ if (!dummyStandbyMode && GetRoleOid(port->user_name) != INITIAL_USER_ID && - !(ClusterResizingInProgress() && u_sess->proc_cxt.clientIsGsredis) && !u_sess->proc_cxt.clientIsGsroach) { + !(ClusterResizingInProgress() && u_sess->proc_cxt.clientIsGsredis) && !u_sess->proc_cxt.clientIsGsroach && + !AM_WAL_HADR_SENDER) { ereport(FATAL, (errcode(ERRCODE_INVALID_OPERATION), errmsg("Inner maintenance tools only for the initial user."))); } @@ -919,6 +924,12 @@ void ShutdownPostgres(int code, Datum arg) /* Make sure we've killed any active transaction */ AbortOutOfAnyTransaction(); + if (u_sess->gtt_ctx.gtt_cleaner_exit_registered) { + u_sess->gtt_ctx.gtt_cleaner_exit_registered = false; + pg_on_exit_callback func = u_sess->gtt_ctx.gtt_sess_exit; + (*func)(code, UInt32GetDatum(NULL)); + } + /* * If stream Top consumer or stream thread end up as elog FATAL, we must wait until we * get a sync point @@ -1690,6 +1701,8 @@ void PostgresInitializer::InitTxnSnapWorker() InitSettings(); + InitExtensionVariable(); + FinishInit(); AuditUserLogin(); @@ -2003,8 +2016,6 @@ void PostgresInitializer::InitSession() InitSettings(); - InitExtensionVariable(); - FinishInit(); AuditUserLogin(); @@ -2133,7 +2144,7 @@ void PostgresInitializer::SetSuperUserAndDatabase() void PostgresInitializer::InitUser() { - InitializeSessionUserId(m_username, m_useroid); + InitializeSessionUserId(m_username, false, m_useroid); m_isSuperUser = superuser(); u_sess->misc_cxt.CurrentUserName = u_sess->proc_cxt.MyProcPort->user_name; #ifndef ENABLE_MULTIPLE_NODES diff --git a/src/common/backend/utils/mb/Unicode/Makefile b/src/common/backend/utils/mb/Unicode/Makefile index 1d2b87d46..a777c8e6e 100644 --- a/src/common/backend/utils/mb/Unicode/Makefile +++ b/src/common/backend/utils/mb/Unicode/Makefile @@ -86,14 +86,14 @@ euc_tw_to_utf8.map utf8_to_euc_tw.map : CNS11643.TXT sjis_to_utf8.map utf8_to_sjis.map : CP932.TXT $(PERL) $(srcdir)/UCS_to_SJIS.pl -gb18030_to_utf8.map utf8_to_gb18030.map : ISO10646-GB18030.TXT +gb18030_to_utf8.map utf8_to_gb18030.map : gb-18030-2000.xml $(PERL) $(srcdir)/UCS_to_GB18030.pl big5_to_utf8.map utf8_to_big5.map : BIG5.TXT CP950.TXT $(PERL) $(srcdir)/UCS_to_BIG5.pl -clean: - rm -f $(MAPS) - distclean: clean rm -f $(TEXTS) + +maintainer-clean: distclean + rm -f $(MAPS) diff --git a/src/common/backend/utils/mb/Unicode/UCS_to_GB18030.pl b/src/common/backend/utils/mb/Unicode/UCS_to_GB18030.pl index ef5dd81de..1041711bd 100644 --- a/src/common/backend/utils/mb/Unicode/UCS_to_GB18030.pl +++ b/src/common/backend/utils/mb/Unicode/UCS_to_GB18030.pl @@ -5,42 +5,46 @@ # src/backend/utils/mb/Unicode/UCS_to_GB18030.pl # # Generate UTF-8 <--> GB18030 code conversion tables from -# "ISO10646-GB18030.TXT" +# "gb-18030-2000.xml" # -# file format: -# GB18030 hex code -# UCS-2 hex code +# The lines we care about in the source file look like +# +# where the "u" field is the Unicode code point in hex, +# and the "b" field is the hex byte sequence for GB18030 require "ucs2utf.pl"; -# first generate UTF-8 --> GB18030 table +# Read the input -$in_file = "ISO10646-GB18030.TXT"; +$in_file = "gb-18030-2000.xml"; open(FILE, $in_file) || die("cannot open $in_file"); while () { - chop; - if (/^#/) - { - next; - } - ($u, $c, $rest) = split; + next if (! m/= 0x80 && $ucs >= 0x0080) { $utf = &ucs2utf($ucs); - if ($array{$utf} ne "") + if ($arrayu{$utf} ne "") { printf STDERR "Warning: duplicate UTF8: %04x\n", $ucs; next; } + if ($arrayc{$code} ne "") + { + printf STDERR "Warning: duplicate GB18030: %08x\n", $code; + next; + } + $arrayu{$utf} = $code; + $arrayc{$code} = $utf; $count++; - - $array{$utf} = $code; } } close(FILE); @@ -54,11 +58,12 @@ $file = "utf8_to_gb18030.map"; open(FILE, "> $file") || die("cannot open $file"); print FILE "static pg_utf_to_local ULmapGB18030[ $count ] = {\n"; -for $index (sort { $a <=> $b } keys(%array)) +$cc = $count; +for $index (sort { $a <=> $b } keys(%arrayu)) { - $code = $array{$index}; - $count--; - if ($count == 0) + $code = $arrayu{$index}; + $cc--; + if ($cc == 0) { printf FILE " {0x%04x, 0x%04x}\n", $index, $code; } @@ -75,43 +80,17 @@ close(FILE); # # then generate GB18030 --> UTF8 table # -reset 'array'; - -open(FILE, $in_file) || die("cannot open $in_file"); - -while () -{ - chop; - if (/^#/) - { - next; - } - ($u, $c, $rest) = split; - $ucs = hex($u); - $code = hex($c); - if ($code >= 0x80 && $ucs >= 0x0080) - { - $utf = &ucs2utf($ucs); - if ($array{$code} ne "") - { - printf STDERR "Warning: duplicate code: %04x\n", $ucs; - next; - } - $count++; - - $array{$code} = $utf; - } -} -close(FILE); $file = "gb18030_to_utf8.map"; open(FILE, "> $file") || die("cannot open $file"); print FILE "static pg_local_to_utf LUmapGB18030[ $count ] = {\n"; -for $index (sort { $a <=> $b } keys(%array)) + +$cc = $count; +for $index (sort { $a <=> $b } keys(%arrayc)) { - $utf = $array{$index}; - $count--; - if ($count == 0) + $utf = $arrayc{$index}; + $cc--; + if ($cc == 0) { printf FILE " {0x%04x, 0x%04x}\n", $index, $utf; } diff --git a/src/common/backend/utils/mb/Unicode/gb-18030-2000.xml b/src/common/backend/utils/mb/Unicode/gb-18030-2000.xml new file mode 100644 index 000000000..fbbc9e334 --- /dev/null +++ b/src/common/backend/utils/mb/Unicode/gb-18030-2000.xml @@ -0,0 +1,30916 @@ + + + + + + 0x80 appears to be a valid (and unassigned) single-byte code, added to the validity. + + + New mapping data, changing all four-byte mappings to the BMP. + Removed mappings to single surrogates. + + + Original table. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/common/backend/utils/mb/Unicode/gb18030_to_utf8.map b/src/common/backend/utils/mb/Unicode/gb18030_to_utf8.map index 3aea9f4ec..dc91b43f4 100644 --- a/src/common/backend/utils/mb/Unicode/gb18030_to_utf8.map +++ b/src/common/backend/utils/mb/Unicode/gb18030_to_utf8.map @@ -1,4 +1,4 @@ -static pg_local_to_utf LUmapGB18030[ 63360 ] = { +static pg_local_to_utf LUmapGB18030[ 30733 ] = { {0x8140, 0xe4b882}, {0x8141, 0xe4b884}, {0x8142, 0xe4b885}, @@ -24759,7108 +24759,6 @@ static pg_local_to_utf LUmapGB18030[ 63360 ] = { {0x8130d237, 0xd08e}, {0x8130d238, 0xd08f}, {0x8130d239, 0xd190}, - {0x8130d330, 0xd192}, - {0x8130d331, 0xd193}, - {0x8130d332, 0xd194}, - {0x8130d333, 0xd195}, - {0x8130d334, 0xd196}, - {0x8130d335, 0xd197}, - {0x8130d336, 0xd198}, - {0x8130d337, 0xd199}, - {0x8130d338, 0xd19a}, - {0x8130d339, 0xd19b}, - {0x8130d430, 0xd19c}, - {0x8130d431, 0xd19d}, - {0x8130d432, 0xd19e}, - {0x8130d433, 0xd19f}, - {0x8130d434, 0xd1a0}, - {0x8130d435, 0xd1a1}, - {0x8130d436, 0xd1a2}, - {0x8130d437, 0xd1a3}, - {0x8130d438, 0xd1a4}, - {0x8130d439, 0xd1a5}, - {0x8130d530, 0xd1a6}, - {0x8130d531, 0xd1a7}, - {0x8130d532, 0xd1a8}, - {0x8130d533, 0xd1a9}, - {0x8130d534, 0xd1aa}, - {0x8130d535, 0xd1ab}, - {0x8130d536, 0xd1ac}, - {0x8130d537, 0xd1ad}, - {0x8130d538, 0xd1ae}, - {0x8130d539, 0xd1af}, - {0x8130d630, 0xd1b0}, - {0x8130d631, 0xd1b1}, - {0x8130d632, 0xd1b2}, - {0x8130d633, 0xd1b3}, - {0x8130d634, 0xd1b4}, - {0x8130d635, 0xd1b5}, - {0x8130d636, 0xd1b6}, - {0x8130d637, 0xd1b7}, - {0x8130d638, 0xd1b8}, - {0x8130d639, 0xd1b9}, - {0x8130d730, 0xd1ba}, - {0x8130d731, 0xd1bb}, - {0x8130d732, 0xd1bc}, - {0x8130d733, 0xd1bd}, - {0x8130d734, 0xd1be}, - {0x8130d735, 0xd1bf}, - {0x8130d736, 0xd280}, - {0x8130d737, 0xd281}, - {0x8130d738, 0xd282}, - {0x8130d739, 0xd283}, - {0x8130d830, 0xd284}, - {0x8130d831, 0xd285}, - {0x8130d832, 0xd286}, - {0x8130d833, 0xd287}, - {0x8130d834, 0xd288}, - {0x8130d835, 0xd289}, - {0x8130d836, 0xd28a}, - {0x8130d837, 0xd28b}, - {0x8130d838, 0xd28c}, - {0x8130d839, 0xd28d}, - {0x8130d930, 0xd28e}, - {0x8130d931, 0xd28f}, - {0x8130d932, 0xd290}, - {0x8130d933, 0xd291}, - {0x8130d934, 0xd292}, - {0x8130d935, 0xd293}, - {0x8130d936, 0xd294}, - {0x8130d937, 0xd295}, - {0x8130d938, 0xd296}, - {0x8130d939, 0xd297}, - {0x8130da30, 0xd298}, - {0x8130da31, 0xd299}, - {0x8130da32, 0xd29a}, - {0x8130da33, 0xd29b}, - {0x8130da34, 0xd29c}, - {0x8130da35, 0xd29d}, - {0x8130da36, 0xd29e}, - {0x8130da37, 0xd29f}, - {0x8130da38, 0xd2a0}, - {0x8130da39, 0xd2a1}, - {0x8130db30, 0xd2a2}, - {0x8130db31, 0xd2a3}, - {0x8130db32, 0xd2a4}, - {0x8130db33, 0xd2a5}, - {0x8130db34, 0xd2a6}, - {0x8130db35, 0xd2a7}, - {0x8130db36, 0xd2a8}, - {0x8130db37, 0xd2a9}, - {0x8130db38, 0xd2aa}, - {0x8130db39, 0xd2ab}, - {0x8130dc30, 0xd2ac}, - {0x8130dc31, 0xd2ad}, - {0x8130dc32, 0xd2ae}, - {0x8130dc33, 0xd2af}, - {0x8130dc34, 0xd2b0}, - {0x8130dc35, 0xd2b1}, - {0x8130dc36, 0xd2b2}, - {0x8130dc37, 0xd2b3}, - {0x8130dc38, 0xd2b4}, - {0x8130dc39, 0xd2b5}, - {0x8130dd30, 0xd2b6}, - {0x8130dd31, 0xd2b7}, - {0x8130dd32, 0xd2b8}, - {0x8130dd33, 0xd2b9}, - {0x8130dd34, 0xd2ba}, - {0x8130dd35, 0xd2bb}, - {0x8130dd36, 0xd2bc}, - {0x8130dd37, 0xd2bd}, - {0x8130dd38, 0xd2be}, - {0x8130dd39, 0xd2bf}, - {0x8130de30, 0xd380}, - {0x8130de31, 0xd381}, - {0x8130de32, 0xd382}, - {0x8130de33, 0xd383}, - {0x8130de34, 0xd384}, - {0x8130de35, 0xd385}, - {0x8130de36, 0xd386}, - {0x8130de37, 0xd387}, - {0x8130de38, 0xd388}, - {0x8130de39, 0xd389}, - {0x8130df30, 0xd38a}, - {0x8130df31, 0xd38b}, - {0x8130df32, 0xd38c}, - {0x8130df33, 0xd38d}, - {0x8130df34, 0xd38e}, - {0x8130df35, 0xd38f}, - {0x8130df36, 0xd390}, - {0x8130df37, 0xd391}, - {0x8130df38, 0xd392}, - {0x8130df39, 0xd393}, - {0x8130e030, 0xd394}, - {0x8130e031, 0xd395}, - {0x8130e032, 0xd396}, - {0x8130e033, 0xd397}, - {0x8130e034, 0xd398}, - {0x8130e035, 0xd399}, - {0x8130e036, 0xd39a}, - {0x8130e037, 0xd39b}, - {0x8130e038, 0xd39c}, - {0x8130e039, 0xd39d}, - {0x8130e130, 0xd39e}, - {0x8130e131, 0xd39f}, - {0x8130e132, 0xd3a0}, - {0x8130e133, 0xd3a1}, - {0x8130e134, 0xd3a2}, - {0x8130e135, 0xd3a3}, - {0x8130e136, 0xd3a4}, - {0x8130e137, 0xd3a5}, - {0x8130e138, 0xd3a6}, - {0x8130e139, 0xd3a7}, - {0x8130e230, 0xd3a8}, - {0x8130e231, 0xd3a9}, - {0x8130e232, 0xd3aa}, - {0x8130e233, 0xd3ab}, - {0x8130e234, 0xd3ac}, - {0x8130e235, 0xd3ad}, - {0x8130e236, 0xd3ae}, - {0x8130e237, 0xd3af}, - {0x8130e238, 0xd3b0}, - {0x8130e239, 0xd3b1}, - {0x8130e330, 0xd3b2}, - {0x8130e331, 0xd3b3}, - {0x8130e332, 0xd3b4}, - {0x8130e333, 0xd3b5}, - {0x8130e334, 0xd3b6}, - {0x8130e335, 0xd3b7}, - {0x8130e336, 0xd3b8}, - {0x8130e337, 0xd3b9}, - {0x8130e338, 0xd3ba}, - {0x8130e339, 0xd3bb}, - {0x8130e430, 0xd3bc}, - {0x8130e431, 0xd3bd}, - {0x8130e432, 0xd3be}, - {0x8130e433, 0xd3bf}, - {0x8130e434, 0xd480}, - {0x8130e435, 0xd481}, - {0x8130e436, 0xd482}, - {0x8130e437, 0xd483}, - {0x8130e438, 0xd484}, - {0x8130e439, 0xd485}, - {0x8130e530, 0xd486}, - {0x8130e531, 0xd487}, - {0x8130e532, 0xd488}, - {0x8130e533, 0xd489}, - {0x8130e534, 0xd48a}, - {0x8130e535, 0xd48b}, - {0x8130e536, 0xd48c}, - {0x8130e537, 0xd48d}, - {0x8130e538, 0xd48e}, - {0x8130e539, 0xd48f}, - {0x8130e630, 0xd490}, - {0x8130e631, 0xd491}, - {0x8130e632, 0xd492}, - {0x8130e633, 0xd493}, - {0x8130e634, 0xd494}, - {0x8130e635, 0xd495}, - {0x8130e636, 0xd496}, - {0x8130e637, 0xd497}, - {0x8130e638, 0xd498}, - {0x8130e639, 0xd499}, - {0x8130e730, 0xd49a}, - {0x8130e731, 0xd49b}, - {0x8130e732, 0xd49c}, - {0x8130e733, 0xd49d}, - {0x8130e734, 0xd49e}, - {0x8130e735, 0xd49f}, - {0x8130e736, 0xd4a0}, - {0x8130e737, 0xd4a1}, - {0x8130e738, 0xd4a2}, - {0x8130e739, 0xd4a3}, - {0x8130e830, 0xd4a4}, - {0x8130e831, 0xd4a5}, - {0x8130e832, 0xd4a6}, - {0x8130e833, 0xd4a7}, - {0x8130e834, 0xd4a8}, - {0x8130e835, 0xd4a9}, - {0x8130e836, 0xd4aa}, - {0x8130e837, 0xd4ab}, - {0x8130e838, 0xd4ac}, - {0x8130e839, 0xd4ad}, - {0x8130e930, 0xd4ae}, - {0x8130e931, 0xd4af}, - {0x8130e932, 0xd4b0}, - {0x8130e933, 0xd4b1}, - {0x8130e934, 0xd4b2}, - {0x8130e935, 0xd4b3}, - {0x8130e936, 0xd4b4}, - {0x8130e937, 0xd4b5}, - {0x8130e938, 0xd4b6}, - {0x8130e939, 0xd4b7}, - {0x8130ea30, 0xd4b8}, - {0x8130ea31, 0xd4b9}, - {0x8130ea32, 0xd4ba}, - {0x8130ea33, 0xd4bb}, - {0x8130ea34, 0xd4bc}, - {0x8130ea35, 0xd4bd}, - {0x8130ea36, 0xd4be}, - {0x8130ea37, 0xd4bf}, - {0x8130ea38, 0xd580}, - {0x8130ea39, 0xd581}, - {0x8130eb30, 0xd582}, - {0x8130eb31, 0xd583}, - {0x8130eb32, 0xd584}, - {0x8130eb33, 0xd585}, - {0x8130eb34, 0xd586}, - {0x8130eb35, 0xd587}, - {0x8130eb36, 0xd588}, - {0x8130eb37, 0xd589}, - {0x8130eb38, 0xd58a}, - {0x8130eb39, 0xd58b}, - {0x8130ec30, 0xd58c}, - {0x8130ec31, 0xd58d}, - {0x8130ec32, 0xd58e}, - {0x8130ec33, 0xd58f}, - {0x8130ec34, 0xd590}, - {0x8130ec35, 0xd591}, - {0x8130ec36, 0xd592}, - {0x8130ec37, 0xd593}, - {0x8130ec38, 0xd594}, - {0x8130ec39, 0xd595}, - {0x8130ed30, 0xd596}, - {0x8130ed31, 0xd597}, - {0x8130ed32, 0xd598}, - {0x8130ed33, 0xd599}, - {0x8130ed34, 0xd59a}, - {0x8130ed35, 0xd59b}, - {0x8130ed36, 0xd59c}, - {0x8130ed37, 0xd59d}, - {0x8130ed38, 0xd59e}, - {0x8130ed39, 0xd59f}, - {0x8130ee30, 0xd5a0}, - {0x8130ee31, 0xd5a1}, - {0x8130ee32, 0xd5a2}, - {0x8130ee33, 0xd5a3}, - {0x8130ee34, 0xd5a4}, - {0x8130ee35, 0xd5a5}, - {0x8130ee36, 0xd5a6}, - {0x8130ee37, 0xd5a7}, - {0x8130ee38, 0xd5a8}, - {0x8130ee39, 0xd5a9}, - {0x8130ef30, 0xd5aa}, - {0x8130ef31, 0xd5ab}, - {0x8130ef32, 0xd5ac}, - {0x8130ef33, 0xd5ad}, - {0x8130ef34, 0xd5ae}, - {0x8130ef35, 0xd5af}, - {0x8130ef36, 0xd5b0}, - {0x8130ef37, 0xd5b1}, - {0x8130ef38, 0xd5b2}, - {0x8130ef39, 0xd5b3}, - {0x8130f030, 0xd5b4}, - {0x8130f031, 0xd5b5}, - {0x8130f032, 0xd5b6}, - {0x8130f033, 0xd5b7}, - {0x8130f034, 0xd5b8}, - {0x8130f035, 0xd5b9}, - {0x8130f036, 0xd5ba}, - {0x8130f037, 0xd5bb}, - {0x8130f038, 0xd5bc}, - {0x8130f039, 0xd5bd}, - {0x8130f130, 0xd5be}, - {0x8130f131, 0xd5bf}, - {0x8130f132, 0xd680}, - {0x8130f133, 0xd681}, - {0x8130f134, 0xd682}, - {0x8130f135, 0xd683}, - {0x8130f136, 0xd684}, - {0x8130f137, 0xd685}, - {0x8130f138, 0xd686}, - {0x8130f139, 0xd687}, - {0x8130f230, 0xd688}, - {0x8130f231, 0xd689}, - {0x8130f232, 0xd68a}, - {0x8130f233, 0xd68b}, - {0x8130f234, 0xd68c}, - {0x8130f235, 0xd68d}, - {0x8130f236, 0xd68e}, - {0x8130f237, 0xd68f}, - {0x8130f238, 0xd690}, - {0x8130f239, 0xd691}, - {0x8130f330, 0xd692}, - {0x8130f331, 0xd693}, - {0x8130f332, 0xd694}, - {0x8130f333, 0xd695}, - {0x8130f334, 0xd696}, - {0x8130f335, 0xd697}, - {0x8130f336, 0xd698}, - {0x8130f337, 0xd699}, - {0x8130f338, 0xd69a}, - {0x8130f339, 0xd69b}, - {0x8130f430, 0xd69c}, - {0x8130f431, 0xd69d}, - {0x8130f432, 0xd69e}, - {0x8130f433, 0xd69f}, - {0x8130f434, 0xd6a0}, - {0x8130f435, 0xd6a1}, - {0x8130f436, 0xd6a2}, - {0x8130f437, 0xd6a3}, - {0x8130f438, 0xd6a4}, - {0x8130f439, 0xd6a5}, - {0x8130f530, 0xd6a6}, - {0x8130f531, 0xd6a7}, - {0x8130f532, 0xd6a8}, - {0x8130f533, 0xd6a9}, - {0x8130f534, 0xd6aa}, - {0x8130f535, 0xd6ab}, - {0x8130f536, 0xd6ac}, - {0x8130f537, 0xd6ad}, - {0x8130f538, 0xd6ae}, - {0x8130f539, 0xd6af}, - {0x8130f630, 0xd6b0}, - {0x8130f631, 0xd6b1}, - {0x8130f632, 0xd6b2}, - {0x8130f633, 0xd6b3}, - {0x8130f634, 0xd6b4}, - {0x8130f635, 0xd6b5}, - {0x8130f636, 0xd6b6}, - {0x8130f637, 0xd6b7}, - {0x8130f638, 0xd6b8}, - {0x8130f639, 0xd6b9}, - {0x8130f730, 0xd6ba}, - {0x8130f731, 0xd6bb}, - {0x8130f732, 0xd6bc}, - {0x8130f733, 0xd6bd}, - {0x8130f734, 0xd6be}, - {0x8130f735, 0xd6bf}, - {0x8130f736, 0xd780}, - {0x8130f737, 0xd781}, - {0x8130f738, 0xd782}, - {0x8130f739, 0xd783}, - {0x8130f830, 0xd784}, - {0x8130f831, 0xd785}, - {0x8130f832, 0xd786}, - {0x8130f833, 0xd787}, - {0x8130f834, 0xd788}, - {0x8130f835, 0xd789}, - {0x8130f836, 0xd78a}, - {0x8130f837, 0xd78b}, - {0x8130f838, 0xd78c}, - {0x8130f839, 0xd78d}, - {0x8130f930, 0xd78e}, - {0x8130f931, 0xd78f}, - {0x8130f932, 0xd790}, - {0x8130f933, 0xd791}, - {0x8130f934, 0xd792}, - {0x8130f935, 0xd793}, - {0x8130f936, 0xd794}, - {0x8130f937, 0xd795}, - {0x8130f938, 0xd796}, - {0x8130f939, 0xd797}, - {0x8130fa30, 0xd798}, - {0x8130fa31, 0xd799}, - {0x8130fa32, 0xd79a}, - {0x8130fa33, 0xd79b}, - {0x8130fa34, 0xd79c}, - {0x8130fa35, 0xd79d}, - {0x8130fa36, 0xd79e}, - {0x8130fa37, 0xd79f}, - {0x8130fa38, 0xd7a0}, - {0x8130fa39, 0xd7a1}, - {0x8130fb30, 0xd7a2}, - {0x8130fb31, 0xd7a3}, - {0x8130fb32, 0xd7a4}, - {0x8130fb33, 0xd7a5}, - {0x8130fb34, 0xd7a6}, - {0x8130fb35, 0xd7a7}, - {0x8130fb36, 0xd7a8}, - {0x8130fb37, 0xd7a9}, - {0x8130fb38, 0xd7aa}, - {0x8130fb39, 0xd7ab}, - {0x8130fc30, 0xd7ac}, - {0x8130fc31, 0xd7ad}, - {0x8130fc32, 0xd7ae}, - {0x8130fc33, 0xd7af}, - {0x8130fc34, 0xd7b0}, - {0x8130fc35, 0xd7b1}, - {0x8130fc36, 0xd7b2}, - {0x8130fc37, 0xd7b3}, - {0x8130fc38, 0xd7b4}, - {0x8130fc39, 0xd7b5}, - {0x8130fd30, 0xd7b6}, - {0x8130fd31, 0xd7b7}, - {0x8130fd32, 0xd7b8}, - {0x8130fd33, 0xd7b9}, - {0x8130fd34, 0xd7ba}, - {0x8130fd35, 0xd7bb}, - {0x8130fd36, 0xd7bc}, - {0x8130fd37, 0xd7bd}, - {0x8130fd38, 0xd7be}, - {0x8130fd39, 0xd7bf}, - {0x8130fe30, 0xd880}, - {0x8130fe31, 0xd881}, - {0x8130fe32, 0xd882}, - {0x8130fe33, 0xd883}, - {0x8130fe34, 0xd884}, - {0x8130fe35, 0xd885}, - {0x8130fe36, 0xd886}, - {0x8130fe37, 0xd887}, - {0x8130fe38, 0xd888}, - {0x8130fe39, 0xd889}, - {0x81318130, 0xd88a}, - {0x81318131, 0xd88b}, - {0x81318132, 0xd88c}, - {0x81318133, 0xd88d}, - {0x81318134, 0xd88e}, - {0x81318135, 0xd88f}, - {0x81318136, 0xd890}, - {0x81318137, 0xd891}, - {0x81318138, 0xd892}, - {0x81318139, 0xd893}, - {0x81318230, 0xd894}, - {0x81318231, 0xd895}, - {0x81318232, 0xd896}, - {0x81318233, 0xd897}, - {0x81318234, 0xd898}, - {0x81318235, 0xd899}, - {0x81318236, 0xd89a}, - {0x81318237, 0xd89b}, - {0x81318238, 0xd89c}, - {0x81318239, 0xd89d}, - {0x81318330, 0xd89e}, - {0x81318331, 0xd89f}, - {0x81318332, 0xd8a0}, - {0x81318333, 0xd8a1}, - {0x81318334, 0xd8a2}, - {0x81318335, 0xd8a3}, - {0x81318336, 0xd8a4}, - {0x81318337, 0xd8a5}, - {0x81318338, 0xd8a6}, - {0x81318339, 0xd8a7}, - {0x81318430, 0xd8a8}, - {0x81318431, 0xd8a9}, - {0x81318432, 0xd8aa}, - {0x81318433, 0xd8ab}, - {0x81318434, 0xd8ac}, - {0x81318435, 0xd8ad}, - {0x81318436, 0xd8ae}, - {0x81318437, 0xd8af}, - {0x81318438, 0xd8b0}, - {0x81318439, 0xd8b1}, - {0x81318530, 0xd8b2}, - {0x81318531, 0xd8b3}, - {0x81318532, 0xd8b4}, - {0x81318533, 0xd8b5}, - {0x81318534, 0xd8b6}, - {0x81318535, 0xd8b7}, - {0x81318536, 0xd8b8}, - {0x81318537, 0xd8b9}, - {0x81318538, 0xd8ba}, - {0x81318539, 0xd8bb}, - {0x81318630, 0xd8bc}, - {0x81318631, 0xd8bd}, - {0x81318632, 0xd8be}, - {0x81318633, 0xd8bf}, - {0x81318634, 0xd980}, - {0x81318635, 0xd981}, - {0x81318636, 0xd982}, - {0x81318637, 0xd983}, - {0x81318638, 0xd984}, - {0x81318639, 0xd985}, - {0x81318730, 0xd986}, - {0x81318731, 0xd987}, - {0x81318732, 0xd988}, - {0x81318733, 0xd989}, - {0x81318734, 0xd98a}, - {0x81318735, 0xd98b}, - {0x81318736, 0xd98c}, - {0x81318737, 0xd98d}, - {0x81318738, 0xd98e}, - {0x81318739, 0xd98f}, - {0x81318830, 0xd990}, - {0x81318831, 0xd991}, - {0x81318832, 0xd992}, - {0x81318833, 0xd993}, - {0x81318834, 0xd994}, - {0x81318835, 0xd995}, - {0x81318836, 0xd996}, - {0x81318837, 0xd997}, - {0x81318838, 0xd998}, - {0x81318839, 0xd999}, - {0x81318930, 0xd99a}, - {0x81318931, 0xd99b}, - {0x81318932, 0xd99c}, - {0x81318933, 0xd99d}, - {0x81318934, 0xd99e}, - {0x81318935, 0xd99f}, - {0x81318936, 0xd9a0}, - {0x81318937, 0xd9a1}, - {0x81318938, 0xd9a2}, - {0x81318939, 0xd9a3}, - {0x81318a30, 0xd9a4}, - {0x81318a31, 0xd9a5}, - {0x81318a32, 0xd9a6}, - {0x81318a33, 0xd9a7}, - {0x81318a34, 0xd9a8}, - {0x81318a35, 0xd9a9}, - {0x81318a36, 0xd9aa}, - {0x81318a37, 0xd9ab}, - {0x81318a38, 0xd9ac}, - {0x81318a39, 0xd9ad}, - {0x81318b30, 0xd9ae}, - {0x81318b31, 0xd9af}, - {0x81318b32, 0xd9b0}, - {0x81318b33, 0xd9b1}, - {0x81318b34, 0xd9b2}, - {0x81318b35, 0xd9b3}, - {0x81318b36, 0xd9b4}, - {0x81318b37, 0xd9b5}, - {0x81318b38, 0xd9b6}, - {0x81318b39, 0xd9b7}, - {0x81318c30, 0xd9b8}, - {0x81318c31, 0xd9b9}, - {0x81318c32, 0xd9ba}, - {0x81318c33, 0xd9bb}, - {0x81318c34, 0xd9bc}, - {0x81318c35, 0xd9bd}, - {0x81318c36, 0xd9be}, - {0x81318c37, 0xd9bf}, - {0x81318c38, 0xda80}, - {0x81318c39, 0xda81}, - {0x81318d30, 0xda82}, - {0x81318d31, 0xda83}, - {0x81318d32, 0xda84}, - {0x81318d33, 0xda85}, - {0x81318d34, 0xda86}, - {0x81318d35, 0xda87}, - {0x81318d36, 0xda88}, - {0x81318d37, 0xda89}, - {0x81318d38, 0xda8a}, - {0x81318d39, 0xda8b}, - {0x81318e30, 0xda8c}, - {0x81318e31, 0xda8d}, - {0x81318e32, 0xda8e}, - {0x81318e33, 0xda8f}, - {0x81318e34, 0xda90}, - {0x81318e35, 0xda91}, - {0x81318e36, 0xda92}, - {0x81318e37, 0xda93}, - {0x81318e38, 0xda94}, - {0x81318e39, 0xda95}, - {0x81318f30, 0xda96}, - {0x81318f31, 0xda97}, - {0x81318f32, 0xda98}, - {0x81318f33, 0xda99}, - {0x81318f34, 0xda9a}, - {0x81318f35, 0xda9b}, - {0x81318f36, 0xda9c}, - {0x81318f37, 0xda9d}, - {0x81318f38, 0xda9e}, - {0x81318f39, 0xda9f}, - {0x81319030, 0xdaa0}, - {0x81319031, 0xdaa1}, - {0x81319032, 0xdaa2}, - {0x81319033, 0xdaa3}, - {0x81319034, 0xdaa4}, - {0x81319035, 0xdaa5}, - {0x81319036, 0xdaa6}, - {0x81319037, 0xdaa7}, - {0x81319038, 0xdaa8}, - {0x81319039, 0xdaa9}, - {0x81319130, 0xdaaa}, - {0x81319131, 0xdaab}, - {0x81319132, 0xdaac}, - {0x81319133, 0xdaad}, - {0x81319134, 0xdaae}, - {0x81319135, 0xdaaf}, - {0x81319136, 0xdab0}, - {0x81319137, 0xdab1}, - {0x81319138, 0xdab2}, - {0x81319139, 0xdab3}, - {0x81319230, 0xdab4}, - {0x81319231, 0xdab5}, - {0x81319232, 0xdab6}, - {0x81319233, 0xdab7}, - {0x81319234, 0xdab8}, - {0x81319235, 0xdab9}, - {0x81319236, 0xdaba}, - {0x81319237, 0xdabb}, - {0x81319238, 0xdabc}, - {0x81319239, 0xdabd}, - {0x81319330, 0xdabe}, - {0x81319331, 0xdabf}, - {0x81319332, 0xdb80}, - {0x81319333, 0xdb81}, - {0x81319334, 0xdb82}, - {0x81319335, 0xdb83}, - {0x81319336, 0xdb84}, - {0x81319337, 0xdb85}, - {0x81319338, 0xdb86}, - {0x81319339, 0xdb87}, - {0x81319430, 0xdb88}, - {0x81319431, 0xdb89}, - {0x81319432, 0xdb8a}, - {0x81319433, 0xdb8b}, - {0x81319434, 0xdb8c}, - {0x81319435, 0xdb8d}, - {0x81319436, 0xdb8e}, - {0x81319437, 0xdb8f}, - {0x81319438, 0xdb90}, - {0x81319439, 0xdb91}, - {0x81319530, 0xdb92}, - {0x81319531, 0xdb93}, - {0x81319532, 0xdb94}, - {0x81319533, 0xdb95}, - {0x81319534, 0xdb96}, - {0x81319535, 0xdb97}, - {0x81319536, 0xdb98}, - {0x81319537, 0xdb99}, - {0x81319538, 0xdb9a}, - {0x81319539, 0xdb9b}, - {0x81319630, 0xdb9c}, - {0x81319631, 0xdb9d}, - {0x81319632, 0xdb9e}, - {0x81319633, 0xdb9f}, - {0x81319634, 0xdba0}, - {0x81319635, 0xdba1}, - {0x81319636, 0xdba2}, - {0x81319637, 0xdba3}, - {0x81319638, 0xdba4}, - {0x81319639, 0xdba5}, - {0x81319730, 0xdba6}, - {0x81319731, 0xdba7}, - {0x81319732, 0xdba8}, - {0x81319733, 0xdba9}, - {0x81319734, 0xdbaa}, - {0x81319735, 0xdbab}, - {0x81319736, 0xdbac}, - {0x81319737, 0xdbad}, - {0x81319738, 0xdbae}, - {0x81319739, 0xdbaf}, - {0x81319830, 0xdbb0}, - {0x81319831, 0xdbb1}, - {0x81319832, 0xdbb2}, - {0x81319833, 0xdbb3}, - {0x81319834, 0xdbb4}, - {0x81319835, 0xdbb5}, - {0x81319836, 0xdbb6}, - {0x81319837, 0xdbb7}, - {0x81319838, 0xdbb8}, - {0x81319839, 0xdbb9}, - {0x81319930, 0xdbba}, - {0x81319931, 0xdbbb}, - {0x81319932, 0xdbbc}, - {0x81319933, 0xdbbd}, - {0x81319934, 0xdbbe}, - {0x81319935, 0xdbbf}, - {0x81319936, 0xdc80}, - {0x81319937, 0xdc81}, - {0x81319938, 0xdc82}, - {0x81319939, 0xdc83}, - {0x81319a30, 0xdc84}, - {0x81319a31, 0xdc85}, - {0x81319a32, 0xdc86}, - {0x81319a33, 0xdc87}, - {0x81319a34, 0xdc88}, - {0x81319a35, 0xdc89}, - {0x81319a36, 0xdc8a}, - {0x81319a37, 0xdc8b}, - {0x81319a38, 0xdc8c}, - {0x81319a39, 0xdc8d}, - {0x81319b30, 0xdc8e}, - {0x81319b31, 0xdc8f}, - {0x81319b32, 0xdc90}, - {0x81319b33, 0xdc91}, - {0x81319b34, 0xdc92}, - {0x81319b35, 0xdc93}, - {0x81319b36, 0xdc94}, - {0x81319b37, 0xdc95}, - {0x81319b38, 0xdc96}, - {0x81319b39, 0xdc97}, - {0x81319c30, 0xdc98}, - {0x81319c31, 0xdc99}, - {0x81319c32, 0xdc9a}, - {0x81319c33, 0xdc9b}, - {0x81319c34, 0xdc9c}, - {0x81319c35, 0xdc9d}, - {0x81319c36, 0xdc9e}, - {0x81319c37, 0xdc9f}, - {0x81319c38, 0xdca0}, - {0x81319c39, 0xdca1}, - {0x81319d30, 0xdca2}, - {0x81319d31, 0xdca3}, - {0x81319d32, 0xdca4}, - {0x81319d33, 0xdca5}, - {0x81319d34, 0xdca6}, - {0x81319d35, 0xdca7}, - {0x81319d36, 0xdca8}, - {0x81319d37, 0xdca9}, - {0x81319d38, 0xdcaa}, - {0x81319d39, 0xdcab}, - {0x81319e30, 0xdcac}, - {0x81319e31, 0xdcad}, - {0x81319e32, 0xdcae}, - {0x81319e33, 0xdcaf}, - {0x81319e34, 0xdcb0}, - {0x81319e35, 0xdcb1}, - {0x81319e36, 0xdcb2}, - {0x81319e37, 0xdcb3}, - {0x81319e38, 0xdcb4}, - {0x81319e39, 0xdcb5}, - {0x81319f30, 0xdcb6}, - {0x81319f31, 0xdcb7}, - {0x81319f32, 0xdcb8}, - {0x81319f33, 0xdcb9}, - {0x81319f34, 0xdcba}, - {0x81319f35, 0xdcbb}, - {0x81319f36, 0xdcbc}, - {0x81319f37, 0xdcbd}, - {0x81319f38, 0xdcbe}, - {0x81319f39, 0xdcbf}, - {0x8131a030, 0xdd80}, - {0x8131a031, 0xdd81}, - {0x8131a032, 0xdd82}, - {0x8131a033, 0xdd83}, - {0x8131a034, 0xdd84}, - {0x8131a035, 0xdd85}, - {0x8131a036, 0xdd86}, - {0x8131a037, 0xdd87}, - {0x8131a038, 0xdd88}, - {0x8131a039, 0xdd89}, - {0x8131a130, 0xdd8a}, - {0x8131a131, 0xdd8b}, - {0x8131a132, 0xdd8c}, - {0x8131a133, 0xdd8d}, - {0x8131a134, 0xdd8e}, - {0x8131a135, 0xdd8f}, - {0x8131a136, 0xdd90}, - {0x8131a137, 0xdd91}, - {0x8131a138, 0xdd92}, - {0x8131a139, 0xdd93}, - {0x8131a230, 0xdd94}, - {0x8131a231, 0xdd95}, - {0x8131a232, 0xdd96}, - {0x8131a233, 0xdd97}, - {0x8131a234, 0xdd98}, - {0x8131a235, 0xdd99}, - {0x8131a236, 0xdd9a}, - {0x8131a237, 0xdd9b}, - {0x8131a238, 0xdd9c}, - {0x8131a239, 0xdd9d}, - {0x8131a330, 0xdd9e}, - {0x8131a331, 0xdd9f}, - {0x8131a332, 0xdda0}, - {0x8131a333, 0xdda1}, - {0x8131a334, 0xdda2}, - {0x8131a335, 0xdda3}, - {0x8131a336, 0xdda4}, - {0x8131a337, 0xdda5}, - {0x8131a338, 0xdda6}, - {0x8131a339, 0xdda7}, - {0x8131a430, 0xdda8}, - {0x8131a431, 0xdda9}, - {0x8131a432, 0xddaa}, - {0x8131a433, 0xddab}, - {0x8131a434, 0xddac}, - {0x8131a435, 0xddad}, - {0x8131a436, 0xddae}, - {0x8131a437, 0xddaf}, - {0x8131a438, 0xddb0}, - {0x8131a439, 0xddb1}, - {0x8131a530, 0xddb2}, - {0x8131a531, 0xddb3}, - {0x8131a532, 0xddb4}, - {0x8131a533, 0xddb5}, - {0x8131a534, 0xddb6}, - {0x8131a535, 0xddb7}, - {0x8131a536, 0xddb8}, - {0x8131a537, 0xddb9}, - {0x8131a538, 0xddba}, - {0x8131a539, 0xddbb}, - {0x8131a630, 0xddbc}, - {0x8131a631, 0xddbd}, - {0x8131a632, 0xddbe}, - {0x8131a633, 0xddbf}, - {0x8131a634, 0xde80}, - {0x8131a635, 0xde81}, - {0x8131a636, 0xde82}, - {0x8131a637, 0xde83}, - {0x8131a638, 0xde84}, - {0x8131a639, 0xde85}, - {0x8131a730, 0xde86}, - {0x8131a731, 0xde87}, - {0x8131a732, 0xde88}, - {0x8131a733, 0xde89}, - {0x8131a734, 0xde8a}, - {0x8131a735, 0xde8b}, - {0x8131a736, 0xde8c}, - {0x8131a737, 0xde8d}, - {0x8131a738, 0xde8e}, - {0x8131a739, 0xde8f}, - {0x8131a830, 0xde90}, - {0x8131a831, 0xde91}, - {0x8131a832, 0xde92}, - {0x8131a833, 0xde93}, - {0x8131a834, 0xde94}, - {0x8131a835, 0xde95}, - {0x8131a836, 0xde96}, - {0x8131a837, 0xde97}, - {0x8131a838, 0xde98}, - {0x8131a839, 0xde99}, - {0x8131a930, 0xde9a}, - {0x8131a931, 0xde9b}, - {0x8131a932, 0xde9c}, - {0x8131a933, 0xde9d}, - {0x8131a934, 0xde9e}, - {0x8131a935, 0xde9f}, - {0x8131a936, 0xdea0}, - {0x8131a937, 0xdea1}, - {0x8131a938, 0xdea2}, - {0x8131a939, 0xdea3}, - {0x8131aa30, 0xdea4}, - {0x8131aa31, 0xdea5}, - {0x8131aa32, 0xdea6}, - {0x8131aa33, 0xdea7}, - {0x8131aa34, 0xdea8}, - {0x8131aa35, 0xdea9}, - {0x8131aa36, 0xdeaa}, - {0x8131aa37, 0xdeab}, - {0x8131aa38, 0xdeac}, - {0x8131aa39, 0xdead}, - {0x8131ab30, 0xdeae}, - {0x8131ab31, 0xdeaf}, - {0x8131ab32, 0xdeb0}, - {0x8131ab33, 0xdeb1}, - {0x8131ab34, 0xdeb2}, - {0x8131ab35, 0xdeb3}, - {0x8131ab36, 0xdeb4}, - {0x8131ab37, 0xdeb5}, - {0x8131ab38, 0xdeb6}, - {0x8131ab39, 0xdeb7}, - {0x8131ac30, 0xdeb8}, - {0x8131ac31, 0xdeb9}, - {0x8131ac32, 0xdeba}, - {0x8131ac33, 0xdebb}, - {0x8131ac34, 0xdebc}, - {0x8131ac35, 0xdebd}, - {0x8131ac36, 0xdebe}, - {0x8131ac37, 0xdebf}, - {0x8131ac38, 0xdf80}, - {0x8131ac39, 0xdf81}, - {0x8131ad30, 0xdf82}, - {0x8131ad31, 0xdf83}, - {0x8131ad32, 0xdf84}, - {0x8131ad33, 0xdf85}, - {0x8131ad34, 0xdf86}, - {0x8131ad35, 0xdf87}, - {0x8131ad36, 0xdf88}, - {0x8131ad37, 0xdf89}, - {0x8131ad38, 0xdf8a}, - {0x8131ad39, 0xdf8b}, - {0x8131ae30, 0xdf8c}, - {0x8131ae31, 0xdf8d}, - {0x8131ae32, 0xdf8e}, - {0x8131ae33, 0xdf8f}, - {0x8131ae34, 0xdf90}, - {0x8131ae35, 0xdf91}, - {0x8131ae36, 0xdf92}, - {0x8131ae37, 0xdf93}, - {0x8131ae38, 0xdf94}, - {0x8131ae39, 0xdf95}, - {0x8131af30, 0xdf96}, - {0x8131af31, 0xdf97}, - {0x8131af32, 0xdf98}, - {0x8131af33, 0xdf99}, - {0x8131af34, 0xdf9a}, - {0x8131af35, 0xdf9b}, - {0x8131af36, 0xdf9c}, - {0x8131af37, 0xdf9d}, - {0x8131af38, 0xdf9e}, - {0x8131af39, 0xdf9f}, - {0x8131b030, 0xdfa0}, - {0x8131b031, 0xdfa1}, - {0x8131b032, 0xdfa2}, - {0x8131b033, 0xdfa3}, - {0x8131b034, 0xdfa4}, - {0x8131b035, 0xdfa5}, - {0x8131b036, 0xdfa6}, - {0x8131b037, 0xdfa7}, - {0x8131b038, 0xdfa8}, - {0x8131b039, 0xdfa9}, - {0x8131b130, 0xdfaa}, - {0x8131b131, 0xdfab}, - {0x8131b132, 0xdfac}, - {0x8131b133, 0xdfad}, - {0x8131b134, 0xdfae}, - {0x8131b135, 0xdfaf}, - {0x8131b136, 0xdfb0}, - {0x8131b137, 0xdfb1}, - {0x8131b138, 0xdfb2}, - {0x8131b139, 0xdfb3}, - {0x8131b230, 0xdfb4}, - {0x8131b231, 0xdfb5}, - {0x8131b232, 0xdfb6}, - {0x8131b233, 0xdfb7}, - {0x8131b234, 0xdfb8}, - {0x8131b235, 0xdfb9}, - {0x8131b236, 0xdfba}, - {0x8131b237, 0xdfbb}, - {0x8131b238, 0xdfbc}, - {0x8131b239, 0xdfbd}, - {0x8131b330, 0xdfbe}, - {0x8131b331, 0xdfbf}, - {0x8131b332, 0xe0a080}, - {0x8131b333, 0xe0a081}, - {0x8131b334, 0xe0a082}, - {0x8131b335, 0xe0a083}, - {0x8131b336, 0xe0a084}, - {0x8131b337, 0xe0a085}, - {0x8131b338, 0xe0a086}, - {0x8131b339, 0xe0a087}, - {0x8131b430, 0xe0a088}, - {0x8131b431, 0xe0a089}, - {0x8131b432, 0xe0a08a}, - {0x8131b433, 0xe0a08b}, - {0x8131b434, 0xe0a08c}, - {0x8131b435, 0xe0a08d}, - {0x8131b436, 0xe0a08e}, - {0x8131b437, 0xe0a08f}, - {0x8131b438, 0xe0a090}, - {0x8131b439, 0xe0a091}, - {0x8131b530, 0xe0a092}, - {0x8131b531, 0xe0a093}, - {0x8131b532, 0xe0a094}, - {0x8131b533, 0xe0a095}, - {0x8131b534, 0xe0a096}, - {0x8131b535, 0xe0a097}, - {0x8131b536, 0xe0a098}, - {0x8131b537, 0xe0a099}, - {0x8131b538, 0xe0a09a}, - {0x8131b539, 0xe0a09b}, - {0x8131b630, 0xe0a09c}, - {0x8131b631, 0xe0a09d}, - {0x8131b632, 0xe0a09e}, - {0x8131b633, 0xe0a09f}, - {0x8131b634, 0xe0a0a0}, - {0x8131b635, 0xe0a0a1}, - {0x8131b636, 0xe0a0a2}, - {0x8131b637, 0xe0a0a3}, - {0x8131b638, 0xe0a0a4}, - {0x8131b639, 0xe0a0a5}, - {0x8131b730, 0xe0a0a6}, - {0x8131b731, 0xe0a0a7}, - {0x8131b732, 0xe0a0a8}, - {0x8131b733, 0xe0a0a9}, - {0x8131b734, 0xe0a0aa}, - {0x8131b735, 0xe0a0ab}, - {0x8131b736, 0xe0a0ac}, - {0x8131b737, 0xe0a0ad}, - {0x8131b738, 0xe0a0ae}, - {0x8131b739, 0xe0a0af}, - {0x8131b830, 0xe0a0b0}, - {0x8131b831, 0xe0a0b1}, - {0x8131b832, 0xe0a0b2}, - {0x8131b833, 0xe0a0b3}, - {0x8131b834, 0xe0a0b4}, - {0x8131b835, 0xe0a0b5}, - {0x8131b836, 0xe0a0b6}, - {0x8131b837, 0xe0a0b7}, - {0x8131b838, 0xe0a0b8}, - {0x8131b839, 0xe0a0b9}, - {0x8131b930, 0xe0a0ba}, - {0x8131b931, 0xe0a0bb}, - {0x8131b932, 0xe0a0bc}, - {0x8131b933, 0xe0a0bd}, - {0x8131b934, 0xe0a0be}, - {0x8131b935, 0xe0a0bf}, - {0x8131b936, 0xe0a180}, - {0x8131b937, 0xe0a181}, - {0x8131b938, 0xe0a182}, - {0x8131b939, 0xe0a183}, - {0x8131ba30, 0xe0a184}, - {0x8131ba31, 0xe0a185}, - {0x8131ba32, 0xe0a186}, - {0x8131ba33, 0xe0a187}, - {0x8131ba34, 0xe0a188}, - {0x8131ba35, 0xe0a189}, - {0x8131ba36, 0xe0a18a}, - {0x8131ba37, 0xe0a18b}, - {0x8131ba38, 0xe0a18c}, - {0x8131ba39, 0xe0a18d}, - {0x8131bb30, 0xe0a18e}, - {0x8131bb31, 0xe0a18f}, - {0x8131bb32, 0xe0a190}, - {0x8131bb33, 0xe0a191}, - {0x8131bb34, 0xe0a192}, - {0x8131bb35, 0xe0a193}, - {0x8131bb36, 0xe0a194}, - {0x8131bb37, 0xe0a195}, - {0x8131bb38, 0xe0a196}, - {0x8131bb39, 0xe0a197}, - {0x8131bc30, 0xe0a198}, - {0x8131bc31, 0xe0a199}, - {0x8131bc32, 0xe0a19a}, - {0x8131bc33, 0xe0a19b}, - {0x8131bc34, 0xe0a19c}, - {0x8131bc35, 0xe0a19d}, - {0x8131bc36, 0xe0a19e}, - {0x8131bc37, 0xe0a19f}, - {0x8131bc38, 0xe0a1a0}, - {0x8131bc39, 0xe0a1a1}, - {0x8131bd30, 0xe0a1a2}, - {0x8131bd31, 0xe0a1a3}, - {0x8131bd32, 0xe0a1a4}, - {0x8131bd33, 0xe0a1a5}, - {0x8131bd34, 0xe0a1a6}, - {0x8131bd35, 0xe0a1a7}, - {0x8131bd36, 0xe0a1a8}, - {0x8131bd37, 0xe0a1a9}, - {0x8131bd38, 0xe0a1aa}, - {0x8131bd39, 0xe0a1ab}, - {0x8131be30, 0xe0a1ac}, - {0x8131be31, 0xe0a1ad}, - {0x8131be32, 0xe0a1ae}, - {0x8131be33, 0xe0a1af}, - {0x8131be34, 0xe0a1b0}, - {0x8131be35, 0xe0a1b1}, - {0x8131be36, 0xe0a1b2}, - {0x8131be37, 0xe0a1b3}, - {0x8131be38, 0xe0a1b4}, - {0x8131be39, 0xe0a1b5}, - {0x8131bf30, 0xe0a1b6}, - {0x8131bf31, 0xe0a1b7}, - {0x8131bf32, 0xe0a1b8}, - {0x8131bf33, 0xe0a1b9}, - {0x8131bf34, 0xe0a1ba}, - {0x8131bf35, 0xe0a1bb}, - {0x8131bf36, 0xe0a1bc}, - {0x8131bf37, 0xe0a1bd}, - {0x8131bf38, 0xe0a1be}, - {0x8131bf39, 0xe0a1bf}, - {0x8131c030, 0xe0a280}, - {0x8131c031, 0xe0a281}, - {0x8131c032, 0xe0a282}, - {0x8131c033, 0xe0a283}, - {0x8131c034, 0xe0a284}, - {0x8131c035, 0xe0a285}, - {0x8131c036, 0xe0a286}, - {0x8131c037, 0xe0a287}, - {0x8131c038, 0xe0a288}, - {0x8131c039, 0xe0a289}, - {0x8131c130, 0xe0a28a}, - {0x8131c131, 0xe0a28b}, - {0x8131c132, 0xe0a28c}, - {0x8131c133, 0xe0a28d}, - {0x8131c134, 0xe0a28e}, - {0x8131c135, 0xe0a28f}, - {0x8131c136, 0xe0a290}, - {0x8131c137, 0xe0a291}, - {0x8131c138, 0xe0a292}, - {0x8131c139, 0xe0a293}, - {0x8131c230, 0xe0a294}, - {0x8131c231, 0xe0a295}, - {0x8131c232, 0xe0a296}, - {0x8131c233, 0xe0a297}, - {0x8131c234, 0xe0a298}, - {0x8131c235, 0xe0a299}, - {0x8131c236, 0xe0a29a}, - {0x8131c237, 0xe0a29b}, - {0x8131c238, 0xe0a29c}, - {0x8131c239, 0xe0a29d}, - {0x8131c330, 0xe0a29e}, - {0x8131c331, 0xe0a29f}, - {0x8131c332, 0xe0a2a0}, - {0x8131c333, 0xe0a2a1}, - {0x8131c334, 0xe0a2a2}, - {0x8131c335, 0xe0a2a3}, - {0x8131c336, 0xe0a2a4}, - {0x8131c337, 0xe0a2a5}, - {0x8131c338, 0xe0a2a6}, - {0x8131c339, 0xe0a2a7}, - {0x8131c430, 0xe0a2a8}, - {0x8131c431, 0xe0a2a9}, - {0x8131c432, 0xe0a2aa}, - {0x8131c433, 0xe0a2ab}, - {0x8131c434, 0xe0a2ac}, - {0x8131c435, 0xe0a2ad}, - {0x8131c436, 0xe0a2ae}, - {0x8131c437, 0xe0a2af}, - {0x8131c438, 0xe0a2b0}, - {0x8131c439, 0xe0a2b1}, - {0x8131c530, 0xe0a2b2}, - {0x8131c531, 0xe0a2b3}, - {0x8131c532, 0xe0a2b4}, - {0x8131c533, 0xe0a2b5}, - {0x8131c534, 0xe0a2b6}, - {0x8131c535, 0xe0a2b7}, - {0x8131c536, 0xe0a2b8}, - {0x8131c537, 0xe0a2b9}, - {0x8131c538, 0xe0a2ba}, - {0x8131c539, 0xe0a2bb}, - {0x8131c630, 0xe0a2bc}, - {0x8131c631, 0xe0a2bd}, - {0x8131c632, 0xe0a2be}, - {0x8131c633, 0xe0a2bf}, - {0x8131c634, 0xe0a380}, - {0x8131c635, 0xe0a381}, - {0x8131c636, 0xe0a382}, - {0x8131c637, 0xe0a383}, - {0x8131c638, 0xe0a384}, - {0x8131c639, 0xe0a385}, - {0x8131c730, 0xe0a386}, - {0x8131c731, 0xe0a387}, - {0x8131c732, 0xe0a388}, - {0x8131c733, 0xe0a389}, - {0x8131c734, 0xe0a38a}, - {0x8131c735, 0xe0a38b}, - {0x8131c736, 0xe0a38c}, - {0x8131c737, 0xe0a38d}, - {0x8131c738, 0xe0a38e}, - {0x8131c739, 0xe0a38f}, - {0x8131c830, 0xe0a390}, - {0x8131c831, 0xe0a391}, - {0x8131c832, 0xe0a392}, - {0x8131c833, 0xe0a393}, - {0x8131c834, 0xe0a394}, - {0x8131c835, 0xe0a395}, - {0x8131c836, 0xe0a396}, - {0x8131c837, 0xe0a397}, - {0x8131c838, 0xe0a398}, - {0x8131c839, 0xe0a399}, - {0x8131c930, 0xe0a39a}, - {0x8131c931, 0xe0a39b}, - {0x8131c932, 0xe0a39c}, - {0x8131c933, 0xe0a39d}, - {0x8131c934, 0xe0a39e}, - {0x8131c935, 0xe0a39f}, - {0x8131c936, 0xe0a3a0}, - {0x8131c937, 0xe0a3a1}, - {0x8131c938, 0xe0a3a2}, - {0x8131c939, 0xe0a3a3}, - {0x8131ca30, 0xe0a3a4}, - {0x8131ca31, 0xe0a3a5}, - {0x8131ca32, 0xe0a3a6}, - {0x8131ca33, 0xe0a3a7}, - {0x8131ca34, 0xe0a3a8}, - {0x8131ca35, 0xe0a3a9}, - {0x8131ca36, 0xe0a3aa}, - {0x8131ca37, 0xe0a3ab}, - {0x8131ca38, 0xe0a3ac}, - {0x8131ca39, 0xe0a3ad}, - {0x8131cb30, 0xe0a3ae}, - {0x8131cb31, 0xe0a3af}, - {0x8131cb32, 0xe0a3b0}, - {0x8131cb33, 0xe0a3b1}, - {0x8131cb34, 0xe0a3b2}, - {0x8131cb35, 0xe0a3b3}, - {0x8131cb36, 0xe0a3b4}, - {0x8131cb37, 0xe0a3b5}, - {0x8131cb38, 0xe0a3b6}, - {0x8131cb39, 0xe0a3b7}, - {0x8131cc30, 0xe0a3b8}, - {0x8131cc31, 0xe0a3b9}, - {0x8131cc32, 0xe0a3ba}, - {0x8131cc33, 0xe0a3bb}, - {0x8131cc34, 0xe0a3bc}, - {0x8131cc35, 0xe0a3bd}, - {0x8131cc36, 0xe0a3be}, - {0x8131cc37, 0xe0a3bf}, - {0x8131cc38, 0xe0a480}, - {0x8131cc39, 0xe0a481}, - {0x8131cd30, 0xe0a482}, - {0x8131cd31, 0xe0a483}, - {0x8131cd32, 0xe0a484}, - {0x8131cd33, 0xe0a485}, - {0x8131cd34, 0xe0a486}, - {0x8131cd35, 0xe0a487}, - {0x8131cd36, 0xe0a488}, - {0x8131cd37, 0xe0a489}, - {0x8131cd38, 0xe0a48a}, - {0x8131cd39, 0xe0a48b}, - {0x8131ce30, 0xe0a48c}, - {0x8131ce31, 0xe0a48d}, - {0x8131ce32, 0xe0a48e}, - {0x8131ce33, 0xe0a48f}, - {0x8131ce34, 0xe0a490}, - {0x8131ce35, 0xe0a491}, - {0x8131ce36, 0xe0a492}, - {0x8131ce37, 0xe0a493}, - {0x8131ce38, 0xe0a494}, - {0x8131ce39, 0xe0a495}, - {0x8131cf30, 0xe0a496}, - {0x8131cf31, 0xe0a497}, - {0x8131cf32, 0xe0a498}, - {0x8131cf33, 0xe0a499}, - {0x8131cf34, 0xe0a49a}, - {0x8131cf35, 0xe0a49b}, - {0x8131cf36, 0xe0a49c}, - {0x8131cf37, 0xe0a49d}, - {0x8131cf38, 0xe0a49e}, - {0x8131cf39, 0xe0a49f}, - {0x8131d030, 0xe0a4a0}, - {0x8131d031, 0xe0a4a1}, - {0x8131d032, 0xe0a4a2}, - {0x8131d033, 0xe0a4a3}, - {0x8131d034, 0xe0a4a4}, - {0x8131d035, 0xe0a4a5}, - {0x8131d036, 0xe0a4a6}, - {0x8131d037, 0xe0a4a7}, - {0x8131d038, 0xe0a4a8}, - {0x8131d039, 0xe0a4a9}, - {0x8131d130, 0xe0a4aa}, - {0x8131d131, 0xe0a4ab}, - {0x8131d132, 0xe0a4ac}, - {0x8131d133, 0xe0a4ad}, - {0x8131d134, 0xe0a4ae}, - {0x8131d135, 0xe0a4af}, - {0x8131d136, 0xe0a4b0}, - {0x8131d137, 0xe0a4b1}, - {0x8131d138, 0xe0a4b2}, - {0x8131d139, 0xe0a4b3}, - {0x8131d230, 0xe0a4b4}, - {0x8131d231, 0xe0a4b5}, - {0x8131d232, 0xe0a4b6}, - {0x8131d233, 0xe0a4b7}, - {0x8131d234, 0xe0a4b8}, - {0x8131d235, 0xe0a4b9}, - {0x8131d236, 0xe0a4ba}, - {0x8131d237, 0xe0a4bb}, - {0x8131d238, 0xe0a4bc}, - {0x8131d239, 0xe0a4bd}, - {0x8131d330, 0xe0a4be}, - {0x8131d331, 0xe0a4bf}, - {0x8131d332, 0xe0a580}, - {0x8131d333, 0xe0a581}, - {0x8131d334, 0xe0a582}, - {0x8131d335, 0xe0a583}, - {0x8131d336, 0xe0a584}, - {0x8131d337, 0xe0a585}, - {0x8131d338, 0xe0a586}, - {0x8131d339, 0xe0a587}, - {0x8131d430, 0xe0a588}, - {0x8131d431, 0xe0a589}, - {0x8131d432, 0xe0a58a}, - {0x8131d433, 0xe0a58b}, - {0x8131d434, 0xe0a58c}, - {0x8131d435, 0xe0a58d}, - {0x8131d436, 0xe0a58e}, - {0x8131d437, 0xe0a58f}, - {0x8131d438, 0xe0a590}, - {0x8131d439, 0xe0a591}, - {0x8131d530, 0xe0a592}, - {0x8131d531, 0xe0a593}, - {0x8131d532, 0xe0a594}, - {0x8131d533, 0xe0a595}, - {0x8131d534, 0xe0a596}, - {0x8131d535, 0xe0a597}, - {0x8131d536, 0xe0a598}, - {0x8131d537, 0xe0a599}, - {0x8131d538, 0xe0a59a}, - {0x8131d539, 0xe0a59b}, - {0x8131d630, 0xe0a59c}, - {0x8131d631, 0xe0a59d}, - {0x8131d632, 0xe0a59e}, - {0x8131d633, 0xe0a59f}, - {0x8131d634, 0xe0a5a0}, - {0x8131d635, 0xe0a5a1}, - {0x8131d636, 0xe0a5a2}, - {0x8131d637, 0xe0a5a3}, - {0x8131d638, 0xe0a5a4}, - {0x8131d639, 0xe0a5a5}, - {0x8131d730, 0xe0a5a6}, - {0x8131d731, 0xe0a5a7}, - {0x8131d732, 0xe0a5a8}, - {0x8131d733, 0xe0a5a9}, - {0x8131d734, 0xe0a5aa}, - {0x8131d735, 0xe0a5ab}, - {0x8131d736, 0xe0a5ac}, - {0x8131d737, 0xe0a5ad}, - {0x8131d738, 0xe0a5ae}, - {0x8131d739, 0xe0a5af}, - {0x8131d830, 0xe0a5b0}, - {0x8131d831, 0xe0a5b1}, - {0x8131d832, 0xe0a5b2}, - {0x8131d833, 0xe0a5b3}, - {0x8131d834, 0xe0a5b4}, - {0x8131d835, 0xe0a5b5}, - {0x8131d836, 0xe0a5b6}, - {0x8131d837, 0xe0a5b7}, - {0x8131d838, 0xe0a5b8}, - {0x8131d839, 0xe0a5b9}, - {0x8131d930, 0xe0a5ba}, - {0x8131d931, 0xe0a5bb}, - {0x8131d932, 0xe0a5bc}, - {0x8131d933, 0xe0a5bd}, - {0x8131d934, 0xe0a5be}, - {0x8131d935, 0xe0a5bf}, - {0x8131d936, 0xe0a680}, - {0x8131d937, 0xe0a681}, - {0x8131d938, 0xe0a682}, - {0x8131d939, 0xe0a683}, - {0x8131da30, 0xe0a684}, - {0x8131da31, 0xe0a685}, - {0x8131da32, 0xe0a686}, - {0x8131da33, 0xe0a687}, - {0x8131da34, 0xe0a688}, - {0x8131da35, 0xe0a689}, - {0x8131da36, 0xe0a68a}, - {0x8131da37, 0xe0a68b}, - {0x8131da38, 0xe0a68c}, - {0x8131da39, 0xe0a68d}, - {0x8131db30, 0xe0a68e}, - {0x8131db31, 0xe0a68f}, - {0x8131db32, 0xe0a690}, - {0x8131db33, 0xe0a691}, - {0x8131db34, 0xe0a692}, - {0x8131db35, 0xe0a693}, - {0x8131db36, 0xe0a694}, - {0x8131db37, 0xe0a695}, - {0x8131db38, 0xe0a696}, - {0x8131db39, 0xe0a697}, - {0x8131dc30, 0xe0a698}, - {0x8131dc31, 0xe0a699}, - {0x8131dc32, 0xe0a69a}, - {0x8131dc33, 0xe0a69b}, - {0x8131dc34, 0xe0a69c}, - {0x8131dc35, 0xe0a69d}, - {0x8131dc36, 0xe0a69e}, - {0x8131dc37, 0xe0a69f}, - {0x8131dc38, 0xe0a6a0}, - {0x8131dc39, 0xe0a6a1}, - {0x8131dd30, 0xe0a6a2}, - {0x8131dd31, 0xe0a6a3}, - {0x8131dd32, 0xe0a6a4}, - {0x8131dd33, 0xe0a6a5}, - {0x8131dd34, 0xe0a6a6}, - {0x8131dd35, 0xe0a6a7}, - {0x8131dd36, 0xe0a6a8}, - {0x8131dd37, 0xe0a6a9}, - {0x8131dd38, 0xe0a6aa}, - {0x8131dd39, 0xe0a6ab}, - {0x8131de30, 0xe0a6ac}, - {0x8131de31, 0xe0a6ad}, - {0x8131de32, 0xe0a6ae}, - {0x8131de33, 0xe0a6af}, - {0x8131de34, 0xe0a6b0}, - {0x8131de35, 0xe0a6b1}, - {0x8131de36, 0xe0a6b2}, - {0x8131de37, 0xe0a6b3}, - {0x8131de38, 0xe0a6b4}, - {0x8131de39, 0xe0a6b5}, - {0x8131df30, 0xe0a6b6}, - {0x8131df31, 0xe0a6b7}, - {0x8131df32, 0xe0a6b8}, - {0x8131df33, 0xe0a6b9}, - {0x8131df34, 0xe0a6ba}, - {0x8131df35, 0xe0a6bb}, - {0x8131df36, 0xe0a6bc}, - {0x8131df37, 0xe0a6bd}, - {0x8131df38, 0xe0a6be}, - {0x8131df39, 0xe0a6bf}, - {0x8131e030, 0xe0a780}, - {0x8131e031, 0xe0a781}, - {0x8131e032, 0xe0a782}, - {0x8131e033, 0xe0a783}, - {0x8131e034, 0xe0a784}, - {0x8131e035, 0xe0a785}, - {0x8131e036, 0xe0a786}, - {0x8131e037, 0xe0a787}, - {0x8131e038, 0xe0a788}, - {0x8131e039, 0xe0a789}, - {0x8131e130, 0xe0a78a}, - {0x8131e131, 0xe0a78b}, - {0x8131e132, 0xe0a78c}, - {0x8131e133, 0xe0a78d}, - {0x8131e134, 0xe0a78e}, - {0x8131e135, 0xe0a78f}, - {0x8131e136, 0xe0a790}, - {0x8131e137, 0xe0a791}, - {0x8131e138, 0xe0a792}, - {0x8131e139, 0xe0a793}, - {0x8131e230, 0xe0a794}, - {0x8131e231, 0xe0a795}, - {0x8131e232, 0xe0a796}, - {0x8131e233, 0xe0a797}, - {0x8131e234, 0xe0a798}, - {0x8131e235, 0xe0a799}, - {0x8131e236, 0xe0a79a}, - {0x8131e237, 0xe0a79b}, - {0x8131e238, 0xe0a79c}, - {0x8131e239, 0xe0a79d}, - {0x8131e330, 0xe0a79e}, - {0x8131e331, 0xe0a79f}, - {0x8131e332, 0xe0a7a0}, - {0x8131e333, 0xe0a7a1}, - {0x8131e334, 0xe0a7a2}, - {0x8131e335, 0xe0a7a3}, - {0x8131e336, 0xe0a7a4}, - {0x8131e337, 0xe0a7a5}, - {0x8131e338, 0xe0a7a6}, - {0x8131e339, 0xe0a7a7}, - {0x8131e430, 0xe0a7a8}, - {0x8131e431, 0xe0a7a9}, - {0x8131e432, 0xe0a7aa}, - {0x8131e433, 0xe0a7ab}, - {0x8131e434, 0xe0a7ac}, - {0x8131e435, 0xe0a7ad}, - {0x8131e436, 0xe0a7ae}, - {0x8131e437, 0xe0a7af}, - {0x8131e438, 0xe0a7b0}, - {0x8131e439, 0xe0a7b1}, - {0x8131e530, 0xe0a7b2}, - {0x8131e531, 0xe0a7b3}, - {0x8131e532, 0xe0a7b4}, - {0x8131e533, 0xe0a7b5}, - {0x8131e534, 0xe0a7b6}, - {0x8131e535, 0xe0a7b7}, - {0x8131e536, 0xe0a7b8}, - {0x8131e537, 0xe0a7b9}, - {0x8131e538, 0xe0a7ba}, - {0x8131e539, 0xe0a7bb}, - {0x8131e630, 0xe0a7bc}, - {0x8131e631, 0xe0a7bd}, - {0x8131e632, 0xe0a7be}, - {0x8131e633, 0xe0a7bf}, - {0x8131e634, 0xe0a880}, - {0x8131e635, 0xe0a881}, - {0x8131e636, 0xe0a882}, - {0x8131e637, 0xe0a883}, - {0x8131e638, 0xe0a884}, - {0x8131e639, 0xe0a885}, - {0x8131e730, 0xe0a886}, - {0x8131e731, 0xe0a887}, - {0x8131e732, 0xe0a888}, - {0x8131e733, 0xe0a889}, - {0x8131e734, 0xe0a88a}, - {0x8131e735, 0xe0a88b}, - {0x8131e736, 0xe0a88c}, - {0x8131e737, 0xe0a88d}, - {0x8131e738, 0xe0a88e}, - {0x8131e739, 0xe0a88f}, - {0x8131e830, 0xe0a890}, - {0x8131e831, 0xe0a891}, - {0x8131e832, 0xe0a892}, - {0x8131e833, 0xe0a893}, - {0x8131e834, 0xe0a894}, - {0x8131e835, 0xe0a895}, - {0x8131e836, 0xe0a896}, - {0x8131e837, 0xe0a897}, - {0x8131e838, 0xe0a898}, - {0x8131e839, 0xe0a899}, - {0x8131e930, 0xe0a89a}, - {0x8131e931, 0xe0a89b}, - {0x8131e932, 0xe0a89c}, - {0x8131e933, 0xe0a89d}, - {0x8131e934, 0xe0a89e}, - {0x8131e935, 0xe0a89f}, - {0x8131e936, 0xe0a8a0}, - {0x8131e937, 0xe0a8a1}, - {0x8131e938, 0xe0a8a2}, - {0x8131e939, 0xe0a8a3}, - {0x8131ea30, 0xe0a8a4}, - {0x8131ea31, 0xe0a8a5}, - {0x8131ea32, 0xe0a8a6}, - {0x8131ea33, 0xe0a8a7}, - {0x8131ea34, 0xe0a8a8}, - {0x8131ea35, 0xe0a8a9}, - {0x8131ea36, 0xe0a8aa}, - {0x8131ea37, 0xe0a8ab}, - {0x8131ea38, 0xe0a8ac}, - {0x8131ea39, 0xe0a8ad}, - {0x8131eb30, 0xe0a8ae}, - {0x8131eb31, 0xe0a8af}, - {0x8131eb32, 0xe0a8b0}, - {0x8131eb33, 0xe0a8b1}, - {0x8131eb34, 0xe0a8b2}, - {0x8131eb35, 0xe0a8b3}, - {0x8131eb36, 0xe0a8b4}, - {0x8131eb37, 0xe0a8b5}, - {0x8131eb38, 0xe0a8b6}, - {0x8131eb39, 0xe0a8b7}, - {0x8131ec30, 0xe0a8b8}, - {0x8131ec31, 0xe0a8b9}, - {0x8131ec32, 0xe0a8ba}, - {0x8131ec33, 0xe0a8bb}, - {0x8131ec34, 0xe0a8bc}, - {0x8131ec35, 0xe0a8bd}, - {0x8131ec36, 0xe0a8be}, - {0x8131ec37, 0xe0a8bf}, - {0x8131ec38, 0xe0a980}, - {0x8131ec39, 0xe0a981}, - {0x8131ed30, 0xe0a982}, - {0x8131ed31, 0xe0a983}, - {0x8131ed32, 0xe0a984}, - {0x8131ed33, 0xe0a985}, - {0x8131ed34, 0xe0a986}, - {0x8131ed35, 0xe0a987}, - {0x8131ed36, 0xe0a988}, - {0x8131ed37, 0xe0a989}, - {0x8131ed38, 0xe0a98a}, - {0x8131ed39, 0xe0a98b}, - {0x8131ee30, 0xe0a98c}, - {0x8131ee31, 0xe0a98d}, - {0x8131ee32, 0xe0a98e}, - {0x8131ee33, 0xe0a98f}, - {0x8131ee34, 0xe0a990}, - {0x8131ee35, 0xe0a991}, - {0x8131ee36, 0xe0a992}, - {0x8131ee37, 0xe0a993}, - {0x8131ee38, 0xe0a994}, - {0x8131ee39, 0xe0a995}, - {0x8131ef30, 0xe0a996}, - {0x8131ef31, 0xe0a997}, - {0x8131ef32, 0xe0a998}, - {0x8131ef33, 0xe0a999}, - {0x8131ef34, 0xe0a99a}, - {0x8131ef35, 0xe0a99b}, - {0x8131ef36, 0xe0a99c}, - {0x8131ef37, 0xe0a99d}, - {0x8131ef38, 0xe0a99e}, - {0x8131ef39, 0xe0a99f}, - {0x8131f030, 0xe0a9a0}, - {0x8131f031, 0xe0a9a1}, - {0x8131f032, 0xe0a9a2}, - {0x8131f033, 0xe0a9a3}, - {0x8131f034, 0xe0a9a4}, - {0x8131f035, 0xe0a9a5}, - {0x8131f036, 0xe0a9a6}, - {0x8131f037, 0xe0a9a7}, - {0x8131f038, 0xe0a9a8}, - {0x8131f039, 0xe0a9a9}, - {0x8131f130, 0xe0a9aa}, - {0x8131f131, 0xe0a9ab}, - {0x8131f132, 0xe0a9ac}, - {0x8131f133, 0xe0a9ad}, - {0x8131f134, 0xe0a9ae}, - {0x8131f135, 0xe0a9af}, - {0x8131f136, 0xe0a9b0}, - {0x8131f137, 0xe0a9b1}, - {0x8131f138, 0xe0a9b2}, - {0x8131f139, 0xe0a9b3}, - {0x8131f230, 0xe0a9b4}, - {0x8131f231, 0xe0a9b5}, - {0x8131f232, 0xe0a9b6}, - {0x8131f233, 0xe0a9b7}, - {0x8131f234, 0xe0a9b8}, - {0x8131f235, 0xe0a9b9}, - {0x8131f236, 0xe0a9ba}, - {0x8131f237, 0xe0a9bb}, - {0x8131f238, 0xe0a9bc}, - {0x8131f239, 0xe0a9bd}, - {0x8131f330, 0xe0a9be}, - {0x8131f331, 0xe0a9bf}, - {0x8131f332, 0xe0aa80}, - {0x8131f333, 0xe0aa81}, - {0x8131f334, 0xe0aa82}, - {0x8131f335, 0xe0aa83}, - {0x8131f336, 0xe0aa84}, - {0x8131f337, 0xe0aa85}, - {0x8131f338, 0xe0aa86}, - {0x8131f339, 0xe0aa87}, - {0x8131f430, 0xe0aa88}, - {0x8131f431, 0xe0aa89}, - {0x8131f432, 0xe0aa8a}, - {0x8131f433, 0xe0aa8b}, - {0x8131f434, 0xe0aa8c}, - {0x8131f435, 0xe0aa8d}, - {0x8131f436, 0xe0aa8e}, - {0x8131f437, 0xe0aa8f}, - {0x8131f438, 0xe0aa90}, - {0x8131f439, 0xe0aa91}, - {0x8131f530, 0xe0aa92}, - {0x8131f531, 0xe0aa93}, - {0x8131f532, 0xe0aa94}, - {0x8131f533, 0xe0aa95}, - {0x8131f534, 0xe0aa96}, - {0x8131f535, 0xe0aa97}, - {0x8131f536, 0xe0aa98}, - {0x8131f537, 0xe0aa99}, - {0x8131f538, 0xe0aa9a}, - {0x8131f539, 0xe0aa9b}, - {0x8131f630, 0xe0aa9c}, - {0x8131f631, 0xe0aa9d}, - {0x8131f632, 0xe0aa9e}, - {0x8131f633, 0xe0aa9f}, - {0x8131f634, 0xe0aaa0}, - {0x8131f635, 0xe0aaa1}, - {0x8131f636, 0xe0aaa2}, - {0x8131f637, 0xe0aaa3}, - {0x8131f638, 0xe0aaa4}, - {0x8131f639, 0xe0aaa5}, - {0x8131f730, 0xe0aaa6}, - {0x8131f731, 0xe0aaa7}, - {0x8131f732, 0xe0aaa8}, - {0x8131f733, 0xe0aaa9}, - {0x8131f734, 0xe0aaaa}, - {0x8131f735, 0xe0aaab}, - {0x8131f736, 0xe0aaac}, - {0x8131f737, 0xe0aaad}, - {0x8131f738, 0xe0aaae}, - {0x8131f739, 0xe0aaaf}, - {0x8131f830, 0xe0aab0}, - {0x8131f831, 0xe0aab1}, - {0x8131f832, 0xe0aab2}, - {0x8131f833, 0xe0aab3}, - {0x8131f834, 0xe0aab4}, - {0x8131f835, 0xe0aab5}, - {0x8131f836, 0xe0aab6}, - {0x8131f837, 0xe0aab7}, - {0x8131f838, 0xe0aab8}, - {0x8131f839, 0xe0aab9}, - {0x8131f930, 0xe0aaba}, - {0x8131f931, 0xe0aabb}, - {0x8131f932, 0xe0aabc}, - {0x8131f933, 0xe0aabd}, - {0x8131f934, 0xe0aabe}, - {0x8131f935, 0xe0aabf}, - {0x8131f936, 0xe0ab80}, - {0x8131f937, 0xe0ab81}, - {0x8131f938, 0xe0ab82}, - {0x8131f939, 0xe0ab83}, - {0x8131fa30, 0xe0ab84}, - {0x8131fa31, 0xe0ab85}, - {0x8131fa32, 0xe0ab86}, - {0x8131fa33, 0xe0ab87}, - {0x8131fa34, 0xe0ab88}, - {0x8131fa35, 0xe0ab89}, - {0x8131fa36, 0xe0ab8a}, - {0x8131fa37, 0xe0ab8b}, - {0x8131fa38, 0xe0ab8c}, - {0x8131fa39, 0xe0ab8d}, - {0x8131fb30, 0xe0ab8e}, - {0x8131fb31, 0xe0ab8f}, - {0x8131fb32, 0xe0ab90}, - {0x8131fb33, 0xe0ab91}, - {0x8131fb34, 0xe0ab92}, - {0x8131fb35, 0xe0ab93}, - {0x8131fb36, 0xe0ab94}, - {0x8131fb37, 0xe0ab95}, - {0x8131fb38, 0xe0ab96}, - {0x8131fb39, 0xe0ab97}, - {0x8131fc30, 0xe0ab98}, - {0x8131fc31, 0xe0ab99}, - {0x8131fc32, 0xe0ab9a}, - {0x8131fc33, 0xe0ab9b}, - {0x8131fc34, 0xe0ab9c}, - {0x8131fc35, 0xe0ab9d}, - {0x8131fc36, 0xe0ab9e}, - {0x8131fc37, 0xe0ab9f}, - {0x8131fc38, 0xe0aba0}, - {0x8131fc39, 0xe0aba1}, - {0x8131fd30, 0xe0aba2}, - {0x8131fd31, 0xe0aba3}, - {0x8131fd32, 0xe0aba4}, - {0x8131fd33, 0xe0aba5}, - {0x8131fd34, 0xe0aba6}, - {0x8131fd35, 0xe0aba7}, - {0x8131fd36, 0xe0aba8}, - {0x8131fd37, 0xe0aba9}, - {0x8131fd38, 0xe0abaa}, - {0x8131fd39, 0xe0abab}, - {0x8131fe30, 0xe0abac}, - {0x8131fe31, 0xe0abad}, - {0x8131fe32, 0xe0abae}, - {0x8131fe33, 0xe0abaf}, - {0x8131fe34, 0xe0abb0}, - {0x8131fe35, 0xe0abb1}, - {0x8131fe36, 0xe0abb2}, - {0x8131fe37, 0xe0abb3}, - {0x8131fe38, 0xe0abb4}, - {0x8131fe39, 0xe0abb5}, - {0x81328130, 0xe0abb6}, - {0x81328131, 0xe0abb7}, - {0x81328132, 0xe0abb8}, - {0x81328133, 0xe0abb9}, - {0x81328134, 0xe0abba}, - {0x81328135, 0xe0abbb}, - {0x81328136, 0xe0abbc}, - {0x81328137, 0xe0abbd}, - {0x81328138, 0xe0abbe}, - {0x81328139, 0xe0abbf}, - {0x81328230, 0xe0ac80}, - {0x81328231, 0xe0ac81}, - {0x81328232, 0xe0ac82}, - {0x81328233, 0xe0ac83}, - {0x81328234, 0xe0ac84}, - {0x81328235, 0xe0ac85}, - {0x81328236, 0xe0ac86}, - {0x81328237, 0xe0ac87}, - {0x81328238, 0xe0ac88}, - {0x81328239, 0xe0ac89}, - {0x81328330, 0xe0ac8a}, - {0x81328331, 0xe0ac8b}, - {0x81328332, 0xe0ac8c}, - {0x81328333, 0xe0ac8d}, - {0x81328334, 0xe0ac8e}, - {0x81328335, 0xe0ac8f}, - {0x81328336, 0xe0ac90}, - {0x81328337, 0xe0ac91}, - {0x81328338, 0xe0ac92}, - {0x81328339, 0xe0ac93}, - {0x81328430, 0xe0ac94}, - {0x81328431, 0xe0ac95}, - {0x81328432, 0xe0ac96}, - {0x81328433, 0xe0ac97}, - {0x81328434, 0xe0ac98}, - {0x81328435, 0xe0ac99}, - {0x81328436, 0xe0ac9a}, - {0x81328437, 0xe0ac9b}, - {0x81328438, 0xe0ac9c}, - {0x81328439, 0xe0ac9d}, - {0x81328530, 0xe0ac9e}, - {0x81328531, 0xe0ac9f}, - {0x81328532, 0xe0aca0}, - {0x81328533, 0xe0aca1}, - {0x81328534, 0xe0aca2}, - {0x81328535, 0xe0aca3}, - {0x81328536, 0xe0aca4}, - {0x81328537, 0xe0aca5}, - {0x81328538, 0xe0aca6}, - {0x81328539, 0xe0aca7}, - {0x81328630, 0xe0aca8}, - {0x81328631, 0xe0aca9}, - {0x81328632, 0xe0acaa}, - {0x81328633, 0xe0acab}, - {0x81328634, 0xe0acac}, - {0x81328635, 0xe0acad}, - {0x81328636, 0xe0acae}, - {0x81328637, 0xe0acaf}, - {0x81328638, 0xe0acb0}, - {0x81328639, 0xe0acb1}, - {0x81328730, 0xe0acb2}, - {0x81328731, 0xe0acb3}, - {0x81328732, 0xe0acb4}, - {0x81328733, 0xe0acb5}, - {0x81328734, 0xe0acb6}, - {0x81328735, 0xe0acb7}, - {0x81328736, 0xe0acb8}, - {0x81328737, 0xe0acb9}, - {0x81328738, 0xe0acba}, - {0x81328739, 0xe0acbb}, - {0x81328830, 0xe0acbc}, - {0x81328831, 0xe0acbd}, - {0x81328832, 0xe0acbe}, - {0x81328833, 0xe0acbf}, - {0x81328834, 0xe0ad80}, - {0x81328835, 0xe0ad81}, - {0x81328836, 0xe0ad82}, - {0x81328837, 0xe0ad83}, - {0x81328838, 0xe0ad84}, - {0x81328839, 0xe0ad85}, - {0x81328930, 0xe0ad86}, - {0x81328931, 0xe0ad87}, - {0x81328932, 0xe0ad88}, - {0x81328933, 0xe0ad89}, - {0x81328934, 0xe0ad8a}, - {0x81328935, 0xe0ad8b}, - {0x81328936, 0xe0ad8c}, - {0x81328937, 0xe0ad8d}, - {0x81328938, 0xe0ad8e}, - {0x81328939, 0xe0ad8f}, - {0x81328a30, 0xe0ad90}, - {0x81328a31, 0xe0ad91}, - {0x81328a32, 0xe0ad92}, - {0x81328a33, 0xe0ad93}, - {0x81328a34, 0xe0ad94}, - {0x81328a35, 0xe0ad95}, - {0x81328a36, 0xe0ad96}, - {0x81328a37, 0xe0ad97}, - {0x81328a38, 0xe0ad98}, - {0x81328a39, 0xe0ad99}, - {0x81328b30, 0xe0ad9a}, - {0x81328b31, 0xe0ad9b}, - {0x81328b32, 0xe0ad9c}, - {0x81328b33, 0xe0ad9d}, - {0x81328b34, 0xe0ad9e}, - {0x81328b35, 0xe0ad9f}, - {0x81328b36, 0xe0ada0}, - {0x81328b37, 0xe0ada1}, - {0x81328b38, 0xe0ada2}, - {0x81328b39, 0xe0ada3}, - {0x81328c30, 0xe0ada4}, - {0x81328c31, 0xe0ada5}, - {0x81328c32, 0xe0ada6}, - {0x81328c33, 0xe0ada7}, - {0x81328c34, 0xe0ada8}, - {0x81328c35, 0xe0ada9}, - {0x81328c36, 0xe0adaa}, - {0x81328c37, 0xe0adab}, - {0x81328c38, 0xe0adac}, - {0x81328c39, 0xe0adad}, - {0x81328d30, 0xe0adae}, - {0x81328d31, 0xe0adaf}, - {0x81328d32, 0xe0adb0}, - {0x81328d33, 0xe0adb1}, - {0x81328d34, 0xe0adb2}, - {0x81328d35, 0xe0adb3}, - {0x81328d36, 0xe0adb4}, - {0x81328d37, 0xe0adb5}, - {0x81328d38, 0xe0adb6}, - {0x81328d39, 0xe0adb7}, - {0x81328e30, 0xe0adb8}, - {0x81328e31, 0xe0adb9}, - {0x81328e32, 0xe0adba}, - {0x81328e33, 0xe0adbb}, - {0x81328e34, 0xe0adbc}, - {0x81328e35, 0xe0adbd}, - {0x81328e36, 0xe0adbe}, - {0x81328e37, 0xe0adbf}, - {0x81328e38, 0xe0ae80}, - {0x81328e39, 0xe0ae81}, - {0x81328f30, 0xe0ae82}, - {0x81328f31, 0xe0ae83}, - {0x81328f32, 0xe0ae84}, - {0x81328f33, 0xe0ae85}, - {0x81328f34, 0xe0ae86}, - {0x81328f35, 0xe0ae87}, - {0x81328f36, 0xe0ae88}, - {0x81328f37, 0xe0ae89}, - {0x81328f38, 0xe0ae8a}, - {0x81328f39, 0xe0ae8b}, - {0x81329030, 0xe0ae8c}, - {0x81329031, 0xe0ae8d}, - {0x81329032, 0xe0ae8e}, - {0x81329033, 0xe0ae8f}, - {0x81329034, 0xe0ae90}, - {0x81329035, 0xe0ae91}, - {0x81329036, 0xe0ae92}, - {0x81329037, 0xe0ae93}, - {0x81329038, 0xe0ae94}, - {0x81329039, 0xe0ae95}, - {0x81329130, 0xe0ae96}, - {0x81329131, 0xe0ae97}, - {0x81329132, 0xe0ae98}, - {0x81329133, 0xe0ae99}, - {0x81329134, 0xe0ae9a}, - {0x81329135, 0xe0ae9b}, - {0x81329136, 0xe0ae9c}, - {0x81329137, 0xe0ae9d}, - {0x81329138, 0xe0ae9e}, - {0x81329139, 0xe0ae9f}, - {0x81329230, 0xe0aea0}, - {0x81329231, 0xe0aea1}, - {0x81329232, 0xe0aea2}, - {0x81329233, 0xe0aea3}, - {0x81329234, 0xe0aea4}, - {0x81329235, 0xe0aea5}, - {0x81329236, 0xe0aea6}, - {0x81329237, 0xe0aea7}, - {0x81329238, 0xe0aea8}, - {0x81329239, 0xe0aea9}, - {0x81329330, 0xe0aeaa}, - {0x81329331, 0xe0aeab}, - {0x81329332, 0xe0aeac}, - {0x81329333, 0xe0aead}, - {0x81329334, 0xe0aeae}, - {0x81329335, 0xe0aeaf}, - {0x81329336, 0xe0aeb0}, - {0x81329337, 0xe0aeb1}, - {0x81329338, 0xe0aeb2}, - {0x81329339, 0xe0aeb3}, - {0x81329430, 0xe0aeb4}, - {0x81329431, 0xe0aeb5}, - {0x81329432, 0xe0aeb6}, - {0x81329433, 0xe0aeb7}, - {0x81329434, 0xe0aeb8}, - {0x81329435, 0xe0aeb9}, - {0x81329436, 0xe0aeba}, - {0x81329437, 0xe0aebb}, - {0x81329438, 0xe0aebc}, - {0x81329439, 0xe0aebd}, - {0x81329530, 0xe0aebe}, - {0x81329531, 0xe0aebf}, - {0x81329532, 0xe0af80}, - {0x81329533, 0xe0af81}, - {0x81329534, 0xe0af82}, - {0x81329535, 0xe0af83}, - {0x81329536, 0xe0af84}, - {0x81329537, 0xe0af85}, - {0x81329538, 0xe0af86}, - {0x81329539, 0xe0af87}, - {0x81329630, 0xe0af88}, - {0x81329631, 0xe0af89}, - {0x81329632, 0xe0af8a}, - {0x81329633, 0xe0af8b}, - {0x81329634, 0xe0af8c}, - {0x81329635, 0xe0af8d}, - {0x81329636, 0xe0af8e}, - {0x81329637, 0xe0af8f}, - {0x81329638, 0xe0af90}, - {0x81329639, 0xe0af91}, - {0x81329730, 0xe0af92}, - {0x81329731, 0xe0af93}, - {0x81329732, 0xe0af94}, - {0x81329733, 0xe0af95}, - {0x81329734, 0xe0af96}, - {0x81329735, 0xe0af97}, - {0x81329736, 0xe0af98}, - {0x81329737, 0xe0af99}, - {0x81329738, 0xe0af9a}, - {0x81329739, 0xe0af9b}, - {0x81329830, 0xe0af9c}, - {0x81329831, 0xe0af9d}, - {0x81329832, 0xe0af9e}, - {0x81329833, 0xe0af9f}, - {0x81329834, 0xe0afa0}, - {0x81329835, 0xe0afa1}, - {0x81329836, 0xe0afa2}, - {0x81329837, 0xe0afa3}, - {0x81329838, 0xe0afa4}, - {0x81329839, 0xe0afa5}, - {0x81329930, 0xe0afa6}, - {0x81329931, 0xe0afa7}, - {0x81329932, 0xe0afa8}, - {0x81329933, 0xe0afa9}, - {0x81329934, 0xe0afaa}, - {0x81329935, 0xe0afab}, - {0x81329936, 0xe0afac}, - {0x81329937, 0xe0afad}, - {0x81329938, 0xe0afae}, - {0x81329939, 0xe0afaf}, - {0x81329a30, 0xe0afb0}, - {0x81329a31, 0xe0afb1}, - {0x81329a32, 0xe0afb2}, - {0x81329a33, 0xe0afb3}, - {0x81329a34, 0xe0afb4}, - {0x81329a35, 0xe0afb5}, - {0x81329a36, 0xe0afb6}, - {0x81329a37, 0xe0afb7}, - {0x81329a38, 0xe0afb8}, - {0x81329a39, 0xe0afb9}, - {0x81329b30, 0xe0afba}, - {0x81329b31, 0xe0afbb}, - {0x81329b32, 0xe0afbc}, - {0x81329b33, 0xe0afbd}, - {0x81329b34, 0xe0afbe}, - {0x81329b35, 0xe0afbf}, - {0x81329b36, 0xe0b080}, - {0x81329b37, 0xe0b081}, - {0x81329b38, 0xe0b082}, - {0x81329b39, 0xe0b083}, - {0x81329c30, 0xe0b084}, - {0x81329c31, 0xe0b085}, - {0x81329c32, 0xe0b086}, - {0x81329c33, 0xe0b087}, - {0x81329c34, 0xe0b088}, - {0x81329c35, 0xe0b089}, - {0x81329c36, 0xe0b08a}, - {0x81329c37, 0xe0b08b}, - {0x81329c38, 0xe0b08c}, - {0x81329c39, 0xe0b08d}, - {0x81329d30, 0xe0b08e}, - {0x81329d31, 0xe0b08f}, - {0x81329d32, 0xe0b090}, - {0x81329d33, 0xe0b091}, - {0x81329d34, 0xe0b092}, - {0x81329d35, 0xe0b093}, - {0x81329d36, 0xe0b094}, - {0x81329d37, 0xe0b095}, - {0x81329d38, 0xe0b096}, - {0x81329d39, 0xe0b097}, - {0x81329e30, 0xe0b098}, - {0x81329e31, 0xe0b099}, - {0x81329e32, 0xe0b09a}, - {0x81329e33, 0xe0b09b}, - {0x81329e34, 0xe0b09c}, - {0x81329e35, 0xe0b09d}, - {0x81329e36, 0xe0b09e}, - {0x81329e37, 0xe0b09f}, - {0x81329e38, 0xe0b0a0}, - {0x81329e39, 0xe0b0a1}, - {0x81329f30, 0xe0b0a2}, - {0x81329f31, 0xe0b0a3}, - {0x81329f32, 0xe0b0a4}, - {0x81329f33, 0xe0b0a5}, - {0x81329f34, 0xe0b0a6}, - {0x81329f35, 0xe0b0a7}, - {0x81329f36, 0xe0b0a8}, - {0x81329f37, 0xe0b0a9}, - {0x81329f38, 0xe0b0aa}, - {0x81329f39, 0xe0b0ab}, - {0x8132a030, 0xe0b0ac}, - {0x8132a031, 0xe0b0ad}, - {0x8132a032, 0xe0b0ae}, - {0x8132a033, 0xe0b0af}, - {0x8132a034, 0xe0b0b0}, - {0x8132a035, 0xe0b0b1}, - {0x8132a036, 0xe0b0b2}, - {0x8132a037, 0xe0b0b3}, - {0x8132a038, 0xe0b0b4}, - {0x8132a039, 0xe0b0b5}, - {0x8132a130, 0xe0b0b6}, - {0x8132a131, 0xe0b0b7}, - {0x8132a132, 0xe0b0b8}, - {0x8132a133, 0xe0b0b9}, - {0x8132a134, 0xe0b0ba}, - {0x8132a135, 0xe0b0bb}, - {0x8132a136, 0xe0b0bc}, - {0x8132a137, 0xe0b0bd}, - {0x8132a138, 0xe0b0be}, - {0x8132a139, 0xe0b0bf}, - {0x8132a230, 0xe0b180}, - {0x8132a231, 0xe0b181}, - {0x8132a232, 0xe0b182}, - {0x8132a233, 0xe0b183}, - {0x8132a234, 0xe0b184}, - {0x8132a235, 0xe0b185}, - {0x8132a236, 0xe0b186}, - {0x8132a237, 0xe0b187}, - {0x8132a238, 0xe0b188}, - {0x8132a239, 0xe0b189}, - {0x8132a330, 0xe0b18a}, - {0x8132a331, 0xe0b18b}, - {0x8132a332, 0xe0b18c}, - {0x8132a333, 0xe0b18d}, - {0x8132a334, 0xe0b18e}, - {0x8132a335, 0xe0b18f}, - {0x8132a336, 0xe0b190}, - {0x8132a337, 0xe0b191}, - {0x8132a338, 0xe0b192}, - {0x8132a339, 0xe0b193}, - {0x8132a430, 0xe0b194}, - {0x8132a431, 0xe0b195}, - {0x8132a432, 0xe0b196}, - {0x8132a433, 0xe0b197}, - {0x8132a434, 0xe0b198}, - {0x8132a435, 0xe0b199}, - {0x8132a436, 0xe0b19a}, - {0x8132a437, 0xe0b19b}, - {0x8132a438, 0xe0b19c}, - {0x8132a439, 0xe0b19d}, - {0x8132a530, 0xe0b19e}, - {0x8132a531, 0xe0b19f}, - {0x8132a532, 0xe0b1a0}, - {0x8132a533, 0xe0b1a1}, - {0x8132a534, 0xe0b1a2}, - {0x8132a535, 0xe0b1a3}, - {0x8132a536, 0xe0b1a4}, - {0x8132a537, 0xe0b1a5}, - {0x8132a538, 0xe0b1a6}, - {0x8132a539, 0xe0b1a7}, - {0x8132a630, 0xe0b1a8}, - {0x8132a631, 0xe0b1a9}, - {0x8132a632, 0xe0b1aa}, - {0x8132a633, 0xe0b1ab}, - {0x8132a634, 0xe0b1ac}, - {0x8132a635, 0xe0b1ad}, - {0x8132a636, 0xe0b1ae}, - {0x8132a637, 0xe0b1af}, - {0x8132a638, 0xe0b1b0}, - {0x8132a639, 0xe0b1b1}, - {0x8132a730, 0xe0b1b2}, - {0x8132a731, 0xe0b1b3}, - {0x8132a732, 0xe0b1b4}, - {0x8132a733, 0xe0b1b5}, - {0x8132a734, 0xe0b1b6}, - {0x8132a735, 0xe0b1b7}, - {0x8132a736, 0xe0b1b8}, - {0x8132a737, 0xe0b1b9}, - {0x8132a738, 0xe0b1ba}, - {0x8132a739, 0xe0b1bb}, - {0x8132a830, 0xe0b1bc}, - {0x8132a831, 0xe0b1bd}, - {0x8132a832, 0xe0b1be}, - {0x8132a833, 0xe0b1bf}, - {0x8132a834, 0xe0b280}, - {0x8132a835, 0xe0b281}, - {0x8132a836, 0xe0b282}, - {0x8132a837, 0xe0b283}, - {0x8132a838, 0xe0b284}, - {0x8132a839, 0xe0b285}, - {0x8132a930, 0xe0b286}, - {0x8132a931, 0xe0b287}, - {0x8132a932, 0xe0b288}, - {0x8132a933, 0xe0b289}, - {0x8132a934, 0xe0b28a}, - {0x8132a935, 0xe0b28b}, - {0x8132a936, 0xe0b28c}, - {0x8132a937, 0xe0b28d}, - {0x8132a938, 0xe0b28e}, - {0x8132a939, 0xe0b28f}, - {0x8132aa30, 0xe0b290}, - {0x8132aa31, 0xe0b291}, - {0x8132aa32, 0xe0b292}, - {0x8132aa33, 0xe0b293}, - {0x8132aa34, 0xe0b294}, - {0x8132aa35, 0xe0b295}, - {0x8132aa36, 0xe0b296}, - {0x8132aa37, 0xe0b297}, - {0x8132aa38, 0xe0b298}, - {0x8132aa39, 0xe0b299}, - {0x8132ab30, 0xe0b29a}, - {0x8132ab31, 0xe0b29b}, - {0x8132ab32, 0xe0b29c}, - {0x8132ab33, 0xe0b29d}, - {0x8132ab34, 0xe0b29e}, - {0x8132ab35, 0xe0b29f}, - {0x8132ab36, 0xe0b2a0}, - {0x8132ab37, 0xe0b2a1}, - {0x8132ab38, 0xe0b2a2}, - {0x8132ab39, 0xe0b2a3}, - {0x8132ac30, 0xe0b2a4}, - {0x8132ac31, 0xe0b2a5}, - {0x8132ac32, 0xe0b2a6}, - {0x8132ac33, 0xe0b2a7}, - {0x8132ac34, 0xe0b2a8}, - {0x8132ac35, 0xe0b2a9}, - {0x8132ac36, 0xe0b2aa}, - {0x8132ac37, 0xe0b2ab}, - {0x8132ac38, 0xe0b2ac}, - {0x8132ac39, 0xe0b2ad}, - {0x8132ad30, 0xe0b2ae}, - {0x8132ad31, 0xe0b2af}, - {0x8132ad32, 0xe0b2b0}, - {0x8132ad33, 0xe0b2b1}, - {0x8132ad34, 0xe0b2b2}, - {0x8132ad35, 0xe0b2b3}, - {0x8132ad36, 0xe0b2b4}, - {0x8132ad37, 0xe0b2b5}, - {0x8132ad38, 0xe0b2b6}, - {0x8132ad39, 0xe0b2b7}, - {0x8132ae30, 0xe0b2b8}, - {0x8132ae31, 0xe0b2b9}, - {0x8132ae32, 0xe0b2ba}, - {0x8132ae33, 0xe0b2bb}, - {0x8132ae34, 0xe0b2bc}, - {0x8132ae35, 0xe0b2bd}, - {0x8132ae36, 0xe0b2be}, - {0x8132ae37, 0xe0b2bf}, - {0x8132ae38, 0xe0b380}, - {0x8132ae39, 0xe0b381}, - {0x8132af30, 0xe0b382}, - {0x8132af31, 0xe0b383}, - {0x8132af32, 0xe0b384}, - {0x8132af33, 0xe0b385}, - {0x8132af34, 0xe0b386}, - {0x8132af35, 0xe0b387}, - {0x8132af36, 0xe0b388}, - {0x8132af37, 0xe0b389}, - {0x8132af38, 0xe0b38a}, - {0x8132af39, 0xe0b38b}, - {0x8132b030, 0xe0b38c}, - {0x8132b031, 0xe0b38d}, - {0x8132b032, 0xe0b38e}, - {0x8132b033, 0xe0b38f}, - {0x8132b034, 0xe0b390}, - {0x8132b035, 0xe0b391}, - {0x8132b036, 0xe0b392}, - {0x8132b037, 0xe0b393}, - {0x8132b038, 0xe0b394}, - {0x8132b039, 0xe0b395}, - {0x8132b130, 0xe0b396}, - {0x8132b131, 0xe0b397}, - {0x8132b132, 0xe0b398}, - {0x8132b133, 0xe0b399}, - {0x8132b134, 0xe0b39a}, - {0x8132b135, 0xe0b39b}, - {0x8132b136, 0xe0b39c}, - {0x8132b137, 0xe0b39d}, - {0x8132b138, 0xe0b39e}, - {0x8132b139, 0xe0b39f}, - {0x8132b230, 0xe0b3a0}, - {0x8132b231, 0xe0b3a1}, - {0x8132b232, 0xe0b3a2}, - {0x8132b233, 0xe0b3a3}, - {0x8132b234, 0xe0b3a4}, - {0x8132b235, 0xe0b3a5}, - {0x8132b236, 0xe0b3a6}, - {0x8132b237, 0xe0b3a7}, - {0x8132b238, 0xe0b3a8}, - {0x8132b239, 0xe0b3a9}, - {0x8132b330, 0xe0b3aa}, - {0x8132b331, 0xe0b3ab}, - {0x8132b332, 0xe0b3ac}, - {0x8132b333, 0xe0b3ad}, - {0x8132b334, 0xe0b3ae}, - {0x8132b335, 0xe0b3af}, - {0x8132b336, 0xe0b3b0}, - {0x8132b337, 0xe0b3b1}, - {0x8132b338, 0xe0b3b2}, - {0x8132b339, 0xe0b3b3}, - {0x8132b430, 0xe0b3b4}, - {0x8132b431, 0xe0b3b5}, - {0x8132b432, 0xe0b3b6}, - {0x8132b433, 0xe0b3b7}, - {0x8132b434, 0xe0b3b8}, - {0x8132b435, 0xe0b3b9}, - {0x8132b436, 0xe0b3ba}, - {0x8132b437, 0xe0b3bb}, - {0x8132b438, 0xe0b3bc}, - {0x8132b439, 0xe0b3bd}, - {0x8132b530, 0xe0b3be}, - {0x8132b531, 0xe0b3bf}, - {0x8132b532, 0xe0b480}, - {0x8132b533, 0xe0b481}, - {0x8132b534, 0xe0b482}, - {0x8132b535, 0xe0b483}, - {0x8132b536, 0xe0b484}, - {0x8132b537, 0xe0b485}, - {0x8132b538, 0xe0b486}, - {0x8132b539, 0xe0b487}, - {0x8132b630, 0xe0b488}, - {0x8132b631, 0xe0b489}, - {0x8132b632, 0xe0b48a}, - {0x8132b633, 0xe0b48b}, - {0x8132b634, 0xe0b48c}, - {0x8132b635, 0xe0b48d}, - {0x8132b636, 0xe0b48e}, - {0x8132b637, 0xe0b48f}, - {0x8132b638, 0xe0b490}, - {0x8132b639, 0xe0b491}, - {0x8132b730, 0xe0b492}, - {0x8132b731, 0xe0b493}, - {0x8132b732, 0xe0b494}, - {0x8132b733, 0xe0b495}, - {0x8132b734, 0xe0b496}, - {0x8132b735, 0xe0b497}, - {0x8132b736, 0xe0b498}, - {0x8132b737, 0xe0b499}, - {0x8132b738, 0xe0b49a}, - {0x8132b739, 0xe0b49b}, - {0x8132b830, 0xe0b49c}, - {0x8132b831, 0xe0b49d}, - {0x8132b832, 0xe0b49e}, - {0x8132b833, 0xe0b49f}, - {0x8132b834, 0xe0b4a0}, - {0x8132b835, 0xe0b4a1}, - {0x8132b836, 0xe0b4a2}, - {0x8132b837, 0xe0b4a3}, - {0x8132b838, 0xe0b4a4}, - {0x8132b839, 0xe0b4a5}, - {0x8132b930, 0xe0b4a6}, - {0x8132b931, 0xe0b4a7}, - {0x8132b932, 0xe0b4a8}, - {0x8132b933, 0xe0b4a9}, - {0x8132b934, 0xe0b4aa}, - {0x8132b935, 0xe0b4ab}, - {0x8132b936, 0xe0b4ac}, - {0x8132b937, 0xe0b4ad}, - {0x8132b938, 0xe0b4ae}, - {0x8132b939, 0xe0b4af}, - {0x8132ba30, 0xe0b4b0}, - {0x8132ba31, 0xe0b4b1}, - {0x8132ba32, 0xe0b4b2}, - {0x8132ba33, 0xe0b4b3}, - {0x8132ba34, 0xe0b4b4}, - {0x8132ba35, 0xe0b4b5}, - {0x8132ba36, 0xe0b4b6}, - {0x8132ba37, 0xe0b4b7}, - {0x8132ba38, 0xe0b4b8}, - {0x8132ba39, 0xe0b4b9}, - {0x8132bb30, 0xe0b4ba}, - {0x8132bb31, 0xe0b4bb}, - {0x8132bb32, 0xe0b4bc}, - {0x8132bb33, 0xe0b4bd}, - {0x8132bb34, 0xe0b4be}, - {0x8132bb35, 0xe0b4bf}, - {0x8132bb36, 0xe0b580}, - {0x8132bb37, 0xe0b581}, - {0x8132bb38, 0xe0b582}, - {0x8132bb39, 0xe0b583}, - {0x8132bc30, 0xe0b584}, - {0x8132bc31, 0xe0b585}, - {0x8132bc32, 0xe0b586}, - {0x8132bc33, 0xe0b587}, - {0x8132bc34, 0xe0b588}, - {0x8132bc35, 0xe0b589}, - {0x8132bc36, 0xe0b58a}, - {0x8132bc37, 0xe0b58b}, - {0x8132bc38, 0xe0b58c}, - {0x8132bc39, 0xe0b58d}, - {0x8132bd30, 0xe0b58e}, - {0x8132bd31, 0xe0b58f}, - {0x8132bd32, 0xe0b590}, - {0x8132bd33, 0xe0b591}, - {0x8132bd34, 0xe0b592}, - {0x8132bd35, 0xe0b593}, - {0x8132bd36, 0xe0b594}, - {0x8132bd37, 0xe0b595}, - {0x8132bd38, 0xe0b596}, - {0x8132bd39, 0xe0b597}, - {0x8132be30, 0xe0b598}, - {0x8132be31, 0xe0b599}, - {0x8132be32, 0xe0b59a}, - {0x8132be33, 0xe0b59b}, - {0x8132be34, 0xe0b59c}, - {0x8132be35, 0xe0b59d}, - {0x8132be36, 0xe0b59e}, - {0x8132be37, 0xe0b59f}, - {0x8132be38, 0xe0b5a0}, - {0x8132be39, 0xe0b5a1}, - {0x8132bf30, 0xe0b5a2}, - {0x8132bf31, 0xe0b5a3}, - {0x8132bf32, 0xe0b5a4}, - {0x8132bf33, 0xe0b5a5}, - {0x8132bf34, 0xe0b5a6}, - {0x8132bf35, 0xe0b5a7}, - {0x8132bf36, 0xe0b5a8}, - {0x8132bf37, 0xe0b5a9}, - {0x8132bf38, 0xe0b5aa}, - {0x8132bf39, 0xe0b5ab}, - {0x8132c030, 0xe0b5ac}, - {0x8132c031, 0xe0b5ad}, - {0x8132c032, 0xe0b5ae}, - {0x8132c033, 0xe0b5af}, - {0x8132c034, 0xe0b5b0}, - {0x8132c035, 0xe0b5b1}, - {0x8132c036, 0xe0b5b2}, - {0x8132c037, 0xe0b5b3}, - {0x8132c038, 0xe0b5b4}, - {0x8132c039, 0xe0b5b5}, - {0x8132c130, 0xe0b5b6}, - {0x8132c131, 0xe0b5b7}, - {0x8132c132, 0xe0b5b8}, - {0x8132c133, 0xe0b5b9}, - {0x8132c134, 0xe0b5ba}, - {0x8132c135, 0xe0b5bb}, - {0x8132c136, 0xe0b5bc}, - {0x8132c137, 0xe0b5bd}, - {0x8132c138, 0xe0b5be}, - {0x8132c139, 0xe0b5bf}, - {0x8132c230, 0xe0b680}, - {0x8132c231, 0xe0b681}, - {0x8132c232, 0xe0b682}, - {0x8132c233, 0xe0b683}, - {0x8132c234, 0xe0b684}, - {0x8132c235, 0xe0b685}, - {0x8132c236, 0xe0b686}, - {0x8132c237, 0xe0b687}, - {0x8132c238, 0xe0b688}, - {0x8132c239, 0xe0b689}, - {0x8132c330, 0xe0b68a}, - {0x8132c331, 0xe0b68b}, - {0x8132c332, 0xe0b68c}, - {0x8132c333, 0xe0b68d}, - {0x8132c334, 0xe0b68e}, - {0x8132c335, 0xe0b68f}, - {0x8132c336, 0xe0b690}, - {0x8132c337, 0xe0b691}, - {0x8132c338, 0xe0b692}, - {0x8132c339, 0xe0b693}, - {0x8132c430, 0xe0b694}, - {0x8132c431, 0xe0b695}, - {0x8132c432, 0xe0b696}, - {0x8132c433, 0xe0b697}, - {0x8132c434, 0xe0b698}, - {0x8132c435, 0xe0b699}, - {0x8132c436, 0xe0b69a}, - {0x8132c437, 0xe0b69b}, - {0x8132c438, 0xe0b69c}, - {0x8132c439, 0xe0b69d}, - {0x8132c530, 0xe0b69e}, - {0x8132c531, 0xe0b69f}, - {0x8132c532, 0xe0b6a0}, - {0x8132c533, 0xe0b6a1}, - {0x8132c534, 0xe0b6a2}, - {0x8132c535, 0xe0b6a3}, - {0x8132c536, 0xe0b6a4}, - {0x8132c537, 0xe0b6a5}, - {0x8132c538, 0xe0b6a6}, - {0x8132c539, 0xe0b6a7}, - {0x8132c630, 0xe0b6a8}, - {0x8132c631, 0xe0b6a9}, - {0x8132c632, 0xe0b6aa}, - {0x8132c633, 0xe0b6ab}, - {0x8132c634, 0xe0b6ac}, - {0x8132c635, 0xe0b6ad}, - {0x8132c636, 0xe0b6ae}, - {0x8132c637, 0xe0b6af}, - {0x8132c638, 0xe0b6b0}, - {0x8132c639, 0xe0b6b1}, - {0x8132c730, 0xe0b6b2}, - {0x8132c731, 0xe0b6b3}, - {0x8132c732, 0xe0b6b4}, - {0x8132c733, 0xe0b6b5}, - {0x8132c734, 0xe0b6b6}, - {0x8132c735, 0xe0b6b7}, - {0x8132c736, 0xe0b6b8}, - {0x8132c737, 0xe0b6b9}, - {0x8132c738, 0xe0b6ba}, - {0x8132c739, 0xe0b6bb}, - {0x8132c830, 0xe0b6bc}, - {0x8132c831, 0xe0b6bd}, - {0x8132c832, 0xe0b6be}, - {0x8132c833, 0xe0b6bf}, - {0x8132c834, 0xe0b780}, - {0x8132c835, 0xe0b781}, - {0x8132c836, 0xe0b782}, - {0x8132c837, 0xe0b783}, - {0x8132c838, 0xe0b784}, - {0x8132c839, 0xe0b785}, - {0x8132c930, 0xe0b786}, - {0x8132c931, 0xe0b787}, - {0x8132c932, 0xe0b788}, - {0x8132c933, 0xe0b789}, - {0x8132c934, 0xe0b78a}, - {0x8132c935, 0xe0b78b}, - {0x8132c936, 0xe0b78c}, - {0x8132c937, 0xe0b78d}, - {0x8132c938, 0xe0b78e}, - {0x8132c939, 0xe0b78f}, - {0x8132ca30, 0xe0b790}, - {0x8132ca31, 0xe0b791}, - {0x8132ca32, 0xe0b792}, - {0x8132ca33, 0xe0b793}, - {0x8132ca34, 0xe0b794}, - {0x8132ca35, 0xe0b795}, - {0x8132ca36, 0xe0b796}, - {0x8132ca37, 0xe0b797}, - {0x8132ca38, 0xe0b798}, - {0x8132ca39, 0xe0b799}, - {0x8132cb30, 0xe0b79a}, - {0x8132cb31, 0xe0b79b}, - {0x8132cb32, 0xe0b79c}, - {0x8132cb33, 0xe0b79d}, - {0x8132cb34, 0xe0b79e}, - {0x8132cb35, 0xe0b79f}, - {0x8132cb36, 0xe0b7a0}, - {0x8132cb37, 0xe0b7a1}, - {0x8132cb38, 0xe0b7a2}, - {0x8132cb39, 0xe0b7a3}, - {0x8132cc30, 0xe0b7a4}, - {0x8132cc31, 0xe0b7a5}, - {0x8132cc32, 0xe0b7a6}, - {0x8132cc33, 0xe0b7a7}, - {0x8132cc34, 0xe0b7a8}, - {0x8132cc35, 0xe0b7a9}, - {0x8132cc36, 0xe0b7aa}, - {0x8132cc37, 0xe0b7ab}, - {0x8132cc38, 0xe0b7ac}, - {0x8132cc39, 0xe0b7ad}, - {0x8132cd30, 0xe0b7ae}, - {0x8132cd31, 0xe0b7af}, - {0x8132cd32, 0xe0b7b0}, - {0x8132cd33, 0xe0b7b1}, - {0x8132cd34, 0xe0b7b2}, - {0x8132cd35, 0xe0b7b3}, - {0x8132cd36, 0xe0b7b4}, - {0x8132cd37, 0xe0b7b5}, - {0x8132cd38, 0xe0b7b6}, - {0x8132cd39, 0xe0b7b7}, - {0x8132ce30, 0xe0b7b8}, - {0x8132ce31, 0xe0b7b9}, - {0x8132ce32, 0xe0b7ba}, - {0x8132ce33, 0xe0b7bb}, - {0x8132ce34, 0xe0b7bc}, - {0x8132ce35, 0xe0b7bd}, - {0x8132ce36, 0xe0b7be}, - {0x8132ce37, 0xe0b7bf}, - {0x8132ce38, 0xe0b880}, - {0x8132ce39, 0xe0b881}, - {0x8132cf30, 0xe0b882}, - {0x8132cf31, 0xe0b883}, - {0x8132cf32, 0xe0b884}, - {0x8132cf33, 0xe0b885}, - {0x8132cf34, 0xe0b886}, - {0x8132cf35, 0xe0b887}, - {0x8132cf36, 0xe0b888}, - {0x8132cf37, 0xe0b889}, - {0x8132cf38, 0xe0b88a}, - {0x8132cf39, 0xe0b88b}, - {0x8132d030, 0xe0b88c}, - {0x8132d031, 0xe0b88d}, - {0x8132d032, 0xe0b88e}, - {0x8132d033, 0xe0b88f}, - {0x8132d034, 0xe0b890}, - {0x8132d035, 0xe0b891}, - {0x8132d036, 0xe0b892}, - {0x8132d037, 0xe0b893}, - {0x8132d038, 0xe0b894}, - {0x8132d039, 0xe0b895}, - {0x8132d130, 0xe0b896}, - {0x8132d131, 0xe0b897}, - {0x8132d132, 0xe0b898}, - {0x8132d133, 0xe0b899}, - {0x8132d134, 0xe0b89a}, - {0x8132d135, 0xe0b89b}, - {0x8132d136, 0xe0b89c}, - {0x8132d137, 0xe0b89d}, - {0x8132d138, 0xe0b89e}, - {0x8132d139, 0xe0b89f}, - {0x8132d230, 0xe0b8a0}, - {0x8132d231, 0xe0b8a1}, - {0x8132d232, 0xe0b8a2}, - {0x8132d233, 0xe0b8a3}, - {0x8132d234, 0xe0b8a4}, - {0x8132d235, 0xe0b8a5}, - {0x8132d236, 0xe0b8a6}, - {0x8132d237, 0xe0b8a7}, - {0x8132d238, 0xe0b8a8}, - {0x8132d239, 0xe0b8a9}, - {0x8132d330, 0xe0b8aa}, - {0x8132d331, 0xe0b8ab}, - {0x8132d332, 0xe0b8ac}, - {0x8132d333, 0xe0b8ad}, - {0x8132d334, 0xe0b8ae}, - {0x8132d335, 0xe0b8af}, - {0x8132d336, 0xe0b8b0}, - {0x8132d337, 0xe0b8b1}, - {0x8132d338, 0xe0b8b2}, - {0x8132d339, 0xe0b8b3}, - {0x8132d430, 0xe0b8b4}, - {0x8132d431, 0xe0b8b5}, - {0x8132d432, 0xe0b8b6}, - {0x8132d433, 0xe0b8b7}, - {0x8132d434, 0xe0b8b8}, - {0x8132d435, 0xe0b8b9}, - {0x8132d436, 0xe0b8ba}, - {0x8132d437, 0xe0b8bb}, - {0x8132d438, 0xe0b8bc}, - {0x8132d439, 0xe0b8bd}, - {0x8132d530, 0xe0b8be}, - {0x8132d531, 0xe0b8bf}, - {0x8132d532, 0xe0b980}, - {0x8132d533, 0xe0b981}, - {0x8132d534, 0xe0b982}, - {0x8132d535, 0xe0b983}, - {0x8132d536, 0xe0b984}, - {0x8132d537, 0xe0b985}, - {0x8132d538, 0xe0b986}, - {0x8132d539, 0xe0b987}, - {0x8132d630, 0xe0b988}, - {0x8132d631, 0xe0b989}, - {0x8132d632, 0xe0b98a}, - {0x8132d633, 0xe0b98b}, - {0x8132d634, 0xe0b98c}, - {0x8132d635, 0xe0b98d}, - {0x8132d636, 0xe0b98e}, - {0x8132d637, 0xe0b98f}, - {0x8132d638, 0xe0b990}, - {0x8132d639, 0xe0b991}, - {0x8132d730, 0xe0b992}, - {0x8132d731, 0xe0b993}, - {0x8132d732, 0xe0b994}, - {0x8132d733, 0xe0b995}, - {0x8132d734, 0xe0b996}, - {0x8132d735, 0xe0b997}, - {0x8132d736, 0xe0b998}, - {0x8132d737, 0xe0b999}, - {0x8132d738, 0xe0b99a}, - {0x8132d739, 0xe0b99b}, - {0x8132d830, 0xe0b99c}, - {0x8132d831, 0xe0b99d}, - {0x8132d832, 0xe0b99e}, - {0x8132d833, 0xe0b99f}, - {0x8132d834, 0xe0b9a0}, - {0x8132d835, 0xe0b9a1}, - {0x8132d836, 0xe0b9a2}, - {0x8132d837, 0xe0b9a3}, - {0x8132d838, 0xe0b9a4}, - {0x8132d839, 0xe0b9a5}, - {0x8132d930, 0xe0b9a6}, - {0x8132d931, 0xe0b9a7}, - {0x8132d932, 0xe0b9a8}, - {0x8132d933, 0xe0b9a9}, - {0x8132d934, 0xe0b9aa}, - {0x8132d935, 0xe0b9ab}, - {0x8132d936, 0xe0b9ac}, - {0x8132d937, 0xe0b9ad}, - {0x8132d938, 0xe0b9ae}, - {0x8132d939, 0xe0b9af}, - {0x8132da30, 0xe0b9b0}, - {0x8132da31, 0xe0b9b1}, - {0x8132da32, 0xe0b9b2}, - {0x8132da33, 0xe0b9b3}, - {0x8132da34, 0xe0b9b4}, - {0x8132da35, 0xe0b9b5}, - {0x8132da36, 0xe0b9b6}, - {0x8132da37, 0xe0b9b7}, - {0x8132da38, 0xe0b9b8}, - {0x8132da39, 0xe0b9b9}, - {0x8132db30, 0xe0b9ba}, - {0x8132db31, 0xe0b9bb}, - {0x8132db32, 0xe0b9bc}, - {0x8132db33, 0xe0b9bd}, - {0x8132db34, 0xe0b9be}, - {0x8132db35, 0xe0b9bf}, - {0x8132db36, 0xe0ba80}, - {0x8132db37, 0xe0ba81}, - {0x8132db38, 0xe0ba82}, - {0x8132db39, 0xe0ba83}, - {0x8132dc30, 0xe0ba84}, - {0x8132dc31, 0xe0ba85}, - {0x8132dc32, 0xe0ba86}, - {0x8132dc33, 0xe0ba87}, - {0x8132dc34, 0xe0ba88}, - {0x8132dc35, 0xe0ba89}, - {0x8132dc36, 0xe0ba8a}, - {0x8132dc37, 0xe0ba8b}, - {0x8132dc38, 0xe0ba8c}, - {0x8132dc39, 0xe0ba8d}, - {0x8132dd30, 0xe0ba8e}, - {0x8132dd31, 0xe0ba8f}, - {0x8132dd32, 0xe0ba90}, - {0x8132dd33, 0xe0ba91}, - {0x8132dd34, 0xe0ba92}, - {0x8132dd35, 0xe0ba93}, - {0x8132dd36, 0xe0ba94}, - {0x8132dd37, 0xe0ba95}, - {0x8132dd38, 0xe0ba96}, - {0x8132dd39, 0xe0ba97}, - {0x8132de30, 0xe0ba98}, - {0x8132de31, 0xe0ba99}, - {0x8132de32, 0xe0ba9a}, - {0x8132de33, 0xe0ba9b}, - {0x8132de34, 0xe0ba9c}, - {0x8132de35, 0xe0ba9d}, - {0x8132de36, 0xe0ba9e}, - {0x8132de37, 0xe0ba9f}, - {0x8132de38, 0xe0baa0}, - {0x8132de39, 0xe0baa1}, - {0x8132df30, 0xe0baa2}, - {0x8132df31, 0xe0baa3}, - {0x8132df32, 0xe0baa4}, - {0x8132df33, 0xe0baa5}, - {0x8132df34, 0xe0baa6}, - {0x8132df35, 0xe0baa7}, - {0x8132df36, 0xe0baa8}, - {0x8132df37, 0xe0baa9}, - {0x8132df38, 0xe0baaa}, - {0x8132df39, 0xe0baab}, - {0x8132e030, 0xe0baac}, - {0x8132e031, 0xe0baad}, - {0x8132e032, 0xe0baae}, - {0x8132e033, 0xe0baaf}, - {0x8132e034, 0xe0bab0}, - {0x8132e035, 0xe0bab1}, - {0x8132e036, 0xe0bab2}, - {0x8132e037, 0xe0bab3}, - {0x8132e038, 0xe0bab4}, - {0x8132e039, 0xe0bab5}, - {0x8132e130, 0xe0bab6}, - {0x8132e131, 0xe0bab7}, - {0x8132e132, 0xe0bab8}, - {0x8132e133, 0xe0bab9}, - {0x8132e134, 0xe0baba}, - {0x8132e135, 0xe0babb}, - {0x8132e136, 0xe0babc}, - {0x8132e137, 0xe0babd}, - {0x8132e138, 0xe0babe}, - {0x8132e139, 0xe0babf}, - {0x8132e230, 0xe0bb80}, - {0x8132e231, 0xe0bb81}, - {0x8132e232, 0xe0bb82}, - {0x8132e233, 0xe0bb83}, - {0x8132e234, 0xe0bb84}, - {0x8132e235, 0xe0bb85}, - {0x8132e236, 0xe0bb86}, - {0x8132e237, 0xe0bb87}, - {0x8132e238, 0xe0bb88}, - {0x8132e239, 0xe0bb89}, - {0x8132e330, 0xe0bb8a}, - {0x8132e331, 0xe0bb8b}, - {0x8132e332, 0xe0bb8c}, - {0x8132e333, 0xe0bb8d}, - {0x8132e334, 0xe0bb8e}, - {0x8132e335, 0xe0bb8f}, - {0x8132e336, 0xe0bb90}, - {0x8132e337, 0xe0bb91}, - {0x8132e338, 0xe0bb92}, - {0x8132e339, 0xe0bb93}, - {0x8132e430, 0xe0bb94}, - {0x8132e431, 0xe0bb95}, - {0x8132e432, 0xe0bb96}, - {0x8132e433, 0xe0bb97}, - {0x8132e434, 0xe0bb98}, - {0x8132e435, 0xe0bb99}, - {0x8132e436, 0xe0bb9a}, - {0x8132e437, 0xe0bb9b}, - {0x8132e438, 0xe0bb9c}, - {0x8132e439, 0xe0bb9d}, - {0x8132e530, 0xe0bb9e}, - {0x8132e531, 0xe0bb9f}, - {0x8132e532, 0xe0bba0}, - {0x8132e533, 0xe0bba1}, - {0x8132e534, 0xe0bba2}, - {0x8132e535, 0xe0bba3}, - {0x8132e536, 0xe0bba4}, - {0x8132e537, 0xe0bba5}, - {0x8132e538, 0xe0bba6}, - {0x8132e539, 0xe0bba7}, - {0x8132e630, 0xe0bba8}, - {0x8132e631, 0xe0bba9}, - {0x8132e632, 0xe0bbaa}, - {0x8132e633, 0xe0bbab}, - {0x8132e634, 0xe0bbac}, - {0x8132e635, 0xe0bbad}, - {0x8132e636, 0xe0bbae}, - {0x8132e637, 0xe0bbaf}, - {0x8132e638, 0xe0bbb0}, - {0x8132e639, 0xe0bbb1}, - {0x8132e730, 0xe0bbb2}, - {0x8132e731, 0xe0bbb3}, - {0x8132e732, 0xe0bbb4}, - {0x8132e733, 0xe0bbb5}, - {0x8132e734, 0xe0bbb6}, - {0x8132e735, 0xe0bbb7}, - {0x8132e736, 0xe0bbb8}, - {0x8132e737, 0xe0bbb9}, - {0x8132e738, 0xe0bbba}, - {0x8132e739, 0xe0bbbb}, - {0x8132e830, 0xe0bbbc}, - {0x8132e831, 0xe0bbbd}, - {0x8132e832, 0xe0bbbe}, - {0x8132e833, 0xe0bbbf}, - {0x8132e834, 0xe0bc80}, - {0x8132e835, 0xe0bc81}, - {0x8132e836, 0xe0bc82}, - {0x8132e837, 0xe0bc83}, - {0x8132e838, 0xe0bc84}, - {0x8132e839, 0xe0bc85}, - {0x8132e930, 0xe0bc86}, - {0x8132e931, 0xe0bc87}, - {0x8132e932, 0xe0bc88}, - {0x8132e933, 0xe0bc89}, - {0x8132e934, 0xe0bc8a}, - {0x8132e935, 0xe0bc8b}, - {0x8132e936, 0xe0bc8c}, - {0x8132e937, 0xe0bc8d}, - {0x8132e938, 0xe0bc8e}, - {0x8132e939, 0xe0bc8f}, - {0x8132ea30, 0xe0bc90}, - {0x8132ea31, 0xe0bc91}, - {0x8132ea32, 0xe0bc92}, - {0x8132ea33, 0xe0bc93}, - {0x8132ea34, 0xe0bc94}, - {0x8132ea35, 0xe0bc95}, - {0x8132ea36, 0xe0bc96}, - {0x8132ea37, 0xe0bc97}, - {0x8132ea38, 0xe0bc98}, - {0x8132ea39, 0xe0bc99}, - {0x8132eb30, 0xe0bc9a}, - {0x8132eb31, 0xe0bc9b}, - {0x8132eb32, 0xe0bc9c}, - {0x8132eb33, 0xe0bc9d}, - {0x8132eb34, 0xe0bc9e}, - {0x8132eb35, 0xe0bc9f}, - {0x8132eb36, 0xe0bca0}, - {0x8132eb37, 0xe0bca1}, - {0x8132eb38, 0xe0bca2}, - {0x8132eb39, 0xe0bca3}, - {0x8132ec30, 0xe0bca4}, - {0x8132ec31, 0xe0bca5}, - {0x8132ec32, 0xe0bca6}, - {0x8132ec33, 0xe0bca7}, - {0x8132ec34, 0xe0bca8}, - {0x8132ec35, 0xe0bca9}, - {0x8132ec36, 0xe0bcaa}, - {0x8132ec37, 0xe0bcab}, - {0x8132ec38, 0xe0bcac}, - {0x8132ec39, 0xe0bcad}, - {0x8132ed30, 0xe0bcae}, - {0x8132ed31, 0xe0bcaf}, - {0x8132ed32, 0xe0bcb0}, - {0x8132ed33, 0xe0bcb1}, - {0x8132ed34, 0xe0bcb2}, - {0x8132ed35, 0xe0bcb3}, - {0x8132ed36, 0xe0bcb4}, - {0x8132ed37, 0xe0bcb5}, - {0x8132ed38, 0xe0bcb6}, - {0x8132ed39, 0xe0bcb7}, - {0x8132ee30, 0xe0bcb8}, - {0x8132ee31, 0xe0bcb9}, - {0x8132ee32, 0xe0bcba}, - {0x8132ee33, 0xe0bcbb}, - {0x8132ee34, 0xe0bcbc}, - {0x8132ee35, 0xe0bcbd}, - {0x8132ee36, 0xe0bcbe}, - {0x8132ee37, 0xe0bcbf}, - {0x8132ee38, 0xe0bd80}, - {0x8132ee39, 0xe0bd81}, - {0x8132ef30, 0xe0bd82}, - {0x8132ef31, 0xe0bd83}, - {0x8132ef32, 0xe0bd84}, - {0x8132ef33, 0xe0bd85}, - {0x8132ef34, 0xe0bd86}, - {0x8132ef35, 0xe0bd87}, - {0x8132ef36, 0xe0bd88}, - {0x8132ef37, 0xe0bd89}, - {0x8132ef38, 0xe0bd8a}, - {0x8132ef39, 0xe0bd8b}, - {0x8132f030, 0xe0bd8c}, - {0x8132f031, 0xe0bd8d}, - {0x8132f032, 0xe0bd8e}, - {0x8132f033, 0xe0bd8f}, - {0x8132f034, 0xe0bd90}, - {0x8132f035, 0xe0bd91}, - {0x8132f036, 0xe0bd92}, - {0x8132f037, 0xe0bd93}, - {0x8132f038, 0xe0bd94}, - {0x8132f039, 0xe0bd95}, - {0x8132f130, 0xe0bd96}, - {0x8132f131, 0xe0bd97}, - {0x8132f132, 0xe0bd98}, - {0x8132f133, 0xe0bd99}, - {0x8132f134, 0xe0bd9a}, - {0x8132f135, 0xe0bd9b}, - {0x8132f136, 0xe0bd9c}, - {0x8132f137, 0xe0bd9d}, - {0x8132f138, 0xe0bd9e}, - {0x8132f139, 0xe0bd9f}, - {0x8132f230, 0xe0bda0}, - {0x8132f231, 0xe0bda1}, - {0x8132f232, 0xe0bda2}, - {0x8132f233, 0xe0bda3}, - {0x8132f234, 0xe0bda4}, - {0x8132f235, 0xe0bda5}, - {0x8132f236, 0xe0bda6}, - {0x8132f237, 0xe0bda7}, - {0x8132f238, 0xe0bda8}, - {0x8132f239, 0xe0bda9}, - {0x8132f330, 0xe0bdaa}, - {0x8132f331, 0xe0bdab}, - {0x8132f332, 0xe0bdac}, - {0x8132f333, 0xe0bdad}, - {0x8132f334, 0xe0bdae}, - {0x8132f335, 0xe0bdaf}, - {0x8132f336, 0xe0bdb0}, - {0x8132f337, 0xe0bdb1}, - {0x8132f338, 0xe0bdb2}, - {0x8132f339, 0xe0bdb3}, - {0x8132f430, 0xe0bdb4}, - {0x8132f431, 0xe0bdb5}, - {0x8132f432, 0xe0bdb6}, - {0x8132f433, 0xe0bdb7}, - {0x8132f434, 0xe0bdb8}, - {0x8132f435, 0xe0bdb9}, - {0x8132f436, 0xe0bdba}, - {0x8132f437, 0xe0bdbb}, - {0x8132f438, 0xe0bdbc}, - {0x8132f439, 0xe0bdbd}, - {0x8132f530, 0xe0bdbe}, - {0x8132f531, 0xe0bdbf}, - {0x8132f532, 0xe0be80}, - {0x8132f533, 0xe0be81}, - {0x8132f534, 0xe0be82}, - {0x8132f535, 0xe0be83}, - {0x8132f536, 0xe0be84}, - {0x8132f537, 0xe0be85}, - {0x8132f538, 0xe0be86}, - {0x8132f539, 0xe0be87}, - {0x8132f630, 0xe0be88}, - {0x8132f631, 0xe0be89}, - {0x8132f632, 0xe0be8a}, - {0x8132f633, 0xe0be8b}, - {0x8132f634, 0xe0be8c}, - {0x8132f635, 0xe0be8d}, - {0x8132f636, 0xe0be8e}, - {0x8132f637, 0xe0be8f}, - {0x8132f638, 0xe0be90}, - {0x8132f639, 0xe0be91}, - {0x8132f730, 0xe0be92}, - {0x8132f731, 0xe0be93}, - {0x8132f732, 0xe0be94}, - {0x8132f733, 0xe0be95}, - {0x8132f734, 0xe0be96}, - {0x8132f735, 0xe0be97}, - {0x8132f736, 0xe0be98}, - {0x8132f737, 0xe0be99}, - {0x8132f738, 0xe0be9a}, - {0x8132f739, 0xe0be9b}, - {0x8132f830, 0xe0be9c}, - {0x8132f831, 0xe0be9d}, - {0x8132f832, 0xe0be9e}, - {0x8132f833, 0xe0be9f}, - {0x8132f834, 0xe0bea0}, - {0x8132f835, 0xe0bea1}, - {0x8132f836, 0xe0bea2}, - {0x8132f837, 0xe0bea3}, - {0x8132f838, 0xe0bea4}, - {0x8132f839, 0xe0bea5}, - {0x8132f930, 0xe0bea6}, - {0x8132f931, 0xe0bea7}, - {0x8132f932, 0xe0bea8}, - {0x8132f933, 0xe0bea9}, - {0x8132f934, 0xe0beaa}, - {0x8132f935, 0xe0beab}, - {0x8132f936, 0xe0beac}, - {0x8132f937, 0xe0bead}, - {0x8132f938, 0xe0beae}, - {0x8132f939, 0xe0beaf}, - {0x8132fa30, 0xe0beb0}, - {0x8132fa31, 0xe0beb1}, - {0x8132fa32, 0xe0beb2}, - {0x8132fa33, 0xe0beb3}, - {0x8132fa34, 0xe0beb4}, - {0x8132fa35, 0xe0beb5}, - {0x8132fa36, 0xe0beb6}, - {0x8132fa37, 0xe0beb7}, - {0x8132fa38, 0xe0beb8}, - {0x8132fa39, 0xe0beb9}, - {0x8132fb30, 0xe0beba}, - {0x8132fb31, 0xe0bebb}, - {0x8132fb32, 0xe0bebc}, - {0x8132fb33, 0xe0bebd}, - {0x8132fb34, 0xe0bebe}, - {0x8132fb35, 0xe0bebf}, - {0x8132fb36, 0xe0bf80}, - {0x8132fb37, 0xe0bf81}, - {0x8132fb38, 0xe0bf82}, - {0x8132fb39, 0xe0bf83}, - {0x8132fc30, 0xe0bf84}, - {0x8132fc31, 0xe0bf85}, - {0x8132fc32, 0xe0bf86}, - {0x8132fc33, 0xe0bf87}, - {0x8132fc34, 0xe0bf88}, - {0x8132fc35, 0xe0bf89}, - {0x8132fc36, 0xe0bf8a}, - {0x8132fc37, 0xe0bf8b}, - {0x8132fc38, 0xe0bf8c}, - {0x8132fc39, 0xe0bf8d}, - {0x8132fd30, 0xe0bf8e}, - {0x8132fd31, 0xe0bf8f}, - {0x8132fd32, 0xe0bf90}, - {0x8132fd33, 0xe0bf91}, - {0x8132fd34, 0xe0bf92}, - {0x8132fd35, 0xe0bf93}, - {0x8132fd36, 0xe0bf94}, - {0x8132fd37, 0xe0bf95}, - {0x8132fd38, 0xe0bf96}, - {0x8132fd39, 0xe0bf97}, - {0x8132fe30, 0xe0bf98}, - {0x8132fe31, 0xe0bf99}, - {0x8132fe32, 0xe0bf9a}, - {0x8132fe33, 0xe0bf9b}, - {0x8132fe34, 0xe0bf9c}, - {0x8132fe35, 0xe0bf9d}, - {0x8132fe36, 0xe0bf9e}, - {0x8132fe37, 0xe0bf9f}, - {0x8132fe38, 0xe0bfa0}, - {0x8132fe39, 0xe0bfa1}, - {0x81338130, 0xe0bfa2}, - {0x81338131, 0xe0bfa3}, - {0x81338132, 0xe0bfa4}, - {0x81338133, 0xe0bfa5}, - {0x81338134, 0xe0bfa6}, - {0x81338135, 0xe0bfa7}, - {0x81338136, 0xe0bfa8}, - {0x81338137, 0xe0bfa9}, - {0x81338138, 0xe0bfaa}, - {0x81338139, 0xe0bfab}, - {0x81338230, 0xe0bfac}, - {0x81338231, 0xe0bfad}, - {0x81338232, 0xe0bfae}, - {0x81338233, 0xe0bfaf}, - {0x81338234, 0xe0bfb0}, - {0x81338235, 0xe0bfb1}, - {0x81338236, 0xe0bfb2}, - {0x81338237, 0xe0bfb3}, - {0x81338238, 0xe0bfb4}, - {0x81338239, 0xe0bfb5}, - {0x81338330, 0xe0bfb6}, - {0x81338331, 0xe0bfb7}, - {0x81338332, 0xe0bfb8}, - {0x81338333, 0xe0bfb9}, - {0x81338334, 0xe0bfba}, - {0x81338335, 0xe0bfbb}, - {0x81338336, 0xe0bfbc}, - {0x81338337, 0xe0bfbd}, - {0x81338338, 0xe0bfbe}, - {0x81338339, 0xe0bfbf}, - {0x81338430, 0xe18080}, - {0x81338431, 0xe18081}, - {0x81338432, 0xe18082}, - {0x81338433, 0xe18083}, - {0x81338434, 0xe18084}, - {0x81338435, 0xe18085}, - {0x81338436, 0xe18086}, - {0x81338437, 0xe18087}, - {0x81338438, 0xe18088}, - {0x81338439, 0xe18089}, - {0x81338530, 0xe1808a}, - {0x81338531, 0xe1808b}, - {0x81338532, 0xe1808c}, - {0x81338533, 0xe1808d}, - {0x81338534, 0xe1808e}, - {0x81338535, 0xe1808f}, - {0x81338536, 0xe18090}, - {0x81338537, 0xe18091}, - {0x81338538, 0xe18092}, - {0x81338539, 0xe18093}, - {0x81338630, 0xe18094}, - {0x81338631, 0xe18095}, - {0x81338632, 0xe18096}, - {0x81338633, 0xe18097}, - {0x81338634, 0xe18098}, - {0x81338635, 0xe18099}, - {0x81338636, 0xe1809a}, - {0x81338637, 0xe1809b}, - {0x81338638, 0xe1809c}, - {0x81338639, 0xe1809d}, - {0x81338730, 0xe1809e}, - {0x81338731, 0xe1809f}, - {0x81338732, 0xe180a0}, - {0x81338733, 0xe180a1}, - {0x81338734, 0xe180a2}, - {0x81338735, 0xe180a3}, - {0x81338736, 0xe180a4}, - {0x81338737, 0xe180a5}, - {0x81338738, 0xe180a6}, - {0x81338739, 0xe180a7}, - {0x81338830, 0xe180a8}, - {0x81338831, 0xe180a9}, - {0x81338832, 0xe180aa}, - {0x81338833, 0xe180ab}, - {0x81338834, 0xe180ac}, - {0x81338835, 0xe180ad}, - {0x81338836, 0xe180ae}, - {0x81338837, 0xe180af}, - {0x81338838, 0xe180b0}, - {0x81338839, 0xe180b1}, - {0x81338930, 0xe180b2}, - {0x81338931, 0xe180b3}, - {0x81338932, 0xe180b4}, - {0x81338933, 0xe180b5}, - {0x81338934, 0xe180b6}, - {0x81338935, 0xe180b7}, - {0x81338936, 0xe180b8}, - {0x81338937, 0xe180b9}, - {0x81338938, 0xe180ba}, - {0x81338939, 0xe180bb}, - {0x81338a30, 0xe180bc}, - {0x81338a31, 0xe180bd}, - {0x81338a32, 0xe180be}, - {0x81338a33, 0xe180bf}, - {0x81338a34, 0xe18180}, - {0x81338a35, 0xe18181}, - {0x81338a36, 0xe18182}, - {0x81338a37, 0xe18183}, - {0x81338a38, 0xe18184}, - {0x81338a39, 0xe18185}, - {0x81338b30, 0xe18186}, - {0x81338b31, 0xe18187}, - {0x81338b32, 0xe18188}, - {0x81338b33, 0xe18189}, - {0x81338b34, 0xe1818a}, - {0x81338b35, 0xe1818b}, - {0x81338b36, 0xe1818c}, - {0x81338b37, 0xe1818d}, - {0x81338b38, 0xe1818e}, - {0x81338b39, 0xe1818f}, - {0x81338c30, 0xe18190}, - {0x81338c31, 0xe18191}, - {0x81338c32, 0xe18192}, - {0x81338c33, 0xe18193}, - {0x81338c34, 0xe18194}, - {0x81338c35, 0xe18195}, - {0x81338c36, 0xe18196}, - {0x81338c37, 0xe18197}, - {0x81338c38, 0xe18198}, - {0x81338c39, 0xe18199}, - {0x81338d30, 0xe1819a}, - {0x81338d31, 0xe1819b}, - {0x81338d32, 0xe1819c}, - {0x81338d33, 0xe1819d}, - {0x81338d34, 0xe1819e}, - {0x81338d35, 0xe1819f}, - {0x81338d36, 0xe181a0}, - {0x81338d37, 0xe181a1}, - {0x81338d38, 0xe181a2}, - {0x81338d39, 0xe181a3}, - {0x81338e30, 0xe181a4}, - {0x81338e31, 0xe181a5}, - {0x81338e32, 0xe181a6}, - {0x81338e33, 0xe181a7}, - {0x81338e34, 0xe181a8}, - {0x81338e35, 0xe181a9}, - {0x81338e36, 0xe181aa}, - {0x81338e37, 0xe181ab}, - {0x81338e38, 0xe181ac}, - {0x81338e39, 0xe181ad}, - {0x81338f30, 0xe181ae}, - {0x81338f31, 0xe181af}, - {0x81338f32, 0xe181b0}, - {0x81338f33, 0xe181b1}, - {0x81338f34, 0xe181b2}, - {0x81338f35, 0xe181b3}, - {0x81338f36, 0xe181b4}, - {0x81338f37, 0xe181b5}, - {0x81338f38, 0xe181b6}, - {0x81338f39, 0xe181b7}, - {0x81339030, 0xe181b8}, - {0x81339031, 0xe181b9}, - {0x81339032, 0xe181ba}, - {0x81339033, 0xe181bb}, - {0x81339034, 0xe181bc}, - {0x81339035, 0xe181bd}, - {0x81339036, 0xe181be}, - {0x81339037, 0xe181bf}, - {0x81339038, 0xe18280}, - {0x81339039, 0xe18281}, - {0x81339130, 0xe18282}, - {0x81339131, 0xe18283}, - {0x81339132, 0xe18284}, - {0x81339133, 0xe18285}, - {0x81339134, 0xe18286}, - {0x81339135, 0xe18287}, - {0x81339136, 0xe18288}, - {0x81339137, 0xe18289}, - {0x81339138, 0xe1828a}, - {0x81339139, 0xe1828b}, - {0x81339230, 0xe1828c}, - {0x81339231, 0xe1828d}, - {0x81339232, 0xe1828e}, - {0x81339233, 0xe1828f}, - {0x81339234, 0xe18290}, - {0x81339235, 0xe18291}, - {0x81339236, 0xe18292}, - {0x81339237, 0xe18293}, - {0x81339238, 0xe18294}, - {0x81339239, 0xe18295}, - {0x81339330, 0xe18296}, - {0x81339331, 0xe18297}, - {0x81339332, 0xe18298}, - {0x81339333, 0xe18299}, - {0x81339334, 0xe1829a}, - {0x81339335, 0xe1829b}, - {0x81339336, 0xe1829c}, - {0x81339337, 0xe1829d}, - {0x81339338, 0xe1829e}, - {0x81339339, 0xe1829f}, - {0x81339430, 0xe182a0}, - {0x81339431, 0xe182a1}, - {0x81339432, 0xe182a2}, - {0x81339433, 0xe182a3}, - {0x81339434, 0xe182a4}, - {0x81339435, 0xe182a5}, - {0x81339436, 0xe182a6}, - {0x81339437, 0xe182a7}, - {0x81339438, 0xe182a8}, - {0x81339439, 0xe182a9}, - {0x81339530, 0xe182aa}, - {0x81339531, 0xe182ab}, - {0x81339532, 0xe182ac}, - {0x81339533, 0xe182ad}, - {0x81339534, 0xe182ae}, - {0x81339535, 0xe182af}, - {0x81339536, 0xe182b0}, - {0x81339537, 0xe182b1}, - {0x81339538, 0xe182b2}, - {0x81339539, 0xe182b3}, - {0x81339630, 0xe182b4}, - {0x81339631, 0xe182b5}, - {0x81339632, 0xe182b6}, - {0x81339633, 0xe182b7}, - {0x81339634, 0xe182b8}, - {0x81339635, 0xe182b9}, - {0x81339636, 0xe182ba}, - {0x81339637, 0xe182bb}, - {0x81339638, 0xe182bc}, - {0x81339639, 0xe182bd}, - {0x81339730, 0xe182be}, - {0x81339731, 0xe182bf}, - {0x81339732, 0xe18380}, - {0x81339733, 0xe18381}, - {0x81339734, 0xe18382}, - {0x81339735, 0xe18383}, - {0x81339736, 0xe18384}, - {0x81339737, 0xe18385}, - {0x81339738, 0xe18386}, - {0x81339739, 0xe18387}, - {0x81339830, 0xe18388}, - {0x81339831, 0xe18389}, - {0x81339832, 0xe1838a}, - {0x81339833, 0xe1838b}, - {0x81339834, 0xe1838c}, - {0x81339835, 0xe1838d}, - {0x81339836, 0xe1838e}, - {0x81339837, 0xe1838f}, - {0x81339838, 0xe18390}, - {0x81339839, 0xe18391}, - {0x81339930, 0xe18392}, - {0x81339931, 0xe18393}, - {0x81339932, 0xe18394}, - {0x81339933, 0xe18395}, - {0x81339934, 0xe18396}, - {0x81339935, 0xe18397}, - {0x81339936, 0xe18398}, - {0x81339937, 0xe18399}, - {0x81339938, 0xe1839a}, - {0x81339939, 0xe1839b}, - {0x81339a30, 0xe1839c}, - {0x81339a31, 0xe1839d}, - {0x81339a32, 0xe1839e}, - {0x81339a33, 0xe1839f}, - {0x81339a34, 0xe183a0}, - {0x81339a35, 0xe183a1}, - {0x81339a36, 0xe183a2}, - {0x81339a37, 0xe183a3}, - {0x81339a38, 0xe183a4}, - {0x81339a39, 0xe183a5}, - {0x81339b30, 0xe183a6}, - {0x81339b31, 0xe183a7}, - {0x81339b32, 0xe183a8}, - {0x81339b33, 0xe183a9}, - {0x81339b34, 0xe183aa}, - {0x81339b35, 0xe183ab}, - {0x81339b36, 0xe183ac}, - {0x81339b37, 0xe183ad}, - {0x81339b38, 0xe183ae}, - {0x81339b39, 0xe183af}, - {0x81339c30, 0xe183b0}, - {0x81339c31, 0xe183b1}, - {0x81339c32, 0xe183b2}, - {0x81339c33, 0xe183b3}, - {0x81339c34, 0xe183b4}, - {0x81339c35, 0xe183b5}, - {0x81339c36, 0xe183b6}, - {0x81339c37, 0xe183b7}, - {0x81339c38, 0xe183b8}, - {0x81339c39, 0xe183b9}, - {0x81339d30, 0xe183ba}, - {0x81339d31, 0xe183bb}, - {0x81339d32, 0xe183bc}, - {0x81339d33, 0xe183bd}, - {0x81339d34, 0xe183be}, - {0x81339d35, 0xe183bf}, - {0x81339d36, 0xe18480}, - {0x81339d37, 0xe18481}, - {0x81339d38, 0xe18482}, - {0x81339d39, 0xe18483}, - {0x81339e30, 0xe18484}, - {0x81339e31, 0xe18485}, - {0x81339e32, 0xe18486}, - {0x81339e33, 0xe18487}, - {0x81339e34, 0xe18488}, - {0x81339e35, 0xe18489}, - {0x81339e36, 0xe1848a}, - {0x81339e37, 0xe1848b}, - {0x81339e38, 0xe1848c}, - {0x81339e39, 0xe1848d}, - {0x81339f30, 0xe1848e}, - {0x81339f31, 0xe1848f}, - {0x81339f32, 0xe18490}, - {0x81339f33, 0xe18491}, - {0x81339f34, 0xe18492}, - {0x81339f35, 0xe18493}, - {0x81339f36, 0xe18494}, - {0x81339f37, 0xe18495}, - {0x81339f38, 0xe18496}, - {0x81339f39, 0xe18497}, - {0x8133a030, 0xe18498}, - {0x8133a031, 0xe18499}, - {0x8133a032, 0xe1849a}, - {0x8133a033, 0xe1849b}, - {0x8133a034, 0xe1849c}, - {0x8133a035, 0xe1849d}, - {0x8133a036, 0xe1849e}, - {0x8133a037, 0xe1849f}, - {0x8133a038, 0xe184a0}, - {0x8133a039, 0xe184a1}, - {0x8133a130, 0xe184a2}, - {0x8133a131, 0xe184a3}, - {0x8133a132, 0xe184a4}, - {0x8133a133, 0xe184a5}, - {0x8133a134, 0xe184a6}, - {0x8133a135, 0xe184a7}, - {0x8133a136, 0xe184a8}, - {0x8133a137, 0xe184a9}, - {0x8133a138, 0xe184aa}, - {0x8133a139, 0xe184ab}, - {0x8133a230, 0xe184ac}, - {0x8133a231, 0xe184ad}, - {0x8133a232, 0xe184ae}, - {0x8133a233, 0xe184af}, - {0x8133a234, 0xe184b0}, - {0x8133a235, 0xe184b1}, - {0x8133a236, 0xe184b2}, - {0x8133a237, 0xe184b3}, - {0x8133a238, 0xe184b4}, - {0x8133a239, 0xe184b5}, - {0x8133a330, 0xe184b6}, - {0x8133a331, 0xe184b7}, - {0x8133a332, 0xe184b8}, - {0x8133a333, 0xe184b9}, - {0x8133a334, 0xe184ba}, - {0x8133a335, 0xe184bb}, - {0x8133a336, 0xe184bc}, - {0x8133a337, 0xe184bd}, - {0x8133a338, 0xe184be}, - {0x8133a339, 0xe184bf}, - {0x8133a430, 0xe18580}, - {0x8133a431, 0xe18581}, - {0x8133a432, 0xe18582}, - {0x8133a433, 0xe18583}, - {0x8133a434, 0xe18584}, - {0x8133a435, 0xe18585}, - {0x8133a436, 0xe18586}, - {0x8133a437, 0xe18587}, - {0x8133a438, 0xe18588}, - {0x8133a439, 0xe18589}, - {0x8133a530, 0xe1858a}, - {0x8133a531, 0xe1858b}, - {0x8133a532, 0xe1858c}, - {0x8133a533, 0xe1858d}, - {0x8133a534, 0xe1858e}, - {0x8133a535, 0xe1858f}, - {0x8133a536, 0xe18590}, - {0x8133a537, 0xe18591}, - {0x8133a538, 0xe18592}, - {0x8133a539, 0xe18593}, - {0x8133a630, 0xe18594}, - {0x8133a631, 0xe18595}, - {0x8133a632, 0xe18596}, - {0x8133a633, 0xe18597}, - {0x8133a634, 0xe18598}, - {0x8133a635, 0xe18599}, - {0x8133a636, 0xe1859a}, - {0x8133a637, 0xe1859b}, - {0x8133a638, 0xe1859c}, - {0x8133a639, 0xe1859d}, - {0x8133a730, 0xe1859e}, - {0x8133a731, 0xe1859f}, - {0x8133a732, 0xe185a0}, - {0x8133a733, 0xe185a1}, - {0x8133a734, 0xe185a2}, - {0x8133a735, 0xe185a3}, - {0x8133a736, 0xe185a4}, - {0x8133a737, 0xe185a5}, - {0x8133a738, 0xe185a6}, - {0x8133a739, 0xe185a7}, - {0x8133a830, 0xe185a8}, - {0x8133a831, 0xe185a9}, - {0x8133a832, 0xe185aa}, - {0x8133a833, 0xe185ab}, - {0x8133a834, 0xe185ac}, - {0x8133a835, 0xe185ad}, - {0x8133a836, 0xe185ae}, - {0x8133a837, 0xe185af}, - {0x8133a838, 0xe185b0}, - {0x8133a839, 0xe185b1}, - {0x8133a930, 0xe185b2}, - {0x8133a931, 0xe185b3}, - {0x8133a932, 0xe185b4}, - {0x8133a933, 0xe185b5}, - {0x8133a934, 0xe185b6}, - {0x8133a935, 0xe185b7}, - {0x8133a936, 0xe185b8}, - {0x8133a937, 0xe185b9}, - {0x8133a938, 0xe185ba}, - {0x8133a939, 0xe185bb}, - {0x8133aa30, 0xe185bc}, - {0x8133aa31, 0xe185bd}, - {0x8133aa32, 0xe185be}, - {0x8133aa33, 0xe185bf}, - {0x8133aa34, 0xe18680}, - {0x8133aa35, 0xe18681}, - {0x8133aa36, 0xe18682}, - {0x8133aa37, 0xe18683}, - {0x8133aa38, 0xe18684}, - {0x8133aa39, 0xe18685}, - {0x8133ab30, 0xe18686}, - {0x8133ab31, 0xe18687}, - {0x8133ab32, 0xe18688}, - {0x8133ab33, 0xe18689}, - {0x8133ab34, 0xe1868a}, - {0x8133ab35, 0xe1868b}, - {0x8133ab36, 0xe1868c}, - {0x8133ab37, 0xe1868d}, - {0x8133ab38, 0xe1868e}, - {0x8133ab39, 0xe1868f}, - {0x8133ac30, 0xe18690}, - {0x8133ac31, 0xe18691}, - {0x8133ac32, 0xe18692}, - {0x8133ac33, 0xe18693}, - {0x8133ac34, 0xe18694}, - {0x8133ac35, 0xe18695}, - {0x8133ac36, 0xe18696}, - {0x8133ac37, 0xe18697}, - {0x8133ac38, 0xe18698}, - {0x8133ac39, 0xe18699}, - {0x8133ad30, 0xe1869a}, - {0x8133ad31, 0xe1869b}, - {0x8133ad32, 0xe1869c}, - {0x8133ad33, 0xe1869d}, - {0x8133ad34, 0xe1869e}, - {0x8133ad35, 0xe1869f}, - {0x8133ad36, 0xe186a0}, - {0x8133ad37, 0xe186a1}, - {0x8133ad38, 0xe186a2}, - {0x8133ad39, 0xe186a3}, - {0x8133ae30, 0xe186a4}, - {0x8133ae31, 0xe186a5}, - {0x8133ae32, 0xe186a6}, - {0x8133ae33, 0xe186a7}, - {0x8133ae34, 0xe186a8}, - {0x8133ae35, 0xe186a9}, - {0x8133ae36, 0xe186aa}, - {0x8133ae37, 0xe186ab}, - {0x8133ae38, 0xe186ac}, - {0x8133ae39, 0xe186ad}, - {0x8133af30, 0xe186ae}, - {0x8133af31, 0xe186af}, - {0x8133af32, 0xe186b0}, - {0x8133af33, 0xe186b1}, - {0x8133af34, 0xe186b2}, - {0x8133af35, 0xe186b3}, - {0x8133af36, 0xe186b4}, - {0x8133af37, 0xe186b5}, - {0x8133af38, 0xe186b6}, - {0x8133af39, 0xe186b7}, - {0x8133b030, 0xe186b8}, - {0x8133b031, 0xe186b9}, - {0x8133b032, 0xe186ba}, - {0x8133b033, 0xe186bb}, - {0x8133b034, 0xe186bc}, - {0x8133b035, 0xe186bd}, - {0x8133b036, 0xe186be}, - {0x8133b037, 0xe186bf}, - {0x8133b038, 0xe18780}, - {0x8133b039, 0xe18781}, - {0x8133b130, 0xe18782}, - {0x8133b131, 0xe18783}, - {0x8133b132, 0xe18784}, - {0x8133b133, 0xe18785}, - {0x8133b134, 0xe18786}, - {0x8133b135, 0xe18787}, - {0x8133b136, 0xe18788}, - {0x8133b137, 0xe18789}, - {0x8133b138, 0xe1878a}, - {0x8133b139, 0xe1878b}, - {0x8133b230, 0xe1878c}, - {0x8133b231, 0xe1878d}, - {0x8133b232, 0xe1878e}, - {0x8133b233, 0xe1878f}, - {0x8133b234, 0xe18790}, - {0x8133b235, 0xe18791}, - {0x8133b236, 0xe18792}, - {0x8133b237, 0xe18793}, - {0x8133b238, 0xe18794}, - {0x8133b239, 0xe18795}, - {0x8133b330, 0xe18796}, - {0x8133b331, 0xe18797}, - {0x8133b332, 0xe18798}, - {0x8133b333, 0xe18799}, - {0x8133b334, 0xe1879a}, - {0x8133b335, 0xe1879b}, - {0x8133b336, 0xe1879c}, - {0x8133b337, 0xe1879d}, - {0x8133b338, 0xe1879e}, - {0x8133b339, 0xe1879f}, - {0x8133b430, 0xe187a0}, - {0x8133b431, 0xe187a1}, - {0x8133b432, 0xe187a2}, - {0x8133b433, 0xe187a3}, - {0x8133b434, 0xe187a4}, - {0x8133b435, 0xe187a5}, - {0x8133b436, 0xe187a6}, - {0x8133b437, 0xe187a7}, - {0x8133b438, 0xe187a8}, - {0x8133b439, 0xe187a9}, - {0x8133b530, 0xe187aa}, - {0x8133b531, 0xe187ab}, - {0x8133b532, 0xe187ac}, - {0x8133b533, 0xe187ad}, - {0x8133b534, 0xe187ae}, - {0x8133b535, 0xe187af}, - {0x8133b536, 0xe187b0}, - {0x8133b537, 0xe187b1}, - {0x8133b538, 0xe187b2}, - {0x8133b539, 0xe187b3}, - {0x8133b630, 0xe187b4}, - {0x8133b631, 0xe187b5}, - {0x8133b632, 0xe187b6}, - {0x8133b633, 0xe187b7}, - {0x8133b634, 0xe187b8}, - {0x8133b635, 0xe187b9}, - {0x8133b636, 0xe187ba}, - {0x8133b637, 0xe187bb}, - {0x8133b638, 0xe187bc}, - {0x8133b639, 0xe187bd}, - {0x8133b730, 0xe187be}, - {0x8133b731, 0xe187bf}, - {0x8133b732, 0xe18880}, - {0x8133b733, 0xe18881}, - {0x8133b734, 0xe18882}, - {0x8133b735, 0xe18883}, - {0x8133b736, 0xe18884}, - {0x8133b737, 0xe18885}, - {0x8133b738, 0xe18886}, - {0x8133b739, 0xe18887}, - {0x8133b830, 0xe18888}, - {0x8133b831, 0xe18889}, - {0x8133b832, 0xe1888a}, - {0x8133b833, 0xe1888b}, - {0x8133b834, 0xe1888c}, - {0x8133b835, 0xe1888d}, - {0x8133b836, 0xe1888e}, - {0x8133b837, 0xe1888f}, - {0x8133b838, 0xe18890}, - {0x8133b839, 0xe18891}, - {0x8133b930, 0xe18892}, - {0x8133b931, 0xe18893}, - {0x8133b932, 0xe18894}, - {0x8133b933, 0xe18895}, - {0x8133b934, 0xe18896}, - {0x8133b935, 0xe18897}, - {0x8133b936, 0xe18898}, - {0x8133b937, 0xe18899}, - {0x8133b938, 0xe1889a}, - {0x8133b939, 0xe1889b}, - {0x8133ba30, 0xe1889c}, - {0x8133ba31, 0xe1889d}, - {0x8133ba32, 0xe1889e}, - {0x8133ba33, 0xe1889f}, - {0x8133ba34, 0xe188a0}, - {0x8133ba35, 0xe188a1}, - {0x8133ba36, 0xe188a2}, - {0x8133ba37, 0xe188a3}, - {0x8133ba38, 0xe188a4}, - {0x8133ba39, 0xe188a5}, - {0x8133bb30, 0xe188a6}, - {0x8133bb31, 0xe188a7}, - {0x8133bb32, 0xe188a8}, - {0x8133bb33, 0xe188a9}, - {0x8133bb34, 0xe188aa}, - {0x8133bb35, 0xe188ab}, - {0x8133bb36, 0xe188ac}, - {0x8133bb37, 0xe188ad}, - {0x8133bb38, 0xe188ae}, - {0x8133bb39, 0xe188af}, - {0x8133bc30, 0xe188b0}, - {0x8133bc31, 0xe188b1}, - {0x8133bc32, 0xe188b2}, - {0x8133bc33, 0xe188b3}, - {0x8133bc34, 0xe188b4}, - {0x8133bc35, 0xe188b5}, - {0x8133bc36, 0xe188b6}, - {0x8133bc37, 0xe188b7}, - {0x8133bc38, 0xe188b8}, - {0x8133bc39, 0xe188b9}, - {0x8133bd30, 0xe188ba}, - {0x8133bd31, 0xe188bb}, - {0x8133bd32, 0xe188bc}, - {0x8133bd33, 0xe188bd}, - {0x8133bd34, 0xe188be}, - {0x8133bd35, 0xe188bf}, - {0x8133bd36, 0xe18980}, - {0x8133bd37, 0xe18981}, - {0x8133bd38, 0xe18982}, - {0x8133bd39, 0xe18983}, - {0x8133be30, 0xe18984}, - {0x8133be31, 0xe18985}, - {0x8133be32, 0xe18986}, - {0x8133be33, 0xe18987}, - {0x8133be34, 0xe18988}, - {0x8133be35, 0xe18989}, - {0x8133be36, 0xe1898a}, - {0x8133be37, 0xe1898b}, - {0x8133be38, 0xe1898c}, - {0x8133be39, 0xe1898d}, - {0x8133bf30, 0xe1898e}, - {0x8133bf31, 0xe1898f}, - {0x8133bf32, 0xe18990}, - {0x8133bf33, 0xe18991}, - {0x8133bf34, 0xe18992}, - {0x8133bf35, 0xe18993}, - {0x8133bf36, 0xe18994}, - {0x8133bf37, 0xe18995}, - {0x8133bf38, 0xe18996}, - {0x8133bf39, 0xe18997}, - {0x8133c030, 0xe18998}, - {0x8133c031, 0xe18999}, - {0x8133c032, 0xe1899a}, - {0x8133c033, 0xe1899b}, - {0x8133c034, 0xe1899c}, - {0x8133c035, 0xe1899d}, - {0x8133c036, 0xe1899e}, - {0x8133c037, 0xe1899f}, - {0x8133c038, 0xe189a0}, - {0x8133c039, 0xe189a1}, - {0x8133c130, 0xe189a2}, - {0x8133c131, 0xe189a3}, - {0x8133c132, 0xe189a4}, - {0x8133c133, 0xe189a5}, - {0x8133c134, 0xe189a6}, - {0x8133c135, 0xe189a7}, - {0x8133c136, 0xe189a8}, - {0x8133c137, 0xe189a9}, - {0x8133c138, 0xe189aa}, - {0x8133c139, 0xe189ab}, - {0x8133c230, 0xe189ac}, - {0x8133c231, 0xe189ad}, - {0x8133c232, 0xe189ae}, - {0x8133c233, 0xe189af}, - {0x8133c234, 0xe189b0}, - {0x8133c235, 0xe189b1}, - {0x8133c236, 0xe189b2}, - {0x8133c237, 0xe189b3}, - {0x8133c238, 0xe189b4}, - {0x8133c239, 0xe189b5}, - {0x8133c330, 0xe189b6}, - {0x8133c331, 0xe189b7}, - {0x8133c332, 0xe189b8}, - {0x8133c333, 0xe189b9}, - {0x8133c334, 0xe189ba}, - {0x8133c335, 0xe189bb}, - {0x8133c336, 0xe189bc}, - {0x8133c337, 0xe189bd}, - {0x8133c338, 0xe189be}, - {0x8133c339, 0xe189bf}, - {0x8133c430, 0xe18a80}, - {0x8133c431, 0xe18a81}, - {0x8133c432, 0xe18a82}, - {0x8133c433, 0xe18a83}, - {0x8133c434, 0xe18a84}, - {0x8133c435, 0xe18a85}, - {0x8133c436, 0xe18a86}, - {0x8133c437, 0xe18a87}, - {0x8133c438, 0xe18a88}, - {0x8133c439, 0xe18a89}, - {0x8133c530, 0xe18a8a}, - {0x8133c531, 0xe18a8b}, - {0x8133c532, 0xe18a8c}, - {0x8133c533, 0xe18a8d}, - {0x8133c534, 0xe18a8e}, - {0x8133c535, 0xe18a8f}, - {0x8133c536, 0xe18a90}, - {0x8133c537, 0xe18a91}, - {0x8133c538, 0xe18a92}, - {0x8133c539, 0xe18a93}, - {0x8133c630, 0xe18a94}, - {0x8133c631, 0xe18a95}, - {0x8133c632, 0xe18a96}, - {0x8133c633, 0xe18a97}, - {0x8133c634, 0xe18a98}, - {0x8133c635, 0xe18a99}, - {0x8133c636, 0xe18a9a}, - {0x8133c637, 0xe18a9b}, - {0x8133c638, 0xe18a9c}, - {0x8133c639, 0xe18a9d}, - {0x8133c730, 0xe18a9e}, - {0x8133c731, 0xe18a9f}, - {0x8133c732, 0xe18aa0}, - {0x8133c733, 0xe18aa1}, - {0x8133c734, 0xe18aa2}, - {0x8133c735, 0xe18aa3}, - {0x8133c736, 0xe18aa4}, - {0x8133c737, 0xe18aa5}, - {0x8133c738, 0xe18aa6}, - {0x8133c739, 0xe18aa7}, - {0x8133c830, 0xe18aa8}, - {0x8133c831, 0xe18aa9}, - {0x8133c832, 0xe18aaa}, - {0x8133c833, 0xe18aab}, - {0x8133c834, 0xe18aac}, - {0x8133c835, 0xe18aad}, - {0x8133c836, 0xe18aae}, - {0x8133c837, 0xe18aaf}, - {0x8133c838, 0xe18ab0}, - {0x8133c839, 0xe18ab1}, - {0x8133c930, 0xe18ab2}, - {0x8133c931, 0xe18ab3}, - {0x8133c932, 0xe18ab4}, - {0x8133c933, 0xe18ab5}, - {0x8133c934, 0xe18ab6}, - {0x8133c935, 0xe18ab7}, - {0x8133c936, 0xe18ab8}, - {0x8133c937, 0xe18ab9}, - {0x8133c938, 0xe18aba}, - {0x8133c939, 0xe18abb}, - {0x8133ca30, 0xe18abc}, - {0x8133ca31, 0xe18abd}, - {0x8133ca32, 0xe18abe}, - {0x8133ca33, 0xe18abf}, - {0x8133ca34, 0xe18b80}, - {0x8133ca35, 0xe18b81}, - {0x8133ca36, 0xe18b82}, - {0x8133ca37, 0xe18b83}, - {0x8133ca38, 0xe18b84}, - {0x8133ca39, 0xe18b85}, - {0x8133cb30, 0xe18b86}, - {0x8133cb31, 0xe18b87}, - {0x8133cb32, 0xe18b88}, - {0x8133cb33, 0xe18b89}, - {0x8133cb34, 0xe18b8a}, - {0x8133cb35, 0xe18b8b}, - {0x8133cb36, 0xe18b8c}, - {0x8133cb37, 0xe18b8d}, - {0x8133cb38, 0xe18b8e}, - {0x8133cb39, 0xe18b8f}, - {0x8133cc30, 0xe18b90}, - {0x8133cc31, 0xe18b91}, - {0x8133cc32, 0xe18b92}, - {0x8133cc33, 0xe18b93}, - {0x8133cc34, 0xe18b94}, - {0x8133cc35, 0xe18b95}, - {0x8133cc36, 0xe18b96}, - {0x8133cc37, 0xe18b97}, - {0x8133cc38, 0xe18b98}, - {0x8133cc39, 0xe18b99}, - {0x8133cd30, 0xe18b9a}, - {0x8133cd31, 0xe18b9b}, - {0x8133cd32, 0xe18b9c}, - {0x8133cd33, 0xe18b9d}, - {0x8133cd34, 0xe18b9e}, - {0x8133cd35, 0xe18b9f}, - {0x8133cd36, 0xe18ba0}, - {0x8133cd37, 0xe18ba1}, - {0x8133cd38, 0xe18ba2}, - {0x8133cd39, 0xe18ba3}, - {0x8133ce30, 0xe18ba4}, - {0x8133ce31, 0xe18ba5}, - {0x8133ce32, 0xe18ba6}, - {0x8133ce33, 0xe18ba7}, - {0x8133ce34, 0xe18ba8}, - {0x8133ce35, 0xe18ba9}, - {0x8133ce36, 0xe18baa}, - {0x8133ce37, 0xe18bab}, - {0x8133ce38, 0xe18bac}, - {0x8133ce39, 0xe18bad}, - {0x8133cf30, 0xe18bae}, - {0x8133cf31, 0xe18baf}, - {0x8133cf32, 0xe18bb0}, - {0x8133cf33, 0xe18bb1}, - {0x8133cf34, 0xe18bb2}, - {0x8133cf35, 0xe18bb3}, - {0x8133cf36, 0xe18bb4}, - {0x8133cf37, 0xe18bb5}, - {0x8133cf38, 0xe18bb6}, - {0x8133cf39, 0xe18bb7}, - {0x8133d030, 0xe18bb8}, - {0x8133d031, 0xe18bb9}, - {0x8133d032, 0xe18bba}, - {0x8133d033, 0xe18bbb}, - {0x8133d034, 0xe18bbc}, - {0x8133d035, 0xe18bbd}, - {0x8133d036, 0xe18bbe}, - {0x8133d037, 0xe18bbf}, - {0x8133d038, 0xe18c80}, - {0x8133d039, 0xe18c81}, - {0x8133d130, 0xe18c82}, - {0x8133d131, 0xe18c83}, - {0x8133d132, 0xe18c84}, - {0x8133d133, 0xe18c85}, - {0x8133d134, 0xe18c86}, - {0x8133d135, 0xe18c87}, - {0x8133d136, 0xe18c88}, - {0x8133d137, 0xe18c89}, - {0x8133d138, 0xe18c8a}, - {0x8133d139, 0xe18c8b}, - {0x8133d230, 0xe18c8c}, - {0x8133d231, 0xe18c8d}, - {0x8133d232, 0xe18c8e}, - {0x8133d233, 0xe18c8f}, - {0x8133d234, 0xe18c90}, - {0x8133d235, 0xe18c91}, - {0x8133d236, 0xe18c92}, - {0x8133d237, 0xe18c93}, - {0x8133d238, 0xe18c94}, - {0x8133d239, 0xe18c95}, - {0x8133d330, 0xe18c96}, - {0x8133d331, 0xe18c97}, - {0x8133d332, 0xe18c98}, - {0x8133d333, 0xe18c99}, - {0x8133d334, 0xe18c9a}, - {0x8133d335, 0xe18c9b}, - {0x8133d336, 0xe18c9c}, - {0x8133d337, 0xe18c9d}, - {0x8133d338, 0xe18c9e}, - {0x8133d339, 0xe18c9f}, - {0x8133d430, 0xe18ca0}, - {0x8133d431, 0xe18ca1}, - {0x8133d432, 0xe18ca2}, - {0x8133d433, 0xe18ca3}, - {0x8133d434, 0xe18ca4}, - {0x8133d435, 0xe18ca5}, - {0x8133d436, 0xe18ca6}, - {0x8133d437, 0xe18ca7}, - {0x8133d438, 0xe18ca8}, - {0x8133d439, 0xe18ca9}, - {0x8133d530, 0xe18caa}, - {0x8133d531, 0xe18cab}, - {0x8133d532, 0xe18cac}, - {0x8133d533, 0xe18cad}, - {0x8133d534, 0xe18cae}, - {0x8133d535, 0xe18caf}, - {0x8133d536, 0xe18cb0}, - {0x8133d537, 0xe18cb1}, - {0x8133d538, 0xe18cb2}, - {0x8133d539, 0xe18cb3}, - {0x8133d630, 0xe18cb4}, - {0x8133d631, 0xe18cb5}, - {0x8133d632, 0xe18cb6}, - {0x8133d633, 0xe18cb7}, - {0x8133d634, 0xe18cb8}, - {0x8133d635, 0xe18cb9}, - {0x8133d636, 0xe18cba}, - {0x8133d637, 0xe18cbb}, - {0x8133d638, 0xe18cbc}, - {0x8133d639, 0xe18cbd}, - {0x8133d730, 0xe18cbe}, - {0x8133d731, 0xe18cbf}, - {0x8133d732, 0xe18d80}, - {0x8133d733, 0xe18d81}, - {0x8133d734, 0xe18d82}, - {0x8133d735, 0xe18d83}, - {0x8133d736, 0xe18d84}, - {0x8133d737, 0xe18d85}, - {0x8133d738, 0xe18d86}, - {0x8133d739, 0xe18d87}, - {0x8133d830, 0xe18d88}, - {0x8133d831, 0xe18d89}, - {0x8133d832, 0xe18d8a}, - {0x8133d833, 0xe18d8b}, - {0x8133d834, 0xe18d8c}, - {0x8133d835, 0xe18d8d}, - {0x8133d836, 0xe18d8e}, - {0x8133d837, 0xe18d8f}, - {0x8133d838, 0xe18d90}, - {0x8133d839, 0xe18d91}, - {0x8133d930, 0xe18d92}, - {0x8133d931, 0xe18d93}, - {0x8133d932, 0xe18d94}, - {0x8133d933, 0xe18d95}, - {0x8133d934, 0xe18d96}, - {0x8133d935, 0xe18d97}, - {0x8133d936, 0xe18d98}, - {0x8133d937, 0xe18d99}, - {0x8133d938, 0xe18d9a}, - {0x8133d939, 0xe18d9b}, - {0x8133da30, 0xe18d9c}, - {0x8133da31, 0xe18d9d}, - {0x8133da32, 0xe18d9e}, - {0x8133da33, 0xe18d9f}, - {0x8133da34, 0xe18da0}, - {0x8133da35, 0xe18da1}, - {0x8133da36, 0xe18da2}, - {0x8133da37, 0xe18da3}, - {0x8133da38, 0xe18da4}, - {0x8133da39, 0xe18da5}, - {0x8133db30, 0xe18da6}, - {0x8133db31, 0xe18da7}, - {0x8133db32, 0xe18da8}, - {0x8133db33, 0xe18da9}, - {0x8133db34, 0xe18daa}, - {0x8133db35, 0xe18dab}, - {0x8133db36, 0xe18dac}, - {0x8133db37, 0xe18dad}, - {0x8133db38, 0xe18dae}, - {0x8133db39, 0xe18daf}, - {0x8133dc30, 0xe18db0}, - {0x8133dc31, 0xe18db1}, - {0x8133dc32, 0xe18db2}, - {0x8133dc33, 0xe18db3}, - {0x8133dc34, 0xe18db4}, - {0x8133dc35, 0xe18db5}, - {0x8133dc36, 0xe18db6}, - {0x8133dc37, 0xe18db7}, - {0x8133dc38, 0xe18db8}, - {0x8133dc39, 0xe18db9}, - {0x8133dd30, 0xe18dba}, - {0x8133dd31, 0xe18dbb}, - {0x8133dd32, 0xe18dbc}, - {0x8133dd33, 0xe18dbd}, - {0x8133dd34, 0xe18dbe}, - {0x8133dd35, 0xe18dbf}, - {0x8133dd36, 0xe18e80}, - {0x8133dd37, 0xe18e81}, - {0x8133dd38, 0xe18e82}, - {0x8133dd39, 0xe18e83}, - {0x8133de30, 0xe18e84}, - {0x8133de31, 0xe18e85}, - {0x8133de32, 0xe18e86}, - {0x8133de33, 0xe18e87}, - {0x8133de34, 0xe18e88}, - {0x8133de35, 0xe18e89}, - {0x8133de36, 0xe18e8a}, - {0x8133de37, 0xe18e8b}, - {0x8133de38, 0xe18e8c}, - {0x8133de39, 0xe18e8d}, - {0x8133df30, 0xe18e8e}, - {0x8133df31, 0xe18e8f}, - {0x8133df32, 0xe18e90}, - {0x8133df33, 0xe18e91}, - {0x8133df34, 0xe18e92}, - {0x8133df35, 0xe18e93}, - {0x8133df36, 0xe18e94}, - {0x8133df37, 0xe18e95}, - {0x8133df38, 0xe18e96}, - {0x8133df39, 0xe18e97}, - {0x8133e030, 0xe18e98}, - {0x8133e031, 0xe18e99}, - {0x8133e032, 0xe18e9a}, - {0x8133e033, 0xe18e9b}, - {0x8133e034, 0xe18e9c}, - {0x8133e035, 0xe18e9d}, - {0x8133e036, 0xe18e9e}, - {0x8133e037, 0xe18e9f}, - {0x8133e038, 0xe18ea0}, - {0x8133e039, 0xe18ea1}, - {0x8133e130, 0xe18ea2}, - {0x8133e131, 0xe18ea3}, - {0x8133e132, 0xe18ea4}, - {0x8133e133, 0xe18ea5}, - {0x8133e134, 0xe18ea6}, - {0x8133e135, 0xe18ea7}, - {0x8133e136, 0xe18ea8}, - {0x8133e137, 0xe18ea9}, - {0x8133e138, 0xe18eaa}, - {0x8133e139, 0xe18eab}, - {0x8133e230, 0xe18eac}, - {0x8133e231, 0xe18ead}, - {0x8133e232, 0xe18eae}, - {0x8133e233, 0xe18eaf}, - {0x8133e234, 0xe18eb0}, - {0x8133e235, 0xe18eb1}, - {0x8133e236, 0xe18eb2}, - {0x8133e237, 0xe18eb3}, - {0x8133e238, 0xe18eb4}, - {0x8133e239, 0xe18eb5}, - {0x8133e330, 0xe18eb6}, - {0x8133e331, 0xe18eb7}, - {0x8133e332, 0xe18eb8}, - {0x8133e333, 0xe18eb9}, - {0x8133e334, 0xe18eba}, - {0x8133e335, 0xe18ebb}, - {0x8133e336, 0xe18ebc}, - {0x8133e337, 0xe18ebd}, - {0x8133e338, 0xe18ebe}, - {0x8133e339, 0xe18ebf}, - {0x8133e430, 0xe18f80}, - {0x8133e431, 0xe18f81}, - {0x8133e432, 0xe18f82}, - {0x8133e433, 0xe18f83}, - {0x8133e434, 0xe18f84}, - {0x8133e435, 0xe18f85}, - {0x8133e436, 0xe18f86}, - {0x8133e437, 0xe18f87}, - {0x8133e438, 0xe18f88}, - {0x8133e439, 0xe18f89}, - {0x8133e530, 0xe18f8a}, - {0x8133e531, 0xe18f8b}, - {0x8133e532, 0xe18f8c}, - {0x8133e533, 0xe18f8d}, - {0x8133e534, 0xe18f8e}, - {0x8133e535, 0xe18f8f}, - {0x8133e536, 0xe18f90}, - {0x8133e537, 0xe18f91}, - {0x8133e538, 0xe18f92}, - {0x8133e539, 0xe18f93}, - {0x8133e630, 0xe18f94}, - {0x8133e631, 0xe18f95}, - {0x8133e632, 0xe18f96}, - {0x8133e633, 0xe18f97}, - {0x8133e634, 0xe18f98}, - {0x8133e635, 0xe18f99}, - {0x8133e636, 0xe18f9a}, - {0x8133e637, 0xe18f9b}, - {0x8133e638, 0xe18f9c}, - {0x8133e639, 0xe18f9d}, - {0x8133e730, 0xe18f9e}, - {0x8133e731, 0xe18f9f}, - {0x8133e732, 0xe18fa0}, - {0x8133e733, 0xe18fa1}, - {0x8133e734, 0xe18fa2}, - {0x8133e735, 0xe18fa3}, - {0x8133e736, 0xe18fa4}, - {0x8133e737, 0xe18fa5}, - {0x8133e738, 0xe18fa6}, - {0x8133e739, 0xe18fa7}, - {0x8133e830, 0xe18fa8}, - {0x8133e831, 0xe18fa9}, - {0x8133e832, 0xe18faa}, - {0x8133e833, 0xe18fab}, - {0x8133e834, 0xe18fac}, - {0x8133e835, 0xe18fad}, - {0x8133e836, 0xe18fae}, - {0x8133e837, 0xe18faf}, - {0x8133e838, 0xe18fb0}, - {0x8133e839, 0xe18fb1}, - {0x8133e930, 0xe18fb2}, - {0x8133e931, 0xe18fb3}, - {0x8133e932, 0xe18fb4}, - {0x8133e933, 0xe18fb5}, - {0x8133e934, 0xe18fb6}, - {0x8133e935, 0xe18fb7}, - {0x8133e936, 0xe18fb8}, - {0x8133e937, 0xe18fb9}, - {0x8133e938, 0xe18fba}, - {0x8133e939, 0xe18fbb}, - {0x8133ea30, 0xe18fbc}, - {0x8133ea31, 0xe18fbd}, - {0x8133ea32, 0xe18fbe}, - {0x8133ea33, 0xe18fbf}, - {0x8133ea34, 0xe19080}, - {0x8133ea35, 0xe19081}, - {0x8133ea36, 0xe19082}, - {0x8133ea37, 0xe19083}, - {0x8133ea38, 0xe19084}, - {0x8133ea39, 0xe19085}, - {0x8133eb30, 0xe19086}, - {0x8133eb31, 0xe19087}, - {0x8133eb32, 0xe19088}, - {0x8133eb33, 0xe19089}, - {0x8133eb34, 0xe1908a}, - {0x8133eb35, 0xe1908b}, - {0x8133eb36, 0xe1908c}, - {0x8133eb37, 0xe1908d}, - {0x8133eb38, 0xe1908e}, - {0x8133eb39, 0xe1908f}, - {0x8133ec30, 0xe19090}, - {0x8133ec31, 0xe19091}, - {0x8133ec32, 0xe19092}, - {0x8133ec33, 0xe19093}, - {0x8133ec34, 0xe19094}, - {0x8133ec35, 0xe19095}, - {0x8133ec36, 0xe19096}, - {0x8133ec37, 0xe19097}, - {0x8133ec38, 0xe19098}, - {0x8133ec39, 0xe19099}, - {0x8133ed30, 0xe1909a}, - {0x8133ed31, 0xe1909b}, - {0x8133ed32, 0xe1909c}, - {0x8133ed33, 0xe1909d}, - {0x8133ed34, 0xe1909e}, - {0x8133ed35, 0xe1909f}, - {0x8133ed36, 0xe190a0}, - {0x8133ed37, 0xe190a1}, - {0x8133ed38, 0xe190a2}, - {0x8133ed39, 0xe190a3}, - {0x8133ee30, 0xe190a4}, - {0x8133ee31, 0xe190a5}, - {0x8133ee32, 0xe190a6}, - {0x8133ee33, 0xe190a7}, - {0x8133ee34, 0xe190a8}, - {0x8133ee35, 0xe190a9}, - {0x8133ee36, 0xe190aa}, - {0x8133ee37, 0xe190ab}, - {0x8133ee38, 0xe190ac}, - {0x8133ee39, 0xe190ad}, - {0x8133ef30, 0xe190ae}, - {0x8133ef31, 0xe190af}, - {0x8133ef32, 0xe190b0}, - {0x8133ef33, 0xe190b1}, - {0x8133ef34, 0xe190b2}, - {0x8133ef35, 0xe190b3}, - {0x8133ef36, 0xe190b4}, - {0x8133ef37, 0xe190b5}, - {0x8133ef38, 0xe190b6}, - {0x8133ef39, 0xe190b7}, - {0x8133f030, 0xe190b8}, - {0x8133f031, 0xe190b9}, - {0x8133f032, 0xe190ba}, - {0x8133f033, 0xe190bb}, - {0x8133f034, 0xe190bc}, - {0x8133f035, 0xe190bd}, - {0x8133f036, 0xe190be}, - {0x8133f037, 0xe190bf}, - {0x8133f038, 0xe19180}, - {0x8133f039, 0xe19181}, - {0x8133f130, 0xe19182}, - {0x8133f131, 0xe19183}, - {0x8133f132, 0xe19184}, - {0x8133f133, 0xe19185}, - {0x8133f134, 0xe19186}, - {0x8133f135, 0xe19187}, - {0x8133f136, 0xe19188}, - {0x8133f137, 0xe19189}, - {0x8133f138, 0xe1918a}, - {0x8133f139, 0xe1918b}, - {0x8133f230, 0xe1918c}, - {0x8133f231, 0xe1918d}, - {0x8133f232, 0xe1918e}, - {0x8133f233, 0xe1918f}, - {0x8133f234, 0xe19190}, - {0x8133f235, 0xe19191}, - {0x8133f236, 0xe19192}, - {0x8133f237, 0xe19193}, - {0x8133f238, 0xe19194}, - {0x8133f239, 0xe19195}, - {0x8133f330, 0xe19196}, - {0x8133f331, 0xe19197}, - {0x8133f332, 0xe19198}, - {0x8133f333, 0xe19199}, - {0x8133f334, 0xe1919a}, - {0x8133f335, 0xe1919b}, - {0x8133f336, 0xe1919c}, - {0x8133f337, 0xe1919d}, - {0x8133f338, 0xe1919e}, - {0x8133f339, 0xe1919f}, - {0x8133f430, 0xe191a0}, - {0x8133f431, 0xe191a1}, - {0x8133f432, 0xe191a2}, - {0x8133f433, 0xe191a3}, - {0x8133f434, 0xe191a4}, - {0x8133f435, 0xe191a5}, - {0x8133f436, 0xe191a6}, - {0x8133f437, 0xe191a7}, - {0x8133f438, 0xe191a8}, - {0x8133f439, 0xe191a9}, - {0x8133f530, 0xe191aa}, - {0x8133f531, 0xe191ab}, - {0x8133f532, 0xe191ac}, - {0x8133f533, 0xe191ad}, - {0x8133f534, 0xe191ae}, - {0x8133f535, 0xe191af}, - {0x8133f536, 0xe191b0}, - {0x8133f537, 0xe191b1}, - {0x8133f538, 0xe191b2}, - {0x8133f539, 0xe191b3}, - {0x8133f630, 0xe191b4}, - {0x8133f631, 0xe191b5}, - {0x8133f632, 0xe191b6}, - {0x8133f633, 0xe191b7}, - {0x8133f634, 0xe191b8}, - {0x8133f635, 0xe191b9}, - {0x8133f636, 0xe191ba}, - {0x8133f637, 0xe191bb}, - {0x8133f638, 0xe191bc}, - {0x8133f639, 0xe191bd}, - {0x8133f730, 0xe191be}, - {0x8133f731, 0xe191bf}, - {0x8133f732, 0xe19280}, - {0x8133f733, 0xe19281}, - {0x8133f734, 0xe19282}, - {0x8133f735, 0xe19283}, - {0x8133f736, 0xe19284}, - {0x8133f737, 0xe19285}, - {0x8133f738, 0xe19286}, - {0x8133f739, 0xe19287}, - {0x8133f830, 0xe19288}, - {0x8133f831, 0xe19289}, - {0x8133f832, 0xe1928a}, - {0x8133f833, 0xe1928b}, - {0x8133f834, 0xe1928c}, - {0x8133f835, 0xe1928d}, - {0x8133f836, 0xe1928e}, - {0x8133f837, 0xe1928f}, - {0x8133f838, 0xe19290}, - {0x8133f839, 0xe19291}, - {0x8133f930, 0xe19292}, - {0x8133f931, 0xe19293}, - {0x8133f932, 0xe19294}, - {0x8133f933, 0xe19295}, - {0x8133f934, 0xe19296}, - {0x8133f935, 0xe19297}, - {0x8133f936, 0xe19298}, - {0x8133f937, 0xe19299}, - {0x8133f938, 0xe1929a}, - {0x8133f939, 0xe1929b}, - {0x8133fa30, 0xe1929c}, - {0x8133fa31, 0xe1929d}, - {0x8133fa32, 0xe1929e}, - {0x8133fa33, 0xe1929f}, - {0x8133fa34, 0xe192a0}, - {0x8133fa35, 0xe192a1}, - {0x8133fa36, 0xe192a2}, - {0x8133fa37, 0xe192a3}, - {0x8133fa38, 0xe192a4}, - {0x8133fa39, 0xe192a5}, - {0x8133fb30, 0xe192a6}, - {0x8133fb31, 0xe192a7}, - {0x8133fb32, 0xe192a8}, - {0x8133fb33, 0xe192a9}, - {0x8133fb34, 0xe192aa}, - {0x8133fb35, 0xe192ab}, - {0x8133fb36, 0xe192ac}, - {0x8133fb37, 0xe192ad}, - {0x8133fb38, 0xe192ae}, - {0x8133fb39, 0xe192af}, - {0x8133fc30, 0xe192b0}, - {0x8133fc31, 0xe192b1}, - {0x8133fc32, 0xe192b2}, - {0x8133fc33, 0xe192b3}, - {0x8133fc34, 0xe192b4}, - {0x8133fc35, 0xe192b5}, - {0x8133fc36, 0xe192b6}, - {0x8133fc37, 0xe192b7}, - {0x8133fc38, 0xe192b8}, - {0x8133fc39, 0xe192b9}, - {0x8133fd30, 0xe192ba}, - {0x8133fd31, 0xe192bb}, - {0x8133fd32, 0xe192bc}, - {0x8133fd33, 0xe192bd}, - {0x8133fd34, 0xe192be}, - {0x8133fd35, 0xe192bf}, - {0x8133fd36, 0xe19380}, - {0x8133fd37, 0xe19381}, - {0x8133fd38, 0xe19382}, - {0x8133fd39, 0xe19383}, - {0x8133fe30, 0xe19384}, - {0x8133fe31, 0xe19385}, - {0x8133fe32, 0xe19386}, - {0x8133fe33, 0xe19387}, - {0x8133fe34, 0xe19388}, - {0x8133fe35, 0xe19389}, - {0x8133fe36, 0xe1938a}, - {0x8133fe37, 0xe1938b}, - {0x8133fe38, 0xe1938c}, - {0x8133fe39, 0xe1938d}, - {0x81348130, 0xe1938e}, - {0x81348131, 0xe1938f}, - {0x81348132, 0xe19390}, - {0x81348133, 0xe19391}, - {0x81348134, 0xe19392}, - {0x81348135, 0xe19393}, - {0x81348136, 0xe19394}, - {0x81348137, 0xe19395}, - {0x81348138, 0xe19396}, - {0x81348139, 0xe19397}, - {0x81348230, 0xe19398}, - {0x81348231, 0xe19399}, - {0x81348232, 0xe1939a}, - {0x81348233, 0xe1939b}, - {0x81348234, 0xe1939c}, - {0x81348235, 0xe1939d}, - {0x81348236, 0xe1939e}, - {0x81348237, 0xe1939f}, - {0x81348238, 0xe193a0}, - {0x81348239, 0xe193a1}, - {0x81348330, 0xe193a2}, - {0x81348331, 0xe193a3}, - {0x81348332, 0xe193a4}, - {0x81348333, 0xe193a5}, - {0x81348334, 0xe193a6}, - {0x81348335, 0xe193a7}, - {0x81348336, 0xe193a8}, - {0x81348337, 0xe193a9}, - {0x81348338, 0xe193aa}, - {0x81348339, 0xe193ab}, - {0x81348430, 0xe193ac}, - {0x81348431, 0xe193ad}, - {0x81348432, 0xe193ae}, - {0x81348433, 0xe193af}, - {0x81348434, 0xe193b0}, - {0x81348435, 0xe193b1}, - {0x81348436, 0xe193b2}, - {0x81348437, 0xe193b3}, - {0x81348438, 0xe193b4}, - {0x81348439, 0xe193b5}, - {0x81348530, 0xe193b6}, - {0x81348531, 0xe193b7}, - {0x81348532, 0xe193b8}, - {0x81348533, 0xe193b9}, - {0x81348534, 0xe193ba}, - {0x81348535, 0xe193bb}, - {0x81348536, 0xe193bc}, - {0x81348537, 0xe193bd}, - {0x81348538, 0xe193be}, - {0x81348539, 0xe193bf}, - {0x81348630, 0xe19480}, - {0x81348631, 0xe19481}, - {0x81348632, 0xe19482}, - {0x81348633, 0xe19483}, - {0x81348634, 0xe19484}, - {0x81348635, 0xe19485}, - {0x81348636, 0xe19486}, - {0x81348637, 0xe19487}, - {0x81348638, 0xe19488}, - {0x81348639, 0xe19489}, - {0x81348730, 0xe1948a}, - {0x81348731, 0xe1948b}, - {0x81348732, 0xe1948c}, - {0x81348733, 0xe1948d}, - {0x81348734, 0xe1948e}, - {0x81348735, 0xe1948f}, - {0x81348736, 0xe19490}, - {0x81348737, 0xe19491}, - {0x81348738, 0xe19492}, - {0x81348739, 0xe19493}, - {0x81348830, 0xe19494}, - {0x81348831, 0xe19495}, - {0x81348832, 0xe19496}, - {0x81348833, 0xe19497}, - {0x81348834, 0xe19498}, - {0x81348835, 0xe19499}, - {0x81348836, 0xe1949a}, - {0x81348837, 0xe1949b}, - {0x81348838, 0xe1949c}, - {0x81348839, 0xe1949d}, - {0x81348930, 0xe1949e}, - {0x81348931, 0xe1949f}, - {0x81348932, 0xe194a0}, - {0x81348933, 0xe194a1}, - {0x81348934, 0xe194a2}, - {0x81348935, 0xe194a3}, - {0x81348936, 0xe194a4}, - {0x81348937, 0xe194a5}, - {0x81348938, 0xe194a6}, - {0x81348939, 0xe194a7}, - {0x81348a30, 0xe194a8}, - {0x81348a31, 0xe194a9}, - {0x81348a32, 0xe194aa}, - {0x81348a33, 0xe194ab}, - {0x81348a34, 0xe194ac}, - {0x81348a35, 0xe194ad}, - {0x81348a36, 0xe194ae}, - {0x81348a37, 0xe194af}, - {0x81348a38, 0xe194b0}, - {0x81348a39, 0xe194b1}, - {0x81348b30, 0xe194b2}, - {0x81348b31, 0xe194b3}, - {0x81348b32, 0xe194b4}, - {0x81348b33, 0xe194b5}, - {0x81348b34, 0xe194b6}, - {0x81348b35, 0xe194b7}, - {0x81348b36, 0xe194b8}, - {0x81348b37, 0xe194b9}, - {0x81348b38, 0xe194ba}, - {0x81348b39, 0xe194bb}, - {0x81348c30, 0xe194bc}, - {0x81348c31, 0xe194bd}, - {0x81348c32, 0xe194be}, - {0x81348c33, 0xe194bf}, - {0x81348c34, 0xe19580}, - {0x81348c35, 0xe19581}, - {0x81348c36, 0xe19582}, - {0x81348c37, 0xe19583}, - {0x81348c38, 0xe19584}, - {0x81348c39, 0xe19585}, - {0x81348d30, 0xe19586}, - {0x81348d31, 0xe19587}, - {0x81348d32, 0xe19588}, - {0x81348d33, 0xe19589}, - {0x81348d34, 0xe1958a}, - {0x81348d35, 0xe1958b}, - {0x81348d36, 0xe1958c}, - {0x81348d37, 0xe1958d}, - {0x81348d38, 0xe1958e}, - {0x81348d39, 0xe1958f}, - {0x81348e30, 0xe19590}, - {0x81348e31, 0xe19591}, - {0x81348e32, 0xe19592}, - {0x81348e33, 0xe19593}, - {0x81348e34, 0xe19594}, - {0x81348e35, 0xe19595}, - {0x81348e36, 0xe19596}, - {0x81348e37, 0xe19597}, - {0x81348e38, 0xe19598}, - {0x81348e39, 0xe19599}, - {0x81348f30, 0xe1959a}, - {0x81348f31, 0xe1959b}, - {0x81348f32, 0xe1959c}, - {0x81348f33, 0xe1959d}, - {0x81348f34, 0xe1959e}, - {0x81348f35, 0xe1959f}, - {0x81348f36, 0xe195a0}, - {0x81348f37, 0xe195a1}, - {0x81348f38, 0xe195a2}, - {0x81348f39, 0xe195a3}, - {0x81349030, 0xe195a4}, - {0x81349031, 0xe195a5}, - {0x81349032, 0xe195a6}, - {0x81349033, 0xe195a7}, - {0x81349034, 0xe195a8}, - {0x81349035, 0xe195a9}, - {0x81349036, 0xe195aa}, - {0x81349037, 0xe195ab}, - {0x81349038, 0xe195ac}, - {0x81349039, 0xe195ad}, - {0x81349130, 0xe195ae}, - {0x81349131, 0xe195af}, - {0x81349132, 0xe195b0}, - {0x81349133, 0xe195b1}, - {0x81349134, 0xe195b2}, - {0x81349135, 0xe195b3}, - {0x81349136, 0xe195b4}, - {0x81349137, 0xe195b5}, - {0x81349138, 0xe195b6}, - {0x81349139, 0xe195b7}, - {0x81349230, 0xe195b8}, - {0x81349231, 0xe195b9}, - {0x81349232, 0xe195ba}, - {0x81349233, 0xe195bb}, - {0x81349234, 0xe195bc}, - {0x81349235, 0xe195bd}, - {0x81349236, 0xe195be}, - {0x81349237, 0xe195bf}, - {0x81349238, 0xe19680}, - {0x81349239, 0xe19681}, - {0x81349330, 0xe19682}, - {0x81349331, 0xe19683}, - {0x81349332, 0xe19684}, - {0x81349333, 0xe19685}, - {0x81349334, 0xe19686}, - {0x81349335, 0xe19687}, - {0x81349336, 0xe19688}, - {0x81349337, 0xe19689}, - {0x81349338, 0xe1968a}, - {0x81349339, 0xe1968b}, - {0x81349430, 0xe1968c}, - {0x81349431, 0xe1968d}, - {0x81349432, 0xe1968e}, - {0x81349433, 0xe1968f}, - {0x81349434, 0xe19690}, - {0x81349435, 0xe19691}, - {0x81349436, 0xe19692}, - {0x81349437, 0xe19693}, - {0x81349438, 0xe19694}, - {0x81349439, 0xe19695}, - {0x81349530, 0xe19696}, - {0x81349531, 0xe19697}, - {0x81349532, 0xe19698}, - {0x81349533, 0xe19699}, - {0x81349534, 0xe1969a}, - {0x81349535, 0xe1969b}, - {0x81349536, 0xe1969c}, - {0x81349537, 0xe1969d}, - {0x81349538, 0xe1969e}, - {0x81349539, 0xe1969f}, - {0x81349630, 0xe196a0}, - {0x81349631, 0xe196a1}, - {0x81349632, 0xe196a2}, - {0x81349633, 0xe196a3}, - {0x81349634, 0xe196a4}, - {0x81349635, 0xe196a5}, - {0x81349636, 0xe196a6}, - {0x81349637, 0xe196a7}, - {0x81349638, 0xe196a8}, - {0x81349639, 0xe196a9}, - {0x81349730, 0xe196aa}, - {0x81349731, 0xe196ab}, - {0x81349732, 0xe196ac}, - {0x81349733, 0xe196ad}, - {0x81349734, 0xe196ae}, - {0x81349735, 0xe196af}, - {0x81349736, 0xe196b0}, - {0x81349737, 0xe196b1}, - {0x81349738, 0xe196b2}, - {0x81349739, 0xe196b3}, - {0x81349830, 0xe196b4}, - {0x81349831, 0xe196b5}, - {0x81349832, 0xe196b6}, - {0x81349833, 0xe196b7}, - {0x81349834, 0xe196b8}, - {0x81349835, 0xe196b9}, - {0x81349836, 0xe196ba}, - {0x81349837, 0xe196bb}, - {0x81349838, 0xe196bc}, - {0x81349839, 0xe196bd}, - {0x81349930, 0xe196be}, - {0x81349931, 0xe196bf}, - {0x81349932, 0xe19780}, - {0x81349933, 0xe19781}, - {0x81349934, 0xe19782}, - {0x81349935, 0xe19783}, - {0x81349936, 0xe19784}, - {0x81349937, 0xe19785}, - {0x81349938, 0xe19786}, - {0x81349939, 0xe19787}, - {0x81349a30, 0xe19788}, - {0x81349a31, 0xe19789}, - {0x81349a32, 0xe1978a}, - {0x81349a33, 0xe1978b}, - {0x81349a34, 0xe1978c}, - {0x81349a35, 0xe1978d}, - {0x81349a36, 0xe1978e}, - {0x81349a37, 0xe1978f}, - {0x81349a38, 0xe19790}, - {0x81349a39, 0xe19791}, - {0x81349b30, 0xe19792}, - {0x81349b31, 0xe19793}, - {0x81349b32, 0xe19794}, - {0x81349b33, 0xe19795}, - {0x81349b34, 0xe19796}, - {0x81349b35, 0xe19797}, - {0x81349b36, 0xe19798}, - {0x81349b37, 0xe19799}, - {0x81349b38, 0xe1979a}, - {0x81349b39, 0xe1979b}, - {0x81349c30, 0xe1979c}, - {0x81349c31, 0xe1979d}, - {0x81349c32, 0xe1979e}, - {0x81349c33, 0xe1979f}, - {0x81349c34, 0xe197a0}, - {0x81349c35, 0xe197a1}, - {0x81349c36, 0xe197a2}, - {0x81349c37, 0xe197a3}, - {0x81349c38, 0xe197a4}, - {0x81349c39, 0xe197a5}, - {0x81349d30, 0xe197a6}, - {0x81349d31, 0xe197a7}, - {0x81349d32, 0xe197a8}, - {0x81349d33, 0xe197a9}, - {0x81349d34, 0xe197aa}, - {0x81349d35, 0xe197ab}, - {0x81349d36, 0xe197ac}, - {0x81349d37, 0xe197ad}, - {0x81349d38, 0xe197ae}, - {0x81349d39, 0xe197af}, - {0x81349e30, 0xe197b0}, - {0x81349e31, 0xe197b1}, - {0x81349e32, 0xe197b2}, - {0x81349e33, 0xe197b3}, - {0x81349e34, 0xe197b4}, - {0x81349e35, 0xe197b5}, - {0x81349e36, 0xe197b6}, - {0x81349e37, 0xe197b7}, - {0x81349e38, 0xe197b8}, - {0x81349e39, 0xe197b9}, - {0x81349f30, 0xe197ba}, - {0x81349f31, 0xe197bb}, - {0x81349f32, 0xe197bc}, - {0x81349f33, 0xe197bd}, - {0x81349f34, 0xe197be}, - {0x81349f35, 0xe197bf}, - {0x81349f36, 0xe19880}, - {0x81349f37, 0xe19881}, - {0x81349f38, 0xe19882}, - {0x81349f39, 0xe19883}, - {0x8134a030, 0xe19884}, - {0x8134a031, 0xe19885}, - {0x8134a032, 0xe19886}, - {0x8134a033, 0xe19887}, - {0x8134a034, 0xe19888}, - {0x8134a035, 0xe19889}, - {0x8134a036, 0xe1988a}, - {0x8134a037, 0xe1988b}, - {0x8134a038, 0xe1988c}, - {0x8134a039, 0xe1988d}, - {0x8134a130, 0xe1988e}, - {0x8134a131, 0xe1988f}, - {0x8134a132, 0xe19890}, - {0x8134a133, 0xe19891}, - {0x8134a134, 0xe19892}, - {0x8134a135, 0xe19893}, - {0x8134a136, 0xe19894}, - {0x8134a137, 0xe19895}, - {0x8134a138, 0xe19896}, - {0x8134a139, 0xe19897}, - {0x8134a230, 0xe19898}, - {0x8134a231, 0xe19899}, - {0x8134a232, 0xe1989a}, - {0x8134a233, 0xe1989b}, - {0x8134a234, 0xe1989c}, - {0x8134a235, 0xe1989d}, - {0x8134a236, 0xe1989e}, - {0x8134a237, 0xe1989f}, - {0x8134a238, 0xe198a0}, - {0x8134a239, 0xe198a1}, - {0x8134a330, 0xe198a2}, - {0x8134a331, 0xe198a3}, - {0x8134a332, 0xe198a4}, - {0x8134a333, 0xe198a5}, - {0x8134a334, 0xe198a6}, - {0x8134a335, 0xe198a7}, - {0x8134a336, 0xe198a8}, - {0x8134a337, 0xe198a9}, - {0x8134a338, 0xe198aa}, - {0x8134a339, 0xe198ab}, - {0x8134a430, 0xe198ac}, - {0x8134a431, 0xe198ad}, - {0x8134a432, 0xe198ae}, - {0x8134a433, 0xe198af}, - {0x8134a434, 0xe198b0}, - {0x8134a435, 0xe198b1}, - {0x8134a436, 0xe198b2}, - {0x8134a437, 0xe198b3}, - {0x8134a438, 0xe198b4}, - {0x8134a439, 0xe198b5}, - {0x8134a530, 0xe198b6}, - {0x8134a531, 0xe198b7}, - {0x8134a532, 0xe198b8}, - {0x8134a533, 0xe198b9}, - {0x8134a534, 0xe198ba}, - {0x8134a535, 0xe198bb}, - {0x8134a536, 0xe198bc}, - {0x8134a537, 0xe198bd}, - {0x8134a538, 0xe198be}, - {0x8134a539, 0xe198bf}, - {0x8134a630, 0xe19980}, - {0x8134a631, 0xe19981}, - {0x8134a632, 0xe19982}, - {0x8134a633, 0xe19983}, - {0x8134a634, 0xe19984}, - {0x8134a635, 0xe19985}, - {0x8134a636, 0xe19986}, - {0x8134a637, 0xe19987}, - {0x8134a638, 0xe19988}, - {0x8134a639, 0xe19989}, - {0x8134a730, 0xe1998a}, - {0x8134a731, 0xe1998b}, - {0x8134a732, 0xe1998c}, - {0x8134a733, 0xe1998d}, - {0x8134a734, 0xe1998e}, - {0x8134a735, 0xe1998f}, - {0x8134a736, 0xe19990}, - {0x8134a737, 0xe19991}, - {0x8134a738, 0xe19992}, - {0x8134a739, 0xe19993}, - {0x8134a830, 0xe19994}, - {0x8134a831, 0xe19995}, - {0x8134a832, 0xe19996}, - {0x8134a833, 0xe19997}, - {0x8134a834, 0xe19998}, - {0x8134a835, 0xe19999}, - {0x8134a836, 0xe1999a}, - {0x8134a837, 0xe1999b}, - {0x8134a838, 0xe1999c}, - {0x8134a839, 0xe1999d}, - {0x8134a930, 0xe1999e}, - {0x8134a931, 0xe1999f}, - {0x8134a932, 0xe199a0}, - {0x8134a933, 0xe199a1}, - {0x8134a934, 0xe199a2}, - {0x8134a935, 0xe199a3}, - {0x8134a936, 0xe199a4}, - {0x8134a937, 0xe199a5}, - {0x8134a938, 0xe199a6}, - {0x8134a939, 0xe199a7}, - {0x8134aa30, 0xe199a8}, - {0x8134aa31, 0xe199a9}, - {0x8134aa32, 0xe199aa}, - {0x8134aa33, 0xe199ab}, - {0x8134aa34, 0xe199ac}, - {0x8134aa35, 0xe199ad}, - {0x8134aa36, 0xe199ae}, - {0x8134aa37, 0xe199af}, - {0x8134aa38, 0xe199b0}, - {0x8134aa39, 0xe199b1}, - {0x8134ab30, 0xe199b2}, - {0x8134ab31, 0xe199b3}, - {0x8134ab32, 0xe199b4}, - {0x8134ab33, 0xe199b5}, - {0x8134ab34, 0xe199b6}, - {0x8134ab35, 0xe199b7}, - {0x8134ab36, 0xe199b8}, - {0x8134ab37, 0xe199b9}, - {0x8134ab38, 0xe199ba}, - {0x8134ab39, 0xe199bb}, - {0x8134ac30, 0xe199bc}, - {0x8134ac31, 0xe199bd}, - {0x8134ac32, 0xe199be}, - {0x8134ac33, 0xe199bf}, - {0x8134ac34, 0xe19a80}, - {0x8134ac35, 0xe19a81}, - {0x8134ac36, 0xe19a82}, - {0x8134ac37, 0xe19a83}, - {0x8134ac38, 0xe19a84}, - {0x8134ac39, 0xe19a85}, - {0x8134ad30, 0xe19a86}, - {0x8134ad31, 0xe19a87}, - {0x8134ad32, 0xe19a88}, - {0x8134ad33, 0xe19a89}, - {0x8134ad34, 0xe19a8a}, - {0x8134ad35, 0xe19a8b}, - {0x8134ad36, 0xe19a8c}, - {0x8134ad37, 0xe19a8d}, - {0x8134ad38, 0xe19a8e}, - {0x8134ad39, 0xe19a8f}, - {0x8134ae30, 0xe19a90}, - {0x8134ae31, 0xe19a91}, - {0x8134ae32, 0xe19a92}, - {0x8134ae33, 0xe19a93}, - {0x8134ae34, 0xe19a94}, - {0x8134ae35, 0xe19a95}, - {0x8134ae36, 0xe19a96}, - {0x8134ae37, 0xe19a97}, - {0x8134ae38, 0xe19a98}, - {0x8134ae39, 0xe19a99}, - {0x8134af30, 0xe19a9a}, - {0x8134af31, 0xe19a9b}, - {0x8134af32, 0xe19a9c}, - {0x8134af33, 0xe19a9d}, - {0x8134af34, 0xe19a9e}, - {0x8134af35, 0xe19a9f}, - {0x8134af36, 0xe19aa0}, - {0x8134af37, 0xe19aa1}, - {0x8134af38, 0xe19aa2}, - {0x8134af39, 0xe19aa3}, - {0x8134b030, 0xe19aa4}, - {0x8134b031, 0xe19aa5}, - {0x8134b032, 0xe19aa6}, - {0x8134b033, 0xe19aa7}, - {0x8134b034, 0xe19aa8}, - {0x8134b035, 0xe19aa9}, - {0x8134b036, 0xe19aaa}, - {0x8134b037, 0xe19aab}, - {0x8134b038, 0xe19aac}, - {0x8134b039, 0xe19aad}, - {0x8134b130, 0xe19aae}, - {0x8134b131, 0xe19aaf}, - {0x8134b132, 0xe19ab0}, - {0x8134b133, 0xe19ab1}, - {0x8134b134, 0xe19ab2}, - {0x8134b135, 0xe19ab3}, - {0x8134b136, 0xe19ab4}, - {0x8134b137, 0xe19ab5}, - {0x8134b138, 0xe19ab6}, - {0x8134b139, 0xe19ab7}, - {0x8134b230, 0xe19ab8}, - {0x8134b231, 0xe19ab9}, - {0x8134b232, 0xe19aba}, - {0x8134b233, 0xe19abb}, - {0x8134b234, 0xe19abc}, - {0x8134b235, 0xe19abd}, - {0x8134b236, 0xe19abe}, - {0x8134b237, 0xe19abf}, - {0x8134b238, 0xe19b80}, - {0x8134b239, 0xe19b81}, - {0x8134b330, 0xe19b82}, - {0x8134b331, 0xe19b83}, - {0x8134b332, 0xe19b84}, - {0x8134b333, 0xe19b85}, - {0x8134b334, 0xe19b86}, - {0x8134b335, 0xe19b87}, - {0x8134b336, 0xe19b88}, - {0x8134b337, 0xe19b89}, - {0x8134b338, 0xe19b8a}, - {0x8134b339, 0xe19b8b}, - {0x8134b430, 0xe19b8c}, - {0x8134b431, 0xe19b8d}, - {0x8134b432, 0xe19b8e}, - {0x8134b433, 0xe19b8f}, - {0x8134b434, 0xe19b90}, - {0x8134b435, 0xe19b91}, - {0x8134b436, 0xe19b92}, - {0x8134b437, 0xe19b93}, - {0x8134b438, 0xe19b94}, - {0x8134b439, 0xe19b95}, - {0x8134b530, 0xe19b96}, - {0x8134b531, 0xe19b97}, - {0x8134b532, 0xe19b98}, - {0x8134b533, 0xe19b99}, - {0x8134b534, 0xe19b9a}, - {0x8134b535, 0xe19b9b}, - {0x8134b536, 0xe19b9c}, - {0x8134b537, 0xe19b9d}, - {0x8134b538, 0xe19b9e}, - {0x8134b539, 0xe19b9f}, - {0x8134b630, 0xe19ba0}, - {0x8134b631, 0xe19ba1}, - {0x8134b632, 0xe19ba2}, - {0x8134b633, 0xe19ba3}, - {0x8134b634, 0xe19ba4}, - {0x8134b635, 0xe19ba5}, - {0x8134b636, 0xe19ba6}, - {0x8134b637, 0xe19ba7}, - {0x8134b638, 0xe19ba8}, - {0x8134b639, 0xe19ba9}, - {0x8134b730, 0xe19baa}, - {0x8134b731, 0xe19bab}, - {0x8134b732, 0xe19bac}, - {0x8134b733, 0xe19bad}, - {0x8134b734, 0xe19bae}, - {0x8134b735, 0xe19baf}, - {0x8134b736, 0xe19bb0}, - {0x8134b737, 0xe19bb1}, - {0x8134b738, 0xe19bb2}, - {0x8134b739, 0xe19bb3}, - {0x8134b830, 0xe19bb4}, - {0x8134b831, 0xe19bb5}, - {0x8134b832, 0xe19bb6}, - {0x8134b833, 0xe19bb7}, - {0x8134b834, 0xe19bb8}, - {0x8134b835, 0xe19bb9}, - {0x8134b836, 0xe19bba}, - {0x8134b837, 0xe19bbb}, - {0x8134b838, 0xe19bbc}, - {0x8134b839, 0xe19bbd}, - {0x8134b930, 0xe19bbe}, - {0x8134b931, 0xe19bbf}, - {0x8134b932, 0xe19c80}, - {0x8134b933, 0xe19c81}, - {0x8134b934, 0xe19c82}, - {0x8134b935, 0xe19c83}, - {0x8134b936, 0xe19c84}, - {0x8134b937, 0xe19c85}, - {0x8134b938, 0xe19c86}, - {0x8134b939, 0xe19c87}, - {0x8134ba30, 0xe19c88}, - {0x8134ba31, 0xe19c89}, - {0x8134ba32, 0xe19c8a}, - {0x8134ba33, 0xe19c8b}, - {0x8134ba34, 0xe19c8c}, - {0x8134ba35, 0xe19c8d}, - {0x8134ba36, 0xe19c8e}, - {0x8134ba37, 0xe19c8f}, - {0x8134ba38, 0xe19c90}, - {0x8134ba39, 0xe19c91}, - {0x8134bb30, 0xe19c92}, - {0x8134bb31, 0xe19c93}, - {0x8134bb32, 0xe19c94}, - {0x8134bb33, 0xe19c95}, - {0x8134bb34, 0xe19c96}, - {0x8134bb35, 0xe19c97}, - {0x8134bb36, 0xe19c98}, - {0x8134bb37, 0xe19c99}, - {0x8134bb38, 0xe19c9a}, - {0x8134bb39, 0xe19c9b}, - {0x8134bc30, 0xe19c9c}, - {0x8134bc31, 0xe19c9d}, - {0x8134bc32, 0xe19c9e}, - {0x8134bc33, 0xe19c9f}, - {0x8134bc34, 0xe19ca0}, - {0x8134bc35, 0xe19ca1}, - {0x8134bc36, 0xe19ca2}, - {0x8134bc37, 0xe19ca3}, - {0x8134bc38, 0xe19ca4}, - {0x8134bc39, 0xe19ca5}, - {0x8134bd30, 0xe19ca6}, - {0x8134bd31, 0xe19ca7}, - {0x8134bd32, 0xe19ca8}, - {0x8134bd33, 0xe19ca9}, - {0x8134bd34, 0xe19caa}, - {0x8134bd35, 0xe19cab}, - {0x8134bd36, 0xe19cac}, - {0x8134bd37, 0xe19cad}, - {0x8134bd38, 0xe19cae}, - {0x8134bd39, 0xe19caf}, - {0x8134be30, 0xe19cb0}, - {0x8134be31, 0xe19cb1}, - {0x8134be32, 0xe19cb2}, - {0x8134be33, 0xe19cb3}, - {0x8134be34, 0xe19cb4}, - {0x8134be35, 0xe19cb5}, - {0x8134be36, 0xe19cb6}, - {0x8134be37, 0xe19cb7}, - {0x8134be38, 0xe19cb8}, - {0x8134be39, 0xe19cb9}, - {0x8134bf30, 0xe19cba}, - {0x8134bf31, 0xe19cbb}, - {0x8134bf32, 0xe19cbc}, - {0x8134bf33, 0xe19cbd}, - {0x8134bf34, 0xe19cbe}, - {0x8134bf35, 0xe19cbf}, - {0x8134bf36, 0xe19d80}, - {0x8134bf37, 0xe19d81}, - {0x8134bf38, 0xe19d82}, - {0x8134bf39, 0xe19d83}, - {0x8134c030, 0xe19d84}, - {0x8134c031, 0xe19d85}, - {0x8134c032, 0xe19d86}, - {0x8134c033, 0xe19d87}, - {0x8134c034, 0xe19d88}, - {0x8134c035, 0xe19d89}, - {0x8134c036, 0xe19d8a}, - {0x8134c037, 0xe19d8b}, - {0x8134c038, 0xe19d8c}, - {0x8134c039, 0xe19d8d}, - {0x8134c130, 0xe19d8e}, - {0x8134c131, 0xe19d8f}, - {0x8134c132, 0xe19d90}, - {0x8134c133, 0xe19d91}, - {0x8134c134, 0xe19d92}, - {0x8134c135, 0xe19d93}, - {0x8134c136, 0xe19d94}, - {0x8134c137, 0xe19d95}, - {0x8134c138, 0xe19d96}, - {0x8134c139, 0xe19d97}, - {0x8134c230, 0xe19d98}, - {0x8134c231, 0xe19d99}, - {0x8134c232, 0xe19d9a}, - {0x8134c233, 0xe19d9b}, - {0x8134c234, 0xe19d9c}, - {0x8134c235, 0xe19d9d}, - {0x8134c236, 0xe19d9e}, - {0x8134c237, 0xe19d9f}, - {0x8134c238, 0xe19da0}, - {0x8134c239, 0xe19da1}, - {0x8134c330, 0xe19da2}, - {0x8134c331, 0xe19da3}, - {0x8134c332, 0xe19da4}, - {0x8134c333, 0xe19da5}, - {0x8134c334, 0xe19da6}, - {0x8134c335, 0xe19da7}, - {0x8134c336, 0xe19da8}, - {0x8134c337, 0xe19da9}, - {0x8134c338, 0xe19daa}, - {0x8134c339, 0xe19dab}, - {0x8134c430, 0xe19dac}, - {0x8134c431, 0xe19dad}, - {0x8134c432, 0xe19dae}, - {0x8134c433, 0xe19daf}, - {0x8134c434, 0xe19db0}, - {0x8134c435, 0xe19db1}, - {0x8134c436, 0xe19db2}, - {0x8134c437, 0xe19db3}, - {0x8134c438, 0xe19db4}, - {0x8134c439, 0xe19db5}, - {0x8134c530, 0xe19db6}, - {0x8134c531, 0xe19db7}, - {0x8134c532, 0xe19db8}, - {0x8134c533, 0xe19db9}, - {0x8134c534, 0xe19dba}, - {0x8134c535, 0xe19dbb}, - {0x8134c536, 0xe19dbc}, - {0x8134c537, 0xe19dbd}, - {0x8134c538, 0xe19dbe}, - {0x8134c539, 0xe19dbf}, - {0x8134c630, 0xe19e80}, - {0x8134c631, 0xe19e81}, - {0x8134c632, 0xe19e82}, - {0x8134c633, 0xe19e83}, - {0x8134c634, 0xe19e84}, - {0x8134c635, 0xe19e85}, - {0x8134c636, 0xe19e86}, - {0x8134c637, 0xe19e87}, - {0x8134c638, 0xe19e88}, - {0x8134c639, 0xe19e89}, - {0x8134c730, 0xe19e8a}, - {0x8134c731, 0xe19e8b}, - {0x8134c732, 0xe19e8c}, - {0x8134c733, 0xe19e8d}, - {0x8134c734, 0xe19e8e}, - {0x8134c735, 0xe19e8f}, - {0x8134c736, 0xe19e90}, - {0x8134c737, 0xe19e91}, - {0x8134c738, 0xe19e92}, - {0x8134c739, 0xe19e93}, - {0x8134c830, 0xe19e94}, - {0x8134c831, 0xe19e95}, - {0x8134c832, 0xe19e96}, - {0x8134c833, 0xe19e97}, - {0x8134c834, 0xe19e98}, - {0x8134c835, 0xe19e99}, - {0x8134c836, 0xe19e9a}, - {0x8134c837, 0xe19e9b}, - {0x8134c838, 0xe19e9c}, - {0x8134c839, 0xe19e9d}, - {0x8134c930, 0xe19e9e}, - {0x8134c931, 0xe19e9f}, - {0x8134c932, 0xe19ea0}, - {0x8134c933, 0xe19ea1}, - {0x8134c934, 0xe19ea2}, - {0x8134c935, 0xe19ea3}, - {0x8134c936, 0xe19ea4}, - {0x8134c937, 0xe19ea5}, - {0x8134c938, 0xe19ea6}, - {0x8134c939, 0xe19ea7}, - {0x8134ca30, 0xe19ea8}, - {0x8134ca31, 0xe19ea9}, - {0x8134ca32, 0xe19eaa}, - {0x8134ca33, 0xe19eab}, - {0x8134ca34, 0xe19eac}, - {0x8134ca35, 0xe19ead}, - {0x8134ca36, 0xe19eae}, - {0x8134ca37, 0xe19eaf}, - {0x8134ca38, 0xe19eb0}, - {0x8134ca39, 0xe19eb1}, - {0x8134cb30, 0xe19eb2}, - {0x8134cb31, 0xe19eb3}, - {0x8134cb32, 0xe19eb4}, - {0x8134cb33, 0xe19eb5}, - {0x8134cb34, 0xe19eb6}, - {0x8134cb35, 0xe19eb7}, - {0x8134cb36, 0xe19eb8}, - {0x8134cb37, 0xe19eb9}, - {0x8134cb38, 0xe19eba}, - {0x8134cb39, 0xe19ebb}, - {0x8134cc30, 0xe19ebc}, - {0x8134cc31, 0xe19ebd}, - {0x8134cc32, 0xe19ebe}, - {0x8134cc33, 0xe19ebf}, - {0x8134cc34, 0xe19f80}, - {0x8134cc35, 0xe19f81}, - {0x8134cc36, 0xe19f82}, - {0x8134cc37, 0xe19f83}, - {0x8134cc38, 0xe19f84}, - {0x8134cc39, 0xe19f85}, - {0x8134cd30, 0xe19f86}, - {0x8134cd31, 0xe19f87}, - {0x8134cd32, 0xe19f88}, - {0x8134cd33, 0xe19f89}, - {0x8134cd34, 0xe19f8a}, - {0x8134cd35, 0xe19f8b}, - {0x8134cd36, 0xe19f8c}, - {0x8134cd37, 0xe19f8d}, - {0x8134cd38, 0xe19f8e}, - {0x8134cd39, 0xe19f8f}, - {0x8134ce30, 0xe19f90}, - {0x8134ce31, 0xe19f91}, - {0x8134ce32, 0xe19f92}, - {0x8134ce33, 0xe19f93}, - {0x8134ce34, 0xe19f94}, - {0x8134ce35, 0xe19f95}, - {0x8134ce36, 0xe19f96}, - {0x8134ce37, 0xe19f97}, - {0x8134ce38, 0xe19f98}, - {0x8134ce39, 0xe19f99}, - {0x8134cf30, 0xe19f9a}, - {0x8134cf31, 0xe19f9b}, - {0x8134cf32, 0xe19f9c}, - {0x8134cf33, 0xe19f9d}, - {0x8134cf34, 0xe19f9e}, - {0x8134cf35, 0xe19f9f}, - {0x8134cf36, 0xe19fa0}, - {0x8134cf37, 0xe19fa1}, - {0x8134cf38, 0xe19fa2}, - {0x8134cf39, 0xe19fa3}, - {0x8134d030, 0xe19fa4}, - {0x8134d031, 0xe19fa5}, - {0x8134d032, 0xe19fa6}, - {0x8134d033, 0xe19fa7}, - {0x8134d034, 0xe19fa8}, - {0x8134d035, 0xe19fa9}, - {0x8134d036, 0xe19faa}, - {0x8134d037, 0xe19fab}, - {0x8134d038, 0xe19fac}, - {0x8134d039, 0xe19fad}, - {0x8134d130, 0xe19fae}, - {0x8134d131, 0xe19faf}, - {0x8134d132, 0xe19fb0}, - {0x8134d133, 0xe19fb1}, - {0x8134d134, 0xe19fb2}, - {0x8134d135, 0xe19fb3}, - {0x8134d136, 0xe19fb4}, - {0x8134d137, 0xe19fb5}, - {0x8134d138, 0xe19fb6}, - {0x8134d139, 0xe19fb7}, - {0x8134d230, 0xe19fb8}, - {0x8134d231, 0xe19fb9}, - {0x8134d232, 0xe19fba}, - {0x8134d233, 0xe19fbb}, - {0x8134d234, 0xe19fbc}, - {0x8134d235, 0xe19fbd}, - {0x8134d236, 0xe19fbe}, - {0x8134d237, 0xe19fbf}, - {0x8134d238, 0xe1a080}, - {0x8134d239, 0xe1a081}, - {0x8134d330, 0xe1a082}, - {0x8134d331, 0xe1a083}, - {0x8134d332, 0xe1a084}, - {0x8134d333, 0xe1a085}, - {0x8134d334, 0xe1a086}, - {0x8134d335, 0xe1a087}, - {0x8134d336, 0xe1a088}, - {0x8134d337, 0xe1a089}, - {0x8134d338, 0xe1a08a}, - {0x8134d339, 0xe1a08b}, - {0x8134d430, 0xe1a08c}, - {0x8134d431, 0xe1a08d}, - {0x8134d432, 0xe1a08e}, - {0x8134d433, 0xe1a08f}, - {0x8134d434, 0xe1a090}, - {0x8134d435, 0xe1a091}, - {0x8134d436, 0xe1a092}, - {0x8134d437, 0xe1a093}, - {0x8134d438, 0xe1a094}, - {0x8134d439, 0xe1a095}, - {0x8134d530, 0xe1a096}, - {0x8134d531, 0xe1a097}, - {0x8134d532, 0xe1a098}, - {0x8134d533, 0xe1a099}, - {0x8134d534, 0xe1a09a}, - {0x8134d535, 0xe1a09b}, - {0x8134d536, 0xe1a09c}, - {0x8134d537, 0xe1a09d}, - {0x8134d538, 0xe1a09e}, - {0x8134d539, 0xe1a09f}, - {0x8134d630, 0xe1a0a0}, - {0x8134d631, 0xe1a0a1}, - {0x8134d632, 0xe1a0a2}, - {0x8134d633, 0xe1a0a3}, - {0x8134d634, 0xe1a0a4}, - {0x8134d635, 0xe1a0a5}, - {0x8134d636, 0xe1a0a6}, - {0x8134d637, 0xe1a0a7}, - {0x8134d638, 0xe1a0a8}, - {0x8134d639, 0xe1a0a9}, - {0x8134d730, 0xe1a0aa}, - {0x8134d731, 0xe1a0ab}, - {0x8134d732, 0xe1a0ac}, - {0x8134d733, 0xe1a0ad}, - {0x8134d734, 0xe1a0ae}, - {0x8134d735, 0xe1a0af}, - {0x8134d736, 0xe1a0b0}, - {0x8134d737, 0xe1a0b1}, - {0x8134d738, 0xe1a0b2}, - {0x8134d739, 0xe1a0b3}, - {0x8134d830, 0xe1a0b4}, - {0x8134d831, 0xe1a0b5}, - {0x8134d832, 0xe1a0b6}, - {0x8134d833, 0xe1a0b7}, - {0x8134d834, 0xe1a0b8}, - {0x8134d835, 0xe1a0b9}, - {0x8134d836, 0xe1a0ba}, - {0x8134d837, 0xe1a0bb}, - {0x8134d838, 0xe1a0bc}, - {0x8134d839, 0xe1a0bd}, - {0x8134d930, 0xe1a0be}, - {0x8134d931, 0xe1a0bf}, - {0x8134d932, 0xe1a180}, - {0x8134d933, 0xe1a181}, - {0x8134d934, 0xe1a182}, - {0x8134d935, 0xe1a183}, - {0x8134d936, 0xe1a184}, - {0x8134d937, 0xe1a185}, - {0x8134d938, 0xe1a186}, - {0x8134d939, 0xe1a187}, - {0x8134da30, 0xe1a188}, - {0x8134da31, 0xe1a189}, - {0x8134da32, 0xe1a18a}, - {0x8134da33, 0xe1a18b}, - {0x8134da34, 0xe1a18c}, - {0x8134da35, 0xe1a18d}, - {0x8134da36, 0xe1a18e}, - {0x8134da37, 0xe1a18f}, - {0x8134da38, 0xe1a190}, - {0x8134da39, 0xe1a191}, - {0x8134db30, 0xe1a192}, - {0x8134db31, 0xe1a193}, - {0x8134db32, 0xe1a194}, - {0x8134db33, 0xe1a195}, - {0x8134db34, 0xe1a196}, - {0x8134db35, 0xe1a197}, - {0x8134db36, 0xe1a198}, - {0x8134db37, 0xe1a199}, - {0x8134db38, 0xe1a19a}, - {0x8134db39, 0xe1a19b}, - {0x8134dc30, 0xe1a19c}, - {0x8134dc31, 0xe1a19d}, - {0x8134dc32, 0xe1a19e}, - {0x8134dc33, 0xe1a19f}, - {0x8134dc34, 0xe1a1a0}, - {0x8134dc35, 0xe1a1a1}, - {0x8134dc36, 0xe1a1a2}, - {0x8134dc37, 0xe1a1a3}, - {0x8134dc38, 0xe1a1a4}, - {0x8134dc39, 0xe1a1a5}, - {0x8134dd30, 0xe1a1a6}, - {0x8134dd31, 0xe1a1a7}, - {0x8134dd32, 0xe1a1a8}, - {0x8134dd33, 0xe1a1a9}, - {0x8134dd34, 0xe1a1aa}, - {0x8134dd35, 0xe1a1ab}, - {0x8134dd36, 0xe1a1ac}, - {0x8134dd37, 0xe1a1ad}, - {0x8134dd38, 0xe1a1ae}, - {0x8134dd39, 0xe1a1af}, - {0x8134de30, 0xe1a1b0}, - {0x8134de31, 0xe1a1b1}, - {0x8134de32, 0xe1a1b2}, - {0x8134de33, 0xe1a1b3}, - {0x8134de34, 0xe1a1b4}, - {0x8134de35, 0xe1a1b5}, - {0x8134de36, 0xe1a1b6}, - {0x8134de37, 0xe1a1b7}, - {0x8134de38, 0xe1a1b8}, - {0x8134de39, 0xe1a1b9}, - {0x8134df30, 0xe1a1ba}, - {0x8134df31, 0xe1a1bb}, - {0x8134df32, 0xe1a1bc}, - {0x8134df33, 0xe1a1bd}, - {0x8134df34, 0xe1a1be}, - {0x8134df35, 0xe1a1bf}, - {0x8134df36, 0xe1a280}, - {0x8134df37, 0xe1a281}, - {0x8134df38, 0xe1a282}, - {0x8134df39, 0xe1a283}, - {0x8134e030, 0xe1a284}, - {0x8134e031, 0xe1a285}, - {0x8134e032, 0xe1a286}, - {0x8134e033, 0xe1a287}, - {0x8134e034, 0xe1a288}, - {0x8134e035, 0xe1a289}, - {0x8134e036, 0xe1a28a}, - {0x8134e037, 0xe1a28b}, - {0x8134e038, 0xe1a28c}, - {0x8134e039, 0xe1a28d}, - {0x8134e130, 0xe1a28e}, - {0x8134e131, 0xe1a28f}, - {0x8134e132, 0xe1a290}, - {0x8134e133, 0xe1a291}, - {0x8134e134, 0xe1a292}, - {0x8134e135, 0xe1a293}, - {0x8134e136, 0xe1a294}, - {0x8134e137, 0xe1a295}, - {0x8134e138, 0xe1a296}, - {0x8134e139, 0xe1a297}, - {0x8134e230, 0xe1a298}, - {0x8134e231, 0xe1a299}, - {0x8134e232, 0xe1a29a}, - {0x8134e233, 0xe1a29b}, - {0x8134e234, 0xe1a29c}, - {0x8134e235, 0xe1a29d}, - {0x8134e236, 0xe1a29e}, - {0x8134e237, 0xe1a29f}, - {0x8134e238, 0xe1a2a0}, - {0x8134e239, 0xe1a2a1}, - {0x8134e330, 0xe1a2a2}, - {0x8134e331, 0xe1a2a3}, - {0x8134e332, 0xe1a2a4}, - {0x8134e333, 0xe1a2a5}, - {0x8134e334, 0xe1a2a6}, - {0x8134e335, 0xe1a2a7}, - {0x8134e336, 0xe1a2a8}, - {0x8134e337, 0xe1a2a9}, - {0x8134e338, 0xe1a2aa}, - {0x8134e339, 0xe1a2ab}, - {0x8134e430, 0xe1a2ac}, - {0x8134e431, 0xe1a2ad}, - {0x8134e432, 0xe1a2ae}, - {0x8134e433, 0xe1a2af}, - {0x8134e434, 0xe1a2b0}, - {0x8134e435, 0xe1a2b1}, - {0x8134e436, 0xe1a2b2}, - {0x8134e437, 0xe1a2b3}, - {0x8134e438, 0xe1a2b4}, - {0x8134e439, 0xe1a2b5}, - {0x8134e530, 0xe1a2b6}, - {0x8134e531, 0xe1a2b7}, - {0x8134e532, 0xe1a2b8}, - {0x8134e533, 0xe1a2b9}, - {0x8134e534, 0xe1a2ba}, - {0x8134e535, 0xe1a2bb}, - {0x8134e536, 0xe1a2bc}, - {0x8134e537, 0xe1a2bd}, - {0x8134e538, 0xe1a2be}, - {0x8134e539, 0xe1a2bf}, - {0x8134e630, 0xe1a380}, - {0x8134e631, 0xe1a381}, - {0x8134e632, 0xe1a382}, - {0x8134e633, 0xe1a383}, - {0x8134e634, 0xe1a384}, - {0x8134e635, 0xe1a385}, - {0x8134e636, 0xe1a386}, - {0x8134e637, 0xe1a387}, - {0x8134e638, 0xe1a388}, - {0x8134e639, 0xe1a389}, - {0x8134e730, 0xe1a38a}, - {0x8134e731, 0xe1a38b}, - {0x8134e732, 0xe1a38c}, - {0x8134e733, 0xe1a38d}, - {0x8134e734, 0xe1a38e}, - {0x8134e735, 0xe1a38f}, - {0x8134e736, 0xe1a390}, - {0x8134e737, 0xe1a391}, - {0x8134e738, 0xe1a392}, - {0x8134e739, 0xe1a393}, - {0x8134e830, 0xe1a394}, - {0x8134e831, 0xe1a395}, - {0x8134e832, 0xe1a396}, - {0x8134e833, 0xe1a397}, - {0x8134e834, 0xe1a398}, - {0x8134e835, 0xe1a399}, - {0x8134e836, 0xe1a39a}, - {0x8134e837, 0xe1a39b}, - {0x8134e838, 0xe1a39c}, - {0x8134e839, 0xe1a39d}, - {0x8134e930, 0xe1a39e}, - {0x8134e931, 0xe1a39f}, - {0x8134e932, 0xe1a3a0}, - {0x8134e933, 0xe1a3a1}, - {0x8134e934, 0xe1a3a2}, - {0x8134e935, 0xe1a3a3}, - {0x8134e936, 0xe1a3a4}, - {0x8134e937, 0xe1a3a5}, - {0x8134e938, 0xe1a3a6}, - {0x8134e939, 0xe1a3a7}, - {0x8134ea30, 0xe1a3a8}, - {0x8134ea31, 0xe1a3a9}, - {0x8134ea32, 0xe1a3aa}, - {0x8134ea33, 0xe1a3ab}, - {0x8134ea34, 0xe1a3ac}, - {0x8134ea35, 0xe1a3ad}, - {0x8134ea36, 0xe1a3ae}, - {0x8134ea37, 0xe1a3af}, - {0x8134ea38, 0xe1a3b0}, - {0x8134ea39, 0xe1a3b1}, - {0x8134eb30, 0xe1a3b2}, - {0x8134eb31, 0xe1a3b3}, - {0x8134eb32, 0xe1a3b4}, - {0x8134eb33, 0xe1a3b5}, - {0x8134eb34, 0xe1a3b6}, - {0x8134eb35, 0xe1a3b7}, - {0x8134eb36, 0xe1a3b8}, - {0x8134eb37, 0xe1a3b9}, - {0x8134eb38, 0xe1a3ba}, - {0x8134eb39, 0xe1a3bb}, - {0x8134ec30, 0xe1a3bc}, - {0x8134ec31, 0xe1a3bd}, - {0x8134ec32, 0xe1a3be}, - {0x8134ec33, 0xe1a3bf}, - {0x8134ec34, 0xe1a480}, - {0x8134ec35, 0xe1a481}, - {0x8134ec36, 0xe1a482}, - {0x8134ec37, 0xe1a483}, - {0x8134ec38, 0xe1a484}, - {0x8134ec39, 0xe1a485}, - {0x8134ed30, 0xe1a486}, - {0x8134ed31, 0xe1a487}, - {0x8134ed32, 0xe1a488}, - {0x8134ed33, 0xe1a489}, - {0x8134ed34, 0xe1a48a}, - {0x8134ed35, 0xe1a48b}, - {0x8134ed36, 0xe1a48c}, - {0x8134ed37, 0xe1a48d}, - {0x8134ed38, 0xe1a48e}, - {0x8134ed39, 0xe1a48f}, - {0x8134ee30, 0xe1a490}, - {0x8134ee31, 0xe1a491}, - {0x8134ee32, 0xe1a492}, - {0x8134ee33, 0xe1a493}, - {0x8134ee34, 0xe1a494}, - {0x8134ee35, 0xe1a495}, - {0x8134ee36, 0xe1a496}, - {0x8134ee37, 0xe1a497}, - {0x8134ee38, 0xe1a498}, - {0x8134ee39, 0xe1a499}, - {0x8134ef30, 0xe1a49a}, - {0x8134ef31, 0xe1a49b}, - {0x8134ef32, 0xe1a49c}, - {0x8134ef33, 0xe1a49d}, - {0x8134ef34, 0xe1a49e}, - {0x8134ef35, 0xe1a49f}, - {0x8134ef36, 0xe1a4a0}, - {0x8134ef37, 0xe1a4a1}, - {0x8134ef38, 0xe1a4a2}, - {0x8134ef39, 0xe1a4a3}, - {0x8134f030, 0xe1a4a4}, - {0x8134f031, 0xe1a4a5}, - {0x8134f032, 0xe1a4a6}, - {0x8134f033, 0xe1a4a7}, - {0x8134f034, 0xe1a4a8}, - {0x8134f035, 0xe1a4a9}, - {0x8134f036, 0xe1a4aa}, - {0x8134f037, 0xe1a4ab}, - {0x8134f038, 0xe1a4ac}, - {0x8134f039, 0xe1a4ad}, - {0x8134f130, 0xe1a4ae}, - {0x8134f131, 0xe1a4af}, - {0x8134f132, 0xe1a4b0}, - {0x8134f133, 0xe1a4b1}, - {0x8134f134, 0xe1a4b2}, - {0x8134f135, 0xe1a4b3}, - {0x8134f136, 0xe1a4b4}, - {0x8134f137, 0xe1a4b5}, - {0x8134f138, 0xe1a4b6}, - {0x8134f139, 0xe1a4b7}, - {0x8134f230, 0xe1a4b8}, - {0x8134f231, 0xe1a4b9}, - {0x8134f232, 0xe1a4ba}, - {0x8134f233, 0xe1a4bb}, - {0x8134f234, 0xe1a4bc}, - {0x8134f235, 0xe1a4bd}, - {0x8134f236, 0xe1a4be}, - {0x8134f237, 0xe1a4bf}, - {0x8134f238, 0xe1a580}, - {0x8134f239, 0xe1a581}, - {0x8134f330, 0xe1a582}, - {0x8134f331, 0xe1a583}, - {0x8134f332, 0xe1a584}, - {0x8134f333, 0xe1a585}, - {0x8134f334, 0xe1a586}, - {0x8134f335, 0xe1a587}, - {0x8134f336, 0xe1a588}, - {0x8134f337, 0xe1a589}, - {0x8134f338, 0xe1a58a}, - {0x8134f339, 0xe1a58b}, - {0x8134f430, 0xe1a58c}, - {0x8134f431, 0xe1a58d}, - {0x8134f432, 0xe1a58e}, - {0x8134f433, 0xe1a58f}, - {0x8134f434, 0xe1a590}, - {0x8134f435, 0xe1a591}, - {0x8134f436, 0xe1a592}, - {0x8134f437, 0xe1a593}, - {0x8134f438, 0xe1a594}, - {0x8134f439, 0xe1a595}, - {0x8134f530, 0xe1a596}, - {0x8134f531, 0xe1a597}, - {0x8134f532, 0xe1a598}, - {0x8134f533, 0xe1a599}, - {0x8134f534, 0xe1a59a}, - {0x8134f535, 0xe1a59b}, - {0x8134f536, 0xe1a59c}, - {0x8134f537, 0xe1a59d}, - {0x8134f538, 0xe1a59e}, - {0x8134f539, 0xe1a59f}, - {0x8134f630, 0xe1a5a0}, - {0x8134f631, 0xe1a5a1}, - {0x8134f632, 0xe1a5a2}, - {0x8134f633, 0xe1a5a3}, - {0x8134f634, 0xe1a5a4}, - {0x8134f635, 0xe1a5a5}, - {0x8134f636, 0xe1a5a6}, - {0x8134f637, 0xe1a5a7}, - {0x8134f638, 0xe1a5a8}, - {0x8134f639, 0xe1a5a9}, - {0x8134f730, 0xe1a5aa}, - {0x8134f731, 0xe1a5ab}, - {0x8134f732, 0xe1a5ac}, - {0x8134f733, 0xe1a5ad}, - {0x8134f734, 0xe1a5ae}, - {0x8134f735, 0xe1a5af}, - {0x8134f736, 0xe1a5b0}, - {0x8134f737, 0xe1a5b1}, - {0x8134f738, 0xe1a5b2}, - {0x8134f739, 0xe1a5b3}, - {0x8134f830, 0xe1a5b4}, - {0x8134f831, 0xe1a5b5}, - {0x8134f832, 0xe1a5b6}, - {0x8134f833, 0xe1a5b7}, - {0x8134f834, 0xe1a5b8}, - {0x8134f835, 0xe1a5b9}, - {0x8134f836, 0xe1a5ba}, - {0x8134f837, 0xe1a5bb}, - {0x8134f838, 0xe1a5bc}, - {0x8134f839, 0xe1a5bd}, - {0x8134f930, 0xe1a5be}, - {0x8134f931, 0xe1a5bf}, - {0x8134f932, 0xe1a680}, - {0x8134f933, 0xe1a681}, - {0x8134f934, 0xe1a682}, - {0x8134f935, 0xe1a683}, - {0x8134f936, 0xe1a684}, - {0x8134f937, 0xe1a685}, - {0x8134f938, 0xe1a686}, - {0x8134f939, 0xe1a687}, - {0x8134fa30, 0xe1a688}, - {0x8134fa31, 0xe1a689}, - {0x8134fa32, 0xe1a68a}, - {0x8134fa33, 0xe1a68b}, - {0x8134fa34, 0xe1a68c}, - {0x8134fa35, 0xe1a68d}, - {0x8134fa36, 0xe1a68e}, - {0x8134fa37, 0xe1a68f}, - {0x8134fa38, 0xe1a690}, - {0x8134fa39, 0xe1a691}, - {0x8134fb30, 0xe1a692}, - {0x8134fb31, 0xe1a693}, - {0x8134fb32, 0xe1a694}, - {0x8134fb33, 0xe1a695}, - {0x8134fb34, 0xe1a696}, - {0x8134fb35, 0xe1a697}, - {0x8134fb36, 0xe1a698}, - {0x8134fb37, 0xe1a699}, - {0x8134fb38, 0xe1a69a}, - {0x8134fb39, 0xe1a69b}, - {0x8134fc30, 0xe1a69c}, - {0x8134fc31, 0xe1a69d}, - {0x8134fc32, 0xe1a69e}, - {0x8134fc33, 0xe1a69f}, - {0x8134fc34, 0xe1a6a0}, - {0x8134fc35, 0xe1a6a1}, - {0x8134fc36, 0xe1a6a2}, - {0x8134fc37, 0xe1a6a3}, - {0x8134fc38, 0xe1a6a4}, - {0x8134fc39, 0xe1a6a5}, - {0x8134fd30, 0xe1a6a6}, - {0x8134fd31, 0xe1a6a7}, - {0x8134fd32, 0xe1a6a8}, - {0x8134fd33, 0xe1a6a9}, - {0x8134fd34, 0xe1a6aa}, - {0x8134fd35, 0xe1a6ab}, - {0x8134fd36, 0xe1a6ac}, - {0x8134fd37, 0xe1a6ad}, - {0x8134fd38, 0xe1a6ae}, - {0x8134fd39, 0xe1a6af}, - {0x8134fe30, 0xe1a6b0}, - {0x8134fe31, 0xe1a6b1}, - {0x8134fe32, 0xe1a6b2}, - {0x8134fe33, 0xe1a6b3}, - {0x8134fe34, 0xe1a6b4}, - {0x8134fe35, 0xe1a6b5}, - {0x8134fe36, 0xe1a6b6}, - {0x8134fe37, 0xe1a6b7}, - {0x8134fe38, 0xe1a6b8}, - {0x8134fe39, 0xe1a6b9}, - {0x81358130, 0xe1a6ba}, - {0x81358131, 0xe1a6bb}, - {0x81358132, 0xe1a6bc}, - {0x81358133, 0xe1a6bd}, - {0x81358134, 0xe1a6be}, - {0x81358135, 0xe1a6bf}, - {0x81358136, 0xe1a780}, - {0x81358137, 0xe1a781}, - {0x81358138, 0xe1a782}, - {0x81358139, 0xe1a783}, - {0x81358230, 0xe1a784}, - {0x81358231, 0xe1a785}, - {0x81358232, 0xe1a786}, - {0x81358233, 0xe1a787}, - {0x81358234, 0xe1a788}, - {0x81358235, 0xe1a789}, - {0x81358236, 0xe1a78a}, - {0x81358237, 0xe1a78b}, - {0x81358238, 0xe1a78c}, - {0x81358239, 0xe1a78d}, - {0x81358330, 0xe1a78e}, - {0x81358331, 0xe1a78f}, - {0x81358332, 0xe1a790}, - {0x81358333, 0xe1a791}, - {0x81358334, 0xe1a792}, - {0x81358335, 0xe1a793}, - {0x81358336, 0xe1a794}, - {0x81358337, 0xe1a795}, - {0x81358338, 0xe1a796}, - {0x81358339, 0xe1a797}, - {0x81358430, 0xe1a798}, - {0x81358431, 0xe1a799}, - {0x81358432, 0xe1a79a}, - {0x81358433, 0xe1a79b}, - {0x81358434, 0xe1a79c}, - {0x81358435, 0xe1a79d}, - {0x81358436, 0xe1a79e}, - {0x81358437, 0xe1a79f}, - {0x81358438, 0xe1a7a0}, - {0x81358439, 0xe1a7a1}, - {0x81358530, 0xe1a7a2}, - {0x81358531, 0xe1a7a3}, - {0x81358532, 0xe1a7a4}, - {0x81358533, 0xe1a7a5}, - {0x81358534, 0xe1a7a6}, - {0x81358535, 0xe1a7a7}, - {0x81358536, 0xe1a7a8}, - {0x81358537, 0xe1a7a9}, - {0x81358538, 0xe1a7aa}, - {0x81358539, 0xe1a7ab}, - {0x81358630, 0xe1a7ac}, - {0x81358631, 0xe1a7ad}, - {0x81358632, 0xe1a7ae}, - {0x81358633, 0xe1a7af}, - {0x81358634, 0xe1a7b0}, - {0x81358635, 0xe1a7b1}, - {0x81358636, 0xe1a7b2}, - {0x81358637, 0xe1a7b3}, - {0x81358638, 0xe1a7b4}, - {0x81358639, 0xe1a7b5}, - {0x81358730, 0xe1a7b6}, - {0x81358731, 0xe1a7b7}, - {0x81358732, 0xe1a7b8}, - {0x81358733, 0xe1a7b9}, - {0x81358734, 0xe1a7ba}, - {0x81358735, 0xe1a7bb}, - {0x81358736, 0xe1a7bc}, - {0x81358737, 0xe1a7bd}, - {0x81358738, 0xe1a7be}, - {0x81358739, 0xe1a7bf}, - {0x81358830, 0xe1a880}, - {0x81358831, 0xe1a881}, - {0x81358832, 0xe1a882}, - {0x81358833, 0xe1a883}, - {0x81358834, 0xe1a884}, - {0x81358835, 0xe1a885}, - {0x81358836, 0xe1a886}, - {0x81358837, 0xe1a887}, - {0x81358838, 0xe1a888}, - {0x81358839, 0xe1a889}, - {0x81358930, 0xe1a88a}, - {0x81358931, 0xe1a88b}, - {0x81358932, 0xe1a88c}, - {0x81358933, 0xe1a88d}, - {0x81358934, 0xe1a88e}, - {0x81358935, 0xe1a88f}, - {0x81358936, 0xe1a890}, - {0x81358937, 0xe1a891}, - {0x81358938, 0xe1a892}, - {0x81358939, 0xe1a893}, - {0x81358a30, 0xe1a894}, - {0x81358a31, 0xe1a895}, - {0x81358a32, 0xe1a896}, - {0x81358a33, 0xe1a897}, - {0x81358a34, 0xe1a898}, - {0x81358a35, 0xe1a899}, - {0x81358a36, 0xe1a89a}, - {0x81358a37, 0xe1a89b}, - {0x81358a38, 0xe1a89c}, - {0x81358a39, 0xe1a89d}, - {0x81358b30, 0xe1a89e}, - {0x81358b31, 0xe1a89f}, - {0x81358b32, 0xe1a8a0}, - {0x81358b33, 0xe1a8a1}, - {0x81358b34, 0xe1a8a2}, - {0x81358b35, 0xe1a8a3}, - {0x81358b36, 0xe1a8a4}, - {0x81358b37, 0xe1a8a5}, - {0x81358b38, 0xe1a8a6}, - {0x81358b39, 0xe1a8a7}, - {0x81358c30, 0xe1a8a8}, - {0x81358c31, 0xe1a8a9}, - {0x81358c32, 0xe1a8aa}, - {0x81358c33, 0xe1a8ab}, - {0x81358c34, 0xe1a8ac}, - {0x81358c35, 0xe1a8ad}, - {0x81358c36, 0xe1a8ae}, - {0x81358c37, 0xe1a8af}, - {0x81358c38, 0xe1a8b0}, - {0x81358c39, 0xe1a8b1}, - {0x81358d30, 0xe1a8b2}, - {0x81358d31, 0xe1a8b3}, - {0x81358d32, 0xe1a8b4}, - {0x81358d33, 0xe1a8b5}, - {0x81358d34, 0xe1a8b6}, - {0x81358d35, 0xe1a8b7}, - {0x81358d36, 0xe1a8b8}, - {0x81358d37, 0xe1a8b9}, - {0x81358d38, 0xe1a8ba}, - {0x81358d39, 0xe1a8bb}, - {0x81358e30, 0xe1a8bc}, - {0x81358e31, 0xe1a8bd}, - {0x81358e32, 0xe1a8be}, - {0x81358e33, 0xe1a8bf}, - {0x81358e34, 0xe1a980}, - {0x81358e35, 0xe1a981}, - {0x81358e36, 0xe1a982}, - {0x81358e37, 0xe1a983}, - {0x81358e38, 0xe1a984}, - {0x81358e39, 0xe1a985}, - {0x81358f30, 0xe1a986}, - {0x81358f31, 0xe1a987}, - {0x81358f32, 0xe1a988}, - {0x81358f33, 0xe1a989}, - {0x81358f34, 0xe1a98a}, - {0x81358f35, 0xe1a98b}, - {0x81358f36, 0xe1a98c}, - {0x81358f37, 0xe1a98d}, - {0x81358f38, 0xe1a98e}, - {0x81358f39, 0xe1a98f}, - {0x81359030, 0xe1a990}, - {0x81359031, 0xe1a991}, - {0x81359032, 0xe1a992}, - {0x81359033, 0xe1a993}, - {0x81359034, 0xe1a994}, - {0x81359035, 0xe1a995}, - {0x81359036, 0xe1a996}, - {0x81359037, 0xe1a997}, - {0x81359038, 0xe1a998}, - {0x81359039, 0xe1a999}, - {0x81359130, 0xe1a99a}, - {0x81359131, 0xe1a99b}, - {0x81359132, 0xe1a99c}, - {0x81359133, 0xe1a99d}, - {0x81359134, 0xe1a99e}, - {0x81359135, 0xe1a99f}, - {0x81359136, 0xe1a9a0}, - {0x81359137, 0xe1a9a1}, - {0x81359138, 0xe1a9a2}, - {0x81359139, 0xe1a9a3}, - {0x81359230, 0xe1a9a4}, - {0x81359231, 0xe1a9a5}, - {0x81359232, 0xe1a9a6}, - {0x81359233, 0xe1a9a7}, - {0x81359234, 0xe1a9a8}, - {0x81359235, 0xe1a9a9}, - {0x81359236, 0xe1a9aa}, - {0x81359237, 0xe1a9ab}, - {0x81359238, 0xe1a9ac}, - {0x81359239, 0xe1a9ad}, - {0x81359330, 0xe1a9ae}, - {0x81359331, 0xe1a9af}, - {0x81359332, 0xe1a9b0}, - {0x81359333, 0xe1a9b1}, - {0x81359334, 0xe1a9b2}, - {0x81359335, 0xe1a9b3}, - {0x81359336, 0xe1a9b4}, - {0x81359337, 0xe1a9b5}, - {0x81359338, 0xe1a9b6}, - {0x81359339, 0xe1a9b7}, - {0x81359430, 0xe1a9b8}, - {0x81359431, 0xe1a9b9}, - {0x81359432, 0xe1a9ba}, - {0x81359433, 0xe1a9bb}, - {0x81359434, 0xe1a9bc}, - {0x81359435, 0xe1a9bd}, - {0x81359436, 0xe1a9be}, - {0x81359437, 0xe1a9bf}, - {0x81359438, 0xe1aa80}, - {0x81359439, 0xe1aa81}, - {0x81359530, 0xe1aa82}, - {0x81359531, 0xe1aa83}, - {0x81359532, 0xe1aa84}, - {0x81359533, 0xe1aa85}, - {0x81359534, 0xe1aa86}, - {0x81359535, 0xe1aa87}, - {0x81359536, 0xe1aa88}, - {0x81359537, 0xe1aa89}, - {0x81359538, 0xe1aa8a}, - {0x81359539, 0xe1aa8b}, - {0x81359630, 0xe1aa8c}, - {0x81359631, 0xe1aa8d}, - {0x81359632, 0xe1aa8e}, - {0x81359633, 0xe1aa8f}, - {0x81359634, 0xe1aa90}, - {0x81359635, 0xe1aa91}, - {0x81359636, 0xe1aa92}, - {0x81359637, 0xe1aa93}, - {0x81359638, 0xe1aa94}, - {0x81359639, 0xe1aa95}, - {0x81359730, 0xe1aa96}, - {0x81359731, 0xe1aa97}, - {0x81359732, 0xe1aa98}, - {0x81359733, 0xe1aa99}, - {0x81359734, 0xe1aa9a}, - {0x81359735, 0xe1aa9b}, - {0x81359736, 0xe1aa9c}, - {0x81359737, 0xe1aa9d}, - {0x81359738, 0xe1aa9e}, - {0x81359739, 0xe1aa9f}, - {0x81359830, 0xe1aaa0}, - {0x81359831, 0xe1aaa1}, - {0x81359832, 0xe1aaa2}, - {0x81359833, 0xe1aaa3}, - {0x81359834, 0xe1aaa4}, - {0x81359835, 0xe1aaa5}, - {0x81359836, 0xe1aaa6}, - {0x81359837, 0xe1aaa7}, - {0x81359838, 0xe1aaa8}, - {0x81359839, 0xe1aaa9}, - {0x81359930, 0xe1aaaa}, - {0x81359931, 0xe1aaab}, - {0x81359932, 0xe1aaac}, - {0x81359933, 0xe1aaad}, - {0x81359934, 0xe1aaae}, - {0x81359935, 0xe1aaaf}, - {0x81359936, 0xe1aab0}, - {0x81359937, 0xe1aab1}, - {0x81359938, 0xe1aab2}, - {0x81359939, 0xe1aab3}, - {0x81359a30, 0xe1aab4}, - {0x81359a31, 0xe1aab5}, - {0x81359a32, 0xe1aab6}, - {0x81359a33, 0xe1aab7}, - {0x81359a34, 0xe1aab8}, - {0x81359a35, 0xe1aab9}, - {0x81359a36, 0xe1aaba}, - {0x81359a37, 0xe1aabb}, - {0x81359a38, 0xe1aabc}, - {0x81359a39, 0xe1aabd}, - {0x81359b30, 0xe1aabe}, - {0x81359b31, 0xe1aabf}, - {0x81359b32, 0xe1ab80}, - {0x81359b33, 0xe1ab81}, - {0x81359b34, 0xe1ab82}, - {0x81359b35, 0xe1ab83}, - {0x81359b36, 0xe1ab84}, - {0x81359b37, 0xe1ab85}, - {0x81359b38, 0xe1ab86}, - {0x81359b39, 0xe1ab87}, - {0x81359c30, 0xe1ab88}, - {0x81359c31, 0xe1ab89}, - {0x81359c32, 0xe1ab8a}, - {0x81359c33, 0xe1ab8b}, - {0x81359c34, 0xe1ab8c}, - {0x81359c35, 0xe1ab8d}, - {0x81359c36, 0xe1ab8e}, - {0x81359c37, 0xe1ab8f}, - {0x81359c38, 0xe1ab90}, - {0x81359c39, 0xe1ab91}, - {0x81359d30, 0xe1ab92}, - {0x81359d31, 0xe1ab93}, - {0x81359d32, 0xe1ab94}, - {0x81359d33, 0xe1ab95}, - {0x81359d34, 0xe1ab96}, - {0x81359d35, 0xe1ab97}, - {0x81359d36, 0xe1ab98}, - {0x81359d37, 0xe1ab99}, - {0x81359d38, 0xe1ab9a}, - {0x81359d39, 0xe1ab9b}, - {0x81359e30, 0xe1ab9c}, - {0x81359e31, 0xe1ab9d}, - {0x81359e32, 0xe1ab9e}, - {0x81359e33, 0xe1ab9f}, - {0x81359e34, 0xe1aba0}, - {0x81359e35, 0xe1aba1}, - {0x81359e36, 0xe1aba2}, - {0x81359e37, 0xe1aba3}, - {0x81359e38, 0xe1aba4}, - {0x81359e39, 0xe1aba5}, - {0x81359f30, 0xe1aba6}, - {0x81359f31, 0xe1aba7}, - {0x81359f32, 0xe1aba8}, - {0x81359f33, 0xe1aba9}, - {0x81359f34, 0xe1abaa}, - {0x81359f35, 0xe1abab}, - {0x81359f36, 0xe1abac}, - {0x81359f37, 0xe1abad}, - {0x81359f38, 0xe1abae}, - {0x81359f39, 0xe1abaf}, - {0x8135a030, 0xe1abb0}, - {0x8135a031, 0xe1abb1}, - {0x8135a032, 0xe1abb2}, - {0x8135a033, 0xe1abb3}, - {0x8135a034, 0xe1abb4}, - {0x8135a035, 0xe1abb5}, - {0x8135a036, 0xe1abb6}, - {0x8135a037, 0xe1abb7}, - {0x8135a038, 0xe1abb8}, - {0x8135a039, 0xe1abb9}, - {0x8135a130, 0xe1abba}, - {0x8135a131, 0xe1abbb}, - {0x8135a132, 0xe1abbc}, - {0x8135a133, 0xe1abbd}, - {0x8135a134, 0xe1abbe}, - {0x8135a135, 0xe1abbf}, - {0x8135a136, 0xe1ac80}, - {0x8135a137, 0xe1ac81}, - {0x8135a138, 0xe1ac82}, - {0x8135a139, 0xe1ac83}, - {0x8135a230, 0xe1ac84}, - {0x8135a231, 0xe1ac85}, - {0x8135a232, 0xe1ac86}, - {0x8135a233, 0xe1ac87}, - {0x8135a234, 0xe1ac88}, - {0x8135a235, 0xe1ac89}, - {0x8135a236, 0xe1ac8a}, - {0x8135a237, 0xe1ac8b}, - {0x8135a238, 0xe1ac8c}, - {0x8135a239, 0xe1ac8d}, - {0x8135a330, 0xe1ac8e}, - {0x8135a331, 0xe1ac8f}, - {0x8135a332, 0xe1ac90}, - {0x8135a333, 0xe1ac91}, - {0x8135a334, 0xe1ac92}, - {0x8135a335, 0xe1ac93}, - {0x8135a336, 0xe1ac94}, - {0x8135a337, 0xe1ac95}, - {0x8135a338, 0xe1ac96}, - {0x8135a339, 0xe1ac97}, - {0x8135a430, 0xe1ac98}, - {0x8135a431, 0xe1ac99}, - {0x8135a432, 0xe1ac9a}, - {0x8135a433, 0xe1ac9b}, - {0x8135a434, 0xe1ac9c}, - {0x8135a435, 0xe1ac9d}, - {0x8135a436, 0xe1ac9e}, - {0x8135a437, 0xe1ac9f}, - {0x8135a438, 0xe1aca0}, - {0x8135a439, 0xe1aca1}, - {0x8135a530, 0xe1aca2}, - {0x8135a531, 0xe1aca3}, - {0x8135a532, 0xe1aca4}, - {0x8135a533, 0xe1aca5}, - {0x8135a534, 0xe1aca6}, - {0x8135a535, 0xe1aca7}, - {0x8135a536, 0xe1aca8}, - {0x8135a537, 0xe1aca9}, - {0x8135a538, 0xe1acaa}, - {0x8135a539, 0xe1acab}, - {0x8135a630, 0xe1acac}, - {0x8135a631, 0xe1acad}, - {0x8135a632, 0xe1acae}, - {0x8135a633, 0xe1acaf}, - {0x8135a634, 0xe1acb0}, - {0x8135a635, 0xe1acb1}, - {0x8135a636, 0xe1acb2}, - {0x8135a637, 0xe1acb3}, - {0x8135a638, 0xe1acb4}, - {0x8135a639, 0xe1acb5}, - {0x8135a730, 0xe1acb6}, - {0x8135a731, 0xe1acb7}, - {0x8135a732, 0xe1acb8}, - {0x8135a733, 0xe1acb9}, - {0x8135a734, 0xe1acba}, - {0x8135a735, 0xe1acbb}, - {0x8135a736, 0xe1acbc}, - {0x8135a737, 0xe1acbd}, - {0x8135a738, 0xe1acbe}, - {0x8135a739, 0xe1acbf}, - {0x8135a830, 0xe1ad80}, - {0x8135a831, 0xe1ad81}, - {0x8135a832, 0xe1ad82}, - {0x8135a833, 0xe1ad83}, - {0x8135a834, 0xe1ad84}, - {0x8135a835, 0xe1ad85}, - {0x8135a836, 0xe1ad86}, - {0x8135a837, 0xe1ad87}, - {0x8135a838, 0xe1ad88}, - {0x8135a839, 0xe1ad89}, - {0x8135a930, 0xe1ad8a}, - {0x8135a931, 0xe1ad8b}, - {0x8135a932, 0xe1ad8c}, - {0x8135a933, 0xe1ad8d}, - {0x8135a934, 0xe1ad8e}, - {0x8135a935, 0xe1ad8f}, - {0x8135a936, 0xe1ad90}, - {0x8135a937, 0xe1ad91}, - {0x8135a938, 0xe1ad92}, - {0x8135a939, 0xe1ad93}, - {0x8135aa30, 0xe1ad94}, - {0x8135aa31, 0xe1ad95}, - {0x8135aa32, 0xe1ad96}, - {0x8135aa33, 0xe1ad97}, - {0x8135aa34, 0xe1ad98}, - {0x8135aa35, 0xe1ad99}, - {0x8135aa36, 0xe1ad9a}, - {0x8135aa37, 0xe1ad9b}, - {0x8135aa38, 0xe1ad9c}, - {0x8135aa39, 0xe1ad9d}, - {0x8135ab30, 0xe1ad9e}, - {0x8135ab31, 0xe1ad9f}, - {0x8135ab32, 0xe1ada0}, - {0x8135ab33, 0xe1ada1}, - {0x8135ab34, 0xe1ada2}, - {0x8135ab35, 0xe1ada3}, - {0x8135ab36, 0xe1ada4}, - {0x8135ab37, 0xe1ada5}, - {0x8135ab38, 0xe1ada6}, - {0x8135ab39, 0xe1ada7}, - {0x8135ac30, 0xe1ada8}, - {0x8135ac31, 0xe1ada9}, - {0x8135ac32, 0xe1adaa}, - {0x8135ac33, 0xe1adab}, - {0x8135ac34, 0xe1adac}, - {0x8135ac35, 0xe1adad}, - {0x8135ac36, 0xe1adae}, - {0x8135ac37, 0xe1adaf}, - {0x8135ac38, 0xe1adb0}, - {0x8135ac39, 0xe1adb1}, - {0x8135ad30, 0xe1adb2}, - {0x8135ad31, 0xe1adb3}, - {0x8135ad32, 0xe1adb4}, - {0x8135ad33, 0xe1adb5}, - {0x8135ad34, 0xe1adb6}, - {0x8135ad35, 0xe1adb7}, - {0x8135ad36, 0xe1adb8}, - {0x8135ad37, 0xe1adb9}, - {0x8135ad38, 0xe1adba}, - {0x8135ad39, 0xe1adbb}, - {0x8135ae30, 0xe1adbc}, - {0x8135ae31, 0xe1adbd}, - {0x8135ae32, 0xe1adbe}, - {0x8135ae33, 0xe1adbf}, - {0x8135ae34, 0xe1ae80}, - {0x8135ae35, 0xe1ae81}, - {0x8135ae36, 0xe1ae82}, - {0x8135ae37, 0xe1ae83}, - {0x8135ae38, 0xe1ae84}, - {0x8135ae39, 0xe1ae85}, - {0x8135af30, 0xe1ae86}, - {0x8135af31, 0xe1ae87}, - {0x8135af32, 0xe1ae88}, - {0x8135af33, 0xe1ae89}, - {0x8135af34, 0xe1ae8a}, - {0x8135af35, 0xe1ae8b}, - {0x8135af36, 0xe1ae8c}, - {0x8135af37, 0xe1ae8d}, - {0x8135af38, 0xe1ae8e}, - {0x8135af39, 0xe1ae8f}, - {0x8135b030, 0xe1ae90}, - {0x8135b031, 0xe1ae91}, - {0x8135b032, 0xe1ae92}, - {0x8135b033, 0xe1ae93}, - {0x8135b034, 0xe1ae94}, - {0x8135b035, 0xe1ae95}, - {0x8135b036, 0xe1ae96}, - {0x8135b037, 0xe1ae97}, - {0x8135b038, 0xe1ae98}, - {0x8135b039, 0xe1ae99}, - {0x8135b130, 0xe1ae9a}, - {0x8135b131, 0xe1ae9b}, - {0x8135b132, 0xe1ae9c}, - {0x8135b133, 0xe1ae9d}, - {0x8135b134, 0xe1ae9e}, - {0x8135b135, 0xe1ae9f}, - {0x8135b136, 0xe1aea0}, - {0x8135b137, 0xe1aea1}, - {0x8135b138, 0xe1aea2}, - {0x8135b139, 0xe1aea3}, - {0x8135b230, 0xe1aea4}, - {0x8135b231, 0xe1aea5}, - {0x8135b232, 0xe1aea6}, - {0x8135b233, 0xe1aea7}, - {0x8135b234, 0xe1aea8}, - {0x8135b235, 0xe1aea9}, - {0x8135b236, 0xe1aeaa}, - {0x8135b237, 0xe1aeab}, - {0x8135b238, 0xe1aeac}, - {0x8135b239, 0xe1aead}, - {0x8135b330, 0xe1aeae}, - {0x8135b331, 0xe1aeaf}, - {0x8135b332, 0xe1aeb0}, - {0x8135b333, 0xe1aeb1}, - {0x8135b334, 0xe1aeb2}, - {0x8135b335, 0xe1aeb3}, - {0x8135b336, 0xe1aeb4}, - {0x8135b337, 0xe1aeb5}, - {0x8135b338, 0xe1aeb6}, - {0x8135b339, 0xe1aeb7}, - {0x8135b430, 0xe1aeb8}, - {0x8135b431, 0xe1aeb9}, - {0x8135b432, 0xe1aeba}, - {0x8135b433, 0xe1aebb}, - {0x8135b434, 0xe1aebc}, - {0x8135b435, 0xe1aebd}, - {0x8135b436, 0xe1aebe}, - {0x8135b437, 0xe1aebf}, - {0x8135b438, 0xe1af80}, - {0x8135b439, 0xe1af81}, - {0x8135b530, 0xe1af82}, - {0x8135b531, 0xe1af83}, - {0x8135b532, 0xe1af84}, - {0x8135b533, 0xe1af85}, - {0x8135b534, 0xe1af86}, - {0x8135b535, 0xe1af87}, - {0x8135b536, 0xe1af88}, - {0x8135b537, 0xe1af89}, - {0x8135b538, 0xe1af8a}, - {0x8135b539, 0xe1af8b}, - {0x8135b630, 0xe1af8c}, - {0x8135b631, 0xe1af8d}, - {0x8135b632, 0xe1af8e}, - {0x8135b633, 0xe1af8f}, - {0x8135b634, 0xe1af90}, - {0x8135b635, 0xe1af91}, - {0x8135b636, 0xe1af92}, - {0x8135b637, 0xe1af93}, - {0x8135b638, 0xe1af94}, - {0x8135b639, 0xe1af95}, - {0x8135b730, 0xe1af96}, - {0x8135b731, 0xe1af97}, - {0x8135b732, 0xe1af98}, - {0x8135b733, 0xe1af99}, - {0x8135b734, 0xe1af9a}, - {0x8135b735, 0xe1af9b}, - {0x8135b736, 0xe1af9c}, - {0x8135b737, 0xe1af9d}, - {0x8135b738, 0xe1af9e}, - {0x8135b739, 0xe1af9f}, - {0x8135b830, 0xe1afa0}, - {0x8135b831, 0xe1afa1}, - {0x8135b832, 0xe1afa2}, - {0x8135b833, 0xe1afa3}, - {0x8135b834, 0xe1afa4}, - {0x8135b835, 0xe1afa5}, - {0x8135b836, 0xe1afa6}, - {0x8135b837, 0xe1afa7}, - {0x8135b838, 0xe1afa8}, - {0x8135b839, 0xe1afa9}, - {0x8135b930, 0xe1afaa}, - {0x8135b931, 0xe1afab}, - {0x8135b932, 0xe1afac}, - {0x8135b933, 0xe1afad}, - {0x8135b934, 0xe1afae}, - {0x8135b935, 0xe1afaf}, - {0x8135b936, 0xe1afb0}, - {0x8135b937, 0xe1afb1}, - {0x8135b938, 0xe1afb2}, - {0x8135b939, 0xe1afb3}, - {0x8135ba30, 0xe1afb4}, - {0x8135ba31, 0xe1afb5}, - {0x8135ba32, 0xe1afb6}, - {0x8135ba33, 0xe1afb7}, - {0x8135ba34, 0xe1afb8}, - {0x8135ba35, 0xe1afb9}, - {0x8135ba36, 0xe1afba}, - {0x8135ba37, 0xe1afbb}, - {0x8135ba38, 0xe1afbc}, - {0x8135ba39, 0xe1afbd}, - {0x8135bb30, 0xe1afbe}, - {0x8135bb31, 0xe1afbf}, - {0x8135bb32, 0xe1b080}, - {0x8135bb33, 0xe1b081}, - {0x8135bb34, 0xe1b082}, - {0x8135bb35, 0xe1b083}, - {0x8135bb36, 0xe1b084}, - {0x8135bb37, 0xe1b085}, - {0x8135bb38, 0xe1b086}, - {0x8135bb39, 0xe1b087}, - {0x8135bc30, 0xe1b088}, - {0x8135bc31, 0xe1b089}, - {0x8135bc32, 0xe1b08a}, - {0x8135bc33, 0xe1b08b}, - {0x8135bc34, 0xe1b08c}, - {0x8135bc35, 0xe1b08d}, - {0x8135bc36, 0xe1b08e}, - {0x8135bc37, 0xe1b08f}, - {0x8135bc38, 0xe1b090}, - {0x8135bc39, 0xe1b091}, - {0x8135bd30, 0xe1b092}, - {0x8135bd31, 0xe1b093}, - {0x8135bd32, 0xe1b094}, - {0x8135bd33, 0xe1b095}, - {0x8135bd34, 0xe1b096}, - {0x8135bd35, 0xe1b097}, - {0x8135bd36, 0xe1b098}, - {0x8135bd37, 0xe1b099}, - {0x8135bd38, 0xe1b09a}, - {0x8135bd39, 0xe1b09b}, - {0x8135be30, 0xe1b09c}, - {0x8135be31, 0xe1b09d}, - {0x8135be32, 0xe1b09e}, - {0x8135be33, 0xe1b09f}, - {0x8135be34, 0xe1b0a0}, - {0x8135be35, 0xe1b0a1}, - {0x8135be36, 0xe1b0a2}, - {0x8135be37, 0xe1b0a3}, - {0x8135be38, 0xe1b0a4}, - {0x8135be39, 0xe1b0a5}, - {0x8135bf30, 0xe1b0a6}, - {0x8135bf31, 0xe1b0a7}, - {0x8135bf32, 0xe1b0a8}, - {0x8135bf33, 0xe1b0a9}, - {0x8135bf34, 0xe1b0aa}, - {0x8135bf35, 0xe1b0ab}, - {0x8135bf36, 0xe1b0ac}, - {0x8135bf37, 0xe1b0ad}, - {0x8135bf38, 0xe1b0ae}, - {0x8135bf39, 0xe1b0af}, - {0x8135c030, 0xe1b0b0}, - {0x8135c031, 0xe1b0b1}, - {0x8135c032, 0xe1b0b2}, - {0x8135c033, 0xe1b0b3}, - {0x8135c034, 0xe1b0b4}, - {0x8135c035, 0xe1b0b5}, - {0x8135c036, 0xe1b0b6}, - {0x8135c037, 0xe1b0b7}, - {0x8135c038, 0xe1b0b8}, - {0x8135c039, 0xe1b0b9}, - {0x8135c130, 0xe1b0ba}, - {0x8135c131, 0xe1b0bb}, - {0x8135c132, 0xe1b0bc}, - {0x8135c133, 0xe1b0bd}, - {0x8135c134, 0xe1b0be}, - {0x8135c135, 0xe1b0bf}, - {0x8135c136, 0xe1b180}, - {0x8135c137, 0xe1b181}, - {0x8135c138, 0xe1b182}, - {0x8135c139, 0xe1b183}, - {0x8135c230, 0xe1b184}, - {0x8135c231, 0xe1b185}, - {0x8135c232, 0xe1b186}, - {0x8135c233, 0xe1b187}, - {0x8135c234, 0xe1b188}, - {0x8135c235, 0xe1b189}, - {0x8135c236, 0xe1b18a}, - {0x8135c237, 0xe1b18b}, - {0x8135c238, 0xe1b18c}, - {0x8135c239, 0xe1b18d}, - {0x8135c330, 0xe1b18e}, - {0x8135c331, 0xe1b18f}, - {0x8135c332, 0xe1b190}, - {0x8135c333, 0xe1b191}, - {0x8135c334, 0xe1b192}, - {0x8135c335, 0xe1b193}, - {0x8135c336, 0xe1b194}, - {0x8135c337, 0xe1b195}, - {0x8135c338, 0xe1b196}, - {0x8135c339, 0xe1b197}, - {0x8135c430, 0xe1b198}, - {0x8135c431, 0xe1b199}, - {0x8135c432, 0xe1b19a}, - {0x8135c433, 0xe1b19b}, - {0x8135c434, 0xe1b19c}, - {0x8135c435, 0xe1b19d}, - {0x8135c436, 0xe1b19e}, - {0x8135c437, 0xe1b19f}, - {0x8135c438, 0xe1b1a0}, - {0x8135c439, 0xe1b1a1}, - {0x8135c530, 0xe1b1a2}, - {0x8135c531, 0xe1b1a3}, - {0x8135c532, 0xe1b1a4}, - {0x8135c533, 0xe1b1a5}, - {0x8135c534, 0xe1b1a6}, - {0x8135c535, 0xe1b1a7}, - {0x8135c536, 0xe1b1a8}, - {0x8135c537, 0xe1b1a9}, - {0x8135c538, 0xe1b1aa}, - {0x8135c539, 0xe1b1ab}, - {0x8135c630, 0xe1b1ac}, - {0x8135c631, 0xe1b1ad}, - {0x8135c632, 0xe1b1ae}, - {0x8135c633, 0xe1b1af}, - {0x8135c634, 0xe1b1b0}, - {0x8135c635, 0xe1b1b1}, - {0x8135c636, 0xe1b1b2}, - {0x8135c637, 0xe1b1b3}, - {0x8135c638, 0xe1b1b4}, - {0x8135c639, 0xe1b1b5}, - {0x8135c730, 0xe1b1b6}, - {0x8135c731, 0xe1b1b7}, - {0x8135c732, 0xe1b1b8}, - {0x8135c733, 0xe1b1b9}, - {0x8135c734, 0xe1b1ba}, - {0x8135c735, 0xe1b1bb}, - {0x8135c736, 0xe1b1bc}, - {0x8135c737, 0xe1b1bd}, - {0x8135c738, 0xe1b1be}, - {0x8135c739, 0xe1b1bf}, - {0x8135c830, 0xe1b280}, - {0x8135c831, 0xe1b281}, - {0x8135c832, 0xe1b282}, - {0x8135c833, 0xe1b283}, - {0x8135c834, 0xe1b284}, - {0x8135c835, 0xe1b285}, - {0x8135c836, 0xe1b286}, - {0x8135c837, 0xe1b287}, - {0x8135c838, 0xe1b288}, - {0x8135c839, 0xe1b289}, - {0x8135c930, 0xe1b28a}, - {0x8135c931, 0xe1b28b}, - {0x8135c932, 0xe1b28c}, - {0x8135c933, 0xe1b28d}, - {0x8135c934, 0xe1b28e}, - {0x8135c935, 0xe1b28f}, - {0x8135c936, 0xe1b290}, - {0x8135c937, 0xe1b291}, - {0x8135c938, 0xe1b292}, - {0x8135c939, 0xe1b293}, - {0x8135ca30, 0xe1b294}, - {0x8135ca31, 0xe1b295}, - {0x8135ca32, 0xe1b296}, - {0x8135ca33, 0xe1b297}, - {0x8135ca34, 0xe1b298}, - {0x8135ca35, 0xe1b299}, - {0x8135ca36, 0xe1b29a}, - {0x8135ca37, 0xe1b29b}, - {0x8135ca38, 0xe1b29c}, - {0x8135ca39, 0xe1b29d}, - {0x8135cb30, 0xe1b29e}, - {0x8135cb31, 0xe1b29f}, - {0x8135cb32, 0xe1b2a0}, - {0x8135cb33, 0xe1b2a1}, - {0x8135cb34, 0xe1b2a2}, - {0x8135cb35, 0xe1b2a3}, - {0x8135cb36, 0xe1b2a4}, - {0x8135cb37, 0xe1b2a5}, - {0x8135cb38, 0xe1b2a6}, - {0x8135cb39, 0xe1b2a7}, - {0x8135cc30, 0xe1b2a8}, - {0x8135cc31, 0xe1b2a9}, - {0x8135cc32, 0xe1b2aa}, - {0x8135cc33, 0xe1b2ab}, - {0x8135cc34, 0xe1b2ac}, - {0x8135cc35, 0xe1b2ad}, - {0x8135cc36, 0xe1b2ae}, - {0x8135cc37, 0xe1b2af}, - {0x8135cc38, 0xe1b2b0}, - {0x8135cc39, 0xe1b2b1}, - {0x8135cd30, 0xe1b2b2}, - {0x8135cd31, 0xe1b2b3}, - {0x8135cd32, 0xe1b2b4}, - {0x8135cd33, 0xe1b2b5}, - {0x8135cd34, 0xe1b2b6}, - {0x8135cd35, 0xe1b2b7}, - {0x8135cd36, 0xe1b2b8}, - {0x8135cd37, 0xe1b2b9}, - {0x8135cd38, 0xe1b2ba}, - {0x8135cd39, 0xe1b2bb}, - {0x8135ce30, 0xe1b2bc}, - {0x8135ce31, 0xe1b2bd}, - {0x8135ce32, 0xe1b2be}, - {0x8135ce33, 0xe1b2bf}, - {0x8135ce34, 0xe1b380}, - {0x8135ce35, 0xe1b381}, - {0x8135ce36, 0xe1b382}, - {0x8135ce37, 0xe1b383}, - {0x8135ce38, 0xe1b384}, - {0x8135ce39, 0xe1b385}, - {0x8135cf30, 0xe1b386}, - {0x8135cf31, 0xe1b387}, - {0x8135cf32, 0xe1b388}, - {0x8135cf33, 0xe1b389}, - {0x8135cf34, 0xe1b38a}, - {0x8135cf35, 0xe1b38b}, - {0x8135cf36, 0xe1b38c}, - {0x8135cf37, 0xe1b38d}, - {0x8135cf38, 0xe1b38e}, - {0x8135cf39, 0xe1b38f}, - {0x8135d030, 0xe1b390}, - {0x8135d031, 0xe1b391}, - {0x8135d032, 0xe1b392}, - {0x8135d033, 0xe1b393}, - {0x8135d034, 0xe1b394}, - {0x8135d035, 0xe1b395}, - {0x8135d036, 0xe1b396}, - {0x8135d037, 0xe1b397}, - {0x8135d038, 0xe1b398}, - {0x8135d039, 0xe1b399}, - {0x8135d130, 0xe1b39a}, - {0x8135d131, 0xe1b39b}, - {0x8135d132, 0xe1b39c}, - {0x8135d133, 0xe1b39d}, - {0x8135d134, 0xe1b39e}, - {0x8135d135, 0xe1b39f}, - {0x8135d136, 0xe1b3a0}, - {0x8135d137, 0xe1b3a1}, - {0x8135d138, 0xe1b3a2}, - {0x8135d139, 0xe1b3a3}, - {0x8135d230, 0xe1b3a4}, - {0x8135d231, 0xe1b3a5}, - {0x8135d232, 0xe1b3a6}, - {0x8135d233, 0xe1b3a7}, - {0x8135d234, 0xe1b3a8}, - {0x8135d235, 0xe1b3a9}, - {0x8135d236, 0xe1b3aa}, - {0x8135d237, 0xe1b3ab}, - {0x8135d238, 0xe1b3ac}, - {0x8135d239, 0xe1b3ad}, - {0x8135d330, 0xe1b3ae}, - {0x8135d331, 0xe1b3af}, - {0x8135d332, 0xe1b3b0}, - {0x8135d333, 0xe1b3b1}, - {0x8135d334, 0xe1b3b2}, - {0x8135d335, 0xe1b3b3}, - {0x8135d336, 0xe1b3b4}, - {0x8135d337, 0xe1b3b5}, - {0x8135d338, 0xe1b3b6}, - {0x8135d339, 0xe1b3b7}, - {0x8135d430, 0xe1b3b8}, - {0x8135d431, 0xe1b3b9}, - {0x8135d432, 0xe1b3ba}, - {0x8135d433, 0xe1b3bb}, - {0x8135d434, 0xe1b3bc}, - {0x8135d435, 0xe1b3bd}, - {0x8135d436, 0xe1b3be}, - {0x8135d437, 0xe1b3bf}, - {0x8135d438, 0xe1b480}, - {0x8135d439, 0xe1b481}, - {0x8135d530, 0xe1b482}, - {0x8135d531, 0xe1b483}, - {0x8135d532, 0xe1b484}, - {0x8135d533, 0xe1b485}, - {0x8135d534, 0xe1b486}, - {0x8135d535, 0xe1b487}, - {0x8135d536, 0xe1b488}, - {0x8135d537, 0xe1b489}, - {0x8135d538, 0xe1b48a}, - {0x8135d539, 0xe1b48b}, - {0x8135d630, 0xe1b48c}, - {0x8135d631, 0xe1b48d}, - {0x8135d632, 0xe1b48e}, - {0x8135d633, 0xe1b48f}, - {0x8135d634, 0xe1b490}, - {0x8135d635, 0xe1b491}, - {0x8135d636, 0xe1b492}, - {0x8135d637, 0xe1b493}, - {0x8135d638, 0xe1b494}, - {0x8135d639, 0xe1b495}, - {0x8135d730, 0xe1b496}, - {0x8135d731, 0xe1b497}, - {0x8135d732, 0xe1b498}, - {0x8135d733, 0xe1b499}, - {0x8135d734, 0xe1b49a}, - {0x8135d735, 0xe1b49b}, - {0x8135d736, 0xe1b49c}, - {0x8135d737, 0xe1b49d}, - {0x8135d738, 0xe1b49e}, - {0x8135d739, 0xe1b49f}, - {0x8135d830, 0xe1b4a0}, - {0x8135d831, 0xe1b4a1}, - {0x8135d832, 0xe1b4a2}, - {0x8135d833, 0xe1b4a3}, - {0x8135d834, 0xe1b4a4}, - {0x8135d835, 0xe1b4a5}, - {0x8135d836, 0xe1b4a6}, - {0x8135d837, 0xe1b4a7}, - {0x8135d838, 0xe1b4a8}, - {0x8135d839, 0xe1b4a9}, - {0x8135d930, 0xe1b4aa}, - {0x8135d931, 0xe1b4ab}, - {0x8135d932, 0xe1b4ac}, - {0x8135d933, 0xe1b4ad}, - {0x8135d934, 0xe1b4ae}, - {0x8135d935, 0xe1b4af}, - {0x8135d936, 0xe1b4b0}, - {0x8135d937, 0xe1b4b1}, - {0x8135d938, 0xe1b4b2}, - {0x8135d939, 0xe1b4b3}, - {0x8135da30, 0xe1b4b4}, - {0x8135da31, 0xe1b4b5}, - {0x8135da32, 0xe1b4b6}, - {0x8135da33, 0xe1b4b7}, - {0x8135da34, 0xe1b4b8}, - {0x8135da35, 0xe1b4b9}, - {0x8135da36, 0xe1b4ba}, - {0x8135da37, 0xe1b4bb}, - {0x8135da38, 0xe1b4bc}, - {0x8135da39, 0xe1b4bd}, - {0x8135db30, 0xe1b4be}, - {0x8135db31, 0xe1b4bf}, - {0x8135db32, 0xe1b580}, - {0x8135db33, 0xe1b581}, - {0x8135db34, 0xe1b582}, - {0x8135db35, 0xe1b583}, - {0x8135db36, 0xe1b584}, - {0x8135db37, 0xe1b585}, - {0x8135db38, 0xe1b586}, - {0x8135db39, 0xe1b587}, - {0x8135dc30, 0xe1b588}, - {0x8135dc31, 0xe1b589}, - {0x8135dc32, 0xe1b58a}, - {0x8135dc33, 0xe1b58b}, - {0x8135dc34, 0xe1b58c}, - {0x8135dc35, 0xe1b58d}, - {0x8135dc36, 0xe1b58e}, - {0x8135dc37, 0xe1b58f}, - {0x8135dc38, 0xe1b590}, - {0x8135dc39, 0xe1b591}, - {0x8135dd30, 0xe1b592}, - {0x8135dd31, 0xe1b593}, - {0x8135dd32, 0xe1b594}, - {0x8135dd33, 0xe1b595}, - {0x8135dd34, 0xe1b596}, - {0x8135dd35, 0xe1b597}, - {0x8135dd36, 0xe1b598}, - {0x8135dd37, 0xe1b599}, - {0x8135dd38, 0xe1b59a}, - {0x8135dd39, 0xe1b59b}, - {0x8135de30, 0xe1b59c}, - {0x8135de31, 0xe1b59d}, - {0x8135de32, 0xe1b59e}, - {0x8135de33, 0xe1b59f}, - {0x8135de34, 0xe1b5a0}, - {0x8135de35, 0xe1b5a1}, - {0x8135de36, 0xe1b5a2}, - {0x8135de37, 0xe1b5a3}, - {0x8135de38, 0xe1b5a4}, - {0x8135de39, 0xe1b5a5}, - {0x8135df30, 0xe1b5a6}, - {0x8135df31, 0xe1b5a7}, - {0x8135df32, 0xe1b5a8}, - {0x8135df33, 0xe1b5a9}, - {0x8135df34, 0xe1b5aa}, - {0x8135df35, 0xe1b5ab}, - {0x8135df36, 0xe1b5ac}, - {0x8135df37, 0xe1b5ad}, - {0x8135df38, 0xe1b5ae}, - {0x8135df39, 0xe1b5af}, - {0x8135e030, 0xe1b5b0}, - {0x8135e031, 0xe1b5b1}, - {0x8135e032, 0xe1b5b2}, - {0x8135e033, 0xe1b5b3}, - {0x8135e034, 0xe1b5b4}, - {0x8135e035, 0xe1b5b5}, - {0x8135e036, 0xe1b5b6}, - {0x8135e037, 0xe1b5b7}, - {0x8135e038, 0xe1b5b8}, - {0x8135e039, 0xe1b5b9}, - {0x8135e130, 0xe1b5ba}, - {0x8135e131, 0xe1b5bb}, - {0x8135e132, 0xe1b5bc}, - {0x8135e133, 0xe1b5bd}, - {0x8135e134, 0xe1b5be}, - {0x8135e135, 0xe1b5bf}, - {0x8135e136, 0xe1b680}, - {0x8135e137, 0xe1b681}, - {0x8135e138, 0xe1b682}, - {0x8135e139, 0xe1b683}, - {0x8135e230, 0xe1b684}, - {0x8135e231, 0xe1b685}, - {0x8135e232, 0xe1b686}, - {0x8135e233, 0xe1b687}, - {0x8135e234, 0xe1b688}, - {0x8135e235, 0xe1b689}, - {0x8135e236, 0xe1b68a}, - {0x8135e237, 0xe1b68b}, - {0x8135e238, 0xe1b68c}, - {0x8135e239, 0xe1b68d}, - {0x8135e330, 0xe1b68e}, - {0x8135e331, 0xe1b68f}, - {0x8135e332, 0xe1b690}, - {0x8135e333, 0xe1b691}, - {0x8135e334, 0xe1b692}, - {0x8135e335, 0xe1b693}, - {0x8135e336, 0xe1b694}, - {0x8135e337, 0xe1b695}, - {0x8135e338, 0xe1b696}, - {0x8135e339, 0xe1b697}, - {0x8135e430, 0xe1b698}, - {0x8135e431, 0xe1b699}, - {0x8135e432, 0xe1b69a}, - {0x8135e433, 0xe1b69b}, - {0x8135e434, 0xe1b69c}, - {0x8135e435, 0xe1b69d}, - {0x8135e436, 0xe1b69e}, - {0x8135e437, 0xe1b69f}, - {0x8135e438, 0xe1b6a0}, - {0x8135e439, 0xe1b6a1}, - {0x8135e530, 0xe1b6a2}, - {0x8135e531, 0xe1b6a3}, - {0x8135e532, 0xe1b6a4}, - {0x8135e533, 0xe1b6a5}, - {0x8135e534, 0xe1b6a6}, - {0x8135e535, 0xe1b6a7}, - {0x8135e536, 0xe1b6a8}, - {0x8135e537, 0xe1b6a9}, - {0x8135e538, 0xe1b6aa}, - {0x8135e539, 0xe1b6ab}, - {0x8135e630, 0xe1b6ac}, - {0x8135e631, 0xe1b6ad}, - {0x8135e632, 0xe1b6ae}, - {0x8135e633, 0xe1b6af}, - {0x8135e634, 0xe1b6b0}, - {0x8135e635, 0xe1b6b1}, - {0x8135e636, 0xe1b6b2}, - {0x8135e637, 0xe1b6b3}, - {0x8135e638, 0xe1b6b4}, - {0x8135e639, 0xe1b6b5}, - {0x8135e730, 0xe1b6b6}, - {0x8135e731, 0xe1b6b7}, - {0x8135e732, 0xe1b6b8}, - {0x8135e733, 0xe1b6b9}, - {0x8135e734, 0xe1b6ba}, - {0x8135e735, 0xe1b6bb}, - {0x8135e736, 0xe1b6bc}, - {0x8135e737, 0xe1b6bd}, - {0x8135e738, 0xe1b6be}, - {0x8135e739, 0xe1b6bf}, - {0x8135e830, 0xe1b780}, - {0x8135e831, 0xe1b781}, - {0x8135e832, 0xe1b782}, - {0x8135e833, 0xe1b783}, - {0x8135e834, 0xe1b784}, - {0x8135e835, 0xe1b785}, - {0x8135e836, 0xe1b786}, - {0x8135e837, 0xe1b787}, - {0x8135e838, 0xe1b788}, - {0x8135e839, 0xe1b789}, - {0x8135e930, 0xe1b78a}, - {0x8135e931, 0xe1b78b}, - {0x8135e932, 0xe1b78c}, - {0x8135e933, 0xe1b78d}, - {0x8135e934, 0xe1b78e}, - {0x8135e935, 0xe1b78f}, - {0x8135e936, 0xe1b790}, - {0x8135e937, 0xe1b791}, - {0x8135e938, 0xe1b792}, - {0x8135e939, 0xe1b793}, - {0x8135ea30, 0xe1b794}, - {0x8135ea31, 0xe1b795}, - {0x8135ea32, 0xe1b796}, - {0x8135ea33, 0xe1b797}, - {0x8135ea34, 0xe1b798}, - {0x8135ea35, 0xe1b799}, - {0x8135ea36, 0xe1b79a}, - {0x8135ea37, 0xe1b79b}, - {0x8135ea38, 0xe1b79c}, - {0x8135ea39, 0xe1b79d}, - {0x8135eb30, 0xe1b79e}, - {0x8135eb31, 0xe1b79f}, - {0x8135eb32, 0xe1b7a0}, - {0x8135eb33, 0xe1b7a1}, - {0x8135eb34, 0xe1b7a2}, - {0x8135eb35, 0xe1b7a3}, - {0x8135eb36, 0xe1b7a4}, - {0x8135eb37, 0xe1b7a5}, - {0x8135eb38, 0xe1b7a6}, - {0x8135eb39, 0xe1b7a7}, - {0x8135ec30, 0xe1b7a8}, - {0x8135ec31, 0xe1b7a9}, - {0x8135ec32, 0xe1b7aa}, - {0x8135ec33, 0xe1b7ab}, - {0x8135ec34, 0xe1b7ac}, - {0x8135ec35, 0xe1b7ad}, - {0x8135ec36, 0xe1b7ae}, - {0x8135ec37, 0xe1b7af}, - {0x8135ec38, 0xe1b7b0}, - {0x8135ec39, 0xe1b7b1}, - {0x8135ed30, 0xe1b7b2}, - {0x8135ed31, 0xe1b7b3}, - {0x8135ed32, 0xe1b7b4}, - {0x8135ed33, 0xe1b7b5}, - {0x8135ed34, 0xe1b7b6}, - {0x8135ed35, 0xe1b7b7}, - {0x8135ed36, 0xe1b7b8}, - {0x8135ed37, 0xe1b7b9}, - {0x8135ed38, 0xe1b7ba}, - {0x8135ed39, 0xe1b7bb}, - {0x8135ee30, 0xe1b7bc}, - {0x8135ee31, 0xe1b7bd}, - {0x8135ee32, 0xe1b7be}, - {0x8135ee33, 0xe1b7bf}, - {0x8135ee34, 0xe1b880}, - {0x8135ee35, 0xe1b881}, - {0x8135ee36, 0xe1b882}, - {0x8135ee37, 0xe1b883}, - {0x8135ee38, 0xe1b884}, - {0x8135ee39, 0xe1b885}, - {0x8135ef30, 0xe1b886}, - {0x8135ef31, 0xe1b887}, - {0x8135ef32, 0xe1b888}, - {0x8135ef33, 0xe1b889}, - {0x8135ef34, 0xe1b88a}, - {0x8135ef35, 0xe1b88b}, - {0x8135ef36, 0xe1b88c}, - {0x8135ef37, 0xe1b88d}, - {0x8135ef38, 0xe1b88e}, - {0x8135ef39, 0xe1b88f}, - {0x8135f030, 0xe1b890}, - {0x8135f031, 0xe1b891}, - {0x8135f032, 0xe1b892}, - {0x8135f033, 0xe1b893}, - {0x8135f034, 0xe1b894}, - {0x8135f035, 0xe1b895}, - {0x8135f036, 0xe1b896}, - {0x8135f037, 0xe1b897}, - {0x8135f038, 0xe1b898}, - {0x8135f039, 0xe1b899}, - {0x8135f130, 0xe1b89a}, - {0x8135f131, 0xe1b89b}, - {0x8135f132, 0xe1b89c}, - {0x8135f133, 0xe1b89d}, - {0x8135f134, 0xe1b89e}, - {0x8135f135, 0xe1b89f}, - {0x8135f136, 0xe1b8a0}, - {0x8135f137, 0xe1b8a1}, - {0x8135f138, 0xe1b8a2}, - {0x8135f139, 0xe1b8a3}, - {0x8135f230, 0xe1b8a4}, - {0x8135f231, 0xe1b8a5}, - {0x8135f232, 0xe1b8a6}, - {0x8135f233, 0xe1b8a7}, - {0x8135f234, 0xe1b8a8}, - {0x8135f235, 0xe1b8a9}, - {0x8135f236, 0xe1b8aa}, - {0x8135f237, 0xe1b8ab}, - {0x8135f238, 0xe1b8ac}, - {0x8135f239, 0xe1b8ad}, - {0x8135f330, 0xe1b8ae}, - {0x8135f331, 0xe1b8af}, - {0x8135f332, 0xe1b8b0}, - {0x8135f333, 0xe1b8b1}, - {0x8135f334, 0xe1b8b2}, - {0x8135f335, 0xe1b8b3}, - {0x8135f336, 0xe1b8b4}, - {0x8135f337, 0xe1b8b5}, - {0x8135f338, 0xe1b8b6}, - {0x8135f339, 0xe1b8b7}, - {0x8135f430, 0xe1b8b8}, - {0x8135f431, 0xe1b8b9}, - {0x8135f432, 0xe1b8ba}, - {0x8135f433, 0xe1b8bb}, - {0x8135f434, 0xe1b8bc}, - {0x8135f435, 0xe1b8bd}, - {0x8135f436, 0xe1b8be}, - {0x8135f437, 0xe1b8bf}, - {0x8135f438, 0xe1b980}, - {0x8135f439, 0xe1b981}, - {0x8135f530, 0xe1b982}, - {0x8135f531, 0xe1b983}, - {0x8135f532, 0xe1b984}, - {0x8135f533, 0xe1b985}, - {0x8135f534, 0xe1b986}, - {0x8135f535, 0xe1b987}, - {0x8135f536, 0xe1b988}, - {0x8135f537, 0xe1b989}, - {0x8135f538, 0xe1b98a}, - {0x8135f539, 0xe1b98b}, - {0x8135f630, 0xe1b98c}, - {0x8135f631, 0xe1b98d}, - {0x8135f632, 0xe1b98e}, - {0x8135f633, 0xe1b98f}, - {0x8135f634, 0xe1b990}, - {0x8135f635, 0xe1b991}, - {0x8135f636, 0xe1b992}, - {0x8135f637, 0xe1b993}, - {0x8135f638, 0xe1b994}, - {0x8135f639, 0xe1b995}, - {0x8135f730, 0xe1b996}, - {0x8135f731, 0xe1b997}, - {0x8135f732, 0xe1b998}, - {0x8135f733, 0xe1b999}, - {0x8135f734, 0xe1b99a}, - {0x8135f735, 0xe1b99b}, - {0x8135f736, 0xe1b99c}, - {0x8135f737, 0xe1b99d}, - {0x8135f738, 0xe1b99e}, - {0x8135f739, 0xe1b99f}, - {0x8135f830, 0xe1b9a0}, - {0x8135f831, 0xe1b9a1}, - {0x8135f832, 0xe1b9a2}, - {0x8135f833, 0xe1b9a3}, - {0x8135f834, 0xe1b9a4}, - {0x8135f835, 0xe1b9a5}, - {0x8135f836, 0xe1b9a6}, - {0x8135f837, 0xe1b9a7}, - {0x8135f838, 0xe1b9a8}, - {0x8135f839, 0xe1b9a9}, - {0x8135f930, 0xe1b9aa}, - {0x8135f931, 0xe1b9ab}, - {0x8135f932, 0xe1b9ac}, - {0x8135f933, 0xe1b9ad}, - {0x8135f934, 0xe1b9ae}, - {0x8135f935, 0xe1b9af}, - {0x8135f936, 0xe1b9b0}, - {0x8135f937, 0xe1b9b1}, - {0x8135f938, 0xe1b9b2}, - {0x8135f939, 0xe1b9b3}, - {0x8135fa30, 0xe1b9b4}, - {0x8135fa31, 0xe1b9b5}, - {0x8135fa32, 0xe1b9b6}, - {0x8135fa33, 0xe1b9b7}, - {0x8135fa34, 0xe1b9b8}, - {0x8135fa35, 0xe1b9b9}, - {0x8135fa36, 0xe1b9ba}, - {0x8135fa37, 0xe1b9bb}, - {0x8135fa38, 0xe1b9bc}, - {0x8135fa39, 0xe1b9bd}, - {0x8135fb30, 0xe1b9be}, - {0x8135fb31, 0xe1b9bf}, - {0x8135fb32, 0xe1ba80}, - {0x8135fb33, 0xe1ba81}, - {0x8135fb34, 0xe1ba82}, - {0x8135fb35, 0xe1ba83}, - {0x8135fb36, 0xe1ba84}, - {0x8135fb37, 0xe1ba85}, - {0x8135fb38, 0xe1ba86}, - {0x8135fb39, 0xe1ba87}, - {0x8135fc30, 0xe1ba88}, - {0x8135fc31, 0xe1ba89}, - {0x8135fc32, 0xe1ba8a}, - {0x8135fc33, 0xe1ba8b}, - {0x8135fc34, 0xe1ba8c}, - {0x8135fc35, 0xe1ba8d}, - {0x8135fc36, 0xe1ba8e}, - {0x8135fc37, 0xe1ba8f}, - {0x8135fc38, 0xe1ba90}, - {0x8135fc39, 0xe1ba91}, - {0x8135fd30, 0xe1ba92}, - {0x8135fd31, 0xe1ba93}, - {0x8135fd32, 0xe1ba94}, - {0x8135fd33, 0xe1ba95}, - {0x8135fd34, 0xe1ba96}, - {0x8135fd35, 0xe1ba97}, - {0x8135fd36, 0xe1ba98}, - {0x8135fd37, 0xe1ba99}, - {0x8135fd38, 0xe1ba9a}, - {0x8135fd39, 0xe1ba9b}, - {0x8135fe30, 0xe1ba9c}, - {0x8135fe31, 0xe1ba9d}, - {0x8135fe32, 0xe1ba9e}, - {0x8135fe33, 0xe1ba9f}, - {0x8135fe34, 0xe1baa0}, - {0x8135fe35, 0xe1baa1}, - {0x8135fe36, 0xe1baa2}, - {0x8135fe37, 0xe1baa3}, - {0x8135fe38, 0xe1baa4}, - {0x8135fe39, 0xe1baa5}, - {0x81368130, 0xe1baa6}, - {0x81368131, 0xe1baa7}, - {0x81368132, 0xe1baa8}, - {0x81368133, 0xe1baa9}, - {0x81368134, 0xe1baaa}, - {0x81368135, 0xe1baab}, - {0x81368136, 0xe1baac}, - {0x81368137, 0xe1baad}, - {0x81368138, 0xe1baae}, - {0x81368139, 0xe1baaf}, - {0x81368230, 0xe1bab0}, - {0x81368231, 0xe1bab1}, - {0x81368232, 0xe1bab2}, - {0x81368233, 0xe1bab3}, - {0x81368234, 0xe1bab4}, - {0x81368235, 0xe1bab5}, - {0x81368236, 0xe1bab6}, - {0x81368237, 0xe1bab7}, - {0x81368238, 0xe1bab8}, - {0x81368239, 0xe1bab9}, - {0x81368330, 0xe1baba}, - {0x81368331, 0xe1babb}, - {0x81368332, 0xe1babc}, - {0x81368333, 0xe1babd}, - {0x81368334, 0xe1babe}, - {0x81368335, 0xe1babf}, - {0x81368336, 0xe1bb80}, - {0x81368337, 0xe1bb81}, - {0x81368338, 0xe1bb82}, - {0x81368339, 0xe1bb83}, - {0x81368430, 0xe1bb84}, - {0x81368431, 0xe1bb85}, - {0x81368432, 0xe1bb86}, - {0x81368433, 0xe1bb87}, - {0x81368434, 0xe1bb88}, - {0x81368435, 0xe1bb89}, - {0x81368436, 0xe1bb8a}, - {0x81368437, 0xe1bb8b}, - {0x81368438, 0xe1bb8c}, - {0x81368439, 0xe1bb8d}, - {0x81368530, 0xe1bb8e}, - {0x81368531, 0xe1bb8f}, - {0x81368532, 0xe1bb90}, - {0x81368533, 0xe1bb91}, - {0x81368534, 0xe1bb92}, - {0x81368535, 0xe1bb93}, - {0x81368536, 0xe1bb94}, - {0x81368537, 0xe1bb95}, - {0x81368538, 0xe1bb96}, - {0x81368539, 0xe1bb97}, - {0x81368630, 0xe1bb98}, - {0x81368631, 0xe1bb99}, - {0x81368632, 0xe1bb9a}, - {0x81368633, 0xe1bb9b}, - {0x81368634, 0xe1bb9c}, - {0x81368635, 0xe1bb9d}, - {0x81368636, 0xe1bb9e}, - {0x81368637, 0xe1bb9f}, - {0x81368638, 0xe1bba0}, - {0x81368639, 0xe1bba1}, - {0x81368730, 0xe1bba2}, - {0x81368731, 0xe1bba3}, - {0x81368732, 0xe1bba4}, - {0x81368733, 0xe1bba5}, - {0x81368734, 0xe1bba6}, - {0x81368735, 0xe1bba7}, - {0x81368736, 0xe1bba8}, - {0x81368737, 0xe1bba9}, - {0x81368738, 0xe1bbaa}, - {0x81368739, 0xe1bbab}, - {0x81368830, 0xe1bbac}, - {0x81368831, 0xe1bbad}, - {0x81368832, 0xe1bbae}, - {0x81368833, 0xe1bbaf}, - {0x81368834, 0xe1bbb0}, - {0x81368835, 0xe1bbb1}, - {0x81368836, 0xe1bbb2}, - {0x81368837, 0xe1bbb3}, - {0x81368838, 0xe1bbb4}, - {0x81368839, 0xe1bbb5}, - {0x81368930, 0xe1bbb6}, - {0x81368931, 0xe1bbb7}, - {0x81368932, 0xe1bbb8}, - {0x81368933, 0xe1bbb9}, - {0x81368934, 0xe1bbba}, - {0x81368935, 0xe1bbbb}, - {0x81368936, 0xe1bbbc}, - {0x81368937, 0xe1bbbd}, - {0x81368938, 0xe1bbbe}, - {0x81368939, 0xe1bbbf}, - {0x81368a30, 0xe1bc80}, - {0x81368a31, 0xe1bc81}, - {0x81368a32, 0xe1bc82}, - {0x81368a33, 0xe1bc83}, - {0x81368a34, 0xe1bc84}, - {0x81368a35, 0xe1bc85}, - {0x81368a36, 0xe1bc86}, - {0x81368a37, 0xe1bc87}, - {0x81368a38, 0xe1bc88}, - {0x81368a39, 0xe1bc89}, - {0x81368b30, 0xe1bc8a}, - {0x81368b31, 0xe1bc8b}, - {0x81368b32, 0xe1bc8c}, - {0x81368b33, 0xe1bc8d}, - {0x81368b34, 0xe1bc8e}, - {0x81368b35, 0xe1bc8f}, - {0x81368b36, 0xe1bc90}, - {0x81368b37, 0xe1bc91}, - {0x81368b38, 0xe1bc92}, - {0x81368b39, 0xe1bc93}, - {0x81368c30, 0xe1bc94}, - {0x81368c31, 0xe1bc95}, - {0x81368c32, 0xe1bc96}, - {0x81368c33, 0xe1bc97}, - {0x81368c34, 0xe1bc98}, - {0x81368c35, 0xe1bc99}, - {0x81368c36, 0xe1bc9a}, - {0x81368c37, 0xe1bc9b}, - {0x81368c38, 0xe1bc9c}, - {0x81368c39, 0xe1bc9d}, - {0x81368d30, 0xe1bc9e}, - {0x81368d31, 0xe1bc9f}, - {0x81368d32, 0xe1bca0}, - {0x81368d33, 0xe1bca1}, - {0x81368d34, 0xe1bca2}, - {0x81368d35, 0xe1bca3}, - {0x81368d36, 0xe1bca4}, - {0x81368d37, 0xe1bca5}, - {0x81368d38, 0xe1bca6}, - {0x81368d39, 0xe1bca7}, - {0x81368e30, 0xe1bca8}, - {0x81368e31, 0xe1bca9}, - {0x81368e32, 0xe1bcaa}, - {0x81368e33, 0xe1bcab}, - {0x81368e34, 0xe1bcac}, - {0x81368e35, 0xe1bcad}, - {0x81368e36, 0xe1bcae}, - {0x81368e37, 0xe1bcaf}, - {0x81368e38, 0xe1bcb0}, - {0x81368e39, 0xe1bcb1}, - {0x81368f30, 0xe1bcb2}, - {0x81368f31, 0xe1bcb3}, - {0x81368f32, 0xe1bcb4}, - {0x81368f33, 0xe1bcb5}, - {0x81368f34, 0xe1bcb6}, - {0x81368f35, 0xe1bcb7}, - {0x81368f36, 0xe1bcb8}, - {0x81368f37, 0xe1bcb9}, - {0x81368f38, 0xe1bcba}, - {0x81368f39, 0xe1bcbb}, - {0x81369030, 0xe1bcbc}, - {0x81369031, 0xe1bcbd}, - {0x81369032, 0xe1bcbe}, - {0x81369033, 0xe1bcbf}, - {0x81369034, 0xe1bd80}, - {0x81369035, 0xe1bd81}, - {0x81369036, 0xe1bd82}, - {0x81369037, 0xe1bd83}, - {0x81369038, 0xe1bd84}, - {0x81369039, 0xe1bd85}, - {0x81369130, 0xe1bd86}, - {0x81369131, 0xe1bd87}, - {0x81369132, 0xe1bd88}, - {0x81369133, 0xe1bd89}, - {0x81369134, 0xe1bd8a}, - {0x81369135, 0xe1bd8b}, - {0x81369136, 0xe1bd8c}, - {0x81369137, 0xe1bd8d}, - {0x81369138, 0xe1bd8e}, - {0x81369139, 0xe1bd8f}, - {0x81369230, 0xe1bd90}, - {0x81369231, 0xe1bd91}, - {0x81369232, 0xe1bd92}, - {0x81369233, 0xe1bd93}, - {0x81369234, 0xe1bd94}, - {0x81369235, 0xe1bd95}, - {0x81369236, 0xe1bd96}, - {0x81369237, 0xe1bd97}, - {0x81369238, 0xe1bd98}, - {0x81369239, 0xe1bd99}, - {0x81369330, 0xe1bd9a}, - {0x81369331, 0xe1bd9b}, - {0x81369332, 0xe1bd9c}, - {0x81369333, 0xe1bd9d}, - {0x81369334, 0xe1bd9e}, - {0x81369335, 0xe1bd9f}, - {0x81369336, 0xe1bda0}, - {0x81369337, 0xe1bda1}, - {0x81369338, 0xe1bda2}, - {0x81369339, 0xe1bda3}, - {0x81369430, 0xe1bda4}, - {0x81369431, 0xe1bda5}, - {0x81369432, 0xe1bda6}, - {0x81369433, 0xe1bda7}, - {0x81369434, 0xe1bda8}, - {0x81369435, 0xe1bda9}, - {0x81369436, 0xe1bdaa}, - {0x81369437, 0xe1bdab}, - {0x81369438, 0xe1bdac}, - {0x81369439, 0xe1bdad}, - {0x81369530, 0xe1bdae}, - {0x81369531, 0xe1bdaf}, - {0x81369532, 0xe1bdb0}, - {0x81369533, 0xe1bdb1}, - {0x81369534, 0xe1bdb2}, - {0x81369535, 0xe1bdb3}, - {0x81369536, 0xe1bdb4}, - {0x81369537, 0xe1bdb5}, - {0x81369538, 0xe1bdb6}, - {0x81369539, 0xe1bdb7}, - {0x81369630, 0xe1bdb8}, - {0x81369631, 0xe1bdb9}, - {0x81369632, 0xe1bdba}, - {0x81369633, 0xe1bdbb}, - {0x81369634, 0xe1bdbc}, - {0x81369635, 0xe1bdbd}, - {0x81369636, 0xe1bdbe}, - {0x81369637, 0xe1bdbf}, - {0x81369638, 0xe1be80}, - {0x81369639, 0xe1be81}, - {0x81369730, 0xe1be82}, - {0x81369731, 0xe1be83}, - {0x81369732, 0xe1be84}, - {0x81369733, 0xe1be85}, - {0x81369734, 0xe1be86}, - {0x81369735, 0xe1be87}, - {0x81369736, 0xe1be88}, - {0x81369737, 0xe1be89}, - {0x81369738, 0xe1be8a}, - {0x81369739, 0xe1be8b}, - {0x81369830, 0xe1be8c}, - {0x81369831, 0xe1be8d}, - {0x81369832, 0xe1be8e}, - {0x81369833, 0xe1be8f}, - {0x81369834, 0xe1be90}, - {0x81369835, 0xe1be91}, - {0x81369836, 0xe1be92}, - {0x81369837, 0xe1be93}, - {0x81369838, 0xe1be94}, - {0x81369839, 0xe1be95}, - {0x81369930, 0xe1be96}, - {0x81369931, 0xe1be97}, - {0x81369932, 0xe1be98}, - {0x81369933, 0xe1be99}, - {0x81369934, 0xe1be9a}, - {0x81369935, 0xe1be9b}, - {0x81369936, 0xe1be9c}, - {0x81369937, 0xe1be9d}, - {0x81369938, 0xe1be9e}, - {0x81369939, 0xe1be9f}, - {0x81369a30, 0xe1bea0}, - {0x81369a31, 0xe1bea1}, - {0x81369a32, 0xe1bea2}, - {0x81369a33, 0xe1bea3}, - {0x81369a34, 0xe1bea4}, - {0x81369a35, 0xe1bea5}, - {0x81369a36, 0xe1bea6}, - {0x81369a37, 0xe1bea7}, - {0x81369a38, 0xe1bea8}, - {0x81369a39, 0xe1bea9}, - {0x81369b30, 0xe1beaa}, - {0x81369b31, 0xe1beab}, - {0x81369b32, 0xe1beac}, - {0x81369b33, 0xe1bead}, - {0x81369b34, 0xe1beae}, - {0x81369b35, 0xe1beaf}, - {0x81369b36, 0xe1beb0}, - {0x81369b37, 0xe1beb1}, - {0x81369b38, 0xe1beb2}, - {0x81369b39, 0xe1beb3}, - {0x81369c30, 0xe1beb4}, - {0x81369c31, 0xe1beb5}, - {0x81369c32, 0xe1beb6}, - {0x81369c33, 0xe1beb7}, - {0x81369c34, 0xe1beb8}, - {0x81369c35, 0xe1beb9}, - {0x81369c36, 0xe1beba}, - {0x81369c37, 0xe1bebb}, - {0x81369c38, 0xe1bebc}, - {0x81369c39, 0xe1bebd}, - {0x81369d30, 0xe1bebe}, - {0x81369d31, 0xe1bebf}, - {0x81369d32, 0xe1bf80}, - {0x81369d33, 0xe1bf81}, - {0x81369d34, 0xe1bf82}, - {0x81369d35, 0xe1bf83}, - {0x81369d36, 0xe1bf84}, - {0x81369d37, 0xe1bf85}, - {0x81369d38, 0xe1bf86}, - {0x81369d39, 0xe1bf87}, - {0x81369e30, 0xe1bf88}, - {0x81369e31, 0xe1bf89}, - {0x81369e32, 0xe1bf8a}, - {0x81369e33, 0xe1bf8b}, - {0x81369e34, 0xe1bf8c}, - {0x81369e35, 0xe1bf8d}, - {0x81369e36, 0xe1bf8e}, - {0x81369e37, 0xe1bf8f}, - {0x81369e38, 0xe1bf90}, - {0x81369e39, 0xe1bf91}, - {0x81369f30, 0xe1bf92}, - {0x81369f31, 0xe1bf93}, - {0x81369f32, 0xe1bf94}, - {0x81369f33, 0xe1bf95}, - {0x81369f34, 0xe1bf96}, - {0x81369f35, 0xe1bf97}, - {0x81369f36, 0xe1bf98}, - {0x81369f37, 0xe1bf99}, - {0x81369f38, 0xe1bf9a}, - {0x81369f39, 0xe1bf9b}, - {0x8136a030, 0xe1bf9c}, - {0x8136a031, 0xe1bf9d}, - {0x8136a032, 0xe1bf9e}, - {0x8136a033, 0xe1bf9f}, - {0x8136a034, 0xe1bfa0}, - {0x8136a035, 0xe1bfa1}, - {0x8136a036, 0xe1bfa2}, - {0x8136a037, 0xe1bfa3}, - {0x8136a038, 0xe1bfa4}, - {0x8136a039, 0xe1bfa5}, - {0x8136a130, 0xe1bfa6}, - {0x8136a131, 0xe1bfa7}, - {0x8136a132, 0xe1bfa8}, - {0x8136a133, 0xe1bfa9}, - {0x8136a134, 0xe1bfaa}, - {0x8136a135, 0xe1bfab}, - {0x8136a136, 0xe1bfac}, - {0x8136a137, 0xe1bfad}, - {0x8136a138, 0xe1bfae}, - {0x8136a139, 0xe1bfaf}, - {0x8136a230, 0xe1bfb0}, - {0x8136a231, 0xe1bfb1}, - {0x8136a232, 0xe1bfb2}, - {0x8136a233, 0xe1bfb3}, - {0x8136a234, 0xe1bfb4}, - {0x8136a235, 0xe1bfb5}, - {0x8136a236, 0xe1bfb6}, - {0x8136a237, 0xe1bfb7}, - {0x8136a238, 0xe1bfb8}, - {0x8136a239, 0xe1bfb9}, - {0x8136a330, 0xe1bfba}, - {0x8136a331, 0xe1bfbb}, - {0x8136a332, 0xe1bfbc}, - {0x8136a333, 0xe1bfbd}, - {0x8136a334, 0xe1bfbe}, - {0x8136a335, 0xe1bfbf}, - {0x8136a336, 0xe28080}, - {0x8136a337, 0xe28081}, - {0x8136a338, 0xe28082}, - {0x8136a339, 0xe28083}, - {0x8136a430, 0xe28084}, - {0x8136a431, 0xe28085}, - {0x8136a432, 0xe28086}, - {0x8136a433, 0xe28087}, - {0x8136a434, 0xe28088}, - {0x8136a435, 0xe28089}, - {0x8136a436, 0xe2808a}, - {0x8136a437, 0xe2808b}, - {0x8136a438, 0xe2808c}, - {0x8136a439, 0xe2808d}, - {0x8136a530, 0xe2808e}, - {0x8136a531, 0xe2808f}, {0x8136a532, 0xe28091}, {0x8136a533, 0xe28092}, {0x8136a534, 0xe28097}, @@ -33158,2116 +26056,6 @@ static pg_local_to_utf LUmapGB18030[ 63360 ] = { {0x8137a836, 0xe298be}, {0x8137a837, 0xe298bf}, {0x8137a838, 0xe29981}, - {0x8137a839, 0xe29983}, - {0x8137a930, 0xe29984}, - {0x8137a931, 0xe29985}, - {0x8137a932, 0xe29986}, - {0x8137a933, 0xe29987}, - {0x8137a934, 0xe29988}, - {0x8137a935, 0xe29989}, - {0x8137a936, 0xe2998a}, - {0x8137a937, 0xe2998b}, - {0x8137a938, 0xe2998c}, - {0x8137a939, 0xe2998d}, - {0x8137aa30, 0xe2998e}, - {0x8137aa31, 0xe2998f}, - {0x8137aa32, 0xe29990}, - {0x8137aa33, 0xe29991}, - {0x8137aa34, 0xe29992}, - {0x8137aa35, 0xe29993}, - {0x8137aa36, 0xe29994}, - {0x8137aa37, 0xe29995}, - {0x8137aa38, 0xe29996}, - {0x8137aa39, 0xe29997}, - {0x8137ab30, 0xe29998}, - {0x8137ab31, 0xe29999}, - {0x8137ab32, 0xe2999a}, - {0x8137ab33, 0xe2999b}, - {0x8137ab34, 0xe2999c}, - {0x8137ab35, 0xe2999d}, - {0x8137ab36, 0xe2999e}, - {0x8137ab37, 0xe2999f}, - {0x8137ab38, 0xe299a0}, - {0x8137ab39, 0xe299a1}, - {0x8137ac30, 0xe299a2}, - {0x8137ac31, 0xe299a3}, - {0x8137ac32, 0xe299a4}, - {0x8137ac33, 0xe299a5}, - {0x8137ac34, 0xe299a6}, - {0x8137ac35, 0xe299a7}, - {0x8137ac36, 0xe299a8}, - {0x8137ac37, 0xe299a9}, - {0x8137ac38, 0xe299aa}, - {0x8137ac39, 0xe299ab}, - {0x8137ad30, 0xe299ac}, - {0x8137ad31, 0xe299ad}, - {0x8137ad32, 0xe299ae}, - {0x8137ad33, 0xe299af}, - {0x8137ad34, 0xe299b0}, - {0x8137ad35, 0xe299b1}, - {0x8137ad36, 0xe299b2}, - {0x8137ad37, 0xe299b3}, - {0x8137ad38, 0xe299b4}, - {0x8137ad39, 0xe299b5}, - {0x8137ae30, 0xe299b6}, - {0x8137ae31, 0xe299b7}, - {0x8137ae32, 0xe299b8}, - {0x8137ae33, 0xe299b9}, - {0x8137ae34, 0xe299ba}, - {0x8137ae35, 0xe299bb}, - {0x8137ae36, 0xe299bc}, - {0x8137ae37, 0xe299bd}, - {0x8137ae38, 0xe299be}, - {0x8137ae39, 0xe299bf}, - {0x8137af30, 0xe29a80}, - {0x8137af31, 0xe29a81}, - {0x8137af32, 0xe29a82}, - {0x8137af33, 0xe29a83}, - {0x8137af34, 0xe29a84}, - {0x8137af35, 0xe29a85}, - {0x8137af36, 0xe29a86}, - {0x8137af37, 0xe29a87}, - {0x8137af38, 0xe29a88}, - {0x8137af39, 0xe29a89}, - {0x8137b030, 0xe29a8a}, - {0x8137b031, 0xe29a8b}, - {0x8137b032, 0xe29a8c}, - {0x8137b033, 0xe29a8d}, - {0x8137b034, 0xe29a8e}, - {0x8137b035, 0xe29a8f}, - {0x8137b036, 0xe29a90}, - {0x8137b037, 0xe29a91}, - {0x8137b038, 0xe29a92}, - {0x8137b039, 0xe29a93}, - {0x8137b130, 0xe29a94}, - {0x8137b131, 0xe29a95}, - {0x8137b132, 0xe29a96}, - {0x8137b133, 0xe29a97}, - {0x8137b134, 0xe29a98}, - {0x8137b135, 0xe29a99}, - {0x8137b136, 0xe29a9a}, - {0x8137b137, 0xe29a9b}, - {0x8137b138, 0xe29a9c}, - {0x8137b139, 0xe29a9d}, - {0x8137b230, 0xe29a9e}, - {0x8137b231, 0xe29a9f}, - {0x8137b232, 0xe29aa0}, - {0x8137b233, 0xe29aa1}, - {0x8137b234, 0xe29aa2}, - {0x8137b235, 0xe29aa3}, - {0x8137b236, 0xe29aa4}, - {0x8137b237, 0xe29aa5}, - {0x8137b238, 0xe29aa6}, - {0x8137b239, 0xe29aa7}, - {0x8137b330, 0xe29aa8}, - {0x8137b331, 0xe29aa9}, - {0x8137b332, 0xe29aaa}, - {0x8137b333, 0xe29aab}, - {0x8137b334, 0xe29aac}, - {0x8137b335, 0xe29aad}, - {0x8137b336, 0xe29aae}, - {0x8137b337, 0xe29aaf}, - {0x8137b338, 0xe29ab0}, - {0x8137b339, 0xe29ab1}, - {0x8137b430, 0xe29ab2}, - {0x8137b431, 0xe29ab3}, - {0x8137b432, 0xe29ab4}, - {0x8137b433, 0xe29ab5}, - {0x8137b434, 0xe29ab6}, - {0x8137b435, 0xe29ab7}, - {0x8137b436, 0xe29ab8}, - {0x8137b437, 0xe29ab9}, - {0x8137b438, 0xe29aba}, - {0x8137b439, 0xe29abb}, - {0x8137b530, 0xe29abc}, - {0x8137b531, 0xe29abd}, - {0x8137b532, 0xe29abe}, - {0x8137b533, 0xe29abf}, - {0x8137b534, 0xe29b80}, - {0x8137b535, 0xe29b81}, - {0x8137b536, 0xe29b82}, - {0x8137b537, 0xe29b83}, - {0x8137b538, 0xe29b84}, - {0x8137b539, 0xe29b85}, - {0x8137b630, 0xe29b86}, - {0x8137b631, 0xe29b87}, - {0x8137b632, 0xe29b88}, - {0x8137b633, 0xe29b89}, - {0x8137b634, 0xe29b8a}, - {0x8137b635, 0xe29b8b}, - {0x8137b636, 0xe29b8c}, - {0x8137b637, 0xe29b8d}, - {0x8137b638, 0xe29b8e}, - {0x8137b639, 0xe29b8f}, - {0x8137b730, 0xe29b90}, - {0x8137b731, 0xe29b91}, - {0x8137b732, 0xe29b92}, - {0x8137b733, 0xe29b93}, - {0x8137b734, 0xe29b94}, - {0x8137b735, 0xe29b95}, - {0x8137b736, 0xe29b96}, - {0x8137b737, 0xe29b97}, - {0x8137b738, 0xe29b98}, - {0x8137b739, 0xe29b99}, - {0x8137b830, 0xe29b9a}, - {0x8137b831, 0xe29b9b}, - {0x8137b832, 0xe29b9c}, - {0x8137b833, 0xe29b9d}, - {0x8137b834, 0xe29b9e}, - {0x8137b835, 0xe29b9f}, - {0x8137b836, 0xe29ba0}, - {0x8137b837, 0xe29ba1}, - {0x8137b838, 0xe29ba2}, - {0x8137b839, 0xe29ba3}, - {0x8137b930, 0xe29ba4}, - {0x8137b931, 0xe29ba5}, - {0x8137b932, 0xe29ba6}, - {0x8137b933, 0xe29ba7}, - {0x8137b934, 0xe29ba8}, - {0x8137b935, 0xe29ba9}, - {0x8137b936, 0xe29baa}, - {0x8137b937, 0xe29bab}, - {0x8137b938, 0xe29bac}, - {0x8137b939, 0xe29bad}, - {0x8137ba30, 0xe29bae}, - {0x8137ba31, 0xe29baf}, - {0x8137ba32, 0xe29bb0}, - {0x8137ba33, 0xe29bb1}, - {0x8137ba34, 0xe29bb2}, - {0x8137ba35, 0xe29bb3}, - {0x8137ba36, 0xe29bb4}, - {0x8137ba37, 0xe29bb5}, - {0x8137ba38, 0xe29bb6}, - {0x8137ba39, 0xe29bb7}, - {0x8137bb30, 0xe29bb8}, - {0x8137bb31, 0xe29bb9}, - {0x8137bb32, 0xe29bba}, - {0x8137bb33, 0xe29bbb}, - {0x8137bb34, 0xe29bbc}, - {0x8137bb35, 0xe29bbd}, - {0x8137bb36, 0xe29bbe}, - {0x8137bb37, 0xe29bbf}, - {0x8137bb38, 0xe29c80}, - {0x8137bb39, 0xe29c81}, - {0x8137bc30, 0xe29c82}, - {0x8137bc31, 0xe29c83}, - {0x8137bc32, 0xe29c84}, - {0x8137bc33, 0xe29c85}, - {0x8137bc34, 0xe29c86}, - {0x8137bc35, 0xe29c87}, - {0x8137bc36, 0xe29c88}, - {0x8137bc37, 0xe29c89}, - {0x8137bc38, 0xe29c8a}, - {0x8137bc39, 0xe29c8b}, - {0x8137bd30, 0xe29c8c}, - {0x8137bd31, 0xe29c8d}, - {0x8137bd32, 0xe29c8e}, - {0x8137bd33, 0xe29c8f}, - {0x8137bd34, 0xe29c90}, - {0x8137bd35, 0xe29c91}, - {0x8137bd36, 0xe29c92}, - {0x8137bd37, 0xe29c93}, - {0x8137bd38, 0xe29c94}, - {0x8137bd39, 0xe29c95}, - {0x8137be30, 0xe29c96}, - {0x8137be31, 0xe29c97}, - {0x8137be32, 0xe29c98}, - {0x8137be33, 0xe29c99}, - {0x8137be34, 0xe29c9a}, - {0x8137be35, 0xe29c9b}, - {0x8137be36, 0xe29c9c}, - {0x8137be37, 0xe29c9d}, - {0x8137be38, 0xe29c9e}, - {0x8137be39, 0xe29c9f}, - {0x8137bf30, 0xe29ca0}, - {0x8137bf31, 0xe29ca1}, - {0x8137bf32, 0xe29ca2}, - {0x8137bf33, 0xe29ca3}, - {0x8137bf34, 0xe29ca4}, - {0x8137bf35, 0xe29ca5}, - {0x8137bf36, 0xe29ca6}, - {0x8137bf37, 0xe29ca7}, - {0x8137bf38, 0xe29ca8}, - {0x8137bf39, 0xe29ca9}, - {0x8137c030, 0xe29caa}, - {0x8137c031, 0xe29cab}, - {0x8137c032, 0xe29cac}, - {0x8137c033, 0xe29cad}, - {0x8137c034, 0xe29cae}, - {0x8137c035, 0xe29caf}, - {0x8137c036, 0xe29cb0}, - {0x8137c037, 0xe29cb1}, - {0x8137c038, 0xe29cb2}, - {0x8137c039, 0xe29cb3}, - {0x8137c130, 0xe29cb4}, - {0x8137c131, 0xe29cb5}, - {0x8137c132, 0xe29cb6}, - {0x8137c133, 0xe29cb7}, - {0x8137c134, 0xe29cb8}, - {0x8137c135, 0xe29cb9}, - {0x8137c136, 0xe29cba}, - {0x8137c137, 0xe29cbb}, - {0x8137c138, 0xe29cbc}, - {0x8137c139, 0xe29cbd}, - {0x8137c230, 0xe29cbe}, - {0x8137c231, 0xe29cbf}, - {0x8137c232, 0xe29d80}, - {0x8137c233, 0xe29d81}, - {0x8137c234, 0xe29d82}, - {0x8137c235, 0xe29d83}, - {0x8137c236, 0xe29d84}, - {0x8137c237, 0xe29d85}, - {0x8137c238, 0xe29d86}, - {0x8137c239, 0xe29d87}, - {0x8137c330, 0xe29d88}, - {0x8137c331, 0xe29d89}, - {0x8137c332, 0xe29d8a}, - {0x8137c333, 0xe29d8b}, - {0x8137c334, 0xe29d8c}, - {0x8137c335, 0xe29d8d}, - {0x8137c336, 0xe29d8e}, - {0x8137c337, 0xe29d8f}, - {0x8137c338, 0xe29d90}, - {0x8137c339, 0xe29d91}, - {0x8137c430, 0xe29d92}, - {0x8137c431, 0xe29d93}, - {0x8137c432, 0xe29d94}, - {0x8137c433, 0xe29d95}, - {0x8137c434, 0xe29d96}, - {0x8137c435, 0xe29d97}, - {0x8137c436, 0xe29d98}, - {0x8137c437, 0xe29d99}, - {0x8137c438, 0xe29d9a}, - {0x8137c439, 0xe29d9b}, - {0x8137c530, 0xe29d9c}, - {0x8137c531, 0xe29d9d}, - {0x8137c532, 0xe29d9e}, - {0x8137c533, 0xe29d9f}, - {0x8137c534, 0xe29da0}, - {0x8137c535, 0xe29da1}, - {0x8137c536, 0xe29da2}, - {0x8137c537, 0xe29da3}, - {0x8137c538, 0xe29da4}, - {0x8137c539, 0xe29da5}, - {0x8137c630, 0xe29da6}, - {0x8137c631, 0xe29da7}, - {0x8137c632, 0xe29da8}, - {0x8137c633, 0xe29da9}, - {0x8137c634, 0xe29daa}, - {0x8137c635, 0xe29dab}, - {0x8137c636, 0xe29dac}, - {0x8137c637, 0xe29dad}, - {0x8137c638, 0xe29dae}, - {0x8137c639, 0xe29daf}, - {0x8137c730, 0xe29db0}, - {0x8137c731, 0xe29db1}, - {0x8137c732, 0xe29db2}, - {0x8137c733, 0xe29db3}, - {0x8137c734, 0xe29db4}, - {0x8137c735, 0xe29db5}, - {0x8137c736, 0xe29db6}, - {0x8137c737, 0xe29db7}, - {0x8137c738, 0xe29db8}, - {0x8137c739, 0xe29db9}, - {0x8137c830, 0xe29dba}, - {0x8137c831, 0xe29dbb}, - {0x8137c832, 0xe29dbc}, - {0x8137c833, 0xe29dbd}, - {0x8137c834, 0xe29dbe}, - {0x8137c835, 0xe29dbf}, - {0x8137c836, 0xe29e80}, - {0x8137c837, 0xe29e81}, - {0x8137c838, 0xe29e82}, - {0x8137c839, 0xe29e83}, - {0x8137c930, 0xe29e84}, - {0x8137c931, 0xe29e85}, - {0x8137c932, 0xe29e86}, - {0x8137c933, 0xe29e87}, - {0x8137c934, 0xe29e88}, - {0x8137c935, 0xe29e89}, - {0x8137c936, 0xe29e8a}, - {0x8137c937, 0xe29e8b}, - {0x8137c938, 0xe29e8c}, - {0x8137c939, 0xe29e8d}, - {0x8137ca30, 0xe29e8e}, - {0x8137ca31, 0xe29e8f}, - {0x8137ca32, 0xe29e90}, - {0x8137ca33, 0xe29e91}, - {0x8137ca34, 0xe29e92}, - {0x8137ca35, 0xe29e93}, - {0x8137ca36, 0xe29e94}, - {0x8137ca37, 0xe29e95}, - {0x8137ca38, 0xe29e96}, - {0x8137ca39, 0xe29e97}, - {0x8137cb30, 0xe29e98}, - {0x8137cb31, 0xe29e99}, - {0x8137cb32, 0xe29e9a}, - {0x8137cb33, 0xe29e9b}, - {0x8137cb34, 0xe29e9c}, - {0x8137cb35, 0xe29e9d}, - {0x8137cb36, 0xe29e9e}, - {0x8137cb37, 0xe29e9f}, - {0x8137cb38, 0xe29ea0}, - {0x8137cb39, 0xe29ea1}, - {0x8137cc30, 0xe29ea2}, - {0x8137cc31, 0xe29ea3}, - {0x8137cc32, 0xe29ea4}, - {0x8137cc33, 0xe29ea5}, - {0x8137cc34, 0xe29ea6}, - {0x8137cc35, 0xe29ea7}, - {0x8137cc36, 0xe29ea8}, - {0x8137cc37, 0xe29ea9}, - {0x8137cc38, 0xe29eaa}, - {0x8137cc39, 0xe29eab}, - {0x8137cd30, 0xe29eac}, - {0x8137cd31, 0xe29ead}, - {0x8137cd32, 0xe29eae}, - {0x8137cd33, 0xe29eaf}, - {0x8137cd34, 0xe29eb0}, - {0x8137cd35, 0xe29eb1}, - {0x8137cd36, 0xe29eb2}, - {0x8137cd37, 0xe29eb3}, - {0x8137cd38, 0xe29eb4}, - {0x8137cd39, 0xe29eb5}, - {0x8137ce30, 0xe29eb6}, - {0x8137ce31, 0xe29eb7}, - {0x8137ce32, 0xe29eb8}, - {0x8137ce33, 0xe29eb9}, - {0x8137ce34, 0xe29eba}, - {0x8137ce35, 0xe29ebb}, - {0x8137ce36, 0xe29ebc}, - {0x8137ce37, 0xe29ebd}, - {0x8137ce38, 0xe29ebe}, - {0x8137ce39, 0xe29ebf}, - {0x8137cf30, 0xe29f80}, - {0x8137cf31, 0xe29f81}, - {0x8137cf32, 0xe29f82}, - {0x8137cf33, 0xe29f83}, - {0x8137cf34, 0xe29f84}, - {0x8137cf35, 0xe29f85}, - {0x8137cf36, 0xe29f86}, - {0x8137cf37, 0xe29f87}, - {0x8137cf38, 0xe29f88}, - {0x8137cf39, 0xe29f89}, - {0x8137d030, 0xe29f8a}, - {0x8137d031, 0xe29f8b}, - {0x8137d032, 0xe29f8c}, - {0x8137d033, 0xe29f8d}, - {0x8137d034, 0xe29f8e}, - {0x8137d035, 0xe29f8f}, - {0x8137d036, 0xe29f90}, - {0x8137d037, 0xe29f91}, - {0x8137d038, 0xe29f92}, - {0x8137d039, 0xe29f93}, - {0x8137d130, 0xe29f94}, - {0x8137d131, 0xe29f95}, - {0x8137d132, 0xe29f96}, - {0x8137d133, 0xe29f97}, - {0x8137d134, 0xe29f98}, - {0x8137d135, 0xe29f99}, - {0x8137d136, 0xe29f9a}, - {0x8137d137, 0xe29f9b}, - {0x8137d138, 0xe29f9c}, - {0x8137d139, 0xe29f9d}, - {0x8137d230, 0xe29f9e}, - {0x8137d231, 0xe29f9f}, - {0x8137d232, 0xe29fa0}, - {0x8137d233, 0xe29fa1}, - {0x8137d234, 0xe29fa2}, - {0x8137d235, 0xe29fa3}, - {0x8137d236, 0xe29fa4}, - {0x8137d237, 0xe29fa5}, - {0x8137d238, 0xe29fa6}, - {0x8137d239, 0xe29fa7}, - {0x8137d330, 0xe29fa8}, - {0x8137d331, 0xe29fa9}, - {0x8137d332, 0xe29faa}, - {0x8137d333, 0xe29fab}, - {0x8137d334, 0xe29fac}, - {0x8137d335, 0xe29fad}, - {0x8137d336, 0xe29fae}, - {0x8137d337, 0xe29faf}, - {0x8137d338, 0xe29fb0}, - {0x8137d339, 0xe29fb1}, - {0x8137d430, 0xe29fb2}, - {0x8137d431, 0xe29fb3}, - {0x8137d432, 0xe29fb4}, - {0x8137d433, 0xe29fb5}, - {0x8137d434, 0xe29fb6}, - {0x8137d435, 0xe29fb7}, - {0x8137d436, 0xe29fb8}, - {0x8137d437, 0xe29fb9}, - {0x8137d438, 0xe29fba}, - {0x8137d439, 0xe29fbb}, - {0x8137d530, 0xe29fbc}, - {0x8137d531, 0xe29fbd}, - {0x8137d532, 0xe29fbe}, - {0x8137d533, 0xe29fbf}, - {0x8137d534, 0xe2a080}, - {0x8137d535, 0xe2a081}, - {0x8137d536, 0xe2a082}, - {0x8137d537, 0xe2a083}, - {0x8137d538, 0xe2a084}, - {0x8137d539, 0xe2a085}, - {0x8137d630, 0xe2a086}, - {0x8137d631, 0xe2a087}, - {0x8137d632, 0xe2a088}, - {0x8137d633, 0xe2a089}, - {0x8137d634, 0xe2a08a}, - {0x8137d635, 0xe2a08b}, - {0x8137d636, 0xe2a08c}, - {0x8137d637, 0xe2a08d}, - {0x8137d638, 0xe2a08e}, - {0x8137d639, 0xe2a08f}, - {0x8137d730, 0xe2a090}, - {0x8137d731, 0xe2a091}, - {0x8137d732, 0xe2a092}, - {0x8137d733, 0xe2a093}, - {0x8137d734, 0xe2a094}, - {0x8137d735, 0xe2a095}, - {0x8137d736, 0xe2a096}, - {0x8137d737, 0xe2a097}, - {0x8137d738, 0xe2a098}, - {0x8137d739, 0xe2a099}, - {0x8137d830, 0xe2a09a}, - {0x8137d831, 0xe2a09b}, - {0x8137d832, 0xe2a09c}, - {0x8137d833, 0xe2a09d}, - {0x8137d834, 0xe2a09e}, - {0x8137d835, 0xe2a09f}, - {0x8137d836, 0xe2a0a0}, - {0x8137d837, 0xe2a0a1}, - {0x8137d838, 0xe2a0a2}, - {0x8137d839, 0xe2a0a3}, - {0x8137d930, 0xe2a0a4}, - {0x8137d931, 0xe2a0a5}, - {0x8137d932, 0xe2a0a6}, - {0x8137d933, 0xe2a0a7}, - {0x8137d934, 0xe2a0a8}, - {0x8137d935, 0xe2a0a9}, - {0x8137d936, 0xe2a0aa}, - {0x8137d937, 0xe2a0ab}, - {0x8137d938, 0xe2a0ac}, - {0x8137d939, 0xe2a0ad}, - {0x8137da30, 0xe2a0ae}, - {0x8137da31, 0xe2a0af}, - {0x8137da32, 0xe2a0b0}, - {0x8137da33, 0xe2a0b1}, - {0x8137da34, 0xe2a0b2}, - {0x8137da35, 0xe2a0b3}, - {0x8137da36, 0xe2a0b4}, - {0x8137da37, 0xe2a0b5}, - {0x8137da38, 0xe2a0b6}, - {0x8137da39, 0xe2a0b7}, - {0x8137db30, 0xe2a0b8}, - {0x8137db31, 0xe2a0b9}, - {0x8137db32, 0xe2a0ba}, - {0x8137db33, 0xe2a0bb}, - {0x8137db34, 0xe2a0bc}, - {0x8137db35, 0xe2a0bd}, - {0x8137db36, 0xe2a0be}, - {0x8137db37, 0xe2a0bf}, - {0x8137db38, 0xe2a180}, - {0x8137db39, 0xe2a181}, - {0x8137dc30, 0xe2a182}, - {0x8137dc31, 0xe2a183}, - {0x8137dc32, 0xe2a184}, - {0x8137dc33, 0xe2a185}, - {0x8137dc34, 0xe2a186}, - {0x8137dc35, 0xe2a187}, - {0x8137dc36, 0xe2a188}, - {0x8137dc37, 0xe2a189}, - {0x8137dc38, 0xe2a18a}, - {0x8137dc39, 0xe2a18b}, - {0x8137dd30, 0xe2a18c}, - {0x8137dd31, 0xe2a18d}, - {0x8137dd32, 0xe2a18e}, - {0x8137dd33, 0xe2a18f}, - {0x8137dd34, 0xe2a190}, - {0x8137dd35, 0xe2a191}, - {0x8137dd36, 0xe2a192}, - {0x8137dd37, 0xe2a193}, - {0x8137dd38, 0xe2a194}, - {0x8137dd39, 0xe2a195}, - {0x8137de30, 0xe2a196}, - {0x8137de31, 0xe2a197}, - {0x8137de32, 0xe2a198}, - {0x8137de33, 0xe2a199}, - {0x8137de34, 0xe2a19a}, - {0x8137de35, 0xe2a19b}, - {0x8137de36, 0xe2a19c}, - {0x8137de37, 0xe2a19d}, - {0x8137de38, 0xe2a19e}, - {0x8137de39, 0xe2a19f}, - {0x8137df30, 0xe2a1a0}, - {0x8137df31, 0xe2a1a1}, - {0x8137df32, 0xe2a1a2}, - {0x8137df33, 0xe2a1a3}, - {0x8137df34, 0xe2a1a4}, - {0x8137df35, 0xe2a1a5}, - {0x8137df36, 0xe2a1a6}, - {0x8137df37, 0xe2a1a7}, - {0x8137df38, 0xe2a1a8}, - {0x8137df39, 0xe2a1a9}, - {0x8137e030, 0xe2a1aa}, - {0x8137e031, 0xe2a1ab}, - {0x8137e032, 0xe2a1ac}, - {0x8137e033, 0xe2a1ad}, - {0x8137e034, 0xe2a1ae}, - {0x8137e035, 0xe2a1af}, - {0x8137e036, 0xe2a1b0}, - {0x8137e037, 0xe2a1b1}, - {0x8137e038, 0xe2a1b2}, - {0x8137e039, 0xe2a1b3}, - {0x8137e130, 0xe2a1b4}, - {0x8137e131, 0xe2a1b5}, - {0x8137e132, 0xe2a1b6}, - {0x8137e133, 0xe2a1b7}, - {0x8137e134, 0xe2a1b8}, - {0x8137e135, 0xe2a1b9}, - {0x8137e136, 0xe2a1ba}, - {0x8137e137, 0xe2a1bb}, - {0x8137e138, 0xe2a1bc}, - {0x8137e139, 0xe2a1bd}, - {0x8137e230, 0xe2a1be}, - {0x8137e231, 0xe2a1bf}, - {0x8137e232, 0xe2a280}, - {0x8137e233, 0xe2a281}, - {0x8137e234, 0xe2a282}, - {0x8137e235, 0xe2a283}, - {0x8137e236, 0xe2a284}, - {0x8137e237, 0xe2a285}, - {0x8137e238, 0xe2a286}, - {0x8137e239, 0xe2a287}, - {0x8137e330, 0xe2a288}, - {0x8137e331, 0xe2a289}, - {0x8137e332, 0xe2a28a}, - {0x8137e333, 0xe2a28b}, - {0x8137e334, 0xe2a28c}, - {0x8137e335, 0xe2a28d}, - {0x8137e336, 0xe2a28e}, - {0x8137e337, 0xe2a28f}, - {0x8137e338, 0xe2a290}, - {0x8137e339, 0xe2a291}, - {0x8137e430, 0xe2a292}, - {0x8137e431, 0xe2a293}, - {0x8137e432, 0xe2a294}, - {0x8137e433, 0xe2a295}, - {0x8137e434, 0xe2a296}, - {0x8137e435, 0xe2a297}, - {0x8137e436, 0xe2a298}, - {0x8137e437, 0xe2a299}, - {0x8137e438, 0xe2a29a}, - {0x8137e439, 0xe2a29b}, - {0x8137e530, 0xe2a29c}, - {0x8137e531, 0xe2a29d}, - {0x8137e532, 0xe2a29e}, - {0x8137e533, 0xe2a29f}, - {0x8137e534, 0xe2a2a0}, - {0x8137e535, 0xe2a2a1}, - {0x8137e536, 0xe2a2a2}, - {0x8137e537, 0xe2a2a3}, - {0x8137e538, 0xe2a2a4}, - {0x8137e539, 0xe2a2a5}, - {0x8137e630, 0xe2a2a6}, - {0x8137e631, 0xe2a2a7}, - {0x8137e632, 0xe2a2a8}, - {0x8137e633, 0xe2a2a9}, - {0x8137e634, 0xe2a2aa}, - {0x8137e635, 0xe2a2ab}, - {0x8137e636, 0xe2a2ac}, - {0x8137e637, 0xe2a2ad}, - {0x8137e638, 0xe2a2ae}, - {0x8137e639, 0xe2a2af}, - {0x8137e730, 0xe2a2b0}, - {0x8137e731, 0xe2a2b1}, - {0x8137e732, 0xe2a2b2}, - {0x8137e733, 0xe2a2b3}, - {0x8137e734, 0xe2a2b4}, - {0x8137e735, 0xe2a2b5}, - {0x8137e736, 0xe2a2b6}, - {0x8137e737, 0xe2a2b7}, - {0x8137e738, 0xe2a2b8}, - {0x8137e739, 0xe2a2b9}, - {0x8137e830, 0xe2a2ba}, - {0x8137e831, 0xe2a2bb}, - {0x8137e832, 0xe2a2bc}, - {0x8137e833, 0xe2a2bd}, - {0x8137e834, 0xe2a2be}, - {0x8137e835, 0xe2a2bf}, - {0x8137e836, 0xe2a380}, - {0x8137e837, 0xe2a381}, - {0x8137e838, 0xe2a382}, - {0x8137e839, 0xe2a383}, - {0x8137e930, 0xe2a384}, - {0x8137e931, 0xe2a385}, - {0x8137e932, 0xe2a386}, - {0x8137e933, 0xe2a387}, - {0x8137e934, 0xe2a388}, - {0x8137e935, 0xe2a389}, - {0x8137e936, 0xe2a38a}, - {0x8137e937, 0xe2a38b}, - {0x8137e938, 0xe2a38c}, - {0x8137e939, 0xe2a38d}, - {0x8137ea30, 0xe2a38e}, - {0x8137ea31, 0xe2a38f}, - {0x8137ea32, 0xe2a390}, - {0x8137ea33, 0xe2a391}, - {0x8137ea34, 0xe2a392}, - {0x8137ea35, 0xe2a393}, - {0x8137ea36, 0xe2a394}, - {0x8137ea37, 0xe2a395}, - {0x8137ea38, 0xe2a396}, - {0x8137ea39, 0xe2a397}, - {0x8137eb30, 0xe2a398}, - {0x8137eb31, 0xe2a399}, - {0x8137eb32, 0xe2a39a}, - {0x8137eb33, 0xe2a39b}, - {0x8137eb34, 0xe2a39c}, - {0x8137eb35, 0xe2a39d}, - {0x8137eb36, 0xe2a39e}, - {0x8137eb37, 0xe2a39f}, - {0x8137eb38, 0xe2a3a0}, - {0x8137eb39, 0xe2a3a1}, - {0x8137ec30, 0xe2a3a2}, - {0x8137ec31, 0xe2a3a3}, - {0x8137ec32, 0xe2a3a4}, - {0x8137ec33, 0xe2a3a5}, - {0x8137ec34, 0xe2a3a6}, - {0x8137ec35, 0xe2a3a7}, - {0x8137ec36, 0xe2a3a8}, - {0x8137ec37, 0xe2a3a9}, - {0x8137ec38, 0xe2a3aa}, - {0x8137ec39, 0xe2a3ab}, - {0x8137ed30, 0xe2a3ac}, - {0x8137ed31, 0xe2a3ad}, - {0x8137ed32, 0xe2a3ae}, - {0x8137ed33, 0xe2a3af}, - {0x8137ed34, 0xe2a3b0}, - {0x8137ed35, 0xe2a3b1}, - {0x8137ed36, 0xe2a3b2}, - {0x8137ed37, 0xe2a3b3}, - {0x8137ed38, 0xe2a3b4}, - {0x8137ed39, 0xe2a3b5}, - {0x8137ee30, 0xe2a3b6}, - {0x8137ee31, 0xe2a3b7}, - {0x8137ee32, 0xe2a3b8}, - {0x8137ee33, 0xe2a3b9}, - {0x8137ee34, 0xe2a3ba}, - {0x8137ee35, 0xe2a3bb}, - {0x8137ee36, 0xe2a3bc}, - {0x8137ee37, 0xe2a3bd}, - {0x8137ee38, 0xe2a3be}, - {0x8137ee39, 0xe2a3bf}, - {0x8137ef30, 0xe2a480}, - {0x8137ef31, 0xe2a481}, - {0x8137ef32, 0xe2a482}, - {0x8137ef33, 0xe2a483}, - {0x8137ef34, 0xe2a484}, - {0x8137ef35, 0xe2a485}, - {0x8137ef36, 0xe2a486}, - {0x8137ef37, 0xe2a487}, - {0x8137ef38, 0xe2a488}, - {0x8137ef39, 0xe2a489}, - {0x8137f030, 0xe2a48a}, - {0x8137f031, 0xe2a48b}, - {0x8137f032, 0xe2a48c}, - {0x8137f033, 0xe2a48d}, - {0x8137f034, 0xe2a48e}, - {0x8137f035, 0xe2a48f}, - {0x8137f036, 0xe2a490}, - {0x8137f037, 0xe2a491}, - {0x8137f038, 0xe2a492}, - {0x8137f039, 0xe2a493}, - {0x8137f130, 0xe2a494}, - {0x8137f131, 0xe2a495}, - {0x8137f132, 0xe2a496}, - {0x8137f133, 0xe2a497}, - {0x8137f134, 0xe2a498}, - {0x8137f135, 0xe2a499}, - {0x8137f136, 0xe2a49a}, - {0x8137f137, 0xe2a49b}, - {0x8137f138, 0xe2a49c}, - {0x8137f139, 0xe2a49d}, - {0x8137f230, 0xe2a49e}, - {0x8137f231, 0xe2a49f}, - {0x8137f232, 0xe2a4a0}, - {0x8137f233, 0xe2a4a1}, - {0x8137f234, 0xe2a4a2}, - {0x8137f235, 0xe2a4a3}, - {0x8137f236, 0xe2a4a4}, - {0x8137f237, 0xe2a4a5}, - {0x8137f238, 0xe2a4a6}, - {0x8137f239, 0xe2a4a7}, - {0x8137f330, 0xe2a4a8}, - {0x8137f331, 0xe2a4a9}, - {0x8137f332, 0xe2a4aa}, - {0x8137f333, 0xe2a4ab}, - {0x8137f334, 0xe2a4ac}, - {0x8137f335, 0xe2a4ad}, - {0x8137f336, 0xe2a4ae}, - {0x8137f337, 0xe2a4af}, - {0x8137f338, 0xe2a4b0}, - {0x8137f339, 0xe2a4b1}, - {0x8137f430, 0xe2a4b2}, - {0x8137f431, 0xe2a4b3}, - {0x8137f432, 0xe2a4b4}, - {0x8137f433, 0xe2a4b5}, - {0x8137f434, 0xe2a4b6}, - {0x8137f435, 0xe2a4b7}, - {0x8137f436, 0xe2a4b8}, - {0x8137f437, 0xe2a4b9}, - {0x8137f438, 0xe2a4ba}, - {0x8137f439, 0xe2a4bb}, - {0x8137f530, 0xe2a4bc}, - {0x8137f531, 0xe2a4bd}, - {0x8137f532, 0xe2a4be}, - {0x8137f533, 0xe2a4bf}, - {0x8137f534, 0xe2a580}, - {0x8137f535, 0xe2a581}, - {0x8137f536, 0xe2a582}, - {0x8137f537, 0xe2a583}, - {0x8137f538, 0xe2a584}, - {0x8137f539, 0xe2a585}, - {0x8137f630, 0xe2a586}, - {0x8137f631, 0xe2a587}, - {0x8137f632, 0xe2a588}, - {0x8137f633, 0xe2a589}, - {0x8137f634, 0xe2a58a}, - {0x8137f635, 0xe2a58b}, - {0x8137f636, 0xe2a58c}, - {0x8137f637, 0xe2a58d}, - {0x8137f638, 0xe2a58e}, - {0x8137f639, 0xe2a58f}, - {0x8137f730, 0xe2a590}, - {0x8137f731, 0xe2a591}, - {0x8137f732, 0xe2a592}, - {0x8137f733, 0xe2a593}, - {0x8137f734, 0xe2a594}, - {0x8137f735, 0xe2a595}, - {0x8137f736, 0xe2a596}, - {0x8137f737, 0xe2a597}, - {0x8137f738, 0xe2a598}, - {0x8137f739, 0xe2a599}, - {0x8137f830, 0xe2a59a}, - {0x8137f831, 0xe2a59b}, - {0x8137f832, 0xe2a59c}, - {0x8137f833, 0xe2a59d}, - {0x8137f834, 0xe2a59e}, - {0x8137f835, 0xe2a59f}, - {0x8137f836, 0xe2a5a0}, - {0x8137f837, 0xe2a5a1}, - {0x8137f838, 0xe2a5a2}, - {0x8137f839, 0xe2a5a3}, - {0x8137f930, 0xe2a5a4}, - {0x8137f931, 0xe2a5a5}, - {0x8137f932, 0xe2a5a6}, - {0x8137f933, 0xe2a5a7}, - {0x8137f934, 0xe2a5a8}, - {0x8137f935, 0xe2a5a9}, - {0x8137f936, 0xe2a5aa}, - {0x8137f937, 0xe2a5ab}, - {0x8137f938, 0xe2a5ac}, - {0x8137f939, 0xe2a5ad}, - {0x8137fa30, 0xe2a5ae}, - {0x8137fa31, 0xe2a5af}, - {0x8137fa32, 0xe2a5b0}, - {0x8137fa33, 0xe2a5b1}, - {0x8137fa34, 0xe2a5b2}, - {0x8137fa35, 0xe2a5b3}, - {0x8137fa36, 0xe2a5b4}, - {0x8137fa37, 0xe2a5b5}, - {0x8137fa38, 0xe2a5b6}, - {0x8137fa39, 0xe2a5b7}, - {0x8137fb30, 0xe2a5b8}, - {0x8137fb31, 0xe2a5b9}, - {0x8137fb32, 0xe2a5ba}, - {0x8137fb33, 0xe2a5bb}, - {0x8137fb34, 0xe2a5bc}, - {0x8137fb35, 0xe2a5bd}, - {0x8137fb36, 0xe2a5be}, - {0x8137fb37, 0xe2a5bf}, - {0x8137fb38, 0xe2a680}, - {0x8137fb39, 0xe2a681}, - {0x8137fc30, 0xe2a682}, - {0x8137fc31, 0xe2a683}, - {0x8137fc32, 0xe2a684}, - {0x8137fc33, 0xe2a685}, - {0x8137fc34, 0xe2a686}, - {0x8137fc35, 0xe2a687}, - {0x8137fc36, 0xe2a688}, - {0x8137fc37, 0xe2a689}, - {0x8137fc38, 0xe2a68a}, - {0x8137fc39, 0xe2a68b}, - {0x8137fd30, 0xe2a68c}, - {0x8137fd31, 0xe2a68d}, - {0x8137fd32, 0xe2a68e}, - {0x8137fd33, 0xe2a68f}, - {0x8137fd34, 0xe2a690}, - {0x8137fd35, 0xe2a691}, - {0x8137fd36, 0xe2a692}, - {0x8137fd37, 0xe2a693}, - {0x8137fd38, 0xe2a694}, - {0x8137fd39, 0xe2a695}, - {0x8137fe30, 0xe2a696}, - {0x8137fe31, 0xe2a697}, - {0x8137fe32, 0xe2a698}, - {0x8137fe33, 0xe2a699}, - {0x8137fe34, 0xe2a69a}, - {0x8137fe35, 0xe2a69b}, - {0x8137fe36, 0xe2a69c}, - {0x8137fe37, 0xe2a69d}, - {0x8137fe38, 0xe2a69e}, - {0x8137fe39, 0xe2a69f}, - {0x81388130, 0xe2a6a0}, - {0x81388131, 0xe2a6a1}, - {0x81388132, 0xe2a6a2}, - {0x81388133, 0xe2a6a3}, - {0x81388134, 0xe2a6a4}, - {0x81388135, 0xe2a6a5}, - {0x81388136, 0xe2a6a6}, - {0x81388137, 0xe2a6a7}, - {0x81388138, 0xe2a6a8}, - {0x81388139, 0xe2a6a9}, - {0x81388230, 0xe2a6aa}, - {0x81388231, 0xe2a6ab}, - {0x81388232, 0xe2a6ac}, - {0x81388233, 0xe2a6ad}, - {0x81388234, 0xe2a6ae}, - {0x81388235, 0xe2a6af}, - {0x81388236, 0xe2a6b0}, - {0x81388237, 0xe2a6b1}, - {0x81388238, 0xe2a6b2}, - {0x81388239, 0xe2a6b3}, - {0x81388330, 0xe2a6b4}, - {0x81388331, 0xe2a6b5}, - {0x81388332, 0xe2a6b6}, - {0x81388333, 0xe2a6b7}, - {0x81388334, 0xe2a6b8}, - {0x81388335, 0xe2a6b9}, - {0x81388336, 0xe2a6ba}, - {0x81388337, 0xe2a6bb}, - {0x81388338, 0xe2a6bc}, - {0x81388339, 0xe2a6bd}, - {0x81388430, 0xe2a6be}, - {0x81388431, 0xe2a6bf}, - {0x81388432, 0xe2a780}, - {0x81388433, 0xe2a781}, - {0x81388434, 0xe2a782}, - {0x81388435, 0xe2a783}, - {0x81388436, 0xe2a784}, - {0x81388437, 0xe2a785}, - {0x81388438, 0xe2a786}, - {0x81388439, 0xe2a787}, - {0x81388530, 0xe2a788}, - {0x81388531, 0xe2a789}, - {0x81388532, 0xe2a78a}, - {0x81388533, 0xe2a78b}, - {0x81388534, 0xe2a78c}, - {0x81388535, 0xe2a78d}, - {0x81388536, 0xe2a78e}, - {0x81388537, 0xe2a78f}, - {0x81388538, 0xe2a790}, - {0x81388539, 0xe2a791}, - {0x81388630, 0xe2a792}, - {0x81388631, 0xe2a793}, - {0x81388632, 0xe2a794}, - {0x81388633, 0xe2a795}, - {0x81388634, 0xe2a796}, - {0x81388635, 0xe2a797}, - {0x81388636, 0xe2a798}, - {0x81388637, 0xe2a799}, - {0x81388638, 0xe2a79a}, - {0x81388639, 0xe2a79b}, - {0x81388730, 0xe2a79c}, - {0x81388731, 0xe2a79d}, - {0x81388732, 0xe2a79e}, - {0x81388733, 0xe2a79f}, - {0x81388734, 0xe2a7a0}, - {0x81388735, 0xe2a7a1}, - {0x81388736, 0xe2a7a2}, - {0x81388737, 0xe2a7a3}, - {0x81388738, 0xe2a7a4}, - {0x81388739, 0xe2a7a5}, - {0x81388830, 0xe2a7a6}, - {0x81388831, 0xe2a7a7}, - {0x81388832, 0xe2a7a8}, - {0x81388833, 0xe2a7a9}, - {0x81388834, 0xe2a7aa}, - {0x81388835, 0xe2a7ab}, - {0x81388836, 0xe2a7ac}, - {0x81388837, 0xe2a7ad}, - {0x81388838, 0xe2a7ae}, - {0x81388839, 0xe2a7af}, - {0x81388930, 0xe2a7b0}, - {0x81388931, 0xe2a7b1}, - {0x81388932, 0xe2a7b2}, - {0x81388933, 0xe2a7b3}, - {0x81388934, 0xe2a7b4}, - {0x81388935, 0xe2a7b5}, - {0x81388936, 0xe2a7b6}, - {0x81388937, 0xe2a7b7}, - {0x81388938, 0xe2a7b8}, - {0x81388939, 0xe2a7b9}, - {0x81388a30, 0xe2a7ba}, - {0x81388a31, 0xe2a7bb}, - {0x81388a32, 0xe2a7bc}, - {0x81388a33, 0xe2a7bd}, - {0x81388a34, 0xe2a7be}, - {0x81388a35, 0xe2a7bf}, - {0x81388a36, 0xe2a880}, - {0x81388a37, 0xe2a881}, - {0x81388a38, 0xe2a882}, - {0x81388a39, 0xe2a883}, - {0x81388b30, 0xe2a884}, - {0x81388b31, 0xe2a885}, - {0x81388b32, 0xe2a886}, - {0x81388b33, 0xe2a887}, - {0x81388b34, 0xe2a888}, - {0x81388b35, 0xe2a889}, - {0x81388b36, 0xe2a88a}, - {0x81388b37, 0xe2a88b}, - {0x81388b38, 0xe2a88c}, - {0x81388b39, 0xe2a88d}, - {0x81388c30, 0xe2a88e}, - {0x81388c31, 0xe2a88f}, - {0x81388c32, 0xe2a890}, - {0x81388c33, 0xe2a891}, - {0x81388c34, 0xe2a892}, - {0x81388c35, 0xe2a893}, - {0x81388c36, 0xe2a894}, - {0x81388c37, 0xe2a895}, - {0x81388c38, 0xe2a896}, - {0x81388c39, 0xe2a897}, - {0x81388d30, 0xe2a898}, - {0x81388d31, 0xe2a899}, - {0x81388d32, 0xe2a89a}, - {0x81388d33, 0xe2a89b}, - {0x81388d34, 0xe2a89c}, - {0x81388d35, 0xe2a89d}, - {0x81388d36, 0xe2a89e}, - {0x81388d37, 0xe2a89f}, - {0x81388d38, 0xe2a8a0}, - {0x81388d39, 0xe2a8a1}, - {0x81388e30, 0xe2a8a2}, - {0x81388e31, 0xe2a8a3}, - {0x81388e32, 0xe2a8a4}, - {0x81388e33, 0xe2a8a5}, - {0x81388e34, 0xe2a8a6}, - {0x81388e35, 0xe2a8a7}, - {0x81388e36, 0xe2a8a8}, - {0x81388e37, 0xe2a8a9}, - {0x81388e38, 0xe2a8aa}, - {0x81388e39, 0xe2a8ab}, - {0x81388f30, 0xe2a8ac}, - {0x81388f31, 0xe2a8ad}, - {0x81388f32, 0xe2a8ae}, - {0x81388f33, 0xe2a8af}, - {0x81388f34, 0xe2a8b0}, - {0x81388f35, 0xe2a8b1}, - {0x81388f36, 0xe2a8b2}, - {0x81388f37, 0xe2a8b3}, - {0x81388f38, 0xe2a8b4}, - {0x81388f39, 0xe2a8b5}, - {0x81389030, 0xe2a8b6}, - {0x81389031, 0xe2a8b7}, - {0x81389032, 0xe2a8b8}, - {0x81389033, 0xe2a8b9}, - {0x81389034, 0xe2a8ba}, - {0x81389035, 0xe2a8bb}, - {0x81389036, 0xe2a8bc}, - {0x81389037, 0xe2a8bd}, - {0x81389038, 0xe2a8be}, - {0x81389039, 0xe2a8bf}, - {0x81389130, 0xe2a980}, - {0x81389131, 0xe2a981}, - {0x81389132, 0xe2a982}, - {0x81389133, 0xe2a983}, - {0x81389134, 0xe2a984}, - {0x81389135, 0xe2a985}, - {0x81389136, 0xe2a986}, - {0x81389137, 0xe2a987}, - {0x81389138, 0xe2a988}, - {0x81389139, 0xe2a989}, - {0x81389230, 0xe2a98a}, - {0x81389231, 0xe2a98b}, - {0x81389232, 0xe2a98c}, - {0x81389233, 0xe2a98d}, - {0x81389234, 0xe2a98e}, - {0x81389235, 0xe2a98f}, - {0x81389236, 0xe2a990}, - {0x81389237, 0xe2a991}, - {0x81389238, 0xe2a992}, - {0x81389239, 0xe2a993}, - {0x81389330, 0xe2a994}, - {0x81389331, 0xe2a995}, - {0x81389332, 0xe2a996}, - {0x81389333, 0xe2a997}, - {0x81389334, 0xe2a998}, - {0x81389335, 0xe2a999}, - {0x81389336, 0xe2a99a}, - {0x81389337, 0xe2a99b}, - {0x81389338, 0xe2a99c}, - {0x81389339, 0xe2a99d}, - {0x81389430, 0xe2a99e}, - {0x81389431, 0xe2a99f}, - {0x81389432, 0xe2a9a0}, - {0x81389433, 0xe2a9a1}, - {0x81389434, 0xe2a9a2}, - {0x81389435, 0xe2a9a3}, - {0x81389436, 0xe2a9a4}, - {0x81389437, 0xe2a9a5}, - {0x81389438, 0xe2a9a6}, - {0x81389439, 0xe2a9a7}, - {0x81389530, 0xe2a9a8}, - {0x81389531, 0xe2a9a9}, - {0x81389532, 0xe2a9aa}, - {0x81389533, 0xe2a9ab}, - {0x81389534, 0xe2a9ac}, - {0x81389535, 0xe2a9ad}, - {0x81389536, 0xe2a9ae}, - {0x81389537, 0xe2a9af}, - {0x81389538, 0xe2a9b0}, - {0x81389539, 0xe2a9b1}, - {0x81389630, 0xe2a9b2}, - {0x81389631, 0xe2a9b3}, - {0x81389632, 0xe2a9b4}, - {0x81389633, 0xe2a9b5}, - {0x81389634, 0xe2a9b6}, - {0x81389635, 0xe2a9b7}, - {0x81389636, 0xe2a9b8}, - {0x81389637, 0xe2a9b9}, - {0x81389638, 0xe2a9ba}, - {0x81389639, 0xe2a9bb}, - {0x81389730, 0xe2a9bc}, - {0x81389731, 0xe2a9bd}, - {0x81389732, 0xe2a9be}, - {0x81389733, 0xe2a9bf}, - {0x81389734, 0xe2aa80}, - {0x81389735, 0xe2aa81}, - {0x81389736, 0xe2aa82}, - {0x81389737, 0xe2aa83}, - {0x81389738, 0xe2aa84}, - {0x81389739, 0xe2aa85}, - {0x81389830, 0xe2aa86}, - {0x81389831, 0xe2aa87}, - {0x81389832, 0xe2aa88}, - {0x81389833, 0xe2aa89}, - {0x81389834, 0xe2aa8a}, - {0x81389835, 0xe2aa8b}, - {0x81389836, 0xe2aa8c}, - {0x81389837, 0xe2aa8d}, - {0x81389838, 0xe2aa8e}, - {0x81389839, 0xe2aa8f}, - {0x81389930, 0xe2aa90}, - {0x81389931, 0xe2aa91}, - {0x81389932, 0xe2aa92}, - {0x81389933, 0xe2aa93}, - {0x81389934, 0xe2aa94}, - {0x81389935, 0xe2aa95}, - {0x81389936, 0xe2aa96}, - {0x81389937, 0xe2aa97}, - {0x81389938, 0xe2aa98}, - {0x81389939, 0xe2aa99}, - {0x81389a30, 0xe2aa9a}, - {0x81389a31, 0xe2aa9b}, - {0x81389a32, 0xe2aa9c}, - {0x81389a33, 0xe2aa9d}, - {0x81389a34, 0xe2aa9e}, - {0x81389a35, 0xe2aa9f}, - {0x81389a36, 0xe2aaa0}, - {0x81389a37, 0xe2aaa1}, - {0x81389a38, 0xe2aaa2}, - {0x81389a39, 0xe2aaa3}, - {0x81389b30, 0xe2aaa4}, - {0x81389b31, 0xe2aaa5}, - {0x81389b32, 0xe2aaa6}, - {0x81389b33, 0xe2aaa7}, - {0x81389b34, 0xe2aaa8}, - {0x81389b35, 0xe2aaa9}, - {0x81389b36, 0xe2aaaa}, - {0x81389b37, 0xe2aaab}, - {0x81389b38, 0xe2aaac}, - {0x81389b39, 0xe2aaad}, - {0x81389c30, 0xe2aaae}, - {0x81389c31, 0xe2aaaf}, - {0x81389c32, 0xe2aab0}, - {0x81389c33, 0xe2aab1}, - {0x81389c34, 0xe2aab2}, - {0x81389c35, 0xe2aab3}, - {0x81389c36, 0xe2aab4}, - {0x81389c37, 0xe2aab5}, - {0x81389c38, 0xe2aab6}, - {0x81389c39, 0xe2aab7}, - {0x81389d30, 0xe2aab8}, - {0x81389d31, 0xe2aab9}, - {0x81389d32, 0xe2aaba}, - {0x81389d33, 0xe2aabb}, - {0x81389d34, 0xe2aabc}, - {0x81389d35, 0xe2aabd}, - {0x81389d36, 0xe2aabe}, - {0x81389d37, 0xe2aabf}, - {0x81389d38, 0xe2ab80}, - {0x81389d39, 0xe2ab81}, - {0x81389e30, 0xe2ab82}, - {0x81389e31, 0xe2ab83}, - {0x81389e32, 0xe2ab84}, - {0x81389e33, 0xe2ab85}, - {0x81389e34, 0xe2ab86}, - {0x81389e35, 0xe2ab87}, - {0x81389e36, 0xe2ab88}, - {0x81389e37, 0xe2ab89}, - {0x81389e38, 0xe2ab8a}, - {0x81389e39, 0xe2ab8b}, - {0x81389f30, 0xe2ab8c}, - {0x81389f31, 0xe2ab8d}, - {0x81389f32, 0xe2ab8e}, - {0x81389f33, 0xe2ab8f}, - {0x81389f34, 0xe2ab90}, - {0x81389f35, 0xe2ab91}, - {0x81389f36, 0xe2ab92}, - {0x81389f37, 0xe2ab93}, - {0x81389f38, 0xe2ab94}, - {0x81389f39, 0xe2ab95}, - {0x8138a030, 0xe2ab96}, - {0x8138a031, 0xe2ab97}, - {0x8138a032, 0xe2ab98}, - {0x8138a033, 0xe2ab99}, - {0x8138a034, 0xe2ab9a}, - {0x8138a035, 0xe2ab9b}, - {0x8138a036, 0xe2ab9c}, - {0x8138a037, 0xe2ab9d}, - {0x8138a038, 0xe2ab9e}, - {0x8138a039, 0xe2ab9f}, - {0x8138a130, 0xe2aba0}, - {0x8138a131, 0xe2aba1}, - {0x8138a132, 0xe2aba2}, - {0x8138a133, 0xe2aba3}, - {0x8138a134, 0xe2aba4}, - {0x8138a135, 0xe2aba5}, - {0x8138a136, 0xe2aba6}, - {0x8138a137, 0xe2aba7}, - {0x8138a138, 0xe2aba8}, - {0x8138a139, 0xe2aba9}, - {0x8138a230, 0xe2abaa}, - {0x8138a231, 0xe2abab}, - {0x8138a232, 0xe2abac}, - {0x8138a233, 0xe2abad}, - {0x8138a234, 0xe2abae}, - {0x8138a235, 0xe2abaf}, - {0x8138a236, 0xe2abb0}, - {0x8138a237, 0xe2abb1}, - {0x8138a238, 0xe2abb2}, - {0x8138a239, 0xe2abb3}, - {0x8138a330, 0xe2abb4}, - {0x8138a331, 0xe2abb5}, - {0x8138a332, 0xe2abb6}, - {0x8138a333, 0xe2abb7}, - {0x8138a334, 0xe2abb8}, - {0x8138a335, 0xe2abb9}, - {0x8138a336, 0xe2abba}, - {0x8138a337, 0xe2abbb}, - {0x8138a338, 0xe2abbc}, - {0x8138a339, 0xe2abbd}, - {0x8138a430, 0xe2abbe}, - {0x8138a431, 0xe2abbf}, - {0x8138a432, 0xe2ac80}, - {0x8138a433, 0xe2ac81}, - {0x8138a434, 0xe2ac82}, - {0x8138a435, 0xe2ac83}, - {0x8138a436, 0xe2ac84}, - {0x8138a437, 0xe2ac85}, - {0x8138a438, 0xe2ac86}, - {0x8138a439, 0xe2ac87}, - {0x8138a530, 0xe2ac88}, - {0x8138a531, 0xe2ac89}, - {0x8138a532, 0xe2ac8a}, - {0x8138a533, 0xe2ac8b}, - {0x8138a534, 0xe2ac8c}, - {0x8138a535, 0xe2ac8d}, - {0x8138a536, 0xe2ac8e}, - {0x8138a537, 0xe2ac8f}, - {0x8138a538, 0xe2ac90}, - {0x8138a539, 0xe2ac91}, - {0x8138a630, 0xe2ac92}, - {0x8138a631, 0xe2ac93}, - {0x8138a632, 0xe2ac94}, - {0x8138a633, 0xe2ac95}, - {0x8138a634, 0xe2ac96}, - {0x8138a635, 0xe2ac97}, - {0x8138a636, 0xe2ac98}, - {0x8138a637, 0xe2ac99}, - {0x8138a638, 0xe2ac9a}, - {0x8138a639, 0xe2ac9b}, - {0x8138a730, 0xe2ac9c}, - {0x8138a731, 0xe2ac9d}, - {0x8138a732, 0xe2ac9e}, - {0x8138a733, 0xe2ac9f}, - {0x8138a734, 0xe2aca0}, - {0x8138a735, 0xe2aca1}, - {0x8138a736, 0xe2aca2}, - {0x8138a737, 0xe2aca3}, - {0x8138a738, 0xe2aca4}, - {0x8138a739, 0xe2aca5}, - {0x8138a830, 0xe2aca6}, - {0x8138a831, 0xe2aca7}, - {0x8138a832, 0xe2aca8}, - {0x8138a833, 0xe2aca9}, - {0x8138a834, 0xe2acaa}, - {0x8138a835, 0xe2acab}, - {0x8138a836, 0xe2acac}, - {0x8138a837, 0xe2acad}, - {0x8138a838, 0xe2acae}, - {0x8138a839, 0xe2acaf}, - {0x8138a930, 0xe2acb0}, - {0x8138a931, 0xe2acb1}, - {0x8138a932, 0xe2acb2}, - {0x8138a933, 0xe2acb3}, - {0x8138a934, 0xe2acb4}, - {0x8138a935, 0xe2acb5}, - {0x8138a936, 0xe2acb6}, - {0x8138a937, 0xe2acb7}, - {0x8138a938, 0xe2acb8}, - {0x8138a939, 0xe2acb9}, - {0x8138aa30, 0xe2acba}, - {0x8138aa31, 0xe2acbb}, - {0x8138aa32, 0xe2acbc}, - {0x8138aa33, 0xe2acbd}, - {0x8138aa34, 0xe2acbe}, - {0x8138aa35, 0xe2acbf}, - {0x8138aa36, 0xe2ad80}, - {0x8138aa37, 0xe2ad81}, - {0x8138aa38, 0xe2ad82}, - {0x8138aa39, 0xe2ad83}, - {0x8138ab30, 0xe2ad84}, - {0x8138ab31, 0xe2ad85}, - {0x8138ab32, 0xe2ad86}, - {0x8138ab33, 0xe2ad87}, - {0x8138ab34, 0xe2ad88}, - {0x8138ab35, 0xe2ad89}, - {0x8138ab36, 0xe2ad8a}, - {0x8138ab37, 0xe2ad8b}, - {0x8138ab38, 0xe2ad8c}, - {0x8138ab39, 0xe2ad8d}, - {0x8138ac30, 0xe2ad8e}, - {0x8138ac31, 0xe2ad8f}, - {0x8138ac32, 0xe2ad90}, - {0x8138ac33, 0xe2ad91}, - {0x8138ac34, 0xe2ad92}, - {0x8138ac35, 0xe2ad93}, - {0x8138ac36, 0xe2ad94}, - {0x8138ac37, 0xe2ad95}, - {0x8138ac38, 0xe2ad96}, - {0x8138ac39, 0xe2ad97}, - {0x8138ad30, 0xe2ad98}, - {0x8138ad31, 0xe2ad99}, - {0x8138ad32, 0xe2ad9a}, - {0x8138ad33, 0xe2ad9b}, - {0x8138ad34, 0xe2ad9c}, - {0x8138ad35, 0xe2ad9d}, - {0x8138ad36, 0xe2ad9e}, - {0x8138ad37, 0xe2ad9f}, - {0x8138ad38, 0xe2ada0}, - {0x8138ad39, 0xe2ada1}, - {0x8138ae30, 0xe2ada2}, - {0x8138ae31, 0xe2ada3}, - {0x8138ae32, 0xe2ada4}, - {0x8138ae33, 0xe2ada5}, - {0x8138ae34, 0xe2ada6}, - {0x8138ae35, 0xe2ada7}, - {0x8138ae36, 0xe2ada8}, - {0x8138ae37, 0xe2ada9}, - {0x8138ae38, 0xe2adaa}, - {0x8138ae39, 0xe2adab}, - {0x8138af30, 0xe2adac}, - {0x8138af31, 0xe2adad}, - {0x8138af32, 0xe2adae}, - {0x8138af33, 0xe2adaf}, - {0x8138af34, 0xe2adb0}, - {0x8138af35, 0xe2adb1}, - {0x8138af36, 0xe2adb2}, - {0x8138af37, 0xe2adb3}, - {0x8138af38, 0xe2adb4}, - {0x8138af39, 0xe2adb5}, - {0x8138b030, 0xe2adb6}, - {0x8138b031, 0xe2adb7}, - {0x8138b032, 0xe2adb8}, - {0x8138b033, 0xe2adb9}, - {0x8138b034, 0xe2adba}, - {0x8138b035, 0xe2adbb}, - {0x8138b036, 0xe2adbc}, - {0x8138b037, 0xe2adbd}, - {0x8138b038, 0xe2adbe}, - {0x8138b039, 0xe2adbf}, - {0x8138b130, 0xe2ae80}, - {0x8138b131, 0xe2ae81}, - {0x8138b132, 0xe2ae82}, - {0x8138b133, 0xe2ae83}, - {0x8138b134, 0xe2ae84}, - {0x8138b135, 0xe2ae85}, - {0x8138b136, 0xe2ae86}, - {0x8138b137, 0xe2ae87}, - {0x8138b138, 0xe2ae88}, - {0x8138b139, 0xe2ae89}, - {0x8138b230, 0xe2ae8a}, - {0x8138b231, 0xe2ae8b}, - {0x8138b232, 0xe2ae8c}, - {0x8138b233, 0xe2ae8d}, - {0x8138b234, 0xe2ae8e}, - {0x8138b235, 0xe2ae8f}, - {0x8138b236, 0xe2ae90}, - {0x8138b237, 0xe2ae91}, - {0x8138b238, 0xe2ae92}, - {0x8138b239, 0xe2ae93}, - {0x8138b330, 0xe2ae94}, - {0x8138b331, 0xe2ae95}, - {0x8138b332, 0xe2ae96}, - {0x8138b333, 0xe2ae97}, - {0x8138b334, 0xe2ae98}, - {0x8138b335, 0xe2ae99}, - {0x8138b336, 0xe2ae9a}, - {0x8138b337, 0xe2ae9b}, - {0x8138b338, 0xe2ae9c}, - {0x8138b339, 0xe2ae9d}, - {0x8138b430, 0xe2ae9e}, - {0x8138b431, 0xe2ae9f}, - {0x8138b432, 0xe2aea0}, - {0x8138b433, 0xe2aea1}, - {0x8138b434, 0xe2aea2}, - {0x8138b435, 0xe2aea3}, - {0x8138b436, 0xe2aea4}, - {0x8138b437, 0xe2aea5}, - {0x8138b438, 0xe2aea6}, - {0x8138b439, 0xe2aea7}, - {0x8138b530, 0xe2aea8}, - {0x8138b531, 0xe2aea9}, - {0x8138b532, 0xe2aeaa}, - {0x8138b533, 0xe2aeab}, - {0x8138b534, 0xe2aeac}, - {0x8138b535, 0xe2aead}, - {0x8138b536, 0xe2aeae}, - {0x8138b537, 0xe2aeaf}, - {0x8138b538, 0xe2aeb0}, - {0x8138b539, 0xe2aeb1}, - {0x8138b630, 0xe2aeb2}, - {0x8138b631, 0xe2aeb3}, - {0x8138b632, 0xe2aeb4}, - {0x8138b633, 0xe2aeb5}, - {0x8138b634, 0xe2aeb6}, - {0x8138b635, 0xe2aeb7}, - {0x8138b636, 0xe2aeb8}, - {0x8138b637, 0xe2aeb9}, - {0x8138b638, 0xe2aeba}, - {0x8138b639, 0xe2aebb}, - {0x8138b730, 0xe2aebc}, - {0x8138b731, 0xe2aebd}, - {0x8138b732, 0xe2aebe}, - {0x8138b733, 0xe2aebf}, - {0x8138b734, 0xe2af80}, - {0x8138b735, 0xe2af81}, - {0x8138b736, 0xe2af82}, - {0x8138b737, 0xe2af83}, - {0x8138b738, 0xe2af84}, - {0x8138b739, 0xe2af85}, - {0x8138b830, 0xe2af86}, - {0x8138b831, 0xe2af87}, - {0x8138b832, 0xe2af88}, - {0x8138b833, 0xe2af89}, - {0x8138b834, 0xe2af8a}, - {0x8138b835, 0xe2af8b}, - {0x8138b836, 0xe2af8c}, - {0x8138b837, 0xe2af8d}, - {0x8138b838, 0xe2af8e}, - {0x8138b839, 0xe2af8f}, - {0x8138b930, 0xe2af90}, - {0x8138b931, 0xe2af91}, - {0x8138b932, 0xe2af92}, - {0x8138b933, 0xe2af93}, - {0x8138b934, 0xe2af94}, - {0x8138b935, 0xe2af95}, - {0x8138b936, 0xe2af96}, - {0x8138b937, 0xe2af97}, - {0x8138b938, 0xe2af98}, - {0x8138b939, 0xe2af99}, - {0x8138ba30, 0xe2af9a}, - {0x8138ba31, 0xe2af9b}, - {0x8138ba32, 0xe2af9c}, - {0x8138ba33, 0xe2af9d}, - {0x8138ba34, 0xe2af9e}, - {0x8138ba35, 0xe2af9f}, - {0x8138ba36, 0xe2afa0}, - {0x8138ba37, 0xe2afa1}, - {0x8138ba38, 0xe2afa2}, - {0x8138ba39, 0xe2afa3}, - {0x8138bb30, 0xe2afa4}, - {0x8138bb31, 0xe2afa5}, - {0x8138bb32, 0xe2afa6}, - {0x8138bb33, 0xe2afa7}, - {0x8138bb34, 0xe2afa8}, - {0x8138bb35, 0xe2afa9}, - {0x8138bb36, 0xe2afaa}, - {0x8138bb37, 0xe2afab}, - {0x8138bb38, 0xe2afac}, - {0x8138bb39, 0xe2afad}, - {0x8138bc30, 0xe2afae}, - {0x8138bc31, 0xe2afaf}, - {0x8138bc32, 0xe2afb0}, - {0x8138bc33, 0xe2afb1}, - {0x8138bc34, 0xe2afb2}, - {0x8138bc35, 0xe2afb3}, - {0x8138bc36, 0xe2afb4}, - {0x8138bc37, 0xe2afb5}, - {0x8138bc38, 0xe2afb6}, - {0x8138bc39, 0xe2afb7}, - {0x8138bd30, 0xe2afb8}, - {0x8138bd31, 0xe2afb9}, - {0x8138bd32, 0xe2afba}, - {0x8138bd33, 0xe2afbb}, - {0x8138bd34, 0xe2afbc}, - {0x8138bd35, 0xe2afbd}, - {0x8138bd36, 0xe2afbe}, - {0x8138bd37, 0xe2afbf}, - {0x8138bd38, 0xe2b080}, - {0x8138bd39, 0xe2b081}, - {0x8138be30, 0xe2b082}, - {0x8138be31, 0xe2b083}, - {0x8138be32, 0xe2b084}, - {0x8138be33, 0xe2b085}, - {0x8138be34, 0xe2b086}, - {0x8138be35, 0xe2b087}, - {0x8138be36, 0xe2b088}, - {0x8138be37, 0xe2b089}, - {0x8138be38, 0xe2b08a}, - {0x8138be39, 0xe2b08b}, - {0x8138bf30, 0xe2b08c}, - {0x8138bf31, 0xe2b08d}, - {0x8138bf32, 0xe2b08e}, - {0x8138bf33, 0xe2b08f}, - {0x8138bf34, 0xe2b090}, - {0x8138bf35, 0xe2b091}, - {0x8138bf36, 0xe2b092}, - {0x8138bf37, 0xe2b093}, - {0x8138bf38, 0xe2b094}, - {0x8138bf39, 0xe2b095}, - {0x8138c030, 0xe2b096}, - {0x8138c031, 0xe2b097}, - {0x8138c032, 0xe2b098}, - {0x8138c033, 0xe2b099}, - {0x8138c034, 0xe2b09a}, - {0x8138c035, 0xe2b09b}, - {0x8138c036, 0xe2b09c}, - {0x8138c037, 0xe2b09d}, - {0x8138c038, 0xe2b09e}, - {0x8138c039, 0xe2b09f}, - {0x8138c130, 0xe2b0a0}, - {0x8138c131, 0xe2b0a1}, - {0x8138c132, 0xe2b0a2}, - {0x8138c133, 0xe2b0a3}, - {0x8138c134, 0xe2b0a4}, - {0x8138c135, 0xe2b0a5}, - {0x8138c136, 0xe2b0a6}, - {0x8138c137, 0xe2b0a7}, - {0x8138c138, 0xe2b0a8}, - {0x8138c139, 0xe2b0a9}, - {0x8138c230, 0xe2b0aa}, - {0x8138c231, 0xe2b0ab}, - {0x8138c232, 0xe2b0ac}, - {0x8138c233, 0xe2b0ad}, - {0x8138c234, 0xe2b0ae}, - {0x8138c235, 0xe2b0af}, - {0x8138c236, 0xe2b0b0}, - {0x8138c237, 0xe2b0b1}, - {0x8138c238, 0xe2b0b2}, - {0x8138c239, 0xe2b0b3}, - {0x8138c330, 0xe2b0b4}, - {0x8138c331, 0xe2b0b5}, - {0x8138c332, 0xe2b0b6}, - {0x8138c333, 0xe2b0b7}, - {0x8138c334, 0xe2b0b8}, - {0x8138c335, 0xe2b0b9}, - {0x8138c336, 0xe2b0ba}, - {0x8138c337, 0xe2b0bb}, - {0x8138c338, 0xe2b0bc}, - {0x8138c339, 0xe2b0bd}, - {0x8138c430, 0xe2b0be}, - {0x8138c431, 0xe2b0bf}, - {0x8138c432, 0xe2b180}, - {0x8138c433, 0xe2b181}, - {0x8138c434, 0xe2b182}, - {0x8138c435, 0xe2b183}, - {0x8138c436, 0xe2b184}, - {0x8138c437, 0xe2b185}, - {0x8138c438, 0xe2b186}, - {0x8138c439, 0xe2b187}, - {0x8138c530, 0xe2b188}, - {0x8138c531, 0xe2b189}, - {0x8138c532, 0xe2b18a}, - {0x8138c533, 0xe2b18b}, - {0x8138c534, 0xe2b18c}, - {0x8138c535, 0xe2b18d}, - {0x8138c536, 0xe2b18e}, - {0x8138c537, 0xe2b18f}, - {0x8138c538, 0xe2b190}, - {0x8138c539, 0xe2b191}, - {0x8138c630, 0xe2b192}, - {0x8138c631, 0xe2b193}, - {0x8138c632, 0xe2b194}, - {0x8138c633, 0xe2b195}, - {0x8138c634, 0xe2b196}, - {0x8138c635, 0xe2b197}, - {0x8138c636, 0xe2b198}, - {0x8138c637, 0xe2b199}, - {0x8138c638, 0xe2b19a}, - {0x8138c639, 0xe2b19b}, - {0x8138c730, 0xe2b19c}, - {0x8138c731, 0xe2b19d}, - {0x8138c732, 0xe2b19e}, - {0x8138c733, 0xe2b19f}, - {0x8138c734, 0xe2b1a0}, - {0x8138c735, 0xe2b1a1}, - {0x8138c736, 0xe2b1a2}, - {0x8138c737, 0xe2b1a3}, - {0x8138c738, 0xe2b1a4}, - {0x8138c739, 0xe2b1a5}, - {0x8138c830, 0xe2b1a6}, - {0x8138c831, 0xe2b1a7}, - {0x8138c832, 0xe2b1a8}, - {0x8138c833, 0xe2b1a9}, - {0x8138c834, 0xe2b1aa}, - {0x8138c835, 0xe2b1ab}, - {0x8138c836, 0xe2b1ac}, - {0x8138c837, 0xe2b1ad}, - {0x8138c838, 0xe2b1ae}, - {0x8138c839, 0xe2b1af}, - {0x8138c930, 0xe2b1b0}, - {0x8138c931, 0xe2b1b1}, - {0x8138c932, 0xe2b1b2}, - {0x8138c933, 0xe2b1b3}, - {0x8138c934, 0xe2b1b4}, - {0x8138c935, 0xe2b1b5}, - {0x8138c936, 0xe2b1b6}, - {0x8138c937, 0xe2b1b7}, - {0x8138c938, 0xe2b1b8}, - {0x8138c939, 0xe2b1b9}, - {0x8138ca30, 0xe2b1ba}, - {0x8138ca31, 0xe2b1bb}, - {0x8138ca32, 0xe2b1bc}, - {0x8138ca33, 0xe2b1bd}, - {0x8138ca34, 0xe2b1be}, - {0x8138ca35, 0xe2b1bf}, - {0x8138ca36, 0xe2b280}, - {0x8138ca37, 0xe2b281}, - {0x8138ca38, 0xe2b282}, - {0x8138ca39, 0xe2b283}, - {0x8138cb30, 0xe2b284}, - {0x8138cb31, 0xe2b285}, - {0x8138cb32, 0xe2b286}, - {0x8138cb33, 0xe2b287}, - {0x8138cb34, 0xe2b288}, - {0x8138cb35, 0xe2b289}, - {0x8138cb36, 0xe2b28a}, - {0x8138cb37, 0xe2b28b}, - {0x8138cb38, 0xe2b28c}, - {0x8138cb39, 0xe2b28d}, - {0x8138cc30, 0xe2b28e}, - {0x8138cc31, 0xe2b28f}, - {0x8138cc32, 0xe2b290}, - {0x8138cc33, 0xe2b291}, - {0x8138cc34, 0xe2b292}, - {0x8138cc35, 0xe2b293}, - {0x8138cc36, 0xe2b294}, - {0x8138cc37, 0xe2b295}, - {0x8138cc38, 0xe2b296}, - {0x8138cc39, 0xe2b297}, - {0x8138cd30, 0xe2b298}, - {0x8138cd31, 0xe2b299}, - {0x8138cd32, 0xe2b29a}, - {0x8138cd33, 0xe2b29b}, - {0x8138cd34, 0xe2b29c}, - {0x8138cd35, 0xe2b29d}, - {0x8138cd36, 0xe2b29e}, - {0x8138cd37, 0xe2b29f}, - {0x8138cd38, 0xe2b2a0}, - {0x8138cd39, 0xe2b2a1}, - {0x8138ce30, 0xe2b2a2}, - {0x8138ce31, 0xe2b2a3}, - {0x8138ce32, 0xe2b2a4}, - {0x8138ce33, 0xe2b2a5}, - {0x8138ce34, 0xe2b2a6}, - {0x8138ce35, 0xe2b2a7}, - {0x8138ce36, 0xe2b2a8}, - {0x8138ce37, 0xe2b2a9}, - {0x8138ce38, 0xe2b2aa}, - {0x8138ce39, 0xe2b2ab}, - {0x8138cf30, 0xe2b2ac}, - {0x8138cf31, 0xe2b2ad}, - {0x8138cf32, 0xe2b2ae}, - {0x8138cf33, 0xe2b2af}, - {0x8138cf34, 0xe2b2b0}, - {0x8138cf35, 0xe2b2b1}, - {0x8138cf36, 0xe2b2b2}, - {0x8138cf37, 0xe2b2b3}, - {0x8138cf38, 0xe2b2b4}, - {0x8138cf39, 0xe2b2b5}, - {0x8138d030, 0xe2b2b6}, - {0x8138d031, 0xe2b2b7}, - {0x8138d032, 0xe2b2b8}, - {0x8138d033, 0xe2b2b9}, - {0x8138d034, 0xe2b2ba}, - {0x8138d035, 0xe2b2bb}, - {0x8138d036, 0xe2b2bc}, - {0x8138d037, 0xe2b2bd}, - {0x8138d038, 0xe2b2be}, - {0x8138d039, 0xe2b2bf}, - {0x8138d130, 0xe2b380}, - {0x8138d131, 0xe2b381}, - {0x8138d132, 0xe2b382}, - {0x8138d133, 0xe2b383}, - {0x8138d134, 0xe2b384}, - {0x8138d135, 0xe2b385}, - {0x8138d136, 0xe2b386}, - {0x8138d137, 0xe2b387}, - {0x8138d138, 0xe2b388}, - {0x8138d139, 0xe2b389}, - {0x8138d230, 0xe2b38a}, - {0x8138d231, 0xe2b38b}, - {0x8138d232, 0xe2b38c}, - {0x8138d233, 0xe2b38d}, - {0x8138d234, 0xe2b38e}, - {0x8138d235, 0xe2b38f}, - {0x8138d236, 0xe2b390}, - {0x8138d237, 0xe2b391}, - {0x8138d238, 0xe2b392}, - {0x8138d239, 0xe2b393}, - {0x8138d330, 0xe2b394}, - {0x8138d331, 0xe2b395}, - {0x8138d332, 0xe2b396}, - {0x8138d333, 0xe2b397}, - {0x8138d334, 0xe2b398}, - {0x8138d335, 0xe2b399}, - {0x8138d336, 0xe2b39a}, - {0x8138d337, 0xe2b39b}, - {0x8138d338, 0xe2b39c}, - {0x8138d339, 0xe2b39d}, - {0x8138d430, 0xe2b39e}, - {0x8138d431, 0xe2b39f}, - {0x8138d432, 0xe2b3a0}, - {0x8138d433, 0xe2b3a1}, - {0x8138d434, 0xe2b3a2}, - {0x8138d435, 0xe2b3a3}, - {0x8138d436, 0xe2b3a4}, - {0x8138d437, 0xe2b3a5}, - {0x8138d438, 0xe2b3a6}, - {0x8138d439, 0xe2b3a7}, - {0x8138d530, 0xe2b3a8}, - {0x8138d531, 0xe2b3a9}, - {0x8138d532, 0xe2b3aa}, - {0x8138d533, 0xe2b3ab}, - {0x8138d534, 0xe2b3ac}, - {0x8138d535, 0xe2b3ad}, - {0x8138d536, 0xe2b3ae}, - {0x8138d537, 0xe2b3af}, - {0x8138d538, 0xe2b3b0}, - {0x8138d539, 0xe2b3b1}, - {0x8138d630, 0xe2b3b2}, - {0x8138d631, 0xe2b3b3}, - {0x8138d632, 0xe2b3b4}, - {0x8138d633, 0xe2b3b5}, - {0x8138d634, 0xe2b3b6}, - {0x8138d635, 0xe2b3b7}, - {0x8138d636, 0xe2b3b8}, - {0x8138d637, 0xe2b3b9}, - {0x8138d638, 0xe2b3ba}, - {0x8138d639, 0xe2b3bb}, - {0x8138d730, 0xe2b3bc}, - {0x8138d731, 0xe2b3bd}, - {0x8138d732, 0xe2b3be}, - {0x8138d733, 0xe2b3bf}, - {0x8138d734, 0xe2b480}, - {0x8138d735, 0xe2b481}, - {0x8138d736, 0xe2b482}, - {0x8138d737, 0xe2b483}, - {0x8138d738, 0xe2b484}, - {0x8138d739, 0xe2b485}, - {0x8138d830, 0xe2b486}, - {0x8138d831, 0xe2b487}, - {0x8138d832, 0xe2b488}, - {0x8138d833, 0xe2b489}, - {0x8138d834, 0xe2b48a}, - {0x8138d835, 0xe2b48b}, - {0x8138d836, 0xe2b48c}, - {0x8138d837, 0xe2b48d}, - {0x8138d838, 0xe2b48e}, - {0x8138d839, 0xe2b48f}, - {0x8138d930, 0xe2b490}, - {0x8138d931, 0xe2b491}, - {0x8138d932, 0xe2b492}, - {0x8138d933, 0xe2b493}, - {0x8138d934, 0xe2b494}, - {0x8138d935, 0xe2b495}, - {0x8138d936, 0xe2b496}, - {0x8138d937, 0xe2b497}, - {0x8138d938, 0xe2b498}, - {0x8138d939, 0xe2b499}, - {0x8138da30, 0xe2b49a}, - {0x8138da31, 0xe2b49b}, - {0x8138da32, 0xe2b49c}, - {0x8138da33, 0xe2b49d}, - {0x8138da34, 0xe2b49e}, - {0x8138da35, 0xe2b49f}, - {0x8138da36, 0xe2b4a0}, - {0x8138da37, 0xe2b4a1}, - {0x8138da38, 0xe2b4a2}, - {0x8138da39, 0xe2b4a3}, - {0x8138db30, 0xe2b4a4}, - {0x8138db31, 0xe2b4a5}, - {0x8138db32, 0xe2b4a6}, - {0x8138db33, 0xe2b4a7}, - {0x8138db34, 0xe2b4a8}, - {0x8138db35, 0xe2b4a9}, - {0x8138db36, 0xe2b4aa}, - {0x8138db37, 0xe2b4ab}, - {0x8138db38, 0xe2b4ac}, - {0x8138db39, 0xe2b4ad}, - {0x8138dc30, 0xe2b4ae}, - {0x8138dc31, 0xe2b4af}, - {0x8138dc32, 0xe2b4b0}, - {0x8138dc33, 0xe2b4b1}, - {0x8138dc34, 0xe2b4b2}, - {0x8138dc35, 0xe2b4b3}, - {0x8138dc36, 0xe2b4b4}, - {0x8138dc37, 0xe2b4b5}, - {0x8138dc38, 0xe2b4b6}, - {0x8138dc39, 0xe2b4b7}, - {0x8138dd30, 0xe2b4b8}, - {0x8138dd31, 0xe2b4b9}, - {0x8138dd32, 0xe2b4ba}, - {0x8138dd33, 0xe2b4bb}, - {0x8138dd34, 0xe2b4bc}, - {0x8138dd35, 0xe2b4bd}, - {0x8138dd36, 0xe2b4be}, - {0x8138dd37, 0xe2b4bf}, - {0x8138dd38, 0xe2b580}, - {0x8138dd39, 0xe2b581}, - {0x8138de30, 0xe2b582}, - {0x8138de31, 0xe2b583}, - {0x8138de32, 0xe2b584}, - {0x8138de33, 0xe2b585}, - {0x8138de34, 0xe2b586}, - {0x8138de35, 0xe2b587}, - {0x8138de36, 0xe2b588}, - {0x8138de37, 0xe2b589}, - {0x8138de38, 0xe2b58a}, - {0x8138de39, 0xe2b58b}, - {0x8138df30, 0xe2b58c}, - {0x8138df31, 0xe2b58d}, - {0x8138df32, 0xe2b58e}, - {0x8138df33, 0xe2b58f}, - {0x8138df34, 0xe2b590}, - {0x8138df35, 0xe2b591}, - {0x8138df36, 0xe2b592}, - {0x8138df37, 0xe2b593}, - {0x8138df38, 0xe2b594}, - {0x8138df39, 0xe2b595}, - {0x8138e030, 0xe2b596}, - {0x8138e031, 0xe2b597}, - {0x8138e032, 0xe2b598}, - {0x8138e033, 0xe2b599}, - {0x8138e034, 0xe2b59a}, - {0x8138e035, 0xe2b59b}, - {0x8138e036, 0xe2b59c}, - {0x8138e037, 0xe2b59d}, - {0x8138e038, 0xe2b59e}, - {0x8138e039, 0xe2b59f}, - {0x8138e130, 0xe2b5a0}, - {0x8138e131, 0xe2b5a1}, - {0x8138e132, 0xe2b5a2}, - {0x8138e133, 0xe2b5a3}, - {0x8138e134, 0xe2b5a4}, - {0x8138e135, 0xe2b5a5}, - {0x8138e136, 0xe2b5a6}, - {0x8138e137, 0xe2b5a7}, - {0x8138e138, 0xe2b5a8}, - {0x8138e139, 0xe2b5a9}, - {0x8138e230, 0xe2b5aa}, - {0x8138e231, 0xe2b5ab}, - {0x8138e232, 0xe2b5ac}, - {0x8138e233, 0xe2b5ad}, - {0x8138e234, 0xe2b5ae}, - {0x8138e235, 0xe2b5af}, - {0x8138e236, 0xe2b5b0}, - {0x8138e237, 0xe2b5b1}, - {0x8138e238, 0xe2b5b2}, - {0x8138e239, 0xe2b5b3}, - {0x8138e330, 0xe2b5b4}, - {0x8138e331, 0xe2b5b5}, - {0x8138e332, 0xe2b5b6}, - {0x8138e333, 0xe2b5b7}, - {0x8138e334, 0xe2b5b8}, - {0x8138e335, 0xe2b5b9}, - {0x8138e336, 0xe2b5ba}, - {0x8138e337, 0xe2b5bb}, - {0x8138e338, 0xe2b5bc}, - {0x8138e339, 0xe2b5bd}, - {0x8138e430, 0xe2b5be}, - {0x8138e431, 0xe2b5bf}, - {0x8138e432, 0xe2b680}, - {0x8138e433, 0xe2b681}, - {0x8138e434, 0xe2b682}, - {0x8138e435, 0xe2b683}, - {0x8138e436, 0xe2b684}, - {0x8138e437, 0xe2b685}, - {0x8138e438, 0xe2b686}, - {0x8138e439, 0xe2b687}, - {0x8138e530, 0xe2b688}, - {0x8138e531, 0xe2b689}, - {0x8138e532, 0xe2b68a}, - {0x8138e533, 0xe2b68b}, - {0x8138e534, 0xe2b68c}, - {0x8138e535, 0xe2b68d}, - {0x8138e536, 0xe2b68e}, - {0x8138e537, 0xe2b68f}, - {0x8138e538, 0xe2b690}, - {0x8138e539, 0xe2b691}, - {0x8138e630, 0xe2b692}, - {0x8138e631, 0xe2b693}, - {0x8138e632, 0xe2b694}, - {0x8138e633, 0xe2b695}, - {0x8138e634, 0xe2b696}, - {0x8138e635, 0xe2b697}, - {0x8138e636, 0xe2b698}, - {0x8138e637, 0xe2b699}, - {0x8138e638, 0xe2b69a}, - {0x8138e639, 0xe2b69b}, - {0x8138e730, 0xe2b69c}, - {0x8138e731, 0xe2b69d}, - {0x8138e732, 0xe2b69e}, - {0x8138e733, 0xe2b69f}, - {0x8138e734, 0xe2b6a0}, - {0x8138e735, 0xe2b6a1}, - {0x8138e736, 0xe2b6a2}, - {0x8138e737, 0xe2b6a3}, - {0x8138e738, 0xe2b6a4}, - {0x8138e739, 0xe2b6a5}, - {0x8138e830, 0xe2b6a6}, - {0x8138e831, 0xe2b6a7}, - {0x8138e832, 0xe2b6a8}, - {0x8138e833, 0xe2b6a9}, - {0x8138e834, 0xe2b6aa}, - {0x8138e835, 0xe2b6ab}, - {0x8138e836, 0xe2b6ac}, - {0x8138e837, 0xe2b6ad}, - {0x8138e838, 0xe2b6ae}, - {0x8138e839, 0xe2b6af}, - {0x8138e930, 0xe2b6b0}, - {0x8138e931, 0xe2b6b1}, - {0x8138e932, 0xe2b6b2}, - {0x8138e933, 0xe2b6b3}, - {0x8138e934, 0xe2b6b4}, - {0x8138e935, 0xe2b6b5}, - {0x8138e936, 0xe2b6b6}, - {0x8138e937, 0xe2b6b7}, - {0x8138e938, 0xe2b6b8}, - {0x8138e939, 0xe2b6b9}, - {0x8138ea30, 0xe2b6ba}, - {0x8138ea31, 0xe2b6bb}, - {0x8138ea32, 0xe2b6bc}, - {0x8138ea33, 0xe2b6bd}, - {0x8138ea34, 0xe2b6be}, - {0x8138ea35, 0xe2b6bf}, - {0x8138ea36, 0xe2b780}, - {0x8138ea37, 0xe2b781}, - {0x8138ea38, 0xe2b782}, - {0x8138ea39, 0xe2b783}, - {0x8138eb30, 0xe2b784}, - {0x8138eb31, 0xe2b785}, - {0x8138eb32, 0xe2b786}, - {0x8138eb33, 0xe2b787}, - {0x8138eb34, 0xe2b788}, - {0x8138eb35, 0xe2b789}, - {0x8138eb36, 0xe2b78a}, - {0x8138eb37, 0xe2b78b}, - {0x8138eb38, 0xe2b78c}, - {0x8138eb39, 0xe2b78d}, - {0x8138ec30, 0xe2b78e}, - {0x8138ec31, 0xe2b78f}, - {0x8138ec32, 0xe2b790}, - {0x8138ec33, 0xe2b791}, - {0x8138ec34, 0xe2b792}, - {0x8138ec35, 0xe2b793}, - {0x8138ec36, 0xe2b794}, - {0x8138ec37, 0xe2b795}, - {0x8138ec38, 0xe2b796}, - {0x8138ec39, 0xe2b797}, - {0x8138ed30, 0xe2b798}, - {0x8138ed31, 0xe2b799}, - {0x8138ed32, 0xe2b79a}, - {0x8138ed33, 0xe2b79b}, - {0x8138ed34, 0xe2b79c}, - {0x8138ed35, 0xe2b79d}, - {0x8138ed36, 0xe2b79e}, - {0x8138ed37, 0xe2b79f}, - {0x8138ed38, 0xe2b7a0}, - {0x8138ed39, 0xe2b7a1}, - {0x8138ee30, 0xe2b7a2}, - {0x8138ee31, 0xe2b7a3}, - {0x8138ee32, 0xe2b7a4}, - {0x8138ee33, 0xe2b7a5}, - {0x8138ee34, 0xe2b7a6}, - {0x8138ee35, 0xe2b7a7}, - {0x8138ee36, 0xe2b7a8}, - {0x8138ee37, 0xe2b7a9}, - {0x8138ee38, 0xe2b7aa}, - {0x8138ee39, 0xe2b7ab}, - {0x8138ef30, 0xe2b7ac}, - {0x8138ef31, 0xe2b7ad}, - {0x8138ef32, 0xe2b7ae}, - {0x8138ef33, 0xe2b7af}, - {0x8138ef34, 0xe2b7b0}, - {0x8138ef35, 0xe2b7b1}, - {0x8138ef36, 0xe2b7b2}, - {0x8138ef37, 0xe2b7b3}, - {0x8138ef38, 0xe2b7b4}, - {0x8138ef39, 0xe2b7b5}, - {0x8138f030, 0xe2b7b6}, - {0x8138f031, 0xe2b7b7}, - {0x8138f032, 0xe2b7b8}, - {0x8138f033, 0xe2b7b9}, - {0x8138f034, 0xe2b7ba}, - {0x8138f035, 0xe2b7bb}, - {0x8138f036, 0xe2b7bc}, - {0x8138f037, 0xe2b7bd}, - {0x8138f038, 0xe2b7be}, - {0x8138f039, 0xe2b7bf}, - {0x8138f130, 0xe2b880}, - {0x8138f131, 0xe2b881}, - {0x8138f132, 0xe2b882}, - {0x8138f133, 0xe2b883}, - {0x8138f134, 0xe2b884}, - {0x8138f135, 0xe2b885}, - {0x8138f136, 0xe2b886}, - {0x8138f137, 0xe2b887}, - {0x8138f138, 0xe2b888}, - {0x8138f139, 0xe2b889}, - {0x8138f230, 0xe2b88a}, - {0x8138f231, 0xe2b88b}, - {0x8138f232, 0xe2b88c}, - {0x8138f233, 0xe2b88d}, - {0x8138f234, 0xe2b88e}, - {0x8138f235, 0xe2b88f}, - {0x8138f236, 0xe2b890}, - {0x8138f237, 0xe2b891}, - {0x8138f238, 0xe2b892}, - {0x8138f239, 0xe2b893}, - {0x8138f330, 0xe2b894}, - {0x8138f331, 0xe2b895}, - {0x8138f332, 0xe2b896}, - {0x8138f333, 0xe2b897}, - {0x8138f334, 0xe2b898}, - {0x8138f335, 0xe2b899}, - {0x8138f336, 0xe2b89a}, - {0x8138f337, 0xe2b89b}, - {0x8138f338, 0xe2b89c}, - {0x8138f339, 0xe2b89d}, - {0x8138f430, 0xe2b89e}, - {0x8138f431, 0xe2b89f}, - {0x8138f432, 0xe2b8a0}, - {0x8138f433, 0xe2b8a1}, - {0x8138f434, 0xe2b8a2}, - {0x8138f435, 0xe2b8a3}, - {0x8138f436, 0xe2b8a4}, - {0x8138f437, 0xe2b8a5}, - {0x8138f438, 0xe2b8a6}, - {0x8138f439, 0xe2b8a7}, - {0x8138f530, 0xe2b8a8}, - {0x8138f531, 0xe2b8a9}, - {0x8138f532, 0xe2b8aa}, - {0x8138f533, 0xe2b8ab}, - {0x8138f534, 0xe2b8ac}, - {0x8138f535, 0xe2b8ad}, - {0x8138f536, 0xe2b8ae}, - {0x8138f537, 0xe2b8af}, - {0x8138f538, 0xe2b8b0}, - {0x8138f539, 0xe2b8b1}, - {0x8138f630, 0xe2b8b2}, - {0x8138f631, 0xe2b8b3}, - {0x8138f632, 0xe2b8b4}, - {0x8138f633, 0xe2b8b5}, - {0x8138f634, 0xe2b8b6}, - {0x8138f635, 0xe2b8b7}, - {0x8138f636, 0xe2b8b8}, - {0x8138f637, 0xe2b8b9}, - {0x8138f638, 0xe2b8ba}, - {0x8138f639, 0xe2b8bb}, - {0x8138f730, 0xe2b8bc}, - {0x8138f731, 0xe2b8bd}, - {0x8138f732, 0xe2b8be}, - {0x8138f733, 0xe2b8bf}, - {0x8138f734, 0xe2b980}, - {0x8138f735, 0xe2b981}, - {0x8138f736, 0xe2b982}, - {0x8138f737, 0xe2b983}, - {0x8138f738, 0xe2b984}, - {0x8138f739, 0xe2b985}, - {0x8138f830, 0xe2b986}, - {0x8138f831, 0xe2b987}, - {0x8138f832, 0xe2b988}, - {0x8138f833, 0xe2b989}, - {0x8138f834, 0xe2b98a}, - {0x8138f835, 0xe2b98b}, - {0x8138f836, 0xe2b98c}, - {0x8138f837, 0xe2b98d}, - {0x8138f838, 0xe2b98e}, - {0x8138f839, 0xe2b98f}, - {0x8138f930, 0xe2b990}, - {0x8138f931, 0xe2b991}, - {0x8138f932, 0xe2b992}, - {0x8138f933, 0xe2b993}, - {0x8138f934, 0xe2b994}, - {0x8138f935, 0xe2b995}, - {0x8138f936, 0xe2b996}, - {0x8138f937, 0xe2b997}, - {0x8138f938, 0xe2b998}, - {0x8138f939, 0xe2b999}, - {0x8138fa30, 0xe2b99a}, - {0x8138fa31, 0xe2b99b}, - {0x8138fa32, 0xe2b99c}, - {0x8138fa33, 0xe2b99d}, - {0x8138fa34, 0xe2b99e}, - {0x8138fa35, 0xe2b99f}, - {0x8138fa36, 0xe2b9a0}, - {0x8138fa37, 0xe2b9a1}, - {0x8138fa38, 0xe2b9a2}, - {0x8138fa39, 0xe2b9a3}, - {0x8138fb30, 0xe2b9a4}, - {0x8138fb31, 0xe2b9a5}, - {0x8138fb32, 0xe2b9a6}, - {0x8138fb33, 0xe2b9a7}, - {0x8138fb34, 0xe2b9a8}, - {0x8138fb35, 0xe2b9a9}, - {0x8138fb36, 0xe2b9aa}, - {0x8138fb37, 0xe2b9ab}, - {0x8138fb38, 0xe2b9ac}, - {0x8138fb39, 0xe2b9ad}, - {0x8138fc30, 0xe2b9ae}, - {0x8138fc31, 0xe2b9af}, - {0x8138fc32, 0xe2b9b0}, - {0x8138fc33, 0xe2b9b1}, - {0x8138fc34, 0xe2b9b2}, - {0x8138fc35, 0xe2b9b3}, - {0x8138fc36, 0xe2b9b4}, - {0x8138fc37, 0xe2b9b5}, - {0x8138fc38, 0xe2b9b6}, - {0x8138fc39, 0xe2b9b7}, - {0x8138fd30, 0xe2b9b8}, - {0x8138fd31, 0xe2b9b9}, - {0x8138fd32, 0xe2b9ba}, - {0x8138fd33, 0xe2b9bb}, - {0x8138fd34, 0xe2b9bc}, - {0x8138fd35, 0xe2b9bd}, - {0x8138fd36, 0xe2b9be}, - {0x8138fd37, 0xe2b9bf}, - {0x8138fd38, 0xe2ba80}, {0x8138fd39, 0xe2ba82}, {0x8138fe30, 0xe2ba83}, {0x8138fe31, 0xe2ba85}, @@ -36912,771 +27700,6 @@ static pg_local_to_utf LUmapGB18030[ 63360 ] = { {0x8230a630, 0xe39897}, {0x8230a631, 0xe39898}, {0x8230a632, 0xe39899}, - {0x8230a633, 0xe3989b}, - {0x8230a634, 0xe3989c}, - {0x8230a635, 0xe3989d}, - {0x8230a636, 0xe3989e}, - {0x8230a637, 0xe3989f}, - {0x8230a638, 0xe398a0}, - {0x8230a639, 0xe398a1}, - {0x8230a730, 0xe398a2}, - {0x8230a731, 0xe398a3}, - {0x8230a732, 0xe398a4}, - {0x8230a733, 0xe398a5}, - {0x8230a734, 0xe398a6}, - {0x8230a735, 0xe398a7}, - {0x8230a736, 0xe398a8}, - {0x8230a737, 0xe398a9}, - {0x8230a738, 0xe398aa}, - {0x8230a739, 0xe398ab}, - {0x8230a830, 0xe398ac}, - {0x8230a831, 0xe398ad}, - {0x8230a832, 0xe398ae}, - {0x8230a833, 0xe398af}, - {0x8230a834, 0xe398b0}, - {0x8230a835, 0xe398b1}, - {0x8230a836, 0xe398b2}, - {0x8230a837, 0xe398b3}, - {0x8230a838, 0xe398b4}, - {0x8230a839, 0xe398b5}, - {0x8230a930, 0xe398b6}, - {0x8230a931, 0xe398b7}, - {0x8230a932, 0xe398b8}, - {0x8230a933, 0xe398b9}, - {0x8230a934, 0xe398ba}, - {0x8230a935, 0xe398bb}, - {0x8230a936, 0xe398bc}, - {0x8230a937, 0xe398bd}, - {0x8230a938, 0xe398be}, - {0x8230a939, 0xe398bf}, - {0x8230aa30, 0xe39980}, - {0x8230aa31, 0xe39981}, - {0x8230aa32, 0xe39982}, - {0x8230aa33, 0xe39983}, - {0x8230aa34, 0xe39984}, - {0x8230aa35, 0xe39985}, - {0x8230aa36, 0xe39986}, - {0x8230aa37, 0xe39987}, - {0x8230aa38, 0xe39988}, - {0x8230aa39, 0xe39989}, - {0x8230ab30, 0xe3998a}, - {0x8230ab31, 0xe3998b}, - {0x8230ab32, 0xe3998c}, - {0x8230ab33, 0xe3998d}, - {0x8230ab34, 0xe3998e}, - {0x8230ab35, 0xe3998f}, - {0x8230ab36, 0xe39990}, - {0x8230ab37, 0xe39991}, - {0x8230ab38, 0xe39992}, - {0x8230ab39, 0xe39993}, - {0x8230ac30, 0xe39994}, - {0x8230ac31, 0xe39995}, - {0x8230ac32, 0xe39996}, - {0x8230ac33, 0xe39997}, - {0x8230ac34, 0xe39998}, - {0x8230ac35, 0xe39999}, - {0x8230ac36, 0xe3999a}, - {0x8230ac37, 0xe3999b}, - {0x8230ac38, 0xe3999c}, - {0x8230ac39, 0xe3999d}, - {0x8230ad30, 0xe3999e}, - {0x8230ad31, 0xe3999f}, - {0x8230ad32, 0xe399a0}, - {0x8230ad33, 0xe399a1}, - {0x8230ad34, 0xe399a2}, - {0x8230ad35, 0xe399a3}, - {0x8230ad36, 0xe399a4}, - {0x8230ad37, 0xe399a5}, - {0x8230ad38, 0xe399a6}, - {0x8230ad39, 0xe399a7}, - {0x8230ae30, 0xe399a8}, - {0x8230ae31, 0xe399a9}, - {0x8230ae32, 0xe399aa}, - {0x8230ae33, 0xe399ab}, - {0x8230ae34, 0xe399ac}, - {0x8230ae35, 0xe399ad}, - {0x8230ae36, 0xe399ae}, - {0x8230ae37, 0xe399af}, - {0x8230ae38, 0xe399b0}, - {0x8230ae39, 0xe399b1}, - {0x8230af30, 0xe399b2}, - {0x8230af31, 0xe399b3}, - {0x8230af32, 0xe399b4}, - {0x8230af33, 0xe399b5}, - {0x8230af34, 0xe399b6}, - {0x8230af35, 0xe399b7}, - {0x8230af36, 0xe399b8}, - {0x8230af37, 0xe399b9}, - {0x8230af38, 0xe399ba}, - {0x8230af39, 0xe399bb}, - {0x8230b030, 0xe399bc}, - {0x8230b031, 0xe399bd}, - {0x8230b032, 0xe399be}, - {0x8230b033, 0xe399bf}, - {0x8230b034, 0xe39a80}, - {0x8230b035, 0xe39a81}, - {0x8230b036, 0xe39a82}, - {0x8230b037, 0xe39a83}, - {0x8230b038, 0xe39a84}, - {0x8230b039, 0xe39a85}, - {0x8230b130, 0xe39a86}, - {0x8230b131, 0xe39a87}, - {0x8230b132, 0xe39a88}, - {0x8230b133, 0xe39a89}, - {0x8230b134, 0xe39a8a}, - {0x8230b135, 0xe39a8b}, - {0x8230b136, 0xe39a8c}, - {0x8230b137, 0xe39a8d}, - {0x8230b138, 0xe39a8e}, - {0x8230b139, 0xe39a8f}, - {0x8230b230, 0xe39a90}, - {0x8230b231, 0xe39a91}, - {0x8230b232, 0xe39a92}, - {0x8230b233, 0xe39a93}, - {0x8230b234, 0xe39a94}, - {0x8230b235, 0xe39a95}, - {0x8230b236, 0xe39a96}, - {0x8230b237, 0xe39a97}, - {0x8230b238, 0xe39a98}, - {0x8230b239, 0xe39a99}, - {0x8230b330, 0xe39a9a}, - {0x8230b331, 0xe39a9b}, - {0x8230b332, 0xe39a9c}, - {0x8230b333, 0xe39a9d}, - {0x8230b334, 0xe39a9e}, - {0x8230b335, 0xe39a9f}, - {0x8230b336, 0xe39aa0}, - {0x8230b337, 0xe39aa1}, - {0x8230b338, 0xe39aa2}, - {0x8230b339, 0xe39aa3}, - {0x8230b430, 0xe39aa4}, - {0x8230b431, 0xe39aa5}, - {0x8230b432, 0xe39aa6}, - {0x8230b433, 0xe39aa7}, - {0x8230b434, 0xe39aa8}, - {0x8230b435, 0xe39aa9}, - {0x8230b436, 0xe39aaa}, - {0x8230b437, 0xe39aab}, - {0x8230b438, 0xe39aac}, - {0x8230b439, 0xe39aad}, - {0x8230b530, 0xe39aae}, - {0x8230b531, 0xe39aaf}, - {0x8230b532, 0xe39ab0}, - {0x8230b533, 0xe39ab1}, - {0x8230b534, 0xe39ab2}, - {0x8230b535, 0xe39ab3}, - {0x8230b536, 0xe39ab4}, - {0x8230b537, 0xe39ab5}, - {0x8230b538, 0xe39ab6}, - {0x8230b539, 0xe39ab7}, - {0x8230b630, 0xe39ab8}, - {0x8230b631, 0xe39ab9}, - {0x8230b632, 0xe39aba}, - {0x8230b633, 0xe39abb}, - {0x8230b634, 0xe39abc}, - {0x8230b635, 0xe39abd}, - {0x8230b636, 0xe39abe}, - {0x8230b637, 0xe39abf}, - {0x8230b638, 0xe39b80}, - {0x8230b639, 0xe39b81}, - {0x8230b730, 0xe39b82}, - {0x8230b731, 0xe39b83}, - {0x8230b732, 0xe39b84}, - {0x8230b733, 0xe39b85}, - {0x8230b734, 0xe39b86}, - {0x8230b735, 0xe39b87}, - {0x8230b736, 0xe39b88}, - {0x8230b737, 0xe39b89}, - {0x8230b738, 0xe39b8a}, - {0x8230b739, 0xe39b8b}, - {0x8230b830, 0xe39b8c}, - {0x8230b831, 0xe39b8d}, - {0x8230b832, 0xe39b8e}, - {0x8230b833, 0xe39b8f}, - {0x8230b834, 0xe39b90}, - {0x8230b835, 0xe39b91}, - {0x8230b836, 0xe39b92}, - {0x8230b837, 0xe39b93}, - {0x8230b838, 0xe39b94}, - {0x8230b839, 0xe39b95}, - {0x8230b930, 0xe39b96}, - {0x8230b931, 0xe39b97}, - {0x8230b932, 0xe39b98}, - {0x8230b933, 0xe39b99}, - {0x8230b934, 0xe39b9a}, - {0x8230b935, 0xe39b9b}, - {0x8230b936, 0xe39b9c}, - {0x8230b937, 0xe39b9d}, - {0x8230b938, 0xe39b9e}, - {0x8230b939, 0xe39b9f}, - {0x8230ba30, 0xe39ba0}, - {0x8230ba31, 0xe39ba1}, - {0x8230ba32, 0xe39ba2}, - {0x8230ba33, 0xe39ba3}, - {0x8230ba34, 0xe39ba4}, - {0x8230ba35, 0xe39ba5}, - {0x8230ba36, 0xe39ba6}, - {0x8230ba37, 0xe39ba7}, - {0x8230ba38, 0xe39ba8}, - {0x8230ba39, 0xe39ba9}, - {0x8230bb30, 0xe39baa}, - {0x8230bb31, 0xe39bab}, - {0x8230bb32, 0xe39bac}, - {0x8230bb33, 0xe39bad}, - {0x8230bb34, 0xe39bae}, - {0x8230bb35, 0xe39baf}, - {0x8230bb36, 0xe39bb0}, - {0x8230bb37, 0xe39bb1}, - {0x8230bb38, 0xe39bb2}, - {0x8230bb39, 0xe39bb3}, - {0x8230bc30, 0xe39bb4}, - {0x8230bc31, 0xe39bb5}, - {0x8230bc32, 0xe39bb6}, - {0x8230bc33, 0xe39bb7}, - {0x8230bc34, 0xe39bb8}, - {0x8230bc35, 0xe39bb9}, - {0x8230bc36, 0xe39bba}, - {0x8230bc37, 0xe39bbb}, - {0x8230bc38, 0xe39bbc}, - {0x8230bc39, 0xe39bbd}, - {0x8230bd30, 0xe39bbe}, - {0x8230bd31, 0xe39bbf}, - {0x8230bd32, 0xe39c80}, - {0x8230bd33, 0xe39c81}, - {0x8230bd34, 0xe39c82}, - {0x8230bd35, 0xe39c83}, - {0x8230bd36, 0xe39c84}, - {0x8230bd37, 0xe39c85}, - {0x8230bd38, 0xe39c86}, - {0x8230bd39, 0xe39c87}, - {0x8230be30, 0xe39c88}, - {0x8230be31, 0xe39c89}, - {0x8230be32, 0xe39c8a}, - {0x8230be33, 0xe39c8b}, - {0x8230be34, 0xe39c8c}, - {0x8230be35, 0xe39c8d}, - {0x8230be36, 0xe39c8e}, - {0x8230be37, 0xe39c8f}, - {0x8230be38, 0xe39c90}, - {0x8230be39, 0xe39c91}, - {0x8230bf30, 0xe39c92}, - {0x8230bf31, 0xe39c93}, - {0x8230bf32, 0xe39c94}, - {0x8230bf33, 0xe39c95}, - {0x8230bf34, 0xe39c96}, - {0x8230bf35, 0xe39c97}, - {0x8230bf36, 0xe39c98}, - {0x8230bf37, 0xe39c99}, - {0x8230bf38, 0xe39c9a}, - {0x8230bf39, 0xe39c9b}, - {0x8230c030, 0xe39c9c}, - {0x8230c031, 0xe39c9d}, - {0x8230c032, 0xe39c9e}, - {0x8230c033, 0xe39c9f}, - {0x8230c034, 0xe39ca0}, - {0x8230c035, 0xe39ca1}, - {0x8230c036, 0xe39ca2}, - {0x8230c037, 0xe39ca3}, - {0x8230c038, 0xe39ca4}, - {0x8230c039, 0xe39ca5}, - {0x8230c130, 0xe39ca6}, - {0x8230c131, 0xe39ca7}, - {0x8230c132, 0xe39ca8}, - {0x8230c133, 0xe39ca9}, - {0x8230c134, 0xe39caa}, - {0x8230c135, 0xe39cab}, - {0x8230c136, 0xe39cac}, - {0x8230c137, 0xe39cad}, - {0x8230c138, 0xe39cae}, - {0x8230c139, 0xe39caf}, - {0x8230c230, 0xe39cb0}, - {0x8230c231, 0xe39cb1}, - {0x8230c232, 0xe39cb2}, - {0x8230c233, 0xe39cb3}, - {0x8230c234, 0xe39cb4}, - {0x8230c235, 0xe39cb5}, - {0x8230c236, 0xe39cb6}, - {0x8230c237, 0xe39cb7}, - {0x8230c238, 0xe39cb8}, - {0x8230c239, 0xe39cb9}, - {0x8230c330, 0xe39cba}, - {0x8230c331, 0xe39cbb}, - {0x8230c332, 0xe39cbc}, - {0x8230c333, 0xe39cbd}, - {0x8230c334, 0xe39cbe}, - {0x8230c335, 0xe39cbf}, - {0x8230c336, 0xe39d80}, - {0x8230c337, 0xe39d81}, - {0x8230c338, 0xe39d82}, - {0x8230c339, 0xe39d83}, - {0x8230c430, 0xe39d84}, - {0x8230c431, 0xe39d85}, - {0x8230c432, 0xe39d86}, - {0x8230c433, 0xe39d87}, - {0x8230c434, 0xe39d88}, - {0x8230c435, 0xe39d89}, - {0x8230c436, 0xe39d8a}, - {0x8230c437, 0xe39d8b}, - {0x8230c438, 0xe39d8c}, - {0x8230c439, 0xe39d8d}, - {0x8230c530, 0xe39d8e}, - {0x8230c531, 0xe39d8f}, - {0x8230c532, 0xe39d90}, - {0x8230c533, 0xe39d91}, - {0x8230c534, 0xe39d92}, - {0x8230c535, 0xe39d93}, - {0x8230c536, 0xe39d94}, - {0x8230c537, 0xe39d95}, - {0x8230c538, 0xe39d96}, - {0x8230c539, 0xe39d97}, - {0x8230c630, 0xe39d98}, - {0x8230c631, 0xe39d99}, - {0x8230c632, 0xe39d9a}, - {0x8230c633, 0xe39d9b}, - {0x8230c634, 0xe39d9c}, - {0x8230c635, 0xe39d9d}, - {0x8230c636, 0xe39d9e}, - {0x8230c637, 0xe39d9f}, - {0x8230c638, 0xe39da0}, - {0x8230c639, 0xe39da1}, - {0x8230c730, 0xe39da2}, - {0x8230c731, 0xe39da3}, - {0x8230c732, 0xe39da4}, - {0x8230c733, 0xe39da5}, - {0x8230c734, 0xe39da6}, - {0x8230c735, 0xe39da7}, - {0x8230c736, 0xe39da8}, - {0x8230c737, 0xe39da9}, - {0x8230c738, 0xe39daa}, - {0x8230c739, 0xe39dab}, - {0x8230c830, 0xe39dac}, - {0x8230c831, 0xe39dad}, - {0x8230c832, 0xe39dae}, - {0x8230c833, 0xe39daf}, - {0x8230c834, 0xe39db0}, - {0x8230c835, 0xe39db1}, - {0x8230c836, 0xe39db2}, - {0x8230c837, 0xe39db3}, - {0x8230c838, 0xe39db4}, - {0x8230c839, 0xe39db5}, - {0x8230c930, 0xe39db6}, - {0x8230c931, 0xe39db7}, - {0x8230c932, 0xe39db8}, - {0x8230c933, 0xe39db9}, - {0x8230c934, 0xe39dba}, - {0x8230c935, 0xe39dbb}, - {0x8230c936, 0xe39dbc}, - {0x8230c937, 0xe39dbd}, - {0x8230c938, 0xe39dbe}, - {0x8230c939, 0xe39dbf}, - {0x8230ca30, 0xe39e80}, - {0x8230ca31, 0xe39e81}, - {0x8230ca32, 0xe39e82}, - {0x8230ca33, 0xe39e83}, - {0x8230ca34, 0xe39e84}, - {0x8230ca35, 0xe39e85}, - {0x8230ca36, 0xe39e86}, - {0x8230ca37, 0xe39e87}, - {0x8230ca38, 0xe39e88}, - {0x8230ca39, 0xe39e89}, - {0x8230cb30, 0xe39e8a}, - {0x8230cb31, 0xe39e8b}, - {0x8230cb32, 0xe39e8c}, - {0x8230cb33, 0xe39e8d}, - {0x8230cb34, 0xe39e8e}, - {0x8230cb35, 0xe39e8f}, - {0x8230cb36, 0xe39e90}, - {0x8230cb37, 0xe39e91}, - {0x8230cb38, 0xe39e92}, - {0x8230cb39, 0xe39e93}, - {0x8230cc30, 0xe39e94}, - {0x8230cc31, 0xe39e95}, - {0x8230cc32, 0xe39e96}, - {0x8230cc33, 0xe39e97}, - {0x8230cc34, 0xe39e98}, - {0x8230cc35, 0xe39e99}, - {0x8230cc36, 0xe39e9a}, - {0x8230cc37, 0xe39e9b}, - {0x8230cc38, 0xe39e9c}, - {0x8230cc39, 0xe39e9d}, - {0x8230cd30, 0xe39e9e}, - {0x8230cd31, 0xe39e9f}, - {0x8230cd32, 0xe39ea0}, - {0x8230cd33, 0xe39ea1}, - {0x8230cd34, 0xe39ea2}, - {0x8230cd35, 0xe39ea3}, - {0x8230cd36, 0xe39ea4}, - {0x8230cd37, 0xe39ea5}, - {0x8230cd38, 0xe39ea6}, - {0x8230cd39, 0xe39ea7}, - {0x8230ce30, 0xe39ea8}, - {0x8230ce31, 0xe39ea9}, - {0x8230ce32, 0xe39eaa}, - {0x8230ce33, 0xe39eab}, - {0x8230ce34, 0xe39eac}, - {0x8230ce35, 0xe39ead}, - {0x8230ce36, 0xe39eae}, - {0x8230ce37, 0xe39eaf}, - {0x8230ce38, 0xe39eb0}, - {0x8230ce39, 0xe39eb1}, - {0x8230cf30, 0xe39eb2}, - {0x8230cf31, 0xe39eb3}, - {0x8230cf32, 0xe39eb4}, - {0x8230cf33, 0xe39eb5}, - {0x8230cf34, 0xe39eb6}, - {0x8230cf35, 0xe39eb7}, - {0x8230cf36, 0xe39eb8}, - {0x8230cf37, 0xe39eb9}, - {0x8230cf38, 0xe39eba}, - {0x8230cf39, 0xe39ebb}, - {0x8230d030, 0xe39ebc}, - {0x8230d031, 0xe39ebd}, - {0x8230d032, 0xe39ebe}, - {0x8230d033, 0xe39ebf}, - {0x8230d034, 0xe39f80}, - {0x8230d035, 0xe39f81}, - {0x8230d036, 0xe39f82}, - {0x8230d037, 0xe39f83}, - {0x8230d038, 0xe39f84}, - {0x8230d039, 0xe39f85}, - {0x8230d130, 0xe39f86}, - {0x8230d131, 0xe39f87}, - {0x8230d132, 0xe39f88}, - {0x8230d133, 0xe39f89}, - {0x8230d134, 0xe39f8a}, - {0x8230d135, 0xe39f8b}, - {0x8230d136, 0xe39f8c}, - {0x8230d137, 0xe39f8d}, - {0x8230d138, 0xe39f8e}, - {0x8230d139, 0xe39f8f}, - {0x8230d230, 0xe39f90}, - {0x8230d231, 0xe39f91}, - {0x8230d232, 0xe39f92}, - {0x8230d233, 0xe39f93}, - {0x8230d234, 0xe39f94}, - {0x8230d235, 0xe39f95}, - {0x8230d236, 0xe39f96}, - {0x8230d237, 0xe39f97}, - {0x8230d238, 0xe39f98}, - {0x8230d239, 0xe39f99}, - {0x8230d330, 0xe39f9a}, - {0x8230d331, 0xe39f9b}, - {0x8230d332, 0xe39f9c}, - {0x8230d333, 0xe39f9d}, - {0x8230d334, 0xe39f9e}, - {0x8230d335, 0xe39f9f}, - {0x8230d336, 0xe39fa0}, - {0x8230d337, 0xe39fa1}, - {0x8230d338, 0xe39fa2}, - {0x8230d339, 0xe39fa3}, - {0x8230d430, 0xe39fa4}, - {0x8230d431, 0xe39fa5}, - {0x8230d432, 0xe39fa6}, - {0x8230d433, 0xe39fa7}, - {0x8230d434, 0xe39fa8}, - {0x8230d435, 0xe39fa9}, - {0x8230d436, 0xe39faa}, - {0x8230d437, 0xe39fab}, - {0x8230d438, 0xe39fac}, - {0x8230d439, 0xe39fad}, - {0x8230d530, 0xe39fae}, - {0x8230d531, 0xe39faf}, - {0x8230d532, 0xe39fb0}, - {0x8230d533, 0xe39fb1}, - {0x8230d534, 0xe39fb2}, - {0x8230d535, 0xe39fb3}, - {0x8230d536, 0xe39fb4}, - {0x8230d537, 0xe39fb5}, - {0x8230d538, 0xe39fb6}, - {0x8230d539, 0xe39fb7}, - {0x8230d630, 0xe39fb8}, - {0x8230d631, 0xe39fb9}, - {0x8230d632, 0xe39fba}, - {0x8230d633, 0xe39fbb}, - {0x8230d634, 0xe39fbc}, - {0x8230d635, 0xe39fbd}, - {0x8230d636, 0xe39fbe}, - {0x8230d637, 0xe39fbf}, - {0x8230d638, 0xe3a080}, - {0x8230d639, 0xe3a081}, - {0x8230d730, 0xe3a082}, - {0x8230d731, 0xe3a083}, - {0x8230d732, 0xe3a084}, - {0x8230d733, 0xe3a085}, - {0x8230d734, 0xe3a086}, - {0x8230d735, 0xe3a087}, - {0x8230d736, 0xe3a088}, - {0x8230d737, 0xe3a089}, - {0x8230d738, 0xe3a08a}, - {0x8230d739, 0xe3a08b}, - {0x8230d830, 0xe3a08c}, - {0x8230d831, 0xe3a08d}, - {0x8230d832, 0xe3a08e}, - {0x8230d833, 0xe3a08f}, - {0x8230d834, 0xe3a090}, - {0x8230d835, 0xe3a091}, - {0x8230d836, 0xe3a092}, - {0x8230d837, 0xe3a093}, - {0x8230d838, 0xe3a094}, - {0x8230d839, 0xe3a095}, - {0x8230d930, 0xe3a096}, - {0x8230d931, 0xe3a097}, - {0x8230d932, 0xe3a098}, - {0x8230d933, 0xe3a099}, - {0x8230d934, 0xe3a09a}, - {0x8230d935, 0xe3a09b}, - {0x8230d936, 0xe3a09c}, - {0x8230d937, 0xe3a09d}, - {0x8230d938, 0xe3a09e}, - {0x8230d939, 0xe3a09f}, - {0x8230da30, 0xe3a0a0}, - {0x8230da31, 0xe3a0a1}, - {0x8230da32, 0xe3a0a2}, - {0x8230da33, 0xe3a0a3}, - {0x8230da34, 0xe3a0a4}, - {0x8230da35, 0xe3a0a5}, - {0x8230da36, 0xe3a0a6}, - {0x8230da37, 0xe3a0a7}, - {0x8230da38, 0xe3a0a8}, - {0x8230da39, 0xe3a0a9}, - {0x8230db30, 0xe3a0aa}, - {0x8230db31, 0xe3a0ab}, - {0x8230db32, 0xe3a0ac}, - {0x8230db33, 0xe3a0ad}, - {0x8230db34, 0xe3a0ae}, - {0x8230db35, 0xe3a0af}, - {0x8230db36, 0xe3a0b0}, - {0x8230db37, 0xe3a0b1}, - {0x8230db38, 0xe3a0b2}, - {0x8230db39, 0xe3a0b3}, - {0x8230dc30, 0xe3a0b4}, - {0x8230dc31, 0xe3a0b5}, - {0x8230dc32, 0xe3a0b6}, - {0x8230dc33, 0xe3a0b7}, - {0x8230dc34, 0xe3a0b8}, - {0x8230dc35, 0xe3a0b9}, - {0x8230dc36, 0xe3a0ba}, - {0x8230dc37, 0xe3a0bb}, - {0x8230dc38, 0xe3a0bc}, - {0x8230dc39, 0xe3a0bd}, - {0x8230dd30, 0xe3a0be}, - {0x8230dd31, 0xe3a0bf}, - {0x8230dd32, 0xe3a180}, - {0x8230dd33, 0xe3a181}, - {0x8230dd34, 0xe3a182}, - {0x8230dd35, 0xe3a183}, - {0x8230dd36, 0xe3a184}, - {0x8230dd37, 0xe3a185}, - {0x8230dd38, 0xe3a186}, - {0x8230dd39, 0xe3a187}, - {0x8230de30, 0xe3a188}, - {0x8230de31, 0xe3a189}, - {0x8230de32, 0xe3a18a}, - {0x8230de33, 0xe3a18b}, - {0x8230de34, 0xe3a18c}, - {0x8230de35, 0xe3a18d}, - {0x8230de36, 0xe3a18e}, - {0x8230de37, 0xe3a18f}, - {0x8230de38, 0xe3a190}, - {0x8230de39, 0xe3a191}, - {0x8230df30, 0xe3a192}, - {0x8230df31, 0xe3a193}, - {0x8230df32, 0xe3a194}, - {0x8230df33, 0xe3a195}, - {0x8230df34, 0xe3a196}, - {0x8230df35, 0xe3a197}, - {0x8230df36, 0xe3a198}, - {0x8230df37, 0xe3a199}, - {0x8230df38, 0xe3a19a}, - {0x8230df39, 0xe3a19b}, - {0x8230e030, 0xe3a19c}, - {0x8230e031, 0xe3a19d}, - {0x8230e032, 0xe3a19e}, - {0x8230e033, 0xe3a19f}, - {0x8230e034, 0xe3a1a0}, - {0x8230e035, 0xe3a1a1}, - {0x8230e036, 0xe3a1a2}, - {0x8230e037, 0xe3a1a3}, - {0x8230e038, 0xe3a1a4}, - {0x8230e039, 0xe3a1a5}, - {0x8230e130, 0xe3a1a6}, - {0x8230e131, 0xe3a1a7}, - {0x8230e132, 0xe3a1a8}, - {0x8230e133, 0xe3a1a9}, - {0x8230e134, 0xe3a1aa}, - {0x8230e135, 0xe3a1ab}, - {0x8230e136, 0xe3a1ac}, - {0x8230e137, 0xe3a1ad}, - {0x8230e138, 0xe3a1ae}, - {0x8230e139, 0xe3a1af}, - {0x8230e230, 0xe3a1b0}, - {0x8230e231, 0xe3a1b1}, - {0x8230e232, 0xe3a1b2}, - {0x8230e233, 0xe3a1b3}, - {0x8230e234, 0xe3a1b4}, - {0x8230e235, 0xe3a1b5}, - {0x8230e236, 0xe3a1b6}, - {0x8230e237, 0xe3a1b7}, - {0x8230e238, 0xe3a1b8}, - {0x8230e239, 0xe3a1b9}, - {0x8230e330, 0xe3a1ba}, - {0x8230e331, 0xe3a1bb}, - {0x8230e332, 0xe3a1bc}, - {0x8230e333, 0xe3a1bd}, - {0x8230e334, 0xe3a1be}, - {0x8230e335, 0xe3a1bf}, - {0x8230e336, 0xe3a280}, - {0x8230e337, 0xe3a281}, - {0x8230e338, 0xe3a282}, - {0x8230e339, 0xe3a283}, - {0x8230e430, 0xe3a284}, - {0x8230e431, 0xe3a285}, - {0x8230e432, 0xe3a286}, - {0x8230e433, 0xe3a287}, - {0x8230e434, 0xe3a288}, - {0x8230e435, 0xe3a289}, - {0x8230e436, 0xe3a28a}, - {0x8230e437, 0xe3a28b}, - {0x8230e438, 0xe3a28c}, - {0x8230e439, 0xe3a28d}, - {0x8230e530, 0xe3a28e}, - {0x8230e531, 0xe3a28f}, - {0x8230e532, 0xe3a290}, - {0x8230e533, 0xe3a291}, - {0x8230e534, 0xe3a292}, - {0x8230e535, 0xe3a293}, - {0x8230e536, 0xe3a294}, - {0x8230e537, 0xe3a295}, - {0x8230e538, 0xe3a296}, - {0x8230e539, 0xe3a297}, - {0x8230e630, 0xe3a298}, - {0x8230e631, 0xe3a299}, - {0x8230e632, 0xe3a29a}, - {0x8230e633, 0xe3a29b}, - {0x8230e634, 0xe3a29c}, - {0x8230e635, 0xe3a29d}, - {0x8230e636, 0xe3a29e}, - {0x8230e637, 0xe3a29f}, - {0x8230e638, 0xe3a2a0}, - {0x8230e639, 0xe3a2a1}, - {0x8230e730, 0xe3a2a2}, - {0x8230e731, 0xe3a2a3}, - {0x8230e732, 0xe3a2a4}, - {0x8230e733, 0xe3a2a5}, - {0x8230e734, 0xe3a2a6}, - {0x8230e735, 0xe3a2a7}, - {0x8230e736, 0xe3a2a8}, - {0x8230e737, 0xe3a2a9}, - {0x8230e738, 0xe3a2aa}, - {0x8230e739, 0xe3a2ab}, - {0x8230e830, 0xe3a2ac}, - {0x8230e831, 0xe3a2ad}, - {0x8230e832, 0xe3a2ae}, - {0x8230e833, 0xe3a2af}, - {0x8230e834, 0xe3a2b0}, - {0x8230e835, 0xe3a2b1}, - {0x8230e836, 0xe3a2b2}, - {0x8230e837, 0xe3a2b3}, - {0x8230e838, 0xe3a2b4}, - {0x8230e839, 0xe3a2b5}, - {0x8230e930, 0xe3a2b6}, - {0x8230e931, 0xe3a2b7}, - {0x8230e932, 0xe3a2b8}, - {0x8230e933, 0xe3a2b9}, - {0x8230e934, 0xe3a2ba}, - {0x8230e935, 0xe3a2bb}, - {0x8230e936, 0xe3a2bc}, - {0x8230e937, 0xe3a2bd}, - {0x8230e938, 0xe3a2be}, - {0x8230e939, 0xe3a2bf}, - {0x8230ea30, 0xe3a380}, - {0x8230ea31, 0xe3a381}, - {0x8230ea32, 0xe3a382}, - {0x8230ea33, 0xe3a383}, - {0x8230ea34, 0xe3a384}, - {0x8230ea35, 0xe3a385}, - {0x8230ea36, 0xe3a386}, - {0x8230ea37, 0xe3a387}, - {0x8230ea38, 0xe3a388}, - {0x8230ea39, 0xe3a389}, - {0x8230eb30, 0xe3a38a}, - {0x8230eb31, 0xe3a38b}, - {0x8230eb32, 0xe3a38c}, - {0x8230eb33, 0xe3a38d}, - {0x8230eb34, 0xe3a38e}, - {0x8230eb35, 0xe3a38f}, - {0x8230eb36, 0xe3a390}, - {0x8230eb37, 0xe3a391}, - {0x8230eb38, 0xe3a392}, - {0x8230eb39, 0xe3a393}, - {0x8230ec30, 0xe3a394}, - {0x8230ec31, 0xe3a395}, - {0x8230ec32, 0xe3a396}, - {0x8230ec33, 0xe3a397}, - {0x8230ec34, 0xe3a398}, - {0x8230ec35, 0xe3a399}, - {0x8230ec36, 0xe3a39a}, - {0x8230ec37, 0xe3a39b}, - {0x8230ec38, 0xe3a39c}, - {0x8230ec39, 0xe3a39d}, - {0x8230ed30, 0xe3a39e}, - {0x8230ed31, 0xe3a39f}, - {0x8230ed32, 0xe3a3a0}, - {0x8230ed33, 0xe3a3a1}, - {0x8230ed34, 0xe3a3a2}, - {0x8230ed35, 0xe3a3a3}, - {0x8230ed36, 0xe3a3a4}, - {0x8230ed37, 0xe3a3a5}, - {0x8230ed38, 0xe3a3a6}, - {0x8230ed39, 0xe3a3a7}, - {0x8230ee30, 0xe3a3a8}, - {0x8230ee31, 0xe3a3a9}, - {0x8230ee32, 0xe3a3aa}, - {0x8230ee33, 0xe3a3ab}, - {0x8230ee34, 0xe3a3ac}, - {0x8230ee35, 0xe3a3ad}, - {0x8230ee36, 0xe3a3ae}, - {0x8230ee37, 0xe3a3af}, - {0x8230ee38, 0xe3a3b0}, - {0x8230ee39, 0xe3a3b1}, - {0x8230ef30, 0xe3a3b2}, - {0x8230ef31, 0xe3a3b3}, - {0x8230ef32, 0xe3a3b4}, - {0x8230ef33, 0xe3a3b5}, - {0x8230ef34, 0xe3a3b6}, - {0x8230ef35, 0xe3a3b7}, - {0x8230ef36, 0xe3a3b8}, - {0x8230ef37, 0xe3a3b9}, - {0x8230ef38, 0xe3a3ba}, - {0x8230ef39, 0xe3a3bb}, - {0x8230f030, 0xe3a3bc}, - {0x8230f031, 0xe3a3bd}, - {0x8230f032, 0xe3a3be}, - {0x8230f033, 0xe3a3bf}, - {0x8230f034, 0xe3a480}, - {0x8230f035, 0xe3a481}, - {0x8230f036, 0xe3a482}, - {0x8230f037, 0xe3a483}, - {0x8230f038, 0xe3a484}, - {0x8230f039, 0xe3a485}, - {0x8230f130, 0xe3a486}, - {0x8230f131, 0xe3a487}, - {0x8230f132, 0xe3a488}, - {0x8230f133, 0xe3a489}, - {0x8230f134, 0xe3a48a}, - {0x8230f135, 0xe3a48b}, - {0x8230f136, 0xe3a48c}, - {0x8230f137, 0xe3a48d}, - {0x8230f138, 0xe3a48e}, - {0x8230f139, 0xe3a48f}, - {0x8230f230, 0xe3a490}, - {0x8230f231, 0xe3a491}, - {0x8230f232, 0xe3a492}, - {0x8230f233, 0xe3a493}, - {0x8230f234, 0xe3a494}, - {0x8230f235, 0xe3a495}, - {0x8230f236, 0xe3a496}, - {0x8230f237, 0xe3a497}, {0x8230f238, 0xe3a499}, {0x8230f239, 0xe3a49a}, {0x8230f330, 0xe3a49b}, @@ -38637,891 +28660,6 @@ static pg_local_to_utf LUmapGB18030[ 63360 ] = { {0x8231d435, 0xe3b39d}, {0x8231d436, 0xe3b39e}, {0x8231d437, 0xe3b39f}, - {0x8231d438, 0xe3b3a1}, - {0x8231d439, 0xe3b3a2}, - {0x8231d530, 0xe3b3a3}, - {0x8231d531, 0xe3b3a4}, - {0x8231d532, 0xe3b3a5}, - {0x8231d533, 0xe3b3a6}, - {0x8231d534, 0xe3b3a7}, - {0x8231d535, 0xe3b3a8}, - {0x8231d536, 0xe3b3a9}, - {0x8231d537, 0xe3b3aa}, - {0x8231d538, 0xe3b3ab}, - {0x8231d539, 0xe3b3ac}, - {0x8231d630, 0xe3b3ad}, - {0x8231d631, 0xe3b3ae}, - {0x8231d632, 0xe3b3af}, - {0x8231d633, 0xe3b3b0}, - {0x8231d634, 0xe3b3b1}, - {0x8231d635, 0xe3b3b2}, - {0x8231d636, 0xe3b3b3}, - {0x8231d637, 0xe3b3b4}, - {0x8231d638, 0xe3b3b5}, - {0x8231d639, 0xe3b3b6}, - {0x8231d730, 0xe3b3b7}, - {0x8231d731, 0xe3b3b8}, - {0x8231d732, 0xe3b3b9}, - {0x8231d733, 0xe3b3ba}, - {0x8231d734, 0xe3b3bb}, - {0x8231d735, 0xe3b3bc}, - {0x8231d736, 0xe3b3bd}, - {0x8231d737, 0xe3b3be}, - {0x8231d738, 0xe3b3bf}, - {0x8231d739, 0xe3b480}, - {0x8231d830, 0xe3b481}, - {0x8231d831, 0xe3b482}, - {0x8231d832, 0xe3b483}, - {0x8231d833, 0xe3b484}, - {0x8231d834, 0xe3b485}, - {0x8231d835, 0xe3b486}, - {0x8231d836, 0xe3b487}, - {0x8231d837, 0xe3b488}, - {0x8231d838, 0xe3b489}, - {0x8231d839, 0xe3b48a}, - {0x8231d930, 0xe3b48b}, - {0x8231d931, 0xe3b48c}, - {0x8231d932, 0xe3b48d}, - {0x8231d933, 0xe3b48e}, - {0x8231d934, 0xe3b48f}, - {0x8231d935, 0xe3b490}, - {0x8231d936, 0xe3b491}, - {0x8231d937, 0xe3b492}, - {0x8231d938, 0xe3b493}, - {0x8231d939, 0xe3b494}, - {0x8231da30, 0xe3b495}, - {0x8231da31, 0xe3b496}, - {0x8231da32, 0xe3b497}, - {0x8231da33, 0xe3b498}, - {0x8231da34, 0xe3b499}, - {0x8231da35, 0xe3b49a}, - {0x8231da36, 0xe3b49b}, - {0x8231da37, 0xe3b49c}, - {0x8231da38, 0xe3b49d}, - {0x8231da39, 0xe3b49e}, - {0x8231db30, 0xe3b49f}, - {0x8231db31, 0xe3b4a0}, - {0x8231db32, 0xe3b4a1}, - {0x8231db33, 0xe3b4a2}, - {0x8231db34, 0xe3b4a3}, - {0x8231db35, 0xe3b4a4}, - {0x8231db36, 0xe3b4a5}, - {0x8231db37, 0xe3b4a6}, - {0x8231db38, 0xe3b4a7}, - {0x8231db39, 0xe3b4a8}, - {0x8231dc30, 0xe3b4a9}, - {0x8231dc31, 0xe3b4aa}, - {0x8231dc32, 0xe3b4ab}, - {0x8231dc33, 0xe3b4ac}, - {0x8231dc34, 0xe3b4ad}, - {0x8231dc35, 0xe3b4ae}, - {0x8231dc36, 0xe3b4af}, - {0x8231dc37, 0xe3b4b0}, - {0x8231dc38, 0xe3b4b1}, - {0x8231dc39, 0xe3b4b2}, - {0x8231dd30, 0xe3b4b3}, - {0x8231dd31, 0xe3b4b4}, - {0x8231dd32, 0xe3b4b5}, - {0x8231dd33, 0xe3b4b6}, - {0x8231dd34, 0xe3b4b7}, - {0x8231dd35, 0xe3b4b8}, - {0x8231dd36, 0xe3b4b9}, - {0x8231dd37, 0xe3b4ba}, - {0x8231dd38, 0xe3b4bb}, - {0x8231dd39, 0xe3b4bc}, - {0x8231de30, 0xe3b4bd}, - {0x8231de31, 0xe3b4be}, - {0x8231de32, 0xe3b4bf}, - {0x8231de33, 0xe3b580}, - {0x8231de34, 0xe3b581}, - {0x8231de35, 0xe3b582}, - {0x8231de36, 0xe3b583}, - {0x8231de37, 0xe3b584}, - {0x8231de38, 0xe3b585}, - {0x8231de39, 0xe3b586}, - {0x8231df30, 0xe3b587}, - {0x8231df31, 0xe3b588}, - {0x8231df32, 0xe3b589}, - {0x8231df33, 0xe3b58a}, - {0x8231df34, 0xe3b58b}, - {0x8231df35, 0xe3b58c}, - {0x8231df36, 0xe3b58d}, - {0x8231df37, 0xe3b58e}, - {0x8231df38, 0xe3b58f}, - {0x8231df39, 0xe3b590}, - {0x8231e030, 0xe3b591}, - {0x8231e031, 0xe3b592}, - {0x8231e032, 0xe3b593}, - {0x8231e033, 0xe3b594}, - {0x8231e034, 0xe3b595}, - {0x8231e035, 0xe3b596}, - {0x8231e036, 0xe3b597}, - {0x8231e037, 0xe3b598}, - {0x8231e038, 0xe3b599}, - {0x8231e039, 0xe3b59a}, - {0x8231e130, 0xe3b59b}, - {0x8231e131, 0xe3b59c}, - {0x8231e132, 0xe3b59d}, - {0x8231e133, 0xe3b59e}, - {0x8231e134, 0xe3b59f}, - {0x8231e135, 0xe3b5a0}, - {0x8231e136, 0xe3b5a1}, - {0x8231e137, 0xe3b5a2}, - {0x8231e138, 0xe3b5a3}, - {0x8231e139, 0xe3b5a4}, - {0x8231e230, 0xe3b5a5}, - {0x8231e231, 0xe3b5a6}, - {0x8231e232, 0xe3b5a7}, - {0x8231e233, 0xe3b5a8}, - {0x8231e234, 0xe3b5a9}, - {0x8231e235, 0xe3b5aa}, - {0x8231e236, 0xe3b5ab}, - {0x8231e237, 0xe3b5ac}, - {0x8231e238, 0xe3b5ad}, - {0x8231e239, 0xe3b5ae}, - {0x8231e330, 0xe3b5af}, - {0x8231e331, 0xe3b5b0}, - {0x8231e332, 0xe3b5b1}, - {0x8231e333, 0xe3b5b2}, - {0x8231e334, 0xe3b5b3}, - {0x8231e335, 0xe3b5b4}, - {0x8231e336, 0xe3b5b5}, - {0x8231e337, 0xe3b5b6}, - {0x8231e338, 0xe3b5b7}, - {0x8231e339, 0xe3b5b8}, - {0x8231e430, 0xe3b5b9}, - {0x8231e431, 0xe3b5ba}, - {0x8231e432, 0xe3b5bb}, - {0x8231e433, 0xe3b5bc}, - {0x8231e434, 0xe3b5bd}, - {0x8231e435, 0xe3b5be}, - {0x8231e436, 0xe3b5bf}, - {0x8231e437, 0xe3b680}, - {0x8231e438, 0xe3b681}, - {0x8231e439, 0xe3b682}, - {0x8231e530, 0xe3b683}, - {0x8231e531, 0xe3b684}, - {0x8231e532, 0xe3b685}, - {0x8231e533, 0xe3b686}, - {0x8231e534, 0xe3b687}, - {0x8231e535, 0xe3b688}, - {0x8231e536, 0xe3b689}, - {0x8231e537, 0xe3b68a}, - {0x8231e538, 0xe3b68b}, - {0x8231e539, 0xe3b68c}, - {0x8231e630, 0xe3b68d}, - {0x8231e631, 0xe3b68e}, - {0x8231e632, 0xe3b68f}, - {0x8231e633, 0xe3b690}, - {0x8231e634, 0xe3b691}, - {0x8231e635, 0xe3b692}, - {0x8231e636, 0xe3b693}, - {0x8231e637, 0xe3b694}, - {0x8231e638, 0xe3b695}, - {0x8231e639, 0xe3b696}, - {0x8231e730, 0xe3b697}, - {0x8231e731, 0xe3b698}, - {0x8231e732, 0xe3b699}, - {0x8231e733, 0xe3b69a}, - {0x8231e734, 0xe3b69b}, - {0x8231e735, 0xe3b69c}, - {0x8231e736, 0xe3b69d}, - {0x8231e737, 0xe3b69e}, - {0x8231e738, 0xe3b69f}, - {0x8231e739, 0xe3b6a0}, - {0x8231e830, 0xe3b6a1}, - {0x8231e831, 0xe3b6a2}, - {0x8231e832, 0xe3b6a3}, - {0x8231e833, 0xe3b6a4}, - {0x8231e834, 0xe3b6a5}, - {0x8231e835, 0xe3b6a6}, - {0x8231e836, 0xe3b6a7}, - {0x8231e837, 0xe3b6a8}, - {0x8231e838, 0xe3b6a9}, - {0x8231e839, 0xe3b6aa}, - {0x8231e930, 0xe3b6ab}, - {0x8231e931, 0xe3b6ac}, - {0x8231e932, 0xe3b6ad}, - {0x8231e933, 0xe3b6ae}, - {0x8231e934, 0xe3b6af}, - {0x8231e935, 0xe3b6b0}, - {0x8231e936, 0xe3b6b1}, - {0x8231e937, 0xe3b6b2}, - {0x8231e938, 0xe3b6b3}, - {0x8231e939, 0xe3b6b4}, - {0x8231ea30, 0xe3b6b5}, - {0x8231ea31, 0xe3b6b6}, - {0x8231ea32, 0xe3b6b7}, - {0x8231ea33, 0xe3b6b8}, - {0x8231ea34, 0xe3b6b9}, - {0x8231ea35, 0xe3b6ba}, - {0x8231ea36, 0xe3b6bb}, - {0x8231ea37, 0xe3b6bc}, - {0x8231ea38, 0xe3b6bd}, - {0x8231ea39, 0xe3b6be}, - {0x8231eb30, 0xe3b6bf}, - {0x8231eb31, 0xe3b780}, - {0x8231eb32, 0xe3b781}, - {0x8231eb33, 0xe3b782}, - {0x8231eb34, 0xe3b783}, - {0x8231eb35, 0xe3b784}, - {0x8231eb36, 0xe3b785}, - {0x8231eb37, 0xe3b786}, - {0x8231eb38, 0xe3b787}, - {0x8231eb39, 0xe3b788}, - {0x8231ec30, 0xe3b789}, - {0x8231ec31, 0xe3b78a}, - {0x8231ec32, 0xe3b78b}, - {0x8231ec33, 0xe3b78c}, - {0x8231ec34, 0xe3b78d}, - {0x8231ec35, 0xe3b78e}, - {0x8231ec36, 0xe3b78f}, - {0x8231ec37, 0xe3b790}, - {0x8231ec38, 0xe3b791}, - {0x8231ec39, 0xe3b792}, - {0x8231ed30, 0xe3b793}, - {0x8231ed31, 0xe3b794}, - {0x8231ed32, 0xe3b795}, - {0x8231ed33, 0xe3b796}, - {0x8231ed34, 0xe3b797}, - {0x8231ed35, 0xe3b798}, - {0x8231ed36, 0xe3b799}, - {0x8231ed37, 0xe3b79a}, - {0x8231ed38, 0xe3b79b}, - {0x8231ed39, 0xe3b79c}, - {0x8231ee30, 0xe3b79d}, - {0x8231ee31, 0xe3b79e}, - {0x8231ee32, 0xe3b79f}, - {0x8231ee33, 0xe3b7a0}, - {0x8231ee34, 0xe3b7a1}, - {0x8231ee35, 0xe3b7a2}, - {0x8231ee36, 0xe3b7a3}, - {0x8231ee37, 0xe3b7a4}, - {0x8231ee38, 0xe3b7a5}, - {0x8231ee39, 0xe3b7a6}, - {0x8231ef30, 0xe3b7a7}, - {0x8231ef31, 0xe3b7a8}, - {0x8231ef32, 0xe3b7a9}, - {0x8231ef33, 0xe3b7aa}, - {0x8231ef34, 0xe3b7ab}, - {0x8231ef35, 0xe3b7ac}, - {0x8231ef36, 0xe3b7ad}, - {0x8231ef37, 0xe3b7ae}, - {0x8231ef38, 0xe3b7af}, - {0x8231ef39, 0xe3b7b0}, - {0x8231f030, 0xe3b7b1}, - {0x8231f031, 0xe3b7b2}, - {0x8231f032, 0xe3b7b3}, - {0x8231f033, 0xe3b7b4}, - {0x8231f034, 0xe3b7b5}, - {0x8231f035, 0xe3b7b6}, - {0x8231f036, 0xe3b7b7}, - {0x8231f037, 0xe3b7b8}, - {0x8231f038, 0xe3b7b9}, - {0x8231f039, 0xe3b7ba}, - {0x8231f130, 0xe3b7bb}, - {0x8231f131, 0xe3b7bc}, - {0x8231f132, 0xe3b7bd}, - {0x8231f133, 0xe3b7be}, - {0x8231f134, 0xe3b7bf}, - {0x8231f135, 0xe3b880}, - {0x8231f136, 0xe3b881}, - {0x8231f137, 0xe3b882}, - {0x8231f138, 0xe3b883}, - {0x8231f139, 0xe3b884}, - {0x8231f230, 0xe3b885}, - {0x8231f231, 0xe3b886}, - {0x8231f232, 0xe3b887}, - {0x8231f233, 0xe3b888}, - {0x8231f234, 0xe3b889}, - {0x8231f235, 0xe3b88a}, - {0x8231f236, 0xe3b88b}, - {0x8231f237, 0xe3b88c}, - {0x8231f238, 0xe3b88d}, - {0x8231f239, 0xe3b88e}, - {0x8231f330, 0xe3b88f}, - {0x8231f331, 0xe3b890}, - {0x8231f332, 0xe3b891}, - {0x8231f333, 0xe3b892}, - {0x8231f334, 0xe3b893}, - {0x8231f335, 0xe3b894}, - {0x8231f336, 0xe3b895}, - {0x8231f337, 0xe3b896}, - {0x8231f338, 0xe3b897}, - {0x8231f339, 0xe3b898}, - {0x8231f430, 0xe3b899}, - {0x8231f431, 0xe3b89a}, - {0x8231f432, 0xe3b89b}, - {0x8231f433, 0xe3b89c}, - {0x8231f434, 0xe3b89d}, - {0x8231f435, 0xe3b89e}, - {0x8231f436, 0xe3b89f}, - {0x8231f437, 0xe3b8a0}, - {0x8231f438, 0xe3b8a1}, - {0x8231f439, 0xe3b8a2}, - {0x8231f530, 0xe3b8a3}, - {0x8231f531, 0xe3b8a4}, - {0x8231f532, 0xe3b8a5}, - {0x8231f533, 0xe3b8a6}, - {0x8231f534, 0xe3b8a7}, - {0x8231f535, 0xe3b8a8}, - {0x8231f536, 0xe3b8a9}, - {0x8231f537, 0xe3b8aa}, - {0x8231f538, 0xe3b8ab}, - {0x8231f539, 0xe3b8ac}, - {0x8231f630, 0xe3b8ad}, - {0x8231f631, 0xe3b8ae}, - {0x8231f632, 0xe3b8af}, - {0x8231f633, 0xe3b8b0}, - {0x8231f634, 0xe3b8b1}, - {0x8231f635, 0xe3b8b2}, - {0x8231f636, 0xe3b8b3}, - {0x8231f637, 0xe3b8b4}, - {0x8231f638, 0xe3b8b5}, - {0x8231f639, 0xe3b8b6}, - {0x8231f730, 0xe3b8b7}, - {0x8231f731, 0xe3b8b8}, - {0x8231f732, 0xe3b8b9}, - {0x8231f733, 0xe3b8ba}, - {0x8231f734, 0xe3b8bb}, - {0x8231f735, 0xe3b8bc}, - {0x8231f736, 0xe3b8bd}, - {0x8231f737, 0xe3b8be}, - {0x8231f738, 0xe3b8bf}, - {0x8231f739, 0xe3b980}, - {0x8231f830, 0xe3b981}, - {0x8231f831, 0xe3b982}, - {0x8231f832, 0xe3b983}, - {0x8231f833, 0xe3b984}, - {0x8231f834, 0xe3b985}, - {0x8231f835, 0xe3b986}, - {0x8231f836, 0xe3b987}, - {0x8231f837, 0xe3b988}, - {0x8231f838, 0xe3b989}, - {0x8231f839, 0xe3b98a}, - {0x8231f930, 0xe3b98b}, - {0x8231f931, 0xe3b98c}, - {0x8231f932, 0xe3b98d}, - {0x8231f933, 0xe3b98e}, - {0x8231f934, 0xe3b98f}, - {0x8231f935, 0xe3b990}, - {0x8231f936, 0xe3b991}, - {0x8231f937, 0xe3b992}, - {0x8231f938, 0xe3b993}, - {0x8231f939, 0xe3b994}, - {0x8231fa30, 0xe3b995}, - {0x8231fa31, 0xe3b996}, - {0x8231fa32, 0xe3b997}, - {0x8231fa33, 0xe3b998}, - {0x8231fa34, 0xe3b999}, - {0x8231fa35, 0xe3b99a}, - {0x8231fa36, 0xe3b99b}, - {0x8231fa37, 0xe3b99c}, - {0x8231fa38, 0xe3b99d}, - {0x8231fa39, 0xe3b99e}, - {0x8231fb30, 0xe3b99f}, - {0x8231fb31, 0xe3b9a0}, - {0x8231fb32, 0xe3b9a1}, - {0x8231fb33, 0xe3b9a2}, - {0x8231fb34, 0xe3b9a3}, - {0x8231fb35, 0xe3b9a4}, - {0x8231fb36, 0xe3b9a5}, - {0x8231fb37, 0xe3b9a6}, - {0x8231fb38, 0xe3b9a7}, - {0x8231fb39, 0xe3b9a8}, - {0x8231fc30, 0xe3b9a9}, - {0x8231fc31, 0xe3b9aa}, - {0x8231fc32, 0xe3b9ab}, - {0x8231fc33, 0xe3b9ac}, - {0x8231fc34, 0xe3b9ad}, - {0x8231fc35, 0xe3b9ae}, - {0x8231fc36, 0xe3b9af}, - {0x8231fc37, 0xe3b9b0}, - {0x8231fc38, 0xe3b9b1}, - {0x8231fc39, 0xe3b9b2}, - {0x8231fd30, 0xe3b9b3}, - {0x8231fd31, 0xe3b9b4}, - {0x8231fd32, 0xe3b9b5}, - {0x8231fd33, 0xe3b9b6}, - {0x8231fd34, 0xe3b9b7}, - {0x8231fd35, 0xe3b9b8}, - {0x8231fd36, 0xe3b9b9}, - {0x8231fd37, 0xe3b9ba}, - {0x8231fd38, 0xe3b9bb}, - {0x8231fd39, 0xe3b9bc}, - {0x8231fe30, 0xe3b9bd}, - {0x8231fe31, 0xe3b9be}, - {0x8231fe32, 0xe3b9bf}, - {0x8231fe33, 0xe3ba80}, - {0x8231fe34, 0xe3ba81}, - {0x8231fe35, 0xe3ba82}, - {0x8231fe36, 0xe3ba83}, - {0x8231fe37, 0xe3ba84}, - {0x8231fe38, 0xe3ba85}, - {0x8231fe39, 0xe3ba86}, - {0x82328130, 0xe3ba87}, - {0x82328131, 0xe3ba88}, - {0x82328132, 0xe3ba89}, - {0x82328133, 0xe3ba8a}, - {0x82328134, 0xe3ba8b}, - {0x82328135, 0xe3ba8c}, - {0x82328136, 0xe3ba8d}, - {0x82328137, 0xe3ba8e}, - {0x82328138, 0xe3ba8f}, - {0x82328139, 0xe3ba90}, - {0x82328230, 0xe3ba91}, - {0x82328231, 0xe3ba92}, - {0x82328232, 0xe3ba93}, - {0x82328233, 0xe3ba94}, - {0x82328234, 0xe3ba95}, - {0x82328235, 0xe3ba96}, - {0x82328236, 0xe3ba97}, - {0x82328237, 0xe3ba98}, - {0x82328238, 0xe3ba99}, - {0x82328239, 0xe3ba9a}, - {0x82328330, 0xe3ba9b}, - {0x82328331, 0xe3ba9c}, - {0x82328332, 0xe3ba9d}, - {0x82328333, 0xe3ba9e}, - {0x82328334, 0xe3ba9f}, - {0x82328335, 0xe3baa0}, - {0x82328336, 0xe3baa1}, - {0x82328337, 0xe3baa2}, - {0x82328338, 0xe3baa3}, - {0x82328339, 0xe3baa4}, - {0x82328430, 0xe3baa5}, - {0x82328431, 0xe3baa6}, - {0x82328432, 0xe3baa7}, - {0x82328433, 0xe3baa8}, - {0x82328434, 0xe3baa9}, - {0x82328435, 0xe3baaa}, - {0x82328436, 0xe3baab}, - {0x82328437, 0xe3baac}, - {0x82328438, 0xe3baad}, - {0x82328439, 0xe3baae}, - {0x82328530, 0xe3baaf}, - {0x82328531, 0xe3bab0}, - {0x82328532, 0xe3bab1}, - {0x82328533, 0xe3bab2}, - {0x82328534, 0xe3bab3}, - {0x82328535, 0xe3bab4}, - {0x82328536, 0xe3bab5}, - {0x82328537, 0xe3bab6}, - {0x82328538, 0xe3bab7}, - {0x82328539, 0xe3bab8}, - {0x82328630, 0xe3bab9}, - {0x82328631, 0xe3baba}, - {0x82328632, 0xe3babb}, - {0x82328633, 0xe3babc}, - {0x82328634, 0xe3babd}, - {0x82328635, 0xe3babe}, - {0x82328636, 0xe3babf}, - {0x82328637, 0xe3bb80}, - {0x82328638, 0xe3bb81}, - {0x82328639, 0xe3bb82}, - {0x82328730, 0xe3bb83}, - {0x82328731, 0xe3bb84}, - {0x82328732, 0xe3bb85}, - {0x82328733, 0xe3bb86}, - {0x82328734, 0xe3bb87}, - {0x82328735, 0xe3bb88}, - {0x82328736, 0xe3bb89}, - {0x82328737, 0xe3bb8a}, - {0x82328738, 0xe3bb8b}, - {0x82328739, 0xe3bb8c}, - {0x82328830, 0xe3bb8d}, - {0x82328831, 0xe3bb8e}, - {0x82328832, 0xe3bb8f}, - {0x82328833, 0xe3bb90}, - {0x82328834, 0xe3bb91}, - {0x82328835, 0xe3bb92}, - {0x82328836, 0xe3bb93}, - {0x82328837, 0xe3bb94}, - {0x82328838, 0xe3bb95}, - {0x82328839, 0xe3bb96}, - {0x82328930, 0xe3bb97}, - {0x82328931, 0xe3bb98}, - {0x82328932, 0xe3bb99}, - {0x82328933, 0xe3bb9a}, - {0x82328934, 0xe3bb9b}, - {0x82328935, 0xe3bb9c}, - {0x82328936, 0xe3bb9d}, - {0x82328937, 0xe3bb9e}, - {0x82328938, 0xe3bb9f}, - {0x82328939, 0xe3bba0}, - {0x82328a30, 0xe3bba1}, - {0x82328a31, 0xe3bba2}, - {0x82328a32, 0xe3bba3}, - {0x82328a33, 0xe3bba4}, - {0x82328a34, 0xe3bba5}, - {0x82328a35, 0xe3bba6}, - {0x82328a36, 0xe3bba7}, - {0x82328a37, 0xe3bba8}, - {0x82328a38, 0xe3bba9}, - {0x82328a39, 0xe3bbaa}, - {0x82328b30, 0xe3bbab}, - {0x82328b31, 0xe3bbac}, - {0x82328b32, 0xe3bbad}, - {0x82328b33, 0xe3bbae}, - {0x82328b34, 0xe3bbaf}, - {0x82328b35, 0xe3bbb0}, - {0x82328b36, 0xe3bbb1}, - {0x82328b37, 0xe3bbb2}, - {0x82328b38, 0xe3bbb3}, - {0x82328b39, 0xe3bbb4}, - {0x82328c30, 0xe3bbb5}, - {0x82328c31, 0xe3bbb6}, - {0x82328c32, 0xe3bbb7}, - {0x82328c33, 0xe3bbb8}, - {0x82328c34, 0xe3bbb9}, - {0x82328c35, 0xe3bbba}, - {0x82328c36, 0xe3bbbb}, - {0x82328c37, 0xe3bbbc}, - {0x82328c38, 0xe3bbbd}, - {0x82328c39, 0xe3bbbe}, - {0x82328d30, 0xe3bbbf}, - {0x82328d31, 0xe3bc80}, - {0x82328d32, 0xe3bc81}, - {0x82328d33, 0xe3bc82}, - {0x82328d34, 0xe3bc83}, - {0x82328d35, 0xe3bc84}, - {0x82328d36, 0xe3bc85}, - {0x82328d37, 0xe3bc86}, - {0x82328d38, 0xe3bc87}, - {0x82328d39, 0xe3bc88}, - {0x82328e30, 0xe3bc89}, - {0x82328e31, 0xe3bc8a}, - {0x82328e32, 0xe3bc8b}, - {0x82328e33, 0xe3bc8c}, - {0x82328e34, 0xe3bc8d}, - {0x82328e35, 0xe3bc8e}, - {0x82328e36, 0xe3bc8f}, - {0x82328e37, 0xe3bc90}, - {0x82328e38, 0xe3bc91}, - {0x82328e39, 0xe3bc92}, - {0x82328f30, 0xe3bc93}, - {0x82328f31, 0xe3bc94}, - {0x82328f32, 0xe3bc95}, - {0x82328f33, 0xe3bc96}, - {0x82328f34, 0xe3bc97}, - {0x82328f35, 0xe3bc98}, - {0x82328f36, 0xe3bc99}, - {0x82328f37, 0xe3bc9a}, - {0x82328f38, 0xe3bc9b}, - {0x82328f39, 0xe3bc9c}, - {0x82329030, 0xe3bc9d}, - {0x82329031, 0xe3bc9e}, - {0x82329032, 0xe3bc9f}, - {0x82329033, 0xe3bca0}, - {0x82329034, 0xe3bca1}, - {0x82329035, 0xe3bca2}, - {0x82329036, 0xe3bca3}, - {0x82329037, 0xe3bca4}, - {0x82329038, 0xe3bca5}, - {0x82329039, 0xe3bca6}, - {0x82329130, 0xe3bca7}, - {0x82329131, 0xe3bca8}, - {0x82329132, 0xe3bca9}, - {0x82329133, 0xe3bcaa}, - {0x82329134, 0xe3bcab}, - {0x82329135, 0xe3bcac}, - {0x82329136, 0xe3bcad}, - {0x82329137, 0xe3bcae}, - {0x82329138, 0xe3bcaf}, - {0x82329139, 0xe3bcb0}, - {0x82329230, 0xe3bcb1}, - {0x82329231, 0xe3bcb2}, - {0x82329232, 0xe3bcb3}, - {0x82329233, 0xe3bcb4}, - {0x82329234, 0xe3bcb5}, - {0x82329235, 0xe3bcb6}, - {0x82329236, 0xe3bcb7}, - {0x82329237, 0xe3bcb8}, - {0x82329238, 0xe3bcb9}, - {0x82329239, 0xe3bcba}, - {0x82329330, 0xe3bcbb}, - {0x82329331, 0xe3bcbc}, - {0x82329332, 0xe3bcbd}, - {0x82329333, 0xe3bcbe}, - {0x82329334, 0xe3bcbf}, - {0x82329335, 0xe3bd80}, - {0x82329336, 0xe3bd81}, - {0x82329337, 0xe3bd82}, - {0x82329338, 0xe3bd83}, - {0x82329339, 0xe3bd84}, - {0x82329430, 0xe3bd85}, - {0x82329431, 0xe3bd86}, - {0x82329432, 0xe3bd87}, - {0x82329433, 0xe3bd88}, - {0x82329434, 0xe3bd89}, - {0x82329435, 0xe3bd8a}, - {0x82329436, 0xe3bd8b}, - {0x82329437, 0xe3bd8c}, - {0x82329438, 0xe3bd8d}, - {0x82329439, 0xe3bd8e}, - {0x82329530, 0xe3bd8f}, - {0x82329531, 0xe3bd90}, - {0x82329532, 0xe3bd91}, - {0x82329533, 0xe3bd92}, - {0x82329534, 0xe3bd93}, - {0x82329535, 0xe3bd94}, - {0x82329536, 0xe3bd95}, - {0x82329537, 0xe3bd96}, - {0x82329538, 0xe3bd97}, - {0x82329539, 0xe3bd98}, - {0x82329630, 0xe3bd99}, - {0x82329631, 0xe3bd9a}, - {0x82329632, 0xe3bd9b}, - {0x82329633, 0xe3bd9c}, - {0x82329634, 0xe3bd9d}, - {0x82329635, 0xe3bd9e}, - {0x82329636, 0xe3bd9f}, - {0x82329637, 0xe3bda0}, - {0x82329638, 0xe3bda1}, - {0x82329639, 0xe3bda2}, - {0x82329730, 0xe3bda3}, - {0x82329731, 0xe3bda4}, - {0x82329732, 0xe3bda5}, - {0x82329733, 0xe3bda6}, - {0x82329734, 0xe3bda7}, - {0x82329735, 0xe3bda8}, - {0x82329736, 0xe3bda9}, - {0x82329737, 0xe3bdaa}, - {0x82329738, 0xe3bdab}, - {0x82329739, 0xe3bdac}, - {0x82329830, 0xe3bdad}, - {0x82329831, 0xe3bdae}, - {0x82329832, 0xe3bdaf}, - {0x82329833, 0xe3bdb0}, - {0x82329834, 0xe3bdb1}, - {0x82329835, 0xe3bdb2}, - {0x82329836, 0xe3bdb3}, - {0x82329837, 0xe3bdb4}, - {0x82329838, 0xe3bdb5}, - {0x82329839, 0xe3bdb6}, - {0x82329930, 0xe3bdb7}, - {0x82329931, 0xe3bdb8}, - {0x82329932, 0xe3bdb9}, - {0x82329933, 0xe3bdba}, - {0x82329934, 0xe3bdbb}, - {0x82329935, 0xe3bdbc}, - {0x82329936, 0xe3bdbd}, - {0x82329937, 0xe3bdbe}, - {0x82329938, 0xe3bdbf}, - {0x82329939, 0xe3be80}, - {0x82329a30, 0xe3be81}, - {0x82329a31, 0xe3be82}, - {0x82329a32, 0xe3be83}, - {0x82329a33, 0xe3be84}, - {0x82329a34, 0xe3be85}, - {0x82329a35, 0xe3be86}, - {0x82329a36, 0xe3be87}, - {0x82329a37, 0xe3be88}, - {0x82329a38, 0xe3be89}, - {0x82329a39, 0xe3be8a}, - {0x82329b30, 0xe3be8b}, - {0x82329b31, 0xe3be8c}, - {0x82329b32, 0xe3be8d}, - {0x82329b33, 0xe3be8e}, - {0x82329b34, 0xe3be8f}, - {0x82329b35, 0xe3be90}, - {0x82329b36, 0xe3be91}, - {0x82329b37, 0xe3be92}, - {0x82329b38, 0xe3be93}, - {0x82329b39, 0xe3be94}, - {0x82329c30, 0xe3be95}, - {0x82329c31, 0xe3be96}, - {0x82329c32, 0xe3be97}, - {0x82329c33, 0xe3be98}, - {0x82329c34, 0xe3be99}, - {0x82329c35, 0xe3be9a}, - {0x82329c36, 0xe3be9b}, - {0x82329c37, 0xe3be9c}, - {0x82329c38, 0xe3be9d}, - {0x82329c39, 0xe3be9e}, - {0x82329d30, 0xe3be9f}, - {0x82329d31, 0xe3bea0}, - {0x82329d32, 0xe3bea1}, - {0x82329d33, 0xe3bea2}, - {0x82329d34, 0xe3bea3}, - {0x82329d35, 0xe3bea4}, - {0x82329d36, 0xe3bea5}, - {0x82329d37, 0xe3bea6}, - {0x82329d38, 0xe3bea7}, - {0x82329d39, 0xe3bea8}, - {0x82329e30, 0xe3bea9}, - {0x82329e31, 0xe3beaa}, - {0x82329e32, 0xe3beab}, - {0x82329e33, 0xe3beac}, - {0x82329e34, 0xe3bead}, - {0x82329e35, 0xe3beae}, - {0x82329e36, 0xe3beaf}, - {0x82329e37, 0xe3beb0}, - {0x82329e38, 0xe3beb1}, - {0x82329e39, 0xe3beb2}, - {0x82329f30, 0xe3beb3}, - {0x82329f31, 0xe3beb4}, - {0x82329f32, 0xe3beb5}, - {0x82329f33, 0xe3beb6}, - {0x82329f34, 0xe3beb7}, - {0x82329f35, 0xe3beb8}, - {0x82329f36, 0xe3beb9}, - {0x82329f37, 0xe3beba}, - {0x82329f38, 0xe3bebb}, - {0x82329f39, 0xe3bebc}, - {0x8232a030, 0xe3bebd}, - {0x8232a031, 0xe3bebe}, - {0x8232a032, 0xe3bebf}, - {0x8232a033, 0xe3bf80}, - {0x8232a034, 0xe3bf81}, - {0x8232a035, 0xe3bf82}, - {0x8232a036, 0xe3bf83}, - {0x8232a037, 0xe3bf84}, - {0x8232a038, 0xe3bf85}, - {0x8232a039, 0xe3bf86}, - {0x8232a130, 0xe3bf87}, - {0x8232a131, 0xe3bf88}, - {0x8232a132, 0xe3bf89}, - {0x8232a133, 0xe3bf8a}, - {0x8232a134, 0xe3bf8b}, - {0x8232a135, 0xe3bf8c}, - {0x8232a136, 0xe3bf8d}, - {0x8232a137, 0xe3bf8e}, - {0x8232a138, 0xe3bf8f}, - {0x8232a139, 0xe3bf90}, - {0x8232a230, 0xe3bf91}, - {0x8232a231, 0xe3bf92}, - {0x8232a232, 0xe3bf93}, - {0x8232a233, 0xe3bf94}, - {0x8232a234, 0xe3bf95}, - {0x8232a235, 0xe3bf96}, - {0x8232a236, 0xe3bf97}, - {0x8232a237, 0xe3bf98}, - {0x8232a238, 0xe3bf99}, - {0x8232a239, 0xe3bf9a}, - {0x8232a330, 0xe3bf9b}, - {0x8232a331, 0xe3bf9c}, - {0x8232a332, 0xe3bf9d}, - {0x8232a333, 0xe3bf9e}, - {0x8232a334, 0xe3bf9f}, - {0x8232a335, 0xe3bfa0}, - {0x8232a336, 0xe3bfa1}, - {0x8232a337, 0xe3bfa2}, - {0x8232a338, 0xe3bfa3}, - {0x8232a339, 0xe3bfa4}, - {0x8232a430, 0xe3bfa5}, - {0x8232a431, 0xe3bfa6}, - {0x8232a432, 0xe3bfa7}, - {0x8232a433, 0xe3bfa8}, - {0x8232a434, 0xe3bfa9}, - {0x8232a435, 0xe3bfaa}, - {0x8232a436, 0xe3bfab}, - {0x8232a437, 0xe3bfac}, - {0x8232a438, 0xe3bfad}, - {0x8232a439, 0xe3bfae}, - {0x8232a530, 0xe3bfaf}, - {0x8232a531, 0xe3bfb0}, - {0x8232a532, 0xe3bfb1}, - {0x8232a533, 0xe3bfb2}, - {0x8232a534, 0xe3bfb3}, - {0x8232a535, 0xe3bfb4}, - {0x8232a536, 0xe3bfb5}, - {0x8232a537, 0xe3bfb6}, - {0x8232a538, 0xe3bfb7}, - {0x8232a539, 0xe3bfb8}, - {0x8232a630, 0xe3bfb9}, - {0x8232a631, 0xe3bfba}, - {0x8232a632, 0xe3bfbb}, - {0x8232a633, 0xe3bfbc}, - {0x8232a634, 0xe3bfbd}, - {0x8232a635, 0xe3bfbe}, - {0x8232a636, 0xe3bfbf}, - {0x8232a637, 0xe48080}, - {0x8232a638, 0xe48081}, - {0x8232a639, 0xe48082}, - {0x8232a730, 0xe48083}, - {0x8232a731, 0xe48084}, - {0x8232a732, 0xe48085}, - {0x8232a733, 0xe48086}, - {0x8232a734, 0xe48087}, - {0x8232a735, 0xe48088}, - {0x8232a736, 0xe48089}, - {0x8232a737, 0xe4808a}, - {0x8232a738, 0xe4808b}, - {0x8232a739, 0xe4808c}, - {0x8232a830, 0xe4808d}, - {0x8232a831, 0xe4808e}, - {0x8232a832, 0xe4808f}, - {0x8232a833, 0xe48090}, - {0x8232a834, 0xe48091}, - {0x8232a835, 0xe48092}, - {0x8232a836, 0xe48093}, - {0x8232a837, 0xe48094}, - {0x8232a838, 0xe48095}, - {0x8232a839, 0xe48096}, - {0x8232a930, 0xe48097}, - {0x8232a931, 0xe48098}, - {0x8232a932, 0xe48099}, - {0x8232a933, 0xe4809a}, - {0x8232a934, 0xe4809b}, - {0x8232a935, 0xe4809c}, - {0x8232a936, 0xe4809d}, - {0x8232a937, 0xe4809e}, - {0x8232a938, 0xe4809f}, - {0x8232a939, 0xe480a0}, - {0x8232aa30, 0xe480a1}, - {0x8232aa31, 0xe480a2}, - {0x8232aa32, 0xe480a3}, - {0x8232aa33, 0xe480a4}, - {0x8232aa34, 0xe480a5}, - {0x8232aa35, 0xe480a6}, - {0x8232aa36, 0xe480a7}, - {0x8232aa37, 0xe480a8}, - {0x8232aa38, 0xe480a9}, - {0x8232aa39, 0xe480aa}, - {0x8232ab30, 0xe480ab}, - {0x8232ab31, 0xe480ac}, - {0x8232ab32, 0xe480ad}, - {0x8232ab33, 0xe480ae}, - {0x8232ab34, 0xe480af}, - {0x8232ab35, 0xe480b0}, - {0x8232ab36, 0xe480b1}, - {0x8232ab37, 0xe480b2}, - {0x8232ab38, 0xe480b3}, - {0x8232ab39, 0xe480b4}, - {0x8232ac30, 0xe480b5}, - {0x8232ac31, 0xe480b6}, - {0x8232ac32, 0xe480b7}, - {0x8232ac33, 0xe480b8}, - {0x8232ac34, 0xe480b9}, - {0x8232ac35, 0xe480ba}, - {0x8232ac36, 0xe480bb}, - {0x8232ac37, 0xe480bc}, - {0x8232ac38, 0xe480bd}, - {0x8232ac39, 0xe480be}, - {0x8232ad30, 0xe480bf}, - {0x8232ad31, 0xe48180}, - {0x8232ad32, 0xe48181}, - {0x8232ad33, 0xe48182}, - {0x8232ad34, 0xe48183}, - {0x8232ad35, 0xe48184}, - {0x8232ad36, 0xe48185}, - {0x8232ad37, 0xe48186}, - {0x8232ad38, 0xe48187}, - {0x8232ad39, 0xe48188}, - {0x8232ae30, 0xe48189}, - {0x8232ae31, 0xe4818a}, - {0x8232ae32, 0xe4818b}, - {0x8232ae33, 0xe4818c}, - {0x8232ae34, 0xe4818d}, - {0x8232ae35, 0xe4818e}, - {0x8232ae36, 0xe4818f}, - {0x8232ae37, 0xe48190}, - {0x8232ae38, 0xe48191}, - {0x8232ae39, 0xe48192}, - {0x8232af30, 0xe48193}, - {0x8232af31, 0xe48194}, - {0x8232af32, 0xe48195}, {0x8232af33, 0xe48197}, {0x8232af34, 0xe48198}, {0x8232af35, 0xe48199}, @@ -39786,477 +28924,6 @@ static pg_local_to_utf LUmapGB18030[ 63360 ] = { {0x8232c934, 0xe4859c}, {0x8232c935, 0xe4859d}, {0x8232c936, 0xe4859e}, - {0x8232c937, 0xe485a0}, - {0x8232c938, 0xe485a1}, - {0x8232c939, 0xe485a2}, - {0x8232ca30, 0xe485a3}, - {0x8232ca31, 0xe485a4}, - {0x8232ca32, 0xe485a5}, - {0x8232ca33, 0xe485a6}, - {0x8232ca34, 0xe485a7}, - {0x8232ca35, 0xe485a8}, - {0x8232ca36, 0xe485a9}, - {0x8232ca37, 0xe485aa}, - {0x8232ca38, 0xe485ab}, - {0x8232ca39, 0xe485ac}, - {0x8232cb30, 0xe485ad}, - {0x8232cb31, 0xe485ae}, - {0x8232cb32, 0xe485af}, - {0x8232cb33, 0xe485b0}, - {0x8232cb34, 0xe485b1}, - {0x8232cb35, 0xe485b2}, - {0x8232cb36, 0xe485b3}, - {0x8232cb37, 0xe485b4}, - {0x8232cb38, 0xe485b5}, - {0x8232cb39, 0xe485b6}, - {0x8232cc30, 0xe485b7}, - {0x8232cc31, 0xe485b8}, - {0x8232cc32, 0xe485b9}, - {0x8232cc33, 0xe485ba}, - {0x8232cc34, 0xe485bb}, - {0x8232cc35, 0xe485bc}, - {0x8232cc36, 0xe485bd}, - {0x8232cc37, 0xe485be}, - {0x8232cc38, 0xe485bf}, - {0x8232cc39, 0xe48680}, - {0x8232cd30, 0xe48681}, - {0x8232cd31, 0xe48682}, - {0x8232cd32, 0xe48683}, - {0x8232cd33, 0xe48684}, - {0x8232cd34, 0xe48685}, - {0x8232cd35, 0xe48686}, - {0x8232cd36, 0xe48687}, - {0x8232cd37, 0xe48688}, - {0x8232cd38, 0xe48689}, - {0x8232cd39, 0xe4868a}, - {0x8232ce30, 0xe4868b}, - {0x8232ce31, 0xe4868c}, - {0x8232ce32, 0xe4868d}, - {0x8232ce33, 0xe4868e}, - {0x8232ce34, 0xe4868f}, - {0x8232ce35, 0xe48690}, - {0x8232ce36, 0xe48691}, - {0x8232ce37, 0xe48692}, - {0x8232ce38, 0xe48693}, - {0x8232ce39, 0xe48694}, - {0x8232cf30, 0xe48695}, - {0x8232cf31, 0xe48696}, - {0x8232cf32, 0xe48697}, - {0x8232cf33, 0xe48698}, - {0x8232cf34, 0xe48699}, - {0x8232cf35, 0xe4869a}, - {0x8232cf36, 0xe4869b}, - {0x8232cf37, 0xe4869c}, - {0x8232cf38, 0xe4869d}, - {0x8232cf39, 0xe4869e}, - {0x8232d030, 0xe4869f}, - {0x8232d031, 0xe486a0}, - {0x8232d032, 0xe486a1}, - {0x8232d033, 0xe486a2}, - {0x8232d034, 0xe486a3}, - {0x8232d035, 0xe486a4}, - {0x8232d036, 0xe486a5}, - {0x8232d037, 0xe486a6}, - {0x8232d038, 0xe486a7}, - {0x8232d039, 0xe486a8}, - {0x8232d130, 0xe486a9}, - {0x8232d131, 0xe486aa}, - {0x8232d132, 0xe486ab}, - {0x8232d133, 0xe486ac}, - {0x8232d134, 0xe486ad}, - {0x8232d135, 0xe486ae}, - {0x8232d136, 0xe486af}, - {0x8232d137, 0xe486b0}, - {0x8232d138, 0xe486b1}, - {0x8232d139, 0xe486b2}, - {0x8232d230, 0xe486b3}, - {0x8232d231, 0xe486b4}, - {0x8232d232, 0xe486b5}, - {0x8232d233, 0xe486b6}, - {0x8232d234, 0xe486b7}, - {0x8232d235, 0xe486b8}, - {0x8232d236, 0xe486b9}, - {0x8232d237, 0xe486ba}, - {0x8232d238, 0xe486bb}, - {0x8232d239, 0xe486bc}, - {0x8232d330, 0xe486bd}, - {0x8232d331, 0xe486be}, - {0x8232d332, 0xe486bf}, - {0x8232d333, 0xe48780}, - {0x8232d334, 0xe48781}, - {0x8232d335, 0xe48782}, - {0x8232d336, 0xe48783}, - {0x8232d337, 0xe48784}, - {0x8232d338, 0xe48785}, - {0x8232d339, 0xe48786}, - {0x8232d430, 0xe48787}, - {0x8232d431, 0xe48788}, - {0x8232d432, 0xe48789}, - {0x8232d433, 0xe4878a}, - {0x8232d434, 0xe4878b}, - {0x8232d435, 0xe4878c}, - {0x8232d436, 0xe4878d}, - {0x8232d437, 0xe4878e}, - {0x8232d438, 0xe4878f}, - {0x8232d439, 0xe48790}, - {0x8232d530, 0xe48791}, - {0x8232d531, 0xe48792}, - {0x8232d532, 0xe48793}, - {0x8232d533, 0xe48794}, - {0x8232d534, 0xe48795}, - {0x8232d535, 0xe48796}, - {0x8232d536, 0xe48797}, - {0x8232d537, 0xe48798}, - {0x8232d538, 0xe48799}, - {0x8232d539, 0xe4879a}, - {0x8232d630, 0xe4879b}, - {0x8232d631, 0xe4879c}, - {0x8232d632, 0xe4879d}, - {0x8232d633, 0xe4879e}, - {0x8232d634, 0xe4879f}, - {0x8232d635, 0xe487a0}, - {0x8232d636, 0xe487a1}, - {0x8232d637, 0xe487a2}, - {0x8232d638, 0xe487a3}, - {0x8232d639, 0xe487a4}, - {0x8232d730, 0xe487a5}, - {0x8232d731, 0xe487a6}, - {0x8232d732, 0xe487a7}, - {0x8232d733, 0xe487a8}, - {0x8232d734, 0xe487a9}, - {0x8232d735, 0xe487aa}, - {0x8232d736, 0xe487ab}, - {0x8232d737, 0xe487ac}, - {0x8232d738, 0xe487ad}, - {0x8232d739, 0xe487ae}, - {0x8232d830, 0xe487af}, - {0x8232d831, 0xe487b0}, - {0x8232d832, 0xe487b1}, - {0x8232d833, 0xe487b2}, - {0x8232d834, 0xe487b3}, - {0x8232d835, 0xe487b4}, - {0x8232d836, 0xe487b5}, - {0x8232d837, 0xe487b6}, - {0x8232d838, 0xe487b7}, - {0x8232d839, 0xe487b8}, - {0x8232d930, 0xe487b9}, - {0x8232d931, 0xe487ba}, - {0x8232d932, 0xe487bb}, - {0x8232d933, 0xe487bc}, - {0x8232d934, 0xe487bd}, - {0x8232d935, 0xe487be}, - {0x8232d936, 0xe487bf}, - {0x8232d937, 0xe48880}, - {0x8232d938, 0xe48881}, - {0x8232d939, 0xe48882}, - {0x8232da30, 0xe48883}, - {0x8232da31, 0xe48884}, - {0x8232da32, 0xe48885}, - {0x8232da33, 0xe48886}, - {0x8232da34, 0xe48887}, - {0x8232da35, 0xe48888}, - {0x8232da36, 0xe48889}, - {0x8232da37, 0xe4888a}, - {0x8232da38, 0xe4888b}, - {0x8232da39, 0xe4888c}, - {0x8232db30, 0xe4888d}, - {0x8232db31, 0xe4888e}, - {0x8232db32, 0xe4888f}, - {0x8232db33, 0xe48890}, - {0x8232db34, 0xe48891}, - {0x8232db35, 0xe48892}, - {0x8232db36, 0xe48893}, - {0x8232db37, 0xe48894}, - {0x8232db38, 0xe48895}, - {0x8232db39, 0xe48896}, - {0x8232dc30, 0xe48897}, - {0x8232dc31, 0xe48898}, - {0x8232dc32, 0xe48899}, - {0x8232dc33, 0xe4889a}, - {0x8232dc34, 0xe4889b}, - {0x8232dc35, 0xe4889c}, - {0x8232dc36, 0xe4889d}, - {0x8232dc37, 0xe4889e}, - {0x8232dc38, 0xe4889f}, - {0x8232dc39, 0xe488a0}, - {0x8232dd30, 0xe488a1}, - {0x8232dd31, 0xe488a2}, - {0x8232dd32, 0xe488a3}, - {0x8232dd33, 0xe488a4}, - {0x8232dd34, 0xe488a5}, - {0x8232dd35, 0xe488a6}, - {0x8232dd36, 0xe488a7}, - {0x8232dd37, 0xe488a8}, - {0x8232dd38, 0xe488a9}, - {0x8232dd39, 0xe488aa}, - {0x8232de30, 0xe488ab}, - {0x8232de31, 0xe488ac}, - {0x8232de32, 0xe488ad}, - {0x8232de33, 0xe488ae}, - {0x8232de34, 0xe488af}, - {0x8232de35, 0xe488b0}, - {0x8232de36, 0xe488b1}, - {0x8232de37, 0xe488b2}, - {0x8232de38, 0xe488b3}, - {0x8232de39, 0xe488b4}, - {0x8232df30, 0xe488b5}, - {0x8232df31, 0xe488b6}, - {0x8232df32, 0xe488b7}, - {0x8232df33, 0xe488b8}, - {0x8232df34, 0xe488b9}, - {0x8232df35, 0xe488ba}, - {0x8232df36, 0xe488bb}, - {0x8232df37, 0xe488bc}, - {0x8232df38, 0xe488bd}, - {0x8232df39, 0xe488be}, - {0x8232e030, 0xe488bf}, - {0x8232e031, 0xe48980}, - {0x8232e032, 0xe48981}, - {0x8232e033, 0xe48982}, - {0x8232e034, 0xe48983}, - {0x8232e035, 0xe48984}, - {0x8232e036, 0xe48985}, - {0x8232e037, 0xe48986}, - {0x8232e038, 0xe48987}, - {0x8232e039, 0xe48988}, - {0x8232e130, 0xe48989}, - {0x8232e131, 0xe4898a}, - {0x8232e132, 0xe4898b}, - {0x8232e133, 0xe4898c}, - {0x8232e134, 0xe4898d}, - {0x8232e135, 0xe4898e}, - {0x8232e136, 0xe4898f}, - {0x8232e137, 0xe48990}, - {0x8232e138, 0xe48991}, - {0x8232e139, 0xe48992}, - {0x8232e230, 0xe48993}, - {0x8232e231, 0xe48994}, - {0x8232e232, 0xe48995}, - {0x8232e233, 0xe48996}, - {0x8232e234, 0xe48997}, - {0x8232e235, 0xe48998}, - {0x8232e236, 0xe48999}, - {0x8232e237, 0xe4899a}, - {0x8232e238, 0xe4899b}, - {0x8232e239, 0xe4899c}, - {0x8232e330, 0xe4899d}, - {0x8232e331, 0xe4899e}, - {0x8232e332, 0xe4899f}, - {0x8232e333, 0xe489a0}, - {0x8232e334, 0xe489a1}, - {0x8232e335, 0xe489a2}, - {0x8232e336, 0xe489a3}, - {0x8232e337, 0xe489a4}, - {0x8232e338, 0xe489a5}, - {0x8232e339, 0xe489a6}, - {0x8232e430, 0xe489a7}, - {0x8232e431, 0xe489a8}, - {0x8232e432, 0xe489a9}, - {0x8232e433, 0xe489aa}, - {0x8232e434, 0xe489ab}, - {0x8232e435, 0xe489ac}, - {0x8232e436, 0xe489ad}, - {0x8232e437, 0xe489ae}, - {0x8232e438, 0xe489af}, - {0x8232e439, 0xe489b0}, - {0x8232e530, 0xe489b1}, - {0x8232e531, 0xe489b2}, - {0x8232e532, 0xe489b3}, - {0x8232e533, 0xe489b4}, - {0x8232e534, 0xe489b5}, - {0x8232e535, 0xe489b6}, - {0x8232e536, 0xe489b7}, - {0x8232e537, 0xe489b8}, - {0x8232e538, 0xe489b9}, - {0x8232e539, 0xe489ba}, - {0x8232e630, 0xe489bb}, - {0x8232e631, 0xe489bc}, - {0x8232e632, 0xe489bd}, - {0x8232e633, 0xe489be}, - {0x8232e634, 0xe489bf}, - {0x8232e635, 0xe48a80}, - {0x8232e636, 0xe48a81}, - {0x8232e637, 0xe48a82}, - {0x8232e638, 0xe48a83}, - {0x8232e639, 0xe48a84}, - {0x8232e730, 0xe48a85}, - {0x8232e731, 0xe48a86}, - {0x8232e732, 0xe48a87}, - {0x8232e733, 0xe48a88}, - {0x8232e734, 0xe48a89}, - {0x8232e735, 0xe48a8a}, - {0x8232e736, 0xe48a8b}, - {0x8232e737, 0xe48a8c}, - {0x8232e738, 0xe48a8d}, - {0x8232e739, 0xe48a8e}, - {0x8232e830, 0xe48a8f}, - {0x8232e831, 0xe48a90}, - {0x8232e832, 0xe48a91}, - {0x8232e833, 0xe48a92}, - {0x8232e834, 0xe48a93}, - {0x8232e835, 0xe48a94}, - {0x8232e836, 0xe48a95}, - {0x8232e837, 0xe48a96}, - {0x8232e838, 0xe48a97}, - {0x8232e839, 0xe48a98}, - {0x8232e930, 0xe48a99}, - {0x8232e931, 0xe48a9a}, - {0x8232e932, 0xe48a9b}, - {0x8232e933, 0xe48a9c}, - {0x8232e934, 0xe48a9d}, - {0x8232e935, 0xe48a9e}, - {0x8232e936, 0xe48a9f}, - {0x8232e937, 0xe48aa0}, - {0x8232e938, 0xe48aa1}, - {0x8232e939, 0xe48aa2}, - {0x8232ea30, 0xe48aa3}, - {0x8232ea31, 0xe48aa4}, - {0x8232ea32, 0xe48aa5}, - {0x8232ea33, 0xe48aa6}, - {0x8232ea34, 0xe48aa7}, - {0x8232ea35, 0xe48aa8}, - {0x8232ea36, 0xe48aa9}, - {0x8232ea37, 0xe48aaa}, - {0x8232ea38, 0xe48aab}, - {0x8232ea39, 0xe48aac}, - {0x8232eb30, 0xe48aad}, - {0x8232eb31, 0xe48aae}, - {0x8232eb32, 0xe48aaf}, - {0x8232eb33, 0xe48ab0}, - {0x8232eb34, 0xe48ab1}, - {0x8232eb35, 0xe48ab2}, - {0x8232eb36, 0xe48ab3}, - {0x8232eb37, 0xe48ab4}, - {0x8232eb38, 0xe48ab5}, - {0x8232eb39, 0xe48ab6}, - {0x8232ec30, 0xe48ab7}, - {0x8232ec31, 0xe48ab8}, - {0x8232ec32, 0xe48ab9}, - {0x8232ec33, 0xe48aba}, - {0x8232ec34, 0xe48abb}, - {0x8232ec35, 0xe48abc}, - {0x8232ec36, 0xe48abd}, - {0x8232ec37, 0xe48abe}, - {0x8232ec38, 0xe48abf}, - {0x8232ec39, 0xe48b80}, - {0x8232ed30, 0xe48b81}, - {0x8232ed31, 0xe48b82}, - {0x8232ed32, 0xe48b83}, - {0x8232ed33, 0xe48b84}, - {0x8232ed34, 0xe48b85}, - {0x8232ed35, 0xe48b86}, - {0x8232ed36, 0xe48b87}, - {0x8232ed37, 0xe48b88}, - {0x8232ed38, 0xe48b89}, - {0x8232ed39, 0xe48b8a}, - {0x8232ee30, 0xe48b8b}, - {0x8232ee31, 0xe48b8c}, - {0x8232ee32, 0xe48b8d}, - {0x8232ee33, 0xe48b8e}, - {0x8232ee34, 0xe48b8f}, - {0x8232ee35, 0xe48b90}, - {0x8232ee36, 0xe48b91}, - {0x8232ee37, 0xe48b92}, - {0x8232ee38, 0xe48b93}, - {0x8232ee39, 0xe48b94}, - {0x8232ef30, 0xe48b95}, - {0x8232ef31, 0xe48b96}, - {0x8232ef32, 0xe48b97}, - {0x8232ef33, 0xe48b98}, - {0x8232ef34, 0xe48b99}, - {0x8232ef35, 0xe48b9a}, - {0x8232ef36, 0xe48b9b}, - {0x8232ef37, 0xe48b9c}, - {0x8232ef38, 0xe48b9d}, - {0x8232ef39, 0xe48b9e}, - {0x8232f030, 0xe48b9f}, - {0x8232f031, 0xe48ba0}, - {0x8232f032, 0xe48ba1}, - {0x8232f033, 0xe48ba2}, - {0x8232f034, 0xe48ba3}, - {0x8232f035, 0xe48ba4}, - {0x8232f036, 0xe48ba5}, - {0x8232f037, 0xe48ba6}, - {0x8232f038, 0xe48ba7}, - {0x8232f039, 0xe48ba8}, - {0x8232f130, 0xe48ba9}, - {0x8232f131, 0xe48baa}, - {0x8232f132, 0xe48bab}, - {0x8232f133, 0xe48bac}, - {0x8232f134, 0xe48bad}, - {0x8232f135, 0xe48bae}, - {0x8232f136, 0xe48baf}, - {0x8232f137, 0xe48bb0}, - {0x8232f138, 0xe48bb1}, - {0x8232f139, 0xe48bb2}, - {0x8232f230, 0xe48bb3}, - {0x8232f231, 0xe48bb4}, - {0x8232f232, 0xe48bb5}, - {0x8232f233, 0xe48bb6}, - {0x8232f234, 0xe48bb7}, - {0x8232f235, 0xe48bb8}, - {0x8232f236, 0xe48bb9}, - {0x8232f237, 0xe48bba}, - {0x8232f238, 0xe48bbb}, - {0x8232f239, 0xe48bbc}, - {0x8232f330, 0xe48bbd}, - {0x8232f331, 0xe48bbe}, - {0x8232f332, 0xe48bbf}, - {0x8232f333, 0xe48c80}, - {0x8232f334, 0xe48c81}, - {0x8232f335, 0xe48c82}, - {0x8232f336, 0xe48c83}, - {0x8232f337, 0xe48c84}, - {0x8232f338, 0xe48c85}, - {0x8232f339, 0xe48c86}, - {0x8232f430, 0xe48c87}, - {0x8232f431, 0xe48c88}, - {0x8232f432, 0xe48c89}, - {0x8232f433, 0xe48c8a}, - {0x8232f434, 0xe48c8b}, - {0x8232f435, 0xe48c8c}, - {0x8232f436, 0xe48c8d}, - {0x8232f437, 0xe48c8e}, - {0x8232f438, 0xe48c8f}, - {0x8232f439, 0xe48c90}, - {0x8232f530, 0xe48c91}, - {0x8232f531, 0xe48c92}, - {0x8232f532, 0xe48c93}, - {0x8232f533, 0xe48c94}, - {0x8232f534, 0xe48c95}, - {0x8232f535, 0xe48c96}, - {0x8232f536, 0xe48c97}, - {0x8232f537, 0xe48c98}, - {0x8232f538, 0xe48c99}, - {0x8232f539, 0xe48c9a}, - {0x8232f630, 0xe48c9b}, - {0x8232f631, 0xe48c9c}, - {0x8232f632, 0xe48c9d}, - {0x8232f633, 0xe48c9e}, - {0x8232f634, 0xe48c9f}, - {0x8232f635, 0xe48ca0}, - {0x8232f636, 0xe48ca1}, - {0x8232f637, 0xe48ca2}, - {0x8232f638, 0xe48ca3}, - {0x8232f639, 0xe48ca4}, - {0x8232f730, 0xe48ca5}, - {0x8232f731, 0xe48ca6}, - {0x8232f732, 0xe48ca7}, - {0x8232f733, 0xe48ca8}, - {0x8232f734, 0xe48ca9}, - {0x8232f735, 0xe48caa}, - {0x8232f736, 0xe48cab}, - {0x8232f737, 0xe48cac}, - {0x8232f738, 0xe48cad}, - {0x8232f739, 0xe48cae}, - {0x8232f830, 0xe48caf}, - {0x8232f831, 0xe48cb0}, - {0x8232f832, 0xe48cb1}, - {0x8232f833, 0xe48cb2}, - {0x8232f834, 0xe48cb3}, - {0x8232f835, 0xe48cb4}, - {0x8232f836, 0xe48cb5}, - {0x8232f837, 0xe48cb6}, {0x8232f838, 0xe48cb8}, {0x8232f839, 0xe48cb9}, {0x8232f930, 0xe48cba}, @@ -40668,379 +29335,6 @@ static pg_local_to_utf LUmapGB18030[ 63360 ] = { {0x8233a336, 0xe49393}, {0x8233a337, 0xe49394}, {0x8233a338, 0xe49395}, - {0x8233a339, 0xe49397}, - {0x8233a430, 0xe49398}, - {0x8233a431, 0xe49399}, - {0x8233a432, 0xe4939a}, - {0x8233a433, 0xe4939b}, - {0x8233a434, 0xe4939c}, - {0x8233a435, 0xe4939d}, - {0x8233a436, 0xe4939e}, - {0x8233a437, 0xe4939f}, - {0x8233a438, 0xe493a0}, - {0x8233a439, 0xe493a1}, - {0x8233a530, 0xe493a2}, - {0x8233a531, 0xe493a3}, - {0x8233a532, 0xe493a4}, - {0x8233a533, 0xe493a5}, - {0x8233a534, 0xe493a6}, - {0x8233a535, 0xe493a7}, - {0x8233a536, 0xe493a8}, - {0x8233a537, 0xe493a9}, - {0x8233a538, 0xe493aa}, - {0x8233a539, 0xe493ab}, - {0x8233a630, 0xe493ac}, - {0x8233a631, 0xe493ad}, - {0x8233a632, 0xe493ae}, - {0x8233a633, 0xe493af}, - {0x8233a634, 0xe493b0}, - {0x8233a635, 0xe493b1}, - {0x8233a636, 0xe493b2}, - {0x8233a637, 0xe493b3}, - {0x8233a638, 0xe493b4}, - {0x8233a639, 0xe493b5}, - {0x8233a730, 0xe493b6}, - {0x8233a731, 0xe493b7}, - {0x8233a732, 0xe493b8}, - {0x8233a733, 0xe493b9}, - {0x8233a734, 0xe493ba}, - {0x8233a735, 0xe493bb}, - {0x8233a736, 0xe493bc}, - {0x8233a737, 0xe493bd}, - {0x8233a738, 0xe493be}, - {0x8233a739, 0xe493bf}, - {0x8233a830, 0xe49480}, - {0x8233a831, 0xe49481}, - {0x8233a832, 0xe49482}, - {0x8233a833, 0xe49483}, - {0x8233a834, 0xe49484}, - {0x8233a835, 0xe49485}, - {0x8233a836, 0xe49486}, - {0x8233a837, 0xe49487}, - {0x8233a838, 0xe49488}, - {0x8233a839, 0xe49489}, - {0x8233a930, 0xe4948a}, - {0x8233a931, 0xe4948b}, - {0x8233a932, 0xe4948c}, - {0x8233a933, 0xe4948d}, - {0x8233a934, 0xe4948e}, - {0x8233a935, 0xe4948f}, - {0x8233a936, 0xe49490}, - {0x8233a937, 0xe49491}, - {0x8233a938, 0xe49492}, - {0x8233a939, 0xe49493}, - {0x8233aa30, 0xe49494}, - {0x8233aa31, 0xe49495}, - {0x8233aa32, 0xe49496}, - {0x8233aa33, 0xe49497}, - {0x8233aa34, 0xe49498}, - {0x8233aa35, 0xe49499}, - {0x8233aa36, 0xe4949a}, - {0x8233aa37, 0xe4949b}, - {0x8233aa38, 0xe4949c}, - {0x8233aa39, 0xe4949d}, - {0x8233ab30, 0xe4949e}, - {0x8233ab31, 0xe4949f}, - {0x8233ab32, 0xe494a0}, - {0x8233ab33, 0xe494a1}, - {0x8233ab34, 0xe494a2}, - {0x8233ab35, 0xe494a3}, - {0x8233ab36, 0xe494a4}, - {0x8233ab37, 0xe494a5}, - {0x8233ab38, 0xe494a6}, - {0x8233ab39, 0xe494a7}, - {0x8233ac30, 0xe494a8}, - {0x8233ac31, 0xe494a9}, - {0x8233ac32, 0xe494aa}, - {0x8233ac33, 0xe494ab}, - {0x8233ac34, 0xe494ac}, - {0x8233ac35, 0xe494ad}, - {0x8233ac36, 0xe494ae}, - {0x8233ac37, 0xe494af}, - {0x8233ac38, 0xe494b0}, - {0x8233ac39, 0xe494b1}, - {0x8233ad30, 0xe494b2}, - {0x8233ad31, 0xe494b3}, - {0x8233ad32, 0xe494b4}, - {0x8233ad33, 0xe494b5}, - {0x8233ad34, 0xe494b6}, - {0x8233ad35, 0xe494b7}, - {0x8233ad36, 0xe494b8}, - {0x8233ad37, 0xe494b9}, - {0x8233ad38, 0xe494ba}, - {0x8233ad39, 0xe494bb}, - {0x8233ae30, 0xe494bc}, - {0x8233ae31, 0xe494bd}, - {0x8233ae32, 0xe494be}, - {0x8233ae33, 0xe494bf}, - {0x8233ae34, 0xe49580}, - {0x8233ae35, 0xe49581}, - {0x8233ae36, 0xe49582}, - {0x8233ae37, 0xe49583}, - {0x8233ae38, 0xe49584}, - {0x8233ae39, 0xe49585}, - {0x8233af30, 0xe49586}, - {0x8233af31, 0xe49587}, - {0x8233af32, 0xe49588}, - {0x8233af33, 0xe49589}, - {0x8233af34, 0xe4958a}, - {0x8233af35, 0xe4958b}, - {0x8233af36, 0xe4958c}, - {0x8233af37, 0xe4958d}, - {0x8233af38, 0xe4958e}, - {0x8233af39, 0xe4958f}, - {0x8233b030, 0xe49590}, - {0x8233b031, 0xe49591}, - {0x8233b032, 0xe49592}, - {0x8233b033, 0xe49593}, - {0x8233b034, 0xe49594}, - {0x8233b035, 0xe49595}, - {0x8233b036, 0xe49596}, - {0x8233b037, 0xe49597}, - {0x8233b038, 0xe49598}, - {0x8233b039, 0xe49599}, - {0x8233b130, 0xe4959a}, - {0x8233b131, 0xe4959b}, - {0x8233b132, 0xe4959c}, - {0x8233b133, 0xe4959d}, - {0x8233b134, 0xe4959e}, - {0x8233b135, 0xe4959f}, - {0x8233b136, 0xe495a0}, - {0x8233b137, 0xe495a1}, - {0x8233b138, 0xe495a2}, - {0x8233b139, 0xe495a3}, - {0x8233b230, 0xe495a4}, - {0x8233b231, 0xe495a5}, - {0x8233b232, 0xe495a6}, - {0x8233b233, 0xe495a7}, - {0x8233b234, 0xe495a8}, - {0x8233b235, 0xe495a9}, - {0x8233b236, 0xe495aa}, - {0x8233b237, 0xe495ab}, - {0x8233b238, 0xe495ac}, - {0x8233b239, 0xe495ad}, - {0x8233b330, 0xe495ae}, - {0x8233b331, 0xe495af}, - {0x8233b332, 0xe495b0}, - {0x8233b333, 0xe495b1}, - {0x8233b334, 0xe495b2}, - {0x8233b335, 0xe495b3}, - {0x8233b336, 0xe495b4}, - {0x8233b337, 0xe495b5}, - {0x8233b338, 0xe495b6}, - {0x8233b339, 0xe495b7}, - {0x8233b430, 0xe495b8}, - {0x8233b431, 0xe495b9}, - {0x8233b432, 0xe495ba}, - {0x8233b433, 0xe495bb}, - {0x8233b434, 0xe495bc}, - {0x8233b435, 0xe495bd}, - {0x8233b436, 0xe495be}, - {0x8233b437, 0xe495bf}, - {0x8233b438, 0xe49680}, - {0x8233b439, 0xe49681}, - {0x8233b530, 0xe49682}, - {0x8233b531, 0xe49683}, - {0x8233b532, 0xe49684}, - {0x8233b533, 0xe49685}, - {0x8233b534, 0xe49686}, - {0x8233b535, 0xe49687}, - {0x8233b536, 0xe49688}, - {0x8233b537, 0xe49689}, - {0x8233b538, 0xe4968a}, - {0x8233b539, 0xe4968b}, - {0x8233b630, 0xe4968c}, - {0x8233b631, 0xe4968d}, - {0x8233b632, 0xe4968e}, - {0x8233b633, 0xe4968f}, - {0x8233b634, 0xe49690}, - {0x8233b635, 0xe49691}, - {0x8233b636, 0xe49692}, - {0x8233b637, 0xe49693}, - {0x8233b638, 0xe49694}, - {0x8233b639, 0xe49695}, - {0x8233b730, 0xe49696}, - {0x8233b731, 0xe49697}, - {0x8233b732, 0xe49698}, - {0x8233b733, 0xe49699}, - {0x8233b734, 0xe4969a}, - {0x8233b735, 0xe4969b}, - {0x8233b736, 0xe4969c}, - {0x8233b737, 0xe4969d}, - {0x8233b738, 0xe4969e}, - {0x8233b739, 0xe4969f}, - {0x8233b830, 0xe496a0}, - {0x8233b831, 0xe496a1}, - {0x8233b832, 0xe496a2}, - {0x8233b833, 0xe496a3}, - {0x8233b834, 0xe496a4}, - {0x8233b835, 0xe496a5}, - {0x8233b836, 0xe496a6}, - {0x8233b837, 0xe496a7}, - {0x8233b838, 0xe496a8}, - {0x8233b839, 0xe496a9}, - {0x8233b930, 0xe496aa}, - {0x8233b931, 0xe496ab}, - {0x8233b932, 0xe496ac}, - {0x8233b933, 0xe496ad}, - {0x8233b934, 0xe496ae}, - {0x8233b935, 0xe496af}, - {0x8233b936, 0xe496b0}, - {0x8233b937, 0xe496b1}, - {0x8233b938, 0xe496b2}, - {0x8233b939, 0xe496b3}, - {0x8233ba30, 0xe496b4}, - {0x8233ba31, 0xe496b5}, - {0x8233ba32, 0xe496b6}, - {0x8233ba33, 0xe496b7}, - {0x8233ba34, 0xe496b8}, - {0x8233ba35, 0xe496b9}, - {0x8233ba36, 0xe496ba}, - {0x8233ba37, 0xe496bb}, - {0x8233ba38, 0xe496bc}, - {0x8233ba39, 0xe496bd}, - {0x8233bb30, 0xe496be}, - {0x8233bb31, 0xe496bf}, - {0x8233bb32, 0xe49780}, - {0x8233bb33, 0xe49781}, - {0x8233bb34, 0xe49782}, - {0x8233bb35, 0xe49783}, - {0x8233bb36, 0xe49784}, - {0x8233bb37, 0xe49785}, - {0x8233bb38, 0xe49786}, - {0x8233bb39, 0xe49787}, - {0x8233bc30, 0xe49788}, - {0x8233bc31, 0xe49789}, - {0x8233bc32, 0xe4978a}, - {0x8233bc33, 0xe4978b}, - {0x8233bc34, 0xe4978c}, - {0x8233bc35, 0xe4978d}, - {0x8233bc36, 0xe4978e}, - {0x8233bc37, 0xe4978f}, - {0x8233bc38, 0xe49790}, - {0x8233bc39, 0xe49791}, - {0x8233bd30, 0xe49792}, - {0x8233bd31, 0xe49793}, - {0x8233bd32, 0xe49794}, - {0x8233bd33, 0xe49795}, - {0x8233bd34, 0xe49796}, - {0x8233bd35, 0xe49797}, - {0x8233bd36, 0xe49798}, - {0x8233bd37, 0xe49799}, - {0x8233bd38, 0xe4979a}, - {0x8233bd39, 0xe4979b}, - {0x8233be30, 0xe4979c}, - {0x8233be31, 0xe4979d}, - {0x8233be32, 0xe4979e}, - {0x8233be33, 0xe4979f}, - {0x8233be34, 0xe497a0}, - {0x8233be35, 0xe497a1}, - {0x8233be36, 0xe497a2}, - {0x8233be37, 0xe497a3}, - {0x8233be38, 0xe497a4}, - {0x8233be39, 0xe497a5}, - {0x8233bf30, 0xe497a6}, - {0x8233bf31, 0xe497a7}, - {0x8233bf32, 0xe497a8}, - {0x8233bf33, 0xe497a9}, - {0x8233bf34, 0xe497aa}, - {0x8233bf35, 0xe497ab}, - {0x8233bf36, 0xe497ac}, - {0x8233bf37, 0xe497ad}, - {0x8233bf38, 0xe497ae}, - {0x8233bf39, 0xe497af}, - {0x8233c030, 0xe497b0}, - {0x8233c031, 0xe497b1}, - {0x8233c032, 0xe497b2}, - {0x8233c033, 0xe497b3}, - {0x8233c034, 0xe497b4}, - {0x8233c035, 0xe497b5}, - {0x8233c036, 0xe497b6}, - {0x8233c037, 0xe497b7}, - {0x8233c038, 0xe497b8}, - {0x8233c039, 0xe497b9}, - {0x8233c130, 0xe497ba}, - {0x8233c131, 0xe497bb}, - {0x8233c132, 0xe497bc}, - {0x8233c133, 0xe497bd}, - {0x8233c134, 0xe497be}, - {0x8233c135, 0xe497bf}, - {0x8233c136, 0xe49880}, - {0x8233c137, 0xe49881}, - {0x8233c138, 0xe49882}, - {0x8233c139, 0xe49883}, - {0x8233c230, 0xe49884}, - {0x8233c231, 0xe49885}, - {0x8233c232, 0xe49886}, - {0x8233c233, 0xe49887}, - {0x8233c234, 0xe49888}, - {0x8233c235, 0xe49889}, - {0x8233c236, 0xe4988a}, - {0x8233c237, 0xe4988b}, - {0x8233c238, 0xe4988c}, - {0x8233c239, 0xe4988d}, - {0x8233c330, 0xe4988e}, - {0x8233c331, 0xe4988f}, - {0x8233c332, 0xe49890}, - {0x8233c333, 0xe49891}, - {0x8233c334, 0xe49892}, - {0x8233c335, 0xe49893}, - {0x8233c336, 0xe49894}, - {0x8233c337, 0xe49895}, - {0x8233c338, 0xe49896}, - {0x8233c339, 0xe49897}, - {0x8233c430, 0xe49898}, - {0x8233c431, 0xe49899}, - {0x8233c432, 0xe4989a}, - {0x8233c433, 0xe4989b}, - {0x8233c434, 0xe4989c}, - {0x8233c435, 0xe4989d}, - {0x8233c436, 0xe4989e}, - {0x8233c437, 0xe4989f}, - {0x8233c438, 0xe498a0}, - {0x8233c439, 0xe498a1}, - {0x8233c530, 0xe498a2}, - {0x8233c531, 0xe498a3}, - {0x8233c532, 0xe498a4}, - {0x8233c533, 0xe498a5}, - {0x8233c534, 0xe498a6}, - {0x8233c535, 0xe498a7}, - {0x8233c536, 0xe498a8}, - {0x8233c537, 0xe498a9}, - {0x8233c538, 0xe498aa}, - {0x8233c539, 0xe498ab}, - {0x8233c630, 0xe498ac}, - {0x8233c631, 0xe498ad}, - {0x8233c632, 0xe498ae}, - {0x8233c633, 0xe498af}, - {0x8233c634, 0xe498b0}, - {0x8233c635, 0xe498b1}, - {0x8233c636, 0xe498b2}, - {0x8233c637, 0xe498b3}, - {0x8233c638, 0xe498b4}, - {0x8233c639, 0xe498b5}, - {0x8233c730, 0xe498b6}, - {0x8233c731, 0xe498b7}, - {0x8233c732, 0xe498b8}, - {0x8233c733, 0xe498b9}, - {0x8233c734, 0xe498ba}, - {0x8233c735, 0xe498bb}, - {0x8233c736, 0xe498bc}, - {0x8233c737, 0xe498bd}, - {0x8233c738, 0xe498be}, - {0x8233c739, 0xe498bf}, - {0x8233c830, 0xe49980}, - {0x8233c831, 0xe49981}, - {0x8233c832, 0xe49982}, - {0x8233c833, 0xe49983}, - {0x8233c834, 0xe49984}, - {0x8233c835, 0xe49985}, - {0x8233c836, 0xe49986}, - {0x8233c837, 0xe49987}, - {0x8233c838, 0xe49988}, - {0x8233c839, 0xe49989}, - {0x8233c930, 0xe4998a}, - {0x8233c931, 0xe4998b}, {0x8233c932, 0xe4998d}, {0x8233c933, 0xe4998e}, {0x8233c934, 0xe4998f}, @@ -41357,447 +29651,6 @@ static pg_local_to_utf LUmapGB18030[ 63360 ] = { {0x8233e835, 0xe49e8a}, {0x8233e836, 0xe49e8b}, {0x8233e837, 0xe49e8c}, - {0x8233e838, 0xe49e8e}, - {0x8233e839, 0xe49e8f}, - {0x8233e930, 0xe49e90}, - {0x8233e931, 0xe49e91}, - {0x8233e932, 0xe49e92}, - {0x8233e933, 0xe49e93}, - {0x8233e934, 0xe49e94}, - {0x8233e935, 0xe49e95}, - {0x8233e936, 0xe49e96}, - {0x8233e937, 0xe49e97}, - {0x8233e938, 0xe49e98}, - {0x8233e939, 0xe49e99}, - {0x8233ea30, 0xe49e9a}, - {0x8233ea31, 0xe49e9b}, - {0x8233ea32, 0xe49e9c}, - {0x8233ea33, 0xe49e9d}, - {0x8233ea34, 0xe49e9e}, - {0x8233ea35, 0xe49e9f}, - {0x8233ea36, 0xe49ea0}, - {0x8233ea37, 0xe49ea1}, - {0x8233ea38, 0xe49ea2}, - {0x8233ea39, 0xe49ea3}, - {0x8233eb30, 0xe49ea4}, - {0x8233eb31, 0xe49ea5}, - {0x8233eb32, 0xe49ea6}, - {0x8233eb33, 0xe49ea7}, - {0x8233eb34, 0xe49ea8}, - {0x8233eb35, 0xe49ea9}, - {0x8233eb36, 0xe49eaa}, - {0x8233eb37, 0xe49eab}, - {0x8233eb38, 0xe49eac}, - {0x8233eb39, 0xe49ead}, - {0x8233ec30, 0xe49eae}, - {0x8233ec31, 0xe49eaf}, - {0x8233ec32, 0xe49eb0}, - {0x8233ec33, 0xe49eb1}, - {0x8233ec34, 0xe49eb2}, - {0x8233ec35, 0xe49eb3}, - {0x8233ec36, 0xe49eb4}, - {0x8233ec37, 0xe49eb5}, - {0x8233ec38, 0xe49eb6}, - {0x8233ec39, 0xe49eb7}, - {0x8233ed30, 0xe49eb8}, - {0x8233ed31, 0xe49eb9}, - {0x8233ed32, 0xe49eba}, - {0x8233ed33, 0xe49ebb}, - {0x8233ed34, 0xe49ebc}, - {0x8233ed35, 0xe49ebd}, - {0x8233ed36, 0xe49ebe}, - {0x8233ed37, 0xe49ebf}, - {0x8233ed38, 0xe49f80}, - {0x8233ed39, 0xe49f81}, - {0x8233ee30, 0xe49f82}, - {0x8233ee31, 0xe49f83}, - {0x8233ee32, 0xe49f84}, - {0x8233ee33, 0xe49f85}, - {0x8233ee34, 0xe49f86}, - {0x8233ee35, 0xe49f87}, - {0x8233ee36, 0xe49f88}, - {0x8233ee37, 0xe49f89}, - {0x8233ee38, 0xe49f8a}, - {0x8233ee39, 0xe49f8b}, - {0x8233ef30, 0xe49f8c}, - {0x8233ef31, 0xe49f8d}, - {0x8233ef32, 0xe49f8e}, - {0x8233ef33, 0xe49f8f}, - {0x8233ef34, 0xe49f90}, - {0x8233ef35, 0xe49f91}, - {0x8233ef36, 0xe49f92}, - {0x8233ef37, 0xe49f93}, - {0x8233ef38, 0xe49f94}, - {0x8233ef39, 0xe49f95}, - {0x8233f030, 0xe49f96}, - {0x8233f031, 0xe49f97}, - {0x8233f032, 0xe49f98}, - {0x8233f033, 0xe49f99}, - {0x8233f034, 0xe49f9a}, - {0x8233f035, 0xe49f9b}, - {0x8233f036, 0xe49f9c}, - {0x8233f037, 0xe49f9d}, - {0x8233f038, 0xe49f9e}, - {0x8233f039, 0xe49f9f}, - {0x8233f130, 0xe49fa0}, - {0x8233f131, 0xe49fa1}, - {0x8233f132, 0xe49fa2}, - {0x8233f133, 0xe49fa3}, - {0x8233f134, 0xe49fa4}, - {0x8233f135, 0xe49fa5}, - {0x8233f136, 0xe49fa6}, - {0x8233f137, 0xe49fa7}, - {0x8233f138, 0xe49fa8}, - {0x8233f139, 0xe49fa9}, - {0x8233f230, 0xe49faa}, - {0x8233f231, 0xe49fab}, - {0x8233f232, 0xe49fac}, - {0x8233f233, 0xe49fad}, - {0x8233f234, 0xe49fae}, - {0x8233f235, 0xe49faf}, - {0x8233f236, 0xe49fb0}, - {0x8233f237, 0xe49fb1}, - {0x8233f238, 0xe49fb2}, - {0x8233f239, 0xe49fb3}, - {0x8233f330, 0xe49fb4}, - {0x8233f331, 0xe49fb5}, - {0x8233f332, 0xe49fb6}, - {0x8233f333, 0xe49fb7}, - {0x8233f334, 0xe49fb8}, - {0x8233f335, 0xe49fb9}, - {0x8233f336, 0xe49fba}, - {0x8233f337, 0xe49fbb}, - {0x8233f338, 0xe49fbc}, - {0x8233f339, 0xe49fbd}, - {0x8233f430, 0xe49fbe}, - {0x8233f431, 0xe49fbf}, - {0x8233f432, 0xe4a080}, - {0x8233f433, 0xe4a081}, - {0x8233f434, 0xe4a082}, - {0x8233f435, 0xe4a083}, - {0x8233f436, 0xe4a084}, - {0x8233f437, 0xe4a085}, - {0x8233f438, 0xe4a086}, - {0x8233f439, 0xe4a087}, - {0x8233f530, 0xe4a088}, - {0x8233f531, 0xe4a089}, - {0x8233f532, 0xe4a08a}, - {0x8233f533, 0xe4a08b}, - {0x8233f534, 0xe4a08c}, - {0x8233f535, 0xe4a08d}, - {0x8233f536, 0xe4a08e}, - {0x8233f537, 0xe4a08f}, - {0x8233f538, 0xe4a090}, - {0x8233f539, 0xe4a091}, - {0x8233f630, 0xe4a092}, - {0x8233f631, 0xe4a093}, - {0x8233f632, 0xe4a094}, - {0x8233f633, 0xe4a095}, - {0x8233f634, 0xe4a096}, - {0x8233f635, 0xe4a097}, - {0x8233f636, 0xe4a098}, - {0x8233f637, 0xe4a099}, - {0x8233f638, 0xe4a09a}, - {0x8233f639, 0xe4a09b}, - {0x8233f730, 0xe4a09c}, - {0x8233f731, 0xe4a09d}, - {0x8233f732, 0xe4a09e}, - {0x8233f733, 0xe4a09f}, - {0x8233f734, 0xe4a0a0}, - {0x8233f735, 0xe4a0a1}, - {0x8233f736, 0xe4a0a2}, - {0x8233f737, 0xe4a0a3}, - {0x8233f738, 0xe4a0a4}, - {0x8233f739, 0xe4a0a5}, - {0x8233f830, 0xe4a0a6}, - {0x8233f831, 0xe4a0a7}, - {0x8233f832, 0xe4a0a8}, - {0x8233f833, 0xe4a0a9}, - {0x8233f834, 0xe4a0aa}, - {0x8233f835, 0xe4a0ab}, - {0x8233f836, 0xe4a0ac}, - {0x8233f837, 0xe4a0ad}, - {0x8233f838, 0xe4a0ae}, - {0x8233f839, 0xe4a0af}, - {0x8233f930, 0xe4a0b0}, - {0x8233f931, 0xe4a0b1}, - {0x8233f932, 0xe4a0b2}, - {0x8233f933, 0xe4a0b3}, - {0x8233f934, 0xe4a0b4}, - {0x8233f935, 0xe4a0b5}, - {0x8233f936, 0xe4a0b6}, - {0x8233f937, 0xe4a0b7}, - {0x8233f938, 0xe4a0b8}, - {0x8233f939, 0xe4a0b9}, - {0x8233fa30, 0xe4a0ba}, - {0x8233fa31, 0xe4a0bb}, - {0x8233fa32, 0xe4a0bc}, - {0x8233fa33, 0xe4a0bd}, - {0x8233fa34, 0xe4a0be}, - {0x8233fa35, 0xe4a0bf}, - {0x8233fa36, 0xe4a180}, - {0x8233fa37, 0xe4a181}, - {0x8233fa38, 0xe4a182}, - {0x8233fa39, 0xe4a183}, - {0x8233fb30, 0xe4a184}, - {0x8233fb31, 0xe4a185}, - {0x8233fb32, 0xe4a186}, - {0x8233fb33, 0xe4a187}, - {0x8233fb34, 0xe4a188}, - {0x8233fb35, 0xe4a189}, - {0x8233fb36, 0xe4a18a}, - {0x8233fb37, 0xe4a18b}, - {0x8233fb38, 0xe4a18c}, - {0x8233fb39, 0xe4a18d}, - {0x8233fc30, 0xe4a18e}, - {0x8233fc31, 0xe4a18f}, - {0x8233fc32, 0xe4a190}, - {0x8233fc33, 0xe4a191}, - {0x8233fc34, 0xe4a192}, - {0x8233fc35, 0xe4a193}, - {0x8233fc36, 0xe4a194}, - {0x8233fc37, 0xe4a195}, - {0x8233fc38, 0xe4a196}, - {0x8233fc39, 0xe4a197}, - {0x8233fd30, 0xe4a198}, - {0x8233fd31, 0xe4a199}, - {0x8233fd32, 0xe4a19a}, - {0x8233fd33, 0xe4a19b}, - {0x8233fd34, 0xe4a19c}, - {0x8233fd35, 0xe4a19d}, - {0x8233fd36, 0xe4a19e}, - {0x8233fd37, 0xe4a19f}, - {0x8233fd38, 0xe4a1a0}, - {0x8233fd39, 0xe4a1a1}, - {0x8233fe30, 0xe4a1a2}, - {0x8233fe31, 0xe4a1a3}, - {0x8233fe32, 0xe4a1a4}, - {0x8233fe33, 0xe4a1a5}, - {0x8233fe34, 0xe4a1a6}, - {0x8233fe35, 0xe4a1a7}, - {0x8233fe36, 0xe4a1a8}, - {0x8233fe37, 0xe4a1a9}, - {0x8233fe38, 0xe4a1aa}, - {0x8233fe39, 0xe4a1ab}, - {0x82348130, 0xe4a1ac}, - {0x82348131, 0xe4a1ad}, - {0x82348132, 0xe4a1ae}, - {0x82348133, 0xe4a1af}, - {0x82348134, 0xe4a1b0}, - {0x82348135, 0xe4a1b1}, - {0x82348136, 0xe4a1b2}, - {0x82348137, 0xe4a1b3}, - {0x82348138, 0xe4a1b4}, - {0x82348139, 0xe4a1b5}, - {0x82348230, 0xe4a1b6}, - {0x82348231, 0xe4a1b7}, - {0x82348232, 0xe4a1b8}, - {0x82348233, 0xe4a1b9}, - {0x82348234, 0xe4a1ba}, - {0x82348235, 0xe4a1bb}, - {0x82348236, 0xe4a1bc}, - {0x82348237, 0xe4a1bd}, - {0x82348238, 0xe4a1be}, - {0x82348239, 0xe4a1bf}, - {0x82348330, 0xe4a280}, - {0x82348331, 0xe4a281}, - {0x82348332, 0xe4a282}, - {0x82348333, 0xe4a283}, - {0x82348334, 0xe4a284}, - {0x82348335, 0xe4a285}, - {0x82348336, 0xe4a286}, - {0x82348337, 0xe4a287}, - {0x82348338, 0xe4a288}, - {0x82348339, 0xe4a289}, - {0x82348430, 0xe4a28a}, - {0x82348431, 0xe4a28b}, - {0x82348432, 0xe4a28c}, - {0x82348433, 0xe4a28d}, - {0x82348434, 0xe4a28e}, - {0x82348435, 0xe4a28f}, - {0x82348436, 0xe4a290}, - {0x82348437, 0xe4a291}, - {0x82348438, 0xe4a292}, - {0x82348439, 0xe4a293}, - {0x82348530, 0xe4a294}, - {0x82348531, 0xe4a295}, - {0x82348532, 0xe4a296}, - {0x82348533, 0xe4a297}, - {0x82348534, 0xe4a298}, - {0x82348535, 0xe4a299}, - {0x82348536, 0xe4a29a}, - {0x82348537, 0xe4a29b}, - {0x82348538, 0xe4a29c}, - {0x82348539, 0xe4a29d}, - {0x82348630, 0xe4a29e}, - {0x82348631, 0xe4a29f}, - {0x82348632, 0xe4a2a0}, - {0x82348633, 0xe4a2a1}, - {0x82348634, 0xe4a2a2}, - {0x82348635, 0xe4a2a3}, - {0x82348636, 0xe4a2a4}, - {0x82348637, 0xe4a2a5}, - {0x82348638, 0xe4a2a6}, - {0x82348639, 0xe4a2a7}, - {0x82348730, 0xe4a2a8}, - {0x82348731, 0xe4a2a9}, - {0x82348732, 0xe4a2aa}, - {0x82348733, 0xe4a2ab}, - {0x82348734, 0xe4a2ac}, - {0x82348735, 0xe4a2ad}, - {0x82348736, 0xe4a2ae}, - {0x82348737, 0xe4a2af}, - {0x82348738, 0xe4a2b0}, - {0x82348739, 0xe4a2b1}, - {0x82348830, 0xe4a2b2}, - {0x82348831, 0xe4a2b3}, - {0x82348832, 0xe4a2b4}, - {0x82348833, 0xe4a2b5}, - {0x82348834, 0xe4a2b6}, - {0x82348835, 0xe4a2b7}, - {0x82348836, 0xe4a2b8}, - {0x82348837, 0xe4a2b9}, - {0x82348838, 0xe4a2ba}, - {0x82348839, 0xe4a2bb}, - {0x82348930, 0xe4a2bc}, - {0x82348931, 0xe4a2bd}, - {0x82348932, 0xe4a2be}, - {0x82348933, 0xe4a2bf}, - {0x82348934, 0xe4a380}, - {0x82348935, 0xe4a381}, - {0x82348936, 0xe4a382}, - {0x82348937, 0xe4a383}, - {0x82348938, 0xe4a384}, - {0x82348939, 0xe4a385}, - {0x82348a30, 0xe4a386}, - {0x82348a31, 0xe4a387}, - {0x82348a32, 0xe4a388}, - {0x82348a33, 0xe4a389}, - {0x82348a34, 0xe4a38a}, - {0x82348a35, 0xe4a38b}, - {0x82348a36, 0xe4a38c}, - {0x82348a37, 0xe4a38d}, - {0x82348a38, 0xe4a38e}, - {0x82348a39, 0xe4a38f}, - {0x82348b30, 0xe4a390}, - {0x82348b31, 0xe4a391}, - {0x82348b32, 0xe4a392}, - {0x82348b33, 0xe4a393}, - {0x82348b34, 0xe4a394}, - {0x82348b35, 0xe4a395}, - {0x82348b36, 0xe4a396}, - {0x82348b37, 0xe4a397}, - {0x82348b38, 0xe4a398}, - {0x82348b39, 0xe4a399}, - {0x82348c30, 0xe4a39a}, - {0x82348c31, 0xe4a39b}, - {0x82348c32, 0xe4a39c}, - {0x82348c33, 0xe4a39d}, - {0x82348c34, 0xe4a39e}, - {0x82348c35, 0xe4a39f}, - {0x82348c36, 0xe4a3a0}, - {0x82348c37, 0xe4a3a1}, - {0x82348c38, 0xe4a3a2}, - {0x82348c39, 0xe4a3a3}, - {0x82348d30, 0xe4a3a4}, - {0x82348d31, 0xe4a3a5}, - {0x82348d32, 0xe4a3a6}, - {0x82348d33, 0xe4a3a7}, - {0x82348d34, 0xe4a3a8}, - {0x82348d35, 0xe4a3a9}, - {0x82348d36, 0xe4a3aa}, - {0x82348d37, 0xe4a3ab}, - {0x82348d38, 0xe4a3ac}, - {0x82348d39, 0xe4a3ad}, - {0x82348e30, 0xe4a3ae}, - {0x82348e31, 0xe4a3af}, - {0x82348e32, 0xe4a3b0}, - {0x82348e33, 0xe4a3b1}, - {0x82348e34, 0xe4a3b2}, - {0x82348e35, 0xe4a3b3}, - {0x82348e36, 0xe4a3b4}, - {0x82348e37, 0xe4a3b5}, - {0x82348e38, 0xe4a3b6}, - {0x82348e39, 0xe4a3b7}, - {0x82348f30, 0xe4a3b8}, - {0x82348f31, 0xe4a3b9}, - {0x82348f32, 0xe4a3ba}, - {0x82348f33, 0xe4a3bb}, - {0x82348f34, 0xe4a3bc}, - {0x82348f35, 0xe4a3bd}, - {0x82348f36, 0xe4a3be}, - {0x82348f37, 0xe4a3bf}, - {0x82348f38, 0xe4a480}, - {0x82348f39, 0xe4a481}, - {0x82349030, 0xe4a482}, - {0x82349031, 0xe4a483}, - {0x82349032, 0xe4a484}, - {0x82349033, 0xe4a485}, - {0x82349034, 0xe4a486}, - {0x82349035, 0xe4a487}, - {0x82349036, 0xe4a488}, - {0x82349037, 0xe4a489}, - {0x82349038, 0xe4a48a}, - {0x82349039, 0xe4a48b}, - {0x82349130, 0xe4a48c}, - {0x82349131, 0xe4a48d}, - {0x82349132, 0xe4a48e}, - {0x82349133, 0xe4a48f}, - {0x82349134, 0xe4a490}, - {0x82349135, 0xe4a491}, - {0x82349136, 0xe4a492}, - {0x82349137, 0xe4a493}, - {0x82349138, 0xe4a494}, - {0x82349139, 0xe4a495}, - {0x82349230, 0xe4a496}, - {0x82349231, 0xe4a497}, - {0x82349232, 0xe4a498}, - {0x82349233, 0xe4a499}, - {0x82349234, 0xe4a49a}, - {0x82349235, 0xe4a49b}, - {0x82349236, 0xe4a49c}, - {0x82349237, 0xe4a49d}, - {0x82349238, 0xe4a49e}, - {0x82349239, 0xe4a49f}, - {0x82349330, 0xe4a4a0}, - {0x82349331, 0xe4a4a1}, - {0x82349332, 0xe4a4a2}, - {0x82349333, 0xe4a4a3}, - {0x82349334, 0xe4a4a4}, - {0x82349335, 0xe4a4a5}, - {0x82349336, 0xe4a4a6}, - {0x82349337, 0xe4a4a7}, - {0x82349338, 0xe4a4a8}, - {0x82349339, 0xe4a4a9}, - {0x82349430, 0xe4a4aa}, - {0x82349431, 0xe4a4ab}, - {0x82349432, 0xe4a4ac}, - {0x82349433, 0xe4a4ad}, - {0x82349434, 0xe4a4ae}, - {0x82349435, 0xe4a4af}, - {0x82349436, 0xe4a4b0}, - {0x82349437, 0xe4a4b1}, - {0x82349438, 0xe4a4b2}, - {0x82349439, 0xe4a4b3}, - {0x82349530, 0xe4a4b4}, - {0x82349531, 0xe4a4b5}, - {0x82349532, 0xe4a4b6}, - {0x82349533, 0xe4a4b7}, - {0x82349534, 0xe4a4b8}, - {0x82349535, 0xe4a4b9}, - {0x82349536, 0xe4a4ba}, - {0x82349537, 0xe4a4bb}, - {0x82349538, 0xe4a4bc}, - {0x82349539, 0xe4a4bd}, - {0x82349630, 0xe4a4be}, - {0x82349631, 0xe4a4bf}, - {0x82349632, 0xe4a580}, - {0x82349633, 0xe4a581}, - {0x82349634, 0xe4a582}, - {0x82349635, 0xe4a583}, - {0x82349636, 0xe4a584}, - {0x82349637, 0xe4a585}, - {0x82349638, 0xe4a586}, {0x82349639, 0xe4a588}, {0x82349730, 0xe4a589}, {0x82349731, 0xe4a58a}, @@ -41900,709 +29753,6 @@ static pg_local_to_utf LUmapGB18030[ 63360 ] = { {0x8234a038, 0xe4a6b3}, {0x8234a039, 0xe4a6b4}, {0x8234a130, 0xe4a6b5}, - {0x8234a131, 0xe4a6b8}, - {0x8234a132, 0xe4a6b9}, - {0x8234a133, 0xe4a6ba}, - {0x8234a134, 0xe4a6bb}, - {0x8234a135, 0xe4a6bc}, - {0x8234a136, 0xe4a6bd}, - {0x8234a137, 0xe4a6be}, - {0x8234a138, 0xe4a6bf}, - {0x8234a139, 0xe4a780}, - {0x8234a230, 0xe4a781}, - {0x8234a231, 0xe4a782}, - {0x8234a232, 0xe4a783}, - {0x8234a233, 0xe4a784}, - {0x8234a234, 0xe4a785}, - {0x8234a235, 0xe4a786}, - {0x8234a236, 0xe4a787}, - {0x8234a237, 0xe4a788}, - {0x8234a238, 0xe4a789}, - {0x8234a239, 0xe4a78a}, - {0x8234a330, 0xe4a78b}, - {0x8234a331, 0xe4a78c}, - {0x8234a332, 0xe4a78d}, - {0x8234a333, 0xe4a78e}, - {0x8234a334, 0xe4a78f}, - {0x8234a335, 0xe4a790}, - {0x8234a336, 0xe4a791}, - {0x8234a337, 0xe4a792}, - {0x8234a338, 0xe4a793}, - {0x8234a339, 0xe4a794}, - {0x8234a430, 0xe4a795}, - {0x8234a431, 0xe4a796}, - {0x8234a432, 0xe4a797}, - {0x8234a433, 0xe4a798}, - {0x8234a434, 0xe4a799}, - {0x8234a435, 0xe4a79a}, - {0x8234a436, 0xe4a79b}, - {0x8234a437, 0xe4a79c}, - {0x8234a438, 0xe4a79d}, - {0x8234a439, 0xe4a79e}, - {0x8234a530, 0xe4a79f}, - {0x8234a531, 0xe4a7a0}, - {0x8234a532, 0xe4a7a1}, - {0x8234a533, 0xe4a7a2}, - {0x8234a534, 0xe4a7a3}, - {0x8234a535, 0xe4a7a4}, - {0x8234a536, 0xe4a7a5}, - {0x8234a537, 0xe4a7a6}, - {0x8234a538, 0xe4a7a7}, - {0x8234a539, 0xe4a7a8}, - {0x8234a630, 0xe4a7a9}, - {0x8234a631, 0xe4a7aa}, - {0x8234a632, 0xe4a7ab}, - {0x8234a633, 0xe4a7ac}, - {0x8234a634, 0xe4a7ad}, - {0x8234a635, 0xe4a7ae}, - {0x8234a636, 0xe4a7af}, - {0x8234a637, 0xe4a7b0}, - {0x8234a638, 0xe4a7b1}, - {0x8234a639, 0xe4a7b2}, - {0x8234a730, 0xe4a7b3}, - {0x8234a731, 0xe4a7b4}, - {0x8234a732, 0xe4a7b5}, - {0x8234a733, 0xe4a7b6}, - {0x8234a734, 0xe4a7b7}, - {0x8234a735, 0xe4a7b8}, - {0x8234a736, 0xe4a7b9}, - {0x8234a737, 0xe4a7ba}, - {0x8234a738, 0xe4a7bb}, - {0x8234a739, 0xe4a7bc}, - {0x8234a830, 0xe4a7bd}, - {0x8234a831, 0xe4a7be}, - {0x8234a832, 0xe4a7bf}, - {0x8234a833, 0xe4a880}, - {0x8234a834, 0xe4a881}, - {0x8234a835, 0xe4a882}, - {0x8234a836, 0xe4a883}, - {0x8234a837, 0xe4a884}, - {0x8234a838, 0xe4a885}, - {0x8234a839, 0xe4a886}, - {0x8234a930, 0xe4a887}, - {0x8234a931, 0xe4a888}, - {0x8234a932, 0xe4a889}, - {0x8234a933, 0xe4a88a}, - {0x8234a934, 0xe4a88b}, - {0x8234a935, 0xe4a88c}, - {0x8234a936, 0xe4a88d}, - {0x8234a937, 0xe4a88e}, - {0x8234a938, 0xe4a88f}, - {0x8234a939, 0xe4a890}, - {0x8234aa30, 0xe4a891}, - {0x8234aa31, 0xe4a892}, - {0x8234aa32, 0xe4a893}, - {0x8234aa33, 0xe4a894}, - {0x8234aa34, 0xe4a895}, - {0x8234aa35, 0xe4a896}, - {0x8234aa36, 0xe4a897}, - {0x8234aa37, 0xe4a898}, - {0x8234aa38, 0xe4a899}, - {0x8234aa39, 0xe4a89a}, - {0x8234ab30, 0xe4a89b}, - {0x8234ab31, 0xe4a89c}, - {0x8234ab32, 0xe4a89d}, - {0x8234ab33, 0xe4a89e}, - {0x8234ab34, 0xe4a89f}, - {0x8234ab35, 0xe4a8a0}, - {0x8234ab36, 0xe4a8a1}, - {0x8234ab37, 0xe4a8a2}, - {0x8234ab38, 0xe4a8a3}, - {0x8234ab39, 0xe4a8a4}, - {0x8234ac30, 0xe4a8a5}, - {0x8234ac31, 0xe4a8a6}, - {0x8234ac32, 0xe4a8a7}, - {0x8234ac33, 0xe4a8a8}, - {0x8234ac34, 0xe4a8a9}, - {0x8234ac35, 0xe4a8aa}, - {0x8234ac36, 0xe4a8ab}, - {0x8234ac37, 0xe4a8ac}, - {0x8234ac38, 0xe4a8ad}, - {0x8234ac39, 0xe4a8ae}, - {0x8234ad30, 0xe4a8af}, - {0x8234ad31, 0xe4a8b0}, - {0x8234ad32, 0xe4a8b1}, - {0x8234ad33, 0xe4a8b2}, - {0x8234ad34, 0xe4a8b3}, - {0x8234ad35, 0xe4a8b4}, - {0x8234ad36, 0xe4a8b5}, - {0x8234ad37, 0xe4a8b6}, - {0x8234ad38, 0xe4a8b7}, - {0x8234ad39, 0xe4a8b8}, - {0x8234ae30, 0xe4a8b9}, - {0x8234ae31, 0xe4a8ba}, - {0x8234ae32, 0xe4a8bb}, - {0x8234ae33, 0xe4a8bc}, - {0x8234ae34, 0xe4a8bd}, - {0x8234ae35, 0xe4a8be}, - {0x8234ae36, 0xe4a8bf}, - {0x8234ae37, 0xe4a980}, - {0x8234ae38, 0xe4a981}, - {0x8234ae39, 0xe4a982}, - {0x8234af30, 0xe4a983}, - {0x8234af31, 0xe4a984}, - {0x8234af32, 0xe4a985}, - {0x8234af33, 0xe4a986}, - {0x8234af34, 0xe4a987}, - {0x8234af35, 0xe4a988}, - {0x8234af36, 0xe4a989}, - {0x8234af37, 0xe4a98a}, - {0x8234af38, 0xe4a98b}, - {0x8234af39, 0xe4a98c}, - {0x8234b030, 0xe4a98d}, - {0x8234b031, 0xe4a98e}, - {0x8234b032, 0xe4a98f}, - {0x8234b033, 0xe4a990}, - {0x8234b034, 0xe4a991}, - {0x8234b035, 0xe4a992}, - {0x8234b036, 0xe4a993}, - {0x8234b037, 0xe4a994}, - {0x8234b038, 0xe4a995}, - {0x8234b039, 0xe4a996}, - {0x8234b130, 0xe4a997}, - {0x8234b131, 0xe4a998}, - {0x8234b132, 0xe4a999}, - {0x8234b133, 0xe4a99a}, - {0x8234b134, 0xe4a99b}, - {0x8234b135, 0xe4a99c}, - {0x8234b136, 0xe4a99d}, - {0x8234b137, 0xe4a99e}, - {0x8234b138, 0xe4a99f}, - {0x8234b139, 0xe4a9a0}, - {0x8234b230, 0xe4a9a1}, - {0x8234b231, 0xe4a9a2}, - {0x8234b232, 0xe4a9a3}, - {0x8234b233, 0xe4a9a4}, - {0x8234b234, 0xe4a9a5}, - {0x8234b235, 0xe4a9a6}, - {0x8234b236, 0xe4a9a7}, - {0x8234b237, 0xe4a9a8}, - {0x8234b238, 0xe4a9a9}, - {0x8234b239, 0xe4a9aa}, - {0x8234b330, 0xe4a9ab}, - {0x8234b331, 0xe4a9ac}, - {0x8234b332, 0xe4a9ad}, - {0x8234b333, 0xe4a9ae}, - {0x8234b334, 0xe4a9af}, - {0x8234b335, 0xe4a9b0}, - {0x8234b336, 0xe4a9b1}, - {0x8234b337, 0xe4a9b2}, - {0x8234b338, 0xe4a9b3}, - {0x8234b339, 0xe4a9b4}, - {0x8234b430, 0xe4a9b5}, - {0x8234b431, 0xe4a9b6}, - {0x8234b432, 0xe4a9b7}, - {0x8234b433, 0xe4a9b8}, - {0x8234b434, 0xe4a9b9}, - {0x8234b435, 0xe4a9ba}, - {0x8234b436, 0xe4a9bb}, - {0x8234b437, 0xe4a9bc}, - {0x8234b438, 0xe4a9bd}, - {0x8234b439, 0xe4a9be}, - {0x8234b530, 0xe4a9bf}, - {0x8234b531, 0xe4aa80}, - {0x8234b532, 0xe4aa81}, - {0x8234b533, 0xe4aa82}, - {0x8234b534, 0xe4aa83}, - {0x8234b535, 0xe4aa84}, - {0x8234b536, 0xe4aa85}, - {0x8234b537, 0xe4aa86}, - {0x8234b538, 0xe4aa87}, - {0x8234b539, 0xe4aa88}, - {0x8234b630, 0xe4aa89}, - {0x8234b631, 0xe4aa8a}, - {0x8234b632, 0xe4aa8b}, - {0x8234b633, 0xe4aa8c}, - {0x8234b634, 0xe4aa8d}, - {0x8234b635, 0xe4aa8e}, - {0x8234b636, 0xe4aa8f}, - {0x8234b637, 0xe4aa90}, - {0x8234b638, 0xe4aa91}, - {0x8234b639, 0xe4aa92}, - {0x8234b730, 0xe4aa93}, - {0x8234b731, 0xe4aa94}, - {0x8234b732, 0xe4aa95}, - {0x8234b733, 0xe4aa96}, - {0x8234b734, 0xe4aa97}, - {0x8234b735, 0xe4aa98}, - {0x8234b736, 0xe4aa99}, - {0x8234b737, 0xe4aa9a}, - {0x8234b738, 0xe4aa9b}, - {0x8234b739, 0xe4aa9c}, - {0x8234b830, 0xe4aa9d}, - {0x8234b831, 0xe4aa9e}, - {0x8234b832, 0xe4aa9f}, - {0x8234b833, 0xe4aaa0}, - {0x8234b834, 0xe4aaa1}, - {0x8234b835, 0xe4aaa2}, - {0x8234b836, 0xe4aaa3}, - {0x8234b837, 0xe4aaa4}, - {0x8234b838, 0xe4aaa5}, - {0x8234b839, 0xe4aaa6}, - {0x8234b930, 0xe4aaa7}, - {0x8234b931, 0xe4aaa8}, - {0x8234b932, 0xe4aaa9}, - {0x8234b933, 0xe4aaaa}, - {0x8234b934, 0xe4aaab}, - {0x8234b935, 0xe4aaac}, - {0x8234b936, 0xe4aaad}, - {0x8234b937, 0xe4aaae}, - {0x8234b938, 0xe4aaaf}, - {0x8234b939, 0xe4aab0}, - {0x8234ba30, 0xe4aab1}, - {0x8234ba31, 0xe4aab2}, - {0x8234ba32, 0xe4aab3}, - {0x8234ba33, 0xe4aab4}, - {0x8234ba34, 0xe4aab5}, - {0x8234ba35, 0xe4aab6}, - {0x8234ba36, 0xe4aab7}, - {0x8234ba37, 0xe4aab8}, - {0x8234ba38, 0xe4aab9}, - {0x8234ba39, 0xe4aaba}, - {0x8234bb30, 0xe4aabb}, - {0x8234bb31, 0xe4aabc}, - {0x8234bb32, 0xe4aabd}, - {0x8234bb33, 0xe4aabe}, - {0x8234bb34, 0xe4aabf}, - {0x8234bb35, 0xe4ab80}, - {0x8234bb36, 0xe4ab81}, - {0x8234bb37, 0xe4ab82}, - {0x8234bb38, 0xe4ab83}, - {0x8234bb39, 0xe4ab84}, - {0x8234bc30, 0xe4ab85}, - {0x8234bc31, 0xe4ab86}, - {0x8234bc32, 0xe4ab87}, - {0x8234bc33, 0xe4ab88}, - {0x8234bc34, 0xe4ab89}, - {0x8234bc35, 0xe4ab8a}, - {0x8234bc36, 0xe4ab8b}, - {0x8234bc37, 0xe4ab8c}, - {0x8234bc38, 0xe4ab8d}, - {0x8234bc39, 0xe4ab8e}, - {0x8234bd30, 0xe4ab8f}, - {0x8234bd31, 0xe4ab90}, - {0x8234bd32, 0xe4ab91}, - {0x8234bd33, 0xe4ab92}, - {0x8234bd34, 0xe4ab93}, - {0x8234bd35, 0xe4ab94}, - {0x8234bd36, 0xe4ab95}, - {0x8234bd37, 0xe4ab96}, - {0x8234bd38, 0xe4ab97}, - {0x8234bd39, 0xe4ab98}, - {0x8234be30, 0xe4ab99}, - {0x8234be31, 0xe4ab9a}, - {0x8234be32, 0xe4ab9b}, - {0x8234be33, 0xe4ab9c}, - {0x8234be34, 0xe4ab9d}, - {0x8234be35, 0xe4ab9e}, - {0x8234be36, 0xe4ab9f}, - {0x8234be37, 0xe4aba0}, - {0x8234be38, 0xe4aba1}, - {0x8234be39, 0xe4aba2}, - {0x8234bf30, 0xe4aba3}, - {0x8234bf31, 0xe4aba4}, - {0x8234bf32, 0xe4aba5}, - {0x8234bf33, 0xe4aba6}, - {0x8234bf34, 0xe4aba7}, - {0x8234bf35, 0xe4aba8}, - {0x8234bf36, 0xe4aba9}, - {0x8234bf37, 0xe4abaa}, - {0x8234bf38, 0xe4abab}, - {0x8234bf39, 0xe4abac}, - {0x8234c030, 0xe4abad}, - {0x8234c031, 0xe4abae}, - {0x8234c032, 0xe4abaf}, - {0x8234c033, 0xe4abb0}, - {0x8234c034, 0xe4abb1}, - {0x8234c035, 0xe4abb2}, - {0x8234c036, 0xe4abb3}, - {0x8234c037, 0xe4abb4}, - {0x8234c038, 0xe4abb5}, - {0x8234c039, 0xe4abb6}, - {0x8234c130, 0xe4abb7}, - {0x8234c131, 0xe4abb8}, - {0x8234c132, 0xe4abb9}, - {0x8234c133, 0xe4abba}, - {0x8234c134, 0xe4abbb}, - {0x8234c135, 0xe4abbc}, - {0x8234c136, 0xe4abbd}, - {0x8234c137, 0xe4abbe}, - {0x8234c138, 0xe4abbf}, - {0x8234c139, 0xe4ac80}, - {0x8234c230, 0xe4ac81}, - {0x8234c231, 0xe4ac82}, - {0x8234c232, 0xe4ac83}, - {0x8234c233, 0xe4ac84}, - {0x8234c234, 0xe4ac85}, - {0x8234c235, 0xe4ac86}, - {0x8234c236, 0xe4ac87}, - {0x8234c237, 0xe4ac88}, - {0x8234c238, 0xe4ac89}, - {0x8234c239, 0xe4ac8a}, - {0x8234c330, 0xe4ac8b}, - {0x8234c331, 0xe4ac8c}, - {0x8234c332, 0xe4ac8d}, - {0x8234c333, 0xe4ac8e}, - {0x8234c334, 0xe4ac8f}, - {0x8234c335, 0xe4ac90}, - {0x8234c336, 0xe4ac91}, - {0x8234c337, 0xe4ac92}, - {0x8234c338, 0xe4ac93}, - {0x8234c339, 0xe4ac94}, - {0x8234c430, 0xe4ac95}, - {0x8234c431, 0xe4ac96}, - {0x8234c432, 0xe4ac97}, - {0x8234c433, 0xe4ac98}, - {0x8234c434, 0xe4ac99}, - {0x8234c435, 0xe4ac9a}, - {0x8234c436, 0xe4ac9b}, - {0x8234c437, 0xe4ac9c}, - {0x8234c438, 0xe4ac9d}, - {0x8234c439, 0xe4ac9e}, - {0x8234c530, 0xe4ac9f}, - {0x8234c531, 0xe4aca0}, - {0x8234c532, 0xe4aca1}, - {0x8234c533, 0xe4aca2}, - {0x8234c534, 0xe4aca3}, - {0x8234c535, 0xe4aca4}, - {0x8234c536, 0xe4aca5}, - {0x8234c537, 0xe4aca6}, - {0x8234c538, 0xe4aca7}, - {0x8234c539, 0xe4aca8}, - {0x8234c630, 0xe4aca9}, - {0x8234c631, 0xe4acaa}, - {0x8234c632, 0xe4acab}, - {0x8234c633, 0xe4acac}, - {0x8234c634, 0xe4acad}, - {0x8234c635, 0xe4acae}, - {0x8234c636, 0xe4acaf}, - {0x8234c637, 0xe4acb0}, - {0x8234c638, 0xe4acb1}, - {0x8234c639, 0xe4acb2}, - {0x8234c730, 0xe4acb3}, - {0x8234c731, 0xe4acb4}, - {0x8234c732, 0xe4acb5}, - {0x8234c733, 0xe4acb6}, - {0x8234c734, 0xe4acb7}, - {0x8234c735, 0xe4acb8}, - {0x8234c736, 0xe4acb9}, - {0x8234c737, 0xe4acba}, - {0x8234c738, 0xe4acbb}, - {0x8234c739, 0xe4acbc}, - {0x8234c830, 0xe4acbd}, - {0x8234c831, 0xe4acbe}, - {0x8234c832, 0xe4acbf}, - {0x8234c833, 0xe4ad80}, - {0x8234c834, 0xe4ad81}, - {0x8234c835, 0xe4ad82}, - {0x8234c836, 0xe4ad83}, - {0x8234c837, 0xe4ad84}, - {0x8234c838, 0xe4ad85}, - {0x8234c839, 0xe4ad86}, - {0x8234c930, 0xe4ad87}, - {0x8234c931, 0xe4ad88}, - {0x8234c932, 0xe4ad89}, - {0x8234c933, 0xe4ad8a}, - {0x8234c934, 0xe4ad8b}, - {0x8234c935, 0xe4ad8c}, - {0x8234c936, 0xe4ad8d}, - {0x8234c937, 0xe4ad8e}, - {0x8234c938, 0xe4ad8f}, - {0x8234c939, 0xe4ad90}, - {0x8234ca30, 0xe4ad91}, - {0x8234ca31, 0xe4ad92}, - {0x8234ca32, 0xe4ad93}, - {0x8234ca33, 0xe4ad94}, - {0x8234ca34, 0xe4ad95}, - {0x8234ca35, 0xe4ad96}, - {0x8234ca36, 0xe4ad97}, - {0x8234ca37, 0xe4ad98}, - {0x8234ca38, 0xe4ad99}, - {0x8234ca39, 0xe4ad9a}, - {0x8234cb30, 0xe4ad9b}, - {0x8234cb31, 0xe4ad9c}, - {0x8234cb32, 0xe4ad9d}, - {0x8234cb33, 0xe4ad9e}, - {0x8234cb34, 0xe4ad9f}, - {0x8234cb35, 0xe4ada0}, - {0x8234cb36, 0xe4ada1}, - {0x8234cb37, 0xe4ada2}, - {0x8234cb38, 0xe4ada3}, - {0x8234cb39, 0xe4ada4}, - {0x8234cc30, 0xe4ada5}, - {0x8234cc31, 0xe4ada6}, - {0x8234cc32, 0xe4ada7}, - {0x8234cc33, 0xe4ada8}, - {0x8234cc34, 0xe4ada9}, - {0x8234cc35, 0xe4adaa}, - {0x8234cc36, 0xe4adab}, - {0x8234cc37, 0xe4adac}, - {0x8234cc38, 0xe4adad}, - {0x8234cc39, 0xe4adae}, - {0x8234cd30, 0xe4adaf}, - {0x8234cd31, 0xe4adb0}, - {0x8234cd32, 0xe4adb1}, - {0x8234cd33, 0xe4adb2}, - {0x8234cd34, 0xe4adb3}, - {0x8234cd35, 0xe4adb4}, - {0x8234cd36, 0xe4adb5}, - {0x8234cd37, 0xe4adb6}, - {0x8234cd38, 0xe4adb7}, - {0x8234cd39, 0xe4adb8}, - {0x8234ce30, 0xe4adb9}, - {0x8234ce31, 0xe4adba}, - {0x8234ce32, 0xe4adbb}, - {0x8234ce33, 0xe4adbc}, - {0x8234ce34, 0xe4adbd}, - {0x8234ce35, 0xe4adbe}, - {0x8234ce36, 0xe4adbf}, - {0x8234ce37, 0xe4ae80}, - {0x8234ce38, 0xe4ae81}, - {0x8234ce39, 0xe4ae82}, - {0x8234cf30, 0xe4ae83}, - {0x8234cf31, 0xe4ae84}, - {0x8234cf32, 0xe4ae85}, - {0x8234cf33, 0xe4ae86}, - {0x8234cf34, 0xe4ae87}, - {0x8234cf35, 0xe4ae88}, - {0x8234cf36, 0xe4ae89}, - {0x8234cf37, 0xe4ae8a}, - {0x8234cf38, 0xe4ae8b}, - {0x8234cf39, 0xe4ae8c}, - {0x8234d030, 0xe4ae8d}, - {0x8234d031, 0xe4ae8e}, - {0x8234d032, 0xe4ae8f}, - {0x8234d033, 0xe4ae90}, - {0x8234d034, 0xe4ae91}, - {0x8234d035, 0xe4ae92}, - {0x8234d036, 0xe4ae93}, - {0x8234d037, 0xe4ae94}, - {0x8234d038, 0xe4ae95}, - {0x8234d039, 0xe4ae96}, - {0x8234d130, 0xe4ae97}, - {0x8234d131, 0xe4ae98}, - {0x8234d132, 0xe4ae99}, - {0x8234d133, 0xe4ae9a}, - {0x8234d134, 0xe4ae9b}, - {0x8234d135, 0xe4ae9c}, - {0x8234d136, 0xe4ae9d}, - {0x8234d137, 0xe4ae9e}, - {0x8234d138, 0xe4ae9f}, - {0x8234d139, 0xe4aea0}, - {0x8234d230, 0xe4aea1}, - {0x8234d231, 0xe4aea2}, - {0x8234d232, 0xe4aea3}, - {0x8234d233, 0xe4aea4}, - {0x8234d234, 0xe4aea5}, - {0x8234d235, 0xe4aea6}, - {0x8234d236, 0xe4aea7}, - {0x8234d237, 0xe4aea8}, - {0x8234d238, 0xe4aea9}, - {0x8234d239, 0xe4aeaa}, - {0x8234d330, 0xe4aeab}, - {0x8234d331, 0xe4aeac}, - {0x8234d332, 0xe4aead}, - {0x8234d333, 0xe4aeae}, - {0x8234d334, 0xe4aeaf}, - {0x8234d335, 0xe4aeb0}, - {0x8234d336, 0xe4aeb1}, - {0x8234d337, 0xe4aeb2}, - {0x8234d338, 0xe4aeb3}, - {0x8234d339, 0xe4aeb4}, - {0x8234d430, 0xe4aeb5}, - {0x8234d431, 0xe4aeb6}, - {0x8234d432, 0xe4aeb7}, - {0x8234d433, 0xe4aeb8}, - {0x8234d434, 0xe4aeb9}, - {0x8234d435, 0xe4aeba}, - {0x8234d436, 0xe4aebb}, - {0x8234d437, 0xe4aebc}, - {0x8234d438, 0xe4aebd}, - {0x8234d439, 0xe4aebe}, - {0x8234d530, 0xe4aebf}, - {0x8234d531, 0xe4af80}, - {0x8234d532, 0xe4af81}, - {0x8234d533, 0xe4af82}, - {0x8234d534, 0xe4af83}, - {0x8234d535, 0xe4af84}, - {0x8234d536, 0xe4af85}, - {0x8234d537, 0xe4af86}, - {0x8234d538, 0xe4af87}, - {0x8234d539, 0xe4af88}, - {0x8234d630, 0xe4af89}, - {0x8234d631, 0xe4af8a}, - {0x8234d632, 0xe4af8b}, - {0x8234d633, 0xe4af8c}, - {0x8234d634, 0xe4af8d}, - {0x8234d635, 0xe4af8e}, - {0x8234d636, 0xe4af8f}, - {0x8234d637, 0xe4af90}, - {0x8234d638, 0xe4af91}, - {0x8234d639, 0xe4af92}, - {0x8234d730, 0xe4af93}, - {0x8234d731, 0xe4af94}, - {0x8234d732, 0xe4af95}, - {0x8234d733, 0xe4af96}, - {0x8234d734, 0xe4af97}, - {0x8234d735, 0xe4af98}, - {0x8234d736, 0xe4af99}, - {0x8234d737, 0xe4af9a}, - {0x8234d738, 0xe4af9b}, - {0x8234d739, 0xe4af9c}, - {0x8234d830, 0xe4af9d}, - {0x8234d831, 0xe4af9e}, - {0x8234d832, 0xe4af9f}, - {0x8234d833, 0xe4afa0}, - {0x8234d834, 0xe4afa1}, - {0x8234d835, 0xe4afa2}, - {0x8234d836, 0xe4afa3}, - {0x8234d837, 0xe4afa4}, - {0x8234d838, 0xe4afa5}, - {0x8234d839, 0xe4afa6}, - {0x8234d930, 0xe4afa7}, - {0x8234d931, 0xe4afa8}, - {0x8234d932, 0xe4afa9}, - {0x8234d933, 0xe4afaa}, - {0x8234d934, 0xe4afab}, - {0x8234d935, 0xe4afac}, - {0x8234d936, 0xe4afad}, - {0x8234d937, 0xe4afae}, - {0x8234d938, 0xe4afaf}, - {0x8234d939, 0xe4afb0}, - {0x8234da30, 0xe4afb1}, - {0x8234da31, 0xe4afb2}, - {0x8234da32, 0xe4afb3}, - {0x8234da33, 0xe4afb4}, - {0x8234da34, 0xe4afb5}, - {0x8234da35, 0xe4afb6}, - {0x8234da36, 0xe4afb7}, - {0x8234da37, 0xe4afb8}, - {0x8234da38, 0xe4afb9}, - {0x8234da39, 0xe4afba}, - {0x8234db30, 0xe4afbb}, - {0x8234db31, 0xe4afbc}, - {0x8234db32, 0xe4afbd}, - {0x8234db33, 0xe4afbe}, - {0x8234db34, 0xe4afbf}, - {0x8234db35, 0xe4b080}, - {0x8234db36, 0xe4b081}, - {0x8234db37, 0xe4b082}, - {0x8234db38, 0xe4b083}, - {0x8234db39, 0xe4b084}, - {0x8234dc30, 0xe4b085}, - {0x8234dc31, 0xe4b086}, - {0x8234dc32, 0xe4b087}, - {0x8234dc33, 0xe4b088}, - {0x8234dc34, 0xe4b089}, - {0x8234dc35, 0xe4b08a}, - {0x8234dc36, 0xe4b08b}, - {0x8234dc37, 0xe4b08c}, - {0x8234dc38, 0xe4b08d}, - {0x8234dc39, 0xe4b08e}, - {0x8234dd30, 0xe4b08f}, - {0x8234dd31, 0xe4b090}, - {0x8234dd32, 0xe4b091}, - {0x8234dd33, 0xe4b092}, - {0x8234dd34, 0xe4b093}, - {0x8234dd35, 0xe4b094}, - {0x8234dd36, 0xe4b095}, - {0x8234dd37, 0xe4b096}, - {0x8234dd38, 0xe4b097}, - {0x8234dd39, 0xe4b098}, - {0x8234de30, 0xe4b099}, - {0x8234de31, 0xe4b09a}, - {0x8234de32, 0xe4b09b}, - {0x8234de33, 0xe4b09c}, - {0x8234de34, 0xe4b09d}, - {0x8234de35, 0xe4b09e}, - {0x8234de36, 0xe4b09f}, - {0x8234de37, 0xe4b0a0}, - {0x8234de38, 0xe4b0a1}, - {0x8234de39, 0xe4b0a2}, - {0x8234df30, 0xe4b0a3}, - {0x8234df31, 0xe4b0a4}, - {0x8234df32, 0xe4b0a5}, - {0x8234df33, 0xe4b0a6}, - {0x8234df34, 0xe4b0a7}, - {0x8234df35, 0xe4b0a8}, - {0x8234df36, 0xe4b0a9}, - {0x8234df37, 0xe4b0aa}, - {0x8234df38, 0xe4b0ab}, - {0x8234df39, 0xe4b0ac}, - {0x8234e030, 0xe4b0ad}, - {0x8234e031, 0xe4b0ae}, - {0x8234e032, 0xe4b0af}, - {0x8234e033, 0xe4b0b0}, - {0x8234e034, 0xe4b0b1}, - {0x8234e035, 0xe4b0b2}, - {0x8234e036, 0xe4b0b3}, - {0x8234e037, 0xe4b0b4}, - {0x8234e038, 0xe4b0b5}, - {0x8234e039, 0xe4b0b6}, - {0x8234e130, 0xe4b0b7}, - {0x8234e131, 0xe4b0b8}, - {0x8234e132, 0xe4b0b9}, - {0x8234e133, 0xe4b0ba}, - {0x8234e134, 0xe4b0bb}, - {0x8234e135, 0xe4b0bc}, - {0x8234e136, 0xe4b0bd}, - {0x8234e137, 0xe4b0be}, - {0x8234e138, 0xe4b0bf}, - {0x8234e139, 0xe4b180}, - {0x8234e230, 0xe4b181}, - {0x8234e231, 0xe4b182}, - {0x8234e232, 0xe4b183}, - {0x8234e233, 0xe4b184}, - {0x8234e234, 0xe4b185}, - {0x8234e235, 0xe4b186}, - {0x8234e236, 0xe4b187}, - {0x8234e237, 0xe4b188}, - {0x8234e238, 0xe4b189}, - {0x8234e239, 0xe4b18a}, - {0x8234e330, 0xe4b18b}, - {0x8234e331, 0xe4b18c}, - {0x8234e332, 0xe4b18d}, - {0x8234e333, 0xe4b18e}, - {0x8234e334, 0xe4b18f}, - {0x8234e335, 0xe4b190}, - {0x8234e336, 0xe4b191}, - {0x8234e337, 0xe4b192}, - {0x8234e338, 0xe4b193}, - {0x8234e339, 0xe4b194}, - {0x8234e430, 0xe4b195}, - {0x8234e431, 0xe4b196}, - {0x8234e432, 0xe4b197}, - {0x8234e433, 0xe4b198}, - {0x8234e434, 0xe4b199}, - {0x8234e435, 0xe4b19a}, - {0x8234e436, 0xe4b19b}, - {0x8234e437, 0xe4b19c}, - {0x8234e438, 0xe4b19d}, - {0x8234e439, 0xe4b19e}, - {0x8234e530, 0xe4b19f}, - {0x8234e531, 0xe4b1a0}, - {0x8234e532, 0xe4b1a1}, - {0x8234e533, 0xe4b1a2}, - {0x8234e534, 0xe4b1a3}, - {0x8234e535, 0xe4b1a4}, - {0x8234e536, 0xe4b1a5}, - {0x8234e537, 0xe4b1a6}, - {0x8234e538, 0xe4b1a7}, - {0x8234e539, 0xe4b1a8}, - {0x8234e630, 0xe4b1a9}, - {0x8234e631, 0xe4b1aa}, - {0x8234e632, 0xe4b1ab}, - {0x8234e633, 0xe4b1ac}, - {0x8234e634, 0xe4b1ad}, - {0x8234e635, 0xe4b1ae}, - {0x8234e636, 0xe4b1af}, - {0x8234e637, 0xe4b1b0}, - {0x8234e638, 0xe4b1b1}, - {0x8234e639, 0xe4b1b2}, - {0x8234e730, 0xe4b1b3}, - {0x8234e731, 0xe4b1b4}, - {0x8234e732, 0xe4b1b5}, - {0x8234e733, 0xe4b1b6}, {0x8234e734, 0xe4b1b8}, {0x8234e735, 0xe4b1b9}, {0x8234e736, 0xe4b1ba}, @@ -42982,14432 +30132,6 @@ static pg_local_to_utf LUmapGB18030[ 63360 ] = { {0x82358f30, 0xe4b7bd}, {0x82358f31, 0xe4b7be}, {0x82358f32, 0xe4b7bf}, - {0x82358f33, 0xe9bea6}, - {0x82358f34, 0xe9bea7}, - {0x82358f35, 0xe9bea8}, - {0x82358f36, 0xe9bea9}, - {0x82358f37, 0xe9beaa}, - {0x82358f38, 0xe9beab}, - {0x82358f39, 0xe9beac}, - {0x82359030, 0xe9bead}, - {0x82359031, 0xe9beae}, - {0x82359032, 0xe9beaf}, - {0x82359033, 0xe9beb0}, - {0x82359034, 0xe9beb1}, - {0x82359035, 0xe9beb2}, - {0x82359036, 0xe9beb3}, - {0x82359037, 0xe9beb4}, - {0x82359038, 0xe9beb5}, - {0x82359039, 0xe9beb6}, - {0x82359130, 0xe9beb7}, - {0x82359131, 0xe9beb8}, - {0x82359132, 0xe9beb9}, - {0x82359133, 0xe9beba}, - {0x82359134, 0xe9bebb}, - {0x82359135, 0xe9bebc}, - {0x82359136, 0xe9bebd}, - {0x82359137, 0xe9bebe}, - {0x82359138, 0xe9bebf}, - {0x82359139, 0xe9bf80}, - {0x82359230, 0xe9bf81}, - {0x82359231, 0xe9bf82}, - {0x82359232, 0xe9bf83}, - {0x82359233, 0xe9bf84}, - {0x82359234, 0xe9bf85}, - {0x82359235, 0xe9bf86}, - {0x82359236, 0xe9bf87}, - {0x82359237, 0xe9bf88}, - {0x82359238, 0xe9bf89}, - {0x82359239, 0xe9bf8a}, - {0x82359330, 0xe9bf8b}, - {0x82359331, 0xe9bf8c}, - {0x82359332, 0xe9bf8d}, - {0x82359333, 0xe9bf8e}, - {0x82359334, 0xe9bf8f}, - {0x82359335, 0xe9bf90}, - {0x82359336, 0xe9bf91}, - {0x82359337, 0xe9bf92}, - {0x82359338, 0xe9bf93}, - {0x82359339, 0xe9bf94}, - {0x82359430, 0xe9bf95}, - {0x82359431, 0xe9bf96}, - {0x82359432, 0xe9bf97}, - {0x82359433, 0xe9bf98}, - {0x82359434, 0xe9bf99}, - {0x82359435, 0xe9bf9a}, - {0x82359436, 0xe9bf9b}, - {0x82359437, 0xe9bf9c}, - {0x82359438, 0xe9bf9d}, - {0x82359439, 0xe9bf9e}, - {0x82359530, 0xe9bf9f}, - {0x82359531, 0xe9bfa0}, - {0x82359532, 0xe9bfa1}, - {0x82359533, 0xe9bfa2}, - {0x82359534, 0xe9bfa3}, - {0x82359535, 0xe9bfa4}, - {0x82359536, 0xe9bfa5}, - {0x82359537, 0xe9bfa6}, - {0x82359538, 0xe9bfa7}, - {0x82359539, 0xe9bfa8}, - {0x82359630, 0xe9bfa9}, - {0x82359631, 0xe9bfaa}, - {0x82359632, 0xe9bfab}, - {0x82359633, 0xe9bfac}, - {0x82359634, 0xe9bfad}, - {0x82359635, 0xe9bfae}, - {0x82359636, 0xe9bfaf}, - {0x82359637, 0xe9bfb0}, - {0x82359638, 0xe9bfb1}, - {0x82359639, 0xe9bfb2}, - {0x82359730, 0xe9bfb3}, - {0x82359731, 0xe9bfb4}, - {0x82359732, 0xe9bfb5}, - {0x82359733, 0xe9bfb6}, - {0x82359734, 0xe9bfb7}, - {0x82359735, 0xe9bfb8}, - {0x82359736, 0xe9bfb9}, - {0x82359737, 0xe9bfba}, - {0x82359738, 0xe9bfbb}, - {0x82359739, 0xe9bfbc}, - {0x82359830, 0xe9bfbd}, - {0x82359831, 0xe9bfbe}, - {0x82359832, 0xe9bfbf}, - {0x82359833, 0xea8080}, - {0x82359834, 0xea8081}, - {0x82359835, 0xea8082}, - {0x82359836, 0xea8083}, - {0x82359837, 0xea8084}, - {0x82359838, 0xea8085}, - {0x82359839, 0xea8086}, - {0x82359930, 0xea8087}, - {0x82359931, 0xea8088}, - {0x82359932, 0xea8089}, - {0x82359933, 0xea808a}, - {0x82359934, 0xea808b}, - {0x82359935, 0xea808c}, - {0x82359936, 0xea808d}, - {0x82359937, 0xea808e}, - {0x82359938, 0xea808f}, - {0x82359939, 0xea8090}, - {0x82359a30, 0xea8091}, - {0x82359a31, 0xea8092}, - {0x82359a32, 0xea8093}, - {0x82359a33, 0xea8094}, - {0x82359a34, 0xea8095}, - {0x82359a35, 0xea8096}, - {0x82359a36, 0xea8097}, - {0x82359a37, 0xea8098}, - {0x82359a38, 0xea8099}, - {0x82359a39, 0xea809a}, - {0x82359b30, 0xea809b}, - {0x82359b31, 0xea809c}, - {0x82359b32, 0xea809d}, - {0x82359b33, 0xea809e}, - {0x82359b34, 0xea809f}, - {0x82359b35, 0xea80a0}, - {0x82359b36, 0xea80a1}, - {0x82359b37, 0xea80a2}, - {0x82359b38, 0xea80a3}, - {0x82359b39, 0xea80a4}, - {0x82359c30, 0xea80a5}, - {0x82359c31, 0xea80a6}, - {0x82359c32, 0xea80a7}, - {0x82359c33, 0xea80a8}, - {0x82359c34, 0xea80a9}, - {0x82359c35, 0xea80aa}, - {0x82359c36, 0xea80ab}, - {0x82359c37, 0xea80ac}, - {0x82359c38, 0xea80ad}, - {0x82359c39, 0xea80ae}, - {0x82359d30, 0xea80af}, - {0x82359d31, 0xea80b0}, - {0x82359d32, 0xea80b1}, - {0x82359d33, 0xea80b2}, - {0x82359d34, 0xea80b3}, - {0x82359d35, 0xea80b4}, - {0x82359d36, 0xea80b5}, - {0x82359d37, 0xea80b6}, - {0x82359d38, 0xea80b7}, - {0x82359d39, 0xea80b8}, - {0x82359e30, 0xea80b9}, - {0x82359e31, 0xea80ba}, - {0x82359e32, 0xea80bb}, - {0x82359e33, 0xea80bc}, - {0x82359e34, 0xea80bd}, - {0x82359e35, 0xea80be}, - {0x82359e36, 0xea80bf}, - {0x82359e37, 0xea8180}, - {0x82359e38, 0xea8181}, - {0x82359e39, 0xea8182}, - {0x82359f30, 0xea8183}, - {0x82359f31, 0xea8184}, - {0x82359f32, 0xea8185}, - {0x82359f33, 0xea8186}, - {0x82359f34, 0xea8187}, - {0x82359f35, 0xea8188}, - {0x82359f36, 0xea8189}, - {0x82359f37, 0xea818a}, - {0x82359f38, 0xea818b}, - {0x82359f39, 0xea818c}, - {0x8235a030, 0xea818d}, - {0x8235a031, 0xea818e}, - {0x8235a032, 0xea818f}, - {0x8235a033, 0xea8190}, - {0x8235a034, 0xea8191}, - {0x8235a035, 0xea8192}, - {0x8235a036, 0xea8193}, - {0x8235a037, 0xea8194}, - {0x8235a038, 0xea8195}, - {0x8235a039, 0xea8196}, - {0x8235a130, 0xea8197}, - {0x8235a131, 0xea8198}, - {0x8235a132, 0xea8199}, - {0x8235a133, 0xea819a}, - {0x8235a134, 0xea819b}, - {0x8235a135, 0xea819c}, - {0x8235a136, 0xea819d}, - {0x8235a137, 0xea819e}, - {0x8235a138, 0xea819f}, - {0x8235a139, 0xea81a0}, - {0x8235a230, 0xea81a1}, - {0x8235a231, 0xea81a2}, - {0x8235a232, 0xea81a3}, - {0x8235a233, 0xea81a4}, - {0x8235a234, 0xea81a5}, - {0x8235a235, 0xea81a6}, - {0x8235a236, 0xea81a7}, - {0x8235a237, 0xea81a8}, - {0x8235a238, 0xea81a9}, - {0x8235a239, 0xea81aa}, - {0x8235a330, 0xea81ab}, - {0x8235a331, 0xea81ac}, - {0x8235a332, 0xea81ad}, - {0x8235a333, 0xea81ae}, - {0x8235a334, 0xea81af}, - {0x8235a335, 0xea81b0}, - {0x8235a336, 0xea81b1}, - {0x8235a337, 0xea81b2}, - {0x8235a338, 0xea81b3}, - {0x8235a339, 0xea81b4}, - {0x8235a430, 0xea81b5}, - {0x8235a431, 0xea81b6}, - {0x8235a432, 0xea81b7}, - {0x8235a433, 0xea81b8}, - {0x8235a434, 0xea81b9}, - {0x8235a435, 0xea81ba}, - {0x8235a436, 0xea81bb}, - {0x8235a437, 0xea81bc}, - {0x8235a438, 0xea81bd}, - {0x8235a439, 0xea81be}, - {0x8235a530, 0xea81bf}, - {0x8235a531, 0xea8280}, - {0x8235a532, 0xea8281}, - {0x8235a533, 0xea8282}, - {0x8235a534, 0xea8283}, - {0x8235a535, 0xea8284}, - {0x8235a536, 0xea8285}, - {0x8235a537, 0xea8286}, - {0x8235a538, 0xea8287}, - {0x8235a539, 0xea8288}, - {0x8235a630, 0xea8289}, - {0x8235a631, 0xea828a}, - {0x8235a632, 0xea828b}, - {0x8235a633, 0xea828c}, - {0x8235a634, 0xea828d}, - {0x8235a635, 0xea828e}, - {0x8235a636, 0xea828f}, - {0x8235a637, 0xea8290}, - {0x8235a638, 0xea8291}, - {0x8235a639, 0xea8292}, - {0x8235a730, 0xea8293}, - {0x8235a731, 0xea8294}, - {0x8235a732, 0xea8295}, - {0x8235a733, 0xea8296}, - {0x8235a734, 0xea8297}, - {0x8235a735, 0xea8298}, - {0x8235a736, 0xea8299}, - {0x8235a737, 0xea829a}, - {0x8235a738, 0xea829b}, - {0x8235a739, 0xea829c}, - {0x8235a830, 0xea829d}, - {0x8235a831, 0xea829e}, - {0x8235a832, 0xea829f}, - {0x8235a833, 0xea82a0}, - {0x8235a834, 0xea82a1}, - {0x8235a835, 0xea82a2}, - {0x8235a836, 0xea82a3}, - {0x8235a837, 0xea82a4}, - {0x8235a838, 0xea82a5}, - {0x8235a839, 0xea82a6}, - {0x8235a930, 0xea82a7}, - {0x8235a931, 0xea82a8}, - {0x8235a932, 0xea82a9}, - {0x8235a933, 0xea82aa}, - {0x8235a934, 0xea82ab}, - {0x8235a935, 0xea82ac}, - {0x8235a936, 0xea82ad}, - {0x8235a937, 0xea82ae}, - {0x8235a938, 0xea82af}, - {0x8235a939, 0xea82b0}, - {0x8235aa30, 0xea82b1}, - {0x8235aa31, 0xea82b2}, - {0x8235aa32, 0xea82b3}, - {0x8235aa33, 0xea82b4}, - {0x8235aa34, 0xea82b5}, - {0x8235aa35, 0xea82b6}, - {0x8235aa36, 0xea82b7}, - {0x8235aa37, 0xea82b8}, - {0x8235aa38, 0xea82b9}, - {0x8235aa39, 0xea82ba}, - {0x8235ab30, 0xea82bb}, - {0x8235ab31, 0xea82bc}, - {0x8235ab32, 0xea82bd}, - {0x8235ab33, 0xea82be}, - {0x8235ab34, 0xea82bf}, - {0x8235ab35, 0xea8380}, - {0x8235ab36, 0xea8381}, - {0x8235ab37, 0xea8382}, - {0x8235ab38, 0xea8383}, - {0x8235ab39, 0xea8384}, - {0x8235ac30, 0xea8385}, - {0x8235ac31, 0xea8386}, - {0x8235ac32, 0xea8387}, - {0x8235ac33, 0xea8388}, - {0x8235ac34, 0xea8389}, - {0x8235ac35, 0xea838a}, - {0x8235ac36, 0xea838b}, - {0x8235ac37, 0xea838c}, - {0x8235ac38, 0xea838d}, - {0x8235ac39, 0xea838e}, - {0x8235ad30, 0xea838f}, - {0x8235ad31, 0xea8390}, - {0x8235ad32, 0xea8391}, - {0x8235ad33, 0xea8392}, - {0x8235ad34, 0xea8393}, - {0x8235ad35, 0xea8394}, - {0x8235ad36, 0xea8395}, - {0x8235ad37, 0xea8396}, - {0x8235ad38, 0xea8397}, - {0x8235ad39, 0xea8398}, - {0x8235ae30, 0xea8399}, - {0x8235ae31, 0xea839a}, - {0x8235ae32, 0xea839b}, - {0x8235ae33, 0xea839c}, - {0x8235ae34, 0xea839d}, - {0x8235ae35, 0xea839e}, - {0x8235ae36, 0xea839f}, - {0x8235ae37, 0xea83a0}, - {0x8235ae38, 0xea83a1}, - {0x8235ae39, 0xea83a2}, - {0x8235af30, 0xea83a3}, - {0x8235af31, 0xea83a4}, - {0x8235af32, 0xea83a5}, - {0x8235af33, 0xea83a6}, - {0x8235af34, 0xea83a7}, - {0x8235af35, 0xea83a8}, - {0x8235af36, 0xea83a9}, - {0x8235af37, 0xea83aa}, - {0x8235af38, 0xea83ab}, - {0x8235af39, 0xea83ac}, - {0x8235b030, 0xea83ad}, - {0x8235b031, 0xea83ae}, - {0x8235b032, 0xea83af}, - {0x8235b033, 0xea83b0}, - {0x8235b034, 0xea83b1}, - {0x8235b035, 0xea83b2}, - {0x8235b036, 0xea83b3}, - {0x8235b037, 0xea83b4}, - {0x8235b038, 0xea83b5}, - {0x8235b039, 0xea83b6}, - {0x8235b130, 0xea83b7}, - {0x8235b131, 0xea83b8}, - {0x8235b132, 0xea83b9}, - {0x8235b133, 0xea83ba}, - {0x8235b134, 0xea83bb}, - {0x8235b135, 0xea83bc}, - {0x8235b136, 0xea83bd}, - {0x8235b137, 0xea83be}, - {0x8235b138, 0xea83bf}, - {0x8235b139, 0xea8480}, - {0x8235b230, 0xea8481}, - {0x8235b231, 0xea8482}, - {0x8235b232, 0xea8483}, - {0x8235b233, 0xea8484}, - {0x8235b234, 0xea8485}, - {0x8235b235, 0xea8486}, - {0x8235b236, 0xea8487}, - {0x8235b237, 0xea8488}, - {0x8235b238, 0xea8489}, - {0x8235b239, 0xea848a}, - {0x8235b330, 0xea848b}, - {0x8235b331, 0xea848c}, - {0x8235b332, 0xea848d}, - {0x8235b333, 0xea848e}, - {0x8235b334, 0xea848f}, - {0x8235b335, 0xea8490}, - {0x8235b336, 0xea8491}, - {0x8235b337, 0xea8492}, - {0x8235b338, 0xea8493}, - {0x8235b339, 0xea8494}, - {0x8235b430, 0xea8495}, - {0x8235b431, 0xea8496}, - {0x8235b432, 0xea8497}, - {0x8235b433, 0xea8498}, - {0x8235b434, 0xea8499}, - {0x8235b435, 0xea849a}, - {0x8235b436, 0xea849b}, - {0x8235b437, 0xea849c}, - {0x8235b438, 0xea849d}, - {0x8235b439, 0xea849e}, - {0x8235b530, 0xea849f}, - {0x8235b531, 0xea84a0}, - {0x8235b532, 0xea84a1}, - {0x8235b533, 0xea84a2}, - {0x8235b534, 0xea84a3}, - {0x8235b535, 0xea84a4}, - {0x8235b536, 0xea84a5}, - {0x8235b537, 0xea84a6}, - {0x8235b538, 0xea84a7}, - {0x8235b539, 0xea84a8}, - {0x8235b630, 0xea84a9}, - {0x8235b631, 0xea84aa}, - {0x8235b632, 0xea84ab}, - {0x8235b633, 0xea84ac}, - {0x8235b634, 0xea84ad}, - {0x8235b635, 0xea84ae}, - {0x8235b636, 0xea84af}, - {0x8235b637, 0xea84b0}, - {0x8235b638, 0xea84b1}, - {0x8235b639, 0xea84b2}, - {0x8235b730, 0xea84b3}, - {0x8235b731, 0xea84b4}, - {0x8235b732, 0xea84b5}, - {0x8235b733, 0xea84b6}, - {0x8235b734, 0xea84b7}, - {0x8235b735, 0xea84b8}, - {0x8235b736, 0xea84b9}, - {0x8235b737, 0xea84ba}, - {0x8235b738, 0xea84bb}, - {0x8235b739, 0xea84bc}, - {0x8235b830, 0xea84bd}, - {0x8235b831, 0xea84be}, - {0x8235b832, 0xea84bf}, - {0x8235b833, 0xea8580}, - {0x8235b834, 0xea8581}, - {0x8235b835, 0xea8582}, - {0x8235b836, 0xea8583}, - {0x8235b837, 0xea8584}, - {0x8235b838, 0xea8585}, - {0x8235b839, 0xea8586}, - {0x8235b930, 0xea8587}, - {0x8235b931, 0xea8588}, - {0x8235b932, 0xea8589}, - {0x8235b933, 0xea858a}, - {0x8235b934, 0xea858b}, - {0x8235b935, 0xea858c}, - {0x8235b936, 0xea858d}, - {0x8235b937, 0xea858e}, - {0x8235b938, 0xea858f}, - {0x8235b939, 0xea8590}, - {0x8235ba30, 0xea8591}, - {0x8235ba31, 0xea8592}, - {0x8235ba32, 0xea8593}, - {0x8235ba33, 0xea8594}, - {0x8235ba34, 0xea8595}, - {0x8235ba35, 0xea8596}, - {0x8235ba36, 0xea8597}, - {0x8235ba37, 0xea8598}, - {0x8235ba38, 0xea8599}, - {0x8235ba39, 0xea859a}, - {0x8235bb30, 0xea859b}, - {0x8235bb31, 0xea859c}, - {0x8235bb32, 0xea859d}, - {0x8235bb33, 0xea859e}, - {0x8235bb34, 0xea859f}, - {0x8235bb35, 0xea85a0}, - {0x8235bb36, 0xea85a1}, - {0x8235bb37, 0xea85a2}, - {0x8235bb38, 0xea85a3}, - {0x8235bb39, 0xea85a4}, - {0x8235bc30, 0xea85a5}, - {0x8235bc31, 0xea85a6}, - {0x8235bc32, 0xea85a7}, - {0x8235bc33, 0xea85a8}, - {0x8235bc34, 0xea85a9}, - {0x8235bc35, 0xea85aa}, - {0x8235bc36, 0xea85ab}, - {0x8235bc37, 0xea85ac}, - {0x8235bc38, 0xea85ad}, - {0x8235bc39, 0xea85ae}, - {0x8235bd30, 0xea85af}, - {0x8235bd31, 0xea85b0}, - {0x8235bd32, 0xea85b1}, - {0x8235bd33, 0xea85b2}, - {0x8235bd34, 0xea85b3}, - {0x8235bd35, 0xea85b4}, - {0x8235bd36, 0xea85b5}, - {0x8235bd37, 0xea85b6}, - {0x8235bd38, 0xea85b7}, - {0x8235bd39, 0xea85b8}, - {0x8235be30, 0xea85b9}, - {0x8235be31, 0xea85ba}, - {0x8235be32, 0xea85bb}, - {0x8235be33, 0xea85bc}, - {0x8235be34, 0xea85bd}, - {0x8235be35, 0xea85be}, - {0x8235be36, 0xea85bf}, - {0x8235be37, 0xea8680}, - {0x8235be38, 0xea8681}, - {0x8235be39, 0xea8682}, - {0x8235bf30, 0xea8683}, - {0x8235bf31, 0xea8684}, - {0x8235bf32, 0xea8685}, - {0x8235bf33, 0xea8686}, - {0x8235bf34, 0xea8687}, - {0x8235bf35, 0xea8688}, - {0x8235bf36, 0xea8689}, - {0x8235bf37, 0xea868a}, - {0x8235bf38, 0xea868b}, - {0x8235bf39, 0xea868c}, - {0x8235c030, 0xea868d}, - {0x8235c031, 0xea868e}, - {0x8235c032, 0xea868f}, - {0x8235c033, 0xea8690}, - {0x8235c034, 0xea8691}, - {0x8235c035, 0xea8692}, - {0x8235c036, 0xea8693}, - {0x8235c037, 0xea8694}, - {0x8235c038, 0xea8695}, - {0x8235c039, 0xea8696}, - {0x8235c130, 0xea8697}, - {0x8235c131, 0xea8698}, - {0x8235c132, 0xea8699}, - {0x8235c133, 0xea869a}, - {0x8235c134, 0xea869b}, - {0x8235c135, 0xea869c}, - {0x8235c136, 0xea869d}, - {0x8235c137, 0xea869e}, - {0x8235c138, 0xea869f}, - {0x8235c139, 0xea86a0}, - {0x8235c230, 0xea86a1}, - {0x8235c231, 0xea86a2}, - {0x8235c232, 0xea86a3}, - {0x8235c233, 0xea86a4}, - {0x8235c234, 0xea86a5}, - {0x8235c235, 0xea86a6}, - {0x8235c236, 0xea86a7}, - {0x8235c237, 0xea86a8}, - {0x8235c238, 0xea86a9}, - {0x8235c239, 0xea86aa}, - {0x8235c330, 0xea86ab}, - {0x8235c331, 0xea86ac}, - {0x8235c332, 0xea86ad}, - {0x8235c333, 0xea86ae}, - {0x8235c334, 0xea86af}, - {0x8235c335, 0xea86b0}, - {0x8235c336, 0xea86b1}, - {0x8235c337, 0xea86b2}, - {0x8235c338, 0xea86b3}, - {0x8235c339, 0xea86b4}, - {0x8235c430, 0xea86b5}, - {0x8235c431, 0xea86b6}, - {0x8235c432, 0xea86b7}, - {0x8235c433, 0xea86b8}, - {0x8235c434, 0xea86b9}, - {0x8235c435, 0xea86ba}, - {0x8235c436, 0xea86bb}, - {0x8235c437, 0xea86bc}, - {0x8235c438, 0xea86bd}, - {0x8235c439, 0xea86be}, - {0x8235c530, 0xea86bf}, - {0x8235c531, 0xea8780}, - {0x8235c532, 0xea8781}, - {0x8235c533, 0xea8782}, - {0x8235c534, 0xea8783}, - {0x8235c535, 0xea8784}, - {0x8235c536, 0xea8785}, - {0x8235c537, 0xea8786}, - {0x8235c538, 0xea8787}, - {0x8235c539, 0xea8788}, - {0x8235c630, 0xea8789}, - {0x8235c631, 0xea878a}, - {0x8235c632, 0xea878b}, - {0x8235c633, 0xea878c}, - {0x8235c634, 0xea878d}, - {0x8235c635, 0xea878e}, - {0x8235c636, 0xea878f}, - {0x8235c637, 0xea8790}, - {0x8235c638, 0xea8791}, - {0x8235c639, 0xea8792}, - {0x8235c730, 0xea8793}, - {0x8235c731, 0xea8794}, - {0x8235c732, 0xea8795}, - {0x8235c733, 0xea8796}, - {0x8235c734, 0xea8797}, - {0x8235c735, 0xea8798}, - {0x8235c736, 0xea8799}, - {0x8235c737, 0xea879a}, - {0x8235c738, 0xea879b}, - {0x8235c739, 0xea879c}, - {0x8235c830, 0xea879d}, - {0x8235c831, 0xea879e}, - {0x8235c832, 0xea879f}, - {0x8235c833, 0xea87a0}, - {0x8235c834, 0xea87a1}, - {0x8235c835, 0xea87a2}, - {0x8235c836, 0xea87a3}, - {0x8235c837, 0xea87a4}, - {0x8235c838, 0xea87a5}, - {0x8235c839, 0xea87a6}, - {0x8235c930, 0xea87a7}, - {0x8235c931, 0xea87a8}, - {0x8235c932, 0xea87a9}, - {0x8235c933, 0xea87aa}, - {0x8235c934, 0xea87ab}, - {0x8235c935, 0xea87ac}, - {0x8235c936, 0xea87ad}, - {0x8235c937, 0xea87ae}, - {0x8235c938, 0xea87af}, - {0x8235c939, 0xea87b0}, - {0x8235ca30, 0xea87b1}, - {0x8235ca31, 0xea87b2}, - {0x8235ca32, 0xea87b3}, - {0x8235ca33, 0xea87b4}, - {0x8235ca34, 0xea87b5}, - {0x8235ca35, 0xea87b6}, - {0x8235ca36, 0xea87b7}, - {0x8235ca37, 0xea87b8}, - {0x8235ca38, 0xea87b9}, - {0x8235ca39, 0xea87ba}, - {0x8235cb30, 0xea87bb}, - {0x8235cb31, 0xea87bc}, - {0x8235cb32, 0xea87bd}, - {0x8235cb33, 0xea87be}, - {0x8235cb34, 0xea87bf}, - {0x8235cb35, 0xea8880}, - {0x8235cb36, 0xea8881}, - {0x8235cb37, 0xea8882}, - {0x8235cb38, 0xea8883}, - {0x8235cb39, 0xea8884}, - {0x8235cc30, 0xea8885}, - {0x8235cc31, 0xea8886}, - {0x8235cc32, 0xea8887}, - {0x8235cc33, 0xea8888}, - {0x8235cc34, 0xea8889}, - {0x8235cc35, 0xea888a}, - {0x8235cc36, 0xea888b}, - {0x8235cc37, 0xea888c}, - {0x8235cc38, 0xea888d}, - {0x8235cc39, 0xea888e}, - {0x8235cd30, 0xea888f}, - {0x8235cd31, 0xea8890}, - {0x8235cd32, 0xea8891}, - {0x8235cd33, 0xea8892}, - {0x8235cd34, 0xea8893}, - {0x8235cd35, 0xea8894}, - {0x8235cd36, 0xea8895}, - {0x8235cd37, 0xea8896}, - {0x8235cd38, 0xea8897}, - {0x8235cd39, 0xea8898}, - {0x8235ce30, 0xea8899}, - {0x8235ce31, 0xea889a}, - {0x8235ce32, 0xea889b}, - {0x8235ce33, 0xea889c}, - {0x8235ce34, 0xea889d}, - {0x8235ce35, 0xea889e}, - {0x8235ce36, 0xea889f}, - {0x8235ce37, 0xea88a0}, - {0x8235ce38, 0xea88a1}, - {0x8235ce39, 0xea88a2}, - {0x8235cf30, 0xea88a3}, - {0x8235cf31, 0xea88a4}, - {0x8235cf32, 0xea88a5}, - {0x8235cf33, 0xea88a6}, - {0x8235cf34, 0xea88a7}, - {0x8235cf35, 0xea88a8}, - {0x8235cf36, 0xea88a9}, - {0x8235cf37, 0xea88aa}, - {0x8235cf38, 0xea88ab}, - {0x8235cf39, 0xea88ac}, - {0x8235d030, 0xea88ad}, - {0x8235d031, 0xea88ae}, - {0x8235d032, 0xea88af}, - {0x8235d033, 0xea88b0}, - {0x8235d034, 0xea88b1}, - {0x8235d035, 0xea88b2}, - {0x8235d036, 0xea88b3}, - {0x8235d037, 0xea88b4}, - {0x8235d038, 0xea88b5}, - {0x8235d039, 0xea88b6}, - {0x8235d130, 0xea88b7}, - {0x8235d131, 0xea88b8}, - {0x8235d132, 0xea88b9}, - {0x8235d133, 0xea88ba}, - {0x8235d134, 0xea88bb}, - {0x8235d135, 0xea88bc}, - {0x8235d136, 0xea88bd}, - {0x8235d137, 0xea88be}, - {0x8235d138, 0xea88bf}, - {0x8235d139, 0xea8980}, - {0x8235d230, 0xea8981}, - {0x8235d231, 0xea8982}, - {0x8235d232, 0xea8983}, - {0x8235d233, 0xea8984}, - {0x8235d234, 0xea8985}, - {0x8235d235, 0xea8986}, - {0x8235d236, 0xea8987}, - {0x8235d237, 0xea8988}, - {0x8235d238, 0xea8989}, - {0x8235d239, 0xea898a}, - {0x8235d330, 0xea898b}, - {0x8235d331, 0xea898c}, - {0x8235d332, 0xea898d}, - {0x8235d333, 0xea898e}, - {0x8235d334, 0xea898f}, - {0x8235d335, 0xea8990}, - {0x8235d336, 0xea8991}, - {0x8235d337, 0xea8992}, - {0x8235d338, 0xea8993}, - {0x8235d339, 0xea8994}, - {0x8235d430, 0xea8995}, - {0x8235d431, 0xea8996}, - {0x8235d432, 0xea8997}, - {0x8235d433, 0xea8998}, - {0x8235d434, 0xea8999}, - {0x8235d435, 0xea899a}, - {0x8235d436, 0xea899b}, - {0x8235d437, 0xea899c}, - {0x8235d438, 0xea899d}, - {0x8235d439, 0xea899e}, - {0x8235d530, 0xea899f}, - {0x8235d531, 0xea89a0}, - {0x8235d532, 0xea89a1}, - {0x8235d533, 0xea89a2}, - {0x8235d534, 0xea89a3}, - {0x8235d535, 0xea89a4}, - {0x8235d536, 0xea89a5}, - {0x8235d537, 0xea89a6}, - {0x8235d538, 0xea89a7}, - {0x8235d539, 0xea89a8}, - {0x8235d630, 0xea89a9}, - {0x8235d631, 0xea89aa}, - {0x8235d632, 0xea89ab}, - {0x8235d633, 0xea89ac}, - {0x8235d634, 0xea89ad}, - {0x8235d635, 0xea89ae}, - {0x8235d636, 0xea89af}, - {0x8235d637, 0xea89b0}, - {0x8235d638, 0xea89b1}, - {0x8235d639, 0xea89b2}, - {0x8235d730, 0xea89b3}, - {0x8235d731, 0xea89b4}, - {0x8235d732, 0xea89b5}, - {0x8235d733, 0xea89b6}, - {0x8235d734, 0xea89b7}, - {0x8235d735, 0xea89b8}, - {0x8235d736, 0xea89b9}, - {0x8235d737, 0xea89ba}, - {0x8235d738, 0xea89bb}, - {0x8235d739, 0xea89bc}, - {0x8235d830, 0xea89bd}, - {0x8235d831, 0xea89be}, - {0x8235d832, 0xea89bf}, - {0x8235d833, 0xea8a80}, - {0x8235d834, 0xea8a81}, - {0x8235d835, 0xea8a82}, - {0x8235d836, 0xea8a83}, - {0x8235d837, 0xea8a84}, - {0x8235d838, 0xea8a85}, - {0x8235d839, 0xea8a86}, - {0x8235d930, 0xea8a87}, - {0x8235d931, 0xea8a88}, - {0x8235d932, 0xea8a89}, - {0x8235d933, 0xea8a8a}, - {0x8235d934, 0xea8a8b}, - {0x8235d935, 0xea8a8c}, - {0x8235d936, 0xea8a8d}, - {0x8235d937, 0xea8a8e}, - {0x8235d938, 0xea8a8f}, - {0x8235d939, 0xea8a90}, - {0x8235da30, 0xea8a91}, - {0x8235da31, 0xea8a92}, - {0x8235da32, 0xea8a93}, - {0x8235da33, 0xea8a94}, - {0x8235da34, 0xea8a95}, - {0x8235da35, 0xea8a96}, - {0x8235da36, 0xea8a97}, - {0x8235da37, 0xea8a98}, - {0x8235da38, 0xea8a99}, - {0x8235da39, 0xea8a9a}, - {0x8235db30, 0xea8a9b}, - {0x8235db31, 0xea8a9c}, - {0x8235db32, 0xea8a9d}, - {0x8235db33, 0xea8a9e}, - {0x8235db34, 0xea8a9f}, - {0x8235db35, 0xea8aa0}, - {0x8235db36, 0xea8aa1}, - {0x8235db37, 0xea8aa2}, - {0x8235db38, 0xea8aa3}, - {0x8235db39, 0xea8aa4}, - {0x8235dc30, 0xea8aa5}, - {0x8235dc31, 0xea8aa6}, - {0x8235dc32, 0xea8aa7}, - {0x8235dc33, 0xea8aa8}, - {0x8235dc34, 0xea8aa9}, - {0x8235dc35, 0xea8aaa}, - {0x8235dc36, 0xea8aab}, - {0x8235dc37, 0xea8aac}, - {0x8235dc38, 0xea8aad}, - {0x8235dc39, 0xea8aae}, - {0x8235dd30, 0xea8aaf}, - {0x8235dd31, 0xea8ab0}, - {0x8235dd32, 0xea8ab1}, - {0x8235dd33, 0xea8ab2}, - {0x8235dd34, 0xea8ab3}, - {0x8235dd35, 0xea8ab4}, - {0x8235dd36, 0xea8ab5}, - {0x8235dd37, 0xea8ab6}, - {0x8235dd38, 0xea8ab7}, - {0x8235dd39, 0xea8ab8}, - {0x8235de30, 0xea8ab9}, - {0x8235de31, 0xea8aba}, - {0x8235de32, 0xea8abb}, - {0x8235de33, 0xea8abc}, - {0x8235de34, 0xea8abd}, - {0x8235de35, 0xea8abe}, - {0x8235de36, 0xea8abf}, - {0x8235de37, 0xea8b80}, - {0x8235de38, 0xea8b81}, - {0x8235de39, 0xea8b82}, - {0x8235df30, 0xea8b83}, - {0x8235df31, 0xea8b84}, - {0x8235df32, 0xea8b85}, - {0x8235df33, 0xea8b86}, - {0x8235df34, 0xea8b87}, - {0x8235df35, 0xea8b88}, - {0x8235df36, 0xea8b89}, - {0x8235df37, 0xea8b8a}, - {0x8235df38, 0xea8b8b}, - {0x8235df39, 0xea8b8c}, - {0x8235e030, 0xea8b8d}, - {0x8235e031, 0xea8b8e}, - {0x8235e032, 0xea8b8f}, - {0x8235e033, 0xea8b90}, - {0x8235e034, 0xea8b91}, - {0x8235e035, 0xea8b92}, - {0x8235e036, 0xea8b93}, - {0x8235e037, 0xea8b94}, - {0x8235e038, 0xea8b95}, - {0x8235e039, 0xea8b96}, - {0x8235e130, 0xea8b97}, - {0x8235e131, 0xea8b98}, - {0x8235e132, 0xea8b99}, - {0x8235e133, 0xea8b9a}, - {0x8235e134, 0xea8b9b}, - {0x8235e135, 0xea8b9c}, - {0x8235e136, 0xea8b9d}, - {0x8235e137, 0xea8b9e}, - {0x8235e138, 0xea8b9f}, - {0x8235e139, 0xea8ba0}, - {0x8235e230, 0xea8ba1}, - {0x8235e231, 0xea8ba2}, - {0x8235e232, 0xea8ba3}, - {0x8235e233, 0xea8ba4}, - {0x8235e234, 0xea8ba5}, - {0x8235e235, 0xea8ba6}, - {0x8235e236, 0xea8ba7}, - {0x8235e237, 0xea8ba8}, - {0x8235e238, 0xea8ba9}, - {0x8235e239, 0xea8baa}, - {0x8235e330, 0xea8bab}, - {0x8235e331, 0xea8bac}, - {0x8235e332, 0xea8bad}, - {0x8235e333, 0xea8bae}, - {0x8235e334, 0xea8baf}, - {0x8235e335, 0xea8bb0}, - {0x8235e336, 0xea8bb1}, - {0x8235e337, 0xea8bb2}, - {0x8235e338, 0xea8bb3}, - {0x8235e339, 0xea8bb4}, - {0x8235e430, 0xea8bb5}, - {0x8235e431, 0xea8bb6}, - {0x8235e432, 0xea8bb7}, - {0x8235e433, 0xea8bb8}, - {0x8235e434, 0xea8bb9}, - {0x8235e435, 0xea8bba}, - {0x8235e436, 0xea8bbb}, - {0x8235e437, 0xea8bbc}, - {0x8235e438, 0xea8bbd}, - {0x8235e439, 0xea8bbe}, - {0x8235e530, 0xea8bbf}, - {0x8235e531, 0xea8c80}, - {0x8235e532, 0xea8c81}, - {0x8235e533, 0xea8c82}, - {0x8235e534, 0xea8c83}, - {0x8235e535, 0xea8c84}, - {0x8235e536, 0xea8c85}, - {0x8235e537, 0xea8c86}, - {0x8235e538, 0xea8c87}, - {0x8235e539, 0xea8c88}, - {0x8235e630, 0xea8c89}, - {0x8235e631, 0xea8c8a}, - {0x8235e632, 0xea8c8b}, - {0x8235e633, 0xea8c8c}, - {0x8235e634, 0xea8c8d}, - {0x8235e635, 0xea8c8e}, - {0x8235e636, 0xea8c8f}, - {0x8235e637, 0xea8c90}, - {0x8235e638, 0xea8c91}, - {0x8235e639, 0xea8c92}, - {0x8235e730, 0xea8c93}, - {0x8235e731, 0xea8c94}, - {0x8235e732, 0xea8c95}, - {0x8235e733, 0xea8c96}, - {0x8235e734, 0xea8c97}, - {0x8235e735, 0xea8c98}, - {0x8235e736, 0xea8c99}, - {0x8235e737, 0xea8c9a}, - {0x8235e738, 0xea8c9b}, - {0x8235e739, 0xea8c9c}, - {0x8235e830, 0xea8c9d}, - {0x8235e831, 0xea8c9e}, - {0x8235e832, 0xea8c9f}, - {0x8235e833, 0xea8ca0}, - {0x8235e834, 0xea8ca1}, - {0x8235e835, 0xea8ca2}, - {0x8235e836, 0xea8ca3}, - {0x8235e837, 0xea8ca4}, - {0x8235e838, 0xea8ca5}, - {0x8235e839, 0xea8ca6}, - {0x8235e930, 0xea8ca7}, - {0x8235e931, 0xea8ca8}, - {0x8235e932, 0xea8ca9}, - {0x8235e933, 0xea8caa}, - {0x8235e934, 0xea8cab}, - {0x8235e935, 0xea8cac}, - {0x8235e936, 0xea8cad}, - {0x8235e937, 0xea8cae}, - {0x8235e938, 0xea8caf}, - {0x8235e939, 0xea8cb0}, - {0x8235ea30, 0xea8cb1}, - {0x8235ea31, 0xea8cb2}, - {0x8235ea32, 0xea8cb3}, - {0x8235ea33, 0xea8cb4}, - {0x8235ea34, 0xea8cb5}, - {0x8235ea35, 0xea8cb6}, - {0x8235ea36, 0xea8cb7}, - {0x8235ea37, 0xea8cb8}, - {0x8235ea38, 0xea8cb9}, - {0x8235ea39, 0xea8cba}, - {0x8235eb30, 0xea8cbb}, - {0x8235eb31, 0xea8cbc}, - {0x8235eb32, 0xea8cbd}, - {0x8235eb33, 0xea8cbe}, - {0x8235eb34, 0xea8cbf}, - {0x8235eb35, 0xea8d80}, - {0x8235eb36, 0xea8d81}, - {0x8235eb37, 0xea8d82}, - {0x8235eb38, 0xea8d83}, - {0x8235eb39, 0xea8d84}, - {0x8235ec30, 0xea8d85}, - {0x8235ec31, 0xea8d86}, - {0x8235ec32, 0xea8d87}, - {0x8235ec33, 0xea8d88}, - {0x8235ec34, 0xea8d89}, - {0x8235ec35, 0xea8d8a}, - {0x8235ec36, 0xea8d8b}, - {0x8235ec37, 0xea8d8c}, - {0x8235ec38, 0xea8d8d}, - {0x8235ec39, 0xea8d8e}, - {0x8235ed30, 0xea8d8f}, - {0x8235ed31, 0xea8d90}, - {0x8235ed32, 0xea8d91}, - {0x8235ed33, 0xea8d92}, - {0x8235ed34, 0xea8d93}, - {0x8235ed35, 0xea8d94}, - {0x8235ed36, 0xea8d95}, - {0x8235ed37, 0xea8d96}, - {0x8235ed38, 0xea8d97}, - {0x8235ed39, 0xea8d98}, - {0x8235ee30, 0xea8d99}, - {0x8235ee31, 0xea8d9a}, - {0x8235ee32, 0xea8d9b}, - {0x8235ee33, 0xea8d9c}, - {0x8235ee34, 0xea8d9d}, - {0x8235ee35, 0xea8d9e}, - {0x8235ee36, 0xea8d9f}, - {0x8235ee37, 0xea8da0}, - {0x8235ee38, 0xea8da1}, - {0x8235ee39, 0xea8da2}, - {0x8235ef30, 0xea8da3}, - {0x8235ef31, 0xea8da4}, - {0x8235ef32, 0xea8da5}, - {0x8235ef33, 0xea8da6}, - {0x8235ef34, 0xea8da7}, - {0x8235ef35, 0xea8da8}, - {0x8235ef36, 0xea8da9}, - {0x8235ef37, 0xea8daa}, - {0x8235ef38, 0xea8dab}, - {0x8235ef39, 0xea8dac}, - {0x8235f030, 0xea8dad}, - {0x8235f031, 0xea8dae}, - {0x8235f032, 0xea8daf}, - {0x8235f033, 0xea8db0}, - {0x8235f034, 0xea8db1}, - {0x8235f035, 0xea8db2}, - {0x8235f036, 0xea8db3}, - {0x8235f037, 0xea8db4}, - {0x8235f038, 0xea8db5}, - {0x8235f039, 0xea8db6}, - {0x8235f130, 0xea8db7}, - {0x8235f131, 0xea8db8}, - {0x8235f132, 0xea8db9}, - {0x8235f133, 0xea8dba}, - {0x8235f134, 0xea8dbb}, - {0x8235f135, 0xea8dbc}, - {0x8235f136, 0xea8dbd}, - {0x8235f137, 0xea8dbe}, - {0x8235f138, 0xea8dbf}, - {0x8235f139, 0xea8e80}, - {0x8235f230, 0xea8e81}, - {0x8235f231, 0xea8e82}, - {0x8235f232, 0xea8e83}, - {0x8235f233, 0xea8e84}, - {0x8235f234, 0xea8e85}, - {0x8235f235, 0xea8e86}, - {0x8235f236, 0xea8e87}, - {0x8235f237, 0xea8e88}, - {0x8235f238, 0xea8e89}, - {0x8235f239, 0xea8e8a}, - {0x8235f330, 0xea8e8b}, - {0x8235f331, 0xea8e8c}, - {0x8235f332, 0xea8e8d}, - {0x8235f333, 0xea8e8e}, - {0x8235f334, 0xea8e8f}, - {0x8235f335, 0xea8e90}, - {0x8235f336, 0xea8e91}, - {0x8235f337, 0xea8e92}, - {0x8235f338, 0xea8e93}, - {0x8235f339, 0xea8e94}, - {0x8235f430, 0xea8e95}, - {0x8235f431, 0xea8e96}, - {0x8235f432, 0xea8e97}, - {0x8235f433, 0xea8e98}, - {0x8235f434, 0xea8e99}, - {0x8235f435, 0xea8e9a}, - {0x8235f436, 0xea8e9b}, - {0x8235f437, 0xea8e9c}, - {0x8235f438, 0xea8e9d}, - {0x8235f439, 0xea8e9e}, - {0x8235f530, 0xea8e9f}, - {0x8235f531, 0xea8ea0}, - {0x8235f532, 0xea8ea1}, - {0x8235f533, 0xea8ea2}, - {0x8235f534, 0xea8ea3}, - {0x8235f535, 0xea8ea4}, - {0x8235f536, 0xea8ea5}, - {0x8235f537, 0xea8ea6}, - {0x8235f538, 0xea8ea7}, - {0x8235f539, 0xea8ea8}, - {0x8235f630, 0xea8ea9}, - {0x8235f631, 0xea8eaa}, - {0x8235f632, 0xea8eab}, - {0x8235f633, 0xea8eac}, - {0x8235f634, 0xea8ead}, - {0x8235f635, 0xea8eae}, - {0x8235f636, 0xea8eaf}, - {0x8235f637, 0xea8eb0}, - {0x8235f638, 0xea8eb1}, - {0x8235f639, 0xea8eb2}, - {0x8235f730, 0xea8eb3}, - {0x8235f731, 0xea8eb4}, - {0x8235f732, 0xea8eb5}, - {0x8235f733, 0xea8eb6}, - {0x8235f734, 0xea8eb7}, - {0x8235f735, 0xea8eb8}, - {0x8235f736, 0xea8eb9}, - {0x8235f737, 0xea8eba}, - {0x8235f738, 0xea8ebb}, - {0x8235f739, 0xea8ebc}, - {0x8235f830, 0xea8ebd}, - {0x8235f831, 0xea8ebe}, - {0x8235f832, 0xea8ebf}, - {0x8235f833, 0xea8f80}, - {0x8235f834, 0xea8f81}, - {0x8235f835, 0xea8f82}, - {0x8235f836, 0xea8f83}, - {0x8235f837, 0xea8f84}, - {0x8235f838, 0xea8f85}, - {0x8235f839, 0xea8f86}, - {0x8235f930, 0xea8f87}, - {0x8235f931, 0xea8f88}, - {0x8235f932, 0xea8f89}, - {0x8235f933, 0xea8f8a}, - {0x8235f934, 0xea8f8b}, - {0x8235f935, 0xea8f8c}, - {0x8235f936, 0xea8f8d}, - {0x8235f937, 0xea8f8e}, - {0x8235f938, 0xea8f8f}, - {0x8235f939, 0xea8f90}, - {0x8235fa30, 0xea8f91}, - {0x8235fa31, 0xea8f92}, - {0x8235fa32, 0xea8f93}, - {0x8235fa33, 0xea8f94}, - {0x8235fa34, 0xea8f95}, - {0x8235fa35, 0xea8f96}, - {0x8235fa36, 0xea8f97}, - {0x8235fa37, 0xea8f98}, - {0x8235fa38, 0xea8f99}, - {0x8235fa39, 0xea8f9a}, - {0x8235fb30, 0xea8f9b}, - {0x8235fb31, 0xea8f9c}, - {0x8235fb32, 0xea8f9d}, - {0x8235fb33, 0xea8f9e}, - {0x8235fb34, 0xea8f9f}, - {0x8235fb35, 0xea8fa0}, - {0x8235fb36, 0xea8fa1}, - {0x8235fb37, 0xea8fa2}, - {0x8235fb38, 0xea8fa3}, - {0x8235fb39, 0xea8fa4}, - {0x8235fc30, 0xea8fa5}, - {0x8235fc31, 0xea8fa6}, - {0x8235fc32, 0xea8fa7}, - {0x8235fc33, 0xea8fa8}, - {0x8235fc34, 0xea8fa9}, - {0x8235fc35, 0xea8faa}, - {0x8235fc36, 0xea8fab}, - {0x8235fc37, 0xea8fac}, - {0x8235fc38, 0xea8fad}, - {0x8235fc39, 0xea8fae}, - {0x8235fd30, 0xea8faf}, - {0x8235fd31, 0xea8fb0}, - {0x8235fd32, 0xea8fb1}, - {0x8235fd33, 0xea8fb2}, - {0x8235fd34, 0xea8fb3}, - {0x8235fd35, 0xea8fb4}, - {0x8235fd36, 0xea8fb5}, - {0x8235fd37, 0xea8fb6}, - {0x8235fd38, 0xea8fb7}, - {0x8235fd39, 0xea8fb8}, - {0x8235fe30, 0xea8fb9}, - {0x8235fe31, 0xea8fba}, - {0x8235fe32, 0xea8fbb}, - {0x8235fe33, 0xea8fbc}, - {0x8235fe34, 0xea8fbd}, - {0x8235fe35, 0xea8fbe}, - {0x8235fe36, 0xea8fbf}, - {0x8235fe37, 0xea9080}, - {0x8235fe38, 0xea9081}, - {0x8235fe39, 0xea9082}, - {0x82368130, 0xea9083}, - {0x82368131, 0xea9084}, - {0x82368132, 0xea9085}, - {0x82368133, 0xea9086}, - {0x82368134, 0xea9087}, - {0x82368135, 0xea9088}, - {0x82368136, 0xea9089}, - {0x82368137, 0xea908a}, - {0x82368138, 0xea908b}, - {0x82368139, 0xea908c}, - {0x82368230, 0xea908d}, - {0x82368231, 0xea908e}, - {0x82368232, 0xea908f}, - {0x82368233, 0xea9090}, - {0x82368234, 0xea9091}, - {0x82368235, 0xea9092}, - {0x82368236, 0xea9093}, - {0x82368237, 0xea9094}, - {0x82368238, 0xea9095}, - {0x82368239, 0xea9096}, - {0x82368330, 0xea9097}, - {0x82368331, 0xea9098}, - {0x82368332, 0xea9099}, - {0x82368333, 0xea909a}, - {0x82368334, 0xea909b}, - {0x82368335, 0xea909c}, - {0x82368336, 0xea909d}, - {0x82368337, 0xea909e}, - {0x82368338, 0xea909f}, - {0x82368339, 0xea90a0}, - {0x82368430, 0xea90a1}, - {0x82368431, 0xea90a2}, - {0x82368432, 0xea90a3}, - {0x82368433, 0xea90a4}, - {0x82368434, 0xea90a5}, - {0x82368435, 0xea90a6}, - {0x82368436, 0xea90a7}, - {0x82368437, 0xea90a8}, - {0x82368438, 0xea90a9}, - {0x82368439, 0xea90aa}, - {0x82368530, 0xea90ab}, - {0x82368531, 0xea90ac}, - {0x82368532, 0xea90ad}, - {0x82368533, 0xea90ae}, - {0x82368534, 0xea90af}, - {0x82368535, 0xea90b0}, - {0x82368536, 0xea90b1}, - {0x82368537, 0xea90b2}, - {0x82368538, 0xea90b3}, - {0x82368539, 0xea90b4}, - {0x82368630, 0xea90b5}, - {0x82368631, 0xea90b6}, - {0x82368632, 0xea90b7}, - {0x82368633, 0xea90b8}, - {0x82368634, 0xea90b9}, - {0x82368635, 0xea90ba}, - {0x82368636, 0xea90bb}, - {0x82368637, 0xea90bc}, - {0x82368638, 0xea90bd}, - {0x82368639, 0xea90be}, - {0x82368730, 0xea90bf}, - {0x82368731, 0xea9180}, - {0x82368732, 0xea9181}, - {0x82368733, 0xea9182}, - {0x82368734, 0xea9183}, - {0x82368735, 0xea9184}, - {0x82368736, 0xea9185}, - {0x82368737, 0xea9186}, - {0x82368738, 0xea9187}, - {0x82368739, 0xea9188}, - {0x82368830, 0xea9189}, - {0x82368831, 0xea918a}, - {0x82368832, 0xea918b}, - {0x82368833, 0xea918c}, - {0x82368834, 0xea918d}, - {0x82368835, 0xea918e}, - {0x82368836, 0xea918f}, - {0x82368837, 0xea9190}, - {0x82368838, 0xea9191}, - {0x82368839, 0xea9192}, - {0x82368930, 0xea9193}, - {0x82368931, 0xea9194}, - {0x82368932, 0xea9195}, - {0x82368933, 0xea9196}, - {0x82368934, 0xea9197}, - {0x82368935, 0xea9198}, - {0x82368936, 0xea9199}, - {0x82368937, 0xea919a}, - {0x82368938, 0xea919b}, - {0x82368939, 0xea919c}, - {0x82368a30, 0xea919d}, - {0x82368a31, 0xea919e}, - {0x82368a32, 0xea919f}, - {0x82368a33, 0xea91a0}, - {0x82368a34, 0xea91a1}, - {0x82368a35, 0xea91a2}, - {0x82368a36, 0xea91a3}, - {0x82368a37, 0xea91a4}, - {0x82368a38, 0xea91a5}, - {0x82368a39, 0xea91a6}, - {0x82368b30, 0xea91a7}, - {0x82368b31, 0xea91a8}, - {0x82368b32, 0xea91a9}, - {0x82368b33, 0xea91aa}, - {0x82368b34, 0xea91ab}, - {0x82368b35, 0xea91ac}, - {0x82368b36, 0xea91ad}, - {0x82368b37, 0xea91ae}, - {0x82368b38, 0xea91af}, - {0x82368b39, 0xea91b0}, - {0x82368c30, 0xea91b1}, - {0x82368c31, 0xea91b2}, - {0x82368c32, 0xea91b3}, - {0x82368c33, 0xea91b4}, - {0x82368c34, 0xea91b5}, - {0x82368c35, 0xea91b6}, - {0x82368c36, 0xea91b7}, - {0x82368c37, 0xea91b8}, - {0x82368c38, 0xea91b9}, - {0x82368c39, 0xea91ba}, - {0x82368d30, 0xea91bb}, - {0x82368d31, 0xea91bc}, - {0x82368d32, 0xea91bd}, - {0x82368d33, 0xea91be}, - {0x82368d34, 0xea91bf}, - {0x82368d35, 0xea9280}, - {0x82368d36, 0xea9281}, - {0x82368d37, 0xea9282}, - {0x82368d38, 0xea9283}, - {0x82368d39, 0xea9284}, - {0x82368e30, 0xea9285}, - {0x82368e31, 0xea9286}, - {0x82368e32, 0xea9287}, - {0x82368e33, 0xea9288}, - {0x82368e34, 0xea9289}, - {0x82368e35, 0xea928a}, - {0x82368e36, 0xea928b}, - {0x82368e37, 0xea928c}, - {0x82368e38, 0xea928d}, - {0x82368e39, 0xea928e}, - {0x82368f30, 0xea928f}, - {0x82368f31, 0xea9290}, - {0x82368f32, 0xea9291}, - {0x82368f33, 0xea9292}, - {0x82368f34, 0xea9293}, - {0x82368f35, 0xea9294}, - {0x82368f36, 0xea9295}, - {0x82368f37, 0xea9296}, - {0x82368f38, 0xea9297}, - {0x82368f39, 0xea9298}, - {0x82369030, 0xea9299}, - {0x82369031, 0xea929a}, - {0x82369032, 0xea929b}, - {0x82369033, 0xea929c}, - {0x82369034, 0xea929d}, - {0x82369035, 0xea929e}, - {0x82369036, 0xea929f}, - {0x82369037, 0xea92a0}, - {0x82369038, 0xea92a1}, - {0x82369039, 0xea92a2}, - {0x82369130, 0xea92a3}, - {0x82369131, 0xea92a4}, - {0x82369132, 0xea92a5}, - {0x82369133, 0xea92a6}, - {0x82369134, 0xea92a7}, - {0x82369135, 0xea92a8}, - {0x82369136, 0xea92a9}, - {0x82369137, 0xea92aa}, - {0x82369138, 0xea92ab}, - {0x82369139, 0xea92ac}, - {0x82369230, 0xea92ad}, - {0x82369231, 0xea92ae}, - {0x82369232, 0xea92af}, - {0x82369233, 0xea92b0}, - {0x82369234, 0xea92b1}, - {0x82369235, 0xea92b2}, - {0x82369236, 0xea92b3}, - {0x82369237, 0xea92b4}, - {0x82369238, 0xea92b5}, - {0x82369239, 0xea92b6}, - {0x82369330, 0xea92b7}, - {0x82369331, 0xea92b8}, - {0x82369332, 0xea92b9}, - {0x82369333, 0xea92ba}, - {0x82369334, 0xea92bb}, - {0x82369335, 0xea92bc}, - {0x82369336, 0xea92bd}, - {0x82369337, 0xea92be}, - {0x82369338, 0xea92bf}, - {0x82369339, 0xea9380}, - {0x82369430, 0xea9381}, - {0x82369431, 0xea9382}, - {0x82369432, 0xea9383}, - {0x82369433, 0xea9384}, - {0x82369434, 0xea9385}, - {0x82369435, 0xea9386}, - {0x82369436, 0xea9387}, - {0x82369437, 0xea9388}, - {0x82369438, 0xea9389}, - {0x82369439, 0xea938a}, - {0x82369530, 0xea938b}, - {0x82369531, 0xea938c}, - {0x82369532, 0xea938d}, - {0x82369533, 0xea938e}, - {0x82369534, 0xea938f}, - {0x82369535, 0xea9390}, - {0x82369536, 0xea9391}, - {0x82369537, 0xea9392}, - {0x82369538, 0xea9393}, - {0x82369539, 0xea9394}, - {0x82369630, 0xea9395}, - {0x82369631, 0xea9396}, - {0x82369632, 0xea9397}, - {0x82369633, 0xea9398}, - {0x82369634, 0xea9399}, - {0x82369635, 0xea939a}, - {0x82369636, 0xea939b}, - {0x82369637, 0xea939c}, - {0x82369638, 0xea939d}, - {0x82369639, 0xea939e}, - {0x82369730, 0xea939f}, - {0x82369731, 0xea93a0}, - {0x82369732, 0xea93a1}, - {0x82369733, 0xea93a2}, - {0x82369734, 0xea93a3}, - {0x82369735, 0xea93a4}, - {0x82369736, 0xea93a5}, - {0x82369737, 0xea93a6}, - {0x82369738, 0xea93a7}, - {0x82369739, 0xea93a8}, - {0x82369830, 0xea93a9}, - {0x82369831, 0xea93aa}, - {0x82369832, 0xea93ab}, - {0x82369833, 0xea93ac}, - {0x82369834, 0xea93ad}, - {0x82369835, 0xea93ae}, - {0x82369836, 0xea93af}, - {0x82369837, 0xea93b0}, - {0x82369838, 0xea93b1}, - {0x82369839, 0xea93b2}, - {0x82369930, 0xea93b3}, - {0x82369931, 0xea93b4}, - {0x82369932, 0xea93b5}, - {0x82369933, 0xea93b6}, - {0x82369934, 0xea93b7}, - {0x82369935, 0xea93b8}, - {0x82369936, 0xea93b9}, - {0x82369937, 0xea93ba}, - {0x82369938, 0xea93bb}, - {0x82369939, 0xea93bc}, - {0x82369a30, 0xea93bd}, - {0x82369a31, 0xea93be}, - {0x82369a32, 0xea93bf}, - {0x82369a33, 0xea9480}, - {0x82369a34, 0xea9481}, - {0x82369a35, 0xea9482}, - {0x82369a36, 0xea9483}, - {0x82369a37, 0xea9484}, - {0x82369a38, 0xea9485}, - {0x82369a39, 0xea9486}, - {0x82369b30, 0xea9487}, - {0x82369b31, 0xea9488}, - {0x82369b32, 0xea9489}, - {0x82369b33, 0xea948a}, - {0x82369b34, 0xea948b}, - {0x82369b35, 0xea948c}, - {0x82369b36, 0xea948d}, - {0x82369b37, 0xea948e}, - {0x82369b38, 0xea948f}, - {0x82369b39, 0xea9490}, - {0x82369c30, 0xea9491}, - {0x82369c31, 0xea9492}, - {0x82369c32, 0xea9493}, - {0x82369c33, 0xea9494}, - {0x82369c34, 0xea9495}, - {0x82369c35, 0xea9496}, - {0x82369c36, 0xea9497}, - {0x82369c37, 0xea9498}, - {0x82369c38, 0xea9499}, - {0x82369c39, 0xea949a}, - {0x82369d30, 0xea949b}, - {0x82369d31, 0xea949c}, - {0x82369d32, 0xea949d}, - {0x82369d33, 0xea949e}, - {0x82369d34, 0xea949f}, - {0x82369d35, 0xea94a0}, - {0x82369d36, 0xea94a1}, - {0x82369d37, 0xea94a2}, - {0x82369d38, 0xea94a3}, - {0x82369d39, 0xea94a4}, - {0x82369e30, 0xea94a5}, - {0x82369e31, 0xea94a6}, - {0x82369e32, 0xea94a7}, - {0x82369e33, 0xea94a8}, - {0x82369e34, 0xea94a9}, - {0x82369e35, 0xea94aa}, - {0x82369e36, 0xea94ab}, - {0x82369e37, 0xea94ac}, - {0x82369e38, 0xea94ad}, - {0x82369e39, 0xea94ae}, - {0x82369f30, 0xea94af}, - {0x82369f31, 0xea94b0}, - {0x82369f32, 0xea94b1}, - {0x82369f33, 0xea94b2}, - {0x82369f34, 0xea94b3}, - {0x82369f35, 0xea94b4}, - {0x82369f36, 0xea94b5}, - {0x82369f37, 0xea94b6}, - {0x82369f38, 0xea94b7}, - {0x82369f39, 0xea94b8}, - {0x8236a030, 0xea94b9}, - {0x8236a031, 0xea94ba}, - {0x8236a032, 0xea94bb}, - {0x8236a033, 0xea94bc}, - {0x8236a034, 0xea94bd}, - {0x8236a035, 0xea94be}, - {0x8236a036, 0xea94bf}, - {0x8236a037, 0xea9580}, - {0x8236a038, 0xea9581}, - {0x8236a039, 0xea9582}, - {0x8236a130, 0xea9583}, - {0x8236a131, 0xea9584}, - {0x8236a132, 0xea9585}, - {0x8236a133, 0xea9586}, - {0x8236a134, 0xea9587}, - {0x8236a135, 0xea9588}, - {0x8236a136, 0xea9589}, - {0x8236a137, 0xea958a}, - {0x8236a138, 0xea958b}, - {0x8236a139, 0xea958c}, - {0x8236a230, 0xea958d}, - {0x8236a231, 0xea958e}, - {0x8236a232, 0xea958f}, - {0x8236a233, 0xea9590}, - {0x8236a234, 0xea9591}, - {0x8236a235, 0xea9592}, - {0x8236a236, 0xea9593}, - {0x8236a237, 0xea9594}, - {0x8236a238, 0xea9595}, - {0x8236a239, 0xea9596}, - {0x8236a330, 0xea9597}, - {0x8236a331, 0xea9598}, - {0x8236a332, 0xea9599}, - {0x8236a333, 0xea959a}, - {0x8236a334, 0xea959b}, - {0x8236a335, 0xea959c}, - {0x8236a336, 0xea959d}, - {0x8236a337, 0xea959e}, - {0x8236a338, 0xea959f}, - {0x8236a339, 0xea95a0}, - {0x8236a430, 0xea95a1}, - {0x8236a431, 0xea95a2}, - {0x8236a432, 0xea95a3}, - {0x8236a433, 0xea95a4}, - {0x8236a434, 0xea95a5}, - {0x8236a435, 0xea95a6}, - {0x8236a436, 0xea95a7}, - {0x8236a437, 0xea95a8}, - {0x8236a438, 0xea95a9}, - {0x8236a439, 0xea95aa}, - {0x8236a530, 0xea95ab}, - {0x8236a531, 0xea95ac}, - {0x8236a532, 0xea95ad}, - {0x8236a533, 0xea95ae}, - {0x8236a534, 0xea95af}, - {0x8236a535, 0xea95b0}, - {0x8236a536, 0xea95b1}, - {0x8236a537, 0xea95b2}, - {0x8236a538, 0xea95b3}, - {0x8236a539, 0xea95b4}, - {0x8236a630, 0xea95b5}, - {0x8236a631, 0xea95b6}, - {0x8236a632, 0xea95b7}, - {0x8236a633, 0xea95b8}, - {0x8236a634, 0xea95b9}, - {0x8236a635, 0xea95ba}, - {0x8236a636, 0xea95bb}, - {0x8236a637, 0xea95bc}, - {0x8236a638, 0xea95bd}, - {0x8236a639, 0xea95be}, - {0x8236a730, 0xea95bf}, - {0x8236a731, 0xea9680}, - {0x8236a732, 0xea9681}, - {0x8236a733, 0xea9682}, - {0x8236a734, 0xea9683}, - {0x8236a735, 0xea9684}, - {0x8236a736, 0xea9685}, - {0x8236a737, 0xea9686}, - {0x8236a738, 0xea9687}, - {0x8236a739, 0xea9688}, - {0x8236a830, 0xea9689}, - {0x8236a831, 0xea968a}, - {0x8236a832, 0xea968b}, - {0x8236a833, 0xea968c}, - {0x8236a834, 0xea968d}, - {0x8236a835, 0xea968e}, - {0x8236a836, 0xea968f}, - {0x8236a837, 0xea9690}, - {0x8236a838, 0xea9691}, - {0x8236a839, 0xea9692}, - {0x8236a930, 0xea9693}, - {0x8236a931, 0xea9694}, - {0x8236a932, 0xea9695}, - {0x8236a933, 0xea9696}, - {0x8236a934, 0xea9697}, - {0x8236a935, 0xea9698}, - {0x8236a936, 0xea9699}, - {0x8236a937, 0xea969a}, - {0x8236a938, 0xea969b}, - {0x8236a939, 0xea969c}, - {0x8236aa30, 0xea969d}, - {0x8236aa31, 0xea969e}, - {0x8236aa32, 0xea969f}, - {0x8236aa33, 0xea96a0}, - {0x8236aa34, 0xea96a1}, - {0x8236aa35, 0xea96a2}, - {0x8236aa36, 0xea96a3}, - {0x8236aa37, 0xea96a4}, - {0x8236aa38, 0xea96a5}, - {0x8236aa39, 0xea96a6}, - {0x8236ab30, 0xea96a7}, - {0x8236ab31, 0xea96a8}, - {0x8236ab32, 0xea96a9}, - {0x8236ab33, 0xea96aa}, - {0x8236ab34, 0xea96ab}, - {0x8236ab35, 0xea96ac}, - {0x8236ab36, 0xea96ad}, - {0x8236ab37, 0xea96ae}, - {0x8236ab38, 0xea96af}, - {0x8236ab39, 0xea96b0}, - {0x8236ac30, 0xea96b1}, - {0x8236ac31, 0xea96b2}, - {0x8236ac32, 0xea96b3}, - {0x8236ac33, 0xea96b4}, - {0x8236ac34, 0xea96b5}, - {0x8236ac35, 0xea96b6}, - {0x8236ac36, 0xea96b7}, - {0x8236ac37, 0xea96b8}, - {0x8236ac38, 0xea96b9}, - {0x8236ac39, 0xea96ba}, - {0x8236ad30, 0xea96bb}, - {0x8236ad31, 0xea96bc}, - {0x8236ad32, 0xea96bd}, - {0x8236ad33, 0xea96be}, - {0x8236ad34, 0xea96bf}, - {0x8236ad35, 0xea9780}, - {0x8236ad36, 0xea9781}, - {0x8236ad37, 0xea9782}, - {0x8236ad38, 0xea9783}, - {0x8236ad39, 0xea9784}, - {0x8236ae30, 0xea9785}, - {0x8236ae31, 0xea9786}, - {0x8236ae32, 0xea9787}, - {0x8236ae33, 0xea9788}, - {0x8236ae34, 0xea9789}, - {0x8236ae35, 0xea978a}, - {0x8236ae36, 0xea978b}, - {0x8236ae37, 0xea978c}, - {0x8236ae38, 0xea978d}, - {0x8236ae39, 0xea978e}, - {0x8236af30, 0xea978f}, - {0x8236af31, 0xea9790}, - {0x8236af32, 0xea9791}, - {0x8236af33, 0xea9792}, - {0x8236af34, 0xea9793}, - {0x8236af35, 0xea9794}, - {0x8236af36, 0xea9795}, - {0x8236af37, 0xea9796}, - {0x8236af38, 0xea9797}, - {0x8236af39, 0xea9798}, - {0x8236b030, 0xea9799}, - {0x8236b031, 0xea979a}, - {0x8236b032, 0xea979b}, - {0x8236b033, 0xea979c}, - {0x8236b034, 0xea979d}, - {0x8236b035, 0xea979e}, - {0x8236b036, 0xea979f}, - {0x8236b037, 0xea97a0}, - {0x8236b038, 0xea97a1}, - {0x8236b039, 0xea97a2}, - {0x8236b130, 0xea97a3}, - {0x8236b131, 0xea97a4}, - {0x8236b132, 0xea97a5}, - {0x8236b133, 0xea97a6}, - {0x8236b134, 0xea97a7}, - {0x8236b135, 0xea97a8}, - {0x8236b136, 0xea97a9}, - {0x8236b137, 0xea97aa}, - {0x8236b138, 0xea97ab}, - {0x8236b139, 0xea97ac}, - {0x8236b230, 0xea97ad}, - {0x8236b231, 0xea97ae}, - {0x8236b232, 0xea97af}, - {0x8236b233, 0xea97b0}, - {0x8236b234, 0xea97b1}, - {0x8236b235, 0xea97b2}, - {0x8236b236, 0xea97b3}, - {0x8236b237, 0xea97b4}, - {0x8236b238, 0xea97b5}, - {0x8236b239, 0xea97b6}, - {0x8236b330, 0xea97b7}, - {0x8236b331, 0xea97b8}, - {0x8236b332, 0xea97b9}, - {0x8236b333, 0xea97ba}, - {0x8236b334, 0xea97bb}, - {0x8236b335, 0xea97bc}, - {0x8236b336, 0xea97bd}, - {0x8236b337, 0xea97be}, - {0x8236b338, 0xea97bf}, - {0x8236b339, 0xea9880}, - {0x8236b430, 0xea9881}, - {0x8236b431, 0xea9882}, - {0x8236b432, 0xea9883}, - {0x8236b433, 0xea9884}, - {0x8236b434, 0xea9885}, - {0x8236b435, 0xea9886}, - {0x8236b436, 0xea9887}, - {0x8236b437, 0xea9888}, - {0x8236b438, 0xea9889}, - {0x8236b439, 0xea988a}, - {0x8236b530, 0xea988b}, - {0x8236b531, 0xea988c}, - {0x8236b532, 0xea988d}, - {0x8236b533, 0xea988e}, - {0x8236b534, 0xea988f}, - {0x8236b535, 0xea9890}, - {0x8236b536, 0xea9891}, - {0x8236b537, 0xea9892}, - {0x8236b538, 0xea9893}, - {0x8236b539, 0xea9894}, - {0x8236b630, 0xea9895}, - {0x8236b631, 0xea9896}, - {0x8236b632, 0xea9897}, - {0x8236b633, 0xea9898}, - {0x8236b634, 0xea9899}, - {0x8236b635, 0xea989a}, - {0x8236b636, 0xea989b}, - {0x8236b637, 0xea989c}, - {0x8236b638, 0xea989d}, - {0x8236b639, 0xea989e}, - {0x8236b730, 0xea989f}, - {0x8236b731, 0xea98a0}, - {0x8236b732, 0xea98a1}, - {0x8236b733, 0xea98a2}, - {0x8236b734, 0xea98a3}, - {0x8236b735, 0xea98a4}, - {0x8236b736, 0xea98a5}, - {0x8236b737, 0xea98a6}, - {0x8236b738, 0xea98a7}, - {0x8236b739, 0xea98a8}, - {0x8236b830, 0xea98a9}, - {0x8236b831, 0xea98aa}, - {0x8236b832, 0xea98ab}, - {0x8236b833, 0xea98ac}, - {0x8236b834, 0xea98ad}, - {0x8236b835, 0xea98ae}, - {0x8236b836, 0xea98af}, - {0x8236b837, 0xea98b0}, - {0x8236b838, 0xea98b1}, - {0x8236b839, 0xea98b2}, - {0x8236b930, 0xea98b3}, - {0x8236b931, 0xea98b4}, - {0x8236b932, 0xea98b5}, - {0x8236b933, 0xea98b6}, - {0x8236b934, 0xea98b7}, - {0x8236b935, 0xea98b8}, - {0x8236b936, 0xea98b9}, - {0x8236b937, 0xea98ba}, - {0x8236b938, 0xea98bb}, - {0x8236b939, 0xea98bc}, - {0x8236ba30, 0xea98bd}, - {0x8236ba31, 0xea98be}, - {0x8236ba32, 0xea98bf}, - {0x8236ba33, 0xea9980}, - {0x8236ba34, 0xea9981}, - {0x8236ba35, 0xea9982}, - {0x8236ba36, 0xea9983}, - {0x8236ba37, 0xea9984}, - {0x8236ba38, 0xea9985}, - {0x8236ba39, 0xea9986}, - {0x8236bb30, 0xea9987}, - {0x8236bb31, 0xea9988}, - {0x8236bb32, 0xea9989}, - {0x8236bb33, 0xea998a}, - {0x8236bb34, 0xea998b}, - {0x8236bb35, 0xea998c}, - {0x8236bb36, 0xea998d}, - {0x8236bb37, 0xea998e}, - {0x8236bb38, 0xea998f}, - {0x8236bb39, 0xea9990}, - {0x8236bc30, 0xea9991}, - {0x8236bc31, 0xea9992}, - {0x8236bc32, 0xea9993}, - {0x8236bc33, 0xea9994}, - {0x8236bc34, 0xea9995}, - {0x8236bc35, 0xea9996}, - {0x8236bc36, 0xea9997}, - {0x8236bc37, 0xea9998}, - {0x8236bc38, 0xea9999}, - {0x8236bc39, 0xea999a}, - {0x8236bd30, 0xea999b}, - {0x8236bd31, 0xea999c}, - {0x8236bd32, 0xea999d}, - {0x8236bd33, 0xea999e}, - {0x8236bd34, 0xea999f}, - {0x8236bd35, 0xea99a0}, - {0x8236bd36, 0xea99a1}, - {0x8236bd37, 0xea99a2}, - {0x8236bd38, 0xea99a3}, - {0x8236bd39, 0xea99a4}, - {0x8236be30, 0xea99a5}, - {0x8236be31, 0xea99a6}, - {0x8236be32, 0xea99a7}, - {0x8236be33, 0xea99a8}, - {0x8236be34, 0xea99a9}, - {0x8236be35, 0xea99aa}, - {0x8236be36, 0xea99ab}, - {0x8236be37, 0xea99ac}, - {0x8236be38, 0xea99ad}, - {0x8236be39, 0xea99ae}, - {0x8236bf30, 0xea99af}, - {0x8236bf31, 0xea99b0}, - {0x8236bf32, 0xea99b1}, - {0x8236bf33, 0xea99b2}, - {0x8236bf34, 0xea99b3}, - {0x8236bf35, 0xea99b4}, - {0x8236bf36, 0xea99b5}, - {0x8236bf37, 0xea99b6}, - {0x8236bf38, 0xea99b7}, - {0x8236bf39, 0xea99b8}, - {0x8236c030, 0xea99b9}, - {0x8236c031, 0xea99ba}, - {0x8236c032, 0xea99bb}, - {0x8236c033, 0xea99bc}, - {0x8236c034, 0xea99bd}, - {0x8236c035, 0xea99be}, - {0x8236c036, 0xea99bf}, - {0x8236c037, 0xea9a80}, - {0x8236c038, 0xea9a81}, - {0x8236c039, 0xea9a82}, - {0x8236c130, 0xea9a83}, - {0x8236c131, 0xea9a84}, - {0x8236c132, 0xea9a85}, - {0x8236c133, 0xea9a86}, - {0x8236c134, 0xea9a87}, - {0x8236c135, 0xea9a88}, - {0x8236c136, 0xea9a89}, - {0x8236c137, 0xea9a8a}, - {0x8236c138, 0xea9a8b}, - {0x8236c139, 0xea9a8c}, - {0x8236c230, 0xea9a8d}, - {0x8236c231, 0xea9a8e}, - {0x8236c232, 0xea9a8f}, - {0x8236c233, 0xea9a90}, - {0x8236c234, 0xea9a91}, - {0x8236c235, 0xea9a92}, - {0x8236c236, 0xea9a93}, - {0x8236c237, 0xea9a94}, - {0x8236c238, 0xea9a95}, - {0x8236c239, 0xea9a96}, - {0x8236c330, 0xea9a97}, - {0x8236c331, 0xea9a98}, - {0x8236c332, 0xea9a99}, - {0x8236c333, 0xea9a9a}, - {0x8236c334, 0xea9a9b}, - {0x8236c335, 0xea9a9c}, - {0x8236c336, 0xea9a9d}, - {0x8236c337, 0xea9a9e}, - {0x8236c338, 0xea9a9f}, - {0x8236c339, 0xea9aa0}, - {0x8236c430, 0xea9aa1}, - {0x8236c431, 0xea9aa2}, - {0x8236c432, 0xea9aa3}, - {0x8236c433, 0xea9aa4}, - {0x8236c434, 0xea9aa5}, - {0x8236c435, 0xea9aa6}, - {0x8236c436, 0xea9aa7}, - {0x8236c437, 0xea9aa8}, - {0x8236c438, 0xea9aa9}, - {0x8236c439, 0xea9aaa}, - {0x8236c530, 0xea9aab}, - {0x8236c531, 0xea9aac}, - {0x8236c532, 0xea9aad}, - {0x8236c533, 0xea9aae}, - {0x8236c534, 0xea9aaf}, - {0x8236c535, 0xea9ab0}, - {0x8236c536, 0xea9ab1}, - {0x8236c537, 0xea9ab2}, - {0x8236c538, 0xea9ab3}, - {0x8236c539, 0xea9ab4}, - {0x8236c630, 0xea9ab5}, - {0x8236c631, 0xea9ab6}, - {0x8236c632, 0xea9ab7}, - {0x8236c633, 0xea9ab8}, - {0x8236c634, 0xea9ab9}, - {0x8236c635, 0xea9aba}, - {0x8236c636, 0xea9abb}, - {0x8236c637, 0xea9abc}, - {0x8236c638, 0xea9abd}, - {0x8236c639, 0xea9abe}, - {0x8236c730, 0xea9abf}, - {0x8236c731, 0xea9b80}, - {0x8236c732, 0xea9b81}, - {0x8236c733, 0xea9b82}, - {0x8236c734, 0xea9b83}, - {0x8236c735, 0xea9b84}, - {0x8236c736, 0xea9b85}, - {0x8236c737, 0xea9b86}, - {0x8236c738, 0xea9b87}, - {0x8236c739, 0xea9b88}, - {0x8236c830, 0xea9b89}, - {0x8236c831, 0xea9b8a}, - {0x8236c832, 0xea9b8b}, - {0x8236c833, 0xea9b8c}, - {0x8236c834, 0xea9b8d}, - {0x8236c835, 0xea9b8e}, - {0x8236c836, 0xea9b8f}, - {0x8236c837, 0xea9b90}, - {0x8236c838, 0xea9b91}, - {0x8236c839, 0xea9b92}, - {0x8236c930, 0xea9b93}, - {0x8236c931, 0xea9b94}, - {0x8236c932, 0xea9b95}, - {0x8236c933, 0xea9b96}, - {0x8236c934, 0xea9b97}, - {0x8236c935, 0xea9b98}, - {0x8236c936, 0xea9b99}, - {0x8236c937, 0xea9b9a}, - {0x8236c938, 0xea9b9b}, - {0x8236c939, 0xea9b9c}, - {0x8236ca30, 0xea9b9d}, - {0x8236ca31, 0xea9b9e}, - {0x8236ca32, 0xea9b9f}, - {0x8236ca33, 0xea9ba0}, - {0x8236ca34, 0xea9ba1}, - {0x8236ca35, 0xea9ba2}, - {0x8236ca36, 0xea9ba3}, - {0x8236ca37, 0xea9ba4}, - {0x8236ca38, 0xea9ba5}, - {0x8236ca39, 0xea9ba6}, - {0x8236cb30, 0xea9ba7}, - {0x8236cb31, 0xea9ba8}, - {0x8236cb32, 0xea9ba9}, - {0x8236cb33, 0xea9baa}, - {0x8236cb34, 0xea9bab}, - {0x8236cb35, 0xea9bac}, - {0x8236cb36, 0xea9bad}, - {0x8236cb37, 0xea9bae}, - {0x8236cb38, 0xea9baf}, - {0x8236cb39, 0xea9bb0}, - {0x8236cc30, 0xea9bb1}, - {0x8236cc31, 0xea9bb2}, - {0x8236cc32, 0xea9bb3}, - {0x8236cc33, 0xea9bb4}, - {0x8236cc34, 0xea9bb5}, - {0x8236cc35, 0xea9bb6}, - {0x8236cc36, 0xea9bb7}, - {0x8236cc37, 0xea9bb8}, - {0x8236cc38, 0xea9bb9}, - {0x8236cc39, 0xea9bba}, - {0x8236cd30, 0xea9bbb}, - {0x8236cd31, 0xea9bbc}, - {0x8236cd32, 0xea9bbd}, - {0x8236cd33, 0xea9bbe}, - {0x8236cd34, 0xea9bbf}, - {0x8236cd35, 0xea9c80}, - {0x8236cd36, 0xea9c81}, - {0x8236cd37, 0xea9c82}, - {0x8236cd38, 0xea9c83}, - {0x8236cd39, 0xea9c84}, - {0x8236ce30, 0xea9c85}, - {0x8236ce31, 0xea9c86}, - {0x8236ce32, 0xea9c87}, - {0x8236ce33, 0xea9c88}, - {0x8236ce34, 0xea9c89}, - {0x8236ce35, 0xea9c8a}, - {0x8236ce36, 0xea9c8b}, - {0x8236ce37, 0xea9c8c}, - {0x8236ce38, 0xea9c8d}, - {0x8236ce39, 0xea9c8e}, - {0x8236cf30, 0xea9c8f}, - {0x8236cf31, 0xea9c90}, - {0x8236cf32, 0xea9c91}, - {0x8236cf33, 0xea9c92}, - {0x8236cf34, 0xea9c93}, - {0x8236cf35, 0xea9c94}, - {0x8236cf36, 0xea9c95}, - {0x8236cf37, 0xea9c96}, - {0x8236cf38, 0xea9c97}, - {0x8236cf39, 0xea9c98}, - {0x8236d030, 0xea9c99}, - {0x8236d031, 0xea9c9a}, - {0x8236d032, 0xea9c9b}, - {0x8236d033, 0xea9c9c}, - {0x8236d034, 0xea9c9d}, - {0x8236d035, 0xea9c9e}, - {0x8236d036, 0xea9c9f}, - {0x8236d037, 0xea9ca0}, - {0x8236d038, 0xea9ca1}, - {0x8236d039, 0xea9ca2}, - {0x8236d130, 0xea9ca3}, - {0x8236d131, 0xea9ca4}, - {0x8236d132, 0xea9ca5}, - {0x8236d133, 0xea9ca6}, - {0x8236d134, 0xea9ca7}, - {0x8236d135, 0xea9ca8}, - {0x8236d136, 0xea9ca9}, - {0x8236d137, 0xea9caa}, - {0x8236d138, 0xea9cab}, - {0x8236d139, 0xea9cac}, - {0x8236d230, 0xea9cad}, - {0x8236d231, 0xea9cae}, - {0x8236d232, 0xea9caf}, - {0x8236d233, 0xea9cb0}, - {0x8236d234, 0xea9cb1}, - {0x8236d235, 0xea9cb2}, - {0x8236d236, 0xea9cb3}, - {0x8236d237, 0xea9cb4}, - {0x8236d238, 0xea9cb5}, - {0x8236d239, 0xea9cb6}, - {0x8236d330, 0xea9cb7}, - {0x8236d331, 0xea9cb8}, - {0x8236d332, 0xea9cb9}, - {0x8236d333, 0xea9cba}, - {0x8236d334, 0xea9cbb}, - {0x8236d335, 0xea9cbc}, - {0x8236d336, 0xea9cbd}, - {0x8236d337, 0xea9cbe}, - {0x8236d338, 0xea9cbf}, - {0x8236d339, 0xea9d80}, - {0x8236d430, 0xea9d81}, - {0x8236d431, 0xea9d82}, - {0x8236d432, 0xea9d83}, - {0x8236d433, 0xea9d84}, - {0x8236d434, 0xea9d85}, - {0x8236d435, 0xea9d86}, - {0x8236d436, 0xea9d87}, - {0x8236d437, 0xea9d88}, - {0x8236d438, 0xea9d89}, - {0x8236d439, 0xea9d8a}, - {0x8236d530, 0xea9d8b}, - {0x8236d531, 0xea9d8c}, - {0x8236d532, 0xea9d8d}, - {0x8236d533, 0xea9d8e}, - {0x8236d534, 0xea9d8f}, - {0x8236d535, 0xea9d90}, - {0x8236d536, 0xea9d91}, - {0x8236d537, 0xea9d92}, - {0x8236d538, 0xea9d93}, - {0x8236d539, 0xea9d94}, - {0x8236d630, 0xea9d95}, - {0x8236d631, 0xea9d96}, - {0x8236d632, 0xea9d97}, - {0x8236d633, 0xea9d98}, - {0x8236d634, 0xea9d99}, - {0x8236d635, 0xea9d9a}, - {0x8236d636, 0xea9d9b}, - {0x8236d637, 0xea9d9c}, - {0x8236d638, 0xea9d9d}, - {0x8236d639, 0xea9d9e}, - {0x8236d730, 0xea9d9f}, - {0x8236d731, 0xea9da0}, - {0x8236d732, 0xea9da1}, - {0x8236d733, 0xea9da2}, - {0x8236d734, 0xea9da3}, - {0x8236d735, 0xea9da4}, - {0x8236d736, 0xea9da5}, - {0x8236d737, 0xea9da6}, - {0x8236d738, 0xea9da7}, - {0x8236d739, 0xea9da8}, - {0x8236d830, 0xea9da9}, - {0x8236d831, 0xea9daa}, - {0x8236d832, 0xea9dab}, - {0x8236d833, 0xea9dac}, - {0x8236d834, 0xea9dad}, - {0x8236d835, 0xea9dae}, - {0x8236d836, 0xea9daf}, - {0x8236d837, 0xea9db0}, - {0x8236d838, 0xea9db1}, - {0x8236d839, 0xea9db2}, - {0x8236d930, 0xea9db3}, - {0x8236d931, 0xea9db4}, - {0x8236d932, 0xea9db5}, - {0x8236d933, 0xea9db6}, - {0x8236d934, 0xea9db7}, - {0x8236d935, 0xea9db8}, - {0x8236d936, 0xea9db9}, - {0x8236d937, 0xea9dba}, - {0x8236d938, 0xea9dbb}, - {0x8236d939, 0xea9dbc}, - {0x8236da30, 0xea9dbd}, - {0x8236da31, 0xea9dbe}, - {0x8236da32, 0xea9dbf}, - {0x8236da33, 0xea9e80}, - {0x8236da34, 0xea9e81}, - {0x8236da35, 0xea9e82}, - {0x8236da36, 0xea9e83}, - {0x8236da37, 0xea9e84}, - {0x8236da38, 0xea9e85}, - {0x8236da39, 0xea9e86}, - {0x8236db30, 0xea9e87}, - {0x8236db31, 0xea9e88}, - {0x8236db32, 0xea9e89}, - {0x8236db33, 0xea9e8a}, - {0x8236db34, 0xea9e8b}, - {0x8236db35, 0xea9e8c}, - {0x8236db36, 0xea9e8d}, - {0x8236db37, 0xea9e8e}, - {0x8236db38, 0xea9e8f}, - {0x8236db39, 0xea9e90}, - {0x8236dc30, 0xea9e91}, - {0x8236dc31, 0xea9e92}, - {0x8236dc32, 0xea9e93}, - {0x8236dc33, 0xea9e94}, - {0x8236dc34, 0xea9e95}, - {0x8236dc35, 0xea9e96}, - {0x8236dc36, 0xea9e97}, - {0x8236dc37, 0xea9e98}, - {0x8236dc38, 0xea9e99}, - {0x8236dc39, 0xea9e9a}, - {0x8236dd30, 0xea9e9b}, - {0x8236dd31, 0xea9e9c}, - {0x8236dd32, 0xea9e9d}, - {0x8236dd33, 0xea9e9e}, - {0x8236dd34, 0xea9e9f}, - {0x8236dd35, 0xea9ea0}, - {0x8236dd36, 0xea9ea1}, - {0x8236dd37, 0xea9ea2}, - {0x8236dd38, 0xea9ea3}, - {0x8236dd39, 0xea9ea4}, - {0x8236de30, 0xea9ea5}, - {0x8236de31, 0xea9ea6}, - {0x8236de32, 0xea9ea7}, - {0x8236de33, 0xea9ea8}, - {0x8236de34, 0xea9ea9}, - {0x8236de35, 0xea9eaa}, - {0x8236de36, 0xea9eab}, - {0x8236de37, 0xea9eac}, - {0x8236de38, 0xea9ead}, - {0x8236de39, 0xea9eae}, - {0x8236df30, 0xea9eaf}, - {0x8236df31, 0xea9eb0}, - {0x8236df32, 0xea9eb1}, - {0x8236df33, 0xea9eb2}, - {0x8236df34, 0xea9eb3}, - {0x8236df35, 0xea9eb4}, - {0x8236df36, 0xea9eb5}, - {0x8236df37, 0xea9eb6}, - {0x8236df38, 0xea9eb7}, - {0x8236df39, 0xea9eb8}, - {0x8236e030, 0xea9eb9}, - {0x8236e031, 0xea9eba}, - {0x8236e032, 0xea9ebb}, - {0x8236e033, 0xea9ebc}, - {0x8236e034, 0xea9ebd}, - {0x8236e035, 0xea9ebe}, - {0x8236e036, 0xea9ebf}, - {0x8236e037, 0xea9f80}, - {0x8236e038, 0xea9f81}, - {0x8236e039, 0xea9f82}, - {0x8236e130, 0xea9f83}, - {0x8236e131, 0xea9f84}, - {0x8236e132, 0xea9f85}, - {0x8236e133, 0xea9f86}, - {0x8236e134, 0xea9f87}, - {0x8236e135, 0xea9f88}, - {0x8236e136, 0xea9f89}, - {0x8236e137, 0xea9f8a}, - {0x8236e138, 0xea9f8b}, - {0x8236e139, 0xea9f8c}, - {0x8236e230, 0xea9f8d}, - {0x8236e231, 0xea9f8e}, - {0x8236e232, 0xea9f8f}, - {0x8236e233, 0xea9f90}, - {0x8236e234, 0xea9f91}, - {0x8236e235, 0xea9f92}, - {0x8236e236, 0xea9f93}, - {0x8236e237, 0xea9f94}, - {0x8236e238, 0xea9f95}, - {0x8236e239, 0xea9f96}, - {0x8236e330, 0xea9f97}, - {0x8236e331, 0xea9f98}, - {0x8236e332, 0xea9f99}, - {0x8236e333, 0xea9f9a}, - {0x8236e334, 0xea9f9b}, - {0x8236e335, 0xea9f9c}, - {0x8236e336, 0xea9f9d}, - {0x8236e337, 0xea9f9e}, - {0x8236e338, 0xea9f9f}, - {0x8236e339, 0xea9fa0}, - {0x8236e430, 0xea9fa1}, - {0x8236e431, 0xea9fa2}, - {0x8236e432, 0xea9fa3}, - {0x8236e433, 0xea9fa4}, - {0x8236e434, 0xea9fa5}, - {0x8236e435, 0xea9fa6}, - {0x8236e436, 0xea9fa7}, - {0x8236e437, 0xea9fa8}, - {0x8236e438, 0xea9fa9}, - {0x8236e439, 0xea9faa}, - {0x8236e530, 0xea9fab}, - {0x8236e531, 0xea9fac}, - {0x8236e532, 0xea9fad}, - {0x8236e533, 0xea9fae}, - {0x8236e534, 0xea9faf}, - {0x8236e535, 0xea9fb0}, - {0x8236e536, 0xea9fb1}, - {0x8236e537, 0xea9fb2}, - {0x8236e538, 0xea9fb3}, - {0x8236e539, 0xea9fb4}, - {0x8236e630, 0xea9fb5}, - {0x8236e631, 0xea9fb6}, - {0x8236e632, 0xea9fb7}, - {0x8236e633, 0xea9fb8}, - {0x8236e634, 0xea9fb9}, - {0x8236e635, 0xea9fba}, - {0x8236e636, 0xea9fbb}, - {0x8236e637, 0xea9fbc}, - {0x8236e638, 0xea9fbd}, - {0x8236e639, 0xea9fbe}, - {0x8236e730, 0xea9fbf}, - {0x8236e731, 0xeaa080}, - {0x8236e732, 0xeaa081}, - {0x8236e733, 0xeaa082}, - {0x8236e734, 0xeaa083}, - {0x8236e735, 0xeaa084}, - {0x8236e736, 0xeaa085}, - {0x8236e737, 0xeaa086}, - {0x8236e738, 0xeaa087}, - {0x8236e739, 0xeaa088}, - {0x8236e830, 0xeaa089}, - {0x8236e831, 0xeaa08a}, - {0x8236e832, 0xeaa08b}, - {0x8236e833, 0xeaa08c}, - {0x8236e834, 0xeaa08d}, - {0x8236e835, 0xeaa08e}, - {0x8236e836, 0xeaa08f}, - {0x8236e837, 0xeaa090}, - {0x8236e838, 0xeaa091}, - {0x8236e839, 0xeaa092}, - {0x8236e930, 0xeaa093}, - {0x8236e931, 0xeaa094}, - {0x8236e932, 0xeaa095}, - {0x8236e933, 0xeaa096}, - {0x8236e934, 0xeaa097}, - {0x8236e935, 0xeaa098}, - {0x8236e936, 0xeaa099}, - {0x8236e937, 0xeaa09a}, - {0x8236e938, 0xeaa09b}, - {0x8236e939, 0xeaa09c}, - {0x8236ea30, 0xeaa09d}, - {0x8236ea31, 0xeaa09e}, - {0x8236ea32, 0xeaa09f}, - {0x8236ea33, 0xeaa0a0}, - {0x8236ea34, 0xeaa0a1}, - {0x8236ea35, 0xeaa0a2}, - {0x8236ea36, 0xeaa0a3}, - {0x8236ea37, 0xeaa0a4}, - {0x8236ea38, 0xeaa0a5}, - {0x8236ea39, 0xeaa0a6}, - {0x8236eb30, 0xeaa0a7}, - {0x8236eb31, 0xeaa0a8}, - {0x8236eb32, 0xeaa0a9}, - {0x8236eb33, 0xeaa0aa}, - {0x8236eb34, 0xeaa0ab}, - {0x8236eb35, 0xeaa0ac}, - {0x8236eb36, 0xeaa0ad}, - {0x8236eb37, 0xeaa0ae}, - {0x8236eb38, 0xeaa0af}, - {0x8236eb39, 0xeaa0b0}, - {0x8236ec30, 0xeaa0b1}, - {0x8236ec31, 0xeaa0b2}, - {0x8236ec32, 0xeaa0b3}, - {0x8236ec33, 0xeaa0b4}, - {0x8236ec34, 0xeaa0b5}, - {0x8236ec35, 0xeaa0b6}, - {0x8236ec36, 0xeaa0b7}, - {0x8236ec37, 0xeaa0b8}, - {0x8236ec38, 0xeaa0b9}, - {0x8236ec39, 0xeaa0ba}, - {0x8236ed30, 0xeaa0bb}, - {0x8236ed31, 0xeaa0bc}, - {0x8236ed32, 0xeaa0bd}, - {0x8236ed33, 0xeaa0be}, - {0x8236ed34, 0xeaa0bf}, - {0x8236ed35, 0xeaa180}, - {0x8236ed36, 0xeaa181}, - {0x8236ed37, 0xeaa182}, - {0x8236ed38, 0xeaa183}, - {0x8236ed39, 0xeaa184}, - {0x8236ee30, 0xeaa185}, - {0x8236ee31, 0xeaa186}, - {0x8236ee32, 0xeaa187}, - {0x8236ee33, 0xeaa188}, - {0x8236ee34, 0xeaa189}, - {0x8236ee35, 0xeaa18a}, - {0x8236ee36, 0xeaa18b}, - {0x8236ee37, 0xeaa18c}, - {0x8236ee38, 0xeaa18d}, - {0x8236ee39, 0xeaa18e}, - {0x8236ef30, 0xeaa18f}, - {0x8236ef31, 0xeaa190}, - {0x8236ef32, 0xeaa191}, - {0x8236ef33, 0xeaa192}, - {0x8236ef34, 0xeaa193}, - {0x8236ef35, 0xeaa194}, - {0x8236ef36, 0xeaa195}, - {0x8236ef37, 0xeaa196}, - {0x8236ef38, 0xeaa197}, - {0x8236ef39, 0xeaa198}, - {0x8236f030, 0xeaa199}, - {0x8236f031, 0xeaa19a}, - {0x8236f032, 0xeaa19b}, - {0x8236f033, 0xeaa19c}, - {0x8236f034, 0xeaa19d}, - {0x8236f035, 0xeaa19e}, - {0x8236f036, 0xeaa19f}, - {0x8236f037, 0xeaa1a0}, - {0x8236f038, 0xeaa1a1}, - {0x8236f039, 0xeaa1a2}, - {0x8236f130, 0xeaa1a3}, - {0x8236f131, 0xeaa1a4}, - {0x8236f132, 0xeaa1a5}, - {0x8236f133, 0xeaa1a6}, - {0x8236f134, 0xeaa1a7}, - {0x8236f135, 0xeaa1a8}, - {0x8236f136, 0xeaa1a9}, - {0x8236f137, 0xeaa1aa}, - {0x8236f138, 0xeaa1ab}, - {0x8236f139, 0xeaa1ac}, - {0x8236f230, 0xeaa1ad}, - {0x8236f231, 0xeaa1ae}, - {0x8236f232, 0xeaa1af}, - {0x8236f233, 0xeaa1b0}, - {0x8236f234, 0xeaa1b1}, - {0x8236f235, 0xeaa1b2}, - {0x8236f236, 0xeaa1b3}, - {0x8236f237, 0xeaa1b4}, - {0x8236f238, 0xeaa1b5}, - {0x8236f239, 0xeaa1b6}, - {0x8236f330, 0xeaa1b7}, - {0x8236f331, 0xeaa1b8}, - {0x8236f332, 0xeaa1b9}, - {0x8236f333, 0xeaa1ba}, - {0x8236f334, 0xeaa1bb}, - {0x8236f335, 0xeaa1bc}, - {0x8236f336, 0xeaa1bd}, - {0x8236f337, 0xeaa1be}, - {0x8236f338, 0xeaa1bf}, - {0x8236f339, 0xeaa280}, - {0x8236f430, 0xeaa281}, - {0x8236f431, 0xeaa282}, - {0x8236f432, 0xeaa283}, - {0x8236f433, 0xeaa284}, - {0x8236f434, 0xeaa285}, - {0x8236f435, 0xeaa286}, - {0x8236f436, 0xeaa287}, - {0x8236f437, 0xeaa288}, - {0x8236f438, 0xeaa289}, - {0x8236f439, 0xeaa28a}, - {0x8236f530, 0xeaa28b}, - {0x8236f531, 0xeaa28c}, - {0x8236f532, 0xeaa28d}, - {0x8236f533, 0xeaa28e}, - {0x8236f534, 0xeaa28f}, - {0x8236f535, 0xeaa290}, - {0x8236f536, 0xeaa291}, - {0x8236f537, 0xeaa292}, - {0x8236f538, 0xeaa293}, - {0x8236f539, 0xeaa294}, - {0x8236f630, 0xeaa295}, - {0x8236f631, 0xeaa296}, - {0x8236f632, 0xeaa297}, - {0x8236f633, 0xeaa298}, - {0x8236f634, 0xeaa299}, - {0x8236f635, 0xeaa29a}, - {0x8236f636, 0xeaa29b}, - {0x8236f637, 0xeaa29c}, - {0x8236f638, 0xeaa29d}, - {0x8236f639, 0xeaa29e}, - {0x8236f730, 0xeaa29f}, - {0x8236f731, 0xeaa2a0}, - {0x8236f732, 0xeaa2a1}, - {0x8236f733, 0xeaa2a2}, - {0x8236f734, 0xeaa2a3}, - {0x8236f735, 0xeaa2a4}, - {0x8236f736, 0xeaa2a5}, - {0x8236f737, 0xeaa2a6}, - {0x8236f738, 0xeaa2a7}, - {0x8236f739, 0xeaa2a8}, - {0x8236f830, 0xeaa2a9}, - {0x8236f831, 0xeaa2aa}, - {0x8236f832, 0xeaa2ab}, - {0x8236f833, 0xeaa2ac}, - {0x8236f834, 0xeaa2ad}, - {0x8236f835, 0xeaa2ae}, - {0x8236f836, 0xeaa2af}, - {0x8236f837, 0xeaa2b0}, - {0x8236f838, 0xeaa2b1}, - {0x8236f839, 0xeaa2b2}, - {0x8236f930, 0xeaa2b3}, - {0x8236f931, 0xeaa2b4}, - {0x8236f932, 0xeaa2b5}, - {0x8236f933, 0xeaa2b6}, - {0x8236f934, 0xeaa2b7}, - {0x8236f935, 0xeaa2b8}, - {0x8236f936, 0xeaa2b9}, - {0x8236f937, 0xeaa2ba}, - {0x8236f938, 0xeaa2bb}, - {0x8236f939, 0xeaa2bc}, - {0x8236fa30, 0xeaa2bd}, - {0x8236fa31, 0xeaa2be}, - {0x8236fa32, 0xeaa2bf}, - {0x8236fa33, 0xeaa380}, - {0x8236fa34, 0xeaa381}, - {0x8236fa35, 0xeaa382}, - {0x8236fa36, 0xeaa383}, - {0x8236fa37, 0xeaa384}, - {0x8236fa38, 0xeaa385}, - {0x8236fa39, 0xeaa386}, - {0x8236fb30, 0xeaa387}, - {0x8236fb31, 0xeaa388}, - {0x8236fb32, 0xeaa389}, - {0x8236fb33, 0xeaa38a}, - {0x8236fb34, 0xeaa38b}, - {0x8236fb35, 0xeaa38c}, - {0x8236fb36, 0xeaa38d}, - {0x8236fb37, 0xeaa38e}, - {0x8236fb38, 0xeaa38f}, - {0x8236fb39, 0xeaa390}, - {0x8236fc30, 0xeaa391}, - {0x8236fc31, 0xeaa392}, - {0x8236fc32, 0xeaa393}, - {0x8236fc33, 0xeaa394}, - {0x8236fc34, 0xeaa395}, - {0x8236fc35, 0xeaa396}, - {0x8236fc36, 0xeaa397}, - {0x8236fc37, 0xeaa398}, - {0x8236fc38, 0xeaa399}, - {0x8236fc39, 0xeaa39a}, - {0x8236fd30, 0xeaa39b}, - {0x8236fd31, 0xeaa39c}, - {0x8236fd32, 0xeaa39d}, - {0x8236fd33, 0xeaa39e}, - {0x8236fd34, 0xeaa39f}, - {0x8236fd35, 0xeaa3a0}, - {0x8236fd36, 0xeaa3a1}, - {0x8236fd37, 0xeaa3a2}, - {0x8236fd38, 0xeaa3a3}, - {0x8236fd39, 0xeaa3a4}, - {0x8236fe30, 0xeaa3a5}, - {0x8236fe31, 0xeaa3a6}, - {0x8236fe32, 0xeaa3a7}, - {0x8236fe33, 0xeaa3a8}, - {0x8236fe34, 0xeaa3a9}, - {0x8236fe35, 0xeaa3aa}, - {0x8236fe36, 0xeaa3ab}, - {0x8236fe37, 0xeaa3ac}, - {0x8236fe38, 0xeaa3ad}, - {0x8236fe39, 0xeaa3ae}, - {0x82378130, 0xeaa3af}, - {0x82378131, 0xeaa3b0}, - {0x82378132, 0xeaa3b1}, - {0x82378133, 0xeaa3b2}, - {0x82378134, 0xeaa3b3}, - {0x82378135, 0xeaa3b4}, - {0x82378136, 0xeaa3b5}, - {0x82378137, 0xeaa3b6}, - {0x82378138, 0xeaa3b7}, - {0x82378139, 0xeaa3b8}, - {0x82378230, 0xeaa3b9}, - {0x82378231, 0xeaa3ba}, - {0x82378232, 0xeaa3bb}, - {0x82378233, 0xeaa3bc}, - {0x82378234, 0xeaa3bd}, - {0x82378235, 0xeaa3be}, - {0x82378236, 0xeaa3bf}, - {0x82378237, 0xeaa480}, - {0x82378238, 0xeaa481}, - {0x82378239, 0xeaa482}, - {0x82378330, 0xeaa483}, - {0x82378331, 0xeaa484}, - {0x82378332, 0xeaa485}, - {0x82378333, 0xeaa486}, - {0x82378334, 0xeaa487}, - {0x82378335, 0xeaa488}, - {0x82378336, 0xeaa489}, - {0x82378337, 0xeaa48a}, - {0x82378338, 0xeaa48b}, - {0x82378339, 0xeaa48c}, - {0x82378430, 0xeaa48d}, - {0x82378431, 0xeaa48e}, - {0x82378432, 0xeaa48f}, - {0x82378433, 0xeaa490}, - {0x82378434, 0xeaa491}, - {0x82378435, 0xeaa492}, - {0x82378436, 0xeaa493}, - {0x82378437, 0xeaa494}, - {0x82378438, 0xeaa495}, - {0x82378439, 0xeaa496}, - {0x82378530, 0xeaa497}, - {0x82378531, 0xeaa498}, - {0x82378532, 0xeaa499}, - {0x82378533, 0xeaa49a}, - {0x82378534, 0xeaa49b}, - {0x82378535, 0xeaa49c}, - {0x82378536, 0xeaa49d}, - {0x82378537, 0xeaa49e}, - {0x82378538, 0xeaa49f}, - {0x82378539, 0xeaa4a0}, - {0x82378630, 0xeaa4a1}, - {0x82378631, 0xeaa4a2}, - {0x82378632, 0xeaa4a3}, - {0x82378633, 0xeaa4a4}, - {0x82378634, 0xeaa4a5}, - {0x82378635, 0xeaa4a6}, - {0x82378636, 0xeaa4a7}, - {0x82378637, 0xeaa4a8}, - {0x82378638, 0xeaa4a9}, - {0x82378639, 0xeaa4aa}, - {0x82378730, 0xeaa4ab}, - {0x82378731, 0xeaa4ac}, - {0x82378732, 0xeaa4ad}, - {0x82378733, 0xeaa4ae}, - {0x82378734, 0xeaa4af}, - {0x82378735, 0xeaa4b0}, - {0x82378736, 0xeaa4b1}, - {0x82378737, 0xeaa4b2}, - {0x82378738, 0xeaa4b3}, - {0x82378739, 0xeaa4b4}, - {0x82378830, 0xeaa4b5}, - {0x82378831, 0xeaa4b6}, - {0x82378832, 0xeaa4b7}, - {0x82378833, 0xeaa4b8}, - {0x82378834, 0xeaa4b9}, - {0x82378835, 0xeaa4ba}, - {0x82378836, 0xeaa4bb}, - {0x82378837, 0xeaa4bc}, - {0x82378838, 0xeaa4bd}, - {0x82378839, 0xeaa4be}, - {0x82378930, 0xeaa4bf}, - {0x82378931, 0xeaa580}, - {0x82378932, 0xeaa581}, - {0x82378933, 0xeaa582}, - {0x82378934, 0xeaa583}, - {0x82378935, 0xeaa584}, - {0x82378936, 0xeaa585}, - {0x82378937, 0xeaa586}, - {0x82378938, 0xeaa587}, - {0x82378939, 0xeaa588}, - {0x82378a30, 0xeaa589}, - {0x82378a31, 0xeaa58a}, - {0x82378a32, 0xeaa58b}, - {0x82378a33, 0xeaa58c}, - {0x82378a34, 0xeaa58d}, - {0x82378a35, 0xeaa58e}, - {0x82378a36, 0xeaa58f}, - {0x82378a37, 0xeaa590}, - {0x82378a38, 0xeaa591}, - {0x82378a39, 0xeaa592}, - {0x82378b30, 0xeaa593}, - {0x82378b31, 0xeaa594}, - {0x82378b32, 0xeaa595}, - {0x82378b33, 0xeaa596}, - {0x82378b34, 0xeaa597}, - {0x82378b35, 0xeaa598}, - {0x82378b36, 0xeaa599}, - {0x82378b37, 0xeaa59a}, - {0x82378b38, 0xeaa59b}, - {0x82378b39, 0xeaa59c}, - {0x82378c30, 0xeaa59d}, - {0x82378c31, 0xeaa59e}, - {0x82378c32, 0xeaa59f}, - {0x82378c33, 0xeaa5a0}, - {0x82378c34, 0xeaa5a1}, - {0x82378c35, 0xeaa5a2}, - {0x82378c36, 0xeaa5a3}, - {0x82378c37, 0xeaa5a4}, - {0x82378c38, 0xeaa5a5}, - {0x82378c39, 0xeaa5a6}, - {0x82378d30, 0xeaa5a7}, - {0x82378d31, 0xeaa5a8}, - {0x82378d32, 0xeaa5a9}, - {0x82378d33, 0xeaa5aa}, - {0x82378d34, 0xeaa5ab}, - {0x82378d35, 0xeaa5ac}, - {0x82378d36, 0xeaa5ad}, - {0x82378d37, 0xeaa5ae}, - {0x82378d38, 0xeaa5af}, - {0x82378d39, 0xeaa5b0}, - {0x82378e30, 0xeaa5b1}, - {0x82378e31, 0xeaa5b2}, - {0x82378e32, 0xeaa5b3}, - {0x82378e33, 0xeaa5b4}, - {0x82378e34, 0xeaa5b5}, - {0x82378e35, 0xeaa5b6}, - {0x82378e36, 0xeaa5b7}, - {0x82378e37, 0xeaa5b8}, - {0x82378e38, 0xeaa5b9}, - {0x82378e39, 0xeaa5ba}, - {0x82378f30, 0xeaa5bb}, - {0x82378f31, 0xeaa5bc}, - {0x82378f32, 0xeaa5bd}, - {0x82378f33, 0xeaa5be}, - {0x82378f34, 0xeaa5bf}, - {0x82378f35, 0xeaa680}, - {0x82378f36, 0xeaa681}, - {0x82378f37, 0xeaa682}, - {0x82378f38, 0xeaa683}, - {0x82378f39, 0xeaa684}, - {0x82379030, 0xeaa685}, - {0x82379031, 0xeaa686}, - {0x82379032, 0xeaa687}, - {0x82379033, 0xeaa688}, - {0x82379034, 0xeaa689}, - {0x82379035, 0xeaa68a}, - {0x82379036, 0xeaa68b}, - {0x82379037, 0xeaa68c}, - {0x82379038, 0xeaa68d}, - {0x82379039, 0xeaa68e}, - {0x82379130, 0xeaa68f}, - {0x82379131, 0xeaa690}, - {0x82379132, 0xeaa691}, - {0x82379133, 0xeaa692}, - {0x82379134, 0xeaa693}, - {0x82379135, 0xeaa694}, - {0x82379136, 0xeaa695}, - {0x82379137, 0xeaa696}, - {0x82379138, 0xeaa697}, - {0x82379139, 0xeaa698}, - {0x82379230, 0xeaa699}, - {0x82379231, 0xeaa69a}, - {0x82379232, 0xeaa69b}, - {0x82379233, 0xeaa69c}, - {0x82379234, 0xeaa69d}, - {0x82379235, 0xeaa69e}, - {0x82379236, 0xeaa69f}, - {0x82379237, 0xeaa6a0}, - {0x82379238, 0xeaa6a1}, - {0x82379239, 0xeaa6a2}, - {0x82379330, 0xeaa6a3}, - {0x82379331, 0xeaa6a4}, - {0x82379332, 0xeaa6a5}, - {0x82379333, 0xeaa6a6}, - {0x82379334, 0xeaa6a7}, - {0x82379335, 0xeaa6a8}, - {0x82379336, 0xeaa6a9}, - {0x82379337, 0xeaa6aa}, - {0x82379338, 0xeaa6ab}, - {0x82379339, 0xeaa6ac}, - {0x82379430, 0xeaa6ad}, - {0x82379431, 0xeaa6ae}, - {0x82379432, 0xeaa6af}, - {0x82379433, 0xeaa6b0}, - {0x82379434, 0xeaa6b1}, - {0x82379435, 0xeaa6b2}, - {0x82379436, 0xeaa6b3}, - {0x82379437, 0xeaa6b4}, - {0x82379438, 0xeaa6b5}, - {0x82379439, 0xeaa6b6}, - {0x82379530, 0xeaa6b7}, - {0x82379531, 0xeaa6b8}, - {0x82379532, 0xeaa6b9}, - {0x82379533, 0xeaa6ba}, - {0x82379534, 0xeaa6bb}, - {0x82379535, 0xeaa6bc}, - {0x82379536, 0xeaa6bd}, - {0x82379537, 0xeaa6be}, - {0x82379538, 0xeaa6bf}, - {0x82379539, 0xeaa780}, - {0x82379630, 0xeaa781}, - {0x82379631, 0xeaa782}, - {0x82379632, 0xeaa783}, - {0x82379633, 0xeaa784}, - {0x82379634, 0xeaa785}, - {0x82379635, 0xeaa786}, - {0x82379636, 0xeaa787}, - {0x82379637, 0xeaa788}, - {0x82379638, 0xeaa789}, - {0x82379639, 0xeaa78a}, - {0x82379730, 0xeaa78b}, - {0x82379731, 0xeaa78c}, - {0x82379732, 0xeaa78d}, - {0x82379733, 0xeaa78e}, - {0x82379734, 0xeaa78f}, - {0x82379735, 0xeaa790}, - {0x82379736, 0xeaa791}, - {0x82379737, 0xeaa792}, - {0x82379738, 0xeaa793}, - {0x82379739, 0xeaa794}, - {0x82379830, 0xeaa795}, - {0x82379831, 0xeaa796}, - {0x82379832, 0xeaa797}, - {0x82379833, 0xeaa798}, - {0x82379834, 0xeaa799}, - {0x82379835, 0xeaa79a}, - {0x82379836, 0xeaa79b}, - {0x82379837, 0xeaa79c}, - {0x82379838, 0xeaa79d}, - {0x82379839, 0xeaa79e}, - {0x82379930, 0xeaa79f}, - {0x82379931, 0xeaa7a0}, - {0x82379932, 0xeaa7a1}, - {0x82379933, 0xeaa7a2}, - {0x82379934, 0xeaa7a3}, - {0x82379935, 0xeaa7a4}, - {0x82379936, 0xeaa7a5}, - {0x82379937, 0xeaa7a6}, - {0x82379938, 0xeaa7a7}, - {0x82379939, 0xeaa7a8}, - {0x82379a30, 0xeaa7a9}, - {0x82379a31, 0xeaa7aa}, - {0x82379a32, 0xeaa7ab}, - {0x82379a33, 0xeaa7ac}, - {0x82379a34, 0xeaa7ad}, - {0x82379a35, 0xeaa7ae}, - {0x82379a36, 0xeaa7af}, - {0x82379a37, 0xeaa7b0}, - {0x82379a38, 0xeaa7b1}, - {0x82379a39, 0xeaa7b2}, - {0x82379b30, 0xeaa7b3}, - {0x82379b31, 0xeaa7b4}, - {0x82379b32, 0xeaa7b5}, - {0x82379b33, 0xeaa7b6}, - {0x82379b34, 0xeaa7b7}, - {0x82379b35, 0xeaa7b8}, - {0x82379b36, 0xeaa7b9}, - {0x82379b37, 0xeaa7ba}, - {0x82379b38, 0xeaa7bb}, - {0x82379b39, 0xeaa7bc}, - {0x82379c30, 0xeaa7bd}, - {0x82379c31, 0xeaa7be}, - {0x82379c32, 0xeaa7bf}, - {0x82379c33, 0xeaa880}, - {0x82379c34, 0xeaa881}, - {0x82379c35, 0xeaa882}, - {0x82379c36, 0xeaa883}, - {0x82379c37, 0xeaa884}, - {0x82379c38, 0xeaa885}, - {0x82379c39, 0xeaa886}, - {0x82379d30, 0xeaa887}, - {0x82379d31, 0xeaa888}, - {0x82379d32, 0xeaa889}, - {0x82379d33, 0xeaa88a}, - {0x82379d34, 0xeaa88b}, - {0x82379d35, 0xeaa88c}, - {0x82379d36, 0xeaa88d}, - {0x82379d37, 0xeaa88e}, - {0x82379d38, 0xeaa88f}, - {0x82379d39, 0xeaa890}, - {0x82379e30, 0xeaa891}, - {0x82379e31, 0xeaa892}, - {0x82379e32, 0xeaa893}, - {0x82379e33, 0xeaa894}, - {0x82379e34, 0xeaa895}, - {0x82379e35, 0xeaa896}, - {0x82379e36, 0xeaa897}, - {0x82379e37, 0xeaa898}, - {0x82379e38, 0xeaa899}, - {0x82379e39, 0xeaa89a}, - {0x82379f30, 0xeaa89b}, - {0x82379f31, 0xeaa89c}, - {0x82379f32, 0xeaa89d}, - {0x82379f33, 0xeaa89e}, - {0x82379f34, 0xeaa89f}, - {0x82379f35, 0xeaa8a0}, - {0x82379f36, 0xeaa8a1}, - {0x82379f37, 0xeaa8a2}, - {0x82379f38, 0xeaa8a3}, - {0x82379f39, 0xeaa8a4}, - {0x8237a030, 0xeaa8a5}, - {0x8237a031, 0xeaa8a6}, - {0x8237a032, 0xeaa8a7}, - {0x8237a033, 0xeaa8a8}, - {0x8237a034, 0xeaa8a9}, - {0x8237a035, 0xeaa8aa}, - {0x8237a036, 0xeaa8ab}, - {0x8237a037, 0xeaa8ac}, - {0x8237a038, 0xeaa8ad}, - {0x8237a039, 0xeaa8ae}, - {0x8237a130, 0xeaa8af}, - {0x8237a131, 0xeaa8b0}, - {0x8237a132, 0xeaa8b1}, - {0x8237a133, 0xeaa8b2}, - {0x8237a134, 0xeaa8b3}, - {0x8237a135, 0xeaa8b4}, - {0x8237a136, 0xeaa8b5}, - {0x8237a137, 0xeaa8b6}, - {0x8237a138, 0xeaa8b7}, - {0x8237a139, 0xeaa8b8}, - {0x8237a230, 0xeaa8b9}, - {0x8237a231, 0xeaa8ba}, - {0x8237a232, 0xeaa8bb}, - {0x8237a233, 0xeaa8bc}, - {0x8237a234, 0xeaa8bd}, - {0x8237a235, 0xeaa8be}, - {0x8237a236, 0xeaa8bf}, - {0x8237a237, 0xeaa980}, - {0x8237a238, 0xeaa981}, - {0x8237a239, 0xeaa982}, - {0x8237a330, 0xeaa983}, - {0x8237a331, 0xeaa984}, - {0x8237a332, 0xeaa985}, - {0x8237a333, 0xeaa986}, - {0x8237a334, 0xeaa987}, - {0x8237a335, 0xeaa988}, - {0x8237a336, 0xeaa989}, - {0x8237a337, 0xeaa98a}, - {0x8237a338, 0xeaa98b}, - {0x8237a339, 0xeaa98c}, - {0x8237a430, 0xeaa98d}, - {0x8237a431, 0xeaa98e}, - {0x8237a432, 0xeaa98f}, - {0x8237a433, 0xeaa990}, - {0x8237a434, 0xeaa991}, - {0x8237a435, 0xeaa992}, - {0x8237a436, 0xeaa993}, - {0x8237a437, 0xeaa994}, - {0x8237a438, 0xeaa995}, - {0x8237a439, 0xeaa996}, - {0x8237a530, 0xeaa997}, - {0x8237a531, 0xeaa998}, - {0x8237a532, 0xeaa999}, - {0x8237a533, 0xeaa99a}, - {0x8237a534, 0xeaa99b}, - {0x8237a535, 0xeaa99c}, - {0x8237a536, 0xeaa99d}, - {0x8237a537, 0xeaa99e}, - {0x8237a538, 0xeaa99f}, - {0x8237a539, 0xeaa9a0}, - {0x8237a630, 0xeaa9a1}, - {0x8237a631, 0xeaa9a2}, - {0x8237a632, 0xeaa9a3}, - {0x8237a633, 0xeaa9a4}, - {0x8237a634, 0xeaa9a5}, - {0x8237a635, 0xeaa9a6}, - {0x8237a636, 0xeaa9a7}, - {0x8237a637, 0xeaa9a8}, - {0x8237a638, 0xeaa9a9}, - {0x8237a639, 0xeaa9aa}, - {0x8237a730, 0xeaa9ab}, - {0x8237a731, 0xeaa9ac}, - {0x8237a732, 0xeaa9ad}, - {0x8237a733, 0xeaa9ae}, - {0x8237a734, 0xeaa9af}, - {0x8237a735, 0xeaa9b0}, - {0x8237a736, 0xeaa9b1}, - {0x8237a737, 0xeaa9b2}, - {0x8237a738, 0xeaa9b3}, - {0x8237a739, 0xeaa9b4}, - {0x8237a830, 0xeaa9b5}, - {0x8237a831, 0xeaa9b6}, - {0x8237a832, 0xeaa9b7}, - {0x8237a833, 0xeaa9b8}, - {0x8237a834, 0xeaa9b9}, - {0x8237a835, 0xeaa9ba}, - {0x8237a836, 0xeaa9bb}, - {0x8237a837, 0xeaa9bc}, - {0x8237a838, 0xeaa9bd}, - {0x8237a839, 0xeaa9be}, - {0x8237a930, 0xeaa9bf}, - {0x8237a931, 0xeaaa80}, - {0x8237a932, 0xeaaa81}, - {0x8237a933, 0xeaaa82}, - {0x8237a934, 0xeaaa83}, - {0x8237a935, 0xeaaa84}, - {0x8237a936, 0xeaaa85}, - {0x8237a937, 0xeaaa86}, - {0x8237a938, 0xeaaa87}, - {0x8237a939, 0xeaaa88}, - {0x8237aa30, 0xeaaa89}, - {0x8237aa31, 0xeaaa8a}, - {0x8237aa32, 0xeaaa8b}, - {0x8237aa33, 0xeaaa8c}, - {0x8237aa34, 0xeaaa8d}, - {0x8237aa35, 0xeaaa8e}, - {0x8237aa36, 0xeaaa8f}, - {0x8237aa37, 0xeaaa90}, - {0x8237aa38, 0xeaaa91}, - {0x8237aa39, 0xeaaa92}, - {0x8237ab30, 0xeaaa93}, - {0x8237ab31, 0xeaaa94}, - {0x8237ab32, 0xeaaa95}, - {0x8237ab33, 0xeaaa96}, - {0x8237ab34, 0xeaaa97}, - {0x8237ab35, 0xeaaa98}, - {0x8237ab36, 0xeaaa99}, - {0x8237ab37, 0xeaaa9a}, - {0x8237ab38, 0xeaaa9b}, - {0x8237ab39, 0xeaaa9c}, - {0x8237ac30, 0xeaaa9d}, - {0x8237ac31, 0xeaaa9e}, - {0x8237ac32, 0xeaaa9f}, - {0x8237ac33, 0xeaaaa0}, - {0x8237ac34, 0xeaaaa1}, - {0x8237ac35, 0xeaaaa2}, - {0x8237ac36, 0xeaaaa3}, - {0x8237ac37, 0xeaaaa4}, - {0x8237ac38, 0xeaaaa5}, - {0x8237ac39, 0xeaaaa6}, - {0x8237ad30, 0xeaaaa7}, - {0x8237ad31, 0xeaaaa8}, - {0x8237ad32, 0xeaaaa9}, - {0x8237ad33, 0xeaaaaa}, - {0x8237ad34, 0xeaaaab}, - {0x8237ad35, 0xeaaaac}, - {0x8237ad36, 0xeaaaad}, - {0x8237ad37, 0xeaaaae}, - {0x8237ad38, 0xeaaaaf}, - {0x8237ad39, 0xeaaab0}, - {0x8237ae30, 0xeaaab1}, - {0x8237ae31, 0xeaaab2}, - {0x8237ae32, 0xeaaab3}, - {0x8237ae33, 0xeaaab4}, - {0x8237ae34, 0xeaaab5}, - {0x8237ae35, 0xeaaab6}, - {0x8237ae36, 0xeaaab7}, - {0x8237ae37, 0xeaaab8}, - {0x8237ae38, 0xeaaab9}, - {0x8237ae39, 0xeaaaba}, - {0x8237af30, 0xeaaabb}, - {0x8237af31, 0xeaaabc}, - {0x8237af32, 0xeaaabd}, - {0x8237af33, 0xeaaabe}, - {0x8237af34, 0xeaaabf}, - {0x8237af35, 0xeaab80}, - {0x8237af36, 0xeaab81}, - {0x8237af37, 0xeaab82}, - {0x8237af38, 0xeaab83}, - {0x8237af39, 0xeaab84}, - {0x8237b030, 0xeaab85}, - {0x8237b031, 0xeaab86}, - {0x8237b032, 0xeaab87}, - {0x8237b033, 0xeaab88}, - {0x8237b034, 0xeaab89}, - {0x8237b035, 0xeaab8a}, - {0x8237b036, 0xeaab8b}, - {0x8237b037, 0xeaab8c}, - {0x8237b038, 0xeaab8d}, - {0x8237b039, 0xeaab8e}, - {0x8237b130, 0xeaab8f}, - {0x8237b131, 0xeaab90}, - {0x8237b132, 0xeaab91}, - {0x8237b133, 0xeaab92}, - {0x8237b134, 0xeaab93}, - {0x8237b135, 0xeaab94}, - {0x8237b136, 0xeaab95}, - {0x8237b137, 0xeaab96}, - {0x8237b138, 0xeaab97}, - {0x8237b139, 0xeaab98}, - {0x8237b230, 0xeaab99}, - {0x8237b231, 0xeaab9a}, - {0x8237b232, 0xeaab9b}, - {0x8237b233, 0xeaab9c}, - {0x8237b234, 0xeaab9d}, - {0x8237b235, 0xeaab9e}, - {0x8237b236, 0xeaab9f}, - {0x8237b237, 0xeaaba0}, - {0x8237b238, 0xeaaba1}, - {0x8237b239, 0xeaaba2}, - {0x8237b330, 0xeaaba3}, - {0x8237b331, 0xeaaba4}, - {0x8237b332, 0xeaaba5}, - {0x8237b333, 0xeaaba6}, - {0x8237b334, 0xeaaba7}, - {0x8237b335, 0xeaaba8}, - {0x8237b336, 0xeaaba9}, - {0x8237b337, 0xeaabaa}, - {0x8237b338, 0xeaabab}, - {0x8237b339, 0xeaabac}, - {0x8237b430, 0xeaabad}, - {0x8237b431, 0xeaabae}, - {0x8237b432, 0xeaabaf}, - {0x8237b433, 0xeaabb0}, - {0x8237b434, 0xeaabb1}, - {0x8237b435, 0xeaabb2}, - {0x8237b436, 0xeaabb3}, - {0x8237b437, 0xeaabb4}, - {0x8237b438, 0xeaabb5}, - {0x8237b439, 0xeaabb6}, - {0x8237b530, 0xeaabb7}, - {0x8237b531, 0xeaabb8}, - {0x8237b532, 0xeaabb9}, - {0x8237b533, 0xeaabba}, - {0x8237b534, 0xeaabbb}, - {0x8237b535, 0xeaabbc}, - {0x8237b536, 0xeaabbd}, - {0x8237b537, 0xeaabbe}, - {0x8237b538, 0xeaabbf}, - {0x8237b539, 0xeaac80}, - {0x8237b630, 0xeaac81}, - {0x8237b631, 0xeaac82}, - {0x8237b632, 0xeaac83}, - {0x8237b633, 0xeaac84}, - {0x8237b634, 0xeaac85}, - {0x8237b635, 0xeaac86}, - {0x8237b636, 0xeaac87}, - {0x8237b637, 0xeaac88}, - {0x8237b638, 0xeaac89}, - {0x8237b639, 0xeaac8a}, - {0x8237b730, 0xeaac8b}, - {0x8237b731, 0xeaac8c}, - {0x8237b732, 0xeaac8d}, - {0x8237b733, 0xeaac8e}, - {0x8237b734, 0xeaac8f}, - {0x8237b735, 0xeaac90}, - {0x8237b736, 0xeaac91}, - {0x8237b737, 0xeaac92}, - {0x8237b738, 0xeaac93}, - {0x8237b739, 0xeaac94}, - {0x8237b830, 0xeaac95}, - {0x8237b831, 0xeaac96}, - {0x8237b832, 0xeaac97}, - {0x8237b833, 0xeaac98}, - {0x8237b834, 0xeaac99}, - {0x8237b835, 0xeaac9a}, - {0x8237b836, 0xeaac9b}, - {0x8237b837, 0xeaac9c}, - {0x8237b838, 0xeaac9d}, - {0x8237b839, 0xeaac9e}, - {0x8237b930, 0xeaac9f}, - {0x8237b931, 0xeaaca0}, - {0x8237b932, 0xeaaca1}, - {0x8237b933, 0xeaaca2}, - {0x8237b934, 0xeaaca3}, - {0x8237b935, 0xeaaca4}, - {0x8237b936, 0xeaaca5}, - {0x8237b937, 0xeaaca6}, - {0x8237b938, 0xeaaca7}, - {0x8237b939, 0xeaaca8}, - {0x8237ba30, 0xeaaca9}, - {0x8237ba31, 0xeaacaa}, - {0x8237ba32, 0xeaacab}, - {0x8237ba33, 0xeaacac}, - {0x8237ba34, 0xeaacad}, - {0x8237ba35, 0xeaacae}, - {0x8237ba36, 0xeaacaf}, - {0x8237ba37, 0xeaacb0}, - {0x8237ba38, 0xeaacb1}, - {0x8237ba39, 0xeaacb2}, - {0x8237bb30, 0xeaacb3}, - {0x8237bb31, 0xeaacb4}, - {0x8237bb32, 0xeaacb5}, - {0x8237bb33, 0xeaacb6}, - {0x8237bb34, 0xeaacb7}, - {0x8237bb35, 0xeaacb8}, - {0x8237bb36, 0xeaacb9}, - {0x8237bb37, 0xeaacba}, - {0x8237bb38, 0xeaacbb}, - {0x8237bb39, 0xeaacbc}, - {0x8237bc30, 0xeaacbd}, - {0x8237bc31, 0xeaacbe}, - {0x8237bc32, 0xeaacbf}, - {0x8237bc33, 0xeaad80}, - {0x8237bc34, 0xeaad81}, - {0x8237bc35, 0xeaad82}, - {0x8237bc36, 0xeaad83}, - {0x8237bc37, 0xeaad84}, - {0x8237bc38, 0xeaad85}, - {0x8237bc39, 0xeaad86}, - {0x8237bd30, 0xeaad87}, - {0x8237bd31, 0xeaad88}, - {0x8237bd32, 0xeaad89}, - {0x8237bd33, 0xeaad8a}, - {0x8237bd34, 0xeaad8b}, - {0x8237bd35, 0xeaad8c}, - {0x8237bd36, 0xeaad8d}, - {0x8237bd37, 0xeaad8e}, - {0x8237bd38, 0xeaad8f}, - {0x8237bd39, 0xeaad90}, - {0x8237be30, 0xeaad91}, - {0x8237be31, 0xeaad92}, - {0x8237be32, 0xeaad93}, - {0x8237be33, 0xeaad94}, - {0x8237be34, 0xeaad95}, - {0x8237be35, 0xeaad96}, - {0x8237be36, 0xeaad97}, - {0x8237be37, 0xeaad98}, - {0x8237be38, 0xeaad99}, - {0x8237be39, 0xeaad9a}, - {0x8237bf30, 0xeaad9b}, - {0x8237bf31, 0xeaad9c}, - {0x8237bf32, 0xeaad9d}, - {0x8237bf33, 0xeaad9e}, - {0x8237bf34, 0xeaad9f}, - {0x8237bf35, 0xeaada0}, - {0x8237bf36, 0xeaada1}, - {0x8237bf37, 0xeaada2}, - {0x8237bf38, 0xeaada3}, - {0x8237bf39, 0xeaada4}, - {0x8237c030, 0xeaada5}, - {0x8237c031, 0xeaada6}, - {0x8237c032, 0xeaada7}, - {0x8237c033, 0xeaada8}, - {0x8237c034, 0xeaada9}, - {0x8237c035, 0xeaadaa}, - {0x8237c036, 0xeaadab}, - {0x8237c037, 0xeaadac}, - {0x8237c038, 0xeaadad}, - {0x8237c039, 0xeaadae}, - {0x8237c130, 0xeaadaf}, - {0x8237c131, 0xeaadb0}, - {0x8237c132, 0xeaadb1}, - {0x8237c133, 0xeaadb2}, - {0x8237c134, 0xeaadb3}, - {0x8237c135, 0xeaadb4}, - {0x8237c136, 0xeaadb5}, - {0x8237c137, 0xeaadb6}, - {0x8237c138, 0xeaadb7}, - {0x8237c139, 0xeaadb8}, - {0x8237c230, 0xeaadb9}, - {0x8237c231, 0xeaadba}, - {0x8237c232, 0xeaadbb}, - {0x8237c233, 0xeaadbc}, - {0x8237c234, 0xeaadbd}, - {0x8237c235, 0xeaadbe}, - {0x8237c236, 0xeaadbf}, - {0x8237c237, 0xeaae80}, - {0x8237c238, 0xeaae81}, - {0x8237c239, 0xeaae82}, - {0x8237c330, 0xeaae83}, - {0x8237c331, 0xeaae84}, - {0x8237c332, 0xeaae85}, - {0x8237c333, 0xeaae86}, - {0x8237c334, 0xeaae87}, - {0x8237c335, 0xeaae88}, - {0x8237c336, 0xeaae89}, - {0x8237c337, 0xeaae8a}, - {0x8237c338, 0xeaae8b}, - {0x8237c339, 0xeaae8c}, - {0x8237c430, 0xeaae8d}, - {0x8237c431, 0xeaae8e}, - {0x8237c432, 0xeaae8f}, - {0x8237c433, 0xeaae90}, - {0x8237c434, 0xeaae91}, - {0x8237c435, 0xeaae92}, - {0x8237c436, 0xeaae93}, - {0x8237c437, 0xeaae94}, - {0x8237c438, 0xeaae95}, - {0x8237c439, 0xeaae96}, - {0x8237c530, 0xeaae97}, - {0x8237c531, 0xeaae98}, - {0x8237c532, 0xeaae99}, - {0x8237c533, 0xeaae9a}, - {0x8237c534, 0xeaae9b}, - {0x8237c535, 0xeaae9c}, - {0x8237c536, 0xeaae9d}, - {0x8237c537, 0xeaae9e}, - {0x8237c538, 0xeaae9f}, - {0x8237c539, 0xeaaea0}, - {0x8237c630, 0xeaaea1}, - {0x8237c631, 0xeaaea2}, - {0x8237c632, 0xeaaea3}, - {0x8237c633, 0xeaaea4}, - {0x8237c634, 0xeaaea5}, - {0x8237c635, 0xeaaea6}, - {0x8237c636, 0xeaaea7}, - {0x8237c637, 0xeaaea8}, - {0x8237c638, 0xeaaea9}, - {0x8237c639, 0xeaaeaa}, - {0x8237c730, 0xeaaeab}, - {0x8237c731, 0xeaaeac}, - {0x8237c732, 0xeaaead}, - {0x8237c733, 0xeaaeae}, - {0x8237c734, 0xeaaeaf}, - {0x8237c735, 0xeaaeb0}, - {0x8237c736, 0xeaaeb1}, - {0x8237c737, 0xeaaeb2}, - {0x8237c738, 0xeaaeb3}, - {0x8237c739, 0xeaaeb4}, - {0x8237c830, 0xeaaeb5}, - {0x8237c831, 0xeaaeb6}, - {0x8237c832, 0xeaaeb7}, - {0x8237c833, 0xeaaeb8}, - {0x8237c834, 0xeaaeb9}, - {0x8237c835, 0xeaaeba}, - {0x8237c836, 0xeaaebb}, - {0x8237c837, 0xeaaebc}, - {0x8237c838, 0xeaaebd}, - {0x8237c839, 0xeaaebe}, - {0x8237c930, 0xeaaebf}, - {0x8237c931, 0xeaaf80}, - {0x8237c932, 0xeaaf81}, - {0x8237c933, 0xeaaf82}, - {0x8237c934, 0xeaaf83}, - {0x8237c935, 0xeaaf84}, - {0x8237c936, 0xeaaf85}, - {0x8237c937, 0xeaaf86}, - {0x8237c938, 0xeaaf87}, - {0x8237c939, 0xeaaf88}, - {0x8237ca30, 0xeaaf89}, - {0x8237ca31, 0xeaaf8a}, - {0x8237ca32, 0xeaaf8b}, - {0x8237ca33, 0xeaaf8c}, - {0x8237ca34, 0xeaaf8d}, - {0x8237ca35, 0xeaaf8e}, - {0x8237ca36, 0xeaaf8f}, - {0x8237ca37, 0xeaaf90}, - {0x8237ca38, 0xeaaf91}, - {0x8237ca39, 0xeaaf92}, - {0x8237cb30, 0xeaaf93}, - {0x8237cb31, 0xeaaf94}, - {0x8237cb32, 0xeaaf95}, - {0x8237cb33, 0xeaaf96}, - {0x8237cb34, 0xeaaf97}, - {0x8237cb35, 0xeaaf98}, - {0x8237cb36, 0xeaaf99}, - {0x8237cb37, 0xeaaf9a}, - {0x8237cb38, 0xeaaf9b}, - {0x8237cb39, 0xeaaf9c}, - {0x8237cc30, 0xeaaf9d}, - {0x8237cc31, 0xeaaf9e}, - {0x8237cc32, 0xeaaf9f}, - {0x8237cc33, 0xeaafa0}, - {0x8237cc34, 0xeaafa1}, - {0x8237cc35, 0xeaafa2}, - {0x8237cc36, 0xeaafa3}, - {0x8237cc37, 0xeaafa4}, - {0x8237cc38, 0xeaafa5}, - {0x8237cc39, 0xeaafa6}, - {0x8237cd30, 0xeaafa7}, - {0x8237cd31, 0xeaafa8}, - {0x8237cd32, 0xeaafa9}, - {0x8237cd33, 0xeaafaa}, - {0x8237cd34, 0xeaafab}, - {0x8237cd35, 0xeaafac}, - {0x8237cd36, 0xeaafad}, - {0x8237cd37, 0xeaafae}, - {0x8237cd38, 0xeaafaf}, - {0x8237cd39, 0xeaafb0}, - {0x8237ce30, 0xeaafb1}, - {0x8237ce31, 0xeaafb2}, - {0x8237ce32, 0xeaafb3}, - {0x8237ce33, 0xeaafb4}, - {0x8237ce34, 0xeaafb5}, - {0x8237ce35, 0xeaafb6}, - {0x8237ce36, 0xeaafb7}, - {0x8237ce37, 0xeaafb8}, - {0x8237ce38, 0xeaafb9}, - {0x8237ce39, 0xeaafba}, - {0x8237cf30, 0xeaafbb}, - {0x8237cf31, 0xeaafbc}, - {0x8237cf32, 0xeaafbd}, - {0x8237cf33, 0xeaafbe}, - {0x8237cf34, 0xeaafbf}, - {0x8237cf35, 0xeab080}, - {0x8237cf36, 0xeab081}, - {0x8237cf37, 0xeab082}, - {0x8237cf38, 0xeab083}, - {0x8237cf39, 0xeab084}, - {0x8237d030, 0xeab085}, - {0x8237d031, 0xeab086}, - {0x8237d032, 0xeab087}, - {0x8237d033, 0xeab088}, - {0x8237d034, 0xeab089}, - {0x8237d035, 0xeab08a}, - {0x8237d036, 0xeab08b}, - {0x8237d037, 0xeab08c}, - {0x8237d038, 0xeab08d}, - {0x8237d039, 0xeab08e}, - {0x8237d130, 0xeab08f}, - {0x8237d131, 0xeab090}, - {0x8237d132, 0xeab091}, - {0x8237d133, 0xeab092}, - {0x8237d134, 0xeab093}, - {0x8237d135, 0xeab094}, - {0x8237d136, 0xeab095}, - {0x8237d137, 0xeab096}, - {0x8237d138, 0xeab097}, - {0x8237d139, 0xeab098}, - {0x8237d230, 0xeab099}, - {0x8237d231, 0xeab09a}, - {0x8237d232, 0xeab09b}, - {0x8237d233, 0xeab09c}, - {0x8237d234, 0xeab09d}, - {0x8237d235, 0xeab09e}, - {0x8237d236, 0xeab09f}, - {0x8237d237, 0xeab0a0}, - {0x8237d238, 0xeab0a1}, - {0x8237d239, 0xeab0a2}, - {0x8237d330, 0xeab0a3}, - {0x8237d331, 0xeab0a4}, - {0x8237d332, 0xeab0a5}, - {0x8237d333, 0xeab0a6}, - {0x8237d334, 0xeab0a7}, - {0x8237d335, 0xeab0a8}, - {0x8237d336, 0xeab0a9}, - {0x8237d337, 0xeab0aa}, - {0x8237d338, 0xeab0ab}, - {0x8237d339, 0xeab0ac}, - {0x8237d430, 0xeab0ad}, - {0x8237d431, 0xeab0ae}, - {0x8237d432, 0xeab0af}, - {0x8237d433, 0xeab0b0}, - {0x8237d434, 0xeab0b1}, - {0x8237d435, 0xeab0b2}, - {0x8237d436, 0xeab0b3}, - {0x8237d437, 0xeab0b4}, - {0x8237d438, 0xeab0b5}, - {0x8237d439, 0xeab0b6}, - {0x8237d530, 0xeab0b7}, - {0x8237d531, 0xeab0b8}, - {0x8237d532, 0xeab0b9}, - {0x8237d533, 0xeab0ba}, - {0x8237d534, 0xeab0bb}, - {0x8237d535, 0xeab0bc}, - {0x8237d536, 0xeab0bd}, - {0x8237d537, 0xeab0be}, - {0x8237d538, 0xeab0bf}, - {0x8237d539, 0xeab180}, - {0x8237d630, 0xeab181}, - {0x8237d631, 0xeab182}, - {0x8237d632, 0xeab183}, - {0x8237d633, 0xeab184}, - {0x8237d634, 0xeab185}, - {0x8237d635, 0xeab186}, - {0x8237d636, 0xeab187}, - {0x8237d637, 0xeab188}, - {0x8237d638, 0xeab189}, - {0x8237d639, 0xeab18a}, - {0x8237d730, 0xeab18b}, - {0x8237d731, 0xeab18c}, - {0x8237d732, 0xeab18d}, - {0x8237d733, 0xeab18e}, - {0x8237d734, 0xeab18f}, - {0x8237d735, 0xeab190}, - {0x8237d736, 0xeab191}, - {0x8237d737, 0xeab192}, - {0x8237d738, 0xeab193}, - {0x8237d739, 0xeab194}, - {0x8237d830, 0xeab195}, - {0x8237d831, 0xeab196}, - {0x8237d832, 0xeab197}, - {0x8237d833, 0xeab198}, - {0x8237d834, 0xeab199}, - {0x8237d835, 0xeab19a}, - {0x8237d836, 0xeab19b}, - {0x8237d837, 0xeab19c}, - {0x8237d838, 0xeab19d}, - {0x8237d839, 0xeab19e}, - {0x8237d930, 0xeab19f}, - {0x8237d931, 0xeab1a0}, - {0x8237d932, 0xeab1a1}, - {0x8237d933, 0xeab1a2}, - {0x8237d934, 0xeab1a3}, - {0x8237d935, 0xeab1a4}, - {0x8237d936, 0xeab1a5}, - {0x8237d937, 0xeab1a6}, - {0x8237d938, 0xeab1a7}, - {0x8237d939, 0xeab1a8}, - {0x8237da30, 0xeab1a9}, - {0x8237da31, 0xeab1aa}, - {0x8237da32, 0xeab1ab}, - {0x8237da33, 0xeab1ac}, - {0x8237da34, 0xeab1ad}, - {0x8237da35, 0xeab1ae}, - {0x8237da36, 0xeab1af}, - {0x8237da37, 0xeab1b0}, - {0x8237da38, 0xeab1b1}, - {0x8237da39, 0xeab1b2}, - {0x8237db30, 0xeab1b3}, - {0x8237db31, 0xeab1b4}, - {0x8237db32, 0xeab1b5}, - {0x8237db33, 0xeab1b6}, - {0x8237db34, 0xeab1b7}, - {0x8237db35, 0xeab1b8}, - {0x8237db36, 0xeab1b9}, - {0x8237db37, 0xeab1ba}, - {0x8237db38, 0xeab1bb}, - {0x8237db39, 0xeab1bc}, - {0x8237dc30, 0xeab1bd}, - {0x8237dc31, 0xeab1be}, - {0x8237dc32, 0xeab1bf}, - {0x8237dc33, 0xeab280}, - {0x8237dc34, 0xeab281}, - {0x8237dc35, 0xeab282}, - {0x8237dc36, 0xeab283}, - {0x8237dc37, 0xeab284}, - {0x8237dc38, 0xeab285}, - {0x8237dc39, 0xeab286}, - {0x8237dd30, 0xeab287}, - {0x8237dd31, 0xeab288}, - {0x8237dd32, 0xeab289}, - {0x8237dd33, 0xeab28a}, - {0x8237dd34, 0xeab28b}, - {0x8237dd35, 0xeab28c}, - {0x8237dd36, 0xeab28d}, - {0x8237dd37, 0xeab28e}, - {0x8237dd38, 0xeab28f}, - {0x8237dd39, 0xeab290}, - {0x8237de30, 0xeab291}, - {0x8237de31, 0xeab292}, - {0x8237de32, 0xeab293}, - {0x8237de33, 0xeab294}, - {0x8237de34, 0xeab295}, - {0x8237de35, 0xeab296}, - {0x8237de36, 0xeab297}, - {0x8237de37, 0xeab298}, - {0x8237de38, 0xeab299}, - {0x8237de39, 0xeab29a}, - {0x8237df30, 0xeab29b}, - {0x8237df31, 0xeab29c}, - {0x8237df32, 0xeab29d}, - {0x8237df33, 0xeab29e}, - {0x8237df34, 0xeab29f}, - {0x8237df35, 0xeab2a0}, - {0x8237df36, 0xeab2a1}, - {0x8237df37, 0xeab2a2}, - {0x8237df38, 0xeab2a3}, - {0x8237df39, 0xeab2a4}, - {0x8237e030, 0xeab2a5}, - {0x8237e031, 0xeab2a6}, - {0x8237e032, 0xeab2a7}, - {0x8237e033, 0xeab2a8}, - {0x8237e034, 0xeab2a9}, - {0x8237e035, 0xeab2aa}, - {0x8237e036, 0xeab2ab}, - {0x8237e037, 0xeab2ac}, - {0x8237e038, 0xeab2ad}, - {0x8237e039, 0xeab2ae}, - {0x8237e130, 0xeab2af}, - {0x8237e131, 0xeab2b0}, - {0x8237e132, 0xeab2b1}, - {0x8237e133, 0xeab2b2}, - {0x8237e134, 0xeab2b3}, - {0x8237e135, 0xeab2b4}, - {0x8237e136, 0xeab2b5}, - {0x8237e137, 0xeab2b6}, - {0x8237e138, 0xeab2b7}, - {0x8237e139, 0xeab2b8}, - {0x8237e230, 0xeab2b9}, - {0x8237e231, 0xeab2ba}, - {0x8237e232, 0xeab2bb}, - {0x8237e233, 0xeab2bc}, - {0x8237e234, 0xeab2bd}, - {0x8237e235, 0xeab2be}, - {0x8237e236, 0xeab2bf}, - {0x8237e237, 0xeab380}, - {0x8237e238, 0xeab381}, - {0x8237e239, 0xeab382}, - {0x8237e330, 0xeab383}, - {0x8237e331, 0xeab384}, - {0x8237e332, 0xeab385}, - {0x8237e333, 0xeab386}, - {0x8237e334, 0xeab387}, - {0x8237e335, 0xeab388}, - {0x8237e336, 0xeab389}, - {0x8237e337, 0xeab38a}, - {0x8237e338, 0xeab38b}, - {0x8237e339, 0xeab38c}, - {0x8237e430, 0xeab38d}, - {0x8237e431, 0xeab38e}, - {0x8237e432, 0xeab38f}, - {0x8237e433, 0xeab390}, - {0x8237e434, 0xeab391}, - {0x8237e435, 0xeab392}, - {0x8237e436, 0xeab393}, - {0x8237e437, 0xeab394}, - {0x8237e438, 0xeab395}, - {0x8237e439, 0xeab396}, - {0x8237e530, 0xeab397}, - {0x8237e531, 0xeab398}, - {0x8237e532, 0xeab399}, - {0x8237e533, 0xeab39a}, - {0x8237e534, 0xeab39b}, - {0x8237e535, 0xeab39c}, - {0x8237e536, 0xeab39d}, - {0x8237e537, 0xeab39e}, - {0x8237e538, 0xeab39f}, - {0x8237e539, 0xeab3a0}, - {0x8237e630, 0xeab3a1}, - {0x8237e631, 0xeab3a2}, - {0x8237e632, 0xeab3a3}, - {0x8237e633, 0xeab3a4}, - {0x8237e634, 0xeab3a5}, - {0x8237e635, 0xeab3a6}, - {0x8237e636, 0xeab3a7}, - {0x8237e637, 0xeab3a8}, - {0x8237e638, 0xeab3a9}, - {0x8237e639, 0xeab3aa}, - {0x8237e730, 0xeab3ab}, - {0x8237e731, 0xeab3ac}, - {0x8237e732, 0xeab3ad}, - {0x8237e733, 0xeab3ae}, - {0x8237e734, 0xeab3af}, - {0x8237e735, 0xeab3b0}, - {0x8237e736, 0xeab3b1}, - {0x8237e737, 0xeab3b2}, - {0x8237e738, 0xeab3b3}, - {0x8237e739, 0xeab3b4}, - {0x8237e830, 0xeab3b5}, - {0x8237e831, 0xeab3b6}, - {0x8237e832, 0xeab3b7}, - {0x8237e833, 0xeab3b8}, - {0x8237e834, 0xeab3b9}, - {0x8237e835, 0xeab3ba}, - {0x8237e836, 0xeab3bb}, - {0x8237e837, 0xeab3bc}, - {0x8237e838, 0xeab3bd}, - {0x8237e839, 0xeab3be}, - {0x8237e930, 0xeab3bf}, - {0x8237e931, 0xeab480}, - {0x8237e932, 0xeab481}, - {0x8237e933, 0xeab482}, - {0x8237e934, 0xeab483}, - {0x8237e935, 0xeab484}, - {0x8237e936, 0xeab485}, - {0x8237e937, 0xeab486}, - {0x8237e938, 0xeab487}, - {0x8237e939, 0xeab488}, - {0x8237ea30, 0xeab489}, - {0x8237ea31, 0xeab48a}, - {0x8237ea32, 0xeab48b}, - {0x8237ea33, 0xeab48c}, - {0x8237ea34, 0xeab48d}, - {0x8237ea35, 0xeab48e}, - {0x8237ea36, 0xeab48f}, - {0x8237ea37, 0xeab490}, - {0x8237ea38, 0xeab491}, - {0x8237ea39, 0xeab492}, - {0x8237eb30, 0xeab493}, - {0x8237eb31, 0xeab494}, - {0x8237eb32, 0xeab495}, - {0x8237eb33, 0xeab496}, - {0x8237eb34, 0xeab497}, - {0x8237eb35, 0xeab498}, - {0x8237eb36, 0xeab499}, - {0x8237eb37, 0xeab49a}, - {0x8237eb38, 0xeab49b}, - {0x8237eb39, 0xeab49c}, - {0x8237ec30, 0xeab49d}, - {0x8237ec31, 0xeab49e}, - {0x8237ec32, 0xeab49f}, - {0x8237ec33, 0xeab4a0}, - {0x8237ec34, 0xeab4a1}, - {0x8237ec35, 0xeab4a2}, - {0x8237ec36, 0xeab4a3}, - {0x8237ec37, 0xeab4a4}, - {0x8237ec38, 0xeab4a5}, - {0x8237ec39, 0xeab4a6}, - {0x8237ed30, 0xeab4a7}, - {0x8237ed31, 0xeab4a8}, - {0x8237ed32, 0xeab4a9}, - {0x8237ed33, 0xeab4aa}, - {0x8237ed34, 0xeab4ab}, - {0x8237ed35, 0xeab4ac}, - {0x8237ed36, 0xeab4ad}, - {0x8237ed37, 0xeab4ae}, - {0x8237ed38, 0xeab4af}, - {0x8237ed39, 0xeab4b0}, - {0x8237ee30, 0xeab4b1}, - {0x8237ee31, 0xeab4b2}, - {0x8237ee32, 0xeab4b3}, - {0x8237ee33, 0xeab4b4}, - {0x8237ee34, 0xeab4b5}, - {0x8237ee35, 0xeab4b6}, - {0x8237ee36, 0xeab4b7}, - {0x8237ee37, 0xeab4b8}, - {0x8237ee38, 0xeab4b9}, - {0x8237ee39, 0xeab4ba}, - {0x8237ef30, 0xeab4bb}, - {0x8237ef31, 0xeab4bc}, - {0x8237ef32, 0xeab4bd}, - {0x8237ef33, 0xeab4be}, - {0x8237ef34, 0xeab4bf}, - {0x8237ef35, 0xeab580}, - {0x8237ef36, 0xeab581}, - {0x8237ef37, 0xeab582}, - {0x8237ef38, 0xeab583}, - {0x8237ef39, 0xeab584}, - {0x8237f030, 0xeab585}, - {0x8237f031, 0xeab586}, - {0x8237f032, 0xeab587}, - {0x8237f033, 0xeab588}, - {0x8237f034, 0xeab589}, - {0x8237f035, 0xeab58a}, - {0x8237f036, 0xeab58b}, - {0x8237f037, 0xeab58c}, - {0x8237f038, 0xeab58d}, - {0x8237f039, 0xeab58e}, - {0x8237f130, 0xeab58f}, - {0x8237f131, 0xeab590}, - {0x8237f132, 0xeab591}, - {0x8237f133, 0xeab592}, - {0x8237f134, 0xeab593}, - {0x8237f135, 0xeab594}, - {0x8237f136, 0xeab595}, - {0x8237f137, 0xeab596}, - {0x8237f138, 0xeab597}, - {0x8237f139, 0xeab598}, - {0x8237f230, 0xeab599}, - {0x8237f231, 0xeab59a}, - {0x8237f232, 0xeab59b}, - {0x8237f233, 0xeab59c}, - {0x8237f234, 0xeab59d}, - {0x8237f235, 0xeab59e}, - {0x8237f236, 0xeab59f}, - {0x8237f237, 0xeab5a0}, - {0x8237f238, 0xeab5a1}, - {0x8237f239, 0xeab5a2}, - {0x8237f330, 0xeab5a3}, - {0x8237f331, 0xeab5a4}, - {0x8237f332, 0xeab5a5}, - {0x8237f333, 0xeab5a6}, - {0x8237f334, 0xeab5a7}, - {0x8237f335, 0xeab5a8}, - {0x8237f336, 0xeab5a9}, - {0x8237f337, 0xeab5aa}, - {0x8237f338, 0xeab5ab}, - {0x8237f339, 0xeab5ac}, - {0x8237f430, 0xeab5ad}, - {0x8237f431, 0xeab5ae}, - {0x8237f432, 0xeab5af}, - {0x8237f433, 0xeab5b0}, - {0x8237f434, 0xeab5b1}, - {0x8237f435, 0xeab5b2}, - {0x8237f436, 0xeab5b3}, - {0x8237f437, 0xeab5b4}, - {0x8237f438, 0xeab5b5}, - {0x8237f439, 0xeab5b6}, - {0x8237f530, 0xeab5b7}, - {0x8237f531, 0xeab5b8}, - {0x8237f532, 0xeab5b9}, - {0x8237f533, 0xeab5ba}, - {0x8237f534, 0xeab5bb}, - {0x8237f535, 0xeab5bc}, - {0x8237f536, 0xeab5bd}, - {0x8237f537, 0xeab5be}, - {0x8237f538, 0xeab5bf}, - {0x8237f539, 0xeab680}, - {0x8237f630, 0xeab681}, - {0x8237f631, 0xeab682}, - {0x8237f632, 0xeab683}, - {0x8237f633, 0xeab684}, - {0x8237f634, 0xeab685}, - {0x8237f635, 0xeab686}, - {0x8237f636, 0xeab687}, - {0x8237f637, 0xeab688}, - {0x8237f638, 0xeab689}, - {0x8237f639, 0xeab68a}, - {0x8237f730, 0xeab68b}, - {0x8237f731, 0xeab68c}, - {0x8237f732, 0xeab68d}, - {0x8237f733, 0xeab68e}, - {0x8237f734, 0xeab68f}, - {0x8237f735, 0xeab690}, - {0x8237f736, 0xeab691}, - {0x8237f737, 0xeab692}, - {0x8237f738, 0xeab693}, - {0x8237f739, 0xeab694}, - {0x8237f830, 0xeab695}, - {0x8237f831, 0xeab696}, - {0x8237f832, 0xeab697}, - {0x8237f833, 0xeab698}, - {0x8237f834, 0xeab699}, - {0x8237f835, 0xeab69a}, - {0x8237f836, 0xeab69b}, - {0x8237f837, 0xeab69c}, - {0x8237f838, 0xeab69d}, - {0x8237f839, 0xeab69e}, - {0x8237f930, 0xeab69f}, - {0x8237f931, 0xeab6a0}, - {0x8237f932, 0xeab6a1}, - {0x8237f933, 0xeab6a2}, - {0x8237f934, 0xeab6a3}, - {0x8237f935, 0xeab6a4}, - {0x8237f936, 0xeab6a5}, - {0x8237f937, 0xeab6a6}, - {0x8237f938, 0xeab6a7}, - {0x8237f939, 0xeab6a8}, - {0x8237fa30, 0xeab6a9}, - {0x8237fa31, 0xeab6aa}, - {0x8237fa32, 0xeab6ab}, - {0x8237fa33, 0xeab6ac}, - {0x8237fa34, 0xeab6ad}, - {0x8237fa35, 0xeab6ae}, - {0x8237fa36, 0xeab6af}, - {0x8237fa37, 0xeab6b0}, - {0x8237fa38, 0xeab6b1}, - {0x8237fa39, 0xeab6b2}, - {0x8237fb30, 0xeab6b3}, - {0x8237fb31, 0xeab6b4}, - {0x8237fb32, 0xeab6b5}, - {0x8237fb33, 0xeab6b6}, - {0x8237fb34, 0xeab6b7}, - {0x8237fb35, 0xeab6b8}, - {0x8237fb36, 0xeab6b9}, - {0x8237fb37, 0xeab6ba}, - {0x8237fb38, 0xeab6bb}, - {0x8237fb39, 0xeab6bc}, - {0x8237fc30, 0xeab6bd}, - {0x8237fc31, 0xeab6be}, - {0x8237fc32, 0xeab6bf}, - {0x8237fc33, 0xeab780}, - {0x8237fc34, 0xeab781}, - {0x8237fc35, 0xeab782}, - {0x8237fc36, 0xeab783}, - {0x8237fc37, 0xeab784}, - {0x8237fc38, 0xeab785}, - {0x8237fc39, 0xeab786}, - {0x8237fd30, 0xeab787}, - {0x8237fd31, 0xeab788}, - {0x8237fd32, 0xeab789}, - {0x8237fd33, 0xeab78a}, - {0x8237fd34, 0xeab78b}, - {0x8237fd35, 0xeab78c}, - {0x8237fd36, 0xeab78d}, - {0x8237fd37, 0xeab78e}, - {0x8237fd38, 0xeab78f}, - {0x8237fd39, 0xeab790}, - {0x8237fe30, 0xeab791}, - {0x8237fe31, 0xeab792}, - {0x8237fe32, 0xeab793}, - {0x8237fe33, 0xeab794}, - {0x8237fe34, 0xeab795}, - {0x8237fe35, 0xeab796}, - {0x8237fe36, 0xeab797}, - {0x8237fe37, 0xeab798}, - {0x8237fe38, 0xeab799}, - {0x8237fe39, 0xeab79a}, - {0x82388130, 0xeab79b}, - {0x82388131, 0xeab79c}, - {0x82388132, 0xeab79d}, - {0x82388133, 0xeab79e}, - {0x82388134, 0xeab79f}, - {0x82388135, 0xeab7a0}, - {0x82388136, 0xeab7a1}, - {0x82388137, 0xeab7a2}, - {0x82388138, 0xeab7a3}, - {0x82388139, 0xeab7a4}, - {0x82388230, 0xeab7a5}, - {0x82388231, 0xeab7a6}, - {0x82388232, 0xeab7a7}, - {0x82388233, 0xeab7a8}, - {0x82388234, 0xeab7a9}, - {0x82388235, 0xeab7aa}, - {0x82388236, 0xeab7ab}, - {0x82388237, 0xeab7ac}, - {0x82388238, 0xeab7ad}, - {0x82388239, 0xeab7ae}, - {0x82388330, 0xeab7af}, - {0x82388331, 0xeab7b0}, - {0x82388332, 0xeab7b1}, - {0x82388333, 0xeab7b2}, - {0x82388334, 0xeab7b3}, - {0x82388335, 0xeab7b4}, - {0x82388336, 0xeab7b5}, - {0x82388337, 0xeab7b6}, - {0x82388338, 0xeab7b7}, - {0x82388339, 0xeab7b8}, - {0x82388430, 0xeab7b9}, - {0x82388431, 0xeab7ba}, - {0x82388432, 0xeab7bb}, - {0x82388433, 0xeab7bc}, - {0x82388434, 0xeab7bd}, - {0x82388435, 0xeab7be}, - {0x82388436, 0xeab7bf}, - {0x82388437, 0xeab880}, - {0x82388438, 0xeab881}, - {0x82388439, 0xeab882}, - {0x82388530, 0xeab883}, - {0x82388531, 0xeab884}, - {0x82388532, 0xeab885}, - {0x82388533, 0xeab886}, - {0x82388534, 0xeab887}, - {0x82388535, 0xeab888}, - {0x82388536, 0xeab889}, - {0x82388537, 0xeab88a}, - {0x82388538, 0xeab88b}, - {0x82388539, 0xeab88c}, - {0x82388630, 0xeab88d}, - {0x82388631, 0xeab88e}, - {0x82388632, 0xeab88f}, - {0x82388633, 0xeab890}, - {0x82388634, 0xeab891}, - {0x82388635, 0xeab892}, - {0x82388636, 0xeab893}, - {0x82388637, 0xeab894}, - {0x82388638, 0xeab895}, - {0x82388639, 0xeab896}, - {0x82388730, 0xeab897}, - {0x82388731, 0xeab898}, - {0x82388732, 0xeab899}, - {0x82388733, 0xeab89a}, - {0x82388734, 0xeab89b}, - {0x82388735, 0xeab89c}, - {0x82388736, 0xeab89d}, - {0x82388737, 0xeab89e}, - {0x82388738, 0xeab89f}, - {0x82388739, 0xeab8a0}, - {0x82388830, 0xeab8a1}, - {0x82388831, 0xeab8a2}, - {0x82388832, 0xeab8a3}, - {0x82388833, 0xeab8a4}, - {0x82388834, 0xeab8a5}, - {0x82388835, 0xeab8a6}, - {0x82388836, 0xeab8a7}, - {0x82388837, 0xeab8a8}, - {0x82388838, 0xeab8a9}, - {0x82388839, 0xeab8aa}, - {0x82388930, 0xeab8ab}, - {0x82388931, 0xeab8ac}, - {0x82388932, 0xeab8ad}, - {0x82388933, 0xeab8ae}, - {0x82388934, 0xeab8af}, - {0x82388935, 0xeab8b0}, - {0x82388936, 0xeab8b1}, - {0x82388937, 0xeab8b2}, - {0x82388938, 0xeab8b3}, - {0x82388939, 0xeab8b4}, - {0x82388a30, 0xeab8b5}, - {0x82388a31, 0xeab8b6}, - {0x82388a32, 0xeab8b7}, - {0x82388a33, 0xeab8b8}, - {0x82388a34, 0xeab8b9}, - {0x82388a35, 0xeab8ba}, - {0x82388a36, 0xeab8bb}, - {0x82388a37, 0xeab8bc}, - {0x82388a38, 0xeab8bd}, - {0x82388a39, 0xeab8be}, - {0x82388b30, 0xeab8bf}, - {0x82388b31, 0xeab980}, - {0x82388b32, 0xeab981}, - {0x82388b33, 0xeab982}, - {0x82388b34, 0xeab983}, - {0x82388b35, 0xeab984}, - {0x82388b36, 0xeab985}, - {0x82388b37, 0xeab986}, - {0x82388b38, 0xeab987}, - {0x82388b39, 0xeab988}, - {0x82388c30, 0xeab989}, - {0x82388c31, 0xeab98a}, - {0x82388c32, 0xeab98b}, - {0x82388c33, 0xeab98c}, - {0x82388c34, 0xeab98d}, - {0x82388c35, 0xeab98e}, - {0x82388c36, 0xeab98f}, - {0x82388c37, 0xeab990}, - {0x82388c38, 0xeab991}, - {0x82388c39, 0xeab992}, - {0x82388d30, 0xeab993}, - {0x82388d31, 0xeab994}, - {0x82388d32, 0xeab995}, - {0x82388d33, 0xeab996}, - {0x82388d34, 0xeab997}, - {0x82388d35, 0xeab998}, - {0x82388d36, 0xeab999}, - {0x82388d37, 0xeab99a}, - {0x82388d38, 0xeab99b}, - {0x82388d39, 0xeab99c}, - {0x82388e30, 0xeab99d}, - {0x82388e31, 0xeab99e}, - {0x82388e32, 0xeab99f}, - {0x82388e33, 0xeab9a0}, - {0x82388e34, 0xeab9a1}, - {0x82388e35, 0xeab9a2}, - {0x82388e36, 0xeab9a3}, - {0x82388e37, 0xeab9a4}, - {0x82388e38, 0xeab9a5}, - {0x82388e39, 0xeab9a6}, - {0x82388f30, 0xeab9a7}, - {0x82388f31, 0xeab9a8}, - {0x82388f32, 0xeab9a9}, - {0x82388f33, 0xeab9aa}, - {0x82388f34, 0xeab9ab}, - {0x82388f35, 0xeab9ac}, - {0x82388f36, 0xeab9ad}, - {0x82388f37, 0xeab9ae}, - {0x82388f38, 0xeab9af}, - {0x82388f39, 0xeab9b0}, - {0x82389030, 0xeab9b1}, - {0x82389031, 0xeab9b2}, - {0x82389032, 0xeab9b3}, - {0x82389033, 0xeab9b4}, - {0x82389034, 0xeab9b5}, - {0x82389035, 0xeab9b6}, - {0x82389036, 0xeab9b7}, - {0x82389037, 0xeab9b8}, - {0x82389038, 0xeab9b9}, - {0x82389039, 0xeab9ba}, - {0x82389130, 0xeab9bb}, - {0x82389131, 0xeab9bc}, - {0x82389132, 0xeab9bd}, - {0x82389133, 0xeab9be}, - {0x82389134, 0xeab9bf}, - {0x82389135, 0xeaba80}, - {0x82389136, 0xeaba81}, - {0x82389137, 0xeaba82}, - {0x82389138, 0xeaba83}, - {0x82389139, 0xeaba84}, - {0x82389230, 0xeaba85}, - {0x82389231, 0xeaba86}, - {0x82389232, 0xeaba87}, - {0x82389233, 0xeaba88}, - {0x82389234, 0xeaba89}, - {0x82389235, 0xeaba8a}, - {0x82389236, 0xeaba8b}, - {0x82389237, 0xeaba8c}, - {0x82389238, 0xeaba8d}, - {0x82389239, 0xeaba8e}, - {0x82389330, 0xeaba8f}, - {0x82389331, 0xeaba90}, - {0x82389332, 0xeaba91}, - {0x82389333, 0xeaba92}, - {0x82389334, 0xeaba93}, - {0x82389335, 0xeaba94}, - {0x82389336, 0xeaba95}, - {0x82389337, 0xeaba96}, - {0x82389338, 0xeaba97}, - {0x82389339, 0xeaba98}, - {0x82389430, 0xeaba99}, - {0x82389431, 0xeaba9a}, - {0x82389432, 0xeaba9b}, - {0x82389433, 0xeaba9c}, - {0x82389434, 0xeaba9d}, - {0x82389435, 0xeaba9e}, - {0x82389436, 0xeaba9f}, - {0x82389437, 0xeabaa0}, - {0x82389438, 0xeabaa1}, - {0x82389439, 0xeabaa2}, - {0x82389530, 0xeabaa3}, - {0x82389531, 0xeabaa4}, - {0x82389532, 0xeabaa5}, - {0x82389533, 0xeabaa6}, - {0x82389534, 0xeabaa7}, - {0x82389535, 0xeabaa8}, - {0x82389536, 0xeabaa9}, - {0x82389537, 0xeabaaa}, - {0x82389538, 0xeabaab}, - {0x82389539, 0xeabaac}, - {0x82389630, 0xeabaad}, - {0x82389631, 0xeabaae}, - {0x82389632, 0xeabaaf}, - {0x82389633, 0xeabab0}, - {0x82389634, 0xeabab1}, - {0x82389635, 0xeabab2}, - {0x82389636, 0xeabab3}, - {0x82389637, 0xeabab4}, - {0x82389638, 0xeabab5}, - {0x82389639, 0xeabab6}, - {0x82389730, 0xeabab7}, - {0x82389731, 0xeabab8}, - {0x82389732, 0xeabab9}, - {0x82389733, 0xeababa}, - {0x82389734, 0xeababb}, - {0x82389735, 0xeababc}, - {0x82389736, 0xeababd}, - {0x82389737, 0xeababe}, - {0x82389738, 0xeababf}, - {0x82389739, 0xeabb80}, - {0x82389830, 0xeabb81}, - {0x82389831, 0xeabb82}, - {0x82389832, 0xeabb83}, - {0x82389833, 0xeabb84}, - {0x82389834, 0xeabb85}, - {0x82389835, 0xeabb86}, - {0x82389836, 0xeabb87}, - {0x82389837, 0xeabb88}, - {0x82389838, 0xeabb89}, - {0x82389839, 0xeabb8a}, - {0x82389930, 0xeabb8b}, - {0x82389931, 0xeabb8c}, - {0x82389932, 0xeabb8d}, - {0x82389933, 0xeabb8e}, - {0x82389934, 0xeabb8f}, - {0x82389935, 0xeabb90}, - {0x82389936, 0xeabb91}, - {0x82389937, 0xeabb92}, - {0x82389938, 0xeabb93}, - {0x82389939, 0xeabb94}, - {0x82389a30, 0xeabb95}, - {0x82389a31, 0xeabb96}, - {0x82389a32, 0xeabb97}, - {0x82389a33, 0xeabb98}, - {0x82389a34, 0xeabb99}, - {0x82389a35, 0xeabb9a}, - {0x82389a36, 0xeabb9b}, - {0x82389a37, 0xeabb9c}, - {0x82389a38, 0xeabb9d}, - {0x82389a39, 0xeabb9e}, - {0x82389b30, 0xeabb9f}, - {0x82389b31, 0xeabba0}, - {0x82389b32, 0xeabba1}, - {0x82389b33, 0xeabba2}, - {0x82389b34, 0xeabba3}, - {0x82389b35, 0xeabba4}, - {0x82389b36, 0xeabba5}, - {0x82389b37, 0xeabba6}, - {0x82389b38, 0xeabba7}, - {0x82389b39, 0xeabba8}, - {0x82389c30, 0xeabba9}, - {0x82389c31, 0xeabbaa}, - {0x82389c32, 0xeabbab}, - {0x82389c33, 0xeabbac}, - {0x82389c34, 0xeabbad}, - {0x82389c35, 0xeabbae}, - {0x82389c36, 0xeabbaf}, - {0x82389c37, 0xeabbb0}, - {0x82389c38, 0xeabbb1}, - {0x82389c39, 0xeabbb2}, - {0x82389d30, 0xeabbb3}, - {0x82389d31, 0xeabbb4}, - {0x82389d32, 0xeabbb5}, - {0x82389d33, 0xeabbb6}, - {0x82389d34, 0xeabbb7}, - {0x82389d35, 0xeabbb8}, - {0x82389d36, 0xeabbb9}, - {0x82389d37, 0xeabbba}, - {0x82389d38, 0xeabbbb}, - {0x82389d39, 0xeabbbc}, - {0x82389e30, 0xeabbbd}, - {0x82389e31, 0xeabbbe}, - {0x82389e32, 0xeabbbf}, - {0x82389e33, 0xeabc80}, - {0x82389e34, 0xeabc81}, - {0x82389e35, 0xeabc82}, - {0x82389e36, 0xeabc83}, - {0x82389e37, 0xeabc84}, - {0x82389e38, 0xeabc85}, - {0x82389e39, 0xeabc86}, - {0x82389f30, 0xeabc87}, - {0x82389f31, 0xeabc88}, - {0x82389f32, 0xeabc89}, - {0x82389f33, 0xeabc8a}, - {0x82389f34, 0xeabc8b}, - {0x82389f35, 0xeabc8c}, - {0x82389f36, 0xeabc8d}, - {0x82389f37, 0xeabc8e}, - {0x82389f38, 0xeabc8f}, - {0x82389f39, 0xeabc90}, - {0x8238a030, 0xeabc91}, - {0x8238a031, 0xeabc92}, - {0x8238a032, 0xeabc93}, - {0x8238a033, 0xeabc94}, - {0x8238a034, 0xeabc95}, - {0x8238a035, 0xeabc96}, - {0x8238a036, 0xeabc97}, - {0x8238a037, 0xeabc98}, - {0x8238a038, 0xeabc99}, - {0x8238a039, 0xeabc9a}, - {0x8238a130, 0xeabc9b}, - {0x8238a131, 0xeabc9c}, - {0x8238a132, 0xeabc9d}, - {0x8238a133, 0xeabc9e}, - {0x8238a134, 0xeabc9f}, - {0x8238a135, 0xeabca0}, - {0x8238a136, 0xeabca1}, - {0x8238a137, 0xeabca2}, - {0x8238a138, 0xeabca3}, - {0x8238a139, 0xeabca4}, - {0x8238a230, 0xeabca5}, - {0x8238a231, 0xeabca6}, - {0x8238a232, 0xeabca7}, - {0x8238a233, 0xeabca8}, - {0x8238a234, 0xeabca9}, - {0x8238a235, 0xeabcaa}, - {0x8238a236, 0xeabcab}, - {0x8238a237, 0xeabcac}, - {0x8238a238, 0xeabcad}, - {0x8238a239, 0xeabcae}, - {0x8238a330, 0xeabcaf}, - {0x8238a331, 0xeabcb0}, - {0x8238a332, 0xeabcb1}, - {0x8238a333, 0xeabcb2}, - {0x8238a334, 0xeabcb3}, - {0x8238a335, 0xeabcb4}, - {0x8238a336, 0xeabcb5}, - {0x8238a337, 0xeabcb6}, - {0x8238a338, 0xeabcb7}, - {0x8238a339, 0xeabcb8}, - {0x8238a430, 0xeabcb9}, - {0x8238a431, 0xeabcba}, - {0x8238a432, 0xeabcbb}, - {0x8238a433, 0xeabcbc}, - {0x8238a434, 0xeabcbd}, - {0x8238a435, 0xeabcbe}, - {0x8238a436, 0xeabcbf}, - {0x8238a437, 0xeabd80}, - {0x8238a438, 0xeabd81}, - {0x8238a439, 0xeabd82}, - {0x8238a530, 0xeabd83}, - {0x8238a531, 0xeabd84}, - {0x8238a532, 0xeabd85}, - {0x8238a533, 0xeabd86}, - {0x8238a534, 0xeabd87}, - {0x8238a535, 0xeabd88}, - {0x8238a536, 0xeabd89}, - {0x8238a537, 0xeabd8a}, - {0x8238a538, 0xeabd8b}, - {0x8238a539, 0xeabd8c}, - {0x8238a630, 0xeabd8d}, - {0x8238a631, 0xeabd8e}, - {0x8238a632, 0xeabd8f}, - {0x8238a633, 0xeabd90}, - {0x8238a634, 0xeabd91}, - {0x8238a635, 0xeabd92}, - {0x8238a636, 0xeabd93}, - {0x8238a637, 0xeabd94}, - {0x8238a638, 0xeabd95}, - {0x8238a639, 0xeabd96}, - {0x8238a730, 0xeabd97}, - {0x8238a731, 0xeabd98}, - {0x8238a732, 0xeabd99}, - {0x8238a733, 0xeabd9a}, - {0x8238a734, 0xeabd9b}, - {0x8238a735, 0xeabd9c}, - {0x8238a736, 0xeabd9d}, - {0x8238a737, 0xeabd9e}, - {0x8238a738, 0xeabd9f}, - {0x8238a739, 0xeabda0}, - {0x8238a830, 0xeabda1}, - {0x8238a831, 0xeabda2}, - {0x8238a832, 0xeabda3}, - {0x8238a833, 0xeabda4}, - {0x8238a834, 0xeabda5}, - {0x8238a835, 0xeabda6}, - {0x8238a836, 0xeabda7}, - {0x8238a837, 0xeabda8}, - {0x8238a838, 0xeabda9}, - {0x8238a839, 0xeabdaa}, - {0x8238a930, 0xeabdab}, - {0x8238a931, 0xeabdac}, - {0x8238a932, 0xeabdad}, - {0x8238a933, 0xeabdae}, - {0x8238a934, 0xeabdaf}, - {0x8238a935, 0xeabdb0}, - {0x8238a936, 0xeabdb1}, - {0x8238a937, 0xeabdb2}, - {0x8238a938, 0xeabdb3}, - {0x8238a939, 0xeabdb4}, - {0x8238aa30, 0xeabdb5}, - {0x8238aa31, 0xeabdb6}, - {0x8238aa32, 0xeabdb7}, - {0x8238aa33, 0xeabdb8}, - {0x8238aa34, 0xeabdb9}, - {0x8238aa35, 0xeabdba}, - {0x8238aa36, 0xeabdbb}, - {0x8238aa37, 0xeabdbc}, - {0x8238aa38, 0xeabdbd}, - {0x8238aa39, 0xeabdbe}, - {0x8238ab30, 0xeabdbf}, - {0x8238ab31, 0xeabe80}, - {0x8238ab32, 0xeabe81}, - {0x8238ab33, 0xeabe82}, - {0x8238ab34, 0xeabe83}, - {0x8238ab35, 0xeabe84}, - {0x8238ab36, 0xeabe85}, - {0x8238ab37, 0xeabe86}, - {0x8238ab38, 0xeabe87}, - {0x8238ab39, 0xeabe88}, - {0x8238ac30, 0xeabe89}, - {0x8238ac31, 0xeabe8a}, - {0x8238ac32, 0xeabe8b}, - {0x8238ac33, 0xeabe8c}, - {0x8238ac34, 0xeabe8d}, - {0x8238ac35, 0xeabe8e}, - {0x8238ac36, 0xeabe8f}, - {0x8238ac37, 0xeabe90}, - {0x8238ac38, 0xeabe91}, - {0x8238ac39, 0xeabe92}, - {0x8238ad30, 0xeabe93}, - {0x8238ad31, 0xeabe94}, - {0x8238ad32, 0xeabe95}, - {0x8238ad33, 0xeabe96}, - {0x8238ad34, 0xeabe97}, - {0x8238ad35, 0xeabe98}, - {0x8238ad36, 0xeabe99}, - {0x8238ad37, 0xeabe9a}, - {0x8238ad38, 0xeabe9b}, - {0x8238ad39, 0xeabe9c}, - {0x8238ae30, 0xeabe9d}, - {0x8238ae31, 0xeabe9e}, - {0x8238ae32, 0xeabe9f}, - {0x8238ae33, 0xeabea0}, - {0x8238ae34, 0xeabea1}, - {0x8238ae35, 0xeabea2}, - {0x8238ae36, 0xeabea3}, - {0x8238ae37, 0xeabea4}, - {0x8238ae38, 0xeabea5}, - {0x8238ae39, 0xeabea6}, - {0x8238af30, 0xeabea7}, - {0x8238af31, 0xeabea8}, - {0x8238af32, 0xeabea9}, - {0x8238af33, 0xeabeaa}, - {0x8238af34, 0xeabeab}, - {0x8238af35, 0xeabeac}, - {0x8238af36, 0xeabead}, - {0x8238af37, 0xeabeae}, - {0x8238af38, 0xeabeaf}, - {0x8238af39, 0xeabeb0}, - {0x8238b030, 0xeabeb1}, - {0x8238b031, 0xeabeb2}, - {0x8238b032, 0xeabeb3}, - {0x8238b033, 0xeabeb4}, - {0x8238b034, 0xeabeb5}, - {0x8238b035, 0xeabeb6}, - {0x8238b036, 0xeabeb7}, - {0x8238b037, 0xeabeb8}, - {0x8238b038, 0xeabeb9}, - {0x8238b039, 0xeabeba}, - {0x8238b130, 0xeabebb}, - {0x8238b131, 0xeabebc}, - {0x8238b132, 0xeabebd}, - {0x8238b133, 0xeabebe}, - {0x8238b134, 0xeabebf}, - {0x8238b135, 0xeabf80}, - {0x8238b136, 0xeabf81}, - {0x8238b137, 0xeabf82}, - {0x8238b138, 0xeabf83}, - {0x8238b139, 0xeabf84}, - {0x8238b230, 0xeabf85}, - {0x8238b231, 0xeabf86}, - {0x8238b232, 0xeabf87}, - {0x8238b233, 0xeabf88}, - {0x8238b234, 0xeabf89}, - {0x8238b235, 0xeabf8a}, - {0x8238b236, 0xeabf8b}, - {0x8238b237, 0xeabf8c}, - {0x8238b238, 0xeabf8d}, - {0x8238b239, 0xeabf8e}, - {0x8238b330, 0xeabf8f}, - {0x8238b331, 0xeabf90}, - {0x8238b332, 0xeabf91}, - {0x8238b333, 0xeabf92}, - {0x8238b334, 0xeabf93}, - {0x8238b335, 0xeabf94}, - {0x8238b336, 0xeabf95}, - {0x8238b337, 0xeabf96}, - {0x8238b338, 0xeabf97}, - {0x8238b339, 0xeabf98}, - {0x8238b430, 0xeabf99}, - {0x8238b431, 0xeabf9a}, - {0x8238b432, 0xeabf9b}, - {0x8238b433, 0xeabf9c}, - {0x8238b434, 0xeabf9d}, - {0x8238b435, 0xeabf9e}, - {0x8238b436, 0xeabf9f}, - {0x8238b437, 0xeabfa0}, - {0x8238b438, 0xeabfa1}, - {0x8238b439, 0xeabfa2}, - {0x8238b530, 0xeabfa3}, - {0x8238b531, 0xeabfa4}, - {0x8238b532, 0xeabfa5}, - {0x8238b533, 0xeabfa6}, - {0x8238b534, 0xeabfa7}, - {0x8238b535, 0xeabfa8}, - {0x8238b536, 0xeabfa9}, - {0x8238b537, 0xeabfaa}, - {0x8238b538, 0xeabfab}, - {0x8238b539, 0xeabfac}, - {0x8238b630, 0xeabfad}, - {0x8238b631, 0xeabfae}, - {0x8238b632, 0xeabfaf}, - {0x8238b633, 0xeabfb0}, - {0x8238b634, 0xeabfb1}, - {0x8238b635, 0xeabfb2}, - {0x8238b636, 0xeabfb3}, - {0x8238b637, 0xeabfb4}, - {0x8238b638, 0xeabfb5}, - {0x8238b639, 0xeabfb6}, - {0x8238b730, 0xeabfb7}, - {0x8238b731, 0xeabfb8}, - {0x8238b732, 0xeabfb9}, - {0x8238b733, 0xeabfba}, - {0x8238b734, 0xeabfbb}, - {0x8238b735, 0xeabfbc}, - {0x8238b736, 0xeabfbd}, - {0x8238b737, 0xeabfbe}, - {0x8238b738, 0xeabfbf}, - {0x8238b739, 0xeb8080}, - {0x8238b830, 0xeb8081}, - {0x8238b831, 0xeb8082}, - {0x8238b832, 0xeb8083}, - {0x8238b833, 0xeb8084}, - {0x8238b834, 0xeb8085}, - {0x8238b835, 0xeb8086}, - {0x8238b836, 0xeb8087}, - {0x8238b837, 0xeb8088}, - {0x8238b838, 0xeb8089}, - {0x8238b839, 0xeb808a}, - {0x8238b930, 0xeb808b}, - {0x8238b931, 0xeb808c}, - {0x8238b932, 0xeb808d}, - {0x8238b933, 0xeb808e}, - {0x8238b934, 0xeb808f}, - {0x8238b935, 0xeb8090}, - {0x8238b936, 0xeb8091}, - {0x8238b937, 0xeb8092}, - {0x8238b938, 0xeb8093}, - {0x8238b939, 0xeb8094}, - {0x8238ba30, 0xeb8095}, - {0x8238ba31, 0xeb8096}, - {0x8238ba32, 0xeb8097}, - {0x8238ba33, 0xeb8098}, - {0x8238ba34, 0xeb8099}, - {0x8238ba35, 0xeb809a}, - {0x8238ba36, 0xeb809b}, - {0x8238ba37, 0xeb809c}, - {0x8238ba38, 0xeb809d}, - {0x8238ba39, 0xeb809e}, - {0x8238bb30, 0xeb809f}, - {0x8238bb31, 0xeb80a0}, - {0x8238bb32, 0xeb80a1}, - {0x8238bb33, 0xeb80a2}, - {0x8238bb34, 0xeb80a3}, - {0x8238bb35, 0xeb80a4}, - {0x8238bb36, 0xeb80a5}, - {0x8238bb37, 0xeb80a6}, - {0x8238bb38, 0xeb80a7}, - {0x8238bb39, 0xeb80a8}, - {0x8238bc30, 0xeb80a9}, - {0x8238bc31, 0xeb80aa}, - {0x8238bc32, 0xeb80ab}, - {0x8238bc33, 0xeb80ac}, - {0x8238bc34, 0xeb80ad}, - {0x8238bc35, 0xeb80ae}, - {0x8238bc36, 0xeb80af}, - {0x8238bc37, 0xeb80b0}, - {0x8238bc38, 0xeb80b1}, - {0x8238bc39, 0xeb80b2}, - {0x8238bd30, 0xeb80b3}, - {0x8238bd31, 0xeb80b4}, - {0x8238bd32, 0xeb80b5}, - {0x8238bd33, 0xeb80b6}, - {0x8238bd34, 0xeb80b7}, - {0x8238bd35, 0xeb80b8}, - {0x8238bd36, 0xeb80b9}, - {0x8238bd37, 0xeb80ba}, - {0x8238bd38, 0xeb80bb}, - {0x8238bd39, 0xeb80bc}, - {0x8238be30, 0xeb80bd}, - {0x8238be31, 0xeb80be}, - {0x8238be32, 0xeb80bf}, - {0x8238be33, 0xeb8180}, - {0x8238be34, 0xeb8181}, - {0x8238be35, 0xeb8182}, - {0x8238be36, 0xeb8183}, - {0x8238be37, 0xeb8184}, - {0x8238be38, 0xeb8185}, - {0x8238be39, 0xeb8186}, - {0x8238bf30, 0xeb8187}, - {0x8238bf31, 0xeb8188}, - {0x8238bf32, 0xeb8189}, - {0x8238bf33, 0xeb818a}, - {0x8238bf34, 0xeb818b}, - {0x8238bf35, 0xeb818c}, - {0x8238bf36, 0xeb818d}, - {0x8238bf37, 0xeb818e}, - {0x8238bf38, 0xeb818f}, - {0x8238bf39, 0xeb8190}, - {0x8238c030, 0xeb8191}, - {0x8238c031, 0xeb8192}, - {0x8238c032, 0xeb8193}, - {0x8238c033, 0xeb8194}, - {0x8238c034, 0xeb8195}, - {0x8238c035, 0xeb8196}, - {0x8238c036, 0xeb8197}, - {0x8238c037, 0xeb8198}, - {0x8238c038, 0xeb8199}, - {0x8238c039, 0xeb819a}, - {0x8238c130, 0xeb819b}, - {0x8238c131, 0xeb819c}, - {0x8238c132, 0xeb819d}, - {0x8238c133, 0xeb819e}, - {0x8238c134, 0xeb819f}, - {0x8238c135, 0xeb81a0}, - {0x8238c136, 0xeb81a1}, - {0x8238c137, 0xeb81a2}, - {0x8238c138, 0xeb81a3}, - {0x8238c139, 0xeb81a4}, - {0x8238c230, 0xeb81a5}, - {0x8238c231, 0xeb81a6}, - {0x8238c232, 0xeb81a7}, - {0x8238c233, 0xeb81a8}, - {0x8238c234, 0xeb81a9}, - {0x8238c235, 0xeb81aa}, - {0x8238c236, 0xeb81ab}, - {0x8238c237, 0xeb81ac}, - {0x8238c238, 0xeb81ad}, - {0x8238c239, 0xeb81ae}, - {0x8238c330, 0xeb81af}, - {0x8238c331, 0xeb81b0}, - {0x8238c332, 0xeb81b1}, - {0x8238c333, 0xeb81b2}, - {0x8238c334, 0xeb81b3}, - {0x8238c335, 0xeb81b4}, - {0x8238c336, 0xeb81b5}, - {0x8238c337, 0xeb81b6}, - {0x8238c338, 0xeb81b7}, - {0x8238c339, 0xeb81b8}, - {0x8238c430, 0xeb81b9}, - {0x8238c431, 0xeb81ba}, - {0x8238c432, 0xeb81bb}, - {0x8238c433, 0xeb81bc}, - {0x8238c434, 0xeb81bd}, - {0x8238c435, 0xeb81be}, - {0x8238c436, 0xeb81bf}, - {0x8238c437, 0xeb8280}, - {0x8238c438, 0xeb8281}, - {0x8238c439, 0xeb8282}, - {0x8238c530, 0xeb8283}, - {0x8238c531, 0xeb8284}, - {0x8238c532, 0xeb8285}, - {0x8238c533, 0xeb8286}, - {0x8238c534, 0xeb8287}, - {0x8238c535, 0xeb8288}, - {0x8238c536, 0xeb8289}, - {0x8238c537, 0xeb828a}, - {0x8238c538, 0xeb828b}, - {0x8238c539, 0xeb828c}, - {0x8238c630, 0xeb828d}, - {0x8238c631, 0xeb828e}, - {0x8238c632, 0xeb828f}, - {0x8238c633, 0xeb8290}, - {0x8238c634, 0xeb8291}, - {0x8238c635, 0xeb8292}, - {0x8238c636, 0xeb8293}, - {0x8238c637, 0xeb8294}, - {0x8238c638, 0xeb8295}, - {0x8238c639, 0xeb8296}, - {0x8238c730, 0xeb8297}, - {0x8238c731, 0xeb8298}, - {0x8238c732, 0xeb8299}, - {0x8238c733, 0xeb829a}, - {0x8238c734, 0xeb829b}, - {0x8238c735, 0xeb829c}, - {0x8238c736, 0xeb829d}, - {0x8238c737, 0xeb829e}, - {0x8238c738, 0xeb829f}, - {0x8238c739, 0xeb82a0}, - {0x8238c830, 0xeb82a1}, - {0x8238c831, 0xeb82a2}, - {0x8238c832, 0xeb82a3}, - {0x8238c833, 0xeb82a4}, - {0x8238c834, 0xeb82a5}, - {0x8238c835, 0xeb82a6}, - {0x8238c836, 0xeb82a7}, - {0x8238c837, 0xeb82a8}, - {0x8238c838, 0xeb82a9}, - {0x8238c839, 0xeb82aa}, - {0x8238c930, 0xeb82ab}, - {0x8238c931, 0xeb82ac}, - {0x8238c932, 0xeb82ad}, - {0x8238c933, 0xeb82ae}, - {0x8238c934, 0xeb82af}, - {0x8238c935, 0xeb82b0}, - {0x8238c936, 0xeb82b1}, - {0x8238c937, 0xeb82b2}, - {0x8238c938, 0xeb82b3}, - {0x8238c939, 0xeb82b4}, - {0x8238ca30, 0xeb82b5}, - {0x8238ca31, 0xeb82b6}, - {0x8238ca32, 0xeb82b7}, - {0x8238ca33, 0xeb82b8}, - {0x8238ca34, 0xeb82b9}, - {0x8238ca35, 0xeb82ba}, - {0x8238ca36, 0xeb82bb}, - {0x8238ca37, 0xeb82bc}, - {0x8238ca38, 0xeb82bd}, - {0x8238ca39, 0xeb82be}, - {0x8238cb30, 0xeb82bf}, - {0x8238cb31, 0xeb8380}, - {0x8238cb32, 0xeb8381}, - {0x8238cb33, 0xeb8382}, - {0x8238cb34, 0xeb8383}, - {0x8238cb35, 0xeb8384}, - {0x8238cb36, 0xeb8385}, - {0x8238cb37, 0xeb8386}, - {0x8238cb38, 0xeb8387}, - {0x8238cb39, 0xeb8388}, - {0x8238cc30, 0xeb8389}, - {0x8238cc31, 0xeb838a}, - {0x8238cc32, 0xeb838b}, - {0x8238cc33, 0xeb838c}, - {0x8238cc34, 0xeb838d}, - {0x8238cc35, 0xeb838e}, - {0x8238cc36, 0xeb838f}, - {0x8238cc37, 0xeb8390}, - {0x8238cc38, 0xeb8391}, - {0x8238cc39, 0xeb8392}, - {0x8238cd30, 0xeb8393}, - {0x8238cd31, 0xeb8394}, - {0x8238cd32, 0xeb8395}, - {0x8238cd33, 0xeb8396}, - {0x8238cd34, 0xeb8397}, - {0x8238cd35, 0xeb8398}, - {0x8238cd36, 0xeb8399}, - {0x8238cd37, 0xeb839a}, - {0x8238cd38, 0xeb839b}, - {0x8238cd39, 0xeb839c}, - {0x8238ce30, 0xeb839d}, - {0x8238ce31, 0xeb839e}, - {0x8238ce32, 0xeb839f}, - {0x8238ce33, 0xeb83a0}, - {0x8238ce34, 0xeb83a1}, - {0x8238ce35, 0xeb83a2}, - {0x8238ce36, 0xeb83a3}, - {0x8238ce37, 0xeb83a4}, - {0x8238ce38, 0xeb83a5}, - {0x8238ce39, 0xeb83a6}, - {0x8238cf30, 0xeb83a7}, - {0x8238cf31, 0xeb83a8}, - {0x8238cf32, 0xeb83a9}, - {0x8238cf33, 0xeb83aa}, - {0x8238cf34, 0xeb83ab}, - {0x8238cf35, 0xeb83ac}, - {0x8238cf36, 0xeb83ad}, - {0x8238cf37, 0xeb83ae}, - {0x8238cf38, 0xeb83af}, - {0x8238cf39, 0xeb83b0}, - {0x8238d030, 0xeb83b1}, - {0x8238d031, 0xeb83b2}, - {0x8238d032, 0xeb83b3}, - {0x8238d033, 0xeb83b4}, - {0x8238d034, 0xeb83b5}, - {0x8238d035, 0xeb83b6}, - {0x8238d036, 0xeb83b7}, - {0x8238d037, 0xeb83b8}, - {0x8238d038, 0xeb83b9}, - {0x8238d039, 0xeb83ba}, - {0x8238d130, 0xeb83bb}, - {0x8238d131, 0xeb83bc}, - {0x8238d132, 0xeb83bd}, - {0x8238d133, 0xeb83be}, - {0x8238d134, 0xeb83bf}, - {0x8238d135, 0xeb8480}, - {0x8238d136, 0xeb8481}, - {0x8238d137, 0xeb8482}, - {0x8238d138, 0xeb8483}, - {0x8238d139, 0xeb8484}, - {0x8238d230, 0xeb8485}, - {0x8238d231, 0xeb8486}, - {0x8238d232, 0xeb8487}, - {0x8238d233, 0xeb8488}, - {0x8238d234, 0xeb8489}, - {0x8238d235, 0xeb848a}, - {0x8238d236, 0xeb848b}, - {0x8238d237, 0xeb848c}, - {0x8238d238, 0xeb848d}, - {0x8238d239, 0xeb848e}, - {0x8238d330, 0xeb848f}, - {0x8238d331, 0xeb8490}, - {0x8238d332, 0xeb8491}, - {0x8238d333, 0xeb8492}, - {0x8238d334, 0xeb8493}, - {0x8238d335, 0xeb8494}, - {0x8238d336, 0xeb8495}, - {0x8238d337, 0xeb8496}, - {0x8238d338, 0xeb8497}, - {0x8238d339, 0xeb8498}, - {0x8238d430, 0xeb8499}, - {0x8238d431, 0xeb849a}, - {0x8238d432, 0xeb849b}, - {0x8238d433, 0xeb849c}, - {0x8238d434, 0xeb849d}, - {0x8238d435, 0xeb849e}, - {0x8238d436, 0xeb849f}, - {0x8238d437, 0xeb84a0}, - {0x8238d438, 0xeb84a1}, - {0x8238d439, 0xeb84a2}, - {0x8238d530, 0xeb84a3}, - {0x8238d531, 0xeb84a4}, - {0x8238d532, 0xeb84a5}, - {0x8238d533, 0xeb84a6}, - {0x8238d534, 0xeb84a7}, - {0x8238d535, 0xeb84a8}, - {0x8238d536, 0xeb84a9}, - {0x8238d537, 0xeb84aa}, - {0x8238d538, 0xeb84ab}, - {0x8238d539, 0xeb84ac}, - {0x8238d630, 0xeb84ad}, - {0x8238d631, 0xeb84ae}, - {0x8238d632, 0xeb84af}, - {0x8238d633, 0xeb84b0}, - {0x8238d634, 0xeb84b1}, - {0x8238d635, 0xeb84b2}, - {0x8238d636, 0xeb84b3}, - {0x8238d637, 0xeb84b4}, - {0x8238d638, 0xeb84b5}, - {0x8238d639, 0xeb84b6}, - {0x8238d730, 0xeb84b7}, - {0x8238d731, 0xeb84b8}, - {0x8238d732, 0xeb84b9}, - {0x8238d733, 0xeb84ba}, - {0x8238d734, 0xeb84bb}, - {0x8238d735, 0xeb84bc}, - {0x8238d736, 0xeb84bd}, - {0x8238d737, 0xeb84be}, - {0x8238d738, 0xeb84bf}, - {0x8238d739, 0xeb8580}, - {0x8238d830, 0xeb8581}, - {0x8238d831, 0xeb8582}, - {0x8238d832, 0xeb8583}, - {0x8238d833, 0xeb8584}, - {0x8238d834, 0xeb8585}, - {0x8238d835, 0xeb8586}, - {0x8238d836, 0xeb8587}, - {0x8238d837, 0xeb8588}, - {0x8238d838, 0xeb8589}, - {0x8238d839, 0xeb858a}, - {0x8238d930, 0xeb858b}, - {0x8238d931, 0xeb858c}, - {0x8238d932, 0xeb858d}, - {0x8238d933, 0xeb858e}, - {0x8238d934, 0xeb858f}, - {0x8238d935, 0xeb8590}, - {0x8238d936, 0xeb8591}, - {0x8238d937, 0xeb8592}, - {0x8238d938, 0xeb8593}, - {0x8238d939, 0xeb8594}, - {0x8238da30, 0xeb8595}, - {0x8238da31, 0xeb8596}, - {0x8238da32, 0xeb8597}, - {0x8238da33, 0xeb8598}, - {0x8238da34, 0xeb8599}, - {0x8238da35, 0xeb859a}, - {0x8238da36, 0xeb859b}, - {0x8238da37, 0xeb859c}, - {0x8238da38, 0xeb859d}, - {0x8238da39, 0xeb859e}, - {0x8238db30, 0xeb859f}, - {0x8238db31, 0xeb85a0}, - {0x8238db32, 0xeb85a1}, - {0x8238db33, 0xeb85a2}, - {0x8238db34, 0xeb85a3}, - {0x8238db35, 0xeb85a4}, - {0x8238db36, 0xeb85a5}, - {0x8238db37, 0xeb85a6}, - {0x8238db38, 0xeb85a7}, - {0x8238db39, 0xeb85a8}, - {0x8238dc30, 0xeb85a9}, - {0x8238dc31, 0xeb85aa}, - {0x8238dc32, 0xeb85ab}, - {0x8238dc33, 0xeb85ac}, - {0x8238dc34, 0xeb85ad}, - {0x8238dc35, 0xeb85ae}, - {0x8238dc36, 0xeb85af}, - {0x8238dc37, 0xeb85b0}, - {0x8238dc38, 0xeb85b1}, - {0x8238dc39, 0xeb85b2}, - {0x8238dd30, 0xeb85b3}, - {0x8238dd31, 0xeb85b4}, - {0x8238dd32, 0xeb85b5}, - {0x8238dd33, 0xeb85b6}, - {0x8238dd34, 0xeb85b7}, - {0x8238dd35, 0xeb85b8}, - {0x8238dd36, 0xeb85b9}, - {0x8238dd37, 0xeb85ba}, - {0x8238dd38, 0xeb85bb}, - {0x8238dd39, 0xeb85bc}, - {0x8238de30, 0xeb85bd}, - {0x8238de31, 0xeb85be}, - {0x8238de32, 0xeb85bf}, - {0x8238de33, 0xeb8680}, - {0x8238de34, 0xeb8681}, - {0x8238de35, 0xeb8682}, - {0x8238de36, 0xeb8683}, - {0x8238de37, 0xeb8684}, - {0x8238de38, 0xeb8685}, - {0x8238de39, 0xeb8686}, - {0x8238df30, 0xeb8687}, - {0x8238df31, 0xeb8688}, - {0x8238df32, 0xeb8689}, - {0x8238df33, 0xeb868a}, - {0x8238df34, 0xeb868b}, - {0x8238df35, 0xeb868c}, - {0x8238df36, 0xeb868d}, - {0x8238df37, 0xeb868e}, - {0x8238df38, 0xeb868f}, - {0x8238df39, 0xeb8690}, - {0x8238e030, 0xeb8691}, - {0x8238e031, 0xeb8692}, - {0x8238e032, 0xeb8693}, - {0x8238e033, 0xeb8694}, - {0x8238e034, 0xeb8695}, - {0x8238e035, 0xeb8696}, - {0x8238e036, 0xeb8697}, - {0x8238e037, 0xeb8698}, - {0x8238e038, 0xeb8699}, - {0x8238e039, 0xeb869a}, - {0x8238e130, 0xeb869b}, - {0x8238e131, 0xeb869c}, - {0x8238e132, 0xeb869d}, - {0x8238e133, 0xeb869e}, - {0x8238e134, 0xeb869f}, - {0x8238e135, 0xeb86a0}, - {0x8238e136, 0xeb86a1}, - {0x8238e137, 0xeb86a2}, - {0x8238e138, 0xeb86a3}, - {0x8238e139, 0xeb86a4}, - {0x8238e230, 0xeb86a5}, - {0x8238e231, 0xeb86a6}, - {0x8238e232, 0xeb86a7}, - {0x8238e233, 0xeb86a8}, - {0x8238e234, 0xeb86a9}, - {0x8238e235, 0xeb86aa}, - {0x8238e236, 0xeb86ab}, - {0x8238e237, 0xeb86ac}, - {0x8238e238, 0xeb86ad}, - {0x8238e239, 0xeb86ae}, - {0x8238e330, 0xeb86af}, - {0x8238e331, 0xeb86b0}, - {0x8238e332, 0xeb86b1}, - {0x8238e333, 0xeb86b2}, - {0x8238e334, 0xeb86b3}, - {0x8238e335, 0xeb86b4}, - {0x8238e336, 0xeb86b5}, - {0x8238e337, 0xeb86b6}, - {0x8238e338, 0xeb86b7}, - {0x8238e339, 0xeb86b8}, - {0x8238e430, 0xeb86b9}, - {0x8238e431, 0xeb86ba}, - {0x8238e432, 0xeb86bb}, - {0x8238e433, 0xeb86bc}, - {0x8238e434, 0xeb86bd}, - {0x8238e435, 0xeb86be}, - {0x8238e436, 0xeb86bf}, - {0x8238e437, 0xeb8780}, - {0x8238e438, 0xeb8781}, - {0x8238e439, 0xeb8782}, - {0x8238e530, 0xeb8783}, - {0x8238e531, 0xeb8784}, - {0x8238e532, 0xeb8785}, - {0x8238e533, 0xeb8786}, - {0x8238e534, 0xeb8787}, - {0x8238e535, 0xeb8788}, - {0x8238e536, 0xeb8789}, - {0x8238e537, 0xeb878a}, - {0x8238e538, 0xeb878b}, - {0x8238e539, 0xeb878c}, - {0x8238e630, 0xeb878d}, - {0x8238e631, 0xeb878e}, - {0x8238e632, 0xeb878f}, - {0x8238e633, 0xeb8790}, - {0x8238e634, 0xeb8791}, - {0x8238e635, 0xeb8792}, - {0x8238e636, 0xeb8793}, - {0x8238e637, 0xeb8794}, - {0x8238e638, 0xeb8795}, - {0x8238e639, 0xeb8796}, - {0x8238e730, 0xeb8797}, - {0x8238e731, 0xeb8798}, - {0x8238e732, 0xeb8799}, - {0x8238e733, 0xeb879a}, - {0x8238e734, 0xeb879b}, - {0x8238e735, 0xeb879c}, - {0x8238e736, 0xeb879d}, - {0x8238e737, 0xeb879e}, - {0x8238e738, 0xeb879f}, - {0x8238e739, 0xeb87a0}, - {0x8238e830, 0xeb87a1}, - {0x8238e831, 0xeb87a2}, - {0x8238e832, 0xeb87a3}, - {0x8238e833, 0xeb87a4}, - {0x8238e834, 0xeb87a5}, - {0x8238e835, 0xeb87a6}, - {0x8238e836, 0xeb87a7}, - {0x8238e837, 0xeb87a8}, - {0x8238e838, 0xeb87a9}, - {0x8238e839, 0xeb87aa}, - {0x8238e930, 0xeb87ab}, - {0x8238e931, 0xeb87ac}, - {0x8238e932, 0xeb87ad}, - {0x8238e933, 0xeb87ae}, - {0x8238e934, 0xeb87af}, - {0x8238e935, 0xeb87b0}, - {0x8238e936, 0xeb87b1}, - {0x8238e937, 0xeb87b2}, - {0x8238e938, 0xeb87b3}, - {0x8238e939, 0xeb87b4}, - {0x8238ea30, 0xeb87b5}, - {0x8238ea31, 0xeb87b6}, - {0x8238ea32, 0xeb87b7}, - {0x8238ea33, 0xeb87b8}, - {0x8238ea34, 0xeb87b9}, - {0x8238ea35, 0xeb87ba}, - {0x8238ea36, 0xeb87bb}, - {0x8238ea37, 0xeb87bc}, - {0x8238ea38, 0xeb87bd}, - {0x8238ea39, 0xeb87be}, - {0x8238eb30, 0xeb87bf}, - {0x8238eb31, 0xeb8880}, - {0x8238eb32, 0xeb8881}, - {0x8238eb33, 0xeb8882}, - {0x8238eb34, 0xeb8883}, - {0x8238eb35, 0xeb8884}, - {0x8238eb36, 0xeb8885}, - {0x8238eb37, 0xeb8886}, - {0x8238eb38, 0xeb8887}, - {0x8238eb39, 0xeb8888}, - {0x8238ec30, 0xeb8889}, - {0x8238ec31, 0xeb888a}, - {0x8238ec32, 0xeb888b}, - {0x8238ec33, 0xeb888c}, - {0x8238ec34, 0xeb888d}, - {0x8238ec35, 0xeb888e}, - {0x8238ec36, 0xeb888f}, - {0x8238ec37, 0xeb8890}, - {0x8238ec38, 0xeb8891}, - {0x8238ec39, 0xeb8892}, - {0x8238ed30, 0xeb8893}, - {0x8238ed31, 0xeb8894}, - {0x8238ed32, 0xeb8895}, - {0x8238ed33, 0xeb8896}, - {0x8238ed34, 0xeb8897}, - {0x8238ed35, 0xeb8898}, - {0x8238ed36, 0xeb8899}, - {0x8238ed37, 0xeb889a}, - {0x8238ed38, 0xeb889b}, - {0x8238ed39, 0xeb889c}, - {0x8238ee30, 0xeb889d}, - {0x8238ee31, 0xeb889e}, - {0x8238ee32, 0xeb889f}, - {0x8238ee33, 0xeb88a0}, - {0x8238ee34, 0xeb88a1}, - {0x8238ee35, 0xeb88a2}, - {0x8238ee36, 0xeb88a3}, - {0x8238ee37, 0xeb88a4}, - {0x8238ee38, 0xeb88a5}, - {0x8238ee39, 0xeb88a6}, - {0x8238ef30, 0xeb88a7}, - {0x8238ef31, 0xeb88a8}, - {0x8238ef32, 0xeb88a9}, - {0x8238ef33, 0xeb88aa}, - {0x8238ef34, 0xeb88ab}, - {0x8238ef35, 0xeb88ac}, - {0x8238ef36, 0xeb88ad}, - {0x8238ef37, 0xeb88ae}, - {0x8238ef38, 0xeb88af}, - {0x8238ef39, 0xeb88b0}, - {0x8238f030, 0xeb88b1}, - {0x8238f031, 0xeb88b2}, - {0x8238f032, 0xeb88b3}, - {0x8238f033, 0xeb88b4}, - {0x8238f034, 0xeb88b5}, - {0x8238f035, 0xeb88b6}, - {0x8238f036, 0xeb88b7}, - {0x8238f037, 0xeb88b8}, - {0x8238f038, 0xeb88b9}, - {0x8238f039, 0xeb88ba}, - {0x8238f130, 0xeb88bb}, - {0x8238f131, 0xeb88bc}, - {0x8238f132, 0xeb88bd}, - {0x8238f133, 0xeb88be}, - {0x8238f134, 0xeb88bf}, - {0x8238f135, 0xeb8980}, - {0x8238f136, 0xeb8981}, - {0x8238f137, 0xeb8982}, - {0x8238f138, 0xeb8983}, - {0x8238f139, 0xeb8984}, - {0x8238f230, 0xeb8985}, - {0x8238f231, 0xeb8986}, - {0x8238f232, 0xeb8987}, - {0x8238f233, 0xeb8988}, - {0x8238f234, 0xeb8989}, - {0x8238f235, 0xeb898a}, - {0x8238f236, 0xeb898b}, - {0x8238f237, 0xeb898c}, - {0x8238f238, 0xeb898d}, - {0x8238f239, 0xeb898e}, - {0x8238f330, 0xeb898f}, - {0x8238f331, 0xeb8990}, - {0x8238f332, 0xeb8991}, - {0x8238f333, 0xeb8992}, - {0x8238f334, 0xeb8993}, - {0x8238f335, 0xeb8994}, - {0x8238f336, 0xeb8995}, - {0x8238f337, 0xeb8996}, - {0x8238f338, 0xeb8997}, - {0x8238f339, 0xeb8998}, - {0x8238f430, 0xeb8999}, - {0x8238f431, 0xeb899a}, - {0x8238f432, 0xeb899b}, - {0x8238f433, 0xeb899c}, - {0x8238f434, 0xeb899d}, - {0x8238f435, 0xeb899e}, - {0x8238f436, 0xeb899f}, - {0x8238f437, 0xeb89a0}, - {0x8238f438, 0xeb89a1}, - {0x8238f439, 0xeb89a2}, - {0x8238f530, 0xeb89a3}, - {0x8238f531, 0xeb89a4}, - {0x8238f532, 0xeb89a5}, - {0x8238f533, 0xeb89a6}, - {0x8238f534, 0xeb89a7}, - {0x8238f535, 0xeb89a8}, - {0x8238f536, 0xeb89a9}, - {0x8238f537, 0xeb89aa}, - {0x8238f538, 0xeb89ab}, - {0x8238f539, 0xeb89ac}, - {0x8238f630, 0xeb89ad}, - {0x8238f631, 0xeb89ae}, - {0x8238f632, 0xeb89af}, - {0x8238f633, 0xeb89b0}, - {0x8238f634, 0xeb89b1}, - {0x8238f635, 0xeb89b2}, - {0x8238f636, 0xeb89b3}, - {0x8238f637, 0xeb89b4}, - {0x8238f638, 0xeb89b5}, - {0x8238f639, 0xeb89b6}, - {0x8238f730, 0xeb89b7}, - {0x8238f731, 0xeb89b8}, - {0x8238f732, 0xeb89b9}, - {0x8238f733, 0xeb89ba}, - {0x8238f734, 0xeb89bb}, - {0x8238f735, 0xeb89bc}, - {0x8238f736, 0xeb89bd}, - {0x8238f737, 0xeb89be}, - {0x8238f738, 0xeb89bf}, - {0x8238f739, 0xeb8a80}, - {0x8238f830, 0xeb8a81}, - {0x8238f831, 0xeb8a82}, - {0x8238f832, 0xeb8a83}, - {0x8238f833, 0xeb8a84}, - {0x8238f834, 0xeb8a85}, - {0x8238f835, 0xeb8a86}, - {0x8238f836, 0xeb8a87}, - {0x8238f837, 0xeb8a88}, - {0x8238f838, 0xeb8a89}, - {0x8238f839, 0xeb8a8a}, - {0x8238f930, 0xeb8a8b}, - {0x8238f931, 0xeb8a8c}, - {0x8238f932, 0xeb8a8d}, - {0x8238f933, 0xeb8a8e}, - {0x8238f934, 0xeb8a8f}, - {0x8238f935, 0xeb8a90}, - {0x8238f936, 0xeb8a91}, - {0x8238f937, 0xeb8a92}, - {0x8238f938, 0xeb8a93}, - {0x8238f939, 0xeb8a94}, - {0x8238fa30, 0xeb8a95}, - {0x8238fa31, 0xeb8a96}, - {0x8238fa32, 0xeb8a97}, - {0x8238fa33, 0xeb8a98}, - {0x8238fa34, 0xeb8a99}, - {0x8238fa35, 0xeb8a9a}, - {0x8238fa36, 0xeb8a9b}, - {0x8238fa37, 0xeb8a9c}, - {0x8238fa38, 0xeb8a9d}, - {0x8238fa39, 0xeb8a9e}, - {0x8238fb30, 0xeb8a9f}, - {0x8238fb31, 0xeb8aa0}, - {0x8238fb32, 0xeb8aa1}, - {0x8238fb33, 0xeb8aa2}, - {0x8238fb34, 0xeb8aa3}, - {0x8238fb35, 0xeb8aa4}, - {0x8238fb36, 0xeb8aa5}, - {0x8238fb37, 0xeb8aa6}, - {0x8238fb38, 0xeb8aa7}, - {0x8238fb39, 0xeb8aa8}, - {0x8238fc30, 0xeb8aa9}, - {0x8238fc31, 0xeb8aaa}, - {0x8238fc32, 0xeb8aab}, - {0x8238fc33, 0xeb8aac}, - {0x8238fc34, 0xeb8aad}, - {0x8238fc35, 0xeb8aae}, - {0x8238fc36, 0xeb8aaf}, - {0x8238fc37, 0xeb8ab0}, - {0x8238fc38, 0xeb8ab1}, - {0x8238fc39, 0xeb8ab2}, - {0x8238fd30, 0xeb8ab3}, - {0x8238fd31, 0xeb8ab4}, - {0x8238fd32, 0xeb8ab5}, - {0x8238fd33, 0xeb8ab6}, - {0x8238fd34, 0xeb8ab7}, - {0x8238fd35, 0xeb8ab8}, - {0x8238fd36, 0xeb8ab9}, - {0x8238fd37, 0xeb8aba}, - {0x8238fd38, 0xeb8abb}, - {0x8238fd39, 0xeb8abc}, - {0x8238fe30, 0xeb8abd}, - {0x8238fe31, 0xeb8abe}, - {0x8238fe32, 0xeb8abf}, - {0x8238fe33, 0xeb8b80}, - {0x8238fe34, 0xeb8b81}, - {0x8238fe35, 0xeb8b82}, - {0x8238fe36, 0xeb8b83}, - {0x8238fe37, 0xeb8b84}, - {0x8238fe38, 0xeb8b85}, - {0x8238fe39, 0xeb8b86}, - {0x82398130, 0xeb8b87}, - {0x82398131, 0xeb8b88}, - {0x82398132, 0xeb8b89}, - {0x82398133, 0xeb8b8a}, - {0x82398134, 0xeb8b8b}, - {0x82398135, 0xeb8b8c}, - {0x82398136, 0xeb8b8d}, - {0x82398137, 0xeb8b8e}, - {0x82398138, 0xeb8b8f}, - {0x82398139, 0xeb8b90}, - {0x82398230, 0xeb8b91}, - {0x82398231, 0xeb8b92}, - {0x82398232, 0xeb8b93}, - {0x82398233, 0xeb8b94}, - {0x82398234, 0xeb8b95}, - {0x82398235, 0xeb8b96}, - {0x82398236, 0xeb8b97}, - {0x82398237, 0xeb8b98}, - {0x82398238, 0xeb8b99}, - {0x82398239, 0xeb8b9a}, - {0x82398330, 0xeb8b9b}, - {0x82398331, 0xeb8b9c}, - {0x82398332, 0xeb8b9d}, - {0x82398333, 0xeb8b9e}, - {0x82398334, 0xeb8b9f}, - {0x82398335, 0xeb8ba0}, - {0x82398336, 0xeb8ba1}, - {0x82398337, 0xeb8ba2}, - {0x82398338, 0xeb8ba3}, - {0x82398339, 0xeb8ba4}, - {0x82398430, 0xeb8ba5}, - {0x82398431, 0xeb8ba6}, - {0x82398432, 0xeb8ba7}, - {0x82398433, 0xeb8ba8}, - {0x82398434, 0xeb8ba9}, - {0x82398435, 0xeb8baa}, - {0x82398436, 0xeb8bab}, - {0x82398437, 0xeb8bac}, - {0x82398438, 0xeb8bad}, - {0x82398439, 0xeb8bae}, - {0x82398530, 0xeb8baf}, - {0x82398531, 0xeb8bb0}, - {0x82398532, 0xeb8bb1}, - {0x82398533, 0xeb8bb2}, - {0x82398534, 0xeb8bb3}, - {0x82398535, 0xeb8bb4}, - {0x82398536, 0xeb8bb5}, - {0x82398537, 0xeb8bb6}, - {0x82398538, 0xeb8bb7}, - {0x82398539, 0xeb8bb8}, - {0x82398630, 0xeb8bb9}, - {0x82398631, 0xeb8bba}, - {0x82398632, 0xeb8bbb}, - {0x82398633, 0xeb8bbc}, - {0x82398634, 0xeb8bbd}, - {0x82398635, 0xeb8bbe}, - {0x82398636, 0xeb8bbf}, - {0x82398637, 0xeb8c80}, - {0x82398638, 0xeb8c81}, - {0x82398639, 0xeb8c82}, - {0x82398730, 0xeb8c83}, - {0x82398731, 0xeb8c84}, - {0x82398732, 0xeb8c85}, - {0x82398733, 0xeb8c86}, - {0x82398734, 0xeb8c87}, - {0x82398735, 0xeb8c88}, - {0x82398736, 0xeb8c89}, - {0x82398737, 0xeb8c8a}, - {0x82398738, 0xeb8c8b}, - {0x82398739, 0xeb8c8c}, - {0x82398830, 0xeb8c8d}, - {0x82398831, 0xeb8c8e}, - {0x82398832, 0xeb8c8f}, - {0x82398833, 0xeb8c90}, - {0x82398834, 0xeb8c91}, - {0x82398835, 0xeb8c92}, - {0x82398836, 0xeb8c93}, - {0x82398837, 0xeb8c94}, - {0x82398838, 0xeb8c95}, - {0x82398839, 0xeb8c96}, - {0x82398930, 0xeb8c97}, - {0x82398931, 0xeb8c98}, - {0x82398932, 0xeb8c99}, - {0x82398933, 0xeb8c9a}, - {0x82398934, 0xeb8c9b}, - {0x82398935, 0xeb8c9c}, - {0x82398936, 0xeb8c9d}, - {0x82398937, 0xeb8c9e}, - {0x82398938, 0xeb8c9f}, - {0x82398939, 0xeb8ca0}, - {0x82398a30, 0xeb8ca1}, - {0x82398a31, 0xeb8ca2}, - {0x82398a32, 0xeb8ca3}, - {0x82398a33, 0xeb8ca4}, - {0x82398a34, 0xeb8ca5}, - {0x82398a35, 0xeb8ca6}, - {0x82398a36, 0xeb8ca7}, - {0x82398a37, 0xeb8ca8}, - {0x82398a38, 0xeb8ca9}, - {0x82398a39, 0xeb8caa}, - {0x82398b30, 0xeb8cab}, - {0x82398b31, 0xeb8cac}, - {0x82398b32, 0xeb8cad}, - {0x82398b33, 0xeb8cae}, - {0x82398b34, 0xeb8caf}, - {0x82398b35, 0xeb8cb0}, - {0x82398b36, 0xeb8cb1}, - {0x82398b37, 0xeb8cb2}, - {0x82398b38, 0xeb8cb3}, - {0x82398b39, 0xeb8cb4}, - {0x82398c30, 0xeb8cb5}, - {0x82398c31, 0xeb8cb6}, - {0x82398c32, 0xeb8cb7}, - {0x82398c33, 0xeb8cb8}, - {0x82398c34, 0xeb8cb9}, - {0x82398c35, 0xeb8cba}, - {0x82398c36, 0xeb8cbb}, - {0x82398c37, 0xeb8cbc}, - {0x82398c38, 0xeb8cbd}, - {0x82398c39, 0xeb8cbe}, - {0x82398d30, 0xeb8cbf}, - {0x82398d31, 0xeb8d80}, - {0x82398d32, 0xeb8d81}, - {0x82398d33, 0xeb8d82}, - {0x82398d34, 0xeb8d83}, - {0x82398d35, 0xeb8d84}, - {0x82398d36, 0xeb8d85}, - {0x82398d37, 0xeb8d86}, - {0x82398d38, 0xeb8d87}, - {0x82398d39, 0xeb8d88}, - {0x82398e30, 0xeb8d89}, - {0x82398e31, 0xeb8d8a}, - {0x82398e32, 0xeb8d8b}, - {0x82398e33, 0xeb8d8c}, - {0x82398e34, 0xeb8d8d}, - {0x82398e35, 0xeb8d8e}, - {0x82398e36, 0xeb8d8f}, - {0x82398e37, 0xeb8d90}, - {0x82398e38, 0xeb8d91}, - {0x82398e39, 0xeb8d92}, - {0x82398f30, 0xeb8d93}, - {0x82398f31, 0xeb8d94}, - {0x82398f32, 0xeb8d95}, - {0x82398f33, 0xeb8d96}, - {0x82398f34, 0xeb8d97}, - {0x82398f35, 0xeb8d98}, - {0x82398f36, 0xeb8d99}, - {0x82398f37, 0xeb8d9a}, - {0x82398f38, 0xeb8d9b}, - {0x82398f39, 0xeb8d9c}, - {0x82399030, 0xeb8d9d}, - {0x82399031, 0xeb8d9e}, - {0x82399032, 0xeb8d9f}, - {0x82399033, 0xeb8da0}, - {0x82399034, 0xeb8da1}, - {0x82399035, 0xeb8da2}, - {0x82399036, 0xeb8da3}, - {0x82399037, 0xeb8da4}, - {0x82399038, 0xeb8da5}, - {0x82399039, 0xeb8da6}, - {0x82399130, 0xeb8da7}, - {0x82399131, 0xeb8da8}, - {0x82399132, 0xeb8da9}, - {0x82399133, 0xeb8daa}, - {0x82399134, 0xeb8dab}, - {0x82399135, 0xeb8dac}, - {0x82399136, 0xeb8dad}, - {0x82399137, 0xeb8dae}, - {0x82399138, 0xeb8daf}, - {0x82399139, 0xeb8db0}, - {0x82399230, 0xeb8db1}, - {0x82399231, 0xeb8db2}, - {0x82399232, 0xeb8db3}, - {0x82399233, 0xeb8db4}, - {0x82399234, 0xeb8db5}, - {0x82399235, 0xeb8db6}, - {0x82399236, 0xeb8db7}, - {0x82399237, 0xeb8db8}, - {0x82399238, 0xeb8db9}, - {0x82399239, 0xeb8dba}, - {0x82399330, 0xeb8dbb}, - {0x82399331, 0xeb8dbc}, - {0x82399332, 0xeb8dbd}, - {0x82399333, 0xeb8dbe}, - {0x82399334, 0xeb8dbf}, - {0x82399335, 0xeb8e80}, - {0x82399336, 0xeb8e81}, - {0x82399337, 0xeb8e82}, - {0x82399338, 0xeb8e83}, - {0x82399339, 0xeb8e84}, - {0x82399430, 0xeb8e85}, - {0x82399431, 0xeb8e86}, - {0x82399432, 0xeb8e87}, - {0x82399433, 0xeb8e88}, - {0x82399434, 0xeb8e89}, - {0x82399435, 0xeb8e8a}, - {0x82399436, 0xeb8e8b}, - {0x82399437, 0xeb8e8c}, - {0x82399438, 0xeb8e8d}, - {0x82399439, 0xeb8e8e}, - {0x82399530, 0xeb8e8f}, - {0x82399531, 0xeb8e90}, - {0x82399532, 0xeb8e91}, - {0x82399533, 0xeb8e92}, - {0x82399534, 0xeb8e93}, - {0x82399535, 0xeb8e94}, - {0x82399536, 0xeb8e95}, - {0x82399537, 0xeb8e96}, - {0x82399538, 0xeb8e97}, - {0x82399539, 0xeb8e98}, - {0x82399630, 0xeb8e99}, - {0x82399631, 0xeb8e9a}, - {0x82399632, 0xeb8e9b}, - {0x82399633, 0xeb8e9c}, - {0x82399634, 0xeb8e9d}, - {0x82399635, 0xeb8e9e}, - {0x82399636, 0xeb8e9f}, - {0x82399637, 0xeb8ea0}, - {0x82399638, 0xeb8ea1}, - {0x82399639, 0xeb8ea2}, - {0x82399730, 0xeb8ea3}, - {0x82399731, 0xeb8ea4}, - {0x82399732, 0xeb8ea5}, - {0x82399733, 0xeb8ea6}, - {0x82399734, 0xeb8ea7}, - {0x82399735, 0xeb8ea8}, - {0x82399736, 0xeb8ea9}, - {0x82399737, 0xeb8eaa}, - {0x82399738, 0xeb8eab}, - {0x82399739, 0xeb8eac}, - {0x82399830, 0xeb8ead}, - {0x82399831, 0xeb8eae}, - {0x82399832, 0xeb8eaf}, - {0x82399833, 0xeb8eb0}, - {0x82399834, 0xeb8eb1}, - {0x82399835, 0xeb8eb2}, - {0x82399836, 0xeb8eb3}, - {0x82399837, 0xeb8eb4}, - {0x82399838, 0xeb8eb5}, - {0x82399839, 0xeb8eb6}, - {0x82399930, 0xeb8eb7}, - {0x82399931, 0xeb8eb8}, - {0x82399932, 0xeb8eb9}, - {0x82399933, 0xeb8eba}, - {0x82399934, 0xeb8ebb}, - {0x82399935, 0xeb8ebc}, - {0x82399936, 0xeb8ebd}, - {0x82399937, 0xeb8ebe}, - {0x82399938, 0xeb8ebf}, - {0x82399939, 0xeb8f80}, - {0x82399a30, 0xeb8f81}, - {0x82399a31, 0xeb8f82}, - {0x82399a32, 0xeb8f83}, - {0x82399a33, 0xeb8f84}, - {0x82399a34, 0xeb8f85}, - {0x82399a35, 0xeb8f86}, - {0x82399a36, 0xeb8f87}, - {0x82399a37, 0xeb8f88}, - {0x82399a38, 0xeb8f89}, - {0x82399a39, 0xeb8f8a}, - {0x82399b30, 0xeb8f8b}, - {0x82399b31, 0xeb8f8c}, - {0x82399b32, 0xeb8f8d}, - {0x82399b33, 0xeb8f8e}, - {0x82399b34, 0xeb8f8f}, - {0x82399b35, 0xeb8f90}, - {0x82399b36, 0xeb8f91}, - {0x82399b37, 0xeb8f92}, - {0x82399b38, 0xeb8f93}, - {0x82399b39, 0xeb8f94}, - {0x82399c30, 0xeb8f95}, - {0x82399c31, 0xeb8f96}, - {0x82399c32, 0xeb8f97}, - {0x82399c33, 0xeb8f98}, - {0x82399c34, 0xeb8f99}, - {0x82399c35, 0xeb8f9a}, - {0x82399c36, 0xeb8f9b}, - {0x82399c37, 0xeb8f9c}, - {0x82399c38, 0xeb8f9d}, - {0x82399c39, 0xeb8f9e}, - {0x82399d30, 0xeb8f9f}, - {0x82399d31, 0xeb8fa0}, - {0x82399d32, 0xeb8fa1}, - {0x82399d33, 0xeb8fa2}, - {0x82399d34, 0xeb8fa3}, - {0x82399d35, 0xeb8fa4}, - {0x82399d36, 0xeb8fa5}, - {0x82399d37, 0xeb8fa6}, - {0x82399d38, 0xeb8fa7}, - {0x82399d39, 0xeb8fa8}, - {0x82399e30, 0xeb8fa9}, - {0x82399e31, 0xeb8faa}, - {0x82399e32, 0xeb8fab}, - {0x82399e33, 0xeb8fac}, - {0x82399e34, 0xeb8fad}, - {0x82399e35, 0xeb8fae}, - {0x82399e36, 0xeb8faf}, - {0x82399e37, 0xeb8fb0}, - {0x82399e38, 0xeb8fb1}, - {0x82399e39, 0xeb8fb2}, - {0x82399f30, 0xeb8fb3}, - {0x82399f31, 0xeb8fb4}, - {0x82399f32, 0xeb8fb5}, - {0x82399f33, 0xeb8fb6}, - {0x82399f34, 0xeb8fb7}, - {0x82399f35, 0xeb8fb8}, - {0x82399f36, 0xeb8fb9}, - {0x82399f37, 0xeb8fba}, - {0x82399f38, 0xeb8fbb}, - {0x82399f39, 0xeb8fbc}, - {0x8239a030, 0xeb8fbd}, - {0x8239a031, 0xeb8fbe}, - {0x8239a032, 0xeb8fbf}, - {0x8239a033, 0xeb9080}, - {0x8239a034, 0xeb9081}, - {0x8239a035, 0xeb9082}, - {0x8239a036, 0xeb9083}, - {0x8239a037, 0xeb9084}, - {0x8239a038, 0xeb9085}, - {0x8239a039, 0xeb9086}, - {0x8239a130, 0xeb9087}, - {0x8239a131, 0xeb9088}, - {0x8239a132, 0xeb9089}, - {0x8239a133, 0xeb908a}, - {0x8239a134, 0xeb908b}, - {0x8239a135, 0xeb908c}, - {0x8239a136, 0xeb908d}, - {0x8239a137, 0xeb908e}, - {0x8239a138, 0xeb908f}, - {0x8239a139, 0xeb9090}, - {0x8239a230, 0xeb9091}, - {0x8239a231, 0xeb9092}, - {0x8239a232, 0xeb9093}, - {0x8239a233, 0xeb9094}, - {0x8239a234, 0xeb9095}, - {0x8239a235, 0xeb9096}, - {0x8239a236, 0xeb9097}, - {0x8239a237, 0xeb9098}, - {0x8239a238, 0xeb9099}, - {0x8239a239, 0xeb909a}, - {0x8239a330, 0xeb909b}, - {0x8239a331, 0xeb909c}, - {0x8239a332, 0xeb909d}, - {0x8239a333, 0xeb909e}, - {0x8239a334, 0xeb909f}, - {0x8239a335, 0xeb90a0}, - {0x8239a336, 0xeb90a1}, - {0x8239a337, 0xeb90a2}, - {0x8239a338, 0xeb90a3}, - {0x8239a339, 0xeb90a4}, - {0x8239a430, 0xeb90a5}, - {0x8239a431, 0xeb90a6}, - {0x8239a432, 0xeb90a7}, - {0x8239a433, 0xeb90a8}, - {0x8239a434, 0xeb90a9}, - {0x8239a435, 0xeb90aa}, - {0x8239a436, 0xeb90ab}, - {0x8239a437, 0xeb90ac}, - {0x8239a438, 0xeb90ad}, - {0x8239a439, 0xeb90ae}, - {0x8239a530, 0xeb90af}, - {0x8239a531, 0xeb90b0}, - {0x8239a532, 0xeb90b1}, - {0x8239a533, 0xeb90b2}, - {0x8239a534, 0xeb90b3}, - {0x8239a535, 0xeb90b4}, - {0x8239a536, 0xeb90b5}, - {0x8239a537, 0xeb90b6}, - {0x8239a538, 0xeb90b7}, - {0x8239a539, 0xeb90b8}, - {0x8239a630, 0xeb90b9}, - {0x8239a631, 0xeb90ba}, - {0x8239a632, 0xeb90bb}, - {0x8239a633, 0xeb90bc}, - {0x8239a634, 0xeb90bd}, - {0x8239a635, 0xeb90be}, - {0x8239a636, 0xeb90bf}, - {0x8239a637, 0xeb9180}, - {0x8239a638, 0xeb9181}, - {0x8239a639, 0xeb9182}, - {0x8239a730, 0xeb9183}, - {0x8239a731, 0xeb9184}, - {0x8239a732, 0xeb9185}, - {0x8239a733, 0xeb9186}, - {0x8239a734, 0xeb9187}, - {0x8239a735, 0xeb9188}, - {0x8239a736, 0xeb9189}, - {0x8239a737, 0xeb918a}, - {0x8239a738, 0xeb918b}, - {0x8239a739, 0xeb918c}, - {0x8239a830, 0xeb918d}, - {0x8239a831, 0xeb918e}, - {0x8239a832, 0xeb918f}, - {0x8239a833, 0xeb9190}, - {0x8239a834, 0xeb9191}, - {0x8239a835, 0xeb9192}, - {0x8239a836, 0xeb9193}, - {0x8239a837, 0xeb9194}, - {0x8239a838, 0xeb9195}, - {0x8239a839, 0xeb9196}, - {0x8239a930, 0xeb9197}, - {0x8239a931, 0xeb9198}, - {0x8239a932, 0xeb9199}, - {0x8239a933, 0xeb919a}, - {0x8239a934, 0xeb919b}, - {0x8239a935, 0xeb919c}, - {0x8239a936, 0xeb919d}, - {0x8239a937, 0xeb919e}, - {0x8239a938, 0xeb919f}, - {0x8239a939, 0xeb91a0}, - {0x8239aa30, 0xeb91a1}, - {0x8239aa31, 0xeb91a2}, - {0x8239aa32, 0xeb91a3}, - {0x8239aa33, 0xeb91a4}, - {0x8239aa34, 0xeb91a5}, - {0x8239aa35, 0xeb91a6}, - {0x8239aa36, 0xeb91a7}, - {0x8239aa37, 0xeb91a8}, - {0x8239aa38, 0xeb91a9}, - {0x8239aa39, 0xeb91aa}, - {0x8239ab30, 0xeb91ab}, - {0x8239ab31, 0xeb91ac}, - {0x8239ab32, 0xeb91ad}, - {0x8239ab33, 0xeb91ae}, - {0x8239ab34, 0xeb91af}, - {0x8239ab35, 0xeb91b0}, - {0x8239ab36, 0xeb91b1}, - {0x8239ab37, 0xeb91b2}, - {0x8239ab38, 0xeb91b3}, - {0x8239ab39, 0xeb91b4}, - {0x8239ac30, 0xeb91b5}, - {0x8239ac31, 0xeb91b6}, - {0x8239ac32, 0xeb91b7}, - {0x8239ac33, 0xeb91b8}, - {0x8239ac34, 0xeb91b9}, - {0x8239ac35, 0xeb91ba}, - {0x8239ac36, 0xeb91bb}, - {0x8239ac37, 0xeb91bc}, - {0x8239ac38, 0xeb91bd}, - {0x8239ac39, 0xeb91be}, - {0x8239ad30, 0xeb91bf}, - {0x8239ad31, 0xeb9280}, - {0x8239ad32, 0xeb9281}, - {0x8239ad33, 0xeb9282}, - {0x8239ad34, 0xeb9283}, - {0x8239ad35, 0xeb9284}, - {0x8239ad36, 0xeb9285}, - {0x8239ad37, 0xeb9286}, - {0x8239ad38, 0xeb9287}, - {0x8239ad39, 0xeb9288}, - {0x8239ae30, 0xeb9289}, - {0x8239ae31, 0xeb928a}, - {0x8239ae32, 0xeb928b}, - {0x8239ae33, 0xeb928c}, - {0x8239ae34, 0xeb928d}, - {0x8239ae35, 0xeb928e}, - {0x8239ae36, 0xeb928f}, - {0x8239ae37, 0xeb9290}, - {0x8239ae38, 0xeb9291}, - {0x8239ae39, 0xeb9292}, - {0x8239af30, 0xeb9293}, - {0x8239af31, 0xeb9294}, - {0x8239af32, 0xeb9295}, - {0x8239af33, 0xeb9296}, - {0x8239af34, 0xeb9297}, - {0x8239af35, 0xeb9298}, - {0x8239af36, 0xeb9299}, - {0x8239af37, 0xeb929a}, - {0x8239af38, 0xeb929b}, - {0x8239af39, 0xeb929c}, - {0x8239b030, 0xeb929d}, - {0x8239b031, 0xeb929e}, - {0x8239b032, 0xeb929f}, - {0x8239b033, 0xeb92a0}, - {0x8239b034, 0xeb92a1}, - {0x8239b035, 0xeb92a2}, - {0x8239b036, 0xeb92a3}, - {0x8239b037, 0xeb92a4}, - {0x8239b038, 0xeb92a5}, - {0x8239b039, 0xeb92a6}, - {0x8239b130, 0xeb92a7}, - {0x8239b131, 0xeb92a8}, - {0x8239b132, 0xeb92a9}, - {0x8239b133, 0xeb92aa}, - {0x8239b134, 0xeb92ab}, - {0x8239b135, 0xeb92ac}, - {0x8239b136, 0xeb92ad}, - {0x8239b137, 0xeb92ae}, - {0x8239b138, 0xeb92af}, - {0x8239b139, 0xeb92b0}, - {0x8239b230, 0xeb92b1}, - {0x8239b231, 0xeb92b2}, - {0x8239b232, 0xeb92b3}, - {0x8239b233, 0xeb92b4}, - {0x8239b234, 0xeb92b5}, - {0x8239b235, 0xeb92b6}, - {0x8239b236, 0xeb92b7}, - {0x8239b237, 0xeb92b8}, - {0x8239b238, 0xeb92b9}, - {0x8239b239, 0xeb92ba}, - {0x8239b330, 0xeb92bb}, - {0x8239b331, 0xeb92bc}, - {0x8239b332, 0xeb92bd}, - {0x8239b333, 0xeb92be}, - {0x8239b334, 0xeb92bf}, - {0x8239b335, 0xeb9380}, - {0x8239b336, 0xeb9381}, - {0x8239b337, 0xeb9382}, - {0x8239b338, 0xeb9383}, - {0x8239b339, 0xeb9384}, - {0x8239b430, 0xeb9385}, - {0x8239b431, 0xeb9386}, - {0x8239b432, 0xeb9387}, - {0x8239b433, 0xeb9388}, - {0x8239b434, 0xeb9389}, - {0x8239b435, 0xeb938a}, - {0x8239b436, 0xeb938b}, - {0x8239b437, 0xeb938c}, - {0x8239b438, 0xeb938d}, - {0x8239b439, 0xeb938e}, - {0x8239b530, 0xeb938f}, - {0x8239b531, 0xeb9390}, - {0x8239b532, 0xeb9391}, - {0x8239b533, 0xeb9392}, - {0x8239b534, 0xeb9393}, - {0x8239b535, 0xeb9394}, - {0x8239b536, 0xeb9395}, - {0x8239b537, 0xeb9396}, - {0x8239b538, 0xeb9397}, - {0x8239b539, 0xeb9398}, - {0x8239b630, 0xeb9399}, - {0x8239b631, 0xeb939a}, - {0x8239b632, 0xeb939b}, - {0x8239b633, 0xeb939c}, - {0x8239b634, 0xeb939d}, - {0x8239b635, 0xeb939e}, - {0x8239b636, 0xeb939f}, - {0x8239b637, 0xeb93a0}, - {0x8239b638, 0xeb93a1}, - {0x8239b639, 0xeb93a2}, - {0x8239b730, 0xeb93a3}, - {0x8239b731, 0xeb93a4}, - {0x8239b732, 0xeb93a5}, - {0x8239b733, 0xeb93a6}, - {0x8239b734, 0xeb93a7}, - {0x8239b735, 0xeb93a8}, - {0x8239b736, 0xeb93a9}, - {0x8239b737, 0xeb93aa}, - {0x8239b738, 0xeb93ab}, - {0x8239b739, 0xeb93ac}, - {0x8239b830, 0xeb93ad}, - {0x8239b831, 0xeb93ae}, - {0x8239b832, 0xeb93af}, - {0x8239b833, 0xeb93b0}, - {0x8239b834, 0xeb93b1}, - {0x8239b835, 0xeb93b2}, - {0x8239b836, 0xeb93b3}, - {0x8239b837, 0xeb93b4}, - {0x8239b838, 0xeb93b5}, - {0x8239b839, 0xeb93b6}, - {0x8239b930, 0xeb93b7}, - {0x8239b931, 0xeb93b8}, - {0x8239b932, 0xeb93b9}, - {0x8239b933, 0xeb93ba}, - {0x8239b934, 0xeb93bb}, - {0x8239b935, 0xeb93bc}, - {0x8239b936, 0xeb93bd}, - {0x8239b937, 0xeb93be}, - {0x8239b938, 0xeb93bf}, - {0x8239b939, 0xeb9480}, - {0x8239ba30, 0xeb9481}, - {0x8239ba31, 0xeb9482}, - {0x8239ba32, 0xeb9483}, - {0x8239ba33, 0xeb9484}, - {0x8239ba34, 0xeb9485}, - {0x8239ba35, 0xeb9486}, - {0x8239ba36, 0xeb9487}, - {0x8239ba37, 0xeb9488}, - {0x8239ba38, 0xeb9489}, - {0x8239ba39, 0xeb948a}, - {0x8239bb30, 0xeb948b}, - {0x8239bb31, 0xeb948c}, - {0x8239bb32, 0xeb948d}, - {0x8239bb33, 0xeb948e}, - {0x8239bb34, 0xeb948f}, - {0x8239bb35, 0xeb9490}, - {0x8239bb36, 0xeb9491}, - {0x8239bb37, 0xeb9492}, - {0x8239bb38, 0xeb9493}, - {0x8239bb39, 0xeb9494}, - {0x8239bc30, 0xeb9495}, - {0x8239bc31, 0xeb9496}, - {0x8239bc32, 0xeb9497}, - {0x8239bc33, 0xeb9498}, - {0x8239bc34, 0xeb9499}, - {0x8239bc35, 0xeb949a}, - {0x8239bc36, 0xeb949b}, - {0x8239bc37, 0xeb949c}, - {0x8239bc38, 0xeb949d}, - {0x8239bc39, 0xeb949e}, - {0x8239bd30, 0xeb949f}, - {0x8239bd31, 0xeb94a0}, - {0x8239bd32, 0xeb94a1}, - {0x8239bd33, 0xeb94a2}, - {0x8239bd34, 0xeb94a3}, - {0x8239bd35, 0xeb94a4}, - {0x8239bd36, 0xeb94a5}, - {0x8239bd37, 0xeb94a6}, - {0x8239bd38, 0xeb94a7}, - {0x8239bd39, 0xeb94a8}, - {0x8239be30, 0xeb94a9}, - {0x8239be31, 0xeb94aa}, - {0x8239be32, 0xeb94ab}, - {0x8239be33, 0xeb94ac}, - {0x8239be34, 0xeb94ad}, - {0x8239be35, 0xeb94ae}, - {0x8239be36, 0xeb94af}, - {0x8239be37, 0xeb94b0}, - {0x8239be38, 0xeb94b1}, - {0x8239be39, 0xeb94b2}, - {0x8239bf30, 0xeb94b3}, - {0x8239bf31, 0xeb94b4}, - {0x8239bf32, 0xeb94b5}, - {0x8239bf33, 0xeb94b6}, - {0x8239bf34, 0xeb94b7}, - {0x8239bf35, 0xeb94b8}, - {0x8239bf36, 0xeb94b9}, - {0x8239bf37, 0xeb94ba}, - {0x8239bf38, 0xeb94bb}, - {0x8239bf39, 0xeb94bc}, - {0x8239c030, 0xeb94bd}, - {0x8239c031, 0xeb94be}, - {0x8239c032, 0xeb94bf}, - {0x8239c033, 0xeb9580}, - {0x8239c034, 0xeb9581}, - {0x8239c035, 0xeb9582}, - {0x8239c036, 0xeb9583}, - {0x8239c037, 0xeb9584}, - {0x8239c038, 0xeb9585}, - {0x8239c039, 0xeb9586}, - {0x8239c130, 0xeb9587}, - {0x8239c131, 0xeb9588}, - {0x8239c132, 0xeb9589}, - {0x8239c133, 0xeb958a}, - {0x8239c134, 0xeb958b}, - {0x8239c135, 0xeb958c}, - {0x8239c136, 0xeb958d}, - {0x8239c137, 0xeb958e}, - {0x8239c138, 0xeb958f}, - {0x8239c139, 0xeb9590}, - {0x8239c230, 0xeb9591}, - {0x8239c231, 0xeb9592}, - {0x8239c232, 0xeb9593}, - {0x8239c233, 0xeb9594}, - {0x8239c234, 0xeb9595}, - {0x8239c235, 0xeb9596}, - {0x8239c236, 0xeb9597}, - {0x8239c237, 0xeb9598}, - {0x8239c238, 0xeb9599}, - {0x8239c239, 0xeb959a}, - {0x8239c330, 0xeb959b}, - {0x8239c331, 0xeb959c}, - {0x8239c332, 0xeb959d}, - {0x8239c333, 0xeb959e}, - {0x8239c334, 0xeb959f}, - {0x8239c335, 0xeb95a0}, - {0x8239c336, 0xeb95a1}, - {0x8239c337, 0xeb95a2}, - {0x8239c338, 0xeb95a3}, - {0x8239c339, 0xeb95a4}, - {0x8239c430, 0xeb95a5}, - {0x8239c431, 0xeb95a6}, - {0x8239c432, 0xeb95a7}, - {0x8239c433, 0xeb95a8}, - {0x8239c434, 0xeb95a9}, - {0x8239c435, 0xeb95aa}, - {0x8239c436, 0xeb95ab}, - {0x8239c437, 0xeb95ac}, - {0x8239c438, 0xeb95ad}, - {0x8239c439, 0xeb95ae}, - {0x8239c530, 0xeb95af}, - {0x8239c531, 0xeb95b0}, - {0x8239c532, 0xeb95b1}, - {0x8239c533, 0xeb95b2}, - {0x8239c534, 0xeb95b3}, - {0x8239c535, 0xeb95b4}, - {0x8239c536, 0xeb95b5}, - {0x8239c537, 0xeb95b6}, - {0x8239c538, 0xeb95b7}, - {0x8239c539, 0xeb95b8}, - {0x8239c630, 0xeb95b9}, - {0x8239c631, 0xeb95ba}, - {0x8239c632, 0xeb95bb}, - {0x8239c633, 0xeb95bc}, - {0x8239c634, 0xeb95bd}, - {0x8239c635, 0xeb95be}, - {0x8239c636, 0xeb95bf}, - {0x8239c637, 0xeb9680}, - {0x8239c638, 0xeb9681}, - {0x8239c639, 0xeb9682}, - {0x8239c730, 0xeb9683}, - {0x8239c731, 0xeb9684}, - {0x8239c732, 0xeb9685}, - {0x8239c733, 0xeb9686}, - {0x8239c734, 0xeb9687}, - {0x8239c735, 0xeb9688}, - {0x8239c736, 0xeb9689}, - {0x8239c737, 0xeb968a}, - {0x8239c738, 0xeb968b}, - {0x8239c739, 0xeb968c}, - {0x8239c830, 0xeb968d}, - {0x8239c831, 0xeb968e}, - {0x8239c832, 0xeb968f}, - {0x8239c833, 0xeb9690}, - {0x8239c834, 0xeb9691}, - {0x8239c835, 0xeb9692}, - {0x8239c836, 0xeb9693}, - {0x8239c837, 0xeb9694}, - {0x8239c838, 0xeb9695}, - {0x8239c839, 0xeb9696}, - {0x8239c930, 0xeb9697}, - {0x8239c931, 0xeb9698}, - {0x8239c932, 0xeb9699}, - {0x8239c933, 0xeb969a}, - {0x8239c934, 0xeb969b}, - {0x8239c935, 0xeb969c}, - {0x8239c936, 0xeb969d}, - {0x8239c937, 0xeb969e}, - {0x8239c938, 0xeb969f}, - {0x8239c939, 0xeb96a0}, - {0x8239ca30, 0xeb96a1}, - {0x8239ca31, 0xeb96a2}, - {0x8239ca32, 0xeb96a3}, - {0x8239ca33, 0xeb96a4}, - {0x8239ca34, 0xeb96a5}, - {0x8239ca35, 0xeb96a6}, - {0x8239ca36, 0xeb96a7}, - {0x8239ca37, 0xeb96a8}, - {0x8239ca38, 0xeb96a9}, - {0x8239ca39, 0xeb96aa}, - {0x8239cb30, 0xeb96ab}, - {0x8239cb31, 0xeb96ac}, - {0x8239cb32, 0xeb96ad}, - {0x8239cb33, 0xeb96ae}, - {0x8239cb34, 0xeb96af}, - {0x8239cb35, 0xeb96b0}, - {0x8239cb36, 0xeb96b1}, - {0x8239cb37, 0xeb96b2}, - {0x8239cb38, 0xeb96b3}, - {0x8239cb39, 0xeb96b4}, - {0x8239cc30, 0xeb96b5}, - {0x8239cc31, 0xeb96b6}, - {0x8239cc32, 0xeb96b7}, - {0x8239cc33, 0xeb96b8}, - {0x8239cc34, 0xeb96b9}, - {0x8239cc35, 0xeb96ba}, - {0x8239cc36, 0xeb96bb}, - {0x8239cc37, 0xeb96bc}, - {0x8239cc38, 0xeb96bd}, - {0x8239cc39, 0xeb96be}, - {0x8239cd30, 0xeb96bf}, - {0x8239cd31, 0xeb9780}, - {0x8239cd32, 0xeb9781}, - {0x8239cd33, 0xeb9782}, - {0x8239cd34, 0xeb9783}, - {0x8239cd35, 0xeb9784}, - {0x8239cd36, 0xeb9785}, - {0x8239cd37, 0xeb9786}, - {0x8239cd38, 0xeb9787}, - {0x8239cd39, 0xeb9788}, - {0x8239ce30, 0xeb9789}, - {0x8239ce31, 0xeb978a}, - {0x8239ce32, 0xeb978b}, - {0x8239ce33, 0xeb978c}, - {0x8239ce34, 0xeb978d}, - {0x8239ce35, 0xeb978e}, - {0x8239ce36, 0xeb978f}, - {0x8239ce37, 0xeb9790}, - {0x8239ce38, 0xeb9791}, - {0x8239ce39, 0xeb9792}, - {0x8239cf30, 0xeb9793}, - {0x8239cf31, 0xeb9794}, - {0x8239cf32, 0xeb9795}, - {0x8239cf33, 0xeb9796}, - {0x8239cf34, 0xeb9797}, - {0x8239cf35, 0xeb9798}, - {0x8239cf36, 0xeb9799}, - {0x8239cf37, 0xeb979a}, - {0x8239cf38, 0xeb979b}, - {0x8239cf39, 0xeb979c}, - {0x8239d030, 0xeb979d}, - {0x8239d031, 0xeb979e}, - {0x8239d032, 0xeb979f}, - {0x8239d033, 0xeb97a0}, - {0x8239d034, 0xeb97a1}, - {0x8239d035, 0xeb97a2}, - {0x8239d036, 0xeb97a3}, - {0x8239d037, 0xeb97a4}, - {0x8239d038, 0xeb97a5}, - {0x8239d039, 0xeb97a6}, - {0x8239d130, 0xeb97a7}, - {0x8239d131, 0xeb97a8}, - {0x8239d132, 0xeb97a9}, - {0x8239d133, 0xeb97aa}, - {0x8239d134, 0xeb97ab}, - {0x8239d135, 0xeb97ac}, - {0x8239d136, 0xeb97ad}, - {0x8239d137, 0xeb97ae}, - {0x8239d138, 0xeb97af}, - {0x8239d139, 0xeb97b0}, - {0x8239d230, 0xeb97b1}, - {0x8239d231, 0xeb97b2}, - {0x8239d232, 0xeb97b3}, - {0x8239d233, 0xeb97b4}, - {0x8239d234, 0xeb97b5}, - {0x8239d235, 0xeb97b6}, - {0x8239d236, 0xeb97b7}, - {0x8239d237, 0xeb97b8}, - {0x8239d238, 0xeb97b9}, - {0x8239d239, 0xeb97ba}, - {0x8239d330, 0xeb97bb}, - {0x8239d331, 0xeb97bc}, - {0x8239d332, 0xeb97bd}, - {0x8239d333, 0xeb97be}, - {0x8239d334, 0xeb97bf}, - {0x8239d335, 0xeb9880}, - {0x8239d336, 0xeb9881}, - {0x8239d337, 0xeb9882}, - {0x8239d338, 0xeb9883}, - {0x8239d339, 0xeb9884}, - {0x8239d430, 0xeb9885}, - {0x8239d431, 0xeb9886}, - {0x8239d432, 0xeb9887}, - {0x8239d433, 0xeb9888}, - {0x8239d434, 0xeb9889}, - {0x8239d435, 0xeb988a}, - {0x8239d436, 0xeb988b}, - {0x8239d437, 0xeb988c}, - {0x8239d438, 0xeb988d}, - {0x8239d439, 0xeb988e}, - {0x8239d530, 0xeb988f}, - {0x8239d531, 0xeb9890}, - {0x8239d532, 0xeb9891}, - {0x8239d533, 0xeb9892}, - {0x8239d534, 0xeb9893}, - {0x8239d535, 0xeb9894}, - {0x8239d536, 0xeb9895}, - {0x8239d537, 0xeb9896}, - {0x8239d538, 0xeb9897}, - {0x8239d539, 0xeb9898}, - {0x8239d630, 0xeb9899}, - {0x8239d631, 0xeb989a}, - {0x8239d632, 0xeb989b}, - {0x8239d633, 0xeb989c}, - {0x8239d634, 0xeb989d}, - {0x8239d635, 0xeb989e}, - {0x8239d636, 0xeb989f}, - {0x8239d637, 0xeb98a0}, - {0x8239d638, 0xeb98a1}, - {0x8239d639, 0xeb98a2}, - {0x8239d730, 0xeb98a3}, - {0x8239d731, 0xeb98a4}, - {0x8239d732, 0xeb98a5}, - {0x8239d733, 0xeb98a6}, - {0x8239d734, 0xeb98a7}, - {0x8239d735, 0xeb98a8}, - {0x8239d736, 0xeb98a9}, - {0x8239d737, 0xeb98aa}, - {0x8239d738, 0xeb98ab}, - {0x8239d739, 0xeb98ac}, - {0x8239d830, 0xeb98ad}, - {0x8239d831, 0xeb98ae}, - {0x8239d832, 0xeb98af}, - {0x8239d833, 0xeb98b0}, - {0x8239d834, 0xeb98b1}, - {0x8239d835, 0xeb98b2}, - {0x8239d836, 0xeb98b3}, - {0x8239d837, 0xeb98b4}, - {0x8239d838, 0xeb98b5}, - {0x8239d839, 0xeb98b6}, - {0x8239d930, 0xeb98b7}, - {0x8239d931, 0xeb98b8}, - {0x8239d932, 0xeb98b9}, - {0x8239d933, 0xeb98ba}, - {0x8239d934, 0xeb98bb}, - {0x8239d935, 0xeb98bc}, - {0x8239d936, 0xeb98bd}, - {0x8239d937, 0xeb98be}, - {0x8239d938, 0xeb98bf}, - {0x8239d939, 0xeb9980}, - {0x8239da30, 0xeb9981}, - {0x8239da31, 0xeb9982}, - {0x8239da32, 0xeb9983}, - {0x8239da33, 0xeb9984}, - {0x8239da34, 0xeb9985}, - {0x8239da35, 0xeb9986}, - {0x8239da36, 0xeb9987}, - {0x8239da37, 0xeb9988}, - {0x8239da38, 0xeb9989}, - {0x8239da39, 0xeb998a}, - {0x8239db30, 0xeb998b}, - {0x8239db31, 0xeb998c}, - {0x8239db32, 0xeb998d}, - {0x8239db33, 0xeb998e}, - {0x8239db34, 0xeb998f}, - {0x8239db35, 0xeb9990}, - {0x8239db36, 0xeb9991}, - {0x8239db37, 0xeb9992}, - {0x8239db38, 0xeb9993}, - {0x8239db39, 0xeb9994}, - {0x8239dc30, 0xeb9995}, - {0x8239dc31, 0xeb9996}, - {0x8239dc32, 0xeb9997}, - {0x8239dc33, 0xeb9998}, - {0x8239dc34, 0xeb9999}, - {0x8239dc35, 0xeb999a}, - {0x8239dc36, 0xeb999b}, - {0x8239dc37, 0xeb999c}, - {0x8239dc38, 0xeb999d}, - {0x8239dc39, 0xeb999e}, - {0x8239dd30, 0xeb999f}, - {0x8239dd31, 0xeb99a0}, - {0x8239dd32, 0xeb99a1}, - {0x8239dd33, 0xeb99a2}, - {0x8239dd34, 0xeb99a3}, - {0x8239dd35, 0xeb99a4}, - {0x8239dd36, 0xeb99a5}, - {0x8239dd37, 0xeb99a6}, - {0x8239dd38, 0xeb99a7}, - {0x8239dd39, 0xeb99a8}, - {0x8239de30, 0xeb99a9}, - {0x8239de31, 0xeb99aa}, - {0x8239de32, 0xeb99ab}, - {0x8239de33, 0xeb99ac}, - {0x8239de34, 0xeb99ad}, - {0x8239de35, 0xeb99ae}, - {0x8239de36, 0xeb99af}, - {0x8239de37, 0xeb99b0}, - {0x8239de38, 0xeb99b1}, - {0x8239de39, 0xeb99b2}, - {0x8239df30, 0xeb99b3}, - {0x8239df31, 0xeb99b4}, - {0x8239df32, 0xeb99b5}, - {0x8239df33, 0xeb99b6}, - {0x8239df34, 0xeb99b7}, - {0x8239df35, 0xeb99b8}, - {0x8239df36, 0xeb99b9}, - {0x8239df37, 0xeb99ba}, - {0x8239df38, 0xeb99bb}, - {0x8239df39, 0xeb99bc}, - {0x8239e030, 0xeb99bd}, - {0x8239e031, 0xeb99be}, - {0x8239e032, 0xeb99bf}, - {0x8239e033, 0xeb9a80}, - {0x8239e034, 0xeb9a81}, - {0x8239e035, 0xeb9a82}, - {0x8239e036, 0xeb9a83}, - {0x8239e037, 0xeb9a84}, - {0x8239e038, 0xeb9a85}, - {0x8239e039, 0xeb9a86}, - {0x8239e130, 0xeb9a87}, - {0x8239e131, 0xeb9a88}, - {0x8239e132, 0xeb9a89}, - {0x8239e133, 0xeb9a8a}, - {0x8239e134, 0xeb9a8b}, - {0x8239e135, 0xeb9a8c}, - {0x8239e136, 0xeb9a8d}, - {0x8239e137, 0xeb9a8e}, - {0x8239e138, 0xeb9a8f}, - {0x8239e139, 0xeb9a90}, - {0x8239e230, 0xeb9a91}, - {0x8239e231, 0xeb9a92}, - {0x8239e232, 0xeb9a93}, - {0x8239e233, 0xeb9a94}, - {0x8239e234, 0xeb9a95}, - {0x8239e235, 0xeb9a96}, - {0x8239e236, 0xeb9a97}, - {0x8239e237, 0xeb9a98}, - {0x8239e238, 0xeb9a99}, - {0x8239e239, 0xeb9a9a}, - {0x8239e330, 0xeb9a9b}, - {0x8239e331, 0xeb9a9c}, - {0x8239e332, 0xeb9a9d}, - {0x8239e333, 0xeb9a9e}, - {0x8239e334, 0xeb9a9f}, - {0x8239e335, 0xeb9aa0}, - {0x8239e336, 0xeb9aa1}, - {0x8239e337, 0xeb9aa2}, - {0x8239e338, 0xeb9aa3}, - {0x8239e339, 0xeb9aa4}, - {0x8239e430, 0xeb9aa5}, - {0x8239e431, 0xeb9aa6}, - {0x8239e432, 0xeb9aa7}, - {0x8239e433, 0xeb9aa8}, - {0x8239e434, 0xeb9aa9}, - {0x8239e435, 0xeb9aaa}, - {0x8239e436, 0xeb9aab}, - {0x8239e437, 0xeb9aac}, - {0x8239e438, 0xeb9aad}, - {0x8239e439, 0xeb9aae}, - {0x8239e530, 0xeb9aaf}, - {0x8239e531, 0xeb9ab0}, - {0x8239e532, 0xeb9ab1}, - {0x8239e533, 0xeb9ab2}, - {0x8239e534, 0xeb9ab3}, - {0x8239e535, 0xeb9ab4}, - {0x8239e536, 0xeb9ab5}, - {0x8239e537, 0xeb9ab6}, - {0x8239e538, 0xeb9ab7}, - {0x8239e539, 0xeb9ab8}, - {0x8239e630, 0xeb9ab9}, - {0x8239e631, 0xeb9aba}, - {0x8239e632, 0xeb9abb}, - {0x8239e633, 0xeb9abc}, - {0x8239e634, 0xeb9abd}, - {0x8239e635, 0xeb9abe}, - {0x8239e636, 0xeb9abf}, - {0x8239e637, 0xeb9b80}, - {0x8239e638, 0xeb9b81}, - {0x8239e639, 0xeb9b82}, - {0x8239e730, 0xeb9b83}, - {0x8239e731, 0xeb9b84}, - {0x8239e732, 0xeb9b85}, - {0x8239e733, 0xeb9b86}, - {0x8239e734, 0xeb9b87}, - {0x8239e735, 0xeb9b88}, - {0x8239e736, 0xeb9b89}, - {0x8239e737, 0xeb9b8a}, - {0x8239e738, 0xeb9b8b}, - {0x8239e739, 0xeb9b8c}, - {0x8239e830, 0xeb9b8d}, - {0x8239e831, 0xeb9b8e}, - {0x8239e832, 0xeb9b8f}, - {0x8239e833, 0xeb9b90}, - {0x8239e834, 0xeb9b91}, - {0x8239e835, 0xeb9b92}, - {0x8239e836, 0xeb9b93}, - {0x8239e837, 0xeb9b94}, - {0x8239e838, 0xeb9b95}, - {0x8239e839, 0xeb9b96}, - {0x8239e930, 0xeb9b97}, - {0x8239e931, 0xeb9b98}, - {0x8239e932, 0xeb9b99}, - {0x8239e933, 0xeb9b9a}, - {0x8239e934, 0xeb9b9b}, - {0x8239e935, 0xeb9b9c}, - {0x8239e936, 0xeb9b9d}, - {0x8239e937, 0xeb9b9e}, - {0x8239e938, 0xeb9b9f}, - {0x8239e939, 0xeb9ba0}, - {0x8239ea30, 0xeb9ba1}, - {0x8239ea31, 0xeb9ba2}, - {0x8239ea32, 0xeb9ba3}, - {0x8239ea33, 0xeb9ba4}, - {0x8239ea34, 0xeb9ba5}, - {0x8239ea35, 0xeb9ba6}, - {0x8239ea36, 0xeb9ba7}, - {0x8239ea37, 0xeb9ba8}, - {0x8239ea38, 0xeb9ba9}, - {0x8239ea39, 0xeb9baa}, - {0x8239eb30, 0xeb9bab}, - {0x8239eb31, 0xeb9bac}, - {0x8239eb32, 0xeb9bad}, - {0x8239eb33, 0xeb9bae}, - {0x8239eb34, 0xeb9baf}, - {0x8239eb35, 0xeb9bb0}, - {0x8239eb36, 0xeb9bb1}, - {0x8239eb37, 0xeb9bb2}, - {0x8239eb38, 0xeb9bb3}, - {0x8239eb39, 0xeb9bb4}, - {0x8239ec30, 0xeb9bb5}, - {0x8239ec31, 0xeb9bb6}, - {0x8239ec32, 0xeb9bb7}, - {0x8239ec33, 0xeb9bb8}, - {0x8239ec34, 0xeb9bb9}, - {0x8239ec35, 0xeb9bba}, - {0x8239ec36, 0xeb9bbb}, - {0x8239ec37, 0xeb9bbc}, - {0x8239ec38, 0xeb9bbd}, - {0x8239ec39, 0xeb9bbe}, - {0x8239ed30, 0xeb9bbf}, - {0x8239ed31, 0xeb9c80}, - {0x8239ed32, 0xeb9c81}, - {0x8239ed33, 0xeb9c82}, - {0x8239ed34, 0xeb9c83}, - {0x8239ed35, 0xeb9c84}, - {0x8239ed36, 0xeb9c85}, - {0x8239ed37, 0xeb9c86}, - {0x8239ed38, 0xeb9c87}, - {0x8239ed39, 0xeb9c88}, - {0x8239ee30, 0xeb9c89}, - {0x8239ee31, 0xeb9c8a}, - {0x8239ee32, 0xeb9c8b}, - {0x8239ee33, 0xeb9c8c}, - {0x8239ee34, 0xeb9c8d}, - {0x8239ee35, 0xeb9c8e}, - {0x8239ee36, 0xeb9c8f}, - {0x8239ee37, 0xeb9c90}, - {0x8239ee38, 0xeb9c91}, - {0x8239ee39, 0xeb9c92}, - {0x8239ef30, 0xeb9c93}, - {0x8239ef31, 0xeb9c94}, - {0x8239ef32, 0xeb9c95}, - {0x8239ef33, 0xeb9c96}, - {0x8239ef34, 0xeb9c97}, - {0x8239ef35, 0xeb9c98}, - {0x8239ef36, 0xeb9c99}, - {0x8239ef37, 0xeb9c9a}, - {0x8239ef38, 0xeb9c9b}, - {0x8239ef39, 0xeb9c9c}, - {0x8239f030, 0xeb9c9d}, - {0x8239f031, 0xeb9c9e}, - {0x8239f032, 0xeb9c9f}, - {0x8239f033, 0xeb9ca0}, - {0x8239f034, 0xeb9ca1}, - {0x8239f035, 0xeb9ca2}, - {0x8239f036, 0xeb9ca3}, - {0x8239f037, 0xeb9ca4}, - {0x8239f038, 0xeb9ca5}, - {0x8239f039, 0xeb9ca6}, - {0x8239f130, 0xeb9ca7}, - {0x8239f131, 0xeb9ca8}, - {0x8239f132, 0xeb9ca9}, - {0x8239f133, 0xeb9caa}, - {0x8239f134, 0xeb9cab}, - {0x8239f135, 0xeb9cac}, - {0x8239f136, 0xeb9cad}, - {0x8239f137, 0xeb9cae}, - {0x8239f138, 0xeb9caf}, - {0x8239f139, 0xeb9cb0}, - {0x8239f230, 0xeb9cb1}, - {0x8239f231, 0xeb9cb2}, - {0x8239f232, 0xeb9cb3}, - {0x8239f233, 0xeb9cb4}, - {0x8239f234, 0xeb9cb5}, - {0x8239f235, 0xeb9cb6}, - {0x8239f236, 0xeb9cb7}, - {0x8239f237, 0xeb9cb8}, - {0x8239f238, 0xeb9cb9}, - {0x8239f239, 0xeb9cba}, - {0x8239f330, 0xeb9cbb}, - {0x8239f331, 0xeb9cbc}, - {0x8239f332, 0xeb9cbd}, - {0x8239f333, 0xeb9cbe}, - {0x8239f334, 0xeb9cbf}, - {0x8239f335, 0xeb9d80}, - {0x8239f336, 0xeb9d81}, - {0x8239f337, 0xeb9d82}, - {0x8239f338, 0xeb9d83}, - {0x8239f339, 0xeb9d84}, - {0x8239f430, 0xeb9d85}, - {0x8239f431, 0xeb9d86}, - {0x8239f432, 0xeb9d87}, - {0x8239f433, 0xeb9d88}, - {0x8239f434, 0xeb9d89}, - {0x8239f435, 0xeb9d8a}, - {0x8239f436, 0xeb9d8b}, - {0x8239f437, 0xeb9d8c}, - {0x8239f438, 0xeb9d8d}, - {0x8239f439, 0xeb9d8e}, - {0x8239f530, 0xeb9d8f}, - {0x8239f531, 0xeb9d90}, - {0x8239f532, 0xeb9d91}, - {0x8239f533, 0xeb9d92}, - {0x8239f534, 0xeb9d93}, - {0x8239f535, 0xeb9d94}, - {0x8239f536, 0xeb9d95}, - {0x8239f537, 0xeb9d96}, - {0x8239f538, 0xeb9d97}, - {0x8239f539, 0xeb9d98}, - {0x8239f630, 0xeb9d99}, - {0x8239f631, 0xeb9d9a}, - {0x8239f632, 0xeb9d9b}, - {0x8239f633, 0xeb9d9c}, - {0x8239f634, 0xeb9d9d}, - {0x8239f635, 0xeb9d9e}, - {0x8239f636, 0xeb9d9f}, - {0x8239f637, 0xeb9da0}, - {0x8239f638, 0xeb9da1}, - {0x8239f639, 0xeb9da2}, - {0x8239f730, 0xeb9da3}, - {0x8239f731, 0xeb9da4}, - {0x8239f732, 0xeb9da5}, - {0x8239f733, 0xeb9da6}, - {0x8239f734, 0xeb9da7}, - {0x8239f735, 0xeb9da8}, - {0x8239f736, 0xeb9da9}, - {0x8239f737, 0xeb9daa}, - {0x8239f738, 0xeb9dab}, - {0x8239f739, 0xeb9dac}, - {0x8239f830, 0xeb9dad}, - {0x8239f831, 0xeb9dae}, - {0x8239f832, 0xeb9daf}, - {0x8239f833, 0xeb9db0}, - {0x8239f834, 0xeb9db1}, - {0x8239f835, 0xeb9db2}, - {0x8239f836, 0xeb9db3}, - {0x8239f837, 0xeb9db4}, - {0x8239f838, 0xeb9db5}, - {0x8239f839, 0xeb9db6}, - {0x8239f930, 0xeb9db7}, - {0x8239f931, 0xeb9db8}, - {0x8239f932, 0xeb9db9}, - {0x8239f933, 0xeb9dba}, - {0x8239f934, 0xeb9dbb}, - {0x8239f935, 0xeb9dbc}, - {0x8239f936, 0xeb9dbd}, - {0x8239f937, 0xeb9dbe}, - {0x8239f938, 0xeb9dbf}, - {0x8239f939, 0xeb9e80}, - {0x8239fa30, 0xeb9e81}, - {0x8239fa31, 0xeb9e82}, - {0x8239fa32, 0xeb9e83}, - {0x8239fa33, 0xeb9e84}, - {0x8239fa34, 0xeb9e85}, - {0x8239fa35, 0xeb9e86}, - {0x8239fa36, 0xeb9e87}, - {0x8239fa37, 0xeb9e88}, - {0x8239fa38, 0xeb9e89}, - {0x8239fa39, 0xeb9e8a}, - {0x8239fb30, 0xeb9e8b}, - {0x8239fb31, 0xeb9e8c}, - {0x8239fb32, 0xeb9e8d}, - {0x8239fb33, 0xeb9e8e}, - {0x8239fb34, 0xeb9e8f}, - {0x8239fb35, 0xeb9e90}, - {0x8239fb36, 0xeb9e91}, - {0x8239fb37, 0xeb9e92}, - {0x8239fb38, 0xeb9e93}, - {0x8239fb39, 0xeb9e94}, - {0x8239fc30, 0xeb9e95}, - {0x8239fc31, 0xeb9e96}, - {0x8239fc32, 0xeb9e97}, - {0x8239fc33, 0xeb9e98}, - {0x8239fc34, 0xeb9e99}, - {0x8239fc35, 0xeb9e9a}, - {0x8239fc36, 0xeb9e9b}, - {0x8239fc37, 0xeb9e9c}, - {0x8239fc38, 0xeb9e9d}, - {0x8239fc39, 0xeb9e9e}, - {0x8239fd30, 0xeb9e9f}, - {0x8239fd31, 0xeb9ea0}, - {0x8239fd32, 0xeb9ea1}, - {0x8239fd33, 0xeb9ea2}, - {0x8239fd34, 0xeb9ea3}, - {0x8239fd35, 0xeb9ea4}, - {0x8239fd36, 0xeb9ea5}, - {0x8239fd37, 0xeb9ea6}, - {0x8239fd38, 0xeb9ea7}, - {0x8239fd39, 0xeb9ea8}, - {0x8239fe30, 0xeb9ea9}, - {0x8239fe31, 0xeb9eaa}, - {0x8239fe32, 0xeb9eab}, - {0x8239fe33, 0xeb9eac}, - {0x8239fe34, 0xeb9ead}, - {0x8239fe35, 0xeb9eae}, - {0x8239fe36, 0xeb9eaf}, - {0x8239fe37, 0xeb9eb0}, - {0x8239fe38, 0xeb9eb1}, - {0x8239fe39, 0xeb9eb2}, - {0x83308130, 0xeb9eb3}, - {0x83308131, 0xeb9eb4}, - {0x83308132, 0xeb9eb5}, - {0x83308133, 0xeb9eb6}, - {0x83308134, 0xeb9eb7}, - {0x83308135, 0xeb9eb8}, - {0x83308136, 0xeb9eb9}, - {0x83308137, 0xeb9eba}, - {0x83308138, 0xeb9ebb}, - {0x83308139, 0xeb9ebc}, - {0x83308230, 0xeb9ebd}, - {0x83308231, 0xeb9ebe}, - {0x83308232, 0xeb9ebf}, - {0x83308233, 0xeb9f80}, - {0x83308234, 0xeb9f81}, - {0x83308235, 0xeb9f82}, - {0x83308236, 0xeb9f83}, - {0x83308237, 0xeb9f84}, - {0x83308238, 0xeb9f85}, - {0x83308239, 0xeb9f86}, - {0x83308330, 0xeb9f87}, - {0x83308331, 0xeb9f88}, - {0x83308332, 0xeb9f89}, - {0x83308333, 0xeb9f8a}, - {0x83308334, 0xeb9f8b}, - {0x83308335, 0xeb9f8c}, - {0x83308336, 0xeb9f8d}, - {0x83308337, 0xeb9f8e}, - {0x83308338, 0xeb9f8f}, - {0x83308339, 0xeb9f90}, - {0x83308430, 0xeb9f91}, - {0x83308431, 0xeb9f92}, - {0x83308432, 0xeb9f93}, - {0x83308433, 0xeb9f94}, - {0x83308434, 0xeb9f95}, - {0x83308435, 0xeb9f96}, - {0x83308436, 0xeb9f97}, - {0x83308437, 0xeb9f98}, - {0x83308438, 0xeb9f99}, - {0x83308439, 0xeb9f9a}, - {0x83308530, 0xeb9f9b}, - {0x83308531, 0xeb9f9c}, - {0x83308532, 0xeb9f9d}, - {0x83308533, 0xeb9f9e}, - {0x83308534, 0xeb9f9f}, - {0x83308535, 0xeb9fa0}, - {0x83308536, 0xeb9fa1}, - {0x83308537, 0xeb9fa2}, - {0x83308538, 0xeb9fa3}, - {0x83308539, 0xeb9fa4}, - {0x83308630, 0xeb9fa5}, - {0x83308631, 0xeb9fa6}, - {0x83308632, 0xeb9fa7}, - {0x83308633, 0xeb9fa8}, - {0x83308634, 0xeb9fa9}, - {0x83308635, 0xeb9faa}, - {0x83308636, 0xeb9fab}, - {0x83308637, 0xeb9fac}, - {0x83308638, 0xeb9fad}, - {0x83308639, 0xeb9fae}, - {0x83308730, 0xeb9faf}, - {0x83308731, 0xeb9fb0}, - {0x83308732, 0xeb9fb1}, - {0x83308733, 0xeb9fb2}, - {0x83308734, 0xeb9fb3}, - {0x83308735, 0xeb9fb4}, - {0x83308736, 0xeb9fb5}, - {0x83308737, 0xeb9fb6}, - {0x83308738, 0xeb9fb7}, - {0x83308739, 0xeb9fb8}, - {0x83308830, 0xeb9fb9}, - {0x83308831, 0xeb9fba}, - {0x83308832, 0xeb9fbb}, - {0x83308833, 0xeb9fbc}, - {0x83308834, 0xeb9fbd}, - {0x83308835, 0xeb9fbe}, - {0x83308836, 0xeb9fbf}, - {0x83308837, 0xeba080}, - {0x83308838, 0xeba081}, - {0x83308839, 0xeba082}, - {0x83308930, 0xeba083}, - {0x83308931, 0xeba084}, - {0x83308932, 0xeba085}, - {0x83308933, 0xeba086}, - {0x83308934, 0xeba087}, - {0x83308935, 0xeba088}, - {0x83308936, 0xeba089}, - {0x83308937, 0xeba08a}, - {0x83308938, 0xeba08b}, - {0x83308939, 0xeba08c}, - {0x83308a30, 0xeba08d}, - {0x83308a31, 0xeba08e}, - {0x83308a32, 0xeba08f}, - {0x83308a33, 0xeba090}, - {0x83308a34, 0xeba091}, - {0x83308a35, 0xeba092}, - {0x83308a36, 0xeba093}, - {0x83308a37, 0xeba094}, - {0x83308a38, 0xeba095}, - {0x83308a39, 0xeba096}, - {0x83308b30, 0xeba097}, - {0x83308b31, 0xeba098}, - {0x83308b32, 0xeba099}, - {0x83308b33, 0xeba09a}, - {0x83308b34, 0xeba09b}, - {0x83308b35, 0xeba09c}, - {0x83308b36, 0xeba09d}, - {0x83308b37, 0xeba09e}, - {0x83308b38, 0xeba09f}, - {0x83308b39, 0xeba0a0}, - {0x83308c30, 0xeba0a1}, - {0x83308c31, 0xeba0a2}, - {0x83308c32, 0xeba0a3}, - {0x83308c33, 0xeba0a4}, - {0x83308c34, 0xeba0a5}, - {0x83308c35, 0xeba0a6}, - {0x83308c36, 0xeba0a7}, - {0x83308c37, 0xeba0a8}, - {0x83308c38, 0xeba0a9}, - {0x83308c39, 0xeba0aa}, - {0x83308d30, 0xeba0ab}, - {0x83308d31, 0xeba0ac}, - {0x83308d32, 0xeba0ad}, - {0x83308d33, 0xeba0ae}, - {0x83308d34, 0xeba0af}, - {0x83308d35, 0xeba0b0}, - {0x83308d36, 0xeba0b1}, - {0x83308d37, 0xeba0b2}, - {0x83308d38, 0xeba0b3}, - {0x83308d39, 0xeba0b4}, - {0x83308e30, 0xeba0b5}, - {0x83308e31, 0xeba0b6}, - {0x83308e32, 0xeba0b7}, - {0x83308e33, 0xeba0b8}, - {0x83308e34, 0xeba0b9}, - {0x83308e35, 0xeba0ba}, - {0x83308e36, 0xeba0bb}, - {0x83308e37, 0xeba0bc}, - {0x83308e38, 0xeba0bd}, - {0x83308e39, 0xeba0be}, - {0x83308f30, 0xeba0bf}, - {0x83308f31, 0xeba180}, - {0x83308f32, 0xeba181}, - {0x83308f33, 0xeba182}, - {0x83308f34, 0xeba183}, - {0x83308f35, 0xeba184}, - {0x83308f36, 0xeba185}, - {0x83308f37, 0xeba186}, - {0x83308f38, 0xeba187}, - {0x83308f39, 0xeba188}, - {0x83309030, 0xeba189}, - {0x83309031, 0xeba18a}, - {0x83309032, 0xeba18b}, - {0x83309033, 0xeba18c}, - {0x83309034, 0xeba18d}, - {0x83309035, 0xeba18e}, - {0x83309036, 0xeba18f}, - {0x83309037, 0xeba190}, - {0x83309038, 0xeba191}, - {0x83309039, 0xeba192}, - {0x83309130, 0xeba193}, - {0x83309131, 0xeba194}, - {0x83309132, 0xeba195}, - {0x83309133, 0xeba196}, - {0x83309134, 0xeba197}, - {0x83309135, 0xeba198}, - {0x83309136, 0xeba199}, - {0x83309137, 0xeba19a}, - {0x83309138, 0xeba19b}, - {0x83309139, 0xeba19c}, - {0x83309230, 0xeba19d}, - {0x83309231, 0xeba19e}, - {0x83309232, 0xeba19f}, - {0x83309233, 0xeba1a0}, - {0x83309234, 0xeba1a1}, - {0x83309235, 0xeba1a2}, - {0x83309236, 0xeba1a3}, - {0x83309237, 0xeba1a4}, - {0x83309238, 0xeba1a5}, - {0x83309239, 0xeba1a6}, - {0x83309330, 0xeba1a7}, - {0x83309331, 0xeba1a8}, - {0x83309332, 0xeba1a9}, - {0x83309333, 0xeba1aa}, - {0x83309334, 0xeba1ab}, - {0x83309335, 0xeba1ac}, - {0x83309336, 0xeba1ad}, - {0x83309337, 0xeba1ae}, - {0x83309338, 0xeba1af}, - {0x83309339, 0xeba1b0}, - {0x83309430, 0xeba1b1}, - {0x83309431, 0xeba1b2}, - {0x83309432, 0xeba1b3}, - {0x83309433, 0xeba1b4}, - {0x83309434, 0xeba1b5}, - {0x83309435, 0xeba1b6}, - {0x83309436, 0xeba1b7}, - {0x83309437, 0xeba1b8}, - {0x83309438, 0xeba1b9}, - {0x83309439, 0xeba1ba}, - {0x83309530, 0xeba1bb}, - {0x83309531, 0xeba1bc}, - {0x83309532, 0xeba1bd}, - {0x83309533, 0xeba1be}, - {0x83309534, 0xeba1bf}, - {0x83309535, 0xeba280}, - {0x83309536, 0xeba281}, - {0x83309537, 0xeba282}, - {0x83309538, 0xeba283}, - {0x83309539, 0xeba284}, - {0x83309630, 0xeba285}, - {0x83309631, 0xeba286}, - {0x83309632, 0xeba287}, - {0x83309633, 0xeba288}, - {0x83309634, 0xeba289}, - {0x83309635, 0xeba28a}, - {0x83309636, 0xeba28b}, - {0x83309637, 0xeba28c}, - {0x83309638, 0xeba28d}, - {0x83309639, 0xeba28e}, - {0x83309730, 0xeba28f}, - {0x83309731, 0xeba290}, - {0x83309732, 0xeba291}, - {0x83309733, 0xeba292}, - {0x83309734, 0xeba293}, - {0x83309735, 0xeba294}, - {0x83309736, 0xeba295}, - {0x83309737, 0xeba296}, - {0x83309738, 0xeba297}, - {0x83309739, 0xeba298}, - {0x83309830, 0xeba299}, - {0x83309831, 0xeba29a}, - {0x83309832, 0xeba29b}, - {0x83309833, 0xeba29c}, - {0x83309834, 0xeba29d}, - {0x83309835, 0xeba29e}, - {0x83309836, 0xeba29f}, - {0x83309837, 0xeba2a0}, - {0x83309838, 0xeba2a1}, - {0x83309839, 0xeba2a2}, - {0x83309930, 0xeba2a3}, - {0x83309931, 0xeba2a4}, - {0x83309932, 0xeba2a5}, - {0x83309933, 0xeba2a6}, - {0x83309934, 0xeba2a7}, - {0x83309935, 0xeba2a8}, - {0x83309936, 0xeba2a9}, - {0x83309937, 0xeba2aa}, - {0x83309938, 0xeba2ab}, - {0x83309939, 0xeba2ac}, - {0x83309a30, 0xeba2ad}, - {0x83309a31, 0xeba2ae}, - {0x83309a32, 0xeba2af}, - {0x83309a33, 0xeba2b0}, - {0x83309a34, 0xeba2b1}, - {0x83309a35, 0xeba2b2}, - {0x83309a36, 0xeba2b3}, - {0x83309a37, 0xeba2b4}, - {0x83309a38, 0xeba2b5}, - {0x83309a39, 0xeba2b6}, - {0x83309b30, 0xeba2b7}, - {0x83309b31, 0xeba2b8}, - {0x83309b32, 0xeba2b9}, - {0x83309b33, 0xeba2ba}, - {0x83309b34, 0xeba2bb}, - {0x83309b35, 0xeba2bc}, - {0x83309b36, 0xeba2bd}, - {0x83309b37, 0xeba2be}, - {0x83309b38, 0xeba2bf}, - {0x83309b39, 0xeba380}, - {0x83309c30, 0xeba381}, - {0x83309c31, 0xeba382}, - {0x83309c32, 0xeba383}, - {0x83309c33, 0xeba384}, - {0x83309c34, 0xeba385}, - {0x83309c35, 0xeba386}, - {0x83309c36, 0xeba387}, - {0x83309c37, 0xeba388}, - {0x83309c38, 0xeba389}, - {0x83309c39, 0xeba38a}, - {0x83309d30, 0xeba38b}, - {0x83309d31, 0xeba38c}, - {0x83309d32, 0xeba38d}, - {0x83309d33, 0xeba38e}, - {0x83309d34, 0xeba38f}, - {0x83309d35, 0xeba390}, - {0x83309d36, 0xeba391}, - {0x83309d37, 0xeba392}, - {0x83309d38, 0xeba393}, - {0x83309d39, 0xeba394}, - {0x83309e30, 0xeba395}, - {0x83309e31, 0xeba396}, - {0x83309e32, 0xeba397}, - {0x83309e33, 0xeba398}, - {0x83309e34, 0xeba399}, - {0x83309e35, 0xeba39a}, - {0x83309e36, 0xeba39b}, - {0x83309e37, 0xeba39c}, - {0x83309e38, 0xeba39d}, - {0x83309e39, 0xeba39e}, - {0x83309f30, 0xeba39f}, - {0x83309f31, 0xeba3a0}, - {0x83309f32, 0xeba3a1}, - {0x83309f33, 0xeba3a2}, - {0x83309f34, 0xeba3a3}, - {0x83309f35, 0xeba3a4}, - {0x83309f36, 0xeba3a5}, - {0x83309f37, 0xeba3a6}, - {0x83309f38, 0xeba3a7}, - {0x83309f39, 0xeba3a8}, - {0x8330a030, 0xeba3a9}, - {0x8330a031, 0xeba3aa}, - {0x8330a032, 0xeba3ab}, - {0x8330a033, 0xeba3ac}, - {0x8330a034, 0xeba3ad}, - {0x8330a035, 0xeba3ae}, - {0x8330a036, 0xeba3af}, - {0x8330a037, 0xeba3b0}, - {0x8330a038, 0xeba3b1}, - {0x8330a039, 0xeba3b2}, - {0x8330a130, 0xeba3b3}, - {0x8330a131, 0xeba3b4}, - {0x8330a132, 0xeba3b5}, - {0x8330a133, 0xeba3b6}, - {0x8330a134, 0xeba3b7}, - {0x8330a135, 0xeba3b8}, - {0x8330a136, 0xeba3b9}, - {0x8330a137, 0xeba3ba}, - {0x8330a138, 0xeba3bb}, - {0x8330a139, 0xeba3bc}, - {0x8330a230, 0xeba3bd}, - {0x8330a231, 0xeba3be}, - {0x8330a232, 0xeba3bf}, - {0x8330a233, 0xeba480}, - {0x8330a234, 0xeba481}, - {0x8330a235, 0xeba482}, - {0x8330a236, 0xeba483}, - {0x8330a237, 0xeba484}, - {0x8330a238, 0xeba485}, - {0x8330a239, 0xeba486}, - {0x8330a330, 0xeba487}, - {0x8330a331, 0xeba488}, - {0x8330a332, 0xeba489}, - {0x8330a333, 0xeba48a}, - {0x8330a334, 0xeba48b}, - {0x8330a335, 0xeba48c}, - {0x8330a336, 0xeba48d}, - {0x8330a337, 0xeba48e}, - {0x8330a338, 0xeba48f}, - {0x8330a339, 0xeba490}, - {0x8330a430, 0xeba491}, - {0x8330a431, 0xeba492}, - {0x8330a432, 0xeba493}, - {0x8330a433, 0xeba494}, - {0x8330a434, 0xeba495}, - {0x8330a435, 0xeba496}, - {0x8330a436, 0xeba497}, - {0x8330a437, 0xeba498}, - {0x8330a438, 0xeba499}, - {0x8330a439, 0xeba49a}, - {0x8330a530, 0xeba49b}, - {0x8330a531, 0xeba49c}, - {0x8330a532, 0xeba49d}, - {0x8330a533, 0xeba49e}, - {0x8330a534, 0xeba49f}, - {0x8330a535, 0xeba4a0}, - {0x8330a536, 0xeba4a1}, - {0x8330a537, 0xeba4a2}, - {0x8330a538, 0xeba4a3}, - {0x8330a539, 0xeba4a4}, - {0x8330a630, 0xeba4a5}, - {0x8330a631, 0xeba4a6}, - {0x8330a632, 0xeba4a7}, - {0x8330a633, 0xeba4a8}, - {0x8330a634, 0xeba4a9}, - {0x8330a635, 0xeba4aa}, - {0x8330a636, 0xeba4ab}, - {0x8330a637, 0xeba4ac}, - {0x8330a638, 0xeba4ad}, - {0x8330a639, 0xeba4ae}, - {0x8330a730, 0xeba4af}, - {0x8330a731, 0xeba4b0}, - {0x8330a732, 0xeba4b1}, - {0x8330a733, 0xeba4b2}, - {0x8330a734, 0xeba4b3}, - {0x8330a735, 0xeba4b4}, - {0x8330a736, 0xeba4b5}, - {0x8330a737, 0xeba4b6}, - {0x8330a738, 0xeba4b7}, - {0x8330a739, 0xeba4b8}, - {0x8330a830, 0xeba4b9}, - {0x8330a831, 0xeba4ba}, - {0x8330a832, 0xeba4bb}, - {0x8330a833, 0xeba4bc}, - {0x8330a834, 0xeba4bd}, - {0x8330a835, 0xeba4be}, - {0x8330a836, 0xeba4bf}, - {0x8330a837, 0xeba580}, - {0x8330a838, 0xeba581}, - {0x8330a839, 0xeba582}, - {0x8330a930, 0xeba583}, - {0x8330a931, 0xeba584}, - {0x8330a932, 0xeba585}, - {0x8330a933, 0xeba586}, - {0x8330a934, 0xeba587}, - {0x8330a935, 0xeba588}, - {0x8330a936, 0xeba589}, - {0x8330a937, 0xeba58a}, - {0x8330a938, 0xeba58b}, - {0x8330a939, 0xeba58c}, - {0x8330aa30, 0xeba58d}, - {0x8330aa31, 0xeba58e}, - {0x8330aa32, 0xeba58f}, - {0x8330aa33, 0xeba590}, - {0x8330aa34, 0xeba591}, - {0x8330aa35, 0xeba592}, - {0x8330aa36, 0xeba593}, - {0x8330aa37, 0xeba594}, - {0x8330aa38, 0xeba595}, - {0x8330aa39, 0xeba596}, - {0x8330ab30, 0xeba597}, - {0x8330ab31, 0xeba598}, - {0x8330ab32, 0xeba599}, - {0x8330ab33, 0xeba59a}, - {0x8330ab34, 0xeba59b}, - {0x8330ab35, 0xeba59c}, - {0x8330ab36, 0xeba59d}, - {0x8330ab37, 0xeba59e}, - {0x8330ab38, 0xeba59f}, - {0x8330ab39, 0xeba5a0}, - {0x8330ac30, 0xeba5a1}, - {0x8330ac31, 0xeba5a2}, - {0x8330ac32, 0xeba5a3}, - {0x8330ac33, 0xeba5a4}, - {0x8330ac34, 0xeba5a5}, - {0x8330ac35, 0xeba5a6}, - {0x8330ac36, 0xeba5a7}, - {0x8330ac37, 0xeba5a8}, - {0x8330ac38, 0xeba5a9}, - {0x8330ac39, 0xeba5aa}, - {0x8330ad30, 0xeba5ab}, - {0x8330ad31, 0xeba5ac}, - {0x8330ad32, 0xeba5ad}, - {0x8330ad33, 0xeba5ae}, - {0x8330ad34, 0xeba5af}, - {0x8330ad35, 0xeba5b0}, - {0x8330ad36, 0xeba5b1}, - {0x8330ad37, 0xeba5b2}, - {0x8330ad38, 0xeba5b3}, - {0x8330ad39, 0xeba5b4}, - {0x8330ae30, 0xeba5b5}, - {0x8330ae31, 0xeba5b6}, - {0x8330ae32, 0xeba5b7}, - {0x8330ae33, 0xeba5b8}, - {0x8330ae34, 0xeba5b9}, - {0x8330ae35, 0xeba5ba}, - {0x8330ae36, 0xeba5bb}, - {0x8330ae37, 0xeba5bc}, - {0x8330ae38, 0xeba5bd}, - {0x8330ae39, 0xeba5be}, - {0x8330af30, 0xeba5bf}, - {0x8330af31, 0xeba680}, - {0x8330af32, 0xeba681}, - {0x8330af33, 0xeba682}, - {0x8330af34, 0xeba683}, - {0x8330af35, 0xeba684}, - {0x8330af36, 0xeba685}, - {0x8330af37, 0xeba686}, - {0x8330af38, 0xeba687}, - {0x8330af39, 0xeba688}, - {0x8330b030, 0xeba689}, - {0x8330b031, 0xeba68a}, - {0x8330b032, 0xeba68b}, - {0x8330b033, 0xeba68c}, - {0x8330b034, 0xeba68d}, - {0x8330b035, 0xeba68e}, - {0x8330b036, 0xeba68f}, - {0x8330b037, 0xeba690}, - {0x8330b038, 0xeba691}, - {0x8330b039, 0xeba692}, - {0x8330b130, 0xeba693}, - {0x8330b131, 0xeba694}, - {0x8330b132, 0xeba695}, - {0x8330b133, 0xeba696}, - {0x8330b134, 0xeba697}, - {0x8330b135, 0xeba698}, - {0x8330b136, 0xeba699}, - {0x8330b137, 0xeba69a}, - {0x8330b138, 0xeba69b}, - {0x8330b139, 0xeba69c}, - {0x8330b230, 0xeba69d}, - {0x8330b231, 0xeba69e}, - {0x8330b232, 0xeba69f}, - {0x8330b233, 0xeba6a0}, - {0x8330b234, 0xeba6a1}, - {0x8330b235, 0xeba6a2}, - {0x8330b236, 0xeba6a3}, - {0x8330b237, 0xeba6a4}, - {0x8330b238, 0xeba6a5}, - {0x8330b239, 0xeba6a6}, - {0x8330b330, 0xeba6a7}, - {0x8330b331, 0xeba6a8}, - {0x8330b332, 0xeba6a9}, - {0x8330b333, 0xeba6aa}, - {0x8330b334, 0xeba6ab}, - {0x8330b335, 0xeba6ac}, - {0x8330b336, 0xeba6ad}, - {0x8330b337, 0xeba6ae}, - {0x8330b338, 0xeba6af}, - {0x8330b339, 0xeba6b0}, - {0x8330b430, 0xeba6b1}, - {0x8330b431, 0xeba6b2}, - {0x8330b432, 0xeba6b3}, - {0x8330b433, 0xeba6b4}, - {0x8330b434, 0xeba6b5}, - {0x8330b435, 0xeba6b6}, - {0x8330b436, 0xeba6b7}, - {0x8330b437, 0xeba6b8}, - {0x8330b438, 0xeba6b9}, - {0x8330b439, 0xeba6ba}, - {0x8330b530, 0xeba6bb}, - {0x8330b531, 0xeba6bc}, - {0x8330b532, 0xeba6bd}, - {0x8330b533, 0xeba6be}, - {0x8330b534, 0xeba6bf}, - {0x8330b535, 0xeba780}, - {0x8330b536, 0xeba781}, - {0x8330b537, 0xeba782}, - {0x8330b538, 0xeba783}, - {0x8330b539, 0xeba784}, - {0x8330b630, 0xeba785}, - {0x8330b631, 0xeba786}, - {0x8330b632, 0xeba787}, - {0x8330b633, 0xeba788}, - {0x8330b634, 0xeba789}, - {0x8330b635, 0xeba78a}, - {0x8330b636, 0xeba78b}, - {0x8330b637, 0xeba78c}, - {0x8330b638, 0xeba78d}, - {0x8330b639, 0xeba78e}, - {0x8330b730, 0xeba78f}, - {0x8330b731, 0xeba790}, - {0x8330b732, 0xeba791}, - {0x8330b733, 0xeba792}, - {0x8330b734, 0xeba793}, - {0x8330b735, 0xeba794}, - {0x8330b736, 0xeba795}, - {0x8330b737, 0xeba796}, - {0x8330b738, 0xeba797}, - {0x8330b739, 0xeba798}, - {0x8330b830, 0xeba799}, - {0x8330b831, 0xeba79a}, - {0x8330b832, 0xeba79b}, - {0x8330b833, 0xeba79c}, - {0x8330b834, 0xeba79d}, - {0x8330b835, 0xeba79e}, - {0x8330b836, 0xeba79f}, - {0x8330b837, 0xeba7a0}, - {0x8330b838, 0xeba7a1}, - {0x8330b839, 0xeba7a2}, - {0x8330b930, 0xeba7a3}, - {0x8330b931, 0xeba7a4}, - {0x8330b932, 0xeba7a5}, - {0x8330b933, 0xeba7a6}, - {0x8330b934, 0xeba7a7}, - {0x8330b935, 0xeba7a8}, - {0x8330b936, 0xeba7a9}, - {0x8330b937, 0xeba7aa}, - {0x8330b938, 0xeba7ab}, - {0x8330b939, 0xeba7ac}, - {0x8330ba30, 0xeba7ad}, - {0x8330ba31, 0xeba7ae}, - {0x8330ba32, 0xeba7af}, - {0x8330ba33, 0xeba7b0}, - {0x8330ba34, 0xeba7b1}, - {0x8330ba35, 0xeba7b2}, - {0x8330ba36, 0xeba7b3}, - {0x8330ba37, 0xeba7b4}, - {0x8330ba38, 0xeba7b5}, - {0x8330ba39, 0xeba7b6}, - {0x8330bb30, 0xeba7b7}, - {0x8330bb31, 0xeba7b8}, - {0x8330bb32, 0xeba7b9}, - {0x8330bb33, 0xeba7ba}, - {0x8330bb34, 0xeba7bb}, - {0x8330bb35, 0xeba7bc}, - {0x8330bb36, 0xeba7bd}, - {0x8330bb37, 0xeba7be}, - {0x8330bb38, 0xeba7bf}, - {0x8330bb39, 0xeba880}, - {0x8330bc30, 0xeba881}, - {0x8330bc31, 0xeba882}, - {0x8330bc32, 0xeba883}, - {0x8330bc33, 0xeba884}, - {0x8330bc34, 0xeba885}, - {0x8330bc35, 0xeba886}, - {0x8330bc36, 0xeba887}, - {0x8330bc37, 0xeba888}, - {0x8330bc38, 0xeba889}, - {0x8330bc39, 0xeba88a}, - {0x8330bd30, 0xeba88b}, - {0x8330bd31, 0xeba88c}, - {0x8330bd32, 0xeba88d}, - {0x8330bd33, 0xeba88e}, - {0x8330bd34, 0xeba88f}, - {0x8330bd35, 0xeba890}, - {0x8330bd36, 0xeba891}, - {0x8330bd37, 0xeba892}, - {0x8330bd38, 0xeba893}, - {0x8330bd39, 0xeba894}, - {0x8330be30, 0xeba895}, - {0x8330be31, 0xeba896}, - {0x8330be32, 0xeba897}, - {0x8330be33, 0xeba898}, - {0x8330be34, 0xeba899}, - {0x8330be35, 0xeba89a}, - {0x8330be36, 0xeba89b}, - {0x8330be37, 0xeba89c}, - {0x8330be38, 0xeba89d}, - {0x8330be39, 0xeba89e}, - {0x8330bf30, 0xeba89f}, - {0x8330bf31, 0xeba8a0}, - {0x8330bf32, 0xeba8a1}, - {0x8330bf33, 0xeba8a2}, - {0x8330bf34, 0xeba8a3}, - {0x8330bf35, 0xeba8a4}, - {0x8330bf36, 0xeba8a5}, - {0x8330bf37, 0xeba8a6}, - {0x8330bf38, 0xeba8a7}, - {0x8330bf39, 0xeba8a8}, - {0x8330c030, 0xeba8a9}, - {0x8330c031, 0xeba8aa}, - {0x8330c032, 0xeba8ab}, - {0x8330c033, 0xeba8ac}, - {0x8330c034, 0xeba8ad}, - {0x8330c035, 0xeba8ae}, - {0x8330c036, 0xeba8af}, - {0x8330c037, 0xeba8b0}, - {0x8330c038, 0xeba8b1}, - {0x8330c039, 0xeba8b2}, - {0x8330c130, 0xeba8b3}, - {0x8330c131, 0xeba8b4}, - {0x8330c132, 0xeba8b5}, - {0x8330c133, 0xeba8b6}, - {0x8330c134, 0xeba8b7}, - {0x8330c135, 0xeba8b8}, - {0x8330c136, 0xeba8b9}, - {0x8330c137, 0xeba8ba}, - {0x8330c138, 0xeba8bb}, - {0x8330c139, 0xeba8bc}, - {0x8330c230, 0xeba8bd}, - {0x8330c231, 0xeba8be}, - {0x8330c232, 0xeba8bf}, - {0x8330c233, 0xeba980}, - {0x8330c234, 0xeba981}, - {0x8330c235, 0xeba982}, - {0x8330c236, 0xeba983}, - {0x8330c237, 0xeba984}, - {0x8330c238, 0xeba985}, - {0x8330c239, 0xeba986}, - {0x8330c330, 0xeba987}, - {0x8330c331, 0xeba988}, - {0x8330c332, 0xeba989}, - {0x8330c333, 0xeba98a}, - {0x8330c334, 0xeba98b}, - {0x8330c335, 0xeba98c}, - {0x8330c336, 0xeba98d}, - {0x8330c337, 0xeba98e}, - {0x8330c338, 0xeba98f}, - {0x8330c339, 0xeba990}, - {0x8330c430, 0xeba991}, - {0x8330c431, 0xeba992}, - {0x8330c432, 0xeba993}, - {0x8330c433, 0xeba994}, - {0x8330c434, 0xeba995}, - {0x8330c435, 0xeba996}, - {0x8330c436, 0xeba997}, - {0x8330c437, 0xeba998}, - {0x8330c438, 0xeba999}, - {0x8330c439, 0xeba99a}, - {0x8330c530, 0xeba99b}, - {0x8330c531, 0xeba99c}, - {0x8330c532, 0xeba99d}, - {0x8330c533, 0xeba99e}, - {0x8330c534, 0xeba99f}, - {0x8330c535, 0xeba9a0}, - {0x8330c536, 0xeba9a1}, - {0x8330c537, 0xeba9a2}, - {0x8330c538, 0xeba9a3}, - {0x8330c539, 0xeba9a4}, - {0x8330c630, 0xeba9a5}, - {0x8330c631, 0xeba9a6}, - {0x8330c632, 0xeba9a7}, - {0x8330c633, 0xeba9a8}, - {0x8330c634, 0xeba9a9}, - {0x8330c635, 0xeba9aa}, - {0x8330c636, 0xeba9ab}, - {0x8330c637, 0xeba9ac}, - {0x8330c638, 0xeba9ad}, - {0x8330c639, 0xeba9ae}, - {0x8330c730, 0xeba9af}, - {0x8330c731, 0xeba9b0}, - {0x8330c732, 0xeba9b1}, - {0x8330c733, 0xeba9b2}, - {0x8330c734, 0xeba9b3}, - {0x8330c735, 0xeba9b4}, - {0x8330c736, 0xeba9b5}, - {0x8330c737, 0xeba9b6}, - {0x8330c738, 0xeba9b7}, - {0x8330c739, 0xeba9b8}, - {0x8330c830, 0xeba9b9}, - {0x8330c831, 0xeba9ba}, - {0x8330c832, 0xeba9bb}, - {0x8330c833, 0xeba9bc}, - {0x8330c834, 0xeba9bd}, - {0x8330c835, 0xeba9be}, - {0x8330c836, 0xeba9bf}, - {0x8330c837, 0xebaa80}, - {0x8330c838, 0xebaa81}, - {0x8330c839, 0xebaa82}, - {0x8330c930, 0xebaa83}, - {0x8330c931, 0xebaa84}, - {0x8330c932, 0xebaa85}, - {0x8330c933, 0xebaa86}, - {0x8330c934, 0xebaa87}, - {0x8330c935, 0xebaa88}, - {0x8330c936, 0xebaa89}, - {0x8330c937, 0xebaa8a}, - {0x8330c938, 0xebaa8b}, - {0x8330c939, 0xebaa8c}, - {0x8330ca30, 0xebaa8d}, - {0x8330ca31, 0xebaa8e}, - {0x8330ca32, 0xebaa8f}, - {0x8330ca33, 0xebaa90}, - {0x8330ca34, 0xebaa91}, - {0x8330ca35, 0xebaa92}, - {0x8330ca36, 0xebaa93}, - {0x8330ca37, 0xebaa94}, - {0x8330ca38, 0xebaa95}, - {0x8330ca39, 0xebaa96}, - {0x8330cb30, 0xebaa97}, - {0x8330cb31, 0xebaa98}, - {0x8330cb32, 0xebaa99}, - {0x8330cb33, 0xebaa9a}, - {0x8330cb34, 0xebaa9b}, - {0x8330cb35, 0xebaa9c}, - {0x8330cb36, 0xebaa9d}, - {0x8330cb37, 0xebaa9e}, - {0x8330cb38, 0xebaa9f}, - {0x8330cb39, 0xebaaa0}, - {0x8330cc30, 0xebaaa1}, - {0x8330cc31, 0xebaaa2}, - {0x8330cc32, 0xebaaa3}, - {0x8330cc33, 0xebaaa4}, - {0x8330cc34, 0xebaaa5}, - {0x8330cc35, 0xebaaa6}, - {0x8330cc36, 0xebaaa7}, - {0x8330cc37, 0xebaaa8}, - {0x8330cc38, 0xebaaa9}, - {0x8330cc39, 0xebaaaa}, - {0x8330cd30, 0xebaaab}, - {0x8330cd31, 0xebaaac}, - {0x8330cd32, 0xebaaad}, - {0x8330cd33, 0xebaaae}, - {0x8330cd34, 0xebaaaf}, - {0x8330cd35, 0xebaab0}, - {0x8330cd36, 0xebaab1}, - {0x8330cd37, 0xebaab2}, - {0x8330cd38, 0xebaab3}, - {0x8330cd39, 0xebaab4}, - {0x8330ce30, 0xebaab5}, - {0x8330ce31, 0xebaab6}, - {0x8330ce32, 0xebaab7}, - {0x8330ce33, 0xebaab8}, - {0x8330ce34, 0xebaab9}, - {0x8330ce35, 0xebaaba}, - {0x8330ce36, 0xebaabb}, - {0x8330ce37, 0xebaabc}, - {0x8330ce38, 0xebaabd}, - {0x8330ce39, 0xebaabe}, - {0x8330cf30, 0xebaabf}, - {0x8330cf31, 0xebab80}, - {0x8330cf32, 0xebab81}, - {0x8330cf33, 0xebab82}, - {0x8330cf34, 0xebab83}, - {0x8330cf35, 0xebab84}, - {0x8330cf36, 0xebab85}, - {0x8330cf37, 0xebab86}, - {0x8330cf38, 0xebab87}, - {0x8330cf39, 0xebab88}, - {0x8330d030, 0xebab89}, - {0x8330d031, 0xebab8a}, - {0x8330d032, 0xebab8b}, - {0x8330d033, 0xebab8c}, - {0x8330d034, 0xebab8d}, - {0x8330d035, 0xebab8e}, - {0x8330d036, 0xebab8f}, - {0x8330d037, 0xebab90}, - {0x8330d038, 0xebab91}, - {0x8330d039, 0xebab92}, - {0x8330d130, 0xebab93}, - {0x8330d131, 0xebab94}, - {0x8330d132, 0xebab95}, - {0x8330d133, 0xebab96}, - {0x8330d134, 0xebab97}, - {0x8330d135, 0xebab98}, - {0x8330d136, 0xebab99}, - {0x8330d137, 0xebab9a}, - {0x8330d138, 0xebab9b}, - {0x8330d139, 0xebab9c}, - {0x8330d230, 0xebab9d}, - {0x8330d231, 0xebab9e}, - {0x8330d232, 0xebab9f}, - {0x8330d233, 0xebaba0}, - {0x8330d234, 0xebaba1}, - {0x8330d235, 0xebaba2}, - {0x8330d236, 0xebaba3}, - {0x8330d237, 0xebaba4}, - {0x8330d238, 0xebaba5}, - {0x8330d239, 0xebaba6}, - {0x8330d330, 0xebaba7}, - {0x8330d331, 0xebaba8}, - {0x8330d332, 0xebaba9}, - {0x8330d333, 0xebabaa}, - {0x8330d334, 0xebabab}, - {0x8330d335, 0xebabac}, - {0x8330d336, 0xebabad}, - {0x8330d337, 0xebabae}, - {0x8330d338, 0xebabaf}, - {0x8330d339, 0xebabb0}, - {0x8330d430, 0xebabb1}, - {0x8330d431, 0xebabb2}, - {0x8330d432, 0xebabb3}, - {0x8330d433, 0xebabb4}, - {0x8330d434, 0xebabb5}, - {0x8330d435, 0xebabb6}, - {0x8330d436, 0xebabb7}, - {0x8330d437, 0xebabb8}, - {0x8330d438, 0xebabb9}, - {0x8330d439, 0xebabba}, - {0x8330d530, 0xebabbb}, - {0x8330d531, 0xebabbc}, - {0x8330d532, 0xebabbd}, - {0x8330d533, 0xebabbe}, - {0x8330d534, 0xebabbf}, - {0x8330d535, 0xebac80}, - {0x8330d536, 0xebac81}, - {0x8330d537, 0xebac82}, - {0x8330d538, 0xebac83}, - {0x8330d539, 0xebac84}, - {0x8330d630, 0xebac85}, - {0x8330d631, 0xebac86}, - {0x8330d632, 0xebac87}, - {0x8330d633, 0xebac88}, - {0x8330d634, 0xebac89}, - {0x8330d635, 0xebac8a}, - {0x8330d636, 0xebac8b}, - {0x8330d637, 0xebac8c}, - {0x8330d638, 0xebac8d}, - {0x8330d639, 0xebac8e}, - {0x8330d730, 0xebac8f}, - {0x8330d731, 0xebac90}, - {0x8330d732, 0xebac91}, - {0x8330d733, 0xebac92}, - {0x8330d734, 0xebac93}, - {0x8330d735, 0xebac94}, - {0x8330d736, 0xebac95}, - {0x8330d737, 0xebac96}, - {0x8330d738, 0xebac97}, - {0x8330d739, 0xebac98}, - {0x8330d830, 0xebac99}, - {0x8330d831, 0xebac9a}, - {0x8330d832, 0xebac9b}, - {0x8330d833, 0xebac9c}, - {0x8330d834, 0xebac9d}, - {0x8330d835, 0xebac9e}, - {0x8330d836, 0xebac9f}, - {0x8330d837, 0xebaca0}, - {0x8330d838, 0xebaca1}, - {0x8330d839, 0xebaca2}, - {0x8330d930, 0xebaca3}, - {0x8330d931, 0xebaca4}, - {0x8330d932, 0xebaca5}, - {0x8330d933, 0xebaca6}, - {0x8330d934, 0xebaca7}, - {0x8330d935, 0xebaca8}, - {0x8330d936, 0xebaca9}, - {0x8330d937, 0xebacaa}, - {0x8330d938, 0xebacab}, - {0x8330d939, 0xebacac}, - {0x8330da30, 0xebacad}, - {0x8330da31, 0xebacae}, - {0x8330da32, 0xebacaf}, - {0x8330da33, 0xebacb0}, - {0x8330da34, 0xebacb1}, - {0x8330da35, 0xebacb2}, - {0x8330da36, 0xebacb3}, - {0x8330da37, 0xebacb4}, - {0x8330da38, 0xebacb5}, - {0x8330da39, 0xebacb6}, - {0x8330db30, 0xebacb7}, - {0x8330db31, 0xebacb8}, - {0x8330db32, 0xebacb9}, - {0x8330db33, 0xebacba}, - {0x8330db34, 0xebacbb}, - {0x8330db35, 0xebacbc}, - {0x8330db36, 0xebacbd}, - {0x8330db37, 0xebacbe}, - {0x8330db38, 0xebacbf}, - {0x8330db39, 0xebad80}, - {0x8330dc30, 0xebad81}, - {0x8330dc31, 0xebad82}, - {0x8330dc32, 0xebad83}, - {0x8330dc33, 0xebad84}, - {0x8330dc34, 0xebad85}, - {0x8330dc35, 0xebad86}, - {0x8330dc36, 0xebad87}, - {0x8330dc37, 0xebad88}, - {0x8330dc38, 0xebad89}, - {0x8330dc39, 0xebad8a}, - {0x8330dd30, 0xebad8b}, - {0x8330dd31, 0xebad8c}, - {0x8330dd32, 0xebad8d}, - {0x8330dd33, 0xebad8e}, - {0x8330dd34, 0xebad8f}, - {0x8330dd35, 0xebad90}, - {0x8330dd36, 0xebad91}, - {0x8330dd37, 0xebad92}, - {0x8330dd38, 0xebad93}, - {0x8330dd39, 0xebad94}, - {0x8330de30, 0xebad95}, - {0x8330de31, 0xebad96}, - {0x8330de32, 0xebad97}, - {0x8330de33, 0xebad98}, - {0x8330de34, 0xebad99}, - {0x8330de35, 0xebad9a}, - {0x8330de36, 0xebad9b}, - {0x8330de37, 0xebad9c}, - {0x8330de38, 0xebad9d}, - {0x8330de39, 0xebad9e}, - {0x8330df30, 0xebad9f}, - {0x8330df31, 0xebada0}, - {0x8330df32, 0xebada1}, - {0x8330df33, 0xebada2}, - {0x8330df34, 0xebada3}, - {0x8330df35, 0xebada4}, - {0x8330df36, 0xebada5}, - {0x8330df37, 0xebada6}, - {0x8330df38, 0xebada7}, - {0x8330df39, 0xebada8}, - {0x8330e030, 0xebada9}, - {0x8330e031, 0xebadaa}, - {0x8330e032, 0xebadab}, - {0x8330e033, 0xebadac}, - {0x8330e034, 0xebadad}, - {0x8330e035, 0xebadae}, - {0x8330e036, 0xebadaf}, - {0x8330e037, 0xebadb0}, - {0x8330e038, 0xebadb1}, - {0x8330e039, 0xebadb2}, - {0x8330e130, 0xebadb3}, - {0x8330e131, 0xebadb4}, - {0x8330e132, 0xebadb5}, - {0x8330e133, 0xebadb6}, - {0x8330e134, 0xebadb7}, - {0x8330e135, 0xebadb8}, - {0x8330e136, 0xebadb9}, - {0x8330e137, 0xebadba}, - {0x8330e138, 0xebadbb}, - {0x8330e139, 0xebadbc}, - {0x8330e230, 0xebadbd}, - {0x8330e231, 0xebadbe}, - {0x8330e232, 0xebadbf}, - {0x8330e233, 0xebae80}, - {0x8330e234, 0xebae81}, - {0x8330e235, 0xebae82}, - {0x8330e236, 0xebae83}, - {0x8330e237, 0xebae84}, - {0x8330e238, 0xebae85}, - {0x8330e239, 0xebae86}, - {0x8330e330, 0xebae87}, - {0x8330e331, 0xebae88}, - {0x8330e332, 0xebae89}, - {0x8330e333, 0xebae8a}, - {0x8330e334, 0xebae8b}, - {0x8330e335, 0xebae8c}, - {0x8330e336, 0xebae8d}, - {0x8330e337, 0xebae8e}, - {0x8330e338, 0xebae8f}, - {0x8330e339, 0xebae90}, - {0x8330e430, 0xebae91}, - {0x8330e431, 0xebae92}, - {0x8330e432, 0xebae93}, - {0x8330e433, 0xebae94}, - {0x8330e434, 0xebae95}, - {0x8330e435, 0xebae96}, - {0x8330e436, 0xebae97}, - {0x8330e437, 0xebae98}, - {0x8330e438, 0xebae99}, - {0x8330e439, 0xebae9a}, - {0x8330e530, 0xebae9b}, - {0x8330e531, 0xebae9c}, - {0x8330e532, 0xebae9d}, - {0x8330e533, 0xebae9e}, - {0x8330e534, 0xebae9f}, - {0x8330e535, 0xebaea0}, - {0x8330e536, 0xebaea1}, - {0x8330e537, 0xebaea2}, - {0x8330e538, 0xebaea3}, - {0x8330e539, 0xebaea4}, - {0x8330e630, 0xebaea5}, - {0x8330e631, 0xebaea6}, - {0x8330e632, 0xebaea7}, - {0x8330e633, 0xebaea8}, - {0x8330e634, 0xebaea9}, - {0x8330e635, 0xebaeaa}, - {0x8330e636, 0xebaeab}, - {0x8330e637, 0xebaeac}, - {0x8330e638, 0xebaead}, - {0x8330e639, 0xebaeae}, - {0x8330e730, 0xebaeaf}, - {0x8330e731, 0xebaeb0}, - {0x8330e732, 0xebaeb1}, - {0x8330e733, 0xebaeb2}, - {0x8330e734, 0xebaeb3}, - {0x8330e735, 0xebaeb4}, - {0x8330e736, 0xebaeb5}, - {0x8330e737, 0xebaeb6}, - {0x8330e738, 0xebaeb7}, - {0x8330e739, 0xebaeb8}, - {0x8330e830, 0xebaeb9}, - {0x8330e831, 0xebaeba}, - {0x8330e832, 0xebaebb}, - {0x8330e833, 0xebaebc}, - {0x8330e834, 0xebaebd}, - {0x8330e835, 0xebaebe}, - {0x8330e836, 0xebaebf}, - {0x8330e837, 0xebaf80}, - {0x8330e838, 0xebaf81}, - {0x8330e839, 0xebaf82}, - {0x8330e930, 0xebaf83}, - {0x8330e931, 0xebaf84}, - {0x8330e932, 0xebaf85}, - {0x8330e933, 0xebaf86}, - {0x8330e934, 0xebaf87}, - {0x8330e935, 0xebaf88}, - {0x8330e936, 0xebaf89}, - {0x8330e937, 0xebaf8a}, - {0x8330e938, 0xebaf8b}, - {0x8330e939, 0xebaf8c}, - {0x8330ea30, 0xebaf8d}, - {0x8330ea31, 0xebaf8e}, - {0x8330ea32, 0xebaf8f}, - {0x8330ea33, 0xebaf90}, - {0x8330ea34, 0xebaf91}, - {0x8330ea35, 0xebaf92}, - {0x8330ea36, 0xebaf93}, - {0x8330ea37, 0xebaf94}, - {0x8330ea38, 0xebaf95}, - {0x8330ea39, 0xebaf96}, - {0x8330eb30, 0xebaf97}, - {0x8330eb31, 0xebaf98}, - {0x8330eb32, 0xebaf99}, - {0x8330eb33, 0xebaf9a}, - {0x8330eb34, 0xebaf9b}, - {0x8330eb35, 0xebaf9c}, - {0x8330eb36, 0xebaf9d}, - {0x8330eb37, 0xebaf9e}, - {0x8330eb38, 0xebaf9f}, - {0x8330eb39, 0xebafa0}, - {0x8330ec30, 0xebafa1}, - {0x8330ec31, 0xebafa2}, - {0x8330ec32, 0xebafa3}, - {0x8330ec33, 0xebafa4}, - {0x8330ec34, 0xebafa5}, - {0x8330ec35, 0xebafa6}, - {0x8330ec36, 0xebafa7}, - {0x8330ec37, 0xebafa8}, - {0x8330ec38, 0xebafa9}, - {0x8330ec39, 0xebafaa}, - {0x8330ed30, 0xebafab}, - {0x8330ed31, 0xebafac}, - {0x8330ed32, 0xebafad}, - {0x8330ed33, 0xebafae}, - {0x8330ed34, 0xebafaf}, - {0x8330ed35, 0xebafb0}, - {0x8330ed36, 0xebafb1}, - {0x8330ed37, 0xebafb2}, - {0x8330ed38, 0xebafb3}, - {0x8330ed39, 0xebafb4}, - {0x8330ee30, 0xebafb5}, - {0x8330ee31, 0xebafb6}, - {0x8330ee32, 0xebafb7}, - {0x8330ee33, 0xebafb8}, - {0x8330ee34, 0xebafb9}, - {0x8330ee35, 0xebafba}, - {0x8330ee36, 0xebafbb}, - {0x8330ee37, 0xebafbc}, - {0x8330ee38, 0xebafbd}, - {0x8330ee39, 0xebafbe}, - {0x8330ef30, 0xebafbf}, - {0x8330ef31, 0xebb080}, - {0x8330ef32, 0xebb081}, - {0x8330ef33, 0xebb082}, - {0x8330ef34, 0xebb083}, - {0x8330ef35, 0xebb084}, - {0x8330ef36, 0xebb085}, - {0x8330ef37, 0xebb086}, - {0x8330ef38, 0xebb087}, - {0x8330ef39, 0xebb088}, - {0x8330f030, 0xebb089}, - {0x8330f031, 0xebb08a}, - {0x8330f032, 0xebb08b}, - {0x8330f033, 0xebb08c}, - {0x8330f034, 0xebb08d}, - {0x8330f035, 0xebb08e}, - {0x8330f036, 0xebb08f}, - {0x8330f037, 0xebb090}, - {0x8330f038, 0xebb091}, - {0x8330f039, 0xebb092}, - {0x8330f130, 0xebb093}, - {0x8330f131, 0xebb094}, - {0x8330f132, 0xebb095}, - {0x8330f133, 0xebb096}, - {0x8330f134, 0xebb097}, - {0x8330f135, 0xebb098}, - {0x8330f136, 0xebb099}, - {0x8330f137, 0xebb09a}, - {0x8330f138, 0xebb09b}, - {0x8330f139, 0xebb09c}, - {0x8330f230, 0xebb09d}, - {0x8330f231, 0xebb09e}, - {0x8330f232, 0xebb09f}, - {0x8330f233, 0xebb0a0}, - {0x8330f234, 0xebb0a1}, - {0x8330f235, 0xebb0a2}, - {0x8330f236, 0xebb0a3}, - {0x8330f237, 0xebb0a4}, - {0x8330f238, 0xebb0a5}, - {0x8330f239, 0xebb0a6}, - {0x8330f330, 0xebb0a7}, - {0x8330f331, 0xebb0a8}, - {0x8330f332, 0xebb0a9}, - {0x8330f333, 0xebb0aa}, - {0x8330f334, 0xebb0ab}, - {0x8330f335, 0xebb0ac}, - {0x8330f336, 0xebb0ad}, - {0x8330f337, 0xebb0ae}, - {0x8330f338, 0xebb0af}, - {0x8330f339, 0xebb0b0}, - {0x8330f430, 0xebb0b1}, - {0x8330f431, 0xebb0b2}, - {0x8330f432, 0xebb0b3}, - {0x8330f433, 0xebb0b4}, - {0x8330f434, 0xebb0b5}, - {0x8330f435, 0xebb0b6}, - {0x8330f436, 0xebb0b7}, - {0x8330f437, 0xebb0b8}, - {0x8330f438, 0xebb0b9}, - {0x8330f439, 0xebb0ba}, - {0x8330f530, 0xebb0bb}, - {0x8330f531, 0xebb0bc}, - {0x8330f532, 0xebb0bd}, - {0x8330f533, 0xebb0be}, - {0x8330f534, 0xebb0bf}, - {0x8330f535, 0xebb180}, - {0x8330f536, 0xebb181}, - {0x8330f537, 0xebb182}, - {0x8330f538, 0xebb183}, - {0x8330f539, 0xebb184}, - {0x8330f630, 0xebb185}, - {0x8330f631, 0xebb186}, - {0x8330f632, 0xebb187}, - {0x8330f633, 0xebb188}, - {0x8330f634, 0xebb189}, - {0x8330f635, 0xebb18a}, - {0x8330f636, 0xebb18b}, - {0x8330f637, 0xebb18c}, - {0x8330f638, 0xebb18d}, - {0x8330f639, 0xebb18e}, - {0x8330f730, 0xebb18f}, - {0x8330f731, 0xebb190}, - {0x8330f732, 0xebb191}, - {0x8330f733, 0xebb192}, - {0x8330f734, 0xebb193}, - {0x8330f735, 0xebb194}, - {0x8330f736, 0xebb195}, - {0x8330f737, 0xebb196}, - {0x8330f738, 0xebb197}, - {0x8330f739, 0xebb198}, - {0x8330f830, 0xebb199}, - {0x8330f831, 0xebb19a}, - {0x8330f832, 0xebb19b}, - {0x8330f833, 0xebb19c}, - {0x8330f834, 0xebb19d}, - {0x8330f835, 0xebb19e}, - {0x8330f836, 0xebb19f}, - {0x8330f837, 0xebb1a0}, - {0x8330f838, 0xebb1a1}, - {0x8330f839, 0xebb1a2}, - {0x8330f930, 0xebb1a3}, - {0x8330f931, 0xebb1a4}, - {0x8330f932, 0xebb1a5}, - {0x8330f933, 0xebb1a6}, - {0x8330f934, 0xebb1a7}, - {0x8330f935, 0xebb1a8}, - {0x8330f936, 0xebb1a9}, - {0x8330f937, 0xebb1aa}, - {0x8330f938, 0xebb1ab}, - {0x8330f939, 0xebb1ac}, - {0x8330fa30, 0xebb1ad}, - {0x8330fa31, 0xebb1ae}, - {0x8330fa32, 0xebb1af}, - {0x8330fa33, 0xebb1b0}, - {0x8330fa34, 0xebb1b1}, - {0x8330fa35, 0xebb1b2}, - {0x8330fa36, 0xebb1b3}, - {0x8330fa37, 0xebb1b4}, - {0x8330fa38, 0xebb1b5}, - {0x8330fa39, 0xebb1b6}, - {0x8330fb30, 0xebb1b7}, - {0x8330fb31, 0xebb1b8}, - {0x8330fb32, 0xebb1b9}, - {0x8330fb33, 0xebb1ba}, - {0x8330fb34, 0xebb1bb}, - {0x8330fb35, 0xebb1bc}, - {0x8330fb36, 0xebb1bd}, - {0x8330fb37, 0xebb1be}, - {0x8330fb38, 0xebb1bf}, - {0x8330fb39, 0xebb280}, - {0x8330fc30, 0xebb281}, - {0x8330fc31, 0xebb282}, - {0x8330fc32, 0xebb283}, - {0x8330fc33, 0xebb284}, - {0x8330fc34, 0xebb285}, - {0x8330fc35, 0xebb286}, - {0x8330fc36, 0xebb287}, - {0x8330fc37, 0xebb288}, - {0x8330fc38, 0xebb289}, - {0x8330fc39, 0xebb28a}, - {0x8330fd30, 0xebb28b}, - {0x8330fd31, 0xebb28c}, - {0x8330fd32, 0xebb28d}, - {0x8330fd33, 0xebb28e}, - {0x8330fd34, 0xebb28f}, - {0x8330fd35, 0xebb290}, - {0x8330fd36, 0xebb291}, - {0x8330fd37, 0xebb292}, - {0x8330fd38, 0xebb293}, - {0x8330fd39, 0xebb294}, - {0x8330fe30, 0xebb295}, - {0x8330fe31, 0xebb296}, - {0x8330fe32, 0xebb297}, - {0x8330fe33, 0xebb298}, - {0x8330fe34, 0xebb299}, - {0x8330fe35, 0xebb29a}, - {0x8330fe36, 0xebb29b}, - {0x8330fe37, 0xebb29c}, - {0x8330fe38, 0xebb29d}, - {0x8330fe39, 0xebb29e}, - {0x83318130, 0xebb29f}, - {0x83318131, 0xebb2a0}, - {0x83318132, 0xebb2a1}, - {0x83318133, 0xebb2a2}, - {0x83318134, 0xebb2a3}, - {0x83318135, 0xebb2a4}, - {0x83318136, 0xebb2a5}, - {0x83318137, 0xebb2a6}, - {0x83318138, 0xebb2a7}, - {0x83318139, 0xebb2a8}, - {0x83318230, 0xebb2a9}, - {0x83318231, 0xebb2aa}, - {0x83318232, 0xebb2ab}, - {0x83318233, 0xebb2ac}, - {0x83318234, 0xebb2ad}, - {0x83318235, 0xebb2ae}, - {0x83318236, 0xebb2af}, - {0x83318237, 0xebb2b0}, - {0x83318238, 0xebb2b1}, - {0x83318239, 0xebb2b2}, - {0x83318330, 0xebb2b3}, - {0x83318331, 0xebb2b4}, - {0x83318332, 0xebb2b5}, - {0x83318333, 0xebb2b6}, - {0x83318334, 0xebb2b7}, - {0x83318335, 0xebb2b8}, - {0x83318336, 0xebb2b9}, - {0x83318337, 0xebb2ba}, - {0x83318338, 0xebb2bb}, - {0x83318339, 0xebb2bc}, - {0x83318430, 0xebb2bd}, - {0x83318431, 0xebb2be}, - {0x83318432, 0xebb2bf}, - {0x83318433, 0xebb380}, - {0x83318434, 0xebb381}, - {0x83318435, 0xebb382}, - {0x83318436, 0xebb383}, - {0x83318437, 0xebb384}, - {0x83318438, 0xebb385}, - {0x83318439, 0xebb386}, - {0x83318530, 0xebb387}, - {0x83318531, 0xebb388}, - {0x83318532, 0xebb389}, - {0x83318533, 0xebb38a}, - {0x83318534, 0xebb38b}, - {0x83318535, 0xebb38c}, - {0x83318536, 0xebb38d}, - {0x83318537, 0xebb38e}, - {0x83318538, 0xebb38f}, - {0x83318539, 0xebb390}, - {0x83318630, 0xebb391}, - {0x83318631, 0xebb392}, - {0x83318632, 0xebb393}, - {0x83318633, 0xebb394}, - {0x83318634, 0xebb395}, - {0x83318635, 0xebb396}, - {0x83318636, 0xebb397}, - {0x83318637, 0xebb398}, - {0x83318638, 0xebb399}, - {0x83318639, 0xebb39a}, - {0x83318730, 0xebb39b}, - {0x83318731, 0xebb39c}, - {0x83318732, 0xebb39d}, - {0x83318733, 0xebb39e}, - {0x83318734, 0xebb39f}, - {0x83318735, 0xebb3a0}, - {0x83318736, 0xebb3a1}, - {0x83318737, 0xebb3a2}, - {0x83318738, 0xebb3a3}, - {0x83318739, 0xebb3a4}, - {0x83318830, 0xebb3a5}, - {0x83318831, 0xebb3a6}, - {0x83318832, 0xebb3a7}, - {0x83318833, 0xebb3a8}, - {0x83318834, 0xebb3a9}, - {0x83318835, 0xebb3aa}, - {0x83318836, 0xebb3ab}, - {0x83318837, 0xebb3ac}, - {0x83318838, 0xebb3ad}, - {0x83318839, 0xebb3ae}, - {0x83318930, 0xebb3af}, - {0x83318931, 0xebb3b0}, - {0x83318932, 0xebb3b1}, - {0x83318933, 0xebb3b2}, - {0x83318934, 0xebb3b3}, - {0x83318935, 0xebb3b4}, - {0x83318936, 0xebb3b5}, - {0x83318937, 0xebb3b6}, - {0x83318938, 0xebb3b7}, - {0x83318939, 0xebb3b8}, - {0x83318a30, 0xebb3b9}, - {0x83318a31, 0xebb3ba}, - {0x83318a32, 0xebb3bb}, - {0x83318a33, 0xebb3bc}, - {0x83318a34, 0xebb3bd}, - {0x83318a35, 0xebb3be}, - {0x83318a36, 0xebb3bf}, - {0x83318a37, 0xebb480}, - {0x83318a38, 0xebb481}, - {0x83318a39, 0xebb482}, - {0x83318b30, 0xebb483}, - {0x83318b31, 0xebb484}, - {0x83318b32, 0xebb485}, - {0x83318b33, 0xebb486}, - {0x83318b34, 0xebb487}, - {0x83318b35, 0xebb488}, - {0x83318b36, 0xebb489}, - {0x83318b37, 0xebb48a}, - {0x83318b38, 0xebb48b}, - {0x83318b39, 0xebb48c}, - {0x83318c30, 0xebb48d}, - {0x83318c31, 0xebb48e}, - {0x83318c32, 0xebb48f}, - {0x83318c33, 0xebb490}, - {0x83318c34, 0xebb491}, - {0x83318c35, 0xebb492}, - {0x83318c36, 0xebb493}, - {0x83318c37, 0xebb494}, - {0x83318c38, 0xebb495}, - {0x83318c39, 0xebb496}, - {0x83318d30, 0xebb497}, - {0x83318d31, 0xebb498}, - {0x83318d32, 0xebb499}, - {0x83318d33, 0xebb49a}, - {0x83318d34, 0xebb49b}, - {0x83318d35, 0xebb49c}, - {0x83318d36, 0xebb49d}, - {0x83318d37, 0xebb49e}, - {0x83318d38, 0xebb49f}, - {0x83318d39, 0xebb4a0}, - {0x83318e30, 0xebb4a1}, - {0x83318e31, 0xebb4a2}, - {0x83318e32, 0xebb4a3}, - {0x83318e33, 0xebb4a4}, - {0x83318e34, 0xebb4a5}, - {0x83318e35, 0xebb4a6}, - {0x83318e36, 0xebb4a7}, - {0x83318e37, 0xebb4a8}, - {0x83318e38, 0xebb4a9}, - {0x83318e39, 0xebb4aa}, - {0x83318f30, 0xebb4ab}, - {0x83318f31, 0xebb4ac}, - {0x83318f32, 0xebb4ad}, - {0x83318f33, 0xebb4ae}, - {0x83318f34, 0xebb4af}, - {0x83318f35, 0xebb4b0}, - {0x83318f36, 0xebb4b1}, - {0x83318f37, 0xebb4b2}, - {0x83318f38, 0xebb4b3}, - {0x83318f39, 0xebb4b4}, - {0x83319030, 0xebb4b5}, - {0x83319031, 0xebb4b6}, - {0x83319032, 0xebb4b7}, - {0x83319033, 0xebb4b8}, - {0x83319034, 0xebb4b9}, - {0x83319035, 0xebb4ba}, - {0x83319036, 0xebb4bb}, - {0x83319037, 0xebb4bc}, - {0x83319038, 0xebb4bd}, - {0x83319039, 0xebb4be}, - {0x83319130, 0xebb4bf}, - {0x83319131, 0xebb580}, - {0x83319132, 0xebb581}, - {0x83319133, 0xebb582}, - {0x83319134, 0xebb583}, - {0x83319135, 0xebb584}, - {0x83319136, 0xebb585}, - {0x83319137, 0xebb586}, - {0x83319138, 0xebb587}, - {0x83319139, 0xebb588}, - {0x83319230, 0xebb589}, - {0x83319231, 0xebb58a}, - {0x83319232, 0xebb58b}, - {0x83319233, 0xebb58c}, - {0x83319234, 0xebb58d}, - {0x83319235, 0xebb58e}, - {0x83319236, 0xebb58f}, - {0x83319237, 0xebb590}, - {0x83319238, 0xebb591}, - {0x83319239, 0xebb592}, - {0x83319330, 0xebb593}, - {0x83319331, 0xebb594}, - {0x83319332, 0xebb595}, - {0x83319333, 0xebb596}, - {0x83319334, 0xebb597}, - {0x83319335, 0xebb598}, - {0x83319336, 0xebb599}, - {0x83319337, 0xebb59a}, - {0x83319338, 0xebb59b}, - {0x83319339, 0xebb59c}, - {0x83319430, 0xebb59d}, - {0x83319431, 0xebb59e}, - {0x83319432, 0xebb59f}, - {0x83319433, 0xebb5a0}, - {0x83319434, 0xebb5a1}, - {0x83319435, 0xebb5a2}, - {0x83319436, 0xebb5a3}, - {0x83319437, 0xebb5a4}, - {0x83319438, 0xebb5a5}, - {0x83319439, 0xebb5a6}, - {0x83319530, 0xebb5a7}, - {0x83319531, 0xebb5a8}, - {0x83319532, 0xebb5a9}, - {0x83319533, 0xebb5aa}, - {0x83319534, 0xebb5ab}, - {0x83319535, 0xebb5ac}, - {0x83319536, 0xebb5ad}, - {0x83319537, 0xebb5ae}, - {0x83319538, 0xebb5af}, - {0x83319539, 0xebb5b0}, - {0x83319630, 0xebb5b1}, - {0x83319631, 0xebb5b2}, - {0x83319632, 0xebb5b3}, - {0x83319633, 0xebb5b4}, - {0x83319634, 0xebb5b5}, - {0x83319635, 0xebb5b6}, - {0x83319636, 0xebb5b7}, - {0x83319637, 0xebb5b8}, - {0x83319638, 0xebb5b9}, - {0x83319639, 0xebb5ba}, - {0x83319730, 0xebb5bb}, - {0x83319731, 0xebb5bc}, - {0x83319732, 0xebb5bd}, - {0x83319733, 0xebb5be}, - {0x83319734, 0xebb5bf}, - {0x83319735, 0xebb680}, - {0x83319736, 0xebb681}, - {0x83319737, 0xebb682}, - {0x83319738, 0xebb683}, - {0x83319739, 0xebb684}, - {0x83319830, 0xebb685}, - {0x83319831, 0xebb686}, - {0x83319832, 0xebb687}, - {0x83319833, 0xebb688}, - {0x83319834, 0xebb689}, - {0x83319835, 0xebb68a}, - {0x83319836, 0xebb68b}, - {0x83319837, 0xebb68c}, - {0x83319838, 0xebb68d}, - {0x83319839, 0xebb68e}, - {0x83319930, 0xebb68f}, - {0x83319931, 0xebb690}, - {0x83319932, 0xebb691}, - {0x83319933, 0xebb692}, - {0x83319934, 0xebb693}, - {0x83319935, 0xebb694}, - {0x83319936, 0xebb695}, - {0x83319937, 0xebb696}, - {0x83319938, 0xebb697}, - {0x83319939, 0xebb698}, - {0x83319a30, 0xebb699}, - {0x83319a31, 0xebb69a}, - {0x83319a32, 0xebb69b}, - {0x83319a33, 0xebb69c}, - {0x83319a34, 0xebb69d}, - {0x83319a35, 0xebb69e}, - {0x83319a36, 0xebb69f}, - {0x83319a37, 0xebb6a0}, - {0x83319a38, 0xebb6a1}, - {0x83319a39, 0xebb6a2}, - {0x83319b30, 0xebb6a3}, - {0x83319b31, 0xebb6a4}, - {0x83319b32, 0xebb6a5}, - {0x83319b33, 0xebb6a6}, - {0x83319b34, 0xebb6a7}, - {0x83319b35, 0xebb6a8}, - {0x83319b36, 0xebb6a9}, - {0x83319b37, 0xebb6aa}, - {0x83319b38, 0xebb6ab}, - {0x83319b39, 0xebb6ac}, - {0x83319c30, 0xebb6ad}, - {0x83319c31, 0xebb6ae}, - {0x83319c32, 0xebb6af}, - {0x83319c33, 0xebb6b0}, - {0x83319c34, 0xebb6b1}, - {0x83319c35, 0xebb6b2}, - {0x83319c36, 0xebb6b3}, - {0x83319c37, 0xebb6b4}, - {0x83319c38, 0xebb6b5}, - {0x83319c39, 0xebb6b6}, - {0x83319d30, 0xebb6b7}, - {0x83319d31, 0xebb6b8}, - {0x83319d32, 0xebb6b9}, - {0x83319d33, 0xebb6ba}, - {0x83319d34, 0xebb6bb}, - {0x83319d35, 0xebb6bc}, - {0x83319d36, 0xebb6bd}, - {0x83319d37, 0xebb6be}, - {0x83319d38, 0xebb6bf}, - {0x83319d39, 0xebb780}, - {0x83319e30, 0xebb781}, - {0x83319e31, 0xebb782}, - {0x83319e32, 0xebb783}, - {0x83319e33, 0xebb784}, - {0x83319e34, 0xebb785}, - {0x83319e35, 0xebb786}, - {0x83319e36, 0xebb787}, - {0x83319e37, 0xebb788}, - {0x83319e38, 0xebb789}, - {0x83319e39, 0xebb78a}, - {0x83319f30, 0xebb78b}, - {0x83319f31, 0xebb78c}, - {0x83319f32, 0xebb78d}, - {0x83319f33, 0xebb78e}, - {0x83319f34, 0xebb78f}, - {0x83319f35, 0xebb790}, - {0x83319f36, 0xebb791}, - {0x83319f37, 0xebb792}, - {0x83319f38, 0xebb793}, - {0x83319f39, 0xebb794}, - {0x8331a030, 0xebb795}, - {0x8331a031, 0xebb796}, - {0x8331a032, 0xebb797}, - {0x8331a033, 0xebb798}, - {0x8331a034, 0xebb799}, - {0x8331a035, 0xebb79a}, - {0x8331a036, 0xebb79b}, - {0x8331a037, 0xebb79c}, - {0x8331a038, 0xebb79d}, - {0x8331a039, 0xebb79e}, - {0x8331a130, 0xebb79f}, - {0x8331a131, 0xebb7a0}, - {0x8331a132, 0xebb7a1}, - {0x8331a133, 0xebb7a2}, - {0x8331a134, 0xebb7a3}, - {0x8331a135, 0xebb7a4}, - {0x8331a136, 0xebb7a5}, - {0x8331a137, 0xebb7a6}, - {0x8331a138, 0xebb7a7}, - {0x8331a139, 0xebb7a8}, - {0x8331a230, 0xebb7a9}, - {0x8331a231, 0xebb7aa}, - {0x8331a232, 0xebb7ab}, - {0x8331a233, 0xebb7ac}, - {0x8331a234, 0xebb7ad}, - {0x8331a235, 0xebb7ae}, - {0x8331a236, 0xebb7af}, - {0x8331a237, 0xebb7b0}, - {0x8331a238, 0xebb7b1}, - {0x8331a239, 0xebb7b2}, - {0x8331a330, 0xebb7b3}, - {0x8331a331, 0xebb7b4}, - {0x8331a332, 0xebb7b5}, - {0x8331a333, 0xebb7b6}, - {0x8331a334, 0xebb7b7}, - {0x8331a335, 0xebb7b8}, - {0x8331a336, 0xebb7b9}, - {0x8331a337, 0xebb7ba}, - {0x8331a338, 0xebb7bb}, - {0x8331a339, 0xebb7bc}, - {0x8331a430, 0xebb7bd}, - {0x8331a431, 0xebb7be}, - {0x8331a432, 0xebb7bf}, - {0x8331a433, 0xebb880}, - {0x8331a434, 0xebb881}, - {0x8331a435, 0xebb882}, - {0x8331a436, 0xebb883}, - {0x8331a437, 0xebb884}, - {0x8331a438, 0xebb885}, - {0x8331a439, 0xebb886}, - {0x8331a530, 0xebb887}, - {0x8331a531, 0xebb888}, - {0x8331a532, 0xebb889}, - {0x8331a533, 0xebb88a}, - {0x8331a534, 0xebb88b}, - {0x8331a535, 0xebb88c}, - {0x8331a536, 0xebb88d}, - {0x8331a537, 0xebb88e}, - {0x8331a538, 0xebb88f}, - {0x8331a539, 0xebb890}, - {0x8331a630, 0xebb891}, - {0x8331a631, 0xebb892}, - {0x8331a632, 0xebb893}, - {0x8331a633, 0xebb894}, - {0x8331a634, 0xebb895}, - {0x8331a635, 0xebb896}, - {0x8331a636, 0xebb897}, - {0x8331a637, 0xebb898}, - {0x8331a638, 0xebb899}, - {0x8331a639, 0xebb89a}, - {0x8331a730, 0xebb89b}, - {0x8331a731, 0xebb89c}, - {0x8331a732, 0xebb89d}, - {0x8331a733, 0xebb89e}, - {0x8331a734, 0xebb89f}, - {0x8331a735, 0xebb8a0}, - {0x8331a736, 0xebb8a1}, - {0x8331a737, 0xebb8a2}, - {0x8331a738, 0xebb8a3}, - {0x8331a739, 0xebb8a4}, - {0x8331a830, 0xebb8a5}, - {0x8331a831, 0xebb8a6}, - {0x8331a832, 0xebb8a7}, - {0x8331a833, 0xebb8a8}, - {0x8331a834, 0xebb8a9}, - {0x8331a835, 0xebb8aa}, - {0x8331a836, 0xebb8ab}, - {0x8331a837, 0xebb8ac}, - {0x8331a838, 0xebb8ad}, - {0x8331a839, 0xebb8ae}, - {0x8331a930, 0xebb8af}, - {0x8331a931, 0xebb8b0}, - {0x8331a932, 0xebb8b1}, - {0x8331a933, 0xebb8b2}, - {0x8331a934, 0xebb8b3}, - {0x8331a935, 0xebb8b4}, - {0x8331a936, 0xebb8b5}, - {0x8331a937, 0xebb8b6}, - {0x8331a938, 0xebb8b7}, - {0x8331a939, 0xebb8b8}, - {0x8331aa30, 0xebb8b9}, - {0x8331aa31, 0xebb8ba}, - {0x8331aa32, 0xebb8bb}, - {0x8331aa33, 0xebb8bc}, - {0x8331aa34, 0xebb8bd}, - {0x8331aa35, 0xebb8be}, - {0x8331aa36, 0xebb8bf}, - {0x8331aa37, 0xebb980}, - {0x8331aa38, 0xebb981}, - {0x8331aa39, 0xebb982}, - {0x8331ab30, 0xebb983}, - {0x8331ab31, 0xebb984}, - {0x8331ab32, 0xebb985}, - {0x8331ab33, 0xebb986}, - {0x8331ab34, 0xebb987}, - {0x8331ab35, 0xebb988}, - {0x8331ab36, 0xebb989}, - {0x8331ab37, 0xebb98a}, - {0x8331ab38, 0xebb98b}, - {0x8331ab39, 0xebb98c}, - {0x8331ac30, 0xebb98d}, - {0x8331ac31, 0xebb98e}, - {0x8331ac32, 0xebb98f}, - {0x8331ac33, 0xebb990}, - {0x8331ac34, 0xebb991}, - {0x8331ac35, 0xebb992}, - {0x8331ac36, 0xebb993}, - {0x8331ac37, 0xebb994}, - {0x8331ac38, 0xebb995}, - {0x8331ac39, 0xebb996}, - {0x8331ad30, 0xebb997}, - {0x8331ad31, 0xebb998}, - {0x8331ad32, 0xebb999}, - {0x8331ad33, 0xebb99a}, - {0x8331ad34, 0xebb99b}, - {0x8331ad35, 0xebb99c}, - {0x8331ad36, 0xebb99d}, - {0x8331ad37, 0xebb99e}, - {0x8331ad38, 0xebb99f}, - {0x8331ad39, 0xebb9a0}, - {0x8331ae30, 0xebb9a1}, - {0x8331ae31, 0xebb9a2}, - {0x8331ae32, 0xebb9a3}, - {0x8331ae33, 0xebb9a4}, - {0x8331ae34, 0xebb9a5}, - {0x8331ae35, 0xebb9a6}, - {0x8331ae36, 0xebb9a7}, - {0x8331ae37, 0xebb9a8}, - {0x8331ae38, 0xebb9a9}, - {0x8331ae39, 0xebb9aa}, - {0x8331af30, 0xebb9ab}, - {0x8331af31, 0xebb9ac}, - {0x8331af32, 0xebb9ad}, - {0x8331af33, 0xebb9ae}, - {0x8331af34, 0xebb9af}, - {0x8331af35, 0xebb9b0}, - {0x8331af36, 0xebb9b1}, - {0x8331af37, 0xebb9b2}, - {0x8331af38, 0xebb9b3}, - {0x8331af39, 0xebb9b4}, - {0x8331b030, 0xebb9b5}, - {0x8331b031, 0xebb9b6}, - {0x8331b032, 0xebb9b7}, - {0x8331b033, 0xebb9b8}, - {0x8331b034, 0xebb9b9}, - {0x8331b035, 0xebb9ba}, - {0x8331b036, 0xebb9bb}, - {0x8331b037, 0xebb9bc}, - {0x8331b038, 0xebb9bd}, - {0x8331b039, 0xebb9be}, - {0x8331b130, 0xebb9bf}, - {0x8331b131, 0xebba80}, - {0x8331b132, 0xebba81}, - {0x8331b133, 0xebba82}, - {0x8331b134, 0xebba83}, - {0x8331b135, 0xebba84}, - {0x8331b136, 0xebba85}, - {0x8331b137, 0xebba86}, - {0x8331b138, 0xebba87}, - {0x8331b139, 0xebba88}, - {0x8331b230, 0xebba89}, - {0x8331b231, 0xebba8a}, - {0x8331b232, 0xebba8b}, - {0x8331b233, 0xebba8c}, - {0x8331b234, 0xebba8d}, - {0x8331b235, 0xebba8e}, - {0x8331b236, 0xebba8f}, - {0x8331b237, 0xebba90}, - {0x8331b238, 0xebba91}, - {0x8331b239, 0xebba92}, - {0x8331b330, 0xebba93}, - {0x8331b331, 0xebba94}, - {0x8331b332, 0xebba95}, - {0x8331b333, 0xebba96}, - {0x8331b334, 0xebba97}, - {0x8331b335, 0xebba98}, - {0x8331b336, 0xebba99}, - {0x8331b337, 0xebba9a}, - {0x8331b338, 0xebba9b}, - {0x8331b339, 0xebba9c}, - {0x8331b430, 0xebba9d}, - {0x8331b431, 0xebba9e}, - {0x8331b432, 0xebba9f}, - {0x8331b433, 0xebbaa0}, - {0x8331b434, 0xebbaa1}, - {0x8331b435, 0xebbaa2}, - {0x8331b436, 0xebbaa3}, - {0x8331b437, 0xebbaa4}, - {0x8331b438, 0xebbaa5}, - {0x8331b439, 0xebbaa6}, - {0x8331b530, 0xebbaa7}, - {0x8331b531, 0xebbaa8}, - {0x8331b532, 0xebbaa9}, - {0x8331b533, 0xebbaaa}, - {0x8331b534, 0xebbaab}, - {0x8331b535, 0xebbaac}, - {0x8331b536, 0xebbaad}, - {0x8331b537, 0xebbaae}, - {0x8331b538, 0xebbaaf}, - {0x8331b539, 0xebbab0}, - {0x8331b630, 0xebbab1}, - {0x8331b631, 0xebbab2}, - {0x8331b632, 0xebbab3}, - {0x8331b633, 0xebbab4}, - {0x8331b634, 0xebbab5}, - {0x8331b635, 0xebbab6}, - {0x8331b636, 0xebbab7}, - {0x8331b637, 0xebbab8}, - {0x8331b638, 0xebbab9}, - {0x8331b639, 0xebbaba}, - {0x8331b730, 0xebbabb}, - {0x8331b731, 0xebbabc}, - {0x8331b732, 0xebbabd}, - {0x8331b733, 0xebbabe}, - {0x8331b734, 0xebbabf}, - {0x8331b735, 0xebbb80}, - {0x8331b736, 0xebbb81}, - {0x8331b737, 0xebbb82}, - {0x8331b738, 0xebbb83}, - {0x8331b739, 0xebbb84}, - {0x8331b830, 0xebbb85}, - {0x8331b831, 0xebbb86}, - {0x8331b832, 0xebbb87}, - {0x8331b833, 0xebbb88}, - {0x8331b834, 0xebbb89}, - {0x8331b835, 0xebbb8a}, - {0x8331b836, 0xebbb8b}, - {0x8331b837, 0xebbb8c}, - {0x8331b838, 0xebbb8d}, - {0x8331b839, 0xebbb8e}, - {0x8331b930, 0xebbb8f}, - {0x8331b931, 0xebbb90}, - {0x8331b932, 0xebbb91}, - {0x8331b933, 0xebbb92}, - {0x8331b934, 0xebbb93}, - {0x8331b935, 0xebbb94}, - {0x8331b936, 0xebbb95}, - {0x8331b937, 0xebbb96}, - {0x8331b938, 0xebbb97}, - {0x8331b939, 0xebbb98}, - {0x8331ba30, 0xebbb99}, - {0x8331ba31, 0xebbb9a}, - {0x8331ba32, 0xebbb9b}, - {0x8331ba33, 0xebbb9c}, - {0x8331ba34, 0xebbb9d}, - {0x8331ba35, 0xebbb9e}, - {0x8331ba36, 0xebbb9f}, - {0x8331ba37, 0xebbba0}, - {0x8331ba38, 0xebbba1}, - {0x8331ba39, 0xebbba2}, - {0x8331bb30, 0xebbba3}, - {0x8331bb31, 0xebbba4}, - {0x8331bb32, 0xebbba5}, - {0x8331bb33, 0xebbba6}, - {0x8331bb34, 0xebbba7}, - {0x8331bb35, 0xebbba8}, - {0x8331bb36, 0xebbba9}, - {0x8331bb37, 0xebbbaa}, - {0x8331bb38, 0xebbbab}, - {0x8331bb39, 0xebbbac}, - {0x8331bc30, 0xebbbad}, - {0x8331bc31, 0xebbbae}, - {0x8331bc32, 0xebbbaf}, - {0x8331bc33, 0xebbbb0}, - {0x8331bc34, 0xebbbb1}, - {0x8331bc35, 0xebbbb2}, - {0x8331bc36, 0xebbbb3}, - {0x8331bc37, 0xebbbb4}, - {0x8331bc38, 0xebbbb5}, - {0x8331bc39, 0xebbbb6}, - {0x8331bd30, 0xebbbb7}, - {0x8331bd31, 0xebbbb8}, - {0x8331bd32, 0xebbbb9}, - {0x8331bd33, 0xebbbba}, - {0x8331bd34, 0xebbbbb}, - {0x8331bd35, 0xebbbbc}, - {0x8331bd36, 0xebbbbd}, - {0x8331bd37, 0xebbbbe}, - {0x8331bd38, 0xebbbbf}, - {0x8331bd39, 0xebbc80}, - {0x8331be30, 0xebbc81}, - {0x8331be31, 0xebbc82}, - {0x8331be32, 0xebbc83}, - {0x8331be33, 0xebbc84}, - {0x8331be34, 0xebbc85}, - {0x8331be35, 0xebbc86}, - {0x8331be36, 0xebbc87}, - {0x8331be37, 0xebbc88}, - {0x8331be38, 0xebbc89}, - {0x8331be39, 0xebbc8a}, - {0x8331bf30, 0xebbc8b}, - {0x8331bf31, 0xebbc8c}, - {0x8331bf32, 0xebbc8d}, - {0x8331bf33, 0xebbc8e}, - {0x8331bf34, 0xebbc8f}, - {0x8331bf35, 0xebbc90}, - {0x8331bf36, 0xebbc91}, - {0x8331bf37, 0xebbc92}, - {0x8331bf38, 0xebbc93}, - {0x8331bf39, 0xebbc94}, - {0x8331c030, 0xebbc95}, - {0x8331c031, 0xebbc96}, - {0x8331c032, 0xebbc97}, - {0x8331c033, 0xebbc98}, - {0x8331c034, 0xebbc99}, - {0x8331c035, 0xebbc9a}, - {0x8331c036, 0xebbc9b}, - {0x8331c037, 0xebbc9c}, - {0x8331c038, 0xebbc9d}, - {0x8331c039, 0xebbc9e}, - {0x8331c130, 0xebbc9f}, - {0x8331c131, 0xebbca0}, - {0x8331c132, 0xebbca1}, - {0x8331c133, 0xebbca2}, - {0x8331c134, 0xebbca3}, - {0x8331c135, 0xebbca4}, - {0x8331c136, 0xebbca5}, - {0x8331c137, 0xebbca6}, - {0x8331c138, 0xebbca7}, - {0x8331c139, 0xebbca8}, - {0x8331c230, 0xebbca9}, - {0x8331c231, 0xebbcaa}, - {0x8331c232, 0xebbcab}, - {0x8331c233, 0xebbcac}, - {0x8331c234, 0xebbcad}, - {0x8331c235, 0xebbcae}, - {0x8331c236, 0xebbcaf}, - {0x8331c237, 0xebbcb0}, - {0x8331c238, 0xebbcb1}, - {0x8331c239, 0xebbcb2}, - {0x8331c330, 0xebbcb3}, - {0x8331c331, 0xebbcb4}, - {0x8331c332, 0xebbcb5}, - {0x8331c333, 0xebbcb6}, - {0x8331c334, 0xebbcb7}, - {0x8331c335, 0xebbcb8}, - {0x8331c336, 0xebbcb9}, - {0x8331c337, 0xebbcba}, - {0x8331c338, 0xebbcbb}, - {0x8331c339, 0xebbcbc}, - {0x8331c430, 0xebbcbd}, - {0x8331c431, 0xebbcbe}, - {0x8331c432, 0xebbcbf}, - {0x8331c433, 0xebbd80}, - {0x8331c434, 0xebbd81}, - {0x8331c435, 0xebbd82}, - {0x8331c436, 0xebbd83}, - {0x8331c437, 0xebbd84}, - {0x8331c438, 0xebbd85}, - {0x8331c439, 0xebbd86}, - {0x8331c530, 0xebbd87}, - {0x8331c531, 0xebbd88}, - {0x8331c532, 0xebbd89}, - {0x8331c533, 0xebbd8a}, - {0x8331c534, 0xebbd8b}, - {0x8331c535, 0xebbd8c}, - {0x8331c536, 0xebbd8d}, - {0x8331c537, 0xebbd8e}, - {0x8331c538, 0xebbd8f}, - {0x8331c539, 0xebbd90}, - {0x8331c630, 0xebbd91}, - {0x8331c631, 0xebbd92}, - {0x8331c632, 0xebbd93}, - {0x8331c633, 0xebbd94}, - {0x8331c634, 0xebbd95}, - {0x8331c635, 0xebbd96}, - {0x8331c636, 0xebbd97}, - {0x8331c637, 0xebbd98}, - {0x8331c638, 0xebbd99}, - {0x8331c639, 0xebbd9a}, - {0x8331c730, 0xebbd9b}, - {0x8331c731, 0xebbd9c}, - {0x8331c732, 0xebbd9d}, - {0x8331c733, 0xebbd9e}, - {0x8331c734, 0xebbd9f}, - {0x8331c735, 0xebbda0}, - {0x8331c736, 0xebbda1}, - {0x8331c737, 0xebbda2}, - {0x8331c738, 0xebbda3}, - {0x8331c739, 0xebbda4}, - {0x8331c830, 0xebbda5}, - {0x8331c831, 0xebbda6}, - {0x8331c832, 0xebbda7}, - {0x8331c833, 0xebbda8}, - {0x8331c834, 0xebbda9}, - {0x8331c835, 0xebbdaa}, - {0x8331c836, 0xebbdab}, - {0x8331c837, 0xebbdac}, - {0x8331c838, 0xebbdad}, - {0x8331c839, 0xebbdae}, - {0x8331c930, 0xebbdaf}, - {0x8331c931, 0xebbdb0}, - {0x8331c932, 0xebbdb1}, - {0x8331c933, 0xebbdb2}, - {0x8331c934, 0xebbdb3}, - {0x8331c935, 0xebbdb4}, - {0x8331c936, 0xebbdb5}, - {0x8331c937, 0xebbdb6}, - {0x8331c938, 0xebbdb7}, - {0x8331c939, 0xebbdb8}, - {0x8331ca30, 0xebbdb9}, - {0x8331ca31, 0xebbdba}, - {0x8331ca32, 0xebbdbb}, - {0x8331ca33, 0xebbdbc}, - {0x8331ca34, 0xebbdbd}, - {0x8331ca35, 0xebbdbe}, - {0x8331ca36, 0xebbdbf}, - {0x8331ca37, 0xebbe80}, - {0x8331ca38, 0xebbe81}, - {0x8331ca39, 0xebbe82}, - {0x8331cb30, 0xebbe83}, - {0x8331cb31, 0xebbe84}, - {0x8331cb32, 0xebbe85}, - {0x8331cb33, 0xebbe86}, - {0x8331cb34, 0xebbe87}, - {0x8331cb35, 0xebbe88}, - {0x8331cb36, 0xebbe89}, - {0x8331cb37, 0xebbe8a}, - {0x8331cb38, 0xebbe8b}, - {0x8331cb39, 0xebbe8c}, - {0x8331cc30, 0xebbe8d}, - {0x8331cc31, 0xebbe8e}, - {0x8331cc32, 0xebbe8f}, - {0x8331cc33, 0xebbe90}, - {0x8331cc34, 0xebbe91}, - {0x8331cc35, 0xebbe92}, - {0x8331cc36, 0xebbe93}, - {0x8331cc37, 0xebbe94}, - {0x8331cc38, 0xebbe95}, - {0x8331cc39, 0xebbe96}, - {0x8331cd30, 0xebbe97}, - {0x8331cd31, 0xebbe98}, - {0x8331cd32, 0xebbe99}, - {0x8331cd33, 0xebbe9a}, - {0x8331cd34, 0xebbe9b}, - {0x8331cd35, 0xebbe9c}, - {0x8331cd36, 0xebbe9d}, - {0x8331cd37, 0xebbe9e}, - {0x8331cd38, 0xebbe9f}, - {0x8331cd39, 0xebbea0}, - {0x8331ce30, 0xebbea1}, - {0x8331ce31, 0xebbea2}, - {0x8331ce32, 0xebbea3}, - {0x8331ce33, 0xebbea4}, - {0x8331ce34, 0xebbea5}, - {0x8331ce35, 0xebbea6}, - {0x8331ce36, 0xebbea7}, - {0x8331ce37, 0xebbea8}, - {0x8331ce38, 0xebbea9}, - {0x8331ce39, 0xebbeaa}, - {0x8331cf30, 0xebbeab}, - {0x8331cf31, 0xebbeac}, - {0x8331cf32, 0xebbead}, - {0x8331cf33, 0xebbeae}, - {0x8331cf34, 0xebbeaf}, - {0x8331cf35, 0xebbeb0}, - {0x8331cf36, 0xebbeb1}, - {0x8331cf37, 0xebbeb2}, - {0x8331cf38, 0xebbeb3}, - {0x8331cf39, 0xebbeb4}, - {0x8331d030, 0xebbeb5}, - {0x8331d031, 0xebbeb6}, - {0x8331d032, 0xebbeb7}, - {0x8331d033, 0xebbeb8}, - {0x8331d034, 0xebbeb9}, - {0x8331d035, 0xebbeba}, - {0x8331d036, 0xebbebb}, - {0x8331d037, 0xebbebc}, - {0x8331d038, 0xebbebd}, - {0x8331d039, 0xebbebe}, - {0x8331d130, 0xebbebf}, - {0x8331d131, 0xebbf80}, - {0x8331d132, 0xebbf81}, - {0x8331d133, 0xebbf82}, - {0x8331d134, 0xebbf83}, - {0x8331d135, 0xebbf84}, - {0x8331d136, 0xebbf85}, - {0x8331d137, 0xebbf86}, - {0x8331d138, 0xebbf87}, - {0x8331d139, 0xebbf88}, - {0x8331d230, 0xebbf89}, - {0x8331d231, 0xebbf8a}, - {0x8331d232, 0xebbf8b}, - {0x8331d233, 0xebbf8c}, - {0x8331d234, 0xebbf8d}, - {0x8331d235, 0xebbf8e}, - {0x8331d236, 0xebbf8f}, - {0x8331d237, 0xebbf90}, - {0x8331d238, 0xebbf91}, - {0x8331d239, 0xebbf92}, - {0x8331d330, 0xebbf93}, - {0x8331d331, 0xebbf94}, - {0x8331d332, 0xebbf95}, - {0x8331d333, 0xebbf96}, - {0x8331d334, 0xebbf97}, - {0x8331d335, 0xebbf98}, - {0x8331d336, 0xebbf99}, - {0x8331d337, 0xebbf9a}, - {0x8331d338, 0xebbf9b}, - {0x8331d339, 0xebbf9c}, - {0x8331d430, 0xebbf9d}, - {0x8331d431, 0xebbf9e}, - {0x8331d432, 0xebbf9f}, - {0x8331d433, 0xebbfa0}, - {0x8331d434, 0xebbfa1}, - {0x8331d435, 0xebbfa2}, - {0x8331d436, 0xebbfa3}, - {0x8331d437, 0xebbfa4}, - {0x8331d438, 0xebbfa5}, - {0x8331d439, 0xebbfa6}, - {0x8331d530, 0xebbfa7}, - {0x8331d531, 0xebbfa8}, - {0x8331d532, 0xebbfa9}, - {0x8331d533, 0xebbfaa}, - {0x8331d534, 0xebbfab}, - {0x8331d535, 0xebbfac}, - {0x8331d536, 0xebbfad}, - {0x8331d537, 0xebbfae}, - {0x8331d538, 0xebbfaf}, - {0x8331d539, 0xebbfb0}, - {0x8331d630, 0xebbfb1}, - {0x8331d631, 0xebbfb2}, - {0x8331d632, 0xebbfb3}, - {0x8331d633, 0xebbfb4}, - {0x8331d634, 0xebbfb5}, - {0x8331d635, 0xebbfb6}, - {0x8331d636, 0xebbfb7}, - {0x8331d637, 0xebbfb8}, - {0x8331d638, 0xebbfb9}, - {0x8331d639, 0xebbfba}, - {0x8331d730, 0xebbfbb}, - {0x8331d731, 0xebbfbc}, - {0x8331d732, 0xebbfbd}, - {0x8331d733, 0xebbfbe}, - {0x8331d734, 0xebbfbf}, - {0x8331d735, 0xec8080}, - {0x8331d736, 0xec8081}, - {0x8331d737, 0xec8082}, - {0x8331d738, 0xec8083}, - {0x8331d739, 0xec8084}, - {0x8331d830, 0xec8085}, - {0x8331d831, 0xec8086}, - {0x8331d832, 0xec8087}, - {0x8331d833, 0xec8088}, - {0x8331d834, 0xec8089}, - {0x8331d835, 0xec808a}, - {0x8331d836, 0xec808b}, - {0x8331d837, 0xec808c}, - {0x8331d838, 0xec808d}, - {0x8331d839, 0xec808e}, - {0x8331d930, 0xec808f}, - {0x8331d931, 0xec8090}, - {0x8331d932, 0xec8091}, - {0x8331d933, 0xec8092}, - {0x8331d934, 0xec8093}, - {0x8331d935, 0xec8094}, - {0x8331d936, 0xec8095}, - {0x8331d937, 0xec8096}, - {0x8331d938, 0xec8097}, - {0x8331d939, 0xec8098}, - {0x8331da30, 0xec8099}, - {0x8331da31, 0xec809a}, - {0x8331da32, 0xec809b}, - {0x8331da33, 0xec809c}, - {0x8331da34, 0xec809d}, - {0x8331da35, 0xec809e}, - {0x8331da36, 0xec809f}, - {0x8331da37, 0xec80a0}, - {0x8331da38, 0xec80a1}, - {0x8331da39, 0xec80a2}, - {0x8331db30, 0xec80a3}, - {0x8331db31, 0xec80a4}, - {0x8331db32, 0xec80a5}, - {0x8331db33, 0xec80a6}, - {0x8331db34, 0xec80a7}, - {0x8331db35, 0xec80a8}, - {0x8331db36, 0xec80a9}, - {0x8331db37, 0xec80aa}, - {0x8331db38, 0xec80ab}, - {0x8331db39, 0xec80ac}, - {0x8331dc30, 0xec80ad}, - {0x8331dc31, 0xec80ae}, - {0x8331dc32, 0xec80af}, - {0x8331dc33, 0xec80b0}, - {0x8331dc34, 0xec80b1}, - {0x8331dc35, 0xec80b2}, - {0x8331dc36, 0xec80b3}, - {0x8331dc37, 0xec80b4}, - {0x8331dc38, 0xec80b5}, - {0x8331dc39, 0xec80b6}, - {0x8331dd30, 0xec80b7}, - {0x8331dd31, 0xec80b8}, - {0x8331dd32, 0xec80b9}, - {0x8331dd33, 0xec80ba}, - {0x8331dd34, 0xec80bb}, - {0x8331dd35, 0xec80bc}, - {0x8331dd36, 0xec80bd}, - {0x8331dd37, 0xec80be}, - {0x8331dd38, 0xec80bf}, - {0x8331dd39, 0xec8180}, - {0x8331de30, 0xec8181}, - {0x8331de31, 0xec8182}, - {0x8331de32, 0xec8183}, - {0x8331de33, 0xec8184}, - {0x8331de34, 0xec8185}, - {0x8331de35, 0xec8186}, - {0x8331de36, 0xec8187}, - {0x8331de37, 0xec8188}, - {0x8331de38, 0xec8189}, - {0x8331de39, 0xec818a}, - {0x8331df30, 0xec818b}, - {0x8331df31, 0xec818c}, - {0x8331df32, 0xec818d}, - {0x8331df33, 0xec818e}, - {0x8331df34, 0xec818f}, - {0x8331df35, 0xec8190}, - {0x8331df36, 0xec8191}, - {0x8331df37, 0xec8192}, - {0x8331df38, 0xec8193}, - {0x8331df39, 0xec8194}, - {0x8331e030, 0xec8195}, - {0x8331e031, 0xec8196}, - {0x8331e032, 0xec8197}, - {0x8331e033, 0xec8198}, - {0x8331e034, 0xec8199}, - {0x8331e035, 0xec819a}, - {0x8331e036, 0xec819b}, - {0x8331e037, 0xec819c}, - {0x8331e038, 0xec819d}, - {0x8331e039, 0xec819e}, - {0x8331e130, 0xec819f}, - {0x8331e131, 0xec81a0}, - {0x8331e132, 0xec81a1}, - {0x8331e133, 0xec81a2}, - {0x8331e134, 0xec81a3}, - {0x8331e135, 0xec81a4}, - {0x8331e136, 0xec81a5}, - {0x8331e137, 0xec81a6}, - {0x8331e138, 0xec81a7}, - {0x8331e139, 0xec81a8}, - {0x8331e230, 0xec81a9}, - {0x8331e231, 0xec81aa}, - {0x8331e232, 0xec81ab}, - {0x8331e233, 0xec81ac}, - {0x8331e234, 0xec81ad}, - {0x8331e235, 0xec81ae}, - {0x8331e236, 0xec81af}, - {0x8331e237, 0xec81b0}, - {0x8331e238, 0xec81b1}, - {0x8331e239, 0xec81b2}, - {0x8331e330, 0xec81b3}, - {0x8331e331, 0xec81b4}, - {0x8331e332, 0xec81b5}, - {0x8331e333, 0xec81b6}, - {0x8331e334, 0xec81b7}, - {0x8331e335, 0xec81b8}, - {0x8331e336, 0xec81b9}, - {0x8331e337, 0xec81ba}, - {0x8331e338, 0xec81bb}, - {0x8331e339, 0xec81bc}, - {0x8331e430, 0xec81bd}, - {0x8331e431, 0xec81be}, - {0x8331e432, 0xec81bf}, - {0x8331e433, 0xec8280}, - {0x8331e434, 0xec8281}, - {0x8331e435, 0xec8282}, - {0x8331e436, 0xec8283}, - {0x8331e437, 0xec8284}, - {0x8331e438, 0xec8285}, - {0x8331e439, 0xec8286}, - {0x8331e530, 0xec8287}, - {0x8331e531, 0xec8288}, - {0x8331e532, 0xec8289}, - {0x8331e533, 0xec828a}, - {0x8331e534, 0xec828b}, - {0x8331e535, 0xec828c}, - {0x8331e536, 0xec828d}, - {0x8331e537, 0xec828e}, - {0x8331e538, 0xec828f}, - {0x8331e539, 0xec8290}, - {0x8331e630, 0xec8291}, - {0x8331e631, 0xec8292}, - {0x8331e632, 0xec8293}, - {0x8331e633, 0xec8294}, - {0x8331e634, 0xec8295}, - {0x8331e635, 0xec8296}, - {0x8331e636, 0xec8297}, - {0x8331e637, 0xec8298}, - {0x8331e638, 0xec8299}, - {0x8331e639, 0xec829a}, - {0x8331e730, 0xec829b}, - {0x8331e731, 0xec829c}, - {0x8331e732, 0xec829d}, - {0x8331e733, 0xec829e}, - {0x8331e734, 0xec829f}, - {0x8331e735, 0xec82a0}, - {0x8331e736, 0xec82a1}, - {0x8331e737, 0xec82a2}, - {0x8331e738, 0xec82a3}, - {0x8331e739, 0xec82a4}, - {0x8331e830, 0xec82a5}, - {0x8331e831, 0xec82a6}, - {0x8331e832, 0xec82a7}, - {0x8331e833, 0xec82a8}, - {0x8331e834, 0xec82a9}, - {0x8331e835, 0xec82aa}, - {0x8331e836, 0xec82ab}, - {0x8331e837, 0xec82ac}, - {0x8331e838, 0xec82ad}, - {0x8331e839, 0xec82ae}, - {0x8331e930, 0xec82af}, - {0x8331e931, 0xec82b0}, - {0x8331e932, 0xec82b1}, - {0x8331e933, 0xec82b2}, - {0x8331e934, 0xec82b3}, - {0x8331e935, 0xec82b4}, - {0x8331e936, 0xec82b5}, - {0x8331e937, 0xec82b6}, - {0x8331e938, 0xec82b7}, - {0x8331e939, 0xec82b8}, - {0x8331ea30, 0xec82b9}, - {0x8331ea31, 0xec82ba}, - {0x8331ea32, 0xec82bb}, - {0x8331ea33, 0xec82bc}, - {0x8331ea34, 0xec82bd}, - {0x8331ea35, 0xec82be}, - {0x8331ea36, 0xec82bf}, - {0x8331ea37, 0xec8380}, - {0x8331ea38, 0xec8381}, - {0x8331ea39, 0xec8382}, - {0x8331eb30, 0xec8383}, - {0x8331eb31, 0xec8384}, - {0x8331eb32, 0xec8385}, - {0x8331eb33, 0xec8386}, - {0x8331eb34, 0xec8387}, - {0x8331eb35, 0xec8388}, - {0x8331eb36, 0xec8389}, - {0x8331eb37, 0xec838a}, - {0x8331eb38, 0xec838b}, - {0x8331eb39, 0xec838c}, - {0x8331ec30, 0xec838d}, - {0x8331ec31, 0xec838e}, - {0x8331ec32, 0xec838f}, - {0x8331ec33, 0xec8390}, - {0x8331ec34, 0xec8391}, - {0x8331ec35, 0xec8392}, - {0x8331ec36, 0xec8393}, - {0x8331ec37, 0xec8394}, - {0x8331ec38, 0xec8395}, - {0x8331ec39, 0xec8396}, - {0x8331ed30, 0xec8397}, - {0x8331ed31, 0xec8398}, - {0x8331ed32, 0xec8399}, - {0x8331ed33, 0xec839a}, - {0x8331ed34, 0xec839b}, - {0x8331ed35, 0xec839c}, - {0x8331ed36, 0xec839d}, - {0x8331ed37, 0xec839e}, - {0x8331ed38, 0xec839f}, - {0x8331ed39, 0xec83a0}, - {0x8331ee30, 0xec83a1}, - {0x8331ee31, 0xec83a2}, - {0x8331ee32, 0xec83a3}, - {0x8331ee33, 0xec83a4}, - {0x8331ee34, 0xec83a5}, - {0x8331ee35, 0xec83a6}, - {0x8331ee36, 0xec83a7}, - {0x8331ee37, 0xec83a8}, - {0x8331ee38, 0xec83a9}, - {0x8331ee39, 0xec83aa}, - {0x8331ef30, 0xec83ab}, - {0x8331ef31, 0xec83ac}, - {0x8331ef32, 0xec83ad}, - {0x8331ef33, 0xec83ae}, - {0x8331ef34, 0xec83af}, - {0x8331ef35, 0xec83b0}, - {0x8331ef36, 0xec83b1}, - {0x8331ef37, 0xec83b2}, - {0x8331ef38, 0xec83b3}, - {0x8331ef39, 0xec83b4}, - {0x8331f030, 0xec83b5}, - {0x8331f031, 0xec83b6}, - {0x8331f032, 0xec83b7}, - {0x8331f033, 0xec83b8}, - {0x8331f034, 0xec83b9}, - {0x8331f035, 0xec83ba}, - {0x8331f036, 0xec83bb}, - {0x8331f037, 0xec83bc}, - {0x8331f038, 0xec83bd}, - {0x8331f039, 0xec83be}, - {0x8331f130, 0xec83bf}, - {0x8331f131, 0xec8480}, - {0x8331f132, 0xec8481}, - {0x8331f133, 0xec8482}, - {0x8331f134, 0xec8483}, - {0x8331f135, 0xec8484}, - {0x8331f136, 0xec8485}, - {0x8331f137, 0xec8486}, - {0x8331f138, 0xec8487}, - {0x8331f139, 0xec8488}, - {0x8331f230, 0xec8489}, - {0x8331f231, 0xec848a}, - {0x8331f232, 0xec848b}, - {0x8331f233, 0xec848c}, - {0x8331f234, 0xec848d}, - {0x8331f235, 0xec848e}, - {0x8331f236, 0xec848f}, - {0x8331f237, 0xec8490}, - {0x8331f238, 0xec8491}, - {0x8331f239, 0xec8492}, - {0x8331f330, 0xec8493}, - {0x8331f331, 0xec8494}, - {0x8331f332, 0xec8495}, - {0x8331f333, 0xec8496}, - {0x8331f334, 0xec8497}, - {0x8331f335, 0xec8498}, - {0x8331f336, 0xec8499}, - {0x8331f337, 0xec849a}, - {0x8331f338, 0xec849b}, - {0x8331f339, 0xec849c}, - {0x8331f430, 0xec849d}, - {0x8331f431, 0xec849e}, - {0x8331f432, 0xec849f}, - {0x8331f433, 0xec84a0}, - {0x8331f434, 0xec84a1}, - {0x8331f435, 0xec84a2}, - {0x8331f436, 0xec84a3}, - {0x8331f437, 0xec84a4}, - {0x8331f438, 0xec84a5}, - {0x8331f439, 0xec84a6}, - {0x8331f530, 0xec84a7}, - {0x8331f531, 0xec84a8}, - {0x8331f532, 0xec84a9}, - {0x8331f533, 0xec84aa}, - {0x8331f534, 0xec84ab}, - {0x8331f535, 0xec84ac}, - {0x8331f536, 0xec84ad}, - {0x8331f537, 0xec84ae}, - {0x8331f538, 0xec84af}, - {0x8331f539, 0xec84b0}, - {0x8331f630, 0xec84b1}, - {0x8331f631, 0xec84b2}, - {0x8331f632, 0xec84b3}, - {0x8331f633, 0xec84b4}, - {0x8331f634, 0xec84b5}, - {0x8331f635, 0xec84b6}, - {0x8331f636, 0xec84b7}, - {0x8331f637, 0xec84b8}, - {0x8331f638, 0xec84b9}, - {0x8331f639, 0xec84ba}, - {0x8331f730, 0xec84bb}, - {0x8331f731, 0xec84bc}, - {0x8331f732, 0xec84bd}, - {0x8331f733, 0xec84be}, - {0x8331f734, 0xec84bf}, - {0x8331f735, 0xec8580}, - {0x8331f736, 0xec8581}, - {0x8331f737, 0xec8582}, - {0x8331f738, 0xec8583}, - {0x8331f739, 0xec8584}, - {0x8331f830, 0xec8585}, - {0x8331f831, 0xec8586}, - {0x8331f832, 0xec8587}, - {0x8331f833, 0xec8588}, - {0x8331f834, 0xec8589}, - {0x8331f835, 0xec858a}, - {0x8331f836, 0xec858b}, - {0x8331f837, 0xec858c}, - {0x8331f838, 0xec858d}, - {0x8331f839, 0xec858e}, - {0x8331f930, 0xec858f}, - {0x8331f931, 0xec8590}, - {0x8331f932, 0xec8591}, - {0x8331f933, 0xec8592}, - {0x8331f934, 0xec8593}, - {0x8331f935, 0xec8594}, - {0x8331f936, 0xec8595}, - {0x8331f937, 0xec8596}, - {0x8331f938, 0xec8597}, - {0x8331f939, 0xec8598}, - {0x8331fa30, 0xec8599}, - {0x8331fa31, 0xec859a}, - {0x8331fa32, 0xec859b}, - {0x8331fa33, 0xec859c}, - {0x8331fa34, 0xec859d}, - {0x8331fa35, 0xec859e}, - {0x8331fa36, 0xec859f}, - {0x8331fa37, 0xec85a0}, - {0x8331fa38, 0xec85a1}, - {0x8331fa39, 0xec85a2}, - {0x8331fb30, 0xec85a3}, - {0x8331fb31, 0xec85a4}, - {0x8331fb32, 0xec85a5}, - {0x8331fb33, 0xec85a6}, - {0x8331fb34, 0xec85a7}, - {0x8331fb35, 0xec85a8}, - {0x8331fb36, 0xec85a9}, - {0x8331fb37, 0xec85aa}, - {0x8331fb38, 0xec85ab}, - {0x8331fb39, 0xec85ac}, - {0x8331fc30, 0xec85ad}, - {0x8331fc31, 0xec85ae}, - {0x8331fc32, 0xec85af}, - {0x8331fc33, 0xec85b0}, - {0x8331fc34, 0xec85b1}, - {0x8331fc35, 0xec85b2}, - {0x8331fc36, 0xec85b3}, - {0x8331fc37, 0xec85b4}, - {0x8331fc38, 0xec85b5}, - {0x8331fc39, 0xec85b6}, - {0x8331fd30, 0xec85b7}, - {0x8331fd31, 0xec85b8}, - {0x8331fd32, 0xec85b9}, - {0x8331fd33, 0xec85ba}, - {0x8331fd34, 0xec85bb}, - {0x8331fd35, 0xec85bc}, - {0x8331fd36, 0xec85bd}, - {0x8331fd37, 0xec85be}, - {0x8331fd38, 0xec85bf}, - {0x8331fd39, 0xec8680}, - {0x8331fe30, 0xec8681}, - {0x8331fe31, 0xec8682}, - {0x8331fe32, 0xec8683}, - {0x8331fe33, 0xec8684}, - {0x8331fe34, 0xec8685}, - {0x8331fe35, 0xec8686}, - {0x8331fe36, 0xec8687}, - {0x8331fe37, 0xec8688}, - {0x8331fe38, 0xec8689}, - {0x8331fe39, 0xec868a}, - {0x83328130, 0xec868b}, - {0x83328131, 0xec868c}, - {0x83328132, 0xec868d}, - {0x83328133, 0xec868e}, - {0x83328134, 0xec868f}, - {0x83328135, 0xec8690}, - {0x83328136, 0xec8691}, - {0x83328137, 0xec8692}, - {0x83328138, 0xec8693}, - {0x83328139, 0xec8694}, - {0x83328230, 0xec8695}, - {0x83328231, 0xec8696}, - {0x83328232, 0xec8697}, - {0x83328233, 0xec8698}, - {0x83328234, 0xec8699}, - {0x83328235, 0xec869a}, - {0x83328236, 0xec869b}, - {0x83328237, 0xec869c}, - {0x83328238, 0xec869d}, - {0x83328239, 0xec869e}, - {0x83328330, 0xec869f}, - {0x83328331, 0xec86a0}, - {0x83328332, 0xec86a1}, - {0x83328333, 0xec86a2}, - {0x83328334, 0xec86a3}, - {0x83328335, 0xec86a4}, - {0x83328336, 0xec86a5}, - {0x83328337, 0xec86a6}, - {0x83328338, 0xec86a7}, - {0x83328339, 0xec86a8}, - {0x83328430, 0xec86a9}, - {0x83328431, 0xec86aa}, - {0x83328432, 0xec86ab}, - {0x83328433, 0xec86ac}, - {0x83328434, 0xec86ad}, - {0x83328435, 0xec86ae}, - {0x83328436, 0xec86af}, - {0x83328437, 0xec86b0}, - {0x83328438, 0xec86b1}, - {0x83328439, 0xec86b2}, - {0x83328530, 0xec86b3}, - {0x83328531, 0xec86b4}, - {0x83328532, 0xec86b5}, - {0x83328533, 0xec86b6}, - {0x83328534, 0xec86b7}, - {0x83328535, 0xec86b8}, - {0x83328536, 0xec86b9}, - {0x83328537, 0xec86ba}, - {0x83328538, 0xec86bb}, - {0x83328539, 0xec86bc}, - {0x83328630, 0xec86bd}, - {0x83328631, 0xec86be}, - {0x83328632, 0xec86bf}, - {0x83328633, 0xec8780}, - {0x83328634, 0xec8781}, - {0x83328635, 0xec8782}, - {0x83328636, 0xec8783}, - {0x83328637, 0xec8784}, - {0x83328638, 0xec8785}, - {0x83328639, 0xec8786}, - {0x83328730, 0xec8787}, - {0x83328731, 0xec8788}, - {0x83328732, 0xec8789}, - {0x83328733, 0xec878a}, - {0x83328734, 0xec878b}, - {0x83328735, 0xec878c}, - {0x83328736, 0xec878d}, - {0x83328737, 0xec878e}, - {0x83328738, 0xec878f}, - {0x83328739, 0xec8790}, - {0x83328830, 0xec8791}, - {0x83328831, 0xec8792}, - {0x83328832, 0xec8793}, - {0x83328833, 0xec8794}, - {0x83328834, 0xec8795}, - {0x83328835, 0xec8796}, - {0x83328836, 0xec8797}, - {0x83328837, 0xec8798}, - {0x83328838, 0xec8799}, - {0x83328839, 0xec879a}, - {0x83328930, 0xec879b}, - {0x83328931, 0xec879c}, - {0x83328932, 0xec879d}, - {0x83328933, 0xec879e}, - {0x83328934, 0xec879f}, - {0x83328935, 0xec87a0}, - {0x83328936, 0xec87a1}, - {0x83328937, 0xec87a2}, - {0x83328938, 0xec87a3}, - {0x83328939, 0xec87a4}, - {0x83328a30, 0xec87a5}, - {0x83328a31, 0xec87a6}, - {0x83328a32, 0xec87a7}, - {0x83328a33, 0xec87a8}, - {0x83328a34, 0xec87a9}, - {0x83328a35, 0xec87aa}, - {0x83328a36, 0xec87ab}, - {0x83328a37, 0xec87ac}, - {0x83328a38, 0xec87ad}, - {0x83328a39, 0xec87ae}, - {0x83328b30, 0xec87af}, - {0x83328b31, 0xec87b0}, - {0x83328b32, 0xec87b1}, - {0x83328b33, 0xec87b2}, - {0x83328b34, 0xec87b3}, - {0x83328b35, 0xec87b4}, - {0x83328b36, 0xec87b5}, - {0x83328b37, 0xec87b6}, - {0x83328b38, 0xec87b7}, - {0x83328b39, 0xec87b8}, - {0x83328c30, 0xec87b9}, - {0x83328c31, 0xec87ba}, - {0x83328c32, 0xec87bb}, - {0x83328c33, 0xec87bc}, - {0x83328c34, 0xec87bd}, - {0x83328c35, 0xec87be}, - {0x83328c36, 0xec87bf}, - {0x83328c37, 0xec8880}, - {0x83328c38, 0xec8881}, - {0x83328c39, 0xec8882}, - {0x83328d30, 0xec8883}, - {0x83328d31, 0xec8884}, - {0x83328d32, 0xec8885}, - {0x83328d33, 0xec8886}, - {0x83328d34, 0xec8887}, - {0x83328d35, 0xec8888}, - {0x83328d36, 0xec8889}, - {0x83328d37, 0xec888a}, - {0x83328d38, 0xec888b}, - {0x83328d39, 0xec888c}, - {0x83328e30, 0xec888d}, - {0x83328e31, 0xec888e}, - {0x83328e32, 0xec888f}, - {0x83328e33, 0xec8890}, - {0x83328e34, 0xec8891}, - {0x83328e35, 0xec8892}, - {0x83328e36, 0xec8893}, - {0x83328e37, 0xec8894}, - {0x83328e38, 0xec8895}, - {0x83328e39, 0xec8896}, - {0x83328f30, 0xec8897}, - {0x83328f31, 0xec8898}, - {0x83328f32, 0xec8899}, - {0x83328f33, 0xec889a}, - {0x83328f34, 0xec889b}, - {0x83328f35, 0xec889c}, - {0x83328f36, 0xec889d}, - {0x83328f37, 0xec889e}, - {0x83328f38, 0xec889f}, - {0x83328f39, 0xec88a0}, - {0x83329030, 0xec88a1}, - {0x83329031, 0xec88a2}, - {0x83329032, 0xec88a3}, - {0x83329033, 0xec88a4}, - {0x83329034, 0xec88a5}, - {0x83329035, 0xec88a6}, - {0x83329036, 0xec88a7}, - {0x83329037, 0xec88a8}, - {0x83329038, 0xec88a9}, - {0x83329039, 0xec88aa}, - {0x83329130, 0xec88ab}, - {0x83329131, 0xec88ac}, - {0x83329132, 0xec88ad}, - {0x83329133, 0xec88ae}, - {0x83329134, 0xec88af}, - {0x83329135, 0xec88b0}, - {0x83329136, 0xec88b1}, - {0x83329137, 0xec88b2}, - {0x83329138, 0xec88b3}, - {0x83329139, 0xec88b4}, - {0x83329230, 0xec88b5}, - {0x83329231, 0xec88b6}, - {0x83329232, 0xec88b7}, - {0x83329233, 0xec88b8}, - {0x83329234, 0xec88b9}, - {0x83329235, 0xec88ba}, - {0x83329236, 0xec88bb}, - {0x83329237, 0xec88bc}, - {0x83329238, 0xec88bd}, - {0x83329239, 0xec88be}, - {0x83329330, 0xec88bf}, - {0x83329331, 0xec8980}, - {0x83329332, 0xec8981}, - {0x83329333, 0xec8982}, - {0x83329334, 0xec8983}, - {0x83329335, 0xec8984}, - {0x83329336, 0xec8985}, - {0x83329337, 0xec8986}, - {0x83329338, 0xec8987}, - {0x83329339, 0xec8988}, - {0x83329430, 0xec8989}, - {0x83329431, 0xec898a}, - {0x83329432, 0xec898b}, - {0x83329433, 0xec898c}, - {0x83329434, 0xec898d}, - {0x83329435, 0xec898e}, - {0x83329436, 0xec898f}, - {0x83329437, 0xec8990}, - {0x83329438, 0xec8991}, - {0x83329439, 0xec8992}, - {0x83329530, 0xec8993}, - {0x83329531, 0xec8994}, - {0x83329532, 0xec8995}, - {0x83329533, 0xec8996}, - {0x83329534, 0xec8997}, - {0x83329535, 0xec8998}, - {0x83329536, 0xec8999}, - {0x83329537, 0xec899a}, - {0x83329538, 0xec899b}, - {0x83329539, 0xec899c}, - {0x83329630, 0xec899d}, - {0x83329631, 0xec899e}, - {0x83329632, 0xec899f}, - {0x83329633, 0xec89a0}, - {0x83329634, 0xec89a1}, - {0x83329635, 0xec89a2}, - {0x83329636, 0xec89a3}, - {0x83329637, 0xec89a4}, - {0x83329638, 0xec89a5}, - {0x83329639, 0xec89a6}, - {0x83329730, 0xec89a7}, - {0x83329731, 0xec89a8}, - {0x83329732, 0xec89a9}, - {0x83329733, 0xec89aa}, - {0x83329734, 0xec89ab}, - {0x83329735, 0xec89ac}, - {0x83329736, 0xec89ad}, - {0x83329737, 0xec89ae}, - {0x83329738, 0xec89af}, - {0x83329739, 0xec89b0}, - {0x83329830, 0xec89b1}, - {0x83329831, 0xec89b2}, - {0x83329832, 0xec89b3}, - {0x83329833, 0xec89b4}, - {0x83329834, 0xec89b5}, - {0x83329835, 0xec89b6}, - {0x83329836, 0xec89b7}, - {0x83329837, 0xec89b8}, - {0x83329838, 0xec89b9}, - {0x83329839, 0xec89ba}, - {0x83329930, 0xec89bb}, - {0x83329931, 0xec89bc}, - {0x83329932, 0xec89bd}, - {0x83329933, 0xec89be}, - {0x83329934, 0xec89bf}, - {0x83329935, 0xec8a80}, - {0x83329936, 0xec8a81}, - {0x83329937, 0xec8a82}, - {0x83329938, 0xec8a83}, - {0x83329939, 0xec8a84}, - {0x83329a30, 0xec8a85}, - {0x83329a31, 0xec8a86}, - {0x83329a32, 0xec8a87}, - {0x83329a33, 0xec8a88}, - {0x83329a34, 0xec8a89}, - {0x83329a35, 0xec8a8a}, - {0x83329a36, 0xec8a8b}, - {0x83329a37, 0xec8a8c}, - {0x83329a38, 0xec8a8d}, - {0x83329a39, 0xec8a8e}, - {0x83329b30, 0xec8a8f}, - {0x83329b31, 0xec8a90}, - {0x83329b32, 0xec8a91}, - {0x83329b33, 0xec8a92}, - {0x83329b34, 0xec8a93}, - {0x83329b35, 0xec8a94}, - {0x83329b36, 0xec8a95}, - {0x83329b37, 0xec8a96}, - {0x83329b38, 0xec8a97}, - {0x83329b39, 0xec8a98}, - {0x83329c30, 0xec8a99}, - {0x83329c31, 0xec8a9a}, - {0x83329c32, 0xec8a9b}, - {0x83329c33, 0xec8a9c}, - {0x83329c34, 0xec8a9d}, - {0x83329c35, 0xec8a9e}, - {0x83329c36, 0xec8a9f}, - {0x83329c37, 0xec8aa0}, - {0x83329c38, 0xec8aa1}, - {0x83329c39, 0xec8aa2}, - {0x83329d30, 0xec8aa3}, - {0x83329d31, 0xec8aa4}, - {0x83329d32, 0xec8aa5}, - {0x83329d33, 0xec8aa6}, - {0x83329d34, 0xec8aa7}, - {0x83329d35, 0xec8aa8}, - {0x83329d36, 0xec8aa9}, - {0x83329d37, 0xec8aaa}, - {0x83329d38, 0xec8aab}, - {0x83329d39, 0xec8aac}, - {0x83329e30, 0xec8aad}, - {0x83329e31, 0xec8aae}, - {0x83329e32, 0xec8aaf}, - {0x83329e33, 0xec8ab0}, - {0x83329e34, 0xec8ab1}, - {0x83329e35, 0xec8ab2}, - {0x83329e36, 0xec8ab3}, - {0x83329e37, 0xec8ab4}, - {0x83329e38, 0xec8ab5}, - {0x83329e39, 0xec8ab6}, - {0x83329f30, 0xec8ab7}, - {0x83329f31, 0xec8ab8}, - {0x83329f32, 0xec8ab9}, - {0x83329f33, 0xec8aba}, - {0x83329f34, 0xec8abb}, - {0x83329f35, 0xec8abc}, - {0x83329f36, 0xec8abd}, - {0x83329f37, 0xec8abe}, - {0x83329f38, 0xec8abf}, - {0x83329f39, 0xec8b80}, - {0x8332a030, 0xec8b81}, - {0x8332a031, 0xec8b82}, - {0x8332a032, 0xec8b83}, - {0x8332a033, 0xec8b84}, - {0x8332a034, 0xec8b85}, - {0x8332a035, 0xec8b86}, - {0x8332a036, 0xec8b87}, - {0x8332a037, 0xec8b88}, - {0x8332a038, 0xec8b89}, - {0x8332a039, 0xec8b8a}, - {0x8332a130, 0xec8b8b}, - {0x8332a131, 0xec8b8c}, - {0x8332a132, 0xec8b8d}, - {0x8332a133, 0xec8b8e}, - {0x8332a134, 0xec8b8f}, - {0x8332a135, 0xec8b90}, - {0x8332a136, 0xec8b91}, - {0x8332a137, 0xec8b92}, - {0x8332a138, 0xec8b93}, - {0x8332a139, 0xec8b94}, - {0x8332a230, 0xec8b95}, - {0x8332a231, 0xec8b96}, - {0x8332a232, 0xec8b97}, - {0x8332a233, 0xec8b98}, - {0x8332a234, 0xec8b99}, - {0x8332a235, 0xec8b9a}, - {0x8332a236, 0xec8b9b}, - {0x8332a237, 0xec8b9c}, - {0x8332a238, 0xec8b9d}, - {0x8332a239, 0xec8b9e}, - {0x8332a330, 0xec8b9f}, - {0x8332a331, 0xec8ba0}, - {0x8332a332, 0xec8ba1}, - {0x8332a333, 0xec8ba2}, - {0x8332a334, 0xec8ba3}, - {0x8332a335, 0xec8ba4}, - {0x8332a336, 0xec8ba5}, - {0x8332a337, 0xec8ba6}, - {0x8332a338, 0xec8ba7}, - {0x8332a339, 0xec8ba8}, - {0x8332a430, 0xec8ba9}, - {0x8332a431, 0xec8baa}, - {0x8332a432, 0xec8bab}, - {0x8332a433, 0xec8bac}, - {0x8332a434, 0xec8bad}, - {0x8332a435, 0xec8bae}, - {0x8332a436, 0xec8baf}, - {0x8332a437, 0xec8bb0}, - {0x8332a438, 0xec8bb1}, - {0x8332a439, 0xec8bb2}, - {0x8332a530, 0xec8bb3}, - {0x8332a531, 0xec8bb4}, - {0x8332a532, 0xec8bb5}, - {0x8332a533, 0xec8bb6}, - {0x8332a534, 0xec8bb7}, - {0x8332a535, 0xec8bb8}, - {0x8332a536, 0xec8bb9}, - {0x8332a537, 0xec8bba}, - {0x8332a538, 0xec8bbb}, - {0x8332a539, 0xec8bbc}, - {0x8332a630, 0xec8bbd}, - {0x8332a631, 0xec8bbe}, - {0x8332a632, 0xec8bbf}, - {0x8332a633, 0xec8c80}, - {0x8332a634, 0xec8c81}, - {0x8332a635, 0xec8c82}, - {0x8332a636, 0xec8c83}, - {0x8332a637, 0xec8c84}, - {0x8332a638, 0xec8c85}, - {0x8332a639, 0xec8c86}, - {0x8332a730, 0xec8c87}, - {0x8332a731, 0xec8c88}, - {0x8332a732, 0xec8c89}, - {0x8332a733, 0xec8c8a}, - {0x8332a734, 0xec8c8b}, - {0x8332a735, 0xec8c8c}, - {0x8332a736, 0xec8c8d}, - {0x8332a737, 0xec8c8e}, - {0x8332a738, 0xec8c8f}, - {0x8332a739, 0xec8c90}, - {0x8332a830, 0xec8c91}, - {0x8332a831, 0xec8c92}, - {0x8332a832, 0xec8c93}, - {0x8332a833, 0xec8c94}, - {0x8332a834, 0xec8c95}, - {0x8332a835, 0xec8c96}, - {0x8332a836, 0xec8c97}, - {0x8332a837, 0xec8c98}, - {0x8332a838, 0xec8c99}, - {0x8332a839, 0xec8c9a}, - {0x8332a930, 0xec8c9b}, - {0x8332a931, 0xec8c9c}, - {0x8332a932, 0xec8c9d}, - {0x8332a933, 0xec8c9e}, - {0x8332a934, 0xec8c9f}, - {0x8332a935, 0xec8ca0}, - {0x8332a936, 0xec8ca1}, - {0x8332a937, 0xec8ca2}, - {0x8332a938, 0xec8ca3}, - {0x8332a939, 0xec8ca4}, - {0x8332aa30, 0xec8ca5}, - {0x8332aa31, 0xec8ca6}, - {0x8332aa32, 0xec8ca7}, - {0x8332aa33, 0xec8ca8}, - {0x8332aa34, 0xec8ca9}, - {0x8332aa35, 0xec8caa}, - {0x8332aa36, 0xec8cab}, - {0x8332aa37, 0xec8cac}, - {0x8332aa38, 0xec8cad}, - {0x8332aa39, 0xec8cae}, - {0x8332ab30, 0xec8caf}, - {0x8332ab31, 0xec8cb0}, - {0x8332ab32, 0xec8cb1}, - {0x8332ab33, 0xec8cb2}, - {0x8332ab34, 0xec8cb3}, - {0x8332ab35, 0xec8cb4}, - {0x8332ab36, 0xec8cb5}, - {0x8332ab37, 0xec8cb6}, - {0x8332ab38, 0xec8cb7}, - {0x8332ab39, 0xec8cb8}, - {0x8332ac30, 0xec8cb9}, - {0x8332ac31, 0xec8cba}, - {0x8332ac32, 0xec8cbb}, - {0x8332ac33, 0xec8cbc}, - {0x8332ac34, 0xec8cbd}, - {0x8332ac35, 0xec8cbe}, - {0x8332ac36, 0xec8cbf}, - {0x8332ac37, 0xec8d80}, - {0x8332ac38, 0xec8d81}, - {0x8332ac39, 0xec8d82}, - {0x8332ad30, 0xec8d83}, - {0x8332ad31, 0xec8d84}, - {0x8332ad32, 0xec8d85}, - {0x8332ad33, 0xec8d86}, - {0x8332ad34, 0xec8d87}, - {0x8332ad35, 0xec8d88}, - {0x8332ad36, 0xec8d89}, - {0x8332ad37, 0xec8d8a}, - {0x8332ad38, 0xec8d8b}, - {0x8332ad39, 0xec8d8c}, - {0x8332ae30, 0xec8d8d}, - {0x8332ae31, 0xec8d8e}, - {0x8332ae32, 0xec8d8f}, - {0x8332ae33, 0xec8d90}, - {0x8332ae34, 0xec8d91}, - {0x8332ae35, 0xec8d92}, - {0x8332ae36, 0xec8d93}, - {0x8332ae37, 0xec8d94}, - {0x8332ae38, 0xec8d95}, - {0x8332ae39, 0xec8d96}, - {0x8332af30, 0xec8d97}, - {0x8332af31, 0xec8d98}, - {0x8332af32, 0xec8d99}, - {0x8332af33, 0xec8d9a}, - {0x8332af34, 0xec8d9b}, - {0x8332af35, 0xec8d9c}, - {0x8332af36, 0xec8d9d}, - {0x8332af37, 0xec8d9e}, - {0x8332af38, 0xec8d9f}, - {0x8332af39, 0xec8da0}, - {0x8332b030, 0xec8da1}, - {0x8332b031, 0xec8da2}, - {0x8332b032, 0xec8da3}, - {0x8332b033, 0xec8da4}, - {0x8332b034, 0xec8da5}, - {0x8332b035, 0xec8da6}, - {0x8332b036, 0xec8da7}, - {0x8332b037, 0xec8da8}, - {0x8332b038, 0xec8da9}, - {0x8332b039, 0xec8daa}, - {0x8332b130, 0xec8dab}, - {0x8332b131, 0xec8dac}, - {0x8332b132, 0xec8dad}, - {0x8332b133, 0xec8dae}, - {0x8332b134, 0xec8daf}, - {0x8332b135, 0xec8db0}, - {0x8332b136, 0xec8db1}, - {0x8332b137, 0xec8db2}, - {0x8332b138, 0xec8db3}, - {0x8332b139, 0xec8db4}, - {0x8332b230, 0xec8db5}, - {0x8332b231, 0xec8db6}, - {0x8332b232, 0xec8db7}, - {0x8332b233, 0xec8db8}, - {0x8332b234, 0xec8db9}, - {0x8332b235, 0xec8dba}, - {0x8332b236, 0xec8dbb}, - {0x8332b237, 0xec8dbc}, - {0x8332b238, 0xec8dbd}, - {0x8332b239, 0xec8dbe}, - {0x8332b330, 0xec8dbf}, - {0x8332b331, 0xec8e80}, - {0x8332b332, 0xec8e81}, - {0x8332b333, 0xec8e82}, - {0x8332b334, 0xec8e83}, - {0x8332b335, 0xec8e84}, - {0x8332b336, 0xec8e85}, - {0x8332b337, 0xec8e86}, - {0x8332b338, 0xec8e87}, - {0x8332b339, 0xec8e88}, - {0x8332b430, 0xec8e89}, - {0x8332b431, 0xec8e8a}, - {0x8332b432, 0xec8e8b}, - {0x8332b433, 0xec8e8c}, - {0x8332b434, 0xec8e8d}, - {0x8332b435, 0xec8e8e}, - {0x8332b436, 0xec8e8f}, - {0x8332b437, 0xec8e90}, - {0x8332b438, 0xec8e91}, - {0x8332b439, 0xec8e92}, - {0x8332b530, 0xec8e93}, - {0x8332b531, 0xec8e94}, - {0x8332b532, 0xec8e95}, - {0x8332b533, 0xec8e96}, - {0x8332b534, 0xec8e97}, - {0x8332b535, 0xec8e98}, - {0x8332b536, 0xec8e99}, - {0x8332b537, 0xec8e9a}, - {0x8332b538, 0xec8e9b}, - {0x8332b539, 0xec8e9c}, - {0x8332b630, 0xec8e9d}, - {0x8332b631, 0xec8e9e}, - {0x8332b632, 0xec8e9f}, - {0x8332b633, 0xec8ea0}, - {0x8332b634, 0xec8ea1}, - {0x8332b635, 0xec8ea2}, - {0x8332b636, 0xec8ea3}, - {0x8332b637, 0xec8ea4}, - {0x8332b638, 0xec8ea5}, - {0x8332b639, 0xec8ea6}, - {0x8332b730, 0xec8ea7}, - {0x8332b731, 0xec8ea8}, - {0x8332b732, 0xec8ea9}, - {0x8332b733, 0xec8eaa}, - {0x8332b734, 0xec8eab}, - {0x8332b735, 0xec8eac}, - {0x8332b736, 0xec8ead}, - {0x8332b737, 0xec8eae}, - {0x8332b738, 0xec8eaf}, - {0x8332b739, 0xec8eb0}, - {0x8332b830, 0xec8eb1}, - {0x8332b831, 0xec8eb2}, - {0x8332b832, 0xec8eb3}, - {0x8332b833, 0xec8eb4}, - {0x8332b834, 0xec8eb5}, - {0x8332b835, 0xec8eb6}, - {0x8332b836, 0xec8eb7}, - {0x8332b837, 0xec8eb8}, - {0x8332b838, 0xec8eb9}, - {0x8332b839, 0xec8eba}, - {0x8332b930, 0xec8ebb}, - {0x8332b931, 0xec8ebc}, - {0x8332b932, 0xec8ebd}, - {0x8332b933, 0xec8ebe}, - {0x8332b934, 0xec8ebf}, - {0x8332b935, 0xec8f80}, - {0x8332b936, 0xec8f81}, - {0x8332b937, 0xec8f82}, - {0x8332b938, 0xec8f83}, - {0x8332b939, 0xec8f84}, - {0x8332ba30, 0xec8f85}, - {0x8332ba31, 0xec8f86}, - {0x8332ba32, 0xec8f87}, - {0x8332ba33, 0xec8f88}, - {0x8332ba34, 0xec8f89}, - {0x8332ba35, 0xec8f8a}, - {0x8332ba36, 0xec8f8b}, - {0x8332ba37, 0xec8f8c}, - {0x8332ba38, 0xec8f8d}, - {0x8332ba39, 0xec8f8e}, - {0x8332bb30, 0xec8f8f}, - {0x8332bb31, 0xec8f90}, - {0x8332bb32, 0xec8f91}, - {0x8332bb33, 0xec8f92}, - {0x8332bb34, 0xec8f93}, - {0x8332bb35, 0xec8f94}, - {0x8332bb36, 0xec8f95}, - {0x8332bb37, 0xec8f96}, - {0x8332bb38, 0xec8f97}, - {0x8332bb39, 0xec8f98}, - {0x8332bc30, 0xec8f99}, - {0x8332bc31, 0xec8f9a}, - {0x8332bc32, 0xec8f9b}, - {0x8332bc33, 0xec8f9c}, - {0x8332bc34, 0xec8f9d}, - {0x8332bc35, 0xec8f9e}, - {0x8332bc36, 0xec8f9f}, - {0x8332bc37, 0xec8fa0}, - {0x8332bc38, 0xec8fa1}, - {0x8332bc39, 0xec8fa2}, - {0x8332bd30, 0xec8fa3}, - {0x8332bd31, 0xec8fa4}, - {0x8332bd32, 0xec8fa5}, - {0x8332bd33, 0xec8fa6}, - {0x8332bd34, 0xec8fa7}, - {0x8332bd35, 0xec8fa8}, - {0x8332bd36, 0xec8fa9}, - {0x8332bd37, 0xec8faa}, - {0x8332bd38, 0xec8fab}, - {0x8332bd39, 0xec8fac}, - {0x8332be30, 0xec8fad}, - {0x8332be31, 0xec8fae}, - {0x8332be32, 0xec8faf}, - {0x8332be33, 0xec8fb0}, - {0x8332be34, 0xec8fb1}, - {0x8332be35, 0xec8fb2}, - {0x8332be36, 0xec8fb3}, - {0x8332be37, 0xec8fb4}, - {0x8332be38, 0xec8fb5}, - {0x8332be39, 0xec8fb6}, - {0x8332bf30, 0xec8fb7}, - {0x8332bf31, 0xec8fb8}, - {0x8332bf32, 0xec8fb9}, - {0x8332bf33, 0xec8fba}, - {0x8332bf34, 0xec8fbb}, - {0x8332bf35, 0xec8fbc}, - {0x8332bf36, 0xec8fbd}, - {0x8332bf37, 0xec8fbe}, - {0x8332bf38, 0xec8fbf}, - {0x8332bf39, 0xec9080}, - {0x8332c030, 0xec9081}, - {0x8332c031, 0xec9082}, - {0x8332c032, 0xec9083}, - {0x8332c033, 0xec9084}, - {0x8332c034, 0xec9085}, - {0x8332c035, 0xec9086}, - {0x8332c036, 0xec9087}, - {0x8332c037, 0xec9088}, - {0x8332c038, 0xec9089}, - {0x8332c039, 0xec908a}, - {0x8332c130, 0xec908b}, - {0x8332c131, 0xec908c}, - {0x8332c132, 0xec908d}, - {0x8332c133, 0xec908e}, - {0x8332c134, 0xec908f}, - {0x8332c135, 0xec9090}, - {0x8332c136, 0xec9091}, - {0x8332c137, 0xec9092}, - {0x8332c138, 0xec9093}, - {0x8332c139, 0xec9094}, - {0x8332c230, 0xec9095}, - {0x8332c231, 0xec9096}, - {0x8332c232, 0xec9097}, - {0x8332c233, 0xec9098}, - {0x8332c234, 0xec9099}, - {0x8332c235, 0xec909a}, - {0x8332c236, 0xec909b}, - {0x8332c237, 0xec909c}, - {0x8332c238, 0xec909d}, - {0x8332c239, 0xec909e}, - {0x8332c330, 0xec909f}, - {0x8332c331, 0xec90a0}, - {0x8332c332, 0xec90a1}, - {0x8332c333, 0xec90a2}, - {0x8332c334, 0xec90a3}, - {0x8332c335, 0xec90a4}, - {0x8332c336, 0xec90a5}, - {0x8332c337, 0xec90a6}, - {0x8332c338, 0xec90a7}, - {0x8332c339, 0xec90a8}, - {0x8332c430, 0xec90a9}, - {0x8332c431, 0xec90aa}, - {0x8332c432, 0xec90ab}, - {0x8332c433, 0xec90ac}, - {0x8332c434, 0xec90ad}, - {0x8332c435, 0xec90ae}, - {0x8332c436, 0xec90af}, - {0x8332c437, 0xec90b0}, - {0x8332c438, 0xec90b1}, - {0x8332c439, 0xec90b2}, - {0x8332c530, 0xec90b3}, - {0x8332c531, 0xec90b4}, - {0x8332c532, 0xec90b5}, - {0x8332c533, 0xec90b6}, - {0x8332c534, 0xec90b7}, - {0x8332c535, 0xec90b8}, - {0x8332c536, 0xec90b9}, - {0x8332c537, 0xec90ba}, - {0x8332c538, 0xec90bb}, - {0x8332c539, 0xec90bc}, - {0x8332c630, 0xec90bd}, - {0x8332c631, 0xec90be}, - {0x8332c632, 0xec90bf}, - {0x8332c633, 0xec9180}, - {0x8332c634, 0xec9181}, - {0x8332c635, 0xec9182}, - {0x8332c636, 0xec9183}, - {0x8332c637, 0xec9184}, - {0x8332c638, 0xec9185}, - {0x8332c639, 0xec9186}, - {0x8332c730, 0xec9187}, - {0x8332c731, 0xec9188}, - {0x8332c732, 0xec9189}, - {0x8332c733, 0xec918a}, - {0x8332c734, 0xec918b}, - {0x8332c735, 0xec918c}, - {0x8332c736, 0xec918d}, - {0x8332c737, 0xec918e}, - {0x8332c738, 0xec918f}, - {0x8332c739, 0xec9190}, - {0x8332c830, 0xec9191}, - {0x8332c831, 0xec9192}, - {0x8332c832, 0xec9193}, - {0x8332c833, 0xec9194}, - {0x8332c834, 0xec9195}, - {0x8332c835, 0xec9196}, - {0x8332c836, 0xec9197}, - {0x8332c837, 0xec9198}, - {0x8332c838, 0xec9199}, - {0x8332c839, 0xec919a}, - {0x8332c930, 0xec919b}, - {0x8332c931, 0xec919c}, - {0x8332c932, 0xec919d}, - {0x8332c933, 0xec919e}, - {0x8332c934, 0xec919f}, - {0x8332c935, 0xec91a0}, - {0x8332c936, 0xec91a1}, - {0x8332c937, 0xec91a2}, - {0x8332c938, 0xec91a3}, - {0x8332c939, 0xec91a4}, - {0x8332ca30, 0xec91a5}, - {0x8332ca31, 0xec91a6}, - {0x8332ca32, 0xec91a7}, - {0x8332ca33, 0xec91a8}, - {0x8332ca34, 0xec91a9}, - {0x8332ca35, 0xec91aa}, - {0x8332ca36, 0xec91ab}, - {0x8332ca37, 0xec91ac}, - {0x8332ca38, 0xec91ad}, - {0x8332ca39, 0xec91ae}, - {0x8332cb30, 0xec91af}, - {0x8332cb31, 0xec91b0}, - {0x8332cb32, 0xec91b1}, - {0x8332cb33, 0xec91b2}, - {0x8332cb34, 0xec91b3}, - {0x8332cb35, 0xec91b4}, - {0x8332cb36, 0xec91b5}, - {0x8332cb37, 0xec91b6}, - {0x8332cb38, 0xec91b7}, - {0x8332cb39, 0xec91b8}, - {0x8332cc30, 0xec91b9}, - {0x8332cc31, 0xec91ba}, - {0x8332cc32, 0xec91bb}, - {0x8332cc33, 0xec91bc}, - {0x8332cc34, 0xec91bd}, - {0x8332cc35, 0xec91be}, - {0x8332cc36, 0xec91bf}, - {0x8332cc37, 0xec9280}, - {0x8332cc38, 0xec9281}, - {0x8332cc39, 0xec9282}, - {0x8332cd30, 0xec9283}, - {0x8332cd31, 0xec9284}, - {0x8332cd32, 0xec9285}, - {0x8332cd33, 0xec9286}, - {0x8332cd34, 0xec9287}, - {0x8332cd35, 0xec9288}, - {0x8332cd36, 0xec9289}, - {0x8332cd37, 0xec928a}, - {0x8332cd38, 0xec928b}, - {0x8332cd39, 0xec928c}, - {0x8332ce30, 0xec928d}, - {0x8332ce31, 0xec928e}, - {0x8332ce32, 0xec928f}, - {0x8332ce33, 0xec9290}, - {0x8332ce34, 0xec9291}, - {0x8332ce35, 0xec9292}, - {0x8332ce36, 0xec9293}, - {0x8332ce37, 0xec9294}, - {0x8332ce38, 0xec9295}, - {0x8332ce39, 0xec9296}, - {0x8332cf30, 0xec9297}, - {0x8332cf31, 0xec9298}, - {0x8332cf32, 0xec9299}, - {0x8332cf33, 0xec929a}, - {0x8332cf34, 0xec929b}, - {0x8332cf35, 0xec929c}, - {0x8332cf36, 0xec929d}, - {0x8332cf37, 0xec929e}, - {0x8332cf38, 0xec929f}, - {0x8332cf39, 0xec92a0}, - {0x8332d030, 0xec92a1}, - {0x8332d031, 0xec92a2}, - {0x8332d032, 0xec92a3}, - {0x8332d033, 0xec92a4}, - {0x8332d034, 0xec92a5}, - {0x8332d035, 0xec92a6}, - {0x8332d036, 0xec92a7}, - {0x8332d037, 0xec92a8}, - {0x8332d038, 0xec92a9}, - {0x8332d039, 0xec92aa}, - {0x8332d130, 0xec92ab}, - {0x8332d131, 0xec92ac}, - {0x8332d132, 0xec92ad}, - {0x8332d133, 0xec92ae}, - {0x8332d134, 0xec92af}, - {0x8332d135, 0xec92b0}, - {0x8332d136, 0xec92b1}, - {0x8332d137, 0xec92b2}, - {0x8332d138, 0xec92b3}, - {0x8332d139, 0xec92b4}, - {0x8332d230, 0xec92b5}, - {0x8332d231, 0xec92b6}, - {0x8332d232, 0xec92b7}, - {0x8332d233, 0xec92b8}, - {0x8332d234, 0xec92b9}, - {0x8332d235, 0xec92ba}, - {0x8332d236, 0xec92bb}, - {0x8332d237, 0xec92bc}, - {0x8332d238, 0xec92bd}, - {0x8332d239, 0xec92be}, - {0x8332d330, 0xec92bf}, - {0x8332d331, 0xec9380}, - {0x8332d332, 0xec9381}, - {0x8332d333, 0xec9382}, - {0x8332d334, 0xec9383}, - {0x8332d335, 0xec9384}, - {0x8332d336, 0xec9385}, - {0x8332d337, 0xec9386}, - {0x8332d338, 0xec9387}, - {0x8332d339, 0xec9388}, - {0x8332d430, 0xec9389}, - {0x8332d431, 0xec938a}, - {0x8332d432, 0xec938b}, - {0x8332d433, 0xec938c}, - {0x8332d434, 0xec938d}, - {0x8332d435, 0xec938e}, - {0x8332d436, 0xec938f}, - {0x8332d437, 0xec9390}, - {0x8332d438, 0xec9391}, - {0x8332d439, 0xec9392}, - {0x8332d530, 0xec9393}, - {0x8332d531, 0xec9394}, - {0x8332d532, 0xec9395}, - {0x8332d533, 0xec9396}, - {0x8332d534, 0xec9397}, - {0x8332d535, 0xec9398}, - {0x8332d536, 0xec9399}, - {0x8332d537, 0xec939a}, - {0x8332d538, 0xec939b}, - {0x8332d539, 0xec939c}, - {0x8332d630, 0xec939d}, - {0x8332d631, 0xec939e}, - {0x8332d632, 0xec939f}, - {0x8332d633, 0xec93a0}, - {0x8332d634, 0xec93a1}, - {0x8332d635, 0xec93a2}, - {0x8332d636, 0xec93a3}, - {0x8332d637, 0xec93a4}, - {0x8332d638, 0xec93a5}, - {0x8332d639, 0xec93a6}, - {0x8332d730, 0xec93a7}, - {0x8332d731, 0xec93a8}, - {0x8332d732, 0xec93a9}, - {0x8332d733, 0xec93aa}, - {0x8332d734, 0xec93ab}, - {0x8332d735, 0xec93ac}, - {0x8332d736, 0xec93ad}, - {0x8332d737, 0xec93ae}, - {0x8332d738, 0xec93af}, - {0x8332d739, 0xec93b0}, - {0x8332d830, 0xec93b1}, - {0x8332d831, 0xec93b2}, - {0x8332d832, 0xec93b3}, - {0x8332d833, 0xec93b4}, - {0x8332d834, 0xec93b5}, - {0x8332d835, 0xec93b6}, - {0x8332d836, 0xec93b7}, - {0x8332d837, 0xec93b8}, - {0x8332d838, 0xec93b9}, - {0x8332d839, 0xec93ba}, - {0x8332d930, 0xec93bb}, - {0x8332d931, 0xec93bc}, - {0x8332d932, 0xec93bd}, - {0x8332d933, 0xec93be}, - {0x8332d934, 0xec93bf}, - {0x8332d935, 0xec9480}, - {0x8332d936, 0xec9481}, - {0x8332d937, 0xec9482}, - {0x8332d938, 0xec9483}, - {0x8332d939, 0xec9484}, - {0x8332da30, 0xec9485}, - {0x8332da31, 0xec9486}, - {0x8332da32, 0xec9487}, - {0x8332da33, 0xec9488}, - {0x8332da34, 0xec9489}, - {0x8332da35, 0xec948a}, - {0x8332da36, 0xec948b}, - {0x8332da37, 0xec948c}, - {0x8332da38, 0xec948d}, - {0x8332da39, 0xec948e}, - {0x8332db30, 0xec948f}, - {0x8332db31, 0xec9490}, - {0x8332db32, 0xec9491}, - {0x8332db33, 0xec9492}, - {0x8332db34, 0xec9493}, - {0x8332db35, 0xec9494}, - {0x8332db36, 0xec9495}, - {0x8332db37, 0xec9496}, - {0x8332db38, 0xec9497}, - {0x8332db39, 0xec9498}, - {0x8332dc30, 0xec9499}, - {0x8332dc31, 0xec949a}, - {0x8332dc32, 0xec949b}, - {0x8332dc33, 0xec949c}, - {0x8332dc34, 0xec949d}, - {0x8332dc35, 0xec949e}, - {0x8332dc36, 0xec949f}, - {0x8332dc37, 0xec94a0}, - {0x8332dc38, 0xec94a1}, - {0x8332dc39, 0xec94a2}, - {0x8332dd30, 0xec94a3}, - {0x8332dd31, 0xec94a4}, - {0x8332dd32, 0xec94a5}, - {0x8332dd33, 0xec94a6}, - {0x8332dd34, 0xec94a7}, - {0x8332dd35, 0xec94a8}, - {0x8332dd36, 0xec94a9}, - {0x8332dd37, 0xec94aa}, - {0x8332dd38, 0xec94ab}, - {0x8332dd39, 0xec94ac}, - {0x8332de30, 0xec94ad}, - {0x8332de31, 0xec94ae}, - {0x8332de32, 0xec94af}, - {0x8332de33, 0xec94b0}, - {0x8332de34, 0xec94b1}, - {0x8332de35, 0xec94b2}, - {0x8332de36, 0xec94b3}, - {0x8332de37, 0xec94b4}, - {0x8332de38, 0xec94b5}, - {0x8332de39, 0xec94b6}, - {0x8332df30, 0xec94b7}, - {0x8332df31, 0xec94b8}, - {0x8332df32, 0xec94b9}, - {0x8332df33, 0xec94ba}, - {0x8332df34, 0xec94bb}, - {0x8332df35, 0xec94bc}, - {0x8332df36, 0xec94bd}, - {0x8332df37, 0xec94be}, - {0x8332df38, 0xec94bf}, - {0x8332df39, 0xec9580}, - {0x8332e030, 0xec9581}, - {0x8332e031, 0xec9582}, - {0x8332e032, 0xec9583}, - {0x8332e033, 0xec9584}, - {0x8332e034, 0xec9585}, - {0x8332e035, 0xec9586}, - {0x8332e036, 0xec9587}, - {0x8332e037, 0xec9588}, - {0x8332e038, 0xec9589}, - {0x8332e039, 0xec958a}, - {0x8332e130, 0xec958b}, - {0x8332e131, 0xec958c}, - {0x8332e132, 0xec958d}, - {0x8332e133, 0xec958e}, - {0x8332e134, 0xec958f}, - {0x8332e135, 0xec9590}, - {0x8332e136, 0xec9591}, - {0x8332e137, 0xec9592}, - {0x8332e138, 0xec9593}, - {0x8332e139, 0xec9594}, - {0x8332e230, 0xec9595}, - {0x8332e231, 0xec9596}, - {0x8332e232, 0xec9597}, - {0x8332e233, 0xec9598}, - {0x8332e234, 0xec9599}, - {0x8332e235, 0xec959a}, - {0x8332e236, 0xec959b}, - {0x8332e237, 0xec959c}, - {0x8332e238, 0xec959d}, - {0x8332e239, 0xec959e}, - {0x8332e330, 0xec959f}, - {0x8332e331, 0xec95a0}, - {0x8332e332, 0xec95a1}, - {0x8332e333, 0xec95a2}, - {0x8332e334, 0xec95a3}, - {0x8332e335, 0xec95a4}, - {0x8332e336, 0xec95a5}, - {0x8332e337, 0xec95a6}, - {0x8332e338, 0xec95a7}, - {0x8332e339, 0xec95a8}, - {0x8332e430, 0xec95a9}, - {0x8332e431, 0xec95aa}, - {0x8332e432, 0xec95ab}, - {0x8332e433, 0xec95ac}, - {0x8332e434, 0xec95ad}, - {0x8332e435, 0xec95ae}, - {0x8332e436, 0xec95af}, - {0x8332e437, 0xec95b0}, - {0x8332e438, 0xec95b1}, - {0x8332e439, 0xec95b2}, - {0x8332e530, 0xec95b3}, - {0x8332e531, 0xec95b4}, - {0x8332e532, 0xec95b5}, - {0x8332e533, 0xec95b6}, - {0x8332e534, 0xec95b7}, - {0x8332e535, 0xec95b8}, - {0x8332e536, 0xec95b9}, - {0x8332e537, 0xec95ba}, - {0x8332e538, 0xec95bb}, - {0x8332e539, 0xec95bc}, - {0x8332e630, 0xec95bd}, - {0x8332e631, 0xec95be}, - {0x8332e632, 0xec95bf}, - {0x8332e633, 0xec9680}, - {0x8332e634, 0xec9681}, - {0x8332e635, 0xec9682}, - {0x8332e636, 0xec9683}, - {0x8332e637, 0xec9684}, - {0x8332e638, 0xec9685}, - {0x8332e639, 0xec9686}, - {0x8332e730, 0xec9687}, - {0x8332e731, 0xec9688}, - {0x8332e732, 0xec9689}, - {0x8332e733, 0xec968a}, - {0x8332e734, 0xec968b}, - {0x8332e735, 0xec968c}, - {0x8332e736, 0xec968d}, - {0x8332e737, 0xec968e}, - {0x8332e738, 0xec968f}, - {0x8332e739, 0xec9690}, - {0x8332e830, 0xec9691}, - {0x8332e831, 0xec9692}, - {0x8332e832, 0xec9693}, - {0x8332e833, 0xec9694}, - {0x8332e834, 0xec9695}, - {0x8332e835, 0xec9696}, - {0x8332e836, 0xec9697}, - {0x8332e837, 0xec9698}, - {0x8332e838, 0xec9699}, - {0x8332e839, 0xec969a}, - {0x8332e930, 0xec969b}, - {0x8332e931, 0xec969c}, - {0x8332e932, 0xec969d}, - {0x8332e933, 0xec969e}, - {0x8332e934, 0xec969f}, - {0x8332e935, 0xec96a0}, - {0x8332e936, 0xec96a1}, - {0x8332e937, 0xec96a2}, - {0x8332e938, 0xec96a3}, - {0x8332e939, 0xec96a4}, - {0x8332ea30, 0xec96a5}, - {0x8332ea31, 0xec96a6}, - {0x8332ea32, 0xec96a7}, - {0x8332ea33, 0xec96a8}, - {0x8332ea34, 0xec96a9}, - {0x8332ea35, 0xec96aa}, - {0x8332ea36, 0xec96ab}, - {0x8332ea37, 0xec96ac}, - {0x8332ea38, 0xec96ad}, - {0x8332ea39, 0xec96ae}, - {0x8332eb30, 0xec96af}, - {0x8332eb31, 0xec96b0}, - {0x8332eb32, 0xec96b1}, - {0x8332eb33, 0xec96b2}, - {0x8332eb34, 0xec96b3}, - {0x8332eb35, 0xec96b4}, - {0x8332eb36, 0xec96b5}, - {0x8332eb37, 0xec96b6}, - {0x8332eb38, 0xec96b7}, - {0x8332eb39, 0xec96b8}, - {0x8332ec30, 0xec96b9}, - {0x8332ec31, 0xec96ba}, - {0x8332ec32, 0xec96bb}, - {0x8332ec33, 0xec96bc}, - {0x8332ec34, 0xec96bd}, - {0x8332ec35, 0xec96be}, - {0x8332ec36, 0xec96bf}, - {0x8332ec37, 0xec9780}, - {0x8332ec38, 0xec9781}, - {0x8332ec39, 0xec9782}, - {0x8332ed30, 0xec9783}, - {0x8332ed31, 0xec9784}, - {0x8332ed32, 0xec9785}, - {0x8332ed33, 0xec9786}, - {0x8332ed34, 0xec9787}, - {0x8332ed35, 0xec9788}, - {0x8332ed36, 0xec9789}, - {0x8332ed37, 0xec978a}, - {0x8332ed38, 0xec978b}, - {0x8332ed39, 0xec978c}, - {0x8332ee30, 0xec978d}, - {0x8332ee31, 0xec978e}, - {0x8332ee32, 0xec978f}, - {0x8332ee33, 0xec9790}, - {0x8332ee34, 0xec9791}, - {0x8332ee35, 0xec9792}, - {0x8332ee36, 0xec9793}, - {0x8332ee37, 0xec9794}, - {0x8332ee38, 0xec9795}, - {0x8332ee39, 0xec9796}, - {0x8332ef30, 0xec9797}, - {0x8332ef31, 0xec9798}, - {0x8332ef32, 0xec9799}, - {0x8332ef33, 0xec979a}, - {0x8332ef34, 0xec979b}, - {0x8332ef35, 0xec979c}, - {0x8332ef36, 0xec979d}, - {0x8332ef37, 0xec979e}, - {0x8332ef38, 0xec979f}, - {0x8332ef39, 0xec97a0}, - {0x8332f030, 0xec97a1}, - {0x8332f031, 0xec97a2}, - {0x8332f032, 0xec97a3}, - {0x8332f033, 0xec97a4}, - {0x8332f034, 0xec97a5}, - {0x8332f035, 0xec97a6}, - {0x8332f036, 0xec97a7}, - {0x8332f037, 0xec97a8}, - {0x8332f038, 0xec97a9}, - {0x8332f039, 0xec97aa}, - {0x8332f130, 0xec97ab}, - {0x8332f131, 0xec97ac}, - {0x8332f132, 0xec97ad}, - {0x8332f133, 0xec97ae}, - {0x8332f134, 0xec97af}, - {0x8332f135, 0xec97b0}, - {0x8332f136, 0xec97b1}, - {0x8332f137, 0xec97b2}, - {0x8332f138, 0xec97b3}, - {0x8332f139, 0xec97b4}, - {0x8332f230, 0xec97b5}, - {0x8332f231, 0xec97b6}, - {0x8332f232, 0xec97b7}, - {0x8332f233, 0xec97b8}, - {0x8332f234, 0xec97b9}, - {0x8332f235, 0xec97ba}, - {0x8332f236, 0xec97bb}, - {0x8332f237, 0xec97bc}, - {0x8332f238, 0xec97bd}, - {0x8332f239, 0xec97be}, - {0x8332f330, 0xec97bf}, - {0x8332f331, 0xec9880}, - {0x8332f332, 0xec9881}, - {0x8332f333, 0xec9882}, - {0x8332f334, 0xec9883}, - {0x8332f335, 0xec9884}, - {0x8332f336, 0xec9885}, - {0x8332f337, 0xec9886}, - {0x8332f338, 0xec9887}, - {0x8332f339, 0xec9888}, - {0x8332f430, 0xec9889}, - {0x8332f431, 0xec988a}, - {0x8332f432, 0xec988b}, - {0x8332f433, 0xec988c}, - {0x8332f434, 0xec988d}, - {0x8332f435, 0xec988e}, - {0x8332f436, 0xec988f}, - {0x8332f437, 0xec9890}, - {0x8332f438, 0xec9891}, - {0x8332f439, 0xec9892}, - {0x8332f530, 0xec9893}, - {0x8332f531, 0xec9894}, - {0x8332f532, 0xec9895}, - {0x8332f533, 0xec9896}, - {0x8332f534, 0xec9897}, - {0x8332f535, 0xec9898}, - {0x8332f536, 0xec9899}, - {0x8332f537, 0xec989a}, - {0x8332f538, 0xec989b}, - {0x8332f539, 0xec989c}, - {0x8332f630, 0xec989d}, - {0x8332f631, 0xec989e}, - {0x8332f632, 0xec989f}, - {0x8332f633, 0xec98a0}, - {0x8332f634, 0xec98a1}, - {0x8332f635, 0xec98a2}, - {0x8332f636, 0xec98a3}, - {0x8332f637, 0xec98a4}, - {0x8332f638, 0xec98a5}, - {0x8332f639, 0xec98a6}, - {0x8332f730, 0xec98a7}, - {0x8332f731, 0xec98a8}, - {0x8332f732, 0xec98a9}, - {0x8332f733, 0xec98aa}, - {0x8332f734, 0xec98ab}, - {0x8332f735, 0xec98ac}, - {0x8332f736, 0xec98ad}, - {0x8332f737, 0xec98ae}, - {0x8332f738, 0xec98af}, - {0x8332f739, 0xec98b0}, - {0x8332f830, 0xec98b1}, - {0x8332f831, 0xec98b2}, - {0x8332f832, 0xec98b3}, - {0x8332f833, 0xec98b4}, - {0x8332f834, 0xec98b5}, - {0x8332f835, 0xec98b6}, - {0x8332f836, 0xec98b7}, - {0x8332f837, 0xec98b8}, - {0x8332f838, 0xec98b9}, - {0x8332f839, 0xec98ba}, - {0x8332f930, 0xec98bb}, - {0x8332f931, 0xec98bc}, - {0x8332f932, 0xec98bd}, - {0x8332f933, 0xec98be}, - {0x8332f934, 0xec98bf}, - {0x8332f935, 0xec9980}, - {0x8332f936, 0xec9981}, - {0x8332f937, 0xec9982}, - {0x8332f938, 0xec9983}, - {0x8332f939, 0xec9984}, - {0x8332fa30, 0xec9985}, - {0x8332fa31, 0xec9986}, - {0x8332fa32, 0xec9987}, - {0x8332fa33, 0xec9988}, - {0x8332fa34, 0xec9989}, - {0x8332fa35, 0xec998a}, - {0x8332fa36, 0xec998b}, - {0x8332fa37, 0xec998c}, - {0x8332fa38, 0xec998d}, - {0x8332fa39, 0xec998e}, - {0x8332fb30, 0xec998f}, - {0x8332fb31, 0xec9990}, - {0x8332fb32, 0xec9991}, - {0x8332fb33, 0xec9992}, - {0x8332fb34, 0xec9993}, - {0x8332fb35, 0xec9994}, - {0x8332fb36, 0xec9995}, - {0x8332fb37, 0xec9996}, - {0x8332fb38, 0xec9997}, - {0x8332fb39, 0xec9998}, - {0x8332fc30, 0xec9999}, - {0x8332fc31, 0xec999a}, - {0x8332fc32, 0xec999b}, - {0x8332fc33, 0xec999c}, - {0x8332fc34, 0xec999d}, - {0x8332fc35, 0xec999e}, - {0x8332fc36, 0xec999f}, - {0x8332fc37, 0xec99a0}, - {0x8332fc38, 0xec99a1}, - {0x8332fc39, 0xec99a2}, - {0x8332fd30, 0xec99a3}, - {0x8332fd31, 0xec99a4}, - {0x8332fd32, 0xec99a5}, - {0x8332fd33, 0xec99a6}, - {0x8332fd34, 0xec99a7}, - {0x8332fd35, 0xec99a8}, - {0x8332fd36, 0xec99a9}, - {0x8332fd37, 0xec99aa}, - {0x8332fd38, 0xec99ab}, - {0x8332fd39, 0xec99ac}, - {0x8332fe30, 0xec99ad}, - {0x8332fe31, 0xec99ae}, - {0x8332fe32, 0xec99af}, - {0x8332fe33, 0xec99b0}, - {0x8332fe34, 0xec99b1}, - {0x8332fe35, 0xec99b2}, - {0x8332fe36, 0xec99b3}, - {0x8332fe37, 0xec99b4}, - {0x8332fe38, 0xec99b5}, - {0x8332fe39, 0xec99b6}, - {0x83338130, 0xec99b7}, - {0x83338131, 0xec99b8}, - {0x83338132, 0xec99b9}, - {0x83338133, 0xec99ba}, - {0x83338134, 0xec99bb}, - {0x83338135, 0xec99bc}, - {0x83338136, 0xec99bd}, - {0x83338137, 0xec99be}, - {0x83338138, 0xec99bf}, - {0x83338139, 0xec9a80}, - {0x83338230, 0xec9a81}, - {0x83338231, 0xec9a82}, - {0x83338232, 0xec9a83}, - {0x83338233, 0xec9a84}, - {0x83338234, 0xec9a85}, - {0x83338235, 0xec9a86}, - {0x83338236, 0xec9a87}, - {0x83338237, 0xec9a88}, - {0x83338238, 0xec9a89}, - {0x83338239, 0xec9a8a}, - {0x83338330, 0xec9a8b}, - {0x83338331, 0xec9a8c}, - {0x83338332, 0xec9a8d}, - {0x83338333, 0xec9a8e}, - {0x83338334, 0xec9a8f}, - {0x83338335, 0xec9a90}, - {0x83338336, 0xec9a91}, - {0x83338337, 0xec9a92}, - {0x83338338, 0xec9a93}, - {0x83338339, 0xec9a94}, - {0x83338430, 0xec9a95}, - {0x83338431, 0xec9a96}, - {0x83338432, 0xec9a97}, - {0x83338433, 0xec9a98}, - {0x83338434, 0xec9a99}, - {0x83338435, 0xec9a9a}, - {0x83338436, 0xec9a9b}, - {0x83338437, 0xec9a9c}, - {0x83338438, 0xec9a9d}, - {0x83338439, 0xec9a9e}, - {0x83338530, 0xec9a9f}, - {0x83338531, 0xec9aa0}, - {0x83338532, 0xec9aa1}, - {0x83338533, 0xec9aa2}, - {0x83338534, 0xec9aa3}, - {0x83338535, 0xec9aa4}, - {0x83338536, 0xec9aa5}, - {0x83338537, 0xec9aa6}, - {0x83338538, 0xec9aa7}, - {0x83338539, 0xec9aa8}, - {0x83338630, 0xec9aa9}, - {0x83338631, 0xec9aaa}, - {0x83338632, 0xec9aab}, - {0x83338633, 0xec9aac}, - {0x83338634, 0xec9aad}, - {0x83338635, 0xec9aae}, - {0x83338636, 0xec9aaf}, - {0x83338637, 0xec9ab0}, - {0x83338638, 0xec9ab1}, - {0x83338639, 0xec9ab2}, - {0x83338730, 0xec9ab3}, - {0x83338731, 0xec9ab4}, - {0x83338732, 0xec9ab5}, - {0x83338733, 0xec9ab6}, - {0x83338734, 0xec9ab7}, - {0x83338735, 0xec9ab8}, - {0x83338736, 0xec9ab9}, - {0x83338737, 0xec9aba}, - {0x83338738, 0xec9abb}, - {0x83338739, 0xec9abc}, - {0x83338830, 0xec9abd}, - {0x83338831, 0xec9abe}, - {0x83338832, 0xec9abf}, - {0x83338833, 0xec9b80}, - {0x83338834, 0xec9b81}, - {0x83338835, 0xec9b82}, - {0x83338836, 0xec9b83}, - {0x83338837, 0xec9b84}, - {0x83338838, 0xec9b85}, - {0x83338839, 0xec9b86}, - {0x83338930, 0xec9b87}, - {0x83338931, 0xec9b88}, - {0x83338932, 0xec9b89}, - {0x83338933, 0xec9b8a}, - {0x83338934, 0xec9b8b}, - {0x83338935, 0xec9b8c}, - {0x83338936, 0xec9b8d}, - {0x83338937, 0xec9b8e}, - {0x83338938, 0xec9b8f}, - {0x83338939, 0xec9b90}, - {0x83338a30, 0xec9b91}, - {0x83338a31, 0xec9b92}, - {0x83338a32, 0xec9b93}, - {0x83338a33, 0xec9b94}, - {0x83338a34, 0xec9b95}, - {0x83338a35, 0xec9b96}, - {0x83338a36, 0xec9b97}, - {0x83338a37, 0xec9b98}, - {0x83338a38, 0xec9b99}, - {0x83338a39, 0xec9b9a}, - {0x83338b30, 0xec9b9b}, - {0x83338b31, 0xec9b9c}, - {0x83338b32, 0xec9b9d}, - {0x83338b33, 0xec9b9e}, - {0x83338b34, 0xec9b9f}, - {0x83338b35, 0xec9ba0}, - {0x83338b36, 0xec9ba1}, - {0x83338b37, 0xec9ba2}, - {0x83338b38, 0xec9ba3}, - {0x83338b39, 0xec9ba4}, - {0x83338c30, 0xec9ba5}, - {0x83338c31, 0xec9ba6}, - {0x83338c32, 0xec9ba7}, - {0x83338c33, 0xec9ba8}, - {0x83338c34, 0xec9ba9}, - {0x83338c35, 0xec9baa}, - {0x83338c36, 0xec9bab}, - {0x83338c37, 0xec9bac}, - {0x83338c38, 0xec9bad}, - {0x83338c39, 0xec9bae}, - {0x83338d30, 0xec9baf}, - {0x83338d31, 0xec9bb0}, - {0x83338d32, 0xec9bb1}, - {0x83338d33, 0xec9bb2}, - {0x83338d34, 0xec9bb3}, - {0x83338d35, 0xec9bb4}, - {0x83338d36, 0xec9bb5}, - {0x83338d37, 0xec9bb6}, - {0x83338d38, 0xec9bb7}, - {0x83338d39, 0xec9bb8}, - {0x83338e30, 0xec9bb9}, - {0x83338e31, 0xec9bba}, - {0x83338e32, 0xec9bbb}, - {0x83338e33, 0xec9bbc}, - {0x83338e34, 0xec9bbd}, - {0x83338e35, 0xec9bbe}, - {0x83338e36, 0xec9bbf}, - {0x83338e37, 0xec9c80}, - {0x83338e38, 0xec9c81}, - {0x83338e39, 0xec9c82}, - {0x83338f30, 0xec9c83}, - {0x83338f31, 0xec9c84}, - {0x83338f32, 0xec9c85}, - {0x83338f33, 0xec9c86}, - {0x83338f34, 0xec9c87}, - {0x83338f35, 0xec9c88}, - {0x83338f36, 0xec9c89}, - {0x83338f37, 0xec9c8a}, - {0x83338f38, 0xec9c8b}, - {0x83338f39, 0xec9c8c}, - {0x83339030, 0xec9c8d}, - {0x83339031, 0xec9c8e}, - {0x83339032, 0xec9c8f}, - {0x83339033, 0xec9c90}, - {0x83339034, 0xec9c91}, - {0x83339035, 0xec9c92}, - {0x83339036, 0xec9c93}, - {0x83339037, 0xec9c94}, - {0x83339038, 0xec9c95}, - {0x83339039, 0xec9c96}, - {0x83339130, 0xec9c97}, - {0x83339131, 0xec9c98}, - {0x83339132, 0xec9c99}, - {0x83339133, 0xec9c9a}, - {0x83339134, 0xec9c9b}, - {0x83339135, 0xec9c9c}, - {0x83339136, 0xec9c9d}, - {0x83339137, 0xec9c9e}, - {0x83339138, 0xec9c9f}, - {0x83339139, 0xec9ca0}, - {0x83339230, 0xec9ca1}, - {0x83339231, 0xec9ca2}, - {0x83339232, 0xec9ca3}, - {0x83339233, 0xec9ca4}, - {0x83339234, 0xec9ca5}, - {0x83339235, 0xec9ca6}, - {0x83339236, 0xec9ca7}, - {0x83339237, 0xec9ca8}, - {0x83339238, 0xec9ca9}, - {0x83339239, 0xec9caa}, - {0x83339330, 0xec9cab}, - {0x83339331, 0xec9cac}, - {0x83339332, 0xec9cad}, - {0x83339333, 0xec9cae}, - {0x83339334, 0xec9caf}, - {0x83339335, 0xec9cb0}, - {0x83339336, 0xec9cb1}, - {0x83339337, 0xec9cb2}, - {0x83339338, 0xec9cb3}, - {0x83339339, 0xec9cb4}, - {0x83339430, 0xec9cb5}, - {0x83339431, 0xec9cb6}, - {0x83339432, 0xec9cb7}, - {0x83339433, 0xec9cb8}, - {0x83339434, 0xec9cb9}, - {0x83339435, 0xec9cba}, - {0x83339436, 0xec9cbb}, - {0x83339437, 0xec9cbc}, - {0x83339438, 0xec9cbd}, - {0x83339439, 0xec9cbe}, - {0x83339530, 0xec9cbf}, - {0x83339531, 0xec9d80}, - {0x83339532, 0xec9d81}, - {0x83339533, 0xec9d82}, - {0x83339534, 0xec9d83}, - {0x83339535, 0xec9d84}, - {0x83339536, 0xec9d85}, - {0x83339537, 0xec9d86}, - {0x83339538, 0xec9d87}, - {0x83339539, 0xec9d88}, - {0x83339630, 0xec9d89}, - {0x83339631, 0xec9d8a}, - {0x83339632, 0xec9d8b}, - {0x83339633, 0xec9d8c}, - {0x83339634, 0xec9d8d}, - {0x83339635, 0xec9d8e}, - {0x83339636, 0xec9d8f}, - {0x83339637, 0xec9d90}, - {0x83339638, 0xec9d91}, - {0x83339639, 0xec9d92}, - {0x83339730, 0xec9d93}, - {0x83339731, 0xec9d94}, - {0x83339732, 0xec9d95}, - {0x83339733, 0xec9d96}, - {0x83339734, 0xec9d97}, - {0x83339735, 0xec9d98}, - {0x83339736, 0xec9d99}, - {0x83339737, 0xec9d9a}, - {0x83339738, 0xec9d9b}, - {0x83339739, 0xec9d9c}, - {0x83339830, 0xec9d9d}, - {0x83339831, 0xec9d9e}, - {0x83339832, 0xec9d9f}, - {0x83339833, 0xec9da0}, - {0x83339834, 0xec9da1}, - {0x83339835, 0xec9da2}, - {0x83339836, 0xec9da3}, - {0x83339837, 0xec9da4}, - {0x83339838, 0xec9da5}, - {0x83339839, 0xec9da6}, - {0x83339930, 0xec9da7}, - {0x83339931, 0xec9da8}, - {0x83339932, 0xec9da9}, - {0x83339933, 0xec9daa}, - {0x83339934, 0xec9dab}, - {0x83339935, 0xec9dac}, - {0x83339936, 0xec9dad}, - {0x83339937, 0xec9dae}, - {0x83339938, 0xec9daf}, - {0x83339939, 0xec9db0}, - {0x83339a30, 0xec9db1}, - {0x83339a31, 0xec9db2}, - {0x83339a32, 0xec9db3}, - {0x83339a33, 0xec9db4}, - {0x83339a34, 0xec9db5}, - {0x83339a35, 0xec9db6}, - {0x83339a36, 0xec9db7}, - {0x83339a37, 0xec9db8}, - {0x83339a38, 0xec9db9}, - {0x83339a39, 0xec9dba}, - {0x83339b30, 0xec9dbb}, - {0x83339b31, 0xec9dbc}, - {0x83339b32, 0xec9dbd}, - {0x83339b33, 0xec9dbe}, - {0x83339b34, 0xec9dbf}, - {0x83339b35, 0xec9e80}, - {0x83339b36, 0xec9e81}, - {0x83339b37, 0xec9e82}, - {0x83339b38, 0xec9e83}, - {0x83339b39, 0xec9e84}, - {0x83339c30, 0xec9e85}, - {0x83339c31, 0xec9e86}, - {0x83339c32, 0xec9e87}, - {0x83339c33, 0xec9e88}, - {0x83339c34, 0xec9e89}, - {0x83339c35, 0xec9e8a}, - {0x83339c36, 0xec9e8b}, - {0x83339c37, 0xec9e8c}, - {0x83339c38, 0xec9e8d}, - {0x83339c39, 0xec9e8e}, - {0x83339d30, 0xec9e8f}, - {0x83339d31, 0xec9e90}, - {0x83339d32, 0xec9e91}, - {0x83339d33, 0xec9e92}, - {0x83339d34, 0xec9e93}, - {0x83339d35, 0xec9e94}, - {0x83339d36, 0xec9e95}, - {0x83339d37, 0xec9e96}, - {0x83339d38, 0xec9e97}, - {0x83339d39, 0xec9e98}, - {0x83339e30, 0xec9e99}, - {0x83339e31, 0xec9e9a}, - {0x83339e32, 0xec9e9b}, - {0x83339e33, 0xec9e9c}, - {0x83339e34, 0xec9e9d}, - {0x83339e35, 0xec9e9e}, - {0x83339e36, 0xec9e9f}, - {0x83339e37, 0xec9ea0}, - {0x83339e38, 0xec9ea1}, - {0x83339e39, 0xec9ea2}, - {0x83339f30, 0xec9ea3}, - {0x83339f31, 0xec9ea4}, - {0x83339f32, 0xec9ea5}, - {0x83339f33, 0xec9ea6}, - {0x83339f34, 0xec9ea7}, - {0x83339f35, 0xec9ea8}, - {0x83339f36, 0xec9ea9}, - {0x83339f37, 0xec9eaa}, - {0x83339f38, 0xec9eab}, - {0x83339f39, 0xec9eac}, - {0x8333a030, 0xec9ead}, - {0x8333a031, 0xec9eae}, - {0x8333a032, 0xec9eaf}, - {0x8333a033, 0xec9eb0}, - {0x8333a034, 0xec9eb1}, - {0x8333a035, 0xec9eb2}, - {0x8333a036, 0xec9eb3}, - {0x8333a037, 0xec9eb4}, - {0x8333a038, 0xec9eb5}, - {0x8333a039, 0xec9eb6}, - {0x8333a130, 0xec9eb7}, - {0x8333a131, 0xec9eb8}, - {0x8333a132, 0xec9eb9}, - {0x8333a133, 0xec9eba}, - {0x8333a134, 0xec9ebb}, - {0x8333a135, 0xec9ebc}, - {0x8333a136, 0xec9ebd}, - {0x8333a137, 0xec9ebe}, - {0x8333a138, 0xec9ebf}, - {0x8333a139, 0xec9f80}, - {0x8333a230, 0xec9f81}, - {0x8333a231, 0xec9f82}, - {0x8333a232, 0xec9f83}, - {0x8333a233, 0xec9f84}, - {0x8333a234, 0xec9f85}, - {0x8333a235, 0xec9f86}, - {0x8333a236, 0xec9f87}, - {0x8333a237, 0xec9f88}, - {0x8333a238, 0xec9f89}, - {0x8333a239, 0xec9f8a}, - {0x8333a330, 0xec9f8b}, - {0x8333a331, 0xec9f8c}, - {0x8333a332, 0xec9f8d}, - {0x8333a333, 0xec9f8e}, - {0x8333a334, 0xec9f8f}, - {0x8333a335, 0xec9f90}, - {0x8333a336, 0xec9f91}, - {0x8333a337, 0xec9f92}, - {0x8333a338, 0xec9f93}, - {0x8333a339, 0xec9f94}, - {0x8333a430, 0xec9f95}, - {0x8333a431, 0xec9f96}, - {0x8333a432, 0xec9f97}, - {0x8333a433, 0xec9f98}, - {0x8333a434, 0xec9f99}, - {0x8333a435, 0xec9f9a}, - {0x8333a436, 0xec9f9b}, - {0x8333a437, 0xec9f9c}, - {0x8333a438, 0xec9f9d}, - {0x8333a439, 0xec9f9e}, - {0x8333a530, 0xec9f9f}, - {0x8333a531, 0xec9fa0}, - {0x8333a532, 0xec9fa1}, - {0x8333a533, 0xec9fa2}, - {0x8333a534, 0xec9fa3}, - {0x8333a535, 0xec9fa4}, - {0x8333a536, 0xec9fa5}, - {0x8333a537, 0xec9fa6}, - {0x8333a538, 0xec9fa7}, - {0x8333a539, 0xec9fa8}, - {0x8333a630, 0xec9fa9}, - {0x8333a631, 0xec9faa}, - {0x8333a632, 0xec9fab}, - {0x8333a633, 0xec9fac}, - {0x8333a634, 0xec9fad}, - {0x8333a635, 0xec9fae}, - {0x8333a636, 0xec9faf}, - {0x8333a637, 0xec9fb0}, - {0x8333a638, 0xec9fb1}, - {0x8333a639, 0xec9fb2}, - {0x8333a730, 0xec9fb3}, - {0x8333a731, 0xec9fb4}, - {0x8333a732, 0xec9fb5}, - {0x8333a733, 0xec9fb6}, - {0x8333a734, 0xec9fb7}, - {0x8333a735, 0xec9fb8}, - {0x8333a736, 0xec9fb9}, - {0x8333a737, 0xec9fba}, - {0x8333a738, 0xec9fbb}, - {0x8333a739, 0xec9fbc}, - {0x8333a830, 0xec9fbd}, - {0x8333a831, 0xec9fbe}, - {0x8333a832, 0xec9fbf}, - {0x8333a833, 0xeca080}, - {0x8333a834, 0xeca081}, - {0x8333a835, 0xeca082}, - {0x8333a836, 0xeca083}, - {0x8333a837, 0xeca084}, - {0x8333a838, 0xeca085}, - {0x8333a839, 0xeca086}, - {0x8333a930, 0xeca087}, - {0x8333a931, 0xeca088}, - {0x8333a932, 0xeca089}, - {0x8333a933, 0xeca08a}, - {0x8333a934, 0xeca08b}, - {0x8333a935, 0xeca08c}, - {0x8333a936, 0xeca08d}, - {0x8333a937, 0xeca08e}, - {0x8333a938, 0xeca08f}, - {0x8333a939, 0xeca090}, - {0x8333aa30, 0xeca091}, - {0x8333aa31, 0xeca092}, - {0x8333aa32, 0xeca093}, - {0x8333aa33, 0xeca094}, - {0x8333aa34, 0xeca095}, - {0x8333aa35, 0xeca096}, - {0x8333aa36, 0xeca097}, - {0x8333aa37, 0xeca098}, - {0x8333aa38, 0xeca099}, - {0x8333aa39, 0xeca09a}, - {0x8333ab30, 0xeca09b}, - {0x8333ab31, 0xeca09c}, - {0x8333ab32, 0xeca09d}, - {0x8333ab33, 0xeca09e}, - {0x8333ab34, 0xeca09f}, - {0x8333ab35, 0xeca0a0}, - {0x8333ab36, 0xeca0a1}, - {0x8333ab37, 0xeca0a2}, - {0x8333ab38, 0xeca0a3}, - {0x8333ab39, 0xeca0a4}, - {0x8333ac30, 0xeca0a5}, - {0x8333ac31, 0xeca0a6}, - {0x8333ac32, 0xeca0a7}, - {0x8333ac33, 0xeca0a8}, - {0x8333ac34, 0xeca0a9}, - {0x8333ac35, 0xeca0aa}, - {0x8333ac36, 0xeca0ab}, - {0x8333ac37, 0xeca0ac}, - {0x8333ac38, 0xeca0ad}, - {0x8333ac39, 0xeca0ae}, - {0x8333ad30, 0xeca0af}, - {0x8333ad31, 0xeca0b0}, - {0x8333ad32, 0xeca0b1}, - {0x8333ad33, 0xeca0b2}, - {0x8333ad34, 0xeca0b3}, - {0x8333ad35, 0xeca0b4}, - {0x8333ad36, 0xeca0b5}, - {0x8333ad37, 0xeca0b6}, - {0x8333ad38, 0xeca0b7}, - {0x8333ad39, 0xeca0b8}, - {0x8333ae30, 0xeca0b9}, - {0x8333ae31, 0xeca0ba}, - {0x8333ae32, 0xeca0bb}, - {0x8333ae33, 0xeca0bc}, - {0x8333ae34, 0xeca0bd}, - {0x8333ae35, 0xeca0be}, - {0x8333ae36, 0xeca0bf}, - {0x8333ae37, 0xeca180}, - {0x8333ae38, 0xeca181}, - {0x8333ae39, 0xeca182}, - {0x8333af30, 0xeca183}, - {0x8333af31, 0xeca184}, - {0x8333af32, 0xeca185}, - {0x8333af33, 0xeca186}, - {0x8333af34, 0xeca187}, - {0x8333af35, 0xeca188}, - {0x8333af36, 0xeca189}, - {0x8333af37, 0xeca18a}, - {0x8333af38, 0xeca18b}, - {0x8333af39, 0xeca18c}, - {0x8333b030, 0xeca18d}, - {0x8333b031, 0xeca18e}, - {0x8333b032, 0xeca18f}, - {0x8333b033, 0xeca190}, - {0x8333b034, 0xeca191}, - {0x8333b035, 0xeca192}, - {0x8333b036, 0xeca193}, - {0x8333b037, 0xeca194}, - {0x8333b038, 0xeca195}, - {0x8333b039, 0xeca196}, - {0x8333b130, 0xeca197}, - {0x8333b131, 0xeca198}, - {0x8333b132, 0xeca199}, - {0x8333b133, 0xeca19a}, - {0x8333b134, 0xeca19b}, - {0x8333b135, 0xeca19c}, - {0x8333b136, 0xeca19d}, - {0x8333b137, 0xeca19e}, - {0x8333b138, 0xeca19f}, - {0x8333b139, 0xeca1a0}, - {0x8333b230, 0xeca1a1}, - {0x8333b231, 0xeca1a2}, - {0x8333b232, 0xeca1a3}, - {0x8333b233, 0xeca1a4}, - {0x8333b234, 0xeca1a5}, - {0x8333b235, 0xeca1a6}, - {0x8333b236, 0xeca1a7}, - {0x8333b237, 0xeca1a8}, - {0x8333b238, 0xeca1a9}, - {0x8333b239, 0xeca1aa}, - {0x8333b330, 0xeca1ab}, - {0x8333b331, 0xeca1ac}, - {0x8333b332, 0xeca1ad}, - {0x8333b333, 0xeca1ae}, - {0x8333b334, 0xeca1af}, - {0x8333b335, 0xeca1b0}, - {0x8333b336, 0xeca1b1}, - {0x8333b337, 0xeca1b2}, - {0x8333b338, 0xeca1b3}, - {0x8333b339, 0xeca1b4}, - {0x8333b430, 0xeca1b5}, - {0x8333b431, 0xeca1b6}, - {0x8333b432, 0xeca1b7}, - {0x8333b433, 0xeca1b8}, - {0x8333b434, 0xeca1b9}, - {0x8333b435, 0xeca1ba}, - {0x8333b436, 0xeca1bb}, - {0x8333b437, 0xeca1bc}, - {0x8333b438, 0xeca1bd}, - {0x8333b439, 0xeca1be}, - {0x8333b530, 0xeca1bf}, - {0x8333b531, 0xeca280}, - {0x8333b532, 0xeca281}, - {0x8333b533, 0xeca282}, - {0x8333b534, 0xeca283}, - {0x8333b535, 0xeca284}, - {0x8333b536, 0xeca285}, - {0x8333b537, 0xeca286}, - {0x8333b538, 0xeca287}, - {0x8333b539, 0xeca288}, - {0x8333b630, 0xeca289}, - {0x8333b631, 0xeca28a}, - {0x8333b632, 0xeca28b}, - {0x8333b633, 0xeca28c}, - {0x8333b634, 0xeca28d}, - {0x8333b635, 0xeca28e}, - {0x8333b636, 0xeca28f}, - {0x8333b637, 0xeca290}, - {0x8333b638, 0xeca291}, - {0x8333b639, 0xeca292}, - {0x8333b730, 0xeca293}, - {0x8333b731, 0xeca294}, - {0x8333b732, 0xeca295}, - {0x8333b733, 0xeca296}, - {0x8333b734, 0xeca297}, - {0x8333b735, 0xeca298}, - {0x8333b736, 0xeca299}, - {0x8333b737, 0xeca29a}, - {0x8333b738, 0xeca29b}, - {0x8333b739, 0xeca29c}, - {0x8333b830, 0xeca29d}, - {0x8333b831, 0xeca29e}, - {0x8333b832, 0xeca29f}, - {0x8333b833, 0xeca2a0}, - {0x8333b834, 0xeca2a1}, - {0x8333b835, 0xeca2a2}, - {0x8333b836, 0xeca2a3}, - {0x8333b837, 0xeca2a4}, - {0x8333b838, 0xeca2a5}, - {0x8333b839, 0xeca2a6}, - {0x8333b930, 0xeca2a7}, - {0x8333b931, 0xeca2a8}, - {0x8333b932, 0xeca2a9}, - {0x8333b933, 0xeca2aa}, - {0x8333b934, 0xeca2ab}, - {0x8333b935, 0xeca2ac}, - {0x8333b936, 0xeca2ad}, - {0x8333b937, 0xeca2ae}, - {0x8333b938, 0xeca2af}, - {0x8333b939, 0xeca2b0}, - {0x8333ba30, 0xeca2b1}, - {0x8333ba31, 0xeca2b2}, - {0x8333ba32, 0xeca2b3}, - {0x8333ba33, 0xeca2b4}, - {0x8333ba34, 0xeca2b5}, - {0x8333ba35, 0xeca2b6}, - {0x8333ba36, 0xeca2b7}, - {0x8333ba37, 0xeca2b8}, - {0x8333ba38, 0xeca2b9}, - {0x8333ba39, 0xeca2ba}, - {0x8333bb30, 0xeca2bb}, - {0x8333bb31, 0xeca2bc}, - {0x8333bb32, 0xeca2bd}, - {0x8333bb33, 0xeca2be}, - {0x8333bb34, 0xeca2bf}, - {0x8333bb35, 0xeca380}, - {0x8333bb36, 0xeca381}, - {0x8333bb37, 0xeca382}, - {0x8333bb38, 0xeca383}, - {0x8333bb39, 0xeca384}, - {0x8333bc30, 0xeca385}, - {0x8333bc31, 0xeca386}, - {0x8333bc32, 0xeca387}, - {0x8333bc33, 0xeca388}, - {0x8333bc34, 0xeca389}, - {0x8333bc35, 0xeca38a}, - {0x8333bc36, 0xeca38b}, - {0x8333bc37, 0xeca38c}, - {0x8333bc38, 0xeca38d}, - {0x8333bc39, 0xeca38e}, - {0x8333bd30, 0xeca38f}, - {0x8333bd31, 0xeca390}, - {0x8333bd32, 0xeca391}, - {0x8333bd33, 0xeca392}, - {0x8333bd34, 0xeca393}, - {0x8333bd35, 0xeca394}, - {0x8333bd36, 0xeca395}, - {0x8333bd37, 0xeca396}, - {0x8333bd38, 0xeca397}, - {0x8333bd39, 0xeca398}, - {0x8333be30, 0xeca399}, - {0x8333be31, 0xeca39a}, - {0x8333be32, 0xeca39b}, - {0x8333be33, 0xeca39c}, - {0x8333be34, 0xeca39d}, - {0x8333be35, 0xeca39e}, - {0x8333be36, 0xeca39f}, - {0x8333be37, 0xeca3a0}, - {0x8333be38, 0xeca3a1}, - {0x8333be39, 0xeca3a2}, - {0x8333bf30, 0xeca3a3}, - {0x8333bf31, 0xeca3a4}, - {0x8333bf32, 0xeca3a5}, - {0x8333bf33, 0xeca3a6}, - {0x8333bf34, 0xeca3a7}, - {0x8333bf35, 0xeca3a8}, - {0x8333bf36, 0xeca3a9}, - {0x8333bf37, 0xeca3aa}, - {0x8333bf38, 0xeca3ab}, - {0x8333bf39, 0xeca3ac}, - {0x8333c030, 0xeca3ad}, - {0x8333c031, 0xeca3ae}, - {0x8333c032, 0xeca3af}, - {0x8333c033, 0xeca3b0}, - {0x8333c034, 0xeca3b1}, - {0x8333c035, 0xeca3b2}, - {0x8333c036, 0xeca3b3}, - {0x8333c037, 0xeca3b4}, - {0x8333c038, 0xeca3b5}, - {0x8333c039, 0xeca3b6}, - {0x8333c130, 0xeca3b7}, - {0x8333c131, 0xeca3b8}, - {0x8333c132, 0xeca3b9}, - {0x8333c133, 0xeca3ba}, - {0x8333c134, 0xeca3bb}, - {0x8333c135, 0xeca3bc}, - {0x8333c136, 0xeca3bd}, - {0x8333c137, 0xeca3be}, - {0x8333c138, 0xeca3bf}, - {0x8333c139, 0xeca480}, - {0x8333c230, 0xeca481}, - {0x8333c231, 0xeca482}, - {0x8333c232, 0xeca483}, - {0x8333c233, 0xeca484}, - {0x8333c234, 0xeca485}, - {0x8333c235, 0xeca486}, - {0x8333c236, 0xeca487}, - {0x8333c237, 0xeca488}, - {0x8333c238, 0xeca489}, - {0x8333c239, 0xeca48a}, - {0x8333c330, 0xeca48b}, - {0x8333c331, 0xeca48c}, - {0x8333c332, 0xeca48d}, - {0x8333c333, 0xeca48e}, - {0x8333c334, 0xeca48f}, - {0x8333c335, 0xeca490}, - {0x8333c336, 0xeca491}, - {0x8333c337, 0xeca492}, - {0x8333c338, 0xeca493}, - {0x8333c339, 0xeca494}, - {0x8333c430, 0xeca495}, - {0x8333c431, 0xeca496}, - {0x8333c432, 0xeca497}, - {0x8333c433, 0xeca498}, - {0x8333c434, 0xeca499}, - {0x8333c435, 0xeca49a}, - {0x8333c436, 0xeca49b}, - {0x8333c437, 0xeca49c}, - {0x8333c438, 0xeca49d}, - {0x8333c439, 0xeca49e}, - {0x8333c530, 0xeca49f}, - {0x8333c531, 0xeca4a0}, - {0x8333c532, 0xeca4a1}, - {0x8333c533, 0xeca4a2}, - {0x8333c534, 0xeca4a3}, - {0x8333c535, 0xeca4a4}, - {0x8333c536, 0xeca4a5}, - {0x8333c537, 0xeca4a6}, - {0x8333c538, 0xeca4a7}, - {0x8333c539, 0xeca4a8}, - {0x8333c630, 0xeca4a9}, - {0x8333c631, 0xeca4aa}, - {0x8333c632, 0xeca4ab}, - {0x8333c633, 0xeca4ac}, - {0x8333c634, 0xeca4ad}, - {0x8333c635, 0xeca4ae}, - {0x8333c636, 0xeca4af}, - {0x8333c637, 0xeca4b0}, - {0x8333c638, 0xeca4b1}, - {0x8333c639, 0xeca4b2}, - {0x8333c730, 0xeca4b3}, - {0x8333c731, 0xeca4b4}, - {0x8333c732, 0xeca4b5}, - {0x8333c733, 0xeca4b6}, - {0x8333c734, 0xeca4b7}, - {0x8333c735, 0xeca4b8}, - {0x8333c736, 0xeca4b9}, - {0x8333c737, 0xeca4ba}, - {0x8333c738, 0xeca4bb}, - {0x8333c739, 0xeca4bc}, - {0x8333c830, 0xeca4bd}, - {0x8333c831, 0xeca4be}, - {0x8333c832, 0xeca4bf}, - {0x8333c833, 0xeca580}, - {0x8333c834, 0xeca581}, - {0x8333c835, 0xeca582}, - {0x8333c836, 0xeca583}, - {0x8333c837, 0xeca584}, - {0x8333c838, 0xeca585}, - {0x8333c839, 0xeca586}, - {0x8333c930, 0xeca587}, - {0x8333c931, 0xeca588}, - {0x8333c932, 0xeca589}, - {0x8333c933, 0xeca58a}, - {0x8333c934, 0xeca58b}, - {0x8333c935, 0xeca58c}, - {0x8333c936, 0xeca58d}, - {0x8333c937, 0xeca58e}, - {0x8333c938, 0xeca58f}, - {0x8333c939, 0xeca590}, - {0x8333ca30, 0xeca591}, - {0x8333ca31, 0xeca592}, - {0x8333ca32, 0xeca593}, - {0x8333ca33, 0xeca594}, - {0x8333ca34, 0xeca595}, - {0x8333ca35, 0xeca596}, - {0x8333ca36, 0xeca597}, - {0x8333ca37, 0xeca598}, - {0x8333ca38, 0xeca599}, - {0x8333ca39, 0xeca59a}, - {0x8333cb30, 0xeca59b}, - {0x8333cb31, 0xeca59c}, - {0x8333cb32, 0xeca59d}, - {0x8333cb33, 0xeca59e}, - {0x8333cb34, 0xeca59f}, - {0x8333cb35, 0xeca5a0}, - {0x8333cb36, 0xeca5a1}, - {0x8333cb37, 0xeca5a2}, - {0x8333cb38, 0xeca5a3}, - {0x8333cb39, 0xeca5a4}, - {0x8333cc30, 0xeca5a5}, - {0x8333cc31, 0xeca5a6}, - {0x8333cc32, 0xeca5a7}, - {0x8333cc33, 0xeca5a8}, - {0x8333cc34, 0xeca5a9}, - {0x8333cc35, 0xeca5aa}, - {0x8333cc36, 0xeca5ab}, - {0x8333cc37, 0xeca5ac}, - {0x8333cc38, 0xeca5ad}, - {0x8333cc39, 0xeca5ae}, - {0x8333cd30, 0xeca5af}, - {0x8333cd31, 0xeca5b0}, - {0x8333cd32, 0xeca5b1}, - {0x8333cd33, 0xeca5b2}, - {0x8333cd34, 0xeca5b3}, - {0x8333cd35, 0xeca5b4}, - {0x8333cd36, 0xeca5b5}, - {0x8333cd37, 0xeca5b6}, - {0x8333cd38, 0xeca5b7}, - {0x8333cd39, 0xeca5b8}, - {0x8333ce30, 0xeca5b9}, - {0x8333ce31, 0xeca5ba}, - {0x8333ce32, 0xeca5bb}, - {0x8333ce33, 0xeca5bc}, - {0x8333ce34, 0xeca5bd}, - {0x8333ce35, 0xeca5be}, - {0x8333ce36, 0xeca5bf}, - {0x8333ce37, 0xeca680}, - {0x8333ce38, 0xeca681}, - {0x8333ce39, 0xeca682}, - {0x8333cf30, 0xeca683}, - {0x8333cf31, 0xeca684}, - {0x8333cf32, 0xeca685}, - {0x8333cf33, 0xeca686}, - {0x8333cf34, 0xeca687}, - {0x8333cf35, 0xeca688}, - {0x8333cf36, 0xeca689}, - {0x8333cf37, 0xeca68a}, - {0x8333cf38, 0xeca68b}, - {0x8333cf39, 0xeca68c}, - {0x8333d030, 0xeca68d}, - {0x8333d031, 0xeca68e}, - {0x8333d032, 0xeca68f}, - {0x8333d033, 0xeca690}, - {0x8333d034, 0xeca691}, - {0x8333d035, 0xeca692}, - {0x8333d036, 0xeca693}, - {0x8333d037, 0xeca694}, - {0x8333d038, 0xeca695}, - {0x8333d039, 0xeca696}, - {0x8333d130, 0xeca697}, - {0x8333d131, 0xeca698}, - {0x8333d132, 0xeca699}, - {0x8333d133, 0xeca69a}, - {0x8333d134, 0xeca69b}, - {0x8333d135, 0xeca69c}, - {0x8333d136, 0xeca69d}, - {0x8333d137, 0xeca69e}, - {0x8333d138, 0xeca69f}, - {0x8333d139, 0xeca6a0}, - {0x8333d230, 0xeca6a1}, - {0x8333d231, 0xeca6a2}, - {0x8333d232, 0xeca6a3}, - {0x8333d233, 0xeca6a4}, - {0x8333d234, 0xeca6a5}, - {0x8333d235, 0xeca6a6}, - {0x8333d236, 0xeca6a7}, - {0x8333d237, 0xeca6a8}, - {0x8333d238, 0xeca6a9}, - {0x8333d239, 0xeca6aa}, - {0x8333d330, 0xeca6ab}, - {0x8333d331, 0xeca6ac}, - {0x8333d332, 0xeca6ad}, - {0x8333d333, 0xeca6ae}, - {0x8333d334, 0xeca6af}, - {0x8333d335, 0xeca6b0}, - {0x8333d336, 0xeca6b1}, - {0x8333d337, 0xeca6b2}, - {0x8333d338, 0xeca6b3}, - {0x8333d339, 0xeca6b4}, - {0x8333d430, 0xeca6b5}, - {0x8333d431, 0xeca6b6}, - {0x8333d432, 0xeca6b7}, - {0x8333d433, 0xeca6b8}, - {0x8333d434, 0xeca6b9}, - {0x8333d435, 0xeca6ba}, - {0x8333d436, 0xeca6bb}, - {0x8333d437, 0xeca6bc}, - {0x8333d438, 0xeca6bd}, - {0x8333d439, 0xeca6be}, - {0x8333d530, 0xeca6bf}, - {0x8333d531, 0xeca780}, - {0x8333d532, 0xeca781}, - {0x8333d533, 0xeca782}, - {0x8333d534, 0xeca783}, - {0x8333d535, 0xeca784}, - {0x8333d536, 0xeca785}, - {0x8333d537, 0xeca786}, - {0x8333d538, 0xeca787}, - {0x8333d539, 0xeca788}, - {0x8333d630, 0xeca789}, - {0x8333d631, 0xeca78a}, - {0x8333d632, 0xeca78b}, - {0x8333d633, 0xeca78c}, - {0x8333d634, 0xeca78d}, - {0x8333d635, 0xeca78e}, - {0x8333d636, 0xeca78f}, - {0x8333d637, 0xeca790}, - {0x8333d638, 0xeca791}, - {0x8333d639, 0xeca792}, - {0x8333d730, 0xeca793}, - {0x8333d731, 0xeca794}, - {0x8333d732, 0xeca795}, - {0x8333d733, 0xeca796}, - {0x8333d734, 0xeca797}, - {0x8333d735, 0xeca798}, - {0x8333d736, 0xeca799}, - {0x8333d737, 0xeca79a}, - {0x8333d738, 0xeca79b}, - {0x8333d739, 0xeca79c}, - {0x8333d830, 0xeca79d}, - {0x8333d831, 0xeca79e}, - {0x8333d832, 0xeca79f}, - {0x8333d833, 0xeca7a0}, - {0x8333d834, 0xeca7a1}, - {0x8333d835, 0xeca7a2}, - {0x8333d836, 0xeca7a3}, - {0x8333d837, 0xeca7a4}, - {0x8333d838, 0xeca7a5}, - {0x8333d839, 0xeca7a6}, - {0x8333d930, 0xeca7a7}, - {0x8333d931, 0xeca7a8}, - {0x8333d932, 0xeca7a9}, - {0x8333d933, 0xeca7aa}, - {0x8333d934, 0xeca7ab}, - {0x8333d935, 0xeca7ac}, - {0x8333d936, 0xeca7ad}, - {0x8333d937, 0xeca7ae}, - {0x8333d938, 0xeca7af}, - {0x8333d939, 0xeca7b0}, - {0x8333da30, 0xeca7b1}, - {0x8333da31, 0xeca7b2}, - {0x8333da32, 0xeca7b3}, - {0x8333da33, 0xeca7b4}, - {0x8333da34, 0xeca7b5}, - {0x8333da35, 0xeca7b6}, - {0x8333da36, 0xeca7b7}, - {0x8333da37, 0xeca7b8}, - {0x8333da38, 0xeca7b9}, - {0x8333da39, 0xeca7ba}, - {0x8333db30, 0xeca7bb}, - {0x8333db31, 0xeca7bc}, - {0x8333db32, 0xeca7bd}, - {0x8333db33, 0xeca7be}, - {0x8333db34, 0xeca7bf}, - {0x8333db35, 0xeca880}, - {0x8333db36, 0xeca881}, - {0x8333db37, 0xeca882}, - {0x8333db38, 0xeca883}, - {0x8333db39, 0xeca884}, - {0x8333dc30, 0xeca885}, - {0x8333dc31, 0xeca886}, - {0x8333dc32, 0xeca887}, - {0x8333dc33, 0xeca888}, - {0x8333dc34, 0xeca889}, - {0x8333dc35, 0xeca88a}, - {0x8333dc36, 0xeca88b}, - {0x8333dc37, 0xeca88c}, - {0x8333dc38, 0xeca88d}, - {0x8333dc39, 0xeca88e}, - {0x8333dd30, 0xeca88f}, - {0x8333dd31, 0xeca890}, - {0x8333dd32, 0xeca891}, - {0x8333dd33, 0xeca892}, - {0x8333dd34, 0xeca893}, - {0x8333dd35, 0xeca894}, - {0x8333dd36, 0xeca895}, - {0x8333dd37, 0xeca896}, - {0x8333dd38, 0xeca897}, - {0x8333dd39, 0xeca898}, - {0x8333de30, 0xeca899}, - {0x8333de31, 0xeca89a}, - {0x8333de32, 0xeca89b}, - {0x8333de33, 0xeca89c}, - {0x8333de34, 0xeca89d}, - {0x8333de35, 0xeca89e}, - {0x8333de36, 0xeca89f}, - {0x8333de37, 0xeca8a0}, - {0x8333de38, 0xeca8a1}, - {0x8333de39, 0xeca8a2}, - {0x8333df30, 0xeca8a3}, - {0x8333df31, 0xeca8a4}, - {0x8333df32, 0xeca8a5}, - {0x8333df33, 0xeca8a6}, - {0x8333df34, 0xeca8a7}, - {0x8333df35, 0xeca8a8}, - {0x8333df36, 0xeca8a9}, - {0x8333df37, 0xeca8aa}, - {0x8333df38, 0xeca8ab}, - {0x8333df39, 0xeca8ac}, - {0x8333e030, 0xeca8ad}, - {0x8333e031, 0xeca8ae}, - {0x8333e032, 0xeca8af}, - {0x8333e033, 0xeca8b0}, - {0x8333e034, 0xeca8b1}, - {0x8333e035, 0xeca8b2}, - {0x8333e036, 0xeca8b3}, - {0x8333e037, 0xeca8b4}, - {0x8333e038, 0xeca8b5}, - {0x8333e039, 0xeca8b6}, - {0x8333e130, 0xeca8b7}, - {0x8333e131, 0xeca8b8}, - {0x8333e132, 0xeca8b9}, - {0x8333e133, 0xeca8ba}, - {0x8333e134, 0xeca8bb}, - {0x8333e135, 0xeca8bc}, - {0x8333e136, 0xeca8bd}, - {0x8333e137, 0xeca8be}, - {0x8333e138, 0xeca8bf}, - {0x8333e139, 0xeca980}, - {0x8333e230, 0xeca981}, - {0x8333e231, 0xeca982}, - {0x8333e232, 0xeca983}, - {0x8333e233, 0xeca984}, - {0x8333e234, 0xeca985}, - {0x8333e235, 0xeca986}, - {0x8333e236, 0xeca987}, - {0x8333e237, 0xeca988}, - {0x8333e238, 0xeca989}, - {0x8333e239, 0xeca98a}, - {0x8333e330, 0xeca98b}, - {0x8333e331, 0xeca98c}, - {0x8333e332, 0xeca98d}, - {0x8333e333, 0xeca98e}, - {0x8333e334, 0xeca98f}, - {0x8333e335, 0xeca990}, - {0x8333e336, 0xeca991}, - {0x8333e337, 0xeca992}, - {0x8333e338, 0xeca993}, - {0x8333e339, 0xeca994}, - {0x8333e430, 0xeca995}, - {0x8333e431, 0xeca996}, - {0x8333e432, 0xeca997}, - {0x8333e433, 0xeca998}, - {0x8333e434, 0xeca999}, - {0x8333e435, 0xeca99a}, - {0x8333e436, 0xeca99b}, - {0x8333e437, 0xeca99c}, - {0x8333e438, 0xeca99d}, - {0x8333e439, 0xeca99e}, - {0x8333e530, 0xeca99f}, - {0x8333e531, 0xeca9a0}, - {0x8333e532, 0xeca9a1}, - {0x8333e533, 0xeca9a2}, - {0x8333e534, 0xeca9a3}, - {0x8333e535, 0xeca9a4}, - {0x8333e536, 0xeca9a5}, - {0x8333e537, 0xeca9a6}, - {0x8333e538, 0xeca9a7}, - {0x8333e539, 0xeca9a8}, - {0x8333e630, 0xeca9a9}, - {0x8333e631, 0xeca9aa}, - {0x8333e632, 0xeca9ab}, - {0x8333e633, 0xeca9ac}, - {0x8333e634, 0xeca9ad}, - {0x8333e635, 0xeca9ae}, - {0x8333e636, 0xeca9af}, - {0x8333e637, 0xeca9b0}, - {0x8333e638, 0xeca9b1}, - {0x8333e639, 0xeca9b2}, - {0x8333e730, 0xeca9b3}, - {0x8333e731, 0xeca9b4}, - {0x8333e732, 0xeca9b5}, - {0x8333e733, 0xeca9b6}, - {0x8333e734, 0xeca9b7}, - {0x8333e735, 0xeca9b8}, - {0x8333e736, 0xeca9b9}, - {0x8333e737, 0xeca9ba}, - {0x8333e738, 0xeca9bb}, - {0x8333e739, 0xeca9bc}, - {0x8333e830, 0xeca9bd}, - {0x8333e831, 0xeca9be}, - {0x8333e832, 0xeca9bf}, - {0x8333e833, 0xecaa80}, - {0x8333e834, 0xecaa81}, - {0x8333e835, 0xecaa82}, - {0x8333e836, 0xecaa83}, - {0x8333e837, 0xecaa84}, - {0x8333e838, 0xecaa85}, - {0x8333e839, 0xecaa86}, - {0x8333e930, 0xecaa87}, - {0x8333e931, 0xecaa88}, - {0x8333e932, 0xecaa89}, - {0x8333e933, 0xecaa8a}, - {0x8333e934, 0xecaa8b}, - {0x8333e935, 0xecaa8c}, - {0x8333e936, 0xecaa8d}, - {0x8333e937, 0xecaa8e}, - {0x8333e938, 0xecaa8f}, - {0x8333e939, 0xecaa90}, - {0x8333ea30, 0xecaa91}, - {0x8333ea31, 0xecaa92}, - {0x8333ea32, 0xecaa93}, - {0x8333ea33, 0xecaa94}, - {0x8333ea34, 0xecaa95}, - {0x8333ea35, 0xecaa96}, - {0x8333ea36, 0xecaa97}, - {0x8333ea37, 0xecaa98}, - {0x8333ea38, 0xecaa99}, - {0x8333ea39, 0xecaa9a}, - {0x8333eb30, 0xecaa9b}, - {0x8333eb31, 0xecaa9c}, - {0x8333eb32, 0xecaa9d}, - {0x8333eb33, 0xecaa9e}, - {0x8333eb34, 0xecaa9f}, - {0x8333eb35, 0xecaaa0}, - {0x8333eb36, 0xecaaa1}, - {0x8333eb37, 0xecaaa2}, - {0x8333eb38, 0xecaaa3}, - {0x8333eb39, 0xecaaa4}, - {0x8333ec30, 0xecaaa5}, - {0x8333ec31, 0xecaaa6}, - {0x8333ec32, 0xecaaa7}, - {0x8333ec33, 0xecaaa8}, - {0x8333ec34, 0xecaaa9}, - {0x8333ec35, 0xecaaaa}, - {0x8333ec36, 0xecaaab}, - {0x8333ec37, 0xecaaac}, - {0x8333ec38, 0xecaaad}, - {0x8333ec39, 0xecaaae}, - {0x8333ed30, 0xecaaaf}, - {0x8333ed31, 0xecaab0}, - {0x8333ed32, 0xecaab1}, - {0x8333ed33, 0xecaab2}, - {0x8333ed34, 0xecaab3}, - {0x8333ed35, 0xecaab4}, - {0x8333ed36, 0xecaab5}, - {0x8333ed37, 0xecaab6}, - {0x8333ed38, 0xecaab7}, - {0x8333ed39, 0xecaab8}, - {0x8333ee30, 0xecaab9}, - {0x8333ee31, 0xecaaba}, - {0x8333ee32, 0xecaabb}, - {0x8333ee33, 0xecaabc}, - {0x8333ee34, 0xecaabd}, - {0x8333ee35, 0xecaabe}, - {0x8333ee36, 0xecaabf}, - {0x8333ee37, 0xecab80}, - {0x8333ee38, 0xecab81}, - {0x8333ee39, 0xecab82}, - {0x8333ef30, 0xecab83}, - {0x8333ef31, 0xecab84}, - {0x8333ef32, 0xecab85}, - {0x8333ef33, 0xecab86}, - {0x8333ef34, 0xecab87}, - {0x8333ef35, 0xecab88}, - {0x8333ef36, 0xecab89}, - {0x8333ef37, 0xecab8a}, - {0x8333ef38, 0xecab8b}, - {0x8333ef39, 0xecab8c}, - {0x8333f030, 0xecab8d}, - {0x8333f031, 0xecab8e}, - {0x8333f032, 0xecab8f}, - {0x8333f033, 0xecab90}, - {0x8333f034, 0xecab91}, - {0x8333f035, 0xecab92}, - {0x8333f036, 0xecab93}, - {0x8333f037, 0xecab94}, - {0x8333f038, 0xecab95}, - {0x8333f039, 0xecab96}, - {0x8333f130, 0xecab97}, - {0x8333f131, 0xecab98}, - {0x8333f132, 0xecab99}, - {0x8333f133, 0xecab9a}, - {0x8333f134, 0xecab9b}, - {0x8333f135, 0xecab9c}, - {0x8333f136, 0xecab9d}, - {0x8333f137, 0xecab9e}, - {0x8333f138, 0xecab9f}, - {0x8333f139, 0xecaba0}, - {0x8333f230, 0xecaba1}, - {0x8333f231, 0xecaba2}, - {0x8333f232, 0xecaba3}, - {0x8333f233, 0xecaba4}, - {0x8333f234, 0xecaba5}, - {0x8333f235, 0xecaba6}, - {0x8333f236, 0xecaba7}, - {0x8333f237, 0xecaba8}, - {0x8333f238, 0xecaba9}, - {0x8333f239, 0xecabaa}, - {0x8333f330, 0xecabab}, - {0x8333f331, 0xecabac}, - {0x8333f332, 0xecabad}, - {0x8333f333, 0xecabae}, - {0x8333f334, 0xecabaf}, - {0x8333f335, 0xecabb0}, - {0x8333f336, 0xecabb1}, - {0x8333f337, 0xecabb2}, - {0x8333f338, 0xecabb3}, - {0x8333f339, 0xecabb4}, - {0x8333f430, 0xecabb5}, - {0x8333f431, 0xecabb6}, - {0x8333f432, 0xecabb7}, - {0x8333f433, 0xecabb8}, - {0x8333f434, 0xecabb9}, - {0x8333f435, 0xecabba}, - {0x8333f436, 0xecabbb}, - {0x8333f437, 0xecabbc}, - {0x8333f438, 0xecabbd}, - {0x8333f439, 0xecabbe}, - {0x8333f530, 0xecabbf}, - {0x8333f531, 0xecac80}, - {0x8333f532, 0xecac81}, - {0x8333f533, 0xecac82}, - {0x8333f534, 0xecac83}, - {0x8333f535, 0xecac84}, - {0x8333f536, 0xecac85}, - {0x8333f537, 0xecac86}, - {0x8333f538, 0xecac87}, - {0x8333f539, 0xecac88}, - {0x8333f630, 0xecac89}, - {0x8333f631, 0xecac8a}, - {0x8333f632, 0xecac8b}, - {0x8333f633, 0xecac8c}, - {0x8333f634, 0xecac8d}, - {0x8333f635, 0xecac8e}, - {0x8333f636, 0xecac8f}, - {0x8333f637, 0xecac90}, - {0x8333f638, 0xecac91}, - {0x8333f639, 0xecac92}, - {0x8333f730, 0xecac93}, - {0x8333f731, 0xecac94}, - {0x8333f732, 0xecac95}, - {0x8333f733, 0xecac96}, - {0x8333f734, 0xecac97}, - {0x8333f735, 0xecac98}, - {0x8333f736, 0xecac99}, - {0x8333f737, 0xecac9a}, - {0x8333f738, 0xecac9b}, - {0x8333f739, 0xecac9c}, - {0x8333f830, 0xecac9d}, - {0x8333f831, 0xecac9e}, - {0x8333f832, 0xecac9f}, - {0x8333f833, 0xecaca0}, - {0x8333f834, 0xecaca1}, - {0x8333f835, 0xecaca2}, - {0x8333f836, 0xecaca3}, - {0x8333f837, 0xecaca4}, - {0x8333f838, 0xecaca5}, - {0x8333f839, 0xecaca6}, - {0x8333f930, 0xecaca7}, - {0x8333f931, 0xecaca8}, - {0x8333f932, 0xecaca9}, - {0x8333f933, 0xecacaa}, - {0x8333f934, 0xecacab}, - {0x8333f935, 0xecacac}, - {0x8333f936, 0xecacad}, - {0x8333f937, 0xecacae}, - {0x8333f938, 0xecacaf}, - {0x8333f939, 0xecacb0}, - {0x8333fa30, 0xecacb1}, - {0x8333fa31, 0xecacb2}, - {0x8333fa32, 0xecacb3}, - {0x8333fa33, 0xecacb4}, - {0x8333fa34, 0xecacb5}, - {0x8333fa35, 0xecacb6}, - {0x8333fa36, 0xecacb7}, - {0x8333fa37, 0xecacb8}, - {0x8333fa38, 0xecacb9}, - {0x8333fa39, 0xecacba}, - {0x8333fb30, 0xecacbb}, - {0x8333fb31, 0xecacbc}, - {0x8333fb32, 0xecacbd}, - {0x8333fb33, 0xecacbe}, - {0x8333fb34, 0xecacbf}, - {0x8333fb35, 0xecad80}, - {0x8333fb36, 0xecad81}, - {0x8333fb37, 0xecad82}, - {0x8333fb38, 0xecad83}, - {0x8333fb39, 0xecad84}, - {0x8333fc30, 0xecad85}, - {0x8333fc31, 0xecad86}, - {0x8333fc32, 0xecad87}, - {0x8333fc33, 0xecad88}, - {0x8333fc34, 0xecad89}, - {0x8333fc35, 0xecad8a}, - {0x8333fc36, 0xecad8b}, - {0x8333fc37, 0xecad8c}, - {0x8333fc38, 0xecad8d}, - {0x8333fc39, 0xecad8e}, - {0x8333fd30, 0xecad8f}, - {0x8333fd31, 0xecad90}, - {0x8333fd32, 0xecad91}, - {0x8333fd33, 0xecad92}, - {0x8333fd34, 0xecad93}, - {0x8333fd35, 0xecad94}, - {0x8333fd36, 0xecad95}, - {0x8333fd37, 0xecad96}, - {0x8333fd38, 0xecad97}, - {0x8333fd39, 0xecad98}, - {0x8333fe30, 0xecad99}, - {0x8333fe31, 0xecad9a}, - {0x8333fe32, 0xecad9b}, - {0x8333fe33, 0xecad9c}, - {0x8333fe34, 0xecad9d}, - {0x8333fe35, 0xecad9e}, - {0x8333fe36, 0xecad9f}, - {0x8333fe37, 0xecada0}, - {0x8333fe38, 0xecada1}, - {0x8333fe39, 0xecada2}, - {0x83348130, 0xecada3}, - {0x83348131, 0xecada4}, - {0x83348132, 0xecada5}, - {0x83348133, 0xecada6}, - {0x83348134, 0xecada7}, - {0x83348135, 0xecada8}, - {0x83348136, 0xecada9}, - {0x83348137, 0xecadaa}, - {0x83348138, 0xecadab}, - {0x83348139, 0xecadac}, - {0x83348230, 0xecadad}, - {0x83348231, 0xecadae}, - {0x83348232, 0xecadaf}, - {0x83348233, 0xecadb0}, - {0x83348234, 0xecadb1}, - {0x83348235, 0xecadb2}, - {0x83348236, 0xecadb3}, - {0x83348237, 0xecadb4}, - {0x83348238, 0xecadb5}, - {0x83348239, 0xecadb6}, - {0x83348330, 0xecadb7}, - {0x83348331, 0xecadb8}, - {0x83348332, 0xecadb9}, - {0x83348333, 0xecadba}, - {0x83348334, 0xecadbb}, - {0x83348335, 0xecadbc}, - {0x83348336, 0xecadbd}, - {0x83348337, 0xecadbe}, - {0x83348338, 0xecadbf}, - {0x83348339, 0xecae80}, - {0x83348430, 0xecae81}, - {0x83348431, 0xecae82}, - {0x83348432, 0xecae83}, - {0x83348433, 0xecae84}, - {0x83348434, 0xecae85}, - {0x83348435, 0xecae86}, - {0x83348436, 0xecae87}, - {0x83348437, 0xecae88}, - {0x83348438, 0xecae89}, - {0x83348439, 0xecae8a}, - {0x83348530, 0xecae8b}, - {0x83348531, 0xecae8c}, - {0x83348532, 0xecae8d}, - {0x83348533, 0xecae8e}, - {0x83348534, 0xecae8f}, - {0x83348535, 0xecae90}, - {0x83348536, 0xecae91}, - {0x83348537, 0xecae92}, - {0x83348538, 0xecae93}, - {0x83348539, 0xecae94}, - {0x83348630, 0xecae95}, - {0x83348631, 0xecae96}, - {0x83348632, 0xecae97}, - {0x83348633, 0xecae98}, - {0x83348634, 0xecae99}, - {0x83348635, 0xecae9a}, - {0x83348636, 0xecae9b}, - {0x83348637, 0xecae9c}, - {0x83348638, 0xecae9d}, - {0x83348639, 0xecae9e}, - {0x83348730, 0xecae9f}, - {0x83348731, 0xecaea0}, - {0x83348732, 0xecaea1}, - {0x83348733, 0xecaea2}, - {0x83348734, 0xecaea3}, - {0x83348735, 0xecaea4}, - {0x83348736, 0xecaea5}, - {0x83348737, 0xecaea6}, - {0x83348738, 0xecaea7}, - {0x83348739, 0xecaea8}, - {0x83348830, 0xecaea9}, - {0x83348831, 0xecaeaa}, - {0x83348832, 0xecaeab}, - {0x83348833, 0xecaeac}, - {0x83348834, 0xecaead}, - {0x83348835, 0xecaeae}, - {0x83348836, 0xecaeaf}, - {0x83348837, 0xecaeb0}, - {0x83348838, 0xecaeb1}, - {0x83348839, 0xecaeb2}, - {0x83348930, 0xecaeb3}, - {0x83348931, 0xecaeb4}, - {0x83348932, 0xecaeb5}, - {0x83348933, 0xecaeb6}, - {0x83348934, 0xecaeb7}, - {0x83348935, 0xecaeb8}, - {0x83348936, 0xecaeb9}, - {0x83348937, 0xecaeba}, - {0x83348938, 0xecaebb}, - {0x83348939, 0xecaebc}, - {0x83348a30, 0xecaebd}, - {0x83348a31, 0xecaebe}, - {0x83348a32, 0xecaebf}, - {0x83348a33, 0xecaf80}, - {0x83348a34, 0xecaf81}, - {0x83348a35, 0xecaf82}, - {0x83348a36, 0xecaf83}, - {0x83348a37, 0xecaf84}, - {0x83348a38, 0xecaf85}, - {0x83348a39, 0xecaf86}, - {0x83348b30, 0xecaf87}, - {0x83348b31, 0xecaf88}, - {0x83348b32, 0xecaf89}, - {0x83348b33, 0xecaf8a}, - {0x83348b34, 0xecaf8b}, - {0x83348b35, 0xecaf8c}, - {0x83348b36, 0xecaf8d}, - {0x83348b37, 0xecaf8e}, - {0x83348b38, 0xecaf8f}, - {0x83348b39, 0xecaf90}, - {0x83348c30, 0xecaf91}, - {0x83348c31, 0xecaf92}, - {0x83348c32, 0xecaf93}, - {0x83348c33, 0xecaf94}, - {0x83348c34, 0xecaf95}, - {0x83348c35, 0xecaf96}, - {0x83348c36, 0xecaf97}, - {0x83348c37, 0xecaf98}, - {0x83348c38, 0xecaf99}, - {0x83348c39, 0xecaf9a}, - {0x83348d30, 0xecaf9b}, - {0x83348d31, 0xecaf9c}, - {0x83348d32, 0xecaf9d}, - {0x83348d33, 0xecaf9e}, - {0x83348d34, 0xecaf9f}, - {0x83348d35, 0xecafa0}, - {0x83348d36, 0xecafa1}, - {0x83348d37, 0xecafa2}, - {0x83348d38, 0xecafa3}, - {0x83348d39, 0xecafa4}, - {0x83348e30, 0xecafa5}, - {0x83348e31, 0xecafa6}, - {0x83348e32, 0xecafa7}, - {0x83348e33, 0xecafa8}, - {0x83348e34, 0xecafa9}, - {0x83348e35, 0xecafaa}, - {0x83348e36, 0xecafab}, - {0x83348e37, 0xecafac}, - {0x83348e38, 0xecafad}, - {0x83348e39, 0xecafae}, - {0x83348f30, 0xecafaf}, - {0x83348f31, 0xecafb0}, - {0x83348f32, 0xecafb1}, - {0x83348f33, 0xecafb2}, - {0x83348f34, 0xecafb3}, - {0x83348f35, 0xecafb4}, - {0x83348f36, 0xecafb5}, - {0x83348f37, 0xecafb6}, - {0x83348f38, 0xecafb7}, - {0x83348f39, 0xecafb8}, - {0x83349030, 0xecafb9}, - {0x83349031, 0xecafba}, - {0x83349032, 0xecafbb}, - {0x83349033, 0xecafbc}, - {0x83349034, 0xecafbd}, - {0x83349035, 0xecafbe}, - {0x83349036, 0xecafbf}, - {0x83349037, 0xecb080}, - {0x83349038, 0xecb081}, - {0x83349039, 0xecb082}, - {0x83349130, 0xecb083}, - {0x83349131, 0xecb084}, - {0x83349132, 0xecb085}, - {0x83349133, 0xecb086}, - {0x83349134, 0xecb087}, - {0x83349135, 0xecb088}, - {0x83349136, 0xecb089}, - {0x83349137, 0xecb08a}, - {0x83349138, 0xecb08b}, - {0x83349139, 0xecb08c}, - {0x83349230, 0xecb08d}, - {0x83349231, 0xecb08e}, - {0x83349232, 0xecb08f}, - {0x83349233, 0xecb090}, - {0x83349234, 0xecb091}, - {0x83349235, 0xecb092}, - {0x83349236, 0xecb093}, - {0x83349237, 0xecb094}, - {0x83349238, 0xecb095}, - {0x83349239, 0xecb096}, - {0x83349330, 0xecb097}, - {0x83349331, 0xecb098}, - {0x83349332, 0xecb099}, - {0x83349333, 0xecb09a}, - {0x83349334, 0xecb09b}, - {0x83349335, 0xecb09c}, - {0x83349336, 0xecb09d}, - {0x83349337, 0xecb09e}, - {0x83349338, 0xecb09f}, - {0x83349339, 0xecb0a0}, - {0x83349430, 0xecb0a1}, - {0x83349431, 0xecb0a2}, - {0x83349432, 0xecb0a3}, - {0x83349433, 0xecb0a4}, - {0x83349434, 0xecb0a5}, - {0x83349435, 0xecb0a6}, - {0x83349436, 0xecb0a7}, - {0x83349437, 0xecb0a8}, - {0x83349438, 0xecb0a9}, - {0x83349439, 0xecb0aa}, - {0x83349530, 0xecb0ab}, - {0x83349531, 0xecb0ac}, - {0x83349532, 0xecb0ad}, - {0x83349533, 0xecb0ae}, - {0x83349534, 0xecb0af}, - {0x83349535, 0xecb0b0}, - {0x83349536, 0xecb0b1}, - {0x83349537, 0xecb0b2}, - {0x83349538, 0xecb0b3}, - {0x83349539, 0xecb0b4}, - {0x83349630, 0xecb0b5}, - {0x83349631, 0xecb0b6}, - {0x83349632, 0xecb0b7}, - {0x83349633, 0xecb0b8}, - {0x83349634, 0xecb0b9}, - {0x83349635, 0xecb0ba}, - {0x83349636, 0xecb0bb}, - {0x83349637, 0xecb0bc}, - {0x83349638, 0xecb0bd}, - {0x83349639, 0xecb0be}, - {0x83349730, 0xecb0bf}, - {0x83349731, 0xecb180}, - {0x83349732, 0xecb181}, - {0x83349733, 0xecb182}, - {0x83349734, 0xecb183}, - {0x83349735, 0xecb184}, - {0x83349736, 0xecb185}, - {0x83349737, 0xecb186}, - {0x83349738, 0xecb187}, - {0x83349739, 0xecb188}, - {0x83349830, 0xecb189}, - {0x83349831, 0xecb18a}, - {0x83349832, 0xecb18b}, - {0x83349833, 0xecb18c}, - {0x83349834, 0xecb18d}, - {0x83349835, 0xecb18e}, - {0x83349836, 0xecb18f}, - {0x83349837, 0xecb190}, - {0x83349838, 0xecb191}, - {0x83349839, 0xecb192}, - {0x83349930, 0xecb193}, - {0x83349931, 0xecb194}, - {0x83349932, 0xecb195}, - {0x83349933, 0xecb196}, - {0x83349934, 0xecb197}, - {0x83349935, 0xecb198}, - {0x83349936, 0xecb199}, - {0x83349937, 0xecb19a}, - {0x83349938, 0xecb19b}, - {0x83349939, 0xecb19c}, - {0x83349a30, 0xecb19d}, - {0x83349a31, 0xecb19e}, - {0x83349a32, 0xecb19f}, - {0x83349a33, 0xecb1a0}, - {0x83349a34, 0xecb1a1}, - {0x83349a35, 0xecb1a2}, - {0x83349a36, 0xecb1a3}, - {0x83349a37, 0xecb1a4}, - {0x83349a38, 0xecb1a5}, - {0x83349a39, 0xecb1a6}, - {0x83349b30, 0xecb1a7}, - {0x83349b31, 0xecb1a8}, - {0x83349b32, 0xecb1a9}, - {0x83349b33, 0xecb1aa}, - {0x83349b34, 0xecb1ab}, - {0x83349b35, 0xecb1ac}, - {0x83349b36, 0xecb1ad}, - {0x83349b37, 0xecb1ae}, - {0x83349b38, 0xecb1af}, - {0x83349b39, 0xecb1b0}, - {0x83349c30, 0xecb1b1}, - {0x83349c31, 0xecb1b2}, - {0x83349c32, 0xecb1b3}, - {0x83349c33, 0xecb1b4}, - {0x83349c34, 0xecb1b5}, - {0x83349c35, 0xecb1b6}, - {0x83349c36, 0xecb1b7}, - {0x83349c37, 0xecb1b8}, - {0x83349c38, 0xecb1b9}, - {0x83349c39, 0xecb1ba}, - {0x83349d30, 0xecb1bb}, - {0x83349d31, 0xecb1bc}, - {0x83349d32, 0xecb1bd}, - {0x83349d33, 0xecb1be}, - {0x83349d34, 0xecb1bf}, - {0x83349d35, 0xecb280}, - {0x83349d36, 0xecb281}, - {0x83349d37, 0xecb282}, - {0x83349d38, 0xecb283}, - {0x83349d39, 0xecb284}, - {0x83349e30, 0xecb285}, - {0x83349e31, 0xecb286}, - {0x83349e32, 0xecb287}, - {0x83349e33, 0xecb288}, - {0x83349e34, 0xecb289}, - {0x83349e35, 0xecb28a}, - {0x83349e36, 0xecb28b}, - {0x83349e37, 0xecb28c}, - {0x83349e38, 0xecb28d}, - {0x83349e39, 0xecb28e}, - {0x83349f30, 0xecb28f}, - {0x83349f31, 0xecb290}, - {0x83349f32, 0xecb291}, - {0x83349f33, 0xecb292}, - {0x83349f34, 0xecb293}, - {0x83349f35, 0xecb294}, - {0x83349f36, 0xecb295}, - {0x83349f37, 0xecb296}, - {0x83349f38, 0xecb297}, - {0x83349f39, 0xecb298}, - {0x8334a030, 0xecb299}, - {0x8334a031, 0xecb29a}, - {0x8334a032, 0xecb29b}, - {0x8334a033, 0xecb29c}, - {0x8334a034, 0xecb29d}, - {0x8334a035, 0xecb29e}, - {0x8334a036, 0xecb29f}, - {0x8334a037, 0xecb2a0}, - {0x8334a038, 0xecb2a1}, - {0x8334a039, 0xecb2a2}, - {0x8334a130, 0xecb2a3}, - {0x8334a131, 0xecb2a4}, - {0x8334a132, 0xecb2a5}, - {0x8334a133, 0xecb2a6}, - {0x8334a134, 0xecb2a7}, - {0x8334a135, 0xecb2a8}, - {0x8334a136, 0xecb2a9}, - {0x8334a137, 0xecb2aa}, - {0x8334a138, 0xecb2ab}, - {0x8334a139, 0xecb2ac}, - {0x8334a230, 0xecb2ad}, - {0x8334a231, 0xecb2ae}, - {0x8334a232, 0xecb2af}, - {0x8334a233, 0xecb2b0}, - {0x8334a234, 0xecb2b1}, - {0x8334a235, 0xecb2b2}, - {0x8334a236, 0xecb2b3}, - {0x8334a237, 0xecb2b4}, - {0x8334a238, 0xecb2b5}, - {0x8334a239, 0xecb2b6}, - {0x8334a330, 0xecb2b7}, - {0x8334a331, 0xecb2b8}, - {0x8334a332, 0xecb2b9}, - {0x8334a333, 0xecb2ba}, - {0x8334a334, 0xecb2bb}, - {0x8334a335, 0xecb2bc}, - {0x8334a336, 0xecb2bd}, - {0x8334a337, 0xecb2be}, - {0x8334a338, 0xecb2bf}, - {0x8334a339, 0xecb380}, - {0x8334a430, 0xecb381}, - {0x8334a431, 0xecb382}, - {0x8334a432, 0xecb383}, - {0x8334a433, 0xecb384}, - {0x8334a434, 0xecb385}, - {0x8334a435, 0xecb386}, - {0x8334a436, 0xecb387}, - {0x8334a437, 0xecb388}, - {0x8334a438, 0xecb389}, - {0x8334a439, 0xecb38a}, - {0x8334a530, 0xecb38b}, - {0x8334a531, 0xecb38c}, - {0x8334a532, 0xecb38d}, - {0x8334a533, 0xecb38e}, - {0x8334a534, 0xecb38f}, - {0x8334a535, 0xecb390}, - {0x8334a536, 0xecb391}, - {0x8334a537, 0xecb392}, - {0x8334a538, 0xecb393}, - {0x8334a539, 0xecb394}, - {0x8334a630, 0xecb395}, - {0x8334a631, 0xecb396}, - {0x8334a632, 0xecb397}, - {0x8334a633, 0xecb398}, - {0x8334a634, 0xecb399}, - {0x8334a635, 0xecb39a}, - {0x8334a636, 0xecb39b}, - {0x8334a637, 0xecb39c}, - {0x8334a638, 0xecb39d}, - {0x8334a639, 0xecb39e}, - {0x8334a730, 0xecb39f}, - {0x8334a731, 0xecb3a0}, - {0x8334a732, 0xecb3a1}, - {0x8334a733, 0xecb3a2}, - {0x8334a734, 0xecb3a3}, - {0x8334a735, 0xecb3a4}, - {0x8334a736, 0xecb3a5}, - {0x8334a737, 0xecb3a6}, - {0x8334a738, 0xecb3a7}, - {0x8334a739, 0xecb3a8}, - {0x8334a830, 0xecb3a9}, - {0x8334a831, 0xecb3aa}, - {0x8334a832, 0xecb3ab}, - {0x8334a833, 0xecb3ac}, - {0x8334a834, 0xecb3ad}, - {0x8334a835, 0xecb3ae}, - {0x8334a836, 0xecb3af}, - {0x8334a837, 0xecb3b0}, - {0x8334a838, 0xecb3b1}, - {0x8334a839, 0xecb3b2}, - {0x8334a930, 0xecb3b3}, - {0x8334a931, 0xecb3b4}, - {0x8334a932, 0xecb3b5}, - {0x8334a933, 0xecb3b6}, - {0x8334a934, 0xecb3b7}, - {0x8334a935, 0xecb3b8}, - {0x8334a936, 0xecb3b9}, - {0x8334a937, 0xecb3ba}, - {0x8334a938, 0xecb3bb}, - {0x8334a939, 0xecb3bc}, - {0x8334aa30, 0xecb3bd}, - {0x8334aa31, 0xecb3be}, - {0x8334aa32, 0xecb3bf}, - {0x8334aa33, 0xecb480}, - {0x8334aa34, 0xecb481}, - {0x8334aa35, 0xecb482}, - {0x8334aa36, 0xecb483}, - {0x8334aa37, 0xecb484}, - {0x8334aa38, 0xecb485}, - {0x8334aa39, 0xecb486}, - {0x8334ab30, 0xecb487}, - {0x8334ab31, 0xecb488}, - {0x8334ab32, 0xecb489}, - {0x8334ab33, 0xecb48a}, - {0x8334ab34, 0xecb48b}, - {0x8334ab35, 0xecb48c}, - {0x8334ab36, 0xecb48d}, - {0x8334ab37, 0xecb48e}, - {0x8334ab38, 0xecb48f}, - {0x8334ab39, 0xecb490}, - {0x8334ac30, 0xecb491}, - {0x8334ac31, 0xecb492}, - {0x8334ac32, 0xecb493}, - {0x8334ac33, 0xecb494}, - {0x8334ac34, 0xecb495}, - {0x8334ac35, 0xecb496}, - {0x8334ac36, 0xecb497}, - {0x8334ac37, 0xecb498}, - {0x8334ac38, 0xecb499}, - {0x8334ac39, 0xecb49a}, - {0x8334ad30, 0xecb49b}, - {0x8334ad31, 0xecb49c}, - {0x8334ad32, 0xecb49d}, - {0x8334ad33, 0xecb49e}, - {0x8334ad34, 0xecb49f}, - {0x8334ad35, 0xecb4a0}, - {0x8334ad36, 0xecb4a1}, - {0x8334ad37, 0xecb4a2}, - {0x8334ad38, 0xecb4a3}, - {0x8334ad39, 0xecb4a4}, - {0x8334ae30, 0xecb4a5}, - {0x8334ae31, 0xecb4a6}, - {0x8334ae32, 0xecb4a7}, - {0x8334ae33, 0xecb4a8}, - {0x8334ae34, 0xecb4a9}, - {0x8334ae35, 0xecb4aa}, - {0x8334ae36, 0xecb4ab}, - {0x8334ae37, 0xecb4ac}, - {0x8334ae38, 0xecb4ad}, - {0x8334ae39, 0xecb4ae}, - {0x8334af30, 0xecb4af}, - {0x8334af31, 0xecb4b0}, - {0x8334af32, 0xecb4b1}, - {0x8334af33, 0xecb4b2}, - {0x8334af34, 0xecb4b3}, - {0x8334af35, 0xecb4b4}, - {0x8334af36, 0xecb4b5}, - {0x8334af37, 0xecb4b6}, - {0x8334af38, 0xecb4b7}, - {0x8334af39, 0xecb4b8}, - {0x8334b030, 0xecb4b9}, - {0x8334b031, 0xecb4ba}, - {0x8334b032, 0xecb4bb}, - {0x8334b033, 0xecb4bc}, - {0x8334b034, 0xecb4bd}, - {0x8334b035, 0xecb4be}, - {0x8334b036, 0xecb4bf}, - {0x8334b037, 0xecb580}, - {0x8334b038, 0xecb581}, - {0x8334b039, 0xecb582}, - {0x8334b130, 0xecb583}, - {0x8334b131, 0xecb584}, - {0x8334b132, 0xecb585}, - {0x8334b133, 0xecb586}, - {0x8334b134, 0xecb587}, - {0x8334b135, 0xecb588}, - {0x8334b136, 0xecb589}, - {0x8334b137, 0xecb58a}, - {0x8334b138, 0xecb58b}, - {0x8334b139, 0xecb58c}, - {0x8334b230, 0xecb58d}, - {0x8334b231, 0xecb58e}, - {0x8334b232, 0xecb58f}, - {0x8334b233, 0xecb590}, - {0x8334b234, 0xecb591}, - {0x8334b235, 0xecb592}, - {0x8334b236, 0xecb593}, - {0x8334b237, 0xecb594}, - {0x8334b238, 0xecb595}, - {0x8334b239, 0xecb596}, - {0x8334b330, 0xecb597}, - {0x8334b331, 0xecb598}, - {0x8334b332, 0xecb599}, - {0x8334b333, 0xecb59a}, - {0x8334b334, 0xecb59b}, - {0x8334b335, 0xecb59c}, - {0x8334b336, 0xecb59d}, - {0x8334b337, 0xecb59e}, - {0x8334b338, 0xecb59f}, - {0x8334b339, 0xecb5a0}, - {0x8334b430, 0xecb5a1}, - {0x8334b431, 0xecb5a2}, - {0x8334b432, 0xecb5a3}, - {0x8334b433, 0xecb5a4}, - {0x8334b434, 0xecb5a5}, - {0x8334b435, 0xecb5a6}, - {0x8334b436, 0xecb5a7}, - {0x8334b437, 0xecb5a8}, - {0x8334b438, 0xecb5a9}, - {0x8334b439, 0xecb5aa}, - {0x8334b530, 0xecb5ab}, - {0x8334b531, 0xecb5ac}, - {0x8334b532, 0xecb5ad}, - {0x8334b533, 0xecb5ae}, - {0x8334b534, 0xecb5af}, - {0x8334b535, 0xecb5b0}, - {0x8334b536, 0xecb5b1}, - {0x8334b537, 0xecb5b2}, - {0x8334b538, 0xecb5b3}, - {0x8334b539, 0xecb5b4}, - {0x8334b630, 0xecb5b5}, - {0x8334b631, 0xecb5b6}, - {0x8334b632, 0xecb5b7}, - {0x8334b633, 0xecb5b8}, - {0x8334b634, 0xecb5b9}, - {0x8334b635, 0xecb5ba}, - {0x8334b636, 0xecb5bb}, - {0x8334b637, 0xecb5bc}, - {0x8334b638, 0xecb5bd}, - {0x8334b639, 0xecb5be}, - {0x8334b730, 0xecb5bf}, - {0x8334b731, 0xecb680}, - {0x8334b732, 0xecb681}, - {0x8334b733, 0xecb682}, - {0x8334b734, 0xecb683}, - {0x8334b735, 0xecb684}, - {0x8334b736, 0xecb685}, - {0x8334b737, 0xecb686}, - {0x8334b738, 0xecb687}, - {0x8334b739, 0xecb688}, - {0x8334b830, 0xecb689}, - {0x8334b831, 0xecb68a}, - {0x8334b832, 0xecb68b}, - {0x8334b833, 0xecb68c}, - {0x8334b834, 0xecb68d}, - {0x8334b835, 0xecb68e}, - {0x8334b836, 0xecb68f}, - {0x8334b837, 0xecb690}, - {0x8334b838, 0xecb691}, - {0x8334b839, 0xecb692}, - {0x8334b930, 0xecb693}, - {0x8334b931, 0xecb694}, - {0x8334b932, 0xecb695}, - {0x8334b933, 0xecb696}, - {0x8334b934, 0xecb697}, - {0x8334b935, 0xecb698}, - {0x8334b936, 0xecb699}, - {0x8334b937, 0xecb69a}, - {0x8334b938, 0xecb69b}, - {0x8334b939, 0xecb69c}, - {0x8334ba30, 0xecb69d}, - {0x8334ba31, 0xecb69e}, - {0x8334ba32, 0xecb69f}, - {0x8334ba33, 0xecb6a0}, - {0x8334ba34, 0xecb6a1}, - {0x8334ba35, 0xecb6a2}, - {0x8334ba36, 0xecb6a3}, - {0x8334ba37, 0xecb6a4}, - {0x8334ba38, 0xecb6a5}, - {0x8334ba39, 0xecb6a6}, - {0x8334bb30, 0xecb6a7}, - {0x8334bb31, 0xecb6a8}, - {0x8334bb32, 0xecb6a9}, - {0x8334bb33, 0xecb6aa}, - {0x8334bb34, 0xecb6ab}, - {0x8334bb35, 0xecb6ac}, - {0x8334bb36, 0xecb6ad}, - {0x8334bb37, 0xecb6ae}, - {0x8334bb38, 0xecb6af}, - {0x8334bb39, 0xecb6b0}, - {0x8334bc30, 0xecb6b1}, - {0x8334bc31, 0xecb6b2}, - {0x8334bc32, 0xecb6b3}, - {0x8334bc33, 0xecb6b4}, - {0x8334bc34, 0xecb6b5}, - {0x8334bc35, 0xecb6b6}, - {0x8334bc36, 0xecb6b7}, - {0x8334bc37, 0xecb6b8}, - {0x8334bc38, 0xecb6b9}, - {0x8334bc39, 0xecb6ba}, - {0x8334bd30, 0xecb6bb}, - {0x8334bd31, 0xecb6bc}, - {0x8334bd32, 0xecb6bd}, - {0x8334bd33, 0xecb6be}, - {0x8334bd34, 0xecb6bf}, - {0x8334bd35, 0xecb780}, - {0x8334bd36, 0xecb781}, - {0x8334bd37, 0xecb782}, - {0x8334bd38, 0xecb783}, - {0x8334bd39, 0xecb784}, - {0x8334be30, 0xecb785}, - {0x8334be31, 0xecb786}, - {0x8334be32, 0xecb787}, - {0x8334be33, 0xecb788}, - {0x8334be34, 0xecb789}, - {0x8334be35, 0xecb78a}, - {0x8334be36, 0xecb78b}, - {0x8334be37, 0xecb78c}, - {0x8334be38, 0xecb78d}, - {0x8334be39, 0xecb78e}, - {0x8334bf30, 0xecb78f}, - {0x8334bf31, 0xecb790}, - {0x8334bf32, 0xecb791}, - {0x8334bf33, 0xecb792}, - {0x8334bf34, 0xecb793}, - {0x8334bf35, 0xecb794}, - {0x8334bf36, 0xecb795}, - {0x8334bf37, 0xecb796}, - {0x8334bf38, 0xecb797}, - {0x8334bf39, 0xecb798}, - {0x8334c030, 0xecb799}, - {0x8334c031, 0xecb79a}, - {0x8334c032, 0xecb79b}, - {0x8334c033, 0xecb79c}, - {0x8334c034, 0xecb79d}, - {0x8334c035, 0xecb79e}, - {0x8334c036, 0xecb79f}, - {0x8334c037, 0xecb7a0}, - {0x8334c038, 0xecb7a1}, - {0x8334c039, 0xecb7a2}, - {0x8334c130, 0xecb7a3}, - {0x8334c131, 0xecb7a4}, - {0x8334c132, 0xecb7a5}, - {0x8334c133, 0xecb7a6}, - {0x8334c134, 0xecb7a7}, - {0x8334c135, 0xecb7a8}, - {0x8334c136, 0xecb7a9}, - {0x8334c137, 0xecb7aa}, - {0x8334c138, 0xecb7ab}, - {0x8334c139, 0xecb7ac}, - {0x8334c230, 0xecb7ad}, - {0x8334c231, 0xecb7ae}, - {0x8334c232, 0xecb7af}, - {0x8334c233, 0xecb7b0}, - {0x8334c234, 0xecb7b1}, - {0x8334c235, 0xecb7b2}, - {0x8334c236, 0xecb7b3}, - {0x8334c237, 0xecb7b4}, - {0x8334c238, 0xecb7b5}, - {0x8334c239, 0xecb7b6}, - {0x8334c330, 0xecb7b7}, - {0x8334c331, 0xecb7b8}, - {0x8334c332, 0xecb7b9}, - {0x8334c333, 0xecb7ba}, - {0x8334c334, 0xecb7bb}, - {0x8334c335, 0xecb7bc}, - {0x8334c336, 0xecb7bd}, - {0x8334c337, 0xecb7be}, - {0x8334c338, 0xecb7bf}, - {0x8334c339, 0xecb880}, - {0x8334c430, 0xecb881}, - {0x8334c431, 0xecb882}, - {0x8334c432, 0xecb883}, - {0x8334c433, 0xecb884}, - {0x8334c434, 0xecb885}, - {0x8334c435, 0xecb886}, - {0x8334c436, 0xecb887}, - {0x8334c437, 0xecb888}, - {0x8334c438, 0xecb889}, - {0x8334c439, 0xecb88a}, - {0x8334c530, 0xecb88b}, - {0x8334c531, 0xecb88c}, - {0x8334c532, 0xecb88d}, - {0x8334c533, 0xecb88e}, - {0x8334c534, 0xecb88f}, - {0x8334c535, 0xecb890}, - {0x8334c536, 0xecb891}, - {0x8334c537, 0xecb892}, - {0x8334c538, 0xecb893}, - {0x8334c539, 0xecb894}, - {0x8334c630, 0xecb895}, - {0x8334c631, 0xecb896}, - {0x8334c632, 0xecb897}, - {0x8334c633, 0xecb898}, - {0x8334c634, 0xecb899}, - {0x8334c635, 0xecb89a}, - {0x8334c636, 0xecb89b}, - {0x8334c637, 0xecb89c}, - {0x8334c638, 0xecb89d}, - {0x8334c639, 0xecb89e}, - {0x8334c730, 0xecb89f}, - {0x8334c731, 0xecb8a0}, - {0x8334c732, 0xecb8a1}, - {0x8334c733, 0xecb8a2}, - {0x8334c734, 0xecb8a3}, - {0x8334c735, 0xecb8a4}, - {0x8334c736, 0xecb8a5}, - {0x8334c737, 0xecb8a6}, - {0x8334c738, 0xecb8a7}, - {0x8334c739, 0xecb8a8}, - {0x8334c830, 0xecb8a9}, - {0x8334c831, 0xecb8aa}, - {0x8334c832, 0xecb8ab}, - {0x8334c833, 0xecb8ac}, - {0x8334c834, 0xecb8ad}, - {0x8334c835, 0xecb8ae}, - {0x8334c836, 0xecb8af}, - {0x8334c837, 0xecb8b0}, - {0x8334c838, 0xecb8b1}, - {0x8334c839, 0xecb8b2}, - {0x8334c930, 0xecb8b3}, - {0x8334c931, 0xecb8b4}, - {0x8334c932, 0xecb8b5}, - {0x8334c933, 0xecb8b6}, - {0x8334c934, 0xecb8b7}, - {0x8334c935, 0xecb8b8}, - {0x8334c936, 0xecb8b9}, - {0x8334c937, 0xecb8ba}, - {0x8334c938, 0xecb8bb}, - {0x8334c939, 0xecb8bc}, - {0x8334ca30, 0xecb8bd}, - {0x8334ca31, 0xecb8be}, - {0x8334ca32, 0xecb8bf}, - {0x8334ca33, 0xecb980}, - {0x8334ca34, 0xecb981}, - {0x8334ca35, 0xecb982}, - {0x8334ca36, 0xecb983}, - {0x8334ca37, 0xecb984}, - {0x8334ca38, 0xecb985}, - {0x8334ca39, 0xecb986}, - {0x8334cb30, 0xecb987}, - {0x8334cb31, 0xecb988}, - {0x8334cb32, 0xecb989}, - {0x8334cb33, 0xecb98a}, - {0x8334cb34, 0xecb98b}, - {0x8334cb35, 0xecb98c}, - {0x8334cb36, 0xecb98d}, - {0x8334cb37, 0xecb98e}, - {0x8334cb38, 0xecb98f}, - {0x8334cb39, 0xecb990}, - {0x8334cc30, 0xecb991}, - {0x8334cc31, 0xecb992}, - {0x8334cc32, 0xecb993}, - {0x8334cc33, 0xecb994}, - {0x8334cc34, 0xecb995}, - {0x8334cc35, 0xecb996}, - {0x8334cc36, 0xecb997}, - {0x8334cc37, 0xecb998}, - {0x8334cc38, 0xecb999}, - {0x8334cc39, 0xecb99a}, - {0x8334cd30, 0xecb99b}, - {0x8334cd31, 0xecb99c}, - {0x8334cd32, 0xecb99d}, - {0x8334cd33, 0xecb99e}, - {0x8334cd34, 0xecb99f}, - {0x8334cd35, 0xecb9a0}, - {0x8334cd36, 0xecb9a1}, - {0x8334cd37, 0xecb9a2}, - {0x8334cd38, 0xecb9a3}, - {0x8334cd39, 0xecb9a4}, - {0x8334ce30, 0xecb9a5}, - {0x8334ce31, 0xecb9a6}, - {0x8334ce32, 0xecb9a7}, - {0x8334ce33, 0xecb9a8}, - {0x8334ce34, 0xecb9a9}, - {0x8334ce35, 0xecb9aa}, - {0x8334ce36, 0xecb9ab}, - {0x8334ce37, 0xecb9ac}, - {0x8334ce38, 0xecb9ad}, - {0x8334ce39, 0xecb9ae}, - {0x8334cf30, 0xecb9af}, - {0x8334cf31, 0xecb9b0}, - {0x8334cf32, 0xecb9b1}, - {0x8334cf33, 0xecb9b2}, - {0x8334cf34, 0xecb9b3}, - {0x8334cf35, 0xecb9b4}, - {0x8334cf36, 0xecb9b5}, - {0x8334cf37, 0xecb9b6}, - {0x8334cf38, 0xecb9b7}, - {0x8334cf39, 0xecb9b8}, - {0x8334d030, 0xecb9b9}, - {0x8334d031, 0xecb9ba}, - {0x8334d032, 0xecb9bb}, - {0x8334d033, 0xecb9bc}, - {0x8334d034, 0xecb9bd}, - {0x8334d035, 0xecb9be}, - {0x8334d036, 0xecb9bf}, - {0x8334d037, 0xecba80}, - {0x8334d038, 0xecba81}, - {0x8334d039, 0xecba82}, - {0x8334d130, 0xecba83}, - {0x8334d131, 0xecba84}, - {0x8334d132, 0xecba85}, - {0x8334d133, 0xecba86}, - {0x8334d134, 0xecba87}, - {0x8334d135, 0xecba88}, - {0x8334d136, 0xecba89}, - {0x8334d137, 0xecba8a}, - {0x8334d138, 0xecba8b}, - {0x8334d139, 0xecba8c}, - {0x8334d230, 0xecba8d}, - {0x8334d231, 0xecba8e}, - {0x8334d232, 0xecba8f}, - {0x8334d233, 0xecba90}, - {0x8334d234, 0xecba91}, - {0x8334d235, 0xecba92}, - {0x8334d236, 0xecba93}, - {0x8334d237, 0xecba94}, - {0x8334d238, 0xecba95}, - {0x8334d239, 0xecba96}, - {0x8334d330, 0xecba97}, - {0x8334d331, 0xecba98}, - {0x8334d332, 0xecba99}, - {0x8334d333, 0xecba9a}, - {0x8334d334, 0xecba9b}, - {0x8334d335, 0xecba9c}, - {0x8334d336, 0xecba9d}, - {0x8334d337, 0xecba9e}, - {0x8334d338, 0xecba9f}, - {0x8334d339, 0xecbaa0}, - {0x8334d430, 0xecbaa1}, - {0x8334d431, 0xecbaa2}, - {0x8334d432, 0xecbaa3}, - {0x8334d433, 0xecbaa4}, - {0x8334d434, 0xecbaa5}, - {0x8334d435, 0xecbaa6}, - {0x8334d436, 0xecbaa7}, - {0x8334d437, 0xecbaa8}, - {0x8334d438, 0xecbaa9}, - {0x8334d439, 0xecbaaa}, - {0x8334d530, 0xecbaab}, - {0x8334d531, 0xecbaac}, - {0x8334d532, 0xecbaad}, - {0x8334d533, 0xecbaae}, - {0x8334d534, 0xecbaaf}, - {0x8334d535, 0xecbab0}, - {0x8334d536, 0xecbab1}, - {0x8334d537, 0xecbab2}, - {0x8334d538, 0xecbab3}, - {0x8334d539, 0xecbab4}, - {0x8334d630, 0xecbab5}, - {0x8334d631, 0xecbab6}, - {0x8334d632, 0xecbab7}, - {0x8334d633, 0xecbab8}, - {0x8334d634, 0xecbab9}, - {0x8334d635, 0xecbaba}, - {0x8334d636, 0xecbabb}, - {0x8334d637, 0xecbabc}, - {0x8334d638, 0xecbabd}, - {0x8334d639, 0xecbabe}, - {0x8334d730, 0xecbabf}, - {0x8334d731, 0xecbb80}, - {0x8334d732, 0xecbb81}, - {0x8334d733, 0xecbb82}, - {0x8334d734, 0xecbb83}, - {0x8334d735, 0xecbb84}, - {0x8334d736, 0xecbb85}, - {0x8334d737, 0xecbb86}, - {0x8334d738, 0xecbb87}, - {0x8334d739, 0xecbb88}, - {0x8334d830, 0xecbb89}, - {0x8334d831, 0xecbb8a}, - {0x8334d832, 0xecbb8b}, - {0x8334d833, 0xecbb8c}, - {0x8334d834, 0xecbb8d}, - {0x8334d835, 0xecbb8e}, - {0x8334d836, 0xecbb8f}, - {0x8334d837, 0xecbb90}, - {0x8334d838, 0xecbb91}, - {0x8334d839, 0xecbb92}, - {0x8334d930, 0xecbb93}, - {0x8334d931, 0xecbb94}, - {0x8334d932, 0xecbb95}, - {0x8334d933, 0xecbb96}, - {0x8334d934, 0xecbb97}, - {0x8334d935, 0xecbb98}, - {0x8334d936, 0xecbb99}, - {0x8334d937, 0xecbb9a}, - {0x8334d938, 0xecbb9b}, - {0x8334d939, 0xecbb9c}, - {0x8334da30, 0xecbb9d}, - {0x8334da31, 0xecbb9e}, - {0x8334da32, 0xecbb9f}, - {0x8334da33, 0xecbba0}, - {0x8334da34, 0xecbba1}, - {0x8334da35, 0xecbba2}, - {0x8334da36, 0xecbba3}, - {0x8334da37, 0xecbba4}, - {0x8334da38, 0xecbba5}, - {0x8334da39, 0xecbba6}, - {0x8334db30, 0xecbba7}, - {0x8334db31, 0xecbba8}, - {0x8334db32, 0xecbba9}, - {0x8334db33, 0xecbbaa}, - {0x8334db34, 0xecbbab}, - {0x8334db35, 0xecbbac}, - {0x8334db36, 0xecbbad}, - {0x8334db37, 0xecbbae}, - {0x8334db38, 0xecbbaf}, - {0x8334db39, 0xecbbb0}, - {0x8334dc30, 0xecbbb1}, - {0x8334dc31, 0xecbbb2}, - {0x8334dc32, 0xecbbb3}, - {0x8334dc33, 0xecbbb4}, - {0x8334dc34, 0xecbbb5}, - {0x8334dc35, 0xecbbb6}, - {0x8334dc36, 0xecbbb7}, - {0x8334dc37, 0xecbbb8}, - {0x8334dc38, 0xecbbb9}, - {0x8334dc39, 0xecbbba}, - {0x8334dd30, 0xecbbbb}, - {0x8334dd31, 0xecbbbc}, - {0x8334dd32, 0xecbbbd}, - {0x8334dd33, 0xecbbbe}, - {0x8334dd34, 0xecbbbf}, - {0x8334dd35, 0xecbc80}, - {0x8334dd36, 0xecbc81}, - {0x8334dd37, 0xecbc82}, - {0x8334dd38, 0xecbc83}, - {0x8334dd39, 0xecbc84}, - {0x8334de30, 0xecbc85}, - {0x8334de31, 0xecbc86}, - {0x8334de32, 0xecbc87}, - {0x8334de33, 0xecbc88}, - {0x8334de34, 0xecbc89}, - {0x8334de35, 0xecbc8a}, - {0x8334de36, 0xecbc8b}, - {0x8334de37, 0xecbc8c}, - {0x8334de38, 0xecbc8d}, - {0x8334de39, 0xecbc8e}, - {0x8334df30, 0xecbc8f}, - {0x8334df31, 0xecbc90}, - {0x8334df32, 0xecbc91}, - {0x8334df33, 0xecbc92}, - {0x8334df34, 0xecbc93}, - {0x8334df35, 0xecbc94}, - {0x8334df36, 0xecbc95}, - {0x8334df37, 0xecbc96}, - {0x8334df38, 0xecbc97}, - {0x8334df39, 0xecbc98}, - {0x8334e030, 0xecbc99}, - {0x8334e031, 0xecbc9a}, - {0x8334e032, 0xecbc9b}, - {0x8334e033, 0xecbc9c}, - {0x8334e034, 0xecbc9d}, - {0x8334e035, 0xecbc9e}, - {0x8334e036, 0xecbc9f}, - {0x8334e037, 0xecbca0}, - {0x8334e038, 0xecbca1}, - {0x8334e039, 0xecbca2}, - {0x8334e130, 0xecbca3}, - {0x8334e131, 0xecbca4}, - {0x8334e132, 0xecbca5}, - {0x8334e133, 0xecbca6}, - {0x8334e134, 0xecbca7}, - {0x8334e135, 0xecbca8}, - {0x8334e136, 0xecbca9}, - {0x8334e137, 0xecbcaa}, - {0x8334e138, 0xecbcab}, - {0x8334e139, 0xecbcac}, - {0x8334e230, 0xecbcad}, - {0x8334e231, 0xecbcae}, - {0x8334e232, 0xecbcaf}, - {0x8334e233, 0xecbcb0}, - {0x8334e234, 0xecbcb1}, - {0x8334e235, 0xecbcb2}, - {0x8334e236, 0xecbcb3}, - {0x8334e237, 0xecbcb4}, - {0x8334e238, 0xecbcb5}, - {0x8334e239, 0xecbcb6}, - {0x8334e330, 0xecbcb7}, - {0x8334e331, 0xecbcb8}, - {0x8334e332, 0xecbcb9}, - {0x8334e333, 0xecbcba}, - {0x8334e334, 0xecbcbb}, - {0x8334e335, 0xecbcbc}, - {0x8334e336, 0xecbcbd}, - {0x8334e337, 0xecbcbe}, - {0x8334e338, 0xecbcbf}, - {0x8334e339, 0xecbd80}, - {0x8334e430, 0xecbd81}, - {0x8334e431, 0xecbd82}, - {0x8334e432, 0xecbd83}, - {0x8334e433, 0xecbd84}, - {0x8334e434, 0xecbd85}, - {0x8334e435, 0xecbd86}, - {0x8334e436, 0xecbd87}, - {0x8334e437, 0xecbd88}, - {0x8334e438, 0xecbd89}, - {0x8334e439, 0xecbd8a}, - {0x8334e530, 0xecbd8b}, - {0x8334e531, 0xecbd8c}, - {0x8334e532, 0xecbd8d}, - {0x8334e533, 0xecbd8e}, - {0x8334e534, 0xecbd8f}, - {0x8334e535, 0xecbd90}, - {0x8334e536, 0xecbd91}, - {0x8334e537, 0xecbd92}, - {0x8334e538, 0xecbd93}, - {0x8334e539, 0xecbd94}, - {0x8334e630, 0xecbd95}, - {0x8334e631, 0xecbd96}, - {0x8334e632, 0xecbd97}, - {0x8334e633, 0xecbd98}, - {0x8334e634, 0xecbd99}, - {0x8334e635, 0xecbd9a}, - {0x8334e636, 0xecbd9b}, - {0x8334e637, 0xecbd9c}, - {0x8334e638, 0xecbd9d}, - {0x8334e639, 0xecbd9e}, - {0x8334e730, 0xecbd9f}, - {0x8334e731, 0xecbda0}, - {0x8334e732, 0xecbda1}, - {0x8334e733, 0xecbda2}, - {0x8334e734, 0xecbda3}, - {0x8334e735, 0xecbda4}, - {0x8334e736, 0xecbda5}, - {0x8334e737, 0xecbda6}, - {0x8334e738, 0xecbda7}, - {0x8334e739, 0xecbda8}, - {0x8334e830, 0xecbda9}, - {0x8334e831, 0xecbdaa}, - {0x8334e832, 0xecbdab}, - {0x8334e833, 0xecbdac}, - {0x8334e834, 0xecbdad}, - {0x8334e835, 0xecbdae}, - {0x8334e836, 0xecbdaf}, - {0x8334e837, 0xecbdb0}, - {0x8334e838, 0xecbdb1}, - {0x8334e839, 0xecbdb2}, - {0x8334e930, 0xecbdb3}, - {0x8334e931, 0xecbdb4}, - {0x8334e932, 0xecbdb5}, - {0x8334e933, 0xecbdb6}, - {0x8334e934, 0xecbdb7}, - {0x8334e935, 0xecbdb8}, - {0x8334e936, 0xecbdb9}, - {0x8334e937, 0xecbdba}, - {0x8334e938, 0xecbdbb}, - {0x8334e939, 0xecbdbc}, - {0x8334ea30, 0xecbdbd}, - {0x8334ea31, 0xecbdbe}, - {0x8334ea32, 0xecbdbf}, - {0x8334ea33, 0xecbe80}, - {0x8334ea34, 0xecbe81}, - {0x8334ea35, 0xecbe82}, - {0x8334ea36, 0xecbe83}, - {0x8334ea37, 0xecbe84}, - {0x8334ea38, 0xecbe85}, - {0x8334ea39, 0xecbe86}, - {0x8334eb30, 0xecbe87}, - {0x8334eb31, 0xecbe88}, - {0x8334eb32, 0xecbe89}, - {0x8334eb33, 0xecbe8a}, - {0x8334eb34, 0xecbe8b}, - {0x8334eb35, 0xecbe8c}, - {0x8334eb36, 0xecbe8d}, - {0x8334eb37, 0xecbe8e}, - {0x8334eb38, 0xecbe8f}, - {0x8334eb39, 0xecbe90}, - {0x8334ec30, 0xecbe91}, - {0x8334ec31, 0xecbe92}, - {0x8334ec32, 0xecbe93}, - {0x8334ec33, 0xecbe94}, - {0x8334ec34, 0xecbe95}, - {0x8334ec35, 0xecbe96}, - {0x8334ec36, 0xecbe97}, - {0x8334ec37, 0xecbe98}, - {0x8334ec38, 0xecbe99}, - {0x8334ec39, 0xecbe9a}, - {0x8334ed30, 0xecbe9b}, - {0x8334ed31, 0xecbe9c}, - {0x8334ed32, 0xecbe9d}, - {0x8334ed33, 0xecbe9e}, - {0x8334ed34, 0xecbe9f}, - {0x8334ed35, 0xecbea0}, - {0x8334ed36, 0xecbea1}, - {0x8334ed37, 0xecbea2}, - {0x8334ed38, 0xecbea3}, - {0x8334ed39, 0xecbea4}, - {0x8334ee30, 0xecbea5}, - {0x8334ee31, 0xecbea6}, - {0x8334ee32, 0xecbea7}, - {0x8334ee33, 0xecbea8}, - {0x8334ee34, 0xecbea9}, - {0x8334ee35, 0xecbeaa}, - {0x8334ee36, 0xecbeab}, - {0x8334ee37, 0xecbeac}, - {0x8334ee38, 0xecbead}, - {0x8334ee39, 0xecbeae}, - {0x8334ef30, 0xecbeaf}, - {0x8334ef31, 0xecbeb0}, - {0x8334ef32, 0xecbeb1}, - {0x8334ef33, 0xecbeb2}, - {0x8334ef34, 0xecbeb3}, - {0x8334ef35, 0xecbeb4}, - {0x8334ef36, 0xecbeb5}, - {0x8334ef37, 0xecbeb6}, - {0x8334ef38, 0xecbeb7}, - {0x8334ef39, 0xecbeb8}, - {0x8334f030, 0xecbeb9}, - {0x8334f031, 0xecbeba}, - {0x8334f032, 0xecbebb}, - {0x8334f033, 0xecbebc}, - {0x8334f034, 0xecbebd}, - {0x8334f035, 0xecbebe}, - {0x8334f036, 0xecbebf}, - {0x8334f037, 0xecbf80}, - {0x8334f038, 0xecbf81}, - {0x8334f039, 0xecbf82}, - {0x8334f130, 0xecbf83}, - {0x8334f131, 0xecbf84}, - {0x8334f132, 0xecbf85}, - {0x8334f133, 0xecbf86}, - {0x8334f134, 0xecbf87}, - {0x8334f135, 0xecbf88}, - {0x8334f136, 0xecbf89}, - {0x8334f137, 0xecbf8a}, - {0x8334f138, 0xecbf8b}, - {0x8334f139, 0xecbf8c}, - {0x8334f230, 0xecbf8d}, - {0x8334f231, 0xecbf8e}, - {0x8334f232, 0xecbf8f}, - {0x8334f233, 0xecbf90}, - {0x8334f234, 0xecbf91}, - {0x8334f235, 0xecbf92}, - {0x8334f236, 0xecbf93}, - {0x8334f237, 0xecbf94}, - {0x8334f238, 0xecbf95}, - {0x8334f239, 0xecbf96}, - {0x8334f330, 0xecbf97}, - {0x8334f331, 0xecbf98}, - {0x8334f332, 0xecbf99}, - {0x8334f333, 0xecbf9a}, - {0x8334f334, 0xecbf9b}, - {0x8334f335, 0xecbf9c}, - {0x8334f336, 0xecbf9d}, - {0x8334f337, 0xecbf9e}, - {0x8334f338, 0xecbf9f}, - {0x8334f339, 0xecbfa0}, - {0x8334f430, 0xecbfa1}, - {0x8334f431, 0xecbfa2}, - {0x8334f432, 0xecbfa3}, - {0x8334f433, 0xecbfa4}, - {0x8334f434, 0xecbfa5}, - {0x8334f435, 0xecbfa6}, - {0x8334f436, 0xecbfa7}, - {0x8334f437, 0xecbfa8}, - {0x8334f438, 0xecbfa9}, - {0x8334f439, 0xecbfaa}, - {0x8334f530, 0xecbfab}, - {0x8334f531, 0xecbfac}, - {0x8334f532, 0xecbfad}, - {0x8334f533, 0xecbfae}, - {0x8334f534, 0xecbfaf}, - {0x8334f535, 0xecbfb0}, - {0x8334f536, 0xecbfb1}, - {0x8334f537, 0xecbfb2}, - {0x8334f538, 0xecbfb3}, - {0x8334f539, 0xecbfb4}, - {0x8334f630, 0xecbfb5}, - {0x8334f631, 0xecbfb6}, - {0x8334f632, 0xecbfb7}, - {0x8334f633, 0xecbfb8}, - {0x8334f634, 0xecbfb9}, - {0x8334f635, 0xecbfba}, - {0x8334f636, 0xecbfbb}, - {0x8334f637, 0xecbfbc}, - {0x8334f638, 0xecbfbd}, - {0x8334f639, 0xecbfbe}, - {0x8334f730, 0xecbfbf}, - {0x8334f731, 0xed8080}, - {0x8334f732, 0xed8081}, - {0x8334f733, 0xed8082}, - {0x8334f734, 0xed8083}, - {0x8334f735, 0xed8084}, - {0x8334f736, 0xed8085}, - {0x8334f737, 0xed8086}, - {0x8334f738, 0xed8087}, - {0x8334f739, 0xed8088}, - {0x8334f830, 0xed8089}, - {0x8334f831, 0xed808a}, - {0x8334f832, 0xed808b}, - {0x8334f833, 0xed808c}, - {0x8334f834, 0xed808d}, - {0x8334f835, 0xed808e}, - {0x8334f836, 0xed808f}, - {0x8334f837, 0xed8090}, - {0x8334f838, 0xed8091}, - {0x8334f839, 0xed8092}, - {0x8334f930, 0xed8093}, - {0x8334f931, 0xed8094}, - {0x8334f932, 0xed8095}, - {0x8334f933, 0xed8096}, - {0x8334f934, 0xed8097}, - {0x8334f935, 0xed8098}, - {0x8334f936, 0xed8099}, - {0x8334f937, 0xed809a}, - {0x8334f938, 0xed809b}, - {0x8334f939, 0xed809c}, - {0x8334fa30, 0xed809d}, - {0x8334fa31, 0xed809e}, - {0x8334fa32, 0xed809f}, - {0x8334fa33, 0xed80a0}, - {0x8334fa34, 0xed80a1}, - {0x8334fa35, 0xed80a2}, - {0x8334fa36, 0xed80a3}, - {0x8334fa37, 0xed80a4}, - {0x8334fa38, 0xed80a5}, - {0x8334fa39, 0xed80a6}, - {0x8334fb30, 0xed80a7}, - {0x8334fb31, 0xed80a8}, - {0x8334fb32, 0xed80a9}, - {0x8334fb33, 0xed80aa}, - {0x8334fb34, 0xed80ab}, - {0x8334fb35, 0xed80ac}, - {0x8334fb36, 0xed80ad}, - {0x8334fb37, 0xed80ae}, - {0x8334fb38, 0xed80af}, - {0x8334fb39, 0xed80b0}, - {0x8334fc30, 0xed80b1}, - {0x8334fc31, 0xed80b2}, - {0x8334fc32, 0xed80b3}, - {0x8334fc33, 0xed80b4}, - {0x8334fc34, 0xed80b5}, - {0x8334fc35, 0xed80b6}, - {0x8334fc36, 0xed80b7}, - {0x8334fc37, 0xed80b8}, - {0x8334fc38, 0xed80b9}, - {0x8334fc39, 0xed80ba}, - {0x8334fd30, 0xed80bb}, - {0x8334fd31, 0xed80bc}, - {0x8334fd32, 0xed80bd}, - {0x8334fd33, 0xed80be}, - {0x8334fd34, 0xed80bf}, - {0x8334fd35, 0xed8180}, - {0x8334fd36, 0xed8181}, - {0x8334fd37, 0xed8182}, - {0x8334fd38, 0xed8183}, - {0x8334fd39, 0xed8184}, - {0x8334fe30, 0xed8185}, - {0x8334fe31, 0xed8186}, - {0x8334fe32, 0xed8187}, - {0x8334fe33, 0xed8188}, - {0x8334fe34, 0xed8189}, - {0x8334fe35, 0xed818a}, - {0x8334fe36, 0xed818b}, - {0x8334fe37, 0xed818c}, - {0x8334fe38, 0xed818d}, - {0x8334fe39, 0xed818e}, - {0x83358130, 0xed818f}, - {0x83358131, 0xed8190}, - {0x83358132, 0xed8191}, - {0x83358133, 0xed8192}, - {0x83358134, 0xed8193}, - {0x83358135, 0xed8194}, - {0x83358136, 0xed8195}, - {0x83358137, 0xed8196}, - {0x83358138, 0xed8197}, - {0x83358139, 0xed8198}, - {0x83358230, 0xed8199}, - {0x83358231, 0xed819a}, - {0x83358232, 0xed819b}, - {0x83358233, 0xed819c}, - {0x83358234, 0xed819d}, - {0x83358235, 0xed819e}, - {0x83358236, 0xed819f}, - {0x83358237, 0xed81a0}, - {0x83358238, 0xed81a1}, - {0x83358239, 0xed81a2}, - {0x83358330, 0xed81a3}, - {0x83358331, 0xed81a4}, - {0x83358332, 0xed81a5}, - {0x83358333, 0xed81a6}, - {0x83358334, 0xed81a7}, - {0x83358335, 0xed81a8}, - {0x83358336, 0xed81a9}, - {0x83358337, 0xed81aa}, - {0x83358338, 0xed81ab}, - {0x83358339, 0xed81ac}, - {0x83358430, 0xed81ad}, - {0x83358431, 0xed81ae}, - {0x83358432, 0xed81af}, - {0x83358433, 0xed81b0}, - {0x83358434, 0xed81b1}, - {0x83358435, 0xed81b2}, - {0x83358436, 0xed81b3}, - {0x83358437, 0xed81b4}, - {0x83358438, 0xed81b5}, - {0x83358439, 0xed81b6}, - {0x83358530, 0xed81b7}, - {0x83358531, 0xed81b8}, - {0x83358532, 0xed81b9}, - {0x83358533, 0xed81ba}, - {0x83358534, 0xed81bb}, - {0x83358535, 0xed81bc}, - {0x83358536, 0xed81bd}, - {0x83358537, 0xed81be}, - {0x83358538, 0xed81bf}, - {0x83358539, 0xed8280}, - {0x83358630, 0xed8281}, - {0x83358631, 0xed8282}, - {0x83358632, 0xed8283}, - {0x83358633, 0xed8284}, - {0x83358634, 0xed8285}, - {0x83358635, 0xed8286}, - {0x83358636, 0xed8287}, - {0x83358637, 0xed8288}, - {0x83358638, 0xed8289}, - {0x83358639, 0xed828a}, - {0x83358730, 0xed828b}, - {0x83358731, 0xed828c}, - {0x83358732, 0xed828d}, - {0x83358733, 0xed828e}, - {0x83358734, 0xed828f}, - {0x83358735, 0xed8290}, - {0x83358736, 0xed8291}, - {0x83358737, 0xed8292}, - {0x83358738, 0xed8293}, - {0x83358739, 0xed8294}, - {0x83358830, 0xed8295}, - {0x83358831, 0xed8296}, - {0x83358832, 0xed8297}, - {0x83358833, 0xed8298}, - {0x83358834, 0xed8299}, - {0x83358835, 0xed829a}, - {0x83358836, 0xed829b}, - {0x83358837, 0xed829c}, - {0x83358838, 0xed829d}, - {0x83358839, 0xed829e}, - {0x83358930, 0xed829f}, - {0x83358931, 0xed82a0}, - {0x83358932, 0xed82a1}, - {0x83358933, 0xed82a2}, - {0x83358934, 0xed82a3}, - {0x83358935, 0xed82a4}, - {0x83358936, 0xed82a5}, - {0x83358937, 0xed82a6}, - {0x83358938, 0xed82a7}, - {0x83358939, 0xed82a8}, - {0x83358a30, 0xed82a9}, - {0x83358a31, 0xed82aa}, - {0x83358a32, 0xed82ab}, - {0x83358a33, 0xed82ac}, - {0x83358a34, 0xed82ad}, - {0x83358a35, 0xed82ae}, - {0x83358a36, 0xed82af}, - {0x83358a37, 0xed82b0}, - {0x83358a38, 0xed82b1}, - {0x83358a39, 0xed82b2}, - {0x83358b30, 0xed82b3}, - {0x83358b31, 0xed82b4}, - {0x83358b32, 0xed82b5}, - {0x83358b33, 0xed82b6}, - {0x83358b34, 0xed82b7}, - {0x83358b35, 0xed82b8}, - {0x83358b36, 0xed82b9}, - {0x83358b37, 0xed82ba}, - {0x83358b38, 0xed82bb}, - {0x83358b39, 0xed82bc}, - {0x83358c30, 0xed82bd}, - {0x83358c31, 0xed82be}, - {0x83358c32, 0xed82bf}, - {0x83358c33, 0xed8380}, - {0x83358c34, 0xed8381}, - {0x83358c35, 0xed8382}, - {0x83358c36, 0xed8383}, - {0x83358c37, 0xed8384}, - {0x83358c38, 0xed8385}, - {0x83358c39, 0xed8386}, - {0x83358d30, 0xed8387}, - {0x83358d31, 0xed8388}, - {0x83358d32, 0xed8389}, - {0x83358d33, 0xed838a}, - {0x83358d34, 0xed838b}, - {0x83358d35, 0xed838c}, - {0x83358d36, 0xed838d}, - {0x83358d37, 0xed838e}, - {0x83358d38, 0xed838f}, - {0x83358d39, 0xed8390}, - {0x83358e30, 0xed8391}, - {0x83358e31, 0xed8392}, - {0x83358e32, 0xed8393}, - {0x83358e33, 0xed8394}, - {0x83358e34, 0xed8395}, - {0x83358e35, 0xed8396}, - {0x83358e36, 0xed8397}, - {0x83358e37, 0xed8398}, - {0x83358e38, 0xed8399}, - {0x83358e39, 0xed839a}, - {0x83358f30, 0xed839b}, - {0x83358f31, 0xed839c}, - {0x83358f32, 0xed839d}, - {0x83358f33, 0xed839e}, - {0x83358f34, 0xed839f}, - {0x83358f35, 0xed83a0}, - {0x83358f36, 0xed83a1}, - {0x83358f37, 0xed83a2}, - {0x83358f38, 0xed83a3}, - {0x83358f39, 0xed83a4}, - {0x83359030, 0xed83a5}, - {0x83359031, 0xed83a6}, - {0x83359032, 0xed83a7}, - {0x83359033, 0xed83a8}, - {0x83359034, 0xed83a9}, - {0x83359035, 0xed83aa}, - {0x83359036, 0xed83ab}, - {0x83359037, 0xed83ac}, - {0x83359038, 0xed83ad}, - {0x83359039, 0xed83ae}, - {0x83359130, 0xed83af}, - {0x83359131, 0xed83b0}, - {0x83359132, 0xed83b1}, - {0x83359133, 0xed83b2}, - {0x83359134, 0xed83b3}, - {0x83359135, 0xed83b4}, - {0x83359136, 0xed83b5}, - {0x83359137, 0xed83b6}, - {0x83359138, 0xed83b7}, - {0x83359139, 0xed83b8}, - {0x83359230, 0xed83b9}, - {0x83359231, 0xed83ba}, - {0x83359232, 0xed83bb}, - {0x83359233, 0xed83bc}, - {0x83359234, 0xed83bd}, - {0x83359235, 0xed83be}, - {0x83359236, 0xed83bf}, - {0x83359237, 0xed8480}, - {0x83359238, 0xed8481}, - {0x83359239, 0xed8482}, - {0x83359330, 0xed8483}, - {0x83359331, 0xed8484}, - {0x83359332, 0xed8485}, - {0x83359333, 0xed8486}, - {0x83359334, 0xed8487}, - {0x83359335, 0xed8488}, - {0x83359336, 0xed8489}, - {0x83359337, 0xed848a}, - {0x83359338, 0xed848b}, - {0x83359339, 0xed848c}, - {0x83359430, 0xed848d}, - {0x83359431, 0xed848e}, - {0x83359432, 0xed848f}, - {0x83359433, 0xed8490}, - {0x83359434, 0xed8491}, - {0x83359435, 0xed8492}, - {0x83359436, 0xed8493}, - {0x83359437, 0xed8494}, - {0x83359438, 0xed8495}, - {0x83359439, 0xed8496}, - {0x83359530, 0xed8497}, - {0x83359531, 0xed8498}, - {0x83359532, 0xed8499}, - {0x83359533, 0xed849a}, - {0x83359534, 0xed849b}, - {0x83359535, 0xed849c}, - {0x83359536, 0xed849d}, - {0x83359537, 0xed849e}, - {0x83359538, 0xed849f}, - {0x83359539, 0xed84a0}, - {0x83359630, 0xed84a1}, - {0x83359631, 0xed84a2}, - {0x83359632, 0xed84a3}, - {0x83359633, 0xed84a4}, - {0x83359634, 0xed84a5}, - {0x83359635, 0xed84a6}, - {0x83359636, 0xed84a7}, - {0x83359637, 0xed84a8}, - {0x83359638, 0xed84a9}, - {0x83359639, 0xed84aa}, - {0x83359730, 0xed84ab}, - {0x83359731, 0xed84ac}, - {0x83359732, 0xed84ad}, - {0x83359733, 0xed84ae}, - {0x83359734, 0xed84af}, - {0x83359735, 0xed84b0}, - {0x83359736, 0xed84b1}, - {0x83359737, 0xed84b2}, - {0x83359738, 0xed84b3}, - {0x83359739, 0xed84b4}, - {0x83359830, 0xed84b5}, - {0x83359831, 0xed84b6}, - {0x83359832, 0xed84b7}, - {0x83359833, 0xed84b8}, - {0x83359834, 0xed84b9}, - {0x83359835, 0xed84ba}, - {0x83359836, 0xed84bb}, - {0x83359837, 0xed84bc}, - {0x83359838, 0xed84bd}, - {0x83359839, 0xed84be}, - {0x83359930, 0xed84bf}, - {0x83359931, 0xed8580}, - {0x83359932, 0xed8581}, - {0x83359933, 0xed8582}, - {0x83359934, 0xed8583}, - {0x83359935, 0xed8584}, - {0x83359936, 0xed8585}, - {0x83359937, 0xed8586}, - {0x83359938, 0xed8587}, - {0x83359939, 0xed8588}, - {0x83359a30, 0xed8589}, - {0x83359a31, 0xed858a}, - {0x83359a32, 0xed858b}, - {0x83359a33, 0xed858c}, - {0x83359a34, 0xed858d}, - {0x83359a35, 0xed858e}, - {0x83359a36, 0xed858f}, - {0x83359a37, 0xed8590}, - {0x83359a38, 0xed8591}, - {0x83359a39, 0xed8592}, - {0x83359b30, 0xed8593}, - {0x83359b31, 0xed8594}, - {0x83359b32, 0xed8595}, - {0x83359b33, 0xed8596}, - {0x83359b34, 0xed8597}, - {0x83359b35, 0xed8598}, - {0x83359b36, 0xed8599}, - {0x83359b37, 0xed859a}, - {0x83359b38, 0xed859b}, - {0x83359b39, 0xed859c}, - {0x83359c30, 0xed859d}, - {0x83359c31, 0xed859e}, - {0x83359c32, 0xed859f}, - {0x83359c33, 0xed85a0}, - {0x83359c34, 0xed85a1}, - {0x83359c35, 0xed85a2}, - {0x83359c36, 0xed85a3}, - {0x83359c37, 0xed85a4}, - {0x83359c38, 0xed85a5}, - {0x83359c39, 0xed85a6}, - {0x83359d30, 0xed85a7}, - {0x83359d31, 0xed85a8}, - {0x83359d32, 0xed85a9}, - {0x83359d33, 0xed85aa}, - {0x83359d34, 0xed85ab}, - {0x83359d35, 0xed85ac}, - {0x83359d36, 0xed85ad}, - {0x83359d37, 0xed85ae}, - {0x83359d38, 0xed85af}, - {0x83359d39, 0xed85b0}, - {0x83359e30, 0xed85b1}, - {0x83359e31, 0xed85b2}, - {0x83359e32, 0xed85b3}, - {0x83359e33, 0xed85b4}, - {0x83359e34, 0xed85b5}, - {0x83359e35, 0xed85b6}, - {0x83359e36, 0xed85b7}, - {0x83359e37, 0xed85b8}, - {0x83359e38, 0xed85b9}, - {0x83359e39, 0xed85ba}, - {0x83359f30, 0xed85bb}, - {0x83359f31, 0xed85bc}, - {0x83359f32, 0xed85bd}, - {0x83359f33, 0xed85be}, - {0x83359f34, 0xed85bf}, - {0x83359f35, 0xed8680}, - {0x83359f36, 0xed8681}, - {0x83359f37, 0xed8682}, - {0x83359f38, 0xed8683}, - {0x83359f39, 0xed8684}, - {0x8335a030, 0xed8685}, - {0x8335a031, 0xed8686}, - {0x8335a032, 0xed8687}, - {0x8335a033, 0xed8688}, - {0x8335a034, 0xed8689}, - {0x8335a035, 0xed868a}, - {0x8335a036, 0xed868b}, - {0x8335a037, 0xed868c}, - {0x8335a038, 0xed868d}, - {0x8335a039, 0xed868e}, - {0x8335a130, 0xed868f}, - {0x8335a131, 0xed8690}, - {0x8335a132, 0xed8691}, - {0x8335a133, 0xed8692}, - {0x8335a134, 0xed8693}, - {0x8335a135, 0xed8694}, - {0x8335a136, 0xed8695}, - {0x8335a137, 0xed8696}, - {0x8335a138, 0xed8697}, - {0x8335a139, 0xed8698}, - {0x8335a230, 0xed8699}, - {0x8335a231, 0xed869a}, - {0x8335a232, 0xed869b}, - {0x8335a233, 0xed869c}, - {0x8335a234, 0xed869d}, - {0x8335a235, 0xed869e}, - {0x8335a236, 0xed869f}, - {0x8335a237, 0xed86a0}, - {0x8335a238, 0xed86a1}, - {0x8335a239, 0xed86a2}, - {0x8335a330, 0xed86a3}, - {0x8335a331, 0xed86a4}, - {0x8335a332, 0xed86a5}, - {0x8335a333, 0xed86a6}, - {0x8335a334, 0xed86a7}, - {0x8335a335, 0xed86a8}, - {0x8335a336, 0xed86a9}, - {0x8335a337, 0xed86aa}, - {0x8335a338, 0xed86ab}, - {0x8335a339, 0xed86ac}, - {0x8335a430, 0xed86ad}, - {0x8335a431, 0xed86ae}, - {0x8335a432, 0xed86af}, - {0x8335a433, 0xed86b0}, - {0x8335a434, 0xed86b1}, - {0x8335a435, 0xed86b2}, - {0x8335a436, 0xed86b3}, - {0x8335a437, 0xed86b4}, - {0x8335a438, 0xed86b5}, - {0x8335a439, 0xed86b6}, - {0x8335a530, 0xed86b7}, - {0x8335a531, 0xed86b8}, - {0x8335a532, 0xed86b9}, - {0x8335a533, 0xed86ba}, - {0x8335a534, 0xed86bb}, - {0x8335a535, 0xed86bc}, - {0x8335a536, 0xed86bd}, - {0x8335a537, 0xed86be}, - {0x8335a538, 0xed86bf}, - {0x8335a539, 0xed8780}, - {0x8335a630, 0xed8781}, - {0x8335a631, 0xed8782}, - {0x8335a632, 0xed8783}, - {0x8335a633, 0xed8784}, - {0x8335a634, 0xed8785}, - {0x8335a635, 0xed8786}, - {0x8335a636, 0xed8787}, - {0x8335a637, 0xed8788}, - {0x8335a638, 0xed8789}, - {0x8335a639, 0xed878a}, - {0x8335a730, 0xed878b}, - {0x8335a731, 0xed878c}, - {0x8335a732, 0xed878d}, - {0x8335a733, 0xed878e}, - {0x8335a734, 0xed878f}, - {0x8335a735, 0xed8790}, - {0x8335a736, 0xed8791}, - {0x8335a737, 0xed8792}, - {0x8335a738, 0xed8793}, - {0x8335a739, 0xed8794}, - {0x8335a830, 0xed8795}, - {0x8335a831, 0xed8796}, - {0x8335a832, 0xed8797}, - {0x8335a833, 0xed8798}, - {0x8335a834, 0xed8799}, - {0x8335a835, 0xed879a}, - {0x8335a836, 0xed879b}, - {0x8335a837, 0xed879c}, - {0x8335a838, 0xed879d}, - {0x8335a839, 0xed879e}, - {0x8335a930, 0xed879f}, - {0x8335a931, 0xed87a0}, - {0x8335a932, 0xed87a1}, - {0x8335a933, 0xed87a2}, - {0x8335a934, 0xed87a3}, - {0x8335a935, 0xed87a4}, - {0x8335a936, 0xed87a5}, - {0x8335a937, 0xed87a6}, - {0x8335a938, 0xed87a7}, - {0x8335a939, 0xed87a8}, - {0x8335aa30, 0xed87a9}, - {0x8335aa31, 0xed87aa}, - {0x8335aa32, 0xed87ab}, - {0x8335aa33, 0xed87ac}, - {0x8335aa34, 0xed87ad}, - {0x8335aa35, 0xed87ae}, - {0x8335aa36, 0xed87af}, - {0x8335aa37, 0xed87b0}, - {0x8335aa38, 0xed87b1}, - {0x8335aa39, 0xed87b2}, - {0x8335ab30, 0xed87b3}, - {0x8335ab31, 0xed87b4}, - {0x8335ab32, 0xed87b5}, - {0x8335ab33, 0xed87b6}, - {0x8335ab34, 0xed87b7}, - {0x8335ab35, 0xed87b8}, - {0x8335ab36, 0xed87b9}, - {0x8335ab37, 0xed87ba}, - {0x8335ab38, 0xed87bb}, - {0x8335ab39, 0xed87bc}, - {0x8335ac30, 0xed87bd}, - {0x8335ac31, 0xed87be}, - {0x8335ac32, 0xed87bf}, - {0x8335ac33, 0xed8880}, - {0x8335ac34, 0xed8881}, - {0x8335ac35, 0xed8882}, - {0x8335ac36, 0xed8883}, - {0x8335ac37, 0xed8884}, - {0x8335ac38, 0xed8885}, - {0x8335ac39, 0xed8886}, - {0x8335ad30, 0xed8887}, - {0x8335ad31, 0xed8888}, - {0x8335ad32, 0xed8889}, - {0x8335ad33, 0xed888a}, - {0x8335ad34, 0xed888b}, - {0x8335ad35, 0xed888c}, - {0x8335ad36, 0xed888d}, - {0x8335ad37, 0xed888e}, - {0x8335ad38, 0xed888f}, - {0x8335ad39, 0xed8890}, - {0x8335ae30, 0xed8891}, - {0x8335ae31, 0xed8892}, - {0x8335ae32, 0xed8893}, - {0x8335ae33, 0xed8894}, - {0x8335ae34, 0xed8895}, - {0x8335ae35, 0xed8896}, - {0x8335ae36, 0xed8897}, - {0x8335ae37, 0xed8898}, - {0x8335ae38, 0xed8899}, - {0x8335ae39, 0xed889a}, - {0x8335af30, 0xed889b}, - {0x8335af31, 0xed889c}, - {0x8335af32, 0xed889d}, - {0x8335af33, 0xed889e}, - {0x8335af34, 0xed889f}, - {0x8335af35, 0xed88a0}, - {0x8335af36, 0xed88a1}, - {0x8335af37, 0xed88a2}, - {0x8335af38, 0xed88a3}, - {0x8335af39, 0xed88a4}, - {0x8335b030, 0xed88a5}, - {0x8335b031, 0xed88a6}, - {0x8335b032, 0xed88a7}, - {0x8335b033, 0xed88a8}, - {0x8335b034, 0xed88a9}, - {0x8335b035, 0xed88aa}, - {0x8335b036, 0xed88ab}, - {0x8335b037, 0xed88ac}, - {0x8335b038, 0xed88ad}, - {0x8335b039, 0xed88ae}, - {0x8335b130, 0xed88af}, - {0x8335b131, 0xed88b0}, - {0x8335b132, 0xed88b1}, - {0x8335b133, 0xed88b2}, - {0x8335b134, 0xed88b3}, - {0x8335b135, 0xed88b4}, - {0x8335b136, 0xed88b5}, - {0x8335b137, 0xed88b6}, - {0x8335b138, 0xed88b7}, - {0x8335b139, 0xed88b8}, - {0x8335b230, 0xed88b9}, - {0x8335b231, 0xed88ba}, - {0x8335b232, 0xed88bb}, - {0x8335b233, 0xed88bc}, - {0x8335b234, 0xed88bd}, - {0x8335b235, 0xed88be}, - {0x8335b236, 0xed88bf}, - {0x8335b237, 0xed8980}, - {0x8335b238, 0xed8981}, - {0x8335b239, 0xed8982}, - {0x8335b330, 0xed8983}, - {0x8335b331, 0xed8984}, - {0x8335b332, 0xed8985}, - {0x8335b333, 0xed8986}, - {0x8335b334, 0xed8987}, - {0x8335b335, 0xed8988}, - {0x8335b336, 0xed8989}, - {0x8335b337, 0xed898a}, - {0x8335b338, 0xed898b}, - {0x8335b339, 0xed898c}, - {0x8335b430, 0xed898d}, - {0x8335b431, 0xed898e}, - {0x8335b432, 0xed898f}, - {0x8335b433, 0xed8990}, - {0x8335b434, 0xed8991}, - {0x8335b435, 0xed8992}, - {0x8335b436, 0xed8993}, - {0x8335b437, 0xed8994}, - {0x8335b438, 0xed8995}, - {0x8335b439, 0xed8996}, - {0x8335b530, 0xed8997}, - {0x8335b531, 0xed8998}, - {0x8335b532, 0xed8999}, - {0x8335b533, 0xed899a}, - {0x8335b534, 0xed899b}, - {0x8335b535, 0xed899c}, - {0x8335b536, 0xed899d}, - {0x8335b537, 0xed899e}, - {0x8335b538, 0xed899f}, - {0x8335b539, 0xed89a0}, - {0x8335b630, 0xed89a1}, - {0x8335b631, 0xed89a2}, - {0x8335b632, 0xed89a3}, - {0x8335b633, 0xed89a4}, - {0x8335b634, 0xed89a5}, - {0x8335b635, 0xed89a6}, - {0x8335b636, 0xed89a7}, - {0x8335b637, 0xed89a8}, - {0x8335b638, 0xed89a9}, - {0x8335b639, 0xed89aa}, - {0x8335b730, 0xed89ab}, - {0x8335b731, 0xed89ac}, - {0x8335b732, 0xed89ad}, - {0x8335b733, 0xed89ae}, - {0x8335b734, 0xed89af}, - {0x8335b735, 0xed89b0}, - {0x8335b736, 0xed89b1}, - {0x8335b737, 0xed89b2}, - {0x8335b738, 0xed89b3}, - {0x8335b739, 0xed89b4}, - {0x8335b830, 0xed89b5}, - {0x8335b831, 0xed89b6}, - {0x8335b832, 0xed89b7}, - {0x8335b833, 0xed89b8}, - {0x8335b834, 0xed89b9}, - {0x8335b835, 0xed89ba}, - {0x8335b836, 0xed89bb}, - {0x8335b837, 0xed89bc}, - {0x8335b838, 0xed89bd}, - {0x8335b839, 0xed89be}, - {0x8335b930, 0xed89bf}, - {0x8335b931, 0xed8a80}, - {0x8335b932, 0xed8a81}, - {0x8335b933, 0xed8a82}, - {0x8335b934, 0xed8a83}, - {0x8335b935, 0xed8a84}, - {0x8335b936, 0xed8a85}, - {0x8335b937, 0xed8a86}, - {0x8335b938, 0xed8a87}, - {0x8335b939, 0xed8a88}, - {0x8335ba30, 0xed8a89}, - {0x8335ba31, 0xed8a8a}, - {0x8335ba32, 0xed8a8b}, - {0x8335ba33, 0xed8a8c}, - {0x8335ba34, 0xed8a8d}, - {0x8335ba35, 0xed8a8e}, - {0x8335ba36, 0xed8a8f}, - {0x8335ba37, 0xed8a90}, - {0x8335ba38, 0xed8a91}, - {0x8335ba39, 0xed8a92}, - {0x8335bb30, 0xed8a93}, - {0x8335bb31, 0xed8a94}, - {0x8335bb32, 0xed8a95}, - {0x8335bb33, 0xed8a96}, - {0x8335bb34, 0xed8a97}, - {0x8335bb35, 0xed8a98}, - {0x8335bb36, 0xed8a99}, - {0x8335bb37, 0xed8a9a}, - {0x8335bb38, 0xed8a9b}, - {0x8335bb39, 0xed8a9c}, - {0x8335bc30, 0xed8a9d}, - {0x8335bc31, 0xed8a9e}, - {0x8335bc32, 0xed8a9f}, - {0x8335bc33, 0xed8aa0}, - {0x8335bc34, 0xed8aa1}, - {0x8335bc35, 0xed8aa2}, - {0x8335bc36, 0xed8aa3}, - {0x8335bc37, 0xed8aa4}, - {0x8335bc38, 0xed8aa5}, - {0x8335bc39, 0xed8aa6}, - {0x8335bd30, 0xed8aa7}, - {0x8335bd31, 0xed8aa8}, - {0x8335bd32, 0xed8aa9}, - {0x8335bd33, 0xed8aaa}, - {0x8335bd34, 0xed8aab}, - {0x8335bd35, 0xed8aac}, - {0x8335bd36, 0xed8aad}, - {0x8335bd37, 0xed8aae}, - {0x8335bd38, 0xed8aaf}, - {0x8335bd39, 0xed8ab0}, - {0x8335be30, 0xed8ab1}, - {0x8335be31, 0xed8ab2}, - {0x8335be32, 0xed8ab3}, - {0x8335be33, 0xed8ab4}, - {0x8335be34, 0xed8ab5}, - {0x8335be35, 0xed8ab6}, - {0x8335be36, 0xed8ab7}, - {0x8335be37, 0xed8ab8}, - {0x8335be38, 0xed8ab9}, - {0x8335be39, 0xed8aba}, - {0x8335bf30, 0xed8abb}, - {0x8335bf31, 0xed8abc}, - {0x8335bf32, 0xed8abd}, - {0x8335bf33, 0xed8abe}, - {0x8335bf34, 0xed8abf}, - {0x8335bf35, 0xed8b80}, - {0x8335bf36, 0xed8b81}, - {0x8335bf37, 0xed8b82}, - {0x8335bf38, 0xed8b83}, - {0x8335bf39, 0xed8b84}, - {0x8335c030, 0xed8b85}, - {0x8335c031, 0xed8b86}, - {0x8335c032, 0xed8b87}, - {0x8335c033, 0xed8b88}, - {0x8335c034, 0xed8b89}, - {0x8335c035, 0xed8b8a}, - {0x8335c036, 0xed8b8b}, - {0x8335c037, 0xed8b8c}, - {0x8335c038, 0xed8b8d}, - {0x8335c039, 0xed8b8e}, - {0x8335c130, 0xed8b8f}, - {0x8335c131, 0xed8b90}, - {0x8335c132, 0xed8b91}, - {0x8335c133, 0xed8b92}, - {0x8335c134, 0xed8b93}, - {0x8335c135, 0xed8b94}, - {0x8335c136, 0xed8b95}, - {0x8335c137, 0xed8b96}, - {0x8335c138, 0xed8b97}, - {0x8335c139, 0xed8b98}, - {0x8335c230, 0xed8b99}, - {0x8335c231, 0xed8b9a}, - {0x8335c232, 0xed8b9b}, - {0x8335c233, 0xed8b9c}, - {0x8335c234, 0xed8b9d}, - {0x8335c235, 0xed8b9e}, - {0x8335c236, 0xed8b9f}, - {0x8335c237, 0xed8ba0}, - {0x8335c238, 0xed8ba1}, - {0x8335c239, 0xed8ba2}, - {0x8335c330, 0xed8ba3}, - {0x8335c331, 0xed8ba4}, - {0x8335c332, 0xed8ba5}, - {0x8335c333, 0xed8ba6}, - {0x8335c334, 0xed8ba7}, - {0x8335c335, 0xed8ba8}, - {0x8335c336, 0xed8ba9}, - {0x8335c337, 0xed8baa}, - {0x8335c338, 0xed8bab}, - {0x8335c339, 0xed8bac}, - {0x8335c430, 0xed8bad}, - {0x8335c431, 0xed8bae}, - {0x8335c432, 0xed8baf}, - {0x8335c433, 0xed8bb0}, - {0x8335c434, 0xed8bb1}, - {0x8335c435, 0xed8bb2}, - {0x8335c436, 0xed8bb3}, - {0x8335c437, 0xed8bb4}, - {0x8335c438, 0xed8bb5}, - {0x8335c439, 0xed8bb6}, - {0x8335c530, 0xed8bb7}, - {0x8335c531, 0xed8bb8}, - {0x8335c532, 0xed8bb9}, - {0x8335c533, 0xed8bba}, - {0x8335c534, 0xed8bbb}, - {0x8335c535, 0xed8bbc}, - {0x8335c536, 0xed8bbd}, - {0x8335c537, 0xed8bbe}, - {0x8335c538, 0xed8bbf}, - {0x8335c539, 0xed8c80}, - {0x8335c630, 0xed8c81}, - {0x8335c631, 0xed8c82}, - {0x8335c632, 0xed8c83}, - {0x8335c633, 0xed8c84}, - {0x8335c634, 0xed8c85}, - {0x8335c635, 0xed8c86}, - {0x8335c636, 0xed8c87}, - {0x8335c637, 0xed8c88}, - {0x8335c638, 0xed8c89}, - {0x8335c639, 0xed8c8a}, - {0x8335c730, 0xed8c8b}, - {0x8335c731, 0xed8c8c}, - {0x8335c732, 0xed8c8d}, - {0x8335c733, 0xed8c8e}, - {0x8335c734, 0xed8c8f}, - {0x8335c735, 0xed8c90}, - {0x8335c736, 0xed8c91}, - {0x8335c737, 0xed8c92}, - {0x8335c738, 0xed8c93}, - {0x8335c739, 0xed8c94}, - {0x8335c830, 0xed8c95}, - {0x8335c831, 0xed8c96}, - {0x8335c832, 0xed8c97}, - {0x8335c833, 0xed8c98}, - {0x8335c834, 0xed8c99}, - {0x8335c835, 0xed8c9a}, - {0x8335c836, 0xed8c9b}, - {0x8335c837, 0xed8c9c}, - {0x8335c838, 0xed8c9d}, - {0x8335c839, 0xed8c9e}, - {0x8335c930, 0xed8c9f}, - {0x8335c931, 0xed8ca0}, - {0x8335c932, 0xed8ca1}, - {0x8335c933, 0xed8ca2}, - {0x8335c934, 0xed8ca3}, - {0x8335c935, 0xed8ca4}, - {0x8335c936, 0xed8ca5}, - {0x8335c937, 0xed8ca6}, - {0x8335c938, 0xed8ca7}, - {0x8335c939, 0xed8ca8}, - {0x8335ca30, 0xed8ca9}, - {0x8335ca31, 0xed8caa}, - {0x8335ca32, 0xed8cab}, - {0x8335ca33, 0xed8cac}, - {0x8335ca34, 0xed8cad}, - {0x8335ca35, 0xed8cae}, - {0x8335ca36, 0xed8caf}, - {0x8335ca37, 0xed8cb0}, - {0x8335ca38, 0xed8cb1}, - {0x8335ca39, 0xed8cb2}, - {0x8335cb30, 0xed8cb3}, - {0x8335cb31, 0xed8cb4}, - {0x8335cb32, 0xed8cb5}, - {0x8335cb33, 0xed8cb6}, - {0x8335cb34, 0xed8cb7}, - {0x8335cb35, 0xed8cb8}, - {0x8335cb36, 0xed8cb9}, - {0x8335cb37, 0xed8cba}, - {0x8335cb38, 0xed8cbb}, - {0x8335cb39, 0xed8cbc}, - {0x8335cc30, 0xed8cbd}, - {0x8335cc31, 0xed8cbe}, - {0x8335cc32, 0xed8cbf}, - {0x8335cc33, 0xed8d80}, - {0x8335cc34, 0xed8d81}, - {0x8335cc35, 0xed8d82}, - {0x8335cc36, 0xed8d83}, - {0x8335cc37, 0xed8d84}, - {0x8335cc38, 0xed8d85}, - {0x8335cc39, 0xed8d86}, - {0x8335cd30, 0xed8d87}, - {0x8335cd31, 0xed8d88}, - {0x8335cd32, 0xed8d89}, - {0x8335cd33, 0xed8d8a}, - {0x8335cd34, 0xed8d8b}, - {0x8335cd35, 0xed8d8c}, - {0x8335cd36, 0xed8d8d}, - {0x8335cd37, 0xed8d8e}, - {0x8335cd38, 0xed8d8f}, - {0x8335cd39, 0xed8d90}, - {0x8335ce30, 0xed8d91}, - {0x8335ce31, 0xed8d92}, - {0x8335ce32, 0xed8d93}, - {0x8335ce33, 0xed8d94}, - {0x8335ce34, 0xed8d95}, - {0x8335ce35, 0xed8d96}, - {0x8335ce36, 0xed8d97}, - {0x8335ce37, 0xed8d98}, - {0x8335ce38, 0xed8d99}, - {0x8335ce39, 0xed8d9a}, - {0x8335cf30, 0xed8d9b}, - {0x8335cf31, 0xed8d9c}, - {0x8335cf32, 0xed8d9d}, - {0x8335cf33, 0xed8d9e}, - {0x8335cf34, 0xed8d9f}, - {0x8335cf35, 0xed8da0}, - {0x8335cf36, 0xed8da1}, - {0x8335cf37, 0xed8da2}, - {0x8335cf38, 0xed8da3}, - {0x8335cf39, 0xed8da4}, - {0x8335d030, 0xed8da5}, - {0x8335d031, 0xed8da6}, - {0x8335d032, 0xed8da7}, - {0x8335d033, 0xed8da8}, - {0x8335d034, 0xed8da9}, - {0x8335d035, 0xed8daa}, - {0x8335d036, 0xed8dab}, - {0x8335d037, 0xed8dac}, - {0x8335d038, 0xed8dad}, - {0x8335d039, 0xed8dae}, - {0x8335d130, 0xed8daf}, - {0x8335d131, 0xed8db0}, - {0x8335d132, 0xed8db1}, - {0x8335d133, 0xed8db2}, - {0x8335d134, 0xed8db3}, - {0x8335d135, 0xed8db4}, - {0x8335d136, 0xed8db5}, - {0x8335d137, 0xed8db6}, - {0x8335d138, 0xed8db7}, - {0x8335d139, 0xed8db8}, - {0x8335d230, 0xed8db9}, - {0x8335d231, 0xed8dba}, - {0x8335d232, 0xed8dbb}, - {0x8335d233, 0xed8dbc}, - {0x8335d234, 0xed8dbd}, - {0x8335d235, 0xed8dbe}, - {0x8335d236, 0xed8dbf}, - {0x8335d237, 0xed8e80}, - {0x8335d238, 0xed8e81}, - {0x8335d239, 0xed8e82}, - {0x8335d330, 0xed8e83}, - {0x8335d331, 0xed8e84}, - {0x8335d332, 0xed8e85}, - {0x8335d333, 0xed8e86}, - {0x8335d334, 0xed8e87}, - {0x8335d335, 0xed8e88}, - {0x8335d336, 0xed8e89}, - {0x8335d337, 0xed8e8a}, - {0x8335d338, 0xed8e8b}, - {0x8335d339, 0xed8e8c}, - {0x8335d430, 0xed8e8d}, - {0x8335d431, 0xed8e8e}, - {0x8335d432, 0xed8e8f}, - {0x8335d433, 0xed8e90}, - {0x8335d434, 0xed8e91}, - {0x8335d435, 0xed8e92}, - {0x8335d436, 0xed8e93}, - {0x8335d437, 0xed8e94}, - {0x8335d438, 0xed8e95}, - {0x8335d439, 0xed8e96}, - {0x8335d530, 0xed8e97}, - {0x8335d531, 0xed8e98}, - {0x8335d532, 0xed8e99}, - {0x8335d533, 0xed8e9a}, - {0x8335d534, 0xed8e9b}, - {0x8335d535, 0xed8e9c}, - {0x8335d536, 0xed8e9d}, - {0x8335d537, 0xed8e9e}, - {0x8335d538, 0xed8e9f}, - {0x8335d539, 0xed8ea0}, - {0x8335d630, 0xed8ea1}, - {0x8335d631, 0xed8ea2}, - {0x8335d632, 0xed8ea3}, - {0x8335d633, 0xed8ea4}, - {0x8335d634, 0xed8ea5}, - {0x8335d635, 0xed8ea6}, - {0x8335d636, 0xed8ea7}, - {0x8335d637, 0xed8ea8}, - {0x8335d638, 0xed8ea9}, - {0x8335d639, 0xed8eaa}, - {0x8335d730, 0xed8eab}, - {0x8335d731, 0xed8eac}, - {0x8335d732, 0xed8ead}, - {0x8335d733, 0xed8eae}, - {0x8335d734, 0xed8eaf}, - {0x8335d735, 0xed8eb0}, - {0x8335d736, 0xed8eb1}, - {0x8335d737, 0xed8eb2}, - {0x8335d738, 0xed8eb3}, - {0x8335d739, 0xed8eb4}, - {0x8335d830, 0xed8eb5}, - {0x8335d831, 0xed8eb6}, - {0x8335d832, 0xed8eb7}, - {0x8335d833, 0xed8eb8}, - {0x8335d834, 0xed8eb9}, - {0x8335d835, 0xed8eba}, - {0x8335d836, 0xed8ebb}, - {0x8335d837, 0xed8ebc}, - {0x8335d838, 0xed8ebd}, - {0x8335d839, 0xed8ebe}, - {0x8335d930, 0xed8ebf}, - {0x8335d931, 0xed8f80}, - {0x8335d932, 0xed8f81}, - {0x8335d933, 0xed8f82}, - {0x8335d934, 0xed8f83}, - {0x8335d935, 0xed8f84}, - {0x8335d936, 0xed8f85}, - {0x8335d937, 0xed8f86}, - {0x8335d938, 0xed8f87}, - {0x8335d939, 0xed8f88}, - {0x8335da30, 0xed8f89}, - {0x8335da31, 0xed8f8a}, - {0x8335da32, 0xed8f8b}, - {0x8335da33, 0xed8f8c}, - {0x8335da34, 0xed8f8d}, - {0x8335da35, 0xed8f8e}, - {0x8335da36, 0xed8f8f}, - {0x8335da37, 0xed8f90}, - {0x8335da38, 0xed8f91}, - {0x8335da39, 0xed8f92}, - {0x8335db30, 0xed8f93}, - {0x8335db31, 0xed8f94}, - {0x8335db32, 0xed8f95}, - {0x8335db33, 0xed8f96}, - {0x8335db34, 0xed8f97}, - {0x8335db35, 0xed8f98}, - {0x8335db36, 0xed8f99}, - {0x8335db37, 0xed8f9a}, - {0x8335db38, 0xed8f9b}, - {0x8335db39, 0xed8f9c}, - {0x8335dc30, 0xed8f9d}, - {0x8335dc31, 0xed8f9e}, - {0x8335dc32, 0xed8f9f}, - {0x8335dc33, 0xed8fa0}, - {0x8335dc34, 0xed8fa1}, - {0x8335dc35, 0xed8fa2}, - {0x8335dc36, 0xed8fa3}, - {0x8335dc37, 0xed8fa4}, - {0x8335dc38, 0xed8fa5}, - {0x8335dc39, 0xed8fa6}, - {0x8335dd30, 0xed8fa7}, - {0x8335dd31, 0xed8fa8}, - {0x8335dd32, 0xed8fa9}, - {0x8335dd33, 0xed8faa}, - {0x8335dd34, 0xed8fab}, - {0x8335dd35, 0xed8fac}, - {0x8335dd36, 0xed8fad}, - {0x8335dd37, 0xed8fae}, - {0x8335dd38, 0xed8faf}, - {0x8335dd39, 0xed8fb0}, - {0x8335de30, 0xed8fb1}, - {0x8335de31, 0xed8fb2}, - {0x8335de32, 0xed8fb3}, - {0x8335de33, 0xed8fb4}, - {0x8335de34, 0xed8fb5}, - {0x8335de35, 0xed8fb6}, - {0x8335de36, 0xed8fb7}, - {0x8335de37, 0xed8fb8}, - {0x8335de38, 0xed8fb9}, - {0x8335de39, 0xed8fba}, - {0x8335df30, 0xed8fbb}, - {0x8335df31, 0xed8fbc}, - {0x8335df32, 0xed8fbd}, - {0x8335df33, 0xed8fbe}, - {0x8335df34, 0xed8fbf}, - {0x8335df35, 0xed9080}, - {0x8335df36, 0xed9081}, - {0x8335df37, 0xed9082}, - {0x8335df38, 0xed9083}, - {0x8335df39, 0xed9084}, - {0x8335e030, 0xed9085}, - {0x8335e031, 0xed9086}, - {0x8335e032, 0xed9087}, - {0x8335e033, 0xed9088}, - {0x8335e034, 0xed9089}, - {0x8335e035, 0xed908a}, - {0x8335e036, 0xed908b}, - {0x8335e037, 0xed908c}, - {0x8335e038, 0xed908d}, - {0x8335e039, 0xed908e}, - {0x8335e130, 0xed908f}, - {0x8335e131, 0xed9090}, - {0x8335e132, 0xed9091}, - {0x8335e133, 0xed9092}, - {0x8335e134, 0xed9093}, - {0x8335e135, 0xed9094}, - {0x8335e136, 0xed9095}, - {0x8335e137, 0xed9096}, - {0x8335e138, 0xed9097}, - {0x8335e139, 0xed9098}, - {0x8335e230, 0xed9099}, - {0x8335e231, 0xed909a}, - {0x8335e232, 0xed909b}, - {0x8335e233, 0xed909c}, - {0x8335e234, 0xed909d}, - {0x8335e235, 0xed909e}, - {0x8335e236, 0xed909f}, - {0x8335e237, 0xed90a0}, - {0x8335e238, 0xed90a1}, - {0x8335e239, 0xed90a2}, - {0x8335e330, 0xed90a3}, - {0x8335e331, 0xed90a4}, - {0x8335e332, 0xed90a5}, - {0x8335e333, 0xed90a6}, - {0x8335e334, 0xed90a7}, - {0x8335e335, 0xed90a8}, - {0x8335e336, 0xed90a9}, - {0x8335e337, 0xed90aa}, - {0x8335e338, 0xed90ab}, - {0x8335e339, 0xed90ac}, - {0x8335e430, 0xed90ad}, - {0x8335e431, 0xed90ae}, - {0x8335e432, 0xed90af}, - {0x8335e433, 0xed90b0}, - {0x8335e434, 0xed90b1}, - {0x8335e435, 0xed90b2}, - {0x8335e436, 0xed90b3}, - {0x8335e437, 0xed90b4}, - {0x8335e438, 0xed90b5}, - {0x8335e439, 0xed90b6}, - {0x8335e530, 0xed90b7}, - {0x8335e531, 0xed90b8}, - {0x8335e532, 0xed90b9}, - {0x8335e533, 0xed90ba}, - {0x8335e534, 0xed90bb}, - {0x8335e535, 0xed90bc}, - {0x8335e536, 0xed90bd}, - {0x8335e537, 0xed90be}, - {0x8335e538, 0xed90bf}, - {0x8335e539, 0xed9180}, - {0x8335e630, 0xed9181}, - {0x8335e631, 0xed9182}, - {0x8335e632, 0xed9183}, - {0x8335e633, 0xed9184}, - {0x8335e634, 0xed9185}, - {0x8335e635, 0xed9186}, - {0x8335e636, 0xed9187}, - {0x8335e637, 0xed9188}, - {0x8335e638, 0xed9189}, - {0x8335e639, 0xed918a}, - {0x8335e730, 0xed918b}, - {0x8335e731, 0xed918c}, - {0x8335e732, 0xed918d}, - {0x8335e733, 0xed918e}, - {0x8335e734, 0xed918f}, - {0x8335e735, 0xed9190}, - {0x8335e736, 0xed9191}, - {0x8335e737, 0xed9192}, - {0x8335e738, 0xed9193}, - {0x8335e739, 0xed9194}, - {0x8335e830, 0xed9195}, - {0x8335e831, 0xed9196}, - {0x8335e832, 0xed9197}, - {0x8335e833, 0xed9198}, - {0x8335e834, 0xed9199}, - {0x8335e835, 0xed919a}, - {0x8335e836, 0xed919b}, - {0x8335e837, 0xed919c}, - {0x8335e838, 0xed919d}, - {0x8335e839, 0xed919e}, - {0x8335e930, 0xed919f}, - {0x8335e931, 0xed91a0}, - {0x8335e932, 0xed91a1}, - {0x8335e933, 0xed91a2}, - {0x8335e934, 0xed91a3}, - {0x8335e935, 0xed91a4}, - {0x8335e936, 0xed91a5}, - {0x8335e937, 0xed91a6}, - {0x8335e938, 0xed91a7}, - {0x8335e939, 0xed91a8}, - {0x8335ea30, 0xed91a9}, - {0x8335ea31, 0xed91aa}, - {0x8335ea32, 0xed91ab}, - {0x8335ea33, 0xed91ac}, - {0x8335ea34, 0xed91ad}, - {0x8335ea35, 0xed91ae}, - {0x8335ea36, 0xed91af}, - {0x8335ea37, 0xed91b0}, - {0x8335ea38, 0xed91b1}, - {0x8335ea39, 0xed91b2}, - {0x8335eb30, 0xed91b3}, - {0x8335eb31, 0xed91b4}, - {0x8335eb32, 0xed91b5}, - {0x8335eb33, 0xed91b6}, - {0x8335eb34, 0xed91b7}, - {0x8335eb35, 0xed91b8}, - {0x8335eb36, 0xed91b9}, - {0x8335eb37, 0xed91ba}, - {0x8335eb38, 0xed91bb}, - {0x8335eb39, 0xed91bc}, - {0x8335ec30, 0xed91bd}, - {0x8335ec31, 0xed91be}, - {0x8335ec32, 0xed91bf}, - {0x8335ec33, 0xed9280}, - {0x8335ec34, 0xed9281}, - {0x8335ec35, 0xed9282}, - {0x8335ec36, 0xed9283}, - {0x8335ec37, 0xed9284}, - {0x8335ec38, 0xed9285}, - {0x8335ec39, 0xed9286}, - {0x8335ed30, 0xed9287}, - {0x8335ed31, 0xed9288}, - {0x8335ed32, 0xed9289}, - {0x8335ed33, 0xed928a}, - {0x8335ed34, 0xed928b}, - {0x8335ed35, 0xed928c}, - {0x8335ed36, 0xed928d}, - {0x8335ed37, 0xed928e}, - {0x8335ed38, 0xed928f}, - {0x8335ed39, 0xed9290}, - {0x8335ee30, 0xed9291}, - {0x8335ee31, 0xed9292}, - {0x8335ee32, 0xed9293}, - {0x8335ee33, 0xed9294}, - {0x8335ee34, 0xed9295}, - {0x8335ee35, 0xed9296}, - {0x8335ee36, 0xed9297}, - {0x8335ee37, 0xed9298}, - {0x8335ee38, 0xed9299}, - {0x8335ee39, 0xed929a}, - {0x8335ef30, 0xed929b}, - {0x8335ef31, 0xed929c}, - {0x8335ef32, 0xed929d}, - {0x8335ef33, 0xed929e}, - {0x8335ef34, 0xed929f}, - {0x8335ef35, 0xed92a0}, - {0x8335ef36, 0xed92a1}, - {0x8335ef37, 0xed92a2}, - {0x8335ef38, 0xed92a3}, - {0x8335ef39, 0xed92a4}, - {0x8335f030, 0xed92a5}, - {0x8335f031, 0xed92a6}, - {0x8335f032, 0xed92a7}, - {0x8335f033, 0xed92a8}, - {0x8335f034, 0xed92a9}, - {0x8335f035, 0xed92aa}, - {0x8335f036, 0xed92ab}, - {0x8335f037, 0xed92ac}, - {0x8335f038, 0xed92ad}, - {0x8335f039, 0xed92ae}, - {0x8335f130, 0xed92af}, - {0x8335f131, 0xed92b0}, - {0x8335f132, 0xed92b1}, - {0x8335f133, 0xed92b2}, - {0x8335f134, 0xed92b3}, - {0x8335f135, 0xed92b4}, - {0x8335f136, 0xed92b5}, - {0x8335f137, 0xed92b6}, - {0x8335f138, 0xed92b7}, - {0x8335f139, 0xed92b8}, - {0x8335f230, 0xed92b9}, - {0x8335f231, 0xed92ba}, - {0x8335f232, 0xed92bb}, - {0x8335f233, 0xed92bc}, - {0x8335f234, 0xed92bd}, - {0x8335f235, 0xed92be}, - {0x8335f236, 0xed92bf}, - {0x8335f237, 0xed9380}, - {0x8335f238, 0xed9381}, - {0x8335f239, 0xed9382}, - {0x8335f330, 0xed9383}, - {0x8335f331, 0xed9384}, - {0x8335f332, 0xed9385}, - {0x8335f333, 0xed9386}, - {0x8335f334, 0xed9387}, - {0x8335f335, 0xed9388}, - {0x8335f336, 0xed9389}, - {0x8335f337, 0xed938a}, - {0x8335f338, 0xed938b}, - {0x8335f339, 0xed938c}, - {0x8335f430, 0xed938d}, - {0x8335f431, 0xed938e}, - {0x8335f432, 0xed938f}, - {0x8335f433, 0xed9390}, - {0x8335f434, 0xed9391}, - {0x8335f435, 0xed9392}, - {0x8335f436, 0xed9393}, - {0x8335f437, 0xed9394}, - {0x8335f438, 0xed9395}, - {0x8335f439, 0xed9396}, - {0x8335f530, 0xed9397}, - {0x8335f531, 0xed9398}, - {0x8335f532, 0xed9399}, - {0x8335f533, 0xed939a}, - {0x8335f534, 0xed939b}, - {0x8335f535, 0xed939c}, - {0x8335f536, 0xed939d}, - {0x8335f537, 0xed939e}, - {0x8335f538, 0xed939f}, - {0x8335f539, 0xed93a0}, - {0x8335f630, 0xed93a1}, - {0x8335f631, 0xed93a2}, - {0x8335f632, 0xed93a3}, - {0x8335f633, 0xed93a4}, - {0x8335f634, 0xed93a5}, - {0x8335f635, 0xed93a6}, - {0x8335f636, 0xed93a7}, - {0x8335f637, 0xed93a8}, - {0x8335f638, 0xed93a9}, - {0x8335f639, 0xed93aa}, - {0x8335f730, 0xed93ab}, - {0x8335f731, 0xed93ac}, - {0x8335f732, 0xed93ad}, - {0x8335f733, 0xed93ae}, - {0x8335f734, 0xed93af}, - {0x8335f735, 0xed93b0}, - {0x8335f736, 0xed93b1}, - {0x8335f737, 0xed93b2}, - {0x8335f738, 0xed93b3}, - {0x8335f739, 0xed93b4}, - {0x8335f830, 0xed93b5}, - {0x8335f831, 0xed93b6}, - {0x8335f832, 0xed93b7}, - {0x8335f833, 0xed93b8}, - {0x8335f834, 0xed93b9}, - {0x8335f835, 0xed93ba}, - {0x8335f836, 0xed93bb}, - {0x8335f837, 0xed93bc}, - {0x8335f838, 0xed93bd}, - {0x8335f839, 0xed93be}, - {0x8335f930, 0xed93bf}, - {0x8335f931, 0xed9480}, - {0x8335f932, 0xed9481}, - {0x8335f933, 0xed9482}, - {0x8335f934, 0xed9483}, - {0x8335f935, 0xed9484}, - {0x8335f936, 0xed9485}, - {0x8335f937, 0xed9486}, - {0x8335f938, 0xed9487}, - {0x8335f939, 0xed9488}, - {0x8335fa30, 0xed9489}, - {0x8335fa31, 0xed948a}, - {0x8335fa32, 0xed948b}, - {0x8335fa33, 0xed948c}, - {0x8335fa34, 0xed948d}, - {0x8335fa35, 0xed948e}, - {0x8335fa36, 0xed948f}, - {0x8335fa37, 0xed9490}, - {0x8335fa38, 0xed9491}, - {0x8335fa39, 0xed9492}, - {0x8335fb30, 0xed9493}, - {0x8335fb31, 0xed9494}, - {0x8335fb32, 0xed9495}, - {0x8335fb33, 0xed9496}, - {0x8335fb34, 0xed9497}, - {0x8335fb35, 0xed9498}, - {0x8335fb36, 0xed9499}, - {0x8335fb37, 0xed949a}, - {0x8335fb38, 0xed949b}, - {0x8335fb39, 0xed949c}, - {0x8335fc30, 0xed949d}, - {0x8335fc31, 0xed949e}, - {0x8335fc32, 0xed949f}, - {0x8335fc33, 0xed94a0}, - {0x8335fc34, 0xed94a1}, - {0x8335fc35, 0xed94a2}, - {0x8335fc36, 0xed94a3}, - {0x8335fc37, 0xed94a4}, - {0x8335fc38, 0xed94a5}, - {0x8335fc39, 0xed94a6}, - {0x8335fd30, 0xed94a7}, - {0x8335fd31, 0xed94a8}, - {0x8335fd32, 0xed94a9}, - {0x8335fd33, 0xed94aa}, - {0x8335fd34, 0xed94ab}, - {0x8335fd35, 0xed94ac}, - {0x8335fd36, 0xed94ad}, - {0x8335fd37, 0xed94ae}, - {0x8335fd38, 0xed94af}, - {0x8335fd39, 0xed94b0}, - {0x8335fe30, 0xed94b1}, - {0x8335fe31, 0xed94b2}, - {0x8335fe32, 0xed94b3}, - {0x8335fe33, 0xed94b4}, - {0x8335fe34, 0xed94b5}, - {0x8335fe35, 0xed94b6}, - {0x8335fe36, 0xed94b7}, - {0x8335fe37, 0xed94b8}, - {0x8335fe38, 0xed94b9}, - {0x8335fe39, 0xed94ba}, - {0x83368130, 0xed94bb}, - {0x83368131, 0xed94bc}, - {0x83368132, 0xed94bd}, - {0x83368133, 0xed94be}, - {0x83368134, 0xed94bf}, - {0x83368135, 0xed9580}, - {0x83368136, 0xed9581}, - {0x83368137, 0xed9582}, - {0x83368138, 0xed9583}, - {0x83368139, 0xed9584}, - {0x83368230, 0xed9585}, - {0x83368231, 0xed9586}, - {0x83368232, 0xed9587}, - {0x83368233, 0xed9588}, - {0x83368234, 0xed9589}, - {0x83368235, 0xed958a}, - {0x83368236, 0xed958b}, - {0x83368237, 0xed958c}, - {0x83368238, 0xed958d}, - {0x83368239, 0xed958e}, - {0x83368330, 0xed958f}, - {0x83368331, 0xed9590}, - {0x83368332, 0xed9591}, - {0x83368333, 0xed9592}, - {0x83368334, 0xed9593}, - {0x83368335, 0xed9594}, - {0x83368336, 0xed9595}, - {0x83368337, 0xed9596}, - {0x83368338, 0xed9597}, - {0x83368339, 0xed9598}, - {0x83368430, 0xed9599}, - {0x83368431, 0xed959a}, - {0x83368432, 0xed959b}, - {0x83368433, 0xed959c}, - {0x83368434, 0xed959d}, - {0x83368435, 0xed959e}, - {0x83368436, 0xed959f}, - {0x83368437, 0xed95a0}, - {0x83368438, 0xed95a1}, - {0x83368439, 0xed95a2}, - {0x83368530, 0xed95a3}, - {0x83368531, 0xed95a4}, - {0x83368532, 0xed95a5}, - {0x83368533, 0xed95a6}, - {0x83368534, 0xed95a7}, - {0x83368535, 0xed95a8}, - {0x83368536, 0xed95a9}, - {0x83368537, 0xed95aa}, - {0x83368538, 0xed95ab}, - {0x83368539, 0xed95ac}, - {0x83368630, 0xed95ad}, - {0x83368631, 0xed95ae}, - {0x83368632, 0xed95af}, - {0x83368633, 0xed95b0}, - {0x83368634, 0xed95b1}, - {0x83368635, 0xed95b2}, - {0x83368636, 0xed95b3}, - {0x83368637, 0xed95b4}, - {0x83368638, 0xed95b5}, - {0x83368639, 0xed95b6}, - {0x83368730, 0xed95b7}, - {0x83368731, 0xed95b8}, - {0x83368732, 0xed95b9}, - {0x83368733, 0xed95ba}, - {0x83368734, 0xed95bb}, - {0x83368735, 0xed95bc}, - {0x83368736, 0xed95bd}, - {0x83368737, 0xed95be}, - {0x83368738, 0xed95bf}, - {0x83368739, 0xed9680}, - {0x83368830, 0xed9681}, - {0x83368831, 0xed9682}, - {0x83368832, 0xed9683}, - {0x83368833, 0xed9684}, - {0x83368834, 0xed9685}, - {0x83368835, 0xed9686}, - {0x83368836, 0xed9687}, - {0x83368837, 0xed9688}, - {0x83368838, 0xed9689}, - {0x83368839, 0xed968a}, - {0x83368930, 0xed968b}, - {0x83368931, 0xed968c}, - {0x83368932, 0xed968d}, - {0x83368933, 0xed968e}, - {0x83368934, 0xed968f}, - {0x83368935, 0xed9690}, - {0x83368936, 0xed9691}, - {0x83368937, 0xed9692}, - {0x83368938, 0xed9693}, - {0x83368939, 0xed9694}, - {0x83368a30, 0xed9695}, - {0x83368a31, 0xed9696}, - {0x83368a32, 0xed9697}, - {0x83368a33, 0xed9698}, - {0x83368a34, 0xed9699}, - {0x83368a35, 0xed969a}, - {0x83368a36, 0xed969b}, - {0x83368a37, 0xed969c}, - {0x83368a38, 0xed969d}, - {0x83368a39, 0xed969e}, - {0x83368b30, 0xed969f}, - {0x83368b31, 0xed96a0}, - {0x83368b32, 0xed96a1}, - {0x83368b33, 0xed96a2}, - {0x83368b34, 0xed96a3}, - {0x83368b35, 0xed96a4}, - {0x83368b36, 0xed96a5}, - {0x83368b37, 0xed96a6}, - {0x83368b38, 0xed96a7}, - {0x83368b39, 0xed96a8}, - {0x83368c30, 0xed96a9}, - {0x83368c31, 0xed96aa}, - {0x83368c32, 0xed96ab}, - {0x83368c33, 0xed96ac}, - {0x83368c34, 0xed96ad}, - {0x83368c35, 0xed96ae}, - {0x83368c36, 0xed96af}, - {0x83368c37, 0xed96b0}, - {0x83368c38, 0xed96b1}, - {0x83368c39, 0xed96b2}, - {0x83368d30, 0xed96b3}, - {0x83368d31, 0xed96b4}, - {0x83368d32, 0xed96b5}, - {0x83368d33, 0xed96b6}, - {0x83368d34, 0xed96b7}, - {0x83368d35, 0xed96b8}, - {0x83368d36, 0xed96b9}, - {0x83368d37, 0xed96ba}, - {0x83368d38, 0xed96bb}, - {0x83368d39, 0xed96bc}, - {0x83368e30, 0xed96bd}, - {0x83368e31, 0xed96be}, - {0x83368e32, 0xed96bf}, - {0x83368e33, 0xed9780}, - {0x83368e34, 0xed9781}, - {0x83368e35, 0xed9782}, - {0x83368e36, 0xed9783}, - {0x83368e37, 0xed9784}, - {0x83368e38, 0xed9785}, - {0x83368e39, 0xed9786}, - {0x83368f30, 0xed9787}, - {0x83368f31, 0xed9788}, - {0x83368f32, 0xed9789}, - {0x83368f33, 0xed978a}, - {0x83368f34, 0xed978b}, - {0x83368f35, 0xed978c}, - {0x83368f36, 0xed978d}, - {0x83368f37, 0xed978e}, - {0x83368f38, 0xed978f}, - {0x83368f39, 0xed9790}, - {0x83369030, 0xed9791}, - {0x83369031, 0xed9792}, - {0x83369032, 0xed9793}, - {0x83369033, 0xed9794}, - {0x83369034, 0xed9795}, - {0x83369035, 0xed9796}, - {0x83369036, 0xed9797}, - {0x83369037, 0xed9798}, - {0x83369038, 0xed9799}, - {0x83369039, 0xed979a}, - {0x83369130, 0xed979b}, - {0x83369131, 0xed979c}, - {0x83369132, 0xed979d}, - {0x83369133, 0xed979e}, - {0x83369134, 0xed979f}, - {0x83369135, 0xed97a0}, - {0x83369136, 0xed97a1}, - {0x83369137, 0xed97a2}, - {0x83369138, 0xed97a3}, - {0x83369139, 0xed97a4}, - {0x83369230, 0xed97a5}, - {0x83369231, 0xed97a6}, - {0x83369232, 0xed97a7}, - {0x83369233, 0xed97a8}, - {0x83369234, 0xed97a9}, - {0x83369235, 0xed97aa}, - {0x83369236, 0xed97ab}, - {0x83369237, 0xed97ac}, - {0x83369238, 0xed97ad}, - {0x83369239, 0xed97ae}, - {0x83369330, 0xed97af}, - {0x83369331, 0xed97b0}, - {0x83369332, 0xed97b1}, - {0x83369333, 0xed97b2}, - {0x83369334, 0xed97b3}, - {0x83369335, 0xed97b4}, - {0x83369336, 0xed97b5}, - {0x83369337, 0xed97b6}, - {0x83369338, 0xed97b7}, - {0x83369339, 0xed97b8}, - {0x83369430, 0xed97b9}, - {0x83369431, 0xed97ba}, - {0x83369432, 0xed97bb}, - {0x83369433, 0xed97bc}, - {0x83369434, 0xed97bd}, - {0x83369435, 0xed97be}, - {0x83369436, 0xed97bf}, - {0x83369437, 0xed9880}, - {0x83369438, 0xed9881}, - {0x83369439, 0xed9882}, - {0x83369530, 0xed9883}, - {0x83369531, 0xed9884}, - {0x83369532, 0xed9885}, - {0x83369533, 0xed9886}, - {0x83369534, 0xed9887}, - {0x83369535, 0xed9888}, - {0x83369536, 0xed9889}, - {0x83369537, 0xed988a}, - {0x83369538, 0xed988b}, - {0x83369539, 0xed988c}, - {0x83369630, 0xed988d}, - {0x83369631, 0xed988e}, - {0x83369632, 0xed988f}, - {0x83369633, 0xed9890}, - {0x83369634, 0xed9891}, - {0x83369635, 0xed9892}, - {0x83369636, 0xed9893}, - {0x83369637, 0xed9894}, - {0x83369638, 0xed9895}, - {0x83369639, 0xed9896}, - {0x83369730, 0xed9897}, - {0x83369731, 0xed9898}, - {0x83369732, 0xed9899}, - {0x83369733, 0xed989a}, - {0x83369734, 0xed989b}, - {0x83369735, 0xed989c}, - {0x83369736, 0xed989d}, - {0x83369737, 0xed989e}, - {0x83369738, 0xed989f}, - {0x83369739, 0xed98a0}, - {0x83369830, 0xed98a1}, - {0x83369831, 0xed98a2}, - {0x83369832, 0xed98a3}, - {0x83369833, 0xed98a4}, - {0x83369834, 0xed98a5}, - {0x83369835, 0xed98a6}, - {0x83369836, 0xed98a7}, - {0x83369837, 0xed98a8}, - {0x83369838, 0xed98a9}, - {0x83369839, 0xed98aa}, - {0x83369930, 0xed98ab}, - {0x83369931, 0xed98ac}, - {0x83369932, 0xed98ad}, - {0x83369933, 0xed98ae}, - {0x83369934, 0xed98af}, - {0x83369935, 0xed98b0}, - {0x83369936, 0xed98b1}, - {0x83369937, 0xed98b2}, - {0x83369938, 0xed98b3}, - {0x83369939, 0xed98b4}, - {0x83369a30, 0xed98b5}, - {0x83369a31, 0xed98b6}, - {0x83369a32, 0xed98b7}, - {0x83369a33, 0xed98b8}, - {0x83369a34, 0xed98b9}, - {0x83369a35, 0xed98ba}, - {0x83369a36, 0xed98bb}, - {0x83369a37, 0xed98bc}, - {0x83369a38, 0xed98bd}, - {0x83369a39, 0xed98be}, - {0x83369b30, 0xed98bf}, - {0x83369b31, 0xed9980}, - {0x83369b32, 0xed9981}, - {0x83369b33, 0xed9982}, - {0x83369b34, 0xed9983}, - {0x83369b35, 0xed9984}, - {0x83369b36, 0xed9985}, - {0x83369b37, 0xed9986}, - {0x83369b38, 0xed9987}, - {0x83369b39, 0xed9988}, - {0x83369c30, 0xed9989}, - {0x83369c31, 0xed998a}, - {0x83369c32, 0xed998b}, - {0x83369c33, 0xed998c}, - {0x83369c34, 0xed998d}, - {0x83369c35, 0xed998e}, - {0x83369c36, 0xed998f}, - {0x83369c37, 0xed9990}, - {0x83369c38, 0xed9991}, - {0x83369c39, 0xed9992}, - {0x83369d30, 0xed9993}, - {0x83369d31, 0xed9994}, - {0x83369d32, 0xed9995}, - {0x83369d33, 0xed9996}, - {0x83369d34, 0xed9997}, - {0x83369d35, 0xed9998}, - {0x83369d36, 0xed9999}, - {0x83369d37, 0xed999a}, - {0x83369d38, 0xed999b}, - {0x83369d39, 0xed999c}, - {0x83369e30, 0xed999d}, - {0x83369e31, 0xed999e}, - {0x83369e32, 0xed999f}, - {0x83369e33, 0xed99a0}, - {0x83369e34, 0xed99a1}, - {0x83369e35, 0xed99a2}, - {0x83369e36, 0xed99a3}, - {0x83369e37, 0xed99a4}, - {0x83369e38, 0xed99a5}, - {0x83369e39, 0xed99a6}, - {0x83369f30, 0xed99a7}, - {0x83369f31, 0xed99a8}, - {0x83369f32, 0xed99a9}, - {0x83369f33, 0xed99aa}, - {0x83369f34, 0xed99ab}, - {0x83369f35, 0xed99ac}, - {0x83369f36, 0xed99ad}, - {0x83369f37, 0xed99ae}, - {0x83369f38, 0xed99af}, - {0x83369f39, 0xed99b0}, - {0x8336a030, 0xed99b1}, - {0x8336a031, 0xed99b2}, - {0x8336a032, 0xed99b3}, - {0x8336a033, 0xed99b4}, - {0x8336a034, 0xed99b5}, - {0x8336a035, 0xed99b6}, - {0x8336a036, 0xed99b7}, - {0x8336a037, 0xed99b8}, - {0x8336a038, 0xed99b9}, - {0x8336a039, 0xed99ba}, - {0x8336a130, 0xed99bb}, - {0x8336a131, 0xed99bc}, - {0x8336a132, 0xed99bd}, - {0x8336a133, 0xed99be}, - {0x8336a134, 0xed99bf}, - {0x8336a135, 0xed9a80}, - {0x8336a136, 0xed9a81}, - {0x8336a137, 0xed9a82}, - {0x8336a138, 0xed9a83}, - {0x8336a139, 0xed9a84}, - {0x8336a230, 0xed9a85}, - {0x8336a231, 0xed9a86}, - {0x8336a232, 0xed9a87}, - {0x8336a233, 0xed9a88}, - {0x8336a234, 0xed9a89}, - {0x8336a235, 0xed9a8a}, - {0x8336a236, 0xed9a8b}, - {0x8336a237, 0xed9a8c}, - {0x8336a238, 0xed9a8d}, - {0x8336a239, 0xed9a8e}, - {0x8336a330, 0xed9a8f}, - {0x8336a331, 0xed9a90}, - {0x8336a332, 0xed9a91}, - {0x8336a333, 0xed9a92}, - {0x8336a334, 0xed9a93}, - {0x8336a335, 0xed9a94}, - {0x8336a336, 0xed9a95}, - {0x8336a337, 0xed9a96}, - {0x8336a338, 0xed9a97}, - {0x8336a339, 0xed9a98}, - {0x8336a430, 0xed9a99}, - {0x8336a431, 0xed9a9a}, - {0x8336a432, 0xed9a9b}, - {0x8336a433, 0xed9a9c}, - {0x8336a434, 0xed9a9d}, - {0x8336a435, 0xed9a9e}, - {0x8336a436, 0xed9a9f}, - {0x8336a437, 0xed9aa0}, - {0x8336a438, 0xed9aa1}, - {0x8336a439, 0xed9aa2}, - {0x8336a530, 0xed9aa3}, - {0x8336a531, 0xed9aa4}, - {0x8336a532, 0xed9aa5}, - {0x8336a533, 0xed9aa6}, - {0x8336a534, 0xed9aa7}, - {0x8336a535, 0xed9aa8}, - {0x8336a536, 0xed9aa9}, - {0x8336a537, 0xed9aaa}, - {0x8336a538, 0xed9aab}, - {0x8336a539, 0xed9aac}, - {0x8336a630, 0xed9aad}, - {0x8336a631, 0xed9aae}, - {0x8336a632, 0xed9aaf}, - {0x8336a633, 0xed9ab0}, - {0x8336a634, 0xed9ab1}, - {0x8336a635, 0xed9ab2}, - {0x8336a636, 0xed9ab3}, - {0x8336a637, 0xed9ab4}, - {0x8336a638, 0xed9ab5}, - {0x8336a639, 0xed9ab6}, - {0x8336a730, 0xed9ab7}, - {0x8336a731, 0xed9ab8}, - {0x8336a732, 0xed9ab9}, - {0x8336a733, 0xed9aba}, - {0x8336a734, 0xed9abb}, - {0x8336a735, 0xed9abc}, - {0x8336a736, 0xed9abd}, - {0x8336a737, 0xed9abe}, - {0x8336a738, 0xed9abf}, - {0x8336a739, 0xed9b80}, - {0x8336a830, 0xed9b81}, - {0x8336a831, 0xed9b82}, - {0x8336a832, 0xed9b83}, - {0x8336a833, 0xed9b84}, - {0x8336a834, 0xed9b85}, - {0x8336a835, 0xed9b86}, - {0x8336a836, 0xed9b87}, - {0x8336a837, 0xed9b88}, - {0x8336a838, 0xed9b89}, - {0x8336a839, 0xed9b8a}, - {0x8336a930, 0xed9b8b}, - {0x8336a931, 0xed9b8c}, - {0x8336a932, 0xed9b8d}, - {0x8336a933, 0xed9b8e}, - {0x8336a934, 0xed9b8f}, - {0x8336a935, 0xed9b90}, - {0x8336a936, 0xed9b91}, - {0x8336a937, 0xed9b92}, - {0x8336a938, 0xed9b93}, - {0x8336a939, 0xed9b94}, - {0x8336aa30, 0xed9b95}, - {0x8336aa31, 0xed9b96}, - {0x8336aa32, 0xed9b97}, - {0x8336aa33, 0xed9b98}, - {0x8336aa34, 0xed9b99}, - {0x8336aa35, 0xed9b9a}, - {0x8336aa36, 0xed9b9b}, - {0x8336aa37, 0xed9b9c}, - {0x8336aa38, 0xed9b9d}, - {0x8336aa39, 0xed9b9e}, - {0x8336ab30, 0xed9b9f}, - {0x8336ab31, 0xed9ba0}, - {0x8336ab32, 0xed9ba1}, - {0x8336ab33, 0xed9ba2}, - {0x8336ab34, 0xed9ba3}, - {0x8336ab35, 0xed9ba4}, - {0x8336ab36, 0xed9ba5}, - {0x8336ab37, 0xed9ba6}, - {0x8336ab38, 0xed9ba7}, - {0x8336ab39, 0xed9ba8}, - {0x8336ac30, 0xed9ba9}, - {0x8336ac31, 0xed9baa}, - {0x8336ac32, 0xed9bab}, - {0x8336ac33, 0xed9bac}, - {0x8336ac34, 0xed9bad}, - {0x8336ac35, 0xed9bae}, - {0x8336ac36, 0xed9baf}, - {0x8336ac37, 0xed9bb0}, - {0x8336ac38, 0xed9bb1}, - {0x8336ac39, 0xed9bb2}, - {0x8336ad30, 0xed9bb3}, - {0x8336ad31, 0xed9bb4}, - {0x8336ad32, 0xed9bb5}, - {0x8336ad33, 0xed9bb6}, - {0x8336ad34, 0xed9bb7}, - {0x8336ad35, 0xed9bb8}, - {0x8336ad36, 0xed9bb9}, - {0x8336ad37, 0xed9bba}, - {0x8336ad38, 0xed9bbb}, - {0x8336ad39, 0xed9bbc}, - {0x8336ae30, 0xed9bbd}, - {0x8336ae31, 0xed9bbe}, - {0x8336ae32, 0xed9bbf}, - {0x8336ae33, 0xed9c80}, - {0x8336ae34, 0xed9c81}, - {0x8336ae35, 0xed9c82}, - {0x8336ae36, 0xed9c83}, - {0x8336ae37, 0xed9c84}, - {0x8336ae38, 0xed9c85}, - {0x8336ae39, 0xed9c86}, - {0x8336af30, 0xed9c87}, - {0x8336af31, 0xed9c88}, - {0x8336af32, 0xed9c89}, - {0x8336af33, 0xed9c8a}, - {0x8336af34, 0xed9c8b}, - {0x8336af35, 0xed9c8c}, - {0x8336af36, 0xed9c8d}, - {0x8336af37, 0xed9c8e}, - {0x8336af38, 0xed9c8f}, - {0x8336af39, 0xed9c90}, - {0x8336b030, 0xed9c91}, - {0x8336b031, 0xed9c92}, - {0x8336b032, 0xed9c93}, - {0x8336b033, 0xed9c94}, - {0x8336b034, 0xed9c95}, - {0x8336b035, 0xed9c96}, - {0x8336b036, 0xed9c97}, - {0x8336b037, 0xed9c98}, - {0x8336b038, 0xed9c99}, - {0x8336b039, 0xed9c9a}, - {0x8336b130, 0xed9c9b}, - {0x8336b131, 0xed9c9c}, - {0x8336b132, 0xed9c9d}, - {0x8336b133, 0xed9c9e}, - {0x8336b134, 0xed9c9f}, - {0x8336b135, 0xed9ca0}, - {0x8336b136, 0xed9ca1}, - {0x8336b137, 0xed9ca2}, - {0x8336b138, 0xed9ca3}, - {0x8336b139, 0xed9ca4}, - {0x8336b230, 0xed9ca5}, - {0x8336b231, 0xed9ca6}, - {0x8336b232, 0xed9ca7}, - {0x8336b233, 0xed9ca8}, - {0x8336b234, 0xed9ca9}, - {0x8336b235, 0xed9caa}, - {0x8336b236, 0xed9cab}, - {0x8336b237, 0xed9cac}, - {0x8336b238, 0xed9cad}, - {0x8336b239, 0xed9cae}, - {0x8336b330, 0xed9caf}, - {0x8336b331, 0xed9cb0}, - {0x8336b332, 0xed9cb1}, - {0x8336b333, 0xed9cb2}, - {0x8336b334, 0xed9cb3}, - {0x8336b335, 0xed9cb4}, - {0x8336b336, 0xed9cb5}, - {0x8336b337, 0xed9cb6}, - {0x8336b338, 0xed9cb7}, - {0x8336b339, 0xed9cb8}, - {0x8336b430, 0xed9cb9}, - {0x8336b431, 0xed9cba}, - {0x8336b432, 0xed9cbb}, - {0x8336b433, 0xed9cbc}, - {0x8336b434, 0xed9cbd}, - {0x8336b435, 0xed9cbe}, - {0x8336b436, 0xed9cbf}, - {0x8336b437, 0xed9d80}, - {0x8336b438, 0xed9d81}, - {0x8336b439, 0xed9d82}, - {0x8336b530, 0xed9d83}, - {0x8336b531, 0xed9d84}, - {0x8336b532, 0xed9d85}, - {0x8336b533, 0xed9d86}, - {0x8336b534, 0xed9d87}, - {0x8336b535, 0xed9d88}, - {0x8336b536, 0xed9d89}, - {0x8336b537, 0xed9d8a}, - {0x8336b538, 0xed9d8b}, - {0x8336b539, 0xed9d8c}, - {0x8336b630, 0xed9d8d}, - {0x8336b631, 0xed9d8e}, - {0x8336b632, 0xed9d8f}, - {0x8336b633, 0xed9d90}, - {0x8336b634, 0xed9d91}, - {0x8336b635, 0xed9d92}, - {0x8336b636, 0xed9d93}, - {0x8336b637, 0xed9d94}, - {0x8336b638, 0xed9d95}, - {0x8336b639, 0xed9d96}, - {0x8336b730, 0xed9d97}, - {0x8336b731, 0xed9d98}, - {0x8336b732, 0xed9d99}, - {0x8336b733, 0xed9d9a}, - {0x8336b734, 0xed9d9b}, - {0x8336b735, 0xed9d9c}, - {0x8336b736, 0xed9d9d}, - {0x8336b737, 0xed9d9e}, - {0x8336b738, 0xed9d9f}, - {0x8336b739, 0xed9da0}, - {0x8336b830, 0xed9da1}, - {0x8336b831, 0xed9da2}, - {0x8336b832, 0xed9da3}, - {0x8336b833, 0xed9da4}, - {0x8336b834, 0xed9da5}, - {0x8336b835, 0xed9da6}, - {0x8336b836, 0xed9da7}, - {0x8336b837, 0xed9da8}, - {0x8336b838, 0xed9da9}, - {0x8336b839, 0xed9daa}, - {0x8336b930, 0xed9dab}, - {0x8336b931, 0xed9dac}, - {0x8336b932, 0xed9dad}, - {0x8336b933, 0xed9dae}, - {0x8336b934, 0xed9daf}, - {0x8336b935, 0xed9db0}, - {0x8336b936, 0xed9db1}, - {0x8336b937, 0xed9db2}, - {0x8336b938, 0xed9db3}, - {0x8336b939, 0xed9db4}, - {0x8336ba30, 0xed9db5}, - {0x8336ba31, 0xed9db6}, - {0x8336ba32, 0xed9db7}, - {0x8336ba33, 0xed9db8}, - {0x8336ba34, 0xed9db9}, - {0x8336ba35, 0xed9dba}, - {0x8336ba36, 0xed9dbb}, - {0x8336ba37, 0xed9dbc}, - {0x8336ba38, 0xed9dbd}, - {0x8336ba39, 0xed9dbe}, - {0x8336bb30, 0xed9dbf}, - {0x8336bb31, 0xed9e80}, - {0x8336bb32, 0xed9e81}, - {0x8336bb33, 0xed9e82}, - {0x8336bb34, 0xed9e83}, - {0x8336bb35, 0xed9e84}, - {0x8336bb36, 0xed9e85}, - {0x8336bb37, 0xed9e86}, - {0x8336bb38, 0xed9e87}, - {0x8336bb39, 0xed9e88}, - {0x8336bc30, 0xed9e89}, - {0x8336bc31, 0xed9e8a}, - {0x8336bc32, 0xed9e8b}, - {0x8336bc33, 0xed9e8c}, - {0x8336bc34, 0xed9e8d}, - {0x8336bc35, 0xed9e8e}, - {0x8336bc36, 0xed9e8f}, - {0x8336bc37, 0xed9e90}, - {0x8336bc38, 0xed9e91}, - {0x8336bc39, 0xed9e92}, - {0x8336bd30, 0xed9e93}, - {0x8336bd31, 0xed9e94}, - {0x8336bd32, 0xed9e95}, - {0x8336bd33, 0xed9e96}, - {0x8336bd34, 0xed9e97}, - {0x8336bd35, 0xed9e98}, - {0x8336bd36, 0xed9e99}, - {0x8336bd37, 0xed9e9a}, - {0x8336bd38, 0xed9e9b}, - {0x8336bd39, 0xed9e9c}, - {0x8336be30, 0xed9e9d}, - {0x8336be31, 0xed9e9e}, - {0x8336be32, 0xed9e9f}, - {0x8336be33, 0xed9ea0}, - {0x8336be34, 0xed9ea1}, - {0x8336be35, 0xed9ea2}, - {0x8336be36, 0xed9ea3}, - {0x8336be37, 0xed9ea4}, - {0x8336be38, 0xed9ea5}, - {0x8336be39, 0xed9ea6}, - {0x8336bf30, 0xed9ea7}, - {0x8336bf31, 0xed9ea8}, - {0x8336bf32, 0xed9ea9}, - {0x8336bf33, 0xed9eaa}, - {0x8336bf34, 0xed9eab}, - {0x8336bf35, 0xed9eac}, - {0x8336bf36, 0xed9ead}, - {0x8336bf37, 0xed9eae}, - {0x8336bf38, 0xed9eaf}, - {0x8336bf39, 0xed9eb0}, - {0x8336c030, 0xed9eb1}, - {0x8336c031, 0xed9eb2}, - {0x8336c032, 0xed9eb3}, - {0x8336c033, 0xed9eb4}, - {0x8336c034, 0xed9eb5}, - {0x8336c035, 0xed9eb6}, - {0x8336c036, 0xed9eb7}, - {0x8336c037, 0xed9eb8}, - {0x8336c038, 0xed9eb9}, - {0x8336c039, 0xed9eba}, - {0x8336c130, 0xed9ebb}, - {0x8336c131, 0xed9ebc}, - {0x8336c132, 0xed9ebd}, - {0x8336c133, 0xed9ebe}, - {0x8336c134, 0xed9ebf}, - {0x8336c135, 0xed9f80}, - {0x8336c136, 0xed9f81}, - {0x8336c137, 0xed9f82}, - {0x8336c138, 0xed9f83}, - {0x8336c139, 0xed9f84}, - {0x8336c230, 0xed9f85}, - {0x8336c231, 0xed9f86}, - {0x8336c232, 0xed9f87}, - {0x8336c233, 0xed9f88}, - {0x8336c234, 0xed9f89}, - {0x8336c235, 0xed9f8a}, - {0x8336c236, 0xed9f8b}, - {0x8336c237, 0xed9f8c}, - {0x8336c238, 0xed9f8d}, - {0x8336c239, 0xed9f8e}, - {0x8336c330, 0xed9f8f}, - {0x8336c331, 0xed9f90}, - {0x8336c332, 0xed9f91}, - {0x8336c333, 0xed9f92}, - {0x8336c334, 0xed9f93}, - {0x8336c335, 0xed9f94}, - {0x8336c336, 0xed9f95}, - {0x8336c337, 0xed9f96}, - {0x8336c338, 0xed9f97}, - {0x8336c339, 0xed9f98}, - {0x8336c430, 0xed9f99}, - {0x8336c431, 0xed9f9a}, - {0x8336c432, 0xed9f9b}, - {0x8336c433, 0xed9f9c}, - {0x8336c434, 0xed9f9d}, - {0x8336c435, 0xed9f9e}, - {0x8336c436, 0xed9f9f}, - {0x8336c437, 0xed9fa0}, - {0x8336c438, 0xed9fa1}, - {0x8336c439, 0xed9fa2}, - {0x8336c530, 0xed9fa3}, - {0x8336c531, 0xed9fa4}, - {0x8336c532, 0xed9fa5}, - {0x8336c533, 0xed9fa6}, - {0x8336c534, 0xed9fa7}, - {0x8336c535, 0xed9fa8}, - {0x8336c536, 0xed9fa9}, - {0x8336c537, 0xed9faa}, - {0x8336c538, 0xed9fab}, - {0x8336c539, 0xed9fac}, - {0x8336c630, 0xed9fad}, - {0x8336c631, 0xed9fae}, - {0x8336c632, 0xed9faf}, - {0x8336c633, 0xed9fb0}, - {0x8336c634, 0xed9fb1}, - {0x8336c635, 0xed9fb2}, - {0x8336c636, 0xed9fb3}, - {0x8336c637, 0xed9fb4}, - {0x8336c638, 0xed9fb5}, - {0x8336c639, 0xed9fb6}, - {0x8336c730, 0xed9fb7}, - {0x8336c731, 0xed9fb8}, - {0x8336c732, 0xed9fb9}, - {0x8336c733, 0xed9fba}, - {0x8336c734, 0xed9fbb}, - {0x8336c735, 0xed9fbc}, - {0x8336c736, 0xed9fbd}, - {0x8336c737, 0xed9fbe}, - {0x8336c738, 0xed9fbf}, {0x8336c739, 0xee9dac}, {0x8336c830, 0xee9f88}, {0x8336c831, 0xee9fa7}, @@ -57489,4301 +30213,6 @@ static pg_local_to_utf LUmapGB18030[ 63360 ] = { {0x8336cf37, 0xeea1a1}, {0x8336cf38, 0xeea1a2}, {0x8336cf39, 0xeea1a3}, - {0x8336d030, 0xeea1a5}, - {0x8336d031, 0xeea1a6}, - {0x8336d032, 0xeea1a7}, - {0x8336d033, 0xeea1a8}, - {0x8336d034, 0xeea1a9}, - {0x8336d035, 0xeea1aa}, - {0x8336d036, 0xeea1ab}, - {0x8336d037, 0xeea1ac}, - {0x8336d038, 0xeea1ad}, - {0x8336d039, 0xeea1ae}, - {0x8336d130, 0xeea1af}, - {0x8336d131, 0xeea1b0}, - {0x8336d132, 0xeea1b1}, - {0x8336d133, 0xeea1b2}, - {0x8336d134, 0xeea1b3}, - {0x8336d135, 0xeea1b4}, - {0x8336d136, 0xeea1b5}, - {0x8336d137, 0xeea1b6}, - {0x8336d138, 0xeea1b7}, - {0x8336d139, 0xeea1b8}, - {0x8336d230, 0xeea1b9}, - {0x8336d231, 0xeea1ba}, - {0x8336d232, 0xeea1bb}, - {0x8336d233, 0xeea1bc}, - {0x8336d234, 0xeea1bd}, - {0x8336d235, 0xeea1be}, - {0x8336d236, 0xeea1bf}, - {0x8336d237, 0xeea280}, - {0x8336d238, 0xeea281}, - {0x8336d239, 0xeea282}, - {0x8336d330, 0xeea283}, - {0x8336d331, 0xeea284}, - {0x8336d332, 0xeea285}, - {0x8336d333, 0xeea286}, - {0x8336d334, 0xeea287}, - {0x8336d335, 0xeea288}, - {0x8336d336, 0xeea289}, - {0x8336d337, 0xeea28a}, - {0x8336d338, 0xeea28b}, - {0x8336d339, 0xeea28c}, - {0x8336d430, 0xeea28d}, - {0x8336d431, 0xeea28e}, - {0x8336d432, 0xeea28f}, - {0x8336d433, 0xeea290}, - {0x8336d434, 0xeea291}, - {0x8336d435, 0xeea292}, - {0x8336d436, 0xeea293}, - {0x8336d437, 0xeea294}, - {0x8336d438, 0xeea295}, - {0x8336d439, 0xeea296}, - {0x8336d530, 0xeea297}, - {0x8336d531, 0xeea298}, - {0x8336d532, 0xeea299}, - {0x8336d533, 0xeea29a}, - {0x8336d534, 0xeea29b}, - {0x8336d535, 0xeea29c}, - {0x8336d536, 0xeea29d}, - {0x8336d537, 0xeea29e}, - {0x8336d538, 0xeea29f}, - {0x8336d539, 0xeea2a0}, - {0x8336d630, 0xeea2a1}, - {0x8336d631, 0xeea2a2}, - {0x8336d632, 0xeea2a3}, - {0x8336d633, 0xeea2a4}, - {0x8336d634, 0xeea2a5}, - {0x8336d635, 0xeea2a6}, - {0x8336d636, 0xeea2a7}, - {0x8336d637, 0xeea2a8}, - {0x8336d638, 0xeea2a9}, - {0x8336d639, 0xeea2aa}, - {0x8336d730, 0xeea2ab}, - {0x8336d731, 0xeea2ac}, - {0x8336d732, 0xeea2ad}, - {0x8336d733, 0xeea2ae}, - {0x8336d734, 0xeea2af}, - {0x8336d735, 0xeea2b0}, - {0x8336d736, 0xeea2b1}, - {0x8336d737, 0xeea2b2}, - {0x8336d738, 0xeea2b3}, - {0x8336d739, 0xeea2b4}, - {0x8336d830, 0xeea2b5}, - {0x8336d831, 0xeea2b6}, - {0x8336d832, 0xeea2b7}, - {0x8336d833, 0xeea2b8}, - {0x8336d834, 0xeea2b9}, - {0x8336d835, 0xeea2ba}, - {0x8336d836, 0xeea2bb}, - {0x8336d837, 0xeea2bc}, - {0x8336d838, 0xeea2bd}, - {0x8336d839, 0xeea2be}, - {0x8336d930, 0xeea2bf}, - {0x8336d931, 0xeea380}, - {0x8336d932, 0xeea381}, - {0x8336d933, 0xeea382}, - {0x8336d934, 0xeea383}, - {0x8336d935, 0xeea384}, - {0x8336d936, 0xeea385}, - {0x8336d937, 0xeea386}, - {0x8336d938, 0xeea387}, - {0x8336d939, 0xeea388}, - {0x8336da30, 0xeea389}, - {0x8336da31, 0xeea38a}, - {0x8336da32, 0xeea38b}, - {0x8336da33, 0xeea38c}, - {0x8336da34, 0xeea38d}, - {0x8336da35, 0xeea38e}, - {0x8336da36, 0xeea38f}, - {0x8336da37, 0xeea390}, - {0x8336da38, 0xeea391}, - {0x8336da39, 0xeea392}, - {0x8336db30, 0xeea393}, - {0x8336db31, 0xeea394}, - {0x8336db32, 0xeea395}, - {0x8336db33, 0xeea396}, - {0x8336db34, 0xeea397}, - {0x8336db35, 0xeea398}, - {0x8336db36, 0xeea399}, - {0x8336db37, 0xeea39a}, - {0x8336db38, 0xeea39b}, - {0x8336db39, 0xeea39c}, - {0x8336dc30, 0xeea39d}, - {0x8336dc31, 0xeea39e}, - {0x8336dc32, 0xeea39f}, - {0x8336dc33, 0xeea3a0}, - {0x8336dc34, 0xeea3a1}, - {0x8336dc35, 0xeea3a2}, - {0x8336dc36, 0xeea3a3}, - {0x8336dc37, 0xeea3a4}, - {0x8336dc38, 0xeea3a5}, - {0x8336dc39, 0xeea3a6}, - {0x8336dd30, 0xeea3a7}, - {0x8336dd31, 0xeea3a8}, - {0x8336dd32, 0xeea3a9}, - {0x8336dd33, 0xeea3aa}, - {0x8336dd34, 0xeea3ab}, - {0x8336dd35, 0xeea3ac}, - {0x8336dd36, 0xeea3ad}, - {0x8336dd37, 0xeea3ae}, - {0x8336dd38, 0xeea3af}, - {0x8336dd39, 0xeea3b0}, - {0x8336de30, 0xeea3b1}, - {0x8336de31, 0xeea3b2}, - {0x8336de32, 0xeea3b3}, - {0x8336de33, 0xeea3b4}, - {0x8336de34, 0xeea3b5}, - {0x8336de35, 0xeea3b6}, - {0x8336de36, 0xeea3b7}, - {0x8336de37, 0xeea3b8}, - {0x8336de38, 0xeea3b9}, - {0x8336de39, 0xeea3ba}, - {0x8336df30, 0xeea3bb}, - {0x8336df31, 0xeea3bc}, - {0x8336df32, 0xeea3bd}, - {0x8336df33, 0xeea3be}, - {0x8336df34, 0xeea3bf}, - {0x8336df35, 0xeea480}, - {0x8336df36, 0xeea481}, - {0x8336df37, 0xeea482}, - {0x8336df38, 0xeea483}, - {0x8336df39, 0xeea484}, - {0x8336e030, 0xeea485}, - {0x8336e031, 0xeea486}, - {0x8336e032, 0xeea487}, - {0x8336e033, 0xeea488}, - {0x8336e034, 0xeea489}, - {0x8336e035, 0xeea48a}, - {0x8336e036, 0xeea48b}, - {0x8336e037, 0xeea48c}, - {0x8336e038, 0xeea48d}, - {0x8336e039, 0xeea48e}, - {0x8336e130, 0xeea48f}, - {0x8336e131, 0xeea490}, - {0x8336e132, 0xeea491}, - {0x8336e133, 0xeea492}, - {0x8336e134, 0xeea493}, - {0x8336e135, 0xeea494}, - {0x8336e136, 0xeea495}, - {0x8336e137, 0xeea496}, - {0x8336e138, 0xeea497}, - {0x8336e139, 0xeea498}, - {0x8336e230, 0xeea499}, - {0x8336e231, 0xeea49a}, - {0x8336e232, 0xeea49b}, - {0x8336e233, 0xeea49c}, - {0x8336e234, 0xeea49d}, - {0x8336e235, 0xeea49e}, - {0x8336e236, 0xeea49f}, - {0x8336e237, 0xeea4a0}, - {0x8336e238, 0xeea4a1}, - {0x8336e239, 0xeea4a2}, - {0x8336e330, 0xeea4a3}, - {0x8336e331, 0xeea4a4}, - {0x8336e332, 0xeea4a5}, - {0x8336e333, 0xeea4a6}, - {0x8336e334, 0xeea4a7}, - {0x8336e335, 0xeea4a8}, - {0x8336e336, 0xeea4a9}, - {0x8336e337, 0xeea4aa}, - {0x8336e338, 0xeea4ab}, - {0x8336e339, 0xeea4ac}, - {0x8336e430, 0xeea4ad}, - {0x8336e431, 0xeea4ae}, - {0x8336e432, 0xeea4af}, - {0x8336e433, 0xeea4b0}, - {0x8336e434, 0xeea4b1}, - {0x8336e435, 0xeea4b2}, - {0x8336e436, 0xeea4b3}, - {0x8336e437, 0xeea4b4}, - {0x8336e438, 0xeea4b5}, - {0x8336e439, 0xeea4b6}, - {0x8336e530, 0xeea4b7}, - {0x8336e531, 0xeea4b8}, - {0x8336e532, 0xeea4b9}, - {0x8336e533, 0xeea4ba}, - {0x8336e534, 0xeea4bb}, - {0x8336e535, 0xeea4bc}, - {0x8336e536, 0xeea4bd}, - {0x8336e537, 0xeea4be}, - {0x8336e538, 0xeea4bf}, - {0x8336e539, 0xeea580}, - {0x8336e630, 0xeea581}, - {0x8336e631, 0xeea582}, - {0x8336e632, 0xeea583}, - {0x8336e633, 0xeea584}, - {0x8336e634, 0xeea585}, - {0x8336e635, 0xeea586}, - {0x8336e636, 0xeea587}, - {0x8336e637, 0xeea588}, - {0x8336e638, 0xeea589}, - {0x8336e639, 0xeea58a}, - {0x8336e730, 0xeea58b}, - {0x8336e731, 0xeea58c}, - {0x8336e732, 0xeea58d}, - {0x8336e733, 0xeea58e}, - {0x8336e734, 0xeea58f}, - {0x8336e735, 0xeea590}, - {0x8336e736, 0xeea591}, - {0x8336e737, 0xeea592}, - {0x8336e738, 0xeea593}, - {0x8336e739, 0xeea594}, - {0x8336e830, 0xeea595}, - {0x8336e831, 0xeea596}, - {0x8336e832, 0xeea597}, - {0x8336e833, 0xeea598}, - {0x8336e834, 0xeea599}, - {0x8336e835, 0xeea59a}, - {0x8336e836, 0xeea59b}, - {0x8336e837, 0xeea59c}, - {0x8336e838, 0xeea59d}, - {0x8336e839, 0xeea59e}, - {0x8336e930, 0xeea59f}, - {0x8336e931, 0xeea5a0}, - {0x8336e932, 0xeea5a1}, - {0x8336e933, 0xeea5a2}, - {0x8336e934, 0xeea5a3}, - {0x8336e935, 0xeea5a4}, - {0x8336e936, 0xeea5a5}, - {0x8336e937, 0xeea5a6}, - {0x8336e938, 0xeea5a7}, - {0x8336e939, 0xeea5a8}, - {0x8336ea30, 0xeea5a9}, - {0x8336ea31, 0xeea5aa}, - {0x8336ea32, 0xeea5ab}, - {0x8336ea33, 0xeea5ac}, - {0x8336ea34, 0xeea5ad}, - {0x8336ea35, 0xeea5ae}, - {0x8336ea36, 0xeea5af}, - {0x8336ea37, 0xeea5b0}, - {0x8336ea38, 0xeea5b1}, - {0x8336ea39, 0xeea5b2}, - {0x8336eb30, 0xeea5b3}, - {0x8336eb31, 0xeea5b4}, - {0x8336eb32, 0xeea5b5}, - {0x8336eb33, 0xeea5b6}, - {0x8336eb34, 0xeea5b7}, - {0x8336eb35, 0xeea5b8}, - {0x8336eb36, 0xeea5b9}, - {0x8336eb37, 0xeea5ba}, - {0x8336eb38, 0xeea5bb}, - {0x8336eb39, 0xeea5bc}, - {0x8336ec30, 0xeea5bd}, - {0x8336ec31, 0xeea5be}, - {0x8336ec32, 0xeea5bf}, - {0x8336ec33, 0xeea680}, - {0x8336ec34, 0xeea681}, - {0x8336ec35, 0xeea682}, - {0x8336ec36, 0xeea683}, - {0x8336ec37, 0xeea684}, - {0x8336ec38, 0xeea685}, - {0x8336ec39, 0xeea686}, - {0x8336ed30, 0xeea687}, - {0x8336ed31, 0xeea688}, - {0x8336ed32, 0xeea689}, - {0x8336ed33, 0xeea68a}, - {0x8336ed34, 0xeea68b}, - {0x8336ed35, 0xeea68c}, - {0x8336ed36, 0xeea68d}, - {0x8336ed37, 0xeea68e}, - {0x8336ed38, 0xeea68f}, - {0x8336ed39, 0xeea690}, - {0x8336ee30, 0xeea691}, - {0x8336ee31, 0xeea692}, - {0x8336ee32, 0xeea693}, - {0x8336ee33, 0xeea694}, - {0x8336ee34, 0xeea695}, - {0x8336ee35, 0xeea696}, - {0x8336ee36, 0xeea697}, - {0x8336ee37, 0xeea698}, - {0x8336ee38, 0xeea699}, - {0x8336ee39, 0xeea69a}, - {0x8336ef30, 0xeea69b}, - {0x8336ef31, 0xeea69c}, - {0x8336ef32, 0xeea69d}, - {0x8336ef33, 0xeea69e}, - {0x8336ef34, 0xeea69f}, - {0x8336ef35, 0xeea6a0}, - {0x8336ef36, 0xeea6a1}, - {0x8336ef37, 0xeea6a2}, - {0x8336ef38, 0xeea6a3}, - {0x8336ef39, 0xeea6a4}, - {0x8336f030, 0xeea6a5}, - {0x8336f031, 0xeea6a6}, - {0x8336f032, 0xeea6a7}, - {0x8336f033, 0xeea6a8}, - {0x8336f034, 0xeea6a9}, - {0x8336f035, 0xeea6aa}, - {0x8336f036, 0xeea6ab}, - {0x8336f037, 0xeea6ac}, - {0x8336f038, 0xeea6ad}, - {0x8336f039, 0xeea6ae}, - {0x8336f130, 0xeea6af}, - {0x8336f131, 0xeea6b0}, - {0x8336f132, 0xeea6b1}, - {0x8336f133, 0xeea6b2}, - {0x8336f134, 0xeea6b3}, - {0x8336f135, 0xeea6b4}, - {0x8336f136, 0xeea6b5}, - {0x8336f137, 0xeea6b6}, - {0x8336f138, 0xeea6b7}, - {0x8336f139, 0xeea6b8}, - {0x8336f230, 0xeea6b9}, - {0x8336f231, 0xeea6ba}, - {0x8336f232, 0xeea6bb}, - {0x8336f233, 0xeea6bc}, - {0x8336f234, 0xeea6bd}, - {0x8336f235, 0xeea6be}, - {0x8336f236, 0xeea6bf}, - {0x8336f237, 0xeea780}, - {0x8336f238, 0xeea781}, - {0x8336f239, 0xeea782}, - {0x8336f330, 0xeea783}, - {0x8336f331, 0xeea784}, - {0x8336f332, 0xeea785}, - {0x8336f333, 0xeea786}, - {0x8336f334, 0xeea787}, - {0x8336f335, 0xeea788}, - {0x8336f336, 0xeea789}, - {0x8336f337, 0xeea78a}, - {0x8336f338, 0xeea78b}, - {0x8336f339, 0xeea78c}, - {0x8336f430, 0xeea78d}, - {0x8336f431, 0xeea78e}, - {0x8336f432, 0xeea78f}, - {0x8336f433, 0xeea790}, - {0x8336f434, 0xeea791}, - {0x8336f435, 0xeea792}, - {0x8336f436, 0xeea793}, - {0x8336f437, 0xeea794}, - {0x8336f438, 0xeea795}, - {0x8336f439, 0xeea796}, - {0x8336f530, 0xeea797}, - {0x8336f531, 0xeea798}, - {0x8336f532, 0xeea799}, - {0x8336f533, 0xeea79a}, - {0x8336f534, 0xeea79b}, - {0x8336f535, 0xeea79c}, - {0x8336f536, 0xeea79d}, - {0x8336f537, 0xeea79e}, - {0x8336f538, 0xeea79f}, - {0x8336f539, 0xeea7a0}, - {0x8336f630, 0xeea7a1}, - {0x8336f631, 0xeea7a2}, - {0x8336f632, 0xeea7a3}, - {0x8336f633, 0xeea7a4}, - {0x8336f634, 0xeea7a5}, - {0x8336f635, 0xeea7a6}, - {0x8336f636, 0xeea7a7}, - {0x8336f637, 0xeea7a8}, - {0x8336f638, 0xeea7a9}, - {0x8336f639, 0xeea7aa}, - {0x8336f730, 0xeea7ab}, - {0x8336f731, 0xeea7ac}, - {0x8336f732, 0xeea7ad}, - {0x8336f733, 0xeea7ae}, - {0x8336f734, 0xeea7af}, - {0x8336f735, 0xeea7b0}, - {0x8336f736, 0xeea7b1}, - {0x8336f737, 0xeea7b2}, - {0x8336f738, 0xeea7b3}, - {0x8336f739, 0xeea7b4}, - {0x8336f830, 0xeea7b5}, - {0x8336f831, 0xeea7b6}, - {0x8336f832, 0xeea7b7}, - {0x8336f833, 0xeea7b8}, - {0x8336f834, 0xeea7b9}, - {0x8336f835, 0xeea7ba}, - {0x8336f836, 0xeea7bb}, - {0x8336f837, 0xeea7bc}, - {0x8336f838, 0xeea7bd}, - {0x8336f839, 0xeea7be}, - {0x8336f930, 0xeea7bf}, - {0x8336f931, 0xeea880}, - {0x8336f932, 0xeea881}, - {0x8336f933, 0xeea882}, - {0x8336f934, 0xeea883}, - {0x8336f935, 0xeea884}, - {0x8336f936, 0xeea885}, - {0x8336f937, 0xeea886}, - {0x8336f938, 0xeea887}, - {0x8336f939, 0xeea888}, - {0x8336fa30, 0xeea889}, - {0x8336fa31, 0xeea88a}, - {0x8336fa32, 0xeea88b}, - {0x8336fa33, 0xeea88c}, - {0x8336fa34, 0xeea88d}, - {0x8336fa35, 0xeea88e}, - {0x8336fa36, 0xeea88f}, - {0x8336fa37, 0xeea890}, - {0x8336fa38, 0xeea891}, - {0x8336fa39, 0xeea892}, - {0x8336fb30, 0xeea893}, - {0x8336fb31, 0xeea894}, - {0x8336fb32, 0xeea895}, - {0x8336fb33, 0xeea896}, - {0x8336fb34, 0xeea897}, - {0x8336fb35, 0xeea898}, - {0x8336fb36, 0xeea899}, - {0x8336fb37, 0xeea89a}, - {0x8336fb38, 0xeea89b}, - {0x8336fb39, 0xeea89c}, - {0x8336fc30, 0xeea89d}, - {0x8336fc31, 0xeea89e}, - {0x8336fc32, 0xeea89f}, - {0x8336fc33, 0xeea8a0}, - {0x8336fc34, 0xeea8a1}, - {0x8336fc35, 0xeea8a2}, - {0x8336fc36, 0xeea8a3}, - {0x8336fc37, 0xeea8a4}, - {0x8336fc38, 0xeea8a5}, - {0x8336fc39, 0xeea8a6}, - {0x8336fd30, 0xeea8a7}, - {0x8336fd31, 0xeea8a8}, - {0x8336fd32, 0xeea8a9}, - {0x8336fd33, 0xeea8aa}, - {0x8336fd34, 0xeea8ab}, - {0x8336fd35, 0xeea8ac}, - {0x8336fd36, 0xeea8ad}, - {0x8336fd37, 0xeea8ae}, - {0x8336fd38, 0xeea8af}, - {0x8336fd39, 0xeea8b0}, - {0x8336fe30, 0xeea8b1}, - {0x8336fe31, 0xeea8b2}, - {0x8336fe32, 0xeea8b3}, - {0x8336fe33, 0xeea8b4}, - {0x8336fe34, 0xeea8b5}, - {0x8336fe35, 0xeea8b6}, - {0x8336fe36, 0xeea8b7}, - {0x8336fe37, 0xeea8b8}, - {0x8336fe38, 0xeea8b9}, - {0x8336fe39, 0xeea8ba}, - {0x83378130, 0xeea8bb}, - {0x83378131, 0xeea8bc}, - {0x83378132, 0xeea8bd}, - {0x83378133, 0xeea8be}, - {0x83378134, 0xeea8bf}, - {0x83378135, 0xeea980}, - {0x83378136, 0xeea981}, - {0x83378137, 0xeea982}, - {0x83378138, 0xeea983}, - {0x83378139, 0xeea984}, - {0x83378230, 0xeea985}, - {0x83378231, 0xeea986}, - {0x83378232, 0xeea987}, - {0x83378233, 0xeea988}, - {0x83378234, 0xeea989}, - {0x83378235, 0xeea98a}, - {0x83378236, 0xeea98b}, - {0x83378237, 0xeea98c}, - {0x83378238, 0xeea98d}, - {0x83378239, 0xeea98e}, - {0x83378330, 0xeea98f}, - {0x83378331, 0xeea990}, - {0x83378332, 0xeea991}, - {0x83378333, 0xeea992}, - {0x83378334, 0xeea993}, - {0x83378335, 0xeea994}, - {0x83378336, 0xeea995}, - {0x83378337, 0xeea996}, - {0x83378338, 0xeea997}, - {0x83378339, 0xeea998}, - {0x83378430, 0xeea999}, - {0x83378431, 0xeea99a}, - {0x83378432, 0xeea99b}, - {0x83378433, 0xeea99c}, - {0x83378434, 0xeea99d}, - {0x83378435, 0xeea99e}, - {0x83378436, 0xeea99f}, - {0x83378437, 0xeea9a0}, - {0x83378438, 0xeea9a1}, - {0x83378439, 0xeea9a2}, - {0x83378530, 0xeea9a3}, - {0x83378531, 0xeea9a4}, - {0x83378532, 0xeea9a5}, - {0x83378533, 0xeea9a6}, - {0x83378534, 0xeea9a7}, - {0x83378535, 0xeea9a8}, - {0x83378536, 0xeea9a9}, - {0x83378537, 0xeea9aa}, - {0x83378538, 0xeea9ab}, - {0x83378539, 0xeea9ac}, - {0x83378630, 0xeea9ad}, - {0x83378631, 0xeea9ae}, - {0x83378632, 0xeea9af}, - {0x83378633, 0xeea9b0}, - {0x83378634, 0xeea9b1}, - {0x83378635, 0xeea9b2}, - {0x83378636, 0xeea9b3}, - {0x83378637, 0xeea9b4}, - {0x83378638, 0xeea9b5}, - {0x83378639, 0xeea9b6}, - {0x83378730, 0xeea9b7}, - {0x83378731, 0xeea9b8}, - {0x83378732, 0xeea9b9}, - {0x83378733, 0xeea9ba}, - {0x83378734, 0xeea9bb}, - {0x83378735, 0xeea9bc}, - {0x83378736, 0xeea9bd}, - {0x83378737, 0xeea9be}, - {0x83378738, 0xeea9bf}, - {0x83378739, 0xeeaa80}, - {0x83378830, 0xeeaa81}, - {0x83378831, 0xeeaa82}, - {0x83378832, 0xeeaa83}, - {0x83378833, 0xeeaa84}, - {0x83378834, 0xeeaa85}, - {0x83378835, 0xeeaa86}, - {0x83378836, 0xeeaa87}, - {0x83378837, 0xeeaa88}, - {0x83378838, 0xeeaa89}, - {0x83378839, 0xeeaa8a}, - {0x83378930, 0xeeaa8b}, - {0x83378931, 0xeeaa8c}, - {0x83378932, 0xeeaa8d}, - {0x83378933, 0xeeaa8e}, - {0x83378934, 0xeeaa8f}, - {0x83378935, 0xeeaa90}, - {0x83378936, 0xeeaa91}, - {0x83378937, 0xeeaa92}, - {0x83378938, 0xeeaa93}, - {0x83378939, 0xeeaa94}, - {0x83378a30, 0xeeaa95}, - {0x83378a31, 0xeeaa96}, - {0x83378a32, 0xeeaa97}, - {0x83378a33, 0xeeaa98}, - {0x83378a34, 0xeeaa99}, - {0x83378a35, 0xeeaa9a}, - {0x83378a36, 0xeeaa9b}, - {0x83378a37, 0xeeaa9c}, - {0x83378a38, 0xeeaa9d}, - {0x83378a39, 0xeeaa9e}, - {0x83378b30, 0xeeaa9f}, - {0x83378b31, 0xeeaaa0}, - {0x83378b32, 0xeeaaa1}, - {0x83378b33, 0xeeaaa2}, - {0x83378b34, 0xeeaaa3}, - {0x83378b35, 0xeeaaa4}, - {0x83378b36, 0xeeaaa5}, - {0x83378b37, 0xeeaaa6}, - {0x83378b38, 0xeeaaa7}, - {0x83378b39, 0xeeaaa8}, - {0x83378c30, 0xeeaaa9}, - {0x83378c31, 0xeeaaaa}, - {0x83378c32, 0xeeaaab}, - {0x83378c33, 0xeeaaac}, - {0x83378c34, 0xeeaaad}, - {0x83378c35, 0xeeaaae}, - {0x83378c36, 0xeeaaaf}, - {0x83378c37, 0xeeaab0}, - {0x83378c38, 0xeeaab1}, - {0x83378c39, 0xeeaab2}, - {0x83378d30, 0xeeaab3}, - {0x83378d31, 0xeeaab4}, - {0x83378d32, 0xeeaab5}, - {0x83378d33, 0xeeaab6}, - {0x83378d34, 0xeeaab7}, - {0x83378d35, 0xeeaab8}, - {0x83378d36, 0xeeaab9}, - {0x83378d37, 0xeeaaba}, - {0x83378d38, 0xeeaabb}, - {0x83378d39, 0xeeaabc}, - {0x83378e30, 0xeeaabd}, - {0x83378e31, 0xeeaabe}, - {0x83378e32, 0xeeaabf}, - {0x83378e33, 0xeeab80}, - {0x83378e34, 0xeeab81}, - {0x83378e35, 0xeeab82}, - {0x83378e36, 0xeeab83}, - {0x83378e37, 0xeeab84}, - {0x83378e38, 0xeeab85}, - {0x83378e39, 0xeeab86}, - {0x83378f30, 0xeeab87}, - {0x83378f31, 0xeeab88}, - {0x83378f32, 0xeeab89}, - {0x83378f33, 0xeeab8a}, - {0x83378f34, 0xeeab8b}, - {0x83378f35, 0xeeab8c}, - {0x83378f36, 0xeeab8d}, - {0x83378f37, 0xeeab8e}, - {0x83378f38, 0xeeab8f}, - {0x83378f39, 0xeeab90}, - {0x83379030, 0xeeab91}, - {0x83379031, 0xeeab92}, - {0x83379032, 0xeeab93}, - {0x83379033, 0xeeab94}, - {0x83379034, 0xeeab95}, - {0x83379035, 0xeeab96}, - {0x83379036, 0xeeab97}, - {0x83379037, 0xeeab98}, - {0x83379038, 0xeeab99}, - {0x83379039, 0xeeab9a}, - {0x83379130, 0xeeab9b}, - {0x83379131, 0xeeab9c}, - {0x83379132, 0xeeab9d}, - {0x83379133, 0xeeab9e}, - {0x83379134, 0xeeab9f}, - {0x83379135, 0xeeaba0}, - {0x83379136, 0xeeaba1}, - {0x83379137, 0xeeaba2}, - {0x83379138, 0xeeaba3}, - {0x83379139, 0xeeaba4}, - {0x83379230, 0xeeaba5}, - {0x83379231, 0xeeaba6}, - {0x83379232, 0xeeaba7}, - {0x83379233, 0xeeaba8}, - {0x83379234, 0xeeaba9}, - {0x83379235, 0xeeabaa}, - {0x83379236, 0xeeabab}, - {0x83379237, 0xeeabac}, - {0x83379238, 0xeeabad}, - {0x83379239, 0xeeabae}, - {0x83379330, 0xeeabaf}, - {0x83379331, 0xeeabb0}, - {0x83379332, 0xeeabb1}, - {0x83379333, 0xeeabb2}, - {0x83379334, 0xeeabb3}, - {0x83379335, 0xeeabb4}, - {0x83379336, 0xeeabb5}, - {0x83379337, 0xeeabb6}, - {0x83379338, 0xeeabb7}, - {0x83379339, 0xeeabb8}, - {0x83379430, 0xeeabb9}, - {0x83379431, 0xeeabba}, - {0x83379432, 0xeeabbb}, - {0x83379433, 0xeeabbc}, - {0x83379434, 0xeeabbd}, - {0x83379435, 0xeeabbe}, - {0x83379436, 0xeeabbf}, - {0x83379437, 0xeeac80}, - {0x83379438, 0xeeac81}, - {0x83379439, 0xeeac82}, - {0x83379530, 0xeeac83}, - {0x83379531, 0xeeac84}, - {0x83379532, 0xeeac85}, - {0x83379533, 0xeeac86}, - {0x83379534, 0xeeac87}, - {0x83379535, 0xeeac88}, - {0x83379536, 0xeeac89}, - {0x83379537, 0xeeac8a}, - {0x83379538, 0xeeac8b}, - {0x83379539, 0xeeac8c}, - {0x83379630, 0xeeac8d}, - {0x83379631, 0xeeac8e}, - {0x83379632, 0xeeac8f}, - {0x83379633, 0xeeac90}, - {0x83379634, 0xeeac91}, - {0x83379635, 0xeeac92}, - {0x83379636, 0xeeac93}, - {0x83379637, 0xeeac94}, - {0x83379638, 0xeeac95}, - {0x83379639, 0xeeac96}, - {0x83379730, 0xeeac97}, - {0x83379731, 0xeeac98}, - {0x83379732, 0xeeac99}, - {0x83379733, 0xeeac9a}, - {0x83379734, 0xeeac9b}, - {0x83379735, 0xeeac9c}, - {0x83379736, 0xeeac9d}, - {0x83379737, 0xeeac9e}, - {0x83379738, 0xeeac9f}, - {0x83379739, 0xeeaca0}, - {0x83379830, 0xeeaca1}, - {0x83379831, 0xeeaca2}, - {0x83379832, 0xeeaca3}, - {0x83379833, 0xeeaca4}, - {0x83379834, 0xeeaca5}, - {0x83379835, 0xeeaca6}, - {0x83379836, 0xeeaca7}, - {0x83379837, 0xeeaca8}, - {0x83379838, 0xeeaca9}, - {0x83379839, 0xeeacaa}, - {0x83379930, 0xeeacab}, - {0x83379931, 0xeeacac}, - {0x83379932, 0xeeacad}, - {0x83379933, 0xeeacae}, - {0x83379934, 0xeeacaf}, - {0x83379935, 0xeeacb0}, - {0x83379936, 0xeeacb1}, - {0x83379937, 0xeeacb2}, - {0x83379938, 0xeeacb3}, - {0x83379939, 0xeeacb4}, - {0x83379a30, 0xeeacb5}, - {0x83379a31, 0xeeacb6}, - {0x83379a32, 0xeeacb7}, - {0x83379a33, 0xeeacb8}, - {0x83379a34, 0xeeacb9}, - {0x83379a35, 0xeeacba}, - {0x83379a36, 0xeeacbb}, - {0x83379a37, 0xeeacbc}, - {0x83379a38, 0xeeacbd}, - {0x83379a39, 0xeeacbe}, - {0x83379b30, 0xeeacbf}, - {0x83379b31, 0xeead80}, - {0x83379b32, 0xeead81}, - {0x83379b33, 0xeead82}, - {0x83379b34, 0xeead83}, - {0x83379b35, 0xeead84}, - {0x83379b36, 0xeead85}, - {0x83379b37, 0xeead86}, - {0x83379b38, 0xeead87}, - {0x83379b39, 0xeead88}, - {0x83379c30, 0xeead89}, - {0x83379c31, 0xeead8a}, - {0x83379c32, 0xeead8b}, - {0x83379c33, 0xeead8c}, - {0x83379c34, 0xeead8d}, - {0x83379c35, 0xeead8e}, - {0x83379c36, 0xeead8f}, - {0x83379c37, 0xeead90}, - {0x83379c38, 0xeead91}, - {0x83379c39, 0xeead92}, - {0x83379d30, 0xeead93}, - {0x83379d31, 0xeead94}, - {0x83379d32, 0xeead95}, - {0x83379d33, 0xeead96}, - {0x83379d34, 0xeead97}, - {0x83379d35, 0xeead98}, - {0x83379d36, 0xeead99}, - {0x83379d37, 0xeead9a}, - {0x83379d38, 0xeead9b}, - {0x83379d39, 0xeead9c}, - {0x83379e30, 0xeead9d}, - {0x83379e31, 0xeead9e}, - {0x83379e32, 0xeead9f}, - {0x83379e33, 0xeeada0}, - {0x83379e34, 0xeeada1}, - {0x83379e35, 0xeeada2}, - {0x83379e36, 0xeeada3}, - {0x83379e37, 0xeeada4}, - {0x83379e38, 0xeeada5}, - {0x83379e39, 0xeeada6}, - {0x83379f30, 0xeeada7}, - {0x83379f31, 0xeeada8}, - {0x83379f32, 0xeeada9}, - {0x83379f33, 0xeeadaa}, - {0x83379f34, 0xeeadab}, - {0x83379f35, 0xeeadac}, - {0x83379f36, 0xeeadad}, - {0x83379f37, 0xeeadae}, - {0x83379f38, 0xeeadaf}, - {0x83379f39, 0xeeadb0}, - {0x8337a030, 0xeeadb1}, - {0x8337a031, 0xeeadb2}, - {0x8337a032, 0xeeadb3}, - {0x8337a033, 0xeeadb4}, - {0x8337a034, 0xeeadb5}, - {0x8337a035, 0xeeadb6}, - {0x8337a036, 0xeeadb7}, - {0x8337a037, 0xeeadb8}, - {0x8337a038, 0xeeadb9}, - {0x8337a039, 0xeeadba}, - {0x8337a130, 0xeeadbb}, - {0x8337a131, 0xeeadbc}, - {0x8337a132, 0xeeadbd}, - {0x8337a133, 0xeeadbe}, - {0x8337a134, 0xeeadbf}, - {0x8337a135, 0xeeae80}, - {0x8337a136, 0xeeae81}, - {0x8337a137, 0xeeae82}, - {0x8337a138, 0xeeae83}, - {0x8337a139, 0xeeae84}, - {0x8337a230, 0xeeae85}, - {0x8337a231, 0xeeae86}, - {0x8337a232, 0xeeae87}, - {0x8337a233, 0xeeae88}, - {0x8337a234, 0xeeae89}, - {0x8337a235, 0xeeae8a}, - {0x8337a236, 0xeeae8b}, - {0x8337a237, 0xeeae8c}, - {0x8337a238, 0xeeae8d}, - {0x8337a239, 0xeeae8e}, - {0x8337a330, 0xeeae8f}, - {0x8337a331, 0xeeae90}, - {0x8337a332, 0xeeae91}, - {0x8337a333, 0xeeae92}, - {0x8337a334, 0xeeae93}, - {0x8337a335, 0xeeae94}, - {0x8337a336, 0xeeae95}, - {0x8337a337, 0xeeae96}, - {0x8337a338, 0xeeae97}, - {0x8337a339, 0xeeae98}, - {0x8337a430, 0xeeae99}, - {0x8337a431, 0xeeae9a}, - {0x8337a432, 0xeeae9b}, - {0x8337a433, 0xeeae9c}, - {0x8337a434, 0xeeae9d}, - {0x8337a435, 0xeeae9e}, - {0x8337a436, 0xeeae9f}, - {0x8337a437, 0xeeaea0}, - {0x8337a438, 0xeeaea1}, - {0x8337a439, 0xeeaea2}, - {0x8337a530, 0xeeaea3}, - {0x8337a531, 0xeeaea4}, - {0x8337a532, 0xeeaea5}, - {0x8337a533, 0xeeaea6}, - {0x8337a534, 0xeeaea7}, - {0x8337a535, 0xeeaea8}, - {0x8337a536, 0xeeaea9}, - {0x8337a537, 0xeeaeaa}, - {0x8337a538, 0xeeaeab}, - {0x8337a539, 0xeeaeac}, - {0x8337a630, 0xeeaead}, - {0x8337a631, 0xeeaeae}, - {0x8337a632, 0xeeaeaf}, - {0x8337a633, 0xeeaeb0}, - {0x8337a634, 0xeeaeb1}, - {0x8337a635, 0xeeaeb2}, - {0x8337a636, 0xeeaeb3}, - {0x8337a637, 0xeeaeb4}, - {0x8337a638, 0xeeaeb5}, - {0x8337a639, 0xeeaeb6}, - {0x8337a730, 0xeeaeb7}, - {0x8337a731, 0xeeaeb8}, - {0x8337a732, 0xeeaeb9}, - {0x8337a733, 0xeeaeba}, - {0x8337a734, 0xeeaebb}, - {0x8337a735, 0xeeaebc}, - {0x8337a736, 0xeeaebd}, - {0x8337a737, 0xeeaebe}, - {0x8337a738, 0xeeaebf}, - {0x8337a739, 0xeeaf80}, - {0x8337a830, 0xeeaf81}, - {0x8337a831, 0xeeaf82}, - {0x8337a832, 0xeeaf83}, - {0x8337a833, 0xeeaf84}, - {0x8337a834, 0xeeaf85}, - {0x8337a835, 0xeeaf86}, - {0x8337a836, 0xeeaf87}, - {0x8337a837, 0xeeaf88}, - {0x8337a838, 0xeeaf89}, - {0x8337a839, 0xeeaf8a}, - {0x8337a930, 0xeeaf8b}, - {0x8337a931, 0xeeaf8c}, - {0x8337a932, 0xeeaf8d}, - {0x8337a933, 0xeeaf8e}, - {0x8337a934, 0xeeaf8f}, - {0x8337a935, 0xeeaf90}, - {0x8337a936, 0xeeaf91}, - {0x8337a937, 0xeeaf92}, - {0x8337a938, 0xeeaf93}, - {0x8337a939, 0xeeaf94}, - {0x8337aa30, 0xeeaf95}, - {0x8337aa31, 0xeeaf96}, - {0x8337aa32, 0xeeaf97}, - {0x8337aa33, 0xeeaf98}, - {0x8337aa34, 0xeeaf99}, - {0x8337aa35, 0xeeaf9a}, - {0x8337aa36, 0xeeaf9b}, - {0x8337aa37, 0xeeaf9c}, - {0x8337aa38, 0xeeaf9d}, - {0x8337aa39, 0xeeaf9e}, - {0x8337ab30, 0xeeaf9f}, - {0x8337ab31, 0xeeafa0}, - {0x8337ab32, 0xeeafa1}, - {0x8337ab33, 0xeeafa2}, - {0x8337ab34, 0xeeafa3}, - {0x8337ab35, 0xeeafa4}, - {0x8337ab36, 0xeeafa5}, - {0x8337ab37, 0xeeafa6}, - {0x8337ab38, 0xeeafa7}, - {0x8337ab39, 0xeeafa8}, - {0x8337ac30, 0xeeafa9}, - {0x8337ac31, 0xeeafaa}, - {0x8337ac32, 0xeeafab}, - {0x8337ac33, 0xeeafac}, - {0x8337ac34, 0xeeafad}, - {0x8337ac35, 0xeeafae}, - {0x8337ac36, 0xeeafaf}, - {0x8337ac37, 0xeeafb0}, - {0x8337ac38, 0xeeafb1}, - {0x8337ac39, 0xeeafb2}, - {0x8337ad30, 0xeeafb3}, - {0x8337ad31, 0xeeafb4}, - {0x8337ad32, 0xeeafb5}, - {0x8337ad33, 0xeeafb6}, - {0x8337ad34, 0xeeafb7}, - {0x8337ad35, 0xeeafb8}, - {0x8337ad36, 0xeeafb9}, - {0x8337ad37, 0xeeafba}, - {0x8337ad38, 0xeeafbb}, - {0x8337ad39, 0xeeafbc}, - {0x8337ae30, 0xeeafbd}, - {0x8337ae31, 0xeeafbe}, - {0x8337ae32, 0xeeafbf}, - {0x8337ae33, 0xeeb080}, - {0x8337ae34, 0xeeb081}, - {0x8337ae35, 0xeeb082}, - {0x8337ae36, 0xeeb083}, - {0x8337ae37, 0xeeb084}, - {0x8337ae38, 0xeeb085}, - {0x8337ae39, 0xeeb086}, - {0x8337af30, 0xeeb087}, - {0x8337af31, 0xeeb088}, - {0x8337af32, 0xeeb089}, - {0x8337af33, 0xeeb08a}, - {0x8337af34, 0xeeb08b}, - {0x8337af35, 0xeeb08c}, - {0x8337af36, 0xeeb08d}, - {0x8337af37, 0xeeb08e}, - {0x8337af38, 0xeeb08f}, - {0x8337af39, 0xeeb090}, - {0x8337b030, 0xeeb091}, - {0x8337b031, 0xeeb092}, - {0x8337b032, 0xeeb093}, - {0x8337b033, 0xeeb094}, - {0x8337b034, 0xeeb095}, - {0x8337b035, 0xeeb096}, - {0x8337b036, 0xeeb097}, - {0x8337b037, 0xeeb098}, - {0x8337b038, 0xeeb099}, - {0x8337b039, 0xeeb09a}, - {0x8337b130, 0xeeb09b}, - {0x8337b131, 0xeeb09c}, - {0x8337b132, 0xeeb09d}, - {0x8337b133, 0xeeb09e}, - {0x8337b134, 0xeeb09f}, - {0x8337b135, 0xeeb0a0}, - {0x8337b136, 0xeeb0a1}, - {0x8337b137, 0xeeb0a2}, - {0x8337b138, 0xeeb0a3}, - {0x8337b139, 0xeeb0a4}, - {0x8337b230, 0xeeb0a5}, - {0x8337b231, 0xeeb0a6}, - {0x8337b232, 0xeeb0a7}, - {0x8337b233, 0xeeb0a8}, - {0x8337b234, 0xeeb0a9}, - {0x8337b235, 0xeeb0aa}, - {0x8337b236, 0xeeb0ab}, - {0x8337b237, 0xeeb0ac}, - {0x8337b238, 0xeeb0ad}, - {0x8337b239, 0xeeb0ae}, - {0x8337b330, 0xeeb0af}, - {0x8337b331, 0xeeb0b0}, - {0x8337b332, 0xeeb0b1}, - {0x8337b333, 0xeeb0b2}, - {0x8337b334, 0xeeb0b3}, - {0x8337b335, 0xeeb0b4}, - {0x8337b336, 0xeeb0b5}, - {0x8337b337, 0xeeb0b6}, - {0x8337b338, 0xeeb0b7}, - {0x8337b339, 0xeeb0b8}, - {0x8337b430, 0xeeb0b9}, - {0x8337b431, 0xeeb0ba}, - {0x8337b432, 0xeeb0bb}, - {0x8337b433, 0xeeb0bc}, - {0x8337b434, 0xeeb0bd}, - {0x8337b435, 0xeeb0be}, - {0x8337b436, 0xeeb0bf}, - {0x8337b437, 0xeeb180}, - {0x8337b438, 0xeeb181}, - {0x8337b439, 0xeeb182}, - {0x8337b530, 0xeeb183}, - {0x8337b531, 0xeeb184}, - {0x8337b532, 0xeeb185}, - {0x8337b533, 0xeeb186}, - {0x8337b534, 0xeeb187}, - {0x8337b535, 0xeeb188}, - {0x8337b536, 0xeeb189}, - {0x8337b537, 0xeeb18a}, - {0x8337b538, 0xeeb18b}, - {0x8337b539, 0xeeb18c}, - {0x8337b630, 0xeeb18d}, - {0x8337b631, 0xeeb18e}, - {0x8337b632, 0xeeb18f}, - {0x8337b633, 0xeeb190}, - {0x8337b634, 0xeeb191}, - {0x8337b635, 0xeeb192}, - {0x8337b636, 0xeeb193}, - {0x8337b637, 0xeeb194}, - {0x8337b638, 0xeeb195}, - {0x8337b639, 0xeeb196}, - {0x8337b730, 0xeeb197}, - {0x8337b731, 0xeeb198}, - {0x8337b732, 0xeeb199}, - {0x8337b733, 0xeeb19a}, - {0x8337b734, 0xeeb19b}, - {0x8337b735, 0xeeb19c}, - {0x8337b736, 0xeeb19d}, - {0x8337b737, 0xeeb19e}, - {0x8337b738, 0xeeb19f}, - {0x8337b739, 0xeeb1a0}, - {0x8337b830, 0xeeb1a1}, - {0x8337b831, 0xeeb1a2}, - {0x8337b832, 0xeeb1a3}, - {0x8337b833, 0xeeb1a4}, - {0x8337b834, 0xeeb1a5}, - {0x8337b835, 0xeeb1a6}, - {0x8337b836, 0xeeb1a7}, - {0x8337b837, 0xeeb1a8}, - {0x8337b838, 0xeeb1a9}, - {0x8337b839, 0xeeb1aa}, - {0x8337b930, 0xeeb1ab}, - {0x8337b931, 0xeeb1ac}, - {0x8337b932, 0xeeb1ad}, - {0x8337b933, 0xeeb1ae}, - {0x8337b934, 0xeeb1af}, - {0x8337b935, 0xeeb1b0}, - {0x8337b936, 0xeeb1b1}, - {0x8337b937, 0xeeb1b2}, - {0x8337b938, 0xeeb1b3}, - {0x8337b939, 0xeeb1b4}, - {0x8337ba30, 0xeeb1b5}, - {0x8337ba31, 0xeeb1b6}, - {0x8337ba32, 0xeeb1b7}, - {0x8337ba33, 0xeeb1b8}, - {0x8337ba34, 0xeeb1b9}, - {0x8337ba35, 0xeeb1ba}, - {0x8337ba36, 0xeeb1bb}, - {0x8337ba37, 0xeeb1bc}, - {0x8337ba38, 0xeeb1bd}, - {0x8337ba39, 0xeeb1be}, - {0x8337bb30, 0xeeb1bf}, - {0x8337bb31, 0xeeb280}, - {0x8337bb32, 0xeeb281}, - {0x8337bb33, 0xeeb282}, - {0x8337bb34, 0xeeb283}, - {0x8337bb35, 0xeeb284}, - {0x8337bb36, 0xeeb285}, - {0x8337bb37, 0xeeb286}, - {0x8337bb38, 0xeeb287}, - {0x8337bb39, 0xeeb288}, - {0x8337bc30, 0xeeb289}, - {0x8337bc31, 0xeeb28a}, - {0x8337bc32, 0xeeb28b}, - {0x8337bc33, 0xeeb28c}, - {0x8337bc34, 0xeeb28d}, - {0x8337bc35, 0xeeb28e}, - {0x8337bc36, 0xeeb28f}, - {0x8337bc37, 0xeeb290}, - {0x8337bc38, 0xeeb291}, - {0x8337bc39, 0xeeb292}, - {0x8337bd30, 0xeeb293}, - {0x8337bd31, 0xeeb294}, - {0x8337bd32, 0xeeb295}, - {0x8337bd33, 0xeeb296}, - {0x8337bd34, 0xeeb297}, - {0x8337bd35, 0xeeb298}, - {0x8337bd36, 0xeeb299}, - {0x8337bd37, 0xeeb29a}, - {0x8337bd38, 0xeeb29b}, - {0x8337bd39, 0xeeb29c}, - {0x8337be30, 0xeeb29d}, - {0x8337be31, 0xeeb29e}, - {0x8337be32, 0xeeb29f}, - {0x8337be33, 0xeeb2a0}, - {0x8337be34, 0xeeb2a1}, - {0x8337be35, 0xeeb2a2}, - {0x8337be36, 0xeeb2a3}, - {0x8337be37, 0xeeb2a4}, - {0x8337be38, 0xeeb2a5}, - {0x8337be39, 0xeeb2a6}, - {0x8337bf30, 0xeeb2a7}, - {0x8337bf31, 0xeeb2a8}, - {0x8337bf32, 0xeeb2a9}, - {0x8337bf33, 0xeeb2aa}, - {0x8337bf34, 0xeeb2ab}, - {0x8337bf35, 0xeeb2ac}, - {0x8337bf36, 0xeeb2ad}, - {0x8337bf37, 0xeeb2ae}, - {0x8337bf38, 0xeeb2af}, - {0x8337bf39, 0xeeb2b0}, - {0x8337c030, 0xeeb2b1}, - {0x8337c031, 0xeeb2b2}, - {0x8337c032, 0xeeb2b3}, - {0x8337c033, 0xeeb2b4}, - {0x8337c034, 0xeeb2b5}, - {0x8337c035, 0xeeb2b6}, - {0x8337c036, 0xeeb2b7}, - {0x8337c037, 0xeeb2b8}, - {0x8337c038, 0xeeb2b9}, - {0x8337c039, 0xeeb2ba}, - {0x8337c130, 0xeeb2bb}, - {0x8337c131, 0xeeb2bc}, - {0x8337c132, 0xeeb2bd}, - {0x8337c133, 0xeeb2be}, - {0x8337c134, 0xeeb2bf}, - {0x8337c135, 0xeeb380}, - {0x8337c136, 0xeeb381}, - {0x8337c137, 0xeeb382}, - {0x8337c138, 0xeeb383}, - {0x8337c139, 0xeeb384}, - {0x8337c230, 0xeeb385}, - {0x8337c231, 0xeeb386}, - {0x8337c232, 0xeeb387}, - {0x8337c233, 0xeeb388}, - {0x8337c234, 0xeeb389}, - {0x8337c235, 0xeeb38a}, - {0x8337c236, 0xeeb38b}, - {0x8337c237, 0xeeb38c}, - {0x8337c238, 0xeeb38d}, - {0x8337c239, 0xeeb38e}, - {0x8337c330, 0xeeb38f}, - {0x8337c331, 0xeeb390}, - {0x8337c332, 0xeeb391}, - {0x8337c333, 0xeeb392}, - {0x8337c334, 0xeeb393}, - {0x8337c335, 0xeeb394}, - {0x8337c336, 0xeeb395}, - {0x8337c337, 0xeeb396}, - {0x8337c338, 0xeeb397}, - {0x8337c339, 0xeeb398}, - {0x8337c430, 0xeeb399}, - {0x8337c431, 0xeeb39a}, - {0x8337c432, 0xeeb39b}, - {0x8337c433, 0xeeb39c}, - {0x8337c434, 0xeeb39d}, - {0x8337c435, 0xeeb39e}, - {0x8337c436, 0xeeb39f}, - {0x8337c437, 0xeeb3a0}, - {0x8337c438, 0xeeb3a1}, - {0x8337c439, 0xeeb3a2}, - {0x8337c530, 0xeeb3a3}, - {0x8337c531, 0xeeb3a4}, - {0x8337c532, 0xeeb3a5}, - {0x8337c533, 0xeeb3a6}, - {0x8337c534, 0xeeb3a7}, - {0x8337c535, 0xeeb3a8}, - {0x8337c536, 0xeeb3a9}, - {0x8337c537, 0xeeb3aa}, - {0x8337c538, 0xeeb3ab}, - {0x8337c539, 0xeeb3ac}, - {0x8337c630, 0xeeb3ad}, - {0x8337c631, 0xeeb3ae}, - {0x8337c632, 0xeeb3af}, - {0x8337c633, 0xeeb3b0}, - {0x8337c634, 0xeeb3b1}, - {0x8337c635, 0xeeb3b2}, - {0x8337c636, 0xeeb3b3}, - {0x8337c637, 0xeeb3b4}, - {0x8337c638, 0xeeb3b5}, - {0x8337c639, 0xeeb3b6}, - {0x8337c730, 0xeeb3b7}, - {0x8337c731, 0xeeb3b8}, - {0x8337c732, 0xeeb3b9}, - {0x8337c733, 0xeeb3ba}, - {0x8337c734, 0xeeb3bb}, - {0x8337c735, 0xeeb3bc}, - {0x8337c736, 0xeeb3bd}, - {0x8337c737, 0xeeb3be}, - {0x8337c738, 0xeeb3bf}, - {0x8337c739, 0xeeb480}, - {0x8337c830, 0xeeb481}, - {0x8337c831, 0xeeb482}, - {0x8337c832, 0xeeb483}, - {0x8337c833, 0xeeb484}, - {0x8337c834, 0xeeb485}, - {0x8337c835, 0xeeb486}, - {0x8337c836, 0xeeb487}, - {0x8337c837, 0xeeb488}, - {0x8337c838, 0xeeb489}, - {0x8337c839, 0xeeb48a}, - {0x8337c930, 0xeeb48b}, - {0x8337c931, 0xeeb48c}, - {0x8337c932, 0xeeb48d}, - {0x8337c933, 0xeeb48e}, - {0x8337c934, 0xeeb48f}, - {0x8337c935, 0xeeb490}, - {0x8337c936, 0xeeb491}, - {0x8337c937, 0xeeb492}, - {0x8337c938, 0xeeb493}, - {0x8337c939, 0xeeb494}, - {0x8337ca30, 0xeeb495}, - {0x8337ca31, 0xeeb496}, - {0x8337ca32, 0xeeb497}, - {0x8337ca33, 0xeeb498}, - {0x8337ca34, 0xeeb499}, - {0x8337ca35, 0xeeb49a}, - {0x8337ca36, 0xeeb49b}, - {0x8337ca37, 0xeeb49c}, - {0x8337ca38, 0xeeb49d}, - {0x8337ca39, 0xeeb49e}, - {0x8337cb30, 0xeeb49f}, - {0x8337cb31, 0xeeb4a0}, - {0x8337cb32, 0xeeb4a1}, - {0x8337cb33, 0xeeb4a2}, - {0x8337cb34, 0xeeb4a3}, - {0x8337cb35, 0xeeb4a4}, - {0x8337cb36, 0xeeb4a5}, - {0x8337cb37, 0xeeb4a6}, - {0x8337cb38, 0xeeb4a7}, - {0x8337cb39, 0xeeb4a8}, - {0x8337cc30, 0xeeb4a9}, - {0x8337cc31, 0xeeb4aa}, - {0x8337cc32, 0xeeb4ab}, - {0x8337cc33, 0xeeb4ac}, - {0x8337cc34, 0xeeb4ad}, - {0x8337cc35, 0xeeb4ae}, - {0x8337cc36, 0xeeb4af}, - {0x8337cc37, 0xeeb4b0}, - {0x8337cc38, 0xeeb4b1}, - {0x8337cc39, 0xeeb4b2}, - {0x8337cd30, 0xeeb4b3}, - {0x8337cd31, 0xeeb4b4}, - {0x8337cd32, 0xeeb4b5}, - {0x8337cd33, 0xeeb4b6}, - {0x8337cd34, 0xeeb4b7}, - {0x8337cd35, 0xeeb4b8}, - {0x8337cd36, 0xeeb4b9}, - {0x8337cd37, 0xeeb4ba}, - {0x8337cd38, 0xeeb4bb}, - {0x8337cd39, 0xeeb4bc}, - {0x8337ce30, 0xeeb4bd}, - {0x8337ce31, 0xeeb4be}, - {0x8337ce32, 0xeeb4bf}, - {0x8337ce33, 0xeeb580}, - {0x8337ce34, 0xeeb581}, - {0x8337ce35, 0xeeb582}, - {0x8337ce36, 0xeeb583}, - {0x8337ce37, 0xeeb584}, - {0x8337ce38, 0xeeb585}, - {0x8337ce39, 0xeeb586}, - {0x8337cf30, 0xeeb587}, - {0x8337cf31, 0xeeb588}, - {0x8337cf32, 0xeeb589}, - {0x8337cf33, 0xeeb58a}, - {0x8337cf34, 0xeeb58b}, - {0x8337cf35, 0xeeb58c}, - {0x8337cf36, 0xeeb58d}, - {0x8337cf37, 0xeeb58e}, - {0x8337cf38, 0xeeb58f}, - {0x8337cf39, 0xeeb590}, - {0x8337d030, 0xeeb591}, - {0x8337d031, 0xeeb592}, - {0x8337d032, 0xeeb593}, - {0x8337d033, 0xeeb594}, - {0x8337d034, 0xeeb595}, - {0x8337d035, 0xeeb596}, - {0x8337d036, 0xeeb597}, - {0x8337d037, 0xeeb598}, - {0x8337d038, 0xeeb599}, - {0x8337d039, 0xeeb59a}, - {0x8337d130, 0xeeb59b}, - {0x8337d131, 0xeeb59c}, - {0x8337d132, 0xeeb59d}, - {0x8337d133, 0xeeb59e}, - {0x8337d134, 0xeeb59f}, - {0x8337d135, 0xeeb5a0}, - {0x8337d136, 0xeeb5a1}, - {0x8337d137, 0xeeb5a2}, - {0x8337d138, 0xeeb5a3}, - {0x8337d139, 0xeeb5a4}, - {0x8337d230, 0xeeb5a5}, - {0x8337d231, 0xeeb5a6}, - {0x8337d232, 0xeeb5a7}, - {0x8337d233, 0xeeb5a8}, - {0x8337d234, 0xeeb5a9}, - {0x8337d235, 0xeeb5aa}, - {0x8337d236, 0xeeb5ab}, - {0x8337d237, 0xeeb5ac}, - {0x8337d238, 0xeeb5ad}, - {0x8337d239, 0xeeb5ae}, - {0x8337d330, 0xeeb5af}, - {0x8337d331, 0xeeb5b0}, - {0x8337d332, 0xeeb5b1}, - {0x8337d333, 0xeeb5b2}, - {0x8337d334, 0xeeb5b3}, - {0x8337d335, 0xeeb5b4}, - {0x8337d336, 0xeeb5b5}, - {0x8337d337, 0xeeb5b6}, - {0x8337d338, 0xeeb5b7}, - {0x8337d339, 0xeeb5b8}, - {0x8337d430, 0xeeb5b9}, - {0x8337d431, 0xeeb5ba}, - {0x8337d432, 0xeeb5bb}, - {0x8337d433, 0xeeb5bc}, - {0x8337d434, 0xeeb5bd}, - {0x8337d435, 0xeeb5be}, - {0x8337d436, 0xeeb5bf}, - {0x8337d437, 0xeeb680}, - {0x8337d438, 0xeeb681}, - {0x8337d439, 0xeeb682}, - {0x8337d530, 0xeeb683}, - {0x8337d531, 0xeeb684}, - {0x8337d532, 0xeeb685}, - {0x8337d533, 0xeeb686}, - {0x8337d534, 0xeeb687}, - {0x8337d535, 0xeeb688}, - {0x8337d536, 0xeeb689}, - {0x8337d537, 0xeeb68a}, - {0x8337d538, 0xeeb68b}, - {0x8337d539, 0xeeb68c}, - {0x8337d630, 0xeeb68d}, - {0x8337d631, 0xeeb68e}, - {0x8337d632, 0xeeb68f}, - {0x8337d633, 0xeeb690}, - {0x8337d634, 0xeeb691}, - {0x8337d635, 0xeeb692}, - {0x8337d636, 0xeeb693}, - {0x8337d637, 0xeeb694}, - {0x8337d638, 0xeeb695}, - {0x8337d639, 0xeeb696}, - {0x8337d730, 0xeeb697}, - {0x8337d731, 0xeeb698}, - {0x8337d732, 0xeeb699}, - {0x8337d733, 0xeeb69a}, - {0x8337d734, 0xeeb69b}, - {0x8337d735, 0xeeb69c}, - {0x8337d736, 0xeeb69d}, - {0x8337d737, 0xeeb69e}, - {0x8337d738, 0xeeb69f}, - {0x8337d739, 0xeeb6a0}, - {0x8337d830, 0xeeb6a1}, - {0x8337d831, 0xeeb6a2}, - {0x8337d832, 0xeeb6a3}, - {0x8337d833, 0xeeb6a4}, - {0x8337d834, 0xeeb6a5}, - {0x8337d835, 0xeeb6a6}, - {0x8337d836, 0xeeb6a7}, - {0x8337d837, 0xeeb6a8}, - {0x8337d838, 0xeeb6a9}, - {0x8337d839, 0xeeb6aa}, - {0x8337d930, 0xeeb6ab}, - {0x8337d931, 0xeeb6ac}, - {0x8337d932, 0xeeb6ad}, - {0x8337d933, 0xeeb6ae}, - {0x8337d934, 0xeeb6af}, - {0x8337d935, 0xeeb6b0}, - {0x8337d936, 0xeeb6b1}, - {0x8337d937, 0xeeb6b2}, - {0x8337d938, 0xeeb6b3}, - {0x8337d939, 0xeeb6b4}, - {0x8337da30, 0xeeb6b5}, - {0x8337da31, 0xeeb6b6}, - {0x8337da32, 0xeeb6b7}, - {0x8337da33, 0xeeb6b8}, - {0x8337da34, 0xeeb6b9}, - {0x8337da35, 0xeeb6ba}, - {0x8337da36, 0xeeb6bb}, - {0x8337da37, 0xeeb6bc}, - {0x8337da38, 0xeeb6bd}, - {0x8337da39, 0xeeb6be}, - {0x8337db30, 0xeeb6bf}, - {0x8337db31, 0xeeb780}, - {0x8337db32, 0xeeb781}, - {0x8337db33, 0xeeb782}, - {0x8337db34, 0xeeb783}, - {0x8337db35, 0xeeb784}, - {0x8337db36, 0xeeb785}, - {0x8337db37, 0xeeb786}, - {0x8337db38, 0xeeb787}, - {0x8337db39, 0xeeb788}, - {0x8337dc30, 0xeeb789}, - {0x8337dc31, 0xeeb78a}, - {0x8337dc32, 0xeeb78b}, - {0x8337dc33, 0xeeb78c}, - {0x8337dc34, 0xeeb78d}, - {0x8337dc35, 0xeeb78e}, - {0x8337dc36, 0xeeb78f}, - {0x8337dc37, 0xeeb790}, - {0x8337dc38, 0xeeb791}, - {0x8337dc39, 0xeeb792}, - {0x8337dd30, 0xeeb793}, - {0x8337dd31, 0xeeb794}, - {0x8337dd32, 0xeeb795}, - {0x8337dd33, 0xeeb796}, - {0x8337dd34, 0xeeb797}, - {0x8337dd35, 0xeeb798}, - {0x8337dd36, 0xeeb799}, - {0x8337dd37, 0xeeb79a}, - {0x8337dd38, 0xeeb79b}, - {0x8337dd39, 0xeeb79c}, - {0x8337de30, 0xeeb79d}, - {0x8337de31, 0xeeb79e}, - {0x8337de32, 0xeeb79f}, - {0x8337de33, 0xeeb7a0}, - {0x8337de34, 0xeeb7a1}, - {0x8337de35, 0xeeb7a2}, - {0x8337de36, 0xeeb7a3}, - {0x8337de37, 0xeeb7a4}, - {0x8337de38, 0xeeb7a5}, - {0x8337de39, 0xeeb7a6}, - {0x8337df30, 0xeeb7a7}, - {0x8337df31, 0xeeb7a8}, - {0x8337df32, 0xeeb7a9}, - {0x8337df33, 0xeeb7aa}, - {0x8337df34, 0xeeb7ab}, - {0x8337df35, 0xeeb7ac}, - {0x8337df36, 0xeeb7ad}, - {0x8337df37, 0xeeb7ae}, - {0x8337df38, 0xeeb7af}, - {0x8337df39, 0xeeb7b0}, - {0x8337e030, 0xeeb7b1}, - {0x8337e031, 0xeeb7b2}, - {0x8337e032, 0xeeb7b3}, - {0x8337e033, 0xeeb7b4}, - {0x8337e034, 0xeeb7b5}, - {0x8337e035, 0xeeb7b6}, - {0x8337e036, 0xeeb7b7}, - {0x8337e037, 0xeeb7b8}, - {0x8337e038, 0xeeb7b9}, - {0x8337e039, 0xeeb7ba}, - {0x8337e130, 0xeeb7bb}, - {0x8337e131, 0xeeb7bc}, - {0x8337e132, 0xeeb7bd}, - {0x8337e133, 0xeeb7be}, - {0x8337e134, 0xeeb7bf}, - {0x8337e135, 0xeeb880}, - {0x8337e136, 0xeeb881}, - {0x8337e137, 0xeeb882}, - {0x8337e138, 0xeeb883}, - {0x8337e139, 0xeeb884}, - {0x8337e230, 0xeeb885}, - {0x8337e231, 0xeeb886}, - {0x8337e232, 0xeeb887}, - {0x8337e233, 0xeeb888}, - {0x8337e234, 0xeeb889}, - {0x8337e235, 0xeeb88a}, - {0x8337e236, 0xeeb88b}, - {0x8337e237, 0xeeb88c}, - {0x8337e238, 0xeeb88d}, - {0x8337e239, 0xeeb88e}, - {0x8337e330, 0xeeb88f}, - {0x8337e331, 0xeeb890}, - {0x8337e332, 0xeeb891}, - {0x8337e333, 0xeeb892}, - {0x8337e334, 0xeeb893}, - {0x8337e335, 0xeeb894}, - {0x8337e336, 0xeeb895}, - {0x8337e337, 0xeeb896}, - {0x8337e338, 0xeeb897}, - {0x8337e339, 0xeeb898}, - {0x8337e430, 0xeeb899}, - {0x8337e431, 0xeeb89a}, - {0x8337e432, 0xeeb89b}, - {0x8337e433, 0xeeb89c}, - {0x8337e434, 0xeeb89d}, - {0x8337e435, 0xeeb89e}, - {0x8337e436, 0xeeb89f}, - {0x8337e437, 0xeeb8a0}, - {0x8337e438, 0xeeb8a1}, - {0x8337e439, 0xeeb8a2}, - {0x8337e530, 0xeeb8a3}, - {0x8337e531, 0xeeb8a4}, - {0x8337e532, 0xeeb8a5}, - {0x8337e533, 0xeeb8a6}, - {0x8337e534, 0xeeb8a7}, - {0x8337e535, 0xeeb8a8}, - {0x8337e536, 0xeeb8a9}, - {0x8337e537, 0xeeb8aa}, - {0x8337e538, 0xeeb8ab}, - {0x8337e539, 0xeeb8ac}, - {0x8337e630, 0xeeb8ad}, - {0x8337e631, 0xeeb8ae}, - {0x8337e632, 0xeeb8af}, - {0x8337e633, 0xeeb8b0}, - {0x8337e634, 0xeeb8b1}, - {0x8337e635, 0xeeb8b2}, - {0x8337e636, 0xeeb8b3}, - {0x8337e637, 0xeeb8b4}, - {0x8337e638, 0xeeb8b5}, - {0x8337e639, 0xeeb8b6}, - {0x8337e730, 0xeeb8b7}, - {0x8337e731, 0xeeb8b8}, - {0x8337e732, 0xeeb8b9}, - {0x8337e733, 0xeeb8ba}, - {0x8337e734, 0xeeb8bb}, - {0x8337e735, 0xeeb8bc}, - {0x8337e736, 0xeeb8bd}, - {0x8337e737, 0xeeb8be}, - {0x8337e738, 0xeeb8bf}, - {0x8337e739, 0xeeb980}, - {0x8337e830, 0xeeb981}, - {0x8337e831, 0xeeb982}, - {0x8337e832, 0xeeb983}, - {0x8337e833, 0xeeb984}, - {0x8337e834, 0xeeb985}, - {0x8337e835, 0xeeb986}, - {0x8337e836, 0xeeb987}, - {0x8337e837, 0xeeb988}, - {0x8337e838, 0xeeb989}, - {0x8337e839, 0xeeb98a}, - {0x8337e930, 0xeeb98b}, - {0x8337e931, 0xeeb98c}, - {0x8337e932, 0xeeb98d}, - {0x8337e933, 0xeeb98e}, - {0x8337e934, 0xeeb98f}, - {0x8337e935, 0xeeb990}, - {0x8337e936, 0xeeb991}, - {0x8337e937, 0xeeb992}, - {0x8337e938, 0xeeb993}, - {0x8337e939, 0xeeb994}, - {0x8337ea30, 0xeeb995}, - {0x8337ea31, 0xeeb996}, - {0x8337ea32, 0xeeb997}, - {0x8337ea33, 0xeeb998}, - {0x8337ea34, 0xeeb999}, - {0x8337ea35, 0xeeb99a}, - {0x8337ea36, 0xeeb99b}, - {0x8337ea37, 0xeeb99c}, - {0x8337ea38, 0xeeb99d}, - {0x8337ea39, 0xeeb99e}, - {0x8337eb30, 0xeeb99f}, - {0x8337eb31, 0xeeb9a0}, - {0x8337eb32, 0xeeb9a1}, - {0x8337eb33, 0xeeb9a2}, - {0x8337eb34, 0xeeb9a3}, - {0x8337eb35, 0xeeb9a4}, - {0x8337eb36, 0xeeb9a5}, - {0x8337eb37, 0xeeb9a6}, - {0x8337eb38, 0xeeb9a7}, - {0x8337eb39, 0xeeb9a8}, - {0x8337ec30, 0xeeb9a9}, - {0x8337ec31, 0xeeb9aa}, - {0x8337ec32, 0xeeb9ab}, - {0x8337ec33, 0xeeb9ac}, - {0x8337ec34, 0xeeb9ad}, - {0x8337ec35, 0xeeb9ae}, - {0x8337ec36, 0xeeb9af}, - {0x8337ec37, 0xeeb9b0}, - {0x8337ec38, 0xeeb9b1}, - {0x8337ec39, 0xeeb9b2}, - {0x8337ed30, 0xeeb9b3}, - {0x8337ed31, 0xeeb9b4}, - {0x8337ed32, 0xeeb9b5}, - {0x8337ed33, 0xeeb9b6}, - {0x8337ed34, 0xeeb9b7}, - {0x8337ed35, 0xeeb9b8}, - {0x8337ed36, 0xeeb9b9}, - {0x8337ed37, 0xeeb9ba}, - {0x8337ed38, 0xeeb9bb}, - {0x8337ed39, 0xeeb9bc}, - {0x8337ee30, 0xeeb9bd}, - {0x8337ee31, 0xeeb9be}, - {0x8337ee32, 0xeeb9bf}, - {0x8337ee33, 0xeeba80}, - {0x8337ee34, 0xeeba81}, - {0x8337ee35, 0xeeba82}, - {0x8337ee36, 0xeeba83}, - {0x8337ee37, 0xeeba84}, - {0x8337ee38, 0xeeba85}, - {0x8337ee39, 0xeeba86}, - {0x8337ef30, 0xeeba87}, - {0x8337ef31, 0xeeba88}, - {0x8337ef32, 0xeeba89}, - {0x8337ef33, 0xeeba8a}, - {0x8337ef34, 0xeeba8b}, - {0x8337ef35, 0xeeba8c}, - {0x8337ef36, 0xeeba8d}, - {0x8337ef37, 0xeeba8e}, - {0x8337ef38, 0xeeba8f}, - {0x8337ef39, 0xeeba90}, - {0x8337f030, 0xeeba91}, - {0x8337f031, 0xeeba92}, - {0x8337f032, 0xeeba93}, - {0x8337f033, 0xeeba94}, - {0x8337f034, 0xeeba95}, - {0x8337f035, 0xeeba96}, - {0x8337f036, 0xeeba97}, - {0x8337f037, 0xeeba98}, - {0x8337f038, 0xeeba99}, - {0x8337f039, 0xeeba9a}, - {0x8337f130, 0xeeba9b}, - {0x8337f131, 0xeeba9c}, - {0x8337f132, 0xeeba9d}, - {0x8337f133, 0xeeba9e}, - {0x8337f134, 0xeeba9f}, - {0x8337f135, 0xeebaa0}, - {0x8337f136, 0xeebaa1}, - {0x8337f137, 0xeebaa2}, - {0x8337f138, 0xeebaa3}, - {0x8337f139, 0xeebaa4}, - {0x8337f230, 0xeebaa5}, - {0x8337f231, 0xeebaa6}, - {0x8337f232, 0xeebaa7}, - {0x8337f233, 0xeebaa8}, - {0x8337f234, 0xeebaa9}, - {0x8337f235, 0xeebaaa}, - {0x8337f236, 0xeebaab}, - {0x8337f237, 0xeebaac}, - {0x8337f238, 0xeebaad}, - {0x8337f239, 0xeebaae}, - {0x8337f330, 0xeebaaf}, - {0x8337f331, 0xeebab0}, - {0x8337f332, 0xeebab1}, - {0x8337f333, 0xeebab2}, - {0x8337f334, 0xeebab3}, - {0x8337f335, 0xeebab4}, - {0x8337f336, 0xeebab5}, - {0x8337f337, 0xeebab6}, - {0x8337f338, 0xeebab7}, - {0x8337f339, 0xeebab8}, - {0x8337f430, 0xeebab9}, - {0x8337f431, 0xeebaba}, - {0x8337f432, 0xeebabb}, - {0x8337f433, 0xeebabc}, - {0x8337f434, 0xeebabd}, - {0x8337f435, 0xeebabe}, - {0x8337f436, 0xeebabf}, - {0x8337f437, 0xeebb80}, - {0x8337f438, 0xeebb81}, - {0x8337f439, 0xeebb82}, - {0x8337f530, 0xeebb83}, - {0x8337f531, 0xeebb84}, - {0x8337f532, 0xeebb85}, - {0x8337f533, 0xeebb86}, - {0x8337f534, 0xeebb87}, - {0x8337f535, 0xeebb88}, - {0x8337f536, 0xeebb89}, - {0x8337f537, 0xeebb8a}, - {0x8337f538, 0xeebb8b}, - {0x8337f539, 0xeebb8c}, - {0x8337f630, 0xeebb8d}, - {0x8337f631, 0xeebb8e}, - {0x8337f632, 0xeebb8f}, - {0x8337f633, 0xeebb90}, - {0x8337f634, 0xeebb91}, - {0x8337f635, 0xeebb92}, - {0x8337f636, 0xeebb93}, - {0x8337f637, 0xeebb94}, - {0x8337f638, 0xeebb95}, - {0x8337f639, 0xeebb96}, - {0x8337f730, 0xeebb97}, - {0x8337f731, 0xeebb98}, - {0x8337f732, 0xeebb99}, - {0x8337f733, 0xeebb9a}, - {0x8337f734, 0xeebb9b}, - {0x8337f735, 0xeebb9c}, - {0x8337f736, 0xeebb9d}, - {0x8337f737, 0xeebb9e}, - {0x8337f738, 0xeebb9f}, - {0x8337f739, 0xeebba0}, - {0x8337f830, 0xeebba1}, - {0x8337f831, 0xeebba2}, - {0x8337f832, 0xeebba3}, - {0x8337f833, 0xeebba4}, - {0x8337f834, 0xeebba5}, - {0x8337f835, 0xeebba6}, - {0x8337f836, 0xeebba7}, - {0x8337f837, 0xeebba8}, - {0x8337f838, 0xeebba9}, - {0x8337f839, 0xeebbaa}, - {0x8337f930, 0xeebbab}, - {0x8337f931, 0xeebbac}, - {0x8337f932, 0xeebbad}, - {0x8337f933, 0xeebbae}, - {0x8337f934, 0xeebbaf}, - {0x8337f935, 0xeebbb0}, - {0x8337f936, 0xeebbb1}, - {0x8337f937, 0xeebbb2}, - {0x8337f938, 0xeebbb3}, - {0x8337f939, 0xeebbb4}, - {0x8337fa30, 0xeebbb5}, - {0x8337fa31, 0xeebbb6}, - {0x8337fa32, 0xeebbb7}, - {0x8337fa33, 0xeebbb8}, - {0x8337fa34, 0xeebbb9}, - {0x8337fa35, 0xeebbba}, - {0x8337fa36, 0xeebbbb}, - {0x8337fa37, 0xeebbbc}, - {0x8337fa38, 0xeebbbd}, - {0x8337fa39, 0xeebbbe}, - {0x8337fb30, 0xeebbbf}, - {0x8337fb31, 0xeebc80}, - {0x8337fb32, 0xeebc81}, - {0x8337fb33, 0xeebc82}, - {0x8337fb34, 0xeebc83}, - {0x8337fb35, 0xeebc84}, - {0x8337fb36, 0xeebc85}, - {0x8337fb37, 0xeebc86}, - {0x8337fb38, 0xeebc87}, - {0x8337fb39, 0xeebc88}, - {0x8337fc30, 0xeebc89}, - {0x8337fc31, 0xeebc8a}, - {0x8337fc32, 0xeebc8b}, - {0x8337fc33, 0xeebc8c}, - {0x8337fc34, 0xeebc8d}, - {0x8337fc35, 0xeebc8e}, - {0x8337fc36, 0xeebc8f}, - {0x8337fc37, 0xeebc90}, - {0x8337fc38, 0xeebc91}, - {0x8337fc39, 0xeebc92}, - {0x8337fd30, 0xeebc93}, - {0x8337fd31, 0xeebc94}, - {0x8337fd32, 0xeebc95}, - {0x8337fd33, 0xeebc96}, - {0x8337fd34, 0xeebc97}, - {0x8337fd35, 0xeebc98}, - {0x8337fd36, 0xeebc99}, - {0x8337fd37, 0xeebc9a}, - {0x8337fd38, 0xeebc9b}, - {0x8337fd39, 0xeebc9c}, - {0x8337fe30, 0xeebc9d}, - {0x8337fe31, 0xeebc9e}, - {0x8337fe32, 0xeebc9f}, - {0x8337fe33, 0xeebca0}, - {0x8337fe34, 0xeebca1}, - {0x8337fe35, 0xeebca2}, - {0x8337fe36, 0xeebca3}, - {0x8337fe37, 0xeebca4}, - {0x8337fe38, 0xeebca5}, - {0x8337fe39, 0xeebca6}, - {0x83388130, 0xeebca7}, - {0x83388131, 0xeebca8}, - {0x83388132, 0xeebca9}, - {0x83388133, 0xeebcaa}, - {0x83388134, 0xeebcab}, - {0x83388135, 0xeebcac}, - {0x83388136, 0xeebcad}, - {0x83388137, 0xeebcae}, - {0x83388138, 0xeebcaf}, - {0x83388139, 0xeebcb0}, - {0x83388230, 0xeebcb1}, - {0x83388231, 0xeebcb2}, - {0x83388232, 0xeebcb3}, - {0x83388233, 0xeebcb4}, - {0x83388234, 0xeebcb5}, - {0x83388235, 0xeebcb6}, - {0x83388236, 0xeebcb7}, - {0x83388237, 0xeebcb8}, - {0x83388238, 0xeebcb9}, - {0x83388239, 0xeebcba}, - {0x83388330, 0xeebcbb}, - {0x83388331, 0xeebcbc}, - {0x83388332, 0xeebcbd}, - {0x83388333, 0xeebcbe}, - {0x83388334, 0xeebcbf}, - {0x83388335, 0xeebd80}, - {0x83388336, 0xeebd81}, - {0x83388337, 0xeebd82}, - {0x83388338, 0xeebd83}, - {0x83388339, 0xeebd84}, - {0x83388430, 0xeebd85}, - {0x83388431, 0xeebd86}, - {0x83388432, 0xeebd87}, - {0x83388433, 0xeebd88}, - {0x83388434, 0xeebd89}, - {0x83388435, 0xeebd8a}, - {0x83388436, 0xeebd8b}, - {0x83388437, 0xeebd8c}, - {0x83388438, 0xeebd8d}, - {0x83388439, 0xeebd8e}, - {0x83388530, 0xeebd8f}, - {0x83388531, 0xeebd90}, - {0x83388532, 0xeebd91}, - {0x83388533, 0xeebd92}, - {0x83388534, 0xeebd93}, - {0x83388535, 0xeebd94}, - {0x83388536, 0xeebd95}, - {0x83388537, 0xeebd96}, - {0x83388538, 0xeebd97}, - {0x83388539, 0xeebd98}, - {0x83388630, 0xeebd99}, - {0x83388631, 0xeebd9a}, - {0x83388632, 0xeebd9b}, - {0x83388633, 0xeebd9c}, - {0x83388634, 0xeebd9d}, - {0x83388635, 0xeebd9e}, - {0x83388636, 0xeebd9f}, - {0x83388637, 0xeebda0}, - {0x83388638, 0xeebda1}, - {0x83388639, 0xeebda2}, - {0x83388730, 0xeebda3}, - {0x83388731, 0xeebda4}, - {0x83388732, 0xeebda5}, - {0x83388733, 0xeebda6}, - {0x83388734, 0xeebda7}, - {0x83388735, 0xeebda8}, - {0x83388736, 0xeebda9}, - {0x83388737, 0xeebdaa}, - {0x83388738, 0xeebdab}, - {0x83388739, 0xeebdac}, - {0x83388830, 0xeebdad}, - {0x83388831, 0xeebdae}, - {0x83388832, 0xeebdaf}, - {0x83388833, 0xeebdb0}, - {0x83388834, 0xeebdb1}, - {0x83388835, 0xeebdb2}, - {0x83388836, 0xeebdb3}, - {0x83388837, 0xeebdb4}, - {0x83388838, 0xeebdb5}, - {0x83388839, 0xeebdb6}, - {0x83388930, 0xeebdb7}, - {0x83388931, 0xeebdb8}, - {0x83388932, 0xeebdb9}, - {0x83388933, 0xeebdba}, - {0x83388934, 0xeebdbb}, - {0x83388935, 0xeebdbc}, - {0x83388936, 0xeebdbd}, - {0x83388937, 0xeebdbe}, - {0x83388938, 0xeebdbf}, - {0x83388939, 0xeebe80}, - {0x83388a30, 0xeebe81}, - {0x83388a31, 0xeebe82}, - {0x83388a32, 0xeebe83}, - {0x83388a33, 0xeebe84}, - {0x83388a34, 0xeebe85}, - {0x83388a35, 0xeebe86}, - {0x83388a36, 0xeebe87}, - {0x83388a37, 0xeebe88}, - {0x83388a38, 0xeebe89}, - {0x83388a39, 0xeebe8a}, - {0x83388b30, 0xeebe8b}, - {0x83388b31, 0xeebe8c}, - {0x83388b32, 0xeebe8d}, - {0x83388b33, 0xeebe8e}, - {0x83388b34, 0xeebe8f}, - {0x83388b35, 0xeebe90}, - {0x83388b36, 0xeebe91}, - {0x83388b37, 0xeebe92}, - {0x83388b38, 0xeebe93}, - {0x83388b39, 0xeebe94}, - {0x83388c30, 0xeebe95}, - {0x83388c31, 0xeebe96}, - {0x83388c32, 0xeebe97}, - {0x83388c33, 0xeebe98}, - {0x83388c34, 0xeebe99}, - {0x83388c35, 0xeebe9a}, - {0x83388c36, 0xeebe9b}, - {0x83388c37, 0xeebe9c}, - {0x83388c38, 0xeebe9d}, - {0x83388c39, 0xeebe9e}, - {0x83388d30, 0xeebe9f}, - {0x83388d31, 0xeebea0}, - {0x83388d32, 0xeebea1}, - {0x83388d33, 0xeebea2}, - {0x83388d34, 0xeebea3}, - {0x83388d35, 0xeebea4}, - {0x83388d36, 0xeebea5}, - {0x83388d37, 0xeebea6}, - {0x83388d38, 0xeebea7}, - {0x83388d39, 0xeebea8}, - {0x83388e30, 0xeebea9}, - {0x83388e31, 0xeebeaa}, - {0x83388e32, 0xeebeab}, - {0x83388e33, 0xeebeac}, - {0x83388e34, 0xeebead}, - {0x83388e35, 0xeebeae}, - {0x83388e36, 0xeebeaf}, - {0x83388e37, 0xeebeb0}, - {0x83388e38, 0xeebeb1}, - {0x83388e39, 0xeebeb2}, - {0x83388f30, 0xeebeb3}, - {0x83388f31, 0xeebeb4}, - {0x83388f32, 0xeebeb5}, - {0x83388f33, 0xeebeb6}, - {0x83388f34, 0xeebeb7}, - {0x83388f35, 0xeebeb8}, - {0x83388f36, 0xeebeb9}, - {0x83388f37, 0xeebeba}, - {0x83388f38, 0xeebebb}, - {0x83388f39, 0xeebebc}, - {0x83389030, 0xeebebd}, - {0x83389031, 0xeebebe}, - {0x83389032, 0xeebebf}, - {0x83389033, 0xeebf80}, - {0x83389034, 0xeebf81}, - {0x83389035, 0xeebf82}, - {0x83389036, 0xeebf83}, - {0x83389037, 0xeebf84}, - {0x83389038, 0xeebf85}, - {0x83389039, 0xeebf86}, - {0x83389130, 0xeebf87}, - {0x83389131, 0xeebf88}, - {0x83389132, 0xeebf89}, - {0x83389133, 0xeebf8a}, - {0x83389134, 0xeebf8b}, - {0x83389135, 0xeebf8c}, - {0x83389136, 0xeebf8d}, - {0x83389137, 0xeebf8e}, - {0x83389138, 0xeebf8f}, - {0x83389139, 0xeebf90}, - {0x83389230, 0xeebf91}, - {0x83389231, 0xeebf92}, - {0x83389232, 0xeebf93}, - {0x83389233, 0xeebf94}, - {0x83389234, 0xeebf95}, - {0x83389235, 0xeebf96}, - {0x83389236, 0xeebf97}, - {0x83389237, 0xeebf98}, - {0x83389238, 0xeebf99}, - {0x83389239, 0xeebf9a}, - {0x83389330, 0xeebf9b}, - {0x83389331, 0xeebf9c}, - {0x83389332, 0xeebf9d}, - {0x83389333, 0xeebf9e}, - {0x83389334, 0xeebf9f}, - {0x83389335, 0xeebfa0}, - {0x83389336, 0xeebfa1}, - {0x83389337, 0xeebfa2}, - {0x83389338, 0xeebfa3}, - {0x83389339, 0xeebfa4}, - {0x83389430, 0xeebfa5}, - {0x83389431, 0xeebfa6}, - {0x83389432, 0xeebfa7}, - {0x83389433, 0xeebfa8}, - {0x83389434, 0xeebfa9}, - {0x83389435, 0xeebfaa}, - {0x83389436, 0xeebfab}, - {0x83389437, 0xeebfac}, - {0x83389438, 0xeebfad}, - {0x83389439, 0xeebfae}, - {0x83389530, 0xeebfaf}, - {0x83389531, 0xeebfb0}, - {0x83389532, 0xeebfb1}, - {0x83389533, 0xeebfb2}, - {0x83389534, 0xeebfb3}, - {0x83389535, 0xeebfb4}, - {0x83389536, 0xeebfb5}, - {0x83389537, 0xeebfb6}, - {0x83389538, 0xeebfb7}, - {0x83389539, 0xeebfb8}, - {0x83389630, 0xeebfb9}, - {0x83389631, 0xeebfba}, - {0x83389632, 0xeebfbb}, - {0x83389633, 0xeebfbc}, - {0x83389634, 0xeebfbd}, - {0x83389635, 0xeebfbe}, - {0x83389636, 0xeebfbf}, - {0x83389637, 0xef8080}, - {0x83389638, 0xef8081}, - {0x83389639, 0xef8082}, - {0x83389730, 0xef8083}, - {0x83389731, 0xef8084}, - {0x83389732, 0xef8085}, - {0x83389733, 0xef8086}, - {0x83389734, 0xef8087}, - {0x83389735, 0xef8088}, - {0x83389736, 0xef8089}, - {0x83389737, 0xef808a}, - {0x83389738, 0xef808b}, - {0x83389739, 0xef808c}, - {0x83389830, 0xef808d}, - {0x83389831, 0xef808e}, - {0x83389832, 0xef808f}, - {0x83389833, 0xef8090}, - {0x83389834, 0xef8091}, - {0x83389835, 0xef8092}, - {0x83389836, 0xef8093}, - {0x83389837, 0xef8094}, - {0x83389838, 0xef8095}, - {0x83389839, 0xef8096}, - {0x83389930, 0xef8097}, - {0x83389931, 0xef8098}, - {0x83389932, 0xef8099}, - {0x83389933, 0xef809a}, - {0x83389934, 0xef809b}, - {0x83389935, 0xef809c}, - {0x83389936, 0xef809d}, - {0x83389937, 0xef809e}, - {0x83389938, 0xef809f}, - {0x83389939, 0xef80a0}, - {0x83389a30, 0xef80a1}, - {0x83389a31, 0xef80a2}, - {0x83389a32, 0xef80a3}, - {0x83389a33, 0xef80a4}, - {0x83389a34, 0xef80a5}, - {0x83389a35, 0xef80a6}, - {0x83389a36, 0xef80a7}, - {0x83389a37, 0xef80a8}, - {0x83389a38, 0xef80a9}, - {0x83389a39, 0xef80aa}, - {0x83389b30, 0xef80ab}, - {0x83389b31, 0xef80ac}, - {0x83389b32, 0xef80ad}, - {0x83389b33, 0xef80ae}, - {0x83389b34, 0xef80af}, - {0x83389b35, 0xef80b0}, - {0x83389b36, 0xef80b1}, - {0x83389b37, 0xef80b2}, - {0x83389b38, 0xef80b3}, - {0x83389b39, 0xef80b4}, - {0x83389c30, 0xef80b5}, - {0x83389c31, 0xef80b6}, - {0x83389c32, 0xef80b7}, - {0x83389c33, 0xef80b8}, - {0x83389c34, 0xef80b9}, - {0x83389c35, 0xef80ba}, - {0x83389c36, 0xef80bb}, - {0x83389c37, 0xef80bc}, - {0x83389c38, 0xef80bd}, - {0x83389c39, 0xef80be}, - {0x83389d30, 0xef80bf}, - {0x83389d31, 0xef8180}, - {0x83389d32, 0xef8181}, - {0x83389d33, 0xef8182}, - {0x83389d34, 0xef8183}, - {0x83389d35, 0xef8184}, - {0x83389d36, 0xef8185}, - {0x83389d37, 0xef8186}, - {0x83389d38, 0xef8187}, - {0x83389d39, 0xef8188}, - {0x83389e30, 0xef8189}, - {0x83389e31, 0xef818a}, - {0x83389e32, 0xef818b}, - {0x83389e33, 0xef818c}, - {0x83389e34, 0xef818d}, - {0x83389e35, 0xef818e}, - {0x83389e36, 0xef818f}, - {0x83389e37, 0xef8190}, - {0x83389e38, 0xef8191}, - {0x83389e39, 0xef8192}, - {0x83389f30, 0xef8193}, - {0x83389f31, 0xef8194}, - {0x83389f32, 0xef8195}, - {0x83389f33, 0xef8196}, - {0x83389f34, 0xef8197}, - {0x83389f35, 0xef8198}, - {0x83389f36, 0xef8199}, - {0x83389f37, 0xef819a}, - {0x83389f38, 0xef819b}, - {0x83389f39, 0xef819c}, - {0x8338a030, 0xef819d}, - {0x8338a031, 0xef819e}, - {0x8338a032, 0xef819f}, - {0x8338a033, 0xef81a0}, - {0x8338a034, 0xef81a1}, - {0x8338a035, 0xef81a2}, - {0x8338a036, 0xef81a3}, - {0x8338a037, 0xef81a4}, - {0x8338a038, 0xef81a5}, - {0x8338a039, 0xef81a6}, - {0x8338a130, 0xef81a7}, - {0x8338a131, 0xef81a8}, - {0x8338a132, 0xef81a9}, - {0x8338a133, 0xef81aa}, - {0x8338a134, 0xef81ab}, - {0x8338a135, 0xef81ac}, - {0x8338a136, 0xef81ad}, - {0x8338a137, 0xef81ae}, - {0x8338a138, 0xef81af}, - {0x8338a139, 0xef81b0}, - {0x8338a230, 0xef81b1}, - {0x8338a231, 0xef81b2}, - {0x8338a232, 0xef81b3}, - {0x8338a233, 0xef81b4}, - {0x8338a234, 0xef81b5}, - {0x8338a235, 0xef81b6}, - {0x8338a236, 0xef81b7}, - {0x8338a237, 0xef81b8}, - {0x8338a238, 0xef81b9}, - {0x8338a239, 0xef81ba}, - {0x8338a330, 0xef81bb}, - {0x8338a331, 0xef81bc}, - {0x8338a332, 0xef81bd}, - {0x8338a333, 0xef81be}, - {0x8338a334, 0xef81bf}, - {0x8338a335, 0xef8280}, - {0x8338a336, 0xef8281}, - {0x8338a337, 0xef8282}, - {0x8338a338, 0xef8283}, - {0x8338a339, 0xef8284}, - {0x8338a430, 0xef8285}, - {0x8338a431, 0xef8286}, - {0x8338a432, 0xef8287}, - {0x8338a433, 0xef8288}, - {0x8338a434, 0xef8289}, - {0x8338a435, 0xef828a}, - {0x8338a436, 0xef828b}, - {0x8338a437, 0xef828c}, - {0x8338a438, 0xef828d}, - {0x8338a439, 0xef828e}, - {0x8338a530, 0xef828f}, - {0x8338a531, 0xef8290}, - {0x8338a532, 0xef8291}, - {0x8338a533, 0xef8292}, - {0x8338a534, 0xef8293}, - {0x8338a535, 0xef8294}, - {0x8338a536, 0xef8295}, - {0x8338a537, 0xef8296}, - {0x8338a538, 0xef8297}, - {0x8338a539, 0xef8298}, - {0x8338a630, 0xef8299}, - {0x8338a631, 0xef829a}, - {0x8338a632, 0xef829b}, - {0x8338a633, 0xef829c}, - {0x8338a634, 0xef829d}, - {0x8338a635, 0xef829e}, - {0x8338a636, 0xef829f}, - {0x8338a637, 0xef82a0}, - {0x8338a638, 0xef82a1}, - {0x8338a639, 0xef82a2}, - {0x8338a730, 0xef82a3}, - {0x8338a731, 0xef82a4}, - {0x8338a732, 0xef82a5}, - {0x8338a733, 0xef82a6}, - {0x8338a734, 0xef82a7}, - {0x8338a735, 0xef82a8}, - {0x8338a736, 0xef82a9}, - {0x8338a737, 0xef82aa}, - {0x8338a738, 0xef82ab}, - {0x8338a739, 0xef82ac}, - {0x8338a830, 0xef82ad}, - {0x8338a831, 0xef82ae}, - {0x8338a832, 0xef82af}, - {0x8338a833, 0xef82b0}, - {0x8338a834, 0xef82b1}, - {0x8338a835, 0xef82b2}, - {0x8338a836, 0xef82b3}, - {0x8338a837, 0xef82b4}, - {0x8338a838, 0xef82b5}, - {0x8338a839, 0xef82b6}, - {0x8338a930, 0xef82b7}, - {0x8338a931, 0xef82b8}, - {0x8338a932, 0xef82b9}, - {0x8338a933, 0xef82ba}, - {0x8338a934, 0xef82bb}, - {0x8338a935, 0xef82bc}, - {0x8338a936, 0xef82bd}, - {0x8338a937, 0xef82be}, - {0x8338a938, 0xef82bf}, - {0x8338a939, 0xef8380}, - {0x8338aa30, 0xef8381}, - {0x8338aa31, 0xef8382}, - {0x8338aa32, 0xef8383}, - {0x8338aa33, 0xef8384}, - {0x8338aa34, 0xef8385}, - {0x8338aa35, 0xef8386}, - {0x8338aa36, 0xef8387}, - {0x8338aa37, 0xef8388}, - {0x8338aa38, 0xef8389}, - {0x8338aa39, 0xef838a}, - {0x8338ab30, 0xef838b}, - {0x8338ab31, 0xef838c}, - {0x8338ab32, 0xef838d}, - {0x8338ab33, 0xef838e}, - {0x8338ab34, 0xef838f}, - {0x8338ab35, 0xef8390}, - {0x8338ab36, 0xef8391}, - {0x8338ab37, 0xef8392}, - {0x8338ab38, 0xef8393}, - {0x8338ab39, 0xef8394}, - {0x8338ac30, 0xef8395}, - {0x8338ac31, 0xef8396}, - {0x8338ac32, 0xef8397}, - {0x8338ac33, 0xef8398}, - {0x8338ac34, 0xef8399}, - {0x8338ac35, 0xef839a}, - {0x8338ac36, 0xef839b}, - {0x8338ac37, 0xef839c}, - {0x8338ac38, 0xef839d}, - {0x8338ac39, 0xef839e}, - {0x8338ad30, 0xef839f}, - {0x8338ad31, 0xef83a0}, - {0x8338ad32, 0xef83a1}, - {0x8338ad33, 0xef83a2}, - {0x8338ad34, 0xef83a3}, - {0x8338ad35, 0xef83a4}, - {0x8338ad36, 0xef83a5}, - {0x8338ad37, 0xef83a6}, - {0x8338ad38, 0xef83a7}, - {0x8338ad39, 0xef83a8}, - {0x8338ae30, 0xef83a9}, - {0x8338ae31, 0xef83aa}, - {0x8338ae32, 0xef83ab}, - {0x8338ae33, 0xef83ac}, - {0x8338ae34, 0xef83ad}, - {0x8338ae35, 0xef83ae}, - {0x8338ae36, 0xef83af}, - {0x8338ae37, 0xef83b0}, - {0x8338ae38, 0xef83b1}, - {0x8338ae39, 0xef83b2}, - {0x8338af30, 0xef83b3}, - {0x8338af31, 0xef83b4}, - {0x8338af32, 0xef83b5}, - {0x8338af33, 0xef83b6}, - {0x8338af34, 0xef83b7}, - {0x8338af35, 0xef83b8}, - {0x8338af36, 0xef83b9}, - {0x8338af37, 0xef83ba}, - {0x8338af38, 0xef83bb}, - {0x8338af39, 0xef83bc}, - {0x8338b030, 0xef83bd}, - {0x8338b031, 0xef83be}, - {0x8338b032, 0xef83bf}, - {0x8338b033, 0xef8480}, - {0x8338b034, 0xef8481}, - {0x8338b035, 0xef8482}, - {0x8338b036, 0xef8483}, - {0x8338b037, 0xef8484}, - {0x8338b038, 0xef8485}, - {0x8338b039, 0xef8486}, - {0x8338b130, 0xef8487}, - {0x8338b131, 0xef8488}, - {0x8338b132, 0xef8489}, - {0x8338b133, 0xef848a}, - {0x8338b134, 0xef848b}, - {0x8338b135, 0xef848c}, - {0x8338b136, 0xef848d}, - {0x8338b137, 0xef848e}, - {0x8338b138, 0xef848f}, - {0x8338b139, 0xef8490}, - {0x8338b230, 0xef8491}, - {0x8338b231, 0xef8492}, - {0x8338b232, 0xef8493}, - {0x8338b233, 0xef8494}, - {0x8338b234, 0xef8495}, - {0x8338b235, 0xef8496}, - {0x8338b236, 0xef8497}, - {0x8338b237, 0xef8498}, - {0x8338b238, 0xef8499}, - {0x8338b239, 0xef849a}, - {0x8338b330, 0xef849b}, - {0x8338b331, 0xef849c}, - {0x8338b332, 0xef849d}, - {0x8338b333, 0xef849e}, - {0x8338b334, 0xef849f}, - {0x8338b335, 0xef84a0}, - {0x8338b336, 0xef84a1}, - {0x8338b337, 0xef84a2}, - {0x8338b338, 0xef84a3}, - {0x8338b339, 0xef84a4}, - {0x8338b430, 0xef84a5}, - {0x8338b431, 0xef84a6}, - {0x8338b432, 0xef84a7}, - {0x8338b433, 0xef84a8}, - {0x8338b434, 0xef84a9}, - {0x8338b435, 0xef84aa}, - {0x8338b436, 0xef84ab}, - {0x8338b437, 0xef84ac}, - {0x8338b438, 0xef84ad}, - {0x8338b439, 0xef84ae}, - {0x8338b530, 0xef84af}, - {0x8338b531, 0xef84b0}, - {0x8338b532, 0xef84b1}, - {0x8338b533, 0xef84b2}, - {0x8338b534, 0xef84b3}, - {0x8338b535, 0xef84b4}, - {0x8338b536, 0xef84b5}, - {0x8338b537, 0xef84b6}, - {0x8338b538, 0xef84b7}, - {0x8338b539, 0xef84b8}, - {0x8338b630, 0xef84b9}, - {0x8338b631, 0xef84ba}, - {0x8338b632, 0xef84bb}, - {0x8338b633, 0xef84bc}, - {0x8338b634, 0xef84bd}, - {0x8338b635, 0xef84be}, - {0x8338b636, 0xef84bf}, - {0x8338b637, 0xef8580}, - {0x8338b638, 0xef8581}, - {0x8338b639, 0xef8582}, - {0x8338b730, 0xef8583}, - {0x8338b731, 0xef8584}, - {0x8338b732, 0xef8585}, - {0x8338b733, 0xef8586}, - {0x8338b734, 0xef8587}, - {0x8338b735, 0xef8588}, - {0x8338b736, 0xef8589}, - {0x8338b737, 0xef858a}, - {0x8338b738, 0xef858b}, - {0x8338b739, 0xef858c}, - {0x8338b830, 0xef858d}, - {0x8338b831, 0xef858e}, - {0x8338b832, 0xef858f}, - {0x8338b833, 0xef8590}, - {0x8338b834, 0xef8591}, - {0x8338b835, 0xef8592}, - {0x8338b836, 0xef8593}, - {0x8338b837, 0xef8594}, - {0x8338b838, 0xef8595}, - {0x8338b839, 0xef8596}, - {0x8338b930, 0xef8597}, - {0x8338b931, 0xef8598}, - {0x8338b932, 0xef8599}, - {0x8338b933, 0xef859a}, - {0x8338b934, 0xef859b}, - {0x8338b935, 0xef859c}, - {0x8338b936, 0xef859d}, - {0x8338b937, 0xef859e}, - {0x8338b938, 0xef859f}, - {0x8338b939, 0xef85a0}, - {0x8338ba30, 0xef85a1}, - {0x8338ba31, 0xef85a2}, - {0x8338ba32, 0xef85a3}, - {0x8338ba33, 0xef85a4}, - {0x8338ba34, 0xef85a5}, - {0x8338ba35, 0xef85a6}, - {0x8338ba36, 0xef85a7}, - {0x8338ba37, 0xef85a8}, - {0x8338ba38, 0xef85a9}, - {0x8338ba39, 0xef85aa}, - {0x8338bb30, 0xef85ab}, - {0x8338bb31, 0xef85ac}, - {0x8338bb32, 0xef85ad}, - {0x8338bb33, 0xef85ae}, - {0x8338bb34, 0xef85af}, - {0x8338bb35, 0xef85b0}, - {0x8338bb36, 0xef85b1}, - {0x8338bb37, 0xef85b2}, - {0x8338bb38, 0xef85b3}, - {0x8338bb39, 0xef85b4}, - {0x8338bc30, 0xef85b5}, - {0x8338bc31, 0xef85b6}, - {0x8338bc32, 0xef85b7}, - {0x8338bc33, 0xef85b8}, - {0x8338bc34, 0xef85b9}, - {0x8338bc35, 0xef85ba}, - {0x8338bc36, 0xef85bb}, - {0x8338bc37, 0xef85bc}, - {0x8338bc38, 0xef85bd}, - {0x8338bc39, 0xef85be}, - {0x8338bd30, 0xef85bf}, - {0x8338bd31, 0xef8680}, - {0x8338bd32, 0xef8681}, - {0x8338bd33, 0xef8682}, - {0x8338bd34, 0xef8683}, - {0x8338bd35, 0xef8684}, - {0x8338bd36, 0xef8685}, - {0x8338bd37, 0xef8686}, - {0x8338bd38, 0xef8687}, - {0x8338bd39, 0xef8688}, - {0x8338be30, 0xef8689}, - {0x8338be31, 0xef868a}, - {0x8338be32, 0xef868b}, - {0x8338be33, 0xef868c}, - {0x8338be34, 0xef868d}, - {0x8338be35, 0xef868e}, - {0x8338be36, 0xef868f}, - {0x8338be37, 0xef8690}, - {0x8338be38, 0xef8691}, - {0x8338be39, 0xef8692}, - {0x8338bf30, 0xef8693}, - {0x8338bf31, 0xef8694}, - {0x8338bf32, 0xef8695}, - {0x8338bf33, 0xef8696}, - {0x8338bf34, 0xef8697}, - {0x8338bf35, 0xef8698}, - {0x8338bf36, 0xef8699}, - {0x8338bf37, 0xef869a}, - {0x8338bf38, 0xef869b}, - {0x8338bf39, 0xef869c}, - {0x8338c030, 0xef869d}, - {0x8338c031, 0xef869e}, - {0x8338c032, 0xef869f}, - {0x8338c033, 0xef86a0}, - {0x8338c034, 0xef86a1}, - {0x8338c035, 0xef86a2}, - {0x8338c036, 0xef86a3}, - {0x8338c037, 0xef86a4}, - {0x8338c038, 0xef86a5}, - {0x8338c039, 0xef86a6}, - {0x8338c130, 0xef86a7}, - {0x8338c131, 0xef86a8}, - {0x8338c132, 0xef86a9}, - {0x8338c133, 0xef86aa}, - {0x8338c134, 0xef86ab}, - {0x8338c135, 0xef86ac}, - {0x8338c136, 0xef86ad}, - {0x8338c137, 0xef86ae}, - {0x8338c138, 0xef86af}, - {0x8338c139, 0xef86b0}, - {0x8338c230, 0xef86b1}, - {0x8338c231, 0xef86b2}, - {0x8338c232, 0xef86b3}, - {0x8338c233, 0xef86b4}, - {0x8338c234, 0xef86b5}, - {0x8338c235, 0xef86b6}, - {0x8338c236, 0xef86b7}, - {0x8338c237, 0xef86b8}, - {0x8338c238, 0xef86b9}, - {0x8338c239, 0xef86ba}, - {0x8338c330, 0xef86bb}, - {0x8338c331, 0xef86bc}, - {0x8338c332, 0xef86bd}, - {0x8338c333, 0xef86be}, - {0x8338c334, 0xef86bf}, - {0x8338c335, 0xef8780}, - {0x8338c336, 0xef8781}, - {0x8338c337, 0xef8782}, - {0x8338c338, 0xef8783}, - {0x8338c339, 0xef8784}, - {0x8338c430, 0xef8785}, - {0x8338c431, 0xef8786}, - {0x8338c432, 0xef8787}, - {0x8338c433, 0xef8788}, - {0x8338c434, 0xef8789}, - {0x8338c435, 0xef878a}, - {0x8338c436, 0xef878b}, - {0x8338c437, 0xef878c}, - {0x8338c438, 0xef878d}, - {0x8338c439, 0xef878e}, - {0x8338c530, 0xef878f}, - {0x8338c531, 0xef8790}, - {0x8338c532, 0xef8791}, - {0x8338c533, 0xef8792}, - {0x8338c534, 0xef8793}, - {0x8338c535, 0xef8794}, - {0x8338c536, 0xef8795}, - {0x8338c537, 0xef8796}, - {0x8338c538, 0xef8797}, - {0x8338c539, 0xef8798}, - {0x8338c630, 0xef8799}, - {0x8338c631, 0xef879a}, - {0x8338c632, 0xef879b}, - {0x8338c633, 0xef879c}, - {0x8338c634, 0xef879d}, - {0x8338c635, 0xef879e}, - {0x8338c636, 0xef879f}, - {0x8338c637, 0xef87a0}, - {0x8338c638, 0xef87a1}, - {0x8338c639, 0xef87a2}, - {0x8338c730, 0xef87a3}, - {0x8338c731, 0xef87a4}, - {0x8338c732, 0xef87a5}, - {0x8338c733, 0xef87a6}, - {0x8338c734, 0xef87a7}, - {0x8338c735, 0xef87a8}, - {0x8338c736, 0xef87a9}, - {0x8338c737, 0xef87aa}, - {0x8338c738, 0xef87ab}, - {0x8338c739, 0xef87ac}, - {0x8338c830, 0xef87ad}, - {0x8338c831, 0xef87ae}, - {0x8338c832, 0xef87af}, - {0x8338c833, 0xef87b0}, - {0x8338c834, 0xef87b1}, - {0x8338c835, 0xef87b2}, - {0x8338c836, 0xef87b3}, - {0x8338c837, 0xef87b4}, - {0x8338c838, 0xef87b5}, - {0x8338c839, 0xef87b6}, - {0x8338c930, 0xef87b7}, - {0x8338c931, 0xef87b8}, - {0x8338c932, 0xef87b9}, - {0x8338c933, 0xef87ba}, - {0x8338c934, 0xef87bb}, - {0x8338c935, 0xef87bc}, - {0x8338c936, 0xef87bd}, - {0x8338c937, 0xef87be}, - {0x8338c938, 0xef87bf}, - {0x8338c939, 0xef8880}, - {0x8338ca30, 0xef8881}, - {0x8338ca31, 0xef8882}, - {0x8338ca32, 0xef8883}, - {0x8338ca33, 0xef8884}, - {0x8338ca34, 0xef8885}, - {0x8338ca35, 0xef8886}, - {0x8338ca36, 0xef8887}, - {0x8338ca37, 0xef8888}, - {0x8338ca38, 0xef8889}, - {0x8338ca39, 0xef888a}, - {0x8338cb30, 0xef888b}, - {0x8338cb31, 0xef888c}, - {0x8338cb32, 0xef888d}, - {0x8338cb33, 0xef888e}, - {0x8338cb34, 0xef888f}, - {0x8338cb35, 0xef8890}, - {0x8338cb36, 0xef8891}, - {0x8338cb37, 0xef8892}, - {0x8338cb38, 0xef8893}, - {0x8338cb39, 0xef8894}, - {0x8338cc30, 0xef8895}, - {0x8338cc31, 0xef8896}, - {0x8338cc32, 0xef8897}, - {0x8338cc33, 0xef8898}, - {0x8338cc34, 0xef8899}, - {0x8338cc35, 0xef889a}, - {0x8338cc36, 0xef889b}, - {0x8338cc37, 0xef889c}, - {0x8338cc38, 0xef889d}, - {0x8338cc39, 0xef889e}, - {0x8338cd30, 0xef889f}, - {0x8338cd31, 0xef88a0}, - {0x8338cd32, 0xef88a1}, - {0x8338cd33, 0xef88a2}, - {0x8338cd34, 0xef88a3}, - {0x8338cd35, 0xef88a4}, - {0x8338cd36, 0xef88a5}, - {0x8338cd37, 0xef88a6}, - {0x8338cd38, 0xef88a7}, - {0x8338cd39, 0xef88a8}, - {0x8338ce30, 0xef88a9}, - {0x8338ce31, 0xef88aa}, - {0x8338ce32, 0xef88ab}, - {0x8338ce33, 0xef88ac}, - {0x8338ce34, 0xef88ad}, - {0x8338ce35, 0xef88ae}, - {0x8338ce36, 0xef88af}, - {0x8338ce37, 0xef88b0}, - {0x8338ce38, 0xef88b1}, - {0x8338ce39, 0xef88b2}, - {0x8338cf30, 0xef88b3}, - {0x8338cf31, 0xef88b4}, - {0x8338cf32, 0xef88b5}, - {0x8338cf33, 0xef88b6}, - {0x8338cf34, 0xef88b7}, - {0x8338cf35, 0xef88b8}, - {0x8338cf36, 0xef88b9}, - {0x8338cf37, 0xef88ba}, - {0x8338cf38, 0xef88bb}, - {0x8338cf39, 0xef88bc}, - {0x8338d030, 0xef88bd}, - {0x8338d031, 0xef88be}, - {0x8338d032, 0xef88bf}, - {0x8338d033, 0xef8980}, - {0x8338d034, 0xef8981}, - {0x8338d035, 0xef8982}, - {0x8338d036, 0xef8983}, - {0x8338d037, 0xef8984}, - {0x8338d038, 0xef8985}, - {0x8338d039, 0xef8986}, - {0x8338d130, 0xef8987}, - {0x8338d131, 0xef8988}, - {0x8338d132, 0xef8989}, - {0x8338d133, 0xef898a}, - {0x8338d134, 0xef898b}, - {0x8338d135, 0xef898c}, - {0x8338d136, 0xef898d}, - {0x8338d137, 0xef898e}, - {0x8338d138, 0xef898f}, - {0x8338d139, 0xef8990}, - {0x8338d230, 0xef8991}, - {0x8338d231, 0xef8992}, - {0x8338d232, 0xef8993}, - {0x8338d233, 0xef8994}, - {0x8338d234, 0xef8995}, - {0x8338d235, 0xef8996}, - {0x8338d236, 0xef8997}, - {0x8338d237, 0xef8998}, - {0x8338d238, 0xef8999}, - {0x8338d239, 0xef899a}, - {0x8338d330, 0xef899b}, - {0x8338d331, 0xef899c}, - {0x8338d332, 0xef899d}, - {0x8338d333, 0xef899e}, - {0x8338d334, 0xef899f}, - {0x8338d335, 0xef89a0}, - {0x8338d336, 0xef89a1}, - {0x8338d337, 0xef89a2}, - {0x8338d338, 0xef89a3}, - {0x8338d339, 0xef89a4}, - {0x8338d430, 0xef89a5}, - {0x8338d431, 0xef89a6}, - {0x8338d432, 0xef89a7}, - {0x8338d433, 0xef89a8}, - {0x8338d434, 0xef89a9}, - {0x8338d435, 0xef89aa}, - {0x8338d436, 0xef89ab}, - {0x8338d437, 0xef89ac}, - {0x8338d438, 0xef89ad}, - {0x8338d439, 0xef89ae}, - {0x8338d530, 0xef89af}, - {0x8338d531, 0xef89b0}, - {0x8338d532, 0xef89b1}, - {0x8338d533, 0xef89b2}, - {0x8338d534, 0xef89b3}, - {0x8338d535, 0xef89b4}, - {0x8338d536, 0xef89b5}, - {0x8338d537, 0xef89b6}, - {0x8338d538, 0xef89b7}, - {0x8338d539, 0xef89b8}, - {0x8338d630, 0xef89b9}, - {0x8338d631, 0xef89ba}, - {0x8338d632, 0xef89bb}, - {0x8338d633, 0xef89bc}, - {0x8338d634, 0xef89bd}, - {0x8338d635, 0xef89be}, - {0x8338d636, 0xef89bf}, - {0x8338d637, 0xef8a80}, - {0x8338d638, 0xef8a81}, - {0x8338d639, 0xef8a82}, - {0x8338d730, 0xef8a83}, - {0x8338d731, 0xef8a84}, - {0x8338d732, 0xef8a85}, - {0x8338d733, 0xef8a86}, - {0x8338d734, 0xef8a87}, - {0x8338d735, 0xef8a88}, - {0x8338d736, 0xef8a89}, - {0x8338d737, 0xef8a8a}, - {0x8338d738, 0xef8a8b}, - {0x8338d739, 0xef8a8c}, - {0x8338d830, 0xef8a8d}, - {0x8338d831, 0xef8a8e}, - {0x8338d832, 0xef8a8f}, - {0x8338d833, 0xef8a90}, - {0x8338d834, 0xef8a91}, - {0x8338d835, 0xef8a92}, - {0x8338d836, 0xef8a93}, - {0x8338d837, 0xef8a94}, - {0x8338d838, 0xef8a95}, - {0x8338d839, 0xef8a96}, - {0x8338d930, 0xef8a97}, - {0x8338d931, 0xef8a98}, - {0x8338d932, 0xef8a99}, - {0x8338d933, 0xef8a9a}, - {0x8338d934, 0xef8a9b}, - {0x8338d935, 0xef8a9c}, - {0x8338d936, 0xef8a9d}, - {0x8338d937, 0xef8a9e}, - {0x8338d938, 0xef8a9f}, - {0x8338d939, 0xef8aa0}, - {0x8338da30, 0xef8aa1}, - {0x8338da31, 0xef8aa2}, - {0x8338da32, 0xef8aa3}, - {0x8338da33, 0xef8aa4}, - {0x8338da34, 0xef8aa5}, - {0x8338da35, 0xef8aa6}, - {0x8338da36, 0xef8aa7}, - {0x8338da37, 0xef8aa8}, - {0x8338da38, 0xef8aa9}, - {0x8338da39, 0xef8aaa}, - {0x8338db30, 0xef8aab}, - {0x8338db31, 0xef8aac}, - {0x8338db32, 0xef8aad}, - {0x8338db33, 0xef8aae}, - {0x8338db34, 0xef8aaf}, - {0x8338db35, 0xef8ab0}, - {0x8338db36, 0xef8ab1}, - {0x8338db37, 0xef8ab2}, - {0x8338db38, 0xef8ab3}, - {0x8338db39, 0xef8ab4}, - {0x8338dc30, 0xef8ab5}, - {0x8338dc31, 0xef8ab6}, - {0x8338dc32, 0xef8ab7}, - {0x8338dc33, 0xef8ab8}, - {0x8338dc34, 0xef8ab9}, - {0x8338dc35, 0xef8aba}, - {0x8338dc36, 0xef8abb}, - {0x8338dc37, 0xef8abc}, - {0x8338dc38, 0xef8abd}, - {0x8338dc39, 0xef8abe}, - {0x8338dd30, 0xef8abf}, - {0x8338dd31, 0xef8b80}, - {0x8338dd32, 0xef8b81}, - {0x8338dd33, 0xef8b82}, - {0x8338dd34, 0xef8b83}, - {0x8338dd35, 0xef8b84}, - {0x8338dd36, 0xef8b85}, - {0x8338dd37, 0xef8b86}, - {0x8338dd38, 0xef8b87}, - {0x8338dd39, 0xef8b88}, - {0x8338de30, 0xef8b89}, - {0x8338de31, 0xef8b8a}, - {0x8338de32, 0xef8b8b}, - {0x8338de33, 0xef8b8c}, - {0x8338de34, 0xef8b8d}, - {0x8338de35, 0xef8b8e}, - {0x8338de36, 0xef8b8f}, - {0x8338de37, 0xef8b90}, - {0x8338de38, 0xef8b91}, - {0x8338de39, 0xef8b92}, - {0x8338df30, 0xef8b93}, - {0x8338df31, 0xef8b94}, - {0x8338df32, 0xef8b95}, - {0x8338df33, 0xef8b96}, - {0x8338df34, 0xef8b97}, - {0x8338df35, 0xef8b98}, - {0x8338df36, 0xef8b99}, - {0x8338df37, 0xef8b9a}, - {0x8338df38, 0xef8b9b}, - {0x8338df39, 0xef8b9c}, - {0x8338e030, 0xef8b9d}, - {0x8338e031, 0xef8b9e}, - {0x8338e032, 0xef8b9f}, - {0x8338e033, 0xef8ba0}, - {0x8338e034, 0xef8ba1}, - {0x8338e035, 0xef8ba2}, - {0x8338e036, 0xef8ba3}, - {0x8338e037, 0xef8ba4}, - {0x8338e038, 0xef8ba5}, - {0x8338e039, 0xef8ba6}, - {0x8338e130, 0xef8ba7}, - {0x8338e131, 0xef8ba8}, - {0x8338e132, 0xef8ba9}, - {0x8338e133, 0xef8baa}, - {0x8338e134, 0xef8bab}, - {0x8338e135, 0xef8bac}, - {0x8338e136, 0xef8bad}, - {0x8338e137, 0xef8bae}, - {0x8338e138, 0xef8baf}, - {0x8338e139, 0xef8bb0}, - {0x8338e230, 0xef8bb1}, - {0x8338e231, 0xef8bb2}, - {0x8338e232, 0xef8bb3}, - {0x8338e233, 0xef8bb4}, - {0x8338e234, 0xef8bb5}, - {0x8338e235, 0xef8bb6}, - {0x8338e236, 0xef8bb7}, - {0x8338e237, 0xef8bb8}, - {0x8338e238, 0xef8bb9}, - {0x8338e239, 0xef8bba}, - {0x8338e330, 0xef8bbb}, - {0x8338e331, 0xef8bbc}, - {0x8338e332, 0xef8bbd}, - {0x8338e333, 0xef8bbe}, - {0x8338e334, 0xef8bbf}, - {0x8338e335, 0xef8c80}, - {0x8338e336, 0xef8c81}, - {0x8338e337, 0xef8c82}, - {0x8338e338, 0xef8c83}, - {0x8338e339, 0xef8c84}, - {0x8338e430, 0xef8c85}, - {0x8338e431, 0xef8c86}, - {0x8338e432, 0xef8c87}, - {0x8338e433, 0xef8c88}, - {0x8338e434, 0xef8c89}, - {0x8338e435, 0xef8c8a}, - {0x8338e436, 0xef8c8b}, - {0x8338e437, 0xef8c8c}, - {0x8338e438, 0xef8c8d}, - {0x8338e439, 0xef8c8e}, - {0x8338e530, 0xef8c8f}, - {0x8338e531, 0xef8c90}, - {0x8338e532, 0xef8c91}, - {0x8338e533, 0xef8c92}, - {0x8338e534, 0xef8c93}, - {0x8338e535, 0xef8c94}, - {0x8338e536, 0xef8c95}, - {0x8338e537, 0xef8c96}, - {0x8338e538, 0xef8c97}, - {0x8338e539, 0xef8c98}, - {0x8338e630, 0xef8c99}, - {0x8338e631, 0xef8c9a}, - {0x8338e632, 0xef8c9b}, - {0x8338e633, 0xef8c9c}, - {0x8338e634, 0xef8c9d}, - {0x8338e635, 0xef8c9e}, - {0x8338e636, 0xef8c9f}, - {0x8338e637, 0xef8ca0}, - {0x8338e638, 0xef8ca1}, - {0x8338e639, 0xef8ca2}, - {0x8338e730, 0xef8ca3}, - {0x8338e731, 0xef8ca4}, - {0x8338e732, 0xef8ca5}, - {0x8338e733, 0xef8ca6}, - {0x8338e734, 0xef8ca7}, - {0x8338e735, 0xef8ca8}, - {0x8338e736, 0xef8ca9}, - {0x8338e737, 0xef8caa}, - {0x8338e738, 0xef8cab}, - {0x8338e739, 0xef8cac}, - {0x8338e830, 0xef8cad}, - {0x8338e831, 0xef8cae}, - {0x8338e832, 0xef8caf}, - {0x8338e833, 0xef8cb0}, - {0x8338e834, 0xef8cb1}, - {0x8338e835, 0xef8cb2}, - {0x8338e836, 0xef8cb3}, - {0x8338e837, 0xef8cb4}, - {0x8338e838, 0xef8cb5}, - {0x8338e839, 0xef8cb6}, - {0x8338e930, 0xef8cb7}, - {0x8338e931, 0xef8cb8}, - {0x8338e932, 0xef8cb9}, - {0x8338e933, 0xef8cba}, - {0x8338e934, 0xef8cbb}, - {0x8338e935, 0xef8cbc}, - {0x8338e936, 0xef8cbd}, - {0x8338e937, 0xef8cbe}, - {0x8338e938, 0xef8cbf}, - {0x8338e939, 0xef8d80}, - {0x8338ea30, 0xef8d81}, - {0x8338ea31, 0xef8d82}, - {0x8338ea32, 0xef8d83}, - {0x8338ea33, 0xef8d84}, - {0x8338ea34, 0xef8d85}, - {0x8338ea35, 0xef8d86}, - {0x8338ea36, 0xef8d87}, - {0x8338ea37, 0xef8d88}, - {0x8338ea38, 0xef8d89}, - {0x8338ea39, 0xef8d8a}, - {0x8338eb30, 0xef8d8b}, - {0x8338eb31, 0xef8d8c}, - {0x8338eb32, 0xef8d8d}, - {0x8338eb33, 0xef8d8e}, - {0x8338eb34, 0xef8d8f}, - {0x8338eb35, 0xef8d90}, - {0x8338eb36, 0xef8d91}, - {0x8338eb37, 0xef8d92}, - {0x8338eb38, 0xef8d93}, - {0x8338eb39, 0xef8d94}, - {0x8338ec30, 0xef8d95}, - {0x8338ec31, 0xef8d96}, - {0x8338ec32, 0xef8d97}, - {0x8338ec33, 0xef8d98}, - {0x8338ec34, 0xef8d99}, - {0x8338ec35, 0xef8d9a}, - {0x8338ec36, 0xef8d9b}, - {0x8338ec37, 0xef8d9c}, - {0x8338ec38, 0xef8d9d}, - {0x8338ec39, 0xef8d9e}, - {0x8338ed30, 0xef8d9f}, - {0x8338ed31, 0xef8da0}, - {0x8338ed32, 0xef8da1}, - {0x8338ed33, 0xef8da2}, - {0x8338ed34, 0xef8da3}, - {0x8338ed35, 0xef8da4}, - {0x8338ed36, 0xef8da5}, - {0x8338ed37, 0xef8da6}, - {0x8338ed38, 0xef8da7}, - {0x8338ed39, 0xef8da8}, - {0x8338ee30, 0xef8da9}, - {0x8338ee31, 0xef8daa}, - {0x8338ee32, 0xef8dab}, - {0x8338ee33, 0xef8dac}, - {0x8338ee34, 0xef8dad}, - {0x8338ee35, 0xef8dae}, - {0x8338ee36, 0xef8daf}, - {0x8338ee37, 0xef8db0}, - {0x8338ee38, 0xef8db1}, - {0x8338ee39, 0xef8db2}, - {0x8338ef30, 0xef8db3}, - {0x8338ef31, 0xef8db4}, - {0x8338ef32, 0xef8db5}, - {0x8338ef33, 0xef8db6}, - {0x8338ef34, 0xef8db7}, - {0x8338ef35, 0xef8db8}, - {0x8338ef36, 0xef8db9}, - {0x8338ef37, 0xef8dba}, - {0x8338ef38, 0xef8dbb}, - {0x8338ef39, 0xef8dbc}, - {0x8338f030, 0xef8dbd}, - {0x8338f031, 0xef8dbe}, - {0x8338f032, 0xef8dbf}, - {0x8338f033, 0xef8e80}, - {0x8338f034, 0xef8e81}, - {0x8338f035, 0xef8e82}, - {0x8338f036, 0xef8e83}, - {0x8338f037, 0xef8e84}, - {0x8338f038, 0xef8e85}, - {0x8338f039, 0xef8e86}, - {0x8338f130, 0xef8e87}, - {0x8338f131, 0xef8e88}, - {0x8338f132, 0xef8e89}, - {0x8338f133, 0xef8e8a}, - {0x8338f134, 0xef8e8b}, - {0x8338f135, 0xef8e8c}, - {0x8338f136, 0xef8e8d}, - {0x8338f137, 0xef8e8e}, - {0x8338f138, 0xef8e8f}, - {0x8338f139, 0xef8e90}, - {0x8338f230, 0xef8e91}, - {0x8338f231, 0xef8e92}, - {0x8338f232, 0xef8e93}, - {0x8338f233, 0xef8e94}, - {0x8338f234, 0xef8e95}, - {0x8338f235, 0xef8e96}, - {0x8338f236, 0xef8e97}, - {0x8338f237, 0xef8e98}, - {0x8338f238, 0xef8e99}, - {0x8338f239, 0xef8e9a}, - {0x8338f330, 0xef8e9b}, - {0x8338f331, 0xef8e9c}, - {0x8338f332, 0xef8e9d}, - {0x8338f333, 0xef8e9e}, - {0x8338f334, 0xef8e9f}, - {0x8338f335, 0xef8ea0}, - {0x8338f336, 0xef8ea1}, - {0x8338f337, 0xef8ea2}, - {0x8338f338, 0xef8ea3}, - {0x8338f339, 0xef8ea4}, - {0x8338f430, 0xef8ea5}, - {0x8338f431, 0xef8ea6}, - {0x8338f432, 0xef8ea7}, - {0x8338f433, 0xef8ea8}, - {0x8338f434, 0xef8ea9}, - {0x8338f435, 0xef8eaa}, - {0x8338f436, 0xef8eab}, - {0x8338f437, 0xef8eac}, - {0x8338f438, 0xef8ead}, - {0x8338f439, 0xef8eae}, - {0x8338f530, 0xef8eaf}, - {0x8338f531, 0xef8eb0}, - {0x8338f532, 0xef8eb1}, - {0x8338f533, 0xef8eb2}, - {0x8338f534, 0xef8eb3}, - {0x8338f535, 0xef8eb4}, - {0x8338f536, 0xef8eb5}, - {0x8338f537, 0xef8eb6}, - {0x8338f538, 0xef8eb7}, - {0x8338f539, 0xef8eb8}, - {0x8338f630, 0xef8eb9}, - {0x8338f631, 0xef8eba}, - {0x8338f632, 0xef8ebb}, - {0x8338f633, 0xef8ebc}, - {0x8338f634, 0xef8ebd}, - {0x8338f635, 0xef8ebe}, - {0x8338f636, 0xef8ebf}, - {0x8338f637, 0xef8f80}, - {0x8338f638, 0xef8f81}, - {0x8338f639, 0xef8f82}, - {0x8338f730, 0xef8f83}, - {0x8338f731, 0xef8f84}, - {0x8338f732, 0xef8f85}, - {0x8338f733, 0xef8f86}, - {0x8338f734, 0xef8f87}, - {0x8338f735, 0xef8f88}, - {0x8338f736, 0xef8f89}, - {0x8338f737, 0xef8f8a}, - {0x8338f738, 0xef8f8b}, - {0x8338f739, 0xef8f8c}, - {0x8338f830, 0xef8f8d}, - {0x8338f831, 0xef8f8e}, - {0x8338f832, 0xef8f8f}, - {0x8338f833, 0xef8f90}, - {0x8338f834, 0xef8f91}, - {0x8338f835, 0xef8f92}, - {0x8338f836, 0xef8f93}, - {0x8338f837, 0xef8f94}, - {0x8338f838, 0xef8f95}, - {0x8338f839, 0xef8f96}, - {0x8338f930, 0xef8f97}, - {0x8338f931, 0xef8f98}, - {0x8338f932, 0xef8f99}, - {0x8338f933, 0xef8f9a}, - {0x8338f934, 0xef8f9b}, - {0x8338f935, 0xef8f9c}, - {0x8338f936, 0xef8f9d}, - {0x8338f937, 0xef8f9e}, - {0x8338f938, 0xef8f9f}, - {0x8338f939, 0xef8fa0}, - {0x8338fa30, 0xef8fa1}, - {0x8338fa31, 0xef8fa2}, - {0x8338fa32, 0xef8fa3}, - {0x8338fa33, 0xef8fa4}, - {0x8338fa34, 0xef8fa5}, - {0x8338fa35, 0xef8fa6}, - {0x8338fa36, 0xef8fa7}, - {0x8338fa37, 0xef8fa8}, - {0x8338fa38, 0xef8fa9}, - {0x8338fa39, 0xef8faa}, - {0x8338fb30, 0xef8fab}, - {0x8338fb31, 0xef8fac}, - {0x8338fb32, 0xef8fad}, - {0x8338fb33, 0xef8fae}, - {0x8338fb34, 0xef8faf}, - {0x8338fb35, 0xef8fb0}, - {0x8338fb36, 0xef8fb1}, - {0x8338fb37, 0xef8fb2}, - {0x8338fb38, 0xef8fb3}, - {0x8338fb39, 0xef8fb4}, - {0x8338fc30, 0xef8fb5}, - {0x8338fc31, 0xef8fb6}, - {0x8338fc32, 0xef8fb7}, - {0x8338fc33, 0xef8fb8}, - {0x8338fc34, 0xef8fb9}, - {0x8338fc35, 0xef8fba}, - {0x8338fc36, 0xef8fbb}, - {0x8338fc37, 0xef8fbc}, - {0x8338fc38, 0xef8fbd}, - {0x8338fc39, 0xef8fbe}, - {0x8338fd30, 0xef8fbf}, - {0x8338fd31, 0xef9080}, - {0x8338fd32, 0xef9081}, - {0x8338fd33, 0xef9082}, - {0x8338fd34, 0xef9083}, - {0x8338fd35, 0xef9084}, - {0x8338fd36, 0xef9085}, - {0x8338fd37, 0xef9086}, - {0x8338fd38, 0xef9087}, - {0x8338fd39, 0xef9088}, - {0x8338fe30, 0xef9089}, - {0x8338fe31, 0xef908a}, - {0x8338fe32, 0xef908b}, - {0x8338fe33, 0xef908c}, - {0x8338fe34, 0xef908d}, - {0x8338fe35, 0xef908e}, - {0x8338fe36, 0xef908f}, - {0x8338fe37, 0xef9090}, - {0x8338fe38, 0xef9091}, - {0x8338fe39, 0xef9092}, - {0x83398130, 0xef9093}, - {0x83398131, 0xef9094}, - {0x83398132, 0xef9095}, - {0x83398133, 0xef9096}, - {0x83398134, 0xef9097}, - {0x83398135, 0xef9098}, - {0x83398136, 0xef9099}, - {0x83398137, 0xef909a}, - {0x83398138, 0xef909b}, - {0x83398139, 0xef909c}, - {0x83398230, 0xef909d}, - {0x83398231, 0xef909e}, - {0x83398232, 0xef909f}, - {0x83398233, 0xef90a0}, - {0x83398234, 0xef90a1}, - {0x83398235, 0xef90a2}, - {0x83398236, 0xef90a3}, - {0x83398237, 0xef90a4}, - {0x83398238, 0xef90a5}, - {0x83398239, 0xef90a6}, - {0x83398330, 0xef90a7}, - {0x83398331, 0xef90a8}, - {0x83398332, 0xef90a9}, - {0x83398333, 0xef90aa}, - {0x83398334, 0xef90ab}, - {0x83398335, 0xef90ac}, - {0x83398336, 0xef90ad}, - {0x83398337, 0xef90ae}, - {0x83398338, 0xef90af}, - {0x83398339, 0xef90b0}, - {0x83398430, 0xef90b1}, - {0x83398431, 0xef90b2}, - {0x83398432, 0xef90b3}, - {0x83398433, 0xef90b4}, - {0x83398434, 0xef90b5}, - {0x83398435, 0xef90b6}, - {0x83398436, 0xef90b7}, - {0x83398437, 0xef90b8}, - {0x83398438, 0xef90b9}, - {0x83398439, 0xef90ba}, - {0x83398530, 0xef90bb}, - {0x83398531, 0xef90bc}, - {0x83398532, 0xef90bd}, - {0x83398533, 0xef90be}, - {0x83398534, 0xef90bf}, - {0x83398535, 0xef9180}, - {0x83398536, 0xef9181}, - {0x83398537, 0xef9182}, - {0x83398538, 0xef9183}, - {0x83398539, 0xef9184}, - {0x83398630, 0xef9185}, - {0x83398631, 0xef9186}, - {0x83398632, 0xef9187}, - {0x83398633, 0xef9188}, - {0x83398634, 0xef9189}, - {0x83398635, 0xef918a}, - {0x83398636, 0xef918b}, - {0x83398637, 0xef918c}, - {0x83398638, 0xef918d}, - {0x83398639, 0xef918e}, - {0x83398730, 0xef918f}, - {0x83398731, 0xef9190}, - {0x83398732, 0xef9191}, - {0x83398733, 0xef9192}, - {0x83398734, 0xef9193}, - {0x83398735, 0xef9194}, - {0x83398736, 0xef9195}, - {0x83398737, 0xef9196}, - {0x83398738, 0xef9197}, - {0x83398739, 0xef9198}, - {0x83398830, 0xef9199}, - {0x83398831, 0xef919a}, - {0x83398832, 0xef919b}, - {0x83398833, 0xef919c}, - {0x83398834, 0xef919d}, - {0x83398835, 0xef919e}, - {0x83398836, 0xef919f}, - {0x83398837, 0xef91a0}, - {0x83398838, 0xef91a1}, - {0x83398839, 0xef91a2}, - {0x83398930, 0xef91a3}, - {0x83398931, 0xef91a4}, - {0x83398932, 0xef91a5}, - {0x83398933, 0xef91a6}, - {0x83398934, 0xef91a7}, - {0x83398935, 0xef91a8}, - {0x83398936, 0xef91a9}, - {0x83398937, 0xef91aa}, - {0x83398938, 0xef91ab}, - {0x83398939, 0xef91ac}, - {0x83398a30, 0xef91ad}, - {0x83398a31, 0xef91ae}, - {0x83398a32, 0xef91af}, - {0x83398a33, 0xef91b0}, - {0x83398a34, 0xef91b1}, - {0x83398a35, 0xef91b2}, - {0x83398a36, 0xef91b3}, - {0x83398a37, 0xef91b4}, - {0x83398a38, 0xef91b5}, - {0x83398a39, 0xef91b6}, - {0x83398b30, 0xef91b7}, - {0x83398b31, 0xef91b8}, - {0x83398b32, 0xef91b9}, - {0x83398b33, 0xef91ba}, - {0x83398b34, 0xef91bb}, - {0x83398b35, 0xef91bc}, - {0x83398b36, 0xef91bd}, - {0x83398b37, 0xef91be}, - {0x83398b38, 0xef91bf}, - {0x83398b39, 0xef9280}, - {0x83398c30, 0xef9281}, - {0x83398c31, 0xef9282}, - {0x83398c32, 0xef9283}, - {0x83398c33, 0xef9284}, - {0x83398c34, 0xef9285}, - {0x83398c35, 0xef9286}, - {0x83398c36, 0xef9287}, - {0x83398c37, 0xef9288}, - {0x83398c38, 0xef9289}, - {0x83398c39, 0xef928a}, - {0x83398d30, 0xef928b}, - {0x83398d31, 0xef928c}, - {0x83398d32, 0xef928d}, - {0x83398d33, 0xef928e}, - {0x83398d34, 0xef928f}, - {0x83398d35, 0xef9290}, - {0x83398d36, 0xef9291}, - {0x83398d37, 0xef9292}, - {0x83398d38, 0xef9293}, - {0x83398d39, 0xef9294}, - {0x83398e30, 0xef9295}, - {0x83398e31, 0xef9296}, - {0x83398e32, 0xef9297}, - {0x83398e33, 0xef9298}, - {0x83398e34, 0xef9299}, - {0x83398e35, 0xef929a}, - {0x83398e36, 0xef929b}, - {0x83398e37, 0xef929c}, - {0x83398e38, 0xef929d}, - {0x83398e39, 0xef929e}, - {0x83398f30, 0xef929f}, - {0x83398f31, 0xef92a0}, - {0x83398f32, 0xef92a1}, - {0x83398f33, 0xef92a2}, - {0x83398f34, 0xef92a3}, - {0x83398f35, 0xef92a4}, - {0x83398f36, 0xef92a5}, - {0x83398f37, 0xef92a6}, - {0x83398f38, 0xef92a7}, - {0x83398f39, 0xef92a8}, - {0x83399030, 0xef92a9}, - {0x83399031, 0xef92aa}, - {0x83399032, 0xef92ab}, - {0x83399033, 0xef92ac}, - {0x83399034, 0xef92ad}, - {0x83399035, 0xef92ae}, - {0x83399036, 0xef92af}, - {0x83399037, 0xef92b0}, - {0x83399038, 0xef92b1}, - {0x83399039, 0xef92b2}, - {0x83399130, 0xef92b3}, - {0x83399131, 0xef92b4}, - {0x83399132, 0xef92b5}, - {0x83399133, 0xef92b6}, - {0x83399134, 0xef92b7}, - {0x83399135, 0xef92b8}, - {0x83399136, 0xef92b9}, - {0x83399137, 0xef92ba}, - {0x83399138, 0xef92bb}, - {0x83399139, 0xef92bc}, - {0x83399230, 0xef92bd}, - {0x83399231, 0xef92be}, - {0x83399232, 0xef92bf}, - {0x83399233, 0xef9380}, - {0x83399234, 0xef9381}, - {0x83399235, 0xef9382}, - {0x83399236, 0xef9383}, - {0x83399237, 0xef9384}, - {0x83399238, 0xef9385}, - {0x83399239, 0xef9386}, - {0x83399330, 0xef9387}, - {0x83399331, 0xef9388}, - {0x83399332, 0xef9389}, - {0x83399333, 0xef938a}, - {0x83399334, 0xef938b}, - {0x83399335, 0xef938c}, - {0x83399336, 0xef938d}, - {0x83399337, 0xef938e}, - {0x83399338, 0xef938f}, - {0x83399339, 0xef9390}, - {0x83399430, 0xef9391}, - {0x83399431, 0xef9392}, - {0x83399432, 0xef9393}, - {0x83399433, 0xef9394}, - {0x83399434, 0xef9395}, - {0x83399435, 0xef9396}, - {0x83399436, 0xef9397}, - {0x83399437, 0xef9398}, - {0x83399438, 0xef9399}, - {0x83399439, 0xef939a}, - {0x83399530, 0xef939b}, - {0x83399531, 0xef939c}, - {0x83399532, 0xef939d}, - {0x83399533, 0xef939e}, - {0x83399534, 0xef939f}, - {0x83399535, 0xef93a0}, - {0x83399536, 0xef93a1}, - {0x83399537, 0xef93a2}, - {0x83399538, 0xef93a3}, - {0x83399539, 0xef93a4}, - {0x83399630, 0xef93a5}, - {0x83399631, 0xef93a6}, - {0x83399632, 0xef93a7}, - {0x83399633, 0xef93a8}, - {0x83399634, 0xef93a9}, - {0x83399635, 0xef93aa}, - {0x83399636, 0xef93ab}, - {0x83399637, 0xef93ac}, - {0x83399638, 0xef93ad}, - {0x83399639, 0xef93ae}, - {0x83399730, 0xef93af}, - {0x83399731, 0xef93b0}, - {0x83399732, 0xef93b1}, - {0x83399733, 0xef93b2}, - {0x83399734, 0xef93b3}, - {0x83399735, 0xef93b4}, - {0x83399736, 0xef93b5}, - {0x83399737, 0xef93b6}, - {0x83399738, 0xef93b7}, - {0x83399739, 0xef93b8}, - {0x83399830, 0xef93b9}, - {0x83399831, 0xef93ba}, - {0x83399832, 0xef93bb}, - {0x83399833, 0xef93bc}, - {0x83399834, 0xef93bd}, - {0x83399835, 0xef93be}, - {0x83399836, 0xef93bf}, - {0x83399837, 0xef9480}, - {0x83399838, 0xef9481}, - {0x83399839, 0xef9482}, - {0x83399930, 0xef9483}, - {0x83399931, 0xef9484}, - {0x83399932, 0xef9485}, - {0x83399933, 0xef9486}, - {0x83399934, 0xef9487}, - {0x83399935, 0xef9488}, - {0x83399936, 0xef9489}, - {0x83399937, 0xef948a}, - {0x83399938, 0xef948b}, - {0x83399939, 0xef948c}, - {0x83399a30, 0xef948d}, - {0x83399a31, 0xef948e}, - {0x83399a32, 0xef948f}, - {0x83399a33, 0xef9490}, - {0x83399a34, 0xef9491}, - {0x83399a35, 0xef9492}, - {0x83399a36, 0xef9493}, - {0x83399a37, 0xef9494}, - {0x83399a38, 0xef9495}, - {0x83399a39, 0xef9496}, - {0x83399b30, 0xef9497}, - {0x83399b31, 0xef9498}, - {0x83399b32, 0xef9499}, - {0x83399b33, 0xef949a}, - {0x83399b34, 0xef949b}, - {0x83399b35, 0xef949c}, - {0x83399b36, 0xef949d}, - {0x83399b37, 0xef949e}, - {0x83399b38, 0xef949f}, - {0x83399b39, 0xef94a0}, - {0x83399c30, 0xef94a1}, - {0x83399c31, 0xef94a2}, - {0x83399c32, 0xef94a3}, - {0x83399c33, 0xef94a4}, - {0x83399c34, 0xef94a5}, - {0x83399c35, 0xef94a6}, - {0x83399c36, 0xef94a7}, - {0x83399c37, 0xef94a8}, - {0x83399c38, 0xef94a9}, - {0x83399c39, 0xef94aa}, - {0x83399d30, 0xef94ab}, - {0x83399d31, 0xef94ac}, - {0x83399d32, 0xef94ad}, - {0x83399d33, 0xef94ae}, - {0x83399d34, 0xef94af}, - {0x83399d35, 0xef94b0}, - {0x83399d36, 0xef94b1}, - {0x83399d37, 0xef94b2}, - {0x83399d38, 0xef94b3}, - {0x83399d39, 0xef94b4}, - {0x83399e30, 0xef94b5}, - {0x83399e31, 0xef94b6}, - {0x83399e32, 0xef94b7}, - {0x83399e33, 0xef94b8}, - {0x83399e34, 0xef94b9}, - {0x83399e35, 0xef94ba}, - {0x83399e36, 0xef94bb}, - {0x83399e37, 0xef94bc}, - {0x83399e38, 0xef94bd}, - {0x83399e39, 0xef94be}, - {0x83399f30, 0xef94bf}, - {0x83399f31, 0xef9580}, - {0x83399f32, 0xef9581}, - {0x83399f33, 0xef9582}, - {0x83399f34, 0xef9583}, - {0x83399f35, 0xef9584}, - {0x83399f36, 0xef9585}, - {0x83399f37, 0xef9586}, - {0x83399f38, 0xef9587}, - {0x83399f39, 0xef9588}, - {0x8339a030, 0xef9589}, - {0x8339a031, 0xef958a}, - {0x8339a032, 0xef958b}, - {0x8339a033, 0xef958c}, - {0x8339a034, 0xef958d}, - {0x8339a035, 0xef958e}, - {0x8339a036, 0xef958f}, - {0x8339a037, 0xef9590}, - {0x8339a038, 0xef9591}, - {0x8339a039, 0xef9592}, - {0x8339a130, 0xef9593}, - {0x8339a131, 0xef9594}, - {0x8339a132, 0xef9595}, - {0x8339a133, 0xef9596}, - {0x8339a134, 0xef9597}, - {0x8339a135, 0xef9598}, - {0x8339a136, 0xef9599}, - {0x8339a137, 0xef959a}, - {0x8339a138, 0xef959b}, - {0x8339a139, 0xef959c}, - {0x8339a230, 0xef959d}, - {0x8339a231, 0xef959e}, - {0x8339a232, 0xef959f}, - {0x8339a233, 0xef95a0}, - {0x8339a234, 0xef95a1}, - {0x8339a235, 0xef95a2}, - {0x8339a236, 0xef95a3}, - {0x8339a237, 0xef95a4}, - {0x8339a238, 0xef95a5}, - {0x8339a239, 0xef95a6}, - {0x8339a330, 0xef95a7}, - {0x8339a331, 0xef95a8}, - {0x8339a332, 0xef95a9}, - {0x8339a333, 0xef95aa}, - {0x8339a334, 0xef95ab}, - {0x8339a335, 0xef95ac}, - {0x8339a336, 0xef95ad}, - {0x8339a337, 0xef95ae}, - {0x8339a338, 0xef95af}, - {0x8339a339, 0xef95b0}, - {0x8339a430, 0xef95b1}, - {0x8339a431, 0xef95b2}, - {0x8339a432, 0xef95b3}, - {0x8339a433, 0xef95b4}, - {0x8339a434, 0xef95b5}, - {0x8339a435, 0xef95b6}, - {0x8339a436, 0xef95b7}, - {0x8339a437, 0xef95b8}, - {0x8339a438, 0xef95b9}, - {0x8339a439, 0xef95ba}, - {0x8339a530, 0xef95bb}, - {0x8339a531, 0xef95bc}, - {0x8339a532, 0xef95bd}, - {0x8339a533, 0xef95be}, - {0x8339a534, 0xef95bf}, - {0x8339a535, 0xef9680}, - {0x8339a536, 0xef9681}, - {0x8339a537, 0xef9682}, - {0x8339a538, 0xef9683}, - {0x8339a539, 0xef9684}, - {0x8339a630, 0xef9685}, - {0x8339a631, 0xef9686}, - {0x8339a632, 0xef9687}, - {0x8339a633, 0xef9688}, - {0x8339a634, 0xef9689}, - {0x8339a635, 0xef968a}, - {0x8339a636, 0xef968b}, - {0x8339a637, 0xef968c}, - {0x8339a638, 0xef968d}, - {0x8339a639, 0xef968e}, - {0x8339a730, 0xef968f}, - {0x8339a731, 0xef9690}, - {0x8339a732, 0xef9691}, - {0x8339a733, 0xef9692}, - {0x8339a734, 0xef9693}, - {0x8339a735, 0xef9694}, - {0x8339a736, 0xef9695}, - {0x8339a737, 0xef9696}, - {0x8339a738, 0xef9697}, - {0x8339a739, 0xef9698}, - {0x8339a830, 0xef9699}, - {0x8339a831, 0xef969a}, - {0x8339a832, 0xef969b}, - {0x8339a833, 0xef969c}, - {0x8339a834, 0xef969d}, - {0x8339a835, 0xef969e}, - {0x8339a836, 0xef969f}, - {0x8339a837, 0xef96a0}, - {0x8339a838, 0xef96a1}, - {0x8339a839, 0xef96a2}, - {0x8339a930, 0xef96a3}, - {0x8339a931, 0xef96a4}, - {0x8339a932, 0xef96a5}, - {0x8339a933, 0xef96a6}, - {0x8339a934, 0xef96a7}, - {0x8339a935, 0xef96a8}, - {0x8339a936, 0xef96a9}, - {0x8339a937, 0xef96aa}, - {0x8339a938, 0xef96ab}, - {0x8339a939, 0xef96ac}, - {0x8339aa30, 0xef96ad}, - {0x8339aa31, 0xef96ae}, - {0x8339aa32, 0xef96af}, - {0x8339aa33, 0xef96b0}, - {0x8339aa34, 0xef96b1}, - {0x8339aa35, 0xef96b2}, - {0x8339aa36, 0xef96b3}, - {0x8339aa37, 0xef96b4}, - {0x8339aa38, 0xef96b5}, - {0x8339aa39, 0xef96b6}, - {0x8339ab30, 0xef96b7}, - {0x8339ab31, 0xef96b8}, - {0x8339ab32, 0xef96b9}, - {0x8339ab33, 0xef96ba}, - {0x8339ab34, 0xef96bb}, - {0x8339ab35, 0xef96bc}, - {0x8339ab36, 0xef96bd}, - {0x8339ab37, 0xef96be}, - {0x8339ab38, 0xef96bf}, - {0x8339ab39, 0xef9780}, - {0x8339ac30, 0xef9781}, - {0x8339ac31, 0xef9782}, - {0x8339ac32, 0xef9783}, - {0x8339ac33, 0xef9784}, - {0x8339ac34, 0xef9785}, - {0x8339ac35, 0xef9786}, - {0x8339ac36, 0xef9787}, - {0x8339ac37, 0xef9788}, - {0x8339ac38, 0xef9789}, - {0x8339ac39, 0xef978a}, - {0x8339ad30, 0xef978b}, - {0x8339ad31, 0xef978c}, - {0x8339ad32, 0xef978d}, - {0x8339ad33, 0xef978e}, - {0x8339ad34, 0xef978f}, - {0x8339ad35, 0xef9790}, - {0x8339ad36, 0xef9791}, - {0x8339ad37, 0xef9792}, - {0x8339ad38, 0xef9793}, - {0x8339ad39, 0xef9794}, - {0x8339ae30, 0xef9795}, - {0x8339ae31, 0xef9796}, - {0x8339ae32, 0xef9797}, - {0x8339ae33, 0xef9798}, - {0x8339ae34, 0xef9799}, - {0x8339ae35, 0xef979a}, - {0x8339ae36, 0xef979b}, - {0x8339ae37, 0xef979c}, - {0x8339ae38, 0xef979d}, - {0x8339ae39, 0xef979e}, - {0x8339af30, 0xef979f}, - {0x8339af31, 0xef97a0}, - {0x8339af32, 0xef97a1}, - {0x8339af33, 0xef97a2}, - {0x8339af34, 0xef97a3}, - {0x8339af35, 0xef97a4}, - {0x8339af36, 0xef97a5}, - {0x8339af37, 0xef97a6}, - {0x8339af38, 0xef97a7}, - {0x8339af39, 0xef97a8}, - {0x8339b030, 0xef97a9}, - {0x8339b031, 0xef97aa}, - {0x8339b032, 0xef97ab}, - {0x8339b033, 0xef97ac}, - {0x8339b034, 0xef97ad}, - {0x8339b035, 0xef97ae}, - {0x8339b036, 0xef97af}, - {0x8339b037, 0xef97b0}, - {0x8339b038, 0xef97b1}, - {0x8339b039, 0xef97b2}, - {0x8339b130, 0xef97b3}, - {0x8339b131, 0xef97b4}, - {0x8339b132, 0xef97b5}, - {0x8339b133, 0xef97b6}, - {0x8339b134, 0xef97b7}, - {0x8339b135, 0xef97b8}, - {0x8339b136, 0xef97b9}, - {0x8339b137, 0xef97ba}, - {0x8339b138, 0xef97bb}, - {0x8339b139, 0xef97bc}, - {0x8339b230, 0xef97bd}, - {0x8339b231, 0xef97be}, - {0x8339b232, 0xef97bf}, - {0x8339b233, 0xef9880}, - {0x8339b234, 0xef9881}, - {0x8339b235, 0xef9882}, - {0x8339b236, 0xef9883}, - {0x8339b237, 0xef9884}, - {0x8339b238, 0xef9885}, - {0x8339b239, 0xef9886}, - {0x8339b330, 0xef9887}, - {0x8339b331, 0xef9888}, - {0x8339b332, 0xef9889}, - {0x8339b333, 0xef988a}, - {0x8339b334, 0xef988b}, - {0x8339b335, 0xef988c}, - {0x8339b336, 0xef988d}, - {0x8339b337, 0xef988e}, - {0x8339b338, 0xef988f}, - {0x8339b339, 0xef9890}, - {0x8339b430, 0xef9891}, - {0x8339b431, 0xef9892}, - {0x8339b432, 0xef9893}, - {0x8339b433, 0xef9894}, - {0x8339b434, 0xef9895}, - {0x8339b435, 0xef9896}, - {0x8339b436, 0xef9897}, - {0x8339b437, 0xef9898}, - {0x8339b438, 0xef9899}, - {0x8339b439, 0xef989a}, - {0x8339b530, 0xef989b}, - {0x8339b531, 0xef989c}, - {0x8339b532, 0xef989d}, - {0x8339b533, 0xef989e}, - {0x8339b534, 0xef989f}, - {0x8339b535, 0xef98a0}, - {0x8339b536, 0xef98a1}, - {0x8339b537, 0xef98a2}, - {0x8339b538, 0xef98a3}, - {0x8339b539, 0xef98a4}, - {0x8339b630, 0xef98a5}, - {0x8339b631, 0xef98a6}, - {0x8339b632, 0xef98a7}, - {0x8339b633, 0xef98a8}, - {0x8339b634, 0xef98a9}, - {0x8339b635, 0xef98aa}, - {0x8339b636, 0xef98ab}, - {0x8339b637, 0xef98ac}, - {0x8339b638, 0xef98ad}, - {0x8339b639, 0xef98ae}, - {0x8339b730, 0xef98af}, - {0x8339b731, 0xef98b0}, - {0x8339b732, 0xef98b1}, - {0x8339b733, 0xef98b2}, - {0x8339b734, 0xef98b3}, - {0x8339b735, 0xef98b4}, - {0x8339b736, 0xef98b5}, - {0x8339b737, 0xef98b6}, - {0x8339b738, 0xef98b7}, - {0x8339b739, 0xef98b8}, - {0x8339b830, 0xef98b9}, - {0x8339b831, 0xef98ba}, - {0x8339b832, 0xef98bb}, - {0x8339b833, 0xef98bc}, - {0x8339b834, 0xef98bd}, - {0x8339b835, 0xef98be}, - {0x8339b836, 0xef98bf}, - {0x8339b837, 0xef9980}, - {0x8339b838, 0xef9981}, - {0x8339b839, 0xef9982}, - {0x8339b930, 0xef9983}, - {0x8339b931, 0xef9984}, - {0x8339b932, 0xef9985}, - {0x8339b933, 0xef9986}, - {0x8339b934, 0xef9987}, - {0x8339b935, 0xef9988}, - {0x8339b936, 0xef9989}, - {0x8339b937, 0xef998a}, - {0x8339b938, 0xef998b}, - {0x8339b939, 0xef998c}, - {0x8339ba30, 0xef998d}, - {0x8339ba31, 0xef998e}, - {0x8339ba32, 0xef998f}, - {0x8339ba33, 0xef9990}, - {0x8339ba34, 0xef9991}, - {0x8339ba35, 0xef9992}, - {0x8339ba36, 0xef9993}, - {0x8339ba37, 0xef9994}, - {0x8339ba38, 0xef9995}, - {0x8339ba39, 0xef9996}, - {0x8339bb30, 0xef9997}, - {0x8339bb31, 0xef9998}, - {0x8339bb32, 0xef9999}, - {0x8339bb33, 0xef999a}, - {0x8339bb34, 0xef999b}, - {0x8339bb35, 0xef999c}, - {0x8339bb36, 0xef999d}, - {0x8339bb37, 0xef999e}, - {0x8339bb38, 0xef999f}, - {0x8339bb39, 0xef99a0}, - {0x8339bc30, 0xef99a1}, - {0x8339bc31, 0xef99a2}, - {0x8339bc32, 0xef99a3}, - {0x8339bc33, 0xef99a4}, - {0x8339bc34, 0xef99a5}, - {0x8339bc35, 0xef99a6}, - {0x8339bc36, 0xef99a7}, - {0x8339bc37, 0xef99a8}, - {0x8339bc38, 0xef99a9}, - {0x8339bc39, 0xef99aa}, - {0x8339bd30, 0xef99ab}, - {0x8339bd31, 0xef99ac}, - {0x8339bd32, 0xef99ad}, - {0x8339bd33, 0xef99ae}, - {0x8339bd34, 0xef99af}, - {0x8339bd35, 0xef99b0}, - {0x8339bd36, 0xef99b1}, - {0x8339bd37, 0xef99b2}, - {0x8339bd38, 0xef99b3}, - {0x8339bd39, 0xef99b4}, - {0x8339be30, 0xef99b5}, - {0x8339be31, 0xef99b6}, - {0x8339be32, 0xef99b7}, - {0x8339be33, 0xef99b8}, - {0x8339be34, 0xef99b9}, - {0x8339be35, 0xef99ba}, - {0x8339be36, 0xef99bb}, - {0x8339be37, 0xef99bc}, - {0x8339be38, 0xef99bd}, - {0x8339be39, 0xef99be}, - {0x8339bf30, 0xef99bf}, - {0x8339bf31, 0xef9a80}, - {0x8339bf32, 0xef9a81}, - {0x8339bf33, 0xef9a82}, - {0x8339bf34, 0xef9a83}, - {0x8339bf35, 0xef9a84}, - {0x8339bf36, 0xef9a85}, - {0x8339bf37, 0xef9a86}, - {0x8339bf38, 0xef9a87}, - {0x8339bf39, 0xef9a88}, - {0x8339c030, 0xef9a89}, - {0x8339c031, 0xef9a8a}, - {0x8339c032, 0xef9a8b}, - {0x8339c033, 0xef9a8c}, - {0x8339c034, 0xef9a8d}, - {0x8339c035, 0xef9a8e}, - {0x8339c036, 0xef9a8f}, - {0x8339c037, 0xef9a90}, - {0x8339c038, 0xef9a91}, - {0x8339c039, 0xef9a92}, - {0x8339c130, 0xef9a93}, - {0x8339c131, 0xef9a94}, - {0x8339c132, 0xef9a95}, - {0x8339c133, 0xef9a96}, - {0x8339c134, 0xef9a97}, - {0x8339c135, 0xef9a98}, - {0x8339c136, 0xef9a99}, - {0x8339c137, 0xef9a9a}, - {0x8339c138, 0xef9a9b}, - {0x8339c139, 0xef9a9c}, - {0x8339c230, 0xef9a9d}, - {0x8339c231, 0xef9a9e}, - {0x8339c232, 0xef9a9f}, - {0x8339c233, 0xef9aa0}, - {0x8339c234, 0xef9aa1}, - {0x8339c235, 0xef9aa2}, - {0x8339c236, 0xef9aa3}, - {0x8339c237, 0xef9aa4}, - {0x8339c238, 0xef9aa5}, - {0x8339c239, 0xef9aa6}, - {0x8339c330, 0xef9aa7}, - {0x8339c331, 0xef9aa8}, - {0x8339c332, 0xef9aa9}, - {0x8339c333, 0xef9aaa}, - {0x8339c334, 0xef9aab}, - {0x8339c335, 0xef9aac}, - {0x8339c336, 0xef9aad}, - {0x8339c337, 0xef9aae}, - {0x8339c338, 0xef9aaf}, - {0x8339c339, 0xef9ab0}, - {0x8339c430, 0xef9ab1}, - {0x8339c431, 0xef9ab2}, - {0x8339c432, 0xef9ab3}, - {0x8339c433, 0xef9ab4}, - {0x8339c434, 0xef9ab5}, - {0x8339c435, 0xef9ab6}, - {0x8339c436, 0xef9ab7}, - {0x8339c437, 0xef9ab8}, - {0x8339c438, 0xef9ab9}, - {0x8339c439, 0xef9aba}, - {0x8339c530, 0xef9abb}, - {0x8339c531, 0xef9abc}, - {0x8339c532, 0xef9abd}, - {0x8339c533, 0xef9abe}, - {0x8339c534, 0xef9abf}, - {0x8339c535, 0xef9b80}, - {0x8339c536, 0xef9b81}, - {0x8339c537, 0xef9b82}, - {0x8339c538, 0xef9b83}, - {0x8339c539, 0xef9b84}, - {0x8339c630, 0xef9b85}, - {0x8339c631, 0xef9b86}, - {0x8339c632, 0xef9b87}, - {0x8339c633, 0xef9b88}, - {0x8339c634, 0xef9b89}, - {0x8339c635, 0xef9b8a}, - {0x8339c636, 0xef9b8b}, - {0x8339c637, 0xef9b8c}, - {0x8339c638, 0xef9b8d}, - {0x8339c639, 0xef9b8e}, - {0x8339c730, 0xef9b8f}, - {0x8339c731, 0xef9b90}, - {0x8339c732, 0xef9b91}, - {0x8339c733, 0xef9b92}, - {0x8339c734, 0xef9b93}, - {0x8339c735, 0xef9b94}, - {0x8339c736, 0xef9b95}, - {0x8339c737, 0xef9b96}, - {0x8339c738, 0xef9b97}, - {0x8339c739, 0xef9b98}, - {0x8339c830, 0xef9b99}, - {0x8339c831, 0xef9b9a}, - {0x8339c832, 0xef9b9b}, - {0x8339c833, 0xef9b9c}, - {0x8339c834, 0xef9b9d}, - {0x8339c835, 0xef9b9e}, - {0x8339c836, 0xef9b9f}, - {0x8339c837, 0xef9ba0}, - {0x8339c838, 0xef9ba1}, - {0x8339c839, 0xef9ba2}, - {0x8339c930, 0xef9ba3}, - {0x8339c931, 0xef9ba4}, - {0x8339c932, 0xef9ba5}, - {0x8339c933, 0xef9ba6}, - {0x8339c934, 0xef9ba7}, - {0x8339c935, 0xef9ba8}, - {0x8339c936, 0xef9ba9}, - {0x8339c937, 0xef9baa}, - {0x8339c938, 0xef9bab}, - {0x8339c939, 0xef9bac}, - {0x8339ca30, 0xef9bad}, - {0x8339ca31, 0xef9bae}, - {0x8339ca32, 0xef9baf}, - {0x8339ca33, 0xef9bb0}, - {0x8339ca34, 0xef9bb1}, - {0x8339ca35, 0xef9bb2}, - {0x8339ca36, 0xef9bb3}, - {0x8339ca37, 0xef9bb4}, - {0x8339ca38, 0xef9bb5}, - {0x8339ca39, 0xef9bb6}, - {0x8339cb30, 0xef9bb7}, - {0x8339cb31, 0xef9bb8}, - {0x8339cb32, 0xef9bb9}, - {0x8339cb33, 0xef9bba}, - {0x8339cb34, 0xef9bbb}, - {0x8339cb35, 0xef9bbc}, - {0x8339cb36, 0xef9bbd}, - {0x8339cb37, 0xef9bbe}, - {0x8339cb38, 0xef9bbf}, - {0x8339cb39, 0xef9c80}, - {0x8339cc30, 0xef9c81}, - {0x8339cc31, 0xef9c82}, - {0x8339cc32, 0xef9c83}, - {0x8339cc33, 0xef9c84}, - {0x8339cc34, 0xef9c85}, - {0x8339cc35, 0xef9c86}, - {0x8339cc36, 0xef9c87}, - {0x8339cc37, 0xef9c88}, - {0x8339cc38, 0xef9c89}, - {0x8339cc39, 0xef9c8a}, - {0x8339cd30, 0xef9c8b}, - {0x8339cd31, 0xef9c8c}, - {0x8339cd32, 0xef9c8d}, - {0x8339cd33, 0xef9c8e}, - {0x8339cd34, 0xef9c8f}, - {0x8339cd35, 0xef9c90}, - {0x8339cd36, 0xef9c91}, - {0x8339cd37, 0xef9c92}, - {0x8339cd38, 0xef9c93}, - {0x8339cd39, 0xef9c94}, - {0x8339ce30, 0xef9c95}, - {0x8339ce31, 0xef9c96}, - {0x8339ce32, 0xef9c97}, - {0x8339ce33, 0xef9c98}, - {0x8339ce34, 0xef9c99}, - {0x8339ce35, 0xef9c9a}, - {0x8339ce36, 0xef9c9b}, - {0x8339ce37, 0xef9c9c}, - {0x8339ce38, 0xef9c9d}, - {0x8339ce39, 0xef9c9e}, - {0x8339cf30, 0xef9c9f}, - {0x8339cf31, 0xef9ca0}, - {0x8339cf32, 0xef9ca1}, - {0x8339cf33, 0xef9ca2}, - {0x8339cf34, 0xef9ca3}, - {0x8339cf35, 0xef9ca4}, - {0x8339cf36, 0xef9ca5}, - {0x8339cf37, 0xef9ca6}, - {0x8339cf38, 0xef9ca7}, - {0x8339cf39, 0xef9ca8}, - {0x8339d030, 0xef9ca9}, - {0x8339d031, 0xef9caa}, - {0x8339d032, 0xef9cab}, - {0x8339d033, 0xef9cac}, - {0x8339d034, 0xef9cad}, - {0x8339d035, 0xef9cae}, - {0x8339d036, 0xef9caf}, - {0x8339d037, 0xef9cb0}, - {0x8339d038, 0xef9cb1}, - {0x8339d039, 0xef9cb2}, - {0x8339d130, 0xef9cb3}, - {0x8339d131, 0xef9cb4}, - {0x8339d132, 0xef9cb5}, - {0x8339d133, 0xef9cb6}, - {0x8339d134, 0xef9cb7}, - {0x8339d135, 0xef9cb8}, - {0x8339d136, 0xef9cb9}, - {0x8339d137, 0xef9cba}, - {0x8339d138, 0xef9cbb}, - {0x8339d139, 0xef9cbc}, - {0x8339d230, 0xef9cbd}, - {0x8339d231, 0xef9cbe}, - {0x8339d232, 0xef9cbf}, - {0x8339d233, 0xef9d80}, - {0x8339d234, 0xef9d81}, - {0x8339d235, 0xef9d82}, - {0x8339d236, 0xef9d83}, - {0x8339d237, 0xef9d84}, - {0x8339d238, 0xef9d85}, - {0x8339d239, 0xef9d86}, - {0x8339d330, 0xef9d87}, - {0x8339d331, 0xef9d88}, - {0x8339d332, 0xef9d89}, - {0x8339d333, 0xef9d8a}, - {0x8339d334, 0xef9d8b}, - {0x8339d335, 0xef9d8c}, - {0x8339d336, 0xef9d8d}, - {0x8339d337, 0xef9d8e}, - {0x8339d338, 0xef9d8f}, - {0x8339d339, 0xef9d90}, - {0x8339d430, 0xef9d91}, - {0x8339d431, 0xef9d92}, - {0x8339d432, 0xef9d93}, - {0x8339d433, 0xef9d94}, - {0x8339d434, 0xef9d95}, - {0x8339d435, 0xef9d96}, - {0x8339d436, 0xef9d97}, - {0x8339d437, 0xef9d98}, - {0x8339d438, 0xef9d99}, - {0x8339d439, 0xef9d9a}, - {0x8339d530, 0xef9d9b}, - {0x8339d531, 0xef9d9c}, - {0x8339d532, 0xef9d9d}, - {0x8339d533, 0xef9d9e}, - {0x8339d534, 0xef9d9f}, - {0x8339d535, 0xef9da0}, - {0x8339d536, 0xef9da1}, - {0x8339d537, 0xef9da2}, - {0x8339d538, 0xef9da3}, - {0x8339d539, 0xef9da4}, - {0x8339d630, 0xef9da5}, - {0x8339d631, 0xef9da6}, - {0x8339d632, 0xef9da7}, - {0x8339d633, 0xef9da8}, - {0x8339d634, 0xef9da9}, - {0x8339d635, 0xef9daa}, - {0x8339d636, 0xef9dab}, - {0x8339d637, 0xef9dac}, - {0x8339d638, 0xef9dad}, - {0x8339d639, 0xef9dae}, - {0x8339d730, 0xef9daf}, - {0x8339d731, 0xef9db0}, - {0x8339d732, 0xef9db1}, - {0x8339d733, 0xef9db2}, - {0x8339d734, 0xef9db3}, - {0x8339d735, 0xef9db4}, - {0x8339d736, 0xef9db5}, - {0x8339d737, 0xef9db6}, - {0x8339d738, 0xef9db7}, - {0x8339d739, 0xef9db8}, - {0x8339d830, 0xef9db9}, - {0x8339d831, 0xef9dba}, - {0x8339d832, 0xef9dbb}, - {0x8339d833, 0xef9dbc}, - {0x8339d834, 0xef9dbd}, - {0x8339d835, 0xef9dbe}, - {0x8339d836, 0xef9dbf}, - {0x8339d837, 0xef9e80}, - {0x8339d838, 0xef9e81}, - {0x8339d839, 0xef9e82}, - {0x8339d930, 0xef9e83}, - {0x8339d931, 0xef9e84}, - {0x8339d932, 0xef9e85}, - {0x8339d933, 0xef9e86}, - {0x8339d934, 0xef9e87}, - {0x8339d935, 0xef9e88}, - {0x8339d936, 0xef9e89}, - {0x8339d937, 0xef9e8a}, - {0x8339d938, 0xef9e8b}, - {0x8339d939, 0xef9e8c}, - {0x8339da30, 0xef9e8d}, - {0x8339da31, 0xef9e8e}, - {0x8339da32, 0xef9e8f}, - {0x8339da33, 0xef9e90}, - {0x8339da34, 0xef9e91}, - {0x8339da35, 0xef9e92}, - {0x8339da36, 0xef9e93}, - {0x8339da37, 0xef9e94}, - {0x8339da38, 0xef9e95}, - {0x8339da39, 0xef9e96}, - {0x8339db30, 0xef9e97}, - {0x8339db31, 0xef9e98}, - {0x8339db32, 0xef9e99}, - {0x8339db33, 0xef9e9a}, - {0x8339db34, 0xef9e9b}, - {0x8339db35, 0xef9e9c}, - {0x8339db36, 0xef9e9d}, - {0x8339db37, 0xef9e9e}, - {0x8339db38, 0xef9e9f}, - {0x8339db39, 0xef9ea0}, - {0x8339dc30, 0xef9ea1}, - {0x8339dc31, 0xef9ea2}, - {0x8339dc32, 0xef9ea3}, - {0x8339dc33, 0xef9ea4}, - {0x8339dc34, 0xef9ea5}, - {0x8339dc35, 0xef9ea6}, - {0x8339dc36, 0xef9ea7}, - {0x8339dc37, 0xef9ea8}, - {0x8339dc38, 0xef9ea9}, - {0x8339dc39, 0xef9eaa}, - {0x8339dd30, 0xef9eab}, - {0x8339dd31, 0xef9eac}, - {0x8339dd32, 0xef9ead}, - {0x8339dd33, 0xef9eae}, - {0x8339dd34, 0xef9eaf}, - {0x8339dd35, 0xef9eb0}, - {0x8339dd36, 0xef9eb1}, - {0x8339dd37, 0xef9eb2}, - {0x8339dd38, 0xef9eb3}, - {0x8339dd39, 0xef9eb4}, - {0x8339de30, 0xef9eb5}, - {0x8339de31, 0xef9eb6}, - {0x8339de32, 0xef9eb7}, - {0x8339de33, 0xef9eb8}, - {0x8339de34, 0xef9eb9}, - {0x8339de35, 0xef9eba}, - {0x8339de36, 0xef9ebb}, - {0x8339de37, 0xef9ebc}, - {0x8339de38, 0xef9ebd}, - {0x8339de39, 0xef9ebe}, - {0x8339df30, 0xef9ebf}, - {0x8339df31, 0xef9f80}, - {0x8339df32, 0xef9f81}, - {0x8339df33, 0xef9f82}, - {0x8339df34, 0xef9f83}, - {0x8339df35, 0xef9f84}, - {0x8339df36, 0xef9f85}, - {0x8339df37, 0xef9f86}, - {0x8339df38, 0xef9f87}, - {0x8339df39, 0xef9f88}, - {0x8339e030, 0xef9f89}, - {0x8339e031, 0xef9f8a}, - {0x8339e032, 0xef9f8b}, - {0x8339e033, 0xef9f8c}, - {0x8339e034, 0xef9f8d}, - {0x8339e035, 0xef9f8e}, - {0x8339e036, 0xef9f8f}, - {0x8339e037, 0xef9f90}, - {0x8339e038, 0xef9f91}, - {0x8339e039, 0xef9f92}, - {0x8339e130, 0xef9f93}, - {0x8339e131, 0xef9f94}, - {0x8339e132, 0xef9f95}, - {0x8339e133, 0xef9f96}, - {0x8339e134, 0xef9f97}, - {0x8339e135, 0xef9f98}, - {0x8339e136, 0xef9f99}, - {0x8339e137, 0xef9f9a}, - {0x8339e138, 0xef9f9b}, - {0x8339e139, 0xef9f9c}, - {0x8339e230, 0xef9f9d}, - {0x8339e231, 0xef9f9e}, - {0x8339e232, 0xef9f9f}, - {0x8339e233, 0xef9fa0}, - {0x8339e234, 0xef9fa1}, - {0x8339e235, 0xef9fa2}, - {0x8339e236, 0xef9fa3}, - {0x8339e237, 0xef9fa4}, - {0x8339e238, 0xef9fa5}, - {0x8339e239, 0xef9fa6}, - {0x8339e330, 0xef9fa7}, - {0x8339e331, 0xef9fa8}, - {0x8339e332, 0xef9fa9}, - {0x8339e333, 0xef9faa}, - {0x8339e334, 0xef9fab}, - {0x8339e335, 0xef9fac}, - {0x8339e336, 0xef9fad}, - {0x8339e337, 0xef9fae}, - {0x8339e338, 0xef9faf}, - {0x8339e339, 0xef9fb0}, - {0x8339e430, 0xef9fb1}, - {0x8339e431, 0xef9fb2}, - {0x8339e432, 0xef9fb3}, - {0x8339e433, 0xef9fb4}, - {0x8339e434, 0xef9fb5}, - {0x8339e435, 0xef9fb6}, - {0x8339e436, 0xef9fb7}, - {0x8339e437, 0xef9fb8}, - {0x8339e438, 0xef9fb9}, - {0x8339e439, 0xef9fba}, - {0x8339e530, 0xef9fbb}, - {0x8339e531, 0xef9fbc}, - {0x8339e532, 0xef9fbd}, - {0x8339e533, 0xef9fbe}, - {0x8339e534, 0xef9fbf}, - {0x8339e535, 0xefa080}, - {0x8339e536, 0xefa081}, - {0x8339e537, 0xefa082}, - {0x8339e538, 0xefa083}, - {0x8339e539, 0xefa084}, - {0x8339e630, 0xefa085}, - {0x8339e631, 0xefa086}, - {0x8339e632, 0xefa087}, - {0x8339e633, 0xefa088}, - {0x8339e634, 0xefa089}, - {0x8339e635, 0xefa08a}, - {0x8339e636, 0xefa08b}, - {0x8339e637, 0xefa08c}, - {0x8339e638, 0xefa08d}, - {0x8339e639, 0xefa08e}, - {0x8339e730, 0xefa08f}, - {0x8339e731, 0xefa090}, - {0x8339e732, 0xefa091}, - {0x8339e733, 0xefa092}, - {0x8339e734, 0xefa093}, - {0x8339e735, 0xefa094}, - {0x8339e736, 0xefa095}, - {0x8339e737, 0xefa096}, - {0x8339e738, 0xefa097}, - {0x8339e739, 0xefa098}, - {0x8339e830, 0xefa099}, - {0x8339e831, 0xefa09a}, - {0x8339e832, 0xefa09b}, - {0x8339e833, 0xefa09c}, - {0x8339e834, 0xefa09d}, - {0x8339e835, 0xefa09e}, - {0x8339e836, 0xefa09f}, - {0x8339e837, 0xefa0a0}, - {0x8339e838, 0xefa0a1}, - {0x8339e839, 0xefa0a2}, - {0x8339e930, 0xefa0a3}, - {0x8339e931, 0xefa0a4}, - {0x8339e932, 0xefa0a5}, - {0x8339e933, 0xefa0a6}, - {0x8339e934, 0xefa0a7}, - {0x8339e935, 0xefa0a8}, - {0x8339e936, 0xefa0a9}, - {0x8339e937, 0xefa0aa}, - {0x8339e938, 0xefa0ab}, - {0x8339e939, 0xefa0ac}, - {0x8339ea30, 0xefa0ad}, - {0x8339ea31, 0xefa0ae}, - {0x8339ea32, 0xefa0af}, - {0x8339ea33, 0xefa0b0}, - {0x8339ea34, 0xefa0b1}, - {0x8339ea35, 0xefa0b2}, - {0x8339ea36, 0xefa0b3}, - {0x8339ea37, 0xefa0b4}, - {0x8339ea38, 0xefa0b5}, - {0x8339ea39, 0xefa0b6}, - {0x8339eb30, 0xefa0b7}, - {0x8339eb31, 0xefa0b8}, - {0x8339eb32, 0xefa0b9}, - {0x8339eb33, 0xefa0ba}, - {0x8339eb34, 0xefa0bb}, - {0x8339eb35, 0xefa0bc}, - {0x8339eb36, 0xefa0bd}, - {0x8339eb37, 0xefa0be}, - {0x8339eb38, 0xefa0bf}, - {0x8339eb39, 0xefa180}, - {0x8339ec30, 0xefa181}, - {0x8339ec31, 0xefa182}, - {0x8339ec32, 0xefa183}, - {0x8339ec33, 0xefa184}, - {0x8339ec34, 0xefa185}, - {0x8339ec35, 0xefa186}, - {0x8339ec36, 0xefa187}, - {0x8339ec37, 0xefa188}, - {0x8339ec38, 0xefa189}, - {0x8339ec39, 0xefa18a}, - {0x8339ed30, 0xefa18b}, - {0x8339ed31, 0xefa18c}, - {0x8339ed32, 0xefa18d}, - {0x8339ed33, 0xefa18e}, - {0x8339ed34, 0xefa18f}, - {0x8339ed35, 0xefa190}, - {0x8339ed36, 0xefa191}, - {0x8339ed37, 0xefa192}, - {0x8339ed38, 0xefa193}, - {0x8339ed39, 0xefa194}, - {0x8339ee30, 0xefa195}, - {0x8339ee31, 0xefa196}, - {0x8339ee32, 0xefa197}, - {0x8339ee33, 0xefa198}, - {0x8339ee34, 0xefa199}, - {0x8339ee35, 0xefa19a}, - {0x8339ee36, 0xefa19b}, - {0x8339ee37, 0xefa19c}, - {0x8339ee38, 0xefa19d}, - {0x8339ee39, 0xefa19e}, - {0x8339ef30, 0xefa19f}, - {0x8339ef31, 0xefa1a0}, - {0x8339ef32, 0xefa1a1}, - {0x8339ef33, 0xefa1a2}, - {0x8339ef34, 0xefa1a3}, - {0x8339ef35, 0xefa1a4}, - {0x8339ef36, 0xefa1a5}, - {0x8339ef37, 0xefa1a6}, - {0x8339ef38, 0xefa1a7}, - {0x8339ef39, 0xefa1a8}, - {0x8339f030, 0xefa1a9}, - {0x8339f031, 0xefa1aa}, - {0x8339f032, 0xefa1ab}, - {0x8339f033, 0xefa1ac}, - {0x8339f034, 0xefa1ad}, - {0x8339f035, 0xefa1ae}, - {0x8339f036, 0xefa1af}, - {0x8339f037, 0xefa1b0}, - {0x8339f038, 0xefa1b1}, - {0x8339f039, 0xefa1b2}, - {0x8339f130, 0xefa1b3}, - {0x8339f131, 0xefa1b4}, - {0x8339f132, 0xefa1b5}, - {0x8339f133, 0xefa1b6}, - {0x8339f134, 0xefa1b7}, - {0x8339f135, 0xefa1b8}, - {0x8339f136, 0xefa1b9}, - {0x8339f137, 0xefa1ba}, - {0x8339f138, 0xefa1bb}, - {0x8339f139, 0xefa1bc}, - {0x8339f230, 0xefa1bd}, - {0x8339f231, 0xefa1be}, - {0x8339f232, 0xefa1bf}, - {0x8339f233, 0xefa280}, - {0x8339f234, 0xefa281}, - {0x8339f235, 0xefa282}, - {0x8339f236, 0xefa283}, - {0x8339f237, 0xefa284}, - {0x8339f238, 0xefa285}, - {0x8339f239, 0xefa286}, - {0x8339f330, 0xefa287}, - {0x8339f331, 0xefa288}, - {0x8339f332, 0xefa289}, - {0x8339f333, 0xefa28a}, - {0x8339f334, 0xefa28b}, - {0x8339f335, 0xefa28c}, - {0x8339f336, 0xefa28d}, - {0x8339f337, 0xefa28e}, - {0x8339f338, 0xefa28f}, - {0x8339f339, 0xefa290}, - {0x8339f430, 0xefa291}, - {0x8339f431, 0xefa292}, - {0x8339f432, 0xefa293}, - {0x8339f433, 0xefa294}, - {0x8339f434, 0xefa295}, - {0x8339f435, 0xefa296}, - {0x8339f436, 0xefa297}, - {0x8339f437, 0xefa298}, - {0x8339f438, 0xefa299}, - {0x8339f439, 0xefa29a}, - {0x8339f530, 0xefa29b}, - {0x8339f531, 0xefa29c}, - {0x8339f532, 0xefa29d}, - {0x8339f533, 0xefa29e}, - {0x8339f534, 0xefa29f}, - {0x8339f535, 0xefa2a0}, - {0x8339f536, 0xefa2a1}, - {0x8339f537, 0xefa2a2}, - {0x8339f538, 0xefa2a3}, - {0x8339f539, 0xefa2a4}, - {0x8339f630, 0xefa2a5}, - {0x8339f631, 0xefa2a6}, - {0x8339f632, 0xefa2a7}, - {0x8339f633, 0xefa2a8}, - {0x8339f634, 0xefa2a9}, - {0x8339f635, 0xefa2aa}, - {0x8339f636, 0xefa2ab}, - {0x8339f637, 0xefa2ac}, - {0x8339f638, 0xefa2ad}, - {0x8339f639, 0xefa2ae}, - {0x8339f730, 0xefa2af}, - {0x8339f731, 0xefa2b0}, - {0x8339f732, 0xefa2b1}, - {0x8339f733, 0xefa2b2}, - {0x8339f734, 0xefa2b3}, - {0x8339f735, 0xefa2b4}, - {0x8339f736, 0xefa2b5}, - {0x8339f737, 0xefa2b6}, - {0x8339f738, 0xefa2b7}, - {0x8339f739, 0xefa2b8}, - {0x8339f830, 0xefa2b9}, - {0x8339f831, 0xefa2ba}, - {0x8339f832, 0xefa2bb}, - {0x8339f833, 0xefa2bc}, - {0x8339f834, 0xefa2bd}, - {0x8339f835, 0xefa2be}, - {0x8339f836, 0xefa2bf}, - {0x8339f837, 0xefa380}, - {0x8339f838, 0xefa381}, - {0x8339f839, 0xefa382}, - {0x8339f930, 0xefa383}, - {0x8339f931, 0xefa384}, - {0x8339f932, 0xefa385}, - {0x8339f933, 0xefa386}, - {0x8339f934, 0xefa387}, - {0x8339f935, 0xefa388}, - {0x8339f936, 0xefa389}, - {0x8339f937, 0xefa38a}, - {0x8339f938, 0xefa38b}, - {0x8339f939, 0xefa38c}, - {0x8339fa30, 0xefa38d}, - {0x8339fa31, 0xefa38e}, - {0x8339fa32, 0xefa38f}, - {0x8339fa33, 0xefa390}, - {0x8339fa34, 0xefa391}, - {0x8339fa35, 0xefa392}, - {0x8339fa36, 0xefa393}, - {0x8339fa37, 0xefa394}, - {0x8339fa38, 0xefa395}, - {0x8339fa39, 0xefa396}, - {0x8339fb30, 0xefa397}, - {0x8339fb31, 0xefa398}, - {0x8339fb32, 0xefa399}, - {0x8339fb33, 0xefa39a}, - {0x8339fb34, 0xefa39b}, - {0x8339fb35, 0xefa39c}, - {0x8339fb36, 0xefa39d}, - {0x8339fb37, 0xefa39e}, - {0x8339fb38, 0xefa39f}, - {0x8339fb39, 0xefa3a0}, - {0x8339fc30, 0xefa3a1}, - {0x8339fc31, 0xefa3a2}, - {0x8339fc32, 0xefa3a3}, - {0x8339fc33, 0xefa3a4}, - {0x8339fc34, 0xefa3a5}, - {0x8339fc35, 0xefa3a6}, - {0x8339fc36, 0xefa3a7}, - {0x8339fc37, 0xefa3a8}, - {0x8339fc38, 0xefa3a9}, - {0x8339fc39, 0xefa3aa}, - {0x8339fd30, 0xefa3ab}, - {0x8339fd31, 0xefa3ac}, - {0x8339fd32, 0xefa3ad}, - {0x8339fd33, 0xefa3ae}, - {0x8339fd34, 0xefa3af}, - {0x8339fd35, 0xefa3b0}, - {0x8339fd36, 0xefa3b1}, - {0x8339fd37, 0xefa3b2}, - {0x8339fd38, 0xefa3b3}, - {0x8339fd39, 0xefa3b4}, - {0x8339fe30, 0xefa3b5}, - {0x8339fe31, 0xefa3b6}, - {0x8339fe32, 0xefa3b7}, - {0x8339fe33, 0xefa3b8}, - {0x8339fe34, 0xefa3b9}, - {0x8339fe35, 0xefa3ba}, - {0x8339fe36, 0xefa3bb}, - {0x8339fe37, 0xefa3bc}, - {0x8339fe38, 0xefa3bd}, - {0x8339fe39, 0xefa3be}, - {0x84308130, 0xefa3bf}, - {0x84308131, 0xefa480}, - {0x84308132, 0xefa481}, - {0x84308133, 0xefa482}, - {0x84308134, 0xefa483}, - {0x84308135, 0xefa484}, - {0x84308136, 0xefa485}, - {0x84308137, 0xefa486}, - {0x84308138, 0xefa487}, - {0x84308139, 0xefa488}, - {0x84308230, 0xefa489}, - {0x84308231, 0xefa48a}, - {0x84308232, 0xefa48b}, - {0x84308233, 0xefa48c}, - {0x84308234, 0xefa48d}, - {0x84308235, 0xefa48e}, - {0x84308236, 0xefa48f}, - {0x84308237, 0xefa490}, - {0x84308238, 0xefa491}, - {0x84308239, 0xefa492}, - {0x84308330, 0xefa493}, - {0x84308331, 0xefa494}, - {0x84308332, 0xefa495}, - {0x84308333, 0xefa496}, - {0x84308334, 0xefa497}, - {0x84308335, 0xefa498}, - {0x84308336, 0xefa499}, - {0x84308337, 0xefa49a}, - {0x84308338, 0xefa49b}, - {0x84308339, 0xefa49c}, - {0x84308430, 0xefa49d}, - {0x84308431, 0xefa49e}, - {0x84308432, 0xefa49f}, - {0x84308433, 0xefa4a0}, - {0x84308434, 0xefa4a1}, - {0x84308435, 0xefa4a2}, - {0x84308436, 0xefa4a3}, - {0x84308437, 0xefa4a4}, - {0x84308438, 0xefa4a5}, - {0x84308439, 0xefa4a6}, - {0x84308530, 0xefa4a7}, - {0x84308531, 0xefa4a8}, - {0x84308532, 0xefa4a9}, - {0x84308533, 0xefa4aa}, - {0x84308534, 0xefa4ab}, {0x84308535, 0xefa4ad}, {0x84308536, 0xefa4ae}, {0x84308537, 0xefa4af}, @@ -62017,1036 +30446,6 @@ static pg_local_to_utf LUmapGB18030[ 63360 ] = { {0x84309c35, 0xefa8a2}, {0x84309c36, 0xefa8a5}, {0x84309c37, 0xefa8a6}, - {0x84309c38, 0xefa8aa}, - {0x84309c39, 0xefa8ab}, - {0x84309d30, 0xefa8ac}, - {0x84309d31, 0xefa8ad}, - {0x84309d32, 0xefa8ae}, - {0x84309d33, 0xefa8af}, - {0x84309d34, 0xefa8b0}, - {0x84309d35, 0xefa8b1}, - {0x84309d36, 0xefa8b2}, - {0x84309d37, 0xefa8b3}, - {0x84309d38, 0xefa8b4}, - {0x84309d39, 0xefa8b5}, - {0x84309e30, 0xefa8b6}, - {0x84309e31, 0xefa8b7}, - {0x84309e32, 0xefa8b8}, - {0x84309e33, 0xefa8b9}, - {0x84309e34, 0xefa8ba}, - {0x84309e35, 0xefa8bb}, - {0x84309e36, 0xefa8bc}, - {0x84309e37, 0xefa8bd}, - {0x84309e38, 0xefa8be}, - {0x84309e39, 0xefa8bf}, - {0x84309f30, 0xefa980}, - {0x84309f31, 0xefa981}, - {0x84309f32, 0xefa982}, - {0x84309f33, 0xefa983}, - {0x84309f34, 0xefa984}, - {0x84309f35, 0xefa985}, - {0x84309f36, 0xefa986}, - {0x84309f37, 0xefa987}, - {0x84309f38, 0xefa988}, - {0x84309f39, 0xefa989}, - {0x8430a030, 0xefa98a}, - {0x8430a031, 0xefa98b}, - {0x8430a032, 0xefa98c}, - {0x8430a033, 0xefa98d}, - {0x8430a034, 0xefa98e}, - {0x8430a035, 0xefa98f}, - {0x8430a036, 0xefa990}, - {0x8430a037, 0xefa991}, - {0x8430a038, 0xefa992}, - {0x8430a039, 0xefa993}, - {0x8430a130, 0xefa994}, - {0x8430a131, 0xefa995}, - {0x8430a132, 0xefa996}, - {0x8430a133, 0xefa997}, - {0x8430a134, 0xefa998}, - {0x8430a135, 0xefa999}, - {0x8430a136, 0xefa99a}, - {0x8430a137, 0xefa99b}, - {0x8430a138, 0xefa99c}, - {0x8430a139, 0xefa99d}, - {0x8430a230, 0xefa99e}, - {0x8430a231, 0xefa99f}, - {0x8430a232, 0xefa9a0}, - {0x8430a233, 0xefa9a1}, - {0x8430a234, 0xefa9a2}, - {0x8430a235, 0xefa9a3}, - {0x8430a236, 0xefa9a4}, - {0x8430a237, 0xefa9a5}, - {0x8430a238, 0xefa9a6}, - {0x8430a239, 0xefa9a7}, - {0x8430a330, 0xefa9a8}, - {0x8430a331, 0xefa9a9}, - {0x8430a332, 0xefa9aa}, - {0x8430a333, 0xefa9ab}, - {0x8430a334, 0xefa9ac}, - {0x8430a335, 0xefa9ad}, - {0x8430a336, 0xefa9ae}, - {0x8430a337, 0xefa9af}, - {0x8430a338, 0xefa9b0}, - {0x8430a339, 0xefa9b1}, - {0x8430a430, 0xefa9b2}, - {0x8430a431, 0xefa9b3}, - {0x8430a432, 0xefa9b4}, - {0x8430a433, 0xefa9b5}, - {0x8430a434, 0xefa9b6}, - {0x8430a435, 0xefa9b7}, - {0x8430a436, 0xefa9b8}, - {0x8430a437, 0xefa9b9}, - {0x8430a438, 0xefa9ba}, - {0x8430a439, 0xefa9bb}, - {0x8430a530, 0xefa9bc}, - {0x8430a531, 0xefa9bd}, - {0x8430a532, 0xefa9be}, - {0x8430a533, 0xefa9bf}, - {0x8430a534, 0xefaa80}, - {0x8430a535, 0xefaa81}, - {0x8430a536, 0xefaa82}, - {0x8430a537, 0xefaa83}, - {0x8430a538, 0xefaa84}, - {0x8430a539, 0xefaa85}, - {0x8430a630, 0xefaa86}, - {0x8430a631, 0xefaa87}, - {0x8430a632, 0xefaa88}, - {0x8430a633, 0xefaa89}, - {0x8430a634, 0xefaa8a}, - {0x8430a635, 0xefaa8b}, - {0x8430a636, 0xefaa8c}, - {0x8430a637, 0xefaa8d}, - {0x8430a638, 0xefaa8e}, - {0x8430a639, 0xefaa8f}, - {0x8430a730, 0xefaa90}, - {0x8430a731, 0xefaa91}, - {0x8430a732, 0xefaa92}, - {0x8430a733, 0xefaa93}, - {0x8430a734, 0xefaa94}, - {0x8430a735, 0xefaa95}, - {0x8430a736, 0xefaa96}, - {0x8430a737, 0xefaa97}, - {0x8430a738, 0xefaa98}, - {0x8430a739, 0xefaa99}, - {0x8430a830, 0xefaa9a}, - {0x8430a831, 0xefaa9b}, - {0x8430a832, 0xefaa9c}, - {0x8430a833, 0xefaa9d}, - {0x8430a834, 0xefaa9e}, - {0x8430a835, 0xefaa9f}, - {0x8430a836, 0xefaaa0}, - {0x8430a837, 0xefaaa1}, - {0x8430a838, 0xefaaa2}, - {0x8430a839, 0xefaaa3}, - {0x8430a930, 0xefaaa4}, - {0x8430a931, 0xefaaa5}, - {0x8430a932, 0xefaaa6}, - {0x8430a933, 0xefaaa7}, - {0x8430a934, 0xefaaa8}, - {0x8430a935, 0xefaaa9}, - {0x8430a936, 0xefaaaa}, - {0x8430a937, 0xefaaab}, - {0x8430a938, 0xefaaac}, - {0x8430a939, 0xefaaad}, - {0x8430aa30, 0xefaaae}, - {0x8430aa31, 0xefaaaf}, - {0x8430aa32, 0xefaab0}, - {0x8430aa33, 0xefaab1}, - {0x8430aa34, 0xefaab2}, - {0x8430aa35, 0xefaab3}, - {0x8430aa36, 0xefaab4}, - {0x8430aa37, 0xefaab5}, - {0x8430aa38, 0xefaab6}, - {0x8430aa39, 0xefaab7}, - {0x8430ab30, 0xefaab8}, - {0x8430ab31, 0xefaab9}, - {0x8430ab32, 0xefaaba}, - {0x8430ab33, 0xefaabb}, - {0x8430ab34, 0xefaabc}, - {0x8430ab35, 0xefaabd}, - {0x8430ab36, 0xefaabe}, - {0x8430ab37, 0xefaabf}, - {0x8430ab38, 0xefab80}, - {0x8430ab39, 0xefab81}, - {0x8430ac30, 0xefab82}, - {0x8430ac31, 0xefab83}, - {0x8430ac32, 0xefab84}, - {0x8430ac33, 0xefab85}, - {0x8430ac34, 0xefab86}, - {0x8430ac35, 0xefab87}, - {0x8430ac36, 0xefab88}, - {0x8430ac37, 0xefab89}, - {0x8430ac38, 0xefab8a}, - {0x8430ac39, 0xefab8b}, - {0x8430ad30, 0xefab8c}, - {0x8430ad31, 0xefab8d}, - {0x8430ad32, 0xefab8e}, - {0x8430ad33, 0xefab8f}, - {0x8430ad34, 0xefab90}, - {0x8430ad35, 0xefab91}, - {0x8430ad36, 0xefab92}, - {0x8430ad37, 0xefab93}, - {0x8430ad38, 0xefab94}, - {0x8430ad39, 0xefab95}, - {0x8430ae30, 0xefab96}, - {0x8430ae31, 0xefab97}, - {0x8430ae32, 0xefab98}, - {0x8430ae33, 0xefab99}, - {0x8430ae34, 0xefab9a}, - {0x8430ae35, 0xefab9b}, - {0x8430ae36, 0xefab9c}, - {0x8430ae37, 0xefab9d}, - {0x8430ae38, 0xefab9e}, - {0x8430ae39, 0xefab9f}, - {0x8430af30, 0xefaba0}, - {0x8430af31, 0xefaba1}, - {0x8430af32, 0xefaba2}, - {0x8430af33, 0xefaba3}, - {0x8430af34, 0xefaba4}, - {0x8430af35, 0xefaba5}, - {0x8430af36, 0xefaba6}, - {0x8430af37, 0xefaba7}, - {0x8430af38, 0xefaba8}, - {0x8430af39, 0xefaba9}, - {0x8430b030, 0xefabaa}, - {0x8430b031, 0xefabab}, - {0x8430b032, 0xefabac}, - {0x8430b033, 0xefabad}, - {0x8430b034, 0xefabae}, - {0x8430b035, 0xefabaf}, - {0x8430b036, 0xefabb0}, - {0x8430b037, 0xefabb1}, - {0x8430b038, 0xefabb2}, - {0x8430b039, 0xefabb3}, - {0x8430b130, 0xefabb4}, - {0x8430b131, 0xefabb5}, - {0x8430b132, 0xefabb6}, - {0x8430b133, 0xefabb7}, - {0x8430b134, 0xefabb8}, - {0x8430b135, 0xefabb9}, - {0x8430b136, 0xefabba}, - {0x8430b137, 0xefabbb}, - {0x8430b138, 0xefabbc}, - {0x8430b139, 0xefabbd}, - {0x8430b230, 0xefabbe}, - {0x8430b231, 0xefabbf}, - {0x8430b232, 0xefac80}, - {0x8430b233, 0xefac81}, - {0x8430b234, 0xefac82}, - {0x8430b235, 0xefac83}, - {0x8430b236, 0xefac84}, - {0x8430b237, 0xefac85}, - {0x8430b238, 0xefac86}, - {0x8430b239, 0xefac87}, - {0x8430b330, 0xefac88}, - {0x8430b331, 0xefac89}, - {0x8430b332, 0xefac8a}, - {0x8430b333, 0xefac8b}, - {0x8430b334, 0xefac8c}, - {0x8430b335, 0xefac8d}, - {0x8430b336, 0xefac8e}, - {0x8430b337, 0xefac8f}, - {0x8430b338, 0xefac90}, - {0x8430b339, 0xefac91}, - {0x8430b430, 0xefac92}, - {0x8430b431, 0xefac93}, - {0x8430b432, 0xefac94}, - {0x8430b433, 0xefac95}, - {0x8430b434, 0xefac96}, - {0x8430b435, 0xefac97}, - {0x8430b436, 0xefac98}, - {0x8430b437, 0xefac99}, - {0x8430b438, 0xefac9a}, - {0x8430b439, 0xefac9b}, - {0x8430b530, 0xefac9c}, - {0x8430b531, 0xefac9d}, - {0x8430b532, 0xefac9e}, - {0x8430b533, 0xefac9f}, - {0x8430b534, 0xefaca0}, - {0x8430b535, 0xefaca1}, - {0x8430b536, 0xefaca2}, - {0x8430b537, 0xefaca3}, - {0x8430b538, 0xefaca4}, - {0x8430b539, 0xefaca5}, - {0x8430b630, 0xefaca6}, - {0x8430b631, 0xefaca7}, - {0x8430b632, 0xefaca8}, - {0x8430b633, 0xefaca9}, - {0x8430b634, 0xefacaa}, - {0x8430b635, 0xefacab}, - {0x8430b636, 0xefacac}, - {0x8430b637, 0xefacad}, - {0x8430b638, 0xefacae}, - {0x8430b639, 0xefacaf}, - {0x8430b730, 0xefacb0}, - {0x8430b731, 0xefacb1}, - {0x8430b732, 0xefacb2}, - {0x8430b733, 0xefacb3}, - {0x8430b734, 0xefacb4}, - {0x8430b735, 0xefacb5}, - {0x8430b736, 0xefacb6}, - {0x8430b737, 0xefacb7}, - {0x8430b738, 0xefacb8}, - {0x8430b739, 0xefacb9}, - {0x8430b830, 0xefacba}, - {0x8430b831, 0xefacbb}, - {0x8430b832, 0xefacbc}, - {0x8430b833, 0xefacbd}, - {0x8430b834, 0xefacbe}, - {0x8430b835, 0xefacbf}, - {0x8430b836, 0xefad80}, - {0x8430b837, 0xefad81}, - {0x8430b838, 0xefad82}, - {0x8430b839, 0xefad83}, - {0x8430b930, 0xefad84}, - {0x8430b931, 0xefad85}, - {0x8430b932, 0xefad86}, - {0x8430b933, 0xefad87}, - {0x8430b934, 0xefad88}, - {0x8430b935, 0xefad89}, - {0x8430b936, 0xefad8a}, - {0x8430b937, 0xefad8b}, - {0x8430b938, 0xefad8c}, - {0x8430b939, 0xefad8d}, - {0x8430ba30, 0xefad8e}, - {0x8430ba31, 0xefad8f}, - {0x8430ba32, 0xefad90}, - {0x8430ba33, 0xefad91}, - {0x8430ba34, 0xefad92}, - {0x8430ba35, 0xefad93}, - {0x8430ba36, 0xefad94}, - {0x8430ba37, 0xefad95}, - {0x8430ba38, 0xefad96}, - {0x8430ba39, 0xefad97}, - {0x8430bb30, 0xefad98}, - {0x8430bb31, 0xefad99}, - {0x8430bb32, 0xefad9a}, - {0x8430bb33, 0xefad9b}, - {0x8430bb34, 0xefad9c}, - {0x8430bb35, 0xefad9d}, - {0x8430bb36, 0xefad9e}, - {0x8430bb37, 0xefad9f}, - {0x8430bb38, 0xefada0}, - {0x8430bb39, 0xefada1}, - {0x8430bc30, 0xefada2}, - {0x8430bc31, 0xefada3}, - {0x8430bc32, 0xefada4}, - {0x8430bc33, 0xefada5}, - {0x8430bc34, 0xefada6}, - {0x8430bc35, 0xefada7}, - {0x8430bc36, 0xefada8}, - {0x8430bc37, 0xefada9}, - {0x8430bc38, 0xefadaa}, - {0x8430bc39, 0xefadab}, - {0x8430bd30, 0xefadac}, - {0x8430bd31, 0xefadad}, - {0x8430bd32, 0xefadae}, - {0x8430bd33, 0xefadaf}, - {0x8430bd34, 0xefadb0}, - {0x8430bd35, 0xefadb1}, - {0x8430bd36, 0xefadb2}, - {0x8430bd37, 0xefadb3}, - {0x8430bd38, 0xefadb4}, - {0x8430bd39, 0xefadb5}, - {0x8430be30, 0xefadb6}, - {0x8430be31, 0xefadb7}, - {0x8430be32, 0xefadb8}, - {0x8430be33, 0xefadb9}, - {0x8430be34, 0xefadba}, - {0x8430be35, 0xefadbb}, - {0x8430be36, 0xefadbc}, - {0x8430be37, 0xefadbd}, - {0x8430be38, 0xefadbe}, - {0x8430be39, 0xefadbf}, - {0x8430bf30, 0xefae80}, - {0x8430bf31, 0xefae81}, - {0x8430bf32, 0xefae82}, - {0x8430bf33, 0xefae83}, - {0x8430bf34, 0xefae84}, - {0x8430bf35, 0xefae85}, - {0x8430bf36, 0xefae86}, - {0x8430bf37, 0xefae87}, - {0x8430bf38, 0xefae88}, - {0x8430bf39, 0xefae89}, - {0x8430c030, 0xefae8a}, - {0x8430c031, 0xefae8b}, - {0x8430c032, 0xefae8c}, - {0x8430c033, 0xefae8d}, - {0x8430c034, 0xefae8e}, - {0x8430c035, 0xefae8f}, - {0x8430c036, 0xefae90}, - {0x8430c037, 0xefae91}, - {0x8430c038, 0xefae92}, - {0x8430c039, 0xefae93}, - {0x8430c130, 0xefae94}, - {0x8430c131, 0xefae95}, - {0x8430c132, 0xefae96}, - {0x8430c133, 0xefae97}, - {0x8430c134, 0xefae98}, - {0x8430c135, 0xefae99}, - {0x8430c136, 0xefae9a}, - {0x8430c137, 0xefae9b}, - {0x8430c138, 0xefae9c}, - {0x8430c139, 0xefae9d}, - {0x8430c230, 0xefae9e}, - {0x8430c231, 0xefae9f}, - {0x8430c232, 0xefaea0}, - {0x8430c233, 0xefaea1}, - {0x8430c234, 0xefaea2}, - {0x8430c235, 0xefaea3}, - {0x8430c236, 0xefaea4}, - {0x8430c237, 0xefaea5}, - {0x8430c238, 0xefaea6}, - {0x8430c239, 0xefaea7}, - {0x8430c330, 0xefaea8}, - {0x8430c331, 0xefaea9}, - {0x8430c332, 0xefaeaa}, - {0x8430c333, 0xefaeab}, - {0x8430c334, 0xefaeac}, - {0x8430c335, 0xefaead}, - {0x8430c336, 0xefaeae}, - {0x8430c337, 0xefaeaf}, - {0x8430c338, 0xefaeb0}, - {0x8430c339, 0xefaeb1}, - {0x8430c430, 0xefaeb2}, - {0x8430c431, 0xefaeb3}, - {0x8430c432, 0xefaeb4}, - {0x8430c433, 0xefaeb5}, - {0x8430c434, 0xefaeb6}, - {0x8430c435, 0xefaeb7}, - {0x8430c436, 0xefaeb8}, - {0x8430c437, 0xefaeb9}, - {0x8430c438, 0xefaeba}, - {0x8430c439, 0xefaebb}, - {0x8430c530, 0xefaebc}, - {0x8430c531, 0xefaebd}, - {0x8430c532, 0xefaebe}, - {0x8430c533, 0xefaebf}, - {0x8430c534, 0xefaf80}, - {0x8430c535, 0xefaf81}, - {0x8430c536, 0xefaf82}, - {0x8430c537, 0xefaf83}, - {0x8430c538, 0xefaf84}, - {0x8430c539, 0xefaf85}, - {0x8430c630, 0xefaf86}, - {0x8430c631, 0xefaf87}, - {0x8430c632, 0xefaf88}, - {0x8430c633, 0xefaf89}, - {0x8430c634, 0xefaf8a}, - {0x8430c635, 0xefaf8b}, - {0x8430c636, 0xefaf8c}, - {0x8430c637, 0xefaf8d}, - {0x8430c638, 0xefaf8e}, - {0x8430c639, 0xefaf8f}, - {0x8430c730, 0xefaf90}, - {0x8430c731, 0xefaf91}, - {0x8430c732, 0xefaf92}, - {0x8430c733, 0xefaf93}, - {0x8430c734, 0xefaf94}, - {0x8430c735, 0xefaf95}, - {0x8430c736, 0xefaf96}, - {0x8430c737, 0xefaf97}, - {0x8430c738, 0xefaf98}, - {0x8430c739, 0xefaf99}, - {0x8430c830, 0xefaf9a}, - {0x8430c831, 0xefaf9b}, - {0x8430c832, 0xefaf9c}, - {0x8430c833, 0xefaf9d}, - {0x8430c834, 0xefaf9e}, - {0x8430c835, 0xefaf9f}, - {0x8430c836, 0xefafa0}, - {0x8430c837, 0xefafa1}, - {0x8430c838, 0xefafa2}, - {0x8430c839, 0xefafa3}, - {0x8430c930, 0xefafa4}, - {0x8430c931, 0xefafa5}, - {0x8430c932, 0xefafa6}, - {0x8430c933, 0xefafa7}, - {0x8430c934, 0xefafa8}, - {0x8430c935, 0xefafa9}, - {0x8430c936, 0xefafaa}, - {0x8430c937, 0xefafab}, - {0x8430c938, 0xefafac}, - {0x8430c939, 0xefafad}, - {0x8430ca30, 0xefafae}, - {0x8430ca31, 0xefafaf}, - {0x8430ca32, 0xefafb0}, - {0x8430ca33, 0xefafb1}, - {0x8430ca34, 0xefafb2}, - {0x8430ca35, 0xefafb3}, - {0x8430ca36, 0xefafb4}, - {0x8430ca37, 0xefafb5}, - {0x8430ca38, 0xefafb6}, - {0x8430ca39, 0xefafb7}, - {0x8430cb30, 0xefafb8}, - {0x8430cb31, 0xefafb9}, - {0x8430cb32, 0xefafba}, - {0x8430cb33, 0xefafbb}, - {0x8430cb34, 0xefafbc}, - {0x8430cb35, 0xefafbd}, - {0x8430cb36, 0xefafbe}, - {0x8430cb37, 0xefafbf}, - {0x8430cb38, 0xefb080}, - {0x8430cb39, 0xefb081}, - {0x8430cc30, 0xefb082}, - {0x8430cc31, 0xefb083}, - {0x8430cc32, 0xefb084}, - {0x8430cc33, 0xefb085}, - {0x8430cc34, 0xefb086}, - {0x8430cc35, 0xefb087}, - {0x8430cc36, 0xefb088}, - {0x8430cc37, 0xefb089}, - {0x8430cc38, 0xefb08a}, - {0x8430cc39, 0xefb08b}, - {0x8430cd30, 0xefb08c}, - {0x8430cd31, 0xefb08d}, - {0x8430cd32, 0xefb08e}, - {0x8430cd33, 0xefb08f}, - {0x8430cd34, 0xefb090}, - {0x8430cd35, 0xefb091}, - {0x8430cd36, 0xefb092}, - {0x8430cd37, 0xefb093}, - {0x8430cd38, 0xefb094}, - {0x8430cd39, 0xefb095}, - {0x8430ce30, 0xefb096}, - {0x8430ce31, 0xefb097}, - {0x8430ce32, 0xefb098}, - {0x8430ce33, 0xefb099}, - {0x8430ce34, 0xefb09a}, - {0x8430ce35, 0xefb09b}, - {0x8430ce36, 0xefb09c}, - {0x8430ce37, 0xefb09d}, - {0x8430ce38, 0xefb09e}, - {0x8430ce39, 0xefb09f}, - {0x8430cf30, 0xefb0a0}, - {0x8430cf31, 0xefb0a1}, - {0x8430cf32, 0xefb0a2}, - {0x8430cf33, 0xefb0a3}, - {0x8430cf34, 0xefb0a4}, - {0x8430cf35, 0xefb0a5}, - {0x8430cf36, 0xefb0a6}, - {0x8430cf37, 0xefb0a7}, - {0x8430cf38, 0xefb0a8}, - {0x8430cf39, 0xefb0a9}, - {0x8430d030, 0xefb0aa}, - {0x8430d031, 0xefb0ab}, - {0x8430d032, 0xefb0ac}, - {0x8430d033, 0xefb0ad}, - {0x8430d034, 0xefb0ae}, - {0x8430d035, 0xefb0af}, - {0x8430d036, 0xefb0b0}, - {0x8430d037, 0xefb0b1}, - {0x8430d038, 0xefb0b2}, - {0x8430d039, 0xefb0b3}, - {0x8430d130, 0xefb0b4}, - {0x8430d131, 0xefb0b5}, - {0x8430d132, 0xefb0b6}, - {0x8430d133, 0xefb0b7}, - {0x8430d134, 0xefb0b8}, - {0x8430d135, 0xefb0b9}, - {0x8430d136, 0xefb0ba}, - {0x8430d137, 0xefb0bb}, - {0x8430d138, 0xefb0bc}, - {0x8430d139, 0xefb0bd}, - {0x8430d230, 0xefb0be}, - {0x8430d231, 0xefb0bf}, - {0x8430d232, 0xefb180}, - {0x8430d233, 0xefb181}, - {0x8430d234, 0xefb182}, - {0x8430d235, 0xefb183}, - {0x8430d236, 0xefb184}, - {0x8430d237, 0xefb185}, - {0x8430d238, 0xefb186}, - {0x8430d239, 0xefb187}, - {0x8430d330, 0xefb188}, - {0x8430d331, 0xefb189}, - {0x8430d332, 0xefb18a}, - {0x8430d333, 0xefb18b}, - {0x8430d334, 0xefb18c}, - {0x8430d335, 0xefb18d}, - {0x8430d336, 0xefb18e}, - {0x8430d337, 0xefb18f}, - {0x8430d338, 0xefb190}, - {0x8430d339, 0xefb191}, - {0x8430d430, 0xefb192}, - {0x8430d431, 0xefb193}, - {0x8430d432, 0xefb194}, - {0x8430d433, 0xefb195}, - {0x8430d434, 0xefb196}, - {0x8430d435, 0xefb197}, - {0x8430d436, 0xefb198}, - {0x8430d437, 0xefb199}, - {0x8430d438, 0xefb19a}, - {0x8430d439, 0xefb19b}, - {0x8430d530, 0xefb19c}, - {0x8430d531, 0xefb19d}, - {0x8430d532, 0xefb19e}, - {0x8430d533, 0xefb19f}, - {0x8430d534, 0xefb1a0}, - {0x8430d535, 0xefb1a1}, - {0x8430d536, 0xefb1a2}, - {0x8430d537, 0xefb1a3}, - {0x8430d538, 0xefb1a4}, - {0x8430d539, 0xefb1a5}, - {0x8430d630, 0xefb1a6}, - {0x8430d631, 0xefb1a7}, - {0x8430d632, 0xefb1a8}, - {0x8430d633, 0xefb1a9}, - {0x8430d634, 0xefb1aa}, - {0x8430d635, 0xefb1ab}, - {0x8430d636, 0xefb1ac}, - {0x8430d637, 0xefb1ad}, - {0x8430d638, 0xefb1ae}, - {0x8430d639, 0xefb1af}, - {0x8430d730, 0xefb1b0}, - {0x8430d731, 0xefb1b1}, - {0x8430d732, 0xefb1b2}, - {0x8430d733, 0xefb1b3}, - {0x8430d734, 0xefb1b4}, - {0x8430d735, 0xefb1b5}, - {0x8430d736, 0xefb1b6}, - {0x8430d737, 0xefb1b7}, - {0x8430d738, 0xefb1b8}, - {0x8430d739, 0xefb1b9}, - {0x8430d830, 0xefb1ba}, - {0x8430d831, 0xefb1bb}, - {0x8430d832, 0xefb1bc}, - {0x8430d833, 0xefb1bd}, - {0x8430d834, 0xefb1be}, - {0x8430d835, 0xefb1bf}, - {0x8430d836, 0xefb280}, - {0x8430d837, 0xefb281}, - {0x8430d838, 0xefb282}, - {0x8430d839, 0xefb283}, - {0x8430d930, 0xefb284}, - {0x8430d931, 0xefb285}, - {0x8430d932, 0xefb286}, - {0x8430d933, 0xefb287}, - {0x8430d934, 0xefb288}, - {0x8430d935, 0xefb289}, - {0x8430d936, 0xefb28a}, - {0x8430d937, 0xefb28b}, - {0x8430d938, 0xefb28c}, - {0x8430d939, 0xefb28d}, - {0x8430da30, 0xefb28e}, - {0x8430da31, 0xefb28f}, - {0x8430da32, 0xefb290}, - {0x8430da33, 0xefb291}, - {0x8430da34, 0xefb292}, - {0x8430da35, 0xefb293}, - {0x8430da36, 0xefb294}, - {0x8430da37, 0xefb295}, - {0x8430da38, 0xefb296}, - {0x8430da39, 0xefb297}, - {0x8430db30, 0xefb298}, - {0x8430db31, 0xefb299}, - {0x8430db32, 0xefb29a}, - {0x8430db33, 0xefb29b}, - {0x8430db34, 0xefb29c}, - {0x8430db35, 0xefb29d}, - {0x8430db36, 0xefb29e}, - {0x8430db37, 0xefb29f}, - {0x8430db38, 0xefb2a0}, - {0x8430db39, 0xefb2a1}, - {0x8430dc30, 0xefb2a2}, - {0x8430dc31, 0xefb2a3}, - {0x8430dc32, 0xefb2a4}, - {0x8430dc33, 0xefb2a5}, - {0x8430dc34, 0xefb2a6}, - {0x8430dc35, 0xefb2a7}, - {0x8430dc36, 0xefb2a8}, - {0x8430dc37, 0xefb2a9}, - {0x8430dc38, 0xefb2aa}, - {0x8430dc39, 0xefb2ab}, - {0x8430dd30, 0xefb2ac}, - {0x8430dd31, 0xefb2ad}, - {0x8430dd32, 0xefb2ae}, - {0x8430dd33, 0xefb2af}, - {0x8430dd34, 0xefb2b0}, - {0x8430dd35, 0xefb2b1}, - {0x8430dd36, 0xefb2b2}, - {0x8430dd37, 0xefb2b3}, - {0x8430dd38, 0xefb2b4}, - {0x8430dd39, 0xefb2b5}, - {0x8430de30, 0xefb2b6}, - {0x8430de31, 0xefb2b7}, - {0x8430de32, 0xefb2b8}, - {0x8430de33, 0xefb2b9}, - {0x8430de34, 0xefb2ba}, - {0x8430de35, 0xefb2bb}, - {0x8430de36, 0xefb2bc}, - {0x8430de37, 0xefb2bd}, - {0x8430de38, 0xefb2be}, - {0x8430de39, 0xefb2bf}, - {0x8430df30, 0xefb380}, - {0x8430df31, 0xefb381}, - {0x8430df32, 0xefb382}, - {0x8430df33, 0xefb383}, - {0x8430df34, 0xefb384}, - {0x8430df35, 0xefb385}, - {0x8430df36, 0xefb386}, - {0x8430df37, 0xefb387}, - {0x8430df38, 0xefb388}, - {0x8430df39, 0xefb389}, - {0x8430e030, 0xefb38a}, - {0x8430e031, 0xefb38b}, - {0x8430e032, 0xefb38c}, - {0x8430e033, 0xefb38d}, - {0x8430e034, 0xefb38e}, - {0x8430e035, 0xefb38f}, - {0x8430e036, 0xefb390}, - {0x8430e037, 0xefb391}, - {0x8430e038, 0xefb392}, - {0x8430e039, 0xefb393}, - {0x8430e130, 0xefb394}, - {0x8430e131, 0xefb395}, - {0x8430e132, 0xefb396}, - {0x8430e133, 0xefb397}, - {0x8430e134, 0xefb398}, - {0x8430e135, 0xefb399}, - {0x8430e136, 0xefb39a}, - {0x8430e137, 0xefb39b}, - {0x8430e138, 0xefb39c}, - {0x8430e139, 0xefb39d}, - {0x8430e230, 0xefb39e}, - {0x8430e231, 0xefb39f}, - {0x8430e232, 0xefb3a0}, - {0x8430e233, 0xefb3a1}, - {0x8430e234, 0xefb3a2}, - {0x8430e235, 0xefb3a3}, - {0x8430e236, 0xefb3a4}, - {0x8430e237, 0xefb3a5}, - {0x8430e238, 0xefb3a6}, - {0x8430e239, 0xefb3a7}, - {0x8430e330, 0xefb3a8}, - {0x8430e331, 0xefb3a9}, - {0x8430e332, 0xefb3aa}, - {0x8430e333, 0xefb3ab}, - {0x8430e334, 0xefb3ac}, - {0x8430e335, 0xefb3ad}, - {0x8430e336, 0xefb3ae}, - {0x8430e337, 0xefb3af}, - {0x8430e338, 0xefb3b0}, - {0x8430e339, 0xefb3b1}, - {0x8430e430, 0xefb3b2}, - {0x8430e431, 0xefb3b3}, - {0x8430e432, 0xefb3b4}, - {0x8430e433, 0xefb3b5}, - {0x8430e434, 0xefb3b6}, - {0x8430e435, 0xefb3b7}, - {0x8430e436, 0xefb3b8}, - {0x8430e437, 0xefb3b9}, - {0x8430e438, 0xefb3ba}, - {0x8430e439, 0xefb3bb}, - {0x8430e530, 0xefb3bc}, - {0x8430e531, 0xefb3bd}, - {0x8430e532, 0xefb3be}, - {0x8430e533, 0xefb3bf}, - {0x8430e534, 0xefb480}, - {0x8430e535, 0xefb481}, - {0x8430e536, 0xefb482}, - {0x8430e537, 0xefb483}, - {0x8430e538, 0xefb484}, - {0x8430e539, 0xefb485}, - {0x8430e630, 0xefb486}, - {0x8430e631, 0xefb487}, - {0x8430e632, 0xefb488}, - {0x8430e633, 0xefb489}, - {0x8430e634, 0xefb48a}, - {0x8430e635, 0xefb48b}, - {0x8430e636, 0xefb48c}, - {0x8430e637, 0xefb48d}, - {0x8430e638, 0xefb48e}, - {0x8430e639, 0xefb48f}, - {0x8430e730, 0xefb490}, - {0x8430e731, 0xefb491}, - {0x8430e732, 0xefb492}, - {0x8430e733, 0xefb493}, - {0x8430e734, 0xefb494}, - {0x8430e735, 0xefb495}, - {0x8430e736, 0xefb496}, - {0x8430e737, 0xefb497}, - {0x8430e738, 0xefb498}, - {0x8430e739, 0xefb499}, - {0x8430e830, 0xefb49a}, - {0x8430e831, 0xefb49b}, - {0x8430e832, 0xefb49c}, - {0x8430e833, 0xefb49d}, - {0x8430e834, 0xefb49e}, - {0x8430e835, 0xefb49f}, - {0x8430e836, 0xefb4a0}, - {0x8430e837, 0xefb4a1}, - {0x8430e838, 0xefb4a2}, - {0x8430e839, 0xefb4a3}, - {0x8430e930, 0xefb4a4}, - {0x8430e931, 0xefb4a5}, - {0x8430e932, 0xefb4a6}, - {0x8430e933, 0xefb4a7}, - {0x8430e934, 0xefb4a8}, - {0x8430e935, 0xefb4a9}, - {0x8430e936, 0xefb4aa}, - {0x8430e937, 0xefb4ab}, - {0x8430e938, 0xefb4ac}, - {0x8430e939, 0xefb4ad}, - {0x8430ea30, 0xefb4ae}, - {0x8430ea31, 0xefb4af}, - {0x8430ea32, 0xefb4b0}, - {0x8430ea33, 0xefb4b1}, - {0x8430ea34, 0xefb4b2}, - {0x8430ea35, 0xefb4b3}, - {0x8430ea36, 0xefb4b4}, - {0x8430ea37, 0xefb4b5}, - {0x8430ea38, 0xefb4b6}, - {0x8430ea39, 0xefb4b7}, - {0x8430eb30, 0xefb4b8}, - {0x8430eb31, 0xefb4b9}, - {0x8430eb32, 0xefb4ba}, - {0x8430eb33, 0xefb4bb}, - {0x8430eb34, 0xefb4bc}, - {0x8430eb35, 0xefb4bd}, - {0x8430eb36, 0xefb4be}, - {0x8430eb37, 0xefb4bf}, - {0x8430eb38, 0xefb580}, - {0x8430eb39, 0xefb581}, - {0x8430ec30, 0xefb582}, - {0x8430ec31, 0xefb583}, - {0x8430ec32, 0xefb584}, - {0x8430ec33, 0xefb585}, - {0x8430ec34, 0xefb586}, - {0x8430ec35, 0xefb587}, - {0x8430ec36, 0xefb588}, - {0x8430ec37, 0xefb589}, - {0x8430ec38, 0xefb58a}, - {0x8430ec39, 0xefb58b}, - {0x8430ed30, 0xefb58c}, - {0x8430ed31, 0xefb58d}, - {0x8430ed32, 0xefb58e}, - {0x8430ed33, 0xefb58f}, - {0x8430ed34, 0xefb590}, - {0x8430ed35, 0xefb591}, - {0x8430ed36, 0xefb592}, - {0x8430ed37, 0xefb593}, - {0x8430ed38, 0xefb594}, - {0x8430ed39, 0xefb595}, - {0x8430ee30, 0xefb596}, - {0x8430ee31, 0xefb597}, - {0x8430ee32, 0xefb598}, - {0x8430ee33, 0xefb599}, - {0x8430ee34, 0xefb59a}, - {0x8430ee35, 0xefb59b}, - {0x8430ee36, 0xefb59c}, - {0x8430ee37, 0xefb59d}, - {0x8430ee38, 0xefb59e}, - {0x8430ee39, 0xefb59f}, - {0x8430ef30, 0xefb5a0}, - {0x8430ef31, 0xefb5a1}, - {0x8430ef32, 0xefb5a2}, - {0x8430ef33, 0xefb5a3}, - {0x8430ef34, 0xefb5a4}, - {0x8430ef35, 0xefb5a5}, - {0x8430ef36, 0xefb5a6}, - {0x8430ef37, 0xefb5a7}, - {0x8430ef38, 0xefb5a8}, - {0x8430ef39, 0xefb5a9}, - {0x8430f030, 0xefb5aa}, - {0x8430f031, 0xefb5ab}, - {0x8430f032, 0xefb5ac}, - {0x8430f033, 0xefb5ad}, - {0x8430f034, 0xefb5ae}, - {0x8430f035, 0xefb5af}, - {0x8430f036, 0xefb5b0}, - {0x8430f037, 0xefb5b1}, - {0x8430f038, 0xefb5b2}, - {0x8430f039, 0xefb5b3}, - {0x8430f130, 0xefb5b4}, - {0x8430f131, 0xefb5b5}, - {0x8430f132, 0xefb5b6}, - {0x8430f133, 0xefb5b7}, - {0x8430f134, 0xefb5b8}, - {0x8430f135, 0xefb5b9}, - {0x8430f136, 0xefb5ba}, - {0x8430f137, 0xefb5bb}, - {0x8430f138, 0xefb5bc}, - {0x8430f139, 0xefb5bd}, - {0x8430f230, 0xefb5be}, - {0x8430f231, 0xefb5bf}, - {0x8430f232, 0xefb680}, - {0x8430f233, 0xefb681}, - {0x8430f234, 0xefb682}, - {0x8430f235, 0xefb683}, - {0x8430f236, 0xefb684}, - {0x8430f237, 0xefb685}, - {0x8430f238, 0xefb686}, - {0x8430f239, 0xefb687}, - {0x8430f330, 0xefb688}, - {0x8430f331, 0xefb689}, - {0x8430f332, 0xefb68a}, - {0x8430f333, 0xefb68b}, - {0x8430f334, 0xefb68c}, - {0x8430f335, 0xefb68d}, - {0x8430f336, 0xefb68e}, - {0x8430f337, 0xefb68f}, - {0x8430f338, 0xefb690}, - {0x8430f339, 0xefb691}, - {0x8430f430, 0xefb692}, - {0x8430f431, 0xefb693}, - {0x8430f432, 0xefb694}, - {0x8430f433, 0xefb695}, - {0x8430f434, 0xefb696}, - {0x8430f435, 0xefb697}, - {0x8430f436, 0xefb698}, - {0x8430f437, 0xefb699}, - {0x8430f438, 0xefb69a}, - {0x8430f439, 0xefb69b}, - {0x8430f530, 0xefb69c}, - {0x8430f531, 0xefb69d}, - {0x8430f532, 0xefb69e}, - {0x8430f533, 0xefb69f}, - {0x8430f534, 0xefb6a0}, - {0x8430f535, 0xefb6a1}, - {0x8430f536, 0xefb6a2}, - {0x8430f537, 0xefb6a3}, - {0x8430f538, 0xefb6a4}, - {0x8430f539, 0xefb6a5}, - {0x8430f630, 0xefb6a6}, - {0x8430f631, 0xefb6a7}, - {0x8430f632, 0xefb6a8}, - {0x8430f633, 0xefb6a9}, - {0x8430f634, 0xefb6aa}, - {0x8430f635, 0xefb6ab}, - {0x8430f636, 0xefb6ac}, - {0x8430f637, 0xefb6ad}, - {0x8430f638, 0xefb6ae}, - {0x8430f639, 0xefb6af}, - {0x8430f730, 0xefb6b0}, - {0x8430f731, 0xefb6b1}, - {0x8430f732, 0xefb6b2}, - {0x8430f733, 0xefb6b3}, - {0x8430f734, 0xefb6b4}, - {0x8430f735, 0xefb6b5}, - {0x8430f736, 0xefb6b6}, - {0x8430f737, 0xefb6b7}, - {0x8430f738, 0xefb6b8}, - {0x8430f739, 0xefb6b9}, - {0x8430f830, 0xefb6ba}, - {0x8430f831, 0xefb6bb}, - {0x8430f832, 0xefb6bc}, - {0x8430f833, 0xefb6bd}, - {0x8430f834, 0xefb6be}, - {0x8430f835, 0xefb6bf}, - {0x8430f836, 0xefb780}, - {0x8430f837, 0xefb781}, - {0x8430f838, 0xefb782}, - {0x8430f839, 0xefb783}, - {0x8430f930, 0xefb784}, - {0x8430f931, 0xefb785}, - {0x8430f932, 0xefb786}, - {0x8430f933, 0xefb787}, - {0x8430f934, 0xefb788}, - {0x8430f935, 0xefb789}, - {0x8430f936, 0xefb78a}, - {0x8430f937, 0xefb78b}, - {0x8430f938, 0xefb78c}, - {0x8430f939, 0xefb78d}, - {0x8430fa30, 0xefb78e}, - {0x8430fa31, 0xefb78f}, - {0x8430fa32, 0xefb790}, - {0x8430fa33, 0xefb791}, - {0x8430fa34, 0xefb792}, - {0x8430fa35, 0xefb793}, - {0x8430fa36, 0xefb794}, - {0x8430fa37, 0xefb795}, - {0x8430fa38, 0xefb796}, - {0x8430fa39, 0xefb797}, - {0x8430fb30, 0xefb798}, - {0x8430fb31, 0xefb799}, - {0x8430fb32, 0xefb79a}, - {0x8430fb33, 0xefb79b}, - {0x8430fb34, 0xefb79c}, - {0x8430fb35, 0xefb79d}, - {0x8430fb36, 0xefb79e}, - {0x8430fb37, 0xefb79f}, - {0x8430fb38, 0xefb7a0}, - {0x8430fb39, 0xefb7a1}, - {0x8430fc30, 0xefb7a2}, - {0x8430fc31, 0xefb7a3}, - {0x8430fc32, 0xefb7a4}, - {0x8430fc33, 0xefb7a5}, - {0x8430fc34, 0xefb7a6}, - {0x8430fc35, 0xefb7a7}, - {0x8430fc36, 0xefb7a8}, - {0x8430fc37, 0xefb7a9}, - {0x8430fc38, 0xefb7aa}, - {0x8430fc39, 0xefb7ab}, - {0x8430fd30, 0xefb7ac}, - {0x8430fd31, 0xefb7ad}, - {0x8430fd32, 0xefb7ae}, - {0x8430fd33, 0xefb7af}, - {0x8430fd34, 0xefb7b0}, - {0x8430fd35, 0xefb7b1}, - {0x8430fd36, 0xefb7b2}, - {0x8430fd37, 0xefb7b3}, - {0x8430fd38, 0xefb7b4}, - {0x8430fd39, 0xefb7b5}, - {0x8430fe30, 0xefb7b6}, - {0x8430fe31, 0xefb7b7}, - {0x8430fe32, 0xefb7b8}, - {0x8430fe33, 0xefb7b9}, - {0x8430fe34, 0xefb7ba}, - {0x8430fe35, 0xefb7bb}, - {0x8430fe36, 0xefb7bc}, - {0x8430fe37, 0xefb7bd}, - {0x8430fe38, 0xefb7be}, - {0x8430fe39, 0xefb7bf}, - {0x84318130, 0xefb880}, - {0x84318131, 0xefb881}, - {0x84318132, 0xefb882}, - {0x84318133, 0xefb883}, - {0x84318134, 0xefb884}, - {0x84318135, 0xefb885}, - {0x84318136, 0xefb886}, - {0x84318137, 0xefb887}, - {0x84318138, 0xefb888}, - {0x84318139, 0xefb889}, - {0x84318230, 0xefb88a}, - {0x84318231, 0xefb88b}, - {0x84318232, 0xefb88c}, - {0x84318233, 0xefb88d}, - {0x84318234, 0xefb88e}, - {0x84318235, 0xefb88f}, - {0x84318236, 0xefb890}, - {0x84318237, 0xefb891}, - {0x84318238, 0xefb892}, - {0x84318239, 0xefb893}, - {0x84318330, 0xefb894}, - {0x84318331, 0xefb895}, - {0x84318332, 0xefb896}, - {0x84318333, 0xefb897}, - {0x84318334, 0xefb898}, - {0x84318335, 0xefb899}, - {0x84318336, 0xefb89a}, - {0x84318337, 0xefb89b}, - {0x84318338, 0xefb89c}, - {0x84318339, 0xefb89d}, - {0x84318430, 0xefb89e}, - {0x84318431, 0xefb89f}, - {0x84318432, 0xefb8a0}, - {0x84318433, 0xefb8a1}, - {0x84318434, 0xefb8a2}, - {0x84318435, 0xefb8a3}, - {0x84318436, 0xefb8a4}, - {0x84318437, 0xefb8a5}, - {0x84318438, 0xefb8a6}, - {0x84318439, 0xefb8a7}, - {0x84318530, 0xefb8a8}, - {0x84318531, 0xefb8a9}, - {0x84318532, 0xefb8aa}, - {0x84318533, 0xefb8ab}, - {0x84318534, 0xefb8ac}, - {0x84318535, 0xefb8ad}, - {0x84318536, 0xefb8ae}, - {0x84318537, 0xefb8af}, {0x84318538, 0xefb8b2}, {0x84318539, 0xefb985}, {0x84318630, 0xefb986}, @@ -63332,31 +30731,5 @@ static pg_local_to_utf LUmapGB18030[ 63360 ] = { {0x8431a230, 0xefbf9c}, {0x8431a231, 0xefbf9d}, {0x8431a232, 0xefbf9e}, - {0x8431a233, 0xefbf9f}, - {0x8431a234, 0xefbfa6}, - {0x8431a235, 0xefbfa7}, - {0x8431a236, 0xefbfa8}, - {0x8431a237, 0xefbfa9}, - {0x8431a238, 0xefbfaa}, - {0x8431a239, 0xefbfab}, - {0x8431a330, 0xefbfac}, - {0x8431a331, 0xefbfad}, - {0x8431a332, 0xefbfae}, - {0x8431a333, 0xefbfaf}, - {0x8431a334, 0xefbfb0}, - {0x8431a335, 0xefbfb1}, - {0x8431a336, 0xefbfb2}, - {0x8431a337, 0xefbfb3}, - {0x8431a338, 0xefbfb4}, - {0x8431a339, 0xefbfb5}, - {0x8431a430, 0xefbfb6}, - {0x8431a431, 0xefbfb7}, - {0x8431a432, 0xefbfb8}, - {0x8431a433, 0xefbfb9}, - {0x8431a434, 0xefbfba}, - {0x8431a435, 0xefbfbb}, - {0x8431a436, 0xefbfbc}, - {0x8431a437, 0xefbfbd}, - {0x8431a438, 0xefbfbe}, - {0x8431a439, 0xefbfbf} + {0x8431a233, 0xefbf9f} }; diff --git a/src/common/backend/utils/mb/Unicode/utf8_to_gb18030.map b/src/common/backend/utils/mb/Unicode/utf8_to_gb18030.map index 476625b22..ecad04be8 100644 --- a/src/common/backend/utils/mb/Unicode/utf8_to_gb18030.map +++ b/src/common/backend/utils/mb/Unicode/utf8_to_gb18030.map @@ -1,4 +1,4 @@ -static pg_utf_to_local ULmapGB18030[ 63360 ] = { +static pg_utf_to_local ULmapGB18030[ 30733 ] = { {0xc280, 0x81308130}, {0xc281, 0x81308131}, {0xc282, 0x81308132}, @@ -977,7108 +977,6 @@ static pg_utf_to_local ULmapGB18030[ 63360 ] = { {0xd18f, 0xa7f1}, {0xd190, 0x8130d239}, {0xd191, 0xa7d7}, - {0xd192, 0x8130d330}, - {0xd193, 0x8130d331}, - {0xd194, 0x8130d332}, - {0xd195, 0x8130d333}, - {0xd196, 0x8130d334}, - {0xd197, 0x8130d335}, - {0xd198, 0x8130d336}, - {0xd199, 0x8130d337}, - {0xd19a, 0x8130d338}, - {0xd19b, 0x8130d339}, - {0xd19c, 0x8130d430}, - {0xd19d, 0x8130d431}, - {0xd19e, 0x8130d432}, - {0xd19f, 0x8130d433}, - {0xd1a0, 0x8130d434}, - {0xd1a1, 0x8130d435}, - {0xd1a2, 0x8130d436}, - {0xd1a3, 0x8130d437}, - {0xd1a4, 0x8130d438}, - {0xd1a5, 0x8130d439}, - {0xd1a6, 0x8130d530}, - {0xd1a7, 0x8130d531}, - {0xd1a8, 0x8130d532}, - {0xd1a9, 0x8130d533}, - {0xd1aa, 0x8130d534}, - {0xd1ab, 0x8130d535}, - {0xd1ac, 0x8130d536}, - {0xd1ad, 0x8130d537}, - {0xd1ae, 0x8130d538}, - {0xd1af, 0x8130d539}, - {0xd1b0, 0x8130d630}, - {0xd1b1, 0x8130d631}, - {0xd1b2, 0x8130d632}, - {0xd1b3, 0x8130d633}, - {0xd1b4, 0x8130d634}, - {0xd1b5, 0x8130d635}, - {0xd1b6, 0x8130d636}, - {0xd1b7, 0x8130d637}, - {0xd1b8, 0x8130d638}, - {0xd1b9, 0x8130d639}, - {0xd1ba, 0x8130d730}, - {0xd1bb, 0x8130d731}, - {0xd1bc, 0x8130d732}, - {0xd1bd, 0x8130d733}, - {0xd1be, 0x8130d734}, - {0xd1bf, 0x8130d735}, - {0xd280, 0x8130d736}, - {0xd281, 0x8130d737}, - {0xd282, 0x8130d738}, - {0xd283, 0x8130d739}, - {0xd284, 0x8130d830}, - {0xd285, 0x8130d831}, - {0xd286, 0x8130d832}, - {0xd287, 0x8130d833}, - {0xd288, 0x8130d834}, - {0xd289, 0x8130d835}, - {0xd28a, 0x8130d836}, - {0xd28b, 0x8130d837}, - {0xd28c, 0x8130d838}, - {0xd28d, 0x8130d839}, - {0xd28e, 0x8130d930}, - {0xd28f, 0x8130d931}, - {0xd290, 0x8130d932}, - {0xd291, 0x8130d933}, - {0xd292, 0x8130d934}, - {0xd293, 0x8130d935}, - {0xd294, 0x8130d936}, - {0xd295, 0x8130d937}, - {0xd296, 0x8130d938}, - {0xd297, 0x8130d939}, - {0xd298, 0x8130da30}, - {0xd299, 0x8130da31}, - {0xd29a, 0x8130da32}, - {0xd29b, 0x8130da33}, - {0xd29c, 0x8130da34}, - {0xd29d, 0x8130da35}, - {0xd29e, 0x8130da36}, - {0xd29f, 0x8130da37}, - {0xd2a0, 0x8130da38}, - {0xd2a1, 0x8130da39}, - {0xd2a2, 0x8130db30}, - {0xd2a3, 0x8130db31}, - {0xd2a4, 0x8130db32}, - {0xd2a5, 0x8130db33}, - {0xd2a6, 0x8130db34}, - {0xd2a7, 0x8130db35}, - {0xd2a8, 0x8130db36}, - {0xd2a9, 0x8130db37}, - {0xd2aa, 0x8130db38}, - {0xd2ab, 0x8130db39}, - {0xd2ac, 0x8130dc30}, - {0xd2ad, 0x8130dc31}, - {0xd2ae, 0x8130dc32}, - {0xd2af, 0x8130dc33}, - {0xd2b0, 0x8130dc34}, - {0xd2b1, 0x8130dc35}, - {0xd2b2, 0x8130dc36}, - {0xd2b3, 0x8130dc37}, - {0xd2b4, 0x8130dc38}, - {0xd2b5, 0x8130dc39}, - {0xd2b6, 0x8130dd30}, - {0xd2b7, 0x8130dd31}, - {0xd2b8, 0x8130dd32}, - {0xd2b9, 0x8130dd33}, - {0xd2ba, 0x8130dd34}, - {0xd2bb, 0x8130dd35}, - {0xd2bc, 0x8130dd36}, - {0xd2bd, 0x8130dd37}, - {0xd2be, 0x8130dd38}, - {0xd2bf, 0x8130dd39}, - {0xd380, 0x8130de30}, - {0xd381, 0x8130de31}, - {0xd382, 0x8130de32}, - {0xd383, 0x8130de33}, - {0xd384, 0x8130de34}, - {0xd385, 0x8130de35}, - {0xd386, 0x8130de36}, - {0xd387, 0x8130de37}, - {0xd388, 0x8130de38}, - {0xd389, 0x8130de39}, - {0xd38a, 0x8130df30}, - {0xd38b, 0x8130df31}, - {0xd38c, 0x8130df32}, - {0xd38d, 0x8130df33}, - {0xd38e, 0x8130df34}, - {0xd38f, 0x8130df35}, - {0xd390, 0x8130df36}, - {0xd391, 0x8130df37}, - {0xd392, 0x8130df38}, - {0xd393, 0x8130df39}, - {0xd394, 0x8130e030}, - {0xd395, 0x8130e031}, - {0xd396, 0x8130e032}, - {0xd397, 0x8130e033}, - {0xd398, 0x8130e034}, - {0xd399, 0x8130e035}, - {0xd39a, 0x8130e036}, - {0xd39b, 0x8130e037}, - {0xd39c, 0x8130e038}, - {0xd39d, 0x8130e039}, - {0xd39e, 0x8130e130}, - {0xd39f, 0x8130e131}, - {0xd3a0, 0x8130e132}, - {0xd3a1, 0x8130e133}, - {0xd3a2, 0x8130e134}, - {0xd3a3, 0x8130e135}, - {0xd3a4, 0x8130e136}, - {0xd3a5, 0x8130e137}, - {0xd3a6, 0x8130e138}, - {0xd3a7, 0x8130e139}, - {0xd3a8, 0x8130e230}, - {0xd3a9, 0x8130e231}, - {0xd3aa, 0x8130e232}, - {0xd3ab, 0x8130e233}, - {0xd3ac, 0x8130e234}, - {0xd3ad, 0x8130e235}, - {0xd3ae, 0x8130e236}, - {0xd3af, 0x8130e237}, - {0xd3b0, 0x8130e238}, - {0xd3b1, 0x8130e239}, - {0xd3b2, 0x8130e330}, - {0xd3b3, 0x8130e331}, - {0xd3b4, 0x8130e332}, - {0xd3b5, 0x8130e333}, - {0xd3b6, 0x8130e334}, - {0xd3b7, 0x8130e335}, - {0xd3b8, 0x8130e336}, - {0xd3b9, 0x8130e337}, - {0xd3ba, 0x8130e338}, - {0xd3bb, 0x8130e339}, - {0xd3bc, 0x8130e430}, - {0xd3bd, 0x8130e431}, - {0xd3be, 0x8130e432}, - {0xd3bf, 0x8130e433}, - {0xd480, 0x8130e434}, - {0xd481, 0x8130e435}, - {0xd482, 0x8130e436}, - {0xd483, 0x8130e437}, - {0xd484, 0x8130e438}, - {0xd485, 0x8130e439}, - {0xd486, 0x8130e530}, - {0xd487, 0x8130e531}, - {0xd488, 0x8130e532}, - {0xd489, 0x8130e533}, - {0xd48a, 0x8130e534}, - {0xd48b, 0x8130e535}, - {0xd48c, 0x8130e536}, - {0xd48d, 0x8130e537}, - {0xd48e, 0x8130e538}, - {0xd48f, 0x8130e539}, - {0xd490, 0x8130e630}, - {0xd491, 0x8130e631}, - {0xd492, 0x8130e632}, - {0xd493, 0x8130e633}, - {0xd494, 0x8130e634}, - {0xd495, 0x8130e635}, - {0xd496, 0x8130e636}, - {0xd497, 0x8130e637}, - {0xd498, 0x8130e638}, - {0xd499, 0x8130e639}, - {0xd49a, 0x8130e730}, - {0xd49b, 0x8130e731}, - {0xd49c, 0x8130e732}, - {0xd49d, 0x8130e733}, - {0xd49e, 0x8130e734}, - {0xd49f, 0x8130e735}, - {0xd4a0, 0x8130e736}, - {0xd4a1, 0x8130e737}, - {0xd4a2, 0x8130e738}, - {0xd4a3, 0x8130e739}, - {0xd4a4, 0x8130e830}, - {0xd4a5, 0x8130e831}, - {0xd4a6, 0x8130e832}, - {0xd4a7, 0x8130e833}, - {0xd4a8, 0x8130e834}, - {0xd4a9, 0x8130e835}, - {0xd4aa, 0x8130e836}, - {0xd4ab, 0x8130e837}, - {0xd4ac, 0x8130e838}, - {0xd4ad, 0x8130e839}, - {0xd4ae, 0x8130e930}, - {0xd4af, 0x8130e931}, - {0xd4b0, 0x8130e932}, - {0xd4b1, 0x8130e933}, - {0xd4b2, 0x8130e934}, - {0xd4b3, 0x8130e935}, - {0xd4b4, 0x8130e936}, - {0xd4b5, 0x8130e937}, - {0xd4b6, 0x8130e938}, - {0xd4b7, 0x8130e939}, - {0xd4b8, 0x8130ea30}, - {0xd4b9, 0x8130ea31}, - {0xd4ba, 0x8130ea32}, - {0xd4bb, 0x8130ea33}, - {0xd4bc, 0x8130ea34}, - {0xd4bd, 0x8130ea35}, - {0xd4be, 0x8130ea36}, - {0xd4bf, 0x8130ea37}, - {0xd580, 0x8130ea38}, - {0xd581, 0x8130ea39}, - {0xd582, 0x8130eb30}, - {0xd583, 0x8130eb31}, - {0xd584, 0x8130eb32}, - {0xd585, 0x8130eb33}, - {0xd586, 0x8130eb34}, - {0xd587, 0x8130eb35}, - {0xd588, 0x8130eb36}, - {0xd589, 0x8130eb37}, - {0xd58a, 0x8130eb38}, - {0xd58b, 0x8130eb39}, - {0xd58c, 0x8130ec30}, - {0xd58d, 0x8130ec31}, - {0xd58e, 0x8130ec32}, - {0xd58f, 0x8130ec33}, - {0xd590, 0x8130ec34}, - {0xd591, 0x8130ec35}, - {0xd592, 0x8130ec36}, - {0xd593, 0x8130ec37}, - {0xd594, 0x8130ec38}, - {0xd595, 0x8130ec39}, - {0xd596, 0x8130ed30}, - {0xd597, 0x8130ed31}, - {0xd598, 0x8130ed32}, - {0xd599, 0x8130ed33}, - {0xd59a, 0x8130ed34}, - {0xd59b, 0x8130ed35}, - {0xd59c, 0x8130ed36}, - {0xd59d, 0x8130ed37}, - {0xd59e, 0x8130ed38}, - {0xd59f, 0x8130ed39}, - {0xd5a0, 0x8130ee30}, - {0xd5a1, 0x8130ee31}, - {0xd5a2, 0x8130ee32}, - {0xd5a3, 0x8130ee33}, - {0xd5a4, 0x8130ee34}, - {0xd5a5, 0x8130ee35}, - {0xd5a6, 0x8130ee36}, - {0xd5a7, 0x8130ee37}, - {0xd5a8, 0x8130ee38}, - {0xd5a9, 0x8130ee39}, - {0xd5aa, 0x8130ef30}, - {0xd5ab, 0x8130ef31}, - {0xd5ac, 0x8130ef32}, - {0xd5ad, 0x8130ef33}, - {0xd5ae, 0x8130ef34}, - {0xd5af, 0x8130ef35}, - {0xd5b0, 0x8130ef36}, - {0xd5b1, 0x8130ef37}, - {0xd5b2, 0x8130ef38}, - {0xd5b3, 0x8130ef39}, - {0xd5b4, 0x8130f030}, - {0xd5b5, 0x8130f031}, - {0xd5b6, 0x8130f032}, - {0xd5b7, 0x8130f033}, - {0xd5b8, 0x8130f034}, - {0xd5b9, 0x8130f035}, - {0xd5ba, 0x8130f036}, - {0xd5bb, 0x8130f037}, - {0xd5bc, 0x8130f038}, - {0xd5bd, 0x8130f039}, - {0xd5be, 0x8130f130}, - {0xd5bf, 0x8130f131}, - {0xd680, 0x8130f132}, - {0xd681, 0x8130f133}, - {0xd682, 0x8130f134}, - {0xd683, 0x8130f135}, - {0xd684, 0x8130f136}, - {0xd685, 0x8130f137}, - {0xd686, 0x8130f138}, - {0xd687, 0x8130f139}, - {0xd688, 0x8130f230}, - {0xd689, 0x8130f231}, - {0xd68a, 0x8130f232}, - {0xd68b, 0x8130f233}, - {0xd68c, 0x8130f234}, - {0xd68d, 0x8130f235}, - {0xd68e, 0x8130f236}, - {0xd68f, 0x8130f237}, - {0xd690, 0x8130f238}, - {0xd691, 0x8130f239}, - {0xd692, 0x8130f330}, - {0xd693, 0x8130f331}, - {0xd694, 0x8130f332}, - {0xd695, 0x8130f333}, - {0xd696, 0x8130f334}, - {0xd697, 0x8130f335}, - {0xd698, 0x8130f336}, - {0xd699, 0x8130f337}, - {0xd69a, 0x8130f338}, - {0xd69b, 0x8130f339}, - {0xd69c, 0x8130f430}, - {0xd69d, 0x8130f431}, - {0xd69e, 0x8130f432}, - {0xd69f, 0x8130f433}, - {0xd6a0, 0x8130f434}, - {0xd6a1, 0x8130f435}, - {0xd6a2, 0x8130f436}, - {0xd6a3, 0x8130f437}, - {0xd6a4, 0x8130f438}, - {0xd6a5, 0x8130f439}, - {0xd6a6, 0x8130f530}, - {0xd6a7, 0x8130f531}, - {0xd6a8, 0x8130f532}, - {0xd6a9, 0x8130f533}, - {0xd6aa, 0x8130f534}, - {0xd6ab, 0x8130f535}, - {0xd6ac, 0x8130f536}, - {0xd6ad, 0x8130f537}, - {0xd6ae, 0x8130f538}, - {0xd6af, 0x8130f539}, - {0xd6b0, 0x8130f630}, - {0xd6b1, 0x8130f631}, - {0xd6b2, 0x8130f632}, - {0xd6b3, 0x8130f633}, - {0xd6b4, 0x8130f634}, - {0xd6b5, 0x8130f635}, - {0xd6b6, 0x8130f636}, - {0xd6b7, 0x8130f637}, - {0xd6b8, 0x8130f638}, - {0xd6b9, 0x8130f639}, - {0xd6ba, 0x8130f730}, - {0xd6bb, 0x8130f731}, - {0xd6bc, 0x8130f732}, - {0xd6bd, 0x8130f733}, - {0xd6be, 0x8130f734}, - {0xd6bf, 0x8130f735}, - {0xd780, 0x8130f736}, - {0xd781, 0x8130f737}, - {0xd782, 0x8130f738}, - {0xd783, 0x8130f739}, - {0xd784, 0x8130f830}, - {0xd785, 0x8130f831}, - {0xd786, 0x8130f832}, - {0xd787, 0x8130f833}, - {0xd788, 0x8130f834}, - {0xd789, 0x8130f835}, - {0xd78a, 0x8130f836}, - {0xd78b, 0x8130f837}, - {0xd78c, 0x8130f838}, - {0xd78d, 0x8130f839}, - {0xd78e, 0x8130f930}, - {0xd78f, 0x8130f931}, - {0xd790, 0x8130f932}, - {0xd791, 0x8130f933}, - {0xd792, 0x8130f934}, - {0xd793, 0x8130f935}, - {0xd794, 0x8130f936}, - {0xd795, 0x8130f937}, - {0xd796, 0x8130f938}, - {0xd797, 0x8130f939}, - {0xd798, 0x8130fa30}, - {0xd799, 0x8130fa31}, - {0xd79a, 0x8130fa32}, - {0xd79b, 0x8130fa33}, - {0xd79c, 0x8130fa34}, - {0xd79d, 0x8130fa35}, - {0xd79e, 0x8130fa36}, - {0xd79f, 0x8130fa37}, - {0xd7a0, 0x8130fa38}, - {0xd7a1, 0x8130fa39}, - {0xd7a2, 0x8130fb30}, - {0xd7a3, 0x8130fb31}, - {0xd7a4, 0x8130fb32}, - {0xd7a5, 0x8130fb33}, - {0xd7a6, 0x8130fb34}, - {0xd7a7, 0x8130fb35}, - {0xd7a8, 0x8130fb36}, - {0xd7a9, 0x8130fb37}, - {0xd7aa, 0x8130fb38}, - {0xd7ab, 0x8130fb39}, - {0xd7ac, 0x8130fc30}, - {0xd7ad, 0x8130fc31}, - {0xd7ae, 0x8130fc32}, - {0xd7af, 0x8130fc33}, - {0xd7b0, 0x8130fc34}, - {0xd7b1, 0x8130fc35}, - {0xd7b2, 0x8130fc36}, - {0xd7b3, 0x8130fc37}, - {0xd7b4, 0x8130fc38}, - {0xd7b5, 0x8130fc39}, - {0xd7b6, 0x8130fd30}, - {0xd7b7, 0x8130fd31}, - {0xd7b8, 0x8130fd32}, - {0xd7b9, 0x8130fd33}, - {0xd7ba, 0x8130fd34}, - {0xd7bb, 0x8130fd35}, - {0xd7bc, 0x8130fd36}, - {0xd7bd, 0x8130fd37}, - {0xd7be, 0x8130fd38}, - {0xd7bf, 0x8130fd39}, - {0xd880, 0x8130fe30}, - {0xd881, 0x8130fe31}, - {0xd882, 0x8130fe32}, - {0xd883, 0x8130fe33}, - {0xd884, 0x8130fe34}, - {0xd885, 0x8130fe35}, - {0xd886, 0x8130fe36}, - {0xd887, 0x8130fe37}, - {0xd888, 0x8130fe38}, - {0xd889, 0x8130fe39}, - {0xd88a, 0x81318130}, - {0xd88b, 0x81318131}, - {0xd88c, 0x81318132}, - {0xd88d, 0x81318133}, - {0xd88e, 0x81318134}, - {0xd88f, 0x81318135}, - {0xd890, 0x81318136}, - {0xd891, 0x81318137}, - {0xd892, 0x81318138}, - {0xd893, 0x81318139}, - {0xd894, 0x81318230}, - {0xd895, 0x81318231}, - {0xd896, 0x81318232}, - {0xd897, 0x81318233}, - {0xd898, 0x81318234}, - {0xd899, 0x81318235}, - {0xd89a, 0x81318236}, - {0xd89b, 0x81318237}, - {0xd89c, 0x81318238}, - {0xd89d, 0x81318239}, - {0xd89e, 0x81318330}, - {0xd89f, 0x81318331}, - {0xd8a0, 0x81318332}, - {0xd8a1, 0x81318333}, - {0xd8a2, 0x81318334}, - {0xd8a3, 0x81318335}, - {0xd8a4, 0x81318336}, - {0xd8a5, 0x81318337}, - {0xd8a6, 0x81318338}, - {0xd8a7, 0x81318339}, - {0xd8a8, 0x81318430}, - {0xd8a9, 0x81318431}, - {0xd8aa, 0x81318432}, - {0xd8ab, 0x81318433}, - {0xd8ac, 0x81318434}, - {0xd8ad, 0x81318435}, - {0xd8ae, 0x81318436}, - {0xd8af, 0x81318437}, - {0xd8b0, 0x81318438}, - {0xd8b1, 0x81318439}, - {0xd8b2, 0x81318530}, - {0xd8b3, 0x81318531}, - {0xd8b4, 0x81318532}, - {0xd8b5, 0x81318533}, - {0xd8b6, 0x81318534}, - {0xd8b7, 0x81318535}, - {0xd8b8, 0x81318536}, - {0xd8b9, 0x81318537}, - {0xd8ba, 0x81318538}, - {0xd8bb, 0x81318539}, - {0xd8bc, 0x81318630}, - {0xd8bd, 0x81318631}, - {0xd8be, 0x81318632}, - {0xd8bf, 0x81318633}, - {0xd980, 0x81318634}, - {0xd981, 0x81318635}, - {0xd982, 0x81318636}, - {0xd983, 0x81318637}, - {0xd984, 0x81318638}, - {0xd985, 0x81318639}, - {0xd986, 0x81318730}, - {0xd987, 0x81318731}, - {0xd988, 0x81318732}, - {0xd989, 0x81318733}, - {0xd98a, 0x81318734}, - {0xd98b, 0x81318735}, - {0xd98c, 0x81318736}, - {0xd98d, 0x81318737}, - {0xd98e, 0x81318738}, - {0xd98f, 0x81318739}, - {0xd990, 0x81318830}, - {0xd991, 0x81318831}, - {0xd992, 0x81318832}, - {0xd993, 0x81318833}, - {0xd994, 0x81318834}, - {0xd995, 0x81318835}, - {0xd996, 0x81318836}, - {0xd997, 0x81318837}, - {0xd998, 0x81318838}, - {0xd999, 0x81318839}, - {0xd99a, 0x81318930}, - {0xd99b, 0x81318931}, - {0xd99c, 0x81318932}, - {0xd99d, 0x81318933}, - {0xd99e, 0x81318934}, - {0xd99f, 0x81318935}, - {0xd9a0, 0x81318936}, - {0xd9a1, 0x81318937}, - {0xd9a2, 0x81318938}, - {0xd9a3, 0x81318939}, - {0xd9a4, 0x81318a30}, - {0xd9a5, 0x81318a31}, - {0xd9a6, 0x81318a32}, - {0xd9a7, 0x81318a33}, - {0xd9a8, 0x81318a34}, - {0xd9a9, 0x81318a35}, - {0xd9aa, 0x81318a36}, - {0xd9ab, 0x81318a37}, - {0xd9ac, 0x81318a38}, - {0xd9ad, 0x81318a39}, - {0xd9ae, 0x81318b30}, - {0xd9af, 0x81318b31}, - {0xd9b0, 0x81318b32}, - {0xd9b1, 0x81318b33}, - {0xd9b2, 0x81318b34}, - {0xd9b3, 0x81318b35}, - {0xd9b4, 0x81318b36}, - {0xd9b5, 0x81318b37}, - {0xd9b6, 0x81318b38}, - {0xd9b7, 0x81318b39}, - {0xd9b8, 0x81318c30}, - {0xd9b9, 0x81318c31}, - {0xd9ba, 0x81318c32}, - {0xd9bb, 0x81318c33}, - {0xd9bc, 0x81318c34}, - {0xd9bd, 0x81318c35}, - {0xd9be, 0x81318c36}, - {0xd9bf, 0x81318c37}, - {0xda80, 0x81318c38}, - {0xda81, 0x81318c39}, - {0xda82, 0x81318d30}, - {0xda83, 0x81318d31}, - {0xda84, 0x81318d32}, - {0xda85, 0x81318d33}, - {0xda86, 0x81318d34}, - {0xda87, 0x81318d35}, - {0xda88, 0x81318d36}, - {0xda89, 0x81318d37}, - {0xda8a, 0x81318d38}, - {0xda8b, 0x81318d39}, - {0xda8c, 0x81318e30}, - {0xda8d, 0x81318e31}, - {0xda8e, 0x81318e32}, - {0xda8f, 0x81318e33}, - {0xda90, 0x81318e34}, - {0xda91, 0x81318e35}, - {0xda92, 0x81318e36}, - {0xda93, 0x81318e37}, - {0xda94, 0x81318e38}, - {0xda95, 0x81318e39}, - {0xda96, 0x81318f30}, - {0xda97, 0x81318f31}, - {0xda98, 0x81318f32}, - {0xda99, 0x81318f33}, - {0xda9a, 0x81318f34}, - {0xda9b, 0x81318f35}, - {0xda9c, 0x81318f36}, - {0xda9d, 0x81318f37}, - {0xda9e, 0x81318f38}, - {0xda9f, 0x81318f39}, - {0xdaa0, 0x81319030}, - {0xdaa1, 0x81319031}, - {0xdaa2, 0x81319032}, - {0xdaa3, 0x81319033}, - {0xdaa4, 0x81319034}, - {0xdaa5, 0x81319035}, - {0xdaa6, 0x81319036}, - {0xdaa7, 0x81319037}, - {0xdaa8, 0x81319038}, - {0xdaa9, 0x81319039}, - {0xdaaa, 0x81319130}, - {0xdaab, 0x81319131}, - {0xdaac, 0x81319132}, - {0xdaad, 0x81319133}, - {0xdaae, 0x81319134}, - {0xdaaf, 0x81319135}, - {0xdab0, 0x81319136}, - {0xdab1, 0x81319137}, - {0xdab2, 0x81319138}, - {0xdab3, 0x81319139}, - {0xdab4, 0x81319230}, - {0xdab5, 0x81319231}, - {0xdab6, 0x81319232}, - {0xdab7, 0x81319233}, - {0xdab8, 0x81319234}, - {0xdab9, 0x81319235}, - {0xdaba, 0x81319236}, - {0xdabb, 0x81319237}, - {0xdabc, 0x81319238}, - {0xdabd, 0x81319239}, - {0xdabe, 0x81319330}, - {0xdabf, 0x81319331}, - {0xdb80, 0x81319332}, - {0xdb81, 0x81319333}, - {0xdb82, 0x81319334}, - {0xdb83, 0x81319335}, - {0xdb84, 0x81319336}, - {0xdb85, 0x81319337}, - {0xdb86, 0x81319338}, - {0xdb87, 0x81319339}, - {0xdb88, 0x81319430}, - {0xdb89, 0x81319431}, - {0xdb8a, 0x81319432}, - {0xdb8b, 0x81319433}, - {0xdb8c, 0x81319434}, - {0xdb8d, 0x81319435}, - {0xdb8e, 0x81319436}, - {0xdb8f, 0x81319437}, - {0xdb90, 0x81319438}, - {0xdb91, 0x81319439}, - {0xdb92, 0x81319530}, - {0xdb93, 0x81319531}, - {0xdb94, 0x81319532}, - {0xdb95, 0x81319533}, - {0xdb96, 0x81319534}, - {0xdb97, 0x81319535}, - {0xdb98, 0x81319536}, - {0xdb99, 0x81319537}, - {0xdb9a, 0x81319538}, - {0xdb9b, 0x81319539}, - {0xdb9c, 0x81319630}, - {0xdb9d, 0x81319631}, - {0xdb9e, 0x81319632}, - {0xdb9f, 0x81319633}, - {0xdba0, 0x81319634}, - {0xdba1, 0x81319635}, - {0xdba2, 0x81319636}, - {0xdba3, 0x81319637}, - {0xdba4, 0x81319638}, - {0xdba5, 0x81319639}, - {0xdba6, 0x81319730}, - {0xdba7, 0x81319731}, - {0xdba8, 0x81319732}, - {0xdba9, 0x81319733}, - {0xdbaa, 0x81319734}, - {0xdbab, 0x81319735}, - {0xdbac, 0x81319736}, - {0xdbad, 0x81319737}, - {0xdbae, 0x81319738}, - {0xdbaf, 0x81319739}, - {0xdbb0, 0x81319830}, - {0xdbb1, 0x81319831}, - {0xdbb2, 0x81319832}, - {0xdbb3, 0x81319833}, - {0xdbb4, 0x81319834}, - {0xdbb5, 0x81319835}, - {0xdbb6, 0x81319836}, - {0xdbb7, 0x81319837}, - {0xdbb8, 0x81319838}, - {0xdbb9, 0x81319839}, - {0xdbba, 0x81319930}, - {0xdbbb, 0x81319931}, - {0xdbbc, 0x81319932}, - {0xdbbd, 0x81319933}, - {0xdbbe, 0x81319934}, - {0xdbbf, 0x81319935}, - {0xdc80, 0x81319936}, - {0xdc81, 0x81319937}, - {0xdc82, 0x81319938}, - {0xdc83, 0x81319939}, - {0xdc84, 0x81319a30}, - {0xdc85, 0x81319a31}, - {0xdc86, 0x81319a32}, - {0xdc87, 0x81319a33}, - {0xdc88, 0x81319a34}, - {0xdc89, 0x81319a35}, - {0xdc8a, 0x81319a36}, - {0xdc8b, 0x81319a37}, - {0xdc8c, 0x81319a38}, - {0xdc8d, 0x81319a39}, - {0xdc8e, 0x81319b30}, - {0xdc8f, 0x81319b31}, - {0xdc90, 0x81319b32}, - {0xdc91, 0x81319b33}, - {0xdc92, 0x81319b34}, - {0xdc93, 0x81319b35}, - {0xdc94, 0x81319b36}, - {0xdc95, 0x81319b37}, - {0xdc96, 0x81319b38}, - {0xdc97, 0x81319b39}, - {0xdc98, 0x81319c30}, - {0xdc99, 0x81319c31}, - {0xdc9a, 0x81319c32}, - {0xdc9b, 0x81319c33}, - {0xdc9c, 0x81319c34}, - {0xdc9d, 0x81319c35}, - {0xdc9e, 0x81319c36}, - {0xdc9f, 0x81319c37}, - {0xdca0, 0x81319c38}, - {0xdca1, 0x81319c39}, - {0xdca2, 0x81319d30}, - {0xdca3, 0x81319d31}, - {0xdca4, 0x81319d32}, - {0xdca5, 0x81319d33}, - {0xdca6, 0x81319d34}, - {0xdca7, 0x81319d35}, - {0xdca8, 0x81319d36}, - {0xdca9, 0x81319d37}, - {0xdcaa, 0x81319d38}, - {0xdcab, 0x81319d39}, - {0xdcac, 0x81319e30}, - {0xdcad, 0x81319e31}, - {0xdcae, 0x81319e32}, - {0xdcaf, 0x81319e33}, - {0xdcb0, 0x81319e34}, - {0xdcb1, 0x81319e35}, - {0xdcb2, 0x81319e36}, - {0xdcb3, 0x81319e37}, - {0xdcb4, 0x81319e38}, - {0xdcb5, 0x81319e39}, - {0xdcb6, 0x81319f30}, - {0xdcb7, 0x81319f31}, - {0xdcb8, 0x81319f32}, - {0xdcb9, 0x81319f33}, - {0xdcba, 0x81319f34}, - {0xdcbb, 0x81319f35}, - {0xdcbc, 0x81319f36}, - {0xdcbd, 0x81319f37}, - {0xdcbe, 0x81319f38}, - {0xdcbf, 0x81319f39}, - {0xdd80, 0x8131a030}, - {0xdd81, 0x8131a031}, - {0xdd82, 0x8131a032}, - {0xdd83, 0x8131a033}, - {0xdd84, 0x8131a034}, - {0xdd85, 0x8131a035}, - {0xdd86, 0x8131a036}, - {0xdd87, 0x8131a037}, - {0xdd88, 0x8131a038}, - {0xdd89, 0x8131a039}, - {0xdd8a, 0x8131a130}, - {0xdd8b, 0x8131a131}, - {0xdd8c, 0x8131a132}, - {0xdd8d, 0x8131a133}, - {0xdd8e, 0x8131a134}, - {0xdd8f, 0x8131a135}, - {0xdd90, 0x8131a136}, - {0xdd91, 0x8131a137}, - {0xdd92, 0x8131a138}, - {0xdd93, 0x8131a139}, - {0xdd94, 0x8131a230}, - {0xdd95, 0x8131a231}, - {0xdd96, 0x8131a232}, - {0xdd97, 0x8131a233}, - {0xdd98, 0x8131a234}, - {0xdd99, 0x8131a235}, - {0xdd9a, 0x8131a236}, - {0xdd9b, 0x8131a237}, - {0xdd9c, 0x8131a238}, - {0xdd9d, 0x8131a239}, - {0xdd9e, 0x8131a330}, - {0xdd9f, 0x8131a331}, - {0xdda0, 0x8131a332}, - {0xdda1, 0x8131a333}, - {0xdda2, 0x8131a334}, - {0xdda3, 0x8131a335}, - {0xdda4, 0x8131a336}, - {0xdda5, 0x8131a337}, - {0xdda6, 0x8131a338}, - {0xdda7, 0x8131a339}, - {0xdda8, 0x8131a430}, - {0xdda9, 0x8131a431}, - {0xddaa, 0x8131a432}, - {0xddab, 0x8131a433}, - {0xddac, 0x8131a434}, - {0xddad, 0x8131a435}, - {0xddae, 0x8131a436}, - {0xddaf, 0x8131a437}, - {0xddb0, 0x8131a438}, - {0xddb1, 0x8131a439}, - {0xddb2, 0x8131a530}, - {0xddb3, 0x8131a531}, - {0xddb4, 0x8131a532}, - {0xddb5, 0x8131a533}, - {0xddb6, 0x8131a534}, - {0xddb7, 0x8131a535}, - {0xddb8, 0x8131a536}, - {0xddb9, 0x8131a537}, - {0xddba, 0x8131a538}, - {0xddbb, 0x8131a539}, - {0xddbc, 0x8131a630}, - {0xddbd, 0x8131a631}, - {0xddbe, 0x8131a632}, - {0xddbf, 0x8131a633}, - {0xde80, 0x8131a634}, - {0xde81, 0x8131a635}, - {0xde82, 0x8131a636}, - {0xde83, 0x8131a637}, - {0xde84, 0x8131a638}, - {0xde85, 0x8131a639}, - {0xde86, 0x8131a730}, - {0xde87, 0x8131a731}, - {0xde88, 0x8131a732}, - {0xde89, 0x8131a733}, - {0xde8a, 0x8131a734}, - {0xde8b, 0x8131a735}, - {0xde8c, 0x8131a736}, - {0xde8d, 0x8131a737}, - {0xde8e, 0x8131a738}, - {0xde8f, 0x8131a739}, - {0xde90, 0x8131a830}, - {0xde91, 0x8131a831}, - {0xde92, 0x8131a832}, - {0xde93, 0x8131a833}, - {0xde94, 0x8131a834}, - {0xde95, 0x8131a835}, - {0xde96, 0x8131a836}, - {0xde97, 0x8131a837}, - {0xde98, 0x8131a838}, - {0xde99, 0x8131a839}, - {0xde9a, 0x8131a930}, - {0xde9b, 0x8131a931}, - {0xde9c, 0x8131a932}, - {0xde9d, 0x8131a933}, - {0xde9e, 0x8131a934}, - {0xde9f, 0x8131a935}, - {0xdea0, 0x8131a936}, - {0xdea1, 0x8131a937}, - {0xdea2, 0x8131a938}, - {0xdea3, 0x8131a939}, - {0xdea4, 0x8131aa30}, - {0xdea5, 0x8131aa31}, - {0xdea6, 0x8131aa32}, - {0xdea7, 0x8131aa33}, - {0xdea8, 0x8131aa34}, - {0xdea9, 0x8131aa35}, - {0xdeaa, 0x8131aa36}, - {0xdeab, 0x8131aa37}, - {0xdeac, 0x8131aa38}, - {0xdead, 0x8131aa39}, - {0xdeae, 0x8131ab30}, - {0xdeaf, 0x8131ab31}, - {0xdeb0, 0x8131ab32}, - {0xdeb1, 0x8131ab33}, - {0xdeb2, 0x8131ab34}, - {0xdeb3, 0x8131ab35}, - {0xdeb4, 0x8131ab36}, - {0xdeb5, 0x8131ab37}, - {0xdeb6, 0x8131ab38}, - {0xdeb7, 0x8131ab39}, - {0xdeb8, 0x8131ac30}, - {0xdeb9, 0x8131ac31}, - {0xdeba, 0x8131ac32}, - {0xdebb, 0x8131ac33}, - {0xdebc, 0x8131ac34}, - {0xdebd, 0x8131ac35}, - {0xdebe, 0x8131ac36}, - {0xdebf, 0x8131ac37}, - {0xdf80, 0x8131ac38}, - {0xdf81, 0x8131ac39}, - {0xdf82, 0x8131ad30}, - {0xdf83, 0x8131ad31}, - {0xdf84, 0x8131ad32}, - {0xdf85, 0x8131ad33}, - {0xdf86, 0x8131ad34}, - {0xdf87, 0x8131ad35}, - {0xdf88, 0x8131ad36}, - {0xdf89, 0x8131ad37}, - {0xdf8a, 0x8131ad38}, - {0xdf8b, 0x8131ad39}, - {0xdf8c, 0x8131ae30}, - {0xdf8d, 0x8131ae31}, - {0xdf8e, 0x8131ae32}, - {0xdf8f, 0x8131ae33}, - {0xdf90, 0x8131ae34}, - {0xdf91, 0x8131ae35}, - {0xdf92, 0x8131ae36}, - {0xdf93, 0x8131ae37}, - {0xdf94, 0x8131ae38}, - {0xdf95, 0x8131ae39}, - {0xdf96, 0x8131af30}, - {0xdf97, 0x8131af31}, - {0xdf98, 0x8131af32}, - {0xdf99, 0x8131af33}, - {0xdf9a, 0x8131af34}, - {0xdf9b, 0x8131af35}, - {0xdf9c, 0x8131af36}, - {0xdf9d, 0x8131af37}, - {0xdf9e, 0x8131af38}, - {0xdf9f, 0x8131af39}, - {0xdfa0, 0x8131b030}, - {0xdfa1, 0x8131b031}, - {0xdfa2, 0x8131b032}, - {0xdfa3, 0x8131b033}, - {0xdfa4, 0x8131b034}, - {0xdfa5, 0x8131b035}, - {0xdfa6, 0x8131b036}, - {0xdfa7, 0x8131b037}, - {0xdfa8, 0x8131b038}, - {0xdfa9, 0x8131b039}, - {0xdfaa, 0x8131b130}, - {0xdfab, 0x8131b131}, - {0xdfac, 0x8131b132}, - {0xdfad, 0x8131b133}, - {0xdfae, 0x8131b134}, - {0xdfaf, 0x8131b135}, - {0xdfb0, 0x8131b136}, - {0xdfb1, 0x8131b137}, - {0xdfb2, 0x8131b138}, - {0xdfb3, 0x8131b139}, - {0xdfb4, 0x8131b230}, - {0xdfb5, 0x8131b231}, - {0xdfb6, 0x8131b232}, - {0xdfb7, 0x8131b233}, - {0xdfb8, 0x8131b234}, - {0xdfb9, 0x8131b235}, - {0xdfba, 0x8131b236}, - {0xdfbb, 0x8131b237}, - {0xdfbc, 0x8131b238}, - {0xdfbd, 0x8131b239}, - {0xdfbe, 0x8131b330}, - {0xdfbf, 0x8131b331}, - {0xe0a080, 0x8131b332}, - {0xe0a081, 0x8131b333}, - {0xe0a082, 0x8131b334}, - {0xe0a083, 0x8131b335}, - {0xe0a084, 0x8131b336}, - {0xe0a085, 0x8131b337}, - {0xe0a086, 0x8131b338}, - {0xe0a087, 0x8131b339}, - {0xe0a088, 0x8131b430}, - {0xe0a089, 0x8131b431}, - {0xe0a08a, 0x8131b432}, - {0xe0a08b, 0x8131b433}, - {0xe0a08c, 0x8131b434}, - {0xe0a08d, 0x8131b435}, - {0xe0a08e, 0x8131b436}, - {0xe0a08f, 0x8131b437}, - {0xe0a090, 0x8131b438}, - {0xe0a091, 0x8131b439}, - {0xe0a092, 0x8131b530}, - {0xe0a093, 0x8131b531}, - {0xe0a094, 0x8131b532}, - {0xe0a095, 0x8131b533}, - {0xe0a096, 0x8131b534}, - {0xe0a097, 0x8131b535}, - {0xe0a098, 0x8131b536}, - {0xe0a099, 0x8131b537}, - {0xe0a09a, 0x8131b538}, - {0xe0a09b, 0x8131b539}, - {0xe0a09c, 0x8131b630}, - {0xe0a09d, 0x8131b631}, - {0xe0a09e, 0x8131b632}, - {0xe0a09f, 0x8131b633}, - {0xe0a0a0, 0x8131b634}, - {0xe0a0a1, 0x8131b635}, - {0xe0a0a2, 0x8131b636}, - {0xe0a0a3, 0x8131b637}, - {0xe0a0a4, 0x8131b638}, - {0xe0a0a5, 0x8131b639}, - {0xe0a0a6, 0x8131b730}, - {0xe0a0a7, 0x8131b731}, - {0xe0a0a8, 0x8131b732}, - {0xe0a0a9, 0x8131b733}, - {0xe0a0aa, 0x8131b734}, - {0xe0a0ab, 0x8131b735}, - {0xe0a0ac, 0x8131b736}, - {0xe0a0ad, 0x8131b737}, - {0xe0a0ae, 0x8131b738}, - {0xe0a0af, 0x8131b739}, - {0xe0a0b0, 0x8131b830}, - {0xe0a0b1, 0x8131b831}, - {0xe0a0b2, 0x8131b832}, - {0xe0a0b3, 0x8131b833}, - {0xe0a0b4, 0x8131b834}, - {0xe0a0b5, 0x8131b835}, - {0xe0a0b6, 0x8131b836}, - {0xe0a0b7, 0x8131b837}, - {0xe0a0b8, 0x8131b838}, - {0xe0a0b9, 0x8131b839}, - {0xe0a0ba, 0x8131b930}, - {0xe0a0bb, 0x8131b931}, - {0xe0a0bc, 0x8131b932}, - {0xe0a0bd, 0x8131b933}, - {0xe0a0be, 0x8131b934}, - {0xe0a0bf, 0x8131b935}, - {0xe0a180, 0x8131b936}, - {0xe0a181, 0x8131b937}, - {0xe0a182, 0x8131b938}, - {0xe0a183, 0x8131b939}, - {0xe0a184, 0x8131ba30}, - {0xe0a185, 0x8131ba31}, - {0xe0a186, 0x8131ba32}, - {0xe0a187, 0x8131ba33}, - {0xe0a188, 0x8131ba34}, - {0xe0a189, 0x8131ba35}, - {0xe0a18a, 0x8131ba36}, - {0xe0a18b, 0x8131ba37}, - {0xe0a18c, 0x8131ba38}, - {0xe0a18d, 0x8131ba39}, - {0xe0a18e, 0x8131bb30}, - {0xe0a18f, 0x8131bb31}, - {0xe0a190, 0x8131bb32}, - {0xe0a191, 0x8131bb33}, - {0xe0a192, 0x8131bb34}, - {0xe0a193, 0x8131bb35}, - {0xe0a194, 0x8131bb36}, - {0xe0a195, 0x8131bb37}, - {0xe0a196, 0x8131bb38}, - {0xe0a197, 0x8131bb39}, - {0xe0a198, 0x8131bc30}, - {0xe0a199, 0x8131bc31}, - {0xe0a19a, 0x8131bc32}, - {0xe0a19b, 0x8131bc33}, - {0xe0a19c, 0x8131bc34}, - {0xe0a19d, 0x8131bc35}, - {0xe0a19e, 0x8131bc36}, - {0xe0a19f, 0x8131bc37}, - {0xe0a1a0, 0x8131bc38}, - {0xe0a1a1, 0x8131bc39}, - {0xe0a1a2, 0x8131bd30}, - {0xe0a1a3, 0x8131bd31}, - {0xe0a1a4, 0x8131bd32}, - {0xe0a1a5, 0x8131bd33}, - {0xe0a1a6, 0x8131bd34}, - {0xe0a1a7, 0x8131bd35}, - {0xe0a1a8, 0x8131bd36}, - {0xe0a1a9, 0x8131bd37}, - {0xe0a1aa, 0x8131bd38}, - {0xe0a1ab, 0x8131bd39}, - {0xe0a1ac, 0x8131be30}, - {0xe0a1ad, 0x8131be31}, - {0xe0a1ae, 0x8131be32}, - {0xe0a1af, 0x8131be33}, - {0xe0a1b0, 0x8131be34}, - {0xe0a1b1, 0x8131be35}, - {0xe0a1b2, 0x8131be36}, - {0xe0a1b3, 0x8131be37}, - {0xe0a1b4, 0x8131be38}, - {0xe0a1b5, 0x8131be39}, - {0xe0a1b6, 0x8131bf30}, - {0xe0a1b7, 0x8131bf31}, - {0xe0a1b8, 0x8131bf32}, - {0xe0a1b9, 0x8131bf33}, - {0xe0a1ba, 0x8131bf34}, - {0xe0a1bb, 0x8131bf35}, - {0xe0a1bc, 0x8131bf36}, - {0xe0a1bd, 0x8131bf37}, - {0xe0a1be, 0x8131bf38}, - {0xe0a1bf, 0x8131bf39}, - {0xe0a280, 0x8131c030}, - {0xe0a281, 0x8131c031}, - {0xe0a282, 0x8131c032}, - {0xe0a283, 0x8131c033}, - {0xe0a284, 0x8131c034}, - {0xe0a285, 0x8131c035}, - {0xe0a286, 0x8131c036}, - {0xe0a287, 0x8131c037}, - {0xe0a288, 0x8131c038}, - {0xe0a289, 0x8131c039}, - {0xe0a28a, 0x8131c130}, - {0xe0a28b, 0x8131c131}, - {0xe0a28c, 0x8131c132}, - {0xe0a28d, 0x8131c133}, - {0xe0a28e, 0x8131c134}, - {0xe0a28f, 0x8131c135}, - {0xe0a290, 0x8131c136}, - {0xe0a291, 0x8131c137}, - {0xe0a292, 0x8131c138}, - {0xe0a293, 0x8131c139}, - {0xe0a294, 0x8131c230}, - {0xe0a295, 0x8131c231}, - {0xe0a296, 0x8131c232}, - {0xe0a297, 0x8131c233}, - {0xe0a298, 0x8131c234}, - {0xe0a299, 0x8131c235}, - {0xe0a29a, 0x8131c236}, - {0xe0a29b, 0x8131c237}, - {0xe0a29c, 0x8131c238}, - {0xe0a29d, 0x8131c239}, - {0xe0a29e, 0x8131c330}, - {0xe0a29f, 0x8131c331}, - {0xe0a2a0, 0x8131c332}, - {0xe0a2a1, 0x8131c333}, - {0xe0a2a2, 0x8131c334}, - {0xe0a2a3, 0x8131c335}, - {0xe0a2a4, 0x8131c336}, - {0xe0a2a5, 0x8131c337}, - {0xe0a2a6, 0x8131c338}, - {0xe0a2a7, 0x8131c339}, - {0xe0a2a8, 0x8131c430}, - {0xe0a2a9, 0x8131c431}, - {0xe0a2aa, 0x8131c432}, - {0xe0a2ab, 0x8131c433}, - {0xe0a2ac, 0x8131c434}, - {0xe0a2ad, 0x8131c435}, - {0xe0a2ae, 0x8131c436}, - {0xe0a2af, 0x8131c437}, - {0xe0a2b0, 0x8131c438}, - {0xe0a2b1, 0x8131c439}, - {0xe0a2b2, 0x8131c530}, - {0xe0a2b3, 0x8131c531}, - {0xe0a2b4, 0x8131c532}, - {0xe0a2b5, 0x8131c533}, - {0xe0a2b6, 0x8131c534}, - {0xe0a2b7, 0x8131c535}, - {0xe0a2b8, 0x8131c536}, - {0xe0a2b9, 0x8131c537}, - {0xe0a2ba, 0x8131c538}, - {0xe0a2bb, 0x8131c539}, - {0xe0a2bc, 0x8131c630}, - {0xe0a2bd, 0x8131c631}, - {0xe0a2be, 0x8131c632}, - {0xe0a2bf, 0x8131c633}, - {0xe0a380, 0x8131c634}, - {0xe0a381, 0x8131c635}, - {0xe0a382, 0x8131c636}, - {0xe0a383, 0x8131c637}, - {0xe0a384, 0x8131c638}, - {0xe0a385, 0x8131c639}, - {0xe0a386, 0x8131c730}, - {0xe0a387, 0x8131c731}, - {0xe0a388, 0x8131c732}, - {0xe0a389, 0x8131c733}, - {0xe0a38a, 0x8131c734}, - {0xe0a38b, 0x8131c735}, - {0xe0a38c, 0x8131c736}, - {0xe0a38d, 0x8131c737}, - {0xe0a38e, 0x8131c738}, - {0xe0a38f, 0x8131c739}, - {0xe0a390, 0x8131c830}, - {0xe0a391, 0x8131c831}, - {0xe0a392, 0x8131c832}, - {0xe0a393, 0x8131c833}, - {0xe0a394, 0x8131c834}, - {0xe0a395, 0x8131c835}, - {0xe0a396, 0x8131c836}, - {0xe0a397, 0x8131c837}, - {0xe0a398, 0x8131c838}, - {0xe0a399, 0x8131c839}, - {0xe0a39a, 0x8131c930}, - {0xe0a39b, 0x8131c931}, - {0xe0a39c, 0x8131c932}, - {0xe0a39d, 0x8131c933}, - {0xe0a39e, 0x8131c934}, - {0xe0a39f, 0x8131c935}, - {0xe0a3a0, 0x8131c936}, - {0xe0a3a1, 0x8131c937}, - {0xe0a3a2, 0x8131c938}, - {0xe0a3a3, 0x8131c939}, - {0xe0a3a4, 0x8131ca30}, - {0xe0a3a5, 0x8131ca31}, - {0xe0a3a6, 0x8131ca32}, - {0xe0a3a7, 0x8131ca33}, - {0xe0a3a8, 0x8131ca34}, - {0xe0a3a9, 0x8131ca35}, - {0xe0a3aa, 0x8131ca36}, - {0xe0a3ab, 0x8131ca37}, - {0xe0a3ac, 0x8131ca38}, - {0xe0a3ad, 0x8131ca39}, - {0xe0a3ae, 0x8131cb30}, - {0xe0a3af, 0x8131cb31}, - {0xe0a3b0, 0x8131cb32}, - {0xe0a3b1, 0x8131cb33}, - {0xe0a3b2, 0x8131cb34}, - {0xe0a3b3, 0x8131cb35}, - {0xe0a3b4, 0x8131cb36}, - {0xe0a3b5, 0x8131cb37}, - {0xe0a3b6, 0x8131cb38}, - {0xe0a3b7, 0x8131cb39}, - {0xe0a3b8, 0x8131cc30}, - {0xe0a3b9, 0x8131cc31}, - {0xe0a3ba, 0x8131cc32}, - {0xe0a3bb, 0x8131cc33}, - {0xe0a3bc, 0x8131cc34}, - {0xe0a3bd, 0x8131cc35}, - {0xe0a3be, 0x8131cc36}, - {0xe0a3bf, 0x8131cc37}, - {0xe0a480, 0x8131cc38}, - {0xe0a481, 0x8131cc39}, - {0xe0a482, 0x8131cd30}, - {0xe0a483, 0x8131cd31}, - {0xe0a484, 0x8131cd32}, - {0xe0a485, 0x8131cd33}, - {0xe0a486, 0x8131cd34}, - {0xe0a487, 0x8131cd35}, - {0xe0a488, 0x8131cd36}, - {0xe0a489, 0x8131cd37}, - {0xe0a48a, 0x8131cd38}, - {0xe0a48b, 0x8131cd39}, - {0xe0a48c, 0x8131ce30}, - {0xe0a48d, 0x8131ce31}, - {0xe0a48e, 0x8131ce32}, - {0xe0a48f, 0x8131ce33}, - {0xe0a490, 0x8131ce34}, - {0xe0a491, 0x8131ce35}, - {0xe0a492, 0x8131ce36}, - {0xe0a493, 0x8131ce37}, - {0xe0a494, 0x8131ce38}, - {0xe0a495, 0x8131ce39}, - {0xe0a496, 0x8131cf30}, - {0xe0a497, 0x8131cf31}, - {0xe0a498, 0x8131cf32}, - {0xe0a499, 0x8131cf33}, - {0xe0a49a, 0x8131cf34}, - {0xe0a49b, 0x8131cf35}, - {0xe0a49c, 0x8131cf36}, - {0xe0a49d, 0x8131cf37}, - {0xe0a49e, 0x8131cf38}, - {0xe0a49f, 0x8131cf39}, - {0xe0a4a0, 0x8131d030}, - {0xe0a4a1, 0x8131d031}, - {0xe0a4a2, 0x8131d032}, - {0xe0a4a3, 0x8131d033}, - {0xe0a4a4, 0x8131d034}, - {0xe0a4a5, 0x8131d035}, - {0xe0a4a6, 0x8131d036}, - {0xe0a4a7, 0x8131d037}, - {0xe0a4a8, 0x8131d038}, - {0xe0a4a9, 0x8131d039}, - {0xe0a4aa, 0x8131d130}, - {0xe0a4ab, 0x8131d131}, - {0xe0a4ac, 0x8131d132}, - {0xe0a4ad, 0x8131d133}, - {0xe0a4ae, 0x8131d134}, - {0xe0a4af, 0x8131d135}, - {0xe0a4b0, 0x8131d136}, - {0xe0a4b1, 0x8131d137}, - {0xe0a4b2, 0x8131d138}, - {0xe0a4b3, 0x8131d139}, - {0xe0a4b4, 0x8131d230}, - {0xe0a4b5, 0x8131d231}, - {0xe0a4b6, 0x8131d232}, - {0xe0a4b7, 0x8131d233}, - {0xe0a4b8, 0x8131d234}, - {0xe0a4b9, 0x8131d235}, - {0xe0a4ba, 0x8131d236}, - {0xe0a4bb, 0x8131d237}, - {0xe0a4bc, 0x8131d238}, - {0xe0a4bd, 0x8131d239}, - {0xe0a4be, 0x8131d330}, - {0xe0a4bf, 0x8131d331}, - {0xe0a580, 0x8131d332}, - {0xe0a581, 0x8131d333}, - {0xe0a582, 0x8131d334}, - {0xe0a583, 0x8131d335}, - {0xe0a584, 0x8131d336}, - {0xe0a585, 0x8131d337}, - {0xe0a586, 0x8131d338}, - {0xe0a587, 0x8131d339}, - {0xe0a588, 0x8131d430}, - {0xe0a589, 0x8131d431}, - {0xe0a58a, 0x8131d432}, - {0xe0a58b, 0x8131d433}, - {0xe0a58c, 0x8131d434}, - {0xe0a58d, 0x8131d435}, - {0xe0a58e, 0x8131d436}, - {0xe0a58f, 0x8131d437}, - {0xe0a590, 0x8131d438}, - {0xe0a591, 0x8131d439}, - {0xe0a592, 0x8131d530}, - {0xe0a593, 0x8131d531}, - {0xe0a594, 0x8131d532}, - {0xe0a595, 0x8131d533}, - {0xe0a596, 0x8131d534}, - {0xe0a597, 0x8131d535}, - {0xe0a598, 0x8131d536}, - {0xe0a599, 0x8131d537}, - {0xe0a59a, 0x8131d538}, - {0xe0a59b, 0x8131d539}, - {0xe0a59c, 0x8131d630}, - {0xe0a59d, 0x8131d631}, - {0xe0a59e, 0x8131d632}, - {0xe0a59f, 0x8131d633}, - {0xe0a5a0, 0x8131d634}, - {0xe0a5a1, 0x8131d635}, - {0xe0a5a2, 0x8131d636}, - {0xe0a5a3, 0x8131d637}, - {0xe0a5a4, 0x8131d638}, - {0xe0a5a5, 0x8131d639}, - {0xe0a5a6, 0x8131d730}, - {0xe0a5a7, 0x8131d731}, - {0xe0a5a8, 0x8131d732}, - {0xe0a5a9, 0x8131d733}, - {0xe0a5aa, 0x8131d734}, - {0xe0a5ab, 0x8131d735}, - {0xe0a5ac, 0x8131d736}, - {0xe0a5ad, 0x8131d737}, - {0xe0a5ae, 0x8131d738}, - {0xe0a5af, 0x8131d739}, - {0xe0a5b0, 0x8131d830}, - {0xe0a5b1, 0x8131d831}, - {0xe0a5b2, 0x8131d832}, - {0xe0a5b3, 0x8131d833}, - {0xe0a5b4, 0x8131d834}, - {0xe0a5b5, 0x8131d835}, - {0xe0a5b6, 0x8131d836}, - {0xe0a5b7, 0x8131d837}, - {0xe0a5b8, 0x8131d838}, - {0xe0a5b9, 0x8131d839}, - {0xe0a5ba, 0x8131d930}, - {0xe0a5bb, 0x8131d931}, - {0xe0a5bc, 0x8131d932}, - {0xe0a5bd, 0x8131d933}, - {0xe0a5be, 0x8131d934}, - {0xe0a5bf, 0x8131d935}, - {0xe0a680, 0x8131d936}, - {0xe0a681, 0x8131d937}, - {0xe0a682, 0x8131d938}, - {0xe0a683, 0x8131d939}, - {0xe0a684, 0x8131da30}, - {0xe0a685, 0x8131da31}, - {0xe0a686, 0x8131da32}, - {0xe0a687, 0x8131da33}, - {0xe0a688, 0x8131da34}, - {0xe0a689, 0x8131da35}, - {0xe0a68a, 0x8131da36}, - {0xe0a68b, 0x8131da37}, - {0xe0a68c, 0x8131da38}, - {0xe0a68d, 0x8131da39}, - {0xe0a68e, 0x8131db30}, - {0xe0a68f, 0x8131db31}, - {0xe0a690, 0x8131db32}, - {0xe0a691, 0x8131db33}, - {0xe0a692, 0x8131db34}, - {0xe0a693, 0x8131db35}, - {0xe0a694, 0x8131db36}, - {0xe0a695, 0x8131db37}, - {0xe0a696, 0x8131db38}, - {0xe0a697, 0x8131db39}, - {0xe0a698, 0x8131dc30}, - {0xe0a699, 0x8131dc31}, - {0xe0a69a, 0x8131dc32}, - {0xe0a69b, 0x8131dc33}, - {0xe0a69c, 0x8131dc34}, - {0xe0a69d, 0x8131dc35}, - {0xe0a69e, 0x8131dc36}, - {0xe0a69f, 0x8131dc37}, - {0xe0a6a0, 0x8131dc38}, - {0xe0a6a1, 0x8131dc39}, - {0xe0a6a2, 0x8131dd30}, - {0xe0a6a3, 0x8131dd31}, - {0xe0a6a4, 0x8131dd32}, - {0xe0a6a5, 0x8131dd33}, - {0xe0a6a6, 0x8131dd34}, - {0xe0a6a7, 0x8131dd35}, - {0xe0a6a8, 0x8131dd36}, - {0xe0a6a9, 0x8131dd37}, - {0xe0a6aa, 0x8131dd38}, - {0xe0a6ab, 0x8131dd39}, - {0xe0a6ac, 0x8131de30}, - {0xe0a6ad, 0x8131de31}, - {0xe0a6ae, 0x8131de32}, - {0xe0a6af, 0x8131de33}, - {0xe0a6b0, 0x8131de34}, - {0xe0a6b1, 0x8131de35}, - {0xe0a6b2, 0x8131de36}, - {0xe0a6b3, 0x8131de37}, - {0xe0a6b4, 0x8131de38}, - {0xe0a6b5, 0x8131de39}, - {0xe0a6b6, 0x8131df30}, - {0xe0a6b7, 0x8131df31}, - {0xe0a6b8, 0x8131df32}, - {0xe0a6b9, 0x8131df33}, - {0xe0a6ba, 0x8131df34}, - {0xe0a6bb, 0x8131df35}, - {0xe0a6bc, 0x8131df36}, - {0xe0a6bd, 0x8131df37}, - {0xe0a6be, 0x8131df38}, - {0xe0a6bf, 0x8131df39}, - {0xe0a780, 0x8131e030}, - {0xe0a781, 0x8131e031}, - {0xe0a782, 0x8131e032}, - {0xe0a783, 0x8131e033}, - {0xe0a784, 0x8131e034}, - {0xe0a785, 0x8131e035}, - {0xe0a786, 0x8131e036}, - {0xe0a787, 0x8131e037}, - {0xe0a788, 0x8131e038}, - {0xe0a789, 0x8131e039}, - {0xe0a78a, 0x8131e130}, - {0xe0a78b, 0x8131e131}, - {0xe0a78c, 0x8131e132}, - {0xe0a78d, 0x8131e133}, - {0xe0a78e, 0x8131e134}, - {0xe0a78f, 0x8131e135}, - {0xe0a790, 0x8131e136}, - {0xe0a791, 0x8131e137}, - {0xe0a792, 0x8131e138}, - {0xe0a793, 0x8131e139}, - {0xe0a794, 0x8131e230}, - {0xe0a795, 0x8131e231}, - {0xe0a796, 0x8131e232}, - {0xe0a797, 0x8131e233}, - {0xe0a798, 0x8131e234}, - {0xe0a799, 0x8131e235}, - {0xe0a79a, 0x8131e236}, - {0xe0a79b, 0x8131e237}, - {0xe0a79c, 0x8131e238}, - {0xe0a79d, 0x8131e239}, - {0xe0a79e, 0x8131e330}, - {0xe0a79f, 0x8131e331}, - {0xe0a7a0, 0x8131e332}, - {0xe0a7a1, 0x8131e333}, - {0xe0a7a2, 0x8131e334}, - {0xe0a7a3, 0x8131e335}, - {0xe0a7a4, 0x8131e336}, - {0xe0a7a5, 0x8131e337}, - {0xe0a7a6, 0x8131e338}, - {0xe0a7a7, 0x8131e339}, - {0xe0a7a8, 0x8131e430}, - {0xe0a7a9, 0x8131e431}, - {0xe0a7aa, 0x8131e432}, - {0xe0a7ab, 0x8131e433}, - {0xe0a7ac, 0x8131e434}, - {0xe0a7ad, 0x8131e435}, - {0xe0a7ae, 0x8131e436}, - {0xe0a7af, 0x8131e437}, - {0xe0a7b0, 0x8131e438}, - {0xe0a7b1, 0x8131e439}, - {0xe0a7b2, 0x8131e530}, - {0xe0a7b3, 0x8131e531}, - {0xe0a7b4, 0x8131e532}, - {0xe0a7b5, 0x8131e533}, - {0xe0a7b6, 0x8131e534}, - {0xe0a7b7, 0x8131e535}, - {0xe0a7b8, 0x8131e536}, - {0xe0a7b9, 0x8131e537}, - {0xe0a7ba, 0x8131e538}, - {0xe0a7bb, 0x8131e539}, - {0xe0a7bc, 0x8131e630}, - {0xe0a7bd, 0x8131e631}, - {0xe0a7be, 0x8131e632}, - {0xe0a7bf, 0x8131e633}, - {0xe0a880, 0x8131e634}, - {0xe0a881, 0x8131e635}, - {0xe0a882, 0x8131e636}, - {0xe0a883, 0x8131e637}, - {0xe0a884, 0x8131e638}, - {0xe0a885, 0x8131e639}, - {0xe0a886, 0x8131e730}, - {0xe0a887, 0x8131e731}, - {0xe0a888, 0x8131e732}, - {0xe0a889, 0x8131e733}, - {0xe0a88a, 0x8131e734}, - {0xe0a88b, 0x8131e735}, - {0xe0a88c, 0x8131e736}, - {0xe0a88d, 0x8131e737}, - {0xe0a88e, 0x8131e738}, - {0xe0a88f, 0x8131e739}, - {0xe0a890, 0x8131e830}, - {0xe0a891, 0x8131e831}, - {0xe0a892, 0x8131e832}, - {0xe0a893, 0x8131e833}, - {0xe0a894, 0x8131e834}, - {0xe0a895, 0x8131e835}, - {0xe0a896, 0x8131e836}, - {0xe0a897, 0x8131e837}, - {0xe0a898, 0x8131e838}, - {0xe0a899, 0x8131e839}, - {0xe0a89a, 0x8131e930}, - {0xe0a89b, 0x8131e931}, - {0xe0a89c, 0x8131e932}, - {0xe0a89d, 0x8131e933}, - {0xe0a89e, 0x8131e934}, - {0xe0a89f, 0x8131e935}, - {0xe0a8a0, 0x8131e936}, - {0xe0a8a1, 0x8131e937}, - {0xe0a8a2, 0x8131e938}, - {0xe0a8a3, 0x8131e939}, - {0xe0a8a4, 0x8131ea30}, - {0xe0a8a5, 0x8131ea31}, - {0xe0a8a6, 0x8131ea32}, - {0xe0a8a7, 0x8131ea33}, - {0xe0a8a8, 0x8131ea34}, - {0xe0a8a9, 0x8131ea35}, - {0xe0a8aa, 0x8131ea36}, - {0xe0a8ab, 0x8131ea37}, - {0xe0a8ac, 0x8131ea38}, - {0xe0a8ad, 0x8131ea39}, - {0xe0a8ae, 0x8131eb30}, - {0xe0a8af, 0x8131eb31}, - {0xe0a8b0, 0x8131eb32}, - {0xe0a8b1, 0x8131eb33}, - {0xe0a8b2, 0x8131eb34}, - {0xe0a8b3, 0x8131eb35}, - {0xe0a8b4, 0x8131eb36}, - {0xe0a8b5, 0x8131eb37}, - {0xe0a8b6, 0x8131eb38}, - {0xe0a8b7, 0x8131eb39}, - {0xe0a8b8, 0x8131ec30}, - {0xe0a8b9, 0x8131ec31}, - {0xe0a8ba, 0x8131ec32}, - {0xe0a8bb, 0x8131ec33}, - {0xe0a8bc, 0x8131ec34}, - {0xe0a8bd, 0x8131ec35}, - {0xe0a8be, 0x8131ec36}, - {0xe0a8bf, 0x8131ec37}, - {0xe0a980, 0x8131ec38}, - {0xe0a981, 0x8131ec39}, - {0xe0a982, 0x8131ed30}, - {0xe0a983, 0x8131ed31}, - {0xe0a984, 0x8131ed32}, - {0xe0a985, 0x8131ed33}, - {0xe0a986, 0x8131ed34}, - {0xe0a987, 0x8131ed35}, - {0xe0a988, 0x8131ed36}, - {0xe0a989, 0x8131ed37}, - {0xe0a98a, 0x8131ed38}, - {0xe0a98b, 0x8131ed39}, - {0xe0a98c, 0x8131ee30}, - {0xe0a98d, 0x8131ee31}, - {0xe0a98e, 0x8131ee32}, - {0xe0a98f, 0x8131ee33}, - {0xe0a990, 0x8131ee34}, - {0xe0a991, 0x8131ee35}, - {0xe0a992, 0x8131ee36}, - {0xe0a993, 0x8131ee37}, - {0xe0a994, 0x8131ee38}, - {0xe0a995, 0x8131ee39}, - {0xe0a996, 0x8131ef30}, - {0xe0a997, 0x8131ef31}, - {0xe0a998, 0x8131ef32}, - {0xe0a999, 0x8131ef33}, - {0xe0a99a, 0x8131ef34}, - {0xe0a99b, 0x8131ef35}, - {0xe0a99c, 0x8131ef36}, - {0xe0a99d, 0x8131ef37}, - {0xe0a99e, 0x8131ef38}, - {0xe0a99f, 0x8131ef39}, - {0xe0a9a0, 0x8131f030}, - {0xe0a9a1, 0x8131f031}, - {0xe0a9a2, 0x8131f032}, - {0xe0a9a3, 0x8131f033}, - {0xe0a9a4, 0x8131f034}, - {0xe0a9a5, 0x8131f035}, - {0xe0a9a6, 0x8131f036}, - {0xe0a9a7, 0x8131f037}, - {0xe0a9a8, 0x8131f038}, - {0xe0a9a9, 0x8131f039}, - {0xe0a9aa, 0x8131f130}, - {0xe0a9ab, 0x8131f131}, - {0xe0a9ac, 0x8131f132}, - {0xe0a9ad, 0x8131f133}, - {0xe0a9ae, 0x8131f134}, - {0xe0a9af, 0x8131f135}, - {0xe0a9b0, 0x8131f136}, - {0xe0a9b1, 0x8131f137}, - {0xe0a9b2, 0x8131f138}, - {0xe0a9b3, 0x8131f139}, - {0xe0a9b4, 0x8131f230}, - {0xe0a9b5, 0x8131f231}, - {0xe0a9b6, 0x8131f232}, - {0xe0a9b7, 0x8131f233}, - {0xe0a9b8, 0x8131f234}, - {0xe0a9b9, 0x8131f235}, - {0xe0a9ba, 0x8131f236}, - {0xe0a9bb, 0x8131f237}, - {0xe0a9bc, 0x8131f238}, - {0xe0a9bd, 0x8131f239}, - {0xe0a9be, 0x8131f330}, - {0xe0a9bf, 0x8131f331}, - {0xe0aa80, 0x8131f332}, - {0xe0aa81, 0x8131f333}, - {0xe0aa82, 0x8131f334}, - {0xe0aa83, 0x8131f335}, - {0xe0aa84, 0x8131f336}, - {0xe0aa85, 0x8131f337}, - {0xe0aa86, 0x8131f338}, - {0xe0aa87, 0x8131f339}, - {0xe0aa88, 0x8131f430}, - {0xe0aa89, 0x8131f431}, - {0xe0aa8a, 0x8131f432}, - {0xe0aa8b, 0x8131f433}, - {0xe0aa8c, 0x8131f434}, - {0xe0aa8d, 0x8131f435}, - {0xe0aa8e, 0x8131f436}, - {0xe0aa8f, 0x8131f437}, - {0xe0aa90, 0x8131f438}, - {0xe0aa91, 0x8131f439}, - {0xe0aa92, 0x8131f530}, - {0xe0aa93, 0x8131f531}, - {0xe0aa94, 0x8131f532}, - {0xe0aa95, 0x8131f533}, - {0xe0aa96, 0x8131f534}, - {0xe0aa97, 0x8131f535}, - {0xe0aa98, 0x8131f536}, - {0xe0aa99, 0x8131f537}, - {0xe0aa9a, 0x8131f538}, - {0xe0aa9b, 0x8131f539}, - {0xe0aa9c, 0x8131f630}, - {0xe0aa9d, 0x8131f631}, - {0xe0aa9e, 0x8131f632}, - {0xe0aa9f, 0x8131f633}, - {0xe0aaa0, 0x8131f634}, - {0xe0aaa1, 0x8131f635}, - {0xe0aaa2, 0x8131f636}, - {0xe0aaa3, 0x8131f637}, - {0xe0aaa4, 0x8131f638}, - {0xe0aaa5, 0x8131f639}, - {0xe0aaa6, 0x8131f730}, - {0xe0aaa7, 0x8131f731}, - {0xe0aaa8, 0x8131f732}, - {0xe0aaa9, 0x8131f733}, - {0xe0aaaa, 0x8131f734}, - {0xe0aaab, 0x8131f735}, - {0xe0aaac, 0x8131f736}, - {0xe0aaad, 0x8131f737}, - {0xe0aaae, 0x8131f738}, - {0xe0aaaf, 0x8131f739}, - {0xe0aab0, 0x8131f830}, - {0xe0aab1, 0x8131f831}, - {0xe0aab2, 0x8131f832}, - {0xe0aab3, 0x8131f833}, - {0xe0aab4, 0x8131f834}, - {0xe0aab5, 0x8131f835}, - {0xe0aab6, 0x8131f836}, - {0xe0aab7, 0x8131f837}, - {0xe0aab8, 0x8131f838}, - {0xe0aab9, 0x8131f839}, - {0xe0aaba, 0x8131f930}, - {0xe0aabb, 0x8131f931}, - {0xe0aabc, 0x8131f932}, - {0xe0aabd, 0x8131f933}, - {0xe0aabe, 0x8131f934}, - {0xe0aabf, 0x8131f935}, - {0xe0ab80, 0x8131f936}, - {0xe0ab81, 0x8131f937}, - {0xe0ab82, 0x8131f938}, - {0xe0ab83, 0x8131f939}, - {0xe0ab84, 0x8131fa30}, - {0xe0ab85, 0x8131fa31}, - {0xe0ab86, 0x8131fa32}, - {0xe0ab87, 0x8131fa33}, - {0xe0ab88, 0x8131fa34}, - {0xe0ab89, 0x8131fa35}, - {0xe0ab8a, 0x8131fa36}, - {0xe0ab8b, 0x8131fa37}, - {0xe0ab8c, 0x8131fa38}, - {0xe0ab8d, 0x8131fa39}, - {0xe0ab8e, 0x8131fb30}, - {0xe0ab8f, 0x8131fb31}, - {0xe0ab90, 0x8131fb32}, - {0xe0ab91, 0x8131fb33}, - {0xe0ab92, 0x8131fb34}, - {0xe0ab93, 0x8131fb35}, - {0xe0ab94, 0x8131fb36}, - {0xe0ab95, 0x8131fb37}, - {0xe0ab96, 0x8131fb38}, - {0xe0ab97, 0x8131fb39}, - {0xe0ab98, 0x8131fc30}, - {0xe0ab99, 0x8131fc31}, - {0xe0ab9a, 0x8131fc32}, - {0xe0ab9b, 0x8131fc33}, - {0xe0ab9c, 0x8131fc34}, - {0xe0ab9d, 0x8131fc35}, - {0xe0ab9e, 0x8131fc36}, - {0xe0ab9f, 0x8131fc37}, - {0xe0aba0, 0x8131fc38}, - {0xe0aba1, 0x8131fc39}, - {0xe0aba2, 0x8131fd30}, - {0xe0aba3, 0x8131fd31}, - {0xe0aba4, 0x8131fd32}, - {0xe0aba5, 0x8131fd33}, - {0xe0aba6, 0x8131fd34}, - {0xe0aba7, 0x8131fd35}, - {0xe0aba8, 0x8131fd36}, - {0xe0aba9, 0x8131fd37}, - {0xe0abaa, 0x8131fd38}, - {0xe0abab, 0x8131fd39}, - {0xe0abac, 0x8131fe30}, - {0xe0abad, 0x8131fe31}, - {0xe0abae, 0x8131fe32}, - {0xe0abaf, 0x8131fe33}, - {0xe0abb0, 0x8131fe34}, - {0xe0abb1, 0x8131fe35}, - {0xe0abb2, 0x8131fe36}, - {0xe0abb3, 0x8131fe37}, - {0xe0abb4, 0x8131fe38}, - {0xe0abb5, 0x8131fe39}, - {0xe0abb6, 0x81328130}, - {0xe0abb7, 0x81328131}, - {0xe0abb8, 0x81328132}, - {0xe0abb9, 0x81328133}, - {0xe0abba, 0x81328134}, - {0xe0abbb, 0x81328135}, - {0xe0abbc, 0x81328136}, - {0xe0abbd, 0x81328137}, - {0xe0abbe, 0x81328138}, - {0xe0abbf, 0x81328139}, - {0xe0ac80, 0x81328230}, - {0xe0ac81, 0x81328231}, - {0xe0ac82, 0x81328232}, - {0xe0ac83, 0x81328233}, - {0xe0ac84, 0x81328234}, - {0xe0ac85, 0x81328235}, - {0xe0ac86, 0x81328236}, - {0xe0ac87, 0x81328237}, - {0xe0ac88, 0x81328238}, - {0xe0ac89, 0x81328239}, - {0xe0ac8a, 0x81328330}, - {0xe0ac8b, 0x81328331}, - {0xe0ac8c, 0x81328332}, - {0xe0ac8d, 0x81328333}, - {0xe0ac8e, 0x81328334}, - {0xe0ac8f, 0x81328335}, - {0xe0ac90, 0x81328336}, - {0xe0ac91, 0x81328337}, - {0xe0ac92, 0x81328338}, - {0xe0ac93, 0x81328339}, - {0xe0ac94, 0x81328430}, - {0xe0ac95, 0x81328431}, - {0xe0ac96, 0x81328432}, - {0xe0ac97, 0x81328433}, - {0xe0ac98, 0x81328434}, - {0xe0ac99, 0x81328435}, - {0xe0ac9a, 0x81328436}, - {0xe0ac9b, 0x81328437}, - {0xe0ac9c, 0x81328438}, - {0xe0ac9d, 0x81328439}, - {0xe0ac9e, 0x81328530}, - {0xe0ac9f, 0x81328531}, - {0xe0aca0, 0x81328532}, - {0xe0aca1, 0x81328533}, - {0xe0aca2, 0x81328534}, - {0xe0aca3, 0x81328535}, - {0xe0aca4, 0x81328536}, - {0xe0aca5, 0x81328537}, - {0xe0aca6, 0x81328538}, - {0xe0aca7, 0x81328539}, - {0xe0aca8, 0x81328630}, - {0xe0aca9, 0x81328631}, - {0xe0acaa, 0x81328632}, - {0xe0acab, 0x81328633}, - {0xe0acac, 0x81328634}, - {0xe0acad, 0x81328635}, - {0xe0acae, 0x81328636}, - {0xe0acaf, 0x81328637}, - {0xe0acb0, 0x81328638}, - {0xe0acb1, 0x81328639}, - {0xe0acb2, 0x81328730}, - {0xe0acb3, 0x81328731}, - {0xe0acb4, 0x81328732}, - {0xe0acb5, 0x81328733}, - {0xe0acb6, 0x81328734}, - {0xe0acb7, 0x81328735}, - {0xe0acb8, 0x81328736}, - {0xe0acb9, 0x81328737}, - {0xe0acba, 0x81328738}, - {0xe0acbb, 0x81328739}, - {0xe0acbc, 0x81328830}, - {0xe0acbd, 0x81328831}, - {0xe0acbe, 0x81328832}, - {0xe0acbf, 0x81328833}, - {0xe0ad80, 0x81328834}, - {0xe0ad81, 0x81328835}, - {0xe0ad82, 0x81328836}, - {0xe0ad83, 0x81328837}, - {0xe0ad84, 0x81328838}, - {0xe0ad85, 0x81328839}, - {0xe0ad86, 0x81328930}, - {0xe0ad87, 0x81328931}, - {0xe0ad88, 0x81328932}, - {0xe0ad89, 0x81328933}, - {0xe0ad8a, 0x81328934}, - {0xe0ad8b, 0x81328935}, - {0xe0ad8c, 0x81328936}, - {0xe0ad8d, 0x81328937}, - {0xe0ad8e, 0x81328938}, - {0xe0ad8f, 0x81328939}, - {0xe0ad90, 0x81328a30}, - {0xe0ad91, 0x81328a31}, - {0xe0ad92, 0x81328a32}, - {0xe0ad93, 0x81328a33}, - {0xe0ad94, 0x81328a34}, - {0xe0ad95, 0x81328a35}, - {0xe0ad96, 0x81328a36}, - {0xe0ad97, 0x81328a37}, - {0xe0ad98, 0x81328a38}, - {0xe0ad99, 0x81328a39}, - {0xe0ad9a, 0x81328b30}, - {0xe0ad9b, 0x81328b31}, - {0xe0ad9c, 0x81328b32}, - {0xe0ad9d, 0x81328b33}, - {0xe0ad9e, 0x81328b34}, - {0xe0ad9f, 0x81328b35}, - {0xe0ada0, 0x81328b36}, - {0xe0ada1, 0x81328b37}, - {0xe0ada2, 0x81328b38}, - {0xe0ada3, 0x81328b39}, - {0xe0ada4, 0x81328c30}, - {0xe0ada5, 0x81328c31}, - {0xe0ada6, 0x81328c32}, - {0xe0ada7, 0x81328c33}, - {0xe0ada8, 0x81328c34}, - {0xe0ada9, 0x81328c35}, - {0xe0adaa, 0x81328c36}, - {0xe0adab, 0x81328c37}, - {0xe0adac, 0x81328c38}, - {0xe0adad, 0x81328c39}, - {0xe0adae, 0x81328d30}, - {0xe0adaf, 0x81328d31}, - {0xe0adb0, 0x81328d32}, - {0xe0adb1, 0x81328d33}, - {0xe0adb2, 0x81328d34}, - {0xe0adb3, 0x81328d35}, - {0xe0adb4, 0x81328d36}, - {0xe0adb5, 0x81328d37}, - {0xe0adb6, 0x81328d38}, - {0xe0adb7, 0x81328d39}, - {0xe0adb8, 0x81328e30}, - {0xe0adb9, 0x81328e31}, - {0xe0adba, 0x81328e32}, - {0xe0adbb, 0x81328e33}, - {0xe0adbc, 0x81328e34}, - {0xe0adbd, 0x81328e35}, - {0xe0adbe, 0x81328e36}, - {0xe0adbf, 0x81328e37}, - {0xe0ae80, 0x81328e38}, - {0xe0ae81, 0x81328e39}, - {0xe0ae82, 0x81328f30}, - {0xe0ae83, 0x81328f31}, - {0xe0ae84, 0x81328f32}, - {0xe0ae85, 0x81328f33}, - {0xe0ae86, 0x81328f34}, - {0xe0ae87, 0x81328f35}, - {0xe0ae88, 0x81328f36}, - {0xe0ae89, 0x81328f37}, - {0xe0ae8a, 0x81328f38}, - {0xe0ae8b, 0x81328f39}, - {0xe0ae8c, 0x81329030}, - {0xe0ae8d, 0x81329031}, - {0xe0ae8e, 0x81329032}, - {0xe0ae8f, 0x81329033}, - {0xe0ae90, 0x81329034}, - {0xe0ae91, 0x81329035}, - {0xe0ae92, 0x81329036}, - {0xe0ae93, 0x81329037}, - {0xe0ae94, 0x81329038}, - {0xe0ae95, 0x81329039}, - {0xe0ae96, 0x81329130}, - {0xe0ae97, 0x81329131}, - {0xe0ae98, 0x81329132}, - {0xe0ae99, 0x81329133}, - {0xe0ae9a, 0x81329134}, - {0xe0ae9b, 0x81329135}, - {0xe0ae9c, 0x81329136}, - {0xe0ae9d, 0x81329137}, - {0xe0ae9e, 0x81329138}, - {0xe0ae9f, 0x81329139}, - {0xe0aea0, 0x81329230}, - {0xe0aea1, 0x81329231}, - {0xe0aea2, 0x81329232}, - {0xe0aea3, 0x81329233}, - {0xe0aea4, 0x81329234}, - {0xe0aea5, 0x81329235}, - {0xe0aea6, 0x81329236}, - {0xe0aea7, 0x81329237}, - {0xe0aea8, 0x81329238}, - {0xe0aea9, 0x81329239}, - {0xe0aeaa, 0x81329330}, - {0xe0aeab, 0x81329331}, - {0xe0aeac, 0x81329332}, - {0xe0aead, 0x81329333}, - {0xe0aeae, 0x81329334}, - {0xe0aeaf, 0x81329335}, - {0xe0aeb0, 0x81329336}, - {0xe0aeb1, 0x81329337}, - {0xe0aeb2, 0x81329338}, - {0xe0aeb3, 0x81329339}, - {0xe0aeb4, 0x81329430}, - {0xe0aeb5, 0x81329431}, - {0xe0aeb6, 0x81329432}, - {0xe0aeb7, 0x81329433}, - {0xe0aeb8, 0x81329434}, - {0xe0aeb9, 0x81329435}, - {0xe0aeba, 0x81329436}, - {0xe0aebb, 0x81329437}, - {0xe0aebc, 0x81329438}, - {0xe0aebd, 0x81329439}, - {0xe0aebe, 0x81329530}, - {0xe0aebf, 0x81329531}, - {0xe0af80, 0x81329532}, - {0xe0af81, 0x81329533}, - {0xe0af82, 0x81329534}, - {0xe0af83, 0x81329535}, - {0xe0af84, 0x81329536}, - {0xe0af85, 0x81329537}, - {0xe0af86, 0x81329538}, - {0xe0af87, 0x81329539}, - {0xe0af88, 0x81329630}, - {0xe0af89, 0x81329631}, - {0xe0af8a, 0x81329632}, - {0xe0af8b, 0x81329633}, - {0xe0af8c, 0x81329634}, - {0xe0af8d, 0x81329635}, - {0xe0af8e, 0x81329636}, - {0xe0af8f, 0x81329637}, - {0xe0af90, 0x81329638}, - {0xe0af91, 0x81329639}, - {0xe0af92, 0x81329730}, - {0xe0af93, 0x81329731}, - {0xe0af94, 0x81329732}, - {0xe0af95, 0x81329733}, - {0xe0af96, 0x81329734}, - {0xe0af97, 0x81329735}, - {0xe0af98, 0x81329736}, - {0xe0af99, 0x81329737}, - {0xe0af9a, 0x81329738}, - {0xe0af9b, 0x81329739}, - {0xe0af9c, 0x81329830}, - {0xe0af9d, 0x81329831}, - {0xe0af9e, 0x81329832}, - {0xe0af9f, 0x81329833}, - {0xe0afa0, 0x81329834}, - {0xe0afa1, 0x81329835}, - {0xe0afa2, 0x81329836}, - {0xe0afa3, 0x81329837}, - {0xe0afa4, 0x81329838}, - {0xe0afa5, 0x81329839}, - {0xe0afa6, 0x81329930}, - {0xe0afa7, 0x81329931}, - {0xe0afa8, 0x81329932}, - {0xe0afa9, 0x81329933}, - {0xe0afaa, 0x81329934}, - {0xe0afab, 0x81329935}, - {0xe0afac, 0x81329936}, - {0xe0afad, 0x81329937}, - {0xe0afae, 0x81329938}, - {0xe0afaf, 0x81329939}, - {0xe0afb0, 0x81329a30}, - {0xe0afb1, 0x81329a31}, - {0xe0afb2, 0x81329a32}, - {0xe0afb3, 0x81329a33}, - {0xe0afb4, 0x81329a34}, - {0xe0afb5, 0x81329a35}, - {0xe0afb6, 0x81329a36}, - {0xe0afb7, 0x81329a37}, - {0xe0afb8, 0x81329a38}, - {0xe0afb9, 0x81329a39}, - {0xe0afba, 0x81329b30}, - {0xe0afbb, 0x81329b31}, - {0xe0afbc, 0x81329b32}, - {0xe0afbd, 0x81329b33}, - {0xe0afbe, 0x81329b34}, - {0xe0afbf, 0x81329b35}, - {0xe0b080, 0x81329b36}, - {0xe0b081, 0x81329b37}, - {0xe0b082, 0x81329b38}, - {0xe0b083, 0x81329b39}, - {0xe0b084, 0x81329c30}, - {0xe0b085, 0x81329c31}, - {0xe0b086, 0x81329c32}, - {0xe0b087, 0x81329c33}, - {0xe0b088, 0x81329c34}, - {0xe0b089, 0x81329c35}, - {0xe0b08a, 0x81329c36}, - {0xe0b08b, 0x81329c37}, - {0xe0b08c, 0x81329c38}, - {0xe0b08d, 0x81329c39}, - {0xe0b08e, 0x81329d30}, - {0xe0b08f, 0x81329d31}, - {0xe0b090, 0x81329d32}, - {0xe0b091, 0x81329d33}, - {0xe0b092, 0x81329d34}, - {0xe0b093, 0x81329d35}, - {0xe0b094, 0x81329d36}, - {0xe0b095, 0x81329d37}, - {0xe0b096, 0x81329d38}, - {0xe0b097, 0x81329d39}, - {0xe0b098, 0x81329e30}, - {0xe0b099, 0x81329e31}, - {0xe0b09a, 0x81329e32}, - {0xe0b09b, 0x81329e33}, - {0xe0b09c, 0x81329e34}, - {0xe0b09d, 0x81329e35}, - {0xe0b09e, 0x81329e36}, - {0xe0b09f, 0x81329e37}, - {0xe0b0a0, 0x81329e38}, - {0xe0b0a1, 0x81329e39}, - {0xe0b0a2, 0x81329f30}, - {0xe0b0a3, 0x81329f31}, - {0xe0b0a4, 0x81329f32}, - {0xe0b0a5, 0x81329f33}, - {0xe0b0a6, 0x81329f34}, - {0xe0b0a7, 0x81329f35}, - {0xe0b0a8, 0x81329f36}, - {0xe0b0a9, 0x81329f37}, - {0xe0b0aa, 0x81329f38}, - {0xe0b0ab, 0x81329f39}, - {0xe0b0ac, 0x8132a030}, - {0xe0b0ad, 0x8132a031}, - {0xe0b0ae, 0x8132a032}, - {0xe0b0af, 0x8132a033}, - {0xe0b0b0, 0x8132a034}, - {0xe0b0b1, 0x8132a035}, - {0xe0b0b2, 0x8132a036}, - {0xe0b0b3, 0x8132a037}, - {0xe0b0b4, 0x8132a038}, - {0xe0b0b5, 0x8132a039}, - {0xe0b0b6, 0x8132a130}, - {0xe0b0b7, 0x8132a131}, - {0xe0b0b8, 0x8132a132}, - {0xe0b0b9, 0x8132a133}, - {0xe0b0ba, 0x8132a134}, - {0xe0b0bb, 0x8132a135}, - {0xe0b0bc, 0x8132a136}, - {0xe0b0bd, 0x8132a137}, - {0xe0b0be, 0x8132a138}, - {0xe0b0bf, 0x8132a139}, - {0xe0b180, 0x8132a230}, - {0xe0b181, 0x8132a231}, - {0xe0b182, 0x8132a232}, - {0xe0b183, 0x8132a233}, - {0xe0b184, 0x8132a234}, - {0xe0b185, 0x8132a235}, - {0xe0b186, 0x8132a236}, - {0xe0b187, 0x8132a237}, - {0xe0b188, 0x8132a238}, - {0xe0b189, 0x8132a239}, - {0xe0b18a, 0x8132a330}, - {0xe0b18b, 0x8132a331}, - {0xe0b18c, 0x8132a332}, - {0xe0b18d, 0x8132a333}, - {0xe0b18e, 0x8132a334}, - {0xe0b18f, 0x8132a335}, - {0xe0b190, 0x8132a336}, - {0xe0b191, 0x8132a337}, - {0xe0b192, 0x8132a338}, - {0xe0b193, 0x8132a339}, - {0xe0b194, 0x8132a430}, - {0xe0b195, 0x8132a431}, - {0xe0b196, 0x8132a432}, - {0xe0b197, 0x8132a433}, - {0xe0b198, 0x8132a434}, - {0xe0b199, 0x8132a435}, - {0xe0b19a, 0x8132a436}, - {0xe0b19b, 0x8132a437}, - {0xe0b19c, 0x8132a438}, - {0xe0b19d, 0x8132a439}, - {0xe0b19e, 0x8132a530}, - {0xe0b19f, 0x8132a531}, - {0xe0b1a0, 0x8132a532}, - {0xe0b1a1, 0x8132a533}, - {0xe0b1a2, 0x8132a534}, - {0xe0b1a3, 0x8132a535}, - {0xe0b1a4, 0x8132a536}, - {0xe0b1a5, 0x8132a537}, - {0xe0b1a6, 0x8132a538}, - {0xe0b1a7, 0x8132a539}, - {0xe0b1a8, 0x8132a630}, - {0xe0b1a9, 0x8132a631}, - {0xe0b1aa, 0x8132a632}, - {0xe0b1ab, 0x8132a633}, - {0xe0b1ac, 0x8132a634}, - {0xe0b1ad, 0x8132a635}, - {0xe0b1ae, 0x8132a636}, - {0xe0b1af, 0x8132a637}, - {0xe0b1b0, 0x8132a638}, - {0xe0b1b1, 0x8132a639}, - {0xe0b1b2, 0x8132a730}, - {0xe0b1b3, 0x8132a731}, - {0xe0b1b4, 0x8132a732}, - {0xe0b1b5, 0x8132a733}, - {0xe0b1b6, 0x8132a734}, - {0xe0b1b7, 0x8132a735}, - {0xe0b1b8, 0x8132a736}, - {0xe0b1b9, 0x8132a737}, - {0xe0b1ba, 0x8132a738}, - {0xe0b1bb, 0x8132a739}, - {0xe0b1bc, 0x8132a830}, - {0xe0b1bd, 0x8132a831}, - {0xe0b1be, 0x8132a832}, - {0xe0b1bf, 0x8132a833}, - {0xe0b280, 0x8132a834}, - {0xe0b281, 0x8132a835}, - {0xe0b282, 0x8132a836}, - {0xe0b283, 0x8132a837}, - {0xe0b284, 0x8132a838}, - {0xe0b285, 0x8132a839}, - {0xe0b286, 0x8132a930}, - {0xe0b287, 0x8132a931}, - {0xe0b288, 0x8132a932}, - {0xe0b289, 0x8132a933}, - {0xe0b28a, 0x8132a934}, - {0xe0b28b, 0x8132a935}, - {0xe0b28c, 0x8132a936}, - {0xe0b28d, 0x8132a937}, - {0xe0b28e, 0x8132a938}, - {0xe0b28f, 0x8132a939}, - {0xe0b290, 0x8132aa30}, - {0xe0b291, 0x8132aa31}, - {0xe0b292, 0x8132aa32}, - {0xe0b293, 0x8132aa33}, - {0xe0b294, 0x8132aa34}, - {0xe0b295, 0x8132aa35}, - {0xe0b296, 0x8132aa36}, - {0xe0b297, 0x8132aa37}, - {0xe0b298, 0x8132aa38}, - {0xe0b299, 0x8132aa39}, - {0xe0b29a, 0x8132ab30}, - {0xe0b29b, 0x8132ab31}, - {0xe0b29c, 0x8132ab32}, - {0xe0b29d, 0x8132ab33}, - {0xe0b29e, 0x8132ab34}, - {0xe0b29f, 0x8132ab35}, - {0xe0b2a0, 0x8132ab36}, - {0xe0b2a1, 0x8132ab37}, - {0xe0b2a2, 0x8132ab38}, - {0xe0b2a3, 0x8132ab39}, - {0xe0b2a4, 0x8132ac30}, - {0xe0b2a5, 0x8132ac31}, - {0xe0b2a6, 0x8132ac32}, - {0xe0b2a7, 0x8132ac33}, - {0xe0b2a8, 0x8132ac34}, - {0xe0b2a9, 0x8132ac35}, - {0xe0b2aa, 0x8132ac36}, - {0xe0b2ab, 0x8132ac37}, - {0xe0b2ac, 0x8132ac38}, - {0xe0b2ad, 0x8132ac39}, - {0xe0b2ae, 0x8132ad30}, - {0xe0b2af, 0x8132ad31}, - {0xe0b2b0, 0x8132ad32}, - {0xe0b2b1, 0x8132ad33}, - {0xe0b2b2, 0x8132ad34}, - {0xe0b2b3, 0x8132ad35}, - {0xe0b2b4, 0x8132ad36}, - {0xe0b2b5, 0x8132ad37}, - {0xe0b2b6, 0x8132ad38}, - {0xe0b2b7, 0x8132ad39}, - {0xe0b2b8, 0x8132ae30}, - {0xe0b2b9, 0x8132ae31}, - {0xe0b2ba, 0x8132ae32}, - {0xe0b2bb, 0x8132ae33}, - {0xe0b2bc, 0x8132ae34}, - {0xe0b2bd, 0x8132ae35}, - {0xe0b2be, 0x8132ae36}, - {0xe0b2bf, 0x8132ae37}, - {0xe0b380, 0x8132ae38}, - {0xe0b381, 0x8132ae39}, - {0xe0b382, 0x8132af30}, - {0xe0b383, 0x8132af31}, - {0xe0b384, 0x8132af32}, - {0xe0b385, 0x8132af33}, - {0xe0b386, 0x8132af34}, - {0xe0b387, 0x8132af35}, - {0xe0b388, 0x8132af36}, - {0xe0b389, 0x8132af37}, - {0xe0b38a, 0x8132af38}, - {0xe0b38b, 0x8132af39}, - {0xe0b38c, 0x8132b030}, - {0xe0b38d, 0x8132b031}, - {0xe0b38e, 0x8132b032}, - {0xe0b38f, 0x8132b033}, - {0xe0b390, 0x8132b034}, - {0xe0b391, 0x8132b035}, - {0xe0b392, 0x8132b036}, - {0xe0b393, 0x8132b037}, - {0xe0b394, 0x8132b038}, - {0xe0b395, 0x8132b039}, - {0xe0b396, 0x8132b130}, - {0xe0b397, 0x8132b131}, - {0xe0b398, 0x8132b132}, - {0xe0b399, 0x8132b133}, - {0xe0b39a, 0x8132b134}, - {0xe0b39b, 0x8132b135}, - {0xe0b39c, 0x8132b136}, - {0xe0b39d, 0x8132b137}, - {0xe0b39e, 0x8132b138}, - {0xe0b39f, 0x8132b139}, - {0xe0b3a0, 0x8132b230}, - {0xe0b3a1, 0x8132b231}, - {0xe0b3a2, 0x8132b232}, - {0xe0b3a3, 0x8132b233}, - {0xe0b3a4, 0x8132b234}, - {0xe0b3a5, 0x8132b235}, - {0xe0b3a6, 0x8132b236}, - {0xe0b3a7, 0x8132b237}, - {0xe0b3a8, 0x8132b238}, - {0xe0b3a9, 0x8132b239}, - {0xe0b3aa, 0x8132b330}, - {0xe0b3ab, 0x8132b331}, - {0xe0b3ac, 0x8132b332}, - {0xe0b3ad, 0x8132b333}, - {0xe0b3ae, 0x8132b334}, - {0xe0b3af, 0x8132b335}, - {0xe0b3b0, 0x8132b336}, - {0xe0b3b1, 0x8132b337}, - {0xe0b3b2, 0x8132b338}, - {0xe0b3b3, 0x8132b339}, - {0xe0b3b4, 0x8132b430}, - {0xe0b3b5, 0x8132b431}, - {0xe0b3b6, 0x8132b432}, - {0xe0b3b7, 0x8132b433}, - {0xe0b3b8, 0x8132b434}, - {0xe0b3b9, 0x8132b435}, - {0xe0b3ba, 0x8132b436}, - {0xe0b3bb, 0x8132b437}, - {0xe0b3bc, 0x8132b438}, - {0xe0b3bd, 0x8132b439}, - {0xe0b3be, 0x8132b530}, - {0xe0b3bf, 0x8132b531}, - {0xe0b480, 0x8132b532}, - {0xe0b481, 0x8132b533}, - {0xe0b482, 0x8132b534}, - {0xe0b483, 0x8132b535}, - {0xe0b484, 0x8132b536}, - {0xe0b485, 0x8132b537}, - {0xe0b486, 0x8132b538}, - {0xe0b487, 0x8132b539}, - {0xe0b488, 0x8132b630}, - {0xe0b489, 0x8132b631}, - {0xe0b48a, 0x8132b632}, - {0xe0b48b, 0x8132b633}, - {0xe0b48c, 0x8132b634}, - {0xe0b48d, 0x8132b635}, - {0xe0b48e, 0x8132b636}, - {0xe0b48f, 0x8132b637}, - {0xe0b490, 0x8132b638}, - {0xe0b491, 0x8132b639}, - {0xe0b492, 0x8132b730}, - {0xe0b493, 0x8132b731}, - {0xe0b494, 0x8132b732}, - {0xe0b495, 0x8132b733}, - {0xe0b496, 0x8132b734}, - {0xe0b497, 0x8132b735}, - {0xe0b498, 0x8132b736}, - {0xe0b499, 0x8132b737}, - {0xe0b49a, 0x8132b738}, - {0xe0b49b, 0x8132b739}, - {0xe0b49c, 0x8132b830}, - {0xe0b49d, 0x8132b831}, - {0xe0b49e, 0x8132b832}, - {0xe0b49f, 0x8132b833}, - {0xe0b4a0, 0x8132b834}, - {0xe0b4a1, 0x8132b835}, - {0xe0b4a2, 0x8132b836}, - {0xe0b4a3, 0x8132b837}, - {0xe0b4a4, 0x8132b838}, - {0xe0b4a5, 0x8132b839}, - {0xe0b4a6, 0x8132b930}, - {0xe0b4a7, 0x8132b931}, - {0xe0b4a8, 0x8132b932}, - {0xe0b4a9, 0x8132b933}, - {0xe0b4aa, 0x8132b934}, - {0xe0b4ab, 0x8132b935}, - {0xe0b4ac, 0x8132b936}, - {0xe0b4ad, 0x8132b937}, - {0xe0b4ae, 0x8132b938}, - {0xe0b4af, 0x8132b939}, - {0xe0b4b0, 0x8132ba30}, - {0xe0b4b1, 0x8132ba31}, - {0xe0b4b2, 0x8132ba32}, - {0xe0b4b3, 0x8132ba33}, - {0xe0b4b4, 0x8132ba34}, - {0xe0b4b5, 0x8132ba35}, - {0xe0b4b6, 0x8132ba36}, - {0xe0b4b7, 0x8132ba37}, - {0xe0b4b8, 0x8132ba38}, - {0xe0b4b9, 0x8132ba39}, - {0xe0b4ba, 0x8132bb30}, - {0xe0b4bb, 0x8132bb31}, - {0xe0b4bc, 0x8132bb32}, - {0xe0b4bd, 0x8132bb33}, - {0xe0b4be, 0x8132bb34}, - {0xe0b4bf, 0x8132bb35}, - {0xe0b580, 0x8132bb36}, - {0xe0b581, 0x8132bb37}, - {0xe0b582, 0x8132bb38}, - {0xe0b583, 0x8132bb39}, - {0xe0b584, 0x8132bc30}, - {0xe0b585, 0x8132bc31}, - {0xe0b586, 0x8132bc32}, - {0xe0b587, 0x8132bc33}, - {0xe0b588, 0x8132bc34}, - {0xe0b589, 0x8132bc35}, - {0xe0b58a, 0x8132bc36}, - {0xe0b58b, 0x8132bc37}, - {0xe0b58c, 0x8132bc38}, - {0xe0b58d, 0x8132bc39}, - {0xe0b58e, 0x8132bd30}, - {0xe0b58f, 0x8132bd31}, - {0xe0b590, 0x8132bd32}, - {0xe0b591, 0x8132bd33}, - {0xe0b592, 0x8132bd34}, - {0xe0b593, 0x8132bd35}, - {0xe0b594, 0x8132bd36}, - {0xe0b595, 0x8132bd37}, - {0xe0b596, 0x8132bd38}, - {0xe0b597, 0x8132bd39}, - {0xe0b598, 0x8132be30}, - {0xe0b599, 0x8132be31}, - {0xe0b59a, 0x8132be32}, - {0xe0b59b, 0x8132be33}, - {0xe0b59c, 0x8132be34}, - {0xe0b59d, 0x8132be35}, - {0xe0b59e, 0x8132be36}, - {0xe0b59f, 0x8132be37}, - {0xe0b5a0, 0x8132be38}, - {0xe0b5a1, 0x8132be39}, - {0xe0b5a2, 0x8132bf30}, - {0xe0b5a3, 0x8132bf31}, - {0xe0b5a4, 0x8132bf32}, - {0xe0b5a5, 0x8132bf33}, - {0xe0b5a6, 0x8132bf34}, - {0xe0b5a7, 0x8132bf35}, - {0xe0b5a8, 0x8132bf36}, - {0xe0b5a9, 0x8132bf37}, - {0xe0b5aa, 0x8132bf38}, - {0xe0b5ab, 0x8132bf39}, - {0xe0b5ac, 0x8132c030}, - {0xe0b5ad, 0x8132c031}, - {0xe0b5ae, 0x8132c032}, - {0xe0b5af, 0x8132c033}, - {0xe0b5b0, 0x8132c034}, - {0xe0b5b1, 0x8132c035}, - {0xe0b5b2, 0x8132c036}, - {0xe0b5b3, 0x8132c037}, - {0xe0b5b4, 0x8132c038}, - {0xe0b5b5, 0x8132c039}, - {0xe0b5b6, 0x8132c130}, - {0xe0b5b7, 0x8132c131}, - {0xe0b5b8, 0x8132c132}, - {0xe0b5b9, 0x8132c133}, - {0xe0b5ba, 0x8132c134}, - {0xe0b5bb, 0x8132c135}, - {0xe0b5bc, 0x8132c136}, - {0xe0b5bd, 0x8132c137}, - {0xe0b5be, 0x8132c138}, - {0xe0b5bf, 0x8132c139}, - {0xe0b680, 0x8132c230}, - {0xe0b681, 0x8132c231}, - {0xe0b682, 0x8132c232}, - {0xe0b683, 0x8132c233}, - {0xe0b684, 0x8132c234}, - {0xe0b685, 0x8132c235}, - {0xe0b686, 0x8132c236}, - {0xe0b687, 0x8132c237}, - {0xe0b688, 0x8132c238}, - {0xe0b689, 0x8132c239}, - {0xe0b68a, 0x8132c330}, - {0xe0b68b, 0x8132c331}, - {0xe0b68c, 0x8132c332}, - {0xe0b68d, 0x8132c333}, - {0xe0b68e, 0x8132c334}, - {0xe0b68f, 0x8132c335}, - {0xe0b690, 0x8132c336}, - {0xe0b691, 0x8132c337}, - {0xe0b692, 0x8132c338}, - {0xe0b693, 0x8132c339}, - {0xe0b694, 0x8132c430}, - {0xe0b695, 0x8132c431}, - {0xe0b696, 0x8132c432}, - {0xe0b697, 0x8132c433}, - {0xe0b698, 0x8132c434}, - {0xe0b699, 0x8132c435}, - {0xe0b69a, 0x8132c436}, - {0xe0b69b, 0x8132c437}, - {0xe0b69c, 0x8132c438}, - {0xe0b69d, 0x8132c439}, - {0xe0b69e, 0x8132c530}, - {0xe0b69f, 0x8132c531}, - {0xe0b6a0, 0x8132c532}, - {0xe0b6a1, 0x8132c533}, - {0xe0b6a2, 0x8132c534}, - {0xe0b6a3, 0x8132c535}, - {0xe0b6a4, 0x8132c536}, - {0xe0b6a5, 0x8132c537}, - {0xe0b6a6, 0x8132c538}, - {0xe0b6a7, 0x8132c539}, - {0xe0b6a8, 0x8132c630}, - {0xe0b6a9, 0x8132c631}, - {0xe0b6aa, 0x8132c632}, - {0xe0b6ab, 0x8132c633}, - {0xe0b6ac, 0x8132c634}, - {0xe0b6ad, 0x8132c635}, - {0xe0b6ae, 0x8132c636}, - {0xe0b6af, 0x8132c637}, - {0xe0b6b0, 0x8132c638}, - {0xe0b6b1, 0x8132c639}, - {0xe0b6b2, 0x8132c730}, - {0xe0b6b3, 0x8132c731}, - {0xe0b6b4, 0x8132c732}, - {0xe0b6b5, 0x8132c733}, - {0xe0b6b6, 0x8132c734}, - {0xe0b6b7, 0x8132c735}, - {0xe0b6b8, 0x8132c736}, - {0xe0b6b9, 0x8132c737}, - {0xe0b6ba, 0x8132c738}, - {0xe0b6bb, 0x8132c739}, - {0xe0b6bc, 0x8132c830}, - {0xe0b6bd, 0x8132c831}, - {0xe0b6be, 0x8132c832}, - {0xe0b6bf, 0x8132c833}, - {0xe0b780, 0x8132c834}, - {0xe0b781, 0x8132c835}, - {0xe0b782, 0x8132c836}, - {0xe0b783, 0x8132c837}, - {0xe0b784, 0x8132c838}, - {0xe0b785, 0x8132c839}, - {0xe0b786, 0x8132c930}, - {0xe0b787, 0x8132c931}, - {0xe0b788, 0x8132c932}, - {0xe0b789, 0x8132c933}, - {0xe0b78a, 0x8132c934}, - {0xe0b78b, 0x8132c935}, - {0xe0b78c, 0x8132c936}, - {0xe0b78d, 0x8132c937}, - {0xe0b78e, 0x8132c938}, - {0xe0b78f, 0x8132c939}, - {0xe0b790, 0x8132ca30}, - {0xe0b791, 0x8132ca31}, - {0xe0b792, 0x8132ca32}, - {0xe0b793, 0x8132ca33}, - {0xe0b794, 0x8132ca34}, - {0xe0b795, 0x8132ca35}, - {0xe0b796, 0x8132ca36}, - {0xe0b797, 0x8132ca37}, - {0xe0b798, 0x8132ca38}, - {0xe0b799, 0x8132ca39}, - {0xe0b79a, 0x8132cb30}, - {0xe0b79b, 0x8132cb31}, - {0xe0b79c, 0x8132cb32}, - {0xe0b79d, 0x8132cb33}, - {0xe0b79e, 0x8132cb34}, - {0xe0b79f, 0x8132cb35}, - {0xe0b7a0, 0x8132cb36}, - {0xe0b7a1, 0x8132cb37}, - {0xe0b7a2, 0x8132cb38}, - {0xe0b7a3, 0x8132cb39}, - {0xe0b7a4, 0x8132cc30}, - {0xe0b7a5, 0x8132cc31}, - {0xe0b7a6, 0x8132cc32}, - {0xe0b7a7, 0x8132cc33}, - {0xe0b7a8, 0x8132cc34}, - {0xe0b7a9, 0x8132cc35}, - {0xe0b7aa, 0x8132cc36}, - {0xe0b7ab, 0x8132cc37}, - {0xe0b7ac, 0x8132cc38}, - {0xe0b7ad, 0x8132cc39}, - {0xe0b7ae, 0x8132cd30}, - {0xe0b7af, 0x8132cd31}, - {0xe0b7b0, 0x8132cd32}, - {0xe0b7b1, 0x8132cd33}, - {0xe0b7b2, 0x8132cd34}, - {0xe0b7b3, 0x8132cd35}, - {0xe0b7b4, 0x8132cd36}, - {0xe0b7b5, 0x8132cd37}, - {0xe0b7b6, 0x8132cd38}, - {0xe0b7b7, 0x8132cd39}, - {0xe0b7b8, 0x8132ce30}, - {0xe0b7b9, 0x8132ce31}, - {0xe0b7ba, 0x8132ce32}, - {0xe0b7bb, 0x8132ce33}, - {0xe0b7bc, 0x8132ce34}, - {0xe0b7bd, 0x8132ce35}, - {0xe0b7be, 0x8132ce36}, - {0xe0b7bf, 0x8132ce37}, - {0xe0b880, 0x8132ce38}, - {0xe0b881, 0x8132ce39}, - {0xe0b882, 0x8132cf30}, - {0xe0b883, 0x8132cf31}, - {0xe0b884, 0x8132cf32}, - {0xe0b885, 0x8132cf33}, - {0xe0b886, 0x8132cf34}, - {0xe0b887, 0x8132cf35}, - {0xe0b888, 0x8132cf36}, - {0xe0b889, 0x8132cf37}, - {0xe0b88a, 0x8132cf38}, - {0xe0b88b, 0x8132cf39}, - {0xe0b88c, 0x8132d030}, - {0xe0b88d, 0x8132d031}, - {0xe0b88e, 0x8132d032}, - {0xe0b88f, 0x8132d033}, - {0xe0b890, 0x8132d034}, - {0xe0b891, 0x8132d035}, - {0xe0b892, 0x8132d036}, - {0xe0b893, 0x8132d037}, - {0xe0b894, 0x8132d038}, - {0xe0b895, 0x8132d039}, - {0xe0b896, 0x8132d130}, - {0xe0b897, 0x8132d131}, - {0xe0b898, 0x8132d132}, - {0xe0b899, 0x8132d133}, - {0xe0b89a, 0x8132d134}, - {0xe0b89b, 0x8132d135}, - {0xe0b89c, 0x8132d136}, - {0xe0b89d, 0x8132d137}, - {0xe0b89e, 0x8132d138}, - {0xe0b89f, 0x8132d139}, - {0xe0b8a0, 0x8132d230}, - {0xe0b8a1, 0x8132d231}, - {0xe0b8a2, 0x8132d232}, - {0xe0b8a3, 0x8132d233}, - {0xe0b8a4, 0x8132d234}, - {0xe0b8a5, 0x8132d235}, - {0xe0b8a6, 0x8132d236}, - {0xe0b8a7, 0x8132d237}, - {0xe0b8a8, 0x8132d238}, - {0xe0b8a9, 0x8132d239}, - {0xe0b8aa, 0x8132d330}, - {0xe0b8ab, 0x8132d331}, - {0xe0b8ac, 0x8132d332}, - {0xe0b8ad, 0x8132d333}, - {0xe0b8ae, 0x8132d334}, - {0xe0b8af, 0x8132d335}, - {0xe0b8b0, 0x8132d336}, - {0xe0b8b1, 0x8132d337}, - {0xe0b8b2, 0x8132d338}, - {0xe0b8b3, 0x8132d339}, - {0xe0b8b4, 0x8132d430}, - {0xe0b8b5, 0x8132d431}, - {0xe0b8b6, 0x8132d432}, - {0xe0b8b7, 0x8132d433}, - {0xe0b8b8, 0x8132d434}, - {0xe0b8b9, 0x8132d435}, - {0xe0b8ba, 0x8132d436}, - {0xe0b8bb, 0x8132d437}, - {0xe0b8bc, 0x8132d438}, - {0xe0b8bd, 0x8132d439}, - {0xe0b8be, 0x8132d530}, - {0xe0b8bf, 0x8132d531}, - {0xe0b980, 0x8132d532}, - {0xe0b981, 0x8132d533}, - {0xe0b982, 0x8132d534}, - {0xe0b983, 0x8132d535}, - {0xe0b984, 0x8132d536}, - {0xe0b985, 0x8132d537}, - {0xe0b986, 0x8132d538}, - {0xe0b987, 0x8132d539}, - {0xe0b988, 0x8132d630}, - {0xe0b989, 0x8132d631}, - {0xe0b98a, 0x8132d632}, - {0xe0b98b, 0x8132d633}, - {0xe0b98c, 0x8132d634}, - {0xe0b98d, 0x8132d635}, - {0xe0b98e, 0x8132d636}, - {0xe0b98f, 0x8132d637}, - {0xe0b990, 0x8132d638}, - {0xe0b991, 0x8132d639}, - {0xe0b992, 0x8132d730}, - {0xe0b993, 0x8132d731}, - {0xe0b994, 0x8132d732}, - {0xe0b995, 0x8132d733}, - {0xe0b996, 0x8132d734}, - {0xe0b997, 0x8132d735}, - {0xe0b998, 0x8132d736}, - {0xe0b999, 0x8132d737}, - {0xe0b99a, 0x8132d738}, - {0xe0b99b, 0x8132d739}, - {0xe0b99c, 0x8132d830}, - {0xe0b99d, 0x8132d831}, - {0xe0b99e, 0x8132d832}, - {0xe0b99f, 0x8132d833}, - {0xe0b9a0, 0x8132d834}, - {0xe0b9a1, 0x8132d835}, - {0xe0b9a2, 0x8132d836}, - {0xe0b9a3, 0x8132d837}, - {0xe0b9a4, 0x8132d838}, - {0xe0b9a5, 0x8132d839}, - {0xe0b9a6, 0x8132d930}, - {0xe0b9a7, 0x8132d931}, - {0xe0b9a8, 0x8132d932}, - {0xe0b9a9, 0x8132d933}, - {0xe0b9aa, 0x8132d934}, - {0xe0b9ab, 0x8132d935}, - {0xe0b9ac, 0x8132d936}, - {0xe0b9ad, 0x8132d937}, - {0xe0b9ae, 0x8132d938}, - {0xe0b9af, 0x8132d939}, - {0xe0b9b0, 0x8132da30}, - {0xe0b9b1, 0x8132da31}, - {0xe0b9b2, 0x8132da32}, - {0xe0b9b3, 0x8132da33}, - {0xe0b9b4, 0x8132da34}, - {0xe0b9b5, 0x8132da35}, - {0xe0b9b6, 0x8132da36}, - {0xe0b9b7, 0x8132da37}, - {0xe0b9b8, 0x8132da38}, - {0xe0b9b9, 0x8132da39}, - {0xe0b9ba, 0x8132db30}, - {0xe0b9bb, 0x8132db31}, - {0xe0b9bc, 0x8132db32}, - {0xe0b9bd, 0x8132db33}, - {0xe0b9be, 0x8132db34}, - {0xe0b9bf, 0x8132db35}, - {0xe0ba80, 0x8132db36}, - {0xe0ba81, 0x8132db37}, - {0xe0ba82, 0x8132db38}, - {0xe0ba83, 0x8132db39}, - {0xe0ba84, 0x8132dc30}, - {0xe0ba85, 0x8132dc31}, - {0xe0ba86, 0x8132dc32}, - {0xe0ba87, 0x8132dc33}, - {0xe0ba88, 0x8132dc34}, - {0xe0ba89, 0x8132dc35}, - {0xe0ba8a, 0x8132dc36}, - {0xe0ba8b, 0x8132dc37}, - {0xe0ba8c, 0x8132dc38}, - {0xe0ba8d, 0x8132dc39}, - {0xe0ba8e, 0x8132dd30}, - {0xe0ba8f, 0x8132dd31}, - {0xe0ba90, 0x8132dd32}, - {0xe0ba91, 0x8132dd33}, - {0xe0ba92, 0x8132dd34}, - {0xe0ba93, 0x8132dd35}, - {0xe0ba94, 0x8132dd36}, - {0xe0ba95, 0x8132dd37}, - {0xe0ba96, 0x8132dd38}, - {0xe0ba97, 0x8132dd39}, - {0xe0ba98, 0x8132de30}, - {0xe0ba99, 0x8132de31}, - {0xe0ba9a, 0x8132de32}, - {0xe0ba9b, 0x8132de33}, - {0xe0ba9c, 0x8132de34}, - {0xe0ba9d, 0x8132de35}, - {0xe0ba9e, 0x8132de36}, - {0xe0ba9f, 0x8132de37}, - {0xe0baa0, 0x8132de38}, - {0xe0baa1, 0x8132de39}, - {0xe0baa2, 0x8132df30}, - {0xe0baa3, 0x8132df31}, - {0xe0baa4, 0x8132df32}, - {0xe0baa5, 0x8132df33}, - {0xe0baa6, 0x8132df34}, - {0xe0baa7, 0x8132df35}, - {0xe0baa8, 0x8132df36}, - {0xe0baa9, 0x8132df37}, - {0xe0baaa, 0x8132df38}, - {0xe0baab, 0x8132df39}, - {0xe0baac, 0x8132e030}, - {0xe0baad, 0x8132e031}, - {0xe0baae, 0x8132e032}, - {0xe0baaf, 0x8132e033}, - {0xe0bab0, 0x8132e034}, - {0xe0bab1, 0x8132e035}, - {0xe0bab2, 0x8132e036}, - {0xe0bab3, 0x8132e037}, - {0xe0bab4, 0x8132e038}, - {0xe0bab5, 0x8132e039}, - {0xe0bab6, 0x8132e130}, - {0xe0bab7, 0x8132e131}, - {0xe0bab8, 0x8132e132}, - {0xe0bab9, 0x8132e133}, - {0xe0baba, 0x8132e134}, - {0xe0babb, 0x8132e135}, - {0xe0babc, 0x8132e136}, - {0xe0babd, 0x8132e137}, - {0xe0babe, 0x8132e138}, - {0xe0babf, 0x8132e139}, - {0xe0bb80, 0x8132e230}, - {0xe0bb81, 0x8132e231}, - {0xe0bb82, 0x8132e232}, - {0xe0bb83, 0x8132e233}, - {0xe0bb84, 0x8132e234}, - {0xe0bb85, 0x8132e235}, - {0xe0bb86, 0x8132e236}, - {0xe0bb87, 0x8132e237}, - {0xe0bb88, 0x8132e238}, - {0xe0bb89, 0x8132e239}, - {0xe0bb8a, 0x8132e330}, - {0xe0bb8b, 0x8132e331}, - {0xe0bb8c, 0x8132e332}, - {0xe0bb8d, 0x8132e333}, - {0xe0bb8e, 0x8132e334}, - {0xe0bb8f, 0x8132e335}, - {0xe0bb90, 0x8132e336}, - {0xe0bb91, 0x8132e337}, - {0xe0bb92, 0x8132e338}, - {0xe0bb93, 0x8132e339}, - {0xe0bb94, 0x8132e430}, - {0xe0bb95, 0x8132e431}, - {0xe0bb96, 0x8132e432}, - {0xe0bb97, 0x8132e433}, - {0xe0bb98, 0x8132e434}, - {0xe0bb99, 0x8132e435}, - {0xe0bb9a, 0x8132e436}, - {0xe0bb9b, 0x8132e437}, - {0xe0bb9c, 0x8132e438}, - {0xe0bb9d, 0x8132e439}, - {0xe0bb9e, 0x8132e530}, - {0xe0bb9f, 0x8132e531}, - {0xe0bba0, 0x8132e532}, - {0xe0bba1, 0x8132e533}, - {0xe0bba2, 0x8132e534}, - {0xe0bba3, 0x8132e535}, - {0xe0bba4, 0x8132e536}, - {0xe0bba5, 0x8132e537}, - {0xe0bba6, 0x8132e538}, - {0xe0bba7, 0x8132e539}, - {0xe0bba8, 0x8132e630}, - {0xe0bba9, 0x8132e631}, - {0xe0bbaa, 0x8132e632}, - {0xe0bbab, 0x8132e633}, - {0xe0bbac, 0x8132e634}, - {0xe0bbad, 0x8132e635}, - {0xe0bbae, 0x8132e636}, - {0xe0bbaf, 0x8132e637}, - {0xe0bbb0, 0x8132e638}, - {0xe0bbb1, 0x8132e639}, - {0xe0bbb2, 0x8132e730}, - {0xe0bbb3, 0x8132e731}, - {0xe0bbb4, 0x8132e732}, - {0xe0bbb5, 0x8132e733}, - {0xe0bbb6, 0x8132e734}, - {0xe0bbb7, 0x8132e735}, - {0xe0bbb8, 0x8132e736}, - {0xe0bbb9, 0x8132e737}, - {0xe0bbba, 0x8132e738}, - {0xe0bbbb, 0x8132e739}, - {0xe0bbbc, 0x8132e830}, - {0xe0bbbd, 0x8132e831}, - {0xe0bbbe, 0x8132e832}, - {0xe0bbbf, 0x8132e833}, - {0xe0bc80, 0x8132e834}, - {0xe0bc81, 0x8132e835}, - {0xe0bc82, 0x8132e836}, - {0xe0bc83, 0x8132e837}, - {0xe0bc84, 0x8132e838}, - {0xe0bc85, 0x8132e839}, - {0xe0bc86, 0x8132e930}, - {0xe0bc87, 0x8132e931}, - {0xe0bc88, 0x8132e932}, - {0xe0bc89, 0x8132e933}, - {0xe0bc8a, 0x8132e934}, - {0xe0bc8b, 0x8132e935}, - {0xe0bc8c, 0x8132e936}, - {0xe0bc8d, 0x8132e937}, - {0xe0bc8e, 0x8132e938}, - {0xe0bc8f, 0x8132e939}, - {0xe0bc90, 0x8132ea30}, - {0xe0bc91, 0x8132ea31}, - {0xe0bc92, 0x8132ea32}, - {0xe0bc93, 0x8132ea33}, - {0xe0bc94, 0x8132ea34}, - {0xe0bc95, 0x8132ea35}, - {0xe0bc96, 0x8132ea36}, - {0xe0bc97, 0x8132ea37}, - {0xe0bc98, 0x8132ea38}, - {0xe0bc99, 0x8132ea39}, - {0xe0bc9a, 0x8132eb30}, - {0xe0bc9b, 0x8132eb31}, - {0xe0bc9c, 0x8132eb32}, - {0xe0bc9d, 0x8132eb33}, - {0xe0bc9e, 0x8132eb34}, - {0xe0bc9f, 0x8132eb35}, - {0xe0bca0, 0x8132eb36}, - {0xe0bca1, 0x8132eb37}, - {0xe0bca2, 0x8132eb38}, - {0xe0bca3, 0x8132eb39}, - {0xe0bca4, 0x8132ec30}, - {0xe0bca5, 0x8132ec31}, - {0xe0bca6, 0x8132ec32}, - {0xe0bca7, 0x8132ec33}, - {0xe0bca8, 0x8132ec34}, - {0xe0bca9, 0x8132ec35}, - {0xe0bcaa, 0x8132ec36}, - {0xe0bcab, 0x8132ec37}, - {0xe0bcac, 0x8132ec38}, - {0xe0bcad, 0x8132ec39}, - {0xe0bcae, 0x8132ed30}, - {0xe0bcaf, 0x8132ed31}, - {0xe0bcb0, 0x8132ed32}, - {0xe0bcb1, 0x8132ed33}, - {0xe0bcb2, 0x8132ed34}, - {0xe0bcb3, 0x8132ed35}, - {0xe0bcb4, 0x8132ed36}, - {0xe0bcb5, 0x8132ed37}, - {0xe0bcb6, 0x8132ed38}, - {0xe0bcb7, 0x8132ed39}, - {0xe0bcb8, 0x8132ee30}, - {0xe0bcb9, 0x8132ee31}, - {0xe0bcba, 0x8132ee32}, - {0xe0bcbb, 0x8132ee33}, - {0xe0bcbc, 0x8132ee34}, - {0xe0bcbd, 0x8132ee35}, - {0xe0bcbe, 0x8132ee36}, - {0xe0bcbf, 0x8132ee37}, - {0xe0bd80, 0x8132ee38}, - {0xe0bd81, 0x8132ee39}, - {0xe0bd82, 0x8132ef30}, - {0xe0bd83, 0x8132ef31}, - {0xe0bd84, 0x8132ef32}, - {0xe0bd85, 0x8132ef33}, - {0xe0bd86, 0x8132ef34}, - {0xe0bd87, 0x8132ef35}, - {0xe0bd88, 0x8132ef36}, - {0xe0bd89, 0x8132ef37}, - {0xe0bd8a, 0x8132ef38}, - {0xe0bd8b, 0x8132ef39}, - {0xe0bd8c, 0x8132f030}, - {0xe0bd8d, 0x8132f031}, - {0xe0bd8e, 0x8132f032}, - {0xe0bd8f, 0x8132f033}, - {0xe0bd90, 0x8132f034}, - {0xe0bd91, 0x8132f035}, - {0xe0bd92, 0x8132f036}, - {0xe0bd93, 0x8132f037}, - {0xe0bd94, 0x8132f038}, - {0xe0bd95, 0x8132f039}, - {0xe0bd96, 0x8132f130}, - {0xe0bd97, 0x8132f131}, - {0xe0bd98, 0x8132f132}, - {0xe0bd99, 0x8132f133}, - {0xe0bd9a, 0x8132f134}, - {0xe0bd9b, 0x8132f135}, - {0xe0bd9c, 0x8132f136}, - {0xe0bd9d, 0x8132f137}, - {0xe0bd9e, 0x8132f138}, - {0xe0bd9f, 0x8132f139}, - {0xe0bda0, 0x8132f230}, - {0xe0bda1, 0x8132f231}, - {0xe0bda2, 0x8132f232}, - {0xe0bda3, 0x8132f233}, - {0xe0bda4, 0x8132f234}, - {0xe0bda5, 0x8132f235}, - {0xe0bda6, 0x8132f236}, - {0xe0bda7, 0x8132f237}, - {0xe0bda8, 0x8132f238}, - {0xe0bda9, 0x8132f239}, - {0xe0bdaa, 0x8132f330}, - {0xe0bdab, 0x8132f331}, - {0xe0bdac, 0x8132f332}, - {0xe0bdad, 0x8132f333}, - {0xe0bdae, 0x8132f334}, - {0xe0bdaf, 0x8132f335}, - {0xe0bdb0, 0x8132f336}, - {0xe0bdb1, 0x8132f337}, - {0xe0bdb2, 0x8132f338}, - {0xe0bdb3, 0x8132f339}, - {0xe0bdb4, 0x8132f430}, - {0xe0bdb5, 0x8132f431}, - {0xe0bdb6, 0x8132f432}, - {0xe0bdb7, 0x8132f433}, - {0xe0bdb8, 0x8132f434}, - {0xe0bdb9, 0x8132f435}, - {0xe0bdba, 0x8132f436}, - {0xe0bdbb, 0x8132f437}, - {0xe0bdbc, 0x8132f438}, - {0xe0bdbd, 0x8132f439}, - {0xe0bdbe, 0x8132f530}, - {0xe0bdbf, 0x8132f531}, - {0xe0be80, 0x8132f532}, - {0xe0be81, 0x8132f533}, - {0xe0be82, 0x8132f534}, - {0xe0be83, 0x8132f535}, - {0xe0be84, 0x8132f536}, - {0xe0be85, 0x8132f537}, - {0xe0be86, 0x8132f538}, - {0xe0be87, 0x8132f539}, - {0xe0be88, 0x8132f630}, - {0xe0be89, 0x8132f631}, - {0xe0be8a, 0x8132f632}, - {0xe0be8b, 0x8132f633}, - {0xe0be8c, 0x8132f634}, - {0xe0be8d, 0x8132f635}, - {0xe0be8e, 0x8132f636}, - {0xe0be8f, 0x8132f637}, - {0xe0be90, 0x8132f638}, - {0xe0be91, 0x8132f639}, - {0xe0be92, 0x8132f730}, - {0xe0be93, 0x8132f731}, - {0xe0be94, 0x8132f732}, - {0xe0be95, 0x8132f733}, - {0xe0be96, 0x8132f734}, - {0xe0be97, 0x8132f735}, - {0xe0be98, 0x8132f736}, - {0xe0be99, 0x8132f737}, - {0xe0be9a, 0x8132f738}, - {0xe0be9b, 0x8132f739}, - {0xe0be9c, 0x8132f830}, - {0xe0be9d, 0x8132f831}, - {0xe0be9e, 0x8132f832}, - {0xe0be9f, 0x8132f833}, - {0xe0bea0, 0x8132f834}, - {0xe0bea1, 0x8132f835}, - {0xe0bea2, 0x8132f836}, - {0xe0bea3, 0x8132f837}, - {0xe0bea4, 0x8132f838}, - {0xe0bea5, 0x8132f839}, - {0xe0bea6, 0x8132f930}, - {0xe0bea7, 0x8132f931}, - {0xe0bea8, 0x8132f932}, - {0xe0bea9, 0x8132f933}, - {0xe0beaa, 0x8132f934}, - {0xe0beab, 0x8132f935}, - {0xe0beac, 0x8132f936}, - {0xe0bead, 0x8132f937}, - {0xe0beae, 0x8132f938}, - {0xe0beaf, 0x8132f939}, - {0xe0beb0, 0x8132fa30}, - {0xe0beb1, 0x8132fa31}, - {0xe0beb2, 0x8132fa32}, - {0xe0beb3, 0x8132fa33}, - {0xe0beb4, 0x8132fa34}, - {0xe0beb5, 0x8132fa35}, - {0xe0beb6, 0x8132fa36}, - {0xe0beb7, 0x8132fa37}, - {0xe0beb8, 0x8132fa38}, - {0xe0beb9, 0x8132fa39}, - {0xe0beba, 0x8132fb30}, - {0xe0bebb, 0x8132fb31}, - {0xe0bebc, 0x8132fb32}, - {0xe0bebd, 0x8132fb33}, - {0xe0bebe, 0x8132fb34}, - {0xe0bebf, 0x8132fb35}, - {0xe0bf80, 0x8132fb36}, - {0xe0bf81, 0x8132fb37}, - {0xe0bf82, 0x8132fb38}, - {0xe0bf83, 0x8132fb39}, - {0xe0bf84, 0x8132fc30}, - {0xe0bf85, 0x8132fc31}, - {0xe0bf86, 0x8132fc32}, - {0xe0bf87, 0x8132fc33}, - {0xe0bf88, 0x8132fc34}, - {0xe0bf89, 0x8132fc35}, - {0xe0bf8a, 0x8132fc36}, - {0xe0bf8b, 0x8132fc37}, - {0xe0bf8c, 0x8132fc38}, - {0xe0bf8d, 0x8132fc39}, - {0xe0bf8e, 0x8132fd30}, - {0xe0bf8f, 0x8132fd31}, - {0xe0bf90, 0x8132fd32}, - {0xe0bf91, 0x8132fd33}, - {0xe0bf92, 0x8132fd34}, - {0xe0bf93, 0x8132fd35}, - {0xe0bf94, 0x8132fd36}, - {0xe0bf95, 0x8132fd37}, - {0xe0bf96, 0x8132fd38}, - {0xe0bf97, 0x8132fd39}, - {0xe0bf98, 0x8132fe30}, - {0xe0bf99, 0x8132fe31}, - {0xe0bf9a, 0x8132fe32}, - {0xe0bf9b, 0x8132fe33}, - {0xe0bf9c, 0x8132fe34}, - {0xe0bf9d, 0x8132fe35}, - {0xe0bf9e, 0x8132fe36}, - {0xe0bf9f, 0x8132fe37}, - {0xe0bfa0, 0x8132fe38}, - {0xe0bfa1, 0x8132fe39}, - {0xe0bfa2, 0x81338130}, - {0xe0bfa3, 0x81338131}, - {0xe0bfa4, 0x81338132}, - {0xe0bfa5, 0x81338133}, - {0xe0bfa6, 0x81338134}, - {0xe0bfa7, 0x81338135}, - {0xe0bfa8, 0x81338136}, - {0xe0bfa9, 0x81338137}, - {0xe0bfaa, 0x81338138}, - {0xe0bfab, 0x81338139}, - {0xe0bfac, 0x81338230}, - {0xe0bfad, 0x81338231}, - {0xe0bfae, 0x81338232}, - {0xe0bfaf, 0x81338233}, - {0xe0bfb0, 0x81338234}, - {0xe0bfb1, 0x81338235}, - {0xe0bfb2, 0x81338236}, - {0xe0bfb3, 0x81338237}, - {0xe0bfb4, 0x81338238}, - {0xe0bfb5, 0x81338239}, - {0xe0bfb6, 0x81338330}, - {0xe0bfb7, 0x81338331}, - {0xe0bfb8, 0x81338332}, - {0xe0bfb9, 0x81338333}, - {0xe0bfba, 0x81338334}, - {0xe0bfbb, 0x81338335}, - {0xe0bfbc, 0x81338336}, - {0xe0bfbd, 0x81338337}, - {0xe0bfbe, 0x81338338}, - {0xe0bfbf, 0x81338339}, - {0xe18080, 0x81338430}, - {0xe18081, 0x81338431}, - {0xe18082, 0x81338432}, - {0xe18083, 0x81338433}, - {0xe18084, 0x81338434}, - {0xe18085, 0x81338435}, - {0xe18086, 0x81338436}, - {0xe18087, 0x81338437}, - {0xe18088, 0x81338438}, - {0xe18089, 0x81338439}, - {0xe1808a, 0x81338530}, - {0xe1808b, 0x81338531}, - {0xe1808c, 0x81338532}, - {0xe1808d, 0x81338533}, - {0xe1808e, 0x81338534}, - {0xe1808f, 0x81338535}, - {0xe18090, 0x81338536}, - {0xe18091, 0x81338537}, - {0xe18092, 0x81338538}, - {0xe18093, 0x81338539}, - {0xe18094, 0x81338630}, - {0xe18095, 0x81338631}, - {0xe18096, 0x81338632}, - {0xe18097, 0x81338633}, - {0xe18098, 0x81338634}, - {0xe18099, 0x81338635}, - {0xe1809a, 0x81338636}, - {0xe1809b, 0x81338637}, - {0xe1809c, 0x81338638}, - {0xe1809d, 0x81338639}, - {0xe1809e, 0x81338730}, - {0xe1809f, 0x81338731}, - {0xe180a0, 0x81338732}, - {0xe180a1, 0x81338733}, - {0xe180a2, 0x81338734}, - {0xe180a3, 0x81338735}, - {0xe180a4, 0x81338736}, - {0xe180a5, 0x81338737}, - {0xe180a6, 0x81338738}, - {0xe180a7, 0x81338739}, - {0xe180a8, 0x81338830}, - {0xe180a9, 0x81338831}, - {0xe180aa, 0x81338832}, - {0xe180ab, 0x81338833}, - {0xe180ac, 0x81338834}, - {0xe180ad, 0x81338835}, - {0xe180ae, 0x81338836}, - {0xe180af, 0x81338837}, - {0xe180b0, 0x81338838}, - {0xe180b1, 0x81338839}, - {0xe180b2, 0x81338930}, - {0xe180b3, 0x81338931}, - {0xe180b4, 0x81338932}, - {0xe180b5, 0x81338933}, - {0xe180b6, 0x81338934}, - {0xe180b7, 0x81338935}, - {0xe180b8, 0x81338936}, - {0xe180b9, 0x81338937}, - {0xe180ba, 0x81338938}, - {0xe180bb, 0x81338939}, - {0xe180bc, 0x81338a30}, - {0xe180bd, 0x81338a31}, - {0xe180be, 0x81338a32}, - {0xe180bf, 0x81338a33}, - {0xe18180, 0x81338a34}, - {0xe18181, 0x81338a35}, - {0xe18182, 0x81338a36}, - {0xe18183, 0x81338a37}, - {0xe18184, 0x81338a38}, - {0xe18185, 0x81338a39}, - {0xe18186, 0x81338b30}, - {0xe18187, 0x81338b31}, - {0xe18188, 0x81338b32}, - {0xe18189, 0x81338b33}, - {0xe1818a, 0x81338b34}, - {0xe1818b, 0x81338b35}, - {0xe1818c, 0x81338b36}, - {0xe1818d, 0x81338b37}, - {0xe1818e, 0x81338b38}, - {0xe1818f, 0x81338b39}, - {0xe18190, 0x81338c30}, - {0xe18191, 0x81338c31}, - {0xe18192, 0x81338c32}, - {0xe18193, 0x81338c33}, - {0xe18194, 0x81338c34}, - {0xe18195, 0x81338c35}, - {0xe18196, 0x81338c36}, - {0xe18197, 0x81338c37}, - {0xe18198, 0x81338c38}, - {0xe18199, 0x81338c39}, - {0xe1819a, 0x81338d30}, - {0xe1819b, 0x81338d31}, - {0xe1819c, 0x81338d32}, - {0xe1819d, 0x81338d33}, - {0xe1819e, 0x81338d34}, - {0xe1819f, 0x81338d35}, - {0xe181a0, 0x81338d36}, - {0xe181a1, 0x81338d37}, - {0xe181a2, 0x81338d38}, - {0xe181a3, 0x81338d39}, - {0xe181a4, 0x81338e30}, - {0xe181a5, 0x81338e31}, - {0xe181a6, 0x81338e32}, - {0xe181a7, 0x81338e33}, - {0xe181a8, 0x81338e34}, - {0xe181a9, 0x81338e35}, - {0xe181aa, 0x81338e36}, - {0xe181ab, 0x81338e37}, - {0xe181ac, 0x81338e38}, - {0xe181ad, 0x81338e39}, - {0xe181ae, 0x81338f30}, - {0xe181af, 0x81338f31}, - {0xe181b0, 0x81338f32}, - {0xe181b1, 0x81338f33}, - {0xe181b2, 0x81338f34}, - {0xe181b3, 0x81338f35}, - {0xe181b4, 0x81338f36}, - {0xe181b5, 0x81338f37}, - {0xe181b6, 0x81338f38}, - {0xe181b7, 0x81338f39}, - {0xe181b8, 0x81339030}, - {0xe181b9, 0x81339031}, - {0xe181ba, 0x81339032}, - {0xe181bb, 0x81339033}, - {0xe181bc, 0x81339034}, - {0xe181bd, 0x81339035}, - {0xe181be, 0x81339036}, - {0xe181bf, 0x81339037}, - {0xe18280, 0x81339038}, - {0xe18281, 0x81339039}, - {0xe18282, 0x81339130}, - {0xe18283, 0x81339131}, - {0xe18284, 0x81339132}, - {0xe18285, 0x81339133}, - {0xe18286, 0x81339134}, - {0xe18287, 0x81339135}, - {0xe18288, 0x81339136}, - {0xe18289, 0x81339137}, - {0xe1828a, 0x81339138}, - {0xe1828b, 0x81339139}, - {0xe1828c, 0x81339230}, - {0xe1828d, 0x81339231}, - {0xe1828e, 0x81339232}, - {0xe1828f, 0x81339233}, - {0xe18290, 0x81339234}, - {0xe18291, 0x81339235}, - {0xe18292, 0x81339236}, - {0xe18293, 0x81339237}, - {0xe18294, 0x81339238}, - {0xe18295, 0x81339239}, - {0xe18296, 0x81339330}, - {0xe18297, 0x81339331}, - {0xe18298, 0x81339332}, - {0xe18299, 0x81339333}, - {0xe1829a, 0x81339334}, - {0xe1829b, 0x81339335}, - {0xe1829c, 0x81339336}, - {0xe1829d, 0x81339337}, - {0xe1829e, 0x81339338}, - {0xe1829f, 0x81339339}, - {0xe182a0, 0x81339430}, - {0xe182a1, 0x81339431}, - {0xe182a2, 0x81339432}, - {0xe182a3, 0x81339433}, - {0xe182a4, 0x81339434}, - {0xe182a5, 0x81339435}, - {0xe182a6, 0x81339436}, - {0xe182a7, 0x81339437}, - {0xe182a8, 0x81339438}, - {0xe182a9, 0x81339439}, - {0xe182aa, 0x81339530}, - {0xe182ab, 0x81339531}, - {0xe182ac, 0x81339532}, - {0xe182ad, 0x81339533}, - {0xe182ae, 0x81339534}, - {0xe182af, 0x81339535}, - {0xe182b0, 0x81339536}, - {0xe182b1, 0x81339537}, - {0xe182b2, 0x81339538}, - {0xe182b3, 0x81339539}, - {0xe182b4, 0x81339630}, - {0xe182b5, 0x81339631}, - {0xe182b6, 0x81339632}, - {0xe182b7, 0x81339633}, - {0xe182b8, 0x81339634}, - {0xe182b9, 0x81339635}, - {0xe182ba, 0x81339636}, - {0xe182bb, 0x81339637}, - {0xe182bc, 0x81339638}, - {0xe182bd, 0x81339639}, - {0xe182be, 0x81339730}, - {0xe182bf, 0x81339731}, - {0xe18380, 0x81339732}, - {0xe18381, 0x81339733}, - {0xe18382, 0x81339734}, - {0xe18383, 0x81339735}, - {0xe18384, 0x81339736}, - {0xe18385, 0x81339737}, - {0xe18386, 0x81339738}, - {0xe18387, 0x81339739}, - {0xe18388, 0x81339830}, - {0xe18389, 0x81339831}, - {0xe1838a, 0x81339832}, - {0xe1838b, 0x81339833}, - {0xe1838c, 0x81339834}, - {0xe1838d, 0x81339835}, - {0xe1838e, 0x81339836}, - {0xe1838f, 0x81339837}, - {0xe18390, 0x81339838}, - {0xe18391, 0x81339839}, - {0xe18392, 0x81339930}, - {0xe18393, 0x81339931}, - {0xe18394, 0x81339932}, - {0xe18395, 0x81339933}, - {0xe18396, 0x81339934}, - {0xe18397, 0x81339935}, - {0xe18398, 0x81339936}, - {0xe18399, 0x81339937}, - {0xe1839a, 0x81339938}, - {0xe1839b, 0x81339939}, - {0xe1839c, 0x81339a30}, - {0xe1839d, 0x81339a31}, - {0xe1839e, 0x81339a32}, - {0xe1839f, 0x81339a33}, - {0xe183a0, 0x81339a34}, - {0xe183a1, 0x81339a35}, - {0xe183a2, 0x81339a36}, - {0xe183a3, 0x81339a37}, - {0xe183a4, 0x81339a38}, - {0xe183a5, 0x81339a39}, - {0xe183a6, 0x81339b30}, - {0xe183a7, 0x81339b31}, - {0xe183a8, 0x81339b32}, - {0xe183a9, 0x81339b33}, - {0xe183aa, 0x81339b34}, - {0xe183ab, 0x81339b35}, - {0xe183ac, 0x81339b36}, - {0xe183ad, 0x81339b37}, - {0xe183ae, 0x81339b38}, - {0xe183af, 0x81339b39}, - {0xe183b0, 0x81339c30}, - {0xe183b1, 0x81339c31}, - {0xe183b2, 0x81339c32}, - {0xe183b3, 0x81339c33}, - {0xe183b4, 0x81339c34}, - {0xe183b5, 0x81339c35}, - {0xe183b6, 0x81339c36}, - {0xe183b7, 0x81339c37}, - {0xe183b8, 0x81339c38}, - {0xe183b9, 0x81339c39}, - {0xe183ba, 0x81339d30}, - {0xe183bb, 0x81339d31}, - {0xe183bc, 0x81339d32}, - {0xe183bd, 0x81339d33}, - {0xe183be, 0x81339d34}, - {0xe183bf, 0x81339d35}, - {0xe18480, 0x81339d36}, - {0xe18481, 0x81339d37}, - {0xe18482, 0x81339d38}, - {0xe18483, 0x81339d39}, - {0xe18484, 0x81339e30}, - {0xe18485, 0x81339e31}, - {0xe18486, 0x81339e32}, - {0xe18487, 0x81339e33}, - {0xe18488, 0x81339e34}, - {0xe18489, 0x81339e35}, - {0xe1848a, 0x81339e36}, - {0xe1848b, 0x81339e37}, - {0xe1848c, 0x81339e38}, - {0xe1848d, 0x81339e39}, - {0xe1848e, 0x81339f30}, - {0xe1848f, 0x81339f31}, - {0xe18490, 0x81339f32}, - {0xe18491, 0x81339f33}, - {0xe18492, 0x81339f34}, - {0xe18493, 0x81339f35}, - {0xe18494, 0x81339f36}, - {0xe18495, 0x81339f37}, - {0xe18496, 0x81339f38}, - {0xe18497, 0x81339f39}, - {0xe18498, 0x8133a030}, - {0xe18499, 0x8133a031}, - {0xe1849a, 0x8133a032}, - {0xe1849b, 0x8133a033}, - {0xe1849c, 0x8133a034}, - {0xe1849d, 0x8133a035}, - {0xe1849e, 0x8133a036}, - {0xe1849f, 0x8133a037}, - {0xe184a0, 0x8133a038}, - {0xe184a1, 0x8133a039}, - {0xe184a2, 0x8133a130}, - {0xe184a3, 0x8133a131}, - {0xe184a4, 0x8133a132}, - {0xe184a5, 0x8133a133}, - {0xe184a6, 0x8133a134}, - {0xe184a7, 0x8133a135}, - {0xe184a8, 0x8133a136}, - {0xe184a9, 0x8133a137}, - {0xe184aa, 0x8133a138}, - {0xe184ab, 0x8133a139}, - {0xe184ac, 0x8133a230}, - {0xe184ad, 0x8133a231}, - {0xe184ae, 0x8133a232}, - {0xe184af, 0x8133a233}, - {0xe184b0, 0x8133a234}, - {0xe184b1, 0x8133a235}, - {0xe184b2, 0x8133a236}, - {0xe184b3, 0x8133a237}, - {0xe184b4, 0x8133a238}, - {0xe184b5, 0x8133a239}, - {0xe184b6, 0x8133a330}, - {0xe184b7, 0x8133a331}, - {0xe184b8, 0x8133a332}, - {0xe184b9, 0x8133a333}, - {0xe184ba, 0x8133a334}, - {0xe184bb, 0x8133a335}, - {0xe184bc, 0x8133a336}, - {0xe184bd, 0x8133a337}, - {0xe184be, 0x8133a338}, - {0xe184bf, 0x8133a339}, - {0xe18580, 0x8133a430}, - {0xe18581, 0x8133a431}, - {0xe18582, 0x8133a432}, - {0xe18583, 0x8133a433}, - {0xe18584, 0x8133a434}, - {0xe18585, 0x8133a435}, - {0xe18586, 0x8133a436}, - {0xe18587, 0x8133a437}, - {0xe18588, 0x8133a438}, - {0xe18589, 0x8133a439}, - {0xe1858a, 0x8133a530}, - {0xe1858b, 0x8133a531}, - {0xe1858c, 0x8133a532}, - {0xe1858d, 0x8133a533}, - {0xe1858e, 0x8133a534}, - {0xe1858f, 0x8133a535}, - {0xe18590, 0x8133a536}, - {0xe18591, 0x8133a537}, - {0xe18592, 0x8133a538}, - {0xe18593, 0x8133a539}, - {0xe18594, 0x8133a630}, - {0xe18595, 0x8133a631}, - {0xe18596, 0x8133a632}, - {0xe18597, 0x8133a633}, - {0xe18598, 0x8133a634}, - {0xe18599, 0x8133a635}, - {0xe1859a, 0x8133a636}, - {0xe1859b, 0x8133a637}, - {0xe1859c, 0x8133a638}, - {0xe1859d, 0x8133a639}, - {0xe1859e, 0x8133a730}, - {0xe1859f, 0x8133a731}, - {0xe185a0, 0x8133a732}, - {0xe185a1, 0x8133a733}, - {0xe185a2, 0x8133a734}, - {0xe185a3, 0x8133a735}, - {0xe185a4, 0x8133a736}, - {0xe185a5, 0x8133a737}, - {0xe185a6, 0x8133a738}, - {0xe185a7, 0x8133a739}, - {0xe185a8, 0x8133a830}, - {0xe185a9, 0x8133a831}, - {0xe185aa, 0x8133a832}, - {0xe185ab, 0x8133a833}, - {0xe185ac, 0x8133a834}, - {0xe185ad, 0x8133a835}, - {0xe185ae, 0x8133a836}, - {0xe185af, 0x8133a837}, - {0xe185b0, 0x8133a838}, - {0xe185b1, 0x8133a839}, - {0xe185b2, 0x8133a930}, - {0xe185b3, 0x8133a931}, - {0xe185b4, 0x8133a932}, - {0xe185b5, 0x8133a933}, - {0xe185b6, 0x8133a934}, - {0xe185b7, 0x8133a935}, - {0xe185b8, 0x8133a936}, - {0xe185b9, 0x8133a937}, - {0xe185ba, 0x8133a938}, - {0xe185bb, 0x8133a939}, - {0xe185bc, 0x8133aa30}, - {0xe185bd, 0x8133aa31}, - {0xe185be, 0x8133aa32}, - {0xe185bf, 0x8133aa33}, - {0xe18680, 0x8133aa34}, - {0xe18681, 0x8133aa35}, - {0xe18682, 0x8133aa36}, - {0xe18683, 0x8133aa37}, - {0xe18684, 0x8133aa38}, - {0xe18685, 0x8133aa39}, - {0xe18686, 0x8133ab30}, - {0xe18687, 0x8133ab31}, - {0xe18688, 0x8133ab32}, - {0xe18689, 0x8133ab33}, - {0xe1868a, 0x8133ab34}, - {0xe1868b, 0x8133ab35}, - {0xe1868c, 0x8133ab36}, - {0xe1868d, 0x8133ab37}, - {0xe1868e, 0x8133ab38}, - {0xe1868f, 0x8133ab39}, - {0xe18690, 0x8133ac30}, - {0xe18691, 0x8133ac31}, - {0xe18692, 0x8133ac32}, - {0xe18693, 0x8133ac33}, - {0xe18694, 0x8133ac34}, - {0xe18695, 0x8133ac35}, - {0xe18696, 0x8133ac36}, - {0xe18697, 0x8133ac37}, - {0xe18698, 0x8133ac38}, - {0xe18699, 0x8133ac39}, - {0xe1869a, 0x8133ad30}, - {0xe1869b, 0x8133ad31}, - {0xe1869c, 0x8133ad32}, - {0xe1869d, 0x8133ad33}, - {0xe1869e, 0x8133ad34}, - {0xe1869f, 0x8133ad35}, - {0xe186a0, 0x8133ad36}, - {0xe186a1, 0x8133ad37}, - {0xe186a2, 0x8133ad38}, - {0xe186a3, 0x8133ad39}, - {0xe186a4, 0x8133ae30}, - {0xe186a5, 0x8133ae31}, - {0xe186a6, 0x8133ae32}, - {0xe186a7, 0x8133ae33}, - {0xe186a8, 0x8133ae34}, - {0xe186a9, 0x8133ae35}, - {0xe186aa, 0x8133ae36}, - {0xe186ab, 0x8133ae37}, - {0xe186ac, 0x8133ae38}, - {0xe186ad, 0x8133ae39}, - {0xe186ae, 0x8133af30}, - {0xe186af, 0x8133af31}, - {0xe186b0, 0x8133af32}, - {0xe186b1, 0x8133af33}, - {0xe186b2, 0x8133af34}, - {0xe186b3, 0x8133af35}, - {0xe186b4, 0x8133af36}, - {0xe186b5, 0x8133af37}, - {0xe186b6, 0x8133af38}, - {0xe186b7, 0x8133af39}, - {0xe186b8, 0x8133b030}, - {0xe186b9, 0x8133b031}, - {0xe186ba, 0x8133b032}, - {0xe186bb, 0x8133b033}, - {0xe186bc, 0x8133b034}, - {0xe186bd, 0x8133b035}, - {0xe186be, 0x8133b036}, - {0xe186bf, 0x8133b037}, - {0xe18780, 0x8133b038}, - {0xe18781, 0x8133b039}, - {0xe18782, 0x8133b130}, - {0xe18783, 0x8133b131}, - {0xe18784, 0x8133b132}, - {0xe18785, 0x8133b133}, - {0xe18786, 0x8133b134}, - {0xe18787, 0x8133b135}, - {0xe18788, 0x8133b136}, - {0xe18789, 0x8133b137}, - {0xe1878a, 0x8133b138}, - {0xe1878b, 0x8133b139}, - {0xe1878c, 0x8133b230}, - {0xe1878d, 0x8133b231}, - {0xe1878e, 0x8133b232}, - {0xe1878f, 0x8133b233}, - {0xe18790, 0x8133b234}, - {0xe18791, 0x8133b235}, - {0xe18792, 0x8133b236}, - {0xe18793, 0x8133b237}, - {0xe18794, 0x8133b238}, - {0xe18795, 0x8133b239}, - {0xe18796, 0x8133b330}, - {0xe18797, 0x8133b331}, - {0xe18798, 0x8133b332}, - {0xe18799, 0x8133b333}, - {0xe1879a, 0x8133b334}, - {0xe1879b, 0x8133b335}, - {0xe1879c, 0x8133b336}, - {0xe1879d, 0x8133b337}, - {0xe1879e, 0x8133b338}, - {0xe1879f, 0x8133b339}, - {0xe187a0, 0x8133b430}, - {0xe187a1, 0x8133b431}, - {0xe187a2, 0x8133b432}, - {0xe187a3, 0x8133b433}, - {0xe187a4, 0x8133b434}, - {0xe187a5, 0x8133b435}, - {0xe187a6, 0x8133b436}, - {0xe187a7, 0x8133b437}, - {0xe187a8, 0x8133b438}, - {0xe187a9, 0x8133b439}, - {0xe187aa, 0x8133b530}, - {0xe187ab, 0x8133b531}, - {0xe187ac, 0x8133b532}, - {0xe187ad, 0x8133b533}, - {0xe187ae, 0x8133b534}, - {0xe187af, 0x8133b535}, - {0xe187b0, 0x8133b536}, - {0xe187b1, 0x8133b537}, - {0xe187b2, 0x8133b538}, - {0xe187b3, 0x8133b539}, - {0xe187b4, 0x8133b630}, - {0xe187b5, 0x8133b631}, - {0xe187b6, 0x8133b632}, - {0xe187b7, 0x8133b633}, - {0xe187b8, 0x8133b634}, - {0xe187b9, 0x8133b635}, - {0xe187ba, 0x8133b636}, - {0xe187bb, 0x8133b637}, - {0xe187bc, 0x8133b638}, - {0xe187bd, 0x8133b639}, - {0xe187be, 0x8133b730}, - {0xe187bf, 0x8133b731}, - {0xe18880, 0x8133b732}, - {0xe18881, 0x8133b733}, - {0xe18882, 0x8133b734}, - {0xe18883, 0x8133b735}, - {0xe18884, 0x8133b736}, - {0xe18885, 0x8133b737}, - {0xe18886, 0x8133b738}, - {0xe18887, 0x8133b739}, - {0xe18888, 0x8133b830}, - {0xe18889, 0x8133b831}, - {0xe1888a, 0x8133b832}, - {0xe1888b, 0x8133b833}, - {0xe1888c, 0x8133b834}, - {0xe1888d, 0x8133b835}, - {0xe1888e, 0x8133b836}, - {0xe1888f, 0x8133b837}, - {0xe18890, 0x8133b838}, - {0xe18891, 0x8133b839}, - {0xe18892, 0x8133b930}, - {0xe18893, 0x8133b931}, - {0xe18894, 0x8133b932}, - {0xe18895, 0x8133b933}, - {0xe18896, 0x8133b934}, - {0xe18897, 0x8133b935}, - {0xe18898, 0x8133b936}, - {0xe18899, 0x8133b937}, - {0xe1889a, 0x8133b938}, - {0xe1889b, 0x8133b939}, - {0xe1889c, 0x8133ba30}, - {0xe1889d, 0x8133ba31}, - {0xe1889e, 0x8133ba32}, - {0xe1889f, 0x8133ba33}, - {0xe188a0, 0x8133ba34}, - {0xe188a1, 0x8133ba35}, - {0xe188a2, 0x8133ba36}, - {0xe188a3, 0x8133ba37}, - {0xe188a4, 0x8133ba38}, - {0xe188a5, 0x8133ba39}, - {0xe188a6, 0x8133bb30}, - {0xe188a7, 0x8133bb31}, - {0xe188a8, 0x8133bb32}, - {0xe188a9, 0x8133bb33}, - {0xe188aa, 0x8133bb34}, - {0xe188ab, 0x8133bb35}, - {0xe188ac, 0x8133bb36}, - {0xe188ad, 0x8133bb37}, - {0xe188ae, 0x8133bb38}, - {0xe188af, 0x8133bb39}, - {0xe188b0, 0x8133bc30}, - {0xe188b1, 0x8133bc31}, - {0xe188b2, 0x8133bc32}, - {0xe188b3, 0x8133bc33}, - {0xe188b4, 0x8133bc34}, - {0xe188b5, 0x8133bc35}, - {0xe188b6, 0x8133bc36}, - {0xe188b7, 0x8133bc37}, - {0xe188b8, 0x8133bc38}, - {0xe188b9, 0x8133bc39}, - {0xe188ba, 0x8133bd30}, - {0xe188bb, 0x8133bd31}, - {0xe188bc, 0x8133bd32}, - {0xe188bd, 0x8133bd33}, - {0xe188be, 0x8133bd34}, - {0xe188bf, 0x8133bd35}, - {0xe18980, 0x8133bd36}, - {0xe18981, 0x8133bd37}, - {0xe18982, 0x8133bd38}, - {0xe18983, 0x8133bd39}, - {0xe18984, 0x8133be30}, - {0xe18985, 0x8133be31}, - {0xe18986, 0x8133be32}, - {0xe18987, 0x8133be33}, - {0xe18988, 0x8133be34}, - {0xe18989, 0x8133be35}, - {0xe1898a, 0x8133be36}, - {0xe1898b, 0x8133be37}, - {0xe1898c, 0x8133be38}, - {0xe1898d, 0x8133be39}, - {0xe1898e, 0x8133bf30}, - {0xe1898f, 0x8133bf31}, - {0xe18990, 0x8133bf32}, - {0xe18991, 0x8133bf33}, - {0xe18992, 0x8133bf34}, - {0xe18993, 0x8133bf35}, - {0xe18994, 0x8133bf36}, - {0xe18995, 0x8133bf37}, - {0xe18996, 0x8133bf38}, - {0xe18997, 0x8133bf39}, - {0xe18998, 0x8133c030}, - {0xe18999, 0x8133c031}, - {0xe1899a, 0x8133c032}, - {0xe1899b, 0x8133c033}, - {0xe1899c, 0x8133c034}, - {0xe1899d, 0x8133c035}, - {0xe1899e, 0x8133c036}, - {0xe1899f, 0x8133c037}, - {0xe189a0, 0x8133c038}, - {0xe189a1, 0x8133c039}, - {0xe189a2, 0x8133c130}, - {0xe189a3, 0x8133c131}, - {0xe189a4, 0x8133c132}, - {0xe189a5, 0x8133c133}, - {0xe189a6, 0x8133c134}, - {0xe189a7, 0x8133c135}, - {0xe189a8, 0x8133c136}, - {0xe189a9, 0x8133c137}, - {0xe189aa, 0x8133c138}, - {0xe189ab, 0x8133c139}, - {0xe189ac, 0x8133c230}, - {0xe189ad, 0x8133c231}, - {0xe189ae, 0x8133c232}, - {0xe189af, 0x8133c233}, - {0xe189b0, 0x8133c234}, - {0xe189b1, 0x8133c235}, - {0xe189b2, 0x8133c236}, - {0xe189b3, 0x8133c237}, - {0xe189b4, 0x8133c238}, - {0xe189b5, 0x8133c239}, - {0xe189b6, 0x8133c330}, - {0xe189b7, 0x8133c331}, - {0xe189b8, 0x8133c332}, - {0xe189b9, 0x8133c333}, - {0xe189ba, 0x8133c334}, - {0xe189bb, 0x8133c335}, - {0xe189bc, 0x8133c336}, - {0xe189bd, 0x8133c337}, - {0xe189be, 0x8133c338}, - {0xe189bf, 0x8133c339}, - {0xe18a80, 0x8133c430}, - {0xe18a81, 0x8133c431}, - {0xe18a82, 0x8133c432}, - {0xe18a83, 0x8133c433}, - {0xe18a84, 0x8133c434}, - {0xe18a85, 0x8133c435}, - {0xe18a86, 0x8133c436}, - {0xe18a87, 0x8133c437}, - {0xe18a88, 0x8133c438}, - {0xe18a89, 0x8133c439}, - {0xe18a8a, 0x8133c530}, - {0xe18a8b, 0x8133c531}, - {0xe18a8c, 0x8133c532}, - {0xe18a8d, 0x8133c533}, - {0xe18a8e, 0x8133c534}, - {0xe18a8f, 0x8133c535}, - {0xe18a90, 0x8133c536}, - {0xe18a91, 0x8133c537}, - {0xe18a92, 0x8133c538}, - {0xe18a93, 0x8133c539}, - {0xe18a94, 0x8133c630}, - {0xe18a95, 0x8133c631}, - {0xe18a96, 0x8133c632}, - {0xe18a97, 0x8133c633}, - {0xe18a98, 0x8133c634}, - {0xe18a99, 0x8133c635}, - {0xe18a9a, 0x8133c636}, - {0xe18a9b, 0x8133c637}, - {0xe18a9c, 0x8133c638}, - {0xe18a9d, 0x8133c639}, - {0xe18a9e, 0x8133c730}, - {0xe18a9f, 0x8133c731}, - {0xe18aa0, 0x8133c732}, - {0xe18aa1, 0x8133c733}, - {0xe18aa2, 0x8133c734}, - {0xe18aa3, 0x8133c735}, - {0xe18aa4, 0x8133c736}, - {0xe18aa5, 0x8133c737}, - {0xe18aa6, 0x8133c738}, - {0xe18aa7, 0x8133c739}, - {0xe18aa8, 0x8133c830}, - {0xe18aa9, 0x8133c831}, - {0xe18aaa, 0x8133c832}, - {0xe18aab, 0x8133c833}, - {0xe18aac, 0x8133c834}, - {0xe18aad, 0x8133c835}, - {0xe18aae, 0x8133c836}, - {0xe18aaf, 0x8133c837}, - {0xe18ab0, 0x8133c838}, - {0xe18ab1, 0x8133c839}, - {0xe18ab2, 0x8133c930}, - {0xe18ab3, 0x8133c931}, - {0xe18ab4, 0x8133c932}, - {0xe18ab5, 0x8133c933}, - {0xe18ab6, 0x8133c934}, - {0xe18ab7, 0x8133c935}, - {0xe18ab8, 0x8133c936}, - {0xe18ab9, 0x8133c937}, - {0xe18aba, 0x8133c938}, - {0xe18abb, 0x8133c939}, - {0xe18abc, 0x8133ca30}, - {0xe18abd, 0x8133ca31}, - {0xe18abe, 0x8133ca32}, - {0xe18abf, 0x8133ca33}, - {0xe18b80, 0x8133ca34}, - {0xe18b81, 0x8133ca35}, - {0xe18b82, 0x8133ca36}, - {0xe18b83, 0x8133ca37}, - {0xe18b84, 0x8133ca38}, - {0xe18b85, 0x8133ca39}, - {0xe18b86, 0x8133cb30}, - {0xe18b87, 0x8133cb31}, - {0xe18b88, 0x8133cb32}, - {0xe18b89, 0x8133cb33}, - {0xe18b8a, 0x8133cb34}, - {0xe18b8b, 0x8133cb35}, - {0xe18b8c, 0x8133cb36}, - {0xe18b8d, 0x8133cb37}, - {0xe18b8e, 0x8133cb38}, - {0xe18b8f, 0x8133cb39}, - {0xe18b90, 0x8133cc30}, - {0xe18b91, 0x8133cc31}, - {0xe18b92, 0x8133cc32}, - {0xe18b93, 0x8133cc33}, - {0xe18b94, 0x8133cc34}, - {0xe18b95, 0x8133cc35}, - {0xe18b96, 0x8133cc36}, - {0xe18b97, 0x8133cc37}, - {0xe18b98, 0x8133cc38}, - {0xe18b99, 0x8133cc39}, - {0xe18b9a, 0x8133cd30}, - {0xe18b9b, 0x8133cd31}, - {0xe18b9c, 0x8133cd32}, - {0xe18b9d, 0x8133cd33}, - {0xe18b9e, 0x8133cd34}, - {0xe18b9f, 0x8133cd35}, - {0xe18ba0, 0x8133cd36}, - {0xe18ba1, 0x8133cd37}, - {0xe18ba2, 0x8133cd38}, - {0xe18ba3, 0x8133cd39}, - {0xe18ba4, 0x8133ce30}, - {0xe18ba5, 0x8133ce31}, - {0xe18ba6, 0x8133ce32}, - {0xe18ba7, 0x8133ce33}, - {0xe18ba8, 0x8133ce34}, - {0xe18ba9, 0x8133ce35}, - {0xe18baa, 0x8133ce36}, - {0xe18bab, 0x8133ce37}, - {0xe18bac, 0x8133ce38}, - {0xe18bad, 0x8133ce39}, - {0xe18bae, 0x8133cf30}, - {0xe18baf, 0x8133cf31}, - {0xe18bb0, 0x8133cf32}, - {0xe18bb1, 0x8133cf33}, - {0xe18bb2, 0x8133cf34}, - {0xe18bb3, 0x8133cf35}, - {0xe18bb4, 0x8133cf36}, - {0xe18bb5, 0x8133cf37}, - {0xe18bb6, 0x8133cf38}, - {0xe18bb7, 0x8133cf39}, - {0xe18bb8, 0x8133d030}, - {0xe18bb9, 0x8133d031}, - {0xe18bba, 0x8133d032}, - {0xe18bbb, 0x8133d033}, - {0xe18bbc, 0x8133d034}, - {0xe18bbd, 0x8133d035}, - {0xe18bbe, 0x8133d036}, - {0xe18bbf, 0x8133d037}, - {0xe18c80, 0x8133d038}, - {0xe18c81, 0x8133d039}, - {0xe18c82, 0x8133d130}, - {0xe18c83, 0x8133d131}, - {0xe18c84, 0x8133d132}, - {0xe18c85, 0x8133d133}, - {0xe18c86, 0x8133d134}, - {0xe18c87, 0x8133d135}, - {0xe18c88, 0x8133d136}, - {0xe18c89, 0x8133d137}, - {0xe18c8a, 0x8133d138}, - {0xe18c8b, 0x8133d139}, - {0xe18c8c, 0x8133d230}, - {0xe18c8d, 0x8133d231}, - {0xe18c8e, 0x8133d232}, - {0xe18c8f, 0x8133d233}, - {0xe18c90, 0x8133d234}, - {0xe18c91, 0x8133d235}, - {0xe18c92, 0x8133d236}, - {0xe18c93, 0x8133d237}, - {0xe18c94, 0x8133d238}, - {0xe18c95, 0x8133d239}, - {0xe18c96, 0x8133d330}, - {0xe18c97, 0x8133d331}, - {0xe18c98, 0x8133d332}, - {0xe18c99, 0x8133d333}, - {0xe18c9a, 0x8133d334}, - {0xe18c9b, 0x8133d335}, - {0xe18c9c, 0x8133d336}, - {0xe18c9d, 0x8133d337}, - {0xe18c9e, 0x8133d338}, - {0xe18c9f, 0x8133d339}, - {0xe18ca0, 0x8133d430}, - {0xe18ca1, 0x8133d431}, - {0xe18ca2, 0x8133d432}, - {0xe18ca3, 0x8133d433}, - {0xe18ca4, 0x8133d434}, - {0xe18ca5, 0x8133d435}, - {0xe18ca6, 0x8133d436}, - {0xe18ca7, 0x8133d437}, - {0xe18ca8, 0x8133d438}, - {0xe18ca9, 0x8133d439}, - {0xe18caa, 0x8133d530}, - {0xe18cab, 0x8133d531}, - {0xe18cac, 0x8133d532}, - {0xe18cad, 0x8133d533}, - {0xe18cae, 0x8133d534}, - {0xe18caf, 0x8133d535}, - {0xe18cb0, 0x8133d536}, - {0xe18cb1, 0x8133d537}, - {0xe18cb2, 0x8133d538}, - {0xe18cb3, 0x8133d539}, - {0xe18cb4, 0x8133d630}, - {0xe18cb5, 0x8133d631}, - {0xe18cb6, 0x8133d632}, - {0xe18cb7, 0x8133d633}, - {0xe18cb8, 0x8133d634}, - {0xe18cb9, 0x8133d635}, - {0xe18cba, 0x8133d636}, - {0xe18cbb, 0x8133d637}, - {0xe18cbc, 0x8133d638}, - {0xe18cbd, 0x8133d639}, - {0xe18cbe, 0x8133d730}, - {0xe18cbf, 0x8133d731}, - {0xe18d80, 0x8133d732}, - {0xe18d81, 0x8133d733}, - {0xe18d82, 0x8133d734}, - {0xe18d83, 0x8133d735}, - {0xe18d84, 0x8133d736}, - {0xe18d85, 0x8133d737}, - {0xe18d86, 0x8133d738}, - {0xe18d87, 0x8133d739}, - {0xe18d88, 0x8133d830}, - {0xe18d89, 0x8133d831}, - {0xe18d8a, 0x8133d832}, - {0xe18d8b, 0x8133d833}, - {0xe18d8c, 0x8133d834}, - {0xe18d8d, 0x8133d835}, - {0xe18d8e, 0x8133d836}, - {0xe18d8f, 0x8133d837}, - {0xe18d90, 0x8133d838}, - {0xe18d91, 0x8133d839}, - {0xe18d92, 0x8133d930}, - {0xe18d93, 0x8133d931}, - {0xe18d94, 0x8133d932}, - {0xe18d95, 0x8133d933}, - {0xe18d96, 0x8133d934}, - {0xe18d97, 0x8133d935}, - {0xe18d98, 0x8133d936}, - {0xe18d99, 0x8133d937}, - {0xe18d9a, 0x8133d938}, - {0xe18d9b, 0x8133d939}, - {0xe18d9c, 0x8133da30}, - {0xe18d9d, 0x8133da31}, - {0xe18d9e, 0x8133da32}, - {0xe18d9f, 0x8133da33}, - {0xe18da0, 0x8133da34}, - {0xe18da1, 0x8133da35}, - {0xe18da2, 0x8133da36}, - {0xe18da3, 0x8133da37}, - {0xe18da4, 0x8133da38}, - {0xe18da5, 0x8133da39}, - {0xe18da6, 0x8133db30}, - {0xe18da7, 0x8133db31}, - {0xe18da8, 0x8133db32}, - {0xe18da9, 0x8133db33}, - {0xe18daa, 0x8133db34}, - {0xe18dab, 0x8133db35}, - {0xe18dac, 0x8133db36}, - {0xe18dad, 0x8133db37}, - {0xe18dae, 0x8133db38}, - {0xe18daf, 0x8133db39}, - {0xe18db0, 0x8133dc30}, - {0xe18db1, 0x8133dc31}, - {0xe18db2, 0x8133dc32}, - {0xe18db3, 0x8133dc33}, - {0xe18db4, 0x8133dc34}, - {0xe18db5, 0x8133dc35}, - {0xe18db6, 0x8133dc36}, - {0xe18db7, 0x8133dc37}, - {0xe18db8, 0x8133dc38}, - {0xe18db9, 0x8133dc39}, - {0xe18dba, 0x8133dd30}, - {0xe18dbb, 0x8133dd31}, - {0xe18dbc, 0x8133dd32}, - {0xe18dbd, 0x8133dd33}, - {0xe18dbe, 0x8133dd34}, - {0xe18dbf, 0x8133dd35}, - {0xe18e80, 0x8133dd36}, - {0xe18e81, 0x8133dd37}, - {0xe18e82, 0x8133dd38}, - {0xe18e83, 0x8133dd39}, - {0xe18e84, 0x8133de30}, - {0xe18e85, 0x8133de31}, - {0xe18e86, 0x8133de32}, - {0xe18e87, 0x8133de33}, - {0xe18e88, 0x8133de34}, - {0xe18e89, 0x8133de35}, - {0xe18e8a, 0x8133de36}, - {0xe18e8b, 0x8133de37}, - {0xe18e8c, 0x8133de38}, - {0xe18e8d, 0x8133de39}, - {0xe18e8e, 0x8133df30}, - {0xe18e8f, 0x8133df31}, - {0xe18e90, 0x8133df32}, - {0xe18e91, 0x8133df33}, - {0xe18e92, 0x8133df34}, - {0xe18e93, 0x8133df35}, - {0xe18e94, 0x8133df36}, - {0xe18e95, 0x8133df37}, - {0xe18e96, 0x8133df38}, - {0xe18e97, 0x8133df39}, - {0xe18e98, 0x8133e030}, - {0xe18e99, 0x8133e031}, - {0xe18e9a, 0x8133e032}, - {0xe18e9b, 0x8133e033}, - {0xe18e9c, 0x8133e034}, - {0xe18e9d, 0x8133e035}, - {0xe18e9e, 0x8133e036}, - {0xe18e9f, 0x8133e037}, - {0xe18ea0, 0x8133e038}, - {0xe18ea1, 0x8133e039}, - {0xe18ea2, 0x8133e130}, - {0xe18ea3, 0x8133e131}, - {0xe18ea4, 0x8133e132}, - {0xe18ea5, 0x8133e133}, - {0xe18ea6, 0x8133e134}, - {0xe18ea7, 0x8133e135}, - {0xe18ea8, 0x8133e136}, - {0xe18ea9, 0x8133e137}, - {0xe18eaa, 0x8133e138}, - {0xe18eab, 0x8133e139}, - {0xe18eac, 0x8133e230}, - {0xe18ead, 0x8133e231}, - {0xe18eae, 0x8133e232}, - {0xe18eaf, 0x8133e233}, - {0xe18eb0, 0x8133e234}, - {0xe18eb1, 0x8133e235}, - {0xe18eb2, 0x8133e236}, - {0xe18eb3, 0x8133e237}, - {0xe18eb4, 0x8133e238}, - {0xe18eb5, 0x8133e239}, - {0xe18eb6, 0x8133e330}, - {0xe18eb7, 0x8133e331}, - {0xe18eb8, 0x8133e332}, - {0xe18eb9, 0x8133e333}, - {0xe18eba, 0x8133e334}, - {0xe18ebb, 0x8133e335}, - {0xe18ebc, 0x8133e336}, - {0xe18ebd, 0x8133e337}, - {0xe18ebe, 0x8133e338}, - {0xe18ebf, 0x8133e339}, - {0xe18f80, 0x8133e430}, - {0xe18f81, 0x8133e431}, - {0xe18f82, 0x8133e432}, - {0xe18f83, 0x8133e433}, - {0xe18f84, 0x8133e434}, - {0xe18f85, 0x8133e435}, - {0xe18f86, 0x8133e436}, - {0xe18f87, 0x8133e437}, - {0xe18f88, 0x8133e438}, - {0xe18f89, 0x8133e439}, - {0xe18f8a, 0x8133e530}, - {0xe18f8b, 0x8133e531}, - {0xe18f8c, 0x8133e532}, - {0xe18f8d, 0x8133e533}, - {0xe18f8e, 0x8133e534}, - {0xe18f8f, 0x8133e535}, - {0xe18f90, 0x8133e536}, - {0xe18f91, 0x8133e537}, - {0xe18f92, 0x8133e538}, - {0xe18f93, 0x8133e539}, - {0xe18f94, 0x8133e630}, - {0xe18f95, 0x8133e631}, - {0xe18f96, 0x8133e632}, - {0xe18f97, 0x8133e633}, - {0xe18f98, 0x8133e634}, - {0xe18f99, 0x8133e635}, - {0xe18f9a, 0x8133e636}, - {0xe18f9b, 0x8133e637}, - {0xe18f9c, 0x8133e638}, - {0xe18f9d, 0x8133e639}, - {0xe18f9e, 0x8133e730}, - {0xe18f9f, 0x8133e731}, - {0xe18fa0, 0x8133e732}, - {0xe18fa1, 0x8133e733}, - {0xe18fa2, 0x8133e734}, - {0xe18fa3, 0x8133e735}, - {0xe18fa4, 0x8133e736}, - {0xe18fa5, 0x8133e737}, - {0xe18fa6, 0x8133e738}, - {0xe18fa7, 0x8133e739}, - {0xe18fa8, 0x8133e830}, - {0xe18fa9, 0x8133e831}, - {0xe18faa, 0x8133e832}, - {0xe18fab, 0x8133e833}, - {0xe18fac, 0x8133e834}, - {0xe18fad, 0x8133e835}, - {0xe18fae, 0x8133e836}, - {0xe18faf, 0x8133e837}, - {0xe18fb0, 0x8133e838}, - {0xe18fb1, 0x8133e839}, - {0xe18fb2, 0x8133e930}, - {0xe18fb3, 0x8133e931}, - {0xe18fb4, 0x8133e932}, - {0xe18fb5, 0x8133e933}, - {0xe18fb6, 0x8133e934}, - {0xe18fb7, 0x8133e935}, - {0xe18fb8, 0x8133e936}, - {0xe18fb9, 0x8133e937}, - {0xe18fba, 0x8133e938}, - {0xe18fbb, 0x8133e939}, - {0xe18fbc, 0x8133ea30}, - {0xe18fbd, 0x8133ea31}, - {0xe18fbe, 0x8133ea32}, - {0xe18fbf, 0x8133ea33}, - {0xe19080, 0x8133ea34}, - {0xe19081, 0x8133ea35}, - {0xe19082, 0x8133ea36}, - {0xe19083, 0x8133ea37}, - {0xe19084, 0x8133ea38}, - {0xe19085, 0x8133ea39}, - {0xe19086, 0x8133eb30}, - {0xe19087, 0x8133eb31}, - {0xe19088, 0x8133eb32}, - {0xe19089, 0x8133eb33}, - {0xe1908a, 0x8133eb34}, - {0xe1908b, 0x8133eb35}, - {0xe1908c, 0x8133eb36}, - {0xe1908d, 0x8133eb37}, - {0xe1908e, 0x8133eb38}, - {0xe1908f, 0x8133eb39}, - {0xe19090, 0x8133ec30}, - {0xe19091, 0x8133ec31}, - {0xe19092, 0x8133ec32}, - {0xe19093, 0x8133ec33}, - {0xe19094, 0x8133ec34}, - {0xe19095, 0x8133ec35}, - {0xe19096, 0x8133ec36}, - {0xe19097, 0x8133ec37}, - {0xe19098, 0x8133ec38}, - {0xe19099, 0x8133ec39}, - {0xe1909a, 0x8133ed30}, - {0xe1909b, 0x8133ed31}, - {0xe1909c, 0x8133ed32}, - {0xe1909d, 0x8133ed33}, - {0xe1909e, 0x8133ed34}, - {0xe1909f, 0x8133ed35}, - {0xe190a0, 0x8133ed36}, - {0xe190a1, 0x8133ed37}, - {0xe190a2, 0x8133ed38}, - {0xe190a3, 0x8133ed39}, - {0xe190a4, 0x8133ee30}, - {0xe190a5, 0x8133ee31}, - {0xe190a6, 0x8133ee32}, - {0xe190a7, 0x8133ee33}, - {0xe190a8, 0x8133ee34}, - {0xe190a9, 0x8133ee35}, - {0xe190aa, 0x8133ee36}, - {0xe190ab, 0x8133ee37}, - {0xe190ac, 0x8133ee38}, - {0xe190ad, 0x8133ee39}, - {0xe190ae, 0x8133ef30}, - {0xe190af, 0x8133ef31}, - {0xe190b0, 0x8133ef32}, - {0xe190b1, 0x8133ef33}, - {0xe190b2, 0x8133ef34}, - {0xe190b3, 0x8133ef35}, - {0xe190b4, 0x8133ef36}, - {0xe190b5, 0x8133ef37}, - {0xe190b6, 0x8133ef38}, - {0xe190b7, 0x8133ef39}, - {0xe190b8, 0x8133f030}, - {0xe190b9, 0x8133f031}, - {0xe190ba, 0x8133f032}, - {0xe190bb, 0x8133f033}, - {0xe190bc, 0x8133f034}, - {0xe190bd, 0x8133f035}, - {0xe190be, 0x8133f036}, - {0xe190bf, 0x8133f037}, - {0xe19180, 0x8133f038}, - {0xe19181, 0x8133f039}, - {0xe19182, 0x8133f130}, - {0xe19183, 0x8133f131}, - {0xe19184, 0x8133f132}, - {0xe19185, 0x8133f133}, - {0xe19186, 0x8133f134}, - {0xe19187, 0x8133f135}, - {0xe19188, 0x8133f136}, - {0xe19189, 0x8133f137}, - {0xe1918a, 0x8133f138}, - {0xe1918b, 0x8133f139}, - {0xe1918c, 0x8133f230}, - {0xe1918d, 0x8133f231}, - {0xe1918e, 0x8133f232}, - {0xe1918f, 0x8133f233}, - {0xe19190, 0x8133f234}, - {0xe19191, 0x8133f235}, - {0xe19192, 0x8133f236}, - {0xe19193, 0x8133f237}, - {0xe19194, 0x8133f238}, - {0xe19195, 0x8133f239}, - {0xe19196, 0x8133f330}, - {0xe19197, 0x8133f331}, - {0xe19198, 0x8133f332}, - {0xe19199, 0x8133f333}, - {0xe1919a, 0x8133f334}, - {0xe1919b, 0x8133f335}, - {0xe1919c, 0x8133f336}, - {0xe1919d, 0x8133f337}, - {0xe1919e, 0x8133f338}, - {0xe1919f, 0x8133f339}, - {0xe191a0, 0x8133f430}, - {0xe191a1, 0x8133f431}, - {0xe191a2, 0x8133f432}, - {0xe191a3, 0x8133f433}, - {0xe191a4, 0x8133f434}, - {0xe191a5, 0x8133f435}, - {0xe191a6, 0x8133f436}, - {0xe191a7, 0x8133f437}, - {0xe191a8, 0x8133f438}, - {0xe191a9, 0x8133f439}, - {0xe191aa, 0x8133f530}, - {0xe191ab, 0x8133f531}, - {0xe191ac, 0x8133f532}, - {0xe191ad, 0x8133f533}, - {0xe191ae, 0x8133f534}, - {0xe191af, 0x8133f535}, - {0xe191b0, 0x8133f536}, - {0xe191b1, 0x8133f537}, - {0xe191b2, 0x8133f538}, - {0xe191b3, 0x8133f539}, - {0xe191b4, 0x8133f630}, - {0xe191b5, 0x8133f631}, - {0xe191b6, 0x8133f632}, - {0xe191b7, 0x8133f633}, - {0xe191b8, 0x8133f634}, - {0xe191b9, 0x8133f635}, - {0xe191ba, 0x8133f636}, - {0xe191bb, 0x8133f637}, - {0xe191bc, 0x8133f638}, - {0xe191bd, 0x8133f639}, - {0xe191be, 0x8133f730}, - {0xe191bf, 0x8133f731}, - {0xe19280, 0x8133f732}, - {0xe19281, 0x8133f733}, - {0xe19282, 0x8133f734}, - {0xe19283, 0x8133f735}, - {0xe19284, 0x8133f736}, - {0xe19285, 0x8133f737}, - {0xe19286, 0x8133f738}, - {0xe19287, 0x8133f739}, - {0xe19288, 0x8133f830}, - {0xe19289, 0x8133f831}, - {0xe1928a, 0x8133f832}, - {0xe1928b, 0x8133f833}, - {0xe1928c, 0x8133f834}, - {0xe1928d, 0x8133f835}, - {0xe1928e, 0x8133f836}, - {0xe1928f, 0x8133f837}, - {0xe19290, 0x8133f838}, - {0xe19291, 0x8133f839}, - {0xe19292, 0x8133f930}, - {0xe19293, 0x8133f931}, - {0xe19294, 0x8133f932}, - {0xe19295, 0x8133f933}, - {0xe19296, 0x8133f934}, - {0xe19297, 0x8133f935}, - {0xe19298, 0x8133f936}, - {0xe19299, 0x8133f937}, - {0xe1929a, 0x8133f938}, - {0xe1929b, 0x8133f939}, - {0xe1929c, 0x8133fa30}, - {0xe1929d, 0x8133fa31}, - {0xe1929e, 0x8133fa32}, - {0xe1929f, 0x8133fa33}, - {0xe192a0, 0x8133fa34}, - {0xe192a1, 0x8133fa35}, - {0xe192a2, 0x8133fa36}, - {0xe192a3, 0x8133fa37}, - {0xe192a4, 0x8133fa38}, - {0xe192a5, 0x8133fa39}, - {0xe192a6, 0x8133fb30}, - {0xe192a7, 0x8133fb31}, - {0xe192a8, 0x8133fb32}, - {0xe192a9, 0x8133fb33}, - {0xe192aa, 0x8133fb34}, - {0xe192ab, 0x8133fb35}, - {0xe192ac, 0x8133fb36}, - {0xe192ad, 0x8133fb37}, - {0xe192ae, 0x8133fb38}, - {0xe192af, 0x8133fb39}, - {0xe192b0, 0x8133fc30}, - {0xe192b1, 0x8133fc31}, - {0xe192b2, 0x8133fc32}, - {0xe192b3, 0x8133fc33}, - {0xe192b4, 0x8133fc34}, - {0xe192b5, 0x8133fc35}, - {0xe192b6, 0x8133fc36}, - {0xe192b7, 0x8133fc37}, - {0xe192b8, 0x8133fc38}, - {0xe192b9, 0x8133fc39}, - {0xe192ba, 0x8133fd30}, - {0xe192bb, 0x8133fd31}, - {0xe192bc, 0x8133fd32}, - {0xe192bd, 0x8133fd33}, - {0xe192be, 0x8133fd34}, - {0xe192bf, 0x8133fd35}, - {0xe19380, 0x8133fd36}, - {0xe19381, 0x8133fd37}, - {0xe19382, 0x8133fd38}, - {0xe19383, 0x8133fd39}, - {0xe19384, 0x8133fe30}, - {0xe19385, 0x8133fe31}, - {0xe19386, 0x8133fe32}, - {0xe19387, 0x8133fe33}, - {0xe19388, 0x8133fe34}, - {0xe19389, 0x8133fe35}, - {0xe1938a, 0x8133fe36}, - {0xe1938b, 0x8133fe37}, - {0xe1938c, 0x8133fe38}, - {0xe1938d, 0x8133fe39}, - {0xe1938e, 0x81348130}, - {0xe1938f, 0x81348131}, - {0xe19390, 0x81348132}, - {0xe19391, 0x81348133}, - {0xe19392, 0x81348134}, - {0xe19393, 0x81348135}, - {0xe19394, 0x81348136}, - {0xe19395, 0x81348137}, - {0xe19396, 0x81348138}, - {0xe19397, 0x81348139}, - {0xe19398, 0x81348230}, - {0xe19399, 0x81348231}, - {0xe1939a, 0x81348232}, - {0xe1939b, 0x81348233}, - {0xe1939c, 0x81348234}, - {0xe1939d, 0x81348235}, - {0xe1939e, 0x81348236}, - {0xe1939f, 0x81348237}, - {0xe193a0, 0x81348238}, - {0xe193a1, 0x81348239}, - {0xe193a2, 0x81348330}, - {0xe193a3, 0x81348331}, - {0xe193a4, 0x81348332}, - {0xe193a5, 0x81348333}, - {0xe193a6, 0x81348334}, - {0xe193a7, 0x81348335}, - {0xe193a8, 0x81348336}, - {0xe193a9, 0x81348337}, - {0xe193aa, 0x81348338}, - {0xe193ab, 0x81348339}, - {0xe193ac, 0x81348430}, - {0xe193ad, 0x81348431}, - {0xe193ae, 0x81348432}, - {0xe193af, 0x81348433}, - {0xe193b0, 0x81348434}, - {0xe193b1, 0x81348435}, - {0xe193b2, 0x81348436}, - {0xe193b3, 0x81348437}, - {0xe193b4, 0x81348438}, - {0xe193b5, 0x81348439}, - {0xe193b6, 0x81348530}, - {0xe193b7, 0x81348531}, - {0xe193b8, 0x81348532}, - {0xe193b9, 0x81348533}, - {0xe193ba, 0x81348534}, - {0xe193bb, 0x81348535}, - {0xe193bc, 0x81348536}, - {0xe193bd, 0x81348537}, - {0xe193be, 0x81348538}, - {0xe193bf, 0x81348539}, - {0xe19480, 0x81348630}, - {0xe19481, 0x81348631}, - {0xe19482, 0x81348632}, - {0xe19483, 0x81348633}, - {0xe19484, 0x81348634}, - {0xe19485, 0x81348635}, - {0xe19486, 0x81348636}, - {0xe19487, 0x81348637}, - {0xe19488, 0x81348638}, - {0xe19489, 0x81348639}, - {0xe1948a, 0x81348730}, - {0xe1948b, 0x81348731}, - {0xe1948c, 0x81348732}, - {0xe1948d, 0x81348733}, - {0xe1948e, 0x81348734}, - {0xe1948f, 0x81348735}, - {0xe19490, 0x81348736}, - {0xe19491, 0x81348737}, - {0xe19492, 0x81348738}, - {0xe19493, 0x81348739}, - {0xe19494, 0x81348830}, - {0xe19495, 0x81348831}, - {0xe19496, 0x81348832}, - {0xe19497, 0x81348833}, - {0xe19498, 0x81348834}, - {0xe19499, 0x81348835}, - {0xe1949a, 0x81348836}, - {0xe1949b, 0x81348837}, - {0xe1949c, 0x81348838}, - {0xe1949d, 0x81348839}, - {0xe1949e, 0x81348930}, - {0xe1949f, 0x81348931}, - {0xe194a0, 0x81348932}, - {0xe194a1, 0x81348933}, - {0xe194a2, 0x81348934}, - {0xe194a3, 0x81348935}, - {0xe194a4, 0x81348936}, - {0xe194a5, 0x81348937}, - {0xe194a6, 0x81348938}, - {0xe194a7, 0x81348939}, - {0xe194a8, 0x81348a30}, - {0xe194a9, 0x81348a31}, - {0xe194aa, 0x81348a32}, - {0xe194ab, 0x81348a33}, - {0xe194ac, 0x81348a34}, - {0xe194ad, 0x81348a35}, - {0xe194ae, 0x81348a36}, - {0xe194af, 0x81348a37}, - {0xe194b0, 0x81348a38}, - {0xe194b1, 0x81348a39}, - {0xe194b2, 0x81348b30}, - {0xe194b3, 0x81348b31}, - {0xe194b4, 0x81348b32}, - {0xe194b5, 0x81348b33}, - {0xe194b6, 0x81348b34}, - {0xe194b7, 0x81348b35}, - {0xe194b8, 0x81348b36}, - {0xe194b9, 0x81348b37}, - {0xe194ba, 0x81348b38}, - {0xe194bb, 0x81348b39}, - {0xe194bc, 0x81348c30}, - {0xe194bd, 0x81348c31}, - {0xe194be, 0x81348c32}, - {0xe194bf, 0x81348c33}, - {0xe19580, 0x81348c34}, - {0xe19581, 0x81348c35}, - {0xe19582, 0x81348c36}, - {0xe19583, 0x81348c37}, - {0xe19584, 0x81348c38}, - {0xe19585, 0x81348c39}, - {0xe19586, 0x81348d30}, - {0xe19587, 0x81348d31}, - {0xe19588, 0x81348d32}, - {0xe19589, 0x81348d33}, - {0xe1958a, 0x81348d34}, - {0xe1958b, 0x81348d35}, - {0xe1958c, 0x81348d36}, - {0xe1958d, 0x81348d37}, - {0xe1958e, 0x81348d38}, - {0xe1958f, 0x81348d39}, - {0xe19590, 0x81348e30}, - {0xe19591, 0x81348e31}, - {0xe19592, 0x81348e32}, - {0xe19593, 0x81348e33}, - {0xe19594, 0x81348e34}, - {0xe19595, 0x81348e35}, - {0xe19596, 0x81348e36}, - {0xe19597, 0x81348e37}, - {0xe19598, 0x81348e38}, - {0xe19599, 0x81348e39}, - {0xe1959a, 0x81348f30}, - {0xe1959b, 0x81348f31}, - {0xe1959c, 0x81348f32}, - {0xe1959d, 0x81348f33}, - {0xe1959e, 0x81348f34}, - {0xe1959f, 0x81348f35}, - {0xe195a0, 0x81348f36}, - {0xe195a1, 0x81348f37}, - {0xe195a2, 0x81348f38}, - {0xe195a3, 0x81348f39}, - {0xe195a4, 0x81349030}, - {0xe195a5, 0x81349031}, - {0xe195a6, 0x81349032}, - {0xe195a7, 0x81349033}, - {0xe195a8, 0x81349034}, - {0xe195a9, 0x81349035}, - {0xe195aa, 0x81349036}, - {0xe195ab, 0x81349037}, - {0xe195ac, 0x81349038}, - {0xe195ad, 0x81349039}, - {0xe195ae, 0x81349130}, - {0xe195af, 0x81349131}, - {0xe195b0, 0x81349132}, - {0xe195b1, 0x81349133}, - {0xe195b2, 0x81349134}, - {0xe195b3, 0x81349135}, - {0xe195b4, 0x81349136}, - {0xe195b5, 0x81349137}, - {0xe195b6, 0x81349138}, - {0xe195b7, 0x81349139}, - {0xe195b8, 0x81349230}, - {0xe195b9, 0x81349231}, - {0xe195ba, 0x81349232}, - {0xe195bb, 0x81349233}, - {0xe195bc, 0x81349234}, - {0xe195bd, 0x81349235}, - {0xe195be, 0x81349236}, - {0xe195bf, 0x81349237}, - {0xe19680, 0x81349238}, - {0xe19681, 0x81349239}, - {0xe19682, 0x81349330}, - {0xe19683, 0x81349331}, - {0xe19684, 0x81349332}, - {0xe19685, 0x81349333}, - {0xe19686, 0x81349334}, - {0xe19687, 0x81349335}, - {0xe19688, 0x81349336}, - {0xe19689, 0x81349337}, - {0xe1968a, 0x81349338}, - {0xe1968b, 0x81349339}, - {0xe1968c, 0x81349430}, - {0xe1968d, 0x81349431}, - {0xe1968e, 0x81349432}, - {0xe1968f, 0x81349433}, - {0xe19690, 0x81349434}, - {0xe19691, 0x81349435}, - {0xe19692, 0x81349436}, - {0xe19693, 0x81349437}, - {0xe19694, 0x81349438}, - {0xe19695, 0x81349439}, - {0xe19696, 0x81349530}, - {0xe19697, 0x81349531}, - {0xe19698, 0x81349532}, - {0xe19699, 0x81349533}, - {0xe1969a, 0x81349534}, - {0xe1969b, 0x81349535}, - {0xe1969c, 0x81349536}, - {0xe1969d, 0x81349537}, - {0xe1969e, 0x81349538}, - {0xe1969f, 0x81349539}, - {0xe196a0, 0x81349630}, - {0xe196a1, 0x81349631}, - {0xe196a2, 0x81349632}, - {0xe196a3, 0x81349633}, - {0xe196a4, 0x81349634}, - {0xe196a5, 0x81349635}, - {0xe196a6, 0x81349636}, - {0xe196a7, 0x81349637}, - {0xe196a8, 0x81349638}, - {0xe196a9, 0x81349639}, - {0xe196aa, 0x81349730}, - {0xe196ab, 0x81349731}, - {0xe196ac, 0x81349732}, - {0xe196ad, 0x81349733}, - {0xe196ae, 0x81349734}, - {0xe196af, 0x81349735}, - {0xe196b0, 0x81349736}, - {0xe196b1, 0x81349737}, - {0xe196b2, 0x81349738}, - {0xe196b3, 0x81349739}, - {0xe196b4, 0x81349830}, - {0xe196b5, 0x81349831}, - {0xe196b6, 0x81349832}, - {0xe196b7, 0x81349833}, - {0xe196b8, 0x81349834}, - {0xe196b9, 0x81349835}, - {0xe196ba, 0x81349836}, - {0xe196bb, 0x81349837}, - {0xe196bc, 0x81349838}, - {0xe196bd, 0x81349839}, - {0xe196be, 0x81349930}, - {0xe196bf, 0x81349931}, - {0xe19780, 0x81349932}, - {0xe19781, 0x81349933}, - {0xe19782, 0x81349934}, - {0xe19783, 0x81349935}, - {0xe19784, 0x81349936}, - {0xe19785, 0x81349937}, - {0xe19786, 0x81349938}, - {0xe19787, 0x81349939}, - {0xe19788, 0x81349a30}, - {0xe19789, 0x81349a31}, - {0xe1978a, 0x81349a32}, - {0xe1978b, 0x81349a33}, - {0xe1978c, 0x81349a34}, - {0xe1978d, 0x81349a35}, - {0xe1978e, 0x81349a36}, - {0xe1978f, 0x81349a37}, - {0xe19790, 0x81349a38}, - {0xe19791, 0x81349a39}, - {0xe19792, 0x81349b30}, - {0xe19793, 0x81349b31}, - {0xe19794, 0x81349b32}, - {0xe19795, 0x81349b33}, - {0xe19796, 0x81349b34}, - {0xe19797, 0x81349b35}, - {0xe19798, 0x81349b36}, - {0xe19799, 0x81349b37}, - {0xe1979a, 0x81349b38}, - {0xe1979b, 0x81349b39}, - {0xe1979c, 0x81349c30}, - {0xe1979d, 0x81349c31}, - {0xe1979e, 0x81349c32}, - {0xe1979f, 0x81349c33}, - {0xe197a0, 0x81349c34}, - {0xe197a1, 0x81349c35}, - {0xe197a2, 0x81349c36}, - {0xe197a3, 0x81349c37}, - {0xe197a4, 0x81349c38}, - {0xe197a5, 0x81349c39}, - {0xe197a6, 0x81349d30}, - {0xe197a7, 0x81349d31}, - {0xe197a8, 0x81349d32}, - {0xe197a9, 0x81349d33}, - {0xe197aa, 0x81349d34}, - {0xe197ab, 0x81349d35}, - {0xe197ac, 0x81349d36}, - {0xe197ad, 0x81349d37}, - {0xe197ae, 0x81349d38}, - {0xe197af, 0x81349d39}, - {0xe197b0, 0x81349e30}, - {0xe197b1, 0x81349e31}, - {0xe197b2, 0x81349e32}, - {0xe197b3, 0x81349e33}, - {0xe197b4, 0x81349e34}, - {0xe197b5, 0x81349e35}, - {0xe197b6, 0x81349e36}, - {0xe197b7, 0x81349e37}, - {0xe197b8, 0x81349e38}, - {0xe197b9, 0x81349e39}, - {0xe197ba, 0x81349f30}, - {0xe197bb, 0x81349f31}, - {0xe197bc, 0x81349f32}, - {0xe197bd, 0x81349f33}, - {0xe197be, 0x81349f34}, - {0xe197bf, 0x81349f35}, - {0xe19880, 0x81349f36}, - {0xe19881, 0x81349f37}, - {0xe19882, 0x81349f38}, - {0xe19883, 0x81349f39}, - {0xe19884, 0x8134a030}, - {0xe19885, 0x8134a031}, - {0xe19886, 0x8134a032}, - {0xe19887, 0x8134a033}, - {0xe19888, 0x8134a034}, - {0xe19889, 0x8134a035}, - {0xe1988a, 0x8134a036}, - {0xe1988b, 0x8134a037}, - {0xe1988c, 0x8134a038}, - {0xe1988d, 0x8134a039}, - {0xe1988e, 0x8134a130}, - {0xe1988f, 0x8134a131}, - {0xe19890, 0x8134a132}, - {0xe19891, 0x8134a133}, - {0xe19892, 0x8134a134}, - {0xe19893, 0x8134a135}, - {0xe19894, 0x8134a136}, - {0xe19895, 0x8134a137}, - {0xe19896, 0x8134a138}, - {0xe19897, 0x8134a139}, - {0xe19898, 0x8134a230}, - {0xe19899, 0x8134a231}, - {0xe1989a, 0x8134a232}, - {0xe1989b, 0x8134a233}, - {0xe1989c, 0x8134a234}, - {0xe1989d, 0x8134a235}, - {0xe1989e, 0x8134a236}, - {0xe1989f, 0x8134a237}, - {0xe198a0, 0x8134a238}, - {0xe198a1, 0x8134a239}, - {0xe198a2, 0x8134a330}, - {0xe198a3, 0x8134a331}, - {0xe198a4, 0x8134a332}, - {0xe198a5, 0x8134a333}, - {0xe198a6, 0x8134a334}, - {0xe198a7, 0x8134a335}, - {0xe198a8, 0x8134a336}, - {0xe198a9, 0x8134a337}, - {0xe198aa, 0x8134a338}, - {0xe198ab, 0x8134a339}, - {0xe198ac, 0x8134a430}, - {0xe198ad, 0x8134a431}, - {0xe198ae, 0x8134a432}, - {0xe198af, 0x8134a433}, - {0xe198b0, 0x8134a434}, - {0xe198b1, 0x8134a435}, - {0xe198b2, 0x8134a436}, - {0xe198b3, 0x8134a437}, - {0xe198b4, 0x8134a438}, - {0xe198b5, 0x8134a439}, - {0xe198b6, 0x8134a530}, - {0xe198b7, 0x8134a531}, - {0xe198b8, 0x8134a532}, - {0xe198b9, 0x8134a533}, - {0xe198ba, 0x8134a534}, - {0xe198bb, 0x8134a535}, - {0xe198bc, 0x8134a536}, - {0xe198bd, 0x8134a537}, - {0xe198be, 0x8134a538}, - {0xe198bf, 0x8134a539}, - {0xe19980, 0x8134a630}, - {0xe19981, 0x8134a631}, - {0xe19982, 0x8134a632}, - {0xe19983, 0x8134a633}, - {0xe19984, 0x8134a634}, - {0xe19985, 0x8134a635}, - {0xe19986, 0x8134a636}, - {0xe19987, 0x8134a637}, - {0xe19988, 0x8134a638}, - {0xe19989, 0x8134a639}, - {0xe1998a, 0x8134a730}, - {0xe1998b, 0x8134a731}, - {0xe1998c, 0x8134a732}, - {0xe1998d, 0x8134a733}, - {0xe1998e, 0x8134a734}, - {0xe1998f, 0x8134a735}, - {0xe19990, 0x8134a736}, - {0xe19991, 0x8134a737}, - {0xe19992, 0x8134a738}, - {0xe19993, 0x8134a739}, - {0xe19994, 0x8134a830}, - {0xe19995, 0x8134a831}, - {0xe19996, 0x8134a832}, - {0xe19997, 0x8134a833}, - {0xe19998, 0x8134a834}, - {0xe19999, 0x8134a835}, - {0xe1999a, 0x8134a836}, - {0xe1999b, 0x8134a837}, - {0xe1999c, 0x8134a838}, - {0xe1999d, 0x8134a839}, - {0xe1999e, 0x8134a930}, - {0xe1999f, 0x8134a931}, - {0xe199a0, 0x8134a932}, - {0xe199a1, 0x8134a933}, - {0xe199a2, 0x8134a934}, - {0xe199a3, 0x8134a935}, - {0xe199a4, 0x8134a936}, - {0xe199a5, 0x8134a937}, - {0xe199a6, 0x8134a938}, - {0xe199a7, 0x8134a939}, - {0xe199a8, 0x8134aa30}, - {0xe199a9, 0x8134aa31}, - {0xe199aa, 0x8134aa32}, - {0xe199ab, 0x8134aa33}, - {0xe199ac, 0x8134aa34}, - {0xe199ad, 0x8134aa35}, - {0xe199ae, 0x8134aa36}, - {0xe199af, 0x8134aa37}, - {0xe199b0, 0x8134aa38}, - {0xe199b1, 0x8134aa39}, - {0xe199b2, 0x8134ab30}, - {0xe199b3, 0x8134ab31}, - {0xe199b4, 0x8134ab32}, - {0xe199b5, 0x8134ab33}, - {0xe199b6, 0x8134ab34}, - {0xe199b7, 0x8134ab35}, - {0xe199b8, 0x8134ab36}, - {0xe199b9, 0x8134ab37}, - {0xe199ba, 0x8134ab38}, - {0xe199bb, 0x8134ab39}, - {0xe199bc, 0x8134ac30}, - {0xe199bd, 0x8134ac31}, - {0xe199be, 0x8134ac32}, - {0xe199bf, 0x8134ac33}, - {0xe19a80, 0x8134ac34}, - {0xe19a81, 0x8134ac35}, - {0xe19a82, 0x8134ac36}, - {0xe19a83, 0x8134ac37}, - {0xe19a84, 0x8134ac38}, - {0xe19a85, 0x8134ac39}, - {0xe19a86, 0x8134ad30}, - {0xe19a87, 0x8134ad31}, - {0xe19a88, 0x8134ad32}, - {0xe19a89, 0x8134ad33}, - {0xe19a8a, 0x8134ad34}, - {0xe19a8b, 0x8134ad35}, - {0xe19a8c, 0x8134ad36}, - {0xe19a8d, 0x8134ad37}, - {0xe19a8e, 0x8134ad38}, - {0xe19a8f, 0x8134ad39}, - {0xe19a90, 0x8134ae30}, - {0xe19a91, 0x8134ae31}, - {0xe19a92, 0x8134ae32}, - {0xe19a93, 0x8134ae33}, - {0xe19a94, 0x8134ae34}, - {0xe19a95, 0x8134ae35}, - {0xe19a96, 0x8134ae36}, - {0xe19a97, 0x8134ae37}, - {0xe19a98, 0x8134ae38}, - {0xe19a99, 0x8134ae39}, - {0xe19a9a, 0x8134af30}, - {0xe19a9b, 0x8134af31}, - {0xe19a9c, 0x8134af32}, - {0xe19a9d, 0x8134af33}, - {0xe19a9e, 0x8134af34}, - {0xe19a9f, 0x8134af35}, - {0xe19aa0, 0x8134af36}, - {0xe19aa1, 0x8134af37}, - {0xe19aa2, 0x8134af38}, - {0xe19aa3, 0x8134af39}, - {0xe19aa4, 0x8134b030}, - {0xe19aa5, 0x8134b031}, - {0xe19aa6, 0x8134b032}, - {0xe19aa7, 0x8134b033}, - {0xe19aa8, 0x8134b034}, - {0xe19aa9, 0x8134b035}, - {0xe19aaa, 0x8134b036}, - {0xe19aab, 0x8134b037}, - {0xe19aac, 0x8134b038}, - {0xe19aad, 0x8134b039}, - {0xe19aae, 0x8134b130}, - {0xe19aaf, 0x8134b131}, - {0xe19ab0, 0x8134b132}, - {0xe19ab1, 0x8134b133}, - {0xe19ab2, 0x8134b134}, - {0xe19ab3, 0x8134b135}, - {0xe19ab4, 0x8134b136}, - {0xe19ab5, 0x8134b137}, - {0xe19ab6, 0x8134b138}, - {0xe19ab7, 0x8134b139}, - {0xe19ab8, 0x8134b230}, - {0xe19ab9, 0x8134b231}, - {0xe19aba, 0x8134b232}, - {0xe19abb, 0x8134b233}, - {0xe19abc, 0x8134b234}, - {0xe19abd, 0x8134b235}, - {0xe19abe, 0x8134b236}, - {0xe19abf, 0x8134b237}, - {0xe19b80, 0x8134b238}, - {0xe19b81, 0x8134b239}, - {0xe19b82, 0x8134b330}, - {0xe19b83, 0x8134b331}, - {0xe19b84, 0x8134b332}, - {0xe19b85, 0x8134b333}, - {0xe19b86, 0x8134b334}, - {0xe19b87, 0x8134b335}, - {0xe19b88, 0x8134b336}, - {0xe19b89, 0x8134b337}, - {0xe19b8a, 0x8134b338}, - {0xe19b8b, 0x8134b339}, - {0xe19b8c, 0x8134b430}, - {0xe19b8d, 0x8134b431}, - {0xe19b8e, 0x8134b432}, - {0xe19b8f, 0x8134b433}, - {0xe19b90, 0x8134b434}, - {0xe19b91, 0x8134b435}, - {0xe19b92, 0x8134b436}, - {0xe19b93, 0x8134b437}, - {0xe19b94, 0x8134b438}, - {0xe19b95, 0x8134b439}, - {0xe19b96, 0x8134b530}, - {0xe19b97, 0x8134b531}, - {0xe19b98, 0x8134b532}, - {0xe19b99, 0x8134b533}, - {0xe19b9a, 0x8134b534}, - {0xe19b9b, 0x8134b535}, - {0xe19b9c, 0x8134b536}, - {0xe19b9d, 0x8134b537}, - {0xe19b9e, 0x8134b538}, - {0xe19b9f, 0x8134b539}, - {0xe19ba0, 0x8134b630}, - {0xe19ba1, 0x8134b631}, - {0xe19ba2, 0x8134b632}, - {0xe19ba3, 0x8134b633}, - {0xe19ba4, 0x8134b634}, - {0xe19ba5, 0x8134b635}, - {0xe19ba6, 0x8134b636}, - {0xe19ba7, 0x8134b637}, - {0xe19ba8, 0x8134b638}, - {0xe19ba9, 0x8134b639}, - {0xe19baa, 0x8134b730}, - {0xe19bab, 0x8134b731}, - {0xe19bac, 0x8134b732}, - {0xe19bad, 0x8134b733}, - {0xe19bae, 0x8134b734}, - {0xe19baf, 0x8134b735}, - {0xe19bb0, 0x8134b736}, - {0xe19bb1, 0x8134b737}, - {0xe19bb2, 0x8134b738}, - {0xe19bb3, 0x8134b739}, - {0xe19bb4, 0x8134b830}, - {0xe19bb5, 0x8134b831}, - {0xe19bb6, 0x8134b832}, - {0xe19bb7, 0x8134b833}, - {0xe19bb8, 0x8134b834}, - {0xe19bb9, 0x8134b835}, - {0xe19bba, 0x8134b836}, - {0xe19bbb, 0x8134b837}, - {0xe19bbc, 0x8134b838}, - {0xe19bbd, 0x8134b839}, - {0xe19bbe, 0x8134b930}, - {0xe19bbf, 0x8134b931}, - {0xe19c80, 0x8134b932}, - {0xe19c81, 0x8134b933}, - {0xe19c82, 0x8134b934}, - {0xe19c83, 0x8134b935}, - {0xe19c84, 0x8134b936}, - {0xe19c85, 0x8134b937}, - {0xe19c86, 0x8134b938}, - {0xe19c87, 0x8134b939}, - {0xe19c88, 0x8134ba30}, - {0xe19c89, 0x8134ba31}, - {0xe19c8a, 0x8134ba32}, - {0xe19c8b, 0x8134ba33}, - {0xe19c8c, 0x8134ba34}, - {0xe19c8d, 0x8134ba35}, - {0xe19c8e, 0x8134ba36}, - {0xe19c8f, 0x8134ba37}, - {0xe19c90, 0x8134ba38}, - {0xe19c91, 0x8134ba39}, - {0xe19c92, 0x8134bb30}, - {0xe19c93, 0x8134bb31}, - {0xe19c94, 0x8134bb32}, - {0xe19c95, 0x8134bb33}, - {0xe19c96, 0x8134bb34}, - {0xe19c97, 0x8134bb35}, - {0xe19c98, 0x8134bb36}, - {0xe19c99, 0x8134bb37}, - {0xe19c9a, 0x8134bb38}, - {0xe19c9b, 0x8134bb39}, - {0xe19c9c, 0x8134bc30}, - {0xe19c9d, 0x8134bc31}, - {0xe19c9e, 0x8134bc32}, - {0xe19c9f, 0x8134bc33}, - {0xe19ca0, 0x8134bc34}, - {0xe19ca1, 0x8134bc35}, - {0xe19ca2, 0x8134bc36}, - {0xe19ca3, 0x8134bc37}, - {0xe19ca4, 0x8134bc38}, - {0xe19ca5, 0x8134bc39}, - {0xe19ca6, 0x8134bd30}, - {0xe19ca7, 0x8134bd31}, - {0xe19ca8, 0x8134bd32}, - {0xe19ca9, 0x8134bd33}, - {0xe19caa, 0x8134bd34}, - {0xe19cab, 0x8134bd35}, - {0xe19cac, 0x8134bd36}, - {0xe19cad, 0x8134bd37}, - {0xe19cae, 0x8134bd38}, - {0xe19caf, 0x8134bd39}, - {0xe19cb0, 0x8134be30}, - {0xe19cb1, 0x8134be31}, - {0xe19cb2, 0x8134be32}, - {0xe19cb3, 0x8134be33}, - {0xe19cb4, 0x8134be34}, - {0xe19cb5, 0x8134be35}, - {0xe19cb6, 0x8134be36}, - {0xe19cb7, 0x8134be37}, - {0xe19cb8, 0x8134be38}, - {0xe19cb9, 0x8134be39}, - {0xe19cba, 0x8134bf30}, - {0xe19cbb, 0x8134bf31}, - {0xe19cbc, 0x8134bf32}, - {0xe19cbd, 0x8134bf33}, - {0xe19cbe, 0x8134bf34}, - {0xe19cbf, 0x8134bf35}, - {0xe19d80, 0x8134bf36}, - {0xe19d81, 0x8134bf37}, - {0xe19d82, 0x8134bf38}, - {0xe19d83, 0x8134bf39}, - {0xe19d84, 0x8134c030}, - {0xe19d85, 0x8134c031}, - {0xe19d86, 0x8134c032}, - {0xe19d87, 0x8134c033}, - {0xe19d88, 0x8134c034}, - {0xe19d89, 0x8134c035}, - {0xe19d8a, 0x8134c036}, - {0xe19d8b, 0x8134c037}, - {0xe19d8c, 0x8134c038}, - {0xe19d8d, 0x8134c039}, - {0xe19d8e, 0x8134c130}, - {0xe19d8f, 0x8134c131}, - {0xe19d90, 0x8134c132}, - {0xe19d91, 0x8134c133}, - {0xe19d92, 0x8134c134}, - {0xe19d93, 0x8134c135}, - {0xe19d94, 0x8134c136}, - {0xe19d95, 0x8134c137}, - {0xe19d96, 0x8134c138}, - {0xe19d97, 0x8134c139}, - {0xe19d98, 0x8134c230}, - {0xe19d99, 0x8134c231}, - {0xe19d9a, 0x8134c232}, - {0xe19d9b, 0x8134c233}, - {0xe19d9c, 0x8134c234}, - {0xe19d9d, 0x8134c235}, - {0xe19d9e, 0x8134c236}, - {0xe19d9f, 0x8134c237}, - {0xe19da0, 0x8134c238}, - {0xe19da1, 0x8134c239}, - {0xe19da2, 0x8134c330}, - {0xe19da3, 0x8134c331}, - {0xe19da4, 0x8134c332}, - {0xe19da5, 0x8134c333}, - {0xe19da6, 0x8134c334}, - {0xe19da7, 0x8134c335}, - {0xe19da8, 0x8134c336}, - {0xe19da9, 0x8134c337}, - {0xe19daa, 0x8134c338}, - {0xe19dab, 0x8134c339}, - {0xe19dac, 0x8134c430}, - {0xe19dad, 0x8134c431}, - {0xe19dae, 0x8134c432}, - {0xe19daf, 0x8134c433}, - {0xe19db0, 0x8134c434}, - {0xe19db1, 0x8134c435}, - {0xe19db2, 0x8134c436}, - {0xe19db3, 0x8134c437}, - {0xe19db4, 0x8134c438}, - {0xe19db5, 0x8134c439}, - {0xe19db6, 0x8134c530}, - {0xe19db7, 0x8134c531}, - {0xe19db8, 0x8134c532}, - {0xe19db9, 0x8134c533}, - {0xe19dba, 0x8134c534}, - {0xe19dbb, 0x8134c535}, - {0xe19dbc, 0x8134c536}, - {0xe19dbd, 0x8134c537}, - {0xe19dbe, 0x8134c538}, - {0xe19dbf, 0x8134c539}, - {0xe19e80, 0x8134c630}, - {0xe19e81, 0x8134c631}, - {0xe19e82, 0x8134c632}, - {0xe19e83, 0x8134c633}, - {0xe19e84, 0x8134c634}, - {0xe19e85, 0x8134c635}, - {0xe19e86, 0x8134c636}, - {0xe19e87, 0x8134c637}, - {0xe19e88, 0x8134c638}, - {0xe19e89, 0x8134c639}, - {0xe19e8a, 0x8134c730}, - {0xe19e8b, 0x8134c731}, - {0xe19e8c, 0x8134c732}, - {0xe19e8d, 0x8134c733}, - {0xe19e8e, 0x8134c734}, - {0xe19e8f, 0x8134c735}, - {0xe19e90, 0x8134c736}, - {0xe19e91, 0x8134c737}, - {0xe19e92, 0x8134c738}, - {0xe19e93, 0x8134c739}, - {0xe19e94, 0x8134c830}, - {0xe19e95, 0x8134c831}, - {0xe19e96, 0x8134c832}, - {0xe19e97, 0x8134c833}, - {0xe19e98, 0x8134c834}, - {0xe19e99, 0x8134c835}, - {0xe19e9a, 0x8134c836}, - {0xe19e9b, 0x8134c837}, - {0xe19e9c, 0x8134c838}, - {0xe19e9d, 0x8134c839}, - {0xe19e9e, 0x8134c930}, - {0xe19e9f, 0x8134c931}, - {0xe19ea0, 0x8134c932}, - {0xe19ea1, 0x8134c933}, - {0xe19ea2, 0x8134c934}, - {0xe19ea3, 0x8134c935}, - {0xe19ea4, 0x8134c936}, - {0xe19ea5, 0x8134c937}, - {0xe19ea6, 0x8134c938}, - {0xe19ea7, 0x8134c939}, - {0xe19ea8, 0x8134ca30}, - {0xe19ea9, 0x8134ca31}, - {0xe19eaa, 0x8134ca32}, - {0xe19eab, 0x8134ca33}, - {0xe19eac, 0x8134ca34}, - {0xe19ead, 0x8134ca35}, - {0xe19eae, 0x8134ca36}, - {0xe19eaf, 0x8134ca37}, - {0xe19eb0, 0x8134ca38}, - {0xe19eb1, 0x8134ca39}, - {0xe19eb2, 0x8134cb30}, - {0xe19eb3, 0x8134cb31}, - {0xe19eb4, 0x8134cb32}, - {0xe19eb5, 0x8134cb33}, - {0xe19eb6, 0x8134cb34}, - {0xe19eb7, 0x8134cb35}, - {0xe19eb8, 0x8134cb36}, - {0xe19eb9, 0x8134cb37}, - {0xe19eba, 0x8134cb38}, - {0xe19ebb, 0x8134cb39}, - {0xe19ebc, 0x8134cc30}, - {0xe19ebd, 0x8134cc31}, - {0xe19ebe, 0x8134cc32}, - {0xe19ebf, 0x8134cc33}, - {0xe19f80, 0x8134cc34}, - {0xe19f81, 0x8134cc35}, - {0xe19f82, 0x8134cc36}, - {0xe19f83, 0x8134cc37}, - {0xe19f84, 0x8134cc38}, - {0xe19f85, 0x8134cc39}, - {0xe19f86, 0x8134cd30}, - {0xe19f87, 0x8134cd31}, - {0xe19f88, 0x8134cd32}, - {0xe19f89, 0x8134cd33}, - {0xe19f8a, 0x8134cd34}, - {0xe19f8b, 0x8134cd35}, - {0xe19f8c, 0x8134cd36}, - {0xe19f8d, 0x8134cd37}, - {0xe19f8e, 0x8134cd38}, - {0xe19f8f, 0x8134cd39}, - {0xe19f90, 0x8134ce30}, - {0xe19f91, 0x8134ce31}, - {0xe19f92, 0x8134ce32}, - {0xe19f93, 0x8134ce33}, - {0xe19f94, 0x8134ce34}, - {0xe19f95, 0x8134ce35}, - {0xe19f96, 0x8134ce36}, - {0xe19f97, 0x8134ce37}, - {0xe19f98, 0x8134ce38}, - {0xe19f99, 0x8134ce39}, - {0xe19f9a, 0x8134cf30}, - {0xe19f9b, 0x8134cf31}, - {0xe19f9c, 0x8134cf32}, - {0xe19f9d, 0x8134cf33}, - {0xe19f9e, 0x8134cf34}, - {0xe19f9f, 0x8134cf35}, - {0xe19fa0, 0x8134cf36}, - {0xe19fa1, 0x8134cf37}, - {0xe19fa2, 0x8134cf38}, - {0xe19fa3, 0x8134cf39}, - {0xe19fa4, 0x8134d030}, - {0xe19fa5, 0x8134d031}, - {0xe19fa6, 0x8134d032}, - {0xe19fa7, 0x8134d033}, - {0xe19fa8, 0x8134d034}, - {0xe19fa9, 0x8134d035}, - {0xe19faa, 0x8134d036}, - {0xe19fab, 0x8134d037}, - {0xe19fac, 0x8134d038}, - {0xe19fad, 0x8134d039}, - {0xe19fae, 0x8134d130}, - {0xe19faf, 0x8134d131}, - {0xe19fb0, 0x8134d132}, - {0xe19fb1, 0x8134d133}, - {0xe19fb2, 0x8134d134}, - {0xe19fb3, 0x8134d135}, - {0xe19fb4, 0x8134d136}, - {0xe19fb5, 0x8134d137}, - {0xe19fb6, 0x8134d138}, - {0xe19fb7, 0x8134d139}, - {0xe19fb8, 0x8134d230}, - {0xe19fb9, 0x8134d231}, - {0xe19fba, 0x8134d232}, - {0xe19fbb, 0x8134d233}, - {0xe19fbc, 0x8134d234}, - {0xe19fbd, 0x8134d235}, - {0xe19fbe, 0x8134d236}, - {0xe19fbf, 0x8134d237}, - {0xe1a080, 0x8134d238}, - {0xe1a081, 0x8134d239}, - {0xe1a082, 0x8134d330}, - {0xe1a083, 0x8134d331}, - {0xe1a084, 0x8134d332}, - {0xe1a085, 0x8134d333}, - {0xe1a086, 0x8134d334}, - {0xe1a087, 0x8134d335}, - {0xe1a088, 0x8134d336}, - {0xe1a089, 0x8134d337}, - {0xe1a08a, 0x8134d338}, - {0xe1a08b, 0x8134d339}, - {0xe1a08c, 0x8134d430}, - {0xe1a08d, 0x8134d431}, - {0xe1a08e, 0x8134d432}, - {0xe1a08f, 0x8134d433}, - {0xe1a090, 0x8134d434}, - {0xe1a091, 0x8134d435}, - {0xe1a092, 0x8134d436}, - {0xe1a093, 0x8134d437}, - {0xe1a094, 0x8134d438}, - {0xe1a095, 0x8134d439}, - {0xe1a096, 0x8134d530}, - {0xe1a097, 0x8134d531}, - {0xe1a098, 0x8134d532}, - {0xe1a099, 0x8134d533}, - {0xe1a09a, 0x8134d534}, - {0xe1a09b, 0x8134d535}, - {0xe1a09c, 0x8134d536}, - {0xe1a09d, 0x8134d537}, - {0xe1a09e, 0x8134d538}, - {0xe1a09f, 0x8134d539}, - {0xe1a0a0, 0x8134d630}, - {0xe1a0a1, 0x8134d631}, - {0xe1a0a2, 0x8134d632}, - {0xe1a0a3, 0x8134d633}, - {0xe1a0a4, 0x8134d634}, - {0xe1a0a5, 0x8134d635}, - {0xe1a0a6, 0x8134d636}, - {0xe1a0a7, 0x8134d637}, - {0xe1a0a8, 0x8134d638}, - {0xe1a0a9, 0x8134d639}, - {0xe1a0aa, 0x8134d730}, - {0xe1a0ab, 0x8134d731}, - {0xe1a0ac, 0x8134d732}, - {0xe1a0ad, 0x8134d733}, - {0xe1a0ae, 0x8134d734}, - {0xe1a0af, 0x8134d735}, - {0xe1a0b0, 0x8134d736}, - {0xe1a0b1, 0x8134d737}, - {0xe1a0b2, 0x8134d738}, - {0xe1a0b3, 0x8134d739}, - {0xe1a0b4, 0x8134d830}, - {0xe1a0b5, 0x8134d831}, - {0xe1a0b6, 0x8134d832}, - {0xe1a0b7, 0x8134d833}, - {0xe1a0b8, 0x8134d834}, - {0xe1a0b9, 0x8134d835}, - {0xe1a0ba, 0x8134d836}, - {0xe1a0bb, 0x8134d837}, - {0xe1a0bc, 0x8134d838}, - {0xe1a0bd, 0x8134d839}, - {0xe1a0be, 0x8134d930}, - {0xe1a0bf, 0x8134d931}, - {0xe1a180, 0x8134d932}, - {0xe1a181, 0x8134d933}, - {0xe1a182, 0x8134d934}, - {0xe1a183, 0x8134d935}, - {0xe1a184, 0x8134d936}, - {0xe1a185, 0x8134d937}, - {0xe1a186, 0x8134d938}, - {0xe1a187, 0x8134d939}, - {0xe1a188, 0x8134da30}, - {0xe1a189, 0x8134da31}, - {0xe1a18a, 0x8134da32}, - {0xe1a18b, 0x8134da33}, - {0xe1a18c, 0x8134da34}, - {0xe1a18d, 0x8134da35}, - {0xe1a18e, 0x8134da36}, - {0xe1a18f, 0x8134da37}, - {0xe1a190, 0x8134da38}, - {0xe1a191, 0x8134da39}, - {0xe1a192, 0x8134db30}, - {0xe1a193, 0x8134db31}, - {0xe1a194, 0x8134db32}, - {0xe1a195, 0x8134db33}, - {0xe1a196, 0x8134db34}, - {0xe1a197, 0x8134db35}, - {0xe1a198, 0x8134db36}, - {0xe1a199, 0x8134db37}, - {0xe1a19a, 0x8134db38}, - {0xe1a19b, 0x8134db39}, - {0xe1a19c, 0x8134dc30}, - {0xe1a19d, 0x8134dc31}, - {0xe1a19e, 0x8134dc32}, - {0xe1a19f, 0x8134dc33}, - {0xe1a1a0, 0x8134dc34}, - {0xe1a1a1, 0x8134dc35}, - {0xe1a1a2, 0x8134dc36}, - {0xe1a1a3, 0x8134dc37}, - {0xe1a1a4, 0x8134dc38}, - {0xe1a1a5, 0x8134dc39}, - {0xe1a1a6, 0x8134dd30}, - {0xe1a1a7, 0x8134dd31}, - {0xe1a1a8, 0x8134dd32}, - {0xe1a1a9, 0x8134dd33}, - {0xe1a1aa, 0x8134dd34}, - {0xe1a1ab, 0x8134dd35}, - {0xe1a1ac, 0x8134dd36}, - {0xe1a1ad, 0x8134dd37}, - {0xe1a1ae, 0x8134dd38}, - {0xe1a1af, 0x8134dd39}, - {0xe1a1b0, 0x8134de30}, - {0xe1a1b1, 0x8134de31}, - {0xe1a1b2, 0x8134de32}, - {0xe1a1b3, 0x8134de33}, - {0xe1a1b4, 0x8134de34}, - {0xe1a1b5, 0x8134de35}, - {0xe1a1b6, 0x8134de36}, - {0xe1a1b7, 0x8134de37}, - {0xe1a1b8, 0x8134de38}, - {0xe1a1b9, 0x8134de39}, - {0xe1a1ba, 0x8134df30}, - {0xe1a1bb, 0x8134df31}, - {0xe1a1bc, 0x8134df32}, - {0xe1a1bd, 0x8134df33}, - {0xe1a1be, 0x8134df34}, - {0xe1a1bf, 0x8134df35}, - {0xe1a280, 0x8134df36}, - {0xe1a281, 0x8134df37}, - {0xe1a282, 0x8134df38}, - {0xe1a283, 0x8134df39}, - {0xe1a284, 0x8134e030}, - {0xe1a285, 0x8134e031}, - {0xe1a286, 0x8134e032}, - {0xe1a287, 0x8134e033}, - {0xe1a288, 0x8134e034}, - {0xe1a289, 0x8134e035}, - {0xe1a28a, 0x8134e036}, - {0xe1a28b, 0x8134e037}, - {0xe1a28c, 0x8134e038}, - {0xe1a28d, 0x8134e039}, - {0xe1a28e, 0x8134e130}, - {0xe1a28f, 0x8134e131}, - {0xe1a290, 0x8134e132}, - {0xe1a291, 0x8134e133}, - {0xe1a292, 0x8134e134}, - {0xe1a293, 0x8134e135}, - {0xe1a294, 0x8134e136}, - {0xe1a295, 0x8134e137}, - {0xe1a296, 0x8134e138}, - {0xe1a297, 0x8134e139}, - {0xe1a298, 0x8134e230}, - {0xe1a299, 0x8134e231}, - {0xe1a29a, 0x8134e232}, - {0xe1a29b, 0x8134e233}, - {0xe1a29c, 0x8134e234}, - {0xe1a29d, 0x8134e235}, - {0xe1a29e, 0x8134e236}, - {0xe1a29f, 0x8134e237}, - {0xe1a2a0, 0x8134e238}, - {0xe1a2a1, 0x8134e239}, - {0xe1a2a2, 0x8134e330}, - {0xe1a2a3, 0x8134e331}, - {0xe1a2a4, 0x8134e332}, - {0xe1a2a5, 0x8134e333}, - {0xe1a2a6, 0x8134e334}, - {0xe1a2a7, 0x8134e335}, - {0xe1a2a8, 0x8134e336}, - {0xe1a2a9, 0x8134e337}, - {0xe1a2aa, 0x8134e338}, - {0xe1a2ab, 0x8134e339}, - {0xe1a2ac, 0x8134e430}, - {0xe1a2ad, 0x8134e431}, - {0xe1a2ae, 0x8134e432}, - {0xe1a2af, 0x8134e433}, - {0xe1a2b0, 0x8134e434}, - {0xe1a2b1, 0x8134e435}, - {0xe1a2b2, 0x8134e436}, - {0xe1a2b3, 0x8134e437}, - {0xe1a2b4, 0x8134e438}, - {0xe1a2b5, 0x8134e439}, - {0xe1a2b6, 0x8134e530}, - {0xe1a2b7, 0x8134e531}, - {0xe1a2b8, 0x8134e532}, - {0xe1a2b9, 0x8134e533}, - {0xe1a2ba, 0x8134e534}, - {0xe1a2bb, 0x8134e535}, - {0xe1a2bc, 0x8134e536}, - {0xe1a2bd, 0x8134e537}, - {0xe1a2be, 0x8134e538}, - {0xe1a2bf, 0x8134e539}, - {0xe1a380, 0x8134e630}, - {0xe1a381, 0x8134e631}, - {0xe1a382, 0x8134e632}, - {0xe1a383, 0x8134e633}, - {0xe1a384, 0x8134e634}, - {0xe1a385, 0x8134e635}, - {0xe1a386, 0x8134e636}, - {0xe1a387, 0x8134e637}, - {0xe1a388, 0x8134e638}, - {0xe1a389, 0x8134e639}, - {0xe1a38a, 0x8134e730}, - {0xe1a38b, 0x8134e731}, - {0xe1a38c, 0x8134e732}, - {0xe1a38d, 0x8134e733}, - {0xe1a38e, 0x8134e734}, - {0xe1a38f, 0x8134e735}, - {0xe1a390, 0x8134e736}, - {0xe1a391, 0x8134e737}, - {0xe1a392, 0x8134e738}, - {0xe1a393, 0x8134e739}, - {0xe1a394, 0x8134e830}, - {0xe1a395, 0x8134e831}, - {0xe1a396, 0x8134e832}, - {0xe1a397, 0x8134e833}, - {0xe1a398, 0x8134e834}, - {0xe1a399, 0x8134e835}, - {0xe1a39a, 0x8134e836}, - {0xe1a39b, 0x8134e837}, - {0xe1a39c, 0x8134e838}, - {0xe1a39d, 0x8134e839}, - {0xe1a39e, 0x8134e930}, - {0xe1a39f, 0x8134e931}, - {0xe1a3a0, 0x8134e932}, - {0xe1a3a1, 0x8134e933}, - {0xe1a3a2, 0x8134e934}, - {0xe1a3a3, 0x8134e935}, - {0xe1a3a4, 0x8134e936}, - {0xe1a3a5, 0x8134e937}, - {0xe1a3a6, 0x8134e938}, - {0xe1a3a7, 0x8134e939}, - {0xe1a3a8, 0x8134ea30}, - {0xe1a3a9, 0x8134ea31}, - {0xe1a3aa, 0x8134ea32}, - {0xe1a3ab, 0x8134ea33}, - {0xe1a3ac, 0x8134ea34}, - {0xe1a3ad, 0x8134ea35}, - {0xe1a3ae, 0x8134ea36}, - {0xe1a3af, 0x8134ea37}, - {0xe1a3b0, 0x8134ea38}, - {0xe1a3b1, 0x8134ea39}, - {0xe1a3b2, 0x8134eb30}, - {0xe1a3b3, 0x8134eb31}, - {0xe1a3b4, 0x8134eb32}, - {0xe1a3b5, 0x8134eb33}, - {0xe1a3b6, 0x8134eb34}, - {0xe1a3b7, 0x8134eb35}, - {0xe1a3b8, 0x8134eb36}, - {0xe1a3b9, 0x8134eb37}, - {0xe1a3ba, 0x8134eb38}, - {0xe1a3bb, 0x8134eb39}, - {0xe1a3bc, 0x8134ec30}, - {0xe1a3bd, 0x8134ec31}, - {0xe1a3be, 0x8134ec32}, - {0xe1a3bf, 0x8134ec33}, - {0xe1a480, 0x8134ec34}, - {0xe1a481, 0x8134ec35}, - {0xe1a482, 0x8134ec36}, - {0xe1a483, 0x8134ec37}, - {0xe1a484, 0x8134ec38}, - {0xe1a485, 0x8134ec39}, - {0xe1a486, 0x8134ed30}, - {0xe1a487, 0x8134ed31}, - {0xe1a488, 0x8134ed32}, - {0xe1a489, 0x8134ed33}, - {0xe1a48a, 0x8134ed34}, - {0xe1a48b, 0x8134ed35}, - {0xe1a48c, 0x8134ed36}, - {0xe1a48d, 0x8134ed37}, - {0xe1a48e, 0x8134ed38}, - {0xe1a48f, 0x8134ed39}, - {0xe1a490, 0x8134ee30}, - {0xe1a491, 0x8134ee31}, - {0xe1a492, 0x8134ee32}, - {0xe1a493, 0x8134ee33}, - {0xe1a494, 0x8134ee34}, - {0xe1a495, 0x8134ee35}, - {0xe1a496, 0x8134ee36}, - {0xe1a497, 0x8134ee37}, - {0xe1a498, 0x8134ee38}, - {0xe1a499, 0x8134ee39}, - {0xe1a49a, 0x8134ef30}, - {0xe1a49b, 0x8134ef31}, - {0xe1a49c, 0x8134ef32}, - {0xe1a49d, 0x8134ef33}, - {0xe1a49e, 0x8134ef34}, - {0xe1a49f, 0x8134ef35}, - {0xe1a4a0, 0x8134ef36}, - {0xe1a4a1, 0x8134ef37}, - {0xe1a4a2, 0x8134ef38}, - {0xe1a4a3, 0x8134ef39}, - {0xe1a4a4, 0x8134f030}, - {0xe1a4a5, 0x8134f031}, - {0xe1a4a6, 0x8134f032}, - {0xe1a4a7, 0x8134f033}, - {0xe1a4a8, 0x8134f034}, - {0xe1a4a9, 0x8134f035}, - {0xe1a4aa, 0x8134f036}, - {0xe1a4ab, 0x8134f037}, - {0xe1a4ac, 0x8134f038}, - {0xe1a4ad, 0x8134f039}, - {0xe1a4ae, 0x8134f130}, - {0xe1a4af, 0x8134f131}, - {0xe1a4b0, 0x8134f132}, - {0xe1a4b1, 0x8134f133}, - {0xe1a4b2, 0x8134f134}, - {0xe1a4b3, 0x8134f135}, - {0xe1a4b4, 0x8134f136}, - {0xe1a4b5, 0x8134f137}, - {0xe1a4b6, 0x8134f138}, - {0xe1a4b7, 0x8134f139}, - {0xe1a4b8, 0x8134f230}, - {0xe1a4b9, 0x8134f231}, - {0xe1a4ba, 0x8134f232}, - {0xe1a4bb, 0x8134f233}, - {0xe1a4bc, 0x8134f234}, - {0xe1a4bd, 0x8134f235}, - {0xe1a4be, 0x8134f236}, - {0xe1a4bf, 0x8134f237}, - {0xe1a580, 0x8134f238}, - {0xe1a581, 0x8134f239}, - {0xe1a582, 0x8134f330}, - {0xe1a583, 0x8134f331}, - {0xe1a584, 0x8134f332}, - {0xe1a585, 0x8134f333}, - {0xe1a586, 0x8134f334}, - {0xe1a587, 0x8134f335}, - {0xe1a588, 0x8134f336}, - {0xe1a589, 0x8134f337}, - {0xe1a58a, 0x8134f338}, - {0xe1a58b, 0x8134f339}, - {0xe1a58c, 0x8134f430}, - {0xe1a58d, 0x8134f431}, - {0xe1a58e, 0x8134f432}, - {0xe1a58f, 0x8134f433}, - {0xe1a590, 0x8134f434}, - {0xe1a591, 0x8134f435}, - {0xe1a592, 0x8134f436}, - {0xe1a593, 0x8134f437}, - {0xe1a594, 0x8134f438}, - {0xe1a595, 0x8134f439}, - {0xe1a596, 0x8134f530}, - {0xe1a597, 0x8134f531}, - {0xe1a598, 0x8134f532}, - {0xe1a599, 0x8134f533}, - {0xe1a59a, 0x8134f534}, - {0xe1a59b, 0x8134f535}, - {0xe1a59c, 0x8134f536}, - {0xe1a59d, 0x8134f537}, - {0xe1a59e, 0x8134f538}, - {0xe1a59f, 0x8134f539}, - {0xe1a5a0, 0x8134f630}, - {0xe1a5a1, 0x8134f631}, - {0xe1a5a2, 0x8134f632}, - {0xe1a5a3, 0x8134f633}, - {0xe1a5a4, 0x8134f634}, - {0xe1a5a5, 0x8134f635}, - {0xe1a5a6, 0x8134f636}, - {0xe1a5a7, 0x8134f637}, - {0xe1a5a8, 0x8134f638}, - {0xe1a5a9, 0x8134f639}, - {0xe1a5aa, 0x8134f730}, - {0xe1a5ab, 0x8134f731}, - {0xe1a5ac, 0x8134f732}, - {0xe1a5ad, 0x8134f733}, - {0xe1a5ae, 0x8134f734}, - {0xe1a5af, 0x8134f735}, - {0xe1a5b0, 0x8134f736}, - {0xe1a5b1, 0x8134f737}, - {0xe1a5b2, 0x8134f738}, - {0xe1a5b3, 0x8134f739}, - {0xe1a5b4, 0x8134f830}, - {0xe1a5b5, 0x8134f831}, - {0xe1a5b6, 0x8134f832}, - {0xe1a5b7, 0x8134f833}, - {0xe1a5b8, 0x8134f834}, - {0xe1a5b9, 0x8134f835}, - {0xe1a5ba, 0x8134f836}, - {0xe1a5bb, 0x8134f837}, - {0xe1a5bc, 0x8134f838}, - {0xe1a5bd, 0x8134f839}, - {0xe1a5be, 0x8134f930}, - {0xe1a5bf, 0x8134f931}, - {0xe1a680, 0x8134f932}, - {0xe1a681, 0x8134f933}, - {0xe1a682, 0x8134f934}, - {0xe1a683, 0x8134f935}, - {0xe1a684, 0x8134f936}, - {0xe1a685, 0x8134f937}, - {0xe1a686, 0x8134f938}, - {0xe1a687, 0x8134f939}, - {0xe1a688, 0x8134fa30}, - {0xe1a689, 0x8134fa31}, - {0xe1a68a, 0x8134fa32}, - {0xe1a68b, 0x8134fa33}, - {0xe1a68c, 0x8134fa34}, - {0xe1a68d, 0x8134fa35}, - {0xe1a68e, 0x8134fa36}, - {0xe1a68f, 0x8134fa37}, - {0xe1a690, 0x8134fa38}, - {0xe1a691, 0x8134fa39}, - {0xe1a692, 0x8134fb30}, - {0xe1a693, 0x8134fb31}, - {0xe1a694, 0x8134fb32}, - {0xe1a695, 0x8134fb33}, - {0xe1a696, 0x8134fb34}, - {0xe1a697, 0x8134fb35}, - {0xe1a698, 0x8134fb36}, - {0xe1a699, 0x8134fb37}, - {0xe1a69a, 0x8134fb38}, - {0xe1a69b, 0x8134fb39}, - {0xe1a69c, 0x8134fc30}, - {0xe1a69d, 0x8134fc31}, - {0xe1a69e, 0x8134fc32}, - {0xe1a69f, 0x8134fc33}, - {0xe1a6a0, 0x8134fc34}, - {0xe1a6a1, 0x8134fc35}, - {0xe1a6a2, 0x8134fc36}, - {0xe1a6a3, 0x8134fc37}, - {0xe1a6a4, 0x8134fc38}, - {0xe1a6a5, 0x8134fc39}, - {0xe1a6a6, 0x8134fd30}, - {0xe1a6a7, 0x8134fd31}, - {0xe1a6a8, 0x8134fd32}, - {0xe1a6a9, 0x8134fd33}, - {0xe1a6aa, 0x8134fd34}, - {0xe1a6ab, 0x8134fd35}, - {0xe1a6ac, 0x8134fd36}, - {0xe1a6ad, 0x8134fd37}, - {0xe1a6ae, 0x8134fd38}, - {0xe1a6af, 0x8134fd39}, - {0xe1a6b0, 0x8134fe30}, - {0xe1a6b1, 0x8134fe31}, - {0xe1a6b2, 0x8134fe32}, - {0xe1a6b3, 0x8134fe33}, - {0xe1a6b4, 0x8134fe34}, - {0xe1a6b5, 0x8134fe35}, - {0xe1a6b6, 0x8134fe36}, - {0xe1a6b7, 0x8134fe37}, - {0xe1a6b8, 0x8134fe38}, - {0xe1a6b9, 0x8134fe39}, - {0xe1a6ba, 0x81358130}, - {0xe1a6bb, 0x81358131}, - {0xe1a6bc, 0x81358132}, - {0xe1a6bd, 0x81358133}, - {0xe1a6be, 0x81358134}, - {0xe1a6bf, 0x81358135}, - {0xe1a780, 0x81358136}, - {0xe1a781, 0x81358137}, - {0xe1a782, 0x81358138}, - {0xe1a783, 0x81358139}, - {0xe1a784, 0x81358230}, - {0xe1a785, 0x81358231}, - {0xe1a786, 0x81358232}, - {0xe1a787, 0x81358233}, - {0xe1a788, 0x81358234}, - {0xe1a789, 0x81358235}, - {0xe1a78a, 0x81358236}, - {0xe1a78b, 0x81358237}, - {0xe1a78c, 0x81358238}, - {0xe1a78d, 0x81358239}, - {0xe1a78e, 0x81358330}, - {0xe1a78f, 0x81358331}, - {0xe1a790, 0x81358332}, - {0xe1a791, 0x81358333}, - {0xe1a792, 0x81358334}, - {0xe1a793, 0x81358335}, - {0xe1a794, 0x81358336}, - {0xe1a795, 0x81358337}, - {0xe1a796, 0x81358338}, - {0xe1a797, 0x81358339}, - {0xe1a798, 0x81358430}, - {0xe1a799, 0x81358431}, - {0xe1a79a, 0x81358432}, - {0xe1a79b, 0x81358433}, - {0xe1a79c, 0x81358434}, - {0xe1a79d, 0x81358435}, - {0xe1a79e, 0x81358436}, - {0xe1a79f, 0x81358437}, - {0xe1a7a0, 0x81358438}, - {0xe1a7a1, 0x81358439}, - {0xe1a7a2, 0x81358530}, - {0xe1a7a3, 0x81358531}, - {0xe1a7a4, 0x81358532}, - {0xe1a7a5, 0x81358533}, - {0xe1a7a6, 0x81358534}, - {0xe1a7a7, 0x81358535}, - {0xe1a7a8, 0x81358536}, - {0xe1a7a9, 0x81358537}, - {0xe1a7aa, 0x81358538}, - {0xe1a7ab, 0x81358539}, - {0xe1a7ac, 0x81358630}, - {0xe1a7ad, 0x81358631}, - {0xe1a7ae, 0x81358632}, - {0xe1a7af, 0x81358633}, - {0xe1a7b0, 0x81358634}, - {0xe1a7b1, 0x81358635}, - {0xe1a7b2, 0x81358636}, - {0xe1a7b3, 0x81358637}, - {0xe1a7b4, 0x81358638}, - {0xe1a7b5, 0x81358639}, - {0xe1a7b6, 0x81358730}, - {0xe1a7b7, 0x81358731}, - {0xe1a7b8, 0x81358732}, - {0xe1a7b9, 0x81358733}, - {0xe1a7ba, 0x81358734}, - {0xe1a7bb, 0x81358735}, - {0xe1a7bc, 0x81358736}, - {0xe1a7bd, 0x81358737}, - {0xe1a7be, 0x81358738}, - {0xe1a7bf, 0x81358739}, - {0xe1a880, 0x81358830}, - {0xe1a881, 0x81358831}, - {0xe1a882, 0x81358832}, - {0xe1a883, 0x81358833}, - {0xe1a884, 0x81358834}, - {0xe1a885, 0x81358835}, - {0xe1a886, 0x81358836}, - {0xe1a887, 0x81358837}, - {0xe1a888, 0x81358838}, - {0xe1a889, 0x81358839}, - {0xe1a88a, 0x81358930}, - {0xe1a88b, 0x81358931}, - {0xe1a88c, 0x81358932}, - {0xe1a88d, 0x81358933}, - {0xe1a88e, 0x81358934}, - {0xe1a88f, 0x81358935}, - {0xe1a890, 0x81358936}, - {0xe1a891, 0x81358937}, - {0xe1a892, 0x81358938}, - {0xe1a893, 0x81358939}, - {0xe1a894, 0x81358a30}, - {0xe1a895, 0x81358a31}, - {0xe1a896, 0x81358a32}, - {0xe1a897, 0x81358a33}, - {0xe1a898, 0x81358a34}, - {0xe1a899, 0x81358a35}, - {0xe1a89a, 0x81358a36}, - {0xe1a89b, 0x81358a37}, - {0xe1a89c, 0x81358a38}, - {0xe1a89d, 0x81358a39}, - {0xe1a89e, 0x81358b30}, - {0xe1a89f, 0x81358b31}, - {0xe1a8a0, 0x81358b32}, - {0xe1a8a1, 0x81358b33}, - {0xe1a8a2, 0x81358b34}, - {0xe1a8a3, 0x81358b35}, - {0xe1a8a4, 0x81358b36}, - {0xe1a8a5, 0x81358b37}, - {0xe1a8a6, 0x81358b38}, - {0xe1a8a7, 0x81358b39}, - {0xe1a8a8, 0x81358c30}, - {0xe1a8a9, 0x81358c31}, - {0xe1a8aa, 0x81358c32}, - {0xe1a8ab, 0x81358c33}, - {0xe1a8ac, 0x81358c34}, - {0xe1a8ad, 0x81358c35}, - {0xe1a8ae, 0x81358c36}, - {0xe1a8af, 0x81358c37}, - {0xe1a8b0, 0x81358c38}, - {0xe1a8b1, 0x81358c39}, - {0xe1a8b2, 0x81358d30}, - {0xe1a8b3, 0x81358d31}, - {0xe1a8b4, 0x81358d32}, - {0xe1a8b5, 0x81358d33}, - {0xe1a8b6, 0x81358d34}, - {0xe1a8b7, 0x81358d35}, - {0xe1a8b8, 0x81358d36}, - {0xe1a8b9, 0x81358d37}, - {0xe1a8ba, 0x81358d38}, - {0xe1a8bb, 0x81358d39}, - {0xe1a8bc, 0x81358e30}, - {0xe1a8bd, 0x81358e31}, - {0xe1a8be, 0x81358e32}, - {0xe1a8bf, 0x81358e33}, - {0xe1a980, 0x81358e34}, - {0xe1a981, 0x81358e35}, - {0xe1a982, 0x81358e36}, - {0xe1a983, 0x81358e37}, - {0xe1a984, 0x81358e38}, - {0xe1a985, 0x81358e39}, - {0xe1a986, 0x81358f30}, - {0xe1a987, 0x81358f31}, - {0xe1a988, 0x81358f32}, - {0xe1a989, 0x81358f33}, - {0xe1a98a, 0x81358f34}, - {0xe1a98b, 0x81358f35}, - {0xe1a98c, 0x81358f36}, - {0xe1a98d, 0x81358f37}, - {0xe1a98e, 0x81358f38}, - {0xe1a98f, 0x81358f39}, - {0xe1a990, 0x81359030}, - {0xe1a991, 0x81359031}, - {0xe1a992, 0x81359032}, - {0xe1a993, 0x81359033}, - {0xe1a994, 0x81359034}, - {0xe1a995, 0x81359035}, - {0xe1a996, 0x81359036}, - {0xe1a997, 0x81359037}, - {0xe1a998, 0x81359038}, - {0xe1a999, 0x81359039}, - {0xe1a99a, 0x81359130}, - {0xe1a99b, 0x81359131}, - {0xe1a99c, 0x81359132}, - {0xe1a99d, 0x81359133}, - {0xe1a99e, 0x81359134}, - {0xe1a99f, 0x81359135}, - {0xe1a9a0, 0x81359136}, - {0xe1a9a1, 0x81359137}, - {0xe1a9a2, 0x81359138}, - {0xe1a9a3, 0x81359139}, - {0xe1a9a4, 0x81359230}, - {0xe1a9a5, 0x81359231}, - {0xe1a9a6, 0x81359232}, - {0xe1a9a7, 0x81359233}, - {0xe1a9a8, 0x81359234}, - {0xe1a9a9, 0x81359235}, - {0xe1a9aa, 0x81359236}, - {0xe1a9ab, 0x81359237}, - {0xe1a9ac, 0x81359238}, - {0xe1a9ad, 0x81359239}, - {0xe1a9ae, 0x81359330}, - {0xe1a9af, 0x81359331}, - {0xe1a9b0, 0x81359332}, - {0xe1a9b1, 0x81359333}, - {0xe1a9b2, 0x81359334}, - {0xe1a9b3, 0x81359335}, - {0xe1a9b4, 0x81359336}, - {0xe1a9b5, 0x81359337}, - {0xe1a9b6, 0x81359338}, - {0xe1a9b7, 0x81359339}, - {0xe1a9b8, 0x81359430}, - {0xe1a9b9, 0x81359431}, - {0xe1a9ba, 0x81359432}, - {0xe1a9bb, 0x81359433}, - {0xe1a9bc, 0x81359434}, - {0xe1a9bd, 0x81359435}, - {0xe1a9be, 0x81359436}, - {0xe1a9bf, 0x81359437}, - {0xe1aa80, 0x81359438}, - {0xe1aa81, 0x81359439}, - {0xe1aa82, 0x81359530}, - {0xe1aa83, 0x81359531}, - {0xe1aa84, 0x81359532}, - {0xe1aa85, 0x81359533}, - {0xe1aa86, 0x81359534}, - {0xe1aa87, 0x81359535}, - {0xe1aa88, 0x81359536}, - {0xe1aa89, 0x81359537}, - {0xe1aa8a, 0x81359538}, - {0xe1aa8b, 0x81359539}, - {0xe1aa8c, 0x81359630}, - {0xe1aa8d, 0x81359631}, - {0xe1aa8e, 0x81359632}, - {0xe1aa8f, 0x81359633}, - {0xe1aa90, 0x81359634}, - {0xe1aa91, 0x81359635}, - {0xe1aa92, 0x81359636}, - {0xe1aa93, 0x81359637}, - {0xe1aa94, 0x81359638}, - {0xe1aa95, 0x81359639}, - {0xe1aa96, 0x81359730}, - {0xe1aa97, 0x81359731}, - {0xe1aa98, 0x81359732}, - {0xe1aa99, 0x81359733}, - {0xe1aa9a, 0x81359734}, - {0xe1aa9b, 0x81359735}, - {0xe1aa9c, 0x81359736}, - {0xe1aa9d, 0x81359737}, - {0xe1aa9e, 0x81359738}, - {0xe1aa9f, 0x81359739}, - {0xe1aaa0, 0x81359830}, - {0xe1aaa1, 0x81359831}, - {0xe1aaa2, 0x81359832}, - {0xe1aaa3, 0x81359833}, - {0xe1aaa4, 0x81359834}, - {0xe1aaa5, 0x81359835}, - {0xe1aaa6, 0x81359836}, - {0xe1aaa7, 0x81359837}, - {0xe1aaa8, 0x81359838}, - {0xe1aaa9, 0x81359839}, - {0xe1aaaa, 0x81359930}, - {0xe1aaab, 0x81359931}, - {0xe1aaac, 0x81359932}, - {0xe1aaad, 0x81359933}, - {0xe1aaae, 0x81359934}, - {0xe1aaaf, 0x81359935}, - {0xe1aab0, 0x81359936}, - {0xe1aab1, 0x81359937}, - {0xe1aab2, 0x81359938}, - {0xe1aab3, 0x81359939}, - {0xe1aab4, 0x81359a30}, - {0xe1aab5, 0x81359a31}, - {0xe1aab6, 0x81359a32}, - {0xe1aab7, 0x81359a33}, - {0xe1aab8, 0x81359a34}, - {0xe1aab9, 0x81359a35}, - {0xe1aaba, 0x81359a36}, - {0xe1aabb, 0x81359a37}, - {0xe1aabc, 0x81359a38}, - {0xe1aabd, 0x81359a39}, - {0xe1aabe, 0x81359b30}, - {0xe1aabf, 0x81359b31}, - {0xe1ab80, 0x81359b32}, - {0xe1ab81, 0x81359b33}, - {0xe1ab82, 0x81359b34}, - {0xe1ab83, 0x81359b35}, - {0xe1ab84, 0x81359b36}, - {0xe1ab85, 0x81359b37}, - {0xe1ab86, 0x81359b38}, - {0xe1ab87, 0x81359b39}, - {0xe1ab88, 0x81359c30}, - {0xe1ab89, 0x81359c31}, - {0xe1ab8a, 0x81359c32}, - {0xe1ab8b, 0x81359c33}, - {0xe1ab8c, 0x81359c34}, - {0xe1ab8d, 0x81359c35}, - {0xe1ab8e, 0x81359c36}, - {0xe1ab8f, 0x81359c37}, - {0xe1ab90, 0x81359c38}, - {0xe1ab91, 0x81359c39}, - {0xe1ab92, 0x81359d30}, - {0xe1ab93, 0x81359d31}, - {0xe1ab94, 0x81359d32}, - {0xe1ab95, 0x81359d33}, - {0xe1ab96, 0x81359d34}, - {0xe1ab97, 0x81359d35}, - {0xe1ab98, 0x81359d36}, - {0xe1ab99, 0x81359d37}, - {0xe1ab9a, 0x81359d38}, - {0xe1ab9b, 0x81359d39}, - {0xe1ab9c, 0x81359e30}, - {0xe1ab9d, 0x81359e31}, - {0xe1ab9e, 0x81359e32}, - {0xe1ab9f, 0x81359e33}, - {0xe1aba0, 0x81359e34}, - {0xe1aba1, 0x81359e35}, - {0xe1aba2, 0x81359e36}, - {0xe1aba3, 0x81359e37}, - {0xe1aba4, 0x81359e38}, - {0xe1aba5, 0x81359e39}, - {0xe1aba6, 0x81359f30}, - {0xe1aba7, 0x81359f31}, - {0xe1aba8, 0x81359f32}, - {0xe1aba9, 0x81359f33}, - {0xe1abaa, 0x81359f34}, - {0xe1abab, 0x81359f35}, - {0xe1abac, 0x81359f36}, - {0xe1abad, 0x81359f37}, - {0xe1abae, 0x81359f38}, - {0xe1abaf, 0x81359f39}, - {0xe1abb0, 0x8135a030}, - {0xe1abb1, 0x8135a031}, - {0xe1abb2, 0x8135a032}, - {0xe1abb3, 0x8135a033}, - {0xe1abb4, 0x8135a034}, - {0xe1abb5, 0x8135a035}, - {0xe1abb6, 0x8135a036}, - {0xe1abb7, 0x8135a037}, - {0xe1abb8, 0x8135a038}, - {0xe1abb9, 0x8135a039}, - {0xe1abba, 0x8135a130}, - {0xe1abbb, 0x8135a131}, - {0xe1abbc, 0x8135a132}, - {0xe1abbd, 0x8135a133}, - {0xe1abbe, 0x8135a134}, - {0xe1abbf, 0x8135a135}, - {0xe1ac80, 0x8135a136}, - {0xe1ac81, 0x8135a137}, - {0xe1ac82, 0x8135a138}, - {0xe1ac83, 0x8135a139}, - {0xe1ac84, 0x8135a230}, - {0xe1ac85, 0x8135a231}, - {0xe1ac86, 0x8135a232}, - {0xe1ac87, 0x8135a233}, - {0xe1ac88, 0x8135a234}, - {0xe1ac89, 0x8135a235}, - {0xe1ac8a, 0x8135a236}, - {0xe1ac8b, 0x8135a237}, - {0xe1ac8c, 0x8135a238}, - {0xe1ac8d, 0x8135a239}, - {0xe1ac8e, 0x8135a330}, - {0xe1ac8f, 0x8135a331}, - {0xe1ac90, 0x8135a332}, - {0xe1ac91, 0x8135a333}, - {0xe1ac92, 0x8135a334}, - {0xe1ac93, 0x8135a335}, - {0xe1ac94, 0x8135a336}, - {0xe1ac95, 0x8135a337}, - {0xe1ac96, 0x8135a338}, - {0xe1ac97, 0x8135a339}, - {0xe1ac98, 0x8135a430}, - {0xe1ac99, 0x8135a431}, - {0xe1ac9a, 0x8135a432}, - {0xe1ac9b, 0x8135a433}, - {0xe1ac9c, 0x8135a434}, - {0xe1ac9d, 0x8135a435}, - {0xe1ac9e, 0x8135a436}, - {0xe1ac9f, 0x8135a437}, - {0xe1aca0, 0x8135a438}, - {0xe1aca1, 0x8135a439}, - {0xe1aca2, 0x8135a530}, - {0xe1aca3, 0x8135a531}, - {0xe1aca4, 0x8135a532}, - {0xe1aca5, 0x8135a533}, - {0xe1aca6, 0x8135a534}, - {0xe1aca7, 0x8135a535}, - {0xe1aca8, 0x8135a536}, - {0xe1aca9, 0x8135a537}, - {0xe1acaa, 0x8135a538}, - {0xe1acab, 0x8135a539}, - {0xe1acac, 0x8135a630}, - {0xe1acad, 0x8135a631}, - {0xe1acae, 0x8135a632}, - {0xe1acaf, 0x8135a633}, - {0xe1acb0, 0x8135a634}, - {0xe1acb1, 0x8135a635}, - {0xe1acb2, 0x8135a636}, - {0xe1acb3, 0x8135a637}, - {0xe1acb4, 0x8135a638}, - {0xe1acb5, 0x8135a639}, - {0xe1acb6, 0x8135a730}, - {0xe1acb7, 0x8135a731}, - {0xe1acb8, 0x8135a732}, - {0xe1acb9, 0x8135a733}, - {0xe1acba, 0x8135a734}, - {0xe1acbb, 0x8135a735}, - {0xe1acbc, 0x8135a736}, - {0xe1acbd, 0x8135a737}, - {0xe1acbe, 0x8135a738}, - {0xe1acbf, 0x8135a739}, - {0xe1ad80, 0x8135a830}, - {0xe1ad81, 0x8135a831}, - {0xe1ad82, 0x8135a832}, - {0xe1ad83, 0x8135a833}, - {0xe1ad84, 0x8135a834}, - {0xe1ad85, 0x8135a835}, - {0xe1ad86, 0x8135a836}, - {0xe1ad87, 0x8135a837}, - {0xe1ad88, 0x8135a838}, - {0xe1ad89, 0x8135a839}, - {0xe1ad8a, 0x8135a930}, - {0xe1ad8b, 0x8135a931}, - {0xe1ad8c, 0x8135a932}, - {0xe1ad8d, 0x8135a933}, - {0xe1ad8e, 0x8135a934}, - {0xe1ad8f, 0x8135a935}, - {0xe1ad90, 0x8135a936}, - {0xe1ad91, 0x8135a937}, - {0xe1ad92, 0x8135a938}, - {0xe1ad93, 0x8135a939}, - {0xe1ad94, 0x8135aa30}, - {0xe1ad95, 0x8135aa31}, - {0xe1ad96, 0x8135aa32}, - {0xe1ad97, 0x8135aa33}, - {0xe1ad98, 0x8135aa34}, - {0xe1ad99, 0x8135aa35}, - {0xe1ad9a, 0x8135aa36}, - {0xe1ad9b, 0x8135aa37}, - {0xe1ad9c, 0x8135aa38}, - {0xe1ad9d, 0x8135aa39}, - {0xe1ad9e, 0x8135ab30}, - {0xe1ad9f, 0x8135ab31}, - {0xe1ada0, 0x8135ab32}, - {0xe1ada1, 0x8135ab33}, - {0xe1ada2, 0x8135ab34}, - {0xe1ada3, 0x8135ab35}, - {0xe1ada4, 0x8135ab36}, - {0xe1ada5, 0x8135ab37}, - {0xe1ada6, 0x8135ab38}, - {0xe1ada7, 0x8135ab39}, - {0xe1ada8, 0x8135ac30}, - {0xe1ada9, 0x8135ac31}, - {0xe1adaa, 0x8135ac32}, - {0xe1adab, 0x8135ac33}, - {0xe1adac, 0x8135ac34}, - {0xe1adad, 0x8135ac35}, - {0xe1adae, 0x8135ac36}, - {0xe1adaf, 0x8135ac37}, - {0xe1adb0, 0x8135ac38}, - {0xe1adb1, 0x8135ac39}, - {0xe1adb2, 0x8135ad30}, - {0xe1adb3, 0x8135ad31}, - {0xe1adb4, 0x8135ad32}, - {0xe1adb5, 0x8135ad33}, - {0xe1adb6, 0x8135ad34}, - {0xe1adb7, 0x8135ad35}, - {0xe1adb8, 0x8135ad36}, - {0xe1adb9, 0x8135ad37}, - {0xe1adba, 0x8135ad38}, - {0xe1adbb, 0x8135ad39}, - {0xe1adbc, 0x8135ae30}, - {0xe1adbd, 0x8135ae31}, - {0xe1adbe, 0x8135ae32}, - {0xe1adbf, 0x8135ae33}, - {0xe1ae80, 0x8135ae34}, - {0xe1ae81, 0x8135ae35}, - {0xe1ae82, 0x8135ae36}, - {0xe1ae83, 0x8135ae37}, - {0xe1ae84, 0x8135ae38}, - {0xe1ae85, 0x8135ae39}, - {0xe1ae86, 0x8135af30}, - {0xe1ae87, 0x8135af31}, - {0xe1ae88, 0x8135af32}, - {0xe1ae89, 0x8135af33}, - {0xe1ae8a, 0x8135af34}, - {0xe1ae8b, 0x8135af35}, - {0xe1ae8c, 0x8135af36}, - {0xe1ae8d, 0x8135af37}, - {0xe1ae8e, 0x8135af38}, - {0xe1ae8f, 0x8135af39}, - {0xe1ae90, 0x8135b030}, - {0xe1ae91, 0x8135b031}, - {0xe1ae92, 0x8135b032}, - {0xe1ae93, 0x8135b033}, - {0xe1ae94, 0x8135b034}, - {0xe1ae95, 0x8135b035}, - {0xe1ae96, 0x8135b036}, - {0xe1ae97, 0x8135b037}, - {0xe1ae98, 0x8135b038}, - {0xe1ae99, 0x8135b039}, - {0xe1ae9a, 0x8135b130}, - {0xe1ae9b, 0x8135b131}, - {0xe1ae9c, 0x8135b132}, - {0xe1ae9d, 0x8135b133}, - {0xe1ae9e, 0x8135b134}, - {0xe1ae9f, 0x8135b135}, - {0xe1aea0, 0x8135b136}, - {0xe1aea1, 0x8135b137}, - {0xe1aea2, 0x8135b138}, - {0xe1aea3, 0x8135b139}, - {0xe1aea4, 0x8135b230}, - {0xe1aea5, 0x8135b231}, - {0xe1aea6, 0x8135b232}, - {0xe1aea7, 0x8135b233}, - {0xe1aea8, 0x8135b234}, - {0xe1aea9, 0x8135b235}, - {0xe1aeaa, 0x8135b236}, - {0xe1aeab, 0x8135b237}, - {0xe1aeac, 0x8135b238}, - {0xe1aead, 0x8135b239}, - {0xe1aeae, 0x8135b330}, - {0xe1aeaf, 0x8135b331}, - {0xe1aeb0, 0x8135b332}, - {0xe1aeb1, 0x8135b333}, - {0xe1aeb2, 0x8135b334}, - {0xe1aeb3, 0x8135b335}, - {0xe1aeb4, 0x8135b336}, - {0xe1aeb5, 0x8135b337}, - {0xe1aeb6, 0x8135b338}, - {0xe1aeb7, 0x8135b339}, - {0xe1aeb8, 0x8135b430}, - {0xe1aeb9, 0x8135b431}, - {0xe1aeba, 0x8135b432}, - {0xe1aebb, 0x8135b433}, - {0xe1aebc, 0x8135b434}, - {0xe1aebd, 0x8135b435}, - {0xe1aebe, 0x8135b436}, - {0xe1aebf, 0x8135b437}, - {0xe1af80, 0x8135b438}, - {0xe1af81, 0x8135b439}, - {0xe1af82, 0x8135b530}, - {0xe1af83, 0x8135b531}, - {0xe1af84, 0x8135b532}, - {0xe1af85, 0x8135b533}, - {0xe1af86, 0x8135b534}, - {0xe1af87, 0x8135b535}, - {0xe1af88, 0x8135b536}, - {0xe1af89, 0x8135b537}, - {0xe1af8a, 0x8135b538}, - {0xe1af8b, 0x8135b539}, - {0xe1af8c, 0x8135b630}, - {0xe1af8d, 0x8135b631}, - {0xe1af8e, 0x8135b632}, - {0xe1af8f, 0x8135b633}, - {0xe1af90, 0x8135b634}, - {0xe1af91, 0x8135b635}, - {0xe1af92, 0x8135b636}, - {0xe1af93, 0x8135b637}, - {0xe1af94, 0x8135b638}, - {0xe1af95, 0x8135b639}, - {0xe1af96, 0x8135b730}, - {0xe1af97, 0x8135b731}, - {0xe1af98, 0x8135b732}, - {0xe1af99, 0x8135b733}, - {0xe1af9a, 0x8135b734}, - {0xe1af9b, 0x8135b735}, - {0xe1af9c, 0x8135b736}, - {0xe1af9d, 0x8135b737}, - {0xe1af9e, 0x8135b738}, - {0xe1af9f, 0x8135b739}, - {0xe1afa0, 0x8135b830}, - {0xe1afa1, 0x8135b831}, - {0xe1afa2, 0x8135b832}, - {0xe1afa3, 0x8135b833}, - {0xe1afa4, 0x8135b834}, - {0xe1afa5, 0x8135b835}, - {0xe1afa6, 0x8135b836}, - {0xe1afa7, 0x8135b837}, - {0xe1afa8, 0x8135b838}, - {0xe1afa9, 0x8135b839}, - {0xe1afaa, 0x8135b930}, - {0xe1afab, 0x8135b931}, - {0xe1afac, 0x8135b932}, - {0xe1afad, 0x8135b933}, - {0xe1afae, 0x8135b934}, - {0xe1afaf, 0x8135b935}, - {0xe1afb0, 0x8135b936}, - {0xe1afb1, 0x8135b937}, - {0xe1afb2, 0x8135b938}, - {0xe1afb3, 0x8135b939}, - {0xe1afb4, 0x8135ba30}, - {0xe1afb5, 0x8135ba31}, - {0xe1afb6, 0x8135ba32}, - {0xe1afb7, 0x8135ba33}, - {0xe1afb8, 0x8135ba34}, - {0xe1afb9, 0x8135ba35}, - {0xe1afba, 0x8135ba36}, - {0xe1afbb, 0x8135ba37}, - {0xe1afbc, 0x8135ba38}, - {0xe1afbd, 0x8135ba39}, - {0xe1afbe, 0x8135bb30}, - {0xe1afbf, 0x8135bb31}, - {0xe1b080, 0x8135bb32}, - {0xe1b081, 0x8135bb33}, - {0xe1b082, 0x8135bb34}, - {0xe1b083, 0x8135bb35}, - {0xe1b084, 0x8135bb36}, - {0xe1b085, 0x8135bb37}, - {0xe1b086, 0x8135bb38}, - {0xe1b087, 0x8135bb39}, - {0xe1b088, 0x8135bc30}, - {0xe1b089, 0x8135bc31}, - {0xe1b08a, 0x8135bc32}, - {0xe1b08b, 0x8135bc33}, - {0xe1b08c, 0x8135bc34}, - {0xe1b08d, 0x8135bc35}, - {0xe1b08e, 0x8135bc36}, - {0xe1b08f, 0x8135bc37}, - {0xe1b090, 0x8135bc38}, - {0xe1b091, 0x8135bc39}, - {0xe1b092, 0x8135bd30}, - {0xe1b093, 0x8135bd31}, - {0xe1b094, 0x8135bd32}, - {0xe1b095, 0x8135bd33}, - {0xe1b096, 0x8135bd34}, - {0xe1b097, 0x8135bd35}, - {0xe1b098, 0x8135bd36}, - {0xe1b099, 0x8135bd37}, - {0xe1b09a, 0x8135bd38}, - {0xe1b09b, 0x8135bd39}, - {0xe1b09c, 0x8135be30}, - {0xe1b09d, 0x8135be31}, - {0xe1b09e, 0x8135be32}, - {0xe1b09f, 0x8135be33}, - {0xe1b0a0, 0x8135be34}, - {0xe1b0a1, 0x8135be35}, - {0xe1b0a2, 0x8135be36}, - {0xe1b0a3, 0x8135be37}, - {0xe1b0a4, 0x8135be38}, - {0xe1b0a5, 0x8135be39}, - {0xe1b0a6, 0x8135bf30}, - {0xe1b0a7, 0x8135bf31}, - {0xe1b0a8, 0x8135bf32}, - {0xe1b0a9, 0x8135bf33}, - {0xe1b0aa, 0x8135bf34}, - {0xe1b0ab, 0x8135bf35}, - {0xe1b0ac, 0x8135bf36}, - {0xe1b0ad, 0x8135bf37}, - {0xe1b0ae, 0x8135bf38}, - {0xe1b0af, 0x8135bf39}, - {0xe1b0b0, 0x8135c030}, - {0xe1b0b1, 0x8135c031}, - {0xe1b0b2, 0x8135c032}, - {0xe1b0b3, 0x8135c033}, - {0xe1b0b4, 0x8135c034}, - {0xe1b0b5, 0x8135c035}, - {0xe1b0b6, 0x8135c036}, - {0xe1b0b7, 0x8135c037}, - {0xe1b0b8, 0x8135c038}, - {0xe1b0b9, 0x8135c039}, - {0xe1b0ba, 0x8135c130}, - {0xe1b0bb, 0x8135c131}, - {0xe1b0bc, 0x8135c132}, - {0xe1b0bd, 0x8135c133}, - {0xe1b0be, 0x8135c134}, - {0xe1b0bf, 0x8135c135}, - {0xe1b180, 0x8135c136}, - {0xe1b181, 0x8135c137}, - {0xe1b182, 0x8135c138}, - {0xe1b183, 0x8135c139}, - {0xe1b184, 0x8135c230}, - {0xe1b185, 0x8135c231}, - {0xe1b186, 0x8135c232}, - {0xe1b187, 0x8135c233}, - {0xe1b188, 0x8135c234}, - {0xe1b189, 0x8135c235}, - {0xe1b18a, 0x8135c236}, - {0xe1b18b, 0x8135c237}, - {0xe1b18c, 0x8135c238}, - {0xe1b18d, 0x8135c239}, - {0xe1b18e, 0x8135c330}, - {0xe1b18f, 0x8135c331}, - {0xe1b190, 0x8135c332}, - {0xe1b191, 0x8135c333}, - {0xe1b192, 0x8135c334}, - {0xe1b193, 0x8135c335}, - {0xe1b194, 0x8135c336}, - {0xe1b195, 0x8135c337}, - {0xe1b196, 0x8135c338}, - {0xe1b197, 0x8135c339}, - {0xe1b198, 0x8135c430}, - {0xe1b199, 0x8135c431}, - {0xe1b19a, 0x8135c432}, - {0xe1b19b, 0x8135c433}, - {0xe1b19c, 0x8135c434}, - {0xe1b19d, 0x8135c435}, - {0xe1b19e, 0x8135c436}, - {0xe1b19f, 0x8135c437}, - {0xe1b1a0, 0x8135c438}, - {0xe1b1a1, 0x8135c439}, - {0xe1b1a2, 0x8135c530}, - {0xe1b1a3, 0x8135c531}, - {0xe1b1a4, 0x8135c532}, - {0xe1b1a5, 0x8135c533}, - {0xe1b1a6, 0x8135c534}, - {0xe1b1a7, 0x8135c535}, - {0xe1b1a8, 0x8135c536}, - {0xe1b1a9, 0x8135c537}, - {0xe1b1aa, 0x8135c538}, - {0xe1b1ab, 0x8135c539}, - {0xe1b1ac, 0x8135c630}, - {0xe1b1ad, 0x8135c631}, - {0xe1b1ae, 0x8135c632}, - {0xe1b1af, 0x8135c633}, - {0xe1b1b0, 0x8135c634}, - {0xe1b1b1, 0x8135c635}, - {0xe1b1b2, 0x8135c636}, - {0xe1b1b3, 0x8135c637}, - {0xe1b1b4, 0x8135c638}, - {0xe1b1b5, 0x8135c639}, - {0xe1b1b6, 0x8135c730}, - {0xe1b1b7, 0x8135c731}, - {0xe1b1b8, 0x8135c732}, - {0xe1b1b9, 0x8135c733}, - {0xe1b1ba, 0x8135c734}, - {0xe1b1bb, 0x8135c735}, - {0xe1b1bc, 0x8135c736}, - {0xe1b1bd, 0x8135c737}, - {0xe1b1be, 0x8135c738}, - {0xe1b1bf, 0x8135c739}, - {0xe1b280, 0x8135c830}, - {0xe1b281, 0x8135c831}, - {0xe1b282, 0x8135c832}, - {0xe1b283, 0x8135c833}, - {0xe1b284, 0x8135c834}, - {0xe1b285, 0x8135c835}, - {0xe1b286, 0x8135c836}, - {0xe1b287, 0x8135c837}, - {0xe1b288, 0x8135c838}, - {0xe1b289, 0x8135c839}, - {0xe1b28a, 0x8135c930}, - {0xe1b28b, 0x8135c931}, - {0xe1b28c, 0x8135c932}, - {0xe1b28d, 0x8135c933}, - {0xe1b28e, 0x8135c934}, - {0xe1b28f, 0x8135c935}, - {0xe1b290, 0x8135c936}, - {0xe1b291, 0x8135c937}, - {0xe1b292, 0x8135c938}, - {0xe1b293, 0x8135c939}, - {0xe1b294, 0x8135ca30}, - {0xe1b295, 0x8135ca31}, - {0xe1b296, 0x8135ca32}, - {0xe1b297, 0x8135ca33}, - {0xe1b298, 0x8135ca34}, - {0xe1b299, 0x8135ca35}, - {0xe1b29a, 0x8135ca36}, - {0xe1b29b, 0x8135ca37}, - {0xe1b29c, 0x8135ca38}, - {0xe1b29d, 0x8135ca39}, - {0xe1b29e, 0x8135cb30}, - {0xe1b29f, 0x8135cb31}, - {0xe1b2a0, 0x8135cb32}, - {0xe1b2a1, 0x8135cb33}, - {0xe1b2a2, 0x8135cb34}, - {0xe1b2a3, 0x8135cb35}, - {0xe1b2a4, 0x8135cb36}, - {0xe1b2a5, 0x8135cb37}, - {0xe1b2a6, 0x8135cb38}, - {0xe1b2a7, 0x8135cb39}, - {0xe1b2a8, 0x8135cc30}, - {0xe1b2a9, 0x8135cc31}, - {0xe1b2aa, 0x8135cc32}, - {0xe1b2ab, 0x8135cc33}, - {0xe1b2ac, 0x8135cc34}, - {0xe1b2ad, 0x8135cc35}, - {0xe1b2ae, 0x8135cc36}, - {0xe1b2af, 0x8135cc37}, - {0xe1b2b0, 0x8135cc38}, - {0xe1b2b1, 0x8135cc39}, - {0xe1b2b2, 0x8135cd30}, - {0xe1b2b3, 0x8135cd31}, - {0xe1b2b4, 0x8135cd32}, - {0xe1b2b5, 0x8135cd33}, - {0xe1b2b6, 0x8135cd34}, - {0xe1b2b7, 0x8135cd35}, - {0xe1b2b8, 0x8135cd36}, - {0xe1b2b9, 0x8135cd37}, - {0xe1b2ba, 0x8135cd38}, - {0xe1b2bb, 0x8135cd39}, - {0xe1b2bc, 0x8135ce30}, - {0xe1b2bd, 0x8135ce31}, - {0xe1b2be, 0x8135ce32}, - {0xe1b2bf, 0x8135ce33}, - {0xe1b380, 0x8135ce34}, - {0xe1b381, 0x8135ce35}, - {0xe1b382, 0x8135ce36}, - {0xe1b383, 0x8135ce37}, - {0xe1b384, 0x8135ce38}, - {0xe1b385, 0x8135ce39}, - {0xe1b386, 0x8135cf30}, - {0xe1b387, 0x8135cf31}, - {0xe1b388, 0x8135cf32}, - {0xe1b389, 0x8135cf33}, - {0xe1b38a, 0x8135cf34}, - {0xe1b38b, 0x8135cf35}, - {0xe1b38c, 0x8135cf36}, - {0xe1b38d, 0x8135cf37}, - {0xe1b38e, 0x8135cf38}, - {0xe1b38f, 0x8135cf39}, - {0xe1b390, 0x8135d030}, - {0xe1b391, 0x8135d031}, - {0xe1b392, 0x8135d032}, - {0xe1b393, 0x8135d033}, - {0xe1b394, 0x8135d034}, - {0xe1b395, 0x8135d035}, - {0xe1b396, 0x8135d036}, - {0xe1b397, 0x8135d037}, - {0xe1b398, 0x8135d038}, - {0xe1b399, 0x8135d039}, - {0xe1b39a, 0x8135d130}, - {0xe1b39b, 0x8135d131}, - {0xe1b39c, 0x8135d132}, - {0xe1b39d, 0x8135d133}, - {0xe1b39e, 0x8135d134}, - {0xe1b39f, 0x8135d135}, - {0xe1b3a0, 0x8135d136}, - {0xe1b3a1, 0x8135d137}, - {0xe1b3a2, 0x8135d138}, - {0xe1b3a3, 0x8135d139}, - {0xe1b3a4, 0x8135d230}, - {0xe1b3a5, 0x8135d231}, - {0xe1b3a6, 0x8135d232}, - {0xe1b3a7, 0x8135d233}, - {0xe1b3a8, 0x8135d234}, - {0xe1b3a9, 0x8135d235}, - {0xe1b3aa, 0x8135d236}, - {0xe1b3ab, 0x8135d237}, - {0xe1b3ac, 0x8135d238}, - {0xe1b3ad, 0x8135d239}, - {0xe1b3ae, 0x8135d330}, - {0xe1b3af, 0x8135d331}, - {0xe1b3b0, 0x8135d332}, - {0xe1b3b1, 0x8135d333}, - {0xe1b3b2, 0x8135d334}, - {0xe1b3b3, 0x8135d335}, - {0xe1b3b4, 0x8135d336}, - {0xe1b3b5, 0x8135d337}, - {0xe1b3b6, 0x8135d338}, - {0xe1b3b7, 0x8135d339}, - {0xe1b3b8, 0x8135d430}, - {0xe1b3b9, 0x8135d431}, - {0xe1b3ba, 0x8135d432}, - {0xe1b3bb, 0x8135d433}, - {0xe1b3bc, 0x8135d434}, - {0xe1b3bd, 0x8135d435}, - {0xe1b3be, 0x8135d436}, - {0xe1b3bf, 0x8135d437}, - {0xe1b480, 0x8135d438}, - {0xe1b481, 0x8135d439}, - {0xe1b482, 0x8135d530}, - {0xe1b483, 0x8135d531}, - {0xe1b484, 0x8135d532}, - {0xe1b485, 0x8135d533}, - {0xe1b486, 0x8135d534}, - {0xe1b487, 0x8135d535}, - {0xe1b488, 0x8135d536}, - {0xe1b489, 0x8135d537}, - {0xe1b48a, 0x8135d538}, - {0xe1b48b, 0x8135d539}, - {0xe1b48c, 0x8135d630}, - {0xe1b48d, 0x8135d631}, - {0xe1b48e, 0x8135d632}, - {0xe1b48f, 0x8135d633}, - {0xe1b490, 0x8135d634}, - {0xe1b491, 0x8135d635}, - {0xe1b492, 0x8135d636}, - {0xe1b493, 0x8135d637}, - {0xe1b494, 0x8135d638}, - {0xe1b495, 0x8135d639}, - {0xe1b496, 0x8135d730}, - {0xe1b497, 0x8135d731}, - {0xe1b498, 0x8135d732}, - {0xe1b499, 0x8135d733}, - {0xe1b49a, 0x8135d734}, - {0xe1b49b, 0x8135d735}, - {0xe1b49c, 0x8135d736}, - {0xe1b49d, 0x8135d737}, - {0xe1b49e, 0x8135d738}, - {0xe1b49f, 0x8135d739}, - {0xe1b4a0, 0x8135d830}, - {0xe1b4a1, 0x8135d831}, - {0xe1b4a2, 0x8135d832}, - {0xe1b4a3, 0x8135d833}, - {0xe1b4a4, 0x8135d834}, - {0xe1b4a5, 0x8135d835}, - {0xe1b4a6, 0x8135d836}, - {0xe1b4a7, 0x8135d837}, - {0xe1b4a8, 0x8135d838}, - {0xe1b4a9, 0x8135d839}, - {0xe1b4aa, 0x8135d930}, - {0xe1b4ab, 0x8135d931}, - {0xe1b4ac, 0x8135d932}, - {0xe1b4ad, 0x8135d933}, - {0xe1b4ae, 0x8135d934}, - {0xe1b4af, 0x8135d935}, - {0xe1b4b0, 0x8135d936}, - {0xe1b4b1, 0x8135d937}, - {0xe1b4b2, 0x8135d938}, - {0xe1b4b3, 0x8135d939}, - {0xe1b4b4, 0x8135da30}, - {0xe1b4b5, 0x8135da31}, - {0xe1b4b6, 0x8135da32}, - {0xe1b4b7, 0x8135da33}, - {0xe1b4b8, 0x8135da34}, - {0xe1b4b9, 0x8135da35}, - {0xe1b4ba, 0x8135da36}, - {0xe1b4bb, 0x8135da37}, - {0xe1b4bc, 0x8135da38}, - {0xe1b4bd, 0x8135da39}, - {0xe1b4be, 0x8135db30}, - {0xe1b4bf, 0x8135db31}, - {0xe1b580, 0x8135db32}, - {0xe1b581, 0x8135db33}, - {0xe1b582, 0x8135db34}, - {0xe1b583, 0x8135db35}, - {0xe1b584, 0x8135db36}, - {0xe1b585, 0x8135db37}, - {0xe1b586, 0x8135db38}, - {0xe1b587, 0x8135db39}, - {0xe1b588, 0x8135dc30}, - {0xe1b589, 0x8135dc31}, - {0xe1b58a, 0x8135dc32}, - {0xe1b58b, 0x8135dc33}, - {0xe1b58c, 0x8135dc34}, - {0xe1b58d, 0x8135dc35}, - {0xe1b58e, 0x8135dc36}, - {0xe1b58f, 0x8135dc37}, - {0xe1b590, 0x8135dc38}, - {0xe1b591, 0x8135dc39}, - {0xe1b592, 0x8135dd30}, - {0xe1b593, 0x8135dd31}, - {0xe1b594, 0x8135dd32}, - {0xe1b595, 0x8135dd33}, - {0xe1b596, 0x8135dd34}, - {0xe1b597, 0x8135dd35}, - {0xe1b598, 0x8135dd36}, - {0xe1b599, 0x8135dd37}, - {0xe1b59a, 0x8135dd38}, - {0xe1b59b, 0x8135dd39}, - {0xe1b59c, 0x8135de30}, - {0xe1b59d, 0x8135de31}, - {0xe1b59e, 0x8135de32}, - {0xe1b59f, 0x8135de33}, - {0xe1b5a0, 0x8135de34}, - {0xe1b5a1, 0x8135de35}, - {0xe1b5a2, 0x8135de36}, - {0xe1b5a3, 0x8135de37}, - {0xe1b5a4, 0x8135de38}, - {0xe1b5a5, 0x8135de39}, - {0xe1b5a6, 0x8135df30}, - {0xe1b5a7, 0x8135df31}, - {0xe1b5a8, 0x8135df32}, - {0xe1b5a9, 0x8135df33}, - {0xe1b5aa, 0x8135df34}, - {0xe1b5ab, 0x8135df35}, - {0xe1b5ac, 0x8135df36}, - {0xe1b5ad, 0x8135df37}, - {0xe1b5ae, 0x8135df38}, - {0xe1b5af, 0x8135df39}, - {0xe1b5b0, 0x8135e030}, - {0xe1b5b1, 0x8135e031}, - {0xe1b5b2, 0x8135e032}, - {0xe1b5b3, 0x8135e033}, - {0xe1b5b4, 0x8135e034}, - {0xe1b5b5, 0x8135e035}, - {0xe1b5b6, 0x8135e036}, - {0xe1b5b7, 0x8135e037}, - {0xe1b5b8, 0x8135e038}, - {0xe1b5b9, 0x8135e039}, - {0xe1b5ba, 0x8135e130}, - {0xe1b5bb, 0x8135e131}, - {0xe1b5bc, 0x8135e132}, - {0xe1b5bd, 0x8135e133}, - {0xe1b5be, 0x8135e134}, - {0xe1b5bf, 0x8135e135}, - {0xe1b680, 0x8135e136}, - {0xe1b681, 0x8135e137}, - {0xe1b682, 0x8135e138}, - {0xe1b683, 0x8135e139}, - {0xe1b684, 0x8135e230}, - {0xe1b685, 0x8135e231}, - {0xe1b686, 0x8135e232}, - {0xe1b687, 0x8135e233}, - {0xe1b688, 0x8135e234}, - {0xe1b689, 0x8135e235}, - {0xe1b68a, 0x8135e236}, - {0xe1b68b, 0x8135e237}, - {0xe1b68c, 0x8135e238}, - {0xe1b68d, 0x8135e239}, - {0xe1b68e, 0x8135e330}, - {0xe1b68f, 0x8135e331}, - {0xe1b690, 0x8135e332}, - {0xe1b691, 0x8135e333}, - {0xe1b692, 0x8135e334}, - {0xe1b693, 0x8135e335}, - {0xe1b694, 0x8135e336}, - {0xe1b695, 0x8135e337}, - {0xe1b696, 0x8135e338}, - {0xe1b697, 0x8135e339}, - {0xe1b698, 0x8135e430}, - {0xe1b699, 0x8135e431}, - {0xe1b69a, 0x8135e432}, - {0xe1b69b, 0x8135e433}, - {0xe1b69c, 0x8135e434}, - {0xe1b69d, 0x8135e435}, - {0xe1b69e, 0x8135e436}, - {0xe1b69f, 0x8135e437}, - {0xe1b6a0, 0x8135e438}, - {0xe1b6a1, 0x8135e439}, - {0xe1b6a2, 0x8135e530}, - {0xe1b6a3, 0x8135e531}, - {0xe1b6a4, 0x8135e532}, - {0xe1b6a5, 0x8135e533}, - {0xe1b6a6, 0x8135e534}, - {0xe1b6a7, 0x8135e535}, - {0xe1b6a8, 0x8135e536}, - {0xe1b6a9, 0x8135e537}, - {0xe1b6aa, 0x8135e538}, - {0xe1b6ab, 0x8135e539}, - {0xe1b6ac, 0x8135e630}, - {0xe1b6ad, 0x8135e631}, - {0xe1b6ae, 0x8135e632}, - {0xe1b6af, 0x8135e633}, - {0xe1b6b0, 0x8135e634}, - {0xe1b6b1, 0x8135e635}, - {0xe1b6b2, 0x8135e636}, - {0xe1b6b3, 0x8135e637}, - {0xe1b6b4, 0x8135e638}, - {0xe1b6b5, 0x8135e639}, - {0xe1b6b6, 0x8135e730}, - {0xe1b6b7, 0x8135e731}, - {0xe1b6b8, 0x8135e732}, - {0xe1b6b9, 0x8135e733}, - {0xe1b6ba, 0x8135e734}, - {0xe1b6bb, 0x8135e735}, - {0xe1b6bc, 0x8135e736}, - {0xe1b6bd, 0x8135e737}, - {0xe1b6be, 0x8135e738}, - {0xe1b6bf, 0x8135e739}, - {0xe1b780, 0x8135e830}, - {0xe1b781, 0x8135e831}, - {0xe1b782, 0x8135e832}, - {0xe1b783, 0x8135e833}, - {0xe1b784, 0x8135e834}, - {0xe1b785, 0x8135e835}, - {0xe1b786, 0x8135e836}, - {0xe1b787, 0x8135e837}, - {0xe1b788, 0x8135e838}, - {0xe1b789, 0x8135e839}, - {0xe1b78a, 0x8135e930}, - {0xe1b78b, 0x8135e931}, - {0xe1b78c, 0x8135e932}, - {0xe1b78d, 0x8135e933}, - {0xe1b78e, 0x8135e934}, - {0xe1b78f, 0x8135e935}, - {0xe1b790, 0x8135e936}, - {0xe1b791, 0x8135e937}, - {0xe1b792, 0x8135e938}, - {0xe1b793, 0x8135e939}, - {0xe1b794, 0x8135ea30}, - {0xe1b795, 0x8135ea31}, - {0xe1b796, 0x8135ea32}, - {0xe1b797, 0x8135ea33}, - {0xe1b798, 0x8135ea34}, - {0xe1b799, 0x8135ea35}, - {0xe1b79a, 0x8135ea36}, - {0xe1b79b, 0x8135ea37}, - {0xe1b79c, 0x8135ea38}, - {0xe1b79d, 0x8135ea39}, - {0xe1b79e, 0x8135eb30}, - {0xe1b79f, 0x8135eb31}, - {0xe1b7a0, 0x8135eb32}, - {0xe1b7a1, 0x8135eb33}, - {0xe1b7a2, 0x8135eb34}, - {0xe1b7a3, 0x8135eb35}, - {0xe1b7a4, 0x8135eb36}, - {0xe1b7a5, 0x8135eb37}, - {0xe1b7a6, 0x8135eb38}, - {0xe1b7a7, 0x8135eb39}, - {0xe1b7a8, 0x8135ec30}, - {0xe1b7a9, 0x8135ec31}, - {0xe1b7aa, 0x8135ec32}, - {0xe1b7ab, 0x8135ec33}, - {0xe1b7ac, 0x8135ec34}, - {0xe1b7ad, 0x8135ec35}, - {0xe1b7ae, 0x8135ec36}, - {0xe1b7af, 0x8135ec37}, - {0xe1b7b0, 0x8135ec38}, - {0xe1b7b1, 0x8135ec39}, - {0xe1b7b2, 0x8135ed30}, - {0xe1b7b3, 0x8135ed31}, - {0xe1b7b4, 0x8135ed32}, - {0xe1b7b5, 0x8135ed33}, - {0xe1b7b6, 0x8135ed34}, - {0xe1b7b7, 0x8135ed35}, - {0xe1b7b8, 0x8135ed36}, - {0xe1b7b9, 0x8135ed37}, - {0xe1b7ba, 0x8135ed38}, - {0xe1b7bb, 0x8135ed39}, - {0xe1b7bc, 0x8135ee30}, - {0xe1b7bd, 0x8135ee31}, - {0xe1b7be, 0x8135ee32}, - {0xe1b7bf, 0x8135ee33}, - {0xe1b880, 0x8135ee34}, - {0xe1b881, 0x8135ee35}, - {0xe1b882, 0x8135ee36}, - {0xe1b883, 0x8135ee37}, - {0xe1b884, 0x8135ee38}, - {0xe1b885, 0x8135ee39}, - {0xe1b886, 0x8135ef30}, - {0xe1b887, 0x8135ef31}, - {0xe1b888, 0x8135ef32}, - {0xe1b889, 0x8135ef33}, - {0xe1b88a, 0x8135ef34}, - {0xe1b88b, 0x8135ef35}, - {0xe1b88c, 0x8135ef36}, - {0xe1b88d, 0x8135ef37}, - {0xe1b88e, 0x8135ef38}, - {0xe1b88f, 0x8135ef39}, - {0xe1b890, 0x8135f030}, - {0xe1b891, 0x8135f031}, - {0xe1b892, 0x8135f032}, - {0xe1b893, 0x8135f033}, - {0xe1b894, 0x8135f034}, - {0xe1b895, 0x8135f035}, - {0xe1b896, 0x8135f036}, - {0xe1b897, 0x8135f037}, - {0xe1b898, 0x8135f038}, - {0xe1b899, 0x8135f039}, - {0xe1b89a, 0x8135f130}, - {0xe1b89b, 0x8135f131}, - {0xe1b89c, 0x8135f132}, - {0xe1b89d, 0x8135f133}, - {0xe1b89e, 0x8135f134}, - {0xe1b89f, 0x8135f135}, - {0xe1b8a0, 0x8135f136}, - {0xe1b8a1, 0x8135f137}, - {0xe1b8a2, 0x8135f138}, - {0xe1b8a3, 0x8135f139}, - {0xe1b8a4, 0x8135f230}, - {0xe1b8a5, 0x8135f231}, - {0xe1b8a6, 0x8135f232}, - {0xe1b8a7, 0x8135f233}, - {0xe1b8a8, 0x8135f234}, - {0xe1b8a9, 0x8135f235}, - {0xe1b8aa, 0x8135f236}, - {0xe1b8ab, 0x8135f237}, - {0xe1b8ac, 0x8135f238}, - {0xe1b8ad, 0x8135f239}, - {0xe1b8ae, 0x8135f330}, - {0xe1b8af, 0x8135f331}, - {0xe1b8b0, 0x8135f332}, - {0xe1b8b1, 0x8135f333}, - {0xe1b8b2, 0x8135f334}, - {0xe1b8b3, 0x8135f335}, - {0xe1b8b4, 0x8135f336}, - {0xe1b8b5, 0x8135f337}, - {0xe1b8b6, 0x8135f338}, - {0xe1b8b7, 0x8135f339}, - {0xe1b8b8, 0x8135f430}, - {0xe1b8b9, 0x8135f431}, - {0xe1b8ba, 0x8135f432}, - {0xe1b8bb, 0x8135f433}, - {0xe1b8bc, 0x8135f434}, - {0xe1b8bd, 0x8135f435}, - {0xe1b8be, 0x8135f436}, - {0xe1b8bf, 0x8135f437}, - {0xe1b980, 0x8135f438}, - {0xe1b981, 0x8135f439}, - {0xe1b982, 0x8135f530}, - {0xe1b983, 0x8135f531}, - {0xe1b984, 0x8135f532}, - {0xe1b985, 0x8135f533}, - {0xe1b986, 0x8135f534}, - {0xe1b987, 0x8135f535}, - {0xe1b988, 0x8135f536}, - {0xe1b989, 0x8135f537}, - {0xe1b98a, 0x8135f538}, - {0xe1b98b, 0x8135f539}, - {0xe1b98c, 0x8135f630}, - {0xe1b98d, 0x8135f631}, - {0xe1b98e, 0x8135f632}, - {0xe1b98f, 0x8135f633}, - {0xe1b990, 0x8135f634}, - {0xe1b991, 0x8135f635}, - {0xe1b992, 0x8135f636}, - {0xe1b993, 0x8135f637}, - {0xe1b994, 0x8135f638}, - {0xe1b995, 0x8135f639}, - {0xe1b996, 0x8135f730}, - {0xe1b997, 0x8135f731}, - {0xe1b998, 0x8135f732}, - {0xe1b999, 0x8135f733}, - {0xe1b99a, 0x8135f734}, - {0xe1b99b, 0x8135f735}, - {0xe1b99c, 0x8135f736}, - {0xe1b99d, 0x8135f737}, - {0xe1b99e, 0x8135f738}, - {0xe1b99f, 0x8135f739}, - {0xe1b9a0, 0x8135f830}, - {0xe1b9a1, 0x8135f831}, - {0xe1b9a2, 0x8135f832}, - {0xe1b9a3, 0x8135f833}, - {0xe1b9a4, 0x8135f834}, - {0xe1b9a5, 0x8135f835}, - {0xe1b9a6, 0x8135f836}, - {0xe1b9a7, 0x8135f837}, - {0xe1b9a8, 0x8135f838}, - {0xe1b9a9, 0x8135f839}, - {0xe1b9aa, 0x8135f930}, - {0xe1b9ab, 0x8135f931}, - {0xe1b9ac, 0x8135f932}, - {0xe1b9ad, 0x8135f933}, - {0xe1b9ae, 0x8135f934}, - {0xe1b9af, 0x8135f935}, - {0xe1b9b0, 0x8135f936}, - {0xe1b9b1, 0x8135f937}, - {0xe1b9b2, 0x8135f938}, - {0xe1b9b3, 0x8135f939}, - {0xe1b9b4, 0x8135fa30}, - {0xe1b9b5, 0x8135fa31}, - {0xe1b9b6, 0x8135fa32}, - {0xe1b9b7, 0x8135fa33}, - {0xe1b9b8, 0x8135fa34}, - {0xe1b9b9, 0x8135fa35}, - {0xe1b9ba, 0x8135fa36}, - {0xe1b9bb, 0x8135fa37}, - {0xe1b9bc, 0x8135fa38}, - {0xe1b9bd, 0x8135fa39}, - {0xe1b9be, 0x8135fb30}, - {0xe1b9bf, 0x8135fb31}, - {0xe1ba80, 0x8135fb32}, - {0xe1ba81, 0x8135fb33}, - {0xe1ba82, 0x8135fb34}, - {0xe1ba83, 0x8135fb35}, - {0xe1ba84, 0x8135fb36}, - {0xe1ba85, 0x8135fb37}, - {0xe1ba86, 0x8135fb38}, - {0xe1ba87, 0x8135fb39}, - {0xe1ba88, 0x8135fc30}, - {0xe1ba89, 0x8135fc31}, - {0xe1ba8a, 0x8135fc32}, - {0xe1ba8b, 0x8135fc33}, - {0xe1ba8c, 0x8135fc34}, - {0xe1ba8d, 0x8135fc35}, - {0xe1ba8e, 0x8135fc36}, - {0xe1ba8f, 0x8135fc37}, - {0xe1ba90, 0x8135fc38}, - {0xe1ba91, 0x8135fc39}, - {0xe1ba92, 0x8135fd30}, - {0xe1ba93, 0x8135fd31}, - {0xe1ba94, 0x8135fd32}, - {0xe1ba95, 0x8135fd33}, - {0xe1ba96, 0x8135fd34}, - {0xe1ba97, 0x8135fd35}, - {0xe1ba98, 0x8135fd36}, - {0xe1ba99, 0x8135fd37}, - {0xe1ba9a, 0x8135fd38}, - {0xe1ba9b, 0x8135fd39}, - {0xe1ba9c, 0x8135fe30}, - {0xe1ba9d, 0x8135fe31}, - {0xe1ba9e, 0x8135fe32}, - {0xe1ba9f, 0x8135fe33}, - {0xe1baa0, 0x8135fe34}, - {0xe1baa1, 0x8135fe35}, - {0xe1baa2, 0x8135fe36}, - {0xe1baa3, 0x8135fe37}, - {0xe1baa4, 0x8135fe38}, - {0xe1baa5, 0x8135fe39}, - {0xe1baa6, 0x81368130}, - {0xe1baa7, 0x81368131}, - {0xe1baa8, 0x81368132}, - {0xe1baa9, 0x81368133}, - {0xe1baaa, 0x81368134}, - {0xe1baab, 0x81368135}, - {0xe1baac, 0x81368136}, - {0xe1baad, 0x81368137}, - {0xe1baae, 0x81368138}, - {0xe1baaf, 0x81368139}, - {0xe1bab0, 0x81368230}, - {0xe1bab1, 0x81368231}, - {0xe1bab2, 0x81368232}, - {0xe1bab3, 0x81368233}, - {0xe1bab4, 0x81368234}, - {0xe1bab5, 0x81368235}, - {0xe1bab6, 0x81368236}, - {0xe1bab7, 0x81368237}, - {0xe1bab8, 0x81368238}, - {0xe1bab9, 0x81368239}, - {0xe1baba, 0x81368330}, - {0xe1babb, 0x81368331}, - {0xe1babc, 0x81368332}, - {0xe1babd, 0x81368333}, - {0xe1babe, 0x81368334}, - {0xe1babf, 0x81368335}, - {0xe1bb80, 0x81368336}, - {0xe1bb81, 0x81368337}, - {0xe1bb82, 0x81368338}, - {0xe1bb83, 0x81368339}, - {0xe1bb84, 0x81368430}, - {0xe1bb85, 0x81368431}, - {0xe1bb86, 0x81368432}, - {0xe1bb87, 0x81368433}, - {0xe1bb88, 0x81368434}, - {0xe1bb89, 0x81368435}, - {0xe1bb8a, 0x81368436}, - {0xe1bb8b, 0x81368437}, - {0xe1bb8c, 0x81368438}, - {0xe1bb8d, 0x81368439}, - {0xe1bb8e, 0x81368530}, - {0xe1bb8f, 0x81368531}, - {0xe1bb90, 0x81368532}, - {0xe1bb91, 0x81368533}, - {0xe1bb92, 0x81368534}, - {0xe1bb93, 0x81368535}, - {0xe1bb94, 0x81368536}, - {0xe1bb95, 0x81368537}, - {0xe1bb96, 0x81368538}, - {0xe1bb97, 0x81368539}, - {0xe1bb98, 0x81368630}, - {0xe1bb99, 0x81368631}, - {0xe1bb9a, 0x81368632}, - {0xe1bb9b, 0x81368633}, - {0xe1bb9c, 0x81368634}, - {0xe1bb9d, 0x81368635}, - {0xe1bb9e, 0x81368636}, - {0xe1bb9f, 0x81368637}, - {0xe1bba0, 0x81368638}, - {0xe1bba1, 0x81368639}, - {0xe1bba2, 0x81368730}, - {0xe1bba3, 0x81368731}, - {0xe1bba4, 0x81368732}, - {0xe1bba5, 0x81368733}, - {0xe1bba6, 0x81368734}, - {0xe1bba7, 0x81368735}, - {0xe1bba8, 0x81368736}, - {0xe1bba9, 0x81368737}, - {0xe1bbaa, 0x81368738}, - {0xe1bbab, 0x81368739}, - {0xe1bbac, 0x81368830}, - {0xe1bbad, 0x81368831}, - {0xe1bbae, 0x81368832}, - {0xe1bbaf, 0x81368833}, - {0xe1bbb0, 0x81368834}, - {0xe1bbb1, 0x81368835}, - {0xe1bbb2, 0x81368836}, - {0xe1bbb3, 0x81368837}, - {0xe1bbb4, 0x81368838}, - {0xe1bbb5, 0x81368839}, - {0xe1bbb6, 0x81368930}, - {0xe1bbb7, 0x81368931}, - {0xe1bbb8, 0x81368932}, - {0xe1bbb9, 0x81368933}, - {0xe1bbba, 0x81368934}, - {0xe1bbbb, 0x81368935}, - {0xe1bbbc, 0x81368936}, - {0xe1bbbd, 0x81368937}, - {0xe1bbbe, 0x81368938}, - {0xe1bbbf, 0x81368939}, - {0xe1bc80, 0x81368a30}, - {0xe1bc81, 0x81368a31}, - {0xe1bc82, 0x81368a32}, - {0xe1bc83, 0x81368a33}, - {0xe1bc84, 0x81368a34}, - {0xe1bc85, 0x81368a35}, - {0xe1bc86, 0x81368a36}, - {0xe1bc87, 0x81368a37}, - {0xe1bc88, 0x81368a38}, - {0xe1bc89, 0x81368a39}, - {0xe1bc8a, 0x81368b30}, - {0xe1bc8b, 0x81368b31}, - {0xe1bc8c, 0x81368b32}, - {0xe1bc8d, 0x81368b33}, - {0xe1bc8e, 0x81368b34}, - {0xe1bc8f, 0x81368b35}, - {0xe1bc90, 0x81368b36}, - {0xe1bc91, 0x81368b37}, - {0xe1bc92, 0x81368b38}, - {0xe1bc93, 0x81368b39}, - {0xe1bc94, 0x81368c30}, - {0xe1bc95, 0x81368c31}, - {0xe1bc96, 0x81368c32}, - {0xe1bc97, 0x81368c33}, - {0xe1bc98, 0x81368c34}, - {0xe1bc99, 0x81368c35}, - {0xe1bc9a, 0x81368c36}, - {0xe1bc9b, 0x81368c37}, - {0xe1bc9c, 0x81368c38}, - {0xe1bc9d, 0x81368c39}, - {0xe1bc9e, 0x81368d30}, - {0xe1bc9f, 0x81368d31}, - {0xe1bca0, 0x81368d32}, - {0xe1bca1, 0x81368d33}, - {0xe1bca2, 0x81368d34}, - {0xe1bca3, 0x81368d35}, - {0xe1bca4, 0x81368d36}, - {0xe1bca5, 0x81368d37}, - {0xe1bca6, 0x81368d38}, - {0xe1bca7, 0x81368d39}, - {0xe1bca8, 0x81368e30}, - {0xe1bca9, 0x81368e31}, - {0xe1bcaa, 0x81368e32}, - {0xe1bcab, 0x81368e33}, - {0xe1bcac, 0x81368e34}, - {0xe1bcad, 0x81368e35}, - {0xe1bcae, 0x81368e36}, - {0xe1bcaf, 0x81368e37}, - {0xe1bcb0, 0x81368e38}, - {0xe1bcb1, 0x81368e39}, - {0xe1bcb2, 0x81368f30}, - {0xe1bcb3, 0x81368f31}, - {0xe1bcb4, 0x81368f32}, - {0xe1bcb5, 0x81368f33}, - {0xe1bcb6, 0x81368f34}, - {0xe1bcb7, 0x81368f35}, - {0xe1bcb8, 0x81368f36}, - {0xe1bcb9, 0x81368f37}, - {0xe1bcba, 0x81368f38}, - {0xe1bcbb, 0x81368f39}, - {0xe1bcbc, 0x81369030}, - {0xe1bcbd, 0x81369031}, - {0xe1bcbe, 0x81369032}, - {0xe1bcbf, 0x81369033}, - {0xe1bd80, 0x81369034}, - {0xe1bd81, 0x81369035}, - {0xe1bd82, 0x81369036}, - {0xe1bd83, 0x81369037}, - {0xe1bd84, 0x81369038}, - {0xe1bd85, 0x81369039}, - {0xe1bd86, 0x81369130}, - {0xe1bd87, 0x81369131}, - {0xe1bd88, 0x81369132}, - {0xe1bd89, 0x81369133}, - {0xe1bd8a, 0x81369134}, - {0xe1bd8b, 0x81369135}, - {0xe1bd8c, 0x81369136}, - {0xe1bd8d, 0x81369137}, - {0xe1bd8e, 0x81369138}, - {0xe1bd8f, 0x81369139}, - {0xe1bd90, 0x81369230}, - {0xe1bd91, 0x81369231}, - {0xe1bd92, 0x81369232}, - {0xe1bd93, 0x81369233}, - {0xe1bd94, 0x81369234}, - {0xe1bd95, 0x81369235}, - {0xe1bd96, 0x81369236}, - {0xe1bd97, 0x81369237}, - {0xe1bd98, 0x81369238}, - {0xe1bd99, 0x81369239}, - {0xe1bd9a, 0x81369330}, - {0xe1bd9b, 0x81369331}, - {0xe1bd9c, 0x81369332}, - {0xe1bd9d, 0x81369333}, - {0xe1bd9e, 0x81369334}, - {0xe1bd9f, 0x81369335}, - {0xe1bda0, 0x81369336}, - {0xe1bda1, 0x81369337}, - {0xe1bda2, 0x81369338}, - {0xe1bda3, 0x81369339}, - {0xe1bda4, 0x81369430}, - {0xe1bda5, 0x81369431}, - {0xe1bda6, 0x81369432}, - {0xe1bda7, 0x81369433}, - {0xe1bda8, 0x81369434}, - {0xe1bda9, 0x81369435}, - {0xe1bdaa, 0x81369436}, - {0xe1bdab, 0x81369437}, - {0xe1bdac, 0x81369438}, - {0xe1bdad, 0x81369439}, - {0xe1bdae, 0x81369530}, - {0xe1bdaf, 0x81369531}, - {0xe1bdb0, 0x81369532}, - {0xe1bdb1, 0x81369533}, - {0xe1bdb2, 0x81369534}, - {0xe1bdb3, 0x81369535}, - {0xe1bdb4, 0x81369536}, - {0xe1bdb5, 0x81369537}, - {0xe1bdb6, 0x81369538}, - {0xe1bdb7, 0x81369539}, - {0xe1bdb8, 0x81369630}, - {0xe1bdb9, 0x81369631}, - {0xe1bdba, 0x81369632}, - {0xe1bdbb, 0x81369633}, - {0xe1bdbc, 0x81369634}, - {0xe1bdbd, 0x81369635}, - {0xe1bdbe, 0x81369636}, - {0xe1bdbf, 0x81369637}, - {0xe1be80, 0x81369638}, - {0xe1be81, 0x81369639}, - {0xe1be82, 0x81369730}, - {0xe1be83, 0x81369731}, - {0xe1be84, 0x81369732}, - {0xe1be85, 0x81369733}, - {0xe1be86, 0x81369734}, - {0xe1be87, 0x81369735}, - {0xe1be88, 0x81369736}, - {0xe1be89, 0x81369737}, - {0xe1be8a, 0x81369738}, - {0xe1be8b, 0x81369739}, - {0xe1be8c, 0x81369830}, - {0xe1be8d, 0x81369831}, - {0xe1be8e, 0x81369832}, - {0xe1be8f, 0x81369833}, - {0xe1be90, 0x81369834}, - {0xe1be91, 0x81369835}, - {0xe1be92, 0x81369836}, - {0xe1be93, 0x81369837}, - {0xe1be94, 0x81369838}, - {0xe1be95, 0x81369839}, - {0xe1be96, 0x81369930}, - {0xe1be97, 0x81369931}, - {0xe1be98, 0x81369932}, - {0xe1be99, 0x81369933}, - {0xe1be9a, 0x81369934}, - {0xe1be9b, 0x81369935}, - {0xe1be9c, 0x81369936}, - {0xe1be9d, 0x81369937}, - {0xe1be9e, 0x81369938}, - {0xe1be9f, 0x81369939}, - {0xe1bea0, 0x81369a30}, - {0xe1bea1, 0x81369a31}, - {0xe1bea2, 0x81369a32}, - {0xe1bea3, 0x81369a33}, - {0xe1bea4, 0x81369a34}, - {0xe1bea5, 0x81369a35}, - {0xe1bea6, 0x81369a36}, - {0xe1bea7, 0x81369a37}, - {0xe1bea8, 0x81369a38}, - {0xe1bea9, 0x81369a39}, - {0xe1beaa, 0x81369b30}, - {0xe1beab, 0x81369b31}, - {0xe1beac, 0x81369b32}, - {0xe1bead, 0x81369b33}, - {0xe1beae, 0x81369b34}, - {0xe1beaf, 0x81369b35}, - {0xe1beb0, 0x81369b36}, - {0xe1beb1, 0x81369b37}, - {0xe1beb2, 0x81369b38}, - {0xe1beb3, 0x81369b39}, - {0xe1beb4, 0x81369c30}, - {0xe1beb5, 0x81369c31}, - {0xe1beb6, 0x81369c32}, - {0xe1beb7, 0x81369c33}, - {0xe1beb8, 0x81369c34}, - {0xe1beb9, 0x81369c35}, - {0xe1beba, 0x81369c36}, - {0xe1bebb, 0x81369c37}, - {0xe1bebc, 0x81369c38}, - {0xe1bebd, 0x81369c39}, - {0xe1bebe, 0x81369d30}, - {0xe1bebf, 0x81369d31}, - {0xe1bf80, 0x81369d32}, - {0xe1bf81, 0x81369d33}, - {0xe1bf82, 0x81369d34}, - {0xe1bf83, 0x81369d35}, - {0xe1bf84, 0x81369d36}, - {0xe1bf85, 0x81369d37}, - {0xe1bf86, 0x81369d38}, - {0xe1bf87, 0x81369d39}, - {0xe1bf88, 0x81369e30}, - {0xe1bf89, 0x81369e31}, - {0xe1bf8a, 0x81369e32}, - {0xe1bf8b, 0x81369e33}, - {0xe1bf8c, 0x81369e34}, - {0xe1bf8d, 0x81369e35}, - {0xe1bf8e, 0x81369e36}, - {0xe1bf8f, 0x81369e37}, - {0xe1bf90, 0x81369e38}, - {0xe1bf91, 0x81369e39}, - {0xe1bf92, 0x81369f30}, - {0xe1bf93, 0x81369f31}, - {0xe1bf94, 0x81369f32}, - {0xe1bf95, 0x81369f33}, - {0xe1bf96, 0x81369f34}, - {0xe1bf97, 0x81369f35}, - {0xe1bf98, 0x81369f36}, - {0xe1bf99, 0x81369f37}, - {0xe1bf9a, 0x81369f38}, - {0xe1bf9b, 0x81369f39}, - {0xe1bf9c, 0x8136a030}, - {0xe1bf9d, 0x8136a031}, - {0xe1bf9e, 0x8136a032}, - {0xe1bf9f, 0x8136a033}, - {0xe1bfa0, 0x8136a034}, - {0xe1bfa1, 0x8136a035}, - {0xe1bfa2, 0x8136a036}, - {0xe1bfa3, 0x8136a037}, - {0xe1bfa4, 0x8136a038}, - {0xe1bfa5, 0x8136a039}, - {0xe1bfa6, 0x8136a130}, - {0xe1bfa7, 0x8136a131}, - {0xe1bfa8, 0x8136a132}, - {0xe1bfa9, 0x8136a133}, - {0xe1bfaa, 0x8136a134}, - {0xe1bfab, 0x8136a135}, - {0xe1bfac, 0x8136a136}, - {0xe1bfad, 0x8136a137}, - {0xe1bfae, 0x8136a138}, - {0xe1bfaf, 0x8136a139}, - {0xe1bfb0, 0x8136a230}, - {0xe1bfb1, 0x8136a231}, - {0xe1bfb2, 0x8136a232}, - {0xe1bfb3, 0x8136a233}, - {0xe1bfb4, 0x8136a234}, - {0xe1bfb5, 0x8136a235}, - {0xe1bfb6, 0x8136a236}, - {0xe1bfb7, 0x8136a237}, - {0xe1bfb8, 0x8136a238}, - {0xe1bfb9, 0x8136a239}, - {0xe1bfba, 0x8136a330}, - {0xe1bfbb, 0x8136a331}, - {0xe1bfbc, 0x8136a332}, - {0xe1bfbd, 0x8136a333}, - {0xe1bfbe, 0x8136a334}, - {0xe1bfbf, 0x8136a335}, - {0xe28080, 0x8136a336}, - {0xe28081, 0x8136a337}, - {0xe28082, 0x8136a338}, - {0xe28083, 0x8136a339}, - {0xe28084, 0x8136a430}, - {0xe28085, 0x8136a431}, - {0xe28086, 0x8136a432}, - {0xe28087, 0x8136a433}, - {0xe28088, 0x8136a434}, - {0xe28089, 0x8136a435}, - {0xe2808a, 0x8136a436}, - {0xe2808b, 0x8136a437}, - {0xe2808c, 0x8136a438}, - {0xe2808d, 0x8136a439}, - {0xe2808e, 0x8136a530}, - {0xe2808f, 0x8136a531}, {0xe28090, 0xa95c}, {0xe28091, 0x8136a532}, {0xe28092, 0x8136a533}, @@ -9666,2116 +2564,6 @@ static pg_utf_to_local ULmapGB18030[ 63360 ] = { {0xe29980, 0xa1e2}, {0xe29981, 0x8137a838}, {0xe29982, 0xa1e1}, - {0xe29983, 0x8137a839}, - {0xe29984, 0x8137a930}, - {0xe29985, 0x8137a931}, - {0xe29986, 0x8137a932}, - {0xe29987, 0x8137a933}, - {0xe29988, 0x8137a934}, - {0xe29989, 0x8137a935}, - {0xe2998a, 0x8137a936}, - {0xe2998b, 0x8137a937}, - {0xe2998c, 0x8137a938}, - {0xe2998d, 0x8137a939}, - {0xe2998e, 0x8137aa30}, - {0xe2998f, 0x8137aa31}, - {0xe29990, 0x8137aa32}, - {0xe29991, 0x8137aa33}, - {0xe29992, 0x8137aa34}, - {0xe29993, 0x8137aa35}, - {0xe29994, 0x8137aa36}, - {0xe29995, 0x8137aa37}, - {0xe29996, 0x8137aa38}, - {0xe29997, 0x8137aa39}, - {0xe29998, 0x8137ab30}, - {0xe29999, 0x8137ab31}, - {0xe2999a, 0x8137ab32}, - {0xe2999b, 0x8137ab33}, - {0xe2999c, 0x8137ab34}, - {0xe2999d, 0x8137ab35}, - {0xe2999e, 0x8137ab36}, - {0xe2999f, 0x8137ab37}, - {0xe299a0, 0x8137ab38}, - {0xe299a1, 0x8137ab39}, - {0xe299a2, 0x8137ac30}, - {0xe299a3, 0x8137ac31}, - {0xe299a4, 0x8137ac32}, - {0xe299a5, 0x8137ac33}, - {0xe299a6, 0x8137ac34}, - {0xe299a7, 0x8137ac35}, - {0xe299a8, 0x8137ac36}, - {0xe299a9, 0x8137ac37}, - {0xe299aa, 0x8137ac38}, - {0xe299ab, 0x8137ac39}, - {0xe299ac, 0x8137ad30}, - {0xe299ad, 0x8137ad31}, - {0xe299ae, 0x8137ad32}, - {0xe299af, 0x8137ad33}, - {0xe299b0, 0x8137ad34}, - {0xe299b1, 0x8137ad35}, - {0xe299b2, 0x8137ad36}, - {0xe299b3, 0x8137ad37}, - {0xe299b4, 0x8137ad38}, - {0xe299b5, 0x8137ad39}, - {0xe299b6, 0x8137ae30}, - {0xe299b7, 0x8137ae31}, - {0xe299b8, 0x8137ae32}, - {0xe299b9, 0x8137ae33}, - {0xe299ba, 0x8137ae34}, - {0xe299bb, 0x8137ae35}, - {0xe299bc, 0x8137ae36}, - {0xe299bd, 0x8137ae37}, - {0xe299be, 0x8137ae38}, - {0xe299bf, 0x8137ae39}, - {0xe29a80, 0x8137af30}, - {0xe29a81, 0x8137af31}, - {0xe29a82, 0x8137af32}, - {0xe29a83, 0x8137af33}, - {0xe29a84, 0x8137af34}, - {0xe29a85, 0x8137af35}, - {0xe29a86, 0x8137af36}, - {0xe29a87, 0x8137af37}, - {0xe29a88, 0x8137af38}, - {0xe29a89, 0x8137af39}, - {0xe29a8a, 0x8137b030}, - {0xe29a8b, 0x8137b031}, - {0xe29a8c, 0x8137b032}, - {0xe29a8d, 0x8137b033}, - {0xe29a8e, 0x8137b034}, - {0xe29a8f, 0x8137b035}, - {0xe29a90, 0x8137b036}, - {0xe29a91, 0x8137b037}, - {0xe29a92, 0x8137b038}, - {0xe29a93, 0x8137b039}, - {0xe29a94, 0x8137b130}, - {0xe29a95, 0x8137b131}, - {0xe29a96, 0x8137b132}, - {0xe29a97, 0x8137b133}, - {0xe29a98, 0x8137b134}, - {0xe29a99, 0x8137b135}, - {0xe29a9a, 0x8137b136}, - {0xe29a9b, 0x8137b137}, - {0xe29a9c, 0x8137b138}, - {0xe29a9d, 0x8137b139}, - {0xe29a9e, 0x8137b230}, - {0xe29a9f, 0x8137b231}, - {0xe29aa0, 0x8137b232}, - {0xe29aa1, 0x8137b233}, - {0xe29aa2, 0x8137b234}, - {0xe29aa3, 0x8137b235}, - {0xe29aa4, 0x8137b236}, - {0xe29aa5, 0x8137b237}, - {0xe29aa6, 0x8137b238}, - {0xe29aa7, 0x8137b239}, - {0xe29aa8, 0x8137b330}, - {0xe29aa9, 0x8137b331}, - {0xe29aaa, 0x8137b332}, - {0xe29aab, 0x8137b333}, - {0xe29aac, 0x8137b334}, - {0xe29aad, 0x8137b335}, - {0xe29aae, 0x8137b336}, - {0xe29aaf, 0x8137b337}, - {0xe29ab0, 0x8137b338}, - {0xe29ab1, 0x8137b339}, - {0xe29ab2, 0x8137b430}, - {0xe29ab3, 0x8137b431}, - {0xe29ab4, 0x8137b432}, - {0xe29ab5, 0x8137b433}, - {0xe29ab6, 0x8137b434}, - {0xe29ab7, 0x8137b435}, - {0xe29ab8, 0x8137b436}, - {0xe29ab9, 0x8137b437}, - {0xe29aba, 0x8137b438}, - {0xe29abb, 0x8137b439}, - {0xe29abc, 0x8137b530}, - {0xe29abd, 0x8137b531}, - {0xe29abe, 0x8137b532}, - {0xe29abf, 0x8137b533}, - {0xe29b80, 0x8137b534}, - {0xe29b81, 0x8137b535}, - {0xe29b82, 0x8137b536}, - {0xe29b83, 0x8137b537}, - {0xe29b84, 0x8137b538}, - {0xe29b85, 0x8137b539}, - {0xe29b86, 0x8137b630}, - {0xe29b87, 0x8137b631}, - {0xe29b88, 0x8137b632}, - {0xe29b89, 0x8137b633}, - {0xe29b8a, 0x8137b634}, - {0xe29b8b, 0x8137b635}, - {0xe29b8c, 0x8137b636}, - {0xe29b8d, 0x8137b637}, - {0xe29b8e, 0x8137b638}, - {0xe29b8f, 0x8137b639}, - {0xe29b90, 0x8137b730}, - {0xe29b91, 0x8137b731}, - {0xe29b92, 0x8137b732}, - {0xe29b93, 0x8137b733}, - {0xe29b94, 0x8137b734}, - {0xe29b95, 0x8137b735}, - {0xe29b96, 0x8137b736}, - {0xe29b97, 0x8137b737}, - {0xe29b98, 0x8137b738}, - {0xe29b99, 0x8137b739}, - {0xe29b9a, 0x8137b830}, - {0xe29b9b, 0x8137b831}, - {0xe29b9c, 0x8137b832}, - {0xe29b9d, 0x8137b833}, - {0xe29b9e, 0x8137b834}, - {0xe29b9f, 0x8137b835}, - {0xe29ba0, 0x8137b836}, - {0xe29ba1, 0x8137b837}, - {0xe29ba2, 0x8137b838}, - {0xe29ba3, 0x8137b839}, - {0xe29ba4, 0x8137b930}, - {0xe29ba5, 0x8137b931}, - {0xe29ba6, 0x8137b932}, - {0xe29ba7, 0x8137b933}, - {0xe29ba8, 0x8137b934}, - {0xe29ba9, 0x8137b935}, - {0xe29baa, 0x8137b936}, - {0xe29bab, 0x8137b937}, - {0xe29bac, 0x8137b938}, - {0xe29bad, 0x8137b939}, - {0xe29bae, 0x8137ba30}, - {0xe29baf, 0x8137ba31}, - {0xe29bb0, 0x8137ba32}, - {0xe29bb1, 0x8137ba33}, - {0xe29bb2, 0x8137ba34}, - {0xe29bb3, 0x8137ba35}, - {0xe29bb4, 0x8137ba36}, - {0xe29bb5, 0x8137ba37}, - {0xe29bb6, 0x8137ba38}, - {0xe29bb7, 0x8137ba39}, - {0xe29bb8, 0x8137bb30}, - {0xe29bb9, 0x8137bb31}, - {0xe29bba, 0x8137bb32}, - {0xe29bbb, 0x8137bb33}, - {0xe29bbc, 0x8137bb34}, - {0xe29bbd, 0x8137bb35}, - {0xe29bbe, 0x8137bb36}, - {0xe29bbf, 0x8137bb37}, - {0xe29c80, 0x8137bb38}, - {0xe29c81, 0x8137bb39}, - {0xe29c82, 0x8137bc30}, - {0xe29c83, 0x8137bc31}, - {0xe29c84, 0x8137bc32}, - {0xe29c85, 0x8137bc33}, - {0xe29c86, 0x8137bc34}, - {0xe29c87, 0x8137bc35}, - {0xe29c88, 0x8137bc36}, - {0xe29c89, 0x8137bc37}, - {0xe29c8a, 0x8137bc38}, - {0xe29c8b, 0x8137bc39}, - {0xe29c8c, 0x8137bd30}, - {0xe29c8d, 0x8137bd31}, - {0xe29c8e, 0x8137bd32}, - {0xe29c8f, 0x8137bd33}, - {0xe29c90, 0x8137bd34}, - {0xe29c91, 0x8137bd35}, - {0xe29c92, 0x8137bd36}, - {0xe29c93, 0x8137bd37}, - {0xe29c94, 0x8137bd38}, - {0xe29c95, 0x8137bd39}, - {0xe29c96, 0x8137be30}, - {0xe29c97, 0x8137be31}, - {0xe29c98, 0x8137be32}, - {0xe29c99, 0x8137be33}, - {0xe29c9a, 0x8137be34}, - {0xe29c9b, 0x8137be35}, - {0xe29c9c, 0x8137be36}, - {0xe29c9d, 0x8137be37}, - {0xe29c9e, 0x8137be38}, - {0xe29c9f, 0x8137be39}, - {0xe29ca0, 0x8137bf30}, - {0xe29ca1, 0x8137bf31}, - {0xe29ca2, 0x8137bf32}, - {0xe29ca3, 0x8137bf33}, - {0xe29ca4, 0x8137bf34}, - {0xe29ca5, 0x8137bf35}, - {0xe29ca6, 0x8137bf36}, - {0xe29ca7, 0x8137bf37}, - {0xe29ca8, 0x8137bf38}, - {0xe29ca9, 0x8137bf39}, - {0xe29caa, 0x8137c030}, - {0xe29cab, 0x8137c031}, - {0xe29cac, 0x8137c032}, - {0xe29cad, 0x8137c033}, - {0xe29cae, 0x8137c034}, - {0xe29caf, 0x8137c035}, - {0xe29cb0, 0x8137c036}, - {0xe29cb1, 0x8137c037}, - {0xe29cb2, 0x8137c038}, - {0xe29cb3, 0x8137c039}, - {0xe29cb4, 0x8137c130}, - {0xe29cb5, 0x8137c131}, - {0xe29cb6, 0x8137c132}, - {0xe29cb7, 0x8137c133}, - {0xe29cb8, 0x8137c134}, - {0xe29cb9, 0x8137c135}, - {0xe29cba, 0x8137c136}, - {0xe29cbb, 0x8137c137}, - {0xe29cbc, 0x8137c138}, - {0xe29cbd, 0x8137c139}, - {0xe29cbe, 0x8137c230}, - {0xe29cbf, 0x8137c231}, - {0xe29d80, 0x8137c232}, - {0xe29d81, 0x8137c233}, - {0xe29d82, 0x8137c234}, - {0xe29d83, 0x8137c235}, - {0xe29d84, 0x8137c236}, - {0xe29d85, 0x8137c237}, - {0xe29d86, 0x8137c238}, - {0xe29d87, 0x8137c239}, - {0xe29d88, 0x8137c330}, - {0xe29d89, 0x8137c331}, - {0xe29d8a, 0x8137c332}, - {0xe29d8b, 0x8137c333}, - {0xe29d8c, 0x8137c334}, - {0xe29d8d, 0x8137c335}, - {0xe29d8e, 0x8137c336}, - {0xe29d8f, 0x8137c337}, - {0xe29d90, 0x8137c338}, - {0xe29d91, 0x8137c339}, - {0xe29d92, 0x8137c430}, - {0xe29d93, 0x8137c431}, - {0xe29d94, 0x8137c432}, - {0xe29d95, 0x8137c433}, - {0xe29d96, 0x8137c434}, - {0xe29d97, 0x8137c435}, - {0xe29d98, 0x8137c436}, - {0xe29d99, 0x8137c437}, - {0xe29d9a, 0x8137c438}, - {0xe29d9b, 0x8137c439}, - {0xe29d9c, 0x8137c530}, - {0xe29d9d, 0x8137c531}, - {0xe29d9e, 0x8137c532}, - {0xe29d9f, 0x8137c533}, - {0xe29da0, 0x8137c534}, - {0xe29da1, 0x8137c535}, - {0xe29da2, 0x8137c536}, - {0xe29da3, 0x8137c537}, - {0xe29da4, 0x8137c538}, - {0xe29da5, 0x8137c539}, - {0xe29da6, 0x8137c630}, - {0xe29da7, 0x8137c631}, - {0xe29da8, 0x8137c632}, - {0xe29da9, 0x8137c633}, - {0xe29daa, 0x8137c634}, - {0xe29dab, 0x8137c635}, - {0xe29dac, 0x8137c636}, - {0xe29dad, 0x8137c637}, - {0xe29dae, 0x8137c638}, - {0xe29daf, 0x8137c639}, - {0xe29db0, 0x8137c730}, - {0xe29db1, 0x8137c731}, - {0xe29db2, 0x8137c732}, - {0xe29db3, 0x8137c733}, - {0xe29db4, 0x8137c734}, - {0xe29db5, 0x8137c735}, - {0xe29db6, 0x8137c736}, - {0xe29db7, 0x8137c737}, - {0xe29db8, 0x8137c738}, - {0xe29db9, 0x8137c739}, - {0xe29dba, 0x8137c830}, - {0xe29dbb, 0x8137c831}, - {0xe29dbc, 0x8137c832}, - {0xe29dbd, 0x8137c833}, - {0xe29dbe, 0x8137c834}, - {0xe29dbf, 0x8137c835}, - {0xe29e80, 0x8137c836}, - {0xe29e81, 0x8137c837}, - {0xe29e82, 0x8137c838}, - {0xe29e83, 0x8137c839}, - {0xe29e84, 0x8137c930}, - {0xe29e85, 0x8137c931}, - {0xe29e86, 0x8137c932}, - {0xe29e87, 0x8137c933}, - {0xe29e88, 0x8137c934}, - {0xe29e89, 0x8137c935}, - {0xe29e8a, 0x8137c936}, - {0xe29e8b, 0x8137c937}, - {0xe29e8c, 0x8137c938}, - {0xe29e8d, 0x8137c939}, - {0xe29e8e, 0x8137ca30}, - {0xe29e8f, 0x8137ca31}, - {0xe29e90, 0x8137ca32}, - {0xe29e91, 0x8137ca33}, - {0xe29e92, 0x8137ca34}, - {0xe29e93, 0x8137ca35}, - {0xe29e94, 0x8137ca36}, - {0xe29e95, 0x8137ca37}, - {0xe29e96, 0x8137ca38}, - {0xe29e97, 0x8137ca39}, - {0xe29e98, 0x8137cb30}, - {0xe29e99, 0x8137cb31}, - {0xe29e9a, 0x8137cb32}, - {0xe29e9b, 0x8137cb33}, - {0xe29e9c, 0x8137cb34}, - {0xe29e9d, 0x8137cb35}, - {0xe29e9e, 0x8137cb36}, - {0xe29e9f, 0x8137cb37}, - {0xe29ea0, 0x8137cb38}, - {0xe29ea1, 0x8137cb39}, - {0xe29ea2, 0x8137cc30}, - {0xe29ea3, 0x8137cc31}, - {0xe29ea4, 0x8137cc32}, - {0xe29ea5, 0x8137cc33}, - {0xe29ea6, 0x8137cc34}, - {0xe29ea7, 0x8137cc35}, - {0xe29ea8, 0x8137cc36}, - {0xe29ea9, 0x8137cc37}, - {0xe29eaa, 0x8137cc38}, - {0xe29eab, 0x8137cc39}, - {0xe29eac, 0x8137cd30}, - {0xe29ead, 0x8137cd31}, - {0xe29eae, 0x8137cd32}, - {0xe29eaf, 0x8137cd33}, - {0xe29eb0, 0x8137cd34}, - {0xe29eb1, 0x8137cd35}, - {0xe29eb2, 0x8137cd36}, - {0xe29eb3, 0x8137cd37}, - {0xe29eb4, 0x8137cd38}, - {0xe29eb5, 0x8137cd39}, - {0xe29eb6, 0x8137ce30}, - {0xe29eb7, 0x8137ce31}, - {0xe29eb8, 0x8137ce32}, - {0xe29eb9, 0x8137ce33}, - {0xe29eba, 0x8137ce34}, - {0xe29ebb, 0x8137ce35}, - {0xe29ebc, 0x8137ce36}, - {0xe29ebd, 0x8137ce37}, - {0xe29ebe, 0x8137ce38}, - {0xe29ebf, 0x8137ce39}, - {0xe29f80, 0x8137cf30}, - {0xe29f81, 0x8137cf31}, - {0xe29f82, 0x8137cf32}, - {0xe29f83, 0x8137cf33}, - {0xe29f84, 0x8137cf34}, - {0xe29f85, 0x8137cf35}, - {0xe29f86, 0x8137cf36}, - {0xe29f87, 0x8137cf37}, - {0xe29f88, 0x8137cf38}, - {0xe29f89, 0x8137cf39}, - {0xe29f8a, 0x8137d030}, - {0xe29f8b, 0x8137d031}, - {0xe29f8c, 0x8137d032}, - {0xe29f8d, 0x8137d033}, - {0xe29f8e, 0x8137d034}, - {0xe29f8f, 0x8137d035}, - {0xe29f90, 0x8137d036}, - {0xe29f91, 0x8137d037}, - {0xe29f92, 0x8137d038}, - {0xe29f93, 0x8137d039}, - {0xe29f94, 0x8137d130}, - {0xe29f95, 0x8137d131}, - {0xe29f96, 0x8137d132}, - {0xe29f97, 0x8137d133}, - {0xe29f98, 0x8137d134}, - {0xe29f99, 0x8137d135}, - {0xe29f9a, 0x8137d136}, - {0xe29f9b, 0x8137d137}, - {0xe29f9c, 0x8137d138}, - {0xe29f9d, 0x8137d139}, - {0xe29f9e, 0x8137d230}, - {0xe29f9f, 0x8137d231}, - {0xe29fa0, 0x8137d232}, - {0xe29fa1, 0x8137d233}, - {0xe29fa2, 0x8137d234}, - {0xe29fa3, 0x8137d235}, - {0xe29fa4, 0x8137d236}, - {0xe29fa5, 0x8137d237}, - {0xe29fa6, 0x8137d238}, - {0xe29fa7, 0x8137d239}, - {0xe29fa8, 0x8137d330}, - {0xe29fa9, 0x8137d331}, - {0xe29faa, 0x8137d332}, - {0xe29fab, 0x8137d333}, - {0xe29fac, 0x8137d334}, - {0xe29fad, 0x8137d335}, - {0xe29fae, 0x8137d336}, - {0xe29faf, 0x8137d337}, - {0xe29fb0, 0x8137d338}, - {0xe29fb1, 0x8137d339}, - {0xe29fb2, 0x8137d430}, - {0xe29fb3, 0x8137d431}, - {0xe29fb4, 0x8137d432}, - {0xe29fb5, 0x8137d433}, - {0xe29fb6, 0x8137d434}, - {0xe29fb7, 0x8137d435}, - {0xe29fb8, 0x8137d436}, - {0xe29fb9, 0x8137d437}, - {0xe29fba, 0x8137d438}, - {0xe29fbb, 0x8137d439}, - {0xe29fbc, 0x8137d530}, - {0xe29fbd, 0x8137d531}, - {0xe29fbe, 0x8137d532}, - {0xe29fbf, 0x8137d533}, - {0xe2a080, 0x8137d534}, - {0xe2a081, 0x8137d535}, - {0xe2a082, 0x8137d536}, - {0xe2a083, 0x8137d537}, - {0xe2a084, 0x8137d538}, - {0xe2a085, 0x8137d539}, - {0xe2a086, 0x8137d630}, - {0xe2a087, 0x8137d631}, - {0xe2a088, 0x8137d632}, - {0xe2a089, 0x8137d633}, - {0xe2a08a, 0x8137d634}, - {0xe2a08b, 0x8137d635}, - {0xe2a08c, 0x8137d636}, - {0xe2a08d, 0x8137d637}, - {0xe2a08e, 0x8137d638}, - {0xe2a08f, 0x8137d639}, - {0xe2a090, 0x8137d730}, - {0xe2a091, 0x8137d731}, - {0xe2a092, 0x8137d732}, - {0xe2a093, 0x8137d733}, - {0xe2a094, 0x8137d734}, - {0xe2a095, 0x8137d735}, - {0xe2a096, 0x8137d736}, - {0xe2a097, 0x8137d737}, - {0xe2a098, 0x8137d738}, - {0xe2a099, 0x8137d739}, - {0xe2a09a, 0x8137d830}, - {0xe2a09b, 0x8137d831}, - {0xe2a09c, 0x8137d832}, - {0xe2a09d, 0x8137d833}, - {0xe2a09e, 0x8137d834}, - {0xe2a09f, 0x8137d835}, - {0xe2a0a0, 0x8137d836}, - {0xe2a0a1, 0x8137d837}, - {0xe2a0a2, 0x8137d838}, - {0xe2a0a3, 0x8137d839}, - {0xe2a0a4, 0x8137d930}, - {0xe2a0a5, 0x8137d931}, - {0xe2a0a6, 0x8137d932}, - {0xe2a0a7, 0x8137d933}, - {0xe2a0a8, 0x8137d934}, - {0xe2a0a9, 0x8137d935}, - {0xe2a0aa, 0x8137d936}, - {0xe2a0ab, 0x8137d937}, - {0xe2a0ac, 0x8137d938}, - {0xe2a0ad, 0x8137d939}, - {0xe2a0ae, 0x8137da30}, - {0xe2a0af, 0x8137da31}, - {0xe2a0b0, 0x8137da32}, - {0xe2a0b1, 0x8137da33}, - {0xe2a0b2, 0x8137da34}, - {0xe2a0b3, 0x8137da35}, - {0xe2a0b4, 0x8137da36}, - {0xe2a0b5, 0x8137da37}, - {0xe2a0b6, 0x8137da38}, - {0xe2a0b7, 0x8137da39}, - {0xe2a0b8, 0x8137db30}, - {0xe2a0b9, 0x8137db31}, - {0xe2a0ba, 0x8137db32}, - {0xe2a0bb, 0x8137db33}, - {0xe2a0bc, 0x8137db34}, - {0xe2a0bd, 0x8137db35}, - {0xe2a0be, 0x8137db36}, - {0xe2a0bf, 0x8137db37}, - {0xe2a180, 0x8137db38}, - {0xe2a181, 0x8137db39}, - {0xe2a182, 0x8137dc30}, - {0xe2a183, 0x8137dc31}, - {0xe2a184, 0x8137dc32}, - {0xe2a185, 0x8137dc33}, - {0xe2a186, 0x8137dc34}, - {0xe2a187, 0x8137dc35}, - {0xe2a188, 0x8137dc36}, - {0xe2a189, 0x8137dc37}, - {0xe2a18a, 0x8137dc38}, - {0xe2a18b, 0x8137dc39}, - {0xe2a18c, 0x8137dd30}, - {0xe2a18d, 0x8137dd31}, - {0xe2a18e, 0x8137dd32}, - {0xe2a18f, 0x8137dd33}, - {0xe2a190, 0x8137dd34}, - {0xe2a191, 0x8137dd35}, - {0xe2a192, 0x8137dd36}, - {0xe2a193, 0x8137dd37}, - {0xe2a194, 0x8137dd38}, - {0xe2a195, 0x8137dd39}, - {0xe2a196, 0x8137de30}, - {0xe2a197, 0x8137de31}, - {0xe2a198, 0x8137de32}, - {0xe2a199, 0x8137de33}, - {0xe2a19a, 0x8137de34}, - {0xe2a19b, 0x8137de35}, - {0xe2a19c, 0x8137de36}, - {0xe2a19d, 0x8137de37}, - {0xe2a19e, 0x8137de38}, - {0xe2a19f, 0x8137de39}, - {0xe2a1a0, 0x8137df30}, - {0xe2a1a1, 0x8137df31}, - {0xe2a1a2, 0x8137df32}, - {0xe2a1a3, 0x8137df33}, - {0xe2a1a4, 0x8137df34}, - {0xe2a1a5, 0x8137df35}, - {0xe2a1a6, 0x8137df36}, - {0xe2a1a7, 0x8137df37}, - {0xe2a1a8, 0x8137df38}, - {0xe2a1a9, 0x8137df39}, - {0xe2a1aa, 0x8137e030}, - {0xe2a1ab, 0x8137e031}, - {0xe2a1ac, 0x8137e032}, - {0xe2a1ad, 0x8137e033}, - {0xe2a1ae, 0x8137e034}, - {0xe2a1af, 0x8137e035}, - {0xe2a1b0, 0x8137e036}, - {0xe2a1b1, 0x8137e037}, - {0xe2a1b2, 0x8137e038}, - {0xe2a1b3, 0x8137e039}, - {0xe2a1b4, 0x8137e130}, - {0xe2a1b5, 0x8137e131}, - {0xe2a1b6, 0x8137e132}, - {0xe2a1b7, 0x8137e133}, - {0xe2a1b8, 0x8137e134}, - {0xe2a1b9, 0x8137e135}, - {0xe2a1ba, 0x8137e136}, - {0xe2a1bb, 0x8137e137}, - {0xe2a1bc, 0x8137e138}, - {0xe2a1bd, 0x8137e139}, - {0xe2a1be, 0x8137e230}, - {0xe2a1bf, 0x8137e231}, - {0xe2a280, 0x8137e232}, - {0xe2a281, 0x8137e233}, - {0xe2a282, 0x8137e234}, - {0xe2a283, 0x8137e235}, - {0xe2a284, 0x8137e236}, - {0xe2a285, 0x8137e237}, - {0xe2a286, 0x8137e238}, - {0xe2a287, 0x8137e239}, - {0xe2a288, 0x8137e330}, - {0xe2a289, 0x8137e331}, - {0xe2a28a, 0x8137e332}, - {0xe2a28b, 0x8137e333}, - {0xe2a28c, 0x8137e334}, - {0xe2a28d, 0x8137e335}, - {0xe2a28e, 0x8137e336}, - {0xe2a28f, 0x8137e337}, - {0xe2a290, 0x8137e338}, - {0xe2a291, 0x8137e339}, - {0xe2a292, 0x8137e430}, - {0xe2a293, 0x8137e431}, - {0xe2a294, 0x8137e432}, - {0xe2a295, 0x8137e433}, - {0xe2a296, 0x8137e434}, - {0xe2a297, 0x8137e435}, - {0xe2a298, 0x8137e436}, - {0xe2a299, 0x8137e437}, - {0xe2a29a, 0x8137e438}, - {0xe2a29b, 0x8137e439}, - {0xe2a29c, 0x8137e530}, - {0xe2a29d, 0x8137e531}, - {0xe2a29e, 0x8137e532}, - {0xe2a29f, 0x8137e533}, - {0xe2a2a0, 0x8137e534}, - {0xe2a2a1, 0x8137e535}, - {0xe2a2a2, 0x8137e536}, - {0xe2a2a3, 0x8137e537}, - {0xe2a2a4, 0x8137e538}, - {0xe2a2a5, 0x8137e539}, - {0xe2a2a6, 0x8137e630}, - {0xe2a2a7, 0x8137e631}, - {0xe2a2a8, 0x8137e632}, - {0xe2a2a9, 0x8137e633}, - {0xe2a2aa, 0x8137e634}, - {0xe2a2ab, 0x8137e635}, - {0xe2a2ac, 0x8137e636}, - {0xe2a2ad, 0x8137e637}, - {0xe2a2ae, 0x8137e638}, - {0xe2a2af, 0x8137e639}, - {0xe2a2b0, 0x8137e730}, - {0xe2a2b1, 0x8137e731}, - {0xe2a2b2, 0x8137e732}, - {0xe2a2b3, 0x8137e733}, - {0xe2a2b4, 0x8137e734}, - {0xe2a2b5, 0x8137e735}, - {0xe2a2b6, 0x8137e736}, - {0xe2a2b7, 0x8137e737}, - {0xe2a2b8, 0x8137e738}, - {0xe2a2b9, 0x8137e739}, - {0xe2a2ba, 0x8137e830}, - {0xe2a2bb, 0x8137e831}, - {0xe2a2bc, 0x8137e832}, - {0xe2a2bd, 0x8137e833}, - {0xe2a2be, 0x8137e834}, - {0xe2a2bf, 0x8137e835}, - {0xe2a380, 0x8137e836}, - {0xe2a381, 0x8137e837}, - {0xe2a382, 0x8137e838}, - {0xe2a383, 0x8137e839}, - {0xe2a384, 0x8137e930}, - {0xe2a385, 0x8137e931}, - {0xe2a386, 0x8137e932}, - {0xe2a387, 0x8137e933}, - {0xe2a388, 0x8137e934}, - {0xe2a389, 0x8137e935}, - {0xe2a38a, 0x8137e936}, - {0xe2a38b, 0x8137e937}, - {0xe2a38c, 0x8137e938}, - {0xe2a38d, 0x8137e939}, - {0xe2a38e, 0x8137ea30}, - {0xe2a38f, 0x8137ea31}, - {0xe2a390, 0x8137ea32}, - {0xe2a391, 0x8137ea33}, - {0xe2a392, 0x8137ea34}, - {0xe2a393, 0x8137ea35}, - {0xe2a394, 0x8137ea36}, - {0xe2a395, 0x8137ea37}, - {0xe2a396, 0x8137ea38}, - {0xe2a397, 0x8137ea39}, - {0xe2a398, 0x8137eb30}, - {0xe2a399, 0x8137eb31}, - {0xe2a39a, 0x8137eb32}, - {0xe2a39b, 0x8137eb33}, - {0xe2a39c, 0x8137eb34}, - {0xe2a39d, 0x8137eb35}, - {0xe2a39e, 0x8137eb36}, - {0xe2a39f, 0x8137eb37}, - {0xe2a3a0, 0x8137eb38}, - {0xe2a3a1, 0x8137eb39}, - {0xe2a3a2, 0x8137ec30}, - {0xe2a3a3, 0x8137ec31}, - {0xe2a3a4, 0x8137ec32}, - {0xe2a3a5, 0x8137ec33}, - {0xe2a3a6, 0x8137ec34}, - {0xe2a3a7, 0x8137ec35}, - {0xe2a3a8, 0x8137ec36}, - {0xe2a3a9, 0x8137ec37}, - {0xe2a3aa, 0x8137ec38}, - {0xe2a3ab, 0x8137ec39}, - {0xe2a3ac, 0x8137ed30}, - {0xe2a3ad, 0x8137ed31}, - {0xe2a3ae, 0x8137ed32}, - {0xe2a3af, 0x8137ed33}, - {0xe2a3b0, 0x8137ed34}, - {0xe2a3b1, 0x8137ed35}, - {0xe2a3b2, 0x8137ed36}, - {0xe2a3b3, 0x8137ed37}, - {0xe2a3b4, 0x8137ed38}, - {0xe2a3b5, 0x8137ed39}, - {0xe2a3b6, 0x8137ee30}, - {0xe2a3b7, 0x8137ee31}, - {0xe2a3b8, 0x8137ee32}, - {0xe2a3b9, 0x8137ee33}, - {0xe2a3ba, 0x8137ee34}, - {0xe2a3bb, 0x8137ee35}, - {0xe2a3bc, 0x8137ee36}, - {0xe2a3bd, 0x8137ee37}, - {0xe2a3be, 0x8137ee38}, - {0xe2a3bf, 0x8137ee39}, - {0xe2a480, 0x8137ef30}, - {0xe2a481, 0x8137ef31}, - {0xe2a482, 0x8137ef32}, - {0xe2a483, 0x8137ef33}, - {0xe2a484, 0x8137ef34}, - {0xe2a485, 0x8137ef35}, - {0xe2a486, 0x8137ef36}, - {0xe2a487, 0x8137ef37}, - {0xe2a488, 0x8137ef38}, - {0xe2a489, 0x8137ef39}, - {0xe2a48a, 0x8137f030}, - {0xe2a48b, 0x8137f031}, - {0xe2a48c, 0x8137f032}, - {0xe2a48d, 0x8137f033}, - {0xe2a48e, 0x8137f034}, - {0xe2a48f, 0x8137f035}, - {0xe2a490, 0x8137f036}, - {0xe2a491, 0x8137f037}, - {0xe2a492, 0x8137f038}, - {0xe2a493, 0x8137f039}, - {0xe2a494, 0x8137f130}, - {0xe2a495, 0x8137f131}, - {0xe2a496, 0x8137f132}, - {0xe2a497, 0x8137f133}, - {0xe2a498, 0x8137f134}, - {0xe2a499, 0x8137f135}, - {0xe2a49a, 0x8137f136}, - {0xe2a49b, 0x8137f137}, - {0xe2a49c, 0x8137f138}, - {0xe2a49d, 0x8137f139}, - {0xe2a49e, 0x8137f230}, - {0xe2a49f, 0x8137f231}, - {0xe2a4a0, 0x8137f232}, - {0xe2a4a1, 0x8137f233}, - {0xe2a4a2, 0x8137f234}, - {0xe2a4a3, 0x8137f235}, - {0xe2a4a4, 0x8137f236}, - {0xe2a4a5, 0x8137f237}, - {0xe2a4a6, 0x8137f238}, - {0xe2a4a7, 0x8137f239}, - {0xe2a4a8, 0x8137f330}, - {0xe2a4a9, 0x8137f331}, - {0xe2a4aa, 0x8137f332}, - {0xe2a4ab, 0x8137f333}, - {0xe2a4ac, 0x8137f334}, - {0xe2a4ad, 0x8137f335}, - {0xe2a4ae, 0x8137f336}, - {0xe2a4af, 0x8137f337}, - {0xe2a4b0, 0x8137f338}, - {0xe2a4b1, 0x8137f339}, - {0xe2a4b2, 0x8137f430}, - {0xe2a4b3, 0x8137f431}, - {0xe2a4b4, 0x8137f432}, - {0xe2a4b5, 0x8137f433}, - {0xe2a4b6, 0x8137f434}, - {0xe2a4b7, 0x8137f435}, - {0xe2a4b8, 0x8137f436}, - {0xe2a4b9, 0x8137f437}, - {0xe2a4ba, 0x8137f438}, - {0xe2a4bb, 0x8137f439}, - {0xe2a4bc, 0x8137f530}, - {0xe2a4bd, 0x8137f531}, - {0xe2a4be, 0x8137f532}, - {0xe2a4bf, 0x8137f533}, - {0xe2a580, 0x8137f534}, - {0xe2a581, 0x8137f535}, - {0xe2a582, 0x8137f536}, - {0xe2a583, 0x8137f537}, - {0xe2a584, 0x8137f538}, - {0xe2a585, 0x8137f539}, - {0xe2a586, 0x8137f630}, - {0xe2a587, 0x8137f631}, - {0xe2a588, 0x8137f632}, - {0xe2a589, 0x8137f633}, - {0xe2a58a, 0x8137f634}, - {0xe2a58b, 0x8137f635}, - {0xe2a58c, 0x8137f636}, - {0xe2a58d, 0x8137f637}, - {0xe2a58e, 0x8137f638}, - {0xe2a58f, 0x8137f639}, - {0xe2a590, 0x8137f730}, - {0xe2a591, 0x8137f731}, - {0xe2a592, 0x8137f732}, - {0xe2a593, 0x8137f733}, - {0xe2a594, 0x8137f734}, - {0xe2a595, 0x8137f735}, - {0xe2a596, 0x8137f736}, - {0xe2a597, 0x8137f737}, - {0xe2a598, 0x8137f738}, - {0xe2a599, 0x8137f739}, - {0xe2a59a, 0x8137f830}, - {0xe2a59b, 0x8137f831}, - {0xe2a59c, 0x8137f832}, - {0xe2a59d, 0x8137f833}, - {0xe2a59e, 0x8137f834}, - {0xe2a59f, 0x8137f835}, - {0xe2a5a0, 0x8137f836}, - {0xe2a5a1, 0x8137f837}, - {0xe2a5a2, 0x8137f838}, - {0xe2a5a3, 0x8137f839}, - {0xe2a5a4, 0x8137f930}, - {0xe2a5a5, 0x8137f931}, - {0xe2a5a6, 0x8137f932}, - {0xe2a5a7, 0x8137f933}, - {0xe2a5a8, 0x8137f934}, - {0xe2a5a9, 0x8137f935}, - {0xe2a5aa, 0x8137f936}, - {0xe2a5ab, 0x8137f937}, - {0xe2a5ac, 0x8137f938}, - {0xe2a5ad, 0x8137f939}, - {0xe2a5ae, 0x8137fa30}, - {0xe2a5af, 0x8137fa31}, - {0xe2a5b0, 0x8137fa32}, - {0xe2a5b1, 0x8137fa33}, - {0xe2a5b2, 0x8137fa34}, - {0xe2a5b3, 0x8137fa35}, - {0xe2a5b4, 0x8137fa36}, - {0xe2a5b5, 0x8137fa37}, - {0xe2a5b6, 0x8137fa38}, - {0xe2a5b7, 0x8137fa39}, - {0xe2a5b8, 0x8137fb30}, - {0xe2a5b9, 0x8137fb31}, - {0xe2a5ba, 0x8137fb32}, - {0xe2a5bb, 0x8137fb33}, - {0xe2a5bc, 0x8137fb34}, - {0xe2a5bd, 0x8137fb35}, - {0xe2a5be, 0x8137fb36}, - {0xe2a5bf, 0x8137fb37}, - {0xe2a680, 0x8137fb38}, - {0xe2a681, 0x8137fb39}, - {0xe2a682, 0x8137fc30}, - {0xe2a683, 0x8137fc31}, - {0xe2a684, 0x8137fc32}, - {0xe2a685, 0x8137fc33}, - {0xe2a686, 0x8137fc34}, - {0xe2a687, 0x8137fc35}, - {0xe2a688, 0x8137fc36}, - {0xe2a689, 0x8137fc37}, - {0xe2a68a, 0x8137fc38}, - {0xe2a68b, 0x8137fc39}, - {0xe2a68c, 0x8137fd30}, - {0xe2a68d, 0x8137fd31}, - {0xe2a68e, 0x8137fd32}, - {0xe2a68f, 0x8137fd33}, - {0xe2a690, 0x8137fd34}, - {0xe2a691, 0x8137fd35}, - {0xe2a692, 0x8137fd36}, - {0xe2a693, 0x8137fd37}, - {0xe2a694, 0x8137fd38}, - {0xe2a695, 0x8137fd39}, - {0xe2a696, 0x8137fe30}, - {0xe2a697, 0x8137fe31}, - {0xe2a698, 0x8137fe32}, - {0xe2a699, 0x8137fe33}, - {0xe2a69a, 0x8137fe34}, - {0xe2a69b, 0x8137fe35}, - {0xe2a69c, 0x8137fe36}, - {0xe2a69d, 0x8137fe37}, - {0xe2a69e, 0x8137fe38}, - {0xe2a69f, 0x8137fe39}, - {0xe2a6a0, 0x81388130}, - {0xe2a6a1, 0x81388131}, - {0xe2a6a2, 0x81388132}, - {0xe2a6a3, 0x81388133}, - {0xe2a6a4, 0x81388134}, - {0xe2a6a5, 0x81388135}, - {0xe2a6a6, 0x81388136}, - {0xe2a6a7, 0x81388137}, - {0xe2a6a8, 0x81388138}, - {0xe2a6a9, 0x81388139}, - {0xe2a6aa, 0x81388230}, - {0xe2a6ab, 0x81388231}, - {0xe2a6ac, 0x81388232}, - {0xe2a6ad, 0x81388233}, - {0xe2a6ae, 0x81388234}, - {0xe2a6af, 0x81388235}, - {0xe2a6b0, 0x81388236}, - {0xe2a6b1, 0x81388237}, - {0xe2a6b2, 0x81388238}, - {0xe2a6b3, 0x81388239}, - {0xe2a6b4, 0x81388330}, - {0xe2a6b5, 0x81388331}, - {0xe2a6b6, 0x81388332}, - {0xe2a6b7, 0x81388333}, - {0xe2a6b8, 0x81388334}, - {0xe2a6b9, 0x81388335}, - {0xe2a6ba, 0x81388336}, - {0xe2a6bb, 0x81388337}, - {0xe2a6bc, 0x81388338}, - {0xe2a6bd, 0x81388339}, - {0xe2a6be, 0x81388430}, - {0xe2a6bf, 0x81388431}, - {0xe2a780, 0x81388432}, - {0xe2a781, 0x81388433}, - {0xe2a782, 0x81388434}, - {0xe2a783, 0x81388435}, - {0xe2a784, 0x81388436}, - {0xe2a785, 0x81388437}, - {0xe2a786, 0x81388438}, - {0xe2a787, 0x81388439}, - {0xe2a788, 0x81388530}, - {0xe2a789, 0x81388531}, - {0xe2a78a, 0x81388532}, - {0xe2a78b, 0x81388533}, - {0xe2a78c, 0x81388534}, - {0xe2a78d, 0x81388535}, - {0xe2a78e, 0x81388536}, - {0xe2a78f, 0x81388537}, - {0xe2a790, 0x81388538}, - {0xe2a791, 0x81388539}, - {0xe2a792, 0x81388630}, - {0xe2a793, 0x81388631}, - {0xe2a794, 0x81388632}, - {0xe2a795, 0x81388633}, - {0xe2a796, 0x81388634}, - {0xe2a797, 0x81388635}, - {0xe2a798, 0x81388636}, - {0xe2a799, 0x81388637}, - {0xe2a79a, 0x81388638}, - {0xe2a79b, 0x81388639}, - {0xe2a79c, 0x81388730}, - {0xe2a79d, 0x81388731}, - {0xe2a79e, 0x81388732}, - {0xe2a79f, 0x81388733}, - {0xe2a7a0, 0x81388734}, - {0xe2a7a1, 0x81388735}, - {0xe2a7a2, 0x81388736}, - {0xe2a7a3, 0x81388737}, - {0xe2a7a4, 0x81388738}, - {0xe2a7a5, 0x81388739}, - {0xe2a7a6, 0x81388830}, - {0xe2a7a7, 0x81388831}, - {0xe2a7a8, 0x81388832}, - {0xe2a7a9, 0x81388833}, - {0xe2a7aa, 0x81388834}, - {0xe2a7ab, 0x81388835}, - {0xe2a7ac, 0x81388836}, - {0xe2a7ad, 0x81388837}, - {0xe2a7ae, 0x81388838}, - {0xe2a7af, 0x81388839}, - {0xe2a7b0, 0x81388930}, - {0xe2a7b1, 0x81388931}, - {0xe2a7b2, 0x81388932}, - {0xe2a7b3, 0x81388933}, - {0xe2a7b4, 0x81388934}, - {0xe2a7b5, 0x81388935}, - {0xe2a7b6, 0x81388936}, - {0xe2a7b7, 0x81388937}, - {0xe2a7b8, 0x81388938}, - {0xe2a7b9, 0x81388939}, - {0xe2a7ba, 0x81388a30}, - {0xe2a7bb, 0x81388a31}, - {0xe2a7bc, 0x81388a32}, - {0xe2a7bd, 0x81388a33}, - {0xe2a7be, 0x81388a34}, - {0xe2a7bf, 0x81388a35}, - {0xe2a880, 0x81388a36}, - {0xe2a881, 0x81388a37}, - {0xe2a882, 0x81388a38}, - {0xe2a883, 0x81388a39}, - {0xe2a884, 0x81388b30}, - {0xe2a885, 0x81388b31}, - {0xe2a886, 0x81388b32}, - {0xe2a887, 0x81388b33}, - {0xe2a888, 0x81388b34}, - {0xe2a889, 0x81388b35}, - {0xe2a88a, 0x81388b36}, - {0xe2a88b, 0x81388b37}, - {0xe2a88c, 0x81388b38}, - {0xe2a88d, 0x81388b39}, - {0xe2a88e, 0x81388c30}, - {0xe2a88f, 0x81388c31}, - {0xe2a890, 0x81388c32}, - {0xe2a891, 0x81388c33}, - {0xe2a892, 0x81388c34}, - {0xe2a893, 0x81388c35}, - {0xe2a894, 0x81388c36}, - {0xe2a895, 0x81388c37}, - {0xe2a896, 0x81388c38}, - {0xe2a897, 0x81388c39}, - {0xe2a898, 0x81388d30}, - {0xe2a899, 0x81388d31}, - {0xe2a89a, 0x81388d32}, - {0xe2a89b, 0x81388d33}, - {0xe2a89c, 0x81388d34}, - {0xe2a89d, 0x81388d35}, - {0xe2a89e, 0x81388d36}, - {0xe2a89f, 0x81388d37}, - {0xe2a8a0, 0x81388d38}, - {0xe2a8a1, 0x81388d39}, - {0xe2a8a2, 0x81388e30}, - {0xe2a8a3, 0x81388e31}, - {0xe2a8a4, 0x81388e32}, - {0xe2a8a5, 0x81388e33}, - {0xe2a8a6, 0x81388e34}, - {0xe2a8a7, 0x81388e35}, - {0xe2a8a8, 0x81388e36}, - {0xe2a8a9, 0x81388e37}, - {0xe2a8aa, 0x81388e38}, - {0xe2a8ab, 0x81388e39}, - {0xe2a8ac, 0x81388f30}, - {0xe2a8ad, 0x81388f31}, - {0xe2a8ae, 0x81388f32}, - {0xe2a8af, 0x81388f33}, - {0xe2a8b0, 0x81388f34}, - {0xe2a8b1, 0x81388f35}, - {0xe2a8b2, 0x81388f36}, - {0xe2a8b3, 0x81388f37}, - {0xe2a8b4, 0x81388f38}, - {0xe2a8b5, 0x81388f39}, - {0xe2a8b6, 0x81389030}, - {0xe2a8b7, 0x81389031}, - {0xe2a8b8, 0x81389032}, - {0xe2a8b9, 0x81389033}, - {0xe2a8ba, 0x81389034}, - {0xe2a8bb, 0x81389035}, - {0xe2a8bc, 0x81389036}, - {0xe2a8bd, 0x81389037}, - {0xe2a8be, 0x81389038}, - {0xe2a8bf, 0x81389039}, - {0xe2a980, 0x81389130}, - {0xe2a981, 0x81389131}, - {0xe2a982, 0x81389132}, - {0xe2a983, 0x81389133}, - {0xe2a984, 0x81389134}, - {0xe2a985, 0x81389135}, - {0xe2a986, 0x81389136}, - {0xe2a987, 0x81389137}, - {0xe2a988, 0x81389138}, - {0xe2a989, 0x81389139}, - {0xe2a98a, 0x81389230}, - {0xe2a98b, 0x81389231}, - {0xe2a98c, 0x81389232}, - {0xe2a98d, 0x81389233}, - {0xe2a98e, 0x81389234}, - {0xe2a98f, 0x81389235}, - {0xe2a990, 0x81389236}, - {0xe2a991, 0x81389237}, - {0xe2a992, 0x81389238}, - {0xe2a993, 0x81389239}, - {0xe2a994, 0x81389330}, - {0xe2a995, 0x81389331}, - {0xe2a996, 0x81389332}, - {0xe2a997, 0x81389333}, - {0xe2a998, 0x81389334}, - {0xe2a999, 0x81389335}, - {0xe2a99a, 0x81389336}, - {0xe2a99b, 0x81389337}, - {0xe2a99c, 0x81389338}, - {0xe2a99d, 0x81389339}, - {0xe2a99e, 0x81389430}, - {0xe2a99f, 0x81389431}, - {0xe2a9a0, 0x81389432}, - {0xe2a9a1, 0x81389433}, - {0xe2a9a2, 0x81389434}, - {0xe2a9a3, 0x81389435}, - {0xe2a9a4, 0x81389436}, - {0xe2a9a5, 0x81389437}, - {0xe2a9a6, 0x81389438}, - {0xe2a9a7, 0x81389439}, - {0xe2a9a8, 0x81389530}, - {0xe2a9a9, 0x81389531}, - {0xe2a9aa, 0x81389532}, - {0xe2a9ab, 0x81389533}, - {0xe2a9ac, 0x81389534}, - {0xe2a9ad, 0x81389535}, - {0xe2a9ae, 0x81389536}, - {0xe2a9af, 0x81389537}, - {0xe2a9b0, 0x81389538}, - {0xe2a9b1, 0x81389539}, - {0xe2a9b2, 0x81389630}, - {0xe2a9b3, 0x81389631}, - {0xe2a9b4, 0x81389632}, - {0xe2a9b5, 0x81389633}, - {0xe2a9b6, 0x81389634}, - {0xe2a9b7, 0x81389635}, - {0xe2a9b8, 0x81389636}, - {0xe2a9b9, 0x81389637}, - {0xe2a9ba, 0x81389638}, - {0xe2a9bb, 0x81389639}, - {0xe2a9bc, 0x81389730}, - {0xe2a9bd, 0x81389731}, - {0xe2a9be, 0x81389732}, - {0xe2a9bf, 0x81389733}, - {0xe2aa80, 0x81389734}, - {0xe2aa81, 0x81389735}, - {0xe2aa82, 0x81389736}, - {0xe2aa83, 0x81389737}, - {0xe2aa84, 0x81389738}, - {0xe2aa85, 0x81389739}, - {0xe2aa86, 0x81389830}, - {0xe2aa87, 0x81389831}, - {0xe2aa88, 0x81389832}, - {0xe2aa89, 0x81389833}, - {0xe2aa8a, 0x81389834}, - {0xe2aa8b, 0x81389835}, - {0xe2aa8c, 0x81389836}, - {0xe2aa8d, 0x81389837}, - {0xe2aa8e, 0x81389838}, - {0xe2aa8f, 0x81389839}, - {0xe2aa90, 0x81389930}, - {0xe2aa91, 0x81389931}, - {0xe2aa92, 0x81389932}, - {0xe2aa93, 0x81389933}, - {0xe2aa94, 0x81389934}, - {0xe2aa95, 0x81389935}, - {0xe2aa96, 0x81389936}, - {0xe2aa97, 0x81389937}, - {0xe2aa98, 0x81389938}, - {0xe2aa99, 0x81389939}, - {0xe2aa9a, 0x81389a30}, - {0xe2aa9b, 0x81389a31}, - {0xe2aa9c, 0x81389a32}, - {0xe2aa9d, 0x81389a33}, - {0xe2aa9e, 0x81389a34}, - {0xe2aa9f, 0x81389a35}, - {0xe2aaa0, 0x81389a36}, - {0xe2aaa1, 0x81389a37}, - {0xe2aaa2, 0x81389a38}, - {0xe2aaa3, 0x81389a39}, - {0xe2aaa4, 0x81389b30}, - {0xe2aaa5, 0x81389b31}, - {0xe2aaa6, 0x81389b32}, - {0xe2aaa7, 0x81389b33}, - {0xe2aaa8, 0x81389b34}, - {0xe2aaa9, 0x81389b35}, - {0xe2aaaa, 0x81389b36}, - {0xe2aaab, 0x81389b37}, - {0xe2aaac, 0x81389b38}, - {0xe2aaad, 0x81389b39}, - {0xe2aaae, 0x81389c30}, - {0xe2aaaf, 0x81389c31}, - {0xe2aab0, 0x81389c32}, - {0xe2aab1, 0x81389c33}, - {0xe2aab2, 0x81389c34}, - {0xe2aab3, 0x81389c35}, - {0xe2aab4, 0x81389c36}, - {0xe2aab5, 0x81389c37}, - {0xe2aab6, 0x81389c38}, - {0xe2aab7, 0x81389c39}, - {0xe2aab8, 0x81389d30}, - {0xe2aab9, 0x81389d31}, - {0xe2aaba, 0x81389d32}, - {0xe2aabb, 0x81389d33}, - {0xe2aabc, 0x81389d34}, - {0xe2aabd, 0x81389d35}, - {0xe2aabe, 0x81389d36}, - {0xe2aabf, 0x81389d37}, - {0xe2ab80, 0x81389d38}, - {0xe2ab81, 0x81389d39}, - {0xe2ab82, 0x81389e30}, - {0xe2ab83, 0x81389e31}, - {0xe2ab84, 0x81389e32}, - {0xe2ab85, 0x81389e33}, - {0xe2ab86, 0x81389e34}, - {0xe2ab87, 0x81389e35}, - {0xe2ab88, 0x81389e36}, - {0xe2ab89, 0x81389e37}, - {0xe2ab8a, 0x81389e38}, - {0xe2ab8b, 0x81389e39}, - {0xe2ab8c, 0x81389f30}, - {0xe2ab8d, 0x81389f31}, - {0xe2ab8e, 0x81389f32}, - {0xe2ab8f, 0x81389f33}, - {0xe2ab90, 0x81389f34}, - {0xe2ab91, 0x81389f35}, - {0xe2ab92, 0x81389f36}, - {0xe2ab93, 0x81389f37}, - {0xe2ab94, 0x81389f38}, - {0xe2ab95, 0x81389f39}, - {0xe2ab96, 0x8138a030}, - {0xe2ab97, 0x8138a031}, - {0xe2ab98, 0x8138a032}, - {0xe2ab99, 0x8138a033}, - {0xe2ab9a, 0x8138a034}, - {0xe2ab9b, 0x8138a035}, - {0xe2ab9c, 0x8138a036}, - {0xe2ab9d, 0x8138a037}, - {0xe2ab9e, 0x8138a038}, - {0xe2ab9f, 0x8138a039}, - {0xe2aba0, 0x8138a130}, - {0xe2aba1, 0x8138a131}, - {0xe2aba2, 0x8138a132}, - {0xe2aba3, 0x8138a133}, - {0xe2aba4, 0x8138a134}, - {0xe2aba5, 0x8138a135}, - {0xe2aba6, 0x8138a136}, - {0xe2aba7, 0x8138a137}, - {0xe2aba8, 0x8138a138}, - {0xe2aba9, 0x8138a139}, - {0xe2abaa, 0x8138a230}, - {0xe2abab, 0x8138a231}, - {0xe2abac, 0x8138a232}, - {0xe2abad, 0x8138a233}, - {0xe2abae, 0x8138a234}, - {0xe2abaf, 0x8138a235}, - {0xe2abb0, 0x8138a236}, - {0xe2abb1, 0x8138a237}, - {0xe2abb2, 0x8138a238}, - {0xe2abb3, 0x8138a239}, - {0xe2abb4, 0x8138a330}, - {0xe2abb5, 0x8138a331}, - {0xe2abb6, 0x8138a332}, - {0xe2abb7, 0x8138a333}, - {0xe2abb8, 0x8138a334}, - {0xe2abb9, 0x8138a335}, - {0xe2abba, 0x8138a336}, - {0xe2abbb, 0x8138a337}, - {0xe2abbc, 0x8138a338}, - {0xe2abbd, 0x8138a339}, - {0xe2abbe, 0x8138a430}, - {0xe2abbf, 0x8138a431}, - {0xe2ac80, 0x8138a432}, - {0xe2ac81, 0x8138a433}, - {0xe2ac82, 0x8138a434}, - {0xe2ac83, 0x8138a435}, - {0xe2ac84, 0x8138a436}, - {0xe2ac85, 0x8138a437}, - {0xe2ac86, 0x8138a438}, - {0xe2ac87, 0x8138a439}, - {0xe2ac88, 0x8138a530}, - {0xe2ac89, 0x8138a531}, - {0xe2ac8a, 0x8138a532}, - {0xe2ac8b, 0x8138a533}, - {0xe2ac8c, 0x8138a534}, - {0xe2ac8d, 0x8138a535}, - {0xe2ac8e, 0x8138a536}, - {0xe2ac8f, 0x8138a537}, - {0xe2ac90, 0x8138a538}, - {0xe2ac91, 0x8138a539}, - {0xe2ac92, 0x8138a630}, - {0xe2ac93, 0x8138a631}, - {0xe2ac94, 0x8138a632}, - {0xe2ac95, 0x8138a633}, - {0xe2ac96, 0x8138a634}, - {0xe2ac97, 0x8138a635}, - {0xe2ac98, 0x8138a636}, - {0xe2ac99, 0x8138a637}, - {0xe2ac9a, 0x8138a638}, - {0xe2ac9b, 0x8138a639}, - {0xe2ac9c, 0x8138a730}, - {0xe2ac9d, 0x8138a731}, - {0xe2ac9e, 0x8138a732}, - {0xe2ac9f, 0x8138a733}, - {0xe2aca0, 0x8138a734}, - {0xe2aca1, 0x8138a735}, - {0xe2aca2, 0x8138a736}, - {0xe2aca3, 0x8138a737}, - {0xe2aca4, 0x8138a738}, - {0xe2aca5, 0x8138a739}, - {0xe2aca6, 0x8138a830}, - {0xe2aca7, 0x8138a831}, - {0xe2aca8, 0x8138a832}, - {0xe2aca9, 0x8138a833}, - {0xe2acaa, 0x8138a834}, - {0xe2acab, 0x8138a835}, - {0xe2acac, 0x8138a836}, - {0xe2acad, 0x8138a837}, - {0xe2acae, 0x8138a838}, - {0xe2acaf, 0x8138a839}, - {0xe2acb0, 0x8138a930}, - {0xe2acb1, 0x8138a931}, - {0xe2acb2, 0x8138a932}, - {0xe2acb3, 0x8138a933}, - {0xe2acb4, 0x8138a934}, - {0xe2acb5, 0x8138a935}, - {0xe2acb6, 0x8138a936}, - {0xe2acb7, 0x8138a937}, - {0xe2acb8, 0x8138a938}, - {0xe2acb9, 0x8138a939}, - {0xe2acba, 0x8138aa30}, - {0xe2acbb, 0x8138aa31}, - {0xe2acbc, 0x8138aa32}, - {0xe2acbd, 0x8138aa33}, - {0xe2acbe, 0x8138aa34}, - {0xe2acbf, 0x8138aa35}, - {0xe2ad80, 0x8138aa36}, - {0xe2ad81, 0x8138aa37}, - {0xe2ad82, 0x8138aa38}, - {0xe2ad83, 0x8138aa39}, - {0xe2ad84, 0x8138ab30}, - {0xe2ad85, 0x8138ab31}, - {0xe2ad86, 0x8138ab32}, - {0xe2ad87, 0x8138ab33}, - {0xe2ad88, 0x8138ab34}, - {0xe2ad89, 0x8138ab35}, - {0xe2ad8a, 0x8138ab36}, - {0xe2ad8b, 0x8138ab37}, - {0xe2ad8c, 0x8138ab38}, - {0xe2ad8d, 0x8138ab39}, - {0xe2ad8e, 0x8138ac30}, - {0xe2ad8f, 0x8138ac31}, - {0xe2ad90, 0x8138ac32}, - {0xe2ad91, 0x8138ac33}, - {0xe2ad92, 0x8138ac34}, - {0xe2ad93, 0x8138ac35}, - {0xe2ad94, 0x8138ac36}, - {0xe2ad95, 0x8138ac37}, - {0xe2ad96, 0x8138ac38}, - {0xe2ad97, 0x8138ac39}, - {0xe2ad98, 0x8138ad30}, - {0xe2ad99, 0x8138ad31}, - {0xe2ad9a, 0x8138ad32}, - {0xe2ad9b, 0x8138ad33}, - {0xe2ad9c, 0x8138ad34}, - {0xe2ad9d, 0x8138ad35}, - {0xe2ad9e, 0x8138ad36}, - {0xe2ad9f, 0x8138ad37}, - {0xe2ada0, 0x8138ad38}, - {0xe2ada1, 0x8138ad39}, - {0xe2ada2, 0x8138ae30}, - {0xe2ada3, 0x8138ae31}, - {0xe2ada4, 0x8138ae32}, - {0xe2ada5, 0x8138ae33}, - {0xe2ada6, 0x8138ae34}, - {0xe2ada7, 0x8138ae35}, - {0xe2ada8, 0x8138ae36}, - {0xe2ada9, 0x8138ae37}, - {0xe2adaa, 0x8138ae38}, - {0xe2adab, 0x8138ae39}, - {0xe2adac, 0x8138af30}, - {0xe2adad, 0x8138af31}, - {0xe2adae, 0x8138af32}, - {0xe2adaf, 0x8138af33}, - {0xe2adb0, 0x8138af34}, - {0xe2adb1, 0x8138af35}, - {0xe2adb2, 0x8138af36}, - {0xe2adb3, 0x8138af37}, - {0xe2adb4, 0x8138af38}, - {0xe2adb5, 0x8138af39}, - {0xe2adb6, 0x8138b030}, - {0xe2adb7, 0x8138b031}, - {0xe2adb8, 0x8138b032}, - {0xe2adb9, 0x8138b033}, - {0xe2adba, 0x8138b034}, - {0xe2adbb, 0x8138b035}, - {0xe2adbc, 0x8138b036}, - {0xe2adbd, 0x8138b037}, - {0xe2adbe, 0x8138b038}, - {0xe2adbf, 0x8138b039}, - {0xe2ae80, 0x8138b130}, - {0xe2ae81, 0x8138b131}, - {0xe2ae82, 0x8138b132}, - {0xe2ae83, 0x8138b133}, - {0xe2ae84, 0x8138b134}, - {0xe2ae85, 0x8138b135}, - {0xe2ae86, 0x8138b136}, - {0xe2ae87, 0x8138b137}, - {0xe2ae88, 0x8138b138}, - {0xe2ae89, 0x8138b139}, - {0xe2ae8a, 0x8138b230}, - {0xe2ae8b, 0x8138b231}, - {0xe2ae8c, 0x8138b232}, - {0xe2ae8d, 0x8138b233}, - {0xe2ae8e, 0x8138b234}, - {0xe2ae8f, 0x8138b235}, - {0xe2ae90, 0x8138b236}, - {0xe2ae91, 0x8138b237}, - {0xe2ae92, 0x8138b238}, - {0xe2ae93, 0x8138b239}, - {0xe2ae94, 0x8138b330}, - {0xe2ae95, 0x8138b331}, - {0xe2ae96, 0x8138b332}, - {0xe2ae97, 0x8138b333}, - {0xe2ae98, 0x8138b334}, - {0xe2ae99, 0x8138b335}, - {0xe2ae9a, 0x8138b336}, - {0xe2ae9b, 0x8138b337}, - {0xe2ae9c, 0x8138b338}, - {0xe2ae9d, 0x8138b339}, - {0xe2ae9e, 0x8138b430}, - {0xe2ae9f, 0x8138b431}, - {0xe2aea0, 0x8138b432}, - {0xe2aea1, 0x8138b433}, - {0xe2aea2, 0x8138b434}, - {0xe2aea3, 0x8138b435}, - {0xe2aea4, 0x8138b436}, - {0xe2aea5, 0x8138b437}, - {0xe2aea6, 0x8138b438}, - {0xe2aea7, 0x8138b439}, - {0xe2aea8, 0x8138b530}, - {0xe2aea9, 0x8138b531}, - {0xe2aeaa, 0x8138b532}, - {0xe2aeab, 0x8138b533}, - {0xe2aeac, 0x8138b534}, - {0xe2aead, 0x8138b535}, - {0xe2aeae, 0x8138b536}, - {0xe2aeaf, 0x8138b537}, - {0xe2aeb0, 0x8138b538}, - {0xe2aeb1, 0x8138b539}, - {0xe2aeb2, 0x8138b630}, - {0xe2aeb3, 0x8138b631}, - {0xe2aeb4, 0x8138b632}, - {0xe2aeb5, 0x8138b633}, - {0xe2aeb6, 0x8138b634}, - {0xe2aeb7, 0x8138b635}, - {0xe2aeb8, 0x8138b636}, - {0xe2aeb9, 0x8138b637}, - {0xe2aeba, 0x8138b638}, - {0xe2aebb, 0x8138b639}, - {0xe2aebc, 0x8138b730}, - {0xe2aebd, 0x8138b731}, - {0xe2aebe, 0x8138b732}, - {0xe2aebf, 0x8138b733}, - {0xe2af80, 0x8138b734}, - {0xe2af81, 0x8138b735}, - {0xe2af82, 0x8138b736}, - {0xe2af83, 0x8138b737}, - {0xe2af84, 0x8138b738}, - {0xe2af85, 0x8138b739}, - {0xe2af86, 0x8138b830}, - {0xe2af87, 0x8138b831}, - {0xe2af88, 0x8138b832}, - {0xe2af89, 0x8138b833}, - {0xe2af8a, 0x8138b834}, - {0xe2af8b, 0x8138b835}, - {0xe2af8c, 0x8138b836}, - {0xe2af8d, 0x8138b837}, - {0xe2af8e, 0x8138b838}, - {0xe2af8f, 0x8138b839}, - {0xe2af90, 0x8138b930}, - {0xe2af91, 0x8138b931}, - {0xe2af92, 0x8138b932}, - {0xe2af93, 0x8138b933}, - {0xe2af94, 0x8138b934}, - {0xe2af95, 0x8138b935}, - {0xe2af96, 0x8138b936}, - {0xe2af97, 0x8138b937}, - {0xe2af98, 0x8138b938}, - {0xe2af99, 0x8138b939}, - {0xe2af9a, 0x8138ba30}, - {0xe2af9b, 0x8138ba31}, - {0xe2af9c, 0x8138ba32}, - {0xe2af9d, 0x8138ba33}, - {0xe2af9e, 0x8138ba34}, - {0xe2af9f, 0x8138ba35}, - {0xe2afa0, 0x8138ba36}, - {0xe2afa1, 0x8138ba37}, - {0xe2afa2, 0x8138ba38}, - {0xe2afa3, 0x8138ba39}, - {0xe2afa4, 0x8138bb30}, - {0xe2afa5, 0x8138bb31}, - {0xe2afa6, 0x8138bb32}, - {0xe2afa7, 0x8138bb33}, - {0xe2afa8, 0x8138bb34}, - {0xe2afa9, 0x8138bb35}, - {0xe2afaa, 0x8138bb36}, - {0xe2afab, 0x8138bb37}, - {0xe2afac, 0x8138bb38}, - {0xe2afad, 0x8138bb39}, - {0xe2afae, 0x8138bc30}, - {0xe2afaf, 0x8138bc31}, - {0xe2afb0, 0x8138bc32}, - {0xe2afb1, 0x8138bc33}, - {0xe2afb2, 0x8138bc34}, - {0xe2afb3, 0x8138bc35}, - {0xe2afb4, 0x8138bc36}, - {0xe2afb5, 0x8138bc37}, - {0xe2afb6, 0x8138bc38}, - {0xe2afb7, 0x8138bc39}, - {0xe2afb8, 0x8138bd30}, - {0xe2afb9, 0x8138bd31}, - {0xe2afba, 0x8138bd32}, - {0xe2afbb, 0x8138bd33}, - {0xe2afbc, 0x8138bd34}, - {0xe2afbd, 0x8138bd35}, - {0xe2afbe, 0x8138bd36}, - {0xe2afbf, 0x8138bd37}, - {0xe2b080, 0x8138bd38}, - {0xe2b081, 0x8138bd39}, - {0xe2b082, 0x8138be30}, - {0xe2b083, 0x8138be31}, - {0xe2b084, 0x8138be32}, - {0xe2b085, 0x8138be33}, - {0xe2b086, 0x8138be34}, - {0xe2b087, 0x8138be35}, - {0xe2b088, 0x8138be36}, - {0xe2b089, 0x8138be37}, - {0xe2b08a, 0x8138be38}, - {0xe2b08b, 0x8138be39}, - {0xe2b08c, 0x8138bf30}, - {0xe2b08d, 0x8138bf31}, - {0xe2b08e, 0x8138bf32}, - {0xe2b08f, 0x8138bf33}, - {0xe2b090, 0x8138bf34}, - {0xe2b091, 0x8138bf35}, - {0xe2b092, 0x8138bf36}, - {0xe2b093, 0x8138bf37}, - {0xe2b094, 0x8138bf38}, - {0xe2b095, 0x8138bf39}, - {0xe2b096, 0x8138c030}, - {0xe2b097, 0x8138c031}, - {0xe2b098, 0x8138c032}, - {0xe2b099, 0x8138c033}, - {0xe2b09a, 0x8138c034}, - {0xe2b09b, 0x8138c035}, - {0xe2b09c, 0x8138c036}, - {0xe2b09d, 0x8138c037}, - {0xe2b09e, 0x8138c038}, - {0xe2b09f, 0x8138c039}, - {0xe2b0a0, 0x8138c130}, - {0xe2b0a1, 0x8138c131}, - {0xe2b0a2, 0x8138c132}, - {0xe2b0a3, 0x8138c133}, - {0xe2b0a4, 0x8138c134}, - {0xe2b0a5, 0x8138c135}, - {0xe2b0a6, 0x8138c136}, - {0xe2b0a7, 0x8138c137}, - {0xe2b0a8, 0x8138c138}, - {0xe2b0a9, 0x8138c139}, - {0xe2b0aa, 0x8138c230}, - {0xe2b0ab, 0x8138c231}, - {0xe2b0ac, 0x8138c232}, - {0xe2b0ad, 0x8138c233}, - {0xe2b0ae, 0x8138c234}, - {0xe2b0af, 0x8138c235}, - {0xe2b0b0, 0x8138c236}, - {0xe2b0b1, 0x8138c237}, - {0xe2b0b2, 0x8138c238}, - {0xe2b0b3, 0x8138c239}, - {0xe2b0b4, 0x8138c330}, - {0xe2b0b5, 0x8138c331}, - {0xe2b0b6, 0x8138c332}, - {0xe2b0b7, 0x8138c333}, - {0xe2b0b8, 0x8138c334}, - {0xe2b0b9, 0x8138c335}, - {0xe2b0ba, 0x8138c336}, - {0xe2b0bb, 0x8138c337}, - {0xe2b0bc, 0x8138c338}, - {0xe2b0bd, 0x8138c339}, - {0xe2b0be, 0x8138c430}, - {0xe2b0bf, 0x8138c431}, - {0xe2b180, 0x8138c432}, - {0xe2b181, 0x8138c433}, - {0xe2b182, 0x8138c434}, - {0xe2b183, 0x8138c435}, - {0xe2b184, 0x8138c436}, - {0xe2b185, 0x8138c437}, - {0xe2b186, 0x8138c438}, - {0xe2b187, 0x8138c439}, - {0xe2b188, 0x8138c530}, - {0xe2b189, 0x8138c531}, - {0xe2b18a, 0x8138c532}, - {0xe2b18b, 0x8138c533}, - {0xe2b18c, 0x8138c534}, - {0xe2b18d, 0x8138c535}, - {0xe2b18e, 0x8138c536}, - {0xe2b18f, 0x8138c537}, - {0xe2b190, 0x8138c538}, - {0xe2b191, 0x8138c539}, - {0xe2b192, 0x8138c630}, - {0xe2b193, 0x8138c631}, - {0xe2b194, 0x8138c632}, - {0xe2b195, 0x8138c633}, - {0xe2b196, 0x8138c634}, - {0xe2b197, 0x8138c635}, - {0xe2b198, 0x8138c636}, - {0xe2b199, 0x8138c637}, - {0xe2b19a, 0x8138c638}, - {0xe2b19b, 0x8138c639}, - {0xe2b19c, 0x8138c730}, - {0xe2b19d, 0x8138c731}, - {0xe2b19e, 0x8138c732}, - {0xe2b19f, 0x8138c733}, - {0xe2b1a0, 0x8138c734}, - {0xe2b1a1, 0x8138c735}, - {0xe2b1a2, 0x8138c736}, - {0xe2b1a3, 0x8138c737}, - {0xe2b1a4, 0x8138c738}, - {0xe2b1a5, 0x8138c739}, - {0xe2b1a6, 0x8138c830}, - {0xe2b1a7, 0x8138c831}, - {0xe2b1a8, 0x8138c832}, - {0xe2b1a9, 0x8138c833}, - {0xe2b1aa, 0x8138c834}, - {0xe2b1ab, 0x8138c835}, - {0xe2b1ac, 0x8138c836}, - {0xe2b1ad, 0x8138c837}, - {0xe2b1ae, 0x8138c838}, - {0xe2b1af, 0x8138c839}, - {0xe2b1b0, 0x8138c930}, - {0xe2b1b1, 0x8138c931}, - {0xe2b1b2, 0x8138c932}, - {0xe2b1b3, 0x8138c933}, - {0xe2b1b4, 0x8138c934}, - {0xe2b1b5, 0x8138c935}, - {0xe2b1b6, 0x8138c936}, - {0xe2b1b7, 0x8138c937}, - {0xe2b1b8, 0x8138c938}, - {0xe2b1b9, 0x8138c939}, - {0xe2b1ba, 0x8138ca30}, - {0xe2b1bb, 0x8138ca31}, - {0xe2b1bc, 0x8138ca32}, - {0xe2b1bd, 0x8138ca33}, - {0xe2b1be, 0x8138ca34}, - {0xe2b1bf, 0x8138ca35}, - {0xe2b280, 0x8138ca36}, - {0xe2b281, 0x8138ca37}, - {0xe2b282, 0x8138ca38}, - {0xe2b283, 0x8138ca39}, - {0xe2b284, 0x8138cb30}, - {0xe2b285, 0x8138cb31}, - {0xe2b286, 0x8138cb32}, - {0xe2b287, 0x8138cb33}, - {0xe2b288, 0x8138cb34}, - {0xe2b289, 0x8138cb35}, - {0xe2b28a, 0x8138cb36}, - {0xe2b28b, 0x8138cb37}, - {0xe2b28c, 0x8138cb38}, - {0xe2b28d, 0x8138cb39}, - {0xe2b28e, 0x8138cc30}, - {0xe2b28f, 0x8138cc31}, - {0xe2b290, 0x8138cc32}, - {0xe2b291, 0x8138cc33}, - {0xe2b292, 0x8138cc34}, - {0xe2b293, 0x8138cc35}, - {0xe2b294, 0x8138cc36}, - {0xe2b295, 0x8138cc37}, - {0xe2b296, 0x8138cc38}, - {0xe2b297, 0x8138cc39}, - {0xe2b298, 0x8138cd30}, - {0xe2b299, 0x8138cd31}, - {0xe2b29a, 0x8138cd32}, - {0xe2b29b, 0x8138cd33}, - {0xe2b29c, 0x8138cd34}, - {0xe2b29d, 0x8138cd35}, - {0xe2b29e, 0x8138cd36}, - {0xe2b29f, 0x8138cd37}, - {0xe2b2a0, 0x8138cd38}, - {0xe2b2a1, 0x8138cd39}, - {0xe2b2a2, 0x8138ce30}, - {0xe2b2a3, 0x8138ce31}, - {0xe2b2a4, 0x8138ce32}, - {0xe2b2a5, 0x8138ce33}, - {0xe2b2a6, 0x8138ce34}, - {0xe2b2a7, 0x8138ce35}, - {0xe2b2a8, 0x8138ce36}, - {0xe2b2a9, 0x8138ce37}, - {0xe2b2aa, 0x8138ce38}, - {0xe2b2ab, 0x8138ce39}, - {0xe2b2ac, 0x8138cf30}, - {0xe2b2ad, 0x8138cf31}, - {0xe2b2ae, 0x8138cf32}, - {0xe2b2af, 0x8138cf33}, - {0xe2b2b0, 0x8138cf34}, - {0xe2b2b1, 0x8138cf35}, - {0xe2b2b2, 0x8138cf36}, - {0xe2b2b3, 0x8138cf37}, - {0xe2b2b4, 0x8138cf38}, - {0xe2b2b5, 0x8138cf39}, - {0xe2b2b6, 0x8138d030}, - {0xe2b2b7, 0x8138d031}, - {0xe2b2b8, 0x8138d032}, - {0xe2b2b9, 0x8138d033}, - {0xe2b2ba, 0x8138d034}, - {0xe2b2bb, 0x8138d035}, - {0xe2b2bc, 0x8138d036}, - {0xe2b2bd, 0x8138d037}, - {0xe2b2be, 0x8138d038}, - {0xe2b2bf, 0x8138d039}, - {0xe2b380, 0x8138d130}, - {0xe2b381, 0x8138d131}, - {0xe2b382, 0x8138d132}, - {0xe2b383, 0x8138d133}, - {0xe2b384, 0x8138d134}, - {0xe2b385, 0x8138d135}, - {0xe2b386, 0x8138d136}, - {0xe2b387, 0x8138d137}, - {0xe2b388, 0x8138d138}, - {0xe2b389, 0x8138d139}, - {0xe2b38a, 0x8138d230}, - {0xe2b38b, 0x8138d231}, - {0xe2b38c, 0x8138d232}, - {0xe2b38d, 0x8138d233}, - {0xe2b38e, 0x8138d234}, - {0xe2b38f, 0x8138d235}, - {0xe2b390, 0x8138d236}, - {0xe2b391, 0x8138d237}, - {0xe2b392, 0x8138d238}, - {0xe2b393, 0x8138d239}, - {0xe2b394, 0x8138d330}, - {0xe2b395, 0x8138d331}, - {0xe2b396, 0x8138d332}, - {0xe2b397, 0x8138d333}, - {0xe2b398, 0x8138d334}, - {0xe2b399, 0x8138d335}, - {0xe2b39a, 0x8138d336}, - {0xe2b39b, 0x8138d337}, - {0xe2b39c, 0x8138d338}, - {0xe2b39d, 0x8138d339}, - {0xe2b39e, 0x8138d430}, - {0xe2b39f, 0x8138d431}, - {0xe2b3a0, 0x8138d432}, - {0xe2b3a1, 0x8138d433}, - {0xe2b3a2, 0x8138d434}, - {0xe2b3a3, 0x8138d435}, - {0xe2b3a4, 0x8138d436}, - {0xe2b3a5, 0x8138d437}, - {0xe2b3a6, 0x8138d438}, - {0xe2b3a7, 0x8138d439}, - {0xe2b3a8, 0x8138d530}, - {0xe2b3a9, 0x8138d531}, - {0xe2b3aa, 0x8138d532}, - {0xe2b3ab, 0x8138d533}, - {0xe2b3ac, 0x8138d534}, - {0xe2b3ad, 0x8138d535}, - {0xe2b3ae, 0x8138d536}, - {0xe2b3af, 0x8138d537}, - {0xe2b3b0, 0x8138d538}, - {0xe2b3b1, 0x8138d539}, - {0xe2b3b2, 0x8138d630}, - {0xe2b3b3, 0x8138d631}, - {0xe2b3b4, 0x8138d632}, - {0xe2b3b5, 0x8138d633}, - {0xe2b3b6, 0x8138d634}, - {0xe2b3b7, 0x8138d635}, - {0xe2b3b8, 0x8138d636}, - {0xe2b3b9, 0x8138d637}, - {0xe2b3ba, 0x8138d638}, - {0xe2b3bb, 0x8138d639}, - {0xe2b3bc, 0x8138d730}, - {0xe2b3bd, 0x8138d731}, - {0xe2b3be, 0x8138d732}, - {0xe2b3bf, 0x8138d733}, - {0xe2b480, 0x8138d734}, - {0xe2b481, 0x8138d735}, - {0xe2b482, 0x8138d736}, - {0xe2b483, 0x8138d737}, - {0xe2b484, 0x8138d738}, - {0xe2b485, 0x8138d739}, - {0xe2b486, 0x8138d830}, - {0xe2b487, 0x8138d831}, - {0xe2b488, 0x8138d832}, - {0xe2b489, 0x8138d833}, - {0xe2b48a, 0x8138d834}, - {0xe2b48b, 0x8138d835}, - {0xe2b48c, 0x8138d836}, - {0xe2b48d, 0x8138d837}, - {0xe2b48e, 0x8138d838}, - {0xe2b48f, 0x8138d839}, - {0xe2b490, 0x8138d930}, - {0xe2b491, 0x8138d931}, - {0xe2b492, 0x8138d932}, - {0xe2b493, 0x8138d933}, - {0xe2b494, 0x8138d934}, - {0xe2b495, 0x8138d935}, - {0xe2b496, 0x8138d936}, - {0xe2b497, 0x8138d937}, - {0xe2b498, 0x8138d938}, - {0xe2b499, 0x8138d939}, - {0xe2b49a, 0x8138da30}, - {0xe2b49b, 0x8138da31}, - {0xe2b49c, 0x8138da32}, - {0xe2b49d, 0x8138da33}, - {0xe2b49e, 0x8138da34}, - {0xe2b49f, 0x8138da35}, - {0xe2b4a0, 0x8138da36}, - {0xe2b4a1, 0x8138da37}, - {0xe2b4a2, 0x8138da38}, - {0xe2b4a3, 0x8138da39}, - {0xe2b4a4, 0x8138db30}, - {0xe2b4a5, 0x8138db31}, - {0xe2b4a6, 0x8138db32}, - {0xe2b4a7, 0x8138db33}, - {0xe2b4a8, 0x8138db34}, - {0xe2b4a9, 0x8138db35}, - {0xe2b4aa, 0x8138db36}, - {0xe2b4ab, 0x8138db37}, - {0xe2b4ac, 0x8138db38}, - {0xe2b4ad, 0x8138db39}, - {0xe2b4ae, 0x8138dc30}, - {0xe2b4af, 0x8138dc31}, - {0xe2b4b0, 0x8138dc32}, - {0xe2b4b1, 0x8138dc33}, - {0xe2b4b2, 0x8138dc34}, - {0xe2b4b3, 0x8138dc35}, - {0xe2b4b4, 0x8138dc36}, - {0xe2b4b5, 0x8138dc37}, - {0xe2b4b6, 0x8138dc38}, - {0xe2b4b7, 0x8138dc39}, - {0xe2b4b8, 0x8138dd30}, - {0xe2b4b9, 0x8138dd31}, - {0xe2b4ba, 0x8138dd32}, - {0xe2b4bb, 0x8138dd33}, - {0xe2b4bc, 0x8138dd34}, - {0xe2b4bd, 0x8138dd35}, - {0xe2b4be, 0x8138dd36}, - {0xe2b4bf, 0x8138dd37}, - {0xe2b580, 0x8138dd38}, - {0xe2b581, 0x8138dd39}, - {0xe2b582, 0x8138de30}, - {0xe2b583, 0x8138de31}, - {0xe2b584, 0x8138de32}, - {0xe2b585, 0x8138de33}, - {0xe2b586, 0x8138de34}, - {0xe2b587, 0x8138de35}, - {0xe2b588, 0x8138de36}, - {0xe2b589, 0x8138de37}, - {0xe2b58a, 0x8138de38}, - {0xe2b58b, 0x8138de39}, - {0xe2b58c, 0x8138df30}, - {0xe2b58d, 0x8138df31}, - {0xe2b58e, 0x8138df32}, - {0xe2b58f, 0x8138df33}, - {0xe2b590, 0x8138df34}, - {0xe2b591, 0x8138df35}, - {0xe2b592, 0x8138df36}, - {0xe2b593, 0x8138df37}, - {0xe2b594, 0x8138df38}, - {0xe2b595, 0x8138df39}, - {0xe2b596, 0x8138e030}, - {0xe2b597, 0x8138e031}, - {0xe2b598, 0x8138e032}, - {0xe2b599, 0x8138e033}, - {0xe2b59a, 0x8138e034}, - {0xe2b59b, 0x8138e035}, - {0xe2b59c, 0x8138e036}, - {0xe2b59d, 0x8138e037}, - {0xe2b59e, 0x8138e038}, - {0xe2b59f, 0x8138e039}, - {0xe2b5a0, 0x8138e130}, - {0xe2b5a1, 0x8138e131}, - {0xe2b5a2, 0x8138e132}, - {0xe2b5a3, 0x8138e133}, - {0xe2b5a4, 0x8138e134}, - {0xe2b5a5, 0x8138e135}, - {0xe2b5a6, 0x8138e136}, - {0xe2b5a7, 0x8138e137}, - {0xe2b5a8, 0x8138e138}, - {0xe2b5a9, 0x8138e139}, - {0xe2b5aa, 0x8138e230}, - {0xe2b5ab, 0x8138e231}, - {0xe2b5ac, 0x8138e232}, - {0xe2b5ad, 0x8138e233}, - {0xe2b5ae, 0x8138e234}, - {0xe2b5af, 0x8138e235}, - {0xe2b5b0, 0x8138e236}, - {0xe2b5b1, 0x8138e237}, - {0xe2b5b2, 0x8138e238}, - {0xe2b5b3, 0x8138e239}, - {0xe2b5b4, 0x8138e330}, - {0xe2b5b5, 0x8138e331}, - {0xe2b5b6, 0x8138e332}, - {0xe2b5b7, 0x8138e333}, - {0xe2b5b8, 0x8138e334}, - {0xe2b5b9, 0x8138e335}, - {0xe2b5ba, 0x8138e336}, - {0xe2b5bb, 0x8138e337}, - {0xe2b5bc, 0x8138e338}, - {0xe2b5bd, 0x8138e339}, - {0xe2b5be, 0x8138e430}, - {0xe2b5bf, 0x8138e431}, - {0xe2b680, 0x8138e432}, - {0xe2b681, 0x8138e433}, - {0xe2b682, 0x8138e434}, - {0xe2b683, 0x8138e435}, - {0xe2b684, 0x8138e436}, - {0xe2b685, 0x8138e437}, - {0xe2b686, 0x8138e438}, - {0xe2b687, 0x8138e439}, - {0xe2b688, 0x8138e530}, - {0xe2b689, 0x8138e531}, - {0xe2b68a, 0x8138e532}, - {0xe2b68b, 0x8138e533}, - {0xe2b68c, 0x8138e534}, - {0xe2b68d, 0x8138e535}, - {0xe2b68e, 0x8138e536}, - {0xe2b68f, 0x8138e537}, - {0xe2b690, 0x8138e538}, - {0xe2b691, 0x8138e539}, - {0xe2b692, 0x8138e630}, - {0xe2b693, 0x8138e631}, - {0xe2b694, 0x8138e632}, - {0xe2b695, 0x8138e633}, - {0xe2b696, 0x8138e634}, - {0xe2b697, 0x8138e635}, - {0xe2b698, 0x8138e636}, - {0xe2b699, 0x8138e637}, - {0xe2b69a, 0x8138e638}, - {0xe2b69b, 0x8138e639}, - {0xe2b69c, 0x8138e730}, - {0xe2b69d, 0x8138e731}, - {0xe2b69e, 0x8138e732}, - {0xe2b69f, 0x8138e733}, - {0xe2b6a0, 0x8138e734}, - {0xe2b6a1, 0x8138e735}, - {0xe2b6a2, 0x8138e736}, - {0xe2b6a3, 0x8138e737}, - {0xe2b6a4, 0x8138e738}, - {0xe2b6a5, 0x8138e739}, - {0xe2b6a6, 0x8138e830}, - {0xe2b6a7, 0x8138e831}, - {0xe2b6a8, 0x8138e832}, - {0xe2b6a9, 0x8138e833}, - {0xe2b6aa, 0x8138e834}, - {0xe2b6ab, 0x8138e835}, - {0xe2b6ac, 0x8138e836}, - {0xe2b6ad, 0x8138e837}, - {0xe2b6ae, 0x8138e838}, - {0xe2b6af, 0x8138e839}, - {0xe2b6b0, 0x8138e930}, - {0xe2b6b1, 0x8138e931}, - {0xe2b6b2, 0x8138e932}, - {0xe2b6b3, 0x8138e933}, - {0xe2b6b4, 0x8138e934}, - {0xe2b6b5, 0x8138e935}, - {0xe2b6b6, 0x8138e936}, - {0xe2b6b7, 0x8138e937}, - {0xe2b6b8, 0x8138e938}, - {0xe2b6b9, 0x8138e939}, - {0xe2b6ba, 0x8138ea30}, - {0xe2b6bb, 0x8138ea31}, - {0xe2b6bc, 0x8138ea32}, - {0xe2b6bd, 0x8138ea33}, - {0xe2b6be, 0x8138ea34}, - {0xe2b6bf, 0x8138ea35}, - {0xe2b780, 0x8138ea36}, - {0xe2b781, 0x8138ea37}, - {0xe2b782, 0x8138ea38}, - {0xe2b783, 0x8138ea39}, - {0xe2b784, 0x8138eb30}, - {0xe2b785, 0x8138eb31}, - {0xe2b786, 0x8138eb32}, - {0xe2b787, 0x8138eb33}, - {0xe2b788, 0x8138eb34}, - {0xe2b789, 0x8138eb35}, - {0xe2b78a, 0x8138eb36}, - {0xe2b78b, 0x8138eb37}, - {0xe2b78c, 0x8138eb38}, - {0xe2b78d, 0x8138eb39}, - {0xe2b78e, 0x8138ec30}, - {0xe2b78f, 0x8138ec31}, - {0xe2b790, 0x8138ec32}, - {0xe2b791, 0x8138ec33}, - {0xe2b792, 0x8138ec34}, - {0xe2b793, 0x8138ec35}, - {0xe2b794, 0x8138ec36}, - {0xe2b795, 0x8138ec37}, - {0xe2b796, 0x8138ec38}, - {0xe2b797, 0x8138ec39}, - {0xe2b798, 0x8138ed30}, - {0xe2b799, 0x8138ed31}, - {0xe2b79a, 0x8138ed32}, - {0xe2b79b, 0x8138ed33}, - {0xe2b79c, 0x8138ed34}, - {0xe2b79d, 0x8138ed35}, - {0xe2b79e, 0x8138ed36}, - {0xe2b79f, 0x8138ed37}, - {0xe2b7a0, 0x8138ed38}, - {0xe2b7a1, 0x8138ed39}, - {0xe2b7a2, 0x8138ee30}, - {0xe2b7a3, 0x8138ee31}, - {0xe2b7a4, 0x8138ee32}, - {0xe2b7a5, 0x8138ee33}, - {0xe2b7a6, 0x8138ee34}, - {0xe2b7a7, 0x8138ee35}, - {0xe2b7a8, 0x8138ee36}, - {0xe2b7a9, 0x8138ee37}, - {0xe2b7aa, 0x8138ee38}, - {0xe2b7ab, 0x8138ee39}, - {0xe2b7ac, 0x8138ef30}, - {0xe2b7ad, 0x8138ef31}, - {0xe2b7ae, 0x8138ef32}, - {0xe2b7af, 0x8138ef33}, - {0xe2b7b0, 0x8138ef34}, - {0xe2b7b1, 0x8138ef35}, - {0xe2b7b2, 0x8138ef36}, - {0xe2b7b3, 0x8138ef37}, - {0xe2b7b4, 0x8138ef38}, - {0xe2b7b5, 0x8138ef39}, - {0xe2b7b6, 0x8138f030}, - {0xe2b7b7, 0x8138f031}, - {0xe2b7b8, 0x8138f032}, - {0xe2b7b9, 0x8138f033}, - {0xe2b7ba, 0x8138f034}, - {0xe2b7bb, 0x8138f035}, - {0xe2b7bc, 0x8138f036}, - {0xe2b7bd, 0x8138f037}, - {0xe2b7be, 0x8138f038}, - {0xe2b7bf, 0x8138f039}, - {0xe2b880, 0x8138f130}, - {0xe2b881, 0x8138f131}, - {0xe2b882, 0x8138f132}, - {0xe2b883, 0x8138f133}, - {0xe2b884, 0x8138f134}, - {0xe2b885, 0x8138f135}, - {0xe2b886, 0x8138f136}, - {0xe2b887, 0x8138f137}, - {0xe2b888, 0x8138f138}, - {0xe2b889, 0x8138f139}, - {0xe2b88a, 0x8138f230}, - {0xe2b88b, 0x8138f231}, - {0xe2b88c, 0x8138f232}, - {0xe2b88d, 0x8138f233}, - {0xe2b88e, 0x8138f234}, - {0xe2b88f, 0x8138f235}, - {0xe2b890, 0x8138f236}, - {0xe2b891, 0x8138f237}, - {0xe2b892, 0x8138f238}, - {0xe2b893, 0x8138f239}, - {0xe2b894, 0x8138f330}, - {0xe2b895, 0x8138f331}, - {0xe2b896, 0x8138f332}, - {0xe2b897, 0x8138f333}, - {0xe2b898, 0x8138f334}, - {0xe2b899, 0x8138f335}, - {0xe2b89a, 0x8138f336}, - {0xe2b89b, 0x8138f337}, - {0xe2b89c, 0x8138f338}, - {0xe2b89d, 0x8138f339}, - {0xe2b89e, 0x8138f430}, - {0xe2b89f, 0x8138f431}, - {0xe2b8a0, 0x8138f432}, - {0xe2b8a1, 0x8138f433}, - {0xe2b8a2, 0x8138f434}, - {0xe2b8a3, 0x8138f435}, - {0xe2b8a4, 0x8138f436}, - {0xe2b8a5, 0x8138f437}, - {0xe2b8a6, 0x8138f438}, - {0xe2b8a7, 0x8138f439}, - {0xe2b8a8, 0x8138f530}, - {0xe2b8a9, 0x8138f531}, - {0xe2b8aa, 0x8138f532}, - {0xe2b8ab, 0x8138f533}, - {0xe2b8ac, 0x8138f534}, - {0xe2b8ad, 0x8138f535}, - {0xe2b8ae, 0x8138f536}, - {0xe2b8af, 0x8138f537}, - {0xe2b8b0, 0x8138f538}, - {0xe2b8b1, 0x8138f539}, - {0xe2b8b2, 0x8138f630}, - {0xe2b8b3, 0x8138f631}, - {0xe2b8b4, 0x8138f632}, - {0xe2b8b5, 0x8138f633}, - {0xe2b8b6, 0x8138f634}, - {0xe2b8b7, 0x8138f635}, - {0xe2b8b8, 0x8138f636}, - {0xe2b8b9, 0x8138f637}, - {0xe2b8ba, 0x8138f638}, - {0xe2b8bb, 0x8138f639}, - {0xe2b8bc, 0x8138f730}, - {0xe2b8bd, 0x8138f731}, - {0xe2b8be, 0x8138f732}, - {0xe2b8bf, 0x8138f733}, - {0xe2b980, 0x8138f734}, - {0xe2b981, 0x8138f735}, - {0xe2b982, 0x8138f736}, - {0xe2b983, 0x8138f737}, - {0xe2b984, 0x8138f738}, - {0xe2b985, 0x8138f739}, - {0xe2b986, 0x8138f830}, - {0xe2b987, 0x8138f831}, - {0xe2b988, 0x8138f832}, - {0xe2b989, 0x8138f833}, - {0xe2b98a, 0x8138f834}, - {0xe2b98b, 0x8138f835}, - {0xe2b98c, 0x8138f836}, - {0xe2b98d, 0x8138f837}, - {0xe2b98e, 0x8138f838}, - {0xe2b98f, 0x8138f839}, - {0xe2b990, 0x8138f930}, - {0xe2b991, 0x8138f931}, - {0xe2b992, 0x8138f932}, - {0xe2b993, 0x8138f933}, - {0xe2b994, 0x8138f934}, - {0xe2b995, 0x8138f935}, - {0xe2b996, 0x8138f936}, - {0xe2b997, 0x8138f937}, - {0xe2b998, 0x8138f938}, - {0xe2b999, 0x8138f939}, - {0xe2b99a, 0x8138fa30}, - {0xe2b99b, 0x8138fa31}, - {0xe2b99c, 0x8138fa32}, - {0xe2b99d, 0x8138fa33}, - {0xe2b99e, 0x8138fa34}, - {0xe2b99f, 0x8138fa35}, - {0xe2b9a0, 0x8138fa36}, - {0xe2b9a1, 0x8138fa37}, - {0xe2b9a2, 0x8138fa38}, - {0xe2b9a3, 0x8138fa39}, - {0xe2b9a4, 0x8138fb30}, - {0xe2b9a5, 0x8138fb31}, - {0xe2b9a6, 0x8138fb32}, - {0xe2b9a7, 0x8138fb33}, - {0xe2b9a8, 0x8138fb34}, - {0xe2b9a9, 0x8138fb35}, - {0xe2b9aa, 0x8138fb36}, - {0xe2b9ab, 0x8138fb37}, - {0xe2b9ac, 0x8138fb38}, - {0xe2b9ad, 0x8138fb39}, - {0xe2b9ae, 0x8138fc30}, - {0xe2b9af, 0x8138fc31}, - {0xe2b9b0, 0x8138fc32}, - {0xe2b9b1, 0x8138fc33}, - {0xe2b9b2, 0x8138fc34}, - {0xe2b9b3, 0x8138fc35}, - {0xe2b9b4, 0x8138fc36}, - {0xe2b9b5, 0x8138fc37}, - {0xe2b9b6, 0x8138fc38}, - {0xe2b9b7, 0x8138fc39}, - {0xe2b9b8, 0x8138fd30}, - {0xe2b9b9, 0x8138fd31}, - {0xe2b9ba, 0x8138fd32}, - {0xe2b9bb, 0x8138fd33}, - {0xe2b9bc, 0x8138fd34}, - {0xe2b9bd, 0x8138fd35}, - {0xe2b9be, 0x8138fd36}, - {0xe2b9bf, 0x8138fd37}, - {0xe2ba80, 0x8138fd38}, {0xe2ba81, 0xfe50}, {0xe2ba82, 0x8138fd39}, {0xe2ba83, 0x8138fe30}, @@ -13722,771 +4510,6 @@ static pg_utf_to_local ULmapGB18030[ 63360 ] = { {0xe39898, 0x8230a631}, {0xe39899, 0x8230a632}, {0xe3989a, 0xfe5b}, - {0xe3989b, 0x8230a633}, - {0xe3989c, 0x8230a634}, - {0xe3989d, 0x8230a635}, - {0xe3989e, 0x8230a636}, - {0xe3989f, 0x8230a637}, - {0xe398a0, 0x8230a638}, - {0xe398a1, 0x8230a639}, - {0xe398a2, 0x8230a730}, - {0xe398a3, 0x8230a731}, - {0xe398a4, 0x8230a732}, - {0xe398a5, 0x8230a733}, - {0xe398a6, 0x8230a734}, - {0xe398a7, 0x8230a735}, - {0xe398a8, 0x8230a736}, - {0xe398a9, 0x8230a737}, - {0xe398aa, 0x8230a738}, - {0xe398ab, 0x8230a739}, - {0xe398ac, 0x8230a830}, - {0xe398ad, 0x8230a831}, - {0xe398ae, 0x8230a832}, - {0xe398af, 0x8230a833}, - {0xe398b0, 0x8230a834}, - {0xe398b1, 0x8230a835}, - {0xe398b2, 0x8230a836}, - {0xe398b3, 0x8230a837}, - {0xe398b4, 0x8230a838}, - {0xe398b5, 0x8230a839}, - {0xe398b6, 0x8230a930}, - {0xe398b7, 0x8230a931}, - {0xe398b8, 0x8230a932}, - {0xe398b9, 0x8230a933}, - {0xe398ba, 0x8230a934}, - {0xe398bb, 0x8230a935}, - {0xe398bc, 0x8230a936}, - {0xe398bd, 0x8230a937}, - {0xe398be, 0x8230a938}, - {0xe398bf, 0x8230a939}, - {0xe39980, 0x8230aa30}, - {0xe39981, 0x8230aa31}, - {0xe39982, 0x8230aa32}, - {0xe39983, 0x8230aa33}, - {0xe39984, 0x8230aa34}, - {0xe39985, 0x8230aa35}, - {0xe39986, 0x8230aa36}, - {0xe39987, 0x8230aa37}, - {0xe39988, 0x8230aa38}, - {0xe39989, 0x8230aa39}, - {0xe3998a, 0x8230ab30}, - {0xe3998b, 0x8230ab31}, - {0xe3998c, 0x8230ab32}, - {0xe3998d, 0x8230ab33}, - {0xe3998e, 0x8230ab34}, - {0xe3998f, 0x8230ab35}, - {0xe39990, 0x8230ab36}, - {0xe39991, 0x8230ab37}, - {0xe39992, 0x8230ab38}, - {0xe39993, 0x8230ab39}, - {0xe39994, 0x8230ac30}, - {0xe39995, 0x8230ac31}, - {0xe39996, 0x8230ac32}, - {0xe39997, 0x8230ac33}, - {0xe39998, 0x8230ac34}, - {0xe39999, 0x8230ac35}, - {0xe3999a, 0x8230ac36}, - {0xe3999b, 0x8230ac37}, - {0xe3999c, 0x8230ac38}, - {0xe3999d, 0x8230ac39}, - {0xe3999e, 0x8230ad30}, - {0xe3999f, 0x8230ad31}, - {0xe399a0, 0x8230ad32}, - {0xe399a1, 0x8230ad33}, - {0xe399a2, 0x8230ad34}, - {0xe399a3, 0x8230ad35}, - {0xe399a4, 0x8230ad36}, - {0xe399a5, 0x8230ad37}, - {0xe399a6, 0x8230ad38}, - {0xe399a7, 0x8230ad39}, - {0xe399a8, 0x8230ae30}, - {0xe399a9, 0x8230ae31}, - {0xe399aa, 0x8230ae32}, - {0xe399ab, 0x8230ae33}, - {0xe399ac, 0x8230ae34}, - {0xe399ad, 0x8230ae35}, - {0xe399ae, 0x8230ae36}, - {0xe399af, 0x8230ae37}, - {0xe399b0, 0x8230ae38}, - {0xe399b1, 0x8230ae39}, - {0xe399b2, 0x8230af30}, - {0xe399b3, 0x8230af31}, - {0xe399b4, 0x8230af32}, - {0xe399b5, 0x8230af33}, - {0xe399b6, 0x8230af34}, - {0xe399b7, 0x8230af35}, - {0xe399b8, 0x8230af36}, - {0xe399b9, 0x8230af37}, - {0xe399ba, 0x8230af38}, - {0xe399bb, 0x8230af39}, - {0xe399bc, 0x8230b030}, - {0xe399bd, 0x8230b031}, - {0xe399be, 0x8230b032}, - {0xe399bf, 0x8230b033}, - {0xe39a80, 0x8230b034}, - {0xe39a81, 0x8230b035}, - {0xe39a82, 0x8230b036}, - {0xe39a83, 0x8230b037}, - {0xe39a84, 0x8230b038}, - {0xe39a85, 0x8230b039}, - {0xe39a86, 0x8230b130}, - {0xe39a87, 0x8230b131}, - {0xe39a88, 0x8230b132}, - {0xe39a89, 0x8230b133}, - {0xe39a8a, 0x8230b134}, - {0xe39a8b, 0x8230b135}, - {0xe39a8c, 0x8230b136}, - {0xe39a8d, 0x8230b137}, - {0xe39a8e, 0x8230b138}, - {0xe39a8f, 0x8230b139}, - {0xe39a90, 0x8230b230}, - {0xe39a91, 0x8230b231}, - {0xe39a92, 0x8230b232}, - {0xe39a93, 0x8230b233}, - {0xe39a94, 0x8230b234}, - {0xe39a95, 0x8230b235}, - {0xe39a96, 0x8230b236}, - {0xe39a97, 0x8230b237}, - {0xe39a98, 0x8230b238}, - {0xe39a99, 0x8230b239}, - {0xe39a9a, 0x8230b330}, - {0xe39a9b, 0x8230b331}, - {0xe39a9c, 0x8230b332}, - {0xe39a9d, 0x8230b333}, - {0xe39a9e, 0x8230b334}, - {0xe39a9f, 0x8230b335}, - {0xe39aa0, 0x8230b336}, - {0xe39aa1, 0x8230b337}, - {0xe39aa2, 0x8230b338}, - {0xe39aa3, 0x8230b339}, - {0xe39aa4, 0x8230b430}, - {0xe39aa5, 0x8230b431}, - {0xe39aa6, 0x8230b432}, - {0xe39aa7, 0x8230b433}, - {0xe39aa8, 0x8230b434}, - {0xe39aa9, 0x8230b435}, - {0xe39aaa, 0x8230b436}, - {0xe39aab, 0x8230b437}, - {0xe39aac, 0x8230b438}, - {0xe39aad, 0x8230b439}, - {0xe39aae, 0x8230b530}, - {0xe39aaf, 0x8230b531}, - {0xe39ab0, 0x8230b532}, - {0xe39ab1, 0x8230b533}, - {0xe39ab2, 0x8230b534}, - {0xe39ab3, 0x8230b535}, - {0xe39ab4, 0x8230b536}, - {0xe39ab5, 0x8230b537}, - {0xe39ab6, 0x8230b538}, - {0xe39ab7, 0x8230b539}, - {0xe39ab8, 0x8230b630}, - {0xe39ab9, 0x8230b631}, - {0xe39aba, 0x8230b632}, - {0xe39abb, 0x8230b633}, - {0xe39abc, 0x8230b634}, - {0xe39abd, 0x8230b635}, - {0xe39abe, 0x8230b636}, - {0xe39abf, 0x8230b637}, - {0xe39b80, 0x8230b638}, - {0xe39b81, 0x8230b639}, - {0xe39b82, 0x8230b730}, - {0xe39b83, 0x8230b731}, - {0xe39b84, 0x8230b732}, - {0xe39b85, 0x8230b733}, - {0xe39b86, 0x8230b734}, - {0xe39b87, 0x8230b735}, - {0xe39b88, 0x8230b736}, - {0xe39b89, 0x8230b737}, - {0xe39b8a, 0x8230b738}, - {0xe39b8b, 0x8230b739}, - {0xe39b8c, 0x8230b830}, - {0xe39b8d, 0x8230b831}, - {0xe39b8e, 0x8230b832}, - {0xe39b8f, 0x8230b833}, - {0xe39b90, 0x8230b834}, - {0xe39b91, 0x8230b835}, - {0xe39b92, 0x8230b836}, - {0xe39b93, 0x8230b837}, - {0xe39b94, 0x8230b838}, - {0xe39b95, 0x8230b839}, - {0xe39b96, 0x8230b930}, - {0xe39b97, 0x8230b931}, - {0xe39b98, 0x8230b932}, - {0xe39b99, 0x8230b933}, - {0xe39b9a, 0x8230b934}, - {0xe39b9b, 0x8230b935}, - {0xe39b9c, 0x8230b936}, - {0xe39b9d, 0x8230b937}, - {0xe39b9e, 0x8230b938}, - {0xe39b9f, 0x8230b939}, - {0xe39ba0, 0x8230ba30}, - {0xe39ba1, 0x8230ba31}, - {0xe39ba2, 0x8230ba32}, - {0xe39ba3, 0x8230ba33}, - {0xe39ba4, 0x8230ba34}, - {0xe39ba5, 0x8230ba35}, - {0xe39ba6, 0x8230ba36}, - {0xe39ba7, 0x8230ba37}, - {0xe39ba8, 0x8230ba38}, - {0xe39ba9, 0x8230ba39}, - {0xe39baa, 0x8230bb30}, - {0xe39bab, 0x8230bb31}, - {0xe39bac, 0x8230bb32}, - {0xe39bad, 0x8230bb33}, - {0xe39bae, 0x8230bb34}, - {0xe39baf, 0x8230bb35}, - {0xe39bb0, 0x8230bb36}, - {0xe39bb1, 0x8230bb37}, - {0xe39bb2, 0x8230bb38}, - {0xe39bb3, 0x8230bb39}, - {0xe39bb4, 0x8230bc30}, - {0xe39bb5, 0x8230bc31}, - {0xe39bb6, 0x8230bc32}, - {0xe39bb7, 0x8230bc33}, - {0xe39bb8, 0x8230bc34}, - {0xe39bb9, 0x8230bc35}, - {0xe39bba, 0x8230bc36}, - {0xe39bbb, 0x8230bc37}, - {0xe39bbc, 0x8230bc38}, - {0xe39bbd, 0x8230bc39}, - {0xe39bbe, 0x8230bd30}, - {0xe39bbf, 0x8230bd31}, - {0xe39c80, 0x8230bd32}, - {0xe39c81, 0x8230bd33}, - {0xe39c82, 0x8230bd34}, - {0xe39c83, 0x8230bd35}, - {0xe39c84, 0x8230bd36}, - {0xe39c85, 0x8230bd37}, - {0xe39c86, 0x8230bd38}, - {0xe39c87, 0x8230bd39}, - {0xe39c88, 0x8230be30}, - {0xe39c89, 0x8230be31}, - {0xe39c8a, 0x8230be32}, - {0xe39c8b, 0x8230be33}, - {0xe39c8c, 0x8230be34}, - {0xe39c8d, 0x8230be35}, - {0xe39c8e, 0x8230be36}, - {0xe39c8f, 0x8230be37}, - {0xe39c90, 0x8230be38}, - {0xe39c91, 0x8230be39}, - {0xe39c92, 0x8230bf30}, - {0xe39c93, 0x8230bf31}, - {0xe39c94, 0x8230bf32}, - {0xe39c95, 0x8230bf33}, - {0xe39c96, 0x8230bf34}, - {0xe39c97, 0x8230bf35}, - {0xe39c98, 0x8230bf36}, - {0xe39c99, 0x8230bf37}, - {0xe39c9a, 0x8230bf38}, - {0xe39c9b, 0x8230bf39}, - {0xe39c9c, 0x8230c030}, - {0xe39c9d, 0x8230c031}, - {0xe39c9e, 0x8230c032}, - {0xe39c9f, 0x8230c033}, - {0xe39ca0, 0x8230c034}, - {0xe39ca1, 0x8230c035}, - {0xe39ca2, 0x8230c036}, - {0xe39ca3, 0x8230c037}, - {0xe39ca4, 0x8230c038}, - {0xe39ca5, 0x8230c039}, - {0xe39ca6, 0x8230c130}, - {0xe39ca7, 0x8230c131}, - {0xe39ca8, 0x8230c132}, - {0xe39ca9, 0x8230c133}, - {0xe39caa, 0x8230c134}, - {0xe39cab, 0x8230c135}, - {0xe39cac, 0x8230c136}, - {0xe39cad, 0x8230c137}, - {0xe39cae, 0x8230c138}, - {0xe39caf, 0x8230c139}, - {0xe39cb0, 0x8230c230}, - {0xe39cb1, 0x8230c231}, - {0xe39cb2, 0x8230c232}, - {0xe39cb3, 0x8230c233}, - {0xe39cb4, 0x8230c234}, - {0xe39cb5, 0x8230c235}, - {0xe39cb6, 0x8230c236}, - {0xe39cb7, 0x8230c237}, - {0xe39cb8, 0x8230c238}, - {0xe39cb9, 0x8230c239}, - {0xe39cba, 0x8230c330}, - {0xe39cbb, 0x8230c331}, - {0xe39cbc, 0x8230c332}, - {0xe39cbd, 0x8230c333}, - {0xe39cbe, 0x8230c334}, - {0xe39cbf, 0x8230c335}, - {0xe39d80, 0x8230c336}, - {0xe39d81, 0x8230c337}, - {0xe39d82, 0x8230c338}, - {0xe39d83, 0x8230c339}, - {0xe39d84, 0x8230c430}, - {0xe39d85, 0x8230c431}, - {0xe39d86, 0x8230c432}, - {0xe39d87, 0x8230c433}, - {0xe39d88, 0x8230c434}, - {0xe39d89, 0x8230c435}, - {0xe39d8a, 0x8230c436}, - {0xe39d8b, 0x8230c437}, - {0xe39d8c, 0x8230c438}, - {0xe39d8d, 0x8230c439}, - {0xe39d8e, 0x8230c530}, - {0xe39d8f, 0x8230c531}, - {0xe39d90, 0x8230c532}, - {0xe39d91, 0x8230c533}, - {0xe39d92, 0x8230c534}, - {0xe39d93, 0x8230c535}, - {0xe39d94, 0x8230c536}, - {0xe39d95, 0x8230c537}, - {0xe39d96, 0x8230c538}, - {0xe39d97, 0x8230c539}, - {0xe39d98, 0x8230c630}, - {0xe39d99, 0x8230c631}, - {0xe39d9a, 0x8230c632}, - {0xe39d9b, 0x8230c633}, - {0xe39d9c, 0x8230c634}, - {0xe39d9d, 0x8230c635}, - {0xe39d9e, 0x8230c636}, - {0xe39d9f, 0x8230c637}, - {0xe39da0, 0x8230c638}, - {0xe39da1, 0x8230c639}, - {0xe39da2, 0x8230c730}, - {0xe39da3, 0x8230c731}, - {0xe39da4, 0x8230c732}, - {0xe39da5, 0x8230c733}, - {0xe39da6, 0x8230c734}, - {0xe39da7, 0x8230c735}, - {0xe39da8, 0x8230c736}, - {0xe39da9, 0x8230c737}, - {0xe39daa, 0x8230c738}, - {0xe39dab, 0x8230c739}, - {0xe39dac, 0x8230c830}, - {0xe39dad, 0x8230c831}, - {0xe39dae, 0x8230c832}, - {0xe39daf, 0x8230c833}, - {0xe39db0, 0x8230c834}, - {0xe39db1, 0x8230c835}, - {0xe39db2, 0x8230c836}, - {0xe39db3, 0x8230c837}, - {0xe39db4, 0x8230c838}, - {0xe39db5, 0x8230c839}, - {0xe39db6, 0x8230c930}, - {0xe39db7, 0x8230c931}, - {0xe39db8, 0x8230c932}, - {0xe39db9, 0x8230c933}, - {0xe39dba, 0x8230c934}, - {0xe39dbb, 0x8230c935}, - {0xe39dbc, 0x8230c936}, - {0xe39dbd, 0x8230c937}, - {0xe39dbe, 0x8230c938}, - {0xe39dbf, 0x8230c939}, - {0xe39e80, 0x8230ca30}, - {0xe39e81, 0x8230ca31}, - {0xe39e82, 0x8230ca32}, - {0xe39e83, 0x8230ca33}, - {0xe39e84, 0x8230ca34}, - {0xe39e85, 0x8230ca35}, - {0xe39e86, 0x8230ca36}, - {0xe39e87, 0x8230ca37}, - {0xe39e88, 0x8230ca38}, - {0xe39e89, 0x8230ca39}, - {0xe39e8a, 0x8230cb30}, - {0xe39e8b, 0x8230cb31}, - {0xe39e8c, 0x8230cb32}, - {0xe39e8d, 0x8230cb33}, - {0xe39e8e, 0x8230cb34}, - {0xe39e8f, 0x8230cb35}, - {0xe39e90, 0x8230cb36}, - {0xe39e91, 0x8230cb37}, - {0xe39e92, 0x8230cb38}, - {0xe39e93, 0x8230cb39}, - {0xe39e94, 0x8230cc30}, - {0xe39e95, 0x8230cc31}, - {0xe39e96, 0x8230cc32}, - {0xe39e97, 0x8230cc33}, - {0xe39e98, 0x8230cc34}, - {0xe39e99, 0x8230cc35}, - {0xe39e9a, 0x8230cc36}, - {0xe39e9b, 0x8230cc37}, - {0xe39e9c, 0x8230cc38}, - {0xe39e9d, 0x8230cc39}, - {0xe39e9e, 0x8230cd30}, - {0xe39e9f, 0x8230cd31}, - {0xe39ea0, 0x8230cd32}, - {0xe39ea1, 0x8230cd33}, - {0xe39ea2, 0x8230cd34}, - {0xe39ea3, 0x8230cd35}, - {0xe39ea4, 0x8230cd36}, - {0xe39ea5, 0x8230cd37}, - {0xe39ea6, 0x8230cd38}, - {0xe39ea7, 0x8230cd39}, - {0xe39ea8, 0x8230ce30}, - {0xe39ea9, 0x8230ce31}, - {0xe39eaa, 0x8230ce32}, - {0xe39eab, 0x8230ce33}, - {0xe39eac, 0x8230ce34}, - {0xe39ead, 0x8230ce35}, - {0xe39eae, 0x8230ce36}, - {0xe39eaf, 0x8230ce37}, - {0xe39eb0, 0x8230ce38}, - {0xe39eb1, 0x8230ce39}, - {0xe39eb2, 0x8230cf30}, - {0xe39eb3, 0x8230cf31}, - {0xe39eb4, 0x8230cf32}, - {0xe39eb5, 0x8230cf33}, - {0xe39eb6, 0x8230cf34}, - {0xe39eb7, 0x8230cf35}, - {0xe39eb8, 0x8230cf36}, - {0xe39eb9, 0x8230cf37}, - {0xe39eba, 0x8230cf38}, - {0xe39ebb, 0x8230cf39}, - {0xe39ebc, 0x8230d030}, - {0xe39ebd, 0x8230d031}, - {0xe39ebe, 0x8230d032}, - {0xe39ebf, 0x8230d033}, - {0xe39f80, 0x8230d034}, - {0xe39f81, 0x8230d035}, - {0xe39f82, 0x8230d036}, - {0xe39f83, 0x8230d037}, - {0xe39f84, 0x8230d038}, - {0xe39f85, 0x8230d039}, - {0xe39f86, 0x8230d130}, - {0xe39f87, 0x8230d131}, - {0xe39f88, 0x8230d132}, - {0xe39f89, 0x8230d133}, - {0xe39f8a, 0x8230d134}, - {0xe39f8b, 0x8230d135}, - {0xe39f8c, 0x8230d136}, - {0xe39f8d, 0x8230d137}, - {0xe39f8e, 0x8230d138}, - {0xe39f8f, 0x8230d139}, - {0xe39f90, 0x8230d230}, - {0xe39f91, 0x8230d231}, - {0xe39f92, 0x8230d232}, - {0xe39f93, 0x8230d233}, - {0xe39f94, 0x8230d234}, - {0xe39f95, 0x8230d235}, - {0xe39f96, 0x8230d236}, - {0xe39f97, 0x8230d237}, - {0xe39f98, 0x8230d238}, - {0xe39f99, 0x8230d239}, - {0xe39f9a, 0x8230d330}, - {0xe39f9b, 0x8230d331}, - {0xe39f9c, 0x8230d332}, - {0xe39f9d, 0x8230d333}, - {0xe39f9e, 0x8230d334}, - {0xe39f9f, 0x8230d335}, - {0xe39fa0, 0x8230d336}, - {0xe39fa1, 0x8230d337}, - {0xe39fa2, 0x8230d338}, - {0xe39fa3, 0x8230d339}, - {0xe39fa4, 0x8230d430}, - {0xe39fa5, 0x8230d431}, - {0xe39fa6, 0x8230d432}, - {0xe39fa7, 0x8230d433}, - {0xe39fa8, 0x8230d434}, - {0xe39fa9, 0x8230d435}, - {0xe39faa, 0x8230d436}, - {0xe39fab, 0x8230d437}, - {0xe39fac, 0x8230d438}, - {0xe39fad, 0x8230d439}, - {0xe39fae, 0x8230d530}, - {0xe39faf, 0x8230d531}, - {0xe39fb0, 0x8230d532}, - {0xe39fb1, 0x8230d533}, - {0xe39fb2, 0x8230d534}, - {0xe39fb3, 0x8230d535}, - {0xe39fb4, 0x8230d536}, - {0xe39fb5, 0x8230d537}, - {0xe39fb6, 0x8230d538}, - {0xe39fb7, 0x8230d539}, - {0xe39fb8, 0x8230d630}, - {0xe39fb9, 0x8230d631}, - {0xe39fba, 0x8230d632}, - {0xe39fbb, 0x8230d633}, - {0xe39fbc, 0x8230d634}, - {0xe39fbd, 0x8230d635}, - {0xe39fbe, 0x8230d636}, - {0xe39fbf, 0x8230d637}, - {0xe3a080, 0x8230d638}, - {0xe3a081, 0x8230d639}, - {0xe3a082, 0x8230d730}, - {0xe3a083, 0x8230d731}, - {0xe3a084, 0x8230d732}, - {0xe3a085, 0x8230d733}, - {0xe3a086, 0x8230d734}, - {0xe3a087, 0x8230d735}, - {0xe3a088, 0x8230d736}, - {0xe3a089, 0x8230d737}, - {0xe3a08a, 0x8230d738}, - {0xe3a08b, 0x8230d739}, - {0xe3a08c, 0x8230d830}, - {0xe3a08d, 0x8230d831}, - {0xe3a08e, 0x8230d832}, - {0xe3a08f, 0x8230d833}, - {0xe3a090, 0x8230d834}, - {0xe3a091, 0x8230d835}, - {0xe3a092, 0x8230d836}, - {0xe3a093, 0x8230d837}, - {0xe3a094, 0x8230d838}, - {0xe3a095, 0x8230d839}, - {0xe3a096, 0x8230d930}, - {0xe3a097, 0x8230d931}, - {0xe3a098, 0x8230d932}, - {0xe3a099, 0x8230d933}, - {0xe3a09a, 0x8230d934}, - {0xe3a09b, 0x8230d935}, - {0xe3a09c, 0x8230d936}, - {0xe3a09d, 0x8230d937}, - {0xe3a09e, 0x8230d938}, - {0xe3a09f, 0x8230d939}, - {0xe3a0a0, 0x8230da30}, - {0xe3a0a1, 0x8230da31}, - {0xe3a0a2, 0x8230da32}, - {0xe3a0a3, 0x8230da33}, - {0xe3a0a4, 0x8230da34}, - {0xe3a0a5, 0x8230da35}, - {0xe3a0a6, 0x8230da36}, - {0xe3a0a7, 0x8230da37}, - {0xe3a0a8, 0x8230da38}, - {0xe3a0a9, 0x8230da39}, - {0xe3a0aa, 0x8230db30}, - {0xe3a0ab, 0x8230db31}, - {0xe3a0ac, 0x8230db32}, - {0xe3a0ad, 0x8230db33}, - {0xe3a0ae, 0x8230db34}, - {0xe3a0af, 0x8230db35}, - {0xe3a0b0, 0x8230db36}, - {0xe3a0b1, 0x8230db37}, - {0xe3a0b2, 0x8230db38}, - {0xe3a0b3, 0x8230db39}, - {0xe3a0b4, 0x8230dc30}, - {0xe3a0b5, 0x8230dc31}, - {0xe3a0b6, 0x8230dc32}, - {0xe3a0b7, 0x8230dc33}, - {0xe3a0b8, 0x8230dc34}, - {0xe3a0b9, 0x8230dc35}, - {0xe3a0ba, 0x8230dc36}, - {0xe3a0bb, 0x8230dc37}, - {0xe3a0bc, 0x8230dc38}, - {0xe3a0bd, 0x8230dc39}, - {0xe3a0be, 0x8230dd30}, - {0xe3a0bf, 0x8230dd31}, - {0xe3a180, 0x8230dd32}, - {0xe3a181, 0x8230dd33}, - {0xe3a182, 0x8230dd34}, - {0xe3a183, 0x8230dd35}, - {0xe3a184, 0x8230dd36}, - {0xe3a185, 0x8230dd37}, - {0xe3a186, 0x8230dd38}, - {0xe3a187, 0x8230dd39}, - {0xe3a188, 0x8230de30}, - {0xe3a189, 0x8230de31}, - {0xe3a18a, 0x8230de32}, - {0xe3a18b, 0x8230de33}, - {0xe3a18c, 0x8230de34}, - {0xe3a18d, 0x8230de35}, - {0xe3a18e, 0x8230de36}, - {0xe3a18f, 0x8230de37}, - {0xe3a190, 0x8230de38}, - {0xe3a191, 0x8230de39}, - {0xe3a192, 0x8230df30}, - {0xe3a193, 0x8230df31}, - {0xe3a194, 0x8230df32}, - {0xe3a195, 0x8230df33}, - {0xe3a196, 0x8230df34}, - {0xe3a197, 0x8230df35}, - {0xe3a198, 0x8230df36}, - {0xe3a199, 0x8230df37}, - {0xe3a19a, 0x8230df38}, - {0xe3a19b, 0x8230df39}, - {0xe3a19c, 0x8230e030}, - {0xe3a19d, 0x8230e031}, - {0xe3a19e, 0x8230e032}, - {0xe3a19f, 0x8230e033}, - {0xe3a1a0, 0x8230e034}, - {0xe3a1a1, 0x8230e035}, - {0xe3a1a2, 0x8230e036}, - {0xe3a1a3, 0x8230e037}, - {0xe3a1a4, 0x8230e038}, - {0xe3a1a5, 0x8230e039}, - {0xe3a1a6, 0x8230e130}, - {0xe3a1a7, 0x8230e131}, - {0xe3a1a8, 0x8230e132}, - {0xe3a1a9, 0x8230e133}, - {0xe3a1aa, 0x8230e134}, - {0xe3a1ab, 0x8230e135}, - {0xe3a1ac, 0x8230e136}, - {0xe3a1ad, 0x8230e137}, - {0xe3a1ae, 0x8230e138}, - {0xe3a1af, 0x8230e139}, - {0xe3a1b0, 0x8230e230}, - {0xe3a1b1, 0x8230e231}, - {0xe3a1b2, 0x8230e232}, - {0xe3a1b3, 0x8230e233}, - {0xe3a1b4, 0x8230e234}, - {0xe3a1b5, 0x8230e235}, - {0xe3a1b6, 0x8230e236}, - {0xe3a1b7, 0x8230e237}, - {0xe3a1b8, 0x8230e238}, - {0xe3a1b9, 0x8230e239}, - {0xe3a1ba, 0x8230e330}, - {0xe3a1bb, 0x8230e331}, - {0xe3a1bc, 0x8230e332}, - {0xe3a1bd, 0x8230e333}, - {0xe3a1be, 0x8230e334}, - {0xe3a1bf, 0x8230e335}, - {0xe3a280, 0x8230e336}, - {0xe3a281, 0x8230e337}, - {0xe3a282, 0x8230e338}, - {0xe3a283, 0x8230e339}, - {0xe3a284, 0x8230e430}, - {0xe3a285, 0x8230e431}, - {0xe3a286, 0x8230e432}, - {0xe3a287, 0x8230e433}, - {0xe3a288, 0x8230e434}, - {0xe3a289, 0x8230e435}, - {0xe3a28a, 0x8230e436}, - {0xe3a28b, 0x8230e437}, - {0xe3a28c, 0x8230e438}, - {0xe3a28d, 0x8230e439}, - {0xe3a28e, 0x8230e530}, - {0xe3a28f, 0x8230e531}, - {0xe3a290, 0x8230e532}, - {0xe3a291, 0x8230e533}, - {0xe3a292, 0x8230e534}, - {0xe3a293, 0x8230e535}, - {0xe3a294, 0x8230e536}, - {0xe3a295, 0x8230e537}, - {0xe3a296, 0x8230e538}, - {0xe3a297, 0x8230e539}, - {0xe3a298, 0x8230e630}, - {0xe3a299, 0x8230e631}, - {0xe3a29a, 0x8230e632}, - {0xe3a29b, 0x8230e633}, - {0xe3a29c, 0x8230e634}, - {0xe3a29d, 0x8230e635}, - {0xe3a29e, 0x8230e636}, - {0xe3a29f, 0x8230e637}, - {0xe3a2a0, 0x8230e638}, - {0xe3a2a1, 0x8230e639}, - {0xe3a2a2, 0x8230e730}, - {0xe3a2a3, 0x8230e731}, - {0xe3a2a4, 0x8230e732}, - {0xe3a2a5, 0x8230e733}, - {0xe3a2a6, 0x8230e734}, - {0xe3a2a7, 0x8230e735}, - {0xe3a2a8, 0x8230e736}, - {0xe3a2a9, 0x8230e737}, - {0xe3a2aa, 0x8230e738}, - {0xe3a2ab, 0x8230e739}, - {0xe3a2ac, 0x8230e830}, - {0xe3a2ad, 0x8230e831}, - {0xe3a2ae, 0x8230e832}, - {0xe3a2af, 0x8230e833}, - {0xe3a2b0, 0x8230e834}, - {0xe3a2b1, 0x8230e835}, - {0xe3a2b2, 0x8230e836}, - {0xe3a2b3, 0x8230e837}, - {0xe3a2b4, 0x8230e838}, - {0xe3a2b5, 0x8230e839}, - {0xe3a2b6, 0x8230e930}, - {0xe3a2b7, 0x8230e931}, - {0xe3a2b8, 0x8230e932}, - {0xe3a2b9, 0x8230e933}, - {0xe3a2ba, 0x8230e934}, - {0xe3a2bb, 0x8230e935}, - {0xe3a2bc, 0x8230e936}, - {0xe3a2bd, 0x8230e937}, - {0xe3a2be, 0x8230e938}, - {0xe3a2bf, 0x8230e939}, - {0xe3a380, 0x8230ea30}, - {0xe3a381, 0x8230ea31}, - {0xe3a382, 0x8230ea32}, - {0xe3a383, 0x8230ea33}, - {0xe3a384, 0x8230ea34}, - {0xe3a385, 0x8230ea35}, - {0xe3a386, 0x8230ea36}, - {0xe3a387, 0x8230ea37}, - {0xe3a388, 0x8230ea38}, - {0xe3a389, 0x8230ea39}, - {0xe3a38a, 0x8230eb30}, - {0xe3a38b, 0x8230eb31}, - {0xe3a38c, 0x8230eb32}, - {0xe3a38d, 0x8230eb33}, - {0xe3a38e, 0x8230eb34}, - {0xe3a38f, 0x8230eb35}, - {0xe3a390, 0x8230eb36}, - {0xe3a391, 0x8230eb37}, - {0xe3a392, 0x8230eb38}, - {0xe3a393, 0x8230eb39}, - {0xe3a394, 0x8230ec30}, - {0xe3a395, 0x8230ec31}, - {0xe3a396, 0x8230ec32}, - {0xe3a397, 0x8230ec33}, - {0xe3a398, 0x8230ec34}, - {0xe3a399, 0x8230ec35}, - {0xe3a39a, 0x8230ec36}, - {0xe3a39b, 0x8230ec37}, - {0xe3a39c, 0x8230ec38}, - {0xe3a39d, 0x8230ec39}, - {0xe3a39e, 0x8230ed30}, - {0xe3a39f, 0x8230ed31}, - {0xe3a3a0, 0x8230ed32}, - {0xe3a3a1, 0x8230ed33}, - {0xe3a3a2, 0x8230ed34}, - {0xe3a3a3, 0x8230ed35}, - {0xe3a3a4, 0x8230ed36}, - {0xe3a3a5, 0x8230ed37}, - {0xe3a3a6, 0x8230ed38}, - {0xe3a3a7, 0x8230ed39}, - {0xe3a3a8, 0x8230ee30}, - {0xe3a3a9, 0x8230ee31}, - {0xe3a3aa, 0x8230ee32}, - {0xe3a3ab, 0x8230ee33}, - {0xe3a3ac, 0x8230ee34}, - {0xe3a3ad, 0x8230ee35}, - {0xe3a3ae, 0x8230ee36}, - {0xe3a3af, 0x8230ee37}, - {0xe3a3b0, 0x8230ee38}, - {0xe3a3b1, 0x8230ee39}, - {0xe3a3b2, 0x8230ef30}, - {0xe3a3b3, 0x8230ef31}, - {0xe3a3b4, 0x8230ef32}, - {0xe3a3b5, 0x8230ef33}, - {0xe3a3b6, 0x8230ef34}, - {0xe3a3b7, 0x8230ef35}, - {0xe3a3b8, 0x8230ef36}, - {0xe3a3b9, 0x8230ef37}, - {0xe3a3ba, 0x8230ef38}, - {0xe3a3bb, 0x8230ef39}, - {0xe3a3bc, 0x8230f030}, - {0xe3a3bd, 0x8230f031}, - {0xe3a3be, 0x8230f032}, - {0xe3a3bf, 0x8230f033}, - {0xe3a480, 0x8230f034}, - {0xe3a481, 0x8230f035}, - {0xe3a482, 0x8230f036}, - {0xe3a483, 0x8230f037}, - {0xe3a484, 0x8230f038}, - {0xe3a485, 0x8230f039}, - {0xe3a486, 0x8230f130}, - {0xe3a487, 0x8230f131}, - {0xe3a488, 0x8230f132}, - {0xe3a489, 0x8230f133}, - {0xe3a48a, 0x8230f134}, - {0xe3a48b, 0x8230f135}, - {0xe3a48c, 0x8230f136}, - {0xe3a48d, 0x8230f137}, - {0xe3a48e, 0x8230f138}, - {0xe3a48f, 0x8230f139}, - {0xe3a490, 0x8230f230}, - {0xe3a491, 0x8230f231}, - {0xe3a492, 0x8230f232}, - {0xe3a493, 0x8230f233}, - {0xe3a494, 0x8230f234}, - {0xe3a495, 0x8230f235}, - {0xe3a496, 0x8230f236}, - {0xe3a497, 0x8230f237}, {0xe3a498, 0xfe60}, {0xe3a499, 0x8230f238}, {0xe3a49a, 0x8230f239}, @@ -15456,891 +5479,6 @@ static pg_utf_to_local ULmapGB18030[ 63360 ] = { {0xe3b39e, 0x8231d436}, {0xe3b39f, 0x8231d437}, {0xe3b3a0, 0xfe6a}, - {0xe3b3a1, 0x8231d438}, - {0xe3b3a2, 0x8231d439}, - {0xe3b3a3, 0x8231d530}, - {0xe3b3a4, 0x8231d531}, - {0xe3b3a5, 0x8231d532}, - {0xe3b3a6, 0x8231d533}, - {0xe3b3a7, 0x8231d534}, - {0xe3b3a8, 0x8231d535}, - {0xe3b3a9, 0x8231d536}, - {0xe3b3aa, 0x8231d537}, - {0xe3b3ab, 0x8231d538}, - {0xe3b3ac, 0x8231d539}, - {0xe3b3ad, 0x8231d630}, - {0xe3b3ae, 0x8231d631}, - {0xe3b3af, 0x8231d632}, - {0xe3b3b0, 0x8231d633}, - {0xe3b3b1, 0x8231d634}, - {0xe3b3b2, 0x8231d635}, - {0xe3b3b3, 0x8231d636}, - {0xe3b3b4, 0x8231d637}, - {0xe3b3b5, 0x8231d638}, - {0xe3b3b6, 0x8231d639}, - {0xe3b3b7, 0x8231d730}, - {0xe3b3b8, 0x8231d731}, - {0xe3b3b9, 0x8231d732}, - {0xe3b3ba, 0x8231d733}, - {0xe3b3bb, 0x8231d734}, - {0xe3b3bc, 0x8231d735}, - {0xe3b3bd, 0x8231d736}, - {0xe3b3be, 0x8231d737}, - {0xe3b3bf, 0x8231d738}, - {0xe3b480, 0x8231d739}, - {0xe3b481, 0x8231d830}, - {0xe3b482, 0x8231d831}, - {0xe3b483, 0x8231d832}, - {0xe3b484, 0x8231d833}, - {0xe3b485, 0x8231d834}, - {0xe3b486, 0x8231d835}, - {0xe3b487, 0x8231d836}, - {0xe3b488, 0x8231d837}, - {0xe3b489, 0x8231d838}, - {0xe3b48a, 0x8231d839}, - {0xe3b48b, 0x8231d930}, - {0xe3b48c, 0x8231d931}, - {0xe3b48d, 0x8231d932}, - {0xe3b48e, 0x8231d933}, - {0xe3b48f, 0x8231d934}, - {0xe3b490, 0x8231d935}, - {0xe3b491, 0x8231d936}, - {0xe3b492, 0x8231d937}, - {0xe3b493, 0x8231d938}, - {0xe3b494, 0x8231d939}, - {0xe3b495, 0x8231da30}, - {0xe3b496, 0x8231da31}, - {0xe3b497, 0x8231da32}, - {0xe3b498, 0x8231da33}, - {0xe3b499, 0x8231da34}, - {0xe3b49a, 0x8231da35}, - {0xe3b49b, 0x8231da36}, - {0xe3b49c, 0x8231da37}, - {0xe3b49d, 0x8231da38}, - {0xe3b49e, 0x8231da39}, - {0xe3b49f, 0x8231db30}, - {0xe3b4a0, 0x8231db31}, - {0xe3b4a1, 0x8231db32}, - {0xe3b4a2, 0x8231db33}, - {0xe3b4a3, 0x8231db34}, - {0xe3b4a4, 0x8231db35}, - {0xe3b4a5, 0x8231db36}, - {0xe3b4a6, 0x8231db37}, - {0xe3b4a7, 0x8231db38}, - {0xe3b4a8, 0x8231db39}, - {0xe3b4a9, 0x8231dc30}, - {0xe3b4aa, 0x8231dc31}, - {0xe3b4ab, 0x8231dc32}, - {0xe3b4ac, 0x8231dc33}, - {0xe3b4ad, 0x8231dc34}, - {0xe3b4ae, 0x8231dc35}, - {0xe3b4af, 0x8231dc36}, - {0xe3b4b0, 0x8231dc37}, - {0xe3b4b1, 0x8231dc38}, - {0xe3b4b2, 0x8231dc39}, - {0xe3b4b3, 0x8231dd30}, - {0xe3b4b4, 0x8231dd31}, - {0xe3b4b5, 0x8231dd32}, - {0xe3b4b6, 0x8231dd33}, - {0xe3b4b7, 0x8231dd34}, - {0xe3b4b8, 0x8231dd35}, - {0xe3b4b9, 0x8231dd36}, - {0xe3b4ba, 0x8231dd37}, - {0xe3b4bb, 0x8231dd38}, - {0xe3b4bc, 0x8231dd39}, - {0xe3b4bd, 0x8231de30}, - {0xe3b4be, 0x8231de31}, - {0xe3b4bf, 0x8231de32}, - {0xe3b580, 0x8231de33}, - {0xe3b581, 0x8231de34}, - {0xe3b582, 0x8231de35}, - {0xe3b583, 0x8231de36}, - {0xe3b584, 0x8231de37}, - {0xe3b585, 0x8231de38}, - {0xe3b586, 0x8231de39}, - {0xe3b587, 0x8231df30}, - {0xe3b588, 0x8231df31}, - {0xe3b589, 0x8231df32}, - {0xe3b58a, 0x8231df33}, - {0xe3b58b, 0x8231df34}, - {0xe3b58c, 0x8231df35}, - {0xe3b58d, 0x8231df36}, - {0xe3b58e, 0x8231df37}, - {0xe3b58f, 0x8231df38}, - {0xe3b590, 0x8231df39}, - {0xe3b591, 0x8231e030}, - {0xe3b592, 0x8231e031}, - {0xe3b593, 0x8231e032}, - {0xe3b594, 0x8231e033}, - {0xe3b595, 0x8231e034}, - {0xe3b596, 0x8231e035}, - {0xe3b597, 0x8231e036}, - {0xe3b598, 0x8231e037}, - {0xe3b599, 0x8231e038}, - {0xe3b59a, 0x8231e039}, - {0xe3b59b, 0x8231e130}, - {0xe3b59c, 0x8231e131}, - {0xe3b59d, 0x8231e132}, - {0xe3b59e, 0x8231e133}, - {0xe3b59f, 0x8231e134}, - {0xe3b5a0, 0x8231e135}, - {0xe3b5a1, 0x8231e136}, - {0xe3b5a2, 0x8231e137}, - {0xe3b5a3, 0x8231e138}, - {0xe3b5a4, 0x8231e139}, - {0xe3b5a5, 0x8231e230}, - {0xe3b5a6, 0x8231e231}, - {0xe3b5a7, 0x8231e232}, - {0xe3b5a8, 0x8231e233}, - {0xe3b5a9, 0x8231e234}, - {0xe3b5aa, 0x8231e235}, - {0xe3b5ab, 0x8231e236}, - {0xe3b5ac, 0x8231e237}, - {0xe3b5ad, 0x8231e238}, - {0xe3b5ae, 0x8231e239}, - {0xe3b5af, 0x8231e330}, - {0xe3b5b0, 0x8231e331}, - {0xe3b5b1, 0x8231e332}, - {0xe3b5b2, 0x8231e333}, - {0xe3b5b3, 0x8231e334}, - {0xe3b5b4, 0x8231e335}, - {0xe3b5b5, 0x8231e336}, - {0xe3b5b6, 0x8231e337}, - {0xe3b5b7, 0x8231e338}, - {0xe3b5b8, 0x8231e339}, - {0xe3b5b9, 0x8231e430}, - {0xe3b5ba, 0x8231e431}, - {0xe3b5bb, 0x8231e432}, - {0xe3b5bc, 0x8231e433}, - {0xe3b5bd, 0x8231e434}, - {0xe3b5be, 0x8231e435}, - {0xe3b5bf, 0x8231e436}, - {0xe3b680, 0x8231e437}, - {0xe3b681, 0x8231e438}, - {0xe3b682, 0x8231e439}, - {0xe3b683, 0x8231e530}, - {0xe3b684, 0x8231e531}, - {0xe3b685, 0x8231e532}, - {0xe3b686, 0x8231e533}, - {0xe3b687, 0x8231e534}, - {0xe3b688, 0x8231e535}, - {0xe3b689, 0x8231e536}, - {0xe3b68a, 0x8231e537}, - {0xe3b68b, 0x8231e538}, - {0xe3b68c, 0x8231e539}, - {0xe3b68d, 0x8231e630}, - {0xe3b68e, 0x8231e631}, - {0xe3b68f, 0x8231e632}, - {0xe3b690, 0x8231e633}, - {0xe3b691, 0x8231e634}, - {0xe3b692, 0x8231e635}, - {0xe3b693, 0x8231e636}, - {0xe3b694, 0x8231e637}, - {0xe3b695, 0x8231e638}, - {0xe3b696, 0x8231e639}, - {0xe3b697, 0x8231e730}, - {0xe3b698, 0x8231e731}, - {0xe3b699, 0x8231e732}, - {0xe3b69a, 0x8231e733}, - {0xe3b69b, 0x8231e734}, - {0xe3b69c, 0x8231e735}, - {0xe3b69d, 0x8231e736}, - {0xe3b69e, 0x8231e737}, - {0xe3b69f, 0x8231e738}, - {0xe3b6a0, 0x8231e739}, - {0xe3b6a1, 0x8231e830}, - {0xe3b6a2, 0x8231e831}, - {0xe3b6a3, 0x8231e832}, - {0xe3b6a4, 0x8231e833}, - {0xe3b6a5, 0x8231e834}, - {0xe3b6a6, 0x8231e835}, - {0xe3b6a7, 0x8231e836}, - {0xe3b6a8, 0x8231e837}, - {0xe3b6a9, 0x8231e838}, - {0xe3b6aa, 0x8231e839}, - {0xe3b6ab, 0x8231e930}, - {0xe3b6ac, 0x8231e931}, - {0xe3b6ad, 0x8231e932}, - {0xe3b6ae, 0x8231e933}, - {0xe3b6af, 0x8231e934}, - {0xe3b6b0, 0x8231e935}, - {0xe3b6b1, 0x8231e936}, - {0xe3b6b2, 0x8231e937}, - {0xe3b6b3, 0x8231e938}, - {0xe3b6b4, 0x8231e939}, - {0xe3b6b5, 0x8231ea30}, - {0xe3b6b6, 0x8231ea31}, - {0xe3b6b7, 0x8231ea32}, - {0xe3b6b8, 0x8231ea33}, - {0xe3b6b9, 0x8231ea34}, - {0xe3b6ba, 0x8231ea35}, - {0xe3b6bb, 0x8231ea36}, - {0xe3b6bc, 0x8231ea37}, - {0xe3b6bd, 0x8231ea38}, - {0xe3b6be, 0x8231ea39}, - {0xe3b6bf, 0x8231eb30}, - {0xe3b780, 0x8231eb31}, - {0xe3b781, 0x8231eb32}, - {0xe3b782, 0x8231eb33}, - {0xe3b783, 0x8231eb34}, - {0xe3b784, 0x8231eb35}, - {0xe3b785, 0x8231eb36}, - {0xe3b786, 0x8231eb37}, - {0xe3b787, 0x8231eb38}, - {0xe3b788, 0x8231eb39}, - {0xe3b789, 0x8231ec30}, - {0xe3b78a, 0x8231ec31}, - {0xe3b78b, 0x8231ec32}, - {0xe3b78c, 0x8231ec33}, - {0xe3b78d, 0x8231ec34}, - {0xe3b78e, 0x8231ec35}, - {0xe3b78f, 0x8231ec36}, - {0xe3b790, 0x8231ec37}, - {0xe3b791, 0x8231ec38}, - {0xe3b792, 0x8231ec39}, - {0xe3b793, 0x8231ed30}, - {0xe3b794, 0x8231ed31}, - {0xe3b795, 0x8231ed32}, - {0xe3b796, 0x8231ed33}, - {0xe3b797, 0x8231ed34}, - {0xe3b798, 0x8231ed35}, - {0xe3b799, 0x8231ed36}, - {0xe3b79a, 0x8231ed37}, - {0xe3b79b, 0x8231ed38}, - {0xe3b79c, 0x8231ed39}, - {0xe3b79d, 0x8231ee30}, - {0xe3b79e, 0x8231ee31}, - {0xe3b79f, 0x8231ee32}, - {0xe3b7a0, 0x8231ee33}, - {0xe3b7a1, 0x8231ee34}, - {0xe3b7a2, 0x8231ee35}, - {0xe3b7a3, 0x8231ee36}, - {0xe3b7a4, 0x8231ee37}, - {0xe3b7a5, 0x8231ee38}, - {0xe3b7a6, 0x8231ee39}, - {0xe3b7a7, 0x8231ef30}, - {0xe3b7a8, 0x8231ef31}, - {0xe3b7a9, 0x8231ef32}, - {0xe3b7aa, 0x8231ef33}, - {0xe3b7ab, 0x8231ef34}, - {0xe3b7ac, 0x8231ef35}, - {0xe3b7ad, 0x8231ef36}, - {0xe3b7ae, 0x8231ef37}, - {0xe3b7af, 0x8231ef38}, - {0xe3b7b0, 0x8231ef39}, - {0xe3b7b1, 0x8231f030}, - {0xe3b7b2, 0x8231f031}, - {0xe3b7b3, 0x8231f032}, - {0xe3b7b4, 0x8231f033}, - {0xe3b7b5, 0x8231f034}, - {0xe3b7b6, 0x8231f035}, - {0xe3b7b7, 0x8231f036}, - {0xe3b7b8, 0x8231f037}, - {0xe3b7b9, 0x8231f038}, - {0xe3b7ba, 0x8231f039}, - {0xe3b7bb, 0x8231f130}, - {0xe3b7bc, 0x8231f131}, - {0xe3b7bd, 0x8231f132}, - {0xe3b7be, 0x8231f133}, - {0xe3b7bf, 0x8231f134}, - {0xe3b880, 0x8231f135}, - {0xe3b881, 0x8231f136}, - {0xe3b882, 0x8231f137}, - {0xe3b883, 0x8231f138}, - {0xe3b884, 0x8231f139}, - {0xe3b885, 0x8231f230}, - {0xe3b886, 0x8231f231}, - {0xe3b887, 0x8231f232}, - {0xe3b888, 0x8231f233}, - {0xe3b889, 0x8231f234}, - {0xe3b88a, 0x8231f235}, - {0xe3b88b, 0x8231f236}, - {0xe3b88c, 0x8231f237}, - {0xe3b88d, 0x8231f238}, - {0xe3b88e, 0x8231f239}, - {0xe3b88f, 0x8231f330}, - {0xe3b890, 0x8231f331}, - {0xe3b891, 0x8231f332}, - {0xe3b892, 0x8231f333}, - {0xe3b893, 0x8231f334}, - {0xe3b894, 0x8231f335}, - {0xe3b895, 0x8231f336}, - {0xe3b896, 0x8231f337}, - {0xe3b897, 0x8231f338}, - {0xe3b898, 0x8231f339}, - {0xe3b899, 0x8231f430}, - {0xe3b89a, 0x8231f431}, - {0xe3b89b, 0x8231f432}, - {0xe3b89c, 0x8231f433}, - {0xe3b89d, 0x8231f434}, - {0xe3b89e, 0x8231f435}, - {0xe3b89f, 0x8231f436}, - {0xe3b8a0, 0x8231f437}, - {0xe3b8a1, 0x8231f438}, - {0xe3b8a2, 0x8231f439}, - {0xe3b8a3, 0x8231f530}, - {0xe3b8a4, 0x8231f531}, - {0xe3b8a5, 0x8231f532}, - {0xe3b8a6, 0x8231f533}, - {0xe3b8a7, 0x8231f534}, - {0xe3b8a8, 0x8231f535}, - {0xe3b8a9, 0x8231f536}, - {0xe3b8aa, 0x8231f537}, - {0xe3b8ab, 0x8231f538}, - {0xe3b8ac, 0x8231f539}, - {0xe3b8ad, 0x8231f630}, - {0xe3b8ae, 0x8231f631}, - {0xe3b8af, 0x8231f632}, - {0xe3b8b0, 0x8231f633}, - {0xe3b8b1, 0x8231f634}, - {0xe3b8b2, 0x8231f635}, - {0xe3b8b3, 0x8231f636}, - {0xe3b8b4, 0x8231f637}, - {0xe3b8b5, 0x8231f638}, - {0xe3b8b6, 0x8231f639}, - {0xe3b8b7, 0x8231f730}, - {0xe3b8b8, 0x8231f731}, - {0xe3b8b9, 0x8231f732}, - {0xe3b8ba, 0x8231f733}, - {0xe3b8bb, 0x8231f734}, - {0xe3b8bc, 0x8231f735}, - {0xe3b8bd, 0x8231f736}, - {0xe3b8be, 0x8231f737}, - {0xe3b8bf, 0x8231f738}, - {0xe3b980, 0x8231f739}, - {0xe3b981, 0x8231f830}, - {0xe3b982, 0x8231f831}, - {0xe3b983, 0x8231f832}, - {0xe3b984, 0x8231f833}, - {0xe3b985, 0x8231f834}, - {0xe3b986, 0x8231f835}, - {0xe3b987, 0x8231f836}, - {0xe3b988, 0x8231f837}, - {0xe3b989, 0x8231f838}, - {0xe3b98a, 0x8231f839}, - {0xe3b98b, 0x8231f930}, - {0xe3b98c, 0x8231f931}, - {0xe3b98d, 0x8231f932}, - {0xe3b98e, 0x8231f933}, - {0xe3b98f, 0x8231f934}, - {0xe3b990, 0x8231f935}, - {0xe3b991, 0x8231f936}, - {0xe3b992, 0x8231f937}, - {0xe3b993, 0x8231f938}, - {0xe3b994, 0x8231f939}, - {0xe3b995, 0x8231fa30}, - {0xe3b996, 0x8231fa31}, - {0xe3b997, 0x8231fa32}, - {0xe3b998, 0x8231fa33}, - {0xe3b999, 0x8231fa34}, - {0xe3b99a, 0x8231fa35}, - {0xe3b99b, 0x8231fa36}, - {0xe3b99c, 0x8231fa37}, - {0xe3b99d, 0x8231fa38}, - {0xe3b99e, 0x8231fa39}, - {0xe3b99f, 0x8231fb30}, - {0xe3b9a0, 0x8231fb31}, - {0xe3b9a1, 0x8231fb32}, - {0xe3b9a2, 0x8231fb33}, - {0xe3b9a3, 0x8231fb34}, - {0xe3b9a4, 0x8231fb35}, - {0xe3b9a5, 0x8231fb36}, - {0xe3b9a6, 0x8231fb37}, - {0xe3b9a7, 0x8231fb38}, - {0xe3b9a8, 0x8231fb39}, - {0xe3b9a9, 0x8231fc30}, - {0xe3b9aa, 0x8231fc31}, - {0xe3b9ab, 0x8231fc32}, - {0xe3b9ac, 0x8231fc33}, - {0xe3b9ad, 0x8231fc34}, - {0xe3b9ae, 0x8231fc35}, - {0xe3b9af, 0x8231fc36}, - {0xe3b9b0, 0x8231fc37}, - {0xe3b9b1, 0x8231fc38}, - {0xe3b9b2, 0x8231fc39}, - {0xe3b9b3, 0x8231fd30}, - {0xe3b9b4, 0x8231fd31}, - {0xe3b9b5, 0x8231fd32}, - {0xe3b9b6, 0x8231fd33}, - {0xe3b9b7, 0x8231fd34}, - {0xe3b9b8, 0x8231fd35}, - {0xe3b9b9, 0x8231fd36}, - {0xe3b9ba, 0x8231fd37}, - {0xe3b9bb, 0x8231fd38}, - {0xe3b9bc, 0x8231fd39}, - {0xe3b9bd, 0x8231fe30}, - {0xe3b9be, 0x8231fe31}, - {0xe3b9bf, 0x8231fe32}, - {0xe3ba80, 0x8231fe33}, - {0xe3ba81, 0x8231fe34}, - {0xe3ba82, 0x8231fe35}, - {0xe3ba83, 0x8231fe36}, - {0xe3ba84, 0x8231fe37}, - {0xe3ba85, 0x8231fe38}, - {0xe3ba86, 0x8231fe39}, - {0xe3ba87, 0x82328130}, - {0xe3ba88, 0x82328131}, - {0xe3ba89, 0x82328132}, - {0xe3ba8a, 0x82328133}, - {0xe3ba8b, 0x82328134}, - {0xe3ba8c, 0x82328135}, - {0xe3ba8d, 0x82328136}, - {0xe3ba8e, 0x82328137}, - {0xe3ba8f, 0x82328138}, - {0xe3ba90, 0x82328139}, - {0xe3ba91, 0x82328230}, - {0xe3ba92, 0x82328231}, - {0xe3ba93, 0x82328232}, - {0xe3ba94, 0x82328233}, - {0xe3ba95, 0x82328234}, - {0xe3ba96, 0x82328235}, - {0xe3ba97, 0x82328236}, - {0xe3ba98, 0x82328237}, - {0xe3ba99, 0x82328238}, - {0xe3ba9a, 0x82328239}, - {0xe3ba9b, 0x82328330}, - {0xe3ba9c, 0x82328331}, - {0xe3ba9d, 0x82328332}, - {0xe3ba9e, 0x82328333}, - {0xe3ba9f, 0x82328334}, - {0xe3baa0, 0x82328335}, - {0xe3baa1, 0x82328336}, - {0xe3baa2, 0x82328337}, - {0xe3baa3, 0x82328338}, - {0xe3baa4, 0x82328339}, - {0xe3baa5, 0x82328430}, - {0xe3baa6, 0x82328431}, - {0xe3baa7, 0x82328432}, - {0xe3baa8, 0x82328433}, - {0xe3baa9, 0x82328434}, - {0xe3baaa, 0x82328435}, - {0xe3baab, 0x82328436}, - {0xe3baac, 0x82328437}, - {0xe3baad, 0x82328438}, - {0xe3baae, 0x82328439}, - {0xe3baaf, 0x82328530}, - {0xe3bab0, 0x82328531}, - {0xe3bab1, 0x82328532}, - {0xe3bab2, 0x82328533}, - {0xe3bab3, 0x82328534}, - {0xe3bab4, 0x82328535}, - {0xe3bab5, 0x82328536}, - {0xe3bab6, 0x82328537}, - {0xe3bab7, 0x82328538}, - {0xe3bab8, 0x82328539}, - {0xe3bab9, 0x82328630}, - {0xe3baba, 0x82328631}, - {0xe3babb, 0x82328632}, - {0xe3babc, 0x82328633}, - {0xe3babd, 0x82328634}, - {0xe3babe, 0x82328635}, - {0xe3babf, 0x82328636}, - {0xe3bb80, 0x82328637}, - {0xe3bb81, 0x82328638}, - {0xe3bb82, 0x82328639}, - {0xe3bb83, 0x82328730}, - {0xe3bb84, 0x82328731}, - {0xe3bb85, 0x82328732}, - {0xe3bb86, 0x82328733}, - {0xe3bb87, 0x82328734}, - {0xe3bb88, 0x82328735}, - {0xe3bb89, 0x82328736}, - {0xe3bb8a, 0x82328737}, - {0xe3bb8b, 0x82328738}, - {0xe3bb8c, 0x82328739}, - {0xe3bb8d, 0x82328830}, - {0xe3bb8e, 0x82328831}, - {0xe3bb8f, 0x82328832}, - {0xe3bb90, 0x82328833}, - {0xe3bb91, 0x82328834}, - {0xe3bb92, 0x82328835}, - {0xe3bb93, 0x82328836}, - {0xe3bb94, 0x82328837}, - {0xe3bb95, 0x82328838}, - {0xe3bb96, 0x82328839}, - {0xe3bb97, 0x82328930}, - {0xe3bb98, 0x82328931}, - {0xe3bb99, 0x82328932}, - {0xe3bb9a, 0x82328933}, - {0xe3bb9b, 0x82328934}, - {0xe3bb9c, 0x82328935}, - {0xe3bb9d, 0x82328936}, - {0xe3bb9e, 0x82328937}, - {0xe3bb9f, 0x82328938}, - {0xe3bba0, 0x82328939}, - {0xe3bba1, 0x82328a30}, - {0xe3bba2, 0x82328a31}, - {0xe3bba3, 0x82328a32}, - {0xe3bba4, 0x82328a33}, - {0xe3bba5, 0x82328a34}, - {0xe3bba6, 0x82328a35}, - {0xe3bba7, 0x82328a36}, - {0xe3bba8, 0x82328a37}, - {0xe3bba9, 0x82328a38}, - {0xe3bbaa, 0x82328a39}, - {0xe3bbab, 0x82328b30}, - {0xe3bbac, 0x82328b31}, - {0xe3bbad, 0x82328b32}, - {0xe3bbae, 0x82328b33}, - {0xe3bbaf, 0x82328b34}, - {0xe3bbb0, 0x82328b35}, - {0xe3bbb1, 0x82328b36}, - {0xe3bbb2, 0x82328b37}, - {0xe3bbb3, 0x82328b38}, - {0xe3bbb4, 0x82328b39}, - {0xe3bbb5, 0x82328c30}, - {0xe3bbb6, 0x82328c31}, - {0xe3bbb7, 0x82328c32}, - {0xe3bbb8, 0x82328c33}, - {0xe3bbb9, 0x82328c34}, - {0xe3bbba, 0x82328c35}, - {0xe3bbbb, 0x82328c36}, - {0xe3bbbc, 0x82328c37}, - {0xe3bbbd, 0x82328c38}, - {0xe3bbbe, 0x82328c39}, - {0xe3bbbf, 0x82328d30}, - {0xe3bc80, 0x82328d31}, - {0xe3bc81, 0x82328d32}, - {0xe3bc82, 0x82328d33}, - {0xe3bc83, 0x82328d34}, - {0xe3bc84, 0x82328d35}, - {0xe3bc85, 0x82328d36}, - {0xe3bc86, 0x82328d37}, - {0xe3bc87, 0x82328d38}, - {0xe3bc88, 0x82328d39}, - {0xe3bc89, 0x82328e30}, - {0xe3bc8a, 0x82328e31}, - {0xe3bc8b, 0x82328e32}, - {0xe3bc8c, 0x82328e33}, - {0xe3bc8d, 0x82328e34}, - {0xe3bc8e, 0x82328e35}, - {0xe3bc8f, 0x82328e36}, - {0xe3bc90, 0x82328e37}, - {0xe3bc91, 0x82328e38}, - {0xe3bc92, 0x82328e39}, - {0xe3bc93, 0x82328f30}, - {0xe3bc94, 0x82328f31}, - {0xe3bc95, 0x82328f32}, - {0xe3bc96, 0x82328f33}, - {0xe3bc97, 0x82328f34}, - {0xe3bc98, 0x82328f35}, - {0xe3bc99, 0x82328f36}, - {0xe3bc9a, 0x82328f37}, - {0xe3bc9b, 0x82328f38}, - {0xe3bc9c, 0x82328f39}, - {0xe3bc9d, 0x82329030}, - {0xe3bc9e, 0x82329031}, - {0xe3bc9f, 0x82329032}, - {0xe3bca0, 0x82329033}, - {0xe3bca1, 0x82329034}, - {0xe3bca2, 0x82329035}, - {0xe3bca3, 0x82329036}, - {0xe3bca4, 0x82329037}, - {0xe3bca5, 0x82329038}, - {0xe3bca6, 0x82329039}, - {0xe3bca7, 0x82329130}, - {0xe3bca8, 0x82329131}, - {0xe3bca9, 0x82329132}, - {0xe3bcaa, 0x82329133}, - {0xe3bcab, 0x82329134}, - {0xe3bcac, 0x82329135}, - {0xe3bcad, 0x82329136}, - {0xe3bcae, 0x82329137}, - {0xe3bcaf, 0x82329138}, - {0xe3bcb0, 0x82329139}, - {0xe3bcb1, 0x82329230}, - {0xe3bcb2, 0x82329231}, - {0xe3bcb3, 0x82329232}, - {0xe3bcb4, 0x82329233}, - {0xe3bcb5, 0x82329234}, - {0xe3bcb6, 0x82329235}, - {0xe3bcb7, 0x82329236}, - {0xe3bcb8, 0x82329237}, - {0xe3bcb9, 0x82329238}, - {0xe3bcba, 0x82329239}, - {0xe3bcbb, 0x82329330}, - {0xe3bcbc, 0x82329331}, - {0xe3bcbd, 0x82329332}, - {0xe3bcbe, 0x82329333}, - {0xe3bcbf, 0x82329334}, - {0xe3bd80, 0x82329335}, - {0xe3bd81, 0x82329336}, - {0xe3bd82, 0x82329337}, - {0xe3bd83, 0x82329338}, - {0xe3bd84, 0x82329339}, - {0xe3bd85, 0x82329430}, - {0xe3bd86, 0x82329431}, - {0xe3bd87, 0x82329432}, - {0xe3bd88, 0x82329433}, - {0xe3bd89, 0x82329434}, - {0xe3bd8a, 0x82329435}, - {0xe3bd8b, 0x82329436}, - {0xe3bd8c, 0x82329437}, - {0xe3bd8d, 0x82329438}, - {0xe3bd8e, 0x82329439}, - {0xe3bd8f, 0x82329530}, - {0xe3bd90, 0x82329531}, - {0xe3bd91, 0x82329532}, - {0xe3bd92, 0x82329533}, - {0xe3bd93, 0x82329534}, - {0xe3bd94, 0x82329535}, - {0xe3bd95, 0x82329536}, - {0xe3bd96, 0x82329537}, - {0xe3bd97, 0x82329538}, - {0xe3bd98, 0x82329539}, - {0xe3bd99, 0x82329630}, - {0xe3bd9a, 0x82329631}, - {0xe3bd9b, 0x82329632}, - {0xe3bd9c, 0x82329633}, - {0xe3bd9d, 0x82329634}, - {0xe3bd9e, 0x82329635}, - {0xe3bd9f, 0x82329636}, - {0xe3bda0, 0x82329637}, - {0xe3bda1, 0x82329638}, - {0xe3bda2, 0x82329639}, - {0xe3bda3, 0x82329730}, - {0xe3bda4, 0x82329731}, - {0xe3bda5, 0x82329732}, - {0xe3bda6, 0x82329733}, - {0xe3bda7, 0x82329734}, - {0xe3bda8, 0x82329735}, - {0xe3bda9, 0x82329736}, - {0xe3bdaa, 0x82329737}, - {0xe3bdab, 0x82329738}, - {0xe3bdac, 0x82329739}, - {0xe3bdad, 0x82329830}, - {0xe3bdae, 0x82329831}, - {0xe3bdaf, 0x82329832}, - {0xe3bdb0, 0x82329833}, - {0xe3bdb1, 0x82329834}, - {0xe3bdb2, 0x82329835}, - {0xe3bdb3, 0x82329836}, - {0xe3bdb4, 0x82329837}, - {0xe3bdb5, 0x82329838}, - {0xe3bdb6, 0x82329839}, - {0xe3bdb7, 0x82329930}, - {0xe3bdb8, 0x82329931}, - {0xe3bdb9, 0x82329932}, - {0xe3bdba, 0x82329933}, - {0xe3bdbb, 0x82329934}, - {0xe3bdbc, 0x82329935}, - {0xe3bdbd, 0x82329936}, - {0xe3bdbe, 0x82329937}, - {0xe3bdbf, 0x82329938}, - {0xe3be80, 0x82329939}, - {0xe3be81, 0x82329a30}, - {0xe3be82, 0x82329a31}, - {0xe3be83, 0x82329a32}, - {0xe3be84, 0x82329a33}, - {0xe3be85, 0x82329a34}, - {0xe3be86, 0x82329a35}, - {0xe3be87, 0x82329a36}, - {0xe3be88, 0x82329a37}, - {0xe3be89, 0x82329a38}, - {0xe3be8a, 0x82329a39}, - {0xe3be8b, 0x82329b30}, - {0xe3be8c, 0x82329b31}, - {0xe3be8d, 0x82329b32}, - {0xe3be8e, 0x82329b33}, - {0xe3be8f, 0x82329b34}, - {0xe3be90, 0x82329b35}, - {0xe3be91, 0x82329b36}, - {0xe3be92, 0x82329b37}, - {0xe3be93, 0x82329b38}, - {0xe3be94, 0x82329b39}, - {0xe3be95, 0x82329c30}, - {0xe3be96, 0x82329c31}, - {0xe3be97, 0x82329c32}, - {0xe3be98, 0x82329c33}, - {0xe3be99, 0x82329c34}, - {0xe3be9a, 0x82329c35}, - {0xe3be9b, 0x82329c36}, - {0xe3be9c, 0x82329c37}, - {0xe3be9d, 0x82329c38}, - {0xe3be9e, 0x82329c39}, - {0xe3be9f, 0x82329d30}, - {0xe3bea0, 0x82329d31}, - {0xe3bea1, 0x82329d32}, - {0xe3bea2, 0x82329d33}, - {0xe3bea3, 0x82329d34}, - {0xe3bea4, 0x82329d35}, - {0xe3bea5, 0x82329d36}, - {0xe3bea6, 0x82329d37}, - {0xe3bea7, 0x82329d38}, - {0xe3bea8, 0x82329d39}, - {0xe3bea9, 0x82329e30}, - {0xe3beaa, 0x82329e31}, - {0xe3beab, 0x82329e32}, - {0xe3beac, 0x82329e33}, - {0xe3bead, 0x82329e34}, - {0xe3beae, 0x82329e35}, - {0xe3beaf, 0x82329e36}, - {0xe3beb0, 0x82329e37}, - {0xe3beb1, 0x82329e38}, - {0xe3beb2, 0x82329e39}, - {0xe3beb3, 0x82329f30}, - {0xe3beb4, 0x82329f31}, - {0xe3beb5, 0x82329f32}, - {0xe3beb6, 0x82329f33}, - {0xe3beb7, 0x82329f34}, - {0xe3beb8, 0x82329f35}, - {0xe3beb9, 0x82329f36}, - {0xe3beba, 0x82329f37}, - {0xe3bebb, 0x82329f38}, - {0xe3bebc, 0x82329f39}, - {0xe3bebd, 0x8232a030}, - {0xe3bebe, 0x8232a031}, - {0xe3bebf, 0x8232a032}, - {0xe3bf80, 0x8232a033}, - {0xe3bf81, 0x8232a034}, - {0xe3bf82, 0x8232a035}, - {0xe3bf83, 0x8232a036}, - {0xe3bf84, 0x8232a037}, - {0xe3bf85, 0x8232a038}, - {0xe3bf86, 0x8232a039}, - {0xe3bf87, 0x8232a130}, - {0xe3bf88, 0x8232a131}, - {0xe3bf89, 0x8232a132}, - {0xe3bf8a, 0x8232a133}, - {0xe3bf8b, 0x8232a134}, - {0xe3bf8c, 0x8232a135}, - {0xe3bf8d, 0x8232a136}, - {0xe3bf8e, 0x8232a137}, - {0xe3bf8f, 0x8232a138}, - {0xe3bf90, 0x8232a139}, - {0xe3bf91, 0x8232a230}, - {0xe3bf92, 0x8232a231}, - {0xe3bf93, 0x8232a232}, - {0xe3bf94, 0x8232a233}, - {0xe3bf95, 0x8232a234}, - {0xe3bf96, 0x8232a235}, - {0xe3bf97, 0x8232a236}, - {0xe3bf98, 0x8232a237}, - {0xe3bf99, 0x8232a238}, - {0xe3bf9a, 0x8232a239}, - {0xe3bf9b, 0x8232a330}, - {0xe3bf9c, 0x8232a331}, - {0xe3bf9d, 0x8232a332}, - {0xe3bf9e, 0x8232a333}, - {0xe3bf9f, 0x8232a334}, - {0xe3bfa0, 0x8232a335}, - {0xe3bfa1, 0x8232a336}, - {0xe3bfa2, 0x8232a337}, - {0xe3bfa3, 0x8232a338}, - {0xe3bfa4, 0x8232a339}, - {0xe3bfa5, 0x8232a430}, - {0xe3bfa6, 0x8232a431}, - {0xe3bfa7, 0x8232a432}, - {0xe3bfa8, 0x8232a433}, - {0xe3bfa9, 0x8232a434}, - {0xe3bfaa, 0x8232a435}, - {0xe3bfab, 0x8232a436}, - {0xe3bfac, 0x8232a437}, - {0xe3bfad, 0x8232a438}, - {0xe3bfae, 0x8232a439}, - {0xe3bfaf, 0x8232a530}, - {0xe3bfb0, 0x8232a531}, - {0xe3bfb1, 0x8232a532}, - {0xe3bfb2, 0x8232a533}, - {0xe3bfb3, 0x8232a534}, - {0xe3bfb4, 0x8232a535}, - {0xe3bfb5, 0x8232a536}, - {0xe3bfb6, 0x8232a537}, - {0xe3bfb7, 0x8232a538}, - {0xe3bfb8, 0x8232a539}, - {0xe3bfb9, 0x8232a630}, - {0xe3bfba, 0x8232a631}, - {0xe3bfbb, 0x8232a632}, - {0xe3bfbc, 0x8232a633}, - {0xe3bfbd, 0x8232a634}, - {0xe3bfbe, 0x8232a635}, - {0xe3bfbf, 0x8232a636}, - {0xe48080, 0x8232a637}, - {0xe48081, 0x8232a638}, - {0xe48082, 0x8232a639}, - {0xe48083, 0x8232a730}, - {0xe48084, 0x8232a731}, - {0xe48085, 0x8232a732}, - {0xe48086, 0x8232a733}, - {0xe48087, 0x8232a734}, - {0xe48088, 0x8232a735}, - {0xe48089, 0x8232a736}, - {0xe4808a, 0x8232a737}, - {0xe4808b, 0x8232a738}, - {0xe4808c, 0x8232a739}, - {0xe4808d, 0x8232a830}, - {0xe4808e, 0x8232a831}, - {0xe4808f, 0x8232a832}, - {0xe48090, 0x8232a833}, - {0xe48091, 0x8232a834}, - {0xe48092, 0x8232a835}, - {0xe48093, 0x8232a836}, - {0xe48094, 0x8232a837}, - {0xe48095, 0x8232a838}, - {0xe48096, 0x8232a839}, - {0xe48097, 0x8232a930}, - {0xe48098, 0x8232a931}, - {0xe48099, 0x8232a932}, - {0xe4809a, 0x8232a933}, - {0xe4809b, 0x8232a934}, - {0xe4809c, 0x8232a935}, - {0xe4809d, 0x8232a936}, - {0xe4809e, 0x8232a937}, - {0xe4809f, 0x8232a938}, - {0xe480a0, 0x8232a939}, - {0xe480a1, 0x8232aa30}, - {0xe480a2, 0x8232aa31}, - {0xe480a3, 0x8232aa32}, - {0xe480a4, 0x8232aa33}, - {0xe480a5, 0x8232aa34}, - {0xe480a6, 0x8232aa35}, - {0xe480a7, 0x8232aa36}, - {0xe480a8, 0x8232aa37}, - {0xe480a9, 0x8232aa38}, - {0xe480aa, 0x8232aa39}, - {0xe480ab, 0x8232ab30}, - {0xe480ac, 0x8232ab31}, - {0xe480ad, 0x8232ab32}, - {0xe480ae, 0x8232ab33}, - {0xe480af, 0x8232ab34}, - {0xe480b0, 0x8232ab35}, - {0xe480b1, 0x8232ab36}, - {0xe480b2, 0x8232ab37}, - {0xe480b3, 0x8232ab38}, - {0xe480b4, 0x8232ab39}, - {0xe480b5, 0x8232ac30}, - {0xe480b6, 0x8232ac31}, - {0xe480b7, 0x8232ac32}, - {0xe480b8, 0x8232ac33}, - {0xe480b9, 0x8232ac34}, - {0xe480ba, 0x8232ac35}, - {0xe480bb, 0x8232ac36}, - {0xe480bc, 0x8232ac37}, - {0xe480bd, 0x8232ac38}, - {0xe480be, 0x8232ac39}, - {0xe480bf, 0x8232ad30}, - {0xe48180, 0x8232ad31}, - {0xe48181, 0x8232ad32}, - {0xe48182, 0x8232ad33}, - {0xe48183, 0x8232ad34}, - {0xe48184, 0x8232ad35}, - {0xe48185, 0x8232ad36}, - {0xe48186, 0x8232ad37}, - {0xe48187, 0x8232ad38}, - {0xe48188, 0x8232ad39}, - {0xe48189, 0x8232ae30}, - {0xe4818a, 0x8232ae31}, - {0xe4818b, 0x8232ae32}, - {0xe4818c, 0x8232ae33}, - {0xe4818d, 0x8232ae34}, - {0xe4818e, 0x8232ae35}, - {0xe4818f, 0x8232ae36}, - {0xe48190, 0x8232ae37}, - {0xe48191, 0x8232ae38}, - {0xe48192, 0x8232ae39}, - {0xe48193, 0x8232af30}, - {0xe48194, 0x8232af31}, - {0xe48195, 0x8232af32}, {0xe48196, 0xfe6f}, {0xe48197, 0x8232af33}, {0xe48198, 0x8232af34}, @@ -16607,477 +5745,6 @@ static pg_utf_to_local ULmapGB18030[ 63360 ] = { {0xe4859d, 0x8232c935}, {0xe4859e, 0x8232c936}, {0xe4859f, 0xfe70}, - {0xe485a0, 0x8232c937}, - {0xe485a1, 0x8232c938}, - {0xe485a2, 0x8232c939}, - {0xe485a3, 0x8232ca30}, - {0xe485a4, 0x8232ca31}, - {0xe485a5, 0x8232ca32}, - {0xe485a6, 0x8232ca33}, - {0xe485a7, 0x8232ca34}, - {0xe485a8, 0x8232ca35}, - {0xe485a9, 0x8232ca36}, - {0xe485aa, 0x8232ca37}, - {0xe485ab, 0x8232ca38}, - {0xe485ac, 0x8232ca39}, - {0xe485ad, 0x8232cb30}, - {0xe485ae, 0x8232cb31}, - {0xe485af, 0x8232cb32}, - {0xe485b0, 0x8232cb33}, - {0xe485b1, 0x8232cb34}, - {0xe485b2, 0x8232cb35}, - {0xe485b3, 0x8232cb36}, - {0xe485b4, 0x8232cb37}, - {0xe485b5, 0x8232cb38}, - {0xe485b6, 0x8232cb39}, - {0xe485b7, 0x8232cc30}, - {0xe485b8, 0x8232cc31}, - {0xe485b9, 0x8232cc32}, - {0xe485ba, 0x8232cc33}, - {0xe485bb, 0x8232cc34}, - {0xe485bc, 0x8232cc35}, - {0xe485bd, 0x8232cc36}, - {0xe485be, 0x8232cc37}, - {0xe485bf, 0x8232cc38}, - {0xe48680, 0x8232cc39}, - {0xe48681, 0x8232cd30}, - {0xe48682, 0x8232cd31}, - {0xe48683, 0x8232cd32}, - {0xe48684, 0x8232cd33}, - {0xe48685, 0x8232cd34}, - {0xe48686, 0x8232cd35}, - {0xe48687, 0x8232cd36}, - {0xe48688, 0x8232cd37}, - {0xe48689, 0x8232cd38}, - {0xe4868a, 0x8232cd39}, - {0xe4868b, 0x8232ce30}, - {0xe4868c, 0x8232ce31}, - {0xe4868d, 0x8232ce32}, - {0xe4868e, 0x8232ce33}, - {0xe4868f, 0x8232ce34}, - {0xe48690, 0x8232ce35}, - {0xe48691, 0x8232ce36}, - {0xe48692, 0x8232ce37}, - {0xe48693, 0x8232ce38}, - {0xe48694, 0x8232ce39}, - {0xe48695, 0x8232cf30}, - {0xe48696, 0x8232cf31}, - {0xe48697, 0x8232cf32}, - {0xe48698, 0x8232cf33}, - {0xe48699, 0x8232cf34}, - {0xe4869a, 0x8232cf35}, - {0xe4869b, 0x8232cf36}, - {0xe4869c, 0x8232cf37}, - {0xe4869d, 0x8232cf38}, - {0xe4869e, 0x8232cf39}, - {0xe4869f, 0x8232d030}, - {0xe486a0, 0x8232d031}, - {0xe486a1, 0x8232d032}, - {0xe486a2, 0x8232d033}, - {0xe486a3, 0x8232d034}, - {0xe486a4, 0x8232d035}, - {0xe486a5, 0x8232d036}, - {0xe486a6, 0x8232d037}, - {0xe486a7, 0x8232d038}, - {0xe486a8, 0x8232d039}, - {0xe486a9, 0x8232d130}, - {0xe486aa, 0x8232d131}, - {0xe486ab, 0x8232d132}, - {0xe486ac, 0x8232d133}, - {0xe486ad, 0x8232d134}, - {0xe486ae, 0x8232d135}, - {0xe486af, 0x8232d136}, - {0xe486b0, 0x8232d137}, - {0xe486b1, 0x8232d138}, - {0xe486b2, 0x8232d139}, - {0xe486b3, 0x8232d230}, - {0xe486b4, 0x8232d231}, - {0xe486b5, 0x8232d232}, - {0xe486b6, 0x8232d233}, - {0xe486b7, 0x8232d234}, - {0xe486b8, 0x8232d235}, - {0xe486b9, 0x8232d236}, - {0xe486ba, 0x8232d237}, - {0xe486bb, 0x8232d238}, - {0xe486bc, 0x8232d239}, - {0xe486bd, 0x8232d330}, - {0xe486be, 0x8232d331}, - {0xe486bf, 0x8232d332}, - {0xe48780, 0x8232d333}, - {0xe48781, 0x8232d334}, - {0xe48782, 0x8232d335}, - {0xe48783, 0x8232d336}, - {0xe48784, 0x8232d337}, - {0xe48785, 0x8232d338}, - {0xe48786, 0x8232d339}, - {0xe48787, 0x8232d430}, - {0xe48788, 0x8232d431}, - {0xe48789, 0x8232d432}, - {0xe4878a, 0x8232d433}, - {0xe4878b, 0x8232d434}, - {0xe4878c, 0x8232d435}, - {0xe4878d, 0x8232d436}, - {0xe4878e, 0x8232d437}, - {0xe4878f, 0x8232d438}, - {0xe48790, 0x8232d439}, - {0xe48791, 0x8232d530}, - {0xe48792, 0x8232d531}, - {0xe48793, 0x8232d532}, - {0xe48794, 0x8232d533}, - {0xe48795, 0x8232d534}, - {0xe48796, 0x8232d535}, - {0xe48797, 0x8232d536}, - {0xe48798, 0x8232d537}, - {0xe48799, 0x8232d538}, - {0xe4879a, 0x8232d539}, - {0xe4879b, 0x8232d630}, - {0xe4879c, 0x8232d631}, - {0xe4879d, 0x8232d632}, - {0xe4879e, 0x8232d633}, - {0xe4879f, 0x8232d634}, - {0xe487a0, 0x8232d635}, - {0xe487a1, 0x8232d636}, - {0xe487a2, 0x8232d637}, - {0xe487a3, 0x8232d638}, - {0xe487a4, 0x8232d639}, - {0xe487a5, 0x8232d730}, - {0xe487a6, 0x8232d731}, - {0xe487a7, 0x8232d732}, - {0xe487a8, 0x8232d733}, - {0xe487a9, 0x8232d734}, - {0xe487aa, 0x8232d735}, - {0xe487ab, 0x8232d736}, - {0xe487ac, 0x8232d737}, - {0xe487ad, 0x8232d738}, - {0xe487ae, 0x8232d739}, - {0xe487af, 0x8232d830}, - {0xe487b0, 0x8232d831}, - {0xe487b1, 0x8232d832}, - {0xe487b2, 0x8232d833}, - {0xe487b3, 0x8232d834}, - {0xe487b4, 0x8232d835}, - {0xe487b5, 0x8232d836}, - {0xe487b6, 0x8232d837}, - {0xe487b7, 0x8232d838}, - {0xe487b8, 0x8232d839}, - {0xe487b9, 0x8232d930}, - {0xe487ba, 0x8232d931}, - {0xe487bb, 0x8232d932}, - {0xe487bc, 0x8232d933}, - {0xe487bd, 0x8232d934}, - {0xe487be, 0x8232d935}, - {0xe487bf, 0x8232d936}, - {0xe48880, 0x8232d937}, - {0xe48881, 0x8232d938}, - {0xe48882, 0x8232d939}, - {0xe48883, 0x8232da30}, - {0xe48884, 0x8232da31}, - {0xe48885, 0x8232da32}, - {0xe48886, 0x8232da33}, - {0xe48887, 0x8232da34}, - {0xe48888, 0x8232da35}, - {0xe48889, 0x8232da36}, - {0xe4888a, 0x8232da37}, - {0xe4888b, 0x8232da38}, - {0xe4888c, 0x8232da39}, - {0xe4888d, 0x8232db30}, - {0xe4888e, 0x8232db31}, - {0xe4888f, 0x8232db32}, - {0xe48890, 0x8232db33}, - {0xe48891, 0x8232db34}, - {0xe48892, 0x8232db35}, - {0xe48893, 0x8232db36}, - {0xe48894, 0x8232db37}, - {0xe48895, 0x8232db38}, - {0xe48896, 0x8232db39}, - {0xe48897, 0x8232dc30}, - {0xe48898, 0x8232dc31}, - {0xe48899, 0x8232dc32}, - {0xe4889a, 0x8232dc33}, - {0xe4889b, 0x8232dc34}, - {0xe4889c, 0x8232dc35}, - {0xe4889d, 0x8232dc36}, - {0xe4889e, 0x8232dc37}, - {0xe4889f, 0x8232dc38}, - {0xe488a0, 0x8232dc39}, - {0xe488a1, 0x8232dd30}, - {0xe488a2, 0x8232dd31}, - {0xe488a3, 0x8232dd32}, - {0xe488a4, 0x8232dd33}, - {0xe488a5, 0x8232dd34}, - {0xe488a6, 0x8232dd35}, - {0xe488a7, 0x8232dd36}, - {0xe488a8, 0x8232dd37}, - {0xe488a9, 0x8232dd38}, - {0xe488aa, 0x8232dd39}, - {0xe488ab, 0x8232de30}, - {0xe488ac, 0x8232de31}, - {0xe488ad, 0x8232de32}, - {0xe488ae, 0x8232de33}, - {0xe488af, 0x8232de34}, - {0xe488b0, 0x8232de35}, - {0xe488b1, 0x8232de36}, - {0xe488b2, 0x8232de37}, - {0xe488b3, 0x8232de38}, - {0xe488b4, 0x8232de39}, - {0xe488b5, 0x8232df30}, - {0xe488b6, 0x8232df31}, - {0xe488b7, 0x8232df32}, - {0xe488b8, 0x8232df33}, - {0xe488b9, 0x8232df34}, - {0xe488ba, 0x8232df35}, - {0xe488bb, 0x8232df36}, - {0xe488bc, 0x8232df37}, - {0xe488bd, 0x8232df38}, - {0xe488be, 0x8232df39}, - {0xe488bf, 0x8232e030}, - {0xe48980, 0x8232e031}, - {0xe48981, 0x8232e032}, - {0xe48982, 0x8232e033}, - {0xe48983, 0x8232e034}, - {0xe48984, 0x8232e035}, - {0xe48985, 0x8232e036}, - {0xe48986, 0x8232e037}, - {0xe48987, 0x8232e038}, - {0xe48988, 0x8232e039}, - {0xe48989, 0x8232e130}, - {0xe4898a, 0x8232e131}, - {0xe4898b, 0x8232e132}, - {0xe4898c, 0x8232e133}, - {0xe4898d, 0x8232e134}, - {0xe4898e, 0x8232e135}, - {0xe4898f, 0x8232e136}, - {0xe48990, 0x8232e137}, - {0xe48991, 0x8232e138}, - {0xe48992, 0x8232e139}, - {0xe48993, 0x8232e230}, - {0xe48994, 0x8232e231}, - {0xe48995, 0x8232e232}, - {0xe48996, 0x8232e233}, - {0xe48997, 0x8232e234}, - {0xe48998, 0x8232e235}, - {0xe48999, 0x8232e236}, - {0xe4899a, 0x8232e237}, - {0xe4899b, 0x8232e238}, - {0xe4899c, 0x8232e239}, - {0xe4899d, 0x8232e330}, - {0xe4899e, 0x8232e331}, - {0xe4899f, 0x8232e332}, - {0xe489a0, 0x8232e333}, - {0xe489a1, 0x8232e334}, - {0xe489a2, 0x8232e335}, - {0xe489a3, 0x8232e336}, - {0xe489a4, 0x8232e337}, - {0xe489a5, 0x8232e338}, - {0xe489a6, 0x8232e339}, - {0xe489a7, 0x8232e430}, - {0xe489a8, 0x8232e431}, - {0xe489a9, 0x8232e432}, - {0xe489aa, 0x8232e433}, - {0xe489ab, 0x8232e434}, - {0xe489ac, 0x8232e435}, - {0xe489ad, 0x8232e436}, - {0xe489ae, 0x8232e437}, - {0xe489af, 0x8232e438}, - {0xe489b0, 0x8232e439}, - {0xe489b1, 0x8232e530}, - {0xe489b2, 0x8232e531}, - {0xe489b3, 0x8232e532}, - {0xe489b4, 0x8232e533}, - {0xe489b5, 0x8232e534}, - {0xe489b6, 0x8232e535}, - {0xe489b7, 0x8232e536}, - {0xe489b8, 0x8232e537}, - {0xe489b9, 0x8232e538}, - {0xe489ba, 0x8232e539}, - {0xe489bb, 0x8232e630}, - {0xe489bc, 0x8232e631}, - {0xe489bd, 0x8232e632}, - {0xe489be, 0x8232e633}, - {0xe489bf, 0x8232e634}, - {0xe48a80, 0x8232e635}, - {0xe48a81, 0x8232e636}, - {0xe48a82, 0x8232e637}, - {0xe48a83, 0x8232e638}, - {0xe48a84, 0x8232e639}, - {0xe48a85, 0x8232e730}, - {0xe48a86, 0x8232e731}, - {0xe48a87, 0x8232e732}, - {0xe48a88, 0x8232e733}, - {0xe48a89, 0x8232e734}, - {0xe48a8a, 0x8232e735}, - {0xe48a8b, 0x8232e736}, - {0xe48a8c, 0x8232e737}, - {0xe48a8d, 0x8232e738}, - {0xe48a8e, 0x8232e739}, - {0xe48a8f, 0x8232e830}, - {0xe48a90, 0x8232e831}, - {0xe48a91, 0x8232e832}, - {0xe48a92, 0x8232e833}, - {0xe48a93, 0x8232e834}, - {0xe48a94, 0x8232e835}, - {0xe48a95, 0x8232e836}, - {0xe48a96, 0x8232e837}, - {0xe48a97, 0x8232e838}, - {0xe48a98, 0x8232e839}, - {0xe48a99, 0x8232e930}, - {0xe48a9a, 0x8232e931}, - {0xe48a9b, 0x8232e932}, - {0xe48a9c, 0x8232e933}, - {0xe48a9d, 0x8232e934}, - {0xe48a9e, 0x8232e935}, - {0xe48a9f, 0x8232e936}, - {0xe48aa0, 0x8232e937}, - {0xe48aa1, 0x8232e938}, - {0xe48aa2, 0x8232e939}, - {0xe48aa3, 0x8232ea30}, - {0xe48aa4, 0x8232ea31}, - {0xe48aa5, 0x8232ea32}, - {0xe48aa6, 0x8232ea33}, - {0xe48aa7, 0x8232ea34}, - {0xe48aa8, 0x8232ea35}, - {0xe48aa9, 0x8232ea36}, - {0xe48aaa, 0x8232ea37}, - {0xe48aab, 0x8232ea38}, - {0xe48aac, 0x8232ea39}, - {0xe48aad, 0x8232eb30}, - {0xe48aae, 0x8232eb31}, - {0xe48aaf, 0x8232eb32}, - {0xe48ab0, 0x8232eb33}, - {0xe48ab1, 0x8232eb34}, - {0xe48ab2, 0x8232eb35}, - {0xe48ab3, 0x8232eb36}, - {0xe48ab4, 0x8232eb37}, - {0xe48ab5, 0x8232eb38}, - {0xe48ab6, 0x8232eb39}, - {0xe48ab7, 0x8232ec30}, - {0xe48ab8, 0x8232ec31}, - {0xe48ab9, 0x8232ec32}, - {0xe48aba, 0x8232ec33}, - {0xe48abb, 0x8232ec34}, - {0xe48abc, 0x8232ec35}, - {0xe48abd, 0x8232ec36}, - {0xe48abe, 0x8232ec37}, - {0xe48abf, 0x8232ec38}, - {0xe48b80, 0x8232ec39}, - {0xe48b81, 0x8232ed30}, - {0xe48b82, 0x8232ed31}, - {0xe48b83, 0x8232ed32}, - {0xe48b84, 0x8232ed33}, - {0xe48b85, 0x8232ed34}, - {0xe48b86, 0x8232ed35}, - {0xe48b87, 0x8232ed36}, - {0xe48b88, 0x8232ed37}, - {0xe48b89, 0x8232ed38}, - {0xe48b8a, 0x8232ed39}, - {0xe48b8b, 0x8232ee30}, - {0xe48b8c, 0x8232ee31}, - {0xe48b8d, 0x8232ee32}, - {0xe48b8e, 0x8232ee33}, - {0xe48b8f, 0x8232ee34}, - {0xe48b90, 0x8232ee35}, - {0xe48b91, 0x8232ee36}, - {0xe48b92, 0x8232ee37}, - {0xe48b93, 0x8232ee38}, - {0xe48b94, 0x8232ee39}, - {0xe48b95, 0x8232ef30}, - {0xe48b96, 0x8232ef31}, - {0xe48b97, 0x8232ef32}, - {0xe48b98, 0x8232ef33}, - {0xe48b99, 0x8232ef34}, - {0xe48b9a, 0x8232ef35}, - {0xe48b9b, 0x8232ef36}, - {0xe48b9c, 0x8232ef37}, - {0xe48b9d, 0x8232ef38}, - {0xe48b9e, 0x8232ef39}, - {0xe48b9f, 0x8232f030}, - {0xe48ba0, 0x8232f031}, - {0xe48ba1, 0x8232f032}, - {0xe48ba2, 0x8232f033}, - {0xe48ba3, 0x8232f034}, - {0xe48ba4, 0x8232f035}, - {0xe48ba5, 0x8232f036}, - {0xe48ba6, 0x8232f037}, - {0xe48ba7, 0x8232f038}, - {0xe48ba8, 0x8232f039}, - {0xe48ba9, 0x8232f130}, - {0xe48baa, 0x8232f131}, - {0xe48bab, 0x8232f132}, - {0xe48bac, 0x8232f133}, - {0xe48bad, 0x8232f134}, - {0xe48bae, 0x8232f135}, - {0xe48baf, 0x8232f136}, - {0xe48bb0, 0x8232f137}, - {0xe48bb1, 0x8232f138}, - {0xe48bb2, 0x8232f139}, - {0xe48bb3, 0x8232f230}, - {0xe48bb4, 0x8232f231}, - {0xe48bb5, 0x8232f232}, - {0xe48bb6, 0x8232f233}, - {0xe48bb7, 0x8232f234}, - {0xe48bb8, 0x8232f235}, - {0xe48bb9, 0x8232f236}, - {0xe48bba, 0x8232f237}, - {0xe48bbb, 0x8232f238}, - {0xe48bbc, 0x8232f239}, - {0xe48bbd, 0x8232f330}, - {0xe48bbe, 0x8232f331}, - {0xe48bbf, 0x8232f332}, - {0xe48c80, 0x8232f333}, - {0xe48c81, 0x8232f334}, - {0xe48c82, 0x8232f335}, - {0xe48c83, 0x8232f336}, - {0xe48c84, 0x8232f337}, - {0xe48c85, 0x8232f338}, - {0xe48c86, 0x8232f339}, - {0xe48c87, 0x8232f430}, - {0xe48c88, 0x8232f431}, - {0xe48c89, 0x8232f432}, - {0xe48c8a, 0x8232f433}, - {0xe48c8b, 0x8232f434}, - {0xe48c8c, 0x8232f435}, - {0xe48c8d, 0x8232f436}, - {0xe48c8e, 0x8232f437}, - {0xe48c8f, 0x8232f438}, - {0xe48c90, 0x8232f439}, - {0xe48c91, 0x8232f530}, - {0xe48c92, 0x8232f531}, - {0xe48c93, 0x8232f532}, - {0xe48c94, 0x8232f533}, - {0xe48c95, 0x8232f534}, - {0xe48c96, 0x8232f535}, - {0xe48c97, 0x8232f536}, - {0xe48c98, 0x8232f537}, - {0xe48c99, 0x8232f538}, - {0xe48c9a, 0x8232f539}, - {0xe48c9b, 0x8232f630}, - {0xe48c9c, 0x8232f631}, - {0xe48c9d, 0x8232f632}, - {0xe48c9e, 0x8232f633}, - {0xe48c9f, 0x8232f634}, - {0xe48ca0, 0x8232f635}, - {0xe48ca1, 0x8232f636}, - {0xe48ca2, 0x8232f637}, - {0xe48ca3, 0x8232f638}, - {0xe48ca4, 0x8232f639}, - {0xe48ca5, 0x8232f730}, - {0xe48ca6, 0x8232f731}, - {0xe48ca7, 0x8232f732}, - {0xe48ca8, 0x8232f733}, - {0xe48ca9, 0x8232f734}, - {0xe48caa, 0x8232f735}, - {0xe48cab, 0x8232f736}, - {0xe48cac, 0x8232f737}, - {0xe48cad, 0x8232f738}, - {0xe48cae, 0x8232f739}, - {0xe48caf, 0x8232f830}, - {0xe48cb0, 0x8232f831}, - {0xe48cb1, 0x8232f832}, - {0xe48cb2, 0x8232f833}, - {0xe48cb3, 0x8232f834}, - {0xe48cb4, 0x8232f835}, - {0xe48cb5, 0x8232f836}, - {0xe48cb6, 0x8232f837}, {0xe48cb7, 0xfe72}, {0xe48cb8, 0x8232f838}, {0xe48cb9, 0x8232f839}, @@ -17494,379 +6161,6 @@ static pg_utf_to_local ULmapGB18030[ 63360 ] = { {0xe49394, 0x8233a337}, {0xe49395, 0x8233a338}, {0xe49396, 0xfe7b}, - {0xe49397, 0x8233a339}, - {0xe49398, 0x8233a430}, - {0xe49399, 0x8233a431}, - {0xe4939a, 0x8233a432}, - {0xe4939b, 0x8233a433}, - {0xe4939c, 0x8233a434}, - {0xe4939d, 0x8233a435}, - {0xe4939e, 0x8233a436}, - {0xe4939f, 0x8233a437}, - {0xe493a0, 0x8233a438}, - {0xe493a1, 0x8233a439}, - {0xe493a2, 0x8233a530}, - {0xe493a3, 0x8233a531}, - {0xe493a4, 0x8233a532}, - {0xe493a5, 0x8233a533}, - {0xe493a6, 0x8233a534}, - {0xe493a7, 0x8233a535}, - {0xe493a8, 0x8233a536}, - {0xe493a9, 0x8233a537}, - {0xe493aa, 0x8233a538}, - {0xe493ab, 0x8233a539}, - {0xe493ac, 0x8233a630}, - {0xe493ad, 0x8233a631}, - {0xe493ae, 0x8233a632}, - {0xe493af, 0x8233a633}, - {0xe493b0, 0x8233a634}, - {0xe493b1, 0x8233a635}, - {0xe493b2, 0x8233a636}, - {0xe493b3, 0x8233a637}, - {0xe493b4, 0x8233a638}, - {0xe493b5, 0x8233a639}, - {0xe493b6, 0x8233a730}, - {0xe493b7, 0x8233a731}, - {0xe493b8, 0x8233a732}, - {0xe493b9, 0x8233a733}, - {0xe493ba, 0x8233a734}, - {0xe493bb, 0x8233a735}, - {0xe493bc, 0x8233a736}, - {0xe493bd, 0x8233a737}, - {0xe493be, 0x8233a738}, - {0xe493bf, 0x8233a739}, - {0xe49480, 0x8233a830}, - {0xe49481, 0x8233a831}, - {0xe49482, 0x8233a832}, - {0xe49483, 0x8233a833}, - {0xe49484, 0x8233a834}, - {0xe49485, 0x8233a835}, - {0xe49486, 0x8233a836}, - {0xe49487, 0x8233a837}, - {0xe49488, 0x8233a838}, - {0xe49489, 0x8233a839}, - {0xe4948a, 0x8233a930}, - {0xe4948b, 0x8233a931}, - {0xe4948c, 0x8233a932}, - {0xe4948d, 0x8233a933}, - {0xe4948e, 0x8233a934}, - {0xe4948f, 0x8233a935}, - {0xe49490, 0x8233a936}, - {0xe49491, 0x8233a937}, - {0xe49492, 0x8233a938}, - {0xe49493, 0x8233a939}, - {0xe49494, 0x8233aa30}, - {0xe49495, 0x8233aa31}, - {0xe49496, 0x8233aa32}, - {0xe49497, 0x8233aa33}, - {0xe49498, 0x8233aa34}, - {0xe49499, 0x8233aa35}, - {0xe4949a, 0x8233aa36}, - {0xe4949b, 0x8233aa37}, - {0xe4949c, 0x8233aa38}, - {0xe4949d, 0x8233aa39}, - {0xe4949e, 0x8233ab30}, - {0xe4949f, 0x8233ab31}, - {0xe494a0, 0x8233ab32}, - {0xe494a1, 0x8233ab33}, - {0xe494a2, 0x8233ab34}, - {0xe494a3, 0x8233ab35}, - {0xe494a4, 0x8233ab36}, - {0xe494a5, 0x8233ab37}, - {0xe494a6, 0x8233ab38}, - {0xe494a7, 0x8233ab39}, - {0xe494a8, 0x8233ac30}, - {0xe494a9, 0x8233ac31}, - {0xe494aa, 0x8233ac32}, - {0xe494ab, 0x8233ac33}, - {0xe494ac, 0x8233ac34}, - {0xe494ad, 0x8233ac35}, - {0xe494ae, 0x8233ac36}, - {0xe494af, 0x8233ac37}, - {0xe494b0, 0x8233ac38}, - {0xe494b1, 0x8233ac39}, - {0xe494b2, 0x8233ad30}, - {0xe494b3, 0x8233ad31}, - {0xe494b4, 0x8233ad32}, - {0xe494b5, 0x8233ad33}, - {0xe494b6, 0x8233ad34}, - {0xe494b7, 0x8233ad35}, - {0xe494b8, 0x8233ad36}, - {0xe494b9, 0x8233ad37}, - {0xe494ba, 0x8233ad38}, - {0xe494bb, 0x8233ad39}, - {0xe494bc, 0x8233ae30}, - {0xe494bd, 0x8233ae31}, - {0xe494be, 0x8233ae32}, - {0xe494bf, 0x8233ae33}, - {0xe49580, 0x8233ae34}, - {0xe49581, 0x8233ae35}, - {0xe49582, 0x8233ae36}, - {0xe49583, 0x8233ae37}, - {0xe49584, 0x8233ae38}, - {0xe49585, 0x8233ae39}, - {0xe49586, 0x8233af30}, - {0xe49587, 0x8233af31}, - {0xe49588, 0x8233af32}, - {0xe49589, 0x8233af33}, - {0xe4958a, 0x8233af34}, - {0xe4958b, 0x8233af35}, - {0xe4958c, 0x8233af36}, - {0xe4958d, 0x8233af37}, - {0xe4958e, 0x8233af38}, - {0xe4958f, 0x8233af39}, - {0xe49590, 0x8233b030}, - {0xe49591, 0x8233b031}, - {0xe49592, 0x8233b032}, - {0xe49593, 0x8233b033}, - {0xe49594, 0x8233b034}, - {0xe49595, 0x8233b035}, - {0xe49596, 0x8233b036}, - {0xe49597, 0x8233b037}, - {0xe49598, 0x8233b038}, - {0xe49599, 0x8233b039}, - {0xe4959a, 0x8233b130}, - {0xe4959b, 0x8233b131}, - {0xe4959c, 0x8233b132}, - {0xe4959d, 0x8233b133}, - {0xe4959e, 0x8233b134}, - {0xe4959f, 0x8233b135}, - {0xe495a0, 0x8233b136}, - {0xe495a1, 0x8233b137}, - {0xe495a2, 0x8233b138}, - {0xe495a3, 0x8233b139}, - {0xe495a4, 0x8233b230}, - {0xe495a5, 0x8233b231}, - {0xe495a6, 0x8233b232}, - {0xe495a7, 0x8233b233}, - {0xe495a8, 0x8233b234}, - {0xe495a9, 0x8233b235}, - {0xe495aa, 0x8233b236}, - {0xe495ab, 0x8233b237}, - {0xe495ac, 0x8233b238}, - {0xe495ad, 0x8233b239}, - {0xe495ae, 0x8233b330}, - {0xe495af, 0x8233b331}, - {0xe495b0, 0x8233b332}, - {0xe495b1, 0x8233b333}, - {0xe495b2, 0x8233b334}, - {0xe495b3, 0x8233b335}, - {0xe495b4, 0x8233b336}, - {0xe495b5, 0x8233b337}, - {0xe495b6, 0x8233b338}, - {0xe495b7, 0x8233b339}, - {0xe495b8, 0x8233b430}, - {0xe495b9, 0x8233b431}, - {0xe495ba, 0x8233b432}, - {0xe495bb, 0x8233b433}, - {0xe495bc, 0x8233b434}, - {0xe495bd, 0x8233b435}, - {0xe495be, 0x8233b436}, - {0xe495bf, 0x8233b437}, - {0xe49680, 0x8233b438}, - {0xe49681, 0x8233b439}, - {0xe49682, 0x8233b530}, - {0xe49683, 0x8233b531}, - {0xe49684, 0x8233b532}, - {0xe49685, 0x8233b533}, - {0xe49686, 0x8233b534}, - {0xe49687, 0x8233b535}, - {0xe49688, 0x8233b536}, - {0xe49689, 0x8233b537}, - {0xe4968a, 0x8233b538}, - {0xe4968b, 0x8233b539}, - {0xe4968c, 0x8233b630}, - {0xe4968d, 0x8233b631}, - {0xe4968e, 0x8233b632}, - {0xe4968f, 0x8233b633}, - {0xe49690, 0x8233b634}, - {0xe49691, 0x8233b635}, - {0xe49692, 0x8233b636}, - {0xe49693, 0x8233b637}, - {0xe49694, 0x8233b638}, - {0xe49695, 0x8233b639}, - {0xe49696, 0x8233b730}, - {0xe49697, 0x8233b731}, - {0xe49698, 0x8233b732}, - {0xe49699, 0x8233b733}, - {0xe4969a, 0x8233b734}, - {0xe4969b, 0x8233b735}, - {0xe4969c, 0x8233b736}, - {0xe4969d, 0x8233b737}, - {0xe4969e, 0x8233b738}, - {0xe4969f, 0x8233b739}, - {0xe496a0, 0x8233b830}, - {0xe496a1, 0x8233b831}, - {0xe496a2, 0x8233b832}, - {0xe496a3, 0x8233b833}, - {0xe496a4, 0x8233b834}, - {0xe496a5, 0x8233b835}, - {0xe496a6, 0x8233b836}, - {0xe496a7, 0x8233b837}, - {0xe496a8, 0x8233b838}, - {0xe496a9, 0x8233b839}, - {0xe496aa, 0x8233b930}, - {0xe496ab, 0x8233b931}, - {0xe496ac, 0x8233b932}, - {0xe496ad, 0x8233b933}, - {0xe496ae, 0x8233b934}, - {0xe496af, 0x8233b935}, - {0xe496b0, 0x8233b936}, - {0xe496b1, 0x8233b937}, - {0xe496b2, 0x8233b938}, - {0xe496b3, 0x8233b939}, - {0xe496b4, 0x8233ba30}, - {0xe496b5, 0x8233ba31}, - {0xe496b6, 0x8233ba32}, - {0xe496b7, 0x8233ba33}, - {0xe496b8, 0x8233ba34}, - {0xe496b9, 0x8233ba35}, - {0xe496ba, 0x8233ba36}, - {0xe496bb, 0x8233ba37}, - {0xe496bc, 0x8233ba38}, - {0xe496bd, 0x8233ba39}, - {0xe496be, 0x8233bb30}, - {0xe496bf, 0x8233bb31}, - {0xe49780, 0x8233bb32}, - {0xe49781, 0x8233bb33}, - {0xe49782, 0x8233bb34}, - {0xe49783, 0x8233bb35}, - {0xe49784, 0x8233bb36}, - {0xe49785, 0x8233bb37}, - {0xe49786, 0x8233bb38}, - {0xe49787, 0x8233bb39}, - {0xe49788, 0x8233bc30}, - {0xe49789, 0x8233bc31}, - {0xe4978a, 0x8233bc32}, - {0xe4978b, 0x8233bc33}, - {0xe4978c, 0x8233bc34}, - {0xe4978d, 0x8233bc35}, - {0xe4978e, 0x8233bc36}, - {0xe4978f, 0x8233bc37}, - {0xe49790, 0x8233bc38}, - {0xe49791, 0x8233bc39}, - {0xe49792, 0x8233bd30}, - {0xe49793, 0x8233bd31}, - {0xe49794, 0x8233bd32}, - {0xe49795, 0x8233bd33}, - {0xe49796, 0x8233bd34}, - {0xe49797, 0x8233bd35}, - {0xe49798, 0x8233bd36}, - {0xe49799, 0x8233bd37}, - {0xe4979a, 0x8233bd38}, - {0xe4979b, 0x8233bd39}, - {0xe4979c, 0x8233be30}, - {0xe4979d, 0x8233be31}, - {0xe4979e, 0x8233be32}, - {0xe4979f, 0x8233be33}, - {0xe497a0, 0x8233be34}, - {0xe497a1, 0x8233be35}, - {0xe497a2, 0x8233be36}, - {0xe497a3, 0x8233be37}, - {0xe497a4, 0x8233be38}, - {0xe497a5, 0x8233be39}, - {0xe497a6, 0x8233bf30}, - {0xe497a7, 0x8233bf31}, - {0xe497a8, 0x8233bf32}, - {0xe497a9, 0x8233bf33}, - {0xe497aa, 0x8233bf34}, - {0xe497ab, 0x8233bf35}, - {0xe497ac, 0x8233bf36}, - {0xe497ad, 0x8233bf37}, - {0xe497ae, 0x8233bf38}, - {0xe497af, 0x8233bf39}, - {0xe497b0, 0x8233c030}, - {0xe497b1, 0x8233c031}, - {0xe497b2, 0x8233c032}, - {0xe497b3, 0x8233c033}, - {0xe497b4, 0x8233c034}, - {0xe497b5, 0x8233c035}, - {0xe497b6, 0x8233c036}, - {0xe497b7, 0x8233c037}, - {0xe497b8, 0x8233c038}, - {0xe497b9, 0x8233c039}, - {0xe497ba, 0x8233c130}, - {0xe497bb, 0x8233c131}, - {0xe497bc, 0x8233c132}, - {0xe497bd, 0x8233c133}, - {0xe497be, 0x8233c134}, - {0xe497bf, 0x8233c135}, - {0xe49880, 0x8233c136}, - {0xe49881, 0x8233c137}, - {0xe49882, 0x8233c138}, - {0xe49883, 0x8233c139}, - {0xe49884, 0x8233c230}, - {0xe49885, 0x8233c231}, - {0xe49886, 0x8233c232}, - {0xe49887, 0x8233c233}, - {0xe49888, 0x8233c234}, - {0xe49889, 0x8233c235}, - {0xe4988a, 0x8233c236}, - {0xe4988b, 0x8233c237}, - {0xe4988c, 0x8233c238}, - {0xe4988d, 0x8233c239}, - {0xe4988e, 0x8233c330}, - {0xe4988f, 0x8233c331}, - {0xe49890, 0x8233c332}, - {0xe49891, 0x8233c333}, - {0xe49892, 0x8233c334}, - {0xe49893, 0x8233c335}, - {0xe49894, 0x8233c336}, - {0xe49895, 0x8233c337}, - {0xe49896, 0x8233c338}, - {0xe49897, 0x8233c339}, - {0xe49898, 0x8233c430}, - {0xe49899, 0x8233c431}, - {0xe4989a, 0x8233c432}, - {0xe4989b, 0x8233c433}, - {0xe4989c, 0x8233c434}, - {0xe4989d, 0x8233c435}, - {0xe4989e, 0x8233c436}, - {0xe4989f, 0x8233c437}, - {0xe498a0, 0x8233c438}, - {0xe498a1, 0x8233c439}, - {0xe498a2, 0x8233c530}, - {0xe498a3, 0x8233c531}, - {0xe498a4, 0x8233c532}, - {0xe498a5, 0x8233c533}, - {0xe498a6, 0x8233c534}, - {0xe498a7, 0x8233c535}, - {0xe498a8, 0x8233c536}, - {0xe498a9, 0x8233c537}, - {0xe498aa, 0x8233c538}, - {0xe498ab, 0x8233c539}, - {0xe498ac, 0x8233c630}, - {0xe498ad, 0x8233c631}, - {0xe498ae, 0x8233c632}, - {0xe498af, 0x8233c633}, - {0xe498b0, 0x8233c634}, - {0xe498b1, 0x8233c635}, - {0xe498b2, 0x8233c636}, - {0xe498b3, 0x8233c637}, - {0xe498b4, 0x8233c638}, - {0xe498b5, 0x8233c639}, - {0xe498b6, 0x8233c730}, - {0xe498b7, 0x8233c731}, - {0xe498b8, 0x8233c732}, - {0xe498b9, 0x8233c733}, - {0xe498ba, 0x8233c734}, - {0xe498bb, 0x8233c735}, - {0xe498bc, 0x8233c736}, - {0xe498bd, 0x8233c737}, - {0xe498be, 0x8233c738}, - {0xe498bf, 0x8233c739}, - {0xe49980, 0x8233c830}, - {0xe49981, 0x8233c831}, - {0xe49982, 0x8233c832}, - {0xe49983, 0x8233c833}, - {0xe49984, 0x8233c834}, - {0xe49985, 0x8233c835}, - {0xe49986, 0x8233c836}, - {0xe49987, 0x8233c837}, - {0xe49988, 0x8233c838}, - {0xe49989, 0x8233c839}, - {0xe4998a, 0x8233c930}, - {0xe4998b, 0x8233c931}, {0xe4998c, 0xfe7d}, {0xe4998d, 0x8233c932}, {0xe4998e, 0x8233c933}, @@ -18189,447 +6483,6 @@ static pg_utf_to_local ULmapGB18030[ 63360 ] = { {0xe49e8b, 0x8233e836}, {0xe49e8c, 0x8233e837}, {0xe49e8d, 0xfe83}, - {0xe49e8e, 0x8233e838}, - {0xe49e8f, 0x8233e839}, - {0xe49e90, 0x8233e930}, - {0xe49e91, 0x8233e931}, - {0xe49e92, 0x8233e932}, - {0xe49e93, 0x8233e933}, - {0xe49e94, 0x8233e934}, - {0xe49e95, 0x8233e935}, - {0xe49e96, 0x8233e936}, - {0xe49e97, 0x8233e937}, - {0xe49e98, 0x8233e938}, - {0xe49e99, 0x8233e939}, - {0xe49e9a, 0x8233ea30}, - {0xe49e9b, 0x8233ea31}, - {0xe49e9c, 0x8233ea32}, - {0xe49e9d, 0x8233ea33}, - {0xe49e9e, 0x8233ea34}, - {0xe49e9f, 0x8233ea35}, - {0xe49ea0, 0x8233ea36}, - {0xe49ea1, 0x8233ea37}, - {0xe49ea2, 0x8233ea38}, - {0xe49ea3, 0x8233ea39}, - {0xe49ea4, 0x8233eb30}, - {0xe49ea5, 0x8233eb31}, - {0xe49ea6, 0x8233eb32}, - {0xe49ea7, 0x8233eb33}, - {0xe49ea8, 0x8233eb34}, - {0xe49ea9, 0x8233eb35}, - {0xe49eaa, 0x8233eb36}, - {0xe49eab, 0x8233eb37}, - {0xe49eac, 0x8233eb38}, - {0xe49ead, 0x8233eb39}, - {0xe49eae, 0x8233ec30}, - {0xe49eaf, 0x8233ec31}, - {0xe49eb0, 0x8233ec32}, - {0xe49eb1, 0x8233ec33}, - {0xe49eb2, 0x8233ec34}, - {0xe49eb3, 0x8233ec35}, - {0xe49eb4, 0x8233ec36}, - {0xe49eb5, 0x8233ec37}, - {0xe49eb6, 0x8233ec38}, - {0xe49eb7, 0x8233ec39}, - {0xe49eb8, 0x8233ed30}, - {0xe49eb9, 0x8233ed31}, - {0xe49eba, 0x8233ed32}, - {0xe49ebb, 0x8233ed33}, - {0xe49ebc, 0x8233ed34}, - {0xe49ebd, 0x8233ed35}, - {0xe49ebe, 0x8233ed36}, - {0xe49ebf, 0x8233ed37}, - {0xe49f80, 0x8233ed38}, - {0xe49f81, 0x8233ed39}, - {0xe49f82, 0x8233ee30}, - {0xe49f83, 0x8233ee31}, - {0xe49f84, 0x8233ee32}, - {0xe49f85, 0x8233ee33}, - {0xe49f86, 0x8233ee34}, - {0xe49f87, 0x8233ee35}, - {0xe49f88, 0x8233ee36}, - {0xe49f89, 0x8233ee37}, - {0xe49f8a, 0x8233ee38}, - {0xe49f8b, 0x8233ee39}, - {0xe49f8c, 0x8233ef30}, - {0xe49f8d, 0x8233ef31}, - {0xe49f8e, 0x8233ef32}, - {0xe49f8f, 0x8233ef33}, - {0xe49f90, 0x8233ef34}, - {0xe49f91, 0x8233ef35}, - {0xe49f92, 0x8233ef36}, - {0xe49f93, 0x8233ef37}, - {0xe49f94, 0x8233ef38}, - {0xe49f95, 0x8233ef39}, - {0xe49f96, 0x8233f030}, - {0xe49f97, 0x8233f031}, - {0xe49f98, 0x8233f032}, - {0xe49f99, 0x8233f033}, - {0xe49f9a, 0x8233f034}, - {0xe49f9b, 0x8233f035}, - {0xe49f9c, 0x8233f036}, - {0xe49f9d, 0x8233f037}, - {0xe49f9e, 0x8233f038}, - {0xe49f9f, 0x8233f039}, - {0xe49fa0, 0x8233f130}, - {0xe49fa1, 0x8233f131}, - {0xe49fa2, 0x8233f132}, - {0xe49fa3, 0x8233f133}, - {0xe49fa4, 0x8233f134}, - {0xe49fa5, 0x8233f135}, - {0xe49fa6, 0x8233f136}, - {0xe49fa7, 0x8233f137}, - {0xe49fa8, 0x8233f138}, - {0xe49fa9, 0x8233f139}, - {0xe49faa, 0x8233f230}, - {0xe49fab, 0x8233f231}, - {0xe49fac, 0x8233f232}, - {0xe49fad, 0x8233f233}, - {0xe49fae, 0x8233f234}, - {0xe49faf, 0x8233f235}, - {0xe49fb0, 0x8233f236}, - {0xe49fb1, 0x8233f237}, - {0xe49fb2, 0x8233f238}, - {0xe49fb3, 0x8233f239}, - {0xe49fb4, 0x8233f330}, - {0xe49fb5, 0x8233f331}, - {0xe49fb6, 0x8233f332}, - {0xe49fb7, 0x8233f333}, - {0xe49fb8, 0x8233f334}, - {0xe49fb9, 0x8233f335}, - {0xe49fba, 0x8233f336}, - {0xe49fbb, 0x8233f337}, - {0xe49fbc, 0x8233f338}, - {0xe49fbd, 0x8233f339}, - {0xe49fbe, 0x8233f430}, - {0xe49fbf, 0x8233f431}, - {0xe4a080, 0x8233f432}, - {0xe4a081, 0x8233f433}, - {0xe4a082, 0x8233f434}, - {0xe4a083, 0x8233f435}, - {0xe4a084, 0x8233f436}, - {0xe4a085, 0x8233f437}, - {0xe4a086, 0x8233f438}, - {0xe4a087, 0x8233f439}, - {0xe4a088, 0x8233f530}, - {0xe4a089, 0x8233f531}, - {0xe4a08a, 0x8233f532}, - {0xe4a08b, 0x8233f533}, - {0xe4a08c, 0x8233f534}, - {0xe4a08d, 0x8233f535}, - {0xe4a08e, 0x8233f536}, - {0xe4a08f, 0x8233f537}, - {0xe4a090, 0x8233f538}, - {0xe4a091, 0x8233f539}, - {0xe4a092, 0x8233f630}, - {0xe4a093, 0x8233f631}, - {0xe4a094, 0x8233f632}, - {0xe4a095, 0x8233f633}, - {0xe4a096, 0x8233f634}, - {0xe4a097, 0x8233f635}, - {0xe4a098, 0x8233f636}, - {0xe4a099, 0x8233f637}, - {0xe4a09a, 0x8233f638}, - {0xe4a09b, 0x8233f639}, - {0xe4a09c, 0x8233f730}, - {0xe4a09d, 0x8233f731}, - {0xe4a09e, 0x8233f732}, - {0xe4a09f, 0x8233f733}, - {0xe4a0a0, 0x8233f734}, - {0xe4a0a1, 0x8233f735}, - {0xe4a0a2, 0x8233f736}, - {0xe4a0a3, 0x8233f737}, - {0xe4a0a4, 0x8233f738}, - {0xe4a0a5, 0x8233f739}, - {0xe4a0a6, 0x8233f830}, - {0xe4a0a7, 0x8233f831}, - {0xe4a0a8, 0x8233f832}, - {0xe4a0a9, 0x8233f833}, - {0xe4a0aa, 0x8233f834}, - {0xe4a0ab, 0x8233f835}, - {0xe4a0ac, 0x8233f836}, - {0xe4a0ad, 0x8233f837}, - {0xe4a0ae, 0x8233f838}, - {0xe4a0af, 0x8233f839}, - {0xe4a0b0, 0x8233f930}, - {0xe4a0b1, 0x8233f931}, - {0xe4a0b2, 0x8233f932}, - {0xe4a0b3, 0x8233f933}, - {0xe4a0b4, 0x8233f934}, - {0xe4a0b5, 0x8233f935}, - {0xe4a0b6, 0x8233f936}, - {0xe4a0b7, 0x8233f937}, - {0xe4a0b8, 0x8233f938}, - {0xe4a0b9, 0x8233f939}, - {0xe4a0ba, 0x8233fa30}, - {0xe4a0bb, 0x8233fa31}, - {0xe4a0bc, 0x8233fa32}, - {0xe4a0bd, 0x8233fa33}, - {0xe4a0be, 0x8233fa34}, - {0xe4a0bf, 0x8233fa35}, - {0xe4a180, 0x8233fa36}, - {0xe4a181, 0x8233fa37}, - {0xe4a182, 0x8233fa38}, - {0xe4a183, 0x8233fa39}, - {0xe4a184, 0x8233fb30}, - {0xe4a185, 0x8233fb31}, - {0xe4a186, 0x8233fb32}, - {0xe4a187, 0x8233fb33}, - {0xe4a188, 0x8233fb34}, - {0xe4a189, 0x8233fb35}, - {0xe4a18a, 0x8233fb36}, - {0xe4a18b, 0x8233fb37}, - {0xe4a18c, 0x8233fb38}, - {0xe4a18d, 0x8233fb39}, - {0xe4a18e, 0x8233fc30}, - {0xe4a18f, 0x8233fc31}, - {0xe4a190, 0x8233fc32}, - {0xe4a191, 0x8233fc33}, - {0xe4a192, 0x8233fc34}, - {0xe4a193, 0x8233fc35}, - {0xe4a194, 0x8233fc36}, - {0xe4a195, 0x8233fc37}, - {0xe4a196, 0x8233fc38}, - {0xe4a197, 0x8233fc39}, - {0xe4a198, 0x8233fd30}, - {0xe4a199, 0x8233fd31}, - {0xe4a19a, 0x8233fd32}, - {0xe4a19b, 0x8233fd33}, - {0xe4a19c, 0x8233fd34}, - {0xe4a19d, 0x8233fd35}, - {0xe4a19e, 0x8233fd36}, - {0xe4a19f, 0x8233fd37}, - {0xe4a1a0, 0x8233fd38}, - {0xe4a1a1, 0x8233fd39}, - {0xe4a1a2, 0x8233fe30}, - {0xe4a1a3, 0x8233fe31}, - {0xe4a1a4, 0x8233fe32}, - {0xe4a1a5, 0x8233fe33}, - {0xe4a1a6, 0x8233fe34}, - {0xe4a1a7, 0x8233fe35}, - {0xe4a1a8, 0x8233fe36}, - {0xe4a1a9, 0x8233fe37}, - {0xe4a1aa, 0x8233fe38}, - {0xe4a1ab, 0x8233fe39}, - {0xe4a1ac, 0x82348130}, - {0xe4a1ad, 0x82348131}, - {0xe4a1ae, 0x82348132}, - {0xe4a1af, 0x82348133}, - {0xe4a1b0, 0x82348134}, - {0xe4a1b1, 0x82348135}, - {0xe4a1b2, 0x82348136}, - {0xe4a1b3, 0x82348137}, - {0xe4a1b4, 0x82348138}, - {0xe4a1b5, 0x82348139}, - {0xe4a1b6, 0x82348230}, - {0xe4a1b7, 0x82348231}, - {0xe4a1b8, 0x82348232}, - {0xe4a1b9, 0x82348233}, - {0xe4a1ba, 0x82348234}, - {0xe4a1bb, 0x82348235}, - {0xe4a1bc, 0x82348236}, - {0xe4a1bd, 0x82348237}, - {0xe4a1be, 0x82348238}, - {0xe4a1bf, 0x82348239}, - {0xe4a280, 0x82348330}, - {0xe4a281, 0x82348331}, - {0xe4a282, 0x82348332}, - {0xe4a283, 0x82348333}, - {0xe4a284, 0x82348334}, - {0xe4a285, 0x82348335}, - {0xe4a286, 0x82348336}, - {0xe4a287, 0x82348337}, - {0xe4a288, 0x82348338}, - {0xe4a289, 0x82348339}, - {0xe4a28a, 0x82348430}, - {0xe4a28b, 0x82348431}, - {0xe4a28c, 0x82348432}, - {0xe4a28d, 0x82348433}, - {0xe4a28e, 0x82348434}, - {0xe4a28f, 0x82348435}, - {0xe4a290, 0x82348436}, - {0xe4a291, 0x82348437}, - {0xe4a292, 0x82348438}, - {0xe4a293, 0x82348439}, - {0xe4a294, 0x82348530}, - {0xe4a295, 0x82348531}, - {0xe4a296, 0x82348532}, - {0xe4a297, 0x82348533}, - {0xe4a298, 0x82348534}, - {0xe4a299, 0x82348535}, - {0xe4a29a, 0x82348536}, - {0xe4a29b, 0x82348537}, - {0xe4a29c, 0x82348538}, - {0xe4a29d, 0x82348539}, - {0xe4a29e, 0x82348630}, - {0xe4a29f, 0x82348631}, - {0xe4a2a0, 0x82348632}, - {0xe4a2a1, 0x82348633}, - {0xe4a2a2, 0x82348634}, - {0xe4a2a3, 0x82348635}, - {0xe4a2a4, 0x82348636}, - {0xe4a2a5, 0x82348637}, - {0xe4a2a6, 0x82348638}, - {0xe4a2a7, 0x82348639}, - {0xe4a2a8, 0x82348730}, - {0xe4a2a9, 0x82348731}, - {0xe4a2aa, 0x82348732}, - {0xe4a2ab, 0x82348733}, - {0xe4a2ac, 0x82348734}, - {0xe4a2ad, 0x82348735}, - {0xe4a2ae, 0x82348736}, - {0xe4a2af, 0x82348737}, - {0xe4a2b0, 0x82348738}, - {0xe4a2b1, 0x82348739}, - {0xe4a2b2, 0x82348830}, - {0xe4a2b3, 0x82348831}, - {0xe4a2b4, 0x82348832}, - {0xe4a2b5, 0x82348833}, - {0xe4a2b6, 0x82348834}, - {0xe4a2b7, 0x82348835}, - {0xe4a2b8, 0x82348836}, - {0xe4a2b9, 0x82348837}, - {0xe4a2ba, 0x82348838}, - {0xe4a2bb, 0x82348839}, - {0xe4a2bc, 0x82348930}, - {0xe4a2bd, 0x82348931}, - {0xe4a2be, 0x82348932}, - {0xe4a2bf, 0x82348933}, - {0xe4a380, 0x82348934}, - {0xe4a381, 0x82348935}, - {0xe4a382, 0x82348936}, - {0xe4a383, 0x82348937}, - {0xe4a384, 0x82348938}, - {0xe4a385, 0x82348939}, - {0xe4a386, 0x82348a30}, - {0xe4a387, 0x82348a31}, - {0xe4a388, 0x82348a32}, - {0xe4a389, 0x82348a33}, - {0xe4a38a, 0x82348a34}, - {0xe4a38b, 0x82348a35}, - {0xe4a38c, 0x82348a36}, - {0xe4a38d, 0x82348a37}, - {0xe4a38e, 0x82348a38}, - {0xe4a38f, 0x82348a39}, - {0xe4a390, 0x82348b30}, - {0xe4a391, 0x82348b31}, - {0xe4a392, 0x82348b32}, - {0xe4a393, 0x82348b33}, - {0xe4a394, 0x82348b34}, - {0xe4a395, 0x82348b35}, - {0xe4a396, 0x82348b36}, - {0xe4a397, 0x82348b37}, - {0xe4a398, 0x82348b38}, - {0xe4a399, 0x82348b39}, - {0xe4a39a, 0x82348c30}, - {0xe4a39b, 0x82348c31}, - {0xe4a39c, 0x82348c32}, - {0xe4a39d, 0x82348c33}, - {0xe4a39e, 0x82348c34}, - {0xe4a39f, 0x82348c35}, - {0xe4a3a0, 0x82348c36}, - {0xe4a3a1, 0x82348c37}, - {0xe4a3a2, 0x82348c38}, - {0xe4a3a3, 0x82348c39}, - {0xe4a3a4, 0x82348d30}, - {0xe4a3a5, 0x82348d31}, - {0xe4a3a6, 0x82348d32}, - {0xe4a3a7, 0x82348d33}, - {0xe4a3a8, 0x82348d34}, - {0xe4a3a9, 0x82348d35}, - {0xe4a3aa, 0x82348d36}, - {0xe4a3ab, 0x82348d37}, - {0xe4a3ac, 0x82348d38}, - {0xe4a3ad, 0x82348d39}, - {0xe4a3ae, 0x82348e30}, - {0xe4a3af, 0x82348e31}, - {0xe4a3b0, 0x82348e32}, - {0xe4a3b1, 0x82348e33}, - {0xe4a3b2, 0x82348e34}, - {0xe4a3b3, 0x82348e35}, - {0xe4a3b4, 0x82348e36}, - {0xe4a3b5, 0x82348e37}, - {0xe4a3b6, 0x82348e38}, - {0xe4a3b7, 0x82348e39}, - {0xe4a3b8, 0x82348f30}, - {0xe4a3b9, 0x82348f31}, - {0xe4a3ba, 0x82348f32}, - {0xe4a3bb, 0x82348f33}, - {0xe4a3bc, 0x82348f34}, - {0xe4a3bd, 0x82348f35}, - {0xe4a3be, 0x82348f36}, - {0xe4a3bf, 0x82348f37}, - {0xe4a480, 0x82348f38}, - {0xe4a481, 0x82348f39}, - {0xe4a482, 0x82349030}, - {0xe4a483, 0x82349031}, - {0xe4a484, 0x82349032}, - {0xe4a485, 0x82349033}, - {0xe4a486, 0x82349034}, - {0xe4a487, 0x82349035}, - {0xe4a488, 0x82349036}, - {0xe4a489, 0x82349037}, - {0xe4a48a, 0x82349038}, - {0xe4a48b, 0x82349039}, - {0xe4a48c, 0x82349130}, - {0xe4a48d, 0x82349131}, - {0xe4a48e, 0x82349132}, - {0xe4a48f, 0x82349133}, - {0xe4a490, 0x82349134}, - {0xe4a491, 0x82349135}, - {0xe4a492, 0x82349136}, - {0xe4a493, 0x82349137}, - {0xe4a494, 0x82349138}, - {0xe4a495, 0x82349139}, - {0xe4a496, 0x82349230}, - {0xe4a497, 0x82349231}, - {0xe4a498, 0x82349232}, - {0xe4a499, 0x82349233}, - {0xe4a49a, 0x82349234}, - {0xe4a49b, 0x82349235}, - {0xe4a49c, 0x82349236}, - {0xe4a49d, 0x82349237}, - {0xe4a49e, 0x82349238}, - {0xe4a49f, 0x82349239}, - {0xe4a4a0, 0x82349330}, - {0xe4a4a1, 0x82349331}, - {0xe4a4a2, 0x82349332}, - {0xe4a4a3, 0x82349333}, - {0xe4a4a4, 0x82349334}, - {0xe4a4a5, 0x82349335}, - {0xe4a4a6, 0x82349336}, - {0xe4a4a7, 0x82349337}, - {0xe4a4a8, 0x82349338}, - {0xe4a4a9, 0x82349339}, - {0xe4a4aa, 0x82349430}, - {0xe4a4ab, 0x82349431}, - {0xe4a4ac, 0x82349432}, - {0xe4a4ad, 0x82349433}, - {0xe4a4ae, 0x82349434}, - {0xe4a4af, 0x82349435}, - {0xe4a4b0, 0x82349436}, - {0xe4a4b1, 0x82349437}, - {0xe4a4b2, 0x82349438}, - {0xe4a4b3, 0x82349439}, - {0xe4a4b4, 0x82349530}, - {0xe4a4b5, 0x82349531}, - {0xe4a4b6, 0x82349532}, - {0xe4a4b7, 0x82349533}, - {0xe4a4b8, 0x82349534}, - {0xe4a4b9, 0x82349535}, - {0xe4a4ba, 0x82349536}, - {0xe4a4bb, 0x82349537}, - {0xe4a4bc, 0x82349538}, - {0xe4a4bd, 0x82349539}, - {0xe4a4be, 0x82349630}, - {0xe4a4bf, 0x82349631}, - {0xe4a580, 0x82349632}, - {0xe4a581, 0x82349633}, - {0xe4a582, 0x82349634}, - {0xe4a583, 0x82349635}, - {0xe4a584, 0x82349636}, - {0xe4a585, 0x82349637}, - {0xe4a586, 0x82349638}, {0xe4a587, 0xfe85}, {0xe4a588, 0x82349639}, {0xe4a589, 0x82349730}, @@ -18743,709 +6596,6 @@ static pg_utf_to_local ULmapGB18030[ 63360 ] = { {0xe4a6b5, 0x8234a130}, {0xe4a6b6, 0xfe8f}, {0xe4a6b7, 0xfe8e}, - {0xe4a6b8, 0x8234a131}, - {0xe4a6b9, 0x8234a132}, - {0xe4a6ba, 0x8234a133}, - {0xe4a6bb, 0x8234a134}, - {0xe4a6bc, 0x8234a135}, - {0xe4a6bd, 0x8234a136}, - {0xe4a6be, 0x8234a137}, - {0xe4a6bf, 0x8234a138}, - {0xe4a780, 0x8234a139}, - {0xe4a781, 0x8234a230}, - {0xe4a782, 0x8234a231}, - {0xe4a783, 0x8234a232}, - {0xe4a784, 0x8234a233}, - {0xe4a785, 0x8234a234}, - {0xe4a786, 0x8234a235}, - {0xe4a787, 0x8234a236}, - {0xe4a788, 0x8234a237}, - {0xe4a789, 0x8234a238}, - {0xe4a78a, 0x8234a239}, - {0xe4a78b, 0x8234a330}, - {0xe4a78c, 0x8234a331}, - {0xe4a78d, 0x8234a332}, - {0xe4a78e, 0x8234a333}, - {0xe4a78f, 0x8234a334}, - {0xe4a790, 0x8234a335}, - {0xe4a791, 0x8234a336}, - {0xe4a792, 0x8234a337}, - {0xe4a793, 0x8234a338}, - {0xe4a794, 0x8234a339}, - {0xe4a795, 0x8234a430}, - {0xe4a796, 0x8234a431}, - {0xe4a797, 0x8234a432}, - {0xe4a798, 0x8234a433}, - {0xe4a799, 0x8234a434}, - {0xe4a79a, 0x8234a435}, - {0xe4a79b, 0x8234a436}, - {0xe4a79c, 0x8234a437}, - {0xe4a79d, 0x8234a438}, - {0xe4a79e, 0x8234a439}, - {0xe4a79f, 0x8234a530}, - {0xe4a7a0, 0x8234a531}, - {0xe4a7a1, 0x8234a532}, - {0xe4a7a2, 0x8234a533}, - {0xe4a7a3, 0x8234a534}, - {0xe4a7a4, 0x8234a535}, - {0xe4a7a5, 0x8234a536}, - {0xe4a7a6, 0x8234a537}, - {0xe4a7a7, 0x8234a538}, - {0xe4a7a8, 0x8234a539}, - {0xe4a7a9, 0x8234a630}, - {0xe4a7aa, 0x8234a631}, - {0xe4a7ab, 0x8234a632}, - {0xe4a7ac, 0x8234a633}, - {0xe4a7ad, 0x8234a634}, - {0xe4a7ae, 0x8234a635}, - {0xe4a7af, 0x8234a636}, - {0xe4a7b0, 0x8234a637}, - {0xe4a7b1, 0x8234a638}, - {0xe4a7b2, 0x8234a639}, - {0xe4a7b3, 0x8234a730}, - {0xe4a7b4, 0x8234a731}, - {0xe4a7b5, 0x8234a732}, - {0xe4a7b6, 0x8234a733}, - {0xe4a7b7, 0x8234a734}, - {0xe4a7b8, 0x8234a735}, - {0xe4a7b9, 0x8234a736}, - {0xe4a7ba, 0x8234a737}, - {0xe4a7bb, 0x8234a738}, - {0xe4a7bc, 0x8234a739}, - {0xe4a7bd, 0x8234a830}, - {0xe4a7be, 0x8234a831}, - {0xe4a7bf, 0x8234a832}, - {0xe4a880, 0x8234a833}, - {0xe4a881, 0x8234a834}, - {0xe4a882, 0x8234a835}, - {0xe4a883, 0x8234a836}, - {0xe4a884, 0x8234a837}, - {0xe4a885, 0x8234a838}, - {0xe4a886, 0x8234a839}, - {0xe4a887, 0x8234a930}, - {0xe4a888, 0x8234a931}, - {0xe4a889, 0x8234a932}, - {0xe4a88a, 0x8234a933}, - {0xe4a88b, 0x8234a934}, - {0xe4a88c, 0x8234a935}, - {0xe4a88d, 0x8234a936}, - {0xe4a88e, 0x8234a937}, - {0xe4a88f, 0x8234a938}, - {0xe4a890, 0x8234a939}, - {0xe4a891, 0x8234aa30}, - {0xe4a892, 0x8234aa31}, - {0xe4a893, 0x8234aa32}, - {0xe4a894, 0x8234aa33}, - {0xe4a895, 0x8234aa34}, - {0xe4a896, 0x8234aa35}, - {0xe4a897, 0x8234aa36}, - {0xe4a898, 0x8234aa37}, - {0xe4a899, 0x8234aa38}, - {0xe4a89a, 0x8234aa39}, - {0xe4a89b, 0x8234ab30}, - {0xe4a89c, 0x8234ab31}, - {0xe4a89d, 0x8234ab32}, - {0xe4a89e, 0x8234ab33}, - {0xe4a89f, 0x8234ab34}, - {0xe4a8a0, 0x8234ab35}, - {0xe4a8a1, 0x8234ab36}, - {0xe4a8a2, 0x8234ab37}, - {0xe4a8a3, 0x8234ab38}, - {0xe4a8a4, 0x8234ab39}, - {0xe4a8a5, 0x8234ac30}, - {0xe4a8a6, 0x8234ac31}, - {0xe4a8a7, 0x8234ac32}, - {0xe4a8a8, 0x8234ac33}, - {0xe4a8a9, 0x8234ac34}, - {0xe4a8aa, 0x8234ac35}, - {0xe4a8ab, 0x8234ac36}, - {0xe4a8ac, 0x8234ac37}, - {0xe4a8ad, 0x8234ac38}, - {0xe4a8ae, 0x8234ac39}, - {0xe4a8af, 0x8234ad30}, - {0xe4a8b0, 0x8234ad31}, - {0xe4a8b1, 0x8234ad32}, - {0xe4a8b2, 0x8234ad33}, - {0xe4a8b3, 0x8234ad34}, - {0xe4a8b4, 0x8234ad35}, - {0xe4a8b5, 0x8234ad36}, - {0xe4a8b6, 0x8234ad37}, - {0xe4a8b7, 0x8234ad38}, - {0xe4a8b8, 0x8234ad39}, - {0xe4a8b9, 0x8234ae30}, - {0xe4a8ba, 0x8234ae31}, - {0xe4a8bb, 0x8234ae32}, - {0xe4a8bc, 0x8234ae33}, - {0xe4a8bd, 0x8234ae34}, - {0xe4a8be, 0x8234ae35}, - {0xe4a8bf, 0x8234ae36}, - {0xe4a980, 0x8234ae37}, - {0xe4a981, 0x8234ae38}, - {0xe4a982, 0x8234ae39}, - {0xe4a983, 0x8234af30}, - {0xe4a984, 0x8234af31}, - {0xe4a985, 0x8234af32}, - {0xe4a986, 0x8234af33}, - {0xe4a987, 0x8234af34}, - {0xe4a988, 0x8234af35}, - {0xe4a989, 0x8234af36}, - {0xe4a98a, 0x8234af37}, - {0xe4a98b, 0x8234af38}, - {0xe4a98c, 0x8234af39}, - {0xe4a98d, 0x8234b030}, - {0xe4a98e, 0x8234b031}, - {0xe4a98f, 0x8234b032}, - {0xe4a990, 0x8234b033}, - {0xe4a991, 0x8234b034}, - {0xe4a992, 0x8234b035}, - {0xe4a993, 0x8234b036}, - {0xe4a994, 0x8234b037}, - {0xe4a995, 0x8234b038}, - {0xe4a996, 0x8234b039}, - {0xe4a997, 0x8234b130}, - {0xe4a998, 0x8234b131}, - {0xe4a999, 0x8234b132}, - {0xe4a99a, 0x8234b133}, - {0xe4a99b, 0x8234b134}, - {0xe4a99c, 0x8234b135}, - {0xe4a99d, 0x8234b136}, - {0xe4a99e, 0x8234b137}, - {0xe4a99f, 0x8234b138}, - {0xe4a9a0, 0x8234b139}, - {0xe4a9a1, 0x8234b230}, - {0xe4a9a2, 0x8234b231}, - {0xe4a9a3, 0x8234b232}, - {0xe4a9a4, 0x8234b233}, - {0xe4a9a5, 0x8234b234}, - {0xe4a9a6, 0x8234b235}, - {0xe4a9a7, 0x8234b236}, - {0xe4a9a8, 0x8234b237}, - {0xe4a9a9, 0x8234b238}, - {0xe4a9aa, 0x8234b239}, - {0xe4a9ab, 0x8234b330}, - {0xe4a9ac, 0x8234b331}, - {0xe4a9ad, 0x8234b332}, - {0xe4a9ae, 0x8234b333}, - {0xe4a9af, 0x8234b334}, - {0xe4a9b0, 0x8234b335}, - {0xe4a9b1, 0x8234b336}, - {0xe4a9b2, 0x8234b337}, - {0xe4a9b3, 0x8234b338}, - {0xe4a9b4, 0x8234b339}, - {0xe4a9b5, 0x8234b430}, - {0xe4a9b6, 0x8234b431}, - {0xe4a9b7, 0x8234b432}, - {0xe4a9b8, 0x8234b433}, - {0xe4a9b9, 0x8234b434}, - {0xe4a9ba, 0x8234b435}, - {0xe4a9bb, 0x8234b436}, - {0xe4a9bc, 0x8234b437}, - {0xe4a9bd, 0x8234b438}, - {0xe4a9be, 0x8234b439}, - {0xe4a9bf, 0x8234b530}, - {0xe4aa80, 0x8234b531}, - {0xe4aa81, 0x8234b532}, - {0xe4aa82, 0x8234b533}, - {0xe4aa83, 0x8234b534}, - {0xe4aa84, 0x8234b535}, - {0xe4aa85, 0x8234b536}, - {0xe4aa86, 0x8234b537}, - {0xe4aa87, 0x8234b538}, - {0xe4aa88, 0x8234b539}, - {0xe4aa89, 0x8234b630}, - {0xe4aa8a, 0x8234b631}, - {0xe4aa8b, 0x8234b632}, - {0xe4aa8c, 0x8234b633}, - {0xe4aa8d, 0x8234b634}, - {0xe4aa8e, 0x8234b635}, - {0xe4aa8f, 0x8234b636}, - {0xe4aa90, 0x8234b637}, - {0xe4aa91, 0x8234b638}, - {0xe4aa92, 0x8234b639}, - {0xe4aa93, 0x8234b730}, - {0xe4aa94, 0x8234b731}, - {0xe4aa95, 0x8234b732}, - {0xe4aa96, 0x8234b733}, - {0xe4aa97, 0x8234b734}, - {0xe4aa98, 0x8234b735}, - {0xe4aa99, 0x8234b736}, - {0xe4aa9a, 0x8234b737}, - {0xe4aa9b, 0x8234b738}, - {0xe4aa9c, 0x8234b739}, - {0xe4aa9d, 0x8234b830}, - {0xe4aa9e, 0x8234b831}, - {0xe4aa9f, 0x8234b832}, - {0xe4aaa0, 0x8234b833}, - {0xe4aaa1, 0x8234b834}, - {0xe4aaa2, 0x8234b835}, - {0xe4aaa3, 0x8234b836}, - {0xe4aaa4, 0x8234b837}, - {0xe4aaa5, 0x8234b838}, - {0xe4aaa6, 0x8234b839}, - {0xe4aaa7, 0x8234b930}, - {0xe4aaa8, 0x8234b931}, - {0xe4aaa9, 0x8234b932}, - {0xe4aaaa, 0x8234b933}, - {0xe4aaab, 0x8234b934}, - {0xe4aaac, 0x8234b935}, - {0xe4aaad, 0x8234b936}, - {0xe4aaae, 0x8234b937}, - {0xe4aaaf, 0x8234b938}, - {0xe4aab0, 0x8234b939}, - {0xe4aab1, 0x8234ba30}, - {0xe4aab2, 0x8234ba31}, - {0xe4aab3, 0x8234ba32}, - {0xe4aab4, 0x8234ba33}, - {0xe4aab5, 0x8234ba34}, - {0xe4aab6, 0x8234ba35}, - {0xe4aab7, 0x8234ba36}, - {0xe4aab8, 0x8234ba37}, - {0xe4aab9, 0x8234ba38}, - {0xe4aaba, 0x8234ba39}, - {0xe4aabb, 0x8234bb30}, - {0xe4aabc, 0x8234bb31}, - {0xe4aabd, 0x8234bb32}, - {0xe4aabe, 0x8234bb33}, - {0xe4aabf, 0x8234bb34}, - {0xe4ab80, 0x8234bb35}, - {0xe4ab81, 0x8234bb36}, - {0xe4ab82, 0x8234bb37}, - {0xe4ab83, 0x8234bb38}, - {0xe4ab84, 0x8234bb39}, - {0xe4ab85, 0x8234bc30}, - {0xe4ab86, 0x8234bc31}, - {0xe4ab87, 0x8234bc32}, - {0xe4ab88, 0x8234bc33}, - {0xe4ab89, 0x8234bc34}, - {0xe4ab8a, 0x8234bc35}, - {0xe4ab8b, 0x8234bc36}, - {0xe4ab8c, 0x8234bc37}, - {0xe4ab8d, 0x8234bc38}, - {0xe4ab8e, 0x8234bc39}, - {0xe4ab8f, 0x8234bd30}, - {0xe4ab90, 0x8234bd31}, - {0xe4ab91, 0x8234bd32}, - {0xe4ab92, 0x8234bd33}, - {0xe4ab93, 0x8234bd34}, - {0xe4ab94, 0x8234bd35}, - {0xe4ab95, 0x8234bd36}, - {0xe4ab96, 0x8234bd37}, - {0xe4ab97, 0x8234bd38}, - {0xe4ab98, 0x8234bd39}, - {0xe4ab99, 0x8234be30}, - {0xe4ab9a, 0x8234be31}, - {0xe4ab9b, 0x8234be32}, - {0xe4ab9c, 0x8234be33}, - {0xe4ab9d, 0x8234be34}, - {0xe4ab9e, 0x8234be35}, - {0xe4ab9f, 0x8234be36}, - {0xe4aba0, 0x8234be37}, - {0xe4aba1, 0x8234be38}, - {0xe4aba2, 0x8234be39}, - {0xe4aba3, 0x8234bf30}, - {0xe4aba4, 0x8234bf31}, - {0xe4aba5, 0x8234bf32}, - {0xe4aba6, 0x8234bf33}, - {0xe4aba7, 0x8234bf34}, - {0xe4aba8, 0x8234bf35}, - {0xe4aba9, 0x8234bf36}, - {0xe4abaa, 0x8234bf37}, - {0xe4abab, 0x8234bf38}, - {0xe4abac, 0x8234bf39}, - {0xe4abad, 0x8234c030}, - {0xe4abae, 0x8234c031}, - {0xe4abaf, 0x8234c032}, - {0xe4abb0, 0x8234c033}, - {0xe4abb1, 0x8234c034}, - {0xe4abb2, 0x8234c035}, - {0xe4abb3, 0x8234c036}, - {0xe4abb4, 0x8234c037}, - {0xe4abb5, 0x8234c038}, - {0xe4abb6, 0x8234c039}, - {0xe4abb7, 0x8234c130}, - {0xe4abb8, 0x8234c131}, - {0xe4abb9, 0x8234c132}, - {0xe4abba, 0x8234c133}, - {0xe4abbb, 0x8234c134}, - {0xe4abbc, 0x8234c135}, - {0xe4abbd, 0x8234c136}, - {0xe4abbe, 0x8234c137}, - {0xe4abbf, 0x8234c138}, - {0xe4ac80, 0x8234c139}, - {0xe4ac81, 0x8234c230}, - {0xe4ac82, 0x8234c231}, - {0xe4ac83, 0x8234c232}, - {0xe4ac84, 0x8234c233}, - {0xe4ac85, 0x8234c234}, - {0xe4ac86, 0x8234c235}, - {0xe4ac87, 0x8234c236}, - {0xe4ac88, 0x8234c237}, - {0xe4ac89, 0x8234c238}, - {0xe4ac8a, 0x8234c239}, - {0xe4ac8b, 0x8234c330}, - {0xe4ac8c, 0x8234c331}, - {0xe4ac8d, 0x8234c332}, - {0xe4ac8e, 0x8234c333}, - {0xe4ac8f, 0x8234c334}, - {0xe4ac90, 0x8234c335}, - {0xe4ac91, 0x8234c336}, - {0xe4ac92, 0x8234c337}, - {0xe4ac93, 0x8234c338}, - {0xe4ac94, 0x8234c339}, - {0xe4ac95, 0x8234c430}, - {0xe4ac96, 0x8234c431}, - {0xe4ac97, 0x8234c432}, - {0xe4ac98, 0x8234c433}, - {0xe4ac99, 0x8234c434}, - {0xe4ac9a, 0x8234c435}, - {0xe4ac9b, 0x8234c436}, - {0xe4ac9c, 0x8234c437}, - {0xe4ac9d, 0x8234c438}, - {0xe4ac9e, 0x8234c439}, - {0xe4ac9f, 0x8234c530}, - {0xe4aca0, 0x8234c531}, - {0xe4aca1, 0x8234c532}, - {0xe4aca2, 0x8234c533}, - {0xe4aca3, 0x8234c534}, - {0xe4aca4, 0x8234c535}, - {0xe4aca5, 0x8234c536}, - {0xe4aca6, 0x8234c537}, - {0xe4aca7, 0x8234c538}, - {0xe4aca8, 0x8234c539}, - {0xe4aca9, 0x8234c630}, - {0xe4acaa, 0x8234c631}, - {0xe4acab, 0x8234c632}, - {0xe4acac, 0x8234c633}, - {0xe4acad, 0x8234c634}, - {0xe4acae, 0x8234c635}, - {0xe4acaf, 0x8234c636}, - {0xe4acb0, 0x8234c637}, - {0xe4acb1, 0x8234c638}, - {0xe4acb2, 0x8234c639}, - {0xe4acb3, 0x8234c730}, - {0xe4acb4, 0x8234c731}, - {0xe4acb5, 0x8234c732}, - {0xe4acb6, 0x8234c733}, - {0xe4acb7, 0x8234c734}, - {0xe4acb8, 0x8234c735}, - {0xe4acb9, 0x8234c736}, - {0xe4acba, 0x8234c737}, - {0xe4acbb, 0x8234c738}, - {0xe4acbc, 0x8234c739}, - {0xe4acbd, 0x8234c830}, - {0xe4acbe, 0x8234c831}, - {0xe4acbf, 0x8234c832}, - {0xe4ad80, 0x8234c833}, - {0xe4ad81, 0x8234c834}, - {0xe4ad82, 0x8234c835}, - {0xe4ad83, 0x8234c836}, - {0xe4ad84, 0x8234c837}, - {0xe4ad85, 0x8234c838}, - {0xe4ad86, 0x8234c839}, - {0xe4ad87, 0x8234c930}, - {0xe4ad88, 0x8234c931}, - {0xe4ad89, 0x8234c932}, - {0xe4ad8a, 0x8234c933}, - {0xe4ad8b, 0x8234c934}, - {0xe4ad8c, 0x8234c935}, - {0xe4ad8d, 0x8234c936}, - {0xe4ad8e, 0x8234c937}, - {0xe4ad8f, 0x8234c938}, - {0xe4ad90, 0x8234c939}, - {0xe4ad91, 0x8234ca30}, - {0xe4ad92, 0x8234ca31}, - {0xe4ad93, 0x8234ca32}, - {0xe4ad94, 0x8234ca33}, - {0xe4ad95, 0x8234ca34}, - {0xe4ad96, 0x8234ca35}, - {0xe4ad97, 0x8234ca36}, - {0xe4ad98, 0x8234ca37}, - {0xe4ad99, 0x8234ca38}, - {0xe4ad9a, 0x8234ca39}, - {0xe4ad9b, 0x8234cb30}, - {0xe4ad9c, 0x8234cb31}, - {0xe4ad9d, 0x8234cb32}, - {0xe4ad9e, 0x8234cb33}, - {0xe4ad9f, 0x8234cb34}, - {0xe4ada0, 0x8234cb35}, - {0xe4ada1, 0x8234cb36}, - {0xe4ada2, 0x8234cb37}, - {0xe4ada3, 0x8234cb38}, - {0xe4ada4, 0x8234cb39}, - {0xe4ada5, 0x8234cc30}, - {0xe4ada6, 0x8234cc31}, - {0xe4ada7, 0x8234cc32}, - {0xe4ada8, 0x8234cc33}, - {0xe4ada9, 0x8234cc34}, - {0xe4adaa, 0x8234cc35}, - {0xe4adab, 0x8234cc36}, - {0xe4adac, 0x8234cc37}, - {0xe4adad, 0x8234cc38}, - {0xe4adae, 0x8234cc39}, - {0xe4adaf, 0x8234cd30}, - {0xe4adb0, 0x8234cd31}, - {0xe4adb1, 0x8234cd32}, - {0xe4adb2, 0x8234cd33}, - {0xe4adb3, 0x8234cd34}, - {0xe4adb4, 0x8234cd35}, - {0xe4adb5, 0x8234cd36}, - {0xe4adb6, 0x8234cd37}, - {0xe4adb7, 0x8234cd38}, - {0xe4adb8, 0x8234cd39}, - {0xe4adb9, 0x8234ce30}, - {0xe4adba, 0x8234ce31}, - {0xe4adbb, 0x8234ce32}, - {0xe4adbc, 0x8234ce33}, - {0xe4adbd, 0x8234ce34}, - {0xe4adbe, 0x8234ce35}, - {0xe4adbf, 0x8234ce36}, - {0xe4ae80, 0x8234ce37}, - {0xe4ae81, 0x8234ce38}, - {0xe4ae82, 0x8234ce39}, - {0xe4ae83, 0x8234cf30}, - {0xe4ae84, 0x8234cf31}, - {0xe4ae85, 0x8234cf32}, - {0xe4ae86, 0x8234cf33}, - {0xe4ae87, 0x8234cf34}, - {0xe4ae88, 0x8234cf35}, - {0xe4ae89, 0x8234cf36}, - {0xe4ae8a, 0x8234cf37}, - {0xe4ae8b, 0x8234cf38}, - {0xe4ae8c, 0x8234cf39}, - {0xe4ae8d, 0x8234d030}, - {0xe4ae8e, 0x8234d031}, - {0xe4ae8f, 0x8234d032}, - {0xe4ae90, 0x8234d033}, - {0xe4ae91, 0x8234d034}, - {0xe4ae92, 0x8234d035}, - {0xe4ae93, 0x8234d036}, - {0xe4ae94, 0x8234d037}, - {0xe4ae95, 0x8234d038}, - {0xe4ae96, 0x8234d039}, - {0xe4ae97, 0x8234d130}, - {0xe4ae98, 0x8234d131}, - {0xe4ae99, 0x8234d132}, - {0xe4ae9a, 0x8234d133}, - {0xe4ae9b, 0x8234d134}, - {0xe4ae9c, 0x8234d135}, - {0xe4ae9d, 0x8234d136}, - {0xe4ae9e, 0x8234d137}, - {0xe4ae9f, 0x8234d138}, - {0xe4aea0, 0x8234d139}, - {0xe4aea1, 0x8234d230}, - {0xe4aea2, 0x8234d231}, - {0xe4aea3, 0x8234d232}, - {0xe4aea4, 0x8234d233}, - {0xe4aea5, 0x8234d234}, - {0xe4aea6, 0x8234d235}, - {0xe4aea7, 0x8234d236}, - {0xe4aea8, 0x8234d237}, - {0xe4aea9, 0x8234d238}, - {0xe4aeaa, 0x8234d239}, - {0xe4aeab, 0x8234d330}, - {0xe4aeac, 0x8234d331}, - {0xe4aead, 0x8234d332}, - {0xe4aeae, 0x8234d333}, - {0xe4aeaf, 0x8234d334}, - {0xe4aeb0, 0x8234d335}, - {0xe4aeb1, 0x8234d336}, - {0xe4aeb2, 0x8234d337}, - {0xe4aeb3, 0x8234d338}, - {0xe4aeb4, 0x8234d339}, - {0xe4aeb5, 0x8234d430}, - {0xe4aeb6, 0x8234d431}, - {0xe4aeb7, 0x8234d432}, - {0xe4aeb8, 0x8234d433}, - {0xe4aeb9, 0x8234d434}, - {0xe4aeba, 0x8234d435}, - {0xe4aebb, 0x8234d436}, - {0xe4aebc, 0x8234d437}, - {0xe4aebd, 0x8234d438}, - {0xe4aebe, 0x8234d439}, - {0xe4aebf, 0x8234d530}, - {0xe4af80, 0x8234d531}, - {0xe4af81, 0x8234d532}, - {0xe4af82, 0x8234d533}, - {0xe4af83, 0x8234d534}, - {0xe4af84, 0x8234d535}, - {0xe4af85, 0x8234d536}, - {0xe4af86, 0x8234d537}, - {0xe4af87, 0x8234d538}, - {0xe4af88, 0x8234d539}, - {0xe4af89, 0x8234d630}, - {0xe4af8a, 0x8234d631}, - {0xe4af8b, 0x8234d632}, - {0xe4af8c, 0x8234d633}, - {0xe4af8d, 0x8234d634}, - {0xe4af8e, 0x8234d635}, - {0xe4af8f, 0x8234d636}, - {0xe4af90, 0x8234d637}, - {0xe4af91, 0x8234d638}, - {0xe4af92, 0x8234d639}, - {0xe4af93, 0x8234d730}, - {0xe4af94, 0x8234d731}, - {0xe4af95, 0x8234d732}, - {0xe4af96, 0x8234d733}, - {0xe4af97, 0x8234d734}, - {0xe4af98, 0x8234d735}, - {0xe4af99, 0x8234d736}, - {0xe4af9a, 0x8234d737}, - {0xe4af9b, 0x8234d738}, - {0xe4af9c, 0x8234d739}, - {0xe4af9d, 0x8234d830}, - {0xe4af9e, 0x8234d831}, - {0xe4af9f, 0x8234d832}, - {0xe4afa0, 0x8234d833}, - {0xe4afa1, 0x8234d834}, - {0xe4afa2, 0x8234d835}, - {0xe4afa3, 0x8234d836}, - {0xe4afa4, 0x8234d837}, - {0xe4afa5, 0x8234d838}, - {0xe4afa6, 0x8234d839}, - {0xe4afa7, 0x8234d930}, - {0xe4afa8, 0x8234d931}, - {0xe4afa9, 0x8234d932}, - {0xe4afaa, 0x8234d933}, - {0xe4afab, 0x8234d934}, - {0xe4afac, 0x8234d935}, - {0xe4afad, 0x8234d936}, - {0xe4afae, 0x8234d937}, - {0xe4afaf, 0x8234d938}, - {0xe4afb0, 0x8234d939}, - {0xe4afb1, 0x8234da30}, - {0xe4afb2, 0x8234da31}, - {0xe4afb3, 0x8234da32}, - {0xe4afb4, 0x8234da33}, - {0xe4afb5, 0x8234da34}, - {0xe4afb6, 0x8234da35}, - {0xe4afb7, 0x8234da36}, - {0xe4afb8, 0x8234da37}, - {0xe4afb9, 0x8234da38}, - {0xe4afba, 0x8234da39}, - {0xe4afbb, 0x8234db30}, - {0xe4afbc, 0x8234db31}, - {0xe4afbd, 0x8234db32}, - {0xe4afbe, 0x8234db33}, - {0xe4afbf, 0x8234db34}, - {0xe4b080, 0x8234db35}, - {0xe4b081, 0x8234db36}, - {0xe4b082, 0x8234db37}, - {0xe4b083, 0x8234db38}, - {0xe4b084, 0x8234db39}, - {0xe4b085, 0x8234dc30}, - {0xe4b086, 0x8234dc31}, - {0xe4b087, 0x8234dc32}, - {0xe4b088, 0x8234dc33}, - {0xe4b089, 0x8234dc34}, - {0xe4b08a, 0x8234dc35}, - {0xe4b08b, 0x8234dc36}, - {0xe4b08c, 0x8234dc37}, - {0xe4b08d, 0x8234dc38}, - {0xe4b08e, 0x8234dc39}, - {0xe4b08f, 0x8234dd30}, - {0xe4b090, 0x8234dd31}, - {0xe4b091, 0x8234dd32}, - {0xe4b092, 0x8234dd33}, - {0xe4b093, 0x8234dd34}, - {0xe4b094, 0x8234dd35}, - {0xe4b095, 0x8234dd36}, - {0xe4b096, 0x8234dd37}, - {0xe4b097, 0x8234dd38}, - {0xe4b098, 0x8234dd39}, - {0xe4b099, 0x8234de30}, - {0xe4b09a, 0x8234de31}, - {0xe4b09b, 0x8234de32}, - {0xe4b09c, 0x8234de33}, - {0xe4b09d, 0x8234de34}, - {0xe4b09e, 0x8234de35}, - {0xe4b09f, 0x8234de36}, - {0xe4b0a0, 0x8234de37}, - {0xe4b0a1, 0x8234de38}, - {0xe4b0a2, 0x8234de39}, - {0xe4b0a3, 0x8234df30}, - {0xe4b0a4, 0x8234df31}, - {0xe4b0a5, 0x8234df32}, - {0xe4b0a6, 0x8234df33}, - {0xe4b0a7, 0x8234df34}, - {0xe4b0a8, 0x8234df35}, - {0xe4b0a9, 0x8234df36}, - {0xe4b0aa, 0x8234df37}, - {0xe4b0ab, 0x8234df38}, - {0xe4b0ac, 0x8234df39}, - {0xe4b0ad, 0x8234e030}, - {0xe4b0ae, 0x8234e031}, - {0xe4b0af, 0x8234e032}, - {0xe4b0b0, 0x8234e033}, - {0xe4b0b1, 0x8234e034}, - {0xe4b0b2, 0x8234e035}, - {0xe4b0b3, 0x8234e036}, - {0xe4b0b4, 0x8234e037}, - {0xe4b0b5, 0x8234e038}, - {0xe4b0b6, 0x8234e039}, - {0xe4b0b7, 0x8234e130}, - {0xe4b0b8, 0x8234e131}, - {0xe4b0b9, 0x8234e132}, - {0xe4b0ba, 0x8234e133}, - {0xe4b0bb, 0x8234e134}, - {0xe4b0bc, 0x8234e135}, - {0xe4b0bd, 0x8234e136}, - {0xe4b0be, 0x8234e137}, - {0xe4b0bf, 0x8234e138}, - {0xe4b180, 0x8234e139}, - {0xe4b181, 0x8234e230}, - {0xe4b182, 0x8234e231}, - {0xe4b183, 0x8234e232}, - {0xe4b184, 0x8234e233}, - {0xe4b185, 0x8234e234}, - {0xe4b186, 0x8234e235}, - {0xe4b187, 0x8234e236}, - {0xe4b188, 0x8234e237}, - {0xe4b189, 0x8234e238}, - {0xe4b18a, 0x8234e239}, - {0xe4b18b, 0x8234e330}, - {0xe4b18c, 0x8234e331}, - {0xe4b18d, 0x8234e332}, - {0xe4b18e, 0x8234e333}, - {0xe4b18f, 0x8234e334}, - {0xe4b190, 0x8234e335}, - {0xe4b191, 0x8234e336}, - {0xe4b192, 0x8234e337}, - {0xe4b193, 0x8234e338}, - {0xe4b194, 0x8234e339}, - {0xe4b195, 0x8234e430}, - {0xe4b196, 0x8234e431}, - {0xe4b197, 0x8234e432}, - {0xe4b198, 0x8234e433}, - {0xe4b199, 0x8234e434}, - {0xe4b19a, 0x8234e435}, - {0xe4b19b, 0x8234e436}, - {0xe4b19c, 0x8234e437}, - {0xe4b19d, 0x8234e438}, - {0xe4b19e, 0x8234e439}, - {0xe4b19f, 0x8234e530}, - {0xe4b1a0, 0x8234e531}, - {0xe4b1a1, 0x8234e532}, - {0xe4b1a2, 0x8234e533}, - {0xe4b1a3, 0x8234e534}, - {0xe4b1a4, 0x8234e535}, - {0xe4b1a5, 0x8234e536}, - {0xe4b1a6, 0x8234e537}, - {0xe4b1a7, 0x8234e538}, - {0xe4b1a8, 0x8234e539}, - {0xe4b1a9, 0x8234e630}, - {0xe4b1aa, 0x8234e631}, - {0xe4b1ab, 0x8234e632}, - {0xe4b1ac, 0x8234e633}, - {0xe4b1ad, 0x8234e634}, - {0xe4b1ae, 0x8234e635}, - {0xe4b1af, 0x8234e636}, - {0xe4b1b0, 0x8234e637}, - {0xe4b1b1, 0x8234e638}, - {0xe4b1b2, 0x8234e639}, - {0xe4b1b3, 0x8234e730}, - {0xe4b1b4, 0x8234e731}, - {0xe4b1b5, 0x8234e732}, - {0xe4b1b6, 0x8234e733}, {0xe4b1b7, 0xfe96}, {0xe4b1b8, 0x8234e734}, {0xe4b1b9, 0x8234e735}, @@ -40741,14432 +27891,6 @@ static pg_utf_to_local ULmapGB18030[ 63360 ] = { {0xe9bea3, 0xfd99}, {0xe9bea4, 0xfd9a}, {0xe9bea5, 0xfd9b}, - {0xe9bea6, 0x82358f33}, - {0xe9bea7, 0x82358f34}, - {0xe9bea8, 0x82358f35}, - {0xe9bea9, 0x82358f36}, - {0xe9beaa, 0x82358f37}, - {0xe9beab, 0x82358f38}, - {0xe9beac, 0x82358f39}, - {0xe9bead, 0x82359030}, - {0xe9beae, 0x82359031}, - {0xe9beaf, 0x82359032}, - {0xe9beb0, 0x82359033}, - {0xe9beb1, 0x82359034}, - {0xe9beb2, 0x82359035}, - {0xe9beb3, 0x82359036}, - {0xe9beb4, 0x82359037}, - {0xe9beb5, 0x82359038}, - {0xe9beb6, 0x82359039}, - {0xe9beb7, 0x82359130}, - {0xe9beb8, 0x82359131}, - {0xe9beb9, 0x82359132}, - {0xe9beba, 0x82359133}, - {0xe9bebb, 0x82359134}, - {0xe9bebc, 0x82359135}, - {0xe9bebd, 0x82359136}, - {0xe9bebe, 0x82359137}, - {0xe9bebf, 0x82359138}, - {0xe9bf80, 0x82359139}, - {0xe9bf81, 0x82359230}, - {0xe9bf82, 0x82359231}, - {0xe9bf83, 0x82359232}, - {0xe9bf84, 0x82359233}, - {0xe9bf85, 0x82359234}, - {0xe9bf86, 0x82359235}, - {0xe9bf87, 0x82359236}, - {0xe9bf88, 0x82359237}, - {0xe9bf89, 0x82359238}, - {0xe9bf8a, 0x82359239}, - {0xe9bf8b, 0x82359330}, - {0xe9bf8c, 0x82359331}, - {0xe9bf8d, 0x82359332}, - {0xe9bf8e, 0x82359333}, - {0xe9bf8f, 0x82359334}, - {0xe9bf90, 0x82359335}, - {0xe9bf91, 0x82359336}, - {0xe9bf92, 0x82359337}, - {0xe9bf93, 0x82359338}, - {0xe9bf94, 0x82359339}, - {0xe9bf95, 0x82359430}, - {0xe9bf96, 0x82359431}, - {0xe9bf97, 0x82359432}, - {0xe9bf98, 0x82359433}, - {0xe9bf99, 0x82359434}, - {0xe9bf9a, 0x82359435}, - {0xe9bf9b, 0x82359436}, - {0xe9bf9c, 0x82359437}, - {0xe9bf9d, 0x82359438}, - {0xe9bf9e, 0x82359439}, - {0xe9bf9f, 0x82359530}, - {0xe9bfa0, 0x82359531}, - {0xe9bfa1, 0x82359532}, - {0xe9bfa2, 0x82359533}, - {0xe9bfa3, 0x82359534}, - {0xe9bfa4, 0x82359535}, - {0xe9bfa5, 0x82359536}, - {0xe9bfa6, 0x82359537}, - {0xe9bfa7, 0x82359538}, - {0xe9bfa8, 0x82359539}, - {0xe9bfa9, 0x82359630}, - {0xe9bfaa, 0x82359631}, - {0xe9bfab, 0x82359632}, - {0xe9bfac, 0x82359633}, - {0xe9bfad, 0x82359634}, - {0xe9bfae, 0x82359635}, - {0xe9bfaf, 0x82359636}, - {0xe9bfb0, 0x82359637}, - {0xe9bfb1, 0x82359638}, - {0xe9bfb2, 0x82359639}, - {0xe9bfb3, 0x82359730}, - {0xe9bfb4, 0x82359731}, - {0xe9bfb5, 0x82359732}, - {0xe9bfb6, 0x82359733}, - {0xe9bfb7, 0x82359734}, - {0xe9bfb8, 0x82359735}, - {0xe9bfb9, 0x82359736}, - {0xe9bfba, 0x82359737}, - {0xe9bfbb, 0x82359738}, - {0xe9bfbc, 0x82359739}, - {0xe9bfbd, 0x82359830}, - {0xe9bfbe, 0x82359831}, - {0xe9bfbf, 0x82359832}, - {0xea8080, 0x82359833}, - {0xea8081, 0x82359834}, - {0xea8082, 0x82359835}, - {0xea8083, 0x82359836}, - {0xea8084, 0x82359837}, - {0xea8085, 0x82359838}, - {0xea8086, 0x82359839}, - {0xea8087, 0x82359930}, - {0xea8088, 0x82359931}, - {0xea8089, 0x82359932}, - {0xea808a, 0x82359933}, - {0xea808b, 0x82359934}, - {0xea808c, 0x82359935}, - {0xea808d, 0x82359936}, - {0xea808e, 0x82359937}, - {0xea808f, 0x82359938}, - {0xea8090, 0x82359939}, - {0xea8091, 0x82359a30}, - {0xea8092, 0x82359a31}, - {0xea8093, 0x82359a32}, - {0xea8094, 0x82359a33}, - {0xea8095, 0x82359a34}, - {0xea8096, 0x82359a35}, - {0xea8097, 0x82359a36}, - {0xea8098, 0x82359a37}, - {0xea8099, 0x82359a38}, - {0xea809a, 0x82359a39}, - {0xea809b, 0x82359b30}, - {0xea809c, 0x82359b31}, - {0xea809d, 0x82359b32}, - {0xea809e, 0x82359b33}, - {0xea809f, 0x82359b34}, - {0xea80a0, 0x82359b35}, - {0xea80a1, 0x82359b36}, - {0xea80a2, 0x82359b37}, - {0xea80a3, 0x82359b38}, - {0xea80a4, 0x82359b39}, - {0xea80a5, 0x82359c30}, - {0xea80a6, 0x82359c31}, - {0xea80a7, 0x82359c32}, - {0xea80a8, 0x82359c33}, - {0xea80a9, 0x82359c34}, - {0xea80aa, 0x82359c35}, - {0xea80ab, 0x82359c36}, - {0xea80ac, 0x82359c37}, - {0xea80ad, 0x82359c38}, - {0xea80ae, 0x82359c39}, - {0xea80af, 0x82359d30}, - {0xea80b0, 0x82359d31}, - {0xea80b1, 0x82359d32}, - {0xea80b2, 0x82359d33}, - {0xea80b3, 0x82359d34}, - {0xea80b4, 0x82359d35}, - {0xea80b5, 0x82359d36}, - {0xea80b6, 0x82359d37}, - {0xea80b7, 0x82359d38}, - {0xea80b8, 0x82359d39}, - {0xea80b9, 0x82359e30}, - {0xea80ba, 0x82359e31}, - {0xea80bb, 0x82359e32}, - {0xea80bc, 0x82359e33}, - {0xea80bd, 0x82359e34}, - {0xea80be, 0x82359e35}, - {0xea80bf, 0x82359e36}, - {0xea8180, 0x82359e37}, - {0xea8181, 0x82359e38}, - {0xea8182, 0x82359e39}, - {0xea8183, 0x82359f30}, - {0xea8184, 0x82359f31}, - {0xea8185, 0x82359f32}, - {0xea8186, 0x82359f33}, - {0xea8187, 0x82359f34}, - {0xea8188, 0x82359f35}, - {0xea8189, 0x82359f36}, - {0xea818a, 0x82359f37}, - {0xea818b, 0x82359f38}, - {0xea818c, 0x82359f39}, - {0xea818d, 0x8235a030}, - {0xea818e, 0x8235a031}, - {0xea818f, 0x8235a032}, - {0xea8190, 0x8235a033}, - {0xea8191, 0x8235a034}, - {0xea8192, 0x8235a035}, - {0xea8193, 0x8235a036}, - {0xea8194, 0x8235a037}, - {0xea8195, 0x8235a038}, - {0xea8196, 0x8235a039}, - {0xea8197, 0x8235a130}, - {0xea8198, 0x8235a131}, - {0xea8199, 0x8235a132}, - {0xea819a, 0x8235a133}, - {0xea819b, 0x8235a134}, - {0xea819c, 0x8235a135}, - {0xea819d, 0x8235a136}, - {0xea819e, 0x8235a137}, - {0xea819f, 0x8235a138}, - {0xea81a0, 0x8235a139}, - {0xea81a1, 0x8235a230}, - {0xea81a2, 0x8235a231}, - {0xea81a3, 0x8235a232}, - {0xea81a4, 0x8235a233}, - {0xea81a5, 0x8235a234}, - {0xea81a6, 0x8235a235}, - {0xea81a7, 0x8235a236}, - {0xea81a8, 0x8235a237}, - {0xea81a9, 0x8235a238}, - {0xea81aa, 0x8235a239}, - {0xea81ab, 0x8235a330}, - {0xea81ac, 0x8235a331}, - {0xea81ad, 0x8235a332}, - {0xea81ae, 0x8235a333}, - {0xea81af, 0x8235a334}, - {0xea81b0, 0x8235a335}, - {0xea81b1, 0x8235a336}, - {0xea81b2, 0x8235a337}, - {0xea81b3, 0x8235a338}, - {0xea81b4, 0x8235a339}, - {0xea81b5, 0x8235a430}, - {0xea81b6, 0x8235a431}, - {0xea81b7, 0x8235a432}, - {0xea81b8, 0x8235a433}, - {0xea81b9, 0x8235a434}, - {0xea81ba, 0x8235a435}, - {0xea81bb, 0x8235a436}, - {0xea81bc, 0x8235a437}, - {0xea81bd, 0x8235a438}, - {0xea81be, 0x8235a439}, - {0xea81bf, 0x8235a530}, - {0xea8280, 0x8235a531}, - {0xea8281, 0x8235a532}, - {0xea8282, 0x8235a533}, - {0xea8283, 0x8235a534}, - {0xea8284, 0x8235a535}, - {0xea8285, 0x8235a536}, - {0xea8286, 0x8235a537}, - {0xea8287, 0x8235a538}, - {0xea8288, 0x8235a539}, - {0xea8289, 0x8235a630}, - {0xea828a, 0x8235a631}, - {0xea828b, 0x8235a632}, - {0xea828c, 0x8235a633}, - {0xea828d, 0x8235a634}, - {0xea828e, 0x8235a635}, - {0xea828f, 0x8235a636}, - {0xea8290, 0x8235a637}, - {0xea8291, 0x8235a638}, - {0xea8292, 0x8235a639}, - {0xea8293, 0x8235a730}, - {0xea8294, 0x8235a731}, - {0xea8295, 0x8235a732}, - {0xea8296, 0x8235a733}, - {0xea8297, 0x8235a734}, - {0xea8298, 0x8235a735}, - {0xea8299, 0x8235a736}, - {0xea829a, 0x8235a737}, - {0xea829b, 0x8235a738}, - {0xea829c, 0x8235a739}, - {0xea829d, 0x8235a830}, - {0xea829e, 0x8235a831}, - {0xea829f, 0x8235a832}, - {0xea82a0, 0x8235a833}, - {0xea82a1, 0x8235a834}, - {0xea82a2, 0x8235a835}, - {0xea82a3, 0x8235a836}, - {0xea82a4, 0x8235a837}, - {0xea82a5, 0x8235a838}, - {0xea82a6, 0x8235a839}, - {0xea82a7, 0x8235a930}, - {0xea82a8, 0x8235a931}, - {0xea82a9, 0x8235a932}, - {0xea82aa, 0x8235a933}, - {0xea82ab, 0x8235a934}, - {0xea82ac, 0x8235a935}, - {0xea82ad, 0x8235a936}, - {0xea82ae, 0x8235a937}, - {0xea82af, 0x8235a938}, - {0xea82b0, 0x8235a939}, - {0xea82b1, 0x8235aa30}, - {0xea82b2, 0x8235aa31}, - {0xea82b3, 0x8235aa32}, - {0xea82b4, 0x8235aa33}, - {0xea82b5, 0x8235aa34}, - {0xea82b6, 0x8235aa35}, - {0xea82b7, 0x8235aa36}, - {0xea82b8, 0x8235aa37}, - {0xea82b9, 0x8235aa38}, - {0xea82ba, 0x8235aa39}, - {0xea82bb, 0x8235ab30}, - {0xea82bc, 0x8235ab31}, - {0xea82bd, 0x8235ab32}, - {0xea82be, 0x8235ab33}, - {0xea82bf, 0x8235ab34}, - {0xea8380, 0x8235ab35}, - {0xea8381, 0x8235ab36}, - {0xea8382, 0x8235ab37}, - {0xea8383, 0x8235ab38}, - {0xea8384, 0x8235ab39}, - {0xea8385, 0x8235ac30}, - {0xea8386, 0x8235ac31}, - {0xea8387, 0x8235ac32}, - {0xea8388, 0x8235ac33}, - {0xea8389, 0x8235ac34}, - {0xea838a, 0x8235ac35}, - {0xea838b, 0x8235ac36}, - {0xea838c, 0x8235ac37}, - {0xea838d, 0x8235ac38}, - {0xea838e, 0x8235ac39}, - {0xea838f, 0x8235ad30}, - {0xea8390, 0x8235ad31}, - {0xea8391, 0x8235ad32}, - {0xea8392, 0x8235ad33}, - {0xea8393, 0x8235ad34}, - {0xea8394, 0x8235ad35}, - {0xea8395, 0x8235ad36}, - {0xea8396, 0x8235ad37}, - {0xea8397, 0x8235ad38}, - {0xea8398, 0x8235ad39}, - {0xea8399, 0x8235ae30}, - {0xea839a, 0x8235ae31}, - {0xea839b, 0x8235ae32}, - {0xea839c, 0x8235ae33}, - {0xea839d, 0x8235ae34}, - {0xea839e, 0x8235ae35}, - {0xea839f, 0x8235ae36}, - {0xea83a0, 0x8235ae37}, - {0xea83a1, 0x8235ae38}, - {0xea83a2, 0x8235ae39}, - {0xea83a3, 0x8235af30}, - {0xea83a4, 0x8235af31}, - {0xea83a5, 0x8235af32}, - {0xea83a6, 0x8235af33}, - {0xea83a7, 0x8235af34}, - {0xea83a8, 0x8235af35}, - {0xea83a9, 0x8235af36}, - {0xea83aa, 0x8235af37}, - {0xea83ab, 0x8235af38}, - {0xea83ac, 0x8235af39}, - {0xea83ad, 0x8235b030}, - {0xea83ae, 0x8235b031}, - {0xea83af, 0x8235b032}, - {0xea83b0, 0x8235b033}, - {0xea83b1, 0x8235b034}, - {0xea83b2, 0x8235b035}, - {0xea83b3, 0x8235b036}, - {0xea83b4, 0x8235b037}, - {0xea83b5, 0x8235b038}, - {0xea83b6, 0x8235b039}, - {0xea83b7, 0x8235b130}, - {0xea83b8, 0x8235b131}, - {0xea83b9, 0x8235b132}, - {0xea83ba, 0x8235b133}, - {0xea83bb, 0x8235b134}, - {0xea83bc, 0x8235b135}, - {0xea83bd, 0x8235b136}, - {0xea83be, 0x8235b137}, - {0xea83bf, 0x8235b138}, - {0xea8480, 0x8235b139}, - {0xea8481, 0x8235b230}, - {0xea8482, 0x8235b231}, - {0xea8483, 0x8235b232}, - {0xea8484, 0x8235b233}, - {0xea8485, 0x8235b234}, - {0xea8486, 0x8235b235}, - {0xea8487, 0x8235b236}, - {0xea8488, 0x8235b237}, - {0xea8489, 0x8235b238}, - {0xea848a, 0x8235b239}, - {0xea848b, 0x8235b330}, - {0xea848c, 0x8235b331}, - {0xea848d, 0x8235b332}, - {0xea848e, 0x8235b333}, - {0xea848f, 0x8235b334}, - {0xea8490, 0x8235b335}, - {0xea8491, 0x8235b336}, - {0xea8492, 0x8235b337}, - {0xea8493, 0x8235b338}, - {0xea8494, 0x8235b339}, - {0xea8495, 0x8235b430}, - {0xea8496, 0x8235b431}, - {0xea8497, 0x8235b432}, - {0xea8498, 0x8235b433}, - {0xea8499, 0x8235b434}, - {0xea849a, 0x8235b435}, - {0xea849b, 0x8235b436}, - {0xea849c, 0x8235b437}, - {0xea849d, 0x8235b438}, - {0xea849e, 0x8235b439}, - {0xea849f, 0x8235b530}, - {0xea84a0, 0x8235b531}, - {0xea84a1, 0x8235b532}, - {0xea84a2, 0x8235b533}, - {0xea84a3, 0x8235b534}, - {0xea84a4, 0x8235b535}, - {0xea84a5, 0x8235b536}, - {0xea84a6, 0x8235b537}, - {0xea84a7, 0x8235b538}, - {0xea84a8, 0x8235b539}, - {0xea84a9, 0x8235b630}, - {0xea84aa, 0x8235b631}, - {0xea84ab, 0x8235b632}, - {0xea84ac, 0x8235b633}, - {0xea84ad, 0x8235b634}, - {0xea84ae, 0x8235b635}, - {0xea84af, 0x8235b636}, - {0xea84b0, 0x8235b637}, - {0xea84b1, 0x8235b638}, - {0xea84b2, 0x8235b639}, - {0xea84b3, 0x8235b730}, - {0xea84b4, 0x8235b731}, - {0xea84b5, 0x8235b732}, - {0xea84b6, 0x8235b733}, - {0xea84b7, 0x8235b734}, - {0xea84b8, 0x8235b735}, - {0xea84b9, 0x8235b736}, - {0xea84ba, 0x8235b737}, - {0xea84bb, 0x8235b738}, - {0xea84bc, 0x8235b739}, - {0xea84bd, 0x8235b830}, - {0xea84be, 0x8235b831}, - {0xea84bf, 0x8235b832}, - {0xea8580, 0x8235b833}, - {0xea8581, 0x8235b834}, - {0xea8582, 0x8235b835}, - {0xea8583, 0x8235b836}, - {0xea8584, 0x8235b837}, - {0xea8585, 0x8235b838}, - {0xea8586, 0x8235b839}, - {0xea8587, 0x8235b930}, - {0xea8588, 0x8235b931}, - {0xea8589, 0x8235b932}, - {0xea858a, 0x8235b933}, - {0xea858b, 0x8235b934}, - {0xea858c, 0x8235b935}, - {0xea858d, 0x8235b936}, - {0xea858e, 0x8235b937}, - {0xea858f, 0x8235b938}, - {0xea8590, 0x8235b939}, - {0xea8591, 0x8235ba30}, - {0xea8592, 0x8235ba31}, - {0xea8593, 0x8235ba32}, - {0xea8594, 0x8235ba33}, - {0xea8595, 0x8235ba34}, - {0xea8596, 0x8235ba35}, - {0xea8597, 0x8235ba36}, - {0xea8598, 0x8235ba37}, - {0xea8599, 0x8235ba38}, - {0xea859a, 0x8235ba39}, - {0xea859b, 0x8235bb30}, - {0xea859c, 0x8235bb31}, - {0xea859d, 0x8235bb32}, - {0xea859e, 0x8235bb33}, - {0xea859f, 0x8235bb34}, - {0xea85a0, 0x8235bb35}, - {0xea85a1, 0x8235bb36}, - {0xea85a2, 0x8235bb37}, - {0xea85a3, 0x8235bb38}, - {0xea85a4, 0x8235bb39}, - {0xea85a5, 0x8235bc30}, - {0xea85a6, 0x8235bc31}, - {0xea85a7, 0x8235bc32}, - {0xea85a8, 0x8235bc33}, - {0xea85a9, 0x8235bc34}, - {0xea85aa, 0x8235bc35}, - {0xea85ab, 0x8235bc36}, - {0xea85ac, 0x8235bc37}, - {0xea85ad, 0x8235bc38}, - {0xea85ae, 0x8235bc39}, - {0xea85af, 0x8235bd30}, - {0xea85b0, 0x8235bd31}, - {0xea85b1, 0x8235bd32}, - {0xea85b2, 0x8235bd33}, - {0xea85b3, 0x8235bd34}, - {0xea85b4, 0x8235bd35}, - {0xea85b5, 0x8235bd36}, - {0xea85b6, 0x8235bd37}, - {0xea85b7, 0x8235bd38}, - {0xea85b8, 0x8235bd39}, - {0xea85b9, 0x8235be30}, - {0xea85ba, 0x8235be31}, - {0xea85bb, 0x8235be32}, - {0xea85bc, 0x8235be33}, - {0xea85bd, 0x8235be34}, - {0xea85be, 0x8235be35}, - {0xea85bf, 0x8235be36}, - {0xea8680, 0x8235be37}, - {0xea8681, 0x8235be38}, - {0xea8682, 0x8235be39}, - {0xea8683, 0x8235bf30}, - {0xea8684, 0x8235bf31}, - {0xea8685, 0x8235bf32}, - {0xea8686, 0x8235bf33}, - {0xea8687, 0x8235bf34}, - {0xea8688, 0x8235bf35}, - {0xea8689, 0x8235bf36}, - {0xea868a, 0x8235bf37}, - {0xea868b, 0x8235bf38}, - {0xea868c, 0x8235bf39}, - {0xea868d, 0x8235c030}, - {0xea868e, 0x8235c031}, - {0xea868f, 0x8235c032}, - {0xea8690, 0x8235c033}, - {0xea8691, 0x8235c034}, - {0xea8692, 0x8235c035}, - {0xea8693, 0x8235c036}, - {0xea8694, 0x8235c037}, - {0xea8695, 0x8235c038}, - {0xea8696, 0x8235c039}, - {0xea8697, 0x8235c130}, - {0xea8698, 0x8235c131}, - {0xea8699, 0x8235c132}, - {0xea869a, 0x8235c133}, - {0xea869b, 0x8235c134}, - {0xea869c, 0x8235c135}, - {0xea869d, 0x8235c136}, - {0xea869e, 0x8235c137}, - {0xea869f, 0x8235c138}, - {0xea86a0, 0x8235c139}, - {0xea86a1, 0x8235c230}, - {0xea86a2, 0x8235c231}, - {0xea86a3, 0x8235c232}, - {0xea86a4, 0x8235c233}, - {0xea86a5, 0x8235c234}, - {0xea86a6, 0x8235c235}, - {0xea86a7, 0x8235c236}, - {0xea86a8, 0x8235c237}, - {0xea86a9, 0x8235c238}, - {0xea86aa, 0x8235c239}, - {0xea86ab, 0x8235c330}, - {0xea86ac, 0x8235c331}, - {0xea86ad, 0x8235c332}, - {0xea86ae, 0x8235c333}, - {0xea86af, 0x8235c334}, - {0xea86b0, 0x8235c335}, - {0xea86b1, 0x8235c336}, - {0xea86b2, 0x8235c337}, - {0xea86b3, 0x8235c338}, - {0xea86b4, 0x8235c339}, - {0xea86b5, 0x8235c430}, - {0xea86b6, 0x8235c431}, - {0xea86b7, 0x8235c432}, - {0xea86b8, 0x8235c433}, - {0xea86b9, 0x8235c434}, - {0xea86ba, 0x8235c435}, - {0xea86bb, 0x8235c436}, - {0xea86bc, 0x8235c437}, - {0xea86bd, 0x8235c438}, - {0xea86be, 0x8235c439}, - {0xea86bf, 0x8235c530}, - {0xea8780, 0x8235c531}, - {0xea8781, 0x8235c532}, - {0xea8782, 0x8235c533}, - {0xea8783, 0x8235c534}, - {0xea8784, 0x8235c535}, - {0xea8785, 0x8235c536}, - {0xea8786, 0x8235c537}, - {0xea8787, 0x8235c538}, - {0xea8788, 0x8235c539}, - {0xea8789, 0x8235c630}, - {0xea878a, 0x8235c631}, - {0xea878b, 0x8235c632}, - {0xea878c, 0x8235c633}, - {0xea878d, 0x8235c634}, - {0xea878e, 0x8235c635}, - {0xea878f, 0x8235c636}, - {0xea8790, 0x8235c637}, - {0xea8791, 0x8235c638}, - {0xea8792, 0x8235c639}, - {0xea8793, 0x8235c730}, - {0xea8794, 0x8235c731}, - {0xea8795, 0x8235c732}, - {0xea8796, 0x8235c733}, - {0xea8797, 0x8235c734}, - {0xea8798, 0x8235c735}, - {0xea8799, 0x8235c736}, - {0xea879a, 0x8235c737}, - {0xea879b, 0x8235c738}, - {0xea879c, 0x8235c739}, - {0xea879d, 0x8235c830}, - {0xea879e, 0x8235c831}, - {0xea879f, 0x8235c832}, - {0xea87a0, 0x8235c833}, - {0xea87a1, 0x8235c834}, - {0xea87a2, 0x8235c835}, - {0xea87a3, 0x8235c836}, - {0xea87a4, 0x8235c837}, - {0xea87a5, 0x8235c838}, - {0xea87a6, 0x8235c839}, - {0xea87a7, 0x8235c930}, - {0xea87a8, 0x8235c931}, - {0xea87a9, 0x8235c932}, - {0xea87aa, 0x8235c933}, - {0xea87ab, 0x8235c934}, - {0xea87ac, 0x8235c935}, - {0xea87ad, 0x8235c936}, - {0xea87ae, 0x8235c937}, - {0xea87af, 0x8235c938}, - {0xea87b0, 0x8235c939}, - {0xea87b1, 0x8235ca30}, - {0xea87b2, 0x8235ca31}, - {0xea87b3, 0x8235ca32}, - {0xea87b4, 0x8235ca33}, - {0xea87b5, 0x8235ca34}, - {0xea87b6, 0x8235ca35}, - {0xea87b7, 0x8235ca36}, - {0xea87b8, 0x8235ca37}, - {0xea87b9, 0x8235ca38}, - {0xea87ba, 0x8235ca39}, - {0xea87bb, 0x8235cb30}, - {0xea87bc, 0x8235cb31}, - {0xea87bd, 0x8235cb32}, - {0xea87be, 0x8235cb33}, - {0xea87bf, 0x8235cb34}, - {0xea8880, 0x8235cb35}, - {0xea8881, 0x8235cb36}, - {0xea8882, 0x8235cb37}, - {0xea8883, 0x8235cb38}, - {0xea8884, 0x8235cb39}, - {0xea8885, 0x8235cc30}, - {0xea8886, 0x8235cc31}, - {0xea8887, 0x8235cc32}, - {0xea8888, 0x8235cc33}, - {0xea8889, 0x8235cc34}, - {0xea888a, 0x8235cc35}, - {0xea888b, 0x8235cc36}, - {0xea888c, 0x8235cc37}, - {0xea888d, 0x8235cc38}, - {0xea888e, 0x8235cc39}, - {0xea888f, 0x8235cd30}, - {0xea8890, 0x8235cd31}, - {0xea8891, 0x8235cd32}, - {0xea8892, 0x8235cd33}, - {0xea8893, 0x8235cd34}, - {0xea8894, 0x8235cd35}, - {0xea8895, 0x8235cd36}, - {0xea8896, 0x8235cd37}, - {0xea8897, 0x8235cd38}, - {0xea8898, 0x8235cd39}, - {0xea8899, 0x8235ce30}, - {0xea889a, 0x8235ce31}, - {0xea889b, 0x8235ce32}, - {0xea889c, 0x8235ce33}, - {0xea889d, 0x8235ce34}, - {0xea889e, 0x8235ce35}, - {0xea889f, 0x8235ce36}, - {0xea88a0, 0x8235ce37}, - {0xea88a1, 0x8235ce38}, - {0xea88a2, 0x8235ce39}, - {0xea88a3, 0x8235cf30}, - {0xea88a4, 0x8235cf31}, - {0xea88a5, 0x8235cf32}, - {0xea88a6, 0x8235cf33}, - {0xea88a7, 0x8235cf34}, - {0xea88a8, 0x8235cf35}, - {0xea88a9, 0x8235cf36}, - {0xea88aa, 0x8235cf37}, - {0xea88ab, 0x8235cf38}, - {0xea88ac, 0x8235cf39}, - {0xea88ad, 0x8235d030}, - {0xea88ae, 0x8235d031}, - {0xea88af, 0x8235d032}, - {0xea88b0, 0x8235d033}, - {0xea88b1, 0x8235d034}, - {0xea88b2, 0x8235d035}, - {0xea88b3, 0x8235d036}, - {0xea88b4, 0x8235d037}, - {0xea88b5, 0x8235d038}, - {0xea88b6, 0x8235d039}, - {0xea88b7, 0x8235d130}, - {0xea88b8, 0x8235d131}, - {0xea88b9, 0x8235d132}, - {0xea88ba, 0x8235d133}, - {0xea88bb, 0x8235d134}, - {0xea88bc, 0x8235d135}, - {0xea88bd, 0x8235d136}, - {0xea88be, 0x8235d137}, - {0xea88bf, 0x8235d138}, - {0xea8980, 0x8235d139}, - {0xea8981, 0x8235d230}, - {0xea8982, 0x8235d231}, - {0xea8983, 0x8235d232}, - {0xea8984, 0x8235d233}, - {0xea8985, 0x8235d234}, - {0xea8986, 0x8235d235}, - {0xea8987, 0x8235d236}, - {0xea8988, 0x8235d237}, - {0xea8989, 0x8235d238}, - {0xea898a, 0x8235d239}, - {0xea898b, 0x8235d330}, - {0xea898c, 0x8235d331}, - {0xea898d, 0x8235d332}, - {0xea898e, 0x8235d333}, - {0xea898f, 0x8235d334}, - {0xea8990, 0x8235d335}, - {0xea8991, 0x8235d336}, - {0xea8992, 0x8235d337}, - {0xea8993, 0x8235d338}, - {0xea8994, 0x8235d339}, - {0xea8995, 0x8235d430}, - {0xea8996, 0x8235d431}, - {0xea8997, 0x8235d432}, - {0xea8998, 0x8235d433}, - {0xea8999, 0x8235d434}, - {0xea899a, 0x8235d435}, - {0xea899b, 0x8235d436}, - {0xea899c, 0x8235d437}, - {0xea899d, 0x8235d438}, - {0xea899e, 0x8235d439}, - {0xea899f, 0x8235d530}, - {0xea89a0, 0x8235d531}, - {0xea89a1, 0x8235d532}, - {0xea89a2, 0x8235d533}, - {0xea89a3, 0x8235d534}, - {0xea89a4, 0x8235d535}, - {0xea89a5, 0x8235d536}, - {0xea89a6, 0x8235d537}, - {0xea89a7, 0x8235d538}, - {0xea89a8, 0x8235d539}, - {0xea89a9, 0x8235d630}, - {0xea89aa, 0x8235d631}, - {0xea89ab, 0x8235d632}, - {0xea89ac, 0x8235d633}, - {0xea89ad, 0x8235d634}, - {0xea89ae, 0x8235d635}, - {0xea89af, 0x8235d636}, - {0xea89b0, 0x8235d637}, - {0xea89b1, 0x8235d638}, - {0xea89b2, 0x8235d639}, - {0xea89b3, 0x8235d730}, - {0xea89b4, 0x8235d731}, - {0xea89b5, 0x8235d732}, - {0xea89b6, 0x8235d733}, - {0xea89b7, 0x8235d734}, - {0xea89b8, 0x8235d735}, - {0xea89b9, 0x8235d736}, - {0xea89ba, 0x8235d737}, - {0xea89bb, 0x8235d738}, - {0xea89bc, 0x8235d739}, - {0xea89bd, 0x8235d830}, - {0xea89be, 0x8235d831}, - {0xea89bf, 0x8235d832}, - {0xea8a80, 0x8235d833}, - {0xea8a81, 0x8235d834}, - {0xea8a82, 0x8235d835}, - {0xea8a83, 0x8235d836}, - {0xea8a84, 0x8235d837}, - {0xea8a85, 0x8235d838}, - {0xea8a86, 0x8235d839}, - {0xea8a87, 0x8235d930}, - {0xea8a88, 0x8235d931}, - {0xea8a89, 0x8235d932}, - {0xea8a8a, 0x8235d933}, - {0xea8a8b, 0x8235d934}, - {0xea8a8c, 0x8235d935}, - {0xea8a8d, 0x8235d936}, - {0xea8a8e, 0x8235d937}, - {0xea8a8f, 0x8235d938}, - {0xea8a90, 0x8235d939}, - {0xea8a91, 0x8235da30}, - {0xea8a92, 0x8235da31}, - {0xea8a93, 0x8235da32}, - {0xea8a94, 0x8235da33}, - {0xea8a95, 0x8235da34}, - {0xea8a96, 0x8235da35}, - {0xea8a97, 0x8235da36}, - {0xea8a98, 0x8235da37}, - {0xea8a99, 0x8235da38}, - {0xea8a9a, 0x8235da39}, - {0xea8a9b, 0x8235db30}, - {0xea8a9c, 0x8235db31}, - {0xea8a9d, 0x8235db32}, - {0xea8a9e, 0x8235db33}, - {0xea8a9f, 0x8235db34}, - {0xea8aa0, 0x8235db35}, - {0xea8aa1, 0x8235db36}, - {0xea8aa2, 0x8235db37}, - {0xea8aa3, 0x8235db38}, - {0xea8aa4, 0x8235db39}, - {0xea8aa5, 0x8235dc30}, - {0xea8aa6, 0x8235dc31}, - {0xea8aa7, 0x8235dc32}, - {0xea8aa8, 0x8235dc33}, - {0xea8aa9, 0x8235dc34}, - {0xea8aaa, 0x8235dc35}, - {0xea8aab, 0x8235dc36}, - {0xea8aac, 0x8235dc37}, - {0xea8aad, 0x8235dc38}, - {0xea8aae, 0x8235dc39}, - {0xea8aaf, 0x8235dd30}, - {0xea8ab0, 0x8235dd31}, - {0xea8ab1, 0x8235dd32}, - {0xea8ab2, 0x8235dd33}, - {0xea8ab3, 0x8235dd34}, - {0xea8ab4, 0x8235dd35}, - {0xea8ab5, 0x8235dd36}, - {0xea8ab6, 0x8235dd37}, - {0xea8ab7, 0x8235dd38}, - {0xea8ab8, 0x8235dd39}, - {0xea8ab9, 0x8235de30}, - {0xea8aba, 0x8235de31}, - {0xea8abb, 0x8235de32}, - {0xea8abc, 0x8235de33}, - {0xea8abd, 0x8235de34}, - {0xea8abe, 0x8235de35}, - {0xea8abf, 0x8235de36}, - {0xea8b80, 0x8235de37}, - {0xea8b81, 0x8235de38}, - {0xea8b82, 0x8235de39}, - {0xea8b83, 0x8235df30}, - {0xea8b84, 0x8235df31}, - {0xea8b85, 0x8235df32}, - {0xea8b86, 0x8235df33}, - {0xea8b87, 0x8235df34}, - {0xea8b88, 0x8235df35}, - {0xea8b89, 0x8235df36}, - {0xea8b8a, 0x8235df37}, - {0xea8b8b, 0x8235df38}, - {0xea8b8c, 0x8235df39}, - {0xea8b8d, 0x8235e030}, - {0xea8b8e, 0x8235e031}, - {0xea8b8f, 0x8235e032}, - {0xea8b90, 0x8235e033}, - {0xea8b91, 0x8235e034}, - {0xea8b92, 0x8235e035}, - {0xea8b93, 0x8235e036}, - {0xea8b94, 0x8235e037}, - {0xea8b95, 0x8235e038}, - {0xea8b96, 0x8235e039}, - {0xea8b97, 0x8235e130}, - {0xea8b98, 0x8235e131}, - {0xea8b99, 0x8235e132}, - {0xea8b9a, 0x8235e133}, - {0xea8b9b, 0x8235e134}, - {0xea8b9c, 0x8235e135}, - {0xea8b9d, 0x8235e136}, - {0xea8b9e, 0x8235e137}, - {0xea8b9f, 0x8235e138}, - {0xea8ba0, 0x8235e139}, - {0xea8ba1, 0x8235e230}, - {0xea8ba2, 0x8235e231}, - {0xea8ba3, 0x8235e232}, - {0xea8ba4, 0x8235e233}, - {0xea8ba5, 0x8235e234}, - {0xea8ba6, 0x8235e235}, - {0xea8ba7, 0x8235e236}, - {0xea8ba8, 0x8235e237}, - {0xea8ba9, 0x8235e238}, - {0xea8baa, 0x8235e239}, - {0xea8bab, 0x8235e330}, - {0xea8bac, 0x8235e331}, - {0xea8bad, 0x8235e332}, - {0xea8bae, 0x8235e333}, - {0xea8baf, 0x8235e334}, - {0xea8bb0, 0x8235e335}, - {0xea8bb1, 0x8235e336}, - {0xea8bb2, 0x8235e337}, - {0xea8bb3, 0x8235e338}, - {0xea8bb4, 0x8235e339}, - {0xea8bb5, 0x8235e430}, - {0xea8bb6, 0x8235e431}, - {0xea8bb7, 0x8235e432}, - {0xea8bb8, 0x8235e433}, - {0xea8bb9, 0x8235e434}, - {0xea8bba, 0x8235e435}, - {0xea8bbb, 0x8235e436}, - {0xea8bbc, 0x8235e437}, - {0xea8bbd, 0x8235e438}, - {0xea8bbe, 0x8235e439}, - {0xea8bbf, 0x8235e530}, - {0xea8c80, 0x8235e531}, - {0xea8c81, 0x8235e532}, - {0xea8c82, 0x8235e533}, - {0xea8c83, 0x8235e534}, - {0xea8c84, 0x8235e535}, - {0xea8c85, 0x8235e536}, - {0xea8c86, 0x8235e537}, - {0xea8c87, 0x8235e538}, - {0xea8c88, 0x8235e539}, - {0xea8c89, 0x8235e630}, - {0xea8c8a, 0x8235e631}, - {0xea8c8b, 0x8235e632}, - {0xea8c8c, 0x8235e633}, - {0xea8c8d, 0x8235e634}, - {0xea8c8e, 0x8235e635}, - {0xea8c8f, 0x8235e636}, - {0xea8c90, 0x8235e637}, - {0xea8c91, 0x8235e638}, - {0xea8c92, 0x8235e639}, - {0xea8c93, 0x8235e730}, - {0xea8c94, 0x8235e731}, - {0xea8c95, 0x8235e732}, - {0xea8c96, 0x8235e733}, - {0xea8c97, 0x8235e734}, - {0xea8c98, 0x8235e735}, - {0xea8c99, 0x8235e736}, - {0xea8c9a, 0x8235e737}, - {0xea8c9b, 0x8235e738}, - {0xea8c9c, 0x8235e739}, - {0xea8c9d, 0x8235e830}, - {0xea8c9e, 0x8235e831}, - {0xea8c9f, 0x8235e832}, - {0xea8ca0, 0x8235e833}, - {0xea8ca1, 0x8235e834}, - {0xea8ca2, 0x8235e835}, - {0xea8ca3, 0x8235e836}, - {0xea8ca4, 0x8235e837}, - {0xea8ca5, 0x8235e838}, - {0xea8ca6, 0x8235e839}, - {0xea8ca7, 0x8235e930}, - {0xea8ca8, 0x8235e931}, - {0xea8ca9, 0x8235e932}, - {0xea8caa, 0x8235e933}, - {0xea8cab, 0x8235e934}, - {0xea8cac, 0x8235e935}, - {0xea8cad, 0x8235e936}, - {0xea8cae, 0x8235e937}, - {0xea8caf, 0x8235e938}, - {0xea8cb0, 0x8235e939}, - {0xea8cb1, 0x8235ea30}, - {0xea8cb2, 0x8235ea31}, - {0xea8cb3, 0x8235ea32}, - {0xea8cb4, 0x8235ea33}, - {0xea8cb5, 0x8235ea34}, - {0xea8cb6, 0x8235ea35}, - {0xea8cb7, 0x8235ea36}, - {0xea8cb8, 0x8235ea37}, - {0xea8cb9, 0x8235ea38}, - {0xea8cba, 0x8235ea39}, - {0xea8cbb, 0x8235eb30}, - {0xea8cbc, 0x8235eb31}, - {0xea8cbd, 0x8235eb32}, - {0xea8cbe, 0x8235eb33}, - {0xea8cbf, 0x8235eb34}, - {0xea8d80, 0x8235eb35}, - {0xea8d81, 0x8235eb36}, - {0xea8d82, 0x8235eb37}, - {0xea8d83, 0x8235eb38}, - {0xea8d84, 0x8235eb39}, - {0xea8d85, 0x8235ec30}, - {0xea8d86, 0x8235ec31}, - {0xea8d87, 0x8235ec32}, - {0xea8d88, 0x8235ec33}, - {0xea8d89, 0x8235ec34}, - {0xea8d8a, 0x8235ec35}, - {0xea8d8b, 0x8235ec36}, - {0xea8d8c, 0x8235ec37}, - {0xea8d8d, 0x8235ec38}, - {0xea8d8e, 0x8235ec39}, - {0xea8d8f, 0x8235ed30}, - {0xea8d90, 0x8235ed31}, - {0xea8d91, 0x8235ed32}, - {0xea8d92, 0x8235ed33}, - {0xea8d93, 0x8235ed34}, - {0xea8d94, 0x8235ed35}, - {0xea8d95, 0x8235ed36}, - {0xea8d96, 0x8235ed37}, - {0xea8d97, 0x8235ed38}, - {0xea8d98, 0x8235ed39}, - {0xea8d99, 0x8235ee30}, - {0xea8d9a, 0x8235ee31}, - {0xea8d9b, 0x8235ee32}, - {0xea8d9c, 0x8235ee33}, - {0xea8d9d, 0x8235ee34}, - {0xea8d9e, 0x8235ee35}, - {0xea8d9f, 0x8235ee36}, - {0xea8da0, 0x8235ee37}, - {0xea8da1, 0x8235ee38}, - {0xea8da2, 0x8235ee39}, - {0xea8da3, 0x8235ef30}, - {0xea8da4, 0x8235ef31}, - {0xea8da5, 0x8235ef32}, - {0xea8da6, 0x8235ef33}, - {0xea8da7, 0x8235ef34}, - {0xea8da8, 0x8235ef35}, - {0xea8da9, 0x8235ef36}, - {0xea8daa, 0x8235ef37}, - {0xea8dab, 0x8235ef38}, - {0xea8dac, 0x8235ef39}, - {0xea8dad, 0x8235f030}, - {0xea8dae, 0x8235f031}, - {0xea8daf, 0x8235f032}, - {0xea8db0, 0x8235f033}, - {0xea8db1, 0x8235f034}, - {0xea8db2, 0x8235f035}, - {0xea8db3, 0x8235f036}, - {0xea8db4, 0x8235f037}, - {0xea8db5, 0x8235f038}, - {0xea8db6, 0x8235f039}, - {0xea8db7, 0x8235f130}, - {0xea8db8, 0x8235f131}, - {0xea8db9, 0x8235f132}, - {0xea8dba, 0x8235f133}, - {0xea8dbb, 0x8235f134}, - {0xea8dbc, 0x8235f135}, - {0xea8dbd, 0x8235f136}, - {0xea8dbe, 0x8235f137}, - {0xea8dbf, 0x8235f138}, - {0xea8e80, 0x8235f139}, - {0xea8e81, 0x8235f230}, - {0xea8e82, 0x8235f231}, - {0xea8e83, 0x8235f232}, - {0xea8e84, 0x8235f233}, - {0xea8e85, 0x8235f234}, - {0xea8e86, 0x8235f235}, - {0xea8e87, 0x8235f236}, - {0xea8e88, 0x8235f237}, - {0xea8e89, 0x8235f238}, - {0xea8e8a, 0x8235f239}, - {0xea8e8b, 0x8235f330}, - {0xea8e8c, 0x8235f331}, - {0xea8e8d, 0x8235f332}, - {0xea8e8e, 0x8235f333}, - {0xea8e8f, 0x8235f334}, - {0xea8e90, 0x8235f335}, - {0xea8e91, 0x8235f336}, - {0xea8e92, 0x8235f337}, - {0xea8e93, 0x8235f338}, - {0xea8e94, 0x8235f339}, - {0xea8e95, 0x8235f430}, - {0xea8e96, 0x8235f431}, - {0xea8e97, 0x8235f432}, - {0xea8e98, 0x8235f433}, - {0xea8e99, 0x8235f434}, - {0xea8e9a, 0x8235f435}, - {0xea8e9b, 0x8235f436}, - {0xea8e9c, 0x8235f437}, - {0xea8e9d, 0x8235f438}, - {0xea8e9e, 0x8235f439}, - {0xea8e9f, 0x8235f530}, - {0xea8ea0, 0x8235f531}, - {0xea8ea1, 0x8235f532}, - {0xea8ea2, 0x8235f533}, - {0xea8ea3, 0x8235f534}, - {0xea8ea4, 0x8235f535}, - {0xea8ea5, 0x8235f536}, - {0xea8ea6, 0x8235f537}, - {0xea8ea7, 0x8235f538}, - {0xea8ea8, 0x8235f539}, - {0xea8ea9, 0x8235f630}, - {0xea8eaa, 0x8235f631}, - {0xea8eab, 0x8235f632}, - {0xea8eac, 0x8235f633}, - {0xea8ead, 0x8235f634}, - {0xea8eae, 0x8235f635}, - {0xea8eaf, 0x8235f636}, - {0xea8eb0, 0x8235f637}, - {0xea8eb1, 0x8235f638}, - {0xea8eb2, 0x8235f639}, - {0xea8eb3, 0x8235f730}, - {0xea8eb4, 0x8235f731}, - {0xea8eb5, 0x8235f732}, - {0xea8eb6, 0x8235f733}, - {0xea8eb7, 0x8235f734}, - {0xea8eb8, 0x8235f735}, - {0xea8eb9, 0x8235f736}, - {0xea8eba, 0x8235f737}, - {0xea8ebb, 0x8235f738}, - {0xea8ebc, 0x8235f739}, - {0xea8ebd, 0x8235f830}, - {0xea8ebe, 0x8235f831}, - {0xea8ebf, 0x8235f832}, - {0xea8f80, 0x8235f833}, - {0xea8f81, 0x8235f834}, - {0xea8f82, 0x8235f835}, - {0xea8f83, 0x8235f836}, - {0xea8f84, 0x8235f837}, - {0xea8f85, 0x8235f838}, - {0xea8f86, 0x8235f839}, - {0xea8f87, 0x8235f930}, - {0xea8f88, 0x8235f931}, - {0xea8f89, 0x8235f932}, - {0xea8f8a, 0x8235f933}, - {0xea8f8b, 0x8235f934}, - {0xea8f8c, 0x8235f935}, - {0xea8f8d, 0x8235f936}, - {0xea8f8e, 0x8235f937}, - {0xea8f8f, 0x8235f938}, - {0xea8f90, 0x8235f939}, - {0xea8f91, 0x8235fa30}, - {0xea8f92, 0x8235fa31}, - {0xea8f93, 0x8235fa32}, - {0xea8f94, 0x8235fa33}, - {0xea8f95, 0x8235fa34}, - {0xea8f96, 0x8235fa35}, - {0xea8f97, 0x8235fa36}, - {0xea8f98, 0x8235fa37}, - {0xea8f99, 0x8235fa38}, - {0xea8f9a, 0x8235fa39}, - {0xea8f9b, 0x8235fb30}, - {0xea8f9c, 0x8235fb31}, - {0xea8f9d, 0x8235fb32}, - {0xea8f9e, 0x8235fb33}, - {0xea8f9f, 0x8235fb34}, - {0xea8fa0, 0x8235fb35}, - {0xea8fa1, 0x8235fb36}, - {0xea8fa2, 0x8235fb37}, - {0xea8fa3, 0x8235fb38}, - {0xea8fa4, 0x8235fb39}, - {0xea8fa5, 0x8235fc30}, - {0xea8fa6, 0x8235fc31}, - {0xea8fa7, 0x8235fc32}, - {0xea8fa8, 0x8235fc33}, - {0xea8fa9, 0x8235fc34}, - {0xea8faa, 0x8235fc35}, - {0xea8fab, 0x8235fc36}, - {0xea8fac, 0x8235fc37}, - {0xea8fad, 0x8235fc38}, - {0xea8fae, 0x8235fc39}, - {0xea8faf, 0x8235fd30}, - {0xea8fb0, 0x8235fd31}, - {0xea8fb1, 0x8235fd32}, - {0xea8fb2, 0x8235fd33}, - {0xea8fb3, 0x8235fd34}, - {0xea8fb4, 0x8235fd35}, - {0xea8fb5, 0x8235fd36}, - {0xea8fb6, 0x8235fd37}, - {0xea8fb7, 0x8235fd38}, - {0xea8fb8, 0x8235fd39}, - {0xea8fb9, 0x8235fe30}, - {0xea8fba, 0x8235fe31}, - {0xea8fbb, 0x8235fe32}, - {0xea8fbc, 0x8235fe33}, - {0xea8fbd, 0x8235fe34}, - {0xea8fbe, 0x8235fe35}, - {0xea8fbf, 0x8235fe36}, - {0xea9080, 0x8235fe37}, - {0xea9081, 0x8235fe38}, - {0xea9082, 0x8235fe39}, - {0xea9083, 0x82368130}, - {0xea9084, 0x82368131}, - {0xea9085, 0x82368132}, - {0xea9086, 0x82368133}, - {0xea9087, 0x82368134}, - {0xea9088, 0x82368135}, - {0xea9089, 0x82368136}, - {0xea908a, 0x82368137}, - {0xea908b, 0x82368138}, - {0xea908c, 0x82368139}, - {0xea908d, 0x82368230}, - {0xea908e, 0x82368231}, - {0xea908f, 0x82368232}, - {0xea9090, 0x82368233}, - {0xea9091, 0x82368234}, - {0xea9092, 0x82368235}, - {0xea9093, 0x82368236}, - {0xea9094, 0x82368237}, - {0xea9095, 0x82368238}, - {0xea9096, 0x82368239}, - {0xea9097, 0x82368330}, - {0xea9098, 0x82368331}, - {0xea9099, 0x82368332}, - {0xea909a, 0x82368333}, - {0xea909b, 0x82368334}, - {0xea909c, 0x82368335}, - {0xea909d, 0x82368336}, - {0xea909e, 0x82368337}, - {0xea909f, 0x82368338}, - {0xea90a0, 0x82368339}, - {0xea90a1, 0x82368430}, - {0xea90a2, 0x82368431}, - {0xea90a3, 0x82368432}, - {0xea90a4, 0x82368433}, - {0xea90a5, 0x82368434}, - {0xea90a6, 0x82368435}, - {0xea90a7, 0x82368436}, - {0xea90a8, 0x82368437}, - {0xea90a9, 0x82368438}, - {0xea90aa, 0x82368439}, - {0xea90ab, 0x82368530}, - {0xea90ac, 0x82368531}, - {0xea90ad, 0x82368532}, - {0xea90ae, 0x82368533}, - {0xea90af, 0x82368534}, - {0xea90b0, 0x82368535}, - {0xea90b1, 0x82368536}, - {0xea90b2, 0x82368537}, - {0xea90b3, 0x82368538}, - {0xea90b4, 0x82368539}, - {0xea90b5, 0x82368630}, - {0xea90b6, 0x82368631}, - {0xea90b7, 0x82368632}, - {0xea90b8, 0x82368633}, - {0xea90b9, 0x82368634}, - {0xea90ba, 0x82368635}, - {0xea90bb, 0x82368636}, - {0xea90bc, 0x82368637}, - {0xea90bd, 0x82368638}, - {0xea90be, 0x82368639}, - {0xea90bf, 0x82368730}, - {0xea9180, 0x82368731}, - {0xea9181, 0x82368732}, - {0xea9182, 0x82368733}, - {0xea9183, 0x82368734}, - {0xea9184, 0x82368735}, - {0xea9185, 0x82368736}, - {0xea9186, 0x82368737}, - {0xea9187, 0x82368738}, - {0xea9188, 0x82368739}, - {0xea9189, 0x82368830}, - {0xea918a, 0x82368831}, - {0xea918b, 0x82368832}, - {0xea918c, 0x82368833}, - {0xea918d, 0x82368834}, - {0xea918e, 0x82368835}, - {0xea918f, 0x82368836}, - {0xea9190, 0x82368837}, - {0xea9191, 0x82368838}, - {0xea9192, 0x82368839}, - {0xea9193, 0x82368930}, - {0xea9194, 0x82368931}, - {0xea9195, 0x82368932}, - {0xea9196, 0x82368933}, - {0xea9197, 0x82368934}, - {0xea9198, 0x82368935}, - {0xea9199, 0x82368936}, - {0xea919a, 0x82368937}, - {0xea919b, 0x82368938}, - {0xea919c, 0x82368939}, - {0xea919d, 0x82368a30}, - {0xea919e, 0x82368a31}, - {0xea919f, 0x82368a32}, - {0xea91a0, 0x82368a33}, - {0xea91a1, 0x82368a34}, - {0xea91a2, 0x82368a35}, - {0xea91a3, 0x82368a36}, - {0xea91a4, 0x82368a37}, - {0xea91a5, 0x82368a38}, - {0xea91a6, 0x82368a39}, - {0xea91a7, 0x82368b30}, - {0xea91a8, 0x82368b31}, - {0xea91a9, 0x82368b32}, - {0xea91aa, 0x82368b33}, - {0xea91ab, 0x82368b34}, - {0xea91ac, 0x82368b35}, - {0xea91ad, 0x82368b36}, - {0xea91ae, 0x82368b37}, - {0xea91af, 0x82368b38}, - {0xea91b0, 0x82368b39}, - {0xea91b1, 0x82368c30}, - {0xea91b2, 0x82368c31}, - {0xea91b3, 0x82368c32}, - {0xea91b4, 0x82368c33}, - {0xea91b5, 0x82368c34}, - {0xea91b6, 0x82368c35}, - {0xea91b7, 0x82368c36}, - {0xea91b8, 0x82368c37}, - {0xea91b9, 0x82368c38}, - {0xea91ba, 0x82368c39}, - {0xea91bb, 0x82368d30}, - {0xea91bc, 0x82368d31}, - {0xea91bd, 0x82368d32}, - {0xea91be, 0x82368d33}, - {0xea91bf, 0x82368d34}, - {0xea9280, 0x82368d35}, - {0xea9281, 0x82368d36}, - {0xea9282, 0x82368d37}, - {0xea9283, 0x82368d38}, - {0xea9284, 0x82368d39}, - {0xea9285, 0x82368e30}, - {0xea9286, 0x82368e31}, - {0xea9287, 0x82368e32}, - {0xea9288, 0x82368e33}, - {0xea9289, 0x82368e34}, - {0xea928a, 0x82368e35}, - {0xea928b, 0x82368e36}, - {0xea928c, 0x82368e37}, - {0xea928d, 0x82368e38}, - {0xea928e, 0x82368e39}, - {0xea928f, 0x82368f30}, - {0xea9290, 0x82368f31}, - {0xea9291, 0x82368f32}, - {0xea9292, 0x82368f33}, - {0xea9293, 0x82368f34}, - {0xea9294, 0x82368f35}, - {0xea9295, 0x82368f36}, - {0xea9296, 0x82368f37}, - {0xea9297, 0x82368f38}, - {0xea9298, 0x82368f39}, - {0xea9299, 0x82369030}, - {0xea929a, 0x82369031}, - {0xea929b, 0x82369032}, - {0xea929c, 0x82369033}, - {0xea929d, 0x82369034}, - {0xea929e, 0x82369035}, - {0xea929f, 0x82369036}, - {0xea92a0, 0x82369037}, - {0xea92a1, 0x82369038}, - {0xea92a2, 0x82369039}, - {0xea92a3, 0x82369130}, - {0xea92a4, 0x82369131}, - {0xea92a5, 0x82369132}, - {0xea92a6, 0x82369133}, - {0xea92a7, 0x82369134}, - {0xea92a8, 0x82369135}, - {0xea92a9, 0x82369136}, - {0xea92aa, 0x82369137}, - {0xea92ab, 0x82369138}, - {0xea92ac, 0x82369139}, - {0xea92ad, 0x82369230}, - {0xea92ae, 0x82369231}, - {0xea92af, 0x82369232}, - {0xea92b0, 0x82369233}, - {0xea92b1, 0x82369234}, - {0xea92b2, 0x82369235}, - {0xea92b3, 0x82369236}, - {0xea92b4, 0x82369237}, - {0xea92b5, 0x82369238}, - {0xea92b6, 0x82369239}, - {0xea92b7, 0x82369330}, - {0xea92b8, 0x82369331}, - {0xea92b9, 0x82369332}, - {0xea92ba, 0x82369333}, - {0xea92bb, 0x82369334}, - {0xea92bc, 0x82369335}, - {0xea92bd, 0x82369336}, - {0xea92be, 0x82369337}, - {0xea92bf, 0x82369338}, - {0xea9380, 0x82369339}, - {0xea9381, 0x82369430}, - {0xea9382, 0x82369431}, - {0xea9383, 0x82369432}, - {0xea9384, 0x82369433}, - {0xea9385, 0x82369434}, - {0xea9386, 0x82369435}, - {0xea9387, 0x82369436}, - {0xea9388, 0x82369437}, - {0xea9389, 0x82369438}, - {0xea938a, 0x82369439}, - {0xea938b, 0x82369530}, - {0xea938c, 0x82369531}, - {0xea938d, 0x82369532}, - {0xea938e, 0x82369533}, - {0xea938f, 0x82369534}, - {0xea9390, 0x82369535}, - {0xea9391, 0x82369536}, - {0xea9392, 0x82369537}, - {0xea9393, 0x82369538}, - {0xea9394, 0x82369539}, - {0xea9395, 0x82369630}, - {0xea9396, 0x82369631}, - {0xea9397, 0x82369632}, - {0xea9398, 0x82369633}, - {0xea9399, 0x82369634}, - {0xea939a, 0x82369635}, - {0xea939b, 0x82369636}, - {0xea939c, 0x82369637}, - {0xea939d, 0x82369638}, - {0xea939e, 0x82369639}, - {0xea939f, 0x82369730}, - {0xea93a0, 0x82369731}, - {0xea93a1, 0x82369732}, - {0xea93a2, 0x82369733}, - {0xea93a3, 0x82369734}, - {0xea93a4, 0x82369735}, - {0xea93a5, 0x82369736}, - {0xea93a6, 0x82369737}, - {0xea93a7, 0x82369738}, - {0xea93a8, 0x82369739}, - {0xea93a9, 0x82369830}, - {0xea93aa, 0x82369831}, - {0xea93ab, 0x82369832}, - {0xea93ac, 0x82369833}, - {0xea93ad, 0x82369834}, - {0xea93ae, 0x82369835}, - {0xea93af, 0x82369836}, - {0xea93b0, 0x82369837}, - {0xea93b1, 0x82369838}, - {0xea93b2, 0x82369839}, - {0xea93b3, 0x82369930}, - {0xea93b4, 0x82369931}, - {0xea93b5, 0x82369932}, - {0xea93b6, 0x82369933}, - {0xea93b7, 0x82369934}, - {0xea93b8, 0x82369935}, - {0xea93b9, 0x82369936}, - {0xea93ba, 0x82369937}, - {0xea93bb, 0x82369938}, - {0xea93bc, 0x82369939}, - {0xea93bd, 0x82369a30}, - {0xea93be, 0x82369a31}, - {0xea93bf, 0x82369a32}, - {0xea9480, 0x82369a33}, - {0xea9481, 0x82369a34}, - {0xea9482, 0x82369a35}, - {0xea9483, 0x82369a36}, - {0xea9484, 0x82369a37}, - {0xea9485, 0x82369a38}, - {0xea9486, 0x82369a39}, - {0xea9487, 0x82369b30}, - {0xea9488, 0x82369b31}, - {0xea9489, 0x82369b32}, - {0xea948a, 0x82369b33}, - {0xea948b, 0x82369b34}, - {0xea948c, 0x82369b35}, - {0xea948d, 0x82369b36}, - {0xea948e, 0x82369b37}, - {0xea948f, 0x82369b38}, - {0xea9490, 0x82369b39}, - {0xea9491, 0x82369c30}, - {0xea9492, 0x82369c31}, - {0xea9493, 0x82369c32}, - {0xea9494, 0x82369c33}, - {0xea9495, 0x82369c34}, - {0xea9496, 0x82369c35}, - {0xea9497, 0x82369c36}, - {0xea9498, 0x82369c37}, - {0xea9499, 0x82369c38}, - {0xea949a, 0x82369c39}, - {0xea949b, 0x82369d30}, - {0xea949c, 0x82369d31}, - {0xea949d, 0x82369d32}, - {0xea949e, 0x82369d33}, - {0xea949f, 0x82369d34}, - {0xea94a0, 0x82369d35}, - {0xea94a1, 0x82369d36}, - {0xea94a2, 0x82369d37}, - {0xea94a3, 0x82369d38}, - {0xea94a4, 0x82369d39}, - {0xea94a5, 0x82369e30}, - {0xea94a6, 0x82369e31}, - {0xea94a7, 0x82369e32}, - {0xea94a8, 0x82369e33}, - {0xea94a9, 0x82369e34}, - {0xea94aa, 0x82369e35}, - {0xea94ab, 0x82369e36}, - {0xea94ac, 0x82369e37}, - {0xea94ad, 0x82369e38}, - {0xea94ae, 0x82369e39}, - {0xea94af, 0x82369f30}, - {0xea94b0, 0x82369f31}, - {0xea94b1, 0x82369f32}, - {0xea94b2, 0x82369f33}, - {0xea94b3, 0x82369f34}, - {0xea94b4, 0x82369f35}, - {0xea94b5, 0x82369f36}, - {0xea94b6, 0x82369f37}, - {0xea94b7, 0x82369f38}, - {0xea94b8, 0x82369f39}, - {0xea94b9, 0x8236a030}, - {0xea94ba, 0x8236a031}, - {0xea94bb, 0x8236a032}, - {0xea94bc, 0x8236a033}, - {0xea94bd, 0x8236a034}, - {0xea94be, 0x8236a035}, - {0xea94bf, 0x8236a036}, - {0xea9580, 0x8236a037}, - {0xea9581, 0x8236a038}, - {0xea9582, 0x8236a039}, - {0xea9583, 0x8236a130}, - {0xea9584, 0x8236a131}, - {0xea9585, 0x8236a132}, - {0xea9586, 0x8236a133}, - {0xea9587, 0x8236a134}, - {0xea9588, 0x8236a135}, - {0xea9589, 0x8236a136}, - {0xea958a, 0x8236a137}, - {0xea958b, 0x8236a138}, - {0xea958c, 0x8236a139}, - {0xea958d, 0x8236a230}, - {0xea958e, 0x8236a231}, - {0xea958f, 0x8236a232}, - {0xea9590, 0x8236a233}, - {0xea9591, 0x8236a234}, - {0xea9592, 0x8236a235}, - {0xea9593, 0x8236a236}, - {0xea9594, 0x8236a237}, - {0xea9595, 0x8236a238}, - {0xea9596, 0x8236a239}, - {0xea9597, 0x8236a330}, - {0xea9598, 0x8236a331}, - {0xea9599, 0x8236a332}, - {0xea959a, 0x8236a333}, - {0xea959b, 0x8236a334}, - {0xea959c, 0x8236a335}, - {0xea959d, 0x8236a336}, - {0xea959e, 0x8236a337}, - {0xea959f, 0x8236a338}, - {0xea95a0, 0x8236a339}, - {0xea95a1, 0x8236a430}, - {0xea95a2, 0x8236a431}, - {0xea95a3, 0x8236a432}, - {0xea95a4, 0x8236a433}, - {0xea95a5, 0x8236a434}, - {0xea95a6, 0x8236a435}, - {0xea95a7, 0x8236a436}, - {0xea95a8, 0x8236a437}, - {0xea95a9, 0x8236a438}, - {0xea95aa, 0x8236a439}, - {0xea95ab, 0x8236a530}, - {0xea95ac, 0x8236a531}, - {0xea95ad, 0x8236a532}, - {0xea95ae, 0x8236a533}, - {0xea95af, 0x8236a534}, - {0xea95b0, 0x8236a535}, - {0xea95b1, 0x8236a536}, - {0xea95b2, 0x8236a537}, - {0xea95b3, 0x8236a538}, - {0xea95b4, 0x8236a539}, - {0xea95b5, 0x8236a630}, - {0xea95b6, 0x8236a631}, - {0xea95b7, 0x8236a632}, - {0xea95b8, 0x8236a633}, - {0xea95b9, 0x8236a634}, - {0xea95ba, 0x8236a635}, - {0xea95bb, 0x8236a636}, - {0xea95bc, 0x8236a637}, - {0xea95bd, 0x8236a638}, - {0xea95be, 0x8236a639}, - {0xea95bf, 0x8236a730}, - {0xea9680, 0x8236a731}, - {0xea9681, 0x8236a732}, - {0xea9682, 0x8236a733}, - {0xea9683, 0x8236a734}, - {0xea9684, 0x8236a735}, - {0xea9685, 0x8236a736}, - {0xea9686, 0x8236a737}, - {0xea9687, 0x8236a738}, - {0xea9688, 0x8236a739}, - {0xea9689, 0x8236a830}, - {0xea968a, 0x8236a831}, - {0xea968b, 0x8236a832}, - {0xea968c, 0x8236a833}, - {0xea968d, 0x8236a834}, - {0xea968e, 0x8236a835}, - {0xea968f, 0x8236a836}, - {0xea9690, 0x8236a837}, - {0xea9691, 0x8236a838}, - {0xea9692, 0x8236a839}, - {0xea9693, 0x8236a930}, - {0xea9694, 0x8236a931}, - {0xea9695, 0x8236a932}, - {0xea9696, 0x8236a933}, - {0xea9697, 0x8236a934}, - {0xea9698, 0x8236a935}, - {0xea9699, 0x8236a936}, - {0xea969a, 0x8236a937}, - {0xea969b, 0x8236a938}, - {0xea969c, 0x8236a939}, - {0xea969d, 0x8236aa30}, - {0xea969e, 0x8236aa31}, - {0xea969f, 0x8236aa32}, - {0xea96a0, 0x8236aa33}, - {0xea96a1, 0x8236aa34}, - {0xea96a2, 0x8236aa35}, - {0xea96a3, 0x8236aa36}, - {0xea96a4, 0x8236aa37}, - {0xea96a5, 0x8236aa38}, - {0xea96a6, 0x8236aa39}, - {0xea96a7, 0x8236ab30}, - {0xea96a8, 0x8236ab31}, - {0xea96a9, 0x8236ab32}, - {0xea96aa, 0x8236ab33}, - {0xea96ab, 0x8236ab34}, - {0xea96ac, 0x8236ab35}, - {0xea96ad, 0x8236ab36}, - {0xea96ae, 0x8236ab37}, - {0xea96af, 0x8236ab38}, - {0xea96b0, 0x8236ab39}, - {0xea96b1, 0x8236ac30}, - {0xea96b2, 0x8236ac31}, - {0xea96b3, 0x8236ac32}, - {0xea96b4, 0x8236ac33}, - {0xea96b5, 0x8236ac34}, - {0xea96b6, 0x8236ac35}, - {0xea96b7, 0x8236ac36}, - {0xea96b8, 0x8236ac37}, - {0xea96b9, 0x8236ac38}, - {0xea96ba, 0x8236ac39}, - {0xea96bb, 0x8236ad30}, - {0xea96bc, 0x8236ad31}, - {0xea96bd, 0x8236ad32}, - {0xea96be, 0x8236ad33}, - {0xea96bf, 0x8236ad34}, - {0xea9780, 0x8236ad35}, - {0xea9781, 0x8236ad36}, - {0xea9782, 0x8236ad37}, - {0xea9783, 0x8236ad38}, - {0xea9784, 0x8236ad39}, - {0xea9785, 0x8236ae30}, - {0xea9786, 0x8236ae31}, - {0xea9787, 0x8236ae32}, - {0xea9788, 0x8236ae33}, - {0xea9789, 0x8236ae34}, - {0xea978a, 0x8236ae35}, - {0xea978b, 0x8236ae36}, - {0xea978c, 0x8236ae37}, - {0xea978d, 0x8236ae38}, - {0xea978e, 0x8236ae39}, - {0xea978f, 0x8236af30}, - {0xea9790, 0x8236af31}, - {0xea9791, 0x8236af32}, - {0xea9792, 0x8236af33}, - {0xea9793, 0x8236af34}, - {0xea9794, 0x8236af35}, - {0xea9795, 0x8236af36}, - {0xea9796, 0x8236af37}, - {0xea9797, 0x8236af38}, - {0xea9798, 0x8236af39}, - {0xea9799, 0x8236b030}, - {0xea979a, 0x8236b031}, - {0xea979b, 0x8236b032}, - {0xea979c, 0x8236b033}, - {0xea979d, 0x8236b034}, - {0xea979e, 0x8236b035}, - {0xea979f, 0x8236b036}, - {0xea97a0, 0x8236b037}, - {0xea97a1, 0x8236b038}, - {0xea97a2, 0x8236b039}, - {0xea97a3, 0x8236b130}, - {0xea97a4, 0x8236b131}, - {0xea97a5, 0x8236b132}, - {0xea97a6, 0x8236b133}, - {0xea97a7, 0x8236b134}, - {0xea97a8, 0x8236b135}, - {0xea97a9, 0x8236b136}, - {0xea97aa, 0x8236b137}, - {0xea97ab, 0x8236b138}, - {0xea97ac, 0x8236b139}, - {0xea97ad, 0x8236b230}, - {0xea97ae, 0x8236b231}, - {0xea97af, 0x8236b232}, - {0xea97b0, 0x8236b233}, - {0xea97b1, 0x8236b234}, - {0xea97b2, 0x8236b235}, - {0xea97b3, 0x8236b236}, - {0xea97b4, 0x8236b237}, - {0xea97b5, 0x8236b238}, - {0xea97b6, 0x8236b239}, - {0xea97b7, 0x8236b330}, - {0xea97b8, 0x8236b331}, - {0xea97b9, 0x8236b332}, - {0xea97ba, 0x8236b333}, - {0xea97bb, 0x8236b334}, - {0xea97bc, 0x8236b335}, - {0xea97bd, 0x8236b336}, - {0xea97be, 0x8236b337}, - {0xea97bf, 0x8236b338}, - {0xea9880, 0x8236b339}, - {0xea9881, 0x8236b430}, - {0xea9882, 0x8236b431}, - {0xea9883, 0x8236b432}, - {0xea9884, 0x8236b433}, - {0xea9885, 0x8236b434}, - {0xea9886, 0x8236b435}, - {0xea9887, 0x8236b436}, - {0xea9888, 0x8236b437}, - {0xea9889, 0x8236b438}, - {0xea988a, 0x8236b439}, - {0xea988b, 0x8236b530}, - {0xea988c, 0x8236b531}, - {0xea988d, 0x8236b532}, - {0xea988e, 0x8236b533}, - {0xea988f, 0x8236b534}, - {0xea9890, 0x8236b535}, - {0xea9891, 0x8236b536}, - {0xea9892, 0x8236b537}, - {0xea9893, 0x8236b538}, - {0xea9894, 0x8236b539}, - {0xea9895, 0x8236b630}, - {0xea9896, 0x8236b631}, - {0xea9897, 0x8236b632}, - {0xea9898, 0x8236b633}, - {0xea9899, 0x8236b634}, - {0xea989a, 0x8236b635}, - {0xea989b, 0x8236b636}, - {0xea989c, 0x8236b637}, - {0xea989d, 0x8236b638}, - {0xea989e, 0x8236b639}, - {0xea989f, 0x8236b730}, - {0xea98a0, 0x8236b731}, - {0xea98a1, 0x8236b732}, - {0xea98a2, 0x8236b733}, - {0xea98a3, 0x8236b734}, - {0xea98a4, 0x8236b735}, - {0xea98a5, 0x8236b736}, - {0xea98a6, 0x8236b737}, - {0xea98a7, 0x8236b738}, - {0xea98a8, 0x8236b739}, - {0xea98a9, 0x8236b830}, - {0xea98aa, 0x8236b831}, - {0xea98ab, 0x8236b832}, - {0xea98ac, 0x8236b833}, - {0xea98ad, 0x8236b834}, - {0xea98ae, 0x8236b835}, - {0xea98af, 0x8236b836}, - {0xea98b0, 0x8236b837}, - {0xea98b1, 0x8236b838}, - {0xea98b2, 0x8236b839}, - {0xea98b3, 0x8236b930}, - {0xea98b4, 0x8236b931}, - {0xea98b5, 0x8236b932}, - {0xea98b6, 0x8236b933}, - {0xea98b7, 0x8236b934}, - {0xea98b8, 0x8236b935}, - {0xea98b9, 0x8236b936}, - {0xea98ba, 0x8236b937}, - {0xea98bb, 0x8236b938}, - {0xea98bc, 0x8236b939}, - {0xea98bd, 0x8236ba30}, - {0xea98be, 0x8236ba31}, - {0xea98bf, 0x8236ba32}, - {0xea9980, 0x8236ba33}, - {0xea9981, 0x8236ba34}, - {0xea9982, 0x8236ba35}, - {0xea9983, 0x8236ba36}, - {0xea9984, 0x8236ba37}, - {0xea9985, 0x8236ba38}, - {0xea9986, 0x8236ba39}, - {0xea9987, 0x8236bb30}, - {0xea9988, 0x8236bb31}, - {0xea9989, 0x8236bb32}, - {0xea998a, 0x8236bb33}, - {0xea998b, 0x8236bb34}, - {0xea998c, 0x8236bb35}, - {0xea998d, 0x8236bb36}, - {0xea998e, 0x8236bb37}, - {0xea998f, 0x8236bb38}, - {0xea9990, 0x8236bb39}, - {0xea9991, 0x8236bc30}, - {0xea9992, 0x8236bc31}, - {0xea9993, 0x8236bc32}, - {0xea9994, 0x8236bc33}, - {0xea9995, 0x8236bc34}, - {0xea9996, 0x8236bc35}, - {0xea9997, 0x8236bc36}, - {0xea9998, 0x8236bc37}, - {0xea9999, 0x8236bc38}, - {0xea999a, 0x8236bc39}, - {0xea999b, 0x8236bd30}, - {0xea999c, 0x8236bd31}, - {0xea999d, 0x8236bd32}, - {0xea999e, 0x8236bd33}, - {0xea999f, 0x8236bd34}, - {0xea99a0, 0x8236bd35}, - {0xea99a1, 0x8236bd36}, - {0xea99a2, 0x8236bd37}, - {0xea99a3, 0x8236bd38}, - {0xea99a4, 0x8236bd39}, - {0xea99a5, 0x8236be30}, - {0xea99a6, 0x8236be31}, - {0xea99a7, 0x8236be32}, - {0xea99a8, 0x8236be33}, - {0xea99a9, 0x8236be34}, - {0xea99aa, 0x8236be35}, - {0xea99ab, 0x8236be36}, - {0xea99ac, 0x8236be37}, - {0xea99ad, 0x8236be38}, - {0xea99ae, 0x8236be39}, - {0xea99af, 0x8236bf30}, - {0xea99b0, 0x8236bf31}, - {0xea99b1, 0x8236bf32}, - {0xea99b2, 0x8236bf33}, - {0xea99b3, 0x8236bf34}, - {0xea99b4, 0x8236bf35}, - {0xea99b5, 0x8236bf36}, - {0xea99b6, 0x8236bf37}, - {0xea99b7, 0x8236bf38}, - {0xea99b8, 0x8236bf39}, - {0xea99b9, 0x8236c030}, - {0xea99ba, 0x8236c031}, - {0xea99bb, 0x8236c032}, - {0xea99bc, 0x8236c033}, - {0xea99bd, 0x8236c034}, - {0xea99be, 0x8236c035}, - {0xea99bf, 0x8236c036}, - {0xea9a80, 0x8236c037}, - {0xea9a81, 0x8236c038}, - {0xea9a82, 0x8236c039}, - {0xea9a83, 0x8236c130}, - {0xea9a84, 0x8236c131}, - {0xea9a85, 0x8236c132}, - {0xea9a86, 0x8236c133}, - {0xea9a87, 0x8236c134}, - {0xea9a88, 0x8236c135}, - {0xea9a89, 0x8236c136}, - {0xea9a8a, 0x8236c137}, - {0xea9a8b, 0x8236c138}, - {0xea9a8c, 0x8236c139}, - {0xea9a8d, 0x8236c230}, - {0xea9a8e, 0x8236c231}, - {0xea9a8f, 0x8236c232}, - {0xea9a90, 0x8236c233}, - {0xea9a91, 0x8236c234}, - {0xea9a92, 0x8236c235}, - {0xea9a93, 0x8236c236}, - {0xea9a94, 0x8236c237}, - {0xea9a95, 0x8236c238}, - {0xea9a96, 0x8236c239}, - {0xea9a97, 0x8236c330}, - {0xea9a98, 0x8236c331}, - {0xea9a99, 0x8236c332}, - {0xea9a9a, 0x8236c333}, - {0xea9a9b, 0x8236c334}, - {0xea9a9c, 0x8236c335}, - {0xea9a9d, 0x8236c336}, - {0xea9a9e, 0x8236c337}, - {0xea9a9f, 0x8236c338}, - {0xea9aa0, 0x8236c339}, - {0xea9aa1, 0x8236c430}, - {0xea9aa2, 0x8236c431}, - {0xea9aa3, 0x8236c432}, - {0xea9aa4, 0x8236c433}, - {0xea9aa5, 0x8236c434}, - {0xea9aa6, 0x8236c435}, - {0xea9aa7, 0x8236c436}, - {0xea9aa8, 0x8236c437}, - {0xea9aa9, 0x8236c438}, - {0xea9aaa, 0x8236c439}, - {0xea9aab, 0x8236c530}, - {0xea9aac, 0x8236c531}, - {0xea9aad, 0x8236c532}, - {0xea9aae, 0x8236c533}, - {0xea9aaf, 0x8236c534}, - {0xea9ab0, 0x8236c535}, - {0xea9ab1, 0x8236c536}, - {0xea9ab2, 0x8236c537}, - {0xea9ab3, 0x8236c538}, - {0xea9ab4, 0x8236c539}, - {0xea9ab5, 0x8236c630}, - {0xea9ab6, 0x8236c631}, - {0xea9ab7, 0x8236c632}, - {0xea9ab8, 0x8236c633}, - {0xea9ab9, 0x8236c634}, - {0xea9aba, 0x8236c635}, - {0xea9abb, 0x8236c636}, - {0xea9abc, 0x8236c637}, - {0xea9abd, 0x8236c638}, - {0xea9abe, 0x8236c639}, - {0xea9abf, 0x8236c730}, - {0xea9b80, 0x8236c731}, - {0xea9b81, 0x8236c732}, - {0xea9b82, 0x8236c733}, - {0xea9b83, 0x8236c734}, - {0xea9b84, 0x8236c735}, - {0xea9b85, 0x8236c736}, - {0xea9b86, 0x8236c737}, - {0xea9b87, 0x8236c738}, - {0xea9b88, 0x8236c739}, - {0xea9b89, 0x8236c830}, - {0xea9b8a, 0x8236c831}, - {0xea9b8b, 0x8236c832}, - {0xea9b8c, 0x8236c833}, - {0xea9b8d, 0x8236c834}, - {0xea9b8e, 0x8236c835}, - {0xea9b8f, 0x8236c836}, - {0xea9b90, 0x8236c837}, - {0xea9b91, 0x8236c838}, - {0xea9b92, 0x8236c839}, - {0xea9b93, 0x8236c930}, - {0xea9b94, 0x8236c931}, - {0xea9b95, 0x8236c932}, - {0xea9b96, 0x8236c933}, - {0xea9b97, 0x8236c934}, - {0xea9b98, 0x8236c935}, - {0xea9b99, 0x8236c936}, - {0xea9b9a, 0x8236c937}, - {0xea9b9b, 0x8236c938}, - {0xea9b9c, 0x8236c939}, - {0xea9b9d, 0x8236ca30}, - {0xea9b9e, 0x8236ca31}, - {0xea9b9f, 0x8236ca32}, - {0xea9ba0, 0x8236ca33}, - {0xea9ba1, 0x8236ca34}, - {0xea9ba2, 0x8236ca35}, - {0xea9ba3, 0x8236ca36}, - {0xea9ba4, 0x8236ca37}, - {0xea9ba5, 0x8236ca38}, - {0xea9ba6, 0x8236ca39}, - {0xea9ba7, 0x8236cb30}, - {0xea9ba8, 0x8236cb31}, - {0xea9ba9, 0x8236cb32}, - {0xea9baa, 0x8236cb33}, - {0xea9bab, 0x8236cb34}, - {0xea9bac, 0x8236cb35}, - {0xea9bad, 0x8236cb36}, - {0xea9bae, 0x8236cb37}, - {0xea9baf, 0x8236cb38}, - {0xea9bb0, 0x8236cb39}, - {0xea9bb1, 0x8236cc30}, - {0xea9bb2, 0x8236cc31}, - {0xea9bb3, 0x8236cc32}, - {0xea9bb4, 0x8236cc33}, - {0xea9bb5, 0x8236cc34}, - {0xea9bb6, 0x8236cc35}, - {0xea9bb7, 0x8236cc36}, - {0xea9bb8, 0x8236cc37}, - {0xea9bb9, 0x8236cc38}, - {0xea9bba, 0x8236cc39}, - {0xea9bbb, 0x8236cd30}, - {0xea9bbc, 0x8236cd31}, - {0xea9bbd, 0x8236cd32}, - {0xea9bbe, 0x8236cd33}, - {0xea9bbf, 0x8236cd34}, - {0xea9c80, 0x8236cd35}, - {0xea9c81, 0x8236cd36}, - {0xea9c82, 0x8236cd37}, - {0xea9c83, 0x8236cd38}, - {0xea9c84, 0x8236cd39}, - {0xea9c85, 0x8236ce30}, - {0xea9c86, 0x8236ce31}, - {0xea9c87, 0x8236ce32}, - {0xea9c88, 0x8236ce33}, - {0xea9c89, 0x8236ce34}, - {0xea9c8a, 0x8236ce35}, - {0xea9c8b, 0x8236ce36}, - {0xea9c8c, 0x8236ce37}, - {0xea9c8d, 0x8236ce38}, - {0xea9c8e, 0x8236ce39}, - {0xea9c8f, 0x8236cf30}, - {0xea9c90, 0x8236cf31}, - {0xea9c91, 0x8236cf32}, - {0xea9c92, 0x8236cf33}, - {0xea9c93, 0x8236cf34}, - {0xea9c94, 0x8236cf35}, - {0xea9c95, 0x8236cf36}, - {0xea9c96, 0x8236cf37}, - {0xea9c97, 0x8236cf38}, - {0xea9c98, 0x8236cf39}, - {0xea9c99, 0x8236d030}, - {0xea9c9a, 0x8236d031}, - {0xea9c9b, 0x8236d032}, - {0xea9c9c, 0x8236d033}, - {0xea9c9d, 0x8236d034}, - {0xea9c9e, 0x8236d035}, - {0xea9c9f, 0x8236d036}, - {0xea9ca0, 0x8236d037}, - {0xea9ca1, 0x8236d038}, - {0xea9ca2, 0x8236d039}, - {0xea9ca3, 0x8236d130}, - {0xea9ca4, 0x8236d131}, - {0xea9ca5, 0x8236d132}, - {0xea9ca6, 0x8236d133}, - {0xea9ca7, 0x8236d134}, - {0xea9ca8, 0x8236d135}, - {0xea9ca9, 0x8236d136}, - {0xea9caa, 0x8236d137}, - {0xea9cab, 0x8236d138}, - {0xea9cac, 0x8236d139}, - {0xea9cad, 0x8236d230}, - {0xea9cae, 0x8236d231}, - {0xea9caf, 0x8236d232}, - {0xea9cb0, 0x8236d233}, - {0xea9cb1, 0x8236d234}, - {0xea9cb2, 0x8236d235}, - {0xea9cb3, 0x8236d236}, - {0xea9cb4, 0x8236d237}, - {0xea9cb5, 0x8236d238}, - {0xea9cb6, 0x8236d239}, - {0xea9cb7, 0x8236d330}, - {0xea9cb8, 0x8236d331}, - {0xea9cb9, 0x8236d332}, - {0xea9cba, 0x8236d333}, - {0xea9cbb, 0x8236d334}, - {0xea9cbc, 0x8236d335}, - {0xea9cbd, 0x8236d336}, - {0xea9cbe, 0x8236d337}, - {0xea9cbf, 0x8236d338}, - {0xea9d80, 0x8236d339}, - {0xea9d81, 0x8236d430}, - {0xea9d82, 0x8236d431}, - {0xea9d83, 0x8236d432}, - {0xea9d84, 0x8236d433}, - {0xea9d85, 0x8236d434}, - {0xea9d86, 0x8236d435}, - {0xea9d87, 0x8236d436}, - {0xea9d88, 0x8236d437}, - {0xea9d89, 0x8236d438}, - {0xea9d8a, 0x8236d439}, - {0xea9d8b, 0x8236d530}, - {0xea9d8c, 0x8236d531}, - {0xea9d8d, 0x8236d532}, - {0xea9d8e, 0x8236d533}, - {0xea9d8f, 0x8236d534}, - {0xea9d90, 0x8236d535}, - {0xea9d91, 0x8236d536}, - {0xea9d92, 0x8236d537}, - {0xea9d93, 0x8236d538}, - {0xea9d94, 0x8236d539}, - {0xea9d95, 0x8236d630}, - {0xea9d96, 0x8236d631}, - {0xea9d97, 0x8236d632}, - {0xea9d98, 0x8236d633}, - {0xea9d99, 0x8236d634}, - {0xea9d9a, 0x8236d635}, - {0xea9d9b, 0x8236d636}, - {0xea9d9c, 0x8236d637}, - {0xea9d9d, 0x8236d638}, - {0xea9d9e, 0x8236d639}, - {0xea9d9f, 0x8236d730}, - {0xea9da0, 0x8236d731}, - {0xea9da1, 0x8236d732}, - {0xea9da2, 0x8236d733}, - {0xea9da3, 0x8236d734}, - {0xea9da4, 0x8236d735}, - {0xea9da5, 0x8236d736}, - {0xea9da6, 0x8236d737}, - {0xea9da7, 0x8236d738}, - {0xea9da8, 0x8236d739}, - {0xea9da9, 0x8236d830}, - {0xea9daa, 0x8236d831}, - {0xea9dab, 0x8236d832}, - {0xea9dac, 0x8236d833}, - {0xea9dad, 0x8236d834}, - {0xea9dae, 0x8236d835}, - {0xea9daf, 0x8236d836}, - {0xea9db0, 0x8236d837}, - {0xea9db1, 0x8236d838}, - {0xea9db2, 0x8236d839}, - {0xea9db3, 0x8236d930}, - {0xea9db4, 0x8236d931}, - {0xea9db5, 0x8236d932}, - {0xea9db6, 0x8236d933}, - {0xea9db7, 0x8236d934}, - {0xea9db8, 0x8236d935}, - {0xea9db9, 0x8236d936}, - {0xea9dba, 0x8236d937}, - {0xea9dbb, 0x8236d938}, - {0xea9dbc, 0x8236d939}, - {0xea9dbd, 0x8236da30}, - {0xea9dbe, 0x8236da31}, - {0xea9dbf, 0x8236da32}, - {0xea9e80, 0x8236da33}, - {0xea9e81, 0x8236da34}, - {0xea9e82, 0x8236da35}, - {0xea9e83, 0x8236da36}, - {0xea9e84, 0x8236da37}, - {0xea9e85, 0x8236da38}, - {0xea9e86, 0x8236da39}, - {0xea9e87, 0x8236db30}, - {0xea9e88, 0x8236db31}, - {0xea9e89, 0x8236db32}, - {0xea9e8a, 0x8236db33}, - {0xea9e8b, 0x8236db34}, - {0xea9e8c, 0x8236db35}, - {0xea9e8d, 0x8236db36}, - {0xea9e8e, 0x8236db37}, - {0xea9e8f, 0x8236db38}, - {0xea9e90, 0x8236db39}, - {0xea9e91, 0x8236dc30}, - {0xea9e92, 0x8236dc31}, - {0xea9e93, 0x8236dc32}, - {0xea9e94, 0x8236dc33}, - {0xea9e95, 0x8236dc34}, - {0xea9e96, 0x8236dc35}, - {0xea9e97, 0x8236dc36}, - {0xea9e98, 0x8236dc37}, - {0xea9e99, 0x8236dc38}, - {0xea9e9a, 0x8236dc39}, - {0xea9e9b, 0x8236dd30}, - {0xea9e9c, 0x8236dd31}, - {0xea9e9d, 0x8236dd32}, - {0xea9e9e, 0x8236dd33}, - {0xea9e9f, 0x8236dd34}, - {0xea9ea0, 0x8236dd35}, - {0xea9ea1, 0x8236dd36}, - {0xea9ea2, 0x8236dd37}, - {0xea9ea3, 0x8236dd38}, - {0xea9ea4, 0x8236dd39}, - {0xea9ea5, 0x8236de30}, - {0xea9ea6, 0x8236de31}, - {0xea9ea7, 0x8236de32}, - {0xea9ea8, 0x8236de33}, - {0xea9ea9, 0x8236de34}, - {0xea9eaa, 0x8236de35}, - {0xea9eab, 0x8236de36}, - {0xea9eac, 0x8236de37}, - {0xea9ead, 0x8236de38}, - {0xea9eae, 0x8236de39}, - {0xea9eaf, 0x8236df30}, - {0xea9eb0, 0x8236df31}, - {0xea9eb1, 0x8236df32}, - {0xea9eb2, 0x8236df33}, - {0xea9eb3, 0x8236df34}, - {0xea9eb4, 0x8236df35}, - {0xea9eb5, 0x8236df36}, - {0xea9eb6, 0x8236df37}, - {0xea9eb7, 0x8236df38}, - {0xea9eb8, 0x8236df39}, - {0xea9eb9, 0x8236e030}, - {0xea9eba, 0x8236e031}, - {0xea9ebb, 0x8236e032}, - {0xea9ebc, 0x8236e033}, - {0xea9ebd, 0x8236e034}, - {0xea9ebe, 0x8236e035}, - {0xea9ebf, 0x8236e036}, - {0xea9f80, 0x8236e037}, - {0xea9f81, 0x8236e038}, - {0xea9f82, 0x8236e039}, - {0xea9f83, 0x8236e130}, - {0xea9f84, 0x8236e131}, - {0xea9f85, 0x8236e132}, - {0xea9f86, 0x8236e133}, - {0xea9f87, 0x8236e134}, - {0xea9f88, 0x8236e135}, - {0xea9f89, 0x8236e136}, - {0xea9f8a, 0x8236e137}, - {0xea9f8b, 0x8236e138}, - {0xea9f8c, 0x8236e139}, - {0xea9f8d, 0x8236e230}, - {0xea9f8e, 0x8236e231}, - {0xea9f8f, 0x8236e232}, - {0xea9f90, 0x8236e233}, - {0xea9f91, 0x8236e234}, - {0xea9f92, 0x8236e235}, - {0xea9f93, 0x8236e236}, - {0xea9f94, 0x8236e237}, - {0xea9f95, 0x8236e238}, - {0xea9f96, 0x8236e239}, - {0xea9f97, 0x8236e330}, - {0xea9f98, 0x8236e331}, - {0xea9f99, 0x8236e332}, - {0xea9f9a, 0x8236e333}, - {0xea9f9b, 0x8236e334}, - {0xea9f9c, 0x8236e335}, - {0xea9f9d, 0x8236e336}, - {0xea9f9e, 0x8236e337}, - {0xea9f9f, 0x8236e338}, - {0xea9fa0, 0x8236e339}, - {0xea9fa1, 0x8236e430}, - {0xea9fa2, 0x8236e431}, - {0xea9fa3, 0x8236e432}, - {0xea9fa4, 0x8236e433}, - {0xea9fa5, 0x8236e434}, - {0xea9fa6, 0x8236e435}, - {0xea9fa7, 0x8236e436}, - {0xea9fa8, 0x8236e437}, - {0xea9fa9, 0x8236e438}, - {0xea9faa, 0x8236e439}, - {0xea9fab, 0x8236e530}, - {0xea9fac, 0x8236e531}, - {0xea9fad, 0x8236e532}, - {0xea9fae, 0x8236e533}, - {0xea9faf, 0x8236e534}, - {0xea9fb0, 0x8236e535}, - {0xea9fb1, 0x8236e536}, - {0xea9fb2, 0x8236e537}, - {0xea9fb3, 0x8236e538}, - {0xea9fb4, 0x8236e539}, - {0xea9fb5, 0x8236e630}, - {0xea9fb6, 0x8236e631}, - {0xea9fb7, 0x8236e632}, - {0xea9fb8, 0x8236e633}, - {0xea9fb9, 0x8236e634}, - {0xea9fba, 0x8236e635}, - {0xea9fbb, 0x8236e636}, - {0xea9fbc, 0x8236e637}, - {0xea9fbd, 0x8236e638}, - {0xea9fbe, 0x8236e639}, - {0xea9fbf, 0x8236e730}, - {0xeaa080, 0x8236e731}, - {0xeaa081, 0x8236e732}, - {0xeaa082, 0x8236e733}, - {0xeaa083, 0x8236e734}, - {0xeaa084, 0x8236e735}, - {0xeaa085, 0x8236e736}, - {0xeaa086, 0x8236e737}, - {0xeaa087, 0x8236e738}, - {0xeaa088, 0x8236e739}, - {0xeaa089, 0x8236e830}, - {0xeaa08a, 0x8236e831}, - {0xeaa08b, 0x8236e832}, - {0xeaa08c, 0x8236e833}, - {0xeaa08d, 0x8236e834}, - {0xeaa08e, 0x8236e835}, - {0xeaa08f, 0x8236e836}, - {0xeaa090, 0x8236e837}, - {0xeaa091, 0x8236e838}, - {0xeaa092, 0x8236e839}, - {0xeaa093, 0x8236e930}, - {0xeaa094, 0x8236e931}, - {0xeaa095, 0x8236e932}, - {0xeaa096, 0x8236e933}, - {0xeaa097, 0x8236e934}, - {0xeaa098, 0x8236e935}, - {0xeaa099, 0x8236e936}, - {0xeaa09a, 0x8236e937}, - {0xeaa09b, 0x8236e938}, - {0xeaa09c, 0x8236e939}, - {0xeaa09d, 0x8236ea30}, - {0xeaa09e, 0x8236ea31}, - {0xeaa09f, 0x8236ea32}, - {0xeaa0a0, 0x8236ea33}, - {0xeaa0a1, 0x8236ea34}, - {0xeaa0a2, 0x8236ea35}, - {0xeaa0a3, 0x8236ea36}, - {0xeaa0a4, 0x8236ea37}, - {0xeaa0a5, 0x8236ea38}, - {0xeaa0a6, 0x8236ea39}, - {0xeaa0a7, 0x8236eb30}, - {0xeaa0a8, 0x8236eb31}, - {0xeaa0a9, 0x8236eb32}, - {0xeaa0aa, 0x8236eb33}, - {0xeaa0ab, 0x8236eb34}, - {0xeaa0ac, 0x8236eb35}, - {0xeaa0ad, 0x8236eb36}, - {0xeaa0ae, 0x8236eb37}, - {0xeaa0af, 0x8236eb38}, - {0xeaa0b0, 0x8236eb39}, - {0xeaa0b1, 0x8236ec30}, - {0xeaa0b2, 0x8236ec31}, - {0xeaa0b3, 0x8236ec32}, - {0xeaa0b4, 0x8236ec33}, - {0xeaa0b5, 0x8236ec34}, - {0xeaa0b6, 0x8236ec35}, - {0xeaa0b7, 0x8236ec36}, - {0xeaa0b8, 0x8236ec37}, - {0xeaa0b9, 0x8236ec38}, - {0xeaa0ba, 0x8236ec39}, - {0xeaa0bb, 0x8236ed30}, - {0xeaa0bc, 0x8236ed31}, - {0xeaa0bd, 0x8236ed32}, - {0xeaa0be, 0x8236ed33}, - {0xeaa0bf, 0x8236ed34}, - {0xeaa180, 0x8236ed35}, - {0xeaa181, 0x8236ed36}, - {0xeaa182, 0x8236ed37}, - {0xeaa183, 0x8236ed38}, - {0xeaa184, 0x8236ed39}, - {0xeaa185, 0x8236ee30}, - {0xeaa186, 0x8236ee31}, - {0xeaa187, 0x8236ee32}, - {0xeaa188, 0x8236ee33}, - {0xeaa189, 0x8236ee34}, - {0xeaa18a, 0x8236ee35}, - {0xeaa18b, 0x8236ee36}, - {0xeaa18c, 0x8236ee37}, - {0xeaa18d, 0x8236ee38}, - {0xeaa18e, 0x8236ee39}, - {0xeaa18f, 0x8236ef30}, - {0xeaa190, 0x8236ef31}, - {0xeaa191, 0x8236ef32}, - {0xeaa192, 0x8236ef33}, - {0xeaa193, 0x8236ef34}, - {0xeaa194, 0x8236ef35}, - {0xeaa195, 0x8236ef36}, - {0xeaa196, 0x8236ef37}, - {0xeaa197, 0x8236ef38}, - {0xeaa198, 0x8236ef39}, - {0xeaa199, 0x8236f030}, - {0xeaa19a, 0x8236f031}, - {0xeaa19b, 0x8236f032}, - {0xeaa19c, 0x8236f033}, - {0xeaa19d, 0x8236f034}, - {0xeaa19e, 0x8236f035}, - {0xeaa19f, 0x8236f036}, - {0xeaa1a0, 0x8236f037}, - {0xeaa1a1, 0x8236f038}, - {0xeaa1a2, 0x8236f039}, - {0xeaa1a3, 0x8236f130}, - {0xeaa1a4, 0x8236f131}, - {0xeaa1a5, 0x8236f132}, - {0xeaa1a6, 0x8236f133}, - {0xeaa1a7, 0x8236f134}, - {0xeaa1a8, 0x8236f135}, - {0xeaa1a9, 0x8236f136}, - {0xeaa1aa, 0x8236f137}, - {0xeaa1ab, 0x8236f138}, - {0xeaa1ac, 0x8236f139}, - {0xeaa1ad, 0x8236f230}, - {0xeaa1ae, 0x8236f231}, - {0xeaa1af, 0x8236f232}, - {0xeaa1b0, 0x8236f233}, - {0xeaa1b1, 0x8236f234}, - {0xeaa1b2, 0x8236f235}, - {0xeaa1b3, 0x8236f236}, - {0xeaa1b4, 0x8236f237}, - {0xeaa1b5, 0x8236f238}, - {0xeaa1b6, 0x8236f239}, - {0xeaa1b7, 0x8236f330}, - {0xeaa1b8, 0x8236f331}, - {0xeaa1b9, 0x8236f332}, - {0xeaa1ba, 0x8236f333}, - {0xeaa1bb, 0x8236f334}, - {0xeaa1bc, 0x8236f335}, - {0xeaa1bd, 0x8236f336}, - {0xeaa1be, 0x8236f337}, - {0xeaa1bf, 0x8236f338}, - {0xeaa280, 0x8236f339}, - {0xeaa281, 0x8236f430}, - {0xeaa282, 0x8236f431}, - {0xeaa283, 0x8236f432}, - {0xeaa284, 0x8236f433}, - {0xeaa285, 0x8236f434}, - {0xeaa286, 0x8236f435}, - {0xeaa287, 0x8236f436}, - {0xeaa288, 0x8236f437}, - {0xeaa289, 0x8236f438}, - {0xeaa28a, 0x8236f439}, - {0xeaa28b, 0x8236f530}, - {0xeaa28c, 0x8236f531}, - {0xeaa28d, 0x8236f532}, - {0xeaa28e, 0x8236f533}, - {0xeaa28f, 0x8236f534}, - {0xeaa290, 0x8236f535}, - {0xeaa291, 0x8236f536}, - {0xeaa292, 0x8236f537}, - {0xeaa293, 0x8236f538}, - {0xeaa294, 0x8236f539}, - {0xeaa295, 0x8236f630}, - {0xeaa296, 0x8236f631}, - {0xeaa297, 0x8236f632}, - {0xeaa298, 0x8236f633}, - {0xeaa299, 0x8236f634}, - {0xeaa29a, 0x8236f635}, - {0xeaa29b, 0x8236f636}, - {0xeaa29c, 0x8236f637}, - {0xeaa29d, 0x8236f638}, - {0xeaa29e, 0x8236f639}, - {0xeaa29f, 0x8236f730}, - {0xeaa2a0, 0x8236f731}, - {0xeaa2a1, 0x8236f732}, - {0xeaa2a2, 0x8236f733}, - {0xeaa2a3, 0x8236f734}, - {0xeaa2a4, 0x8236f735}, - {0xeaa2a5, 0x8236f736}, - {0xeaa2a6, 0x8236f737}, - {0xeaa2a7, 0x8236f738}, - {0xeaa2a8, 0x8236f739}, - {0xeaa2a9, 0x8236f830}, - {0xeaa2aa, 0x8236f831}, - {0xeaa2ab, 0x8236f832}, - {0xeaa2ac, 0x8236f833}, - {0xeaa2ad, 0x8236f834}, - {0xeaa2ae, 0x8236f835}, - {0xeaa2af, 0x8236f836}, - {0xeaa2b0, 0x8236f837}, - {0xeaa2b1, 0x8236f838}, - {0xeaa2b2, 0x8236f839}, - {0xeaa2b3, 0x8236f930}, - {0xeaa2b4, 0x8236f931}, - {0xeaa2b5, 0x8236f932}, - {0xeaa2b6, 0x8236f933}, - {0xeaa2b7, 0x8236f934}, - {0xeaa2b8, 0x8236f935}, - {0xeaa2b9, 0x8236f936}, - {0xeaa2ba, 0x8236f937}, - {0xeaa2bb, 0x8236f938}, - {0xeaa2bc, 0x8236f939}, - {0xeaa2bd, 0x8236fa30}, - {0xeaa2be, 0x8236fa31}, - {0xeaa2bf, 0x8236fa32}, - {0xeaa380, 0x8236fa33}, - {0xeaa381, 0x8236fa34}, - {0xeaa382, 0x8236fa35}, - {0xeaa383, 0x8236fa36}, - {0xeaa384, 0x8236fa37}, - {0xeaa385, 0x8236fa38}, - {0xeaa386, 0x8236fa39}, - {0xeaa387, 0x8236fb30}, - {0xeaa388, 0x8236fb31}, - {0xeaa389, 0x8236fb32}, - {0xeaa38a, 0x8236fb33}, - {0xeaa38b, 0x8236fb34}, - {0xeaa38c, 0x8236fb35}, - {0xeaa38d, 0x8236fb36}, - {0xeaa38e, 0x8236fb37}, - {0xeaa38f, 0x8236fb38}, - {0xeaa390, 0x8236fb39}, - {0xeaa391, 0x8236fc30}, - {0xeaa392, 0x8236fc31}, - {0xeaa393, 0x8236fc32}, - {0xeaa394, 0x8236fc33}, - {0xeaa395, 0x8236fc34}, - {0xeaa396, 0x8236fc35}, - {0xeaa397, 0x8236fc36}, - {0xeaa398, 0x8236fc37}, - {0xeaa399, 0x8236fc38}, - {0xeaa39a, 0x8236fc39}, - {0xeaa39b, 0x8236fd30}, - {0xeaa39c, 0x8236fd31}, - {0xeaa39d, 0x8236fd32}, - {0xeaa39e, 0x8236fd33}, - {0xeaa39f, 0x8236fd34}, - {0xeaa3a0, 0x8236fd35}, - {0xeaa3a1, 0x8236fd36}, - {0xeaa3a2, 0x8236fd37}, - {0xeaa3a3, 0x8236fd38}, - {0xeaa3a4, 0x8236fd39}, - {0xeaa3a5, 0x8236fe30}, - {0xeaa3a6, 0x8236fe31}, - {0xeaa3a7, 0x8236fe32}, - {0xeaa3a8, 0x8236fe33}, - {0xeaa3a9, 0x8236fe34}, - {0xeaa3aa, 0x8236fe35}, - {0xeaa3ab, 0x8236fe36}, - {0xeaa3ac, 0x8236fe37}, - {0xeaa3ad, 0x8236fe38}, - {0xeaa3ae, 0x8236fe39}, - {0xeaa3af, 0x82378130}, - {0xeaa3b0, 0x82378131}, - {0xeaa3b1, 0x82378132}, - {0xeaa3b2, 0x82378133}, - {0xeaa3b3, 0x82378134}, - {0xeaa3b4, 0x82378135}, - {0xeaa3b5, 0x82378136}, - {0xeaa3b6, 0x82378137}, - {0xeaa3b7, 0x82378138}, - {0xeaa3b8, 0x82378139}, - {0xeaa3b9, 0x82378230}, - {0xeaa3ba, 0x82378231}, - {0xeaa3bb, 0x82378232}, - {0xeaa3bc, 0x82378233}, - {0xeaa3bd, 0x82378234}, - {0xeaa3be, 0x82378235}, - {0xeaa3bf, 0x82378236}, - {0xeaa480, 0x82378237}, - {0xeaa481, 0x82378238}, - {0xeaa482, 0x82378239}, - {0xeaa483, 0x82378330}, - {0xeaa484, 0x82378331}, - {0xeaa485, 0x82378332}, - {0xeaa486, 0x82378333}, - {0xeaa487, 0x82378334}, - {0xeaa488, 0x82378335}, - {0xeaa489, 0x82378336}, - {0xeaa48a, 0x82378337}, - {0xeaa48b, 0x82378338}, - {0xeaa48c, 0x82378339}, - {0xeaa48d, 0x82378430}, - {0xeaa48e, 0x82378431}, - {0xeaa48f, 0x82378432}, - {0xeaa490, 0x82378433}, - {0xeaa491, 0x82378434}, - {0xeaa492, 0x82378435}, - {0xeaa493, 0x82378436}, - {0xeaa494, 0x82378437}, - {0xeaa495, 0x82378438}, - {0xeaa496, 0x82378439}, - {0xeaa497, 0x82378530}, - {0xeaa498, 0x82378531}, - {0xeaa499, 0x82378532}, - {0xeaa49a, 0x82378533}, - {0xeaa49b, 0x82378534}, - {0xeaa49c, 0x82378535}, - {0xeaa49d, 0x82378536}, - {0xeaa49e, 0x82378537}, - {0xeaa49f, 0x82378538}, - {0xeaa4a0, 0x82378539}, - {0xeaa4a1, 0x82378630}, - {0xeaa4a2, 0x82378631}, - {0xeaa4a3, 0x82378632}, - {0xeaa4a4, 0x82378633}, - {0xeaa4a5, 0x82378634}, - {0xeaa4a6, 0x82378635}, - {0xeaa4a7, 0x82378636}, - {0xeaa4a8, 0x82378637}, - {0xeaa4a9, 0x82378638}, - {0xeaa4aa, 0x82378639}, - {0xeaa4ab, 0x82378730}, - {0xeaa4ac, 0x82378731}, - {0xeaa4ad, 0x82378732}, - {0xeaa4ae, 0x82378733}, - {0xeaa4af, 0x82378734}, - {0xeaa4b0, 0x82378735}, - {0xeaa4b1, 0x82378736}, - {0xeaa4b2, 0x82378737}, - {0xeaa4b3, 0x82378738}, - {0xeaa4b4, 0x82378739}, - {0xeaa4b5, 0x82378830}, - {0xeaa4b6, 0x82378831}, - {0xeaa4b7, 0x82378832}, - {0xeaa4b8, 0x82378833}, - {0xeaa4b9, 0x82378834}, - {0xeaa4ba, 0x82378835}, - {0xeaa4bb, 0x82378836}, - {0xeaa4bc, 0x82378837}, - {0xeaa4bd, 0x82378838}, - {0xeaa4be, 0x82378839}, - {0xeaa4bf, 0x82378930}, - {0xeaa580, 0x82378931}, - {0xeaa581, 0x82378932}, - {0xeaa582, 0x82378933}, - {0xeaa583, 0x82378934}, - {0xeaa584, 0x82378935}, - {0xeaa585, 0x82378936}, - {0xeaa586, 0x82378937}, - {0xeaa587, 0x82378938}, - {0xeaa588, 0x82378939}, - {0xeaa589, 0x82378a30}, - {0xeaa58a, 0x82378a31}, - {0xeaa58b, 0x82378a32}, - {0xeaa58c, 0x82378a33}, - {0xeaa58d, 0x82378a34}, - {0xeaa58e, 0x82378a35}, - {0xeaa58f, 0x82378a36}, - {0xeaa590, 0x82378a37}, - {0xeaa591, 0x82378a38}, - {0xeaa592, 0x82378a39}, - {0xeaa593, 0x82378b30}, - {0xeaa594, 0x82378b31}, - {0xeaa595, 0x82378b32}, - {0xeaa596, 0x82378b33}, - {0xeaa597, 0x82378b34}, - {0xeaa598, 0x82378b35}, - {0xeaa599, 0x82378b36}, - {0xeaa59a, 0x82378b37}, - {0xeaa59b, 0x82378b38}, - {0xeaa59c, 0x82378b39}, - {0xeaa59d, 0x82378c30}, - {0xeaa59e, 0x82378c31}, - {0xeaa59f, 0x82378c32}, - {0xeaa5a0, 0x82378c33}, - {0xeaa5a1, 0x82378c34}, - {0xeaa5a2, 0x82378c35}, - {0xeaa5a3, 0x82378c36}, - {0xeaa5a4, 0x82378c37}, - {0xeaa5a5, 0x82378c38}, - {0xeaa5a6, 0x82378c39}, - {0xeaa5a7, 0x82378d30}, - {0xeaa5a8, 0x82378d31}, - {0xeaa5a9, 0x82378d32}, - {0xeaa5aa, 0x82378d33}, - {0xeaa5ab, 0x82378d34}, - {0xeaa5ac, 0x82378d35}, - {0xeaa5ad, 0x82378d36}, - {0xeaa5ae, 0x82378d37}, - {0xeaa5af, 0x82378d38}, - {0xeaa5b0, 0x82378d39}, - {0xeaa5b1, 0x82378e30}, - {0xeaa5b2, 0x82378e31}, - {0xeaa5b3, 0x82378e32}, - {0xeaa5b4, 0x82378e33}, - {0xeaa5b5, 0x82378e34}, - {0xeaa5b6, 0x82378e35}, - {0xeaa5b7, 0x82378e36}, - {0xeaa5b8, 0x82378e37}, - {0xeaa5b9, 0x82378e38}, - {0xeaa5ba, 0x82378e39}, - {0xeaa5bb, 0x82378f30}, - {0xeaa5bc, 0x82378f31}, - {0xeaa5bd, 0x82378f32}, - {0xeaa5be, 0x82378f33}, - {0xeaa5bf, 0x82378f34}, - {0xeaa680, 0x82378f35}, - {0xeaa681, 0x82378f36}, - {0xeaa682, 0x82378f37}, - {0xeaa683, 0x82378f38}, - {0xeaa684, 0x82378f39}, - {0xeaa685, 0x82379030}, - {0xeaa686, 0x82379031}, - {0xeaa687, 0x82379032}, - {0xeaa688, 0x82379033}, - {0xeaa689, 0x82379034}, - {0xeaa68a, 0x82379035}, - {0xeaa68b, 0x82379036}, - {0xeaa68c, 0x82379037}, - {0xeaa68d, 0x82379038}, - {0xeaa68e, 0x82379039}, - {0xeaa68f, 0x82379130}, - {0xeaa690, 0x82379131}, - {0xeaa691, 0x82379132}, - {0xeaa692, 0x82379133}, - {0xeaa693, 0x82379134}, - {0xeaa694, 0x82379135}, - {0xeaa695, 0x82379136}, - {0xeaa696, 0x82379137}, - {0xeaa697, 0x82379138}, - {0xeaa698, 0x82379139}, - {0xeaa699, 0x82379230}, - {0xeaa69a, 0x82379231}, - {0xeaa69b, 0x82379232}, - {0xeaa69c, 0x82379233}, - {0xeaa69d, 0x82379234}, - {0xeaa69e, 0x82379235}, - {0xeaa69f, 0x82379236}, - {0xeaa6a0, 0x82379237}, - {0xeaa6a1, 0x82379238}, - {0xeaa6a2, 0x82379239}, - {0xeaa6a3, 0x82379330}, - {0xeaa6a4, 0x82379331}, - {0xeaa6a5, 0x82379332}, - {0xeaa6a6, 0x82379333}, - {0xeaa6a7, 0x82379334}, - {0xeaa6a8, 0x82379335}, - {0xeaa6a9, 0x82379336}, - {0xeaa6aa, 0x82379337}, - {0xeaa6ab, 0x82379338}, - {0xeaa6ac, 0x82379339}, - {0xeaa6ad, 0x82379430}, - {0xeaa6ae, 0x82379431}, - {0xeaa6af, 0x82379432}, - {0xeaa6b0, 0x82379433}, - {0xeaa6b1, 0x82379434}, - {0xeaa6b2, 0x82379435}, - {0xeaa6b3, 0x82379436}, - {0xeaa6b4, 0x82379437}, - {0xeaa6b5, 0x82379438}, - {0xeaa6b6, 0x82379439}, - {0xeaa6b7, 0x82379530}, - {0xeaa6b8, 0x82379531}, - {0xeaa6b9, 0x82379532}, - {0xeaa6ba, 0x82379533}, - {0xeaa6bb, 0x82379534}, - {0xeaa6bc, 0x82379535}, - {0xeaa6bd, 0x82379536}, - {0xeaa6be, 0x82379537}, - {0xeaa6bf, 0x82379538}, - {0xeaa780, 0x82379539}, - {0xeaa781, 0x82379630}, - {0xeaa782, 0x82379631}, - {0xeaa783, 0x82379632}, - {0xeaa784, 0x82379633}, - {0xeaa785, 0x82379634}, - {0xeaa786, 0x82379635}, - {0xeaa787, 0x82379636}, - {0xeaa788, 0x82379637}, - {0xeaa789, 0x82379638}, - {0xeaa78a, 0x82379639}, - {0xeaa78b, 0x82379730}, - {0xeaa78c, 0x82379731}, - {0xeaa78d, 0x82379732}, - {0xeaa78e, 0x82379733}, - {0xeaa78f, 0x82379734}, - {0xeaa790, 0x82379735}, - {0xeaa791, 0x82379736}, - {0xeaa792, 0x82379737}, - {0xeaa793, 0x82379738}, - {0xeaa794, 0x82379739}, - {0xeaa795, 0x82379830}, - {0xeaa796, 0x82379831}, - {0xeaa797, 0x82379832}, - {0xeaa798, 0x82379833}, - {0xeaa799, 0x82379834}, - {0xeaa79a, 0x82379835}, - {0xeaa79b, 0x82379836}, - {0xeaa79c, 0x82379837}, - {0xeaa79d, 0x82379838}, - {0xeaa79e, 0x82379839}, - {0xeaa79f, 0x82379930}, - {0xeaa7a0, 0x82379931}, - {0xeaa7a1, 0x82379932}, - {0xeaa7a2, 0x82379933}, - {0xeaa7a3, 0x82379934}, - {0xeaa7a4, 0x82379935}, - {0xeaa7a5, 0x82379936}, - {0xeaa7a6, 0x82379937}, - {0xeaa7a7, 0x82379938}, - {0xeaa7a8, 0x82379939}, - {0xeaa7a9, 0x82379a30}, - {0xeaa7aa, 0x82379a31}, - {0xeaa7ab, 0x82379a32}, - {0xeaa7ac, 0x82379a33}, - {0xeaa7ad, 0x82379a34}, - {0xeaa7ae, 0x82379a35}, - {0xeaa7af, 0x82379a36}, - {0xeaa7b0, 0x82379a37}, - {0xeaa7b1, 0x82379a38}, - {0xeaa7b2, 0x82379a39}, - {0xeaa7b3, 0x82379b30}, - {0xeaa7b4, 0x82379b31}, - {0xeaa7b5, 0x82379b32}, - {0xeaa7b6, 0x82379b33}, - {0xeaa7b7, 0x82379b34}, - {0xeaa7b8, 0x82379b35}, - {0xeaa7b9, 0x82379b36}, - {0xeaa7ba, 0x82379b37}, - {0xeaa7bb, 0x82379b38}, - {0xeaa7bc, 0x82379b39}, - {0xeaa7bd, 0x82379c30}, - {0xeaa7be, 0x82379c31}, - {0xeaa7bf, 0x82379c32}, - {0xeaa880, 0x82379c33}, - {0xeaa881, 0x82379c34}, - {0xeaa882, 0x82379c35}, - {0xeaa883, 0x82379c36}, - {0xeaa884, 0x82379c37}, - {0xeaa885, 0x82379c38}, - {0xeaa886, 0x82379c39}, - {0xeaa887, 0x82379d30}, - {0xeaa888, 0x82379d31}, - {0xeaa889, 0x82379d32}, - {0xeaa88a, 0x82379d33}, - {0xeaa88b, 0x82379d34}, - {0xeaa88c, 0x82379d35}, - {0xeaa88d, 0x82379d36}, - {0xeaa88e, 0x82379d37}, - {0xeaa88f, 0x82379d38}, - {0xeaa890, 0x82379d39}, - {0xeaa891, 0x82379e30}, - {0xeaa892, 0x82379e31}, - {0xeaa893, 0x82379e32}, - {0xeaa894, 0x82379e33}, - {0xeaa895, 0x82379e34}, - {0xeaa896, 0x82379e35}, - {0xeaa897, 0x82379e36}, - {0xeaa898, 0x82379e37}, - {0xeaa899, 0x82379e38}, - {0xeaa89a, 0x82379e39}, - {0xeaa89b, 0x82379f30}, - {0xeaa89c, 0x82379f31}, - {0xeaa89d, 0x82379f32}, - {0xeaa89e, 0x82379f33}, - {0xeaa89f, 0x82379f34}, - {0xeaa8a0, 0x82379f35}, - {0xeaa8a1, 0x82379f36}, - {0xeaa8a2, 0x82379f37}, - {0xeaa8a3, 0x82379f38}, - {0xeaa8a4, 0x82379f39}, - {0xeaa8a5, 0x8237a030}, - {0xeaa8a6, 0x8237a031}, - {0xeaa8a7, 0x8237a032}, - {0xeaa8a8, 0x8237a033}, - {0xeaa8a9, 0x8237a034}, - {0xeaa8aa, 0x8237a035}, - {0xeaa8ab, 0x8237a036}, - {0xeaa8ac, 0x8237a037}, - {0xeaa8ad, 0x8237a038}, - {0xeaa8ae, 0x8237a039}, - {0xeaa8af, 0x8237a130}, - {0xeaa8b0, 0x8237a131}, - {0xeaa8b1, 0x8237a132}, - {0xeaa8b2, 0x8237a133}, - {0xeaa8b3, 0x8237a134}, - {0xeaa8b4, 0x8237a135}, - {0xeaa8b5, 0x8237a136}, - {0xeaa8b6, 0x8237a137}, - {0xeaa8b7, 0x8237a138}, - {0xeaa8b8, 0x8237a139}, - {0xeaa8b9, 0x8237a230}, - {0xeaa8ba, 0x8237a231}, - {0xeaa8bb, 0x8237a232}, - {0xeaa8bc, 0x8237a233}, - {0xeaa8bd, 0x8237a234}, - {0xeaa8be, 0x8237a235}, - {0xeaa8bf, 0x8237a236}, - {0xeaa980, 0x8237a237}, - {0xeaa981, 0x8237a238}, - {0xeaa982, 0x8237a239}, - {0xeaa983, 0x8237a330}, - {0xeaa984, 0x8237a331}, - {0xeaa985, 0x8237a332}, - {0xeaa986, 0x8237a333}, - {0xeaa987, 0x8237a334}, - {0xeaa988, 0x8237a335}, - {0xeaa989, 0x8237a336}, - {0xeaa98a, 0x8237a337}, - {0xeaa98b, 0x8237a338}, - {0xeaa98c, 0x8237a339}, - {0xeaa98d, 0x8237a430}, - {0xeaa98e, 0x8237a431}, - {0xeaa98f, 0x8237a432}, - {0xeaa990, 0x8237a433}, - {0xeaa991, 0x8237a434}, - {0xeaa992, 0x8237a435}, - {0xeaa993, 0x8237a436}, - {0xeaa994, 0x8237a437}, - {0xeaa995, 0x8237a438}, - {0xeaa996, 0x8237a439}, - {0xeaa997, 0x8237a530}, - {0xeaa998, 0x8237a531}, - {0xeaa999, 0x8237a532}, - {0xeaa99a, 0x8237a533}, - {0xeaa99b, 0x8237a534}, - {0xeaa99c, 0x8237a535}, - {0xeaa99d, 0x8237a536}, - {0xeaa99e, 0x8237a537}, - {0xeaa99f, 0x8237a538}, - {0xeaa9a0, 0x8237a539}, - {0xeaa9a1, 0x8237a630}, - {0xeaa9a2, 0x8237a631}, - {0xeaa9a3, 0x8237a632}, - {0xeaa9a4, 0x8237a633}, - {0xeaa9a5, 0x8237a634}, - {0xeaa9a6, 0x8237a635}, - {0xeaa9a7, 0x8237a636}, - {0xeaa9a8, 0x8237a637}, - {0xeaa9a9, 0x8237a638}, - {0xeaa9aa, 0x8237a639}, - {0xeaa9ab, 0x8237a730}, - {0xeaa9ac, 0x8237a731}, - {0xeaa9ad, 0x8237a732}, - {0xeaa9ae, 0x8237a733}, - {0xeaa9af, 0x8237a734}, - {0xeaa9b0, 0x8237a735}, - {0xeaa9b1, 0x8237a736}, - {0xeaa9b2, 0x8237a737}, - {0xeaa9b3, 0x8237a738}, - {0xeaa9b4, 0x8237a739}, - {0xeaa9b5, 0x8237a830}, - {0xeaa9b6, 0x8237a831}, - {0xeaa9b7, 0x8237a832}, - {0xeaa9b8, 0x8237a833}, - {0xeaa9b9, 0x8237a834}, - {0xeaa9ba, 0x8237a835}, - {0xeaa9bb, 0x8237a836}, - {0xeaa9bc, 0x8237a837}, - {0xeaa9bd, 0x8237a838}, - {0xeaa9be, 0x8237a839}, - {0xeaa9bf, 0x8237a930}, - {0xeaaa80, 0x8237a931}, - {0xeaaa81, 0x8237a932}, - {0xeaaa82, 0x8237a933}, - {0xeaaa83, 0x8237a934}, - {0xeaaa84, 0x8237a935}, - {0xeaaa85, 0x8237a936}, - {0xeaaa86, 0x8237a937}, - {0xeaaa87, 0x8237a938}, - {0xeaaa88, 0x8237a939}, - {0xeaaa89, 0x8237aa30}, - {0xeaaa8a, 0x8237aa31}, - {0xeaaa8b, 0x8237aa32}, - {0xeaaa8c, 0x8237aa33}, - {0xeaaa8d, 0x8237aa34}, - {0xeaaa8e, 0x8237aa35}, - {0xeaaa8f, 0x8237aa36}, - {0xeaaa90, 0x8237aa37}, - {0xeaaa91, 0x8237aa38}, - {0xeaaa92, 0x8237aa39}, - {0xeaaa93, 0x8237ab30}, - {0xeaaa94, 0x8237ab31}, - {0xeaaa95, 0x8237ab32}, - {0xeaaa96, 0x8237ab33}, - {0xeaaa97, 0x8237ab34}, - {0xeaaa98, 0x8237ab35}, - {0xeaaa99, 0x8237ab36}, - {0xeaaa9a, 0x8237ab37}, - {0xeaaa9b, 0x8237ab38}, - {0xeaaa9c, 0x8237ab39}, - {0xeaaa9d, 0x8237ac30}, - {0xeaaa9e, 0x8237ac31}, - {0xeaaa9f, 0x8237ac32}, - {0xeaaaa0, 0x8237ac33}, - {0xeaaaa1, 0x8237ac34}, - {0xeaaaa2, 0x8237ac35}, - {0xeaaaa3, 0x8237ac36}, - {0xeaaaa4, 0x8237ac37}, - {0xeaaaa5, 0x8237ac38}, - {0xeaaaa6, 0x8237ac39}, - {0xeaaaa7, 0x8237ad30}, - {0xeaaaa8, 0x8237ad31}, - {0xeaaaa9, 0x8237ad32}, - {0xeaaaaa, 0x8237ad33}, - {0xeaaaab, 0x8237ad34}, - {0xeaaaac, 0x8237ad35}, - {0xeaaaad, 0x8237ad36}, - {0xeaaaae, 0x8237ad37}, - {0xeaaaaf, 0x8237ad38}, - {0xeaaab0, 0x8237ad39}, - {0xeaaab1, 0x8237ae30}, - {0xeaaab2, 0x8237ae31}, - {0xeaaab3, 0x8237ae32}, - {0xeaaab4, 0x8237ae33}, - {0xeaaab5, 0x8237ae34}, - {0xeaaab6, 0x8237ae35}, - {0xeaaab7, 0x8237ae36}, - {0xeaaab8, 0x8237ae37}, - {0xeaaab9, 0x8237ae38}, - {0xeaaaba, 0x8237ae39}, - {0xeaaabb, 0x8237af30}, - {0xeaaabc, 0x8237af31}, - {0xeaaabd, 0x8237af32}, - {0xeaaabe, 0x8237af33}, - {0xeaaabf, 0x8237af34}, - {0xeaab80, 0x8237af35}, - {0xeaab81, 0x8237af36}, - {0xeaab82, 0x8237af37}, - {0xeaab83, 0x8237af38}, - {0xeaab84, 0x8237af39}, - {0xeaab85, 0x8237b030}, - {0xeaab86, 0x8237b031}, - {0xeaab87, 0x8237b032}, - {0xeaab88, 0x8237b033}, - {0xeaab89, 0x8237b034}, - {0xeaab8a, 0x8237b035}, - {0xeaab8b, 0x8237b036}, - {0xeaab8c, 0x8237b037}, - {0xeaab8d, 0x8237b038}, - {0xeaab8e, 0x8237b039}, - {0xeaab8f, 0x8237b130}, - {0xeaab90, 0x8237b131}, - {0xeaab91, 0x8237b132}, - {0xeaab92, 0x8237b133}, - {0xeaab93, 0x8237b134}, - {0xeaab94, 0x8237b135}, - {0xeaab95, 0x8237b136}, - {0xeaab96, 0x8237b137}, - {0xeaab97, 0x8237b138}, - {0xeaab98, 0x8237b139}, - {0xeaab99, 0x8237b230}, - {0xeaab9a, 0x8237b231}, - {0xeaab9b, 0x8237b232}, - {0xeaab9c, 0x8237b233}, - {0xeaab9d, 0x8237b234}, - {0xeaab9e, 0x8237b235}, - {0xeaab9f, 0x8237b236}, - {0xeaaba0, 0x8237b237}, - {0xeaaba1, 0x8237b238}, - {0xeaaba2, 0x8237b239}, - {0xeaaba3, 0x8237b330}, - {0xeaaba4, 0x8237b331}, - {0xeaaba5, 0x8237b332}, - {0xeaaba6, 0x8237b333}, - {0xeaaba7, 0x8237b334}, - {0xeaaba8, 0x8237b335}, - {0xeaaba9, 0x8237b336}, - {0xeaabaa, 0x8237b337}, - {0xeaabab, 0x8237b338}, - {0xeaabac, 0x8237b339}, - {0xeaabad, 0x8237b430}, - {0xeaabae, 0x8237b431}, - {0xeaabaf, 0x8237b432}, - {0xeaabb0, 0x8237b433}, - {0xeaabb1, 0x8237b434}, - {0xeaabb2, 0x8237b435}, - {0xeaabb3, 0x8237b436}, - {0xeaabb4, 0x8237b437}, - {0xeaabb5, 0x8237b438}, - {0xeaabb6, 0x8237b439}, - {0xeaabb7, 0x8237b530}, - {0xeaabb8, 0x8237b531}, - {0xeaabb9, 0x8237b532}, - {0xeaabba, 0x8237b533}, - {0xeaabbb, 0x8237b534}, - {0xeaabbc, 0x8237b535}, - {0xeaabbd, 0x8237b536}, - {0xeaabbe, 0x8237b537}, - {0xeaabbf, 0x8237b538}, - {0xeaac80, 0x8237b539}, - {0xeaac81, 0x8237b630}, - {0xeaac82, 0x8237b631}, - {0xeaac83, 0x8237b632}, - {0xeaac84, 0x8237b633}, - {0xeaac85, 0x8237b634}, - {0xeaac86, 0x8237b635}, - {0xeaac87, 0x8237b636}, - {0xeaac88, 0x8237b637}, - {0xeaac89, 0x8237b638}, - {0xeaac8a, 0x8237b639}, - {0xeaac8b, 0x8237b730}, - {0xeaac8c, 0x8237b731}, - {0xeaac8d, 0x8237b732}, - {0xeaac8e, 0x8237b733}, - {0xeaac8f, 0x8237b734}, - {0xeaac90, 0x8237b735}, - {0xeaac91, 0x8237b736}, - {0xeaac92, 0x8237b737}, - {0xeaac93, 0x8237b738}, - {0xeaac94, 0x8237b739}, - {0xeaac95, 0x8237b830}, - {0xeaac96, 0x8237b831}, - {0xeaac97, 0x8237b832}, - {0xeaac98, 0x8237b833}, - {0xeaac99, 0x8237b834}, - {0xeaac9a, 0x8237b835}, - {0xeaac9b, 0x8237b836}, - {0xeaac9c, 0x8237b837}, - {0xeaac9d, 0x8237b838}, - {0xeaac9e, 0x8237b839}, - {0xeaac9f, 0x8237b930}, - {0xeaaca0, 0x8237b931}, - {0xeaaca1, 0x8237b932}, - {0xeaaca2, 0x8237b933}, - {0xeaaca3, 0x8237b934}, - {0xeaaca4, 0x8237b935}, - {0xeaaca5, 0x8237b936}, - {0xeaaca6, 0x8237b937}, - {0xeaaca7, 0x8237b938}, - {0xeaaca8, 0x8237b939}, - {0xeaaca9, 0x8237ba30}, - {0xeaacaa, 0x8237ba31}, - {0xeaacab, 0x8237ba32}, - {0xeaacac, 0x8237ba33}, - {0xeaacad, 0x8237ba34}, - {0xeaacae, 0x8237ba35}, - {0xeaacaf, 0x8237ba36}, - {0xeaacb0, 0x8237ba37}, - {0xeaacb1, 0x8237ba38}, - {0xeaacb2, 0x8237ba39}, - {0xeaacb3, 0x8237bb30}, - {0xeaacb4, 0x8237bb31}, - {0xeaacb5, 0x8237bb32}, - {0xeaacb6, 0x8237bb33}, - {0xeaacb7, 0x8237bb34}, - {0xeaacb8, 0x8237bb35}, - {0xeaacb9, 0x8237bb36}, - {0xeaacba, 0x8237bb37}, - {0xeaacbb, 0x8237bb38}, - {0xeaacbc, 0x8237bb39}, - {0xeaacbd, 0x8237bc30}, - {0xeaacbe, 0x8237bc31}, - {0xeaacbf, 0x8237bc32}, - {0xeaad80, 0x8237bc33}, - {0xeaad81, 0x8237bc34}, - {0xeaad82, 0x8237bc35}, - {0xeaad83, 0x8237bc36}, - {0xeaad84, 0x8237bc37}, - {0xeaad85, 0x8237bc38}, - {0xeaad86, 0x8237bc39}, - {0xeaad87, 0x8237bd30}, - {0xeaad88, 0x8237bd31}, - {0xeaad89, 0x8237bd32}, - {0xeaad8a, 0x8237bd33}, - {0xeaad8b, 0x8237bd34}, - {0xeaad8c, 0x8237bd35}, - {0xeaad8d, 0x8237bd36}, - {0xeaad8e, 0x8237bd37}, - {0xeaad8f, 0x8237bd38}, - {0xeaad90, 0x8237bd39}, - {0xeaad91, 0x8237be30}, - {0xeaad92, 0x8237be31}, - {0xeaad93, 0x8237be32}, - {0xeaad94, 0x8237be33}, - {0xeaad95, 0x8237be34}, - {0xeaad96, 0x8237be35}, - {0xeaad97, 0x8237be36}, - {0xeaad98, 0x8237be37}, - {0xeaad99, 0x8237be38}, - {0xeaad9a, 0x8237be39}, - {0xeaad9b, 0x8237bf30}, - {0xeaad9c, 0x8237bf31}, - {0xeaad9d, 0x8237bf32}, - {0xeaad9e, 0x8237bf33}, - {0xeaad9f, 0x8237bf34}, - {0xeaada0, 0x8237bf35}, - {0xeaada1, 0x8237bf36}, - {0xeaada2, 0x8237bf37}, - {0xeaada3, 0x8237bf38}, - {0xeaada4, 0x8237bf39}, - {0xeaada5, 0x8237c030}, - {0xeaada6, 0x8237c031}, - {0xeaada7, 0x8237c032}, - {0xeaada8, 0x8237c033}, - {0xeaada9, 0x8237c034}, - {0xeaadaa, 0x8237c035}, - {0xeaadab, 0x8237c036}, - {0xeaadac, 0x8237c037}, - {0xeaadad, 0x8237c038}, - {0xeaadae, 0x8237c039}, - {0xeaadaf, 0x8237c130}, - {0xeaadb0, 0x8237c131}, - {0xeaadb1, 0x8237c132}, - {0xeaadb2, 0x8237c133}, - {0xeaadb3, 0x8237c134}, - {0xeaadb4, 0x8237c135}, - {0xeaadb5, 0x8237c136}, - {0xeaadb6, 0x8237c137}, - {0xeaadb7, 0x8237c138}, - {0xeaadb8, 0x8237c139}, - {0xeaadb9, 0x8237c230}, - {0xeaadba, 0x8237c231}, - {0xeaadbb, 0x8237c232}, - {0xeaadbc, 0x8237c233}, - {0xeaadbd, 0x8237c234}, - {0xeaadbe, 0x8237c235}, - {0xeaadbf, 0x8237c236}, - {0xeaae80, 0x8237c237}, - {0xeaae81, 0x8237c238}, - {0xeaae82, 0x8237c239}, - {0xeaae83, 0x8237c330}, - {0xeaae84, 0x8237c331}, - {0xeaae85, 0x8237c332}, - {0xeaae86, 0x8237c333}, - {0xeaae87, 0x8237c334}, - {0xeaae88, 0x8237c335}, - {0xeaae89, 0x8237c336}, - {0xeaae8a, 0x8237c337}, - {0xeaae8b, 0x8237c338}, - {0xeaae8c, 0x8237c339}, - {0xeaae8d, 0x8237c430}, - {0xeaae8e, 0x8237c431}, - {0xeaae8f, 0x8237c432}, - {0xeaae90, 0x8237c433}, - {0xeaae91, 0x8237c434}, - {0xeaae92, 0x8237c435}, - {0xeaae93, 0x8237c436}, - {0xeaae94, 0x8237c437}, - {0xeaae95, 0x8237c438}, - {0xeaae96, 0x8237c439}, - {0xeaae97, 0x8237c530}, - {0xeaae98, 0x8237c531}, - {0xeaae99, 0x8237c532}, - {0xeaae9a, 0x8237c533}, - {0xeaae9b, 0x8237c534}, - {0xeaae9c, 0x8237c535}, - {0xeaae9d, 0x8237c536}, - {0xeaae9e, 0x8237c537}, - {0xeaae9f, 0x8237c538}, - {0xeaaea0, 0x8237c539}, - {0xeaaea1, 0x8237c630}, - {0xeaaea2, 0x8237c631}, - {0xeaaea3, 0x8237c632}, - {0xeaaea4, 0x8237c633}, - {0xeaaea5, 0x8237c634}, - {0xeaaea6, 0x8237c635}, - {0xeaaea7, 0x8237c636}, - {0xeaaea8, 0x8237c637}, - {0xeaaea9, 0x8237c638}, - {0xeaaeaa, 0x8237c639}, - {0xeaaeab, 0x8237c730}, - {0xeaaeac, 0x8237c731}, - {0xeaaead, 0x8237c732}, - {0xeaaeae, 0x8237c733}, - {0xeaaeaf, 0x8237c734}, - {0xeaaeb0, 0x8237c735}, - {0xeaaeb1, 0x8237c736}, - {0xeaaeb2, 0x8237c737}, - {0xeaaeb3, 0x8237c738}, - {0xeaaeb4, 0x8237c739}, - {0xeaaeb5, 0x8237c830}, - {0xeaaeb6, 0x8237c831}, - {0xeaaeb7, 0x8237c832}, - {0xeaaeb8, 0x8237c833}, - {0xeaaeb9, 0x8237c834}, - {0xeaaeba, 0x8237c835}, - {0xeaaebb, 0x8237c836}, - {0xeaaebc, 0x8237c837}, - {0xeaaebd, 0x8237c838}, - {0xeaaebe, 0x8237c839}, - {0xeaaebf, 0x8237c930}, - {0xeaaf80, 0x8237c931}, - {0xeaaf81, 0x8237c932}, - {0xeaaf82, 0x8237c933}, - {0xeaaf83, 0x8237c934}, - {0xeaaf84, 0x8237c935}, - {0xeaaf85, 0x8237c936}, - {0xeaaf86, 0x8237c937}, - {0xeaaf87, 0x8237c938}, - {0xeaaf88, 0x8237c939}, - {0xeaaf89, 0x8237ca30}, - {0xeaaf8a, 0x8237ca31}, - {0xeaaf8b, 0x8237ca32}, - {0xeaaf8c, 0x8237ca33}, - {0xeaaf8d, 0x8237ca34}, - {0xeaaf8e, 0x8237ca35}, - {0xeaaf8f, 0x8237ca36}, - {0xeaaf90, 0x8237ca37}, - {0xeaaf91, 0x8237ca38}, - {0xeaaf92, 0x8237ca39}, - {0xeaaf93, 0x8237cb30}, - {0xeaaf94, 0x8237cb31}, - {0xeaaf95, 0x8237cb32}, - {0xeaaf96, 0x8237cb33}, - {0xeaaf97, 0x8237cb34}, - {0xeaaf98, 0x8237cb35}, - {0xeaaf99, 0x8237cb36}, - {0xeaaf9a, 0x8237cb37}, - {0xeaaf9b, 0x8237cb38}, - {0xeaaf9c, 0x8237cb39}, - {0xeaaf9d, 0x8237cc30}, - {0xeaaf9e, 0x8237cc31}, - {0xeaaf9f, 0x8237cc32}, - {0xeaafa0, 0x8237cc33}, - {0xeaafa1, 0x8237cc34}, - {0xeaafa2, 0x8237cc35}, - {0xeaafa3, 0x8237cc36}, - {0xeaafa4, 0x8237cc37}, - {0xeaafa5, 0x8237cc38}, - {0xeaafa6, 0x8237cc39}, - {0xeaafa7, 0x8237cd30}, - {0xeaafa8, 0x8237cd31}, - {0xeaafa9, 0x8237cd32}, - {0xeaafaa, 0x8237cd33}, - {0xeaafab, 0x8237cd34}, - {0xeaafac, 0x8237cd35}, - {0xeaafad, 0x8237cd36}, - {0xeaafae, 0x8237cd37}, - {0xeaafaf, 0x8237cd38}, - {0xeaafb0, 0x8237cd39}, - {0xeaafb1, 0x8237ce30}, - {0xeaafb2, 0x8237ce31}, - {0xeaafb3, 0x8237ce32}, - {0xeaafb4, 0x8237ce33}, - {0xeaafb5, 0x8237ce34}, - {0xeaafb6, 0x8237ce35}, - {0xeaafb7, 0x8237ce36}, - {0xeaafb8, 0x8237ce37}, - {0xeaafb9, 0x8237ce38}, - {0xeaafba, 0x8237ce39}, - {0xeaafbb, 0x8237cf30}, - {0xeaafbc, 0x8237cf31}, - {0xeaafbd, 0x8237cf32}, - {0xeaafbe, 0x8237cf33}, - {0xeaafbf, 0x8237cf34}, - {0xeab080, 0x8237cf35}, - {0xeab081, 0x8237cf36}, - {0xeab082, 0x8237cf37}, - {0xeab083, 0x8237cf38}, - {0xeab084, 0x8237cf39}, - {0xeab085, 0x8237d030}, - {0xeab086, 0x8237d031}, - {0xeab087, 0x8237d032}, - {0xeab088, 0x8237d033}, - {0xeab089, 0x8237d034}, - {0xeab08a, 0x8237d035}, - {0xeab08b, 0x8237d036}, - {0xeab08c, 0x8237d037}, - {0xeab08d, 0x8237d038}, - {0xeab08e, 0x8237d039}, - {0xeab08f, 0x8237d130}, - {0xeab090, 0x8237d131}, - {0xeab091, 0x8237d132}, - {0xeab092, 0x8237d133}, - {0xeab093, 0x8237d134}, - {0xeab094, 0x8237d135}, - {0xeab095, 0x8237d136}, - {0xeab096, 0x8237d137}, - {0xeab097, 0x8237d138}, - {0xeab098, 0x8237d139}, - {0xeab099, 0x8237d230}, - {0xeab09a, 0x8237d231}, - {0xeab09b, 0x8237d232}, - {0xeab09c, 0x8237d233}, - {0xeab09d, 0x8237d234}, - {0xeab09e, 0x8237d235}, - {0xeab09f, 0x8237d236}, - {0xeab0a0, 0x8237d237}, - {0xeab0a1, 0x8237d238}, - {0xeab0a2, 0x8237d239}, - {0xeab0a3, 0x8237d330}, - {0xeab0a4, 0x8237d331}, - {0xeab0a5, 0x8237d332}, - {0xeab0a6, 0x8237d333}, - {0xeab0a7, 0x8237d334}, - {0xeab0a8, 0x8237d335}, - {0xeab0a9, 0x8237d336}, - {0xeab0aa, 0x8237d337}, - {0xeab0ab, 0x8237d338}, - {0xeab0ac, 0x8237d339}, - {0xeab0ad, 0x8237d430}, - {0xeab0ae, 0x8237d431}, - {0xeab0af, 0x8237d432}, - {0xeab0b0, 0x8237d433}, - {0xeab0b1, 0x8237d434}, - {0xeab0b2, 0x8237d435}, - {0xeab0b3, 0x8237d436}, - {0xeab0b4, 0x8237d437}, - {0xeab0b5, 0x8237d438}, - {0xeab0b6, 0x8237d439}, - {0xeab0b7, 0x8237d530}, - {0xeab0b8, 0x8237d531}, - {0xeab0b9, 0x8237d532}, - {0xeab0ba, 0x8237d533}, - {0xeab0bb, 0x8237d534}, - {0xeab0bc, 0x8237d535}, - {0xeab0bd, 0x8237d536}, - {0xeab0be, 0x8237d537}, - {0xeab0bf, 0x8237d538}, - {0xeab180, 0x8237d539}, - {0xeab181, 0x8237d630}, - {0xeab182, 0x8237d631}, - {0xeab183, 0x8237d632}, - {0xeab184, 0x8237d633}, - {0xeab185, 0x8237d634}, - {0xeab186, 0x8237d635}, - {0xeab187, 0x8237d636}, - {0xeab188, 0x8237d637}, - {0xeab189, 0x8237d638}, - {0xeab18a, 0x8237d639}, - {0xeab18b, 0x8237d730}, - {0xeab18c, 0x8237d731}, - {0xeab18d, 0x8237d732}, - {0xeab18e, 0x8237d733}, - {0xeab18f, 0x8237d734}, - {0xeab190, 0x8237d735}, - {0xeab191, 0x8237d736}, - {0xeab192, 0x8237d737}, - {0xeab193, 0x8237d738}, - {0xeab194, 0x8237d739}, - {0xeab195, 0x8237d830}, - {0xeab196, 0x8237d831}, - {0xeab197, 0x8237d832}, - {0xeab198, 0x8237d833}, - {0xeab199, 0x8237d834}, - {0xeab19a, 0x8237d835}, - {0xeab19b, 0x8237d836}, - {0xeab19c, 0x8237d837}, - {0xeab19d, 0x8237d838}, - {0xeab19e, 0x8237d839}, - {0xeab19f, 0x8237d930}, - {0xeab1a0, 0x8237d931}, - {0xeab1a1, 0x8237d932}, - {0xeab1a2, 0x8237d933}, - {0xeab1a3, 0x8237d934}, - {0xeab1a4, 0x8237d935}, - {0xeab1a5, 0x8237d936}, - {0xeab1a6, 0x8237d937}, - {0xeab1a7, 0x8237d938}, - {0xeab1a8, 0x8237d939}, - {0xeab1a9, 0x8237da30}, - {0xeab1aa, 0x8237da31}, - {0xeab1ab, 0x8237da32}, - {0xeab1ac, 0x8237da33}, - {0xeab1ad, 0x8237da34}, - {0xeab1ae, 0x8237da35}, - {0xeab1af, 0x8237da36}, - {0xeab1b0, 0x8237da37}, - {0xeab1b1, 0x8237da38}, - {0xeab1b2, 0x8237da39}, - {0xeab1b3, 0x8237db30}, - {0xeab1b4, 0x8237db31}, - {0xeab1b5, 0x8237db32}, - {0xeab1b6, 0x8237db33}, - {0xeab1b7, 0x8237db34}, - {0xeab1b8, 0x8237db35}, - {0xeab1b9, 0x8237db36}, - {0xeab1ba, 0x8237db37}, - {0xeab1bb, 0x8237db38}, - {0xeab1bc, 0x8237db39}, - {0xeab1bd, 0x8237dc30}, - {0xeab1be, 0x8237dc31}, - {0xeab1bf, 0x8237dc32}, - {0xeab280, 0x8237dc33}, - {0xeab281, 0x8237dc34}, - {0xeab282, 0x8237dc35}, - {0xeab283, 0x8237dc36}, - {0xeab284, 0x8237dc37}, - {0xeab285, 0x8237dc38}, - {0xeab286, 0x8237dc39}, - {0xeab287, 0x8237dd30}, - {0xeab288, 0x8237dd31}, - {0xeab289, 0x8237dd32}, - {0xeab28a, 0x8237dd33}, - {0xeab28b, 0x8237dd34}, - {0xeab28c, 0x8237dd35}, - {0xeab28d, 0x8237dd36}, - {0xeab28e, 0x8237dd37}, - {0xeab28f, 0x8237dd38}, - {0xeab290, 0x8237dd39}, - {0xeab291, 0x8237de30}, - {0xeab292, 0x8237de31}, - {0xeab293, 0x8237de32}, - {0xeab294, 0x8237de33}, - {0xeab295, 0x8237de34}, - {0xeab296, 0x8237de35}, - {0xeab297, 0x8237de36}, - {0xeab298, 0x8237de37}, - {0xeab299, 0x8237de38}, - {0xeab29a, 0x8237de39}, - {0xeab29b, 0x8237df30}, - {0xeab29c, 0x8237df31}, - {0xeab29d, 0x8237df32}, - {0xeab29e, 0x8237df33}, - {0xeab29f, 0x8237df34}, - {0xeab2a0, 0x8237df35}, - {0xeab2a1, 0x8237df36}, - {0xeab2a2, 0x8237df37}, - {0xeab2a3, 0x8237df38}, - {0xeab2a4, 0x8237df39}, - {0xeab2a5, 0x8237e030}, - {0xeab2a6, 0x8237e031}, - {0xeab2a7, 0x8237e032}, - {0xeab2a8, 0x8237e033}, - {0xeab2a9, 0x8237e034}, - {0xeab2aa, 0x8237e035}, - {0xeab2ab, 0x8237e036}, - {0xeab2ac, 0x8237e037}, - {0xeab2ad, 0x8237e038}, - {0xeab2ae, 0x8237e039}, - {0xeab2af, 0x8237e130}, - {0xeab2b0, 0x8237e131}, - {0xeab2b1, 0x8237e132}, - {0xeab2b2, 0x8237e133}, - {0xeab2b3, 0x8237e134}, - {0xeab2b4, 0x8237e135}, - {0xeab2b5, 0x8237e136}, - {0xeab2b6, 0x8237e137}, - {0xeab2b7, 0x8237e138}, - {0xeab2b8, 0x8237e139}, - {0xeab2b9, 0x8237e230}, - {0xeab2ba, 0x8237e231}, - {0xeab2bb, 0x8237e232}, - {0xeab2bc, 0x8237e233}, - {0xeab2bd, 0x8237e234}, - {0xeab2be, 0x8237e235}, - {0xeab2bf, 0x8237e236}, - {0xeab380, 0x8237e237}, - {0xeab381, 0x8237e238}, - {0xeab382, 0x8237e239}, - {0xeab383, 0x8237e330}, - {0xeab384, 0x8237e331}, - {0xeab385, 0x8237e332}, - {0xeab386, 0x8237e333}, - {0xeab387, 0x8237e334}, - {0xeab388, 0x8237e335}, - {0xeab389, 0x8237e336}, - {0xeab38a, 0x8237e337}, - {0xeab38b, 0x8237e338}, - {0xeab38c, 0x8237e339}, - {0xeab38d, 0x8237e430}, - {0xeab38e, 0x8237e431}, - {0xeab38f, 0x8237e432}, - {0xeab390, 0x8237e433}, - {0xeab391, 0x8237e434}, - {0xeab392, 0x8237e435}, - {0xeab393, 0x8237e436}, - {0xeab394, 0x8237e437}, - {0xeab395, 0x8237e438}, - {0xeab396, 0x8237e439}, - {0xeab397, 0x8237e530}, - {0xeab398, 0x8237e531}, - {0xeab399, 0x8237e532}, - {0xeab39a, 0x8237e533}, - {0xeab39b, 0x8237e534}, - {0xeab39c, 0x8237e535}, - {0xeab39d, 0x8237e536}, - {0xeab39e, 0x8237e537}, - {0xeab39f, 0x8237e538}, - {0xeab3a0, 0x8237e539}, - {0xeab3a1, 0x8237e630}, - {0xeab3a2, 0x8237e631}, - {0xeab3a3, 0x8237e632}, - {0xeab3a4, 0x8237e633}, - {0xeab3a5, 0x8237e634}, - {0xeab3a6, 0x8237e635}, - {0xeab3a7, 0x8237e636}, - {0xeab3a8, 0x8237e637}, - {0xeab3a9, 0x8237e638}, - {0xeab3aa, 0x8237e639}, - {0xeab3ab, 0x8237e730}, - {0xeab3ac, 0x8237e731}, - {0xeab3ad, 0x8237e732}, - {0xeab3ae, 0x8237e733}, - {0xeab3af, 0x8237e734}, - {0xeab3b0, 0x8237e735}, - {0xeab3b1, 0x8237e736}, - {0xeab3b2, 0x8237e737}, - {0xeab3b3, 0x8237e738}, - {0xeab3b4, 0x8237e739}, - {0xeab3b5, 0x8237e830}, - {0xeab3b6, 0x8237e831}, - {0xeab3b7, 0x8237e832}, - {0xeab3b8, 0x8237e833}, - {0xeab3b9, 0x8237e834}, - {0xeab3ba, 0x8237e835}, - {0xeab3bb, 0x8237e836}, - {0xeab3bc, 0x8237e837}, - {0xeab3bd, 0x8237e838}, - {0xeab3be, 0x8237e839}, - {0xeab3bf, 0x8237e930}, - {0xeab480, 0x8237e931}, - {0xeab481, 0x8237e932}, - {0xeab482, 0x8237e933}, - {0xeab483, 0x8237e934}, - {0xeab484, 0x8237e935}, - {0xeab485, 0x8237e936}, - {0xeab486, 0x8237e937}, - {0xeab487, 0x8237e938}, - {0xeab488, 0x8237e939}, - {0xeab489, 0x8237ea30}, - {0xeab48a, 0x8237ea31}, - {0xeab48b, 0x8237ea32}, - {0xeab48c, 0x8237ea33}, - {0xeab48d, 0x8237ea34}, - {0xeab48e, 0x8237ea35}, - {0xeab48f, 0x8237ea36}, - {0xeab490, 0x8237ea37}, - {0xeab491, 0x8237ea38}, - {0xeab492, 0x8237ea39}, - {0xeab493, 0x8237eb30}, - {0xeab494, 0x8237eb31}, - {0xeab495, 0x8237eb32}, - {0xeab496, 0x8237eb33}, - {0xeab497, 0x8237eb34}, - {0xeab498, 0x8237eb35}, - {0xeab499, 0x8237eb36}, - {0xeab49a, 0x8237eb37}, - {0xeab49b, 0x8237eb38}, - {0xeab49c, 0x8237eb39}, - {0xeab49d, 0x8237ec30}, - {0xeab49e, 0x8237ec31}, - {0xeab49f, 0x8237ec32}, - {0xeab4a0, 0x8237ec33}, - {0xeab4a1, 0x8237ec34}, - {0xeab4a2, 0x8237ec35}, - {0xeab4a3, 0x8237ec36}, - {0xeab4a4, 0x8237ec37}, - {0xeab4a5, 0x8237ec38}, - {0xeab4a6, 0x8237ec39}, - {0xeab4a7, 0x8237ed30}, - {0xeab4a8, 0x8237ed31}, - {0xeab4a9, 0x8237ed32}, - {0xeab4aa, 0x8237ed33}, - {0xeab4ab, 0x8237ed34}, - {0xeab4ac, 0x8237ed35}, - {0xeab4ad, 0x8237ed36}, - {0xeab4ae, 0x8237ed37}, - {0xeab4af, 0x8237ed38}, - {0xeab4b0, 0x8237ed39}, - {0xeab4b1, 0x8237ee30}, - {0xeab4b2, 0x8237ee31}, - {0xeab4b3, 0x8237ee32}, - {0xeab4b4, 0x8237ee33}, - {0xeab4b5, 0x8237ee34}, - {0xeab4b6, 0x8237ee35}, - {0xeab4b7, 0x8237ee36}, - {0xeab4b8, 0x8237ee37}, - {0xeab4b9, 0x8237ee38}, - {0xeab4ba, 0x8237ee39}, - {0xeab4bb, 0x8237ef30}, - {0xeab4bc, 0x8237ef31}, - {0xeab4bd, 0x8237ef32}, - {0xeab4be, 0x8237ef33}, - {0xeab4bf, 0x8237ef34}, - {0xeab580, 0x8237ef35}, - {0xeab581, 0x8237ef36}, - {0xeab582, 0x8237ef37}, - {0xeab583, 0x8237ef38}, - {0xeab584, 0x8237ef39}, - {0xeab585, 0x8237f030}, - {0xeab586, 0x8237f031}, - {0xeab587, 0x8237f032}, - {0xeab588, 0x8237f033}, - {0xeab589, 0x8237f034}, - {0xeab58a, 0x8237f035}, - {0xeab58b, 0x8237f036}, - {0xeab58c, 0x8237f037}, - {0xeab58d, 0x8237f038}, - {0xeab58e, 0x8237f039}, - {0xeab58f, 0x8237f130}, - {0xeab590, 0x8237f131}, - {0xeab591, 0x8237f132}, - {0xeab592, 0x8237f133}, - {0xeab593, 0x8237f134}, - {0xeab594, 0x8237f135}, - {0xeab595, 0x8237f136}, - {0xeab596, 0x8237f137}, - {0xeab597, 0x8237f138}, - {0xeab598, 0x8237f139}, - {0xeab599, 0x8237f230}, - {0xeab59a, 0x8237f231}, - {0xeab59b, 0x8237f232}, - {0xeab59c, 0x8237f233}, - {0xeab59d, 0x8237f234}, - {0xeab59e, 0x8237f235}, - {0xeab59f, 0x8237f236}, - {0xeab5a0, 0x8237f237}, - {0xeab5a1, 0x8237f238}, - {0xeab5a2, 0x8237f239}, - {0xeab5a3, 0x8237f330}, - {0xeab5a4, 0x8237f331}, - {0xeab5a5, 0x8237f332}, - {0xeab5a6, 0x8237f333}, - {0xeab5a7, 0x8237f334}, - {0xeab5a8, 0x8237f335}, - {0xeab5a9, 0x8237f336}, - {0xeab5aa, 0x8237f337}, - {0xeab5ab, 0x8237f338}, - {0xeab5ac, 0x8237f339}, - {0xeab5ad, 0x8237f430}, - {0xeab5ae, 0x8237f431}, - {0xeab5af, 0x8237f432}, - {0xeab5b0, 0x8237f433}, - {0xeab5b1, 0x8237f434}, - {0xeab5b2, 0x8237f435}, - {0xeab5b3, 0x8237f436}, - {0xeab5b4, 0x8237f437}, - {0xeab5b5, 0x8237f438}, - {0xeab5b6, 0x8237f439}, - {0xeab5b7, 0x8237f530}, - {0xeab5b8, 0x8237f531}, - {0xeab5b9, 0x8237f532}, - {0xeab5ba, 0x8237f533}, - {0xeab5bb, 0x8237f534}, - {0xeab5bc, 0x8237f535}, - {0xeab5bd, 0x8237f536}, - {0xeab5be, 0x8237f537}, - {0xeab5bf, 0x8237f538}, - {0xeab680, 0x8237f539}, - {0xeab681, 0x8237f630}, - {0xeab682, 0x8237f631}, - {0xeab683, 0x8237f632}, - {0xeab684, 0x8237f633}, - {0xeab685, 0x8237f634}, - {0xeab686, 0x8237f635}, - {0xeab687, 0x8237f636}, - {0xeab688, 0x8237f637}, - {0xeab689, 0x8237f638}, - {0xeab68a, 0x8237f639}, - {0xeab68b, 0x8237f730}, - {0xeab68c, 0x8237f731}, - {0xeab68d, 0x8237f732}, - {0xeab68e, 0x8237f733}, - {0xeab68f, 0x8237f734}, - {0xeab690, 0x8237f735}, - {0xeab691, 0x8237f736}, - {0xeab692, 0x8237f737}, - {0xeab693, 0x8237f738}, - {0xeab694, 0x8237f739}, - {0xeab695, 0x8237f830}, - {0xeab696, 0x8237f831}, - {0xeab697, 0x8237f832}, - {0xeab698, 0x8237f833}, - {0xeab699, 0x8237f834}, - {0xeab69a, 0x8237f835}, - {0xeab69b, 0x8237f836}, - {0xeab69c, 0x8237f837}, - {0xeab69d, 0x8237f838}, - {0xeab69e, 0x8237f839}, - {0xeab69f, 0x8237f930}, - {0xeab6a0, 0x8237f931}, - {0xeab6a1, 0x8237f932}, - {0xeab6a2, 0x8237f933}, - {0xeab6a3, 0x8237f934}, - {0xeab6a4, 0x8237f935}, - {0xeab6a5, 0x8237f936}, - {0xeab6a6, 0x8237f937}, - {0xeab6a7, 0x8237f938}, - {0xeab6a8, 0x8237f939}, - {0xeab6a9, 0x8237fa30}, - {0xeab6aa, 0x8237fa31}, - {0xeab6ab, 0x8237fa32}, - {0xeab6ac, 0x8237fa33}, - {0xeab6ad, 0x8237fa34}, - {0xeab6ae, 0x8237fa35}, - {0xeab6af, 0x8237fa36}, - {0xeab6b0, 0x8237fa37}, - {0xeab6b1, 0x8237fa38}, - {0xeab6b2, 0x8237fa39}, - {0xeab6b3, 0x8237fb30}, - {0xeab6b4, 0x8237fb31}, - {0xeab6b5, 0x8237fb32}, - {0xeab6b6, 0x8237fb33}, - {0xeab6b7, 0x8237fb34}, - {0xeab6b8, 0x8237fb35}, - {0xeab6b9, 0x8237fb36}, - {0xeab6ba, 0x8237fb37}, - {0xeab6bb, 0x8237fb38}, - {0xeab6bc, 0x8237fb39}, - {0xeab6bd, 0x8237fc30}, - {0xeab6be, 0x8237fc31}, - {0xeab6bf, 0x8237fc32}, - {0xeab780, 0x8237fc33}, - {0xeab781, 0x8237fc34}, - {0xeab782, 0x8237fc35}, - {0xeab783, 0x8237fc36}, - {0xeab784, 0x8237fc37}, - {0xeab785, 0x8237fc38}, - {0xeab786, 0x8237fc39}, - {0xeab787, 0x8237fd30}, - {0xeab788, 0x8237fd31}, - {0xeab789, 0x8237fd32}, - {0xeab78a, 0x8237fd33}, - {0xeab78b, 0x8237fd34}, - {0xeab78c, 0x8237fd35}, - {0xeab78d, 0x8237fd36}, - {0xeab78e, 0x8237fd37}, - {0xeab78f, 0x8237fd38}, - {0xeab790, 0x8237fd39}, - {0xeab791, 0x8237fe30}, - {0xeab792, 0x8237fe31}, - {0xeab793, 0x8237fe32}, - {0xeab794, 0x8237fe33}, - {0xeab795, 0x8237fe34}, - {0xeab796, 0x8237fe35}, - {0xeab797, 0x8237fe36}, - {0xeab798, 0x8237fe37}, - {0xeab799, 0x8237fe38}, - {0xeab79a, 0x8237fe39}, - {0xeab79b, 0x82388130}, - {0xeab79c, 0x82388131}, - {0xeab79d, 0x82388132}, - {0xeab79e, 0x82388133}, - {0xeab79f, 0x82388134}, - {0xeab7a0, 0x82388135}, - {0xeab7a1, 0x82388136}, - {0xeab7a2, 0x82388137}, - {0xeab7a3, 0x82388138}, - {0xeab7a4, 0x82388139}, - {0xeab7a5, 0x82388230}, - {0xeab7a6, 0x82388231}, - {0xeab7a7, 0x82388232}, - {0xeab7a8, 0x82388233}, - {0xeab7a9, 0x82388234}, - {0xeab7aa, 0x82388235}, - {0xeab7ab, 0x82388236}, - {0xeab7ac, 0x82388237}, - {0xeab7ad, 0x82388238}, - {0xeab7ae, 0x82388239}, - {0xeab7af, 0x82388330}, - {0xeab7b0, 0x82388331}, - {0xeab7b1, 0x82388332}, - {0xeab7b2, 0x82388333}, - {0xeab7b3, 0x82388334}, - {0xeab7b4, 0x82388335}, - {0xeab7b5, 0x82388336}, - {0xeab7b6, 0x82388337}, - {0xeab7b7, 0x82388338}, - {0xeab7b8, 0x82388339}, - {0xeab7b9, 0x82388430}, - {0xeab7ba, 0x82388431}, - {0xeab7bb, 0x82388432}, - {0xeab7bc, 0x82388433}, - {0xeab7bd, 0x82388434}, - {0xeab7be, 0x82388435}, - {0xeab7bf, 0x82388436}, - {0xeab880, 0x82388437}, - {0xeab881, 0x82388438}, - {0xeab882, 0x82388439}, - {0xeab883, 0x82388530}, - {0xeab884, 0x82388531}, - {0xeab885, 0x82388532}, - {0xeab886, 0x82388533}, - {0xeab887, 0x82388534}, - {0xeab888, 0x82388535}, - {0xeab889, 0x82388536}, - {0xeab88a, 0x82388537}, - {0xeab88b, 0x82388538}, - {0xeab88c, 0x82388539}, - {0xeab88d, 0x82388630}, - {0xeab88e, 0x82388631}, - {0xeab88f, 0x82388632}, - {0xeab890, 0x82388633}, - {0xeab891, 0x82388634}, - {0xeab892, 0x82388635}, - {0xeab893, 0x82388636}, - {0xeab894, 0x82388637}, - {0xeab895, 0x82388638}, - {0xeab896, 0x82388639}, - {0xeab897, 0x82388730}, - {0xeab898, 0x82388731}, - {0xeab899, 0x82388732}, - {0xeab89a, 0x82388733}, - {0xeab89b, 0x82388734}, - {0xeab89c, 0x82388735}, - {0xeab89d, 0x82388736}, - {0xeab89e, 0x82388737}, - {0xeab89f, 0x82388738}, - {0xeab8a0, 0x82388739}, - {0xeab8a1, 0x82388830}, - {0xeab8a2, 0x82388831}, - {0xeab8a3, 0x82388832}, - {0xeab8a4, 0x82388833}, - {0xeab8a5, 0x82388834}, - {0xeab8a6, 0x82388835}, - {0xeab8a7, 0x82388836}, - {0xeab8a8, 0x82388837}, - {0xeab8a9, 0x82388838}, - {0xeab8aa, 0x82388839}, - {0xeab8ab, 0x82388930}, - {0xeab8ac, 0x82388931}, - {0xeab8ad, 0x82388932}, - {0xeab8ae, 0x82388933}, - {0xeab8af, 0x82388934}, - {0xeab8b0, 0x82388935}, - {0xeab8b1, 0x82388936}, - {0xeab8b2, 0x82388937}, - {0xeab8b3, 0x82388938}, - {0xeab8b4, 0x82388939}, - {0xeab8b5, 0x82388a30}, - {0xeab8b6, 0x82388a31}, - {0xeab8b7, 0x82388a32}, - {0xeab8b8, 0x82388a33}, - {0xeab8b9, 0x82388a34}, - {0xeab8ba, 0x82388a35}, - {0xeab8bb, 0x82388a36}, - {0xeab8bc, 0x82388a37}, - {0xeab8bd, 0x82388a38}, - {0xeab8be, 0x82388a39}, - {0xeab8bf, 0x82388b30}, - {0xeab980, 0x82388b31}, - {0xeab981, 0x82388b32}, - {0xeab982, 0x82388b33}, - {0xeab983, 0x82388b34}, - {0xeab984, 0x82388b35}, - {0xeab985, 0x82388b36}, - {0xeab986, 0x82388b37}, - {0xeab987, 0x82388b38}, - {0xeab988, 0x82388b39}, - {0xeab989, 0x82388c30}, - {0xeab98a, 0x82388c31}, - {0xeab98b, 0x82388c32}, - {0xeab98c, 0x82388c33}, - {0xeab98d, 0x82388c34}, - {0xeab98e, 0x82388c35}, - {0xeab98f, 0x82388c36}, - {0xeab990, 0x82388c37}, - {0xeab991, 0x82388c38}, - {0xeab992, 0x82388c39}, - {0xeab993, 0x82388d30}, - {0xeab994, 0x82388d31}, - {0xeab995, 0x82388d32}, - {0xeab996, 0x82388d33}, - {0xeab997, 0x82388d34}, - {0xeab998, 0x82388d35}, - {0xeab999, 0x82388d36}, - {0xeab99a, 0x82388d37}, - {0xeab99b, 0x82388d38}, - {0xeab99c, 0x82388d39}, - {0xeab99d, 0x82388e30}, - {0xeab99e, 0x82388e31}, - {0xeab99f, 0x82388e32}, - {0xeab9a0, 0x82388e33}, - {0xeab9a1, 0x82388e34}, - {0xeab9a2, 0x82388e35}, - {0xeab9a3, 0x82388e36}, - {0xeab9a4, 0x82388e37}, - {0xeab9a5, 0x82388e38}, - {0xeab9a6, 0x82388e39}, - {0xeab9a7, 0x82388f30}, - {0xeab9a8, 0x82388f31}, - {0xeab9a9, 0x82388f32}, - {0xeab9aa, 0x82388f33}, - {0xeab9ab, 0x82388f34}, - {0xeab9ac, 0x82388f35}, - {0xeab9ad, 0x82388f36}, - {0xeab9ae, 0x82388f37}, - {0xeab9af, 0x82388f38}, - {0xeab9b0, 0x82388f39}, - {0xeab9b1, 0x82389030}, - {0xeab9b2, 0x82389031}, - {0xeab9b3, 0x82389032}, - {0xeab9b4, 0x82389033}, - {0xeab9b5, 0x82389034}, - {0xeab9b6, 0x82389035}, - {0xeab9b7, 0x82389036}, - {0xeab9b8, 0x82389037}, - {0xeab9b9, 0x82389038}, - {0xeab9ba, 0x82389039}, - {0xeab9bb, 0x82389130}, - {0xeab9bc, 0x82389131}, - {0xeab9bd, 0x82389132}, - {0xeab9be, 0x82389133}, - {0xeab9bf, 0x82389134}, - {0xeaba80, 0x82389135}, - {0xeaba81, 0x82389136}, - {0xeaba82, 0x82389137}, - {0xeaba83, 0x82389138}, - {0xeaba84, 0x82389139}, - {0xeaba85, 0x82389230}, - {0xeaba86, 0x82389231}, - {0xeaba87, 0x82389232}, - {0xeaba88, 0x82389233}, - {0xeaba89, 0x82389234}, - {0xeaba8a, 0x82389235}, - {0xeaba8b, 0x82389236}, - {0xeaba8c, 0x82389237}, - {0xeaba8d, 0x82389238}, - {0xeaba8e, 0x82389239}, - {0xeaba8f, 0x82389330}, - {0xeaba90, 0x82389331}, - {0xeaba91, 0x82389332}, - {0xeaba92, 0x82389333}, - {0xeaba93, 0x82389334}, - {0xeaba94, 0x82389335}, - {0xeaba95, 0x82389336}, - {0xeaba96, 0x82389337}, - {0xeaba97, 0x82389338}, - {0xeaba98, 0x82389339}, - {0xeaba99, 0x82389430}, - {0xeaba9a, 0x82389431}, - {0xeaba9b, 0x82389432}, - {0xeaba9c, 0x82389433}, - {0xeaba9d, 0x82389434}, - {0xeaba9e, 0x82389435}, - {0xeaba9f, 0x82389436}, - {0xeabaa0, 0x82389437}, - {0xeabaa1, 0x82389438}, - {0xeabaa2, 0x82389439}, - {0xeabaa3, 0x82389530}, - {0xeabaa4, 0x82389531}, - {0xeabaa5, 0x82389532}, - {0xeabaa6, 0x82389533}, - {0xeabaa7, 0x82389534}, - {0xeabaa8, 0x82389535}, - {0xeabaa9, 0x82389536}, - {0xeabaaa, 0x82389537}, - {0xeabaab, 0x82389538}, - {0xeabaac, 0x82389539}, - {0xeabaad, 0x82389630}, - {0xeabaae, 0x82389631}, - {0xeabaaf, 0x82389632}, - {0xeabab0, 0x82389633}, - {0xeabab1, 0x82389634}, - {0xeabab2, 0x82389635}, - {0xeabab3, 0x82389636}, - {0xeabab4, 0x82389637}, - {0xeabab5, 0x82389638}, - {0xeabab6, 0x82389639}, - {0xeabab7, 0x82389730}, - {0xeabab8, 0x82389731}, - {0xeabab9, 0x82389732}, - {0xeababa, 0x82389733}, - {0xeababb, 0x82389734}, - {0xeababc, 0x82389735}, - {0xeababd, 0x82389736}, - {0xeababe, 0x82389737}, - {0xeababf, 0x82389738}, - {0xeabb80, 0x82389739}, - {0xeabb81, 0x82389830}, - {0xeabb82, 0x82389831}, - {0xeabb83, 0x82389832}, - {0xeabb84, 0x82389833}, - {0xeabb85, 0x82389834}, - {0xeabb86, 0x82389835}, - {0xeabb87, 0x82389836}, - {0xeabb88, 0x82389837}, - {0xeabb89, 0x82389838}, - {0xeabb8a, 0x82389839}, - {0xeabb8b, 0x82389930}, - {0xeabb8c, 0x82389931}, - {0xeabb8d, 0x82389932}, - {0xeabb8e, 0x82389933}, - {0xeabb8f, 0x82389934}, - {0xeabb90, 0x82389935}, - {0xeabb91, 0x82389936}, - {0xeabb92, 0x82389937}, - {0xeabb93, 0x82389938}, - {0xeabb94, 0x82389939}, - {0xeabb95, 0x82389a30}, - {0xeabb96, 0x82389a31}, - {0xeabb97, 0x82389a32}, - {0xeabb98, 0x82389a33}, - {0xeabb99, 0x82389a34}, - {0xeabb9a, 0x82389a35}, - {0xeabb9b, 0x82389a36}, - {0xeabb9c, 0x82389a37}, - {0xeabb9d, 0x82389a38}, - {0xeabb9e, 0x82389a39}, - {0xeabb9f, 0x82389b30}, - {0xeabba0, 0x82389b31}, - {0xeabba1, 0x82389b32}, - {0xeabba2, 0x82389b33}, - {0xeabba3, 0x82389b34}, - {0xeabba4, 0x82389b35}, - {0xeabba5, 0x82389b36}, - {0xeabba6, 0x82389b37}, - {0xeabba7, 0x82389b38}, - {0xeabba8, 0x82389b39}, - {0xeabba9, 0x82389c30}, - {0xeabbaa, 0x82389c31}, - {0xeabbab, 0x82389c32}, - {0xeabbac, 0x82389c33}, - {0xeabbad, 0x82389c34}, - {0xeabbae, 0x82389c35}, - {0xeabbaf, 0x82389c36}, - {0xeabbb0, 0x82389c37}, - {0xeabbb1, 0x82389c38}, - {0xeabbb2, 0x82389c39}, - {0xeabbb3, 0x82389d30}, - {0xeabbb4, 0x82389d31}, - {0xeabbb5, 0x82389d32}, - {0xeabbb6, 0x82389d33}, - {0xeabbb7, 0x82389d34}, - {0xeabbb8, 0x82389d35}, - {0xeabbb9, 0x82389d36}, - {0xeabbba, 0x82389d37}, - {0xeabbbb, 0x82389d38}, - {0xeabbbc, 0x82389d39}, - {0xeabbbd, 0x82389e30}, - {0xeabbbe, 0x82389e31}, - {0xeabbbf, 0x82389e32}, - {0xeabc80, 0x82389e33}, - {0xeabc81, 0x82389e34}, - {0xeabc82, 0x82389e35}, - {0xeabc83, 0x82389e36}, - {0xeabc84, 0x82389e37}, - {0xeabc85, 0x82389e38}, - {0xeabc86, 0x82389e39}, - {0xeabc87, 0x82389f30}, - {0xeabc88, 0x82389f31}, - {0xeabc89, 0x82389f32}, - {0xeabc8a, 0x82389f33}, - {0xeabc8b, 0x82389f34}, - {0xeabc8c, 0x82389f35}, - {0xeabc8d, 0x82389f36}, - {0xeabc8e, 0x82389f37}, - {0xeabc8f, 0x82389f38}, - {0xeabc90, 0x82389f39}, - {0xeabc91, 0x8238a030}, - {0xeabc92, 0x8238a031}, - {0xeabc93, 0x8238a032}, - {0xeabc94, 0x8238a033}, - {0xeabc95, 0x8238a034}, - {0xeabc96, 0x8238a035}, - {0xeabc97, 0x8238a036}, - {0xeabc98, 0x8238a037}, - {0xeabc99, 0x8238a038}, - {0xeabc9a, 0x8238a039}, - {0xeabc9b, 0x8238a130}, - {0xeabc9c, 0x8238a131}, - {0xeabc9d, 0x8238a132}, - {0xeabc9e, 0x8238a133}, - {0xeabc9f, 0x8238a134}, - {0xeabca0, 0x8238a135}, - {0xeabca1, 0x8238a136}, - {0xeabca2, 0x8238a137}, - {0xeabca3, 0x8238a138}, - {0xeabca4, 0x8238a139}, - {0xeabca5, 0x8238a230}, - {0xeabca6, 0x8238a231}, - {0xeabca7, 0x8238a232}, - {0xeabca8, 0x8238a233}, - {0xeabca9, 0x8238a234}, - {0xeabcaa, 0x8238a235}, - {0xeabcab, 0x8238a236}, - {0xeabcac, 0x8238a237}, - {0xeabcad, 0x8238a238}, - {0xeabcae, 0x8238a239}, - {0xeabcaf, 0x8238a330}, - {0xeabcb0, 0x8238a331}, - {0xeabcb1, 0x8238a332}, - {0xeabcb2, 0x8238a333}, - {0xeabcb3, 0x8238a334}, - {0xeabcb4, 0x8238a335}, - {0xeabcb5, 0x8238a336}, - {0xeabcb6, 0x8238a337}, - {0xeabcb7, 0x8238a338}, - {0xeabcb8, 0x8238a339}, - {0xeabcb9, 0x8238a430}, - {0xeabcba, 0x8238a431}, - {0xeabcbb, 0x8238a432}, - {0xeabcbc, 0x8238a433}, - {0xeabcbd, 0x8238a434}, - {0xeabcbe, 0x8238a435}, - {0xeabcbf, 0x8238a436}, - {0xeabd80, 0x8238a437}, - {0xeabd81, 0x8238a438}, - {0xeabd82, 0x8238a439}, - {0xeabd83, 0x8238a530}, - {0xeabd84, 0x8238a531}, - {0xeabd85, 0x8238a532}, - {0xeabd86, 0x8238a533}, - {0xeabd87, 0x8238a534}, - {0xeabd88, 0x8238a535}, - {0xeabd89, 0x8238a536}, - {0xeabd8a, 0x8238a537}, - {0xeabd8b, 0x8238a538}, - {0xeabd8c, 0x8238a539}, - {0xeabd8d, 0x8238a630}, - {0xeabd8e, 0x8238a631}, - {0xeabd8f, 0x8238a632}, - {0xeabd90, 0x8238a633}, - {0xeabd91, 0x8238a634}, - {0xeabd92, 0x8238a635}, - {0xeabd93, 0x8238a636}, - {0xeabd94, 0x8238a637}, - {0xeabd95, 0x8238a638}, - {0xeabd96, 0x8238a639}, - {0xeabd97, 0x8238a730}, - {0xeabd98, 0x8238a731}, - {0xeabd99, 0x8238a732}, - {0xeabd9a, 0x8238a733}, - {0xeabd9b, 0x8238a734}, - {0xeabd9c, 0x8238a735}, - {0xeabd9d, 0x8238a736}, - {0xeabd9e, 0x8238a737}, - {0xeabd9f, 0x8238a738}, - {0xeabda0, 0x8238a739}, - {0xeabda1, 0x8238a830}, - {0xeabda2, 0x8238a831}, - {0xeabda3, 0x8238a832}, - {0xeabda4, 0x8238a833}, - {0xeabda5, 0x8238a834}, - {0xeabda6, 0x8238a835}, - {0xeabda7, 0x8238a836}, - {0xeabda8, 0x8238a837}, - {0xeabda9, 0x8238a838}, - {0xeabdaa, 0x8238a839}, - {0xeabdab, 0x8238a930}, - {0xeabdac, 0x8238a931}, - {0xeabdad, 0x8238a932}, - {0xeabdae, 0x8238a933}, - {0xeabdaf, 0x8238a934}, - {0xeabdb0, 0x8238a935}, - {0xeabdb1, 0x8238a936}, - {0xeabdb2, 0x8238a937}, - {0xeabdb3, 0x8238a938}, - {0xeabdb4, 0x8238a939}, - {0xeabdb5, 0x8238aa30}, - {0xeabdb6, 0x8238aa31}, - {0xeabdb7, 0x8238aa32}, - {0xeabdb8, 0x8238aa33}, - {0xeabdb9, 0x8238aa34}, - {0xeabdba, 0x8238aa35}, - {0xeabdbb, 0x8238aa36}, - {0xeabdbc, 0x8238aa37}, - {0xeabdbd, 0x8238aa38}, - {0xeabdbe, 0x8238aa39}, - {0xeabdbf, 0x8238ab30}, - {0xeabe80, 0x8238ab31}, - {0xeabe81, 0x8238ab32}, - {0xeabe82, 0x8238ab33}, - {0xeabe83, 0x8238ab34}, - {0xeabe84, 0x8238ab35}, - {0xeabe85, 0x8238ab36}, - {0xeabe86, 0x8238ab37}, - {0xeabe87, 0x8238ab38}, - {0xeabe88, 0x8238ab39}, - {0xeabe89, 0x8238ac30}, - {0xeabe8a, 0x8238ac31}, - {0xeabe8b, 0x8238ac32}, - {0xeabe8c, 0x8238ac33}, - {0xeabe8d, 0x8238ac34}, - {0xeabe8e, 0x8238ac35}, - {0xeabe8f, 0x8238ac36}, - {0xeabe90, 0x8238ac37}, - {0xeabe91, 0x8238ac38}, - {0xeabe92, 0x8238ac39}, - {0xeabe93, 0x8238ad30}, - {0xeabe94, 0x8238ad31}, - {0xeabe95, 0x8238ad32}, - {0xeabe96, 0x8238ad33}, - {0xeabe97, 0x8238ad34}, - {0xeabe98, 0x8238ad35}, - {0xeabe99, 0x8238ad36}, - {0xeabe9a, 0x8238ad37}, - {0xeabe9b, 0x8238ad38}, - {0xeabe9c, 0x8238ad39}, - {0xeabe9d, 0x8238ae30}, - {0xeabe9e, 0x8238ae31}, - {0xeabe9f, 0x8238ae32}, - {0xeabea0, 0x8238ae33}, - {0xeabea1, 0x8238ae34}, - {0xeabea2, 0x8238ae35}, - {0xeabea3, 0x8238ae36}, - {0xeabea4, 0x8238ae37}, - {0xeabea5, 0x8238ae38}, - {0xeabea6, 0x8238ae39}, - {0xeabea7, 0x8238af30}, - {0xeabea8, 0x8238af31}, - {0xeabea9, 0x8238af32}, - {0xeabeaa, 0x8238af33}, - {0xeabeab, 0x8238af34}, - {0xeabeac, 0x8238af35}, - {0xeabead, 0x8238af36}, - {0xeabeae, 0x8238af37}, - {0xeabeaf, 0x8238af38}, - {0xeabeb0, 0x8238af39}, - {0xeabeb1, 0x8238b030}, - {0xeabeb2, 0x8238b031}, - {0xeabeb3, 0x8238b032}, - {0xeabeb4, 0x8238b033}, - {0xeabeb5, 0x8238b034}, - {0xeabeb6, 0x8238b035}, - {0xeabeb7, 0x8238b036}, - {0xeabeb8, 0x8238b037}, - {0xeabeb9, 0x8238b038}, - {0xeabeba, 0x8238b039}, - {0xeabebb, 0x8238b130}, - {0xeabebc, 0x8238b131}, - {0xeabebd, 0x8238b132}, - {0xeabebe, 0x8238b133}, - {0xeabebf, 0x8238b134}, - {0xeabf80, 0x8238b135}, - {0xeabf81, 0x8238b136}, - {0xeabf82, 0x8238b137}, - {0xeabf83, 0x8238b138}, - {0xeabf84, 0x8238b139}, - {0xeabf85, 0x8238b230}, - {0xeabf86, 0x8238b231}, - {0xeabf87, 0x8238b232}, - {0xeabf88, 0x8238b233}, - {0xeabf89, 0x8238b234}, - {0xeabf8a, 0x8238b235}, - {0xeabf8b, 0x8238b236}, - {0xeabf8c, 0x8238b237}, - {0xeabf8d, 0x8238b238}, - {0xeabf8e, 0x8238b239}, - {0xeabf8f, 0x8238b330}, - {0xeabf90, 0x8238b331}, - {0xeabf91, 0x8238b332}, - {0xeabf92, 0x8238b333}, - {0xeabf93, 0x8238b334}, - {0xeabf94, 0x8238b335}, - {0xeabf95, 0x8238b336}, - {0xeabf96, 0x8238b337}, - {0xeabf97, 0x8238b338}, - {0xeabf98, 0x8238b339}, - {0xeabf99, 0x8238b430}, - {0xeabf9a, 0x8238b431}, - {0xeabf9b, 0x8238b432}, - {0xeabf9c, 0x8238b433}, - {0xeabf9d, 0x8238b434}, - {0xeabf9e, 0x8238b435}, - {0xeabf9f, 0x8238b436}, - {0xeabfa0, 0x8238b437}, - {0xeabfa1, 0x8238b438}, - {0xeabfa2, 0x8238b439}, - {0xeabfa3, 0x8238b530}, - {0xeabfa4, 0x8238b531}, - {0xeabfa5, 0x8238b532}, - {0xeabfa6, 0x8238b533}, - {0xeabfa7, 0x8238b534}, - {0xeabfa8, 0x8238b535}, - {0xeabfa9, 0x8238b536}, - {0xeabfaa, 0x8238b537}, - {0xeabfab, 0x8238b538}, - {0xeabfac, 0x8238b539}, - {0xeabfad, 0x8238b630}, - {0xeabfae, 0x8238b631}, - {0xeabfaf, 0x8238b632}, - {0xeabfb0, 0x8238b633}, - {0xeabfb1, 0x8238b634}, - {0xeabfb2, 0x8238b635}, - {0xeabfb3, 0x8238b636}, - {0xeabfb4, 0x8238b637}, - {0xeabfb5, 0x8238b638}, - {0xeabfb6, 0x8238b639}, - {0xeabfb7, 0x8238b730}, - {0xeabfb8, 0x8238b731}, - {0xeabfb9, 0x8238b732}, - {0xeabfba, 0x8238b733}, - {0xeabfbb, 0x8238b734}, - {0xeabfbc, 0x8238b735}, - {0xeabfbd, 0x8238b736}, - {0xeabfbe, 0x8238b737}, - {0xeabfbf, 0x8238b738}, - {0xeb8080, 0x8238b739}, - {0xeb8081, 0x8238b830}, - {0xeb8082, 0x8238b831}, - {0xeb8083, 0x8238b832}, - {0xeb8084, 0x8238b833}, - {0xeb8085, 0x8238b834}, - {0xeb8086, 0x8238b835}, - {0xeb8087, 0x8238b836}, - {0xeb8088, 0x8238b837}, - {0xeb8089, 0x8238b838}, - {0xeb808a, 0x8238b839}, - {0xeb808b, 0x8238b930}, - {0xeb808c, 0x8238b931}, - {0xeb808d, 0x8238b932}, - {0xeb808e, 0x8238b933}, - {0xeb808f, 0x8238b934}, - {0xeb8090, 0x8238b935}, - {0xeb8091, 0x8238b936}, - {0xeb8092, 0x8238b937}, - {0xeb8093, 0x8238b938}, - {0xeb8094, 0x8238b939}, - {0xeb8095, 0x8238ba30}, - {0xeb8096, 0x8238ba31}, - {0xeb8097, 0x8238ba32}, - {0xeb8098, 0x8238ba33}, - {0xeb8099, 0x8238ba34}, - {0xeb809a, 0x8238ba35}, - {0xeb809b, 0x8238ba36}, - {0xeb809c, 0x8238ba37}, - {0xeb809d, 0x8238ba38}, - {0xeb809e, 0x8238ba39}, - {0xeb809f, 0x8238bb30}, - {0xeb80a0, 0x8238bb31}, - {0xeb80a1, 0x8238bb32}, - {0xeb80a2, 0x8238bb33}, - {0xeb80a3, 0x8238bb34}, - {0xeb80a4, 0x8238bb35}, - {0xeb80a5, 0x8238bb36}, - {0xeb80a6, 0x8238bb37}, - {0xeb80a7, 0x8238bb38}, - {0xeb80a8, 0x8238bb39}, - {0xeb80a9, 0x8238bc30}, - {0xeb80aa, 0x8238bc31}, - {0xeb80ab, 0x8238bc32}, - {0xeb80ac, 0x8238bc33}, - {0xeb80ad, 0x8238bc34}, - {0xeb80ae, 0x8238bc35}, - {0xeb80af, 0x8238bc36}, - {0xeb80b0, 0x8238bc37}, - {0xeb80b1, 0x8238bc38}, - {0xeb80b2, 0x8238bc39}, - {0xeb80b3, 0x8238bd30}, - {0xeb80b4, 0x8238bd31}, - {0xeb80b5, 0x8238bd32}, - {0xeb80b6, 0x8238bd33}, - {0xeb80b7, 0x8238bd34}, - {0xeb80b8, 0x8238bd35}, - {0xeb80b9, 0x8238bd36}, - {0xeb80ba, 0x8238bd37}, - {0xeb80bb, 0x8238bd38}, - {0xeb80bc, 0x8238bd39}, - {0xeb80bd, 0x8238be30}, - {0xeb80be, 0x8238be31}, - {0xeb80bf, 0x8238be32}, - {0xeb8180, 0x8238be33}, - {0xeb8181, 0x8238be34}, - {0xeb8182, 0x8238be35}, - {0xeb8183, 0x8238be36}, - {0xeb8184, 0x8238be37}, - {0xeb8185, 0x8238be38}, - {0xeb8186, 0x8238be39}, - {0xeb8187, 0x8238bf30}, - {0xeb8188, 0x8238bf31}, - {0xeb8189, 0x8238bf32}, - {0xeb818a, 0x8238bf33}, - {0xeb818b, 0x8238bf34}, - {0xeb818c, 0x8238bf35}, - {0xeb818d, 0x8238bf36}, - {0xeb818e, 0x8238bf37}, - {0xeb818f, 0x8238bf38}, - {0xeb8190, 0x8238bf39}, - {0xeb8191, 0x8238c030}, - {0xeb8192, 0x8238c031}, - {0xeb8193, 0x8238c032}, - {0xeb8194, 0x8238c033}, - {0xeb8195, 0x8238c034}, - {0xeb8196, 0x8238c035}, - {0xeb8197, 0x8238c036}, - {0xeb8198, 0x8238c037}, - {0xeb8199, 0x8238c038}, - {0xeb819a, 0x8238c039}, - {0xeb819b, 0x8238c130}, - {0xeb819c, 0x8238c131}, - {0xeb819d, 0x8238c132}, - {0xeb819e, 0x8238c133}, - {0xeb819f, 0x8238c134}, - {0xeb81a0, 0x8238c135}, - {0xeb81a1, 0x8238c136}, - {0xeb81a2, 0x8238c137}, - {0xeb81a3, 0x8238c138}, - {0xeb81a4, 0x8238c139}, - {0xeb81a5, 0x8238c230}, - {0xeb81a6, 0x8238c231}, - {0xeb81a7, 0x8238c232}, - {0xeb81a8, 0x8238c233}, - {0xeb81a9, 0x8238c234}, - {0xeb81aa, 0x8238c235}, - {0xeb81ab, 0x8238c236}, - {0xeb81ac, 0x8238c237}, - {0xeb81ad, 0x8238c238}, - {0xeb81ae, 0x8238c239}, - {0xeb81af, 0x8238c330}, - {0xeb81b0, 0x8238c331}, - {0xeb81b1, 0x8238c332}, - {0xeb81b2, 0x8238c333}, - {0xeb81b3, 0x8238c334}, - {0xeb81b4, 0x8238c335}, - {0xeb81b5, 0x8238c336}, - {0xeb81b6, 0x8238c337}, - {0xeb81b7, 0x8238c338}, - {0xeb81b8, 0x8238c339}, - {0xeb81b9, 0x8238c430}, - {0xeb81ba, 0x8238c431}, - {0xeb81bb, 0x8238c432}, - {0xeb81bc, 0x8238c433}, - {0xeb81bd, 0x8238c434}, - {0xeb81be, 0x8238c435}, - {0xeb81bf, 0x8238c436}, - {0xeb8280, 0x8238c437}, - {0xeb8281, 0x8238c438}, - {0xeb8282, 0x8238c439}, - {0xeb8283, 0x8238c530}, - {0xeb8284, 0x8238c531}, - {0xeb8285, 0x8238c532}, - {0xeb8286, 0x8238c533}, - {0xeb8287, 0x8238c534}, - {0xeb8288, 0x8238c535}, - {0xeb8289, 0x8238c536}, - {0xeb828a, 0x8238c537}, - {0xeb828b, 0x8238c538}, - {0xeb828c, 0x8238c539}, - {0xeb828d, 0x8238c630}, - {0xeb828e, 0x8238c631}, - {0xeb828f, 0x8238c632}, - {0xeb8290, 0x8238c633}, - {0xeb8291, 0x8238c634}, - {0xeb8292, 0x8238c635}, - {0xeb8293, 0x8238c636}, - {0xeb8294, 0x8238c637}, - {0xeb8295, 0x8238c638}, - {0xeb8296, 0x8238c639}, - {0xeb8297, 0x8238c730}, - {0xeb8298, 0x8238c731}, - {0xeb8299, 0x8238c732}, - {0xeb829a, 0x8238c733}, - {0xeb829b, 0x8238c734}, - {0xeb829c, 0x8238c735}, - {0xeb829d, 0x8238c736}, - {0xeb829e, 0x8238c737}, - {0xeb829f, 0x8238c738}, - {0xeb82a0, 0x8238c739}, - {0xeb82a1, 0x8238c830}, - {0xeb82a2, 0x8238c831}, - {0xeb82a3, 0x8238c832}, - {0xeb82a4, 0x8238c833}, - {0xeb82a5, 0x8238c834}, - {0xeb82a6, 0x8238c835}, - {0xeb82a7, 0x8238c836}, - {0xeb82a8, 0x8238c837}, - {0xeb82a9, 0x8238c838}, - {0xeb82aa, 0x8238c839}, - {0xeb82ab, 0x8238c930}, - {0xeb82ac, 0x8238c931}, - {0xeb82ad, 0x8238c932}, - {0xeb82ae, 0x8238c933}, - {0xeb82af, 0x8238c934}, - {0xeb82b0, 0x8238c935}, - {0xeb82b1, 0x8238c936}, - {0xeb82b2, 0x8238c937}, - {0xeb82b3, 0x8238c938}, - {0xeb82b4, 0x8238c939}, - {0xeb82b5, 0x8238ca30}, - {0xeb82b6, 0x8238ca31}, - {0xeb82b7, 0x8238ca32}, - {0xeb82b8, 0x8238ca33}, - {0xeb82b9, 0x8238ca34}, - {0xeb82ba, 0x8238ca35}, - {0xeb82bb, 0x8238ca36}, - {0xeb82bc, 0x8238ca37}, - {0xeb82bd, 0x8238ca38}, - {0xeb82be, 0x8238ca39}, - {0xeb82bf, 0x8238cb30}, - {0xeb8380, 0x8238cb31}, - {0xeb8381, 0x8238cb32}, - {0xeb8382, 0x8238cb33}, - {0xeb8383, 0x8238cb34}, - {0xeb8384, 0x8238cb35}, - {0xeb8385, 0x8238cb36}, - {0xeb8386, 0x8238cb37}, - {0xeb8387, 0x8238cb38}, - {0xeb8388, 0x8238cb39}, - {0xeb8389, 0x8238cc30}, - {0xeb838a, 0x8238cc31}, - {0xeb838b, 0x8238cc32}, - {0xeb838c, 0x8238cc33}, - {0xeb838d, 0x8238cc34}, - {0xeb838e, 0x8238cc35}, - {0xeb838f, 0x8238cc36}, - {0xeb8390, 0x8238cc37}, - {0xeb8391, 0x8238cc38}, - {0xeb8392, 0x8238cc39}, - {0xeb8393, 0x8238cd30}, - {0xeb8394, 0x8238cd31}, - {0xeb8395, 0x8238cd32}, - {0xeb8396, 0x8238cd33}, - {0xeb8397, 0x8238cd34}, - {0xeb8398, 0x8238cd35}, - {0xeb8399, 0x8238cd36}, - {0xeb839a, 0x8238cd37}, - {0xeb839b, 0x8238cd38}, - {0xeb839c, 0x8238cd39}, - {0xeb839d, 0x8238ce30}, - {0xeb839e, 0x8238ce31}, - {0xeb839f, 0x8238ce32}, - {0xeb83a0, 0x8238ce33}, - {0xeb83a1, 0x8238ce34}, - {0xeb83a2, 0x8238ce35}, - {0xeb83a3, 0x8238ce36}, - {0xeb83a4, 0x8238ce37}, - {0xeb83a5, 0x8238ce38}, - {0xeb83a6, 0x8238ce39}, - {0xeb83a7, 0x8238cf30}, - {0xeb83a8, 0x8238cf31}, - {0xeb83a9, 0x8238cf32}, - {0xeb83aa, 0x8238cf33}, - {0xeb83ab, 0x8238cf34}, - {0xeb83ac, 0x8238cf35}, - {0xeb83ad, 0x8238cf36}, - {0xeb83ae, 0x8238cf37}, - {0xeb83af, 0x8238cf38}, - {0xeb83b0, 0x8238cf39}, - {0xeb83b1, 0x8238d030}, - {0xeb83b2, 0x8238d031}, - {0xeb83b3, 0x8238d032}, - {0xeb83b4, 0x8238d033}, - {0xeb83b5, 0x8238d034}, - {0xeb83b6, 0x8238d035}, - {0xeb83b7, 0x8238d036}, - {0xeb83b8, 0x8238d037}, - {0xeb83b9, 0x8238d038}, - {0xeb83ba, 0x8238d039}, - {0xeb83bb, 0x8238d130}, - {0xeb83bc, 0x8238d131}, - {0xeb83bd, 0x8238d132}, - {0xeb83be, 0x8238d133}, - {0xeb83bf, 0x8238d134}, - {0xeb8480, 0x8238d135}, - {0xeb8481, 0x8238d136}, - {0xeb8482, 0x8238d137}, - {0xeb8483, 0x8238d138}, - {0xeb8484, 0x8238d139}, - {0xeb8485, 0x8238d230}, - {0xeb8486, 0x8238d231}, - {0xeb8487, 0x8238d232}, - {0xeb8488, 0x8238d233}, - {0xeb8489, 0x8238d234}, - {0xeb848a, 0x8238d235}, - {0xeb848b, 0x8238d236}, - {0xeb848c, 0x8238d237}, - {0xeb848d, 0x8238d238}, - {0xeb848e, 0x8238d239}, - {0xeb848f, 0x8238d330}, - {0xeb8490, 0x8238d331}, - {0xeb8491, 0x8238d332}, - {0xeb8492, 0x8238d333}, - {0xeb8493, 0x8238d334}, - {0xeb8494, 0x8238d335}, - {0xeb8495, 0x8238d336}, - {0xeb8496, 0x8238d337}, - {0xeb8497, 0x8238d338}, - {0xeb8498, 0x8238d339}, - {0xeb8499, 0x8238d430}, - {0xeb849a, 0x8238d431}, - {0xeb849b, 0x8238d432}, - {0xeb849c, 0x8238d433}, - {0xeb849d, 0x8238d434}, - {0xeb849e, 0x8238d435}, - {0xeb849f, 0x8238d436}, - {0xeb84a0, 0x8238d437}, - {0xeb84a1, 0x8238d438}, - {0xeb84a2, 0x8238d439}, - {0xeb84a3, 0x8238d530}, - {0xeb84a4, 0x8238d531}, - {0xeb84a5, 0x8238d532}, - {0xeb84a6, 0x8238d533}, - {0xeb84a7, 0x8238d534}, - {0xeb84a8, 0x8238d535}, - {0xeb84a9, 0x8238d536}, - {0xeb84aa, 0x8238d537}, - {0xeb84ab, 0x8238d538}, - {0xeb84ac, 0x8238d539}, - {0xeb84ad, 0x8238d630}, - {0xeb84ae, 0x8238d631}, - {0xeb84af, 0x8238d632}, - {0xeb84b0, 0x8238d633}, - {0xeb84b1, 0x8238d634}, - {0xeb84b2, 0x8238d635}, - {0xeb84b3, 0x8238d636}, - {0xeb84b4, 0x8238d637}, - {0xeb84b5, 0x8238d638}, - {0xeb84b6, 0x8238d639}, - {0xeb84b7, 0x8238d730}, - {0xeb84b8, 0x8238d731}, - {0xeb84b9, 0x8238d732}, - {0xeb84ba, 0x8238d733}, - {0xeb84bb, 0x8238d734}, - {0xeb84bc, 0x8238d735}, - {0xeb84bd, 0x8238d736}, - {0xeb84be, 0x8238d737}, - {0xeb84bf, 0x8238d738}, - {0xeb8580, 0x8238d739}, - {0xeb8581, 0x8238d830}, - {0xeb8582, 0x8238d831}, - {0xeb8583, 0x8238d832}, - {0xeb8584, 0x8238d833}, - {0xeb8585, 0x8238d834}, - {0xeb8586, 0x8238d835}, - {0xeb8587, 0x8238d836}, - {0xeb8588, 0x8238d837}, - {0xeb8589, 0x8238d838}, - {0xeb858a, 0x8238d839}, - {0xeb858b, 0x8238d930}, - {0xeb858c, 0x8238d931}, - {0xeb858d, 0x8238d932}, - {0xeb858e, 0x8238d933}, - {0xeb858f, 0x8238d934}, - {0xeb8590, 0x8238d935}, - {0xeb8591, 0x8238d936}, - {0xeb8592, 0x8238d937}, - {0xeb8593, 0x8238d938}, - {0xeb8594, 0x8238d939}, - {0xeb8595, 0x8238da30}, - {0xeb8596, 0x8238da31}, - {0xeb8597, 0x8238da32}, - {0xeb8598, 0x8238da33}, - {0xeb8599, 0x8238da34}, - {0xeb859a, 0x8238da35}, - {0xeb859b, 0x8238da36}, - {0xeb859c, 0x8238da37}, - {0xeb859d, 0x8238da38}, - {0xeb859e, 0x8238da39}, - {0xeb859f, 0x8238db30}, - {0xeb85a0, 0x8238db31}, - {0xeb85a1, 0x8238db32}, - {0xeb85a2, 0x8238db33}, - {0xeb85a3, 0x8238db34}, - {0xeb85a4, 0x8238db35}, - {0xeb85a5, 0x8238db36}, - {0xeb85a6, 0x8238db37}, - {0xeb85a7, 0x8238db38}, - {0xeb85a8, 0x8238db39}, - {0xeb85a9, 0x8238dc30}, - {0xeb85aa, 0x8238dc31}, - {0xeb85ab, 0x8238dc32}, - {0xeb85ac, 0x8238dc33}, - {0xeb85ad, 0x8238dc34}, - {0xeb85ae, 0x8238dc35}, - {0xeb85af, 0x8238dc36}, - {0xeb85b0, 0x8238dc37}, - {0xeb85b1, 0x8238dc38}, - {0xeb85b2, 0x8238dc39}, - {0xeb85b3, 0x8238dd30}, - {0xeb85b4, 0x8238dd31}, - {0xeb85b5, 0x8238dd32}, - {0xeb85b6, 0x8238dd33}, - {0xeb85b7, 0x8238dd34}, - {0xeb85b8, 0x8238dd35}, - {0xeb85b9, 0x8238dd36}, - {0xeb85ba, 0x8238dd37}, - {0xeb85bb, 0x8238dd38}, - {0xeb85bc, 0x8238dd39}, - {0xeb85bd, 0x8238de30}, - {0xeb85be, 0x8238de31}, - {0xeb85bf, 0x8238de32}, - {0xeb8680, 0x8238de33}, - {0xeb8681, 0x8238de34}, - {0xeb8682, 0x8238de35}, - {0xeb8683, 0x8238de36}, - {0xeb8684, 0x8238de37}, - {0xeb8685, 0x8238de38}, - {0xeb8686, 0x8238de39}, - {0xeb8687, 0x8238df30}, - {0xeb8688, 0x8238df31}, - {0xeb8689, 0x8238df32}, - {0xeb868a, 0x8238df33}, - {0xeb868b, 0x8238df34}, - {0xeb868c, 0x8238df35}, - {0xeb868d, 0x8238df36}, - {0xeb868e, 0x8238df37}, - {0xeb868f, 0x8238df38}, - {0xeb8690, 0x8238df39}, - {0xeb8691, 0x8238e030}, - {0xeb8692, 0x8238e031}, - {0xeb8693, 0x8238e032}, - {0xeb8694, 0x8238e033}, - {0xeb8695, 0x8238e034}, - {0xeb8696, 0x8238e035}, - {0xeb8697, 0x8238e036}, - {0xeb8698, 0x8238e037}, - {0xeb8699, 0x8238e038}, - {0xeb869a, 0x8238e039}, - {0xeb869b, 0x8238e130}, - {0xeb869c, 0x8238e131}, - {0xeb869d, 0x8238e132}, - {0xeb869e, 0x8238e133}, - {0xeb869f, 0x8238e134}, - {0xeb86a0, 0x8238e135}, - {0xeb86a1, 0x8238e136}, - {0xeb86a2, 0x8238e137}, - {0xeb86a3, 0x8238e138}, - {0xeb86a4, 0x8238e139}, - {0xeb86a5, 0x8238e230}, - {0xeb86a6, 0x8238e231}, - {0xeb86a7, 0x8238e232}, - {0xeb86a8, 0x8238e233}, - {0xeb86a9, 0x8238e234}, - {0xeb86aa, 0x8238e235}, - {0xeb86ab, 0x8238e236}, - {0xeb86ac, 0x8238e237}, - {0xeb86ad, 0x8238e238}, - {0xeb86ae, 0x8238e239}, - {0xeb86af, 0x8238e330}, - {0xeb86b0, 0x8238e331}, - {0xeb86b1, 0x8238e332}, - {0xeb86b2, 0x8238e333}, - {0xeb86b3, 0x8238e334}, - {0xeb86b4, 0x8238e335}, - {0xeb86b5, 0x8238e336}, - {0xeb86b6, 0x8238e337}, - {0xeb86b7, 0x8238e338}, - {0xeb86b8, 0x8238e339}, - {0xeb86b9, 0x8238e430}, - {0xeb86ba, 0x8238e431}, - {0xeb86bb, 0x8238e432}, - {0xeb86bc, 0x8238e433}, - {0xeb86bd, 0x8238e434}, - {0xeb86be, 0x8238e435}, - {0xeb86bf, 0x8238e436}, - {0xeb8780, 0x8238e437}, - {0xeb8781, 0x8238e438}, - {0xeb8782, 0x8238e439}, - {0xeb8783, 0x8238e530}, - {0xeb8784, 0x8238e531}, - {0xeb8785, 0x8238e532}, - {0xeb8786, 0x8238e533}, - {0xeb8787, 0x8238e534}, - {0xeb8788, 0x8238e535}, - {0xeb8789, 0x8238e536}, - {0xeb878a, 0x8238e537}, - {0xeb878b, 0x8238e538}, - {0xeb878c, 0x8238e539}, - {0xeb878d, 0x8238e630}, - {0xeb878e, 0x8238e631}, - {0xeb878f, 0x8238e632}, - {0xeb8790, 0x8238e633}, - {0xeb8791, 0x8238e634}, - {0xeb8792, 0x8238e635}, - {0xeb8793, 0x8238e636}, - {0xeb8794, 0x8238e637}, - {0xeb8795, 0x8238e638}, - {0xeb8796, 0x8238e639}, - {0xeb8797, 0x8238e730}, - {0xeb8798, 0x8238e731}, - {0xeb8799, 0x8238e732}, - {0xeb879a, 0x8238e733}, - {0xeb879b, 0x8238e734}, - {0xeb879c, 0x8238e735}, - {0xeb879d, 0x8238e736}, - {0xeb879e, 0x8238e737}, - {0xeb879f, 0x8238e738}, - {0xeb87a0, 0x8238e739}, - {0xeb87a1, 0x8238e830}, - {0xeb87a2, 0x8238e831}, - {0xeb87a3, 0x8238e832}, - {0xeb87a4, 0x8238e833}, - {0xeb87a5, 0x8238e834}, - {0xeb87a6, 0x8238e835}, - {0xeb87a7, 0x8238e836}, - {0xeb87a8, 0x8238e837}, - {0xeb87a9, 0x8238e838}, - {0xeb87aa, 0x8238e839}, - {0xeb87ab, 0x8238e930}, - {0xeb87ac, 0x8238e931}, - {0xeb87ad, 0x8238e932}, - {0xeb87ae, 0x8238e933}, - {0xeb87af, 0x8238e934}, - {0xeb87b0, 0x8238e935}, - {0xeb87b1, 0x8238e936}, - {0xeb87b2, 0x8238e937}, - {0xeb87b3, 0x8238e938}, - {0xeb87b4, 0x8238e939}, - {0xeb87b5, 0x8238ea30}, - {0xeb87b6, 0x8238ea31}, - {0xeb87b7, 0x8238ea32}, - {0xeb87b8, 0x8238ea33}, - {0xeb87b9, 0x8238ea34}, - {0xeb87ba, 0x8238ea35}, - {0xeb87bb, 0x8238ea36}, - {0xeb87bc, 0x8238ea37}, - {0xeb87bd, 0x8238ea38}, - {0xeb87be, 0x8238ea39}, - {0xeb87bf, 0x8238eb30}, - {0xeb8880, 0x8238eb31}, - {0xeb8881, 0x8238eb32}, - {0xeb8882, 0x8238eb33}, - {0xeb8883, 0x8238eb34}, - {0xeb8884, 0x8238eb35}, - {0xeb8885, 0x8238eb36}, - {0xeb8886, 0x8238eb37}, - {0xeb8887, 0x8238eb38}, - {0xeb8888, 0x8238eb39}, - {0xeb8889, 0x8238ec30}, - {0xeb888a, 0x8238ec31}, - {0xeb888b, 0x8238ec32}, - {0xeb888c, 0x8238ec33}, - {0xeb888d, 0x8238ec34}, - {0xeb888e, 0x8238ec35}, - {0xeb888f, 0x8238ec36}, - {0xeb8890, 0x8238ec37}, - {0xeb8891, 0x8238ec38}, - {0xeb8892, 0x8238ec39}, - {0xeb8893, 0x8238ed30}, - {0xeb8894, 0x8238ed31}, - {0xeb8895, 0x8238ed32}, - {0xeb8896, 0x8238ed33}, - {0xeb8897, 0x8238ed34}, - {0xeb8898, 0x8238ed35}, - {0xeb8899, 0x8238ed36}, - {0xeb889a, 0x8238ed37}, - {0xeb889b, 0x8238ed38}, - {0xeb889c, 0x8238ed39}, - {0xeb889d, 0x8238ee30}, - {0xeb889e, 0x8238ee31}, - {0xeb889f, 0x8238ee32}, - {0xeb88a0, 0x8238ee33}, - {0xeb88a1, 0x8238ee34}, - {0xeb88a2, 0x8238ee35}, - {0xeb88a3, 0x8238ee36}, - {0xeb88a4, 0x8238ee37}, - {0xeb88a5, 0x8238ee38}, - {0xeb88a6, 0x8238ee39}, - {0xeb88a7, 0x8238ef30}, - {0xeb88a8, 0x8238ef31}, - {0xeb88a9, 0x8238ef32}, - {0xeb88aa, 0x8238ef33}, - {0xeb88ab, 0x8238ef34}, - {0xeb88ac, 0x8238ef35}, - {0xeb88ad, 0x8238ef36}, - {0xeb88ae, 0x8238ef37}, - {0xeb88af, 0x8238ef38}, - {0xeb88b0, 0x8238ef39}, - {0xeb88b1, 0x8238f030}, - {0xeb88b2, 0x8238f031}, - {0xeb88b3, 0x8238f032}, - {0xeb88b4, 0x8238f033}, - {0xeb88b5, 0x8238f034}, - {0xeb88b6, 0x8238f035}, - {0xeb88b7, 0x8238f036}, - {0xeb88b8, 0x8238f037}, - {0xeb88b9, 0x8238f038}, - {0xeb88ba, 0x8238f039}, - {0xeb88bb, 0x8238f130}, - {0xeb88bc, 0x8238f131}, - {0xeb88bd, 0x8238f132}, - {0xeb88be, 0x8238f133}, - {0xeb88bf, 0x8238f134}, - {0xeb8980, 0x8238f135}, - {0xeb8981, 0x8238f136}, - {0xeb8982, 0x8238f137}, - {0xeb8983, 0x8238f138}, - {0xeb8984, 0x8238f139}, - {0xeb8985, 0x8238f230}, - {0xeb8986, 0x8238f231}, - {0xeb8987, 0x8238f232}, - {0xeb8988, 0x8238f233}, - {0xeb8989, 0x8238f234}, - {0xeb898a, 0x8238f235}, - {0xeb898b, 0x8238f236}, - {0xeb898c, 0x8238f237}, - {0xeb898d, 0x8238f238}, - {0xeb898e, 0x8238f239}, - {0xeb898f, 0x8238f330}, - {0xeb8990, 0x8238f331}, - {0xeb8991, 0x8238f332}, - {0xeb8992, 0x8238f333}, - {0xeb8993, 0x8238f334}, - {0xeb8994, 0x8238f335}, - {0xeb8995, 0x8238f336}, - {0xeb8996, 0x8238f337}, - {0xeb8997, 0x8238f338}, - {0xeb8998, 0x8238f339}, - {0xeb8999, 0x8238f430}, - {0xeb899a, 0x8238f431}, - {0xeb899b, 0x8238f432}, - {0xeb899c, 0x8238f433}, - {0xeb899d, 0x8238f434}, - {0xeb899e, 0x8238f435}, - {0xeb899f, 0x8238f436}, - {0xeb89a0, 0x8238f437}, - {0xeb89a1, 0x8238f438}, - {0xeb89a2, 0x8238f439}, - {0xeb89a3, 0x8238f530}, - {0xeb89a4, 0x8238f531}, - {0xeb89a5, 0x8238f532}, - {0xeb89a6, 0x8238f533}, - {0xeb89a7, 0x8238f534}, - {0xeb89a8, 0x8238f535}, - {0xeb89a9, 0x8238f536}, - {0xeb89aa, 0x8238f537}, - {0xeb89ab, 0x8238f538}, - {0xeb89ac, 0x8238f539}, - {0xeb89ad, 0x8238f630}, - {0xeb89ae, 0x8238f631}, - {0xeb89af, 0x8238f632}, - {0xeb89b0, 0x8238f633}, - {0xeb89b1, 0x8238f634}, - {0xeb89b2, 0x8238f635}, - {0xeb89b3, 0x8238f636}, - {0xeb89b4, 0x8238f637}, - {0xeb89b5, 0x8238f638}, - {0xeb89b6, 0x8238f639}, - {0xeb89b7, 0x8238f730}, - {0xeb89b8, 0x8238f731}, - {0xeb89b9, 0x8238f732}, - {0xeb89ba, 0x8238f733}, - {0xeb89bb, 0x8238f734}, - {0xeb89bc, 0x8238f735}, - {0xeb89bd, 0x8238f736}, - {0xeb89be, 0x8238f737}, - {0xeb89bf, 0x8238f738}, - {0xeb8a80, 0x8238f739}, - {0xeb8a81, 0x8238f830}, - {0xeb8a82, 0x8238f831}, - {0xeb8a83, 0x8238f832}, - {0xeb8a84, 0x8238f833}, - {0xeb8a85, 0x8238f834}, - {0xeb8a86, 0x8238f835}, - {0xeb8a87, 0x8238f836}, - {0xeb8a88, 0x8238f837}, - {0xeb8a89, 0x8238f838}, - {0xeb8a8a, 0x8238f839}, - {0xeb8a8b, 0x8238f930}, - {0xeb8a8c, 0x8238f931}, - {0xeb8a8d, 0x8238f932}, - {0xeb8a8e, 0x8238f933}, - {0xeb8a8f, 0x8238f934}, - {0xeb8a90, 0x8238f935}, - {0xeb8a91, 0x8238f936}, - {0xeb8a92, 0x8238f937}, - {0xeb8a93, 0x8238f938}, - {0xeb8a94, 0x8238f939}, - {0xeb8a95, 0x8238fa30}, - {0xeb8a96, 0x8238fa31}, - {0xeb8a97, 0x8238fa32}, - {0xeb8a98, 0x8238fa33}, - {0xeb8a99, 0x8238fa34}, - {0xeb8a9a, 0x8238fa35}, - {0xeb8a9b, 0x8238fa36}, - {0xeb8a9c, 0x8238fa37}, - {0xeb8a9d, 0x8238fa38}, - {0xeb8a9e, 0x8238fa39}, - {0xeb8a9f, 0x8238fb30}, - {0xeb8aa0, 0x8238fb31}, - {0xeb8aa1, 0x8238fb32}, - {0xeb8aa2, 0x8238fb33}, - {0xeb8aa3, 0x8238fb34}, - {0xeb8aa4, 0x8238fb35}, - {0xeb8aa5, 0x8238fb36}, - {0xeb8aa6, 0x8238fb37}, - {0xeb8aa7, 0x8238fb38}, - {0xeb8aa8, 0x8238fb39}, - {0xeb8aa9, 0x8238fc30}, - {0xeb8aaa, 0x8238fc31}, - {0xeb8aab, 0x8238fc32}, - {0xeb8aac, 0x8238fc33}, - {0xeb8aad, 0x8238fc34}, - {0xeb8aae, 0x8238fc35}, - {0xeb8aaf, 0x8238fc36}, - {0xeb8ab0, 0x8238fc37}, - {0xeb8ab1, 0x8238fc38}, - {0xeb8ab2, 0x8238fc39}, - {0xeb8ab3, 0x8238fd30}, - {0xeb8ab4, 0x8238fd31}, - {0xeb8ab5, 0x8238fd32}, - {0xeb8ab6, 0x8238fd33}, - {0xeb8ab7, 0x8238fd34}, - {0xeb8ab8, 0x8238fd35}, - {0xeb8ab9, 0x8238fd36}, - {0xeb8aba, 0x8238fd37}, - {0xeb8abb, 0x8238fd38}, - {0xeb8abc, 0x8238fd39}, - {0xeb8abd, 0x8238fe30}, - {0xeb8abe, 0x8238fe31}, - {0xeb8abf, 0x8238fe32}, - {0xeb8b80, 0x8238fe33}, - {0xeb8b81, 0x8238fe34}, - {0xeb8b82, 0x8238fe35}, - {0xeb8b83, 0x8238fe36}, - {0xeb8b84, 0x8238fe37}, - {0xeb8b85, 0x8238fe38}, - {0xeb8b86, 0x8238fe39}, - {0xeb8b87, 0x82398130}, - {0xeb8b88, 0x82398131}, - {0xeb8b89, 0x82398132}, - {0xeb8b8a, 0x82398133}, - {0xeb8b8b, 0x82398134}, - {0xeb8b8c, 0x82398135}, - {0xeb8b8d, 0x82398136}, - {0xeb8b8e, 0x82398137}, - {0xeb8b8f, 0x82398138}, - {0xeb8b90, 0x82398139}, - {0xeb8b91, 0x82398230}, - {0xeb8b92, 0x82398231}, - {0xeb8b93, 0x82398232}, - {0xeb8b94, 0x82398233}, - {0xeb8b95, 0x82398234}, - {0xeb8b96, 0x82398235}, - {0xeb8b97, 0x82398236}, - {0xeb8b98, 0x82398237}, - {0xeb8b99, 0x82398238}, - {0xeb8b9a, 0x82398239}, - {0xeb8b9b, 0x82398330}, - {0xeb8b9c, 0x82398331}, - {0xeb8b9d, 0x82398332}, - {0xeb8b9e, 0x82398333}, - {0xeb8b9f, 0x82398334}, - {0xeb8ba0, 0x82398335}, - {0xeb8ba1, 0x82398336}, - {0xeb8ba2, 0x82398337}, - {0xeb8ba3, 0x82398338}, - {0xeb8ba4, 0x82398339}, - {0xeb8ba5, 0x82398430}, - {0xeb8ba6, 0x82398431}, - {0xeb8ba7, 0x82398432}, - {0xeb8ba8, 0x82398433}, - {0xeb8ba9, 0x82398434}, - {0xeb8baa, 0x82398435}, - {0xeb8bab, 0x82398436}, - {0xeb8bac, 0x82398437}, - {0xeb8bad, 0x82398438}, - {0xeb8bae, 0x82398439}, - {0xeb8baf, 0x82398530}, - {0xeb8bb0, 0x82398531}, - {0xeb8bb1, 0x82398532}, - {0xeb8bb2, 0x82398533}, - {0xeb8bb3, 0x82398534}, - {0xeb8bb4, 0x82398535}, - {0xeb8bb5, 0x82398536}, - {0xeb8bb6, 0x82398537}, - {0xeb8bb7, 0x82398538}, - {0xeb8bb8, 0x82398539}, - {0xeb8bb9, 0x82398630}, - {0xeb8bba, 0x82398631}, - {0xeb8bbb, 0x82398632}, - {0xeb8bbc, 0x82398633}, - {0xeb8bbd, 0x82398634}, - {0xeb8bbe, 0x82398635}, - {0xeb8bbf, 0x82398636}, - {0xeb8c80, 0x82398637}, - {0xeb8c81, 0x82398638}, - {0xeb8c82, 0x82398639}, - {0xeb8c83, 0x82398730}, - {0xeb8c84, 0x82398731}, - {0xeb8c85, 0x82398732}, - {0xeb8c86, 0x82398733}, - {0xeb8c87, 0x82398734}, - {0xeb8c88, 0x82398735}, - {0xeb8c89, 0x82398736}, - {0xeb8c8a, 0x82398737}, - {0xeb8c8b, 0x82398738}, - {0xeb8c8c, 0x82398739}, - {0xeb8c8d, 0x82398830}, - {0xeb8c8e, 0x82398831}, - {0xeb8c8f, 0x82398832}, - {0xeb8c90, 0x82398833}, - {0xeb8c91, 0x82398834}, - {0xeb8c92, 0x82398835}, - {0xeb8c93, 0x82398836}, - {0xeb8c94, 0x82398837}, - {0xeb8c95, 0x82398838}, - {0xeb8c96, 0x82398839}, - {0xeb8c97, 0x82398930}, - {0xeb8c98, 0x82398931}, - {0xeb8c99, 0x82398932}, - {0xeb8c9a, 0x82398933}, - {0xeb8c9b, 0x82398934}, - {0xeb8c9c, 0x82398935}, - {0xeb8c9d, 0x82398936}, - {0xeb8c9e, 0x82398937}, - {0xeb8c9f, 0x82398938}, - {0xeb8ca0, 0x82398939}, - {0xeb8ca1, 0x82398a30}, - {0xeb8ca2, 0x82398a31}, - {0xeb8ca3, 0x82398a32}, - {0xeb8ca4, 0x82398a33}, - {0xeb8ca5, 0x82398a34}, - {0xeb8ca6, 0x82398a35}, - {0xeb8ca7, 0x82398a36}, - {0xeb8ca8, 0x82398a37}, - {0xeb8ca9, 0x82398a38}, - {0xeb8caa, 0x82398a39}, - {0xeb8cab, 0x82398b30}, - {0xeb8cac, 0x82398b31}, - {0xeb8cad, 0x82398b32}, - {0xeb8cae, 0x82398b33}, - {0xeb8caf, 0x82398b34}, - {0xeb8cb0, 0x82398b35}, - {0xeb8cb1, 0x82398b36}, - {0xeb8cb2, 0x82398b37}, - {0xeb8cb3, 0x82398b38}, - {0xeb8cb4, 0x82398b39}, - {0xeb8cb5, 0x82398c30}, - {0xeb8cb6, 0x82398c31}, - {0xeb8cb7, 0x82398c32}, - {0xeb8cb8, 0x82398c33}, - {0xeb8cb9, 0x82398c34}, - {0xeb8cba, 0x82398c35}, - {0xeb8cbb, 0x82398c36}, - {0xeb8cbc, 0x82398c37}, - {0xeb8cbd, 0x82398c38}, - {0xeb8cbe, 0x82398c39}, - {0xeb8cbf, 0x82398d30}, - {0xeb8d80, 0x82398d31}, - {0xeb8d81, 0x82398d32}, - {0xeb8d82, 0x82398d33}, - {0xeb8d83, 0x82398d34}, - {0xeb8d84, 0x82398d35}, - {0xeb8d85, 0x82398d36}, - {0xeb8d86, 0x82398d37}, - {0xeb8d87, 0x82398d38}, - {0xeb8d88, 0x82398d39}, - {0xeb8d89, 0x82398e30}, - {0xeb8d8a, 0x82398e31}, - {0xeb8d8b, 0x82398e32}, - {0xeb8d8c, 0x82398e33}, - {0xeb8d8d, 0x82398e34}, - {0xeb8d8e, 0x82398e35}, - {0xeb8d8f, 0x82398e36}, - {0xeb8d90, 0x82398e37}, - {0xeb8d91, 0x82398e38}, - {0xeb8d92, 0x82398e39}, - {0xeb8d93, 0x82398f30}, - {0xeb8d94, 0x82398f31}, - {0xeb8d95, 0x82398f32}, - {0xeb8d96, 0x82398f33}, - {0xeb8d97, 0x82398f34}, - {0xeb8d98, 0x82398f35}, - {0xeb8d99, 0x82398f36}, - {0xeb8d9a, 0x82398f37}, - {0xeb8d9b, 0x82398f38}, - {0xeb8d9c, 0x82398f39}, - {0xeb8d9d, 0x82399030}, - {0xeb8d9e, 0x82399031}, - {0xeb8d9f, 0x82399032}, - {0xeb8da0, 0x82399033}, - {0xeb8da1, 0x82399034}, - {0xeb8da2, 0x82399035}, - {0xeb8da3, 0x82399036}, - {0xeb8da4, 0x82399037}, - {0xeb8da5, 0x82399038}, - {0xeb8da6, 0x82399039}, - {0xeb8da7, 0x82399130}, - {0xeb8da8, 0x82399131}, - {0xeb8da9, 0x82399132}, - {0xeb8daa, 0x82399133}, - {0xeb8dab, 0x82399134}, - {0xeb8dac, 0x82399135}, - {0xeb8dad, 0x82399136}, - {0xeb8dae, 0x82399137}, - {0xeb8daf, 0x82399138}, - {0xeb8db0, 0x82399139}, - {0xeb8db1, 0x82399230}, - {0xeb8db2, 0x82399231}, - {0xeb8db3, 0x82399232}, - {0xeb8db4, 0x82399233}, - {0xeb8db5, 0x82399234}, - {0xeb8db6, 0x82399235}, - {0xeb8db7, 0x82399236}, - {0xeb8db8, 0x82399237}, - {0xeb8db9, 0x82399238}, - {0xeb8dba, 0x82399239}, - {0xeb8dbb, 0x82399330}, - {0xeb8dbc, 0x82399331}, - {0xeb8dbd, 0x82399332}, - {0xeb8dbe, 0x82399333}, - {0xeb8dbf, 0x82399334}, - {0xeb8e80, 0x82399335}, - {0xeb8e81, 0x82399336}, - {0xeb8e82, 0x82399337}, - {0xeb8e83, 0x82399338}, - {0xeb8e84, 0x82399339}, - {0xeb8e85, 0x82399430}, - {0xeb8e86, 0x82399431}, - {0xeb8e87, 0x82399432}, - {0xeb8e88, 0x82399433}, - {0xeb8e89, 0x82399434}, - {0xeb8e8a, 0x82399435}, - {0xeb8e8b, 0x82399436}, - {0xeb8e8c, 0x82399437}, - {0xeb8e8d, 0x82399438}, - {0xeb8e8e, 0x82399439}, - {0xeb8e8f, 0x82399530}, - {0xeb8e90, 0x82399531}, - {0xeb8e91, 0x82399532}, - {0xeb8e92, 0x82399533}, - {0xeb8e93, 0x82399534}, - {0xeb8e94, 0x82399535}, - {0xeb8e95, 0x82399536}, - {0xeb8e96, 0x82399537}, - {0xeb8e97, 0x82399538}, - {0xeb8e98, 0x82399539}, - {0xeb8e99, 0x82399630}, - {0xeb8e9a, 0x82399631}, - {0xeb8e9b, 0x82399632}, - {0xeb8e9c, 0x82399633}, - {0xeb8e9d, 0x82399634}, - {0xeb8e9e, 0x82399635}, - {0xeb8e9f, 0x82399636}, - {0xeb8ea0, 0x82399637}, - {0xeb8ea1, 0x82399638}, - {0xeb8ea2, 0x82399639}, - {0xeb8ea3, 0x82399730}, - {0xeb8ea4, 0x82399731}, - {0xeb8ea5, 0x82399732}, - {0xeb8ea6, 0x82399733}, - {0xeb8ea7, 0x82399734}, - {0xeb8ea8, 0x82399735}, - {0xeb8ea9, 0x82399736}, - {0xeb8eaa, 0x82399737}, - {0xeb8eab, 0x82399738}, - {0xeb8eac, 0x82399739}, - {0xeb8ead, 0x82399830}, - {0xeb8eae, 0x82399831}, - {0xeb8eaf, 0x82399832}, - {0xeb8eb0, 0x82399833}, - {0xeb8eb1, 0x82399834}, - {0xeb8eb2, 0x82399835}, - {0xeb8eb3, 0x82399836}, - {0xeb8eb4, 0x82399837}, - {0xeb8eb5, 0x82399838}, - {0xeb8eb6, 0x82399839}, - {0xeb8eb7, 0x82399930}, - {0xeb8eb8, 0x82399931}, - {0xeb8eb9, 0x82399932}, - {0xeb8eba, 0x82399933}, - {0xeb8ebb, 0x82399934}, - {0xeb8ebc, 0x82399935}, - {0xeb8ebd, 0x82399936}, - {0xeb8ebe, 0x82399937}, - {0xeb8ebf, 0x82399938}, - {0xeb8f80, 0x82399939}, - {0xeb8f81, 0x82399a30}, - {0xeb8f82, 0x82399a31}, - {0xeb8f83, 0x82399a32}, - {0xeb8f84, 0x82399a33}, - {0xeb8f85, 0x82399a34}, - {0xeb8f86, 0x82399a35}, - {0xeb8f87, 0x82399a36}, - {0xeb8f88, 0x82399a37}, - {0xeb8f89, 0x82399a38}, - {0xeb8f8a, 0x82399a39}, - {0xeb8f8b, 0x82399b30}, - {0xeb8f8c, 0x82399b31}, - {0xeb8f8d, 0x82399b32}, - {0xeb8f8e, 0x82399b33}, - {0xeb8f8f, 0x82399b34}, - {0xeb8f90, 0x82399b35}, - {0xeb8f91, 0x82399b36}, - {0xeb8f92, 0x82399b37}, - {0xeb8f93, 0x82399b38}, - {0xeb8f94, 0x82399b39}, - {0xeb8f95, 0x82399c30}, - {0xeb8f96, 0x82399c31}, - {0xeb8f97, 0x82399c32}, - {0xeb8f98, 0x82399c33}, - {0xeb8f99, 0x82399c34}, - {0xeb8f9a, 0x82399c35}, - {0xeb8f9b, 0x82399c36}, - {0xeb8f9c, 0x82399c37}, - {0xeb8f9d, 0x82399c38}, - {0xeb8f9e, 0x82399c39}, - {0xeb8f9f, 0x82399d30}, - {0xeb8fa0, 0x82399d31}, - {0xeb8fa1, 0x82399d32}, - {0xeb8fa2, 0x82399d33}, - {0xeb8fa3, 0x82399d34}, - {0xeb8fa4, 0x82399d35}, - {0xeb8fa5, 0x82399d36}, - {0xeb8fa6, 0x82399d37}, - {0xeb8fa7, 0x82399d38}, - {0xeb8fa8, 0x82399d39}, - {0xeb8fa9, 0x82399e30}, - {0xeb8faa, 0x82399e31}, - {0xeb8fab, 0x82399e32}, - {0xeb8fac, 0x82399e33}, - {0xeb8fad, 0x82399e34}, - {0xeb8fae, 0x82399e35}, - {0xeb8faf, 0x82399e36}, - {0xeb8fb0, 0x82399e37}, - {0xeb8fb1, 0x82399e38}, - {0xeb8fb2, 0x82399e39}, - {0xeb8fb3, 0x82399f30}, - {0xeb8fb4, 0x82399f31}, - {0xeb8fb5, 0x82399f32}, - {0xeb8fb6, 0x82399f33}, - {0xeb8fb7, 0x82399f34}, - {0xeb8fb8, 0x82399f35}, - {0xeb8fb9, 0x82399f36}, - {0xeb8fba, 0x82399f37}, - {0xeb8fbb, 0x82399f38}, - {0xeb8fbc, 0x82399f39}, - {0xeb8fbd, 0x8239a030}, - {0xeb8fbe, 0x8239a031}, - {0xeb8fbf, 0x8239a032}, - {0xeb9080, 0x8239a033}, - {0xeb9081, 0x8239a034}, - {0xeb9082, 0x8239a035}, - {0xeb9083, 0x8239a036}, - {0xeb9084, 0x8239a037}, - {0xeb9085, 0x8239a038}, - {0xeb9086, 0x8239a039}, - {0xeb9087, 0x8239a130}, - {0xeb9088, 0x8239a131}, - {0xeb9089, 0x8239a132}, - {0xeb908a, 0x8239a133}, - {0xeb908b, 0x8239a134}, - {0xeb908c, 0x8239a135}, - {0xeb908d, 0x8239a136}, - {0xeb908e, 0x8239a137}, - {0xeb908f, 0x8239a138}, - {0xeb9090, 0x8239a139}, - {0xeb9091, 0x8239a230}, - {0xeb9092, 0x8239a231}, - {0xeb9093, 0x8239a232}, - {0xeb9094, 0x8239a233}, - {0xeb9095, 0x8239a234}, - {0xeb9096, 0x8239a235}, - {0xeb9097, 0x8239a236}, - {0xeb9098, 0x8239a237}, - {0xeb9099, 0x8239a238}, - {0xeb909a, 0x8239a239}, - {0xeb909b, 0x8239a330}, - {0xeb909c, 0x8239a331}, - {0xeb909d, 0x8239a332}, - {0xeb909e, 0x8239a333}, - {0xeb909f, 0x8239a334}, - {0xeb90a0, 0x8239a335}, - {0xeb90a1, 0x8239a336}, - {0xeb90a2, 0x8239a337}, - {0xeb90a3, 0x8239a338}, - {0xeb90a4, 0x8239a339}, - {0xeb90a5, 0x8239a430}, - {0xeb90a6, 0x8239a431}, - {0xeb90a7, 0x8239a432}, - {0xeb90a8, 0x8239a433}, - {0xeb90a9, 0x8239a434}, - {0xeb90aa, 0x8239a435}, - {0xeb90ab, 0x8239a436}, - {0xeb90ac, 0x8239a437}, - {0xeb90ad, 0x8239a438}, - {0xeb90ae, 0x8239a439}, - {0xeb90af, 0x8239a530}, - {0xeb90b0, 0x8239a531}, - {0xeb90b1, 0x8239a532}, - {0xeb90b2, 0x8239a533}, - {0xeb90b3, 0x8239a534}, - {0xeb90b4, 0x8239a535}, - {0xeb90b5, 0x8239a536}, - {0xeb90b6, 0x8239a537}, - {0xeb90b7, 0x8239a538}, - {0xeb90b8, 0x8239a539}, - {0xeb90b9, 0x8239a630}, - {0xeb90ba, 0x8239a631}, - {0xeb90bb, 0x8239a632}, - {0xeb90bc, 0x8239a633}, - {0xeb90bd, 0x8239a634}, - {0xeb90be, 0x8239a635}, - {0xeb90bf, 0x8239a636}, - {0xeb9180, 0x8239a637}, - {0xeb9181, 0x8239a638}, - {0xeb9182, 0x8239a639}, - {0xeb9183, 0x8239a730}, - {0xeb9184, 0x8239a731}, - {0xeb9185, 0x8239a732}, - {0xeb9186, 0x8239a733}, - {0xeb9187, 0x8239a734}, - {0xeb9188, 0x8239a735}, - {0xeb9189, 0x8239a736}, - {0xeb918a, 0x8239a737}, - {0xeb918b, 0x8239a738}, - {0xeb918c, 0x8239a739}, - {0xeb918d, 0x8239a830}, - {0xeb918e, 0x8239a831}, - {0xeb918f, 0x8239a832}, - {0xeb9190, 0x8239a833}, - {0xeb9191, 0x8239a834}, - {0xeb9192, 0x8239a835}, - {0xeb9193, 0x8239a836}, - {0xeb9194, 0x8239a837}, - {0xeb9195, 0x8239a838}, - {0xeb9196, 0x8239a839}, - {0xeb9197, 0x8239a930}, - {0xeb9198, 0x8239a931}, - {0xeb9199, 0x8239a932}, - {0xeb919a, 0x8239a933}, - {0xeb919b, 0x8239a934}, - {0xeb919c, 0x8239a935}, - {0xeb919d, 0x8239a936}, - {0xeb919e, 0x8239a937}, - {0xeb919f, 0x8239a938}, - {0xeb91a0, 0x8239a939}, - {0xeb91a1, 0x8239aa30}, - {0xeb91a2, 0x8239aa31}, - {0xeb91a3, 0x8239aa32}, - {0xeb91a4, 0x8239aa33}, - {0xeb91a5, 0x8239aa34}, - {0xeb91a6, 0x8239aa35}, - {0xeb91a7, 0x8239aa36}, - {0xeb91a8, 0x8239aa37}, - {0xeb91a9, 0x8239aa38}, - {0xeb91aa, 0x8239aa39}, - {0xeb91ab, 0x8239ab30}, - {0xeb91ac, 0x8239ab31}, - {0xeb91ad, 0x8239ab32}, - {0xeb91ae, 0x8239ab33}, - {0xeb91af, 0x8239ab34}, - {0xeb91b0, 0x8239ab35}, - {0xeb91b1, 0x8239ab36}, - {0xeb91b2, 0x8239ab37}, - {0xeb91b3, 0x8239ab38}, - {0xeb91b4, 0x8239ab39}, - {0xeb91b5, 0x8239ac30}, - {0xeb91b6, 0x8239ac31}, - {0xeb91b7, 0x8239ac32}, - {0xeb91b8, 0x8239ac33}, - {0xeb91b9, 0x8239ac34}, - {0xeb91ba, 0x8239ac35}, - {0xeb91bb, 0x8239ac36}, - {0xeb91bc, 0x8239ac37}, - {0xeb91bd, 0x8239ac38}, - {0xeb91be, 0x8239ac39}, - {0xeb91bf, 0x8239ad30}, - {0xeb9280, 0x8239ad31}, - {0xeb9281, 0x8239ad32}, - {0xeb9282, 0x8239ad33}, - {0xeb9283, 0x8239ad34}, - {0xeb9284, 0x8239ad35}, - {0xeb9285, 0x8239ad36}, - {0xeb9286, 0x8239ad37}, - {0xeb9287, 0x8239ad38}, - {0xeb9288, 0x8239ad39}, - {0xeb9289, 0x8239ae30}, - {0xeb928a, 0x8239ae31}, - {0xeb928b, 0x8239ae32}, - {0xeb928c, 0x8239ae33}, - {0xeb928d, 0x8239ae34}, - {0xeb928e, 0x8239ae35}, - {0xeb928f, 0x8239ae36}, - {0xeb9290, 0x8239ae37}, - {0xeb9291, 0x8239ae38}, - {0xeb9292, 0x8239ae39}, - {0xeb9293, 0x8239af30}, - {0xeb9294, 0x8239af31}, - {0xeb9295, 0x8239af32}, - {0xeb9296, 0x8239af33}, - {0xeb9297, 0x8239af34}, - {0xeb9298, 0x8239af35}, - {0xeb9299, 0x8239af36}, - {0xeb929a, 0x8239af37}, - {0xeb929b, 0x8239af38}, - {0xeb929c, 0x8239af39}, - {0xeb929d, 0x8239b030}, - {0xeb929e, 0x8239b031}, - {0xeb929f, 0x8239b032}, - {0xeb92a0, 0x8239b033}, - {0xeb92a1, 0x8239b034}, - {0xeb92a2, 0x8239b035}, - {0xeb92a3, 0x8239b036}, - {0xeb92a4, 0x8239b037}, - {0xeb92a5, 0x8239b038}, - {0xeb92a6, 0x8239b039}, - {0xeb92a7, 0x8239b130}, - {0xeb92a8, 0x8239b131}, - {0xeb92a9, 0x8239b132}, - {0xeb92aa, 0x8239b133}, - {0xeb92ab, 0x8239b134}, - {0xeb92ac, 0x8239b135}, - {0xeb92ad, 0x8239b136}, - {0xeb92ae, 0x8239b137}, - {0xeb92af, 0x8239b138}, - {0xeb92b0, 0x8239b139}, - {0xeb92b1, 0x8239b230}, - {0xeb92b2, 0x8239b231}, - {0xeb92b3, 0x8239b232}, - {0xeb92b4, 0x8239b233}, - {0xeb92b5, 0x8239b234}, - {0xeb92b6, 0x8239b235}, - {0xeb92b7, 0x8239b236}, - {0xeb92b8, 0x8239b237}, - {0xeb92b9, 0x8239b238}, - {0xeb92ba, 0x8239b239}, - {0xeb92bb, 0x8239b330}, - {0xeb92bc, 0x8239b331}, - {0xeb92bd, 0x8239b332}, - {0xeb92be, 0x8239b333}, - {0xeb92bf, 0x8239b334}, - {0xeb9380, 0x8239b335}, - {0xeb9381, 0x8239b336}, - {0xeb9382, 0x8239b337}, - {0xeb9383, 0x8239b338}, - {0xeb9384, 0x8239b339}, - {0xeb9385, 0x8239b430}, - {0xeb9386, 0x8239b431}, - {0xeb9387, 0x8239b432}, - {0xeb9388, 0x8239b433}, - {0xeb9389, 0x8239b434}, - {0xeb938a, 0x8239b435}, - {0xeb938b, 0x8239b436}, - {0xeb938c, 0x8239b437}, - {0xeb938d, 0x8239b438}, - {0xeb938e, 0x8239b439}, - {0xeb938f, 0x8239b530}, - {0xeb9390, 0x8239b531}, - {0xeb9391, 0x8239b532}, - {0xeb9392, 0x8239b533}, - {0xeb9393, 0x8239b534}, - {0xeb9394, 0x8239b535}, - {0xeb9395, 0x8239b536}, - {0xeb9396, 0x8239b537}, - {0xeb9397, 0x8239b538}, - {0xeb9398, 0x8239b539}, - {0xeb9399, 0x8239b630}, - {0xeb939a, 0x8239b631}, - {0xeb939b, 0x8239b632}, - {0xeb939c, 0x8239b633}, - {0xeb939d, 0x8239b634}, - {0xeb939e, 0x8239b635}, - {0xeb939f, 0x8239b636}, - {0xeb93a0, 0x8239b637}, - {0xeb93a1, 0x8239b638}, - {0xeb93a2, 0x8239b639}, - {0xeb93a3, 0x8239b730}, - {0xeb93a4, 0x8239b731}, - {0xeb93a5, 0x8239b732}, - {0xeb93a6, 0x8239b733}, - {0xeb93a7, 0x8239b734}, - {0xeb93a8, 0x8239b735}, - {0xeb93a9, 0x8239b736}, - {0xeb93aa, 0x8239b737}, - {0xeb93ab, 0x8239b738}, - {0xeb93ac, 0x8239b739}, - {0xeb93ad, 0x8239b830}, - {0xeb93ae, 0x8239b831}, - {0xeb93af, 0x8239b832}, - {0xeb93b0, 0x8239b833}, - {0xeb93b1, 0x8239b834}, - {0xeb93b2, 0x8239b835}, - {0xeb93b3, 0x8239b836}, - {0xeb93b4, 0x8239b837}, - {0xeb93b5, 0x8239b838}, - {0xeb93b6, 0x8239b839}, - {0xeb93b7, 0x8239b930}, - {0xeb93b8, 0x8239b931}, - {0xeb93b9, 0x8239b932}, - {0xeb93ba, 0x8239b933}, - {0xeb93bb, 0x8239b934}, - {0xeb93bc, 0x8239b935}, - {0xeb93bd, 0x8239b936}, - {0xeb93be, 0x8239b937}, - {0xeb93bf, 0x8239b938}, - {0xeb9480, 0x8239b939}, - {0xeb9481, 0x8239ba30}, - {0xeb9482, 0x8239ba31}, - {0xeb9483, 0x8239ba32}, - {0xeb9484, 0x8239ba33}, - {0xeb9485, 0x8239ba34}, - {0xeb9486, 0x8239ba35}, - {0xeb9487, 0x8239ba36}, - {0xeb9488, 0x8239ba37}, - {0xeb9489, 0x8239ba38}, - {0xeb948a, 0x8239ba39}, - {0xeb948b, 0x8239bb30}, - {0xeb948c, 0x8239bb31}, - {0xeb948d, 0x8239bb32}, - {0xeb948e, 0x8239bb33}, - {0xeb948f, 0x8239bb34}, - {0xeb9490, 0x8239bb35}, - {0xeb9491, 0x8239bb36}, - {0xeb9492, 0x8239bb37}, - {0xeb9493, 0x8239bb38}, - {0xeb9494, 0x8239bb39}, - {0xeb9495, 0x8239bc30}, - {0xeb9496, 0x8239bc31}, - {0xeb9497, 0x8239bc32}, - {0xeb9498, 0x8239bc33}, - {0xeb9499, 0x8239bc34}, - {0xeb949a, 0x8239bc35}, - {0xeb949b, 0x8239bc36}, - {0xeb949c, 0x8239bc37}, - {0xeb949d, 0x8239bc38}, - {0xeb949e, 0x8239bc39}, - {0xeb949f, 0x8239bd30}, - {0xeb94a0, 0x8239bd31}, - {0xeb94a1, 0x8239bd32}, - {0xeb94a2, 0x8239bd33}, - {0xeb94a3, 0x8239bd34}, - {0xeb94a4, 0x8239bd35}, - {0xeb94a5, 0x8239bd36}, - {0xeb94a6, 0x8239bd37}, - {0xeb94a7, 0x8239bd38}, - {0xeb94a8, 0x8239bd39}, - {0xeb94a9, 0x8239be30}, - {0xeb94aa, 0x8239be31}, - {0xeb94ab, 0x8239be32}, - {0xeb94ac, 0x8239be33}, - {0xeb94ad, 0x8239be34}, - {0xeb94ae, 0x8239be35}, - {0xeb94af, 0x8239be36}, - {0xeb94b0, 0x8239be37}, - {0xeb94b1, 0x8239be38}, - {0xeb94b2, 0x8239be39}, - {0xeb94b3, 0x8239bf30}, - {0xeb94b4, 0x8239bf31}, - {0xeb94b5, 0x8239bf32}, - {0xeb94b6, 0x8239bf33}, - {0xeb94b7, 0x8239bf34}, - {0xeb94b8, 0x8239bf35}, - {0xeb94b9, 0x8239bf36}, - {0xeb94ba, 0x8239bf37}, - {0xeb94bb, 0x8239bf38}, - {0xeb94bc, 0x8239bf39}, - {0xeb94bd, 0x8239c030}, - {0xeb94be, 0x8239c031}, - {0xeb94bf, 0x8239c032}, - {0xeb9580, 0x8239c033}, - {0xeb9581, 0x8239c034}, - {0xeb9582, 0x8239c035}, - {0xeb9583, 0x8239c036}, - {0xeb9584, 0x8239c037}, - {0xeb9585, 0x8239c038}, - {0xeb9586, 0x8239c039}, - {0xeb9587, 0x8239c130}, - {0xeb9588, 0x8239c131}, - {0xeb9589, 0x8239c132}, - {0xeb958a, 0x8239c133}, - {0xeb958b, 0x8239c134}, - {0xeb958c, 0x8239c135}, - {0xeb958d, 0x8239c136}, - {0xeb958e, 0x8239c137}, - {0xeb958f, 0x8239c138}, - {0xeb9590, 0x8239c139}, - {0xeb9591, 0x8239c230}, - {0xeb9592, 0x8239c231}, - {0xeb9593, 0x8239c232}, - {0xeb9594, 0x8239c233}, - {0xeb9595, 0x8239c234}, - {0xeb9596, 0x8239c235}, - {0xeb9597, 0x8239c236}, - {0xeb9598, 0x8239c237}, - {0xeb9599, 0x8239c238}, - {0xeb959a, 0x8239c239}, - {0xeb959b, 0x8239c330}, - {0xeb959c, 0x8239c331}, - {0xeb959d, 0x8239c332}, - {0xeb959e, 0x8239c333}, - {0xeb959f, 0x8239c334}, - {0xeb95a0, 0x8239c335}, - {0xeb95a1, 0x8239c336}, - {0xeb95a2, 0x8239c337}, - {0xeb95a3, 0x8239c338}, - {0xeb95a4, 0x8239c339}, - {0xeb95a5, 0x8239c430}, - {0xeb95a6, 0x8239c431}, - {0xeb95a7, 0x8239c432}, - {0xeb95a8, 0x8239c433}, - {0xeb95a9, 0x8239c434}, - {0xeb95aa, 0x8239c435}, - {0xeb95ab, 0x8239c436}, - {0xeb95ac, 0x8239c437}, - {0xeb95ad, 0x8239c438}, - {0xeb95ae, 0x8239c439}, - {0xeb95af, 0x8239c530}, - {0xeb95b0, 0x8239c531}, - {0xeb95b1, 0x8239c532}, - {0xeb95b2, 0x8239c533}, - {0xeb95b3, 0x8239c534}, - {0xeb95b4, 0x8239c535}, - {0xeb95b5, 0x8239c536}, - {0xeb95b6, 0x8239c537}, - {0xeb95b7, 0x8239c538}, - {0xeb95b8, 0x8239c539}, - {0xeb95b9, 0x8239c630}, - {0xeb95ba, 0x8239c631}, - {0xeb95bb, 0x8239c632}, - {0xeb95bc, 0x8239c633}, - {0xeb95bd, 0x8239c634}, - {0xeb95be, 0x8239c635}, - {0xeb95bf, 0x8239c636}, - {0xeb9680, 0x8239c637}, - {0xeb9681, 0x8239c638}, - {0xeb9682, 0x8239c639}, - {0xeb9683, 0x8239c730}, - {0xeb9684, 0x8239c731}, - {0xeb9685, 0x8239c732}, - {0xeb9686, 0x8239c733}, - {0xeb9687, 0x8239c734}, - {0xeb9688, 0x8239c735}, - {0xeb9689, 0x8239c736}, - {0xeb968a, 0x8239c737}, - {0xeb968b, 0x8239c738}, - {0xeb968c, 0x8239c739}, - {0xeb968d, 0x8239c830}, - {0xeb968e, 0x8239c831}, - {0xeb968f, 0x8239c832}, - {0xeb9690, 0x8239c833}, - {0xeb9691, 0x8239c834}, - {0xeb9692, 0x8239c835}, - {0xeb9693, 0x8239c836}, - {0xeb9694, 0x8239c837}, - {0xeb9695, 0x8239c838}, - {0xeb9696, 0x8239c839}, - {0xeb9697, 0x8239c930}, - {0xeb9698, 0x8239c931}, - {0xeb9699, 0x8239c932}, - {0xeb969a, 0x8239c933}, - {0xeb969b, 0x8239c934}, - {0xeb969c, 0x8239c935}, - {0xeb969d, 0x8239c936}, - {0xeb969e, 0x8239c937}, - {0xeb969f, 0x8239c938}, - {0xeb96a0, 0x8239c939}, - {0xeb96a1, 0x8239ca30}, - {0xeb96a2, 0x8239ca31}, - {0xeb96a3, 0x8239ca32}, - {0xeb96a4, 0x8239ca33}, - {0xeb96a5, 0x8239ca34}, - {0xeb96a6, 0x8239ca35}, - {0xeb96a7, 0x8239ca36}, - {0xeb96a8, 0x8239ca37}, - {0xeb96a9, 0x8239ca38}, - {0xeb96aa, 0x8239ca39}, - {0xeb96ab, 0x8239cb30}, - {0xeb96ac, 0x8239cb31}, - {0xeb96ad, 0x8239cb32}, - {0xeb96ae, 0x8239cb33}, - {0xeb96af, 0x8239cb34}, - {0xeb96b0, 0x8239cb35}, - {0xeb96b1, 0x8239cb36}, - {0xeb96b2, 0x8239cb37}, - {0xeb96b3, 0x8239cb38}, - {0xeb96b4, 0x8239cb39}, - {0xeb96b5, 0x8239cc30}, - {0xeb96b6, 0x8239cc31}, - {0xeb96b7, 0x8239cc32}, - {0xeb96b8, 0x8239cc33}, - {0xeb96b9, 0x8239cc34}, - {0xeb96ba, 0x8239cc35}, - {0xeb96bb, 0x8239cc36}, - {0xeb96bc, 0x8239cc37}, - {0xeb96bd, 0x8239cc38}, - {0xeb96be, 0x8239cc39}, - {0xeb96bf, 0x8239cd30}, - {0xeb9780, 0x8239cd31}, - {0xeb9781, 0x8239cd32}, - {0xeb9782, 0x8239cd33}, - {0xeb9783, 0x8239cd34}, - {0xeb9784, 0x8239cd35}, - {0xeb9785, 0x8239cd36}, - {0xeb9786, 0x8239cd37}, - {0xeb9787, 0x8239cd38}, - {0xeb9788, 0x8239cd39}, - {0xeb9789, 0x8239ce30}, - {0xeb978a, 0x8239ce31}, - {0xeb978b, 0x8239ce32}, - {0xeb978c, 0x8239ce33}, - {0xeb978d, 0x8239ce34}, - {0xeb978e, 0x8239ce35}, - {0xeb978f, 0x8239ce36}, - {0xeb9790, 0x8239ce37}, - {0xeb9791, 0x8239ce38}, - {0xeb9792, 0x8239ce39}, - {0xeb9793, 0x8239cf30}, - {0xeb9794, 0x8239cf31}, - {0xeb9795, 0x8239cf32}, - {0xeb9796, 0x8239cf33}, - {0xeb9797, 0x8239cf34}, - {0xeb9798, 0x8239cf35}, - {0xeb9799, 0x8239cf36}, - {0xeb979a, 0x8239cf37}, - {0xeb979b, 0x8239cf38}, - {0xeb979c, 0x8239cf39}, - {0xeb979d, 0x8239d030}, - {0xeb979e, 0x8239d031}, - {0xeb979f, 0x8239d032}, - {0xeb97a0, 0x8239d033}, - {0xeb97a1, 0x8239d034}, - {0xeb97a2, 0x8239d035}, - {0xeb97a3, 0x8239d036}, - {0xeb97a4, 0x8239d037}, - {0xeb97a5, 0x8239d038}, - {0xeb97a6, 0x8239d039}, - {0xeb97a7, 0x8239d130}, - {0xeb97a8, 0x8239d131}, - {0xeb97a9, 0x8239d132}, - {0xeb97aa, 0x8239d133}, - {0xeb97ab, 0x8239d134}, - {0xeb97ac, 0x8239d135}, - {0xeb97ad, 0x8239d136}, - {0xeb97ae, 0x8239d137}, - {0xeb97af, 0x8239d138}, - {0xeb97b0, 0x8239d139}, - {0xeb97b1, 0x8239d230}, - {0xeb97b2, 0x8239d231}, - {0xeb97b3, 0x8239d232}, - {0xeb97b4, 0x8239d233}, - {0xeb97b5, 0x8239d234}, - {0xeb97b6, 0x8239d235}, - {0xeb97b7, 0x8239d236}, - {0xeb97b8, 0x8239d237}, - {0xeb97b9, 0x8239d238}, - {0xeb97ba, 0x8239d239}, - {0xeb97bb, 0x8239d330}, - {0xeb97bc, 0x8239d331}, - {0xeb97bd, 0x8239d332}, - {0xeb97be, 0x8239d333}, - {0xeb97bf, 0x8239d334}, - {0xeb9880, 0x8239d335}, - {0xeb9881, 0x8239d336}, - {0xeb9882, 0x8239d337}, - {0xeb9883, 0x8239d338}, - {0xeb9884, 0x8239d339}, - {0xeb9885, 0x8239d430}, - {0xeb9886, 0x8239d431}, - {0xeb9887, 0x8239d432}, - {0xeb9888, 0x8239d433}, - {0xeb9889, 0x8239d434}, - {0xeb988a, 0x8239d435}, - {0xeb988b, 0x8239d436}, - {0xeb988c, 0x8239d437}, - {0xeb988d, 0x8239d438}, - {0xeb988e, 0x8239d439}, - {0xeb988f, 0x8239d530}, - {0xeb9890, 0x8239d531}, - {0xeb9891, 0x8239d532}, - {0xeb9892, 0x8239d533}, - {0xeb9893, 0x8239d534}, - {0xeb9894, 0x8239d535}, - {0xeb9895, 0x8239d536}, - {0xeb9896, 0x8239d537}, - {0xeb9897, 0x8239d538}, - {0xeb9898, 0x8239d539}, - {0xeb9899, 0x8239d630}, - {0xeb989a, 0x8239d631}, - {0xeb989b, 0x8239d632}, - {0xeb989c, 0x8239d633}, - {0xeb989d, 0x8239d634}, - {0xeb989e, 0x8239d635}, - {0xeb989f, 0x8239d636}, - {0xeb98a0, 0x8239d637}, - {0xeb98a1, 0x8239d638}, - {0xeb98a2, 0x8239d639}, - {0xeb98a3, 0x8239d730}, - {0xeb98a4, 0x8239d731}, - {0xeb98a5, 0x8239d732}, - {0xeb98a6, 0x8239d733}, - {0xeb98a7, 0x8239d734}, - {0xeb98a8, 0x8239d735}, - {0xeb98a9, 0x8239d736}, - {0xeb98aa, 0x8239d737}, - {0xeb98ab, 0x8239d738}, - {0xeb98ac, 0x8239d739}, - {0xeb98ad, 0x8239d830}, - {0xeb98ae, 0x8239d831}, - {0xeb98af, 0x8239d832}, - {0xeb98b0, 0x8239d833}, - {0xeb98b1, 0x8239d834}, - {0xeb98b2, 0x8239d835}, - {0xeb98b3, 0x8239d836}, - {0xeb98b4, 0x8239d837}, - {0xeb98b5, 0x8239d838}, - {0xeb98b6, 0x8239d839}, - {0xeb98b7, 0x8239d930}, - {0xeb98b8, 0x8239d931}, - {0xeb98b9, 0x8239d932}, - {0xeb98ba, 0x8239d933}, - {0xeb98bb, 0x8239d934}, - {0xeb98bc, 0x8239d935}, - {0xeb98bd, 0x8239d936}, - {0xeb98be, 0x8239d937}, - {0xeb98bf, 0x8239d938}, - {0xeb9980, 0x8239d939}, - {0xeb9981, 0x8239da30}, - {0xeb9982, 0x8239da31}, - {0xeb9983, 0x8239da32}, - {0xeb9984, 0x8239da33}, - {0xeb9985, 0x8239da34}, - {0xeb9986, 0x8239da35}, - {0xeb9987, 0x8239da36}, - {0xeb9988, 0x8239da37}, - {0xeb9989, 0x8239da38}, - {0xeb998a, 0x8239da39}, - {0xeb998b, 0x8239db30}, - {0xeb998c, 0x8239db31}, - {0xeb998d, 0x8239db32}, - {0xeb998e, 0x8239db33}, - {0xeb998f, 0x8239db34}, - {0xeb9990, 0x8239db35}, - {0xeb9991, 0x8239db36}, - {0xeb9992, 0x8239db37}, - {0xeb9993, 0x8239db38}, - {0xeb9994, 0x8239db39}, - {0xeb9995, 0x8239dc30}, - {0xeb9996, 0x8239dc31}, - {0xeb9997, 0x8239dc32}, - {0xeb9998, 0x8239dc33}, - {0xeb9999, 0x8239dc34}, - {0xeb999a, 0x8239dc35}, - {0xeb999b, 0x8239dc36}, - {0xeb999c, 0x8239dc37}, - {0xeb999d, 0x8239dc38}, - {0xeb999e, 0x8239dc39}, - {0xeb999f, 0x8239dd30}, - {0xeb99a0, 0x8239dd31}, - {0xeb99a1, 0x8239dd32}, - {0xeb99a2, 0x8239dd33}, - {0xeb99a3, 0x8239dd34}, - {0xeb99a4, 0x8239dd35}, - {0xeb99a5, 0x8239dd36}, - {0xeb99a6, 0x8239dd37}, - {0xeb99a7, 0x8239dd38}, - {0xeb99a8, 0x8239dd39}, - {0xeb99a9, 0x8239de30}, - {0xeb99aa, 0x8239de31}, - {0xeb99ab, 0x8239de32}, - {0xeb99ac, 0x8239de33}, - {0xeb99ad, 0x8239de34}, - {0xeb99ae, 0x8239de35}, - {0xeb99af, 0x8239de36}, - {0xeb99b0, 0x8239de37}, - {0xeb99b1, 0x8239de38}, - {0xeb99b2, 0x8239de39}, - {0xeb99b3, 0x8239df30}, - {0xeb99b4, 0x8239df31}, - {0xeb99b5, 0x8239df32}, - {0xeb99b6, 0x8239df33}, - {0xeb99b7, 0x8239df34}, - {0xeb99b8, 0x8239df35}, - {0xeb99b9, 0x8239df36}, - {0xeb99ba, 0x8239df37}, - {0xeb99bb, 0x8239df38}, - {0xeb99bc, 0x8239df39}, - {0xeb99bd, 0x8239e030}, - {0xeb99be, 0x8239e031}, - {0xeb99bf, 0x8239e032}, - {0xeb9a80, 0x8239e033}, - {0xeb9a81, 0x8239e034}, - {0xeb9a82, 0x8239e035}, - {0xeb9a83, 0x8239e036}, - {0xeb9a84, 0x8239e037}, - {0xeb9a85, 0x8239e038}, - {0xeb9a86, 0x8239e039}, - {0xeb9a87, 0x8239e130}, - {0xeb9a88, 0x8239e131}, - {0xeb9a89, 0x8239e132}, - {0xeb9a8a, 0x8239e133}, - {0xeb9a8b, 0x8239e134}, - {0xeb9a8c, 0x8239e135}, - {0xeb9a8d, 0x8239e136}, - {0xeb9a8e, 0x8239e137}, - {0xeb9a8f, 0x8239e138}, - {0xeb9a90, 0x8239e139}, - {0xeb9a91, 0x8239e230}, - {0xeb9a92, 0x8239e231}, - {0xeb9a93, 0x8239e232}, - {0xeb9a94, 0x8239e233}, - {0xeb9a95, 0x8239e234}, - {0xeb9a96, 0x8239e235}, - {0xeb9a97, 0x8239e236}, - {0xeb9a98, 0x8239e237}, - {0xeb9a99, 0x8239e238}, - {0xeb9a9a, 0x8239e239}, - {0xeb9a9b, 0x8239e330}, - {0xeb9a9c, 0x8239e331}, - {0xeb9a9d, 0x8239e332}, - {0xeb9a9e, 0x8239e333}, - {0xeb9a9f, 0x8239e334}, - {0xeb9aa0, 0x8239e335}, - {0xeb9aa1, 0x8239e336}, - {0xeb9aa2, 0x8239e337}, - {0xeb9aa3, 0x8239e338}, - {0xeb9aa4, 0x8239e339}, - {0xeb9aa5, 0x8239e430}, - {0xeb9aa6, 0x8239e431}, - {0xeb9aa7, 0x8239e432}, - {0xeb9aa8, 0x8239e433}, - {0xeb9aa9, 0x8239e434}, - {0xeb9aaa, 0x8239e435}, - {0xeb9aab, 0x8239e436}, - {0xeb9aac, 0x8239e437}, - {0xeb9aad, 0x8239e438}, - {0xeb9aae, 0x8239e439}, - {0xeb9aaf, 0x8239e530}, - {0xeb9ab0, 0x8239e531}, - {0xeb9ab1, 0x8239e532}, - {0xeb9ab2, 0x8239e533}, - {0xeb9ab3, 0x8239e534}, - {0xeb9ab4, 0x8239e535}, - {0xeb9ab5, 0x8239e536}, - {0xeb9ab6, 0x8239e537}, - {0xeb9ab7, 0x8239e538}, - {0xeb9ab8, 0x8239e539}, - {0xeb9ab9, 0x8239e630}, - {0xeb9aba, 0x8239e631}, - {0xeb9abb, 0x8239e632}, - {0xeb9abc, 0x8239e633}, - {0xeb9abd, 0x8239e634}, - {0xeb9abe, 0x8239e635}, - {0xeb9abf, 0x8239e636}, - {0xeb9b80, 0x8239e637}, - {0xeb9b81, 0x8239e638}, - {0xeb9b82, 0x8239e639}, - {0xeb9b83, 0x8239e730}, - {0xeb9b84, 0x8239e731}, - {0xeb9b85, 0x8239e732}, - {0xeb9b86, 0x8239e733}, - {0xeb9b87, 0x8239e734}, - {0xeb9b88, 0x8239e735}, - {0xeb9b89, 0x8239e736}, - {0xeb9b8a, 0x8239e737}, - {0xeb9b8b, 0x8239e738}, - {0xeb9b8c, 0x8239e739}, - {0xeb9b8d, 0x8239e830}, - {0xeb9b8e, 0x8239e831}, - {0xeb9b8f, 0x8239e832}, - {0xeb9b90, 0x8239e833}, - {0xeb9b91, 0x8239e834}, - {0xeb9b92, 0x8239e835}, - {0xeb9b93, 0x8239e836}, - {0xeb9b94, 0x8239e837}, - {0xeb9b95, 0x8239e838}, - {0xeb9b96, 0x8239e839}, - {0xeb9b97, 0x8239e930}, - {0xeb9b98, 0x8239e931}, - {0xeb9b99, 0x8239e932}, - {0xeb9b9a, 0x8239e933}, - {0xeb9b9b, 0x8239e934}, - {0xeb9b9c, 0x8239e935}, - {0xeb9b9d, 0x8239e936}, - {0xeb9b9e, 0x8239e937}, - {0xeb9b9f, 0x8239e938}, - {0xeb9ba0, 0x8239e939}, - {0xeb9ba1, 0x8239ea30}, - {0xeb9ba2, 0x8239ea31}, - {0xeb9ba3, 0x8239ea32}, - {0xeb9ba4, 0x8239ea33}, - {0xeb9ba5, 0x8239ea34}, - {0xeb9ba6, 0x8239ea35}, - {0xeb9ba7, 0x8239ea36}, - {0xeb9ba8, 0x8239ea37}, - {0xeb9ba9, 0x8239ea38}, - {0xeb9baa, 0x8239ea39}, - {0xeb9bab, 0x8239eb30}, - {0xeb9bac, 0x8239eb31}, - {0xeb9bad, 0x8239eb32}, - {0xeb9bae, 0x8239eb33}, - {0xeb9baf, 0x8239eb34}, - {0xeb9bb0, 0x8239eb35}, - {0xeb9bb1, 0x8239eb36}, - {0xeb9bb2, 0x8239eb37}, - {0xeb9bb3, 0x8239eb38}, - {0xeb9bb4, 0x8239eb39}, - {0xeb9bb5, 0x8239ec30}, - {0xeb9bb6, 0x8239ec31}, - {0xeb9bb7, 0x8239ec32}, - {0xeb9bb8, 0x8239ec33}, - {0xeb9bb9, 0x8239ec34}, - {0xeb9bba, 0x8239ec35}, - {0xeb9bbb, 0x8239ec36}, - {0xeb9bbc, 0x8239ec37}, - {0xeb9bbd, 0x8239ec38}, - {0xeb9bbe, 0x8239ec39}, - {0xeb9bbf, 0x8239ed30}, - {0xeb9c80, 0x8239ed31}, - {0xeb9c81, 0x8239ed32}, - {0xeb9c82, 0x8239ed33}, - {0xeb9c83, 0x8239ed34}, - {0xeb9c84, 0x8239ed35}, - {0xeb9c85, 0x8239ed36}, - {0xeb9c86, 0x8239ed37}, - {0xeb9c87, 0x8239ed38}, - {0xeb9c88, 0x8239ed39}, - {0xeb9c89, 0x8239ee30}, - {0xeb9c8a, 0x8239ee31}, - {0xeb9c8b, 0x8239ee32}, - {0xeb9c8c, 0x8239ee33}, - {0xeb9c8d, 0x8239ee34}, - {0xeb9c8e, 0x8239ee35}, - {0xeb9c8f, 0x8239ee36}, - {0xeb9c90, 0x8239ee37}, - {0xeb9c91, 0x8239ee38}, - {0xeb9c92, 0x8239ee39}, - {0xeb9c93, 0x8239ef30}, - {0xeb9c94, 0x8239ef31}, - {0xeb9c95, 0x8239ef32}, - {0xeb9c96, 0x8239ef33}, - {0xeb9c97, 0x8239ef34}, - {0xeb9c98, 0x8239ef35}, - {0xeb9c99, 0x8239ef36}, - {0xeb9c9a, 0x8239ef37}, - {0xeb9c9b, 0x8239ef38}, - {0xeb9c9c, 0x8239ef39}, - {0xeb9c9d, 0x8239f030}, - {0xeb9c9e, 0x8239f031}, - {0xeb9c9f, 0x8239f032}, - {0xeb9ca0, 0x8239f033}, - {0xeb9ca1, 0x8239f034}, - {0xeb9ca2, 0x8239f035}, - {0xeb9ca3, 0x8239f036}, - {0xeb9ca4, 0x8239f037}, - {0xeb9ca5, 0x8239f038}, - {0xeb9ca6, 0x8239f039}, - {0xeb9ca7, 0x8239f130}, - {0xeb9ca8, 0x8239f131}, - {0xeb9ca9, 0x8239f132}, - {0xeb9caa, 0x8239f133}, - {0xeb9cab, 0x8239f134}, - {0xeb9cac, 0x8239f135}, - {0xeb9cad, 0x8239f136}, - {0xeb9cae, 0x8239f137}, - {0xeb9caf, 0x8239f138}, - {0xeb9cb0, 0x8239f139}, - {0xeb9cb1, 0x8239f230}, - {0xeb9cb2, 0x8239f231}, - {0xeb9cb3, 0x8239f232}, - {0xeb9cb4, 0x8239f233}, - {0xeb9cb5, 0x8239f234}, - {0xeb9cb6, 0x8239f235}, - {0xeb9cb7, 0x8239f236}, - {0xeb9cb8, 0x8239f237}, - {0xeb9cb9, 0x8239f238}, - {0xeb9cba, 0x8239f239}, - {0xeb9cbb, 0x8239f330}, - {0xeb9cbc, 0x8239f331}, - {0xeb9cbd, 0x8239f332}, - {0xeb9cbe, 0x8239f333}, - {0xeb9cbf, 0x8239f334}, - {0xeb9d80, 0x8239f335}, - {0xeb9d81, 0x8239f336}, - {0xeb9d82, 0x8239f337}, - {0xeb9d83, 0x8239f338}, - {0xeb9d84, 0x8239f339}, - {0xeb9d85, 0x8239f430}, - {0xeb9d86, 0x8239f431}, - {0xeb9d87, 0x8239f432}, - {0xeb9d88, 0x8239f433}, - {0xeb9d89, 0x8239f434}, - {0xeb9d8a, 0x8239f435}, - {0xeb9d8b, 0x8239f436}, - {0xeb9d8c, 0x8239f437}, - {0xeb9d8d, 0x8239f438}, - {0xeb9d8e, 0x8239f439}, - {0xeb9d8f, 0x8239f530}, - {0xeb9d90, 0x8239f531}, - {0xeb9d91, 0x8239f532}, - {0xeb9d92, 0x8239f533}, - {0xeb9d93, 0x8239f534}, - {0xeb9d94, 0x8239f535}, - {0xeb9d95, 0x8239f536}, - {0xeb9d96, 0x8239f537}, - {0xeb9d97, 0x8239f538}, - {0xeb9d98, 0x8239f539}, - {0xeb9d99, 0x8239f630}, - {0xeb9d9a, 0x8239f631}, - {0xeb9d9b, 0x8239f632}, - {0xeb9d9c, 0x8239f633}, - {0xeb9d9d, 0x8239f634}, - {0xeb9d9e, 0x8239f635}, - {0xeb9d9f, 0x8239f636}, - {0xeb9da0, 0x8239f637}, - {0xeb9da1, 0x8239f638}, - {0xeb9da2, 0x8239f639}, - {0xeb9da3, 0x8239f730}, - {0xeb9da4, 0x8239f731}, - {0xeb9da5, 0x8239f732}, - {0xeb9da6, 0x8239f733}, - {0xeb9da7, 0x8239f734}, - {0xeb9da8, 0x8239f735}, - {0xeb9da9, 0x8239f736}, - {0xeb9daa, 0x8239f737}, - {0xeb9dab, 0x8239f738}, - {0xeb9dac, 0x8239f739}, - {0xeb9dad, 0x8239f830}, - {0xeb9dae, 0x8239f831}, - {0xeb9daf, 0x8239f832}, - {0xeb9db0, 0x8239f833}, - {0xeb9db1, 0x8239f834}, - {0xeb9db2, 0x8239f835}, - {0xeb9db3, 0x8239f836}, - {0xeb9db4, 0x8239f837}, - {0xeb9db5, 0x8239f838}, - {0xeb9db6, 0x8239f839}, - {0xeb9db7, 0x8239f930}, - {0xeb9db8, 0x8239f931}, - {0xeb9db9, 0x8239f932}, - {0xeb9dba, 0x8239f933}, - {0xeb9dbb, 0x8239f934}, - {0xeb9dbc, 0x8239f935}, - {0xeb9dbd, 0x8239f936}, - {0xeb9dbe, 0x8239f937}, - {0xeb9dbf, 0x8239f938}, - {0xeb9e80, 0x8239f939}, - {0xeb9e81, 0x8239fa30}, - {0xeb9e82, 0x8239fa31}, - {0xeb9e83, 0x8239fa32}, - {0xeb9e84, 0x8239fa33}, - {0xeb9e85, 0x8239fa34}, - {0xeb9e86, 0x8239fa35}, - {0xeb9e87, 0x8239fa36}, - {0xeb9e88, 0x8239fa37}, - {0xeb9e89, 0x8239fa38}, - {0xeb9e8a, 0x8239fa39}, - {0xeb9e8b, 0x8239fb30}, - {0xeb9e8c, 0x8239fb31}, - {0xeb9e8d, 0x8239fb32}, - {0xeb9e8e, 0x8239fb33}, - {0xeb9e8f, 0x8239fb34}, - {0xeb9e90, 0x8239fb35}, - {0xeb9e91, 0x8239fb36}, - {0xeb9e92, 0x8239fb37}, - {0xeb9e93, 0x8239fb38}, - {0xeb9e94, 0x8239fb39}, - {0xeb9e95, 0x8239fc30}, - {0xeb9e96, 0x8239fc31}, - {0xeb9e97, 0x8239fc32}, - {0xeb9e98, 0x8239fc33}, - {0xeb9e99, 0x8239fc34}, - {0xeb9e9a, 0x8239fc35}, - {0xeb9e9b, 0x8239fc36}, - {0xeb9e9c, 0x8239fc37}, - {0xeb9e9d, 0x8239fc38}, - {0xeb9e9e, 0x8239fc39}, - {0xeb9e9f, 0x8239fd30}, - {0xeb9ea0, 0x8239fd31}, - {0xeb9ea1, 0x8239fd32}, - {0xeb9ea2, 0x8239fd33}, - {0xeb9ea3, 0x8239fd34}, - {0xeb9ea4, 0x8239fd35}, - {0xeb9ea5, 0x8239fd36}, - {0xeb9ea6, 0x8239fd37}, - {0xeb9ea7, 0x8239fd38}, - {0xeb9ea8, 0x8239fd39}, - {0xeb9ea9, 0x8239fe30}, - {0xeb9eaa, 0x8239fe31}, - {0xeb9eab, 0x8239fe32}, - {0xeb9eac, 0x8239fe33}, - {0xeb9ead, 0x8239fe34}, - {0xeb9eae, 0x8239fe35}, - {0xeb9eaf, 0x8239fe36}, - {0xeb9eb0, 0x8239fe37}, - {0xeb9eb1, 0x8239fe38}, - {0xeb9eb2, 0x8239fe39}, - {0xeb9eb3, 0x83308130}, - {0xeb9eb4, 0x83308131}, - {0xeb9eb5, 0x83308132}, - {0xeb9eb6, 0x83308133}, - {0xeb9eb7, 0x83308134}, - {0xeb9eb8, 0x83308135}, - {0xeb9eb9, 0x83308136}, - {0xeb9eba, 0x83308137}, - {0xeb9ebb, 0x83308138}, - {0xeb9ebc, 0x83308139}, - {0xeb9ebd, 0x83308230}, - {0xeb9ebe, 0x83308231}, - {0xeb9ebf, 0x83308232}, - {0xeb9f80, 0x83308233}, - {0xeb9f81, 0x83308234}, - {0xeb9f82, 0x83308235}, - {0xeb9f83, 0x83308236}, - {0xeb9f84, 0x83308237}, - {0xeb9f85, 0x83308238}, - {0xeb9f86, 0x83308239}, - {0xeb9f87, 0x83308330}, - {0xeb9f88, 0x83308331}, - {0xeb9f89, 0x83308332}, - {0xeb9f8a, 0x83308333}, - {0xeb9f8b, 0x83308334}, - {0xeb9f8c, 0x83308335}, - {0xeb9f8d, 0x83308336}, - {0xeb9f8e, 0x83308337}, - {0xeb9f8f, 0x83308338}, - {0xeb9f90, 0x83308339}, - {0xeb9f91, 0x83308430}, - {0xeb9f92, 0x83308431}, - {0xeb9f93, 0x83308432}, - {0xeb9f94, 0x83308433}, - {0xeb9f95, 0x83308434}, - {0xeb9f96, 0x83308435}, - {0xeb9f97, 0x83308436}, - {0xeb9f98, 0x83308437}, - {0xeb9f99, 0x83308438}, - {0xeb9f9a, 0x83308439}, - {0xeb9f9b, 0x83308530}, - {0xeb9f9c, 0x83308531}, - {0xeb9f9d, 0x83308532}, - {0xeb9f9e, 0x83308533}, - {0xeb9f9f, 0x83308534}, - {0xeb9fa0, 0x83308535}, - {0xeb9fa1, 0x83308536}, - {0xeb9fa2, 0x83308537}, - {0xeb9fa3, 0x83308538}, - {0xeb9fa4, 0x83308539}, - {0xeb9fa5, 0x83308630}, - {0xeb9fa6, 0x83308631}, - {0xeb9fa7, 0x83308632}, - {0xeb9fa8, 0x83308633}, - {0xeb9fa9, 0x83308634}, - {0xeb9faa, 0x83308635}, - {0xeb9fab, 0x83308636}, - {0xeb9fac, 0x83308637}, - {0xeb9fad, 0x83308638}, - {0xeb9fae, 0x83308639}, - {0xeb9faf, 0x83308730}, - {0xeb9fb0, 0x83308731}, - {0xeb9fb1, 0x83308732}, - {0xeb9fb2, 0x83308733}, - {0xeb9fb3, 0x83308734}, - {0xeb9fb4, 0x83308735}, - {0xeb9fb5, 0x83308736}, - {0xeb9fb6, 0x83308737}, - {0xeb9fb7, 0x83308738}, - {0xeb9fb8, 0x83308739}, - {0xeb9fb9, 0x83308830}, - {0xeb9fba, 0x83308831}, - {0xeb9fbb, 0x83308832}, - {0xeb9fbc, 0x83308833}, - {0xeb9fbd, 0x83308834}, - {0xeb9fbe, 0x83308835}, - {0xeb9fbf, 0x83308836}, - {0xeba080, 0x83308837}, - {0xeba081, 0x83308838}, - {0xeba082, 0x83308839}, - {0xeba083, 0x83308930}, - {0xeba084, 0x83308931}, - {0xeba085, 0x83308932}, - {0xeba086, 0x83308933}, - {0xeba087, 0x83308934}, - {0xeba088, 0x83308935}, - {0xeba089, 0x83308936}, - {0xeba08a, 0x83308937}, - {0xeba08b, 0x83308938}, - {0xeba08c, 0x83308939}, - {0xeba08d, 0x83308a30}, - {0xeba08e, 0x83308a31}, - {0xeba08f, 0x83308a32}, - {0xeba090, 0x83308a33}, - {0xeba091, 0x83308a34}, - {0xeba092, 0x83308a35}, - {0xeba093, 0x83308a36}, - {0xeba094, 0x83308a37}, - {0xeba095, 0x83308a38}, - {0xeba096, 0x83308a39}, - {0xeba097, 0x83308b30}, - {0xeba098, 0x83308b31}, - {0xeba099, 0x83308b32}, - {0xeba09a, 0x83308b33}, - {0xeba09b, 0x83308b34}, - {0xeba09c, 0x83308b35}, - {0xeba09d, 0x83308b36}, - {0xeba09e, 0x83308b37}, - {0xeba09f, 0x83308b38}, - {0xeba0a0, 0x83308b39}, - {0xeba0a1, 0x83308c30}, - {0xeba0a2, 0x83308c31}, - {0xeba0a3, 0x83308c32}, - {0xeba0a4, 0x83308c33}, - {0xeba0a5, 0x83308c34}, - {0xeba0a6, 0x83308c35}, - {0xeba0a7, 0x83308c36}, - {0xeba0a8, 0x83308c37}, - {0xeba0a9, 0x83308c38}, - {0xeba0aa, 0x83308c39}, - {0xeba0ab, 0x83308d30}, - {0xeba0ac, 0x83308d31}, - {0xeba0ad, 0x83308d32}, - {0xeba0ae, 0x83308d33}, - {0xeba0af, 0x83308d34}, - {0xeba0b0, 0x83308d35}, - {0xeba0b1, 0x83308d36}, - {0xeba0b2, 0x83308d37}, - {0xeba0b3, 0x83308d38}, - {0xeba0b4, 0x83308d39}, - {0xeba0b5, 0x83308e30}, - {0xeba0b6, 0x83308e31}, - {0xeba0b7, 0x83308e32}, - {0xeba0b8, 0x83308e33}, - {0xeba0b9, 0x83308e34}, - {0xeba0ba, 0x83308e35}, - {0xeba0bb, 0x83308e36}, - {0xeba0bc, 0x83308e37}, - {0xeba0bd, 0x83308e38}, - {0xeba0be, 0x83308e39}, - {0xeba0bf, 0x83308f30}, - {0xeba180, 0x83308f31}, - {0xeba181, 0x83308f32}, - {0xeba182, 0x83308f33}, - {0xeba183, 0x83308f34}, - {0xeba184, 0x83308f35}, - {0xeba185, 0x83308f36}, - {0xeba186, 0x83308f37}, - {0xeba187, 0x83308f38}, - {0xeba188, 0x83308f39}, - {0xeba189, 0x83309030}, - {0xeba18a, 0x83309031}, - {0xeba18b, 0x83309032}, - {0xeba18c, 0x83309033}, - {0xeba18d, 0x83309034}, - {0xeba18e, 0x83309035}, - {0xeba18f, 0x83309036}, - {0xeba190, 0x83309037}, - {0xeba191, 0x83309038}, - {0xeba192, 0x83309039}, - {0xeba193, 0x83309130}, - {0xeba194, 0x83309131}, - {0xeba195, 0x83309132}, - {0xeba196, 0x83309133}, - {0xeba197, 0x83309134}, - {0xeba198, 0x83309135}, - {0xeba199, 0x83309136}, - {0xeba19a, 0x83309137}, - {0xeba19b, 0x83309138}, - {0xeba19c, 0x83309139}, - {0xeba19d, 0x83309230}, - {0xeba19e, 0x83309231}, - {0xeba19f, 0x83309232}, - {0xeba1a0, 0x83309233}, - {0xeba1a1, 0x83309234}, - {0xeba1a2, 0x83309235}, - {0xeba1a3, 0x83309236}, - {0xeba1a4, 0x83309237}, - {0xeba1a5, 0x83309238}, - {0xeba1a6, 0x83309239}, - {0xeba1a7, 0x83309330}, - {0xeba1a8, 0x83309331}, - {0xeba1a9, 0x83309332}, - {0xeba1aa, 0x83309333}, - {0xeba1ab, 0x83309334}, - {0xeba1ac, 0x83309335}, - {0xeba1ad, 0x83309336}, - {0xeba1ae, 0x83309337}, - {0xeba1af, 0x83309338}, - {0xeba1b0, 0x83309339}, - {0xeba1b1, 0x83309430}, - {0xeba1b2, 0x83309431}, - {0xeba1b3, 0x83309432}, - {0xeba1b4, 0x83309433}, - {0xeba1b5, 0x83309434}, - {0xeba1b6, 0x83309435}, - {0xeba1b7, 0x83309436}, - {0xeba1b8, 0x83309437}, - {0xeba1b9, 0x83309438}, - {0xeba1ba, 0x83309439}, - {0xeba1bb, 0x83309530}, - {0xeba1bc, 0x83309531}, - {0xeba1bd, 0x83309532}, - {0xeba1be, 0x83309533}, - {0xeba1bf, 0x83309534}, - {0xeba280, 0x83309535}, - {0xeba281, 0x83309536}, - {0xeba282, 0x83309537}, - {0xeba283, 0x83309538}, - {0xeba284, 0x83309539}, - {0xeba285, 0x83309630}, - {0xeba286, 0x83309631}, - {0xeba287, 0x83309632}, - {0xeba288, 0x83309633}, - {0xeba289, 0x83309634}, - {0xeba28a, 0x83309635}, - {0xeba28b, 0x83309636}, - {0xeba28c, 0x83309637}, - {0xeba28d, 0x83309638}, - {0xeba28e, 0x83309639}, - {0xeba28f, 0x83309730}, - {0xeba290, 0x83309731}, - {0xeba291, 0x83309732}, - {0xeba292, 0x83309733}, - {0xeba293, 0x83309734}, - {0xeba294, 0x83309735}, - {0xeba295, 0x83309736}, - {0xeba296, 0x83309737}, - {0xeba297, 0x83309738}, - {0xeba298, 0x83309739}, - {0xeba299, 0x83309830}, - {0xeba29a, 0x83309831}, - {0xeba29b, 0x83309832}, - {0xeba29c, 0x83309833}, - {0xeba29d, 0x83309834}, - {0xeba29e, 0x83309835}, - {0xeba29f, 0x83309836}, - {0xeba2a0, 0x83309837}, - {0xeba2a1, 0x83309838}, - {0xeba2a2, 0x83309839}, - {0xeba2a3, 0x83309930}, - {0xeba2a4, 0x83309931}, - {0xeba2a5, 0x83309932}, - {0xeba2a6, 0x83309933}, - {0xeba2a7, 0x83309934}, - {0xeba2a8, 0x83309935}, - {0xeba2a9, 0x83309936}, - {0xeba2aa, 0x83309937}, - {0xeba2ab, 0x83309938}, - {0xeba2ac, 0x83309939}, - {0xeba2ad, 0x83309a30}, - {0xeba2ae, 0x83309a31}, - {0xeba2af, 0x83309a32}, - {0xeba2b0, 0x83309a33}, - {0xeba2b1, 0x83309a34}, - {0xeba2b2, 0x83309a35}, - {0xeba2b3, 0x83309a36}, - {0xeba2b4, 0x83309a37}, - {0xeba2b5, 0x83309a38}, - {0xeba2b6, 0x83309a39}, - {0xeba2b7, 0x83309b30}, - {0xeba2b8, 0x83309b31}, - {0xeba2b9, 0x83309b32}, - {0xeba2ba, 0x83309b33}, - {0xeba2bb, 0x83309b34}, - {0xeba2bc, 0x83309b35}, - {0xeba2bd, 0x83309b36}, - {0xeba2be, 0x83309b37}, - {0xeba2bf, 0x83309b38}, - {0xeba380, 0x83309b39}, - {0xeba381, 0x83309c30}, - {0xeba382, 0x83309c31}, - {0xeba383, 0x83309c32}, - {0xeba384, 0x83309c33}, - {0xeba385, 0x83309c34}, - {0xeba386, 0x83309c35}, - {0xeba387, 0x83309c36}, - {0xeba388, 0x83309c37}, - {0xeba389, 0x83309c38}, - {0xeba38a, 0x83309c39}, - {0xeba38b, 0x83309d30}, - {0xeba38c, 0x83309d31}, - {0xeba38d, 0x83309d32}, - {0xeba38e, 0x83309d33}, - {0xeba38f, 0x83309d34}, - {0xeba390, 0x83309d35}, - {0xeba391, 0x83309d36}, - {0xeba392, 0x83309d37}, - {0xeba393, 0x83309d38}, - {0xeba394, 0x83309d39}, - {0xeba395, 0x83309e30}, - {0xeba396, 0x83309e31}, - {0xeba397, 0x83309e32}, - {0xeba398, 0x83309e33}, - {0xeba399, 0x83309e34}, - {0xeba39a, 0x83309e35}, - {0xeba39b, 0x83309e36}, - {0xeba39c, 0x83309e37}, - {0xeba39d, 0x83309e38}, - {0xeba39e, 0x83309e39}, - {0xeba39f, 0x83309f30}, - {0xeba3a0, 0x83309f31}, - {0xeba3a1, 0x83309f32}, - {0xeba3a2, 0x83309f33}, - {0xeba3a3, 0x83309f34}, - {0xeba3a4, 0x83309f35}, - {0xeba3a5, 0x83309f36}, - {0xeba3a6, 0x83309f37}, - {0xeba3a7, 0x83309f38}, - {0xeba3a8, 0x83309f39}, - {0xeba3a9, 0x8330a030}, - {0xeba3aa, 0x8330a031}, - {0xeba3ab, 0x8330a032}, - {0xeba3ac, 0x8330a033}, - {0xeba3ad, 0x8330a034}, - {0xeba3ae, 0x8330a035}, - {0xeba3af, 0x8330a036}, - {0xeba3b0, 0x8330a037}, - {0xeba3b1, 0x8330a038}, - {0xeba3b2, 0x8330a039}, - {0xeba3b3, 0x8330a130}, - {0xeba3b4, 0x8330a131}, - {0xeba3b5, 0x8330a132}, - {0xeba3b6, 0x8330a133}, - {0xeba3b7, 0x8330a134}, - {0xeba3b8, 0x8330a135}, - {0xeba3b9, 0x8330a136}, - {0xeba3ba, 0x8330a137}, - {0xeba3bb, 0x8330a138}, - {0xeba3bc, 0x8330a139}, - {0xeba3bd, 0x8330a230}, - {0xeba3be, 0x8330a231}, - {0xeba3bf, 0x8330a232}, - {0xeba480, 0x8330a233}, - {0xeba481, 0x8330a234}, - {0xeba482, 0x8330a235}, - {0xeba483, 0x8330a236}, - {0xeba484, 0x8330a237}, - {0xeba485, 0x8330a238}, - {0xeba486, 0x8330a239}, - {0xeba487, 0x8330a330}, - {0xeba488, 0x8330a331}, - {0xeba489, 0x8330a332}, - {0xeba48a, 0x8330a333}, - {0xeba48b, 0x8330a334}, - {0xeba48c, 0x8330a335}, - {0xeba48d, 0x8330a336}, - {0xeba48e, 0x8330a337}, - {0xeba48f, 0x8330a338}, - {0xeba490, 0x8330a339}, - {0xeba491, 0x8330a430}, - {0xeba492, 0x8330a431}, - {0xeba493, 0x8330a432}, - {0xeba494, 0x8330a433}, - {0xeba495, 0x8330a434}, - {0xeba496, 0x8330a435}, - {0xeba497, 0x8330a436}, - {0xeba498, 0x8330a437}, - {0xeba499, 0x8330a438}, - {0xeba49a, 0x8330a439}, - {0xeba49b, 0x8330a530}, - {0xeba49c, 0x8330a531}, - {0xeba49d, 0x8330a532}, - {0xeba49e, 0x8330a533}, - {0xeba49f, 0x8330a534}, - {0xeba4a0, 0x8330a535}, - {0xeba4a1, 0x8330a536}, - {0xeba4a2, 0x8330a537}, - {0xeba4a3, 0x8330a538}, - {0xeba4a4, 0x8330a539}, - {0xeba4a5, 0x8330a630}, - {0xeba4a6, 0x8330a631}, - {0xeba4a7, 0x8330a632}, - {0xeba4a8, 0x8330a633}, - {0xeba4a9, 0x8330a634}, - {0xeba4aa, 0x8330a635}, - {0xeba4ab, 0x8330a636}, - {0xeba4ac, 0x8330a637}, - {0xeba4ad, 0x8330a638}, - {0xeba4ae, 0x8330a639}, - {0xeba4af, 0x8330a730}, - {0xeba4b0, 0x8330a731}, - {0xeba4b1, 0x8330a732}, - {0xeba4b2, 0x8330a733}, - {0xeba4b3, 0x8330a734}, - {0xeba4b4, 0x8330a735}, - {0xeba4b5, 0x8330a736}, - {0xeba4b6, 0x8330a737}, - {0xeba4b7, 0x8330a738}, - {0xeba4b8, 0x8330a739}, - {0xeba4b9, 0x8330a830}, - {0xeba4ba, 0x8330a831}, - {0xeba4bb, 0x8330a832}, - {0xeba4bc, 0x8330a833}, - {0xeba4bd, 0x8330a834}, - {0xeba4be, 0x8330a835}, - {0xeba4bf, 0x8330a836}, - {0xeba580, 0x8330a837}, - {0xeba581, 0x8330a838}, - {0xeba582, 0x8330a839}, - {0xeba583, 0x8330a930}, - {0xeba584, 0x8330a931}, - {0xeba585, 0x8330a932}, - {0xeba586, 0x8330a933}, - {0xeba587, 0x8330a934}, - {0xeba588, 0x8330a935}, - {0xeba589, 0x8330a936}, - {0xeba58a, 0x8330a937}, - {0xeba58b, 0x8330a938}, - {0xeba58c, 0x8330a939}, - {0xeba58d, 0x8330aa30}, - {0xeba58e, 0x8330aa31}, - {0xeba58f, 0x8330aa32}, - {0xeba590, 0x8330aa33}, - {0xeba591, 0x8330aa34}, - {0xeba592, 0x8330aa35}, - {0xeba593, 0x8330aa36}, - {0xeba594, 0x8330aa37}, - {0xeba595, 0x8330aa38}, - {0xeba596, 0x8330aa39}, - {0xeba597, 0x8330ab30}, - {0xeba598, 0x8330ab31}, - {0xeba599, 0x8330ab32}, - {0xeba59a, 0x8330ab33}, - {0xeba59b, 0x8330ab34}, - {0xeba59c, 0x8330ab35}, - {0xeba59d, 0x8330ab36}, - {0xeba59e, 0x8330ab37}, - {0xeba59f, 0x8330ab38}, - {0xeba5a0, 0x8330ab39}, - {0xeba5a1, 0x8330ac30}, - {0xeba5a2, 0x8330ac31}, - {0xeba5a3, 0x8330ac32}, - {0xeba5a4, 0x8330ac33}, - {0xeba5a5, 0x8330ac34}, - {0xeba5a6, 0x8330ac35}, - {0xeba5a7, 0x8330ac36}, - {0xeba5a8, 0x8330ac37}, - {0xeba5a9, 0x8330ac38}, - {0xeba5aa, 0x8330ac39}, - {0xeba5ab, 0x8330ad30}, - {0xeba5ac, 0x8330ad31}, - {0xeba5ad, 0x8330ad32}, - {0xeba5ae, 0x8330ad33}, - {0xeba5af, 0x8330ad34}, - {0xeba5b0, 0x8330ad35}, - {0xeba5b1, 0x8330ad36}, - {0xeba5b2, 0x8330ad37}, - {0xeba5b3, 0x8330ad38}, - {0xeba5b4, 0x8330ad39}, - {0xeba5b5, 0x8330ae30}, - {0xeba5b6, 0x8330ae31}, - {0xeba5b7, 0x8330ae32}, - {0xeba5b8, 0x8330ae33}, - {0xeba5b9, 0x8330ae34}, - {0xeba5ba, 0x8330ae35}, - {0xeba5bb, 0x8330ae36}, - {0xeba5bc, 0x8330ae37}, - {0xeba5bd, 0x8330ae38}, - {0xeba5be, 0x8330ae39}, - {0xeba5bf, 0x8330af30}, - {0xeba680, 0x8330af31}, - {0xeba681, 0x8330af32}, - {0xeba682, 0x8330af33}, - {0xeba683, 0x8330af34}, - {0xeba684, 0x8330af35}, - {0xeba685, 0x8330af36}, - {0xeba686, 0x8330af37}, - {0xeba687, 0x8330af38}, - {0xeba688, 0x8330af39}, - {0xeba689, 0x8330b030}, - {0xeba68a, 0x8330b031}, - {0xeba68b, 0x8330b032}, - {0xeba68c, 0x8330b033}, - {0xeba68d, 0x8330b034}, - {0xeba68e, 0x8330b035}, - {0xeba68f, 0x8330b036}, - {0xeba690, 0x8330b037}, - {0xeba691, 0x8330b038}, - {0xeba692, 0x8330b039}, - {0xeba693, 0x8330b130}, - {0xeba694, 0x8330b131}, - {0xeba695, 0x8330b132}, - {0xeba696, 0x8330b133}, - {0xeba697, 0x8330b134}, - {0xeba698, 0x8330b135}, - {0xeba699, 0x8330b136}, - {0xeba69a, 0x8330b137}, - {0xeba69b, 0x8330b138}, - {0xeba69c, 0x8330b139}, - {0xeba69d, 0x8330b230}, - {0xeba69e, 0x8330b231}, - {0xeba69f, 0x8330b232}, - {0xeba6a0, 0x8330b233}, - {0xeba6a1, 0x8330b234}, - {0xeba6a2, 0x8330b235}, - {0xeba6a3, 0x8330b236}, - {0xeba6a4, 0x8330b237}, - {0xeba6a5, 0x8330b238}, - {0xeba6a6, 0x8330b239}, - {0xeba6a7, 0x8330b330}, - {0xeba6a8, 0x8330b331}, - {0xeba6a9, 0x8330b332}, - {0xeba6aa, 0x8330b333}, - {0xeba6ab, 0x8330b334}, - {0xeba6ac, 0x8330b335}, - {0xeba6ad, 0x8330b336}, - {0xeba6ae, 0x8330b337}, - {0xeba6af, 0x8330b338}, - {0xeba6b0, 0x8330b339}, - {0xeba6b1, 0x8330b430}, - {0xeba6b2, 0x8330b431}, - {0xeba6b3, 0x8330b432}, - {0xeba6b4, 0x8330b433}, - {0xeba6b5, 0x8330b434}, - {0xeba6b6, 0x8330b435}, - {0xeba6b7, 0x8330b436}, - {0xeba6b8, 0x8330b437}, - {0xeba6b9, 0x8330b438}, - {0xeba6ba, 0x8330b439}, - {0xeba6bb, 0x8330b530}, - {0xeba6bc, 0x8330b531}, - {0xeba6bd, 0x8330b532}, - {0xeba6be, 0x8330b533}, - {0xeba6bf, 0x8330b534}, - {0xeba780, 0x8330b535}, - {0xeba781, 0x8330b536}, - {0xeba782, 0x8330b537}, - {0xeba783, 0x8330b538}, - {0xeba784, 0x8330b539}, - {0xeba785, 0x8330b630}, - {0xeba786, 0x8330b631}, - {0xeba787, 0x8330b632}, - {0xeba788, 0x8330b633}, - {0xeba789, 0x8330b634}, - {0xeba78a, 0x8330b635}, - {0xeba78b, 0x8330b636}, - {0xeba78c, 0x8330b637}, - {0xeba78d, 0x8330b638}, - {0xeba78e, 0x8330b639}, - {0xeba78f, 0x8330b730}, - {0xeba790, 0x8330b731}, - {0xeba791, 0x8330b732}, - {0xeba792, 0x8330b733}, - {0xeba793, 0x8330b734}, - {0xeba794, 0x8330b735}, - {0xeba795, 0x8330b736}, - {0xeba796, 0x8330b737}, - {0xeba797, 0x8330b738}, - {0xeba798, 0x8330b739}, - {0xeba799, 0x8330b830}, - {0xeba79a, 0x8330b831}, - {0xeba79b, 0x8330b832}, - {0xeba79c, 0x8330b833}, - {0xeba79d, 0x8330b834}, - {0xeba79e, 0x8330b835}, - {0xeba79f, 0x8330b836}, - {0xeba7a0, 0x8330b837}, - {0xeba7a1, 0x8330b838}, - {0xeba7a2, 0x8330b839}, - {0xeba7a3, 0x8330b930}, - {0xeba7a4, 0x8330b931}, - {0xeba7a5, 0x8330b932}, - {0xeba7a6, 0x8330b933}, - {0xeba7a7, 0x8330b934}, - {0xeba7a8, 0x8330b935}, - {0xeba7a9, 0x8330b936}, - {0xeba7aa, 0x8330b937}, - {0xeba7ab, 0x8330b938}, - {0xeba7ac, 0x8330b939}, - {0xeba7ad, 0x8330ba30}, - {0xeba7ae, 0x8330ba31}, - {0xeba7af, 0x8330ba32}, - {0xeba7b0, 0x8330ba33}, - {0xeba7b1, 0x8330ba34}, - {0xeba7b2, 0x8330ba35}, - {0xeba7b3, 0x8330ba36}, - {0xeba7b4, 0x8330ba37}, - {0xeba7b5, 0x8330ba38}, - {0xeba7b6, 0x8330ba39}, - {0xeba7b7, 0x8330bb30}, - {0xeba7b8, 0x8330bb31}, - {0xeba7b9, 0x8330bb32}, - {0xeba7ba, 0x8330bb33}, - {0xeba7bb, 0x8330bb34}, - {0xeba7bc, 0x8330bb35}, - {0xeba7bd, 0x8330bb36}, - {0xeba7be, 0x8330bb37}, - {0xeba7bf, 0x8330bb38}, - {0xeba880, 0x8330bb39}, - {0xeba881, 0x8330bc30}, - {0xeba882, 0x8330bc31}, - {0xeba883, 0x8330bc32}, - {0xeba884, 0x8330bc33}, - {0xeba885, 0x8330bc34}, - {0xeba886, 0x8330bc35}, - {0xeba887, 0x8330bc36}, - {0xeba888, 0x8330bc37}, - {0xeba889, 0x8330bc38}, - {0xeba88a, 0x8330bc39}, - {0xeba88b, 0x8330bd30}, - {0xeba88c, 0x8330bd31}, - {0xeba88d, 0x8330bd32}, - {0xeba88e, 0x8330bd33}, - {0xeba88f, 0x8330bd34}, - {0xeba890, 0x8330bd35}, - {0xeba891, 0x8330bd36}, - {0xeba892, 0x8330bd37}, - {0xeba893, 0x8330bd38}, - {0xeba894, 0x8330bd39}, - {0xeba895, 0x8330be30}, - {0xeba896, 0x8330be31}, - {0xeba897, 0x8330be32}, - {0xeba898, 0x8330be33}, - {0xeba899, 0x8330be34}, - {0xeba89a, 0x8330be35}, - {0xeba89b, 0x8330be36}, - {0xeba89c, 0x8330be37}, - {0xeba89d, 0x8330be38}, - {0xeba89e, 0x8330be39}, - {0xeba89f, 0x8330bf30}, - {0xeba8a0, 0x8330bf31}, - {0xeba8a1, 0x8330bf32}, - {0xeba8a2, 0x8330bf33}, - {0xeba8a3, 0x8330bf34}, - {0xeba8a4, 0x8330bf35}, - {0xeba8a5, 0x8330bf36}, - {0xeba8a6, 0x8330bf37}, - {0xeba8a7, 0x8330bf38}, - {0xeba8a8, 0x8330bf39}, - {0xeba8a9, 0x8330c030}, - {0xeba8aa, 0x8330c031}, - {0xeba8ab, 0x8330c032}, - {0xeba8ac, 0x8330c033}, - {0xeba8ad, 0x8330c034}, - {0xeba8ae, 0x8330c035}, - {0xeba8af, 0x8330c036}, - {0xeba8b0, 0x8330c037}, - {0xeba8b1, 0x8330c038}, - {0xeba8b2, 0x8330c039}, - {0xeba8b3, 0x8330c130}, - {0xeba8b4, 0x8330c131}, - {0xeba8b5, 0x8330c132}, - {0xeba8b6, 0x8330c133}, - {0xeba8b7, 0x8330c134}, - {0xeba8b8, 0x8330c135}, - {0xeba8b9, 0x8330c136}, - {0xeba8ba, 0x8330c137}, - {0xeba8bb, 0x8330c138}, - {0xeba8bc, 0x8330c139}, - {0xeba8bd, 0x8330c230}, - {0xeba8be, 0x8330c231}, - {0xeba8bf, 0x8330c232}, - {0xeba980, 0x8330c233}, - {0xeba981, 0x8330c234}, - {0xeba982, 0x8330c235}, - {0xeba983, 0x8330c236}, - {0xeba984, 0x8330c237}, - {0xeba985, 0x8330c238}, - {0xeba986, 0x8330c239}, - {0xeba987, 0x8330c330}, - {0xeba988, 0x8330c331}, - {0xeba989, 0x8330c332}, - {0xeba98a, 0x8330c333}, - {0xeba98b, 0x8330c334}, - {0xeba98c, 0x8330c335}, - {0xeba98d, 0x8330c336}, - {0xeba98e, 0x8330c337}, - {0xeba98f, 0x8330c338}, - {0xeba990, 0x8330c339}, - {0xeba991, 0x8330c430}, - {0xeba992, 0x8330c431}, - {0xeba993, 0x8330c432}, - {0xeba994, 0x8330c433}, - {0xeba995, 0x8330c434}, - {0xeba996, 0x8330c435}, - {0xeba997, 0x8330c436}, - {0xeba998, 0x8330c437}, - {0xeba999, 0x8330c438}, - {0xeba99a, 0x8330c439}, - {0xeba99b, 0x8330c530}, - {0xeba99c, 0x8330c531}, - {0xeba99d, 0x8330c532}, - {0xeba99e, 0x8330c533}, - {0xeba99f, 0x8330c534}, - {0xeba9a0, 0x8330c535}, - {0xeba9a1, 0x8330c536}, - {0xeba9a2, 0x8330c537}, - {0xeba9a3, 0x8330c538}, - {0xeba9a4, 0x8330c539}, - {0xeba9a5, 0x8330c630}, - {0xeba9a6, 0x8330c631}, - {0xeba9a7, 0x8330c632}, - {0xeba9a8, 0x8330c633}, - {0xeba9a9, 0x8330c634}, - {0xeba9aa, 0x8330c635}, - {0xeba9ab, 0x8330c636}, - {0xeba9ac, 0x8330c637}, - {0xeba9ad, 0x8330c638}, - {0xeba9ae, 0x8330c639}, - {0xeba9af, 0x8330c730}, - {0xeba9b0, 0x8330c731}, - {0xeba9b1, 0x8330c732}, - {0xeba9b2, 0x8330c733}, - {0xeba9b3, 0x8330c734}, - {0xeba9b4, 0x8330c735}, - {0xeba9b5, 0x8330c736}, - {0xeba9b6, 0x8330c737}, - {0xeba9b7, 0x8330c738}, - {0xeba9b8, 0x8330c739}, - {0xeba9b9, 0x8330c830}, - {0xeba9ba, 0x8330c831}, - {0xeba9bb, 0x8330c832}, - {0xeba9bc, 0x8330c833}, - {0xeba9bd, 0x8330c834}, - {0xeba9be, 0x8330c835}, - {0xeba9bf, 0x8330c836}, - {0xebaa80, 0x8330c837}, - {0xebaa81, 0x8330c838}, - {0xebaa82, 0x8330c839}, - {0xebaa83, 0x8330c930}, - {0xebaa84, 0x8330c931}, - {0xebaa85, 0x8330c932}, - {0xebaa86, 0x8330c933}, - {0xebaa87, 0x8330c934}, - {0xebaa88, 0x8330c935}, - {0xebaa89, 0x8330c936}, - {0xebaa8a, 0x8330c937}, - {0xebaa8b, 0x8330c938}, - {0xebaa8c, 0x8330c939}, - {0xebaa8d, 0x8330ca30}, - {0xebaa8e, 0x8330ca31}, - {0xebaa8f, 0x8330ca32}, - {0xebaa90, 0x8330ca33}, - {0xebaa91, 0x8330ca34}, - {0xebaa92, 0x8330ca35}, - {0xebaa93, 0x8330ca36}, - {0xebaa94, 0x8330ca37}, - {0xebaa95, 0x8330ca38}, - {0xebaa96, 0x8330ca39}, - {0xebaa97, 0x8330cb30}, - {0xebaa98, 0x8330cb31}, - {0xebaa99, 0x8330cb32}, - {0xebaa9a, 0x8330cb33}, - {0xebaa9b, 0x8330cb34}, - {0xebaa9c, 0x8330cb35}, - {0xebaa9d, 0x8330cb36}, - {0xebaa9e, 0x8330cb37}, - {0xebaa9f, 0x8330cb38}, - {0xebaaa0, 0x8330cb39}, - {0xebaaa1, 0x8330cc30}, - {0xebaaa2, 0x8330cc31}, - {0xebaaa3, 0x8330cc32}, - {0xebaaa4, 0x8330cc33}, - {0xebaaa5, 0x8330cc34}, - {0xebaaa6, 0x8330cc35}, - {0xebaaa7, 0x8330cc36}, - {0xebaaa8, 0x8330cc37}, - {0xebaaa9, 0x8330cc38}, - {0xebaaaa, 0x8330cc39}, - {0xebaaab, 0x8330cd30}, - {0xebaaac, 0x8330cd31}, - {0xebaaad, 0x8330cd32}, - {0xebaaae, 0x8330cd33}, - {0xebaaaf, 0x8330cd34}, - {0xebaab0, 0x8330cd35}, - {0xebaab1, 0x8330cd36}, - {0xebaab2, 0x8330cd37}, - {0xebaab3, 0x8330cd38}, - {0xebaab4, 0x8330cd39}, - {0xebaab5, 0x8330ce30}, - {0xebaab6, 0x8330ce31}, - {0xebaab7, 0x8330ce32}, - {0xebaab8, 0x8330ce33}, - {0xebaab9, 0x8330ce34}, - {0xebaaba, 0x8330ce35}, - {0xebaabb, 0x8330ce36}, - {0xebaabc, 0x8330ce37}, - {0xebaabd, 0x8330ce38}, - {0xebaabe, 0x8330ce39}, - {0xebaabf, 0x8330cf30}, - {0xebab80, 0x8330cf31}, - {0xebab81, 0x8330cf32}, - {0xebab82, 0x8330cf33}, - {0xebab83, 0x8330cf34}, - {0xebab84, 0x8330cf35}, - {0xebab85, 0x8330cf36}, - {0xebab86, 0x8330cf37}, - {0xebab87, 0x8330cf38}, - {0xebab88, 0x8330cf39}, - {0xebab89, 0x8330d030}, - {0xebab8a, 0x8330d031}, - {0xebab8b, 0x8330d032}, - {0xebab8c, 0x8330d033}, - {0xebab8d, 0x8330d034}, - {0xebab8e, 0x8330d035}, - {0xebab8f, 0x8330d036}, - {0xebab90, 0x8330d037}, - {0xebab91, 0x8330d038}, - {0xebab92, 0x8330d039}, - {0xebab93, 0x8330d130}, - {0xebab94, 0x8330d131}, - {0xebab95, 0x8330d132}, - {0xebab96, 0x8330d133}, - {0xebab97, 0x8330d134}, - {0xebab98, 0x8330d135}, - {0xebab99, 0x8330d136}, - {0xebab9a, 0x8330d137}, - {0xebab9b, 0x8330d138}, - {0xebab9c, 0x8330d139}, - {0xebab9d, 0x8330d230}, - {0xebab9e, 0x8330d231}, - {0xebab9f, 0x8330d232}, - {0xebaba0, 0x8330d233}, - {0xebaba1, 0x8330d234}, - {0xebaba2, 0x8330d235}, - {0xebaba3, 0x8330d236}, - {0xebaba4, 0x8330d237}, - {0xebaba5, 0x8330d238}, - {0xebaba6, 0x8330d239}, - {0xebaba7, 0x8330d330}, - {0xebaba8, 0x8330d331}, - {0xebaba9, 0x8330d332}, - {0xebabaa, 0x8330d333}, - {0xebabab, 0x8330d334}, - {0xebabac, 0x8330d335}, - {0xebabad, 0x8330d336}, - {0xebabae, 0x8330d337}, - {0xebabaf, 0x8330d338}, - {0xebabb0, 0x8330d339}, - {0xebabb1, 0x8330d430}, - {0xebabb2, 0x8330d431}, - {0xebabb3, 0x8330d432}, - {0xebabb4, 0x8330d433}, - {0xebabb5, 0x8330d434}, - {0xebabb6, 0x8330d435}, - {0xebabb7, 0x8330d436}, - {0xebabb8, 0x8330d437}, - {0xebabb9, 0x8330d438}, - {0xebabba, 0x8330d439}, - {0xebabbb, 0x8330d530}, - {0xebabbc, 0x8330d531}, - {0xebabbd, 0x8330d532}, - {0xebabbe, 0x8330d533}, - {0xebabbf, 0x8330d534}, - {0xebac80, 0x8330d535}, - {0xebac81, 0x8330d536}, - {0xebac82, 0x8330d537}, - {0xebac83, 0x8330d538}, - {0xebac84, 0x8330d539}, - {0xebac85, 0x8330d630}, - {0xebac86, 0x8330d631}, - {0xebac87, 0x8330d632}, - {0xebac88, 0x8330d633}, - {0xebac89, 0x8330d634}, - {0xebac8a, 0x8330d635}, - {0xebac8b, 0x8330d636}, - {0xebac8c, 0x8330d637}, - {0xebac8d, 0x8330d638}, - {0xebac8e, 0x8330d639}, - {0xebac8f, 0x8330d730}, - {0xebac90, 0x8330d731}, - {0xebac91, 0x8330d732}, - {0xebac92, 0x8330d733}, - {0xebac93, 0x8330d734}, - {0xebac94, 0x8330d735}, - {0xebac95, 0x8330d736}, - {0xebac96, 0x8330d737}, - {0xebac97, 0x8330d738}, - {0xebac98, 0x8330d739}, - {0xebac99, 0x8330d830}, - {0xebac9a, 0x8330d831}, - {0xebac9b, 0x8330d832}, - {0xebac9c, 0x8330d833}, - {0xebac9d, 0x8330d834}, - {0xebac9e, 0x8330d835}, - {0xebac9f, 0x8330d836}, - {0xebaca0, 0x8330d837}, - {0xebaca1, 0x8330d838}, - {0xebaca2, 0x8330d839}, - {0xebaca3, 0x8330d930}, - {0xebaca4, 0x8330d931}, - {0xebaca5, 0x8330d932}, - {0xebaca6, 0x8330d933}, - {0xebaca7, 0x8330d934}, - {0xebaca8, 0x8330d935}, - {0xebaca9, 0x8330d936}, - {0xebacaa, 0x8330d937}, - {0xebacab, 0x8330d938}, - {0xebacac, 0x8330d939}, - {0xebacad, 0x8330da30}, - {0xebacae, 0x8330da31}, - {0xebacaf, 0x8330da32}, - {0xebacb0, 0x8330da33}, - {0xebacb1, 0x8330da34}, - {0xebacb2, 0x8330da35}, - {0xebacb3, 0x8330da36}, - {0xebacb4, 0x8330da37}, - {0xebacb5, 0x8330da38}, - {0xebacb6, 0x8330da39}, - {0xebacb7, 0x8330db30}, - {0xebacb8, 0x8330db31}, - {0xebacb9, 0x8330db32}, - {0xebacba, 0x8330db33}, - {0xebacbb, 0x8330db34}, - {0xebacbc, 0x8330db35}, - {0xebacbd, 0x8330db36}, - {0xebacbe, 0x8330db37}, - {0xebacbf, 0x8330db38}, - {0xebad80, 0x8330db39}, - {0xebad81, 0x8330dc30}, - {0xebad82, 0x8330dc31}, - {0xebad83, 0x8330dc32}, - {0xebad84, 0x8330dc33}, - {0xebad85, 0x8330dc34}, - {0xebad86, 0x8330dc35}, - {0xebad87, 0x8330dc36}, - {0xebad88, 0x8330dc37}, - {0xebad89, 0x8330dc38}, - {0xebad8a, 0x8330dc39}, - {0xebad8b, 0x8330dd30}, - {0xebad8c, 0x8330dd31}, - {0xebad8d, 0x8330dd32}, - {0xebad8e, 0x8330dd33}, - {0xebad8f, 0x8330dd34}, - {0xebad90, 0x8330dd35}, - {0xebad91, 0x8330dd36}, - {0xebad92, 0x8330dd37}, - {0xebad93, 0x8330dd38}, - {0xebad94, 0x8330dd39}, - {0xebad95, 0x8330de30}, - {0xebad96, 0x8330de31}, - {0xebad97, 0x8330de32}, - {0xebad98, 0x8330de33}, - {0xebad99, 0x8330de34}, - {0xebad9a, 0x8330de35}, - {0xebad9b, 0x8330de36}, - {0xebad9c, 0x8330de37}, - {0xebad9d, 0x8330de38}, - {0xebad9e, 0x8330de39}, - {0xebad9f, 0x8330df30}, - {0xebada0, 0x8330df31}, - {0xebada1, 0x8330df32}, - {0xebada2, 0x8330df33}, - {0xebada3, 0x8330df34}, - {0xebada4, 0x8330df35}, - {0xebada5, 0x8330df36}, - {0xebada6, 0x8330df37}, - {0xebada7, 0x8330df38}, - {0xebada8, 0x8330df39}, - {0xebada9, 0x8330e030}, - {0xebadaa, 0x8330e031}, - {0xebadab, 0x8330e032}, - {0xebadac, 0x8330e033}, - {0xebadad, 0x8330e034}, - {0xebadae, 0x8330e035}, - {0xebadaf, 0x8330e036}, - {0xebadb0, 0x8330e037}, - {0xebadb1, 0x8330e038}, - {0xebadb2, 0x8330e039}, - {0xebadb3, 0x8330e130}, - {0xebadb4, 0x8330e131}, - {0xebadb5, 0x8330e132}, - {0xebadb6, 0x8330e133}, - {0xebadb7, 0x8330e134}, - {0xebadb8, 0x8330e135}, - {0xebadb9, 0x8330e136}, - {0xebadba, 0x8330e137}, - {0xebadbb, 0x8330e138}, - {0xebadbc, 0x8330e139}, - {0xebadbd, 0x8330e230}, - {0xebadbe, 0x8330e231}, - {0xebadbf, 0x8330e232}, - {0xebae80, 0x8330e233}, - {0xebae81, 0x8330e234}, - {0xebae82, 0x8330e235}, - {0xebae83, 0x8330e236}, - {0xebae84, 0x8330e237}, - {0xebae85, 0x8330e238}, - {0xebae86, 0x8330e239}, - {0xebae87, 0x8330e330}, - {0xebae88, 0x8330e331}, - {0xebae89, 0x8330e332}, - {0xebae8a, 0x8330e333}, - {0xebae8b, 0x8330e334}, - {0xebae8c, 0x8330e335}, - {0xebae8d, 0x8330e336}, - {0xebae8e, 0x8330e337}, - {0xebae8f, 0x8330e338}, - {0xebae90, 0x8330e339}, - {0xebae91, 0x8330e430}, - {0xebae92, 0x8330e431}, - {0xebae93, 0x8330e432}, - {0xebae94, 0x8330e433}, - {0xebae95, 0x8330e434}, - {0xebae96, 0x8330e435}, - {0xebae97, 0x8330e436}, - {0xebae98, 0x8330e437}, - {0xebae99, 0x8330e438}, - {0xebae9a, 0x8330e439}, - {0xebae9b, 0x8330e530}, - {0xebae9c, 0x8330e531}, - {0xebae9d, 0x8330e532}, - {0xebae9e, 0x8330e533}, - {0xebae9f, 0x8330e534}, - {0xebaea0, 0x8330e535}, - {0xebaea1, 0x8330e536}, - {0xebaea2, 0x8330e537}, - {0xebaea3, 0x8330e538}, - {0xebaea4, 0x8330e539}, - {0xebaea5, 0x8330e630}, - {0xebaea6, 0x8330e631}, - {0xebaea7, 0x8330e632}, - {0xebaea8, 0x8330e633}, - {0xebaea9, 0x8330e634}, - {0xebaeaa, 0x8330e635}, - {0xebaeab, 0x8330e636}, - {0xebaeac, 0x8330e637}, - {0xebaead, 0x8330e638}, - {0xebaeae, 0x8330e639}, - {0xebaeaf, 0x8330e730}, - {0xebaeb0, 0x8330e731}, - {0xebaeb1, 0x8330e732}, - {0xebaeb2, 0x8330e733}, - {0xebaeb3, 0x8330e734}, - {0xebaeb4, 0x8330e735}, - {0xebaeb5, 0x8330e736}, - {0xebaeb6, 0x8330e737}, - {0xebaeb7, 0x8330e738}, - {0xebaeb8, 0x8330e739}, - {0xebaeb9, 0x8330e830}, - {0xebaeba, 0x8330e831}, - {0xebaebb, 0x8330e832}, - {0xebaebc, 0x8330e833}, - {0xebaebd, 0x8330e834}, - {0xebaebe, 0x8330e835}, - {0xebaebf, 0x8330e836}, - {0xebaf80, 0x8330e837}, - {0xebaf81, 0x8330e838}, - {0xebaf82, 0x8330e839}, - {0xebaf83, 0x8330e930}, - {0xebaf84, 0x8330e931}, - {0xebaf85, 0x8330e932}, - {0xebaf86, 0x8330e933}, - {0xebaf87, 0x8330e934}, - {0xebaf88, 0x8330e935}, - {0xebaf89, 0x8330e936}, - {0xebaf8a, 0x8330e937}, - {0xebaf8b, 0x8330e938}, - {0xebaf8c, 0x8330e939}, - {0xebaf8d, 0x8330ea30}, - {0xebaf8e, 0x8330ea31}, - {0xebaf8f, 0x8330ea32}, - {0xebaf90, 0x8330ea33}, - {0xebaf91, 0x8330ea34}, - {0xebaf92, 0x8330ea35}, - {0xebaf93, 0x8330ea36}, - {0xebaf94, 0x8330ea37}, - {0xebaf95, 0x8330ea38}, - {0xebaf96, 0x8330ea39}, - {0xebaf97, 0x8330eb30}, - {0xebaf98, 0x8330eb31}, - {0xebaf99, 0x8330eb32}, - {0xebaf9a, 0x8330eb33}, - {0xebaf9b, 0x8330eb34}, - {0xebaf9c, 0x8330eb35}, - {0xebaf9d, 0x8330eb36}, - {0xebaf9e, 0x8330eb37}, - {0xebaf9f, 0x8330eb38}, - {0xebafa0, 0x8330eb39}, - {0xebafa1, 0x8330ec30}, - {0xebafa2, 0x8330ec31}, - {0xebafa3, 0x8330ec32}, - {0xebafa4, 0x8330ec33}, - {0xebafa5, 0x8330ec34}, - {0xebafa6, 0x8330ec35}, - {0xebafa7, 0x8330ec36}, - {0xebafa8, 0x8330ec37}, - {0xebafa9, 0x8330ec38}, - {0xebafaa, 0x8330ec39}, - {0xebafab, 0x8330ed30}, - {0xebafac, 0x8330ed31}, - {0xebafad, 0x8330ed32}, - {0xebafae, 0x8330ed33}, - {0xebafaf, 0x8330ed34}, - {0xebafb0, 0x8330ed35}, - {0xebafb1, 0x8330ed36}, - {0xebafb2, 0x8330ed37}, - {0xebafb3, 0x8330ed38}, - {0xebafb4, 0x8330ed39}, - {0xebafb5, 0x8330ee30}, - {0xebafb6, 0x8330ee31}, - {0xebafb7, 0x8330ee32}, - {0xebafb8, 0x8330ee33}, - {0xebafb9, 0x8330ee34}, - {0xebafba, 0x8330ee35}, - {0xebafbb, 0x8330ee36}, - {0xebafbc, 0x8330ee37}, - {0xebafbd, 0x8330ee38}, - {0xebafbe, 0x8330ee39}, - {0xebafbf, 0x8330ef30}, - {0xebb080, 0x8330ef31}, - {0xebb081, 0x8330ef32}, - {0xebb082, 0x8330ef33}, - {0xebb083, 0x8330ef34}, - {0xebb084, 0x8330ef35}, - {0xebb085, 0x8330ef36}, - {0xebb086, 0x8330ef37}, - {0xebb087, 0x8330ef38}, - {0xebb088, 0x8330ef39}, - {0xebb089, 0x8330f030}, - {0xebb08a, 0x8330f031}, - {0xebb08b, 0x8330f032}, - {0xebb08c, 0x8330f033}, - {0xebb08d, 0x8330f034}, - {0xebb08e, 0x8330f035}, - {0xebb08f, 0x8330f036}, - {0xebb090, 0x8330f037}, - {0xebb091, 0x8330f038}, - {0xebb092, 0x8330f039}, - {0xebb093, 0x8330f130}, - {0xebb094, 0x8330f131}, - {0xebb095, 0x8330f132}, - {0xebb096, 0x8330f133}, - {0xebb097, 0x8330f134}, - {0xebb098, 0x8330f135}, - {0xebb099, 0x8330f136}, - {0xebb09a, 0x8330f137}, - {0xebb09b, 0x8330f138}, - {0xebb09c, 0x8330f139}, - {0xebb09d, 0x8330f230}, - {0xebb09e, 0x8330f231}, - {0xebb09f, 0x8330f232}, - {0xebb0a0, 0x8330f233}, - {0xebb0a1, 0x8330f234}, - {0xebb0a2, 0x8330f235}, - {0xebb0a3, 0x8330f236}, - {0xebb0a4, 0x8330f237}, - {0xebb0a5, 0x8330f238}, - {0xebb0a6, 0x8330f239}, - {0xebb0a7, 0x8330f330}, - {0xebb0a8, 0x8330f331}, - {0xebb0a9, 0x8330f332}, - {0xebb0aa, 0x8330f333}, - {0xebb0ab, 0x8330f334}, - {0xebb0ac, 0x8330f335}, - {0xebb0ad, 0x8330f336}, - {0xebb0ae, 0x8330f337}, - {0xebb0af, 0x8330f338}, - {0xebb0b0, 0x8330f339}, - {0xebb0b1, 0x8330f430}, - {0xebb0b2, 0x8330f431}, - {0xebb0b3, 0x8330f432}, - {0xebb0b4, 0x8330f433}, - {0xebb0b5, 0x8330f434}, - {0xebb0b6, 0x8330f435}, - {0xebb0b7, 0x8330f436}, - {0xebb0b8, 0x8330f437}, - {0xebb0b9, 0x8330f438}, - {0xebb0ba, 0x8330f439}, - {0xebb0bb, 0x8330f530}, - {0xebb0bc, 0x8330f531}, - {0xebb0bd, 0x8330f532}, - {0xebb0be, 0x8330f533}, - {0xebb0bf, 0x8330f534}, - {0xebb180, 0x8330f535}, - {0xebb181, 0x8330f536}, - {0xebb182, 0x8330f537}, - {0xebb183, 0x8330f538}, - {0xebb184, 0x8330f539}, - {0xebb185, 0x8330f630}, - {0xebb186, 0x8330f631}, - {0xebb187, 0x8330f632}, - {0xebb188, 0x8330f633}, - {0xebb189, 0x8330f634}, - {0xebb18a, 0x8330f635}, - {0xebb18b, 0x8330f636}, - {0xebb18c, 0x8330f637}, - {0xebb18d, 0x8330f638}, - {0xebb18e, 0x8330f639}, - {0xebb18f, 0x8330f730}, - {0xebb190, 0x8330f731}, - {0xebb191, 0x8330f732}, - {0xebb192, 0x8330f733}, - {0xebb193, 0x8330f734}, - {0xebb194, 0x8330f735}, - {0xebb195, 0x8330f736}, - {0xebb196, 0x8330f737}, - {0xebb197, 0x8330f738}, - {0xebb198, 0x8330f739}, - {0xebb199, 0x8330f830}, - {0xebb19a, 0x8330f831}, - {0xebb19b, 0x8330f832}, - {0xebb19c, 0x8330f833}, - {0xebb19d, 0x8330f834}, - {0xebb19e, 0x8330f835}, - {0xebb19f, 0x8330f836}, - {0xebb1a0, 0x8330f837}, - {0xebb1a1, 0x8330f838}, - {0xebb1a2, 0x8330f839}, - {0xebb1a3, 0x8330f930}, - {0xebb1a4, 0x8330f931}, - {0xebb1a5, 0x8330f932}, - {0xebb1a6, 0x8330f933}, - {0xebb1a7, 0x8330f934}, - {0xebb1a8, 0x8330f935}, - {0xebb1a9, 0x8330f936}, - {0xebb1aa, 0x8330f937}, - {0xebb1ab, 0x8330f938}, - {0xebb1ac, 0x8330f939}, - {0xebb1ad, 0x8330fa30}, - {0xebb1ae, 0x8330fa31}, - {0xebb1af, 0x8330fa32}, - {0xebb1b0, 0x8330fa33}, - {0xebb1b1, 0x8330fa34}, - {0xebb1b2, 0x8330fa35}, - {0xebb1b3, 0x8330fa36}, - {0xebb1b4, 0x8330fa37}, - {0xebb1b5, 0x8330fa38}, - {0xebb1b6, 0x8330fa39}, - {0xebb1b7, 0x8330fb30}, - {0xebb1b8, 0x8330fb31}, - {0xebb1b9, 0x8330fb32}, - {0xebb1ba, 0x8330fb33}, - {0xebb1bb, 0x8330fb34}, - {0xebb1bc, 0x8330fb35}, - {0xebb1bd, 0x8330fb36}, - {0xebb1be, 0x8330fb37}, - {0xebb1bf, 0x8330fb38}, - {0xebb280, 0x8330fb39}, - {0xebb281, 0x8330fc30}, - {0xebb282, 0x8330fc31}, - {0xebb283, 0x8330fc32}, - {0xebb284, 0x8330fc33}, - {0xebb285, 0x8330fc34}, - {0xebb286, 0x8330fc35}, - {0xebb287, 0x8330fc36}, - {0xebb288, 0x8330fc37}, - {0xebb289, 0x8330fc38}, - {0xebb28a, 0x8330fc39}, - {0xebb28b, 0x8330fd30}, - {0xebb28c, 0x8330fd31}, - {0xebb28d, 0x8330fd32}, - {0xebb28e, 0x8330fd33}, - {0xebb28f, 0x8330fd34}, - {0xebb290, 0x8330fd35}, - {0xebb291, 0x8330fd36}, - {0xebb292, 0x8330fd37}, - {0xebb293, 0x8330fd38}, - {0xebb294, 0x8330fd39}, - {0xebb295, 0x8330fe30}, - {0xebb296, 0x8330fe31}, - {0xebb297, 0x8330fe32}, - {0xebb298, 0x8330fe33}, - {0xebb299, 0x8330fe34}, - {0xebb29a, 0x8330fe35}, - {0xebb29b, 0x8330fe36}, - {0xebb29c, 0x8330fe37}, - {0xebb29d, 0x8330fe38}, - {0xebb29e, 0x8330fe39}, - {0xebb29f, 0x83318130}, - {0xebb2a0, 0x83318131}, - {0xebb2a1, 0x83318132}, - {0xebb2a2, 0x83318133}, - {0xebb2a3, 0x83318134}, - {0xebb2a4, 0x83318135}, - {0xebb2a5, 0x83318136}, - {0xebb2a6, 0x83318137}, - {0xebb2a7, 0x83318138}, - {0xebb2a8, 0x83318139}, - {0xebb2a9, 0x83318230}, - {0xebb2aa, 0x83318231}, - {0xebb2ab, 0x83318232}, - {0xebb2ac, 0x83318233}, - {0xebb2ad, 0x83318234}, - {0xebb2ae, 0x83318235}, - {0xebb2af, 0x83318236}, - {0xebb2b0, 0x83318237}, - {0xebb2b1, 0x83318238}, - {0xebb2b2, 0x83318239}, - {0xebb2b3, 0x83318330}, - {0xebb2b4, 0x83318331}, - {0xebb2b5, 0x83318332}, - {0xebb2b6, 0x83318333}, - {0xebb2b7, 0x83318334}, - {0xebb2b8, 0x83318335}, - {0xebb2b9, 0x83318336}, - {0xebb2ba, 0x83318337}, - {0xebb2bb, 0x83318338}, - {0xebb2bc, 0x83318339}, - {0xebb2bd, 0x83318430}, - {0xebb2be, 0x83318431}, - {0xebb2bf, 0x83318432}, - {0xebb380, 0x83318433}, - {0xebb381, 0x83318434}, - {0xebb382, 0x83318435}, - {0xebb383, 0x83318436}, - {0xebb384, 0x83318437}, - {0xebb385, 0x83318438}, - {0xebb386, 0x83318439}, - {0xebb387, 0x83318530}, - {0xebb388, 0x83318531}, - {0xebb389, 0x83318532}, - {0xebb38a, 0x83318533}, - {0xebb38b, 0x83318534}, - {0xebb38c, 0x83318535}, - {0xebb38d, 0x83318536}, - {0xebb38e, 0x83318537}, - {0xebb38f, 0x83318538}, - {0xebb390, 0x83318539}, - {0xebb391, 0x83318630}, - {0xebb392, 0x83318631}, - {0xebb393, 0x83318632}, - {0xebb394, 0x83318633}, - {0xebb395, 0x83318634}, - {0xebb396, 0x83318635}, - {0xebb397, 0x83318636}, - {0xebb398, 0x83318637}, - {0xebb399, 0x83318638}, - {0xebb39a, 0x83318639}, - {0xebb39b, 0x83318730}, - {0xebb39c, 0x83318731}, - {0xebb39d, 0x83318732}, - {0xebb39e, 0x83318733}, - {0xebb39f, 0x83318734}, - {0xebb3a0, 0x83318735}, - {0xebb3a1, 0x83318736}, - {0xebb3a2, 0x83318737}, - {0xebb3a3, 0x83318738}, - {0xebb3a4, 0x83318739}, - {0xebb3a5, 0x83318830}, - {0xebb3a6, 0x83318831}, - {0xebb3a7, 0x83318832}, - {0xebb3a8, 0x83318833}, - {0xebb3a9, 0x83318834}, - {0xebb3aa, 0x83318835}, - {0xebb3ab, 0x83318836}, - {0xebb3ac, 0x83318837}, - {0xebb3ad, 0x83318838}, - {0xebb3ae, 0x83318839}, - {0xebb3af, 0x83318930}, - {0xebb3b0, 0x83318931}, - {0xebb3b1, 0x83318932}, - {0xebb3b2, 0x83318933}, - {0xebb3b3, 0x83318934}, - {0xebb3b4, 0x83318935}, - {0xebb3b5, 0x83318936}, - {0xebb3b6, 0x83318937}, - {0xebb3b7, 0x83318938}, - {0xebb3b8, 0x83318939}, - {0xebb3b9, 0x83318a30}, - {0xebb3ba, 0x83318a31}, - {0xebb3bb, 0x83318a32}, - {0xebb3bc, 0x83318a33}, - {0xebb3bd, 0x83318a34}, - {0xebb3be, 0x83318a35}, - {0xebb3bf, 0x83318a36}, - {0xebb480, 0x83318a37}, - {0xebb481, 0x83318a38}, - {0xebb482, 0x83318a39}, - {0xebb483, 0x83318b30}, - {0xebb484, 0x83318b31}, - {0xebb485, 0x83318b32}, - {0xebb486, 0x83318b33}, - {0xebb487, 0x83318b34}, - {0xebb488, 0x83318b35}, - {0xebb489, 0x83318b36}, - {0xebb48a, 0x83318b37}, - {0xebb48b, 0x83318b38}, - {0xebb48c, 0x83318b39}, - {0xebb48d, 0x83318c30}, - {0xebb48e, 0x83318c31}, - {0xebb48f, 0x83318c32}, - {0xebb490, 0x83318c33}, - {0xebb491, 0x83318c34}, - {0xebb492, 0x83318c35}, - {0xebb493, 0x83318c36}, - {0xebb494, 0x83318c37}, - {0xebb495, 0x83318c38}, - {0xebb496, 0x83318c39}, - {0xebb497, 0x83318d30}, - {0xebb498, 0x83318d31}, - {0xebb499, 0x83318d32}, - {0xebb49a, 0x83318d33}, - {0xebb49b, 0x83318d34}, - {0xebb49c, 0x83318d35}, - {0xebb49d, 0x83318d36}, - {0xebb49e, 0x83318d37}, - {0xebb49f, 0x83318d38}, - {0xebb4a0, 0x83318d39}, - {0xebb4a1, 0x83318e30}, - {0xebb4a2, 0x83318e31}, - {0xebb4a3, 0x83318e32}, - {0xebb4a4, 0x83318e33}, - {0xebb4a5, 0x83318e34}, - {0xebb4a6, 0x83318e35}, - {0xebb4a7, 0x83318e36}, - {0xebb4a8, 0x83318e37}, - {0xebb4a9, 0x83318e38}, - {0xebb4aa, 0x83318e39}, - {0xebb4ab, 0x83318f30}, - {0xebb4ac, 0x83318f31}, - {0xebb4ad, 0x83318f32}, - {0xebb4ae, 0x83318f33}, - {0xebb4af, 0x83318f34}, - {0xebb4b0, 0x83318f35}, - {0xebb4b1, 0x83318f36}, - {0xebb4b2, 0x83318f37}, - {0xebb4b3, 0x83318f38}, - {0xebb4b4, 0x83318f39}, - {0xebb4b5, 0x83319030}, - {0xebb4b6, 0x83319031}, - {0xebb4b7, 0x83319032}, - {0xebb4b8, 0x83319033}, - {0xebb4b9, 0x83319034}, - {0xebb4ba, 0x83319035}, - {0xebb4bb, 0x83319036}, - {0xebb4bc, 0x83319037}, - {0xebb4bd, 0x83319038}, - {0xebb4be, 0x83319039}, - {0xebb4bf, 0x83319130}, - {0xebb580, 0x83319131}, - {0xebb581, 0x83319132}, - {0xebb582, 0x83319133}, - {0xebb583, 0x83319134}, - {0xebb584, 0x83319135}, - {0xebb585, 0x83319136}, - {0xebb586, 0x83319137}, - {0xebb587, 0x83319138}, - {0xebb588, 0x83319139}, - {0xebb589, 0x83319230}, - {0xebb58a, 0x83319231}, - {0xebb58b, 0x83319232}, - {0xebb58c, 0x83319233}, - {0xebb58d, 0x83319234}, - {0xebb58e, 0x83319235}, - {0xebb58f, 0x83319236}, - {0xebb590, 0x83319237}, - {0xebb591, 0x83319238}, - {0xebb592, 0x83319239}, - {0xebb593, 0x83319330}, - {0xebb594, 0x83319331}, - {0xebb595, 0x83319332}, - {0xebb596, 0x83319333}, - {0xebb597, 0x83319334}, - {0xebb598, 0x83319335}, - {0xebb599, 0x83319336}, - {0xebb59a, 0x83319337}, - {0xebb59b, 0x83319338}, - {0xebb59c, 0x83319339}, - {0xebb59d, 0x83319430}, - {0xebb59e, 0x83319431}, - {0xebb59f, 0x83319432}, - {0xebb5a0, 0x83319433}, - {0xebb5a1, 0x83319434}, - {0xebb5a2, 0x83319435}, - {0xebb5a3, 0x83319436}, - {0xebb5a4, 0x83319437}, - {0xebb5a5, 0x83319438}, - {0xebb5a6, 0x83319439}, - {0xebb5a7, 0x83319530}, - {0xebb5a8, 0x83319531}, - {0xebb5a9, 0x83319532}, - {0xebb5aa, 0x83319533}, - {0xebb5ab, 0x83319534}, - {0xebb5ac, 0x83319535}, - {0xebb5ad, 0x83319536}, - {0xebb5ae, 0x83319537}, - {0xebb5af, 0x83319538}, - {0xebb5b0, 0x83319539}, - {0xebb5b1, 0x83319630}, - {0xebb5b2, 0x83319631}, - {0xebb5b3, 0x83319632}, - {0xebb5b4, 0x83319633}, - {0xebb5b5, 0x83319634}, - {0xebb5b6, 0x83319635}, - {0xebb5b7, 0x83319636}, - {0xebb5b8, 0x83319637}, - {0xebb5b9, 0x83319638}, - {0xebb5ba, 0x83319639}, - {0xebb5bb, 0x83319730}, - {0xebb5bc, 0x83319731}, - {0xebb5bd, 0x83319732}, - {0xebb5be, 0x83319733}, - {0xebb5bf, 0x83319734}, - {0xebb680, 0x83319735}, - {0xebb681, 0x83319736}, - {0xebb682, 0x83319737}, - {0xebb683, 0x83319738}, - {0xebb684, 0x83319739}, - {0xebb685, 0x83319830}, - {0xebb686, 0x83319831}, - {0xebb687, 0x83319832}, - {0xebb688, 0x83319833}, - {0xebb689, 0x83319834}, - {0xebb68a, 0x83319835}, - {0xebb68b, 0x83319836}, - {0xebb68c, 0x83319837}, - {0xebb68d, 0x83319838}, - {0xebb68e, 0x83319839}, - {0xebb68f, 0x83319930}, - {0xebb690, 0x83319931}, - {0xebb691, 0x83319932}, - {0xebb692, 0x83319933}, - {0xebb693, 0x83319934}, - {0xebb694, 0x83319935}, - {0xebb695, 0x83319936}, - {0xebb696, 0x83319937}, - {0xebb697, 0x83319938}, - {0xebb698, 0x83319939}, - {0xebb699, 0x83319a30}, - {0xebb69a, 0x83319a31}, - {0xebb69b, 0x83319a32}, - {0xebb69c, 0x83319a33}, - {0xebb69d, 0x83319a34}, - {0xebb69e, 0x83319a35}, - {0xebb69f, 0x83319a36}, - {0xebb6a0, 0x83319a37}, - {0xebb6a1, 0x83319a38}, - {0xebb6a2, 0x83319a39}, - {0xebb6a3, 0x83319b30}, - {0xebb6a4, 0x83319b31}, - {0xebb6a5, 0x83319b32}, - {0xebb6a6, 0x83319b33}, - {0xebb6a7, 0x83319b34}, - {0xebb6a8, 0x83319b35}, - {0xebb6a9, 0x83319b36}, - {0xebb6aa, 0x83319b37}, - {0xebb6ab, 0x83319b38}, - {0xebb6ac, 0x83319b39}, - {0xebb6ad, 0x83319c30}, - {0xebb6ae, 0x83319c31}, - {0xebb6af, 0x83319c32}, - {0xebb6b0, 0x83319c33}, - {0xebb6b1, 0x83319c34}, - {0xebb6b2, 0x83319c35}, - {0xebb6b3, 0x83319c36}, - {0xebb6b4, 0x83319c37}, - {0xebb6b5, 0x83319c38}, - {0xebb6b6, 0x83319c39}, - {0xebb6b7, 0x83319d30}, - {0xebb6b8, 0x83319d31}, - {0xebb6b9, 0x83319d32}, - {0xebb6ba, 0x83319d33}, - {0xebb6bb, 0x83319d34}, - {0xebb6bc, 0x83319d35}, - {0xebb6bd, 0x83319d36}, - {0xebb6be, 0x83319d37}, - {0xebb6bf, 0x83319d38}, - {0xebb780, 0x83319d39}, - {0xebb781, 0x83319e30}, - {0xebb782, 0x83319e31}, - {0xebb783, 0x83319e32}, - {0xebb784, 0x83319e33}, - {0xebb785, 0x83319e34}, - {0xebb786, 0x83319e35}, - {0xebb787, 0x83319e36}, - {0xebb788, 0x83319e37}, - {0xebb789, 0x83319e38}, - {0xebb78a, 0x83319e39}, - {0xebb78b, 0x83319f30}, - {0xebb78c, 0x83319f31}, - {0xebb78d, 0x83319f32}, - {0xebb78e, 0x83319f33}, - {0xebb78f, 0x83319f34}, - {0xebb790, 0x83319f35}, - {0xebb791, 0x83319f36}, - {0xebb792, 0x83319f37}, - {0xebb793, 0x83319f38}, - {0xebb794, 0x83319f39}, - {0xebb795, 0x8331a030}, - {0xebb796, 0x8331a031}, - {0xebb797, 0x8331a032}, - {0xebb798, 0x8331a033}, - {0xebb799, 0x8331a034}, - {0xebb79a, 0x8331a035}, - {0xebb79b, 0x8331a036}, - {0xebb79c, 0x8331a037}, - {0xebb79d, 0x8331a038}, - {0xebb79e, 0x8331a039}, - {0xebb79f, 0x8331a130}, - {0xebb7a0, 0x8331a131}, - {0xebb7a1, 0x8331a132}, - {0xebb7a2, 0x8331a133}, - {0xebb7a3, 0x8331a134}, - {0xebb7a4, 0x8331a135}, - {0xebb7a5, 0x8331a136}, - {0xebb7a6, 0x8331a137}, - {0xebb7a7, 0x8331a138}, - {0xebb7a8, 0x8331a139}, - {0xebb7a9, 0x8331a230}, - {0xebb7aa, 0x8331a231}, - {0xebb7ab, 0x8331a232}, - {0xebb7ac, 0x8331a233}, - {0xebb7ad, 0x8331a234}, - {0xebb7ae, 0x8331a235}, - {0xebb7af, 0x8331a236}, - {0xebb7b0, 0x8331a237}, - {0xebb7b1, 0x8331a238}, - {0xebb7b2, 0x8331a239}, - {0xebb7b3, 0x8331a330}, - {0xebb7b4, 0x8331a331}, - {0xebb7b5, 0x8331a332}, - {0xebb7b6, 0x8331a333}, - {0xebb7b7, 0x8331a334}, - {0xebb7b8, 0x8331a335}, - {0xebb7b9, 0x8331a336}, - {0xebb7ba, 0x8331a337}, - {0xebb7bb, 0x8331a338}, - {0xebb7bc, 0x8331a339}, - {0xebb7bd, 0x8331a430}, - {0xebb7be, 0x8331a431}, - {0xebb7bf, 0x8331a432}, - {0xebb880, 0x8331a433}, - {0xebb881, 0x8331a434}, - {0xebb882, 0x8331a435}, - {0xebb883, 0x8331a436}, - {0xebb884, 0x8331a437}, - {0xebb885, 0x8331a438}, - {0xebb886, 0x8331a439}, - {0xebb887, 0x8331a530}, - {0xebb888, 0x8331a531}, - {0xebb889, 0x8331a532}, - {0xebb88a, 0x8331a533}, - {0xebb88b, 0x8331a534}, - {0xebb88c, 0x8331a535}, - {0xebb88d, 0x8331a536}, - {0xebb88e, 0x8331a537}, - {0xebb88f, 0x8331a538}, - {0xebb890, 0x8331a539}, - {0xebb891, 0x8331a630}, - {0xebb892, 0x8331a631}, - {0xebb893, 0x8331a632}, - {0xebb894, 0x8331a633}, - {0xebb895, 0x8331a634}, - {0xebb896, 0x8331a635}, - {0xebb897, 0x8331a636}, - {0xebb898, 0x8331a637}, - {0xebb899, 0x8331a638}, - {0xebb89a, 0x8331a639}, - {0xebb89b, 0x8331a730}, - {0xebb89c, 0x8331a731}, - {0xebb89d, 0x8331a732}, - {0xebb89e, 0x8331a733}, - {0xebb89f, 0x8331a734}, - {0xebb8a0, 0x8331a735}, - {0xebb8a1, 0x8331a736}, - {0xebb8a2, 0x8331a737}, - {0xebb8a3, 0x8331a738}, - {0xebb8a4, 0x8331a739}, - {0xebb8a5, 0x8331a830}, - {0xebb8a6, 0x8331a831}, - {0xebb8a7, 0x8331a832}, - {0xebb8a8, 0x8331a833}, - {0xebb8a9, 0x8331a834}, - {0xebb8aa, 0x8331a835}, - {0xebb8ab, 0x8331a836}, - {0xebb8ac, 0x8331a837}, - {0xebb8ad, 0x8331a838}, - {0xebb8ae, 0x8331a839}, - {0xebb8af, 0x8331a930}, - {0xebb8b0, 0x8331a931}, - {0xebb8b1, 0x8331a932}, - {0xebb8b2, 0x8331a933}, - {0xebb8b3, 0x8331a934}, - {0xebb8b4, 0x8331a935}, - {0xebb8b5, 0x8331a936}, - {0xebb8b6, 0x8331a937}, - {0xebb8b7, 0x8331a938}, - {0xebb8b8, 0x8331a939}, - {0xebb8b9, 0x8331aa30}, - {0xebb8ba, 0x8331aa31}, - {0xebb8bb, 0x8331aa32}, - {0xebb8bc, 0x8331aa33}, - {0xebb8bd, 0x8331aa34}, - {0xebb8be, 0x8331aa35}, - {0xebb8bf, 0x8331aa36}, - {0xebb980, 0x8331aa37}, - {0xebb981, 0x8331aa38}, - {0xebb982, 0x8331aa39}, - {0xebb983, 0x8331ab30}, - {0xebb984, 0x8331ab31}, - {0xebb985, 0x8331ab32}, - {0xebb986, 0x8331ab33}, - {0xebb987, 0x8331ab34}, - {0xebb988, 0x8331ab35}, - {0xebb989, 0x8331ab36}, - {0xebb98a, 0x8331ab37}, - {0xebb98b, 0x8331ab38}, - {0xebb98c, 0x8331ab39}, - {0xebb98d, 0x8331ac30}, - {0xebb98e, 0x8331ac31}, - {0xebb98f, 0x8331ac32}, - {0xebb990, 0x8331ac33}, - {0xebb991, 0x8331ac34}, - {0xebb992, 0x8331ac35}, - {0xebb993, 0x8331ac36}, - {0xebb994, 0x8331ac37}, - {0xebb995, 0x8331ac38}, - {0xebb996, 0x8331ac39}, - {0xebb997, 0x8331ad30}, - {0xebb998, 0x8331ad31}, - {0xebb999, 0x8331ad32}, - {0xebb99a, 0x8331ad33}, - {0xebb99b, 0x8331ad34}, - {0xebb99c, 0x8331ad35}, - {0xebb99d, 0x8331ad36}, - {0xebb99e, 0x8331ad37}, - {0xebb99f, 0x8331ad38}, - {0xebb9a0, 0x8331ad39}, - {0xebb9a1, 0x8331ae30}, - {0xebb9a2, 0x8331ae31}, - {0xebb9a3, 0x8331ae32}, - {0xebb9a4, 0x8331ae33}, - {0xebb9a5, 0x8331ae34}, - {0xebb9a6, 0x8331ae35}, - {0xebb9a7, 0x8331ae36}, - {0xebb9a8, 0x8331ae37}, - {0xebb9a9, 0x8331ae38}, - {0xebb9aa, 0x8331ae39}, - {0xebb9ab, 0x8331af30}, - {0xebb9ac, 0x8331af31}, - {0xebb9ad, 0x8331af32}, - {0xebb9ae, 0x8331af33}, - {0xebb9af, 0x8331af34}, - {0xebb9b0, 0x8331af35}, - {0xebb9b1, 0x8331af36}, - {0xebb9b2, 0x8331af37}, - {0xebb9b3, 0x8331af38}, - {0xebb9b4, 0x8331af39}, - {0xebb9b5, 0x8331b030}, - {0xebb9b6, 0x8331b031}, - {0xebb9b7, 0x8331b032}, - {0xebb9b8, 0x8331b033}, - {0xebb9b9, 0x8331b034}, - {0xebb9ba, 0x8331b035}, - {0xebb9bb, 0x8331b036}, - {0xebb9bc, 0x8331b037}, - {0xebb9bd, 0x8331b038}, - {0xebb9be, 0x8331b039}, - {0xebb9bf, 0x8331b130}, - {0xebba80, 0x8331b131}, - {0xebba81, 0x8331b132}, - {0xebba82, 0x8331b133}, - {0xebba83, 0x8331b134}, - {0xebba84, 0x8331b135}, - {0xebba85, 0x8331b136}, - {0xebba86, 0x8331b137}, - {0xebba87, 0x8331b138}, - {0xebba88, 0x8331b139}, - {0xebba89, 0x8331b230}, - {0xebba8a, 0x8331b231}, - {0xebba8b, 0x8331b232}, - {0xebba8c, 0x8331b233}, - {0xebba8d, 0x8331b234}, - {0xebba8e, 0x8331b235}, - {0xebba8f, 0x8331b236}, - {0xebba90, 0x8331b237}, - {0xebba91, 0x8331b238}, - {0xebba92, 0x8331b239}, - {0xebba93, 0x8331b330}, - {0xebba94, 0x8331b331}, - {0xebba95, 0x8331b332}, - {0xebba96, 0x8331b333}, - {0xebba97, 0x8331b334}, - {0xebba98, 0x8331b335}, - {0xebba99, 0x8331b336}, - {0xebba9a, 0x8331b337}, - {0xebba9b, 0x8331b338}, - {0xebba9c, 0x8331b339}, - {0xebba9d, 0x8331b430}, - {0xebba9e, 0x8331b431}, - {0xebba9f, 0x8331b432}, - {0xebbaa0, 0x8331b433}, - {0xebbaa1, 0x8331b434}, - {0xebbaa2, 0x8331b435}, - {0xebbaa3, 0x8331b436}, - {0xebbaa4, 0x8331b437}, - {0xebbaa5, 0x8331b438}, - {0xebbaa6, 0x8331b439}, - {0xebbaa7, 0x8331b530}, - {0xebbaa8, 0x8331b531}, - {0xebbaa9, 0x8331b532}, - {0xebbaaa, 0x8331b533}, - {0xebbaab, 0x8331b534}, - {0xebbaac, 0x8331b535}, - {0xebbaad, 0x8331b536}, - {0xebbaae, 0x8331b537}, - {0xebbaaf, 0x8331b538}, - {0xebbab0, 0x8331b539}, - {0xebbab1, 0x8331b630}, - {0xebbab2, 0x8331b631}, - {0xebbab3, 0x8331b632}, - {0xebbab4, 0x8331b633}, - {0xebbab5, 0x8331b634}, - {0xebbab6, 0x8331b635}, - {0xebbab7, 0x8331b636}, - {0xebbab8, 0x8331b637}, - {0xebbab9, 0x8331b638}, - {0xebbaba, 0x8331b639}, - {0xebbabb, 0x8331b730}, - {0xebbabc, 0x8331b731}, - {0xebbabd, 0x8331b732}, - {0xebbabe, 0x8331b733}, - {0xebbabf, 0x8331b734}, - {0xebbb80, 0x8331b735}, - {0xebbb81, 0x8331b736}, - {0xebbb82, 0x8331b737}, - {0xebbb83, 0x8331b738}, - {0xebbb84, 0x8331b739}, - {0xebbb85, 0x8331b830}, - {0xebbb86, 0x8331b831}, - {0xebbb87, 0x8331b832}, - {0xebbb88, 0x8331b833}, - {0xebbb89, 0x8331b834}, - {0xebbb8a, 0x8331b835}, - {0xebbb8b, 0x8331b836}, - {0xebbb8c, 0x8331b837}, - {0xebbb8d, 0x8331b838}, - {0xebbb8e, 0x8331b839}, - {0xebbb8f, 0x8331b930}, - {0xebbb90, 0x8331b931}, - {0xebbb91, 0x8331b932}, - {0xebbb92, 0x8331b933}, - {0xebbb93, 0x8331b934}, - {0xebbb94, 0x8331b935}, - {0xebbb95, 0x8331b936}, - {0xebbb96, 0x8331b937}, - {0xebbb97, 0x8331b938}, - {0xebbb98, 0x8331b939}, - {0xebbb99, 0x8331ba30}, - {0xebbb9a, 0x8331ba31}, - {0xebbb9b, 0x8331ba32}, - {0xebbb9c, 0x8331ba33}, - {0xebbb9d, 0x8331ba34}, - {0xebbb9e, 0x8331ba35}, - {0xebbb9f, 0x8331ba36}, - {0xebbba0, 0x8331ba37}, - {0xebbba1, 0x8331ba38}, - {0xebbba2, 0x8331ba39}, - {0xebbba3, 0x8331bb30}, - {0xebbba4, 0x8331bb31}, - {0xebbba5, 0x8331bb32}, - {0xebbba6, 0x8331bb33}, - {0xebbba7, 0x8331bb34}, - {0xebbba8, 0x8331bb35}, - {0xebbba9, 0x8331bb36}, - {0xebbbaa, 0x8331bb37}, - {0xebbbab, 0x8331bb38}, - {0xebbbac, 0x8331bb39}, - {0xebbbad, 0x8331bc30}, - {0xebbbae, 0x8331bc31}, - {0xebbbaf, 0x8331bc32}, - {0xebbbb0, 0x8331bc33}, - {0xebbbb1, 0x8331bc34}, - {0xebbbb2, 0x8331bc35}, - {0xebbbb3, 0x8331bc36}, - {0xebbbb4, 0x8331bc37}, - {0xebbbb5, 0x8331bc38}, - {0xebbbb6, 0x8331bc39}, - {0xebbbb7, 0x8331bd30}, - {0xebbbb8, 0x8331bd31}, - {0xebbbb9, 0x8331bd32}, - {0xebbbba, 0x8331bd33}, - {0xebbbbb, 0x8331bd34}, - {0xebbbbc, 0x8331bd35}, - {0xebbbbd, 0x8331bd36}, - {0xebbbbe, 0x8331bd37}, - {0xebbbbf, 0x8331bd38}, - {0xebbc80, 0x8331bd39}, - {0xebbc81, 0x8331be30}, - {0xebbc82, 0x8331be31}, - {0xebbc83, 0x8331be32}, - {0xebbc84, 0x8331be33}, - {0xebbc85, 0x8331be34}, - {0xebbc86, 0x8331be35}, - {0xebbc87, 0x8331be36}, - {0xebbc88, 0x8331be37}, - {0xebbc89, 0x8331be38}, - {0xebbc8a, 0x8331be39}, - {0xebbc8b, 0x8331bf30}, - {0xebbc8c, 0x8331bf31}, - {0xebbc8d, 0x8331bf32}, - {0xebbc8e, 0x8331bf33}, - {0xebbc8f, 0x8331bf34}, - {0xebbc90, 0x8331bf35}, - {0xebbc91, 0x8331bf36}, - {0xebbc92, 0x8331bf37}, - {0xebbc93, 0x8331bf38}, - {0xebbc94, 0x8331bf39}, - {0xebbc95, 0x8331c030}, - {0xebbc96, 0x8331c031}, - {0xebbc97, 0x8331c032}, - {0xebbc98, 0x8331c033}, - {0xebbc99, 0x8331c034}, - {0xebbc9a, 0x8331c035}, - {0xebbc9b, 0x8331c036}, - {0xebbc9c, 0x8331c037}, - {0xebbc9d, 0x8331c038}, - {0xebbc9e, 0x8331c039}, - {0xebbc9f, 0x8331c130}, - {0xebbca0, 0x8331c131}, - {0xebbca1, 0x8331c132}, - {0xebbca2, 0x8331c133}, - {0xebbca3, 0x8331c134}, - {0xebbca4, 0x8331c135}, - {0xebbca5, 0x8331c136}, - {0xebbca6, 0x8331c137}, - {0xebbca7, 0x8331c138}, - {0xebbca8, 0x8331c139}, - {0xebbca9, 0x8331c230}, - {0xebbcaa, 0x8331c231}, - {0xebbcab, 0x8331c232}, - {0xebbcac, 0x8331c233}, - {0xebbcad, 0x8331c234}, - {0xebbcae, 0x8331c235}, - {0xebbcaf, 0x8331c236}, - {0xebbcb0, 0x8331c237}, - {0xebbcb1, 0x8331c238}, - {0xebbcb2, 0x8331c239}, - {0xebbcb3, 0x8331c330}, - {0xebbcb4, 0x8331c331}, - {0xebbcb5, 0x8331c332}, - {0xebbcb6, 0x8331c333}, - {0xebbcb7, 0x8331c334}, - {0xebbcb8, 0x8331c335}, - {0xebbcb9, 0x8331c336}, - {0xebbcba, 0x8331c337}, - {0xebbcbb, 0x8331c338}, - {0xebbcbc, 0x8331c339}, - {0xebbcbd, 0x8331c430}, - {0xebbcbe, 0x8331c431}, - {0xebbcbf, 0x8331c432}, - {0xebbd80, 0x8331c433}, - {0xebbd81, 0x8331c434}, - {0xebbd82, 0x8331c435}, - {0xebbd83, 0x8331c436}, - {0xebbd84, 0x8331c437}, - {0xebbd85, 0x8331c438}, - {0xebbd86, 0x8331c439}, - {0xebbd87, 0x8331c530}, - {0xebbd88, 0x8331c531}, - {0xebbd89, 0x8331c532}, - {0xebbd8a, 0x8331c533}, - {0xebbd8b, 0x8331c534}, - {0xebbd8c, 0x8331c535}, - {0xebbd8d, 0x8331c536}, - {0xebbd8e, 0x8331c537}, - {0xebbd8f, 0x8331c538}, - {0xebbd90, 0x8331c539}, - {0xebbd91, 0x8331c630}, - {0xebbd92, 0x8331c631}, - {0xebbd93, 0x8331c632}, - {0xebbd94, 0x8331c633}, - {0xebbd95, 0x8331c634}, - {0xebbd96, 0x8331c635}, - {0xebbd97, 0x8331c636}, - {0xebbd98, 0x8331c637}, - {0xebbd99, 0x8331c638}, - {0xebbd9a, 0x8331c639}, - {0xebbd9b, 0x8331c730}, - {0xebbd9c, 0x8331c731}, - {0xebbd9d, 0x8331c732}, - {0xebbd9e, 0x8331c733}, - {0xebbd9f, 0x8331c734}, - {0xebbda0, 0x8331c735}, - {0xebbda1, 0x8331c736}, - {0xebbda2, 0x8331c737}, - {0xebbda3, 0x8331c738}, - {0xebbda4, 0x8331c739}, - {0xebbda5, 0x8331c830}, - {0xebbda6, 0x8331c831}, - {0xebbda7, 0x8331c832}, - {0xebbda8, 0x8331c833}, - {0xebbda9, 0x8331c834}, - {0xebbdaa, 0x8331c835}, - {0xebbdab, 0x8331c836}, - {0xebbdac, 0x8331c837}, - {0xebbdad, 0x8331c838}, - {0xebbdae, 0x8331c839}, - {0xebbdaf, 0x8331c930}, - {0xebbdb0, 0x8331c931}, - {0xebbdb1, 0x8331c932}, - {0xebbdb2, 0x8331c933}, - {0xebbdb3, 0x8331c934}, - {0xebbdb4, 0x8331c935}, - {0xebbdb5, 0x8331c936}, - {0xebbdb6, 0x8331c937}, - {0xebbdb7, 0x8331c938}, - {0xebbdb8, 0x8331c939}, - {0xebbdb9, 0x8331ca30}, - {0xebbdba, 0x8331ca31}, - {0xebbdbb, 0x8331ca32}, - {0xebbdbc, 0x8331ca33}, - {0xebbdbd, 0x8331ca34}, - {0xebbdbe, 0x8331ca35}, - {0xebbdbf, 0x8331ca36}, - {0xebbe80, 0x8331ca37}, - {0xebbe81, 0x8331ca38}, - {0xebbe82, 0x8331ca39}, - {0xebbe83, 0x8331cb30}, - {0xebbe84, 0x8331cb31}, - {0xebbe85, 0x8331cb32}, - {0xebbe86, 0x8331cb33}, - {0xebbe87, 0x8331cb34}, - {0xebbe88, 0x8331cb35}, - {0xebbe89, 0x8331cb36}, - {0xebbe8a, 0x8331cb37}, - {0xebbe8b, 0x8331cb38}, - {0xebbe8c, 0x8331cb39}, - {0xebbe8d, 0x8331cc30}, - {0xebbe8e, 0x8331cc31}, - {0xebbe8f, 0x8331cc32}, - {0xebbe90, 0x8331cc33}, - {0xebbe91, 0x8331cc34}, - {0xebbe92, 0x8331cc35}, - {0xebbe93, 0x8331cc36}, - {0xebbe94, 0x8331cc37}, - {0xebbe95, 0x8331cc38}, - {0xebbe96, 0x8331cc39}, - {0xebbe97, 0x8331cd30}, - {0xebbe98, 0x8331cd31}, - {0xebbe99, 0x8331cd32}, - {0xebbe9a, 0x8331cd33}, - {0xebbe9b, 0x8331cd34}, - {0xebbe9c, 0x8331cd35}, - {0xebbe9d, 0x8331cd36}, - {0xebbe9e, 0x8331cd37}, - {0xebbe9f, 0x8331cd38}, - {0xebbea0, 0x8331cd39}, - {0xebbea1, 0x8331ce30}, - {0xebbea2, 0x8331ce31}, - {0xebbea3, 0x8331ce32}, - {0xebbea4, 0x8331ce33}, - {0xebbea5, 0x8331ce34}, - {0xebbea6, 0x8331ce35}, - {0xebbea7, 0x8331ce36}, - {0xebbea8, 0x8331ce37}, - {0xebbea9, 0x8331ce38}, - {0xebbeaa, 0x8331ce39}, - {0xebbeab, 0x8331cf30}, - {0xebbeac, 0x8331cf31}, - {0xebbead, 0x8331cf32}, - {0xebbeae, 0x8331cf33}, - {0xebbeaf, 0x8331cf34}, - {0xebbeb0, 0x8331cf35}, - {0xebbeb1, 0x8331cf36}, - {0xebbeb2, 0x8331cf37}, - {0xebbeb3, 0x8331cf38}, - {0xebbeb4, 0x8331cf39}, - {0xebbeb5, 0x8331d030}, - {0xebbeb6, 0x8331d031}, - {0xebbeb7, 0x8331d032}, - {0xebbeb8, 0x8331d033}, - {0xebbeb9, 0x8331d034}, - {0xebbeba, 0x8331d035}, - {0xebbebb, 0x8331d036}, - {0xebbebc, 0x8331d037}, - {0xebbebd, 0x8331d038}, - {0xebbebe, 0x8331d039}, - {0xebbebf, 0x8331d130}, - {0xebbf80, 0x8331d131}, - {0xebbf81, 0x8331d132}, - {0xebbf82, 0x8331d133}, - {0xebbf83, 0x8331d134}, - {0xebbf84, 0x8331d135}, - {0xebbf85, 0x8331d136}, - {0xebbf86, 0x8331d137}, - {0xebbf87, 0x8331d138}, - {0xebbf88, 0x8331d139}, - {0xebbf89, 0x8331d230}, - {0xebbf8a, 0x8331d231}, - {0xebbf8b, 0x8331d232}, - {0xebbf8c, 0x8331d233}, - {0xebbf8d, 0x8331d234}, - {0xebbf8e, 0x8331d235}, - {0xebbf8f, 0x8331d236}, - {0xebbf90, 0x8331d237}, - {0xebbf91, 0x8331d238}, - {0xebbf92, 0x8331d239}, - {0xebbf93, 0x8331d330}, - {0xebbf94, 0x8331d331}, - {0xebbf95, 0x8331d332}, - {0xebbf96, 0x8331d333}, - {0xebbf97, 0x8331d334}, - {0xebbf98, 0x8331d335}, - {0xebbf99, 0x8331d336}, - {0xebbf9a, 0x8331d337}, - {0xebbf9b, 0x8331d338}, - {0xebbf9c, 0x8331d339}, - {0xebbf9d, 0x8331d430}, - {0xebbf9e, 0x8331d431}, - {0xebbf9f, 0x8331d432}, - {0xebbfa0, 0x8331d433}, - {0xebbfa1, 0x8331d434}, - {0xebbfa2, 0x8331d435}, - {0xebbfa3, 0x8331d436}, - {0xebbfa4, 0x8331d437}, - {0xebbfa5, 0x8331d438}, - {0xebbfa6, 0x8331d439}, - {0xebbfa7, 0x8331d530}, - {0xebbfa8, 0x8331d531}, - {0xebbfa9, 0x8331d532}, - {0xebbfaa, 0x8331d533}, - {0xebbfab, 0x8331d534}, - {0xebbfac, 0x8331d535}, - {0xebbfad, 0x8331d536}, - {0xebbfae, 0x8331d537}, - {0xebbfaf, 0x8331d538}, - {0xebbfb0, 0x8331d539}, - {0xebbfb1, 0x8331d630}, - {0xebbfb2, 0x8331d631}, - {0xebbfb3, 0x8331d632}, - {0xebbfb4, 0x8331d633}, - {0xebbfb5, 0x8331d634}, - {0xebbfb6, 0x8331d635}, - {0xebbfb7, 0x8331d636}, - {0xebbfb8, 0x8331d637}, - {0xebbfb9, 0x8331d638}, - {0xebbfba, 0x8331d639}, - {0xebbfbb, 0x8331d730}, - {0xebbfbc, 0x8331d731}, - {0xebbfbd, 0x8331d732}, - {0xebbfbe, 0x8331d733}, - {0xebbfbf, 0x8331d734}, - {0xec8080, 0x8331d735}, - {0xec8081, 0x8331d736}, - {0xec8082, 0x8331d737}, - {0xec8083, 0x8331d738}, - {0xec8084, 0x8331d739}, - {0xec8085, 0x8331d830}, - {0xec8086, 0x8331d831}, - {0xec8087, 0x8331d832}, - {0xec8088, 0x8331d833}, - {0xec8089, 0x8331d834}, - {0xec808a, 0x8331d835}, - {0xec808b, 0x8331d836}, - {0xec808c, 0x8331d837}, - {0xec808d, 0x8331d838}, - {0xec808e, 0x8331d839}, - {0xec808f, 0x8331d930}, - {0xec8090, 0x8331d931}, - {0xec8091, 0x8331d932}, - {0xec8092, 0x8331d933}, - {0xec8093, 0x8331d934}, - {0xec8094, 0x8331d935}, - {0xec8095, 0x8331d936}, - {0xec8096, 0x8331d937}, - {0xec8097, 0x8331d938}, - {0xec8098, 0x8331d939}, - {0xec8099, 0x8331da30}, - {0xec809a, 0x8331da31}, - {0xec809b, 0x8331da32}, - {0xec809c, 0x8331da33}, - {0xec809d, 0x8331da34}, - {0xec809e, 0x8331da35}, - {0xec809f, 0x8331da36}, - {0xec80a0, 0x8331da37}, - {0xec80a1, 0x8331da38}, - {0xec80a2, 0x8331da39}, - {0xec80a3, 0x8331db30}, - {0xec80a4, 0x8331db31}, - {0xec80a5, 0x8331db32}, - {0xec80a6, 0x8331db33}, - {0xec80a7, 0x8331db34}, - {0xec80a8, 0x8331db35}, - {0xec80a9, 0x8331db36}, - {0xec80aa, 0x8331db37}, - {0xec80ab, 0x8331db38}, - {0xec80ac, 0x8331db39}, - {0xec80ad, 0x8331dc30}, - {0xec80ae, 0x8331dc31}, - {0xec80af, 0x8331dc32}, - {0xec80b0, 0x8331dc33}, - {0xec80b1, 0x8331dc34}, - {0xec80b2, 0x8331dc35}, - {0xec80b3, 0x8331dc36}, - {0xec80b4, 0x8331dc37}, - {0xec80b5, 0x8331dc38}, - {0xec80b6, 0x8331dc39}, - {0xec80b7, 0x8331dd30}, - {0xec80b8, 0x8331dd31}, - {0xec80b9, 0x8331dd32}, - {0xec80ba, 0x8331dd33}, - {0xec80bb, 0x8331dd34}, - {0xec80bc, 0x8331dd35}, - {0xec80bd, 0x8331dd36}, - {0xec80be, 0x8331dd37}, - {0xec80bf, 0x8331dd38}, - {0xec8180, 0x8331dd39}, - {0xec8181, 0x8331de30}, - {0xec8182, 0x8331de31}, - {0xec8183, 0x8331de32}, - {0xec8184, 0x8331de33}, - {0xec8185, 0x8331de34}, - {0xec8186, 0x8331de35}, - {0xec8187, 0x8331de36}, - {0xec8188, 0x8331de37}, - {0xec8189, 0x8331de38}, - {0xec818a, 0x8331de39}, - {0xec818b, 0x8331df30}, - {0xec818c, 0x8331df31}, - {0xec818d, 0x8331df32}, - {0xec818e, 0x8331df33}, - {0xec818f, 0x8331df34}, - {0xec8190, 0x8331df35}, - {0xec8191, 0x8331df36}, - {0xec8192, 0x8331df37}, - {0xec8193, 0x8331df38}, - {0xec8194, 0x8331df39}, - {0xec8195, 0x8331e030}, - {0xec8196, 0x8331e031}, - {0xec8197, 0x8331e032}, - {0xec8198, 0x8331e033}, - {0xec8199, 0x8331e034}, - {0xec819a, 0x8331e035}, - {0xec819b, 0x8331e036}, - {0xec819c, 0x8331e037}, - {0xec819d, 0x8331e038}, - {0xec819e, 0x8331e039}, - {0xec819f, 0x8331e130}, - {0xec81a0, 0x8331e131}, - {0xec81a1, 0x8331e132}, - {0xec81a2, 0x8331e133}, - {0xec81a3, 0x8331e134}, - {0xec81a4, 0x8331e135}, - {0xec81a5, 0x8331e136}, - {0xec81a6, 0x8331e137}, - {0xec81a7, 0x8331e138}, - {0xec81a8, 0x8331e139}, - {0xec81a9, 0x8331e230}, - {0xec81aa, 0x8331e231}, - {0xec81ab, 0x8331e232}, - {0xec81ac, 0x8331e233}, - {0xec81ad, 0x8331e234}, - {0xec81ae, 0x8331e235}, - {0xec81af, 0x8331e236}, - {0xec81b0, 0x8331e237}, - {0xec81b1, 0x8331e238}, - {0xec81b2, 0x8331e239}, - {0xec81b3, 0x8331e330}, - {0xec81b4, 0x8331e331}, - {0xec81b5, 0x8331e332}, - {0xec81b6, 0x8331e333}, - {0xec81b7, 0x8331e334}, - {0xec81b8, 0x8331e335}, - {0xec81b9, 0x8331e336}, - {0xec81ba, 0x8331e337}, - {0xec81bb, 0x8331e338}, - {0xec81bc, 0x8331e339}, - {0xec81bd, 0x8331e430}, - {0xec81be, 0x8331e431}, - {0xec81bf, 0x8331e432}, - {0xec8280, 0x8331e433}, - {0xec8281, 0x8331e434}, - {0xec8282, 0x8331e435}, - {0xec8283, 0x8331e436}, - {0xec8284, 0x8331e437}, - {0xec8285, 0x8331e438}, - {0xec8286, 0x8331e439}, - {0xec8287, 0x8331e530}, - {0xec8288, 0x8331e531}, - {0xec8289, 0x8331e532}, - {0xec828a, 0x8331e533}, - {0xec828b, 0x8331e534}, - {0xec828c, 0x8331e535}, - {0xec828d, 0x8331e536}, - {0xec828e, 0x8331e537}, - {0xec828f, 0x8331e538}, - {0xec8290, 0x8331e539}, - {0xec8291, 0x8331e630}, - {0xec8292, 0x8331e631}, - {0xec8293, 0x8331e632}, - {0xec8294, 0x8331e633}, - {0xec8295, 0x8331e634}, - {0xec8296, 0x8331e635}, - {0xec8297, 0x8331e636}, - {0xec8298, 0x8331e637}, - {0xec8299, 0x8331e638}, - {0xec829a, 0x8331e639}, - {0xec829b, 0x8331e730}, - {0xec829c, 0x8331e731}, - {0xec829d, 0x8331e732}, - {0xec829e, 0x8331e733}, - {0xec829f, 0x8331e734}, - {0xec82a0, 0x8331e735}, - {0xec82a1, 0x8331e736}, - {0xec82a2, 0x8331e737}, - {0xec82a3, 0x8331e738}, - {0xec82a4, 0x8331e739}, - {0xec82a5, 0x8331e830}, - {0xec82a6, 0x8331e831}, - {0xec82a7, 0x8331e832}, - {0xec82a8, 0x8331e833}, - {0xec82a9, 0x8331e834}, - {0xec82aa, 0x8331e835}, - {0xec82ab, 0x8331e836}, - {0xec82ac, 0x8331e837}, - {0xec82ad, 0x8331e838}, - {0xec82ae, 0x8331e839}, - {0xec82af, 0x8331e930}, - {0xec82b0, 0x8331e931}, - {0xec82b1, 0x8331e932}, - {0xec82b2, 0x8331e933}, - {0xec82b3, 0x8331e934}, - {0xec82b4, 0x8331e935}, - {0xec82b5, 0x8331e936}, - {0xec82b6, 0x8331e937}, - {0xec82b7, 0x8331e938}, - {0xec82b8, 0x8331e939}, - {0xec82b9, 0x8331ea30}, - {0xec82ba, 0x8331ea31}, - {0xec82bb, 0x8331ea32}, - {0xec82bc, 0x8331ea33}, - {0xec82bd, 0x8331ea34}, - {0xec82be, 0x8331ea35}, - {0xec82bf, 0x8331ea36}, - {0xec8380, 0x8331ea37}, - {0xec8381, 0x8331ea38}, - {0xec8382, 0x8331ea39}, - {0xec8383, 0x8331eb30}, - {0xec8384, 0x8331eb31}, - {0xec8385, 0x8331eb32}, - {0xec8386, 0x8331eb33}, - {0xec8387, 0x8331eb34}, - {0xec8388, 0x8331eb35}, - {0xec8389, 0x8331eb36}, - {0xec838a, 0x8331eb37}, - {0xec838b, 0x8331eb38}, - {0xec838c, 0x8331eb39}, - {0xec838d, 0x8331ec30}, - {0xec838e, 0x8331ec31}, - {0xec838f, 0x8331ec32}, - {0xec8390, 0x8331ec33}, - {0xec8391, 0x8331ec34}, - {0xec8392, 0x8331ec35}, - {0xec8393, 0x8331ec36}, - {0xec8394, 0x8331ec37}, - {0xec8395, 0x8331ec38}, - {0xec8396, 0x8331ec39}, - {0xec8397, 0x8331ed30}, - {0xec8398, 0x8331ed31}, - {0xec8399, 0x8331ed32}, - {0xec839a, 0x8331ed33}, - {0xec839b, 0x8331ed34}, - {0xec839c, 0x8331ed35}, - {0xec839d, 0x8331ed36}, - {0xec839e, 0x8331ed37}, - {0xec839f, 0x8331ed38}, - {0xec83a0, 0x8331ed39}, - {0xec83a1, 0x8331ee30}, - {0xec83a2, 0x8331ee31}, - {0xec83a3, 0x8331ee32}, - {0xec83a4, 0x8331ee33}, - {0xec83a5, 0x8331ee34}, - {0xec83a6, 0x8331ee35}, - {0xec83a7, 0x8331ee36}, - {0xec83a8, 0x8331ee37}, - {0xec83a9, 0x8331ee38}, - {0xec83aa, 0x8331ee39}, - {0xec83ab, 0x8331ef30}, - {0xec83ac, 0x8331ef31}, - {0xec83ad, 0x8331ef32}, - {0xec83ae, 0x8331ef33}, - {0xec83af, 0x8331ef34}, - {0xec83b0, 0x8331ef35}, - {0xec83b1, 0x8331ef36}, - {0xec83b2, 0x8331ef37}, - {0xec83b3, 0x8331ef38}, - {0xec83b4, 0x8331ef39}, - {0xec83b5, 0x8331f030}, - {0xec83b6, 0x8331f031}, - {0xec83b7, 0x8331f032}, - {0xec83b8, 0x8331f033}, - {0xec83b9, 0x8331f034}, - {0xec83ba, 0x8331f035}, - {0xec83bb, 0x8331f036}, - {0xec83bc, 0x8331f037}, - {0xec83bd, 0x8331f038}, - {0xec83be, 0x8331f039}, - {0xec83bf, 0x8331f130}, - {0xec8480, 0x8331f131}, - {0xec8481, 0x8331f132}, - {0xec8482, 0x8331f133}, - {0xec8483, 0x8331f134}, - {0xec8484, 0x8331f135}, - {0xec8485, 0x8331f136}, - {0xec8486, 0x8331f137}, - {0xec8487, 0x8331f138}, - {0xec8488, 0x8331f139}, - {0xec8489, 0x8331f230}, - {0xec848a, 0x8331f231}, - {0xec848b, 0x8331f232}, - {0xec848c, 0x8331f233}, - {0xec848d, 0x8331f234}, - {0xec848e, 0x8331f235}, - {0xec848f, 0x8331f236}, - {0xec8490, 0x8331f237}, - {0xec8491, 0x8331f238}, - {0xec8492, 0x8331f239}, - {0xec8493, 0x8331f330}, - {0xec8494, 0x8331f331}, - {0xec8495, 0x8331f332}, - {0xec8496, 0x8331f333}, - {0xec8497, 0x8331f334}, - {0xec8498, 0x8331f335}, - {0xec8499, 0x8331f336}, - {0xec849a, 0x8331f337}, - {0xec849b, 0x8331f338}, - {0xec849c, 0x8331f339}, - {0xec849d, 0x8331f430}, - {0xec849e, 0x8331f431}, - {0xec849f, 0x8331f432}, - {0xec84a0, 0x8331f433}, - {0xec84a1, 0x8331f434}, - {0xec84a2, 0x8331f435}, - {0xec84a3, 0x8331f436}, - {0xec84a4, 0x8331f437}, - {0xec84a5, 0x8331f438}, - {0xec84a6, 0x8331f439}, - {0xec84a7, 0x8331f530}, - {0xec84a8, 0x8331f531}, - {0xec84a9, 0x8331f532}, - {0xec84aa, 0x8331f533}, - {0xec84ab, 0x8331f534}, - {0xec84ac, 0x8331f535}, - {0xec84ad, 0x8331f536}, - {0xec84ae, 0x8331f537}, - {0xec84af, 0x8331f538}, - {0xec84b0, 0x8331f539}, - {0xec84b1, 0x8331f630}, - {0xec84b2, 0x8331f631}, - {0xec84b3, 0x8331f632}, - {0xec84b4, 0x8331f633}, - {0xec84b5, 0x8331f634}, - {0xec84b6, 0x8331f635}, - {0xec84b7, 0x8331f636}, - {0xec84b8, 0x8331f637}, - {0xec84b9, 0x8331f638}, - {0xec84ba, 0x8331f639}, - {0xec84bb, 0x8331f730}, - {0xec84bc, 0x8331f731}, - {0xec84bd, 0x8331f732}, - {0xec84be, 0x8331f733}, - {0xec84bf, 0x8331f734}, - {0xec8580, 0x8331f735}, - {0xec8581, 0x8331f736}, - {0xec8582, 0x8331f737}, - {0xec8583, 0x8331f738}, - {0xec8584, 0x8331f739}, - {0xec8585, 0x8331f830}, - {0xec8586, 0x8331f831}, - {0xec8587, 0x8331f832}, - {0xec8588, 0x8331f833}, - {0xec8589, 0x8331f834}, - {0xec858a, 0x8331f835}, - {0xec858b, 0x8331f836}, - {0xec858c, 0x8331f837}, - {0xec858d, 0x8331f838}, - {0xec858e, 0x8331f839}, - {0xec858f, 0x8331f930}, - {0xec8590, 0x8331f931}, - {0xec8591, 0x8331f932}, - {0xec8592, 0x8331f933}, - {0xec8593, 0x8331f934}, - {0xec8594, 0x8331f935}, - {0xec8595, 0x8331f936}, - {0xec8596, 0x8331f937}, - {0xec8597, 0x8331f938}, - {0xec8598, 0x8331f939}, - {0xec8599, 0x8331fa30}, - {0xec859a, 0x8331fa31}, - {0xec859b, 0x8331fa32}, - {0xec859c, 0x8331fa33}, - {0xec859d, 0x8331fa34}, - {0xec859e, 0x8331fa35}, - {0xec859f, 0x8331fa36}, - {0xec85a0, 0x8331fa37}, - {0xec85a1, 0x8331fa38}, - {0xec85a2, 0x8331fa39}, - {0xec85a3, 0x8331fb30}, - {0xec85a4, 0x8331fb31}, - {0xec85a5, 0x8331fb32}, - {0xec85a6, 0x8331fb33}, - {0xec85a7, 0x8331fb34}, - {0xec85a8, 0x8331fb35}, - {0xec85a9, 0x8331fb36}, - {0xec85aa, 0x8331fb37}, - {0xec85ab, 0x8331fb38}, - {0xec85ac, 0x8331fb39}, - {0xec85ad, 0x8331fc30}, - {0xec85ae, 0x8331fc31}, - {0xec85af, 0x8331fc32}, - {0xec85b0, 0x8331fc33}, - {0xec85b1, 0x8331fc34}, - {0xec85b2, 0x8331fc35}, - {0xec85b3, 0x8331fc36}, - {0xec85b4, 0x8331fc37}, - {0xec85b5, 0x8331fc38}, - {0xec85b6, 0x8331fc39}, - {0xec85b7, 0x8331fd30}, - {0xec85b8, 0x8331fd31}, - {0xec85b9, 0x8331fd32}, - {0xec85ba, 0x8331fd33}, - {0xec85bb, 0x8331fd34}, - {0xec85bc, 0x8331fd35}, - {0xec85bd, 0x8331fd36}, - {0xec85be, 0x8331fd37}, - {0xec85bf, 0x8331fd38}, - {0xec8680, 0x8331fd39}, - {0xec8681, 0x8331fe30}, - {0xec8682, 0x8331fe31}, - {0xec8683, 0x8331fe32}, - {0xec8684, 0x8331fe33}, - {0xec8685, 0x8331fe34}, - {0xec8686, 0x8331fe35}, - {0xec8687, 0x8331fe36}, - {0xec8688, 0x8331fe37}, - {0xec8689, 0x8331fe38}, - {0xec868a, 0x8331fe39}, - {0xec868b, 0x83328130}, - {0xec868c, 0x83328131}, - {0xec868d, 0x83328132}, - {0xec868e, 0x83328133}, - {0xec868f, 0x83328134}, - {0xec8690, 0x83328135}, - {0xec8691, 0x83328136}, - {0xec8692, 0x83328137}, - {0xec8693, 0x83328138}, - {0xec8694, 0x83328139}, - {0xec8695, 0x83328230}, - {0xec8696, 0x83328231}, - {0xec8697, 0x83328232}, - {0xec8698, 0x83328233}, - {0xec8699, 0x83328234}, - {0xec869a, 0x83328235}, - {0xec869b, 0x83328236}, - {0xec869c, 0x83328237}, - {0xec869d, 0x83328238}, - {0xec869e, 0x83328239}, - {0xec869f, 0x83328330}, - {0xec86a0, 0x83328331}, - {0xec86a1, 0x83328332}, - {0xec86a2, 0x83328333}, - {0xec86a3, 0x83328334}, - {0xec86a4, 0x83328335}, - {0xec86a5, 0x83328336}, - {0xec86a6, 0x83328337}, - {0xec86a7, 0x83328338}, - {0xec86a8, 0x83328339}, - {0xec86a9, 0x83328430}, - {0xec86aa, 0x83328431}, - {0xec86ab, 0x83328432}, - {0xec86ac, 0x83328433}, - {0xec86ad, 0x83328434}, - {0xec86ae, 0x83328435}, - {0xec86af, 0x83328436}, - {0xec86b0, 0x83328437}, - {0xec86b1, 0x83328438}, - {0xec86b2, 0x83328439}, - {0xec86b3, 0x83328530}, - {0xec86b4, 0x83328531}, - {0xec86b5, 0x83328532}, - {0xec86b6, 0x83328533}, - {0xec86b7, 0x83328534}, - {0xec86b8, 0x83328535}, - {0xec86b9, 0x83328536}, - {0xec86ba, 0x83328537}, - {0xec86bb, 0x83328538}, - {0xec86bc, 0x83328539}, - {0xec86bd, 0x83328630}, - {0xec86be, 0x83328631}, - {0xec86bf, 0x83328632}, - {0xec8780, 0x83328633}, - {0xec8781, 0x83328634}, - {0xec8782, 0x83328635}, - {0xec8783, 0x83328636}, - {0xec8784, 0x83328637}, - {0xec8785, 0x83328638}, - {0xec8786, 0x83328639}, - {0xec8787, 0x83328730}, - {0xec8788, 0x83328731}, - {0xec8789, 0x83328732}, - {0xec878a, 0x83328733}, - {0xec878b, 0x83328734}, - {0xec878c, 0x83328735}, - {0xec878d, 0x83328736}, - {0xec878e, 0x83328737}, - {0xec878f, 0x83328738}, - {0xec8790, 0x83328739}, - {0xec8791, 0x83328830}, - {0xec8792, 0x83328831}, - {0xec8793, 0x83328832}, - {0xec8794, 0x83328833}, - {0xec8795, 0x83328834}, - {0xec8796, 0x83328835}, - {0xec8797, 0x83328836}, - {0xec8798, 0x83328837}, - {0xec8799, 0x83328838}, - {0xec879a, 0x83328839}, - {0xec879b, 0x83328930}, - {0xec879c, 0x83328931}, - {0xec879d, 0x83328932}, - {0xec879e, 0x83328933}, - {0xec879f, 0x83328934}, - {0xec87a0, 0x83328935}, - {0xec87a1, 0x83328936}, - {0xec87a2, 0x83328937}, - {0xec87a3, 0x83328938}, - {0xec87a4, 0x83328939}, - {0xec87a5, 0x83328a30}, - {0xec87a6, 0x83328a31}, - {0xec87a7, 0x83328a32}, - {0xec87a8, 0x83328a33}, - {0xec87a9, 0x83328a34}, - {0xec87aa, 0x83328a35}, - {0xec87ab, 0x83328a36}, - {0xec87ac, 0x83328a37}, - {0xec87ad, 0x83328a38}, - {0xec87ae, 0x83328a39}, - {0xec87af, 0x83328b30}, - {0xec87b0, 0x83328b31}, - {0xec87b1, 0x83328b32}, - {0xec87b2, 0x83328b33}, - {0xec87b3, 0x83328b34}, - {0xec87b4, 0x83328b35}, - {0xec87b5, 0x83328b36}, - {0xec87b6, 0x83328b37}, - {0xec87b7, 0x83328b38}, - {0xec87b8, 0x83328b39}, - {0xec87b9, 0x83328c30}, - {0xec87ba, 0x83328c31}, - {0xec87bb, 0x83328c32}, - {0xec87bc, 0x83328c33}, - {0xec87bd, 0x83328c34}, - {0xec87be, 0x83328c35}, - {0xec87bf, 0x83328c36}, - {0xec8880, 0x83328c37}, - {0xec8881, 0x83328c38}, - {0xec8882, 0x83328c39}, - {0xec8883, 0x83328d30}, - {0xec8884, 0x83328d31}, - {0xec8885, 0x83328d32}, - {0xec8886, 0x83328d33}, - {0xec8887, 0x83328d34}, - {0xec8888, 0x83328d35}, - {0xec8889, 0x83328d36}, - {0xec888a, 0x83328d37}, - {0xec888b, 0x83328d38}, - {0xec888c, 0x83328d39}, - {0xec888d, 0x83328e30}, - {0xec888e, 0x83328e31}, - {0xec888f, 0x83328e32}, - {0xec8890, 0x83328e33}, - {0xec8891, 0x83328e34}, - {0xec8892, 0x83328e35}, - {0xec8893, 0x83328e36}, - {0xec8894, 0x83328e37}, - {0xec8895, 0x83328e38}, - {0xec8896, 0x83328e39}, - {0xec8897, 0x83328f30}, - {0xec8898, 0x83328f31}, - {0xec8899, 0x83328f32}, - {0xec889a, 0x83328f33}, - {0xec889b, 0x83328f34}, - {0xec889c, 0x83328f35}, - {0xec889d, 0x83328f36}, - {0xec889e, 0x83328f37}, - {0xec889f, 0x83328f38}, - {0xec88a0, 0x83328f39}, - {0xec88a1, 0x83329030}, - {0xec88a2, 0x83329031}, - {0xec88a3, 0x83329032}, - {0xec88a4, 0x83329033}, - {0xec88a5, 0x83329034}, - {0xec88a6, 0x83329035}, - {0xec88a7, 0x83329036}, - {0xec88a8, 0x83329037}, - {0xec88a9, 0x83329038}, - {0xec88aa, 0x83329039}, - {0xec88ab, 0x83329130}, - {0xec88ac, 0x83329131}, - {0xec88ad, 0x83329132}, - {0xec88ae, 0x83329133}, - {0xec88af, 0x83329134}, - {0xec88b0, 0x83329135}, - {0xec88b1, 0x83329136}, - {0xec88b2, 0x83329137}, - {0xec88b3, 0x83329138}, - {0xec88b4, 0x83329139}, - {0xec88b5, 0x83329230}, - {0xec88b6, 0x83329231}, - {0xec88b7, 0x83329232}, - {0xec88b8, 0x83329233}, - {0xec88b9, 0x83329234}, - {0xec88ba, 0x83329235}, - {0xec88bb, 0x83329236}, - {0xec88bc, 0x83329237}, - {0xec88bd, 0x83329238}, - {0xec88be, 0x83329239}, - {0xec88bf, 0x83329330}, - {0xec8980, 0x83329331}, - {0xec8981, 0x83329332}, - {0xec8982, 0x83329333}, - {0xec8983, 0x83329334}, - {0xec8984, 0x83329335}, - {0xec8985, 0x83329336}, - {0xec8986, 0x83329337}, - {0xec8987, 0x83329338}, - {0xec8988, 0x83329339}, - {0xec8989, 0x83329430}, - {0xec898a, 0x83329431}, - {0xec898b, 0x83329432}, - {0xec898c, 0x83329433}, - {0xec898d, 0x83329434}, - {0xec898e, 0x83329435}, - {0xec898f, 0x83329436}, - {0xec8990, 0x83329437}, - {0xec8991, 0x83329438}, - {0xec8992, 0x83329439}, - {0xec8993, 0x83329530}, - {0xec8994, 0x83329531}, - {0xec8995, 0x83329532}, - {0xec8996, 0x83329533}, - {0xec8997, 0x83329534}, - {0xec8998, 0x83329535}, - {0xec8999, 0x83329536}, - {0xec899a, 0x83329537}, - {0xec899b, 0x83329538}, - {0xec899c, 0x83329539}, - {0xec899d, 0x83329630}, - {0xec899e, 0x83329631}, - {0xec899f, 0x83329632}, - {0xec89a0, 0x83329633}, - {0xec89a1, 0x83329634}, - {0xec89a2, 0x83329635}, - {0xec89a3, 0x83329636}, - {0xec89a4, 0x83329637}, - {0xec89a5, 0x83329638}, - {0xec89a6, 0x83329639}, - {0xec89a7, 0x83329730}, - {0xec89a8, 0x83329731}, - {0xec89a9, 0x83329732}, - {0xec89aa, 0x83329733}, - {0xec89ab, 0x83329734}, - {0xec89ac, 0x83329735}, - {0xec89ad, 0x83329736}, - {0xec89ae, 0x83329737}, - {0xec89af, 0x83329738}, - {0xec89b0, 0x83329739}, - {0xec89b1, 0x83329830}, - {0xec89b2, 0x83329831}, - {0xec89b3, 0x83329832}, - {0xec89b4, 0x83329833}, - {0xec89b5, 0x83329834}, - {0xec89b6, 0x83329835}, - {0xec89b7, 0x83329836}, - {0xec89b8, 0x83329837}, - {0xec89b9, 0x83329838}, - {0xec89ba, 0x83329839}, - {0xec89bb, 0x83329930}, - {0xec89bc, 0x83329931}, - {0xec89bd, 0x83329932}, - {0xec89be, 0x83329933}, - {0xec89bf, 0x83329934}, - {0xec8a80, 0x83329935}, - {0xec8a81, 0x83329936}, - {0xec8a82, 0x83329937}, - {0xec8a83, 0x83329938}, - {0xec8a84, 0x83329939}, - {0xec8a85, 0x83329a30}, - {0xec8a86, 0x83329a31}, - {0xec8a87, 0x83329a32}, - {0xec8a88, 0x83329a33}, - {0xec8a89, 0x83329a34}, - {0xec8a8a, 0x83329a35}, - {0xec8a8b, 0x83329a36}, - {0xec8a8c, 0x83329a37}, - {0xec8a8d, 0x83329a38}, - {0xec8a8e, 0x83329a39}, - {0xec8a8f, 0x83329b30}, - {0xec8a90, 0x83329b31}, - {0xec8a91, 0x83329b32}, - {0xec8a92, 0x83329b33}, - {0xec8a93, 0x83329b34}, - {0xec8a94, 0x83329b35}, - {0xec8a95, 0x83329b36}, - {0xec8a96, 0x83329b37}, - {0xec8a97, 0x83329b38}, - {0xec8a98, 0x83329b39}, - {0xec8a99, 0x83329c30}, - {0xec8a9a, 0x83329c31}, - {0xec8a9b, 0x83329c32}, - {0xec8a9c, 0x83329c33}, - {0xec8a9d, 0x83329c34}, - {0xec8a9e, 0x83329c35}, - {0xec8a9f, 0x83329c36}, - {0xec8aa0, 0x83329c37}, - {0xec8aa1, 0x83329c38}, - {0xec8aa2, 0x83329c39}, - {0xec8aa3, 0x83329d30}, - {0xec8aa4, 0x83329d31}, - {0xec8aa5, 0x83329d32}, - {0xec8aa6, 0x83329d33}, - {0xec8aa7, 0x83329d34}, - {0xec8aa8, 0x83329d35}, - {0xec8aa9, 0x83329d36}, - {0xec8aaa, 0x83329d37}, - {0xec8aab, 0x83329d38}, - {0xec8aac, 0x83329d39}, - {0xec8aad, 0x83329e30}, - {0xec8aae, 0x83329e31}, - {0xec8aaf, 0x83329e32}, - {0xec8ab0, 0x83329e33}, - {0xec8ab1, 0x83329e34}, - {0xec8ab2, 0x83329e35}, - {0xec8ab3, 0x83329e36}, - {0xec8ab4, 0x83329e37}, - {0xec8ab5, 0x83329e38}, - {0xec8ab6, 0x83329e39}, - {0xec8ab7, 0x83329f30}, - {0xec8ab8, 0x83329f31}, - {0xec8ab9, 0x83329f32}, - {0xec8aba, 0x83329f33}, - {0xec8abb, 0x83329f34}, - {0xec8abc, 0x83329f35}, - {0xec8abd, 0x83329f36}, - {0xec8abe, 0x83329f37}, - {0xec8abf, 0x83329f38}, - {0xec8b80, 0x83329f39}, - {0xec8b81, 0x8332a030}, - {0xec8b82, 0x8332a031}, - {0xec8b83, 0x8332a032}, - {0xec8b84, 0x8332a033}, - {0xec8b85, 0x8332a034}, - {0xec8b86, 0x8332a035}, - {0xec8b87, 0x8332a036}, - {0xec8b88, 0x8332a037}, - {0xec8b89, 0x8332a038}, - {0xec8b8a, 0x8332a039}, - {0xec8b8b, 0x8332a130}, - {0xec8b8c, 0x8332a131}, - {0xec8b8d, 0x8332a132}, - {0xec8b8e, 0x8332a133}, - {0xec8b8f, 0x8332a134}, - {0xec8b90, 0x8332a135}, - {0xec8b91, 0x8332a136}, - {0xec8b92, 0x8332a137}, - {0xec8b93, 0x8332a138}, - {0xec8b94, 0x8332a139}, - {0xec8b95, 0x8332a230}, - {0xec8b96, 0x8332a231}, - {0xec8b97, 0x8332a232}, - {0xec8b98, 0x8332a233}, - {0xec8b99, 0x8332a234}, - {0xec8b9a, 0x8332a235}, - {0xec8b9b, 0x8332a236}, - {0xec8b9c, 0x8332a237}, - {0xec8b9d, 0x8332a238}, - {0xec8b9e, 0x8332a239}, - {0xec8b9f, 0x8332a330}, - {0xec8ba0, 0x8332a331}, - {0xec8ba1, 0x8332a332}, - {0xec8ba2, 0x8332a333}, - {0xec8ba3, 0x8332a334}, - {0xec8ba4, 0x8332a335}, - {0xec8ba5, 0x8332a336}, - {0xec8ba6, 0x8332a337}, - {0xec8ba7, 0x8332a338}, - {0xec8ba8, 0x8332a339}, - {0xec8ba9, 0x8332a430}, - {0xec8baa, 0x8332a431}, - {0xec8bab, 0x8332a432}, - {0xec8bac, 0x8332a433}, - {0xec8bad, 0x8332a434}, - {0xec8bae, 0x8332a435}, - {0xec8baf, 0x8332a436}, - {0xec8bb0, 0x8332a437}, - {0xec8bb1, 0x8332a438}, - {0xec8bb2, 0x8332a439}, - {0xec8bb3, 0x8332a530}, - {0xec8bb4, 0x8332a531}, - {0xec8bb5, 0x8332a532}, - {0xec8bb6, 0x8332a533}, - {0xec8bb7, 0x8332a534}, - {0xec8bb8, 0x8332a535}, - {0xec8bb9, 0x8332a536}, - {0xec8bba, 0x8332a537}, - {0xec8bbb, 0x8332a538}, - {0xec8bbc, 0x8332a539}, - {0xec8bbd, 0x8332a630}, - {0xec8bbe, 0x8332a631}, - {0xec8bbf, 0x8332a632}, - {0xec8c80, 0x8332a633}, - {0xec8c81, 0x8332a634}, - {0xec8c82, 0x8332a635}, - {0xec8c83, 0x8332a636}, - {0xec8c84, 0x8332a637}, - {0xec8c85, 0x8332a638}, - {0xec8c86, 0x8332a639}, - {0xec8c87, 0x8332a730}, - {0xec8c88, 0x8332a731}, - {0xec8c89, 0x8332a732}, - {0xec8c8a, 0x8332a733}, - {0xec8c8b, 0x8332a734}, - {0xec8c8c, 0x8332a735}, - {0xec8c8d, 0x8332a736}, - {0xec8c8e, 0x8332a737}, - {0xec8c8f, 0x8332a738}, - {0xec8c90, 0x8332a739}, - {0xec8c91, 0x8332a830}, - {0xec8c92, 0x8332a831}, - {0xec8c93, 0x8332a832}, - {0xec8c94, 0x8332a833}, - {0xec8c95, 0x8332a834}, - {0xec8c96, 0x8332a835}, - {0xec8c97, 0x8332a836}, - {0xec8c98, 0x8332a837}, - {0xec8c99, 0x8332a838}, - {0xec8c9a, 0x8332a839}, - {0xec8c9b, 0x8332a930}, - {0xec8c9c, 0x8332a931}, - {0xec8c9d, 0x8332a932}, - {0xec8c9e, 0x8332a933}, - {0xec8c9f, 0x8332a934}, - {0xec8ca0, 0x8332a935}, - {0xec8ca1, 0x8332a936}, - {0xec8ca2, 0x8332a937}, - {0xec8ca3, 0x8332a938}, - {0xec8ca4, 0x8332a939}, - {0xec8ca5, 0x8332aa30}, - {0xec8ca6, 0x8332aa31}, - {0xec8ca7, 0x8332aa32}, - {0xec8ca8, 0x8332aa33}, - {0xec8ca9, 0x8332aa34}, - {0xec8caa, 0x8332aa35}, - {0xec8cab, 0x8332aa36}, - {0xec8cac, 0x8332aa37}, - {0xec8cad, 0x8332aa38}, - {0xec8cae, 0x8332aa39}, - {0xec8caf, 0x8332ab30}, - {0xec8cb0, 0x8332ab31}, - {0xec8cb1, 0x8332ab32}, - {0xec8cb2, 0x8332ab33}, - {0xec8cb3, 0x8332ab34}, - {0xec8cb4, 0x8332ab35}, - {0xec8cb5, 0x8332ab36}, - {0xec8cb6, 0x8332ab37}, - {0xec8cb7, 0x8332ab38}, - {0xec8cb8, 0x8332ab39}, - {0xec8cb9, 0x8332ac30}, - {0xec8cba, 0x8332ac31}, - {0xec8cbb, 0x8332ac32}, - {0xec8cbc, 0x8332ac33}, - {0xec8cbd, 0x8332ac34}, - {0xec8cbe, 0x8332ac35}, - {0xec8cbf, 0x8332ac36}, - {0xec8d80, 0x8332ac37}, - {0xec8d81, 0x8332ac38}, - {0xec8d82, 0x8332ac39}, - {0xec8d83, 0x8332ad30}, - {0xec8d84, 0x8332ad31}, - {0xec8d85, 0x8332ad32}, - {0xec8d86, 0x8332ad33}, - {0xec8d87, 0x8332ad34}, - {0xec8d88, 0x8332ad35}, - {0xec8d89, 0x8332ad36}, - {0xec8d8a, 0x8332ad37}, - {0xec8d8b, 0x8332ad38}, - {0xec8d8c, 0x8332ad39}, - {0xec8d8d, 0x8332ae30}, - {0xec8d8e, 0x8332ae31}, - {0xec8d8f, 0x8332ae32}, - {0xec8d90, 0x8332ae33}, - {0xec8d91, 0x8332ae34}, - {0xec8d92, 0x8332ae35}, - {0xec8d93, 0x8332ae36}, - {0xec8d94, 0x8332ae37}, - {0xec8d95, 0x8332ae38}, - {0xec8d96, 0x8332ae39}, - {0xec8d97, 0x8332af30}, - {0xec8d98, 0x8332af31}, - {0xec8d99, 0x8332af32}, - {0xec8d9a, 0x8332af33}, - {0xec8d9b, 0x8332af34}, - {0xec8d9c, 0x8332af35}, - {0xec8d9d, 0x8332af36}, - {0xec8d9e, 0x8332af37}, - {0xec8d9f, 0x8332af38}, - {0xec8da0, 0x8332af39}, - {0xec8da1, 0x8332b030}, - {0xec8da2, 0x8332b031}, - {0xec8da3, 0x8332b032}, - {0xec8da4, 0x8332b033}, - {0xec8da5, 0x8332b034}, - {0xec8da6, 0x8332b035}, - {0xec8da7, 0x8332b036}, - {0xec8da8, 0x8332b037}, - {0xec8da9, 0x8332b038}, - {0xec8daa, 0x8332b039}, - {0xec8dab, 0x8332b130}, - {0xec8dac, 0x8332b131}, - {0xec8dad, 0x8332b132}, - {0xec8dae, 0x8332b133}, - {0xec8daf, 0x8332b134}, - {0xec8db0, 0x8332b135}, - {0xec8db1, 0x8332b136}, - {0xec8db2, 0x8332b137}, - {0xec8db3, 0x8332b138}, - {0xec8db4, 0x8332b139}, - {0xec8db5, 0x8332b230}, - {0xec8db6, 0x8332b231}, - {0xec8db7, 0x8332b232}, - {0xec8db8, 0x8332b233}, - {0xec8db9, 0x8332b234}, - {0xec8dba, 0x8332b235}, - {0xec8dbb, 0x8332b236}, - {0xec8dbc, 0x8332b237}, - {0xec8dbd, 0x8332b238}, - {0xec8dbe, 0x8332b239}, - {0xec8dbf, 0x8332b330}, - {0xec8e80, 0x8332b331}, - {0xec8e81, 0x8332b332}, - {0xec8e82, 0x8332b333}, - {0xec8e83, 0x8332b334}, - {0xec8e84, 0x8332b335}, - {0xec8e85, 0x8332b336}, - {0xec8e86, 0x8332b337}, - {0xec8e87, 0x8332b338}, - {0xec8e88, 0x8332b339}, - {0xec8e89, 0x8332b430}, - {0xec8e8a, 0x8332b431}, - {0xec8e8b, 0x8332b432}, - {0xec8e8c, 0x8332b433}, - {0xec8e8d, 0x8332b434}, - {0xec8e8e, 0x8332b435}, - {0xec8e8f, 0x8332b436}, - {0xec8e90, 0x8332b437}, - {0xec8e91, 0x8332b438}, - {0xec8e92, 0x8332b439}, - {0xec8e93, 0x8332b530}, - {0xec8e94, 0x8332b531}, - {0xec8e95, 0x8332b532}, - {0xec8e96, 0x8332b533}, - {0xec8e97, 0x8332b534}, - {0xec8e98, 0x8332b535}, - {0xec8e99, 0x8332b536}, - {0xec8e9a, 0x8332b537}, - {0xec8e9b, 0x8332b538}, - {0xec8e9c, 0x8332b539}, - {0xec8e9d, 0x8332b630}, - {0xec8e9e, 0x8332b631}, - {0xec8e9f, 0x8332b632}, - {0xec8ea0, 0x8332b633}, - {0xec8ea1, 0x8332b634}, - {0xec8ea2, 0x8332b635}, - {0xec8ea3, 0x8332b636}, - {0xec8ea4, 0x8332b637}, - {0xec8ea5, 0x8332b638}, - {0xec8ea6, 0x8332b639}, - {0xec8ea7, 0x8332b730}, - {0xec8ea8, 0x8332b731}, - {0xec8ea9, 0x8332b732}, - {0xec8eaa, 0x8332b733}, - {0xec8eab, 0x8332b734}, - {0xec8eac, 0x8332b735}, - {0xec8ead, 0x8332b736}, - {0xec8eae, 0x8332b737}, - {0xec8eaf, 0x8332b738}, - {0xec8eb0, 0x8332b739}, - {0xec8eb1, 0x8332b830}, - {0xec8eb2, 0x8332b831}, - {0xec8eb3, 0x8332b832}, - {0xec8eb4, 0x8332b833}, - {0xec8eb5, 0x8332b834}, - {0xec8eb6, 0x8332b835}, - {0xec8eb7, 0x8332b836}, - {0xec8eb8, 0x8332b837}, - {0xec8eb9, 0x8332b838}, - {0xec8eba, 0x8332b839}, - {0xec8ebb, 0x8332b930}, - {0xec8ebc, 0x8332b931}, - {0xec8ebd, 0x8332b932}, - {0xec8ebe, 0x8332b933}, - {0xec8ebf, 0x8332b934}, - {0xec8f80, 0x8332b935}, - {0xec8f81, 0x8332b936}, - {0xec8f82, 0x8332b937}, - {0xec8f83, 0x8332b938}, - {0xec8f84, 0x8332b939}, - {0xec8f85, 0x8332ba30}, - {0xec8f86, 0x8332ba31}, - {0xec8f87, 0x8332ba32}, - {0xec8f88, 0x8332ba33}, - {0xec8f89, 0x8332ba34}, - {0xec8f8a, 0x8332ba35}, - {0xec8f8b, 0x8332ba36}, - {0xec8f8c, 0x8332ba37}, - {0xec8f8d, 0x8332ba38}, - {0xec8f8e, 0x8332ba39}, - {0xec8f8f, 0x8332bb30}, - {0xec8f90, 0x8332bb31}, - {0xec8f91, 0x8332bb32}, - {0xec8f92, 0x8332bb33}, - {0xec8f93, 0x8332bb34}, - {0xec8f94, 0x8332bb35}, - {0xec8f95, 0x8332bb36}, - {0xec8f96, 0x8332bb37}, - {0xec8f97, 0x8332bb38}, - {0xec8f98, 0x8332bb39}, - {0xec8f99, 0x8332bc30}, - {0xec8f9a, 0x8332bc31}, - {0xec8f9b, 0x8332bc32}, - {0xec8f9c, 0x8332bc33}, - {0xec8f9d, 0x8332bc34}, - {0xec8f9e, 0x8332bc35}, - {0xec8f9f, 0x8332bc36}, - {0xec8fa0, 0x8332bc37}, - {0xec8fa1, 0x8332bc38}, - {0xec8fa2, 0x8332bc39}, - {0xec8fa3, 0x8332bd30}, - {0xec8fa4, 0x8332bd31}, - {0xec8fa5, 0x8332bd32}, - {0xec8fa6, 0x8332bd33}, - {0xec8fa7, 0x8332bd34}, - {0xec8fa8, 0x8332bd35}, - {0xec8fa9, 0x8332bd36}, - {0xec8faa, 0x8332bd37}, - {0xec8fab, 0x8332bd38}, - {0xec8fac, 0x8332bd39}, - {0xec8fad, 0x8332be30}, - {0xec8fae, 0x8332be31}, - {0xec8faf, 0x8332be32}, - {0xec8fb0, 0x8332be33}, - {0xec8fb1, 0x8332be34}, - {0xec8fb2, 0x8332be35}, - {0xec8fb3, 0x8332be36}, - {0xec8fb4, 0x8332be37}, - {0xec8fb5, 0x8332be38}, - {0xec8fb6, 0x8332be39}, - {0xec8fb7, 0x8332bf30}, - {0xec8fb8, 0x8332bf31}, - {0xec8fb9, 0x8332bf32}, - {0xec8fba, 0x8332bf33}, - {0xec8fbb, 0x8332bf34}, - {0xec8fbc, 0x8332bf35}, - {0xec8fbd, 0x8332bf36}, - {0xec8fbe, 0x8332bf37}, - {0xec8fbf, 0x8332bf38}, - {0xec9080, 0x8332bf39}, - {0xec9081, 0x8332c030}, - {0xec9082, 0x8332c031}, - {0xec9083, 0x8332c032}, - {0xec9084, 0x8332c033}, - {0xec9085, 0x8332c034}, - {0xec9086, 0x8332c035}, - {0xec9087, 0x8332c036}, - {0xec9088, 0x8332c037}, - {0xec9089, 0x8332c038}, - {0xec908a, 0x8332c039}, - {0xec908b, 0x8332c130}, - {0xec908c, 0x8332c131}, - {0xec908d, 0x8332c132}, - {0xec908e, 0x8332c133}, - {0xec908f, 0x8332c134}, - {0xec9090, 0x8332c135}, - {0xec9091, 0x8332c136}, - {0xec9092, 0x8332c137}, - {0xec9093, 0x8332c138}, - {0xec9094, 0x8332c139}, - {0xec9095, 0x8332c230}, - {0xec9096, 0x8332c231}, - {0xec9097, 0x8332c232}, - {0xec9098, 0x8332c233}, - {0xec9099, 0x8332c234}, - {0xec909a, 0x8332c235}, - {0xec909b, 0x8332c236}, - {0xec909c, 0x8332c237}, - {0xec909d, 0x8332c238}, - {0xec909e, 0x8332c239}, - {0xec909f, 0x8332c330}, - {0xec90a0, 0x8332c331}, - {0xec90a1, 0x8332c332}, - {0xec90a2, 0x8332c333}, - {0xec90a3, 0x8332c334}, - {0xec90a4, 0x8332c335}, - {0xec90a5, 0x8332c336}, - {0xec90a6, 0x8332c337}, - {0xec90a7, 0x8332c338}, - {0xec90a8, 0x8332c339}, - {0xec90a9, 0x8332c430}, - {0xec90aa, 0x8332c431}, - {0xec90ab, 0x8332c432}, - {0xec90ac, 0x8332c433}, - {0xec90ad, 0x8332c434}, - {0xec90ae, 0x8332c435}, - {0xec90af, 0x8332c436}, - {0xec90b0, 0x8332c437}, - {0xec90b1, 0x8332c438}, - {0xec90b2, 0x8332c439}, - {0xec90b3, 0x8332c530}, - {0xec90b4, 0x8332c531}, - {0xec90b5, 0x8332c532}, - {0xec90b6, 0x8332c533}, - {0xec90b7, 0x8332c534}, - {0xec90b8, 0x8332c535}, - {0xec90b9, 0x8332c536}, - {0xec90ba, 0x8332c537}, - {0xec90bb, 0x8332c538}, - {0xec90bc, 0x8332c539}, - {0xec90bd, 0x8332c630}, - {0xec90be, 0x8332c631}, - {0xec90bf, 0x8332c632}, - {0xec9180, 0x8332c633}, - {0xec9181, 0x8332c634}, - {0xec9182, 0x8332c635}, - {0xec9183, 0x8332c636}, - {0xec9184, 0x8332c637}, - {0xec9185, 0x8332c638}, - {0xec9186, 0x8332c639}, - {0xec9187, 0x8332c730}, - {0xec9188, 0x8332c731}, - {0xec9189, 0x8332c732}, - {0xec918a, 0x8332c733}, - {0xec918b, 0x8332c734}, - {0xec918c, 0x8332c735}, - {0xec918d, 0x8332c736}, - {0xec918e, 0x8332c737}, - {0xec918f, 0x8332c738}, - {0xec9190, 0x8332c739}, - {0xec9191, 0x8332c830}, - {0xec9192, 0x8332c831}, - {0xec9193, 0x8332c832}, - {0xec9194, 0x8332c833}, - {0xec9195, 0x8332c834}, - {0xec9196, 0x8332c835}, - {0xec9197, 0x8332c836}, - {0xec9198, 0x8332c837}, - {0xec9199, 0x8332c838}, - {0xec919a, 0x8332c839}, - {0xec919b, 0x8332c930}, - {0xec919c, 0x8332c931}, - {0xec919d, 0x8332c932}, - {0xec919e, 0x8332c933}, - {0xec919f, 0x8332c934}, - {0xec91a0, 0x8332c935}, - {0xec91a1, 0x8332c936}, - {0xec91a2, 0x8332c937}, - {0xec91a3, 0x8332c938}, - {0xec91a4, 0x8332c939}, - {0xec91a5, 0x8332ca30}, - {0xec91a6, 0x8332ca31}, - {0xec91a7, 0x8332ca32}, - {0xec91a8, 0x8332ca33}, - {0xec91a9, 0x8332ca34}, - {0xec91aa, 0x8332ca35}, - {0xec91ab, 0x8332ca36}, - {0xec91ac, 0x8332ca37}, - {0xec91ad, 0x8332ca38}, - {0xec91ae, 0x8332ca39}, - {0xec91af, 0x8332cb30}, - {0xec91b0, 0x8332cb31}, - {0xec91b1, 0x8332cb32}, - {0xec91b2, 0x8332cb33}, - {0xec91b3, 0x8332cb34}, - {0xec91b4, 0x8332cb35}, - {0xec91b5, 0x8332cb36}, - {0xec91b6, 0x8332cb37}, - {0xec91b7, 0x8332cb38}, - {0xec91b8, 0x8332cb39}, - {0xec91b9, 0x8332cc30}, - {0xec91ba, 0x8332cc31}, - {0xec91bb, 0x8332cc32}, - {0xec91bc, 0x8332cc33}, - {0xec91bd, 0x8332cc34}, - {0xec91be, 0x8332cc35}, - {0xec91bf, 0x8332cc36}, - {0xec9280, 0x8332cc37}, - {0xec9281, 0x8332cc38}, - {0xec9282, 0x8332cc39}, - {0xec9283, 0x8332cd30}, - {0xec9284, 0x8332cd31}, - {0xec9285, 0x8332cd32}, - {0xec9286, 0x8332cd33}, - {0xec9287, 0x8332cd34}, - {0xec9288, 0x8332cd35}, - {0xec9289, 0x8332cd36}, - {0xec928a, 0x8332cd37}, - {0xec928b, 0x8332cd38}, - {0xec928c, 0x8332cd39}, - {0xec928d, 0x8332ce30}, - {0xec928e, 0x8332ce31}, - {0xec928f, 0x8332ce32}, - {0xec9290, 0x8332ce33}, - {0xec9291, 0x8332ce34}, - {0xec9292, 0x8332ce35}, - {0xec9293, 0x8332ce36}, - {0xec9294, 0x8332ce37}, - {0xec9295, 0x8332ce38}, - {0xec9296, 0x8332ce39}, - {0xec9297, 0x8332cf30}, - {0xec9298, 0x8332cf31}, - {0xec9299, 0x8332cf32}, - {0xec929a, 0x8332cf33}, - {0xec929b, 0x8332cf34}, - {0xec929c, 0x8332cf35}, - {0xec929d, 0x8332cf36}, - {0xec929e, 0x8332cf37}, - {0xec929f, 0x8332cf38}, - {0xec92a0, 0x8332cf39}, - {0xec92a1, 0x8332d030}, - {0xec92a2, 0x8332d031}, - {0xec92a3, 0x8332d032}, - {0xec92a4, 0x8332d033}, - {0xec92a5, 0x8332d034}, - {0xec92a6, 0x8332d035}, - {0xec92a7, 0x8332d036}, - {0xec92a8, 0x8332d037}, - {0xec92a9, 0x8332d038}, - {0xec92aa, 0x8332d039}, - {0xec92ab, 0x8332d130}, - {0xec92ac, 0x8332d131}, - {0xec92ad, 0x8332d132}, - {0xec92ae, 0x8332d133}, - {0xec92af, 0x8332d134}, - {0xec92b0, 0x8332d135}, - {0xec92b1, 0x8332d136}, - {0xec92b2, 0x8332d137}, - {0xec92b3, 0x8332d138}, - {0xec92b4, 0x8332d139}, - {0xec92b5, 0x8332d230}, - {0xec92b6, 0x8332d231}, - {0xec92b7, 0x8332d232}, - {0xec92b8, 0x8332d233}, - {0xec92b9, 0x8332d234}, - {0xec92ba, 0x8332d235}, - {0xec92bb, 0x8332d236}, - {0xec92bc, 0x8332d237}, - {0xec92bd, 0x8332d238}, - {0xec92be, 0x8332d239}, - {0xec92bf, 0x8332d330}, - {0xec9380, 0x8332d331}, - {0xec9381, 0x8332d332}, - {0xec9382, 0x8332d333}, - {0xec9383, 0x8332d334}, - {0xec9384, 0x8332d335}, - {0xec9385, 0x8332d336}, - {0xec9386, 0x8332d337}, - {0xec9387, 0x8332d338}, - {0xec9388, 0x8332d339}, - {0xec9389, 0x8332d430}, - {0xec938a, 0x8332d431}, - {0xec938b, 0x8332d432}, - {0xec938c, 0x8332d433}, - {0xec938d, 0x8332d434}, - {0xec938e, 0x8332d435}, - {0xec938f, 0x8332d436}, - {0xec9390, 0x8332d437}, - {0xec9391, 0x8332d438}, - {0xec9392, 0x8332d439}, - {0xec9393, 0x8332d530}, - {0xec9394, 0x8332d531}, - {0xec9395, 0x8332d532}, - {0xec9396, 0x8332d533}, - {0xec9397, 0x8332d534}, - {0xec9398, 0x8332d535}, - {0xec9399, 0x8332d536}, - {0xec939a, 0x8332d537}, - {0xec939b, 0x8332d538}, - {0xec939c, 0x8332d539}, - {0xec939d, 0x8332d630}, - {0xec939e, 0x8332d631}, - {0xec939f, 0x8332d632}, - {0xec93a0, 0x8332d633}, - {0xec93a1, 0x8332d634}, - {0xec93a2, 0x8332d635}, - {0xec93a3, 0x8332d636}, - {0xec93a4, 0x8332d637}, - {0xec93a5, 0x8332d638}, - {0xec93a6, 0x8332d639}, - {0xec93a7, 0x8332d730}, - {0xec93a8, 0x8332d731}, - {0xec93a9, 0x8332d732}, - {0xec93aa, 0x8332d733}, - {0xec93ab, 0x8332d734}, - {0xec93ac, 0x8332d735}, - {0xec93ad, 0x8332d736}, - {0xec93ae, 0x8332d737}, - {0xec93af, 0x8332d738}, - {0xec93b0, 0x8332d739}, - {0xec93b1, 0x8332d830}, - {0xec93b2, 0x8332d831}, - {0xec93b3, 0x8332d832}, - {0xec93b4, 0x8332d833}, - {0xec93b5, 0x8332d834}, - {0xec93b6, 0x8332d835}, - {0xec93b7, 0x8332d836}, - {0xec93b8, 0x8332d837}, - {0xec93b9, 0x8332d838}, - {0xec93ba, 0x8332d839}, - {0xec93bb, 0x8332d930}, - {0xec93bc, 0x8332d931}, - {0xec93bd, 0x8332d932}, - {0xec93be, 0x8332d933}, - {0xec93bf, 0x8332d934}, - {0xec9480, 0x8332d935}, - {0xec9481, 0x8332d936}, - {0xec9482, 0x8332d937}, - {0xec9483, 0x8332d938}, - {0xec9484, 0x8332d939}, - {0xec9485, 0x8332da30}, - {0xec9486, 0x8332da31}, - {0xec9487, 0x8332da32}, - {0xec9488, 0x8332da33}, - {0xec9489, 0x8332da34}, - {0xec948a, 0x8332da35}, - {0xec948b, 0x8332da36}, - {0xec948c, 0x8332da37}, - {0xec948d, 0x8332da38}, - {0xec948e, 0x8332da39}, - {0xec948f, 0x8332db30}, - {0xec9490, 0x8332db31}, - {0xec9491, 0x8332db32}, - {0xec9492, 0x8332db33}, - {0xec9493, 0x8332db34}, - {0xec9494, 0x8332db35}, - {0xec9495, 0x8332db36}, - {0xec9496, 0x8332db37}, - {0xec9497, 0x8332db38}, - {0xec9498, 0x8332db39}, - {0xec9499, 0x8332dc30}, - {0xec949a, 0x8332dc31}, - {0xec949b, 0x8332dc32}, - {0xec949c, 0x8332dc33}, - {0xec949d, 0x8332dc34}, - {0xec949e, 0x8332dc35}, - {0xec949f, 0x8332dc36}, - {0xec94a0, 0x8332dc37}, - {0xec94a1, 0x8332dc38}, - {0xec94a2, 0x8332dc39}, - {0xec94a3, 0x8332dd30}, - {0xec94a4, 0x8332dd31}, - {0xec94a5, 0x8332dd32}, - {0xec94a6, 0x8332dd33}, - {0xec94a7, 0x8332dd34}, - {0xec94a8, 0x8332dd35}, - {0xec94a9, 0x8332dd36}, - {0xec94aa, 0x8332dd37}, - {0xec94ab, 0x8332dd38}, - {0xec94ac, 0x8332dd39}, - {0xec94ad, 0x8332de30}, - {0xec94ae, 0x8332de31}, - {0xec94af, 0x8332de32}, - {0xec94b0, 0x8332de33}, - {0xec94b1, 0x8332de34}, - {0xec94b2, 0x8332de35}, - {0xec94b3, 0x8332de36}, - {0xec94b4, 0x8332de37}, - {0xec94b5, 0x8332de38}, - {0xec94b6, 0x8332de39}, - {0xec94b7, 0x8332df30}, - {0xec94b8, 0x8332df31}, - {0xec94b9, 0x8332df32}, - {0xec94ba, 0x8332df33}, - {0xec94bb, 0x8332df34}, - {0xec94bc, 0x8332df35}, - {0xec94bd, 0x8332df36}, - {0xec94be, 0x8332df37}, - {0xec94bf, 0x8332df38}, - {0xec9580, 0x8332df39}, - {0xec9581, 0x8332e030}, - {0xec9582, 0x8332e031}, - {0xec9583, 0x8332e032}, - {0xec9584, 0x8332e033}, - {0xec9585, 0x8332e034}, - {0xec9586, 0x8332e035}, - {0xec9587, 0x8332e036}, - {0xec9588, 0x8332e037}, - {0xec9589, 0x8332e038}, - {0xec958a, 0x8332e039}, - {0xec958b, 0x8332e130}, - {0xec958c, 0x8332e131}, - {0xec958d, 0x8332e132}, - {0xec958e, 0x8332e133}, - {0xec958f, 0x8332e134}, - {0xec9590, 0x8332e135}, - {0xec9591, 0x8332e136}, - {0xec9592, 0x8332e137}, - {0xec9593, 0x8332e138}, - {0xec9594, 0x8332e139}, - {0xec9595, 0x8332e230}, - {0xec9596, 0x8332e231}, - {0xec9597, 0x8332e232}, - {0xec9598, 0x8332e233}, - {0xec9599, 0x8332e234}, - {0xec959a, 0x8332e235}, - {0xec959b, 0x8332e236}, - {0xec959c, 0x8332e237}, - {0xec959d, 0x8332e238}, - {0xec959e, 0x8332e239}, - {0xec959f, 0x8332e330}, - {0xec95a0, 0x8332e331}, - {0xec95a1, 0x8332e332}, - {0xec95a2, 0x8332e333}, - {0xec95a3, 0x8332e334}, - {0xec95a4, 0x8332e335}, - {0xec95a5, 0x8332e336}, - {0xec95a6, 0x8332e337}, - {0xec95a7, 0x8332e338}, - {0xec95a8, 0x8332e339}, - {0xec95a9, 0x8332e430}, - {0xec95aa, 0x8332e431}, - {0xec95ab, 0x8332e432}, - {0xec95ac, 0x8332e433}, - {0xec95ad, 0x8332e434}, - {0xec95ae, 0x8332e435}, - {0xec95af, 0x8332e436}, - {0xec95b0, 0x8332e437}, - {0xec95b1, 0x8332e438}, - {0xec95b2, 0x8332e439}, - {0xec95b3, 0x8332e530}, - {0xec95b4, 0x8332e531}, - {0xec95b5, 0x8332e532}, - {0xec95b6, 0x8332e533}, - {0xec95b7, 0x8332e534}, - {0xec95b8, 0x8332e535}, - {0xec95b9, 0x8332e536}, - {0xec95ba, 0x8332e537}, - {0xec95bb, 0x8332e538}, - {0xec95bc, 0x8332e539}, - {0xec95bd, 0x8332e630}, - {0xec95be, 0x8332e631}, - {0xec95bf, 0x8332e632}, - {0xec9680, 0x8332e633}, - {0xec9681, 0x8332e634}, - {0xec9682, 0x8332e635}, - {0xec9683, 0x8332e636}, - {0xec9684, 0x8332e637}, - {0xec9685, 0x8332e638}, - {0xec9686, 0x8332e639}, - {0xec9687, 0x8332e730}, - {0xec9688, 0x8332e731}, - {0xec9689, 0x8332e732}, - {0xec968a, 0x8332e733}, - {0xec968b, 0x8332e734}, - {0xec968c, 0x8332e735}, - {0xec968d, 0x8332e736}, - {0xec968e, 0x8332e737}, - {0xec968f, 0x8332e738}, - {0xec9690, 0x8332e739}, - {0xec9691, 0x8332e830}, - {0xec9692, 0x8332e831}, - {0xec9693, 0x8332e832}, - {0xec9694, 0x8332e833}, - {0xec9695, 0x8332e834}, - {0xec9696, 0x8332e835}, - {0xec9697, 0x8332e836}, - {0xec9698, 0x8332e837}, - {0xec9699, 0x8332e838}, - {0xec969a, 0x8332e839}, - {0xec969b, 0x8332e930}, - {0xec969c, 0x8332e931}, - {0xec969d, 0x8332e932}, - {0xec969e, 0x8332e933}, - {0xec969f, 0x8332e934}, - {0xec96a0, 0x8332e935}, - {0xec96a1, 0x8332e936}, - {0xec96a2, 0x8332e937}, - {0xec96a3, 0x8332e938}, - {0xec96a4, 0x8332e939}, - {0xec96a5, 0x8332ea30}, - {0xec96a6, 0x8332ea31}, - {0xec96a7, 0x8332ea32}, - {0xec96a8, 0x8332ea33}, - {0xec96a9, 0x8332ea34}, - {0xec96aa, 0x8332ea35}, - {0xec96ab, 0x8332ea36}, - {0xec96ac, 0x8332ea37}, - {0xec96ad, 0x8332ea38}, - {0xec96ae, 0x8332ea39}, - {0xec96af, 0x8332eb30}, - {0xec96b0, 0x8332eb31}, - {0xec96b1, 0x8332eb32}, - {0xec96b2, 0x8332eb33}, - {0xec96b3, 0x8332eb34}, - {0xec96b4, 0x8332eb35}, - {0xec96b5, 0x8332eb36}, - {0xec96b6, 0x8332eb37}, - {0xec96b7, 0x8332eb38}, - {0xec96b8, 0x8332eb39}, - {0xec96b9, 0x8332ec30}, - {0xec96ba, 0x8332ec31}, - {0xec96bb, 0x8332ec32}, - {0xec96bc, 0x8332ec33}, - {0xec96bd, 0x8332ec34}, - {0xec96be, 0x8332ec35}, - {0xec96bf, 0x8332ec36}, - {0xec9780, 0x8332ec37}, - {0xec9781, 0x8332ec38}, - {0xec9782, 0x8332ec39}, - {0xec9783, 0x8332ed30}, - {0xec9784, 0x8332ed31}, - {0xec9785, 0x8332ed32}, - {0xec9786, 0x8332ed33}, - {0xec9787, 0x8332ed34}, - {0xec9788, 0x8332ed35}, - {0xec9789, 0x8332ed36}, - {0xec978a, 0x8332ed37}, - {0xec978b, 0x8332ed38}, - {0xec978c, 0x8332ed39}, - {0xec978d, 0x8332ee30}, - {0xec978e, 0x8332ee31}, - {0xec978f, 0x8332ee32}, - {0xec9790, 0x8332ee33}, - {0xec9791, 0x8332ee34}, - {0xec9792, 0x8332ee35}, - {0xec9793, 0x8332ee36}, - {0xec9794, 0x8332ee37}, - {0xec9795, 0x8332ee38}, - {0xec9796, 0x8332ee39}, - {0xec9797, 0x8332ef30}, - {0xec9798, 0x8332ef31}, - {0xec9799, 0x8332ef32}, - {0xec979a, 0x8332ef33}, - {0xec979b, 0x8332ef34}, - {0xec979c, 0x8332ef35}, - {0xec979d, 0x8332ef36}, - {0xec979e, 0x8332ef37}, - {0xec979f, 0x8332ef38}, - {0xec97a0, 0x8332ef39}, - {0xec97a1, 0x8332f030}, - {0xec97a2, 0x8332f031}, - {0xec97a3, 0x8332f032}, - {0xec97a4, 0x8332f033}, - {0xec97a5, 0x8332f034}, - {0xec97a6, 0x8332f035}, - {0xec97a7, 0x8332f036}, - {0xec97a8, 0x8332f037}, - {0xec97a9, 0x8332f038}, - {0xec97aa, 0x8332f039}, - {0xec97ab, 0x8332f130}, - {0xec97ac, 0x8332f131}, - {0xec97ad, 0x8332f132}, - {0xec97ae, 0x8332f133}, - {0xec97af, 0x8332f134}, - {0xec97b0, 0x8332f135}, - {0xec97b1, 0x8332f136}, - {0xec97b2, 0x8332f137}, - {0xec97b3, 0x8332f138}, - {0xec97b4, 0x8332f139}, - {0xec97b5, 0x8332f230}, - {0xec97b6, 0x8332f231}, - {0xec97b7, 0x8332f232}, - {0xec97b8, 0x8332f233}, - {0xec97b9, 0x8332f234}, - {0xec97ba, 0x8332f235}, - {0xec97bb, 0x8332f236}, - {0xec97bc, 0x8332f237}, - {0xec97bd, 0x8332f238}, - {0xec97be, 0x8332f239}, - {0xec97bf, 0x8332f330}, - {0xec9880, 0x8332f331}, - {0xec9881, 0x8332f332}, - {0xec9882, 0x8332f333}, - {0xec9883, 0x8332f334}, - {0xec9884, 0x8332f335}, - {0xec9885, 0x8332f336}, - {0xec9886, 0x8332f337}, - {0xec9887, 0x8332f338}, - {0xec9888, 0x8332f339}, - {0xec9889, 0x8332f430}, - {0xec988a, 0x8332f431}, - {0xec988b, 0x8332f432}, - {0xec988c, 0x8332f433}, - {0xec988d, 0x8332f434}, - {0xec988e, 0x8332f435}, - {0xec988f, 0x8332f436}, - {0xec9890, 0x8332f437}, - {0xec9891, 0x8332f438}, - {0xec9892, 0x8332f439}, - {0xec9893, 0x8332f530}, - {0xec9894, 0x8332f531}, - {0xec9895, 0x8332f532}, - {0xec9896, 0x8332f533}, - {0xec9897, 0x8332f534}, - {0xec9898, 0x8332f535}, - {0xec9899, 0x8332f536}, - {0xec989a, 0x8332f537}, - {0xec989b, 0x8332f538}, - {0xec989c, 0x8332f539}, - {0xec989d, 0x8332f630}, - {0xec989e, 0x8332f631}, - {0xec989f, 0x8332f632}, - {0xec98a0, 0x8332f633}, - {0xec98a1, 0x8332f634}, - {0xec98a2, 0x8332f635}, - {0xec98a3, 0x8332f636}, - {0xec98a4, 0x8332f637}, - {0xec98a5, 0x8332f638}, - {0xec98a6, 0x8332f639}, - {0xec98a7, 0x8332f730}, - {0xec98a8, 0x8332f731}, - {0xec98a9, 0x8332f732}, - {0xec98aa, 0x8332f733}, - {0xec98ab, 0x8332f734}, - {0xec98ac, 0x8332f735}, - {0xec98ad, 0x8332f736}, - {0xec98ae, 0x8332f737}, - {0xec98af, 0x8332f738}, - {0xec98b0, 0x8332f739}, - {0xec98b1, 0x8332f830}, - {0xec98b2, 0x8332f831}, - {0xec98b3, 0x8332f832}, - {0xec98b4, 0x8332f833}, - {0xec98b5, 0x8332f834}, - {0xec98b6, 0x8332f835}, - {0xec98b7, 0x8332f836}, - {0xec98b8, 0x8332f837}, - {0xec98b9, 0x8332f838}, - {0xec98ba, 0x8332f839}, - {0xec98bb, 0x8332f930}, - {0xec98bc, 0x8332f931}, - {0xec98bd, 0x8332f932}, - {0xec98be, 0x8332f933}, - {0xec98bf, 0x8332f934}, - {0xec9980, 0x8332f935}, - {0xec9981, 0x8332f936}, - {0xec9982, 0x8332f937}, - {0xec9983, 0x8332f938}, - {0xec9984, 0x8332f939}, - {0xec9985, 0x8332fa30}, - {0xec9986, 0x8332fa31}, - {0xec9987, 0x8332fa32}, - {0xec9988, 0x8332fa33}, - {0xec9989, 0x8332fa34}, - {0xec998a, 0x8332fa35}, - {0xec998b, 0x8332fa36}, - {0xec998c, 0x8332fa37}, - {0xec998d, 0x8332fa38}, - {0xec998e, 0x8332fa39}, - {0xec998f, 0x8332fb30}, - {0xec9990, 0x8332fb31}, - {0xec9991, 0x8332fb32}, - {0xec9992, 0x8332fb33}, - {0xec9993, 0x8332fb34}, - {0xec9994, 0x8332fb35}, - {0xec9995, 0x8332fb36}, - {0xec9996, 0x8332fb37}, - {0xec9997, 0x8332fb38}, - {0xec9998, 0x8332fb39}, - {0xec9999, 0x8332fc30}, - {0xec999a, 0x8332fc31}, - {0xec999b, 0x8332fc32}, - {0xec999c, 0x8332fc33}, - {0xec999d, 0x8332fc34}, - {0xec999e, 0x8332fc35}, - {0xec999f, 0x8332fc36}, - {0xec99a0, 0x8332fc37}, - {0xec99a1, 0x8332fc38}, - {0xec99a2, 0x8332fc39}, - {0xec99a3, 0x8332fd30}, - {0xec99a4, 0x8332fd31}, - {0xec99a5, 0x8332fd32}, - {0xec99a6, 0x8332fd33}, - {0xec99a7, 0x8332fd34}, - {0xec99a8, 0x8332fd35}, - {0xec99a9, 0x8332fd36}, - {0xec99aa, 0x8332fd37}, - {0xec99ab, 0x8332fd38}, - {0xec99ac, 0x8332fd39}, - {0xec99ad, 0x8332fe30}, - {0xec99ae, 0x8332fe31}, - {0xec99af, 0x8332fe32}, - {0xec99b0, 0x8332fe33}, - {0xec99b1, 0x8332fe34}, - {0xec99b2, 0x8332fe35}, - {0xec99b3, 0x8332fe36}, - {0xec99b4, 0x8332fe37}, - {0xec99b5, 0x8332fe38}, - {0xec99b6, 0x8332fe39}, - {0xec99b7, 0x83338130}, - {0xec99b8, 0x83338131}, - {0xec99b9, 0x83338132}, - {0xec99ba, 0x83338133}, - {0xec99bb, 0x83338134}, - {0xec99bc, 0x83338135}, - {0xec99bd, 0x83338136}, - {0xec99be, 0x83338137}, - {0xec99bf, 0x83338138}, - {0xec9a80, 0x83338139}, - {0xec9a81, 0x83338230}, - {0xec9a82, 0x83338231}, - {0xec9a83, 0x83338232}, - {0xec9a84, 0x83338233}, - {0xec9a85, 0x83338234}, - {0xec9a86, 0x83338235}, - {0xec9a87, 0x83338236}, - {0xec9a88, 0x83338237}, - {0xec9a89, 0x83338238}, - {0xec9a8a, 0x83338239}, - {0xec9a8b, 0x83338330}, - {0xec9a8c, 0x83338331}, - {0xec9a8d, 0x83338332}, - {0xec9a8e, 0x83338333}, - {0xec9a8f, 0x83338334}, - {0xec9a90, 0x83338335}, - {0xec9a91, 0x83338336}, - {0xec9a92, 0x83338337}, - {0xec9a93, 0x83338338}, - {0xec9a94, 0x83338339}, - {0xec9a95, 0x83338430}, - {0xec9a96, 0x83338431}, - {0xec9a97, 0x83338432}, - {0xec9a98, 0x83338433}, - {0xec9a99, 0x83338434}, - {0xec9a9a, 0x83338435}, - {0xec9a9b, 0x83338436}, - {0xec9a9c, 0x83338437}, - {0xec9a9d, 0x83338438}, - {0xec9a9e, 0x83338439}, - {0xec9a9f, 0x83338530}, - {0xec9aa0, 0x83338531}, - {0xec9aa1, 0x83338532}, - {0xec9aa2, 0x83338533}, - {0xec9aa3, 0x83338534}, - {0xec9aa4, 0x83338535}, - {0xec9aa5, 0x83338536}, - {0xec9aa6, 0x83338537}, - {0xec9aa7, 0x83338538}, - {0xec9aa8, 0x83338539}, - {0xec9aa9, 0x83338630}, - {0xec9aaa, 0x83338631}, - {0xec9aab, 0x83338632}, - {0xec9aac, 0x83338633}, - {0xec9aad, 0x83338634}, - {0xec9aae, 0x83338635}, - {0xec9aaf, 0x83338636}, - {0xec9ab0, 0x83338637}, - {0xec9ab1, 0x83338638}, - {0xec9ab2, 0x83338639}, - {0xec9ab3, 0x83338730}, - {0xec9ab4, 0x83338731}, - {0xec9ab5, 0x83338732}, - {0xec9ab6, 0x83338733}, - {0xec9ab7, 0x83338734}, - {0xec9ab8, 0x83338735}, - {0xec9ab9, 0x83338736}, - {0xec9aba, 0x83338737}, - {0xec9abb, 0x83338738}, - {0xec9abc, 0x83338739}, - {0xec9abd, 0x83338830}, - {0xec9abe, 0x83338831}, - {0xec9abf, 0x83338832}, - {0xec9b80, 0x83338833}, - {0xec9b81, 0x83338834}, - {0xec9b82, 0x83338835}, - {0xec9b83, 0x83338836}, - {0xec9b84, 0x83338837}, - {0xec9b85, 0x83338838}, - {0xec9b86, 0x83338839}, - {0xec9b87, 0x83338930}, - {0xec9b88, 0x83338931}, - {0xec9b89, 0x83338932}, - {0xec9b8a, 0x83338933}, - {0xec9b8b, 0x83338934}, - {0xec9b8c, 0x83338935}, - {0xec9b8d, 0x83338936}, - {0xec9b8e, 0x83338937}, - {0xec9b8f, 0x83338938}, - {0xec9b90, 0x83338939}, - {0xec9b91, 0x83338a30}, - {0xec9b92, 0x83338a31}, - {0xec9b93, 0x83338a32}, - {0xec9b94, 0x83338a33}, - {0xec9b95, 0x83338a34}, - {0xec9b96, 0x83338a35}, - {0xec9b97, 0x83338a36}, - {0xec9b98, 0x83338a37}, - {0xec9b99, 0x83338a38}, - {0xec9b9a, 0x83338a39}, - {0xec9b9b, 0x83338b30}, - {0xec9b9c, 0x83338b31}, - {0xec9b9d, 0x83338b32}, - {0xec9b9e, 0x83338b33}, - {0xec9b9f, 0x83338b34}, - {0xec9ba0, 0x83338b35}, - {0xec9ba1, 0x83338b36}, - {0xec9ba2, 0x83338b37}, - {0xec9ba3, 0x83338b38}, - {0xec9ba4, 0x83338b39}, - {0xec9ba5, 0x83338c30}, - {0xec9ba6, 0x83338c31}, - {0xec9ba7, 0x83338c32}, - {0xec9ba8, 0x83338c33}, - {0xec9ba9, 0x83338c34}, - {0xec9baa, 0x83338c35}, - {0xec9bab, 0x83338c36}, - {0xec9bac, 0x83338c37}, - {0xec9bad, 0x83338c38}, - {0xec9bae, 0x83338c39}, - {0xec9baf, 0x83338d30}, - {0xec9bb0, 0x83338d31}, - {0xec9bb1, 0x83338d32}, - {0xec9bb2, 0x83338d33}, - {0xec9bb3, 0x83338d34}, - {0xec9bb4, 0x83338d35}, - {0xec9bb5, 0x83338d36}, - {0xec9bb6, 0x83338d37}, - {0xec9bb7, 0x83338d38}, - {0xec9bb8, 0x83338d39}, - {0xec9bb9, 0x83338e30}, - {0xec9bba, 0x83338e31}, - {0xec9bbb, 0x83338e32}, - {0xec9bbc, 0x83338e33}, - {0xec9bbd, 0x83338e34}, - {0xec9bbe, 0x83338e35}, - {0xec9bbf, 0x83338e36}, - {0xec9c80, 0x83338e37}, - {0xec9c81, 0x83338e38}, - {0xec9c82, 0x83338e39}, - {0xec9c83, 0x83338f30}, - {0xec9c84, 0x83338f31}, - {0xec9c85, 0x83338f32}, - {0xec9c86, 0x83338f33}, - {0xec9c87, 0x83338f34}, - {0xec9c88, 0x83338f35}, - {0xec9c89, 0x83338f36}, - {0xec9c8a, 0x83338f37}, - {0xec9c8b, 0x83338f38}, - {0xec9c8c, 0x83338f39}, - {0xec9c8d, 0x83339030}, - {0xec9c8e, 0x83339031}, - {0xec9c8f, 0x83339032}, - {0xec9c90, 0x83339033}, - {0xec9c91, 0x83339034}, - {0xec9c92, 0x83339035}, - {0xec9c93, 0x83339036}, - {0xec9c94, 0x83339037}, - {0xec9c95, 0x83339038}, - {0xec9c96, 0x83339039}, - {0xec9c97, 0x83339130}, - {0xec9c98, 0x83339131}, - {0xec9c99, 0x83339132}, - {0xec9c9a, 0x83339133}, - {0xec9c9b, 0x83339134}, - {0xec9c9c, 0x83339135}, - {0xec9c9d, 0x83339136}, - {0xec9c9e, 0x83339137}, - {0xec9c9f, 0x83339138}, - {0xec9ca0, 0x83339139}, - {0xec9ca1, 0x83339230}, - {0xec9ca2, 0x83339231}, - {0xec9ca3, 0x83339232}, - {0xec9ca4, 0x83339233}, - {0xec9ca5, 0x83339234}, - {0xec9ca6, 0x83339235}, - {0xec9ca7, 0x83339236}, - {0xec9ca8, 0x83339237}, - {0xec9ca9, 0x83339238}, - {0xec9caa, 0x83339239}, - {0xec9cab, 0x83339330}, - {0xec9cac, 0x83339331}, - {0xec9cad, 0x83339332}, - {0xec9cae, 0x83339333}, - {0xec9caf, 0x83339334}, - {0xec9cb0, 0x83339335}, - {0xec9cb1, 0x83339336}, - {0xec9cb2, 0x83339337}, - {0xec9cb3, 0x83339338}, - {0xec9cb4, 0x83339339}, - {0xec9cb5, 0x83339430}, - {0xec9cb6, 0x83339431}, - {0xec9cb7, 0x83339432}, - {0xec9cb8, 0x83339433}, - {0xec9cb9, 0x83339434}, - {0xec9cba, 0x83339435}, - {0xec9cbb, 0x83339436}, - {0xec9cbc, 0x83339437}, - {0xec9cbd, 0x83339438}, - {0xec9cbe, 0x83339439}, - {0xec9cbf, 0x83339530}, - {0xec9d80, 0x83339531}, - {0xec9d81, 0x83339532}, - {0xec9d82, 0x83339533}, - {0xec9d83, 0x83339534}, - {0xec9d84, 0x83339535}, - {0xec9d85, 0x83339536}, - {0xec9d86, 0x83339537}, - {0xec9d87, 0x83339538}, - {0xec9d88, 0x83339539}, - {0xec9d89, 0x83339630}, - {0xec9d8a, 0x83339631}, - {0xec9d8b, 0x83339632}, - {0xec9d8c, 0x83339633}, - {0xec9d8d, 0x83339634}, - {0xec9d8e, 0x83339635}, - {0xec9d8f, 0x83339636}, - {0xec9d90, 0x83339637}, - {0xec9d91, 0x83339638}, - {0xec9d92, 0x83339639}, - {0xec9d93, 0x83339730}, - {0xec9d94, 0x83339731}, - {0xec9d95, 0x83339732}, - {0xec9d96, 0x83339733}, - {0xec9d97, 0x83339734}, - {0xec9d98, 0x83339735}, - {0xec9d99, 0x83339736}, - {0xec9d9a, 0x83339737}, - {0xec9d9b, 0x83339738}, - {0xec9d9c, 0x83339739}, - {0xec9d9d, 0x83339830}, - {0xec9d9e, 0x83339831}, - {0xec9d9f, 0x83339832}, - {0xec9da0, 0x83339833}, - {0xec9da1, 0x83339834}, - {0xec9da2, 0x83339835}, - {0xec9da3, 0x83339836}, - {0xec9da4, 0x83339837}, - {0xec9da5, 0x83339838}, - {0xec9da6, 0x83339839}, - {0xec9da7, 0x83339930}, - {0xec9da8, 0x83339931}, - {0xec9da9, 0x83339932}, - {0xec9daa, 0x83339933}, - {0xec9dab, 0x83339934}, - {0xec9dac, 0x83339935}, - {0xec9dad, 0x83339936}, - {0xec9dae, 0x83339937}, - {0xec9daf, 0x83339938}, - {0xec9db0, 0x83339939}, - {0xec9db1, 0x83339a30}, - {0xec9db2, 0x83339a31}, - {0xec9db3, 0x83339a32}, - {0xec9db4, 0x83339a33}, - {0xec9db5, 0x83339a34}, - {0xec9db6, 0x83339a35}, - {0xec9db7, 0x83339a36}, - {0xec9db8, 0x83339a37}, - {0xec9db9, 0x83339a38}, - {0xec9dba, 0x83339a39}, - {0xec9dbb, 0x83339b30}, - {0xec9dbc, 0x83339b31}, - {0xec9dbd, 0x83339b32}, - {0xec9dbe, 0x83339b33}, - {0xec9dbf, 0x83339b34}, - {0xec9e80, 0x83339b35}, - {0xec9e81, 0x83339b36}, - {0xec9e82, 0x83339b37}, - {0xec9e83, 0x83339b38}, - {0xec9e84, 0x83339b39}, - {0xec9e85, 0x83339c30}, - {0xec9e86, 0x83339c31}, - {0xec9e87, 0x83339c32}, - {0xec9e88, 0x83339c33}, - {0xec9e89, 0x83339c34}, - {0xec9e8a, 0x83339c35}, - {0xec9e8b, 0x83339c36}, - {0xec9e8c, 0x83339c37}, - {0xec9e8d, 0x83339c38}, - {0xec9e8e, 0x83339c39}, - {0xec9e8f, 0x83339d30}, - {0xec9e90, 0x83339d31}, - {0xec9e91, 0x83339d32}, - {0xec9e92, 0x83339d33}, - {0xec9e93, 0x83339d34}, - {0xec9e94, 0x83339d35}, - {0xec9e95, 0x83339d36}, - {0xec9e96, 0x83339d37}, - {0xec9e97, 0x83339d38}, - {0xec9e98, 0x83339d39}, - {0xec9e99, 0x83339e30}, - {0xec9e9a, 0x83339e31}, - {0xec9e9b, 0x83339e32}, - {0xec9e9c, 0x83339e33}, - {0xec9e9d, 0x83339e34}, - {0xec9e9e, 0x83339e35}, - {0xec9e9f, 0x83339e36}, - {0xec9ea0, 0x83339e37}, - {0xec9ea1, 0x83339e38}, - {0xec9ea2, 0x83339e39}, - {0xec9ea3, 0x83339f30}, - {0xec9ea4, 0x83339f31}, - {0xec9ea5, 0x83339f32}, - {0xec9ea6, 0x83339f33}, - {0xec9ea7, 0x83339f34}, - {0xec9ea8, 0x83339f35}, - {0xec9ea9, 0x83339f36}, - {0xec9eaa, 0x83339f37}, - {0xec9eab, 0x83339f38}, - {0xec9eac, 0x83339f39}, - {0xec9ead, 0x8333a030}, - {0xec9eae, 0x8333a031}, - {0xec9eaf, 0x8333a032}, - {0xec9eb0, 0x8333a033}, - {0xec9eb1, 0x8333a034}, - {0xec9eb2, 0x8333a035}, - {0xec9eb3, 0x8333a036}, - {0xec9eb4, 0x8333a037}, - {0xec9eb5, 0x8333a038}, - {0xec9eb6, 0x8333a039}, - {0xec9eb7, 0x8333a130}, - {0xec9eb8, 0x8333a131}, - {0xec9eb9, 0x8333a132}, - {0xec9eba, 0x8333a133}, - {0xec9ebb, 0x8333a134}, - {0xec9ebc, 0x8333a135}, - {0xec9ebd, 0x8333a136}, - {0xec9ebe, 0x8333a137}, - {0xec9ebf, 0x8333a138}, - {0xec9f80, 0x8333a139}, - {0xec9f81, 0x8333a230}, - {0xec9f82, 0x8333a231}, - {0xec9f83, 0x8333a232}, - {0xec9f84, 0x8333a233}, - {0xec9f85, 0x8333a234}, - {0xec9f86, 0x8333a235}, - {0xec9f87, 0x8333a236}, - {0xec9f88, 0x8333a237}, - {0xec9f89, 0x8333a238}, - {0xec9f8a, 0x8333a239}, - {0xec9f8b, 0x8333a330}, - {0xec9f8c, 0x8333a331}, - {0xec9f8d, 0x8333a332}, - {0xec9f8e, 0x8333a333}, - {0xec9f8f, 0x8333a334}, - {0xec9f90, 0x8333a335}, - {0xec9f91, 0x8333a336}, - {0xec9f92, 0x8333a337}, - {0xec9f93, 0x8333a338}, - {0xec9f94, 0x8333a339}, - {0xec9f95, 0x8333a430}, - {0xec9f96, 0x8333a431}, - {0xec9f97, 0x8333a432}, - {0xec9f98, 0x8333a433}, - {0xec9f99, 0x8333a434}, - {0xec9f9a, 0x8333a435}, - {0xec9f9b, 0x8333a436}, - {0xec9f9c, 0x8333a437}, - {0xec9f9d, 0x8333a438}, - {0xec9f9e, 0x8333a439}, - {0xec9f9f, 0x8333a530}, - {0xec9fa0, 0x8333a531}, - {0xec9fa1, 0x8333a532}, - {0xec9fa2, 0x8333a533}, - {0xec9fa3, 0x8333a534}, - {0xec9fa4, 0x8333a535}, - {0xec9fa5, 0x8333a536}, - {0xec9fa6, 0x8333a537}, - {0xec9fa7, 0x8333a538}, - {0xec9fa8, 0x8333a539}, - {0xec9fa9, 0x8333a630}, - {0xec9faa, 0x8333a631}, - {0xec9fab, 0x8333a632}, - {0xec9fac, 0x8333a633}, - {0xec9fad, 0x8333a634}, - {0xec9fae, 0x8333a635}, - {0xec9faf, 0x8333a636}, - {0xec9fb0, 0x8333a637}, - {0xec9fb1, 0x8333a638}, - {0xec9fb2, 0x8333a639}, - {0xec9fb3, 0x8333a730}, - {0xec9fb4, 0x8333a731}, - {0xec9fb5, 0x8333a732}, - {0xec9fb6, 0x8333a733}, - {0xec9fb7, 0x8333a734}, - {0xec9fb8, 0x8333a735}, - {0xec9fb9, 0x8333a736}, - {0xec9fba, 0x8333a737}, - {0xec9fbb, 0x8333a738}, - {0xec9fbc, 0x8333a739}, - {0xec9fbd, 0x8333a830}, - {0xec9fbe, 0x8333a831}, - {0xec9fbf, 0x8333a832}, - {0xeca080, 0x8333a833}, - {0xeca081, 0x8333a834}, - {0xeca082, 0x8333a835}, - {0xeca083, 0x8333a836}, - {0xeca084, 0x8333a837}, - {0xeca085, 0x8333a838}, - {0xeca086, 0x8333a839}, - {0xeca087, 0x8333a930}, - {0xeca088, 0x8333a931}, - {0xeca089, 0x8333a932}, - {0xeca08a, 0x8333a933}, - {0xeca08b, 0x8333a934}, - {0xeca08c, 0x8333a935}, - {0xeca08d, 0x8333a936}, - {0xeca08e, 0x8333a937}, - {0xeca08f, 0x8333a938}, - {0xeca090, 0x8333a939}, - {0xeca091, 0x8333aa30}, - {0xeca092, 0x8333aa31}, - {0xeca093, 0x8333aa32}, - {0xeca094, 0x8333aa33}, - {0xeca095, 0x8333aa34}, - {0xeca096, 0x8333aa35}, - {0xeca097, 0x8333aa36}, - {0xeca098, 0x8333aa37}, - {0xeca099, 0x8333aa38}, - {0xeca09a, 0x8333aa39}, - {0xeca09b, 0x8333ab30}, - {0xeca09c, 0x8333ab31}, - {0xeca09d, 0x8333ab32}, - {0xeca09e, 0x8333ab33}, - {0xeca09f, 0x8333ab34}, - {0xeca0a0, 0x8333ab35}, - {0xeca0a1, 0x8333ab36}, - {0xeca0a2, 0x8333ab37}, - {0xeca0a3, 0x8333ab38}, - {0xeca0a4, 0x8333ab39}, - {0xeca0a5, 0x8333ac30}, - {0xeca0a6, 0x8333ac31}, - {0xeca0a7, 0x8333ac32}, - {0xeca0a8, 0x8333ac33}, - {0xeca0a9, 0x8333ac34}, - {0xeca0aa, 0x8333ac35}, - {0xeca0ab, 0x8333ac36}, - {0xeca0ac, 0x8333ac37}, - {0xeca0ad, 0x8333ac38}, - {0xeca0ae, 0x8333ac39}, - {0xeca0af, 0x8333ad30}, - {0xeca0b0, 0x8333ad31}, - {0xeca0b1, 0x8333ad32}, - {0xeca0b2, 0x8333ad33}, - {0xeca0b3, 0x8333ad34}, - {0xeca0b4, 0x8333ad35}, - {0xeca0b5, 0x8333ad36}, - {0xeca0b6, 0x8333ad37}, - {0xeca0b7, 0x8333ad38}, - {0xeca0b8, 0x8333ad39}, - {0xeca0b9, 0x8333ae30}, - {0xeca0ba, 0x8333ae31}, - {0xeca0bb, 0x8333ae32}, - {0xeca0bc, 0x8333ae33}, - {0xeca0bd, 0x8333ae34}, - {0xeca0be, 0x8333ae35}, - {0xeca0bf, 0x8333ae36}, - {0xeca180, 0x8333ae37}, - {0xeca181, 0x8333ae38}, - {0xeca182, 0x8333ae39}, - {0xeca183, 0x8333af30}, - {0xeca184, 0x8333af31}, - {0xeca185, 0x8333af32}, - {0xeca186, 0x8333af33}, - {0xeca187, 0x8333af34}, - {0xeca188, 0x8333af35}, - {0xeca189, 0x8333af36}, - {0xeca18a, 0x8333af37}, - {0xeca18b, 0x8333af38}, - {0xeca18c, 0x8333af39}, - {0xeca18d, 0x8333b030}, - {0xeca18e, 0x8333b031}, - {0xeca18f, 0x8333b032}, - {0xeca190, 0x8333b033}, - {0xeca191, 0x8333b034}, - {0xeca192, 0x8333b035}, - {0xeca193, 0x8333b036}, - {0xeca194, 0x8333b037}, - {0xeca195, 0x8333b038}, - {0xeca196, 0x8333b039}, - {0xeca197, 0x8333b130}, - {0xeca198, 0x8333b131}, - {0xeca199, 0x8333b132}, - {0xeca19a, 0x8333b133}, - {0xeca19b, 0x8333b134}, - {0xeca19c, 0x8333b135}, - {0xeca19d, 0x8333b136}, - {0xeca19e, 0x8333b137}, - {0xeca19f, 0x8333b138}, - {0xeca1a0, 0x8333b139}, - {0xeca1a1, 0x8333b230}, - {0xeca1a2, 0x8333b231}, - {0xeca1a3, 0x8333b232}, - {0xeca1a4, 0x8333b233}, - {0xeca1a5, 0x8333b234}, - {0xeca1a6, 0x8333b235}, - {0xeca1a7, 0x8333b236}, - {0xeca1a8, 0x8333b237}, - {0xeca1a9, 0x8333b238}, - {0xeca1aa, 0x8333b239}, - {0xeca1ab, 0x8333b330}, - {0xeca1ac, 0x8333b331}, - {0xeca1ad, 0x8333b332}, - {0xeca1ae, 0x8333b333}, - {0xeca1af, 0x8333b334}, - {0xeca1b0, 0x8333b335}, - {0xeca1b1, 0x8333b336}, - {0xeca1b2, 0x8333b337}, - {0xeca1b3, 0x8333b338}, - {0xeca1b4, 0x8333b339}, - {0xeca1b5, 0x8333b430}, - {0xeca1b6, 0x8333b431}, - {0xeca1b7, 0x8333b432}, - {0xeca1b8, 0x8333b433}, - {0xeca1b9, 0x8333b434}, - {0xeca1ba, 0x8333b435}, - {0xeca1bb, 0x8333b436}, - {0xeca1bc, 0x8333b437}, - {0xeca1bd, 0x8333b438}, - {0xeca1be, 0x8333b439}, - {0xeca1bf, 0x8333b530}, - {0xeca280, 0x8333b531}, - {0xeca281, 0x8333b532}, - {0xeca282, 0x8333b533}, - {0xeca283, 0x8333b534}, - {0xeca284, 0x8333b535}, - {0xeca285, 0x8333b536}, - {0xeca286, 0x8333b537}, - {0xeca287, 0x8333b538}, - {0xeca288, 0x8333b539}, - {0xeca289, 0x8333b630}, - {0xeca28a, 0x8333b631}, - {0xeca28b, 0x8333b632}, - {0xeca28c, 0x8333b633}, - {0xeca28d, 0x8333b634}, - {0xeca28e, 0x8333b635}, - {0xeca28f, 0x8333b636}, - {0xeca290, 0x8333b637}, - {0xeca291, 0x8333b638}, - {0xeca292, 0x8333b639}, - {0xeca293, 0x8333b730}, - {0xeca294, 0x8333b731}, - {0xeca295, 0x8333b732}, - {0xeca296, 0x8333b733}, - {0xeca297, 0x8333b734}, - {0xeca298, 0x8333b735}, - {0xeca299, 0x8333b736}, - {0xeca29a, 0x8333b737}, - {0xeca29b, 0x8333b738}, - {0xeca29c, 0x8333b739}, - {0xeca29d, 0x8333b830}, - {0xeca29e, 0x8333b831}, - {0xeca29f, 0x8333b832}, - {0xeca2a0, 0x8333b833}, - {0xeca2a1, 0x8333b834}, - {0xeca2a2, 0x8333b835}, - {0xeca2a3, 0x8333b836}, - {0xeca2a4, 0x8333b837}, - {0xeca2a5, 0x8333b838}, - {0xeca2a6, 0x8333b839}, - {0xeca2a7, 0x8333b930}, - {0xeca2a8, 0x8333b931}, - {0xeca2a9, 0x8333b932}, - {0xeca2aa, 0x8333b933}, - {0xeca2ab, 0x8333b934}, - {0xeca2ac, 0x8333b935}, - {0xeca2ad, 0x8333b936}, - {0xeca2ae, 0x8333b937}, - {0xeca2af, 0x8333b938}, - {0xeca2b0, 0x8333b939}, - {0xeca2b1, 0x8333ba30}, - {0xeca2b2, 0x8333ba31}, - {0xeca2b3, 0x8333ba32}, - {0xeca2b4, 0x8333ba33}, - {0xeca2b5, 0x8333ba34}, - {0xeca2b6, 0x8333ba35}, - {0xeca2b7, 0x8333ba36}, - {0xeca2b8, 0x8333ba37}, - {0xeca2b9, 0x8333ba38}, - {0xeca2ba, 0x8333ba39}, - {0xeca2bb, 0x8333bb30}, - {0xeca2bc, 0x8333bb31}, - {0xeca2bd, 0x8333bb32}, - {0xeca2be, 0x8333bb33}, - {0xeca2bf, 0x8333bb34}, - {0xeca380, 0x8333bb35}, - {0xeca381, 0x8333bb36}, - {0xeca382, 0x8333bb37}, - {0xeca383, 0x8333bb38}, - {0xeca384, 0x8333bb39}, - {0xeca385, 0x8333bc30}, - {0xeca386, 0x8333bc31}, - {0xeca387, 0x8333bc32}, - {0xeca388, 0x8333bc33}, - {0xeca389, 0x8333bc34}, - {0xeca38a, 0x8333bc35}, - {0xeca38b, 0x8333bc36}, - {0xeca38c, 0x8333bc37}, - {0xeca38d, 0x8333bc38}, - {0xeca38e, 0x8333bc39}, - {0xeca38f, 0x8333bd30}, - {0xeca390, 0x8333bd31}, - {0xeca391, 0x8333bd32}, - {0xeca392, 0x8333bd33}, - {0xeca393, 0x8333bd34}, - {0xeca394, 0x8333bd35}, - {0xeca395, 0x8333bd36}, - {0xeca396, 0x8333bd37}, - {0xeca397, 0x8333bd38}, - {0xeca398, 0x8333bd39}, - {0xeca399, 0x8333be30}, - {0xeca39a, 0x8333be31}, - {0xeca39b, 0x8333be32}, - {0xeca39c, 0x8333be33}, - {0xeca39d, 0x8333be34}, - {0xeca39e, 0x8333be35}, - {0xeca39f, 0x8333be36}, - {0xeca3a0, 0x8333be37}, - {0xeca3a1, 0x8333be38}, - {0xeca3a2, 0x8333be39}, - {0xeca3a3, 0x8333bf30}, - {0xeca3a4, 0x8333bf31}, - {0xeca3a5, 0x8333bf32}, - {0xeca3a6, 0x8333bf33}, - {0xeca3a7, 0x8333bf34}, - {0xeca3a8, 0x8333bf35}, - {0xeca3a9, 0x8333bf36}, - {0xeca3aa, 0x8333bf37}, - {0xeca3ab, 0x8333bf38}, - {0xeca3ac, 0x8333bf39}, - {0xeca3ad, 0x8333c030}, - {0xeca3ae, 0x8333c031}, - {0xeca3af, 0x8333c032}, - {0xeca3b0, 0x8333c033}, - {0xeca3b1, 0x8333c034}, - {0xeca3b2, 0x8333c035}, - {0xeca3b3, 0x8333c036}, - {0xeca3b4, 0x8333c037}, - {0xeca3b5, 0x8333c038}, - {0xeca3b6, 0x8333c039}, - {0xeca3b7, 0x8333c130}, - {0xeca3b8, 0x8333c131}, - {0xeca3b9, 0x8333c132}, - {0xeca3ba, 0x8333c133}, - {0xeca3bb, 0x8333c134}, - {0xeca3bc, 0x8333c135}, - {0xeca3bd, 0x8333c136}, - {0xeca3be, 0x8333c137}, - {0xeca3bf, 0x8333c138}, - {0xeca480, 0x8333c139}, - {0xeca481, 0x8333c230}, - {0xeca482, 0x8333c231}, - {0xeca483, 0x8333c232}, - {0xeca484, 0x8333c233}, - {0xeca485, 0x8333c234}, - {0xeca486, 0x8333c235}, - {0xeca487, 0x8333c236}, - {0xeca488, 0x8333c237}, - {0xeca489, 0x8333c238}, - {0xeca48a, 0x8333c239}, - {0xeca48b, 0x8333c330}, - {0xeca48c, 0x8333c331}, - {0xeca48d, 0x8333c332}, - {0xeca48e, 0x8333c333}, - {0xeca48f, 0x8333c334}, - {0xeca490, 0x8333c335}, - {0xeca491, 0x8333c336}, - {0xeca492, 0x8333c337}, - {0xeca493, 0x8333c338}, - {0xeca494, 0x8333c339}, - {0xeca495, 0x8333c430}, - {0xeca496, 0x8333c431}, - {0xeca497, 0x8333c432}, - {0xeca498, 0x8333c433}, - {0xeca499, 0x8333c434}, - {0xeca49a, 0x8333c435}, - {0xeca49b, 0x8333c436}, - {0xeca49c, 0x8333c437}, - {0xeca49d, 0x8333c438}, - {0xeca49e, 0x8333c439}, - {0xeca49f, 0x8333c530}, - {0xeca4a0, 0x8333c531}, - {0xeca4a1, 0x8333c532}, - {0xeca4a2, 0x8333c533}, - {0xeca4a3, 0x8333c534}, - {0xeca4a4, 0x8333c535}, - {0xeca4a5, 0x8333c536}, - {0xeca4a6, 0x8333c537}, - {0xeca4a7, 0x8333c538}, - {0xeca4a8, 0x8333c539}, - {0xeca4a9, 0x8333c630}, - {0xeca4aa, 0x8333c631}, - {0xeca4ab, 0x8333c632}, - {0xeca4ac, 0x8333c633}, - {0xeca4ad, 0x8333c634}, - {0xeca4ae, 0x8333c635}, - {0xeca4af, 0x8333c636}, - {0xeca4b0, 0x8333c637}, - {0xeca4b1, 0x8333c638}, - {0xeca4b2, 0x8333c639}, - {0xeca4b3, 0x8333c730}, - {0xeca4b4, 0x8333c731}, - {0xeca4b5, 0x8333c732}, - {0xeca4b6, 0x8333c733}, - {0xeca4b7, 0x8333c734}, - {0xeca4b8, 0x8333c735}, - {0xeca4b9, 0x8333c736}, - {0xeca4ba, 0x8333c737}, - {0xeca4bb, 0x8333c738}, - {0xeca4bc, 0x8333c739}, - {0xeca4bd, 0x8333c830}, - {0xeca4be, 0x8333c831}, - {0xeca4bf, 0x8333c832}, - {0xeca580, 0x8333c833}, - {0xeca581, 0x8333c834}, - {0xeca582, 0x8333c835}, - {0xeca583, 0x8333c836}, - {0xeca584, 0x8333c837}, - {0xeca585, 0x8333c838}, - {0xeca586, 0x8333c839}, - {0xeca587, 0x8333c930}, - {0xeca588, 0x8333c931}, - {0xeca589, 0x8333c932}, - {0xeca58a, 0x8333c933}, - {0xeca58b, 0x8333c934}, - {0xeca58c, 0x8333c935}, - {0xeca58d, 0x8333c936}, - {0xeca58e, 0x8333c937}, - {0xeca58f, 0x8333c938}, - {0xeca590, 0x8333c939}, - {0xeca591, 0x8333ca30}, - {0xeca592, 0x8333ca31}, - {0xeca593, 0x8333ca32}, - {0xeca594, 0x8333ca33}, - {0xeca595, 0x8333ca34}, - {0xeca596, 0x8333ca35}, - {0xeca597, 0x8333ca36}, - {0xeca598, 0x8333ca37}, - {0xeca599, 0x8333ca38}, - {0xeca59a, 0x8333ca39}, - {0xeca59b, 0x8333cb30}, - {0xeca59c, 0x8333cb31}, - {0xeca59d, 0x8333cb32}, - {0xeca59e, 0x8333cb33}, - {0xeca59f, 0x8333cb34}, - {0xeca5a0, 0x8333cb35}, - {0xeca5a1, 0x8333cb36}, - {0xeca5a2, 0x8333cb37}, - {0xeca5a3, 0x8333cb38}, - {0xeca5a4, 0x8333cb39}, - {0xeca5a5, 0x8333cc30}, - {0xeca5a6, 0x8333cc31}, - {0xeca5a7, 0x8333cc32}, - {0xeca5a8, 0x8333cc33}, - {0xeca5a9, 0x8333cc34}, - {0xeca5aa, 0x8333cc35}, - {0xeca5ab, 0x8333cc36}, - {0xeca5ac, 0x8333cc37}, - {0xeca5ad, 0x8333cc38}, - {0xeca5ae, 0x8333cc39}, - {0xeca5af, 0x8333cd30}, - {0xeca5b0, 0x8333cd31}, - {0xeca5b1, 0x8333cd32}, - {0xeca5b2, 0x8333cd33}, - {0xeca5b3, 0x8333cd34}, - {0xeca5b4, 0x8333cd35}, - {0xeca5b5, 0x8333cd36}, - {0xeca5b6, 0x8333cd37}, - {0xeca5b7, 0x8333cd38}, - {0xeca5b8, 0x8333cd39}, - {0xeca5b9, 0x8333ce30}, - {0xeca5ba, 0x8333ce31}, - {0xeca5bb, 0x8333ce32}, - {0xeca5bc, 0x8333ce33}, - {0xeca5bd, 0x8333ce34}, - {0xeca5be, 0x8333ce35}, - {0xeca5bf, 0x8333ce36}, - {0xeca680, 0x8333ce37}, - {0xeca681, 0x8333ce38}, - {0xeca682, 0x8333ce39}, - {0xeca683, 0x8333cf30}, - {0xeca684, 0x8333cf31}, - {0xeca685, 0x8333cf32}, - {0xeca686, 0x8333cf33}, - {0xeca687, 0x8333cf34}, - {0xeca688, 0x8333cf35}, - {0xeca689, 0x8333cf36}, - {0xeca68a, 0x8333cf37}, - {0xeca68b, 0x8333cf38}, - {0xeca68c, 0x8333cf39}, - {0xeca68d, 0x8333d030}, - {0xeca68e, 0x8333d031}, - {0xeca68f, 0x8333d032}, - {0xeca690, 0x8333d033}, - {0xeca691, 0x8333d034}, - {0xeca692, 0x8333d035}, - {0xeca693, 0x8333d036}, - {0xeca694, 0x8333d037}, - {0xeca695, 0x8333d038}, - {0xeca696, 0x8333d039}, - {0xeca697, 0x8333d130}, - {0xeca698, 0x8333d131}, - {0xeca699, 0x8333d132}, - {0xeca69a, 0x8333d133}, - {0xeca69b, 0x8333d134}, - {0xeca69c, 0x8333d135}, - {0xeca69d, 0x8333d136}, - {0xeca69e, 0x8333d137}, - {0xeca69f, 0x8333d138}, - {0xeca6a0, 0x8333d139}, - {0xeca6a1, 0x8333d230}, - {0xeca6a2, 0x8333d231}, - {0xeca6a3, 0x8333d232}, - {0xeca6a4, 0x8333d233}, - {0xeca6a5, 0x8333d234}, - {0xeca6a6, 0x8333d235}, - {0xeca6a7, 0x8333d236}, - {0xeca6a8, 0x8333d237}, - {0xeca6a9, 0x8333d238}, - {0xeca6aa, 0x8333d239}, - {0xeca6ab, 0x8333d330}, - {0xeca6ac, 0x8333d331}, - {0xeca6ad, 0x8333d332}, - {0xeca6ae, 0x8333d333}, - {0xeca6af, 0x8333d334}, - {0xeca6b0, 0x8333d335}, - {0xeca6b1, 0x8333d336}, - {0xeca6b2, 0x8333d337}, - {0xeca6b3, 0x8333d338}, - {0xeca6b4, 0x8333d339}, - {0xeca6b5, 0x8333d430}, - {0xeca6b6, 0x8333d431}, - {0xeca6b7, 0x8333d432}, - {0xeca6b8, 0x8333d433}, - {0xeca6b9, 0x8333d434}, - {0xeca6ba, 0x8333d435}, - {0xeca6bb, 0x8333d436}, - {0xeca6bc, 0x8333d437}, - {0xeca6bd, 0x8333d438}, - {0xeca6be, 0x8333d439}, - {0xeca6bf, 0x8333d530}, - {0xeca780, 0x8333d531}, - {0xeca781, 0x8333d532}, - {0xeca782, 0x8333d533}, - {0xeca783, 0x8333d534}, - {0xeca784, 0x8333d535}, - {0xeca785, 0x8333d536}, - {0xeca786, 0x8333d537}, - {0xeca787, 0x8333d538}, - {0xeca788, 0x8333d539}, - {0xeca789, 0x8333d630}, - {0xeca78a, 0x8333d631}, - {0xeca78b, 0x8333d632}, - {0xeca78c, 0x8333d633}, - {0xeca78d, 0x8333d634}, - {0xeca78e, 0x8333d635}, - {0xeca78f, 0x8333d636}, - {0xeca790, 0x8333d637}, - {0xeca791, 0x8333d638}, - {0xeca792, 0x8333d639}, - {0xeca793, 0x8333d730}, - {0xeca794, 0x8333d731}, - {0xeca795, 0x8333d732}, - {0xeca796, 0x8333d733}, - {0xeca797, 0x8333d734}, - {0xeca798, 0x8333d735}, - {0xeca799, 0x8333d736}, - {0xeca79a, 0x8333d737}, - {0xeca79b, 0x8333d738}, - {0xeca79c, 0x8333d739}, - {0xeca79d, 0x8333d830}, - {0xeca79e, 0x8333d831}, - {0xeca79f, 0x8333d832}, - {0xeca7a0, 0x8333d833}, - {0xeca7a1, 0x8333d834}, - {0xeca7a2, 0x8333d835}, - {0xeca7a3, 0x8333d836}, - {0xeca7a4, 0x8333d837}, - {0xeca7a5, 0x8333d838}, - {0xeca7a6, 0x8333d839}, - {0xeca7a7, 0x8333d930}, - {0xeca7a8, 0x8333d931}, - {0xeca7a9, 0x8333d932}, - {0xeca7aa, 0x8333d933}, - {0xeca7ab, 0x8333d934}, - {0xeca7ac, 0x8333d935}, - {0xeca7ad, 0x8333d936}, - {0xeca7ae, 0x8333d937}, - {0xeca7af, 0x8333d938}, - {0xeca7b0, 0x8333d939}, - {0xeca7b1, 0x8333da30}, - {0xeca7b2, 0x8333da31}, - {0xeca7b3, 0x8333da32}, - {0xeca7b4, 0x8333da33}, - {0xeca7b5, 0x8333da34}, - {0xeca7b6, 0x8333da35}, - {0xeca7b7, 0x8333da36}, - {0xeca7b8, 0x8333da37}, - {0xeca7b9, 0x8333da38}, - {0xeca7ba, 0x8333da39}, - {0xeca7bb, 0x8333db30}, - {0xeca7bc, 0x8333db31}, - {0xeca7bd, 0x8333db32}, - {0xeca7be, 0x8333db33}, - {0xeca7bf, 0x8333db34}, - {0xeca880, 0x8333db35}, - {0xeca881, 0x8333db36}, - {0xeca882, 0x8333db37}, - {0xeca883, 0x8333db38}, - {0xeca884, 0x8333db39}, - {0xeca885, 0x8333dc30}, - {0xeca886, 0x8333dc31}, - {0xeca887, 0x8333dc32}, - {0xeca888, 0x8333dc33}, - {0xeca889, 0x8333dc34}, - {0xeca88a, 0x8333dc35}, - {0xeca88b, 0x8333dc36}, - {0xeca88c, 0x8333dc37}, - {0xeca88d, 0x8333dc38}, - {0xeca88e, 0x8333dc39}, - {0xeca88f, 0x8333dd30}, - {0xeca890, 0x8333dd31}, - {0xeca891, 0x8333dd32}, - {0xeca892, 0x8333dd33}, - {0xeca893, 0x8333dd34}, - {0xeca894, 0x8333dd35}, - {0xeca895, 0x8333dd36}, - {0xeca896, 0x8333dd37}, - {0xeca897, 0x8333dd38}, - {0xeca898, 0x8333dd39}, - {0xeca899, 0x8333de30}, - {0xeca89a, 0x8333de31}, - {0xeca89b, 0x8333de32}, - {0xeca89c, 0x8333de33}, - {0xeca89d, 0x8333de34}, - {0xeca89e, 0x8333de35}, - {0xeca89f, 0x8333de36}, - {0xeca8a0, 0x8333de37}, - {0xeca8a1, 0x8333de38}, - {0xeca8a2, 0x8333de39}, - {0xeca8a3, 0x8333df30}, - {0xeca8a4, 0x8333df31}, - {0xeca8a5, 0x8333df32}, - {0xeca8a6, 0x8333df33}, - {0xeca8a7, 0x8333df34}, - {0xeca8a8, 0x8333df35}, - {0xeca8a9, 0x8333df36}, - {0xeca8aa, 0x8333df37}, - {0xeca8ab, 0x8333df38}, - {0xeca8ac, 0x8333df39}, - {0xeca8ad, 0x8333e030}, - {0xeca8ae, 0x8333e031}, - {0xeca8af, 0x8333e032}, - {0xeca8b0, 0x8333e033}, - {0xeca8b1, 0x8333e034}, - {0xeca8b2, 0x8333e035}, - {0xeca8b3, 0x8333e036}, - {0xeca8b4, 0x8333e037}, - {0xeca8b5, 0x8333e038}, - {0xeca8b6, 0x8333e039}, - {0xeca8b7, 0x8333e130}, - {0xeca8b8, 0x8333e131}, - {0xeca8b9, 0x8333e132}, - {0xeca8ba, 0x8333e133}, - {0xeca8bb, 0x8333e134}, - {0xeca8bc, 0x8333e135}, - {0xeca8bd, 0x8333e136}, - {0xeca8be, 0x8333e137}, - {0xeca8bf, 0x8333e138}, - {0xeca980, 0x8333e139}, - {0xeca981, 0x8333e230}, - {0xeca982, 0x8333e231}, - {0xeca983, 0x8333e232}, - {0xeca984, 0x8333e233}, - {0xeca985, 0x8333e234}, - {0xeca986, 0x8333e235}, - {0xeca987, 0x8333e236}, - {0xeca988, 0x8333e237}, - {0xeca989, 0x8333e238}, - {0xeca98a, 0x8333e239}, - {0xeca98b, 0x8333e330}, - {0xeca98c, 0x8333e331}, - {0xeca98d, 0x8333e332}, - {0xeca98e, 0x8333e333}, - {0xeca98f, 0x8333e334}, - {0xeca990, 0x8333e335}, - {0xeca991, 0x8333e336}, - {0xeca992, 0x8333e337}, - {0xeca993, 0x8333e338}, - {0xeca994, 0x8333e339}, - {0xeca995, 0x8333e430}, - {0xeca996, 0x8333e431}, - {0xeca997, 0x8333e432}, - {0xeca998, 0x8333e433}, - {0xeca999, 0x8333e434}, - {0xeca99a, 0x8333e435}, - {0xeca99b, 0x8333e436}, - {0xeca99c, 0x8333e437}, - {0xeca99d, 0x8333e438}, - {0xeca99e, 0x8333e439}, - {0xeca99f, 0x8333e530}, - {0xeca9a0, 0x8333e531}, - {0xeca9a1, 0x8333e532}, - {0xeca9a2, 0x8333e533}, - {0xeca9a3, 0x8333e534}, - {0xeca9a4, 0x8333e535}, - {0xeca9a5, 0x8333e536}, - {0xeca9a6, 0x8333e537}, - {0xeca9a7, 0x8333e538}, - {0xeca9a8, 0x8333e539}, - {0xeca9a9, 0x8333e630}, - {0xeca9aa, 0x8333e631}, - {0xeca9ab, 0x8333e632}, - {0xeca9ac, 0x8333e633}, - {0xeca9ad, 0x8333e634}, - {0xeca9ae, 0x8333e635}, - {0xeca9af, 0x8333e636}, - {0xeca9b0, 0x8333e637}, - {0xeca9b1, 0x8333e638}, - {0xeca9b2, 0x8333e639}, - {0xeca9b3, 0x8333e730}, - {0xeca9b4, 0x8333e731}, - {0xeca9b5, 0x8333e732}, - {0xeca9b6, 0x8333e733}, - {0xeca9b7, 0x8333e734}, - {0xeca9b8, 0x8333e735}, - {0xeca9b9, 0x8333e736}, - {0xeca9ba, 0x8333e737}, - {0xeca9bb, 0x8333e738}, - {0xeca9bc, 0x8333e739}, - {0xeca9bd, 0x8333e830}, - {0xeca9be, 0x8333e831}, - {0xeca9bf, 0x8333e832}, - {0xecaa80, 0x8333e833}, - {0xecaa81, 0x8333e834}, - {0xecaa82, 0x8333e835}, - {0xecaa83, 0x8333e836}, - {0xecaa84, 0x8333e837}, - {0xecaa85, 0x8333e838}, - {0xecaa86, 0x8333e839}, - {0xecaa87, 0x8333e930}, - {0xecaa88, 0x8333e931}, - {0xecaa89, 0x8333e932}, - {0xecaa8a, 0x8333e933}, - {0xecaa8b, 0x8333e934}, - {0xecaa8c, 0x8333e935}, - {0xecaa8d, 0x8333e936}, - {0xecaa8e, 0x8333e937}, - {0xecaa8f, 0x8333e938}, - {0xecaa90, 0x8333e939}, - {0xecaa91, 0x8333ea30}, - {0xecaa92, 0x8333ea31}, - {0xecaa93, 0x8333ea32}, - {0xecaa94, 0x8333ea33}, - {0xecaa95, 0x8333ea34}, - {0xecaa96, 0x8333ea35}, - {0xecaa97, 0x8333ea36}, - {0xecaa98, 0x8333ea37}, - {0xecaa99, 0x8333ea38}, - {0xecaa9a, 0x8333ea39}, - {0xecaa9b, 0x8333eb30}, - {0xecaa9c, 0x8333eb31}, - {0xecaa9d, 0x8333eb32}, - {0xecaa9e, 0x8333eb33}, - {0xecaa9f, 0x8333eb34}, - {0xecaaa0, 0x8333eb35}, - {0xecaaa1, 0x8333eb36}, - {0xecaaa2, 0x8333eb37}, - {0xecaaa3, 0x8333eb38}, - {0xecaaa4, 0x8333eb39}, - {0xecaaa5, 0x8333ec30}, - {0xecaaa6, 0x8333ec31}, - {0xecaaa7, 0x8333ec32}, - {0xecaaa8, 0x8333ec33}, - {0xecaaa9, 0x8333ec34}, - {0xecaaaa, 0x8333ec35}, - {0xecaaab, 0x8333ec36}, - {0xecaaac, 0x8333ec37}, - {0xecaaad, 0x8333ec38}, - {0xecaaae, 0x8333ec39}, - {0xecaaaf, 0x8333ed30}, - {0xecaab0, 0x8333ed31}, - {0xecaab1, 0x8333ed32}, - {0xecaab2, 0x8333ed33}, - {0xecaab3, 0x8333ed34}, - {0xecaab4, 0x8333ed35}, - {0xecaab5, 0x8333ed36}, - {0xecaab6, 0x8333ed37}, - {0xecaab7, 0x8333ed38}, - {0xecaab8, 0x8333ed39}, - {0xecaab9, 0x8333ee30}, - {0xecaaba, 0x8333ee31}, - {0xecaabb, 0x8333ee32}, - {0xecaabc, 0x8333ee33}, - {0xecaabd, 0x8333ee34}, - {0xecaabe, 0x8333ee35}, - {0xecaabf, 0x8333ee36}, - {0xecab80, 0x8333ee37}, - {0xecab81, 0x8333ee38}, - {0xecab82, 0x8333ee39}, - {0xecab83, 0x8333ef30}, - {0xecab84, 0x8333ef31}, - {0xecab85, 0x8333ef32}, - {0xecab86, 0x8333ef33}, - {0xecab87, 0x8333ef34}, - {0xecab88, 0x8333ef35}, - {0xecab89, 0x8333ef36}, - {0xecab8a, 0x8333ef37}, - {0xecab8b, 0x8333ef38}, - {0xecab8c, 0x8333ef39}, - {0xecab8d, 0x8333f030}, - {0xecab8e, 0x8333f031}, - {0xecab8f, 0x8333f032}, - {0xecab90, 0x8333f033}, - {0xecab91, 0x8333f034}, - {0xecab92, 0x8333f035}, - {0xecab93, 0x8333f036}, - {0xecab94, 0x8333f037}, - {0xecab95, 0x8333f038}, - {0xecab96, 0x8333f039}, - {0xecab97, 0x8333f130}, - {0xecab98, 0x8333f131}, - {0xecab99, 0x8333f132}, - {0xecab9a, 0x8333f133}, - {0xecab9b, 0x8333f134}, - {0xecab9c, 0x8333f135}, - {0xecab9d, 0x8333f136}, - {0xecab9e, 0x8333f137}, - {0xecab9f, 0x8333f138}, - {0xecaba0, 0x8333f139}, - {0xecaba1, 0x8333f230}, - {0xecaba2, 0x8333f231}, - {0xecaba3, 0x8333f232}, - {0xecaba4, 0x8333f233}, - {0xecaba5, 0x8333f234}, - {0xecaba6, 0x8333f235}, - {0xecaba7, 0x8333f236}, - {0xecaba8, 0x8333f237}, - {0xecaba9, 0x8333f238}, - {0xecabaa, 0x8333f239}, - {0xecabab, 0x8333f330}, - {0xecabac, 0x8333f331}, - {0xecabad, 0x8333f332}, - {0xecabae, 0x8333f333}, - {0xecabaf, 0x8333f334}, - {0xecabb0, 0x8333f335}, - {0xecabb1, 0x8333f336}, - {0xecabb2, 0x8333f337}, - {0xecabb3, 0x8333f338}, - {0xecabb4, 0x8333f339}, - {0xecabb5, 0x8333f430}, - {0xecabb6, 0x8333f431}, - {0xecabb7, 0x8333f432}, - {0xecabb8, 0x8333f433}, - {0xecabb9, 0x8333f434}, - {0xecabba, 0x8333f435}, - {0xecabbb, 0x8333f436}, - {0xecabbc, 0x8333f437}, - {0xecabbd, 0x8333f438}, - {0xecabbe, 0x8333f439}, - {0xecabbf, 0x8333f530}, - {0xecac80, 0x8333f531}, - {0xecac81, 0x8333f532}, - {0xecac82, 0x8333f533}, - {0xecac83, 0x8333f534}, - {0xecac84, 0x8333f535}, - {0xecac85, 0x8333f536}, - {0xecac86, 0x8333f537}, - {0xecac87, 0x8333f538}, - {0xecac88, 0x8333f539}, - {0xecac89, 0x8333f630}, - {0xecac8a, 0x8333f631}, - {0xecac8b, 0x8333f632}, - {0xecac8c, 0x8333f633}, - {0xecac8d, 0x8333f634}, - {0xecac8e, 0x8333f635}, - {0xecac8f, 0x8333f636}, - {0xecac90, 0x8333f637}, - {0xecac91, 0x8333f638}, - {0xecac92, 0x8333f639}, - {0xecac93, 0x8333f730}, - {0xecac94, 0x8333f731}, - {0xecac95, 0x8333f732}, - {0xecac96, 0x8333f733}, - {0xecac97, 0x8333f734}, - {0xecac98, 0x8333f735}, - {0xecac99, 0x8333f736}, - {0xecac9a, 0x8333f737}, - {0xecac9b, 0x8333f738}, - {0xecac9c, 0x8333f739}, - {0xecac9d, 0x8333f830}, - {0xecac9e, 0x8333f831}, - {0xecac9f, 0x8333f832}, - {0xecaca0, 0x8333f833}, - {0xecaca1, 0x8333f834}, - {0xecaca2, 0x8333f835}, - {0xecaca3, 0x8333f836}, - {0xecaca4, 0x8333f837}, - {0xecaca5, 0x8333f838}, - {0xecaca6, 0x8333f839}, - {0xecaca7, 0x8333f930}, - {0xecaca8, 0x8333f931}, - {0xecaca9, 0x8333f932}, - {0xecacaa, 0x8333f933}, - {0xecacab, 0x8333f934}, - {0xecacac, 0x8333f935}, - {0xecacad, 0x8333f936}, - {0xecacae, 0x8333f937}, - {0xecacaf, 0x8333f938}, - {0xecacb0, 0x8333f939}, - {0xecacb1, 0x8333fa30}, - {0xecacb2, 0x8333fa31}, - {0xecacb3, 0x8333fa32}, - {0xecacb4, 0x8333fa33}, - {0xecacb5, 0x8333fa34}, - {0xecacb6, 0x8333fa35}, - {0xecacb7, 0x8333fa36}, - {0xecacb8, 0x8333fa37}, - {0xecacb9, 0x8333fa38}, - {0xecacba, 0x8333fa39}, - {0xecacbb, 0x8333fb30}, - {0xecacbc, 0x8333fb31}, - {0xecacbd, 0x8333fb32}, - {0xecacbe, 0x8333fb33}, - {0xecacbf, 0x8333fb34}, - {0xecad80, 0x8333fb35}, - {0xecad81, 0x8333fb36}, - {0xecad82, 0x8333fb37}, - {0xecad83, 0x8333fb38}, - {0xecad84, 0x8333fb39}, - {0xecad85, 0x8333fc30}, - {0xecad86, 0x8333fc31}, - {0xecad87, 0x8333fc32}, - {0xecad88, 0x8333fc33}, - {0xecad89, 0x8333fc34}, - {0xecad8a, 0x8333fc35}, - {0xecad8b, 0x8333fc36}, - {0xecad8c, 0x8333fc37}, - {0xecad8d, 0x8333fc38}, - {0xecad8e, 0x8333fc39}, - {0xecad8f, 0x8333fd30}, - {0xecad90, 0x8333fd31}, - {0xecad91, 0x8333fd32}, - {0xecad92, 0x8333fd33}, - {0xecad93, 0x8333fd34}, - {0xecad94, 0x8333fd35}, - {0xecad95, 0x8333fd36}, - {0xecad96, 0x8333fd37}, - {0xecad97, 0x8333fd38}, - {0xecad98, 0x8333fd39}, - {0xecad99, 0x8333fe30}, - {0xecad9a, 0x8333fe31}, - {0xecad9b, 0x8333fe32}, - {0xecad9c, 0x8333fe33}, - {0xecad9d, 0x8333fe34}, - {0xecad9e, 0x8333fe35}, - {0xecad9f, 0x8333fe36}, - {0xecada0, 0x8333fe37}, - {0xecada1, 0x8333fe38}, - {0xecada2, 0x8333fe39}, - {0xecada3, 0x83348130}, - {0xecada4, 0x83348131}, - {0xecada5, 0x83348132}, - {0xecada6, 0x83348133}, - {0xecada7, 0x83348134}, - {0xecada8, 0x83348135}, - {0xecada9, 0x83348136}, - {0xecadaa, 0x83348137}, - {0xecadab, 0x83348138}, - {0xecadac, 0x83348139}, - {0xecadad, 0x83348230}, - {0xecadae, 0x83348231}, - {0xecadaf, 0x83348232}, - {0xecadb0, 0x83348233}, - {0xecadb1, 0x83348234}, - {0xecadb2, 0x83348235}, - {0xecadb3, 0x83348236}, - {0xecadb4, 0x83348237}, - {0xecadb5, 0x83348238}, - {0xecadb6, 0x83348239}, - {0xecadb7, 0x83348330}, - {0xecadb8, 0x83348331}, - {0xecadb9, 0x83348332}, - {0xecadba, 0x83348333}, - {0xecadbb, 0x83348334}, - {0xecadbc, 0x83348335}, - {0xecadbd, 0x83348336}, - {0xecadbe, 0x83348337}, - {0xecadbf, 0x83348338}, - {0xecae80, 0x83348339}, - {0xecae81, 0x83348430}, - {0xecae82, 0x83348431}, - {0xecae83, 0x83348432}, - {0xecae84, 0x83348433}, - {0xecae85, 0x83348434}, - {0xecae86, 0x83348435}, - {0xecae87, 0x83348436}, - {0xecae88, 0x83348437}, - {0xecae89, 0x83348438}, - {0xecae8a, 0x83348439}, - {0xecae8b, 0x83348530}, - {0xecae8c, 0x83348531}, - {0xecae8d, 0x83348532}, - {0xecae8e, 0x83348533}, - {0xecae8f, 0x83348534}, - {0xecae90, 0x83348535}, - {0xecae91, 0x83348536}, - {0xecae92, 0x83348537}, - {0xecae93, 0x83348538}, - {0xecae94, 0x83348539}, - {0xecae95, 0x83348630}, - {0xecae96, 0x83348631}, - {0xecae97, 0x83348632}, - {0xecae98, 0x83348633}, - {0xecae99, 0x83348634}, - {0xecae9a, 0x83348635}, - {0xecae9b, 0x83348636}, - {0xecae9c, 0x83348637}, - {0xecae9d, 0x83348638}, - {0xecae9e, 0x83348639}, - {0xecae9f, 0x83348730}, - {0xecaea0, 0x83348731}, - {0xecaea1, 0x83348732}, - {0xecaea2, 0x83348733}, - {0xecaea3, 0x83348734}, - {0xecaea4, 0x83348735}, - {0xecaea5, 0x83348736}, - {0xecaea6, 0x83348737}, - {0xecaea7, 0x83348738}, - {0xecaea8, 0x83348739}, - {0xecaea9, 0x83348830}, - {0xecaeaa, 0x83348831}, - {0xecaeab, 0x83348832}, - {0xecaeac, 0x83348833}, - {0xecaead, 0x83348834}, - {0xecaeae, 0x83348835}, - {0xecaeaf, 0x83348836}, - {0xecaeb0, 0x83348837}, - {0xecaeb1, 0x83348838}, - {0xecaeb2, 0x83348839}, - {0xecaeb3, 0x83348930}, - {0xecaeb4, 0x83348931}, - {0xecaeb5, 0x83348932}, - {0xecaeb6, 0x83348933}, - {0xecaeb7, 0x83348934}, - {0xecaeb8, 0x83348935}, - {0xecaeb9, 0x83348936}, - {0xecaeba, 0x83348937}, - {0xecaebb, 0x83348938}, - {0xecaebc, 0x83348939}, - {0xecaebd, 0x83348a30}, - {0xecaebe, 0x83348a31}, - {0xecaebf, 0x83348a32}, - {0xecaf80, 0x83348a33}, - {0xecaf81, 0x83348a34}, - {0xecaf82, 0x83348a35}, - {0xecaf83, 0x83348a36}, - {0xecaf84, 0x83348a37}, - {0xecaf85, 0x83348a38}, - {0xecaf86, 0x83348a39}, - {0xecaf87, 0x83348b30}, - {0xecaf88, 0x83348b31}, - {0xecaf89, 0x83348b32}, - {0xecaf8a, 0x83348b33}, - {0xecaf8b, 0x83348b34}, - {0xecaf8c, 0x83348b35}, - {0xecaf8d, 0x83348b36}, - {0xecaf8e, 0x83348b37}, - {0xecaf8f, 0x83348b38}, - {0xecaf90, 0x83348b39}, - {0xecaf91, 0x83348c30}, - {0xecaf92, 0x83348c31}, - {0xecaf93, 0x83348c32}, - {0xecaf94, 0x83348c33}, - {0xecaf95, 0x83348c34}, - {0xecaf96, 0x83348c35}, - {0xecaf97, 0x83348c36}, - {0xecaf98, 0x83348c37}, - {0xecaf99, 0x83348c38}, - {0xecaf9a, 0x83348c39}, - {0xecaf9b, 0x83348d30}, - {0xecaf9c, 0x83348d31}, - {0xecaf9d, 0x83348d32}, - {0xecaf9e, 0x83348d33}, - {0xecaf9f, 0x83348d34}, - {0xecafa0, 0x83348d35}, - {0xecafa1, 0x83348d36}, - {0xecafa2, 0x83348d37}, - {0xecafa3, 0x83348d38}, - {0xecafa4, 0x83348d39}, - {0xecafa5, 0x83348e30}, - {0xecafa6, 0x83348e31}, - {0xecafa7, 0x83348e32}, - {0xecafa8, 0x83348e33}, - {0xecafa9, 0x83348e34}, - {0xecafaa, 0x83348e35}, - {0xecafab, 0x83348e36}, - {0xecafac, 0x83348e37}, - {0xecafad, 0x83348e38}, - {0xecafae, 0x83348e39}, - {0xecafaf, 0x83348f30}, - {0xecafb0, 0x83348f31}, - {0xecafb1, 0x83348f32}, - {0xecafb2, 0x83348f33}, - {0xecafb3, 0x83348f34}, - {0xecafb4, 0x83348f35}, - {0xecafb5, 0x83348f36}, - {0xecafb6, 0x83348f37}, - {0xecafb7, 0x83348f38}, - {0xecafb8, 0x83348f39}, - {0xecafb9, 0x83349030}, - {0xecafba, 0x83349031}, - {0xecafbb, 0x83349032}, - {0xecafbc, 0x83349033}, - {0xecafbd, 0x83349034}, - {0xecafbe, 0x83349035}, - {0xecafbf, 0x83349036}, - {0xecb080, 0x83349037}, - {0xecb081, 0x83349038}, - {0xecb082, 0x83349039}, - {0xecb083, 0x83349130}, - {0xecb084, 0x83349131}, - {0xecb085, 0x83349132}, - {0xecb086, 0x83349133}, - {0xecb087, 0x83349134}, - {0xecb088, 0x83349135}, - {0xecb089, 0x83349136}, - {0xecb08a, 0x83349137}, - {0xecb08b, 0x83349138}, - {0xecb08c, 0x83349139}, - {0xecb08d, 0x83349230}, - {0xecb08e, 0x83349231}, - {0xecb08f, 0x83349232}, - {0xecb090, 0x83349233}, - {0xecb091, 0x83349234}, - {0xecb092, 0x83349235}, - {0xecb093, 0x83349236}, - {0xecb094, 0x83349237}, - {0xecb095, 0x83349238}, - {0xecb096, 0x83349239}, - {0xecb097, 0x83349330}, - {0xecb098, 0x83349331}, - {0xecb099, 0x83349332}, - {0xecb09a, 0x83349333}, - {0xecb09b, 0x83349334}, - {0xecb09c, 0x83349335}, - {0xecb09d, 0x83349336}, - {0xecb09e, 0x83349337}, - {0xecb09f, 0x83349338}, - {0xecb0a0, 0x83349339}, - {0xecb0a1, 0x83349430}, - {0xecb0a2, 0x83349431}, - {0xecb0a3, 0x83349432}, - {0xecb0a4, 0x83349433}, - {0xecb0a5, 0x83349434}, - {0xecb0a6, 0x83349435}, - {0xecb0a7, 0x83349436}, - {0xecb0a8, 0x83349437}, - {0xecb0a9, 0x83349438}, - {0xecb0aa, 0x83349439}, - {0xecb0ab, 0x83349530}, - {0xecb0ac, 0x83349531}, - {0xecb0ad, 0x83349532}, - {0xecb0ae, 0x83349533}, - {0xecb0af, 0x83349534}, - {0xecb0b0, 0x83349535}, - {0xecb0b1, 0x83349536}, - {0xecb0b2, 0x83349537}, - {0xecb0b3, 0x83349538}, - {0xecb0b4, 0x83349539}, - {0xecb0b5, 0x83349630}, - {0xecb0b6, 0x83349631}, - {0xecb0b7, 0x83349632}, - {0xecb0b8, 0x83349633}, - {0xecb0b9, 0x83349634}, - {0xecb0ba, 0x83349635}, - {0xecb0bb, 0x83349636}, - {0xecb0bc, 0x83349637}, - {0xecb0bd, 0x83349638}, - {0xecb0be, 0x83349639}, - {0xecb0bf, 0x83349730}, - {0xecb180, 0x83349731}, - {0xecb181, 0x83349732}, - {0xecb182, 0x83349733}, - {0xecb183, 0x83349734}, - {0xecb184, 0x83349735}, - {0xecb185, 0x83349736}, - {0xecb186, 0x83349737}, - {0xecb187, 0x83349738}, - {0xecb188, 0x83349739}, - {0xecb189, 0x83349830}, - {0xecb18a, 0x83349831}, - {0xecb18b, 0x83349832}, - {0xecb18c, 0x83349833}, - {0xecb18d, 0x83349834}, - {0xecb18e, 0x83349835}, - {0xecb18f, 0x83349836}, - {0xecb190, 0x83349837}, - {0xecb191, 0x83349838}, - {0xecb192, 0x83349839}, - {0xecb193, 0x83349930}, - {0xecb194, 0x83349931}, - {0xecb195, 0x83349932}, - {0xecb196, 0x83349933}, - {0xecb197, 0x83349934}, - {0xecb198, 0x83349935}, - {0xecb199, 0x83349936}, - {0xecb19a, 0x83349937}, - {0xecb19b, 0x83349938}, - {0xecb19c, 0x83349939}, - {0xecb19d, 0x83349a30}, - {0xecb19e, 0x83349a31}, - {0xecb19f, 0x83349a32}, - {0xecb1a0, 0x83349a33}, - {0xecb1a1, 0x83349a34}, - {0xecb1a2, 0x83349a35}, - {0xecb1a3, 0x83349a36}, - {0xecb1a4, 0x83349a37}, - {0xecb1a5, 0x83349a38}, - {0xecb1a6, 0x83349a39}, - {0xecb1a7, 0x83349b30}, - {0xecb1a8, 0x83349b31}, - {0xecb1a9, 0x83349b32}, - {0xecb1aa, 0x83349b33}, - {0xecb1ab, 0x83349b34}, - {0xecb1ac, 0x83349b35}, - {0xecb1ad, 0x83349b36}, - {0xecb1ae, 0x83349b37}, - {0xecb1af, 0x83349b38}, - {0xecb1b0, 0x83349b39}, - {0xecb1b1, 0x83349c30}, - {0xecb1b2, 0x83349c31}, - {0xecb1b3, 0x83349c32}, - {0xecb1b4, 0x83349c33}, - {0xecb1b5, 0x83349c34}, - {0xecb1b6, 0x83349c35}, - {0xecb1b7, 0x83349c36}, - {0xecb1b8, 0x83349c37}, - {0xecb1b9, 0x83349c38}, - {0xecb1ba, 0x83349c39}, - {0xecb1bb, 0x83349d30}, - {0xecb1bc, 0x83349d31}, - {0xecb1bd, 0x83349d32}, - {0xecb1be, 0x83349d33}, - {0xecb1bf, 0x83349d34}, - {0xecb280, 0x83349d35}, - {0xecb281, 0x83349d36}, - {0xecb282, 0x83349d37}, - {0xecb283, 0x83349d38}, - {0xecb284, 0x83349d39}, - {0xecb285, 0x83349e30}, - {0xecb286, 0x83349e31}, - {0xecb287, 0x83349e32}, - {0xecb288, 0x83349e33}, - {0xecb289, 0x83349e34}, - {0xecb28a, 0x83349e35}, - {0xecb28b, 0x83349e36}, - {0xecb28c, 0x83349e37}, - {0xecb28d, 0x83349e38}, - {0xecb28e, 0x83349e39}, - {0xecb28f, 0x83349f30}, - {0xecb290, 0x83349f31}, - {0xecb291, 0x83349f32}, - {0xecb292, 0x83349f33}, - {0xecb293, 0x83349f34}, - {0xecb294, 0x83349f35}, - {0xecb295, 0x83349f36}, - {0xecb296, 0x83349f37}, - {0xecb297, 0x83349f38}, - {0xecb298, 0x83349f39}, - {0xecb299, 0x8334a030}, - {0xecb29a, 0x8334a031}, - {0xecb29b, 0x8334a032}, - {0xecb29c, 0x8334a033}, - {0xecb29d, 0x8334a034}, - {0xecb29e, 0x8334a035}, - {0xecb29f, 0x8334a036}, - {0xecb2a0, 0x8334a037}, - {0xecb2a1, 0x8334a038}, - {0xecb2a2, 0x8334a039}, - {0xecb2a3, 0x8334a130}, - {0xecb2a4, 0x8334a131}, - {0xecb2a5, 0x8334a132}, - {0xecb2a6, 0x8334a133}, - {0xecb2a7, 0x8334a134}, - {0xecb2a8, 0x8334a135}, - {0xecb2a9, 0x8334a136}, - {0xecb2aa, 0x8334a137}, - {0xecb2ab, 0x8334a138}, - {0xecb2ac, 0x8334a139}, - {0xecb2ad, 0x8334a230}, - {0xecb2ae, 0x8334a231}, - {0xecb2af, 0x8334a232}, - {0xecb2b0, 0x8334a233}, - {0xecb2b1, 0x8334a234}, - {0xecb2b2, 0x8334a235}, - {0xecb2b3, 0x8334a236}, - {0xecb2b4, 0x8334a237}, - {0xecb2b5, 0x8334a238}, - {0xecb2b6, 0x8334a239}, - {0xecb2b7, 0x8334a330}, - {0xecb2b8, 0x8334a331}, - {0xecb2b9, 0x8334a332}, - {0xecb2ba, 0x8334a333}, - {0xecb2bb, 0x8334a334}, - {0xecb2bc, 0x8334a335}, - {0xecb2bd, 0x8334a336}, - {0xecb2be, 0x8334a337}, - {0xecb2bf, 0x8334a338}, - {0xecb380, 0x8334a339}, - {0xecb381, 0x8334a430}, - {0xecb382, 0x8334a431}, - {0xecb383, 0x8334a432}, - {0xecb384, 0x8334a433}, - {0xecb385, 0x8334a434}, - {0xecb386, 0x8334a435}, - {0xecb387, 0x8334a436}, - {0xecb388, 0x8334a437}, - {0xecb389, 0x8334a438}, - {0xecb38a, 0x8334a439}, - {0xecb38b, 0x8334a530}, - {0xecb38c, 0x8334a531}, - {0xecb38d, 0x8334a532}, - {0xecb38e, 0x8334a533}, - {0xecb38f, 0x8334a534}, - {0xecb390, 0x8334a535}, - {0xecb391, 0x8334a536}, - {0xecb392, 0x8334a537}, - {0xecb393, 0x8334a538}, - {0xecb394, 0x8334a539}, - {0xecb395, 0x8334a630}, - {0xecb396, 0x8334a631}, - {0xecb397, 0x8334a632}, - {0xecb398, 0x8334a633}, - {0xecb399, 0x8334a634}, - {0xecb39a, 0x8334a635}, - {0xecb39b, 0x8334a636}, - {0xecb39c, 0x8334a637}, - {0xecb39d, 0x8334a638}, - {0xecb39e, 0x8334a639}, - {0xecb39f, 0x8334a730}, - {0xecb3a0, 0x8334a731}, - {0xecb3a1, 0x8334a732}, - {0xecb3a2, 0x8334a733}, - {0xecb3a3, 0x8334a734}, - {0xecb3a4, 0x8334a735}, - {0xecb3a5, 0x8334a736}, - {0xecb3a6, 0x8334a737}, - {0xecb3a7, 0x8334a738}, - {0xecb3a8, 0x8334a739}, - {0xecb3a9, 0x8334a830}, - {0xecb3aa, 0x8334a831}, - {0xecb3ab, 0x8334a832}, - {0xecb3ac, 0x8334a833}, - {0xecb3ad, 0x8334a834}, - {0xecb3ae, 0x8334a835}, - {0xecb3af, 0x8334a836}, - {0xecb3b0, 0x8334a837}, - {0xecb3b1, 0x8334a838}, - {0xecb3b2, 0x8334a839}, - {0xecb3b3, 0x8334a930}, - {0xecb3b4, 0x8334a931}, - {0xecb3b5, 0x8334a932}, - {0xecb3b6, 0x8334a933}, - {0xecb3b7, 0x8334a934}, - {0xecb3b8, 0x8334a935}, - {0xecb3b9, 0x8334a936}, - {0xecb3ba, 0x8334a937}, - {0xecb3bb, 0x8334a938}, - {0xecb3bc, 0x8334a939}, - {0xecb3bd, 0x8334aa30}, - {0xecb3be, 0x8334aa31}, - {0xecb3bf, 0x8334aa32}, - {0xecb480, 0x8334aa33}, - {0xecb481, 0x8334aa34}, - {0xecb482, 0x8334aa35}, - {0xecb483, 0x8334aa36}, - {0xecb484, 0x8334aa37}, - {0xecb485, 0x8334aa38}, - {0xecb486, 0x8334aa39}, - {0xecb487, 0x8334ab30}, - {0xecb488, 0x8334ab31}, - {0xecb489, 0x8334ab32}, - {0xecb48a, 0x8334ab33}, - {0xecb48b, 0x8334ab34}, - {0xecb48c, 0x8334ab35}, - {0xecb48d, 0x8334ab36}, - {0xecb48e, 0x8334ab37}, - {0xecb48f, 0x8334ab38}, - {0xecb490, 0x8334ab39}, - {0xecb491, 0x8334ac30}, - {0xecb492, 0x8334ac31}, - {0xecb493, 0x8334ac32}, - {0xecb494, 0x8334ac33}, - {0xecb495, 0x8334ac34}, - {0xecb496, 0x8334ac35}, - {0xecb497, 0x8334ac36}, - {0xecb498, 0x8334ac37}, - {0xecb499, 0x8334ac38}, - {0xecb49a, 0x8334ac39}, - {0xecb49b, 0x8334ad30}, - {0xecb49c, 0x8334ad31}, - {0xecb49d, 0x8334ad32}, - {0xecb49e, 0x8334ad33}, - {0xecb49f, 0x8334ad34}, - {0xecb4a0, 0x8334ad35}, - {0xecb4a1, 0x8334ad36}, - {0xecb4a2, 0x8334ad37}, - {0xecb4a3, 0x8334ad38}, - {0xecb4a4, 0x8334ad39}, - {0xecb4a5, 0x8334ae30}, - {0xecb4a6, 0x8334ae31}, - {0xecb4a7, 0x8334ae32}, - {0xecb4a8, 0x8334ae33}, - {0xecb4a9, 0x8334ae34}, - {0xecb4aa, 0x8334ae35}, - {0xecb4ab, 0x8334ae36}, - {0xecb4ac, 0x8334ae37}, - {0xecb4ad, 0x8334ae38}, - {0xecb4ae, 0x8334ae39}, - {0xecb4af, 0x8334af30}, - {0xecb4b0, 0x8334af31}, - {0xecb4b1, 0x8334af32}, - {0xecb4b2, 0x8334af33}, - {0xecb4b3, 0x8334af34}, - {0xecb4b4, 0x8334af35}, - {0xecb4b5, 0x8334af36}, - {0xecb4b6, 0x8334af37}, - {0xecb4b7, 0x8334af38}, - {0xecb4b8, 0x8334af39}, - {0xecb4b9, 0x8334b030}, - {0xecb4ba, 0x8334b031}, - {0xecb4bb, 0x8334b032}, - {0xecb4bc, 0x8334b033}, - {0xecb4bd, 0x8334b034}, - {0xecb4be, 0x8334b035}, - {0xecb4bf, 0x8334b036}, - {0xecb580, 0x8334b037}, - {0xecb581, 0x8334b038}, - {0xecb582, 0x8334b039}, - {0xecb583, 0x8334b130}, - {0xecb584, 0x8334b131}, - {0xecb585, 0x8334b132}, - {0xecb586, 0x8334b133}, - {0xecb587, 0x8334b134}, - {0xecb588, 0x8334b135}, - {0xecb589, 0x8334b136}, - {0xecb58a, 0x8334b137}, - {0xecb58b, 0x8334b138}, - {0xecb58c, 0x8334b139}, - {0xecb58d, 0x8334b230}, - {0xecb58e, 0x8334b231}, - {0xecb58f, 0x8334b232}, - {0xecb590, 0x8334b233}, - {0xecb591, 0x8334b234}, - {0xecb592, 0x8334b235}, - {0xecb593, 0x8334b236}, - {0xecb594, 0x8334b237}, - {0xecb595, 0x8334b238}, - {0xecb596, 0x8334b239}, - {0xecb597, 0x8334b330}, - {0xecb598, 0x8334b331}, - {0xecb599, 0x8334b332}, - {0xecb59a, 0x8334b333}, - {0xecb59b, 0x8334b334}, - {0xecb59c, 0x8334b335}, - {0xecb59d, 0x8334b336}, - {0xecb59e, 0x8334b337}, - {0xecb59f, 0x8334b338}, - {0xecb5a0, 0x8334b339}, - {0xecb5a1, 0x8334b430}, - {0xecb5a2, 0x8334b431}, - {0xecb5a3, 0x8334b432}, - {0xecb5a4, 0x8334b433}, - {0xecb5a5, 0x8334b434}, - {0xecb5a6, 0x8334b435}, - {0xecb5a7, 0x8334b436}, - {0xecb5a8, 0x8334b437}, - {0xecb5a9, 0x8334b438}, - {0xecb5aa, 0x8334b439}, - {0xecb5ab, 0x8334b530}, - {0xecb5ac, 0x8334b531}, - {0xecb5ad, 0x8334b532}, - {0xecb5ae, 0x8334b533}, - {0xecb5af, 0x8334b534}, - {0xecb5b0, 0x8334b535}, - {0xecb5b1, 0x8334b536}, - {0xecb5b2, 0x8334b537}, - {0xecb5b3, 0x8334b538}, - {0xecb5b4, 0x8334b539}, - {0xecb5b5, 0x8334b630}, - {0xecb5b6, 0x8334b631}, - {0xecb5b7, 0x8334b632}, - {0xecb5b8, 0x8334b633}, - {0xecb5b9, 0x8334b634}, - {0xecb5ba, 0x8334b635}, - {0xecb5bb, 0x8334b636}, - {0xecb5bc, 0x8334b637}, - {0xecb5bd, 0x8334b638}, - {0xecb5be, 0x8334b639}, - {0xecb5bf, 0x8334b730}, - {0xecb680, 0x8334b731}, - {0xecb681, 0x8334b732}, - {0xecb682, 0x8334b733}, - {0xecb683, 0x8334b734}, - {0xecb684, 0x8334b735}, - {0xecb685, 0x8334b736}, - {0xecb686, 0x8334b737}, - {0xecb687, 0x8334b738}, - {0xecb688, 0x8334b739}, - {0xecb689, 0x8334b830}, - {0xecb68a, 0x8334b831}, - {0xecb68b, 0x8334b832}, - {0xecb68c, 0x8334b833}, - {0xecb68d, 0x8334b834}, - {0xecb68e, 0x8334b835}, - {0xecb68f, 0x8334b836}, - {0xecb690, 0x8334b837}, - {0xecb691, 0x8334b838}, - {0xecb692, 0x8334b839}, - {0xecb693, 0x8334b930}, - {0xecb694, 0x8334b931}, - {0xecb695, 0x8334b932}, - {0xecb696, 0x8334b933}, - {0xecb697, 0x8334b934}, - {0xecb698, 0x8334b935}, - {0xecb699, 0x8334b936}, - {0xecb69a, 0x8334b937}, - {0xecb69b, 0x8334b938}, - {0xecb69c, 0x8334b939}, - {0xecb69d, 0x8334ba30}, - {0xecb69e, 0x8334ba31}, - {0xecb69f, 0x8334ba32}, - {0xecb6a0, 0x8334ba33}, - {0xecb6a1, 0x8334ba34}, - {0xecb6a2, 0x8334ba35}, - {0xecb6a3, 0x8334ba36}, - {0xecb6a4, 0x8334ba37}, - {0xecb6a5, 0x8334ba38}, - {0xecb6a6, 0x8334ba39}, - {0xecb6a7, 0x8334bb30}, - {0xecb6a8, 0x8334bb31}, - {0xecb6a9, 0x8334bb32}, - {0xecb6aa, 0x8334bb33}, - {0xecb6ab, 0x8334bb34}, - {0xecb6ac, 0x8334bb35}, - {0xecb6ad, 0x8334bb36}, - {0xecb6ae, 0x8334bb37}, - {0xecb6af, 0x8334bb38}, - {0xecb6b0, 0x8334bb39}, - {0xecb6b1, 0x8334bc30}, - {0xecb6b2, 0x8334bc31}, - {0xecb6b3, 0x8334bc32}, - {0xecb6b4, 0x8334bc33}, - {0xecb6b5, 0x8334bc34}, - {0xecb6b6, 0x8334bc35}, - {0xecb6b7, 0x8334bc36}, - {0xecb6b8, 0x8334bc37}, - {0xecb6b9, 0x8334bc38}, - {0xecb6ba, 0x8334bc39}, - {0xecb6bb, 0x8334bd30}, - {0xecb6bc, 0x8334bd31}, - {0xecb6bd, 0x8334bd32}, - {0xecb6be, 0x8334bd33}, - {0xecb6bf, 0x8334bd34}, - {0xecb780, 0x8334bd35}, - {0xecb781, 0x8334bd36}, - {0xecb782, 0x8334bd37}, - {0xecb783, 0x8334bd38}, - {0xecb784, 0x8334bd39}, - {0xecb785, 0x8334be30}, - {0xecb786, 0x8334be31}, - {0xecb787, 0x8334be32}, - {0xecb788, 0x8334be33}, - {0xecb789, 0x8334be34}, - {0xecb78a, 0x8334be35}, - {0xecb78b, 0x8334be36}, - {0xecb78c, 0x8334be37}, - {0xecb78d, 0x8334be38}, - {0xecb78e, 0x8334be39}, - {0xecb78f, 0x8334bf30}, - {0xecb790, 0x8334bf31}, - {0xecb791, 0x8334bf32}, - {0xecb792, 0x8334bf33}, - {0xecb793, 0x8334bf34}, - {0xecb794, 0x8334bf35}, - {0xecb795, 0x8334bf36}, - {0xecb796, 0x8334bf37}, - {0xecb797, 0x8334bf38}, - {0xecb798, 0x8334bf39}, - {0xecb799, 0x8334c030}, - {0xecb79a, 0x8334c031}, - {0xecb79b, 0x8334c032}, - {0xecb79c, 0x8334c033}, - {0xecb79d, 0x8334c034}, - {0xecb79e, 0x8334c035}, - {0xecb79f, 0x8334c036}, - {0xecb7a0, 0x8334c037}, - {0xecb7a1, 0x8334c038}, - {0xecb7a2, 0x8334c039}, - {0xecb7a3, 0x8334c130}, - {0xecb7a4, 0x8334c131}, - {0xecb7a5, 0x8334c132}, - {0xecb7a6, 0x8334c133}, - {0xecb7a7, 0x8334c134}, - {0xecb7a8, 0x8334c135}, - {0xecb7a9, 0x8334c136}, - {0xecb7aa, 0x8334c137}, - {0xecb7ab, 0x8334c138}, - {0xecb7ac, 0x8334c139}, - {0xecb7ad, 0x8334c230}, - {0xecb7ae, 0x8334c231}, - {0xecb7af, 0x8334c232}, - {0xecb7b0, 0x8334c233}, - {0xecb7b1, 0x8334c234}, - {0xecb7b2, 0x8334c235}, - {0xecb7b3, 0x8334c236}, - {0xecb7b4, 0x8334c237}, - {0xecb7b5, 0x8334c238}, - {0xecb7b6, 0x8334c239}, - {0xecb7b7, 0x8334c330}, - {0xecb7b8, 0x8334c331}, - {0xecb7b9, 0x8334c332}, - {0xecb7ba, 0x8334c333}, - {0xecb7bb, 0x8334c334}, - {0xecb7bc, 0x8334c335}, - {0xecb7bd, 0x8334c336}, - {0xecb7be, 0x8334c337}, - {0xecb7bf, 0x8334c338}, - {0xecb880, 0x8334c339}, - {0xecb881, 0x8334c430}, - {0xecb882, 0x8334c431}, - {0xecb883, 0x8334c432}, - {0xecb884, 0x8334c433}, - {0xecb885, 0x8334c434}, - {0xecb886, 0x8334c435}, - {0xecb887, 0x8334c436}, - {0xecb888, 0x8334c437}, - {0xecb889, 0x8334c438}, - {0xecb88a, 0x8334c439}, - {0xecb88b, 0x8334c530}, - {0xecb88c, 0x8334c531}, - {0xecb88d, 0x8334c532}, - {0xecb88e, 0x8334c533}, - {0xecb88f, 0x8334c534}, - {0xecb890, 0x8334c535}, - {0xecb891, 0x8334c536}, - {0xecb892, 0x8334c537}, - {0xecb893, 0x8334c538}, - {0xecb894, 0x8334c539}, - {0xecb895, 0x8334c630}, - {0xecb896, 0x8334c631}, - {0xecb897, 0x8334c632}, - {0xecb898, 0x8334c633}, - {0xecb899, 0x8334c634}, - {0xecb89a, 0x8334c635}, - {0xecb89b, 0x8334c636}, - {0xecb89c, 0x8334c637}, - {0xecb89d, 0x8334c638}, - {0xecb89e, 0x8334c639}, - {0xecb89f, 0x8334c730}, - {0xecb8a0, 0x8334c731}, - {0xecb8a1, 0x8334c732}, - {0xecb8a2, 0x8334c733}, - {0xecb8a3, 0x8334c734}, - {0xecb8a4, 0x8334c735}, - {0xecb8a5, 0x8334c736}, - {0xecb8a6, 0x8334c737}, - {0xecb8a7, 0x8334c738}, - {0xecb8a8, 0x8334c739}, - {0xecb8a9, 0x8334c830}, - {0xecb8aa, 0x8334c831}, - {0xecb8ab, 0x8334c832}, - {0xecb8ac, 0x8334c833}, - {0xecb8ad, 0x8334c834}, - {0xecb8ae, 0x8334c835}, - {0xecb8af, 0x8334c836}, - {0xecb8b0, 0x8334c837}, - {0xecb8b1, 0x8334c838}, - {0xecb8b2, 0x8334c839}, - {0xecb8b3, 0x8334c930}, - {0xecb8b4, 0x8334c931}, - {0xecb8b5, 0x8334c932}, - {0xecb8b6, 0x8334c933}, - {0xecb8b7, 0x8334c934}, - {0xecb8b8, 0x8334c935}, - {0xecb8b9, 0x8334c936}, - {0xecb8ba, 0x8334c937}, - {0xecb8bb, 0x8334c938}, - {0xecb8bc, 0x8334c939}, - {0xecb8bd, 0x8334ca30}, - {0xecb8be, 0x8334ca31}, - {0xecb8bf, 0x8334ca32}, - {0xecb980, 0x8334ca33}, - {0xecb981, 0x8334ca34}, - {0xecb982, 0x8334ca35}, - {0xecb983, 0x8334ca36}, - {0xecb984, 0x8334ca37}, - {0xecb985, 0x8334ca38}, - {0xecb986, 0x8334ca39}, - {0xecb987, 0x8334cb30}, - {0xecb988, 0x8334cb31}, - {0xecb989, 0x8334cb32}, - {0xecb98a, 0x8334cb33}, - {0xecb98b, 0x8334cb34}, - {0xecb98c, 0x8334cb35}, - {0xecb98d, 0x8334cb36}, - {0xecb98e, 0x8334cb37}, - {0xecb98f, 0x8334cb38}, - {0xecb990, 0x8334cb39}, - {0xecb991, 0x8334cc30}, - {0xecb992, 0x8334cc31}, - {0xecb993, 0x8334cc32}, - {0xecb994, 0x8334cc33}, - {0xecb995, 0x8334cc34}, - {0xecb996, 0x8334cc35}, - {0xecb997, 0x8334cc36}, - {0xecb998, 0x8334cc37}, - {0xecb999, 0x8334cc38}, - {0xecb99a, 0x8334cc39}, - {0xecb99b, 0x8334cd30}, - {0xecb99c, 0x8334cd31}, - {0xecb99d, 0x8334cd32}, - {0xecb99e, 0x8334cd33}, - {0xecb99f, 0x8334cd34}, - {0xecb9a0, 0x8334cd35}, - {0xecb9a1, 0x8334cd36}, - {0xecb9a2, 0x8334cd37}, - {0xecb9a3, 0x8334cd38}, - {0xecb9a4, 0x8334cd39}, - {0xecb9a5, 0x8334ce30}, - {0xecb9a6, 0x8334ce31}, - {0xecb9a7, 0x8334ce32}, - {0xecb9a8, 0x8334ce33}, - {0xecb9a9, 0x8334ce34}, - {0xecb9aa, 0x8334ce35}, - {0xecb9ab, 0x8334ce36}, - {0xecb9ac, 0x8334ce37}, - {0xecb9ad, 0x8334ce38}, - {0xecb9ae, 0x8334ce39}, - {0xecb9af, 0x8334cf30}, - {0xecb9b0, 0x8334cf31}, - {0xecb9b1, 0x8334cf32}, - {0xecb9b2, 0x8334cf33}, - {0xecb9b3, 0x8334cf34}, - {0xecb9b4, 0x8334cf35}, - {0xecb9b5, 0x8334cf36}, - {0xecb9b6, 0x8334cf37}, - {0xecb9b7, 0x8334cf38}, - {0xecb9b8, 0x8334cf39}, - {0xecb9b9, 0x8334d030}, - {0xecb9ba, 0x8334d031}, - {0xecb9bb, 0x8334d032}, - {0xecb9bc, 0x8334d033}, - {0xecb9bd, 0x8334d034}, - {0xecb9be, 0x8334d035}, - {0xecb9bf, 0x8334d036}, - {0xecba80, 0x8334d037}, - {0xecba81, 0x8334d038}, - {0xecba82, 0x8334d039}, - {0xecba83, 0x8334d130}, - {0xecba84, 0x8334d131}, - {0xecba85, 0x8334d132}, - {0xecba86, 0x8334d133}, - {0xecba87, 0x8334d134}, - {0xecba88, 0x8334d135}, - {0xecba89, 0x8334d136}, - {0xecba8a, 0x8334d137}, - {0xecba8b, 0x8334d138}, - {0xecba8c, 0x8334d139}, - {0xecba8d, 0x8334d230}, - {0xecba8e, 0x8334d231}, - {0xecba8f, 0x8334d232}, - {0xecba90, 0x8334d233}, - {0xecba91, 0x8334d234}, - {0xecba92, 0x8334d235}, - {0xecba93, 0x8334d236}, - {0xecba94, 0x8334d237}, - {0xecba95, 0x8334d238}, - {0xecba96, 0x8334d239}, - {0xecba97, 0x8334d330}, - {0xecba98, 0x8334d331}, - {0xecba99, 0x8334d332}, - {0xecba9a, 0x8334d333}, - {0xecba9b, 0x8334d334}, - {0xecba9c, 0x8334d335}, - {0xecba9d, 0x8334d336}, - {0xecba9e, 0x8334d337}, - {0xecba9f, 0x8334d338}, - {0xecbaa0, 0x8334d339}, - {0xecbaa1, 0x8334d430}, - {0xecbaa2, 0x8334d431}, - {0xecbaa3, 0x8334d432}, - {0xecbaa4, 0x8334d433}, - {0xecbaa5, 0x8334d434}, - {0xecbaa6, 0x8334d435}, - {0xecbaa7, 0x8334d436}, - {0xecbaa8, 0x8334d437}, - {0xecbaa9, 0x8334d438}, - {0xecbaaa, 0x8334d439}, - {0xecbaab, 0x8334d530}, - {0xecbaac, 0x8334d531}, - {0xecbaad, 0x8334d532}, - {0xecbaae, 0x8334d533}, - {0xecbaaf, 0x8334d534}, - {0xecbab0, 0x8334d535}, - {0xecbab1, 0x8334d536}, - {0xecbab2, 0x8334d537}, - {0xecbab3, 0x8334d538}, - {0xecbab4, 0x8334d539}, - {0xecbab5, 0x8334d630}, - {0xecbab6, 0x8334d631}, - {0xecbab7, 0x8334d632}, - {0xecbab8, 0x8334d633}, - {0xecbab9, 0x8334d634}, - {0xecbaba, 0x8334d635}, - {0xecbabb, 0x8334d636}, - {0xecbabc, 0x8334d637}, - {0xecbabd, 0x8334d638}, - {0xecbabe, 0x8334d639}, - {0xecbabf, 0x8334d730}, - {0xecbb80, 0x8334d731}, - {0xecbb81, 0x8334d732}, - {0xecbb82, 0x8334d733}, - {0xecbb83, 0x8334d734}, - {0xecbb84, 0x8334d735}, - {0xecbb85, 0x8334d736}, - {0xecbb86, 0x8334d737}, - {0xecbb87, 0x8334d738}, - {0xecbb88, 0x8334d739}, - {0xecbb89, 0x8334d830}, - {0xecbb8a, 0x8334d831}, - {0xecbb8b, 0x8334d832}, - {0xecbb8c, 0x8334d833}, - {0xecbb8d, 0x8334d834}, - {0xecbb8e, 0x8334d835}, - {0xecbb8f, 0x8334d836}, - {0xecbb90, 0x8334d837}, - {0xecbb91, 0x8334d838}, - {0xecbb92, 0x8334d839}, - {0xecbb93, 0x8334d930}, - {0xecbb94, 0x8334d931}, - {0xecbb95, 0x8334d932}, - {0xecbb96, 0x8334d933}, - {0xecbb97, 0x8334d934}, - {0xecbb98, 0x8334d935}, - {0xecbb99, 0x8334d936}, - {0xecbb9a, 0x8334d937}, - {0xecbb9b, 0x8334d938}, - {0xecbb9c, 0x8334d939}, - {0xecbb9d, 0x8334da30}, - {0xecbb9e, 0x8334da31}, - {0xecbb9f, 0x8334da32}, - {0xecbba0, 0x8334da33}, - {0xecbba1, 0x8334da34}, - {0xecbba2, 0x8334da35}, - {0xecbba3, 0x8334da36}, - {0xecbba4, 0x8334da37}, - {0xecbba5, 0x8334da38}, - {0xecbba6, 0x8334da39}, - {0xecbba7, 0x8334db30}, - {0xecbba8, 0x8334db31}, - {0xecbba9, 0x8334db32}, - {0xecbbaa, 0x8334db33}, - {0xecbbab, 0x8334db34}, - {0xecbbac, 0x8334db35}, - {0xecbbad, 0x8334db36}, - {0xecbbae, 0x8334db37}, - {0xecbbaf, 0x8334db38}, - {0xecbbb0, 0x8334db39}, - {0xecbbb1, 0x8334dc30}, - {0xecbbb2, 0x8334dc31}, - {0xecbbb3, 0x8334dc32}, - {0xecbbb4, 0x8334dc33}, - {0xecbbb5, 0x8334dc34}, - {0xecbbb6, 0x8334dc35}, - {0xecbbb7, 0x8334dc36}, - {0xecbbb8, 0x8334dc37}, - {0xecbbb9, 0x8334dc38}, - {0xecbbba, 0x8334dc39}, - {0xecbbbb, 0x8334dd30}, - {0xecbbbc, 0x8334dd31}, - {0xecbbbd, 0x8334dd32}, - {0xecbbbe, 0x8334dd33}, - {0xecbbbf, 0x8334dd34}, - {0xecbc80, 0x8334dd35}, - {0xecbc81, 0x8334dd36}, - {0xecbc82, 0x8334dd37}, - {0xecbc83, 0x8334dd38}, - {0xecbc84, 0x8334dd39}, - {0xecbc85, 0x8334de30}, - {0xecbc86, 0x8334de31}, - {0xecbc87, 0x8334de32}, - {0xecbc88, 0x8334de33}, - {0xecbc89, 0x8334de34}, - {0xecbc8a, 0x8334de35}, - {0xecbc8b, 0x8334de36}, - {0xecbc8c, 0x8334de37}, - {0xecbc8d, 0x8334de38}, - {0xecbc8e, 0x8334de39}, - {0xecbc8f, 0x8334df30}, - {0xecbc90, 0x8334df31}, - {0xecbc91, 0x8334df32}, - {0xecbc92, 0x8334df33}, - {0xecbc93, 0x8334df34}, - {0xecbc94, 0x8334df35}, - {0xecbc95, 0x8334df36}, - {0xecbc96, 0x8334df37}, - {0xecbc97, 0x8334df38}, - {0xecbc98, 0x8334df39}, - {0xecbc99, 0x8334e030}, - {0xecbc9a, 0x8334e031}, - {0xecbc9b, 0x8334e032}, - {0xecbc9c, 0x8334e033}, - {0xecbc9d, 0x8334e034}, - {0xecbc9e, 0x8334e035}, - {0xecbc9f, 0x8334e036}, - {0xecbca0, 0x8334e037}, - {0xecbca1, 0x8334e038}, - {0xecbca2, 0x8334e039}, - {0xecbca3, 0x8334e130}, - {0xecbca4, 0x8334e131}, - {0xecbca5, 0x8334e132}, - {0xecbca6, 0x8334e133}, - {0xecbca7, 0x8334e134}, - {0xecbca8, 0x8334e135}, - {0xecbca9, 0x8334e136}, - {0xecbcaa, 0x8334e137}, - {0xecbcab, 0x8334e138}, - {0xecbcac, 0x8334e139}, - {0xecbcad, 0x8334e230}, - {0xecbcae, 0x8334e231}, - {0xecbcaf, 0x8334e232}, - {0xecbcb0, 0x8334e233}, - {0xecbcb1, 0x8334e234}, - {0xecbcb2, 0x8334e235}, - {0xecbcb3, 0x8334e236}, - {0xecbcb4, 0x8334e237}, - {0xecbcb5, 0x8334e238}, - {0xecbcb6, 0x8334e239}, - {0xecbcb7, 0x8334e330}, - {0xecbcb8, 0x8334e331}, - {0xecbcb9, 0x8334e332}, - {0xecbcba, 0x8334e333}, - {0xecbcbb, 0x8334e334}, - {0xecbcbc, 0x8334e335}, - {0xecbcbd, 0x8334e336}, - {0xecbcbe, 0x8334e337}, - {0xecbcbf, 0x8334e338}, - {0xecbd80, 0x8334e339}, - {0xecbd81, 0x8334e430}, - {0xecbd82, 0x8334e431}, - {0xecbd83, 0x8334e432}, - {0xecbd84, 0x8334e433}, - {0xecbd85, 0x8334e434}, - {0xecbd86, 0x8334e435}, - {0xecbd87, 0x8334e436}, - {0xecbd88, 0x8334e437}, - {0xecbd89, 0x8334e438}, - {0xecbd8a, 0x8334e439}, - {0xecbd8b, 0x8334e530}, - {0xecbd8c, 0x8334e531}, - {0xecbd8d, 0x8334e532}, - {0xecbd8e, 0x8334e533}, - {0xecbd8f, 0x8334e534}, - {0xecbd90, 0x8334e535}, - {0xecbd91, 0x8334e536}, - {0xecbd92, 0x8334e537}, - {0xecbd93, 0x8334e538}, - {0xecbd94, 0x8334e539}, - {0xecbd95, 0x8334e630}, - {0xecbd96, 0x8334e631}, - {0xecbd97, 0x8334e632}, - {0xecbd98, 0x8334e633}, - {0xecbd99, 0x8334e634}, - {0xecbd9a, 0x8334e635}, - {0xecbd9b, 0x8334e636}, - {0xecbd9c, 0x8334e637}, - {0xecbd9d, 0x8334e638}, - {0xecbd9e, 0x8334e639}, - {0xecbd9f, 0x8334e730}, - {0xecbda0, 0x8334e731}, - {0xecbda1, 0x8334e732}, - {0xecbda2, 0x8334e733}, - {0xecbda3, 0x8334e734}, - {0xecbda4, 0x8334e735}, - {0xecbda5, 0x8334e736}, - {0xecbda6, 0x8334e737}, - {0xecbda7, 0x8334e738}, - {0xecbda8, 0x8334e739}, - {0xecbda9, 0x8334e830}, - {0xecbdaa, 0x8334e831}, - {0xecbdab, 0x8334e832}, - {0xecbdac, 0x8334e833}, - {0xecbdad, 0x8334e834}, - {0xecbdae, 0x8334e835}, - {0xecbdaf, 0x8334e836}, - {0xecbdb0, 0x8334e837}, - {0xecbdb1, 0x8334e838}, - {0xecbdb2, 0x8334e839}, - {0xecbdb3, 0x8334e930}, - {0xecbdb4, 0x8334e931}, - {0xecbdb5, 0x8334e932}, - {0xecbdb6, 0x8334e933}, - {0xecbdb7, 0x8334e934}, - {0xecbdb8, 0x8334e935}, - {0xecbdb9, 0x8334e936}, - {0xecbdba, 0x8334e937}, - {0xecbdbb, 0x8334e938}, - {0xecbdbc, 0x8334e939}, - {0xecbdbd, 0x8334ea30}, - {0xecbdbe, 0x8334ea31}, - {0xecbdbf, 0x8334ea32}, - {0xecbe80, 0x8334ea33}, - {0xecbe81, 0x8334ea34}, - {0xecbe82, 0x8334ea35}, - {0xecbe83, 0x8334ea36}, - {0xecbe84, 0x8334ea37}, - {0xecbe85, 0x8334ea38}, - {0xecbe86, 0x8334ea39}, - {0xecbe87, 0x8334eb30}, - {0xecbe88, 0x8334eb31}, - {0xecbe89, 0x8334eb32}, - {0xecbe8a, 0x8334eb33}, - {0xecbe8b, 0x8334eb34}, - {0xecbe8c, 0x8334eb35}, - {0xecbe8d, 0x8334eb36}, - {0xecbe8e, 0x8334eb37}, - {0xecbe8f, 0x8334eb38}, - {0xecbe90, 0x8334eb39}, - {0xecbe91, 0x8334ec30}, - {0xecbe92, 0x8334ec31}, - {0xecbe93, 0x8334ec32}, - {0xecbe94, 0x8334ec33}, - {0xecbe95, 0x8334ec34}, - {0xecbe96, 0x8334ec35}, - {0xecbe97, 0x8334ec36}, - {0xecbe98, 0x8334ec37}, - {0xecbe99, 0x8334ec38}, - {0xecbe9a, 0x8334ec39}, - {0xecbe9b, 0x8334ed30}, - {0xecbe9c, 0x8334ed31}, - {0xecbe9d, 0x8334ed32}, - {0xecbe9e, 0x8334ed33}, - {0xecbe9f, 0x8334ed34}, - {0xecbea0, 0x8334ed35}, - {0xecbea1, 0x8334ed36}, - {0xecbea2, 0x8334ed37}, - {0xecbea3, 0x8334ed38}, - {0xecbea4, 0x8334ed39}, - {0xecbea5, 0x8334ee30}, - {0xecbea6, 0x8334ee31}, - {0xecbea7, 0x8334ee32}, - {0xecbea8, 0x8334ee33}, - {0xecbea9, 0x8334ee34}, - {0xecbeaa, 0x8334ee35}, - {0xecbeab, 0x8334ee36}, - {0xecbeac, 0x8334ee37}, - {0xecbead, 0x8334ee38}, - {0xecbeae, 0x8334ee39}, - {0xecbeaf, 0x8334ef30}, - {0xecbeb0, 0x8334ef31}, - {0xecbeb1, 0x8334ef32}, - {0xecbeb2, 0x8334ef33}, - {0xecbeb3, 0x8334ef34}, - {0xecbeb4, 0x8334ef35}, - {0xecbeb5, 0x8334ef36}, - {0xecbeb6, 0x8334ef37}, - {0xecbeb7, 0x8334ef38}, - {0xecbeb8, 0x8334ef39}, - {0xecbeb9, 0x8334f030}, - {0xecbeba, 0x8334f031}, - {0xecbebb, 0x8334f032}, - {0xecbebc, 0x8334f033}, - {0xecbebd, 0x8334f034}, - {0xecbebe, 0x8334f035}, - {0xecbebf, 0x8334f036}, - {0xecbf80, 0x8334f037}, - {0xecbf81, 0x8334f038}, - {0xecbf82, 0x8334f039}, - {0xecbf83, 0x8334f130}, - {0xecbf84, 0x8334f131}, - {0xecbf85, 0x8334f132}, - {0xecbf86, 0x8334f133}, - {0xecbf87, 0x8334f134}, - {0xecbf88, 0x8334f135}, - {0xecbf89, 0x8334f136}, - {0xecbf8a, 0x8334f137}, - {0xecbf8b, 0x8334f138}, - {0xecbf8c, 0x8334f139}, - {0xecbf8d, 0x8334f230}, - {0xecbf8e, 0x8334f231}, - {0xecbf8f, 0x8334f232}, - {0xecbf90, 0x8334f233}, - {0xecbf91, 0x8334f234}, - {0xecbf92, 0x8334f235}, - {0xecbf93, 0x8334f236}, - {0xecbf94, 0x8334f237}, - {0xecbf95, 0x8334f238}, - {0xecbf96, 0x8334f239}, - {0xecbf97, 0x8334f330}, - {0xecbf98, 0x8334f331}, - {0xecbf99, 0x8334f332}, - {0xecbf9a, 0x8334f333}, - {0xecbf9b, 0x8334f334}, - {0xecbf9c, 0x8334f335}, - {0xecbf9d, 0x8334f336}, - {0xecbf9e, 0x8334f337}, - {0xecbf9f, 0x8334f338}, - {0xecbfa0, 0x8334f339}, - {0xecbfa1, 0x8334f430}, - {0xecbfa2, 0x8334f431}, - {0xecbfa3, 0x8334f432}, - {0xecbfa4, 0x8334f433}, - {0xecbfa5, 0x8334f434}, - {0xecbfa6, 0x8334f435}, - {0xecbfa7, 0x8334f436}, - {0xecbfa8, 0x8334f437}, - {0xecbfa9, 0x8334f438}, - {0xecbfaa, 0x8334f439}, - {0xecbfab, 0x8334f530}, - {0xecbfac, 0x8334f531}, - {0xecbfad, 0x8334f532}, - {0xecbfae, 0x8334f533}, - {0xecbfaf, 0x8334f534}, - {0xecbfb0, 0x8334f535}, - {0xecbfb1, 0x8334f536}, - {0xecbfb2, 0x8334f537}, - {0xecbfb3, 0x8334f538}, - {0xecbfb4, 0x8334f539}, - {0xecbfb5, 0x8334f630}, - {0xecbfb6, 0x8334f631}, - {0xecbfb7, 0x8334f632}, - {0xecbfb8, 0x8334f633}, - {0xecbfb9, 0x8334f634}, - {0xecbfba, 0x8334f635}, - {0xecbfbb, 0x8334f636}, - {0xecbfbc, 0x8334f637}, - {0xecbfbd, 0x8334f638}, - {0xecbfbe, 0x8334f639}, - {0xecbfbf, 0x8334f730}, - {0xed8080, 0x8334f731}, - {0xed8081, 0x8334f732}, - {0xed8082, 0x8334f733}, - {0xed8083, 0x8334f734}, - {0xed8084, 0x8334f735}, - {0xed8085, 0x8334f736}, - {0xed8086, 0x8334f737}, - {0xed8087, 0x8334f738}, - {0xed8088, 0x8334f739}, - {0xed8089, 0x8334f830}, - {0xed808a, 0x8334f831}, - {0xed808b, 0x8334f832}, - {0xed808c, 0x8334f833}, - {0xed808d, 0x8334f834}, - {0xed808e, 0x8334f835}, - {0xed808f, 0x8334f836}, - {0xed8090, 0x8334f837}, - {0xed8091, 0x8334f838}, - {0xed8092, 0x8334f839}, - {0xed8093, 0x8334f930}, - {0xed8094, 0x8334f931}, - {0xed8095, 0x8334f932}, - {0xed8096, 0x8334f933}, - {0xed8097, 0x8334f934}, - {0xed8098, 0x8334f935}, - {0xed8099, 0x8334f936}, - {0xed809a, 0x8334f937}, - {0xed809b, 0x8334f938}, - {0xed809c, 0x8334f939}, - {0xed809d, 0x8334fa30}, - {0xed809e, 0x8334fa31}, - {0xed809f, 0x8334fa32}, - {0xed80a0, 0x8334fa33}, - {0xed80a1, 0x8334fa34}, - {0xed80a2, 0x8334fa35}, - {0xed80a3, 0x8334fa36}, - {0xed80a4, 0x8334fa37}, - {0xed80a5, 0x8334fa38}, - {0xed80a6, 0x8334fa39}, - {0xed80a7, 0x8334fb30}, - {0xed80a8, 0x8334fb31}, - {0xed80a9, 0x8334fb32}, - {0xed80aa, 0x8334fb33}, - {0xed80ab, 0x8334fb34}, - {0xed80ac, 0x8334fb35}, - {0xed80ad, 0x8334fb36}, - {0xed80ae, 0x8334fb37}, - {0xed80af, 0x8334fb38}, - {0xed80b0, 0x8334fb39}, - {0xed80b1, 0x8334fc30}, - {0xed80b2, 0x8334fc31}, - {0xed80b3, 0x8334fc32}, - {0xed80b4, 0x8334fc33}, - {0xed80b5, 0x8334fc34}, - {0xed80b6, 0x8334fc35}, - {0xed80b7, 0x8334fc36}, - {0xed80b8, 0x8334fc37}, - {0xed80b9, 0x8334fc38}, - {0xed80ba, 0x8334fc39}, - {0xed80bb, 0x8334fd30}, - {0xed80bc, 0x8334fd31}, - {0xed80bd, 0x8334fd32}, - {0xed80be, 0x8334fd33}, - {0xed80bf, 0x8334fd34}, - {0xed8180, 0x8334fd35}, - {0xed8181, 0x8334fd36}, - {0xed8182, 0x8334fd37}, - {0xed8183, 0x8334fd38}, - {0xed8184, 0x8334fd39}, - {0xed8185, 0x8334fe30}, - {0xed8186, 0x8334fe31}, - {0xed8187, 0x8334fe32}, - {0xed8188, 0x8334fe33}, - {0xed8189, 0x8334fe34}, - {0xed818a, 0x8334fe35}, - {0xed818b, 0x8334fe36}, - {0xed818c, 0x8334fe37}, - {0xed818d, 0x8334fe38}, - {0xed818e, 0x8334fe39}, - {0xed818f, 0x83358130}, - {0xed8190, 0x83358131}, - {0xed8191, 0x83358132}, - {0xed8192, 0x83358133}, - {0xed8193, 0x83358134}, - {0xed8194, 0x83358135}, - {0xed8195, 0x83358136}, - {0xed8196, 0x83358137}, - {0xed8197, 0x83358138}, - {0xed8198, 0x83358139}, - {0xed8199, 0x83358230}, - {0xed819a, 0x83358231}, - {0xed819b, 0x83358232}, - {0xed819c, 0x83358233}, - {0xed819d, 0x83358234}, - {0xed819e, 0x83358235}, - {0xed819f, 0x83358236}, - {0xed81a0, 0x83358237}, - {0xed81a1, 0x83358238}, - {0xed81a2, 0x83358239}, - {0xed81a3, 0x83358330}, - {0xed81a4, 0x83358331}, - {0xed81a5, 0x83358332}, - {0xed81a6, 0x83358333}, - {0xed81a7, 0x83358334}, - {0xed81a8, 0x83358335}, - {0xed81a9, 0x83358336}, - {0xed81aa, 0x83358337}, - {0xed81ab, 0x83358338}, - {0xed81ac, 0x83358339}, - {0xed81ad, 0x83358430}, - {0xed81ae, 0x83358431}, - {0xed81af, 0x83358432}, - {0xed81b0, 0x83358433}, - {0xed81b1, 0x83358434}, - {0xed81b2, 0x83358435}, - {0xed81b3, 0x83358436}, - {0xed81b4, 0x83358437}, - {0xed81b5, 0x83358438}, - {0xed81b6, 0x83358439}, - {0xed81b7, 0x83358530}, - {0xed81b8, 0x83358531}, - {0xed81b9, 0x83358532}, - {0xed81ba, 0x83358533}, - {0xed81bb, 0x83358534}, - {0xed81bc, 0x83358535}, - {0xed81bd, 0x83358536}, - {0xed81be, 0x83358537}, - {0xed81bf, 0x83358538}, - {0xed8280, 0x83358539}, - {0xed8281, 0x83358630}, - {0xed8282, 0x83358631}, - {0xed8283, 0x83358632}, - {0xed8284, 0x83358633}, - {0xed8285, 0x83358634}, - {0xed8286, 0x83358635}, - {0xed8287, 0x83358636}, - {0xed8288, 0x83358637}, - {0xed8289, 0x83358638}, - {0xed828a, 0x83358639}, - {0xed828b, 0x83358730}, - {0xed828c, 0x83358731}, - {0xed828d, 0x83358732}, - {0xed828e, 0x83358733}, - {0xed828f, 0x83358734}, - {0xed8290, 0x83358735}, - {0xed8291, 0x83358736}, - {0xed8292, 0x83358737}, - {0xed8293, 0x83358738}, - {0xed8294, 0x83358739}, - {0xed8295, 0x83358830}, - {0xed8296, 0x83358831}, - {0xed8297, 0x83358832}, - {0xed8298, 0x83358833}, - {0xed8299, 0x83358834}, - {0xed829a, 0x83358835}, - {0xed829b, 0x83358836}, - {0xed829c, 0x83358837}, - {0xed829d, 0x83358838}, - {0xed829e, 0x83358839}, - {0xed829f, 0x83358930}, - {0xed82a0, 0x83358931}, - {0xed82a1, 0x83358932}, - {0xed82a2, 0x83358933}, - {0xed82a3, 0x83358934}, - {0xed82a4, 0x83358935}, - {0xed82a5, 0x83358936}, - {0xed82a6, 0x83358937}, - {0xed82a7, 0x83358938}, - {0xed82a8, 0x83358939}, - {0xed82a9, 0x83358a30}, - {0xed82aa, 0x83358a31}, - {0xed82ab, 0x83358a32}, - {0xed82ac, 0x83358a33}, - {0xed82ad, 0x83358a34}, - {0xed82ae, 0x83358a35}, - {0xed82af, 0x83358a36}, - {0xed82b0, 0x83358a37}, - {0xed82b1, 0x83358a38}, - {0xed82b2, 0x83358a39}, - {0xed82b3, 0x83358b30}, - {0xed82b4, 0x83358b31}, - {0xed82b5, 0x83358b32}, - {0xed82b6, 0x83358b33}, - {0xed82b7, 0x83358b34}, - {0xed82b8, 0x83358b35}, - {0xed82b9, 0x83358b36}, - {0xed82ba, 0x83358b37}, - {0xed82bb, 0x83358b38}, - {0xed82bc, 0x83358b39}, - {0xed82bd, 0x83358c30}, - {0xed82be, 0x83358c31}, - {0xed82bf, 0x83358c32}, - {0xed8380, 0x83358c33}, - {0xed8381, 0x83358c34}, - {0xed8382, 0x83358c35}, - {0xed8383, 0x83358c36}, - {0xed8384, 0x83358c37}, - {0xed8385, 0x83358c38}, - {0xed8386, 0x83358c39}, - {0xed8387, 0x83358d30}, - {0xed8388, 0x83358d31}, - {0xed8389, 0x83358d32}, - {0xed838a, 0x83358d33}, - {0xed838b, 0x83358d34}, - {0xed838c, 0x83358d35}, - {0xed838d, 0x83358d36}, - {0xed838e, 0x83358d37}, - {0xed838f, 0x83358d38}, - {0xed8390, 0x83358d39}, - {0xed8391, 0x83358e30}, - {0xed8392, 0x83358e31}, - {0xed8393, 0x83358e32}, - {0xed8394, 0x83358e33}, - {0xed8395, 0x83358e34}, - {0xed8396, 0x83358e35}, - {0xed8397, 0x83358e36}, - {0xed8398, 0x83358e37}, - {0xed8399, 0x83358e38}, - {0xed839a, 0x83358e39}, - {0xed839b, 0x83358f30}, - {0xed839c, 0x83358f31}, - {0xed839d, 0x83358f32}, - {0xed839e, 0x83358f33}, - {0xed839f, 0x83358f34}, - {0xed83a0, 0x83358f35}, - {0xed83a1, 0x83358f36}, - {0xed83a2, 0x83358f37}, - {0xed83a3, 0x83358f38}, - {0xed83a4, 0x83358f39}, - {0xed83a5, 0x83359030}, - {0xed83a6, 0x83359031}, - {0xed83a7, 0x83359032}, - {0xed83a8, 0x83359033}, - {0xed83a9, 0x83359034}, - {0xed83aa, 0x83359035}, - {0xed83ab, 0x83359036}, - {0xed83ac, 0x83359037}, - {0xed83ad, 0x83359038}, - {0xed83ae, 0x83359039}, - {0xed83af, 0x83359130}, - {0xed83b0, 0x83359131}, - {0xed83b1, 0x83359132}, - {0xed83b2, 0x83359133}, - {0xed83b3, 0x83359134}, - {0xed83b4, 0x83359135}, - {0xed83b5, 0x83359136}, - {0xed83b6, 0x83359137}, - {0xed83b7, 0x83359138}, - {0xed83b8, 0x83359139}, - {0xed83b9, 0x83359230}, - {0xed83ba, 0x83359231}, - {0xed83bb, 0x83359232}, - {0xed83bc, 0x83359233}, - {0xed83bd, 0x83359234}, - {0xed83be, 0x83359235}, - {0xed83bf, 0x83359236}, - {0xed8480, 0x83359237}, - {0xed8481, 0x83359238}, - {0xed8482, 0x83359239}, - {0xed8483, 0x83359330}, - {0xed8484, 0x83359331}, - {0xed8485, 0x83359332}, - {0xed8486, 0x83359333}, - {0xed8487, 0x83359334}, - {0xed8488, 0x83359335}, - {0xed8489, 0x83359336}, - {0xed848a, 0x83359337}, - {0xed848b, 0x83359338}, - {0xed848c, 0x83359339}, - {0xed848d, 0x83359430}, - {0xed848e, 0x83359431}, - {0xed848f, 0x83359432}, - {0xed8490, 0x83359433}, - {0xed8491, 0x83359434}, - {0xed8492, 0x83359435}, - {0xed8493, 0x83359436}, - {0xed8494, 0x83359437}, - {0xed8495, 0x83359438}, - {0xed8496, 0x83359439}, - {0xed8497, 0x83359530}, - {0xed8498, 0x83359531}, - {0xed8499, 0x83359532}, - {0xed849a, 0x83359533}, - {0xed849b, 0x83359534}, - {0xed849c, 0x83359535}, - {0xed849d, 0x83359536}, - {0xed849e, 0x83359537}, - {0xed849f, 0x83359538}, - {0xed84a0, 0x83359539}, - {0xed84a1, 0x83359630}, - {0xed84a2, 0x83359631}, - {0xed84a3, 0x83359632}, - {0xed84a4, 0x83359633}, - {0xed84a5, 0x83359634}, - {0xed84a6, 0x83359635}, - {0xed84a7, 0x83359636}, - {0xed84a8, 0x83359637}, - {0xed84a9, 0x83359638}, - {0xed84aa, 0x83359639}, - {0xed84ab, 0x83359730}, - {0xed84ac, 0x83359731}, - {0xed84ad, 0x83359732}, - {0xed84ae, 0x83359733}, - {0xed84af, 0x83359734}, - {0xed84b0, 0x83359735}, - {0xed84b1, 0x83359736}, - {0xed84b2, 0x83359737}, - {0xed84b3, 0x83359738}, - {0xed84b4, 0x83359739}, - {0xed84b5, 0x83359830}, - {0xed84b6, 0x83359831}, - {0xed84b7, 0x83359832}, - {0xed84b8, 0x83359833}, - {0xed84b9, 0x83359834}, - {0xed84ba, 0x83359835}, - {0xed84bb, 0x83359836}, - {0xed84bc, 0x83359837}, - {0xed84bd, 0x83359838}, - {0xed84be, 0x83359839}, - {0xed84bf, 0x83359930}, - {0xed8580, 0x83359931}, - {0xed8581, 0x83359932}, - {0xed8582, 0x83359933}, - {0xed8583, 0x83359934}, - {0xed8584, 0x83359935}, - {0xed8585, 0x83359936}, - {0xed8586, 0x83359937}, - {0xed8587, 0x83359938}, - {0xed8588, 0x83359939}, - {0xed8589, 0x83359a30}, - {0xed858a, 0x83359a31}, - {0xed858b, 0x83359a32}, - {0xed858c, 0x83359a33}, - {0xed858d, 0x83359a34}, - {0xed858e, 0x83359a35}, - {0xed858f, 0x83359a36}, - {0xed8590, 0x83359a37}, - {0xed8591, 0x83359a38}, - {0xed8592, 0x83359a39}, - {0xed8593, 0x83359b30}, - {0xed8594, 0x83359b31}, - {0xed8595, 0x83359b32}, - {0xed8596, 0x83359b33}, - {0xed8597, 0x83359b34}, - {0xed8598, 0x83359b35}, - {0xed8599, 0x83359b36}, - {0xed859a, 0x83359b37}, - {0xed859b, 0x83359b38}, - {0xed859c, 0x83359b39}, - {0xed859d, 0x83359c30}, - {0xed859e, 0x83359c31}, - {0xed859f, 0x83359c32}, - {0xed85a0, 0x83359c33}, - {0xed85a1, 0x83359c34}, - {0xed85a2, 0x83359c35}, - {0xed85a3, 0x83359c36}, - {0xed85a4, 0x83359c37}, - {0xed85a5, 0x83359c38}, - {0xed85a6, 0x83359c39}, - {0xed85a7, 0x83359d30}, - {0xed85a8, 0x83359d31}, - {0xed85a9, 0x83359d32}, - {0xed85aa, 0x83359d33}, - {0xed85ab, 0x83359d34}, - {0xed85ac, 0x83359d35}, - {0xed85ad, 0x83359d36}, - {0xed85ae, 0x83359d37}, - {0xed85af, 0x83359d38}, - {0xed85b0, 0x83359d39}, - {0xed85b1, 0x83359e30}, - {0xed85b2, 0x83359e31}, - {0xed85b3, 0x83359e32}, - {0xed85b4, 0x83359e33}, - {0xed85b5, 0x83359e34}, - {0xed85b6, 0x83359e35}, - {0xed85b7, 0x83359e36}, - {0xed85b8, 0x83359e37}, - {0xed85b9, 0x83359e38}, - {0xed85ba, 0x83359e39}, - {0xed85bb, 0x83359f30}, - {0xed85bc, 0x83359f31}, - {0xed85bd, 0x83359f32}, - {0xed85be, 0x83359f33}, - {0xed85bf, 0x83359f34}, - {0xed8680, 0x83359f35}, - {0xed8681, 0x83359f36}, - {0xed8682, 0x83359f37}, - {0xed8683, 0x83359f38}, - {0xed8684, 0x83359f39}, - {0xed8685, 0x8335a030}, - {0xed8686, 0x8335a031}, - {0xed8687, 0x8335a032}, - {0xed8688, 0x8335a033}, - {0xed8689, 0x8335a034}, - {0xed868a, 0x8335a035}, - {0xed868b, 0x8335a036}, - {0xed868c, 0x8335a037}, - {0xed868d, 0x8335a038}, - {0xed868e, 0x8335a039}, - {0xed868f, 0x8335a130}, - {0xed8690, 0x8335a131}, - {0xed8691, 0x8335a132}, - {0xed8692, 0x8335a133}, - {0xed8693, 0x8335a134}, - {0xed8694, 0x8335a135}, - {0xed8695, 0x8335a136}, - {0xed8696, 0x8335a137}, - {0xed8697, 0x8335a138}, - {0xed8698, 0x8335a139}, - {0xed8699, 0x8335a230}, - {0xed869a, 0x8335a231}, - {0xed869b, 0x8335a232}, - {0xed869c, 0x8335a233}, - {0xed869d, 0x8335a234}, - {0xed869e, 0x8335a235}, - {0xed869f, 0x8335a236}, - {0xed86a0, 0x8335a237}, - {0xed86a1, 0x8335a238}, - {0xed86a2, 0x8335a239}, - {0xed86a3, 0x8335a330}, - {0xed86a4, 0x8335a331}, - {0xed86a5, 0x8335a332}, - {0xed86a6, 0x8335a333}, - {0xed86a7, 0x8335a334}, - {0xed86a8, 0x8335a335}, - {0xed86a9, 0x8335a336}, - {0xed86aa, 0x8335a337}, - {0xed86ab, 0x8335a338}, - {0xed86ac, 0x8335a339}, - {0xed86ad, 0x8335a430}, - {0xed86ae, 0x8335a431}, - {0xed86af, 0x8335a432}, - {0xed86b0, 0x8335a433}, - {0xed86b1, 0x8335a434}, - {0xed86b2, 0x8335a435}, - {0xed86b3, 0x8335a436}, - {0xed86b4, 0x8335a437}, - {0xed86b5, 0x8335a438}, - {0xed86b6, 0x8335a439}, - {0xed86b7, 0x8335a530}, - {0xed86b8, 0x8335a531}, - {0xed86b9, 0x8335a532}, - {0xed86ba, 0x8335a533}, - {0xed86bb, 0x8335a534}, - {0xed86bc, 0x8335a535}, - {0xed86bd, 0x8335a536}, - {0xed86be, 0x8335a537}, - {0xed86bf, 0x8335a538}, - {0xed8780, 0x8335a539}, - {0xed8781, 0x8335a630}, - {0xed8782, 0x8335a631}, - {0xed8783, 0x8335a632}, - {0xed8784, 0x8335a633}, - {0xed8785, 0x8335a634}, - {0xed8786, 0x8335a635}, - {0xed8787, 0x8335a636}, - {0xed8788, 0x8335a637}, - {0xed8789, 0x8335a638}, - {0xed878a, 0x8335a639}, - {0xed878b, 0x8335a730}, - {0xed878c, 0x8335a731}, - {0xed878d, 0x8335a732}, - {0xed878e, 0x8335a733}, - {0xed878f, 0x8335a734}, - {0xed8790, 0x8335a735}, - {0xed8791, 0x8335a736}, - {0xed8792, 0x8335a737}, - {0xed8793, 0x8335a738}, - {0xed8794, 0x8335a739}, - {0xed8795, 0x8335a830}, - {0xed8796, 0x8335a831}, - {0xed8797, 0x8335a832}, - {0xed8798, 0x8335a833}, - {0xed8799, 0x8335a834}, - {0xed879a, 0x8335a835}, - {0xed879b, 0x8335a836}, - {0xed879c, 0x8335a837}, - {0xed879d, 0x8335a838}, - {0xed879e, 0x8335a839}, - {0xed879f, 0x8335a930}, - {0xed87a0, 0x8335a931}, - {0xed87a1, 0x8335a932}, - {0xed87a2, 0x8335a933}, - {0xed87a3, 0x8335a934}, - {0xed87a4, 0x8335a935}, - {0xed87a5, 0x8335a936}, - {0xed87a6, 0x8335a937}, - {0xed87a7, 0x8335a938}, - {0xed87a8, 0x8335a939}, - {0xed87a9, 0x8335aa30}, - {0xed87aa, 0x8335aa31}, - {0xed87ab, 0x8335aa32}, - {0xed87ac, 0x8335aa33}, - {0xed87ad, 0x8335aa34}, - {0xed87ae, 0x8335aa35}, - {0xed87af, 0x8335aa36}, - {0xed87b0, 0x8335aa37}, - {0xed87b1, 0x8335aa38}, - {0xed87b2, 0x8335aa39}, - {0xed87b3, 0x8335ab30}, - {0xed87b4, 0x8335ab31}, - {0xed87b5, 0x8335ab32}, - {0xed87b6, 0x8335ab33}, - {0xed87b7, 0x8335ab34}, - {0xed87b8, 0x8335ab35}, - {0xed87b9, 0x8335ab36}, - {0xed87ba, 0x8335ab37}, - {0xed87bb, 0x8335ab38}, - {0xed87bc, 0x8335ab39}, - {0xed87bd, 0x8335ac30}, - {0xed87be, 0x8335ac31}, - {0xed87bf, 0x8335ac32}, - {0xed8880, 0x8335ac33}, - {0xed8881, 0x8335ac34}, - {0xed8882, 0x8335ac35}, - {0xed8883, 0x8335ac36}, - {0xed8884, 0x8335ac37}, - {0xed8885, 0x8335ac38}, - {0xed8886, 0x8335ac39}, - {0xed8887, 0x8335ad30}, - {0xed8888, 0x8335ad31}, - {0xed8889, 0x8335ad32}, - {0xed888a, 0x8335ad33}, - {0xed888b, 0x8335ad34}, - {0xed888c, 0x8335ad35}, - {0xed888d, 0x8335ad36}, - {0xed888e, 0x8335ad37}, - {0xed888f, 0x8335ad38}, - {0xed8890, 0x8335ad39}, - {0xed8891, 0x8335ae30}, - {0xed8892, 0x8335ae31}, - {0xed8893, 0x8335ae32}, - {0xed8894, 0x8335ae33}, - {0xed8895, 0x8335ae34}, - {0xed8896, 0x8335ae35}, - {0xed8897, 0x8335ae36}, - {0xed8898, 0x8335ae37}, - {0xed8899, 0x8335ae38}, - {0xed889a, 0x8335ae39}, - {0xed889b, 0x8335af30}, - {0xed889c, 0x8335af31}, - {0xed889d, 0x8335af32}, - {0xed889e, 0x8335af33}, - {0xed889f, 0x8335af34}, - {0xed88a0, 0x8335af35}, - {0xed88a1, 0x8335af36}, - {0xed88a2, 0x8335af37}, - {0xed88a3, 0x8335af38}, - {0xed88a4, 0x8335af39}, - {0xed88a5, 0x8335b030}, - {0xed88a6, 0x8335b031}, - {0xed88a7, 0x8335b032}, - {0xed88a8, 0x8335b033}, - {0xed88a9, 0x8335b034}, - {0xed88aa, 0x8335b035}, - {0xed88ab, 0x8335b036}, - {0xed88ac, 0x8335b037}, - {0xed88ad, 0x8335b038}, - {0xed88ae, 0x8335b039}, - {0xed88af, 0x8335b130}, - {0xed88b0, 0x8335b131}, - {0xed88b1, 0x8335b132}, - {0xed88b2, 0x8335b133}, - {0xed88b3, 0x8335b134}, - {0xed88b4, 0x8335b135}, - {0xed88b5, 0x8335b136}, - {0xed88b6, 0x8335b137}, - {0xed88b7, 0x8335b138}, - {0xed88b8, 0x8335b139}, - {0xed88b9, 0x8335b230}, - {0xed88ba, 0x8335b231}, - {0xed88bb, 0x8335b232}, - {0xed88bc, 0x8335b233}, - {0xed88bd, 0x8335b234}, - {0xed88be, 0x8335b235}, - {0xed88bf, 0x8335b236}, - {0xed8980, 0x8335b237}, - {0xed8981, 0x8335b238}, - {0xed8982, 0x8335b239}, - {0xed8983, 0x8335b330}, - {0xed8984, 0x8335b331}, - {0xed8985, 0x8335b332}, - {0xed8986, 0x8335b333}, - {0xed8987, 0x8335b334}, - {0xed8988, 0x8335b335}, - {0xed8989, 0x8335b336}, - {0xed898a, 0x8335b337}, - {0xed898b, 0x8335b338}, - {0xed898c, 0x8335b339}, - {0xed898d, 0x8335b430}, - {0xed898e, 0x8335b431}, - {0xed898f, 0x8335b432}, - {0xed8990, 0x8335b433}, - {0xed8991, 0x8335b434}, - {0xed8992, 0x8335b435}, - {0xed8993, 0x8335b436}, - {0xed8994, 0x8335b437}, - {0xed8995, 0x8335b438}, - {0xed8996, 0x8335b439}, - {0xed8997, 0x8335b530}, - {0xed8998, 0x8335b531}, - {0xed8999, 0x8335b532}, - {0xed899a, 0x8335b533}, - {0xed899b, 0x8335b534}, - {0xed899c, 0x8335b535}, - {0xed899d, 0x8335b536}, - {0xed899e, 0x8335b537}, - {0xed899f, 0x8335b538}, - {0xed89a0, 0x8335b539}, - {0xed89a1, 0x8335b630}, - {0xed89a2, 0x8335b631}, - {0xed89a3, 0x8335b632}, - {0xed89a4, 0x8335b633}, - {0xed89a5, 0x8335b634}, - {0xed89a6, 0x8335b635}, - {0xed89a7, 0x8335b636}, - {0xed89a8, 0x8335b637}, - {0xed89a9, 0x8335b638}, - {0xed89aa, 0x8335b639}, - {0xed89ab, 0x8335b730}, - {0xed89ac, 0x8335b731}, - {0xed89ad, 0x8335b732}, - {0xed89ae, 0x8335b733}, - {0xed89af, 0x8335b734}, - {0xed89b0, 0x8335b735}, - {0xed89b1, 0x8335b736}, - {0xed89b2, 0x8335b737}, - {0xed89b3, 0x8335b738}, - {0xed89b4, 0x8335b739}, - {0xed89b5, 0x8335b830}, - {0xed89b6, 0x8335b831}, - {0xed89b7, 0x8335b832}, - {0xed89b8, 0x8335b833}, - {0xed89b9, 0x8335b834}, - {0xed89ba, 0x8335b835}, - {0xed89bb, 0x8335b836}, - {0xed89bc, 0x8335b837}, - {0xed89bd, 0x8335b838}, - {0xed89be, 0x8335b839}, - {0xed89bf, 0x8335b930}, - {0xed8a80, 0x8335b931}, - {0xed8a81, 0x8335b932}, - {0xed8a82, 0x8335b933}, - {0xed8a83, 0x8335b934}, - {0xed8a84, 0x8335b935}, - {0xed8a85, 0x8335b936}, - {0xed8a86, 0x8335b937}, - {0xed8a87, 0x8335b938}, - {0xed8a88, 0x8335b939}, - {0xed8a89, 0x8335ba30}, - {0xed8a8a, 0x8335ba31}, - {0xed8a8b, 0x8335ba32}, - {0xed8a8c, 0x8335ba33}, - {0xed8a8d, 0x8335ba34}, - {0xed8a8e, 0x8335ba35}, - {0xed8a8f, 0x8335ba36}, - {0xed8a90, 0x8335ba37}, - {0xed8a91, 0x8335ba38}, - {0xed8a92, 0x8335ba39}, - {0xed8a93, 0x8335bb30}, - {0xed8a94, 0x8335bb31}, - {0xed8a95, 0x8335bb32}, - {0xed8a96, 0x8335bb33}, - {0xed8a97, 0x8335bb34}, - {0xed8a98, 0x8335bb35}, - {0xed8a99, 0x8335bb36}, - {0xed8a9a, 0x8335bb37}, - {0xed8a9b, 0x8335bb38}, - {0xed8a9c, 0x8335bb39}, - {0xed8a9d, 0x8335bc30}, - {0xed8a9e, 0x8335bc31}, - {0xed8a9f, 0x8335bc32}, - {0xed8aa0, 0x8335bc33}, - {0xed8aa1, 0x8335bc34}, - {0xed8aa2, 0x8335bc35}, - {0xed8aa3, 0x8335bc36}, - {0xed8aa4, 0x8335bc37}, - {0xed8aa5, 0x8335bc38}, - {0xed8aa6, 0x8335bc39}, - {0xed8aa7, 0x8335bd30}, - {0xed8aa8, 0x8335bd31}, - {0xed8aa9, 0x8335bd32}, - {0xed8aaa, 0x8335bd33}, - {0xed8aab, 0x8335bd34}, - {0xed8aac, 0x8335bd35}, - {0xed8aad, 0x8335bd36}, - {0xed8aae, 0x8335bd37}, - {0xed8aaf, 0x8335bd38}, - {0xed8ab0, 0x8335bd39}, - {0xed8ab1, 0x8335be30}, - {0xed8ab2, 0x8335be31}, - {0xed8ab3, 0x8335be32}, - {0xed8ab4, 0x8335be33}, - {0xed8ab5, 0x8335be34}, - {0xed8ab6, 0x8335be35}, - {0xed8ab7, 0x8335be36}, - {0xed8ab8, 0x8335be37}, - {0xed8ab9, 0x8335be38}, - {0xed8aba, 0x8335be39}, - {0xed8abb, 0x8335bf30}, - {0xed8abc, 0x8335bf31}, - {0xed8abd, 0x8335bf32}, - {0xed8abe, 0x8335bf33}, - {0xed8abf, 0x8335bf34}, - {0xed8b80, 0x8335bf35}, - {0xed8b81, 0x8335bf36}, - {0xed8b82, 0x8335bf37}, - {0xed8b83, 0x8335bf38}, - {0xed8b84, 0x8335bf39}, - {0xed8b85, 0x8335c030}, - {0xed8b86, 0x8335c031}, - {0xed8b87, 0x8335c032}, - {0xed8b88, 0x8335c033}, - {0xed8b89, 0x8335c034}, - {0xed8b8a, 0x8335c035}, - {0xed8b8b, 0x8335c036}, - {0xed8b8c, 0x8335c037}, - {0xed8b8d, 0x8335c038}, - {0xed8b8e, 0x8335c039}, - {0xed8b8f, 0x8335c130}, - {0xed8b90, 0x8335c131}, - {0xed8b91, 0x8335c132}, - {0xed8b92, 0x8335c133}, - {0xed8b93, 0x8335c134}, - {0xed8b94, 0x8335c135}, - {0xed8b95, 0x8335c136}, - {0xed8b96, 0x8335c137}, - {0xed8b97, 0x8335c138}, - {0xed8b98, 0x8335c139}, - {0xed8b99, 0x8335c230}, - {0xed8b9a, 0x8335c231}, - {0xed8b9b, 0x8335c232}, - {0xed8b9c, 0x8335c233}, - {0xed8b9d, 0x8335c234}, - {0xed8b9e, 0x8335c235}, - {0xed8b9f, 0x8335c236}, - {0xed8ba0, 0x8335c237}, - {0xed8ba1, 0x8335c238}, - {0xed8ba2, 0x8335c239}, - {0xed8ba3, 0x8335c330}, - {0xed8ba4, 0x8335c331}, - {0xed8ba5, 0x8335c332}, - {0xed8ba6, 0x8335c333}, - {0xed8ba7, 0x8335c334}, - {0xed8ba8, 0x8335c335}, - {0xed8ba9, 0x8335c336}, - {0xed8baa, 0x8335c337}, - {0xed8bab, 0x8335c338}, - {0xed8bac, 0x8335c339}, - {0xed8bad, 0x8335c430}, - {0xed8bae, 0x8335c431}, - {0xed8baf, 0x8335c432}, - {0xed8bb0, 0x8335c433}, - {0xed8bb1, 0x8335c434}, - {0xed8bb2, 0x8335c435}, - {0xed8bb3, 0x8335c436}, - {0xed8bb4, 0x8335c437}, - {0xed8bb5, 0x8335c438}, - {0xed8bb6, 0x8335c439}, - {0xed8bb7, 0x8335c530}, - {0xed8bb8, 0x8335c531}, - {0xed8bb9, 0x8335c532}, - {0xed8bba, 0x8335c533}, - {0xed8bbb, 0x8335c534}, - {0xed8bbc, 0x8335c535}, - {0xed8bbd, 0x8335c536}, - {0xed8bbe, 0x8335c537}, - {0xed8bbf, 0x8335c538}, - {0xed8c80, 0x8335c539}, - {0xed8c81, 0x8335c630}, - {0xed8c82, 0x8335c631}, - {0xed8c83, 0x8335c632}, - {0xed8c84, 0x8335c633}, - {0xed8c85, 0x8335c634}, - {0xed8c86, 0x8335c635}, - {0xed8c87, 0x8335c636}, - {0xed8c88, 0x8335c637}, - {0xed8c89, 0x8335c638}, - {0xed8c8a, 0x8335c639}, - {0xed8c8b, 0x8335c730}, - {0xed8c8c, 0x8335c731}, - {0xed8c8d, 0x8335c732}, - {0xed8c8e, 0x8335c733}, - {0xed8c8f, 0x8335c734}, - {0xed8c90, 0x8335c735}, - {0xed8c91, 0x8335c736}, - {0xed8c92, 0x8335c737}, - {0xed8c93, 0x8335c738}, - {0xed8c94, 0x8335c739}, - {0xed8c95, 0x8335c830}, - {0xed8c96, 0x8335c831}, - {0xed8c97, 0x8335c832}, - {0xed8c98, 0x8335c833}, - {0xed8c99, 0x8335c834}, - {0xed8c9a, 0x8335c835}, - {0xed8c9b, 0x8335c836}, - {0xed8c9c, 0x8335c837}, - {0xed8c9d, 0x8335c838}, - {0xed8c9e, 0x8335c839}, - {0xed8c9f, 0x8335c930}, - {0xed8ca0, 0x8335c931}, - {0xed8ca1, 0x8335c932}, - {0xed8ca2, 0x8335c933}, - {0xed8ca3, 0x8335c934}, - {0xed8ca4, 0x8335c935}, - {0xed8ca5, 0x8335c936}, - {0xed8ca6, 0x8335c937}, - {0xed8ca7, 0x8335c938}, - {0xed8ca8, 0x8335c939}, - {0xed8ca9, 0x8335ca30}, - {0xed8caa, 0x8335ca31}, - {0xed8cab, 0x8335ca32}, - {0xed8cac, 0x8335ca33}, - {0xed8cad, 0x8335ca34}, - {0xed8cae, 0x8335ca35}, - {0xed8caf, 0x8335ca36}, - {0xed8cb0, 0x8335ca37}, - {0xed8cb1, 0x8335ca38}, - {0xed8cb2, 0x8335ca39}, - {0xed8cb3, 0x8335cb30}, - {0xed8cb4, 0x8335cb31}, - {0xed8cb5, 0x8335cb32}, - {0xed8cb6, 0x8335cb33}, - {0xed8cb7, 0x8335cb34}, - {0xed8cb8, 0x8335cb35}, - {0xed8cb9, 0x8335cb36}, - {0xed8cba, 0x8335cb37}, - {0xed8cbb, 0x8335cb38}, - {0xed8cbc, 0x8335cb39}, - {0xed8cbd, 0x8335cc30}, - {0xed8cbe, 0x8335cc31}, - {0xed8cbf, 0x8335cc32}, - {0xed8d80, 0x8335cc33}, - {0xed8d81, 0x8335cc34}, - {0xed8d82, 0x8335cc35}, - {0xed8d83, 0x8335cc36}, - {0xed8d84, 0x8335cc37}, - {0xed8d85, 0x8335cc38}, - {0xed8d86, 0x8335cc39}, - {0xed8d87, 0x8335cd30}, - {0xed8d88, 0x8335cd31}, - {0xed8d89, 0x8335cd32}, - {0xed8d8a, 0x8335cd33}, - {0xed8d8b, 0x8335cd34}, - {0xed8d8c, 0x8335cd35}, - {0xed8d8d, 0x8335cd36}, - {0xed8d8e, 0x8335cd37}, - {0xed8d8f, 0x8335cd38}, - {0xed8d90, 0x8335cd39}, - {0xed8d91, 0x8335ce30}, - {0xed8d92, 0x8335ce31}, - {0xed8d93, 0x8335ce32}, - {0xed8d94, 0x8335ce33}, - {0xed8d95, 0x8335ce34}, - {0xed8d96, 0x8335ce35}, - {0xed8d97, 0x8335ce36}, - {0xed8d98, 0x8335ce37}, - {0xed8d99, 0x8335ce38}, - {0xed8d9a, 0x8335ce39}, - {0xed8d9b, 0x8335cf30}, - {0xed8d9c, 0x8335cf31}, - {0xed8d9d, 0x8335cf32}, - {0xed8d9e, 0x8335cf33}, - {0xed8d9f, 0x8335cf34}, - {0xed8da0, 0x8335cf35}, - {0xed8da1, 0x8335cf36}, - {0xed8da2, 0x8335cf37}, - {0xed8da3, 0x8335cf38}, - {0xed8da4, 0x8335cf39}, - {0xed8da5, 0x8335d030}, - {0xed8da6, 0x8335d031}, - {0xed8da7, 0x8335d032}, - {0xed8da8, 0x8335d033}, - {0xed8da9, 0x8335d034}, - {0xed8daa, 0x8335d035}, - {0xed8dab, 0x8335d036}, - {0xed8dac, 0x8335d037}, - {0xed8dad, 0x8335d038}, - {0xed8dae, 0x8335d039}, - {0xed8daf, 0x8335d130}, - {0xed8db0, 0x8335d131}, - {0xed8db1, 0x8335d132}, - {0xed8db2, 0x8335d133}, - {0xed8db3, 0x8335d134}, - {0xed8db4, 0x8335d135}, - {0xed8db5, 0x8335d136}, - {0xed8db6, 0x8335d137}, - {0xed8db7, 0x8335d138}, - {0xed8db8, 0x8335d139}, - {0xed8db9, 0x8335d230}, - {0xed8dba, 0x8335d231}, - {0xed8dbb, 0x8335d232}, - {0xed8dbc, 0x8335d233}, - {0xed8dbd, 0x8335d234}, - {0xed8dbe, 0x8335d235}, - {0xed8dbf, 0x8335d236}, - {0xed8e80, 0x8335d237}, - {0xed8e81, 0x8335d238}, - {0xed8e82, 0x8335d239}, - {0xed8e83, 0x8335d330}, - {0xed8e84, 0x8335d331}, - {0xed8e85, 0x8335d332}, - {0xed8e86, 0x8335d333}, - {0xed8e87, 0x8335d334}, - {0xed8e88, 0x8335d335}, - {0xed8e89, 0x8335d336}, - {0xed8e8a, 0x8335d337}, - {0xed8e8b, 0x8335d338}, - {0xed8e8c, 0x8335d339}, - {0xed8e8d, 0x8335d430}, - {0xed8e8e, 0x8335d431}, - {0xed8e8f, 0x8335d432}, - {0xed8e90, 0x8335d433}, - {0xed8e91, 0x8335d434}, - {0xed8e92, 0x8335d435}, - {0xed8e93, 0x8335d436}, - {0xed8e94, 0x8335d437}, - {0xed8e95, 0x8335d438}, - {0xed8e96, 0x8335d439}, - {0xed8e97, 0x8335d530}, - {0xed8e98, 0x8335d531}, - {0xed8e99, 0x8335d532}, - {0xed8e9a, 0x8335d533}, - {0xed8e9b, 0x8335d534}, - {0xed8e9c, 0x8335d535}, - {0xed8e9d, 0x8335d536}, - {0xed8e9e, 0x8335d537}, - {0xed8e9f, 0x8335d538}, - {0xed8ea0, 0x8335d539}, - {0xed8ea1, 0x8335d630}, - {0xed8ea2, 0x8335d631}, - {0xed8ea3, 0x8335d632}, - {0xed8ea4, 0x8335d633}, - {0xed8ea5, 0x8335d634}, - {0xed8ea6, 0x8335d635}, - {0xed8ea7, 0x8335d636}, - {0xed8ea8, 0x8335d637}, - {0xed8ea9, 0x8335d638}, - {0xed8eaa, 0x8335d639}, - {0xed8eab, 0x8335d730}, - {0xed8eac, 0x8335d731}, - {0xed8ead, 0x8335d732}, - {0xed8eae, 0x8335d733}, - {0xed8eaf, 0x8335d734}, - {0xed8eb0, 0x8335d735}, - {0xed8eb1, 0x8335d736}, - {0xed8eb2, 0x8335d737}, - {0xed8eb3, 0x8335d738}, - {0xed8eb4, 0x8335d739}, - {0xed8eb5, 0x8335d830}, - {0xed8eb6, 0x8335d831}, - {0xed8eb7, 0x8335d832}, - {0xed8eb8, 0x8335d833}, - {0xed8eb9, 0x8335d834}, - {0xed8eba, 0x8335d835}, - {0xed8ebb, 0x8335d836}, - {0xed8ebc, 0x8335d837}, - {0xed8ebd, 0x8335d838}, - {0xed8ebe, 0x8335d839}, - {0xed8ebf, 0x8335d930}, - {0xed8f80, 0x8335d931}, - {0xed8f81, 0x8335d932}, - {0xed8f82, 0x8335d933}, - {0xed8f83, 0x8335d934}, - {0xed8f84, 0x8335d935}, - {0xed8f85, 0x8335d936}, - {0xed8f86, 0x8335d937}, - {0xed8f87, 0x8335d938}, - {0xed8f88, 0x8335d939}, - {0xed8f89, 0x8335da30}, - {0xed8f8a, 0x8335da31}, - {0xed8f8b, 0x8335da32}, - {0xed8f8c, 0x8335da33}, - {0xed8f8d, 0x8335da34}, - {0xed8f8e, 0x8335da35}, - {0xed8f8f, 0x8335da36}, - {0xed8f90, 0x8335da37}, - {0xed8f91, 0x8335da38}, - {0xed8f92, 0x8335da39}, - {0xed8f93, 0x8335db30}, - {0xed8f94, 0x8335db31}, - {0xed8f95, 0x8335db32}, - {0xed8f96, 0x8335db33}, - {0xed8f97, 0x8335db34}, - {0xed8f98, 0x8335db35}, - {0xed8f99, 0x8335db36}, - {0xed8f9a, 0x8335db37}, - {0xed8f9b, 0x8335db38}, - {0xed8f9c, 0x8335db39}, - {0xed8f9d, 0x8335dc30}, - {0xed8f9e, 0x8335dc31}, - {0xed8f9f, 0x8335dc32}, - {0xed8fa0, 0x8335dc33}, - {0xed8fa1, 0x8335dc34}, - {0xed8fa2, 0x8335dc35}, - {0xed8fa3, 0x8335dc36}, - {0xed8fa4, 0x8335dc37}, - {0xed8fa5, 0x8335dc38}, - {0xed8fa6, 0x8335dc39}, - {0xed8fa7, 0x8335dd30}, - {0xed8fa8, 0x8335dd31}, - {0xed8fa9, 0x8335dd32}, - {0xed8faa, 0x8335dd33}, - {0xed8fab, 0x8335dd34}, - {0xed8fac, 0x8335dd35}, - {0xed8fad, 0x8335dd36}, - {0xed8fae, 0x8335dd37}, - {0xed8faf, 0x8335dd38}, - {0xed8fb0, 0x8335dd39}, - {0xed8fb1, 0x8335de30}, - {0xed8fb2, 0x8335de31}, - {0xed8fb3, 0x8335de32}, - {0xed8fb4, 0x8335de33}, - {0xed8fb5, 0x8335de34}, - {0xed8fb6, 0x8335de35}, - {0xed8fb7, 0x8335de36}, - {0xed8fb8, 0x8335de37}, - {0xed8fb9, 0x8335de38}, - {0xed8fba, 0x8335de39}, - {0xed8fbb, 0x8335df30}, - {0xed8fbc, 0x8335df31}, - {0xed8fbd, 0x8335df32}, - {0xed8fbe, 0x8335df33}, - {0xed8fbf, 0x8335df34}, - {0xed9080, 0x8335df35}, - {0xed9081, 0x8335df36}, - {0xed9082, 0x8335df37}, - {0xed9083, 0x8335df38}, - {0xed9084, 0x8335df39}, - {0xed9085, 0x8335e030}, - {0xed9086, 0x8335e031}, - {0xed9087, 0x8335e032}, - {0xed9088, 0x8335e033}, - {0xed9089, 0x8335e034}, - {0xed908a, 0x8335e035}, - {0xed908b, 0x8335e036}, - {0xed908c, 0x8335e037}, - {0xed908d, 0x8335e038}, - {0xed908e, 0x8335e039}, - {0xed908f, 0x8335e130}, - {0xed9090, 0x8335e131}, - {0xed9091, 0x8335e132}, - {0xed9092, 0x8335e133}, - {0xed9093, 0x8335e134}, - {0xed9094, 0x8335e135}, - {0xed9095, 0x8335e136}, - {0xed9096, 0x8335e137}, - {0xed9097, 0x8335e138}, - {0xed9098, 0x8335e139}, - {0xed9099, 0x8335e230}, - {0xed909a, 0x8335e231}, - {0xed909b, 0x8335e232}, - {0xed909c, 0x8335e233}, - {0xed909d, 0x8335e234}, - {0xed909e, 0x8335e235}, - {0xed909f, 0x8335e236}, - {0xed90a0, 0x8335e237}, - {0xed90a1, 0x8335e238}, - {0xed90a2, 0x8335e239}, - {0xed90a3, 0x8335e330}, - {0xed90a4, 0x8335e331}, - {0xed90a5, 0x8335e332}, - {0xed90a6, 0x8335e333}, - {0xed90a7, 0x8335e334}, - {0xed90a8, 0x8335e335}, - {0xed90a9, 0x8335e336}, - {0xed90aa, 0x8335e337}, - {0xed90ab, 0x8335e338}, - {0xed90ac, 0x8335e339}, - {0xed90ad, 0x8335e430}, - {0xed90ae, 0x8335e431}, - {0xed90af, 0x8335e432}, - {0xed90b0, 0x8335e433}, - {0xed90b1, 0x8335e434}, - {0xed90b2, 0x8335e435}, - {0xed90b3, 0x8335e436}, - {0xed90b4, 0x8335e437}, - {0xed90b5, 0x8335e438}, - {0xed90b6, 0x8335e439}, - {0xed90b7, 0x8335e530}, - {0xed90b8, 0x8335e531}, - {0xed90b9, 0x8335e532}, - {0xed90ba, 0x8335e533}, - {0xed90bb, 0x8335e534}, - {0xed90bc, 0x8335e535}, - {0xed90bd, 0x8335e536}, - {0xed90be, 0x8335e537}, - {0xed90bf, 0x8335e538}, - {0xed9180, 0x8335e539}, - {0xed9181, 0x8335e630}, - {0xed9182, 0x8335e631}, - {0xed9183, 0x8335e632}, - {0xed9184, 0x8335e633}, - {0xed9185, 0x8335e634}, - {0xed9186, 0x8335e635}, - {0xed9187, 0x8335e636}, - {0xed9188, 0x8335e637}, - {0xed9189, 0x8335e638}, - {0xed918a, 0x8335e639}, - {0xed918b, 0x8335e730}, - {0xed918c, 0x8335e731}, - {0xed918d, 0x8335e732}, - {0xed918e, 0x8335e733}, - {0xed918f, 0x8335e734}, - {0xed9190, 0x8335e735}, - {0xed9191, 0x8335e736}, - {0xed9192, 0x8335e737}, - {0xed9193, 0x8335e738}, - {0xed9194, 0x8335e739}, - {0xed9195, 0x8335e830}, - {0xed9196, 0x8335e831}, - {0xed9197, 0x8335e832}, - {0xed9198, 0x8335e833}, - {0xed9199, 0x8335e834}, - {0xed919a, 0x8335e835}, - {0xed919b, 0x8335e836}, - {0xed919c, 0x8335e837}, - {0xed919d, 0x8335e838}, - {0xed919e, 0x8335e839}, - {0xed919f, 0x8335e930}, - {0xed91a0, 0x8335e931}, - {0xed91a1, 0x8335e932}, - {0xed91a2, 0x8335e933}, - {0xed91a3, 0x8335e934}, - {0xed91a4, 0x8335e935}, - {0xed91a5, 0x8335e936}, - {0xed91a6, 0x8335e937}, - {0xed91a7, 0x8335e938}, - {0xed91a8, 0x8335e939}, - {0xed91a9, 0x8335ea30}, - {0xed91aa, 0x8335ea31}, - {0xed91ab, 0x8335ea32}, - {0xed91ac, 0x8335ea33}, - {0xed91ad, 0x8335ea34}, - {0xed91ae, 0x8335ea35}, - {0xed91af, 0x8335ea36}, - {0xed91b0, 0x8335ea37}, - {0xed91b1, 0x8335ea38}, - {0xed91b2, 0x8335ea39}, - {0xed91b3, 0x8335eb30}, - {0xed91b4, 0x8335eb31}, - {0xed91b5, 0x8335eb32}, - {0xed91b6, 0x8335eb33}, - {0xed91b7, 0x8335eb34}, - {0xed91b8, 0x8335eb35}, - {0xed91b9, 0x8335eb36}, - {0xed91ba, 0x8335eb37}, - {0xed91bb, 0x8335eb38}, - {0xed91bc, 0x8335eb39}, - {0xed91bd, 0x8335ec30}, - {0xed91be, 0x8335ec31}, - {0xed91bf, 0x8335ec32}, - {0xed9280, 0x8335ec33}, - {0xed9281, 0x8335ec34}, - {0xed9282, 0x8335ec35}, - {0xed9283, 0x8335ec36}, - {0xed9284, 0x8335ec37}, - {0xed9285, 0x8335ec38}, - {0xed9286, 0x8335ec39}, - {0xed9287, 0x8335ed30}, - {0xed9288, 0x8335ed31}, - {0xed9289, 0x8335ed32}, - {0xed928a, 0x8335ed33}, - {0xed928b, 0x8335ed34}, - {0xed928c, 0x8335ed35}, - {0xed928d, 0x8335ed36}, - {0xed928e, 0x8335ed37}, - {0xed928f, 0x8335ed38}, - {0xed9290, 0x8335ed39}, - {0xed9291, 0x8335ee30}, - {0xed9292, 0x8335ee31}, - {0xed9293, 0x8335ee32}, - {0xed9294, 0x8335ee33}, - {0xed9295, 0x8335ee34}, - {0xed9296, 0x8335ee35}, - {0xed9297, 0x8335ee36}, - {0xed9298, 0x8335ee37}, - {0xed9299, 0x8335ee38}, - {0xed929a, 0x8335ee39}, - {0xed929b, 0x8335ef30}, - {0xed929c, 0x8335ef31}, - {0xed929d, 0x8335ef32}, - {0xed929e, 0x8335ef33}, - {0xed929f, 0x8335ef34}, - {0xed92a0, 0x8335ef35}, - {0xed92a1, 0x8335ef36}, - {0xed92a2, 0x8335ef37}, - {0xed92a3, 0x8335ef38}, - {0xed92a4, 0x8335ef39}, - {0xed92a5, 0x8335f030}, - {0xed92a6, 0x8335f031}, - {0xed92a7, 0x8335f032}, - {0xed92a8, 0x8335f033}, - {0xed92a9, 0x8335f034}, - {0xed92aa, 0x8335f035}, - {0xed92ab, 0x8335f036}, - {0xed92ac, 0x8335f037}, - {0xed92ad, 0x8335f038}, - {0xed92ae, 0x8335f039}, - {0xed92af, 0x8335f130}, - {0xed92b0, 0x8335f131}, - {0xed92b1, 0x8335f132}, - {0xed92b2, 0x8335f133}, - {0xed92b3, 0x8335f134}, - {0xed92b4, 0x8335f135}, - {0xed92b5, 0x8335f136}, - {0xed92b6, 0x8335f137}, - {0xed92b7, 0x8335f138}, - {0xed92b8, 0x8335f139}, - {0xed92b9, 0x8335f230}, - {0xed92ba, 0x8335f231}, - {0xed92bb, 0x8335f232}, - {0xed92bc, 0x8335f233}, - {0xed92bd, 0x8335f234}, - {0xed92be, 0x8335f235}, - {0xed92bf, 0x8335f236}, - {0xed9380, 0x8335f237}, - {0xed9381, 0x8335f238}, - {0xed9382, 0x8335f239}, - {0xed9383, 0x8335f330}, - {0xed9384, 0x8335f331}, - {0xed9385, 0x8335f332}, - {0xed9386, 0x8335f333}, - {0xed9387, 0x8335f334}, - {0xed9388, 0x8335f335}, - {0xed9389, 0x8335f336}, - {0xed938a, 0x8335f337}, - {0xed938b, 0x8335f338}, - {0xed938c, 0x8335f339}, - {0xed938d, 0x8335f430}, - {0xed938e, 0x8335f431}, - {0xed938f, 0x8335f432}, - {0xed9390, 0x8335f433}, - {0xed9391, 0x8335f434}, - {0xed9392, 0x8335f435}, - {0xed9393, 0x8335f436}, - {0xed9394, 0x8335f437}, - {0xed9395, 0x8335f438}, - {0xed9396, 0x8335f439}, - {0xed9397, 0x8335f530}, - {0xed9398, 0x8335f531}, - {0xed9399, 0x8335f532}, - {0xed939a, 0x8335f533}, - {0xed939b, 0x8335f534}, - {0xed939c, 0x8335f535}, - {0xed939d, 0x8335f536}, - {0xed939e, 0x8335f537}, - {0xed939f, 0x8335f538}, - {0xed93a0, 0x8335f539}, - {0xed93a1, 0x8335f630}, - {0xed93a2, 0x8335f631}, - {0xed93a3, 0x8335f632}, - {0xed93a4, 0x8335f633}, - {0xed93a5, 0x8335f634}, - {0xed93a6, 0x8335f635}, - {0xed93a7, 0x8335f636}, - {0xed93a8, 0x8335f637}, - {0xed93a9, 0x8335f638}, - {0xed93aa, 0x8335f639}, - {0xed93ab, 0x8335f730}, - {0xed93ac, 0x8335f731}, - {0xed93ad, 0x8335f732}, - {0xed93ae, 0x8335f733}, - {0xed93af, 0x8335f734}, - {0xed93b0, 0x8335f735}, - {0xed93b1, 0x8335f736}, - {0xed93b2, 0x8335f737}, - {0xed93b3, 0x8335f738}, - {0xed93b4, 0x8335f739}, - {0xed93b5, 0x8335f830}, - {0xed93b6, 0x8335f831}, - {0xed93b7, 0x8335f832}, - {0xed93b8, 0x8335f833}, - {0xed93b9, 0x8335f834}, - {0xed93ba, 0x8335f835}, - {0xed93bb, 0x8335f836}, - {0xed93bc, 0x8335f837}, - {0xed93bd, 0x8335f838}, - {0xed93be, 0x8335f839}, - {0xed93bf, 0x8335f930}, - {0xed9480, 0x8335f931}, - {0xed9481, 0x8335f932}, - {0xed9482, 0x8335f933}, - {0xed9483, 0x8335f934}, - {0xed9484, 0x8335f935}, - {0xed9485, 0x8335f936}, - {0xed9486, 0x8335f937}, - {0xed9487, 0x8335f938}, - {0xed9488, 0x8335f939}, - {0xed9489, 0x8335fa30}, - {0xed948a, 0x8335fa31}, - {0xed948b, 0x8335fa32}, - {0xed948c, 0x8335fa33}, - {0xed948d, 0x8335fa34}, - {0xed948e, 0x8335fa35}, - {0xed948f, 0x8335fa36}, - {0xed9490, 0x8335fa37}, - {0xed9491, 0x8335fa38}, - {0xed9492, 0x8335fa39}, - {0xed9493, 0x8335fb30}, - {0xed9494, 0x8335fb31}, - {0xed9495, 0x8335fb32}, - {0xed9496, 0x8335fb33}, - {0xed9497, 0x8335fb34}, - {0xed9498, 0x8335fb35}, - {0xed9499, 0x8335fb36}, - {0xed949a, 0x8335fb37}, - {0xed949b, 0x8335fb38}, - {0xed949c, 0x8335fb39}, - {0xed949d, 0x8335fc30}, - {0xed949e, 0x8335fc31}, - {0xed949f, 0x8335fc32}, - {0xed94a0, 0x8335fc33}, - {0xed94a1, 0x8335fc34}, - {0xed94a2, 0x8335fc35}, - {0xed94a3, 0x8335fc36}, - {0xed94a4, 0x8335fc37}, - {0xed94a5, 0x8335fc38}, - {0xed94a6, 0x8335fc39}, - {0xed94a7, 0x8335fd30}, - {0xed94a8, 0x8335fd31}, - {0xed94a9, 0x8335fd32}, - {0xed94aa, 0x8335fd33}, - {0xed94ab, 0x8335fd34}, - {0xed94ac, 0x8335fd35}, - {0xed94ad, 0x8335fd36}, - {0xed94ae, 0x8335fd37}, - {0xed94af, 0x8335fd38}, - {0xed94b0, 0x8335fd39}, - {0xed94b1, 0x8335fe30}, - {0xed94b2, 0x8335fe31}, - {0xed94b3, 0x8335fe32}, - {0xed94b4, 0x8335fe33}, - {0xed94b5, 0x8335fe34}, - {0xed94b6, 0x8335fe35}, - {0xed94b7, 0x8335fe36}, - {0xed94b8, 0x8335fe37}, - {0xed94b9, 0x8335fe38}, - {0xed94ba, 0x8335fe39}, - {0xed94bb, 0x83368130}, - {0xed94bc, 0x83368131}, - {0xed94bd, 0x83368132}, - {0xed94be, 0x83368133}, - {0xed94bf, 0x83368134}, - {0xed9580, 0x83368135}, - {0xed9581, 0x83368136}, - {0xed9582, 0x83368137}, - {0xed9583, 0x83368138}, - {0xed9584, 0x83368139}, - {0xed9585, 0x83368230}, - {0xed9586, 0x83368231}, - {0xed9587, 0x83368232}, - {0xed9588, 0x83368233}, - {0xed9589, 0x83368234}, - {0xed958a, 0x83368235}, - {0xed958b, 0x83368236}, - {0xed958c, 0x83368237}, - {0xed958d, 0x83368238}, - {0xed958e, 0x83368239}, - {0xed958f, 0x83368330}, - {0xed9590, 0x83368331}, - {0xed9591, 0x83368332}, - {0xed9592, 0x83368333}, - {0xed9593, 0x83368334}, - {0xed9594, 0x83368335}, - {0xed9595, 0x83368336}, - {0xed9596, 0x83368337}, - {0xed9597, 0x83368338}, - {0xed9598, 0x83368339}, - {0xed9599, 0x83368430}, - {0xed959a, 0x83368431}, - {0xed959b, 0x83368432}, - {0xed959c, 0x83368433}, - {0xed959d, 0x83368434}, - {0xed959e, 0x83368435}, - {0xed959f, 0x83368436}, - {0xed95a0, 0x83368437}, - {0xed95a1, 0x83368438}, - {0xed95a2, 0x83368439}, - {0xed95a3, 0x83368530}, - {0xed95a4, 0x83368531}, - {0xed95a5, 0x83368532}, - {0xed95a6, 0x83368533}, - {0xed95a7, 0x83368534}, - {0xed95a8, 0x83368535}, - {0xed95a9, 0x83368536}, - {0xed95aa, 0x83368537}, - {0xed95ab, 0x83368538}, - {0xed95ac, 0x83368539}, - {0xed95ad, 0x83368630}, - {0xed95ae, 0x83368631}, - {0xed95af, 0x83368632}, - {0xed95b0, 0x83368633}, - {0xed95b1, 0x83368634}, - {0xed95b2, 0x83368635}, - {0xed95b3, 0x83368636}, - {0xed95b4, 0x83368637}, - {0xed95b5, 0x83368638}, - {0xed95b6, 0x83368639}, - {0xed95b7, 0x83368730}, - {0xed95b8, 0x83368731}, - {0xed95b9, 0x83368732}, - {0xed95ba, 0x83368733}, - {0xed95bb, 0x83368734}, - {0xed95bc, 0x83368735}, - {0xed95bd, 0x83368736}, - {0xed95be, 0x83368737}, - {0xed95bf, 0x83368738}, - {0xed9680, 0x83368739}, - {0xed9681, 0x83368830}, - {0xed9682, 0x83368831}, - {0xed9683, 0x83368832}, - {0xed9684, 0x83368833}, - {0xed9685, 0x83368834}, - {0xed9686, 0x83368835}, - {0xed9687, 0x83368836}, - {0xed9688, 0x83368837}, - {0xed9689, 0x83368838}, - {0xed968a, 0x83368839}, - {0xed968b, 0x83368930}, - {0xed968c, 0x83368931}, - {0xed968d, 0x83368932}, - {0xed968e, 0x83368933}, - {0xed968f, 0x83368934}, - {0xed9690, 0x83368935}, - {0xed9691, 0x83368936}, - {0xed9692, 0x83368937}, - {0xed9693, 0x83368938}, - {0xed9694, 0x83368939}, - {0xed9695, 0x83368a30}, - {0xed9696, 0x83368a31}, - {0xed9697, 0x83368a32}, - {0xed9698, 0x83368a33}, - {0xed9699, 0x83368a34}, - {0xed969a, 0x83368a35}, - {0xed969b, 0x83368a36}, - {0xed969c, 0x83368a37}, - {0xed969d, 0x83368a38}, - {0xed969e, 0x83368a39}, - {0xed969f, 0x83368b30}, - {0xed96a0, 0x83368b31}, - {0xed96a1, 0x83368b32}, - {0xed96a2, 0x83368b33}, - {0xed96a3, 0x83368b34}, - {0xed96a4, 0x83368b35}, - {0xed96a5, 0x83368b36}, - {0xed96a6, 0x83368b37}, - {0xed96a7, 0x83368b38}, - {0xed96a8, 0x83368b39}, - {0xed96a9, 0x83368c30}, - {0xed96aa, 0x83368c31}, - {0xed96ab, 0x83368c32}, - {0xed96ac, 0x83368c33}, - {0xed96ad, 0x83368c34}, - {0xed96ae, 0x83368c35}, - {0xed96af, 0x83368c36}, - {0xed96b0, 0x83368c37}, - {0xed96b1, 0x83368c38}, - {0xed96b2, 0x83368c39}, - {0xed96b3, 0x83368d30}, - {0xed96b4, 0x83368d31}, - {0xed96b5, 0x83368d32}, - {0xed96b6, 0x83368d33}, - {0xed96b7, 0x83368d34}, - {0xed96b8, 0x83368d35}, - {0xed96b9, 0x83368d36}, - {0xed96ba, 0x83368d37}, - {0xed96bb, 0x83368d38}, - {0xed96bc, 0x83368d39}, - {0xed96bd, 0x83368e30}, - {0xed96be, 0x83368e31}, - {0xed96bf, 0x83368e32}, - {0xed9780, 0x83368e33}, - {0xed9781, 0x83368e34}, - {0xed9782, 0x83368e35}, - {0xed9783, 0x83368e36}, - {0xed9784, 0x83368e37}, - {0xed9785, 0x83368e38}, - {0xed9786, 0x83368e39}, - {0xed9787, 0x83368f30}, - {0xed9788, 0x83368f31}, - {0xed9789, 0x83368f32}, - {0xed978a, 0x83368f33}, - {0xed978b, 0x83368f34}, - {0xed978c, 0x83368f35}, - {0xed978d, 0x83368f36}, - {0xed978e, 0x83368f37}, - {0xed978f, 0x83368f38}, - {0xed9790, 0x83368f39}, - {0xed9791, 0x83369030}, - {0xed9792, 0x83369031}, - {0xed9793, 0x83369032}, - {0xed9794, 0x83369033}, - {0xed9795, 0x83369034}, - {0xed9796, 0x83369035}, - {0xed9797, 0x83369036}, - {0xed9798, 0x83369037}, - {0xed9799, 0x83369038}, - {0xed979a, 0x83369039}, - {0xed979b, 0x83369130}, - {0xed979c, 0x83369131}, - {0xed979d, 0x83369132}, - {0xed979e, 0x83369133}, - {0xed979f, 0x83369134}, - {0xed97a0, 0x83369135}, - {0xed97a1, 0x83369136}, - {0xed97a2, 0x83369137}, - {0xed97a3, 0x83369138}, - {0xed97a4, 0x83369139}, - {0xed97a5, 0x83369230}, - {0xed97a6, 0x83369231}, - {0xed97a7, 0x83369232}, - {0xed97a8, 0x83369233}, - {0xed97a9, 0x83369234}, - {0xed97aa, 0x83369235}, - {0xed97ab, 0x83369236}, - {0xed97ac, 0x83369237}, - {0xed97ad, 0x83369238}, - {0xed97ae, 0x83369239}, - {0xed97af, 0x83369330}, - {0xed97b0, 0x83369331}, - {0xed97b1, 0x83369332}, - {0xed97b2, 0x83369333}, - {0xed97b3, 0x83369334}, - {0xed97b4, 0x83369335}, - {0xed97b5, 0x83369336}, - {0xed97b6, 0x83369337}, - {0xed97b7, 0x83369338}, - {0xed97b8, 0x83369339}, - {0xed97b9, 0x83369430}, - {0xed97ba, 0x83369431}, - {0xed97bb, 0x83369432}, - {0xed97bc, 0x83369433}, - {0xed97bd, 0x83369434}, - {0xed97be, 0x83369435}, - {0xed97bf, 0x83369436}, - {0xed9880, 0x83369437}, - {0xed9881, 0x83369438}, - {0xed9882, 0x83369439}, - {0xed9883, 0x83369530}, - {0xed9884, 0x83369531}, - {0xed9885, 0x83369532}, - {0xed9886, 0x83369533}, - {0xed9887, 0x83369534}, - {0xed9888, 0x83369535}, - {0xed9889, 0x83369536}, - {0xed988a, 0x83369537}, - {0xed988b, 0x83369538}, - {0xed988c, 0x83369539}, - {0xed988d, 0x83369630}, - {0xed988e, 0x83369631}, - {0xed988f, 0x83369632}, - {0xed9890, 0x83369633}, - {0xed9891, 0x83369634}, - {0xed9892, 0x83369635}, - {0xed9893, 0x83369636}, - {0xed9894, 0x83369637}, - {0xed9895, 0x83369638}, - {0xed9896, 0x83369639}, - {0xed9897, 0x83369730}, - {0xed9898, 0x83369731}, - {0xed9899, 0x83369732}, - {0xed989a, 0x83369733}, - {0xed989b, 0x83369734}, - {0xed989c, 0x83369735}, - {0xed989d, 0x83369736}, - {0xed989e, 0x83369737}, - {0xed989f, 0x83369738}, - {0xed98a0, 0x83369739}, - {0xed98a1, 0x83369830}, - {0xed98a2, 0x83369831}, - {0xed98a3, 0x83369832}, - {0xed98a4, 0x83369833}, - {0xed98a5, 0x83369834}, - {0xed98a6, 0x83369835}, - {0xed98a7, 0x83369836}, - {0xed98a8, 0x83369837}, - {0xed98a9, 0x83369838}, - {0xed98aa, 0x83369839}, - {0xed98ab, 0x83369930}, - {0xed98ac, 0x83369931}, - {0xed98ad, 0x83369932}, - {0xed98ae, 0x83369933}, - {0xed98af, 0x83369934}, - {0xed98b0, 0x83369935}, - {0xed98b1, 0x83369936}, - {0xed98b2, 0x83369937}, - {0xed98b3, 0x83369938}, - {0xed98b4, 0x83369939}, - {0xed98b5, 0x83369a30}, - {0xed98b6, 0x83369a31}, - {0xed98b7, 0x83369a32}, - {0xed98b8, 0x83369a33}, - {0xed98b9, 0x83369a34}, - {0xed98ba, 0x83369a35}, - {0xed98bb, 0x83369a36}, - {0xed98bc, 0x83369a37}, - {0xed98bd, 0x83369a38}, - {0xed98be, 0x83369a39}, - {0xed98bf, 0x83369b30}, - {0xed9980, 0x83369b31}, - {0xed9981, 0x83369b32}, - {0xed9982, 0x83369b33}, - {0xed9983, 0x83369b34}, - {0xed9984, 0x83369b35}, - {0xed9985, 0x83369b36}, - {0xed9986, 0x83369b37}, - {0xed9987, 0x83369b38}, - {0xed9988, 0x83369b39}, - {0xed9989, 0x83369c30}, - {0xed998a, 0x83369c31}, - {0xed998b, 0x83369c32}, - {0xed998c, 0x83369c33}, - {0xed998d, 0x83369c34}, - {0xed998e, 0x83369c35}, - {0xed998f, 0x83369c36}, - {0xed9990, 0x83369c37}, - {0xed9991, 0x83369c38}, - {0xed9992, 0x83369c39}, - {0xed9993, 0x83369d30}, - {0xed9994, 0x83369d31}, - {0xed9995, 0x83369d32}, - {0xed9996, 0x83369d33}, - {0xed9997, 0x83369d34}, - {0xed9998, 0x83369d35}, - {0xed9999, 0x83369d36}, - {0xed999a, 0x83369d37}, - {0xed999b, 0x83369d38}, - {0xed999c, 0x83369d39}, - {0xed999d, 0x83369e30}, - {0xed999e, 0x83369e31}, - {0xed999f, 0x83369e32}, - {0xed99a0, 0x83369e33}, - {0xed99a1, 0x83369e34}, - {0xed99a2, 0x83369e35}, - {0xed99a3, 0x83369e36}, - {0xed99a4, 0x83369e37}, - {0xed99a5, 0x83369e38}, - {0xed99a6, 0x83369e39}, - {0xed99a7, 0x83369f30}, - {0xed99a8, 0x83369f31}, - {0xed99a9, 0x83369f32}, - {0xed99aa, 0x83369f33}, - {0xed99ab, 0x83369f34}, - {0xed99ac, 0x83369f35}, - {0xed99ad, 0x83369f36}, - {0xed99ae, 0x83369f37}, - {0xed99af, 0x83369f38}, - {0xed99b0, 0x83369f39}, - {0xed99b1, 0x8336a030}, - {0xed99b2, 0x8336a031}, - {0xed99b3, 0x8336a032}, - {0xed99b4, 0x8336a033}, - {0xed99b5, 0x8336a034}, - {0xed99b6, 0x8336a035}, - {0xed99b7, 0x8336a036}, - {0xed99b8, 0x8336a037}, - {0xed99b9, 0x8336a038}, - {0xed99ba, 0x8336a039}, - {0xed99bb, 0x8336a130}, - {0xed99bc, 0x8336a131}, - {0xed99bd, 0x8336a132}, - {0xed99be, 0x8336a133}, - {0xed99bf, 0x8336a134}, - {0xed9a80, 0x8336a135}, - {0xed9a81, 0x8336a136}, - {0xed9a82, 0x8336a137}, - {0xed9a83, 0x8336a138}, - {0xed9a84, 0x8336a139}, - {0xed9a85, 0x8336a230}, - {0xed9a86, 0x8336a231}, - {0xed9a87, 0x8336a232}, - {0xed9a88, 0x8336a233}, - {0xed9a89, 0x8336a234}, - {0xed9a8a, 0x8336a235}, - {0xed9a8b, 0x8336a236}, - {0xed9a8c, 0x8336a237}, - {0xed9a8d, 0x8336a238}, - {0xed9a8e, 0x8336a239}, - {0xed9a8f, 0x8336a330}, - {0xed9a90, 0x8336a331}, - {0xed9a91, 0x8336a332}, - {0xed9a92, 0x8336a333}, - {0xed9a93, 0x8336a334}, - {0xed9a94, 0x8336a335}, - {0xed9a95, 0x8336a336}, - {0xed9a96, 0x8336a337}, - {0xed9a97, 0x8336a338}, - {0xed9a98, 0x8336a339}, - {0xed9a99, 0x8336a430}, - {0xed9a9a, 0x8336a431}, - {0xed9a9b, 0x8336a432}, - {0xed9a9c, 0x8336a433}, - {0xed9a9d, 0x8336a434}, - {0xed9a9e, 0x8336a435}, - {0xed9a9f, 0x8336a436}, - {0xed9aa0, 0x8336a437}, - {0xed9aa1, 0x8336a438}, - {0xed9aa2, 0x8336a439}, - {0xed9aa3, 0x8336a530}, - {0xed9aa4, 0x8336a531}, - {0xed9aa5, 0x8336a532}, - {0xed9aa6, 0x8336a533}, - {0xed9aa7, 0x8336a534}, - {0xed9aa8, 0x8336a535}, - {0xed9aa9, 0x8336a536}, - {0xed9aaa, 0x8336a537}, - {0xed9aab, 0x8336a538}, - {0xed9aac, 0x8336a539}, - {0xed9aad, 0x8336a630}, - {0xed9aae, 0x8336a631}, - {0xed9aaf, 0x8336a632}, - {0xed9ab0, 0x8336a633}, - {0xed9ab1, 0x8336a634}, - {0xed9ab2, 0x8336a635}, - {0xed9ab3, 0x8336a636}, - {0xed9ab4, 0x8336a637}, - {0xed9ab5, 0x8336a638}, - {0xed9ab6, 0x8336a639}, - {0xed9ab7, 0x8336a730}, - {0xed9ab8, 0x8336a731}, - {0xed9ab9, 0x8336a732}, - {0xed9aba, 0x8336a733}, - {0xed9abb, 0x8336a734}, - {0xed9abc, 0x8336a735}, - {0xed9abd, 0x8336a736}, - {0xed9abe, 0x8336a737}, - {0xed9abf, 0x8336a738}, - {0xed9b80, 0x8336a739}, - {0xed9b81, 0x8336a830}, - {0xed9b82, 0x8336a831}, - {0xed9b83, 0x8336a832}, - {0xed9b84, 0x8336a833}, - {0xed9b85, 0x8336a834}, - {0xed9b86, 0x8336a835}, - {0xed9b87, 0x8336a836}, - {0xed9b88, 0x8336a837}, - {0xed9b89, 0x8336a838}, - {0xed9b8a, 0x8336a839}, - {0xed9b8b, 0x8336a930}, - {0xed9b8c, 0x8336a931}, - {0xed9b8d, 0x8336a932}, - {0xed9b8e, 0x8336a933}, - {0xed9b8f, 0x8336a934}, - {0xed9b90, 0x8336a935}, - {0xed9b91, 0x8336a936}, - {0xed9b92, 0x8336a937}, - {0xed9b93, 0x8336a938}, - {0xed9b94, 0x8336a939}, - {0xed9b95, 0x8336aa30}, - {0xed9b96, 0x8336aa31}, - {0xed9b97, 0x8336aa32}, - {0xed9b98, 0x8336aa33}, - {0xed9b99, 0x8336aa34}, - {0xed9b9a, 0x8336aa35}, - {0xed9b9b, 0x8336aa36}, - {0xed9b9c, 0x8336aa37}, - {0xed9b9d, 0x8336aa38}, - {0xed9b9e, 0x8336aa39}, - {0xed9b9f, 0x8336ab30}, - {0xed9ba0, 0x8336ab31}, - {0xed9ba1, 0x8336ab32}, - {0xed9ba2, 0x8336ab33}, - {0xed9ba3, 0x8336ab34}, - {0xed9ba4, 0x8336ab35}, - {0xed9ba5, 0x8336ab36}, - {0xed9ba6, 0x8336ab37}, - {0xed9ba7, 0x8336ab38}, - {0xed9ba8, 0x8336ab39}, - {0xed9ba9, 0x8336ac30}, - {0xed9baa, 0x8336ac31}, - {0xed9bab, 0x8336ac32}, - {0xed9bac, 0x8336ac33}, - {0xed9bad, 0x8336ac34}, - {0xed9bae, 0x8336ac35}, - {0xed9baf, 0x8336ac36}, - {0xed9bb0, 0x8336ac37}, - {0xed9bb1, 0x8336ac38}, - {0xed9bb2, 0x8336ac39}, - {0xed9bb3, 0x8336ad30}, - {0xed9bb4, 0x8336ad31}, - {0xed9bb5, 0x8336ad32}, - {0xed9bb6, 0x8336ad33}, - {0xed9bb7, 0x8336ad34}, - {0xed9bb8, 0x8336ad35}, - {0xed9bb9, 0x8336ad36}, - {0xed9bba, 0x8336ad37}, - {0xed9bbb, 0x8336ad38}, - {0xed9bbc, 0x8336ad39}, - {0xed9bbd, 0x8336ae30}, - {0xed9bbe, 0x8336ae31}, - {0xed9bbf, 0x8336ae32}, - {0xed9c80, 0x8336ae33}, - {0xed9c81, 0x8336ae34}, - {0xed9c82, 0x8336ae35}, - {0xed9c83, 0x8336ae36}, - {0xed9c84, 0x8336ae37}, - {0xed9c85, 0x8336ae38}, - {0xed9c86, 0x8336ae39}, - {0xed9c87, 0x8336af30}, - {0xed9c88, 0x8336af31}, - {0xed9c89, 0x8336af32}, - {0xed9c8a, 0x8336af33}, - {0xed9c8b, 0x8336af34}, - {0xed9c8c, 0x8336af35}, - {0xed9c8d, 0x8336af36}, - {0xed9c8e, 0x8336af37}, - {0xed9c8f, 0x8336af38}, - {0xed9c90, 0x8336af39}, - {0xed9c91, 0x8336b030}, - {0xed9c92, 0x8336b031}, - {0xed9c93, 0x8336b032}, - {0xed9c94, 0x8336b033}, - {0xed9c95, 0x8336b034}, - {0xed9c96, 0x8336b035}, - {0xed9c97, 0x8336b036}, - {0xed9c98, 0x8336b037}, - {0xed9c99, 0x8336b038}, - {0xed9c9a, 0x8336b039}, - {0xed9c9b, 0x8336b130}, - {0xed9c9c, 0x8336b131}, - {0xed9c9d, 0x8336b132}, - {0xed9c9e, 0x8336b133}, - {0xed9c9f, 0x8336b134}, - {0xed9ca0, 0x8336b135}, - {0xed9ca1, 0x8336b136}, - {0xed9ca2, 0x8336b137}, - {0xed9ca3, 0x8336b138}, - {0xed9ca4, 0x8336b139}, - {0xed9ca5, 0x8336b230}, - {0xed9ca6, 0x8336b231}, - {0xed9ca7, 0x8336b232}, - {0xed9ca8, 0x8336b233}, - {0xed9ca9, 0x8336b234}, - {0xed9caa, 0x8336b235}, - {0xed9cab, 0x8336b236}, - {0xed9cac, 0x8336b237}, - {0xed9cad, 0x8336b238}, - {0xed9cae, 0x8336b239}, - {0xed9caf, 0x8336b330}, - {0xed9cb0, 0x8336b331}, - {0xed9cb1, 0x8336b332}, - {0xed9cb2, 0x8336b333}, - {0xed9cb3, 0x8336b334}, - {0xed9cb4, 0x8336b335}, - {0xed9cb5, 0x8336b336}, - {0xed9cb6, 0x8336b337}, - {0xed9cb7, 0x8336b338}, - {0xed9cb8, 0x8336b339}, - {0xed9cb9, 0x8336b430}, - {0xed9cba, 0x8336b431}, - {0xed9cbb, 0x8336b432}, - {0xed9cbc, 0x8336b433}, - {0xed9cbd, 0x8336b434}, - {0xed9cbe, 0x8336b435}, - {0xed9cbf, 0x8336b436}, - {0xed9d80, 0x8336b437}, - {0xed9d81, 0x8336b438}, - {0xed9d82, 0x8336b439}, - {0xed9d83, 0x8336b530}, - {0xed9d84, 0x8336b531}, - {0xed9d85, 0x8336b532}, - {0xed9d86, 0x8336b533}, - {0xed9d87, 0x8336b534}, - {0xed9d88, 0x8336b535}, - {0xed9d89, 0x8336b536}, - {0xed9d8a, 0x8336b537}, - {0xed9d8b, 0x8336b538}, - {0xed9d8c, 0x8336b539}, - {0xed9d8d, 0x8336b630}, - {0xed9d8e, 0x8336b631}, - {0xed9d8f, 0x8336b632}, - {0xed9d90, 0x8336b633}, - {0xed9d91, 0x8336b634}, - {0xed9d92, 0x8336b635}, - {0xed9d93, 0x8336b636}, - {0xed9d94, 0x8336b637}, - {0xed9d95, 0x8336b638}, - {0xed9d96, 0x8336b639}, - {0xed9d97, 0x8336b730}, - {0xed9d98, 0x8336b731}, - {0xed9d99, 0x8336b732}, - {0xed9d9a, 0x8336b733}, - {0xed9d9b, 0x8336b734}, - {0xed9d9c, 0x8336b735}, - {0xed9d9d, 0x8336b736}, - {0xed9d9e, 0x8336b737}, - {0xed9d9f, 0x8336b738}, - {0xed9da0, 0x8336b739}, - {0xed9da1, 0x8336b830}, - {0xed9da2, 0x8336b831}, - {0xed9da3, 0x8336b832}, - {0xed9da4, 0x8336b833}, - {0xed9da5, 0x8336b834}, - {0xed9da6, 0x8336b835}, - {0xed9da7, 0x8336b836}, - {0xed9da8, 0x8336b837}, - {0xed9da9, 0x8336b838}, - {0xed9daa, 0x8336b839}, - {0xed9dab, 0x8336b930}, - {0xed9dac, 0x8336b931}, - {0xed9dad, 0x8336b932}, - {0xed9dae, 0x8336b933}, - {0xed9daf, 0x8336b934}, - {0xed9db0, 0x8336b935}, - {0xed9db1, 0x8336b936}, - {0xed9db2, 0x8336b937}, - {0xed9db3, 0x8336b938}, - {0xed9db4, 0x8336b939}, - {0xed9db5, 0x8336ba30}, - {0xed9db6, 0x8336ba31}, - {0xed9db7, 0x8336ba32}, - {0xed9db8, 0x8336ba33}, - {0xed9db9, 0x8336ba34}, - {0xed9dba, 0x8336ba35}, - {0xed9dbb, 0x8336ba36}, - {0xed9dbc, 0x8336ba37}, - {0xed9dbd, 0x8336ba38}, - {0xed9dbe, 0x8336ba39}, - {0xed9dbf, 0x8336bb30}, - {0xed9e80, 0x8336bb31}, - {0xed9e81, 0x8336bb32}, - {0xed9e82, 0x8336bb33}, - {0xed9e83, 0x8336bb34}, - {0xed9e84, 0x8336bb35}, - {0xed9e85, 0x8336bb36}, - {0xed9e86, 0x8336bb37}, - {0xed9e87, 0x8336bb38}, - {0xed9e88, 0x8336bb39}, - {0xed9e89, 0x8336bc30}, - {0xed9e8a, 0x8336bc31}, - {0xed9e8b, 0x8336bc32}, - {0xed9e8c, 0x8336bc33}, - {0xed9e8d, 0x8336bc34}, - {0xed9e8e, 0x8336bc35}, - {0xed9e8f, 0x8336bc36}, - {0xed9e90, 0x8336bc37}, - {0xed9e91, 0x8336bc38}, - {0xed9e92, 0x8336bc39}, - {0xed9e93, 0x8336bd30}, - {0xed9e94, 0x8336bd31}, - {0xed9e95, 0x8336bd32}, - {0xed9e96, 0x8336bd33}, - {0xed9e97, 0x8336bd34}, - {0xed9e98, 0x8336bd35}, - {0xed9e99, 0x8336bd36}, - {0xed9e9a, 0x8336bd37}, - {0xed9e9b, 0x8336bd38}, - {0xed9e9c, 0x8336bd39}, - {0xed9e9d, 0x8336be30}, - {0xed9e9e, 0x8336be31}, - {0xed9e9f, 0x8336be32}, - {0xed9ea0, 0x8336be33}, - {0xed9ea1, 0x8336be34}, - {0xed9ea2, 0x8336be35}, - {0xed9ea3, 0x8336be36}, - {0xed9ea4, 0x8336be37}, - {0xed9ea5, 0x8336be38}, - {0xed9ea6, 0x8336be39}, - {0xed9ea7, 0x8336bf30}, - {0xed9ea8, 0x8336bf31}, - {0xed9ea9, 0x8336bf32}, - {0xed9eaa, 0x8336bf33}, - {0xed9eab, 0x8336bf34}, - {0xed9eac, 0x8336bf35}, - {0xed9ead, 0x8336bf36}, - {0xed9eae, 0x8336bf37}, - {0xed9eaf, 0x8336bf38}, - {0xed9eb0, 0x8336bf39}, - {0xed9eb1, 0x8336c030}, - {0xed9eb2, 0x8336c031}, - {0xed9eb3, 0x8336c032}, - {0xed9eb4, 0x8336c033}, - {0xed9eb5, 0x8336c034}, - {0xed9eb6, 0x8336c035}, - {0xed9eb7, 0x8336c036}, - {0xed9eb8, 0x8336c037}, - {0xed9eb9, 0x8336c038}, - {0xed9eba, 0x8336c039}, - {0xed9ebb, 0x8336c130}, - {0xed9ebc, 0x8336c131}, - {0xed9ebd, 0x8336c132}, - {0xed9ebe, 0x8336c133}, - {0xed9ebf, 0x8336c134}, - {0xed9f80, 0x8336c135}, - {0xed9f81, 0x8336c136}, - {0xed9f82, 0x8336c137}, - {0xed9f83, 0x8336c138}, - {0xed9f84, 0x8336c139}, - {0xed9f85, 0x8336c230}, - {0xed9f86, 0x8336c231}, - {0xed9f87, 0x8336c232}, - {0xed9f88, 0x8336c233}, - {0xed9f89, 0x8336c234}, - {0xed9f8a, 0x8336c235}, - {0xed9f8b, 0x8336c236}, - {0xed9f8c, 0x8336c237}, - {0xed9f8d, 0x8336c238}, - {0xed9f8e, 0x8336c239}, - {0xed9f8f, 0x8336c330}, - {0xed9f90, 0x8336c331}, - {0xed9f91, 0x8336c332}, - {0xed9f92, 0x8336c333}, - {0xed9f93, 0x8336c334}, - {0xed9f94, 0x8336c335}, - {0xed9f95, 0x8336c336}, - {0xed9f96, 0x8336c337}, - {0xed9f97, 0x8336c338}, - {0xed9f98, 0x8336c339}, - {0xed9f99, 0x8336c430}, - {0xed9f9a, 0x8336c431}, - {0xed9f9b, 0x8336c432}, - {0xed9f9c, 0x8336c433}, - {0xed9f9d, 0x8336c434}, - {0xed9f9e, 0x8336c435}, - {0xed9f9f, 0x8336c436}, - {0xed9fa0, 0x8336c437}, - {0xed9fa1, 0x8336c438}, - {0xed9fa2, 0x8336c439}, - {0xed9fa3, 0x8336c530}, - {0xed9fa4, 0x8336c531}, - {0xed9fa5, 0x8336c532}, - {0xed9fa6, 0x8336c533}, - {0xed9fa7, 0x8336c534}, - {0xed9fa8, 0x8336c535}, - {0xed9fa9, 0x8336c536}, - {0xed9faa, 0x8336c537}, - {0xed9fab, 0x8336c538}, - {0xed9fac, 0x8336c539}, - {0xed9fad, 0x8336c630}, - {0xed9fae, 0x8336c631}, - {0xed9faf, 0x8336c632}, - {0xed9fb0, 0x8336c633}, - {0xed9fb1, 0x8336c634}, - {0xed9fb2, 0x8336c635}, - {0xed9fb3, 0x8336c636}, - {0xed9fb4, 0x8336c637}, - {0xed9fb5, 0x8336c638}, - {0xed9fb6, 0x8336c639}, - {0xed9fb7, 0x8336c730}, - {0xed9fb8, 0x8336c731}, - {0xed9fb9, 0x8336c732}, - {0xed9fba, 0x8336c733}, - {0xed9fbb, 0x8336c734}, - {0xed9fbc, 0x8336c735}, - {0xed9fbd, 0x8336c736}, - {0xed9fbe, 0x8336c737}, - {0xed9fbf, 0x8336c738}, {0xee8080, 0xaaa1}, {0xee8081, 0xaaa2}, {0xee8082, 0xaaa3}, @@ -57316,4301 +30040,6 @@ static pg_utf_to_local ULmapGB18030[ 63360 ] = { {0xeea1a2, 0x8336cf38}, {0xeea1a3, 0x8336cf39}, {0xeea1a4, 0xfea0}, - {0xeea1a5, 0x8336d030}, - {0xeea1a6, 0x8336d031}, - {0xeea1a7, 0x8336d032}, - {0xeea1a8, 0x8336d033}, - {0xeea1a9, 0x8336d034}, - {0xeea1aa, 0x8336d035}, - {0xeea1ab, 0x8336d036}, - {0xeea1ac, 0x8336d037}, - {0xeea1ad, 0x8336d038}, - {0xeea1ae, 0x8336d039}, - {0xeea1af, 0x8336d130}, - {0xeea1b0, 0x8336d131}, - {0xeea1b1, 0x8336d132}, - {0xeea1b2, 0x8336d133}, - {0xeea1b3, 0x8336d134}, - {0xeea1b4, 0x8336d135}, - {0xeea1b5, 0x8336d136}, - {0xeea1b6, 0x8336d137}, - {0xeea1b7, 0x8336d138}, - {0xeea1b8, 0x8336d139}, - {0xeea1b9, 0x8336d230}, - {0xeea1ba, 0x8336d231}, - {0xeea1bb, 0x8336d232}, - {0xeea1bc, 0x8336d233}, - {0xeea1bd, 0x8336d234}, - {0xeea1be, 0x8336d235}, - {0xeea1bf, 0x8336d236}, - {0xeea280, 0x8336d237}, - {0xeea281, 0x8336d238}, - {0xeea282, 0x8336d239}, - {0xeea283, 0x8336d330}, - {0xeea284, 0x8336d331}, - {0xeea285, 0x8336d332}, - {0xeea286, 0x8336d333}, - {0xeea287, 0x8336d334}, - {0xeea288, 0x8336d335}, - {0xeea289, 0x8336d336}, - {0xeea28a, 0x8336d337}, - {0xeea28b, 0x8336d338}, - {0xeea28c, 0x8336d339}, - {0xeea28d, 0x8336d430}, - {0xeea28e, 0x8336d431}, - {0xeea28f, 0x8336d432}, - {0xeea290, 0x8336d433}, - {0xeea291, 0x8336d434}, - {0xeea292, 0x8336d435}, - {0xeea293, 0x8336d436}, - {0xeea294, 0x8336d437}, - {0xeea295, 0x8336d438}, - {0xeea296, 0x8336d439}, - {0xeea297, 0x8336d530}, - {0xeea298, 0x8336d531}, - {0xeea299, 0x8336d532}, - {0xeea29a, 0x8336d533}, - {0xeea29b, 0x8336d534}, - {0xeea29c, 0x8336d535}, - {0xeea29d, 0x8336d536}, - {0xeea29e, 0x8336d537}, - {0xeea29f, 0x8336d538}, - {0xeea2a0, 0x8336d539}, - {0xeea2a1, 0x8336d630}, - {0xeea2a2, 0x8336d631}, - {0xeea2a3, 0x8336d632}, - {0xeea2a4, 0x8336d633}, - {0xeea2a5, 0x8336d634}, - {0xeea2a6, 0x8336d635}, - {0xeea2a7, 0x8336d636}, - {0xeea2a8, 0x8336d637}, - {0xeea2a9, 0x8336d638}, - {0xeea2aa, 0x8336d639}, - {0xeea2ab, 0x8336d730}, - {0xeea2ac, 0x8336d731}, - {0xeea2ad, 0x8336d732}, - {0xeea2ae, 0x8336d733}, - {0xeea2af, 0x8336d734}, - {0xeea2b0, 0x8336d735}, - {0xeea2b1, 0x8336d736}, - {0xeea2b2, 0x8336d737}, - {0xeea2b3, 0x8336d738}, - {0xeea2b4, 0x8336d739}, - {0xeea2b5, 0x8336d830}, - {0xeea2b6, 0x8336d831}, - {0xeea2b7, 0x8336d832}, - {0xeea2b8, 0x8336d833}, - {0xeea2b9, 0x8336d834}, - {0xeea2ba, 0x8336d835}, - {0xeea2bb, 0x8336d836}, - {0xeea2bc, 0x8336d837}, - {0xeea2bd, 0x8336d838}, - {0xeea2be, 0x8336d839}, - {0xeea2bf, 0x8336d930}, - {0xeea380, 0x8336d931}, - {0xeea381, 0x8336d932}, - {0xeea382, 0x8336d933}, - {0xeea383, 0x8336d934}, - {0xeea384, 0x8336d935}, - {0xeea385, 0x8336d936}, - {0xeea386, 0x8336d937}, - {0xeea387, 0x8336d938}, - {0xeea388, 0x8336d939}, - {0xeea389, 0x8336da30}, - {0xeea38a, 0x8336da31}, - {0xeea38b, 0x8336da32}, - {0xeea38c, 0x8336da33}, - {0xeea38d, 0x8336da34}, - {0xeea38e, 0x8336da35}, - {0xeea38f, 0x8336da36}, - {0xeea390, 0x8336da37}, - {0xeea391, 0x8336da38}, - {0xeea392, 0x8336da39}, - {0xeea393, 0x8336db30}, - {0xeea394, 0x8336db31}, - {0xeea395, 0x8336db32}, - {0xeea396, 0x8336db33}, - {0xeea397, 0x8336db34}, - {0xeea398, 0x8336db35}, - {0xeea399, 0x8336db36}, - {0xeea39a, 0x8336db37}, - {0xeea39b, 0x8336db38}, - {0xeea39c, 0x8336db39}, - {0xeea39d, 0x8336dc30}, - {0xeea39e, 0x8336dc31}, - {0xeea39f, 0x8336dc32}, - {0xeea3a0, 0x8336dc33}, - {0xeea3a1, 0x8336dc34}, - {0xeea3a2, 0x8336dc35}, - {0xeea3a3, 0x8336dc36}, - {0xeea3a4, 0x8336dc37}, - {0xeea3a5, 0x8336dc38}, - {0xeea3a6, 0x8336dc39}, - {0xeea3a7, 0x8336dd30}, - {0xeea3a8, 0x8336dd31}, - {0xeea3a9, 0x8336dd32}, - {0xeea3aa, 0x8336dd33}, - {0xeea3ab, 0x8336dd34}, - {0xeea3ac, 0x8336dd35}, - {0xeea3ad, 0x8336dd36}, - {0xeea3ae, 0x8336dd37}, - {0xeea3af, 0x8336dd38}, - {0xeea3b0, 0x8336dd39}, - {0xeea3b1, 0x8336de30}, - {0xeea3b2, 0x8336de31}, - {0xeea3b3, 0x8336de32}, - {0xeea3b4, 0x8336de33}, - {0xeea3b5, 0x8336de34}, - {0xeea3b6, 0x8336de35}, - {0xeea3b7, 0x8336de36}, - {0xeea3b8, 0x8336de37}, - {0xeea3b9, 0x8336de38}, - {0xeea3ba, 0x8336de39}, - {0xeea3bb, 0x8336df30}, - {0xeea3bc, 0x8336df31}, - {0xeea3bd, 0x8336df32}, - {0xeea3be, 0x8336df33}, - {0xeea3bf, 0x8336df34}, - {0xeea480, 0x8336df35}, - {0xeea481, 0x8336df36}, - {0xeea482, 0x8336df37}, - {0xeea483, 0x8336df38}, - {0xeea484, 0x8336df39}, - {0xeea485, 0x8336e030}, - {0xeea486, 0x8336e031}, - {0xeea487, 0x8336e032}, - {0xeea488, 0x8336e033}, - {0xeea489, 0x8336e034}, - {0xeea48a, 0x8336e035}, - {0xeea48b, 0x8336e036}, - {0xeea48c, 0x8336e037}, - {0xeea48d, 0x8336e038}, - {0xeea48e, 0x8336e039}, - {0xeea48f, 0x8336e130}, - {0xeea490, 0x8336e131}, - {0xeea491, 0x8336e132}, - {0xeea492, 0x8336e133}, - {0xeea493, 0x8336e134}, - {0xeea494, 0x8336e135}, - {0xeea495, 0x8336e136}, - {0xeea496, 0x8336e137}, - {0xeea497, 0x8336e138}, - {0xeea498, 0x8336e139}, - {0xeea499, 0x8336e230}, - {0xeea49a, 0x8336e231}, - {0xeea49b, 0x8336e232}, - {0xeea49c, 0x8336e233}, - {0xeea49d, 0x8336e234}, - {0xeea49e, 0x8336e235}, - {0xeea49f, 0x8336e236}, - {0xeea4a0, 0x8336e237}, - {0xeea4a1, 0x8336e238}, - {0xeea4a2, 0x8336e239}, - {0xeea4a3, 0x8336e330}, - {0xeea4a4, 0x8336e331}, - {0xeea4a5, 0x8336e332}, - {0xeea4a6, 0x8336e333}, - {0xeea4a7, 0x8336e334}, - {0xeea4a8, 0x8336e335}, - {0xeea4a9, 0x8336e336}, - {0xeea4aa, 0x8336e337}, - {0xeea4ab, 0x8336e338}, - {0xeea4ac, 0x8336e339}, - {0xeea4ad, 0x8336e430}, - {0xeea4ae, 0x8336e431}, - {0xeea4af, 0x8336e432}, - {0xeea4b0, 0x8336e433}, - {0xeea4b1, 0x8336e434}, - {0xeea4b2, 0x8336e435}, - {0xeea4b3, 0x8336e436}, - {0xeea4b4, 0x8336e437}, - {0xeea4b5, 0x8336e438}, - {0xeea4b6, 0x8336e439}, - {0xeea4b7, 0x8336e530}, - {0xeea4b8, 0x8336e531}, - {0xeea4b9, 0x8336e532}, - {0xeea4ba, 0x8336e533}, - {0xeea4bb, 0x8336e534}, - {0xeea4bc, 0x8336e535}, - {0xeea4bd, 0x8336e536}, - {0xeea4be, 0x8336e537}, - {0xeea4bf, 0x8336e538}, - {0xeea580, 0x8336e539}, - {0xeea581, 0x8336e630}, - {0xeea582, 0x8336e631}, - {0xeea583, 0x8336e632}, - {0xeea584, 0x8336e633}, - {0xeea585, 0x8336e634}, - {0xeea586, 0x8336e635}, - {0xeea587, 0x8336e636}, - {0xeea588, 0x8336e637}, - {0xeea589, 0x8336e638}, - {0xeea58a, 0x8336e639}, - {0xeea58b, 0x8336e730}, - {0xeea58c, 0x8336e731}, - {0xeea58d, 0x8336e732}, - {0xeea58e, 0x8336e733}, - {0xeea58f, 0x8336e734}, - {0xeea590, 0x8336e735}, - {0xeea591, 0x8336e736}, - {0xeea592, 0x8336e737}, - {0xeea593, 0x8336e738}, - {0xeea594, 0x8336e739}, - {0xeea595, 0x8336e830}, - {0xeea596, 0x8336e831}, - {0xeea597, 0x8336e832}, - {0xeea598, 0x8336e833}, - {0xeea599, 0x8336e834}, - {0xeea59a, 0x8336e835}, - {0xeea59b, 0x8336e836}, - {0xeea59c, 0x8336e837}, - {0xeea59d, 0x8336e838}, - {0xeea59e, 0x8336e839}, - {0xeea59f, 0x8336e930}, - {0xeea5a0, 0x8336e931}, - {0xeea5a1, 0x8336e932}, - {0xeea5a2, 0x8336e933}, - {0xeea5a3, 0x8336e934}, - {0xeea5a4, 0x8336e935}, - {0xeea5a5, 0x8336e936}, - {0xeea5a6, 0x8336e937}, - {0xeea5a7, 0x8336e938}, - {0xeea5a8, 0x8336e939}, - {0xeea5a9, 0x8336ea30}, - {0xeea5aa, 0x8336ea31}, - {0xeea5ab, 0x8336ea32}, - {0xeea5ac, 0x8336ea33}, - {0xeea5ad, 0x8336ea34}, - {0xeea5ae, 0x8336ea35}, - {0xeea5af, 0x8336ea36}, - {0xeea5b0, 0x8336ea37}, - {0xeea5b1, 0x8336ea38}, - {0xeea5b2, 0x8336ea39}, - {0xeea5b3, 0x8336eb30}, - {0xeea5b4, 0x8336eb31}, - {0xeea5b5, 0x8336eb32}, - {0xeea5b6, 0x8336eb33}, - {0xeea5b7, 0x8336eb34}, - {0xeea5b8, 0x8336eb35}, - {0xeea5b9, 0x8336eb36}, - {0xeea5ba, 0x8336eb37}, - {0xeea5bb, 0x8336eb38}, - {0xeea5bc, 0x8336eb39}, - {0xeea5bd, 0x8336ec30}, - {0xeea5be, 0x8336ec31}, - {0xeea5bf, 0x8336ec32}, - {0xeea680, 0x8336ec33}, - {0xeea681, 0x8336ec34}, - {0xeea682, 0x8336ec35}, - {0xeea683, 0x8336ec36}, - {0xeea684, 0x8336ec37}, - {0xeea685, 0x8336ec38}, - {0xeea686, 0x8336ec39}, - {0xeea687, 0x8336ed30}, - {0xeea688, 0x8336ed31}, - {0xeea689, 0x8336ed32}, - {0xeea68a, 0x8336ed33}, - {0xeea68b, 0x8336ed34}, - {0xeea68c, 0x8336ed35}, - {0xeea68d, 0x8336ed36}, - {0xeea68e, 0x8336ed37}, - {0xeea68f, 0x8336ed38}, - {0xeea690, 0x8336ed39}, - {0xeea691, 0x8336ee30}, - {0xeea692, 0x8336ee31}, - {0xeea693, 0x8336ee32}, - {0xeea694, 0x8336ee33}, - {0xeea695, 0x8336ee34}, - {0xeea696, 0x8336ee35}, - {0xeea697, 0x8336ee36}, - {0xeea698, 0x8336ee37}, - {0xeea699, 0x8336ee38}, - {0xeea69a, 0x8336ee39}, - {0xeea69b, 0x8336ef30}, - {0xeea69c, 0x8336ef31}, - {0xeea69d, 0x8336ef32}, - {0xeea69e, 0x8336ef33}, - {0xeea69f, 0x8336ef34}, - {0xeea6a0, 0x8336ef35}, - {0xeea6a1, 0x8336ef36}, - {0xeea6a2, 0x8336ef37}, - {0xeea6a3, 0x8336ef38}, - {0xeea6a4, 0x8336ef39}, - {0xeea6a5, 0x8336f030}, - {0xeea6a6, 0x8336f031}, - {0xeea6a7, 0x8336f032}, - {0xeea6a8, 0x8336f033}, - {0xeea6a9, 0x8336f034}, - {0xeea6aa, 0x8336f035}, - {0xeea6ab, 0x8336f036}, - {0xeea6ac, 0x8336f037}, - {0xeea6ad, 0x8336f038}, - {0xeea6ae, 0x8336f039}, - {0xeea6af, 0x8336f130}, - {0xeea6b0, 0x8336f131}, - {0xeea6b1, 0x8336f132}, - {0xeea6b2, 0x8336f133}, - {0xeea6b3, 0x8336f134}, - {0xeea6b4, 0x8336f135}, - {0xeea6b5, 0x8336f136}, - {0xeea6b6, 0x8336f137}, - {0xeea6b7, 0x8336f138}, - {0xeea6b8, 0x8336f139}, - {0xeea6b9, 0x8336f230}, - {0xeea6ba, 0x8336f231}, - {0xeea6bb, 0x8336f232}, - {0xeea6bc, 0x8336f233}, - {0xeea6bd, 0x8336f234}, - {0xeea6be, 0x8336f235}, - {0xeea6bf, 0x8336f236}, - {0xeea780, 0x8336f237}, - {0xeea781, 0x8336f238}, - {0xeea782, 0x8336f239}, - {0xeea783, 0x8336f330}, - {0xeea784, 0x8336f331}, - {0xeea785, 0x8336f332}, - {0xeea786, 0x8336f333}, - {0xeea787, 0x8336f334}, - {0xeea788, 0x8336f335}, - {0xeea789, 0x8336f336}, - {0xeea78a, 0x8336f337}, - {0xeea78b, 0x8336f338}, - {0xeea78c, 0x8336f339}, - {0xeea78d, 0x8336f430}, - {0xeea78e, 0x8336f431}, - {0xeea78f, 0x8336f432}, - {0xeea790, 0x8336f433}, - {0xeea791, 0x8336f434}, - {0xeea792, 0x8336f435}, - {0xeea793, 0x8336f436}, - {0xeea794, 0x8336f437}, - {0xeea795, 0x8336f438}, - {0xeea796, 0x8336f439}, - {0xeea797, 0x8336f530}, - {0xeea798, 0x8336f531}, - {0xeea799, 0x8336f532}, - {0xeea79a, 0x8336f533}, - {0xeea79b, 0x8336f534}, - {0xeea79c, 0x8336f535}, - {0xeea79d, 0x8336f536}, - {0xeea79e, 0x8336f537}, - {0xeea79f, 0x8336f538}, - {0xeea7a0, 0x8336f539}, - {0xeea7a1, 0x8336f630}, - {0xeea7a2, 0x8336f631}, - {0xeea7a3, 0x8336f632}, - {0xeea7a4, 0x8336f633}, - {0xeea7a5, 0x8336f634}, - {0xeea7a6, 0x8336f635}, - {0xeea7a7, 0x8336f636}, - {0xeea7a8, 0x8336f637}, - {0xeea7a9, 0x8336f638}, - {0xeea7aa, 0x8336f639}, - {0xeea7ab, 0x8336f730}, - {0xeea7ac, 0x8336f731}, - {0xeea7ad, 0x8336f732}, - {0xeea7ae, 0x8336f733}, - {0xeea7af, 0x8336f734}, - {0xeea7b0, 0x8336f735}, - {0xeea7b1, 0x8336f736}, - {0xeea7b2, 0x8336f737}, - {0xeea7b3, 0x8336f738}, - {0xeea7b4, 0x8336f739}, - {0xeea7b5, 0x8336f830}, - {0xeea7b6, 0x8336f831}, - {0xeea7b7, 0x8336f832}, - {0xeea7b8, 0x8336f833}, - {0xeea7b9, 0x8336f834}, - {0xeea7ba, 0x8336f835}, - {0xeea7bb, 0x8336f836}, - {0xeea7bc, 0x8336f837}, - {0xeea7bd, 0x8336f838}, - {0xeea7be, 0x8336f839}, - {0xeea7bf, 0x8336f930}, - {0xeea880, 0x8336f931}, - {0xeea881, 0x8336f932}, - {0xeea882, 0x8336f933}, - {0xeea883, 0x8336f934}, - {0xeea884, 0x8336f935}, - {0xeea885, 0x8336f936}, - {0xeea886, 0x8336f937}, - {0xeea887, 0x8336f938}, - {0xeea888, 0x8336f939}, - {0xeea889, 0x8336fa30}, - {0xeea88a, 0x8336fa31}, - {0xeea88b, 0x8336fa32}, - {0xeea88c, 0x8336fa33}, - {0xeea88d, 0x8336fa34}, - {0xeea88e, 0x8336fa35}, - {0xeea88f, 0x8336fa36}, - {0xeea890, 0x8336fa37}, - {0xeea891, 0x8336fa38}, - {0xeea892, 0x8336fa39}, - {0xeea893, 0x8336fb30}, - {0xeea894, 0x8336fb31}, - {0xeea895, 0x8336fb32}, - {0xeea896, 0x8336fb33}, - {0xeea897, 0x8336fb34}, - {0xeea898, 0x8336fb35}, - {0xeea899, 0x8336fb36}, - {0xeea89a, 0x8336fb37}, - {0xeea89b, 0x8336fb38}, - {0xeea89c, 0x8336fb39}, - {0xeea89d, 0x8336fc30}, - {0xeea89e, 0x8336fc31}, - {0xeea89f, 0x8336fc32}, - {0xeea8a0, 0x8336fc33}, - {0xeea8a1, 0x8336fc34}, - {0xeea8a2, 0x8336fc35}, - {0xeea8a3, 0x8336fc36}, - {0xeea8a4, 0x8336fc37}, - {0xeea8a5, 0x8336fc38}, - {0xeea8a6, 0x8336fc39}, - {0xeea8a7, 0x8336fd30}, - {0xeea8a8, 0x8336fd31}, - {0xeea8a9, 0x8336fd32}, - {0xeea8aa, 0x8336fd33}, - {0xeea8ab, 0x8336fd34}, - {0xeea8ac, 0x8336fd35}, - {0xeea8ad, 0x8336fd36}, - {0xeea8ae, 0x8336fd37}, - {0xeea8af, 0x8336fd38}, - {0xeea8b0, 0x8336fd39}, - {0xeea8b1, 0x8336fe30}, - {0xeea8b2, 0x8336fe31}, - {0xeea8b3, 0x8336fe32}, - {0xeea8b4, 0x8336fe33}, - {0xeea8b5, 0x8336fe34}, - {0xeea8b6, 0x8336fe35}, - {0xeea8b7, 0x8336fe36}, - {0xeea8b8, 0x8336fe37}, - {0xeea8b9, 0x8336fe38}, - {0xeea8ba, 0x8336fe39}, - {0xeea8bb, 0x83378130}, - {0xeea8bc, 0x83378131}, - {0xeea8bd, 0x83378132}, - {0xeea8be, 0x83378133}, - {0xeea8bf, 0x83378134}, - {0xeea980, 0x83378135}, - {0xeea981, 0x83378136}, - {0xeea982, 0x83378137}, - {0xeea983, 0x83378138}, - {0xeea984, 0x83378139}, - {0xeea985, 0x83378230}, - {0xeea986, 0x83378231}, - {0xeea987, 0x83378232}, - {0xeea988, 0x83378233}, - {0xeea989, 0x83378234}, - {0xeea98a, 0x83378235}, - {0xeea98b, 0x83378236}, - {0xeea98c, 0x83378237}, - {0xeea98d, 0x83378238}, - {0xeea98e, 0x83378239}, - {0xeea98f, 0x83378330}, - {0xeea990, 0x83378331}, - {0xeea991, 0x83378332}, - {0xeea992, 0x83378333}, - {0xeea993, 0x83378334}, - {0xeea994, 0x83378335}, - {0xeea995, 0x83378336}, - {0xeea996, 0x83378337}, - {0xeea997, 0x83378338}, - {0xeea998, 0x83378339}, - {0xeea999, 0x83378430}, - {0xeea99a, 0x83378431}, - {0xeea99b, 0x83378432}, - {0xeea99c, 0x83378433}, - {0xeea99d, 0x83378434}, - {0xeea99e, 0x83378435}, - {0xeea99f, 0x83378436}, - {0xeea9a0, 0x83378437}, - {0xeea9a1, 0x83378438}, - {0xeea9a2, 0x83378439}, - {0xeea9a3, 0x83378530}, - {0xeea9a4, 0x83378531}, - {0xeea9a5, 0x83378532}, - {0xeea9a6, 0x83378533}, - {0xeea9a7, 0x83378534}, - {0xeea9a8, 0x83378535}, - {0xeea9a9, 0x83378536}, - {0xeea9aa, 0x83378537}, - {0xeea9ab, 0x83378538}, - {0xeea9ac, 0x83378539}, - {0xeea9ad, 0x83378630}, - {0xeea9ae, 0x83378631}, - {0xeea9af, 0x83378632}, - {0xeea9b0, 0x83378633}, - {0xeea9b1, 0x83378634}, - {0xeea9b2, 0x83378635}, - {0xeea9b3, 0x83378636}, - {0xeea9b4, 0x83378637}, - {0xeea9b5, 0x83378638}, - {0xeea9b6, 0x83378639}, - {0xeea9b7, 0x83378730}, - {0xeea9b8, 0x83378731}, - {0xeea9b9, 0x83378732}, - {0xeea9ba, 0x83378733}, - {0xeea9bb, 0x83378734}, - {0xeea9bc, 0x83378735}, - {0xeea9bd, 0x83378736}, - {0xeea9be, 0x83378737}, - {0xeea9bf, 0x83378738}, - {0xeeaa80, 0x83378739}, - {0xeeaa81, 0x83378830}, - {0xeeaa82, 0x83378831}, - {0xeeaa83, 0x83378832}, - {0xeeaa84, 0x83378833}, - {0xeeaa85, 0x83378834}, - {0xeeaa86, 0x83378835}, - {0xeeaa87, 0x83378836}, - {0xeeaa88, 0x83378837}, - {0xeeaa89, 0x83378838}, - {0xeeaa8a, 0x83378839}, - {0xeeaa8b, 0x83378930}, - {0xeeaa8c, 0x83378931}, - {0xeeaa8d, 0x83378932}, - {0xeeaa8e, 0x83378933}, - {0xeeaa8f, 0x83378934}, - {0xeeaa90, 0x83378935}, - {0xeeaa91, 0x83378936}, - {0xeeaa92, 0x83378937}, - {0xeeaa93, 0x83378938}, - {0xeeaa94, 0x83378939}, - {0xeeaa95, 0x83378a30}, - {0xeeaa96, 0x83378a31}, - {0xeeaa97, 0x83378a32}, - {0xeeaa98, 0x83378a33}, - {0xeeaa99, 0x83378a34}, - {0xeeaa9a, 0x83378a35}, - {0xeeaa9b, 0x83378a36}, - {0xeeaa9c, 0x83378a37}, - {0xeeaa9d, 0x83378a38}, - {0xeeaa9e, 0x83378a39}, - {0xeeaa9f, 0x83378b30}, - {0xeeaaa0, 0x83378b31}, - {0xeeaaa1, 0x83378b32}, - {0xeeaaa2, 0x83378b33}, - {0xeeaaa3, 0x83378b34}, - {0xeeaaa4, 0x83378b35}, - {0xeeaaa5, 0x83378b36}, - {0xeeaaa6, 0x83378b37}, - {0xeeaaa7, 0x83378b38}, - {0xeeaaa8, 0x83378b39}, - {0xeeaaa9, 0x83378c30}, - {0xeeaaaa, 0x83378c31}, - {0xeeaaab, 0x83378c32}, - {0xeeaaac, 0x83378c33}, - {0xeeaaad, 0x83378c34}, - {0xeeaaae, 0x83378c35}, - {0xeeaaaf, 0x83378c36}, - {0xeeaab0, 0x83378c37}, - {0xeeaab1, 0x83378c38}, - {0xeeaab2, 0x83378c39}, - {0xeeaab3, 0x83378d30}, - {0xeeaab4, 0x83378d31}, - {0xeeaab5, 0x83378d32}, - {0xeeaab6, 0x83378d33}, - {0xeeaab7, 0x83378d34}, - {0xeeaab8, 0x83378d35}, - {0xeeaab9, 0x83378d36}, - {0xeeaaba, 0x83378d37}, - {0xeeaabb, 0x83378d38}, - {0xeeaabc, 0x83378d39}, - {0xeeaabd, 0x83378e30}, - {0xeeaabe, 0x83378e31}, - {0xeeaabf, 0x83378e32}, - {0xeeab80, 0x83378e33}, - {0xeeab81, 0x83378e34}, - {0xeeab82, 0x83378e35}, - {0xeeab83, 0x83378e36}, - {0xeeab84, 0x83378e37}, - {0xeeab85, 0x83378e38}, - {0xeeab86, 0x83378e39}, - {0xeeab87, 0x83378f30}, - {0xeeab88, 0x83378f31}, - {0xeeab89, 0x83378f32}, - {0xeeab8a, 0x83378f33}, - {0xeeab8b, 0x83378f34}, - {0xeeab8c, 0x83378f35}, - {0xeeab8d, 0x83378f36}, - {0xeeab8e, 0x83378f37}, - {0xeeab8f, 0x83378f38}, - {0xeeab90, 0x83378f39}, - {0xeeab91, 0x83379030}, - {0xeeab92, 0x83379031}, - {0xeeab93, 0x83379032}, - {0xeeab94, 0x83379033}, - {0xeeab95, 0x83379034}, - {0xeeab96, 0x83379035}, - {0xeeab97, 0x83379036}, - {0xeeab98, 0x83379037}, - {0xeeab99, 0x83379038}, - {0xeeab9a, 0x83379039}, - {0xeeab9b, 0x83379130}, - {0xeeab9c, 0x83379131}, - {0xeeab9d, 0x83379132}, - {0xeeab9e, 0x83379133}, - {0xeeab9f, 0x83379134}, - {0xeeaba0, 0x83379135}, - {0xeeaba1, 0x83379136}, - {0xeeaba2, 0x83379137}, - {0xeeaba3, 0x83379138}, - {0xeeaba4, 0x83379139}, - {0xeeaba5, 0x83379230}, - {0xeeaba6, 0x83379231}, - {0xeeaba7, 0x83379232}, - {0xeeaba8, 0x83379233}, - {0xeeaba9, 0x83379234}, - {0xeeabaa, 0x83379235}, - {0xeeabab, 0x83379236}, - {0xeeabac, 0x83379237}, - {0xeeabad, 0x83379238}, - {0xeeabae, 0x83379239}, - {0xeeabaf, 0x83379330}, - {0xeeabb0, 0x83379331}, - {0xeeabb1, 0x83379332}, - {0xeeabb2, 0x83379333}, - {0xeeabb3, 0x83379334}, - {0xeeabb4, 0x83379335}, - {0xeeabb5, 0x83379336}, - {0xeeabb6, 0x83379337}, - {0xeeabb7, 0x83379338}, - {0xeeabb8, 0x83379339}, - {0xeeabb9, 0x83379430}, - {0xeeabba, 0x83379431}, - {0xeeabbb, 0x83379432}, - {0xeeabbc, 0x83379433}, - {0xeeabbd, 0x83379434}, - {0xeeabbe, 0x83379435}, - {0xeeabbf, 0x83379436}, - {0xeeac80, 0x83379437}, - {0xeeac81, 0x83379438}, - {0xeeac82, 0x83379439}, - {0xeeac83, 0x83379530}, - {0xeeac84, 0x83379531}, - {0xeeac85, 0x83379532}, - {0xeeac86, 0x83379533}, - {0xeeac87, 0x83379534}, - {0xeeac88, 0x83379535}, - {0xeeac89, 0x83379536}, - {0xeeac8a, 0x83379537}, - {0xeeac8b, 0x83379538}, - {0xeeac8c, 0x83379539}, - {0xeeac8d, 0x83379630}, - {0xeeac8e, 0x83379631}, - {0xeeac8f, 0x83379632}, - {0xeeac90, 0x83379633}, - {0xeeac91, 0x83379634}, - {0xeeac92, 0x83379635}, - {0xeeac93, 0x83379636}, - {0xeeac94, 0x83379637}, - {0xeeac95, 0x83379638}, - {0xeeac96, 0x83379639}, - {0xeeac97, 0x83379730}, - {0xeeac98, 0x83379731}, - {0xeeac99, 0x83379732}, - {0xeeac9a, 0x83379733}, - {0xeeac9b, 0x83379734}, - {0xeeac9c, 0x83379735}, - {0xeeac9d, 0x83379736}, - {0xeeac9e, 0x83379737}, - {0xeeac9f, 0x83379738}, - {0xeeaca0, 0x83379739}, - {0xeeaca1, 0x83379830}, - {0xeeaca2, 0x83379831}, - {0xeeaca3, 0x83379832}, - {0xeeaca4, 0x83379833}, - {0xeeaca5, 0x83379834}, - {0xeeaca6, 0x83379835}, - {0xeeaca7, 0x83379836}, - {0xeeaca8, 0x83379837}, - {0xeeaca9, 0x83379838}, - {0xeeacaa, 0x83379839}, - {0xeeacab, 0x83379930}, - {0xeeacac, 0x83379931}, - {0xeeacad, 0x83379932}, - {0xeeacae, 0x83379933}, - {0xeeacaf, 0x83379934}, - {0xeeacb0, 0x83379935}, - {0xeeacb1, 0x83379936}, - {0xeeacb2, 0x83379937}, - {0xeeacb3, 0x83379938}, - {0xeeacb4, 0x83379939}, - {0xeeacb5, 0x83379a30}, - {0xeeacb6, 0x83379a31}, - {0xeeacb7, 0x83379a32}, - {0xeeacb8, 0x83379a33}, - {0xeeacb9, 0x83379a34}, - {0xeeacba, 0x83379a35}, - {0xeeacbb, 0x83379a36}, - {0xeeacbc, 0x83379a37}, - {0xeeacbd, 0x83379a38}, - {0xeeacbe, 0x83379a39}, - {0xeeacbf, 0x83379b30}, - {0xeead80, 0x83379b31}, - {0xeead81, 0x83379b32}, - {0xeead82, 0x83379b33}, - {0xeead83, 0x83379b34}, - {0xeead84, 0x83379b35}, - {0xeead85, 0x83379b36}, - {0xeead86, 0x83379b37}, - {0xeead87, 0x83379b38}, - {0xeead88, 0x83379b39}, - {0xeead89, 0x83379c30}, - {0xeead8a, 0x83379c31}, - {0xeead8b, 0x83379c32}, - {0xeead8c, 0x83379c33}, - {0xeead8d, 0x83379c34}, - {0xeead8e, 0x83379c35}, - {0xeead8f, 0x83379c36}, - {0xeead90, 0x83379c37}, - {0xeead91, 0x83379c38}, - {0xeead92, 0x83379c39}, - {0xeead93, 0x83379d30}, - {0xeead94, 0x83379d31}, - {0xeead95, 0x83379d32}, - {0xeead96, 0x83379d33}, - {0xeead97, 0x83379d34}, - {0xeead98, 0x83379d35}, - {0xeead99, 0x83379d36}, - {0xeead9a, 0x83379d37}, - {0xeead9b, 0x83379d38}, - {0xeead9c, 0x83379d39}, - {0xeead9d, 0x83379e30}, - {0xeead9e, 0x83379e31}, - {0xeead9f, 0x83379e32}, - {0xeeada0, 0x83379e33}, - {0xeeada1, 0x83379e34}, - {0xeeada2, 0x83379e35}, - {0xeeada3, 0x83379e36}, - {0xeeada4, 0x83379e37}, - {0xeeada5, 0x83379e38}, - {0xeeada6, 0x83379e39}, - {0xeeada7, 0x83379f30}, - {0xeeada8, 0x83379f31}, - {0xeeada9, 0x83379f32}, - {0xeeadaa, 0x83379f33}, - {0xeeadab, 0x83379f34}, - {0xeeadac, 0x83379f35}, - {0xeeadad, 0x83379f36}, - {0xeeadae, 0x83379f37}, - {0xeeadaf, 0x83379f38}, - {0xeeadb0, 0x83379f39}, - {0xeeadb1, 0x8337a030}, - {0xeeadb2, 0x8337a031}, - {0xeeadb3, 0x8337a032}, - {0xeeadb4, 0x8337a033}, - {0xeeadb5, 0x8337a034}, - {0xeeadb6, 0x8337a035}, - {0xeeadb7, 0x8337a036}, - {0xeeadb8, 0x8337a037}, - {0xeeadb9, 0x8337a038}, - {0xeeadba, 0x8337a039}, - {0xeeadbb, 0x8337a130}, - {0xeeadbc, 0x8337a131}, - {0xeeadbd, 0x8337a132}, - {0xeeadbe, 0x8337a133}, - {0xeeadbf, 0x8337a134}, - {0xeeae80, 0x8337a135}, - {0xeeae81, 0x8337a136}, - {0xeeae82, 0x8337a137}, - {0xeeae83, 0x8337a138}, - {0xeeae84, 0x8337a139}, - {0xeeae85, 0x8337a230}, - {0xeeae86, 0x8337a231}, - {0xeeae87, 0x8337a232}, - {0xeeae88, 0x8337a233}, - {0xeeae89, 0x8337a234}, - {0xeeae8a, 0x8337a235}, - {0xeeae8b, 0x8337a236}, - {0xeeae8c, 0x8337a237}, - {0xeeae8d, 0x8337a238}, - {0xeeae8e, 0x8337a239}, - {0xeeae8f, 0x8337a330}, - {0xeeae90, 0x8337a331}, - {0xeeae91, 0x8337a332}, - {0xeeae92, 0x8337a333}, - {0xeeae93, 0x8337a334}, - {0xeeae94, 0x8337a335}, - {0xeeae95, 0x8337a336}, - {0xeeae96, 0x8337a337}, - {0xeeae97, 0x8337a338}, - {0xeeae98, 0x8337a339}, - {0xeeae99, 0x8337a430}, - {0xeeae9a, 0x8337a431}, - {0xeeae9b, 0x8337a432}, - {0xeeae9c, 0x8337a433}, - {0xeeae9d, 0x8337a434}, - {0xeeae9e, 0x8337a435}, - {0xeeae9f, 0x8337a436}, - {0xeeaea0, 0x8337a437}, - {0xeeaea1, 0x8337a438}, - {0xeeaea2, 0x8337a439}, - {0xeeaea3, 0x8337a530}, - {0xeeaea4, 0x8337a531}, - {0xeeaea5, 0x8337a532}, - {0xeeaea6, 0x8337a533}, - {0xeeaea7, 0x8337a534}, - {0xeeaea8, 0x8337a535}, - {0xeeaea9, 0x8337a536}, - {0xeeaeaa, 0x8337a537}, - {0xeeaeab, 0x8337a538}, - {0xeeaeac, 0x8337a539}, - {0xeeaead, 0x8337a630}, - {0xeeaeae, 0x8337a631}, - {0xeeaeaf, 0x8337a632}, - {0xeeaeb0, 0x8337a633}, - {0xeeaeb1, 0x8337a634}, - {0xeeaeb2, 0x8337a635}, - {0xeeaeb3, 0x8337a636}, - {0xeeaeb4, 0x8337a637}, - {0xeeaeb5, 0x8337a638}, - {0xeeaeb6, 0x8337a639}, - {0xeeaeb7, 0x8337a730}, - {0xeeaeb8, 0x8337a731}, - {0xeeaeb9, 0x8337a732}, - {0xeeaeba, 0x8337a733}, - {0xeeaebb, 0x8337a734}, - {0xeeaebc, 0x8337a735}, - {0xeeaebd, 0x8337a736}, - {0xeeaebe, 0x8337a737}, - {0xeeaebf, 0x8337a738}, - {0xeeaf80, 0x8337a739}, - {0xeeaf81, 0x8337a830}, - {0xeeaf82, 0x8337a831}, - {0xeeaf83, 0x8337a832}, - {0xeeaf84, 0x8337a833}, - {0xeeaf85, 0x8337a834}, - {0xeeaf86, 0x8337a835}, - {0xeeaf87, 0x8337a836}, - {0xeeaf88, 0x8337a837}, - {0xeeaf89, 0x8337a838}, - {0xeeaf8a, 0x8337a839}, - {0xeeaf8b, 0x8337a930}, - {0xeeaf8c, 0x8337a931}, - {0xeeaf8d, 0x8337a932}, - {0xeeaf8e, 0x8337a933}, - {0xeeaf8f, 0x8337a934}, - {0xeeaf90, 0x8337a935}, - {0xeeaf91, 0x8337a936}, - {0xeeaf92, 0x8337a937}, - {0xeeaf93, 0x8337a938}, - {0xeeaf94, 0x8337a939}, - {0xeeaf95, 0x8337aa30}, - {0xeeaf96, 0x8337aa31}, - {0xeeaf97, 0x8337aa32}, - {0xeeaf98, 0x8337aa33}, - {0xeeaf99, 0x8337aa34}, - {0xeeaf9a, 0x8337aa35}, - {0xeeaf9b, 0x8337aa36}, - {0xeeaf9c, 0x8337aa37}, - {0xeeaf9d, 0x8337aa38}, - {0xeeaf9e, 0x8337aa39}, - {0xeeaf9f, 0x8337ab30}, - {0xeeafa0, 0x8337ab31}, - {0xeeafa1, 0x8337ab32}, - {0xeeafa2, 0x8337ab33}, - {0xeeafa3, 0x8337ab34}, - {0xeeafa4, 0x8337ab35}, - {0xeeafa5, 0x8337ab36}, - {0xeeafa6, 0x8337ab37}, - {0xeeafa7, 0x8337ab38}, - {0xeeafa8, 0x8337ab39}, - {0xeeafa9, 0x8337ac30}, - {0xeeafaa, 0x8337ac31}, - {0xeeafab, 0x8337ac32}, - {0xeeafac, 0x8337ac33}, - {0xeeafad, 0x8337ac34}, - {0xeeafae, 0x8337ac35}, - {0xeeafaf, 0x8337ac36}, - {0xeeafb0, 0x8337ac37}, - {0xeeafb1, 0x8337ac38}, - {0xeeafb2, 0x8337ac39}, - {0xeeafb3, 0x8337ad30}, - {0xeeafb4, 0x8337ad31}, - {0xeeafb5, 0x8337ad32}, - {0xeeafb6, 0x8337ad33}, - {0xeeafb7, 0x8337ad34}, - {0xeeafb8, 0x8337ad35}, - {0xeeafb9, 0x8337ad36}, - {0xeeafba, 0x8337ad37}, - {0xeeafbb, 0x8337ad38}, - {0xeeafbc, 0x8337ad39}, - {0xeeafbd, 0x8337ae30}, - {0xeeafbe, 0x8337ae31}, - {0xeeafbf, 0x8337ae32}, - {0xeeb080, 0x8337ae33}, - {0xeeb081, 0x8337ae34}, - {0xeeb082, 0x8337ae35}, - {0xeeb083, 0x8337ae36}, - {0xeeb084, 0x8337ae37}, - {0xeeb085, 0x8337ae38}, - {0xeeb086, 0x8337ae39}, - {0xeeb087, 0x8337af30}, - {0xeeb088, 0x8337af31}, - {0xeeb089, 0x8337af32}, - {0xeeb08a, 0x8337af33}, - {0xeeb08b, 0x8337af34}, - {0xeeb08c, 0x8337af35}, - {0xeeb08d, 0x8337af36}, - {0xeeb08e, 0x8337af37}, - {0xeeb08f, 0x8337af38}, - {0xeeb090, 0x8337af39}, - {0xeeb091, 0x8337b030}, - {0xeeb092, 0x8337b031}, - {0xeeb093, 0x8337b032}, - {0xeeb094, 0x8337b033}, - {0xeeb095, 0x8337b034}, - {0xeeb096, 0x8337b035}, - {0xeeb097, 0x8337b036}, - {0xeeb098, 0x8337b037}, - {0xeeb099, 0x8337b038}, - {0xeeb09a, 0x8337b039}, - {0xeeb09b, 0x8337b130}, - {0xeeb09c, 0x8337b131}, - {0xeeb09d, 0x8337b132}, - {0xeeb09e, 0x8337b133}, - {0xeeb09f, 0x8337b134}, - {0xeeb0a0, 0x8337b135}, - {0xeeb0a1, 0x8337b136}, - {0xeeb0a2, 0x8337b137}, - {0xeeb0a3, 0x8337b138}, - {0xeeb0a4, 0x8337b139}, - {0xeeb0a5, 0x8337b230}, - {0xeeb0a6, 0x8337b231}, - {0xeeb0a7, 0x8337b232}, - {0xeeb0a8, 0x8337b233}, - {0xeeb0a9, 0x8337b234}, - {0xeeb0aa, 0x8337b235}, - {0xeeb0ab, 0x8337b236}, - {0xeeb0ac, 0x8337b237}, - {0xeeb0ad, 0x8337b238}, - {0xeeb0ae, 0x8337b239}, - {0xeeb0af, 0x8337b330}, - {0xeeb0b0, 0x8337b331}, - {0xeeb0b1, 0x8337b332}, - {0xeeb0b2, 0x8337b333}, - {0xeeb0b3, 0x8337b334}, - {0xeeb0b4, 0x8337b335}, - {0xeeb0b5, 0x8337b336}, - {0xeeb0b6, 0x8337b337}, - {0xeeb0b7, 0x8337b338}, - {0xeeb0b8, 0x8337b339}, - {0xeeb0b9, 0x8337b430}, - {0xeeb0ba, 0x8337b431}, - {0xeeb0bb, 0x8337b432}, - {0xeeb0bc, 0x8337b433}, - {0xeeb0bd, 0x8337b434}, - {0xeeb0be, 0x8337b435}, - {0xeeb0bf, 0x8337b436}, - {0xeeb180, 0x8337b437}, - {0xeeb181, 0x8337b438}, - {0xeeb182, 0x8337b439}, - {0xeeb183, 0x8337b530}, - {0xeeb184, 0x8337b531}, - {0xeeb185, 0x8337b532}, - {0xeeb186, 0x8337b533}, - {0xeeb187, 0x8337b534}, - {0xeeb188, 0x8337b535}, - {0xeeb189, 0x8337b536}, - {0xeeb18a, 0x8337b537}, - {0xeeb18b, 0x8337b538}, - {0xeeb18c, 0x8337b539}, - {0xeeb18d, 0x8337b630}, - {0xeeb18e, 0x8337b631}, - {0xeeb18f, 0x8337b632}, - {0xeeb190, 0x8337b633}, - {0xeeb191, 0x8337b634}, - {0xeeb192, 0x8337b635}, - {0xeeb193, 0x8337b636}, - {0xeeb194, 0x8337b637}, - {0xeeb195, 0x8337b638}, - {0xeeb196, 0x8337b639}, - {0xeeb197, 0x8337b730}, - {0xeeb198, 0x8337b731}, - {0xeeb199, 0x8337b732}, - {0xeeb19a, 0x8337b733}, - {0xeeb19b, 0x8337b734}, - {0xeeb19c, 0x8337b735}, - {0xeeb19d, 0x8337b736}, - {0xeeb19e, 0x8337b737}, - {0xeeb19f, 0x8337b738}, - {0xeeb1a0, 0x8337b739}, - {0xeeb1a1, 0x8337b830}, - {0xeeb1a2, 0x8337b831}, - {0xeeb1a3, 0x8337b832}, - {0xeeb1a4, 0x8337b833}, - {0xeeb1a5, 0x8337b834}, - {0xeeb1a6, 0x8337b835}, - {0xeeb1a7, 0x8337b836}, - {0xeeb1a8, 0x8337b837}, - {0xeeb1a9, 0x8337b838}, - {0xeeb1aa, 0x8337b839}, - {0xeeb1ab, 0x8337b930}, - {0xeeb1ac, 0x8337b931}, - {0xeeb1ad, 0x8337b932}, - {0xeeb1ae, 0x8337b933}, - {0xeeb1af, 0x8337b934}, - {0xeeb1b0, 0x8337b935}, - {0xeeb1b1, 0x8337b936}, - {0xeeb1b2, 0x8337b937}, - {0xeeb1b3, 0x8337b938}, - {0xeeb1b4, 0x8337b939}, - {0xeeb1b5, 0x8337ba30}, - {0xeeb1b6, 0x8337ba31}, - {0xeeb1b7, 0x8337ba32}, - {0xeeb1b8, 0x8337ba33}, - {0xeeb1b9, 0x8337ba34}, - {0xeeb1ba, 0x8337ba35}, - {0xeeb1bb, 0x8337ba36}, - {0xeeb1bc, 0x8337ba37}, - {0xeeb1bd, 0x8337ba38}, - {0xeeb1be, 0x8337ba39}, - {0xeeb1bf, 0x8337bb30}, - {0xeeb280, 0x8337bb31}, - {0xeeb281, 0x8337bb32}, - {0xeeb282, 0x8337bb33}, - {0xeeb283, 0x8337bb34}, - {0xeeb284, 0x8337bb35}, - {0xeeb285, 0x8337bb36}, - {0xeeb286, 0x8337bb37}, - {0xeeb287, 0x8337bb38}, - {0xeeb288, 0x8337bb39}, - {0xeeb289, 0x8337bc30}, - {0xeeb28a, 0x8337bc31}, - {0xeeb28b, 0x8337bc32}, - {0xeeb28c, 0x8337bc33}, - {0xeeb28d, 0x8337bc34}, - {0xeeb28e, 0x8337bc35}, - {0xeeb28f, 0x8337bc36}, - {0xeeb290, 0x8337bc37}, - {0xeeb291, 0x8337bc38}, - {0xeeb292, 0x8337bc39}, - {0xeeb293, 0x8337bd30}, - {0xeeb294, 0x8337bd31}, - {0xeeb295, 0x8337bd32}, - {0xeeb296, 0x8337bd33}, - {0xeeb297, 0x8337bd34}, - {0xeeb298, 0x8337bd35}, - {0xeeb299, 0x8337bd36}, - {0xeeb29a, 0x8337bd37}, - {0xeeb29b, 0x8337bd38}, - {0xeeb29c, 0x8337bd39}, - {0xeeb29d, 0x8337be30}, - {0xeeb29e, 0x8337be31}, - {0xeeb29f, 0x8337be32}, - {0xeeb2a0, 0x8337be33}, - {0xeeb2a1, 0x8337be34}, - {0xeeb2a2, 0x8337be35}, - {0xeeb2a3, 0x8337be36}, - {0xeeb2a4, 0x8337be37}, - {0xeeb2a5, 0x8337be38}, - {0xeeb2a6, 0x8337be39}, - {0xeeb2a7, 0x8337bf30}, - {0xeeb2a8, 0x8337bf31}, - {0xeeb2a9, 0x8337bf32}, - {0xeeb2aa, 0x8337bf33}, - {0xeeb2ab, 0x8337bf34}, - {0xeeb2ac, 0x8337bf35}, - {0xeeb2ad, 0x8337bf36}, - {0xeeb2ae, 0x8337bf37}, - {0xeeb2af, 0x8337bf38}, - {0xeeb2b0, 0x8337bf39}, - {0xeeb2b1, 0x8337c030}, - {0xeeb2b2, 0x8337c031}, - {0xeeb2b3, 0x8337c032}, - {0xeeb2b4, 0x8337c033}, - {0xeeb2b5, 0x8337c034}, - {0xeeb2b6, 0x8337c035}, - {0xeeb2b7, 0x8337c036}, - {0xeeb2b8, 0x8337c037}, - {0xeeb2b9, 0x8337c038}, - {0xeeb2ba, 0x8337c039}, - {0xeeb2bb, 0x8337c130}, - {0xeeb2bc, 0x8337c131}, - {0xeeb2bd, 0x8337c132}, - {0xeeb2be, 0x8337c133}, - {0xeeb2bf, 0x8337c134}, - {0xeeb380, 0x8337c135}, - {0xeeb381, 0x8337c136}, - {0xeeb382, 0x8337c137}, - {0xeeb383, 0x8337c138}, - {0xeeb384, 0x8337c139}, - {0xeeb385, 0x8337c230}, - {0xeeb386, 0x8337c231}, - {0xeeb387, 0x8337c232}, - {0xeeb388, 0x8337c233}, - {0xeeb389, 0x8337c234}, - {0xeeb38a, 0x8337c235}, - {0xeeb38b, 0x8337c236}, - {0xeeb38c, 0x8337c237}, - {0xeeb38d, 0x8337c238}, - {0xeeb38e, 0x8337c239}, - {0xeeb38f, 0x8337c330}, - {0xeeb390, 0x8337c331}, - {0xeeb391, 0x8337c332}, - {0xeeb392, 0x8337c333}, - {0xeeb393, 0x8337c334}, - {0xeeb394, 0x8337c335}, - {0xeeb395, 0x8337c336}, - {0xeeb396, 0x8337c337}, - {0xeeb397, 0x8337c338}, - {0xeeb398, 0x8337c339}, - {0xeeb399, 0x8337c430}, - {0xeeb39a, 0x8337c431}, - {0xeeb39b, 0x8337c432}, - {0xeeb39c, 0x8337c433}, - {0xeeb39d, 0x8337c434}, - {0xeeb39e, 0x8337c435}, - {0xeeb39f, 0x8337c436}, - {0xeeb3a0, 0x8337c437}, - {0xeeb3a1, 0x8337c438}, - {0xeeb3a2, 0x8337c439}, - {0xeeb3a3, 0x8337c530}, - {0xeeb3a4, 0x8337c531}, - {0xeeb3a5, 0x8337c532}, - {0xeeb3a6, 0x8337c533}, - {0xeeb3a7, 0x8337c534}, - {0xeeb3a8, 0x8337c535}, - {0xeeb3a9, 0x8337c536}, - {0xeeb3aa, 0x8337c537}, - {0xeeb3ab, 0x8337c538}, - {0xeeb3ac, 0x8337c539}, - {0xeeb3ad, 0x8337c630}, - {0xeeb3ae, 0x8337c631}, - {0xeeb3af, 0x8337c632}, - {0xeeb3b0, 0x8337c633}, - {0xeeb3b1, 0x8337c634}, - {0xeeb3b2, 0x8337c635}, - {0xeeb3b3, 0x8337c636}, - {0xeeb3b4, 0x8337c637}, - {0xeeb3b5, 0x8337c638}, - {0xeeb3b6, 0x8337c639}, - {0xeeb3b7, 0x8337c730}, - {0xeeb3b8, 0x8337c731}, - {0xeeb3b9, 0x8337c732}, - {0xeeb3ba, 0x8337c733}, - {0xeeb3bb, 0x8337c734}, - {0xeeb3bc, 0x8337c735}, - {0xeeb3bd, 0x8337c736}, - {0xeeb3be, 0x8337c737}, - {0xeeb3bf, 0x8337c738}, - {0xeeb480, 0x8337c739}, - {0xeeb481, 0x8337c830}, - {0xeeb482, 0x8337c831}, - {0xeeb483, 0x8337c832}, - {0xeeb484, 0x8337c833}, - {0xeeb485, 0x8337c834}, - {0xeeb486, 0x8337c835}, - {0xeeb487, 0x8337c836}, - {0xeeb488, 0x8337c837}, - {0xeeb489, 0x8337c838}, - {0xeeb48a, 0x8337c839}, - {0xeeb48b, 0x8337c930}, - {0xeeb48c, 0x8337c931}, - {0xeeb48d, 0x8337c932}, - {0xeeb48e, 0x8337c933}, - {0xeeb48f, 0x8337c934}, - {0xeeb490, 0x8337c935}, - {0xeeb491, 0x8337c936}, - {0xeeb492, 0x8337c937}, - {0xeeb493, 0x8337c938}, - {0xeeb494, 0x8337c939}, - {0xeeb495, 0x8337ca30}, - {0xeeb496, 0x8337ca31}, - {0xeeb497, 0x8337ca32}, - {0xeeb498, 0x8337ca33}, - {0xeeb499, 0x8337ca34}, - {0xeeb49a, 0x8337ca35}, - {0xeeb49b, 0x8337ca36}, - {0xeeb49c, 0x8337ca37}, - {0xeeb49d, 0x8337ca38}, - {0xeeb49e, 0x8337ca39}, - {0xeeb49f, 0x8337cb30}, - {0xeeb4a0, 0x8337cb31}, - {0xeeb4a1, 0x8337cb32}, - {0xeeb4a2, 0x8337cb33}, - {0xeeb4a3, 0x8337cb34}, - {0xeeb4a4, 0x8337cb35}, - {0xeeb4a5, 0x8337cb36}, - {0xeeb4a6, 0x8337cb37}, - {0xeeb4a7, 0x8337cb38}, - {0xeeb4a8, 0x8337cb39}, - {0xeeb4a9, 0x8337cc30}, - {0xeeb4aa, 0x8337cc31}, - {0xeeb4ab, 0x8337cc32}, - {0xeeb4ac, 0x8337cc33}, - {0xeeb4ad, 0x8337cc34}, - {0xeeb4ae, 0x8337cc35}, - {0xeeb4af, 0x8337cc36}, - {0xeeb4b0, 0x8337cc37}, - {0xeeb4b1, 0x8337cc38}, - {0xeeb4b2, 0x8337cc39}, - {0xeeb4b3, 0x8337cd30}, - {0xeeb4b4, 0x8337cd31}, - {0xeeb4b5, 0x8337cd32}, - {0xeeb4b6, 0x8337cd33}, - {0xeeb4b7, 0x8337cd34}, - {0xeeb4b8, 0x8337cd35}, - {0xeeb4b9, 0x8337cd36}, - {0xeeb4ba, 0x8337cd37}, - {0xeeb4bb, 0x8337cd38}, - {0xeeb4bc, 0x8337cd39}, - {0xeeb4bd, 0x8337ce30}, - {0xeeb4be, 0x8337ce31}, - {0xeeb4bf, 0x8337ce32}, - {0xeeb580, 0x8337ce33}, - {0xeeb581, 0x8337ce34}, - {0xeeb582, 0x8337ce35}, - {0xeeb583, 0x8337ce36}, - {0xeeb584, 0x8337ce37}, - {0xeeb585, 0x8337ce38}, - {0xeeb586, 0x8337ce39}, - {0xeeb587, 0x8337cf30}, - {0xeeb588, 0x8337cf31}, - {0xeeb589, 0x8337cf32}, - {0xeeb58a, 0x8337cf33}, - {0xeeb58b, 0x8337cf34}, - {0xeeb58c, 0x8337cf35}, - {0xeeb58d, 0x8337cf36}, - {0xeeb58e, 0x8337cf37}, - {0xeeb58f, 0x8337cf38}, - {0xeeb590, 0x8337cf39}, - {0xeeb591, 0x8337d030}, - {0xeeb592, 0x8337d031}, - {0xeeb593, 0x8337d032}, - {0xeeb594, 0x8337d033}, - {0xeeb595, 0x8337d034}, - {0xeeb596, 0x8337d035}, - {0xeeb597, 0x8337d036}, - {0xeeb598, 0x8337d037}, - {0xeeb599, 0x8337d038}, - {0xeeb59a, 0x8337d039}, - {0xeeb59b, 0x8337d130}, - {0xeeb59c, 0x8337d131}, - {0xeeb59d, 0x8337d132}, - {0xeeb59e, 0x8337d133}, - {0xeeb59f, 0x8337d134}, - {0xeeb5a0, 0x8337d135}, - {0xeeb5a1, 0x8337d136}, - {0xeeb5a2, 0x8337d137}, - {0xeeb5a3, 0x8337d138}, - {0xeeb5a4, 0x8337d139}, - {0xeeb5a5, 0x8337d230}, - {0xeeb5a6, 0x8337d231}, - {0xeeb5a7, 0x8337d232}, - {0xeeb5a8, 0x8337d233}, - {0xeeb5a9, 0x8337d234}, - {0xeeb5aa, 0x8337d235}, - {0xeeb5ab, 0x8337d236}, - {0xeeb5ac, 0x8337d237}, - {0xeeb5ad, 0x8337d238}, - {0xeeb5ae, 0x8337d239}, - {0xeeb5af, 0x8337d330}, - {0xeeb5b0, 0x8337d331}, - {0xeeb5b1, 0x8337d332}, - {0xeeb5b2, 0x8337d333}, - {0xeeb5b3, 0x8337d334}, - {0xeeb5b4, 0x8337d335}, - {0xeeb5b5, 0x8337d336}, - {0xeeb5b6, 0x8337d337}, - {0xeeb5b7, 0x8337d338}, - {0xeeb5b8, 0x8337d339}, - {0xeeb5b9, 0x8337d430}, - {0xeeb5ba, 0x8337d431}, - {0xeeb5bb, 0x8337d432}, - {0xeeb5bc, 0x8337d433}, - {0xeeb5bd, 0x8337d434}, - {0xeeb5be, 0x8337d435}, - {0xeeb5bf, 0x8337d436}, - {0xeeb680, 0x8337d437}, - {0xeeb681, 0x8337d438}, - {0xeeb682, 0x8337d439}, - {0xeeb683, 0x8337d530}, - {0xeeb684, 0x8337d531}, - {0xeeb685, 0x8337d532}, - {0xeeb686, 0x8337d533}, - {0xeeb687, 0x8337d534}, - {0xeeb688, 0x8337d535}, - {0xeeb689, 0x8337d536}, - {0xeeb68a, 0x8337d537}, - {0xeeb68b, 0x8337d538}, - {0xeeb68c, 0x8337d539}, - {0xeeb68d, 0x8337d630}, - {0xeeb68e, 0x8337d631}, - {0xeeb68f, 0x8337d632}, - {0xeeb690, 0x8337d633}, - {0xeeb691, 0x8337d634}, - {0xeeb692, 0x8337d635}, - {0xeeb693, 0x8337d636}, - {0xeeb694, 0x8337d637}, - {0xeeb695, 0x8337d638}, - {0xeeb696, 0x8337d639}, - {0xeeb697, 0x8337d730}, - {0xeeb698, 0x8337d731}, - {0xeeb699, 0x8337d732}, - {0xeeb69a, 0x8337d733}, - {0xeeb69b, 0x8337d734}, - {0xeeb69c, 0x8337d735}, - {0xeeb69d, 0x8337d736}, - {0xeeb69e, 0x8337d737}, - {0xeeb69f, 0x8337d738}, - {0xeeb6a0, 0x8337d739}, - {0xeeb6a1, 0x8337d830}, - {0xeeb6a2, 0x8337d831}, - {0xeeb6a3, 0x8337d832}, - {0xeeb6a4, 0x8337d833}, - {0xeeb6a5, 0x8337d834}, - {0xeeb6a6, 0x8337d835}, - {0xeeb6a7, 0x8337d836}, - {0xeeb6a8, 0x8337d837}, - {0xeeb6a9, 0x8337d838}, - {0xeeb6aa, 0x8337d839}, - {0xeeb6ab, 0x8337d930}, - {0xeeb6ac, 0x8337d931}, - {0xeeb6ad, 0x8337d932}, - {0xeeb6ae, 0x8337d933}, - {0xeeb6af, 0x8337d934}, - {0xeeb6b0, 0x8337d935}, - {0xeeb6b1, 0x8337d936}, - {0xeeb6b2, 0x8337d937}, - {0xeeb6b3, 0x8337d938}, - {0xeeb6b4, 0x8337d939}, - {0xeeb6b5, 0x8337da30}, - {0xeeb6b6, 0x8337da31}, - {0xeeb6b7, 0x8337da32}, - {0xeeb6b8, 0x8337da33}, - {0xeeb6b9, 0x8337da34}, - {0xeeb6ba, 0x8337da35}, - {0xeeb6bb, 0x8337da36}, - {0xeeb6bc, 0x8337da37}, - {0xeeb6bd, 0x8337da38}, - {0xeeb6be, 0x8337da39}, - {0xeeb6bf, 0x8337db30}, - {0xeeb780, 0x8337db31}, - {0xeeb781, 0x8337db32}, - {0xeeb782, 0x8337db33}, - {0xeeb783, 0x8337db34}, - {0xeeb784, 0x8337db35}, - {0xeeb785, 0x8337db36}, - {0xeeb786, 0x8337db37}, - {0xeeb787, 0x8337db38}, - {0xeeb788, 0x8337db39}, - {0xeeb789, 0x8337dc30}, - {0xeeb78a, 0x8337dc31}, - {0xeeb78b, 0x8337dc32}, - {0xeeb78c, 0x8337dc33}, - {0xeeb78d, 0x8337dc34}, - {0xeeb78e, 0x8337dc35}, - {0xeeb78f, 0x8337dc36}, - {0xeeb790, 0x8337dc37}, - {0xeeb791, 0x8337dc38}, - {0xeeb792, 0x8337dc39}, - {0xeeb793, 0x8337dd30}, - {0xeeb794, 0x8337dd31}, - {0xeeb795, 0x8337dd32}, - {0xeeb796, 0x8337dd33}, - {0xeeb797, 0x8337dd34}, - {0xeeb798, 0x8337dd35}, - {0xeeb799, 0x8337dd36}, - {0xeeb79a, 0x8337dd37}, - {0xeeb79b, 0x8337dd38}, - {0xeeb79c, 0x8337dd39}, - {0xeeb79d, 0x8337de30}, - {0xeeb79e, 0x8337de31}, - {0xeeb79f, 0x8337de32}, - {0xeeb7a0, 0x8337de33}, - {0xeeb7a1, 0x8337de34}, - {0xeeb7a2, 0x8337de35}, - {0xeeb7a3, 0x8337de36}, - {0xeeb7a4, 0x8337de37}, - {0xeeb7a5, 0x8337de38}, - {0xeeb7a6, 0x8337de39}, - {0xeeb7a7, 0x8337df30}, - {0xeeb7a8, 0x8337df31}, - {0xeeb7a9, 0x8337df32}, - {0xeeb7aa, 0x8337df33}, - {0xeeb7ab, 0x8337df34}, - {0xeeb7ac, 0x8337df35}, - {0xeeb7ad, 0x8337df36}, - {0xeeb7ae, 0x8337df37}, - {0xeeb7af, 0x8337df38}, - {0xeeb7b0, 0x8337df39}, - {0xeeb7b1, 0x8337e030}, - {0xeeb7b2, 0x8337e031}, - {0xeeb7b3, 0x8337e032}, - {0xeeb7b4, 0x8337e033}, - {0xeeb7b5, 0x8337e034}, - {0xeeb7b6, 0x8337e035}, - {0xeeb7b7, 0x8337e036}, - {0xeeb7b8, 0x8337e037}, - {0xeeb7b9, 0x8337e038}, - {0xeeb7ba, 0x8337e039}, - {0xeeb7bb, 0x8337e130}, - {0xeeb7bc, 0x8337e131}, - {0xeeb7bd, 0x8337e132}, - {0xeeb7be, 0x8337e133}, - {0xeeb7bf, 0x8337e134}, - {0xeeb880, 0x8337e135}, - {0xeeb881, 0x8337e136}, - {0xeeb882, 0x8337e137}, - {0xeeb883, 0x8337e138}, - {0xeeb884, 0x8337e139}, - {0xeeb885, 0x8337e230}, - {0xeeb886, 0x8337e231}, - {0xeeb887, 0x8337e232}, - {0xeeb888, 0x8337e233}, - {0xeeb889, 0x8337e234}, - {0xeeb88a, 0x8337e235}, - {0xeeb88b, 0x8337e236}, - {0xeeb88c, 0x8337e237}, - {0xeeb88d, 0x8337e238}, - {0xeeb88e, 0x8337e239}, - {0xeeb88f, 0x8337e330}, - {0xeeb890, 0x8337e331}, - {0xeeb891, 0x8337e332}, - {0xeeb892, 0x8337e333}, - {0xeeb893, 0x8337e334}, - {0xeeb894, 0x8337e335}, - {0xeeb895, 0x8337e336}, - {0xeeb896, 0x8337e337}, - {0xeeb897, 0x8337e338}, - {0xeeb898, 0x8337e339}, - {0xeeb899, 0x8337e430}, - {0xeeb89a, 0x8337e431}, - {0xeeb89b, 0x8337e432}, - {0xeeb89c, 0x8337e433}, - {0xeeb89d, 0x8337e434}, - {0xeeb89e, 0x8337e435}, - {0xeeb89f, 0x8337e436}, - {0xeeb8a0, 0x8337e437}, - {0xeeb8a1, 0x8337e438}, - {0xeeb8a2, 0x8337e439}, - {0xeeb8a3, 0x8337e530}, - {0xeeb8a4, 0x8337e531}, - {0xeeb8a5, 0x8337e532}, - {0xeeb8a6, 0x8337e533}, - {0xeeb8a7, 0x8337e534}, - {0xeeb8a8, 0x8337e535}, - {0xeeb8a9, 0x8337e536}, - {0xeeb8aa, 0x8337e537}, - {0xeeb8ab, 0x8337e538}, - {0xeeb8ac, 0x8337e539}, - {0xeeb8ad, 0x8337e630}, - {0xeeb8ae, 0x8337e631}, - {0xeeb8af, 0x8337e632}, - {0xeeb8b0, 0x8337e633}, - {0xeeb8b1, 0x8337e634}, - {0xeeb8b2, 0x8337e635}, - {0xeeb8b3, 0x8337e636}, - {0xeeb8b4, 0x8337e637}, - {0xeeb8b5, 0x8337e638}, - {0xeeb8b6, 0x8337e639}, - {0xeeb8b7, 0x8337e730}, - {0xeeb8b8, 0x8337e731}, - {0xeeb8b9, 0x8337e732}, - {0xeeb8ba, 0x8337e733}, - {0xeeb8bb, 0x8337e734}, - {0xeeb8bc, 0x8337e735}, - {0xeeb8bd, 0x8337e736}, - {0xeeb8be, 0x8337e737}, - {0xeeb8bf, 0x8337e738}, - {0xeeb980, 0x8337e739}, - {0xeeb981, 0x8337e830}, - {0xeeb982, 0x8337e831}, - {0xeeb983, 0x8337e832}, - {0xeeb984, 0x8337e833}, - {0xeeb985, 0x8337e834}, - {0xeeb986, 0x8337e835}, - {0xeeb987, 0x8337e836}, - {0xeeb988, 0x8337e837}, - {0xeeb989, 0x8337e838}, - {0xeeb98a, 0x8337e839}, - {0xeeb98b, 0x8337e930}, - {0xeeb98c, 0x8337e931}, - {0xeeb98d, 0x8337e932}, - {0xeeb98e, 0x8337e933}, - {0xeeb98f, 0x8337e934}, - {0xeeb990, 0x8337e935}, - {0xeeb991, 0x8337e936}, - {0xeeb992, 0x8337e937}, - {0xeeb993, 0x8337e938}, - {0xeeb994, 0x8337e939}, - {0xeeb995, 0x8337ea30}, - {0xeeb996, 0x8337ea31}, - {0xeeb997, 0x8337ea32}, - {0xeeb998, 0x8337ea33}, - {0xeeb999, 0x8337ea34}, - {0xeeb99a, 0x8337ea35}, - {0xeeb99b, 0x8337ea36}, - {0xeeb99c, 0x8337ea37}, - {0xeeb99d, 0x8337ea38}, - {0xeeb99e, 0x8337ea39}, - {0xeeb99f, 0x8337eb30}, - {0xeeb9a0, 0x8337eb31}, - {0xeeb9a1, 0x8337eb32}, - {0xeeb9a2, 0x8337eb33}, - {0xeeb9a3, 0x8337eb34}, - {0xeeb9a4, 0x8337eb35}, - {0xeeb9a5, 0x8337eb36}, - {0xeeb9a6, 0x8337eb37}, - {0xeeb9a7, 0x8337eb38}, - {0xeeb9a8, 0x8337eb39}, - {0xeeb9a9, 0x8337ec30}, - {0xeeb9aa, 0x8337ec31}, - {0xeeb9ab, 0x8337ec32}, - {0xeeb9ac, 0x8337ec33}, - {0xeeb9ad, 0x8337ec34}, - {0xeeb9ae, 0x8337ec35}, - {0xeeb9af, 0x8337ec36}, - {0xeeb9b0, 0x8337ec37}, - {0xeeb9b1, 0x8337ec38}, - {0xeeb9b2, 0x8337ec39}, - {0xeeb9b3, 0x8337ed30}, - {0xeeb9b4, 0x8337ed31}, - {0xeeb9b5, 0x8337ed32}, - {0xeeb9b6, 0x8337ed33}, - {0xeeb9b7, 0x8337ed34}, - {0xeeb9b8, 0x8337ed35}, - {0xeeb9b9, 0x8337ed36}, - {0xeeb9ba, 0x8337ed37}, - {0xeeb9bb, 0x8337ed38}, - {0xeeb9bc, 0x8337ed39}, - {0xeeb9bd, 0x8337ee30}, - {0xeeb9be, 0x8337ee31}, - {0xeeb9bf, 0x8337ee32}, - {0xeeba80, 0x8337ee33}, - {0xeeba81, 0x8337ee34}, - {0xeeba82, 0x8337ee35}, - {0xeeba83, 0x8337ee36}, - {0xeeba84, 0x8337ee37}, - {0xeeba85, 0x8337ee38}, - {0xeeba86, 0x8337ee39}, - {0xeeba87, 0x8337ef30}, - {0xeeba88, 0x8337ef31}, - {0xeeba89, 0x8337ef32}, - {0xeeba8a, 0x8337ef33}, - {0xeeba8b, 0x8337ef34}, - {0xeeba8c, 0x8337ef35}, - {0xeeba8d, 0x8337ef36}, - {0xeeba8e, 0x8337ef37}, - {0xeeba8f, 0x8337ef38}, - {0xeeba90, 0x8337ef39}, - {0xeeba91, 0x8337f030}, - {0xeeba92, 0x8337f031}, - {0xeeba93, 0x8337f032}, - {0xeeba94, 0x8337f033}, - {0xeeba95, 0x8337f034}, - {0xeeba96, 0x8337f035}, - {0xeeba97, 0x8337f036}, - {0xeeba98, 0x8337f037}, - {0xeeba99, 0x8337f038}, - {0xeeba9a, 0x8337f039}, - {0xeeba9b, 0x8337f130}, - {0xeeba9c, 0x8337f131}, - {0xeeba9d, 0x8337f132}, - {0xeeba9e, 0x8337f133}, - {0xeeba9f, 0x8337f134}, - {0xeebaa0, 0x8337f135}, - {0xeebaa1, 0x8337f136}, - {0xeebaa2, 0x8337f137}, - {0xeebaa3, 0x8337f138}, - {0xeebaa4, 0x8337f139}, - {0xeebaa5, 0x8337f230}, - {0xeebaa6, 0x8337f231}, - {0xeebaa7, 0x8337f232}, - {0xeebaa8, 0x8337f233}, - {0xeebaa9, 0x8337f234}, - {0xeebaaa, 0x8337f235}, - {0xeebaab, 0x8337f236}, - {0xeebaac, 0x8337f237}, - {0xeebaad, 0x8337f238}, - {0xeebaae, 0x8337f239}, - {0xeebaaf, 0x8337f330}, - {0xeebab0, 0x8337f331}, - {0xeebab1, 0x8337f332}, - {0xeebab2, 0x8337f333}, - {0xeebab3, 0x8337f334}, - {0xeebab4, 0x8337f335}, - {0xeebab5, 0x8337f336}, - {0xeebab6, 0x8337f337}, - {0xeebab7, 0x8337f338}, - {0xeebab8, 0x8337f339}, - {0xeebab9, 0x8337f430}, - {0xeebaba, 0x8337f431}, - {0xeebabb, 0x8337f432}, - {0xeebabc, 0x8337f433}, - {0xeebabd, 0x8337f434}, - {0xeebabe, 0x8337f435}, - {0xeebabf, 0x8337f436}, - {0xeebb80, 0x8337f437}, - {0xeebb81, 0x8337f438}, - {0xeebb82, 0x8337f439}, - {0xeebb83, 0x8337f530}, - {0xeebb84, 0x8337f531}, - {0xeebb85, 0x8337f532}, - {0xeebb86, 0x8337f533}, - {0xeebb87, 0x8337f534}, - {0xeebb88, 0x8337f535}, - {0xeebb89, 0x8337f536}, - {0xeebb8a, 0x8337f537}, - {0xeebb8b, 0x8337f538}, - {0xeebb8c, 0x8337f539}, - {0xeebb8d, 0x8337f630}, - {0xeebb8e, 0x8337f631}, - {0xeebb8f, 0x8337f632}, - {0xeebb90, 0x8337f633}, - {0xeebb91, 0x8337f634}, - {0xeebb92, 0x8337f635}, - {0xeebb93, 0x8337f636}, - {0xeebb94, 0x8337f637}, - {0xeebb95, 0x8337f638}, - {0xeebb96, 0x8337f639}, - {0xeebb97, 0x8337f730}, - {0xeebb98, 0x8337f731}, - {0xeebb99, 0x8337f732}, - {0xeebb9a, 0x8337f733}, - {0xeebb9b, 0x8337f734}, - {0xeebb9c, 0x8337f735}, - {0xeebb9d, 0x8337f736}, - {0xeebb9e, 0x8337f737}, - {0xeebb9f, 0x8337f738}, - {0xeebba0, 0x8337f739}, - {0xeebba1, 0x8337f830}, - {0xeebba2, 0x8337f831}, - {0xeebba3, 0x8337f832}, - {0xeebba4, 0x8337f833}, - {0xeebba5, 0x8337f834}, - {0xeebba6, 0x8337f835}, - {0xeebba7, 0x8337f836}, - {0xeebba8, 0x8337f837}, - {0xeebba9, 0x8337f838}, - {0xeebbaa, 0x8337f839}, - {0xeebbab, 0x8337f930}, - {0xeebbac, 0x8337f931}, - {0xeebbad, 0x8337f932}, - {0xeebbae, 0x8337f933}, - {0xeebbaf, 0x8337f934}, - {0xeebbb0, 0x8337f935}, - {0xeebbb1, 0x8337f936}, - {0xeebbb2, 0x8337f937}, - {0xeebbb3, 0x8337f938}, - {0xeebbb4, 0x8337f939}, - {0xeebbb5, 0x8337fa30}, - {0xeebbb6, 0x8337fa31}, - {0xeebbb7, 0x8337fa32}, - {0xeebbb8, 0x8337fa33}, - {0xeebbb9, 0x8337fa34}, - {0xeebbba, 0x8337fa35}, - {0xeebbbb, 0x8337fa36}, - {0xeebbbc, 0x8337fa37}, - {0xeebbbd, 0x8337fa38}, - {0xeebbbe, 0x8337fa39}, - {0xeebbbf, 0x8337fb30}, - {0xeebc80, 0x8337fb31}, - {0xeebc81, 0x8337fb32}, - {0xeebc82, 0x8337fb33}, - {0xeebc83, 0x8337fb34}, - {0xeebc84, 0x8337fb35}, - {0xeebc85, 0x8337fb36}, - {0xeebc86, 0x8337fb37}, - {0xeebc87, 0x8337fb38}, - {0xeebc88, 0x8337fb39}, - {0xeebc89, 0x8337fc30}, - {0xeebc8a, 0x8337fc31}, - {0xeebc8b, 0x8337fc32}, - {0xeebc8c, 0x8337fc33}, - {0xeebc8d, 0x8337fc34}, - {0xeebc8e, 0x8337fc35}, - {0xeebc8f, 0x8337fc36}, - {0xeebc90, 0x8337fc37}, - {0xeebc91, 0x8337fc38}, - {0xeebc92, 0x8337fc39}, - {0xeebc93, 0x8337fd30}, - {0xeebc94, 0x8337fd31}, - {0xeebc95, 0x8337fd32}, - {0xeebc96, 0x8337fd33}, - {0xeebc97, 0x8337fd34}, - {0xeebc98, 0x8337fd35}, - {0xeebc99, 0x8337fd36}, - {0xeebc9a, 0x8337fd37}, - {0xeebc9b, 0x8337fd38}, - {0xeebc9c, 0x8337fd39}, - {0xeebc9d, 0x8337fe30}, - {0xeebc9e, 0x8337fe31}, - {0xeebc9f, 0x8337fe32}, - {0xeebca0, 0x8337fe33}, - {0xeebca1, 0x8337fe34}, - {0xeebca2, 0x8337fe35}, - {0xeebca3, 0x8337fe36}, - {0xeebca4, 0x8337fe37}, - {0xeebca5, 0x8337fe38}, - {0xeebca6, 0x8337fe39}, - {0xeebca7, 0x83388130}, - {0xeebca8, 0x83388131}, - {0xeebca9, 0x83388132}, - {0xeebcaa, 0x83388133}, - {0xeebcab, 0x83388134}, - {0xeebcac, 0x83388135}, - {0xeebcad, 0x83388136}, - {0xeebcae, 0x83388137}, - {0xeebcaf, 0x83388138}, - {0xeebcb0, 0x83388139}, - {0xeebcb1, 0x83388230}, - {0xeebcb2, 0x83388231}, - {0xeebcb3, 0x83388232}, - {0xeebcb4, 0x83388233}, - {0xeebcb5, 0x83388234}, - {0xeebcb6, 0x83388235}, - {0xeebcb7, 0x83388236}, - {0xeebcb8, 0x83388237}, - {0xeebcb9, 0x83388238}, - {0xeebcba, 0x83388239}, - {0xeebcbb, 0x83388330}, - {0xeebcbc, 0x83388331}, - {0xeebcbd, 0x83388332}, - {0xeebcbe, 0x83388333}, - {0xeebcbf, 0x83388334}, - {0xeebd80, 0x83388335}, - {0xeebd81, 0x83388336}, - {0xeebd82, 0x83388337}, - {0xeebd83, 0x83388338}, - {0xeebd84, 0x83388339}, - {0xeebd85, 0x83388430}, - {0xeebd86, 0x83388431}, - {0xeebd87, 0x83388432}, - {0xeebd88, 0x83388433}, - {0xeebd89, 0x83388434}, - {0xeebd8a, 0x83388435}, - {0xeebd8b, 0x83388436}, - {0xeebd8c, 0x83388437}, - {0xeebd8d, 0x83388438}, - {0xeebd8e, 0x83388439}, - {0xeebd8f, 0x83388530}, - {0xeebd90, 0x83388531}, - {0xeebd91, 0x83388532}, - {0xeebd92, 0x83388533}, - {0xeebd93, 0x83388534}, - {0xeebd94, 0x83388535}, - {0xeebd95, 0x83388536}, - {0xeebd96, 0x83388537}, - {0xeebd97, 0x83388538}, - {0xeebd98, 0x83388539}, - {0xeebd99, 0x83388630}, - {0xeebd9a, 0x83388631}, - {0xeebd9b, 0x83388632}, - {0xeebd9c, 0x83388633}, - {0xeebd9d, 0x83388634}, - {0xeebd9e, 0x83388635}, - {0xeebd9f, 0x83388636}, - {0xeebda0, 0x83388637}, - {0xeebda1, 0x83388638}, - {0xeebda2, 0x83388639}, - {0xeebda3, 0x83388730}, - {0xeebda4, 0x83388731}, - {0xeebda5, 0x83388732}, - {0xeebda6, 0x83388733}, - {0xeebda7, 0x83388734}, - {0xeebda8, 0x83388735}, - {0xeebda9, 0x83388736}, - {0xeebdaa, 0x83388737}, - {0xeebdab, 0x83388738}, - {0xeebdac, 0x83388739}, - {0xeebdad, 0x83388830}, - {0xeebdae, 0x83388831}, - {0xeebdaf, 0x83388832}, - {0xeebdb0, 0x83388833}, - {0xeebdb1, 0x83388834}, - {0xeebdb2, 0x83388835}, - {0xeebdb3, 0x83388836}, - {0xeebdb4, 0x83388837}, - {0xeebdb5, 0x83388838}, - {0xeebdb6, 0x83388839}, - {0xeebdb7, 0x83388930}, - {0xeebdb8, 0x83388931}, - {0xeebdb9, 0x83388932}, - {0xeebdba, 0x83388933}, - {0xeebdbb, 0x83388934}, - {0xeebdbc, 0x83388935}, - {0xeebdbd, 0x83388936}, - {0xeebdbe, 0x83388937}, - {0xeebdbf, 0x83388938}, - {0xeebe80, 0x83388939}, - {0xeebe81, 0x83388a30}, - {0xeebe82, 0x83388a31}, - {0xeebe83, 0x83388a32}, - {0xeebe84, 0x83388a33}, - {0xeebe85, 0x83388a34}, - {0xeebe86, 0x83388a35}, - {0xeebe87, 0x83388a36}, - {0xeebe88, 0x83388a37}, - {0xeebe89, 0x83388a38}, - {0xeebe8a, 0x83388a39}, - {0xeebe8b, 0x83388b30}, - {0xeebe8c, 0x83388b31}, - {0xeebe8d, 0x83388b32}, - {0xeebe8e, 0x83388b33}, - {0xeebe8f, 0x83388b34}, - {0xeebe90, 0x83388b35}, - {0xeebe91, 0x83388b36}, - {0xeebe92, 0x83388b37}, - {0xeebe93, 0x83388b38}, - {0xeebe94, 0x83388b39}, - {0xeebe95, 0x83388c30}, - {0xeebe96, 0x83388c31}, - {0xeebe97, 0x83388c32}, - {0xeebe98, 0x83388c33}, - {0xeebe99, 0x83388c34}, - {0xeebe9a, 0x83388c35}, - {0xeebe9b, 0x83388c36}, - {0xeebe9c, 0x83388c37}, - {0xeebe9d, 0x83388c38}, - {0xeebe9e, 0x83388c39}, - {0xeebe9f, 0x83388d30}, - {0xeebea0, 0x83388d31}, - {0xeebea1, 0x83388d32}, - {0xeebea2, 0x83388d33}, - {0xeebea3, 0x83388d34}, - {0xeebea4, 0x83388d35}, - {0xeebea5, 0x83388d36}, - {0xeebea6, 0x83388d37}, - {0xeebea7, 0x83388d38}, - {0xeebea8, 0x83388d39}, - {0xeebea9, 0x83388e30}, - {0xeebeaa, 0x83388e31}, - {0xeebeab, 0x83388e32}, - {0xeebeac, 0x83388e33}, - {0xeebead, 0x83388e34}, - {0xeebeae, 0x83388e35}, - {0xeebeaf, 0x83388e36}, - {0xeebeb0, 0x83388e37}, - {0xeebeb1, 0x83388e38}, - {0xeebeb2, 0x83388e39}, - {0xeebeb3, 0x83388f30}, - {0xeebeb4, 0x83388f31}, - {0xeebeb5, 0x83388f32}, - {0xeebeb6, 0x83388f33}, - {0xeebeb7, 0x83388f34}, - {0xeebeb8, 0x83388f35}, - {0xeebeb9, 0x83388f36}, - {0xeebeba, 0x83388f37}, - {0xeebebb, 0x83388f38}, - {0xeebebc, 0x83388f39}, - {0xeebebd, 0x83389030}, - {0xeebebe, 0x83389031}, - {0xeebebf, 0x83389032}, - {0xeebf80, 0x83389033}, - {0xeebf81, 0x83389034}, - {0xeebf82, 0x83389035}, - {0xeebf83, 0x83389036}, - {0xeebf84, 0x83389037}, - {0xeebf85, 0x83389038}, - {0xeebf86, 0x83389039}, - {0xeebf87, 0x83389130}, - {0xeebf88, 0x83389131}, - {0xeebf89, 0x83389132}, - {0xeebf8a, 0x83389133}, - {0xeebf8b, 0x83389134}, - {0xeebf8c, 0x83389135}, - {0xeebf8d, 0x83389136}, - {0xeebf8e, 0x83389137}, - {0xeebf8f, 0x83389138}, - {0xeebf90, 0x83389139}, - {0xeebf91, 0x83389230}, - {0xeebf92, 0x83389231}, - {0xeebf93, 0x83389232}, - {0xeebf94, 0x83389233}, - {0xeebf95, 0x83389234}, - {0xeebf96, 0x83389235}, - {0xeebf97, 0x83389236}, - {0xeebf98, 0x83389237}, - {0xeebf99, 0x83389238}, - {0xeebf9a, 0x83389239}, - {0xeebf9b, 0x83389330}, - {0xeebf9c, 0x83389331}, - {0xeebf9d, 0x83389332}, - {0xeebf9e, 0x83389333}, - {0xeebf9f, 0x83389334}, - {0xeebfa0, 0x83389335}, - {0xeebfa1, 0x83389336}, - {0xeebfa2, 0x83389337}, - {0xeebfa3, 0x83389338}, - {0xeebfa4, 0x83389339}, - {0xeebfa5, 0x83389430}, - {0xeebfa6, 0x83389431}, - {0xeebfa7, 0x83389432}, - {0xeebfa8, 0x83389433}, - {0xeebfa9, 0x83389434}, - {0xeebfaa, 0x83389435}, - {0xeebfab, 0x83389436}, - {0xeebfac, 0x83389437}, - {0xeebfad, 0x83389438}, - {0xeebfae, 0x83389439}, - {0xeebfaf, 0x83389530}, - {0xeebfb0, 0x83389531}, - {0xeebfb1, 0x83389532}, - {0xeebfb2, 0x83389533}, - {0xeebfb3, 0x83389534}, - {0xeebfb4, 0x83389535}, - {0xeebfb5, 0x83389536}, - {0xeebfb6, 0x83389537}, - {0xeebfb7, 0x83389538}, - {0xeebfb8, 0x83389539}, - {0xeebfb9, 0x83389630}, - {0xeebfba, 0x83389631}, - {0xeebfbb, 0x83389632}, - {0xeebfbc, 0x83389633}, - {0xeebfbd, 0x83389634}, - {0xeebfbe, 0x83389635}, - {0xeebfbf, 0x83389636}, - {0xef8080, 0x83389637}, - {0xef8081, 0x83389638}, - {0xef8082, 0x83389639}, - {0xef8083, 0x83389730}, - {0xef8084, 0x83389731}, - {0xef8085, 0x83389732}, - {0xef8086, 0x83389733}, - {0xef8087, 0x83389734}, - {0xef8088, 0x83389735}, - {0xef8089, 0x83389736}, - {0xef808a, 0x83389737}, - {0xef808b, 0x83389738}, - {0xef808c, 0x83389739}, - {0xef808d, 0x83389830}, - {0xef808e, 0x83389831}, - {0xef808f, 0x83389832}, - {0xef8090, 0x83389833}, - {0xef8091, 0x83389834}, - {0xef8092, 0x83389835}, - {0xef8093, 0x83389836}, - {0xef8094, 0x83389837}, - {0xef8095, 0x83389838}, - {0xef8096, 0x83389839}, - {0xef8097, 0x83389930}, - {0xef8098, 0x83389931}, - {0xef8099, 0x83389932}, - {0xef809a, 0x83389933}, - {0xef809b, 0x83389934}, - {0xef809c, 0x83389935}, - {0xef809d, 0x83389936}, - {0xef809e, 0x83389937}, - {0xef809f, 0x83389938}, - {0xef80a0, 0x83389939}, - {0xef80a1, 0x83389a30}, - {0xef80a2, 0x83389a31}, - {0xef80a3, 0x83389a32}, - {0xef80a4, 0x83389a33}, - {0xef80a5, 0x83389a34}, - {0xef80a6, 0x83389a35}, - {0xef80a7, 0x83389a36}, - {0xef80a8, 0x83389a37}, - {0xef80a9, 0x83389a38}, - {0xef80aa, 0x83389a39}, - {0xef80ab, 0x83389b30}, - {0xef80ac, 0x83389b31}, - {0xef80ad, 0x83389b32}, - {0xef80ae, 0x83389b33}, - {0xef80af, 0x83389b34}, - {0xef80b0, 0x83389b35}, - {0xef80b1, 0x83389b36}, - {0xef80b2, 0x83389b37}, - {0xef80b3, 0x83389b38}, - {0xef80b4, 0x83389b39}, - {0xef80b5, 0x83389c30}, - {0xef80b6, 0x83389c31}, - {0xef80b7, 0x83389c32}, - {0xef80b8, 0x83389c33}, - {0xef80b9, 0x83389c34}, - {0xef80ba, 0x83389c35}, - {0xef80bb, 0x83389c36}, - {0xef80bc, 0x83389c37}, - {0xef80bd, 0x83389c38}, - {0xef80be, 0x83389c39}, - {0xef80bf, 0x83389d30}, - {0xef8180, 0x83389d31}, - {0xef8181, 0x83389d32}, - {0xef8182, 0x83389d33}, - {0xef8183, 0x83389d34}, - {0xef8184, 0x83389d35}, - {0xef8185, 0x83389d36}, - {0xef8186, 0x83389d37}, - {0xef8187, 0x83389d38}, - {0xef8188, 0x83389d39}, - {0xef8189, 0x83389e30}, - {0xef818a, 0x83389e31}, - {0xef818b, 0x83389e32}, - {0xef818c, 0x83389e33}, - {0xef818d, 0x83389e34}, - {0xef818e, 0x83389e35}, - {0xef818f, 0x83389e36}, - {0xef8190, 0x83389e37}, - {0xef8191, 0x83389e38}, - {0xef8192, 0x83389e39}, - {0xef8193, 0x83389f30}, - {0xef8194, 0x83389f31}, - {0xef8195, 0x83389f32}, - {0xef8196, 0x83389f33}, - {0xef8197, 0x83389f34}, - {0xef8198, 0x83389f35}, - {0xef8199, 0x83389f36}, - {0xef819a, 0x83389f37}, - {0xef819b, 0x83389f38}, - {0xef819c, 0x83389f39}, - {0xef819d, 0x8338a030}, - {0xef819e, 0x8338a031}, - {0xef819f, 0x8338a032}, - {0xef81a0, 0x8338a033}, - {0xef81a1, 0x8338a034}, - {0xef81a2, 0x8338a035}, - {0xef81a3, 0x8338a036}, - {0xef81a4, 0x8338a037}, - {0xef81a5, 0x8338a038}, - {0xef81a6, 0x8338a039}, - {0xef81a7, 0x8338a130}, - {0xef81a8, 0x8338a131}, - {0xef81a9, 0x8338a132}, - {0xef81aa, 0x8338a133}, - {0xef81ab, 0x8338a134}, - {0xef81ac, 0x8338a135}, - {0xef81ad, 0x8338a136}, - {0xef81ae, 0x8338a137}, - {0xef81af, 0x8338a138}, - {0xef81b0, 0x8338a139}, - {0xef81b1, 0x8338a230}, - {0xef81b2, 0x8338a231}, - {0xef81b3, 0x8338a232}, - {0xef81b4, 0x8338a233}, - {0xef81b5, 0x8338a234}, - {0xef81b6, 0x8338a235}, - {0xef81b7, 0x8338a236}, - {0xef81b8, 0x8338a237}, - {0xef81b9, 0x8338a238}, - {0xef81ba, 0x8338a239}, - {0xef81bb, 0x8338a330}, - {0xef81bc, 0x8338a331}, - {0xef81bd, 0x8338a332}, - {0xef81be, 0x8338a333}, - {0xef81bf, 0x8338a334}, - {0xef8280, 0x8338a335}, - {0xef8281, 0x8338a336}, - {0xef8282, 0x8338a337}, - {0xef8283, 0x8338a338}, - {0xef8284, 0x8338a339}, - {0xef8285, 0x8338a430}, - {0xef8286, 0x8338a431}, - {0xef8287, 0x8338a432}, - {0xef8288, 0x8338a433}, - {0xef8289, 0x8338a434}, - {0xef828a, 0x8338a435}, - {0xef828b, 0x8338a436}, - {0xef828c, 0x8338a437}, - {0xef828d, 0x8338a438}, - {0xef828e, 0x8338a439}, - {0xef828f, 0x8338a530}, - {0xef8290, 0x8338a531}, - {0xef8291, 0x8338a532}, - {0xef8292, 0x8338a533}, - {0xef8293, 0x8338a534}, - {0xef8294, 0x8338a535}, - {0xef8295, 0x8338a536}, - {0xef8296, 0x8338a537}, - {0xef8297, 0x8338a538}, - {0xef8298, 0x8338a539}, - {0xef8299, 0x8338a630}, - {0xef829a, 0x8338a631}, - {0xef829b, 0x8338a632}, - {0xef829c, 0x8338a633}, - {0xef829d, 0x8338a634}, - {0xef829e, 0x8338a635}, - {0xef829f, 0x8338a636}, - {0xef82a0, 0x8338a637}, - {0xef82a1, 0x8338a638}, - {0xef82a2, 0x8338a639}, - {0xef82a3, 0x8338a730}, - {0xef82a4, 0x8338a731}, - {0xef82a5, 0x8338a732}, - {0xef82a6, 0x8338a733}, - {0xef82a7, 0x8338a734}, - {0xef82a8, 0x8338a735}, - {0xef82a9, 0x8338a736}, - {0xef82aa, 0x8338a737}, - {0xef82ab, 0x8338a738}, - {0xef82ac, 0x8338a739}, - {0xef82ad, 0x8338a830}, - {0xef82ae, 0x8338a831}, - {0xef82af, 0x8338a832}, - {0xef82b0, 0x8338a833}, - {0xef82b1, 0x8338a834}, - {0xef82b2, 0x8338a835}, - {0xef82b3, 0x8338a836}, - {0xef82b4, 0x8338a837}, - {0xef82b5, 0x8338a838}, - {0xef82b6, 0x8338a839}, - {0xef82b7, 0x8338a930}, - {0xef82b8, 0x8338a931}, - {0xef82b9, 0x8338a932}, - {0xef82ba, 0x8338a933}, - {0xef82bb, 0x8338a934}, - {0xef82bc, 0x8338a935}, - {0xef82bd, 0x8338a936}, - {0xef82be, 0x8338a937}, - {0xef82bf, 0x8338a938}, - {0xef8380, 0x8338a939}, - {0xef8381, 0x8338aa30}, - {0xef8382, 0x8338aa31}, - {0xef8383, 0x8338aa32}, - {0xef8384, 0x8338aa33}, - {0xef8385, 0x8338aa34}, - {0xef8386, 0x8338aa35}, - {0xef8387, 0x8338aa36}, - {0xef8388, 0x8338aa37}, - {0xef8389, 0x8338aa38}, - {0xef838a, 0x8338aa39}, - {0xef838b, 0x8338ab30}, - {0xef838c, 0x8338ab31}, - {0xef838d, 0x8338ab32}, - {0xef838e, 0x8338ab33}, - {0xef838f, 0x8338ab34}, - {0xef8390, 0x8338ab35}, - {0xef8391, 0x8338ab36}, - {0xef8392, 0x8338ab37}, - {0xef8393, 0x8338ab38}, - {0xef8394, 0x8338ab39}, - {0xef8395, 0x8338ac30}, - {0xef8396, 0x8338ac31}, - {0xef8397, 0x8338ac32}, - {0xef8398, 0x8338ac33}, - {0xef8399, 0x8338ac34}, - {0xef839a, 0x8338ac35}, - {0xef839b, 0x8338ac36}, - {0xef839c, 0x8338ac37}, - {0xef839d, 0x8338ac38}, - {0xef839e, 0x8338ac39}, - {0xef839f, 0x8338ad30}, - {0xef83a0, 0x8338ad31}, - {0xef83a1, 0x8338ad32}, - {0xef83a2, 0x8338ad33}, - {0xef83a3, 0x8338ad34}, - {0xef83a4, 0x8338ad35}, - {0xef83a5, 0x8338ad36}, - {0xef83a6, 0x8338ad37}, - {0xef83a7, 0x8338ad38}, - {0xef83a8, 0x8338ad39}, - {0xef83a9, 0x8338ae30}, - {0xef83aa, 0x8338ae31}, - {0xef83ab, 0x8338ae32}, - {0xef83ac, 0x8338ae33}, - {0xef83ad, 0x8338ae34}, - {0xef83ae, 0x8338ae35}, - {0xef83af, 0x8338ae36}, - {0xef83b0, 0x8338ae37}, - {0xef83b1, 0x8338ae38}, - {0xef83b2, 0x8338ae39}, - {0xef83b3, 0x8338af30}, - {0xef83b4, 0x8338af31}, - {0xef83b5, 0x8338af32}, - {0xef83b6, 0x8338af33}, - {0xef83b7, 0x8338af34}, - {0xef83b8, 0x8338af35}, - {0xef83b9, 0x8338af36}, - {0xef83ba, 0x8338af37}, - {0xef83bb, 0x8338af38}, - {0xef83bc, 0x8338af39}, - {0xef83bd, 0x8338b030}, - {0xef83be, 0x8338b031}, - {0xef83bf, 0x8338b032}, - {0xef8480, 0x8338b033}, - {0xef8481, 0x8338b034}, - {0xef8482, 0x8338b035}, - {0xef8483, 0x8338b036}, - {0xef8484, 0x8338b037}, - {0xef8485, 0x8338b038}, - {0xef8486, 0x8338b039}, - {0xef8487, 0x8338b130}, - {0xef8488, 0x8338b131}, - {0xef8489, 0x8338b132}, - {0xef848a, 0x8338b133}, - {0xef848b, 0x8338b134}, - {0xef848c, 0x8338b135}, - {0xef848d, 0x8338b136}, - {0xef848e, 0x8338b137}, - {0xef848f, 0x8338b138}, - {0xef8490, 0x8338b139}, - {0xef8491, 0x8338b230}, - {0xef8492, 0x8338b231}, - {0xef8493, 0x8338b232}, - {0xef8494, 0x8338b233}, - {0xef8495, 0x8338b234}, - {0xef8496, 0x8338b235}, - {0xef8497, 0x8338b236}, - {0xef8498, 0x8338b237}, - {0xef8499, 0x8338b238}, - {0xef849a, 0x8338b239}, - {0xef849b, 0x8338b330}, - {0xef849c, 0x8338b331}, - {0xef849d, 0x8338b332}, - {0xef849e, 0x8338b333}, - {0xef849f, 0x8338b334}, - {0xef84a0, 0x8338b335}, - {0xef84a1, 0x8338b336}, - {0xef84a2, 0x8338b337}, - {0xef84a3, 0x8338b338}, - {0xef84a4, 0x8338b339}, - {0xef84a5, 0x8338b430}, - {0xef84a6, 0x8338b431}, - {0xef84a7, 0x8338b432}, - {0xef84a8, 0x8338b433}, - {0xef84a9, 0x8338b434}, - {0xef84aa, 0x8338b435}, - {0xef84ab, 0x8338b436}, - {0xef84ac, 0x8338b437}, - {0xef84ad, 0x8338b438}, - {0xef84ae, 0x8338b439}, - {0xef84af, 0x8338b530}, - {0xef84b0, 0x8338b531}, - {0xef84b1, 0x8338b532}, - {0xef84b2, 0x8338b533}, - {0xef84b3, 0x8338b534}, - {0xef84b4, 0x8338b535}, - {0xef84b5, 0x8338b536}, - {0xef84b6, 0x8338b537}, - {0xef84b7, 0x8338b538}, - {0xef84b8, 0x8338b539}, - {0xef84b9, 0x8338b630}, - {0xef84ba, 0x8338b631}, - {0xef84bb, 0x8338b632}, - {0xef84bc, 0x8338b633}, - {0xef84bd, 0x8338b634}, - {0xef84be, 0x8338b635}, - {0xef84bf, 0x8338b636}, - {0xef8580, 0x8338b637}, - {0xef8581, 0x8338b638}, - {0xef8582, 0x8338b639}, - {0xef8583, 0x8338b730}, - {0xef8584, 0x8338b731}, - {0xef8585, 0x8338b732}, - {0xef8586, 0x8338b733}, - {0xef8587, 0x8338b734}, - {0xef8588, 0x8338b735}, - {0xef8589, 0x8338b736}, - {0xef858a, 0x8338b737}, - {0xef858b, 0x8338b738}, - {0xef858c, 0x8338b739}, - {0xef858d, 0x8338b830}, - {0xef858e, 0x8338b831}, - {0xef858f, 0x8338b832}, - {0xef8590, 0x8338b833}, - {0xef8591, 0x8338b834}, - {0xef8592, 0x8338b835}, - {0xef8593, 0x8338b836}, - {0xef8594, 0x8338b837}, - {0xef8595, 0x8338b838}, - {0xef8596, 0x8338b839}, - {0xef8597, 0x8338b930}, - {0xef8598, 0x8338b931}, - {0xef8599, 0x8338b932}, - {0xef859a, 0x8338b933}, - {0xef859b, 0x8338b934}, - {0xef859c, 0x8338b935}, - {0xef859d, 0x8338b936}, - {0xef859e, 0x8338b937}, - {0xef859f, 0x8338b938}, - {0xef85a0, 0x8338b939}, - {0xef85a1, 0x8338ba30}, - {0xef85a2, 0x8338ba31}, - {0xef85a3, 0x8338ba32}, - {0xef85a4, 0x8338ba33}, - {0xef85a5, 0x8338ba34}, - {0xef85a6, 0x8338ba35}, - {0xef85a7, 0x8338ba36}, - {0xef85a8, 0x8338ba37}, - {0xef85a9, 0x8338ba38}, - {0xef85aa, 0x8338ba39}, - {0xef85ab, 0x8338bb30}, - {0xef85ac, 0x8338bb31}, - {0xef85ad, 0x8338bb32}, - {0xef85ae, 0x8338bb33}, - {0xef85af, 0x8338bb34}, - {0xef85b0, 0x8338bb35}, - {0xef85b1, 0x8338bb36}, - {0xef85b2, 0x8338bb37}, - {0xef85b3, 0x8338bb38}, - {0xef85b4, 0x8338bb39}, - {0xef85b5, 0x8338bc30}, - {0xef85b6, 0x8338bc31}, - {0xef85b7, 0x8338bc32}, - {0xef85b8, 0x8338bc33}, - {0xef85b9, 0x8338bc34}, - {0xef85ba, 0x8338bc35}, - {0xef85bb, 0x8338bc36}, - {0xef85bc, 0x8338bc37}, - {0xef85bd, 0x8338bc38}, - {0xef85be, 0x8338bc39}, - {0xef85bf, 0x8338bd30}, - {0xef8680, 0x8338bd31}, - {0xef8681, 0x8338bd32}, - {0xef8682, 0x8338bd33}, - {0xef8683, 0x8338bd34}, - {0xef8684, 0x8338bd35}, - {0xef8685, 0x8338bd36}, - {0xef8686, 0x8338bd37}, - {0xef8687, 0x8338bd38}, - {0xef8688, 0x8338bd39}, - {0xef8689, 0x8338be30}, - {0xef868a, 0x8338be31}, - {0xef868b, 0x8338be32}, - {0xef868c, 0x8338be33}, - {0xef868d, 0x8338be34}, - {0xef868e, 0x8338be35}, - {0xef868f, 0x8338be36}, - {0xef8690, 0x8338be37}, - {0xef8691, 0x8338be38}, - {0xef8692, 0x8338be39}, - {0xef8693, 0x8338bf30}, - {0xef8694, 0x8338bf31}, - {0xef8695, 0x8338bf32}, - {0xef8696, 0x8338bf33}, - {0xef8697, 0x8338bf34}, - {0xef8698, 0x8338bf35}, - {0xef8699, 0x8338bf36}, - {0xef869a, 0x8338bf37}, - {0xef869b, 0x8338bf38}, - {0xef869c, 0x8338bf39}, - {0xef869d, 0x8338c030}, - {0xef869e, 0x8338c031}, - {0xef869f, 0x8338c032}, - {0xef86a0, 0x8338c033}, - {0xef86a1, 0x8338c034}, - {0xef86a2, 0x8338c035}, - {0xef86a3, 0x8338c036}, - {0xef86a4, 0x8338c037}, - {0xef86a5, 0x8338c038}, - {0xef86a6, 0x8338c039}, - {0xef86a7, 0x8338c130}, - {0xef86a8, 0x8338c131}, - {0xef86a9, 0x8338c132}, - {0xef86aa, 0x8338c133}, - {0xef86ab, 0x8338c134}, - {0xef86ac, 0x8338c135}, - {0xef86ad, 0x8338c136}, - {0xef86ae, 0x8338c137}, - {0xef86af, 0x8338c138}, - {0xef86b0, 0x8338c139}, - {0xef86b1, 0x8338c230}, - {0xef86b2, 0x8338c231}, - {0xef86b3, 0x8338c232}, - {0xef86b4, 0x8338c233}, - {0xef86b5, 0x8338c234}, - {0xef86b6, 0x8338c235}, - {0xef86b7, 0x8338c236}, - {0xef86b8, 0x8338c237}, - {0xef86b9, 0x8338c238}, - {0xef86ba, 0x8338c239}, - {0xef86bb, 0x8338c330}, - {0xef86bc, 0x8338c331}, - {0xef86bd, 0x8338c332}, - {0xef86be, 0x8338c333}, - {0xef86bf, 0x8338c334}, - {0xef8780, 0x8338c335}, - {0xef8781, 0x8338c336}, - {0xef8782, 0x8338c337}, - {0xef8783, 0x8338c338}, - {0xef8784, 0x8338c339}, - {0xef8785, 0x8338c430}, - {0xef8786, 0x8338c431}, - {0xef8787, 0x8338c432}, - {0xef8788, 0x8338c433}, - {0xef8789, 0x8338c434}, - {0xef878a, 0x8338c435}, - {0xef878b, 0x8338c436}, - {0xef878c, 0x8338c437}, - {0xef878d, 0x8338c438}, - {0xef878e, 0x8338c439}, - {0xef878f, 0x8338c530}, - {0xef8790, 0x8338c531}, - {0xef8791, 0x8338c532}, - {0xef8792, 0x8338c533}, - {0xef8793, 0x8338c534}, - {0xef8794, 0x8338c535}, - {0xef8795, 0x8338c536}, - {0xef8796, 0x8338c537}, - {0xef8797, 0x8338c538}, - {0xef8798, 0x8338c539}, - {0xef8799, 0x8338c630}, - {0xef879a, 0x8338c631}, - {0xef879b, 0x8338c632}, - {0xef879c, 0x8338c633}, - {0xef879d, 0x8338c634}, - {0xef879e, 0x8338c635}, - {0xef879f, 0x8338c636}, - {0xef87a0, 0x8338c637}, - {0xef87a1, 0x8338c638}, - {0xef87a2, 0x8338c639}, - {0xef87a3, 0x8338c730}, - {0xef87a4, 0x8338c731}, - {0xef87a5, 0x8338c732}, - {0xef87a6, 0x8338c733}, - {0xef87a7, 0x8338c734}, - {0xef87a8, 0x8338c735}, - {0xef87a9, 0x8338c736}, - {0xef87aa, 0x8338c737}, - {0xef87ab, 0x8338c738}, - {0xef87ac, 0x8338c739}, - {0xef87ad, 0x8338c830}, - {0xef87ae, 0x8338c831}, - {0xef87af, 0x8338c832}, - {0xef87b0, 0x8338c833}, - {0xef87b1, 0x8338c834}, - {0xef87b2, 0x8338c835}, - {0xef87b3, 0x8338c836}, - {0xef87b4, 0x8338c837}, - {0xef87b5, 0x8338c838}, - {0xef87b6, 0x8338c839}, - {0xef87b7, 0x8338c930}, - {0xef87b8, 0x8338c931}, - {0xef87b9, 0x8338c932}, - {0xef87ba, 0x8338c933}, - {0xef87bb, 0x8338c934}, - {0xef87bc, 0x8338c935}, - {0xef87bd, 0x8338c936}, - {0xef87be, 0x8338c937}, - {0xef87bf, 0x8338c938}, - {0xef8880, 0x8338c939}, - {0xef8881, 0x8338ca30}, - {0xef8882, 0x8338ca31}, - {0xef8883, 0x8338ca32}, - {0xef8884, 0x8338ca33}, - {0xef8885, 0x8338ca34}, - {0xef8886, 0x8338ca35}, - {0xef8887, 0x8338ca36}, - {0xef8888, 0x8338ca37}, - {0xef8889, 0x8338ca38}, - {0xef888a, 0x8338ca39}, - {0xef888b, 0x8338cb30}, - {0xef888c, 0x8338cb31}, - {0xef888d, 0x8338cb32}, - {0xef888e, 0x8338cb33}, - {0xef888f, 0x8338cb34}, - {0xef8890, 0x8338cb35}, - {0xef8891, 0x8338cb36}, - {0xef8892, 0x8338cb37}, - {0xef8893, 0x8338cb38}, - {0xef8894, 0x8338cb39}, - {0xef8895, 0x8338cc30}, - {0xef8896, 0x8338cc31}, - {0xef8897, 0x8338cc32}, - {0xef8898, 0x8338cc33}, - {0xef8899, 0x8338cc34}, - {0xef889a, 0x8338cc35}, - {0xef889b, 0x8338cc36}, - {0xef889c, 0x8338cc37}, - {0xef889d, 0x8338cc38}, - {0xef889e, 0x8338cc39}, - {0xef889f, 0x8338cd30}, - {0xef88a0, 0x8338cd31}, - {0xef88a1, 0x8338cd32}, - {0xef88a2, 0x8338cd33}, - {0xef88a3, 0x8338cd34}, - {0xef88a4, 0x8338cd35}, - {0xef88a5, 0x8338cd36}, - {0xef88a6, 0x8338cd37}, - {0xef88a7, 0x8338cd38}, - {0xef88a8, 0x8338cd39}, - {0xef88a9, 0x8338ce30}, - {0xef88aa, 0x8338ce31}, - {0xef88ab, 0x8338ce32}, - {0xef88ac, 0x8338ce33}, - {0xef88ad, 0x8338ce34}, - {0xef88ae, 0x8338ce35}, - {0xef88af, 0x8338ce36}, - {0xef88b0, 0x8338ce37}, - {0xef88b1, 0x8338ce38}, - {0xef88b2, 0x8338ce39}, - {0xef88b3, 0x8338cf30}, - {0xef88b4, 0x8338cf31}, - {0xef88b5, 0x8338cf32}, - {0xef88b6, 0x8338cf33}, - {0xef88b7, 0x8338cf34}, - {0xef88b8, 0x8338cf35}, - {0xef88b9, 0x8338cf36}, - {0xef88ba, 0x8338cf37}, - {0xef88bb, 0x8338cf38}, - {0xef88bc, 0x8338cf39}, - {0xef88bd, 0x8338d030}, - {0xef88be, 0x8338d031}, - {0xef88bf, 0x8338d032}, - {0xef8980, 0x8338d033}, - {0xef8981, 0x8338d034}, - {0xef8982, 0x8338d035}, - {0xef8983, 0x8338d036}, - {0xef8984, 0x8338d037}, - {0xef8985, 0x8338d038}, - {0xef8986, 0x8338d039}, - {0xef8987, 0x8338d130}, - {0xef8988, 0x8338d131}, - {0xef8989, 0x8338d132}, - {0xef898a, 0x8338d133}, - {0xef898b, 0x8338d134}, - {0xef898c, 0x8338d135}, - {0xef898d, 0x8338d136}, - {0xef898e, 0x8338d137}, - {0xef898f, 0x8338d138}, - {0xef8990, 0x8338d139}, - {0xef8991, 0x8338d230}, - {0xef8992, 0x8338d231}, - {0xef8993, 0x8338d232}, - {0xef8994, 0x8338d233}, - {0xef8995, 0x8338d234}, - {0xef8996, 0x8338d235}, - {0xef8997, 0x8338d236}, - {0xef8998, 0x8338d237}, - {0xef8999, 0x8338d238}, - {0xef899a, 0x8338d239}, - {0xef899b, 0x8338d330}, - {0xef899c, 0x8338d331}, - {0xef899d, 0x8338d332}, - {0xef899e, 0x8338d333}, - {0xef899f, 0x8338d334}, - {0xef89a0, 0x8338d335}, - {0xef89a1, 0x8338d336}, - {0xef89a2, 0x8338d337}, - {0xef89a3, 0x8338d338}, - {0xef89a4, 0x8338d339}, - {0xef89a5, 0x8338d430}, - {0xef89a6, 0x8338d431}, - {0xef89a7, 0x8338d432}, - {0xef89a8, 0x8338d433}, - {0xef89a9, 0x8338d434}, - {0xef89aa, 0x8338d435}, - {0xef89ab, 0x8338d436}, - {0xef89ac, 0x8338d437}, - {0xef89ad, 0x8338d438}, - {0xef89ae, 0x8338d439}, - {0xef89af, 0x8338d530}, - {0xef89b0, 0x8338d531}, - {0xef89b1, 0x8338d532}, - {0xef89b2, 0x8338d533}, - {0xef89b3, 0x8338d534}, - {0xef89b4, 0x8338d535}, - {0xef89b5, 0x8338d536}, - {0xef89b6, 0x8338d537}, - {0xef89b7, 0x8338d538}, - {0xef89b8, 0x8338d539}, - {0xef89b9, 0x8338d630}, - {0xef89ba, 0x8338d631}, - {0xef89bb, 0x8338d632}, - {0xef89bc, 0x8338d633}, - {0xef89bd, 0x8338d634}, - {0xef89be, 0x8338d635}, - {0xef89bf, 0x8338d636}, - {0xef8a80, 0x8338d637}, - {0xef8a81, 0x8338d638}, - {0xef8a82, 0x8338d639}, - {0xef8a83, 0x8338d730}, - {0xef8a84, 0x8338d731}, - {0xef8a85, 0x8338d732}, - {0xef8a86, 0x8338d733}, - {0xef8a87, 0x8338d734}, - {0xef8a88, 0x8338d735}, - {0xef8a89, 0x8338d736}, - {0xef8a8a, 0x8338d737}, - {0xef8a8b, 0x8338d738}, - {0xef8a8c, 0x8338d739}, - {0xef8a8d, 0x8338d830}, - {0xef8a8e, 0x8338d831}, - {0xef8a8f, 0x8338d832}, - {0xef8a90, 0x8338d833}, - {0xef8a91, 0x8338d834}, - {0xef8a92, 0x8338d835}, - {0xef8a93, 0x8338d836}, - {0xef8a94, 0x8338d837}, - {0xef8a95, 0x8338d838}, - {0xef8a96, 0x8338d839}, - {0xef8a97, 0x8338d930}, - {0xef8a98, 0x8338d931}, - {0xef8a99, 0x8338d932}, - {0xef8a9a, 0x8338d933}, - {0xef8a9b, 0x8338d934}, - {0xef8a9c, 0x8338d935}, - {0xef8a9d, 0x8338d936}, - {0xef8a9e, 0x8338d937}, - {0xef8a9f, 0x8338d938}, - {0xef8aa0, 0x8338d939}, - {0xef8aa1, 0x8338da30}, - {0xef8aa2, 0x8338da31}, - {0xef8aa3, 0x8338da32}, - {0xef8aa4, 0x8338da33}, - {0xef8aa5, 0x8338da34}, - {0xef8aa6, 0x8338da35}, - {0xef8aa7, 0x8338da36}, - {0xef8aa8, 0x8338da37}, - {0xef8aa9, 0x8338da38}, - {0xef8aaa, 0x8338da39}, - {0xef8aab, 0x8338db30}, - {0xef8aac, 0x8338db31}, - {0xef8aad, 0x8338db32}, - {0xef8aae, 0x8338db33}, - {0xef8aaf, 0x8338db34}, - {0xef8ab0, 0x8338db35}, - {0xef8ab1, 0x8338db36}, - {0xef8ab2, 0x8338db37}, - {0xef8ab3, 0x8338db38}, - {0xef8ab4, 0x8338db39}, - {0xef8ab5, 0x8338dc30}, - {0xef8ab6, 0x8338dc31}, - {0xef8ab7, 0x8338dc32}, - {0xef8ab8, 0x8338dc33}, - {0xef8ab9, 0x8338dc34}, - {0xef8aba, 0x8338dc35}, - {0xef8abb, 0x8338dc36}, - {0xef8abc, 0x8338dc37}, - {0xef8abd, 0x8338dc38}, - {0xef8abe, 0x8338dc39}, - {0xef8abf, 0x8338dd30}, - {0xef8b80, 0x8338dd31}, - {0xef8b81, 0x8338dd32}, - {0xef8b82, 0x8338dd33}, - {0xef8b83, 0x8338dd34}, - {0xef8b84, 0x8338dd35}, - {0xef8b85, 0x8338dd36}, - {0xef8b86, 0x8338dd37}, - {0xef8b87, 0x8338dd38}, - {0xef8b88, 0x8338dd39}, - {0xef8b89, 0x8338de30}, - {0xef8b8a, 0x8338de31}, - {0xef8b8b, 0x8338de32}, - {0xef8b8c, 0x8338de33}, - {0xef8b8d, 0x8338de34}, - {0xef8b8e, 0x8338de35}, - {0xef8b8f, 0x8338de36}, - {0xef8b90, 0x8338de37}, - {0xef8b91, 0x8338de38}, - {0xef8b92, 0x8338de39}, - {0xef8b93, 0x8338df30}, - {0xef8b94, 0x8338df31}, - {0xef8b95, 0x8338df32}, - {0xef8b96, 0x8338df33}, - {0xef8b97, 0x8338df34}, - {0xef8b98, 0x8338df35}, - {0xef8b99, 0x8338df36}, - {0xef8b9a, 0x8338df37}, - {0xef8b9b, 0x8338df38}, - {0xef8b9c, 0x8338df39}, - {0xef8b9d, 0x8338e030}, - {0xef8b9e, 0x8338e031}, - {0xef8b9f, 0x8338e032}, - {0xef8ba0, 0x8338e033}, - {0xef8ba1, 0x8338e034}, - {0xef8ba2, 0x8338e035}, - {0xef8ba3, 0x8338e036}, - {0xef8ba4, 0x8338e037}, - {0xef8ba5, 0x8338e038}, - {0xef8ba6, 0x8338e039}, - {0xef8ba7, 0x8338e130}, - {0xef8ba8, 0x8338e131}, - {0xef8ba9, 0x8338e132}, - {0xef8baa, 0x8338e133}, - {0xef8bab, 0x8338e134}, - {0xef8bac, 0x8338e135}, - {0xef8bad, 0x8338e136}, - {0xef8bae, 0x8338e137}, - {0xef8baf, 0x8338e138}, - {0xef8bb0, 0x8338e139}, - {0xef8bb1, 0x8338e230}, - {0xef8bb2, 0x8338e231}, - {0xef8bb3, 0x8338e232}, - {0xef8bb4, 0x8338e233}, - {0xef8bb5, 0x8338e234}, - {0xef8bb6, 0x8338e235}, - {0xef8bb7, 0x8338e236}, - {0xef8bb8, 0x8338e237}, - {0xef8bb9, 0x8338e238}, - {0xef8bba, 0x8338e239}, - {0xef8bbb, 0x8338e330}, - {0xef8bbc, 0x8338e331}, - {0xef8bbd, 0x8338e332}, - {0xef8bbe, 0x8338e333}, - {0xef8bbf, 0x8338e334}, - {0xef8c80, 0x8338e335}, - {0xef8c81, 0x8338e336}, - {0xef8c82, 0x8338e337}, - {0xef8c83, 0x8338e338}, - {0xef8c84, 0x8338e339}, - {0xef8c85, 0x8338e430}, - {0xef8c86, 0x8338e431}, - {0xef8c87, 0x8338e432}, - {0xef8c88, 0x8338e433}, - {0xef8c89, 0x8338e434}, - {0xef8c8a, 0x8338e435}, - {0xef8c8b, 0x8338e436}, - {0xef8c8c, 0x8338e437}, - {0xef8c8d, 0x8338e438}, - {0xef8c8e, 0x8338e439}, - {0xef8c8f, 0x8338e530}, - {0xef8c90, 0x8338e531}, - {0xef8c91, 0x8338e532}, - {0xef8c92, 0x8338e533}, - {0xef8c93, 0x8338e534}, - {0xef8c94, 0x8338e535}, - {0xef8c95, 0x8338e536}, - {0xef8c96, 0x8338e537}, - {0xef8c97, 0x8338e538}, - {0xef8c98, 0x8338e539}, - {0xef8c99, 0x8338e630}, - {0xef8c9a, 0x8338e631}, - {0xef8c9b, 0x8338e632}, - {0xef8c9c, 0x8338e633}, - {0xef8c9d, 0x8338e634}, - {0xef8c9e, 0x8338e635}, - {0xef8c9f, 0x8338e636}, - {0xef8ca0, 0x8338e637}, - {0xef8ca1, 0x8338e638}, - {0xef8ca2, 0x8338e639}, - {0xef8ca3, 0x8338e730}, - {0xef8ca4, 0x8338e731}, - {0xef8ca5, 0x8338e732}, - {0xef8ca6, 0x8338e733}, - {0xef8ca7, 0x8338e734}, - {0xef8ca8, 0x8338e735}, - {0xef8ca9, 0x8338e736}, - {0xef8caa, 0x8338e737}, - {0xef8cab, 0x8338e738}, - {0xef8cac, 0x8338e739}, - {0xef8cad, 0x8338e830}, - {0xef8cae, 0x8338e831}, - {0xef8caf, 0x8338e832}, - {0xef8cb0, 0x8338e833}, - {0xef8cb1, 0x8338e834}, - {0xef8cb2, 0x8338e835}, - {0xef8cb3, 0x8338e836}, - {0xef8cb4, 0x8338e837}, - {0xef8cb5, 0x8338e838}, - {0xef8cb6, 0x8338e839}, - {0xef8cb7, 0x8338e930}, - {0xef8cb8, 0x8338e931}, - {0xef8cb9, 0x8338e932}, - {0xef8cba, 0x8338e933}, - {0xef8cbb, 0x8338e934}, - {0xef8cbc, 0x8338e935}, - {0xef8cbd, 0x8338e936}, - {0xef8cbe, 0x8338e937}, - {0xef8cbf, 0x8338e938}, - {0xef8d80, 0x8338e939}, - {0xef8d81, 0x8338ea30}, - {0xef8d82, 0x8338ea31}, - {0xef8d83, 0x8338ea32}, - {0xef8d84, 0x8338ea33}, - {0xef8d85, 0x8338ea34}, - {0xef8d86, 0x8338ea35}, - {0xef8d87, 0x8338ea36}, - {0xef8d88, 0x8338ea37}, - {0xef8d89, 0x8338ea38}, - {0xef8d8a, 0x8338ea39}, - {0xef8d8b, 0x8338eb30}, - {0xef8d8c, 0x8338eb31}, - {0xef8d8d, 0x8338eb32}, - {0xef8d8e, 0x8338eb33}, - {0xef8d8f, 0x8338eb34}, - {0xef8d90, 0x8338eb35}, - {0xef8d91, 0x8338eb36}, - {0xef8d92, 0x8338eb37}, - {0xef8d93, 0x8338eb38}, - {0xef8d94, 0x8338eb39}, - {0xef8d95, 0x8338ec30}, - {0xef8d96, 0x8338ec31}, - {0xef8d97, 0x8338ec32}, - {0xef8d98, 0x8338ec33}, - {0xef8d99, 0x8338ec34}, - {0xef8d9a, 0x8338ec35}, - {0xef8d9b, 0x8338ec36}, - {0xef8d9c, 0x8338ec37}, - {0xef8d9d, 0x8338ec38}, - {0xef8d9e, 0x8338ec39}, - {0xef8d9f, 0x8338ed30}, - {0xef8da0, 0x8338ed31}, - {0xef8da1, 0x8338ed32}, - {0xef8da2, 0x8338ed33}, - {0xef8da3, 0x8338ed34}, - {0xef8da4, 0x8338ed35}, - {0xef8da5, 0x8338ed36}, - {0xef8da6, 0x8338ed37}, - {0xef8da7, 0x8338ed38}, - {0xef8da8, 0x8338ed39}, - {0xef8da9, 0x8338ee30}, - {0xef8daa, 0x8338ee31}, - {0xef8dab, 0x8338ee32}, - {0xef8dac, 0x8338ee33}, - {0xef8dad, 0x8338ee34}, - {0xef8dae, 0x8338ee35}, - {0xef8daf, 0x8338ee36}, - {0xef8db0, 0x8338ee37}, - {0xef8db1, 0x8338ee38}, - {0xef8db2, 0x8338ee39}, - {0xef8db3, 0x8338ef30}, - {0xef8db4, 0x8338ef31}, - {0xef8db5, 0x8338ef32}, - {0xef8db6, 0x8338ef33}, - {0xef8db7, 0x8338ef34}, - {0xef8db8, 0x8338ef35}, - {0xef8db9, 0x8338ef36}, - {0xef8dba, 0x8338ef37}, - {0xef8dbb, 0x8338ef38}, - {0xef8dbc, 0x8338ef39}, - {0xef8dbd, 0x8338f030}, - {0xef8dbe, 0x8338f031}, - {0xef8dbf, 0x8338f032}, - {0xef8e80, 0x8338f033}, - {0xef8e81, 0x8338f034}, - {0xef8e82, 0x8338f035}, - {0xef8e83, 0x8338f036}, - {0xef8e84, 0x8338f037}, - {0xef8e85, 0x8338f038}, - {0xef8e86, 0x8338f039}, - {0xef8e87, 0x8338f130}, - {0xef8e88, 0x8338f131}, - {0xef8e89, 0x8338f132}, - {0xef8e8a, 0x8338f133}, - {0xef8e8b, 0x8338f134}, - {0xef8e8c, 0x8338f135}, - {0xef8e8d, 0x8338f136}, - {0xef8e8e, 0x8338f137}, - {0xef8e8f, 0x8338f138}, - {0xef8e90, 0x8338f139}, - {0xef8e91, 0x8338f230}, - {0xef8e92, 0x8338f231}, - {0xef8e93, 0x8338f232}, - {0xef8e94, 0x8338f233}, - {0xef8e95, 0x8338f234}, - {0xef8e96, 0x8338f235}, - {0xef8e97, 0x8338f236}, - {0xef8e98, 0x8338f237}, - {0xef8e99, 0x8338f238}, - {0xef8e9a, 0x8338f239}, - {0xef8e9b, 0x8338f330}, - {0xef8e9c, 0x8338f331}, - {0xef8e9d, 0x8338f332}, - {0xef8e9e, 0x8338f333}, - {0xef8e9f, 0x8338f334}, - {0xef8ea0, 0x8338f335}, - {0xef8ea1, 0x8338f336}, - {0xef8ea2, 0x8338f337}, - {0xef8ea3, 0x8338f338}, - {0xef8ea4, 0x8338f339}, - {0xef8ea5, 0x8338f430}, - {0xef8ea6, 0x8338f431}, - {0xef8ea7, 0x8338f432}, - {0xef8ea8, 0x8338f433}, - {0xef8ea9, 0x8338f434}, - {0xef8eaa, 0x8338f435}, - {0xef8eab, 0x8338f436}, - {0xef8eac, 0x8338f437}, - {0xef8ead, 0x8338f438}, - {0xef8eae, 0x8338f439}, - {0xef8eaf, 0x8338f530}, - {0xef8eb0, 0x8338f531}, - {0xef8eb1, 0x8338f532}, - {0xef8eb2, 0x8338f533}, - {0xef8eb3, 0x8338f534}, - {0xef8eb4, 0x8338f535}, - {0xef8eb5, 0x8338f536}, - {0xef8eb6, 0x8338f537}, - {0xef8eb7, 0x8338f538}, - {0xef8eb8, 0x8338f539}, - {0xef8eb9, 0x8338f630}, - {0xef8eba, 0x8338f631}, - {0xef8ebb, 0x8338f632}, - {0xef8ebc, 0x8338f633}, - {0xef8ebd, 0x8338f634}, - {0xef8ebe, 0x8338f635}, - {0xef8ebf, 0x8338f636}, - {0xef8f80, 0x8338f637}, - {0xef8f81, 0x8338f638}, - {0xef8f82, 0x8338f639}, - {0xef8f83, 0x8338f730}, - {0xef8f84, 0x8338f731}, - {0xef8f85, 0x8338f732}, - {0xef8f86, 0x8338f733}, - {0xef8f87, 0x8338f734}, - {0xef8f88, 0x8338f735}, - {0xef8f89, 0x8338f736}, - {0xef8f8a, 0x8338f737}, - {0xef8f8b, 0x8338f738}, - {0xef8f8c, 0x8338f739}, - {0xef8f8d, 0x8338f830}, - {0xef8f8e, 0x8338f831}, - {0xef8f8f, 0x8338f832}, - {0xef8f90, 0x8338f833}, - {0xef8f91, 0x8338f834}, - {0xef8f92, 0x8338f835}, - {0xef8f93, 0x8338f836}, - {0xef8f94, 0x8338f837}, - {0xef8f95, 0x8338f838}, - {0xef8f96, 0x8338f839}, - {0xef8f97, 0x8338f930}, - {0xef8f98, 0x8338f931}, - {0xef8f99, 0x8338f932}, - {0xef8f9a, 0x8338f933}, - {0xef8f9b, 0x8338f934}, - {0xef8f9c, 0x8338f935}, - {0xef8f9d, 0x8338f936}, - {0xef8f9e, 0x8338f937}, - {0xef8f9f, 0x8338f938}, - {0xef8fa0, 0x8338f939}, - {0xef8fa1, 0x8338fa30}, - {0xef8fa2, 0x8338fa31}, - {0xef8fa3, 0x8338fa32}, - {0xef8fa4, 0x8338fa33}, - {0xef8fa5, 0x8338fa34}, - {0xef8fa6, 0x8338fa35}, - {0xef8fa7, 0x8338fa36}, - {0xef8fa8, 0x8338fa37}, - {0xef8fa9, 0x8338fa38}, - {0xef8faa, 0x8338fa39}, - {0xef8fab, 0x8338fb30}, - {0xef8fac, 0x8338fb31}, - {0xef8fad, 0x8338fb32}, - {0xef8fae, 0x8338fb33}, - {0xef8faf, 0x8338fb34}, - {0xef8fb0, 0x8338fb35}, - {0xef8fb1, 0x8338fb36}, - {0xef8fb2, 0x8338fb37}, - {0xef8fb3, 0x8338fb38}, - {0xef8fb4, 0x8338fb39}, - {0xef8fb5, 0x8338fc30}, - {0xef8fb6, 0x8338fc31}, - {0xef8fb7, 0x8338fc32}, - {0xef8fb8, 0x8338fc33}, - {0xef8fb9, 0x8338fc34}, - {0xef8fba, 0x8338fc35}, - {0xef8fbb, 0x8338fc36}, - {0xef8fbc, 0x8338fc37}, - {0xef8fbd, 0x8338fc38}, - {0xef8fbe, 0x8338fc39}, - {0xef8fbf, 0x8338fd30}, - {0xef9080, 0x8338fd31}, - {0xef9081, 0x8338fd32}, - {0xef9082, 0x8338fd33}, - {0xef9083, 0x8338fd34}, - {0xef9084, 0x8338fd35}, - {0xef9085, 0x8338fd36}, - {0xef9086, 0x8338fd37}, - {0xef9087, 0x8338fd38}, - {0xef9088, 0x8338fd39}, - {0xef9089, 0x8338fe30}, - {0xef908a, 0x8338fe31}, - {0xef908b, 0x8338fe32}, - {0xef908c, 0x8338fe33}, - {0xef908d, 0x8338fe34}, - {0xef908e, 0x8338fe35}, - {0xef908f, 0x8338fe36}, - {0xef9090, 0x8338fe37}, - {0xef9091, 0x8338fe38}, - {0xef9092, 0x8338fe39}, - {0xef9093, 0x83398130}, - {0xef9094, 0x83398131}, - {0xef9095, 0x83398132}, - {0xef9096, 0x83398133}, - {0xef9097, 0x83398134}, - {0xef9098, 0x83398135}, - {0xef9099, 0x83398136}, - {0xef909a, 0x83398137}, - {0xef909b, 0x83398138}, - {0xef909c, 0x83398139}, - {0xef909d, 0x83398230}, - {0xef909e, 0x83398231}, - {0xef909f, 0x83398232}, - {0xef90a0, 0x83398233}, - {0xef90a1, 0x83398234}, - {0xef90a2, 0x83398235}, - {0xef90a3, 0x83398236}, - {0xef90a4, 0x83398237}, - {0xef90a5, 0x83398238}, - {0xef90a6, 0x83398239}, - {0xef90a7, 0x83398330}, - {0xef90a8, 0x83398331}, - {0xef90a9, 0x83398332}, - {0xef90aa, 0x83398333}, - {0xef90ab, 0x83398334}, - {0xef90ac, 0x83398335}, - {0xef90ad, 0x83398336}, - {0xef90ae, 0x83398337}, - {0xef90af, 0x83398338}, - {0xef90b0, 0x83398339}, - {0xef90b1, 0x83398430}, - {0xef90b2, 0x83398431}, - {0xef90b3, 0x83398432}, - {0xef90b4, 0x83398433}, - {0xef90b5, 0x83398434}, - {0xef90b6, 0x83398435}, - {0xef90b7, 0x83398436}, - {0xef90b8, 0x83398437}, - {0xef90b9, 0x83398438}, - {0xef90ba, 0x83398439}, - {0xef90bb, 0x83398530}, - {0xef90bc, 0x83398531}, - {0xef90bd, 0x83398532}, - {0xef90be, 0x83398533}, - {0xef90bf, 0x83398534}, - {0xef9180, 0x83398535}, - {0xef9181, 0x83398536}, - {0xef9182, 0x83398537}, - {0xef9183, 0x83398538}, - {0xef9184, 0x83398539}, - {0xef9185, 0x83398630}, - {0xef9186, 0x83398631}, - {0xef9187, 0x83398632}, - {0xef9188, 0x83398633}, - {0xef9189, 0x83398634}, - {0xef918a, 0x83398635}, - {0xef918b, 0x83398636}, - {0xef918c, 0x83398637}, - {0xef918d, 0x83398638}, - {0xef918e, 0x83398639}, - {0xef918f, 0x83398730}, - {0xef9190, 0x83398731}, - {0xef9191, 0x83398732}, - {0xef9192, 0x83398733}, - {0xef9193, 0x83398734}, - {0xef9194, 0x83398735}, - {0xef9195, 0x83398736}, - {0xef9196, 0x83398737}, - {0xef9197, 0x83398738}, - {0xef9198, 0x83398739}, - {0xef9199, 0x83398830}, - {0xef919a, 0x83398831}, - {0xef919b, 0x83398832}, - {0xef919c, 0x83398833}, - {0xef919d, 0x83398834}, - {0xef919e, 0x83398835}, - {0xef919f, 0x83398836}, - {0xef91a0, 0x83398837}, - {0xef91a1, 0x83398838}, - {0xef91a2, 0x83398839}, - {0xef91a3, 0x83398930}, - {0xef91a4, 0x83398931}, - {0xef91a5, 0x83398932}, - {0xef91a6, 0x83398933}, - {0xef91a7, 0x83398934}, - {0xef91a8, 0x83398935}, - {0xef91a9, 0x83398936}, - {0xef91aa, 0x83398937}, - {0xef91ab, 0x83398938}, - {0xef91ac, 0x83398939}, - {0xef91ad, 0x83398a30}, - {0xef91ae, 0x83398a31}, - {0xef91af, 0x83398a32}, - {0xef91b0, 0x83398a33}, - {0xef91b1, 0x83398a34}, - {0xef91b2, 0x83398a35}, - {0xef91b3, 0x83398a36}, - {0xef91b4, 0x83398a37}, - {0xef91b5, 0x83398a38}, - {0xef91b6, 0x83398a39}, - {0xef91b7, 0x83398b30}, - {0xef91b8, 0x83398b31}, - {0xef91b9, 0x83398b32}, - {0xef91ba, 0x83398b33}, - {0xef91bb, 0x83398b34}, - {0xef91bc, 0x83398b35}, - {0xef91bd, 0x83398b36}, - {0xef91be, 0x83398b37}, - {0xef91bf, 0x83398b38}, - {0xef9280, 0x83398b39}, - {0xef9281, 0x83398c30}, - {0xef9282, 0x83398c31}, - {0xef9283, 0x83398c32}, - {0xef9284, 0x83398c33}, - {0xef9285, 0x83398c34}, - {0xef9286, 0x83398c35}, - {0xef9287, 0x83398c36}, - {0xef9288, 0x83398c37}, - {0xef9289, 0x83398c38}, - {0xef928a, 0x83398c39}, - {0xef928b, 0x83398d30}, - {0xef928c, 0x83398d31}, - {0xef928d, 0x83398d32}, - {0xef928e, 0x83398d33}, - {0xef928f, 0x83398d34}, - {0xef9290, 0x83398d35}, - {0xef9291, 0x83398d36}, - {0xef9292, 0x83398d37}, - {0xef9293, 0x83398d38}, - {0xef9294, 0x83398d39}, - {0xef9295, 0x83398e30}, - {0xef9296, 0x83398e31}, - {0xef9297, 0x83398e32}, - {0xef9298, 0x83398e33}, - {0xef9299, 0x83398e34}, - {0xef929a, 0x83398e35}, - {0xef929b, 0x83398e36}, - {0xef929c, 0x83398e37}, - {0xef929d, 0x83398e38}, - {0xef929e, 0x83398e39}, - {0xef929f, 0x83398f30}, - {0xef92a0, 0x83398f31}, - {0xef92a1, 0x83398f32}, - {0xef92a2, 0x83398f33}, - {0xef92a3, 0x83398f34}, - {0xef92a4, 0x83398f35}, - {0xef92a5, 0x83398f36}, - {0xef92a6, 0x83398f37}, - {0xef92a7, 0x83398f38}, - {0xef92a8, 0x83398f39}, - {0xef92a9, 0x83399030}, - {0xef92aa, 0x83399031}, - {0xef92ab, 0x83399032}, - {0xef92ac, 0x83399033}, - {0xef92ad, 0x83399034}, - {0xef92ae, 0x83399035}, - {0xef92af, 0x83399036}, - {0xef92b0, 0x83399037}, - {0xef92b1, 0x83399038}, - {0xef92b2, 0x83399039}, - {0xef92b3, 0x83399130}, - {0xef92b4, 0x83399131}, - {0xef92b5, 0x83399132}, - {0xef92b6, 0x83399133}, - {0xef92b7, 0x83399134}, - {0xef92b8, 0x83399135}, - {0xef92b9, 0x83399136}, - {0xef92ba, 0x83399137}, - {0xef92bb, 0x83399138}, - {0xef92bc, 0x83399139}, - {0xef92bd, 0x83399230}, - {0xef92be, 0x83399231}, - {0xef92bf, 0x83399232}, - {0xef9380, 0x83399233}, - {0xef9381, 0x83399234}, - {0xef9382, 0x83399235}, - {0xef9383, 0x83399236}, - {0xef9384, 0x83399237}, - {0xef9385, 0x83399238}, - {0xef9386, 0x83399239}, - {0xef9387, 0x83399330}, - {0xef9388, 0x83399331}, - {0xef9389, 0x83399332}, - {0xef938a, 0x83399333}, - {0xef938b, 0x83399334}, - {0xef938c, 0x83399335}, - {0xef938d, 0x83399336}, - {0xef938e, 0x83399337}, - {0xef938f, 0x83399338}, - {0xef9390, 0x83399339}, - {0xef9391, 0x83399430}, - {0xef9392, 0x83399431}, - {0xef9393, 0x83399432}, - {0xef9394, 0x83399433}, - {0xef9395, 0x83399434}, - {0xef9396, 0x83399435}, - {0xef9397, 0x83399436}, - {0xef9398, 0x83399437}, - {0xef9399, 0x83399438}, - {0xef939a, 0x83399439}, - {0xef939b, 0x83399530}, - {0xef939c, 0x83399531}, - {0xef939d, 0x83399532}, - {0xef939e, 0x83399533}, - {0xef939f, 0x83399534}, - {0xef93a0, 0x83399535}, - {0xef93a1, 0x83399536}, - {0xef93a2, 0x83399537}, - {0xef93a3, 0x83399538}, - {0xef93a4, 0x83399539}, - {0xef93a5, 0x83399630}, - {0xef93a6, 0x83399631}, - {0xef93a7, 0x83399632}, - {0xef93a8, 0x83399633}, - {0xef93a9, 0x83399634}, - {0xef93aa, 0x83399635}, - {0xef93ab, 0x83399636}, - {0xef93ac, 0x83399637}, - {0xef93ad, 0x83399638}, - {0xef93ae, 0x83399639}, - {0xef93af, 0x83399730}, - {0xef93b0, 0x83399731}, - {0xef93b1, 0x83399732}, - {0xef93b2, 0x83399733}, - {0xef93b3, 0x83399734}, - {0xef93b4, 0x83399735}, - {0xef93b5, 0x83399736}, - {0xef93b6, 0x83399737}, - {0xef93b7, 0x83399738}, - {0xef93b8, 0x83399739}, - {0xef93b9, 0x83399830}, - {0xef93ba, 0x83399831}, - {0xef93bb, 0x83399832}, - {0xef93bc, 0x83399833}, - {0xef93bd, 0x83399834}, - {0xef93be, 0x83399835}, - {0xef93bf, 0x83399836}, - {0xef9480, 0x83399837}, - {0xef9481, 0x83399838}, - {0xef9482, 0x83399839}, - {0xef9483, 0x83399930}, - {0xef9484, 0x83399931}, - {0xef9485, 0x83399932}, - {0xef9486, 0x83399933}, - {0xef9487, 0x83399934}, - {0xef9488, 0x83399935}, - {0xef9489, 0x83399936}, - {0xef948a, 0x83399937}, - {0xef948b, 0x83399938}, - {0xef948c, 0x83399939}, - {0xef948d, 0x83399a30}, - {0xef948e, 0x83399a31}, - {0xef948f, 0x83399a32}, - {0xef9490, 0x83399a33}, - {0xef9491, 0x83399a34}, - {0xef9492, 0x83399a35}, - {0xef9493, 0x83399a36}, - {0xef9494, 0x83399a37}, - {0xef9495, 0x83399a38}, - {0xef9496, 0x83399a39}, - {0xef9497, 0x83399b30}, - {0xef9498, 0x83399b31}, - {0xef9499, 0x83399b32}, - {0xef949a, 0x83399b33}, - {0xef949b, 0x83399b34}, - {0xef949c, 0x83399b35}, - {0xef949d, 0x83399b36}, - {0xef949e, 0x83399b37}, - {0xef949f, 0x83399b38}, - {0xef94a0, 0x83399b39}, - {0xef94a1, 0x83399c30}, - {0xef94a2, 0x83399c31}, - {0xef94a3, 0x83399c32}, - {0xef94a4, 0x83399c33}, - {0xef94a5, 0x83399c34}, - {0xef94a6, 0x83399c35}, - {0xef94a7, 0x83399c36}, - {0xef94a8, 0x83399c37}, - {0xef94a9, 0x83399c38}, - {0xef94aa, 0x83399c39}, - {0xef94ab, 0x83399d30}, - {0xef94ac, 0x83399d31}, - {0xef94ad, 0x83399d32}, - {0xef94ae, 0x83399d33}, - {0xef94af, 0x83399d34}, - {0xef94b0, 0x83399d35}, - {0xef94b1, 0x83399d36}, - {0xef94b2, 0x83399d37}, - {0xef94b3, 0x83399d38}, - {0xef94b4, 0x83399d39}, - {0xef94b5, 0x83399e30}, - {0xef94b6, 0x83399e31}, - {0xef94b7, 0x83399e32}, - {0xef94b8, 0x83399e33}, - {0xef94b9, 0x83399e34}, - {0xef94ba, 0x83399e35}, - {0xef94bb, 0x83399e36}, - {0xef94bc, 0x83399e37}, - {0xef94bd, 0x83399e38}, - {0xef94be, 0x83399e39}, - {0xef94bf, 0x83399f30}, - {0xef9580, 0x83399f31}, - {0xef9581, 0x83399f32}, - {0xef9582, 0x83399f33}, - {0xef9583, 0x83399f34}, - {0xef9584, 0x83399f35}, - {0xef9585, 0x83399f36}, - {0xef9586, 0x83399f37}, - {0xef9587, 0x83399f38}, - {0xef9588, 0x83399f39}, - {0xef9589, 0x8339a030}, - {0xef958a, 0x8339a031}, - {0xef958b, 0x8339a032}, - {0xef958c, 0x8339a033}, - {0xef958d, 0x8339a034}, - {0xef958e, 0x8339a035}, - {0xef958f, 0x8339a036}, - {0xef9590, 0x8339a037}, - {0xef9591, 0x8339a038}, - {0xef9592, 0x8339a039}, - {0xef9593, 0x8339a130}, - {0xef9594, 0x8339a131}, - {0xef9595, 0x8339a132}, - {0xef9596, 0x8339a133}, - {0xef9597, 0x8339a134}, - {0xef9598, 0x8339a135}, - {0xef9599, 0x8339a136}, - {0xef959a, 0x8339a137}, - {0xef959b, 0x8339a138}, - {0xef959c, 0x8339a139}, - {0xef959d, 0x8339a230}, - {0xef959e, 0x8339a231}, - {0xef959f, 0x8339a232}, - {0xef95a0, 0x8339a233}, - {0xef95a1, 0x8339a234}, - {0xef95a2, 0x8339a235}, - {0xef95a3, 0x8339a236}, - {0xef95a4, 0x8339a237}, - {0xef95a5, 0x8339a238}, - {0xef95a6, 0x8339a239}, - {0xef95a7, 0x8339a330}, - {0xef95a8, 0x8339a331}, - {0xef95a9, 0x8339a332}, - {0xef95aa, 0x8339a333}, - {0xef95ab, 0x8339a334}, - {0xef95ac, 0x8339a335}, - {0xef95ad, 0x8339a336}, - {0xef95ae, 0x8339a337}, - {0xef95af, 0x8339a338}, - {0xef95b0, 0x8339a339}, - {0xef95b1, 0x8339a430}, - {0xef95b2, 0x8339a431}, - {0xef95b3, 0x8339a432}, - {0xef95b4, 0x8339a433}, - {0xef95b5, 0x8339a434}, - {0xef95b6, 0x8339a435}, - {0xef95b7, 0x8339a436}, - {0xef95b8, 0x8339a437}, - {0xef95b9, 0x8339a438}, - {0xef95ba, 0x8339a439}, - {0xef95bb, 0x8339a530}, - {0xef95bc, 0x8339a531}, - {0xef95bd, 0x8339a532}, - {0xef95be, 0x8339a533}, - {0xef95bf, 0x8339a534}, - {0xef9680, 0x8339a535}, - {0xef9681, 0x8339a536}, - {0xef9682, 0x8339a537}, - {0xef9683, 0x8339a538}, - {0xef9684, 0x8339a539}, - {0xef9685, 0x8339a630}, - {0xef9686, 0x8339a631}, - {0xef9687, 0x8339a632}, - {0xef9688, 0x8339a633}, - {0xef9689, 0x8339a634}, - {0xef968a, 0x8339a635}, - {0xef968b, 0x8339a636}, - {0xef968c, 0x8339a637}, - {0xef968d, 0x8339a638}, - {0xef968e, 0x8339a639}, - {0xef968f, 0x8339a730}, - {0xef9690, 0x8339a731}, - {0xef9691, 0x8339a732}, - {0xef9692, 0x8339a733}, - {0xef9693, 0x8339a734}, - {0xef9694, 0x8339a735}, - {0xef9695, 0x8339a736}, - {0xef9696, 0x8339a737}, - {0xef9697, 0x8339a738}, - {0xef9698, 0x8339a739}, - {0xef9699, 0x8339a830}, - {0xef969a, 0x8339a831}, - {0xef969b, 0x8339a832}, - {0xef969c, 0x8339a833}, - {0xef969d, 0x8339a834}, - {0xef969e, 0x8339a835}, - {0xef969f, 0x8339a836}, - {0xef96a0, 0x8339a837}, - {0xef96a1, 0x8339a838}, - {0xef96a2, 0x8339a839}, - {0xef96a3, 0x8339a930}, - {0xef96a4, 0x8339a931}, - {0xef96a5, 0x8339a932}, - {0xef96a6, 0x8339a933}, - {0xef96a7, 0x8339a934}, - {0xef96a8, 0x8339a935}, - {0xef96a9, 0x8339a936}, - {0xef96aa, 0x8339a937}, - {0xef96ab, 0x8339a938}, - {0xef96ac, 0x8339a939}, - {0xef96ad, 0x8339aa30}, - {0xef96ae, 0x8339aa31}, - {0xef96af, 0x8339aa32}, - {0xef96b0, 0x8339aa33}, - {0xef96b1, 0x8339aa34}, - {0xef96b2, 0x8339aa35}, - {0xef96b3, 0x8339aa36}, - {0xef96b4, 0x8339aa37}, - {0xef96b5, 0x8339aa38}, - {0xef96b6, 0x8339aa39}, - {0xef96b7, 0x8339ab30}, - {0xef96b8, 0x8339ab31}, - {0xef96b9, 0x8339ab32}, - {0xef96ba, 0x8339ab33}, - {0xef96bb, 0x8339ab34}, - {0xef96bc, 0x8339ab35}, - {0xef96bd, 0x8339ab36}, - {0xef96be, 0x8339ab37}, - {0xef96bf, 0x8339ab38}, - {0xef9780, 0x8339ab39}, - {0xef9781, 0x8339ac30}, - {0xef9782, 0x8339ac31}, - {0xef9783, 0x8339ac32}, - {0xef9784, 0x8339ac33}, - {0xef9785, 0x8339ac34}, - {0xef9786, 0x8339ac35}, - {0xef9787, 0x8339ac36}, - {0xef9788, 0x8339ac37}, - {0xef9789, 0x8339ac38}, - {0xef978a, 0x8339ac39}, - {0xef978b, 0x8339ad30}, - {0xef978c, 0x8339ad31}, - {0xef978d, 0x8339ad32}, - {0xef978e, 0x8339ad33}, - {0xef978f, 0x8339ad34}, - {0xef9790, 0x8339ad35}, - {0xef9791, 0x8339ad36}, - {0xef9792, 0x8339ad37}, - {0xef9793, 0x8339ad38}, - {0xef9794, 0x8339ad39}, - {0xef9795, 0x8339ae30}, - {0xef9796, 0x8339ae31}, - {0xef9797, 0x8339ae32}, - {0xef9798, 0x8339ae33}, - {0xef9799, 0x8339ae34}, - {0xef979a, 0x8339ae35}, - {0xef979b, 0x8339ae36}, - {0xef979c, 0x8339ae37}, - {0xef979d, 0x8339ae38}, - {0xef979e, 0x8339ae39}, - {0xef979f, 0x8339af30}, - {0xef97a0, 0x8339af31}, - {0xef97a1, 0x8339af32}, - {0xef97a2, 0x8339af33}, - {0xef97a3, 0x8339af34}, - {0xef97a4, 0x8339af35}, - {0xef97a5, 0x8339af36}, - {0xef97a6, 0x8339af37}, - {0xef97a7, 0x8339af38}, - {0xef97a8, 0x8339af39}, - {0xef97a9, 0x8339b030}, - {0xef97aa, 0x8339b031}, - {0xef97ab, 0x8339b032}, - {0xef97ac, 0x8339b033}, - {0xef97ad, 0x8339b034}, - {0xef97ae, 0x8339b035}, - {0xef97af, 0x8339b036}, - {0xef97b0, 0x8339b037}, - {0xef97b1, 0x8339b038}, - {0xef97b2, 0x8339b039}, - {0xef97b3, 0x8339b130}, - {0xef97b4, 0x8339b131}, - {0xef97b5, 0x8339b132}, - {0xef97b6, 0x8339b133}, - {0xef97b7, 0x8339b134}, - {0xef97b8, 0x8339b135}, - {0xef97b9, 0x8339b136}, - {0xef97ba, 0x8339b137}, - {0xef97bb, 0x8339b138}, - {0xef97bc, 0x8339b139}, - {0xef97bd, 0x8339b230}, - {0xef97be, 0x8339b231}, - {0xef97bf, 0x8339b232}, - {0xef9880, 0x8339b233}, - {0xef9881, 0x8339b234}, - {0xef9882, 0x8339b235}, - {0xef9883, 0x8339b236}, - {0xef9884, 0x8339b237}, - {0xef9885, 0x8339b238}, - {0xef9886, 0x8339b239}, - {0xef9887, 0x8339b330}, - {0xef9888, 0x8339b331}, - {0xef9889, 0x8339b332}, - {0xef988a, 0x8339b333}, - {0xef988b, 0x8339b334}, - {0xef988c, 0x8339b335}, - {0xef988d, 0x8339b336}, - {0xef988e, 0x8339b337}, - {0xef988f, 0x8339b338}, - {0xef9890, 0x8339b339}, - {0xef9891, 0x8339b430}, - {0xef9892, 0x8339b431}, - {0xef9893, 0x8339b432}, - {0xef9894, 0x8339b433}, - {0xef9895, 0x8339b434}, - {0xef9896, 0x8339b435}, - {0xef9897, 0x8339b436}, - {0xef9898, 0x8339b437}, - {0xef9899, 0x8339b438}, - {0xef989a, 0x8339b439}, - {0xef989b, 0x8339b530}, - {0xef989c, 0x8339b531}, - {0xef989d, 0x8339b532}, - {0xef989e, 0x8339b533}, - {0xef989f, 0x8339b534}, - {0xef98a0, 0x8339b535}, - {0xef98a1, 0x8339b536}, - {0xef98a2, 0x8339b537}, - {0xef98a3, 0x8339b538}, - {0xef98a4, 0x8339b539}, - {0xef98a5, 0x8339b630}, - {0xef98a6, 0x8339b631}, - {0xef98a7, 0x8339b632}, - {0xef98a8, 0x8339b633}, - {0xef98a9, 0x8339b634}, - {0xef98aa, 0x8339b635}, - {0xef98ab, 0x8339b636}, - {0xef98ac, 0x8339b637}, - {0xef98ad, 0x8339b638}, - {0xef98ae, 0x8339b639}, - {0xef98af, 0x8339b730}, - {0xef98b0, 0x8339b731}, - {0xef98b1, 0x8339b732}, - {0xef98b2, 0x8339b733}, - {0xef98b3, 0x8339b734}, - {0xef98b4, 0x8339b735}, - {0xef98b5, 0x8339b736}, - {0xef98b6, 0x8339b737}, - {0xef98b7, 0x8339b738}, - {0xef98b8, 0x8339b739}, - {0xef98b9, 0x8339b830}, - {0xef98ba, 0x8339b831}, - {0xef98bb, 0x8339b832}, - {0xef98bc, 0x8339b833}, - {0xef98bd, 0x8339b834}, - {0xef98be, 0x8339b835}, - {0xef98bf, 0x8339b836}, - {0xef9980, 0x8339b837}, - {0xef9981, 0x8339b838}, - {0xef9982, 0x8339b839}, - {0xef9983, 0x8339b930}, - {0xef9984, 0x8339b931}, - {0xef9985, 0x8339b932}, - {0xef9986, 0x8339b933}, - {0xef9987, 0x8339b934}, - {0xef9988, 0x8339b935}, - {0xef9989, 0x8339b936}, - {0xef998a, 0x8339b937}, - {0xef998b, 0x8339b938}, - {0xef998c, 0x8339b939}, - {0xef998d, 0x8339ba30}, - {0xef998e, 0x8339ba31}, - {0xef998f, 0x8339ba32}, - {0xef9990, 0x8339ba33}, - {0xef9991, 0x8339ba34}, - {0xef9992, 0x8339ba35}, - {0xef9993, 0x8339ba36}, - {0xef9994, 0x8339ba37}, - {0xef9995, 0x8339ba38}, - {0xef9996, 0x8339ba39}, - {0xef9997, 0x8339bb30}, - {0xef9998, 0x8339bb31}, - {0xef9999, 0x8339bb32}, - {0xef999a, 0x8339bb33}, - {0xef999b, 0x8339bb34}, - {0xef999c, 0x8339bb35}, - {0xef999d, 0x8339bb36}, - {0xef999e, 0x8339bb37}, - {0xef999f, 0x8339bb38}, - {0xef99a0, 0x8339bb39}, - {0xef99a1, 0x8339bc30}, - {0xef99a2, 0x8339bc31}, - {0xef99a3, 0x8339bc32}, - {0xef99a4, 0x8339bc33}, - {0xef99a5, 0x8339bc34}, - {0xef99a6, 0x8339bc35}, - {0xef99a7, 0x8339bc36}, - {0xef99a8, 0x8339bc37}, - {0xef99a9, 0x8339bc38}, - {0xef99aa, 0x8339bc39}, - {0xef99ab, 0x8339bd30}, - {0xef99ac, 0x8339bd31}, - {0xef99ad, 0x8339bd32}, - {0xef99ae, 0x8339bd33}, - {0xef99af, 0x8339bd34}, - {0xef99b0, 0x8339bd35}, - {0xef99b1, 0x8339bd36}, - {0xef99b2, 0x8339bd37}, - {0xef99b3, 0x8339bd38}, - {0xef99b4, 0x8339bd39}, - {0xef99b5, 0x8339be30}, - {0xef99b6, 0x8339be31}, - {0xef99b7, 0x8339be32}, - {0xef99b8, 0x8339be33}, - {0xef99b9, 0x8339be34}, - {0xef99ba, 0x8339be35}, - {0xef99bb, 0x8339be36}, - {0xef99bc, 0x8339be37}, - {0xef99bd, 0x8339be38}, - {0xef99be, 0x8339be39}, - {0xef99bf, 0x8339bf30}, - {0xef9a80, 0x8339bf31}, - {0xef9a81, 0x8339bf32}, - {0xef9a82, 0x8339bf33}, - {0xef9a83, 0x8339bf34}, - {0xef9a84, 0x8339bf35}, - {0xef9a85, 0x8339bf36}, - {0xef9a86, 0x8339bf37}, - {0xef9a87, 0x8339bf38}, - {0xef9a88, 0x8339bf39}, - {0xef9a89, 0x8339c030}, - {0xef9a8a, 0x8339c031}, - {0xef9a8b, 0x8339c032}, - {0xef9a8c, 0x8339c033}, - {0xef9a8d, 0x8339c034}, - {0xef9a8e, 0x8339c035}, - {0xef9a8f, 0x8339c036}, - {0xef9a90, 0x8339c037}, - {0xef9a91, 0x8339c038}, - {0xef9a92, 0x8339c039}, - {0xef9a93, 0x8339c130}, - {0xef9a94, 0x8339c131}, - {0xef9a95, 0x8339c132}, - {0xef9a96, 0x8339c133}, - {0xef9a97, 0x8339c134}, - {0xef9a98, 0x8339c135}, - {0xef9a99, 0x8339c136}, - {0xef9a9a, 0x8339c137}, - {0xef9a9b, 0x8339c138}, - {0xef9a9c, 0x8339c139}, - {0xef9a9d, 0x8339c230}, - {0xef9a9e, 0x8339c231}, - {0xef9a9f, 0x8339c232}, - {0xef9aa0, 0x8339c233}, - {0xef9aa1, 0x8339c234}, - {0xef9aa2, 0x8339c235}, - {0xef9aa3, 0x8339c236}, - {0xef9aa4, 0x8339c237}, - {0xef9aa5, 0x8339c238}, - {0xef9aa6, 0x8339c239}, - {0xef9aa7, 0x8339c330}, - {0xef9aa8, 0x8339c331}, - {0xef9aa9, 0x8339c332}, - {0xef9aaa, 0x8339c333}, - {0xef9aab, 0x8339c334}, - {0xef9aac, 0x8339c335}, - {0xef9aad, 0x8339c336}, - {0xef9aae, 0x8339c337}, - {0xef9aaf, 0x8339c338}, - {0xef9ab0, 0x8339c339}, - {0xef9ab1, 0x8339c430}, - {0xef9ab2, 0x8339c431}, - {0xef9ab3, 0x8339c432}, - {0xef9ab4, 0x8339c433}, - {0xef9ab5, 0x8339c434}, - {0xef9ab6, 0x8339c435}, - {0xef9ab7, 0x8339c436}, - {0xef9ab8, 0x8339c437}, - {0xef9ab9, 0x8339c438}, - {0xef9aba, 0x8339c439}, - {0xef9abb, 0x8339c530}, - {0xef9abc, 0x8339c531}, - {0xef9abd, 0x8339c532}, - {0xef9abe, 0x8339c533}, - {0xef9abf, 0x8339c534}, - {0xef9b80, 0x8339c535}, - {0xef9b81, 0x8339c536}, - {0xef9b82, 0x8339c537}, - {0xef9b83, 0x8339c538}, - {0xef9b84, 0x8339c539}, - {0xef9b85, 0x8339c630}, - {0xef9b86, 0x8339c631}, - {0xef9b87, 0x8339c632}, - {0xef9b88, 0x8339c633}, - {0xef9b89, 0x8339c634}, - {0xef9b8a, 0x8339c635}, - {0xef9b8b, 0x8339c636}, - {0xef9b8c, 0x8339c637}, - {0xef9b8d, 0x8339c638}, - {0xef9b8e, 0x8339c639}, - {0xef9b8f, 0x8339c730}, - {0xef9b90, 0x8339c731}, - {0xef9b91, 0x8339c732}, - {0xef9b92, 0x8339c733}, - {0xef9b93, 0x8339c734}, - {0xef9b94, 0x8339c735}, - {0xef9b95, 0x8339c736}, - {0xef9b96, 0x8339c737}, - {0xef9b97, 0x8339c738}, - {0xef9b98, 0x8339c739}, - {0xef9b99, 0x8339c830}, - {0xef9b9a, 0x8339c831}, - {0xef9b9b, 0x8339c832}, - {0xef9b9c, 0x8339c833}, - {0xef9b9d, 0x8339c834}, - {0xef9b9e, 0x8339c835}, - {0xef9b9f, 0x8339c836}, - {0xef9ba0, 0x8339c837}, - {0xef9ba1, 0x8339c838}, - {0xef9ba2, 0x8339c839}, - {0xef9ba3, 0x8339c930}, - {0xef9ba4, 0x8339c931}, - {0xef9ba5, 0x8339c932}, - {0xef9ba6, 0x8339c933}, - {0xef9ba7, 0x8339c934}, - {0xef9ba8, 0x8339c935}, - {0xef9ba9, 0x8339c936}, - {0xef9baa, 0x8339c937}, - {0xef9bab, 0x8339c938}, - {0xef9bac, 0x8339c939}, - {0xef9bad, 0x8339ca30}, - {0xef9bae, 0x8339ca31}, - {0xef9baf, 0x8339ca32}, - {0xef9bb0, 0x8339ca33}, - {0xef9bb1, 0x8339ca34}, - {0xef9bb2, 0x8339ca35}, - {0xef9bb3, 0x8339ca36}, - {0xef9bb4, 0x8339ca37}, - {0xef9bb5, 0x8339ca38}, - {0xef9bb6, 0x8339ca39}, - {0xef9bb7, 0x8339cb30}, - {0xef9bb8, 0x8339cb31}, - {0xef9bb9, 0x8339cb32}, - {0xef9bba, 0x8339cb33}, - {0xef9bbb, 0x8339cb34}, - {0xef9bbc, 0x8339cb35}, - {0xef9bbd, 0x8339cb36}, - {0xef9bbe, 0x8339cb37}, - {0xef9bbf, 0x8339cb38}, - {0xef9c80, 0x8339cb39}, - {0xef9c81, 0x8339cc30}, - {0xef9c82, 0x8339cc31}, - {0xef9c83, 0x8339cc32}, - {0xef9c84, 0x8339cc33}, - {0xef9c85, 0x8339cc34}, - {0xef9c86, 0x8339cc35}, - {0xef9c87, 0x8339cc36}, - {0xef9c88, 0x8339cc37}, - {0xef9c89, 0x8339cc38}, - {0xef9c8a, 0x8339cc39}, - {0xef9c8b, 0x8339cd30}, - {0xef9c8c, 0x8339cd31}, - {0xef9c8d, 0x8339cd32}, - {0xef9c8e, 0x8339cd33}, - {0xef9c8f, 0x8339cd34}, - {0xef9c90, 0x8339cd35}, - {0xef9c91, 0x8339cd36}, - {0xef9c92, 0x8339cd37}, - {0xef9c93, 0x8339cd38}, - {0xef9c94, 0x8339cd39}, - {0xef9c95, 0x8339ce30}, - {0xef9c96, 0x8339ce31}, - {0xef9c97, 0x8339ce32}, - {0xef9c98, 0x8339ce33}, - {0xef9c99, 0x8339ce34}, - {0xef9c9a, 0x8339ce35}, - {0xef9c9b, 0x8339ce36}, - {0xef9c9c, 0x8339ce37}, - {0xef9c9d, 0x8339ce38}, - {0xef9c9e, 0x8339ce39}, - {0xef9c9f, 0x8339cf30}, - {0xef9ca0, 0x8339cf31}, - {0xef9ca1, 0x8339cf32}, - {0xef9ca2, 0x8339cf33}, - {0xef9ca3, 0x8339cf34}, - {0xef9ca4, 0x8339cf35}, - {0xef9ca5, 0x8339cf36}, - {0xef9ca6, 0x8339cf37}, - {0xef9ca7, 0x8339cf38}, - {0xef9ca8, 0x8339cf39}, - {0xef9ca9, 0x8339d030}, - {0xef9caa, 0x8339d031}, - {0xef9cab, 0x8339d032}, - {0xef9cac, 0x8339d033}, - {0xef9cad, 0x8339d034}, - {0xef9cae, 0x8339d035}, - {0xef9caf, 0x8339d036}, - {0xef9cb0, 0x8339d037}, - {0xef9cb1, 0x8339d038}, - {0xef9cb2, 0x8339d039}, - {0xef9cb3, 0x8339d130}, - {0xef9cb4, 0x8339d131}, - {0xef9cb5, 0x8339d132}, - {0xef9cb6, 0x8339d133}, - {0xef9cb7, 0x8339d134}, - {0xef9cb8, 0x8339d135}, - {0xef9cb9, 0x8339d136}, - {0xef9cba, 0x8339d137}, - {0xef9cbb, 0x8339d138}, - {0xef9cbc, 0x8339d139}, - {0xef9cbd, 0x8339d230}, - {0xef9cbe, 0x8339d231}, - {0xef9cbf, 0x8339d232}, - {0xef9d80, 0x8339d233}, - {0xef9d81, 0x8339d234}, - {0xef9d82, 0x8339d235}, - {0xef9d83, 0x8339d236}, - {0xef9d84, 0x8339d237}, - {0xef9d85, 0x8339d238}, - {0xef9d86, 0x8339d239}, - {0xef9d87, 0x8339d330}, - {0xef9d88, 0x8339d331}, - {0xef9d89, 0x8339d332}, - {0xef9d8a, 0x8339d333}, - {0xef9d8b, 0x8339d334}, - {0xef9d8c, 0x8339d335}, - {0xef9d8d, 0x8339d336}, - {0xef9d8e, 0x8339d337}, - {0xef9d8f, 0x8339d338}, - {0xef9d90, 0x8339d339}, - {0xef9d91, 0x8339d430}, - {0xef9d92, 0x8339d431}, - {0xef9d93, 0x8339d432}, - {0xef9d94, 0x8339d433}, - {0xef9d95, 0x8339d434}, - {0xef9d96, 0x8339d435}, - {0xef9d97, 0x8339d436}, - {0xef9d98, 0x8339d437}, - {0xef9d99, 0x8339d438}, - {0xef9d9a, 0x8339d439}, - {0xef9d9b, 0x8339d530}, - {0xef9d9c, 0x8339d531}, - {0xef9d9d, 0x8339d532}, - {0xef9d9e, 0x8339d533}, - {0xef9d9f, 0x8339d534}, - {0xef9da0, 0x8339d535}, - {0xef9da1, 0x8339d536}, - {0xef9da2, 0x8339d537}, - {0xef9da3, 0x8339d538}, - {0xef9da4, 0x8339d539}, - {0xef9da5, 0x8339d630}, - {0xef9da6, 0x8339d631}, - {0xef9da7, 0x8339d632}, - {0xef9da8, 0x8339d633}, - {0xef9da9, 0x8339d634}, - {0xef9daa, 0x8339d635}, - {0xef9dab, 0x8339d636}, - {0xef9dac, 0x8339d637}, - {0xef9dad, 0x8339d638}, - {0xef9dae, 0x8339d639}, - {0xef9daf, 0x8339d730}, - {0xef9db0, 0x8339d731}, - {0xef9db1, 0x8339d732}, - {0xef9db2, 0x8339d733}, - {0xef9db3, 0x8339d734}, - {0xef9db4, 0x8339d735}, - {0xef9db5, 0x8339d736}, - {0xef9db6, 0x8339d737}, - {0xef9db7, 0x8339d738}, - {0xef9db8, 0x8339d739}, - {0xef9db9, 0x8339d830}, - {0xef9dba, 0x8339d831}, - {0xef9dbb, 0x8339d832}, - {0xef9dbc, 0x8339d833}, - {0xef9dbd, 0x8339d834}, - {0xef9dbe, 0x8339d835}, - {0xef9dbf, 0x8339d836}, - {0xef9e80, 0x8339d837}, - {0xef9e81, 0x8339d838}, - {0xef9e82, 0x8339d839}, - {0xef9e83, 0x8339d930}, - {0xef9e84, 0x8339d931}, - {0xef9e85, 0x8339d932}, - {0xef9e86, 0x8339d933}, - {0xef9e87, 0x8339d934}, - {0xef9e88, 0x8339d935}, - {0xef9e89, 0x8339d936}, - {0xef9e8a, 0x8339d937}, - {0xef9e8b, 0x8339d938}, - {0xef9e8c, 0x8339d939}, - {0xef9e8d, 0x8339da30}, - {0xef9e8e, 0x8339da31}, - {0xef9e8f, 0x8339da32}, - {0xef9e90, 0x8339da33}, - {0xef9e91, 0x8339da34}, - {0xef9e92, 0x8339da35}, - {0xef9e93, 0x8339da36}, - {0xef9e94, 0x8339da37}, - {0xef9e95, 0x8339da38}, - {0xef9e96, 0x8339da39}, - {0xef9e97, 0x8339db30}, - {0xef9e98, 0x8339db31}, - {0xef9e99, 0x8339db32}, - {0xef9e9a, 0x8339db33}, - {0xef9e9b, 0x8339db34}, - {0xef9e9c, 0x8339db35}, - {0xef9e9d, 0x8339db36}, - {0xef9e9e, 0x8339db37}, - {0xef9e9f, 0x8339db38}, - {0xef9ea0, 0x8339db39}, - {0xef9ea1, 0x8339dc30}, - {0xef9ea2, 0x8339dc31}, - {0xef9ea3, 0x8339dc32}, - {0xef9ea4, 0x8339dc33}, - {0xef9ea5, 0x8339dc34}, - {0xef9ea6, 0x8339dc35}, - {0xef9ea7, 0x8339dc36}, - {0xef9ea8, 0x8339dc37}, - {0xef9ea9, 0x8339dc38}, - {0xef9eaa, 0x8339dc39}, - {0xef9eab, 0x8339dd30}, - {0xef9eac, 0x8339dd31}, - {0xef9ead, 0x8339dd32}, - {0xef9eae, 0x8339dd33}, - {0xef9eaf, 0x8339dd34}, - {0xef9eb0, 0x8339dd35}, - {0xef9eb1, 0x8339dd36}, - {0xef9eb2, 0x8339dd37}, - {0xef9eb3, 0x8339dd38}, - {0xef9eb4, 0x8339dd39}, - {0xef9eb5, 0x8339de30}, - {0xef9eb6, 0x8339de31}, - {0xef9eb7, 0x8339de32}, - {0xef9eb8, 0x8339de33}, - {0xef9eb9, 0x8339de34}, - {0xef9eba, 0x8339de35}, - {0xef9ebb, 0x8339de36}, - {0xef9ebc, 0x8339de37}, - {0xef9ebd, 0x8339de38}, - {0xef9ebe, 0x8339de39}, - {0xef9ebf, 0x8339df30}, - {0xef9f80, 0x8339df31}, - {0xef9f81, 0x8339df32}, - {0xef9f82, 0x8339df33}, - {0xef9f83, 0x8339df34}, - {0xef9f84, 0x8339df35}, - {0xef9f85, 0x8339df36}, - {0xef9f86, 0x8339df37}, - {0xef9f87, 0x8339df38}, - {0xef9f88, 0x8339df39}, - {0xef9f89, 0x8339e030}, - {0xef9f8a, 0x8339e031}, - {0xef9f8b, 0x8339e032}, - {0xef9f8c, 0x8339e033}, - {0xef9f8d, 0x8339e034}, - {0xef9f8e, 0x8339e035}, - {0xef9f8f, 0x8339e036}, - {0xef9f90, 0x8339e037}, - {0xef9f91, 0x8339e038}, - {0xef9f92, 0x8339e039}, - {0xef9f93, 0x8339e130}, - {0xef9f94, 0x8339e131}, - {0xef9f95, 0x8339e132}, - {0xef9f96, 0x8339e133}, - {0xef9f97, 0x8339e134}, - {0xef9f98, 0x8339e135}, - {0xef9f99, 0x8339e136}, - {0xef9f9a, 0x8339e137}, - {0xef9f9b, 0x8339e138}, - {0xef9f9c, 0x8339e139}, - {0xef9f9d, 0x8339e230}, - {0xef9f9e, 0x8339e231}, - {0xef9f9f, 0x8339e232}, - {0xef9fa0, 0x8339e233}, - {0xef9fa1, 0x8339e234}, - {0xef9fa2, 0x8339e235}, - {0xef9fa3, 0x8339e236}, - {0xef9fa4, 0x8339e237}, - {0xef9fa5, 0x8339e238}, - {0xef9fa6, 0x8339e239}, - {0xef9fa7, 0x8339e330}, - {0xef9fa8, 0x8339e331}, - {0xef9fa9, 0x8339e332}, - {0xef9faa, 0x8339e333}, - {0xef9fab, 0x8339e334}, - {0xef9fac, 0x8339e335}, - {0xef9fad, 0x8339e336}, - {0xef9fae, 0x8339e337}, - {0xef9faf, 0x8339e338}, - {0xef9fb0, 0x8339e339}, - {0xef9fb1, 0x8339e430}, - {0xef9fb2, 0x8339e431}, - {0xef9fb3, 0x8339e432}, - {0xef9fb4, 0x8339e433}, - {0xef9fb5, 0x8339e434}, - {0xef9fb6, 0x8339e435}, - {0xef9fb7, 0x8339e436}, - {0xef9fb8, 0x8339e437}, - {0xef9fb9, 0x8339e438}, - {0xef9fba, 0x8339e439}, - {0xef9fbb, 0x8339e530}, - {0xef9fbc, 0x8339e531}, - {0xef9fbd, 0x8339e532}, - {0xef9fbe, 0x8339e533}, - {0xef9fbf, 0x8339e534}, - {0xefa080, 0x8339e535}, - {0xefa081, 0x8339e536}, - {0xefa082, 0x8339e537}, - {0xefa083, 0x8339e538}, - {0xefa084, 0x8339e539}, - {0xefa085, 0x8339e630}, - {0xefa086, 0x8339e631}, - {0xefa087, 0x8339e632}, - {0xefa088, 0x8339e633}, - {0xefa089, 0x8339e634}, - {0xefa08a, 0x8339e635}, - {0xefa08b, 0x8339e636}, - {0xefa08c, 0x8339e637}, - {0xefa08d, 0x8339e638}, - {0xefa08e, 0x8339e639}, - {0xefa08f, 0x8339e730}, - {0xefa090, 0x8339e731}, - {0xefa091, 0x8339e732}, - {0xefa092, 0x8339e733}, - {0xefa093, 0x8339e734}, - {0xefa094, 0x8339e735}, - {0xefa095, 0x8339e736}, - {0xefa096, 0x8339e737}, - {0xefa097, 0x8339e738}, - {0xefa098, 0x8339e739}, - {0xefa099, 0x8339e830}, - {0xefa09a, 0x8339e831}, - {0xefa09b, 0x8339e832}, - {0xefa09c, 0x8339e833}, - {0xefa09d, 0x8339e834}, - {0xefa09e, 0x8339e835}, - {0xefa09f, 0x8339e836}, - {0xefa0a0, 0x8339e837}, - {0xefa0a1, 0x8339e838}, - {0xefa0a2, 0x8339e839}, - {0xefa0a3, 0x8339e930}, - {0xefa0a4, 0x8339e931}, - {0xefa0a5, 0x8339e932}, - {0xefa0a6, 0x8339e933}, - {0xefa0a7, 0x8339e934}, - {0xefa0a8, 0x8339e935}, - {0xefa0a9, 0x8339e936}, - {0xefa0aa, 0x8339e937}, - {0xefa0ab, 0x8339e938}, - {0xefa0ac, 0x8339e939}, - {0xefa0ad, 0x8339ea30}, - {0xefa0ae, 0x8339ea31}, - {0xefa0af, 0x8339ea32}, - {0xefa0b0, 0x8339ea33}, - {0xefa0b1, 0x8339ea34}, - {0xefa0b2, 0x8339ea35}, - {0xefa0b3, 0x8339ea36}, - {0xefa0b4, 0x8339ea37}, - {0xefa0b5, 0x8339ea38}, - {0xefa0b6, 0x8339ea39}, - {0xefa0b7, 0x8339eb30}, - {0xefa0b8, 0x8339eb31}, - {0xefa0b9, 0x8339eb32}, - {0xefa0ba, 0x8339eb33}, - {0xefa0bb, 0x8339eb34}, - {0xefa0bc, 0x8339eb35}, - {0xefa0bd, 0x8339eb36}, - {0xefa0be, 0x8339eb37}, - {0xefa0bf, 0x8339eb38}, - {0xefa180, 0x8339eb39}, - {0xefa181, 0x8339ec30}, - {0xefa182, 0x8339ec31}, - {0xefa183, 0x8339ec32}, - {0xefa184, 0x8339ec33}, - {0xefa185, 0x8339ec34}, - {0xefa186, 0x8339ec35}, - {0xefa187, 0x8339ec36}, - {0xefa188, 0x8339ec37}, - {0xefa189, 0x8339ec38}, - {0xefa18a, 0x8339ec39}, - {0xefa18b, 0x8339ed30}, - {0xefa18c, 0x8339ed31}, - {0xefa18d, 0x8339ed32}, - {0xefa18e, 0x8339ed33}, - {0xefa18f, 0x8339ed34}, - {0xefa190, 0x8339ed35}, - {0xefa191, 0x8339ed36}, - {0xefa192, 0x8339ed37}, - {0xefa193, 0x8339ed38}, - {0xefa194, 0x8339ed39}, - {0xefa195, 0x8339ee30}, - {0xefa196, 0x8339ee31}, - {0xefa197, 0x8339ee32}, - {0xefa198, 0x8339ee33}, - {0xefa199, 0x8339ee34}, - {0xefa19a, 0x8339ee35}, - {0xefa19b, 0x8339ee36}, - {0xefa19c, 0x8339ee37}, - {0xefa19d, 0x8339ee38}, - {0xefa19e, 0x8339ee39}, - {0xefa19f, 0x8339ef30}, - {0xefa1a0, 0x8339ef31}, - {0xefa1a1, 0x8339ef32}, - {0xefa1a2, 0x8339ef33}, - {0xefa1a3, 0x8339ef34}, - {0xefa1a4, 0x8339ef35}, - {0xefa1a5, 0x8339ef36}, - {0xefa1a6, 0x8339ef37}, - {0xefa1a7, 0x8339ef38}, - {0xefa1a8, 0x8339ef39}, - {0xefa1a9, 0x8339f030}, - {0xefa1aa, 0x8339f031}, - {0xefa1ab, 0x8339f032}, - {0xefa1ac, 0x8339f033}, - {0xefa1ad, 0x8339f034}, - {0xefa1ae, 0x8339f035}, - {0xefa1af, 0x8339f036}, - {0xefa1b0, 0x8339f037}, - {0xefa1b1, 0x8339f038}, - {0xefa1b2, 0x8339f039}, - {0xefa1b3, 0x8339f130}, - {0xefa1b4, 0x8339f131}, - {0xefa1b5, 0x8339f132}, - {0xefa1b6, 0x8339f133}, - {0xefa1b7, 0x8339f134}, - {0xefa1b8, 0x8339f135}, - {0xefa1b9, 0x8339f136}, - {0xefa1ba, 0x8339f137}, - {0xefa1bb, 0x8339f138}, - {0xefa1bc, 0x8339f139}, - {0xefa1bd, 0x8339f230}, - {0xefa1be, 0x8339f231}, - {0xefa1bf, 0x8339f232}, - {0xefa280, 0x8339f233}, - {0xefa281, 0x8339f234}, - {0xefa282, 0x8339f235}, - {0xefa283, 0x8339f236}, - {0xefa284, 0x8339f237}, - {0xefa285, 0x8339f238}, - {0xefa286, 0x8339f239}, - {0xefa287, 0x8339f330}, - {0xefa288, 0x8339f331}, - {0xefa289, 0x8339f332}, - {0xefa28a, 0x8339f333}, - {0xefa28b, 0x8339f334}, - {0xefa28c, 0x8339f335}, - {0xefa28d, 0x8339f336}, - {0xefa28e, 0x8339f337}, - {0xefa28f, 0x8339f338}, - {0xefa290, 0x8339f339}, - {0xefa291, 0x8339f430}, - {0xefa292, 0x8339f431}, - {0xefa293, 0x8339f432}, - {0xefa294, 0x8339f433}, - {0xefa295, 0x8339f434}, - {0xefa296, 0x8339f435}, - {0xefa297, 0x8339f436}, - {0xefa298, 0x8339f437}, - {0xefa299, 0x8339f438}, - {0xefa29a, 0x8339f439}, - {0xefa29b, 0x8339f530}, - {0xefa29c, 0x8339f531}, - {0xefa29d, 0x8339f532}, - {0xefa29e, 0x8339f533}, - {0xefa29f, 0x8339f534}, - {0xefa2a0, 0x8339f535}, - {0xefa2a1, 0x8339f536}, - {0xefa2a2, 0x8339f537}, - {0xefa2a3, 0x8339f538}, - {0xefa2a4, 0x8339f539}, - {0xefa2a5, 0x8339f630}, - {0xefa2a6, 0x8339f631}, - {0xefa2a7, 0x8339f632}, - {0xefa2a8, 0x8339f633}, - {0xefa2a9, 0x8339f634}, - {0xefa2aa, 0x8339f635}, - {0xefa2ab, 0x8339f636}, - {0xefa2ac, 0x8339f637}, - {0xefa2ad, 0x8339f638}, - {0xefa2ae, 0x8339f639}, - {0xefa2af, 0x8339f730}, - {0xefa2b0, 0x8339f731}, - {0xefa2b1, 0x8339f732}, - {0xefa2b2, 0x8339f733}, - {0xefa2b3, 0x8339f734}, - {0xefa2b4, 0x8339f735}, - {0xefa2b5, 0x8339f736}, - {0xefa2b6, 0x8339f737}, - {0xefa2b7, 0x8339f738}, - {0xefa2b8, 0x8339f739}, - {0xefa2b9, 0x8339f830}, - {0xefa2ba, 0x8339f831}, - {0xefa2bb, 0x8339f832}, - {0xefa2bc, 0x8339f833}, - {0xefa2bd, 0x8339f834}, - {0xefa2be, 0x8339f835}, - {0xefa2bf, 0x8339f836}, - {0xefa380, 0x8339f837}, - {0xefa381, 0x8339f838}, - {0xefa382, 0x8339f839}, - {0xefa383, 0x8339f930}, - {0xefa384, 0x8339f931}, - {0xefa385, 0x8339f932}, - {0xefa386, 0x8339f933}, - {0xefa387, 0x8339f934}, - {0xefa388, 0x8339f935}, - {0xefa389, 0x8339f936}, - {0xefa38a, 0x8339f937}, - {0xefa38b, 0x8339f938}, - {0xefa38c, 0x8339f939}, - {0xefa38d, 0x8339fa30}, - {0xefa38e, 0x8339fa31}, - {0xefa38f, 0x8339fa32}, - {0xefa390, 0x8339fa33}, - {0xefa391, 0x8339fa34}, - {0xefa392, 0x8339fa35}, - {0xefa393, 0x8339fa36}, - {0xefa394, 0x8339fa37}, - {0xefa395, 0x8339fa38}, - {0xefa396, 0x8339fa39}, - {0xefa397, 0x8339fb30}, - {0xefa398, 0x8339fb31}, - {0xefa399, 0x8339fb32}, - {0xefa39a, 0x8339fb33}, - {0xefa39b, 0x8339fb34}, - {0xefa39c, 0x8339fb35}, - {0xefa39d, 0x8339fb36}, - {0xefa39e, 0x8339fb37}, - {0xefa39f, 0x8339fb38}, - {0xefa3a0, 0x8339fb39}, - {0xefa3a1, 0x8339fc30}, - {0xefa3a2, 0x8339fc31}, - {0xefa3a3, 0x8339fc32}, - {0xefa3a4, 0x8339fc33}, - {0xefa3a5, 0x8339fc34}, - {0xefa3a6, 0x8339fc35}, - {0xefa3a7, 0x8339fc36}, - {0xefa3a8, 0x8339fc37}, - {0xefa3a9, 0x8339fc38}, - {0xefa3aa, 0x8339fc39}, - {0xefa3ab, 0x8339fd30}, - {0xefa3ac, 0x8339fd31}, - {0xefa3ad, 0x8339fd32}, - {0xefa3ae, 0x8339fd33}, - {0xefa3af, 0x8339fd34}, - {0xefa3b0, 0x8339fd35}, - {0xefa3b1, 0x8339fd36}, - {0xefa3b2, 0x8339fd37}, - {0xefa3b3, 0x8339fd38}, - {0xefa3b4, 0x8339fd39}, - {0xefa3b5, 0x8339fe30}, - {0xefa3b6, 0x8339fe31}, - {0xefa3b7, 0x8339fe32}, - {0xefa3b8, 0x8339fe33}, - {0xefa3b9, 0x8339fe34}, - {0xefa3ba, 0x8339fe35}, - {0xefa3bb, 0x8339fe36}, - {0xefa3bc, 0x8339fe37}, - {0xefa3bd, 0x8339fe38}, - {0xefa3be, 0x8339fe39}, - {0xefa3bf, 0x84308130}, - {0xefa480, 0x84308131}, - {0xefa481, 0x84308132}, - {0xefa482, 0x84308133}, - {0xefa483, 0x84308134}, - {0xefa484, 0x84308135}, - {0xefa485, 0x84308136}, - {0xefa486, 0x84308137}, - {0xefa487, 0x84308138}, - {0xefa488, 0x84308139}, - {0xefa489, 0x84308230}, - {0xefa48a, 0x84308231}, - {0xefa48b, 0x84308232}, - {0xefa48c, 0x84308233}, - {0xefa48d, 0x84308234}, - {0xefa48e, 0x84308235}, - {0xefa48f, 0x84308236}, - {0xefa490, 0x84308237}, - {0xefa491, 0x84308238}, - {0xefa492, 0x84308239}, - {0xefa493, 0x84308330}, - {0xefa494, 0x84308331}, - {0xefa495, 0x84308332}, - {0xefa496, 0x84308333}, - {0xefa497, 0x84308334}, - {0xefa498, 0x84308335}, - {0xefa499, 0x84308336}, - {0xefa49a, 0x84308337}, - {0xefa49b, 0x84308338}, - {0xefa49c, 0x84308339}, - {0xefa49d, 0x84308430}, - {0xefa49e, 0x84308431}, - {0xefa49f, 0x84308432}, - {0xefa4a0, 0x84308433}, - {0xefa4a1, 0x84308434}, - {0xefa4a2, 0x84308435}, - {0xefa4a3, 0x84308436}, - {0xefa4a4, 0x84308437}, - {0xefa4a5, 0x84308438}, - {0xefa4a6, 0x84308439}, - {0xefa4a7, 0x84308530}, - {0xefa4a8, 0x84308531}, - {0xefa4a9, 0x84308532}, - {0xefa4aa, 0x84308533}, - {0xefa4ab, 0x84308534}, {0xefa4ac, 0xfd9c}, {0xefa4ad, 0x84308535}, {0xefa4ae, 0x84308536}, @@ -61865,1036 +30294,6 @@ static pg_utf_to_local ULmapGB18030[ 63360 ] = { {0xefa8a7, 0xfe4d}, {0xefa8a8, 0xfe4e}, {0xefa8a9, 0xfe4f}, - {0xefa8aa, 0x84309c38}, - {0xefa8ab, 0x84309c39}, - {0xefa8ac, 0x84309d30}, - {0xefa8ad, 0x84309d31}, - {0xefa8ae, 0x84309d32}, - {0xefa8af, 0x84309d33}, - {0xefa8b0, 0x84309d34}, - {0xefa8b1, 0x84309d35}, - {0xefa8b2, 0x84309d36}, - {0xefa8b3, 0x84309d37}, - {0xefa8b4, 0x84309d38}, - {0xefa8b5, 0x84309d39}, - {0xefa8b6, 0x84309e30}, - {0xefa8b7, 0x84309e31}, - {0xefa8b8, 0x84309e32}, - {0xefa8b9, 0x84309e33}, - {0xefa8ba, 0x84309e34}, - {0xefa8bb, 0x84309e35}, - {0xefa8bc, 0x84309e36}, - {0xefa8bd, 0x84309e37}, - {0xefa8be, 0x84309e38}, - {0xefa8bf, 0x84309e39}, - {0xefa980, 0x84309f30}, - {0xefa981, 0x84309f31}, - {0xefa982, 0x84309f32}, - {0xefa983, 0x84309f33}, - {0xefa984, 0x84309f34}, - {0xefa985, 0x84309f35}, - {0xefa986, 0x84309f36}, - {0xefa987, 0x84309f37}, - {0xefa988, 0x84309f38}, - {0xefa989, 0x84309f39}, - {0xefa98a, 0x8430a030}, - {0xefa98b, 0x8430a031}, - {0xefa98c, 0x8430a032}, - {0xefa98d, 0x8430a033}, - {0xefa98e, 0x8430a034}, - {0xefa98f, 0x8430a035}, - {0xefa990, 0x8430a036}, - {0xefa991, 0x8430a037}, - {0xefa992, 0x8430a038}, - {0xefa993, 0x8430a039}, - {0xefa994, 0x8430a130}, - {0xefa995, 0x8430a131}, - {0xefa996, 0x8430a132}, - {0xefa997, 0x8430a133}, - {0xefa998, 0x8430a134}, - {0xefa999, 0x8430a135}, - {0xefa99a, 0x8430a136}, - {0xefa99b, 0x8430a137}, - {0xefa99c, 0x8430a138}, - {0xefa99d, 0x8430a139}, - {0xefa99e, 0x8430a230}, - {0xefa99f, 0x8430a231}, - {0xefa9a0, 0x8430a232}, - {0xefa9a1, 0x8430a233}, - {0xefa9a2, 0x8430a234}, - {0xefa9a3, 0x8430a235}, - {0xefa9a4, 0x8430a236}, - {0xefa9a5, 0x8430a237}, - {0xefa9a6, 0x8430a238}, - {0xefa9a7, 0x8430a239}, - {0xefa9a8, 0x8430a330}, - {0xefa9a9, 0x8430a331}, - {0xefa9aa, 0x8430a332}, - {0xefa9ab, 0x8430a333}, - {0xefa9ac, 0x8430a334}, - {0xefa9ad, 0x8430a335}, - {0xefa9ae, 0x8430a336}, - {0xefa9af, 0x8430a337}, - {0xefa9b0, 0x8430a338}, - {0xefa9b1, 0x8430a339}, - {0xefa9b2, 0x8430a430}, - {0xefa9b3, 0x8430a431}, - {0xefa9b4, 0x8430a432}, - {0xefa9b5, 0x8430a433}, - {0xefa9b6, 0x8430a434}, - {0xefa9b7, 0x8430a435}, - {0xefa9b8, 0x8430a436}, - {0xefa9b9, 0x8430a437}, - {0xefa9ba, 0x8430a438}, - {0xefa9bb, 0x8430a439}, - {0xefa9bc, 0x8430a530}, - {0xefa9bd, 0x8430a531}, - {0xefa9be, 0x8430a532}, - {0xefa9bf, 0x8430a533}, - {0xefaa80, 0x8430a534}, - {0xefaa81, 0x8430a535}, - {0xefaa82, 0x8430a536}, - {0xefaa83, 0x8430a537}, - {0xefaa84, 0x8430a538}, - {0xefaa85, 0x8430a539}, - {0xefaa86, 0x8430a630}, - {0xefaa87, 0x8430a631}, - {0xefaa88, 0x8430a632}, - {0xefaa89, 0x8430a633}, - {0xefaa8a, 0x8430a634}, - {0xefaa8b, 0x8430a635}, - {0xefaa8c, 0x8430a636}, - {0xefaa8d, 0x8430a637}, - {0xefaa8e, 0x8430a638}, - {0xefaa8f, 0x8430a639}, - {0xefaa90, 0x8430a730}, - {0xefaa91, 0x8430a731}, - {0xefaa92, 0x8430a732}, - {0xefaa93, 0x8430a733}, - {0xefaa94, 0x8430a734}, - {0xefaa95, 0x8430a735}, - {0xefaa96, 0x8430a736}, - {0xefaa97, 0x8430a737}, - {0xefaa98, 0x8430a738}, - {0xefaa99, 0x8430a739}, - {0xefaa9a, 0x8430a830}, - {0xefaa9b, 0x8430a831}, - {0xefaa9c, 0x8430a832}, - {0xefaa9d, 0x8430a833}, - {0xefaa9e, 0x8430a834}, - {0xefaa9f, 0x8430a835}, - {0xefaaa0, 0x8430a836}, - {0xefaaa1, 0x8430a837}, - {0xefaaa2, 0x8430a838}, - {0xefaaa3, 0x8430a839}, - {0xefaaa4, 0x8430a930}, - {0xefaaa5, 0x8430a931}, - {0xefaaa6, 0x8430a932}, - {0xefaaa7, 0x8430a933}, - {0xefaaa8, 0x8430a934}, - {0xefaaa9, 0x8430a935}, - {0xefaaaa, 0x8430a936}, - {0xefaaab, 0x8430a937}, - {0xefaaac, 0x8430a938}, - {0xefaaad, 0x8430a939}, - {0xefaaae, 0x8430aa30}, - {0xefaaaf, 0x8430aa31}, - {0xefaab0, 0x8430aa32}, - {0xefaab1, 0x8430aa33}, - {0xefaab2, 0x8430aa34}, - {0xefaab3, 0x8430aa35}, - {0xefaab4, 0x8430aa36}, - {0xefaab5, 0x8430aa37}, - {0xefaab6, 0x8430aa38}, - {0xefaab7, 0x8430aa39}, - {0xefaab8, 0x8430ab30}, - {0xefaab9, 0x8430ab31}, - {0xefaaba, 0x8430ab32}, - {0xefaabb, 0x8430ab33}, - {0xefaabc, 0x8430ab34}, - {0xefaabd, 0x8430ab35}, - {0xefaabe, 0x8430ab36}, - {0xefaabf, 0x8430ab37}, - {0xefab80, 0x8430ab38}, - {0xefab81, 0x8430ab39}, - {0xefab82, 0x8430ac30}, - {0xefab83, 0x8430ac31}, - {0xefab84, 0x8430ac32}, - {0xefab85, 0x8430ac33}, - {0xefab86, 0x8430ac34}, - {0xefab87, 0x8430ac35}, - {0xefab88, 0x8430ac36}, - {0xefab89, 0x8430ac37}, - {0xefab8a, 0x8430ac38}, - {0xefab8b, 0x8430ac39}, - {0xefab8c, 0x8430ad30}, - {0xefab8d, 0x8430ad31}, - {0xefab8e, 0x8430ad32}, - {0xefab8f, 0x8430ad33}, - {0xefab90, 0x8430ad34}, - {0xefab91, 0x8430ad35}, - {0xefab92, 0x8430ad36}, - {0xefab93, 0x8430ad37}, - {0xefab94, 0x8430ad38}, - {0xefab95, 0x8430ad39}, - {0xefab96, 0x8430ae30}, - {0xefab97, 0x8430ae31}, - {0xefab98, 0x8430ae32}, - {0xefab99, 0x8430ae33}, - {0xefab9a, 0x8430ae34}, - {0xefab9b, 0x8430ae35}, - {0xefab9c, 0x8430ae36}, - {0xefab9d, 0x8430ae37}, - {0xefab9e, 0x8430ae38}, - {0xefab9f, 0x8430ae39}, - {0xefaba0, 0x8430af30}, - {0xefaba1, 0x8430af31}, - {0xefaba2, 0x8430af32}, - {0xefaba3, 0x8430af33}, - {0xefaba4, 0x8430af34}, - {0xefaba5, 0x8430af35}, - {0xefaba6, 0x8430af36}, - {0xefaba7, 0x8430af37}, - {0xefaba8, 0x8430af38}, - {0xefaba9, 0x8430af39}, - {0xefabaa, 0x8430b030}, - {0xefabab, 0x8430b031}, - {0xefabac, 0x8430b032}, - {0xefabad, 0x8430b033}, - {0xefabae, 0x8430b034}, - {0xefabaf, 0x8430b035}, - {0xefabb0, 0x8430b036}, - {0xefabb1, 0x8430b037}, - {0xefabb2, 0x8430b038}, - {0xefabb3, 0x8430b039}, - {0xefabb4, 0x8430b130}, - {0xefabb5, 0x8430b131}, - {0xefabb6, 0x8430b132}, - {0xefabb7, 0x8430b133}, - {0xefabb8, 0x8430b134}, - {0xefabb9, 0x8430b135}, - {0xefabba, 0x8430b136}, - {0xefabbb, 0x8430b137}, - {0xefabbc, 0x8430b138}, - {0xefabbd, 0x8430b139}, - {0xefabbe, 0x8430b230}, - {0xefabbf, 0x8430b231}, - {0xefac80, 0x8430b232}, - {0xefac81, 0x8430b233}, - {0xefac82, 0x8430b234}, - {0xefac83, 0x8430b235}, - {0xefac84, 0x8430b236}, - {0xefac85, 0x8430b237}, - {0xefac86, 0x8430b238}, - {0xefac87, 0x8430b239}, - {0xefac88, 0x8430b330}, - {0xefac89, 0x8430b331}, - {0xefac8a, 0x8430b332}, - {0xefac8b, 0x8430b333}, - {0xefac8c, 0x8430b334}, - {0xefac8d, 0x8430b335}, - {0xefac8e, 0x8430b336}, - {0xefac8f, 0x8430b337}, - {0xefac90, 0x8430b338}, - {0xefac91, 0x8430b339}, - {0xefac92, 0x8430b430}, - {0xefac93, 0x8430b431}, - {0xefac94, 0x8430b432}, - {0xefac95, 0x8430b433}, - {0xefac96, 0x8430b434}, - {0xefac97, 0x8430b435}, - {0xefac98, 0x8430b436}, - {0xefac99, 0x8430b437}, - {0xefac9a, 0x8430b438}, - {0xefac9b, 0x8430b439}, - {0xefac9c, 0x8430b530}, - {0xefac9d, 0x8430b531}, - {0xefac9e, 0x8430b532}, - {0xefac9f, 0x8430b533}, - {0xefaca0, 0x8430b534}, - {0xefaca1, 0x8430b535}, - {0xefaca2, 0x8430b536}, - {0xefaca3, 0x8430b537}, - {0xefaca4, 0x8430b538}, - {0xefaca5, 0x8430b539}, - {0xefaca6, 0x8430b630}, - {0xefaca7, 0x8430b631}, - {0xefaca8, 0x8430b632}, - {0xefaca9, 0x8430b633}, - {0xefacaa, 0x8430b634}, - {0xefacab, 0x8430b635}, - {0xefacac, 0x8430b636}, - {0xefacad, 0x8430b637}, - {0xefacae, 0x8430b638}, - {0xefacaf, 0x8430b639}, - {0xefacb0, 0x8430b730}, - {0xefacb1, 0x8430b731}, - {0xefacb2, 0x8430b732}, - {0xefacb3, 0x8430b733}, - {0xefacb4, 0x8430b734}, - {0xefacb5, 0x8430b735}, - {0xefacb6, 0x8430b736}, - {0xefacb7, 0x8430b737}, - {0xefacb8, 0x8430b738}, - {0xefacb9, 0x8430b739}, - {0xefacba, 0x8430b830}, - {0xefacbb, 0x8430b831}, - {0xefacbc, 0x8430b832}, - {0xefacbd, 0x8430b833}, - {0xefacbe, 0x8430b834}, - {0xefacbf, 0x8430b835}, - {0xefad80, 0x8430b836}, - {0xefad81, 0x8430b837}, - {0xefad82, 0x8430b838}, - {0xefad83, 0x8430b839}, - {0xefad84, 0x8430b930}, - {0xefad85, 0x8430b931}, - {0xefad86, 0x8430b932}, - {0xefad87, 0x8430b933}, - {0xefad88, 0x8430b934}, - {0xefad89, 0x8430b935}, - {0xefad8a, 0x8430b936}, - {0xefad8b, 0x8430b937}, - {0xefad8c, 0x8430b938}, - {0xefad8d, 0x8430b939}, - {0xefad8e, 0x8430ba30}, - {0xefad8f, 0x8430ba31}, - {0xefad90, 0x8430ba32}, - {0xefad91, 0x8430ba33}, - {0xefad92, 0x8430ba34}, - {0xefad93, 0x8430ba35}, - {0xefad94, 0x8430ba36}, - {0xefad95, 0x8430ba37}, - {0xefad96, 0x8430ba38}, - {0xefad97, 0x8430ba39}, - {0xefad98, 0x8430bb30}, - {0xefad99, 0x8430bb31}, - {0xefad9a, 0x8430bb32}, - {0xefad9b, 0x8430bb33}, - {0xefad9c, 0x8430bb34}, - {0xefad9d, 0x8430bb35}, - {0xefad9e, 0x8430bb36}, - {0xefad9f, 0x8430bb37}, - {0xefada0, 0x8430bb38}, - {0xefada1, 0x8430bb39}, - {0xefada2, 0x8430bc30}, - {0xefada3, 0x8430bc31}, - {0xefada4, 0x8430bc32}, - {0xefada5, 0x8430bc33}, - {0xefada6, 0x8430bc34}, - {0xefada7, 0x8430bc35}, - {0xefada8, 0x8430bc36}, - {0xefada9, 0x8430bc37}, - {0xefadaa, 0x8430bc38}, - {0xefadab, 0x8430bc39}, - {0xefadac, 0x8430bd30}, - {0xefadad, 0x8430bd31}, - {0xefadae, 0x8430bd32}, - {0xefadaf, 0x8430bd33}, - {0xefadb0, 0x8430bd34}, - {0xefadb1, 0x8430bd35}, - {0xefadb2, 0x8430bd36}, - {0xefadb3, 0x8430bd37}, - {0xefadb4, 0x8430bd38}, - {0xefadb5, 0x8430bd39}, - {0xefadb6, 0x8430be30}, - {0xefadb7, 0x8430be31}, - {0xefadb8, 0x8430be32}, - {0xefadb9, 0x8430be33}, - {0xefadba, 0x8430be34}, - {0xefadbb, 0x8430be35}, - {0xefadbc, 0x8430be36}, - {0xefadbd, 0x8430be37}, - {0xefadbe, 0x8430be38}, - {0xefadbf, 0x8430be39}, - {0xefae80, 0x8430bf30}, - {0xefae81, 0x8430bf31}, - {0xefae82, 0x8430bf32}, - {0xefae83, 0x8430bf33}, - {0xefae84, 0x8430bf34}, - {0xefae85, 0x8430bf35}, - {0xefae86, 0x8430bf36}, - {0xefae87, 0x8430bf37}, - {0xefae88, 0x8430bf38}, - {0xefae89, 0x8430bf39}, - {0xefae8a, 0x8430c030}, - {0xefae8b, 0x8430c031}, - {0xefae8c, 0x8430c032}, - {0xefae8d, 0x8430c033}, - {0xefae8e, 0x8430c034}, - {0xefae8f, 0x8430c035}, - {0xefae90, 0x8430c036}, - {0xefae91, 0x8430c037}, - {0xefae92, 0x8430c038}, - {0xefae93, 0x8430c039}, - {0xefae94, 0x8430c130}, - {0xefae95, 0x8430c131}, - {0xefae96, 0x8430c132}, - {0xefae97, 0x8430c133}, - {0xefae98, 0x8430c134}, - {0xefae99, 0x8430c135}, - {0xefae9a, 0x8430c136}, - {0xefae9b, 0x8430c137}, - {0xefae9c, 0x8430c138}, - {0xefae9d, 0x8430c139}, - {0xefae9e, 0x8430c230}, - {0xefae9f, 0x8430c231}, - {0xefaea0, 0x8430c232}, - {0xefaea1, 0x8430c233}, - {0xefaea2, 0x8430c234}, - {0xefaea3, 0x8430c235}, - {0xefaea4, 0x8430c236}, - {0xefaea5, 0x8430c237}, - {0xefaea6, 0x8430c238}, - {0xefaea7, 0x8430c239}, - {0xefaea8, 0x8430c330}, - {0xefaea9, 0x8430c331}, - {0xefaeaa, 0x8430c332}, - {0xefaeab, 0x8430c333}, - {0xefaeac, 0x8430c334}, - {0xefaead, 0x8430c335}, - {0xefaeae, 0x8430c336}, - {0xefaeaf, 0x8430c337}, - {0xefaeb0, 0x8430c338}, - {0xefaeb1, 0x8430c339}, - {0xefaeb2, 0x8430c430}, - {0xefaeb3, 0x8430c431}, - {0xefaeb4, 0x8430c432}, - {0xefaeb5, 0x8430c433}, - {0xefaeb6, 0x8430c434}, - {0xefaeb7, 0x8430c435}, - {0xefaeb8, 0x8430c436}, - {0xefaeb9, 0x8430c437}, - {0xefaeba, 0x8430c438}, - {0xefaebb, 0x8430c439}, - {0xefaebc, 0x8430c530}, - {0xefaebd, 0x8430c531}, - {0xefaebe, 0x8430c532}, - {0xefaebf, 0x8430c533}, - {0xefaf80, 0x8430c534}, - {0xefaf81, 0x8430c535}, - {0xefaf82, 0x8430c536}, - {0xefaf83, 0x8430c537}, - {0xefaf84, 0x8430c538}, - {0xefaf85, 0x8430c539}, - {0xefaf86, 0x8430c630}, - {0xefaf87, 0x8430c631}, - {0xefaf88, 0x8430c632}, - {0xefaf89, 0x8430c633}, - {0xefaf8a, 0x8430c634}, - {0xefaf8b, 0x8430c635}, - {0xefaf8c, 0x8430c636}, - {0xefaf8d, 0x8430c637}, - {0xefaf8e, 0x8430c638}, - {0xefaf8f, 0x8430c639}, - {0xefaf90, 0x8430c730}, - {0xefaf91, 0x8430c731}, - {0xefaf92, 0x8430c732}, - {0xefaf93, 0x8430c733}, - {0xefaf94, 0x8430c734}, - {0xefaf95, 0x8430c735}, - {0xefaf96, 0x8430c736}, - {0xefaf97, 0x8430c737}, - {0xefaf98, 0x8430c738}, - {0xefaf99, 0x8430c739}, - {0xefaf9a, 0x8430c830}, - {0xefaf9b, 0x8430c831}, - {0xefaf9c, 0x8430c832}, - {0xefaf9d, 0x8430c833}, - {0xefaf9e, 0x8430c834}, - {0xefaf9f, 0x8430c835}, - {0xefafa0, 0x8430c836}, - {0xefafa1, 0x8430c837}, - {0xefafa2, 0x8430c838}, - {0xefafa3, 0x8430c839}, - {0xefafa4, 0x8430c930}, - {0xefafa5, 0x8430c931}, - {0xefafa6, 0x8430c932}, - {0xefafa7, 0x8430c933}, - {0xefafa8, 0x8430c934}, - {0xefafa9, 0x8430c935}, - {0xefafaa, 0x8430c936}, - {0xefafab, 0x8430c937}, - {0xefafac, 0x8430c938}, - {0xefafad, 0x8430c939}, - {0xefafae, 0x8430ca30}, - {0xefafaf, 0x8430ca31}, - {0xefafb0, 0x8430ca32}, - {0xefafb1, 0x8430ca33}, - {0xefafb2, 0x8430ca34}, - {0xefafb3, 0x8430ca35}, - {0xefafb4, 0x8430ca36}, - {0xefafb5, 0x8430ca37}, - {0xefafb6, 0x8430ca38}, - {0xefafb7, 0x8430ca39}, - {0xefafb8, 0x8430cb30}, - {0xefafb9, 0x8430cb31}, - {0xefafba, 0x8430cb32}, - {0xefafbb, 0x8430cb33}, - {0xefafbc, 0x8430cb34}, - {0xefafbd, 0x8430cb35}, - {0xefafbe, 0x8430cb36}, - {0xefafbf, 0x8430cb37}, - {0xefb080, 0x8430cb38}, - {0xefb081, 0x8430cb39}, - {0xefb082, 0x8430cc30}, - {0xefb083, 0x8430cc31}, - {0xefb084, 0x8430cc32}, - {0xefb085, 0x8430cc33}, - {0xefb086, 0x8430cc34}, - {0xefb087, 0x8430cc35}, - {0xefb088, 0x8430cc36}, - {0xefb089, 0x8430cc37}, - {0xefb08a, 0x8430cc38}, - {0xefb08b, 0x8430cc39}, - {0xefb08c, 0x8430cd30}, - {0xefb08d, 0x8430cd31}, - {0xefb08e, 0x8430cd32}, - {0xefb08f, 0x8430cd33}, - {0xefb090, 0x8430cd34}, - {0xefb091, 0x8430cd35}, - {0xefb092, 0x8430cd36}, - {0xefb093, 0x8430cd37}, - {0xefb094, 0x8430cd38}, - {0xefb095, 0x8430cd39}, - {0xefb096, 0x8430ce30}, - {0xefb097, 0x8430ce31}, - {0xefb098, 0x8430ce32}, - {0xefb099, 0x8430ce33}, - {0xefb09a, 0x8430ce34}, - {0xefb09b, 0x8430ce35}, - {0xefb09c, 0x8430ce36}, - {0xefb09d, 0x8430ce37}, - {0xefb09e, 0x8430ce38}, - {0xefb09f, 0x8430ce39}, - {0xefb0a0, 0x8430cf30}, - {0xefb0a1, 0x8430cf31}, - {0xefb0a2, 0x8430cf32}, - {0xefb0a3, 0x8430cf33}, - {0xefb0a4, 0x8430cf34}, - {0xefb0a5, 0x8430cf35}, - {0xefb0a6, 0x8430cf36}, - {0xefb0a7, 0x8430cf37}, - {0xefb0a8, 0x8430cf38}, - {0xefb0a9, 0x8430cf39}, - {0xefb0aa, 0x8430d030}, - {0xefb0ab, 0x8430d031}, - {0xefb0ac, 0x8430d032}, - {0xefb0ad, 0x8430d033}, - {0xefb0ae, 0x8430d034}, - {0xefb0af, 0x8430d035}, - {0xefb0b0, 0x8430d036}, - {0xefb0b1, 0x8430d037}, - {0xefb0b2, 0x8430d038}, - {0xefb0b3, 0x8430d039}, - {0xefb0b4, 0x8430d130}, - {0xefb0b5, 0x8430d131}, - {0xefb0b6, 0x8430d132}, - {0xefb0b7, 0x8430d133}, - {0xefb0b8, 0x8430d134}, - {0xefb0b9, 0x8430d135}, - {0xefb0ba, 0x8430d136}, - {0xefb0bb, 0x8430d137}, - {0xefb0bc, 0x8430d138}, - {0xefb0bd, 0x8430d139}, - {0xefb0be, 0x8430d230}, - {0xefb0bf, 0x8430d231}, - {0xefb180, 0x8430d232}, - {0xefb181, 0x8430d233}, - {0xefb182, 0x8430d234}, - {0xefb183, 0x8430d235}, - {0xefb184, 0x8430d236}, - {0xefb185, 0x8430d237}, - {0xefb186, 0x8430d238}, - {0xefb187, 0x8430d239}, - {0xefb188, 0x8430d330}, - {0xefb189, 0x8430d331}, - {0xefb18a, 0x8430d332}, - {0xefb18b, 0x8430d333}, - {0xefb18c, 0x8430d334}, - {0xefb18d, 0x8430d335}, - {0xefb18e, 0x8430d336}, - {0xefb18f, 0x8430d337}, - {0xefb190, 0x8430d338}, - {0xefb191, 0x8430d339}, - {0xefb192, 0x8430d430}, - {0xefb193, 0x8430d431}, - {0xefb194, 0x8430d432}, - {0xefb195, 0x8430d433}, - {0xefb196, 0x8430d434}, - {0xefb197, 0x8430d435}, - {0xefb198, 0x8430d436}, - {0xefb199, 0x8430d437}, - {0xefb19a, 0x8430d438}, - {0xefb19b, 0x8430d439}, - {0xefb19c, 0x8430d530}, - {0xefb19d, 0x8430d531}, - {0xefb19e, 0x8430d532}, - {0xefb19f, 0x8430d533}, - {0xefb1a0, 0x8430d534}, - {0xefb1a1, 0x8430d535}, - {0xefb1a2, 0x8430d536}, - {0xefb1a3, 0x8430d537}, - {0xefb1a4, 0x8430d538}, - {0xefb1a5, 0x8430d539}, - {0xefb1a6, 0x8430d630}, - {0xefb1a7, 0x8430d631}, - {0xefb1a8, 0x8430d632}, - {0xefb1a9, 0x8430d633}, - {0xefb1aa, 0x8430d634}, - {0xefb1ab, 0x8430d635}, - {0xefb1ac, 0x8430d636}, - {0xefb1ad, 0x8430d637}, - {0xefb1ae, 0x8430d638}, - {0xefb1af, 0x8430d639}, - {0xefb1b0, 0x8430d730}, - {0xefb1b1, 0x8430d731}, - {0xefb1b2, 0x8430d732}, - {0xefb1b3, 0x8430d733}, - {0xefb1b4, 0x8430d734}, - {0xefb1b5, 0x8430d735}, - {0xefb1b6, 0x8430d736}, - {0xefb1b7, 0x8430d737}, - {0xefb1b8, 0x8430d738}, - {0xefb1b9, 0x8430d739}, - {0xefb1ba, 0x8430d830}, - {0xefb1bb, 0x8430d831}, - {0xefb1bc, 0x8430d832}, - {0xefb1bd, 0x8430d833}, - {0xefb1be, 0x8430d834}, - {0xefb1bf, 0x8430d835}, - {0xefb280, 0x8430d836}, - {0xefb281, 0x8430d837}, - {0xefb282, 0x8430d838}, - {0xefb283, 0x8430d839}, - {0xefb284, 0x8430d930}, - {0xefb285, 0x8430d931}, - {0xefb286, 0x8430d932}, - {0xefb287, 0x8430d933}, - {0xefb288, 0x8430d934}, - {0xefb289, 0x8430d935}, - {0xefb28a, 0x8430d936}, - {0xefb28b, 0x8430d937}, - {0xefb28c, 0x8430d938}, - {0xefb28d, 0x8430d939}, - {0xefb28e, 0x8430da30}, - {0xefb28f, 0x8430da31}, - {0xefb290, 0x8430da32}, - {0xefb291, 0x8430da33}, - {0xefb292, 0x8430da34}, - {0xefb293, 0x8430da35}, - {0xefb294, 0x8430da36}, - {0xefb295, 0x8430da37}, - {0xefb296, 0x8430da38}, - {0xefb297, 0x8430da39}, - {0xefb298, 0x8430db30}, - {0xefb299, 0x8430db31}, - {0xefb29a, 0x8430db32}, - {0xefb29b, 0x8430db33}, - {0xefb29c, 0x8430db34}, - {0xefb29d, 0x8430db35}, - {0xefb29e, 0x8430db36}, - {0xefb29f, 0x8430db37}, - {0xefb2a0, 0x8430db38}, - {0xefb2a1, 0x8430db39}, - {0xefb2a2, 0x8430dc30}, - {0xefb2a3, 0x8430dc31}, - {0xefb2a4, 0x8430dc32}, - {0xefb2a5, 0x8430dc33}, - {0xefb2a6, 0x8430dc34}, - {0xefb2a7, 0x8430dc35}, - {0xefb2a8, 0x8430dc36}, - {0xefb2a9, 0x8430dc37}, - {0xefb2aa, 0x8430dc38}, - {0xefb2ab, 0x8430dc39}, - {0xefb2ac, 0x8430dd30}, - {0xefb2ad, 0x8430dd31}, - {0xefb2ae, 0x8430dd32}, - {0xefb2af, 0x8430dd33}, - {0xefb2b0, 0x8430dd34}, - {0xefb2b1, 0x8430dd35}, - {0xefb2b2, 0x8430dd36}, - {0xefb2b3, 0x8430dd37}, - {0xefb2b4, 0x8430dd38}, - {0xefb2b5, 0x8430dd39}, - {0xefb2b6, 0x8430de30}, - {0xefb2b7, 0x8430de31}, - {0xefb2b8, 0x8430de32}, - {0xefb2b9, 0x8430de33}, - {0xefb2ba, 0x8430de34}, - {0xefb2bb, 0x8430de35}, - {0xefb2bc, 0x8430de36}, - {0xefb2bd, 0x8430de37}, - {0xefb2be, 0x8430de38}, - {0xefb2bf, 0x8430de39}, - {0xefb380, 0x8430df30}, - {0xefb381, 0x8430df31}, - {0xefb382, 0x8430df32}, - {0xefb383, 0x8430df33}, - {0xefb384, 0x8430df34}, - {0xefb385, 0x8430df35}, - {0xefb386, 0x8430df36}, - {0xefb387, 0x8430df37}, - {0xefb388, 0x8430df38}, - {0xefb389, 0x8430df39}, - {0xefb38a, 0x8430e030}, - {0xefb38b, 0x8430e031}, - {0xefb38c, 0x8430e032}, - {0xefb38d, 0x8430e033}, - {0xefb38e, 0x8430e034}, - {0xefb38f, 0x8430e035}, - {0xefb390, 0x8430e036}, - {0xefb391, 0x8430e037}, - {0xefb392, 0x8430e038}, - {0xefb393, 0x8430e039}, - {0xefb394, 0x8430e130}, - {0xefb395, 0x8430e131}, - {0xefb396, 0x8430e132}, - {0xefb397, 0x8430e133}, - {0xefb398, 0x8430e134}, - {0xefb399, 0x8430e135}, - {0xefb39a, 0x8430e136}, - {0xefb39b, 0x8430e137}, - {0xefb39c, 0x8430e138}, - {0xefb39d, 0x8430e139}, - {0xefb39e, 0x8430e230}, - {0xefb39f, 0x8430e231}, - {0xefb3a0, 0x8430e232}, - {0xefb3a1, 0x8430e233}, - {0xefb3a2, 0x8430e234}, - {0xefb3a3, 0x8430e235}, - {0xefb3a4, 0x8430e236}, - {0xefb3a5, 0x8430e237}, - {0xefb3a6, 0x8430e238}, - {0xefb3a7, 0x8430e239}, - {0xefb3a8, 0x8430e330}, - {0xefb3a9, 0x8430e331}, - {0xefb3aa, 0x8430e332}, - {0xefb3ab, 0x8430e333}, - {0xefb3ac, 0x8430e334}, - {0xefb3ad, 0x8430e335}, - {0xefb3ae, 0x8430e336}, - {0xefb3af, 0x8430e337}, - {0xefb3b0, 0x8430e338}, - {0xefb3b1, 0x8430e339}, - {0xefb3b2, 0x8430e430}, - {0xefb3b3, 0x8430e431}, - {0xefb3b4, 0x8430e432}, - {0xefb3b5, 0x8430e433}, - {0xefb3b6, 0x8430e434}, - {0xefb3b7, 0x8430e435}, - {0xefb3b8, 0x8430e436}, - {0xefb3b9, 0x8430e437}, - {0xefb3ba, 0x8430e438}, - {0xefb3bb, 0x8430e439}, - {0xefb3bc, 0x8430e530}, - {0xefb3bd, 0x8430e531}, - {0xefb3be, 0x8430e532}, - {0xefb3bf, 0x8430e533}, - {0xefb480, 0x8430e534}, - {0xefb481, 0x8430e535}, - {0xefb482, 0x8430e536}, - {0xefb483, 0x8430e537}, - {0xefb484, 0x8430e538}, - {0xefb485, 0x8430e539}, - {0xefb486, 0x8430e630}, - {0xefb487, 0x8430e631}, - {0xefb488, 0x8430e632}, - {0xefb489, 0x8430e633}, - {0xefb48a, 0x8430e634}, - {0xefb48b, 0x8430e635}, - {0xefb48c, 0x8430e636}, - {0xefb48d, 0x8430e637}, - {0xefb48e, 0x8430e638}, - {0xefb48f, 0x8430e639}, - {0xefb490, 0x8430e730}, - {0xefb491, 0x8430e731}, - {0xefb492, 0x8430e732}, - {0xefb493, 0x8430e733}, - {0xefb494, 0x8430e734}, - {0xefb495, 0x8430e735}, - {0xefb496, 0x8430e736}, - {0xefb497, 0x8430e737}, - {0xefb498, 0x8430e738}, - {0xefb499, 0x8430e739}, - {0xefb49a, 0x8430e830}, - {0xefb49b, 0x8430e831}, - {0xefb49c, 0x8430e832}, - {0xefb49d, 0x8430e833}, - {0xefb49e, 0x8430e834}, - {0xefb49f, 0x8430e835}, - {0xefb4a0, 0x8430e836}, - {0xefb4a1, 0x8430e837}, - {0xefb4a2, 0x8430e838}, - {0xefb4a3, 0x8430e839}, - {0xefb4a4, 0x8430e930}, - {0xefb4a5, 0x8430e931}, - {0xefb4a6, 0x8430e932}, - {0xefb4a7, 0x8430e933}, - {0xefb4a8, 0x8430e934}, - {0xefb4a9, 0x8430e935}, - {0xefb4aa, 0x8430e936}, - {0xefb4ab, 0x8430e937}, - {0xefb4ac, 0x8430e938}, - {0xefb4ad, 0x8430e939}, - {0xefb4ae, 0x8430ea30}, - {0xefb4af, 0x8430ea31}, - {0xefb4b0, 0x8430ea32}, - {0xefb4b1, 0x8430ea33}, - {0xefb4b2, 0x8430ea34}, - {0xefb4b3, 0x8430ea35}, - {0xefb4b4, 0x8430ea36}, - {0xefb4b5, 0x8430ea37}, - {0xefb4b6, 0x8430ea38}, - {0xefb4b7, 0x8430ea39}, - {0xefb4b8, 0x8430eb30}, - {0xefb4b9, 0x8430eb31}, - {0xefb4ba, 0x8430eb32}, - {0xefb4bb, 0x8430eb33}, - {0xefb4bc, 0x8430eb34}, - {0xefb4bd, 0x8430eb35}, - {0xefb4be, 0x8430eb36}, - {0xefb4bf, 0x8430eb37}, - {0xefb580, 0x8430eb38}, - {0xefb581, 0x8430eb39}, - {0xefb582, 0x8430ec30}, - {0xefb583, 0x8430ec31}, - {0xefb584, 0x8430ec32}, - {0xefb585, 0x8430ec33}, - {0xefb586, 0x8430ec34}, - {0xefb587, 0x8430ec35}, - {0xefb588, 0x8430ec36}, - {0xefb589, 0x8430ec37}, - {0xefb58a, 0x8430ec38}, - {0xefb58b, 0x8430ec39}, - {0xefb58c, 0x8430ed30}, - {0xefb58d, 0x8430ed31}, - {0xefb58e, 0x8430ed32}, - {0xefb58f, 0x8430ed33}, - {0xefb590, 0x8430ed34}, - {0xefb591, 0x8430ed35}, - {0xefb592, 0x8430ed36}, - {0xefb593, 0x8430ed37}, - {0xefb594, 0x8430ed38}, - {0xefb595, 0x8430ed39}, - {0xefb596, 0x8430ee30}, - {0xefb597, 0x8430ee31}, - {0xefb598, 0x8430ee32}, - {0xefb599, 0x8430ee33}, - {0xefb59a, 0x8430ee34}, - {0xefb59b, 0x8430ee35}, - {0xefb59c, 0x8430ee36}, - {0xefb59d, 0x8430ee37}, - {0xefb59e, 0x8430ee38}, - {0xefb59f, 0x8430ee39}, - {0xefb5a0, 0x8430ef30}, - {0xefb5a1, 0x8430ef31}, - {0xefb5a2, 0x8430ef32}, - {0xefb5a3, 0x8430ef33}, - {0xefb5a4, 0x8430ef34}, - {0xefb5a5, 0x8430ef35}, - {0xefb5a6, 0x8430ef36}, - {0xefb5a7, 0x8430ef37}, - {0xefb5a8, 0x8430ef38}, - {0xefb5a9, 0x8430ef39}, - {0xefb5aa, 0x8430f030}, - {0xefb5ab, 0x8430f031}, - {0xefb5ac, 0x8430f032}, - {0xefb5ad, 0x8430f033}, - {0xefb5ae, 0x8430f034}, - {0xefb5af, 0x8430f035}, - {0xefb5b0, 0x8430f036}, - {0xefb5b1, 0x8430f037}, - {0xefb5b2, 0x8430f038}, - {0xefb5b3, 0x8430f039}, - {0xefb5b4, 0x8430f130}, - {0xefb5b5, 0x8430f131}, - {0xefb5b6, 0x8430f132}, - {0xefb5b7, 0x8430f133}, - {0xefb5b8, 0x8430f134}, - {0xefb5b9, 0x8430f135}, - {0xefb5ba, 0x8430f136}, - {0xefb5bb, 0x8430f137}, - {0xefb5bc, 0x8430f138}, - {0xefb5bd, 0x8430f139}, - {0xefb5be, 0x8430f230}, - {0xefb5bf, 0x8430f231}, - {0xefb680, 0x8430f232}, - {0xefb681, 0x8430f233}, - {0xefb682, 0x8430f234}, - {0xefb683, 0x8430f235}, - {0xefb684, 0x8430f236}, - {0xefb685, 0x8430f237}, - {0xefb686, 0x8430f238}, - {0xefb687, 0x8430f239}, - {0xefb688, 0x8430f330}, - {0xefb689, 0x8430f331}, - {0xefb68a, 0x8430f332}, - {0xefb68b, 0x8430f333}, - {0xefb68c, 0x8430f334}, - {0xefb68d, 0x8430f335}, - {0xefb68e, 0x8430f336}, - {0xefb68f, 0x8430f337}, - {0xefb690, 0x8430f338}, - {0xefb691, 0x8430f339}, - {0xefb692, 0x8430f430}, - {0xefb693, 0x8430f431}, - {0xefb694, 0x8430f432}, - {0xefb695, 0x8430f433}, - {0xefb696, 0x8430f434}, - {0xefb697, 0x8430f435}, - {0xefb698, 0x8430f436}, - {0xefb699, 0x8430f437}, - {0xefb69a, 0x8430f438}, - {0xefb69b, 0x8430f439}, - {0xefb69c, 0x8430f530}, - {0xefb69d, 0x8430f531}, - {0xefb69e, 0x8430f532}, - {0xefb69f, 0x8430f533}, - {0xefb6a0, 0x8430f534}, - {0xefb6a1, 0x8430f535}, - {0xefb6a2, 0x8430f536}, - {0xefb6a3, 0x8430f537}, - {0xefb6a4, 0x8430f538}, - {0xefb6a5, 0x8430f539}, - {0xefb6a6, 0x8430f630}, - {0xefb6a7, 0x8430f631}, - {0xefb6a8, 0x8430f632}, - {0xefb6a9, 0x8430f633}, - {0xefb6aa, 0x8430f634}, - {0xefb6ab, 0x8430f635}, - {0xefb6ac, 0x8430f636}, - {0xefb6ad, 0x8430f637}, - {0xefb6ae, 0x8430f638}, - {0xefb6af, 0x8430f639}, - {0xefb6b0, 0x8430f730}, - {0xefb6b1, 0x8430f731}, - {0xefb6b2, 0x8430f732}, - {0xefb6b3, 0x8430f733}, - {0xefb6b4, 0x8430f734}, - {0xefb6b5, 0x8430f735}, - {0xefb6b6, 0x8430f736}, - {0xefb6b7, 0x8430f737}, - {0xefb6b8, 0x8430f738}, - {0xefb6b9, 0x8430f739}, - {0xefb6ba, 0x8430f830}, - {0xefb6bb, 0x8430f831}, - {0xefb6bc, 0x8430f832}, - {0xefb6bd, 0x8430f833}, - {0xefb6be, 0x8430f834}, - {0xefb6bf, 0x8430f835}, - {0xefb780, 0x8430f836}, - {0xefb781, 0x8430f837}, - {0xefb782, 0x8430f838}, - {0xefb783, 0x8430f839}, - {0xefb784, 0x8430f930}, - {0xefb785, 0x8430f931}, - {0xefb786, 0x8430f932}, - {0xefb787, 0x8430f933}, - {0xefb788, 0x8430f934}, - {0xefb789, 0x8430f935}, - {0xefb78a, 0x8430f936}, - {0xefb78b, 0x8430f937}, - {0xefb78c, 0x8430f938}, - {0xefb78d, 0x8430f939}, - {0xefb78e, 0x8430fa30}, - {0xefb78f, 0x8430fa31}, - {0xefb790, 0x8430fa32}, - {0xefb791, 0x8430fa33}, - {0xefb792, 0x8430fa34}, - {0xefb793, 0x8430fa35}, - {0xefb794, 0x8430fa36}, - {0xefb795, 0x8430fa37}, - {0xefb796, 0x8430fa38}, - {0xefb797, 0x8430fa39}, - {0xefb798, 0x8430fb30}, - {0xefb799, 0x8430fb31}, - {0xefb79a, 0x8430fb32}, - {0xefb79b, 0x8430fb33}, - {0xefb79c, 0x8430fb34}, - {0xefb79d, 0x8430fb35}, - {0xefb79e, 0x8430fb36}, - {0xefb79f, 0x8430fb37}, - {0xefb7a0, 0x8430fb38}, - {0xefb7a1, 0x8430fb39}, - {0xefb7a2, 0x8430fc30}, - {0xefb7a3, 0x8430fc31}, - {0xefb7a4, 0x8430fc32}, - {0xefb7a5, 0x8430fc33}, - {0xefb7a6, 0x8430fc34}, - {0xefb7a7, 0x8430fc35}, - {0xefb7a8, 0x8430fc36}, - {0xefb7a9, 0x8430fc37}, - {0xefb7aa, 0x8430fc38}, - {0xefb7ab, 0x8430fc39}, - {0xefb7ac, 0x8430fd30}, - {0xefb7ad, 0x8430fd31}, - {0xefb7ae, 0x8430fd32}, - {0xefb7af, 0x8430fd33}, - {0xefb7b0, 0x8430fd34}, - {0xefb7b1, 0x8430fd35}, - {0xefb7b2, 0x8430fd36}, - {0xefb7b3, 0x8430fd37}, - {0xefb7b4, 0x8430fd38}, - {0xefb7b5, 0x8430fd39}, - {0xefb7b6, 0x8430fe30}, - {0xefb7b7, 0x8430fe31}, - {0xefb7b8, 0x8430fe32}, - {0xefb7b9, 0x8430fe33}, - {0xefb7ba, 0x8430fe34}, - {0xefb7bb, 0x8430fe35}, - {0xefb7bc, 0x8430fe36}, - {0xefb7bd, 0x8430fe37}, - {0xefb7be, 0x8430fe38}, - {0xefb7bf, 0x8430fe39}, - {0xefb880, 0x84318130}, - {0xefb881, 0x84318131}, - {0xefb882, 0x84318132}, - {0xefb883, 0x84318133}, - {0xefb884, 0x84318134}, - {0xefb885, 0x84318135}, - {0xefb886, 0x84318136}, - {0xefb887, 0x84318137}, - {0xefb888, 0x84318138}, - {0xefb889, 0x84318139}, - {0xefb88a, 0x84318230}, - {0xefb88b, 0x84318231}, - {0xefb88c, 0x84318232}, - {0xefb88d, 0x84318233}, - {0xefb88e, 0x84318234}, - {0xefb88f, 0x84318235}, - {0xefb890, 0x84318236}, - {0xefb891, 0x84318237}, - {0xefb892, 0x84318238}, - {0xefb893, 0x84318239}, - {0xefb894, 0x84318330}, - {0xefb895, 0x84318331}, - {0xefb896, 0x84318332}, - {0xefb897, 0x84318333}, - {0xefb898, 0x84318334}, - {0xefb899, 0x84318335}, - {0xefb89a, 0x84318336}, - {0xefb89b, 0x84318337}, - {0xefb89c, 0x84318338}, - {0xefb89d, 0x84318339}, - {0xefb89e, 0x84318430}, - {0xefb89f, 0x84318431}, - {0xefb8a0, 0x84318432}, - {0xefb8a1, 0x84318433}, - {0xefb8a2, 0x84318434}, - {0xefb8a3, 0x84318435}, - {0xefb8a4, 0x84318436}, - {0xefb8a5, 0x84318437}, - {0xefb8a6, 0x84318438}, - {0xefb8a7, 0x84318439}, - {0xefb8a8, 0x84318530}, - {0xefb8a9, 0x84318531}, - {0xefb8aa, 0x84318532}, - {0xefb8ab, 0x84318533}, - {0xefb8ac, 0x84318534}, - {0xefb8ad, 0x84318535}, - {0xefb8ae, 0x84318536}, - {0xefb8af, 0x84318537}, {0xefb8b0, 0xa955}, {0xefb8b1, 0xa6f2}, {0xefb8b2, 0x84318538}, @@ -63332,31 +30731,5 @@ static pg_utf_to_local ULmapGB18030[ 63360 ] = { {0xefbfa2, 0xa956}, {0xefbfa3, 0xa3fe}, {0xefbfa4, 0xa957}, - {0xefbfa5, 0xa3a4}, - {0xefbfa6, 0x8431a234}, - {0xefbfa7, 0x8431a235}, - {0xefbfa8, 0x8431a236}, - {0xefbfa9, 0x8431a237}, - {0xefbfaa, 0x8431a238}, - {0xefbfab, 0x8431a239}, - {0xefbfac, 0x8431a330}, - {0xefbfad, 0x8431a331}, - {0xefbfae, 0x8431a332}, - {0xefbfaf, 0x8431a333}, - {0xefbfb0, 0x8431a334}, - {0xefbfb1, 0x8431a335}, - {0xefbfb2, 0x8431a336}, - {0xefbfb3, 0x8431a337}, - {0xefbfb4, 0x8431a338}, - {0xefbfb5, 0x8431a339}, - {0xefbfb6, 0x8431a430}, - {0xefbfb7, 0x8431a431}, - {0xefbfb8, 0x8431a432}, - {0xefbfb9, 0x8431a433}, - {0xefbfba, 0x8431a434}, - {0xefbfbb, 0x8431a435}, - {0xefbfbc, 0x8431a436}, - {0xefbfbd, 0x8431a437}, - {0xefbfbe, 0x8431a438}, - {0xefbfbf, 0x8431a439} + {0xefbfa5, 0xa3a4} }; diff --git a/src/common/backend/utils/mb/conv.cpp b/src/common/backend/utils/mb/conv.cpp index d11a8cfe9..c36ca8724 100644 --- a/src/common/backend/utils/mb/conv.cpp +++ b/src/common/backend/utils/mb/conv.cpp @@ -312,50 +312,60 @@ static int compare4(const void* p1, const void* p2) } /* - * convert 32bit wide character to mutibye stream pointed to by iso + * store 32bit character representation into multibyte stream */ -static unsigned char *set_iso_code(unsigned char* iso, uint32 code) +static inline unsigned char *store_coded_char(unsigned char* dest, uint32 code) { if (code & 0xff000000) { - *iso++ = code >> 24; + *dest++ = code >> 24; } if (code & 0x00ff0000) { - *iso++ = (code & 0x00ff0000) >> 16; + *dest++ = code >> 16; } if (code & 0x0000ff00) { - *iso++ = (code & 0x0000ff00) >> 8; + *dest++ = code >> 8; } if (code & 0x000000ff) { - *iso++ = code & 0x000000ff; + *dest++ = code; } - return iso; + return dest; } /* * UTF8 ---> local code * - * utf: input UTF8 string (need not be null-terminated). + * utf: input string in UTF8 encoding (need not be null-terminated) + * len: length of input string (in bytes) * iso: pointer to the output area (must be large enough!) - * map: the conversion map. - * cmap: the conversion map for combined characters. - * (optional) - * size1: the size of the conversion map. - * size2: the size of the conversion map for combined characters - * (optional) - * encoding: the PG identifier for the local encoding. - * len: length of input string. + * (output string will be null-terminated) + * map: conversion map for single characters + * mapsize: number of entries in the conversion map + * cmap: conversion map for combined characters + * (optional, pass NULL if none) + * cmapsize: number of entries in the conversion map for combined characters + * (optional, pass 0 if none) + * convfunc: algorithmic encoding conversion function + * (optional, pass NULL if none) + * encoding: PG identifier for the local encoding + * + * For each character, the cmap (if provided) is consulted first; if no match, + * the map is consulted next; if still no match, the convfunc (if provided) + * is applied. An error is raised if no match is found. + * + * See pg_wchar.h for more details about the data structures used here. */ -void UtfToLocal(const unsigned char* utf, unsigned char* iso, const pg_utf_to_local* map, - const pg_utf_to_local_combined* cmap, int size1, int size2, int encoding, int len) +void UtfToLocal(const unsigned char *utf, int len, unsigned char *iso, const pg_utf_to_local *map, int mapsize, + const pg_utf_to_local_combined *cmap, int cmapsize, utf_local_conversion_func convfunc, int encoding) { uint32 iutf; - uint32 cutf[2]; - uint32 code = 0; - pg_utf_to_local* p = NULL; - pg_utf_to_local_combined* cp = NULL; int l; + const pg_utf_to_local *p = NULL; + const pg_utf_to_local_combined *cp = NULL; bool bulkload_illegal_chars_conversion = false; + if (!PG_VALID_ENCODING(encoding)) { + ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("invalid encoding number: %d", encoding))); + } if (u_sess->cmd_cxt.bulkload_compatible_illegal_chars) { bulkload_illegal_chars_conversion = true; } @@ -395,7 +405,9 @@ void UtfToLocal(const unsigned char* utf, unsigned char* iso, const pg_utf_to_lo /* ASCII case is easy */ *iso++ = *utf++; continue; - } else if (l == 2) { + } + /* collect coded char of length l */ + if (l == 2) { iutf = *utf++ << 8; iutf |= *utf++; } else if (l == 3) { @@ -417,6 +429,7 @@ void UtfToLocal(const unsigned char* utf, unsigned char* iso, const pg_utf_to_lo int len_save = len; int l_save = l; + /* collect next character, same as above */ len -= l; l = pg_utf_mblen(utf); @@ -433,100 +446,64 @@ void UtfToLocal(const unsigned char* utf, unsigned char* iso, const pg_utf_to_lo break; } } + /* We assume ASCII character cannot be in combined map */ + if (l > 1) { + uint32 iutf2 = 0; + uint32 cutf[2]; - cutf[0] = iutf; - - if (l == 1) { - if (len_save > 1) { - p = (pg_utf_to_local*)bsearch(&cutf[0], map, size1, sizeof(pg_utf_to_local), compare1); - if (p == NULL) { - if (bulkload_illegal_chars_conversion) { - /* - * use '?' as conversion. - */ - *iso++ = '?'; - } else { - report_untranslatable_char(PG_UTF8, encoding, (const char*)(utf_save - l_save), len_save); - } - } else { - iso = set_iso_code(iso, p->code); - } + if (l == 2) { + iutf2 = *utf++ << 8; + iutf2 |= *utf++; + } else if (l == 3) { + iutf2 = *utf++ << 16; + iutf2 |= *utf++ << 8; + iutf2 |= *utf++; + } else if (l == 4) { + iutf2 = *utf++ << 24; + iutf2 |= *utf++ << 16; + iutf2 |= *utf++ << 8; + iutf2 |= *utf++; } - - /* ASCII case is easy */ - *iso++ = *utf++; - continue; - } else if (l == 2) { - iutf = *utf++ << 8; - iutf |= *utf++; - } else if (l == 3) { - iutf = *utf++ << 16; - iutf |= *utf++ << 8; - iutf |= *utf++; - } else if (l == 4) { - iutf = *utf++ << 24; - iutf |= *utf++ << 16; - iutf |= *utf++ << 8; - iutf |= *utf++; - } - - cutf[1] = iutf; - cp = (pg_utf_to_local_combined*)bsearch(cutf, cmap, size2, sizeof(pg_utf_to_local_combined), compare3); - if (cp != NULL) { - code = cp->code; - } else { - /* not found in combined map. try with ordinary map */ - p = (pg_utf_to_local*)bsearch(&cutf[0], map, size1, sizeof(pg_utf_to_local), compare1); - if (p == NULL) { - if (bulkload_illegal_chars_conversion) { - /* - * the first map is converted to '?', and continue the next map. - */ - *iso++ = '?'; - } else { - report_untranslatable_char(PG_UTF8, encoding, (const char*)(utf_save - l_save), len_save); - } - } else { - iso = set_iso_code(iso, p->code); - } - - p = (pg_utf_to_local*)bsearch(&cutf[1], map, size1, sizeof(pg_utf_to_local), compare1); - if (p == NULL) { - if (bulkload_illegal_chars_conversion) { - /* - * the second map is converted to '?', all ordinary map check is done. - */ - *iso++ = '?'; - continue; - } else { - report_untranslatable_char(PG_UTF8, encoding, (const char*)(utf - l), len); - } - } else { - code = p->code; - /* FALL THRU */ - } - } - } else { - /* no cmap or no remaining data */ - p = (pg_utf_to_local*)bsearch(&iutf, map, size1, sizeof(pg_utf_to_local), compare1); - if (p == NULL) { - if (bulkload_illegal_chars_conversion) { - /* - * use '?' as conversion. - */ - *iso++ = '?'; + cutf[0] = iutf; + cutf[1] = iutf2; + cp = (pg_utf_to_local_combined *)bsearch(cutf, + cmap, cmapsize, sizeof(pg_utf_to_local_combined), compare3); + if (cp != NULL) { + iso = store_coded_char(iso, cp->code); continue; - } else { - report_untranslatable_char(PG_UTF8, encoding, (const char*)(utf - l), len); } - } else { - code = p->code; - /* FALL THRU */ + } + /* fail, so back up to reprocess second character next time */ + utf = utf_save; + len = len_save; + l = l_save; + } + /* Now check ordinary map */ + p = (pg_utf_to_local *)bsearch(&iutf, map, mapsize, sizeof(pg_utf_to_local), compare1); + if (p != NULL) { + iso = store_coded_char(iso, p->code); + continue; + } + /* if there's a conversion function, try that */ + if (convfunc != NULL) { + uint32 converted = (*convfunc)(iutf); + if (converted) { + iso = store_coded_char(iso, converted); + continue; } } - iso = set_iso_code(iso, code); + /* failed to translate this character */ + if (bulkload_illegal_chars_conversion) { + /* + * use '?' as conversion. + */ + *iso++ = '?'; + } else { + report_untranslatable_char(PG_UTF8, encoding, (const char *) (utf - l), len); + } } + /* if we broke out of loop early, must be invalid input */ if (len > 0) { report_invalid_encoding(PG_UTF8, (const char*)utf, len); } @@ -537,23 +514,31 @@ void UtfToLocal(const unsigned char* utf, unsigned char* iso, const pg_utf_to_lo * local code ---> UTF8 * * iso: input local string (need not be null-terminated). + * len: length of input string (in bytes) * utf: pointer to the output area (must be large enough!) * map: the conversion map. * cmap: the conversion map for combined characters. - * (optional) - * size1: the size of the conversion map. - * size2: the size of the conversion map for combined characters - * (optional) + * (optional) + * mapsize: the size of the conversion map. + * cmapsize: number of entries in the conversion map for combined characters + * (optional, pass 0 if none) + * convfunc: algorithmic encoding conversion function + * (optional, pass NULL if none) * encoding: the PG identifier for the local encoding. - * len: length of input string. + * + * For each character, the map is consulted first; if no match, the cmap + * (if provided) is consulted next; if still no match, the convfunc + * (if provided) is applied. An error is raised if no match is found. + * + * See pg_wchar.h for more details about the data structures used here. */ -void LocalToUtf(const unsigned char* iso, unsigned char* utf, const pg_local_to_utf* map, - const pg_local_to_utf_combined* cmap, int size1, int size2, int encoding, int len) +void LocalToUtf(const unsigned char *iso, int len, unsigned char *utf, const pg_local_to_utf *map, int mapsize, + const pg_local_to_utf_combined *cmap, int cmapsize, utf_local_conversion_func convfunc, int encoding) { - unsigned int iiso; + uint32 iiso = 0; int l; - pg_local_to_utf* p = NULL; - pg_local_to_utf_combined* cp = NULL; + const pg_local_to_utf *p = NULL; + const pg_local_to_utf_combined *cp = NULL; bool bulkload_illegal_chars_conversion = false; if (u_sess->cmd_cxt.bulkload_compatible_illegal_chars) { @@ -580,7 +565,7 @@ void LocalToUtf(const unsigned char* iso, unsigned char* utf, const pg_local_to_ } if (!IS_HIGHBIT_SET(*iso)) { - /* ASCII case is easy */ + /* ASCII case is easy, assume it's one-to-one conversion */ *utf++ = *iso++; l = 1; continue; @@ -600,7 +585,7 @@ void LocalToUtf(const unsigned char* iso, unsigned char* utf, const pg_local_to_ break; } } - + /* collect coded char of length l */ if (l == 1) { iiso = *iso++; } else if (l == 2) { @@ -617,58 +602,43 @@ void LocalToUtf(const unsigned char* iso, unsigned char* utf, const pg_local_to_ iiso |= *iso++; } - p = (pg_local_to_utf*)bsearch(&iiso, map, size1, sizeof(pg_local_to_utf), compare2); - if (p == NULL) { - /* - * not found in the ordinary map. if there's a combined character - * map, try with it - */ - if (cmap != NULL) { - cp = (pg_local_to_utf_combined*)bsearch(&iiso, cmap, size2, sizeof(pg_local_to_utf_combined), compare4); - if (cp != NULL) { - if (cp->utf1 & 0xff000000) - *utf++ = cp->utf1 >> 24; - if (cp->utf1 & 0x00ff0000) - *utf++ = (cp->utf1 & 0x00ff0000) >> 16; - if (cp->utf1 & 0x0000ff00) - *utf++ = (cp->utf1 & 0x0000ff00) >> 8; - if (cp->utf1 & 0x000000ff) - *utf++ = cp->utf1 & 0x000000ff; - - if (cp->utf2 & 0xff000000) - *utf++ = cp->utf2 >> 24; - if (cp->utf2 & 0x00ff0000) - *utf++ = (cp->utf2 & 0x00ff0000) >> 16; - if (cp->utf2 & 0x0000ff00) - *utf++ = (cp->utf2 & 0x0000ff00) >> 8; - if (cp->utf2 & 0x000000ff) - *utf++ = cp->utf2 & 0x000000ff; - - continue; - } - } - - if (!bulkload_illegal_chars_conversion) { - report_untranslatable_char(encoding, PG_UTF8, (const char*)(iso - l), len); - } - - // replace untranslatable char with '?' - if (u_sess->attr.attr_common.omit_encoding_error || bulkload_illegal_chars_conversion) { - *utf++ = '?'; + p = (pg_local_to_utf*)bsearch(&iiso, map, mapsize, sizeof(pg_local_to_utf), compare2); + if (p != NULL) { + utf = store_coded_char(utf, p->utf); + continue; + } + /* If there's a combined character map, try that */ + if (cmap != NULL) { + cp = (pg_local_to_utf_combined *)bsearch(&iiso, cmap, cmapsize, sizeof(pg_local_to_utf_combined), compare4); + if (cp != NULL) { + utf = store_coded_char(utf, cp->utf1); + utf = store_coded_char(utf, cp->utf2); continue; } - } else { - if (p->utf & 0xff000000) - *utf++ = p->utf >> 24; - if (p->utf & 0x00ff0000) - *utf++ = (p->utf & 0x00ff0000) >> 16; - if (p->utf & 0x0000ff00) - *utf++ = (p->utf & 0x0000ff00) >> 8; - if (p->utf & 0x000000ff) - *utf++ = p->utf & 0x000000ff; + } + + /* if there's a conversion function, try that */ + if (convfunc != NULL) { + uint32 converted = (*convfunc)(iiso); + if (converted) { + utf = store_coded_char(utf, converted); + continue; + } + } + + /* failed to translate this character */ + if (!bulkload_illegal_chars_conversion) { + report_untranslatable_char(encoding, PG_UTF8, (const char *) (iso - l), len); + } + + /* replace untranslatable char with '?' */ + if (u_sess->attr.attr_common.omit_encoding_error || bulkload_illegal_chars_conversion) { + *utf++ = '?'; + continue; } } + /* if we broke out of loop early, must be invalid input */ if (len > 0) { report_invalid_encoding(encoding, (const char*)iso, len); } diff --git a/src/common/backend/utils/mb/conversion_procs/utf8_and_big5/utf8_and_big5.cpp b/src/common/backend/utils/mb/conversion_procs/utf8_and_big5/utf8_and_big5.cpp index 80ee1189f..b015c9b0e 100644 --- a/src/common/backend/utils/mb/conversion_procs/utf8_and_big5/utf8_and_big5.cpp +++ b/src/common/backend/utils/mb/conversion_procs/utf8_and_big5/utf8_and_big5.cpp @@ -44,7 +44,7 @@ Datum big5_to_utf8(PG_FUNCTION_ARGS) CHECK_ENCODING_CONVERSION_ARGS(PG_BIG5, PG_UTF8); - LocalToUtf(src, dest, LUmapBIG5, NULL, sizeof(LUmapBIG5) / sizeof(pg_local_to_utf), 0, PG_BIG5, len); + LocalToUtf(src, len, dest, LUmapBIG5, lengthof(LUmapBIG5), NULL, 0, NULL, PG_BIG5); PG_RETURN_VOID(); } @@ -57,7 +57,7 @@ Datum utf8_to_big5(PG_FUNCTION_ARGS) CHECK_ENCODING_CONVERSION_ARGS(PG_UTF8, PG_BIG5); - UtfToLocal(src, dest, ULmapBIG5, NULL, sizeof(ULmapBIG5) / sizeof(pg_utf_to_local), 0, PG_BIG5, len); + UtfToLocal(src, len, dest, ULmapBIG5, lengthof(ULmapBIG5), NULL, 0, NULL, PG_BIG5); PG_RETURN_VOID(); } diff --git a/src/common/backend/utils/mb/conversion_procs/utf8_and_cyrillic/utf8_and_cyrillic.cpp b/src/common/backend/utils/mb/conversion_procs/utf8_and_cyrillic/utf8_and_cyrillic.cpp index 4db1d912d..a3da5f193 100644 --- a/src/common/backend/utils/mb/conversion_procs/utf8_and_cyrillic/utf8_and_cyrillic.cpp +++ b/src/common/backend/utils/mb/conversion_procs/utf8_and_cyrillic/utf8_and_cyrillic.cpp @@ -52,7 +52,7 @@ Datum utf8_to_koi8r(PG_FUNCTION_ARGS) CHECK_ENCODING_CONVERSION_ARGS(PG_UTF8, PG_KOI8R); - UtfToLocal(src, dest, ULmapKOI8R, NULL, sizeof(ULmapKOI8R) / sizeof(pg_utf_to_local), 0, PG_KOI8R, len); + UtfToLocal(src, len, dest, ULmapKOI8R, lengthof(ULmapKOI8R), NULL, 0, NULL, PG_KOI8R); PG_RETURN_VOID(); } @@ -65,7 +65,7 @@ Datum koi8r_to_utf8(PG_FUNCTION_ARGS) CHECK_ENCODING_CONVERSION_ARGS(PG_KOI8R, PG_UTF8); - LocalToUtf(src, dest, LUmapKOI8R, NULL, sizeof(LUmapKOI8R) / sizeof(pg_local_to_utf), 0, PG_KOI8R, len); + LocalToUtf(src, len, dest, LUmapKOI8R, lengthof(LUmapKOI8R), NULL, 0, NULL, PG_KOI8R); PG_RETURN_VOID(); } @@ -78,7 +78,7 @@ Datum utf8_to_koi8u(PG_FUNCTION_ARGS) CHECK_ENCODING_CONVERSION_ARGS(PG_UTF8, PG_KOI8U); - UtfToLocal(src, dest, ULmapKOI8U, NULL, sizeof(ULmapKOI8U) / sizeof(pg_utf_to_local), 0, PG_KOI8U, len); + UtfToLocal(src, len, dest, ULmapKOI8U, lengthof(ULmapKOI8U), NULL, 0, NULL, PG_KOI8U); PG_RETURN_VOID(); } @@ -91,7 +91,7 @@ Datum koi8u_to_utf8(PG_FUNCTION_ARGS) CHECK_ENCODING_CONVERSION_ARGS(PG_KOI8U, PG_UTF8); - LocalToUtf(src, dest, LUmapKOI8U, NULL, sizeof(LUmapKOI8U) / sizeof(pg_local_to_utf), 0, PG_KOI8U, len); + LocalToUtf(src, len, dest, LUmapKOI8U, lengthof(LUmapKOI8U), NULL, 0, NULL, PG_KOI8U); PG_RETURN_VOID(); } diff --git a/src/common/backend/utils/mb/conversion_procs/utf8_and_euc2004/utf8_and_euc2004.cpp b/src/common/backend/utils/mb/conversion_procs/utf8_and_euc2004/utf8_and_euc2004.cpp index 51d37adcc..b838115f0 100644 --- a/src/common/backend/utils/mb/conversion_procs/utf8_and_euc2004/utf8_and_euc2004.cpp +++ b/src/common/backend/utils/mb/conversion_procs/utf8_and_euc2004/utf8_and_euc2004.cpp @@ -47,13 +47,14 @@ Datum euc_jis_2004_to_utf8(PG_FUNCTION_ARGS) CHECK_ENCODING_CONVERSION_ARGS(PG_EUC_JIS_2004, PG_UTF8); LocalToUtf(src, + len, dest, LUmapEUC_JIS_2004, + lengthof(LUmapEUC_JIS_2004), LUmapEUC_JIS_2004_combined, - sizeof(LUmapEUC_JIS_2004) / sizeof(pg_local_to_utf), - sizeof(LUmapEUC_JIS_2004_combined) / sizeof(pg_local_to_utf_combined), - PG_EUC_JIS_2004, - len); + lengthof(LUmapEUC_JIS_2004_combined), + NULL, + PG_EUC_JIS_2004); PG_RETURN_VOID(); } @@ -67,13 +68,14 @@ Datum utf8_to_euc_jis_2004(PG_FUNCTION_ARGS) CHECK_ENCODING_CONVERSION_ARGS(PG_UTF8, PG_EUC_JIS_2004); UtfToLocal(src, + len, dest, ULmapEUC_JIS_2004, + lengthof(ULmapEUC_JIS_2004), ULmapEUC_JIS_2004_combined, - sizeof(ULmapEUC_JIS_2004) / sizeof(pg_utf_to_local), - sizeof(ULmapEUC_JIS_2004_combined) / sizeof(pg_utf_to_local_combined), - PG_EUC_JIS_2004, - len); + lengthof(ULmapEUC_JIS_2004_combined), + NULL, + PG_EUC_JIS_2004); PG_RETURN_VOID(); } diff --git a/src/common/backend/utils/mb/conversion_procs/utf8_and_euc_cn/utf8_and_euc_cn.cpp b/src/common/backend/utils/mb/conversion_procs/utf8_and_euc_cn/utf8_and_euc_cn.cpp index 53df669a7..0c51cc23d 100644 --- a/src/common/backend/utils/mb/conversion_procs/utf8_and_euc_cn/utf8_and_euc_cn.cpp +++ b/src/common/backend/utils/mb/conversion_procs/utf8_and_euc_cn/utf8_and_euc_cn.cpp @@ -44,7 +44,7 @@ Datum euc_cn_to_utf8(PG_FUNCTION_ARGS) CHECK_ENCODING_CONVERSION_ARGS(PG_EUC_CN, PG_UTF8); - LocalToUtf(src, dest, LUmapEUC_CN, NULL, sizeof(LUmapEUC_CN) / sizeof(pg_local_to_utf), 0, PG_EUC_CN, len); + LocalToUtf(src, len, dest, LUmapEUC_CN, lengthof(LUmapEUC_CN), NULL, 0, NULL, PG_EUC_CN); PG_RETURN_VOID(); } @@ -57,7 +57,7 @@ Datum utf8_to_euc_cn(PG_FUNCTION_ARGS) CHECK_ENCODING_CONVERSION_ARGS(PG_UTF8, PG_EUC_CN); - UtfToLocal(src, dest, ULmapEUC_CN, NULL, sizeof(ULmapEUC_CN) / sizeof(pg_utf_to_local), 0, PG_EUC_CN, len); + UtfToLocal(src, len, dest, ULmapEUC_CN, lengthof(ULmapEUC_CN), NULL, 0, NULL, PG_EUC_CN); PG_RETURN_VOID(); } diff --git a/src/common/backend/utils/mb/conversion_procs/utf8_and_euc_jp/utf8_and_euc_jp.cpp b/src/common/backend/utils/mb/conversion_procs/utf8_and_euc_jp/utf8_and_euc_jp.cpp index ba8584969..726147e30 100644 --- a/src/common/backend/utils/mb/conversion_procs/utf8_and_euc_jp/utf8_and_euc_jp.cpp +++ b/src/common/backend/utils/mb/conversion_procs/utf8_and_euc_jp/utf8_and_euc_jp.cpp @@ -44,7 +44,7 @@ Datum euc_jp_to_utf8(PG_FUNCTION_ARGS) CHECK_ENCODING_CONVERSION_ARGS(PG_EUC_JP, PG_UTF8); - LocalToUtf(src, dest, LUmapEUC_JP, NULL, sizeof(LUmapEUC_JP) / sizeof(pg_local_to_utf), 0, PG_EUC_JP, len); + LocalToUtf(src, len, dest, LUmapEUC_JP, lengthof(LUmapEUC_JP), NULL, 0, NULL, PG_EUC_JP); PG_RETURN_VOID(); } @@ -57,7 +57,7 @@ Datum utf8_to_euc_jp(PG_FUNCTION_ARGS) CHECK_ENCODING_CONVERSION_ARGS(PG_UTF8, PG_EUC_JP); - UtfToLocal(src, dest, ULmapEUC_JP, NULL, sizeof(ULmapEUC_JP) / sizeof(pg_utf_to_local), 0, PG_EUC_JP, len); + UtfToLocal(src, len, dest, ULmapEUC_JP, lengthof(ULmapEUC_JP), NULL, 0, NULL, PG_EUC_JP); PG_RETURN_VOID(); } diff --git a/src/common/backend/utils/mb/conversion_procs/utf8_and_euc_kr/utf8_and_euc_kr.cpp b/src/common/backend/utils/mb/conversion_procs/utf8_and_euc_kr/utf8_and_euc_kr.cpp index 36eb7add6..a8c6e0d8a 100644 --- a/src/common/backend/utils/mb/conversion_procs/utf8_and_euc_kr/utf8_and_euc_kr.cpp +++ b/src/common/backend/utils/mb/conversion_procs/utf8_and_euc_kr/utf8_and_euc_kr.cpp @@ -42,7 +42,7 @@ Datum euc_kr_to_utf8(PG_FUNCTION_ARGS) unsigned char* dest = (unsigned char*)PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); CHECK_ENCODING_CONVERSION_ARGS(PG_EUC_KR, PG_UTF8); - LocalToUtf(src, dest, LUmapEUC_KR, NULL, sizeof(LUmapEUC_KR) / sizeof(pg_local_to_utf), 0, PG_EUC_KR, len); + LocalToUtf(src, len, dest, LUmapEUC_KR, lengthof(LUmapEUC_KR), NULL, 0, NULL, PG_EUC_KR); PG_RETURN_VOID(); } @@ -52,6 +52,6 @@ Datum utf8_to_euc_kr(PG_FUNCTION_ARGS) unsigned char* dest = (unsigned char*)PG_GETARG_CSTRING(3); int len = PG_GETARG_INT32(4); CHECK_ENCODING_CONVERSION_ARGS(PG_UTF8, PG_EUC_KR); - UtfToLocal(src, dest, ULmapEUC_KR, NULL, sizeof(ULmapEUC_KR) / sizeof(pg_utf_to_local), 0, PG_EUC_KR, len); + UtfToLocal(src, len, dest, ULmapEUC_KR, lengthof(ULmapEUC_KR), NULL, 0, NULL, PG_EUC_KR); PG_RETURN_VOID(); } diff --git a/src/common/backend/utils/mb/conversion_procs/utf8_and_euc_tw/utf8_and_euc_tw.cpp b/src/common/backend/utils/mb/conversion_procs/utf8_and_euc_tw/utf8_and_euc_tw.cpp index 02a225ccb..f454305da 100644 --- a/src/common/backend/utils/mb/conversion_procs/utf8_and_euc_tw/utf8_and_euc_tw.cpp +++ b/src/common/backend/utils/mb/conversion_procs/utf8_and_euc_tw/utf8_and_euc_tw.cpp @@ -44,7 +44,7 @@ Datum euc_tw_to_utf8(PG_FUNCTION_ARGS) CHECK_ENCODING_CONVERSION_ARGS(PG_EUC_TW, PG_UTF8); - LocalToUtf(src, dest, LUmapEUC_TW, NULL, sizeof(LUmapEUC_TW) / sizeof(pg_local_to_utf), 0, PG_EUC_TW, len); + LocalToUtf(src, len, dest, LUmapEUC_TW, lengthof(LUmapEUC_TW), NULL, 0, NULL, PG_EUC_TW); PG_RETURN_VOID(); } @@ -57,7 +57,7 @@ Datum utf8_to_euc_tw(PG_FUNCTION_ARGS) CHECK_ENCODING_CONVERSION_ARGS(PG_UTF8, PG_EUC_TW); - UtfToLocal(src, dest, ULmapEUC_TW, NULL, sizeof(ULmapEUC_TW) / sizeof(pg_utf_to_local), 0, PG_EUC_TW, len); + UtfToLocal(src, len, dest, ULmapEUC_TW, lengthof(ULmapEUC_TW), NULL, 0, NULL, PG_EUC_TW); PG_RETURN_VOID(); } diff --git a/src/common/backend/utils/mb/conversion_procs/utf8_and_gb18030/utf8_and_gb18030.cpp b/src/common/backend/utils/mb/conversion_procs/utf8_and_gb18030/utf8_and_gb18030.cpp index e6040ec87..52277e6c9 100644 --- a/src/common/backend/utils/mb/conversion_procs/utf8_and_gb18030/utf8_and_gb18030.cpp +++ b/src/common/backend/utils/mb/conversion_procs/utf8_and_gb18030/utf8_and_gb18030.cpp @@ -26,6 +26,140 @@ PG_FUNCTION_INFO_V1(utf8_to_gb18030); extern "C" Datum gb18030_to_utf8(PG_FUNCTION_ARGS); extern "C" Datum utf8_to_gb18030(PG_FUNCTION_ARGS); +/* + * Convert 4-byte GB18030 characters to and from a linear code space + * + * The first and third bytes can range from 0x81 to 0xfe (126 values), + * while the second and fourth bytes can range from 0x30 to 0x39 (10 values). + */ +static inline uint32 gb_linear(uint32 gb) +{ + uint32 b0 = (gb & 0xff000000) >> 24; /* move 3 bytes to right */ + uint32 b1 = (gb & 0x00ff0000) >> 16; /* move 2 bytes to right */ + uint32 b2 = (gb & 0x0000ff00) >> 8; /* move 1 byte to right */ + uint32 b3 = (gb & 0x000000ff); + + return b0 * 12600 + b1 * 1260 + b2 * 10 + b3 - (0x81 * 12600 + 0x30 * 1260 + 0x81 * 10 + 0x30); +} + +static inline uint32 gb_unlinear(uint32 lin) +{ + uint32 r0 = 0x81 + lin / 12600; + uint32 r1 = 0x30 + (lin / 1260) % 10; + uint32 r2 = 0x81 + (lin / 10) % 126; + uint32 r3 = 0x30 + lin % 10; + + return (r0 << 24) | (r1 << 16) | (r2 << 8) | r3; +} + +/* + * Convert word-formatted UTF8 to and from Unicode code points + * + * Probably this should be somewhere else ... + */ +static inline uint32 unicode_to_utf8word(uint32 c) +{ + uint32 word; + + if (c <= 0x7F) { + word = c; + } else if (c <= 0x7FF) { + word = (0xC0 | ((c >> 6) & 0x1F)) << 8; + word |= 0x80 | (c & 0x3F); + } else if (c <= 0xFFFF) { + word = (0xE0 | ((c >> 12) & 0x0F)) << 16; + word |= (0x80 | ((c >> 6) & 0x3F)) << 8; + word |= 0x80 | (c & 0x3F); + } else { + word = (0xF0 | ((c >> 18) & 0x07)) << 24; + word |= (0x80 | ((c >> 12) & 0x3F)) << 16; + word |= (0x80 | ((c >> 6) & 0x3F)) << 8; + word |= 0x80 | (c & 0x3F); + } + + return word; +} + +static inline uint32 utf8word_to_unicode(uint32 c) +{ + uint32 ucs; + + if (c <= 0x7F) { + ucs = c; + } else if (c <= 0xFFFF) { + ucs = ((c >> 8) & 0x1F) << 6; + ucs |= c & 0x3F; + } else if (c <= 0xFFFFFF) { + ucs = ((c >> 16) & 0x0F) << 12; + ucs |= ((c >> 8) & 0x3F) << 6; + ucs |= c & 0x3F; + } else { + ucs = ((c >> 24) & 0x07) << 18; + ucs |= ((c >> 16) & 0x3F) << 12; + ucs |= ((c >> 8) & 0x3F) << 6; + ucs |= c & 0x3F; + } + + return ucs; +} + +/* + * Perform mapping of GB18030 ranges to UTF8 + * + * The ranges we need to convert are specified in gb-18030-2000.xml. + * All are ranges of 4-byte GB18030 codes. + */ +static uint32 conv_18030_to_utf8(uint32 code) +{ +#define conv18030(minunicode, mincode, maxcode) \ + if (code >= mincode && code <= maxcode) \ + return unicode_to_utf8word(gb_linear(code) - gb_linear(mincode) + minunicode) + + conv18030(0x0452, 0x8130D330, 0x8136A531); + conv18030(0x2643, 0x8137A839, 0x8138FD38); + conv18030(0x361B, 0x8230A633, 0x8230F237); + conv18030(0x3CE1, 0x8231D438, 0x8232AF32); + conv18030(0x4160, 0x8232C937, 0x8232F837); + conv18030(0x44D7, 0x8233A339, 0x8233C931); + conv18030(0x478E, 0x8233E838, 0x82349638); + conv18030(0x49B8, 0x8234A131, 0x8234E733); + conv18030(0x9FA6, 0x82358F33, 0x8336C738); + conv18030(0xE865, 0x8336D030, 0x84308534); + conv18030(0xFA2A, 0x84309C38, 0x84318537); + conv18030(0xFFE6, 0x8431A234, 0x8431A439); + conv18030(0x10000, 0x90308130, 0xE3329A35); + /* No mapping exists */ + return 0; +} + +/* + * Perform mapping of UTF8 ranges to GB18030 + */ +static uint32 conv_utf8_to_18030(uint32 code) +{ + uint32 ucs = utf8word_to_unicode(code); + +#define convutf8(minunicode, maxunicode, mincode) \ + if (ucs >= minunicode && ucs <= maxunicode) \ + return gb_unlinear(ucs - minunicode + gb_linear(mincode)) + + convutf8(0x0452, 0x200F, 0x8130D330); + convutf8(0x2643, 0x2E80, 0x8137A839); + convutf8(0x361B, 0x3917, 0x8230A633); + convutf8(0x3CE1, 0x4055, 0x8231D438); + convutf8(0x4160, 0x4336, 0x8232C937); + convutf8(0x44D7, 0x464B, 0x8233A339); + convutf8(0x478E, 0x4946, 0x8233E838); + convutf8(0x49B8, 0x4C76, 0x8234A131); + convutf8(0x9FA6, 0xD7FF, 0x82358F33); + convutf8(0xE865, 0xF92B, 0x8336D030); + convutf8(0xFA2A, 0xFE2F, 0x84309C38); + convutf8(0xFFE6, 0xFFFF, 0x8431A234); + convutf8(0x10000, 0x10FFFF, 0x90308130); + /* No mapping exists */ + return 0; +} + /* ---------- * conv_proc( * INTEGER, -- source encoding id @@ -44,7 +178,7 @@ Datum gb18030_to_utf8(PG_FUNCTION_ARGS) CHECK_ENCODING_CONVERSION_ARGS(PG_GB18030, PG_UTF8); - LocalToUtf(src, dest, LUmapGB18030, NULL, sizeof(LUmapGB18030) / sizeof(pg_local_to_utf), 0, PG_GB18030, len); + LocalToUtf(src, len, dest, LUmapGB18030, lengthof(LUmapGB18030), NULL, 0, conv_18030_to_utf8, PG_GB18030); PG_RETURN_VOID(); } @@ -57,7 +191,7 @@ Datum utf8_to_gb18030(PG_FUNCTION_ARGS) CHECK_ENCODING_CONVERSION_ARGS(PG_UTF8, PG_GB18030); - UtfToLocal(src, dest, ULmapGB18030, NULL, sizeof(ULmapGB18030) / sizeof(pg_utf_to_local), 0, PG_GB18030, len); + UtfToLocal(src, len, dest, ULmapGB18030, lengthof(ULmapGB18030), NULL, 0, conv_utf8_to_18030, PG_GB18030); PG_RETURN_VOID(); } diff --git a/src/common/backend/utils/mb/conversion_procs/utf8_and_gbk/utf8_and_gbk.cpp b/src/common/backend/utils/mb/conversion_procs/utf8_and_gbk/utf8_and_gbk.cpp index c58631f11..3a0eed530 100644 --- a/src/common/backend/utils/mb/conversion_procs/utf8_and_gbk/utf8_and_gbk.cpp +++ b/src/common/backend/utils/mb/conversion_procs/utf8_and_gbk/utf8_and_gbk.cpp @@ -44,7 +44,7 @@ Datum gbk_to_utf8(PG_FUNCTION_ARGS) CHECK_ENCODING_CONVERSION_ARGS(PG_GBK, PG_UTF8); - LocalToUtf(src, dest, LUmapGBK, NULL, sizeof(LUmapGBK) / sizeof(pg_local_to_utf), 0, PG_GBK, len); + LocalToUtf(src, len, dest, LUmapGBK, lengthof(LUmapGBK), NULL, 0, NULL, PG_GBK); PG_RETURN_VOID(); } @@ -57,7 +57,7 @@ Datum utf8_to_gbk(PG_FUNCTION_ARGS) CHECK_ENCODING_CONVERSION_ARGS(PG_UTF8, PG_GBK); - UtfToLocal(src, dest, ULmapGBK, NULL, sizeof(ULmapGBK) / sizeof(pg_utf_to_local), 0, PG_GBK, len); + UtfToLocal(src, len, dest, ULmapGBK, lengthof(ULmapGBK), NULL, 0, NULL, PG_GBK); PG_RETURN_VOID(); } diff --git a/src/common/backend/utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.cpp b/src/common/backend/utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.cpp index 0f290d731..f42ebfc43 100644 --- a/src/common/backend/utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.cpp +++ b/src/common/backend/utils/mb/conversion_procs/utf8_and_iso8859/utf8_and_iso8859.cpp @@ -62,68 +62,68 @@ static pg_conv_map maps[] = { {PG_LATIN2, LUmapISO8859_2, ULmapISO8859_2, - sizeof(LUmapISO8859_2) / sizeof(pg_local_to_utf), - sizeof(ULmapISO8859_2) / sizeof(pg_utf_to_local)}, /* ISO-8859-2 Latin 2 */ + lengthof(LUmapISO8859_2), + lengthof(ULmapISO8859_2)}, /* ISO-8859-2 Latin 2 */ {PG_LATIN3, LUmapISO8859_3, ULmapISO8859_3, - sizeof(LUmapISO8859_3) / sizeof(pg_local_to_utf), - sizeof(ULmapISO8859_3) / sizeof(pg_utf_to_local)}, /* ISO-8859-3 Latin 3 */ + lengthof(LUmapISO8859_3), + lengthof(ULmapISO8859_3)}, /* ISO-8859-3 Latin 3 */ {PG_LATIN4, LUmapISO8859_4, ULmapISO8859_4, - sizeof(LUmapISO8859_4) / sizeof(pg_local_to_utf), - sizeof(ULmapISO8859_4) / sizeof(pg_utf_to_local)}, /* ISO-8859-4 Latin 4 */ + lengthof(LUmapISO8859_4), + lengthof(ULmapISO8859_4)}, /* ISO-8859-4 Latin 4 */ {PG_LATIN5, LUmapISO8859_9, ULmapISO8859_9, - sizeof(LUmapISO8859_9) / sizeof(pg_local_to_utf), - sizeof(ULmapISO8859_9) / sizeof(pg_utf_to_local)}, /* ISO-8859-9 Latin 5 */ + lengthof(LUmapISO8859_9), + lengthof(ULmapISO8859_9)}, /* ISO-8859-9 Latin 5 */ {PG_LATIN6, LUmapISO8859_10, ULmapISO8859_10, - sizeof(LUmapISO8859_10) / sizeof(pg_local_to_utf), - sizeof(ULmapISO8859_10) / sizeof(pg_utf_to_local)}, /* ISO-8859-10 Latin 6 */ + lengthof(LUmapISO8859_10), + lengthof(ULmapISO8859_10)}, /* ISO-8859-10 Latin 6 */ {PG_LATIN7, LUmapISO8859_13, ULmapISO8859_13, - sizeof(LUmapISO8859_13) / sizeof(pg_local_to_utf), - sizeof(ULmapISO8859_13) / sizeof(pg_utf_to_local)}, /* ISO-8859-13 Latin 7 */ + lengthof(LUmapISO8859_13), + lengthof(ULmapISO8859_13)}, /* ISO-8859-13 Latin 7 */ {PG_LATIN8, LUmapISO8859_14, ULmapISO8859_14, - sizeof(LUmapISO8859_14) / sizeof(pg_local_to_utf), - sizeof(ULmapISO8859_14) / sizeof(pg_utf_to_local)}, /* ISO-8859-14 Latin 8 */ + lengthof(LUmapISO8859_14), + lengthof(ULmapISO8859_14)}, /* ISO-8859-14 Latin 8 */ {PG_LATIN9, LUmapISO8859_15, ULmapISO8859_15, - sizeof(LUmapISO8859_15) / sizeof(pg_local_to_utf), - sizeof(ULmapISO8859_15) / sizeof(pg_utf_to_local)}, /* ISO-8859-15 Latin 9 */ + lengthof(ULmapISO8859_15), + lengthof(ULmapISO8859_15)}, /* ISO-8859-15 Latin 9 */ {PG_LATIN10, LUmapISO8859_16, ULmapISO8859_16, - sizeof(LUmapISO8859_16) / sizeof(pg_local_to_utf), - sizeof(ULmapISO8859_16) / sizeof(pg_utf_to_local)}, /* ISO-8859-16 Latin 10 */ + lengthof(LUmapISO8859_16), + lengthof(ULmapISO8859_16)}, /* ISO-8859-16 Latin 10 */ {PG_ISO_8859_5, LUmapISO8859_5, ULmapISO8859_5, - sizeof(LUmapISO8859_5) / sizeof(pg_local_to_utf), - sizeof(ULmapISO8859_5) / sizeof(pg_utf_to_local)}, /* ISO-8859-5 */ + lengthof(LUmapISO8859_5), + lengthof(ULmapISO8859_5)}, /* ISO-8859-5 */ {PG_ISO_8859_6, LUmapISO8859_6, ULmapISO8859_6, - sizeof(LUmapISO8859_6) / sizeof(pg_local_to_utf), - sizeof(ULmapISO8859_6) / sizeof(pg_utf_to_local)}, /* ISO-8859-6 */ + lengthof(LUmapISO8859_6), + lengthof(ULmapISO8859_6)}, /* ISO-8859-6 */ {PG_ISO_8859_7, LUmapISO8859_7, ULmapISO8859_7, - sizeof(LUmapISO8859_7) / sizeof(pg_local_to_utf), - sizeof(ULmapISO8859_7) / sizeof(pg_utf_to_local)}, /* ISO-8859-7 */ + lengthof(LUmapISO8859_7), + lengthof(ULmapISO8859_7)}, /* ISO-8859-7 */ {PG_ISO_8859_8, LUmapISO8859_8, ULmapISO8859_8, - sizeof(LUmapISO8859_8) / sizeof(pg_local_to_utf), - sizeof(ULmapISO8859_8) / sizeof(pg_utf_to_local)}, /* ISO-8859-8 */ + lengthof(LUmapISO8859_8), + lengthof(ULmapISO8859_8)}, /* ISO-8859-8 */ }; Datum iso8859_to_utf8(PG_FUNCTION_ARGS) @@ -136,9 +136,9 @@ Datum iso8859_to_utf8(PG_FUNCTION_ARGS) CHECK_ENCODING_CONVERSION_ARGS(-1, PG_UTF8); - for (i = 0; (unsigned int)(i) < sizeof(maps) / sizeof(pg_conv_map); i++) { + for (i = 0; (unsigned int)(i) < lengthof(maps); i++) { if (encoding == maps[i].encoding) { - LocalToUtf(src, dest, maps[i].map1, NULL, maps[i].size1, 0, encoding, len); + LocalToUtf(src, len, dest, maps[i].map1, maps[i].size1, NULL, 0, NULL, encoding); PG_RETURN_VOID(); } } @@ -160,9 +160,9 @@ Datum utf8_to_iso8859(PG_FUNCTION_ARGS) CHECK_ENCODING_CONVERSION_ARGS(PG_UTF8, -1); - for (i = 0; (unsigned int)(i) < sizeof(maps) / sizeof(pg_conv_map); i++) { + for (i = 0; (unsigned int)(i) < lengthof(maps); i++) { if (encoding == maps[i].encoding) { - UtfToLocal(src, dest, maps[i].map2, NULL, maps[i].size2, 0, encoding, len); + UtfToLocal(src, len, dest, maps[i].map2, maps[i].size2, NULL, 0, NULL, encoding); PG_RETURN_VOID(); } } diff --git a/src/common/backend/utils/mb/conversion_procs/utf8_and_johab/utf8_and_johab.cpp b/src/common/backend/utils/mb/conversion_procs/utf8_and_johab/utf8_and_johab.cpp index e2d2a3ed6..9b9516de7 100644 --- a/src/common/backend/utils/mb/conversion_procs/utf8_and_johab/utf8_and_johab.cpp +++ b/src/common/backend/utils/mb/conversion_procs/utf8_and_johab/utf8_and_johab.cpp @@ -44,7 +44,7 @@ Datum johab_to_utf8(PG_FUNCTION_ARGS) CHECK_ENCODING_CONVERSION_ARGS(PG_JOHAB, PG_UTF8); - LocalToUtf(src, dest, LUmapJOHAB, NULL, sizeof(LUmapJOHAB) / sizeof(pg_local_to_utf), 0, PG_JOHAB, len); + LocalToUtf(src, len, dest, LUmapJOHAB, lengthof(LUmapJOHAB), NULL, 0, NULL, PG_JOHAB); PG_RETURN_VOID(); } @@ -57,7 +57,7 @@ Datum utf8_to_johab(PG_FUNCTION_ARGS) CHECK_ENCODING_CONVERSION_ARGS(PG_UTF8, PG_JOHAB); - UtfToLocal(src, dest, ULmapJOHAB, NULL, sizeof(ULmapJOHAB) / sizeof(pg_utf_to_local), 0, PG_JOHAB, len); + UtfToLocal(src, len, dest, ULmapJOHAB, lengthof(ULmapJOHAB), NULL, 0, NULL, PG_JOHAB); PG_RETURN_VOID(); } diff --git a/src/common/backend/utils/mb/conversion_procs/utf8_and_sjis/utf8_and_sjis.cpp b/src/common/backend/utils/mb/conversion_procs/utf8_and_sjis/utf8_and_sjis.cpp index a2e7ca63b..7dc11b6e1 100644 --- a/src/common/backend/utils/mb/conversion_procs/utf8_and_sjis/utf8_and_sjis.cpp +++ b/src/common/backend/utils/mb/conversion_procs/utf8_and_sjis/utf8_and_sjis.cpp @@ -44,7 +44,7 @@ Datum sjis_to_utf8(PG_FUNCTION_ARGS) CHECK_ENCODING_CONVERSION_ARGS(PG_SJIS, PG_UTF8); - LocalToUtf(src, dest, LUmapSJIS, NULL, sizeof(LUmapSJIS) / sizeof(pg_local_to_utf), 0, PG_SJIS, len); + LocalToUtf(src, len, dest, LUmapSJIS, lengthof(LUmapSJIS), NULL, 0, NULL, PG_SJIS); PG_RETURN_VOID(); } @@ -57,7 +57,7 @@ Datum utf8_to_sjis(PG_FUNCTION_ARGS) CHECK_ENCODING_CONVERSION_ARGS(PG_UTF8, PG_SJIS); - UtfToLocal(src, dest, ULmapSJIS, NULL, sizeof(ULmapSJIS) / sizeof(pg_utf_to_local), 0, PG_SJIS, len); + UtfToLocal(src, len, dest, ULmapSJIS, lengthof(ULmapSJIS), NULL, 0, NULL, PG_SJIS); PG_RETURN_VOID(); } diff --git a/src/common/backend/utils/mb/conversion_procs/utf8_and_sjis2004/utf8_and_sjis2004.cpp b/src/common/backend/utils/mb/conversion_procs/utf8_and_sjis2004/utf8_and_sjis2004.cpp index 7355d140d..dcb051a8b 100644 --- a/src/common/backend/utils/mb/conversion_procs/utf8_and_sjis2004/utf8_and_sjis2004.cpp +++ b/src/common/backend/utils/mb/conversion_procs/utf8_and_sjis2004/utf8_and_sjis2004.cpp @@ -47,13 +47,14 @@ Datum shift_jis_2004_to_utf8(PG_FUNCTION_ARGS) CHECK_ENCODING_CONVERSION_ARGS(PG_SHIFT_JIS_2004, PG_UTF8); LocalToUtf(src, + len, dest, LUmapSHIFT_JIS_2004, + lengthof(LUmapSHIFT_JIS_2004), LUmapSHIFT_JIS_2004_combined, - sizeof(LUmapSHIFT_JIS_2004) / sizeof(pg_local_to_utf), - sizeof(LUmapSHIFT_JIS_2004_combined) / sizeof(pg_local_to_utf_combined), - PG_SHIFT_JIS_2004, - len); + lengthof(LUmapSHIFT_JIS_2004_combined), + NULL, + PG_SHIFT_JIS_2004); PG_RETURN_VOID(); } @@ -67,13 +68,14 @@ Datum utf8_to_shift_jis_2004(PG_FUNCTION_ARGS) CHECK_ENCODING_CONVERSION_ARGS(PG_UTF8, PG_SHIFT_JIS_2004); UtfToLocal(src, + len, dest, ULmapSHIFT_JIS_2004, + lengthof(ULmapSHIFT_JIS_2004), ULmapSHIFT_JIS_2004_combined, - sizeof(ULmapSHIFT_JIS_2004) / sizeof(pg_utf_to_local), - sizeof(ULmapSHIFT_JIS_2004_combined) / sizeof(pg_utf_to_local_combined), - PG_SHIFT_JIS_2004, - len); + lengthof(ULmapSHIFT_JIS_2004_combined), + NULL, + PG_SHIFT_JIS_2004); PG_RETURN_VOID(); } diff --git a/src/common/backend/utils/mb/conversion_procs/utf8_and_uhc/utf8_and_uhc.cpp b/src/common/backend/utils/mb/conversion_procs/utf8_and_uhc/utf8_and_uhc.cpp index 2c29b39de..5b1001ad6 100644 --- a/src/common/backend/utils/mb/conversion_procs/utf8_and_uhc/utf8_and_uhc.cpp +++ b/src/common/backend/utils/mb/conversion_procs/utf8_and_uhc/utf8_and_uhc.cpp @@ -44,7 +44,7 @@ Datum uhc_to_utf8(PG_FUNCTION_ARGS) CHECK_ENCODING_CONVERSION_ARGS(PG_UHC, PG_UTF8); - LocalToUtf(src, dest, LUmapUHC, NULL, sizeof(LUmapUHC) / sizeof(pg_local_to_utf), 0, PG_UHC, len); + LocalToUtf(src, len, dest, LUmapUHC, lengthof(LUmapUHC), NULL, 0, NULL, PG_UHC); PG_RETURN_VOID(); } @@ -57,7 +57,7 @@ Datum utf8_to_uhc(PG_FUNCTION_ARGS) CHECK_ENCODING_CONVERSION_ARGS(PG_UTF8, PG_UHC); - UtfToLocal(src, dest, ULmapUHC, NULL, sizeof(ULmapUHC) / sizeof(pg_utf_to_local), 0, PG_UHC, len); + UtfToLocal(src, len, dest, ULmapUHC, lengthof(ULmapUHC), NULL, 0, NULL, PG_UHC); PG_RETURN_VOID(); } diff --git a/src/common/backend/utils/mb/conversion_procs/utf8_and_win/utf8_and_win.cpp b/src/common/backend/utils/mb/conversion_procs/utf8_and_win/utf8_and_win.cpp index 7b9ba3cb8..3df6c5cb0 100644 --- a/src/common/backend/utils/mb/conversion_procs/utf8_and_win/utf8_and_win.cpp +++ b/src/common/backend/utils/mb/conversion_procs/utf8_and_win/utf8_and_win.cpp @@ -68,58 +68,58 @@ static pg_conv_map maps[] = { {PG_WIN866, LUmapWIN866, ULmapWIN866, - sizeof(LUmapWIN866) / sizeof(pg_local_to_utf), - sizeof(ULmapWIN866) / sizeof(pg_utf_to_local)}, + lengthof(LUmapWIN866), + lengthof(ULmapWIN866)}, {PG_WIN874, LUmapWIN874, ULmapWIN874, - sizeof(LUmapWIN874) / sizeof(pg_local_to_utf), - sizeof(ULmapWIN874) / sizeof(pg_utf_to_local)}, + lengthof(LUmapWIN874), + lengthof(ULmapWIN874)}, {PG_WIN1250, LUmapWIN1250, ULmapWIN1250, - sizeof(LUmapWIN1250) / sizeof(pg_local_to_utf), - sizeof(ULmapWIN1250) / sizeof(pg_utf_to_local)}, + lengthof(LUmapWIN1250), + lengthof(ULmapWIN1250)}, {PG_WIN1251, LUmapWIN1251, ULmapWIN1251, - sizeof(LUmapWIN1251) / sizeof(pg_local_to_utf), - sizeof(ULmapWIN1251) / sizeof(pg_utf_to_local)}, + lengthof(LUmapWIN1251), + lengthof(ULmapWIN1251)}, {PG_WIN1252, LUmapWIN1252, ULmapWIN1252, - sizeof(LUmapWIN1252) / sizeof(pg_local_to_utf), - sizeof(ULmapWIN1252) / sizeof(pg_utf_to_local)}, + lengthof(LUmapWIN1252), + lengthof(ULmapWIN1252)}, {PG_WIN1253, LUmapWIN1253, ULmapWIN1253, - sizeof(LUmapWIN1253) / sizeof(pg_local_to_utf), - sizeof(ULmapWIN1253) / sizeof(pg_utf_to_local)}, + lengthof(LUmapWIN1253), + lengthof(ULmapWIN1253)}, {PG_WIN1254, LUmapWIN1254, ULmapWIN1254, - sizeof(LUmapWIN1254) / sizeof(pg_local_to_utf), - sizeof(ULmapWIN1254) / sizeof(pg_utf_to_local)}, + lengthof(LUmapWIN1254), + lengthof(ULmapWIN1254)}, {PG_WIN1255, LUmapWIN1255, ULmapWIN1255, - sizeof(LUmapWIN1255) / sizeof(pg_local_to_utf), - sizeof(ULmapWIN1255) / sizeof(pg_utf_to_local)}, + lengthof(LUmapWIN1255), + lengthof(ULmapWIN1255)}, {PG_WIN1256, LUmapWIN1256, ULmapWIN1256, - sizeof(LUmapWIN1256) / sizeof(pg_local_to_utf), - sizeof(ULmapWIN1256) / sizeof(pg_utf_to_local)}, + lengthof(LUmapWIN1256), + lengthof(ULmapWIN1256)}, {PG_WIN1257, LUmapWIN1257, ULmapWIN1257, - sizeof(LUmapWIN1257) / sizeof(pg_local_to_utf), - sizeof(ULmapWIN1257) / sizeof(pg_utf_to_local)}, + lengthof(LUmapWIN1257), + lengthof(ULmapWIN1257)}, {PG_WIN1258, LUmapWIN1258, ULmapWIN1258, - sizeof(LUmapWIN1258) / sizeof(pg_local_to_utf), - sizeof(ULmapWIN1258) / sizeof(pg_utf_to_local)}, + lengthof(LUmapWIN1258), + lengthof(ULmapWIN1258)}, }; Datum win_to_utf8(PG_FUNCTION_ARGS) @@ -132,9 +132,9 @@ Datum win_to_utf8(PG_FUNCTION_ARGS) CHECK_ENCODING_CONVERSION_ARGS(-1, PG_UTF8); - for (i = 0; (unsigned int)(i) < sizeof(maps) / sizeof(pg_conv_map); i++) { + for (i = 0; (unsigned int)(i) < lengthof(maps); i++) { if (encoding == maps[i].encoding) { - LocalToUtf(src, dest, maps[i].map1, NULL, maps[i].size1, 0, encoding, len); + LocalToUtf(src, len, dest, maps[i].map1, maps[i].size1, NULL, 0, NULL, encoding); PG_RETURN_VOID(); } } @@ -155,9 +155,9 @@ Datum utf8_to_win(PG_FUNCTION_ARGS) CHECK_ENCODING_CONVERSION_ARGS(PG_UTF8, -1); - for (i = 0; (unsigned int)(i) < sizeof(maps) / sizeof(pg_conv_map); i++) { + for (i = 0; (unsigned int)(i) < lengthof(maps); i++) { if (encoding == maps[i].encoding) { - UtfToLocal(src, dest, maps[i].map2, NULL, maps[i].size2, 0, encoding, len); + UtfToLocal(src, len, dest, maps[i].map2, maps[i].size2, NULL, 0, NULL, encoding); PG_RETURN_VOID(); } } diff --git a/src/common/backend/utils/mb/mbutils.cpp b/src/common/backend/utils/mb/mbutils.cpp index 91c18c1db..546cfa89b 100644 --- a/src/common/backend/utils/mb/mbutils.cpp +++ b/src/common/backend/utils/mb/mbutils.cpp @@ -907,8 +907,8 @@ template int MbCharClipLen(const char* mbstr, int len, int l */ int pg_mbcharcliplen(const char* mbstr, int len, int limit) { - bool calCharLength = DB_IS_CMPT(PG_FORMAT | B_FORMAT); - if (calCharLength) { + bool pgFormat = DB_IS_CMPT(PG_FORMAT); + if (pgFormat) { return MbCharClipLen(mbstr, len, limit); } else { return MbCharClipLen(mbstr, len, limit); diff --git a/src/common/backend/utils/mb/nlssort/nlssort_pinyin_map1_complex.map b/src/common/backend/utils/mb/nlssort/nlssort_pinyin_map1_complex.map new file mode 100644 index 000000000..10e89f768 --- /dev/null +++ b/src/common/backend/utils/mb/nlssort/nlssort_pinyin_map1_complex.map @@ -0,0 +1,65595 @@ +static nlssort_encode_complex PINYIN_map1_C[ 65593 ] = { + {0x81318334, 0xffff0627ffff0653}, + {0x81318335, 0xffff0627ffff0654}, + {0x81318336, 0xffff0648ffff0654}, + {0x81318337, 0xffff0627ffff0655}, + {0x81318338, 0xffff064affff0654}, + {0x81319332, 0xffff06d5ffff0654}, + {0x81319334, 0xffff06c1ffff0654}, + {0x81319531, 0xffff06d2ffff0654}, + {0x8131e131, 0xffff09c7ffff09be}, + {0x8131e132, 0xffff09c7ffff09d7}, + {0x81328932, 0xffff0b47ffff0b56}, + {0x81328935, 0xffff0b47ffff0b3e}, + {0x81328936, 0xffff0b47ffff0b57}, + {0x81329038, 0xffff0b92ffff0bd7}, + {0x81329632, 0xffff0bc6ffff0bbe}, + {0x81329633, 0xffff0bc7ffff0bbe}, + {0x81329634, 0xffff0bc6ffff0bd7}, + {0x8132a238, 0xffff0c46ffff0c56}, + {0x8132ae38, 0xffff0cbfffff0cd5}, + {0x8132af35, 0xffff0cc6ffff0cd5}, + {0x8132af36, 0xffff0cc6ffff0cd6}, + {0x8132af38, 0xffff0cc6ffff0cc2}, + {0x8132bc36, 0xffff0d46ffff0d3e}, + {0x8132bc37, 0xffff0d47ffff0d3e}, + {0x8132bc38, 0xffff0d46ffff0d57}, + {0x8132cb30, 0xffff0dd9ffff0dca}, + {0x8132cb32, 0xffff0dd9ffff0dcf}, + {0x8132cb34, 0xffff0dd9ffff0ddf}, + {0x8132f339, 0xffff0f71ffff0f72}, + {0x8132f431, 0xffff0f71ffff0f74}, + {0x8132f533, 0xffff0f71ffff0f80}, + {0x81338738, 0xffff1025ffff102e}, + {0x8135a232, 0xffff1b05ffff1b35}, + {0x8135a234, 0xffff1b07ffff1b35}, + {0x8135a236, 0xffff1b09ffff1b35}, + {0x8135a238, 0xffff1b0bffff1b35}, + {0x8135a330, 0xffff1b0dffff1b35}, + {0x8135a334, 0xffff1b11ffff1b35}, + {0x8135a735, 0xffff1b3affff1b35}, + {0x8135a737, 0xffff1b3cffff1b35}, + {0x8135a830, 0xffff1b3effff1b35}, + {0x8135a831, 0xffff1b3fffff1b35}, + {0x8135a833, 0xffff1b42ffff1b35}, + {0x95328230, 0xffffd83fffffdffa}, + {0x95328231, 0xffffd83fffffdffb}, + {0x95328232, 0xffffd83fffffdffc}, + {0x95328233, 0xffffd83fffffdffd}, + {0x95328234, 0xffffd83fffffdffe}, + {0x95328235, 0xffffd83fffffdfff}, + {0x95328236, 0xffffd840ffffdc00}, + {0x95328237, 0xffffd840ffffdc01}, + {0x95328238, 0xffffd840ffffdc02}, + {0x95328239, 0xffffd840ffffdc03}, + {0x95328330, 0xffffd840ffffdc04}, + {0x95328331, 0xffffd840ffffdc05}, + {0x95328332, 0xffffd840ffffdc06}, + {0x95328333, 0xffffd840ffffdc07}, + {0x95328334, 0xffffd840ffffdc08}, + {0x95328335, 0xffffd840ffffdc09}, + {0x95328336, 0xffffd840ffffdc0a}, + {0x95328337, 0xffffd840ffffdc0b}, + {0x95328338, 0xffffd840ffffdc0c}, + {0x95328339, 0xffffd840ffffdc0d}, + {0x95328430, 0xffffd840ffffdc0e}, + {0x95328431, 0xffffd840ffffdc0f}, + {0x95328432, 0xffffd840ffffdc10}, + {0x95328433, 0xffffd840ffffdc11}, + {0x95328434, 0xffffd840ffffdc12}, + {0x95328435, 0xffffd840ffffdc13}, + {0x95328436, 0xffffd840ffffdc14}, + {0x95328437, 0xffffd840ffffdc15}, + {0x95328438, 0xffffd840ffffdc16}, + {0x95328439, 0xffffd840ffffdc17}, + {0x95328530, 0xffffd840ffffdc18}, + {0x95328531, 0xffffd840ffffdc19}, + {0x95328532, 0xffffd840ffffdc1a}, + {0x95328533, 0xffffd840ffffdc1b}, + {0x95328534, 0xffffd840ffffdc1c}, + {0x95328535, 0xffffd840ffffdc1d}, + {0x95328536, 0xffffd840ffffdc1e}, + {0x95328537, 0xffffd840ffffdc1f}, + {0x95328538, 0xffffd840ffffdc20}, + {0x95328539, 0xffffd840ffffdc21}, + {0x95328630, 0xffffd840ffffdc22}, + {0x95328631, 0xffffd840ffffdc23}, + {0x95328632, 0xffffd840ffffdc24}, + {0x95328633, 0xffffd840ffffdc25}, + {0x95328634, 0xffffd840ffffdc26}, + {0x95328635, 0xffffd840ffffdc27}, + {0x95328636, 0xffffd840ffffdc28}, + {0x95328637, 0xffffd840ffffdc29}, + {0x95328638, 0xffffd840ffffdc2a}, + {0x95328639, 0xffffd840ffffdc2b}, + {0x95328730, 0xffffd840ffffdc2c}, + {0x95328731, 0xffffd840ffffdc2d}, + {0x95328732, 0xffffd840ffffdc2e}, + {0x95328733, 0xffffd840ffffdc2f}, + {0x95328734, 0xffffd840ffffdc30}, + {0x95328735, 0xffffd840ffffdc31}, + {0x95328736, 0xffffd840ffffdc32}, + {0x95328737, 0xffffd840ffffdc33}, + {0x95328738, 0xffffd840ffffdc34}, + {0x95328739, 0xffffd840ffffdc35}, + {0x95328830, 0xffffd840ffffdc36}, + {0x95328831, 0xffffd840ffffdc37}, + {0x95328832, 0xffffd840ffffdc38}, + {0x95328833, 0xffffd840ffffdc39}, + {0x95328834, 0xffffd840ffffdc3a}, + {0x95328835, 0xffffd840ffffdc3b}, + {0x95328836, 0xffffd840ffffdc3c}, + {0x95328837, 0xffffd840ffffdc3d}, + {0x95328838, 0xffffd840ffffdc3e}, + {0x95328839, 0xffffd840ffffdc3f}, + {0x95328930, 0xffffd840ffffdc40}, + {0x95328931, 0xffffd840ffffdc41}, + {0x95328932, 0xffffd840ffffdc42}, + {0x95328933, 0xffffd840ffffdc43}, + {0x95328934, 0xffffd840ffffdc44}, + {0x95328935, 0xffffd840ffffdc45}, + {0x95328936, 0xffffd840ffffdc46}, + {0x95328937, 0xffffd840ffffdc47}, + {0x95328938, 0xffffd840ffffdc48}, + {0x95328939, 0xffffd840ffffdc49}, + {0x95328a30, 0xffffd840ffffdc4a}, + {0x95328a31, 0xffffd840ffffdc4b}, + {0x95328a32, 0xffffd840ffffdc4c}, + {0x95328a33, 0xffffd840ffffdc4d}, + {0x95328a34, 0xffffd840ffffdc4e}, + {0x95328a35, 0xffffd840ffffdc4f}, + {0x95328a36, 0xffffd840ffffdc50}, + {0x95328a37, 0xffffd840ffffdc51}, + {0x95328a38, 0xffffd840ffffdc52}, + {0x95328a39, 0xffffd840ffffdc53}, + {0x95328b30, 0xffffd840ffffdc54}, + {0x95328b31, 0xffffd840ffffdc55}, + {0x95328b32, 0xffffd840ffffdc56}, + {0x95328b33, 0xffffd840ffffdc57}, + {0x95328b34, 0xffffd840ffffdc58}, + {0x95328b35, 0xffffd840ffffdc59}, + {0x95328b36, 0xffffd840ffffdc5a}, + {0x95328b37, 0xffffd840ffffdc5b}, + {0x95328b38, 0xffffd840ffffdc5c}, + {0x95328b39, 0xffffd840ffffdc5d}, + {0x95328c30, 0xffffd840ffffdc5e}, + {0x95328c31, 0xffffd840ffffdc5f}, + {0x95328c32, 0xffffd840ffffdc60}, + {0x95328c33, 0xffffd840ffffdc61}, + {0x95328c34, 0xffffd840ffffdc62}, + {0x95328c35, 0xffffd840ffffdc63}, + {0x95328c36, 0xffffd840ffffdc64}, + {0x95328c37, 0xffffd840ffffdc65}, + {0x95328c38, 0xffffd840ffffdc66}, + {0x95328c39, 0xffffd840ffffdc67}, + {0x95328d30, 0xffffd840ffffdc68}, + {0x95328d31, 0xffffd840ffffdc69}, + {0x95328d32, 0xffffd840ffffdc6a}, + {0x95328d33, 0xffffd840ffffdc6b}, + {0x95328d34, 0xffffd840ffffdc6c}, + {0x95328d35, 0xffffd840ffffdc6d}, + {0x95328d36, 0xffffd840ffffdc6e}, + {0x95328d37, 0xffffd840ffffdc6f}, + {0x95328d38, 0xffffd840ffffdc70}, + {0x95328d39, 0xffffd840ffffdc71}, + {0x95328e30, 0xffffd840ffffdc72}, + {0x95328e31, 0xffffd840ffffdc73}, + {0x95328e32, 0xffffd840ffffdc74}, + {0x95328e33, 0xffffd840ffffdc75}, + {0x95328e34, 0xffffd840ffffdc76}, + {0x95328e35, 0xffffd840ffffdc77}, + {0x95328e36, 0xffffd840ffffdc78}, + {0x95328e37, 0xffffd840ffffdc79}, + {0x95328e38, 0xffffd840ffffdc7a}, + {0x95328e39, 0xffffd840ffffdc7b}, + {0x95328f30, 0xffffd840ffffdc7c}, + {0x95328f31, 0xffffd840ffffdc7d}, + {0x95328f32, 0xffffd840ffffdc7e}, + {0x95328f33, 0xffffd840ffffdc7f}, + {0x95328f34, 0xffffd840ffffdc80}, + {0x95328f35, 0xffffd840ffffdc81}, + {0x95328f36, 0xffffd840ffffdc82}, + {0x95328f37, 0xffffd840ffffdc83}, + {0x95328f38, 0xffffd840ffffdc84}, + {0x95328f39, 0xffffd840ffffdc85}, + {0x95329030, 0xffffd840ffffdc86}, + {0x95329031, 0xffffd840ffffdc87}, + {0x95329032, 0xffffd840ffffdc88}, + {0x95329033, 0xffffd840ffffdc89}, + {0x95329034, 0xffffd840ffffdc8a}, + {0x95329035, 0xffffd840ffffdc8b}, + {0x95329036, 0xffffd840ffffdc8c}, + {0x95329037, 0xffffd840ffffdc8d}, + {0x95329038, 0xffffd840ffffdc8e}, + {0x95329039, 0xffffd840ffffdc8f}, + {0x95329130, 0xffffd840ffffdc90}, + {0x95329131, 0xffffd840ffffdc91}, + {0x95329132, 0xffffd840ffffdc92}, + {0x95329133, 0xffffd840ffffdc93}, + {0x95329134, 0xffffd840ffffdc94}, + {0x95329135, 0xffffd840ffffdc95}, + {0x95329136, 0xffffd840ffffdc96}, + {0x95329137, 0xffffd840ffffdc97}, + {0x95329138, 0xffffd840ffffdc98}, + {0x95329139, 0xffffd840ffffdc99}, + {0x95329230, 0xffffd840ffffdc9a}, + {0x95329231, 0xffffd840ffffdc9b}, + {0x95329232, 0xffffd840ffffdc9c}, + {0x95329233, 0xffffd840ffffdc9d}, + {0x95329234, 0xffffd840ffffdc9e}, + {0x95329235, 0xffffd840ffffdc9f}, + {0x95329236, 0xffffd840ffffdca0}, + {0x95329237, 0xffffd840ffffdca1}, + {0x95329238, 0xffffd840ffffdca2}, + {0x95329239, 0xffffd840ffffdca3}, + {0x95329330, 0xffffd840ffffdca4}, + {0x95329331, 0xffffd840ffffdca5}, + {0x95329332, 0xffffd840ffffdca6}, + {0x95329333, 0xffffd840ffffdca7}, + {0x95329334, 0xffffd840ffffdca8}, + {0x95329335, 0xffffd840ffffdca9}, + {0x95329336, 0xffffd840ffffdcaa}, + {0x95329337, 0xffffd840ffffdcab}, + {0x95329338, 0xffffd840ffffdcac}, + {0x95329339, 0xffffd840ffffdcad}, + {0x95329430, 0xffffd840ffffdcae}, + {0x95329431, 0xffffd840ffffdcaf}, + {0x95329432, 0xffffd840ffffdcb0}, + {0x95329433, 0xffffd840ffffdcb1}, + {0x95329434, 0xffffd840ffffdcb2}, + {0x95329435, 0xffffd840ffffdcb3}, + {0x95329436, 0xffffd840ffffdcb4}, + {0x95329437, 0xffffd840ffffdcb5}, + {0x95329438, 0xffffd840ffffdcb6}, + {0x95329439, 0xffffd840ffffdcb7}, + {0x95329530, 0xffffd840ffffdcb8}, + {0x95329531, 0xffffd840ffffdcb9}, + {0x95329532, 0xffffd840ffffdcba}, + {0x95329533, 0xffffd840ffffdcbb}, + {0x95329534, 0xffffd840ffffdcbc}, + {0x95329535, 0xffffd840ffffdcbd}, + {0x95329536, 0xffffd840ffffdcbe}, + {0x95329537, 0xffffd840ffffdcbf}, + {0x95329538, 0xffffd840ffffdcc0}, + {0x95329539, 0xffffd840ffffdcc1}, + {0x95329630, 0xffffd840ffffdcc2}, + {0x95329631, 0xffffd840ffffdcc3}, + {0x95329632, 0xffffd840ffffdcc4}, + {0x95329633, 0xffffd840ffffdcc5}, + {0x95329634, 0xffffd840ffffdcc6}, + {0x95329635, 0xffffd840ffffdcc7}, + {0x95329636, 0xffffd840ffffdcc8}, + {0x95329637, 0xffffd840ffffdcc9}, + {0x95329638, 0xffffd840ffffdcca}, + {0x95329639, 0xffffd840ffffdccb}, + {0x95329730, 0xffffd840ffffdccc}, + {0x95329731, 0xffffd840ffffdccd}, + {0x95329732, 0xffffd840ffffdcce}, + {0x95329733, 0xffffd840ffffdccf}, + {0x95329734, 0xffffd840ffffdcd0}, + {0x95329735, 0xffffd840ffffdcd1}, + {0x95329736, 0xffffd840ffffdcd2}, + {0x95329737, 0xffffd840ffffdcd3}, + {0x95329738, 0xffffd840ffffdcd4}, + {0x95329739, 0xffffd840ffffdcd5}, + {0x95329830, 0xffffd840ffffdcd6}, + {0x95329831, 0xffffd840ffffdcd7}, + {0x95329832, 0xffffd840ffffdcd8}, + {0x95329833, 0xffffd840ffffdcd9}, + {0x95329834, 0xffffd840ffffdcda}, + {0x95329835, 0xffffd840ffffdcdb}, + {0x95329836, 0xffffd840ffffdcdc}, + {0x95329837, 0xffffd840ffffdcdd}, + {0x95329838, 0xffffd840ffffdcde}, + {0x95329839, 0xffffd840ffffdcdf}, + {0x95329930, 0xffffd840ffffdce0}, + {0x95329931, 0xffffd840ffffdce1}, + {0x95329932, 0xffffd840ffffdce2}, + {0x95329933, 0xffffd840ffffdce3}, + {0x95329934, 0xffffd840ffffdce4}, + {0x95329935, 0xffffd840ffffdce5}, + {0x95329936, 0xffffd840ffffdce6}, + {0x95329937, 0xffffd840ffffdce7}, + {0x95329938, 0xffffd840ffffdce8}, + {0x95329939, 0xffffd840ffffdce9}, + {0x95329a30, 0xffffd840ffffdcea}, + {0x95329a31, 0xffffd840ffffdceb}, + {0x95329a32, 0xffffd840ffffdcec}, + {0x95329a33, 0xffffd840ffffdced}, + {0x95329a34, 0xffffd840ffffdcee}, + {0x95329a35, 0xffffd840ffffdcef}, + {0x95329a36, 0xffffd840ffffdcf0}, + {0x95329a37, 0xffffd840ffffdcf1}, + {0x95329a38, 0xffffd840ffffdcf2}, + {0x95329a39, 0xffffd840ffffdcf3}, + {0x95329b30, 0xffffd840ffffdcf4}, + {0x95329b31, 0xffffd840ffffdcf5}, + {0x95329b32, 0xffffd840ffffdcf6}, + {0x95329b33, 0xffffd840ffffdcf7}, + {0x95329b34, 0xffffd840ffffdcf8}, + {0x95329b35, 0xffffd840ffffdcf9}, + {0x95329b36, 0xffffd840ffffdcfa}, + {0x95329b37, 0xffffd840ffffdcfb}, + {0x95329b38, 0xffffd840ffffdcfc}, + {0x95329b39, 0xffffd840ffffdcfd}, + {0x95329c30, 0xffffd840ffffdcfe}, + {0x95329c31, 0xffffd840ffffdcff}, + {0x95329c32, 0xffffd840ffffdd00}, + {0x95329c33, 0xffffd840ffffdd01}, + {0x95329c34, 0xffffd840ffffdd02}, + {0x95329c35, 0xffffd840ffffdd03}, + {0x95329c36, 0xffffd840ffffdd04}, + {0x95329c37, 0xffffd840ffffdd05}, + {0x95329c38, 0xffffd840ffffdd06}, + {0x95329c39, 0xffffd840ffffdd07}, + {0x95329d30, 0xffffd840ffffdd08}, + {0x95329d31, 0xffffd840ffffdd09}, + {0x95329d32, 0xffffd840ffffdd0a}, + {0x95329d33, 0xffffd840ffffdd0b}, + {0x95329d34, 0xffffd840ffffdd0c}, + {0x95329d35, 0xffffd840ffffdd0d}, + {0x95329d36, 0xffffd840ffffdd0e}, + {0x95329d37, 0xffffd840ffffdd0f}, + {0x95329d38, 0xffffd840ffffdd10}, + {0x95329d39, 0xffffd840ffffdd11}, + {0x95329e30, 0xffffd840ffffdd12}, + {0x95329e31, 0xffffd840ffffdd13}, + {0x95329e32, 0xffffd840ffffdd14}, + {0x95329e33, 0xffffd840ffffdd15}, + {0x95329e34, 0xffffd840ffffdd16}, + {0x95329e35, 0xffffd840ffffdd17}, + {0x95329e36, 0xffffd840ffffdd18}, + {0x95329e37, 0xffffd840ffffdd19}, + {0x95329e38, 0xffffd840ffffdd1a}, + {0x95329e39, 0xffffd840ffffdd1b}, + {0x95329f30, 0xffffd840ffffdd1c}, + {0x95329f31, 0xffffd840ffffdd1d}, + {0x95329f32, 0xffffd840ffffdd1e}, + {0x95329f33, 0xffffd840ffffdd1f}, + {0x95329f34, 0xffffd840ffffdd20}, + {0x95329f35, 0xffffd840ffffdd21}, + {0x95329f36, 0xffffd840ffffdd22}, + {0x95329f37, 0xffffd840ffffdd23}, + {0x95329f38, 0xffffd840ffffdd24}, + {0x95329f39, 0xffffd840ffffdd25}, + {0x9532a030, 0xffffd840ffffdd26}, + {0x9532a031, 0xffffd840ffffdd27}, + {0x9532a032, 0xffffd840ffffdd28}, + {0x9532a033, 0xffffd840ffffdd29}, + {0x9532a034, 0xffffd840ffffdd2a}, + {0x9532a035, 0xffffd840ffffdd2b}, + {0x9532a036, 0xffffd840ffffdd2c}, + {0x9532a037, 0xffffd840ffffdd2d}, + {0x9532a038, 0xffffd840ffffdd2e}, + {0x9532a039, 0xffffd840ffffdd2f}, + {0x9532a130, 0xffffd840ffffdd30}, + {0x9532a131, 0xffffd840ffffdd31}, + {0x9532a132, 0xffffd840ffffdd32}, + {0x9532a133, 0xffffd840ffffdd33}, + {0x9532a134, 0xffffd840ffffdd34}, + {0x9532a135, 0xffffd840ffffdd35}, + {0x9532a136, 0xffffd840ffffdd36}, + {0x9532a137, 0xffffd840ffffdd37}, + {0x9532a138, 0xffffd840ffffdd38}, + {0x9532a139, 0xffffd840ffffdd39}, + {0x9532a230, 0xffffd840ffffdd3a}, + {0x9532a231, 0xffffd840ffffdd3b}, + {0x9532a232, 0xffffd840ffffdd3c}, + {0x9532a233, 0xffffd840ffffdd3d}, + {0x9532a234, 0xffffd840ffffdd3e}, + {0x9532a235, 0xffffd840ffffdd3f}, + {0x9532a236, 0xffffd840ffffdd40}, + {0x9532a237, 0xffffd840ffffdd41}, + {0x9532a238, 0xffffd840ffffdd42}, + {0x9532a239, 0xffffd840ffffdd43}, + {0x9532a330, 0xffffd840ffffdd44}, + {0x9532a331, 0xffffd840ffffdd45}, + {0x9532a332, 0xffffd840ffffdd46}, + {0x9532a333, 0xffffd840ffffdd47}, + {0x9532a334, 0xffffd840ffffdd48}, + {0x9532a335, 0xffffd840ffffdd49}, + {0x9532a336, 0xffffd840ffffdd4a}, + {0x9532a337, 0xffffd840ffffdd4b}, + {0x9532a338, 0xffffd840ffffdd4c}, + {0x9532a339, 0xffffd840ffffdd4d}, + {0x9532a430, 0xffffd840ffffdd4e}, + {0x9532a431, 0xffffd840ffffdd4f}, + {0x9532a432, 0xffffd840ffffdd50}, + {0x9532a433, 0xffffd840ffffdd51}, + {0x9532a434, 0xffffd840ffffdd52}, + {0x9532a435, 0xffffd840ffffdd53}, + {0x9532a436, 0xffffd840ffffdd54}, + {0x9532a437, 0xffffd840ffffdd55}, + {0x9532a438, 0xffffd840ffffdd56}, + {0x9532a439, 0xffffd840ffffdd57}, + {0x9532a530, 0xffffd840ffffdd58}, + {0x9532a531, 0xffffd840ffffdd59}, + {0x9532a532, 0xffffd840ffffdd5a}, + {0x9532a533, 0xffffd840ffffdd5b}, + {0x9532a534, 0xffffd840ffffdd5c}, + {0x9532a535, 0xffffd840ffffdd5d}, + {0x9532a536, 0xffffd840ffffdd5e}, + {0x9532a537, 0xffffd840ffffdd5f}, + {0x9532a538, 0xffffd840ffffdd60}, + {0x9532a539, 0xffffd840ffffdd61}, + {0x9532a630, 0xffffd840ffffdd62}, + {0x9532a631, 0xffffd840ffffdd63}, + {0x9532a632, 0xffffd840ffffdd64}, + {0x9532a633, 0xffffd840ffffdd65}, + {0x9532a634, 0xffffd840ffffdd66}, + {0x9532a635, 0xffffd840ffffdd67}, + {0x9532a636, 0xffffd840ffffdd68}, + {0x9532a637, 0xffffd840ffffdd69}, + {0x9532a638, 0xffffd840ffffdd6a}, + {0x9532a639, 0xffffd840ffffdd6b}, + {0x9532a730, 0xffffd840ffffdd6c}, + {0x9532a731, 0xffffd840ffffdd6d}, + {0x9532a732, 0xffffd840ffffdd6e}, + {0x9532a733, 0xffffd840ffffdd6f}, + {0x9532a734, 0xffffd840ffffdd70}, + {0x9532a735, 0xffffd840ffffdd71}, + {0x9532a736, 0xffffd840ffffdd72}, + {0x9532a737, 0xffffd840ffffdd73}, + {0x9532a738, 0xffffd840ffffdd74}, + {0x9532a739, 0xffffd840ffffdd75}, + {0x9532a830, 0xffffd840ffffdd76}, + {0x9532a831, 0xffffd840ffffdd77}, + {0x9532a832, 0xffffd840ffffdd78}, + {0x9532a833, 0xffffd840ffffdd79}, + {0x9532a834, 0xffffd840ffffdd7a}, + {0x9532a835, 0xffffd840ffffdd7b}, + {0x9532a836, 0xffffd840ffffdd7c}, + {0x9532a837, 0xffffd840ffffdd7d}, + {0x9532a838, 0xffffd840ffffdd7e}, + {0x9532a839, 0xffffd840ffffdd7f}, + {0x9532a930, 0xffffd840ffffdd80}, + {0x9532a931, 0xffffd840ffffdd81}, + {0x9532a932, 0xffffd840ffffdd82}, + {0x9532a933, 0xffffd840ffffdd83}, + {0x9532a934, 0xffffd840ffffdd84}, + {0x9532a935, 0xffffd840ffffdd85}, + {0x9532a936, 0xffffd840ffffdd86}, + {0x9532a937, 0xffffd840ffffdd87}, + {0x9532a938, 0xffffd840ffffdd88}, + {0x9532a939, 0xffffd840ffffdd89}, + {0x9532aa30, 0xffffd840ffffdd8a}, + {0x9532aa31, 0xffffd840ffffdd8b}, + {0x9532aa32, 0xffffd840ffffdd8c}, + {0x9532aa33, 0xffffd840ffffdd8d}, + {0x9532aa34, 0xffffd840ffffdd8e}, + {0x9532aa35, 0xffffd840ffffdd8f}, + {0x9532aa36, 0xffffd840ffffdd90}, + {0x9532aa37, 0xffffd840ffffdd91}, + {0x9532aa38, 0xffffd840ffffdd92}, + {0x9532aa39, 0xffffd840ffffdd93}, + {0x9532ab30, 0xffffd840ffffdd94}, + {0x9532ab31, 0xffffd840ffffdd95}, + {0x9532ab32, 0xffffd840ffffdd96}, + {0x9532ab33, 0xffffd840ffffdd97}, + {0x9532ab34, 0xffffd840ffffdd98}, + {0x9532ab35, 0xffffd840ffffdd99}, + {0x9532ab36, 0xffffd840ffffdd9a}, + {0x9532ab37, 0xffffd840ffffdd9b}, + {0x9532ab38, 0xffffd840ffffdd9c}, + {0x9532ab39, 0xffffd840ffffdd9d}, + {0x9532ac30, 0xffffd840ffffdd9e}, + {0x9532ac31, 0xffffd840ffffdd9f}, + {0x9532ac32, 0xffffd840ffffdda0}, + {0x9532ac33, 0xffffd840ffffdda1}, + {0x9532ac34, 0xffffd840ffffdda2}, + {0x9532ac35, 0xffffd840ffffdda3}, + {0x9532ac36, 0xffffd840ffffdda4}, + {0x9532ac37, 0xffffd840ffffdda5}, + {0x9532ac38, 0xffffd840ffffdda6}, + {0x9532ac39, 0xffffd840ffffdda7}, + {0x9532ad30, 0xffffd840ffffdda8}, + {0x9532ad31, 0xffffd840ffffdda9}, + {0x9532ad32, 0xffffd840ffffddaa}, + {0x9532ad33, 0xffffd840ffffddab}, + {0x9532ad34, 0xffffd840ffffddac}, + {0x9532ad35, 0xffffd840ffffddad}, + {0x9532ad36, 0xffffd840ffffddae}, + {0x9532ad37, 0xffffd840ffffddaf}, + {0x9532ad38, 0xffffd840ffffddb0}, + {0x9532ad39, 0xffffd840ffffddb1}, + {0x9532ae30, 0xffffd840ffffddb2}, + {0x9532ae31, 0xffffd840ffffddb3}, + {0x9532ae32, 0xffffd840ffffddb4}, + {0x9532ae33, 0xffffd840ffffddb5}, + {0x9532ae34, 0xffffd840ffffddb6}, + {0x9532ae35, 0xffffd840ffffddb7}, + {0x9532ae36, 0xffffd840ffffddb8}, + {0x9532ae37, 0xffffd840ffffddb9}, + {0x9532ae38, 0xffffd840ffffddba}, + {0x9532ae39, 0xffffd840ffffddbb}, + {0x9532af30, 0xffffd840ffffddbc}, + {0x9532af31, 0xffffd840ffffddbd}, + {0x9532af32, 0xffffd840ffffddbe}, + {0x9532af33, 0xffffd840ffffddbf}, + {0x9532af34, 0xffffd840ffffddc0}, + {0x9532af35, 0xffffd840ffffddc1}, + {0x9532af36, 0xffffd840ffffddc2}, + {0x9532af37, 0xffffd840ffffddc3}, + {0x9532af38, 0xffffd840ffffddc4}, + {0x9532af39, 0xffffd840ffffddc5}, + {0x9532b030, 0xffffd840ffffddc6}, + {0x9532b031, 0xffffd840ffffddc7}, + {0x9532b032, 0xffffd840ffffddc8}, + {0x9532b033, 0xffffd840ffffddc9}, + {0x9532b034, 0xffffd840ffffddca}, + {0x9532b035, 0xffffd840ffffddcb}, + {0x9532b036, 0xffffd840ffffddcc}, + {0x9532b037, 0xffffd840ffffddcd}, + {0x9532b038, 0xffffd840ffffddce}, + {0x9532b039, 0xffffd840ffffddcf}, + {0x9532b130, 0xffffd840ffffddd0}, + {0x9532b131, 0xffffd840ffffddd1}, + {0x9532b132, 0xffffd840ffffddd2}, + {0x9532b133, 0xffffd840ffffddd3}, + {0x9532b134, 0xffffd840ffffddd4}, + {0x9532b135, 0xffffd840ffffddd5}, + {0x9532b136, 0xffffd840ffffddd6}, + {0x9532b137, 0xffffd840ffffddd7}, + {0x9532b138, 0xffffd840ffffddd8}, + {0x9532b139, 0xffffd840ffffddd9}, + {0x9532b230, 0xffffd840ffffddda}, + {0x9532b231, 0xffffd840ffffdddb}, + {0x9532b232, 0xffffd840ffffdddc}, + {0x9532b233, 0xffffd840ffffdddd}, + {0x9532b234, 0xffffd840ffffddde}, + {0x9532b235, 0xffffd840ffffdddf}, + {0x9532b236, 0xffffd840ffffdde0}, + {0x9532b237, 0xffffd840ffffdde1}, + {0x9532b238, 0xffffd840ffffdde2}, + {0x9532b239, 0xffffd840ffffdde3}, + {0x9532b330, 0xffffd840ffffdde4}, + {0x9532b331, 0xffffd840ffffdde5}, + {0x9532b332, 0xffffd840ffffdde6}, + {0x9532b333, 0xffffd840ffffdde7}, + {0x9532b334, 0xffffd840ffffdde8}, + {0x9532b335, 0xffffd840ffffdde9}, + {0x9532b336, 0xffffd840ffffddea}, + {0x9532b337, 0xffffd840ffffddeb}, + {0x9532b338, 0xffffd840ffffddec}, + {0x9532b339, 0xffffd840ffffdded}, + {0x9532b430, 0xffffd840ffffddee}, + {0x9532b431, 0xffffd840ffffddef}, + {0x9532b432, 0xffffd840ffffddf0}, + {0x9532b433, 0xffffd840ffffddf1}, + {0x9532b434, 0xffffd840ffffddf2}, + {0x9532b435, 0xffffd840ffffddf3}, + {0x9532b436, 0xffffd840ffffddf4}, + {0x9532b437, 0xffffd840ffffddf5}, + {0x9532b438, 0xffffd840ffffddf6}, + {0x9532b439, 0xffffd840ffffddf7}, + {0x9532b530, 0xffffd840ffffddf8}, + {0x9532b531, 0xffffd840ffffddf9}, + {0x9532b532, 0xffffd840ffffddfa}, + {0x9532b533, 0xffffd840ffffddfb}, + {0x9532b534, 0xffffd840ffffddfc}, + {0x9532b535, 0xffffd840ffffddfd}, + {0x9532b536, 0xffffd840ffffddfe}, + {0x9532b537, 0xffffd840ffffddff}, + {0x9532b538, 0xffffd840ffffde00}, + {0x9532b539, 0xffffd840ffffde01}, + {0x9532b630, 0xffffd840ffffde02}, + {0x9532b631, 0xffffd840ffffde03}, + {0x9532b632, 0xffffd840ffffde04}, + {0x9532b633, 0xffffd840ffffde05}, + {0x9532b634, 0xffffd840ffffde06}, + {0x9532b635, 0xffffd840ffffde07}, + {0x9532b636, 0xffffd840ffffde08}, + {0x9532b637, 0xffffd840ffffde09}, + {0x9532b638, 0xffffd840ffffde0a}, + {0x9532b639, 0xffffd840ffffde0b}, + {0x9532b730, 0xffffd840ffffde0c}, + {0x9532b731, 0xffffd840ffffde0d}, + {0x9532b732, 0xffffd840ffffde0e}, + {0x9532b733, 0xffffd840ffffde0f}, + {0x9532b734, 0xffffd840ffffde10}, + {0x9532b735, 0xffffd840ffffde11}, + {0x9532b736, 0xffffd840ffffde12}, + {0x9532b737, 0xffffd840ffffde13}, + {0x9532b738, 0xffffd840ffffde14}, + {0x9532b739, 0xffffd840ffffde15}, + {0x9532b830, 0xffffd840ffffde16}, + {0x9532b831, 0xffffd840ffffde17}, + {0x9532b832, 0xffffd840ffffde18}, + {0x9532b833, 0xffffd840ffffde19}, + {0x9532b834, 0xffffd840ffffde1a}, + {0x9532b835, 0xffffd840ffffde1b}, + {0x9532b836, 0xffffd840ffffde1c}, + {0x9532b837, 0xffffd840ffffde1d}, + {0x9532b838, 0xffffd840ffffde1e}, + {0x9532b839, 0xffffd840ffffde1f}, + {0x9532b930, 0xffffd840ffffde20}, + {0x9532b931, 0xffffd840ffffde21}, + {0x9532b932, 0xffffd840ffffde22}, + {0x9532b933, 0xffffd840ffffde23}, + {0x9532b934, 0xffffd840ffffde24}, + {0x9532b935, 0xffffd840ffffde25}, + {0x9532b936, 0xffffd840ffffde26}, + {0x9532b937, 0xffffd840ffffde27}, + {0x9532b938, 0xffffd840ffffde28}, + {0x9532b939, 0xffffd840ffffde29}, + {0x9532ba30, 0xffffd840ffffde2a}, + {0x9532ba31, 0xffffd840ffffde2b}, + {0x9532ba32, 0xffffd840ffffde2c}, + {0x9532ba33, 0xffffd840ffffde2d}, + {0x9532ba34, 0xffffd840ffffde2e}, + {0x9532ba35, 0xffffd840ffffde2f}, + {0x9532ba36, 0xffffd840ffffde30}, + {0x9532ba37, 0xffffd840ffffde31}, + {0x9532ba38, 0xffffd840ffffde32}, + {0x9532ba39, 0xffffd840ffffde33}, + {0x9532bb30, 0xffffd840ffffde34}, + {0x9532bb31, 0xffffd840ffffde35}, + {0x9532bb32, 0xffffd840ffffde36}, + {0x9532bb33, 0xffffd840ffffde37}, + {0x9532bb34, 0xffffd840ffffde38}, + {0x9532bb35, 0xffffd840ffffde39}, + {0x9532bb36, 0xffffd840ffffde3a}, + {0x9532bb37, 0xffffd840ffffde3b}, + {0x9532bb38, 0xffffd840ffffde3c}, + {0x9532bb39, 0xffffd840ffffde3d}, + {0x9532bc30, 0xffffd840ffffde3e}, + {0x9532bc31, 0xffffd840ffffde3f}, + {0x9532bc32, 0xffffd840ffffde40}, + {0x9532bc33, 0xffffd840ffffde41}, + {0x9532bc34, 0xffffd840ffffde42}, + {0x9532bc35, 0xffffd840ffffde43}, + {0x9532bc36, 0xffffd840ffffde44}, + {0x9532bc37, 0xffffd840ffffde45}, + {0x9532bc38, 0xffffd840ffffde46}, + {0x9532bc39, 0xffffd840ffffde47}, + {0x9532bd30, 0xffffd840ffffde48}, + {0x9532bd31, 0xffffd840ffffde49}, + {0x9532bd32, 0xffffd840ffffde4a}, + {0x9532bd33, 0xffffd840ffffde4b}, + {0x9532bd34, 0xffffd840ffffde4c}, + {0x9532bd35, 0xffffd840ffffde4d}, + {0x9532bd36, 0xffffd840ffffde4e}, + {0x9532bd37, 0xffffd840ffffde4f}, + {0x9532bd38, 0xffffd840ffffde50}, + {0x9532bd39, 0xffffd840ffffde51}, + {0x9532be30, 0xffffd840ffffde52}, + {0x9532be31, 0xffffd840ffffde53}, + {0x9532be32, 0xffffd840ffffde54}, + {0x9532be33, 0xffffd840ffffde55}, + {0x9532be34, 0xffffd840ffffde56}, + {0x9532be35, 0xffffd840ffffde57}, + {0x9532be36, 0xffffd840ffffde58}, + {0x9532be37, 0xffffd840ffffde59}, + {0x9532be38, 0xffffd840ffffde5a}, + {0x9532be39, 0xffffd840ffffde5b}, + {0x9532bf30, 0xffffd840ffffde5c}, + {0x9532bf31, 0xffffd840ffffde5d}, + {0x9532bf32, 0xffffd840ffffde5e}, + {0x9532bf33, 0xffffd840ffffde5f}, + {0x9532bf34, 0xffffd840ffffde60}, + {0x9532bf35, 0xffffd840ffffde61}, + {0x9532bf36, 0xffffd840ffffde62}, + {0x9532bf37, 0xffffd840ffffde63}, + {0x9532bf38, 0xffffd840ffffde64}, + {0x9532bf39, 0xffffd840ffffde65}, + {0x9532c030, 0xffffd840ffffde66}, + {0x9532c031, 0xffffd840ffffde67}, + {0x9532c032, 0xffffd840ffffde68}, + {0x9532c033, 0xffffd840ffffde69}, + {0x9532c034, 0xffffd840ffffde6a}, + {0x9532c035, 0xffffd840ffffde6b}, + {0x9532c036, 0xffffd840ffffde6c}, + {0x9532c037, 0xffffd840ffffde6d}, + {0x9532c038, 0xffffd840ffffde6e}, + {0x9532c039, 0xffffd840ffffde6f}, + {0x9532c130, 0xffffd840ffffde70}, + {0x9532c131, 0xffffd840ffffde71}, + {0x9532c132, 0xffffd840ffffde72}, + {0x9532c133, 0xffffd840ffffde73}, + {0x9532c134, 0xffffd840ffffde74}, + {0x9532c135, 0xffffd840ffffde75}, + {0x9532c136, 0xffffd840ffffde76}, + {0x9532c137, 0xffffd840ffffde77}, + {0x9532c138, 0xffffd840ffffde78}, + {0x9532c139, 0xffffd840ffffde79}, + {0x9532c230, 0xffffd840ffffde7a}, + {0x9532c231, 0xffffd840ffffde7b}, + {0x9532c232, 0xffffd840ffffde7c}, + {0x9532c233, 0xffffd840ffffde7d}, + {0x9532c234, 0xffffd840ffffde7e}, + {0x9532c235, 0xffffd840ffffde7f}, + {0x9532c236, 0xffffd840ffffde80}, + {0x9532c237, 0xffffd840ffffde81}, + {0x9532c238, 0xffffd840ffffde82}, + {0x9532c239, 0xffffd840ffffde83}, + {0x9532c330, 0xffffd840ffffde84}, + {0x9532c331, 0xffffd840ffffde85}, + {0x9532c332, 0xffffd840ffffde86}, + {0x9532c333, 0xffffd840ffffde87}, + {0x9532c334, 0xffffd840ffffde88}, + {0x9532c335, 0xffffd840ffffde89}, + {0x9532c336, 0xffffd840ffffde8a}, + {0x9532c337, 0xffffd840ffffde8b}, + {0x9532c338, 0xffffd840ffffde8c}, + {0x9532c339, 0xffffd840ffffde8d}, + {0x9532c430, 0xffffd840ffffde8e}, + {0x9532c431, 0xffffd840ffffde8f}, + {0x9532c432, 0xffffd840ffffde90}, + {0x9532c433, 0xffffd840ffffde91}, + {0x9532c434, 0xffffd840ffffde92}, + {0x9532c435, 0xffffd840ffffde93}, + {0x9532c436, 0xffffd840ffffde94}, + {0x9532c437, 0xffffd840ffffde95}, + {0x9532c438, 0xffffd840ffffde96}, + {0x9532c439, 0xffffd840ffffde97}, + {0x9532c530, 0xffffd840ffffde98}, + {0x9532c531, 0xffffd840ffffde99}, + {0x9532c532, 0xffffd840ffffde9a}, + {0x9532c533, 0xffffd840ffffde9b}, + {0x9532c534, 0xffffd840ffffde9c}, + {0x9532c535, 0xffffd840ffffde9d}, + {0x9532c536, 0xffffd840ffffde9e}, + {0x9532c537, 0xffffd840ffffde9f}, + {0x9532c538, 0xffffd840ffffdea0}, + {0x9532c539, 0xffffd840ffffdea1}, + {0x9532c630, 0xffffd840ffffdea2}, + {0x9532c631, 0xffffd840ffffdea3}, + {0x9532c632, 0xffffd840ffffdea4}, + {0x9532c633, 0xffffd840ffffdea5}, + {0x9532c634, 0xffffd840ffffdea6}, + {0x9532c635, 0xffffd840ffffdea7}, + {0x9532c636, 0xffffd840ffffdea8}, + {0x9532c637, 0xffffd840ffffdea9}, + {0x9532c638, 0xffffd840ffffdeaa}, + {0x9532c639, 0xffffd840ffffdeab}, + {0x9532c730, 0xffffd840ffffdeac}, + {0x9532c731, 0xffffd840ffffdead}, + {0x9532c732, 0xffffd840ffffdeae}, + {0x9532c733, 0xffffd840ffffdeaf}, + {0x9532c734, 0xffffd840ffffdeb0}, + {0x9532c735, 0xffffd840ffffdeb1}, + {0x9532c736, 0xffffd840ffffdeb2}, + {0x9532c737, 0xffffd840ffffdeb3}, + {0x9532c738, 0xffffd840ffffdeb4}, + {0x9532c739, 0xffffd840ffffdeb5}, + {0x9532c830, 0xffffd840ffffdeb6}, + {0x9532c831, 0xffffd840ffffdeb7}, + {0x9532c832, 0xffffd840ffffdeb8}, + {0x9532c833, 0xffffd840ffffdeb9}, + {0x9532c834, 0xffffd840ffffdeba}, + {0x9532c835, 0xffffd840ffffdebb}, + {0x9532c836, 0xffffd840ffffdebc}, + {0x9532c837, 0xffffd840ffffdebd}, + {0x9532c838, 0xffffd840ffffdebe}, + {0x9532c839, 0xffffd840ffffdebf}, + {0x9532c930, 0xffffd840ffffdec0}, + {0x9532c931, 0xffffd840ffffdec1}, + {0x9532c932, 0xffffd840ffffdec2}, + {0x9532c933, 0xffffd840ffffdec3}, + {0x9532c934, 0xffffd840ffffdec4}, + {0x9532c935, 0xffffd840ffffdec5}, + {0x9532c936, 0xffffd840ffffdec6}, + {0x9532c937, 0xffffd840ffffdec7}, + {0x9532c938, 0xffffd840ffffdec8}, + {0x9532c939, 0xffffd840ffffdec9}, + {0x9532ca30, 0xffffd840ffffdeca}, + {0x9532ca31, 0xffffd840ffffdecb}, + {0x9532ca32, 0xffffd840ffffdecc}, + {0x9532ca33, 0xffffd840ffffdecd}, + {0x9532ca34, 0xffffd840ffffdece}, + {0x9532ca35, 0xffffd840ffffdecf}, + {0x9532ca36, 0xffffd840ffffded0}, + {0x9532ca37, 0xffffd840ffffded1}, + {0x9532ca38, 0xffffd840ffffded2}, + {0x9532ca39, 0xffffd840ffffded3}, + {0x9532cb30, 0xffffd840ffffded4}, + {0x9532cb31, 0xffffd840ffffded5}, + {0x9532cb32, 0xffffd840ffffded6}, + {0x9532cb33, 0xffffd840ffffded7}, + {0x9532cb34, 0xffffd840ffffded8}, + {0x9532cb35, 0xffffd840ffffded9}, + {0x9532cb36, 0xffffd840ffffdeda}, + {0x9532cb37, 0xffffd840ffffdedb}, + {0x9532cb38, 0xffffd840ffffdedc}, + {0x9532cb39, 0xffffd840ffffdedd}, + {0x9532cc30, 0xffffd840ffffdede}, + {0x9532cc31, 0xffffd840ffffdedf}, + {0x9532cc32, 0xffffd840ffffdee0}, + {0x9532cc33, 0xffffd840ffffdee1}, + {0x9532cc34, 0xffffd840ffffdee2}, + {0x9532cc35, 0xffffd840ffffdee3}, + {0x9532cc36, 0xffffd840ffffdee4}, + {0x9532cc37, 0xffffd840ffffdee5}, + {0x9532cc38, 0xffffd840ffffdee6}, + {0x9532cc39, 0xffffd840ffffdee7}, + {0x9532cd30, 0xffffd840ffffdee8}, + {0x9532cd31, 0xffffd840ffffdee9}, + {0x9532cd32, 0xffffd840ffffdeea}, + {0x9532cd33, 0xffffd840ffffdeeb}, + {0x9532cd34, 0xffffd840ffffdeec}, + {0x9532cd35, 0xffffd840ffffdeed}, + {0x9532cd36, 0xffffd840ffffdeee}, + {0x9532cd37, 0xffffd840ffffdeef}, + {0x9532cd38, 0xffffd840ffffdef0}, + {0x9532cd39, 0xffffd840ffffdef1}, + {0x9532ce30, 0xffffd840ffffdef2}, + {0x9532ce31, 0xffffd840ffffdef3}, + {0x9532ce32, 0xffffd840ffffdef4}, + {0x9532ce33, 0xffffd840ffffdef5}, + {0x9532ce34, 0xffffd840ffffdef6}, + {0x9532ce35, 0xffffd840ffffdef7}, + {0x9532ce36, 0xffffd840ffffdef8}, + {0x9532ce37, 0xffffd840ffffdef9}, + {0x9532ce38, 0xffffd840ffffdefa}, + {0x9532ce39, 0xffffd840ffffdefb}, + {0x9532cf30, 0xffffd840ffffdefc}, + {0x9532cf31, 0xffffd840ffffdefd}, + {0x9532cf32, 0xffffd840ffffdefe}, + {0x9532cf33, 0xffffd840ffffdeff}, + {0x9532cf34, 0xffffd840ffffdf00}, + {0x9532cf35, 0xffffd840ffffdf01}, + {0x9532cf36, 0xffffd840ffffdf02}, + {0x9532cf37, 0xffffd840ffffdf03}, + {0x9532cf38, 0xffffd840ffffdf04}, + {0x9532cf39, 0xffffd840ffffdf05}, + {0x9532d030, 0xffffd840ffffdf06}, + {0x9532d031, 0xffffd840ffffdf07}, + {0x9532d032, 0xffffd840ffffdf08}, + {0x9532d033, 0xffffd840ffffdf09}, + {0x9532d034, 0xffffd840ffffdf0a}, + {0x9532d035, 0xffffd840ffffdf0b}, + {0x9532d036, 0xffffd840ffffdf0c}, + {0x9532d037, 0xffffd840ffffdf0d}, + {0x9532d038, 0xffffd840ffffdf0e}, + {0x9532d039, 0xffffd840ffffdf0f}, + {0x9532d130, 0xffffd840ffffdf10}, + {0x9532d131, 0xffffd840ffffdf11}, + {0x9532d132, 0xffffd840ffffdf12}, + {0x9532d133, 0xffffd840ffffdf13}, + {0x9532d134, 0xffffd840ffffdf14}, + {0x9532d135, 0xffffd840ffffdf15}, + {0x9532d136, 0xffffd840ffffdf16}, + {0x9532d137, 0xffffd840ffffdf17}, + {0x9532d138, 0xffffd840ffffdf18}, + {0x9532d139, 0xffffd840ffffdf19}, + {0x9532d230, 0xffffd840ffffdf1a}, + {0x9532d231, 0xffffd840ffffdf1b}, + {0x9532d232, 0xffffd840ffffdf1c}, + {0x9532d233, 0xffffd840ffffdf1d}, + {0x9532d234, 0xffffd840ffffdf1e}, + {0x9532d235, 0xffffd840ffffdf1f}, + {0x9532d236, 0xffffd840ffffdf20}, + {0x9532d237, 0xffffd840ffffdf21}, + {0x9532d238, 0xffffd840ffffdf22}, + {0x9532d239, 0xffffd840ffffdf23}, + {0x9532d330, 0xffffd840ffffdf24}, + {0x9532d331, 0xffffd840ffffdf25}, + {0x9532d332, 0xffffd840ffffdf26}, + {0x9532d333, 0xffffd840ffffdf27}, + {0x9532d334, 0xffffd840ffffdf28}, + {0x9532d335, 0xffffd840ffffdf29}, + {0x9532d336, 0xffffd840ffffdf2a}, + {0x9532d337, 0xffffd840ffffdf2b}, + {0x9532d338, 0xffffd840ffffdf2c}, + {0x9532d339, 0xffffd840ffffdf2d}, + {0x9532d430, 0xffffd840ffffdf2e}, + {0x9532d431, 0xffffd840ffffdf2f}, + {0x9532d432, 0xffffd840ffffdf30}, + {0x9532d433, 0xffffd840ffffdf31}, + {0x9532d434, 0xffffd840ffffdf32}, + {0x9532d435, 0xffffd840ffffdf33}, + {0x9532d436, 0xffffd840ffffdf34}, + {0x9532d437, 0xffffd840ffffdf35}, + {0x9532d438, 0xffffd840ffffdf36}, + {0x9532d439, 0xffffd840ffffdf37}, + {0x9532d530, 0xffffd840ffffdf38}, + {0x9532d531, 0xffffd840ffffdf39}, + {0x9532d532, 0xffffd840ffffdf3a}, + {0x9532d533, 0xffffd840ffffdf3b}, + {0x9532d534, 0xffffd840ffffdf3c}, + {0x9532d535, 0xffffd840ffffdf3d}, + {0x9532d536, 0xffffd840ffffdf3e}, + {0x9532d537, 0xffffd840ffffdf3f}, + {0x9532d538, 0xffffd840ffffdf40}, + {0x9532d539, 0xffffd840ffffdf41}, + {0x9532d630, 0xffffd840ffffdf42}, + {0x9532d631, 0xffffd840ffffdf43}, + {0x9532d632, 0xffffd840ffffdf44}, + {0x9532d633, 0xffffd840ffffdf45}, + {0x9532d634, 0xffffd840ffffdf46}, + {0x9532d635, 0xffffd840ffffdf47}, + {0x9532d636, 0xffffd840ffffdf48}, + {0x9532d637, 0xffffd840ffffdf49}, + {0x9532d638, 0xffffd840ffffdf4a}, + {0x9532d639, 0xffffd840ffffdf4b}, + {0x9532d730, 0xffffd840ffffdf4c}, + {0x9532d731, 0xffffd840ffffdf4d}, + {0x9532d732, 0xffffd840ffffdf4e}, + {0x9532d733, 0xffffd840ffffdf4f}, + {0x9532d734, 0xffffd840ffffdf50}, + {0x9532d735, 0xffffd840ffffdf51}, + {0x9532d736, 0xffffd840ffffdf52}, + {0x9532d737, 0xffffd840ffffdf53}, + {0x9532d738, 0xffffd840ffffdf54}, + {0x9532d739, 0xffffd840ffffdf55}, + {0x9532d830, 0xffffd840ffffdf56}, + {0x9532d831, 0xffffd840ffffdf57}, + {0x9532d832, 0xffffd840ffffdf58}, + {0x9532d833, 0xffffd840ffffdf59}, + {0x9532d834, 0xffffd840ffffdf5a}, + {0x9532d835, 0xffffd840ffffdf5b}, + {0x9532d836, 0xffffd840ffffdf5c}, + {0x9532d837, 0xffffd840ffffdf5d}, + {0x9532d838, 0xffffd840ffffdf5e}, + {0x9532d839, 0xffffd840ffffdf5f}, + {0x9532d930, 0xffffd840ffffdf60}, + {0x9532d931, 0xffffd840ffffdf61}, + {0x9532d932, 0xffffd840ffffdf62}, + {0x9532d933, 0xffffd840ffffdf63}, + {0x9532d934, 0xffffd840ffffdf64}, + {0x9532d935, 0xffffd840ffffdf65}, + {0x9532d936, 0xffffd840ffffdf66}, + {0x9532d937, 0xffffd840ffffdf67}, + {0x9532d938, 0xffffd840ffffdf68}, + {0x9532d939, 0xffffd840ffffdf69}, + {0x9532da30, 0xffffd840ffffdf6a}, + {0x9532da31, 0xffffd840ffffdf6b}, + {0x9532da32, 0xffffd840ffffdf6c}, + {0x9532da33, 0xffffd840ffffdf6d}, + {0x9532da34, 0xffffd840ffffdf6e}, + {0x9532da35, 0xffffd840ffffdf6f}, + {0x9532da36, 0xffffd840ffffdf70}, + {0x9532da37, 0xffffd840ffffdf71}, + {0x9532da38, 0xffffd840ffffdf72}, + {0x9532da39, 0xffffd840ffffdf73}, + {0x9532db30, 0xffffd840ffffdf74}, + {0x9532db31, 0xffffd840ffffdf75}, + {0x9532db32, 0xffffd840ffffdf76}, + {0x9532db33, 0xffffd840ffffdf77}, + {0x9532db34, 0xffffd840ffffdf78}, + {0x9532db35, 0xffffd840ffffdf79}, + {0x9532db36, 0xffffd840ffffdf7a}, + {0x9532db37, 0xffffd840ffffdf7b}, + {0x9532db38, 0xffffd840ffffdf7c}, + {0x9532db39, 0xffffd840ffffdf7d}, + {0x9532dc30, 0xffffd840ffffdf7e}, + {0x9532dc31, 0xffffd840ffffdf7f}, + {0x9532dc32, 0xffffd840ffffdf80}, + {0x9532dc33, 0xffffd840ffffdf81}, + {0x9532dc34, 0xffffd840ffffdf82}, + {0x9532dc35, 0xffffd840ffffdf83}, + {0x9532dc36, 0xffffd840ffffdf84}, + {0x9532dc37, 0xffffd840ffffdf85}, + {0x9532dc38, 0xffffd840ffffdf86}, + {0x9532dc39, 0xffffd840ffffdf87}, + {0x9532dd30, 0xffffd840ffffdf88}, + {0x9532dd31, 0xffffd840ffffdf89}, + {0x9532dd32, 0xffffd840ffffdf8a}, + {0x9532dd33, 0xffffd840ffffdf8b}, + {0x9532dd34, 0xffffd840ffffdf8c}, + {0x9532dd35, 0xffffd840ffffdf8d}, + {0x9532dd36, 0xffffd840ffffdf8e}, + {0x9532dd37, 0xffffd840ffffdf8f}, + {0x9532dd38, 0xffffd840ffffdf90}, + {0x9532dd39, 0xffffd840ffffdf91}, + {0x9532de30, 0xffffd840ffffdf92}, + {0x9532de31, 0xffffd840ffffdf93}, + {0x9532de32, 0xffffd840ffffdf94}, + {0x9532de33, 0xffffd840ffffdf95}, + {0x9532de34, 0xffffd840ffffdf96}, + {0x9532de35, 0xffffd840ffffdf97}, + {0x9532de36, 0xffffd840ffffdf98}, + {0x9532de37, 0xffffd840ffffdf99}, + {0x9532de38, 0xffffd840ffffdf9a}, + {0x9532de39, 0xffffd840ffffdf9b}, + {0x9532df30, 0xffffd840ffffdf9c}, + {0x9532df31, 0xffffd840ffffdf9d}, + {0x9532df32, 0xffffd840ffffdf9e}, + {0x9532df33, 0xffffd840ffffdf9f}, + {0x9532df34, 0xffffd840ffffdfa0}, + {0x9532df35, 0xffffd840ffffdfa1}, + {0x9532df36, 0xffffd840ffffdfa2}, + {0x9532df37, 0xffffd840ffffdfa3}, + {0x9532df38, 0xffffd840ffffdfa4}, + {0x9532df39, 0xffffd840ffffdfa5}, + {0x9532e030, 0xffffd840ffffdfa6}, + {0x9532e031, 0xffffd840ffffdfa7}, + {0x9532e032, 0xffffd840ffffdfa8}, + {0x9532e033, 0xffffd840ffffdfa9}, + {0x9532e034, 0xffffd840ffffdfaa}, + {0x9532e035, 0xffffd840ffffdfab}, + {0x9532e036, 0xffffd840ffffdfac}, + {0x9532e037, 0xffffd840ffffdfad}, + {0x9532e038, 0xffffd840ffffdfae}, + {0x9532e039, 0xffffd840ffffdfaf}, + {0x9532e130, 0xffffd840ffffdfb0}, + {0x9532e131, 0xffffd840ffffdfb1}, + {0x9532e132, 0xffffd840ffffdfb2}, + {0x9532e133, 0xffffd840ffffdfb3}, + {0x9532e134, 0xffffd840ffffdfb4}, + {0x9532e135, 0xffffd840ffffdfb5}, + {0x9532e136, 0xffffd840ffffdfb6}, + {0x9532e137, 0xffffd840ffffdfb7}, + {0x9532e138, 0xffffd840ffffdfb8}, + {0x9532e139, 0xffffd840ffffdfb9}, + {0x9532e230, 0xffffd840ffffdfba}, + {0x9532e231, 0xffffd840ffffdfbb}, + {0x9532e232, 0xffffd840ffffdfbc}, + {0x9532e233, 0xffffd840ffffdfbd}, + {0x9532e234, 0xffffd840ffffdfbe}, + {0x9532e235, 0xffffd840ffffdfbf}, + {0x9532e236, 0xffffd840ffffdfc0}, + {0x9532e237, 0xffffd840ffffdfc1}, + {0x9532e238, 0xffffd840ffffdfc2}, + {0x9532e239, 0xffffd840ffffdfc3}, + {0x9532e330, 0xffffd840ffffdfc4}, + {0x9532e331, 0xffffd840ffffdfc5}, + {0x9532e332, 0xffffd840ffffdfc6}, + {0x9532e333, 0xffffd840ffffdfc7}, + {0x9532e334, 0xffffd840ffffdfc8}, + {0x9532e335, 0xffffd840ffffdfc9}, + {0x9532e336, 0xffffd840ffffdfca}, + {0x9532e337, 0xffffd840ffffdfcb}, + {0x9532e338, 0xffffd840ffffdfcc}, + {0x9532e339, 0xffffd840ffffdfcd}, + {0x9532e430, 0xffffd840ffffdfce}, + {0x9532e431, 0xffffd840ffffdfcf}, + {0x9532e432, 0xffffd840ffffdfd0}, + {0x9532e433, 0xffffd840ffffdfd1}, + {0x9532e434, 0xffffd840ffffdfd2}, + {0x9532e435, 0xffffd840ffffdfd3}, + {0x9532e436, 0xffffd840ffffdfd4}, + {0x9532e437, 0xffffd840ffffdfd5}, + {0x9532e438, 0xffffd840ffffdfd6}, + {0x9532e439, 0xffffd840ffffdfd7}, + {0x9532e530, 0xffffd840ffffdfd8}, + {0x9532e531, 0xffffd840ffffdfd9}, + {0x9532e532, 0xffffd840ffffdfda}, + {0x9532e533, 0xffffd840ffffdfdb}, + {0x9532e534, 0xffffd840ffffdfdc}, + {0x9532e535, 0xffffd840ffffdfdd}, + {0x9532e536, 0xffffd840ffffdfde}, + {0x9532e537, 0xffffd840ffffdfdf}, + {0x9532e538, 0xffffd840ffffdfe0}, + {0x9532e539, 0xffffd840ffffdfe1}, + {0x9532e630, 0xffffd840ffffdfe2}, + {0x9532e631, 0xffffd840ffffdfe3}, + {0x9532e632, 0xffffd840ffffdfe4}, + {0x9532e633, 0xffffd840ffffdfe5}, + {0x9532e634, 0xffffd840ffffdfe6}, + {0x9532e635, 0xffffd840ffffdfe7}, + {0x9532e636, 0xffffd840ffffdfe8}, + {0x9532e637, 0xffffd840ffffdfe9}, + {0x9532e638, 0xffffd840ffffdfea}, + {0x9532e639, 0xffffd840ffffdfeb}, + {0x9532e730, 0xffffd840ffffdfec}, + {0x9532e731, 0xffffd840ffffdfed}, + {0x9532e732, 0xffffd840ffffdfee}, + {0x9532e733, 0xffffd840ffffdfef}, + {0x9532e734, 0xffffd840ffffdff0}, + {0x9532e735, 0xffffd840ffffdff1}, + {0x9532e736, 0xffffd840ffffdff2}, + {0x9532e737, 0xffffd840ffffdff3}, + {0x9532e738, 0xffffd840ffffdff4}, + {0x9532e739, 0xffffd840ffffdff5}, + {0x9532e830, 0xffffd840ffffdff6}, + {0x9532e831, 0xffffd840ffffdff7}, + {0x9532e832, 0xffffd840ffffdff8}, + {0x9532e833, 0xffffd840ffffdff9}, + {0x9532e834, 0xffffd840ffffdffa}, + {0x9532e835, 0xffffd840ffffdffb}, + {0x9532e836, 0xffffd840ffffdffc}, + {0x9532e837, 0xffffd840ffffdffd}, + {0x9532e838, 0xffffd840ffffdffe}, + {0x9532e839, 0xffffd840ffffdfff}, + {0x9532e930, 0xffffd841ffffdc00}, + {0x9532e931, 0xffffd841ffffdc01}, + {0x9532e932, 0xffffd841ffffdc02}, + {0x9532e933, 0xffffd841ffffdc03}, + {0x9532e934, 0xffffd841ffffdc04}, + {0x9532e935, 0xffffd841ffffdc05}, + {0x9532e936, 0xffffd841ffffdc06}, + {0x9532e937, 0xffffd841ffffdc07}, + {0x9532e938, 0xffffd841ffffdc08}, + {0x9532e939, 0xffffd841ffffdc09}, + {0x9532ea30, 0xffffd841ffffdc0a}, + {0x9532ea31, 0xffffd841ffffdc0b}, + {0x9532ea32, 0xffffd841ffffdc0c}, + {0x9532ea33, 0xffffd841ffffdc0d}, + {0x9532ea34, 0xffffd841ffffdc0e}, + {0x9532ea35, 0xffffd841ffffdc0f}, + {0x9532ea36, 0xffffd841ffffdc10}, + {0x9532ea37, 0xffffd841ffffdc11}, + {0x9532ea38, 0xffffd841ffffdc12}, + {0x9532ea39, 0xffffd841ffffdc13}, + {0x9532eb30, 0xffffd841ffffdc14}, + {0x9532eb31, 0xffffd841ffffdc15}, + {0x9532eb32, 0xffffd841ffffdc16}, + {0x9532eb33, 0xffffd841ffffdc17}, + {0x9532eb34, 0xffffd841ffffdc18}, + {0x9532eb35, 0xffffd841ffffdc19}, + {0x9532eb36, 0xffffd841ffffdc1a}, + {0x9532eb37, 0xffffd841ffffdc1b}, + {0x9532eb38, 0xffffd841ffffdc1c}, + {0x9532eb39, 0xffffd841ffffdc1d}, + {0x9532ec30, 0xffffd841ffffdc1e}, + {0x9532ec31, 0xffffd841ffffdc1f}, + {0x9532ec32, 0xffffd841ffffdc20}, + {0x9532ec33, 0xffffd841ffffdc21}, + {0x9532ec34, 0xffffd841ffffdc22}, + {0x9532ec35, 0xffffd841ffffdc23}, + {0x9532ec36, 0xffffd841ffffdc24}, + {0x9532ec37, 0xffffd841ffffdc25}, + {0x9532ec38, 0xffffd841ffffdc26}, + {0x9532ec39, 0xffffd841ffffdc27}, + {0x9532ed30, 0xffffd841ffffdc28}, + {0x9532ed31, 0xffffd841ffffdc29}, + {0x9532ed32, 0xffffd841ffffdc2a}, + {0x9532ed33, 0xffffd841ffffdc2b}, + {0x9532ed34, 0xffffd841ffffdc2c}, + {0x9532ed35, 0xffffd841ffffdc2d}, + {0x9532ed36, 0xffffd841ffffdc2e}, + {0x9532ed37, 0xffffd841ffffdc2f}, + {0x9532ed38, 0xffffd841ffffdc30}, + {0x9532ed39, 0xffffd841ffffdc31}, + {0x9532ee30, 0xffffd841ffffdc32}, + {0x9532ee31, 0xffffd841ffffdc33}, + {0x9532ee32, 0xffffd841ffffdc34}, + {0x9532ee33, 0xffffd841ffffdc35}, + {0x9532ee34, 0xffffd841ffffdc36}, + {0x9532ee35, 0xffffd841ffffdc37}, + {0x9532ee36, 0xffffd841ffffdc38}, + {0x9532ee37, 0xffffd841ffffdc39}, + {0x9532ee38, 0xffffd841ffffdc3a}, + {0x9532ee39, 0xffffd841ffffdc3b}, + {0x9532ef30, 0xffffd841ffffdc3c}, + {0x9532ef31, 0xffffd841ffffdc3d}, + {0x9532ef32, 0xffffd841ffffdc3e}, + {0x9532ef33, 0xffffd841ffffdc3f}, + {0x9532ef34, 0xffffd841ffffdc40}, + {0x9532ef35, 0xffffd841ffffdc41}, + {0x9532ef36, 0xffffd841ffffdc42}, + {0x9532ef37, 0xffffd841ffffdc43}, + {0x9532ef38, 0xffffd841ffffdc44}, + {0x9532ef39, 0xffffd841ffffdc45}, + {0x9532f030, 0xffffd841ffffdc46}, + {0x9532f031, 0xffffd841ffffdc47}, + {0x9532f032, 0xffffd841ffffdc48}, + {0x9532f033, 0xffffd841ffffdc49}, + {0x9532f034, 0xffffd841ffffdc4a}, + {0x9532f035, 0xffffd841ffffdc4b}, + {0x9532f036, 0xffffd841ffffdc4c}, + {0x9532f037, 0xffffd841ffffdc4d}, + {0x9532f038, 0xffffd841ffffdc4e}, + {0x9532f039, 0xffffd841ffffdc4f}, + {0x9532f130, 0xffffd841ffffdc50}, + {0x9532f131, 0xffffd841ffffdc51}, + {0x9532f132, 0xffffd841ffffdc52}, + {0x9532f133, 0xffffd841ffffdc53}, + {0x9532f134, 0xffffd841ffffdc54}, + {0x9532f135, 0xffffd841ffffdc55}, + {0x9532f136, 0xffffd841ffffdc56}, + {0x9532f137, 0xffffd841ffffdc57}, + {0x9532f138, 0xffffd841ffffdc58}, + {0x9532f139, 0xffffd841ffffdc59}, + {0x9532f230, 0xffffd841ffffdc5a}, + {0x9532f231, 0xffffd841ffffdc5b}, + {0x9532f232, 0xffffd841ffffdc5c}, + {0x9532f233, 0xffffd841ffffdc5d}, + {0x9532f234, 0xffffd841ffffdc5e}, + {0x9532f235, 0xffffd841ffffdc5f}, + {0x9532f236, 0xffffd841ffffdc60}, + {0x9532f237, 0xffffd841ffffdc61}, + {0x9532f238, 0xffffd841ffffdc62}, + {0x9532f239, 0xffffd841ffffdc63}, + {0x9532f330, 0xffffd841ffffdc64}, + {0x9532f331, 0xffffd841ffffdc65}, + {0x9532f332, 0xffffd841ffffdc66}, + {0x9532f333, 0xffffd841ffffdc67}, + {0x9532f334, 0xffffd841ffffdc68}, + {0x9532f335, 0xffffd841ffffdc69}, + {0x9532f336, 0xffffd841ffffdc6a}, + {0x9532f337, 0xffffd841ffffdc6b}, + {0x9532f338, 0xffffd841ffffdc6c}, + {0x9532f339, 0xffffd841ffffdc6d}, + {0x9532f430, 0xffffd841ffffdc6e}, + {0x9532f431, 0xffffd841ffffdc6f}, + {0x9532f432, 0xffffd841ffffdc70}, + {0x9532f433, 0xffffd841ffffdc71}, + {0x9532f434, 0xffffd841ffffdc72}, + {0x9532f435, 0xffffd841ffffdc73}, + {0x9532f436, 0xffffd841ffffdc74}, + {0x9532f437, 0xffffd841ffffdc75}, + {0x9532f438, 0xffffd841ffffdc76}, + {0x9532f439, 0xffffd841ffffdc77}, + {0x9532f530, 0xffffd841ffffdc78}, + {0x9532f531, 0xffffd841ffffdc79}, + {0x9532f532, 0xffffd841ffffdc7a}, + {0x9532f533, 0xffffd841ffffdc7b}, + {0x9532f534, 0xffffd841ffffdc7c}, + {0x9532f535, 0xffffd841ffffdc7d}, + {0x9532f536, 0xffffd841ffffdc7e}, + {0x9532f537, 0xffffd841ffffdc7f}, + {0x9532f538, 0xffffd841ffffdc80}, + {0x9532f539, 0xffffd841ffffdc81}, + {0x9532f630, 0xffffd841ffffdc82}, + {0x9532f631, 0xffffd841ffffdc83}, + {0x9532f632, 0xffffd841ffffdc84}, + {0x9532f633, 0xffffd841ffffdc85}, + {0x9532f634, 0xffffd841ffffdc86}, + {0x9532f635, 0xffffd841ffffdc87}, + {0x9532f636, 0xffffd841ffffdc88}, + {0x9532f637, 0xffffd841ffffdc89}, + {0x9532f638, 0xffffd841ffffdc8a}, + {0x9532f639, 0xffffd841ffffdc8b}, + {0x9532f730, 0xffffd841ffffdc8c}, + {0x9532f731, 0xffffd841ffffdc8d}, + {0x9532f732, 0xffffd841ffffdc8e}, + {0x9532f733, 0xffffd841ffffdc8f}, + {0x9532f734, 0xffffd841ffffdc90}, + {0x9532f735, 0xffffd841ffffdc91}, + {0x9532f736, 0xffffd841ffffdc92}, + {0x9532f737, 0xffffd841ffffdc93}, + {0x9532f738, 0xffffd841ffffdc94}, + {0x9532f739, 0xffffd841ffffdc95}, + {0x9532f830, 0xffffd841ffffdc96}, + {0x9532f831, 0xffffd841ffffdc97}, + {0x9532f832, 0xffffd841ffffdc98}, + {0x9532f833, 0xffffd841ffffdc99}, + {0x9532f834, 0xffffd841ffffdc9a}, + {0x9532f835, 0xffffd841ffffdc9b}, + {0x9532f836, 0xffffd841ffffdc9c}, + {0x9532f837, 0xffffd841ffffdc9d}, + {0x9532f838, 0xffffd841ffffdc9e}, + {0x9532f839, 0xffffd841ffffdc9f}, + {0x9532f930, 0xffffd841ffffdca0}, + {0x9532f931, 0xffffd841ffffdca1}, + {0x9532f932, 0xffffd841ffffdca2}, + {0x9532f933, 0xffffd841ffffdca3}, + {0x9532f934, 0xffffd841ffffdca4}, + {0x9532f935, 0xffffd841ffffdca5}, + {0x9532f936, 0xffffd841ffffdca6}, + {0x9532f937, 0xffffd841ffffdca7}, + {0x9532f938, 0xffffd841ffffdca8}, + {0x9532f939, 0xffffd841ffffdca9}, + {0x9532fa30, 0xffffd841ffffdcaa}, + {0x9532fa31, 0xffffd841ffffdcab}, + {0x9532fa32, 0xffffd841ffffdcac}, + {0x9532fa33, 0xffffd841ffffdcad}, + {0x9532fa34, 0xffffd841ffffdcae}, + {0x9532fa35, 0xffffd841ffffdcaf}, + {0x9532fa36, 0xffffd841ffffdcb0}, + {0x9532fa37, 0xffffd841ffffdcb1}, + {0x9532fa38, 0xffffd841ffffdcb2}, + {0x9532fa39, 0xffffd841ffffdcb3}, + {0x9532fb30, 0xffffd841ffffdcb4}, + {0x9532fb31, 0xffffd841ffffdcb5}, + {0x9532fb32, 0xffffd841ffffdcb6}, + {0x9532fb33, 0xffffd841ffffdcb7}, + {0x9532fb34, 0xffffd841ffffdcb8}, + {0x9532fb35, 0xffffd841ffffdcb9}, + {0x9532fb36, 0xffffd841ffffdcba}, + {0x9532fb37, 0xffffd841ffffdcbb}, + {0x9532fb38, 0xffffd841ffffdcbc}, + {0x9532fb39, 0xffffd841ffffdcbd}, + {0x9532fc30, 0xffffd841ffffdcbe}, + {0x9532fc31, 0xffffd841ffffdcbf}, + {0x9532fc32, 0xffffd841ffffdcc0}, + {0x9532fc33, 0xffffd841ffffdcc1}, + {0x9532fc34, 0xffffd841ffffdcc2}, + {0x9532fc35, 0xffffd841ffffdcc3}, + {0x9532fc36, 0xffffd841ffffdcc4}, + {0x9532fc37, 0xffffd841ffffdcc5}, + {0x9532fc38, 0xffffd841ffffdcc6}, + {0x9532fc39, 0xffffd841ffffdcc7}, + {0x9532fd30, 0xffffd841ffffdcc8}, + {0x9532fd31, 0xffffd841ffffdcc9}, + {0x9532fd32, 0xffffd841ffffdcca}, + {0x9532fd33, 0xffffd841ffffdccb}, + {0x9532fd34, 0xffffd841ffffdccc}, + {0x9532fd35, 0xffffd841ffffdccd}, + {0x9532fd36, 0xffffd841ffffdcce}, + {0x9532fd37, 0xffffd841ffffdccf}, + {0x9532fd38, 0xffffd841ffffdcd0}, + {0x9532fd39, 0xffffd841ffffdcd1}, + {0x9532fe30, 0xffffd841ffffdcd2}, + {0x9532fe31, 0xffffd841ffffdcd3}, + {0x9532fe32, 0xffffd841ffffdcd4}, + {0x9532fe33, 0xffffd841ffffdcd5}, + {0x9532fe34, 0xffffd841ffffdcd6}, + {0x9532fe35, 0xffffd841ffffdcd7}, + {0x9532fe36, 0xffffd841ffffdcd8}, + {0x9532fe37, 0xffffd841ffffdcd9}, + {0x9532fe38, 0xffffd841ffffdcda}, + {0x9532fe39, 0xffffd841ffffdcdb}, + {0x95338130, 0xffffd841ffffdcdc}, + {0x95338131, 0xffffd841ffffdcdd}, + {0x95338132, 0xffffd841ffffdcde}, + {0x95338133, 0xffffd841ffffdcdf}, + {0x95338134, 0xffffd841ffffdce0}, + {0x95338135, 0xffffd841ffffdce1}, + {0x95338136, 0xffffd841ffffdce2}, + {0x95338137, 0xffffd841ffffdce3}, + {0x95338138, 0xffffd841ffffdce4}, + {0x95338139, 0xffffd841ffffdce5}, + {0x95338230, 0xffffd841ffffdce6}, + {0x95338231, 0xffffd841ffffdce7}, + {0x95338232, 0xffffd841ffffdce8}, + {0x95338233, 0xffffd841ffffdce9}, + {0x95338234, 0xffffd841ffffdcea}, + {0x95338235, 0xffffd841ffffdceb}, + {0x95338236, 0xffffd841ffffdcec}, + {0x95338237, 0xffffd841ffffdced}, + {0x95338238, 0xffffd841ffffdcee}, + {0x95338239, 0xffffd841ffffdcef}, + {0x95338330, 0xffffd841ffffdcf0}, + {0x95338331, 0xffffd841ffffdcf1}, + {0x95338332, 0xffffd841ffffdcf2}, + {0x95338333, 0xffffd841ffffdcf3}, + {0x95338334, 0xffffd841ffffdcf4}, + {0x95338335, 0xffffd841ffffdcf5}, + {0x95338336, 0xffffd841ffffdcf6}, + {0x95338337, 0xffffd841ffffdcf7}, + {0x95338338, 0xffffd841ffffdcf8}, + {0x95338339, 0xffffd841ffffdcf9}, + {0x95338430, 0xffffd841ffffdcfa}, + {0x95338431, 0xffffd841ffffdcfb}, + {0x95338432, 0xffffd841ffffdcfc}, + {0x95338433, 0xffffd841ffffdcfd}, + {0x95338434, 0xffffd841ffffdcfe}, + {0x95338435, 0xffffd841ffffdcff}, + {0x95338436, 0xffffd841ffffdd00}, + {0x95338437, 0xffffd841ffffdd01}, + {0x95338438, 0xffffd841ffffdd02}, + {0x95338439, 0xffffd841ffffdd03}, + {0x95338530, 0xffffd841ffffdd04}, + {0x95338531, 0xffffd841ffffdd05}, + {0x95338532, 0xffffd841ffffdd06}, + {0x95338533, 0xffffd841ffffdd07}, + {0x95338534, 0xffffd841ffffdd08}, + {0x95338535, 0xffffd841ffffdd09}, + {0x95338536, 0xffffd841ffffdd0a}, + {0x95338537, 0xffffd841ffffdd0b}, + {0x95338538, 0xffffd841ffffdd0c}, + {0x95338539, 0xffffd841ffffdd0d}, + {0x95338630, 0xffffd841ffffdd0e}, + {0x95338631, 0xffffd841ffffdd0f}, + {0x95338632, 0xffffd841ffffdd10}, + {0x95338633, 0xffffd841ffffdd11}, + {0x95338634, 0xffffd841ffffdd12}, + {0x95338635, 0xffffd841ffffdd13}, + {0x95338636, 0xffffd841ffffdd14}, + {0x95338637, 0xffffd841ffffdd15}, + {0x95338638, 0xffffd841ffffdd16}, + {0x95338639, 0xffffd841ffffdd17}, + {0x95338730, 0xffffd841ffffdd18}, + {0x95338731, 0xffffd841ffffdd19}, + {0x95338732, 0xffffd841ffffdd1a}, + {0x95338733, 0xffffd841ffffdd1b}, + {0x95338734, 0xffffd841ffffdd1c}, + {0x95338735, 0xffffd841ffffdd1d}, + {0x95338736, 0xffffd841ffffdd1e}, + {0x95338737, 0xffffd841ffffdd1f}, + {0x95338738, 0xffffd841ffffdd20}, + {0x95338739, 0xffffd841ffffdd21}, + {0x95338830, 0xffffd841ffffdd22}, + {0x95338831, 0xffffd841ffffdd23}, + {0x95338832, 0xffffd841ffffdd24}, + {0x95338833, 0xffffd841ffffdd25}, + {0x95338834, 0xffffd841ffffdd26}, + {0x95338835, 0xffffd841ffffdd27}, + {0x95338836, 0xffffd841ffffdd28}, + {0x95338837, 0xffffd841ffffdd29}, + {0x95338838, 0xffffd841ffffdd2a}, + {0x95338839, 0xffffd841ffffdd2b}, + {0x95338930, 0xffffd841ffffdd2c}, + {0x95338931, 0xffffd841ffffdd2d}, + {0x95338932, 0xffffd841ffffdd2e}, + {0x95338933, 0xffffd841ffffdd2f}, + {0x95338934, 0xffffd841ffffdd30}, + {0x95338935, 0xffffd841ffffdd31}, + {0x95338936, 0xffffd841ffffdd32}, + {0x95338937, 0xffffd841ffffdd33}, + {0x95338938, 0xffffd841ffffdd34}, + {0x95338939, 0xffffd841ffffdd35}, + {0x95338a30, 0xffffd841ffffdd36}, + {0x95338a31, 0xffffd841ffffdd37}, + {0x95338a32, 0xffffd841ffffdd38}, + {0x95338a33, 0xffffd841ffffdd39}, + {0x95338a34, 0xffffd841ffffdd3a}, + {0x95338a35, 0xffffd841ffffdd3b}, + {0x95338a36, 0xffffd841ffffdd3c}, + {0x95338a37, 0xffffd841ffffdd3d}, + {0x95338a38, 0xffffd841ffffdd3e}, + {0x95338a39, 0xffffd841ffffdd3f}, + {0x95338b30, 0xffffd841ffffdd40}, + {0x95338b31, 0xffffd841ffffdd41}, + {0x95338b32, 0xffffd841ffffdd42}, + {0x95338b33, 0xffffd841ffffdd43}, + {0x95338b34, 0xffffd841ffffdd44}, + {0x95338b35, 0xffffd841ffffdd45}, + {0x95338b36, 0xffffd841ffffdd46}, + {0x95338b37, 0xffffd841ffffdd47}, + {0x95338b38, 0xffffd841ffffdd48}, + {0x95338b39, 0xffffd841ffffdd49}, + {0x95338c30, 0xffffd841ffffdd4a}, + {0x95338c31, 0xffffd841ffffdd4b}, + {0x95338c32, 0xffffd841ffffdd4c}, + {0x95338c33, 0xffffd841ffffdd4d}, + {0x95338c34, 0xffffd841ffffdd4e}, + {0x95338c35, 0xffffd841ffffdd4f}, + {0x95338c36, 0xffffd841ffffdd50}, + {0x95338c37, 0xffffd841ffffdd51}, + {0x95338c38, 0xffffd841ffffdd52}, + {0x95338c39, 0xffffd841ffffdd53}, + {0x95338d30, 0xffffd841ffffdd54}, + {0x95338d31, 0xffffd841ffffdd55}, + {0x95338d32, 0xffffd841ffffdd56}, + {0x95338d33, 0xffffd841ffffdd57}, + {0x95338d34, 0xffffd841ffffdd58}, + {0x95338d35, 0xffffd841ffffdd59}, + {0x95338d36, 0xffffd841ffffdd5a}, + {0x95338d37, 0xffffd841ffffdd5b}, + {0x95338d38, 0xffffd841ffffdd5c}, + {0x95338d39, 0xffffd841ffffdd5d}, + {0x95338e30, 0xffffd841ffffdd5e}, + {0x95338e31, 0xffffd841ffffdd5f}, + {0x95338e32, 0xffffd841ffffdd60}, + {0x95338e33, 0xffffd841ffffdd61}, + {0x95338e34, 0xffffd841ffffdd62}, + {0x95338e35, 0xffffd841ffffdd63}, + {0x95338e36, 0xffffd841ffffdd64}, + {0x95338e37, 0xffffd841ffffdd65}, + {0x95338e38, 0xffffd841ffffdd66}, + {0x95338e39, 0xffffd841ffffdd67}, + {0x95338f30, 0xffffd841ffffdd68}, + {0x95338f31, 0xffffd841ffffdd69}, + {0x95338f32, 0xffffd841ffffdd6a}, + {0x95338f33, 0xffffd841ffffdd6b}, + {0x95338f34, 0xffffd841ffffdd6c}, + {0x95338f35, 0xffffd841ffffdd6d}, + {0x95338f36, 0xffffd841ffffdd6e}, + {0x95338f37, 0xffffd841ffffdd6f}, + {0x95338f38, 0xffffd841ffffdd70}, + {0x95338f39, 0xffffd841ffffdd71}, + {0x95339030, 0xffffd841ffffdd72}, + {0x95339031, 0xffffd841ffffdd73}, + {0x95339032, 0xffffd841ffffdd74}, + {0x95339033, 0xffffd841ffffdd75}, + {0x95339034, 0xffffd841ffffdd76}, + {0x95339035, 0xffffd841ffffdd77}, + {0x95339036, 0xffffd841ffffdd78}, + {0x95339037, 0xffffd841ffffdd79}, + {0x95339038, 0xffffd841ffffdd7a}, + {0x95339039, 0xffffd841ffffdd7b}, + {0x95339130, 0xffffd841ffffdd7c}, + {0x95339131, 0xffffd841ffffdd7d}, + {0x95339132, 0xffffd841ffffdd7e}, + {0x95339133, 0xffffd841ffffdd7f}, + {0x95339134, 0xffffd841ffffdd80}, + {0x95339135, 0xffffd841ffffdd81}, + {0x95339136, 0xffffd841ffffdd82}, + {0x95339137, 0xffffd841ffffdd83}, + {0x95339138, 0xffffd841ffffdd84}, + {0x95339139, 0xffffd841ffffdd85}, + {0x95339230, 0xffffd841ffffdd86}, + {0x95339231, 0xffffd841ffffdd87}, + {0x95339232, 0xffffd841ffffdd88}, + {0x95339233, 0xffffd841ffffdd89}, + {0x95339234, 0xffffd841ffffdd8a}, + {0x95339235, 0xffffd841ffffdd8b}, + {0x95339236, 0xffffd841ffffdd8c}, + {0x95339237, 0xffffd841ffffdd8d}, + {0x95339238, 0xffffd841ffffdd8e}, + {0x95339239, 0xffffd841ffffdd8f}, + {0x95339330, 0xffffd841ffffdd90}, + {0x95339331, 0xffffd841ffffdd91}, + {0x95339332, 0xffffd841ffffdd92}, + {0x95339333, 0xffffd841ffffdd93}, + {0x95339334, 0xffffd841ffffdd94}, + {0x95339335, 0xffffd841ffffdd95}, + {0x95339336, 0xffffd841ffffdd96}, + {0x95339337, 0xffffd841ffffdd97}, + {0x95339338, 0xffffd841ffffdd98}, + {0x95339339, 0xffffd841ffffdd99}, + {0x95339430, 0xffffd841ffffdd9a}, + {0x95339431, 0xffffd841ffffdd9b}, + {0x95339432, 0xffffd841ffffdd9c}, + {0x95339433, 0xffffd841ffffdd9d}, + {0x95339434, 0xffffd841ffffdd9e}, + {0x95339435, 0xffffd841ffffdd9f}, + {0x95339436, 0xffffd841ffffdda0}, + {0x95339437, 0xffffd841ffffdda1}, + {0x95339438, 0xffffd841ffffdda2}, + {0x95339439, 0xffffd841ffffdda3}, + {0x95339530, 0xffffd841ffffdda4}, + {0x95339531, 0xffffd841ffffdda5}, + {0x95339532, 0xffffd841ffffdda6}, + {0x95339533, 0xffffd841ffffdda7}, + {0x95339534, 0xffffd841ffffdda8}, + {0x95339535, 0xffffd841ffffdda9}, + {0x95339536, 0xffffd841ffffddaa}, + {0x95339537, 0xffffd841ffffddab}, + {0x95339538, 0xffffd841ffffddac}, + {0x95339539, 0xffffd841ffffddad}, + {0x95339630, 0xffffd841ffffddae}, + {0x95339631, 0xffffd841ffffddaf}, + {0x95339632, 0xffffd841ffffddb0}, + {0x95339633, 0xffffd841ffffddb1}, + {0x95339634, 0xffffd841ffffddb2}, + {0x95339635, 0xffffd841ffffddb3}, + {0x95339636, 0xffffd841ffffddb4}, + {0x95339637, 0xffffd841ffffddb5}, + {0x95339638, 0xffffd841ffffddb6}, + {0x95339639, 0xffffd841ffffddb7}, + {0x95339730, 0xffffd841ffffddb8}, + {0x95339731, 0xffffd841ffffddb9}, + {0x95339732, 0xffffd841ffffddba}, + {0x95339733, 0xffffd841ffffddbb}, + {0x95339734, 0xffffd841ffffddbc}, + {0x95339735, 0xffffd841ffffddbd}, + {0x95339736, 0xffffd841ffffddbe}, + {0x95339737, 0xffffd841ffffddbf}, + {0x95339738, 0xffffd841ffffddc0}, + {0x95339739, 0xffffd841ffffddc1}, + {0x95339830, 0xffffd841ffffddc2}, + {0x95339831, 0xffffd841ffffddc3}, + {0x95339832, 0xffffd841ffffddc4}, + {0x95339833, 0xffffd841ffffddc5}, + {0x95339834, 0xffffd841ffffddc6}, + {0x95339835, 0xffffd841ffffddc7}, + {0x95339836, 0xffffd841ffffddc8}, + {0x95339837, 0xffffd841ffffddc9}, + {0x95339838, 0xffffd841ffffddca}, + {0x95339839, 0xffffd841ffffddcb}, + {0x95339930, 0xffffd841ffffddcc}, + {0x95339931, 0xffffd841ffffddcd}, + {0x95339932, 0xffffd841ffffddce}, + {0x95339933, 0xffffd841ffffddcf}, + {0x95339934, 0xffffd841ffffddd0}, + {0x95339935, 0xffffd841ffffddd1}, + {0x95339936, 0xffffd841ffffddd2}, + {0x95339937, 0xffffd841ffffddd3}, + {0x95339938, 0xffffd841ffffddd4}, + {0x95339939, 0xffffd841ffffddd5}, + {0x95339a30, 0xffffd841ffffddd6}, + {0x95339a31, 0xffffd841ffffddd7}, + {0x95339a32, 0xffffd841ffffddd8}, + {0x95339a33, 0xffffd841ffffddd9}, + {0x95339a34, 0xffffd841ffffddda}, + {0x95339a35, 0xffffd841ffffdddb}, + {0x95339a36, 0xffffd841ffffdddc}, + {0x95339a37, 0xffffd841ffffdddd}, + {0x95339a38, 0xffffd841ffffddde}, + {0x95339a39, 0xffffd841ffffdddf}, + {0x95339b30, 0xffffd841ffffdde0}, + {0x95339b31, 0xffffd841ffffdde1}, + {0x95339b32, 0xffffd841ffffdde2}, + {0x95339b33, 0xffffd841ffffdde3}, + {0x95339b34, 0xffffd841ffffdde4}, + {0x95339b35, 0xffffd841ffffdde5}, + {0x95339b36, 0xffffd841ffffdde6}, + {0x95339b37, 0xffffd841ffffdde7}, + {0x95339b38, 0xffffd841ffffdde8}, + {0x95339b39, 0xffffd841ffffdde9}, + {0x95339c30, 0xffffd841ffffddea}, + {0x95339c31, 0xffffd841ffffddeb}, + {0x95339c32, 0xffffd841ffffddec}, + {0x95339c33, 0xffffd841ffffdded}, + {0x95339c34, 0xffffd841ffffddee}, + {0x95339c35, 0xffffd841ffffddef}, + {0x95339c36, 0xffffd841ffffddf0}, + {0x95339c37, 0xffffd841ffffddf1}, + {0x95339c38, 0xffffd841ffffddf2}, + {0x95339c39, 0xffffd841ffffddf3}, + {0x95339d30, 0xffffd841ffffddf4}, + {0x95339d31, 0xffffd841ffffddf5}, + {0x95339d32, 0xffffd841ffffddf6}, + {0x95339d33, 0xffffd841ffffddf7}, + {0x95339d34, 0xffffd841ffffddf8}, + {0x95339d35, 0xffffd841ffffddf9}, + {0x95339d36, 0xffffd841ffffddfa}, + {0x95339d37, 0xffffd841ffffddfb}, + {0x95339d38, 0xffffd841ffffddfc}, + {0x95339d39, 0xffffd841ffffddfd}, + {0x95339e30, 0xffffd841ffffddfe}, + {0x95339e31, 0xffffd841ffffddff}, + {0x95339e32, 0xffffd841ffffde00}, + {0x95339e33, 0xffffd841ffffde01}, + {0x95339e34, 0xffffd841ffffde02}, + {0x95339e35, 0xffffd841ffffde03}, + {0x95339e36, 0xffffd841ffffde04}, + {0x95339e37, 0xffffd841ffffde05}, + {0x95339e38, 0xffffd841ffffde06}, + {0x95339e39, 0xffffd841ffffde07}, + {0x95339f30, 0xffffd841ffffde08}, + {0x95339f31, 0xffffd841ffffde09}, + {0x95339f32, 0xffffd841ffffde0a}, + {0x95339f33, 0xffffd841ffffde0b}, + {0x95339f34, 0xffffd841ffffde0c}, + {0x95339f35, 0xffffd841ffffde0d}, + {0x95339f36, 0xffffd841ffffde0e}, + {0x95339f37, 0xffffd841ffffde0f}, + {0x95339f38, 0xffffd841ffffde10}, + {0x95339f39, 0xffffd841ffffde11}, + {0x9533a030, 0xffffd841ffffde12}, + {0x9533a031, 0xffffd841ffffde13}, + {0x9533a032, 0xffffd841ffffde14}, + {0x9533a033, 0xffffd841ffffde15}, + {0x9533a034, 0xffffd841ffffde16}, + {0x9533a035, 0xffffd841ffffde17}, + {0x9533a036, 0xffffd841ffffde18}, + {0x9533a037, 0xffffd841ffffde19}, + {0x9533a038, 0xffffd841ffffde1a}, + {0x9533a039, 0xffffd841ffffde1b}, + {0x9533a130, 0xffffd841ffffde1c}, + {0x9533a131, 0xffffd841ffffde1d}, + {0x9533a132, 0xffffd841ffffde1e}, + {0x9533a133, 0xffffd841ffffde1f}, + {0x9533a134, 0xffffd841ffffde20}, + {0x9533a135, 0xffffd841ffffde21}, + {0x9533a136, 0xffffd841ffffde22}, + {0x9533a137, 0xffffd841ffffde23}, + {0x9533a138, 0xffffd841ffffde24}, + {0x9533a139, 0xffffd841ffffde25}, + {0x9533a230, 0xffffd841ffffde26}, + {0x9533a231, 0xffffd841ffffde27}, + {0x9533a232, 0xffffd841ffffde28}, + {0x9533a233, 0xffffd841ffffde29}, + {0x9533a234, 0xffffd841ffffde2a}, + {0x9533a235, 0xffffd841ffffde2b}, + {0x9533a236, 0xffffd841ffffde2c}, + {0x9533a237, 0xffffd841ffffde2d}, + {0x9533a238, 0xffffd841ffffde2e}, + {0x9533a239, 0xffffd841ffffde2f}, + {0x9533a330, 0xffffd841ffffde30}, + {0x9533a331, 0xffffd841ffffde31}, + {0x9533a332, 0xffffd841ffffde32}, + {0x9533a333, 0xffffd841ffffde33}, + {0x9533a334, 0xffffd841ffffde34}, + {0x9533a335, 0xffffd841ffffde35}, + {0x9533a336, 0xffffd841ffffde36}, + {0x9533a337, 0xffffd841ffffde37}, + {0x9533a338, 0xffffd841ffffde38}, + {0x9533a339, 0xffffd841ffffde39}, + {0x9533a430, 0xffffd841ffffde3a}, + {0x9533a431, 0xffffd841ffffde3b}, + {0x9533a432, 0xffffd841ffffde3c}, + {0x9533a433, 0xffffd841ffffde3d}, + {0x9533a434, 0xffffd841ffffde3e}, + {0x9533a435, 0xffffd841ffffde3f}, + {0x9533a436, 0xffffd841ffffde40}, + {0x9533a437, 0xffffd841ffffde41}, + {0x9533a438, 0xffffd841ffffde42}, + {0x9533a439, 0xffffd841ffffde43}, + {0x9533a530, 0xffffd841ffffde44}, + {0x9533a531, 0xffffd841ffffde45}, + {0x9533a532, 0xffffd841ffffde46}, + {0x9533a533, 0xffffd841ffffde47}, + {0x9533a534, 0xffffd841ffffde48}, + {0x9533a535, 0xffffd841ffffde49}, + {0x9533a536, 0xffffd841ffffde4a}, + {0x9533a537, 0xffffd841ffffde4b}, + {0x9533a538, 0xffffd841ffffde4c}, + {0x9533a539, 0xffffd841ffffde4d}, + {0x9533a630, 0xffffd841ffffde4e}, + {0x9533a631, 0xffffd841ffffde4f}, + {0x9533a632, 0xffffd841ffffde50}, + {0x9533a633, 0xffffd841ffffde51}, + {0x9533a634, 0xffffd841ffffde52}, + {0x9533a635, 0xffffd841ffffde53}, + {0x9533a636, 0xffffd841ffffde54}, + {0x9533a637, 0xffffd841ffffde55}, + {0x9533a638, 0xffffd841ffffde56}, + {0x9533a639, 0xffffd841ffffde57}, + {0x9533a730, 0xffffd841ffffde58}, + {0x9533a731, 0xffffd841ffffde59}, + {0x9533a732, 0xffffd841ffffde5a}, + {0x9533a733, 0xffffd841ffffde5b}, + {0x9533a734, 0xffffd841ffffde5c}, + {0x9533a735, 0xffffd841ffffde5d}, + {0x9533a736, 0xffffd841ffffde5e}, + {0x9533a737, 0xffffd841ffffde5f}, + {0x9533a738, 0xffffd841ffffde60}, + {0x9533a739, 0xffffd841ffffde61}, + {0x9533a830, 0xffffd841ffffde62}, + {0x9533a831, 0xffffd841ffffde63}, + {0x9533a832, 0xffffd841ffffde64}, + {0x9533a833, 0xffffd841ffffde65}, + {0x9533a834, 0xffffd841ffffde66}, + {0x9533a835, 0xffffd841ffffde67}, + {0x9533a836, 0xffffd841ffffde68}, + {0x9533a837, 0xffffd841ffffde69}, + {0x9533a838, 0xffffd841ffffde6a}, + {0x9533a839, 0xffffd841ffffde6b}, + {0x9533a930, 0xffffd841ffffde6c}, + {0x9533a931, 0xffffd841ffffde6d}, + {0x9533a932, 0xffffd841ffffde6e}, + {0x9533a933, 0xffffd841ffffde6f}, + {0x9533a934, 0xffffd841ffffde70}, + {0x9533a935, 0xffffd841ffffde71}, + {0x9533a936, 0xffffd841ffffde72}, + {0x9533a937, 0xffffd841ffffde73}, + {0x9533a938, 0xffffd841ffffde74}, + {0x9533a939, 0xffffd841ffffde75}, + {0x9533aa30, 0xffffd841ffffde76}, + {0x9533aa31, 0xffffd841ffffde77}, + {0x9533aa32, 0xffffd841ffffde78}, + {0x9533aa33, 0xffffd841ffffde79}, + {0x9533aa34, 0xffffd841ffffde7a}, + {0x9533aa35, 0xffffd841ffffde7b}, + {0x9533aa36, 0xffffd841ffffde7c}, + {0x9533aa37, 0xffffd841ffffde7d}, + {0x9533aa38, 0xffffd841ffffde7e}, + {0x9533aa39, 0xffffd841ffffde7f}, + {0x9533ab30, 0xffffd841ffffde80}, + {0x9533ab31, 0xffffd841ffffde81}, + {0x9533ab32, 0xffffd841ffffde82}, + {0x9533ab33, 0xffffd841ffffde83}, + {0x9533ab34, 0xffffd841ffffde84}, + {0x9533ab35, 0xffffd841ffffde85}, + {0x9533ab36, 0xffffd841ffffde86}, + {0x9533ab37, 0xffffd841ffffde87}, + {0x9533ab38, 0xffffd841ffffde88}, + {0x9533ab39, 0xffffd841ffffde89}, + {0x9533ac30, 0xffffd841ffffde8a}, + {0x9533ac31, 0xffffd841ffffde8b}, + {0x9533ac32, 0xffffd841ffffde8c}, + {0x9533ac33, 0xffffd841ffffde8d}, + {0x9533ac34, 0xffffd841ffffde8e}, + {0x9533ac35, 0xffffd841ffffde8f}, + {0x9533ac36, 0xffffd841ffffde90}, + {0x9533ac37, 0xffffd841ffffde91}, + {0x9533ac38, 0xffffd841ffffde92}, + {0x9533ac39, 0xffffd841ffffde93}, + {0x9533ad30, 0xffffd841ffffde94}, + {0x9533ad31, 0xffffd841ffffde95}, + {0x9533ad32, 0xffffd841ffffde96}, + {0x9533ad33, 0xffffd841ffffde97}, + {0x9533ad34, 0xffffd841ffffde98}, + {0x9533ad35, 0xffffd841ffffde99}, + {0x9533ad36, 0xffffd841ffffde9a}, + {0x9533ad37, 0xffffd841ffffde9b}, + {0x9533ad38, 0xffffd841ffffde9c}, + {0x9533ad39, 0xffffd841ffffde9d}, + {0x9533ae30, 0xffffd841ffffde9e}, + {0x9533ae31, 0xffffd841ffffde9f}, + {0x9533ae32, 0xffffd841ffffdea0}, + {0x9533ae33, 0xffffd841ffffdea1}, + {0x9533ae34, 0xffffd841ffffdea2}, + {0x9533ae35, 0xffffd841ffffdea3}, + {0x9533ae36, 0xffffd841ffffdea4}, + {0x9533ae37, 0xffffd841ffffdea5}, + {0x9533ae38, 0xffffd841ffffdea6}, + {0x9533ae39, 0xffffd841ffffdea7}, + {0x9533af30, 0xffffd841ffffdea8}, + {0x9533af31, 0xffffd841ffffdea9}, + {0x9533af32, 0xffffd841ffffdeaa}, + {0x9533af33, 0xffffd841ffffdeab}, + {0x9533af34, 0xffffd841ffffdeac}, + {0x9533af35, 0xffffd841ffffdead}, + {0x9533af36, 0xffffd841ffffdeae}, + {0x9533af37, 0xffffd841ffffdeaf}, + {0x9533af38, 0xffffd841ffffdeb0}, + {0x9533af39, 0xffffd841ffffdeb1}, + {0x9533b030, 0xffffd841ffffdeb2}, + {0x9533b031, 0xffffd841ffffdeb3}, + {0x9533b032, 0xffffd841ffffdeb4}, + {0x9533b033, 0xffffd841ffffdeb5}, + {0x9533b034, 0xffffd841ffffdeb6}, + {0x9533b035, 0xffffd841ffffdeb7}, + {0x9533b036, 0xffffd841ffffdeb8}, + {0x9533b037, 0xffffd841ffffdeb9}, + {0x9533b038, 0xffffd841ffffdeba}, + {0x9533b039, 0xffffd841ffffdebb}, + {0x9533b130, 0xffffd841ffffdebc}, + {0x9533b131, 0xffffd841ffffdebd}, + {0x9533b132, 0xffffd841ffffdebe}, + {0x9533b133, 0xffffd841ffffdebf}, + {0x9533b134, 0xffffd841ffffdec0}, + {0x9533b135, 0xffffd841ffffdec1}, + {0x9533b136, 0xffffd841ffffdec2}, + {0x9533b137, 0xffffd841ffffdec3}, + {0x9533b138, 0xffffd841ffffdec4}, + {0x9533b139, 0xffffd841ffffdec5}, + {0x9533b230, 0xffffd841ffffdec6}, + {0x9533b231, 0xffffd841ffffdec7}, + {0x9533b232, 0xffffd841ffffdec8}, + {0x9533b233, 0xffffd841ffffdec9}, + {0x9533b234, 0xffffd841ffffdeca}, + {0x9533b235, 0xffffd841ffffdecb}, + {0x9533b236, 0xffffd841ffffdecc}, + {0x9533b237, 0xffffd841ffffdecd}, + {0x9533b238, 0xffffd841ffffdece}, + {0x9533b239, 0xffffd841ffffdecf}, + {0x9533b330, 0xffffd841ffffded0}, + {0x9533b331, 0xffffd841ffffded1}, + {0x9533b332, 0xffffd841ffffded2}, + {0x9533b333, 0xffffd841ffffded3}, + {0x9533b334, 0xffffd841ffffded4}, + {0x9533b335, 0xffffd841ffffded5}, + {0x9533b336, 0xffffd841ffffded6}, + {0x9533b337, 0xffffd841ffffded7}, + {0x9533b338, 0xffffd841ffffded8}, + {0x9533b339, 0xffffd841ffffded9}, + {0x9533b430, 0xffffd841ffffdeda}, + {0x9533b431, 0xffffd841ffffdedb}, + {0x9533b432, 0xffffd841ffffdedc}, + {0x9533b433, 0xffffd841ffffdedd}, + {0x9533b434, 0xffffd841ffffdede}, + {0x9533b435, 0xffffd841ffffdedf}, + {0x9533b436, 0xffffd841ffffdee0}, + {0x9533b437, 0xffffd841ffffdee1}, + {0x9533b438, 0xffffd841ffffdee2}, + {0x9533b439, 0xffffd841ffffdee3}, + {0x9533b530, 0xffffd841ffffdee4}, + {0x9533b531, 0xffffd841ffffdee5}, + {0x9533b532, 0xffffd841ffffdee6}, + {0x9533b533, 0xffffd841ffffdee7}, + {0x9533b534, 0xffffd841ffffdee8}, + {0x9533b535, 0xffffd841ffffdee9}, + {0x9533b536, 0xffffd841ffffdeea}, + {0x9533b537, 0xffffd841ffffdeeb}, + {0x9533b538, 0xffffd841ffffdeec}, + {0x9533b539, 0xffffd841ffffdeed}, + {0x9533b630, 0xffffd841ffffdeee}, + {0x9533b631, 0xffffd841ffffdeef}, + {0x9533b632, 0xffffd841ffffdef0}, + {0x9533b633, 0xffffd841ffffdef1}, + {0x9533b634, 0xffffd841ffffdef2}, + {0x9533b635, 0xffffd841ffffdef3}, + {0x9533b636, 0xffffd841ffffdef4}, + {0x9533b637, 0xffffd841ffffdef5}, + {0x9533b638, 0xffffd841ffffdef6}, + {0x9533b639, 0xffffd841ffffdef7}, + {0x9533b730, 0xffffd841ffffdef8}, + {0x9533b731, 0xffffd841ffffdef9}, + {0x9533b732, 0xffffd841ffffdefa}, + {0x9533b733, 0xffffd841ffffdefb}, + {0x9533b734, 0xffffd841ffffdefc}, + {0x9533b735, 0xffffd841ffffdefd}, + {0x9533b736, 0xffffd841ffffdefe}, + {0x9533b737, 0xffffd841ffffdeff}, + {0x9533b738, 0xffffd841ffffdf00}, + {0x9533b739, 0xffffd841ffffdf01}, + {0x9533b830, 0xffffd841ffffdf02}, + {0x9533b831, 0xffffd841ffffdf03}, + {0x9533b832, 0xffffd841ffffdf04}, + {0x9533b833, 0xffffd841ffffdf05}, + {0x9533b834, 0xffffd841ffffdf06}, + {0x9533b835, 0xffffd841ffffdf07}, + {0x9533b836, 0xffffd841ffffdf08}, + {0x9533b837, 0xffffd841ffffdf09}, + {0x9533b838, 0xffffd841ffffdf0a}, + {0x9533b839, 0xffffd841ffffdf0b}, + {0x9533b930, 0xffffd841ffffdf0c}, + {0x9533b931, 0xffffd841ffffdf0d}, + {0x9533b932, 0xffffd841ffffdf0e}, + {0x9533b933, 0xffffd841ffffdf0f}, + {0x9533b934, 0xffffd841ffffdf10}, + {0x9533b935, 0xffffd841ffffdf11}, + {0x9533b936, 0xffffd841ffffdf12}, + {0x9533b937, 0xffffd841ffffdf13}, + {0x9533b938, 0xffffd841ffffdf14}, + {0x9533b939, 0xffffd841ffffdf15}, + {0x9533ba30, 0xffffd841ffffdf16}, + {0x9533ba31, 0xffffd841ffffdf17}, + {0x9533ba32, 0xffffd841ffffdf18}, + {0x9533ba33, 0xffffd841ffffdf19}, + {0x9533ba34, 0xffffd841ffffdf1a}, + {0x9533ba35, 0xffffd841ffffdf1b}, + {0x9533ba36, 0xffffd841ffffdf1c}, + {0x9533ba37, 0xffffd841ffffdf1d}, + {0x9533ba38, 0xffffd841ffffdf1e}, + {0x9533ba39, 0xffffd841ffffdf1f}, + {0x9533bb30, 0xffffd841ffffdf20}, + {0x9533bb31, 0xffffd841ffffdf21}, + {0x9533bb32, 0xffffd841ffffdf22}, + {0x9533bb33, 0xffffd841ffffdf23}, + {0x9533bb34, 0xffffd841ffffdf24}, + {0x9533bb35, 0xffffd841ffffdf25}, + {0x9533bb36, 0xffffd841ffffdf26}, + {0x9533bb37, 0xffffd841ffffdf27}, + {0x9533bb38, 0xffffd841ffffdf28}, + {0x9533bb39, 0xffffd841ffffdf29}, + {0x9533bc30, 0xffffd841ffffdf2a}, + {0x9533bc31, 0xffffd841ffffdf2b}, + {0x9533bc32, 0xffffd841ffffdf2c}, + {0x9533bc33, 0xffffd841ffffdf2d}, + {0x9533bc34, 0xffffd841ffffdf2e}, + {0x9533bc35, 0xffffd841ffffdf2f}, + {0x9533bc36, 0xffffd841ffffdf30}, + {0x9533bc37, 0xffffd841ffffdf31}, + {0x9533bc38, 0xffffd841ffffdf32}, + {0x9533bc39, 0xffffd841ffffdf33}, + {0x9533bd30, 0xffffd841ffffdf34}, + {0x9533bd31, 0xffffd841ffffdf35}, + {0x9533bd32, 0xffffd841ffffdf36}, + {0x9533bd33, 0xffffd841ffffdf37}, + {0x9533bd34, 0xffffd841ffffdf38}, + {0x9533bd35, 0xffffd841ffffdf39}, + {0x9533bd36, 0xffffd841ffffdf3a}, + {0x9533bd37, 0xffffd841ffffdf3b}, + {0x9533bd38, 0xffffd841ffffdf3c}, + {0x9533bd39, 0xffffd841ffffdf3d}, + {0x9533be30, 0xffffd841ffffdf3e}, + {0x9533be31, 0xffffd841ffffdf3f}, + {0x9533be32, 0xffffd841ffffdf40}, + {0x9533be33, 0xffffd841ffffdf41}, + {0x9533be34, 0xffffd841ffffdf42}, + {0x9533be35, 0xffffd841ffffdf43}, + {0x9533be36, 0xffffd841ffffdf44}, + {0x9533be37, 0xffffd841ffffdf45}, + {0x9533be38, 0xffffd841ffffdf46}, + {0x9533be39, 0xffffd841ffffdf47}, + {0x9533bf30, 0xffffd841ffffdf48}, + {0x9533bf31, 0xffffd841ffffdf49}, + {0x9533bf32, 0xffffd841ffffdf4a}, + {0x9533bf33, 0xffffd841ffffdf4b}, + {0x9533bf34, 0xffffd841ffffdf4c}, + {0x9533bf35, 0xffffd841ffffdf4d}, + {0x9533bf36, 0xffffd841ffffdf4e}, + {0x9533bf37, 0xffffd841ffffdf4f}, + {0x9533bf38, 0xffffd841ffffdf50}, + {0x9533bf39, 0xffffd841ffffdf51}, + {0x9533c030, 0xffffd841ffffdf52}, + {0x9533c031, 0xffffd841ffffdf53}, + {0x9533c032, 0xffffd841ffffdf54}, + {0x9533c033, 0xffffd841ffffdf55}, + {0x9533c034, 0xffffd841ffffdf56}, + {0x9533c035, 0xffffd841ffffdf57}, + {0x9533c036, 0xffffd841ffffdf58}, + {0x9533c037, 0xffffd841ffffdf59}, + {0x9533c038, 0xffffd841ffffdf5a}, + {0x9533c039, 0xffffd841ffffdf5b}, + {0x9533c130, 0xffffd841ffffdf5c}, + {0x9533c131, 0xffffd841ffffdf5d}, + {0x9533c132, 0xffffd841ffffdf5e}, + {0x9533c133, 0xffffd841ffffdf5f}, + {0x9533c134, 0xffffd841ffffdf60}, + {0x9533c135, 0xffffd841ffffdf61}, + {0x9533c136, 0xffffd841ffffdf62}, + {0x9533c137, 0xffffd841ffffdf63}, + {0x9533c138, 0xffffd841ffffdf64}, + {0x9533c139, 0xffffd841ffffdf65}, + {0x9533c230, 0xffffd841ffffdf66}, + {0x9533c231, 0xffffd841ffffdf67}, + {0x9533c232, 0xffffd841ffffdf68}, + {0x9533c233, 0xffffd841ffffdf69}, + {0x9533c234, 0xffffd841ffffdf6a}, + {0x9533c235, 0xffffd841ffffdf6b}, + {0x9533c236, 0xffffd841ffffdf6c}, + {0x9533c237, 0xffffd841ffffdf6d}, + {0x9533c238, 0xffffd841ffffdf6e}, + {0x9533c239, 0xffffd841ffffdf6f}, + {0x9533c330, 0xffffd841ffffdf70}, + {0x9533c331, 0xffffd841ffffdf71}, + {0x9533c332, 0xffffd841ffffdf72}, + {0x9533c333, 0xffffd841ffffdf73}, + {0x9533c334, 0xffffd841ffffdf74}, + {0x9533c335, 0xffffd841ffffdf75}, + {0x9533c336, 0xffffd841ffffdf76}, + {0x9533c337, 0xffffd841ffffdf77}, + {0x9533c338, 0xffffd841ffffdf78}, + {0x9533c339, 0xffffd841ffffdf79}, + {0x9533c430, 0xffffd841ffffdf7a}, + {0x9533c431, 0xffffd841ffffdf7b}, + {0x9533c432, 0xffffd841ffffdf7c}, + {0x9533c433, 0xffffd841ffffdf7d}, + {0x9533c434, 0xffffd841ffffdf7e}, + {0x9533c435, 0xffffd841ffffdf7f}, + {0x9533c436, 0xffffd841ffffdf80}, + {0x9533c437, 0xffffd841ffffdf81}, + {0x9533c438, 0xffffd841ffffdf82}, + {0x9533c439, 0xffffd841ffffdf83}, + {0x9533c530, 0xffffd841ffffdf84}, + {0x9533c531, 0xffffd841ffffdf85}, + {0x9533c532, 0xffffd841ffffdf86}, + {0x9533c533, 0xffffd841ffffdf87}, + {0x9533c534, 0xffffd841ffffdf88}, + {0x9533c535, 0xffffd841ffffdf89}, + {0x9533c536, 0xffffd841ffffdf8a}, + {0x9533c537, 0xffffd841ffffdf8b}, + {0x9533c538, 0xffffd841ffffdf8c}, + {0x9533c539, 0xffffd841ffffdf8d}, + {0x9533c630, 0xffffd841ffffdf8e}, + {0x9533c631, 0xffffd841ffffdf8f}, + {0x9533c632, 0xffffd841ffffdf90}, + {0x9533c633, 0xffffd841ffffdf91}, + {0x9533c634, 0xffffd841ffffdf92}, + {0x9533c635, 0xffffd841ffffdf93}, + {0x9533c636, 0xffffd841ffffdf94}, + {0x9533c637, 0xffffd841ffffdf95}, + {0x9533c638, 0xffffd841ffffdf96}, + {0x9533c639, 0xffffd841ffffdf97}, + {0x9533c730, 0xffffd841ffffdf98}, + {0x9533c731, 0xffffd841ffffdf99}, + {0x9533c732, 0xffffd841ffffdf9a}, + {0x9533c733, 0xffffd841ffffdf9b}, + {0x9533c734, 0xffffd841ffffdf9c}, + {0x9533c735, 0xffffd841ffffdf9d}, + {0x9533c736, 0xffffd841ffffdf9e}, + {0x9533c737, 0xffffd841ffffdf9f}, + {0x9533c738, 0xffffd841ffffdfa0}, + {0x9533c739, 0xffffd841ffffdfa1}, + {0x9533c830, 0xffffd841ffffdfa2}, + {0x9533c831, 0xffffd841ffffdfa3}, + {0x9533c832, 0xffffd841ffffdfa4}, + {0x9533c833, 0xffffd841ffffdfa5}, + {0x9533c834, 0xffffd841ffffdfa6}, + {0x9533c835, 0xffffd841ffffdfa7}, + {0x9533c836, 0xffffd841ffffdfa8}, + {0x9533c837, 0xffffd841ffffdfa9}, + {0x9533c838, 0xffffd841ffffdfaa}, + {0x9533c839, 0xffffd841ffffdfab}, + {0x9533c930, 0xffffd841ffffdfac}, + {0x9533c931, 0xffffd841ffffdfad}, + {0x9533c932, 0xffffd841ffffdfae}, + {0x9533c933, 0xffffd841ffffdfaf}, + {0x9533c934, 0xffffd841ffffdfb0}, + {0x9533c935, 0xffffd841ffffdfb1}, + {0x9533c936, 0xffffd841ffffdfb2}, + {0x9533c937, 0xffffd841ffffdfb3}, + {0x9533c938, 0xffffd841ffffdfb4}, + {0x9533c939, 0xffffd841ffffdfb5}, + {0x9533ca30, 0xffffd841ffffdfb6}, + {0x9533ca31, 0xffffd841ffffdfb7}, + {0x9533ca32, 0xffffd841ffffdfb8}, + {0x9533ca33, 0xffffd841ffffdfb9}, + {0x9533ca34, 0xffffd841ffffdfba}, + {0x9533ca35, 0xffffd841ffffdfbb}, + {0x9533ca36, 0xffffd841ffffdfbc}, + {0x9533ca37, 0xffffd841ffffdfbd}, + {0x9533ca38, 0xffffd841ffffdfbe}, + {0x9533ca39, 0xffffd841ffffdfbf}, + {0x9533cb30, 0xffffd841ffffdfc0}, + {0x9533cb31, 0xffffd841ffffdfc1}, + {0x9533cb32, 0xffffd841ffffdfc2}, + {0x9533cb33, 0xffffd841ffffdfc3}, + {0x9533cb34, 0xffffd841ffffdfc4}, + {0x9533cb35, 0xffffd841ffffdfc5}, + {0x9533cb36, 0xffffd841ffffdfc6}, + {0x9533cb37, 0xffffd841ffffdfc7}, + {0x9533cb38, 0xffffd841ffffdfc8}, + {0x9533cb39, 0xffffd841ffffdfc9}, + {0x9533cc30, 0xffffd841ffffdfca}, + {0x9533cc31, 0xffffd841ffffdfcb}, + {0x9533cc32, 0xffffd841ffffdfcc}, + {0x9533cc33, 0xffffd841ffffdfcd}, + {0x9533cc34, 0xffffd841ffffdfce}, + {0x9533cc35, 0xffffd841ffffdfcf}, + {0x9533cc36, 0xffffd841ffffdfd0}, + {0x9533cc37, 0xffffd841ffffdfd1}, + {0x9533cc38, 0xffffd841ffffdfd2}, + {0x9533cc39, 0xffffd841ffffdfd3}, + {0x9533cd30, 0xffffd841ffffdfd4}, + {0x9533cd31, 0xffffd841ffffdfd5}, + {0x9533cd32, 0xffffd841ffffdfd6}, + {0x9533cd33, 0xffffd841ffffdfd7}, + {0x9533cd34, 0xffffd841ffffdfd8}, + {0x9533cd35, 0xffffd841ffffdfd9}, + {0x9533cd36, 0xffffd841ffffdfda}, + {0x9533cd37, 0xffffd841ffffdfdb}, + {0x9533cd38, 0xffffd841ffffdfdc}, + {0x9533cd39, 0xffffd841ffffdfdd}, + {0x9533ce30, 0xffffd841ffffdfde}, + {0x9533ce31, 0xffffd841ffffdfdf}, + {0x9533ce32, 0xffffd841ffffdfe0}, + {0x9533ce33, 0xffffd841ffffdfe1}, + {0x9533ce34, 0xffffd841ffffdfe2}, + {0x9533ce35, 0xffffd841ffffdfe3}, + {0x9533ce36, 0xffffd841ffffdfe4}, + {0x9533ce37, 0xffffd841ffffdfe5}, + {0x9533ce38, 0xffffd841ffffdfe6}, + {0x9533ce39, 0xffffd841ffffdfe7}, + {0x9533cf30, 0xffffd841ffffdfe8}, + {0x9533cf31, 0xffffd841ffffdfe9}, + {0x9533cf32, 0xffffd841ffffdfea}, + {0x9533cf33, 0xffffd841ffffdfeb}, + {0x9533cf34, 0xffffd841ffffdfec}, + {0x9533cf35, 0xffffd841ffffdfed}, + {0x9533cf36, 0xffffd841ffffdfee}, + {0x9533cf37, 0xffffd841ffffdfef}, + {0x9533cf38, 0xffffd841ffffdff0}, + {0x9533cf39, 0xffffd841ffffdff1}, + {0x9533d030, 0xffffd841ffffdff2}, + {0x9533d031, 0xffffd841ffffdff3}, + {0x9533d032, 0xffffd841ffffdff4}, + {0x9533d033, 0xffffd841ffffdff5}, + {0x9533d034, 0xffffd841ffffdff6}, + {0x9533d035, 0xffffd841ffffdff7}, + {0x9533d036, 0xffffd841ffffdff8}, + {0x9533d037, 0xffffd841ffffdff9}, + {0x9533d038, 0xffffd841ffffdffa}, + {0x9533d039, 0xffffd841ffffdffb}, + {0x9533d130, 0xffffd841ffffdffc}, + {0x9533d131, 0xffffd841ffffdffd}, + {0x9533d132, 0xffffd841ffffdffe}, + {0x9533d133, 0xffffd841ffffdfff}, + {0x9533d134, 0xffffd842ffffdc00}, + {0x9533d135, 0xffffd842ffffdc01}, + {0x9533d136, 0xffffd842ffffdc02}, + {0x9533d137, 0xffffd842ffffdc03}, + {0x9533d138, 0xffffd842ffffdc04}, + {0x9533d139, 0xffffd842ffffdc05}, + {0x9533d230, 0xffffd842ffffdc06}, + {0x9533d231, 0xffffd842ffffdc07}, + {0x9533d232, 0xffffd842ffffdc08}, + {0x9533d233, 0xffffd842ffffdc09}, + {0x9533d234, 0xffffd842ffffdc0a}, + {0x9533d235, 0xffffd842ffffdc0b}, + {0x9533d236, 0xffffd842ffffdc0c}, + {0x9533d237, 0xffffd842ffffdc0d}, + {0x9533d238, 0xffffd842ffffdc0e}, + {0x9533d239, 0xffffd842ffffdc0f}, + {0x9533d330, 0xffffd842ffffdc10}, + {0x9533d331, 0xffffd842ffffdc11}, + {0x9533d332, 0xffffd842ffffdc12}, + {0x9533d333, 0xffffd842ffffdc13}, + {0x9533d334, 0xffffd842ffffdc14}, + {0x9533d335, 0xffffd842ffffdc15}, + {0x9533d336, 0xffffd842ffffdc16}, + {0x9533d337, 0xffffd842ffffdc17}, + {0x9533d338, 0xffffd842ffffdc18}, + {0x9533d339, 0xffffd842ffffdc19}, + {0x9533d430, 0xffffd842ffffdc1a}, + {0x9533d431, 0xffffd842ffffdc1b}, + {0x9533d432, 0xffffd842ffffdc1c}, + {0x9533d433, 0xffffd842ffffdc1d}, + {0x9533d434, 0xffffd842ffffdc1e}, + {0x9533d435, 0xffffd842ffffdc1f}, + {0x9533d436, 0xffffd842ffffdc20}, + {0x9533d437, 0xffffd842ffffdc21}, + {0x9533d438, 0xffffd842ffffdc22}, + {0x9533d439, 0xffffd842ffffdc23}, + {0x9533d530, 0xffffd842ffffdc24}, + {0x9533d531, 0xffffd842ffffdc25}, + {0x9533d532, 0xffffd842ffffdc26}, + {0x9533d533, 0xffffd842ffffdc27}, + {0x9533d534, 0xffffd842ffffdc28}, + {0x9533d535, 0xffffd842ffffdc29}, + {0x9533d536, 0xffffd842ffffdc2a}, + {0x9533d537, 0xffffd842ffffdc2b}, + {0x9533d538, 0xffffd842ffffdc2c}, + {0x9533d539, 0xffffd842ffffdc2d}, + {0x9533d630, 0xffffd842ffffdc2e}, + {0x9533d631, 0xffffd842ffffdc2f}, + {0x9533d632, 0xffffd842ffffdc30}, + {0x9533d633, 0xffffd842ffffdc31}, + {0x9533d634, 0xffffd842ffffdc32}, + {0x9533d635, 0xffffd842ffffdc33}, + {0x9533d636, 0xffffd842ffffdc34}, + {0x9533d637, 0xffffd842ffffdc35}, + {0x9533d638, 0xffffd842ffffdc36}, + {0x9533d639, 0xffffd842ffffdc37}, + {0x9533d730, 0xffffd842ffffdc38}, + {0x9533d731, 0xffffd842ffffdc39}, + {0x9533d732, 0xffffd842ffffdc3a}, + {0x9533d733, 0xffffd842ffffdc3b}, + {0x9533d734, 0xffffd842ffffdc3c}, + {0x9533d735, 0xffffd842ffffdc3d}, + {0x9533d736, 0xffffd842ffffdc3e}, + {0x9533d737, 0xffffd842ffffdc3f}, + {0x9533d738, 0xffffd842ffffdc40}, + {0x9533d739, 0xffffd842ffffdc41}, + {0x9533d830, 0xffffd842ffffdc42}, + {0x9533d831, 0xffffd842ffffdc43}, + {0x9533d832, 0xffffd842ffffdc44}, + {0x9533d833, 0xffffd842ffffdc45}, + {0x9533d834, 0xffffd842ffffdc46}, + {0x9533d835, 0xffffd842ffffdc47}, + {0x9533d836, 0xffffd842ffffdc48}, + {0x9533d837, 0xffffd842ffffdc49}, + {0x9533d838, 0xffffd842ffffdc4a}, + {0x9533d839, 0xffffd842ffffdc4b}, + {0x9533d930, 0xffffd842ffffdc4c}, + {0x9533d931, 0xffffd842ffffdc4d}, + {0x9533d932, 0xffffd842ffffdc4e}, + {0x9533d933, 0xffffd842ffffdc4f}, + {0x9533d934, 0xffffd842ffffdc50}, + {0x9533d935, 0xffffd842ffffdc51}, + {0x9533d936, 0xffffd842ffffdc52}, + {0x9533d937, 0xffffd842ffffdc53}, + {0x9533d938, 0xffffd842ffffdc54}, + {0x9533d939, 0xffffd842ffffdc55}, + {0x9533da30, 0xffffd842ffffdc56}, + {0x9533da31, 0xffffd842ffffdc57}, + {0x9533da32, 0xffffd842ffffdc58}, + {0x9533da33, 0xffffd842ffffdc59}, + {0x9533da34, 0xffffd842ffffdc5a}, + {0x9533da35, 0xffffd842ffffdc5b}, + {0x9533da36, 0xffffd842ffffdc5c}, + {0x9533da37, 0xffffd842ffffdc5d}, + {0x9533da38, 0xffffd842ffffdc5e}, + {0x9533da39, 0xffffd842ffffdc5f}, + {0x9533db30, 0xffffd842ffffdc60}, + {0x9533db31, 0xffffd842ffffdc61}, + {0x9533db32, 0xffffd842ffffdc62}, + {0x9533db33, 0xffffd842ffffdc63}, + {0x9533db34, 0xffffd842ffffdc64}, + {0x9533db35, 0xffffd842ffffdc65}, + {0x9533db36, 0xffffd842ffffdc66}, + {0x9533db37, 0xffffd842ffffdc67}, + {0x9533db38, 0xffffd842ffffdc68}, + {0x9533db39, 0xffffd842ffffdc69}, + {0x9533dc30, 0xffffd842ffffdc6a}, + {0x9533dc31, 0xffffd842ffffdc6b}, + {0x9533dc32, 0xffffd842ffffdc6c}, + {0x9533dc33, 0xffffd842ffffdc6d}, + {0x9533dc34, 0xffffd842ffffdc6e}, + {0x9533dc35, 0xffffd842ffffdc6f}, + {0x9533dc36, 0xffffd842ffffdc70}, + {0x9533dc37, 0xffffd842ffffdc71}, + {0x9533dc38, 0xffffd842ffffdc72}, + {0x9533dc39, 0xffffd842ffffdc73}, + {0x9533dd30, 0xffffd842ffffdc74}, + {0x9533dd31, 0xffffd842ffffdc75}, + {0x9533dd32, 0xffffd842ffffdc76}, + {0x9533dd33, 0xffffd842ffffdc77}, + {0x9533dd34, 0xffffd842ffffdc78}, + {0x9533dd35, 0xffffd842ffffdc79}, + {0x9533dd36, 0xffffd842ffffdc7a}, + {0x9533dd37, 0xffffd842ffffdc7b}, + {0x9533dd38, 0xffffd842ffffdc7c}, + {0x9533dd39, 0xffffd842ffffdc7d}, + {0x9533de30, 0xffffd842ffffdc7e}, + {0x9533de31, 0xffffd842ffffdc7f}, + {0x9533de32, 0xffffd842ffffdc80}, + {0x9533de33, 0xffffd842ffffdc81}, + {0x9533de34, 0xffffd842ffffdc82}, + {0x9533de35, 0xffffd842ffffdc83}, + {0x9533de36, 0xffffd842ffffdc84}, + {0x9533de37, 0xffffd842ffffdc85}, + {0x9533de38, 0xffffd842ffffdc86}, + {0x9533de39, 0xffffd842ffffdc87}, + {0x9533df30, 0xffffd842ffffdc88}, + {0x9533df31, 0xffffd842ffffdc89}, + {0x9533df32, 0xffffd842ffffdc8a}, + {0x9533df33, 0xffffd842ffffdc8b}, + {0x9533df34, 0xffffd842ffffdc8c}, + {0x9533df35, 0xffffd842ffffdc8d}, + {0x9533df36, 0xffffd842ffffdc8e}, + {0x9533df37, 0xffffd842ffffdc8f}, + {0x9533df38, 0xffffd842ffffdc90}, + {0x9533df39, 0xffffd842ffffdc91}, + {0x9533e030, 0xffffd842ffffdc92}, + {0x9533e031, 0xffffd842ffffdc93}, + {0x9533e032, 0xffffd842ffffdc94}, + {0x9533e033, 0xffffd842ffffdc95}, + {0x9533e034, 0xffffd842ffffdc96}, + {0x9533e035, 0xffffd842ffffdc97}, + {0x9533e036, 0xffffd842ffffdc98}, + {0x9533e037, 0xffffd842ffffdc99}, + {0x9533e038, 0xffffd842ffffdc9a}, + {0x9533e039, 0xffffd842ffffdc9b}, + {0x9533e130, 0xffffd842ffffdc9c}, + {0x9533e131, 0xffffd842ffffdc9d}, + {0x9533e132, 0xffffd842ffffdc9e}, + {0x9533e133, 0xffffd842ffffdc9f}, + {0x9533e134, 0xffffd842ffffdca0}, + {0x9533e135, 0xffffd842ffffdca1}, + {0x9533e136, 0xffffd842ffffdca2}, + {0x9533e137, 0xffffd842ffffdca3}, + {0x9533e138, 0xffffd842ffffdca4}, + {0x9533e139, 0xffffd842ffffdca5}, + {0x9533e230, 0xffffd842ffffdca6}, + {0x9533e231, 0xffffd842ffffdca7}, + {0x9533e232, 0xffffd842ffffdca8}, + {0x9533e233, 0xffffd842ffffdca9}, + {0x9533e234, 0xffffd842ffffdcaa}, + {0x9533e235, 0xffffd842ffffdcab}, + {0x9533e236, 0xffffd842ffffdcac}, + {0x9533e237, 0xffffd842ffffdcad}, + {0x9533e238, 0xffffd842ffffdcae}, + {0x9533e239, 0xffffd842ffffdcaf}, + {0x9533e330, 0xffffd842ffffdcb0}, + {0x9533e331, 0xffffd842ffffdcb1}, + {0x9533e332, 0xffffd842ffffdcb2}, + {0x9533e333, 0xffffd842ffffdcb3}, + {0x9533e334, 0xffffd842ffffdcb4}, + {0x9533e335, 0xffffd842ffffdcb5}, + {0x9533e336, 0xffffd842ffffdcb6}, + {0x9533e337, 0xffffd842ffffdcb7}, + {0x9533e338, 0xffffd842ffffdcb8}, + {0x9533e339, 0xffffd842ffffdcb9}, + {0x9533e430, 0xffffd842ffffdcba}, + {0x9533e431, 0xffffd842ffffdcbb}, + {0x9533e432, 0xffffd842ffffdcbc}, + {0x9533e433, 0xffffd842ffffdcbd}, + {0x9533e434, 0xffffd842ffffdcbe}, + {0x9533e435, 0xffffd842ffffdcbf}, + {0x9533e436, 0xffffd842ffffdcc0}, + {0x9533e437, 0xffffd842ffffdcc1}, + {0x9533e438, 0xffffd842ffffdcc2}, + {0x9533e439, 0xffffd842ffffdcc3}, + {0x9533e530, 0xffffd842ffffdcc4}, + {0x9533e531, 0xffffd842ffffdcc5}, + {0x9533e532, 0xffffd842ffffdcc6}, + {0x9533e533, 0xffffd842ffffdcc7}, + {0x9533e534, 0xffffd842ffffdcc8}, + {0x9533e535, 0xffffd842ffffdcc9}, + {0x9533e536, 0xffffd842ffffdcca}, + {0x9533e537, 0xffffd842ffffdccb}, + {0x9533e538, 0xffffd842ffffdccc}, + {0x9533e539, 0xffffd842ffffdccd}, + {0x9533e630, 0xffffd842ffffdcce}, + {0x9533e631, 0xffffd842ffffdccf}, + {0x9533e632, 0xffffd842ffffdcd0}, + {0x9533e633, 0xffffd842ffffdcd1}, + {0x9533e634, 0xffffd842ffffdcd2}, + {0x9533e635, 0xffffd842ffffdcd3}, + {0x9533e636, 0xffffd842ffffdcd4}, + {0x9533e637, 0xffffd842ffffdcd5}, + {0x9533e638, 0xffffd842ffffdcd6}, + {0x9533e639, 0xffffd842ffffdcd7}, + {0x9533e730, 0xffffd842ffffdcd8}, + {0x9533e731, 0xffffd842ffffdcd9}, + {0x9533e732, 0xffffd842ffffdcda}, + {0x9533e733, 0xffffd842ffffdcdb}, + {0x9533e734, 0xffffd842ffffdcdc}, + {0x9533e735, 0xffffd842ffffdcdd}, + {0x9533e736, 0xffffd842ffffdcde}, + {0x9533e737, 0xffffd842ffffdcdf}, + {0x9533e738, 0xffffd842ffffdce0}, + {0x9533e739, 0xffffd842ffffdce1}, + {0x9533e830, 0xffffd842ffffdce2}, + {0x9533e831, 0xffffd842ffffdce3}, + {0x9533e832, 0xffffd842ffffdce4}, + {0x9533e833, 0xffffd842ffffdce5}, + {0x9533e834, 0xffffd842ffffdce6}, + {0x9533e835, 0xffffd842ffffdce7}, + {0x9533e836, 0xffffd842ffffdce8}, + {0x9533e837, 0xffffd842ffffdce9}, + {0x9533e838, 0xffffd842ffffdcea}, + {0x9533e839, 0xffffd842ffffdceb}, + {0x9533e930, 0xffffd842ffffdcec}, + {0x9533e931, 0xffffd842ffffdced}, + {0x9533e932, 0xffffd842ffffdcee}, + {0x9533e933, 0xffffd842ffffdcef}, + {0x9533e934, 0xffffd842ffffdcf0}, + {0x9533e935, 0xffffd842ffffdcf1}, + {0x9533e936, 0xffffd842ffffdcf2}, + {0x9533e937, 0xffffd842ffffdcf3}, + {0x9533e938, 0xffffd842ffffdcf4}, + {0x9533e939, 0xffffd842ffffdcf5}, + {0x9533ea30, 0xffffd842ffffdcf6}, + {0x9533ea31, 0xffffd842ffffdcf7}, + {0x9533ea32, 0xffffd842ffffdcf8}, + {0x9533ea33, 0xffffd842ffffdcf9}, + {0x9533ea34, 0xffffd842ffffdcfa}, + {0x9533ea35, 0xffffd842ffffdcfb}, + {0x9533ea36, 0xffffd842ffffdcfc}, + {0x9533ea37, 0xffffd842ffffdcfd}, + {0x9533ea38, 0xffffd842ffffdcfe}, + {0x9533ea39, 0xffffd842ffffdcff}, + {0x9533eb30, 0xffffd842ffffdd00}, + {0x9533eb31, 0xffffd842ffffdd01}, + {0x9533eb32, 0xffffd842ffffdd02}, + {0x9533eb33, 0xffffd842ffffdd03}, + {0x9533eb34, 0xffffd842ffffdd04}, + {0x9533eb35, 0xffffd842ffffdd05}, + {0x9533eb36, 0xffffd842ffffdd06}, + {0x9533eb37, 0xffffd842ffffdd07}, + {0x9533eb38, 0xffffd842ffffdd08}, + {0x9533eb39, 0xffffd842ffffdd09}, + {0x9533ec30, 0xffffd842ffffdd0a}, + {0x9533ec31, 0xffffd842ffffdd0b}, + {0x9533ec32, 0xffffd842ffffdd0c}, + {0x9533ec33, 0xffffd842ffffdd0d}, + {0x9533ec34, 0xffffd842ffffdd0e}, + {0x9533ec35, 0xffffd842ffffdd0f}, + {0x9533ec36, 0xffffd842ffffdd10}, + {0x9533ec37, 0xffffd842ffffdd11}, + {0x9533ec38, 0xffffd842ffffdd12}, + {0x9533ec39, 0xffffd842ffffdd13}, + {0x9533ed30, 0xffffd842ffffdd14}, + {0x9533ed31, 0xffffd842ffffdd15}, + {0x9533ed32, 0xffffd842ffffdd16}, + {0x9533ed33, 0xffffd842ffffdd17}, + {0x9533ed34, 0xffffd842ffffdd18}, + {0x9533ed35, 0xffffd842ffffdd19}, + {0x9533ed36, 0xffffd842ffffdd1a}, + {0x9533ed37, 0xffffd842ffffdd1b}, + {0x9533ed38, 0xffffd842ffffdd1c}, + {0x9533ed39, 0xffffd842ffffdd1d}, + {0x9533ee30, 0xffffd842ffffdd1e}, + {0x9533ee31, 0xffffd842ffffdd1f}, + {0x9533ee32, 0xffffd842ffffdd20}, + {0x9533ee33, 0xffffd842ffffdd21}, + {0x9533ee34, 0xffffd842ffffdd22}, + {0x9533ee35, 0xffffd842ffffdd23}, + {0x9533ee36, 0xffffd842ffffdd24}, + {0x9533ee37, 0xffffd842ffffdd25}, + {0x9533ee38, 0xffffd842ffffdd26}, + {0x9533ee39, 0xffffd842ffffdd27}, + {0x9533ef30, 0xffffd842ffffdd28}, + {0x9533ef31, 0xffffd842ffffdd29}, + {0x9533ef32, 0xffffd842ffffdd2a}, + {0x9533ef33, 0xffffd842ffffdd2b}, + {0x9533ef34, 0xffffd842ffffdd2c}, + {0x9533ef35, 0xffffd842ffffdd2d}, + {0x9533ef36, 0xffffd842ffffdd2e}, + {0x9533ef37, 0xffffd842ffffdd2f}, + {0x9533ef38, 0xffffd842ffffdd30}, + {0x9533ef39, 0xffffd842ffffdd31}, + {0x9533f030, 0xffffd842ffffdd32}, + {0x9533f031, 0xffffd842ffffdd33}, + {0x9533f032, 0xffffd842ffffdd34}, + {0x9533f033, 0xffffd842ffffdd35}, + {0x9533f034, 0xffffd842ffffdd36}, + {0x9533f035, 0xffffd842ffffdd37}, + {0x9533f036, 0xffffd842ffffdd38}, + {0x9533f037, 0xffffd842ffffdd39}, + {0x9533f038, 0xffffd842ffffdd3a}, + {0x9533f039, 0xffffd842ffffdd3b}, + {0x9533f130, 0xffffd842ffffdd3c}, + {0x9533f131, 0xffffd842ffffdd3d}, + {0x9533f132, 0xffffd842ffffdd3e}, + {0x9533f133, 0xffffd842ffffdd3f}, + {0x9533f134, 0xffffd842ffffdd40}, + {0x9533f135, 0xffffd842ffffdd41}, + {0x9533f136, 0xffffd842ffffdd42}, + {0x9533f137, 0xffffd842ffffdd43}, + {0x9533f138, 0xffffd842ffffdd44}, + {0x9533f139, 0xffffd842ffffdd45}, + {0x9533f230, 0xffffd842ffffdd46}, + {0x9533f231, 0xffffd842ffffdd47}, + {0x9533f232, 0xffffd842ffffdd48}, + {0x9533f233, 0xffffd842ffffdd49}, + {0x9533f234, 0xffffd842ffffdd4a}, + {0x9533f235, 0xffffd842ffffdd4b}, + {0x9533f236, 0xffffd842ffffdd4c}, + {0x9533f237, 0xffffd842ffffdd4d}, + {0x9533f238, 0xffffd842ffffdd4e}, + {0x9533f239, 0xffffd842ffffdd4f}, + {0x9533f330, 0xffffd842ffffdd50}, + {0x9533f331, 0xffffd842ffffdd51}, + {0x9533f332, 0xffffd842ffffdd52}, + {0x9533f333, 0xffffd842ffffdd53}, + {0x9533f334, 0xffffd842ffffdd54}, + {0x9533f335, 0xffffd842ffffdd55}, + {0x9533f336, 0xffffd842ffffdd56}, + {0x9533f337, 0xffffd842ffffdd57}, + {0x9533f338, 0xffffd842ffffdd58}, + {0x9533f339, 0xffffd842ffffdd59}, + {0x9533f430, 0xffffd842ffffdd5a}, + {0x9533f431, 0xffffd842ffffdd5b}, + {0x9533f432, 0xffffd842ffffdd5c}, + {0x9533f433, 0xffffd842ffffdd5d}, + {0x9533f434, 0xffffd842ffffdd5e}, + {0x9533f435, 0xffffd842ffffdd5f}, + {0x9533f436, 0xffffd842ffffdd60}, + {0x9533f437, 0xffffd842ffffdd61}, + {0x9533f438, 0xffffd842ffffdd62}, + {0x9533f439, 0xffffd842ffffdd63}, + {0x9533f530, 0xffffd842ffffdd64}, + {0x9533f531, 0xffffd842ffffdd65}, + {0x9533f532, 0xffffd842ffffdd66}, + {0x9533f533, 0xffffd842ffffdd67}, + {0x9533f534, 0xffffd842ffffdd68}, + {0x9533f535, 0xffffd842ffffdd69}, + {0x9533f536, 0xffffd842ffffdd6a}, + {0x9533f537, 0xffffd842ffffdd6b}, + {0x9533f538, 0xffffd842ffffdd6c}, + {0x9533f539, 0xffffd842ffffdd6d}, + {0x9533f630, 0xffffd842ffffdd6e}, + {0x9533f631, 0xffffd842ffffdd6f}, + {0x9533f632, 0xffffd842ffffdd70}, + {0x9533f633, 0xffffd842ffffdd71}, + {0x9533f634, 0xffffd842ffffdd72}, + {0x9533f635, 0xffffd842ffffdd73}, + {0x9533f636, 0xffffd842ffffdd74}, + {0x9533f637, 0xffffd842ffffdd75}, + {0x9533f638, 0xffffd842ffffdd76}, + {0x9533f639, 0xffffd842ffffdd77}, + {0x9533f730, 0xffffd842ffffdd78}, + {0x9533f731, 0xffffd842ffffdd79}, + {0x9533f732, 0xffffd842ffffdd7a}, + {0x9533f733, 0xffffd842ffffdd7b}, + {0x9533f734, 0xffffd842ffffdd7c}, + {0x9533f735, 0xffffd842ffffdd7d}, + {0x9533f736, 0xffffd842ffffdd7e}, + {0x9533f737, 0xffffd842ffffdd7f}, + {0x9533f738, 0xffffd842ffffdd80}, + {0x9533f739, 0xffffd842ffffdd81}, + {0x9533f830, 0xffffd842ffffdd82}, + {0x9533f831, 0xffffd842ffffdd83}, + {0x9533f832, 0xffffd842ffffdd84}, + {0x9533f833, 0xffffd842ffffdd85}, + {0x9533f834, 0xffffd842ffffdd86}, + {0x9533f835, 0xffffd842ffffdd87}, + {0x9533f836, 0xffffd842ffffdd88}, + {0x9533f837, 0xffffd842ffffdd89}, + {0x9533f838, 0xffffd842ffffdd8a}, + {0x9533f839, 0xffffd842ffffdd8b}, + {0x9533f930, 0xffffd842ffffdd8c}, + {0x9533f931, 0xffffd842ffffdd8d}, + {0x9533f932, 0xffffd842ffffdd8e}, + {0x9533f933, 0xffffd842ffffdd8f}, + {0x9533f934, 0xffffd842ffffdd90}, + {0x9533f935, 0xffffd842ffffdd91}, + {0x9533f936, 0xffffd842ffffdd92}, + {0x9533f937, 0xffffd842ffffdd93}, + {0x9533f938, 0xffffd842ffffdd94}, + {0x9533f939, 0xffffd842ffffdd95}, + {0x9533fa30, 0xffffd842ffffdd96}, + {0x9533fa31, 0xffffd842ffffdd97}, + {0x9533fa32, 0xffffd842ffffdd98}, + {0x9533fa33, 0xffffd842ffffdd99}, + {0x9533fa34, 0xffffd842ffffdd9a}, + {0x9533fa35, 0xffffd842ffffdd9b}, + {0x9533fa36, 0xffffd842ffffdd9c}, + {0x9533fa37, 0xffffd842ffffdd9d}, + {0x9533fa38, 0xffffd842ffffdd9e}, + {0x9533fa39, 0xffffd842ffffdd9f}, + {0x9533fb30, 0xffffd842ffffdda0}, + {0x9533fb31, 0xffffd842ffffdda1}, + {0x9533fb32, 0xffffd842ffffdda2}, + {0x9533fb33, 0xffffd842ffffdda3}, + {0x9533fb34, 0xffffd842ffffdda4}, + {0x9533fb35, 0xffffd842ffffdda5}, + {0x9533fb36, 0xffffd842ffffdda6}, + {0x9533fb37, 0xffffd842ffffdda7}, + {0x9533fb38, 0xffffd842ffffdda8}, + {0x9533fb39, 0xffffd842ffffdda9}, + {0x9533fc30, 0xffffd842ffffddaa}, + {0x9533fc31, 0xffffd842ffffddab}, + {0x9533fc32, 0xffffd842ffffddac}, + {0x9533fc33, 0xffffd842ffffddad}, + {0x9533fc34, 0xffffd842ffffddae}, + {0x9533fc35, 0xffffd842ffffddaf}, + {0x9533fc36, 0xffffd842ffffddb0}, + {0x9533fc37, 0xffffd842ffffddb1}, + {0x9533fc38, 0xffffd842ffffddb2}, + {0x9533fc39, 0xffffd842ffffddb3}, + {0x9533fd30, 0xffffd842ffffddb4}, + {0x9533fd31, 0xffffd842ffffddb5}, + {0x9533fd32, 0xffffd842ffffddb6}, + {0x9533fd33, 0xffffd842ffffddb7}, + {0x9533fd34, 0xffffd842ffffddb8}, + {0x9533fd35, 0xffffd842ffffddb9}, + {0x9533fd36, 0xffffd842ffffddba}, + {0x9533fd37, 0xffffd842ffffddbb}, + {0x9533fd38, 0xffffd842ffffddbc}, + {0x9533fd39, 0xffffd842ffffddbd}, + {0x9533fe30, 0xffffd842ffffddbe}, + {0x9533fe31, 0xffffd842ffffddbf}, + {0x9533fe32, 0xffffd842ffffddc0}, + {0x9533fe33, 0xffffd842ffffddc1}, + {0x9533fe34, 0xffffd842ffffddc2}, + {0x9533fe35, 0xffffd842ffffddc3}, + {0x9533fe36, 0xffffd842ffffddc4}, + {0x9533fe37, 0xffffd842ffffddc5}, + {0x9533fe38, 0xffffd842ffffddc6}, + {0x9533fe39, 0xffffd842ffffddc7}, + {0x95348130, 0xffffd842ffffddc8}, + {0x95348131, 0xffffd842ffffddc9}, + {0x95348132, 0xffffd842ffffddca}, + {0x95348133, 0xffffd842ffffddcb}, + {0x95348134, 0xffffd842ffffddcc}, + {0x95348135, 0xffffd842ffffddcd}, + {0x95348136, 0xffffd842ffffddce}, + {0x95348137, 0xffffd842ffffddcf}, + {0x95348138, 0xffffd842ffffddd0}, + {0x95348139, 0xffffd842ffffddd1}, + {0x95348230, 0xffffd842ffffddd2}, + {0x95348231, 0xffffd842ffffddd3}, + {0x95348232, 0xffffd842ffffddd4}, + {0x95348233, 0xffffd842ffffddd5}, + {0x95348234, 0xffffd842ffffddd6}, + {0x95348235, 0xffffd842ffffddd7}, + {0x95348236, 0xffffd842ffffddd8}, + {0x95348237, 0xffffd842ffffddd9}, + {0x95348238, 0xffffd842ffffddda}, + {0x95348239, 0xffffd842ffffdddb}, + {0x95348330, 0xffffd842ffffdddc}, + {0x95348331, 0xffffd842ffffdddd}, + {0x95348332, 0xffffd842ffffddde}, + {0x95348333, 0xffffd842ffffdddf}, + {0x95348334, 0xffffd842ffffdde0}, + {0x95348335, 0xffffd842ffffdde1}, + {0x95348336, 0xffffd842ffffdde2}, + {0x95348337, 0xffffd842ffffdde3}, + {0x95348338, 0xffffd842ffffdde4}, + {0x95348339, 0xffffd842ffffdde5}, + {0x95348430, 0xffffd842ffffdde6}, + {0x95348431, 0xffffd842ffffdde7}, + {0x95348432, 0xffffd842ffffdde8}, + {0x95348433, 0xffffd842ffffdde9}, + {0x95348434, 0xffffd842ffffddea}, + {0x95348435, 0xffffd842ffffddeb}, + {0x95348436, 0xffffd842ffffddec}, + {0x95348437, 0xffffd842ffffdded}, + {0x95348438, 0xffffd842ffffddee}, + {0x95348439, 0xffffd842ffffddef}, + {0x95348530, 0xffffd842ffffddf0}, + {0x95348531, 0xffffd842ffffddf1}, + {0x95348532, 0xffffd842ffffddf2}, + {0x95348533, 0xffffd842ffffddf3}, + {0x95348534, 0xffffd842ffffddf4}, + {0x95348535, 0xffffd842ffffddf5}, + {0x95348536, 0xffffd842ffffddf6}, + {0x95348537, 0xffffd842ffffddf7}, + {0x95348538, 0xffffd842ffffddf8}, + {0x95348539, 0xffffd842ffffddf9}, + {0x95348630, 0xffffd842ffffddfa}, + {0x95348631, 0xffffd842ffffddfb}, + {0x95348632, 0xffffd842ffffddfc}, + {0x95348633, 0xffffd842ffffddfd}, + {0x95348634, 0xffffd842ffffddfe}, + {0x95348635, 0xffffd842ffffddff}, + {0x95348636, 0xffffd842ffffde00}, + {0x95348637, 0xffffd842ffffde01}, + {0x95348638, 0xffffd842ffffde02}, + {0x95348639, 0xffffd842ffffde03}, + {0x95348730, 0xffffd842ffffde04}, + {0x95348731, 0xffffd842ffffde05}, + {0x95348732, 0xffffd842ffffde06}, + {0x95348733, 0xffffd842ffffde07}, + {0x95348734, 0xffffd842ffffde08}, + {0x95348735, 0xffffd842ffffde09}, + {0x95348736, 0xffffd842ffffde0a}, + {0x95348737, 0xffffd842ffffde0b}, + {0x95348738, 0xffffd842ffffde0c}, + {0x95348739, 0xffffd842ffffde0d}, + {0x95348830, 0xffffd842ffffde0e}, + {0x95348831, 0xffffd842ffffde0f}, + {0x95348832, 0xffffd842ffffde10}, + {0x95348833, 0xffffd842ffffde11}, + {0x95348834, 0xffffd842ffffde12}, + {0x95348835, 0xffffd842ffffde13}, + {0x95348836, 0xffffd842ffffde14}, + {0x95348837, 0xffffd842ffffde15}, + {0x95348838, 0xffffd842ffffde16}, + {0x95348839, 0xffffd842ffffde17}, + {0x95348930, 0xffffd842ffffde18}, + {0x95348931, 0xffffd842ffffde19}, + {0x95348932, 0xffffd842ffffde1a}, + {0x95348933, 0xffffd842ffffde1b}, + {0x95348934, 0xffffd842ffffde1c}, + {0x95348935, 0xffffd842ffffde1d}, + {0x95348936, 0xffffd842ffffde1e}, + {0x95348937, 0xffffd842ffffde1f}, + {0x95348938, 0xffffd842ffffde20}, + {0x95348939, 0xffffd842ffffde21}, + {0x95348a30, 0xffffd842ffffde22}, + {0x95348a31, 0xffffd842ffffde23}, + {0x95348a32, 0xffffd842ffffde24}, + {0x95348a33, 0xffffd842ffffde25}, + {0x95348a34, 0xffffd842ffffde26}, + {0x95348a35, 0xffffd842ffffde27}, + {0x95348a36, 0xffffd842ffffde28}, + {0x95348a37, 0xffffd842ffffde29}, + {0x95348a38, 0xffffd842ffffde2a}, + {0x95348a39, 0xffffd842ffffde2b}, + {0x95348b30, 0xffffd842ffffde2c}, + {0x95348b31, 0xffffd842ffffde2d}, + {0x95348b32, 0xffffd842ffffde2e}, + {0x95348b33, 0xffffd842ffffde2f}, + {0x95348b34, 0xffffd842ffffde30}, + {0x95348b35, 0xffffd842ffffde31}, + {0x95348b36, 0xffffd842ffffde32}, + {0x95348b37, 0xffffd842ffffde33}, + {0x95348b38, 0xffffd842ffffde34}, + {0x95348b39, 0xffffd842ffffde35}, + {0x95348c30, 0xffffd842ffffde36}, + {0x95348c31, 0xffffd842ffffde37}, + {0x95348c32, 0xffffd842ffffde38}, + {0x95348c33, 0xffffd842ffffde39}, + {0x95348c34, 0xffffd842ffffde3a}, + {0x95348c35, 0xffffd842ffffde3b}, + {0x95348c36, 0xffffd842ffffde3c}, + {0x95348c37, 0xffffd842ffffde3d}, + {0x95348c38, 0xffffd842ffffde3e}, + {0x95348c39, 0xffffd842ffffde3f}, + {0x95348d30, 0xffffd842ffffde40}, + {0x95348d31, 0xffffd842ffffde41}, + {0x95348d32, 0xffffd842ffffde42}, + {0x95348d33, 0xffffd842ffffde43}, + {0x95348d34, 0xffffd842ffffde44}, + {0x95348d35, 0xffffd842ffffde45}, + {0x95348d36, 0xffffd842ffffde46}, + {0x95348d37, 0xffffd842ffffde47}, + {0x95348d38, 0xffffd842ffffde48}, + {0x95348d39, 0xffffd842ffffde49}, + {0x95348e30, 0xffffd842ffffde4a}, + {0x95348e31, 0xffffd842ffffde4b}, + {0x95348e32, 0xffffd842ffffde4c}, + {0x95348e33, 0xffffd842ffffde4d}, + {0x95348e34, 0xffffd842ffffde4e}, + {0x95348e35, 0xffffd842ffffde4f}, + {0x95348e36, 0xffffd842ffffde50}, + {0x95348e37, 0xffffd842ffffde51}, + {0x95348e38, 0xffffd842ffffde52}, + {0x95348e39, 0xffffd842ffffde53}, + {0x95348f30, 0xffffd842ffffde54}, + {0x95348f31, 0xffffd842ffffde55}, + {0x95348f32, 0xffffd842ffffde56}, + {0x95348f33, 0xffffd842ffffde57}, + {0x95348f34, 0xffffd842ffffde58}, + {0x95348f35, 0xffffd842ffffde59}, + {0x95348f36, 0xffffd842ffffde5a}, + {0x95348f37, 0xffffd842ffffde5b}, + {0x95348f38, 0xffffd842ffffde5c}, + {0x95348f39, 0xffffd842ffffde5d}, + {0x95349030, 0xffffd842ffffde5e}, + {0x95349031, 0xffffd842ffffde5f}, + {0x95349032, 0xffffd842ffffde60}, + {0x95349033, 0xffffd842ffffde61}, + {0x95349034, 0xffffd842ffffde62}, + {0x95349035, 0xffffd842ffffde63}, + {0x95349036, 0xffffd842ffffde64}, + {0x95349037, 0xffffd842ffffde65}, + {0x95349038, 0xffffd842ffffde66}, + {0x95349039, 0xffffd842ffffde67}, + {0x95349130, 0xffffd842ffffde68}, + {0x95349131, 0xffffd842ffffde69}, + {0x95349132, 0xffffd842ffffde6a}, + {0x95349133, 0xffffd842ffffde6b}, + {0x95349134, 0xffffd842ffffde6c}, + {0x95349135, 0xffffd842ffffde6d}, + {0x95349136, 0xffffd842ffffde6e}, + {0x95349137, 0xffffd842ffffde6f}, + {0x95349138, 0xffffd842ffffde70}, + {0x95349139, 0xffffd842ffffde71}, + {0x95349230, 0xffffd842ffffde72}, + {0x95349231, 0xffffd842ffffde73}, + {0x95349232, 0xffffd842ffffde74}, + {0x95349233, 0xffffd842ffffde75}, + {0x95349234, 0xffffd842ffffde76}, + {0x95349235, 0xffffd842ffffde77}, + {0x95349236, 0xffffd842ffffde78}, + {0x95349237, 0xffffd842ffffde79}, + {0x95349238, 0xffffd842ffffde7a}, + {0x95349239, 0xffffd842ffffde7b}, + {0x95349330, 0xffffd842ffffde7c}, + {0x95349331, 0xffffd842ffffde7d}, + {0x95349332, 0xffffd842ffffde7e}, + {0x95349333, 0xffffd842ffffde7f}, + {0x95349334, 0xffffd842ffffde80}, + {0x95349335, 0xffffd842ffffde81}, + {0x95349336, 0xffffd842ffffde82}, + {0x95349337, 0xffffd842ffffde83}, + {0x95349338, 0xffffd842ffffde84}, + {0x95349339, 0xffffd842ffffde85}, + {0x95349430, 0xffffd842ffffde86}, + {0x95349431, 0xffffd842ffffde87}, + {0x95349432, 0xffffd842ffffde88}, + {0x95349433, 0xffffd842ffffde89}, + {0x95349434, 0xffffd842ffffde8a}, + {0x95349435, 0xffffd842ffffde8b}, + {0x95349436, 0xffffd842ffffde8c}, + {0x95349437, 0xffffd842ffffde8d}, + {0x95349438, 0xffffd842ffffde8e}, + {0x95349439, 0xffffd842ffffde8f}, + {0x95349530, 0xffffd842ffffde90}, + {0x95349531, 0xffffd842ffffde91}, + {0x95349532, 0xffffd842ffffde92}, + {0x95349533, 0xffffd842ffffde93}, + {0x95349534, 0xffffd842ffffde94}, + {0x95349535, 0xffffd842ffffde95}, + {0x95349536, 0xffffd842ffffde96}, + {0x95349537, 0xffffd842ffffde97}, + {0x95349538, 0xffffd842ffffde98}, + {0x95349539, 0xffffd842ffffde99}, + {0x95349630, 0xffffd842ffffde9a}, + {0x95349631, 0xffffd842ffffde9b}, + {0x95349632, 0xffffd842ffffde9c}, + {0x95349633, 0xffffd842ffffde9d}, + {0x95349634, 0xffffd842ffffde9e}, + {0x95349635, 0xffffd842ffffde9f}, + {0x95349636, 0xffffd842ffffdea0}, + {0x95349637, 0xffffd842ffffdea1}, + {0x95349638, 0xffffd842ffffdea2}, + {0x95349639, 0xffffd842ffffdea3}, + {0x95349730, 0xffffd842ffffdea4}, + {0x95349731, 0xffffd842ffffdea5}, + {0x95349732, 0xffffd842ffffdea6}, + {0x95349733, 0xffffd842ffffdea7}, + {0x95349734, 0xffffd842ffffdea8}, + {0x95349735, 0xffffd842ffffdea9}, + {0x95349736, 0xffffd842ffffdeaa}, + {0x95349737, 0xffffd842ffffdeab}, + {0x95349738, 0xffffd842ffffdeac}, + {0x95349739, 0xffffd842ffffdead}, + {0x95349830, 0xffffd842ffffdeae}, + {0x95349831, 0xffffd842ffffdeaf}, + {0x95349832, 0xffffd842ffffdeb0}, + {0x95349833, 0xffffd842ffffdeb1}, + {0x95349834, 0xffffd842ffffdeb2}, + {0x95349835, 0xffffd842ffffdeb3}, + {0x95349836, 0xffffd842ffffdeb4}, + {0x95349837, 0xffffd842ffffdeb5}, + {0x95349838, 0xffffd842ffffdeb6}, + {0x95349839, 0xffffd842ffffdeb7}, + {0x95349930, 0xffffd842ffffdeb8}, + {0x95349931, 0xffffd842ffffdeb9}, + {0x95349932, 0xffffd842ffffdeba}, + {0x95349933, 0xffffd842ffffdebb}, + {0x95349934, 0xffffd842ffffdebc}, + {0x95349935, 0xffffd842ffffdebd}, + {0x95349936, 0xffffd842ffffdebe}, + {0x95349937, 0xffffd842ffffdebf}, + {0x95349938, 0xffffd842ffffdec0}, + {0x95349939, 0xffffd842ffffdec1}, + {0x95349a30, 0xffffd842ffffdec2}, + {0x95349a31, 0xffffd842ffffdec3}, + {0x95349a32, 0xffffd842ffffdec4}, + {0x95349a33, 0xffffd842ffffdec5}, + {0x95349a34, 0xffffd842ffffdec6}, + {0x95349a35, 0xffffd842ffffdec7}, + {0x95349a36, 0xffffd842ffffdec8}, + {0x95349a37, 0xffffd842ffffdec9}, + {0x95349a38, 0xffffd842ffffdeca}, + {0x95349a39, 0xffffd842ffffdecb}, + {0x95349b30, 0xffffd842ffffdecc}, + {0x95349b31, 0xffffd842ffffdecd}, + {0x95349b32, 0xffffd842ffffdece}, + {0x95349b33, 0xffffd842ffffdecf}, + {0x95349b34, 0xffffd842ffffded0}, + {0x95349b35, 0xffffd842ffffded1}, + {0x95349b36, 0xffffd842ffffded2}, + {0x95349b37, 0xffffd842ffffded3}, + {0x95349b38, 0xffffd842ffffded4}, + {0x95349b39, 0xffffd842ffffded5}, + {0x95349c30, 0xffffd842ffffded6}, + {0x95349c31, 0xffffd842ffffded7}, + {0x95349c32, 0xffffd842ffffded8}, + {0x95349c33, 0xffffd842ffffded9}, + {0x95349c34, 0xffffd842ffffdeda}, + {0x95349c35, 0xffffd842ffffdedb}, + {0x95349c36, 0xffffd842ffffdedc}, + {0x95349c37, 0xffffd842ffffdedd}, + {0x95349c38, 0xffffd842ffffdede}, + {0x95349c39, 0xffffd842ffffdedf}, + {0x95349d30, 0xffffd842ffffdee0}, + {0x95349d31, 0xffffd842ffffdee1}, + {0x95349d32, 0xffffd842ffffdee2}, + {0x95349d33, 0xffffd842ffffdee3}, + {0x95349d34, 0xffffd842ffffdee4}, + {0x95349d35, 0xffffd842ffffdee5}, + {0x95349d36, 0xffffd842ffffdee6}, + {0x95349d37, 0xffffd842ffffdee7}, + {0x95349d38, 0xffffd842ffffdee8}, + {0x95349d39, 0xffffd842ffffdee9}, + {0x95349e30, 0xffffd842ffffdeea}, + {0x95349e31, 0xffffd842ffffdeeb}, + {0x95349e32, 0xffffd842ffffdeec}, + {0x95349e33, 0xffffd842ffffdeed}, + {0x95349e34, 0xffffd842ffffdeee}, + {0x95349e35, 0xffffd842ffffdeef}, + {0x95349e36, 0xffffd842ffffdef0}, + {0x95349e37, 0xffffd842ffffdef1}, + {0x95349e38, 0xffffd842ffffdef2}, + {0x95349e39, 0xffffd842ffffdef3}, + {0x95349f30, 0xffffd842ffffdef4}, + {0x95349f31, 0xffffd842ffffdef5}, + {0x95349f32, 0xffffd842ffffdef6}, + {0x95349f33, 0xffffd842ffffdef7}, + {0x95349f34, 0xffffd842ffffdef8}, + {0x95349f35, 0xffffd842ffffdef9}, + {0x95349f36, 0xffffd842ffffdefa}, + {0x95349f37, 0xffffd842ffffdefb}, + {0x95349f38, 0xffffd842ffffdefc}, + {0x95349f39, 0xffffd842ffffdefd}, + {0x9534a030, 0xffffd842ffffdefe}, + {0x9534a031, 0xffffd842ffffdeff}, + {0x9534a032, 0xffffd842ffffdf00}, + {0x9534a033, 0xffffd842ffffdf01}, + {0x9534a034, 0xffffd842ffffdf02}, + {0x9534a035, 0xffffd842ffffdf03}, + {0x9534a036, 0xffffd842ffffdf04}, + {0x9534a037, 0xffffd842ffffdf05}, + {0x9534a038, 0xffffd842ffffdf06}, + {0x9534a039, 0xffffd842ffffdf07}, + {0x9534a130, 0xffffd842ffffdf08}, + {0x9534a131, 0xffffd842ffffdf09}, + {0x9534a132, 0xffffd842ffffdf0a}, + {0x9534a133, 0xffffd842ffffdf0b}, + {0x9534a134, 0xffffd842ffffdf0c}, + {0x9534a135, 0xffffd842ffffdf0d}, + {0x9534a136, 0xffffd842ffffdf0e}, + {0x9534a137, 0xffffd842ffffdf0f}, + {0x9534a138, 0xffffd842ffffdf10}, + {0x9534a139, 0xffffd842ffffdf11}, + {0x9534a230, 0xffffd842ffffdf12}, + {0x9534a231, 0xffffd842ffffdf13}, + {0x9534a232, 0xffffd842ffffdf14}, + {0x9534a233, 0xffffd842ffffdf15}, + {0x9534a234, 0xffffd842ffffdf16}, + {0x9534a235, 0xffffd842ffffdf17}, + {0x9534a236, 0xffffd842ffffdf18}, + {0x9534a237, 0xffffd842ffffdf19}, + {0x9534a238, 0xffffd842ffffdf1a}, + {0x9534a239, 0xffffd842ffffdf1b}, + {0x9534a330, 0xffffd842ffffdf1c}, + {0x9534a331, 0xffffd842ffffdf1d}, + {0x9534a332, 0xffffd842ffffdf1e}, + {0x9534a333, 0xffffd842ffffdf1f}, + {0x9534a334, 0xffffd842ffffdf20}, + {0x9534a335, 0xffffd842ffffdf21}, + {0x9534a336, 0xffffd842ffffdf22}, + {0x9534a337, 0xffffd842ffffdf23}, + {0x9534a338, 0xffffd842ffffdf24}, + {0x9534a339, 0xffffd842ffffdf25}, + {0x9534a430, 0xffffd842ffffdf26}, + {0x9534a431, 0xffffd842ffffdf27}, + {0x9534a432, 0xffffd842ffffdf28}, + {0x9534a433, 0xffffd842ffffdf29}, + {0x9534a434, 0xffffd842ffffdf2a}, + {0x9534a435, 0xffffd842ffffdf2b}, + {0x9534a436, 0xffffd842ffffdf2c}, + {0x9534a437, 0xffffd842ffffdf2d}, + {0x9534a438, 0xffffd842ffffdf2e}, + {0x9534a439, 0xffffd842ffffdf2f}, + {0x9534a530, 0xffffd842ffffdf30}, + {0x9534a531, 0xffffd842ffffdf31}, + {0x9534a532, 0xffffd842ffffdf32}, + {0x9534a533, 0xffffd842ffffdf33}, + {0x9534a534, 0xffffd842ffffdf34}, + {0x9534a535, 0xffffd842ffffdf35}, + {0x9534a536, 0xffffd842ffffdf36}, + {0x9534a537, 0xffffd842ffffdf37}, + {0x9534a538, 0xffffd842ffffdf38}, + {0x9534a539, 0xffffd842ffffdf39}, + {0x9534a630, 0xffffd842ffffdf3a}, + {0x9534a631, 0xffffd842ffffdf3b}, + {0x9534a632, 0xffffd842ffffdf3c}, + {0x9534a633, 0xffffd842ffffdf3d}, + {0x9534a634, 0xffffd842ffffdf3e}, + {0x9534a635, 0xffffd842ffffdf3f}, + {0x9534a636, 0xffffd842ffffdf40}, + {0x9534a637, 0xffffd842ffffdf41}, + {0x9534a638, 0xffffd842ffffdf42}, + {0x9534a639, 0xffffd842ffffdf43}, + {0x9534a730, 0xffffd842ffffdf44}, + {0x9534a731, 0xffffd842ffffdf45}, + {0x9534a732, 0xffffd842ffffdf46}, + {0x9534a733, 0xffffd842ffffdf47}, + {0x9534a734, 0xffffd842ffffdf48}, + {0x9534a735, 0xffffd842ffffdf49}, + {0x9534a736, 0xffffd842ffffdf4a}, + {0x9534a737, 0xffffd842ffffdf4b}, + {0x9534a738, 0xffffd842ffffdf4c}, + {0x9534a739, 0xffffd842ffffdf4d}, + {0x9534a830, 0xffffd842ffffdf4e}, + {0x9534a831, 0xffffd842ffffdf4f}, + {0x9534a832, 0xffffd842ffffdf50}, + {0x9534a833, 0xffffd842ffffdf51}, + {0x9534a834, 0xffffd842ffffdf52}, + {0x9534a835, 0xffffd842ffffdf53}, + {0x9534a836, 0xffffd842ffffdf54}, + {0x9534a837, 0xffffd842ffffdf55}, + {0x9534a838, 0xffffd842ffffdf56}, + {0x9534a839, 0xffffd842ffffdf57}, + {0x9534a930, 0xffffd842ffffdf58}, + {0x9534a931, 0xffffd842ffffdf59}, + {0x9534a932, 0xffffd842ffffdf5a}, + {0x9534a933, 0xffffd842ffffdf5b}, + {0x9534a934, 0xffffd842ffffdf5c}, + {0x9534a935, 0xffffd842ffffdf5d}, + {0x9534a936, 0xffffd842ffffdf5e}, + {0x9534a937, 0xffffd842ffffdf5f}, + {0x9534a938, 0xffffd842ffffdf60}, + {0x9534a939, 0xffffd842ffffdf61}, + {0x9534aa30, 0xffffd842ffffdf62}, + {0x9534aa31, 0xffffd842ffffdf63}, + {0x9534aa32, 0xffffd842ffffdf64}, + {0x9534aa33, 0xffffd842ffffdf65}, + {0x9534aa34, 0xffffd842ffffdf66}, + {0x9534aa35, 0xffffd842ffffdf67}, + {0x9534aa36, 0xffffd842ffffdf68}, + {0x9534aa37, 0xffffd842ffffdf69}, + {0x9534aa38, 0xffffd842ffffdf6a}, + {0x9534aa39, 0xffffd842ffffdf6b}, + {0x9534ab30, 0xffffd842ffffdf6c}, + {0x9534ab31, 0xffffd842ffffdf6d}, + {0x9534ab32, 0xffffd842ffffdf6e}, + {0x9534ab33, 0xffffd842ffffdf6f}, + {0x9534ab34, 0xffffd842ffffdf70}, + {0x9534ab35, 0xffffd842ffffdf71}, + {0x9534ab36, 0xffffd842ffffdf72}, + {0x9534ab37, 0xffffd842ffffdf73}, + {0x9534ab38, 0xffffd842ffffdf74}, + {0x9534ab39, 0xffffd842ffffdf75}, + {0x9534ac30, 0xffffd842ffffdf76}, + {0x9534ac31, 0xffffd842ffffdf77}, + {0x9534ac32, 0xffffd842ffffdf78}, + {0x9534ac33, 0xffffd842ffffdf79}, + {0x9534ac34, 0xffffd842ffffdf7a}, + {0x9534ac35, 0xffffd842ffffdf7b}, + {0x9534ac36, 0xffffd842ffffdf7c}, + {0x9534ac37, 0xffffd842ffffdf7d}, + {0x9534ac38, 0xffffd842ffffdf7e}, + {0x9534ac39, 0xffffd842ffffdf7f}, + {0x9534ad30, 0xffffd842ffffdf80}, + {0x9534ad31, 0xffffd842ffffdf81}, + {0x9534ad32, 0xffffd842ffffdf82}, + {0x9534ad33, 0xffffd842ffffdf83}, + {0x9534ad34, 0xffffd842ffffdf84}, + {0x9534ad35, 0xffffd842ffffdf85}, + {0x9534ad36, 0xffffd842ffffdf86}, + {0x9534ad37, 0xffffd842ffffdf87}, + {0x9534ad38, 0xffffd842ffffdf88}, + {0x9534ad39, 0xffffd842ffffdf89}, + {0x9534ae30, 0xffffd842ffffdf8a}, + {0x9534ae31, 0xffffd842ffffdf8b}, + {0x9534ae32, 0xffffd842ffffdf8c}, + {0x9534ae33, 0xffffd842ffffdf8d}, + {0x9534ae34, 0xffffd842ffffdf8e}, + {0x9534ae35, 0xffffd842ffffdf8f}, + {0x9534ae36, 0xffffd842ffffdf90}, + {0x9534ae37, 0xffffd842ffffdf91}, + {0x9534ae38, 0xffffd842ffffdf92}, + {0x9534ae39, 0xffffd842ffffdf93}, + {0x9534af30, 0xffffd842ffffdf94}, + {0x9534af31, 0xffffd842ffffdf95}, + {0x9534af32, 0xffffd842ffffdf96}, + {0x9534af33, 0xffffd842ffffdf97}, + {0x9534af34, 0xffffd842ffffdf98}, + {0x9534af35, 0xffffd842ffffdf99}, + {0x9534af36, 0xffffd842ffffdf9a}, + {0x9534af37, 0xffffd842ffffdf9b}, + {0x9534af38, 0xffffd842ffffdf9c}, + {0x9534af39, 0xffffd842ffffdf9d}, + {0x9534b030, 0xffffd842ffffdf9e}, + {0x9534b031, 0xffffd842ffffdf9f}, + {0x9534b032, 0xffffd842ffffdfa0}, + {0x9534b033, 0xffffd842ffffdfa1}, + {0x9534b034, 0xffffd842ffffdfa2}, + {0x9534b035, 0xffffd842ffffdfa3}, + {0x9534b036, 0xffffd842ffffdfa4}, + {0x9534b037, 0xffffd842ffffdfa5}, + {0x9534b038, 0xffffd842ffffdfa6}, + {0x9534b039, 0xffffd842ffffdfa7}, + {0x9534b130, 0xffffd842ffffdfa8}, + {0x9534b131, 0xffffd842ffffdfa9}, + {0x9534b132, 0xffffd842ffffdfaa}, + {0x9534b133, 0xffffd842ffffdfab}, + {0x9534b134, 0xffffd842ffffdfac}, + {0x9534b135, 0xffffd842ffffdfad}, + {0x9534b136, 0xffffd842ffffdfae}, + {0x9534b137, 0xffffd842ffffdfaf}, + {0x9534b138, 0xffffd842ffffdfb0}, + {0x9534b139, 0xffffd842ffffdfb1}, + {0x9534b230, 0xffffd842ffffdfb2}, + {0x9534b231, 0xffffd842ffffdfb3}, + {0x9534b232, 0xffffd842ffffdfb4}, + {0x9534b233, 0xffffd842ffffdfb5}, + {0x9534b234, 0xffffd842ffffdfb6}, + {0x9534b235, 0xffffd842ffffdfb7}, + {0x9534b236, 0xffffd842ffffdfb8}, + {0x9534b237, 0xffffd842ffffdfb9}, + {0x9534b238, 0xffffd842ffffdfba}, + {0x9534b239, 0xffffd842ffffdfbb}, + {0x9534b330, 0xffffd842ffffdfbc}, + {0x9534b331, 0xffffd842ffffdfbd}, + {0x9534b332, 0xffffd842ffffdfbe}, + {0x9534b333, 0xffffd842ffffdfbf}, + {0x9534b334, 0xffffd842ffffdfc0}, + {0x9534b335, 0xffffd842ffffdfc1}, + {0x9534b336, 0xffffd842ffffdfc2}, + {0x9534b337, 0xffffd842ffffdfc3}, + {0x9534b338, 0xffffd842ffffdfc4}, + {0x9534b339, 0xffffd842ffffdfc5}, + {0x9534b430, 0xffffd842ffffdfc6}, + {0x9534b431, 0xffffd842ffffdfc7}, + {0x9534b432, 0xffffd842ffffdfc8}, + {0x9534b433, 0xffffd842ffffdfc9}, + {0x9534b434, 0xffffd842ffffdfca}, + {0x9534b435, 0xffffd842ffffdfcb}, + {0x9534b436, 0xffffd842ffffdfcc}, + {0x9534b437, 0xffffd842ffffdfcd}, + {0x9534b438, 0xffffd842ffffdfce}, + {0x9534b439, 0xffffd842ffffdfcf}, + {0x9534b530, 0xffffd842ffffdfd0}, + {0x9534b531, 0xffffd842ffffdfd1}, + {0x9534b532, 0xffffd842ffffdfd2}, + {0x9534b533, 0xffffd842ffffdfd3}, + {0x9534b534, 0xffffd842ffffdfd4}, + {0x9534b535, 0xffffd842ffffdfd5}, + {0x9534b536, 0xffffd842ffffdfd6}, + {0x9534b537, 0xffffd842ffffdfd7}, + {0x9534b538, 0xffffd842ffffdfd8}, + {0x9534b539, 0xffffd842ffffdfd9}, + {0x9534b630, 0xffffd842ffffdfda}, + {0x9534b631, 0xffffd842ffffdfdb}, + {0x9534b632, 0xffffd842ffffdfdc}, + {0x9534b633, 0xffffd842ffffdfdd}, + {0x9534b634, 0xffffd842ffffdfde}, + {0x9534b635, 0xffffd842ffffdfdf}, + {0x9534b636, 0xffffd842ffffdfe0}, + {0x9534b637, 0xffffd842ffffdfe1}, + {0x9534b638, 0xffffd842ffffdfe2}, + {0x9534b639, 0xffffd842ffffdfe3}, + {0x9534b730, 0xffffd842ffffdfe4}, + {0x9534b731, 0xffffd842ffffdfe5}, + {0x9534b732, 0xffffd842ffffdfe6}, + {0x9534b733, 0xffffd842ffffdfe7}, + {0x9534b734, 0xffffd842ffffdfe8}, + {0x9534b735, 0xffffd842ffffdfe9}, + {0x9534b736, 0xffffd842ffffdfea}, + {0x9534b737, 0xffffd842ffffdfeb}, + {0x9534b738, 0xffffd842ffffdfec}, + {0x9534b739, 0xffffd842ffffdfed}, + {0x9534b830, 0xffffd842ffffdfee}, + {0x9534b831, 0xffffd842ffffdfef}, + {0x9534b832, 0xffffd842ffffdff0}, + {0x9534b833, 0xffffd842ffffdff1}, + {0x9534b834, 0xffffd842ffffdff2}, + {0x9534b835, 0xffffd842ffffdff3}, + {0x9534b836, 0xffffd842ffffdff4}, + {0x9534b837, 0xffffd842ffffdff5}, + {0x9534b838, 0xffffd842ffffdff6}, + {0x9534b839, 0xffffd842ffffdff7}, + {0x9534b930, 0xffffd842ffffdff8}, + {0x9534b931, 0xffffd842ffffdff9}, + {0x9534b932, 0xffffd842ffffdffa}, + {0x9534b933, 0xffffd842ffffdffb}, + {0x9534b934, 0xffffd842ffffdffc}, + {0x9534b935, 0xffffd842ffffdffd}, + {0x9534b936, 0xffffd842ffffdffe}, + {0x9534b937, 0xffffd842ffffdfff}, + {0x9534b938, 0xffffd843ffffdc00}, + {0x9534b939, 0xffffd843ffffdc01}, + {0x9534ba30, 0xffffd843ffffdc02}, + {0x9534ba31, 0xffffd843ffffdc03}, + {0x9534ba32, 0xffffd843ffffdc04}, + {0x9534ba33, 0xffffd843ffffdc05}, + {0x9534ba34, 0xffffd843ffffdc06}, + {0x9534ba35, 0xffffd843ffffdc07}, + {0x9534ba36, 0xffffd843ffffdc08}, + {0x9534ba37, 0xffffd843ffffdc09}, + {0x9534ba38, 0xffffd843ffffdc0a}, + {0x9534ba39, 0xffffd843ffffdc0b}, + {0x9534bb30, 0xffffd843ffffdc0c}, + {0x9534bb31, 0xffffd843ffffdc0d}, + {0x9534bb32, 0xffffd843ffffdc0e}, + {0x9534bb33, 0xffffd843ffffdc0f}, + {0x9534bb34, 0xffffd843ffffdc10}, + {0x9534bb35, 0xffffd843ffffdc11}, + {0x9534bb36, 0xffffd843ffffdc12}, + {0x9534bb37, 0xffffd843ffffdc13}, + {0x9534bb38, 0xffffd843ffffdc14}, + {0x9534bb39, 0xffffd843ffffdc15}, + {0x9534bc30, 0xffffd843ffffdc16}, + {0x9534bc31, 0xffffd843ffffdc17}, + {0x9534bc32, 0xffffd843ffffdc18}, + {0x9534bc33, 0xffffd843ffffdc19}, + {0x9534bc34, 0xffffd843ffffdc1a}, + {0x9534bc35, 0xffffd843ffffdc1b}, + {0x9534bc36, 0xffffd843ffffdc1c}, + {0x9534bc37, 0xffffd843ffffdc1d}, + {0x9534bc38, 0xffffd843ffffdc1e}, + {0x9534bc39, 0xffffd843ffffdc1f}, + {0x9534bd30, 0xffffd843ffffdc20}, + {0x9534bd31, 0xffffd843ffffdc21}, + {0x9534bd32, 0xffffd843ffffdc22}, + {0x9534bd33, 0xffffd843ffffdc23}, + {0x9534bd34, 0xffffd843ffffdc24}, + {0x9534bd35, 0xffffd843ffffdc25}, + {0x9534bd36, 0xffffd843ffffdc26}, + {0x9534bd37, 0xffffd843ffffdc27}, + {0x9534bd38, 0xffffd843ffffdc28}, + {0x9534bd39, 0xffffd843ffffdc29}, + {0x9534be30, 0xffffd843ffffdc2a}, + {0x9534be31, 0xffffd843ffffdc2b}, + {0x9534be32, 0xffffd843ffffdc2c}, + {0x9534be33, 0xffffd843ffffdc2d}, + {0x9534be34, 0xffffd843ffffdc2e}, + {0x9534be35, 0xffffd843ffffdc2f}, + {0x9534be36, 0xffffd843ffffdc30}, + {0x9534be37, 0xffffd843ffffdc31}, + {0x9534be38, 0xffffd843ffffdc32}, + {0x9534be39, 0xffffd843ffffdc33}, + {0x9534bf30, 0xffffd843ffffdc34}, + {0x9534bf31, 0xffffd843ffffdc35}, + {0x9534bf32, 0xffffd843ffffdc36}, + {0x9534bf33, 0xffffd843ffffdc37}, + {0x9534bf34, 0xffffd843ffffdc38}, + {0x9534bf35, 0xffffd843ffffdc39}, + {0x9534bf36, 0xffffd843ffffdc3a}, + {0x9534bf37, 0xffffd843ffffdc3b}, + {0x9534bf38, 0xffffd843ffffdc3c}, + {0x9534bf39, 0xffffd843ffffdc3d}, + {0x9534c030, 0xffffd843ffffdc3e}, + {0x9534c031, 0xffffd843ffffdc3f}, + {0x9534c032, 0xffffd843ffffdc40}, + {0x9534c033, 0xffffd843ffffdc41}, + {0x9534c034, 0xffffd843ffffdc42}, + {0x9534c035, 0xffffd843ffffdc43}, + {0x9534c036, 0xffffd843ffffdc44}, + {0x9534c037, 0xffffd843ffffdc45}, + {0x9534c038, 0xffffd843ffffdc46}, + {0x9534c039, 0xffffd843ffffdc47}, + {0x9534c130, 0xffffd843ffffdc48}, + {0x9534c131, 0xffffd843ffffdc49}, + {0x9534c132, 0xffffd843ffffdc4a}, + {0x9534c133, 0xffffd843ffffdc4b}, + {0x9534c134, 0xffffd843ffffdc4c}, + {0x9534c135, 0xffffd843ffffdc4d}, + {0x9534c136, 0xffffd843ffffdc4e}, + {0x9534c137, 0xffffd843ffffdc4f}, + {0x9534c138, 0xffffd843ffffdc50}, + {0x9534c139, 0xffffd843ffffdc51}, + {0x9534c230, 0xffffd843ffffdc52}, + {0x9534c231, 0xffffd843ffffdc53}, + {0x9534c232, 0xffffd843ffffdc54}, + {0x9534c233, 0xffffd843ffffdc55}, + {0x9534c234, 0xffffd843ffffdc56}, + {0x9534c235, 0xffffd843ffffdc57}, + {0x9534c236, 0xffffd843ffffdc58}, + {0x9534c237, 0xffffd843ffffdc59}, + {0x9534c238, 0xffffd843ffffdc5a}, + {0x9534c239, 0xffffd843ffffdc5b}, + {0x9534c330, 0xffffd843ffffdc5c}, + {0x9534c331, 0xffffd843ffffdc5d}, + {0x9534c332, 0xffffd843ffffdc5e}, + {0x9534c333, 0xffffd843ffffdc5f}, + {0x9534c334, 0xffffd843ffffdc60}, + {0x9534c335, 0xffffd843ffffdc61}, + {0x9534c336, 0xffffd843ffffdc62}, + {0x9534c337, 0xffffd843ffffdc63}, + {0x9534c338, 0xffffd843ffffdc64}, + {0x9534c339, 0xffffd843ffffdc65}, + {0x9534c430, 0xffffd843ffffdc66}, + {0x9534c431, 0xffffd843ffffdc67}, + {0x9534c432, 0xffffd843ffffdc68}, + {0x9534c433, 0xffffd843ffffdc69}, + {0x9534c434, 0xffffd843ffffdc6a}, + {0x9534c435, 0xffffd843ffffdc6b}, + {0x9534c436, 0xffffd843ffffdc6c}, + {0x9534c437, 0xffffd843ffffdc6d}, + {0x9534c438, 0xffffd843ffffdc6e}, + {0x9534c439, 0xffffd843ffffdc6f}, + {0x9534c530, 0xffffd843ffffdc70}, + {0x9534c531, 0xffffd843ffffdc71}, + {0x9534c532, 0xffffd843ffffdc72}, + {0x9534c533, 0xffffd843ffffdc73}, + {0x9534c534, 0xffffd843ffffdc74}, + {0x9534c535, 0xffffd843ffffdc75}, + {0x9534c536, 0xffffd843ffffdc76}, + {0x9534c537, 0xffffd843ffffdc77}, + {0x9534c538, 0xffffd843ffffdc78}, + {0x9534c539, 0xffffd843ffffdc79}, + {0x9534c630, 0xffffd843ffffdc7a}, + {0x9534c631, 0xffffd843ffffdc7b}, + {0x9534c632, 0xffffd843ffffdc7c}, + {0x9534c633, 0xffffd843ffffdc7d}, + {0x9534c634, 0xffffd843ffffdc7e}, + {0x9534c635, 0xffffd843ffffdc7f}, + {0x9534c636, 0xffffd843ffffdc80}, + {0x9534c637, 0xffffd843ffffdc81}, + {0x9534c638, 0xffffd843ffffdc82}, + {0x9534c639, 0xffffd843ffffdc83}, + {0x9534c730, 0xffffd843ffffdc84}, + {0x9534c731, 0xffffd843ffffdc85}, + {0x9534c732, 0xffffd843ffffdc86}, + {0x9534c733, 0xffffd843ffffdc87}, + {0x9534c734, 0xffffd843ffffdc88}, + {0x9534c735, 0xffffd843ffffdc89}, + {0x9534c736, 0xffffd843ffffdc8a}, + {0x9534c737, 0xffffd843ffffdc8b}, + {0x9534c738, 0xffffd843ffffdc8c}, + {0x9534c739, 0xffffd843ffffdc8d}, + {0x9534c830, 0xffffd843ffffdc8e}, + {0x9534c831, 0xffffd843ffffdc8f}, + {0x9534c832, 0xffffd843ffffdc90}, + {0x9534c833, 0xffffd843ffffdc91}, + {0x9534c834, 0xffffd843ffffdc92}, + {0x9534c835, 0xffffd843ffffdc93}, + {0x9534c836, 0xffffd843ffffdc94}, + {0x9534c837, 0xffffd843ffffdc95}, + {0x9534c838, 0xffffd843ffffdc96}, + {0x9534c839, 0xffffd843ffffdc97}, + {0x9534c930, 0xffffd843ffffdc98}, + {0x9534c931, 0xffffd843ffffdc99}, + {0x9534c932, 0xffffd843ffffdc9a}, + {0x9534c933, 0xffffd843ffffdc9b}, + {0x9534c934, 0xffffd843ffffdc9c}, + {0x9534c935, 0xffffd843ffffdc9d}, + {0x9534c936, 0xffffd843ffffdc9e}, + {0x9534c937, 0xffffd843ffffdc9f}, + {0x9534c938, 0xffffd843ffffdca0}, + {0x9534c939, 0xffffd843ffffdca1}, + {0x9534ca30, 0xffffd843ffffdca2}, + {0x9534ca31, 0xffffd843ffffdca3}, + {0x9534ca32, 0xffffd843ffffdca4}, + {0x9534ca33, 0xffffd843ffffdca5}, + {0x9534ca34, 0xffffd843ffffdca6}, + {0x9534ca35, 0xffffd843ffffdca7}, + {0x9534ca36, 0xffffd843ffffdca8}, + {0x9534ca37, 0xffffd843ffffdca9}, + {0x9534ca38, 0xffffd843ffffdcaa}, + {0x9534ca39, 0xffffd843ffffdcab}, + {0x9534cb30, 0xffffd843ffffdcac}, + {0x9534cb31, 0xffffd843ffffdcad}, + {0x9534cb32, 0xffffd843ffffdcae}, + {0x9534cb33, 0xffffd843ffffdcaf}, + {0x9534cb34, 0xffffd843ffffdcb0}, + {0x9534cb35, 0xffffd843ffffdcb1}, + {0x9534cb36, 0xffffd843ffffdcb2}, + {0x9534cb37, 0xffffd843ffffdcb3}, + {0x9534cb38, 0xffffd843ffffdcb4}, + {0x9534cb39, 0xffffd843ffffdcb5}, + {0x9534cc30, 0xffffd843ffffdcb6}, + {0x9534cc31, 0xffffd843ffffdcb7}, + {0x9534cc32, 0xffffd843ffffdcb8}, + {0x9534cc33, 0xffffd843ffffdcb9}, + {0x9534cc34, 0xffffd843ffffdcba}, + {0x9534cc35, 0xffffd843ffffdcbb}, + {0x9534cc36, 0xffffd843ffffdcbc}, + {0x9534cc37, 0xffffd843ffffdcbd}, + {0x9534cc38, 0xffffd843ffffdcbe}, + {0x9534cc39, 0xffffd843ffffdcbf}, + {0x9534cd30, 0xffffd843ffffdcc0}, + {0x9534cd31, 0xffffd843ffffdcc1}, + {0x9534cd32, 0xffffd843ffffdcc2}, + {0x9534cd33, 0xffffd843ffffdcc3}, + {0x9534cd34, 0xffffd843ffffdcc4}, + {0x9534cd35, 0xffffd843ffffdcc5}, + {0x9534cd36, 0xffffd843ffffdcc6}, + {0x9534cd37, 0xffffd843ffffdcc7}, + {0x9534cd38, 0xffffd843ffffdcc8}, + {0x9534cd39, 0xffffd843ffffdcc9}, + {0x9534ce30, 0xffffd843ffffdcca}, + {0x9534ce31, 0xffffd843ffffdccb}, + {0x9534ce32, 0xffffd843ffffdccc}, + {0x9534ce33, 0xffffd843ffffdccd}, + {0x9534ce34, 0xffffd843ffffdcce}, + {0x9534ce35, 0xffffd843ffffdccf}, + {0x9534ce36, 0xffffd843ffffdcd0}, + {0x9534ce37, 0xffffd843ffffdcd1}, + {0x9534ce38, 0xffffd843ffffdcd2}, + {0x9534ce39, 0xffffd843ffffdcd3}, + {0x9534cf30, 0xffffd843ffffdcd4}, + {0x9534cf31, 0xffffd843ffffdcd5}, + {0x9534cf32, 0xffffd843ffffdcd6}, + {0x9534cf33, 0xffffd843ffffdcd7}, + {0x9534cf34, 0xffffd843ffffdcd8}, + {0x9534cf35, 0xffffd843ffffdcd9}, + {0x9534cf36, 0xffffd843ffffdcda}, + {0x9534cf37, 0xffffd843ffffdcdb}, + {0x9534cf38, 0xffffd843ffffdcdc}, + {0x9534cf39, 0xffffd843ffffdcdd}, + {0x9534d030, 0xffffd843ffffdcde}, + {0x9534d031, 0xffffd843ffffdcdf}, + {0x9534d032, 0xffffd843ffffdce0}, + {0x9534d033, 0xffffd843ffffdce1}, + {0x9534d034, 0xffffd843ffffdce2}, + {0x9534d035, 0xffffd843ffffdce3}, + {0x9534d036, 0xffffd843ffffdce4}, + {0x9534d037, 0xffffd843ffffdce5}, + {0x9534d038, 0xffffd843ffffdce6}, + {0x9534d039, 0xffffd843ffffdce7}, + {0x9534d130, 0xffffd843ffffdce8}, + {0x9534d131, 0xffffd843ffffdce9}, + {0x9534d132, 0xffffd843ffffdcea}, + {0x9534d133, 0xffffd843ffffdceb}, + {0x9534d134, 0xffffd843ffffdcec}, + {0x9534d135, 0xffffd843ffffdced}, + {0x9534d136, 0xffffd843ffffdcee}, + {0x9534d137, 0xffffd843ffffdcef}, + {0x9534d138, 0xffffd843ffffdcf0}, + {0x9534d139, 0xffffd843ffffdcf1}, + {0x9534d230, 0xffffd843ffffdcf2}, + {0x9534d231, 0xffffd843ffffdcf3}, + {0x9534d232, 0xffffd843ffffdcf4}, + {0x9534d233, 0xffffd843ffffdcf5}, + {0x9534d234, 0xffffd843ffffdcf6}, + {0x9534d235, 0xffffd843ffffdcf7}, + {0x9534d236, 0xffffd843ffffdcf8}, + {0x9534d237, 0xffffd843ffffdcf9}, + {0x9534d238, 0xffffd843ffffdcfa}, + {0x9534d239, 0xffffd843ffffdcfb}, + {0x9534d330, 0xffffd843ffffdcfc}, + {0x9534d331, 0xffffd843ffffdcfd}, + {0x9534d332, 0xffffd843ffffdcfe}, + {0x9534d333, 0xffffd843ffffdcff}, + {0x9534d334, 0xffffd843ffffdd00}, + {0x9534d335, 0xffffd843ffffdd01}, + {0x9534d336, 0xffffd843ffffdd02}, + {0x9534d337, 0xffffd843ffffdd03}, + {0x9534d338, 0xffffd843ffffdd04}, + {0x9534d339, 0xffffd843ffffdd05}, + {0x9534d430, 0xffffd843ffffdd06}, + {0x9534d431, 0xffffd843ffffdd07}, + {0x9534d432, 0xffffd843ffffdd08}, + {0x9534d433, 0xffffd843ffffdd09}, + {0x9534d434, 0xffffd843ffffdd0a}, + {0x9534d435, 0xffffd843ffffdd0b}, + {0x9534d436, 0xffffd843ffffdd0c}, + {0x9534d437, 0xffffd843ffffdd0d}, + {0x9534d438, 0xffffd843ffffdd0e}, + {0x9534d439, 0xffffd843ffffdd0f}, + {0x9534d530, 0xffffd843ffffdd10}, + {0x9534d531, 0xffffd843ffffdd11}, + {0x9534d532, 0xffffd843ffffdd12}, + {0x9534d533, 0xffffd843ffffdd13}, + {0x9534d534, 0xffffd843ffffdd14}, + {0x9534d535, 0xffffd843ffffdd15}, + {0x9534d536, 0xffffd843ffffdd16}, + {0x9534d537, 0xffffd843ffffdd17}, + {0x9534d538, 0xffffd843ffffdd18}, + {0x9534d539, 0xffffd843ffffdd19}, + {0x9534d630, 0xffffd843ffffdd1a}, + {0x9534d631, 0xffffd843ffffdd1b}, + {0x9534d632, 0xffffd843ffffdd1c}, + {0x9534d633, 0xffffd843ffffdd1d}, + {0x9534d634, 0xffffd843ffffdd1e}, + {0x9534d635, 0xffffd843ffffdd1f}, + {0x9534d636, 0xffffd843ffffdd20}, + {0x9534d637, 0xffffd843ffffdd21}, + {0x9534d638, 0xffffd843ffffdd22}, + {0x9534d639, 0xffffd843ffffdd23}, + {0x9534d730, 0xffffd843ffffdd24}, + {0x9534d731, 0xffffd843ffffdd25}, + {0x9534d732, 0xffffd843ffffdd26}, + {0x9534d733, 0xffffd843ffffdd27}, + {0x9534d734, 0xffffd843ffffdd28}, + {0x9534d735, 0xffffd843ffffdd29}, + {0x9534d736, 0xffffd843ffffdd2a}, + {0x9534d737, 0xffffd843ffffdd2b}, + {0x9534d738, 0xffffd843ffffdd2c}, + {0x9534d739, 0xffffd843ffffdd2d}, + {0x9534d830, 0xffffd843ffffdd2e}, + {0x9534d831, 0xffffd843ffffdd2f}, + {0x9534d832, 0xffffd843ffffdd30}, + {0x9534d833, 0xffffd843ffffdd31}, + {0x9534d834, 0xffffd843ffffdd32}, + {0x9534d835, 0xffffd843ffffdd33}, + {0x9534d836, 0xffffd843ffffdd34}, + {0x9534d837, 0xffffd843ffffdd35}, + {0x9534d838, 0xffffd843ffffdd36}, + {0x9534d839, 0xffffd843ffffdd37}, + {0x9534d930, 0xffffd843ffffdd38}, + {0x9534d931, 0xffffd843ffffdd39}, + {0x9534d932, 0xffffd843ffffdd3a}, + {0x9534d933, 0xffffd843ffffdd3b}, + {0x9534d934, 0xffffd843ffffdd3c}, + {0x9534d935, 0xffffd843ffffdd3d}, + {0x9534d936, 0xffffd843ffffdd3e}, + {0x9534d937, 0xffffd843ffffdd3f}, + {0x9534d938, 0xffffd843ffffdd40}, + {0x9534d939, 0xffffd843ffffdd41}, + {0x9534da30, 0xffffd843ffffdd42}, + {0x9534da31, 0xffffd843ffffdd43}, + {0x9534da32, 0xffffd843ffffdd44}, + {0x9534da33, 0xffffd843ffffdd45}, + {0x9534da34, 0xffffd843ffffdd46}, + {0x9534da35, 0xffffd843ffffdd47}, + {0x9534da36, 0xffffd843ffffdd48}, + {0x9534da37, 0xffffd843ffffdd49}, + {0x9534da38, 0xffffd843ffffdd4a}, + {0x9534da39, 0xffffd843ffffdd4b}, + {0x9534db30, 0xffffd843ffffdd4c}, + {0x9534db31, 0xffffd843ffffdd4d}, + {0x9534db32, 0xffffd843ffffdd4e}, + {0x9534db33, 0xffffd843ffffdd4f}, + {0x9534db34, 0xffffd843ffffdd50}, + {0x9534db35, 0xffffd843ffffdd51}, + {0x9534db36, 0xffffd843ffffdd52}, + {0x9534db37, 0xffffd843ffffdd53}, + {0x9534db38, 0xffffd843ffffdd54}, + {0x9534db39, 0xffffd843ffffdd55}, + {0x9534dc30, 0xffffd843ffffdd56}, + {0x9534dc31, 0xffffd843ffffdd57}, + {0x9534dc32, 0xffffd843ffffdd58}, + {0x9534dc33, 0xffffd843ffffdd59}, + {0x9534dc34, 0xffffd843ffffdd5a}, + {0x9534dc35, 0xffffd843ffffdd5b}, + {0x9534dc36, 0xffffd843ffffdd5c}, + {0x9534dc37, 0xffffd843ffffdd5d}, + {0x9534dc38, 0xffffd843ffffdd5e}, + {0x9534dc39, 0xffffd843ffffdd5f}, + {0x9534dd30, 0xffffd843ffffdd60}, + {0x9534dd31, 0xffffd843ffffdd61}, + {0x9534dd32, 0xffffd843ffffdd62}, + {0x9534dd33, 0xffffd843ffffdd63}, + {0x9534dd34, 0xffffd843ffffdd64}, + {0x9534dd35, 0xffffd843ffffdd65}, + {0x9534dd36, 0xffffd843ffffdd66}, + {0x9534dd37, 0xffffd843ffffdd67}, + {0x9534dd38, 0xffffd843ffffdd68}, + {0x9534dd39, 0xffffd843ffffdd69}, + {0x9534de30, 0xffffd843ffffdd6a}, + {0x9534de31, 0xffffd843ffffdd6b}, + {0x9534de32, 0xffffd843ffffdd6c}, + {0x9534de33, 0xffffd843ffffdd6d}, + {0x9534de34, 0xffffd843ffffdd6e}, + {0x9534de35, 0xffffd843ffffdd6f}, + {0x9534de36, 0xffffd843ffffdd70}, + {0x9534de37, 0xffffd843ffffdd71}, + {0x9534de38, 0xffffd843ffffdd72}, + {0x9534de39, 0xffffd843ffffdd73}, + {0x9534df30, 0xffffd843ffffdd74}, + {0x9534df31, 0xffffd843ffffdd75}, + {0x9534df32, 0xffffd843ffffdd76}, + {0x9534df33, 0xffffd843ffffdd77}, + {0x9534df34, 0xffffd843ffffdd78}, + {0x9534df35, 0xffffd843ffffdd79}, + {0x9534df36, 0xffffd843ffffdd7a}, + {0x9534df37, 0xffffd843ffffdd7b}, + {0x9534df38, 0xffffd843ffffdd7c}, + {0x9534df39, 0xffffd843ffffdd7d}, + {0x9534e030, 0xffffd843ffffdd7e}, + {0x9534e031, 0xffffd843ffffdd7f}, + {0x9534e032, 0xffffd843ffffdd80}, + {0x9534e033, 0xffffd843ffffdd81}, + {0x9534e034, 0xffffd843ffffdd82}, + {0x9534e035, 0xffffd843ffffdd83}, + {0x9534e036, 0xffffd843ffffdd84}, + {0x9534e037, 0xffffd843ffffdd85}, + {0x9534e038, 0xffffd843ffffdd86}, + {0x9534e039, 0xffffd843ffffdd87}, + {0x9534e130, 0xffffd843ffffdd88}, + {0x9534e131, 0xffffd843ffffdd89}, + {0x9534e132, 0xffffd843ffffdd8a}, + {0x9534e133, 0xffffd843ffffdd8b}, + {0x9534e134, 0xffffd843ffffdd8c}, + {0x9534e135, 0xffffd843ffffdd8d}, + {0x9534e136, 0xffffd843ffffdd8e}, + {0x9534e137, 0xffffd843ffffdd8f}, + {0x9534e138, 0xffffd843ffffdd90}, + {0x9534e139, 0xffffd843ffffdd91}, + {0x9534e230, 0xffffd843ffffdd92}, + {0x9534e231, 0xffffd843ffffdd93}, + {0x9534e232, 0xffffd843ffffdd94}, + {0x9534e233, 0xffffd843ffffdd95}, + {0x9534e234, 0xffffd843ffffdd96}, + {0x9534e235, 0xffffd843ffffdd97}, + {0x9534e236, 0xffffd843ffffdd98}, + {0x9534e237, 0xffffd843ffffdd99}, + {0x9534e238, 0xffffd843ffffdd9a}, + {0x9534e239, 0xffffd843ffffdd9b}, + {0x9534e330, 0xffffd843ffffdd9c}, + {0x9534e331, 0xffffd843ffffdd9d}, + {0x9534e332, 0xffffd843ffffdd9e}, + {0x9534e333, 0xffffd843ffffdd9f}, + {0x9534e334, 0xffffd843ffffdda0}, + {0x9534e335, 0xffffd843ffffdda1}, + {0x9534e336, 0xffffd843ffffdda2}, + {0x9534e337, 0xffffd843ffffdda3}, + {0x9534e338, 0xffffd843ffffdda4}, + {0x9534e339, 0xffffd843ffffdda5}, + {0x9534e430, 0xffffd843ffffdda6}, + {0x9534e431, 0xffffd843ffffdda7}, + {0x9534e432, 0xffffd843ffffdda8}, + {0x9534e433, 0xffffd843ffffdda9}, + {0x9534e434, 0xffffd843ffffddaa}, + {0x9534e435, 0xffffd843ffffddab}, + {0x9534e436, 0xffffd843ffffddac}, + {0x9534e437, 0xffffd843ffffddad}, + {0x9534e438, 0xffffd843ffffddae}, + {0x9534e439, 0xffffd843ffffddaf}, + {0x9534e530, 0xffffd843ffffddb0}, + {0x9534e531, 0xffffd843ffffddb1}, + {0x9534e532, 0xffffd843ffffddb2}, + {0x9534e533, 0xffffd843ffffddb3}, + {0x9534e534, 0xffffd843ffffddb4}, + {0x9534e535, 0xffffd843ffffddb5}, + {0x9534e536, 0xffffd843ffffddb6}, + {0x9534e537, 0xffffd843ffffddb7}, + {0x9534e538, 0xffffd843ffffddb8}, + {0x9534e539, 0xffffd843ffffddb9}, + {0x9534e630, 0xffffd843ffffddba}, + {0x9534e631, 0xffffd843ffffddbb}, + {0x9534e632, 0xffffd843ffffddbc}, + {0x9534e633, 0xffffd843ffffddbd}, + {0x9534e634, 0xffffd843ffffddbe}, + {0x9534e635, 0xffffd843ffffddbf}, + {0x9534e636, 0xffffd843ffffddc0}, + {0x9534e637, 0xffffd843ffffddc1}, + {0x9534e638, 0xffffd843ffffddc2}, + {0x9534e639, 0xffffd843ffffddc3}, + {0x9534e730, 0xffffd843ffffddc4}, + {0x9534e731, 0xffffd843ffffddc5}, + {0x9534e732, 0xffffd843ffffddc6}, + {0x9534e733, 0xffffd843ffffddc7}, + {0x9534e734, 0xffffd843ffffddc8}, + {0x9534e735, 0xffffd843ffffddc9}, + {0x9534e736, 0xffffd843ffffddca}, + {0x9534e737, 0xffffd843ffffddcb}, + {0x9534e738, 0xffffd843ffffddcc}, + {0x9534e739, 0xffffd843ffffddcd}, + {0x9534e830, 0xffffd843ffffddce}, + {0x9534e831, 0xffffd843ffffddcf}, + {0x9534e832, 0xffffd843ffffddd0}, + {0x9534e833, 0xffffd843ffffddd1}, + {0x9534e834, 0xffffd843ffffddd2}, + {0x9534e835, 0xffffd843ffffddd3}, + {0x9534e836, 0xffffd843ffffddd4}, + {0x9534e837, 0xffffd843ffffddd5}, + {0x9534e838, 0xffffd843ffffddd6}, + {0x9534e839, 0xffffd843ffffddd7}, + {0x9534e930, 0xffffd843ffffddd8}, + {0x9534e931, 0xffffd843ffffddd9}, + {0x9534e932, 0xffffd843ffffddda}, + {0x9534e933, 0xffffd843ffffdddb}, + {0x9534e934, 0xffffd843ffffdddc}, + {0x9534e935, 0xffffd843ffffdddd}, + {0x9534e936, 0xffffd843ffffddde}, + {0x9534e937, 0xffffd843ffffdddf}, + {0x9534e938, 0xffffd843ffffdde0}, + {0x9534e939, 0xffffd843ffffdde1}, + {0x9534ea30, 0xffffd843ffffdde2}, + {0x9534ea31, 0xffffd843ffffdde3}, + {0x9534ea32, 0xffffd843ffffdde4}, + {0x9534ea33, 0xffffd843ffffdde5}, + {0x9534ea34, 0xffffd843ffffdde6}, + {0x9534ea35, 0xffffd843ffffdde7}, + {0x9534ea36, 0xffffd843ffffdde8}, + {0x9534ea37, 0xffffd843ffffdde9}, + {0x9534ea38, 0xffffd843ffffddea}, + {0x9534ea39, 0xffffd843ffffddeb}, + {0x9534eb30, 0xffffd843ffffddec}, + {0x9534eb31, 0xffffd843ffffdded}, + {0x9534eb32, 0xffffd843ffffddee}, + {0x9534eb33, 0xffffd843ffffddef}, + {0x9534eb34, 0xffffd843ffffddf0}, + {0x9534eb35, 0xffffd843ffffddf1}, + {0x9534eb36, 0xffffd843ffffddf2}, + {0x9534eb37, 0xffffd843ffffddf3}, + {0x9534eb38, 0xffffd843ffffddf4}, + {0x9534eb39, 0xffffd843ffffddf5}, + {0x9534ec30, 0xffffd843ffffddf6}, + {0x9534ec31, 0xffffd843ffffddf7}, + {0x9534ec32, 0xffffd843ffffddf8}, + {0x9534ec33, 0xffffd843ffffddf9}, + {0x9534ec34, 0xffffd843ffffddfa}, + {0x9534ec35, 0xffffd843ffffddfb}, + {0x9534ec36, 0xffffd843ffffddfc}, + {0x9534ec37, 0xffffd843ffffddfd}, + {0x9534ec38, 0xffffd843ffffddfe}, + {0x9534ec39, 0xffffd843ffffddff}, + {0x9534ed30, 0xffffd843ffffde00}, + {0x9534ed31, 0xffffd843ffffde01}, + {0x9534ed32, 0xffffd843ffffde02}, + {0x9534ed33, 0xffffd843ffffde03}, + {0x9534ed34, 0xffffd843ffffde04}, + {0x9534ed35, 0xffffd843ffffde05}, + {0x9534ed36, 0xffffd843ffffde06}, + {0x9534ed37, 0xffffd843ffffde07}, + {0x9534ed38, 0xffffd843ffffde08}, + {0x9534ed39, 0xffffd843ffffde09}, + {0x9534ee30, 0xffffd843ffffde0a}, + {0x9534ee31, 0xffffd843ffffde0b}, + {0x9534ee32, 0xffffd843ffffde0c}, + {0x9534ee33, 0xffffd843ffffde0d}, + {0x9534ee34, 0xffffd843ffffde0e}, + {0x9534ee35, 0xffffd843ffffde0f}, + {0x9534ee36, 0xffffd843ffffde10}, + {0x9534ee37, 0xffffd843ffffde11}, + {0x9534ee38, 0xffffd843ffffde12}, + {0x9534ee39, 0xffffd843ffffde13}, + {0x9534ef30, 0xffffd843ffffde14}, + {0x9534ef31, 0xffffd843ffffde15}, + {0x9534ef32, 0xffffd843ffffde16}, + {0x9534ef33, 0xffffd843ffffde17}, + {0x9534ef34, 0xffffd843ffffde18}, + {0x9534ef35, 0xffffd843ffffde19}, + {0x9534ef36, 0xffffd843ffffde1a}, + {0x9534ef37, 0xffffd843ffffde1b}, + {0x9534ef38, 0xffffd843ffffde1c}, + {0x9534ef39, 0xffffd843ffffde1d}, + {0x9534f030, 0xffffd843ffffde1e}, + {0x9534f031, 0xffffd843ffffde1f}, + {0x9534f032, 0xffffd843ffffde20}, + {0x9534f033, 0xffffd843ffffde21}, + {0x9534f034, 0xffffd843ffffde22}, + {0x9534f035, 0xffffd843ffffde23}, + {0x9534f036, 0xffffd843ffffde24}, + {0x9534f037, 0xffffd843ffffde25}, + {0x9534f038, 0xffffd843ffffde26}, + {0x9534f039, 0xffffd843ffffde27}, + {0x9534f130, 0xffffd843ffffde28}, + {0x9534f131, 0xffffd843ffffde29}, + {0x9534f132, 0xffffd843ffffde2a}, + {0x9534f133, 0xffffd843ffffde2b}, + {0x9534f134, 0xffffd843ffffde2c}, + {0x9534f135, 0xffffd843ffffde2d}, + {0x9534f136, 0xffffd843ffffde2e}, + {0x9534f137, 0xffffd843ffffde2f}, + {0x9534f138, 0xffffd843ffffde30}, + {0x9534f139, 0xffffd843ffffde31}, + {0x9534f230, 0xffffd843ffffde32}, + {0x9534f231, 0xffffd843ffffde33}, + {0x9534f232, 0xffffd843ffffde34}, + {0x9534f233, 0xffffd843ffffde35}, + {0x9534f234, 0xffffd843ffffde36}, + {0x9534f235, 0xffffd843ffffde37}, + {0x9534f236, 0xffffd843ffffde38}, + {0x9534f237, 0xffffd843ffffde39}, + {0x9534f238, 0xffffd843ffffde3a}, + {0x9534f239, 0xffffd843ffffde3b}, + {0x9534f330, 0xffffd843ffffde3c}, + {0x9534f331, 0xffffd843ffffde3d}, + {0x9534f332, 0xffffd843ffffde3e}, + {0x9534f333, 0xffffd843ffffde3f}, + {0x9534f334, 0xffffd843ffffde40}, + {0x9534f335, 0xffffd843ffffde41}, + {0x9534f336, 0xffffd843ffffde42}, + {0x9534f337, 0xffffd843ffffde43}, + {0x9534f338, 0xffffd843ffffde44}, + {0x9534f339, 0xffffd843ffffde45}, + {0x9534f430, 0xffffd843ffffde46}, + {0x9534f431, 0xffffd843ffffde47}, + {0x9534f432, 0xffffd843ffffde48}, + {0x9534f433, 0xffffd843ffffde49}, + {0x9534f434, 0xffffd843ffffde4a}, + {0x9534f435, 0xffffd843ffffde4b}, + {0x9534f436, 0xffffd843ffffde4c}, + {0x9534f437, 0xffffd843ffffde4d}, + {0x9534f438, 0xffffd843ffffde4e}, + {0x9534f439, 0xffffd843ffffde4f}, + {0x9534f530, 0xffffd843ffffde50}, + {0x9534f531, 0xffffd843ffffde51}, + {0x9534f532, 0xffffd843ffffde52}, + {0x9534f533, 0xffffd843ffffde53}, + {0x9534f534, 0xffffd843ffffde54}, + {0x9534f535, 0xffffd843ffffde55}, + {0x9534f536, 0xffffd843ffffde56}, + {0x9534f537, 0xffffd843ffffde57}, + {0x9534f538, 0xffffd843ffffde58}, + {0x9534f539, 0xffffd843ffffde59}, + {0x9534f630, 0xffffd843ffffde5a}, + {0x9534f631, 0xffffd843ffffde5b}, + {0x9534f632, 0xffffd843ffffde5c}, + {0x9534f633, 0xffffd843ffffde5d}, + {0x9534f634, 0xffffd843ffffde5e}, + {0x9534f635, 0xffffd843ffffde5f}, + {0x9534f636, 0xffffd843ffffde60}, + {0x9534f637, 0xffffd843ffffde61}, + {0x9534f638, 0xffffd843ffffde62}, + {0x9534f639, 0xffffd843ffffde63}, + {0x9534f730, 0xffffd843ffffde64}, + {0x9534f731, 0xffffd843ffffde65}, + {0x9534f732, 0xffffd843ffffde66}, + {0x9534f733, 0xffffd843ffffde67}, + {0x9534f734, 0xffffd843ffffde68}, + {0x9534f735, 0xffffd843ffffde69}, + {0x9534f736, 0xffffd843ffffde6a}, + {0x9534f737, 0xffffd843ffffde6b}, + {0x9534f738, 0xffffd843ffffde6c}, + {0x9534f739, 0xffffd843ffffde6d}, + {0x9534f830, 0xffffd843ffffde6e}, + {0x9534f831, 0xffffd843ffffde6f}, + {0x9534f832, 0xffffd843ffffde70}, + {0x9534f833, 0xffffd843ffffde71}, + {0x9534f834, 0xffffd843ffffde72}, + {0x9534f835, 0xffffd843ffffde73}, + {0x9534f836, 0xffffd843ffffde74}, + {0x9534f837, 0xffffd843ffffde75}, + {0x9534f838, 0xffffd843ffffde76}, + {0x9534f839, 0xffffd843ffffde77}, + {0x9534f930, 0xffffd843ffffde78}, + {0x9534f931, 0xffffd843ffffde79}, + {0x9534f932, 0xffffd843ffffde7a}, + {0x9534f933, 0xffffd843ffffde7b}, + {0x9534f934, 0xffffd843ffffde7c}, + {0x9534f935, 0xffffd843ffffde7d}, + {0x9534f936, 0xffffd843ffffde7e}, + {0x9534f937, 0xffffd843ffffde7f}, + {0x9534f938, 0xffffd843ffffde80}, + {0x9534f939, 0xffffd843ffffde81}, + {0x9534fa30, 0xffffd843ffffde82}, + {0x9534fa31, 0xffffd843ffffde83}, + {0x9534fa32, 0xffffd843ffffde84}, + {0x9534fa33, 0xffffd843ffffde85}, + {0x9534fa34, 0xffffd843ffffde86}, + {0x9534fa35, 0xffffd843ffffde87}, + {0x9534fa36, 0xffffd843ffffde88}, + {0x9534fa37, 0xffffd843ffffde89}, + {0x9534fa38, 0xffffd843ffffde8a}, + {0x9534fa39, 0xffffd843ffffde8b}, + {0x9534fb30, 0xffffd843ffffde8c}, + {0x9534fb31, 0xffffd843ffffde8d}, + {0x9534fb32, 0xffffd843ffffde8e}, + {0x9534fb33, 0xffffd843ffffde8f}, + {0x9534fb34, 0xffffd843ffffde90}, + {0x9534fb35, 0xffffd843ffffde91}, + {0x9534fb36, 0xffffd843ffffde92}, + {0x9534fb37, 0xffffd843ffffde93}, + {0x9534fb38, 0xffffd843ffffde94}, + {0x9534fb39, 0xffffd843ffffde95}, + {0x9534fc30, 0xffffd843ffffde96}, + {0x9534fc31, 0xffffd843ffffde97}, + {0x9534fc32, 0xffffd843ffffde98}, + {0x9534fc33, 0xffffd843ffffde99}, + {0x9534fc34, 0xffffd843ffffde9a}, + {0x9534fc35, 0xffffd843ffffde9b}, + {0x9534fc36, 0xffffd843ffffde9c}, + {0x9534fc37, 0xffffd843ffffde9d}, + {0x9534fc38, 0xffffd843ffffde9e}, + {0x9534fc39, 0xffffd843ffffde9f}, + {0x9534fd30, 0xffffd843ffffdea0}, + {0x9534fd31, 0xffffd843ffffdea1}, + {0x9534fd32, 0xffffd843ffffdea2}, + {0x9534fd33, 0xffffd843ffffdea3}, + {0x9534fd34, 0xffffd843ffffdea4}, + {0x9534fd35, 0xffffd843ffffdea5}, + {0x9534fd36, 0xffffd843ffffdea6}, + {0x9534fd37, 0xffffd843ffffdea7}, + {0x9534fd38, 0xffffd843ffffdea8}, + {0x9534fd39, 0xffffd843ffffdea9}, + {0x9534fe30, 0xffffd843ffffdeaa}, + {0x9534fe31, 0xffffd843ffffdeab}, + {0x9534fe32, 0xffffd843ffffdeac}, + {0x9534fe33, 0xffffd843ffffdead}, + {0x9534fe34, 0xffffd843ffffdeae}, + {0x9534fe35, 0xffffd843ffffdeaf}, + {0x9534fe36, 0xffffd843ffffdeb0}, + {0x9534fe37, 0xffffd843ffffdeb1}, + {0x9534fe38, 0xffffd843ffffdeb2}, + {0x9534fe39, 0xffffd843ffffdeb3}, + {0x95358130, 0xffffd843ffffdeb4}, + {0x95358131, 0xffffd843ffffdeb5}, + {0x95358132, 0xffffd843ffffdeb6}, + {0x95358133, 0xffffd843ffffdeb7}, + {0x95358134, 0xffffd843ffffdeb8}, + {0x95358135, 0xffffd843ffffdeb9}, + {0x95358136, 0xffffd843ffffdeba}, + {0x95358137, 0xffffd843ffffdebb}, + {0x95358138, 0xffffd843ffffdebc}, + {0x95358139, 0xffffd843ffffdebd}, + {0x95358230, 0xffffd843ffffdebe}, + {0x95358231, 0xffffd843ffffdebf}, + {0x95358232, 0xffffd843ffffdec0}, + {0x95358233, 0xffffd843ffffdec1}, + {0x95358234, 0xffffd843ffffdec2}, + {0x95358235, 0xffffd843ffffdec3}, + {0x95358236, 0xffffd843ffffdec4}, + {0x95358237, 0xffffd843ffffdec5}, + {0x95358238, 0xffffd843ffffdec6}, + {0x95358239, 0xffffd843ffffdec7}, + {0x95358330, 0xffffd843ffffdec8}, + {0x95358331, 0xffffd843ffffdec9}, + {0x95358332, 0xffffd843ffffdeca}, + {0x95358333, 0xffffd843ffffdecb}, + {0x95358334, 0xffffd843ffffdecc}, + {0x95358335, 0xffffd843ffffdecd}, + {0x95358336, 0xffffd843ffffdece}, + {0x95358337, 0xffffd843ffffdecf}, + {0x95358338, 0xffffd843ffffded0}, + {0x95358339, 0xffffd843ffffded1}, + {0x95358430, 0xffffd843ffffded2}, + {0x95358431, 0xffffd843ffffded3}, + {0x95358432, 0xffffd843ffffded4}, + {0x95358433, 0xffffd843ffffded5}, + {0x95358434, 0xffffd843ffffded6}, + {0x95358435, 0xffffd843ffffded7}, + {0x95358436, 0xffffd843ffffded8}, + {0x95358437, 0xffffd843ffffded9}, + {0x95358438, 0xffffd843ffffdeda}, + {0x95358439, 0xffffd843ffffdedb}, + {0x95358530, 0xffffd843ffffdedc}, + {0x95358531, 0xffffd843ffffdedd}, + {0x95358532, 0xffffd843ffffdede}, + {0x95358533, 0xffffd843ffffdedf}, + {0x95358534, 0xffffd843ffffdee0}, + {0x95358535, 0xffffd843ffffdee1}, + {0x95358536, 0xffffd843ffffdee2}, + {0x95358537, 0xffffd843ffffdee3}, + {0x95358538, 0xffffd843ffffdee4}, + {0x95358539, 0xffffd843ffffdee5}, + {0x95358630, 0xffffd843ffffdee6}, + {0x95358631, 0xffffd843ffffdee7}, + {0x95358632, 0xffffd843ffffdee8}, + {0x95358633, 0xffffd843ffffdee9}, + {0x95358634, 0xffffd843ffffdeea}, + {0x95358635, 0xffffd843ffffdeeb}, + {0x95358636, 0xffffd843ffffdeec}, + {0x95358637, 0xffffd843ffffdeed}, + {0x95358638, 0xffffd843ffffdeee}, + {0x95358639, 0xffffd843ffffdeef}, + {0x95358730, 0xffffd843ffffdef0}, + {0x95358731, 0xffffd843ffffdef1}, + {0x95358732, 0xffffd843ffffdef2}, + {0x95358733, 0xffffd843ffffdef3}, + {0x95358734, 0xffffd843ffffdef4}, + {0x95358735, 0xffffd843ffffdef5}, + {0x95358736, 0xffffd843ffffdef6}, + {0x95358737, 0xffffd843ffffdef7}, + {0x95358738, 0xffffd843ffffdef8}, + {0x95358739, 0xffffd843ffffdef9}, + {0x95358830, 0xffffd843ffffdefa}, + {0x95358831, 0xffffd843ffffdefb}, + {0x95358832, 0xffffd843ffffdefc}, + {0x95358833, 0xffffd843ffffdefd}, + {0x95358834, 0xffffd843ffffdefe}, + {0x95358835, 0xffffd843ffffdeff}, + {0x95358836, 0xffffd843ffffdf00}, + {0x95358837, 0xffffd843ffffdf01}, + {0x95358838, 0xffffd843ffffdf02}, + {0x95358839, 0xffffd843ffffdf03}, + {0x95358930, 0xffffd843ffffdf04}, + {0x95358931, 0xffffd843ffffdf05}, + {0x95358932, 0xffffd843ffffdf06}, + {0x95358933, 0xffffd843ffffdf07}, + {0x95358934, 0xffffd843ffffdf08}, + {0x95358935, 0xffffd843ffffdf09}, + {0x95358936, 0xffffd843ffffdf0a}, + {0x95358937, 0xffffd843ffffdf0b}, + {0x95358938, 0xffffd843ffffdf0c}, + {0x95358939, 0xffffd843ffffdf0d}, + {0x95358a30, 0xffffd843ffffdf0e}, + {0x95358a31, 0xffffd843ffffdf0f}, + {0x95358a32, 0xffffd843ffffdf10}, + {0x95358a33, 0xffffd843ffffdf11}, + {0x95358a34, 0xffffd843ffffdf12}, + {0x95358a35, 0xffffd843ffffdf13}, + {0x95358a36, 0xffffd843ffffdf14}, + {0x95358a37, 0xffffd843ffffdf15}, + {0x95358a38, 0xffffd843ffffdf16}, + {0x95358a39, 0xffffd843ffffdf17}, + {0x95358b30, 0xffffd843ffffdf18}, + {0x95358b31, 0xffffd843ffffdf19}, + {0x95358b32, 0xffffd843ffffdf1a}, + {0x95358b33, 0xffffd843ffffdf1b}, + {0x95358b34, 0xffffd843ffffdf1c}, + {0x95358b35, 0xffffd843ffffdf1d}, + {0x95358b36, 0xffffd843ffffdf1e}, + {0x95358b37, 0xffffd843ffffdf1f}, + {0x95358b38, 0xffffd843ffffdf20}, + {0x95358b39, 0xffffd843ffffdf21}, + {0x95358c30, 0xffffd843ffffdf22}, + {0x95358c31, 0xffffd843ffffdf23}, + {0x95358c32, 0xffffd843ffffdf24}, + {0x95358c33, 0xffffd843ffffdf25}, + {0x95358c34, 0xffffd843ffffdf26}, + {0x95358c35, 0xffffd843ffffdf27}, + {0x95358c36, 0xffffd843ffffdf28}, + {0x95358c37, 0xffffd843ffffdf29}, + {0x95358c38, 0xffffd843ffffdf2a}, + {0x95358c39, 0xffffd843ffffdf2b}, + {0x95358d30, 0xffffd843ffffdf2c}, + {0x95358d31, 0xffffd843ffffdf2d}, + {0x95358d32, 0xffffd843ffffdf2e}, + {0x95358d33, 0xffffd843ffffdf2f}, + {0x95358d34, 0xffffd843ffffdf30}, + {0x95358d35, 0xffffd843ffffdf31}, + {0x95358d36, 0xffffd843ffffdf32}, + {0x95358d37, 0xffffd843ffffdf33}, + {0x95358d38, 0xffffd843ffffdf34}, + {0x95358d39, 0xffffd843ffffdf35}, + {0x95358e30, 0xffffd843ffffdf36}, + {0x95358e31, 0xffffd843ffffdf37}, + {0x95358e32, 0xffffd843ffffdf38}, + {0x95358e33, 0xffffd843ffffdf39}, + {0x95358e34, 0xffffd843ffffdf3a}, + {0x95358e35, 0xffffd843ffffdf3b}, + {0x95358e36, 0xffffd843ffffdf3c}, + {0x95358e37, 0xffffd843ffffdf3d}, + {0x95358e38, 0xffffd843ffffdf3e}, + {0x95358e39, 0xffffd843ffffdf3f}, + {0x95358f30, 0xffffd843ffffdf40}, + {0x95358f31, 0xffffd843ffffdf41}, + {0x95358f32, 0xffffd843ffffdf42}, + {0x95358f33, 0xffffd843ffffdf43}, + {0x95358f34, 0xffffd843ffffdf44}, + {0x95358f35, 0xffffd843ffffdf45}, + {0x95358f36, 0xffffd843ffffdf46}, + {0x95358f37, 0xffffd843ffffdf47}, + {0x95358f38, 0xffffd843ffffdf48}, + {0x95358f39, 0xffffd843ffffdf49}, + {0x95359030, 0xffffd843ffffdf4a}, + {0x95359031, 0xffffd843ffffdf4b}, + {0x95359032, 0xffffd843ffffdf4c}, + {0x95359033, 0xffffd843ffffdf4d}, + {0x95359034, 0xffffd843ffffdf4e}, + {0x95359035, 0xffffd843ffffdf4f}, + {0x95359036, 0xffffd843ffffdf50}, + {0x95359037, 0xffffd843ffffdf51}, + {0x95359038, 0xffffd843ffffdf52}, + {0x95359039, 0xffffd843ffffdf53}, + {0x95359130, 0xffffd843ffffdf54}, + {0x95359131, 0xffffd843ffffdf55}, + {0x95359132, 0xffffd843ffffdf56}, + {0x95359133, 0xffffd843ffffdf57}, + {0x95359134, 0xffffd843ffffdf58}, + {0x95359135, 0xffffd843ffffdf59}, + {0x95359136, 0xffffd843ffffdf5a}, + {0x95359137, 0xffffd843ffffdf5b}, + {0x95359138, 0xffffd843ffffdf5c}, + {0x95359139, 0xffffd843ffffdf5d}, + {0x95359230, 0xffffd843ffffdf5e}, + {0x95359231, 0xffffd843ffffdf5f}, + {0x95359232, 0xffffd843ffffdf60}, + {0x95359233, 0xffffd843ffffdf61}, + {0x95359234, 0xffffd843ffffdf62}, + {0x95359235, 0xffffd843ffffdf63}, + {0x95359236, 0xffffd843ffffdf64}, + {0x95359237, 0xffffd843ffffdf65}, + {0x95359238, 0xffffd843ffffdf66}, + {0x95359239, 0xffffd843ffffdf67}, + {0x95359330, 0xffffd843ffffdf68}, + {0x95359331, 0xffffd843ffffdf69}, + {0x95359332, 0xffffd843ffffdf6a}, + {0x95359333, 0xffffd843ffffdf6b}, + {0x95359334, 0xffffd843ffffdf6c}, + {0x95359335, 0xffffd843ffffdf6d}, + {0x95359336, 0xffffd843ffffdf6e}, + {0x95359337, 0xffffd843ffffdf6f}, + {0x95359338, 0xffffd843ffffdf70}, + {0x95359339, 0xffffd843ffffdf71}, + {0x95359430, 0xffffd843ffffdf72}, + {0x95359431, 0xffffd843ffffdf73}, + {0x95359432, 0xffffd843ffffdf74}, + {0x95359433, 0xffffd843ffffdf75}, + {0x95359434, 0xffffd843ffffdf76}, + {0x95359435, 0xffffd843ffffdf77}, + {0x95359436, 0xffffd843ffffdf78}, + {0x95359437, 0xffffd843ffffdf79}, + {0x95359438, 0xffffd843ffffdf7a}, + {0x95359439, 0xffffd843ffffdf7b}, + {0x95359530, 0xffffd843ffffdf7c}, + {0x95359531, 0xffffd843ffffdf7d}, + {0x95359532, 0xffffd843ffffdf7e}, + {0x95359533, 0xffffd843ffffdf7f}, + {0x95359534, 0xffffd843ffffdf80}, + {0x95359535, 0xffffd843ffffdf81}, + {0x95359536, 0xffffd843ffffdf82}, + {0x95359537, 0xffffd843ffffdf83}, + {0x95359538, 0xffffd843ffffdf84}, + {0x95359539, 0xffffd843ffffdf85}, + {0x95359630, 0xffffd843ffffdf86}, + {0x95359631, 0xffffd843ffffdf87}, + {0x95359632, 0xffffd843ffffdf88}, + {0x95359633, 0xffffd843ffffdf89}, + {0x95359634, 0xffffd843ffffdf8a}, + {0x95359635, 0xffffd843ffffdf8b}, + {0x95359636, 0xffffd843ffffdf8c}, + {0x95359637, 0xffffd843ffffdf8d}, + {0x95359638, 0xffffd843ffffdf8e}, + {0x95359639, 0xffffd843ffffdf8f}, + {0x95359730, 0xffffd843ffffdf90}, + {0x95359731, 0xffffd843ffffdf91}, + {0x95359732, 0xffffd843ffffdf92}, + {0x95359733, 0xffffd843ffffdf93}, + {0x95359734, 0xffffd843ffffdf94}, + {0x95359735, 0xffffd843ffffdf95}, + {0x95359736, 0xffffd843ffffdf96}, + {0x95359737, 0xffffd843ffffdf97}, + {0x95359738, 0xffffd843ffffdf98}, + {0x95359739, 0xffffd843ffffdf99}, + {0x95359830, 0xffffd843ffffdf9a}, + {0x95359831, 0xffffd843ffffdf9b}, + {0x95359832, 0xffffd843ffffdf9c}, + {0x95359833, 0xffffd843ffffdf9d}, + {0x95359834, 0xffffd843ffffdf9e}, + {0x95359835, 0xffffd843ffffdf9f}, + {0x95359836, 0xffffd843ffffdfa0}, + {0x95359837, 0xffffd843ffffdfa1}, + {0x95359838, 0xffffd843ffffdfa2}, + {0x95359839, 0xffffd843ffffdfa3}, + {0x95359930, 0xffffd843ffffdfa4}, + {0x95359931, 0xffffd843ffffdfa5}, + {0x95359932, 0xffffd843ffffdfa6}, + {0x95359933, 0xffffd843ffffdfa7}, + {0x95359934, 0xffffd843ffffdfa8}, + {0x95359935, 0xffffd843ffffdfa9}, + {0x95359936, 0xffffd843ffffdfaa}, + {0x95359937, 0xffffd843ffffdfab}, + {0x95359938, 0xffffd843ffffdfac}, + {0x95359939, 0xffffd843ffffdfad}, + {0x95359a30, 0xffffd843ffffdfae}, + {0x95359a31, 0xffffd843ffffdfaf}, + {0x95359a32, 0xffffd843ffffdfb0}, + {0x95359a33, 0xffffd843ffffdfb1}, + {0x95359a34, 0xffffd843ffffdfb2}, + {0x95359a35, 0xffffd843ffffdfb3}, + {0x95359a36, 0xffffd843ffffdfb4}, + {0x95359a37, 0xffffd843ffffdfb5}, + {0x95359a38, 0xffffd843ffffdfb6}, + {0x95359a39, 0xffffd843ffffdfb7}, + {0x95359b30, 0xffffd843ffffdfb8}, + {0x95359b31, 0xffffd843ffffdfb9}, + {0x95359b32, 0xffffd843ffffdfba}, + {0x95359b33, 0xffffd843ffffdfbb}, + {0x95359b34, 0xffffd843ffffdfbc}, + {0x95359b35, 0xffffd843ffffdfbd}, + {0x95359b36, 0xffffd843ffffdfbe}, + {0x95359b37, 0xffffd843ffffdfbf}, + {0x95359b38, 0xffffd843ffffdfc0}, + {0x95359b39, 0xffffd843ffffdfc1}, + {0x95359c30, 0xffffd843ffffdfc2}, + {0x95359c31, 0xffffd843ffffdfc3}, + {0x95359c32, 0xffffd843ffffdfc4}, + {0x95359c33, 0xffffd843ffffdfc5}, + {0x95359c34, 0xffffd843ffffdfc6}, + {0x95359c35, 0xffffd843ffffdfc7}, + {0x95359c36, 0xffffd843ffffdfc8}, + {0x95359c37, 0xffffd843ffffdfc9}, + {0x95359c38, 0xffffd843ffffdfca}, + {0x95359c39, 0xffffd843ffffdfcb}, + {0x95359d30, 0xffffd843ffffdfcc}, + {0x95359d31, 0xffffd843ffffdfcd}, + {0x95359d32, 0xffffd843ffffdfce}, + {0x95359d33, 0xffffd843ffffdfcf}, + {0x95359d34, 0xffffd843ffffdfd0}, + {0x95359d35, 0xffffd843ffffdfd1}, + {0x95359d36, 0xffffd843ffffdfd2}, + {0x95359d37, 0xffffd843ffffdfd3}, + {0x95359d38, 0xffffd843ffffdfd4}, + {0x95359d39, 0xffffd843ffffdfd5}, + {0x95359e30, 0xffffd843ffffdfd6}, + {0x95359e31, 0xffffd843ffffdfd7}, + {0x95359e32, 0xffffd843ffffdfd8}, + {0x95359e33, 0xffffd843ffffdfd9}, + {0x95359e34, 0xffffd843ffffdfda}, + {0x95359e35, 0xffffd843ffffdfdb}, + {0x95359e36, 0xffffd843ffffdfdc}, + {0x95359e37, 0xffffd843ffffdfdd}, + {0x95359e38, 0xffffd843ffffdfde}, + {0x95359e39, 0xffffd843ffffdfdf}, + {0x95359f30, 0xffffd843ffffdfe0}, + {0x95359f31, 0xffffd843ffffdfe1}, + {0x95359f32, 0xffffd843ffffdfe2}, + {0x95359f33, 0xffffd843ffffdfe3}, + {0x95359f34, 0xffffd843ffffdfe4}, + {0x95359f35, 0xffffd843ffffdfe5}, + {0x95359f36, 0xffffd843ffffdfe6}, + {0x95359f37, 0xffffd843ffffdfe7}, + {0x95359f38, 0xffffd843ffffdfe8}, + {0x95359f39, 0xffffd843ffffdfe9}, + {0x9535a030, 0xffffd843ffffdfea}, + {0x9535a031, 0xffffd843ffffdfeb}, + {0x9535a032, 0xffffd843ffffdfec}, + {0x9535a033, 0xffffd843ffffdfed}, + {0x9535a034, 0xffffd843ffffdfee}, + {0x9535a035, 0xffffd843ffffdfef}, + {0x9535a036, 0xffffd843ffffdff0}, + {0x9535a037, 0xffffd843ffffdff1}, + {0x9535a038, 0xffffd843ffffdff2}, + {0x9535a039, 0xffffd843ffffdff3}, + {0x9535a130, 0xffffd843ffffdff4}, + {0x9535a131, 0xffffd843ffffdff5}, + {0x9535a132, 0xffffd843ffffdff6}, + {0x9535a133, 0xffffd843ffffdff7}, + {0x9535a134, 0xffffd843ffffdff8}, + {0x9535a135, 0xffffd843ffffdff9}, + {0x9535a136, 0xffffd843ffffdffa}, + {0x9535a137, 0xffffd843ffffdffb}, + {0x9535a138, 0xffffd843ffffdffc}, + {0x9535a139, 0xffffd843ffffdffd}, + {0x9535a230, 0xffffd843ffffdffe}, + {0x9535a231, 0xffffd843ffffdfff}, + {0x9535a232, 0xffffd844ffffdc00}, + {0x9535a233, 0xffffd844ffffdc01}, + {0x9535a234, 0xffffd844ffffdc02}, + {0x9535a235, 0xffffd844ffffdc03}, + {0x9535a236, 0xffffd844ffffdc04}, + {0x9535a237, 0xffffd844ffffdc05}, + {0x9535a238, 0xffffd844ffffdc06}, + {0x9535a239, 0xffffd844ffffdc07}, + {0x9535a330, 0xffffd844ffffdc08}, + {0x9535a331, 0xffffd844ffffdc09}, + {0x9535a332, 0xffffd844ffffdc0a}, + {0x9535a333, 0xffffd844ffffdc0b}, + {0x9535a334, 0xffffd844ffffdc0c}, + {0x9535a335, 0xffffd844ffffdc0d}, + {0x9535a336, 0xffffd844ffffdc0e}, + {0x9535a337, 0xffffd844ffffdc0f}, + {0x9535a338, 0xffffd844ffffdc10}, + {0x9535a339, 0xffffd844ffffdc11}, + {0x9535a430, 0xffffd844ffffdc12}, + {0x9535a431, 0xffffd844ffffdc13}, + {0x9535a432, 0xffffd844ffffdc14}, + {0x9535a433, 0xffffd844ffffdc15}, + {0x9535a434, 0xffffd844ffffdc16}, + {0x9535a435, 0xffffd844ffffdc17}, + {0x9535a436, 0xffffd844ffffdc18}, + {0x9535a437, 0xffffd844ffffdc19}, + {0x9535a438, 0xffffd844ffffdc1a}, + {0x9535a439, 0xffffd844ffffdc1b}, + {0x9535a530, 0xffffd844ffffdc1c}, + {0x9535a531, 0xffffd844ffffdc1d}, + {0x9535a532, 0xffffd844ffffdc1e}, + {0x9535a533, 0xffffd844ffffdc1f}, + {0x9535a534, 0xffffd844ffffdc20}, + {0x9535a535, 0xffffd844ffffdc21}, + {0x9535a536, 0xffffd844ffffdc22}, + {0x9535a537, 0xffffd844ffffdc23}, + {0x9535a538, 0xffffd844ffffdc24}, + {0x9535a539, 0xffffd844ffffdc25}, + {0x9535a630, 0xffffd844ffffdc26}, + {0x9535a631, 0xffffd844ffffdc27}, + {0x9535a632, 0xffffd844ffffdc28}, + {0x9535a633, 0xffffd844ffffdc29}, + {0x9535a634, 0xffffd844ffffdc2a}, + {0x9535a635, 0xffffd844ffffdc2b}, + {0x9535a636, 0xffffd844ffffdc2c}, + {0x9535a637, 0xffffd844ffffdc2d}, + {0x9535a638, 0xffffd844ffffdc2e}, + {0x9535a639, 0xffffd844ffffdc2f}, + {0x9535a730, 0xffffd844ffffdc30}, + {0x9535a731, 0xffffd844ffffdc31}, + {0x9535a732, 0xffffd844ffffdc32}, + {0x9535a733, 0xffffd844ffffdc33}, + {0x9535a734, 0xffffd844ffffdc34}, + {0x9535a735, 0xffffd844ffffdc35}, + {0x9535a736, 0xffffd844ffffdc36}, + {0x9535a737, 0xffffd844ffffdc37}, + {0x9535a738, 0xffffd844ffffdc38}, + {0x9535a739, 0xffffd844ffffdc39}, + {0x9535a830, 0xffffd844ffffdc3a}, + {0x9535a831, 0xffffd844ffffdc3b}, + {0x9535a832, 0xffffd844ffffdc3c}, + {0x9535a833, 0xffffd844ffffdc3d}, + {0x9535a834, 0xffffd844ffffdc3e}, + {0x9535a835, 0xffffd844ffffdc3f}, + {0x9535a836, 0xffffd844ffffdc40}, + {0x9535a837, 0xffffd844ffffdc41}, + {0x9535a838, 0xffffd844ffffdc42}, + {0x9535a839, 0xffffd844ffffdc43}, + {0x9535a930, 0xffffd844ffffdc44}, + {0x9535a931, 0xffffd844ffffdc45}, + {0x9535a932, 0xffffd844ffffdc46}, + {0x9535a933, 0xffffd844ffffdc47}, + {0x9535a934, 0xffffd844ffffdc48}, + {0x9535a935, 0xffffd844ffffdc49}, + {0x9535a936, 0xffffd844ffffdc4a}, + {0x9535a937, 0xffffd844ffffdc4b}, + {0x9535a938, 0xffffd844ffffdc4c}, + {0x9535a939, 0xffffd844ffffdc4d}, + {0x9535aa30, 0xffffd844ffffdc4e}, + {0x9535aa31, 0xffffd844ffffdc4f}, + {0x9535aa32, 0xffffd844ffffdc50}, + {0x9535aa33, 0xffffd844ffffdc51}, + {0x9535aa34, 0xffffd844ffffdc52}, + {0x9535aa35, 0xffffd844ffffdc53}, + {0x9535aa36, 0xffffd844ffffdc54}, + {0x9535aa37, 0xffffd844ffffdc55}, + {0x9535aa38, 0xffffd844ffffdc56}, + {0x9535aa39, 0xffffd844ffffdc57}, + {0x9535ab30, 0xffffd844ffffdc58}, + {0x9535ab31, 0xffffd844ffffdc59}, + {0x9535ab32, 0xffffd844ffffdc5a}, + {0x9535ab33, 0xffffd844ffffdc5b}, + {0x9535ab34, 0xffffd844ffffdc5c}, + {0x9535ab35, 0xffffd844ffffdc5d}, + {0x9535ab36, 0xffffd844ffffdc5e}, + {0x9535ab37, 0xffffd844ffffdc5f}, + {0x9535ab38, 0xffffd844ffffdc60}, + {0x9535ab39, 0xffffd844ffffdc61}, + {0x9535ac30, 0xffffd844ffffdc62}, + {0x9535ac31, 0xffffd844ffffdc63}, + {0x9535ac32, 0xffffd844ffffdc64}, + {0x9535ac33, 0xffffd844ffffdc65}, + {0x9535ac34, 0xffffd844ffffdc66}, + {0x9535ac35, 0xffffd844ffffdc67}, + {0x9535ac36, 0xffffd844ffffdc68}, + {0x9535ac37, 0xffffd844ffffdc69}, + {0x9535ac38, 0xffffd844ffffdc6a}, + {0x9535ac39, 0xffffd844ffffdc6b}, + {0x9535ad30, 0xffffd844ffffdc6c}, + {0x9535ad31, 0xffffd844ffffdc6d}, + {0x9535ad32, 0xffffd844ffffdc6e}, + {0x9535ad33, 0xffffd844ffffdc6f}, + {0x9535ad34, 0xffffd844ffffdc70}, + {0x9535ad35, 0xffffd844ffffdc71}, + {0x9535ad36, 0xffffd844ffffdc72}, + {0x9535ad37, 0xffffd844ffffdc73}, + {0x9535ad38, 0xffffd844ffffdc74}, + {0x9535ad39, 0xffffd844ffffdc75}, + {0x9535ae30, 0xffffd844ffffdc76}, + {0x9535ae31, 0xffffd844ffffdc77}, + {0x9535ae32, 0xffffd844ffffdc78}, + {0x9535ae33, 0xffffd844ffffdc79}, + {0x9535ae34, 0xffffd844ffffdc7a}, + {0x9535ae35, 0xffffd844ffffdc7b}, + {0x9535ae36, 0xffffd844ffffdc7c}, + {0x9535ae37, 0xffffd844ffffdc7d}, + {0x9535ae38, 0xffffd844ffffdc7e}, + {0x9535ae39, 0xffffd844ffffdc7f}, + {0x9535af30, 0xffffd844ffffdc80}, + {0x9535af31, 0xffffd844ffffdc81}, + {0x9535af32, 0xffffd844ffffdc82}, + {0x9535af33, 0xffffd844ffffdc83}, + {0x9535af34, 0xffffd844ffffdc84}, + {0x9535af35, 0xffffd844ffffdc85}, + {0x9535af36, 0xffffd844ffffdc86}, + {0x9535af37, 0xffffd844ffffdc87}, + {0x9535af38, 0xffffd844ffffdc88}, + {0x9535af39, 0xffffd844ffffdc89}, + {0x9535b030, 0xffffd844ffffdc8a}, + {0x9535b031, 0xffffd844ffffdc8b}, + {0x9535b032, 0xffffd844ffffdc8c}, + {0x9535b033, 0xffffd844ffffdc8d}, + {0x9535b034, 0xffffd844ffffdc8e}, + {0x9535b035, 0xffffd844ffffdc8f}, + {0x9535b036, 0xffffd844ffffdc90}, + {0x9535b037, 0xffffd844ffffdc91}, + {0x9535b038, 0xffffd844ffffdc92}, + {0x9535b039, 0xffffd844ffffdc93}, + {0x9535b130, 0xffffd844ffffdc94}, + {0x9535b131, 0xffffd844ffffdc95}, + {0x9535b132, 0xffffd844ffffdc96}, + {0x9535b133, 0xffffd844ffffdc97}, + {0x9535b134, 0xffffd844ffffdc98}, + {0x9535b135, 0xffffd844ffffdc99}, + {0x9535b136, 0xffffd844ffffdc9a}, + {0x9535b137, 0xffffd844ffffdc9b}, + {0x9535b138, 0xffffd844ffffdc9c}, + {0x9535b139, 0xffffd844ffffdc9d}, + {0x9535b230, 0xffffd844ffffdc9e}, + {0x9535b231, 0xffffd844ffffdc9f}, + {0x9535b232, 0xffffd844ffffdca0}, + {0x9535b233, 0xffffd844ffffdca1}, + {0x9535b234, 0xffffd844ffffdca2}, + {0x9535b235, 0xffffd844ffffdca3}, + {0x9535b236, 0xffffd844ffffdca4}, + {0x9535b237, 0xffffd844ffffdca5}, + {0x9535b238, 0xffffd844ffffdca6}, + {0x9535b239, 0xffffd844ffffdca7}, + {0x9535b330, 0xffffd844ffffdca8}, + {0x9535b331, 0xffffd844ffffdca9}, + {0x9535b332, 0xffffd844ffffdcaa}, + {0x9535b333, 0xffffd844ffffdcab}, + {0x9535b334, 0xffffd844ffffdcac}, + {0x9535b335, 0xffffd844ffffdcad}, + {0x9535b336, 0xffffd844ffffdcae}, + {0x9535b337, 0xffffd844ffffdcaf}, + {0x9535b338, 0xffffd844ffffdcb0}, + {0x9535b339, 0xffffd844ffffdcb1}, + {0x9535b430, 0xffffd844ffffdcb2}, + {0x9535b431, 0xffffd844ffffdcb3}, + {0x9535b432, 0xffffd844ffffdcb4}, + {0x9535b433, 0xffffd844ffffdcb5}, + {0x9535b434, 0xffffd844ffffdcb6}, + {0x9535b435, 0xffffd844ffffdcb7}, + {0x9535b436, 0xffffd844ffffdcb8}, + {0x9535b437, 0xffffd844ffffdcb9}, + {0x9535b438, 0xffffd844ffffdcba}, + {0x9535b439, 0xffffd844ffffdcbb}, + {0x9535b530, 0xffffd844ffffdcbc}, + {0x9535b531, 0xffffd844ffffdcbd}, + {0x9535b532, 0xffffd844ffffdcbe}, + {0x9535b533, 0xffffd844ffffdcbf}, + {0x9535b534, 0xffffd844ffffdcc0}, + {0x9535b535, 0xffffd844ffffdcc1}, + {0x9535b536, 0xffffd844ffffdcc2}, + {0x9535b537, 0xffffd844ffffdcc3}, + {0x9535b538, 0xffffd844ffffdcc4}, + {0x9535b539, 0xffffd844ffffdcc5}, + {0x9535b630, 0xffffd844ffffdcc6}, + {0x9535b631, 0xffffd844ffffdcc7}, + {0x9535b632, 0xffffd844ffffdcc8}, + {0x9535b633, 0xffffd844ffffdcc9}, + {0x9535b634, 0xffffd844ffffdcca}, + {0x9535b635, 0xffffd844ffffdccb}, + {0x9535b636, 0xffffd844ffffdccc}, + {0x9535b637, 0xffffd844ffffdccd}, + {0x9535b638, 0xffffd844ffffdcce}, + {0x9535b639, 0xffffd844ffffdccf}, + {0x9535b730, 0xffffd844ffffdcd0}, + {0x9535b731, 0xffffd844ffffdcd1}, + {0x9535b732, 0xffffd844ffffdcd2}, + {0x9535b733, 0xffffd844ffffdcd3}, + {0x9535b734, 0xffffd844ffffdcd4}, + {0x9535b735, 0xffffd844ffffdcd5}, + {0x9535b736, 0xffffd844ffffdcd6}, + {0x9535b737, 0xffffd844ffffdcd7}, + {0x9535b738, 0xffffd844ffffdcd8}, + {0x9535b739, 0xffffd844ffffdcd9}, + {0x9535b830, 0xffffd844ffffdcda}, + {0x9535b831, 0xffffd844ffffdcdb}, + {0x9535b832, 0xffffd844ffffdcdc}, + {0x9535b833, 0xffffd844ffffdcdd}, + {0x9535b834, 0xffffd844ffffdcde}, + {0x9535b835, 0xffffd844ffffdcdf}, + {0x9535b836, 0xffffd844ffffdce0}, + {0x9535b837, 0xffffd844ffffdce1}, + {0x9535b838, 0xffffd844ffffdce2}, + {0x9535b839, 0xffffd844ffffdce3}, + {0x9535b930, 0xffffd844ffffdce4}, + {0x9535b931, 0xffffd844ffffdce5}, + {0x9535b932, 0xffffd844ffffdce6}, + {0x9535b933, 0xffffd844ffffdce7}, + {0x9535b934, 0xffffd844ffffdce8}, + {0x9535b935, 0xffffd844ffffdce9}, + {0x9535b936, 0xffffd844ffffdcea}, + {0x9535b937, 0xffffd844ffffdceb}, + {0x9535b938, 0xffffd844ffffdcec}, + {0x9535b939, 0xffffd844ffffdced}, + {0x9535ba30, 0xffffd844ffffdcee}, + {0x9535ba31, 0xffffd844ffffdcef}, + {0x9535ba32, 0xffffd844ffffdcf0}, + {0x9535ba33, 0xffffd844ffffdcf1}, + {0x9535ba34, 0xffffd844ffffdcf2}, + {0x9535ba35, 0xffffd844ffffdcf3}, + {0x9535ba36, 0xffffd844ffffdcf4}, + {0x9535ba37, 0xffffd844ffffdcf5}, + {0x9535ba38, 0xffffd844ffffdcf6}, + {0x9535ba39, 0xffffd844ffffdcf7}, + {0x9535bb30, 0xffffd844ffffdcf8}, + {0x9535bb31, 0xffffd844ffffdcf9}, + {0x9535bb32, 0xffffd844ffffdcfa}, + {0x9535bb33, 0xffffd844ffffdcfb}, + {0x9535bb34, 0xffffd844ffffdcfc}, + {0x9535bb35, 0xffffd844ffffdcfd}, + {0x9535bb36, 0xffffd844ffffdcfe}, + {0x9535bb37, 0xffffd844ffffdcff}, + {0x9535bb38, 0xffffd844ffffdd00}, + {0x9535bb39, 0xffffd844ffffdd01}, + {0x9535bc30, 0xffffd844ffffdd02}, + {0x9535bc31, 0xffffd844ffffdd03}, + {0x9535bc32, 0xffffd844ffffdd04}, + {0x9535bc33, 0xffffd844ffffdd05}, + {0x9535bc34, 0xffffd844ffffdd06}, + {0x9535bc35, 0xffffd844ffffdd07}, + {0x9535bc36, 0xffffd844ffffdd08}, + {0x9535bc37, 0xffffd844ffffdd09}, + {0x9535bc38, 0xffffd844ffffdd0a}, + {0x9535bc39, 0xffffd844ffffdd0b}, + {0x9535bd30, 0xffffd844ffffdd0c}, + {0x9535bd31, 0xffffd844ffffdd0d}, + {0x9535bd32, 0xffffd844ffffdd0e}, + {0x9535bd33, 0xffffd844ffffdd0f}, + {0x9535bd34, 0xffffd844ffffdd10}, + {0x9535bd35, 0xffffd844ffffdd11}, + {0x9535bd36, 0xffffd844ffffdd12}, + {0x9535bd37, 0xffffd844ffffdd13}, + {0x9535bd38, 0xffffd844ffffdd14}, + {0x9535bd39, 0xffffd844ffffdd15}, + {0x9535be30, 0xffffd844ffffdd16}, + {0x9535be31, 0xffffd844ffffdd17}, + {0x9535be32, 0xffffd844ffffdd18}, + {0x9535be33, 0xffffd844ffffdd19}, + {0x9535be34, 0xffffd844ffffdd1a}, + {0x9535be35, 0xffffd844ffffdd1b}, + {0x9535be36, 0xffffd844ffffdd1c}, + {0x9535be37, 0xffffd844ffffdd1d}, + {0x9535be38, 0xffffd844ffffdd1e}, + {0x9535be39, 0xffffd844ffffdd1f}, + {0x9535bf30, 0xffffd844ffffdd20}, + {0x9535bf31, 0xffffd844ffffdd21}, + {0x9535bf32, 0xffffd844ffffdd22}, + {0x9535bf33, 0xffffd844ffffdd23}, + {0x9535bf34, 0xffffd844ffffdd24}, + {0x9535bf35, 0xffffd844ffffdd25}, + {0x9535bf36, 0xffffd844ffffdd26}, + {0x9535bf37, 0xffffd844ffffdd27}, + {0x9535bf38, 0xffffd844ffffdd28}, + {0x9535bf39, 0xffffd844ffffdd29}, + {0x9535c030, 0xffffd844ffffdd2a}, + {0x9535c031, 0xffffd844ffffdd2b}, + {0x9535c032, 0xffffd844ffffdd2c}, + {0x9535c033, 0xffffd844ffffdd2d}, + {0x9535c034, 0xffffd844ffffdd2e}, + {0x9535c035, 0xffffd844ffffdd2f}, + {0x9535c036, 0xffffd844ffffdd30}, + {0x9535c037, 0xffffd844ffffdd31}, + {0x9535c038, 0xffffd844ffffdd32}, + {0x9535c039, 0xffffd844ffffdd33}, + {0x9535c130, 0xffffd844ffffdd34}, + {0x9535c131, 0xffffd844ffffdd35}, + {0x9535c132, 0xffffd844ffffdd36}, + {0x9535c133, 0xffffd844ffffdd37}, + {0x9535c134, 0xffffd844ffffdd38}, + {0x9535c135, 0xffffd844ffffdd39}, + {0x9535c136, 0xffffd844ffffdd3a}, + {0x9535c137, 0xffffd844ffffdd3b}, + {0x9535c138, 0xffffd844ffffdd3c}, + {0x9535c139, 0xffffd844ffffdd3d}, + {0x9535c230, 0xffffd844ffffdd3e}, + {0x9535c231, 0xffffd844ffffdd3f}, + {0x9535c232, 0xffffd844ffffdd40}, + {0x9535c233, 0xffffd844ffffdd41}, + {0x9535c234, 0xffffd844ffffdd42}, + {0x9535c235, 0xffffd844ffffdd43}, + {0x9535c236, 0xffffd844ffffdd44}, + {0x9535c237, 0xffffd844ffffdd45}, + {0x9535c238, 0xffffd844ffffdd46}, + {0x9535c239, 0xffffd844ffffdd47}, + {0x9535c330, 0xffffd844ffffdd48}, + {0x9535c331, 0xffffd844ffffdd49}, + {0x9535c332, 0xffffd844ffffdd4a}, + {0x9535c333, 0xffffd844ffffdd4b}, + {0x9535c334, 0xffffd844ffffdd4c}, + {0x9535c335, 0xffffd844ffffdd4d}, + {0x9535c336, 0xffffd844ffffdd4e}, + {0x9535c337, 0xffffd844ffffdd4f}, + {0x9535c338, 0xffffd844ffffdd50}, + {0x9535c339, 0xffffd844ffffdd51}, + {0x9535c430, 0xffffd844ffffdd52}, + {0x9535c431, 0xffffd844ffffdd53}, + {0x9535c432, 0xffffd844ffffdd54}, + {0x9535c433, 0xffffd844ffffdd55}, + {0x9535c434, 0xffffd844ffffdd56}, + {0x9535c435, 0xffffd844ffffdd57}, + {0x9535c436, 0xffffd844ffffdd58}, + {0x9535c437, 0xffffd844ffffdd59}, + {0x9535c438, 0xffffd844ffffdd5a}, + {0x9535c439, 0xffffd844ffffdd5b}, + {0x9535c530, 0xffffd844ffffdd5c}, + {0x9535c531, 0xffffd844ffffdd5d}, + {0x9535c532, 0xffffd844ffffdd5e}, + {0x9535c533, 0xffffd844ffffdd5f}, + {0x9535c534, 0xffffd844ffffdd60}, + {0x9535c535, 0xffffd844ffffdd61}, + {0x9535c536, 0xffffd844ffffdd62}, + {0x9535c537, 0xffffd844ffffdd63}, + {0x9535c538, 0xffffd844ffffdd64}, + {0x9535c539, 0xffffd844ffffdd65}, + {0x9535c630, 0xffffd844ffffdd66}, + {0x9535c631, 0xffffd844ffffdd67}, + {0x9535c632, 0xffffd844ffffdd68}, + {0x9535c633, 0xffffd844ffffdd69}, + {0x9535c634, 0xffffd844ffffdd6a}, + {0x9535c635, 0xffffd844ffffdd6b}, + {0x9535c636, 0xffffd844ffffdd6c}, + {0x9535c637, 0xffffd844ffffdd6d}, + {0x9535c638, 0xffffd844ffffdd6e}, + {0x9535c639, 0xffffd844ffffdd6f}, + {0x9535c730, 0xffffd844ffffdd70}, + {0x9535c731, 0xffffd844ffffdd71}, + {0x9535c732, 0xffffd844ffffdd72}, + {0x9535c733, 0xffffd844ffffdd73}, + {0x9535c734, 0xffffd844ffffdd74}, + {0x9535c735, 0xffffd844ffffdd75}, + {0x9535c736, 0xffffd844ffffdd76}, + {0x9535c737, 0xffffd844ffffdd77}, + {0x9535c738, 0xffffd844ffffdd78}, + {0x9535c739, 0xffffd844ffffdd79}, + {0x9535c830, 0xffffd844ffffdd7a}, + {0x9535c831, 0xffffd844ffffdd7b}, + {0x9535c832, 0xffffd844ffffdd7c}, + {0x9535c833, 0xffffd844ffffdd7d}, + {0x9535c834, 0xffffd844ffffdd7e}, + {0x9535c835, 0xffffd844ffffdd7f}, + {0x9535c836, 0xffffd844ffffdd80}, + {0x9535c837, 0xffffd844ffffdd81}, + {0x9535c838, 0xffffd844ffffdd82}, + {0x9535c839, 0xffffd844ffffdd83}, + {0x9535c930, 0xffffd844ffffdd84}, + {0x9535c931, 0xffffd844ffffdd85}, + {0x9535c932, 0xffffd844ffffdd86}, + {0x9535c933, 0xffffd844ffffdd87}, + {0x9535c934, 0xffffd844ffffdd88}, + {0x9535c935, 0xffffd844ffffdd89}, + {0x9535c936, 0xffffd844ffffdd8a}, + {0x9535c937, 0xffffd844ffffdd8b}, + {0x9535c938, 0xffffd844ffffdd8c}, + {0x9535c939, 0xffffd844ffffdd8d}, + {0x9535ca30, 0xffffd844ffffdd8e}, + {0x9535ca31, 0xffffd844ffffdd8f}, + {0x9535ca32, 0xffffd844ffffdd90}, + {0x9535ca33, 0xffffd844ffffdd91}, + {0x9535ca34, 0xffffd844ffffdd92}, + {0x9535ca35, 0xffffd844ffffdd93}, + {0x9535ca36, 0xffffd844ffffdd94}, + {0x9535ca37, 0xffffd844ffffdd95}, + {0x9535ca38, 0xffffd844ffffdd96}, + {0x9535ca39, 0xffffd844ffffdd97}, + {0x9535cb30, 0xffffd844ffffdd98}, + {0x9535cb31, 0xffffd844ffffdd99}, + {0x9535cb32, 0xffffd844ffffdd9a}, + {0x9535cb33, 0xffffd844ffffdd9b}, + {0x9535cb34, 0xffffd844ffffdd9c}, + {0x9535cb35, 0xffffd844ffffdd9d}, + {0x9535cb36, 0xffffd844ffffdd9e}, + {0x9535cb37, 0xffffd844ffffdd9f}, + {0x9535cb38, 0xffffd844ffffdda0}, + {0x9535cb39, 0xffffd844ffffdda1}, + {0x9535cc30, 0xffffd844ffffdda2}, + {0x9535cc31, 0xffffd844ffffdda3}, + {0x9535cc32, 0xffffd844ffffdda4}, + {0x9535cc33, 0xffffd844ffffdda5}, + {0x9535cc34, 0xffffd844ffffdda6}, + {0x9535cc35, 0xffffd844ffffdda7}, + {0x9535cc36, 0xffffd844ffffdda8}, + {0x9535cc37, 0xffffd844ffffdda9}, + {0x9535cc38, 0xffffd844ffffddaa}, + {0x9535cc39, 0xffffd844ffffddab}, + {0x9535cd30, 0xffffd844ffffddac}, + {0x9535cd31, 0xffffd844ffffddad}, + {0x9535cd32, 0xffffd844ffffddae}, + {0x9535cd33, 0xffffd844ffffddaf}, + {0x9535cd34, 0xffffd844ffffddb0}, + {0x9535cd35, 0xffffd844ffffddb1}, + {0x9535cd36, 0xffffd844ffffddb2}, + {0x9535cd37, 0xffffd844ffffddb3}, + {0x9535cd38, 0xffffd844ffffddb4}, + {0x9535cd39, 0xffffd844ffffddb5}, + {0x9535ce30, 0xffffd844ffffddb6}, + {0x9535ce31, 0xffffd844ffffddb7}, + {0x9535ce32, 0xffffd844ffffddb8}, + {0x9535ce33, 0xffffd844ffffddb9}, + {0x9535ce34, 0xffffd844ffffddba}, + {0x9535ce35, 0xffffd844ffffddbb}, + {0x9535ce36, 0xffffd844ffffddbc}, + {0x9535ce37, 0xffffd844ffffddbd}, + {0x9535ce38, 0xffffd844ffffddbe}, + {0x9535ce39, 0xffffd844ffffddbf}, + {0x9535cf30, 0xffffd844ffffddc0}, + {0x9535cf31, 0xffffd844ffffddc1}, + {0x9535cf32, 0xffffd844ffffddc2}, + {0x9535cf33, 0xffffd844ffffddc3}, + {0x9535cf34, 0xffffd844ffffddc4}, + {0x9535cf35, 0xffffd844ffffddc5}, + {0x9535cf36, 0xffffd844ffffddc6}, + {0x9535cf37, 0xffffd844ffffddc7}, + {0x9535cf38, 0xffffd844ffffddc8}, + {0x9535cf39, 0xffffd844ffffddc9}, + {0x9535d030, 0xffffd844ffffddca}, + {0x9535d031, 0xffffd844ffffddcb}, + {0x9535d032, 0xffffd844ffffddcc}, + {0x9535d033, 0xffffd844ffffddcd}, + {0x9535d034, 0xffffd844ffffddce}, + {0x9535d035, 0xffffd844ffffddcf}, + {0x9535d036, 0xffffd844ffffddd0}, + {0x9535d037, 0xffffd844ffffddd1}, + {0x9535d038, 0xffffd844ffffddd2}, + {0x9535d039, 0xffffd844ffffddd3}, + {0x9535d130, 0xffffd844ffffddd4}, + {0x9535d131, 0xffffd844ffffddd5}, + {0x9535d132, 0xffffd844ffffddd6}, + {0x9535d133, 0xffffd844ffffddd7}, + {0x9535d134, 0xffffd844ffffddd8}, + {0x9535d135, 0xffffd844ffffddd9}, + {0x9535d136, 0xffffd844ffffddda}, + {0x9535d137, 0xffffd844ffffdddb}, + {0x9535d138, 0xffffd844ffffdddc}, + {0x9535d139, 0xffffd844ffffdddd}, + {0x9535d230, 0xffffd844ffffddde}, + {0x9535d231, 0xffffd844ffffdddf}, + {0x9535d232, 0xffffd844ffffdde0}, + {0x9535d233, 0xffffd844ffffdde1}, + {0x9535d234, 0xffffd844ffffdde2}, + {0x9535d235, 0xffffd844ffffdde3}, + {0x9535d236, 0xffffd844ffffdde4}, + {0x9535d237, 0xffffd844ffffdde5}, + {0x9535d238, 0xffffd844ffffdde6}, + {0x9535d239, 0xffffd844ffffdde7}, + {0x9535d330, 0xffffd844ffffdde8}, + {0x9535d331, 0xffffd844ffffdde9}, + {0x9535d332, 0xffffd844ffffddea}, + {0x9535d333, 0xffffd844ffffddeb}, + {0x9535d334, 0xffffd844ffffddec}, + {0x9535d335, 0xffffd844ffffdded}, + {0x9535d336, 0xffffd844ffffddee}, + {0x9535d337, 0xffffd844ffffddef}, + {0x9535d338, 0xffffd844ffffddf0}, + {0x9535d339, 0xffffd844ffffddf1}, + {0x9535d430, 0xffffd844ffffddf2}, + {0x9535d431, 0xffffd844ffffddf3}, + {0x9535d432, 0xffffd844ffffddf4}, + {0x9535d433, 0xffffd844ffffddf5}, + {0x9535d434, 0xffffd844ffffddf6}, + {0x9535d435, 0xffffd844ffffddf7}, + {0x9535d436, 0xffffd844ffffddf8}, + {0x9535d437, 0xffffd844ffffddf9}, + {0x9535d438, 0xffffd844ffffddfa}, + {0x9535d439, 0xffffd844ffffddfb}, + {0x9535d530, 0xffffd844ffffddfc}, + {0x9535d531, 0xffffd844ffffddfd}, + {0x9535d532, 0xffffd844ffffddfe}, + {0x9535d533, 0xffffd844ffffddff}, + {0x9535d534, 0xffffd844ffffde00}, + {0x9535d535, 0xffffd844ffffde01}, + {0x9535d536, 0xffffd844ffffde02}, + {0x9535d537, 0xffffd844ffffde03}, + {0x9535d538, 0xffffd844ffffde04}, + {0x9535d539, 0xffffd844ffffde05}, + {0x9535d630, 0xffffd844ffffde06}, + {0x9535d631, 0xffffd844ffffde07}, + {0x9535d632, 0xffffd844ffffde08}, + {0x9535d633, 0xffffd844ffffde09}, + {0x9535d634, 0xffffd844ffffde0a}, + {0x9535d635, 0xffffd844ffffde0b}, + {0x9535d636, 0xffffd844ffffde0c}, + {0x9535d637, 0xffffd844ffffde0d}, + {0x9535d638, 0xffffd844ffffde0e}, + {0x9535d639, 0xffffd844ffffde0f}, + {0x9535d730, 0xffffd844ffffde10}, + {0x9535d731, 0xffffd844ffffde11}, + {0x9535d732, 0xffffd844ffffde12}, + {0x9535d733, 0xffffd844ffffde13}, + {0x9535d734, 0xffffd844ffffde14}, + {0x9535d735, 0xffffd844ffffde15}, + {0x9535d736, 0xffffd844ffffde16}, + {0x9535d737, 0xffffd844ffffde17}, + {0x9535d738, 0xffffd844ffffde18}, + {0x9535d739, 0xffffd844ffffde19}, + {0x9535d830, 0xffffd844ffffde1a}, + {0x9535d831, 0xffffd844ffffde1b}, + {0x9535d832, 0xffffd844ffffde1c}, + {0x9535d833, 0xffffd844ffffde1d}, + {0x9535d834, 0xffffd844ffffde1e}, + {0x9535d835, 0xffffd844ffffde1f}, + {0x9535d836, 0xffffd844ffffde20}, + {0x9535d837, 0xffffd844ffffde21}, + {0x9535d838, 0xffffd844ffffde22}, + {0x9535d839, 0xffffd844ffffde23}, + {0x9535d930, 0xffffd844ffffde24}, + {0x9535d931, 0xffffd844ffffde25}, + {0x9535d932, 0xffffd844ffffde26}, + {0x9535d933, 0xffffd844ffffde27}, + {0x9535d934, 0xffffd844ffffde28}, + {0x9535d935, 0xffffd844ffffde29}, + {0x9535d936, 0xffffd844ffffde2a}, + {0x9535d937, 0xffffd844ffffde2b}, + {0x9535d938, 0xffffd844ffffde2c}, + {0x9535d939, 0xffffd844ffffde2d}, + {0x9535da30, 0xffffd844ffffde2e}, + {0x9535da31, 0xffffd844ffffde2f}, + {0x9535da32, 0xffffd844ffffde30}, + {0x9535da33, 0xffffd844ffffde31}, + {0x9535da34, 0xffffd844ffffde32}, + {0x9535da35, 0xffffd844ffffde33}, + {0x9535da36, 0xffffd844ffffde34}, + {0x9535da37, 0xffffd844ffffde35}, + {0x9535da38, 0xffffd844ffffde36}, + {0x9535da39, 0xffffd844ffffde37}, + {0x9535db30, 0xffffd844ffffde38}, + {0x9535db31, 0xffffd844ffffde39}, + {0x9535db32, 0xffffd844ffffde3a}, + {0x9535db33, 0xffffd844ffffde3b}, + {0x9535db34, 0xffffd844ffffde3c}, + {0x9535db35, 0xffffd844ffffde3d}, + {0x9535db36, 0xffffd844ffffde3e}, + {0x9535db37, 0xffffd844ffffde3f}, + {0x9535db38, 0xffffd844ffffde40}, + {0x9535db39, 0xffffd844ffffde41}, + {0x9535dc30, 0xffffd844ffffde42}, + {0x9535dc31, 0xffffd844ffffde43}, + {0x9535dc32, 0xffffd844ffffde44}, + {0x9535dc33, 0xffffd844ffffde45}, + {0x9535dc34, 0xffffd844ffffde46}, + {0x9535dc35, 0xffffd844ffffde47}, + {0x9535dc36, 0xffffd844ffffde48}, + {0x9535dc37, 0xffffd844ffffde49}, + {0x9535dc38, 0xffffd844ffffde4a}, + {0x9535dc39, 0xffffd844ffffde4b}, + {0x9535dd30, 0xffffd844ffffde4c}, + {0x9535dd31, 0xffffd844ffffde4d}, + {0x9535dd32, 0xffffd844ffffde4e}, + {0x9535dd33, 0xffffd844ffffde4f}, + {0x9535dd34, 0xffffd844ffffde50}, + {0x9535dd35, 0xffffd844ffffde51}, + {0x9535dd36, 0xffffd844ffffde52}, + {0x9535dd37, 0xffffd844ffffde53}, + {0x9535dd38, 0xffffd844ffffde54}, + {0x9535dd39, 0xffffd844ffffde55}, + {0x9535de30, 0xffffd844ffffde56}, + {0x9535de31, 0xffffd844ffffde57}, + {0x9535de32, 0xffffd844ffffde58}, + {0x9535de33, 0xffffd844ffffde59}, + {0x9535de34, 0xffffd844ffffde5a}, + {0x9535de35, 0xffffd844ffffde5b}, + {0x9535de36, 0xffffd844ffffde5c}, + {0x9535de37, 0xffffd844ffffde5d}, + {0x9535de38, 0xffffd844ffffde5e}, + {0x9535de39, 0xffffd844ffffde5f}, + {0x9535df30, 0xffffd844ffffde60}, + {0x9535df31, 0xffffd844ffffde61}, + {0x9535df32, 0xffffd844ffffde62}, + {0x9535df33, 0xffffd844ffffde63}, + {0x9535df34, 0xffffd844ffffde64}, + {0x9535df35, 0xffffd844ffffde65}, + {0x9535df36, 0xffffd844ffffde66}, + {0x9535df37, 0xffffd844ffffde67}, + {0x9535df38, 0xffffd844ffffde68}, + {0x9535df39, 0xffffd844ffffde69}, + {0x9535e030, 0xffffd844ffffde6a}, + {0x9535e031, 0xffffd844ffffde6b}, + {0x9535e032, 0xffffd844ffffde6c}, + {0x9535e033, 0xffffd844ffffde6d}, + {0x9535e034, 0xffffd844ffffde6e}, + {0x9535e035, 0xffffd844ffffde6f}, + {0x9535e036, 0xffffd844ffffde70}, + {0x9535e037, 0xffffd844ffffde71}, + {0x9535e038, 0xffffd844ffffde72}, + {0x9535e039, 0xffffd844ffffde73}, + {0x9535e130, 0xffffd844ffffde74}, + {0x9535e131, 0xffffd844ffffde75}, + {0x9535e132, 0xffffd844ffffde76}, + {0x9535e133, 0xffffd844ffffde77}, + {0x9535e134, 0xffffd844ffffde78}, + {0x9535e135, 0xffffd844ffffde79}, + {0x9535e136, 0xffffd844ffffde7a}, + {0x9535e137, 0xffffd844ffffde7b}, + {0x9535e138, 0xffffd844ffffde7c}, + {0x9535e139, 0xffffd844ffffde7d}, + {0x9535e230, 0xffffd844ffffde7e}, + {0x9535e231, 0xffffd844ffffde7f}, + {0x9535e232, 0xffffd844ffffde80}, + {0x9535e233, 0xffffd844ffffde81}, + {0x9535e234, 0xffffd844ffffde82}, + {0x9535e235, 0xffffd844ffffde83}, + {0x9535e236, 0xffffd844ffffde84}, + {0x9535e237, 0xffffd844ffffde85}, + {0x9535e238, 0xffffd844ffffde86}, + {0x9535e239, 0xffffd844ffffde87}, + {0x9535e330, 0xffffd844ffffde88}, + {0x9535e331, 0xffffd844ffffde89}, + {0x9535e332, 0xffffd844ffffde8a}, + {0x9535e333, 0xffffd844ffffde8b}, + {0x9535e334, 0xffffd844ffffde8c}, + {0x9535e335, 0xffffd844ffffde8d}, + {0x9535e336, 0xffffd844ffffde8e}, + {0x9535e337, 0xffffd844ffffde8f}, + {0x9535e338, 0xffffd844ffffde90}, + {0x9535e339, 0xffffd844ffffde91}, + {0x9535e430, 0xffffd844ffffde92}, + {0x9535e431, 0xffffd844ffffde93}, + {0x9535e432, 0xffffd844ffffde94}, + {0x9535e433, 0xffffd844ffffde95}, + {0x9535e434, 0xffffd844ffffde96}, + {0x9535e435, 0xffffd844ffffde97}, + {0x9535e436, 0xffffd844ffffde98}, + {0x9535e437, 0xffffd844ffffde99}, + {0x9535e438, 0xffffd844ffffde9a}, + {0x9535e439, 0xffffd844ffffde9b}, + {0x9535e530, 0xffffd844ffffde9c}, + {0x9535e531, 0xffffd844ffffde9d}, + {0x9535e532, 0xffffd844ffffde9e}, + {0x9535e533, 0xffffd844ffffde9f}, + {0x9535e534, 0xffffd844ffffdea0}, + {0x9535e535, 0xffffd844ffffdea1}, + {0x9535e536, 0xffffd844ffffdea2}, + {0x9535e537, 0xffffd844ffffdea3}, + {0x9535e538, 0xffffd844ffffdea4}, + {0x9535e539, 0xffffd844ffffdea5}, + {0x9535e630, 0xffffd844ffffdea6}, + {0x9535e631, 0xffffd844ffffdea7}, + {0x9535e632, 0xffffd844ffffdea8}, + {0x9535e633, 0xffffd844ffffdea9}, + {0x9535e634, 0xffffd844ffffdeaa}, + {0x9535e635, 0xffffd844ffffdeab}, + {0x9535e636, 0xffffd844ffffdeac}, + {0x9535e637, 0xffffd844ffffdead}, + {0x9535e638, 0xffffd844ffffdeae}, + {0x9535e639, 0xffffd844ffffdeaf}, + {0x9535e730, 0xffffd844ffffdeb0}, + {0x9535e731, 0xffffd844ffffdeb1}, + {0x9535e732, 0xffffd844ffffdeb2}, + {0x9535e733, 0xffffd844ffffdeb3}, + {0x9535e734, 0xffffd844ffffdeb4}, + {0x9535e735, 0xffffd844ffffdeb5}, + {0x9535e736, 0xffffd844ffffdeb6}, + {0x9535e737, 0xffffd844ffffdeb7}, + {0x9535e738, 0xffffd844ffffdeb8}, + {0x9535e739, 0xffffd844ffffdeb9}, + {0x9535e830, 0xffffd844ffffdeba}, + {0x9535e831, 0xffffd844ffffdebb}, + {0x9535e832, 0xffffd844ffffdebc}, + {0x9535e833, 0xffffd844ffffdebd}, + {0x9535e834, 0xffffd844ffffdebe}, + {0x9535e835, 0xffffd844ffffdebf}, + {0x9535e836, 0xffffd844ffffdec0}, + {0x9535e837, 0xffffd844ffffdec1}, + {0x9535e838, 0xffffd844ffffdec2}, + {0x9535e839, 0xffffd844ffffdec3}, + {0x9535e930, 0xffffd844ffffdec4}, + {0x9535e931, 0xffffd844ffffdec5}, + {0x9535e932, 0xffffd844ffffdec6}, + {0x9535e933, 0xffffd844ffffdec7}, + {0x9535e934, 0xffffd844ffffdec8}, + {0x9535e935, 0xffffd844ffffdec9}, + {0x9535e936, 0xffffd844ffffdeca}, + {0x9535e937, 0xffffd844ffffdecb}, + {0x9535e938, 0xffffd844ffffdecc}, + {0x9535e939, 0xffffd844ffffdecd}, + {0x9535ea30, 0xffffd844ffffdece}, + {0x9535ea31, 0xffffd844ffffdecf}, + {0x9535ea32, 0xffffd844ffffded0}, + {0x9535ea33, 0xffffd844ffffded1}, + {0x9535ea34, 0xffffd844ffffded2}, + {0x9535ea35, 0xffffd844ffffded3}, + {0x9535ea36, 0xffffd844ffffded4}, + {0x9535ea37, 0xffffd844ffffded5}, + {0x9535ea38, 0xffffd844ffffded6}, + {0x9535ea39, 0xffffd844ffffded7}, + {0x9535eb30, 0xffffd844ffffded8}, + {0x9535eb31, 0xffffd844ffffded9}, + {0x9535eb32, 0xffffd844ffffdeda}, + {0x9535eb33, 0xffffd844ffffdedb}, + {0x9535eb34, 0xffffd844ffffdedc}, + {0x9535eb35, 0xffffd844ffffdedd}, + {0x9535eb36, 0xffffd844ffffdede}, + {0x9535eb37, 0xffffd844ffffdedf}, + {0x9535eb38, 0xffffd844ffffdee0}, + {0x9535eb39, 0xffffd844ffffdee1}, + {0x9535ec30, 0xffffd844ffffdee2}, + {0x9535ec31, 0xffffd844ffffdee3}, + {0x9535ec32, 0xffffd844ffffdee4}, + {0x9535ec33, 0xffffd844ffffdee5}, + {0x9535ec34, 0xffffd844ffffdee6}, + {0x9535ec35, 0xffffd844ffffdee7}, + {0x9535ec36, 0xffffd844ffffdee8}, + {0x9535ec37, 0xffffd844ffffdee9}, + {0x9535ec38, 0xffffd844ffffdeea}, + {0x9535ec39, 0xffffd844ffffdeeb}, + {0x9535ed30, 0xffffd844ffffdeec}, + {0x9535ed31, 0xffffd844ffffdeed}, + {0x9535ed32, 0xffffd844ffffdeee}, + {0x9535ed33, 0xffffd844ffffdeef}, + {0x9535ed34, 0xffffd844ffffdef0}, + {0x9535ed35, 0xffffd844ffffdef1}, + {0x9535ed36, 0xffffd844ffffdef2}, + {0x9535ed37, 0xffffd844ffffdef3}, + {0x9535ed38, 0xffffd844ffffdef4}, + {0x9535ed39, 0xffffd844ffffdef5}, + {0x9535ee30, 0xffffd844ffffdef6}, + {0x9535ee31, 0xffffd844ffffdef7}, + {0x9535ee32, 0xffffd844ffffdef8}, + {0x9535ee33, 0xffffd844ffffdef9}, + {0x9535ee34, 0xffffd844ffffdefa}, + {0x9535ee35, 0xffffd844ffffdefb}, + {0x9535ee36, 0xffffd844ffffdefc}, + {0x9535ee37, 0xffffd844ffffdefd}, + {0x9535ee38, 0xffffd844ffffdefe}, + {0x9535ee39, 0xffffd844ffffdeff}, + {0x9535ef30, 0xffffd844ffffdf00}, + {0x9535ef31, 0xffffd844ffffdf01}, + {0x9535ef32, 0xffffd844ffffdf02}, + {0x9535ef33, 0xffffd844ffffdf03}, + {0x9535ef34, 0xffffd844ffffdf04}, + {0x9535ef35, 0xffffd844ffffdf05}, + {0x9535ef36, 0xffffd844ffffdf06}, + {0x9535ef37, 0xffffd844ffffdf07}, + {0x9535ef38, 0xffffd844ffffdf08}, + {0x9535ef39, 0xffffd844ffffdf09}, + {0x9535f030, 0xffffd844ffffdf0a}, + {0x9535f031, 0xffffd844ffffdf0b}, + {0x9535f032, 0xffffd844ffffdf0c}, + {0x9535f033, 0xffffd844ffffdf0d}, + {0x9535f034, 0xffffd844ffffdf0e}, + {0x9535f035, 0xffffd844ffffdf0f}, + {0x9535f036, 0xffffd844ffffdf10}, + {0x9535f037, 0xffffd844ffffdf11}, + {0x9535f038, 0xffffd844ffffdf12}, + {0x9535f039, 0xffffd844ffffdf13}, + {0x9535f130, 0xffffd844ffffdf14}, + {0x9535f131, 0xffffd844ffffdf15}, + {0x9535f132, 0xffffd844ffffdf16}, + {0x9535f133, 0xffffd844ffffdf17}, + {0x9535f134, 0xffffd844ffffdf18}, + {0x9535f135, 0xffffd844ffffdf19}, + {0x9535f136, 0xffffd844ffffdf1a}, + {0x9535f137, 0xffffd844ffffdf1b}, + {0x9535f138, 0xffffd844ffffdf1c}, + {0x9535f139, 0xffffd844ffffdf1d}, + {0x9535f230, 0xffffd844ffffdf1e}, + {0x9535f231, 0xffffd844ffffdf1f}, + {0x9535f232, 0xffffd844ffffdf20}, + {0x9535f233, 0xffffd844ffffdf21}, + {0x9535f234, 0xffffd844ffffdf22}, + {0x9535f235, 0xffffd844ffffdf23}, + {0x9535f236, 0xffffd844ffffdf24}, + {0x9535f237, 0xffffd844ffffdf25}, + {0x9535f238, 0xffffd844ffffdf26}, + {0x9535f239, 0xffffd844ffffdf27}, + {0x9535f330, 0xffffd844ffffdf28}, + {0x9535f331, 0xffffd844ffffdf29}, + {0x9535f332, 0xffffd844ffffdf2a}, + {0x9535f333, 0xffffd844ffffdf2b}, + {0x9535f334, 0xffffd844ffffdf2c}, + {0x9535f335, 0xffffd844ffffdf2d}, + {0x9535f336, 0xffffd844ffffdf2e}, + {0x9535f337, 0xffffd844ffffdf2f}, + {0x9535f338, 0xffffd844ffffdf30}, + {0x9535f339, 0xffffd844ffffdf31}, + {0x9535f430, 0xffffd844ffffdf32}, + {0x9535f431, 0xffffd844ffffdf33}, + {0x9535f432, 0xffffd844ffffdf34}, + {0x9535f433, 0xffffd844ffffdf35}, + {0x9535f434, 0xffffd844ffffdf36}, + {0x9535f435, 0xffffd844ffffdf37}, + {0x9535f436, 0xffffd844ffffdf38}, + {0x9535f437, 0xffffd844ffffdf39}, + {0x9535f438, 0xffffd844ffffdf3a}, + {0x9535f439, 0xffffd844ffffdf3b}, + {0x9535f530, 0xffffd844ffffdf3c}, + {0x9535f531, 0xffffd844ffffdf3d}, + {0x9535f532, 0xffffd844ffffdf3e}, + {0x9535f533, 0xffffd844ffffdf3f}, + {0x9535f534, 0xffffd844ffffdf40}, + {0x9535f535, 0xffffd844ffffdf41}, + {0x9535f536, 0xffffd844ffffdf42}, + {0x9535f537, 0xffffd844ffffdf43}, + {0x9535f538, 0xffffd844ffffdf44}, + {0x9535f539, 0xffffd844ffffdf45}, + {0x9535f630, 0xffffd844ffffdf46}, + {0x9535f631, 0xffffd844ffffdf47}, + {0x9535f632, 0xffffd844ffffdf48}, + {0x9535f633, 0xffffd844ffffdf49}, + {0x9535f634, 0xffffd844ffffdf4a}, + {0x9535f635, 0xffffd844ffffdf4b}, + {0x9535f636, 0xffffd844ffffdf4c}, + {0x9535f637, 0xffffd844ffffdf4d}, + {0x9535f638, 0xffffd844ffffdf4e}, + {0x9535f639, 0xffffd844ffffdf4f}, + {0x9535f730, 0xffffd844ffffdf50}, + {0x9535f731, 0xffffd844ffffdf51}, + {0x9535f732, 0xffffd844ffffdf52}, + {0x9535f733, 0xffffd844ffffdf53}, + {0x9535f734, 0xffffd844ffffdf54}, + {0x9535f735, 0xffffd844ffffdf55}, + {0x9535f736, 0xffffd844ffffdf56}, + {0x9535f737, 0xffffd844ffffdf57}, + {0x9535f738, 0xffffd844ffffdf58}, + {0x9535f739, 0xffffd844ffffdf59}, + {0x9535f830, 0xffffd844ffffdf5a}, + {0x9535f831, 0xffffd844ffffdf5b}, + {0x9535f832, 0xffffd844ffffdf5c}, + {0x9535f833, 0xffffd844ffffdf5d}, + {0x9535f834, 0xffffd844ffffdf5e}, + {0x9535f835, 0xffffd844ffffdf5f}, + {0x9535f836, 0xffffd844ffffdf60}, + {0x9535f837, 0xffffd844ffffdf61}, + {0x9535f838, 0xffffd844ffffdf62}, + {0x9535f839, 0xffffd844ffffdf63}, + {0x9535f930, 0xffffd844ffffdf64}, + {0x9535f931, 0xffffd844ffffdf65}, + {0x9535f932, 0xffffd844ffffdf66}, + {0x9535f933, 0xffffd844ffffdf67}, + {0x9535f934, 0xffffd844ffffdf68}, + {0x9535f935, 0xffffd844ffffdf69}, + {0x9535f936, 0xffffd844ffffdf6a}, + {0x9535f937, 0xffffd844ffffdf6b}, + {0x9535f938, 0xffffd844ffffdf6c}, + {0x9535f939, 0xffffd844ffffdf6d}, + {0x9535fa30, 0xffffd844ffffdf6e}, + {0x9535fa31, 0xffffd844ffffdf6f}, + {0x9535fa32, 0xffffd844ffffdf70}, + {0x9535fa33, 0xffffd844ffffdf71}, + {0x9535fa34, 0xffffd844ffffdf72}, + {0x9535fa35, 0xffffd844ffffdf73}, + {0x9535fa36, 0xffffd844ffffdf74}, + {0x9535fa37, 0xffffd844ffffdf75}, + {0x9535fa38, 0xffffd844ffffdf76}, + {0x9535fa39, 0xffffd844ffffdf77}, + {0x9535fb30, 0xffffd844ffffdf78}, + {0x9535fb31, 0xffffd844ffffdf79}, + {0x9535fb32, 0xffffd844ffffdf7a}, + {0x9535fb33, 0xffffd844ffffdf7b}, + {0x9535fb34, 0xffffd844ffffdf7c}, + {0x9535fb35, 0xffffd844ffffdf7d}, + {0x9535fb36, 0xffffd844ffffdf7e}, + {0x9535fb37, 0xffffd844ffffdf7f}, + {0x9535fb38, 0xffffd844ffffdf80}, + {0x9535fb39, 0xffffd844ffffdf81}, + {0x9535fc30, 0xffffd844ffffdf82}, + {0x9535fc31, 0xffffd844ffffdf83}, + {0x9535fc32, 0xffffd844ffffdf84}, + {0x9535fc33, 0xffffd844ffffdf85}, + {0x9535fc34, 0xffffd844ffffdf86}, + {0x9535fc35, 0xffffd844ffffdf87}, + {0x9535fc36, 0xffffd844ffffdf88}, + {0x9535fc37, 0xffffd844ffffdf89}, + {0x9535fc38, 0xffffd844ffffdf8a}, + {0x9535fc39, 0xffffd844ffffdf8b}, + {0x9535fd30, 0xffffd844ffffdf8c}, + {0x9535fd31, 0xffffd844ffffdf8d}, + {0x9535fd32, 0xffffd844ffffdf8e}, + {0x9535fd33, 0xffffd844ffffdf8f}, + {0x9535fd34, 0xffffd844ffffdf90}, + {0x9535fd35, 0xffffd844ffffdf91}, + {0x9535fd36, 0xffffd844ffffdf92}, + {0x9535fd37, 0xffffd844ffffdf93}, + {0x9535fd38, 0xffffd844ffffdf94}, + {0x9535fd39, 0xffffd844ffffdf95}, + {0x9535fe30, 0xffffd844ffffdf96}, + {0x9535fe31, 0xffffd844ffffdf97}, + {0x9535fe32, 0xffffd844ffffdf98}, + {0x9535fe33, 0xffffd844ffffdf99}, + {0x9535fe34, 0xffffd844ffffdf9a}, + {0x9535fe35, 0xffffd844ffffdf9b}, + {0x9535fe36, 0xffffd844ffffdf9c}, + {0x9535fe37, 0xffffd844ffffdf9d}, + {0x9535fe38, 0xffffd844ffffdf9e}, + {0x9535fe39, 0xffffd844ffffdf9f}, + {0x95368130, 0xffffd844ffffdfa0}, + {0x95368131, 0xffffd844ffffdfa1}, + {0x95368132, 0xffffd844ffffdfa2}, + {0x95368133, 0xffffd844ffffdfa3}, + {0x95368134, 0xffffd844ffffdfa4}, + {0x95368135, 0xffffd844ffffdfa5}, + {0x95368136, 0xffffd844ffffdfa6}, + {0x95368137, 0xffffd844ffffdfa7}, + {0x95368138, 0xffffd844ffffdfa8}, + {0x95368139, 0xffffd844ffffdfa9}, + {0x95368230, 0xffffd844ffffdfaa}, + {0x95368231, 0xffffd844ffffdfab}, + {0x95368232, 0xffffd844ffffdfac}, + {0x95368233, 0xffffd844ffffdfad}, + {0x95368234, 0xffffd844ffffdfae}, + {0x95368235, 0xffffd844ffffdfaf}, + {0x95368236, 0xffffd844ffffdfb0}, + {0x95368237, 0xffffd844ffffdfb1}, + {0x95368238, 0xffffd844ffffdfb2}, + {0x95368239, 0xffffd844ffffdfb3}, + {0x95368330, 0xffffd844ffffdfb4}, + {0x95368331, 0xffffd844ffffdfb5}, + {0x95368332, 0xffffd844ffffdfb6}, + {0x95368333, 0xffffd844ffffdfb7}, + {0x95368334, 0xffffd844ffffdfb8}, + {0x95368335, 0xffffd844ffffdfb9}, + {0x95368336, 0xffffd844ffffdfba}, + {0x95368337, 0xffffd844ffffdfbb}, + {0x95368338, 0xffffd844ffffdfbc}, + {0x95368339, 0xffffd844ffffdfbd}, + {0x95368430, 0xffffd844ffffdfbe}, + {0x95368431, 0xffffd844ffffdfbf}, + {0x95368432, 0xffffd844ffffdfc0}, + {0x95368433, 0xffffd844ffffdfc1}, + {0x95368434, 0xffffd844ffffdfc2}, + {0x95368435, 0xffffd844ffffdfc3}, + {0x95368436, 0xffffd844ffffdfc4}, + {0x95368437, 0xffffd844ffffdfc5}, + {0x95368438, 0xffffd844ffffdfc6}, + {0x95368439, 0xffffd844ffffdfc7}, + {0x95368530, 0xffffd844ffffdfc8}, + {0x95368531, 0xffffd844ffffdfc9}, + {0x95368532, 0xffffd844ffffdfca}, + {0x95368533, 0xffffd844ffffdfcb}, + {0x95368534, 0xffffd844ffffdfcc}, + {0x95368535, 0xffffd844ffffdfcd}, + {0x95368536, 0xffffd844ffffdfce}, + {0x95368537, 0xffffd844ffffdfcf}, + {0x95368538, 0xffffd844ffffdfd0}, + {0x95368539, 0xffffd844ffffdfd1}, + {0x95368630, 0xffffd844ffffdfd2}, + {0x95368631, 0xffffd844ffffdfd3}, + {0x95368632, 0xffffd844ffffdfd4}, + {0x95368633, 0xffffd844ffffdfd5}, + {0x95368634, 0xffffd844ffffdfd6}, + {0x95368635, 0xffffd844ffffdfd7}, + {0x95368636, 0xffffd844ffffdfd8}, + {0x95368637, 0xffffd844ffffdfd9}, + {0x95368638, 0xffffd844ffffdfda}, + {0x95368639, 0xffffd844ffffdfdb}, + {0x95368730, 0xffffd844ffffdfdc}, + {0x95368731, 0xffffd844ffffdfdd}, + {0x95368732, 0xffffd844ffffdfde}, + {0x95368733, 0xffffd844ffffdfdf}, + {0x95368734, 0xffffd844ffffdfe0}, + {0x95368735, 0xffffd844ffffdfe1}, + {0x95368736, 0xffffd844ffffdfe2}, + {0x95368737, 0xffffd844ffffdfe3}, + {0x95368738, 0xffffd844ffffdfe4}, + {0x95368739, 0xffffd844ffffdfe5}, + {0x95368830, 0xffffd844ffffdfe6}, + {0x95368831, 0xffffd844ffffdfe7}, + {0x95368832, 0xffffd844ffffdfe8}, + {0x95368833, 0xffffd844ffffdfe9}, + {0x95368834, 0xffffd844ffffdfea}, + {0x95368835, 0xffffd844ffffdfeb}, + {0x95368836, 0xffffd844ffffdfec}, + {0x95368837, 0xffffd844ffffdfed}, + {0x95368838, 0xffffd844ffffdfee}, + {0x95368839, 0xffffd844ffffdfef}, + {0x95368930, 0xffffd844ffffdff0}, + {0x95368931, 0xffffd844ffffdff1}, + {0x95368932, 0xffffd844ffffdff2}, + {0x95368933, 0xffffd844ffffdff3}, + {0x95368934, 0xffffd844ffffdff4}, + {0x95368935, 0xffffd844ffffdff5}, + {0x95368936, 0xffffd844ffffdff6}, + {0x95368937, 0xffffd844ffffdff7}, + {0x95368938, 0xffffd844ffffdff8}, + {0x95368939, 0xffffd844ffffdff9}, + {0x95368a30, 0xffffd844ffffdffa}, + {0x95368a31, 0xffffd844ffffdffb}, + {0x95368a32, 0xffffd844ffffdffc}, + {0x95368a33, 0xffffd844ffffdffd}, + {0x95368a34, 0xffffd844ffffdffe}, + {0x95368a35, 0xffffd844ffffdfff}, + {0x95368a36, 0xffffd845ffffdc00}, + {0x95368a37, 0xffffd845ffffdc01}, + {0x95368a38, 0xffffd845ffffdc02}, + {0x95368a39, 0xffffd845ffffdc03}, + {0x95368b30, 0xffffd845ffffdc04}, + {0x95368b31, 0xffffd845ffffdc05}, + {0x95368b32, 0xffffd845ffffdc06}, + {0x95368b33, 0xffffd845ffffdc07}, + {0x95368b34, 0xffffd845ffffdc08}, + {0x95368b35, 0xffffd845ffffdc09}, + {0x95368b36, 0xffffd845ffffdc0a}, + {0x95368b37, 0xffffd845ffffdc0b}, + {0x95368b38, 0xffffd845ffffdc0c}, + {0x95368b39, 0xffffd845ffffdc0d}, + {0x95368c30, 0xffffd845ffffdc0e}, + {0x95368c31, 0xffffd845ffffdc0f}, + {0x95368c32, 0xffffd845ffffdc10}, + {0x95368c33, 0xffffd845ffffdc11}, + {0x95368c34, 0xffffd845ffffdc12}, + {0x95368c35, 0xffffd845ffffdc13}, + {0x95368c36, 0xffffd845ffffdc14}, + {0x95368c37, 0xffffd845ffffdc15}, + {0x95368c38, 0xffffd845ffffdc16}, + {0x95368c39, 0xffffd845ffffdc17}, + {0x95368d30, 0xffffd845ffffdc18}, + {0x95368d31, 0xffffd845ffffdc19}, + {0x95368d32, 0xffffd845ffffdc1a}, + {0x95368d33, 0xffffd845ffffdc1b}, + {0x95368d34, 0xffffd845ffffdc1c}, + {0x95368d35, 0xffffd845ffffdc1d}, + {0x95368d36, 0xffffd845ffffdc1e}, + {0x95368d37, 0xffffd845ffffdc1f}, + {0x95368d38, 0xffffd845ffffdc20}, + {0x95368d39, 0xffffd845ffffdc21}, + {0x95368e30, 0xffffd845ffffdc22}, + {0x95368e31, 0xffffd845ffffdc23}, + {0x95368e32, 0xffffd845ffffdc24}, + {0x95368e33, 0xffffd845ffffdc25}, + {0x95368e34, 0xffffd845ffffdc26}, + {0x95368e35, 0xffffd845ffffdc27}, + {0x95368e36, 0xffffd845ffffdc28}, + {0x95368e37, 0xffffd845ffffdc29}, + {0x95368e38, 0xffffd845ffffdc2a}, + {0x95368e39, 0xffffd845ffffdc2b}, + {0x95368f30, 0xffffd845ffffdc2c}, + {0x95368f31, 0xffffd845ffffdc2d}, + {0x95368f32, 0xffffd845ffffdc2e}, + {0x95368f33, 0xffffd845ffffdc2f}, + {0x95368f34, 0xffffd845ffffdc30}, + {0x95368f35, 0xffffd845ffffdc31}, + {0x95368f36, 0xffffd845ffffdc32}, + {0x95368f37, 0xffffd845ffffdc33}, + {0x95368f38, 0xffffd845ffffdc34}, + {0x95368f39, 0xffffd845ffffdc35}, + {0x95369030, 0xffffd845ffffdc36}, + {0x95369031, 0xffffd845ffffdc37}, + {0x95369032, 0xffffd845ffffdc38}, + {0x95369033, 0xffffd845ffffdc39}, + {0x95369034, 0xffffd845ffffdc3a}, + {0x95369035, 0xffffd845ffffdc3b}, + {0x95369036, 0xffffd845ffffdc3c}, + {0x95369037, 0xffffd845ffffdc3d}, + {0x95369038, 0xffffd845ffffdc3e}, + {0x95369039, 0xffffd845ffffdc3f}, + {0x95369130, 0xffffd845ffffdc40}, + {0x95369131, 0xffffd845ffffdc41}, + {0x95369132, 0xffffd845ffffdc42}, + {0x95369133, 0xffffd845ffffdc43}, + {0x95369134, 0xffffd845ffffdc44}, + {0x95369135, 0xffffd845ffffdc45}, + {0x95369136, 0xffffd845ffffdc46}, + {0x95369137, 0xffffd845ffffdc47}, + {0x95369138, 0xffffd845ffffdc48}, + {0x95369139, 0xffffd845ffffdc49}, + {0x95369230, 0xffffd845ffffdc4a}, + {0x95369231, 0xffffd845ffffdc4b}, + {0x95369232, 0xffffd845ffffdc4c}, + {0x95369233, 0xffffd845ffffdc4d}, + {0x95369234, 0xffffd845ffffdc4e}, + {0x95369235, 0xffffd845ffffdc4f}, + {0x95369236, 0xffffd845ffffdc50}, + {0x95369237, 0xffffd845ffffdc51}, + {0x95369238, 0xffffd845ffffdc52}, + {0x95369239, 0xffffd845ffffdc53}, + {0x95369330, 0xffffd845ffffdc54}, + {0x95369331, 0xffffd845ffffdc55}, + {0x95369332, 0xffffd845ffffdc56}, + {0x95369333, 0xffffd845ffffdc57}, + {0x95369334, 0xffffd845ffffdc58}, + {0x95369335, 0xffffd845ffffdc59}, + {0x95369336, 0xffffd845ffffdc5a}, + {0x95369337, 0xffffd845ffffdc5b}, + {0x95369338, 0xffffd845ffffdc5c}, + {0x95369339, 0xffffd845ffffdc5d}, + {0x95369430, 0xffffd845ffffdc5e}, + {0x95369431, 0xffffd845ffffdc5f}, + {0x95369432, 0xffffd845ffffdc60}, + {0x95369433, 0xffffd845ffffdc61}, + {0x95369434, 0xffffd845ffffdc62}, + {0x95369435, 0xffffd845ffffdc63}, + {0x95369436, 0xffffd845ffffdc64}, + {0x95369437, 0xffffd845ffffdc65}, + {0x95369438, 0xffffd845ffffdc66}, + {0x95369439, 0xffffd845ffffdc67}, + {0x95369530, 0xffffd845ffffdc68}, + {0x95369531, 0xffffd845ffffdc69}, + {0x95369532, 0xffffd845ffffdc6a}, + {0x95369533, 0xffffd845ffffdc6b}, + {0x95369534, 0xffffd845ffffdc6c}, + {0x95369535, 0xffffd845ffffdc6d}, + {0x95369536, 0xffffd845ffffdc6e}, + {0x95369537, 0xffffd845ffffdc6f}, + {0x95369538, 0xffffd845ffffdc70}, + {0x95369539, 0xffffd845ffffdc71}, + {0x95369630, 0xffffd845ffffdc72}, + {0x95369631, 0xffffd845ffffdc73}, + {0x95369632, 0xffffd845ffffdc74}, + {0x95369633, 0xffffd845ffffdc75}, + {0x95369634, 0xffffd845ffffdc76}, + {0x95369635, 0xffffd845ffffdc77}, + {0x95369636, 0xffffd845ffffdc78}, + {0x95369637, 0xffffd845ffffdc79}, + {0x95369638, 0xffffd845ffffdc7a}, + {0x95369639, 0xffffd845ffffdc7b}, + {0x95369730, 0xffffd845ffffdc7c}, + {0x95369731, 0xffffd845ffffdc7d}, + {0x95369732, 0xffffd845ffffdc7e}, + {0x95369733, 0xffffd845ffffdc7f}, + {0x95369734, 0xffffd845ffffdc80}, + {0x95369735, 0xffffd845ffffdc81}, + {0x95369736, 0xffffd845ffffdc82}, + {0x95369737, 0xffffd845ffffdc83}, + {0x95369738, 0xffffd845ffffdc84}, + {0x95369739, 0xffffd845ffffdc85}, + {0x95369830, 0xffffd845ffffdc86}, + {0x95369831, 0xffffd845ffffdc87}, + {0x95369832, 0xffffd845ffffdc88}, + {0x95369833, 0xffffd845ffffdc89}, + {0x95369834, 0xffffd845ffffdc8a}, + {0x95369835, 0xffffd845ffffdc8b}, + {0x95369836, 0xffffd845ffffdc8c}, + {0x95369837, 0xffffd845ffffdc8d}, + {0x95369838, 0xffffd845ffffdc8e}, + {0x95369839, 0xffffd845ffffdc8f}, + {0x95369930, 0xffffd845ffffdc90}, + {0x95369931, 0xffffd845ffffdc91}, + {0x95369932, 0xffffd845ffffdc92}, + {0x95369933, 0xffffd845ffffdc93}, + {0x95369934, 0xffffd845ffffdc94}, + {0x95369935, 0xffffd845ffffdc95}, + {0x95369936, 0xffffd845ffffdc96}, + {0x95369937, 0xffffd845ffffdc97}, + {0x95369938, 0xffffd845ffffdc98}, + {0x95369939, 0xffffd845ffffdc99}, + {0x95369a30, 0xffffd845ffffdc9a}, + {0x95369a31, 0xffffd845ffffdc9b}, + {0x95369a32, 0xffffd845ffffdc9c}, + {0x95369a33, 0xffffd845ffffdc9d}, + {0x95369a34, 0xffffd845ffffdc9e}, + {0x95369a35, 0xffffd845ffffdc9f}, + {0x95369a36, 0xffffd845ffffdca0}, + {0x95369a37, 0xffffd845ffffdca1}, + {0x95369a38, 0xffffd845ffffdca2}, + {0x95369a39, 0xffffd845ffffdca3}, + {0x95369b30, 0xffffd845ffffdca4}, + {0x95369b31, 0xffffd845ffffdca5}, + {0x95369b32, 0xffffd845ffffdca6}, + {0x95369b33, 0xffffd845ffffdca7}, + {0x95369b34, 0xffffd845ffffdca8}, + {0x95369b35, 0xffffd845ffffdca9}, + {0x95369b36, 0xffffd845ffffdcaa}, + {0x95369b37, 0xffffd845ffffdcab}, + {0x95369b38, 0xffffd845ffffdcac}, + {0x95369b39, 0xffffd845ffffdcad}, + {0x95369c30, 0xffffd845ffffdcae}, + {0x95369c31, 0xffffd845ffffdcaf}, + {0x95369c32, 0xffffd845ffffdcb0}, + {0x95369c33, 0xffffd845ffffdcb1}, + {0x95369c34, 0xffffd845ffffdcb2}, + {0x95369c35, 0xffffd845ffffdcb3}, + {0x95369c36, 0xffffd845ffffdcb4}, + {0x95369c37, 0xffffd845ffffdcb5}, + {0x95369c38, 0xffffd845ffffdcb6}, + {0x95369c39, 0xffffd845ffffdcb7}, + {0x95369d30, 0xffffd845ffffdcb8}, + {0x95369d31, 0xffffd845ffffdcb9}, + {0x95369d32, 0xffffd845ffffdcba}, + {0x95369d33, 0xffffd845ffffdcbb}, + {0x95369d34, 0xffffd845ffffdcbc}, + {0x95369d35, 0xffffd845ffffdcbd}, + {0x95369d36, 0xffffd845ffffdcbe}, + {0x95369d37, 0xffffd845ffffdcbf}, + {0x95369d38, 0xffffd845ffffdcc0}, + {0x95369d39, 0xffffd845ffffdcc1}, + {0x95369e30, 0xffffd845ffffdcc2}, + {0x95369e31, 0xffffd845ffffdcc3}, + {0x95369e32, 0xffffd845ffffdcc4}, + {0x95369e33, 0xffffd845ffffdcc5}, + {0x95369e34, 0xffffd845ffffdcc6}, + {0x95369e35, 0xffffd845ffffdcc7}, + {0x95369e36, 0xffffd845ffffdcc8}, + {0x95369e37, 0xffffd845ffffdcc9}, + {0x95369e38, 0xffffd845ffffdcca}, + {0x95369e39, 0xffffd845ffffdccb}, + {0x95369f30, 0xffffd845ffffdccc}, + {0x95369f31, 0xffffd845ffffdccd}, + {0x95369f32, 0xffffd845ffffdcce}, + {0x95369f33, 0xffffd845ffffdccf}, + {0x95369f34, 0xffffd845ffffdcd0}, + {0x95369f35, 0xffffd845ffffdcd1}, + {0x95369f36, 0xffffd845ffffdcd2}, + {0x95369f37, 0xffffd845ffffdcd3}, + {0x95369f38, 0xffffd845ffffdcd4}, + {0x95369f39, 0xffffd845ffffdcd5}, + {0x9536a030, 0xffffd845ffffdcd6}, + {0x9536a031, 0xffffd845ffffdcd7}, + {0x9536a032, 0xffffd845ffffdcd8}, + {0x9536a033, 0xffffd845ffffdcd9}, + {0x9536a034, 0xffffd845ffffdcda}, + {0x9536a035, 0xffffd845ffffdcdb}, + {0x9536a036, 0xffffd845ffffdcdc}, + {0x9536a037, 0xffffd845ffffdcdd}, + {0x9536a038, 0xffffd845ffffdcde}, + {0x9536a039, 0xffffd845ffffdcdf}, + {0x9536a130, 0xffffd845ffffdce0}, + {0x9536a131, 0xffffd845ffffdce1}, + {0x9536a132, 0xffffd845ffffdce2}, + {0x9536a133, 0xffffd845ffffdce3}, + {0x9536a134, 0xffffd845ffffdce4}, + {0x9536a135, 0xffffd845ffffdce5}, + {0x9536a136, 0xffffd845ffffdce6}, + {0x9536a137, 0xffffd845ffffdce7}, + {0x9536a138, 0xffffd845ffffdce8}, + {0x9536a139, 0xffffd845ffffdce9}, + {0x9536a230, 0xffffd845ffffdcea}, + {0x9536a231, 0xffffd845ffffdceb}, + {0x9536a232, 0xffffd845ffffdcec}, + {0x9536a233, 0xffffd845ffffdced}, + {0x9536a234, 0xffffd845ffffdcee}, + {0x9536a235, 0xffffd845ffffdcef}, + {0x9536a236, 0xffffd845ffffdcf0}, + {0x9536a237, 0xffffd845ffffdcf1}, + {0x9536a238, 0xffffd845ffffdcf2}, + {0x9536a239, 0xffffd845ffffdcf3}, + {0x9536a330, 0xffffd845ffffdcf4}, + {0x9536a331, 0xffffd845ffffdcf5}, + {0x9536a332, 0xffffd845ffffdcf6}, + {0x9536a333, 0xffffd845ffffdcf7}, + {0x9536a334, 0xffffd845ffffdcf8}, + {0x9536a335, 0xffffd845ffffdcf9}, + {0x9536a336, 0xffffd845ffffdcfa}, + {0x9536a337, 0xffffd845ffffdcfb}, + {0x9536a338, 0xffffd845ffffdcfc}, + {0x9536a339, 0xffffd845ffffdcfd}, + {0x9536a430, 0xffffd845ffffdcfe}, + {0x9536a431, 0xffffd845ffffdcff}, + {0x9536a432, 0xffffd845ffffdd00}, + {0x9536a433, 0xffffd845ffffdd01}, + {0x9536a434, 0xffffd845ffffdd02}, + {0x9536a435, 0xffffd845ffffdd03}, + {0x9536a436, 0xffffd845ffffdd04}, + {0x9536a437, 0xffffd845ffffdd05}, + {0x9536a438, 0xffffd845ffffdd06}, + {0x9536a439, 0xffffd845ffffdd07}, + {0x9536a530, 0xffffd845ffffdd08}, + {0x9536a531, 0xffffd845ffffdd09}, + {0x9536a532, 0xffffd845ffffdd0a}, + {0x9536a533, 0xffffd845ffffdd0b}, + {0x9536a534, 0xffffd845ffffdd0c}, + {0x9536a535, 0xffffd845ffffdd0d}, + {0x9536a536, 0xffffd845ffffdd0e}, + {0x9536a537, 0xffffd845ffffdd0f}, + {0x9536a538, 0xffffd845ffffdd10}, + {0x9536a539, 0xffffd845ffffdd11}, + {0x9536a630, 0xffffd845ffffdd12}, + {0x9536a631, 0xffffd845ffffdd13}, + {0x9536a632, 0xffffd845ffffdd14}, + {0x9536a633, 0xffffd845ffffdd15}, + {0x9536a634, 0xffffd845ffffdd16}, + {0x9536a635, 0xffffd845ffffdd17}, + {0x9536a636, 0xffffd845ffffdd18}, + {0x9536a637, 0xffffd845ffffdd19}, + {0x9536a638, 0xffffd845ffffdd1a}, + {0x9536a639, 0xffffd845ffffdd1b}, + {0x9536a730, 0xffffd845ffffdd1c}, + {0x9536a731, 0xffffd845ffffdd1d}, + {0x9536a732, 0xffffd845ffffdd1e}, + {0x9536a733, 0xffffd845ffffdd1f}, + {0x9536a734, 0xffffd845ffffdd20}, + {0x9536a735, 0xffffd845ffffdd21}, + {0x9536a736, 0xffffd845ffffdd22}, + {0x9536a737, 0xffffd845ffffdd23}, + {0x9536a738, 0xffffd845ffffdd24}, + {0x9536a739, 0xffffd845ffffdd25}, + {0x9536a830, 0xffffd845ffffdd26}, + {0x9536a831, 0xffffd845ffffdd27}, + {0x9536a832, 0xffffd845ffffdd28}, + {0x9536a833, 0xffffd845ffffdd29}, + {0x9536a834, 0xffffd845ffffdd2a}, + {0x9536a835, 0xffffd845ffffdd2b}, + {0x9536a836, 0xffffd845ffffdd2c}, + {0x9536a837, 0xffffd845ffffdd2d}, + {0x9536a838, 0xffffd845ffffdd2e}, + {0x9536a839, 0xffffd845ffffdd2f}, + {0x9536a930, 0xffffd845ffffdd30}, + {0x9536a931, 0xffffd845ffffdd31}, + {0x9536a932, 0xffffd845ffffdd32}, + {0x9536a933, 0xffffd845ffffdd33}, + {0x9536a934, 0xffffd845ffffdd34}, + {0x9536a935, 0xffffd845ffffdd35}, + {0x9536a936, 0xffffd845ffffdd36}, + {0x9536a937, 0xffffd845ffffdd37}, + {0x9536a938, 0xffffd845ffffdd38}, + {0x9536a939, 0xffffd845ffffdd39}, + {0x9536aa30, 0xffffd845ffffdd3a}, + {0x9536aa31, 0xffffd845ffffdd3b}, + {0x9536aa32, 0xffffd845ffffdd3c}, + {0x9536aa33, 0xffffd845ffffdd3d}, + {0x9536aa34, 0xffffd845ffffdd3e}, + {0x9536aa35, 0xffffd845ffffdd3f}, + {0x9536aa36, 0xffffd845ffffdd40}, + {0x9536aa37, 0xffffd845ffffdd41}, + {0x9536aa38, 0xffffd845ffffdd42}, + {0x9536aa39, 0xffffd845ffffdd43}, + {0x9536ab30, 0xffffd845ffffdd44}, + {0x9536ab31, 0xffffd845ffffdd45}, + {0x9536ab32, 0xffffd845ffffdd46}, + {0x9536ab33, 0xffffd845ffffdd47}, + {0x9536ab34, 0xffffd845ffffdd48}, + {0x9536ab35, 0xffffd845ffffdd49}, + {0x9536ab36, 0xffffd845ffffdd4a}, + {0x9536ab37, 0xffffd845ffffdd4b}, + {0x9536ab38, 0xffffd845ffffdd4c}, + {0x9536ab39, 0xffffd845ffffdd4d}, + {0x9536ac30, 0xffffd845ffffdd4e}, + {0x9536ac31, 0xffffd845ffffdd4f}, + {0x9536ac32, 0xffffd845ffffdd50}, + {0x9536ac33, 0xffffd845ffffdd51}, + {0x9536ac34, 0xffffd845ffffdd52}, + {0x9536ac35, 0xffffd845ffffdd53}, + {0x9536ac36, 0xffffd845ffffdd54}, + {0x9536ac37, 0xffffd845ffffdd55}, + {0x9536ac38, 0xffffd845ffffdd56}, + {0x9536ac39, 0xffffd845ffffdd57}, + {0x9536ad30, 0xffffd845ffffdd58}, + {0x9536ad31, 0xffffd845ffffdd59}, + {0x9536ad32, 0xffffd845ffffdd5a}, + {0x9536ad33, 0xffffd845ffffdd5b}, + {0x9536ad34, 0xffffd845ffffdd5c}, + {0x9536ad35, 0xffffd845ffffdd5d}, + {0x9536ad36, 0xffffd845ffffdd5e}, + {0x9536ad37, 0xffffd845ffffdd5f}, + {0x9536ad38, 0xffffd845ffffdd60}, + {0x9536ad39, 0xffffd845ffffdd61}, + {0x9536ae30, 0xffffd845ffffdd62}, + {0x9536ae31, 0xffffd845ffffdd63}, + {0x9536ae32, 0xffffd845ffffdd64}, + {0x9536ae33, 0xffffd845ffffdd65}, + {0x9536ae34, 0xffffd845ffffdd66}, + {0x9536ae35, 0xffffd845ffffdd67}, + {0x9536ae36, 0xffffd845ffffdd68}, + {0x9536ae37, 0xffffd845ffffdd69}, + {0x9536ae38, 0xffffd845ffffdd6a}, + {0x9536ae39, 0xffffd845ffffdd6b}, + {0x9536af30, 0xffffd845ffffdd6c}, + {0x9536af31, 0xffffd845ffffdd6d}, + {0x9536af32, 0xffffd845ffffdd6e}, + {0x9536af33, 0xffffd845ffffdd6f}, + {0x9536af34, 0xffffd845ffffdd70}, + {0x9536af35, 0xffffd845ffffdd71}, + {0x9536af36, 0xffffd845ffffdd72}, + {0x9536af37, 0xffffd845ffffdd73}, + {0x9536af38, 0xffffd845ffffdd74}, + {0x9536af39, 0xffffd845ffffdd75}, + {0x9536b030, 0xffffd845ffffdd76}, + {0x9536b031, 0xffffd845ffffdd77}, + {0x9536b032, 0xffffd845ffffdd78}, + {0x9536b033, 0xffffd845ffffdd79}, + {0x9536b034, 0xffffd845ffffdd7a}, + {0x9536b035, 0xffffd845ffffdd7b}, + {0x9536b036, 0xffffd845ffffdd7c}, + {0x9536b037, 0xffffd845ffffdd7d}, + {0x9536b038, 0xffffd845ffffdd7e}, + {0x9536b039, 0xffffd845ffffdd7f}, + {0x9536b130, 0xffffd845ffffdd80}, + {0x9536b131, 0xffffd845ffffdd81}, + {0x9536b132, 0xffffd845ffffdd82}, + {0x9536b133, 0xffffd845ffffdd83}, + {0x9536b134, 0xffffd845ffffdd84}, + {0x9536b135, 0xffffd845ffffdd85}, + {0x9536b136, 0xffffd845ffffdd86}, + {0x9536b137, 0xffffd845ffffdd87}, + {0x9536b138, 0xffffd845ffffdd88}, + {0x9536b139, 0xffffd845ffffdd89}, + {0x9536b230, 0xffffd845ffffdd8a}, + {0x9536b231, 0xffffd845ffffdd8b}, + {0x9536b232, 0xffffd845ffffdd8c}, + {0x9536b233, 0xffffd845ffffdd8d}, + {0x9536b234, 0xffffd845ffffdd8e}, + {0x9536b235, 0xffffd845ffffdd8f}, + {0x9536b236, 0xffffd845ffffdd90}, + {0x9536b237, 0xffffd845ffffdd91}, + {0x9536b238, 0xffffd845ffffdd92}, + {0x9536b239, 0xffffd845ffffdd93}, + {0x9536b330, 0xffffd845ffffdd94}, + {0x9536b331, 0xffffd845ffffdd95}, + {0x9536b332, 0xffffd845ffffdd96}, + {0x9536b333, 0xffffd845ffffdd97}, + {0x9536b334, 0xffffd845ffffdd98}, + {0x9536b335, 0xffffd845ffffdd99}, + {0x9536b336, 0xffffd845ffffdd9a}, + {0x9536b337, 0xffffd845ffffdd9b}, + {0x9536b338, 0xffffd845ffffdd9c}, + {0x9536b339, 0xffffd845ffffdd9d}, + {0x9536b430, 0xffffd845ffffdd9e}, + {0x9536b431, 0xffffd845ffffdd9f}, + {0x9536b432, 0xffffd845ffffdda0}, + {0x9536b433, 0xffffd845ffffdda1}, + {0x9536b434, 0xffffd845ffffdda2}, + {0x9536b435, 0xffffd845ffffdda3}, + {0x9536b436, 0xffffd845ffffdda4}, + {0x9536b437, 0xffffd845ffffdda5}, + {0x9536b438, 0xffffd845ffffdda6}, + {0x9536b439, 0xffffd845ffffdda7}, + {0x9536b530, 0xffffd845ffffdda8}, + {0x9536b531, 0xffffd845ffffdda9}, + {0x9536b532, 0xffffd845ffffddaa}, + {0x9536b533, 0xffffd845ffffddab}, + {0x9536b534, 0xffffd845ffffddac}, + {0x9536b535, 0xffffd845ffffddad}, + {0x9536b536, 0xffffd845ffffddae}, + {0x9536b537, 0xffffd845ffffddaf}, + {0x9536b538, 0xffffd845ffffddb0}, + {0x9536b539, 0xffffd845ffffddb1}, + {0x9536b630, 0xffffd845ffffddb2}, + {0x9536b631, 0xffffd845ffffddb3}, + {0x9536b632, 0xffffd845ffffddb4}, + {0x9536b633, 0xffffd845ffffddb5}, + {0x9536b634, 0xffffd845ffffddb6}, + {0x9536b635, 0xffffd845ffffddb7}, + {0x9536b636, 0xffffd845ffffddb8}, + {0x9536b637, 0xffffd845ffffddb9}, + {0x9536b638, 0xffffd845ffffddba}, + {0x9536b639, 0xffffd845ffffddbb}, + {0x9536b730, 0xffffd845ffffddbc}, + {0x9536b731, 0xffffd845ffffddbd}, + {0x9536b732, 0xffffd845ffffddbe}, + {0x9536b733, 0xffffd845ffffddbf}, + {0x9536b734, 0xffffd845ffffddc0}, + {0x9536b735, 0xffffd845ffffddc1}, + {0x9536b736, 0xffffd845ffffddc2}, + {0x9536b737, 0xffffd845ffffddc3}, + {0x9536b738, 0xffffd845ffffddc4}, + {0x9536b739, 0xffffd845ffffddc5}, + {0x9536b830, 0xffffd845ffffddc6}, + {0x9536b831, 0xffffd845ffffddc7}, + {0x9536b832, 0xffffd845ffffddc8}, + {0x9536b833, 0xffffd845ffffddc9}, + {0x9536b834, 0xffffd845ffffddca}, + {0x9536b835, 0xffffd845ffffddcb}, + {0x9536b836, 0xffffd845ffffddcc}, + {0x9536b837, 0xffffd845ffffddcd}, + {0x9536b838, 0xffffd845ffffddce}, + {0x9536b839, 0xffffd845ffffddcf}, + {0x9536b930, 0xffffd845ffffddd0}, + {0x9536b931, 0xffffd845ffffddd1}, + {0x9536b932, 0xffffd845ffffddd2}, + {0x9536b933, 0xffffd845ffffddd3}, + {0x9536b934, 0xffffd845ffffddd4}, + {0x9536b935, 0xffffd845ffffddd5}, + {0x9536b936, 0xffffd845ffffddd6}, + {0x9536b937, 0xffffd845ffffddd7}, + {0x9536b938, 0xffffd845ffffddd8}, + {0x9536b939, 0xffffd845ffffddd9}, + {0x9536ba30, 0xffffd845ffffddda}, + {0x9536ba31, 0xffffd845ffffdddb}, + {0x9536ba32, 0xffffd845ffffdddc}, + {0x9536ba33, 0xffffd845ffffdddd}, + {0x9536ba34, 0xffffd845ffffddde}, + {0x9536ba35, 0xffffd845ffffdddf}, + {0x9536ba36, 0xffffd845ffffdde0}, + {0x9536ba37, 0xffffd845ffffdde1}, + {0x9536ba38, 0xffffd845ffffdde2}, + {0x9536ba39, 0xffffd845ffffdde3}, + {0x9536bb30, 0xffffd845ffffdde4}, + {0x9536bb31, 0xffffd845ffffdde5}, + {0x9536bb32, 0xffffd845ffffdde6}, + {0x9536bb33, 0xffffd845ffffdde7}, + {0x9536bb34, 0xffffd845ffffdde8}, + {0x9536bb35, 0xffffd845ffffdde9}, + {0x9536bb36, 0xffffd845ffffddea}, + {0x9536bb37, 0xffffd845ffffddeb}, + {0x9536bb38, 0xffffd845ffffddec}, + {0x9536bb39, 0xffffd845ffffdded}, + {0x9536bc30, 0xffffd845ffffddee}, + {0x9536bc31, 0xffffd845ffffddef}, + {0x9536bc32, 0xffffd845ffffddf0}, + {0x9536bc33, 0xffffd845ffffddf1}, + {0x9536bc34, 0xffffd845ffffddf2}, + {0x9536bc35, 0xffffd845ffffddf3}, + {0x9536bc36, 0xffffd845ffffddf4}, + {0x9536bc37, 0xffffd845ffffddf5}, + {0x9536bc38, 0xffffd845ffffddf6}, + {0x9536bc39, 0xffffd845ffffddf7}, + {0x9536bd30, 0xffffd845ffffddf8}, + {0x9536bd31, 0xffffd845ffffddf9}, + {0x9536bd32, 0xffffd845ffffddfa}, + {0x9536bd33, 0xffffd845ffffddfb}, + {0x9536bd34, 0xffffd845ffffddfc}, + {0x9536bd35, 0xffffd845ffffddfd}, + {0x9536bd36, 0xffffd845ffffddfe}, + {0x9536bd37, 0xffffd845ffffddff}, + {0x9536bd38, 0xffffd845ffffde00}, + {0x9536bd39, 0xffffd845ffffde01}, + {0x9536be30, 0xffffd845ffffde02}, + {0x9536be31, 0xffffd845ffffde03}, + {0x9536be32, 0xffffd845ffffde04}, + {0x9536be33, 0xffffd845ffffde05}, + {0x9536be34, 0xffffd845ffffde06}, + {0x9536be35, 0xffffd845ffffde07}, + {0x9536be36, 0xffffd845ffffde08}, + {0x9536be37, 0xffffd845ffffde09}, + {0x9536be38, 0xffffd845ffffde0a}, + {0x9536be39, 0xffffd845ffffde0b}, + {0x9536bf30, 0xffffd845ffffde0c}, + {0x9536bf31, 0xffffd845ffffde0d}, + {0x9536bf32, 0xffffd845ffffde0e}, + {0x9536bf33, 0xffffd845ffffde0f}, + {0x9536bf34, 0xffffd845ffffde10}, + {0x9536bf35, 0xffffd845ffffde11}, + {0x9536bf36, 0xffffd845ffffde12}, + {0x9536bf37, 0xffffd845ffffde13}, + {0x9536bf38, 0xffffd845ffffde14}, + {0x9536bf39, 0xffffd845ffffde15}, + {0x9536c030, 0xffffd845ffffde16}, + {0x9536c031, 0xffffd845ffffde17}, + {0x9536c032, 0xffffd845ffffde18}, + {0x9536c033, 0xffffd845ffffde19}, + {0x9536c034, 0xffffd845ffffde1a}, + {0x9536c035, 0xffffd845ffffde1b}, + {0x9536c036, 0xffffd845ffffde1c}, + {0x9536c037, 0xffffd845ffffde1d}, + {0x9536c038, 0xffffd845ffffde1e}, + {0x9536c039, 0xffffd845ffffde1f}, + {0x9536c130, 0xffffd845ffffde20}, + {0x9536c131, 0xffffd845ffffde21}, + {0x9536c132, 0xffffd845ffffde22}, + {0x9536c133, 0xffffd845ffffde23}, + {0x9536c134, 0xffffd845ffffde24}, + {0x9536c135, 0xffffd845ffffde25}, + {0x9536c136, 0xffffd845ffffde26}, + {0x9536c137, 0xffffd845ffffde27}, + {0x9536c138, 0xffffd845ffffde28}, + {0x9536c139, 0xffffd845ffffde29}, + {0x9536c230, 0xffffd845ffffde2a}, + {0x9536c231, 0xffffd845ffffde2b}, + {0x9536c232, 0xffffd845ffffde2c}, + {0x9536c233, 0xffffd845ffffde2d}, + {0x9536c234, 0xffffd845ffffde2e}, + {0x9536c235, 0xffffd845ffffde2f}, + {0x9536c236, 0xffffd845ffffde30}, + {0x9536c237, 0xffffd845ffffde31}, + {0x9536c238, 0xffffd845ffffde32}, + {0x9536c239, 0xffffd845ffffde33}, + {0x9536c330, 0xffffd845ffffde34}, + {0x9536c331, 0xffffd845ffffde35}, + {0x9536c332, 0xffffd845ffffde36}, + {0x9536c333, 0xffffd845ffffde37}, + {0x9536c334, 0xffffd845ffffde38}, + {0x9536c335, 0xffffd845ffffde39}, + {0x9536c336, 0xffffd845ffffde3a}, + {0x9536c337, 0xffffd845ffffde3b}, + {0x9536c338, 0xffffd845ffffde3c}, + {0x9536c339, 0xffffd845ffffde3d}, + {0x9536c430, 0xffffd845ffffde3e}, + {0x9536c431, 0xffffd845ffffde3f}, + {0x9536c432, 0xffffd845ffffde40}, + {0x9536c433, 0xffffd845ffffde41}, + {0x9536c434, 0xffffd845ffffde42}, + {0x9536c435, 0xffffd845ffffde43}, + {0x9536c436, 0xffffd845ffffde44}, + {0x9536c437, 0xffffd845ffffde45}, + {0x9536c438, 0xffffd845ffffde46}, + {0x9536c439, 0xffffd845ffffde47}, + {0x9536c530, 0xffffd845ffffde48}, + {0x9536c531, 0xffffd845ffffde49}, + {0x9536c532, 0xffffd845ffffde4a}, + {0x9536c533, 0xffffd845ffffde4b}, + {0x9536c534, 0xffffd845ffffde4c}, + {0x9536c535, 0xffffd845ffffde4d}, + {0x9536c536, 0xffffd845ffffde4e}, + {0x9536c537, 0xffffd845ffffde4f}, + {0x9536c538, 0xffffd845ffffde50}, + {0x9536c539, 0xffffd845ffffde51}, + {0x9536c630, 0xffffd845ffffde52}, + {0x9536c631, 0xffffd845ffffde53}, + {0x9536c632, 0xffffd845ffffde54}, + {0x9536c633, 0xffffd845ffffde55}, + {0x9536c634, 0xffffd845ffffde56}, + {0x9536c635, 0xffffd845ffffde57}, + {0x9536c636, 0xffffd845ffffde58}, + {0x9536c637, 0xffffd845ffffde59}, + {0x9536c638, 0xffffd845ffffde5a}, + {0x9536c639, 0xffffd845ffffde5b}, + {0x9536c730, 0xffffd845ffffde5c}, + {0x9536c731, 0xffffd845ffffde5d}, + {0x9536c732, 0xffffd845ffffde5e}, + {0x9536c733, 0xffffd845ffffde5f}, + {0x9536c734, 0xffffd845ffffde60}, + {0x9536c735, 0xffffd845ffffde61}, + {0x9536c736, 0xffffd845ffffde62}, + {0x9536c737, 0xffffd845ffffde63}, + {0x9536c738, 0xffffd845ffffde64}, + {0x9536c739, 0xffffd845ffffde65}, + {0x9536c830, 0xffffd845ffffde66}, + {0x9536c831, 0xffffd845ffffde67}, + {0x9536c832, 0xffffd845ffffde68}, + {0x9536c833, 0xffffd845ffffde69}, + {0x9536c834, 0xffffd845ffffde6a}, + {0x9536c835, 0xffffd845ffffde6b}, + {0x9536c836, 0xffffd845ffffde6c}, + {0x9536c837, 0xffffd845ffffde6d}, + {0x9536c838, 0xffffd845ffffde6e}, + {0x9536c839, 0xffffd845ffffde6f}, + {0x9536c930, 0xffffd845ffffde70}, + {0x9536c931, 0xffffd845ffffde71}, + {0x9536c932, 0xffffd845ffffde72}, + {0x9536c933, 0xffffd845ffffde73}, + {0x9536c934, 0xffffd845ffffde74}, + {0x9536c935, 0xffffd845ffffde75}, + {0x9536c936, 0xffffd845ffffde76}, + {0x9536c937, 0xffffd845ffffde77}, + {0x9536c938, 0xffffd845ffffde78}, + {0x9536c939, 0xffffd845ffffde79}, + {0x9536ca30, 0xffffd845ffffde7a}, + {0x9536ca31, 0xffffd845ffffde7b}, + {0x9536ca32, 0xffffd845ffffde7c}, + {0x9536ca33, 0xffffd845ffffde7d}, + {0x9536ca34, 0xffffd845ffffde7e}, + {0x9536ca35, 0xffffd845ffffde7f}, + {0x9536ca36, 0xffffd845ffffde80}, + {0x9536ca37, 0xffffd845ffffde81}, + {0x9536ca38, 0xffffd845ffffde82}, + {0x9536ca39, 0xffffd845ffffde83}, + {0x9536cb30, 0xffffd845ffffde84}, + {0x9536cb31, 0xffffd845ffffde85}, + {0x9536cb32, 0xffffd845ffffde86}, + {0x9536cb33, 0xffffd845ffffde87}, + {0x9536cb34, 0xffffd845ffffde88}, + {0x9536cb35, 0xffffd845ffffde89}, + {0x9536cb36, 0xffffd845ffffde8a}, + {0x9536cb37, 0xffffd845ffffde8b}, + {0x9536cb38, 0xffffd845ffffde8c}, + {0x9536cb39, 0xffffd845ffffde8d}, + {0x9536cc30, 0xffffd845ffffde8e}, + {0x9536cc31, 0xffffd845ffffde8f}, + {0x9536cc32, 0xffffd845ffffde90}, + {0x9536cc33, 0xffffd845ffffde91}, + {0x9536cc34, 0xffffd845ffffde92}, + {0x9536cc35, 0xffffd845ffffde93}, + {0x9536cc36, 0xffffd845ffffde94}, + {0x9536cc37, 0xffffd845ffffde95}, + {0x9536cc38, 0xffffd845ffffde96}, + {0x9536cc39, 0xffffd845ffffde97}, + {0x9536cd30, 0xffffd845ffffde98}, + {0x9536cd31, 0xffffd845ffffde99}, + {0x9536cd32, 0xffffd845ffffde9a}, + {0x9536cd33, 0xffffd845ffffde9b}, + {0x9536cd34, 0xffffd845ffffde9c}, + {0x9536cd35, 0xffffd845ffffde9d}, + {0x9536cd36, 0xffffd845ffffde9e}, + {0x9536cd37, 0xffffd845ffffde9f}, + {0x9536cd38, 0xffffd845ffffdea0}, + {0x9536cd39, 0xffffd845ffffdea1}, + {0x9536ce30, 0xffffd845ffffdea2}, + {0x9536ce31, 0xffffd845ffffdea3}, + {0x9536ce32, 0xffffd845ffffdea4}, + {0x9536ce33, 0xffffd845ffffdea5}, + {0x9536ce34, 0xffffd845ffffdea6}, + {0x9536ce35, 0xffffd845ffffdea7}, + {0x9536ce36, 0xffffd845ffffdea8}, + {0x9536ce37, 0xffffd845ffffdea9}, + {0x9536ce38, 0xffffd845ffffdeaa}, + {0x9536ce39, 0xffffd845ffffdeab}, + {0x9536cf30, 0xffffd845ffffdeac}, + {0x9536cf31, 0xffffd845ffffdead}, + {0x9536cf32, 0xffffd845ffffdeae}, + {0x9536cf33, 0xffffd845ffffdeaf}, + {0x9536cf34, 0xffffd845ffffdeb0}, + {0x9536cf35, 0xffffd845ffffdeb1}, + {0x9536cf36, 0xffffd845ffffdeb2}, + {0x9536cf37, 0xffffd845ffffdeb3}, + {0x9536cf38, 0xffffd845ffffdeb4}, + {0x9536cf39, 0xffffd845ffffdeb5}, + {0x9536d030, 0xffffd845ffffdeb6}, + {0x9536d031, 0xffffd845ffffdeb7}, + {0x9536d032, 0xffffd845ffffdeb8}, + {0x9536d033, 0xffffd845ffffdeb9}, + {0x9536d034, 0xffffd845ffffdeba}, + {0x9536d035, 0xffffd845ffffdebb}, + {0x9536d036, 0xffffd845ffffdebc}, + {0x9536d037, 0xffffd845ffffdebd}, + {0x9536d038, 0xffffd845ffffdebe}, + {0x9536d039, 0xffffd845ffffdebf}, + {0x9536d130, 0xffffd845ffffdec0}, + {0x9536d131, 0xffffd845ffffdec1}, + {0x9536d132, 0xffffd845ffffdec2}, + {0x9536d133, 0xffffd845ffffdec3}, + {0x9536d134, 0xffffd845ffffdec4}, + {0x9536d135, 0xffffd845ffffdec5}, + {0x9536d136, 0xffffd845ffffdec6}, + {0x9536d137, 0xffffd845ffffdec7}, + {0x9536d138, 0xffffd845ffffdec8}, + {0x9536d139, 0xffffd845ffffdec9}, + {0x9536d230, 0xffffd845ffffdeca}, + {0x9536d231, 0xffffd845ffffdecb}, + {0x9536d232, 0xffffd845ffffdecc}, + {0x9536d233, 0xffffd845ffffdecd}, + {0x9536d234, 0xffffd845ffffdece}, + {0x9536d235, 0xffffd845ffffdecf}, + {0x9536d236, 0xffffd845ffffded0}, + {0x9536d237, 0xffffd845ffffded1}, + {0x9536d238, 0xffffd845ffffded2}, + {0x9536d239, 0xffffd845ffffded3}, + {0x9536d330, 0xffffd845ffffded4}, + {0x9536d331, 0xffffd845ffffded5}, + {0x9536d332, 0xffffd845ffffded6}, + {0x9536d333, 0xffffd845ffffded7}, + {0x9536d334, 0xffffd845ffffded8}, + {0x9536d335, 0xffffd845ffffded9}, + {0x9536d336, 0xffffd845ffffdeda}, + {0x9536d337, 0xffffd845ffffdedb}, + {0x9536d338, 0xffffd845ffffdedc}, + {0x9536d339, 0xffffd845ffffdedd}, + {0x9536d430, 0xffffd845ffffdede}, + {0x9536d431, 0xffffd845ffffdedf}, + {0x9536d432, 0xffffd845ffffdee0}, + {0x9536d433, 0xffffd845ffffdee1}, + {0x9536d434, 0xffffd845ffffdee2}, + {0x9536d435, 0xffffd845ffffdee3}, + {0x9536d436, 0xffffd845ffffdee4}, + {0x9536d437, 0xffffd845ffffdee5}, + {0x9536d438, 0xffffd845ffffdee6}, + {0x9536d439, 0xffffd845ffffdee7}, + {0x9536d530, 0xffffd845ffffdee8}, + {0x9536d531, 0xffffd845ffffdee9}, + {0x9536d532, 0xffffd845ffffdeea}, + {0x9536d533, 0xffffd845ffffdeeb}, + {0x9536d534, 0xffffd845ffffdeec}, + {0x9536d535, 0xffffd845ffffdeed}, + {0x9536d536, 0xffffd845ffffdeee}, + {0x9536d537, 0xffffd845ffffdeef}, + {0x9536d538, 0xffffd845ffffdef0}, + {0x9536d539, 0xffffd845ffffdef1}, + {0x9536d630, 0xffffd845ffffdef2}, + {0x9536d631, 0xffffd845ffffdef3}, + {0x9536d632, 0xffffd845ffffdef4}, + {0x9536d633, 0xffffd845ffffdef5}, + {0x9536d634, 0xffffd845ffffdef6}, + {0x9536d635, 0xffffd845ffffdef7}, + {0x9536d636, 0xffffd845ffffdef8}, + {0x9536d637, 0xffffd845ffffdef9}, + {0x9536d638, 0xffffd845ffffdefa}, + {0x9536d639, 0xffffd845ffffdefb}, + {0x9536d730, 0xffffd845ffffdefc}, + {0x9536d731, 0xffffd845ffffdefd}, + {0x9536d732, 0xffffd845ffffdefe}, + {0x9536d733, 0xffffd845ffffdeff}, + {0x9536d734, 0xffffd845ffffdf00}, + {0x9536d735, 0xffffd845ffffdf01}, + {0x9536d736, 0xffffd845ffffdf02}, + {0x9536d737, 0xffffd845ffffdf03}, + {0x9536d738, 0xffffd845ffffdf04}, + {0x9536d739, 0xffffd845ffffdf05}, + {0x9536d830, 0xffffd845ffffdf06}, + {0x9536d831, 0xffffd845ffffdf07}, + {0x9536d832, 0xffffd845ffffdf08}, + {0x9536d833, 0xffffd845ffffdf09}, + {0x9536d834, 0xffffd845ffffdf0a}, + {0x9536d835, 0xffffd845ffffdf0b}, + {0x9536d836, 0xffffd845ffffdf0c}, + {0x9536d837, 0xffffd845ffffdf0d}, + {0x9536d838, 0xffffd845ffffdf0e}, + {0x9536d839, 0xffffd845ffffdf0f}, + {0x9536d930, 0xffffd845ffffdf10}, + {0x9536d931, 0xffffd845ffffdf11}, + {0x9536d932, 0xffffd845ffffdf12}, + {0x9536d933, 0xffffd845ffffdf13}, + {0x9536d934, 0xffffd845ffffdf14}, + {0x9536d935, 0xffffd845ffffdf15}, + {0x9536d936, 0xffffd845ffffdf16}, + {0x9536d937, 0xffffd845ffffdf17}, + {0x9536d938, 0xffffd845ffffdf18}, + {0x9536d939, 0xffffd845ffffdf19}, + {0x9536da30, 0xffffd845ffffdf1a}, + {0x9536da31, 0xffffd845ffffdf1b}, + {0x9536da32, 0xffffd845ffffdf1c}, + {0x9536da33, 0xffffd845ffffdf1d}, + {0x9536da34, 0xffffd845ffffdf1e}, + {0x9536da35, 0xffffd845ffffdf1f}, + {0x9536da36, 0xffffd845ffffdf20}, + {0x9536da37, 0xffffd845ffffdf21}, + {0x9536da38, 0xffffd845ffffdf22}, + {0x9536da39, 0xffffd845ffffdf23}, + {0x9536db30, 0xffffd845ffffdf24}, + {0x9536db31, 0xffffd845ffffdf25}, + {0x9536db32, 0xffffd845ffffdf26}, + {0x9536db33, 0xffffd845ffffdf27}, + {0x9536db34, 0xffffd845ffffdf28}, + {0x9536db35, 0xffffd845ffffdf29}, + {0x9536db36, 0xffffd845ffffdf2a}, + {0x9536db37, 0xffffd845ffffdf2b}, + {0x9536db38, 0xffffd845ffffdf2c}, + {0x9536db39, 0xffffd845ffffdf2d}, + {0x9536dc30, 0xffffd845ffffdf2e}, + {0x9536dc31, 0xffffd845ffffdf2f}, + {0x9536dc32, 0xffffd845ffffdf30}, + {0x9536dc33, 0xffffd845ffffdf31}, + {0x9536dc34, 0xffffd845ffffdf32}, + {0x9536dc35, 0xffffd845ffffdf33}, + {0x9536dc36, 0xffffd845ffffdf34}, + {0x9536dc37, 0xffffd845ffffdf35}, + {0x9536dc38, 0xffffd845ffffdf36}, + {0x9536dc39, 0xffffd845ffffdf37}, + {0x9536dd30, 0xffffd845ffffdf38}, + {0x9536dd31, 0xffffd845ffffdf39}, + {0x9536dd32, 0xffffd845ffffdf3a}, + {0x9536dd33, 0xffffd845ffffdf3b}, + {0x9536dd34, 0xffffd845ffffdf3c}, + {0x9536dd35, 0xffffd845ffffdf3d}, + {0x9536dd36, 0xffffd845ffffdf3e}, + {0x9536dd37, 0xffffd845ffffdf3f}, + {0x9536dd38, 0xffffd845ffffdf40}, + {0x9536dd39, 0xffffd845ffffdf41}, + {0x9536de30, 0xffffd845ffffdf42}, + {0x9536de31, 0xffffd845ffffdf43}, + {0x9536de32, 0xffffd845ffffdf44}, + {0x9536de33, 0xffffd845ffffdf45}, + {0x9536de34, 0xffffd845ffffdf46}, + {0x9536de35, 0xffffd845ffffdf47}, + {0x9536de36, 0xffffd845ffffdf48}, + {0x9536de37, 0xffffd845ffffdf49}, + {0x9536de38, 0xffffd845ffffdf4a}, + {0x9536de39, 0xffffd845ffffdf4b}, + {0x9536df30, 0xffffd845ffffdf4c}, + {0x9536df31, 0xffffd845ffffdf4d}, + {0x9536df32, 0xffffd845ffffdf4e}, + {0x9536df33, 0xffffd845ffffdf4f}, + {0x9536df34, 0xffffd845ffffdf50}, + {0x9536df35, 0xffffd845ffffdf51}, + {0x9536df36, 0xffffd845ffffdf52}, + {0x9536df37, 0xffffd845ffffdf53}, + {0x9536df38, 0xffffd845ffffdf54}, + {0x9536df39, 0xffffd845ffffdf55}, + {0x9536e030, 0xffffd845ffffdf56}, + {0x9536e031, 0xffffd845ffffdf57}, + {0x9536e032, 0xffffd845ffffdf58}, + {0x9536e033, 0xffffd845ffffdf59}, + {0x9536e034, 0xffffd845ffffdf5a}, + {0x9536e035, 0xffffd845ffffdf5b}, + {0x9536e036, 0xffffd845ffffdf5c}, + {0x9536e037, 0xffffd845ffffdf5d}, + {0x9536e038, 0xffffd845ffffdf5e}, + {0x9536e039, 0xffffd845ffffdf5f}, + {0x9536e130, 0xffffd845ffffdf60}, + {0x9536e131, 0xffffd845ffffdf61}, + {0x9536e132, 0xffffd845ffffdf62}, + {0x9536e133, 0xffffd845ffffdf63}, + {0x9536e134, 0xffffd845ffffdf64}, + {0x9536e135, 0xffffd845ffffdf65}, + {0x9536e136, 0xffffd845ffffdf66}, + {0x9536e137, 0xffffd845ffffdf67}, + {0x9536e138, 0xffffd845ffffdf68}, + {0x9536e139, 0xffffd845ffffdf69}, + {0x9536e230, 0xffffd845ffffdf6a}, + {0x9536e231, 0xffffd845ffffdf6b}, + {0x9536e232, 0xffffd845ffffdf6c}, + {0x9536e233, 0xffffd845ffffdf6d}, + {0x9536e234, 0xffffd845ffffdf6e}, + {0x9536e235, 0xffffd845ffffdf6f}, + {0x9536e236, 0xffffd845ffffdf70}, + {0x9536e237, 0xffffd845ffffdf71}, + {0x9536e238, 0xffffd845ffffdf72}, + {0x9536e239, 0xffffd845ffffdf73}, + {0x9536e330, 0xffffd845ffffdf74}, + {0x9536e331, 0xffffd845ffffdf75}, + {0x9536e332, 0xffffd845ffffdf76}, + {0x9536e333, 0xffffd845ffffdf77}, + {0x9536e334, 0xffffd845ffffdf78}, + {0x9536e335, 0xffffd845ffffdf79}, + {0x9536e336, 0xffffd845ffffdf7a}, + {0x9536e337, 0xffffd845ffffdf7b}, + {0x9536e338, 0xffffd845ffffdf7c}, + {0x9536e339, 0xffffd845ffffdf7d}, + {0x9536e430, 0xffffd845ffffdf7e}, + {0x9536e431, 0xffffd845ffffdf7f}, + {0x9536e432, 0xffffd845ffffdf80}, + {0x9536e433, 0xffffd845ffffdf81}, + {0x9536e434, 0xffffd845ffffdf82}, + {0x9536e435, 0xffffd845ffffdf83}, + {0x9536e436, 0xffffd845ffffdf84}, + {0x9536e437, 0xffffd845ffffdf85}, + {0x9536e438, 0xffffd845ffffdf86}, + {0x9536e439, 0xffffd845ffffdf87}, + {0x9536e530, 0xffffd845ffffdf88}, + {0x9536e531, 0xffffd845ffffdf89}, + {0x9536e532, 0xffffd845ffffdf8a}, + {0x9536e533, 0xffffd845ffffdf8b}, + {0x9536e534, 0xffffd845ffffdf8c}, + {0x9536e535, 0xffffd845ffffdf8d}, + {0x9536e536, 0xffffd845ffffdf8e}, + {0x9536e537, 0xffffd845ffffdf8f}, + {0x9536e538, 0xffffd845ffffdf90}, + {0x9536e539, 0xffffd845ffffdf91}, + {0x9536e630, 0xffffd845ffffdf92}, + {0x9536e631, 0xffffd845ffffdf93}, + {0x9536e632, 0xffffd845ffffdf94}, + {0x9536e633, 0xffffd845ffffdf95}, + {0x9536e634, 0xffffd845ffffdf96}, + {0x9536e635, 0xffffd845ffffdf97}, + {0x9536e636, 0xffffd845ffffdf98}, + {0x9536e637, 0xffffd845ffffdf99}, + {0x9536e638, 0xffffd845ffffdf9a}, + {0x9536e639, 0xffffd845ffffdf9b}, + {0x9536e730, 0xffffd845ffffdf9c}, + {0x9536e731, 0xffffd845ffffdf9d}, + {0x9536e732, 0xffffd845ffffdf9e}, + {0x9536e733, 0xffffd845ffffdf9f}, + {0x9536e734, 0xffffd845ffffdfa0}, + {0x9536e735, 0xffffd845ffffdfa1}, + {0x9536e736, 0xffffd845ffffdfa2}, + {0x9536e737, 0xffffd845ffffdfa3}, + {0x9536e738, 0xffffd845ffffdfa4}, + {0x9536e739, 0xffffd845ffffdfa5}, + {0x9536e830, 0xffffd845ffffdfa6}, + {0x9536e831, 0xffffd845ffffdfa7}, + {0x9536e832, 0xffffd845ffffdfa8}, + {0x9536e833, 0xffffd845ffffdfa9}, + {0x9536e834, 0xffffd845ffffdfaa}, + {0x9536e835, 0xffffd845ffffdfab}, + {0x9536e836, 0xffffd845ffffdfac}, + {0x9536e837, 0xffffd845ffffdfad}, + {0x9536e838, 0xffffd845ffffdfae}, + {0x9536e839, 0xffffd845ffffdfaf}, + {0x9536e930, 0xffffd845ffffdfb0}, + {0x9536e931, 0xffffd845ffffdfb1}, + {0x9536e932, 0xffffd845ffffdfb2}, + {0x9536e933, 0xffffd845ffffdfb3}, + {0x9536e934, 0xffffd845ffffdfb4}, + {0x9536e935, 0xffffd845ffffdfb5}, + {0x9536e936, 0xffffd845ffffdfb6}, + {0x9536e937, 0xffffd845ffffdfb7}, + {0x9536e938, 0xffffd845ffffdfb8}, + {0x9536e939, 0xffffd845ffffdfb9}, + {0x9536ea30, 0xffffd845ffffdfba}, + {0x9536ea31, 0xffffd845ffffdfbb}, + {0x9536ea32, 0xffffd845ffffdfbc}, + {0x9536ea33, 0xffffd845ffffdfbd}, + {0x9536ea34, 0xffffd845ffffdfbe}, + {0x9536ea35, 0xffffd845ffffdfbf}, + {0x9536ea36, 0xffffd845ffffdfc0}, + {0x9536ea37, 0xffffd845ffffdfc1}, + {0x9536ea38, 0xffffd845ffffdfc2}, + {0x9536ea39, 0xffffd845ffffdfc3}, + {0x9536eb30, 0xffffd845ffffdfc4}, + {0x9536eb31, 0xffffd845ffffdfc5}, + {0x9536eb32, 0xffffd845ffffdfc6}, + {0x9536eb33, 0xffffd845ffffdfc7}, + {0x9536eb34, 0xffffd845ffffdfc8}, + {0x9536eb35, 0xffffd845ffffdfc9}, + {0x9536eb36, 0xffffd845ffffdfca}, + {0x9536eb37, 0xffffd845ffffdfcb}, + {0x9536eb38, 0xffffd845ffffdfcc}, + {0x9536eb39, 0xffffd845ffffdfcd}, + {0x9536ec30, 0xffffd845ffffdfce}, + {0x9536ec31, 0xffffd845ffffdfcf}, + {0x9536ec32, 0xffffd845ffffdfd0}, + {0x9536ec33, 0xffffd845ffffdfd1}, + {0x9536ec34, 0xffffd845ffffdfd2}, + {0x9536ec35, 0xffffd845ffffdfd3}, + {0x9536ec36, 0xffffd845ffffdfd4}, + {0x9536ec37, 0xffffd845ffffdfd5}, + {0x9536ec38, 0xffffd845ffffdfd6}, + {0x9536ec39, 0xffffd845ffffdfd7}, + {0x9536ed30, 0xffffd845ffffdfd8}, + {0x9536ed31, 0xffffd845ffffdfd9}, + {0x9536ed32, 0xffffd845ffffdfda}, + {0x9536ed33, 0xffffd845ffffdfdb}, + {0x9536ed34, 0xffffd845ffffdfdc}, + {0x9536ed35, 0xffffd845ffffdfdd}, + {0x9536ed36, 0xffffd845ffffdfde}, + {0x9536ed37, 0xffffd845ffffdfdf}, + {0x9536ed38, 0xffffd845ffffdfe0}, + {0x9536ed39, 0xffffd845ffffdfe1}, + {0x9536ee30, 0xffffd845ffffdfe2}, + {0x9536ee31, 0xffffd845ffffdfe3}, + {0x9536ee32, 0xffffd845ffffdfe4}, + {0x9536ee33, 0xffffd845ffffdfe5}, + {0x9536ee34, 0xffffd845ffffdfe6}, + {0x9536ee35, 0xffffd845ffffdfe7}, + {0x9536ee36, 0xffffd845ffffdfe8}, + {0x9536ee37, 0xffffd845ffffdfe9}, + {0x9536ee38, 0xffffd845ffffdfea}, + {0x9536ee39, 0xffffd845ffffdfeb}, + {0x9536ef30, 0xffffd845ffffdfec}, + {0x9536ef31, 0xffffd845ffffdfed}, + {0x9536ef32, 0xffffd845ffffdfee}, + {0x9536ef33, 0xffffd845ffffdfef}, + {0x9536ef34, 0xffffd845ffffdff0}, + {0x9536ef35, 0xffffd845ffffdff1}, + {0x9536ef36, 0xffffd845ffffdff2}, + {0x9536ef37, 0xffffd845ffffdff3}, + {0x9536ef38, 0xffffd845ffffdff4}, + {0x9536ef39, 0xffffd845ffffdff5}, + {0x9536f030, 0xffffd845ffffdff6}, + {0x9536f031, 0xffffd845ffffdff7}, + {0x9536f032, 0xffffd845ffffdff8}, + {0x9536f033, 0xffffd845ffffdff9}, + {0x9536f034, 0xffffd845ffffdffa}, + {0x9536f035, 0xffffd845ffffdffb}, + {0x9536f036, 0xffffd845ffffdffc}, + {0x9536f037, 0xffffd845ffffdffd}, + {0x9536f038, 0xffffd845ffffdffe}, + {0x9536f039, 0xffffd845ffffdfff}, + {0x9536f130, 0xffffd846ffffdc00}, + {0x9536f131, 0xffffd846ffffdc01}, + {0x9536f132, 0xffffd846ffffdc02}, + {0x9536f133, 0xffffd846ffffdc03}, + {0x9536f134, 0xffffd846ffffdc04}, + {0x9536f135, 0xffffd846ffffdc05}, + {0x9536f136, 0xffffd846ffffdc06}, + {0x9536f137, 0xffffd846ffffdc07}, + {0x9536f138, 0xffffd846ffffdc08}, + {0x9536f139, 0xffffd846ffffdc09}, + {0x9536f230, 0xffffd846ffffdc0a}, + {0x9536f231, 0xffffd846ffffdc0b}, + {0x9536f232, 0xffffd846ffffdc0c}, + {0x9536f233, 0xffffd846ffffdc0d}, + {0x9536f234, 0xffffd846ffffdc0e}, + {0x9536f235, 0xffffd846ffffdc0f}, + {0x9536f236, 0xffffd846ffffdc10}, + {0x9536f237, 0xffffd846ffffdc11}, + {0x9536f238, 0xffffd846ffffdc12}, + {0x9536f239, 0xffffd846ffffdc13}, + {0x9536f330, 0xffffd846ffffdc14}, + {0x9536f331, 0xffffd846ffffdc15}, + {0x9536f332, 0xffffd846ffffdc16}, + {0x9536f333, 0xffffd846ffffdc17}, + {0x9536f334, 0xffffd846ffffdc18}, + {0x9536f335, 0xffffd846ffffdc19}, + {0x9536f336, 0xffffd846ffffdc1a}, + {0x9536f337, 0xffffd846ffffdc1b}, + {0x9536f338, 0xffffd846ffffdc1c}, + {0x9536f339, 0xffffd846ffffdc1d}, + {0x9536f430, 0xffffd846ffffdc1e}, + {0x9536f431, 0xffffd846ffffdc1f}, + {0x9536f432, 0xffffd846ffffdc20}, + {0x9536f433, 0xffffd846ffffdc21}, + {0x9536f434, 0xffffd846ffffdc22}, + {0x9536f435, 0xffffd846ffffdc23}, + {0x9536f436, 0xffffd846ffffdc24}, + {0x9536f437, 0xffffd846ffffdc25}, + {0x9536f438, 0xffffd846ffffdc26}, + {0x9536f439, 0xffffd846ffffdc27}, + {0x9536f530, 0xffffd846ffffdc28}, + {0x9536f531, 0xffffd846ffffdc29}, + {0x9536f532, 0xffffd846ffffdc2a}, + {0x9536f533, 0xffffd846ffffdc2b}, + {0x9536f534, 0xffffd846ffffdc2c}, + {0x9536f535, 0xffffd846ffffdc2d}, + {0x9536f536, 0xffffd846ffffdc2e}, + {0x9536f537, 0xffffd846ffffdc2f}, + {0x9536f538, 0xffffd846ffffdc30}, + {0x9536f539, 0xffffd846ffffdc31}, + {0x9536f630, 0xffffd846ffffdc32}, + {0x9536f631, 0xffffd846ffffdc33}, + {0x9536f632, 0xffffd846ffffdc34}, + {0x9536f633, 0xffffd846ffffdc35}, + {0x9536f634, 0xffffd846ffffdc36}, + {0x9536f635, 0xffffd846ffffdc37}, + {0x9536f636, 0xffffd846ffffdc38}, + {0x9536f637, 0xffffd846ffffdc39}, + {0x9536f638, 0xffffd846ffffdc3a}, + {0x9536f639, 0xffffd846ffffdc3b}, + {0x9536f730, 0xffffd846ffffdc3c}, + {0x9536f731, 0xffffd846ffffdc3d}, + {0x9536f732, 0xffffd846ffffdc3e}, + {0x9536f733, 0xffffd846ffffdc3f}, + {0x9536f734, 0xffffd846ffffdc40}, + {0x9536f735, 0xffffd846ffffdc41}, + {0x9536f736, 0xffffd846ffffdc42}, + {0x9536f737, 0xffffd846ffffdc43}, + {0x9536f738, 0xffffd846ffffdc44}, + {0x9536f739, 0xffffd846ffffdc45}, + {0x9536f830, 0xffffd846ffffdc46}, + {0x9536f831, 0xffffd846ffffdc47}, + {0x9536f832, 0xffffd846ffffdc48}, + {0x9536f833, 0xffffd846ffffdc49}, + {0x9536f834, 0xffffd846ffffdc4a}, + {0x9536f835, 0xffffd846ffffdc4b}, + {0x9536f836, 0xffffd846ffffdc4c}, + {0x9536f837, 0xffffd846ffffdc4d}, + {0x9536f838, 0xffffd846ffffdc4e}, + {0x9536f839, 0xffffd846ffffdc4f}, + {0x9536f930, 0xffffd846ffffdc50}, + {0x9536f931, 0xffffd846ffffdc51}, + {0x9536f932, 0xffffd846ffffdc52}, + {0x9536f933, 0xffffd846ffffdc53}, + {0x9536f934, 0xffffd846ffffdc54}, + {0x9536f935, 0xffffd846ffffdc55}, + {0x9536f936, 0xffffd846ffffdc56}, + {0x9536f937, 0xffffd846ffffdc57}, + {0x9536f938, 0xffffd846ffffdc58}, + {0x9536f939, 0xffffd846ffffdc59}, + {0x9536fa30, 0xffffd846ffffdc5a}, + {0x9536fa31, 0xffffd846ffffdc5b}, + {0x9536fa32, 0xffffd846ffffdc5c}, + {0x9536fa33, 0xffffd846ffffdc5d}, + {0x9536fa34, 0xffffd846ffffdc5e}, + {0x9536fa35, 0xffffd846ffffdc5f}, + {0x9536fa36, 0xffffd846ffffdc60}, + {0x9536fa37, 0xffffd846ffffdc61}, + {0x9536fa38, 0xffffd846ffffdc62}, + {0x9536fa39, 0xffffd846ffffdc63}, + {0x9536fb30, 0xffffd846ffffdc64}, + {0x9536fb31, 0xffffd846ffffdc65}, + {0x9536fb32, 0xffffd846ffffdc66}, + {0x9536fb33, 0xffffd846ffffdc67}, + {0x9536fb34, 0xffffd846ffffdc68}, + {0x9536fb35, 0xffffd846ffffdc69}, + {0x9536fb36, 0xffffd846ffffdc6a}, + {0x9536fb37, 0xffffd846ffffdc6b}, + {0x9536fb38, 0xffffd846ffffdc6c}, + {0x9536fb39, 0xffffd846ffffdc6d}, + {0x9536fc30, 0xffffd846ffffdc6e}, + {0x9536fc31, 0xffffd846ffffdc6f}, + {0x9536fc32, 0xffffd846ffffdc70}, + {0x9536fc33, 0xffffd846ffffdc71}, + {0x9536fc34, 0xffffd846ffffdc72}, + {0x9536fc35, 0xffffd846ffffdc73}, + {0x9536fc36, 0xffffd846ffffdc74}, + {0x9536fc37, 0xffffd846ffffdc75}, + {0x9536fc38, 0xffffd846ffffdc76}, + {0x9536fc39, 0xffffd846ffffdc77}, + {0x9536fd30, 0xffffd846ffffdc78}, + {0x9536fd31, 0xffffd846ffffdc79}, + {0x9536fd32, 0xffffd846ffffdc7a}, + {0x9536fd33, 0xffffd846ffffdc7b}, + {0x9536fd34, 0xffffd846ffffdc7c}, + {0x9536fd35, 0xffffd846ffffdc7d}, + {0x9536fd36, 0xffffd846ffffdc7e}, + {0x9536fd37, 0xffffd846ffffdc7f}, + {0x9536fd38, 0xffffd846ffffdc80}, + {0x9536fd39, 0xffffd846ffffdc81}, + {0x9536fe30, 0xffffd846ffffdc82}, + {0x9536fe31, 0xffffd846ffffdc83}, + {0x9536fe32, 0xffffd846ffffdc84}, + {0x9536fe33, 0xffffd846ffffdc85}, + {0x9536fe34, 0xffffd846ffffdc86}, + {0x9536fe35, 0xffffd846ffffdc87}, + {0x9536fe36, 0xffffd846ffffdc88}, + {0x9536fe37, 0xffffd846ffffdc89}, + {0x9536fe38, 0xffffd846ffffdc8a}, + {0x9536fe39, 0xffffd846ffffdc8b}, + {0x95378130, 0xffffd846ffffdc8c}, + {0x95378131, 0xffffd846ffffdc8d}, + {0x95378132, 0xffffd846ffffdc8e}, + {0x95378133, 0xffffd846ffffdc8f}, + {0x95378134, 0xffffd846ffffdc90}, + {0x95378135, 0xffffd846ffffdc91}, + {0x95378136, 0xffffd846ffffdc92}, + {0x95378137, 0xffffd846ffffdc93}, + {0x95378138, 0xffffd846ffffdc94}, + {0x95378139, 0xffffd846ffffdc95}, + {0x95378230, 0xffffd846ffffdc96}, + {0x95378231, 0xffffd846ffffdc97}, + {0x95378232, 0xffffd846ffffdc98}, + {0x95378233, 0xffffd846ffffdc99}, + {0x95378234, 0xffffd846ffffdc9a}, + {0x95378235, 0xffffd846ffffdc9b}, + {0x95378236, 0xffffd846ffffdc9c}, + {0x95378237, 0xffffd846ffffdc9d}, + {0x95378238, 0xffffd846ffffdc9e}, + {0x95378239, 0xffffd846ffffdc9f}, + {0x95378330, 0xffffd846ffffdca0}, + {0x95378331, 0xffffd846ffffdca1}, + {0x95378332, 0xffffd846ffffdca2}, + {0x95378333, 0xffffd846ffffdca3}, + {0x95378334, 0xffffd846ffffdca4}, + {0x95378335, 0xffffd846ffffdca5}, + {0x95378336, 0xffffd846ffffdca6}, + {0x95378337, 0xffffd846ffffdca7}, + {0x95378338, 0xffffd846ffffdca8}, + {0x95378339, 0xffffd846ffffdca9}, + {0x95378430, 0xffffd846ffffdcaa}, + {0x95378431, 0xffffd846ffffdcab}, + {0x95378432, 0xffffd846ffffdcac}, + {0x95378433, 0xffffd846ffffdcad}, + {0x95378434, 0xffffd846ffffdcae}, + {0x95378435, 0xffffd846ffffdcaf}, + {0x95378436, 0xffffd846ffffdcb0}, + {0x95378437, 0xffffd846ffffdcb1}, + {0x95378438, 0xffffd846ffffdcb2}, + {0x95378439, 0xffffd846ffffdcb3}, + {0x95378530, 0xffffd846ffffdcb4}, + {0x95378531, 0xffffd846ffffdcb5}, + {0x95378532, 0xffffd846ffffdcb6}, + {0x95378533, 0xffffd846ffffdcb7}, + {0x95378534, 0xffffd846ffffdcb8}, + {0x95378535, 0xffffd846ffffdcb9}, + {0x95378536, 0xffffd846ffffdcba}, + {0x95378537, 0xffffd846ffffdcbb}, + {0x95378538, 0xffffd846ffffdcbc}, + {0x95378539, 0xffffd846ffffdcbd}, + {0x95378630, 0xffffd846ffffdcbe}, + {0x95378631, 0xffffd846ffffdcbf}, + {0x95378632, 0xffffd846ffffdcc0}, + {0x95378633, 0xffffd846ffffdcc1}, + {0x95378634, 0xffffd846ffffdcc2}, + {0x95378635, 0xffffd846ffffdcc3}, + {0x95378636, 0xffffd846ffffdcc4}, + {0x95378637, 0xffffd846ffffdcc5}, + {0x95378638, 0xffffd846ffffdcc6}, + {0x95378639, 0xffffd846ffffdcc7}, + {0x95378730, 0xffffd846ffffdcc8}, + {0x95378731, 0xffffd846ffffdcc9}, + {0x95378732, 0xffffd846ffffdcca}, + {0x95378733, 0xffffd846ffffdccb}, + {0x95378734, 0xffffd846ffffdccc}, + {0x95378735, 0xffffd846ffffdccd}, + {0x95378736, 0xffffd846ffffdcce}, + {0x95378737, 0xffffd846ffffdccf}, + {0x95378738, 0xffffd846ffffdcd0}, + {0x95378739, 0xffffd846ffffdcd1}, + {0x95378830, 0xffffd846ffffdcd2}, + {0x95378831, 0xffffd846ffffdcd3}, + {0x95378832, 0xffffd846ffffdcd4}, + {0x95378833, 0xffffd846ffffdcd5}, + {0x95378834, 0xffffd846ffffdcd6}, + {0x95378835, 0xffffd846ffffdcd7}, + {0x95378836, 0xffffd846ffffdcd8}, + {0x95378837, 0xffffd846ffffdcd9}, + {0x95378838, 0xffffd846ffffdcda}, + {0x95378839, 0xffffd846ffffdcdb}, + {0x95378930, 0xffffd846ffffdcdc}, + {0x95378931, 0xffffd846ffffdcdd}, + {0x95378932, 0xffffd846ffffdcde}, + {0x95378933, 0xffffd846ffffdcdf}, + {0x95378934, 0xffffd846ffffdce0}, + {0x95378935, 0xffffd846ffffdce1}, + {0x95378936, 0xffffd846ffffdce2}, + {0x95378937, 0xffffd846ffffdce3}, + {0x95378938, 0xffffd846ffffdce4}, + {0x95378939, 0xffffd846ffffdce5}, + {0x95378a30, 0xffffd846ffffdce6}, + {0x95378a31, 0xffffd846ffffdce7}, + {0x95378a32, 0xffffd846ffffdce8}, + {0x95378a33, 0xffffd846ffffdce9}, + {0x95378a34, 0xffffd846ffffdcea}, + {0x95378a35, 0xffffd846ffffdceb}, + {0x95378a36, 0xffffd846ffffdcec}, + {0x95378a37, 0xffffd846ffffdced}, + {0x95378a38, 0xffffd846ffffdcee}, + {0x95378a39, 0xffffd846ffffdcef}, + {0x95378b30, 0xffffd846ffffdcf0}, + {0x95378b31, 0xffffd846ffffdcf1}, + {0x95378b32, 0xffffd846ffffdcf2}, + {0x95378b33, 0xffffd846ffffdcf3}, + {0x95378b34, 0xffffd846ffffdcf4}, + {0x95378b35, 0xffffd846ffffdcf5}, + {0x95378b36, 0xffffd846ffffdcf6}, + {0x95378b37, 0xffffd846ffffdcf7}, + {0x95378b38, 0xffffd846ffffdcf8}, + {0x95378b39, 0xffffd846ffffdcf9}, + {0x95378c30, 0xffffd846ffffdcfa}, + {0x95378c31, 0xffffd846ffffdcfb}, + {0x95378c32, 0xffffd846ffffdcfc}, + {0x95378c33, 0xffffd846ffffdcfd}, + {0x95378c34, 0xffffd846ffffdcfe}, + {0x95378c35, 0xffffd846ffffdcff}, + {0x95378c36, 0xffffd846ffffdd00}, + {0x95378c37, 0xffffd846ffffdd01}, + {0x95378c38, 0xffffd846ffffdd02}, + {0x95378c39, 0xffffd846ffffdd03}, + {0x95378d30, 0xffffd846ffffdd04}, + {0x95378d31, 0xffffd846ffffdd05}, + {0x95378d32, 0xffffd846ffffdd06}, + {0x95378d33, 0xffffd846ffffdd07}, + {0x95378d34, 0xffffd846ffffdd08}, + {0x95378d35, 0xffffd846ffffdd09}, + {0x95378d36, 0xffffd846ffffdd0a}, + {0x95378d37, 0xffffd846ffffdd0b}, + {0x95378d38, 0xffffd846ffffdd0c}, + {0x95378d39, 0xffffd846ffffdd0d}, + {0x95378e30, 0xffffd846ffffdd0e}, + {0x95378e31, 0xffffd846ffffdd0f}, + {0x95378e32, 0xffffd846ffffdd10}, + {0x95378e33, 0xffffd846ffffdd11}, + {0x95378e34, 0xffffd846ffffdd12}, + {0x95378e35, 0xffffd846ffffdd13}, + {0x95378e36, 0xffffd846ffffdd14}, + {0x95378e37, 0xffffd846ffffdd15}, + {0x95378e38, 0xffffd846ffffdd16}, + {0x95378e39, 0xffffd846ffffdd17}, + {0x95378f30, 0xffffd846ffffdd18}, + {0x95378f31, 0xffffd846ffffdd19}, + {0x95378f32, 0xffffd846ffffdd1a}, + {0x95378f33, 0xffffd846ffffdd1b}, + {0x95378f34, 0xffffd846ffffdd1c}, + {0x95378f35, 0xffffd846ffffdd1d}, + {0x95378f36, 0xffffd846ffffdd1e}, + {0x95378f37, 0xffffd846ffffdd1f}, + {0x95378f38, 0xffffd846ffffdd20}, + {0x95378f39, 0xffffd846ffffdd21}, + {0x95379030, 0xffffd846ffffdd22}, + {0x95379031, 0xffffd846ffffdd23}, + {0x95379032, 0xffffd846ffffdd24}, + {0x95379033, 0xffffd846ffffdd25}, + {0x95379034, 0xffffd846ffffdd26}, + {0x95379035, 0xffffd846ffffdd27}, + {0x95379036, 0xffffd846ffffdd28}, + {0x95379037, 0xffffd846ffffdd29}, + {0x95379038, 0xffffd846ffffdd2a}, + {0x95379039, 0xffffd846ffffdd2b}, + {0x95379130, 0xffffd846ffffdd2c}, + {0x95379131, 0xffffd846ffffdd2d}, + {0x95379132, 0xffffd846ffffdd2e}, + {0x95379133, 0xffffd846ffffdd2f}, + {0x95379134, 0xffffd846ffffdd30}, + {0x95379135, 0xffffd846ffffdd31}, + {0x95379136, 0xffffd846ffffdd32}, + {0x95379137, 0xffffd846ffffdd33}, + {0x95379138, 0xffffd846ffffdd34}, + {0x95379139, 0xffffd846ffffdd35}, + {0x95379230, 0xffffd846ffffdd36}, + {0x95379231, 0xffffd846ffffdd37}, + {0x95379232, 0xffffd846ffffdd38}, + {0x95379233, 0xffffd846ffffdd39}, + {0x95379234, 0xffffd846ffffdd3a}, + {0x95379235, 0xffffd846ffffdd3b}, + {0x95379236, 0xffffd846ffffdd3c}, + {0x95379237, 0xffffd846ffffdd3d}, + {0x95379238, 0xffffd846ffffdd3e}, + {0x95379239, 0xffffd846ffffdd3f}, + {0x95379330, 0xffffd846ffffdd40}, + {0x95379331, 0xffffd846ffffdd41}, + {0x95379332, 0xffffd846ffffdd42}, + {0x95379333, 0xffffd846ffffdd43}, + {0x95379334, 0xffffd846ffffdd44}, + {0x95379335, 0xffffd846ffffdd45}, + {0x95379336, 0xffffd846ffffdd46}, + {0x95379337, 0xffffd846ffffdd47}, + {0x95379338, 0xffffd846ffffdd48}, + {0x95379339, 0xffffd846ffffdd49}, + {0x95379430, 0xffffd846ffffdd4a}, + {0x95379431, 0xffffd846ffffdd4b}, + {0x95379432, 0xffffd846ffffdd4c}, + {0x95379433, 0xffffd846ffffdd4d}, + {0x95379434, 0xffffd846ffffdd4e}, + {0x95379435, 0xffffd846ffffdd4f}, + {0x95379436, 0xffffd846ffffdd50}, + {0x95379437, 0xffffd846ffffdd51}, + {0x95379438, 0xffffd846ffffdd52}, + {0x95379439, 0xffffd846ffffdd53}, + {0x95379530, 0xffffd846ffffdd54}, + {0x95379531, 0xffffd846ffffdd55}, + {0x95379532, 0xffffd846ffffdd56}, + {0x95379533, 0xffffd846ffffdd57}, + {0x95379534, 0xffffd846ffffdd58}, + {0x95379535, 0xffffd846ffffdd59}, + {0x95379536, 0xffffd846ffffdd5a}, + {0x95379537, 0xffffd846ffffdd5b}, + {0x95379538, 0xffffd846ffffdd5c}, + {0x95379539, 0xffffd846ffffdd5d}, + {0x95379630, 0xffffd846ffffdd5e}, + {0x95379631, 0xffffd846ffffdd5f}, + {0x95379632, 0xffffd846ffffdd60}, + {0x95379633, 0xffffd846ffffdd61}, + {0x95379634, 0xffffd846ffffdd62}, + {0x95379635, 0xffffd846ffffdd63}, + {0x95379636, 0xffffd846ffffdd64}, + {0x95379637, 0xffffd846ffffdd65}, + {0x95379638, 0xffffd846ffffdd66}, + {0x95379639, 0xffffd846ffffdd67}, + {0x95379730, 0xffffd846ffffdd68}, + {0x95379731, 0xffffd846ffffdd69}, + {0x95379732, 0xffffd846ffffdd6a}, + {0x95379733, 0xffffd846ffffdd6b}, + {0x95379734, 0xffffd846ffffdd6c}, + {0x95379735, 0xffffd846ffffdd6d}, + {0x95379736, 0xffffd846ffffdd6e}, + {0x95379737, 0xffffd846ffffdd6f}, + {0x95379738, 0xffffd846ffffdd70}, + {0x95379739, 0xffffd846ffffdd71}, + {0x95379830, 0xffffd846ffffdd72}, + {0x95379831, 0xffffd846ffffdd73}, + {0x95379832, 0xffffd846ffffdd74}, + {0x95379833, 0xffffd846ffffdd75}, + {0x95379834, 0xffffd846ffffdd76}, + {0x95379835, 0xffffd846ffffdd77}, + {0x95379836, 0xffffd846ffffdd78}, + {0x95379837, 0xffffd846ffffdd79}, + {0x95379838, 0xffffd846ffffdd7a}, + {0x95379839, 0xffffd846ffffdd7b}, + {0x95379930, 0xffffd846ffffdd7c}, + {0x95379931, 0xffffd846ffffdd7d}, + {0x95379932, 0xffffd846ffffdd7e}, + {0x95379933, 0xffffd846ffffdd7f}, + {0x95379934, 0xffffd846ffffdd80}, + {0x95379935, 0xffffd846ffffdd81}, + {0x95379936, 0xffffd846ffffdd82}, + {0x95379937, 0xffffd846ffffdd83}, + {0x95379938, 0xffffd846ffffdd84}, + {0x95379939, 0xffffd846ffffdd85}, + {0x95379a30, 0xffffd846ffffdd86}, + {0x95379a31, 0xffffd846ffffdd87}, + {0x95379a32, 0xffffd846ffffdd88}, + {0x95379a33, 0xffffd846ffffdd89}, + {0x95379a34, 0xffffd846ffffdd8a}, + {0x95379a35, 0xffffd846ffffdd8b}, + {0x95379a36, 0xffffd846ffffdd8c}, + {0x95379a37, 0xffffd846ffffdd8d}, + {0x95379a38, 0xffffd846ffffdd8e}, + {0x95379a39, 0xffffd846ffffdd8f}, + {0x95379b30, 0xffffd846ffffdd90}, + {0x95379b31, 0xffffd846ffffdd91}, + {0x95379b32, 0xffffd846ffffdd92}, + {0x95379b33, 0xffffd846ffffdd93}, + {0x95379b34, 0xffffd846ffffdd94}, + {0x95379b35, 0xffffd846ffffdd95}, + {0x95379b36, 0xffffd846ffffdd96}, + {0x95379b37, 0xffffd846ffffdd97}, + {0x95379b38, 0xffffd846ffffdd98}, + {0x95379b39, 0xffffd846ffffdd99}, + {0x95379c30, 0xffffd846ffffdd9a}, + {0x95379c31, 0xffffd846ffffdd9b}, + {0x95379c32, 0xffffd846ffffdd9c}, + {0x95379c33, 0xffffd846ffffdd9d}, + {0x95379c34, 0xffffd846ffffdd9e}, + {0x95379c35, 0xffffd846ffffdd9f}, + {0x95379c36, 0xffffd846ffffdda0}, + {0x95379c37, 0xffffd846ffffdda1}, + {0x95379c38, 0xffffd846ffffdda2}, + {0x95379c39, 0xffffd846ffffdda3}, + {0x95379d30, 0xffffd846ffffdda4}, + {0x95379d31, 0xffffd846ffffdda5}, + {0x95379d32, 0xffffd846ffffdda6}, + {0x95379d33, 0xffffd846ffffdda7}, + {0x95379d34, 0xffffd846ffffdda8}, + {0x95379d35, 0xffffd846ffffdda9}, + {0x95379d36, 0xffffd846ffffddaa}, + {0x95379d37, 0xffffd846ffffddab}, + {0x95379d38, 0xffffd846ffffddac}, + {0x95379d39, 0xffffd846ffffddad}, + {0x95379e30, 0xffffd846ffffddae}, + {0x95379e31, 0xffffd846ffffddaf}, + {0x95379e32, 0xffffd846ffffddb0}, + {0x95379e33, 0xffffd846ffffddb1}, + {0x95379e34, 0xffffd846ffffddb2}, + {0x95379e35, 0xffffd846ffffddb3}, + {0x95379e36, 0xffffd846ffffddb4}, + {0x95379e37, 0xffffd846ffffddb5}, + {0x95379e38, 0xffffd846ffffddb6}, + {0x95379e39, 0xffffd846ffffddb7}, + {0x95379f30, 0xffffd846ffffddb8}, + {0x95379f31, 0xffffd846ffffddb9}, + {0x95379f32, 0xffffd846ffffddba}, + {0x95379f33, 0xffffd846ffffddbb}, + {0x95379f34, 0xffffd846ffffddbc}, + {0x95379f35, 0xffffd846ffffddbd}, + {0x95379f36, 0xffffd846ffffddbe}, + {0x95379f37, 0xffffd846ffffddbf}, + {0x95379f38, 0xffffd846ffffddc0}, + {0x95379f39, 0xffffd846ffffddc1}, + {0x9537a030, 0xffffd846ffffddc2}, + {0x9537a031, 0xffffd846ffffddc3}, + {0x9537a032, 0xffffd846ffffddc4}, + {0x9537a033, 0xffffd846ffffddc5}, + {0x9537a034, 0xffffd846ffffddc6}, + {0x9537a035, 0xffffd846ffffddc7}, + {0x9537a036, 0xffffd846ffffddc8}, + {0x9537a037, 0xffffd846ffffddc9}, + {0x9537a038, 0xffffd846ffffddca}, + {0x9537a039, 0xffffd846ffffddcb}, + {0x9537a130, 0xffffd846ffffddcc}, + {0x9537a131, 0xffffd846ffffddcd}, + {0x9537a132, 0xffffd846ffffddce}, + {0x9537a133, 0xffffd846ffffddcf}, + {0x9537a134, 0xffffd846ffffddd0}, + {0x9537a135, 0xffffd846ffffddd1}, + {0x9537a136, 0xffffd846ffffddd2}, + {0x9537a137, 0xffffd846ffffddd3}, + {0x9537a138, 0xffffd846ffffddd4}, + {0x9537a139, 0xffffd846ffffddd5}, + {0x9537a230, 0xffffd846ffffddd6}, + {0x9537a231, 0xffffd846ffffddd7}, + {0x9537a232, 0xffffd846ffffddd8}, + {0x9537a233, 0xffffd846ffffddd9}, + {0x9537a234, 0xffffd846ffffddda}, + {0x9537a235, 0xffffd846ffffdddb}, + {0x9537a236, 0xffffd846ffffdddc}, + {0x9537a237, 0xffffd846ffffdddd}, + {0x9537a238, 0xffffd846ffffddde}, + {0x9537a239, 0xffffd846ffffdddf}, + {0x9537a330, 0xffffd846ffffdde0}, + {0x9537a331, 0xffffd846ffffdde1}, + {0x9537a332, 0xffffd846ffffdde2}, + {0x9537a333, 0xffffd846ffffdde3}, + {0x9537a334, 0xffffd846ffffdde4}, + {0x9537a335, 0xffffd846ffffdde5}, + {0x9537a336, 0xffffd846ffffdde6}, + {0x9537a337, 0xffffd846ffffdde7}, + {0x9537a338, 0xffffd846ffffdde8}, + {0x9537a339, 0xffffd846ffffdde9}, + {0x9537a430, 0xffffd846ffffddea}, + {0x9537a431, 0xffffd846ffffddeb}, + {0x9537a432, 0xffffd846ffffddec}, + {0x9537a433, 0xffffd846ffffdded}, + {0x9537a434, 0xffffd846ffffddee}, + {0x9537a435, 0xffffd846ffffddef}, + {0x9537a436, 0xffffd846ffffddf0}, + {0x9537a437, 0xffffd846ffffddf1}, + {0x9537a438, 0xffffd846ffffddf2}, + {0x9537a439, 0xffffd846ffffddf3}, + {0x9537a530, 0xffffd846ffffddf4}, + {0x9537a531, 0xffffd846ffffddf5}, + {0x9537a532, 0xffffd846ffffddf6}, + {0x9537a533, 0xffffd846ffffddf7}, + {0x9537a534, 0xffffd846ffffddf8}, + {0x9537a535, 0xffffd846ffffddf9}, + {0x9537a536, 0xffffd846ffffddfa}, + {0x9537a537, 0xffffd846ffffddfb}, + {0x9537a538, 0xffffd846ffffddfc}, + {0x9537a539, 0xffffd846ffffddfd}, + {0x9537a630, 0xffffd846ffffddfe}, + {0x9537a631, 0xffffd846ffffddff}, + {0x9537a632, 0xffffd846ffffde00}, + {0x9537a633, 0xffffd846ffffde01}, + {0x9537a634, 0xffffd846ffffde02}, + {0x9537a635, 0xffffd846ffffde03}, + {0x9537a636, 0xffffd846ffffde04}, + {0x9537a637, 0xffffd846ffffde05}, + {0x9537a638, 0xffffd846ffffde06}, + {0x9537a639, 0xffffd846ffffde07}, + {0x9537a730, 0xffffd846ffffde08}, + {0x9537a731, 0xffffd846ffffde09}, + {0x9537a732, 0xffffd846ffffde0a}, + {0x9537a733, 0xffffd846ffffde0b}, + {0x9537a734, 0xffffd846ffffde0c}, + {0x9537a735, 0xffffd846ffffde0d}, + {0x9537a736, 0xffffd846ffffde0e}, + {0x9537a737, 0xffffd846ffffde0f}, + {0x9537a738, 0xffffd846ffffde10}, + {0x9537a739, 0xffffd846ffffde11}, + {0x9537a830, 0xffffd846ffffde12}, + {0x9537a831, 0xffffd846ffffde13}, + {0x9537a832, 0xffffd846ffffde14}, + {0x9537a833, 0xffffd846ffffde15}, + {0x9537a834, 0xffffd846ffffde16}, + {0x9537a835, 0xffffd846ffffde17}, + {0x9537a836, 0xffffd846ffffde18}, + {0x9537a837, 0xffffd846ffffde19}, + {0x9537a838, 0xffffd846ffffde1a}, + {0x9537a839, 0xffffd846ffffde1b}, + {0x9537a930, 0xffffd846ffffde1c}, + {0x9537a931, 0xffffd846ffffde1d}, + {0x9537a932, 0xffffd846ffffde1e}, + {0x9537a933, 0xffffd846ffffde1f}, + {0x9537a934, 0xffffd846ffffde20}, + {0x9537a935, 0xffffd846ffffde21}, + {0x9537a936, 0xffffd846ffffde22}, + {0x9537a937, 0xffffd846ffffde23}, + {0x9537a938, 0xffffd846ffffde24}, + {0x9537a939, 0xffffd846ffffde25}, + {0x9537aa30, 0xffffd846ffffde26}, + {0x9537aa31, 0xffffd846ffffde27}, + {0x9537aa32, 0xffffd846ffffde28}, + {0x9537aa33, 0xffffd846ffffde29}, + {0x9537aa34, 0xffffd846ffffde2a}, + {0x9537aa35, 0xffffd846ffffde2b}, + {0x9537aa36, 0xffffd846ffffde2c}, + {0x9537aa37, 0xffffd846ffffde2d}, + {0x9537aa38, 0xffffd846ffffde2e}, + {0x9537aa39, 0xffffd846ffffde2f}, + {0x9537ab30, 0xffffd846ffffde30}, + {0x9537ab31, 0xffffd846ffffde31}, + {0x9537ab32, 0xffffd846ffffde32}, + {0x9537ab33, 0xffffd846ffffde33}, + {0x9537ab34, 0xffffd846ffffde34}, + {0x9537ab35, 0xffffd846ffffde35}, + {0x9537ab36, 0xffffd846ffffde36}, + {0x9537ab37, 0xffffd846ffffde37}, + {0x9537ab38, 0xffffd846ffffde38}, + {0x9537ab39, 0xffffd846ffffde39}, + {0x9537ac30, 0xffffd846ffffde3a}, + {0x9537ac31, 0xffffd846ffffde3b}, + {0x9537ac32, 0xffffd846ffffde3c}, + {0x9537ac33, 0xffffd846ffffde3d}, + {0x9537ac34, 0xffffd846ffffde3e}, + {0x9537ac35, 0xffffd846ffffde3f}, + {0x9537ac36, 0xffffd846ffffde40}, + {0x9537ac37, 0xffffd846ffffde41}, + {0x9537ac38, 0xffffd846ffffde42}, + {0x9537ac39, 0xffffd846ffffde43}, + {0x9537ad30, 0xffffd846ffffde44}, + {0x9537ad31, 0xffffd846ffffde45}, + {0x9537ad32, 0xffffd846ffffde46}, + {0x9537ad33, 0xffffd846ffffde47}, + {0x9537ad34, 0xffffd846ffffde48}, + {0x9537ad35, 0xffffd846ffffde49}, + {0x9537ad36, 0xffffd846ffffde4a}, + {0x9537ad37, 0xffffd846ffffde4b}, + {0x9537ad38, 0xffffd846ffffde4c}, + {0x9537ad39, 0xffffd846ffffde4d}, + {0x9537ae30, 0xffffd846ffffde4e}, + {0x9537ae31, 0xffffd846ffffde4f}, + {0x9537ae32, 0xffffd846ffffde50}, + {0x9537ae33, 0xffffd846ffffde51}, + {0x9537ae34, 0xffffd846ffffde52}, + {0x9537ae35, 0xffffd846ffffde53}, + {0x9537ae36, 0xffffd846ffffde54}, + {0x9537ae37, 0xffffd846ffffde55}, + {0x9537ae38, 0xffffd846ffffde56}, + {0x9537ae39, 0xffffd846ffffde57}, + {0x9537af30, 0xffffd846ffffde58}, + {0x9537af31, 0xffffd846ffffde59}, + {0x9537af32, 0xffffd846ffffde5a}, + {0x9537af33, 0xffffd846ffffde5b}, + {0x9537af34, 0xffffd846ffffde5c}, + {0x9537af35, 0xffffd846ffffde5d}, + {0x9537af36, 0xffffd846ffffde5e}, + {0x9537af37, 0xffffd846ffffde5f}, + {0x9537af38, 0xffffd846ffffde60}, + {0x9537af39, 0xffffd846ffffde61}, + {0x9537b030, 0xffffd846ffffde62}, + {0x9537b031, 0xffffd846ffffde63}, + {0x9537b032, 0xffffd846ffffde64}, + {0x9537b033, 0xffffd846ffffde65}, + {0x9537b034, 0xffffd846ffffde66}, + {0x9537b035, 0xffffd846ffffde67}, + {0x9537b036, 0xffffd846ffffde68}, + {0x9537b037, 0xffffd846ffffde69}, + {0x9537b038, 0xffffd846ffffde6a}, + {0x9537b039, 0xffffd846ffffde6b}, + {0x9537b130, 0xffffd846ffffde6c}, + {0x9537b131, 0xffffd846ffffde6d}, + {0x9537b132, 0xffffd846ffffde6e}, + {0x9537b133, 0xffffd846ffffde6f}, + {0x9537b134, 0xffffd846ffffde70}, + {0x9537b135, 0xffffd846ffffde71}, + {0x9537b136, 0xffffd846ffffde72}, + {0x9537b137, 0xffffd846ffffde73}, + {0x9537b138, 0xffffd846ffffde74}, + {0x9537b139, 0xffffd846ffffde75}, + {0x9537b230, 0xffffd846ffffde76}, + {0x9537b231, 0xffffd846ffffde77}, + {0x9537b232, 0xffffd846ffffde78}, + {0x9537b233, 0xffffd846ffffde79}, + {0x9537b234, 0xffffd846ffffde7a}, + {0x9537b235, 0xffffd846ffffde7b}, + {0x9537b236, 0xffffd846ffffde7c}, + {0x9537b237, 0xffffd846ffffde7d}, + {0x9537b238, 0xffffd846ffffde7e}, + {0x9537b239, 0xffffd846ffffde7f}, + {0x9537b330, 0xffffd846ffffde80}, + {0x9537b331, 0xffffd846ffffde81}, + {0x9537b332, 0xffffd846ffffde82}, + {0x9537b333, 0xffffd846ffffde83}, + {0x9537b334, 0xffffd846ffffde84}, + {0x9537b335, 0xffffd846ffffde85}, + {0x9537b336, 0xffffd846ffffde86}, + {0x9537b337, 0xffffd846ffffde87}, + {0x9537b338, 0xffffd846ffffde88}, + {0x9537b339, 0xffffd846ffffde89}, + {0x9537b430, 0xffffd846ffffde8a}, + {0x9537b431, 0xffffd846ffffde8b}, + {0x9537b432, 0xffffd846ffffde8c}, + {0x9537b433, 0xffffd846ffffde8d}, + {0x9537b434, 0xffffd846ffffde8e}, + {0x9537b435, 0xffffd846ffffde8f}, + {0x9537b436, 0xffffd846ffffde90}, + {0x9537b437, 0xffffd846ffffde91}, + {0x9537b438, 0xffffd846ffffde92}, + {0x9537b439, 0xffffd846ffffde93}, + {0x9537b530, 0xffffd846ffffde94}, + {0x9537b531, 0xffffd846ffffde95}, + {0x9537b532, 0xffffd846ffffde96}, + {0x9537b533, 0xffffd846ffffde97}, + {0x9537b534, 0xffffd846ffffde98}, + {0x9537b535, 0xffffd846ffffde99}, + {0x9537b536, 0xffffd846ffffde9a}, + {0x9537b537, 0xffffd846ffffde9b}, + {0x9537b538, 0xffffd846ffffde9c}, + {0x9537b539, 0xffffd846ffffde9d}, + {0x9537b630, 0xffffd846ffffde9e}, + {0x9537b631, 0xffffd846ffffde9f}, + {0x9537b632, 0xffffd846ffffdea0}, + {0x9537b633, 0xffffd846ffffdea1}, + {0x9537b634, 0xffffd846ffffdea2}, + {0x9537b635, 0xffffd846ffffdea3}, + {0x9537b636, 0xffffd846ffffdea4}, + {0x9537b637, 0xffffd846ffffdea5}, + {0x9537b638, 0xffffd846ffffdea6}, + {0x9537b639, 0xffffd846ffffdea7}, + {0x9537b730, 0xffffd846ffffdea8}, + {0x9537b731, 0xffffd846ffffdea9}, + {0x9537b732, 0xffffd846ffffdeaa}, + {0x9537b733, 0xffffd846ffffdeab}, + {0x9537b734, 0xffffd846ffffdeac}, + {0x9537b735, 0xffffd846ffffdead}, + {0x9537b736, 0xffffd846ffffdeae}, + {0x9537b737, 0xffffd846ffffdeaf}, + {0x9537b738, 0xffffd846ffffdeb0}, + {0x9537b739, 0xffffd846ffffdeb1}, + {0x9537b830, 0xffffd846ffffdeb2}, + {0x9537b831, 0xffffd846ffffdeb3}, + {0x9537b832, 0xffffd846ffffdeb4}, + {0x9537b833, 0xffffd846ffffdeb5}, + {0x9537b834, 0xffffd846ffffdeb6}, + {0x9537b835, 0xffffd846ffffdeb7}, + {0x9537b836, 0xffffd846ffffdeb8}, + {0x9537b837, 0xffffd846ffffdeb9}, + {0x9537b838, 0xffffd846ffffdeba}, + {0x9537b839, 0xffffd846ffffdebb}, + {0x9537b930, 0xffffd846ffffdebc}, + {0x9537b931, 0xffffd846ffffdebd}, + {0x9537b932, 0xffffd846ffffdebe}, + {0x9537b933, 0xffffd846ffffdebf}, + {0x9537b934, 0xffffd846ffffdec0}, + {0x9537b935, 0xffffd846ffffdec1}, + {0x9537b936, 0xffffd846ffffdec2}, + {0x9537b937, 0xffffd846ffffdec3}, + {0x9537b938, 0xffffd846ffffdec4}, + {0x9537b939, 0xffffd846ffffdec5}, + {0x9537ba30, 0xffffd846ffffdec6}, + {0x9537ba31, 0xffffd846ffffdec7}, + {0x9537ba32, 0xffffd846ffffdec8}, + {0x9537ba33, 0xffffd846ffffdec9}, + {0x9537ba34, 0xffffd846ffffdeca}, + {0x9537ba35, 0xffffd846ffffdecb}, + {0x9537ba36, 0xffffd846ffffdecc}, + {0x9537ba37, 0xffffd846ffffdecd}, + {0x9537ba38, 0xffffd846ffffdece}, + {0x9537ba39, 0xffffd846ffffdecf}, + {0x9537bb30, 0xffffd846ffffded0}, + {0x9537bb31, 0xffffd846ffffded1}, + {0x9537bb32, 0xffffd846ffffded2}, + {0x9537bb33, 0xffffd846ffffded3}, + {0x9537bb34, 0xffffd846ffffded4}, + {0x9537bb35, 0xffffd846ffffded5}, + {0x9537bb36, 0xffffd846ffffded6}, + {0x9537bb37, 0xffffd846ffffded7}, + {0x9537bb38, 0xffffd846ffffded8}, + {0x9537bb39, 0xffffd846ffffded9}, + {0x9537bc30, 0xffffd846ffffdeda}, + {0x9537bc31, 0xffffd846ffffdedb}, + {0x9537bc32, 0xffffd846ffffdedc}, + {0x9537bc33, 0xffffd846ffffdedd}, + {0x9537bc34, 0xffffd846ffffdede}, + {0x9537bc35, 0xffffd846ffffdedf}, + {0x9537bc36, 0xffffd846ffffdee0}, + {0x9537bc37, 0xffffd846ffffdee1}, + {0x9537bc38, 0xffffd846ffffdee2}, + {0x9537bc39, 0xffffd846ffffdee3}, + {0x9537bd30, 0xffffd846ffffdee4}, + {0x9537bd31, 0xffffd846ffffdee5}, + {0x9537bd32, 0xffffd846ffffdee6}, + {0x9537bd33, 0xffffd846ffffdee7}, + {0x9537bd34, 0xffffd846ffffdee8}, + {0x9537bd35, 0xffffd846ffffdee9}, + {0x9537bd36, 0xffffd846ffffdeea}, + {0x9537bd37, 0xffffd846ffffdeeb}, + {0x9537bd38, 0xffffd846ffffdeec}, + {0x9537bd39, 0xffffd846ffffdeed}, + {0x9537be30, 0xffffd846ffffdeee}, + {0x9537be31, 0xffffd846ffffdeef}, + {0x9537be32, 0xffffd846ffffdef0}, + {0x9537be33, 0xffffd846ffffdef1}, + {0x9537be34, 0xffffd846ffffdef2}, + {0x9537be35, 0xffffd846ffffdef3}, + {0x9537be36, 0xffffd846ffffdef4}, + {0x9537be37, 0xffffd846ffffdef5}, + {0x9537be38, 0xffffd846ffffdef6}, + {0x9537be39, 0xffffd846ffffdef7}, + {0x9537bf30, 0xffffd846ffffdef8}, + {0x9537bf31, 0xffffd846ffffdef9}, + {0x9537bf32, 0xffffd846ffffdefa}, + {0x9537bf33, 0xffffd846ffffdefb}, + {0x9537bf34, 0xffffd846ffffdefc}, + {0x9537bf35, 0xffffd846ffffdefd}, + {0x9537bf36, 0xffffd846ffffdefe}, + {0x9537bf37, 0xffffd846ffffdeff}, + {0x9537bf38, 0xffffd846ffffdf00}, + {0x9537bf39, 0xffffd846ffffdf01}, + {0x9537c030, 0xffffd846ffffdf02}, + {0x9537c031, 0xffffd846ffffdf03}, + {0x9537c032, 0xffffd846ffffdf04}, + {0x9537c033, 0xffffd846ffffdf05}, + {0x9537c034, 0xffffd846ffffdf06}, + {0x9537c035, 0xffffd846ffffdf07}, + {0x9537c036, 0xffffd846ffffdf08}, + {0x9537c037, 0xffffd846ffffdf09}, + {0x9537c038, 0xffffd846ffffdf0a}, + {0x9537c039, 0xffffd846ffffdf0b}, + {0x9537c130, 0xffffd846ffffdf0c}, + {0x9537c131, 0xffffd846ffffdf0d}, + {0x9537c132, 0xffffd846ffffdf0e}, + {0x9537c133, 0xffffd846ffffdf0f}, + {0x9537c134, 0xffffd846ffffdf10}, + {0x9537c135, 0xffffd846ffffdf11}, + {0x9537c136, 0xffffd846ffffdf12}, + {0x9537c137, 0xffffd846ffffdf13}, + {0x9537c138, 0xffffd846ffffdf14}, + {0x9537c139, 0xffffd846ffffdf15}, + {0x9537c230, 0xffffd846ffffdf16}, + {0x9537c231, 0xffffd846ffffdf17}, + {0x9537c232, 0xffffd846ffffdf18}, + {0x9537c233, 0xffffd846ffffdf19}, + {0x9537c234, 0xffffd846ffffdf1a}, + {0x9537c235, 0xffffd846ffffdf1b}, + {0x9537c236, 0xffffd846ffffdf1c}, + {0x9537c237, 0xffffd846ffffdf1d}, + {0x9537c238, 0xffffd846ffffdf1e}, + {0x9537c239, 0xffffd846ffffdf1f}, + {0x9537c330, 0xffffd846ffffdf20}, + {0x9537c331, 0xffffd846ffffdf21}, + {0x9537c332, 0xffffd846ffffdf22}, + {0x9537c333, 0xffffd846ffffdf23}, + {0x9537c334, 0xffffd846ffffdf24}, + {0x9537c335, 0xffffd846ffffdf25}, + {0x9537c336, 0xffffd846ffffdf26}, + {0x9537c337, 0xffffd846ffffdf27}, + {0x9537c338, 0xffffd846ffffdf28}, + {0x9537c339, 0xffffd846ffffdf29}, + {0x9537c430, 0xffffd846ffffdf2a}, + {0x9537c431, 0xffffd846ffffdf2b}, + {0x9537c432, 0xffffd846ffffdf2c}, + {0x9537c433, 0xffffd846ffffdf2d}, + {0x9537c434, 0xffffd846ffffdf2e}, + {0x9537c435, 0xffffd846ffffdf2f}, + {0x9537c436, 0xffffd846ffffdf30}, + {0x9537c437, 0xffffd846ffffdf31}, + {0x9537c438, 0xffffd846ffffdf32}, + {0x9537c439, 0xffffd846ffffdf33}, + {0x9537c530, 0xffffd846ffffdf34}, + {0x9537c531, 0xffffd846ffffdf35}, + {0x9537c532, 0xffffd846ffffdf36}, + {0x9537c533, 0xffffd846ffffdf37}, + {0x9537c534, 0xffffd846ffffdf38}, + {0x9537c535, 0xffffd846ffffdf39}, + {0x9537c536, 0xffffd846ffffdf3a}, + {0x9537c537, 0xffffd846ffffdf3b}, + {0x9537c538, 0xffffd846ffffdf3c}, + {0x9537c539, 0xffffd846ffffdf3d}, + {0x9537c630, 0xffffd846ffffdf3e}, + {0x9537c631, 0xffffd846ffffdf3f}, + {0x9537c632, 0xffffd846ffffdf40}, + {0x9537c633, 0xffffd846ffffdf41}, + {0x9537c634, 0xffffd846ffffdf42}, + {0x9537c635, 0xffffd846ffffdf43}, + {0x9537c636, 0xffffd846ffffdf44}, + {0x9537c637, 0xffffd846ffffdf45}, + {0x9537c638, 0xffffd846ffffdf46}, + {0x9537c639, 0xffffd846ffffdf47}, + {0x9537c730, 0xffffd846ffffdf48}, + {0x9537c731, 0xffffd846ffffdf49}, + {0x9537c732, 0xffffd846ffffdf4a}, + {0x9537c733, 0xffffd846ffffdf4b}, + {0x9537c734, 0xffffd846ffffdf4c}, + {0x9537c735, 0xffffd846ffffdf4d}, + {0x9537c736, 0xffffd846ffffdf4e}, + {0x9537c737, 0xffffd846ffffdf4f}, + {0x9537c738, 0xffffd846ffffdf50}, + {0x9537c739, 0xffffd846ffffdf51}, + {0x9537c830, 0xffffd846ffffdf52}, + {0x9537c831, 0xffffd846ffffdf53}, + {0x9537c832, 0xffffd846ffffdf54}, + {0x9537c833, 0xffffd846ffffdf55}, + {0x9537c834, 0xffffd846ffffdf56}, + {0x9537c835, 0xffffd846ffffdf57}, + {0x9537c836, 0xffffd846ffffdf58}, + {0x9537c837, 0xffffd846ffffdf59}, + {0x9537c838, 0xffffd846ffffdf5a}, + {0x9537c839, 0xffffd846ffffdf5b}, + {0x9537c930, 0xffffd846ffffdf5c}, + {0x9537c931, 0xffffd846ffffdf5d}, + {0x9537c932, 0xffffd846ffffdf5e}, + {0x9537c933, 0xffffd846ffffdf5f}, + {0x9537c934, 0xffffd846ffffdf60}, + {0x9537c935, 0xffffd846ffffdf61}, + {0x9537c936, 0xffffd846ffffdf62}, + {0x9537c937, 0xffffd846ffffdf63}, + {0x9537c938, 0xffffd846ffffdf64}, + {0x9537c939, 0xffffd846ffffdf65}, + {0x9537ca30, 0xffffd846ffffdf66}, + {0x9537ca31, 0xffffd846ffffdf67}, + {0x9537ca32, 0xffffd846ffffdf68}, + {0x9537ca33, 0xffffd846ffffdf69}, + {0x9537ca34, 0xffffd846ffffdf6a}, + {0x9537ca35, 0xffffd846ffffdf6b}, + {0x9537ca36, 0xffffd846ffffdf6c}, + {0x9537ca37, 0xffffd846ffffdf6d}, + {0x9537ca38, 0xffffd846ffffdf6e}, + {0x9537ca39, 0xffffd846ffffdf6f}, + {0x9537cb30, 0xffffd846ffffdf70}, + {0x9537cb31, 0xffffd846ffffdf71}, + {0x9537cb32, 0xffffd846ffffdf72}, + {0x9537cb33, 0xffffd846ffffdf73}, + {0x9537cb34, 0xffffd846ffffdf74}, + {0x9537cb35, 0xffffd846ffffdf75}, + {0x9537cb36, 0xffffd846ffffdf76}, + {0x9537cb37, 0xffffd846ffffdf77}, + {0x9537cb38, 0xffffd846ffffdf78}, + {0x9537cb39, 0xffffd846ffffdf79}, + {0x9537cc30, 0xffffd846ffffdf7a}, + {0x9537cc31, 0xffffd846ffffdf7b}, + {0x9537cc32, 0xffffd846ffffdf7c}, + {0x9537cc33, 0xffffd846ffffdf7d}, + {0x9537cc34, 0xffffd846ffffdf7e}, + {0x9537cc35, 0xffffd846ffffdf7f}, + {0x9537cc36, 0xffffd846ffffdf80}, + {0x9537cc37, 0xffffd846ffffdf81}, + {0x9537cc38, 0xffffd846ffffdf82}, + {0x9537cc39, 0xffffd846ffffdf83}, + {0x9537cd30, 0xffffd846ffffdf84}, + {0x9537cd31, 0xffffd846ffffdf85}, + {0x9537cd32, 0xffffd846ffffdf86}, + {0x9537cd33, 0xffffd846ffffdf87}, + {0x9537cd34, 0xffffd846ffffdf88}, + {0x9537cd35, 0xffffd846ffffdf89}, + {0x9537cd36, 0xffffd846ffffdf8a}, + {0x9537cd37, 0xffffd846ffffdf8b}, + {0x9537cd38, 0xffffd846ffffdf8c}, + {0x9537cd39, 0xffffd846ffffdf8d}, + {0x9537ce30, 0xffffd846ffffdf8e}, + {0x9537ce31, 0xffffd846ffffdf8f}, + {0x9537ce32, 0xffffd846ffffdf90}, + {0x9537ce33, 0xffffd846ffffdf91}, + {0x9537ce34, 0xffffd846ffffdf92}, + {0x9537ce35, 0xffffd846ffffdf93}, + {0x9537ce36, 0xffffd846ffffdf94}, + {0x9537ce37, 0xffffd846ffffdf95}, + {0x9537ce38, 0xffffd846ffffdf96}, + {0x9537ce39, 0xffffd846ffffdf97}, + {0x9537cf30, 0xffffd846ffffdf98}, + {0x9537cf31, 0xffffd846ffffdf99}, + {0x9537cf32, 0xffffd846ffffdf9a}, + {0x9537cf33, 0xffffd846ffffdf9b}, + {0x9537cf34, 0xffffd846ffffdf9c}, + {0x9537cf35, 0xffffd846ffffdf9d}, + {0x9537cf36, 0xffffd846ffffdf9e}, + {0x9537cf37, 0xffffd846ffffdf9f}, + {0x9537cf38, 0xffffd846ffffdfa0}, + {0x9537cf39, 0xffffd846ffffdfa1}, + {0x9537d030, 0xffffd846ffffdfa2}, + {0x9537d031, 0xffffd846ffffdfa3}, + {0x9537d032, 0xffffd846ffffdfa4}, + {0x9537d033, 0xffffd846ffffdfa5}, + {0x9537d034, 0xffffd846ffffdfa6}, + {0x9537d035, 0xffffd846ffffdfa7}, + {0x9537d036, 0xffffd846ffffdfa8}, + {0x9537d037, 0xffffd846ffffdfa9}, + {0x9537d038, 0xffffd846ffffdfaa}, + {0x9537d039, 0xffffd846ffffdfab}, + {0x9537d130, 0xffffd846ffffdfac}, + {0x9537d131, 0xffffd846ffffdfad}, + {0x9537d132, 0xffffd846ffffdfae}, + {0x9537d133, 0xffffd846ffffdfaf}, + {0x9537d134, 0xffffd846ffffdfb0}, + {0x9537d135, 0xffffd846ffffdfb1}, + {0x9537d136, 0xffffd846ffffdfb2}, + {0x9537d137, 0xffffd846ffffdfb3}, + {0x9537d138, 0xffffd846ffffdfb4}, + {0x9537d139, 0xffffd846ffffdfb5}, + {0x9537d230, 0xffffd846ffffdfb6}, + {0x9537d231, 0xffffd846ffffdfb7}, + {0x9537d232, 0xffffd846ffffdfb8}, + {0x9537d233, 0xffffd846ffffdfb9}, + {0x9537d234, 0xffffd846ffffdfba}, + {0x9537d235, 0xffffd846ffffdfbb}, + {0x9537d236, 0xffffd846ffffdfbc}, + {0x9537d237, 0xffffd846ffffdfbd}, + {0x9537d238, 0xffffd846ffffdfbe}, + {0x9537d239, 0xffffd846ffffdfbf}, + {0x9537d330, 0xffffd846ffffdfc0}, + {0x9537d331, 0xffffd846ffffdfc1}, + {0x9537d332, 0xffffd846ffffdfc2}, + {0x9537d333, 0xffffd846ffffdfc3}, + {0x9537d334, 0xffffd846ffffdfc4}, + {0x9537d335, 0xffffd846ffffdfc5}, + {0x9537d336, 0xffffd846ffffdfc6}, + {0x9537d337, 0xffffd846ffffdfc7}, + {0x9537d338, 0xffffd846ffffdfc8}, + {0x9537d339, 0xffffd846ffffdfc9}, + {0x9537d430, 0xffffd846ffffdfca}, + {0x9537d431, 0xffffd846ffffdfcb}, + {0x9537d432, 0xffffd846ffffdfcc}, + {0x9537d433, 0xffffd846ffffdfcd}, + {0x9537d434, 0xffffd846ffffdfce}, + {0x9537d435, 0xffffd846ffffdfcf}, + {0x9537d436, 0xffffd846ffffdfd0}, + {0x9537d437, 0xffffd846ffffdfd1}, + {0x9537d438, 0xffffd846ffffdfd2}, + {0x9537d439, 0xffffd846ffffdfd3}, + {0x9537d530, 0xffffd846ffffdfd4}, + {0x9537d531, 0xffffd846ffffdfd5}, + {0x9537d532, 0xffffd846ffffdfd6}, + {0x9537d533, 0xffffd846ffffdfd7}, + {0x9537d534, 0xffffd846ffffdfd8}, + {0x9537d535, 0xffffd846ffffdfd9}, + {0x9537d536, 0xffffd846ffffdfda}, + {0x9537d537, 0xffffd846ffffdfdb}, + {0x9537d538, 0xffffd846ffffdfdc}, + {0x9537d539, 0xffffd846ffffdfdd}, + {0x9537d630, 0xffffd846ffffdfde}, + {0x9537d631, 0xffffd846ffffdfdf}, + {0x9537d632, 0xffffd846ffffdfe0}, + {0x9537d633, 0xffffd846ffffdfe1}, + {0x9537d634, 0xffffd846ffffdfe2}, + {0x9537d635, 0xffffd846ffffdfe3}, + {0x9537d636, 0xffffd846ffffdfe4}, + {0x9537d637, 0xffffd846ffffdfe5}, + {0x9537d638, 0xffffd846ffffdfe6}, + {0x9537d639, 0xffffd846ffffdfe7}, + {0x9537d730, 0xffffd846ffffdfe8}, + {0x9537d731, 0xffffd846ffffdfe9}, + {0x9537d732, 0xffffd846ffffdfea}, + {0x9537d733, 0xffffd846ffffdfeb}, + {0x9537d734, 0xffffd846ffffdfec}, + {0x9537d735, 0xffffd846ffffdfed}, + {0x9537d736, 0xffffd846ffffdfee}, + {0x9537d737, 0xffffd846ffffdfef}, + {0x9537d738, 0xffffd846ffffdff0}, + {0x9537d739, 0xffffd846ffffdff1}, + {0x9537d830, 0xffffd846ffffdff2}, + {0x9537d831, 0xffffd846ffffdff3}, + {0x9537d832, 0xffffd846ffffdff4}, + {0x9537d833, 0xffffd846ffffdff5}, + {0x9537d834, 0xffffd846ffffdff6}, + {0x9537d835, 0xffffd846ffffdff7}, + {0x9537d836, 0xffffd846ffffdff8}, + {0x9537d837, 0xffffd846ffffdff9}, + {0x9537d838, 0xffffd846ffffdffa}, + {0x9537d839, 0xffffd846ffffdffb}, + {0x9537d930, 0xffffd846ffffdffc}, + {0x9537d931, 0xffffd846ffffdffd}, + {0x9537d932, 0xffffd846ffffdffe}, + {0x9537d933, 0xffffd846ffffdfff}, + {0x9537d934, 0xffffd847ffffdc00}, + {0x9537d935, 0xffffd847ffffdc01}, + {0x9537d936, 0xffffd847ffffdc02}, + {0x9537d937, 0xffffd847ffffdc03}, + {0x9537d938, 0xffffd847ffffdc04}, + {0x9537d939, 0xffffd847ffffdc05}, + {0x9537da30, 0xffffd847ffffdc06}, + {0x9537da31, 0xffffd847ffffdc07}, + {0x9537da32, 0xffffd847ffffdc08}, + {0x9537da33, 0xffffd847ffffdc09}, + {0x9537da34, 0xffffd847ffffdc0a}, + {0x9537da35, 0xffffd847ffffdc0b}, + {0x9537da36, 0xffffd847ffffdc0c}, + {0x9537da37, 0xffffd847ffffdc0d}, + {0x9537da38, 0xffffd847ffffdc0e}, + {0x9537da39, 0xffffd847ffffdc0f}, + {0x9537db30, 0xffffd847ffffdc10}, + {0x9537db31, 0xffffd847ffffdc11}, + {0x9537db32, 0xffffd847ffffdc12}, + {0x9537db33, 0xffffd847ffffdc13}, + {0x9537db34, 0xffffd847ffffdc14}, + {0x9537db35, 0xffffd847ffffdc15}, + {0x9537db36, 0xffffd847ffffdc16}, + {0x9537db37, 0xffffd847ffffdc17}, + {0x9537db38, 0xffffd847ffffdc18}, + {0x9537db39, 0xffffd847ffffdc19}, + {0x9537dc30, 0xffffd847ffffdc1a}, + {0x9537dc31, 0xffffd847ffffdc1b}, + {0x9537dc32, 0xffffd847ffffdc1c}, + {0x9537dc33, 0xffffd847ffffdc1d}, + {0x9537dc34, 0xffffd847ffffdc1e}, + {0x9537dc35, 0xffffd847ffffdc1f}, + {0x9537dc36, 0xffffd847ffffdc20}, + {0x9537dc37, 0xffffd847ffffdc21}, + {0x9537dc38, 0xffffd847ffffdc22}, + {0x9537dc39, 0xffffd847ffffdc23}, + {0x9537dd30, 0xffffd847ffffdc24}, + {0x9537dd31, 0xffffd847ffffdc25}, + {0x9537dd32, 0xffffd847ffffdc26}, + {0x9537dd33, 0xffffd847ffffdc27}, + {0x9537dd34, 0xffffd847ffffdc28}, + {0x9537dd35, 0xffffd847ffffdc29}, + {0x9537dd36, 0xffffd847ffffdc2a}, + {0x9537dd37, 0xffffd847ffffdc2b}, + {0x9537dd38, 0xffffd847ffffdc2c}, + {0x9537dd39, 0xffffd847ffffdc2d}, + {0x9537de30, 0xffffd847ffffdc2e}, + {0x9537de31, 0xffffd847ffffdc2f}, + {0x9537de32, 0xffffd847ffffdc30}, + {0x9537de33, 0xffffd847ffffdc31}, + {0x9537de34, 0xffffd847ffffdc32}, + {0x9537de35, 0xffffd847ffffdc33}, + {0x9537de36, 0xffffd847ffffdc34}, + {0x9537de37, 0xffffd847ffffdc35}, + {0x9537de38, 0xffffd847ffffdc36}, + {0x9537de39, 0xffffd847ffffdc37}, + {0x9537df30, 0xffffd847ffffdc38}, + {0x9537df31, 0xffffd847ffffdc39}, + {0x9537df32, 0xffffd847ffffdc3a}, + {0x9537df33, 0xffffd847ffffdc3b}, + {0x9537df34, 0xffffd847ffffdc3c}, + {0x9537df35, 0xffffd847ffffdc3d}, + {0x9537df36, 0xffffd847ffffdc3e}, + {0x9537df37, 0xffffd847ffffdc3f}, + {0x9537df38, 0xffffd847ffffdc40}, + {0x9537df39, 0xffffd847ffffdc41}, + {0x9537e030, 0xffffd847ffffdc42}, + {0x9537e031, 0xffffd847ffffdc43}, + {0x9537e032, 0xffffd847ffffdc44}, + {0x9537e033, 0xffffd847ffffdc45}, + {0x9537e034, 0xffffd847ffffdc46}, + {0x9537e035, 0xffffd847ffffdc47}, + {0x9537e036, 0xffffd847ffffdc48}, + {0x9537e037, 0xffffd847ffffdc49}, + {0x9537e038, 0xffffd847ffffdc4a}, + {0x9537e039, 0xffffd847ffffdc4b}, + {0x9537e130, 0xffffd847ffffdc4c}, + {0x9537e131, 0xffffd847ffffdc4d}, + {0x9537e132, 0xffffd847ffffdc4e}, + {0x9537e133, 0xffffd847ffffdc4f}, + {0x9537e134, 0xffffd847ffffdc50}, + {0x9537e135, 0xffffd847ffffdc51}, + {0x9537e136, 0xffffd847ffffdc52}, + {0x9537e137, 0xffffd847ffffdc53}, + {0x9537e138, 0xffffd847ffffdc54}, + {0x9537e139, 0xffffd847ffffdc55}, + {0x9537e230, 0xffffd847ffffdc56}, + {0x9537e231, 0xffffd847ffffdc57}, + {0x9537e232, 0xffffd847ffffdc58}, + {0x9537e233, 0xffffd847ffffdc59}, + {0x9537e234, 0xffffd847ffffdc5a}, + {0x9537e235, 0xffffd847ffffdc5b}, + {0x9537e236, 0xffffd847ffffdc5c}, + {0x9537e237, 0xffffd847ffffdc5d}, + {0x9537e238, 0xffffd847ffffdc5e}, + {0x9537e239, 0xffffd847ffffdc5f}, + {0x9537e330, 0xffffd847ffffdc60}, + {0x9537e331, 0xffffd847ffffdc61}, + {0x9537e332, 0xffffd847ffffdc62}, + {0x9537e333, 0xffffd847ffffdc63}, + {0x9537e334, 0xffffd847ffffdc64}, + {0x9537e335, 0xffffd847ffffdc65}, + {0x9537e336, 0xffffd847ffffdc66}, + {0x9537e337, 0xffffd847ffffdc67}, + {0x9537e338, 0xffffd847ffffdc68}, + {0x9537e339, 0xffffd847ffffdc69}, + {0x9537e430, 0xffffd847ffffdc6a}, + {0x9537e431, 0xffffd847ffffdc6b}, + {0x9537e432, 0xffffd847ffffdc6c}, + {0x9537e433, 0xffffd847ffffdc6d}, + {0x9537e434, 0xffffd847ffffdc6e}, + {0x9537e435, 0xffffd847ffffdc6f}, + {0x9537e436, 0xffffd847ffffdc70}, + {0x9537e437, 0xffffd847ffffdc71}, + {0x9537e438, 0xffffd847ffffdc72}, + {0x9537e439, 0xffffd847ffffdc73}, + {0x9537e530, 0xffffd847ffffdc74}, + {0x9537e531, 0xffffd847ffffdc75}, + {0x9537e532, 0xffffd847ffffdc76}, + {0x9537e533, 0xffffd847ffffdc77}, + {0x9537e534, 0xffffd847ffffdc78}, + {0x9537e535, 0xffffd847ffffdc79}, + {0x9537e536, 0xffffd847ffffdc7a}, + {0x9537e537, 0xffffd847ffffdc7b}, + {0x9537e538, 0xffffd847ffffdc7c}, + {0x9537e539, 0xffffd847ffffdc7d}, + {0x9537e630, 0xffffd847ffffdc7e}, + {0x9537e631, 0xffffd847ffffdc7f}, + {0x9537e632, 0xffffd847ffffdc80}, + {0x9537e633, 0xffffd847ffffdc81}, + {0x9537e634, 0xffffd847ffffdc82}, + {0x9537e635, 0xffffd847ffffdc83}, + {0x9537e636, 0xffffd847ffffdc84}, + {0x9537e637, 0xffffd847ffffdc85}, + {0x9537e638, 0xffffd847ffffdc86}, + {0x9537e639, 0xffffd847ffffdc87}, + {0x9537e730, 0xffffd847ffffdc88}, + {0x9537e731, 0xffffd847ffffdc89}, + {0x9537e732, 0xffffd847ffffdc8a}, + {0x9537e733, 0xffffd847ffffdc8b}, + {0x9537e734, 0xffffd847ffffdc8c}, + {0x9537e735, 0xffffd847ffffdc8d}, + {0x9537e736, 0xffffd847ffffdc8e}, + {0x9537e737, 0xffffd847ffffdc8f}, + {0x9537e738, 0xffffd847ffffdc90}, + {0x9537e739, 0xffffd847ffffdc91}, + {0x9537e830, 0xffffd847ffffdc92}, + {0x9537e831, 0xffffd847ffffdc93}, + {0x9537e832, 0xffffd847ffffdc94}, + {0x9537e833, 0xffffd847ffffdc95}, + {0x9537e834, 0xffffd847ffffdc96}, + {0x9537e835, 0xffffd847ffffdc97}, + {0x9537e836, 0xffffd847ffffdc98}, + {0x9537e837, 0xffffd847ffffdc99}, + {0x9537e838, 0xffffd847ffffdc9a}, + {0x9537e839, 0xffffd847ffffdc9b}, + {0x9537e930, 0xffffd847ffffdc9c}, + {0x9537e931, 0xffffd847ffffdc9d}, + {0x9537e932, 0xffffd847ffffdc9e}, + {0x9537e933, 0xffffd847ffffdc9f}, + {0x9537e934, 0xffffd847ffffdca0}, + {0x9537e935, 0xffffd847ffffdca1}, + {0x9537e936, 0xffffd847ffffdca2}, + {0x9537e937, 0xffffd847ffffdca3}, + {0x9537e938, 0xffffd847ffffdca4}, + {0x9537e939, 0xffffd847ffffdca5}, + {0x9537ea30, 0xffffd847ffffdca6}, + {0x9537ea31, 0xffffd847ffffdca7}, + {0x9537ea32, 0xffffd847ffffdca8}, + {0x9537ea33, 0xffffd847ffffdca9}, + {0x9537ea34, 0xffffd847ffffdcaa}, + {0x9537ea35, 0xffffd847ffffdcab}, + {0x9537ea36, 0xffffd847ffffdcac}, + {0x9537ea37, 0xffffd847ffffdcad}, + {0x9537ea38, 0xffffd847ffffdcae}, + {0x9537ea39, 0xffffd847ffffdcaf}, + {0x9537eb30, 0xffffd847ffffdcb0}, + {0x9537eb31, 0xffffd847ffffdcb1}, + {0x9537eb32, 0xffffd847ffffdcb2}, + {0x9537eb33, 0xffffd847ffffdcb3}, + {0x9537eb34, 0xffffd847ffffdcb4}, + {0x9537eb35, 0xffffd847ffffdcb5}, + {0x9537eb36, 0xffffd847ffffdcb6}, + {0x9537eb37, 0xffffd847ffffdcb7}, + {0x9537eb38, 0xffffd847ffffdcb8}, + {0x9537eb39, 0xffffd847ffffdcb9}, + {0x9537ec30, 0xffffd847ffffdcba}, + {0x9537ec31, 0xffffd847ffffdcbb}, + {0x9537ec32, 0xffffd847ffffdcbc}, + {0x9537ec33, 0xffffd847ffffdcbd}, + {0x9537ec34, 0xffffd847ffffdcbe}, + {0x9537ec35, 0xffffd847ffffdcbf}, + {0x9537ec36, 0xffffd847ffffdcc0}, + {0x9537ec37, 0xffffd847ffffdcc1}, + {0x9537ec38, 0xffffd847ffffdcc2}, + {0x9537ec39, 0xffffd847ffffdcc3}, + {0x9537ed30, 0xffffd847ffffdcc4}, + {0x9537ed31, 0xffffd847ffffdcc5}, + {0x9537ed32, 0xffffd847ffffdcc6}, + {0x9537ed33, 0xffffd847ffffdcc7}, + {0x9537ed34, 0xffffd847ffffdcc8}, + {0x9537ed35, 0xffffd847ffffdcc9}, + {0x9537ed36, 0xffffd847ffffdcca}, + {0x9537ed37, 0xffffd847ffffdccb}, + {0x9537ed38, 0xffffd847ffffdccc}, + {0x9537ed39, 0xffffd847ffffdccd}, + {0x9537ee30, 0xffffd847ffffdcce}, + {0x9537ee31, 0xffffd847ffffdccf}, + {0x9537ee32, 0xffffd847ffffdcd0}, + {0x9537ee33, 0xffffd847ffffdcd1}, + {0x9537ee34, 0xffffd847ffffdcd2}, + {0x9537ee35, 0xffffd847ffffdcd3}, + {0x9537ee36, 0xffffd847ffffdcd4}, + {0x9537ee37, 0xffffd847ffffdcd5}, + {0x9537ee38, 0xffffd847ffffdcd6}, + {0x9537ee39, 0xffffd847ffffdcd7}, + {0x9537ef30, 0xffffd847ffffdcd8}, + {0x9537ef31, 0xffffd847ffffdcd9}, + {0x9537ef32, 0xffffd847ffffdcda}, + {0x9537ef33, 0xffffd847ffffdcdb}, + {0x9537ef34, 0xffffd847ffffdcdc}, + {0x9537ef35, 0xffffd847ffffdcdd}, + {0x9537ef36, 0xffffd847ffffdcde}, + {0x9537ef37, 0xffffd847ffffdcdf}, + {0x9537ef38, 0xffffd847ffffdce0}, + {0x9537ef39, 0xffffd847ffffdce1}, + {0x9537f030, 0xffffd847ffffdce2}, + {0x9537f031, 0xffffd847ffffdce3}, + {0x9537f032, 0xffffd847ffffdce4}, + {0x9537f033, 0xffffd847ffffdce5}, + {0x9537f034, 0xffffd847ffffdce6}, + {0x9537f035, 0xffffd847ffffdce7}, + {0x9537f036, 0xffffd847ffffdce8}, + {0x9537f037, 0xffffd847ffffdce9}, + {0x9537f038, 0xffffd847ffffdcea}, + {0x9537f039, 0xffffd847ffffdceb}, + {0x9537f130, 0xffffd847ffffdcec}, + {0x9537f131, 0xffffd847ffffdced}, + {0x9537f132, 0xffffd847ffffdcee}, + {0x9537f133, 0xffffd847ffffdcef}, + {0x9537f134, 0xffffd847ffffdcf0}, + {0x9537f135, 0xffffd847ffffdcf1}, + {0x9537f136, 0xffffd847ffffdcf2}, + {0x9537f137, 0xffffd847ffffdcf3}, + {0x9537f138, 0xffffd847ffffdcf4}, + {0x9537f139, 0xffffd847ffffdcf5}, + {0x9537f230, 0xffffd847ffffdcf6}, + {0x9537f231, 0xffffd847ffffdcf7}, + {0x9537f232, 0xffffd847ffffdcf8}, + {0x9537f233, 0xffffd847ffffdcf9}, + {0x9537f234, 0xffffd847ffffdcfa}, + {0x9537f235, 0xffffd847ffffdcfb}, + {0x9537f236, 0xffffd847ffffdcfc}, + {0x9537f237, 0xffffd847ffffdcfd}, + {0x9537f238, 0xffffd847ffffdcfe}, + {0x9537f239, 0xffffd847ffffdcff}, + {0x9537f330, 0xffffd847ffffdd00}, + {0x9537f331, 0xffffd847ffffdd01}, + {0x9537f332, 0xffffd847ffffdd02}, + {0x9537f333, 0xffffd847ffffdd03}, + {0x9537f334, 0xffffd847ffffdd04}, + {0x9537f335, 0xffffd847ffffdd05}, + {0x9537f336, 0xffffd847ffffdd06}, + {0x9537f337, 0xffffd847ffffdd07}, + {0x9537f338, 0xffffd847ffffdd08}, + {0x9537f339, 0xffffd847ffffdd09}, + {0x9537f430, 0xffffd847ffffdd0a}, + {0x9537f431, 0xffffd847ffffdd0b}, + {0x9537f432, 0xffffd847ffffdd0c}, + {0x9537f433, 0xffffd847ffffdd0d}, + {0x9537f434, 0xffffd847ffffdd0e}, + {0x9537f435, 0xffffd847ffffdd0f}, + {0x9537f436, 0xffffd847ffffdd10}, + {0x9537f437, 0xffffd847ffffdd11}, + {0x9537f438, 0xffffd847ffffdd12}, + {0x9537f439, 0xffffd847ffffdd13}, + {0x9537f530, 0xffffd847ffffdd14}, + {0x9537f531, 0xffffd847ffffdd15}, + {0x9537f532, 0xffffd847ffffdd16}, + {0x9537f533, 0xffffd847ffffdd17}, + {0x9537f534, 0xffffd847ffffdd18}, + {0x9537f535, 0xffffd847ffffdd19}, + {0x9537f536, 0xffffd847ffffdd1a}, + {0x9537f537, 0xffffd847ffffdd1b}, + {0x9537f538, 0xffffd847ffffdd1c}, + {0x9537f539, 0xffffd847ffffdd1d}, + {0x9537f630, 0xffffd847ffffdd1e}, + {0x9537f631, 0xffffd847ffffdd1f}, + {0x9537f632, 0xffffd847ffffdd20}, + {0x9537f633, 0xffffd847ffffdd21}, + {0x9537f634, 0xffffd847ffffdd22}, + {0x9537f635, 0xffffd847ffffdd23}, + {0x9537f636, 0xffffd847ffffdd24}, + {0x9537f637, 0xffffd847ffffdd25}, + {0x9537f638, 0xffffd847ffffdd26}, + {0x9537f639, 0xffffd847ffffdd27}, + {0x9537f730, 0xffffd847ffffdd28}, + {0x9537f731, 0xffffd847ffffdd29}, + {0x9537f732, 0xffffd847ffffdd2a}, + {0x9537f733, 0xffffd847ffffdd2b}, + {0x9537f734, 0xffffd847ffffdd2c}, + {0x9537f735, 0xffffd847ffffdd2d}, + {0x9537f736, 0xffffd847ffffdd2e}, + {0x9537f737, 0xffffd847ffffdd2f}, + {0x9537f738, 0xffffd847ffffdd30}, + {0x9537f739, 0xffffd847ffffdd31}, + {0x9537f830, 0xffffd847ffffdd32}, + {0x9537f831, 0xffffd847ffffdd33}, + {0x9537f832, 0xffffd847ffffdd34}, + {0x9537f833, 0xffffd847ffffdd35}, + {0x9537f834, 0xffffd847ffffdd36}, + {0x9537f835, 0xffffd847ffffdd37}, + {0x9537f836, 0xffffd847ffffdd38}, + {0x9537f837, 0xffffd847ffffdd39}, + {0x9537f838, 0xffffd847ffffdd3a}, + {0x9537f839, 0xffffd847ffffdd3b}, + {0x9537f930, 0xffffd847ffffdd3c}, + {0x9537f931, 0xffffd847ffffdd3d}, + {0x9537f932, 0xffffd847ffffdd3e}, + {0x9537f933, 0xffffd847ffffdd3f}, + {0x9537f934, 0xffffd847ffffdd40}, + {0x9537f935, 0xffffd847ffffdd41}, + {0x9537f936, 0xffffd847ffffdd42}, + {0x9537f937, 0xffffd847ffffdd43}, + {0x9537f938, 0xffffd847ffffdd44}, + {0x9537f939, 0xffffd847ffffdd45}, + {0x9537fa30, 0xffffd847ffffdd46}, + {0x9537fa31, 0xffffd847ffffdd47}, + {0x9537fa32, 0xffffd847ffffdd48}, + {0x9537fa33, 0xffffd847ffffdd49}, + {0x9537fa34, 0xffffd847ffffdd4a}, + {0x9537fa35, 0xffffd847ffffdd4b}, + {0x9537fa36, 0xffffd847ffffdd4c}, + {0x9537fa37, 0xffffd847ffffdd4d}, + {0x9537fa38, 0xffffd847ffffdd4e}, + {0x9537fa39, 0xffffd847ffffdd4f}, + {0x9537fb30, 0xffffd847ffffdd50}, + {0x9537fb31, 0xffffd847ffffdd51}, + {0x9537fb32, 0xffffd847ffffdd52}, + {0x9537fb33, 0xffffd847ffffdd53}, + {0x9537fb34, 0xffffd847ffffdd54}, + {0x9537fb35, 0xffffd847ffffdd55}, + {0x9537fb36, 0xffffd847ffffdd56}, + {0x9537fb37, 0xffffd847ffffdd57}, + {0x9537fb38, 0xffffd847ffffdd58}, + {0x9537fb39, 0xffffd847ffffdd59}, + {0x9537fc30, 0xffffd847ffffdd5a}, + {0x9537fc31, 0xffffd847ffffdd5b}, + {0x9537fc32, 0xffffd847ffffdd5c}, + {0x9537fc33, 0xffffd847ffffdd5d}, + {0x9537fc34, 0xffffd847ffffdd5e}, + {0x9537fc35, 0xffffd847ffffdd5f}, + {0x9537fc36, 0xffffd847ffffdd60}, + {0x9537fc37, 0xffffd847ffffdd61}, + {0x9537fc38, 0xffffd847ffffdd62}, + {0x9537fc39, 0xffffd847ffffdd63}, + {0x9537fd30, 0xffffd847ffffdd64}, + {0x9537fd31, 0xffffd847ffffdd65}, + {0x9537fd32, 0xffffd847ffffdd66}, + {0x9537fd33, 0xffffd847ffffdd67}, + {0x9537fd34, 0xffffd847ffffdd68}, + {0x9537fd35, 0xffffd847ffffdd69}, + {0x9537fd36, 0xffffd847ffffdd6a}, + {0x9537fd37, 0xffffd847ffffdd6b}, + {0x9537fd38, 0xffffd847ffffdd6c}, + {0x9537fd39, 0xffffd847ffffdd6d}, + {0x9537fe30, 0xffffd847ffffdd6e}, + {0x9537fe31, 0xffffd847ffffdd6f}, + {0x9537fe32, 0xffffd847ffffdd70}, + {0x9537fe33, 0xffffd847ffffdd71}, + {0x9537fe34, 0xffffd847ffffdd72}, + {0x9537fe35, 0xffffd847ffffdd73}, + {0x9537fe36, 0xffffd847ffffdd74}, + {0x9537fe37, 0xffffd847ffffdd75}, + {0x9537fe38, 0xffffd847ffffdd76}, + {0x9537fe39, 0xffffd847ffffdd77}, + {0x95388130, 0xffffd847ffffdd78}, + {0x95388131, 0xffffd847ffffdd79}, + {0x95388132, 0xffffd847ffffdd7a}, + {0x95388133, 0xffffd847ffffdd7b}, + {0x95388134, 0xffffd847ffffdd7c}, + {0x95388135, 0xffffd847ffffdd7d}, + {0x95388136, 0xffffd847ffffdd7e}, + {0x95388137, 0xffffd847ffffdd7f}, + {0x95388138, 0xffffd847ffffdd80}, + {0x95388139, 0xffffd847ffffdd81}, + {0x95388230, 0xffffd847ffffdd82}, + {0x95388231, 0xffffd847ffffdd83}, + {0x95388232, 0xffffd847ffffdd84}, + {0x95388233, 0xffffd847ffffdd85}, + {0x95388234, 0xffffd847ffffdd86}, + {0x95388235, 0xffffd847ffffdd87}, + {0x95388236, 0xffffd847ffffdd88}, + {0x95388237, 0xffffd847ffffdd89}, + {0x95388238, 0xffffd847ffffdd8a}, + {0x95388239, 0xffffd847ffffdd8b}, + {0x95388330, 0xffffd847ffffdd8c}, + {0x95388331, 0xffffd847ffffdd8d}, + {0x95388332, 0xffffd847ffffdd8e}, + {0x95388333, 0xffffd847ffffdd8f}, + {0x95388334, 0xffffd847ffffdd90}, + {0x95388335, 0xffffd847ffffdd91}, + {0x95388336, 0xffffd847ffffdd92}, + {0x95388337, 0xffffd847ffffdd93}, + {0x95388338, 0xffffd847ffffdd94}, + {0x95388339, 0xffffd847ffffdd95}, + {0x95388430, 0xffffd847ffffdd96}, + {0x95388431, 0xffffd847ffffdd97}, + {0x95388432, 0xffffd847ffffdd98}, + {0x95388433, 0xffffd847ffffdd99}, + {0x95388434, 0xffffd847ffffdd9a}, + {0x95388435, 0xffffd847ffffdd9b}, + {0x95388436, 0xffffd847ffffdd9c}, + {0x95388437, 0xffffd847ffffdd9d}, + {0x95388438, 0xffffd847ffffdd9e}, + {0x95388439, 0xffffd847ffffdd9f}, + {0x95388530, 0xffffd847ffffdda0}, + {0x95388531, 0xffffd847ffffdda1}, + {0x95388532, 0xffffd847ffffdda2}, + {0x95388533, 0xffffd847ffffdda3}, + {0x95388534, 0xffffd847ffffdda4}, + {0x95388535, 0xffffd847ffffdda5}, + {0x95388536, 0xffffd847ffffdda6}, + {0x95388537, 0xffffd847ffffdda7}, + {0x95388538, 0xffffd847ffffdda8}, + {0x95388539, 0xffffd847ffffdda9}, + {0x95388630, 0xffffd847ffffddaa}, + {0x95388631, 0xffffd847ffffddab}, + {0x95388632, 0xffffd847ffffddac}, + {0x95388633, 0xffffd847ffffddad}, + {0x95388634, 0xffffd847ffffddae}, + {0x95388635, 0xffffd847ffffddaf}, + {0x95388636, 0xffffd847ffffddb0}, + {0x95388637, 0xffffd847ffffddb1}, + {0x95388638, 0xffffd847ffffddb2}, + {0x95388639, 0xffffd847ffffddb3}, + {0x95388730, 0xffffd847ffffddb4}, + {0x95388731, 0xffffd847ffffddb5}, + {0x95388732, 0xffffd847ffffddb6}, + {0x95388733, 0xffffd847ffffddb7}, + {0x95388734, 0xffffd847ffffddb8}, + {0x95388735, 0xffffd847ffffddb9}, + {0x95388736, 0xffffd847ffffddba}, + {0x95388737, 0xffffd847ffffddbb}, + {0x95388738, 0xffffd847ffffddbc}, + {0x95388739, 0xffffd847ffffddbd}, + {0x95388830, 0xffffd847ffffddbe}, + {0x95388831, 0xffffd847ffffddbf}, + {0x95388832, 0xffffd847ffffddc0}, + {0x95388833, 0xffffd847ffffddc1}, + {0x95388834, 0xffffd847ffffddc2}, + {0x95388835, 0xffffd847ffffddc3}, + {0x95388836, 0xffffd847ffffddc4}, + {0x95388837, 0xffffd847ffffddc5}, + {0x95388838, 0xffffd847ffffddc6}, + {0x95388839, 0xffffd847ffffddc7}, + {0x95388930, 0xffffd847ffffddc8}, + {0x95388931, 0xffffd847ffffddc9}, + {0x95388932, 0xffffd847ffffddca}, + {0x95388933, 0xffffd847ffffddcb}, + {0x95388934, 0xffffd847ffffddcc}, + {0x95388935, 0xffffd847ffffddcd}, + {0x95388936, 0xffffd847ffffddce}, + {0x95388937, 0xffffd847ffffddcf}, + {0x95388938, 0xffffd847ffffddd0}, + {0x95388939, 0xffffd847ffffddd1}, + {0x95388a30, 0xffffd847ffffddd2}, + {0x95388a31, 0xffffd847ffffddd3}, + {0x95388a32, 0xffffd847ffffddd4}, + {0x95388a33, 0xffffd847ffffddd5}, + {0x95388a34, 0xffffd847ffffddd6}, + {0x95388a35, 0xffffd847ffffddd7}, + {0x95388a36, 0xffffd847ffffddd8}, + {0x95388a37, 0xffffd847ffffddd9}, + {0x95388a38, 0xffffd847ffffddda}, + {0x95388a39, 0xffffd847ffffdddb}, + {0x95388b30, 0xffffd847ffffdddc}, + {0x95388b31, 0xffffd847ffffdddd}, + {0x95388b32, 0xffffd847ffffddde}, + {0x95388b33, 0xffffd847ffffdddf}, + {0x95388b34, 0xffffd847ffffdde0}, + {0x95388b35, 0xffffd847ffffdde1}, + {0x95388b36, 0xffffd847ffffdde2}, + {0x95388b37, 0xffffd847ffffdde3}, + {0x95388b38, 0xffffd847ffffdde4}, + {0x95388b39, 0xffffd847ffffdde5}, + {0x95388c30, 0xffffd847ffffdde6}, + {0x95388c31, 0xffffd847ffffdde7}, + {0x95388c32, 0xffffd847ffffdde8}, + {0x95388c33, 0xffffd847ffffdde9}, + {0x95388c34, 0xffffd847ffffddea}, + {0x95388c35, 0xffffd847ffffddeb}, + {0x95388c36, 0xffffd847ffffddec}, + {0x95388c37, 0xffffd847ffffdded}, + {0x95388c38, 0xffffd847ffffddee}, + {0x95388c39, 0xffffd847ffffddef}, + {0x95388d30, 0xffffd847ffffddf0}, + {0x95388d31, 0xffffd847ffffddf1}, + {0x95388d32, 0xffffd847ffffddf2}, + {0x95388d33, 0xffffd847ffffddf3}, + {0x95388d34, 0xffffd847ffffddf4}, + {0x95388d35, 0xffffd847ffffddf5}, + {0x95388d36, 0xffffd847ffffddf6}, + {0x95388d37, 0xffffd847ffffddf7}, + {0x95388d38, 0xffffd847ffffddf8}, + {0x95388d39, 0xffffd847ffffddf9}, + {0x95388e30, 0xffffd847ffffddfa}, + {0x95388e31, 0xffffd847ffffddfb}, + {0x95388e32, 0xffffd847ffffddfc}, + {0x95388e33, 0xffffd847ffffddfd}, + {0x95388e34, 0xffffd847ffffddfe}, + {0x95388e35, 0xffffd847ffffddff}, + {0x95388e36, 0xffffd847ffffde00}, + {0x95388e37, 0xffffd847ffffde01}, + {0x95388e38, 0xffffd847ffffde02}, + {0x95388e39, 0xffffd847ffffde03}, + {0x95388f30, 0xffffd847ffffde04}, + {0x95388f31, 0xffffd847ffffde05}, + {0x95388f32, 0xffffd847ffffde06}, + {0x95388f33, 0xffffd847ffffde07}, + {0x95388f34, 0xffffd847ffffde08}, + {0x95388f35, 0xffffd847ffffde09}, + {0x95388f36, 0xffffd847ffffde0a}, + {0x95388f37, 0xffffd847ffffde0b}, + {0x95388f38, 0xffffd847ffffde0c}, + {0x95388f39, 0xffffd847ffffde0d}, + {0x95389030, 0xffffd847ffffde0e}, + {0x95389031, 0xffffd847ffffde0f}, + {0x95389032, 0xffffd847ffffde10}, + {0x95389033, 0xffffd847ffffde11}, + {0x95389034, 0xffffd847ffffde12}, + {0x95389035, 0xffffd847ffffde13}, + {0x95389036, 0xffffd847ffffde14}, + {0x95389037, 0xffffd847ffffde15}, + {0x95389038, 0xffffd847ffffde16}, + {0x95389039, 0xffffd847ffffde17}, + {0x95389130, 0xffffd847ffffde18}, + {0x95389131, 0xffffd847ffffde19}, + {0x95389132, 0xffffd847ffffde1a}, + {0x95389133, 0xffffd847ffffde1b}, + {0x95389134, 0xffffd847ffffde1c}, + {0x95389135, 0xffffd847ffffde1d}, + {0x95389136, 0xffffd847ffffde1e}, + {0x95389137, 0xffffd847ffffde1f}, + {0x95389138, 0xffffd847ffffde20}, + {0x95389139, 0xffffd847ffffde21}, + {0x95389230, 0xffffd847ffffde22}, + {0x95389231, 0xffffd847ffffde23}, + {0x95389232, 0xffffd847ffffde24}, + {0x95389233, 0xffffd847ffffde25}, + {0x95389234, 0xffffd847ffffde26}, + {0x95389235, 0xffffd847ffffde27}, + {0x95389236, 0xffffd847ffffde28}, + {0x95389237, 0xffffd847ffffde29}, + {0x95389238, 0xffffd847ffffde2a}, + {0x95389239, 0xffffd847ffffde2b}, + {0x95389330, 0xffffd847ffffde2c}, + {0x95389331, 0xffffd847ffffde2d}, + {0x95389332, 0xffffd847ffffde2e}, + {0x95389333, 0xffffd847ffffde2f}, + {0x95389334, 0xffffd847ffffde30}, + {0x95389335, 0xffffd847ffffde31}, + {0x95389336, 0xffffd847ffffde32}, + {0x95389337, 0xffffd847ffffde33}, + {0x95389338, 0xffffd847ffffde34}, + {0x95389339, 0xffffd847ffffde35}, + {0x95389430, 0xffffd847ffffde36}, + {0x95389431, 0xffffd847ffffde37}, + {0x95389432, 0xffffd847ffffde38}, + {0x95389433, 0xffffd847ffffde39}, + {0x95389434, 0xffffd847ffffde3a}, + {0x95389435, 0xffffd847ffffde3b}, + {0x95389436, 0xffffd847ffffde3c}, + {0x95389437, 0xffffd847ffffde3d}, + {0x95389438, 0xffffd847ffffde3e}, + {0x95389439, 0xffffd847ffffde3f}, + {0x95389530, 0xffffd847ffffde40}, + {0x95389531, 0xffffd847ffffde41}, + {0x95389532, 0xffffd847ffffde42}, + {0x95389533, 0xffffd847ffffde43}, + {0x95389534, 0xffffd847ffffde44}, + {0x95389535, 0xffffd847ffffde45}, + {0x95389536, 0xffffd847ffffde46}, + {0x95389537, 0xffffd847ffffde47}, + {0x95389538, 0xffffd847ffffde48}, + {0x95389539, 0xffffd847ffffde49}, + {0x95389630, 0xffffd847ffffde4a}, + {0x95389631, 0xffffd847ffffde4b}, + {0x95389632, 0xffffd847ffffde4c}, + {0x95389633, 0xffffd847ffffde4d}, + {0x95389634, 0xffffd847ffffde4e}, + {0x95389635, 0xffffd847ffffde4f}, + {0x95389636, 0xffffd847ffffde50}, + {0x95389637, 0xffffd847ffffde51}, + {0x95389638, 0xffffd847ffffde52}, + {0x95389639, 0xffffd847ffffde53}, + {0x95389730, 0xffffd847ffffde54}, + {0x95389731, 0xffffd847ffffde55}, + {0x95389732, 0xffffd847ffffde56}, + {0x95389733, 0xffffd847ffffde57}, + {0x95389734, 0xffffd847ffffde58}, + {0x95389735, 0xffffd847ffffde59}, + {0x95389736, 0xffffd847ffffde5a}, + {0x95389737, 0xffffd847ffffde5b}, + {0x95389738, 0xffffd847ffffde5c}, + {0x95389739, 0xffffd847ffffde5d}, + {0x95389830, 0xffffd847ffffde5e}, + {0x95389831, 0xffffd847ffffde5f}, + {0x95389832, 0xffffd847ffffde60}, + {0x95389833, 0xffffd847ffffde61}, + {0x95389834, 0xffffd847ffffde62}, + {0x95389835, 0xffffd847ffffde63}, + {0x95389836, 0xffffd847ffffde64}, + {0x95389837, 0xffffd847ffffde65}, + {0x95389838, 0xffffd847ffffde66}, + {0x95389839, 0xffffd847ffffde67}, + {0x95389930, 0xffffd847ffffde68}, + {0x95389931, 0xffffd847ffffde69}, + {0x95389932, 0xffffd847ffffde6a}, + {0x95389933, 0xffffd847ffffde6b}, + {0x95389934, 0xffffd847ffffde6c}, + {0x95389935, 0xffffd847ffffde6d}, + {0x95389936, 0xffffd847ffffde6e}, + {0x95389937, 0xffffd847ffffde6f}, + {0x95389938, 0xffffd847ffffde70}, + {0x95389939, 0xffffd847ffffde71}, + {0x95389a30, 0xffffd847ffffde72}, + {0x95389a31, 0xffffd847ffffde73}, + {0x95389a32, 0xffffd847ffffde74}, + {0x95389a33, 0xffffd847ffffde75}, + {0x95389a34, 0xffffd847ffffde76}, + {0x95389a35, 0xffffd847ffffde77}, + {0x95389a36, 0xffffd847ffffde78}, + {0x95389a37, 0xffffd847ffffde79}, + {0x95389a38, 0xffffd847ffffde7a}, + {0x95389a39, 0xffffd847ffffde7b}, + {0x95389b30, 0xffffd847ffffde7c}, + {0x95389b31, 0xffffd847ffffde7d}, + {0x95389b32, 0xffffd847ffffde7e}, + {0x95389b33, 0xffffd847ffffde7f}, + {0x95389b34, 0xffffd847ffffde80}, + {0x95389b35, 0xffffd847ffffde81}, + {0x95389b36, 0xffffd847ffffde82}, + {0x95389b37, 0xffffd847ffffde83}, + {0x95389b38, 0xffffd847ffffde84}, + {0x95389b39, 0xffffd847ffffde85}, + {0x95389c30, 0xffffd847ffffde86}, + {0x95389c31, 0xffffd847ffffde87}, + {0x95389c32, 0xffffd847ffffde88}, + {0x95389c33, 0xffffd847ffffde89}, + {0x95389c34, 0xffffd847ffffde8a}, + {0x95389c35, 0xffffd847ffffde8b}, + {0x95389c36, 0xffffd847ffffde8c}, + {0x95389c37, 0xffffd847ffffde8d}, + {0x95389c38, 0xffffd847ffffde8e}, + {0x95389c39, 0xffffd847ffffde8f}, + {0x95389d30, 0xffffd847ffffde90}, + {0x95389d31, 0xffffd847ffffde91}, + {0x95389d32, 0xffffd847ffffde92}, + {0x95389d33, 0xffffd847ffffde93}, + {0x95389d34, 0xffffd847ffffde94}, + {0x95389d35, 0xffffd847ffffde95}, + {0x95389d36, 0xffffd847ffffde96}, + {0x95389d37, 0xffffd847ffffde97}, + {0x95389d38, 0xffffd847ffffde98}, + {0x95389d39, 0xffffd847ffffde99}, + {0x95389e30, 0xffffd847ffffde9a}, + {0x95389e31, 0xffffd847ffffde9b}, + {0x95389e32, 0xffffd847ffffde9c}, + {0x95389e33, 0xffffd847ffffde9d}, + {0x95389e34, 0xffffd847ffffde9e}, + {0x95389e35, 0xffffd847ffffde9f}, + {0x95389e36, 0xffffd847ffffdea0}, + {0x95389e37, 0xffffd847ffffdea1}, + {0x95389e38, 0xffffd847ffffdea2}, + {0x95389e39, 0xffffd847ffffdea3}, + {0x95389f30, 0xffffd847ffffdea4}, + {0x95389f31, 0xffffd847ffffdea5}, + {0x95389f32, 0xffffd847ffffdea6}, + {0x95389f33, 0xffffd847ffffdea7}, + {0x95389f34, 0xffffd847ffffdea8}, + {0x95389f35, 0xffffd847ffffdea9}, + {0x95389f36, 0xffffd847ffffdeaa}, + {0x95389f37, 0xffffd847ffffdeab}, + {0x95389f38, 0xffffd847ffffdeac}, + {0x95389f39, 0xffffd847ffffdead}, + {0x9538a030, 0xffffd847ffffdeae}, + {0x9538a031, 0xffffd847ffffdeaf}, + {0x9538a032, 0xffffd847ffffdeb0}, + {0x9538a033, 0xffffd847ffffdeb1}, + {0x9538a034, 0xffffd847ffffdeb2}, + {0x9538a035, 0xffffd847ffffdeb3}, + {0x9538a036, 0xffffd847ffffdeb4}, + {0x9538a037, 0xffffd847ffffdeb5}, + {0x9538a038, 0xffffd847ffffdeb6}, + {0x9538a039, 0xffffd847ffffdeb7}, + {0x9538a130, 0xffffd847ffffdeb8}, + {0x9538a131, 0xffffd847ffffdeb9}, + {0x9538a132, 0xffffd847ffffdeba}, + {0x9538a133, 0xffffd847ffffdebb}, + {0x9538a134, 0xffffd847ffffdebc}, + {0x9538a135, 0xffffd847ffffdebd}, + {0x9538a136, 0xffffd847ffffdebe}, + {0x9538a137, 0xffffd847ffffdebf}, + {0x9538a138, 0xffffd847ffffdec0}, + {0x9538a139, 0xffffd847ffffdec1}, + {0x9538a230, 0xffffd847ffffdec2}, + {0x9538a231, 0xffffd847ffffdec3}, + {0x9538a232, 0xffffd847ffffdec4}, + {0x9538a233, 0xffffd847ffffdec5}, + {0x9538a234, 0xffffd847ffffdec6}, + {0x9538a235, 0xffffd847ffffdec7}, + {0x9538a236, 0xffffd847ffffdec8}, + {0x9538a237, 0xffffd847ffffdec9}, + {0x9538a238, 0xffffd847ffffdeca}, + {0x9538a239, 0xffffd847ffffdecb}, + {0x9538a330, 0xffffd847ffffdecc}, + {0x9538a331, 0xffffd847ffffdecd}, + {0x9538a332, 0xffffd847ffffdece}, + {0x9538a333, 0xffffd847ffffdecf}, + {0x9538a334, 0xffffd847ffffded0}, + {0x9538a335, 0xffffd847ffffded1}, + {0x9538a336, 0xffffd847ffffded2}, + {0x9538a337, 0xffffd847ffffded3}, + {0x9538a338, 0xffffd847ffffded4}, + {0x9538a339, 0xffffd847ffffded5}, + {0x9538a430, 0xffffd847ffffded6}, + {0x9538a431, 0xffffd847ffffded7}, + {0x9538a432, 0xffffd847ffffded8}, + {0x9538a433, 0xffffd847ffffded9}, + {0x9538a434, 0xffffd847ffffdeda}, + {0x9538a435, 0xffffd847ffffdedb}, + {0x9538a436, 0xffffd847ffffdedc}, + {0x9538a437, 0xffffd847ffffdedd}, + {0x9538a438, 0xffffd847ffffdede}, + {0x9538a439, 0xffffd847ffffdedf}, + {0x9538a530, 0xffffd847ffffdee0}, + {0x9538a531, 0xffffd847ffffdee1}, + {0x9538a532, 0xffffd847ffffdee2}, + {0x9538a533, 0xffffd847ffffdee3}, + {0x9538a534, 0xffffd847ffffdee4}, + {0x9538a535, 0xffffd847ffffdee5}, + {0x9538a536, 0xffffd847ffffdee6}, + {0x9538a537, 0xffffd847ffffdee7}, + {0x9538a538, 0xffffd847ffffdee8}, + {0x9538a539, 0xffffd847ffffdee9}, + {0x9538a630, 0xffffd847ffffdeea}, + {0x9538a631, 0xffffd847ffffdeeb}, + {0x9538a632, 0xffffd847ffffdeec}, + {0x9538a633, 0xffffd847ffffdeed}, + {0x9538a634, 0xffffd847ffffdeee}, + {0x9538a635, 0xffffd847ffffdeef}, + {0x9538a636, 0xffffd847ffffdef0}, + {0x9538a637, 0xffffd847ffffdef1}, + {0x9538a638, 0xffffd847ffffdef2}, + {0x9538a639, 0xffffd847ffffdef3}, + {0x9538a730, 0xffffd847ffffdef4}, + {0x9538a731, 0xffffd847ffffdef5}, + {0x9538a732, 0xffffd847ffffdef6}, + {0x9538a733, 0xffffd847ffffdef7}, + {0x9538a734, 0xffffd847ffffdef8}, + {0x9538a735, 0xffffd847ffffdef9}, + {0x9538a736, 0xffffd847ffffdefa}, + {0x9538a737, 0xffffd847ffffdefb}, + {0x9538a738, 0xffffd847ffffdefc}, + {0x9538a739, 0xffffd847ffffdefd}, + {0x9538a830, 0xffffd847ffffdefe}, + {0x9538a831, 0xffffd847ffffdeff}, + {0x9538a832, 0xffffd847ffffdf00}, + {0x9538a833, 0xffffd847ffffdf01}, + {0x9538a834, 0xffffd847ffffdf02}, + {0x9538a835, 0xffffd847ffffdf03}, + {0x9538a836, 0xffffd847ffffdf04}, + {0x9538a837, 0xffffd847ffffdf05}, + {0x9538a838, 0xffffd847ffffdf06}, + {0x9538a839, 0xffffd847ffffdf07}, + {0x9538a930, 0xffffd847ffffdf08}, + {0x9538a931, 0xffffd847ffffdf09}, + {0x9538a932, 0xffffd847ffffdf0a}, + {0x9538a933, 0xffffd847ffffdf0b}, + {0x9538a934, 0xffffd847ffffdf0c}, + {0x9538a935, 0xffffd847ffffdf0d}, + {0x9538a936, 0xffffd847ffffdf0e}, + {0x9538a937, 0xffffd847ffffdf0f}, + {0x9538a938, 0xffffd847ffffdf10}, + {0x9538a939, 0xffffd847ffffdf11}, + {0x9538aa30, 0xffffd847ffffdf12}, + {0x9538aa31, 0xffffd847ffffdf13}, + {0x9538aa32, 0xffffd847ffffdf14}, + {0x9538aa33, 0xffffd847ffffdf15}, + {0x9538aa34, 0xffffd847ffffdf16}, + {0x9538aa35, 0xffffd847ffffdf17}, + {0x9538aa36, 0xffffd847ffffdf18}, + {0x9538aa37, 0xffffd847ffffdf19}, + {0x9538aa38, 0xffffd847ffffdf1a}, + {0x9538aa39, 0xffffd847ffffdf1b}, + {0x9538ab30, 0xffffd847ffffdf1c}, + {0x9538ab31, 0xffffd847ffffdf1d}, + {0x9538ab32, 0xffffd847ffffdf1e}, + {0x9538ab33, 0xffffd847ffffdf1f}, + {0x9538ab34, 0xffffd847ffffdf20}, + {0x9538ab35, 0xffffd847ffffdf21}, + {0x9538ab36, 0xffffd847ffffdf22}, + {0x9538ab37, 0xffffd847ffffdf23}, + {0x9538ab38, 0xffffd847ffffdf24}, + {0x9538ab39, 0xffffd847ffffdf25}, + {0x9538ac30, 0xffffd847ffffdf26}, + {0x9538ac31, 0xffffd847ffffdf27}, + {0x9538ac32, 0xffffd847ffffdf28}, + {0x9538ac33, 0xffffd847ffffdf29}, + {0x9538ac34, 0xffffd847ffffdf2a}, + {0x9538ac35, 0xffffd847ffffdf2b}, + {0x9538ac36, 0xffffd847ffffdf2c}, + {0x9538ac37, 0xffffd847ffffdf2d}, + {0x9538ac38, 0xffffd847ffffdf2e}, + {0x9538ac39, 0xffffd847ffffdf2f}, + {0x9538ad30, 0xffffd847ffffdf30}, + {0x9538ad31, 0xffffd847ffffdf31}, + {0x9538ad32, 0xffffd847ffffdf32}, + {0x9538ad33, 0xffffd847ffffdf33}, + {0x9538ad34, 0xffffd847ffffdf34}, + {0x9538ad35, 0xffffd847ffffdf35}, + {0x9538ad36, 0xffffd847ffffdf36}, + {0x9538ad37, 0xffffd847ffffdf37}, + {0x9538ad38, 0xffffd847ffffdf38}, + {0x9538ad39, 0xffffd847ffffdf39}, + {0x9538ae30, 0xffffd847ffffdf3a}, + {0x9538ae31, 0xffffd847ffffdf3b}, + {0x9538ae32, 0xffffd847ffffdf3c}, + {0x9538ae33, 0xffffd847ffffdf3d}, + {0x9538ae34, 0xffffd847ffffdf3e}, + {0x9538ae35, 0xffffd847ffffdf3f}, + {0x9538ae36, 0xffffd847ffffdf40}, + {0x9538ae37, 0xffffd847ffffdf41}, + {0x9538ae38, 0xffffd847ffffdf42}, + {0x9538ae39, 0xffffd847ffffdf43}, + {0x9538af30, 0xffffd847ffffdf44}, + {0x9538af31, 0xffffd847ffffdf45}, + {0x9538af32, 0xffffd847ffffdf46}, + {0x9538af33, 0xffffd847ffffdf47}, + {0x9538af34, 0xffffd847ffffdf48}, + {0x9538af35, 0xffffd847ffffdf49}, + {0x9538af36, 0xffffd847ffffdf4a}, + {0x9538af37, 0xffffd847ffffdf4b}, + {0x9538af38, 0xffffd847ffffdf4c}, + {0x9538af39, 0xffffd847ffffdf4d}, + {0x9538b030, 0xffffd847ffffdf4e}, + {0x9538b031, 0xffffd847ffffdf4f}, + {0x9538b032, 0xffffd847ffffdf50}, + {0x9538b033, 0xffffd847ffffdf51}, + {0x9538b034, 0xffffd847ffffdf52}, + {0x9538b035, 0xffffd847ffffdf53}, + {0x9538b036, 0xffffd847ffffdf54}, + {0x9538b037, 0xffffd847ffffdf55}, + {0x9538b038, 0xffffd847ffffdf56}, + {0x9538b039, 0xffffd847ffffdf57}, + {0x9538b130, 0xffffd847ffffdf58}, + {0x9538b131, 0xffffd847ffffdf59}, + {0x9538b132, 0xffffd847ffffdf5a}, + {0x9538b133, 0xffffd847ffffdf5b}, + {0x9538b134, 0xffffd847ffffdf5c}, + {0x9538b135, 0xffffd847ffffdf5d}, + {0x9538b136, 0xffffd847ffffdf5e}, + {0x9538b137, 0xffffd847ffffdf5f}, + {0x9538b138, 0xffffd847ffffdf60}, + {0x9538b139, 0xffffd847ffffdf61}, + {0x9538b230, 0xffffd847ffffdf62}, + {0x9538b231, 0xffffd847ffffdf63}, + {0x9538b232, 0xffffd847ffffdf64}, + {0x9538b233, 0xffffd847ffffdf65}, + {0x9538b234, 0xffffd847ffffdf66}, + {0x9538b235, 0xffffd847ffffdf67}, + {0x9538b236, 0xffffd847ffffdf68}, + {0x9538b237, 0xffffd847ffffdf69}, + {0x9538b238, 0xffffd847ffffdf6a}, + {0x9538b239, 0xffffd847ffffdf6b}, + {0x9538b330, 0xffffd847ffffdf6c}, + {0x9538b331, 0xffffd847ffffdf6d}, + {0x9538b332, 0xffffd847ffffdf6e}, + {0x9538b333, 0xffffd847ffffdf6f}, + {0x9538b334, 0xffffd847ffffdf70}, + {0x9538b335, 0xffffd847ffffdf71}, + {0x9538b336, 0xffffd847ffffdf72}, + {0x9538b337, 0xffffd847ffffdf73}, + {0x9538b338, 0xffffd847ffffdf74}, + {0x9538b339, 0xffffd847ffffdf75}, + {0x9538b430, 0xffffd847ffffdf76}, + {0x9538b431, 0xffffd847ffffdf77}, + {0x9538b432, 0xffffd847ffffdf78}, + {0x9538b433, 0xffffd847ffffdf79}, + {0x9538b434, 0xffffd847ffffdf7a}, + {0x9538b435, 0xffffd847ffffdf7b}, + {0x9538b436, 0xffffd847ffffdf7c}, + {0x9538b437, 0xffffd847ffffdf7d}, + {0x9538b438, 0xffffd847ffffdf7e}, + {0x9538b439, 0xffffd847ffffdf7f}, + {0x9538b530, 0xffffd847ffffdf80}, + {0x9538b531, 0xffffd847ffffdf81}, + {0x9538b532, 0xffffd847ffffdf82}, + {0x9538b533, 0xffffd847ffffdf83}, + {0x9538b534, 0xffffd847ffffdf84}, + {0x9538b535, 0xffffd847ffffdf85}, + {0x9538b536, 0xffffd847ffffdf86}, + {0x9538b537, 0xffffd847ffffdf87}, + {0x9538b538, 0xffffd847ffffdf88}, + {0x9538b539, 0xffffd847ffffdf89}, + {0x9538b630, 0xffffd847ffffdf8a}, + {0x9538b631, 0xffffd847ffffdf8b}, + {0x9538b632, 0xffffd847ffffdf8c}, + {0x9538b633, 0xffffd847ffffdf8d}, + {0x9538b634, 0xffffd847ffffdf8e}, + {0x9538b635, 0xffffd847ffffdf8f}, + {0x9538b636, 0xffffd847ffffdf90}, + {0x9538b637, 0xffffd847ffffdf91}, + {0x9538b638, 0xffffd847ffffdf92}, + {0x9538b639, 0xffffd847ffffdf93}, + {0x9538b730, 0xffffd847ffffdf94}, + {0x9538b731, 0xffffd847ffffdf95}, + {0x9538b732, 0xffffd847ffffdf96}, + {0x9538b733, 0xffffd847ffffdf97}, + {0x9538b734, 0xffffd847ffffdf98}, + {0x9538b735, 0xffffd847ffffdf99}, + {0x9538b736, 0xffffd847ffffdf9a}, + {0x9538b737, 0xffffd847ffffdf9b}, + {0x9538b738, 0xffffd847ffffdf9c}, + {0x9538b739, 0xffffd847ffffdf9d}, + {0x9538b830, 0xffffd847ffffdf9e}, + {0x9538b831, 0xffffd847ffffdf9f}, + {0x9538b832, 0xffffd847ffffdfa0}, + {0x9538b833, 0xffffd847ffffdfa1}, + {0x9538b834, 0xffffd847ffffdfa2}, + {0x9538b835, 0xffffd847ffffdfa3}, + {0x9538b836, 0xffffd847ffffdfa4}, + {0x9538b837, 0xffffd847ffffdfa5}, + {0x9538b838, 0xffffd847ffffdfa6}, + {0x9538b839, 0xffffd847ffffdfa7}, + {0x9538b930, 0xffffd847ffffdfa8}, + {0x9538b931, 0xffffd847ffffdfa9}, + {0x9538b932, 0xffffd847ffffdfaa}, + {0x9538b933, 0xffffd847ffffdfab}, + {0x9538b934, 0xffffd847ffffdfac}, + {0x9538b935, 0xffffd847ffffdfad}, + {0x9538b936, 0xffffd847ffffdfae}, + {0x9538b937, 0xffffd847ffffdfaf}, + {0x9538b938, 0xffffd847ffffdfb0}, + {0x9538b939, 0xffffd847ffffdfb1}, + {0x9538ba30, 0xffffd847ffffdfb2}, + {0x9538ba31, 0xffffd847ffffdfb3}, + {0x9538ba32, 0xffffd847ffffdfb4}, + {0x9538ba33, 0xffffd847ffffdfb5}, + {0x9538ba34, 0xffffd847ffffdfb6}, + {0x9538ba35, 0xffffd847ffffdfb7}, + {0x9538ba36, 0xffffd847ffffdfb8}, + {0x9538ba37, 0xffffd847ffffdfb9}, + {0x9538ba38, 0xffffd847ffffdfba}, + {0x9538ba39, 0xffffd847ffffdfbb}, + {0x9538bb30, 0xffffd847ffffdfbc}, + {0x9538bb31, 0xffffd847ffffdfbd}, + {0x9538bb32, 0xffffd847ffffdfbe}, + {0x9538bb33, 0xffffd847ffffdfbf}, + {0x9538bb34, 0xffffd847ffffdfc0}, + {0x9538bb35, 0xffffd847ffffdfc1}, + {0x9538bb36, 0xffffd847ffffdfc2}, + {0x9538bb37, 0xffffd847ffffdfc3}, + {0x9538bb38, 0xffffd847ffffdfc4}, + {0x9538bb39, 0xffffd847ffffdfc5}, + {0x9538bc30, 0xffffd847ffffdfc6}, + {0x9538bc31, 0xffffd847ffffdfc7}, + {0x9538bc32, 0xffffd847ffffdfc8}, + {0x9538bc33, 0xffffd847ffffdfc9}, + {0x9538bc34, 0xffffd847ffffdfca}, + {0x9538bc35, 0xffffd847ffffdfcb}, + {0x9538bc36, 0xffffd847ffffdfcc}, + {0x9538bc37, 0xffffd847ffffdfcd}, + {0x9538bc38, 0xffffd847ffffdfce}, + {0x9538bc39, 0xffffd847ffffdfcf}, + {0x9538bd30, 0xffffd847ffffdfd0}, + {0x9538bd31, 0xffffd847ffffdfd1}, + {0x9538bd32, 0xffffd847ffffdfd2}, + {0x9538bd33, 0xffffd847ffffdfd3}, + {0x9538bd34, 0xffffd847ffffdfd4}, + {0x9538bd35, 0xffffd847ffffdfd5}, + {0x9538bd36, 0xffffd847ffffdfd6}, + {0x9538bd37, 0xffffd847ffffdfd7}, + {0x9538bd38, 0xffffd847ffffdfd8}, + {0x9538bd39, 0xffffd847ffffdfd9}, + {0x9538be30, 0xffffd847ffffdfda}, + {0x9538be31, 0xffffd847ffffdfdb}, + {0x9538be32, 0xffffd847ffffdfdc}, + {0x9538be33, 0xffffd847ffffdfdd}, + {0x9538be34, 0xffffd847ffffdfde}, + {0x9538be35, 0xffffd847ffffdfdf}, + {0x9538be36, 0xffffd847ffffdfe0}, + {0x9538be37, 0xffffd847ffffdfe1}, + {0x9538be38, 0xffffd847ffffdfe2}, + {0x9538be39, 0xffffd847ffffdfe3}, + {0x9538bf30, 0xffffd847ffffdfe4}, + {0x9538bf31, 0xffffd847ffffdfe5}, + {0x9538bf32, 0xffffd847ffffdfe6}, + {0x9538bf33, 0xffffd847ffffdfe7}, + {0x9538bf34, 0xffffd847ffffdfe8}, + {0x9538bf35, 0xffffd847ffffdfe9}, + {0x9538bf36, 0xffffd847ffffdfea}, + {0x9538bf37, 0xffffd847ffffdfeb}, + {0x9538bf38, 0xffffd847ffffdfec}, + {0x9538bf39, 0xffffd847ffffdfed}, + {0x9538c030, 0xffffd847ffffdfee}, + {0x9538c031, 0xffffd847ffffdfef}, + {0x9538c032, 0xffffd847ffffdff0}, + {0x9538c033, 0xffffd847ffffdff1}, + {0x9538c034, 0xffffd847ffffdff2}, + {0x9538c035, 0xffffd847ffffdff3}, + {0x9538c036, 0xffffd847ffffdff4}, + {0x9538c037, 0xffffd847ffffdff5}, + {0x9538c038, 0xffffd847ffffdff6}, + {0x9538c039, 0xffffd847ffffdff7}, + {0x9538c130, 0xffffd847ffffdff8}, + {0x9538c131, 0xffffd847ffffdff9}, + {0x9538c132, 0xffffd847ffffdffa}, + {0x9538c133, 0xffffd847ffffdffb}, + {0x9538c134, 0xffffd847ffffdffc}, + {0x9538c135, 0xffffd847ffffdffd}, + {0x9538c136, 0xffffd847ffffdffe}, + {0x9538c137, 0xffffd847ffffdfff}, + {0x9538c138, 0xffffd848ffffdc00}, + {0x9538c139, 0xffffd848ffffdc01}, + {0x9538c230, 0xffffd848ffffdc02}, + {0x9538c231, 0xffffd848ffffdc03}, + {0x9538c232, 0xffffd848ffffdc04}, + {0x9538c233, 0xffffd848ffffdc05}, + {0x9538c234, 0xffffd848ffffdc06}, + {0x9538c235, 0xffffd848ffffdc07}, + {0x9538c236, 0xffffd848ffffdc08}, + {0x9538c237, 0xffffd848ffffdc09}, + {0x9538c238, 0xffffd848ffffdc0a}, + {0x9538c239, 0xffffd848ffffdc0b}, + {0x9538c330, 0xffffd848ffffdc0c}, + {0x9538c331, 0xffffd848ffffdc0d}, + {0x9538c332, 0xffffd848ffffdc0e}, + {0x9538c333, 0xffffd848ffffdc0f}, + {0x9538c334, 0xffffd848ffffdc10}, + {0x9538c335, 0xffffd848ffffdc11}, + {0x9538c336, 0xffffd848ffffdc12}, + {0x9538c337, 0xffffd848ffffdc13}, + {0x9538c338, 0xffffd848ffffdc14}, + {0x9538c339, 0xffffd848ffffdc15}, + {0x9538c430, 0xffffd848ffffdc16}, + {0x9538c431, 0xffffd848ffffdc17}, + {0x9538c432, 0xffffd848ffffdc18}, + {0x9538c433, 0xffffd848ffffdc19}, + {0x9538c434, 0xffffd848ffffdc1a}, + {0x9538c435, 0xffffd848ffffdc1b}, + {0x9538c436, 0xffffd848ffffdc1c}, + {0x9538c437, 0xffffd848ffffdc1d}, + {0x9538c438, 0xffffd848ffffdc1e}, + {0x9538c439, 0xffffd848ffffdc1f}, + {0x9538c530, 0xffffd848ffffdc20}, + {0x9538c531, 0xffffd848ffffdc21}, + {0x9538c532, 0xffffd848ffffdc22}, + {0x9538c533, 0xffffd848ffffdc23}, + {0x9538c534, 0xffffd848ffffdc24}, + {0x9538c535, 0xffffd848ffffdc25}, + {0x9538c536, 0xffffd848ffffdc26}, + {0x9538c537, 0xffffd848ffffdc27}, + {0x9538c538, 0xffffd848ffffdc28}, + {0x9538c539, 0xffffd848ffffdc29}, + {0x9538c630, 0xffffd848ffffdc2a}, + {0x9538c631, 0xffffd848ffffdc2b}, + {0x9538c632, 0xffffd848ffffdc2c}, + {0x9538c633, 0xffffd848ffffdc2d}, + {0x9538c634, 0xffffd848ffffdc2e}, + {0x9538c635, 0xffffd848ffffdc2f}, + {0x9538c636, 0xffffd848ffffdc30}, + {0x9538c637, 0xffffd848ffffdc31}, + {0x9538c638, 0xffffd848ffffdc32}, + {0x9538c639, 0xffffd848ffffdc33}, + {0x9538c730, 0xffffd848ffffdc34}, + {0x9538c731, 0xffffd848ffffdc35}, + {0x9538c732, 0xffffd848ffffdc36}, + {0x9538c733, 0xffffd848ffffdc37}, + {0x9538c734, 0xffffd848ffffdc38}, + {0x9538c735, 0xffffd848ffffdc39}, + {0x9538c736, 0xffffd848ffffdc3a}, + {0x9538c737, 0xffffd848ffffdc3b}, + {0x9538c738, 0xffffd848ffffdc3c}, + {0x9538c739, 0xffffd848ffffdc3d}, + {0x9538c830, 0xffffd848ffffdc3e}, + {0x9538c831, 0xffffd848ffffdc3f}, + {0x9538c832, 0xffffd848ffffdc40}, + {0x9538c833, 0xffffd848ffffdc41}, + {0x9538c834, 0xffffd848ffffdc42}, + {0x9538c835, 0xffffd848ffffdc43}, + {0x9538c836, 0xffffd848ffffdc44}, + {0x9538c837, 0xffffd848ffffdc45}, + {0x9538c838, 0xffffd848ffffdc46}, + {0x9538c839, 0xffffd848ffffdc47}, + {0x9538c930, 0xffffd848ffffdc48}, + {0x9538c931, 0xffffd848ffffdc49}, + {0x9538c932, 0xffffd848ffffdc4a}, + {0x9538c933, 0xffffd848ffffdc4b}, + {0x9538c934, 0xffffd848ffffdc4c}, + {0x9538c935, 0xffffd848ffffdc4d}, + {0x9538c936, 0xffffd848ffffdc4e}, + {0x9538c937, 0xffffd848ffffdc4f}, + {0x9538c938, 0xffffd848ffffdc50}, + {0x9538c939, 0xffffd848ffffdc51}, + {0x9538ca30, 0xffffd848ffffdc52}, + {0x9538ca31, 0xffffd848ffffdc53}, + {0x9538ca32, 0xffffd848ffffdc54}, + {0x9538ca33, 0xffffd848ffffdc55}, + {0x9538ca34, 0xffffd848ffffdc56}, + {0x9538ca35, 0xffffd848ffffdc57}, + {0x9538ca36, 0xffffd848ffffdc58}, + {0x9538ca37, 0xffffd848ffffdc59}, + {0x9538ca38, 0xffffd848ffffdc5a}, + {0x9538ca39, 0xffffd848ffffdc5b}, + {0x9538cb30, 0xffffd848ffffdc5c}, + {0x9538cb31, 0xffffd848ffffdc5d}, + {0x9538cb32, 0xffffd848ffffdc5e}, + {0x9538cb33, 0xffffd848ffffdc5f}, + {0x9538cb34, 0xffffd848ffffdc60}, + {0x9538cb35, 0xffffd848ffffdc61}, + {0x9538cb36, 0xffffd848ffffdc62}, + {0x9538cb37, 0xffffd848ffffdc63}, + {0x9538cb38, 0xffffd848ffffdc64}, + {0x9538cb39, 0xffffd848ffffdc65}, + {0x9538cc30, 0xffffd848ffffdc66}, + {0x9538cc31, 0xffffd848ffffdc67}, + {0x9538cc32, 0xffffd848ffffdc68}, + {0x9538cc33, 0xffffd848ffffdc69}, + {0x9538cc34, 0xffffd848ffffdc6a}, + {0x9538cc35, 0xffffd848ffffdc6b}, + {0x9538cc36, 0xffffd848ffffdc6c}, + {0x9538cc37, 0xffffd848ffffdc6d}, + {0x9538cc38, 0xffffd848ffffdc6e}, + {0x9538cc39, 0xffffd848ffffdc6f}, + {0x9538cd30, 0xffffd848ffffdc70}, + {0x9538cd31, 0xffffd848ffffdc71}, + {0x9538cd32, 0xffffd848ffffdc72}, + {0x9538cd33, 0xffffd848ffffdc73}, + {0x9538cd34, 0xffffd848ffffdc74}, + {0x9538cd35, 0xffffd848ffffdc75}, + {0x9538cd36, 0xffffd848ffffdc76}, + {0x9538cd37, 0xffffd848ffffdc77}, + {0x9538cd38, 0xffffd848ffffdc78}, + {0x9538cd39, 0xffffd848ffffdc79}, + {0x9538ce30, 0xffffd848ffffdc7a}, + {0x9538ce31, 0xffffd848ffffdc7b}, + {0x9538ce32, 0xffffd848ffffdc7c}, + {0x9538ce33, 0xffffd848ffffdc7d}, + {0x9538ce34, 0xffffd848ffffdc7e}, + {0x9538ce35, 0xffffd848ffffdc7f}, + {0x9538ce36, 0xffffd848ffffdc80}, + {0x9538ce37, 0xffffd848ffffdc81}, + {0x9538ce38, 0xffffd848ffffdc82}, + {0x9538ce39, 0xffffd848ffffdc83}, + {0x9538cf30, 0xffffd848ffffdc84}, + {0x9538cf31, 0xffffd848ffffdc85}, + {0x9538cf32, 0xffffd848ffffdc86}, + {0x9538cf33, 0xffffd848ffffdc87}, + {0x9538cf34, 0xffffd848ffffdc88}, + {0x9538cf35, 0xffffd848ffffdc89}, + {0x9538cf36, 0xffffd848ffffdc8a}, + {0x9538cf37, 0xffffd848ffffdc8b}, + {0x9538cf38, 0xffffd848ffffdc8c}, + {0x9538cf39, 0xffffd848ffffdc8d}, + {0x9538d030, 0xffffd848ffffdc8e}, + {0x9538d031, 0xffffd848ffffdc8f}, + {0x9538d032, 0xffffd848ffffdc90}, + {0x9538d033, 0xffffd848ffffdc91}, + {0x9538d034, 0xffffd848ffffdc92}, + {0x9538d035, 0xffffd848ffffdc93}, + {0x9538d036, 0xffffd848ffffdc94}, + {0x9538d037, 0xffffd848ffffdc95}, + {0x9538d038, 0xffffd848ffffdc96}, + {0x9538d039, 0xffffd848ffffdc97}, + {0x9538d130, 0xffffd848ffffdc98}, + {0x9538d131, 0xffffd848ffffdc99}, + {0x9538d132, 0xffffd848ffffdc9a}, + {0x9538d133, 0xffffd848ffffdc9b}, + {0x9538d134, 0xffffd848ffffdc9c}, + {0x9538d135, 0xffffd848ffffdc9d}, + {0x9538d136, 0xffffd848ffffdc9e}, + {0x9538d137, 0xffffd848ffffdc9f}, + {0x9538d138, 0xffffd848ffffdca0}, + {0x9538d139, 0xffffd848ffffdca1}, + {0x9538d230, 0xffffd848ffffdca2}, + {0x9538d231, 0xffffd848ffffdca3}, + {0x9538d232, 0xffffd848ffffdca4}, + {0x9538d233, 0xffffd848ffffdca5}, + {0x9538d234, 0xffffd848ffffdca6}, + {0x9538d235, 0xffffd848ffffdca7}, + {0x9538d236, 0xffffd848ffffdca8}, + {0x9538d237, 0xffffd848ffffdca9}, + {0x9538d238, 0xffffd848ffffdcaa}, + {0x9538d239, 0xffffd848ffffdcab}, + {0x9538d330, 0xffffd848ffffdcac}, + {0x9538d331, 0xffffd848ffffdcad}, + {0x9538d332, 0xffffd848ffffdcae}, + {0x9538d333, 0xffffd848ffffdcaf}, + {0x9538d334, 0xffffd848ffffdcb0}, + {0x9538d335, 0xffffd848ffffdcb1}, + {0x9538d336, 0xffffd848ffffdcb2}, + {0x9538d337, 0xffffd848ffffdcb3}, + {0x9538d338, 0xffffd848ffffdcb4}, + {0x9538d339, 0xffffd848ffffdcb5}, + {0x9538d430, 0xffffd848ffffdcb6}, + {0x9538d431, 0xffffd848ffffdcb7}, + {0x9538d432, 0xffffd848ffffdcb8}, + {0x9538d433, 0xffffd848ffffdcb9}, + {0x9538d434, 0xffffd848ffffdcba}, + {0x9538d435, 0xffffd848ffffdcbb}, + {0x9538d436, 0xffffd848ffffdcbc}, + {0x9538d437, 0xffffd848ffffdcbd}, + {0x9538d438, 0xffffd848ffffdcbe}, + {0x9538d439, 0xffffd848ffffdcbf}, + {0x9538d530, 0xffffd848ffffdcc0}, + {0x9538d531, 0xffffd848ffffdcc1}, + {0x9538d532, 0xffffd848ffffdcc2}, + {0x9538d533, 0xffffd848ffffdcc3}, + {0x9538d534, 0xffffd848ffffdcc4}, + {0x9538d535, 0xffffd848ffffdcc5}, + {0x9538d536, 0xffffd848ffffdcc6}, + {0x9538d537, 0xffffd848ffffdcc7}, + {0x9538d538, 0xffffd848ffffdcc8}, + {0x9538d539, 0xffffd848ffffdcc9}, + {0x9538d630, 0xffffd848ffffdcca}, + {0x9538d631, 0xffffd848ffffdccb}, + {0x9538d632, 0xffffd848ffffdccc}, + {0x9538d633, 0xffffd848ffffdccd}, + {0x9538d634, 0xffffd848ffffdcce}, + {0x9538d635, 0xffffd848ffffdccf}, + {0x9538d636, 0xffffd848ffffdcd0}, + {0x9538d637, 0xffffd848ffffdcd1}, + {0x9538d638, 0xffffd848ffffdcd2}, + {0x9538d639, 0xffffd848ffffdcd3}, + {0x9538d730, 0xffffd848ffffdcd4}, + {0x9538d731, 0xffffd848ffffdcd5}, + {0x9538d732, 0xffffd848ffffdcd6}, + {0x9538d733, 0xffffd848ffffdcd7}, + {0x9538d734, 0xffffd848ffffdcd8}, + {0x9538d735, 0xffffd848ffffdcd9}, + {0x9538d736, 0xffffd848ffffdcda}, + {0x9538d737, 0xffffd848ffffdcdb}, + {0x9538d738, 0xffffd848ffffdcdc}, + {0x9538d739, 0xffffd848ffffdcdd}, + {0x9538d830, 0xffffd848ffffdcde}, + {0x9538d831, 0xffffd848ffffdcdf}, + {0x9538d832, 0xffffd848ffffdce0}, + {0x9538d833, 0xffffd848ffffdce1}, + {0x9538d834, 0xffffd848ffffdce2}, + {0x9538d835, 0xffffd848ffffdce3}, + {0x9538d836, 0xffffd848ffffdce4}, + {0x9538d837, 0xffffd848ffffdce5}, + {0x9538d838, 0xffffd848ffffdce6}, + {0x9538d839, 0xffffd848ffffdce7}, + {0x9538d930, 0xffffd848ffffdce8}, + {0x9538d931, 0xffffd848ffffdce9}, + {0x9538d932, 0xffffd848ffffdcea}, + {0x9538d933, 0xffffd848ffffdceb}, + {0x9538d934, 0xffffd848ffffdcec}, + {0x9538d935, 0xffffd848ffffdced}, + {0x9538d936, 0xffffd848ffffdcee}, + {0x9538d937, 0xffffd848ffffdcef}, + {0x9538d938, 0xffffd848ffffdcf0}, + {0x9538d939, 0xffffd848ffffdcf1}, + {0x9538da30, 0xffffd848ffffdcf2}, + {0x9538da31, 0xffffd848ffffdcf3}, + {0x9538da32, 0xffffd848ffffdcf4}, + {0x9538da33, 0xffffd848ffffdcf5}, + {0x9538da34, 0xffffd848ffffdcf6}, + {0x9538da35, 0xffffd848ffffdcf7}, + {0x9538da36, 0xffffd848ffffdcf8}, + {0x9538da37, 0xffffd848ffffdcf9}, + {0x9538da38, 0xffffd848ffffdcfa}, + {0x9538da39, 0xffffd848ffffdcfb}, + {0x9538db30, 0xffffd848ffffdcfc}, + {0x9538db31, 0xffffd848ffffdcfd}, + {0x9538db32, 0xffffd848ffffdcfe}, + {0x9538db33, 0xffffd848ffffdcff}, + {0x9538db34, 0xffffd848ffffdd00}, + {0x9538db35, 0xffffd848ffffdd01}, + {0x9538db36, 0xffffd848ffffdd02}, + {0x9538db37, 0xffffd848ffffdd03}, + {0x9538db38, 0xffffd848ffffdd04}, + {0x9538db39, 0xffffd848ffffdd05}, + {0x9538dc30, 0xffffd848ffffdd06}, + {0x9538dc31, 0xffffd848ffffdd07}, + {0x9538dc32, 0xffffd848ffffdd08}, + {0x9538dc33, 0xffffd848ffffdd09}, + {0x9538dc34, 0xffffd848ffffdd0a}, + {0x9538dc35, 0xffffd848ffffdd0b}, + {0x9538dc36, 0xffffd848ffffdd0c}, + {0x9538dc37, 0xffffd848ffffdd0d}, + {0x9538dc38, 0xffffd848ffffdd0e}, + {0x9538dc39, 0xffffd848ffffdd0f}, + {0x9538dd30, 0xffffd848ffffdd10}, + {0x9538dd31, 0xffffd848ffffdd11}, + {0x9538dd32, 0xffffd848ffffdd12}, + {0x9538dd33, 0xffffd848ffffdd13}, + {0x9538dd34, 0xffffd848ffffdd14}, + {0x9538dd35, 0xffffd848ffffdd15}, + {0x9538dd36, 0xffffd848ffffdd16}, + {0x9538dd37, 0xffffd848ffffdd17}, + {0x9538dd38, 0xffffd848ffffdd18}, + {0x9538dd39, 0xffffd848ffffdd19}, + {0x9538de30, 0xffffd848ffffdd1a}, + {0x9538de31, 0xffffd848ffffdd1b}, + {0x9538de32, 0xffffd848ffffdd1c}, + {0x9538de33, 0xffffd848ffffdd1d}, + {0x9538de34, 0xffffd848ffffdd1e}, + {0x9538de35, 0xffffd848ffffdd1f}, + {0x9538de36, 0xffffd848ffffdd20}, + {0x9538de37, 0xffffd848ffffdd21}, + {0x9538de38, 0xffffd848ffffdd22}, + {0x9538de39, 0xffffd848ffffdd23}, + {0x9538df30, 0xffffd848ffffdd24}, + {0x9538df31, 0xffffd848ffffdd25}, + {0x9538df32, 0xffffd848ffffdd26}, + {0x9538df33, 0xffffd848ffffdd27}, + {0x9538df34, 0xffffd848ffffdd28}, + {0x9538df35, 0xffffd848ffffdd29}, + {0x9538df36, 0xffffd848ffffdd2a}, + {0x9538df37, 0xffffd848ffffdd2b}, + {0x9538df38, 0xffffd848ffffdd2c}, + {0x9538df39, 0xffffd848ffffdd2d}, + {0x9538e030, 0xffffd848ffffdd2e}, + {0x9538e031, 0xffffd848ffffdd2f}, + {0x9538e032, 0xffffd848ffffdd30}, + {0x9538e033, 0xffffd848ffffdd31}, + {0x9538e034, 0xffffd848ffffdd32}, + {0x9538e035, 0xffffd848ffffdd33}, + {0x9538e036, 0xffffd848ffffdd34}, + {0x9538e037, 0xffffd848ffffdd35}, + {0x9538e038, 0xffffd848ffffdd36}, + {0x9538e039, 0xffffd848ffffdd37}, + {0x9538e130, 0xffffd848ffffdd38}, + {0x9538e131, 0xffffd848ffffdd39}, + {0x9538e132, 0xffffd848ffffdd3a}, + {0x9538e133, 0xffffd848ffffdd3b}, + {0x9538e134, 0xffffd848ffffdd3c}, + {0x9538e135, 0xffffd848ffffdd3d}, + {0x9538e136, 0xffffd848ffffdd3e}, + {0x9538e137, 0xffffd848ffffdd3f}, + {0x9538e138, 0xffffd848ffffdd40}, + {0x9538e139, 0xffffd848ffffdd41}, + {0x9538e230, 0xffffd848ffffdd42}, + {0x9538e231, 0xffffd848ffffdd43}, + {0x9538e232, 0xffffd848ffffdd44}, + {0x9538e233, 0xffffd848ffffdd45}, + {0x9538e234, 0xffffd848ffffdd46}, + {0x9538e235, 0xffffd848ffffdd47}, + {0x9538e236, 0xffffd848ffffdd48}, + {0x9538e237, 0xffffd848ffffdd49}, + {0x9538e238, 0xffffd848ffffdd4a}, + {0x9538e239, 0xffffd848ffffdd4b}, + {0x9538e330, 0xffffd848ffffdd4c}, + {0x9538e331, 0xffffd848ffffdd4d}, + {0x9538e332, 0xffffd848ffffdd4e}, + {0x9538e333, 0xffffd848ffffdd4f}, + {0x9538e334, 0xffffd848ffffdd50}, + {0x9538e335, 0xffffd848ffffdd51}, + {0x9538e336, 0xffffd848ffffdd52}, + {0x9538e337, 0xffffd848ffffdd53}, + {0x9538e338, 0xffffd848ffffdd54}, + {0x9538e339, 0xffffd848ffffdd55}, + {0x9538e430, 0xffffd848ffffdd56}, + {0x9538e431, 0xffffd848ffffdd57}, + {0x9538e432, 0xffffd848ffffdd58}, + {0x9538e433, 0xffffd848ffffdd59}, + {0x9538e434, 0xffffd848ffffdd5a}, + {0x9538e435, 0xffffd848ffffdd5b}, + {0x9538e436, 0xffffd848ffffdd5c}, + {0x9538e437, 0xffffd848ffffdd5d}, + {0x9538e438, 0xffffd848ffffdd5e}, + {0x9538e439, 0xffffd848ffffdd5f}, + {0x9538e530, 0xffffd848ffffdd60}, + {0x9538e531, 0xffffd848ffffdd61}, + {0x9538e532, 0xffffd848ffffdd62}, + {0x9538e533, 0xffffd848ffffdd63}, + {0x9538e534, 0xffffd848ffffdd64}, + {0x9538e535, 0xffffd848ffffdd65}, + {0x9538e536, 0xffffd848ffffdd66}, + {0x9538e537, 0xffffd848ffffdd67}, + {0x9538e538, 0xffffd848ffffdd68}, + {0x9538e539, 0xffffd848ffffdd69}, + {0x9538e630, 0xffffd848ffffdd6a}, + {0x9538e631, 0xffffd848ffffdd6b}, + {0x9538e632, 0xffffd848ffffdd6c}, + {0x9538e633, 0xffffd848ffffdd6d}, + {0x9538e634, 0xffffd848ffffdd6e}, + {0x9538e635, 0xffffd848ffffdd6f}, + {0x9538e636, 0xffffd848ffffdd70}, + {0x9538e637, 0xffffd848ffffdd71}, + {0x9538e638, 0xffffd848ffffdd72}, + {0x9538e639, 0xffffd848ffffdd73}, + {0x9538e730, 0xffffd848ffffdd74}, + {0x9538e731, 0xffffd848ffffdd75}, + {0x9538e732, 0xffffd848ffffdd76}, + {0x9538e733, 0xffffd848ffffdd77}, + {0x9538e734, 0xffffd848ffffdd78}, + {0x9538e735, 0xffffd848ffffdd79}, + {0x9538e736, 0xffffd848ffffdd7a}, + {0x9538e737, 0xffffd848ffffdd7b}, + {0x9538e738, 0xffffd848ffffdd7c}, + {0x9538e739, 0xffffd848ffffdd7d}, + {0x9538e830, 0xffffd848ffffdd7e}, + {0x9538e831, 0xffffd848ffffdd7f}, + {0x9538e832, 0xffffd848ffffdd80}, + {0x9538e833, 0xffffd848ffffdd81}, + {0x9538e834, 0xffffd848ffffdd82}, + {0x9538e835, 0xffffd848ffffdd83}, + {0x9538e836, 0xffffd848ffffdd84}, + {0x9538e837, 0xffffd848ffffdd85}, + {0x9538e838, 0xffffd848ffffdd86}, + {0x9538e839, 0xffffd848ffffdd87}, + {0x9538e930, 0xffffd848ffffdd88}, + {0x9538e931, 0xffffd848ffffdd89}, + {0x9538e932, 0xffffd848ffffdd8a}, + {0x9538e933, 0xffffd848ffffdd8b}, + {0x9538e934, 0xffffd848ffffdd8c}, + {0x9538e935, 0xffffd848ffffdd8d}, + {0x9538e936, 0xffffd848ffffdd8e}, + {0x9538e937, 0xffffd848ffffdd8f}, + {0x9538e938, 0xffffd848ffffdd90}, + {0x9538e939, 0xffffd848ffffdd91}, + {0x9538ea30, 0xffffd848ffffdd92}, + {0x9538ea31, 0xffffd848ffffdd93}, + {0x9538ea32, 0xffffd848ffffdd94}, + {0x9538ea33, 0xffffd848ffffdd95}, + {0x9538ea34, 0xffffd848ffffdd96}, + {0x9538ea35, 0xffffd848ffffdd97}, + {0x9538ea36, 0xffffd848ffffdd98}, + {0x9538ea37, 0xffffd848ffffdd99}, + {0x9538ea38, 0xffffd848ffffdd9a}, + {0x9538ea39, 0xffffd848ffffdd9b}, + {0x9538eb30, 0xffffd848ffffdd9c}, + {0x9538eb31, 0xffffd848ffffdd9d}, + {0x9538eb32, 0xffffd848ffffdd9e}, + {0x9538eb33, 0xffffd848ffffdd9f}, + {0x9538eb34, 0xffffd848ffffdda0}, + {0x9538eb35, 0xffffd848ffffdda1}, + {0x9538eb36, 0xffffd848ffffdda2}, + {0x9538eb37, 0xffffd848ffffdda3}, + {0x9538eb38, 0xffffd848ffffdda4}, + {0x9538eb39, 0xffffd848ffffdda5}, + {0x9538ec30, 0xffffd848ffffdda6}, + {0x9538ec31, 0xffffd848ffffdda7}, + {0x9538ec32, 0xffffd848ffffdda8}, + {0x9538ec33, 0xffffd848ffffdda9}, + {0x9538ec34, 0xffffd848ffffddaa}, + {0x9538ec35, 0xffffd848ffffddab}, + {0x9538ec36, 0xffffd848ffffddac}, + {0x9538ec37, 0xffffd848ffffddad}, + {0x9538ec38, 0xffffd848ffffddae}, + {0x9538ec39, 0xffffd848ffffddaf}, + {0x9538ed30, 0xffffd848ffffddb0}, + {0x9538ed31, 0xffffd848ffffddb1}, + {0x9538ed32, 0xffffd848ffffddb2}, + {0x9538ed33, 0xffffd848ffffddb3}, + {0x9538ed34, 0xffffd848ffffddb4}, + {0x9538ed35, 0xffffd848ffffddb5}, + {0x9538ed36, 0xffffd848ffffddb6}, + {0x9538ed37, 0xffffd848ffffddb7}, + {0x9538ed38, 0xffffd848ffffddb8}, + {0x9538ed39, 0xffffd848ffffddb9}, + {0x9538ee30, 0xffffd848ffffddba}, + {0x9538ee31, 0xffffd848ffffddbb}, + {0x9538ee32, 0xffffd848ffffddbc}, + {0x9538ee33, 0xffffd848ffffddbd}, + {0x9538ee34, 0xffffd848ffffddbe}, + {0x9538ee35, 0xffffd848ffffddbf}, + {0x9538ee36, 0xffffd848ffffddc0}, + {0x9538ee37, 0xffffd848ffffddc1}, + {0x9538ee38, 0xffffd848ffffddc2}, + {0x9538ee39, 0xffffd848ffffddc3}, + {0x9538ef30, 0xffffd848ffffddc4}, + {0x9538ef31, 0xffffd848ffffddc5}, + {0x9538ef32, 0xffffd848ffffddc6}, + {0x9538ef33, 0xffffd848ffffddc7}, + {0x9538ef34, 0xffffd848ffffddc8}, + {0x9538ef35, 0xffffd848ffffddc9}, + {0x9538ef36, 0xffffd848ffffddca}, + {0x9538ef37, 0xffffd848ffffddcb}, + {0x9538ef38, 0xffffd848ffffddcc}, + {0x9538ef39, 0xffffd848ffffddcd}, + {0x9538f030, 0xffffd848ffffddce}, + {0x9538f031, 0xffffd848ffffddcf}, + {0x9538f032, 0xffffd848ffffddd0}, + {0x9538f033, 0xffffd848ffffddd1}, + {0x9538f034, 0xffffd848ffffddd2}, + {0x9538f035, 0xffffd848ffffddd3}, + {0x9538f036, 0xffffd848ffffddd4}, + {0x9538f037, 0xffffd848ffffddd5}, + {0x9538f038, 0xffffd848ffffddd6}, + {0x9538f039, 0xffffd848ffffddd7}, + {0x9538f130, 0xffffd848ffffddd8}, + {0x9538f131, 0xffffd848ffffddd9}, + {0x9538f132, 0xffffd848ffffddda}, + {0x9538f133, 0xffffd848ffffdddb}, + {0x9538f134, 0xffffd848ffffdddc}, + {0x9538f135, 0xffffd848ffffdddd}, + {0x9538f136, 0xffffd848ffffddde}, + {0x9538f137, 0xffffd848ffffdddf}, + {0x9538f138, 0xffffd848ffffdde0}, + {0x9538f139, 0xffffd848ffffdde1}, + {0x9538f230, 0xffffd848ffffdde2}, + {0x9538f231, 0xffffd848ffffdde3}, + {0x9538f232, 0xffffd848ffffdde4}, + {0x9538f233, 0xffffd848ffffdde5}, + {0x9538f234, 0xffffd848ffffdde6}, + {0x9538f235, 0xffffd848ffffdde7}, + {0x9538f236, 0xffffd848ffffdde8}, + {0x9538f237, 0xffffd848ffffdde9}, + {0x9538f238, 0xffffd848ffffddea}, + {0x9538f239, 0xffffd848ffffddeb}, + {0x9538f330, 0xffffd848ffffddec}, + {0x9538f331, 0xffffd848ffffdded}, + {0x9538f332, 0xffffd848ffffddee}, + {0x9538f333, 0xffffd848ffffddef}, + {0x9538f334, 0xffffd848ffffddf0}, + {0x9538f335, 0xffffd848ffffddf1}, + {0x9538f336, 0xffffd848ffffddf2}, + {0x9538f337, 0xffffd848ffffddf3}, + {0x9538f338, 0xffffd848ffffddf4}, + {0x9538f339, 0xffffd848ffffddf5}, + {0x9538f430, 0xffffd848ffffddf6}, + {0x9538f431, 0xffffd848ffffddf7}, + {0x9538f432, 0xffffd848ffffddf8}, + {0x9538f433, 0xffffd848ffffddf9}, + {0x9538f434, 0xffffd848ffffddfa}, + {0x9538f435, 0xffffd848ffffddfb}, + {0x9538f436, 0xffffd848ffffddfc}, + {0x9538f437, 0xffffd848ffffddfd}, + {0x9538f438, 0xffffd848ffffddfe}, + {0x9538f439, 0xffffd848ffffddff}, + {0x9538f530, 0xffffd848ffffde00}, + {0x9538f531, 0xffffd848ffffde01}, + {0x9538f532, 0xffffd848ffffde02}, + {0x9538f533, 0xffffd848ffffde03}, + {0x9538f534, 0xffffd848ffffde04}, + {0x9538f535, 0xffffd848ffffde05}, + {0x9538f536, 0xffffd848ffffde06}, + {0x9538f537, 0xffffd848ffffde07}, + {0x9538f538, 0xffffd848ffffde08}, + {0x9538f539, 0xffffd848ffffde09}, + {0x9538f630, 0xffffd848ffffde0a}, + {0x9538f631, 0xffffd848ffffde0b}, + {0x9538f632, 0xffffd848ffffde0c}, + {0x9538f633, 0xffffd848ffffde0d}, + {0x9538f634, 0xffffd848ffffde0e}, + {0x9538f635, 0xffffd848ffffde0f}, + {0x9538f636, 0xffffd848ffffde10}, + {0x9538f637, 0xffffd848ffffde11}, + {0x9538f638, 0xffffd848ffffde12}, + {0x9538f639, 0xffffd848ffffde13}, + {0x9538f730, 0xffffd848ffffde14}, + {0x9538f731, 0xffffd848ffffde15}, + {0x9538f732, 0xffffd848ffffde16}, + {0x9538f733, 0xffffd848ffffde17}, + {0x9538f734, 0xffffd848ffffde18}, + {0x9538f735, 0xffffd848ffffde19}, + {0x9538f736, 0xffffd848ffffde1a}, + {0x9538f737, 0xffffd848ffffde1b}, + {0x9538f738, 0xffffd848ffffde1c}, + {0x9538f739, 0xffffd848ffffde1d}, + {0x9538f830, 0xffffd848ffffde1e}, + {0x9538f831, 0xffffd848ffffde1f}, + {0x9538f832, 0xffffd848ffffde20}, + {0x9538f833, 0xffffd848ffffde21}, + {0x9538f834, 0xffffd848ffffde22}, + {0x9538f835, 0xffffd848ffffde23}, + {0x9538f836, 0xffffd848ffffde24}, + {0x9538f837, 0xffffd848ffffde25}, + {0x9538f838, 0xffffd848ffffde26}, + {0x9538f839, 0xffffd848ffffde27}, + {0x9538f930, 0xffffd848ffffde28}, + {0x9538f931, 0xffffd848ffffde29}, + {0x9538f932, 0xffffd848ffffde2a}, + {0x9538f933, 0xffffd848ffffde2b}, + {0x9538f934, 0xffffd848ffffde2c}, + {0x9538f935, 0xffffd848ffffde2d}, + {0x9538f936, 0xffffd848ffffde2e}, + {0x9538f937, 0xffffd848ffffde2f}, + {0x9538f938, 0xffffd848ffffde30}, + {0x9538f939, 0xffffd848ffffde31}, + {0x9538fa30, 0xffffd848ffffde32}, + {0x9538fa31, 0xffffd848ffffde33}, + {0x9538fa32, 0xffffd848ffffde34}, + {0x9538fa33, 0xffffd848ffffde35}, + {0x9538fa34, 0xffffd848ffffde36}, + {0x9538fa35, 0xffffd848ffffde37}, + {0x9538fa36, 0xffffd848ffffde38}, + {0x9538fa37, 0xffffd848ffffde39}, + {0x9538fa38, 0xffffd848ffffde3a}, + {0x9538fa39, 0xffffd848ffffde3b}, + {0x9538fb30, 0xffffd848ffffde3c}, + {0x9538fb31, 0xffffd848ffffde3d}, + {0x9538fb32, 0xffffd848ffffde3e}, + {0x9538fb33, 0xffffd848ffffde3f}, + {0x9538fb34, 0xffffd848ffffde40}, + {0x9538fb35, 0xffffd848ffffde41}, + {0x9538fb36, 0xffffd848ffffde42}, + {0x9538fb37, 0xffffd848ffffde43}, + {0x9538fb38, 0xffffd848ffffde44}, + {0x9538fb39, 0xffffd848ffffde45}, + {0x9538fc30, 0xffffd848ffffde46}, + {0x9538fc31, 0xffffd848ffffde47}, + {0x9538fc32, 0xffffd848ffffde48}, + {0x9538fc33, 0xffffd848ffffde49}, + {0x9538fc34, 0xffffd848ffffde4a}, + {0x9538fc35, 0xffffd848ffffde4b}, + {0x9538fc36, 0xffffd848ffffde4c}, + {0x9538fc37, 0xffffd848ffffde4d}, + {0x9538fc38, 0xffffd848ffffde4e}, + {0x9538fc39, 0xffffd848ffffde4f}, + {0x9538fd30, 0xffffd848ffffde50}, + {0x9538fd31, 0xffffd848ffffde51}, + {0x9538fd32, 0xffffd848ffffde52}, + {0x9538fd33, 0xffffd848ffffde53}, + {0x9538fd34, 0xffffd848ffffde54}, + {0x9538fd35, 0xffffd848ffffde55}, + {0x9538fd36, 0xffffd848ffffde56}, + {0x9538fd37, 0xffffd848ffffde57}, + {0x9538fd38, 0xffffd848ffffde58}, + {0x9538fd39, 0xffffd848ffffde59}, + {0x9538fe30, 0xffffd848ffffde5a}, + {0x9538fe31, 0xffffd848ffffde5b}, + {0x9538fe32, 0xffffd848ffffde5c}, + {0x9538fe33, 0xffffd848ffffde5d}, + {0x9538fe34, 0xffffd848ffffde5e}, + {0x9538fe35, 0xffffd848ffffde5f}, + {0x9538fe36, 0xffffd848ffffde60}, + {0x9538fe37, 0xffffd848ffffde61}, + {0x9538fe38, 0xffffd848ffffde62}, + {0x9538fe39, 0xffffd848ffffde63}, + {0x95398130, 0xffffd848ffffde64}, + {0x95398131, 0xffffd848ffffde65}, + {0x95398132, 0xffffd848ffffde66}, + {0x95398133, 0xffffd848ffffde67}, + {0x95398134, 0xffffd848ffffde68}, + {0x95398135, 0xffffd848ffffde69}, + {0x95398136, 0xffffd848ffffde6a}, + {0x95398137, 0xffffd848ffffde6b}, + {0x95398138, 0xffffd848ffffde6c}, + {0x95398139, 0xffffd848ffffde6d}, + {0x95398230, 0xffffd848ffffde6e}, + {0x95398231, 0xffffd848ffffde6f}, + {0x95398232, 0xffffd848ffffde70}, + {0x95398233, 0xffffd848ffffde71}, + {0x95398234, 0xffffd848ffffde72}, + {0x95398235, 0xffffd848ffffde73}, + {0x95398236, 0xffffd848ffffde74}, + {0x95398237, 0xffffd848ffffde75}, + {0x95398238, 0xffffd848ffffde76}, + {0x95398239, 0xffffd848ffffde77}, + {0x95398330, 0xffffd848ffffde78}, + {0x95398331, 0xffffd848ffffde79}, + {0x95398332, 0xffffd848ffffde7a}, + {0x95398333, 0xffffd848ffffde7b}, + {0x95398334, 0xffffd848ffffde7c}, + {0x95398335, 0xffffd848ffffde7d}, + {0x95398336, 0xffffd848ffffde7e}, + {0x95398337, 0xffffd848ffffde7f}, + {0x95398338, 0xffffd848ffffde80}, + {0x95398339, 0xffffd848ffffde81}, + {0x95398430, 0xffffd848ffffde82}, + {0x95398431, 0xffffd848ffffde83}, + {0x95398432, 0xffffd848ffffde84}, + {0x95398433, 0xffffd848ffffde85}, + {0x95398434, 0xffffd848ffffde86}, + {0x95398435, 0xffffd848ffffde87}, + {0x95398436, 0xffffd848ffffde88}, + {0x95398437, 0xffffd848ffffde89}, + {0x95398438, 0xffffd848ffffde8a}, + {0x95398439, 0xffffd848ffffde8b}, + {0x95398530, 0xffffd848ffffde8c}, + {0x95398531, 0xffffd848ffffde8d}, + {0x95398532, 0xffffd848ffffde8e}, + {0x95398533, 0xffffd848ffffde8f}, + {0x95398534, 0xffffd848ffffde90}, + {0x95398535, 0xffffd848ffffde91}, + {0x95398536, 0xffffd848ffffde92}, + {0x95398537, 0xffffd848ffffde93}, + {0x95398538, 0xffffd848ffffde94}, + {0x95398539, 0xffffd848ffffde95}, + {0x95398630, 0xffffd848ffffde96}, + {0x95398631, 0xffffd848ffffde97}, + {0x95398632, 0xffffd848ffffde98}, + {0x95398633, 0xffffd848ffffde99}, + {0x95398634, 0xffffd848ffffde9a}, + {0x95398635, 0xffffd848ffffde9b}, + {0x95398636, 0xffffd848ffffde9c}, + {0x95398637, 0xffffd848ffffde9d}, + {0x95398638, 0xffffd848ffffde9e}, + {0x95398639, 0xffffd848ffffde9f}, + {0x95398730, 0xffffd848ffffdea0}, + {0x95398731, 0xffffd848ffffdea1}, + {0x95398732, 0xffffd848ffffdea2}, + {0x95398733, 0xffffd848ffffdea3}, + {0x95398734, 0xffffd848ffffdea4}, + {0x95398735, 0xffffd848ffffdea5}, + {0x95398736, 0xffffd848ffffdea6}, + {0x95398737, 0xffffd848ffffdea7}, + {0x95398738, 0xffffd848ffffdea8}, + {0x95398739, 0xffffd848ffffdea9}, + {0x95398830, 0xffffd848ffffdeaa}, + {0x95398831, 0xffffd848ffffdeab}, + {0x95398832, 0xffffd848ffffdeac}, + {0x95398833, 0xffffd848ffffdead}, + {0x95398834, 0xffffd848ffffdeae}, + {0x95398835, 0xffffd848ffffdeaf}, + {0x95398836, 0xffffd848ffffdeb0}, + {0x95398837, 0xffffd848ffffdeb1}, + {0x95398838, 0xffffd848ffffdeb2}, + {0x95398839, 0xffffd848ffffdeb3}, + {0x95398930, 0xffffd848ffffdeb4}, + {0x95398931, 0xffffd848ffffdeb5}, + {0x95398932, 0xffffd848ffffdeb6}, + {0x95398933, 0xffffd848ffffdeb7}, + {0x95398934, 0xffffd848ffffdeb8}, + {0x95398935, 0xffffd848ffffdeb9}, + {0x95398936, 0xffffd848ffffdeba}, + {0x95398937, 0xffffd848ffffdebb}, + {0x95398938, 0xffffd848ffffdebc}, + {0x95398939, 0xffffd848ffffdebd}, + {0x95398a30, 0xffffd848ffffdebe}, + {0x95398a31, 0xffffd848ffffdebf}, + {0x95398a32, 0xffffd848ffffdec0}, + {0x95398a33, 0xffffd848ffffdec1}, + {0x95398a34, 0xffffd848ffffdec2}, + {0x95398a35, 0xffffd848ffffdec3}, + {0x95398a36, 0xffffd848ffffdec4}, + {0x95398a37, 0xffffd848ffffdec5}, + {0x95398a38, 0xffffd848ffffdec6}, + {0x95398a39, 0xffffd848ffffdec7}, + {0x95398b30, 0xffffd848ffffdec8}, + {0x95398b31, 0xffffd848ffffdec9}, + {0x95398b32, 0xffffd848ffffdeca}, + {0x95398b33, 0xffffd848ffffdecb}, + {0x95398b34, 0xffffd848ffffdecc}, + {0x95398b35, 0xffffd848ffffdecd}, + {0x95398b36, 0xffffd848ffffdece}, + {0x95398b37, 0xffffd848ffffdecf}, + {0x95398b38, 0xffffd848ffffded0}, + {0x95398b39, 0xffffd848ffffded1}, + {0x95398c30, 0xffffd848ffffded2}, + {0x95398c31, 0xffffd848ffffded3}, + {0x95398c32, 0xffffd848ffffded4}, + {0x95398c33, 0xffffd848ffffded5}, + {0x95398c34, 0xffffd848ffffded6}, + {0x95398c35, 0xffffd848ffffded7}, + {0x95398c36, 0xffffd848ffffded8}, + {0x95398c37, 0xffffd848ffffded9}, + {0x95398c38, 0xffffd848ffffdeda}, + {0x95398c39, 0xffffd848ffffdedb}, + {0x95398d30, 0xffffd848ffffdedc}, + {0x95398d31, 0xffffd848ffffdedd}, + {0x95398d32, 0xffffd848ffffdede}, + {0x95398d33, 0xffffd848ffffdedf}, + {0x95398d34, 0xffffd848ffffdee0}, + {0x95398d35, 0xffffd848ffffdee1}, + {0x95398d36, 0xffffd848ffffdee2}, + {0x95398d37, 0xffffd848ffffdee3}, + {0x95398d38, 0xffffd848ffffdee4}, + {0x95398d39, 0xffffd848ffffdee5}, + {0x95398e30, 0xffffd848ffffdee6}, + {0x95398e31, 0xffffd848ffffdee7}, + {0x95398e32, 0xffffd848ffffdee8}, + {0x95398e33, 0xffffd848ffffdee9}, + {0x95398e34, 0xffffd848ffffdeea}, + {0x95398e35, 0xffffd848ffffdeeb}, + {0x95398e36, 0xffffd848ffffdeec}, + {0x95398e37, 0xffffd848ffffdeed}, + {0x95398e38, 0xffffd848ffffdeee}, + {0x95398e39, 0xffffd848ffffdeef}, + {0x95398f30, 0xffffd848ffffdef0}, + {0x95398f31, 0xffffd848ffffdef1}, + {0x95398f32, 0xffffd848ffffdef2}, + {0x95398f33, 0xffffd848ffffdef3}, + {0x95398f34, 0xffffd848ffffdef4}, + {0x95398f35, 0xffffd848ffffdef5}, + {0x95398f36, 0xffffd848ffffdef6}, + {0x95398f37, 0xffffd848ffffdef7}, + {0x95398f38, 0xffffd848ffffdef8}, + {0x95398f39, 0xffffd848ffffdef9}, + {0x95399030, 0xffffd848ffffdefa}, + {0x95399031, 0xffffd848ffffdefb}, + {0x95399032, 0xffffd848ffffdefc}, + {0x95399033, 0xffffd848ffffdefd}, + {0x95399034, 0xffffd848ffffdefe}, + {0x95399035, 0xffffd848ffffdeff}, + {0x95399036, 0xffffd848ffffdf00}, + {0x95399037, 0xffffd848ffffdf01}, + {0x95399038, 0xffffd848ffffdf02}, + {0x95399039, 0xffffd848ffffdf03}, + {0x95399130, 0xffffd848ffffdf04}, + {0x95399131, 0xffffd848ffffdf05}, + {0x95399132, 0xffffd848ffffdf06}, + {0x95399133, 0xffffd848ffffdf07}, + {0x95399134, 0xffffd848ffffdf08}, + {0x95399135, 0xffffd848ffffdf09}, + {0x95399136, 0xffffd848ffffdf0a}, + {0x95399137, 0xffffd848ffffdf0b}, + {0x95399138, 0xffffd848ffffdf0c}, + {0x95399139, 0xffffd848ffffdf0d}, + {0x95399230, 0xffffd848ffffdf0e}, + {0x95399231, 0xffffd848ffffdf0f}, + {0x95399232, 0xffffd848ffffdf10}, + {0x95399233, 0xffffd848ffffdf11}, + {0x95399234, 0xffffd848ffffdf12}, + {0x95399235, 0xffffd848ffffdf13}, + {0x95399236, 0xffffd848ffffdf14}, + {0x95399237, 0xffffd848ffffdf15}, + {0x95399238, 0xffffd848ffffdf16}, + {0x95399239, 0xffffd848ffffdf17}, + {0x95399330, 0xffffd848ffffdf18}, + {0x95399331, 0xffffd848ffffdf19}, + {0x95399332, 0xffffd848ffffdf1a}, + {0x95399333, 0xffffd848ffffdf1b}, + {0x95399334, 0xffffd848ffffdf1c}, + {0x95399335, 0xffffd848ffffdf1d}, + {0x95399336, 0xffffd848ffffdf1e}, + {0x95399337, 0xffffd848ffffdf1f}, + {0x95399338, 0xffffd848ffffdf20}, + {0x95399339, 0xffffd848ffffdf21}, + {0x95399430, 0xffffd848ffffdf22}, + {0x95399431, 0xffffd848ffffdf23}, + {0x95399432, 0xffffd848ffffdf24}, + {0x95399433, 0xffffd848ffffdf25}, + {0x95399434, 0xffffd848ffffdf26}, + {0x95399435, 0xffffd848ffffdf27}, + {0x95399436, 0xffffd848ffffdf28}, + {0x95399437, 0xffffd848ffffdf29}, + {0x95399438, 0xffffd848ffffdf2a}, + {0x95399439, 0xffffd848ffffdf2b}, + {0x95399530, 0xffffd848ffffdf2c}, + {0x95399531, 0xffffd848ffffdf2d}, + {0x95399532, 0xffffd848ffffdf2e}, + {0x95399533, 0xffffd848ffffdf2f}, + {0x95399534, 0xffffd848ffffdf30}, + {0x95399535, 0xffffd848ffffdf31}, + {0x95399536, 0xffffd848ffffdf32}, + {0x95399537, 0xffffd848ffffdf33}, + {0x95399538, 0xffffd848ffffdf34}, + {0x95399539, 0xffffd848ffffdf35}, + {0x95399630, 0xffffd848ffffdf36}, + {0x95399631, 0xffffd848ffffdf37}, + {0x95399632, 0xffffd848ffffdf38}, + {0x95399633, 0xffffd848ffffdf39}, + {0x95399634, 0xffffd848ffffdf3a}, + {0x95399635, 0xffffd848ffffdf3b}, + {0x95399636, 0xffffd848ffffdf3c}, + {0x95399637, 0xffffd848ffffdf3d}, + {0x95399638, 0xffffd848ffffdf3e}, + {0x95399639, 0xffffd848ffffdf3f}, + {0x95399730, 0xffffd848ffffdf40}, + {0x95399731, 0xffffd848ffffdf41}, + {0x95399732, 0xffffd848ffffdf42}, + {0x95399733, 0xffffd848ffffdf43}, + {0x95399734, 0xffffd848ffffdf44}, + {0x95399735, 0xffffd848ffffdf45}, + {0x95399736, 0xffffd848ffffdf46}, + {0x95399737, 0xffffd848ffffdf47}, + {0x95399738, 0xffffd848ffffdf48}, + {0x95399739, 0xffffd848ffffdf49}, + {0x95399830, 0xffffd848ffffdf4a}, + {0x95399831, 0xffffd848ffffdf4b}, + {0x95399832, 0xffffd848ffffdf4c}, + {0x95399833, 0xffffd848ffffdf4d}, + {0x95399834, 0xffffd848ffffdf4e}, + {0x95399835, 0xffffd848ffffdf4f}, + {0x95399836, 0xffffd848ffffdf50}, + {0x95399837, 0xffffd848ffffdf51}, + {0x95399838, 0xffffd848ffffdf52}, + {0x95399839, 0xffffd848ffffdf53}, + {0x95399930, 0xffffd848ffffdf54}, + {0x95399931, 0xffffd848ffffdf55}, + {0x95399932, 0xffffd848ffffdf56}, + {0x95399933, 0xffffd848ffffdf57}, + {0x95399934, 0xffffd848ffffdf58}, + {0x95399935, 0xffffd848ffffdf59}, + {0x95399936, 0xffffd848ffffdf5a}, + {0x95399937, 0xffffd848ffffdf5b}, + {0x95399938, 0xffffd848ffffdf5c}, + {0x95399939, 0xffffd848ffffdf5d}, + {0x95399a30, 0xffffd848ffffdf5e}, + {0x95399a31, 0xffffd848ffffdf5f}, + {0x95399a32, 0xffffd848ffffdf60}, + {0x95399a33, 0xffffd848ffffdf61}, + {0x95399a34, 0xffffd848ffffdf62}, + {0x95399a35, 0xffffd848ffffdf63}, + {0x95399a36, 0xffffd848ffffdf64}, + {0x95399a37, 0xffffd848ffffdf65}, + {0x95399a38, 0xffffd848ffffdf66}, + {0x95399a39, 0xffffd848ffffdf67}, + {0x95399b30, 0xffffd848ffffdf68}, + {0x95399b31, 0xffffd848ffffdf69}, + {0x95399b32, 0xffffd848ffffdf6a}, + {0x95399b33, 0xffffd848ffffdf6b}, + {0x95399b34, 0xffffd848ffffdf6c}, + {0x95399b35, 0xffffd848ffffdf6d}, + {0x95399b36, 0xffffd848ffffdf6e}, + {0x95399b37, 0xffffd848ffffdf6f}, + {0x95399b38, 0xffffd848ffffdf70}, + {0x95399b39, 0xffffd848ffffdf71}, + {0x95399c30, 0xffffd848ffffdf72}, + {0x95399c31, 0xffffd848ffffdf73}, + {0x95399c32, 0xffffd848ffffdf74}, + {0x95399c33, 0xffffd848ffffdf75}, + {0x95399c34, 0xffffd848ffffdf76}, + {0x95399c35, 0xffffd848ffffdf77}, + {0x95399c36, 0xffffd848ffffdf78}, + {0x95399c37, 0xffffd848ffffdf79}, + {0x95399c38, 0xffffd848ffffdf7a}, + {0x95399c39, 0xffffd848ffffdf7b}, + {0x95399d30, 0xffffd848ffffdf7c}, + {0x95399d31, 0xffffd848ffffdf7d}, + {0x95399d32, 0xffffd848ffffdf7e}, + {0x95399d33, 0xffffd848ffffdf7f}, + {0x95399d34, 0xffffd848ffffdf80}, + {0x95399d35, 0xffffd848ffffdf81}, + {0x95399d36, 0xffffd848ffffdf82}, + {0x95399d37, 0xffffd848ffffdf83}, + {0x95399d38, 0xffffd848ffffdf84}, + {0x95399d39, 0xffffd848ffffdf85}, + {0x95399e30, 0xffffd848ffffdf86}, + {0x95399e31, 0xffffd848ffffdf87}, + {0x95399e32, 0xffffd848ffffdf88}, + {0x95399e33, 0xffffd848ffffdf89}, + {0x95399e34, 0xffffd848ffffdf8a}, + {0x95399e35, 0xffffd848ffffdf8b}, + {0x95399e36, 0xffffd848ffffdf8c}, + {0x95399e37, 0xffffd848ffffdf8d}, + {0x95399e38, 0xffffd848ffffdf8e}, + {0x95399e39, 0xffffd848ffffdf8f}, + {0x95399f30, 0xffffd848ffffdf90}, + {0x95399f31, 0xffffd848ffffdf91}, + {0x95399f32, 0xffffd848ffffdf92}, + {0x95399f33, 0xffffd848ffffdf93}, + {0x95399f34, 0xffffd848ffffdf94}, + {0x95399f35, 0xffffd848ffffdf95}, + {0x95399f36, 0xffffd848ffffdf96}, + {0x95399f37, 0xffffd848ffffdf97}, + {0x95399f38, 0xffffd848ffffdf98}, + {0x95399f39, 0xffffd848ffffdf99}, + {0x9539a030, 0xffffd848ffffdf9a}, + {0x9539a031, 0xffffd848ffffdf9b}, + {0x9539a032, 0xffffd848ffffdf9c}, + {0x9539a033, 0xffffd848ffffdf9d}, + {0x9539a034, 0xffffd848ffffdf9e}, + {0x9539a035, 0xffffd848ffffdf9f}, + {0x9539a036, 0xffffd848ffffdfa0}, + {0x9539a037, 0xffffd848ffffdfa1}, + {0x9539a038, 0xffffd848ffffdfa2}, + {0x9539a039, 0xffffd848ffffdfa3}, + {0x9539a130, 0xffffd848ffffdfa4}, + {0x9539a131, 0xffffd848ffffdfa5}, + {0x9539a132, 0xffffd848ffffdfa6}, + {0x9539a133, 0xffffd848ffffdfa7}, + {0x9539a134, 0xffffd848ffffdfa8}, + {0x9539a135, 0xffffd848ffffdfa9}, + {0x9539a136, 0xffffd848ffffdfaa}, + {0x9539a137, 0xffffd848ffffdfab}, + {0x9539a138, 0xffffd848ffffdfac}, + {0x9539a139, 0xffffd848ffffdfad}, + {0x9539a230, 0xffffd848ffffdfae}, + {0x9539a231, 0xffffd848ffffdfaf}, + {0x9539a232, 0xffffd848ffffdfb0}, + {0x9539a233, 0xffffd848ffffdfb1}, + {0x9539a234, 0xffffd848ffffdfb2}, + {0x9539a235, 0xffffd848ffffdfb3}, + {0x9539a236, 0xffffd848ffffdfb4}, + {0x9539a237, 0xffffd848ffffdfb5}, + {0x9539a238, 0xffffd848ffffdfb6}, + {0x9539a239, 0xffffd848ffffdfb7}, + {0x9539a330, 0xffffd848ffffdfb8}, + {0x9539a331, 0xffffd848ffffdfb9}, + {0x9539a332, 0xffffd848ffffdfba}, + {0x9539a333, 0xffffd848ffffdfbb}, + {0x9539a334, 0xffffd848ffffdfbc}, + {0x9539a335, 0xffffd848ffffdfbd}, + {0x9539a336, 0xffffd848ffffdfbe}, + {0x9539a337, 0xffffd848ffffdfbf}, + {0x9539a338, 0xffffd848ffffdfc0}, + {0x9539a339, 0xffffd848ffffdfc1}, + {0x9539a430, 0xffffd848ffffdfc2}, + {0x9539a431, 0xffffd848ffffdfc3}, + {0x9539a432, 0xffffd848ffffdfc4}, + {0x9539a433, 0xffffd848ffffdfc5}, + {0x9539a434, 0xffffd848ffffdfc6}, + {0x9539a435, 0xffffd848ffffdfc7}, + {0x9539a436, 0xffffd848ffffdfc8}, + {0x9539a437, 0xffffd848ffffdfc9}, + {0x9539a438, 0xffffd848ffffdfca}, + {0x9539a439, 0xffffd848ffffdfcb}, + {0x9539a530, 0xffffd848ffffdfcc}, + {0x9539a531, 0xffffd848ffffdfcd}, + {0x9539a532, 0xffffd848ffffdfce}, + {0x9539a533, 0xffffd848ffffdfcf}, + {0x9539a534, 0xffffd848ffffdfd0}, + {0x9539a535, 0xffffd848ffffdfd1}, + {0x9539a536, 0xffffd848ffffdfd2}, + {0x9539a537, 0xffffd848ffffdfd3}, + {0x9539a538, 0xffffd848ffffdfd4}, + {0x9539a539, 0xffffd848ffffdfd5}, + {0x9539a630, 0xffffd848ffffdfd6}, + {0x9539a631, 0xffffd848ffffdfd7}, + {0x9539a632, 0xffffd848ffffdfd8}, + {0x9539a633, 0xffffd848ffffdfd9}, + {0x9539a634, 0xffffd848ffffdfda}, + {0x9539a635, 0xffffd848ffffdfdb}, + {0x9539a636, 0xffffd848ffffdfdc}, + {0x9539a637, 0xffffd848ffffdfdd}, + {0x9539a638, 0xffffd848ffffdfde}, + {0x9539a639, 0xffffd848ffffdfdf}, + {0x9539a730, 0xffffd848ffffdfe0}, + {0x9539a731, 0xffffd848ffffdfe1}, + {0x9539a732, 0xffffd848ffffdfe2}, + {0x9539a733, 0xffffd848ffffdfe3}, + {0x9539a734, 0xffffd848ffffdfe4}, + {0x9539a735, 0xffffd848ffffdfe5}, + {0x9539a736, 0xffffd848ffffdfe6}, + {0x9539a737, 0xffffd848ffffdfe7}, + {0x9539a738, 0xffffd848ffffdfe8}, + {0x9539a739, 0xffffd848ffffdfe9}, + {0x9539a830, 0xffffd848ffffdfea}, + {0x9539a831, 0xffffd848ffffdfeb}, + {0x9539a832, 0xffffd848ffffdfec}, + {0x9539a833, 0xffffd848ffffdfed}, + {0x9539a834, 0xffffd848ffffdfee}, + {0x9539a835, 0xffffd848ffffdfef}, + {0x9539a836, 0xffffd848ffffdff0}, + {0x9539a837, 0xffffd848ffffdff1}, + {0x9539a838, 0xffffd848ffffdff2}, + {0x9539a839, 0xffffd848ffffdff3}, + {0x9539a930, 0xffffd848ffffdff4}, + {0x9539a931, 0xffffd848ffffdff5}, + {0x9539a932, 0xffffd848ffffdff6}, + {0x9539a933, 0xffffd848ffffdff7}, + {0x9539a934, 0xffffd848ffffdff8}, + {0x9539a935, 0xffffd848ffffdff9}, + {0x9539a936, 0xffffd848ffffdffa}, + {0x9539a937, 0xffffd848ffffdffb}, + {0x9539a938, 0xffffd848ffffdffc}, + {0x9539a939, 0xffffd848ffffdffd}, + {0x9539aa30, 0xffffd848ffffdffe}, + {0x9539aa31, 0xffffd848ffffdfff}, + {0x9539aa32, 0xffffd849ffffdc00}, + {0x9539aa33, 0xffffd849ffffdc01}, + {0x9539aa34, 0xffffd849ffffdc02}, + {0x9539aa35, 0xffffd849ffffdc03}, + {0x9539aa36, 0xffffd849ffffdc04}, + {0x9539aa37, 0xffffd849ffffdc05}, + {0x9539aa38, 0xffffd849ffffdc06}, + {0x9539aa39, 0xffffd849ffffdc07}, + {0x9539ab30, 0xffffd849ffffdc08}, + {0x9539ab31, 0xffffd849ffffdc09}, + {0x9539ab32, 0xffffd849ffffdc0a}, + {0x9539ab33, 0xffffd849ffffdc0b}, + {0x9539ab34, 0xffffd849ffffdc0c}, + {0x9539ab35, 0xffffd849ffffdc0d}, + {0x9539ab36, 0xffffd849ffffdc0e}, + {0x9539ab37, 0xffffd849ffffdc0f}, + {0x9539ab38, 0xffffd849ffffdc10}, + {0x9539ab39, 0xffffd849ffffdc11}, + {0x9539ac30, 0xffffd849ffffdc12}, + {0x9539ac31, 0xffffd849ffffdc13}, + {0x9539ac32, 0xffffd849ffffdc14}, + {0x9539ac33, 0xffffd849ffffdc15}, + {0x9539ac34, 0xffffd849ffffdc16}, + {0x9539ac35, 0xffffd849ffffdc17}, + {0x9539ac36, 0xffffd849ffffdc18}, + {0x9539ac37, 0xffffd849ffffdc19}, + {0x9539ac38, 0xffffd849ffffdc1a}, + {0x9539ac39, 0xffffd849ffffdc1b}, + {0x9539ad30, 0xffffd849ffffdc1c}, + {0x9539ad31, 0xffffd849ffffdc1d}, + {0x9539ad32, 0xffffd849ffffdc1e}, + {0x9539ad33, 0xffffd849ffffdc1f}, + {0x9539ad34, 0xffffd849ffffdc20}, + {0x9539ad35, 0xffffd849ffffdc21}, + {0x9539ad36, 0xffffd849ffffdc22}, + {0x9539ad37, 0xffffd849ffffdc23}, + {0x9539ad38, 0xffffd849ffffdc24}, + {0x9539ad39, 0xffffd849ffffdc25}, + {0x9539ae30, 0xffffd849ffffdc26}, + {0x9539ae31, 0xffffd849ffffdc27}, + {0x9539ae32, 0xffffd849ffffdc28}, + {0x9539ae33, 0xffffd849ffffdc29}, + {0x9539ae34, 0xffffd849ffffdc2a}, + {0x9539ae35, 0xffffd849ffffdc2b}, + {0x9539ae36, 0xffffd849ffffdc2c}, + {0x9539ae37, 0xffffd849ffffdc2d}, + {0x9539ae38, 0xffffd849ffffdc2e}, + {0x9539ae39, 0xffffd849ffffdc2f}, + {0x9539af30, 0xffffd849ffffdc30}, + {0x9539af31, 0xffffd849ffffdc31}, + {0x9539af32, 0xffffd849ffffdc32}, + {0x9539af33, 0xffffd849ffffdc33}, + {0x9539af34, 0xffffd849ffffdc34}, + {0x9539af35, 0xffffd849ffffdc35}, + {0x9539af36, 0xffffd849ffffdc36}, + {0x9539af37, 0xffffd849ffffdc37}, + {0x9539af38, 0xffffd849ffffdc38}, + {0x9539af39, 0xffffd849ffffdc39}, + {0x9539b030, 0xffffd849ffffdc3a}, + {0x9539b031, 0xffffd849ffffdc3b}, + {0x9539b032, 0xffffd849ffffdc3c}, + {0x9539b033, 0xffffd849ffffdc3d}, + {0x9539b034, 0xffffd849ffffdc3e}, + {0x9539b035, 0xffffd849ffffdc3f}, + {0x9539b036, 0xffffd849ffffdc40}, + {0x9539b037, 0xffffd849ffffdc41}, + {0x9539b038, 0xffffd849ffffdc42}, + {0x9539b039, 0xffffd849ffffdc43}, + {0x9539b130, 0xffffd849ffffdc44}, + {0x9539b131, 0xffffd849ffffdc45}, + {0x9539b132, 0xffffd849ffffdc46}, + {0x9539b133, 0xffffd849ffffdc47}, + {0x9539b134, 0xffffd849ffffdc48}, + {0x9539b135, 0xffffd849ffffdc49}, + {0x9539b136, 0xffffd849ffffdc4a}, + {0x9539b137, 0xffffd849ffffdc4b}, + {0x9539b138, 0xffffd849ffffdc4c}, + {0x9539b139, 0xffffd849ffffdc4d}, + {0x9539b230, 0xffffd849ffffdc4e}, + {0x9539b231, 0xffffd849ffffdc4f}, + {0x9539b232, 0xffffd849ffffdc50}, + {0x9539b233, 0xffffd849ffffdc51}, + {0x9539b234, 0xffffd849ffffdc52}, + {0x9539b235, 0xffffd849ffffdc53}, + {0x9539b236, 0xffffd849ffffdc54}, + {0x9539b237, 0xffffd849ffffdc55}, + {0x9539b238, 0xffffd849ffffdc56}, + {0x9539b239, 0xffffd849ffffdc57}, + {0x9539b330, 0xffffd849ffffdc58}, + {0x9539b331, 0xffffd849ffffdc59}, + {0x9539b332, 0xffffd849ffffdc5a}, + {0x9539b333, 0xffffd849ffffdc5b}, + {0x9539b334, 0xffffd849ffffdc5c}, + {0x9539b335, 0xffffd849ffffdc5d}, + {0x9539b336, 0xffffd849ffffdc5e}, + {0x9539b337, 0xffffd849ffffdc5f}, + {0x9539b338, 0xffffd849ffffdc60}, + {0x9539b339, 0xffffd849ffffdc61}, + {0x9539b430, 0xffffd849ffffdc62}, + {0x9539b431, 0xffffd849ffffdc63}, + {0x9539b432, 0xffffd849ffffdc64}, + {0x9539b433, 0xffffd849ffffdc65}, + {0x9539b434, 0xffffd849ffffdc66}, + {0x9539b435, 0xffffd849ffffdc67}, + {0x9539b436, 0xffffd849ffffdc68}, + {0x9539b437, 0xffffd849ffffdc69}, + {0x9539b438, 0xffffd849ffffdc6a}, + {0x9539b439, 0xffffd849ffffdc6b}, + {0x9539b530, 0xffffd849ffffdc6c}, + {0x9539b531, 0xffffd849ffffdc6d}, + {0x9539b532, 0xffffd849ffffdc6e}, + {0x9539b533, 0xffffd849ffffdc6f}, + {0x9539b534, 0xffffd849ffffdc70}, + {0x9539b535, 0xffffd849ffffdc71}, + {0x9539b536, 0xffffd849ffffdc72}, + {0x9539b537, 0xffffd849ffffdc73}, + {0x9539b538, 0xffffd849ffffdc74}, + {0x9539b539, 0xffffd849ffffdc75}, + {0x9539b630, 0xffffd849ffffdc76}, + {0x9539b631, 0xffffd849ffffdc77}, + {0x9539b632, 0xffffd849ffffdc78}, + {0x9539b633, 0xffffd849ffffdc79}, + {0x9539b634, 0xffffd849ffffdc7a}, + {0x9539b635, 0xffffd849ffffdc7b}, + {0x9539b636, 0xffffd849ffffdc7c}, + {0x9539b637, 0xffffd849ffffdc7d}, + {0x9539b638, 0xffffd849ffffdc7e}, + {0x9539b639, 0xffffd849ffffdc7f}, + {0x9539b730, 0xffffd849ffffdc80}, + {0x9539b731, 0xffffd849ffffdc81}, + {0x9539b732, 0xffffd849ffffdc82}, + {0x9539b733, 0xffffd849ffffdc83}, + {0x9539b734, 0xffffd849ffffdc84}, + {0x9539b735, 0xffffd849ffffdc85}, + {0x9539b736, 0xffffd849ffffdc86}, + {0x9539b737, 0xffffd849ffffdc87}, + {0x9539b738, 0xffffd849ffffdc88}, + {0x9539b739, 0xffffd849ffffdc89}, + {0x9539b830, 0xffffd849ffffdc8a}, + {0x9539b831, 0xffffd849ffffdc8b}, + {0x9539b832, 0xffffd849ffffdc8c}, + {0x9539b833, 0xffffd849ffffdc8d}, + {0x9539b834, 0xffffd849ffffdc8e}, + {0x9539b835, 0xffffd849ffffdc8f}, + {0x9539b836, 0xffffd849ffffdc90}, + {0x9539b837, 0xffffd849ffffdc91}, + {0x9539b838, 0xffffd849ffffdc92}, + {0x9539b839, 0xffffd849ffffdc93}, + {0x9539b930, 0xffffd849ffffdc94}, + {0x9539b931, 0xffffd849ffffdc95}, + {0x9539b932, 0xffffd849ffffdc96}, + {0x9539b933, 0xffffd849ffffdc97}, + {0x9539b934, 0xffffd849ffffdc98}, + {0x9539b935, 0xffffd849ffffdc99}, + {0x9539b936, 0xffffd849ffffdc9a}, + {0x9539b937, 0xffffd849ffffdc9b}, + {0x9539b938, 0xffffd849ffffdc9c}, + {0x9539b939, 0xffffd849ffffdc9d}, + {0x9539ba30, 0xffffd849ffffdc9e}, + {0x9539ba31, 0xffffd849ffffdc9f}, + {0x9539ba32, 0xffffd849ffffdca0}, + {0x9539ba33, 0xffffd849ffffdca1}, + {0x9539ba34, 0xffffd849ffffdca2}, + {0x9539ba35, 0xffffd849ffffdca3}, + {0x9539ba36, 0xffffd849ffffdca4}, + {0x9539ba37, 0xffffd849ffffdca5}, + {0x9539ba38, 0xffffd849ffffdca6}, + {0x9539ba39, 0xffffd849ffffdca7}, + {0x9539bb30, 0xffffd849ffffdca8}, + {0x9539bb31, 0xffffd849ffffdca9}, + {0x9539bb32, 0xffffd849ffffdcaa}, + {0x9539bb33, 0xffffd849ffffdcab}, + {0x9539bb34, 0xffffd849ffffdcac}, + {0x9539bb35, 0xffffd849ffffdcad}, + {0x9539bb36, 0xffffd849ffffdcae}, + {0x9539bb37, 0xffffd849ffffdcaf}, + {0x9539bb38, 0xffffd849ffffdcb0}, + {0x9539bb39, 0xffffd849ffffdcb1}, + {0x9539bc30, 0xffffd849ffffdcb2}, + {0x9539bc31, 0xffffd849ffffdcb3}, + {0x9539bc32, 0xffffd849ffffdcb4}, + {0x9539bc33, 0xffffd849ffffdcb5}, + {0x9539bc34, 0xffffd849ffffdcb6}, + {0x9539bc35, 0xffffd849ffffdcb7}, + {0x9539bc36, 0xffffd849ffffdcb8}, + {0x9539bc37, 0xffffd849ffffdcb9}, + {0x9539bc38, 0xffffd849ffffdcba}, + {0x9539bc39, 0xffffd849ffffdcbb}, + {0x9539bd30, 0xffffd849ffffdcbc}, + {0x9539bd31, 0xffffd849ffffdcbd}, + {0x9539bd32, 0xffffd849ffffdcbe}, + {0x9539bd33, 0xffffd849ffffdcbf}, + {0x9539bd34, 0xffffd849ffffdcc0}, + {0x9539bd35, 0xffffd849ffffdcc1}, + {0x9539bd36, 0xffffd849ffffdcc2}, + {0x9539bd37, 0xffffd849ffffdcc3}, + {0x9539bd38, 0xffffd849ffffdcc4}, + {0x9539bd39, 0xffffd849ffffdcc5}, + {0x9539be30, 0xffffd849ffffdcc6}, + {0x9539be31, 0xffffd849ffffdcc7}, + {0x9539be32, 0xffffd849ffffdcc8}, + {0x9539be33, 0xffffd849ffffdcc9}, + {0x9539be34, 0xffffd849ffffdcca}, + {0x9539be35, 0xffffd849ffffdccb}, + {0x9539be36, 0xffffd849ffffdccc}, + {0x9539be37, 0xffffd849ffffdccd}, + {0x9539be38, 0xffffd849ffffdcce}, + {0x9539be39, 0xffffd849ffffdccf}, + {0x9539bf30, 0xffffd849ffffdcd0}, + {0x9539bf31, 0xffffd849ffffdcd1}, + {0x9539bf32, 0xffffd849ffffdcd2}, + {0x9539bf33, 0xffffd849ffffdcd3}, + {0x9539bf34, 0xffffd849ffffdcd4}, + {0x9539bf35, 0xffffd849ffffdcd5}, + {0x9539bf36, 0xffffd849ffffdcd6}, + {0x9539bf37, 0xffffd849ffffdcd7}, + {0x9539bf38, 0xffffd849ffffdcd8}, + {0x9539bf39, 0xffffd849ffffdcd9}, + {0x9539c030, 0xffffd849ffffdcda}, + {0x9539c031, 0xffffd849ffffdcdb}, + {0x9539c032, 0xffffd849ffffdcdc}, + {0x9539c033, 0xffffd849ffffdcdd}, + {0x9539c034, 0xffffd849ffffdcde}, + {0x9539c035, 0xffffd849ffffdcdf}, + {0x9539c036, 0xffffd849ffffdce0}, + {0x9539c037, 0xffffd849ffffdce1}, + {0x9539c038, 0xffffd849ffffdce2}, + {0x9539c039, 0xffffd849ffffdce3}, + {0x9539c130, 0xffffd849ffffdce4}, + {0x9539c131, 0xffffd849ffffdce5}, + {0x9539c132, 0xffffd849ffffdce6}, + {0x9539c133, 0xffffd849ffffdce7}, + {0x9539c134, 0xffffd849ffffdce8}, + {0x9539c135, 0xffffd849ffffdce9}, + {0x9539c136, 0xffffd849ffffdcea}, + {0x9539c137, 0xffffd849ffffdceb}, + {0x9539c138, 0xffffd849ffffdcec}, + {0x9539c139, 0xffffd849ffffdced}, + {0x9539c230, 0xffffd849ffffdcee}, + {0x9539c231, 0xffffd849ffffdcef}, + {0x9539c232, 0xffffd849ffffdcf0}, + {0x9539c233, 0xffffd849ffffdcf1}, + {0x9539c234, 0xffffd849ffffdcf2}, + {0x9539c235, 0xffffd849ffffdcf3}, + {0x9539c236, 0xffffd849ffffdcf4}, + {0x9539c237, 0xffffd849ffffdcf5}, + {0x9539c238, 0xffffd849ffffdcf6}, + {0x9539c239, 0xffffd849ffffdcf7}, + {0x9539c330, 0xffffd849ffffdcf8}, + {0x9539c331, 0xffffd849ffffdcf9}, + {0x9539c332, 0xffffd849ffffdcfa}, + {0x9539c333, 0xffffd849ffffdcfb}, + {0x9539c334, 0xffffd849ffffdcfc}, + {0x9539c335, 0xffffd849ffffdcfd}, + {0x9539c336, 0xffffd849ffffdcfe}, + {0x9539c337, 0xffffd849ffffdcff}, + {0x9539c338, 0xffffd849ffffdd00}, + {0x9539c339, 0xffffd849ffffdd01}, + {0x9539c430, 0xffffd849ffffdd02}, + {0x9539c431, 0xffffd849ffffdd03}, + {0x9539c432, 0xffffd849ffffdd04}, + {0x9539c433, 0xffffd849ffffdd05}, + {0x9539c434, 0xffffd849ffffdd06}, + {0x9539c435, 0xffffd849ffffdd07}, + {0x9539c436, 0xffffd849ffffdd08}, + {0x9539c437, 0xffffd849ffffdd09}, + {0x9539c438, 0xffffd849ffffdd0a}, + {0x9539c439, 0xffffd849ffffdd0b}, + {0x9539c530, 0xffffd849ffffdd0c}, + {0x9539c531, 0xffffd849ffffdd0d}, + {0x9539c532, 0xffffd849ffffdd0e}, + {0x9539c533, 0xffffd849ffffdd0f}, + {0x9539c534, 0xffffd849ffffdd10}, + {0x9539c535, 0xffffd849ffffdd11}, + {0x9539c536, 0xffffd849ffffdd12}, + {0x9539c537, 0xffffd849ffffdd13}, + {0x9539c538, 0xffffd849ffffdd14}, + {0x9539c539, 0xffffd849ffffdd15}, + {0x9539c630, 0xffffd849ffffdd16}, + {0x9539c631, 0xffffd849ffffdd17}, + {0x9539c632, 0xffffd849ffffdd18}, + {0x9539c633, 0xffffd849ffffdd19}, + {0x9539c634, 0xffffd849ffffdd1a}, + {0x9539c635, 0xffffd849ffffdd1b}, + {0x9539c636, 0xffffd849ffffdd1c}, + {0x9539c637, 0xffffd849ffffdd1d}, + {0x9539c638, 0xffffd849ffffdd1e}, + {0x9539c639, 0xffffd849ffffdd1f}, + {0x9539c730, 0xffffd849ffffdd20}, + {0x9539c731, 0xffffd849ffffdd21}, + {0x9539c732, 0xffffd849ffffdd22}, + {0x9539c733, 0xffffd849ffffdd23}, + {0x9539c734, 0xffffd849ffffdd24}, + {0x9539c735, 0xffffd849ffffdd25}, + {0x9539c736, 0xffffd849ffffdd26}, + {0x9539c737, 0xffffd849ffffdd27}, + {0x9539c738, 0xffffd849ffffdd28}, + {0x9539c739, 0xffffd849ffffdd29}, + {0x9539c830, 0xffffd849ffffdd2a}, + {0x9539c831, 0xffffd849ffffdd2b}, + {0x9539c832, 0xffffd849ffffdd2c}, + {0x9539c833, 0xffffd849ffffdd2d}, + {0x9539c834, 0xffffd849ffffdd2e}, + {0x9539c835, 0xffffd849ffffdd2f}, + {0x9539c836, 0xffffd849ffffdd30}, + {0x9539c837, 0xffffd849ffffdd31}, + {0x9539c838, 0xffffd849ffffdd32}, + {0x9539c839, 0xffffd849ffffdd33}, + {0x9539c930, 0xffffd849ffffdd34}, + {0x9539c931, 0xffffd849ffffdd35}, + {0x9539c932, 0xffffd849ffffdd36}, + {0x9539c933, 0xffffd849ffffdd37}, + {0x9539c934, 0xffffd849ffffdd38}, + {0x9539c935, 0xffffd849ffffdd39}, + {0x9539c936, 0xffffd849ffffdd3a}, + {0x9539c937, 0xffffd849ffffdd3b}, + {0x9539c938, 0xffffd849ffffdd3c}, + {0x9539c939, 0xffffd849ffffdd3d}, + {0x9539ca30, 0xffffd849ffffdd3e}, + {0x9539ca31, 0xffffd849ffffdd3f}, + {0x9539ca32, 0xffffd849ffffdd40}, + {0x9539ca33, 0xffffd849ffffdd41}, + {0x9539ca34, 0xffffd849ffffdd42}, + {0x9539ca35, 0xffffd849ffffdd43}, + {0x9539ca36, 0xffffd849ffffdd44}, + {0x9539ca37, 0xffffd849ffffdd45}, + {0x9539ca38, 0xffffd849ffffdd46}, + {0x9539ca39, 0xffffd849ffffdd47}, + {0x9539cb30, 0xffffd849ffffdd48}, + {0x9539cb31, 0xffffd849ffffdd49}, + {0x9539cb32, 0xffffd849ffffdd4a}, + {0x9539cb33, 0xffffd849ffffdd4b}, + {0x9539cb34, 0xffffd849ffffdd4c}, + {0x9539cb35, 0xffffd849ffffdd4d}, + {0x9539cb36, 0xffffd849ffffdd4e}, + {0x9539cb37, 0xffffd849ffffdd4f}, + {0x9539cb38, 0xffffd849ffffdd50}, + {0x9539cb39, 0xffffd849ffffdd51}, + {0x9539cc30, 0xffffd849ffffdd52}, + {0x9539cc31, 0xffffd849ffffdd53}, + {0x9539cc32, 0xffffd849ffffdd54}, + {0x9539cc33, 0xffffd849ffffdd55}, + {0x9539cc34, 0xffffd849ffffdd56}, + {0x9539cc35, 0xffffd849ffffdd57}, + {0x9539cc36, 0xffffd849ffffdd58}, + {0x9539cc37, 0xffffd849ffffdd59}, + {0x9539cc38, 0xffffd849ffffdd5a}, + {0x9539cc39, 0xffffd849ffffdd5b}, + {0x9539cd30, 0xffffd849ffffdd5c}, + {0x9539cd31, 0xffffd849ffffdd5d}, + {0x9539cd32, 0xffffd849ffffdd5e}, + {0x9539cd33, 0xffffd849ffffdd5f}, + {0x9539cd34, 0xffffd849ffffdd60}, + {0x9539cd35, 0xffffd849ffffdd61}, + {0x9539cd36, 0xffffd849ffffdd62}, + {0x9539cd37, 0xffffd849ffffdd63}, + {0x9539cd38, 0xffffd849ffffdd64}, + {0x9539cd39, 0xffffd849ffffdd65}, + {0x9539ce30, 0xffffd849ffffdd66}, + {0x9539ce31, 0xffffd849ffffdd67}, + {0x9539ce32, 0xffffd849ffffdd68}, + {0x9539ce33, 0xffffd849ffffdd69}, + {0x9539ce34, 0xffffd849ffffdd6a}, + {0x9539ce35, 0xffffd849ffffdd6b}, + {0x9539ce36, 0xffffd849ffffdd6c}, + {0x9539ce37, 0xffffd849ffffdd6d}, + {0x9539ce38, 0xffffd849ffffdd6e}, + {0x9539ce39, 0xffffd849ffffdd6f}, + {0x9539cf30, 0xffffd849ffffdd70}, + {0x9539cf31, 0xffffd849ffffdd71}, + {0x9539cf32, 0xffffd849ffffdd72}, + {0x9539cf33, 0xffffd849ffffdd73}, + {0x9539cf34, 0xffffd849ffffdd74}, + {0x9539cf35, 0xffffd849ffffdd75}, + {0x9539cf36, 0xffffd849ffffdd76}, + {0x9539cf37, 0xffffd849ffffdd77}, + {0x9539cf38, 0xffffd849ffffdd78}, + {0x9539cf39, 0xffffd849ffffdd79}, + {0x9539d030, 0xffffd849ffffdd7a}, + {0x9539d031, 0xffffd849ffffdd7b}, + {0x9539d032, 0xffffd849ffffdd7c}, + {0x9539d033, 0xffffd849ffffdd7d}, + {0x9539d034, 0xffffd849ffffdd7e}, + {0x9539d035, 0xffffd849ffffdd7f}, + {0x9539d036, 0xffffd849ffffdd80}, + {0x9539d037, 0xffffd849ffffdd81}, + {0x9539d038, 0xffffd849ffffdd82}, + {0x9539d039, 0xffffd849ffffdd83}, + {0x9539d130, 0xffffd849ffffdd84}, + {0x9539d131, 0xffffd849ffffdd85}, + {0x9539d132, 0xffffd849ffffdd86}, + {0x9539d133, 0xffffd849ffffdd87}, + {0x9539d134, 0xffffd849ffffdd88}, + {0x9539d135, 0xffffd849ffffdd89}, + {0x9539d136, 0xffffd849ffffdd8a}, + {0x9539d137, 0xffffd849ffffdd8b}, + {0x9539d138, 0xffffd849ffffdd8c}, + {0x9539d139, 0xffffd849ffffdd8d}, + {0x9539d230, 0xffffd849ffffdd8e}, + {0x9539d231, 0xffffd849ffffdd8f}, + {0x9539d232, 0xffffd849ffffdd90}, + {0x9539d233, 0xffffd849ffffdd91}, + {0x9539d234, 0xffffd849ffffdd92}, + {0x9539d235, 0xffffd849ffffdd93}, + {0x9539d236, 0xffffd849ffffdd94}, + {0x9539d237, 0xffffd849ffffdd95}, + {0x9539d238, 0xffffd849ffffdd96}, + {0x9539d239, 0xffffd849ffffdd97}, + {0x9539d330, 0xffffd849ffffdd98}, + {0x9539d331, 0xffffd849ffffdd99}, + {0x9539d332, 0xffffd849ffffdd9a}, + {0x9539d333, 0xffffd849ffffdd9b}, + {0x9539d334, 0xffffd849ffffdd9c}, + {0x9539d335, 0xffffd849ffffdd9d}, + {0x9539d336, 0xffffd849ffffdd9e}, + {0x9539d337, 0xffffd849ffffdd9f}, + {0x9539d338, 0xffffd849ffffdda0}, + {0x9539d339, 0xffffd849ffffdda1}, + {0x9539d430, 0xffffd849ffffdda2}, + {0x9539d431, 0xffffd849ffffdda3}, + {0x9539d432, 0xffffd849ffffdda4}, + {0x9539d433, 0xffffd849ffffdda5}, + {0x9539d434, 0xffffd849ffffdda6}, + {0x9539d435, 0xffffd849ffffdda7}, + {0x9539d436, 0xffffd849ffffdda8}, + {0x9539d437, 0xffffd849ffffdda9}, + {0x9539d438, 0xffffd849ffffddaa}, + {0x9539d439, 0xffffd849ffffddab}, + {0x9539d530, 0xffffd849ffffddac}, + {0x9539d531, 0xffffd849ffffddad}, + {0x9539d532, 0xffffd849ffffddae}, + {0x9539d533, 0xffffd849ffffddaf}, + {0x9539d534, 0xffffd849ffffddb0}, + {0x9539d535, 0xffffd849ffffddb1}, + {0x9539d536, 0xffffd849ffffddb2}, + {0x9539d537, 0xffffd849ffffddb3}, + {0x9539d538, 0xffffd849ffffddb4}, + {0x9539d539, 0xffffd849ffffddb5}, + {0x9539d630, 0xffffd849ffffddb6}, + {0x9539d631, 0xffffd849ffffddb7}, + {0x9539d632, 0xffffd849ffffddb8}, + {0x9539d633, 0xffffd849ffffddb9}, + {0x9539d634, 0xffffd849ffffddba}, + {0x9539d635, 0xffffd849ffffddbb}, + {0x9539d636, 0xffffd849ffffddbc}, + {0x9539d637, 0xffffd849ffffddbd}, + {0x9539d638, 0xffffd849ffffddbe}, + {0x9539d639, 0xffffd849ffffddbf}, + {0x9539d730, 0xffffd849ffffddc0}, + {0x9539d731, 0xffffd849ffffddc1}, + {0x9539d732, 0xffffd849ffffddc2}, + {0x9539d733, 0xffffd849ffffddc3}, + {0x9539d734, 0xffffd849ffffddc4}, + {0x9539d735, 0xffffd849ffffddc5}, + {0x9539d736, 0xffffd849ffffddc6}, + {0x9539d737, 0xffffd849ffffddc7}, + {0x9539d738, 0xffffd849ffffddc8}, + {0x9539d739, 0xffffd849ffffddc9}, + {0x9539d830, 0xffffd849ffffddca}, + {0x9539d831, 0xffffd849ffffddcb}, + {0x9539d832, 0xffffd849ffffddcc}, + {0x9539d833, 0xffffd849ffffddcd}, + {0x9539d834, 0xffffd849ffffddce}, + {0x9539d835, 0xffffd849ffffddcf}, + {0x9539d836, 0xffffd849ffffddd0}, + {0x9539d837, 0xffffd849ffffddd1}, + {0x9539d838, 0xffffd849ffffddd2}, + {0x9539d839, 0xffffd849ffffddd3}, + {0x9539d930, 0xffffd849ffffddd4}, + {0x9539d931, 0xffffd849ffffddd5}, + {0x9539d932, 0xffffd849ffffddd6}, + {0x9539d933, 0xffffd849ffffddd7}, + {0x9539d934, 0xffffd849ffffddd8}, + {0x9539d935, 0xffffd849ffffddd9}, + {0x9539d936, 0xffffd849ffffddda}, + {0x9539d937, 0xffffd849ffffdddb}, + {0x9539d938, 0xffffd849ffffdddc}, + {0x9539d939, 0xffffd849ffffdddd}, + {0x9539da30, 0xffffd849ffffddde}, + {0x9539da31, 0xffffd849ffffdddf}, + {0x9539da32, 0xffffd849ffffdde0}, + {0x9539da33, 0xffffd849ffffdde1}, + {0x9539da34, 0xffffd849ffffdde2}, + {0x9539da35, 0xffffd849ffffdde3}, + {0x9539da36, 0xffffd849ffffdde4}, + {0x9539da37, 0xffffd849ffffdde5}, + {0x9539da38, 0xffffd849ffffdde6}, + {0x9539da39, 0xffffd849ffffdde7}, + {0x9539db30, 0xffffd849ffffdde8}, + {0x9539db31, 0xffffd849ffffdde9}, + {0x9539db32, 0xffffd849ffffddea}, + {0x9539db33, 0xffffd849ffffddeb}, + {0x9539db34, 0xffffd849ffffddec}, + {0x9539db35, 0xffffd849ffffdded}, + {0x9539db36, 0xffffd849ffffddee}, + {0x9539db37, 0xffffd849ffffddef}, + {0x9539db38, 0xffffd849ffffddf0}, + {0x9539db39, 0xffffd849ffffddf1}, + {0x9539dc30, 0xffffd849ffffddf2}, + {0x9539dc31, 0xffffd849ffffddf3}, + {0x9539dc32, 0xffffd849ffffddf4}, + {0x9539dc33, 0xffffd849ffffddf5}, + {0x9539dc34, 0xffffd849ffffddf6}, + {0x9539dc35, 0xffffd849ffffddf7}, + {0x9539dc36, 0xffffd849ffffddf8}, + {0x9539dc37, 0xffffd849ffffddf9}, + {0x9539dc38, 0xffffd849ffffddfa}, + {0x9539dc39, 0xffffd849ffffddfb}, + {0x9539dd30, 0xffffd849ffffddfc}, + {0x9539dd31, 0xffffd849ffffddfd}, + {0x9539dd32, 0xffffd849ffffddfe}, + {0x9539dd33, 0xffffd849ffffddff}, + {0x9539dd34, 0xffffd849ffffde00}, + {0x9539dd35, 0xffffd849ffffde01}, + {0x9539dd36, 0xffffd849ffffde02}, + {0x9539dd37, 0xffffd849ffffde03}, + {0x9539dd38, 0xffffd849ffffde04}, + {0x9539dd39, 0xffffd849ffffde05}, + {0x9539de30, 0xffffd849ffffde06}, + {0x9539de31, 0xffffd849ffffde07}, + {0x9539de32, 0xffffd849ffffde08}, + {0x9539de33, 0xffffd849ffffde09}, + {0x9539de34, 0xffffd849ffffde0a}, + {0x9539de35, 0xffffd849ffffde0b}, + {0x9539de36, 0xffffd849ffffde0c}, + {0x9539de37, 0xffffd849ffffde0d}, + {0x9539de38, 0xffffd849ffffde0e}, + {0x9539de39, 0xffffd849ffffde0f}, + {0x9539df30, 0xffffd849ffffde10}, + {0x9539df31, 0xffffd849ffffde11}, + {0x9539df32, 0xffffd849ffffde12}, + {0x9539df33, 0xffffd849ffffde13}, + {0x9539df34, 0xffffd849ffffde14}, + {0x9539df35, 0xffffd849ffffde15}, + {0x9539df36, 0xffffd849ffffde16}, + {0x9539df37, 0xffffd849ffffde17}, + {0x9539df38, 0xffffd849ffffde18}, + {0x9539df39, 0xffffd849ffffde19}, + {0x9539e030, 0xffffd849ffffde1a}, + {0x9539e031, 0xffffd849ffffde1b}, + {0x9539e032, 0xffffd849ffffde1c}, + {0x9539e033, 0xffffd849ffffde1d}, + {0x9539e034, 0xffffd849ffffde1e}, + {0x9539e035, 0xffffd849ffffde1f}, + {0x9539e036, 0xffffd849ffffde20}, + {0x9539e037, 0xffffd849ffffde21}, + {0x9539e038, 0xffffd849ffffde22}, + {0x9539e039, 0xffffd849ffffde23}, + {0x9539e130, 0xffffd849ffffde24}, + {0x9539e131, 0xffffd849ffffde25}, + {0x9539e132, 0xffffd849ffffde26}, + {0x9539e133, 0xffffd849ffffde27}, + {0x9539e134, 0xffffd849ffffde28}, + {0x9539e135, 0xffffd849ffffde29}, + {0x9539e136, 0xffffd849ffffde2a}, + {0x9539e137, 0xffffd849ffffde2b}, + {0x9539e138, 0xffffd849ffffde2c}, + {0x9539e139, 0xffffd849ffffde2d}, + {0x9539e230, 0xffffd849ffffde2e}, + {0x9539e231, 0xffffd849ffffde2f}, + {0x9539e232, 0xffffd849ffffde30}, + {0x9539e233, 0xffffd849ffffde31}, + {0x9539e234, 0xffffd849ffffde32}, + {0x9539e235, 0xffffd849ffffde33}, + {0x9539e236, 0xffffd849ffffde34}, + {0x9539e237, 0xffffd849ffffde35}, + {0x9539e238, 0xffffd849ffffde36}, + {0x9539e239, 0xffffd849ffffde37}, + {0x9539e330, 0xffffd849ffffde38}, + {0x9539e331, 0xffffd849ffffde39}, + {0x9539e332, 0xffffd849ffffde3a}, + {0x9539e333, 0xffffd849ffffde3b}, + {0x9539e334, 0xffffd849ffffde3c}, + {0x9539e335, 0xffffd849ffffde3d}, + {0x9539e336, 0xffffd849ffffde3e}, + {0x9539e337, 0xffffd849ffffde3f}, + {0x9539e338, 0xffffd849ffffde40}, + {0x9539e339, 0xffffd849ffffde41}, + {0x9539e430, 0xffffd849ffffde42}, + {0x9539e431, 0xffffd849ffffde43}, + {0x9539e432, 0xffffd849ffffde44}, + {0x9539e433, 0xffffd849ffffde45}, + {0x9539e434, 0xffffd849ffffde46}, + {0x9539e435, 0xffffd849ffffde47}, + {0x9539e436, 0xffffd849ffffde48}, + {0x9539e437, 0xffffd849ffffde49}, + {0x9539e438, 0xffffd849ffffde4a}, + {0x9539e439, 0xffffd849ffffde4b}, + {0x9539e530, 0xffffd849ffffde4c}, + {0x9539e531, 0xffffd849ffffde4d}, + {0x9539e532, 0xffffd849ffffde4e}, + {0x9539e533, 0xffffd849ffffde4f}, + {0x9539e534, 0xffffd849ffffde50}, + {0x9539e535, 0xffffd849ffffde51}, + {0x9539e536, 0xffffd849ffffde52}, + {0x9539e537, 0xffffd849ffffde53}, + {0x9539e538, 0xffffd849ffffde54}, + {0x9539e539, 0xffffd849ffffde55}, + {0x9539e630, 0xffffd849ffffde56}, + {0x9539e631, 0xffffd849ffffde57}, + {0x9539e632, 0xffffd849ffffde58}, + {0x9539e633, 0xffffd849ffffde59}, + {0x9539e634, 0xffffd849ffffde5a}, + {0x9539e635, 0xffffd849ffffde5b}, + {0x9539e636, 0xffffd849ffffde5c}, + {0x9539e637, 0xffffd849ffffde5d}, + {0x9539e638, 0xffffd849ffffde5e}, + {0x9539e639, 0xffffd849ffffde5f}, + {0x9539e730, 0xffffd849ffffde60}, + {0x9539e731, 0xffffd849ffffde61}, + {0x9539e732, 0xffffd849ffffde62}, + {0x9539e733, 0xffffd849ffffde63}, + {0x9539e734, 0xffffd849ffffde64}, + {0x9539e735, 0xffffd849ffffde65}, + {0x9539e736, 0xffffd849ffffde66}, + {0x9539e737, 0xffffd849ffffde67}, + {0x9539e738, 0xffffd849ffffde68}, + {0x9539e739, 0xffffd849ffffde69}, + {0x9539e830, 0xffffd849ffffde6a}, + {0x9539e831, 0xffffd849ffffde6b}, + {0x9539e832, 0xffffd849ffffde6c}, + {0x9539e833, 0xffffd849ffffde6d}, + {0x9539e834, 0xffffd849ffffde6e}, + {0x9539e835, 0xffffd849ffffde6f}, + {0x9539e836, 0xffffd849ffffde70}, + {0x9539e837, 0xffffd849ffffde71}, + {0x9539e838, 0xffffd849ffffde72}, + {0x9539e839, 0xffffd849ffffde73}, + {0x9539e930, 0xffffd849ffffde74}, + {0x9539e931, 0xffffd849ffffde75}, + {0x9539e932, 0xffffd849ffffde76}, + {0x9539e933, 0xffffd849ffffde77}, + {0x9539e934, 0xffffd849ffffde78}, + {0x9539e935, 0xffffd849ffffde79}, + {0x9539e936, 0xffffd849ffffde7a}, + {0x9539e937, 0xffffd849ffffde7b}, + {0x9539e938, 0xffffd849ffffde7c}, + {0x9539e939, 0xffffd849ffffde7d}, + {0x9539ea30, 0xffffd849ffffde7e}, + {0x9539ea31, 0xffffd849ffffde7f}, + {0x9539ea32, 0xffffd849ffffde80}, + {0x9539ea33, 0xffffd849ffffde81}, + {0x9539ea34, 0xffffd849ffffde82}, + {0x9539ea35, 0xffffd849ffffde83}, + {0x9539ea36, 0xffffd849ffffde84}, + {0x9539ea37, 0xffffd849ffffde85}, + {0x9539ea38, 0xffffd849ffffde86}, + {0x9539ea39, 0xffffd849ffffde87}, + {0x9539eb30, 0xffffd849ffffde88}, + {0x9539eb31, 0xffffd849ffffde89}, + {0x9539eb32, 0xffffd849ffffde8a}, + {0x9539eb33, 0xffffd849ffffde8b}, + {0x9539eb34, 0xffffd849ffffde8c}, + {0x9539eb35, 0xffffd849ffffde8d}, + {0x9539eb36, 0xffffd849ffffde8e}, + {0x9539eb37, 0xffffd849ffffde8f}, + {0x9539eb38, 0xffffd849ffffde90}, + {0x9539eb39, 0xffffd849ffffde91}, + {0x9539ec30, 0xffffd849ffffde92}, + {0x9539ec31, 0xffffd849ffffde93}, + {0x9539ec32, 0xffffd849ffffde94}, + {0x9539ec33, 0xffffd849ffffde95}, + {0x9539ec34, 0xffffd849ffffde96}, + {0x9539ec35, 0xffffd849ffffde97}, + {0x9539ec36, 0xffffd849ffffde98}, + {0x9539ec37, 0xffffd849ffffde99}, + {0x9539ec38, 0xffffd849ffffde9a}, + {0x9539ec39, 0xffffd849ffffde9b}, + {0x9539ed30, 0xffffd849ffffde9c}, + {0x9539ed31, 0xffffd849ffffde9d}, + {0x9539ed32, 0xffffd849ffffde9e}, + {0x9539ed33, 0xffffd849ffffde9f}, + {0x9539ed34, 0xffffd849ffffdea0}, + {0x9539ed35, 0xffffd849ffffdea1}, + {0x9539ed36, 0xffffd849ffffdea2}, + {0x9539ed37, 0xffffd849ffffdea3}, + {0x9539ed38, 0xffffd849ffffdea4}, + {0x9539ed39, 0xffffd849ffffdea5}, + {0x9539ee30, 0xffffd849ffffdea6}, + {0x9539ee31, 0xffffd849ffffdea7}, + {0x9539ee32, 0xffffd849ffffdea8}, + {0x9539ee33, 0xffffd849ffffdea9}, + {0x9539ee34, 0xffffd849ffffdeaa}, + {0x9539ee35, 0xffffd849ffffdeab}, + {0x9539ee36, 0xffffd849ffffdeac}, + {0x9539ee37, 0xffffd849ffffdead}, + {0x9539ee38, 0xffffd849ffffdeae}, + {0x9539ee39, 0xffffd849ffffdeaf}, + {0x9539ef30, 0xffffd849ffffdeb0}, + {0x9539ef31, 0xffffd849ffffdeb1}, + {0x9539ef32, 0xffffd849ffffdeb2}, + {0x9539ef33, 0xffffd849ffffdeb3}, + {0x9539ef34, 0xffffd849ffffdeb4}, + {0x9539ef35, 0xffffd849ffffdeb5}, + {0x9539ef36, 0xffffd849ffffdeb6}, + {0x9539ef37, 0xffffd849ffffdeb7}, + {0x9539ef38, 0xffffd849ffffdeb8}, + {0x9539ef39, 0xffffd849ffffdeb9}, + {0x9539f030, 0xffffd849ffffdeba}, + {0x9539f031, 0xffffd849ffffdebb}, + {0x9539f032, 0xffffd849ffffdebc}, + {0x9539f033, 0xffffd849ffffdebd}, + {0x9539f034, 0xffffd849ffffdebe}, + {0x9539f035, 0xffffd849ffffdebf}, + {0x9539f036, 0xffffd849ffffdec0}, + {0x9539f037, 0xffffd849ffffdec1}, + {0x9539f038, 0xffffd849ffffdec2}, + {0x9539f039, 0xffffd849ffffdec3}, + {0x9539f130, 0xffffd849ffffdec4}, + {0x9539f131, 0xffffd849ffffdec5}, + {0x9539f132, 0xffffd849ffffdec6}, + {0x9539f133, 0xffffd849ffffdec7}, + {0x9539f134, 0xffffd849ffffdec8}, + {0x9539f135, 0xffffd849ffffdec9}, + {0x9539f136, 0xffffd849ffffdeca}, + {0x9539f137, 0xffffd849ffffdecb}, + {0x9539f138, 0xffffd849ffffdecc}, + {0x9539f139, 0xffffd849ffffdecd}, + {0x9539f230, 0xffffd849ffffdece}, + {0x9539f231, 0xffffd849ffffdecf}, + {0x9539f232, 0xffffd849ffffded0}, + {0x9539f233, 0xffffd849ffffded1}, + {0x9539f234, 0xffffd849ffffded2}, + {0x9539f235, 0xffffd849ffffded3}, + {0x9539f236, 0xffffd849ffffded4}, + {0x9539f237, 0xffffd849ffffded5}, + {0x9539f238, 0xffffd849ffffded6}, + {0x9539f239, 0xffffd849ffffded7}, + {0x9539f330, 0xffffd849ffffded8}, + {0x9539f331, 0xffffd849ffffded9}, + {0x9539f332, 0xffffd849ffffdeda}, + {0x9539f333, 0xffffd849ffffdedb}, + {0x9539f334, 0xffffd849ffffdedc}, + {0x9539f335, 0xffffd849ffffdedd}, + {0x9539f336, 0xffffd849ffffdede}, + {0x9539f337, 0xffffd849ffffdedf}, + {0x9539f338, 0xffffd849ffffdee0}, + {0x9539f339, 0xffffd849ffffdee1}, + {0x9539f430, 0xffffd849ffffdee2}, + {0x9539f431, 0xffffd849ffffdee3}, + {0x9539f432, 0xffffd849ffffdee4}, + {0x9539f433, 0xffffd849ffffdee5}, + {0x9539f434, 0xffffd849ffffdee6}, + {0x9539f435, 0xffffd849ffffdee7}, + {0x9539f436, 0xffffd849ffffdee8}, + {0x9539f437, 0xffffd849ffffdee9}, + {0x9539f438, 0xffffd849ffffdeea}, + {0x9539f439, 0xffffd849ffffdeeb}, + {0x9539f530, 0xffffd849ffffdeec}, + {0x9539f531, 0xffffd849ffffdeed}, + {0x9539f532, 0xffffd849ffffdeee}, + {0x9539f533, 0xffffd849ffffdeef}, + {0x9539f534, 0xffffd849ffffdef0}, + {0x9539f535, 0xffffd849ffffdef1}, + {0x9539f536, 0xffffd849ffffdef2}, + {0x9539f537, 0xffffd849ffffdef3}, + {0x9539f538, 0xffffd849ffffdef4}, + {0x9539f539, 0xffffd849ffffdef5}, + {0x9539f630, 0xffffd849ffffdef6}, + {0x9539f631, 0xffffd849ffffdef7}, + {0x9539f632, 0xffffd849ffffdef8}, + {0x9539f633, 0xffffd849ffffdef9}, + {0x9539f634, 0xffffd849ffffdefa}, + {0x9539f635, 0xffffd849ffffdefb}, + {0x9539f636, 0xffffd849ffffdefc}, + {0x9539f637, 0xffffd849ffffdefd}, + {0x9539f638, 0xffffd849ffffdefe}, + {0x9539f639, 0xffffd849ffffdeff}, + {0x9539f730, 0xffffd849ffffdf00}, + {0x9539f731, 0xffffd849ffffdf01}, + {0x9539f732, 0xffffd849ffffdf02}, + {0x9539f733, 0xffffd849ffffdf03}, + {0x9539f734, 0xffffd849ffffdf04}, + {0x9539f735, 0xffffd849ffffdf05}, + {0x9539f736, 0xffffd849ffffdf06}, + {0x9539f737, 0xffffd849ffffdf07}, + {0x9539f738, 0xffffd849ffffdf08}, + {0x9539f739, 0xffffd849ffffdf09}, + {0x9539f830, 0xffffd849ffffdf0a}, + {0x9539f831, 0xffffd849ffffdf0b}, + {0x9539f832, 0xffffd849ffffdf0c}, + {0x9539f833, 0xffffd849ffffdf0d}, + {0x9539f834, 0xffffd849ffffdf0e}, + {0x9539f835, 0xffffd849ffffdf0f}, + {0x9539f836, 0xffffd849ffffdf10}, + {0x9539f837, 0xffffd849ffffdf11}, + {0x9539f838, 0xffffd849ffffdf12}, + {0x9539f839, 0xffffd849ffffdf13}, + {0x9539f930, 0xffffd849ffffdf14}, + {0x9539f931, 0xffffd849ffffdf15}, + {0x9539f932, 0xffffd849ffffdf16}, + {0x9539f933, 0xffffd849ffffdf17}, + {0x9539f934, 0xffffd849ffffdf18}, + {0x9539f935, 0xffffd849ffffdf19}, + {0x9539f936, 0xffffd849ffffdf1a}, + {0x9539f937, 0xffffd849ffffdf1b}, + {0x9539f938, 0xffffd849ffffdf1c}, + {0x9539f939, 0xffffd849ffffdf1d}, + {0x9539fa30, 0xffffd849ffffdf1e}, + {0x9539fa31, 0xffffd849ffffdf1f}, + {0x9539fa32, 0xffffd849ffffdf20}, + {0x9539fa33, 0xffffd849ffffdf21}, + {0x9539fa34, 0xffffd849ffffdf22}, + {0x9539fa35, 0xffffd849ffffdf23}, + {0x9539fa36, 0xffffd849ffffdf24}, + {0x9539fa37, 0xffffd849ffffdf25}, + {0x9539fa38, 0xffffd849ffffdf26}, + {0x9539fa39, 0xffffd849ffffdf27}, + {0x9539fb30, 0xffffd849ffffdf28}, + {0x9539fb31, 0xffffd849ffffdf29}, + {0x9539fb32, 0xffffd849ffffdf2a}, + {0x9539fb33, 0xffffd849ffffdf2b}, + {0x9539fb34, 0xffffd849ffffdf2c}, + {0x9539fb35, 0xffffd849ffffdf2d}, + {0x9539fb36, 0xffffd849ffffdf2e}, + {0x9539fb37, 0xffffd849ffffdf2f}, + {0x9539fb38, 0xffffd849ffffdf30}, + {0x9539fb39, 0xffffd849ffffdf31}, + {0x9539fc30, 0xffffd849ffffdf32}, + {0x9539fc31, 0xffffd849ffffdf33}, + {0x9539fc32, 0xffffd849ffffdf34}, + {0x9539fc33, 0xffffd849ffffdf35}, + {0x9539fc34, 0xffffd849ffffdf36}, + {0x9539fc35, 0xffffd849ffffdf37}, + {0x9539fc36, 0xffffd849ffffdf38}, + {0x9539fc37, 0xffffd849ffffdf39}, + {0x9539fc38, 0xffffd849ffffdf3a}, + {0x9539fc39, 0xffffd849ffffdf3b}, + {0x9539fd30, 0xffffd849ffffdf3c}, + {0x9539fd31, 0xffffd849ffffdf3d}, + {0x9539fd32, 0xffffd849ffffdf3e}, + {0x9539fd33, 0xffffd849ffffdf3f}, + {0x9539fd34, 0xffffd849ffffdf40}, + {0x9539fd35, 0xffffd849ffffdf41}, + {0x9539fd36, 0xffffd849ffffdf42}, + {0x9539fd37, 0xffffd849ffffdf43}, + {0x9539fd38, 0xffffd849ffffdf44}, + {0x9539fd39, 0xffffd849ffffdf45}, + {0x9539fe30, 0xffffd849ffffdf46}, + {0x9539fe31, 0xffffd849ffffdf47}, + {0x9539fe32, 0xffffd849ffffdf48}, + {0x9539fe33, 0xffffd849ffffdf49}, + {0x9539fe34, 0xffffd849ffffdf4a}, + {0x9539fe35, 0xffffd849ffffdf4b}, + {0x9539fe36, 0xffffd849ffffdf4c}, + {0x9539fe37, 0xffffd849ffffdf4d}, + {0x9539fe38, 0xffffd849ffffdf4e}, + {0x9539fe39, 0xffffd849ffffdf4f}, + {0x96308130, 0xffffd849ffffdf50}, + {0x96308131, 0xffffd849ffffdf51}, + {0x96308132, 0xffffd849ffffdf52}, + {0x96308133, 0xffffd849ffffdf53}, + {0x96308134, 0xffffd849ffffdf54}, + {0x96308135, 0xffffd849ffffdf55}, + {0x96308136, 0xffffd849ffffdf56}, + {0x96308137, 0xffffd849ffffdf57}, + {0x96308138, 0xffffd849ffffdf58}, + {0x96308139, 0xffffd849ffffdf59}, + {0x96308230, 0xffffd849ffffdf5a}, + {0x96308231, 0xffffd849ffffdf5b}, + {0x96308232, 0xffffd849ffffdf5c}, + {0x96308233, 0xffffd849ffffdf5d}, + {0x96308234, 0xffffd849ffffdf5e}, + {0x96308235, 0xffffd849ffffdf5f}, + {0x96308236, 0xffffd849ffffdf60}, + {0x96308237, 0xffffd849ffffdf61}, + {0x96308238, 0xffffd849ffffdf62}, + {0x96308239, 0xffffd849ffffdf63}, + {0x96308330, 0xffffd849ffffdf64}, + {0x96308331, 0xffffd849ffffdf65}, + {0x96308332, 0xffffd849ffffdf66}, + {0x96308333, 0xffffd849ffffdf67}, + {0x96308334, 0xffffd849ffffdf68}, + {0x96308335, 0xffffd849ffffdf69}, + {0x96308336, 0xffffd849ffffdf6a}, + {0x96308337, 0xffffd849ffffdf6b}, + {0x96308338, 0xffffd849ffffdf6c}, + {0x96308339, 0xffffd849ffffdf6d}, + {0x96308430, 0xffffd849ffffdf6e}, + {0x96308431, 0xffffd849ffffdf6f}, + {0x96308432, 0xffffd849ffffdf70}, + {0x96308433, 0xffffd849ffffdf71}, + {0x96308434, 0xffffd849ffffdf72}, + {0x96308435, 0xffffd849ffffdf73}, + {0x96308436, 0xffffd849ffffdf74}, + {0x96308437, 0xffffd849ffffdf75}, + {0x96308438, 0xffffd849ffffdf76}, + {0x96308439, 0xffffd849ffffdf77}, + {0x96308530, 0xffffd849ffffdf78}, + {0x96308531, 0xffffd849ffffdf79}, + {0x96308532, 0xffffd849ffffdf7a}, + {0x96308533, 0xffffd849ffffdf7b}, + {0x96308534, 0xffffd849ffffdf7c}, + {0x96308535, 0xffffd849ffffdf7d}, + {0x96308536, 0xffffd849ffffdf7e}, + {0x96308537, 0xffffd849ffffdf7f}, + {0x96308538, 0xffffd849ffffdf80}, + {0x96308539, 0xffffd849ffffdf81}, + {0x96308630, 0xffffd849ffffdf82}, + {0x96308631, 0xffffd849ffffdf83}, + {0x96308632, 0xffffd849ffffdf84}, + {0x96308633, 0xffffd849ffffdf85}, + {0x96308634, 0xffffd849ffffdf86}, + {0x96308635, 0xffffd849ffffdf87}, + {0x96308636, 0xffffd849ffffdf88}, + {0x96308637, 0xffffd849ffffdf89}, + {0x96308638, 0xffffd849ffffdf8a}, + {0x96308639, 0xffffd849ffffdf8b}, + {0x96308730, 0xffffd849ffffdf8c}, + {0x96308731, 0xffffd849ffffdf8d}, + {0x96308732, 0xffffd849ffffdf8e}, + {0x96308733, 0xffffd849ffffdf8f}, + {0x96308734, 0xffffd849ffffdf90}, + {0x96308735, 0xffffd849ffffdf91}, + {0x96308736, 0xffffd849ffffdf92}, + {0x96308737, 0xffffd849ffffdf93}, + {0x96308738, 0xffffd849ffffdf94}, + {0x96308739, 0xffffd849ffffdf95}, + {0x96308830, 0xffffd849ffffdf96}, + {0x96308831, 0xffffd849ffffdf97}, + {0x96308832, 0xffffd849ffffdf98}, + {0x96308833, 0xffffd849ffffdf99}, + {0x96308834, 0xffffd849ffffdf9a}, + {0x96308835, 0xffffd849ffffdf9b}, + {0x96308836, 0xffffd849ffffdf9c}, + {0x96308837, 0xffffd849ffffdf9d}, + {0x96308838, 0xffffd849ffffdf9e}, + {0x96308839, 0xffffd849ffffdf9f}, + {0x96308930, 0xffffd849ffffdfa0}, + {0x96308931, 0xffffd849ffffdfa1}, + {0x96308932, 0xffffd849ffffdfa2}, + {0x96308933, 0xffffd849ffffdfa3}, + {0x96308934, 0xffffd849ffffdfa4}, + {0x96308935, 0xffffd849ffffdfa5}, + {0x96308936, 0xffffd849ffffdfa6}, + {0x96308937, 0xffffd849ffffdfa7}, + {0x96308938, 0xffffd849ffffdfa8}, + {0x96308939, 0xffffd849ffffdfa9}, + {0x96308a30, 0xffffd849ffffdfaa}, + {0x96308a31, 0xffffd849ffffdfab}, + {0x96308a32, 0xffffd849ffffdfac}, + {0x96308a33, 0xffffd849ffffdfad}, + {0x96308a34, 0xffffd849ffffdfae}, + {0x96308a35, 0xffffd849ffffdfaf}, + {0x96308a36, 0xffffd849ffffdfb0}, + {0x96308a37, 0xffffd849ffffdfb1}, + {0x96308a38, 0xffffd849ffffdfb2}, + {0x96308a39, 0xffffd849ffffdfb3}, + {0x96308b30, 0xffffd849ffffdfb4}, + {0x96308b31, 0xffffd849ffffdfb5}, + {0x96308b32, 0xffffd849ffffdfb6}, + {0x96308b33, 0xffffd849ffffdfb7}, + {0x96308b34, 0xffffd849ffffdfb8}, + {0x96308b35, 0xffffd849ffffdfb9}, + {0x96308b36, 0xffffd849ffffdfba}, + {0x96308b37, 0xffffd849ffffdfbb}, + {0x96308b38, 0xffffd849ffffdfbc}, + {0x96308b39, 0xffffd849ffffdfbd}, + {0x96308c30, 0xffffd849ffffdfbe}, + {0x96308c31, 0xffffd849ffffdfbf}, + {0x96308c32, 0xffffd849ffffdfc0}, + {0x96308c33, 0xffffd849ffffdfc1}, + {0x96308c34, 0xffffd849ffffdfc2}, + {0x96308c35, 0xffffd849ffffdfc3}, + {0x96308c36, 0xffffd849ffffdfc4}, + {0x96308c37, 0xffffd849ffffdfc5}, + {0x96308c38, 0xffffd849ffffdfc6}, + {0x96308c39, 0xffffd849ffffdfc7}, + {0x96308d30, 0xffffd849ffffdfc8}, + {0x96308d31, 0xffffd849ffffdfc9}, + {0x96308d32, 0xffffd849ffffdfca}, + {0x96308d33, 0xffffd849ffffdfcb}, + {0x96308d34, 0xffffd849ffffdfcc}, + {0x96308d35, 0xffffd849ffffdfcd}, + {0x96308d36, 0xffffd849ffffdfce}, + {0x96308d37, 0xffffd849ffffdfcf}, + {0x96308d38, 0xffffd849ffffdfd0}, + {0x96308d39, 0xffffd849ffffdfd1}, + {0x96308e30, 0xffffd849ffffdfd2}, + {0x96308e31, 0xffffd849ffffdfd3}, + {0x96308e32, 0xffffd849ffffdfd4}, + {0x96308e33, 0xffffd849ffffdfd5}, + {0x96308e34, 0xffffd849ffffdfd6}, + {0x96308e35, 0xffffd849ffffdfd7}, + {0x96308e36, 0xffffd849ffffdfd8}, + {0x96308e37, 0xffffd849ffffdfd9}, + {0x96308e38, 0xffffd849ffffdfda}, + {0x96308e39, 0xffffd849ffffdfdb}, + {0x96308f30, 0xffffd849ffffdfdc}, + {0x96308f31, 0xffffd849ffffdfdd}, + {0x96308f32, 0xffffd849ffffdfde}, + {0x96308f33, 0xffffd849ffffdfdf}, + {0x96308f34, 0xffffd849ffffdfe0}, + {0x96308f35, 0xffffd849ffffdfe1}, + {0x96308f36, 0xffffd849ffffdfe2}, + {0x96308f37, 0xffffd849ffffdfe3}, + {0x96308f38, 0xffffd849ffffdfe4}, + {0x96308f39, 0xffffd849ffffdfe5}, + {0x96309030, 0xffffd849ffffdfe6}, + {0x96309031, 0xffffd849ffffdfe7}, + {0x96309032, 0xffffd849ffffdfe8}, + {0x96309033, 0xffffd849ffffdfe9}, + {0x96309034, 0xffffd849ffffdfea}, + {0x96309035, 0xffffd849ffffdfeb}, + {0x96309036, 0xffffd849ffffdfec}, + {0x96309037, 0xffffd849ffffdfed}, + {0x96309038, 0xffffd849ffffdfee}, + {0x96309039, 0xffffd849ffffdfef}, + {0x96309130, 0xffffd849ffffdff0}, + {0x96309131, 0xffffd849ffffdff1}, + {0x96309132, 0xffffd849ffffdff2}, + {0x96309133, 0xffffd849ffffdff3}, + {0x96309134, 0xffffd849ffffdff4}, + {0x96309135, 0xffffd849ffffdff5}, + {0x96309136, 0xffffd849ffffdff6}, + {0x96309137, 0xffffd849ffffdff7}, + {0x96309138, 0xffffd849ffffdff8}, + {0x96309139, 0xffffd849ffffdff9}, + {0x96309230, 0xffffd849ffffdffa}, + {0x96309231, 0xffffd849ffffdffb}, + {0x96309232, 0xffffd849ffffdffc}, + {0x96309233, 0xffffd849ffffdffd}, + {0x96309234, 0xffffd849ffffdffe}, + {0x96309235, 0xffffd849ffffdfff}, + {0x96309236, 0xffffd84affffdc00}, + {0x96309237, 0xffffd84affffdc01}, + {0x96309238, 0xffffd84affffdc02}, + {0x96309239, 0xffffd84affffdc03}, + {0x96309330, 0xffffd84affffdc04}, + {0x96309331, 0xffffd84affffdc05}, + {0x96309332, 0xffffd84affffdc06}, + {0x96309333, 0xffffd84affffdc07}, + {0x96309334, 0xffffd84affffdc08}, + {0x96309335, 0xffffd84affffdc09}, + {0x96309336, 0xffffd84affffdc0a}, + {0x96309337, 0xffffd84affffdc0b}, + {0x96309338, 0xffffd84affffdc0c}, + {0x96309339, 0xffffd84affffdc0d}, + {0x96309430, 0xffffd84affffdc0e}, + {0x96309431, 0xffffd84affffdc0f}, + {0x96309432, 0xffffd84affffdc10}, + {0x96309433, 0xffffd84affffdc11}, + {0x96309434, 0xffffd84affffdc12}, + {0x96309435, 0xffffd84affffdc13}, + {0x96309436, 0xffffd84affffdc14}, + {0x96309437, 0xffffd84affffdc15}, + {0x96309438, 0xffffd84affffdc16}, + {0x96309439, 0xffffd84affffdc17}, + {0x96309530, 0xffffd84affffdc18}, + {0x96309531, 0xffffd84affffdc19}, + {0x96309532, 0xffffd84affffdc1a}, + {0x96309533, 0xffffd84affffdc1b}, + {0x96309534, 0xffffd84affffdc1c}, + {0x96309535, 0xffffd84affffdc1d}, + {0x96309536, 0xffffd84affffdc1e}, + {0x96309537, 0xffffd84affffdc1f}, + {0x96309538, 0xffffd84affffdc20}, + {0x96309539, 0xffffd84affffdc21}, + {0x96309630, 0xffffd84affffdc22}, + {0x96309631, 0xffffd84affffdc23}, + {0x96309632, 0xffffd84affffdc24}, + {0x96309633, 0xffffd84affffdc25}, + {0x96309634, 0xffffd84affffdc26}, + {0x96309635, 0xffffd84affffdc27}, + {0x96309636, 0xffffd84affffdc28}, + {0x96309637, 0xffffd84affffdc29}, + {0x96309638, 0xffffd84affffdc2a}, + {0x96309639, 0xffffd84affffdc2b}, + {0x96309730, 0xffffd84affffdc2c}, + {0x96309731, 0xffffd84affffdc2d}, + {0x96309732, 0xffffd84affffdc2e}, + {0x96309733, 0xffffd84affffdc2f}, + {0x96309734, 0xffffd84affffdc30}, + {0x96309735, 0xffffd84affffdc31}, + {0x96309736, 0xffffd84affffdc32}, + {0x96309737, 0xffffd84affffdc33}, + {0x96309738, 0xffffd84affffdc34}, + {0x96309739, 0xffffd84affffdc35}, + {0x96309830, 0xffffd84affffdc36}, + {0x96309831, 0xffffd84affffdc37}, + {0x96309832, 0xffffd84affffdc38}, + {0x96309833, 0xffffd84affffdc39}, + {0x96309834, 0xffffd84affffdc3a}, + {0x96309835, 0xffffd84affffdc3b}, + {0x96309836, 0xffffd84affffdc3c}, + {0x96309837, 0xffffd84affffdc3d}, + {0x96309838, 0xffffd84affffdc3e}, + {0x96309839, 0xffffd84affffdc3f}, + {0x96309930, 0xffffd84affffdc40}, + {0x96309931, 0xffffd84affffdc41}, + {0x96309932, 0xffffd84affffdc42}, + {0x96309933, 0xffffd84affffdc43}, + {0x96309934, 0xffffd84affffdc44}, + {0x96309935, 0xffffd84affffdc45}, + {0x96309936, 0xffffd84affffdc46}, + {0x96309937, 0xffffd84affffdc47}, + {0x96309938, 0xffffd84affffdc48}, + {0x96309939, 0xffffd84affffdc49}, + {0x96309a30, 0xffffd84affffdc4a}, + {0x96309a31, 0xffffd84affffdc4b}, + {0x96309a32, 0xffffd84affffdc4c}, + {0x96309a33, 0xffffd84affffdc4d}, + {0x96309a34, 0xffffd84affffdc4e}, + {0x96309a35, 0xffffd84affffdc4f}, + {0x96309a36, 0xffffd84affffdc50}, + {0x96309a37, 0xffffd84affffdc51}, + {0x96309a38, 0xffffd84affffdc52}, + {0x96309a39, 0xffffd84affffdc53}, + {0x96309b30, 0xffffd84affffdc54}, + {0x96309b31, 0xffffd84affffdc55}, + {0x96309b32, 0xffffd84affffdc56}, + {0x96309b33, 0xffffd84affffdc57}, + {0x96309b34, 0xffffd84affffdc58}, + {0x96309b35, 0xffffd84affffdc59}, + {0x96309b36, 0xffffd84affffdc5a}, + {0x96309b37, 0xffffd84affffdc5b}, + {0x96309b38, 0xffffd84affffdc5c}, + {0x96309b39, 0xffffd84affffdc5d}, + {0x96309c30, 0xffffd84affffdc5e}, + {0x96309c31, 0xffffd84affffdc5f}, + {0x96309c32, 0xffffd84affffdc60}, + {0x96309c33, 0xffffd84affffdc61}, + {0x96309c34, 0xffffd84affffdc62}, + {0x96309c35, 0xffffd84affffdc63}, + {0x96309c36, 0xffffd84affffdc64}, + {0x96309c37, 0xffffd84affffdc65}, + {0x96309c38, 0xffffd84affffdc66}, + {0x96309c39, 0xffffd84affffdc67}, + {0x96309d30, 0xffffd84affffdc68}, + {0x96309d31, 0xffffd84affffdc69}, + {0x96309d32, 0xffffd84affffdc6a}, + {0x96309d33, 0xffffd84affffdc6b}, + {0x96309d34, 0xffffd84affffdc6c}, + {0x96309d35, 0xffffd84affffdc6d}, + {0x96309d36, 0xffffd84affffdc6e}, + {0x96309d37, 0xffffd84affffdc6f}, + {0x96309d38, 0xffffd84affffdc70}, + {0x96309d39, 0xffffd84affffdc71}, + {0x96309e30, 0xffffd84affffdc72}, + {0x96309e31, 0xffffd84affffdc73}, + {0x96309e32, 0xffffd84affffdc74}, + {0x96309e33, 0xffffd84affffdc75}, + {0x96309e34, 0xffffd84affffdc76}, + {0x96309e35, 0xffffd84affffdc77}, + {0x96309e36, 0xffffd84affffdc78}, + {0x96309e37, 0xffffd84affffdc79}, + {0x96309e38, 0xffffd84affffdc7a}, + {0x96309e39, 0xffffd84affffdc7b}, + {0x96309f30, 0xffffd84affffdc7c}, + {0x96309f31, 0xffffd84affffdc7d}, + {0x96309f32, 0xffffd84affffdc7e}, + {0x96309f33, 0xffffd84affffdc7f}, + {0x96309f34, 0xffffd84affffdc80}, + {0x96309f35, 0xffffd84affffdc81}, + {0x96309f36, 0xffffd84affffdc82}, + {0x96309f37, 0xffffd84affffdc83}, + {0x96309f38, 0xffffd84affffdc84}, + {0x96309f39, 0xffffd84affffdc85}, + {0x9630a030, 0xffffd84affffdc86}, + {0x9630a031, 0xffffd84affffdc87}, + {0x9630a032, 0xffffd84affffdc88}, + {0x9630a033, 0xffffd84affffdc89}, + {0x9630a034, 0xffffd84affffdc8a}, + {0x9630a035, 0xffffd84affffdc8b}, + {0x9630a036, 0xffffd84affffdc8c}, + {0x9630a037, 0xffffd84affffdc8d}, + {0x9630a038, 0xffffd84affffdc8e}, + {0x9630a039, 0xffffd84affffdc8f}, + {0x9630a130, 0xffffd84affffdc90}, + {0x9630a131, 0xffffd84affffdc91}, + {0x9630a132, 0xffffd84affffdc92}, + {0x9630a133, 0xffffd84affffdc93}, + {0x9630a134, 0xffffd84affffdc94}, + {0x9630a135, 0xffffd84affffdc95}, + {0x9630a136, 0xffffd84affffdc96}, + {0x9630a137, 0xffffd84affffdc97}, + {0x9630a138, 0xffffd84affffdc98}, + {0x9630a139, 0xffffd84affffdc99}, + {0x9630a230, 0xffffd84affffdc9a}, + {0x9630a231, 0xffffd84affffdc9b}, + {0x9630a232, 0xffffd84affffdc9c}, + {0x9630a233, 0xffffd84affffdc9d}, + {0x9630a234, 0xffffd84affffdc9e}, + {0x9630a235, 0xffffd84affffdc9f}, + {0x9630a236, 0xffffd84affffdca0}, + {0x9630a237, 0xffffd84affffdca1}, + {0x9630a238, 0xffffd84affffdca2}, + {0x9630a239, 0xffffd84affffdca3}, + {0x9630a330, 0xffffd84affffdca4}, + {0x9630a331, 0xffffd84affffdca5}, + {0x9630a332, 0xffffd84affffdca6}, + {0x9630a333, 0xffffd84affffdca7}, + {0x9630a334, 0xffffd84affffdca8}, + {0x9630a335, 0xffffd84affffdca9}, + {0x9630a336, 0xffffd84affffdcaa}, + {0x9630a337, 0xffffd84affffdcab}, + {0x9630a338, 0xffffd84affffdcac}, + {0x9630a339, 0xffffd84affffdcad}, + {0x9630a430, 0xffffd84affffdcae}, + {0x9630a431, 0xffffd84affffdcaf}, + {0x9630a432, 0xffffd84affffdcb0}, + {0x9630a433, 0xffffd84affffdcb1}, + {0x9630a434, 0xffffd84affffdcb2}, + {0x9630a435, 0xffffd84affffdcb3}, + {0x9630a436, 0xffffd84affffdcb4}, + {0x9630a437, 0xffffd84affffdcb5}, + {0x9630a438, 0xffffd84affffdcb6}, + {0x9630a439, 0xffffd84affffdcb7}, + {0x9630a530, 0xffffd84affffdcb8}, + {0x9630a531, 0xffffd84affffdcb9}, + {0x9630a532, 0xffffd84affffdcba}, + {0x9630a533, 0xffffd84affffdcbb}, + {0x9630a534, 0xffffd84affffdcbc}, + {0x9630a535, 0xffffd84affffdcbd}, + {0x9630a536, 0xffffd84affffdcbe}, + {0x9630a537, 0xffffd84affffdcbf}, + {0x9630a538, 0xffffd84affffdcc0}, + {0x9630a539, 0xffffd84affffdcc1}, + {0x9630a630, 0xffffd84affffdcc2}, + {0x9630a631, 0xffffd84affffdcc3}, + {0x9630a632, 0xffffd84affffdcc4}, + {0x9630a633, 0xffffd84affffdcc5}, + {0x9630a634, 0xffffd84affffdcc6}, + {0x9630a635, 0xffffd84affffdcc7}, + {0x9630a636, 0xffffd84affffdcc8}, + {0x9630a637, 0xffffd84affffdcc9}, + {0x9630a638, 0xffffd84affffdcca}, + {0x9630a639, 0xffffd84affffdccb}, + {0x9630a730, 0xffffd84affffdccc}, + {0x9630a731, 0xffffd84affffdccd}, + {0x9630a732, 0xffffd84affffdcce}, + {0x9630a733, 0xffffd84affffdccf}, + {0x9630a734, 0xffffd84affffdcd0}, + {0x9630a735, 0xffffd84affffdcd1}, + {0x9630a736, 0xffffd84affffdcd2}, + {0x9630a737, 0xffffd84affffdcd3}, + {0x9630a738, 0xffffd84affffdcd4}, + {0x9630a739, 0xffffd84affffdcd5}, + {0x9630a830, 0xffffd84affffdcd6}, + {0x9630a831, 0xffffd84affffdcd7}, + {0x9630a832, 0xffffd84affffdcd8}, + {0x9630a833, 0xffffd84affffdcd9}, + {0x9630a834, 0xffffd84affffdcda}, + {0x9630a835, 0xffffd84affffdcdb}, + {0x9630a836, 0xffffd84affffdcdc}, + {0x9630a837, 0xffffd84affffdcdd}, + {0x9630a838, 0xffffd84affffdcde}, + {0x9630a839, 0xffffd84affffdcdf}, + {0x9630a930, 0xffffd84affffdce0}, + {0x9630a931, 0xffffd84affffdce1}, + {0x9630a932, 0xffffd84affffdce2}, + {0x9630a933, 0xffffd84affffdce3}, + {0x9630a934, 0xffffd84affffdce4}, + {0x9630a935, 0xffffd84affffdce5}, + {0x9630a936, 0xffffd84affffdce6}, + {0x9630a937, 0xffffd84affffdce7}, + {0x9630a938, 0xffffd84affffdce8}, + {0x9630a939, 0xffffd84affffdce9}, + {0x9630aa30, 0xffffd84affffdcea}, + {0x9630aa31, 0xffffd84affffdceb}, + {0x9630aa32, 0xffffd84affffdcec}, + {0x9630aa33, 0xffffd84affffdced}, + {0x9630aa34, 0xffffd84affffdcee}, + {0x9630aa35, 0xffffd84affffdcef}, + {0x9630aa36, 0xffffd84affffdcf0}, + {0x9630aa37, 0xffffd84affffdcf1}, + {0x9630aa38, 0xffffd84affffdcf2}, + {0x9630aa39, 0xffffd84affffdcf3}, + {0x9630ab30, 0xffffd84affffdcf4}, + {0x9630ab31, 0xffffd84affffdcf5}, + {0x9630ab32, 0xffffd84affffdcf6}, + {0x9630ab33, 0xffffd84affffdcf7}, + {0x9630ab34, 0xffffd84affffdcf8}, + {0x9630ab35, 0xffffd84affffdcf9}, + {0x9630ab36, 0xffffd84affffdcfa}, + {0x9630ab37, 0xffffd84affffdcfb}, + {0x9630ab38, 0xffffd84affffdcfc}, + {0x9630ab39, 0xffffd84affffdcfd}, + {0x9630ac30, 0xffffd84affffdcfe}, + {0x9630ac31, 0xffffd84affffdcff}, + {0x9630ac32, 0xffffd84affffdd00}, + {0x9630ac33, 0xffffd84affffdd01}, + {0x9630ac34, 0xffffd84affffdd02}, + {0x9630ac35, 0xffffd84affffdd03}, + {0x9630ac36, 0xffffd84affffdd04}, + {0x9630ac37, 0xffffd84affffdd05}, + {0x9630ac38, 0xffffd84affffdd06}, + {0x9630ac39, 0xffffd84affffdd07}, + {0x9630ad30, 0xffffd84affffdd08}, + {0x9630ad31, 0xffffd84affffdd09}, + {0x9630ad32, 0xffffd84affffdd0a}, + {0x9630ad33, 0xffffd84affffdd0b}, + {0x9630ad34, 0xffffd84affffdd0c}, + {0x9630ad35, 0xffffd84affffdd0d}, + {0x9630ad36, 0xffffd84affffdd0e}, + {0x9630ad37, 0xffffd84affffdd0f}, + {0x9630ad38, 0xffffd84affffdd10}, + {0x9630ad39, 0xffffd84affffdd11}, + {0x9630ae30, 0xffffd84affffdd12}, + {0x9630ae31, 0xffffd84affffdd13}, + {0x9630ae32, 0xffffd84affffdd14}, + {0x9630ae33, 0xffffd84affffdd15}, + {0x9630ae34, 0xffffd84affffdd16}, + {0x9630ae35, 0xffffd84affffdd17}, + {0x9630ae36, 0xffffd84affffdd18}, + {0x9630ae37, 0xffffd84affffdd19}, + {0x9630ae38, 0xffffd84affffdd1a}, + {0x9630ae39, 0xffffd84affffdd1b}, + {0x9630af30, 0xffffd84affffdd1c}, + {0x9630af31, 0xffffd84affffdd1d}, + {0x9630af32, 0xffffd84affffdd1e}, + {0x9630af33, 0xffffd84affffdd1f}, + {0x9630af34, 0xffffd84affffdd20}, + {0x9630af35, 0xffffd84affffdd21}, + {0x9630af36, 0xffffd84affffdd22}, + {0x9630af37, 0xffffd84affffdd23}, + {0x9630af38, 0xffffd84affffdd24}, + {0x9630af39, 0xffffd84affffdd25}, + {0x9630b030, 0xffffd84affffdd26}, + {0x9630b031, 0xffffd84affffdd27}, + {0x9630b032, 0xffffd84affffdd28}, + {0x9630b033, 0xffffd84affffdd29}, + {0x9630b034, 0xffffd84affffdd2a}, + {0x9630b035, 0xffffd84affffdd2b}, + {0x9630b036, 0xffffd84affffdd2c}, + {0x9630b037, 0xffffd84affffdd2d}, + {0x9630b038, 0xffffd84affffdd2e}, + {0x9630b039, 0xffffd84affffdd2f}, + {0x9630b130, 0xffffd84affffdd30}, + {0x9630b131, 0xffffd84affffdd31}, + {0x9630b132, 0xffffd84affffdd32}, + {0x9630b133, 0xffffd84affffdd33}, + {0x9630b134, 0xffffd84affffdd34}, + {0x9630b135, 0xffffd84affffdd35}, + {0x9630b136, 0xffffd84affffdd36}, + {0x9630b137, 0xffffd84affffdd37}, + {0x9630b138, 0xffffd84affffdd38}, + {0x9630b139, 0xffffd84affffdd39}, + {0x9630b230, 0xffffd84affffdd3a}, + {0x9630b231, 0xffffd84affffdd3b}, + {0x9630b232, 0xffffd84affffdd3c}, + {0x9630b233, 0xffffd84affffdd3d}, + {0x9630b234, 0xffffd84affffdd3e}, + {0x9630b235, 0xffffd84affffdd3f}, + {0x9630b236, 0xffffd84affffdd40}, + {0x9630b237, 0xffffd84affffdd41}, + {0x9630b238, 0xffffd84affffdd42}, + {0x9630b239, 0xffffd84affffdd43}, + {0x9630b330, 0xffffd84affffdd44}, + {0x9630b331, 0xffffd84affffdd45}, + {0x9630b332, 0xffffd84affffdd46}, + {0x9630b333, 0xffffd84affffdd47}, + {0x9630b334, 0xffffd84affffdd48}, + {0x9630b335, 0xffffd84affffdd49}, + {0x9630b336, 0xffffd84affffdd4a}, + {0x9630b337, 0xffffd84affffdd4b}, + {0x9630b338, 0xffffd84affffdd4c}, + {0x9630b339, 0xffffd84affffdd4d}, + {0x9630b430, 0xffffd84affffdd4e}, + {0x9630b431, 0xffffd84affffdd4f}, + {0x9630b432, 0xffffd84affffdd50}, + {0x9630b433, 0xffffd84affffdd51}, + {0x9630b434, 0xffffd84affffdd52}, + {0x9630b435, 0xffffd84affffdd53}, + {0x9630b436, 0xffffd84affffdd54}, + {0x9630b437, 0xffffd84affffdd55}, + {0x9630b438, 0xffffd84affffdd56}, + {0x9630b439, 0xffffd84affffdd57}, + {0x9630b530, 0xffffd84affffdd58}, + {0x9630b531, 0xffffd84affffdd59}, + {0x9630b532, 0xffffd84affffdd5a}, + {0x9630b533, 0xffffd84affffdd5b}, + {0x9630b534, 0xffffd84affffdd5c}, + {0x9630b535, 0xffffd84affffdd5d}, + {0x9630b536, 0xffffd84affffdd5e}, + {0x9630b537, 0xffffd84affffdd5f}, + {0x9630b538, 0xffffd84affffdd60}, + {0x9630b539, 0xffffd84affffdd61}, + {0x9630b630, 0xffffd84affffdd62}, + {0x9630b631, 0xffffd84affffdd63}, + {0x9630b632, 0xffffd84affffdd64}, + {0x9630b633, 0xffffd84affffdd65}, + {0x9630b634, 0xffffd84affffdd66}, + {0x9630b635, 0xffffd84affffdd67}, + {0x9630b636, 0xffffd84affffdd68}, + {0x9630b637, 0xffffd84affffdd69}, + {0x9630b638, 0xffffd84affffdd6a}, + {0x9630b639, 0xffffd84affffdd6b}, + {0x9630b730, 0xffffd84affffdd6c}, + {0x9630b731, 0xffffd84affffdd6d}, + {0x9630b732, 0xffffd84affffdd6e}, + {0x9630b733, 0xffffd84affffdd6f}, + {0x9630b734, 0xffffd84affffdd70}, + {0x9630b735, 0xffffd84affffdd71}, + {0x9630b736, 0xffffd84affffdd72}, + {0x9630b737, 0xffffd84affffdd73}, + {0x9630b738, 0xffffd84affffdd74}, + {0x9630b739, 0xffffd84affffdd75}, + {0x9630b830, 0xffffd84affffdd76}, + {0x9630b831, 0xffffd84affffdd77}, + {0x9630b832, 0xffffd84affffdd78}, + {0x9630b833, 0xffffd84affffdd79}, + {0x9630b834, 0xffffd84affffdd7a}, + {0x9630b835, 0xffffd84affffdd7b}, + {0x9630b836, 0xffffd84affffdd7c}, + {0x9630b837, 0xffffd84affffdd7d}, + {0x9630b838, 0xffffd84affffdd7e}, + {0x9630b839, 0xffffd84affffdd7f}, + {0x9630b930, 0xffffd84affffdd80}, + {0x9630b931, 0xffffd84affffdd81}, + {0x9630b932, 0xffffd84affffdd82}, + {0x9630b933, 0xffffd84affffdd83}, + {0x9630b934, 0xffffd84affffdd84}, + {0x9630b935, 0xffffd84affffdd85}, + {0x9630b936, 0xffffd84affffdd86}, + {0x9630b937, 0xffffd84affffdd87}, + {0x9630b938, 0xffffd84affffdd88}, + {0x9630b939, 0xffffd84affffdd89}, + {0x9630ba30, 0xffffd84affffdd8a}, + {0x9630ba31, 0xffffd84affffdd8b}, + {0x9630ba32, 0xffffd84affffdd8c}, + {0x9630ba33, 0xffffd84affffdd8d}, + {0x9630ba34, 0xffffd84affffdd8e}, + {0x9630ba35, 0xffffd84affffdd8f}, + {0x9630ba36, 0xffffd84affffdd90}, + {0x9630ba37, 0xffffd84affffdd91}, + {0x9630ba38, 0xffffd84affffdd92}, + {0x9630ba39, 0xffffd84affffdd93}, + {0x9630bb30, 0xffffd84affffdd94}, + {0x9630bb31, 0xffffd84affffdd95}, + {0x9630bb32, 0xffffd84affffdd96}, + {0x9630bb33, 0xffffd84affffdd97}, + {0x9630bb34, 0xffffd84affffdd98}, + {0x9630bb35, 0xffffd84affffdd99}, + {0x9630bb36, 0xffffd84affffdd9a}, + {0x9630bb37, 0xffffd84affffdd9b}, + {0x9630bb38, 0xffffd84affffdd9c}, + {0x9630bb39, 0xffffd84affffdd9d}, + {0x9630bc30, 0xffffd84affffdd9e}, + {0x9630bc31, 0xffffd84affffdd9f}, + {0x9630bc32, 0xffffd84affffdda0}, + {0x9630bc33, 0xffffd84affffdda1}, + {0x9630bc34, 0xffffd84affffdda2}, + {0x9630bc35, 0xffffd84affffdda3}, + {0x9630bc36, 0xffffd84affffdda4}, + {0x9630bc37, 0xffffd84affffdda5}, + {0x9630bc38, 0xffffd84affffdda6}, + {0x9630bc39, 0xffffd84affffdda7}, + {0x9630bd30, 0xffffd84affffdda8}, + {0x9630bd31, 0xffffd84affffdda9}, + {0x9630bd32, 0xffffd84affffddaa}, + {0x9630bd33, 0xffffd84affffddab}, + {0x9630bd34, 0xffffd84affffddac}, + {0x9630bd35, 0xffffd84affffddad}, + {0x9630bd36, 0xffffd84affffddae}, + {0x9630bd37, 0xffffd84affffddaf}, + {0x9630bd38, 0xffffd84affffddb0}, + {0x9630bd39, 0xffffd84affffddb1}, + {0x9630be30, 0xffffd84affffddb2}, + {0x9630be31, 0xffffd84affffddb3}, + {0x9630be32, 0xffffd84affffddb4}, + {0x9630be33, 0xffffd84affffddb5}, + {0x9630be34, 0xffffd84affffddb6}, + {0x9630be35, 0xffffd84affffddb7}, + {0x9630be36, 0xffffd84affffddb8}, + {0x9630be37, 0xffffd84affffddb9}, + {0x9630be38, 0xffffd84affffddba}, + {0x9630be39, 0xffffd84affffddbb}, + {0x9630bf30, 0xffffd84affffddbc}, + {0x9630bf31, 0xffffd84affffddbd}, + {0x9630bf32, 0xffffd84affffddbe}, + {0x9630bf33, 0xffffd84affffddbf}, + {0x9630bf34, 0xffffd84affffddc0}, + {0x9630bf35, 0xffffd84affffddc1}, + {0x9630bf36, 0xffffd84affffddc2}, + {0x9630bf37, 0xffffd84affffddc3}, + {0x9630bf38, 0xffffd84affffddc4}, + {0x9630bf39, 0xffffd84affffddc5}, + {0x9630c030, 0xffffd84affffddc6}, + {0x9630c031, 0xffffd84affffddc7}, + {0x9630c032, 0xffffd84affffddc8}, + {0x9630c033, 0xffffd84affffddc9}, + {0x9630c034, 0xffffd84affffddca}, + {0x9630c035, 0xffffd84affffddcb}, + {0x9630c036, 0xffffd84affffddcc}, + {0x9630c037, 0xffffd84affffddcd}, + {0x9630c038, 0xffffd84affffddce}, + {0x9630c039, 0xffffd84affffddcf}, + {0x9630c130, 0xffffd84affffddd0}, + {0x9630c131, 0xffffd84affffddd1}, + {0x9630c132, 0xffffd84affffddd2}, + {0x9630c133, 0xffffd84affffddd3}, + {0x9630c134, 0xffffd84affffddd4}, + {0x9630c135, 0xffffd84affffddd5}, + {0x9630c136, 0xffffd84affffddd6}, + {0x9630c137, 0xffffd84affffddd7}, + {0x9630c138, 0xffffd84affffddd8}, + {0x9630c139, 0xffffd84affffddd9}, + {0x9630c230, 0xffffd84affffddda}, + {0x9630c231, 0xffffd84affffdddb}, + {0x9630c232, 0xffffd84affffdddc}, + {0x9630c233, 0xffffd84affffdddd}, + {0x9630c234, 0xffffd84affffddde}, + {0x9630c235, 0xffffd84affffdddf}, + {0x9630c236, 0xffffd84affffdde0}, + {0x9630c237, 0xffffd84affffdde1}, + {0x9630c238, 0xffffd84affffdde2}, + {0x9630c239, 0xffffd84affffdde3}, + {0x9630c330, 0xffffd84affffdde4}, + {0x9630c331, 0xffffd84affffdde5}, + {0x9630c332, 0xffffd84affffdde6}, + {0x9630c333, 0xffffd84affffdde7}, + {0x9630c334, 0xffffd84affffdde8}, + {0x9630c335, 0xffffd84affffdde9}, + {0x9630c336, 0xffffd84affffddea}, + {0x9630c337, 0xffffd84affffddeb}, + {0x9630c338, 0xffffd84affffddec}, + {0x9630c339, 0xffffd84affffdded}, + {0x9630c430, 0xffffd84affffddee}, + {0x9630c431, 0xffffd84affffddef}, + {0x9630c432, 0xffffd84affffddf0}, + {0x9630c433, 0xffffd84affffddf1}, + {0x9630c434, 0xffffd84affffddf2}, + {0x9630c435, 0xffffd84affffddf3}, + {0x9630c436, 0xffffd84affffddf4}, + {0x9630c437, 0xffffd84affffddf5}, + {0x9630c438, 0xffffd84affffddf6}, + {0x9630c439, 0xffffd84affffddf7}, + {0x9630c530, 0xffffd84affffddf8}, + {0x9630c531, 0xffffd84affffddf9}, + {0x9630c532, 0xffffd84affffddfa}, + {0x9630c533, 0xffffd84affffddfb}, + {0x9630c534, 0xffffd84affffddfc}, + {0x9630c535, 0xffffd84affffddfd}, + {0x9630c536, 0xffffd84affffddfe}, + {0x9630c537, 0xffffd84affffddff}, + {0x9630c538, 0xffffd84affffde00}, + {0x9630c539, 0xffffd84affffde01}, + {0x9630c630, 0xffffd84affffde02}, + {0x9630c631, 0xffffd84affffde03}, + {0x9630c632, 0xffffd84affffde04}, + {0x9630c633, 0xffffd84affffde05}, + {0x9630c634, 0xffffd84affffde06}, + {0x9630c635, 0xffffd84affffde07}, + {0x9630c636, 0xffffd84affffde08}, + {0x9630c637, 0xffffd84affffde09}, + {0x9630c638, 0xffffd84affffde0a}, + {0x9630c639, 0xffffd84affffde0b}, + {0x9630c730, 0xffffd84affffde0c}, + {0x9630c731, 0xffffd84affffde0d}, + {0x9630c732, 0xffffd84affffde0e}, + {0x9630c733, 0xffffd84affffde0f}, + {0x9630c734, 0xffffd84affffde10}, + {0x9630c735, 0xffffd84affffde11}, + {0x9630c736, 0xffffd84affffde12}, + {0x9630c737, 0xffffd84affffde13}, + {0x9630c738, 0xffffd84affffde14}, + {0x9630c739, 0xffffd84affffde15}, + {0x9630c830, 0xffffd84affffde16}, + {0x9630c831, 0xffffd84affffde17}, + {0x9630c832, 0xffffd84affffde18}, + {0x9630c833, 0xffffd84affffde19}, + {0x9630c834, 0xffffd84affffde1a}, + {0x9630c835, 0xffffd84affffde1b}, + {0x9630c836, 0xffffd84affffde1c}, + {0x9630c837, 0xffffd84affffde1d}, + {0x9630c838, 0xffffd84affffde1e}, + {0x9630c839, 0xffffd84affffde1f}, + {0x9630c930, 0xffffd84affffde20}, + {0x9630c931, 0xffffd84affffde21}, + {0x9630c932, 0xffffd84affffde22}, + {0x9630c933, 0xffffd84affffde23}, + {0x9630c934, 0xffffd84affffde24}, + {0x9630c935, 0xffffd84affffde25}, + {0x9630c936, 0xffffd84affffde26}, + {0x9630c937, 0xffffd84affffde27}, + {0x9630c938, 0xffffd84affffde28}, + {0x9630c939, 0xffffd84affffde29}, + {0x9630ca30, 0xffffd84affffde2a}, + {0x9630ca31, 0xffffd84affffde2b}, + {0x9630ca32, 0xffffd84affffde2c}, + {0x9630ca33, 0xffffd84affffde2d}, + {0x9630ca34, 0xffffd84affffde2e}, + {0x9630ca35, 0xffffd84affffde2f}, + {0x9630ca36, 0xffffd84affffde30}, + {0x9630ca37, 0xffffd84affffde31}, + {0x9630ca38, 0xffffd84affffde32}, + {0x9630ca39, 0xffffd84affffde33}, + {0x9630cb30, 0xffffd84affffde34}, + {0x9630cb31, 0xffffd84affffde35}, + {0x9630cb32, 0xffffd84affffde36}, + {0x9630cb33, 0xffffd84affffde37}, + {0x9630cb34, 0xffffd84affffde38}, + {0x9630cb35, 0xffffd84affffde39}, + {0x9630cb36, 0xffffd84affffde3a}, + {0x9630cb37, 0xffffd84affffde3b}, + {0x9630cb38, 0xffffd84affffde3c}, + {0x9630cb39, 0xffffd84affffde3d}, + {0x9630cc30, 0xffffd84affffde3e}, + {0x9630cc31, 0xffffd84affffde3f}, + {0x9630cc32, 0xffffd84affffde40}, + {0x9630cc33, 0xffffd84affffde41}, + {0x9630cc34, 0xffffd84affffde42}, + {0x9630cc35, 0xffffd84affffde43}, + {0x9630cc36, 0xffffd84affffde44}, + {0x9630cc37, 0xffffd84affffde45}, + {0x9630cc38, 0xffffd84affffde46}, + {0x9630cc39, 0xffffd84affffde47}, + {0x9630cd30, 0xffffd84affffde48}, + {0x9630cd31, 0xffffd84affffde49}, + {0x9630cd32, 0xffffd84affffde4a}, + {0x9630cd33, 0xffffd84affffde4b}, + {0x9630cd34, 0xffffd84affffde4c}, + {0x9630cd35, 0xffffd84affffde4d}, + {0x9630cd36, 0xffffd84affffde4e}, + {0x9630cd37, 0xffffd84affffde4f}, + {0x9630cd38, 0xffffd84affffde50}, + {0x9630cd39, 0xffffd84affffde51}, + {0x9630ce30, 0xffffd84affffde52}, + {0x9630ce31, 0xffffd84affffde53}, + {0x9630ce32, 0xffffd84affffde54}, + {0x9630ce33, 0xffffd84affffde55}, + {0x9630ce34, 0xffffd84affffde56}, + {0x9630ce35, 0xffffd84affffde57}, + {0x9630ce36, 0xffffd84affffde58}, + {0x9630ce37, 0xffffd84affffde59}, + {0x9630ce38, 0xffffd84affffde5a}, + {0x9630ce39, 0xffffd84affffde5b}, + {0x9630cf30, 0xffffd84affffde5c}, + {0x9630cf31, 0xffffd84affffde5d}, + {0x9630cf32, 0xffffd84affffde5e}, + {0x9630cf33, 0xffffd84affffde5f}, + {0x9630cf34, 0xffffd84affffde60}, + {0x9630cf35, 0xffffd84affffde61}, + {0x9630cf36, 0xffffd84affffde62}, + {0x9630cf37, 0xffffd84affffde63}, + {0x9630cf38, 0xffffd84affffde64}, + {0x9630cf39, 0xffffd84affffde65}, + {0x9630d030, 0xffffd84affffde66}, + {0x9630d031, 0xffffd84affffde67}, + {0x9630d032, 0xffffd84affffde68}, + {0x9630d033, 0xffffd84affffde69}, + {0x9630d034, 0xffffd84affffde6a}, + {0x9630d035, 0xffffd84affffde6b}, + {0x9630d036, 0xffffd84affffde6c}, + {0x9630d037, 0xffffd84affffde6d}, + {0x9630d038, 0xffffd84affffde6e}, + {0x9630d039, 0xffffd84affffde6f}, + {0x9630d130, 0xffffd84affffde70}, + {0x9630d131, 0xffffd84affffde71}, + {0x9630d132, 0xffffd84affffde72}, + {0x9630d133, 0xffffd84affffde73}, + {0x9630d134, 0xffffd84affffde74}, + {0x9630d135, 0xffffd84affffde75}, + {0x9630d136, 0xffffd84affffde76}, + {0x9630d137, 0xffffd84affffde77}, + {0x9630d138, 0xffffd84affffde78}, + {0x9630d139, 0xffffd84affffde79}, + {0x9630d230, 0xffffd84affffde7a}, + {0x9630d231, 0xffffd84affffde7b}, + {0x9630d232, 0xffffd84affffde7c}, + {0x9630d233, 0xffffd84affffde7d}, + {0x9630d234, 0xffffd84affffde7e}, + {0x9630d235, 0xffffd84affffde7f}, + {0x9630d236, 0xffffd84affffde80}, + {0x9630d237, 0xffffd84affffde81}, + {0x9630d238, 0xffffd84affffde82}, + {0x9630d239, 0xffffd84affffde83}, + {0x9630d330, 0xffffd84affffde84}, + {0x9630d331, 0xffffd84affffde85}, + {0x9630d332, 0xffffd84affffde86}, + {0x9630d333, 0xffffd84affffde87}, + {0x9630d334, 0xffffd84affffde88}, + {0x9630d335, 0xffffd84affffde89}, + {0x9630d336, 0xffffd84affffde8a}, + {0x9630d337, 0xffffd84affffde8b}, + {0x9630d338, 0xffffd84affffde8c}, + {0x9630d339, 0xffffd84affffde8d}, + {0x9630d430, 0xffffd84affffde8e}, + {0x9630d431, 0xffffd84affffde8f}, + {0x9630d432, 0xffffd84affffde90}, + {0x9630d433, 0xffffd84affffde91}, + {0x9630d434, 0xffffd84affffde92}, + {0x9630d435, 0xffffd84affffde93}, + {0x9630d436, 0xffffd84affffde94}, + {0x9630d437, 0xffffd84affffde95}, + {0x9630d438, 0xffffd84affffde96}, + {0x9630d439, 0xffffd84affffde97}, + {0x9630d530, 0xffffd84affffde98}, + {0x9630d531, 0xffffd84affffde99}, + {0x9630d532, 0xffffd84affffde9a}, + {0x9630d533, 0xffffd84affffde9b}, + {0x9630d534, 0xffffd84affffde9c}, + {0x9630d535, 0xffffd84affffde9d}, + {0x9630d536, 0xffffd84affffde9e}, + {0x9630d537, 0xffffd84affffde9f}, + {0x9630d538, 0xffffd84affffdea0}, + {0x9630d539, 0xffffd84affffdea1}, + {0x9630d630, 0xffffd84affffdea2}, + {0x9630d631, 0xffffd84affffdea3}, + {0x9630d632, 0xffffd84affffdea4}, + {0x9630d633, 0xffffd84affffdea5}, + {0x9630d634, 0xffffd84affffdea6}, + {0x9630d635, 0xffffd84affffdea7}, + {0x9630d636, 0xffffd84affffdea8}, + {0x9630d637, 0xffffd84affffdea9}, + {0x9630d638, 0xffffd84affffdeaa}, + {0x9630d639, 0xffffd84affffdeab}, + {0x9630d730, 0xffffd84affffdeac}, + {0x9630d731, 0xffffd84affffdead}, + {0x9630d732, 0xffffd84affffdeae}, + {0x9630d733, 0xffffd84affffdeaf}, + {0x9630d734, 0xffffd84affffdeb0}, + {0x9630d735, 0xffffd84affffdeb1}, + {0x9630d736, 0xffffd84affffdeb2}, + {0x9630d737, 0xffffd84affffdeb3}, + {0x9630d738, 0xffffd84affffdeb4}, + {0x9630d739, 0xffffd84affffdeb5}, + {0x9630d830, 0xffffd84affffdeb6}, + {0x9630d831, 0xffffd84affffdeb7}, + {0x9630d832, 0xffffd84affffdeb8}, + {0x9630d833, 0xffffd84affffdeb9}, + {0x9630d834, 0xffffd84affffdeba}, + {0x9630d835, 0xffffd84affffdebb}, + {0x9630d836, 0xffffd84affffdebc}, + {0x9630d837, 0xffffd84affffdebd}, + {0x9630d838, 0xffffd84affffdebe}, + {0x9630d839, 0xffffd84affffdebf}, + {0x9630d930, 0xffffd84affffdec0}, + {0x9630d931, 0xffffd84affffdec1}, + {0x9630d932, 0xffffd84affffdec2}, + {0x9630d933, 0xffffd84affffdec3}, + {0x9630d934, 0xffffd84affffdec4}, + {0x9630d935, 0xffffd84affffdec5}, + {0x9630d936, 0xffffd84affffdec6}, + {0x9630d937, 0xffffd84affffdec7}, + {0x9630d938, 0xffffd84affffdec8}, + {0x9630d939, 0xffffd84affffdec9}, + {0x9630da30, 0xffffd84affffdeca}, + {0x9630da31, 0xffffd84affffdecb}, + {0x9630da32, 0xffffd84affffdecc}, + {0x9630da33, 0xffffd84affffdecd}, + {0x9630da34, 0xffffd84affffdece}, + {0x9630da35, 0xffffd84affffdecf}, + {0x9630da36, 0xffffd84affffded0}, + {0x9630da37, 0xffffd84affffded1}, + {0x9630da38, 0xffffd84affffded2}, + {0x9630da39, 0xffffd84affffded3}, + {0x9630db30, 0xffffd84affffded4}, + {0x9630db31, 0xffffd84affffded5}, + {0x9630db32, 0xffffd84affffded6}, + {0x9630db33, 0xffffd84affffded7}, + {0x9630db34, 0xffffd84affffded8}, + {0x9630db35, 0xffffd84affffded9}, + {0x9630db36, 0xffffd84affffdeda}, + {0x9630db37, 0xffffd84affffdedb}, + {0x9630db38, 0xffffd84affffdedc}, + {0x9630db39, 0xffffd84affffdedd}, + {0x9630dc30, 0xffffd84affffdede}, + {0x9630dc31, 0xffffd84affffdedf}, + {0x9630dc32, 0xffffd84affffdee0}, + {0x9630dc33, 0xffffd84affffdee1}, + {0x9630dc34, 0xffffd84affffdee2}, + {0x9630dc35, 0xffffd84affffdee3}, + {0x9630dc36, 0xffffd84affffdee4}, + {0x9630dc37, 0xffffd84affffdee5}, + {0x9630dc38, 0xffffd84affffdee6}, + {0x9630dc39, 0xffffd84affffdee7}, + {0x9630dd30, 0xffffd84affffdee8}, + {0x9630dd31, 0xffffd84affffdee9}, + {0x9630dd32, 0xffffd84affffdeea}, + {0x9630dd33, 0xffffd84affffdeeb}, + {0x9630dd34, 0xffffd84affffdeec}, + {0x9630dd35, 0xffffd84affffdeed}, + {0x9630dd36, 0xffffd84affffdeee}, + {0x9630dd37, 0xffffd84affffdeef}, + {0x9630dd38, 0xffffd84affffdef0}, + {0x9630dd39, 0xffffd84affffdef1}, + {0x9630de30, 0xffffd84affffdef2}, + {0x9630de31, 0xffffd84affffdef3}, + {0x9630de32, 0xffffd84affffdef4}, + {0x9630de33, 0xffffd84affffdef5}, + {0x9630de34, 0xffffd84affffdef6}, + {0x9630de35, 0xffffd84affffdef7}, + {0x9630de36, 0xffffd84affffdef8}, + {0x9630de37, 0xffffd84affffdef9}, + {0x9630de38, 0xffffd84affffdefa}, + {0x9630de39, 0xffffd84affffdefb}, + {0x9630df30, 0xffffd84affffdefc}, + {0x9630df31, 0xffffd84affffdefd}, + {0x9630df32, 0xffffd84affffdefe}, + {0x9630df33, 0xffffd84affffdeff}, + {0x9630df34, 0xffffd84affffdf00}, + {0x9630df35, 0xffffd84affffdf01}, + {0x9630df36, 0xffffd84affffdf02}, + {0x9630df37, 0xffffd84affffdf03}, + {0x9630df38, 0xffffd84affffdf04}, + {0x9630df39, 0xffffd84affffdf05}, + {0x9630e030, 0xffffd84affffdf06}, + {0x9630e031, 0xffffd84affffdf07}, + {0x9630e032, 0xffffd84affffdf08}, + {0x9630e033, 0xffffd84affffdf09}, + {0x9630e034, 0xffffd84affffdf0a}, + {0x9630e035, 0xffffd84affffdf0b}, + {0x9630e036, 0xffffd84affffdf0c}, + {0x9630e037, 0xffffd84affffdf0d}, + {0x9630e038, 0xffffd84affffdf0e}, + {0x9630e039, 0xffffd84affffdf0f}, + {0x9630e130, 0xffffd84affffdf10}, + {0x9630e131, 0xffffd84affffdf11}, + {0x9630e132, 0xffffd84affffdf12}, + {0x9630e133, 0xffffd84affffdf13}, + {0x9630e134, 0xffffd84affffdf14}, + {0x9630e135, 0xffffd84affffdf15}, + {0x9630e136, 0xffffd84affffdf16}, + {0x9630e137, 0xffffd84affffdf17}, + {0x9630e138, 0xffffd84affffdf18}, + {0x9630e139, 0xffffd84affffdf19}, + {0x9630e230, 0xffffd84affffdf1a}, + {0x9630e231, 0xffffd84affffdf1b}, + {0x9630e232, 0xffffd84affffdf1c}, + {0x9630e233, 0xffffd84affffdf1d}, + {0x9630e234, 0xffffd84affffdf1e}, + {0x9630e235, 0xffffd84affffdf1f}, + {0x9630e236, 0xffffd84affffdf20}, + {0x9630e237, 0xffffd84affffdf21}, + {0x9630e238, 0xffffd84affffdf22}, + {0x9630e239, 0xffffd84affffdf23}, + {0x9630e330, 0xffffd84affffdf24}, + {0x9630e331, 0xffffd84affffdf25}, + {0x9630e332, 0xffffd84affffdf26}, + {0x9630e333, 0xffffd84affffdf27}, + {0x9630e334, 0xffffd84affffdf28}, + {0x9630e335, 0xffffd84affffdf29}, + {0x9630e336, 0xffffd84affffdf2a}, + {0x9630e337, 0xffffd84affffdf2b}, + {0x9630e338, 0xffffd84affffdf2c}, + {0x9630e339, 0xffffd84affffdf2d}, + {0x9630e430, 0xffffd84affffdf2e}, + {0x9630e431, 0xffffd84affffdf2f}, + {0x9630e432, 0xffffd84affffdf30}, + {0x9630e433, 0xffffd84affffdf31}, + {0x9630e434, 0xffffd84affffdf32}, + {0x9630e435, 0xffffd84affffdf33}, + {0x9630e436, 0xffffd84affffdf34}, + {0x9630e437, 0xffffd84affffdf35}, + {0x9630e438, 0xffffd84affffdf36}, + {0x9630e439, 0xffffd84affffdf37}, + {0x9630e530, 0xffffd84affffdf38}, + {0x9630e531, 0xffffd84affffdf39}, + {0x9630e532, 0xffffd84affffdf3a}, + {0x9630e533, 0xffffd84affffdf3b}, + {0x9630e534, 0xffffd84affffdf3c}, + {0x9630e535, 0xffffd84affffdf3d}, + {0x9630e536, 0xffffd84affffdf3e}, + {0x9630e537, 0xffffd84affffdf3f}, + {0x9630e538, 0xffffd84affffdf40}, + {0x9630e539, 0xffffd84affffdf41}, + {0x9630e630, 0xffffd84affffdf42}, + {0x9630e631, 0xffffd84affffdf43}, + {0x9630e632, 0xffffd84affffdf44}, + {0x9630e633, 0xffffd84affffdf45}, + {0x9630e634, 0xffffd84affffdf46}, + {0x9630e635, 0xffffd84affffdf47}, + {0x9630e636, 0xffffd84affffdf48}, + {0x9630e637, 0xffffd84affffdf49}, + {0x9630e638, 0xffffd84affffdf4a}, + {0x9630e639, 0xffffd84affffdf4b}, + {0x9630e730, 0xffffd84affffdf4c}, + {0x9630e731, 0xffffd84affffdf4d}, + {0x9630e732, 0xffffd84affffdf4e}, + {0x9630e733, 0xffffd84affffdf4f}, + {0x9630e734, 0xffffd84affffdf50}, + {0x9630e735, 0xffffd84affffdf51}, + {0x9630e736, 0xffffd84affffdf52}, + {0x9630e737, 0xffffd84affffdf53}, + {0x9630e738, 0xffffd84affffdf54}, + {0x9630e739, 0xffffd84affffdf55}, + {0x9630e830, 0xffffd84affffdf56}, + {0x9630e831, 0xffffd84affffdf57}, + {0x9630e832, 0xffffd84affffdf58}, + {0x9630e833, 0xffffd84affffdf59}, + {0x9630e834, 0xffffd84affffdf5a}, + {0x9630e835, 0xffffd84affffdf5b}, + {0x9630e836, 0xffffd84affffdf5c}, + {0x9630e837, 0xffffd84affffdf5d}, + {0x9630e838, 0xffffd84affffdf5e}, + {0x9630e839, 0xffffd84affffdf5f}, + {0x9630e930, 0xffffd84affffdf60}, + {0x9630e931, 0xffffd84affffdf61}, + {0x9630e932, 0xffffd84affffdf62}, + {0x9630e933, 0xffffd84affffdf63}, + {0x9630e934, 0xffffd84affffdf64}, + {0x9630e935, 0xffffd84affffdf65}, + {0x9630e936, 0xffffd84affffdf66}, + {0x9630e937, 0xffffd84affffdf67}, + {0x9630e938, 0xffffd84affffdf68}, + {0x9630e939, 0xffffd84affffdf69}, + {0x9630ea30, 0xffffd84affffdf6a}, + {0x9630ea31, 0xffffd84affffdf6b}, + {0x9630ea32, 0xffffd84affffdf6c}, + {0x9630ea33, 0xffffd84affffdf6d}, + {0x9630ea34, 0xffffd84affffdf6e}, + {0x9630ea35, 0xffffd84affffdf6f}, + {0x9630ea36, 0xffffd84affffdf70}, + {0x9630ea37, 0xffffd84affffdf71}, + {0x9630ea38, 0xffffd84affffdf72}, + {0x9630ea39, 0xffffd84affffdf73}, + {0x9630eb30, 0xffffd84affffdf74}, + {0x9630eb31, 0xffffd84affffdf75}, + {0x9630eb32, 0xffffd84affffdf76}, + {0x9630eb33, 0xffffd84affffdf77}, + {0x9630eb34, 0xffffd84affffdf78}, + {0x9630eb35, 0xffffd84affffdf79}, + {0x9630eb36, 0xffffd84affffdf7a}, + {0x9630eb37, 0xffffd84affffdf7b}, + {0x9630eb38, 0xffffd84affffdf7c}, + {0x9630eb39, 0xffffd84affffdf7d}, + {0x9630ec30, 0xffffd84affffdf7e}, + {0x9630ec31, 0xffffd84affffdf7f}, + {0x9630ec32, 0xffffd84affffdf80}, + {0x9630ec33, 0xffffd84affffdf81}, + {0x9630ec34, 0xffffd84affffdf82}, + {0x9630ec35, 0xffffd84affffdf83}, + {0x9630ec36, 0xffffd84affffdf84}, + {0x9630ec37, 0xffffd84affffdf85}, + {0x9630ec38, 0xffffd84affffdf86}, + {0x9630ec39, 0xffffd84affffdf87}, + {0x9630ed30, 0xffffd84affffdf88}, + {0x9630ed31, 0xffffd84affffdf89}, + {0x9630ed32, 0xffffd84affffdf8a}, + {0x9630ed33, 0xffffd84affffdf8b}, + {0x9630ed34, 0xffffd84affffdf8c}, + {0x9630ed35, 0xffffd84affffdf8d}, + {0x9630ed36, 0xffffd84affffdf8e}, + {0x9630ed37, 0xffffd84affffdf8f}, + {0x9630ed38, 0xffffd84affffdf90}, + {0x9630ed39, 0xffffd84affffdf91}, + {0x9630ee30, 0xffffd84affffdf92}, + {0x9630ee31, 0xffffd84affffdf93}, + {0x9630ee32, 0xffffd84affffdf94}, + {0x9630ee33, 0xffffd84affffdf95}, + {0x9630ee34, 0xffffd84affffdf96}, + {0x9630ee35, 0xffffd84affffdf97}, + {0x9630ee36, 0xffffd84affffdf98}, + {0x9630ee37, 0xffffd84affffdf99}, + {0x9630ee38, 0xffffd84affffdf9a}, + {0x9630ee39, 0xffffd84affffdf9b}, + {0x9630ef30, 0xffffd84affffdf9c}, + {0x9630ef31, 0xffffd84affffdf9d}, + {0x9630ef32, 0xffffd84affffdf9e}, + {0x9630ef33, 0xffffd84affffdf9f}, + {0x9630ef34, 0xffffd84affffdfa0}, + {0x9630ef35, 0xffffd84affffdfa1}, + {0x9630ef36, 0xffffd84affffdfa2}, + {0x9630ef37, 0xffffd84affffdfa3}, + {0x9630ef38, 0xffffd84affffdfa4}, + {0x9630ef39, 0xffffd84affffdfa5}, + {0x9630f030, 0xffffd84affffdfa6}, + {0x9630f031, 0xffffd84affffdfa7}, + {0x9630f032, 0xffffd84affffdfa8}, + {0x9630f033, 0xffffd84affffdfa9}, + {0x9630f034, 0xffffd84affffdfaa}, + {0x9630f035, 0xffffd84affffdfab}, + {0x9630f036, 0xffffd84affffdfac}, + {0x9630f037, 0xffffd84affffdfad}, + {0x9630f038, 0xffffd84affffdfae}, + {0x9630f039, 0xffffd84affffdfaf}, + {0x9630f130, 0xffffd84affffdfb0}, + {0x9630f131, 0xffffd84affffdfb1}, + {0x9630f132, 0xffffd84affffdfb2}, + {0x9630f133, 0xffffd84affffdfb3}, + {0x9630f134, 0xffffd84affffdfb4}, + {0x9630f135, 0xffffd84affffdfb5}, + {0x9630f136, 0xffffd84affffdfb6}, + {0x9630f137, 0xffffd84affffdfb7}, + {0x9630f138, 0xffffd84affffdfb8}, + {0x9630f139, 0xffffd84affffdfb9}, + {0x9630f230, 0xffffd84affffdfba}, + {0x9630f231, 0xffffd84affffdfbb}, + {0x9630f232, 0xffffd84affffdfbc}, + {0x9630f233, 0xffffd84affffdfbd}, + {0x9630f234, 0xffffd84affffdfbe}, + {0x9630f235, 0xffffd84affffdfbf}, + {0x9630f236, 0xffffd84affffdfc0}, + {0x9630f237, 0xffffd84affffdfc1}, + {0x9630f238, 0xffffd84affffdfc2}, + {0x9630f239, 0xffffd84affffdfc3}, + {0x9630f330, 0xffffd84affffdfc4}, + {0x9630f331, 0xffffd84affffdfc5}, + {0x9630f332, 0xffffd84affffdfc6}, + {0x9630f333, 0xffffd84affffdfc7}, + {0x9630f334, 0xffffd84affffdfc8}, + {0x9630f335, 0xffffd84affffdfc9}, + {0x9630f336, 0xffffd84affffdfca}, + {0x9630f337, 0xffffd84affffdfcb}, + {0x9630f338, 0xffffd84affffdfcc}, + {0x9630f339, 0xffffd84affffdfcd}, + {0x9630f430, 0xffffd84affffdfce}, + {0x9630f431, 0xffffd84affffdfcf}, + {0x9630f432, 0xffffd84affffdfd0}, + {0x9630f433, 0xffffd84affffdfd1}, + {0x9630f434, 0xffffd84affffdfd2}, + {0x9630f435, 0xffffd84affffdfd3}, + {0x9630f436, 0xffffd84affffdfd4}, + {0x9630f437, 0xffffd84affffdfd5}, + {0x9630f438, 0xffffd84affffdfd6}, + {0x9630f439, 0xffffd84affffdfd7}, + {0x9630f530, 0xffffd84affffdfd8}, + {0x9630f531, 0xffffd84affffdfd9}, + {0x9630f532, 0xffffd84affffdfda}, + {0x9630f533, 0xffffd84affffdfdb}, + {0x9630f534, 0xffffd84affffdfdc}, + {0x9630f535, 0xffffd84affffdfdd}, + {0x9630f536, 0xffffd84affffdfde}, + {0x9630f537, 0xffffd84affffdfdf}, + {0x9630f538, 0xffffd84affffdfe0}, + {0x9630f539, 0xffffd84affffdfe1}, + {0x9630f630, 0xffffd84affffdfe2}, + {0x9630f631, 0xffffd84affffdfe3}, + {0x9630f632, 0xffffd84affffdfe4}, + {0x9630f633, 0xffffd84affffdfe5}, + {0x9630f634, 0xffffd84affffdfe6}, + {0x9630f635, 0xffffd84affffdfe7}, + {0x9630f636, 0xffffd84affffdfe8}, + {0x9630f637, 0xffffd84affffdfe9}, + {0x9630f638, 0xffffd84affffdfea}, + {0x9630f639, 0xffffd84affffdfeb}, + {0x9630f730, 0xffffd84affffdfec}, + {0x9630f731, 0xffffd84affffdfed}, + {0x9630f732, 0xffffd84affffdfee}, + {0x9630f733, 0xffffd84affffdfef}, + {0x9630f734, 0xffffd84affffdff0}, + {0x9630f735, 0xffffd84affffdff1}, + {0x9630f736, 0xffffd84affffdff2}, + {0x9630f737, 0xffffd84affffdff3}, + {0x9630f738, 0xffffd84affffdff4}, + {0x9630f739, 0xffffd84affffdff5}, + {0x9630f830, 0xffffd84affffdff6}, + {0x9630f831, 0xffffd84affffdff7}, + {0x9630f832, 0xffffd84affffdff8}, + {0x9630f833, 0xffffd84affffdff9}, + {0x9630f834, 0xffffd84affffdffa}, + {0x9630f835, 0xffffd84affffdffb}, + {0x9630f836, 0xffffd84affffdffc}, + {0x9630f837, 0xffffd84affffdffd}, + {0x9630f838, 0xffffd84affffdffe}, + {0x9630f839, 0xffffd84affffdfff}, + {0x9630f930, 0xffffd84bffffdc00}, + {0x9630f931, 0xffffd84bffffdc01}, + {0x9630f932, 0xffffd84bffffdc02}, + {0x9630f933, 0xffffd84bffffdc03}, + {0x9630f934, 0xffffd84bffffdc04}, + {0x9630f935, 0xffffd84bffffdc05}, + {0x9630f936, 0xffffd84bffffdc06}, + {0x9630f937, 0xffffd84bffffdc07}, + {0x9630f938, 0xffffd84bffffdc08}, + {0x9630f939, 0xffffd84bffffdc09}, + {0x9630fa30, 0xffffd84bffffdc0a}, + {0x9630fa31, 0xffffd84bffffdc0b}, + {0x9630fa32, 0xffffd84bffffdc0c}, + {0x9630fa33, 0xffffd84bffffdc0d}, + {0x9630fa34, 0xffffd84bffffdc0e}, + {0x9630fa35, 0xffffd84bffffdc0f}, + {0x9630fa36, 0xffffd84bffffdc10}, + {0x9630fa37, 0xffffd84bffffdc11}, + {0x9630fa38, 0xffffd84bffffdc12}, + {0x9630fa39, 0xffffd84bffffdc13}, + {0x9630fb30, 0xffffd84bffffdc14}, + {0x9630fb31, 0xffffd84bffffdc15}, + {0x9630fb32, 0xffffd84bffffdc16}, + {0x9630fb33, 0xffffd84bffffdc17}, + {0x9630fb34, 0xffffd84bffffdc18}, + {0x9630fb35, 0xffffd84bffffdc19}, + {0x9630fb36, 0xffffd84bffffdc1a}, + {0x9630fb37, 0xffffd84bffffdc1b}, + {0x9630fb38, 0xffffd84bffffdc1c}, + {0x9630fb39, 0xffffd84bffffdc1d}, + {0x9630fc30, 0xffffd84bffffdc1e}, + {0x9630fc31, 0xffffd84bffffdc1f}, + {0x9630fc32, 0xffffd84bffffdc20}, + {0x9630fc33, 0xffffd84bffffdc21}, + {0x9630fc34, 0xffffd84bffffdc22}, + {0x9630fc35, 0xffffd84bffffdc23}, + {0x9630fc36, 0xffffd84bffffdc24}, + {0x9630fc37, 0xffffd84bffffdc25}, + {0x9630fc38, 0xffffd84bffffdc26}, + {0x9630fc39, 0xffffd84bffffdc27}, + {0x9630fd30, 0xffffd84bffffdc28}, + {0x9630fd31, 0xffffd84bffffdc29}, + {0x9630fd32, 0xffffd84bffffdc2a}, + {0x9630fd33, 0xffffd84bffffdc2b}, + {0x9630fd34, 0xffffd84bffffdc2c}, + {0x9630fd35, 0xffffd84bffffdc2d}, + {0x9630fd36, 0xffffd84bffffdc2e}, + {0x9630fd37, 0xffffd84bffffdc2f}, + {0x9630fd38, 0xffffd84bffffdc30}, + {0x9630fd39, 0xffffd84bffffdc31}, + {0x9630fe30, 0xffffd84bffffdc32}, + {0x9630fe31, 0xffffd84bffffdc33}, + {0x9630fe32, 0xffffd84bffffdc34}, + {0x9630fe33, 0xffffd84bffffdc35}, + {0x9630fe34, 0xffffd84bffffdc36}, + {0x9630fe35, 0xffffd84bffffdc37}, + {0x9630fe36, 0xffffd84bffffdc38}, + {0x9630fe37, 0xffffd84bffffdc39}, + {0x9630fe38, 0xffffd84bffffdc3a}, + {0x9630fe39, 0xffffd84bffffdc3b}, + {0x96318130, 0xffffd84bffffdc3c}, + {0x96318131, 0xffffd84bffffdc3d}, + {0x96318132, 0xffffd84bffffdc3e}, + {0x96318133, 0xffffd84bffffdc3f}, + {0x96318134, 0xffffd84bffffdc40}, + {0x96318135, 0xffffd84bffffdc41}, + {0x96318136, 0xffffd84bffffdc42}, + {0x96318137, 0xffffd84bffffdc43}, + {0x96318138, 0xffffd84bffffdc44}, + {0x96318139, 0xffffd84bffffdc45}, + {0x96318230, 0xffffd84bffffdc46}, + {0x96318231, 0xffffd84bffffdc47}, + {0x96318232, 0xffffd84bffffdc48}, + {0x96318233, 0xffffd84bffffdc49}, + {0x96318234, 0xffffd84bffffdc4a}, + {0x96318235, 0xffffd84bffffdc4b}, + {0x96318236, 0xffffd84bffffdc4c}, + {0x96318237, 0xffffd84bffffdc4d}, + {0x96318238, 0xffffd84bffffdc4e}, + {0x96318239, 0xffffd84bffffdc4f}, + {0x96318330, 0xffffd84bffffdc50}, + {0x96318331, 0xffffd84bffffdc51}, + {0x96318332, 0xffffd84bffffdc52}, + {0x96318333, 0xffffd84bffffdc53}, + {0x96318334, 0xffffd84bffffdc54}, + {0x96318335, 0xffffd84bffffdc55}, + {0x96318336, 0xffffd84bffffdc56}, + {0x96318337, 0xffffd84bffffdc57}, + {0x96318338, 0xffffd84bffffdc58}, + {0x96318339, 0xffffd84bffffdc59}, + {0x96318430, 0xffffd84bffffdc5a}, + {0x96318431, 0xffffd84bffffdc5b}, + {0x96318432, 0xffffd84bffffdc5c}, + {0x96318433, 0xffffd84bffffdc5d}, + {0x96318434, 0xffffd84bffffdc5e}, + {0x96318435, 0xffffd84bffffdc5f}, + {0x96318436, 0xffffd84bffffdc60}, + {0x96318437, 0xffffd84bffffdc61}, + {0x96318438, 0xffffd84bffffdc62}, + {0x96318439, 0xffffd84bffffdc63}, + {0x96318530, 0xffffd84bffffdc64}, + {0x96318531, 0xffffd84bffffdc65}, + {0x96318532, 0xffffd84bffffdc66}, + {0x96318533, 0xffffd84bffffdc67}, + {0x96318534, 0xffffd84bffffdc68}, + {0x96318535, 0xffffd84bffffdc69}, + {0x96318536, 0xffffd84bffffdc6a}, + {0x96318537, 0xffffd84bffffdc6b}, + {0x96318538, 0xffffd84bffffdc6c}, + {0x96318539, 0xffffd84bffffdc6d}, + {0x96318630, 0xffffd84bffffdc6e}, + {0x96318631, 0xffffd84bffffdc6f}, + {0x96318632, 0xffffd84bffffdc70}, + {0x96318633, 0xffffd84bffffdc71}, + {0x96318634, 0xffffd84bffffdc72}, + {0x96318635, 0xffffd84bffffdc73}, + {0x96318636, 0xffffd84bffffdc74}, + {0x96318637, 0xffffd84bffffdc75}, + {0x96318638, 0xffffd84bffffdc76}, + {0x96318639, 0xffffd84bffffdc77}, + {0x96318730, 0xffffd84bffffdc78}, + {0x96318731, 0xffffd84bffffdc79}, + {0x96318732, 0xffffd84bffffdc7a}, + {0x96318733, 0xffffd84bffffdc7b}, + {0x96318734, 0xffffd84bffffdc7c}, + {0x96318735, 0xffffd84bffffdc7d}, + {0x96318736, 0xffffd84bffffdc7e}, + {0x96318737, 0xffffd84bffffdc7f}, + {0x96318738, 0xffffd84bffffdc80}, + {0x96318739, 0xffffd84bffffdc81}, + {0x96318830, 0xffffd84bffffdc82}, + {0x96318831, 0xffffd84bffffdc83}, + {0x96318832, 0xffffd84bffffdc84}, + {0x96318833, 0xffffd84bffffdc85}, + {0x96318834, 0xffffd84bffffdc86}, + {0x96318835, 0xffffd84bffffdc87}, + {0x96318836, 0xffffd84bffffdc88}, + {0x96318837, 0xffffd84bffffdc89}, + {0x96318838, 0xffffd84bffffdc8a}, + {0x96318839, 0xffffd84bffffdc8b}, + {0x96318930, 0xffffd84bffffdc8c}, + {0x96318931, 0xffffd84bffffdc8d}, + {0x96318932, 0xffffd84bffffdc8e}, + {0x96318933, 0xffffd84bffffdc8f}, + {0x96318934, 0xffffd84bffffdc90}, + {0x96318935, 0xffffd84bffffdc91}, + {0x96318936, 0xffffd84bffffdc92}, + {0x96318937, 0xffffd84bffffdc93}, + {0x96318938, 0xffffd84bffffdc94}, + {0x96318939, 0xffffd84bffffdc95}, + {0x96318a30, 0xffffd84bffffdc96}, + {0x96318a31, 0xffffd84bffffdc97}, + {0x96318a32, 0xffffd84bffffdc98}, + {0x96318a33, 0xffffd84bffffdc99}, + {0x96318a34, 0xffffd84bffffdc9a}, + {0x96318a35, 0xffffd84bffffdc9b}, + {0x96318a36, 0xffffd84bffffdc9c}, + {0x96318a37, 0xffffd84bffffdc9d}, + {0x96318a38, 0xffffd84bffffdc9e}, + {0x96318a39, 0xffffd84bffffdc9f}, + {0x96318b30, 0xffffd84bffffdca0}, + {0x96318b31, 0xffffd84bffffdca1}, + {0x96318b32, 0xffffd84bffffdca2}, + {0x96318b33, 0xffffd84bffffdca3}, + {0x96318b34, 0xffffd84bffffdca4}, + {0x96318b35, 0xffffd84bffffdca5}, + {0x96318b36, 0xffffd84bffffdca6}, + {0x96318b37, 0xffffd84bffffdca7}, + {0x96318b38, 0xffffd84bffffdca8}, + {0x96318b39, 0xffffd84bffffdca9}, + {0x96318c30, 0xffffd84bffffdcaa}, + {0x96318c31, 0xffffd84bffffdcab}, + {0x96318c32, 0xffffd84bffffdcac}, + {0x96318c33, 0xffffd84bffffdcad}, + {0x96318c34, 0xffffd84bffffdcae}, + {0x96318c35, 0xffffd84bffffdcaf}, + {0x96318c36, 0xffffd84bffffdcb0}, + {0x96318c37, 0xffffd84bffffdcb1}, + {0x96318c38, 0xffffd84bffffdcb2}, + {0x96318c39, 0xffffd84bffffdcb3}, + {0x96318d30, 0xffffd84bffffdcb4}, + {0x96318d31, 0xffffd84bffffdcb5}, + {0x96318d32, 0xffffd84bffffdcb6}, + {0x96318d33, 0xffffd84bffffdcb7}, + {0x96318d34, 0xffffd84bffffdcb8}, + {0x96318d35, 0xffffd84bffffdcb9}, + {0x96318d36, 0xffffd84bffffdcba}, + {0x96318d37, 0xffffd84bffffdcbb}, + {0x96318d38, 0xffffd84bffffdcbc}, + {0x96318d39, 0xffffd84bffffdcbd}, + {0x96318e30, 0xffffd84bffffdcbe}, + {0x96318e31, 0xffffd84bffffdcbf}, + {0x96318e32, 0xffffd84bffffdcc0}, + {0x96318e33, 0xffffd84bffffdcc1}, + {0x96318e34, 0xffffd84bffffdcc2}, + {0x96318e35, 0xffffd84bffffdcc3}, + {0x96318e36, 0xffffd84bffffdcc4}, + {0x96318e37, 0xffffd84bffffdcc5}, + {0x96318e38, 0xffffd84bffffdcc6}, + {0x96318e39, 0xffffd84bffffdcc7}, + {0x96318f30, 0xffffd84bffffdcc8}, + {0x96318f31, 0xffffd84bffffdcc9}, + {0x96318f32, 0xffffd84bffffdcca}, + {0x96318f33, 0xffffd84bffffdccb}, + {0x96318f34, 0xffffd84bffffdccc}, + {0x96318f35, 0xffffd84bffffdccd}, + {0x96318f36, 0xffffd84bffffdcce}, + {0x96318f37, 0xffffd84bffffdccf}, + {0x96318f38, 0xffffd84bffffdcd0}, + {0x96318f39, 0xffffd84bffffdcd1}, + {0x96319030, 0xffffd84bffffdcd2}, + {0x96319031, 0xffffd84bffffdcd3}, + {0x96319032, 0xffffd84bffffdcd4}, + {0x96319033, 0xffffd84bffffdcd5}, + {0x96319034, 0xffffd84bffffdcd6}, + {0x96319035, 0xffffd84bffffdcd7}, + {0x96319036, 0xffffd84bffffdcd8}, + {0x96319037, 0xffffd84bffffdcd9}, + {0x96319038, 0xffffd84bffffdcda}, + {0x96319039, 0xffffd84bffffdcdb}, + {0x96319130, 0xffffd84bffffdcdc}, + {0x96319131, 0xffffd84bffffdcdd}, + {0x96319132, 0xffffd84bffffdcde}, + {0x96319133, 0xffffd84bffffdcdf}, + {0x96319134, 0xffffd84bffffdce0}, + {0x96319135, 0xffffd84bffffdce1}, + {0x96319136, 0xffffd84bffffdce2}, + {0x96319137, 0xffffd84bffffdce3}, + {0x96319138, 0xffffd84bffffdce4}, + {0x96319139, 0xffffd84bffffdce5}, + {0x96319230, 0xffffd84bffffdce6}, + {0x96319231, 0xffffd84bffffdce7}, + {0x96319232, 0xffffd84bffffdce8}, + {0x96319233, 0xffffd84bffffdce9}, + {0x96319234, 0xffffd84bffffdcea}, + {0x96319235, 0xffffd84bffffdceb}, + {0x96319236, 0xffffd84bffffdcec}, + {0x96319237, 0xffffd84bffffdced}, + {0x96319238, 0xffffd84bffffdcee}, + {0x96319239, 0xffffd84bffffdcef}, + {0x96319330, 0xffffd84bffffdcf0}, + {0x96319331, 0xffffd84bffffdcf1}, + {0x96319332, 0xffffd84bffffdcf2}, + {0x96319333, 0xffffd84bffffdcf3}, + {0x96319334, 0xffffd84bffffdcf4}, + {0x96319335, 0xffffd84bffffdcf5}, + {0x96319336, 0xffffd84bffffdcf6}, + {0x96319337, 0xffffd84bffffdcf7}, + {0x96319338, 0xffffd84bffffdcf8}, + {0x96319339, 0xffffd84bffffdcf9}, + {0x96319430, 0xffffd84bffffdcfa}, + {0x96319431, 0xffffd84bffffdcfb}, + {0x96319432, 0xffffd84bffffdcfc}, + {0x96319433, 0xffffd84bffffdcfd}, + {0x96319434, 0xffffd84bffffdcfe}, + {0x96319435, 0xffffd84bffffdcff}, + {0x96319436, 0xffffd84bffffdd00}, + {0x96319437, 0xffffd84bffffdd01}, + {0x96319438, 0xffffd84bffffdd02}, + {0x96319439, 0xffffd84bffffdd03}, + {0x96319530, 0xffffd84bffffdd04}, + {0x96319531, 0xffffd84bffffdd05}, + {0x96319532, 0xffffd84bffffdd06}, + {0x96319533, 0xffffd84bffffdd07}, + {0x96319534, 0xffffd84bffffdd08}, + {0x96319535, 0xffffd84bffffdd09}, + {0x96319536, 0xffffd84bffffdd0a}, + {0x96319537, 0xffffd84bffffdd0b}, + {0x96319538, 0xffffd84bffffdd0c}, + {0x96319539, 0xffffd84bffffdd0d}, + {0x96319630, 0xffffd84bffffdd0e}, + {0x96319631, 0xffffd84bffffdd0f}, + {0x96319632, 0xffffd84bffffdd10}, + {0x96319633, 0xffffd84bffffdd11}, + {0x96319634, 0xffffd84bffffdd12}, + {0x96319635, 0xffffd84bffffdd13}, + {0x96319636, 0xffffd84bffffdd14}, + {0x96319637, 0xffffd84bffffdd15}, + {0x96319638, 0xffffd84bffffdd16}, + {0x96319639, 0xffffd84bffffdd17}, + {0x96319730, 0xffffd84bffffdd18}, + {0x96319731, 0xffffd84bffffdd19}, + {0x96319732, 0xffffd84bffffdd1a}, + {0x96319733, 0xffffd84bffffdd1b}, + {0x96319734, 0xffffd84bffffdd1c}, + {0x96319735, 0xffffd84bffffdd1d}, + {0x96319736, 0xffffd84bffffdd1e}, + {0x96319737, 0xffffd84bffffdd1f}, + {0x96319738, 0xffffd84bffffdd20}, + {0x96319739, 0xffffd84bffffdd21}, + {0x96319830, 0xffffd84bffffdd22}, + {0x96319831, 0xffffd84bffffdd23}, + {0x96319832, 0xffffd84bffffdd24}, + {0x96319833, 0xffffd84bffffdd25}, + {0x96319834, 0xffffd84bffffdd26}, + {0x96319835, 0xffffd84bffffdd27}, + {0x96319836, 0xffffd84bffffdd28}, + {0x96319837, 0xffffd84bffffdd29}, + {0x96319838, 0xffffd84bffffdd2a}, + {0x96319839, 0xffffd84bffffdd2b}, + {0x96319930, 0xffffd84bffffdd2c}, + {0x96319931, 0xffffd84bffffdd2d}, + {0x96319932, 0xffffd84bffffdd2e}, + {0x96319933, 0xffffd84bffffdd2f}, + {0x96319934, 0xffffd84bffffdd30}, + {0x96319935, 0xffffd84bffffdd31}, + {0x96319936, 0xffffd84bffffdd32}, + {0x96319937, 0xffffd84bffffdd33}, + {0x96319938, 0xffffd84bffffdd34}, + {0x96319939, 0xffffd84bffffdd35}, + {0x96319a30, 0xffffd84bffffdd36}, + {0x96319a31, 0xffffd84bffffdd37}, + {0x96319a32, 0xffffd84bffffdd38}, + {0x96319a33, 0xffffd84bffffdd39}, + {0x96319a34, 0xffffd84bffffdd3a}, + {0x96319a35, 0xffffd84bffffdd3b}, + {0x96319a36, 0xffffd84bffffdd3c}, + {0x96319a37, 0xffffd84bffffdd3d}, + {0x96319a38, 0xffffd84bffffdd3e}, + {0x96319a39, 0xffffd84bffffdd3f}, + {0x96319b30, 0xffffd84bffffdd40}, + {0x96319b31, 0xffffd84bffffdd41}, + {0x96319b32, 0xffffd84bffffdd42}, + {0x96319b33, 0xffffd84bffffdd43}, + {0x96319b34, 0xffffd84bffffdd44}, + {0x96319b35, 0xffffd84bffffdd45}, + {0x96319b36, 0xffffd84bffffdd46}, + {0x96319b37, 0xffffd84bffffdd47}, + {0x96319b38, 0xffffd84bffffdd48}, + {0x96319b39, 0xffffd84bffffdd49}, + {0x96319c30, 0xffffd84bffffdd4a}, + {0x96319c31, 0xffffd84bffffdd4b}, + {0x96319c32, 0xffffd84bffffdd4c}, + {0x96319c33, 0xffffd84bffffdd4d}, + {0x96319c34, 0xffffd84bffffdd4e}, + {0x96319c35, 0xffffd84bffffdd4f}, + {0x96319c36, 0xffffd84bffffdd50}, + {0x96319c37, 0xffffd84bffffdd51}, + {0x96319c38, 0xffffd84bffffdd52}, + {0x96319c39, 0xffffd84bffffdd53}, + {0x96319d30, 0xffffd84bffffdd54}, + {0x96319d31, 0xffffd84bffffdd55}, + {0x96319d32, 0xffffd84bffffdd56}, + {0x96319d33, 0xffffd84bffffdd57}, + {0x96319d34, 0xffffd84bffffdd58}, + {0x96319d35, 0xffffd84bffffdd59}, + {0x96319d36, 0xffffd84bffffdd5a}, + {0x96319d37, 0xffffd84bffffdd5b}, + {0x96319d38, 0xffffd84bffffdd5c}, + {0x96319d39, 0xffffd84bffffdd5d}, + {0x96319e30, 0xffffd84bffffdd5e}, + {0x96319e31, 0xffffd84bffffdd5f}, + {0x96319e32, 0xffffd84bffffdd60}, + {0x96319e33, 0xffffd84bffffdd61}, + {0x96319e34, 0xffffd84bffffdd62}, + {0x96319e35, 0xffffd84bffffdd63}, + {0x96319e36, 0xffffd84bffffdd64}, + {0x96319e37, 0xffffd84bffffdd65}, + {0x96319e38, 0xffffd84bffffdd66}, + {0x96319e39, 0xffffd84bffffdd67}, + {0x96319f30, 0xffffd84bffffdd68}, + {0x96319f31, 0xffffd84bffffdd69}, + {0x96319f32, 0xffffd84bffffdd6a}, + {0x96319f33, 0xffffd84bffffdd6b}, + {0x96319f34, 0xffffd84bffffdd6c}, + {0x96319f35, 0xffffd84bffffdd6d}, + {0x96319f36, 0xffffd84bffffdd6e}, + {0x96319f37, 0xffffd84bffffdd6f}, + {0x96319f38, 0xffffd84bffffdd70}, + {0x96319f39, 0xffffd84bffffdd71}, + {0x9631a030, 0xffffd84bffffdd72}, + {0x9631a031, 0xffffd84bffffdd73}, + {0x9631a032, 0xffffd84bffffdd74}, + {0x9631a033, 0xffffd84bffffdd75}, + {0x9631a034, 0xffffd84bffffdd76}, + {0x9631a035, 0xffffd84bffffdd77}, + {0x9631a036, 0xffffd84bffffdd78}, + {0x9631a037, 0xffffd84bffffdd79}, + {0x9631a038, 0xffffd84bffffdd7a}, + {0x9631a039, 0xffffd84bffffdd7b}, + {0x9631a130, 0xffffd84bffffdd7c}, + {0x9631a131, 0xffffd84bffffdd7d}, + {0x9631a132, 0xffffd84bffffdd7e}, + {0x9631a133, 0xffffd84bffffdd7f}, + {0x9631a134, 0xffffd84bffffdd80}, + {0x9631a135, 0xffffd84bffffdd81}, + {0x9631a136, 0xffffd84bffffdd82}, + {0x9631a137, 0xffffd84bffffdd83}, + {0x9631a138, 0xffffd84bffffdd84}, + {0x9631a139, 0xffffd84bffffdd85}, + {0x9631a230, 0xffffd84bffffdd86}, + {0x9631a231, 0xffffd84bffffdd87}, + {0x9631a232, 0xffffd84bffffdd88}, + {0x9631a233, 0xffffd84bffffdd89}, + {0x9631a234, 0xffffd84bffffdd8a}, + {0x9631a235, 0xffffd84bffffdd8b}, + {0x9631a236, 0xffffd84bffffdd8c}, + {0x9631a237, 0xffffd84bffffdd8d}, + {0x9631a238, 0xffffd84bffffdd8e}, + {0x9631a239, 0xffffd84bffffdd8f}, + {0x9631a330, 0xffffd84bffffdd90}, + {0x9631a331, 0xffffd84bffffdd91}, + {0x9631a332, 0xffffd84bffffdd92}, + {0x9631a333, 0xffffd84bffffdd93}, + {0x9631a334, 0xffffd84bffffdd94}, + {0x9631a335, 0xffffd84bffffdd95}, + {0x9631a336, 0xffffd84bffffdd96}, + {0x9631a337, 0xffffd84bffffdd97}, + {0x9631a338, 0xffffd84bffffdd98}, + {0x9631a339, 0xffffd84bffffdd99}, + {0x9631a430, 0xffffd84bffffdd9a}, + {0x9631a431, 0xffffd84bffffdd9b}, + {0x9631a432, 0xffffd84bffffdd9c}, + {0x9631a433, 0xffffd84bffffdd9d}, + {0x9631a434, 0xffffd84bffffdd9e}, + {0x9631a435, 0xffffd84bffffdd9f}, + {0x9631a436, 0xffffd84bffffdda0}, + {0x9631a437, 0xffffd84bffffdda1}, + {0x9631a438, 0xffffd84bffffdda2}, + {0x9631a439, 0xffffd84bffffdda3}, + {0x9631a530, 0xffffd84bffffdda4}, + {0x9631a531, 0xffffd84bffffdda5}, + {0x9631a532, 0xffffd84bffffdda6}, + {0x9631a533, 0xffffd84bffffdda7}, + {0x9631a534, 0xffffd84bffffdda8}, + {0x9631a535, 0xffffd84bffffdda9}, + {0x9631a536, 0xffffd84bffffddaa}, + {0x9631a537, 0xffffd84bffffddab}, + {0x9631a538, 0xffffd84bffffddac}, + {0x9631a539, 0xffffd84bffffddad}, + {0x9631a630, 0xffffd84bffffddae}, + {0x9631a631, 0xffffd84bffffddaf}, + {0x9631a632, 0xffffd84bffffddb0}, + {0x9631a633, 0xffffd84bffffddb1}, + {0x9631a634, 0xffffd84bffffddb2}, + {0x9631a635, 0xffffd84bffffddb3}, + {0x9631a636, 0xffffd84bffffddb4}, + {0x9631a637, 0xffffd84bffffddb5}, + {0x9631a638, 0xffffd84bffffddb6}, + {0x9631a639, 0xffffd84bffffddb7}, + {0x9631a730, 0xffffd84bffffddb8}, + {0x9631a731, 0xffffd84bffffddb9}, + {0x9631a732, 0xffffd84bffffddba}, + {0x9631a733, 0xffffd84bffffddbb}, + {0x9631a734, 0xffffd84bffffddbc}, + {0x9631a735, 0xffffd84bffffddbd}, + {0x9631a736, 0xffffd84bffffddbe}, + {0x9631a737, 0xffffd84bffffddbf}, + {0x9631a738, 0xffffd84bffffddc0}, + {0x9631a739, 0xffffd84bffffddc1}, + {0x9631a830, 0xffffd84bffffddc2}, + {0x9631a831, 0xffffd84bffffddc3}, + {0x9631a832, 0xffffd84bffffddc4}, + {0x9631a833, 0xffffd84bffffddc5}, + {0x9631a834, 0xffffd84bffffddc6}, + {0x9631a835, 0xffffd84bffffddc7}, + {0x9631a836, 0xffffd84bffffddc8}, + {0x9631a837, 0xffffd84bffffddc9}, + {0x9631a838, 0xffffd84bffffddca}, + {0x9631a839, 0xffffd84bffffddcb}, + {0x9631a930, 0xffffd84bffffddcc}, + {0x9631a931, 0xffffd84bffffddcd}, + {0x9631a932, 0xffffd84bffffddce}, + {0x9631a933, 0xffffd84bffffddcf}, + {0x9631a934, 0xffffd84bffffddd0}, + {0x9631a935, 0xffffd84bffffddd1}, + {0x9631a936, 0xffffd84bffffddd2}, + {0x9631a937, 0xffffd84bffffddd3}, + {0x9631a938, 0xffffd84bffffddd4}, + {0x9631a939, 0xffffd84bffffddd5}, + {0x9631aa30, 0xffffd84bffffddd6}, + {0x9631aa31, 0xffffd84bffffddd7}, + {0x9631aa32, 0xffffd84bffffddd8}, + {0x9631aa33, 0xffffd84bffffddd9}, + {0x9631aa34, 0xffffd84bffffddda}, + {0x9631aa35, 0xffffd84bffffdddb}, + {0x9631aa36, 0xffffd84bffffdddc}, + {0x9631aa37, 0xffffd84bffffdddd}, + {0x9631aa38, 0xffffd84bffffddde}, + {0x9631aa39, 0xffffd84bffffdddf}, + {0x9631ab30, 0xffffd84bffffdde0}, + {0x9631ab31, 0xffffd84bffffdde1}, + {0x9631ab32, 0xffffd84bffffdde2}, + {0x9631ab33, 0xffffd84bffffdde3}, + {0x9631ab34, 0xffffd84bffffdde4}, + {0x9631ab35, 0xffffd84bffffdde5}, + {0x9631ab36, 0xffffd84bffffdde6}, + {0x9631ab37, 0xffffd84bffffdde7}, + {0x9631ab38, 0xffffd84bffffdde8}, + {0x9631ab39, 0xffffd84bffffdde9}, + {0x9631ac30, 0xffffd84bffffddea}, + {0x9631ac31, 0xffffd84bffffddeb}, + {0x9631ac32, 0xffffd84bffffddec}, + {0x9631ac33, 0xffffd84bffffdded}, + {0x9631ac34, 0xffffd84bffffddee}, + {0x9631ac35, 0xffffd84bffffddef}, + {0x9631ac36, 0xffffd84bffffddf0}, + {0x9631ac37, 0xffffd84bffffddf1}, + {0x9631ac38, 0xffffd84bffffddf2}, + {0x9631ac39, 0xffffd84bffffddf3}, + {0x9631ad30, 0xffffd84bffffddf4}, + {0x9631ad31, 0xffffd84bffffddf5}, + {0x9631ad32, 0xffffd84bffffddf6}, + {0x9631ad33, 0xffffd84bffffddf7}, + {0x9631ad34, 0xffffd84bffffddf8}, + {0x9631ad35, 0xffffd84bffffddf9}, + {0x9631ad36, 0xffffd84bffffddfa}, + {0x9631ad37, 0xffffd84bffffddfb}, + {0x9631ad38, 0xffffd84bffffddfc}, + {0x9631ad39, 0xffffd84bffffddfd}, + {0x9631ae30, 0xffffd84bffffddfe}, + {0x9631ae31, 0xffffd84bffffddff}, + {0x9631ae32, 0xffffd84bffffde00}, + {0x9631ae33, 0xffffd84bffffde01}, + {0x9631ae34, 0xffffd84bffffde02}, + {0x9631ae35, 0xffffd84bffffde03}, + {0x9631ae36, 0xffffd84bffffde04}, + {0x9631ae37, 0xffffd84bffffde05}, + {0x9631ae38, 0xffffd84bffffde06}, + {0x9631ae39, 0xffffd84bffffde07}, + {0x9631af30, 0xffffd84bffffde08}, + {0x9631af31, 0xffffd84bffffde09}, + {0x9631af32, 0xffffd84bffffde0a}, + {0x9631af33, 0xffffd84bffffde0b}, + {0x9631af34, 0xffffd84bffffde0c}, + {0x9631af35, 0xffffd84bffffde0d}, + {0x9631af36, 0xffffd84bffffde0e}, + {0x9631af37, 0xffffd84bffffde0f}, + {0x9631af38, 0xffffd84bffffde10}, + {0x9631af39, 0xffffd84bffffde11}, + {0x9631b030, 0xffffd84bffffde12}, + {0x9631b031, 0xffffd84bffffde13}, + {0x9631b032, 0xffffd84bffffde14}, + {0x9631b033, 0xffffd84bffffde15}, + {0x9631b034, 0xffffd84bffffde16}, + {0x9631b035, 0xffffd84bffffde17}, + {0x9631b036, 0xffffd84bffffde18}, + {0x9631b037, 0xffffd84bffffde19}, + {0x9631b038, 0xffffd84bffffde1a}, + {0x9631b039, 0xffffd84bffffde1b}, + {0x9631b130, 0xffffd84bffffde1c}, + {0x9631b131, 0xffffd84bffffde1d}, + {0x9631b132, 0xffffd84bffffde1e}, + {0x9631b133, 0xffffd84bffffde1f}, + {0x9631b134, 0xffffd84bffffde20}, + {0x9631b135, 0xffffd84bffffde21}, + {0x9631b136, 0xffffd84bffffde22}, + {0x9631b137, 0xffffd84bffffde23}, + {0x9631b138, 0xffffd84bffffde24}, + {0x9631b139, 0xffffd84bffffde25}, + {0x9631b230, 0xffffd84bffffde26}, + {0x9631b231, 0xffffd84bffffde27}, + {0x9631b232, 0xffffd84bffffde28}, + {0x9631b233, 0xffffd84bffffde29}, + {0x9631b234, 0xffffd84bffffde2a}, + {0x9631b235, 0xffffd84bffffde2b}, + {0x9631b236, 0xffffd84bffffde2c}, + {0x9631b237, 0xffffd84bffffde2d}, + {0x9631b238, 0xffffd84bffffde2e}, + {0x9631b239, 0xffffd84bffffde2f}, + {0x9631b330, 0xffffd84bffffde30}, + {0x9631b331, 0xffffd84bffffde31}, + {0x9631b332, 0xffffd84bffffde32}, + {0x9631b333, 0xffffd84bffffde33}, + {0x9631b334, 0xffffd84bffffde34}, + {0x9631b335, 0xffffd84bffffde35}, + {0x9631b336, 0xffffd84bffffde36}, + {0x9631b337, 0xffffd84bffffde37}, + {0x9631b338, 0xffffd84bffffde38}, + {0x9631b339, 0xffffd84bffffde39}, + {0x9631b430, 0xffffd84bffffde3a}, + {0x9631b431, 0xffffd84bffffde3b}, + {0x9631b432, 0xffffd84bffffde3c}, + {0x9631b433, 0xffffd84bffffde3d}, + {0x9631b434, 0xffffd84bffffde3e}, + {0x9631b435, 0xffffd84bffffde3f}, + {0x9631b436, 0xffffd84bffffde40}, + {0x9631b437, 0xffffd84bffffde41}, + {0x9631b438, 0xffffd84bffffde42}, + {0x9631b439, 0xffffd84bffffde43}, + {0x9631b530, 0xffffd84bffffde44}, + {0x9631b531, 0xffffd84bffffde45}, + {0x9631b532, 0xffffd84bffffde46}, + {0x9631b533, 0xffffd84bffffde47}, + {0x9631b534, 0xffffd84bffffde48}, + {0x9631b535, 0xffffd84bffffde49}, + {0x9631b536, 0xffffd84bffffde4a}, + {0x9631b537, 0xffffd84bffffde4b}, + {0x9631b538, 0xffffd84bffffde4c}, + {0x9631b539, 0xffffd84bffffde4d}, + {0x9631b630, 0xffffd84bffffde4e}, + {0x9631b631, 0xffffd84bffffde4f}, + {0x9631b632, 0xffffd84bffffde50}, + {0x9631b633, 0xffffd84bffffde51}, + {0x9631b634, 0xffffd84bffffde52}, + {0x9631b635, 0xffffd84bffffde53}, + {0x9631b636, 0xffffd84bffffde54}, + {0x9631b637, 0xffffd84bffffde55}, + {0x9631b638, 0xffffd84bffffde56}, + {0x9631b639, 0xffffd84bffffde57}, + {0x9631b730, 0xffffd84bffffde58}, + {0x9631b731, 0xffffd84bffffde59}, + {0x9631b732, 0xffffd84bffffde5a}, + {0x9631b733, 0xffffd84bffffde5b}, + {0x9631b734, 0xffffd84bffffde5c}, + {0x9631b735, 0xffffd84bffffde5d}, + {0x9631b736, 0xffffd84bffffde5e}, + {0x9631b737, 0xffffd84bffffde5f}, + {0x9631b738, 0xffffd84bffffde60}, + {0x9631b739, 0xffffd84bffffde61}, + {0x9631b830, 0xffffd84bffffde62}, + {0x9631b831, 0xffffd84bffffde63}, + {0x9631b832, 0xffffd84bffffde64}, + {0x9631b833, 0xffffd84bffffde65}, + {0x9631b834, 0xffffd84bffffde66}, + {0x9631b835, 0xffffd84bffffde67}, + {0x9631b836, 0xffffd84bffffde68}, + {0x9631b837, 0xffffd84bffffde69}, + {0x9631b838, 0xffffd84bffffde6a}, + {0x9631b839, 0xffffd84bffffde6b}, + {0x9631b930, 0xffffd84bffffde6c}, + {0x9631b931, 0xffffd84bffffde6d}, + {0x9631b932, 0xffffd84bffffde6e}, + {0x9631b933, 0xffffd84bffffde6f}, + {0x9631b934, 0xffffd84bffffde70}, + {0x9631b935, 0xffffd84bffffde71}, + {0x9631b936, 0xffffd84bffffde72}, + {0x9631b937, 0xffffd84bffffde73}, + {0x9631b938, 0xffffd84bffffde74}, + {0x9631b939, 0xffffd84bffffde75}, + {0x9631ba30, 0xffffd84bffffde76}, + {0x9631ba31, 0xffffd84bffffde77}, + {0x9631ba32, 0xffffd84bffffde78}, + {0x9631ba33, 0xffffd84bffffde79}, + {0x9631ba34, 0xffffd84bffffde7a}, + {0x9631ba35, 0xffffd84bffffde7b}, + {0x9631ba36, 0xffffd84bffffde7c}, + {0x9631ba37, 0xffffd84bffffde7d}, + {0x9631ba38, 0xffffd84bffffde7e}, + {0x9631ba39, 0xffffd84bffffde7f}, + {0x9631bb30, 0xffffd84bffffde80}, + {0x9631bb31, 0xffffd84bffffde81}, + {0x9631bb32, 0xffffd84bffffde82}, + {0x9631bb33, 0xffffd84bffffde83}, + {0x9631bb34, 0xffffd84bffffde84}, + {0x9631bb35, 0xffffd84bffffde85}, + {0x9631bb36, 0xffffd84bffffde86}, + {0x9631bb37, 0xffffd84bffffde87}, + {0x9631bb38, 0xffffd84bffffde88}, + {0x9631bb39, 0xffffd84bffffde89}, + {0x9631bc30, 0xffffd84bffffde8a}, + {0x9631bc31, 0xffffd84bffffde8b}, + {0x9631bc32, 0xffffd84bffffde8c}, + {0x9631bc33, 0xffffd84bffffde8d}, + {0x9631bc34, 0xffffd84bffffde8e}, + {0x9631bc35, 0xffffd84bffffde8f}, + {0x9631bc36, 0xffffd84bffffde90}, + {0x9631bc37, 0xffffd84bffffde91}, + {0x9631bc38, 0xffffd84bffffde92}, + {0x9631bc39, 0xffffd84bffffde93}, + {0x9631bd30, 0xffffd84bffffde94}, + {0x9631bd31, 0xffffd84bffffde95}, + {0x9631bd32, 0xffffd84bffffde96}, + {0x9631bd33, 0xffffd84bffffde97}, + {0x9631bd34, 0xffffd84bffffde98}, + {0x9631bd35, 0xffffd84bffffde99}, + {0x9631bd36, 0xffffd84bffffde9a}, + {0x9631bd37, 0xffffd84bffffde9b}, + {0x9631bd38, 0xffffd84bffffde9c}, + {0x9631bd39, 0xffffd84bffffde9d}, + {0x9631be30, 0xffffd84bffffde9e}, + {0x9631be31, 0xffffd84bffffde9f}, + {0x9631be32, 0xffffd84bffffdea0}, + {0x9631be33, 0xffffd84bffffdea1}, + {0x9631be34, 0xffffd84bffffdea2}, + {0x9631be35, 0xffffd84bffffdea3}, + {0x9631be36, 0xffffd84bffffdea4}, + {0x9631be37, 0xffffd84bffffdea5}, + {0x9631be38, 0xffffd84bffffdea6}, + {0x9631be39, 0xffffd84bffffdea7}, + {0x9631bf30, 0xffffd84bffffdea8}, + {0x9631bf31, 0xffffd84bffffdea9}, + {0x9631bf32, 0xffffd84bffffdeaa}, + {0x9631bf33, 0xffffd84bffffdeab}, + {0x9631bf34, 0xffffd84bffffdeac}, + {0x9631bf35, 0xffffd84bffffdead}, + {0x9631bf36, 0xffffd84bffffdeae}, + {0x9631bf37, 0xffffd84bffffdeaf}, + {0x9631bf38, 0xffffd84bffffdeb0}, + {0x9631bf39, 0xffffd84bffffdeb1}, + {0x9631c030, 0xffffd84bffffdeb2}, + {0x9631c031, 0xffffd84bffffdeb3}, + {0x9631c032, 0xffffd84bffffdeb4}, + {0x9631c033, 0xffffd84bffffdeb5}, + {0x9631c034, 0xffffd84bffffdeb6}, + {0x9631c035, 0xffffd84bffffdeb7}, + {0x9631c036, 0xffffd84bffffdeb8}, + {0x9631c037, 0xffffd84bffffdeb9}, + {0x9631c038, 0xffffd84bffffdeba}, + {0x9631c039, 0xffffd84bffffdebb}, + {0x9631c130, 0xffffd84bffffdebc}, + {0x9631c131, 0xffffd84bffffdebd}, + {0x9631c132, 0xffffd84bffffdebe}, + {0x9631c133, 0xffffd84bffffdebf}, + {0x9631c134, 0xffffd84bffffdec0}, + {0x9631c135, 0xffffd84bffffdec1}, + {0x9631c136, 0xffffd84bffffdec2}, + {0x9631c137, 0xffffd84bffffdec3}, + {0x9631c138, 0xffffd84bffffdec4}, + {0x9631c139, 0xffffd84bffffdec5}, + {0x9631c230, 0xffffd84bffffdec6}, + {0x9631c231, 0xffffd84bffffdec7}, + {0x9631c232, 0xffffd84bffffdec8}, + {0x9631c233, 0xffffd84bffffdec9}, + {0x9631c234, 0xffffd84bffffdeca}, + {0x9631c235, 0xffffd84bffffdecb}, + {0x9631c236, 0xffffd84bffffdecc}, + {0x9631c237, 0xffffd84bffffdecd}, + {0x9631c238, 0xffffd84bffffdece}, + {0x9631c239, 0xffffd84bffffdecf}, + {0x9631c330, 0xffffd84bffffded0}, + {0x9631c331, 0xffffd84bffffded1}, + {0x9631c332, 0xffffd84bffffded2}, + {0x9631c333, 0xffffd84bffffded3}, + {0x9631c334, 0xffffd84bffffded4}, + {0x9631c335, 0xffffd84bffffded5}, + {0x9631c336, 0xffffd84bffffded6}, + {0x9631c337, 0xffffd84bffffded7}, + {0x9631c338, 0xffffd84bffffded8}, + {0x9631c339, 0xffffd84bffffded9}, + {0x9631c430, 0xffffd84bffffdeda}, + {0x9631c431, 0xffffd84bffffdedb}, + {0x9631c432, 0xffffd84bffffdedc}, + {0x9631c433, 0xffffd84bffffdedd}, + {0x9631c434, 0xffffd84bffffdede}, + {0x9631c435, 0xffffd84bffffdedf}, + {0x9631c436, 0xffffd84bffffdee0}, + {0x9631c437, 0xffffd84bffffdee1}, + {0x9631c438, 0xffffd84bffffdee2}, + {0x9631c439, 0xffffd84bffffdee3}, + {0x9631c530, 0xffffd84bffffdee4}, + {0x9631c531, 0xffffd84bffffdee5}, + {0x9631c532, 0xffffd84bffffdee6}, + {0x9631c533, 0xffffd84bffffdee7}, + {0x9631c534, 0xffffd84bffffdee8}, + {0x9631c535, 0xffffd84bffffdee9}, + {0x9631c536, 0xffffd84bffffdeea}, + {0x9631c537, 0xffffd84bffffdeeb}, + {0x9631c538, 0xffffd84bffffdeec}, + {0x9631c539, 0xffffd84bffffdeed}, + {0x9631c630, 0xffffd84bffffdeee}, + {0x9631c631, 0xffffd84bffffdeef}, + {0x9631c632, 0xffffd84bffffdef0}, + {0x9631c633, 0xffffd84bffffdef1}, + {0x9631c634, 0xffffd84bffffdef2}, + {0x9631c635, 0xffffd84bffffdef3}, + {0x9631c636, 0xffffd84bffffdef4}, + {0x9631c637, 0xffffd84bffffdef5}, + {0x9631c638, 0xffffd84bffffdef6}, + {0x9631c639, 0xffffd84bffffdef7}, + {0x9631c730, 0xffffd84bffffdef8}, + {0x9631c731, 0xffffd84bffffdef9}, + {0x9631c732, 0xffffd84bffffdefa}, + {0x9631c733, 0xffffd84bffffdefb}, + {0x9631c734, 0xffffd84bffffdefc}, + {0x9631c735, 0xffffd84bffffdefd}, + {0x9631c736, 0xffffd84bffffdefe}, + {0x9631c737, 0xffffd84bffffdeff}, + {0x9631c738, 0xffffd84bffffdf00}, + {0x9631c739, 0xffffd84bffffdf01}, + {0x9631c830, 0xffffd84bffffdf02}, + {0x9631c831, 0xffffd84bffffdf03}, + {0x9631c832, 0xffffd84bffffdf04}, + {0x9631c833, 0xffffd84bffffdf05}, + {0x9631c834, 0xffffd84bffffdf06}, + {0x9631c835, 0xffffd84bffffdf07}, + {0x9631c836, 0xffffd84bffffdf08}, + {0x9631c837, 0xffffd84bffffdf09}, + {0x9631c838, 0xffffd84bffffdf0a}, + {0x9631c839, 0xffffd84bffffdf0b}, + {0x9631c930, 0xffffd84bffffdf0c}, + {0x9631c931, 0xffffd84bffffdf0d}, + {0x9631c932, 0xffffd84bffffdf0e}, + {0x9631c933, 0xffffd84bffffdf0f}, + {0x9631c934, 0xffffd84bffffdf10}, + {0x9631c935, 0xffffd84bffffdf11}, + {0x9631c936, 0xffffd84bffffdf12}, + {0x9631c937, 0xffffd84bffffdf13}, + {0x9631c938, 0xffffd84bffffdf14}, + {0x9631c939, 0xffffd84bffffdf15}, + {0x9631ca30, 0xffffd84bffffdf16}, + {0x9631ca31, 0xffffd84bffffdf17}, + {0x9631ca32, 0xffffd84bffffdf18}, + {0x9631ca33, 0xffffd84bffffdf19}, + {0x9631ca34, 0xffffd84bffffdf1a}, + {0x9631ca35, 0xffffd84bffffdf1b}, + {0x9631ca36, 0xffffd84bffffdf1c}, + {0x9631ca37, 0xffffd84bffffdf1d}, + {0x9631ca38, 0xffffd84bffffdf1e}, + {0x9631ca39, 0xffffd84bffffdf1f}, + {0x9631cb30, 0xffffd84bffffdf20}, + {0x9631cb31, 0xffffd84bffffdf21}, + {0x9631cb32, 0xffffd84bffffdf22}, + {0x9631cb33, 0xffffd84bffffdf23}, + {0x9631cb34, 0xffffd84bffffdf24}, + {0x9631cb35, 0xffffd84bffffdf25}, + {0x9631cb36, 0xffffd84bffffdf26}, + {0x9631cb37, 0xffffd84bffffdf27}, + {0x9631cb38, 0xffffd84bffffdf28}, + {0x9631cb39, 0xffffd84bffffdf29}, + {0x9631cc30, 0xffffd84bffffdf2a}, + {0x9631cc31, 0xffffd84bffffdf2b}, + {0x9631cc32, 0xffffd84bffffdf2c}, + {0x9631cc33, 0xffffd84bffffdf2d}, + {0x9631cc34, 0xffffd84bffffdf2e}, + {0x9631cc35, 0xffffd84bffffdf2f}, + {0x9631cc36, 0xffffd84bffffdf30}, + {0x9631cc37, 0xffffd84bffffdf31}, + {0x9631cc38, 0xffffd84bffffdf32}, + {0x9631cc39, 0xffffd84bffffdf33}, + {0x9631cd30, 0xffffd84bffffdf34}, + {0x9631cd31, 0xffffd84bffffdf35}, + {0x9631cd32, 0xffffd84bffffdf36}, + {0x9631cd33, 0xffffd84bffffdf37}, + {0x9631cd34, 0xffffd84bffffdf38}, + {0x9631cd35, 0xffffd84bffffdf39}, + {0x9631cd36, 0xffffd84bffffdf3a}, + {0x9631cd37, 0xffffd84bffffdf3b}, + {0x9631cd38, 0xffffd84bffffdf3c}, + {0x9631cd39, 0xffffd84bffffdf3d}, + {0x9631ce30, 0xffffd84bffffdf3e}, + {0x9631ce31, 0xffffd84bffffdf3f}, + {0x9631ce32, 0xffffd84bffffdf40}, + {0x9631ce33, 0xffffd84bffffdf41}, + {0x9631ce34, 0xffffd84bffffdf42}, + {0x9631ce35, 0xffffd84bffffdf43}, + {0x9631ce36, 0xffffd84bffffdf44}, + {0x9631ce37, 0xffffd84bffffdf45}, + {0x9631ce38, 0xffffd84bffffdf46}, + {0x9631ce39, 0xffffd84bffffdf47}, + {0x9631cf30, 0xffffd84bffffdf48}, + {0x9631cf31, 0xffffd84bffffdf49}, + {0x9631cf32, 0xffffd84bffffdf4a}, + {0x9631cf33, 0xffffd84bffffdf4b}, + {0x9631cf34, 0xffffd84bffffdf4c}, + {0x9631cf35, 0xffffd84bffffdf4d}, + {0x9631cf36, 0xffffd84bffffdf4e}, + {0x9631cf37, 0xffffd84bffffdf4f}, + {0x9631cf38, 0xffffd84bffffdf50}, + {0x9631cf39, 0xffffd84bffffdf51}, + {0x9631d030, 0xffffd84bffffdf52}, + {0x9631d031, 0xffffd84bffffdf53}, + {0x9631d032, 0xffffd84bffffdf54}, + {0x9631d033, 0xffffd84bffffdf55}, + {0x9631d034, 0xffffd84bffffdf56}, + {0x9631d035, 0xffffd84bffffdf57}, + {0x9631d036, 0xffffd84bffffdf58}, + {0x9631d037, 0xffffd84bffffdf59}, + {0x9631d038, 0xffffd84bffffdf5a}, + {0x9631d039, 0xffffd84bffffdf5b}, + {0x9631d130, 0xffffd84bffffdf5c}, + {0x9631d131, 0xffffd84bffffdf5d}, + {0x9631d132, 0xffffd84bffffdf5e}, + {0x9631d133, 0xffffd84bffffdf5f}, + {0x9631d134, 0xffffd84bffffdf60}, + {0x9631d135, 0xffffd84bffffdf61}, + {0x9631d136, 0xffffd84bffffdf62}, + {0x9631d137, 0xffffd84bffffdf63}, + {0x9631d138, 0xffffd84bffffdf64}, + {0x9631d139, 0xffffd84bffffdf65}, + {0x9631d230, 0xffffd84bffffdf66}, + {0x9631d231, 0xffffd84bffffdf67}, + {0x9631d232, 0xffffd84bffffdf68}, + {0x9631d233, 0xffffd84bffffdf69}, + {0x9631d234, 0xffffd84bffffdf6a}, + {0x9631d235, 0xffffd84bffffdf6b}, + {0x9631d236, 0xffffd84bffffdf6c}, + {0x9631d237, 0xffffd84bffffdf6d}, + {0x9631d238, 0xffffd84bffffdf6e}, + {0x9631d239, 0xffffd84bffffdf6f}, + {0x9631d330, 0xffffd84bffffdf70}, + {0x9631d331, 0xffffd84bffffdf71}, + {0x9631d332, 0xffffd84bffffdf72}, + {0x9631d333, 0xffffd84bffffdf73}, + {0x9631d334, 0xffffd84bffffdf74}, + {0x9631d335, 0xffffd84bffffdf75}, + {0x9631d336, 0xffffd84bffffdf76}, + {0x9631d337, 0xffffd84bffffdf77}, + {0x9631d338, 0xffffd84bffffdf78}, + {0x9631d339, 0xffffd84bffffdf79}, + {0x9631d430, 0xffffd84bffffdf7a}, + {0x9631d431, 0xffffd84bffffdf7b}, + {0x9631d432, 0xffffd84bffffdf7c}, + {0x9631d433, 0xffffd84bffffdf7d}, + {0x9631d434, 0xffffd84bffffdf7e}, + {0x9631d435, 0xffffd84bffffdf7f}, + {0x9631d436, 0xffffd84bffffdf80}, + {0x9631d437, 0xffffd84bffffdf81}, + {0x9631d438, 0xffffd84bffffdf82}, + {0x9631d439, 0xffffd84bffffdf83}, + {0x9631d530, 0xffffd84bffffdf84}, + {0x9631d531, 0xffffd84bffffdf85}, + {0x9631d532, 0xffffd84bffffdf86}, + {0x9631d533, 0xffffd84bffffdf87}, + {0x9631d534, 0xffffd84bffffdf88}, + {0x9631d535, 0xffffd84bffffdf89}, + {0x9631d536, 0xffffd84bffffdf8a}, + {0x9631d537, 0xffffd84bffffdf8b}, + {0x9631d538, 0xffffd84bffffdf8c}, + {0x9631d539, 0xffffd84bffffdf8d}, + {0x9631d630, 0xffffd84bffffdf8e}, + {0x9631d631, 0xffffd84bffffdf8f}, + {0x9631d632, 0xffffd84bffffdf90}, + {0x9631d633, 0xffffd84bffffdf91}, + {0x9631d634, 0xffffd84bffffdf92}, + {0x9631d635, 0xffffd84bffffdf93}, + {0x9631d636, 0xffffd84bffffdf94}, + {0x9631d637, 0xffffd84bffffdf95}, + {0x9631d638, 0xffffd84bffffdf96}, + {0x9631d639, 0xffffd84bffffdf97}, + {0x9631d730, 0xffffd84bffffdf98}, + {0x9631d731, 0xffffd84bffffdf99}, + {0x9631d732, 0xffffd84bffffdf9a}, + {0x9631d733, 0xffffd84bffffdf9b}, + {0x9631d734, 0xffffd84bffffdf9c}, + {0x9631d735, 0xffffd84bffffdf9d}, + {0x9631d736, 0xffffd84bffffdf9e}, + {0x9631d737, 0xffffd84bffffdf9f}, + {0x9631d738, 0xffffd84bffffdfa0}, + {0x9631d739, 0xffffd84bffffdfa1}, + {0x9631d830, 0xffffd84bffffdfa2}, + {0x9631d831, 0xffffd84bffffdfa3}, + {0x9631d832, 0xffffd84bffffdfa4}, + {0x9631d833, 0xffffd84bffffdfa5}, + {0x9631d834, 0xffffd84bffffdfa6}, + {0x9631d835, 0xffffd84bffffdfa7}, + {0x9631d836, 0xffffd84bffffdfa8}, + {0x9631d837, 0xffffd84bffffdfa9}, + {0x9631d838, 0xffffd84bffffdfaa}, + {0x9631d839, 0xffffd84bffffdfab}, + {0x9631d930, 0xffffd84bffffdfac}, + {0x9631d931, 0xffffd84bffffdfad}, + {0x9631d932, 0xffffd84bffffdfae}, + {0x9631d933, 0xffffd84bffffdfaf}, + {0x9631d934, 0xffffd84bffffdfb0}, + {0x9631d935, 0xffffd84bffffdfb1}, + {0x9631d936, 0xffffd84bffffdfb2}, + {0x9631d937, 0xffffd84bffffdfb3}, + {0x9631d938, 0xffffd84bffffdfb4}, + {0x9631d939, 0xffffd84bffffdfb5}, + {0x9631da30, 0xffffd84bffffdfb6}, + {0x9631da31, 0xffffd84bffffdfb7}, + {0x9631da32, 0xffffd84bffffdfb8}, + {0x9631da33, 0xffffd84bffffdfb9}, + {0x9631da34, 0xffffd84bffffdfba}, + {0x9631da35, 0xffffd84bffffdfbb}, + {0x9631da36, 0xffffd84bffffdfbc}, + {0x9631da37, 0xffffd84bffffdfbd}, + {0x9631da38, 0xffffd84bffffdfbe}, + {0x9631da39, 0xffffd84bffffdfbf}, + {0x9631db30, 0xffffd84bffffdfc0}, + {0x9631db31, 0xffffd84bffffdfc1}, + {0x9631db32, 0xffffd84bffffdfc2}, + {0x9631db33, 0xffffd84bffffdfc3}, + {0x9631db34, 0xffffd84bffffdfc4}, + {0x9631db35, 0xffffd84bffffdfc5}, + {0x9631db36, 0xffffd84bffffdfc6}, + {0x9631db37, 0xffffd84bffffdfc7}, + {0x9631db38, 0xffffd84bffffdfc8}, + {0x9631db39, 0xffffd84bffffdfc9}, + {0x9631dc30, 0xffffd84bffffdfca}, + {0x9631dc31, 0xffffd84bffffdfcb}, + {0x9631dc32, 0xffffd84bffffdfcc}, + {0x9631dc33, 0xffffd84bffffdfcd}, + {0x9631dc34, 0xffffd84bffffdfce}, + {0x9631dc35, 0xffffd84bffffdfcf}, + {0x9631dc36, 0xffffd84bffffdfd0}, + {0x9631dc37, 0xffffd84bffffdfd1}, + {0x9631dc38, 0xffffd84bffffdfd2}, + {0x9631dc39, 0xffffd84bffffdfd3}, + {0x9631dd30, 0xffffd84bffffdfd4}, + {0x9631dd31, 0xffffd84bffffdfd5}, + {0x9631dd32, 0xffffd84bffffdfd6}, + {0x9631dd33, 0xffffd84bffffdfd7}, + {0x9631dd34, 0xffffd84bffffdfd8}, + {0x9631dd35, 0xffffd84bffffdfd9}, + {0x9631dd36, 0xffffd84bffffdfda}, + {0x9631dd37, 0xffffd84bffffdfdb}, + {0x9631dd38, 0xffffd84bffffdfdc}, + {0x9631dd39, 0xffffd84bffffdfdd}, + {0x9631de30, 0xffffd84bffffdfde}, + {0x9631de31, 0xffffd84bffffdfdf}, + {0x9631de32, 0xffffd84bffffdfe0}, + {0x9631de33, 0xffffd84bffffdfe1}, + {0x9631de34, 0xffffd84bffffdfe2}, + {0x9631de35, 0xffffd84bffffdfe3}, + {0x9631de36, 0xffffd84bffffdfe4}, + {0x9631de37, 0xffffd84bffffdfe5}, + {0x9631de38, 0xffffd84bffffdfe6}, + {0x9631de39, 0xffffd84bffffdfe7}, + {0x9631df30, 0xffffd84bffffdfe8}, + {0x9631df31, 0xffffd84bffffdfe9}, + {0x9631df32, 0xffffd84bffffdfea}, + {0x9631df33, 0xffffd84bffffdfeb}, + {0x9631df34, 0xffffd84bffffdfec}, + {0x9631df35, 0xffffd84bffffdfed}, + {0x9631df36, 0xffffd84bffffdfee}, + {0x9631df37, 0xffffd84bffffdfef}, + {0x9631df38, 0xffffd84bffffdff0}, + {0x9631df39, 0xffffd84bffffdff1}, + {0x9631e030, 0xffffd84bffffdff2}, + {0x9631e031, 0xffffd84bffffdff3}, + {0x9631e032, 0xffffd84bffffdff4}, + {0x9631e033, 0xffffd84bffffdff5}, + {0x9631e034, 0xffffd84bffffdff6}, + {0x9631e035, 0xffffd84bffffdff7}, + {0x9631e036, 0xffffd84bffffdff8}, + {0x9631e037, 0xffffd84bffffdff9}, + {0x9631e038, 0xffffd84bffffdffa}, + {0x9631e039, 0xffffd84bffffdffb}, + {0x9631e130, 0xffffd84bffffdffc}, + {0x9631e131, 0xffffd84bffffdffd}, + {0x9631e132, 0xffffd84bffffdffe}, + {0x9631e133, 0xffffd84bffffdfff}, + {0x9631e134, 0xffffd84cffffdc00}, + {0x9631e135, 0xffffd84cffffdc01}, + {0x9631e136, 0xffffd84cffffdc02}, + {0x9631e137, 0xffffd84cffffdc03}, + {0x9631e138, 0xffffd84cffffdc04}, + {0x9631e139, 0xffffd84cffffdc05}, + {0x9631e230, 0xffffd84cffffdc06}, + {0x9631e231, 0xffffd84cffffdc07}, + {0x9631e232, 0xffffd84cffffdc08}, + {0x9631e233, 0xffffd84cffffdc09}, + {0x9631e234, 0xffffd84cffffdc0a}, + {0x9631e235, 0xffffd84cffffdc0b}, + {0x9631e236, 0xffffd84cffffdc0c}, + {0x9631e237, 0xffffd84cffffdc0d}, + {0x9631e238, 0xffffd84cffffdc0e}, + {0x9631e239, 0xffffd84cffffdc0f}, + {0x9631e330, 0xffffd84cffffdc10}, + {0x9631e331, 0xffffd84cffffdc11}, + {0x9631e332, 0xffffd84cffffdc12}, + {0x9631e333, 0xffffd84cffffdc13}, + {0x9631e334, 0xffffd84cffffdc14}, + {0x9631e335, 0xffffd84cffffdc15}, + {0x9631e336, 0xffffd84cffffdc16}, + {0x9631e337, 0xffffd84cffffdc17}, + {0x9631e338, 0xffffd84cffffdc18}, + {0x9631e339, 0xffffd84cffffdc19}, + {0x9631e430, 0xffffd84cffffdc1a}, + {0x9631e431, 0xffffd84cffffdc1b}, + {0x9631e432, 0xffffd84cffffdc1c}, + {0x9631e433, 0xffffd84cffffdc1d}, + {0x9631e434, 0xffffd84cffffdc1e}, + {0x9631e435, 0xffffd84cffffdc1f}, + {0x9631e436, 0xffffd84cffffdc20}, + {0x9631e437, 0xffffd84cffffdc21}, + {0x9631e438, 0xffffd84cffffdc22}, + {0x9631e439, 0xffffd84cffffdc23}, + {0x9631e530, 0xffffd84cffffdc24}, + {0x9631e531, 0xffffd84cffffdc25}, + {0x9631e532, 0xffffd84cffffdc26}, + {0x9631e533, 0xffffd84cffffdc27}, + {0x9631e534, 0xffffd84cffffdc28}, + {0x9631e535, 0xffffd84cffffdc29}, + {0x9631e536, 0xffffd84cffffdc2a}, + {0x9631e537, 0xffffd84cffffdc2b}, + {0x9631e538, 0xffffd84cffffdc2c}, + {0x9631e539, 0xffffd84cffffdc2d}, + {0x9631e630, 0xffffd84cffffdc2e}, + {0x9631e631, 0xffffd84cffffdc2f}, + {0x9631e632, 0xffffd84cffffdc30}, + {0x9631e633, 0xffffd84cffffdc31}, + {0x9631e634, 0xffffd84cffffdc32}, + {0x9631e635, 0xffffd84cffffdc33}, + {0x9631e636, 0xffffd84cffffdc34}, + {0x9631e637, 0xffffd84cffffdc35}, + {0x9631e638, 0xffffd84cffffdc36}, + {0x9631e639, 0xffffd84cffffdc37}, + {0x9631e730, 0xffffd84cffffdc38}, + {0x9631e731, 0xffffd84cffffdc39}, + {0x9631e732, 0xffffd84cffffdc3a}, + {0x9631e733, 0xffffd84cffffdc3b}, + {0x9631e734, 0xffffd84cffffdc3c}, + {0x9631e735, 0xffffd84cffffdc3d}, + {0x9631e736, 0xffffd84cffffdc3e}, + {0x9631e737, 0xffffd84cffffdc3f}, + {0x9631e738, 0xffffd84cffffdc40}, + {0x9631e739, 0xffffd84cffffdc41}, + {0x9631e830, 0xffffd84cffffdc42}, + {0x9631e831, 0xffffd84cffffdc43}, + {0x9631e832, 0xffffd84cffffdc44}, + {0x9631e833, 0xffffd84cffffdc45}, + {0x9631e834, 0xffffd84cffffdc46}, + {0x9631e835, 0xffffd84cffffdc47}, + {0x9631e836, 0xffffd84cffffdc48}, + {0x9631e837, 0xffffd84cffffdc49}, + {0x9631e838, 0xffffd84cffffdc4a}, + {0x9631e839, 0xffffd84cffffdc4b}, + {0x9631e930, 0xffffd84cffffdc4c}, + {0x9631e931, 0xffffd84cffffdc4d}, + {0x9631e932, 0xffffd84cffffdc4e}, + {0x9631e933, 0xffffd84cffffdc4f}, + {0x9631e934, 0xffffd84cffffdc50}, + {0x9631e935, 0xffffd84cffffdc51}, + {0x9631e936, 0xffffd84cffffdc52}, + {0x9631e937, 0xffffd84cffffdc53}, + {0x9631e938, 0xffffd84cffffdc54}, + {0x9631e939, 0xffffd84cffffdc55}, + {0x9631ea30, 0xffffd84cffffdc56}, + {0x9631ea31, 0xffffd84cffffdc57}, + {0x9631ea32, 0xffffd84cffffdc58}, + {0x9631ea33, 0xffffd84cffffdc59}, + {0x9631ea34, 0xffffd84cffffdc5a}, + {0x9631ea35, 0xffffd84cffffdc5b}, + {0x9631ea36, 0xffffd84cffffdc5c}, + {0x9631ea37, 0xffffd84cffffdc5d}, + {0x9631ea38, 0xffffd84cffffdc5e}, + {0x9631ea39, 0xffffd84cffffdc5f}, + {0x9631eb30, 0xffffd84cffffdc60}, + {0x9631eb31, 0xffffd84cffffdc61}, + {0x9631eb32, 0xffffd84cffffdc62}, + {0x9631eb33, 0xffffd84cffffdc63}, + {0x9631eb34, 0xffffd84cffffdc64}, + {0x9631eb35, 0xffffd84cffffdc65}, + {0x9631eb36, 0xffffd84cffffdc66}, + {0x9631eb37, 0xffffd84cffffdc67}, + {0x9631eb38, 0xffffd84cffffdc68}, + {0x9631eb39, 0xffffd84cffffdc69}, + {0x9631ec30, 0xffffd84cffffdc6a}, + {0x9631ec31, 0xffffd84cffffdc6b}, + {0x9631ec32, 0xffffd84cffffdc6c}, + {0x9631ec33, 0xffffd84cffffdc6d}, + {0x9631ec34, 0xffffd84cffffdc6e}, + {0x9631ec35, 0xffffd84cffffdc6f}, + {0x9631ec36, 0xffffd84cffffdc70}, + {0x9631ec37, 0xffffd84cffffdc71}, + {0x9631ec38, 0xffffd84cffffdc72}, + {0x9631ec39, 0xffffd84cffffdc73}, + {0x9631ed30, 0xffffd84cffffdc74}, + {0x9631ed31, 0xffffd84cffffdc75}, + {0x9631ed32, 0xffffd84cffffdc76}, + {0x9631ed33, 0xffffd84cffffdc77}, + {0x9631ed34, 0xffffd84cffffdc78}, + {0x9631ed35, 0xffffd84cffffdc79}, + {0x9631ed36, 0xffffd84cffffdc7a}, + {0x9631ed37, 0xffffd84cffffdc7b}, + {0x9631ed38, 0xffffd84cffffdc7c}, + {0x9631ed39, 0xffffd84cffffdc7d}, + {0x9631ee30, 0xffffd84cffffdc7e}, + {0x9631ee31, 0xffffd84cffffdc7f}, + {0x9631ee32, 0xffffd84cffffdc80}, + {0x9631ee33, 0xffffd84cffffdc81}, + {0x9631ee34, 0xffffd84cffffdc82}, + {0x9631ee35, 0xffffd84cffffdc83}, + {0x9631ee36, 0xffffd84cffffdc84}, + {0x9631ee37, 0xffffd84cffffdc85}, + {0x9631ee38, 0xffffd84cffffdc86}, + {0x9631ee39, 0xffffd84cffffdc87}, + {0x9631ef30, 0xffffd84cffffdc88}, + {0x9631ef31, 0xffffd84cffffdc89}, + {0x9631ef32, 0xffffd84cffffdc8a}, + {0x9631ef33, 0xffffd84cffffdc8b}, + {0x9631ef34, 0xffffd84cffffdc8c}, + {0x9631ef35, 0xffffd84cffffdc8d}, + {0x9631ef36, 0xffffd84cffffdc8e}, + {0x9631ef37, 0xffffd84cffffdc8f}, + {0x9631ef38, 0xffffd84cffffdc90}, + {0x9631ef39, 0xffffd84cffffdc91}, + {0x9631f030, 0xffffd84cffffdc92}, + {0x9631f031, 0xffffd84cffffdc93}, + {0x9631f032, 0xffffd84cffffdc94}, + {0x9631f033, 0xffffd84cffffdc95}, + {0x9631f034, 0xffffd84cffffdc96}, + {0x9631f035, 0xffffd84cffffdc97}, + {0x9631f036, 0xffffd84cffffdc98}, + {0x9631f037, 0xffffd84cffffdc99}, + {0x9631f038, 0xffffd84cffffdc9a}, + {0x9631f039, 0xffffd84cffffdc9b}, + {0x9631f130, 0xffffd84cffffdc9c}, + {0x9631f131, 0xffffd84cffffdc9d}, + {0x9631f132, 0xffffd84cffffdc9e}, + {0x9631f133, 0xffffd84cffffdc9f}, + {0x9631f134, 0xffffd84cffffdca0}, + {0x9631f135, 0xffffd84cffffdca1}, + {0x9631f136, 0xffffd84cffffdca2}, + {0x9631f137, 0xffffd84cffffdca3}, + {0x9631f138, 0xffffd84cffffdca4}, + {0x9631f139, 0xffffd84cffffdca5}, + {0x9631f230, 0xffffd84cffffdca6}, + {0x9631f231, 0xffffd84cffffdca7}, + {0x9631f232, 0xffffd84cffffdca8}, + {0x9631f233, 0xffffd84cffffdca9}, + {0x9631f234, 0xffffd84cffffdcaa}, + {0x9631f235, 0xffffd84cffffdcab}, + {0x9631f236, 0xffffd84cffffdcac}, + {0x9631f237, 0xffffd84cffffdcad}, + {0x9631f238, 0xffffd84cffffdcae}, + {0x9631f239, 0xffffd84cffffdcaf}, + {0x9631f330, 0xffffd84cffffdcb0}, + {0x9631f331, 0xffffd84cffffdcb1}, + {0x9631f332, 0xffffd84cffffdcb2}, + {0x9631f333, 0xffffd84cffffdcb3}, + {0x9631f334, 0xffffd84cffffdcb4}, + {0x9631f335, 0xffffd84cffffdcb5}, + {0x9631f336, 0xffffd84cffffdcb6}, + {0x9631f337, 0xffffd84cffffdcb7}, + {0x9631f338, 0xffffd84cffffdcb8}, + {0x9631f339, 0xffffd84cffffdcb9}, + {0x9631f430, 0xffffd84cffffdcba}, + {0x9631f431, 0xffffd84cffffdcbb}, + {0x9631f432, 0xffffd84cffffdcbc}, + {0x9631f433, 0xffffd84cffffdcbd}, + {0x9631f434, 0xffffd84cffffdcbe}, + {0x9631f435, 0xffffd84cffffdcbf}, + {0x9631f436, 0xffffd84cffffdcc0}, + {0x9631f437, 0xffffd84cffffdcc1}, + {0x9631f438, 0xffffd84cffffdcc2}, + {0x9631f439, 0xffffd84cffffdcc3}, + {0x9631f530, 0xffffd84cffffdcc4}, + {0x9631f531, 0xffffd84cffffdcc5}, + {0x9631f532, 0xffffd84cffffdcc6}, + {0x9631f533, 0xffffd84cffffdcc7}, + {0x9631f534, 0xffffd84cffffdcc8}, + {0x9631f535, 0xffffd84cffffdcc9}, + {0x9631f536, 0xffffd84cffffdcca}, + {0x9631f537, 0xffffd84cffffdccb}, + {0x9631f538, 0xffffd84cffffdccc}, + {0x9631f539, 0xffffd84cffffdccd}, + {0x9631f630, 0xffffd84cffffdcce}, + {0x9631f631, 0xffffd84cffffdccf}, + {0x9631f632, 0xffffd84cffffdcd0}, + {0x9631f633, 0xffffd84cffffdcd1}, + {0x9631f634, 0xffffd84cffffdcd2}, + {0x9631f635, 0xffffd84cffffdcd3}, + {0x9631f636, 0xffffd84cffffdcd4}, + {0x9631f637, 0xffffd84cffffdcd5}, + {0x9631f638, 0xffffd84cffffdcd6}, + {0x9631f639, 0xffffd84cffffdcd7}, + {0x9631f730, 0xffffd84cffffdcd8}, + {0x9631f731, 0xffffd84cffffdcd9}, + {0x9631f732, 0xffffd84cffffdcda}, + {0x9631f733, 0xffffd84cffffdcdb}, + {0x9631f734, 0xffffd84cffffdcdc}, + {0x9631f735, 0xffffd84cffffdcdd}, + {0x9631f736, 0xffffd84cffffdcde}, + {0x9631f737, 0xffffd84cffffdcdf}, + {0x9631f738, 0xffffd84cffffdce0}, + {0x9631f739, 0xffffd84cffffdce1}, + {0x9631f830, 0xffffd84cffffdce2}, + {0x9631f831, 0xffffd84cffffdce3}, + {0x9631f832, 0xffffd84cffffdce4}, + {0x9631f833, 0xffffd84cffffdce5}, + {0x9631f834, 0xffffd84cffffdce6}, + {0x9631f835, 0xffffd84cffffdce7}, + {0x9631f836, 0xffffd84cffffdce8}, + {0x9631f837, 0xffffd84cffffdce9}, + {0x9631f838, 0xffffd84cffffdcea}, + {0x9631f839, 0xffffd84cffffdceb}, + {0x9631f930, 0xffffd84cffffdcec}, + {0x9631f931, 0xffffd84cffffdced}, + {0x9631f932, 0xffffd84cffffdcee}, + {0x9631f933, 0xffffd84cffffdcef}, + {0x9631f934, 0xffffd84cffffdcf0}, + {0x9631f935, 0xffffd84cffffdcf1}, + {0x9631f936, 0xffffd84cffffdcf2}, + {0x9631f937, 0xffffd84cffffdcf3}, + {0x9631f938, 0xffffd84cffffdcf4}, + {0x9631f939, 0xffffd84cffffdcf5}, + {0x9631fa30, 0xffffd84cffffdcf6}, + {0x9631fa31, 0xffffd84cffffdcf7}, + {0x9631fa32, 0xffffd84cffffdcf8}, + {0x9631fa33, 0xffffd84cffffdcf9}, + {0x9631fa34, 0xffffd84cffffdcfa}, + {0x9631fa35, 0xffffd84cffffdcfb}, + {0x9631fa36, 0xffffd84cffffdcfc}, + {0x9631fa37, 0xffffd84cffffdcfd}, + {0x9631fa38, 0xffffd84cffffdcfe}, + {0x9631fa39, 0xffffd84cffffdcff}, + {0x9631fb30, 0xffffd84cffffdd00}, + {0x9631fb31, 0xffffd84cffffdd01}, + {0x9631fb32, 0xffffd84cffffdd02}, + {0x9631fb33, 0xffffd84cffffdd03}, + {0x9631fb34, 0xffffd84cffffdd04}, + {0x9631fb35, 0xffffd84cffffdd05}, + {0x9631fb36, 0xffffd84cffffdd06}, + {0x9631fb37, 0xffffd84cffffdd07}, + {0x9631fb38, 0xffffd84cffffdd08}, + {0x9631fb39, 0xffffd84cffffdd09}, + {0x9631fc30, 0xffffd84cffffdd0a}, + {0x9631fc31, 0xffffd84cffffdd0b}, + {0x9631fc32, 0xffffd84cffffdd0c}, + {0x9631fc33, 0xffffd84cffffdd0d}, + {0x9631fc34, 0xffffd84cffffdd0e}, + {0x9631fc35, 0xffffd84cffffdd0f}, + {0x9631fc36, 0xffffd84cffffdd10}, + {0x9631fc37, 0xffffd84cffffdd11}, + {0x9631fc38, 0xffffd84cffffdd12}, + {0x9631fc39, 0xffffd84cffffdd13}, + {0x9631fd30, 0xffffd84cffffdd14}, + {0x9631fd31, 0xffffd84cffffdd15}, + {0x9631fd32, 0xffffd84cffffdd16}, + {0x9631fd33, 0xffffd84cffffdd17}, + {0x9631fd34, 0xffffd84cffffdd18}, + {0x9631fd35, 0xffffd84cffffdd19}, + {0x9631fd36, 0xffffd84cffffdd1a}, + {0x9631fd37, 0xffffd84cffffdd1b}, + {0x9631fd38, 0xffffd84cffffdd1c}, + {0x9631fd39, 0xffffd84cffffdd1d}, + {0x9631fe30, 0xffffd84cffffdd1e}, + {0x9631fe31, 0xffffd84cffffdd1f}, + {0x9631fe32, 0xffffd84cffffdd20}, + {0x9631fe33, 0xffffd84cffffdd21}, + {0x9631fe34, 0xffffd84cffffdd22}, + {0x9631fe35, 0xffffd84cffffdd23}, + {0x9631fe36, 0xffffd84cffffdd24}, + {0x9631fe37, 0xffffd84cffffdd25}, + {0x9631fe38, 0xffffd84cffffdd26}, + {0x9631fe39, 0xffffd84cffffdd27}, + {0x96328130, 0xffffd84cffffdd28}, + {0x96328131, 0xffffd84cffffdd29}, + {0x96328132, 0xffffd84cffffdd2a}, + {0x96328133, 0xffffd84cffffdd2b}, + {0x96328134, 0xffffd84cffffdd2c}, + {0x96328135, 0xffffd84cffffdd2d}, + {0x96328136, 0xffffd84cffffdd2e}, + {0x96328137, 0xffffd84cffffdd2f}, + {0x96328138, 0xffffd84cffffdd30}, + {0x96328139, 0xffffd84cffffdd31}, + {0x96328230, 0xffffd84cffffdd32}, + {0x96328231, 0xffffd84cffffdd33}, + {0x96328232, 0xffffd84cffffdd34}, + {0x96328233, 0xffffd84cffffdd35}, + {0x96328234, 0xffffd84cffffdd36}, + {0x96328235, 0xffffd84cffffdd37}, + {0x96328236, 0xffffd84cffffdd38}, + {0x96328237, 0xffffd84cffffdd39}, + {0x96328238, 0xffffd84cffffdd3a}, + {0x96328239, 0xffffd84cffffdd3b}, + {0x96328330, 0xffffd84cffffdd3c}, + {0x96328331, 0xffffd84cffffdd3d}, + {0x96328332, 0xffffd84cffffdd3e}, + {0x96328333, 0xffffd84cffffdd3f}, + {0x96328334, 0xffffd84cffffdd40}, + {0x96328335, 0xffffd84cffffdd41}, + {0x96328336, 0xffffd84cffffdd42}, + {0x96328337, 0xffffd84cffffdd43}, + {0x96328338, 0xffffd84cffffdd44}, + {0x96328339, 0xffffd84cffffdd45}, + {0x96328430, 0xffffd84cffffdd46}, + {0x96328431, 0xffffd84cffffdd47}, + {0x96328432, 0xffffd84cffffdd48}, + {0x96328433, 0xffffd84cffffdd49}, + {0x96328434, 0xffffd84cffffdd4a}, + {0x96328435, 0xffffd84cffffdd4b}, + {0x96328436, 0xffffd84cffffdd4c}, + {0x96328437, 0xffffd84cffffdd4d}, + {0x96328438, 0xffffd84cffffdd4e}, + {0x96328439, 0xffffd84cffffdd4f}, + {0x96328530, 0xffffd84cffffdd50}, + {0x96328531, 0xffffd84cffffdd51}, + {0x96328532, 0xffffd84cffffdd52}, + {0x96328533, 0xffffd84cffffdd53}, + {0x96328534, 0xffffd84cffffdd54}, + {0x96328535, 0xffffd84cffffdd55}, + {0x96328536, 0xffffd84cffffdd56}, + {0x96328537, 0xffffd84cffffdd57}, + {0x96328538, 0xffffd84cffffdd58}, + {0x96328539, 0xffffd84cffffdd59}, + {0x96328630, 0xffffd84cffffdd5a}, + {0x96328631, 0xffffd84cffffdd5b}, + {0x96328632, 0xffffd84cffffdd5c}, + {0x96328633, 0xffffd84cffffdd5d}, + {0x96328634, 0xffffd84cffffdd5e}, + {0x96328635, 0xffffd84cffffdd5f}, + {0x96328636, 0xffffd84cffffdd60}, + {0x96328637, 0xffffd84cffffdd61}, + {0x96328638, 0xffffd84cffffdd62}, + {0x96328639, 0xffffd84cffffdd63}, + {0x96328730, 0xffffd84cffffdd64}, + {0x96328731, 0xffffd84cffffdd65}, + {0x96328732, 0xffffd84cffffdd66}, + {0x96328733, 0xffffd84cffffdd67}, + {0x96328734, 0xffffd84cffffdd68}, + {0x96328735, 0xffffd84cffffdd69}, + {0x96328736, 0xffffd84cffffdd6a}, + {0x96328737, 0xffffd84cffffdd6b}, + {0x96328738, 0xffffd84cffffdd6c}, + {0x96328739, 0xffffd84cffffdd6d}, + {0x96328830, 0xffffd84cffffdd6e}, + {0x96328831, 0xffffd84cffffdd6f}, + {0x96328832, 0xffffd84cffffdd70}, + {0x96328833, 0xffffd84cffffdd71}, + {0x96328834, 0xffffd84cffffdd72}, + {0x96328835, 0xffffd84cffffdd73}, + {0x96328836, 0xffffd84cffffdd74}, + {0x96328837, 0xffffd84cffffdd75}, + {0x96328838, 0xffffd84cffffdd76}, + {0x96328839, 0xffffd84cffffdd77}, + {0x96328930, 0xffffd84cffffdd78}, + {0x96328931, 0xffffd84cffffdd79}, + {0x96328932, 0xffffd84cffffdd7a}, + {0x96328933, 0xffffd84cffffdd7b}, + {0x96328934, 0xffffd84cffffdd7c}, + {0x96328935, 0xffffd84cffffdd7d}, + {0x96328936, 0xffffd84cffffdd7e}, + {0x96328937, 0xffffd84cffffdd7f}, + {0x96328938, 0xffffd84cffffdd80}, + {0x96328939, 0xffffd84cffffdd81}, + {0x96328a30, 0xffffd84cffffdd82}, + {0x96328a31, 0xffffd84cffffdd83}, + {0x96328a32, 0xffffd84cffffdd84}, + {0x96328a33, 0xffffd84cffffdd85}, + {0x96328a34, 0xffffd84cffffdd86}, + {0x96328a35, 0xffffd84cffffdd87}, + {0x96328a36, 0xffffd84cffffdd88}, + {0x96328a37, 0xffffd84cffffdd89}, + {0x96328a38, 0xffffd84cffffdd8a}, + {0x96328a39, 0xffffd84cffffdd8b}, + {0x96328b30, 0xffffd84cffffdd8c}, + {0x96328b31, 0xffffd84cffffdd8d}, + {0x96328b32, 0xffffd84cffffdd8e}, + {0x96328b33, 0xffffd84cffffdd8f}, + {0x96328b34, 0xffffd84cffffdd90}, + {0x96328b35, 0xffffd84cffffdd91}, + {0x96328b36, 0xffffd84cffffdd92}, + {0x96328b37, 0xffffd84cffffdd93}, + {0x96328b38, 0xffffd84cffffdd94}, + {0x96328b39, 0xffffd84cffffdd95}, + {0x96328c30, 0xffffd84cffffdd96}, + {0x96328c31, 0xffffd84cffffdd97}, + {0x96328c32, 0xffffd84cffffdd98}, + {0x96328c33, 0xffffd84cffffdd99}, + {0x96328c34, 0xffffd84cffffdd9a}, + {0x96328c35, 0xffffd84cffffdd9b}, + {0x96328c36, 0xffffd84cffffdd9c}, + {0x96328c37, 0xffffd84cffffdd9d}, + {0x96328c38, 0xffffd84cffffdd9e}, + {0x96328c39, 0xffffd84cffffdd9f}, + {0x96328d30, 0xffffd84cffffdda0}, + {0x96328d31, 0xffffd84cffffdda1}, + {0x96328d32, 0xffffd84cffffdda2}, + {0x96328d33, 0xffffd84cffffdda3}, + {0x96328d34, 0xffffd84cffffdda4}, + {0x96328d35, 0xffffd84cffffdda5}, + {0x96328d36, 0xffffd84cffffdda6}, + {0x96328d37, 0xffffd84cffffdda7}, + {0x96328d38, 0xffffd84cffffdda8}, + {0x96328d39, 0xffffd84cffffdda9}, + {0x96328e30, 0xffffd84cffffddaa}, + {0x96328e31, 0xffffd84cffffddab}, + {0x96328e32, 0xffffd84cffffddac}, + {0x96328e33, 0xffffd84cffffddad}, + {0x96328e34, 0xffffd84cffffddae}, + {0x96328e35, 0xffffd84cffffddaf}, + {0x96328e36, 0xffffd84cffffddb0}, + {0x96328e37, 0xffffd84cffffddb1}, + {0x96328e38, 0xffffd84cffffddb2}, + {0x96328e39, 0xffffd84cffffddb3}, + {0x96328f30, 0xffffd84cffffddb4}, + {0x96328f31, 0xffffd84cffffddb5}, + {0x96328f32, 0xffffd84cffffddb6}, + {0x96328f33, 0xffffd84cffffddb7}, + {0x96328f34, 0xffffd84cffffddb8}, + {0x96328f35, 0xffffd84cffffddb9}, + {0x96328f36, 0xffffd84cffffddba}, + {0x96328f37, 0xffffd84cffffddbb}, + {0x96328f38, 0xffffd84cffffddbc}, + {0x96328f39, 0xffffd84cffffddbd}, + {0x96329030, 0xffffd84cffffddbe}, + {0x96329031, 0xffffd84cffffddbf}, + {0x96329032, 0xffffd84cffffddc0}, + {0x96329033, 0xffffd84cffffddc1}, + {0x96329034, 0xffffd84cffffddc2}, + {0x96329035, 0xffffd84cffffddc3}, + {0x96329036, 0xffffd84cffffddc4}, + {0x96329037, 0xffffd84cffffddc5}, + {0x96329038, 0xffffd84cffffddc6}, + {0x96329039, 0xffffd84cffffddc7}, + {0x96329130, 0xffffd84cffffddc8}, + {0x96329131, 0xffffd84cffffddc9}, + {0x96329132, 0xffffd84cffffddca}, + {0x96329133, 0xffffd84cffffddcb}, + {0x96329134, 0xffffd84cffffddcc}, + {0x96329135, 0xffffd84cffffddcd}, + {0x96329136, 0xffffd84cffffddce}, + {0x96329137, 0xffffd84cffffddcf}, + {0x96329138, 0xffffd84cffffddd0}, + {0x96329139, 0xffffd84cffffddd1}, + {0x96329230, 0xffffd84cffffddd2}, + {0x96329231, 0xffffd84cffffddd3}, + {0x96329232, 0xffffd84cffffddd4}, + {0x96329233, 0xffffd84cffffddd5}, + {0x96329234, 0xffffd84cffffddd6}, + {0x96329235, 0xffffd84cffffddd7}, + {0x96329236, 0xffffd84cffffddd8}, + {0x96329237, 0xffffd84cffffddd9}, + {0x96329238, 0xffffd84cffffddda}, + {0x96329239, 0xffffd84cffffdddb}, + {0x96329330, 0xffffd84cffffdddc}, + {0x96329331, 0xffffd84cffffdddd}, + {0x96329332, 0xffffd84cffffddde}, + {0x96329333, 0xffffd84cffffdddf}, + {0x96329334, 0xffffd84cffffdde0}, + {0x96329335, 0xffffd84cffffdde1}, + {0x96329336, 0xffffd84cffffdde2}, + {0x96329337, 0xffffd84cffffdde3}, + {0x96329338, 0xffffd84cffffdde4}, + {0x96329339, 0xffffd84cffffdde5}, + {0x96329430, 0xffffd84cffffdde6}, + {0x96329431, 0xffffd84cffffdde7}, + {0x96329432, 0xffffd84cffffdde8}, + {0x96329433, 0xffffd84cffffdde9}, + {0x96329434, 0xffffd84cffffddea}, + {0x96329435, 0xffffd84cffffddeb}, + {0x96329436, 0xffffd84cffffddec}, + {0x96329437, 0xffffd84cffffdded}, + {0x96329438, 0xffffd84cffffddee}, + {0x96329439, 0xffffd84cffffddef}, + {0x96329530, 0xffffd84cffffddf0}, + {0x96329531, 0xffffd84cffffddf1}, + {0x96329532, 0xffffd84cffffddf2}, + {0x96329533, 0xffffd84cffffddf3}, + {0x96329534, 0xffffd84cffffddf4}, + {0x96329535, 0xffffd84cffffddf5}, + {0x96329536, 0xffffd84cffffddf6}, + {0x96329537, 0xffffd84cffffddf7}, + {0x96329538, 0xffffd84cffffddf8}, + {0x96329539, 0xffffd84cffffddf9}, + {0x96329630, 0xffffd84cffffddfa}, + {0x96329631, 0xffffd84cffffddfb}, + {0x96329632, 0xffffd84cffffddfc}, + {0x96329633, 0xffffd84cffffddfd}, + {0x96329634, 0xffffd84cffffddfe}, + {0x96329635, 0xffffd84cffffddff}, + {0x96329636, 0xffffd84cffffde00}, + {0x96329637, 0xffffd84cffffde01}, + {0x96329638, 0xffffd84cffffde02}, + {0x96329639, 0xffffd84cffffde03}, + {0x96329730, 0xffffd84cffffde04}, + {0x96329731, 0xffffd84cffffde05}, + {0x96329732, 0xffffd84cffffde06}, + {0x96329733, 0xffffd84cffffde07}, + {0x96329734, 0xffffd84cffffde08}, + {0x96329735, 0xffffd84cffffde09}, + {0x96329736, 0xffffd84cffffde0a}, + {0x96329737, 0xffffd84cffffde0b}, + {0x96329738, 0xffffd84cffffde0c}, + {0x96329739, 0xffffd84cffffde0d}, + {0x96329830, 0xffffd84cffffde0e}, + {0x96329831, 0xffffd84cffffde0f}, + {0x96329832, 0xffffd84cffffde10}, + {0x96329833, 0xffffd84cffffde11}, + {0x96329834, 0xffffd84cffffde12}, + {0x96329835, 0xffffd84cffffde13}, + {0x96329836, 0xffffd84cffffde14}, + {0x96329837, 0xffffd84cffffde15}, + {0x96329838, 0xffffd84cffffde16}, + {0x96329839, 0xffffd84cffffde17}, + {0x96329930, 0xffffd84cffffde18}, + {0x96329931, 0xffffd84cffffde19}, + {0x96329932, 0xffffd84cffffde1a}, + {0x96329933, 0xffffd84cffffde1b}, + {0x96329934, 0xffffd84cffffde1c}, + {0x96329935, 0xffffd84cffffde1d}, + {0x96329936, 0xffffd84cffffde1e}, + {0x96329937, 0xffffd84cffffde1f}, + {0x96329938, 0xffffd84cffffde20}, + {0x96329939, 0xffffd84cffffde21}, + {0x96329a30, 0xffffd84cffffde22}, + {0x96329a31, 0xffffd84cffffde23}, + {0x96329a32, 0xffffd84cffffde24}, + {0x96329a33, 0xffffd84cffffde25}, + {0x96329a34, 0xffffd84cffffde26}, + {0x96329a35, 0xffffd84cffffde27}, + {0x96329a36, 0xffffd84cffffde28}, + {0x96329a37, 0xffffd84cffffde29}, + {0x96329a38, 0xffffd84cffffde2a}, + {0x96329a39, 0xffffd84cffffde2b}, + {0x96329b30, 0xffffd84cffffde2c}, + {0x96329b31, 0xffffd84cffffde2d}, + {0x96329b32, 0xffffd84cffffde2e}, + {0x96329b33, 0xffffd84cffffde2f}, + {0x96329b34, 0xffffd84cffffde30}, + {0x96329b35, 0xffffd84cffffde31}, + {0x96329b36, 0xffffd84cffffde32}, + {0x96329b37, 0xffffd84cffffde33}, + {0x96329b38, 0xffffd84cffffde34}, + {0x96329b39, 0xffffd84cffffde35}, + {0x96329c30, 0xffffd84cffffde36}, + {0x96329c31, 0xffffd84cffffde37}, + {0x96329c32, 0xffffd84cffffde38}, + {0x96329c33, 0xffffd84cffffde39}, + {0x96329c34, 0xffffd84cffffde3a}, + {0x96329c35, 0xffffd84cffffde3b}, + {0x96329c36, 0xffffd84cffffde3c}, + {0x96329c37, 0xffffd84cffffde3d}, + {0x96329c38, 0xffffd84cffffde3e}, + {0x96329c39, 0xffffd84cffffde3f}, + {0x96329d30, 0xffffd84cffffde40}, + {0x96329d31, 0xffffd84cffffde41}, + {0x96329d32, 0xffffd84cffffde42}, + {0x96329d33, 0xffffd84cffffde43}, + {0x96329d34, 0xffffd84cffffde44}, + {0x96329d35, 0xffffd84cffffde45}, + {0x96329d36, 0xffffd84cffffde46}, + {0x96329d37, 0xffffd84cffffde47}, + {0x96329d38, 0xffffd84cffffde48}, + {0x96329d39, 0xffffd84cffffde49}, + {0x96329e30, 0xffffd84cffffde4a}, + {0x96329e31, 0xffffd84cffffde4b}, + {0x96329e32, 0xffffd84cffffde4c}, + {0x96329e33, 0xffffd84cffffde4d}, + {0x96329e34, 0xffffd84cffffde4e}, + {0x96329e35, 0xffffd84cffffde4f}, + {0x96329e36, 0xffffd84cffffde50}, + {0x96329e37, 0xffffd84cffffde51}, + {0x96329e38, 0xffffd84cffffde52}, + {0x96329e39, 0xffffd84cffffde53}, + {0x96329f30, 0xffffd84cffffde54}, + {0x96329f31, 0xffffd84cffffde55}, + {0x96329f32, 0xffffd84cffffde56}, + {0x96329f33, 0xffffd84cffffde57}, + {0x96329f34, 0xffffd84cffffde58}, + {0x96329f35, 0xffffd84cffffde59}, + {0x96329f36, 0xffffd84cffffde5a}, + {0x96329f37, 0xffffd84cffffde5b}, + {0x96329f38, 0xffffd84cffffde5c}, + {0x96329f39, 0xffffd84cffffde5d}, + {0x9632a030, 0xffffd84cffffde5e}, + {0x9632a031, 0xffffd84cffffde5f}, + {0x9632a032, 0xffffd84cffffde60}, + {0x9632a033, 0xffffd84cffffde61}, + {0x9632a034, 0xffffd84cffffde62}, + {0x9632a035, 0xffffd84cffffde63}, + {0x9632a036, 0xffffd84cffffde64}, + {0x9632a037, 0xffffd84cffffde65}, + {0x9632a038, 0xffffd84cffffde66}, + {0x9632a039, 0xffffd84cffffde67}, + {0x9632a130, 0xffffd84cffffde68}, + {0x9632a131, 0xffffd84cffffde69}, + {0x9632a132, 0xffffd84cffffde6a}, + {0x9632a133, 0xffffd84cffffde6b}, + {0x9632a134, 0xffffd84cffffde6c}, + {0x9632a135, 0xffffd84cffffde6d}, + {0x9632a136, 0xffffd84cffffde6e}, + {0x9632a137, 0xffffd84cffffde6f}, + {0x9632a138, 0xffffd84cffffde70}, + {0x9632a139, 0xffffd84cffffde71}, + {0x9632a230, 0xffffd84cffffde72}, + {0x9632a231, 0xffffd84cffffde73}, + {0x9632a232, 0xffffd84cffffde74}, + {0x9632a233, 0xffffd84cffffde75}, + {0x9632a234, 0xffffd84cffffde76}, + {0x9632a235, 0xffffd84cffffde77}, + {0x9632a236, 0xffffd84cffffde78}, + {0x9632a237, 0xffffd84cffffde79}, + {0x9632a238, 0xffffd84cffffde7a}, + {0x9632a239, 0xffffd84cffffde7b}, + {0x9632a330, 0xffffd84cffffde7c}, + {0x9632a331, 0xffffd84cffffde7d}, + {0x9632a332, 0xffffd84cffffde7e}, + {0x9632a333, 0xffffd84cffffde7f}, + {0x9632a334, 0xffffd84cffffde80}, + {0x9632a335, 0xffffd84cffffde81}, + {0x9632a336, 0xffffd84cffffde82}, + {0x9632a337, 0xffffd84cffffde83}, + {0x9632a338, 0xffffd84cffffde84}, + {0x9632a339, 0xffffd84cffffde85}, + {0x9632a430, 0xffffd84cffffde86}, + {0x9632a431, 0xffffd84cffffde87}, + {0x9632a432, 0xffffd84cffffde88}, + {0x9632a433, 0xffffd84cffffde89}, + {0x9632a434, 0xffffd84cffffde8a}, + {0x9632a435, 0xffffd84cffffde8b}, + {0x9632a436, 0xffffd84cffffde8c}, + {0x9632a437, 0xffffd84cffffde8d}, + {0x9632a438, 0xffffd84cffffde8e}, + {0x9632a439, 0xffffd84cffffde8f}, + {0x9632a530, 0xffffd84cffffde90}, + {0x9632a531, 0xffffd84cffffde91}, + {0x9632a532, 0xffffd84cffffde92}, + {0x9632a533, 0xffffd84cffffde93}, + {0x9632a534, 0xffffd84cffffde94}, + {0x9632a535, 0xffffd84cffffde95}, + {0x9632a536, 0xffffd84cffffde96}, + {0x9632a537, 0xffffd84cffffde97}, + {0x9632a538, 0xffffd84cffffde98}, + {0x9632a539, 0xffffd84cffffde99}, + {0x9632a630, 0xffffd84cffffde9a}, + {0x9632a631, 0xffffd84cffffde9b}, + {0x9632a632, 0xffffd84cffffde9c}, + {0x9632a633, 0xffffd84cffffde9d}, + {0x9632a634, 0xffffd84cffffde9e}, + {0x9632a635, 0xffffd84cffffde9f}, + {0x9632a636, 0xffffd84cffffdea0}, + {0x9632a637, 0xffffd84cffffdea1}, + {0x9632a638, 0xffffd84cffffdea2}, + {0x9632a639, 0xffffd84cffffdea3}, + {0x9632a730, 0xffffd84cffffdea4}, + {0x9632a731, 0xffffd84cffffdea5}, + {0x9632a732, 0xffffd84cffffdea6}, + {0x9632a733, 0xffffd84cffffdea7}, + {0x9632a734, 0xffffd84cffffdea8}, + {0x9632a735, 0xffffd84cffffdea9}, + {0x9632a736, 0xffffd84cffffdeaa}, + {0x9632a737, 0xffffd84cffffdeab}, + {0x9632a738, 0xffffd84cffffdeac}, + {0x9632a739, 0xffffd84cffffdead}, + {0x9632a830, 0xffffd84cffffdeae}, + {0x9632a831, 0xffffd84cffffdeaf}, + {0x9632a832, 0xffffd84cffffdeb0}, + {0x9632a833, 0xffffd84cffffdeb1}, + {0x9632a834, 0xffffd84cffffdeb2}, + {0x9632a835, 0xffffd84cffffdeb3}, + {0x9632a836, 0xffffd84cffffdeb4}, + {0x9632a837, 0xffffd84cffffdeb5}, + {0x9632a838, 0xffffd84cffffdeb6}, + {0x9632a839, 0xffffd84cffffdeb7}, + {0x9632a930, 0xffffd84cffffdeb8}, + {0x9632a931, 0xffffd84cffffdeb9}, + {0x9632a932, 0xffffd84cffffdeba}, + {0x9632a933, 0xffffd84cffffdebb}, + {0x9632a934, 0xffffd84cffffdebc}, + {0x9632a935, 0xffffd84cffffdebd}, + {0x9632a936, 0xffffd84cffffdebe}, + {0x9632a937, 0xffffd84cffffdebf}, + {0x9632a938, 0xffffd84cffffdec0}, + {0x9632a939, 0xffffd84cffffdec1}, + {0x9632aa30, 0xffffd84cffffdec2}, + {0x9632aa31, 0xffffd84cffffdec3}, + {0x9632aa32, 0xffffd84cffffdec4}, + {0x9632aa33, 0xffffd84cffffdec5}, + {0x9632aa34, 0xffffd84cffffdec6}, + {0x9632aa35, 0xffffd84cffffdec7}, + {0x9632aa36, 0xffffd84cffffdec8}, + {0x9632aa37, 0xffffd84cffffdec9}, + {0x9632aa38, 0xffffd84cffffdeca}, + {0x9632aa39, 0xffffd84cffffdecb}, + {0x9632ab30, 0xffffd84cffffdecc}, + {0x9632ab31, 0xffffd84cffffdecd}, + {0x9632ab32, 0xffffd84cffffdece}, + {0x9632ab33, 0xffffd84cffffdecf}, + {0x9632ab34, 0xffffd84cffffded0}, + {0x9632ab35, 0xffffd84cffffded1}, + {0x9632ab36, 0xffffd84cffffded2}, + {0x9632ab37, 0xffffd84cffffded3}, + {0x9632ab38, 0xffffd84cffffded4}, + {0x9632ab39, 0xffffd84cffffded5}, + {0x9632ac30, 0xffffd84cffffded6}, + {0x9632ac31, 0xffffd84cffffded7}, + {0x9632ac32, 0xffffd84cffffded8}, + {0x9632ac33, 0xffffd84cffffded9}, + {0x9632ac34, 0xffffd84cffffdeda}, + {0x9632ac35, 0xffffd84cffffdedb}, + {0x9632ac36, 0xffffd84cffffdedc}, + {0x9632ac37, 0xffffd84cffffdedd}, + {0x9632ac38, 0xffffd84cffffdede}, + {0x9632ac39, 0xffffd84cffffdedf}, + {0x9632ad30, 0xffffd84cffffdee0}, + {0x9632ad31, 0xffffd84cffffdee1}, + {0x9632ad32, 0xffffd84cffffdee2}, + {0x9632ad33, 0xffffd84cffffdee3}, + {0x9632ad34, 0xffffd84cffffdee4}, + {0x9632ad35, 0xffffd84cffffdee5}, + {0x9632ad36, 0xffffd84cffffdee6}, + {0x9632ad37, 0xffffd84cffffdee7}, + {0x9632ad38, 0xffffd84cffffdee8}, + {0x9632ad39, 0xffffd84cffffdee9}, + {0x9632ae30, 0xffffd84cffffdeea}, + {0x9632ae31, 0xffffd84cffffdeeb}, + {0x9632ae32, 0xffffd84cffffdeec}, + {0x9632ae33, 0xffffd84cffffdeed}, + {0x9632ae34, 0xffffd84cffffdeee}, + {0x9632ae35, 0xffffd84cffffdeef}, + {0x9632ae36, 0xffffd84cffffdef0}, + {0x9632ae37, 0xffffd84cffffdef1}, + {0x9632ae38, 0xffffd84cffffdef2}, + {0x9632ae39, 0xffffd84cffffdef3}, + {0x9632af30, 0xffffd84cffffdef4}, + {0x9632af31, 0xffffd84cffffdef5}, + {0x9632af32, 0xffffd84cffffdef6}, + {0x9632af33, 0xffffd84cffffdef7}, + {0x9632af34, 0xffffd84cffffdef8}, + {0x9632af35, 0xffffd84cffffdef9}, + {0x9632af36, 0xffffd84cffffdefa}, + {0x9632af37, 0xffffd84cffffdefb}, + {0x9632af38, 0xffffd84cffffdefc}, + {0x9632af39, 0xffffd84cffffdefd}, + {0x9632b030, 0xffffd84cffffdefe}, + {0x9632b031, 0xffffd84cffffdeff}, + {0x9632b032, 0xffffd84cffffdf00}, + {0x9632b033, 0xffffd84cffffdf01}, + {0x9632b034, 0xffffd84cffffdf02}, + {0x9632b035, 0xffffd84cffffdf03}, + {0x9632b036, 0xffffd84cffffdf04}, + {0x9632b037, 0xffffd84cffffdf05}, + {0x9632b038, 0xffffd84cffffdf06}, + {0x9632b039, 0xffffd84cffffdf07}, + {0x9632b130, 0xffffd84cffffdf08}, + {0x9632b131, 0xffffd84cffffdf09}, + {0x9632b132, 0xffffd84cffffdf0a}, + {0x9632b133, 0xffffd84cffffdf0b}, + {0x9632b134, 0xffffd84cffffdf0c}, + {0x9632b135, 0xffffd84cffffdf0d}, + {0x9632b136, 0xffffd84cffffdf0e}, + {0x9632b137, 0xffffd84cffffdf0f}, + {0x9632b138, 0xffffd84cffffdf10}, + {0x9632b139, 0xffffd84cffffdf11}, + {0x9632b230, 0xffffd84cffffdf12}, + {0x9632b231, 0xffffd84cffffdf13}, + {0x9632b232, 0xffffd84cffffdf14}, + {0x9632b233, 0xffffd84cffffdf15}, + {0x9632b234, 0xffffd84cffffdf16}, + {0x9632b235, 0xffffd84cffffdf17}, + {0x9632b236, 0xffffd84cffffdf18}, + {0x9632b237, 0xffffd84cffffdf19}, + {0x9632b238, 0xffffd84cffffdf1a}, + {0x9632b239, 0xffffd84cffffdf1b}, + {0x9632b330, 0xffffd84cffffdf1c}, + {0x9632b331, 0xffffd84cffffdf1d}, + {0x9632b332, 0xffffd84cffffdf1e}, + {0x9632b333, 0xffffd84cffffdf1f}, + {0x9632b334, 0xffffd84cffffdf20}, + {0x9632b335, 0xffffd84cffffdf21}, + {0x9632b336, 0xffffd84cffffdf22}, + {0x9632b337, 0xffffd84cffffdf23}, + {0x9632b338, 0xffffd84cffffdf24}, + {0x9632b339, 0xffffd84cffffdf25}, + {0x9632b430, 0xffffd84cffffdf26}, + {0x9632b431, 0xffffd84cffffdf27}, + {0x9632b432, 0xffffd84cffffdf28}, + {0x9632b433, 0xffffd84cffffdf29}, + {0x9632b434, 0xffffd84cffffdf2a}, + {0x9632b435, 0xffffd84cffffdf2b}, + {0x9632b436, 0xffffd84cffffdf2c}, + {0x9632b437, 0xffffd84cffffdf2d}, + {0x9632b438, 0xffffd84cffffdf2e}, + {0x9632b439, 0xffffd84cffffdf2f}, + {0x9632b530, 0xffffd84cffffdf30}, + {0x9632b531, 0xffffd84cffffdf31}, + {0x9632b532, 0xffffd84cffffdf32}, + {0x9632b533, 0xffffd84cffffdf33}, + {0x9632b534, 0xffffd84cffffdf34}, + {0x9632b535, 0xffffd84cffffdf35}, + {0x9632b536, 0xffffd84cffffdf36}, + {0x9632b537, 0xffffd84cffffdf37}, + {0x9632b538, 0xffffd84cffffdf38}, + {0x9632b539, 0xffffd84cffffdf39}, + {0x9632b630, 0xffffd84cffffdf3a}, + {0x9632b631, 0xffffd84cffffdf3b}, + {0x9632b632, 0xffffd84cffffdf3c}, + {0x9632b633, 0xffffd84cffffdf3d}, + {0x9632b634, 0xffffd84cffffdf3e}, + {0x9632b635, 0xffffd84cffffdf3f}, + {0x9632b636, 0xffffd84cffffdf40}, + {0x9632b637, 0xffffd84cffffdf41}, + {0x9632b638, 0xffffd84cffffdf42}, + {0x9632b639, 0xffffd84cffffdf43}, + {0x9632b730, 0xffffd84cffffdf44}, + {0x9632b731, 0xffffd84cffffdf45}, + {0x9632b732, 0xffffd84cffffdf46}, + {0x9632b733, 0xffffd84cffffdf47}, + {0x9632b734, 0xffffd84cffffdf48}, + {0x9632b735, 0xffffd84cffffdf49}, + {0x9632b736, 0xffffd84cffffdf4a}, + {0x9632b737, 0xffffd84cffffdf4b}, + {0x9632b738, 0xffffd84cffffdf4c}, + {0x9632b739, 0xffffd84cffffdf4d}, + {0x9632b830, 0xffffd84cffffdf4e}, + {0x9632b831, 0xffffd84cffffdf4f}, + {0x9632b832, 0xffffd84cffffdf50}, + {0x9632b833, 0xffffd84cffffdf51}, + {0x9632b834, 0xffffd84cffffdf52}, + {0x9632b835, 0xffffd84cffffdf53}, + {0x9632b836, 0xffffd84cffffdf54}, + {0x9632b837, 0xffffd84cffffdf55}, + {0x9632b838, 0xffffd84cffffdf56}, + {0x9632b839, 0xffffd84cffffdf57}, + {0x9632b930, 0xffffd84cffffdf58}, + {0x9632b931, 0xffffd84cffffdf59}, + {0x9632b932, 0xffffd84cffffdf5a}, + {0x9632b933, 0xffffd84cffffdf5b}, + {0x9632b934, 0xffffd84cffffdf5c}, + {0x9632b935, 0xffffd84cffffdf5d}, + {0x9632b936, 0xffffd84cffffdf5e}, + {0x9632b937, 0xffffd84cffffdf5f}, + {0x9632b938, 0xffffd84cffffdf60}, + {0x9632b939, 0xffffd84cffffdf61}, + {0x9632ba30, 0xffffd84cffffdf62}, + {0x9632ba31, 0xffffd84cffffdf63}, + {0x9632ba32, 0xffffd84cffffdf64}, + {0x9632ba33, 0xffffd84cffffdf65}, + {0x9632ba34, 0xffffd84cffffdf66}, + {0x9632ba35, 0xffffd84cffffdf67}, + {0x9632ba36, 0xffffd84cffffdf68}, + {0x9632ba37, 0xffffd84cffffdf69}, + {0x9632ba38, 0xffffd84cffffdf6a}, + {0x9632ba39, 0xffffd84cffffdf6b}, + {0x9632bb30, 0xffffd84cffffdf6c}, + {0x9632bb31, 0xffffd84cffffdf6d}, + {0x9632bb32, 0xffffd84cffffdf6e}, + {0x9632bb33, 0xffffd84cffffdf6f}, + {0x9632bb34, 0xffffd84cffffdf70}, + {0x9632bb35, 0xffffd84cffffdf71}, + {0x9632bb36, 0xffffd84cffffdf72}, + {0x9632bb37, 0xffffd84cffffdf73}, + {0x9632bb38, 0xffffd84cffffdf74}, + {0x9632bb39, 0xffffd84cffffdf75}, + {0x9632bc30, 0xffffd84cffffdf76}, + {0x9632bc31, 0xffffd84cffffdf77}, + {0x9632bc32, 0xffffd84cffffdf78}, + {0x9632bc33, 0xffffd84cffffdf79}, + {0x9632bc34, 0xffffd84cffffdf7a}, + {0x9632bc35, 0xffffd84cffffdf7b}, + {0x9632bc36, 0xffffd84cffffdf7c}, + {0x9632bc37, 0xffffd84cffffdf7d}, + {0x9632bc38, 0xffffd84cffffdf7e}, + {0x9632bc39, 0xffffd84cffffdf7f}, + {0x9632bd30, 0xffffd84cffffdf80}, + {0x9632bd31, 0xffffd84cffffdf81}, + {0x9632bd32, 0xffffd84cffffdf82}, + {0x9632bd33, 0xffffd84cffffdf83}, + {0x9632bd34, 0xffffd84cffffdf84}, + {0x9632bd35, 0xffffd84cffffdf85}, + {0x9632bd36, 0xffffd84cffffdf86}, + {0x9632bd37, 0xffffd84cffffdf87}, + {0x9632bd38, 0xffffd84cffffdf88}, + {0x9632bd39, 0xffffd84cffffdf89}, + {0x9632be30, 0xffffd84cffffdf8a}, + {0x9632be31, 0xffffd84cffffdf8b}, + {0x9632be32, 0xffffd84cffffdf8c}, + {0x9632be33, 0xffffd84cffffdf8d}, + {0x9632be34, 0xffffd84cffffdf8e}, + {0x9632be35, 0xffffd84cffffdf8f}, + {0x9632be36, 0xffffd84cffffdf90}, + {0x9632be37, 0xffffd84cffffdf91}, + {0x9632be38, 0xffffd84cffffdf92}, + {0x9632be39, 0xffffd84cffffdf93}, + {0x9632bf30, 0xffffd84cffffdf94}, + {0x9632bf31, 0xffffd84cffffdf95}, + {0x9632bf32, 0xffffd84cffffdf96}, + {0x9632bf33, 0xffffd84cffffdf97}, + {0x9632bf34, 0xffffd84cffffdf98}, + {0x9632bf35, 0xffffd84cffffdf99}, + {0x9632bf36, 0xffffd84cffffdf9a}, + {0x9632bf37, 0xffffd84cffffdf9b}, + {0x9632bf38, 0xffffd84cffffdf9c}, + {0x9632bf39, 0xffffd84cffffdf9d}, + {0x9632c030, 0xffffd84cffffdf9e}, + {0x9632c031, 0xffffd84cffffdf9f}, + {0x9632c032, 0xffffd84cffffdfa0}, + {0x9632c033, 0xffffd84cffffdfa1}, + {0x9632c034, 0xffffd84cffffdfa2}, + {0x9632c035, 0xffffd84cffffdfa3}, + {0x9632c036, 0xffffd84cffffdfa4}, + {0x9632c037, 0xffffd84cffffdfa5}, + {0x9632c038, 0xffffd84cffffdfa6}, + {0x9632c039, 0xffffd84cffffdfa7}, + {0x9632c130, 0xffffd84cffffdfa8}, + {0x9632c131, 0xffffd84cffffdfa9}, + {0x9632c132, 0xffffd84cffffdfaa}, + {0x9632c133, 0xffffd84cffffdfab}, + {0x9632c134, 0xffffd84cffffdfac}, + {0x9632c135, 0xffffd84cffffdfad}, + {0x9632c136, 0xffffd84cffffdfae}, + {0x9632c137, 0xffffd84cffffdfaf}, + {0x9632c138, 0xffffd84cffffdfb0}, + {0x9632c139, 0xffffd84cffffdfb1}, + {0x9632c230, 0xffffd84cffffdfb2}, + {0x9632c231, 0xffffd84cffffdfb3}, + {0x9632c232, 0xffffd84cffffdfb4}, + {0x9632c233, 0xffffd84cffffdfb5}, + {0x9632c234, 0xffffd84cffffdfb6}, + {0x9632c235, 0xffffd84cffffdfb7}, + {0x9632c236, 0xffffd84cffffdfb8}, + {0x9632c237, 0xffffd84cffffdfb9}, + {0x9632c238, 0xffffd84cffffdfba}, + {0x9632c239, 0xffffd84cffffdfbb}, + {0x9632c330, 0xffffd84cffffdfbc}, + {0x9632c331, 0xffffd84cffffdfbd}, + {0x9632c332, 0xffffd84cffffdfbe}, + {0x9632c333, 0xffffd84cffffdfbf}, + {0x9632c334, 0xffffd84cffffdfc0}, + {0x9632c335, 0xffffd84cffffdfc1}, + {0x9632c336, 0xffffd84cffffdfc2}, + {0x9632c337, 0xffffd84cffffdfc3}, + {0x9632c338, 0xffffd84cffffdfc4}, + {0x9632c339, 0xffffd84cffffdfc5}, + {0x9632c430, 0xffffd84cffffdfc6}, + {0x9632c431, 0xffffd84cffffdfc7}, + {0x9632c432, 0xffffd84cffffdfc8}, + {0x9632c433, 0xffffd84cffffdfc9}, + {0x9632c434, 0xffffd84cffffdfca}, + {0x9632c435, 0xffffd84cffffdfcb}, + {0x9632c436, 0xffffd84cffffdfcc}, + {0x9632c437, 0xffffd84cffffdfcd}, + {0x9632c438, 0xffffd84cffffdfce}, + {0x9632c439, 0xffffd84cffffdfcf}, + {0x9632c530, 0xffffd84cffffdfd0}, + {0x9632c531, 0xffffd84cffffdfd1}, + {0x9632c532, 0xffffd84cffffdfd2}, + {0x9632c533, 0xffffd84cffffdfd3}, + {0x9632c534, 0xffffd84cffffdfd4}, + {0x9632c535, 0xffffd84cffffdfd5}, + {0x9632c536, 0xffffd84cffffdfd6}, + {0x9632c537, 0xffffd84cffffdfd7}, + {0x9632c538, 0xffffd84cffffdfd8}, + {0x9632c539, 0xffffd84cffffdfd9}, + {0x9632c630, 0xffffd84cffffdfda}, + {0x9632c631, 0xffffd84cffffdfdb}, + {0x9632c632, 0xffffd84cffffdfdc}, + {0x9632c633, 0xffffd84cffffdfdd}, + {0x9632c634, 0xffffd84cffffdfde}, + {0x9632c635, 0xffffd84cffffdfdf}, + {0x9632c636, 0xffffd84cffffdfe0}, + {0x9632c637, 0xffffd84cffffdfe1}, + {0x9632c638, 0xffffd84cffffdfe2}, + {0x9632c639, 0xffffd84cffffdfe3}, + {0x9632c730, 0xffffd84cffffdfe4}, + {0x9632c731, 0xffffd84cffffdfe5}, + {0x9632c732, 0xffffd84cffffdfe6}, + {0x9632c733, 0xffffd84cffffdfe7}, + {0x9632c734, 0xffffd84cffffdfe8}, + {0x9632c735, 0xffffd84cffffdfe9}, + {0x9632c736, 0xffffd84cffffdfea}, + {0x9632c737, 0xffffd84cffffdfeb}, + {0x9632c738, 0xffffd84cffffdfec}, + {0x9632c739, 0xffffd84cffffdfed}, + {0x9632c830, 0xffffd84cffffdfee}, + {0x9632c831, 0xffffd84cffffdfef}, + {0x9632c832, 0xffffd84cffffdff0}, + {0x9632c833, 0xffffd84cffffdff1}, + {0x9632c834, 0xffffd84cffffdff2}, + {0x9632c835, 0xffffd84cffffdff3}, + {0x9632c836, 0xffffd84cffffdff4}, + {0x9632c837, 0xffffd84cffffdff5}, + {0x9632c838, 0xffffd84cffffdff6}, + {0x9632c839, 0xffffd84cffffdff7}, + {0x9632c930, 0xffffd84cffffdff8}, + {0x9632c931, 0xffffd84cffffdff9}, + {0x9632c932, 0xffffd84cffffdffa}, + {0x9632c933, 0xffffd84cffffdffb}, + {0x9632c934, 0xffffd84cffffdffc}, + {0x9632c935, 0xffffd84cffffdffd}, + {0x9632c936, 0xffffd84cffffdffe}, + {0x9632c937, 0xffffd84cffffdfff}, + {0x9632c938, 0xffffd84dffffdc00}, + {0x9632c939, 0xffffd84dffffdc01}, + {0x9632ca30, 0xffffd84dffffdc02}, + {0x9632ca31, 0xffffd84dffffdc03}, + {0x9632ca32, 0xffffd84dffffdc04}, + {0x9632ca33, 0xffffd84dffffdc05}, + {0x9632ca34, 0xffffd84dffffdc06}, + {0x9632ca35, 0xffffd84dffffdc07}, + {0x9632ca36, 0xffffd84dffffdc08}, + {0x9632ca37, 0xffffd84dffffdc09}, + {0x9632ca38, 0xffffd84dffffdc0a}, + {0x9632ca39, 0xffffd84dffffdc0b}, + {0x9632cb30, 0xffffd84dffffdc0c}, + {0x9632cb31, 0xffffd84dffffdc0d}, + {0x9632cb32, 0xffffd84dffffdc0e}, + {0x9632cb33, 0xffffd84dffffdc0f}, + {0x9632cb34, 0xffffd84dffffdc10}, + {0x9632cb35, 0xffffd84dffffdc11}, + {0x9632cb36, 0xffffd84dffffdc12}, + {0x9632cb37, 0xffffd84dffffdc13}, + {0x9632cb38, 0xffffd84dffffdc14}, + {0x9632cb39, 0xffffd84dffffdc15}, + {0x9632cc30, 0xffffd84dffffdc16}, + {0x9632cc31, 0xffffd84dffffdc17}, + {0x9632cc32, 0xffffd84dffffdc18}, + {0x9632cc33, 0xffffd84dffffdc19}, + {0x9632cc34, 0xffffd84dffffdc1a}, + {0x9632cc35, 0xffffd84dffffdc1b}, + {0x9632cc36, 0xffffd84dffffdc1c}, + {0x9632cc37, 0xffffd84dffffdc1d}, + {0x9632cc38, 0xffffd84dffffdc1e}, + {0x9632cc39, 0xffffd84dffffdc1f}, + {0x9632cd30, 0xffffd84dffffdc20}, + {0x9632cd31, 0xffffd84dffffdc21}, + {0x9632cd32, 0xffffd84dffffdc22}, + {0x9632cd33, 0xffffd84dffffdc23}, + {0x9632cd34, 0xffffd84dffffdc24}, + {0x9632cd35, 0xffffd84dffffdc25}, + {0x9632cd36, 0xffffd84dffffdc26}, + {0x9632cd37, 0xffffd84dffffdc27}, + {0x9632cd38, 0xffffd84dffffdc28}, + {0x9632cd39, 0xffffd84dffffdc29}, + {0x9632ce30, 0xffffd84dffffdc2a}, + {0x9632ce31, 0xffffd84dffffdc2b}, + {0x9632ce32, 0xffffd84dffffdc2c}, + {0x9632ce33, 0xffffd84dffffdc2d}, + {0x9632ce34, 0xffffd84dffffdc2e}, + {0x9632ce35, 0xffffd84dffffdc2f}, + {0x9632ce36, 0xffffd84dffffdc30}, + {0x9632ce37, 0xffffd84dffffdc31}, + {0x9632ce38, 0xffffd84dffffdc32}, + {0x9632ce39, 0xffffd84dffffdc33}, + {0x9632cf30, 0xffffd84dffffdc34}, + {0x9632cf31, 0xffffd84dffffdc35}, + {0x9632cf32, 0xffffd84dffffdc36}, + {0x9632cf33, 0xffffd84dffffdc37}, + {0x9632cf34, 0xffffd84dffffdc38}, + {0x9632cf35, 0xffffd84dffffdc39}, + {0x9632cf36, 0xffffd84dffffdc3a}, + {0x9632cf37, 0xffffd84dffffdc3b}, + {0x9632cf38, 0xffffd84dffffdc3c}, + {0x9632cf39, 0xffffd84dffffdc3d}, + {0x9632d030, 0xffffd84dffffdc3e}, + {0x9632d031, 0xffffd84dffffdc3f}, + {0x9632d032, 0xffffd84dffffdc40}, + {0x9632d033, 0xffffd84dffffdc41}, + {0x9632d034, 0xffffd84dffffdc42}, + {0x9632d035, 0xffffd84dffffdc43}, + {0x9632d036, 0xffffd84dffffdc44}, + {0x9632d037, 0xffffd84dffffdc45}, + {0x9632d038, 0xffffd84dffffdc46}, + {0x9632d039, 0xffffd84dffffdc47}, + {0x9632d130, 0xffffd84dffffdc48}, + {0x9632d131, 0xffffd84dffffdc49}, + {0x9632d132, 0xffffd84dffffdc4a}, + {0x9632d133, 0xffffd84dffffdc4b}, + {0x9632d134, 0xffffd84dffffdc4c}, + {0x9632d135, 0xffffd84dffffdc4d}, + {0x9632d136, 0xffffd84dffffdc4e}, + {0x9632d137, 0xffffd84dffffdc4f}, + {0x9632d138, 0xffffd84dffffdc50}, + {0x9632d139, 0xffffd84dffffdc51}, + {0x9632d230, 0xffffd84dffffdc52}, + {0x9632d231, 0xffffd84dffffdc53}, + {0x9632d232, 0xffffd84dffffdc54}, + {0x9632d233, 0xffffd84dffffdc55}, + {0x9632d234, 0xffffd84dffffdc56}, + {0x9632d235, 0xffffd84dffffdc57}, + {0x9632d236, 0xffffd84dffffdc58}, + {0x9632d237, 0xffffd84dffffdc59}, + {0x9632d238, 0xffffd84dffffdc5a}, + {0x9632d239, 0xffffd84dffffdc5b}, + {0x9632d330, 0xffffd84dffffdc5c}, + {0x9632d331, 0xffffd84dffffdc5d}, + {0x9632d332, 0xffffd84dffffdc5e}, + {0x9632d333, 0xffffd84dffffdc5f}, + {0x9632d334, 0xffffd84dffffdc60}, + {0x9632d335, 0xffffd84dffffdc61}, + {0x9632d336, 0xffffd84dffffdc62}, + {0x9632d337, 0xffffd84dffffdc63}, + {0x9632d338, 0xffffd84dffffdc64}, + {0x9632d339, 0xffffd84dffffdc65}, + {0x9632d430, 0xffffd84dffffdc66}, + {0x9632d431, 0xffffd84dffffdc67}, + {0x9632d432, 0xffffd84dffffdc68}, + {0x9632d433, 0xffffd84dffffdc69}, + {0x9632d434, 0xffffd84dffffdc6a}, + {0x9632d435, 0xffffd84dffffdc6b}, + {0x9632d436, 0xffffd84dffffdc6c}, + {0x9632d437, 0xffffd84dffffdc6d}, + {0x9632d438, 0xffffd84dffffdc6e}, + {0x9632d439, 0xffffd84dffffdc6f}, + {0x9632d530, 0xffffd84dffffdc70}, + {0x9632d531, 0xffffd84dffffdc71}, + {0x9632d532, 0xffffd84dffffdc72}, + {0x9632d533, 0xffffd84dffffdc73}, + {0x9632d534, 0xffffd84dffffdc74}, + {0x9632d535, 0xffffd84dffffdc75}, + {0x9632d536, 0xffffd84dffffdc76}, + {0x9632d537, 0xffffd84dffffdc77}, + {0x9632d538, 0xffffd84dffffdc78}, + {0x9632d539, 0xffffd84dffffdc79}, + {0x9632d630, 0xffffd84dffffdc7a}, + {0x9632d631, 0xffffd84dffffdc7b}, + {0x9632d632, 0xffffd84dffffdc7c}, + {0x9632d633, 0xffffd84dffffdc7d}, + {0x9632d634, 0xffffd84dffffdc7e}, + {0x9632d635, 0xffffd84dffffdc7f}, + {0x9632d636, 0xffffd84dffffdc80}, + {0x9632d637, 0xffffd84dffffdc81}, + {0x9632d638, 0xffffd84dffffdc82}, + {0x9632d639, 0xffffd84dffffdc83}, + {0x9632d730, 0xffffd84dffffdc84}, + {0x9632d731, 0xffffd84dffffdc85}, + {0x9632d732, 0xffffd84dffffdc86}, + {0x9632d733, 0xffffd84dffffdc87}, + {0x9632d734, 0xffffd84dffffdc88}, + {0x9632d735, 0xffffd84dffffdc89}, + {0x9632d736, 0xffffd84dffffdc8a}, + {0x9632d737, 0xffffd84dffffdc8b}, + {0x9632d738, 0xffffd84dffffdc8c}, + {0x9632d739, 0xffffd84dffffdc8d}, + {0x9632d830, 0xffffd84dffffdc8e}, + {0x9632d831, 0xffffd84dffffdc8f}, + {0x9632d832, 0xffffd84dffffdc90}, + {0x9632d833, 0xffffd84dffffdc91}, + {0x9632d834, 0xffffd84dffffdc92}, + {0x9632d835, 0xffffd84dffffdc93}, + {0x9632d836, 0xffffd84dffffdc94}, + {0x9632d837, 0xffffd84dffffdc95}, + {0x9632d838, 0xffffd84dffffdc96}, + {0x9632d839, 0xffffd84dffffdc97}, + {0x9632d930, 0xffffd84dffffdc98}, + {0x9632d931, 0xffffd84dffffdc99}, + {0x9632d932, 0xffffd84dffffdc9a}, + {0x9632d933, 0xffffd84dffffdc9b}, + {0x9632d934, 0xffffd84dffffdc9c}, + {0x9632d935, 0xffffd84dffffdc9d}, + {0x9632d936, 0xffffd84dffffdc9e}, + {0x9632d937, 0xffffd84dffffdc9f}, + {0x9632d938, 0xffffd84dffffdca0}, + {0x9632d939, 0xffffd84dffffdca1}, + {0x9632da30, 0xffffd84dffffdca2}, + {0x9632da31, 0xffffd84dffffdca3}, + {0x9632da32, 0xffffd84dffffdca4}, + {0x9632da33, 0xffffd84dffffdca5}, + {0x9632da34, 0xffffd84dffffdca6}, + {0x9632da35, 0xffffd84dffffdca7}, + {0x9632da36, 0xffffd84dffffdca8}, + {0x9632da37, 0xffffd84dffffdca9}, + {0x9632da38, 0xffffd84dffffdcaa}, + {0x9632da39, 0xffffd84dffffdcab}, + {0x9632db30, 0xffffd84dffffdcac}, + {0x9632db31, 0xffffd84dffffdcad}, + {0x9632db32, 0xffffd84dffffdcae}, + {0x9632db33, 0xffffd84dffffdcaf}, + {0x9632db34, 0xffffd84dffffdcb0}, + {0x9632db35, 0xffffd84dffffdcb1}, + {0x9632db36, 0xffffd84dffffdcb2}, + {0x9632db37, 0xffffd84dffffdcb3}, + {0x9632db38, 0xffffd84dffffdcb4}, + {0x9632db39, 0xffffd84dffffdcb5}, + {0x9632dc30, 0xffffd84dffffdcb6}, + {0x9632dc31, 0xffffd84dffffdcb7}, + {0x9632dc32, 0xffffd84dffffdcb8}, + {0x9632dc33, 0xffffd84dffffdcb9}, + {0x9632dc34, 0xffffd84dffffdcba}, + {0x9632dc35, 0xffffd84dffffdcbb}, + {0x9632dc36, 0xffffd84dffffdcbc}, + {0x9632dc37, 0xffffd84dffffdcbd}, + {0x9632dc38, 0xffffd84dffffdcbe}, + {0x9632dc39, 0xffffd84dffffdcbf}, + {0x9632dd30, 0xffffd84dffffdcc0}, + {0x9632dd31, 0xffffd84dffffdcc1}, + {0x9632dd32, 0xffffd84dffffdcc2}, + {0x9632dd33, 0xffffd84dffffdcc3}, + {0x9632dd34, 0xffffd84dffffdcc4}, + {0x9632dd35, 0xffffd84dffffdcc5}, + {0x9632dd36, 0xffffd84dffffdcc6}, + {0x9632dd37, 0xffffd84dffffdcc7}, + {0x9632dd38, 0xffffd84dffffdcc8}, + {0x9632dd39, 0xffffd84dffffdcc9}, + {0x9632de30, 0xffffd84dffffdcca}, + {0x9632de31, 0xffffd84dffffdccb}, + {0x9632de32, 0xffffd84dffffdccc}, + {0x9632de33, 0xffffd84dffffdccd}, + {0x9632de34, 0xffffd84dffffdcce}, + {0x9632de35, 0xffffd84dffffdccf}, + {0x9632de36, 0xffffd84dffffdcd0}, + {0x9632de37, 0xffffd84dffffdcd1}, + {0x9632de38, 0xffffd84dffffdcd2}, + {0x9632de39, 0xffffd84dffffdcd3}, + {0x9632df30, 0xffffd84dffffdcd4}, + {0x9632df31, 0xffffd84dffffdcd5}, + {0x9632df32, 0xffffd84dffffdcd6}, + {0x9632df33, 0xffffd84dffffdcd7}, + {0x9632df34, 0xffffd84dffffdcd8}, + {0x9632df35, 0xffffd84dffffdcd9}, + {0x9632df36, 0xffffd84dffffdcda}, + {0x9632df37, 0xffffd84dffffdcdb}, + {0x9632df38, 0xffffd84dffffdcdc}, + {0x9632df39, 0xffffd84dffffdcdd}, + {0x9632e030, 0xffffd84dffffdcde}, + {0x9632e031, 0xffffd84dffffdcdf}, + {0x9632e032, 0xffffd84dffffdce0}, + {0x9632e033, 0xffffd84dffffdce1}, + {0x9632e034, 0xffffd84dffffdce2}, + {0x9632e035, 0xffffd84dffffdce3}, + {0x9632e036, 0xffffd84dffffdce4}, + {0x9632e037, 0xffffd84dffffdce5}, + {0x9632e038, 0xffffd84dffffdce6}, + {0x9632e039, 0xffffd84dffffdce7}, + {0x9632e130, 0xffffd84dffffdce8}, + {0x9632e131, 0xffffd84dffffdce9}, + {0x9632e132, 0xffffd84dffffdcea}, + {0x9632e133, 0xffffd84dffffdceb}, + {0x9632e134, 0xffffd84dffffdcec}, + {0x9632e135, 0xffffd84dffffdced}, + {0x9632e136, 0xffffd84dffffdcee}, + {0x9632e137, 0xffffd84dffffdcef}, + {0x9632e138, 0xffffd84dffffdcf0}, + {0x9632e139, 0xffffd84dffffdcf1}, + {0x9632e230, 0xffffd84dffffdcf2}, + {0x9632e231, 0xffffd84dffffdcf3}, + {0x9632e232, 0xffffd84dffffdcf4}, + {0x9632e233, 0xffffd84dffffdcf5}, + {0x9632e234, 0xffffd84dffffdcf6}, + {0x9632e235, 0xffffd84dffffdcf7}, + {0x9632e236, 0xffffd84dffffdcf8}, + {0x9632e237, 0xffffd84dffffdcf9}, + {0x9632e238, 0xffffd84dffffdcfa}, + {0x9632e239, 0xffffd84dffffdcfb}, + {0x9632e330, 0xffffd84dffffdcfc}, + {0x9632e331, 0xffffd84dffffdcfd}, + {0x9632e332, 0xffffd84dffffdcfe}, + {0x9632e333, 0xffffd84dffffdcff}, + {0x9632e334, 0xffffd84dffffdd00}, + {0x9632e335, 0xffffd84dffffdd01}, + {0x9632e336, 0xffffd84dffffdd02}, + {0x9632e337, 0xffffd84dffffdd03}, + {0x9632e338, 0xffffd84dffffdd04}, + {0x9632e339, 0xffffd84dffffdd05}, + {0x9632e430, 0xffffd84dffffdd06}, + {0x9632e431, 0xffffd84dffffdd07}, + {0x9632e432, 0xffffd84dffffdd08}, + {0x9632e433, 0xffffd84dffffdd09}, + {0x9632e434, 0xffffd84dffffdd0a}, + {0x9632e435, 0xffffd84dffffdd0b}, + {0x9632e436, 0xffffd84dffffdd0c}, + {0x9632e437, 0xffffd84dffffdd0d}, + {0x9632e438, 0xffffd84dffffdd0e}, + {0x9632e439, 0xffffd84dffffdd0f}, + {0x9632e530, 0xffffd84dffffdd10}, + {0x9632e531, 0xffffd84dffffdd11}, + {0x9632e532, 0xffffd84dffffdd12}, + {0x9632e533, 0xffffd84dffffdd13}, + {0x9632e534, 0xffffd84dffffdd14}, + {0x9632e535, 0xffffd84dffffdd15}, + {0x9632e536, 0xffffd84dffffdd16}, + {0x9632e537, 0xffffd84dffffdd17}, + {0x9632e538, 0xffffd84dffffdd18}, + {0x9632e539, 0xffffd84dffffdd19}, + {0x9632e630, 0xffffd84dffffdd1a}, + {0x9632e631, 0xffffd84dffffdd1b}, + {0x9632e632, 0xffffd84dffffdd1c}, + {0x9632e633, 0xffffd84dffffdd1d}, + {0x9632e634, 0xffffd84dffffdd1e}, + {0x9632e635, 0xffffd84dffffdd1f}, + {0x9632e636, 0xffffd84dffffdd20}, + {0x9632e637, 0xffffd84dffffdd21}, + {0x9632e638, 0xffffd84dffffdd22}, + {0x9632e639, 0xffffd84dffffdd23}, + {0x9632e730, 0xffffd84dffffdd24}, + {0x9632e731, 0xffffd84dffffdd25}, + {0x9632e732, 0xffffd84dffffdd26}, + {0x9632e733, 0xffffd84dffffdd27}, + {0x9632e734, 0xffffd84dffffdd28}, + {0x9632e735, 0xffffd84dffffdd29}, + {0x9632e736, 0xffffd84dffffdd2a}, + {0x9632e737, 0xffffd84dffffdd2b}, + {0x9632e738, 0xffffd84dffffdd2c}, + {0x9632e739, 0xffffd84dffffdd2d}, + {0x9632e830, 0xffffd84dffffdd2e}, + {0x9632e831, 0xffffd84dffffdd2f}, + {0x9632e832, 0xffffd84dffffdd30}, + {0x9632e833, 0xffffd84dffffdd31}, + {0x9632e834, 0xffffd84dffffdd32}, + {0x9632e835, 0xffffd84dffffdd33}, + {0x9632e836, 0xffffd84dffffdd34}, + {0x9632e837, 0xffffd84dffffdd35}, + {0x9632e838, 0xffffd84dffffdd36}, + {0x9632e839, 0xffffd84dffffdd37}, + {0x9632e930, 0xffffd84dffffdd38}, + {0x9632e931, 0xffffd84dffffdd39}, + {0x9632e932, 0xffffd84dffffdd3a}, + {0x9632e933, 0xffffd84dffffdd3b}, + {0x9632e934, 0xffffd84dffffdd3c}, + {0x9632e935, 0xffffd84dffffdd3d}, + {0x9632e936, 0xffffd84dffffdd3e}, + {0x9632e937, 0xffffd84dffffdd3f}, + {0x9632e938, 0xffffd84dffffdd40}, + {0x9632e939, 0xffffd84dffffdd41}, + {0x9632ea30, 0xffffd84dffffdd42}, + {0x9632ea31, 0xffffd84dffffdd43}, + {0x9632ea32, 0xffffd84dffffdd44}, + {0x9632ea33, 0xffffd84dffffdd45}, + {0x9632ea34, 0xffffd84dffffdd46}, + {0x9632ea35, 0xffffd84dffffdd47}, + {0x9632ea36, 0xffffd84dffffdd48}, + {0x9632ea37, 0xffffd84dffffdd49}, + {0x9632ea38, 0xffffd84dffffdd4a}, + {0x9632ea39, 0xffffd84dffffdd4b}, + {0x9632eb30, 0xffffd84dffffdd4c}, + {0x9632eb31, 0xffffd84dffffdd4d}, + {0x9632eb32, 0xffffd84dffffdd4e}, + {0x9632eb33, 0xffffd84dffffdd4f}, + {0x9632eb34, 0xffffd84dffffdd50}, + {0x9632eb35, 0xffffd84dffffdd51}, + {0x9632eb36, 0xffffd84dffffdd52}, + {0x9632eb37, 0xffffd84dffffdd53}, + {0x9632eb38, 0xffffd84dffffdd54}, + {0x9632eb39, 0xffffd84dffffdd55}, + {0x9632ec30, 0xffffd84dffffdd56}, + {0x9632ec31, 0xffffd84dffffdd57}, + {0x9632ec32, 0xffffd84dffffdd58}, + {0x9632ec33, 0xffffd84dffffdd59}, + {0x9632ec34, 0xffffd84dffffdd5a}, + {0x9632ec35, 0xffffd84dffffdd5b}, + {0x9632ec36, 0xffffd84dffffdd5c}, + {0x9632ec37, 0xffffd84dffffdd5d}, + {0x9632ec38, 0xffffd84dffffdd5e}, + {0x9632ec39, 0xffffd84dffffdd5f}, + {0x9632ed30, 0xffffd84dffffdd60}, + {0x9632ed31, 0xffffd84dffffdd61}, + {0x9632ed32, 0xffffd84dffffdd62}, + {0x9632ed33, 0xffffd84dffffdd63}, + {0x9632ed34, 0xffffd84dffffdd64}, + {0x9632ed35, 0xffffd84dffffdd65}, + {0x9632ed36, 0xffffd84dffffdd66}, + {0x9632ed37, 0xffffd84dffffdd67}, + {0x9632ed38, 0xffffd84dffffdd68}, + {0x9632ed39, 0xffffd84dffffdd69}, + {0x9632ee30, 0xffffd84dffffdd6a}, + {0x9632ee31, 0xffffd84dffffdd6b}, + {0x9632ee32, 0xffffd84dffffdd6c}, + {0x9632ee33, 0xffffd84dffffdd6d}, + {0x9632ee34, 0xffffd84dffffdd6e}, + {0x9632ee35, 0xffffd84dffffdd6f}, + {0x9632ee36, 0xffffd84dffffdd70}, + {0x9632ee37, 0xffffd84dffffdd71}, + {0x9632ee38, 0xffffd84dffffdd72}, + {0x9632ee39, 0xffffd84dffffdd73}, + {0x9632ef30, 0xffffd84dffffdd74}, + {0x9632ef31, 0xffffd84dffffdd75}, + {0x9632ef32, 0xffffd84dffffdd76}, + {0x9632ef33, 0xffffd84dffffdd77}, + {0x9632ef34, 0xffffd84dffffdd78}, + {0x9632ef35, 0xffffd84dffffdd79}, + {0x9632ef36, 0xffffd84dffffdd7a}, + {0x9632ef37, 0xffffd84dffffdd7b}, + {0x9632ef38, 0xffffd84dffffdd7c}, + {0x9632ef39, 0xffffd84dffffdd7d}, + {0x9632f030, 0xffffd84dffffdd7e}, + {0x9632f031, 0xffffd84dffffdd7f}, + {0x9632f032, 0xffffd84dffffdd80}, + {0x9632f033, 0xffffd84dffffdd81}, + {0x9632f034, 0xffffd84dffffdd82}, + {0x9632f035, 0xffffd84dffffdd83}, + {0x9632f036, 0xffffd84dffffdd84}, + {0x9632f037, 0xffffd84dffffdd85}, + {0x9632f038, 0xffffd84dffffdd86}, + {0x9632f039, 0xffffd84dffffdd87}, + {0x9632f130, 0xffffd84dffffdd88}, + {0x9632f131, 0xffffd84dffffdd89}, + {0x9632f132, 0xffffd84dffffdd8a}, + {0x9632f133, 0xffffd84dffffdd8b}, + {0x9632f134, 0xffffd84dffffdd8c}, + {0x9632f135, 0xffffd84dffffdd8d}, + {0x9632f136, 0xffffd84dffffdd8e}, + {0x9632f137, 0xffffd84dffffdd8f}, + {0x9632f138, 0xffffd84dffffdd90}, + {0x9632f139, 0xffffd84dffffdd91}, + {0x9632f230, 0xffffd84dffffdd92}, + {0x9632f231, 0xffffd84dffffdd93}, + {0x9632f232, 0xffffd84dffffdd94}, + {0x9632f233, 0xffffd84dffffdd95}, + {0x9632f234, 0xffffd84dffffdd96}, + {0x9632f235, 0xffffd84dffffdd97}, + {0x9632f236, 0xffffd84dffffdd98}, + {0x9632f237, 0xffffd84dffffdd99}, + {0x9632f238, 0xffffd84dffffdd9a}, + {0x9632f239, 0xffffd84dffffdd9b}, + {0x9632f330, 0xffffd84dffffdd9c}, + {0x9632f331, 0xffffd84dffffdd9d}, + {0x9632f332, 0xffffd84dffffdd9e}, + {0x9632f333, 0xffffd84dffffdd9f}, + {0x9632f334, 0xffffd84dffffdda0}, + {0x9632f335, 0xffffd84dffffdda1}, + {0x9632f336, 0xffffd84dffffdda2}, + {0x9632f337, 0xffffd84dffffdda3}, + {0x9632f338, 0xffffd84dffffdda4}, + {0x9632f339, 0xffffd84dffffdda5}, + {0x9632f430, 0xffffd84dffffdda6}, + {0x9632f431, 0xffffd84dffffdda7}, + {0x9632f432, 0xffffd84dffffdda8}, + {0x9632f433, 0xffffd84dffffdda9}, + {0x9632f434, 0xffffd84dffffddaa}, + {0x9632f435, 0xffffd84dffffddab}, + {0x9632f436, 0xffffd84dffffddac}, + {0x9632f437, 0xffffd84dffffddad}, + {0x9632f438, 0xffffd84dffffddae}, + {0x9632f439, 0xffffd84dffffddaf}, + {0x9632f530, 0xffffd84dffffddb0}, + {0x9632f531, 0xffffd84dffffddb1}, + {0x9632f532, 0xffffd84dffffddb2}, + {0x9632f533, 0xffffd84dffffddb3}, + {0x9632f534, 0xffffd84dffffddb4}, + {0x9632f535, 0xffffd84dffffddb5}, + {0x9632f536, 0xffffd84dffffddb6}, + {0x9632f537, 0xffffd84dffffddb7}, + {0x9632f538, 0xffffd84dffffddb8}, + {0x9632f539, 0xffffd84dffffddb9}, + {0x9632f630, 0xffffd84dffffddba}, + {0x9632f631, 0xffffd84dffffddbb}, + {0x9632f632, 0xffffd84dffffddbc}, + {0x9632f633, 0xffffd84dffffddbd}, + {0x9632f634, 0xffffd84dffffddbe}, + {0x9632f635, 0xffffd84dffffddbf}, + {0x9632f636, 0xffffd84dffffddc0}, + {0x9632f637, 0xffffd84dffffddc1}, + {0x9632f638, 0xffffd84dffffddc2}, + {0x9632f639, 0xffffd84dffffddc3}, + {0x9632f730, 0xffffd84dffffddc4}, + {0x9632f731, 0xffffd84dffffddc5}, + {0x9632f732, 0xffffd84dffffddc6}, + {0x9632f733, 0xffffd84dffffddc7}, + {0x9632f734, 0xffffd84dffffddc8}, + {0x9632f735, 0xffffd84dffffddc9}, + {0x9632f736, 0xffffd84dffffddca}, + {0x9632f737, 0xffffd84dffffddcb}, + {0x9632f738, 0xffffd84dffffddcc}, + {0x9632f739, 0xffffd84dffffddcd}, + {0x9632f830, 0xffffd84dffffddce}, + {0x9632f831, 0xffffd84dffffddcf}, + {0x9632f832, 0xffffd84dffffddd0}, + {0x9632f833, 0xffffd84dffffddd1}, + {0x9632f834, 0xffffd84dffffddd2}, + {0x9632f835, 0xffffd84dffffddd3}, + {0x9632f836, 0xffffd84dffffddd4}, + {0x9632f837, 0xffffd84dffffddd5}, + {0x9632f838, 0xffffd84dffffddd6}, + {0x9632f839, 0xffffd84dffffddd7}, + {0x9632f930, 0xffffd84dffffddd8}, + {0x9632f931, 0xffffd84dffffddd9}, + {0x9632f932, 0xffffd84dffffddda}, + {0x9632f933, 0xffffd84dffffdddb}, + {0x9632f934, 0xffffd84dffffdddc}, + {0x9632f935, 0xffffd84dffffdddd}, + {0x9632f936, 0xffffd84dffffddde}, + {0x9632f937, 0xffffd84dffffdddf}, + {0x9632f938, 0xffffd84dffffdde0}, + {0x9632f939, 0xffffd84dffffdde1}, + {0x9632fa30, 0xffffd84dffffdde2}, + {0x9632fa31, 0xffffd84dffffdde3}, + {0x9632fa32, 0xffffd84dffffdde4}, + {0x9632fa33, 0xffffd84dffffdde5}, + {0x9632fa34, 0xffffd84dffffdde6}, + {0x9632fa35, 0xffffd84dffffdde7}, + {0x9632fa36, 0xffffd84dffffdde8}, + {0x9632fa37, 0xffffd84dffffdde9}, + {0x9632fa38, 0xffffd84dffffddea}, + {0x9632fa39, 0xffffd84dffffddeb}, + {0x9632fb30, 0xffffd84dffffddec}, + {0x9632fb31, 0xffffd84dffffdded}, + {0x9632fb32, 0xffffd84dffffddee}, + {0x9632fb33, 0xffffd84dffffddef}, + {0x9632fb34, 0xffffd84dffffddf0}, + {0x9632fb35, 0xffffd84dffffddf1}, + {0x9632fb36, 0xffffd84dffffddf2}, + {0x9632fb37, 0xffffd84dffffddf3}, + {0x9632fb38, 0xffffd84dffffddf4}, + {0x9632fb39, 0xffffd84dffffddf5}, + {0x9632fc30, 0xffffd84dffffddf6}, + {0x9632fc31, 0xffffd84dffffddf7}, + {0x9632fc32, 0xffffd84dffffddf8}, + {0x9632fc33, 0xffffd84dffffddf9}, + {0x9632fc34, 0xffffd84dffffddfa}, + {0x9632fc35, 0xffffd84dffffddfb}, + {0x9632fc36, 0xffffd84dffffddfc}, + {0x9632fc37, 0xffffd84dffffddfd}, + {0x9632fc38, 0xffffd84dffffddfe}, + {0x9632fc39, 0xffffd84dffffddff}, + {0x9632fd30, 0xffffd84dffffde00}, + {0x9632fd31, 0xffffd84dffffde01}, + {0x9632fd32, 0xffffd84dffffde02}, + {0x9632fd33, 0xffffd84dffffde03}, + {0x9632fd34, 0xffffd84dffffde04}, + {0x9632fd35, 0xffffd84dffffde05}, + {0x9632fd36, 0xffffd84dffffde06}, + {0x9632fd37, 0xffffd84dffffde07}, + {0x9632fd38, 0xffffd84dffffde08}, + {0x9632fd39, 0xffffd84dffffde09}, + {0x9632fe30, 0xffffd84dffffde0a}, + {0x9632fe31, 0xffffd84dffffde0b}, + {0x9632fe32, 0xffffd84dffffde0c}, + {0x9632fe33, 0xffffd84dffffde0d}, + {0x9632fe34, 0xffffd84dffffde0e}, + {0x9632fe35, 0xffffd84dffffde0f}, + {0x9632fe36, 0xffffd84dffffde10}, + {0x9632fe37, 0xffffd84dffffde11}, + {0x9632fe38, 0xffffd84dffffde12}, + {0x9632fe39, 0xffffd84dffffde13}, + {0x96338130, 0xffffd84dffffde14}, + {0x96338131, 0xffffd84dffffde15}, + {0x96338132, 0xffffd84dffffde16}, + {0x96338133, 0xffffd84dffffde17}, + {0x96338134, 0xffffd84dffffde18}, + {0x96338135, 0xffffd84dffffde19}, + {0x96338136, 0xffffd84dffffde1a}, + {0x96338137, 0xffffd84dffffde1b}, + {0x96338138, 0xffffd84dffffde1c}, + {0x96338139, 0xffffd84dffffde1d}, + {0x96338230, 0xffffd84dffffde1e}, + {0x96338231, 0xffffd84dffffde1f}, + {0x96338232, 0xffffd84dffffde20}, + {0x96338233, 0xffffd84dffffde21}, + {0x96338234, 0xffffd84dffffde22}, + {0x96338235, 0xffffd84dffffde23}, + {0x96338236, 0xffffd84dffffde24}, + {0x96338237, 0xffffd84dffffde25}, + {0x96338238, 0xffffd84dffffde26}, + {0x96338239, 0xffffd84dffffde27}, + {0x96338330, 0xffffd84dffffde28}, + {0x96338331, 0xffffd84dffffde29}, + {0x96338332, 0xffffd84dffffde2a}, + {0x96338333, 0xffffd84dffffde2b}, + {0x96338334, 0xffffd84dffffde2c}, + {0x96338335, 0xffffd84dffffde2d}, + {0x96338336, 0xffffd84dffffde2e}, + {0x96338337, 0xffffd84dffffde2f}, + {0x96338338, 0xffffd84dffffde30}, + {0x96338339, 0xffffd84dffffde31}, + {0x96338430, 0xffffd84dffffde32}, + {0x96338431, 0xffffd84dffffde33}, + {0x96338432, 0xffffd84dffffde34}, + {0x96338433, 0xffffd84dffffde35}, + {0x96338434, 0xffffd84dffffde36}, + {0x96338435, 0xffffd84dffffde37}, + {0x96338436, 0xffffd84dffffde38}, + {0x96338437, 0xffffd84dffffde39}, + {0x96338438, 0xffffd84dffffde3a}, + {0x96338439, 0xffffd84dffffde3b}, + {0x96338530, 0xffffd84dffffde3c}, + {0x96338531, 0xffffd84dffffde3d}, + {0x96338532, 0xffffd84dffffde3e}, + {0x96338533, 0xffffd84dffffde3f}, + {0x96338534, 0xffffd84dffffde40}, + {0x96338535, 0xffffd84dffffde41}, + {0x96338536, 0xffffd84dffffde42}, + {0x96338537, 0xffffd84dffffde43}, + {0x96338538, 0xffffd84dffffde44}, + {0x96338539, 0xffffd84dffffde45}, + {0x96338630, 0xffffd84dffffde46}, + {0x96338631, 0xffffd84dffffde47}, + {0x96338632, 0xffffd84dffffde48}, + {0x96338633, 0xffffd84dffffde49}, + {0x96338634, 0xffffd84dffffde4a}, + {0x96338635, 0xffffd84dffffde4b}, + {0x96338636, 0xffffd84dffffde4c}, + {0x96338637, 0xffffd84dffffde4d}, + {0x96338638, 0xffffd84dffffde4e}, + {0x96338639, 0xffffd84dffffde4f}, + {0x96338730, 0xffffd84dffffde50}, + {0x96338731, 0xffffd84dffffde51}, + {0x96338732, 0xffffd84dffffde52}, + {0x96338733, 0xffffd84dffffde53}, + {0x96338734, 0xffffd84dffffde54}, + {0x96338735, 0xffffd84dffffde55}, + {0x96338736, 0xffffd84dffffde56}, + {0x96338737, 0xffffd84dffffde57}, + {0x96338738, 0xffffd84dffffde58}, + {0x96338739, 0xffffd84dffffde59}, + {0x96338830, 0xffffd84dffffde5a}, + {0x96338831, 0xffffd84dffffde5b}, + {0x96338832, 0xffffd84dffffde5c}, + {0x96338833, 0xffffd84dffffde5d}, + {0x96338834, 0xffffd84dffffde5e}, + {0x96338835, 0xffffd84dffffde5f}, + {0x96338836, 0xffffd84dffffde60}, + {0x96338837, 0xffffd84dffffde61}, + {0x96338838, 0xffffd84dffffde62}, + {0x96338839, 0xffffd84dffffde63}, + {0x96338930, 0xffffd84dffffde64}, + {0x96338931, 0xffffd84dffffde65}, + {0x96338932, 0xffffd84dffffde66}, + {0x96338933, 0xffffd84dffffde67}, + {0x96338934, 0xffffd84dffffde68}, + {0x96338935, 0xffffd84dffffde69}, + {0x96338936, 0xffffd84dffffde6a}, + {0x96338937, 0xffffd84dffffde6b}, + {0x96338938, 0xffffd84dffffde6c}, + {0x96338939, 0xffffd84dffffde6d}, + {0x96338a30, 0xffffd84dffffde6e}, + {0x96338a31, 0xffffd84dffffde6f}, + {0x96338a32, 0xffffd84dffffde70}, + {0x96338a33, 0xffffd84dffffde71}, + {0x96338a34, 0xffffd84dffffde72}, + {0x96338a35, 0xffffd84dffffde73}, + {0x96338a36, 0xffffd84dffffde74}, + {0x96338a37, 0xffffd84dffffde75}, + {0x96338a38, 0xffffd84dffffde76}, + {0x96338a39, 0xffffd84dffffde77}, + {0x96338b30, 0xffffd84dffffde78}, + {0x96338b31, 0xffffd84dffffde79}, + {0x96338b32, 0xffffd84dffffde7a}, + {0x96338b33, 0xffffd84dffffde7b}, + {0x96338b34, 0xffffd84dffffde7c}, + {0x96338b35, 0xffffd84dffffde7d}, + {0x96338b36, 0xffffd84dffffde7e}, + {0x96338b37, 0xffffd84dffffde7f}, + {0x96338b38, 0xffffd84dffffde80}, + {0x96338b39, 0xffffd84dffffde81}, + {0x96338c30, 0xffffd84dffffde82}, + {0x96338c31, 0xffffd84dffffde83}, + {0x96338c32, 0xffffd84dffffde84}, + {0x96338c33, 0xffffd84dffffde85}, + {0x96338c34, 0xffffd84dffffde86}, + {0x96338c35, 0xffffd84dffffde87}, + {0x96338c36, 0xffffd84dffffde88}, + {0x96338c37, 0xffffd84dffffde89}, + {0x96338c38, 0xffffd84dffffde8a}, + {0x96338c39, 0xffffd84dffffde8b}, + {0x96338d30, 0xffffd84dffffde8c}, + {0x96338d31, 0xffffd84dffffde8d}, + {0x96338d32, 0xffffd84dffffde8e}, + {0x96338d33, 0xffffd84dffffde8f}, + {0x96338d34, 0xffffd84dffffde90}, + {0x96338d35, 0xffffd84dffffde91}, + {0x96338d36, 0xffffd84dffffde92}, + {0x96338d37, 0xffffd84dffffde93}, + {0x96338d38, 0xffffd84dffffde94}, + {0x96338d39, 0xffffd84dffffde95}, + {0x96338e30, 0xffffd84dffffde96}, + {0x96338e31, 0xffffd84dffffde97}, + {0x96338e32, 0xffffd84dffffde98}, + {0x96338e33, 0xffffd84dffffde99}, + {0x96338e34, 0xffffd84dffffde9a}, + {0x96338e35, 0xffffd84dffffde9b}, + {0x96338e36, 0xffffd84dffffde9c}, + {0x96338e37, 0xffffd84dffffde9d}, + {0x96338e38, 0xffffd84dffffde9e}, + {0x96338e39, 0xffffd84dffffde9f}, + {0x96338f30, 0xffffd84dffffdea0}, + {0x96338f31, 0xffffd84dffffdea1}, + {0x96338f32, 0xffffd84dffffdea2}, + {0x96338f33, 0xffffd84dffffdea3}, + {0x96338f34, 0xffffd84dffffdea4}, + {0x96338f35, 0xffffd84dffffdea5}, + {0x96338f36, 0xffffd84dffffdea6}, + {0x96338f37, 0xffffd84dffffdea7}, + {0x96338f38, 0xffffd84dffffdea8}, + {0x96338f39, 0xffffd84dffffdea9}, + {0x96339030, 0xffffd84dffffdeaa}, + {0x96339031, 0xffffd84dffffdeab}, + {0x96339032, 0xffffd84dffffdeac}, + {0x96339033, 0xffffd84dffffdead}, + {0x96339034, 0xffffd84dffffdeae}, + {0x96339035, 0xffffd84dffffdeaf}, + {0x96339036, 0xffffd84dffffdeb0}, + {0x96339037, 0xffffd84dffffdeb1}, + {0x96339038, 0xffffd84dffffdeb2}, + {0x96339039, 0xffffd84dffffdeb3}, + {0x96339130, 0xffffd84dffffdeb4}, + {0x96339131, 0xffffd84dffffdeb5}, + {0x96339132, 0xffffd84dffffdeb6}, + {0x96339133, 0xffffd84dffffdeb7}, + {0x96339134, 0xffffd84dffffdeb8}, + {0x96339135, 0xffffd84dffffdeb9}, + {0x96339136, 0xffffd84dffffdeba}, + {0x96339137, 0xffffd84dffffdebb}, + {0x96339138, 0xffffd84dffffdebc}, + {0x96339139, 0xffffd84dffffdebd}, + {0x96339230, 0xffffd84dffffdebe}, + {0x96339231, 0xffffd84dffffdebf}, + {0x96339232, 0xffffd84dffffdec0}, + {0x96339233, 0xffffd84dffffdec1}, + {0x96339234, 0xffffd84dffffdec2}, + {0x96339235, 0xffffd84dffffdec3}, + {0x96339236, 0xffffd84dffffdec4}, + {0x96339237, 0xffffd84dffffdec5}, + {0x96339238, 0xffffd84dffffdec6}, + {0x96339239, 0xffffd84dffffdec7}, + {0x96339330, 0xffffd84dffffdec8}, + {0x96339331, 0xffffd84dffffdec9}, + {0x96339332, 0xffffd84dffffdeca}, + {0x96339333, 0xffffd84dffffdecb}, + {0x96339334, 0xffffd84dffffdecc}, + {0x96339335, 0xffffd84dffffdecd}, + {0x96339336, 0xffffd84dffffdece}, + {0x96339337, 0xffffd84dffffdecf}, + {0x96339338, 0xffffd84dffffded0}, + {0x96339339, 0xffffd84dffffded1}, + {0x96339430, 0xffffd84dffffded2}, + {0x96339431, 0xffffd84dffffded3}, + {0x96339432, 0xffffd84dffffded4}, + {0x96339433, 0xffffd84dffffded5}, + {0x96339434, 0xffffd84dffffded6}, + {0x96339435, 0xffffd84dffffded7}, + {0x96339436, 0xffffd84dffffded8}, + {0x96339437, 0xffffd84dffffded9}, + {0x96339438, 0xffffd84dffffdeda}, + {0x96339439, 0xffffd84dffffdedb}, + {0x96339530, 0xffffd84dffffdedc}, + {0x96339531, 0xffffd84dffffdedd}, + {0x96339532, 0xffffd84dffffdede}, + {0x96339533, 0xffffd84dffffdedf}, + {0x96339534, 0xffffd84dffffdee0}, + {0x96339535, 0xffffd84dffffdee1}, + {0x96339536, 0xffffd84dffffdee2}, + {0x96339537, 0xffffd84dffffdee3}, + {0x96339538, 0xffffd84dffffdee4}, + {0x96339539, 0xffffd84dffffdee5}, + {0x96339630, 0xffffd84dffffdee6}, + {0x96339631, 0xffffd84dffffdee7}, + {0x96339632, 0xffffd84dffffdee8}, + {0x96339633, 0xffffd84dffffdee9}, + {0x96339634, 0xffffd84dffffdeea}, + {0x96339635, 0xffffd84dffffdeeb}, + {0x96339636, 0xffffd84dffffdeec}, + {0x96339637, 0xffffd84dffffdeed}, + {0x96339638, 0xffffd84dffffdeee}, + {0x96339639, 0xffffd84dffffdeef}, + {0x96339730, 0xffffd84dffffdef0}, + {0x96339731, 0xffffd84dffffdef1}, + {0x96339732, 0xffffd84dffffdef2}, + {0x96339733, 0xffffd84dffffdef3}, + {0x96339734, 0xffffd84dffffdef4}, + {0x96339735, 0xffffd84dffffdef5}, + {0x96339736, 0xffffd84dffffdef6}, + {0x96339737, 0xffffd84dffffdef7}, + {0x96339738, 0xffffd84dffffdef8}, + {0x96339739, 0xffffd84dffffdef9}, + {0x96339830, 0xffffd84dffffdefa}, + {0x96339831, 0xffffd84dffffdefb}, + {0x96339832, 0xffffd84dffffdefc}, + {0x96339833, 0xffffd84dffffdefd}, + {0x96339834, 0xffffd84dffffdefe}, + {0x96339835, 0xffffd84dffffdeff}, + {0x96339836, 0xffffd84dffffdf00}, + {0x96339837, 0xffffd84dffffdf01}, + {0x96339838, 0xffffd84dffffdf02}, + {0x96339839, 0xffffd84dffffdf03}, + {0x96339930, 0xffffd84dffffdf04}, + {0x96339931, 0xffffd84dffffdf05}, + {0x96339932, 0xffffd84dffffdf06}, + {0x96339933, 0xffffd84dffffdf07}, + {0x96339934, 0xffffd84dffffdf08}, + {0x96339935, 0xffffd84dffffdf09}, + {0x96339936, 0xffffd84dffffdf0a}, + {0x96339937, 0xffffd84dffffdf0b}, + {0x96339938, 0xffffd84dffffdf0c}, + {0x96339939, 0xffffd84dffffdf0d}, + {0x96339a30, 0xffffd84dffffdf0e}, + {0x96339a31, 0xffffd84dffffdf0f}, + {0x96339a32, 0xffffd84dffffdf10}, + {0x96339a33, 0xffffd84dffffdf11}, + {0x96339a34, 0xffffd84dffffdf12}, + {0x96339a35, 0xffffd84dffffdf13}, + {0x96339a36, 0xffffd84dffffdf14}, + {0x96339a37, 0xffffd84dffffdf15}, + {0x96339a38, 0xffffd84dffffdf16}, + {0x96339a39, 0xffffd84dffffdf17}, + {0x96339b30, 0xffffd84dffffdf18}, + {0x96339b31, 0xffffd84dffffdf19}, + {0x96339b32, 0xffffd84dffffdf1a}, + {0x96339b33, 0xffffd84dffffdf1b}, + {0x96339b34, 0xffffd84dffffdf1c}, + {0x96339b35, 0xffffd84dffffdf1d}, + {0x96339b36, 0xffffd84dffffdf1e}, + {0x96339b37, 0xffffd84dffffdf1f}, + {0x96339b38, 0xffffd84dffffdf20}, + {0x96339b39, 0xffffd84dffffdf21}, + {0x96339c30, 0xffffd84dffffdf22}, + {0x96339c31, 0xffffd84dffffdf23}, + {0x96339c32, 0xffffd84dffffdf24}, + {0x96339c33, 0xffffd84dffffdf25}, + {0x96339c34, 0xffffd84dffffdf26}, + {0x96339c35, 0xffffd84dffffdf27}, + {0x96339c36, 0xffffd84dffffdf28}, + {0x96339c37, 0xffffd84dffffdf29}, + {0x96339c38, 0xffffd84dffffdf2a}, + {0x96339c39, 0xffffd84dffffdf2b}, + {0x96339d30, 0xffffd84dffffdf2c}, + {0x96339d31, 0xffffd84dffffdf2d}, + {0x96339d32, 0xffffd84dffffdf2e}, + {0x96339d33, 0xffffd84dffffdf2f}, + {0x96339d34, 0xffffd84dffffdf30}, + {0x96339d35, 0xffffd84dffffdf31}, + {0x96339d36, 0xffffd84dffffdf32}, + {0x96339d37, 0xffffd84dffffdf33}, + {0x96339d38, 0xffffd84dffffdf34}, + {0x96339d39, 0xffffd84dffffdf35}, + {0x96339e30, 0xffffd84dffffdf36}, + {0x96339e31, 0xffffd84dffffdf37}, + {0x96339e32, 0xffffd84dffffdf38}, + {0x96339e33, 0xffffd84dffffdf39}, + {0x96339e34, 0xffffd84dffffdf3a}, + {0x96339e35, 0xffffd84dffffdf3b}, + {0x96339e36, 0xffffd84dffffdf3c}, + {0x96339e37, 0xffffd84dffffdf3d}, + {0x96339e38, 0xffffd84dffffdf3e}, + {0x96339e39, 0xffffd84dffffdf3f}, + {0x96339f30, 0xffffd84dffffdf40}, + {0x96339f31, 0xffffd84dffffdf41}, + {0x96339f32, 0xffffd84dffffdf42}, + {0x96339f33, 0xffffd84dffffdf43}, + {0x96339f34, 0xffffd84dffffdf44}, + {0x96339f35, 0xffffd84dffffdf45}, + {0x96339f36, 0xffffd84dffffdf46}, + {0x96339f37, 0xffffd84dffffdf47}, + {0x96339f38, 0xffffd84dffffdf48}, + {0x96339f39, 0xffffd84dffffdf49}, + {0x9633a030, 0xffffd84dffffdf4a}, + {0x9633a031, 0xffffd84dffffdf4b}, + {0x9633a032, 0xffffd84dffffdf4c}, + {0x9633a033, 0xffffd84dffffdf4d}, + {0x9633a034, 0xffffd84dffffdf4e}, + {0x9633a035, 0xffffd84dffffdf4f}, + {0x9633a036, 0xffffd84dffffdf50}, + {0x9633a037, 0xffffd84dffffdf51}, + {0x9633a038, 0xffffd84dffffdf52}, + {0x9633a039, 0xffffd84dffffdf53}, + {0x9633a130, 0xffffd84dffffdf54}, + {0x9633a131, 0xffffd84dffffdf55}, + {0x9633a132, 0xffffd84dffffdf56}, + {0x9633a133, 0xffffd84dffffdf57}, + {0x9633a134, 0xffffd84dffffdf58}, + {0x9633a135, 0xffffd84dffffdf59}, + {0x9633a136, 0xffffd84dffffdf5a}, + {0x9633a137, 0xffffd84dffffdf5b}, + {0x9633a138, 0xffffd84dffffdf5c}, + {0x9633a139, 0xffffd84dffffdf5d}, + {0x9633a230, 0xffffd84dffffdf5e}, + {0x9633a231, 0xffffd84dffffdf5f}, + {0x9633a232, 0xffffd84dffffdf60}, + {0x9633a233, 0xffffd84dffffdf61}, + {0x9633a234, 0xffffd84dffffdf62}, + {0x9633a235, 0xffffd84dffffdf63}, + {0x9633a236, 0xffffd84dffffdf64}, + {0x9633a237, 0xffffd84dffffdf65}, + {0x9633a238, 0xffffd84dffffdf66}, + {0x9633a239, 0xffffd84dffffdf67}, + {0x9633a330, 0xffffd84dffffdf68}, + {0x9633a331, 0xffffd84dffffdf69}, + {0x9633a332, 0xffffd84dffffdf6a}, + {0x9633a333, 0xffffd84dffffdf6b}, + {0x9633a334, 0xffffd84dffffdf6c}, + {0x9633a335, 0xffffd84dffffdf6d}, + {0x9633a336, 0xffffd84dffffdf6e}, + {0x9633a337, 0xffffd84dffffdf6f}, + {0x9633a338, 0xffffd84dffffdf70}, + {0x9633a339, 0xffffd84dffffdf71}, + {0x9633a430, 0xffffd84dffffdf72}, + {0x9633a431, 0xffffd84dffffdf73}, + {0x9633a432, 0xffffd84dffffdf74}, + {0x9633a433, 0xffffd84dffffdf75}, + {0x9633a434, 0xffffd84dffffdf76}, + {0x9633a435, 0xffffd84dffffdf77}, + {0x9633a436, 0xffffd84dffffdf78}, + {0x9633a437, 0xffffd84dffffdf79}, + {0x9633a438, 0xffffd84dffffdf7a}, + {0x9633a439, 0xffffd84dffffdf7b}, + {0x9633a530, 0xffffd84dffffdf7c}, + {0x9633a531, 0xffffd84dffffdf7d}, + {0x9633a532, 0xffffd84dffffdf7e}, + {0x9633a533, 0xffffd84dffffdf7f}, + {0x9633a534, 0xffffd84dffffdf80}, + {0x9633a535, 0xffffd84dffffdf81}, + {0x9633a536, 0xffffd84dffffdf82}, + {0x9633a537, 0xffffd84dffffdf83}, + {0x9633a538, 0xffffd84dffffdf84}, + {0x9633a539, 0xffffd84dffffdf85}, + {0x9633a630, 0xffffd84dffffdf86}, + {0x9633a631, 0xffffd84dffffdf87}, + {0x9633a632, 0xffffd84dffffdf88}, + {0x9633a633, 0xffffd84dffffdf89}, + {0x9633a634, 0xffffd84dffffdf8a}, + {0x9633a635, 0xffffd84dffffdf8b}, + {0x9633a636, 0xffffd84dffffdf8c}, + {0x9633a637, 0xffffd84dffffdf8d}, + {0x9633a638, 0xffffd84dffffdf8e}, + {0x9633a639, 0xffffd84dffffdf8f}, + {0x9633a730, 0xffffd84dffffdf90}, + {0x9633a731, 0xffffd84dffffdf91}, + {0x9633a732, 0xffffd84dffffdf92}, + {0x9633a733, 0xffffd84dffffdf93}, + {0x9633a734, 0xffffd84dffffdf94}, + {0x9633a735, 0xffffd84dffffdf95}, + {0x9633a736, 0xffffd84dffffdf96}, + {0x9633a737, 0xffffd84dffffdf97}, + {0x9633a738, 0xffffd84dffffdf98}, + {0x9633a739, 0xffffd84dffffdf99}, + {0x9633a830, 0xffffd84dffffdf9a}, + {0x9633a831, 0xffffd84dffffdf9b}, + {0x9633a832, 0xffffd84dffffdf9c}, + {0x9633a833, 0xffffd84dffffdf9d}, + {0x9633a834, 0xffffd84dffffdf9e}, + {0x9633a835, 0xffffd84dffffdf9f}, + {0x9633a836, 0xffffd84dffffdfa0}, + {0x9633a837, 0xffffd84dffffdfa1}, + {0x9633a838, 0xffffd84dffffdfa2}, + {0x9633a839, 0xffffd84dffffdfa3}, + {0x9633a930, 0xffffd84dffffdfa4}, + {0x9633a931, 0xffffd84dffffdfa5}, + {0x9633a932, 0xffffd84dffffdfa6}, + {0x9633a933, 0xffffd84dffffdfa7}, + {0x9633a934, 0xffffd84dffffdfa8}, + {0x9633a935, 0xffffd84dffffdfa9}, + {0x9633a936, 0xffffd84dffffdfaa}, + {0x9633a937, 0xffffd84dffffdfab}, + {0x9633a938, 0xffffd84dffffdfac}, + {0x9633a939, 0xffffd84dffffdfad}, + {0x9633aa30, 0xffffd84dffffdfae}, + {0x9633aa31, 0xffffd84dffffdfaf}, + {0x9633aa32, 0xffffd84dffffdfb0}, + {0x9633aa33, 0xffffd84dffffdfb1}, + {0x9633aa34, 0xffffd84dffffdfb2}, + {0x9633aa35, 0xffffd84dffffdfb3}, + {0x9633aa36, 0xffffd84dffffdfb4}, + {0x9633aa37, 0xffffd84dffffdfb5}, + {0x9633aa38, 0xffffd84dffffdfb6}, + {0x9633aa39, 0xffffd84dffffdfb7}, + {0x9633ab30, 0xffffd84dffffdfb8}, + {0x9633ab31, 0xffffd84dffffdfb9}, + {0x9633ab32, 0xffffd84dffffdfba}, + {0x9633ab33, 0xffffd84dffffdfbb}, + {0x9633ab34, 0xffffd84dffffdfbc}, + {0x9633ab35, 0xffffd84dffffdfbd}, + {0x9633ab36, 0xffffd84dffffdfbe}, + {0x9633ab37, 0xffffd84dffffdfbf}, + {0x9633ab38, 0xffffd84dffffdfc0}, + {0x9633ab39, 0xffffd84dffffdfc1}, + {0x9633ac30, 0xffffd84dffffdfc2}, + {0x9633ac31, 0xffffd84dffffdfc3}, + {0x9633ac32, 0xffffd84dffffdfc4}, + {0x9633ac33, 0xffffd84dffffdfc5}, + {0x9633ac34, 0xffffd84dffffdfc6}, + {0x9633ac35, 0xffffd84dffffdfc7}, + {0x9633ac36, 0xffffd84dffffdfc8}, + {0x9633ac37, 0xffffd84dffffdfc9}, + {0x9633ac38, 0xffffd84dffffdfca}, + {0x9633ac39, 0xffffd84dffffdfcb}, + {0x9633ad30, 0xffffd84dffffdfcc}, + {0x9633ad31, 0xffffd84dffffdfcd}, + {0x9633ad32, 0xffffd84dffffdfce}, + {0x9633ad33, 0xffffd84dffffdfcf}, + {0x9633ad34, 0xffffd84dffffdfd0}, + {0x9633ad35, 0xffffd84dffffdfd1}, + {0x9633ad36, 0xffffd84dffffdfd2}, + {0x9633ad37, 0xffffd84dffffdfd3}, + {0x9633ad38, 0xffffd84dffffdfd4}, + {0x9633ad39, 0xffffd84dffffdfd5}, + {0x9633ae30, 0xffffd84dffffdfd6}, + {0x9633ae31, 0xffffd84dffffdfd7}, + {0x9633ae32, 0xffffd84dffffdfd8}, + {0x9633ae33, 0xffffd84dffffdfd9}, + {0x9633ae34, 0xffffd84dffffdfda}, + {0x9633ae35, 0xffffd84dffffdfdb}, + {0x9633ae36, 0xffffd84dffffdfdc}, + {0x9633ae37, 0xffffd84dffffdfdd}, + {0x9633ae38, 0xffffd84dffffdfde}, + {0x9633ae39, 0xffffd84dffffdfdf}, + {0x9633af30, 0xffffd84dffffdfe0}, + {0x9633af31, 0xffffd84dffffdfe1}, + {0x9633af32, 0xffffd84dffffdfe2}, + {0x9633af33, 0xffffd84dffffdfe3}, + {0x9633af34, 0xffffd84dffffdfe4}, + {0x9633af35, 0xffffd84dffffdfe5}, + {0x9633af36, 0xffffd84dffffdfe6}, + {0x9633af37, 0xffffd84dffffdfe7}, + {0x9633af38, 0xffffd84dffffdfe8}, + {0x9633af39, 0xffffd84dffffdfe9}, + {0x9633b030, 0xffffd84dffffdfea}, + {0x9633b031, 0xffffd84dffffdfeb}, + {0x9633b032, 0xffffd84dffffdfec}, + {0x9633b033, 0xffffd84dffffdfed}, + {0x9633b034, 0xffffd84dffffdfee}, + {0x9633b035, 0xffffd84dffffdfef}, + {0x9633b036, 0xffffd84dffffdff0}, + {0x9633b037, 0xffffd84dffffdff1}, + {0x9633b038, 0xffffd84dffffdff2}, + {0x9633b039, 0xffffd84dffffdff3}, + {0x9633b130, 0xffffd84dffffdff4}, + {0x9633b131, 0xffffd84dffffdff5}, + {0x9633b132, 0xffffd84dffffdff6}, + {0x9633b133, 0xffffd84dffffdff7}, + {0x9633b134, 0xffffd84dffffdff8}, + {0x9633b135, 0xffffd84dffffdff9}, + {0x9633b136, 0xffffd84dffffdffa}, + {0x9633b137, 0xffffd84dffffdffb}, + {0x9633b138, 0xffffd84dffffdffc}, + {0x9633b139, 0xffffd84dffffdffd}, + {0x9633b230, 0xffffd84dffffdffe}, + {0x9633b231, 0xffffd84dffffdfff}, + {0x9633b232, 0xffffd84effffdc00}, + {0x9633b233, 0xffffd84effffdc01}, + {0x9633b234, 0xffffd84effffdc02}, + {0x9633b235, 0xffffd84effffdc03}, + {0x9633b236, 0xffffd84effffdc04}, + {0x9633b237, 0xffffd84effffdc05}, + {0x9633b238, 0xffffd84effffdc06}, + {0x9633b239, 0xffffd84effffdc07}, + {0x9633b330, 0xffffd84effffdc08}, + {0x9633b331, 0xffffd84effffdc09}, + {0x9633b332, 0xffffd84effffdc0a}, + {0x9633b333, 0xffffd84effffdc0b}, + {0x9633b334, 0xffffd84effffdc0c}, + {0x9633b335, 0xffffd84effffdc0d}, + {0x9633b336, 0xffffd84effffdc0e}, + {0x9633b337, 0xffffd84effffdc0f}, + {0x9633b338, 0xffffd84effffdc10}, + {0x9633b339, 0xffffd84effffdc11}, + {0x9633b430, 0xffffd84effffdc12}, + {0x9633b431, 0xffffd84effffdc13}, + {0x9633b432, 0xffffd84effffdc14}, + {0x9633b433, 0xffffd84effffdc15}, + {0x9633b434, 0xffffd84effffdc16}, + {0x9633b435, 0xffffd84effffdc17}, + {0x9633b436, 0xffffd84effffdc18}, + {0x9633b437, 0xffffd84effffdc19}, + {0x9633b438, 0xffffd84effffdc1a}, + {0x9633b439, 0xffffd84effffdc1b}, + {0x9633b530, 0xffffd84effffdc1c}, + {0x9633b531, 0xffffd84effffdc1d}, + {0x9633b532, 0xffffd84effffdc1e}, + {0x9633b533, 0xffffd84effffdc1f}, + {0x9633b534, 0xffffd84effffdc20}, + {0x9633b535, 0xffffd84effffdc21}, + {0x9633b536, 0xffffd84effffdc22}, + {0x9633b537, 0xffffd84effffdc23}, + {0x9633b538, 0xffffd84effffdc24}, + {0x9633b539, 0xffffd84effffdc25}, + {0x9633b630, 0xffffd84effffdc26}, + {0x9633b631, 0xffffd84effffdc27}, + {0x9633b632, 0xffffd84effffdc28}, + {0x9633b633, 0xffffd84effffdc29}, + {0x9633b634, 0xffffd84effffdc2a}, + {0x9633b635, 0xffffd84effffdc2b}, + {0x9633b636, 0xffffd84effffdc2c}, + {0x9633b637, 0xffffd84effffdc2d}, + {0x9633b638, 0xffffd84effffdc2e}, + {0x9633b639, 0xffffd84effffdc2f}, + {0x9633b730, 0xffffd84effffdc30}, + {0x9633b731, 0xffffd84effffdc31}, + {0x9633b732, 0xffffd84effffdc32}, + {0x9633b733, 0xffffd84effffdc33}, + {0x9633b734, 0xffffd84effffdc34}, + {0x9633b735, 0xffffd84effffdc35}, + {0x9633b736, 0xffffd84effffdc36}, + {0x9633b737, 0xffffd84effffdc37}, + {0x9633b738, 0xffffd84effffdc38}, + {0x9633b739, 0xffffd84effffdc39}, + {0x9633b830, 0xffffd84effffdc3a}, + {0x9633b831, 0xffffd84effffdc3b}, + {0x9633b832, 0xffffd84effffdc3c}, + {0x9633b833, 0xffffd84effffdc3d}, + {0x9633b834, 0xffffd84effffdc3e}, + {0x9633b835, 0xffffd84effffdc3f}, + {0x9633b836, 0xffffd84effffdc40}, + {0x9633b837, 0xffffd84effffdc41}, + {0x9633b838, 0xffffd84effffdc42}, + {0x9633b839, 0xffffd84effffdc43}, + {0x9633b930, 0xffffd84effffdc44}, + {0x9633b931, 0xffffd84effffdc45}, + {0x9633b932, 0xffffd84effffdc46}, + {0x9633b933, 0xffffd84effffdc47}, + {0x9633b934, 0xffffd84effffdc48}, + {0x9633b935, 0xffffd84effffdc49}, + {0x9633b936, 0xffffd84effffdc4a}, + {0x9633b937, 0xffffd84effffdc4b}, + {0x9633b938, 0xffffd84effffdc4c}, + {0x9633b939, 0xffffd84effffdc4d}, + {0x9633ba30, 0xffffd84effffdc4e}, + {0x9633ba31, 0xffffd84effffdc4f}, + {0x9633ba32, 0xffffd84effffdc50}, + {0x9633ba33, 0xffffd84effffdc51}, + {0x9633ba34, 0xffffd84effffdc52}, + {0x9633ba35, 0xffffd84effffdc53}, + {0x9633ba36, 0xffffd84effffdc54}, + {0x9633ba37, 0xffffd84effffdc55}, + {0x9633ba38, 0xffffd84effffdc56}, + {0x9633ba39, 0xffffd84effffdc57}, + {0x9633bb30, 0xffffd84effffdc58}, + {0x9633bb31, 0xffffd84effffdc59}, + {0x9633bb32, 0xffffd84effffdc5a}, + {0x9633bb33, 0xffffd84effffdc5b}, + {0x9633bb34, 0xffffd84effffdc5c}, + {0x9633bb35, 0xffffd84effffdc5d}, + {0x9633bb36, 0xffffd84effffdc5e}, + {0x9633bb37, 0xffffd84effffdc5f}, + {0x9633bb38, 0xffffd84effffdc60}, + {0x9633bb39, 0xffffd84effffdc61}, + {0x9633bc30, 0xffffd84effffdc62}, + {0x9633bc31, 0xffffd84effffdc63}, + {0x9633bc32, 0xffffd84effffdc64}, + {0x9633bc33, 0xffffd84effffdc65}, + {0x9633bc34, 0xffffd84effffdc66}, + {0x9633bc35, 0xffffd84effffdc67}, + {0x9633bc36, 0xffffd84effffdc68}, + {0x9633bc37, 0xffffd84effffdc69}, + {0x9633bc38, 0xffffd84effffdc6a}, + {0x9633bc39, 0xffffd84effffdc6b}, + {0x9633bd30, 0xffffd84effffdc6c}, + {0x9633bd31, 0xffffd84effffdc6d}, + {0x9633bd32, 0xffffd84effffdc6e}, + {0x9633bd33, 0xffffd84effffdc6f}, + {0x9633bd34, 0xffffd84effffdc70}, + {0x9633bd35, 0xffffd84effffdc71}, + {0x9633bd36, 0xffffd84effffdc72}, + {0x9633bd37, 0xffffd84effffdc73}, + {0x9633bd38, 0xffffd84effffdc74}, + {0x9633bd39, 0xffffd84effffdc75}, + {0x9633be30, 0xffffd84effffdc76}, + {0x9633be31, 0xffffd84effffdc77}, + {0x9633be32, 0xffffd84effffdc78}, + {0x9633be33, 0xffffd84effffdc79}, + {0x9633be34, 0xffffd84effffdc7a}, + {0x9633be35, 0xffffd84effffdc7b}, + {0x9633be36, 0xffffd84effffdc7c}, + {0x9633be37, 0xffffd84effffdc7d}, + {0x9633be38, 0xffffd84effffdc7e}, + {0x9633be39, 0xffffd84effffdc7f}, + {0x9633bf30, 0xffffd84effffdc80}, + {0x9633bf31, 0xffffd84effffdc81}, + {0x9633bf32, 0xffffd84effffdc82}, + {0x9633bf33, 0xffffd84effffdc83}, + {0x9633bf34, 0xffffd84effffdc84}, + {0x9633bf35, 0xffffd84effffdc85}, + {0x9633bf36, 0xffffd84effffdc86}, + {0x9633bf37, 0xffffd84effffdc87}, + {0x9633bf38, 0xffffd84effffdc88}, + {0x9633bf39, 0xffffd84effffdc89}, + {0x9633c030, 0xffffd84effffdc8a}, + {0x9633c031, 0xffffd84effffdc8b}, + {0x9633c032, 0xffffd84effffdc8c}, + {0x9633c033, 0xffffd84effffdc8d}, + {0x9633c034, 0xffffd84effffdc8e}, + {0x9633c035, 0xffffd84effffdc8f}, + {0x9633c036, 0xffffd84effffdc90}, + {0x9633c037, 0xffffd84effffdc91}, + {0x9633c038, 0xffffd84effffdc92}, + {0x9633c039, 0xffffd84effffdc93}, + {0x9633c130, 0xffffd84effffdc94}, + {0x9633c131, 0xffffd84effffdc95}, + {0x9633c132, 0xffffd84effffdc96}, + {0x9633c133, 0xffffd84effffdc97}, + {0x9633c134, 0xffffd84effffdc98}, + {0x9633c135, 0xffffd84effffdc99}, + {0x9633c136, 0xffffd84effffdc9a}, + {0x9633c137, 0xffffd84effffdc9b}, + {0x9633c138, 0xffffd84effffdc9c}, + {0x9633c139, 0xffffd84effffdc9d}, + {0x9633c230, 0xffffd84effffdc9e}, + {0x9633c231, 0xffffd84effffdc9f}, + {0x9633c232, 0xffffd84effffdca0}, + {0x9633c233, 0xffffd84effffdca1}, + {0x9633c234, 0xffffd84effffdca2}, + {0x9633c235, 0xffffd84effffdca3}, + {0x9633c236, 0xffffd84effffdca4}, + {0x9633c237, 0xffffd84effffdca5}, + {0x9633c238, 0xffffd84effffdca6}, + {0x9633c239, 0xffffd84effffdca7}, + {0x9633c330, 0xffffd84effffdca8}, + {0x9633c331, 0xffffd84effffdca9}, + {0x9633c332, 0xffffd84effffdcaa}, + {0x9633c333, 0xffffd84effffdcab}, + {0x9633c334, 0xffffd84effffdcac}, + {0x9633c335, 0xffffd84effffdcad}, + {0x9633c336, 0xffffd84effffdcae}, + {0x9633c337, 0xffffd84effffdcaf}, + {0x9633c338, 0xffffd84effffdcb0}, + {0x9633c339, 0xffffd84effffdcb1}, + {0x9633c430, 0xffffd84effffdcb2}, + {0x9633c431, 0xffffd84effffdcb3}, + {0x9633c432, 0xffffd84effffdcb4}, + {0x9633c433, 0xffffd84effffdcb5}, + {0x9633c434, 0xffffd84effffdcb6}, + {0x9633c435, 0xffffd84effffdcb7}, + {0x9633c436, 0xffffd84effffdcb8}, + {0x9633c437, 0xffffd84effffdcb9}, + {0x9633c438, 0xffffd84effffdcba}, + {0x9633c439, 0xffffd84effffdcbb}, + {0x9633c530, 0xffffd84effffdcbc}, + {0x9633c531, 0xffffd84effffdcbd}, + {0x9633c532, 0xffffd84effffdcbe}, + {0x9633c533, 0xffffd84effffdcbf}, + {0x9633c534, 0xffffd84effffdcc0}, + {0x9633c535, 0xffffd84effffdcc1}, + {0x9633c536, 0xffffd84effffdcc2}, + {0x9633c537, 0xffffd84effffdcc3}, + {0x9633c538, 0xffffd84effffdcc4}, + {0x9633c539, 0xffffd84effffdcc5}, + {0x9633c630, 0xffffd84effffdcc6}, + {0x9633c631, 0xffffd84effffdcc7}, + {0x9633c632, 0xffffd84effffdcc8}, + {0x9633c633, 0xffffd84effffdcc9}, + {0x9633c634, 0xffffd84effffdcca}, + {0x9633c635, 0xffffd84effffdccb}, + {0x9633c636, 0xffffd84effffdccc}, + {0x9633c637, 0xffffd84effffdccd}, + {0x9633c638, 0xffffd84effffdcce}, + {0x9633c639, 0xffffd84effffdccf}, + {0x9633c730, 0xffffd84effffdcd0}, + {0x9633c731, 0xffffd84effffdcd1}, + {0x9633c732, 0xffffd84effffdcd2}, + {0x9633c733, 0xffffd84effffdcd3}, + {0x9633c734, 0xffffd84effffdcd4}, + {0x9633c735, 0xffffd84effffdcd5}, + {0x9633c736, 0xffffd84effffdcd6}, + {0x9633c737, 0xffffd84effffdcd7}, + {0x9633c738, 0xffffd84effffdcd8}, + {0x9633c739, 0xffffd84effffdcd9}, + {0x9633c830, 0xffffd84effffdcda}, + {0x9633c831, 0xffffd84effffdcdb}, + {0x9633c832, 0xffffd84effffdcdc}, + {0x9633c833, 0xffffd84effffdcdd}, + {0x9633c834, 0xffffd84effffdcde}, + {0x9633c835, 0xffffd84effffdcdf}, + {0x9633c836, 0xffffd84effffdce0}, + {0x9633c837, 0xffffd84effffdce1}, + {0x9633c838, 0xffffd84effffdce2}, + {0x9633c839, 0xffffd84effffdce3}, + {0x9633c930, 0xffffd84effffdce4}, + {0x9633c931, 0xffffd84effffdce5}, + {0x9633c932, 0xffffd84effffdce6}, + {0x9633c933, 0xffffd84effffdce7}, + {0x9633c934, 0xffffd84effffdce8}, + {0x9633c935, 0xffffd84effffdce9}, + {0x9633c936, 0xffffd84effffdcea}, + {0x9633c937, 0xffffd84effffdceb}, + {0x9633c938, 0xffffd84effffdcec}, + {0x9633c939, 0xffffd84effffdced}, + {0x9633ca30, 0xffffd84effffdcee}, + {0x9633ca31, 0xffffd84effffdcef}, + {0x9633ca32, 0xffffd84effffdcf0}, + {0x9633ca33, 0xffffd84effffdcf1}, + {0x9633ca34, 0xffffd84effffdcf2}, + {0x9633ca35, 0xffffd84effffdcf3}, + {0x9633ca36, 0xffffd84effffdcf4}, + {0x9633ca37, 0xffffd84effffdcf5}, + {0x9633ca38, 0xffffd84effffdcf6}, + {0x9633ca39, 0xffffd84effffdcf7}, + {0x9633cb30, 0xffffd84effffdcf8}, + {0x9633cb31, 0xffffd84effffdcf9}, + {0x9633cb32, 0xffffd84effffdcfa}, + {0x9633cb33, 0xffffd84effffdcfb}, + {0x9633cb34, 0xffffd84effffdcfc}, + {0x9633cb35, 0xffffd84effffdcfd}, + {0x9633cb36, 0xffffd84effffdcfe}, + {0x9633cb37, 0xffffd84effffdcff}, + {0x9633cb38, 0xffffd84effffdd00}, + {0x9633cb39, 0xffffd84effffdd01}, + {0x9633cc30, 0xffffd84effffdd02}, + {0x9633cc31, 0xffffd84effffdd03}, + {0x9633cc32, 0xffffd84effffdd04}, + {0x9633cc33, 0xffffd84effffdd05}, + {0x9633cc34, 0xffffd84effffdd06}, + {0x9633cc35, 0xffffd84effffdd07}, + {0x9633cc36, 0xffffd84effffdd08}, + {0x9633cc37, 0xffffd84effffdd09}, + {0x9633cc38, 0xffffd84effffdd0a}, + {0x9633cc39, 0xffffd84effffdd0b}, + {0x9633cd30, 0xffffd84effffdd0c}, + {0x9633cd31, 0xffffd84effffdd0d}, + {0x9633cd32, 0xffffd84effffdd0e}, + {0x9633cd33, 0xffffd84effffdd0f}, + {0x9633cd34, 0xffffd84effffdd10}, + {0x9633cd35, 0xffffd84effffdd11}, + {0x9633cd36, 0xffffd84effffdd12}, + {0x9633cd37, 0xffffd84effffdd13}, + {0x9633cd38, 0xffffd84effffdd14}, + {0x9633cd39, 0xffffd84effffdd15}, + {0x9633ce30, 0xffffd84effffdd16}, + {0x9633ce31, 0xffffd84effffdd17}, + {0x9633ce32, 0xffffd84effffdd18}, + {0x9633ce33, 0xffffd84effffdd19}, + {0x9633ce34, 0xffffd84effffdd1a}, + {0x9633ce35, 0xffffd84effffdd1b}, + {0x9633ce36, 0xffffd84effffdd1c}, + {0x9633ce37, 0xffffd84effffdd1d}, + {0x9633ce38, 0xffffd84effffdd1e}, + {0x9633ce39, 0xffffd84effffdd1f}, + {0x9633cf30, 0xffffd84effffdd20}, + {0x9633cf31, 0xffffd84effffdd21}, + {0x9633cf32, 0xffffd84effffdd22}, + {0x9633cf33, 0xffffd84effffdd23}, + {0x9633cf34, 0xffffd84effffdd24}, + {0x9633cf35, 0xffffd84effffdd25}, + {0x9633cf36, 0xffffd84effffdd26}, + {0x9633cf37, 0xffffd84effffdd27}, + {0x9633cf38, 0xffffd84effffdd28}, + {0x9633cf39, 0xffffd84effffdd29}, + {0x9633d030, 0xffffd84effffdd2a}, + {0x9633d031, 0xffffd84effffdd2b}, + {0x9633d032, 0xffffd84effffdd2c}, + {0x9633d033, 0xffffd84effffdd2d}, + {0x9633d034, 0xffffd84effffdd2e}, + {0x9633d035, 0xffffd84effffdd2f}, + {0x9633d036, 0xffffd84effffdd30}, + {0x9633d037, 0xffffd84effffdd31}, + {0x9633d038, 0xffffd84effffdd32}, + {0x9633d039, 0xffffd84effffdd33}, + {0x9633d130, 0xffffd84effffdd34}, + {0x9633d131, 0xffffd84effffdd35}, + {0x9633d132, 0xffffd84effffdd36}, + {0x9633d133, 0xffffd84effffdd37}, + {0x9633d134, 0xffffd84effffdd38}, + {0x9633d135, 0xffffd84effffdd39}, + {0x9633d136, 0xffffd84effffdd3a}, + {0x9633d137, 0xffffd84effffdd3b}, + {0x9633d138, 0xffffd84effffdd3c}, + {0x9633d139, 0xffffd84effffdd3d}, + {0x9633d230, 0xffffd84effffdd3e}, + {0x9633d231, 0xffffd84effffdd3f}, + {0x9633d232, 0xffffd84effffdd40}, + {0x9633d233, 0xffffd84effffdd41}, + {0x9633d234, 0xffffd84effffdd42}, + {0x9633d235, 0xffffd84effffdd43}, + {0x9633d236, 0xffffd84effffdd44}, + {0x9633d237, 0xffffd84effffdd45}, + {0x9633d238, 0xffffd84effffdd46}, + {0x9633d239, 0xffffd84effffdd47}, + {0x9633d330, 0xffffd84effffdd48}, + {0x9633d331, 0xffffd84effffdd49}, + {0x9633d332, 0xffffd84effffdd4a}, + {0x9633d333, 0xffffd84effffdd4b}, + {0x9633d334, 0xffffd84effffdd4c}, + {0x9633d335, 0xffffd84effffdd4d}, + {0x9633d336, 0xffffd84effffdd4e}, + {0x9633d337, 0xffffd84effffdd4f}, + {0x9633d338, 0xffffd84effffdd50}, + {0x9633d339, 0xffffd84effffdd51}, + {0x9633d430, 0xffffd84effffdd52}, + {0x9633d431, 0xffffd84effffdd53}, + {0x9633d432, 0xffffd84effffdd54}, + {0x9633d433, 0xffffd84effffdd55}, + {0x9633d434, 0xffffd84effffdd56}, + {0x9633d435, 0xffffd84effffdd57}, + {0x9633d436, 0xffffd84effffdd58}, + {0x9633d437, 0xffffd84effffdd59}, + {0x9633d438, 0xffffd84effffdd5a}, + {0x9633d439, 0xffffd84effffdd5b}, + {0x9633d530, 0xffffd84effffdd5c}, + {0x9633d531, 0xffffd84effffdd5d}, + {0x9633d532, 0xffffd84effffdd5e}, + {0x9633d533, 0xffffd84effffdd5f}, + {0x9633d534, 0xffffd84effffdd60}, + {0x9633d535, 0xffffd84effffdd61}, + {0x9633d536, 0xffffd84effffdd62}, + {0x9633d537, 0xffffd84effffdd63}, + {0x9633d538, 0xffffd84effffdd64}, + {0x9633d539, 0xffffd84effffdd65}, + {0x9633d630, 0xffffd84effffdd66}, + {0x9633d631, 0xffffd84effffdd67}, + {0x9633d632, 0xffffd84effffdd68}, + {0x9633d633, 0xffffd84effffdd69}, + {0x9633d634, 0xffffd84effffdd6a}, + {0x9633d635, 0xffffd84effffdd6b}, + {0x9633d636, 0xffffd84effffdd6c}, + {0x9633d637, 0xffffd84effffdd6d}, + {0x9633d638, 0xffffd84effffdd6e}, + {0x9633d639, 0xffffd84effffdd6f}, + {0x9633d730, 0xffffd84effffdd70}, + {0x9633d731, 0xffffd84effffdd71}, + {0x9633d732, 0xffffd84effffdd72}, + {0x9633d733, 0xffffd84effffdd73}, + {0x9633d734, 0xffffd84effffdd74}, + {0x9633d735, 0xffffd84effffdd75}, + {0x9633d736, 0xffffd84effffdd76}, + {0x9633d737, 0xffffd84effffdd77}, + {0x9633d738, 0xffffd84effffdd78}, + {0x9633d739, 0xffffd84effffdd79}, + {0x9633d830, 0xffffd84effffdd7a}, + {0x9633d831, 0xffffd84effffdd7b}, + {0x9633d832, 0xffffd84effffdd7c}, + {0x9633d833, 0xffffd84effffdd7d}, + {0x9633d834, 0xffffd84effffdd7e}, + {0x9633d835, 0xffffd84effffdd7f}, + {0x9633d836, 0xffffd84effffdd80}, + {0x9633d837, 0xffffd84effffdd81}, + {0x9633d838, 0xffffd84effffdd82}, + {0x9633d839, 0xffffd84effffdd83}, + {0x9633d930, 0xffffd84effffdd84}, + {0x9633d931, 0xffffd84effffdd85}, + {0x9633d932, 0xffffd84effffdd86}, + {0x9633d933, 0xffffd84effffdd87}, + {0x9633d934, 0xffffd84effffdd88}, + {0x9633d935, 0xffffd84effffdd89}, + {0x9633d936, 0xffffd84effffdd8a}, + {0x9633d937, 0xffffd84effffdd8b}, + {0x9633d938, 0xffffd84effffdd8c}, + {0x9633d939, 0xffffd84effffdd8d}, + {0x9633da30, 0xffffd84effffdd8e}, + {0x9633da31, 0xffffd84effffdd8f}, + {0x9633da32, 0xffffd84effffdd90}, + {0x9633da33, 0xffffd84effffdd91}, + {0x9633da34, 0xffffd84effffdd92}, + {0x9633da35, 0xffffd84effffdd93}, + {0x9633da36, 0xffffd84effffdd94}, + {0x9633da37, 0xffffd84effffdd95}, + {0x9633da38, 0xffffd84effffdd96}, + {0x9633da39, 0xffffd84effffdd97}, + {0x9633db30, 0xffffd84effffdd98}, + {0x9633db31, 0xffffd84effffdd99}, + {0x9633db32, 0xffffd84effffdd9a}, + {0x9633db33, 0xffffd84effffdd9b}, + {0x9633db34, 0xffffd84effffdd9c}, + {0x9633db35, 0xffffd84effffdd9d}, + {0x9633db36, 0xffffd84effffdd9e}, + {0x9633db37, 0xffffd84effffdd9f}, + {0x9633db38, 0xffffd84effffdda0}, + {0x9633db39, 0xffffd84effffdda1}, + {0x9633dc30, 0xffffd84effffdda2}, + {0x9633dc31, 0xffffd84effffdda3}, + {0x9633dc32, 0xffffd84effffdda4}, + {0x9633dc33, 0xffffd84effffdda5}, + {0x9633dc34, 0xffffd84effffdda6}, + {0x9633dc35, 0xffffd84effffdda7}, + {0x9633dc36, 0xffffd84effffdda8}, + {0x9633dc37, 0xffffd84effffdda9}, + {0x9633dc38, 0xffffd84effffddaa}, + {0x9633dc39, 0xffffd84effffddab}, + {0x9633dd30, 0xffffd84effffddac}, + {0x9633dd31, 0xffffd84effffddad}, + {0x9633dd32, 0xffffd84effffddae}, + {0x9633dd33, 0xffffd84effffddaf}, + {0x9633dd34, 0xffffd84effffddb0}, + {0x9633dd35, 0xffffd84effffddb1}, + {0x9633dd36, 0xffffd84effffddb2}, + {0x9633dd37, 0xffffd84effffddb3}, + {0x9633dd38, 0xffffd84effffddb4}, + {0x9633dd39, 0xffffd84effffddb5}, + {0x9633de30, 0xffffd84effffddb6}, + {0x9633de31, 0xffffd84effffddb7}, + {0x9633de32, 0xffffd84effffddb8}, + {0x9633de33, 0xffffd84effffddb9}, + {0x9633de34, 0xffffd84effffddba}, + {0x9633de35, 0xffffd84effffddbb}, + {0x9633de36, 0xffffd84effffddbc}, + {0x9633de37, 0xffffd84effffddbd}, + {0x9633de38, 0xffffd84effffddbe}, + {0x9633de39, 0xffffd84effffddbf}, + {0x9633df30, 0xffffd84effffddc0}, + {0x9633df31, 0xffffd84effffddc1}, + {0x9633df32, 0xffffd84effffddc2}, + {0x9633df33, 0xffffd84effffddc3}, + {0x9633df34, 0xffffd84effffddc4}, + {0x9633df35, 0xffffd84effffddc5}, + {0x9633df36, 0xffffd84effffddc6}, + {0x9633df37, 0xffffd84effffddc7}, + {0x9633df38, 0xffffd84effffddc8}, + {0x9633df39, 0xffffd84effffddc9}, + {0x9633e030, 0xffffd84effffddca}, + {0x9633e031, 0xffffd84effffddcb}, + {0x9633e032, 0xffffd84effffddcc}, + {0x9633e033, 0xffffd84effffddcd}, + {0x9633e034, 0xffffd84effffddce}, + {0x9633e035, 0xffffd84effffddcf}, + {0x9633e036, 0xffffd84effffddd0}, + {0x9633e037, 0xffffd84effffddd1}, + {0x9633e038, 0xffffd84effffddd2}, + {0x9633e039, 0xffffd84effffddd3}, + {0x9633e130, 0xffffd84effffddd4}, + {0x9633e131, 0xffffd84effffddd5}, + {0x9633e132, 0xffffd84effffddd6}, + {0x9633e133, 0xffffd84effffddd7}, + {0x9633e134, 0xffffd84effffddd8}, + {0x9633e135, 0xffffd84effffddd9}, + {0x9633e136, 0xffffd84effffddda}, + {0x9633e137, 0xffffd84effffdddb}, + {0x9633e138, 0xffffd84effffdddc}, + {0x9633e139, 0xffffd84effffdddd}, + {0x9633e230, 0xffffd84effffddde}, + {0x9633e231, 0xffffd84effffdddf}, + {0x9633e232, 0xffffd84effffdde0}, + {0x9633e233, 0xffffd84effffdde1}, + {0x9633e234, 0xffffd84effffdde2}, + {0x9633e235, 0xffffd84effffdde3}, + {0x9633e236, 0xffffd84effffdde4}, + {0x9633e237, 0xffffd84effffdde5}, + {0x9633e238, 0xffffd84effffdde6}, + {0x9633e239, 0xffffd84effffdde7}, + {0x9633e330, 0xffffd84effffdde8}, + {0x9633e331, 0xffffd84effffdde9}, + {0x9633e332, 0xffffd84effffddea}, + {0x9633e333, 0xffffd84effffddeb}, + {0x9633e334, 0xffffd84effffddec}, + {0x9633e335, 0xffffd84effffdded}, + {0x9633e336, 0xffffd84effffddee}, + {0x9633e337, 0xffffd84effffddef}, + {0x9633e338, 0xffffd84effffddf0}, + {0x9633e339, 0xffffd84effffddf1}, + {0x9633e430, 0xffffd84effffddf2}, + {0x9633e431, 0xffffd84effffddf3}, + {0x9633e432, 0xffffd84effffddf4}, + {0x9633e433, 0xffffd84effffddf5}, + {0x9633e434, 0xffffd84effffddf6}, + {0x9633e435, 0xffffd84effffddf7}, + {0x9633e436, 0xffffd84effffddf8}, + {0x9633e437, 0xffffd84effffddf9}, + {0x9633e438, 0xffffd84effffddfa}, + {0x9633e439, 0xffffd84effffddfb}, + {0x9633e530, 0xffffd84effffddfc}, + {0x9633e531, 0xffffd84effffddfd}, + {0x9633e532, 0xffffd84effffddfe}, + {0x9633e533, 0xffffd84effffddff}, + {0x9633e534, 0xffffd84effffde00}, + {0x9633e535, 0xffffd84effffde01}, + {0x9633e536, 0xffffd84effffde02}, + {0x9633e537, 0xffffd84effffde03}, + {0x9633e538, 0xffffd84effffde04}, + {0x9633e539, 0xffffd84effffde05}, + {0x9633e630, 0xffffd84effffde06}, + {0x9633e631, 0xffffd84effffde07}, + {0x9633e632, 0xffffd84effffde08}, + {0x9633e633, 0xffffd84effffde09}, + {0x9633e634, 0xffffd84effffde0a}, + {0x9633e635, 0xffffd84effffde0b}, + {0x9633e636, 0xffffd84effffde0c}, + {0x9633e637, 0xffffd84effffde0d}, + {0x9633e638, 0xffffd84effffde0e}, + {0x9633e639, 0xffffd84effffde0f}, + {0x9633e730, 0xffffd84effffde10}, + {0x9633e731, 0xffffd84effffde11}, + {0x9633e732, 0xffffd84effffde12}, + {0x9633e733, 0xffffd84effffde13}, + {0x9633e734, 0xffffd84effffde14}, + {0x9633e735, 0xffffd84effffde15}, + {0x9633e736, 0xffffd84effffde16}, + {0x9633e737, 0xffffd84effffde17}, + {0x9633e738, 0xffffd84effffde18}, + {0x9633e739, 0xffffd84effffde19}, + {0x9633e830, 0xffffd84effffde1a}, + {0x9633e831, 0xffffd84effffde1b}, + {0x9633e832, 0xffffd84effffde1c}, + {0x9633e833, 0xffffd84effffde1d}, + {0x9633e834, 0xffffd84effffde1e}, + {0x9633e835, 0xffffd84effffde1f}, + {0x9633e836, 0xffffd84effffde20}, + {0x9633e837, 0xffffd84effffde21}, + {0x9633e838, 0xffffd84effffde22}, + {0x9633e839, 0xffffd84effffde23}, + {0x9633e930, 0xffffd84effffde24}, + {0x9633e931, 0xffffd84effffde25}, + {0x9633e932, 0xffffd84effffde26}, + {0x9633e933, 0xffffd84effffde27}, + {0x9633e934, 0xffffd84effffde28}, + {0x9633e935, 0xffffd84effffde29}, + {0x9633e936, 0xffffd84effffde2a}, + {0x9633e937, 0xffffd84effffde2b}, + {0x9633e938, 0xffffd84effffde2c}, + {0x9633e939, 0xffffd84effffde2d}, + {0x9633ea30, 0xffffd84effffde2e}, + {0x9633ea31, 0xffffd84effffde2f}, + {0x9633ea32, 0xffffd84effffde30}, + {0x9633ea33, 0xffffd84effffde31}, + {0x9633ea34, 0xffffd84effffde32}, + {0x9633ea35, 0xffffd84effffde33}, + {0x9633ea36, 0xffffd84effffde34}, + {0x9633ea37, 0xffffd84effffde35}, + {0x9633ea38, 0xffffd84effffde36}, + {0x9633ea39, 0xffffd84effffde37}, + {0x9633eb30, 0xffffd84effffde38}, + {0x9633eb31, 0xffffd84effffde39}, + {0x9633eb32, 0xffffd84effffde3a}, + {0x9633eb33, 0xffffd84effffde3b}, + {0x9633eb34, 0xffffd84effffde3c}, + {0x9633eb35, 0xffffd84effffde3d}, + {0x9633eb36, 0xffffd84effffde3e}, + {0x9633eb37, 0xffffd84effffde3f}, + {0x9633eb38, 0xffffd84effffde40}, + {0x9633eb39, 0xffffd84effffde41}, + {0x9633ec30, 0xffffd84effffde42}, + {0x9633ec31, 0xffffd84effffde43}, + {0x9633ec32, 0xffffd84effffde44}, + {0x9633ec33, 0xffffd84effffde45}, + {0x9633ec34, 0xffffd84effffde46}, + {0x9633ec35, 0xffffd84effffde47}, + {0x9633ec36, 0xffffd84effffde48}, + {0x9633ec37, 0xffffd84effffde49}, + {0x9633ec38, 0xffffd84effffde4a}, + {0x9633ec39, 0xffffd84effffde4b}, + {0x9633ed30, 0xffffd84effffde4c}, + {0x9633ed31, 0xffffd84effffde4d}, + {0x9633ed32, 0xffffd84effffde4e}, + {0x9633ed33, 0xffffd84effffde4f}, + {0x9633ed34, 0xffffd84effffde50}, + {0x9633ed35, 0xffffd84effffde51}, + {0x9633ed36, 0xffffd84effffde52}, + {0x9633ed37, 0xffffd84effffde53}, + {0x9633ed38, 0xffffd84effffde54}, + {0x9633ed39, 0xffffd84effffde55}, + {0x9633ee30, 0xffffd84effffde56}, + {0x9633ee31, 0xffffd84effffde57}, + {0x9633ee32, 0xffffd84effffde58}, + {0x9633ee33, 0xffffd84effffde59}, + {0x9633ee34, 0xffffd84effffde5a}, + {0x9633ee35, 0xffffd84effffde5b}, + {0x9633ee36, 0xffffd84effffde5c}, + {0x9633ee37, 0xffffd84effffde5d}, + {0x9633ee38, 0xffffd84effffde5e}, + {0x9633ee39, 0xffffd84effffde5f}, + {0x9633ef30, 0xffffd84effffde60}, + {0x9633ef31, 0xffffd84effffde61}, + {0x9633ef32, 0xffffd84effffde62}, + {0x9633ef33, 0xffffd84effffde63}, + {0x9633ef34, 0xffffd84effffde64}, + {0x9633ef35, 0xffffd84effffde65}, + {0x9633ef36, 0xffffd84effffde66}, + {0x9633ef37, 0xffffd84effffde67}, + {0x9633ef38, 0xffffd84effffde68}, + {0x9633ef39, 0xffffd84effffde69}, + {0x9633f030, 0xffffd84effffde6a}, + {0x9633f031, 0xffffd84effffde6b}, + {0x9633f032, 0xffffd84effffde6c}, + {0x9633f033, 0xffffd84effffde6d}, + {0x9633f034, 0xffffd84effffde6e}, + {0x9633f035, 0xffffd84effffde6f}, + {0x9633f036, 0xffffd84effffde70}, + {0x9633f037, 0xffffd84effffde71}, + {0x9633f038, 0xffffd84effffde72}, + {0x9633f039, 0xffffd84effffde73}, + {0x9633f130, 0xffffd84effffde74}, + {0x9633f131, 0xffffd84effffde75}, + {0x9633f132, 0xffffd84effffde76}, + {0x9633f133, 0xffffd84effffde77}, + {0x9633f134, 0xffffd84effffde78}, + {0x9633f135, 0xffffd84effffde79}, + {0x9633f136, 0xffffd84effffde7a}, + {0x9633f137, 0xffffd84effffde7b}, + {0x9633f138, 0xffffd84effffde7c}, + {0x9633f139, 0xffffd84effffde7d}, + {0x9633f230, 0xffffd84effffde7e}, + {0x9633f231, 0xffffd84effffde7f}, + {0x9633f232, 0xffffd84effffde80}, + {0x9633f233, 0xffffd84effffde81}, + {0x9633f234, 0xffffd84effffde82}, + {0x9633f235, 0xffffd84effffde83}, + {0x9633f236, 0xffffd84effffde84}, + {0x9633f237, 0xffffd84effffde85}, + {0x9633f238, 0xffffd84effffde86}, + {0x9633f239, 0xffffd84effffde87}, + {0x9633f330, 0xffffd84effffde88}, + {0x9633f331, 0xffffd84effffde89}, + {0x9633f332, 0xffffd84effffde8a}, + {0x9633f333, 0xffffd84effffde8b}, + {0x9633f334, 0xffffd84effffde8c}, + {0x9633f335, 0xffffd84effffde8d}, + {0x9633f336, 0xffffd84effffde8e}, + {0x9633f337, 0xffffd84effffde8f}, + {0x9633f338, 0xffffd84effffde90}, + {0x9633f339, 0xffffd84effffde91}, + {0x9633f430, 0xffffd84effffde92}, + {0x9633f431, 0xffffd84effffde93}, + {0x9633f432, 0xffffd84effffde94}, + {0x9633f433, 0xffffd84effffde95}, + {0x9633f434, 0xffffd84effffde96}, + {0x9633f435, 0xffffd84effffde97}, + {0x9633f436, 0xffffd84effffde98}, + {0x9633f437, 0xffffd84effffde99}, + {0x9633f438, 0xffffd84effffde9a}, + {0x9633f439, 0xffffd84effffde9b}, + {0x9633f530, 0xffffd84effffde9c}, + {0x9633f531, 0xffffd84effffde9d}, + {0x9633f532, 0xffffd84effffde9e}, + {0x9633f533, 0xffffd84effffde9f}, + {0x9633f534, 0xffffd84effffdea0}, + {0x9633f535, 0xffffd84effffdea1}, + {0x9633f536, 0xffffd84effffdea2}, + {0x9633f537, 0xffffd84effffdea3}, + {0x9633f538, 0xffffd84effffdea4}, + {0x9633f539, 0xffffd84effffdea5}, + {0x9633f630, 0xffffd84effffdea6}, + {0x9633f631, 0xffffd84effffdea7}, + {0x9633f632, 0xffffd84effffdea8}, + {0x9633f633, 0xffffd84effffdea9}, + {0x9633f634, 0xffffd84effffdeaa}, + {0x9633f635, 0xffffd84effffdeab}, + {0x9633f636, 0xffffd84effffdeac}, + {0x9633f637, 0xffffd84effffdead}, + {0x9633f638, 0xffffd84effffdeae}, + {0x9633f639, 0xffffd84effffdeaf}, + {0x9633f730, 0xffffd84effffdeb0}, + {0x9633f731, 0xffffd84effffdeb1}, + {0x9633f732, 0xffffd84effffdeb2}, + {0x9633f733, 0xffffd84effffdeb3}, + {0x9633f734, 0xffffd84effffdeb4}, + {0x9633f735, 0xffffd84effffdeb5}, + {0x9633f736, 0xffffd84effffdeb6}, + {0x9633f737, 0xffffd84effffdeb7}, + {0x9633f738, 0xffffd84effffdeb8}, + {0x9633f739, 0xffffd84effffdeb9}, + {0x9633f830, 0xffffd84effffdeba}, + {0x9633f831, 0xffffd84effffdebb}, + {0x9633f832, 0xffffd84effffdebc}, + {0x9633f833, 0xffffd84effffdebd}, + {0x9633f834, 0xffffd84effffdebe}, + {0x9633f835, 0xffffd84effffdebf}, + {0x9633f836, 0xffffd84effffdec0}, + {0x9633f837, 0xffffd84effffdec1}, + {0x9633f838, 0xffffd84effffdec2}, + {0x9633f839, 0xffffd84effffdec3}, + {0x9633f930, 0xffffd84effffdec4}, + {0x9633f931, 0xffffd84effffdec5}, + {0x9633f932, 0xffffd84effffdec6}, + {0x9633f933, 0xffffd84effffdec7}, + {0x9633f934, 0xffffd84effffdec8}, + {0x9633f935, 0xffffd84effffdec9}, + {0x9633f936, 0xffffd84effffdeca}, + {0x9633f937, 0xffffd84effffdecb}, + {0x9633f938, 0xffffd84effffdecc}, + {0x9633f939, 0xffffd84effffdecd}, + {0x9633fa30, 0xffffd84effffdece}, + {0x9633fa31, 0xffffd84effffdecf}, + {0x9633fa32, 0xffffd84effffded0}, + {0x9633fa33, 0xffffd84effffded1}, + {0x9633fa34, 0xffffd84effffded2}, + {0x9633fa35, 0xffffd84effffded3}, + {0x9633fa36, 0xffffd84effffded4}, + {0x9633fa37, 0xffffd84effffded5}, + {0x9633fa38, 0xffffd84effffded6}, + {0x9633fa39, 0xffffd84effffded7}, + {0x9633fb30, 0xffffd84effffded8}, + {0x9633fb31, 0xffffd84effffded9}, + {0x9633fb32, 0xffffd84effffdeda}, + {0x9633fb33, 0xffffd84effffdedb}, + {0x9633fb34, 0xffffd84effffdedc}, + {0x9633fb35, 0xffffd84effffdedd}, + {0x9633fb36, 0xffffd84effffdede}, + {0x9633fb37, 0xffffd84effffdedf}, + {0x9633fb38, 0xffffd84effffdee0}, + {0x9633fb39, 0xffffd84effffdee1}, + {0x9633fc30, 0xffffd84effffdee2}, + {0x9633fc31, 0xffffd84effffdee3}, + {0x9633fc32, 0xffffd84effffdee4}, + {0x9633fc33, 0xffffd84effffdee5}, + {0x9633fc34, 0xffffd84effffdee6}, + {0x9633fc35, 0xffffd84effffdee7}, + {0x9633fc36, 0xffffd84effffdee8}, + {0x9633fc37, 0xffffd84effffdee9}, + {0x9633fc38, 0xffffd84effffdeea}, + {0x9633fc39, 0xffffd84effffdeeb}, + {0x9633fd30, 0xffffd84effffdeec}, + {0x9633fd31, 0xffffd84effffdeed}, + {0x9633fd32, 0xffffd84effffdeee}, + {0x9633fd33, 0xffffd84effffdeef}, + {0x9633fd34, 0xffffd84effffdef0}, + {0x9633fd35, 0xffffd84effffdef1}, + {0x9633fd36, 0xffffd84effffdef2}, + {0x9633fd37, 0xffffd84effffdef3}, + {0x9633fd38, 0xffffd84effffdef4}, + {0x9633fd39, 0xffffd84effffdef5}, + {0x9633fe30, 0xffffd84effffdef6}, + {0x9633fe31, 0xffffd84effffdef7}, + {0x9633fe32, 0xffffd84effffdef8}, + {0x9633fe33, 0xffffd84effffdef9}, + {0x9633fe34, 0xffffd84effffdefa}, + {0x9633fe35, 0xffffd84effffdefb}, + {0x9633fe36, 0xffffd84effffdefc}, + {0x9633fe37, 0xffffd84effffdefd}, + {0x9633fe38, 0xffffd84effffdefe}, + {0x9633fe39, 0xffffd84effffdeff}, + {0x96348130, 0xffffd84effffdf00}, + {0x96348131, 0xffffd84effffdf01}, + {0x96348132, 0xffffd84effffdf02}, + {0x96348133, 0xffffd84effffdf03}, + {0x96348134, 0xffffd84effffdf04}, + {0x96348135, 0xffffd84effffdf05}, + {0x96348136, 0xffffd84effffdf06}, + {0x96348137, 0xffffd84effffdf07}, + {0x96348138, 0xffffd84effffdf08}, + {0x96348139, 0xffffd84effffdf09}, + {0x96348230, 0xffffd84effffdf0a}, + {0x96348231, 0xffffd84effffdf0b}, + {0x96348232, 0xffffd84effffdf0c}, + {0x96348233, 0xffffd84effffdf0d}, + {0x96348234, 0xffffd84effffdf0e}, + {0x96348235, 0xffffd84effffdf0f}, + {0x96348236, 0xffffd84effffdf10}, + {0x96348237, 0xffffd84effffdf11}, + {0x96348238, 0xffffd84effffdf12}, + {0x96348239, 0xffffd84effffdf13}, + {0x96348330, 0xffffd84effffdf14}, + {0x96348331, 0xffffd84effffdf15}, + {0x96348332, 0xffffd84effffdf16}, + {0x96348333, 0xffffd84effffdf17}, + {0x96348334, 0xffffd84effffdf18}, + {0x96348335, 0xffffd84effffdf19}, + {0x96348336, 0xffffd84effffdf1a}, + {0x96348337, 0xffffd84effffdf1b}, + {0x96348338, 0xffffd84effffdf1c}, + {0x96348339, 0xffffd84effffdf1d}, + {0x96348430, 0xffffd84effffdf1e}, + {0x96348431, 0xffffd84effffdf1f}, + {0x96348432, 0xffffd84effffdf20}, + {0x96348433, 0xffffd84effffdf21}, + {0x96348434, 0xffffd84effffdf22}, + {0x96348435, 0xffffd84effffdf23}, + {0x96348436, 0xffffd84effffdf24}, + {0x96348437, 0xffffd84effffdf25}, + {0x96348438, 0xffffd84effffdf26}, + {0x96348439, 0xffffd84effffdf27}, + {0x96348530, 0xffffd84effffdf28}, + {0x96348531, 0xffffd84effffdf29}, + {0x96348532, 0xffffd84effffdf2a}, + {0x96348533, 0xffffd84effffdf2b}, + {0x96348534, 0xffffd84effffdf2c}, + {0x96348535, 0xffffd84effffdf2d}, + {0x96348536, 0xffffd84effffdf2e}, + {0x96348537, 0xffffd84effffdf2f}, + {0x96348538, 0xffffd84effffdf30}, + {0x96348539, 0xffffd84effffdf31}, + {0x96348630, 0xffffd84effffdf32}, + {0x96348631, 0xffffd84effffdf33}, + {0x96348632, 0xffffd84effffdf34}, + {0x96348633, 0xffffd84effffdf35}, + {0x96348634, 0xffffd84effffdf36}, + {0x96348635, 0xffffd84effffdf37}, + {0x96348636, 0xffffd84effffdf38}, + {0x96348637, 0xffffd84effffdf39}, + {0x96348638, 0xffffd84effffdf3a}, + {0x96348639, 0xffffd84effffdf3b}, + {0x96348730, 0xffffd84effffdf3c}, + {0x96348731, 0xffffd84effffdf3d}, + {0x96348732, 0xffffd84effffdf3e}, + {0x96348733, 0xffffd84effffdf3f}, + {0x96348734, 0xffffd84effffdf40}, + {0x96348735, 0xffffd84effffdf41}, + {0x96348736, 0xffffd84effffdf42}, + {0x96348737, 0xffffd84effffdf43}, + {0x96348738, 0xffffd84effffdf44}, + {0x96348739, 0xffffd84effffdf45}, + {0x96348830, 0xffffd84effffdf46}, + {0x96348831, 0xffffd84effffdf47}, + {0x96348832, 0xffffd84effffdf48}, + {0x96348833, 0xffffd84effffdf49}, + {0x96348834, 0xffffd84effffdf4a}, + {0x96348835, 0xffffd84effffdf4b}, + {0x96348836, 0xffffd84effffdf4c}, + {0x96348837, 0xffffd84effffdf4d}, + {0x96348838, 0xffffd84effffdf4e}, + {0x96348839, 0xffffd84effffdf4f}, + {0x96348930, 0xffffd84effffdf50}, + {0x96348931, 0xffffd84effffdf51}, + {0x96348932, 0xffffd84effffdf52}, + {0x96348933, 0xffffd84effffdf53}, + {0x96348934, 0xffffd84effffdf54}, + {0x96348935, 0xffffd84effffdf55}, + {0x96348936, 0xffffd84effffdf56}, + {0x96348937, 0xffffd84effffdf57}, + {0x96348938, 0xffffd84effffdf58}, + {0x96348939, 0xffffd84effffdf59}, + {0x96348a30, 0xffffd84effffdf5a}, + {0x96348a31, 0xffffd84effffdf5b}, + {0x96348a32, 0xffffd84effffdf5c}, + {0x96348a33, 0xffffd84effffdf5d}, + {0x96348a34, 0xffffd84effffdf5e}, + {0x96348a35, 0xffffd84effffdf5f}, + {0x96348a36, 0xffffd84effffdf60}, + {0x96348a37, 0xffffd84effffdf61}, + {0x96348a38, 0xffffd84effffdf62}, + {0x96348a39, 0xffffd84effffdf63}, + {0x96348b30, 0xffffd84effffdf64}, + {0x96348b31, 0xffffd84effffdf65}, + {0x96348b32, 0xffffd84effffdf66}, + {0x96348b33, 0xffffd84effffdf67}, + {0x96348b34, 0xffffd84effffdf68}, + {0x96348b35, 0xffffd84effffdf69}, + {0x96348b36, 0xffffd84effffdf6a}, + {0x96348b37, 0xffffd84effffdf6b}, + {0x96348b38, 0xffffd84effffdf6c}, + {0x96348b39, 0xffffd84effffdf6d}, + {0x96348c30, 0xffffd84effffdf6e}, + {0x96348c31, 0xffffd84effffdf6f}, + {0x96348c32, 0xffffd84effffdf70}, + {0x96348c33, 0xffffd84effffdf71}, + {0x96348c34, 0xffffd84effffdf72}, + {0x96348c35, 0xffffd84effffdf73}, + {0x96348c36, 0xffffd84effffdf74}, + {0x96348c37, 0xffffd84effffdf75}, + {0x96348c38, 0xffffd84effffdf76}, + {0x96348c39, 0xffffd84effffdf77}, + {0x96348d30, 0xffffd84effffdf78}, + {0x96348d31, 0xffffd84effffdf79}, + {0x96348d32, 0xffffd84effffdf7a}, + {0x96348d33, 0xffffd84effffdf7b}, + {0x96348d34, 0xffffd84effffdf7c}, + {0x96348d35, 0xffffd84effffdf7d}, + {0x96348d36, 0xffffd84effffdf7e}, + {0x96348d37, 0xffffd84effffdf7f}, + {0x96348d38, 0xffffd84effffdf80}, + {0x96348d39, 0xffffd84effffdf81}, + {0x96348e30, 0xffffd84effffdf82}, + {0x96348e31, 0xffffd84effffdf83}, + {0x96348e32, 0xffffd84effffdf84}, + {0x96348e33, 0xffffd84effffdf85}, + {0x96348e34, 0xffffd84effffdf86}, + {0x96348e35, 0xffffd84effffdf87}, + {0x96348e36, 0xffffd84effffdf88}, + {0x96348e37, 0xffffd84effffdf89}, + {0x96348e38, 0xffffd84effffdf8a}, + {0x96348e39, 0xffffd84effffdf8b}, + {0x96348f30, 0xffffd84effffdf8c}, + {0x96348f31, 0xffffd84effffdf8d}, + {0x96348f32, 0xffffd84effffdf8e}, + {0x96348f33, 0xffffd84effffdf8f}, + {0x96348f34, 0xffffd84effffdf90}, + {0x96348f35, 0xffffd84effffdf91}, + {0x96348f36, 0xffffd84effffdf92}, + {0x96348f37, 0xffffd84effffdf93}, + {0x96348f38, 0xffffd84effffdf94}, + {0x96348f39, 0xffffd84effffdf95}, + {0x96349030, 0xffffd84effffdf96}, + {0x96349031, 0xffffd84effffdf97}, + {0x96349032, 0xffffd84effffdf98}, + {0x96349033, 0xffffd84effffdf99}, + {0x96349034, 0xffffd84effffdf9a}, + {0x96349035, 0xffffd84effffdf9b}, + {0x96349036, 0xffffd84effffdf9c}, + {0x96349037, 0xffffd84effffdf9d}, + {0x96349038, 0xffffd84effffdf9e}, + {0x96349039, 0xffffd84effffdf9f}, + {0x96349130, 0xffffd84effffdfa0}, + {0x96349131, 0xffffd84effffdfa1}, + {0x96349132, 0xffffd84effffdfa2}, + {0x96349133, 0xffffd84effffdfa3}, + {0x96349134, 0xffffd84effffdfa4}, + {0x96349135, 0xffffd84effffdfa5}, + {0x96349136, 0xffffd84effffdfa6}, + {0x96349137, 0xffffd84effffdfa7}, + {0x96349138, 0xffffd84effffdfa8}, + {0x96349139, 0xffffd84effffdfa9}, + {0x96349230, 0xffffd84effffdfaa}, + {0x96349231, 0xffffd84effffdfab}, + {0x96349232, 0xffffd84effffdfac}, + {0x96349233, 0xffffd84effffdfad}, + {0x96349234, 0xffffd84effffdfae}, + {0x96349235, 0xffffd84effffdfaf}, + {0x96349236, 0xffffd84effffdfb0}, + {0x96349237, 0xffffd84effffdfb1}, + {0x96349238, 0xffffd84effffdfb2}, + {0x96349239, 0xffffd84effffdfb3}, + {0x96349330, 0xffffd84effffdfb4}, + {0x96349331, 0xffffd84effffdfb5}, + {0x96349332, 0xffffd84effffdfb6}, + {0x96349333, 0xffffd84effffdfb7}, + {0x96349334, 0xffffd84effffdfb8}, + {0x96349335, 0xffffd84effffdfb9}, + {0x96349336, 0xffffd84effffdfba}, + {0x96349337, 0xffffd84effffdfbb}, + {0x96349338, 0xffffd84effffdfbc}, + {0x96349339, 0xffffd84effffdfbd}, + {0x96349430, 0xffffd84effffdfbe}, + {0x96349431, 0xffffd84effffdfbf}, + {0x96349432, 0xffffd84effffdfc0}, + {0x96349433, 0xffffd84effffdfc1}, + {0x96349434, 0xffffd84effffdfc2}, + {0x96349435, 0xffffd84effffdfc3}, + {0x96349436, 0xffffd84effffdfc4}, + {0x96349437, 0xffffd84effffdfc5}, + {0x96349438, 0xffffd84effffdfc6}, + {0x96349439, 0xffffd84effffdfc7}, + {0x96349530, 0xffffd84effffdfc8}, + {0x96349531, 0xffffd84effffdfc9}, + {0x96349532, 0xffffd84effffdfca}, + {0x96349533, 0xffffd84effffdfcb}, + {0x96349534, 0xffffd84effffdfcc}, + {0x96349535, 0xffffd84effffdfcd}, + {0x96349536, 0xffffd84effffdfce}, + {0x96349537, 0xffffd84effffdfcf}, + {0x96349538, 0xffffd84effffdfd0}, + {0x96349539, 0xffffd84effffdfd1}, + {0x96349630, 0xffffd84effffdfd2}, + {0x96349631, 0xffffd84effffdfd3}, + {0x96349632, 0xffffd84effffdfd4}, + {0x96349633, 0xffffd84effffdfd5}, + {0x96349634, 0xffffd84effffdfd6}, + {0x96349635, 0xffffd84effffdfd7}, + {0x96349636, 0xffffd84effffdfd8}, + {0x96349637, 0xffffd84effffdfd9}, + {0x96349638, 0xffffd84effffdfda}, + {0x96349639, 0xffffd84effffdfdb}, + {0x96349730, 0xffffd84effffdfdc}, + {0x96349731, 0xffffd84effffdfdd}, + {0x96349732, 0xffffd84effffdfde}, + {0x96349733, 0xffffd84effffdfdf}, + {0x96349734, 0xffffd84effffdfe0}, + {0x96349735, 0xffffd84effffdfe1}, + {0x96349736, 0xffffd84effffdfe2}, + {0x96349737, 0xffffd84effffdfe3}, + {0x96349738, 0xffffd84effffdfe4}, + {0x96349739, 0xffffd84effffdfe5}, + {0x96349830, 0xffffd84effffdfe6}, + {0x96349831, 0xffffd84effffdfe7}, + {0x96349832, 0xffffd84effffdfe8}, + {0x96349833, 0xffffd84effffdfe9}, + {0x96349834, 0xffffd84effffdfea}, + {0x96349835, 0xffffd84effffdfeb}, + {0x96349836, 0xffffd84effffdfec}, + {0x96349837, 0xffffd84effffdfed}, + {0x96349838, 0xffffd84effffdfee}, + {0x96349839, 0xffffd84effffdfef}, + {0x96349930, 0xffffd84effffdff0}, + {0x96349931, 0xffffd84effffdff1}, + {0x96349932, 0xffffd84effffdff2}, + {0x96349933, 0xffffd84effffdff3}, + {0x96349934, 0xffffd84effffdff4}, + {0x96349935, 0xffffd84effffdff5}, + {0x96349936, 0xffffd84effffdff6}, + {0x96349937, 0xffffd84effffdff7}, + {0x96349938, 0xffffd84effffdff8}, + {0x96349939, 0xffffd84effffdff9}, + {0x96349a30, 0xffffd84effffdffa}, + {0x96349a31, 0xffffd84effffdffb}, + {0x96349a32, 0xffffd84effffdffc}, + {0x96349a33, 0xffffd84effffdffd}, + {0x96349a34, 0xffffd84effffdffe}, + {0x96349a35, 0xffffd84effffdfff}, + {0x96349a36, 0xffffd84fffffdc00}, + {0x96349a37, 0xffffd84fffffdc01}, + {0x96349a38, 0xffffd84fffffdc02}, + {0x96349a39, 0xffffd84fffffdc03}, + {0x96349b30, 0xffffd84fffffdc04}, + {0x96349b31, 0xffffd84fffffdc05}, + {0x96349b32, 0xffffd84fffffdc06}, + {0x96349b33, 0xffffd84fffffdc07}, + {0x96349b34, 0xffffd84fffffdc08}, + {0x96349b35, 0xffffd84fffffdc09}, + {0x96349b36, 0xffffd84fffffdc0a}, + {0x96349b37, 0xffffd84fffffdc0b}, + {0x96349b38, 0xffffd84fffffdc0c}, + {0x96349b39, 0xffffd84fffffdc0d}, + {0x96349c30, 0xffffd84fffffdc0e}, + {0x96349c31, 0xffffd84fffffdc0f}, + {0x96349c32, 0xffffd84fffffdc10}, + {0x96349c33, 0xffffd84fffffdc11}, + {0x96349c34, 0xffffd84fffffdc12}, + {0x96349c35, 0xffffd84fffffdc13}, + {0x96349c36, 0xffffd84fffffdc14}, + {0x96349c37, 0xffffd84fffffdc15}, + {0x96349c38, 0xffffd84fffffdc16}, + {0x96349c39, 0xffffd84fffffdc17}, + {0x96349d30, 0xffffd84fffffdc18}, + {0x96349d31, 0xffffd84fffffdc19}, + {0x96349d32, 0xffffd84fffffdc1a}, + {0x96349d33, 0xffffd84fffffdc1b}, + {0x96349d34, 0xffffd84fffffdc1c}, + {0x96349d35, 0xffffd84fffffdc1d}, + {0x96349d36, 0xffffd84fffffdc1e}, + {0x96349d37, 0xffffd84fffffdc1f}, + {0x96349d38, 0xffffd84fffffdc20}, + {0x96349d39, 0xffffd84fffffdc21}, + {0x96349e30, 0xffffd84fffffdc22}, + {0x96349e31, 0xffffd84fffffdc23}, + {0x96349e32, 0xffffd84fffffdc24}, + {0x96349e33, 0xffffd84fffffdc25}, + {0x96349e34, 0xffffd84fffffdc26}, + {0x96349e35, 0xffffd84fffffdc27}, + {0x96349e36, 0xffffd84fffffdc28}, + {0x96349e37, 0xffffd84fffffdc29}, + {0x96349e38, 0xffffd84fffffdc2a}, + {0x96349e39, 0xffffd84fffffdc2b}, + {0x96349f30, 0xffffd84fffffdc2c}, + {0x96349f31, 0xffffd84fffffdc2d}, + {0x96349f32, 0xffffd84fffffdc2e}, + {0x96349f33, 0xffffd84fffffdc2f}, + {0x96349f34, 0xffffd84fffffdc30}, + {0x96349f35, 0xffffd84fffffdc31}, + {0x96349f36, 0xffffd84fffffdc32}, + {0x96349f37, 0xffffd84fffffdc33}, + {0x96349f38, 0xffffd84fffffdc34}, + {0x96349f39, 0xffffd84fffffdc35}, + {0x9634a030, 0xffffd84fffffdc36}, + {0x9634a031, 0xffffd84fffffdc37}, + {0x9634a032, 0xffffd84fffffdc38}, + {0x9634a033, 0xffffd84fffffdc39}, + {0x9634a034, 0xffffd84fffffdc3a}, + {0x9634a035, 0xffffd84fffffdc3b}, + {0x9634a036, 0xffffd84fffffdc3c}, + {0x9634a037, 0xffffd84fffffdc3d}, + {0x9634a038, 0xffffd84fffffdc3e}, + {0x9634a039, 0xffffd84fffffdc3f}, + {0x9634a130, 0xffffd84fffffdc40}, + {0x9634a131, 0xffffd84fffffdc41}, + {0x9634a132, 0xffffd84fffffdc42}, + {0x9634a133, 0xffffd84fffffdc43}, + {0x9634a134, 0xffffd84fffffdc44}, + {0x9634a135, 0xffffd84fffffdc45}, + {0x9634a136, 0xffffd84fffffdc46}, + {0x9634a137, 0xffffd84fffffdc47}, + {0x9634a138, 0xffffd84fffffdc48}, + {0x9634a139, 0xffffd84fffffdc49}, + {0x9634a230, 0xffffd84fffffdc4a}, + {0x9634a231, 0xffffd84fffffdc4b}, + {0x9634a232, 0xffffd84fffffdc4c}, + {0x9634a233, 0xffffd84fffffdc4d}, + {0x9634a234, 0xffffd84fffffdc4e}, + {0x9634a235, 0xffffd84fffffdc4f}, + {0x9634a236, 0xffffd84fffffdc50}, + {0x9634a237, 0xffffd84fffffdc51}, + {0x9634a238, 0xffffd84fffffdc52}, + {0x9634a239, 0xffffd84fffffdc53}, + {0x9634a330, 0xffffd84fffffdc54}, + {0x9634a331, 0xffffd84fffffdc55}, + {0x9634a332, 0xffffd84fffffdc56}, + {0x9634a333, 0xffffd84fffffdc57}, + {0x9634a334, 0xffffd84fffffdc58}, + {0x9634a335, 0xffffd84fffffdc59}, + {0x9634a336, 0xffffd84fffffdc5a}, + {0x9634a337, 0xffffd84fffffdc5b}, + {0x9634a338, 0xffffd84fffffdc5c}, + {0x9634a339, 0xffffd84fffffdc5d}, + {0x9634a430, 0xffffd84fffffdc5e}, + {0x9634a431, 0xffffd84fffffdc5f}, + {0x9634a432, 0xffffd84fffffdc60}, + {0x9634a433, 0xffffd84fffffdc61}, + {0x9634a434, 0xffffd84fffffdc62}, + {0x9634a435, 0xffffd84fffffdc63}, + {0x9634a436, 0xffffd84fffffdc64}, + {0x9634a437, 0xffffd84fffffdc65}, + {0x9634a438, 0xffffd84fffffdc66}, + {0x9634a439, 0xffffd84fffffdc67}, + {0x9634a530, 0xffffd84fffffdc68}, + {0x9634a531, 0xffffd84fffffdc69}, + {0x9634a532, 0xffffd84fffffdc6a}, + {0x9634a533, 0xffffd84fffffdc6b}, + {0x9634a534, 0xffffd84fffffdc6c}, + {0x9634a535, 0xffffd84fffffdc6d}, + {0x9634a536, 0xffffd84fffffdc6e}, + {0x9634a537, 0xffffd84fffffdc6f}, + {0x9634a538, 0xffffd84fffffdc70}, + {0x9634a539, 0xffffd84fffffdc71}, + {0x9634a630, 0xffffd84fffffdc72}, + {0x9634a631, 0xffffd84fffffdc73}, + {0x9634a632, 0xffffd84fffffdc74}, + {0x9634a633, 0xffffd84fffffdc75}, + {0x9634a634, 0xffffd84fffffdc76}, + {0x9634a635, 0xffffd84fffffdc77}, + {0x9634a636, 0xffffd84fffffdc78}, + {0x9634a637, 0xffffd84fffffdc79}, + {0x9634a638, 0xffffd84fffffdc7a}, + {0x9634a639, 0xffffd84fffffdc7b}, + {0x9634a730, 0xffffd84fffffdc7c}, + {0x9634a731, 0xffffd84fffffdc7d}, + {0x9634a732, 0xffffd84fffffdc7e}, + {0x9634a733, 0xffffd84fffffdc7f}, + {0x9634a734, 0xffffd84fffffdc80}, + {0x9634a735, 0xffffd84fffffdc81}, + {0x9634a736, 0xffffd84fffffdc82}, + {0x9634a737, 0xffffd84fffffdc83}, + {0x9634a738, 0xffffd84fffffdc84}, + {0x9634a739, 0xffffd84fffffdc85}, + {0x9634a830, 0xffffd84fffffdc86}, + {0x9634a831, 0xffffd84fffffdc87}, + {0x9634a832, 0xffffd84fffffdc88}, + {0x9634a833, 0xffffd84fffffdc89}, + {0x9634a834, 0xffffd84fffffdc8a}, + {0x9634a835, 0xffffd84fffffdc8b}, + {0x9634a836, 0xffffd84fffffdc8c}, + {0x9634a837, 0xffffd84fffffdc8d}, + {0x9634a838, 0xffffd84fffffdc8e}, + {0x9634a839, 0xffffd84fffffdc8f}, + {0x9634a930, 0xffffd84fffffdc90}, + {0x9634a931, 0xffffd84fffffdc91}, + {0x9634a932, 0xffffd84fffffdc92}, + {0x9634a933, 0xffffd84fffffdc93}, + {0x9634a934, 0xffffd84fffffdc94}, + {0x9634a935, 0xffffd84fffffdc95}, + {0x9634a936, 0xffffd84fffffdc96}, + {0x9634a937, 0xffffd84fffffdc97}, + {0x9634a938, 0xffffd84fffffdc98}, + {0x9634a939, 0xffffd84fffffdc99}, + {0x9634aa30, 0xffffd84fffffdc9a}, + {0x9634aa31, 0xffffd84fffffdc9b}, + {0x9634aa32, 0xffffd84fffffdc9c}, + {0x9634aa33, 0xffffd84fffffdc9d}, + {0x9634aa34, 0xffffd84fffffdc9e}, + {0x9634aa35, 0xffffd84fffffdc9f}, + {0x9634aa36, 0xffffd84fffffdca0}, + {0x9634aa37, 0xffffd84fffffdca1}, + {0x9634aa38, 0xffffd84fffffdca2}, + {0x9634aa39, 0xffffd84fffffdca3}, + {0x9634ab30, 0xffffd84fffffdca4}, + {0x9634ab31, 0xffffd84fffffdca5}, + {0x9634ab32, 0xffffd84fffffdca6}, + {0x9634ab33, 0xffffd84fffffdca7}, + {0x9634ab34, 0xffffd84fffffdca8}, + {0x9634ab35, 0xffffd84fffffdca9}, + {0x9634ab36, 0xffffd84fffffdcaa}, + {0x9634ab37, 0xffffd84fffffdcab}, + {0x9634ab38, 0xffffd84fffffdcac}, + {0x9634ab39, 0xffffd84fffffdcad}, + {0x9634ac30, 0xffffd84fffffdcae}, + {0x9634ac31, 0xffffd84fffffdcaf}, + {0x9634ac32, 0xffffd84fffffdcb0}, + {0x9634ac33, 0xffffd84fffffdcb1}, + {0x9634ac34, 0xffffd84fffffdcb2}, + {0x9634ac35, 0xffffd84fffffdcb3}, + {0x9634ac36, 0xffffd84fffffdcb4}, + {0x9634ac37, 0xffffd84fffffdcb5}, + {0x9634ac38, 0xffffd84fffffdcb6}, + {0x9634ac39, 0xffffd84fffffdcb7}, + {0x9634ad30, 0xffffd84fffffdcb8}, + {0x9634ad31, 0xffffd84fffffdcb9}, + {0x9634ad32, 0xffffd84fffffdcba}, + {0x9634ad33, 0xffffd84fffffdcbb}, + {0x9634ad34, 0xffffd84fffffdcbc}, + {0x9634ad35, 0xffffd84fffffdcbd}, + {0x9634ad36, 0xffffd84fffffdcbe}, + {0x9634ad37, 0xffffd84fffffdcbf}, + {0x9634ad38, 0xffffd84fffffdcc0}, + {0x9634ad39, 0xffffd84fffffdcc1}, + {0x9634ae30, 0xffffd84fffffdcc2}, + {0x9634ae31, 0xffffd84fffffdcc3}, + {0x9634ae32, 0xffffd84fffffdcc4}, + {0x9634ae33, 0xffffd84fffffdcc5}, + {0x9634ae34, 0xffffd84fffffdcc6}, + {0x9634ae35, 0xffffd84fffffdcc7}, + {0x9634ae36, 0xffffd84fffffdcc8}, + {0x9634ae37, 0xffffd84fffffdcc9}, + {0x9634ae38, 0xffffd84fffffdcca}, + {0x9634ae39, 0xffffd84fffffdccb}, + {0x9634af30, 0xffffd84fffffdccc}, + {0x9634af31, 0xffffd84fffffdccd}, + {0x9634af32, 0xffffd84fffffdcce}, + {0x9634af33, 0xffffd84fffffdccf}, + {0x9634af34, 0xffffd84fffffdcd0}, + {0x9634af35, 0xffffd84fffffdcd1}, + {0x9634af36, 0xffffd84fffffdcd2}, + {0x9634af37, 0xffffd84fffffdcd3}, + {0x9634af38, 0xffffd84fffffdcd4}, + {0x9634af39, 0xffffd84fffffdcd5}, + {0x9634b030, 0xffffd84fffffdcd6}, + {0x9634b031, 0xffffd84fffffdcd7}, + {0x9634b032, 0xffffd84fffffdcd8}, + {0x9634b033, 0xffffd84fffffdcd9}, + {0x9634b034, 0xffffd84fffffdcda}, + {0x9634b035, 0xffffd84fffffdcdb}, + {0x9634b036, 0xffffd84fffffdcdc}, + {0x9634b037, 0xffffd84fffffdcdd}, + {0x9634b038, 0xffffd84fffffdcde}, + {0x9634b039, 0xffffd84fffffdcdf}, + {0x9634b130, 0xffffd84fffffdce0}, + {0x9634b131, 0xffffd84fffffdce1}, + {0x9634b132, 0xffffd84fffffdce2}, + {0x9634b133, 0xffffd84fffffdce3}, + {0x9634b134, 0xffffd84fffffdce4}, + {0x9634b135, 0xffffd84fffffdce5}, + {0x9634b136, 0xffffd84fffffdce6}, + {0x9634b137, 0xffffd84fffffdce7}, + {0x9634b138, 0xffffd84fffffdce8}, + {0x9634b139, 0xffffd84fffffdce9}, + {0x9634b230, 0xffffd84fffffdcea}, + {0x9634b231, 0xffffd84fffffdceb}, + {0x9634b232, 0xffffd84fffffdcec}, + {0x9634b233, 0xffffd84fffffdced}, + {0x9634b234, 0xffffd84fffffdcee}, + {0x9634b235, 0xffffd84fffffdcef}, + {0x9634b236, 0xffffd84fffffdcf0}, + {0x9634b237, 0xffffd84fffffdcf1}, + {0x9634b238, 0xffffd84fffffdcf2}, + {0x9634b239, 0xffffd84fffffdcf3}, + {0x9634b330, 0xffffd84fffffdcf4}, + {0x9634b331, 0xffffd84fffffdcf5}, + {0x9634b332, 0xffffd84fffffdcf6}, + {0x9634b333, 0xffffd84fffffdcf7}, + {0x9634b334, 0xffffd84fffffdcf8}, + {0x9634b335, 0xffffd84fffffdcf9}, + {0x9634b336, 0xffffd84fffffdcfa}, + {0x9634b337, 0xffffd84fffffdcfb}, + {0x9634b338, 0xffffd84fffffdcfc}, + {0x9634b339, 0xffffd84fffffdcfd}, + {0x9634b430, 0xffffd84fffffdcfe}, + {0x9634b431, 0xffffd84fffffdcff}, + {0x9634b432, 0xffffd84fffffdd00}, + {0x9634b433, 0xffffd84fffffdd01}, + {0x9634b434, 0xffffd84fffffdd02}, + {0x9634b435, 0xffffd84fffffdd03}, + {0x9634b436, 0xffffd84fffffdd04}, + {0x9634b437, 0xffffd84fffffdd05}, + {0x9634b438, 0xffffd84fffffdd06}, + {0x9634b439, 0xffffd84fffffdd07}, + {0x9634b530, 0xffffd84fffffdd08}, + {0x9634b531, 0xffffd84fffffdd09}, + {0x9634b532, 0xffffd84fffffdd0a}, + {0x9634b533, 0xffffd84fffffdd0b}, + {0x9634b534, 0xffffd84fffffdd0c}, + {0x9634b535, 0xffffd84fffffdd0d}, + {0x9634b536, 0xffffd84fffffdd0e}, + {0x9634b537, 0xffffd84fffffdd0f}, + {0x9634b538, 0xffffd84fffffdd10}, + {0x9634b539, 0xffffd84fffffdd11}, + {0x9634b630, 0xffffd84fffffdd12}, + {0x9634b631, 0xffffd84fffffdd13}, + {0x9634b632, 0xffffd84fffffdd14}, + {0x9634b633, 0xffffd84fffffdd15}, + {0x9634b634, 0xffffd84fffffdd16}, + {0x9634b635, 0xffffd84fffffdd17}, + {0x9634b636, 0xffffd84fffffdd18}, + {0x9634b637, 0xffffd84fffffdd19}, + {0x9634b638, 0xffffd84fffffdd1a}, + {0x9634b639, 0xffffd84fffffdd1b}, + {0x9634b730, 0xffffd84fffffdd1c}, + {0x9634b731, 0xffffd84fffffdd1d}, + {0x9634b732, 0xffffd84fffffdd1e}, + {0x9634b733, 0xffffd84fffffdd1f}, + {0x9634b734, 0xffffd84fffffdd20}, + {0x9634b735, 0xffffd84fffffdd21}, + {0x9634b736, 0xffffd84fffffdd22}, + {0x9634b737, 0xffffd84fffffdd23}, + {0x9634b738, 0xffffd84fffffdd24}, + {0x9634b739, 0xffffd84fffffdd25}, + {0x9634b830, 0xffffd84fffffdd26}, + {0x9634b831, 0xffffd84fffffdd27}, + {0x9634b832, 0xffffd84fffffdd28}, + {0x9634b833, 0xffffd84fffffdd29}, + {0x9634b834, 0xffffd84fffffdd2a}, + {0x9634b835, 0xffffd84fffffdd2b}, + {0x9634b836, 0xffffd84fffffdd2c}, + {0x9634b837, 0xffffd84fffffdd2d}, + {0x9634b838, 0xffffd84fffffdd2e}, + {0x9634b839, 0xffffd84fffffdd2f}, + {0x9634b930, 0xffffd84fffffdd30}, + {0x9634b931, 0xffffd84fffffdd31}, + {0x9634b932, 0xffffd84fffffdd32}, + {0x9634b933, 0xffffd84fffffdd33}, + {0x9634b934, 0xffffd84fffffdd34}, + {0x9634b935, 0xffffd84fffffdd35}, + {0x9634b936, 0xffffd84fffffdd36}, + {0x9634b937, 0xffffd84fffffdd37}, + {0x9634b938, 0xffffd84fffffdd38}, + {0x9634b939, 0xffffd84fffffdd39}, + {0x9634ba30, 0xffffd84fffffdd3a}, + {0x9634ba31, 0xffffd84fffffdd3b}, + {0x9634ba32, 0xffffd84fffffdd3c}, + {0x9634ba33, 0xffffd84fffffdd3d}, + {0x9634ba34, 0xffffd84fffffdd3e}, + {0x9634ba35, 0xffffd84fffffdd3f}, + {0x9634ba36, 0xffffd84fffffdd40}, + {0x9634ba37, 0xffffd84fffffdd41}, + {0x9634ba38, 0xffffd84fffffdd42}, + {0x9634ba39, 0xffffd84fffffdd43}, + {0x9634bb30, 0xffffd84fffffdd44}, + {0x9634bb31, 0xffffd84fffffdd45}, + {0x9634bb32, 0xffffd84fffffdd46}, + {0x9634bb33, 0xffffd84fffffdd47}, + {0x9634bb34, 0xffffd84fffffdd48}, + {0x9634bb35, 0xffffd84fffffdd49}, + {0x9634bb36, 0xffffd84fffffdd4a}, + {0x9634bb37, 0xffffd84fffffdd4b}, + {0x9634bb38, 0xffffd84fffffdd4c}, + {0x9634bb39, 0xffffd84fffffdd4d}, + {0x9634bc30, 0xffffd84fffffdd4e}, + {0x9634bc31, 0xffffd84fffffdd4f}, + {0x9634bc32, 0xffffd84fffffdd50}, + {0x9634bc33, 0xffffd84fffffdd51}, + {0x9634bc34, 0xffffd84fffffdd52}, + {0x9634bc35, 0xffffd84fffffdd53}, + {0x9634bc36, 0xffffd84fffffdd54}, + {0x9634bc37, 0xffffd84fffffdd55}, + {0x9634bc38, 0xffffd84fffffdd56}, + {0x9634bc39, 0xffffd84fffffdd57}, + {0x9634bd30, 0xffffd84fffffdd58}, + {0x9634bd31, 0xffffd84fffffdd59}, + {0x9634bd32, 0xffffd84fffffdd5a}, + {0x9634bd33, 0xffffd84fffffdd5b}, + {0x9634bd34, 0xffffd84fffffdd5c}, + {0x9634bd35, 0xffffd84fffffdd5d}, + {0x9634bd36, 0xffffd84fffffdd5e}, + {0x9634bd37, 0xffffd84fffffdd5f}, + {0x9634bd38, 0xffffd84fffffdd60}, + {0x9634bd39, 0xffffd84fffffdd61}, + {0x9634be30, 0xffffd84fffffdd62}, + {0x9634be31, 0xffffd84fffffdd63}, + {0x9634be32, 0xffffd84fffffdd64}, + {0x9634be33, 0xffffd84fffffdd65}, + {0x9634be34, 0xffffd84fffffdd66}, + {0x9634be35, 0xffffd84fffffdd67}, + {0x9634be36, 0xffffd84fffffdd68}, + {0x9634be37, 0xffffd84fffffdd69}, + {0x9634be38, 0xffffd84fffffdd6a}, + {0x9634be39, 0xffffd84fffffdd6b}, + {0x9634bf30, 0xffffd84fffffdd6c}, + {0x9634bf31, 0xffffd84fffffdd6d}, + {0x9634bf32, 0xffffd84fffffdd6e}, + {0x9634bf33, 0xffffd84fffffdd6f}, + {0x9634bf34, 0xffffd84fffffdd70}, + {0x9634bf35, 0xffffd84fffffdd71}, + {0x9634bf36, 0xffffd84fffffdd72}, + {0x9634bf37, 0xffffd84fffffdd73}, + {0x9634bf38, 0xffffd84fffffdd74}, + {0x9634bf39, 0xffffd84fffffdd75}, + {0x9634c030, 0xffffd84fffffdd76}, + {0x9634c031, 0xffffd84fffffdd77}, + {0x9634c032, 0xffffd84fffffdd78}, + {0x9634c033, 0xffffd84fffffdd79}, + {0x9634c034, 0xffffd84fffffdd7a}, + {0x9634c035, 0xffffd84fffffdd7b}, + {0x9634c036, 0xffffd84fffffdd7c}, + {0x9634c037, 0xffffd84fffffdd7d}, + {0x9634c038, 0xffffd84fffffdd7e}, + {0x9634c039, 0xffffd84fffffdd7f}, + {0x9634c130, 0xffffd84fffffdd80}, + {0x9634c131, 0xffffd84fffffdd81}, + {0x9634c132, 0xffffd84fffffdd82}, + {0x9634c133, 0xffffd84fffffdd83}, + {0x9634c134, 0xffffd84fffffdd84}, + {0x9634c135, 0xffffd84fffffdd85}, + {0x9634c136, 0xffffd84fffffdd86}, + {0x9634c137, 0xffffd84fffffdd87}, + {0x9634c138, 0xffffd84fffffdd88}, + {0x9634c139, 0xffffd84fffffdd89}, + {0x9634c230, 0xffffd84fffffdd8a}, + {0x9634c231, 0xffffd84fffffdd8b}, + {0x9634c232, 0xffffd84fffffdd8c}, + {0x9634c233, 0xffffd84fffffdd8d}, + {0x9634c234, 0xffffd84fffffdd8e}, + {0x9634c235, 0xffffd84fffffdd8f}, + {0x9634c236, 0xffffd84fffffdd90}, + {0x9634c237, 0xffffd84fffffdd91}, + {0x9634c238, 0xffffd84fffffdd92}, + {0x9634c239, 0xffffd84fffffdd93}, + {0x9634c330, 0xffffd84fffffdd94}, + {0x9634c331, 0xffffd84fffffdd95}, + {0x9634c332, 0xffffd84fffffdd96}, + {0x9634c333, 0xffffd84fffffdd97}, + {0x9634c334, 0xffffd84fffffdd98}, + {0x9634c335, 0xffffd84fffffdd99}, + {0x9634c336, 0xffffd84fffffdd9a}, + {0x9634c337, 0xffffd84fffffdd9b}, + {0x9634c338, 0xffffd84fffffdd9c}, + {0x9634c339, 0xffffd84fffffdd9d}, + {0x9634c430, 0xffffd84fffffdd9e}, + {0x9634c431, 0xffffd84fffffdd9f}, + {0x9634c432, 0xffffd84fffffdda0}, + {0x9634c433, 0xffffd84fffffdda1}, + {0x9634c434, 0xffffd84fffffdda2}, + {0x9634c435, 0xffffd84fffffdda3}, + {0x9634c436, 0xffffd84fffffdda4}, + {0x9634c437, 0xffffd84fffffdda5}, + {0x9634c438, 0xffffd84fffffdda6}, + {0x9634c439, 0xffffd84fffffdda7}, + {0x9634c530, 0xffffd84fffffdda8}, + {0x9634c531, 0xffffd84fffffdda9}, + {0x9634c532, 0xffffd84fffffddaa}, + {0x9634c533, 0xffffd84fffffddab}, + {0x9634c534, 0xffffd84fffffddac}, + {0x9634c535, 0xffffd84fffffddad}, + {0x9634c536, 0xffffd84fffffddae}, + {0x9634c537, 0xffffd84fffffddaf}, + {0x9634c538, 0xffffd84fffffddb0}, + {0x9634c539, 0xffffd84fffffddb1}, + {0x9634c630, 0xffffd84fffffddb2}, + {0x9634c631, 0xffffd84fffffddb3}, + {0x9634c632, 0xffffd84fffffddb4}, + {0x9634c633, 0xffffd84fffffddb5}, + {0x9634c634, 0xffffd84fffffddb6}, + {0x9634c635, 0xffffd84fffffddb7}, + {0x9634c636, 0xffffd84fffffddb8}, + {0x9634c637, 0xffffd84fffffddb9}, + {0x9634c638, 0xffffd84fffffddba}, + {0x9634c639, 0xffffd84fffffddbb}, + {0x9634c730, 0xffffd84fffffddbc}, + {0x9634c731, 0xffffd84fffffddbd}, + {0x9634c732, 0xffffd84fffffddbe}, + {0x9634c733, 0xffffd84fffffddbf}, + {0x9634c734, 0xffffd84fffffddc0}, + {0x9634c735, 0xffffd84fffffddc1}, + {0x9634c736, 0xffffd84fffffddc2}, + {0x9634c737, 0xffffd84fffffddc3}, + {0x9634c738, 0xffffd84fffffddc4}, + {0x9634c739, 0xffffd84fffffddc5}, + {0x9634c830, 0xffffd84fffffddc6}, + {0x9634c831, 0xffffd84fffffddc7}, + {0x9634c832, 0xffffd84fffffddc8}, + {0x9634c833, 0xffffd84fffffddc9}, + {0x9634c834, 0xffffd84fffffddca}, + {0x9634c835, 0xffffd84fffffddcb}, + {0x9634c836, 0xffffd84fffffddcc}, + {0x9634c837, 0xffffd84fffffddcd}, + {0x9634c838, 0xffffd84fffffddce}, + {0x9634c839, 0xffffd84fffffddcf}, + {0x9634c930, 0xffffd84fffffddd0}, + {0x9634c931, 0xffffd84fffffddd1}, + {0x9634c932, 0xffffd84fffffddd2}, + {0x9634c933, 0xffffd84fffffddd3}, + {0x9634c934, 0xffffd84fffffddd4}, + {0x9634c935, 0xffffd84fffffddd5}, + {0x9634c936, 0xffffd84fffffddd6}, + {0x9634c937, 0xffffd84fffffddd7}, + {0x9634c938, 0xffffd84fffffddd8}, + {0x9634c939, 0xffffd84fffffddd9}, + {0x9634ca30, 0xffffd84fffffddda}, + {0x9634ca31, 0xffffd84fffffdddb}, + {0x9634ca32, 0xffffd84fffffdddc}, + {0x9634ca33, 0xffffd84fffffdddd}, + {0x9634ca34, 0xffffd84fffffddde}, + {0x9634ca35, 0xffffd84fffffdddf}, + {0x9634ca36, 0xffffd84fffffdde0}, + {0x9634ca37, 0xffffd84fffffdde1}, + {0x9634ca38, 0xffffd84fffffdde2}, + {0x9634ca39, 0xffffd84fffffdde3}, + {0x9634cb30, 0xffffd84fffffdde4}, + {0x9634cb31, 0xffffd84fffffdde5}, + {0x9634cb32, 0xffffd84fffffdde6}, + {0x9634cb33, 0xffffd84fffffdde7}, + {0x9634cb34, 0xffffd84fffffdde8}, + {0x9634cb35, 0xffffd84fffffdde9}, + {0x9634cb36, 0xffffd84fffffddea}, + {0x9634cb37, 0xffffd84fffffddeb}, + {0x9634cb38, 0xffffd84fffffddec}, + {0x9634cb39, 0xffffd84fffffdded}, + {0x9634cc30, 0xffffd84fffffddee}, + {0x9634cc31, 0xffffd84fffffddef}, + {0x9634cc32, 0xffffd84fffffddf0}, + {0x9634cc33, 0xffffd84fffffddf1}, + {0x9634cc34, 0xffffd84fffffddf2}, + {0x9634cc35, 0xffffd84fffffddf3}, + {0x9634cc36, 0xffffd84fffffddf4}, + {0x9634cc37, 0xffffd84fffffddf5}, + {0x9634cc38, 0xffffd84fffffddf6}, + {0x9634cc39, 0xffffd84fffffddf7}, + {0x9634cd30, 0xffffd84fffffddf8}, + {0x9634cd31, 0xffffd84fffffddf9}, + {0x9634cd32, 0xffffd84fffffddfa}, + {0x9634cd33, 0xffffd84fffffddfb}, + {0x9634cd34, 0xffffd84fffffddfc}, + {0x9634cd35, 0xffffd84fffffddfd}, + {0x9634cd36, 0xffffd84fffffddfe}, + {0x9634cd37, 0xffffd84fffffddff}, + {0x9634cd38, 0xffffd84fffffde00}, + {0x9634cd39, 0xffffd84fffffde01}, + {0x9634ce30, 0xffffd84fffffde02}, + {0x9634ce31, 0xffffd84fffffde03}, + {0x9634ce32, 0xffffd84fffffde04}, + {0x9634ce33, 0xffffd84fffffde05}, + {0x9634ce34, 0xffffd84fffffde06}, + {0x9634ce35, 0xffffd84fffffde07}, + {0x9634ce36, 0xffffd84fffffde08}, + {0x9634ce37, 0xffffd84fffffde09}, + {0x9634ce38, 0xffffd84fffffde0a}, + {0x9634ce39, 0xffffd84fffffde0b}, + {0x9634cf30, 0xffffd84fffffde0c}, + {0x9634cf31, 0xffffd84fffffde0d}, + {0x9634cf32, 0xffffd84fffffde0e}, + {0x9634cf33, 0xffffd84fffffde0f}, + {0x9634cf34, 0xffffd84fffffde10}, + {0x9634cf35, 0xffffd84fffffde11}, + {0x9634cf36, 0xffffd84fffffde12}, + {0x9634cf37, 0xffffd84fffffde13}, + {0x9634cf38, 0xffffd84fffffde14}, + {0x9634cf39, 0xffffd84fffffde15}, + {0x9634d030, 0xffffd84fffffde16}, + {0x9634d031, 0xffffd84fffffde17}, + {0x9634d032, 0xffffd84fffffde18}, + {0x9634d033, 0xffffd84fffffde19}, + {0x9634d034, 0xffffd84fffffde1a}, + {0x9634d035, 0xffffd84fffffde1b}, + {0x9634d036, 0xffffd84fffffde1c}, + {0x9634d037, 0xffffd84fffffde1d}, + {0x9634d038, 0xffffd84fffffde1e}, + {0x9634d039, 0xffffd84fffffde1f}, + {0x9634d130, 0xffffd84fffffde20}, + {0x9634d131, 0xffffd84fffffde21}, + {0x9634d132, 0xffffd84fffffde22}, + {0x9634d133, 0xffffd84fffffde23}, + {0x9634d134, 0xffffd84fffffde24}, + {0x9634d135, 0xffffd84fffffde25}, + {0x9634d136, 0xffffd84fffffde26}, + {0x9634d137, 0xffffd84fffffde27}, + {0x9634d138, 0xffffd84fffffde28}, + {0x9634d139, 0xffffd84fffffde29}, + {0x9634d230, 0xffffd84fffffde2a}, + {0x9634d231, 0xffffd84fffffde2b}, + {0x9634d232, 0xffffd84fffffde2c}, + {0x9634d233, 0xffffd84fffffde2d}, + {0x9634d234, 0xffffd84fffffde2e}, + {0x9634d235, 0xffffd84fffffde2f}, + {0x9634d236, 0xffffd84fffffde30}, + {0x9634d237, 0xffffd84fffffde31}, + {0x9634d238, 0xffffd84fffffde32}, + {0x9634d239, 0xffffd84fffffde33}, + {0x9634d330, 0xffffd84fffffde34}, + {0x9634d331, 0xffffd84fffffde35}, + {0x9634d332, 0xffffd84fffffde36}, + {0x9634d333, 0xffffd84fffffde37}, + {0x9634d334, 0xffffd84fffffde38}, + {0x9634d335, 0xffffd84fffffde39}, + {0x9634d336, 0xffffd84fffffde3a}, + {0x9634d337, 0xffffd84fffffde3b}, + {0x9634d338, 0xffffd84fffffde3c}, + {0x9634d339, 0xffffd84fffffde3d}, + {0x9634d430, 0xffffd84fffffde3e}, + {0x9634d431, 0xffffd84fffffde3f}, + {0x9634d432, 0xffffd84fffffde40}, + {0x9634d433, 0xffffd84fffffde41}, + {0x9634d434, 0xffffd84fffffde42}, + {0x9634d435, 0xffffd84fffffde43}, + {0x9634d436, 0xffffd84fffffde44}, + {0x9634d437, 0xffffd84fffffde45}, + {0x9634d438, 0xffffd84fffffde46}, + {0x9634d439, 0xffffd84fffffde47}, + {0x9634d530, 0xffffd84fffffde48}, + {0x9634d531, 0xffffd84fffffde49}, + {0x9634d532, 0xffffd84fffffde4a}, + {0x9634d533, 0xffffd84fffffde4b}, + {0x9634d534, 0xffffd84fffffde4c}, + {0x9634d535, 0xffffd84fffffde4d}, + {0x9634d536, 0xffffd84fffffde4e}, + {0x9634d537, 0xffffd84fffffde4f}, + {0x9634d538, 0xffffd84fffffde50}, + {0x9634d539, 0xffffd84fffffde51}, + {0x9634d630, 0xffffd84fffffde52}, + {0x9634d631, 0xffffd84fffffde53}, + {0x9634d632, 0xffffd84fffffde54}, + {0x9634d633, 0xffffd84fffffde55}, + {0x9634d634, 0xffffd84fffffde56}, + {0x9634d635, 0xffffd84fffffde57}, + {0x9634d636, 0xffffd84fffffde58}, + {0x9634d637, 0xffffd84fffffde59}, + {0x9634d638, 0xffffd84fffffde5a}, + {0x9634d639, 0xffffd84fffffde5b}, + {0x9634d730, 0xffffd84fffffde5c}, + {0x9634d731, 0xffffd84fffffde5d}, + {0x9634d732, 0xffffd84fffffde5e}, + {0x9634d733, 0xffffd84fffffde5f}, + {0x9634d734, 0xffffd84fffffde60}, + {0x9634d735, 0xffffd84fffffde61}, + {0x9634d736, 0xffffd84fffffde62}, + {0x9634d737, 0xffffd84fffffde63}, + {0x9634d738, 0xffffd84fffffde64}, + {0x9634d739, 0xffffd84fffffde65}, + {0x9634d830, 0xffffd84fffffde66}, + {0x9634d831, 0xffffd84fffffde67}, + {0x9634d832, 0xffffd84fffffde68}, + {0x9634d833, 0xffffd84fffffde69}, + {0x9634d834, 0xffffd84fffffde6a}, + {0x9634d835, 0xffffd84fffffde6b}, + {0x9634d836, 0xffffd84fffffde6c}, + {0x9634d837, 0xffffd84fffffde6d}, + {0x9634d838, 0xffffd84fffffde6e}, + {0x9634d839, 0xffffd84fffffde6f}, + {0x9634d930, 0xffffd84fffffde70}, + {0x9634d931, 0xffffd84fffffde71}, + {0x9634d932, 0xffffd84fffffde72}, + {0x9634d933, 0xffffd84fffffde73}, + {0x9634d934, 0xffffd84fffffde74}, + {0x9634d935, 0xffffd84fffffde75}, + {0x9634d936, 0xffffd84fffffde76}, + {0x9634d937, 0xffffd84fffffde77}, + {0x9634d938, 0xffffd84fffffde78}, + {0x9634d939, 0xffffd84fffffde79}, + {0x9634da30, 0xffffd84fffffde7a}, + {0x9634da31, 0xffffd84fffffde7b}, + {0x9634da32, 0xffffd84fffffde7c}, + {0x9634da33, 0xffffd84fffffde7d}, + {0x9634da34, 0xffffd84fffffde7e}, + {0x9634da35, 0xffffd84fffffde7f}, + {0x9634da36, 0xffffd84fffffde80}, + {0x9634da37, 0xffffd84fffffde81}, + {0x9634da38, 0xffffd84fffffde82}, + {0x9634da39, 0xffffd84fffffde83}, + {0x9634db30, 0xffffd84fffffde84}, + {0x9634db31, 0xffffd84fffffde85}, + {0x9634db32, 0xffffd84fffffde86}, + {0x9634db33, 0xffffd84fffffde87}, + {0x9634db34, 0xffffd84fffffde88}, + {0x9634db35, 0xffffd84fffffde89}, + {0x9634db36, 0xffffd84fffffde8a}, + {0x9634db37, 0xffffd84fffffde8b}, + {0x9634db38, 0xffffd84fffffde8c}, + {0x9634db39, 0xffffd84fffffde8d}, + {0x9634dc30, 0xffffd84fffffde8e}, + {0x9634dc31, 0xffffd84fffffde8f}, + {0x9634dc32, 0xffffd84fffffde90}, + {0x9634dc33, 0xffffd84fffffde91}, + {0x9634dc34, 0xffffd84fffffde92}, + {0x9634dc35, 0xffffd84fffffde93}, + {0x9634dc36, 0xffffd84fffffde94}, + {0x9634dc37, 0xffffd84fffffde95}, + {0x9634dc38, 0xffffd84fffffde96}, + {0x9634dc39, 0xffffd84fffffde97}, + {0x9634dd30, 0xffffd84fffffde98}, + {0x9634dd31, 0xffffd84fffffde99}, + {0x9634dd32, 0xffffd84fffffde9a}, + {0x9634dd33, 0xffffd84fffffde9b}, + {0x9634dd34, 0xffffd84fffffde9c}, + {0x9634dd35, 0xffffd84fffffde9d}, + {0x9634dd36, 0xffffd84fffffde9e}, + {0x9634dd37, 0xffffd84fffffde9f}, + {0x9634dd38, 0xffffd84fffffdea0}, + {0x9634dd39, 0xffffd84fffffdea1}, + {0x9634de30, 0xffffd84fffffdea2}, + {0x9634de31, 0xffffd84fffffdea3}, + {0x9634de32, 0xffffd84fffffdea4}, + {0x9634de33, 0xffffd84fffffdea5}, + {0x9634de34, 0xffffd84fffffdea6}, + {0x9634de35, 0xffffd84fffffdea7}, + {0x9634de36, 0xffffd84fffffdea8}, + {0x9634de37, 0xffffd84fffffdea9}, + {0x9634de38, 0xffffd84fffffdeaa}, + {0x9634de39, 0xffffd84fffffdeab}, + {0x9634df30, 0xffffd84fffffdeac}, + {0x9634df31, 0xffffd84fffffdead}, + {0x9634df32, 0xffffd84fffffdeae}, + {0x9634df33, 0xffffd84fffffdeaf}, + {0x9634df34, 0xffffd84fffffdeb0}, + {0x9634df35, 0xffffd84fffffdeb1}, + {0x9634df36, 0xffffd84fffffdeb2}, + {0x9634df37, 0xffffd84fffffdeb3}, + {0x9634df38, 0xffffd84fffffdeb4}, + {0x9634df39, 0xffffd84fffffdeb5}, + {0x9634e030, 0xffffd84fffffdeb6}, + {0x9634e031, 0xffffd84fffffdeb7}, + {0x9634e032, 0xffffd84fffffdeb8}, + {0x9634e033, 0xffffd84fffffdeb9}, + {0x9634e034, 0xffffd84fffffdeba}, + {0x9634e035, 0xffffd84fffffdebb}, + {0x9634e036, 0xffffd84fffffdebc}, + {0x9634e037, 0xffffd84fffffdebd}, + {0x9634e038, 0xffffd84fffffdebe}, + {0x9634e039, 0xffffd84fffffdebf}, + {0x9634e130, 0xffffd84fffffdec0}, + {0x9634e131, 0xffffd84fffffdec1}, + {0x9634e132, 0xffffd84fffffdec2}, + {0x9634e133, 0xffffd84fffffdec3}, + {0x9634e134, 0xffffd84fffffdec4}, + {0x9634e135, 0xffffd84fffffdec5}, + {0x9634e136, 0xffffd84fffffdec6}, + {0x9634e137, 0xffffd84fffffdec7}, + {0x9634e138, 0xffffd84fffffdec8}, + {0x9634e139, 0xffffd84fffffdec9}, + {0x9634e230, 0xffffd84fffffdeca}, + {0x9634e231, 0xffffd84fffffdecb}, + {0x9634e232, 0xffffd84fffffdecc}, + {0x9634e233, 0xffffd84fffffdecd}, + {0x9634e234, 0xffffd84fffffdece}, + {0x9634e235, 0xffffd84fffffdecf}, + {0x9634e236, 0xffffd84fffffded0}, + {0x9634e237, 0xffffd84fffffded1}, + {0x9634e238, 0xffffd84fffffded2}, + {0x9634e239, 0xffffd84fffffded3}, + {0x9634e330, 0xffffd84fffffded4}, + {0x9634e331, 0xffffd84fffffded5}, + {0x9634e332, 0xffffd84fffffded6}, + {0x9634e333, 0xffffd84fffffded7}, + {0x9634e334, 0xffffd84fffffded8}, + {0x9634e335, 0xffffd84fffffded9}, + {0x9634e336, 0xffffd84fffffdeda}, + {0x9634e337, 0xffffd84fffffdedb}, + {0x9634e338, 0xffffd84fffffdedc}, + {0x9634e339, 0xffffd84fffffdedd}, + {0x9634e430, 0xffffd84fffffdede}, + {0x9634e431, 0xffffd84fffffdedf}, + {0x9634e432, 0xffffd84fffffdee0}, + {0x9634e433, 0xffffd84fffffdee1}, + {0x9634e434, 0xffffd84fffffdee2}, + {0x9634e435, 0xffffd84fffffdee3}, + {0x9634e436, 0xffffd84fffffdee4}, + {0x9634e437, 0xffffd84fffffdee5}, + {0x9634e438, 0xffffd84fffffdee6}, + {0x9634e439, 0xffffd84fffffdee7}, + {0x9634e530, 0xffffd84fffffdee8}, + {0x9634e531, 0xffffd84fffffdee9}, + {0x9634e532, 0xffffd84fffffdeea}, + {0x9634e533, 0xffffd84fffffdeeb}, + {0x9634e534, 0xffffd84fffffdeec}, + {0x9634e535, 0xffffd84fffffdeed}, + {0x9634e536, 0xffffd84fffffdeee}, + {0x9634e537, 0xffffd84fffffdeef}, + {0x9634e538, 0xffffd84fffffdef0}, + {0x9634e539, 0xffffd84fffffdef1}, + {0x9634e630, 0xffffd84fffffdef2}, + {0x9634e631, 0xffffd84fffffdef3}, + {0x9634e632, 0xffffd84fffffdef4}, + {0x9634e633, 0xffffd84fffffdef5}, + {0x9634e634, 0xffffd84fffffdef6}, + {0x9634e635, 0xffffd84fffffdef7}, + {0x9634e636, 0xffffd84fffffdef8}, + {0x9634e637, 0xffffd84fffffdef9}, + {0x9634e638, 0xffffd84fffffdefa}, + {0x9634e639, 0xffffd84fffffdefb}, + {0x9634e730, 0xffffd84fffffdefc}, + {0x9634e731, 0xffffd84fffffdefd}, + {0x9634e732, 0xffffd84fffffdefe}, + {0x9634e733, 0xffffd84fffffdeff}, + {0x9634e734, 0xffffd84fffffdf00}, + {0x9634e735, 0xffffd84fffffdf01}, + {0x9634e736, 0xffffd84fffffdf02}, + {0x9634e737, 0xffffd84fffffdf03}, + {0x9634e738, 0xffffd84fffffdf04}, + {0x9634e739, 0xffffd84fffffdf05}, + {0x9634e830, 0xffffd84fffffdf06}, + {0x9634e831, 0xffffd84fffffdf07}, + {0x9634e832, 0xffffd84fffffdf08}, + {0x9634e833, 0xffffd84fffffdf09}, + {0x9634e834, 0xffffd84fffffdf0a}, + {0x9634e835, 0xffffd84fffffdf0b}, + {0x9634e836, 0xffffd84fffffdf0c}, + {0x9634e837, 0xffffd84fffffdf0d}, + {0x9634e838, 0xffffd84fffffdf0e}, + {0x9634e839, 0xffffd84fffffdf0f}, + {0x9634e930, 0xffffd84fffffdf10}, + {0x9634e931, 0xffffd84fffffdf11}, + {0x9634e932, 0xffffd84fffffdf12}, + {0x9634e933, 0xffffd84fffffdf13}, + {0x9634e934, 0xffffd84fffffdf14}, + {0x9634e935, 0xffffd84fffffdf15}, + {0x9634e936, 0xffffd84fffffdf16}, + {0x9634e937, 0xffffd84fffffdf17}, + {0x9634e938, 0xffffd84fffffdf18}, + {0x9634e939, 0xffffd84fffffdf19}, + {0x9634ea30, 0xffffd84fffffdf1a}, + {0x9634ea31, 0xffffd84fffffdf1b}, + {0x9634ea32, 0xffffd84fffffdf1c}, + {0x9634ea33, 0xffffd84fffffdf1d}, + {0x9634ea34, 0xffffd84fffffdf1e}, + {0x9634ea35, 0xffffd84fffffdf1f}, + {0x9634ea36, 0xffffd84fffffdf20}, + {0x9634ea37, 0xffffd84fffffdf21}, + {0x9634ea38, 0xffffd84fffffdf22}, + {0x9634ea39, 0xffffd84fffffdf23}, + {0x9634eb30, 0xffffd84fffffdf24}, + {0x9634eb31, 0xffffd84fffffdf25}, + {0x9634eb32, 0xffffd84fffffdf26}, + {0x9634eb33, 0xffffd84fffffdf27}, + {0x9634eb34, 0xffffd84fffffdf28}, + {0x9634eb35, 0xffffd84fffffdf29}, + {0x9634eb36, 0xffffd84fffffdf2a}, + {0x9634eb37, 0xffffd84fffffdf2b}, + {0x9634eb38, 0xffffd84fffffdf2c}, + {0x9634eb39, 0xffffd84fffffdf2d}, + {0x9634ec30, 0xffffd84fffffdf2e}, + {0x9634ec31, 0xffffd84fffffdf2f}, + {0x9634ec32, 0xffffd84fffffdf30}, + {0x9634ec33, 0xffffd84fffffdf31}, + {0x9634ec34, 0xffffd84fffffdf32}, + {0x9634ec35, 0xffffd84fffffdf33}, + {0x9634ec36, 0xffffd84fffffdf34}, + {0x9634ec37, 0xffffd84fffffdf35}, + {0x9634ec38, 0xffffd84fffffdf36}, + {0x9634ec39, 0xffffd84fffffdf37}, + {0x9634ed30, 0xffffd84fffffdf38}, + {0x9634ed31, 0xffffd84fffffdf39}, + {0x9634ed32, 0xffffd84fffffdf3a}, + {0x9634ed33, 0xffffd84fffffdf3b}, + {0x9634ed34, 0xffffd84fffffdf3c}, + {0x9634ed35, 0xffffd84fffffdf3d}, + {0x9634ed36, 0xffffd84fffffdf3e}, + {0x9634ed37, 0xffffd84fffffdf3f}, + {0x9634ed38, 0xffffd84fffffdf40}, + {0x9634ed39, 0xffffd84fffffdf41}, + {0x9634ee30, 0xffffd84fffffdf42}, + {0x9634ee31, 0xffffd84fffffdf43}, + {0x9634ee32, 0xffffd84fffffdf44}, + {0x9634ee33, 0xffffd84fffffdf45}, + {0x9634ee34, 0xffffd84fffffdf46}, + {0x9634ee35, 0xffffd84fffffdf47}, + {0x9634ee36, 0xffffd84fffffdf48}, + {0x9634ee37, 0xffffd84fffffdf49}, + {0x9634ee38, 0xffffd84fffffdf4a}, + {0x9634ee39, 0xffffd84fffffdf4b}, + {0x9634ef30, 0xffffd84fffffdf4c}, + {0x9634ef31, 0xffffd84fffffdf4d}, + {0x9634ef32, 0xffffd84fffffdf4e}, + {0x9634ef33, 0xffffd84fffffdf4f}, + {0x9634ef34, 0xffffd84fffffdf50}, + {0x9634ef35, 0xffffd84fffffdf51}, + {0x9634ef36, 0xffffd84fffffdf52}, + {0x9634ef37, 0xffffd84fffffdf53}, + {0x9634ef38, 0xffffd84fffffdf54}, + {0x9634ef39, 0xffffd84fffffdf55}, + {0x9634f030, 0xffffd84fffffdf56}, + {0x9634f031, 0xffffd84fffffdf57}, + {0x9634f032, 0xffffd84fffffdf58}, + {0x9634f033, 0xffffd84fffffdf59}, + {0x9634f034, 0xffffd84fffffdf5a}, + {0x9634f035, 0xffffd84fffffdf5b}, + {0x9634f036, 0xffffd84fffffdf5c}, + {0x9634f037, 0xffffd84fffffdf5d}, + {0x9634f038, 0xffffd84fffffdf5e}, + {0x9634f039, 0xffffd84fffffdf5f}, + {0x9634f130, 0xffffd84fffffdf60}, + {0x9634f131, 0xffffd84fffffdf61}, + {0x9634f132, 0xffffd84fffffdf62}, + {0x9634f133, 0xffffd84fffffdf63}, + {0x9634f134, 0xffffd84fffffdf64}, + {0x9634f135, 0xffffd84fffffdf65}, + {0x9634f136, 0xffffd84fffffdf66}, + {0x9634f137, 0xffffd84fffffdf67}, + {0x9634f138, 0xffffd84fffffdf68}, + {0x9634f139, 0xffffd84fffffdf69}, + {0x9634f230, 0xffffd84fffffdf6a}, + {0x9634f231, 0xffffd84fffffdf6b}, + {0x9634f232, 0xffffd84fffffdf6c}, + {0x9634f233, 0xffffd84fffffdf6d}, + {0x9634f234, 0xffffd84fffffdf6e}, + {0x9634f235, 0xffffd84fffffdf6f}, + {0x9634f236, 0xffffd84fffffdf70}, + {0x9634f237, 0xffffd84fffffdf71}, + {0x9634f238, 0xffffd84fffffdf72}, + {0x9634f239, 0xffffd84fffffdf73}, + {0x9634f330, 0xffffd84fffffdf74}, + {0x9634f331, 0xffffd84fffffdf75}, + {0x9634f332, 0xffffd84fffffdf76}, + {0x9634f333, 0xffffd84fffffdf77}, + {0x9634f334, 0xffffd84fffffdf78}, + {0x9634f335, 0xffffd84fffffdf79}, + {0x9634f336, 0xffffd84fffffdf7a}, + {0x9634f337, 0xffffd84fffffdf7b}, + {0x9634f338, 0xffffd84fffffdf7c}, + {0x9634f339, 0xffffd84fffffdf7d}, + {0x9634f430, 0xffffd84fffffdf7e}, + {0x9634f431, 0xffffd84fffffdf7f}, + {0x9634f432, 0xffffd84fffffdf80}, + {0x9634f433, 0xffffd84fffffdf81}, + {0x9634f434, 0xffffd84fffffdf82}, + {0x9634f435, 0xffffd84fffffdf83}, + {0x9634f436, 0xffffd84fffffdf84}, + {0x9634f437, 0xffffd84fffffdf85}, + {0x9634f438, 0xffffd84fffffdf86}, + {0x9634f439, 0xffffd84fffffdf87}, + {0x9634f530, 0xffffd84fffffdf88}, + {0x9634f531, 0xffffd84fffffdf89}, + {0x9634f532, 0xffffd84fffffdf8a}, + {0x9634f533, 0xffffd84fffffdf8b}, + {0x9634f534, 0xffffd84fffffdf8c}, + {0x9634f535, 0xffffd84fffffdf8d}, + {0x9634f536, 0xffffd84fffffdf8e}, + {0x9634f537, 0xffffd84fffffdf8f}, + {0x9634f538, 0xffffd84fffffdf90}, + {0x9634f539, 0xffffd84fffffdf91}, + {0x9634f630, 0xffffd84fffffdf92}, + {0x9634f631, 0xffffd84fffffdf93}, + {0x9634f632, 0xffffd84fffffdf94}, + {0x9634f633, 0xffffd84fffffdf95}, + {0x9634f634, 0xffffd84fffffdf96}, + {0x9634f635, 0xffffd84fffffdf97}, + {0x9634f636, 0xffffd84fffffdf98}, + {0x9634f637, 0xffffd84fffffdf99}, + {0x9634f638, 0xffffd84fffffdf9a}, + {0x9634f639, 0xffffd84fffffdf9b}, + {0x9634f730, 0xffffd84fffffdf9c}, + {0x9634f731, 0xffffd84fffffdf9d}, + {0x9634f732, 0xffffd84fffffdf9e}, + {0x9634f733, 0xffffd84fffffdf9f}, + {0x9634f734, 0xffffd84fffffdfa0}, + {0x9634f735, 0xffffd84fffffdfa1}, + {0x9634f736, 0xffffd84fffffdfa2}, + {0x9634f737, 0xffffd84fffffdfa3}, + {0x9634f738, 0xffffd84fffffdfa4}, + {0x9634f739, 0xffffd84fffffdfa5}, + {0x9634f830, 0xffffd84fffffdfa6}, + {0x9634f831, 0xffffd84fffffdfa7}, + {0x9634f832, 0xffffd84fffffdfa8}, + {0x9634f833, 0xffffd84fffffdfa9}, + {0x9634f834, 0xffffd84fffffdfaa}, + {0x9634f835, 0xffffd84fffffdfab}, + {0x9634f836, 0xffffd84fffffdfac}, + {0x9634f837, 0xffffd84fffffdfad}, + {0x9634f838, 0xffffd84fffffdfae}, + {0x9634f839, 0xffffd84fffffdfaf}, + {0x9634f930, 0xffffd84fffffdfb0}, + {0x9634f931, 0xffffd84fffffdfb1}, + {0x9634f932, 0xffffd84fffffdfb2}, + {0x9634f933, 0xffffd84fffffdfb3}, + {0x9634f934, 0xffffd84fffffdfb4}, + {0x9634f935, 0xffffd84fffffdfb5}, + {0x9634f936, 0xffffd84fffffdfb6}, + {0x9634f937, 0xffffd84fffffdfb7}, + {0x9634f938, 0xffffd84fffffdfb8}, + {0x9634f939, 0xffffd84fffffdfb9}, + {0x9634fa30, 0xffffd84fffffdfba}, + {0x9634fa31, 0xffffd84fffffdfbb}, + {0x9634fa32, 0xffffd84fffffdfbc}, + {0x9634fa33, 0xffffd84fffffdfbd}, + {0x9634fa34, 0xffffd84fffffdfbe}, + {0x9634fa35, 0xffffd84fffffdfbf}, + {0x9634fa36, 0xffffd84fffffdfc0}, + {0x9634fa37, 0xffffd84fffffdfc1}, + {0x9634fa38, 0xffffd84fffffdfc2}, + {0x9634fa39, 0xffffd84fffffdfc3}, + {0x9634fb30, 0xffffd84fffffdfc4}, + {0x9634fb31, 0xffffd84fffffdfc5}, + {0x9634fb32, 0xffffd84fffffdfc6}, + {0x9634fb33, 0xffffd84fffffdfc7}, + {0x9634fb34, 0xffffd84fffffdfc8}, + {0x9634fb35, 0xffffd84fffffdfc9}, + {0x9634fb36, 0xffffd84fffffdfca}, + {0x9634fb37, 0xffffd84fffffdfcb}, + {0x9634fb38, 0xffffd84fffffdfcc}, + {0x9634fb39, 0xffffd84fffffdfcd}, + {0x9634fc30, 0xffffd84fffffdfce}, + {0x9634fc31, 0xffffd84fffffdfcf}, + {0x9634fc32, 0xffffd84fffffdfd0}, + {0x9634fc33, 0xffffd84fffffdfd1}, + {0x9634fc34, 0xffffd84fffffdfd2}, + {0x9634fc35, 0xffffd84fffffdfd3}, + {0x9634fc36, 0xffffd84fffffdfd4}, + {0x9634fc37, 0xffffd84fffffdfd5}, + {0x9634fc38, 0xffffd84fffffdfd6}, + {0x9634fc39, 0xffffd84fffffdfd7}, + {0x9634fd30, 0xffffd84fffffdfd8}, + {0x9634fd31, 0xffffd84fffffdfd9}, + {0x9634fd32, 0xffffd84fffffdfda}, + {0x9634fd33, 0xffffd84fffffdfdb}, + {0x9634fd34, 0xffffd84fffffdfdc}, + {0x9634fd35, 0xffffd84fffffdfdd}, + {0x9634fd36, 0xffffd84fffffdfde}, + {0x9634fd37, 0xffffd84fffffdfdf}, + {0x9634fd38, 0xffffd84fffffdfe0}, + {0x9634fd39, 0xffffd84fffffdfe1}, + {0x9634fe30, 0xffffd84fffffdfe2}, + {0x9634fe31, 0xffffd84fffffdfe3}, + {0x9634fe32, 0xffffd84fffffdfe4}, + {0x9634fe33, 0xffffd84fffffdfe5}, + {0x9634fe34, 0xffffd84fffffdfe6}, + {0x9634fe35, 0xffffd84fffffdfe7}, + {0x9634fe36, 0xffffd84fffffdfe8}, + {0x9634fe37, 0xffffd84fffffdfe9}, + {0x9634fe38, 0xffffd84fffffdfea}, + {0x9634fe39, 0xffffd84fffffdfeb}, + {0x96358130, 0xffffd84fffffdfec}, + {0x96358131, 0xffffd84fffffdfed}, + {0x96358132, 0xffffd84fffffdfee}, + {0x96358133, 0xffffd84fffffdfef}, + {0x96358134, 0xffffd84fffffdff0}, + {0x96358135, 0xffffd84fffffdff1}, + {0x96358136, 0xffffd84fffffdff2}, + {0x96358137, 0xffffd84fffffdff3}, + {0x96358138, 0xffffd84fffffdff4}, + {0x96358139, 0xffffd84fffffdff5}, + {0x96358230, 0xffffd84fffffdff6}, + {0x96358231, 0xffffd84fffffdff7}, + {0x96358232, 0xffffd84fffffdff8}, + {0x96358233, 0xffffd84fffffdff9}, + {0x96358234, 0xffffd84fffffdffa}, + {0x96358235, 0xffffd84fffffdffb}, + {0x96358236, 0xffffd84fffffdffc}, + {0x96358237, 0xffffd84fffffdffd}, + {0x96358238, 0xffffd84fffffdffe}, + {0x96358239, 0xffffd84fffffdfff}, + {0x96358330, 0xffffd850ffffdc00}, + {0x96358331, 0xffffd850ffffdc01}, + {0x96358332, 0xffffd850ffffdc02}, + {0x96358333, 0xffffd850ffffdc03}, + {0x96358334, 0xffffd850ffffdc04}, + {0x96358335, 0xffffd850ffffdc05}, + {0x96358336, 0xffffd850ffffdc06}, + {0x96358337, 0xffffd850ffffdc07}, + {0x96358338, 0xffffd850ffffdc08}, + {0x96358339, 0xffffd850ffffdc09}, + {0x96358430, 0xffffd850ffffdc0a}, + {0x96358431, 0xffffd850ffffdc0b}, + {0x96358432, 0xffffd850ffffdc0c}, + {0x96358433, 0xffffd850ffffdc0d}, + {0x96358434, 0xffffd850ffffdc0e}, + {0x96358435, 0xffffd850ffffdc0f}, + {0x96358436, 0xffffd850ffffdc10}, + {0x96358437, 0xffffd850ffffdc11}, + {0x96358438, 0xffffd850ffffdc12}, + {0x96358439, 0xffffd850ffffdc13}, + {0x96358530, 0xffffd850ffffdc14}, + {0x96358531, 0xffffd850ffffdc15}, + {0x96358532, 0xffffd850ffffdc16}, + {0x96358533, 0xffffd850ffffdc17}, + {0x96358534, 0xffffd850ffffdc18}, + {0x96358535, 0xffffd850ffffdc19}, + {0x96358536, 0xffffd850ffffdc1a}, + {0x96358537, 0xffffd850ffffdc1b}, + {0x96358538, 0xffffd850ffffdc1c}, + {0x96358539, 0xffffd850ffffdc1d}, + {0x96358630, 0xffffd850ffffdc1e}, + {0x96358631, 0xffffd850ffffdc1f}, + {0x96358632, 0xffffd850ffffdc20}, + {0x96358633, 0xffffd850ffffdc21}, + {0x96358634, 0xffffd850ffffdc22}, + {0x96358635, 0xffffd850ffffdc23}, + {0x96358636, 0xffffd850ffffdc24}, + {0x96358637, 0xffffd850ffffdc25}, + {0x96358638, 0xffffd850ffffdc26}, + {0x96358639, 0xffffd850ffffdc27}, + {0x96358730, 0xffffd850ffffdc28}, + {0x96358731, 0xffffd850ffffdc29}, + {0x96358732, 0xffffd850ffffdc2a}, + {0x96358733, 0xffffd850ffffdc2b}, + {0x96358734, 0xffffd850ffffdc2c}, + {0x96358735, 0xffffd850ffffdc2d}, + {0x96358736, 0xffffd850ffffdc2e}, + {0x96358737, 0xffffd850ffffdc2f}, + {0x96358738, 0xffffd850ffffdc30}, + {0x96358739, 0xffffd850ffffdc31}, + {0x96358830, 0xffffd850ffffdc32}, + {0x96358831, 0xffffd850ffffdc33}, + {0x96358832, 0xffffd850ffffdc34}, + {0x96358833, 0xffffd850ffffdc35}, + {0x96358834, 0xffffd850ffffdc36}, + {0x96358835, 0xffffd850ffffdc37}, + {0x96358836, 0xffffd850ffffdc38}, + {0x96358837, 0xffffd850ffffdc39}, + {0x96358838, 0xffffd850ffffdc3a}, + {0x96358839, 0xffffd850ffffdc3b}, + {0x96358930, 0xffffd850ffffdc3c}, + {0x96358931, 0xffffd850ffffdc3d}, + {0x96358932, 0xffffd850ffffdc3e}, + {0x96358933, 0xffffd850ffffdc3f}, + {0x96358934, 0xffffd850ffffdc40}, + {0x96358935, 0xffffd850ffffdc41}, + {0x96358936, 0xffffd850ffffdc42}, + {0x96358937, 0xffffd850ffffdc43}, + {0x96358938, 0xffffd850ffffdc44}, + {0x96358939, 0xffffd850ffffdc45}, + {0x96358a30, 0xffffd850ffffdc46}, + {0x96358a31, 0xffffd850ffffdc47}, + {0x96358a32, 0xffffd850ffffdc48}, + {0x96358a33, 0xffffd850ffffdc49}, + {0x96358a34, 0xffffd850ffffdc4a}, + {0x96358a35, 0xffffd850ffffdc4b}, + {0x96358a36, 0xffffd850ffffdc4c}, + {0x96358a37, 0xffffd850ffffdc4d}, + {0x96358a38, 0xffffd850ffffdc4e}, + {0x96358a39, 0xffffd850ffffdc4f}, + {0x96358b30, 0xffffd850ffffdc50}, + {0x96358b31, 0xffffd850ffffdc51}, + {0x96358b32, 0xffffd850ffffdc52}, + {0x96358b33, 0xffffd850ffffdc53}, + {0x96358b34, 0xffffd850ffffdc54}, + {0x96358b35, 0xffffd850ffffdc55}, + {0x96358b36, 0xffffd850ffffdc56}, + {0x96358b37, 0xffffd850ffffdc57}, + {0x96358b38, 0xffffd850ffffdc58}, + {0x96358b39, 0xffffd850ffffdc59}, + {0x96358c30, 0xffffd850ffffdc5a}, + {0x96358c31, 0xffffd850ffffdc5b}, + {0x96358c32, 0xffffd850ffffdc5c}, + {0x96358c33, 0xffffd850ffffdc5d}, + {0x96358c34, 0xffffd850ffffdc5e}, + {0x96358c35, 0xffffd850ffffdc5f}, + {0x96358c36, 0xffffd850ffffdc60}, + {0x96358c37, 0xffffd850ffffdc61}, + {0x96358c38, 0xffffd850ffffdc62}, + {0x96358c39, 0xffffd850ffffdc63}, + {0x96358d30, 0xffffd850ffffdc64}, + {0x96358d31, 0xffffd850ffffdc65}, + {0x96358d32, 0xffffd850ffffdc66}, + {0x96358d33, 0xffffd850ffffdc67}, + {0x96358d34, 0xffffd850ffffdc68}, + {0x96358d35, 0xffffd850ffffdc69}, + {0x96358d36, 0xffffd850ffffdc6a}, + {0x96358d37, 0xffffd850ffffdc6b}, + {0x96358d38, 0xffffd850ffffdc6c}, + {0x96358d39, 0xffffd850ffffdc6d}, + {0x96358e30, 0xffffd850ffffdc6e}, + {0x96358e31, 0xffffd850ffffdc6f}, + {0x96358e32, 0xffffd850ffffdc70}, + {0x96358e33, 0xffffd850ffffdc71}, + {0x96358e34, 0xffffd850ffffdc72}, + {0x96358e35, 0xffffd850ffffdc73}, + {0x96358e36, 0xffffd850ffffdc74}, + {0x96358e37, 0xffffd850ffffdc75}, + {0x96358e38, 0xffffd850ffffdc76}, + {0x96358e39, 0xffffd850ffffdc77}, + {0x96358f30, 0xffffd850ffffdc78}, + {0x96358f31, 0xffffd850ffffdc79}, + {0x96358f32, 0xffffd850ffffdc7a}, + {0x96358f33, 0xffffd850ffffdc7b}, + {0x96358f34, 0xffffd850ffffdc7c}, + {0x96358f35, 0xffffd850ffffdc7d}, + {0x96358f36, 0xffffd850ffffdc7e}, + {0x96358f37, 0xffffd850ffffdc7f}, + {0x96358f38, 0xffffd850ffffdc80}, + {0x96358f39, 0xffffd850ffffdc81}, + {0x96359030, 0xffffd850ffffdc82}, + {0x96359031, 0xffffd850ffffdc83}, + {0x96359032, 0xffffd850ffffdc84}, + {0x96359033, 0xffffd850ffffdc85}, + {0x96359034, 0xffffd850ffffdc86}, + {0x96359035, 0xffffd850ffffdc87}, + {0x96359036, 0xffffd850ffffdc88}, + {0x96359037, 0xffffd850ffffdc89}, + {0x96359038, 0xffffd850ffffdc8a}, + {0x96359039, 0xffffd850ffffdc8b}, + {0x96359130, 0xffffd850ffffdc8c}, + {0x96359131, 0xffffd850ffffdc8d}, + {0x96359132, 0xffffd850ffffdc8e}, + {0x96359133, 0xffffd850ffffdc8f}, + {0x96359134, 0xffffd850ffffdc90}, + {0x96359135, 0xffffd850ffffdc91}, + {0x96359136, 0xffffd850ffffdc92}, + {0x96359137, 0xffffd850ffffdc93}, + {0x96359138, 0xffffd850ffffdc94}, + {0x96359139, 0xffffd850ffffdc95}, + {0x96359230, 0xffffd850ffffdc96}, + {0x96359231, 0xffffd850ffffdc97}, + {0x96359232, 0xffffd850ffffdc98}, + {0x96359233, 0xffffd850ffffdc99}, + {0x96359234, 0xffffd850ffffdc9a}, + {0x96359235, 0xffffd850ffffdc9b}, + {0x96359236, 0xffffd850ffffdc9c}, + {0x96359237, 0xffffd850ffffdc9d}, + {0x96359238, 0xffffd850ffffdc9e}, + {0x96359239, 0xffffd850ffffdc9f}, + {0x96359330, 0xffffd850ffffdca0}, + {0x96359331, 0xffffd850ffffdca1}, + {0x96359332, 0xffffd850ffffdca2}, + {0x96359333, 0xffffd850ffffdca3}, + {0x96359334, 0xffffd850ffffdca4}, + {0x96359335, 0xffffd850ffffdca5}, + {0x96359336, 0xffffd850ffffdca6}, + {0x96359337, 0xffffd850ffffdca7}, + {0x96359338, 0xffffd850ffffdca8}, + {0x96359339, 0xffffd850ffffdca9}, + {0x96359430, 0xffffd850ffffdcaa}, + {0x96359431, 0xffffd850ffffdcab}, + {0x96359432, 0xffffd850ffffdcac}, + {0x96359433, 0xffffd850ffffdcad}, + {0x96359434, 0xffffd850ffffdcae}, + {0x96359435, 0xffffd850ffffdcaf}, + {0x96359436, 0xffffd850ffffdcb0}, + {0x96359437, 0xffffd850ffffdcb1}, + {0x96359438, 0xffffd850ffffdcb2}, + {0x96359439, 0xffffd850ffffdcb3}, + {0x96359530, 0xffffd850ffffdcb4}, + {0x96359531, 0xffffd850ffffdcb5}, + {0x96359532, 0xffffd850ffffdcb6}, + {0x96359533, 0xffffd850ffffdcb7}, + {0x96359534, 0xffffd850ffffdcb8}, + {0x96359535, 0xffffd850ffffdcb9}, + {0x96359536, 0xffffd850ffffdcba}, + {0x96359537, 0xffffd850ffffdcbb}, + {0x96359538, 0xffffd850ffffdcbc}, + {0x96359539, 0xffffd850ffffdcbd}, + {0x96359630, 0xffffd850ffffdcbe}, + {0x96359631, 0xffffd850ffffdcbf}, + {0x96359632, 0xffffd850ffffdcc0}, + {0x96359633, 0xffffd850ffffdcc1}, + {0x96359634, 0xffffd850ffffdcc2}, + {0x96359635, 0xffffd850ffffdcc3}, + {0x96359636, 0xffffd850ffffdcc4}, + {0x96359637, 0xffffd850ffffdcc5}, + {0x96359638, 0xffffd850ffffdcc6}, + {0x96359639, 0xffffd850ffffdcc7}, + {0x96359730, 0xffffd850ffffdcc8}, + {0x96359731, 0xffffd850ffffdcc9}, + {0x96359732, 0xffffd850ffffdcca}, + {0x96359733, 0xffffd850ffffdccb}, + {0x96359734, 0xffffd850ffffdccc}, + {0x96359735, 0xffffd850ffffdccd}, + {0x96359736, 0xffffd850ffffdcce}, + {0x96359737, 0xffffd850ffffdccf}, + {0x96359738, 0xffffd850ffffdcd0}, + {0x96359739, 0xffffd850ffffdcd1}, + {0x96359830, 0xffffd850ffffdcd2}, + {0x96359831, 0xffffd850ffffdcd3}, + {0x96359832, 0xffffd850ffffdcd4}, + {0x96359833, 0xffffd850ffffdcd5}, + {0x96359834, 0xffffd850ffffdcd6}, + {0x96359835, 0xffffd850ffffdcd7}, + {0x96359836, 0xffffd850ffffdcd8}, + {0x96359837, 0xffffd850ffffdcd9}, + {0x96359838, 0xffffd850ffffdcda}, + {0x96359839, 0xffffd850ffffdcdb}, + {0x96359930, 0xffffd850ffffdcdc}, + {0x96359931, 0xffffd850ffffdcdd}, + {0x96359932, 0xffffd850ffffdcde}, + {0x96359933, 0xffffd850ffffdcdf}, + {0x96359934, 0xffffd850ffffdce0}, + {0x96359935, 0xffffd850ffffdce1}, + {0x96359936, 0xffffd850ffffdce2}, + {0x96359937, 0xffffd850ffffdce3}, + {0x96359938, 0xffffd850ffffdce4}, + {0x96359939, 0xffffd850ffffdce5}, + {0x96359a30, 0xffffd850ffffdce6}, + {0x96359a31, 0xffffd850ffffdce7}, + {0x96359a32, 0xffffd850ffffdce8}, + {0x96359a33, 0xffffd850ffffdce9}, + {0x96359a34, 0xffffd850ffffdcea}, + {0x96359a35, 0xffffd850ffffdceb}, + {0x96359a36, 0xffffd850ffffdcec}, + {0x96359a37, 0xffffd850ffffdced}, + {0x96359a38, 0xffffd850ffffdcee}, + {0x96359a39, 0xffffd850ffffdcef}, + {0x96359b30, 0xffffd850ffffdcf0}, + {0x96359b31, 0xffffd850ffffdcf1}, + {0x96359b32, 0xffffd850ffffdcf2}, + {0x96359b33, 0xffffd850ffffdcf3}, + {0x96359b34, 0xffffd850ffffdcf4}, + {0x96359b35, 0xffffd850ffffdcf5}, + {0x96359b36, 0xffffd850ffffdcf6}, + {0x96359b37, 0xffffd850ffffdcf7}, + {0x96359b38, 0xffffd850ffffdcf8}, + {0x96359b39, 0xffffd850ffffdcf9}, + {0x96359c30, 0xffffd850ffffdcfa}, + {0x96359c31, 0xffffd850ffffdcfb}, + {0x96359c32, 0xffffd850ffffdcfc}, + {0x96359c33, 0xffffd850ffffdcfd}, + {0x96359c34, 0xffffd850ffffdcfe}, + {0x96359c35, 0xffffd850ffffdcff}, + {0x96359c36, 0xffffd850ffffdd00}, + {0x96359c37, 0xffffd850ffffdd01}, + {0x96359c38, 0xffffd850ffffdd02}, + {0x96359c39, 0xffffd850ffffdd03}, + {0x96359d30, 0xffffd850ffffdd04}, + {0x96359d31, 0xffffd850ffffdd05}, + {0x96359d32, 0xffffd850ffffdd06}, + {0x96359d33, 0xffffd850ffffdd07}, + {0x96359d34, 0xffffd850ffffdd08}, + {0x96359d35, 0xffffd850ffffdd09}, + {0x96359d36, 0xffffd850ffffdd0a}, + {0x96359d37, 0xffffd850ffffdd0b}, + {0x96359d38, 0xffffd850ffffdd0c}, + {0x96359d39, 0xffffd850ffffdd0d}, + {0x96359e30, 0xffffd850ffffdd0e}, + {0x96359e31, 0xffffd850ffffdd0f}, + {0x96359e32, 0xffffd850ffffdd10}, + {0x96359e33, 0xffffd850ffffdd11}, + {0x96359e34, 0xffffd850ffffdd12}, + {0x96359e35, 0xffffd850ffffdd13}, + {0x96359e36, 0xffffd850ffffdd14}, + {0x96359e37, 0xffffd850ffffdd15}, + {0x96359e38, 0xffffd850ffffdd16}, + {0x96359e39, 0xffffd850ffffdd17}, + {0x96359f30, 0xffffd850ffffdd18}, + {0x96359f31, 0xffffd850ffffdd19}, + {0x96359f32, 0xffffd850ffffdd1a}, + {0x96359f33, 0xffffd850ffffdd1b}, + {0x96359f34, 0xffffd850ffffdd1c}, + {0x96359f35, 0xffffd850ffffdd1d}, + {0x96359f36, 0xffffd850ffffdd1e}, + {0x96359f37, 0xffffd850ffffdd1f}, + {0x96359f38, 0xffffd850ffffdd20}, + {0x96359f39, 0xffffd850ffffdd21}, + {0x9635a030, 0xffffd850ffffdd22}, + {0x9635a031, 0xffffd850ffffdd23}, + {0x9635a032, 0xffffd850ffffdd24}, + {0x9635a033, 0xffffd850ffffdd25}, + {0x9635a034, 0xffffd850ffffdd26}, + {0x9635a035, 0xffffd850ffffdd27}, + {0x9635a036, 0xffffd850ffffdd28}, + {0x9635a037, 0xffffd850ffffdd29}, + {0x9635a038, 0xffffd850ffffdd2a}, + {0x9635a039, 0xffffd850ffffdd2b}, + {0x9635a130, 0xffffd850ffffdd2c}, + {0x9635a131, 0xffffd850ffffdd2d}, + {0x9635a132, 0xffffd850ffffdd2e}, + {0x9635a133, 0xffffd850ffffdd2f}, + {0x9635a134, 0xffffd850ffffdd30}, + {0x9635a135, 0xffffd850ffffdd31}, + {0x9635a136, 0xffffd850ffffdd32}, + {0x9635a137, 0xffffd850ffffdd33}, + {0x9635a138, 0xffffd850ffffdd34}, + {0x9635a139, 0xffffd850ffffdd35}, + {0x9635a230, 0xffffd850ffffdd36}, + {0x9635a231, 0xffffd850ffffdd37}, + {0x9635a232, 0xffffd850ffffdd38}, + {0x9635a233, 0xffffd850ffffdd39}, + {0x9635a234, 0xffffd850ffffdd3a}, + {0x9635a235, 0xffffd850ffffdd3b}, + {0x9635a236, 0xffffd850ffffdd3c}, + {0x9635a237, 0xffffd850ffffdd3d}, + {0x9635a238, 0xffffd850ffffdd3e}, + {0x9635a239, 0xffffd850ffffdd3f}, + {0x9635a330, 0xffffd850ffffdd40}, + {0x9635a331, 0xffffd850ffffdd41}, + {0x9635a332, 0xffffd850ffffdd42}, + {0x9635a333, 0xffffd850ffffdd43}, + {0x9635a334, 0xffffd850ffffdd44}, + {0x9635a335, 0xffffd850ffffdd45}, + {0x9635a336, 0xffffd850ffffdd46}, + {0x9635a337, 0xffffd850ffffdd47}, + {0x9635a338, 0xffffd850ffffdd48}, + {0x9635a339, 0xffffd850ffffdd49}, + {0x9635a430, 0xffffd850ffffdd4a}, + {0x9635a431, 0xffffd850ffffdd4b}, + {0x9635a432, 0xffffd850ffffdd4c}, + {0x9635a433, 0xffffd850ffffdd4d}, + {0x9635a434, 0xffffd850ffffdd4e}, + {0x9635a435, 0xffffd850ffffdd4f}, + {0x9635a436, 0xffffd850ffffdd50}, + {0x9635a437, 0xffffd850ffffdd51}, + {0x9635a438, 0xffffd850ffffdd52}, + {0x9635a439, 0xffffd850ffffdd53}, + {0x9635a530, 0xffffd850ffffdd54}, + {0x9635a531, 0xffffd850ffffdd55}, + {0x9635a532, 0xffffd850ffffdd56}, + {0x9635a533, 0xffffd850ffffdd57}, + {0x9635a534, 0xffffd850ffffdd58}, + {0x9635a535, 0xffffd850ffffdd59}, + {0x9635a536, 0xffffd850ffffdd5a}, + {0x9635a537, 0xffffd850ffffdd5b}, + {0x9635a538, 0xffffd850ffffdd5c}, + {0x9635a539, 0xffffd850ffffdd5d}, + {0x9635a630, 0xffffd850ffffdd5e}, + {0x9635a631, 0xffffd850ffffdd5f}, + {0x9635a632, 0xffffd850ffffdd60}, + {0x9635a633, 0xffffd850ffffdd61}, + {0x9635a634, 0xffffd850ffffdd62}, + {0x9635a635, 0xffffd850ffffdd63}, + {0x9635a636, 0xffffd850ffffdd64}, + {0x9635a637, 0xffffd850ffffdd65}, + {0x9635a638, 0xffffd850ffffdd66}, + {0x9635a639, 0xffffd850ffffdd67}, + {0x9635a730, 0xffffd850ffffdd68}, + {0x9635a731, 0xffffd850ffffdd69}, + {0x9635a732, 0xffffd850ffffdd6a}, + {0x9635a733, 0xffffd850ffffdd6b}, + {0x9635a734, 0xffffd850ffffdd6c}, + {0x9635a735, 0xffffd850ffffdd6d}, + {0x9635a736, 0xffffd850ffffdd6e}, + {0x9635a737, 0xffffd850ffffdd6f}, + {0x9635a738, 0xffffd850ffffdd70}, + {0x9635a739, 0xffffd850ffffdd71}, + {0x9635a830, 0xffffd850ffffdd72}, + {0x9635a831, 0xffffd850ffffdd73}, + {0x9635a832, 0xffffd850ffffdd74}, + {0x9635a833, 0xffffd850ffffdd75}, + {0x9635a834, 0xffffd850ffffdd76}, + {0x9635a835, 0xffffd850ffffdd77}, + {0x9635a836, 0xffffd850ffffdd78}, + {0x9635a837, 0xffffd850ffffdd79}, + {0x9635a838, 0xffffd850ffffdd7a}, + {0x9635a839, 0xffffd850ffffdd7b}, + {0x9635a930, 0xffffd850ffffdd7c}, + {0x9635a931, 0xffffd850ffffdd7d}, + {0x9635a932, 0xffffd850ffffdd7e}, + {0x9635a933, 0xffffd850ffffdd7f}, + {0x9635a934, 0xffffd850ffffdd80}, + {0x9635a935, 0xffffd850ffffdd81}, + {0x9635a936, 0xffffd850ffffdd82}, + {0x9635a937, 0xffffd850ffffdd83}, + {0x9635a938, 0xffffd850ffffdd84}, + {0x9635a939, 0xffffd850ffffdd85}, + {0x9635aa30, 0xffffd850ffffdd86}, + {0x9635aa31, 0xffffd850ffffdd87}, + {0x9635aa32, 0xffffd850ffffdd88}, + {0x9635aa33, 0xffffd850ffffdd89}, + {0x9635aa34, 0xffffd850ffffdd8a}, + {0x9635aa35, 0xffffd850ffffdd8b}, + {0x9635aa36, 0xffffd850ffffdd8c}, + {0x9635aa37, 0xffffd850ffffdd8d}, + {0x9635aa38, 0xffffd850ffffdd8e}, + {0x9635aa39, 0xffffd850ffffdd8f}, + {0x9635ab30, 0xffffd850ffffdd90}, + {0x9635ab31, 0xffffd850ffffdd91}, + {0x9635ab32, 0xffffd850ffffdd92}, + {0x9635ab33, 0xffffd850ffffdd93}, + {0x9635ab34, 0xffffd850ffffdd94}, + {0x9635ab35, 0xffffd850ffffdd95}, + {0x9635ab36, 0xffffd850ffffdd96}, + {0x9635ab37, 0xffffd850ffffdd97}, + {0x9635ab38, 0xffffd850ffffdd98}, + {0x9635ab39, 0xffffd850ffffdd99}, + {0x9635ac30, 0xffffd850ffffdd9a}, + {0x9635ac31, 0xffffd850ffffdd9b}, + {0x9635ac32, 0xffffd850ffffdd9c}, + {0x9635ac33, 0xffffd850ffffdd9d}, + {0x9635ac34, 0xffffd850ffffdd9e}, + {0x9635ac35, 0xffffd850ffffdd9f}, + {0x9635ac36, 0xffffd850ffffdda0}, + {0x9635ac37, 0xffffd850ffffdda1}, + {0x9635ac38, 0xffffd850ffffdda2}, + {0x9635ac39, 0xffffd850ffffdda3}, + {0x9635ad30, 0xffffd850ffffdda4}, + {0x9635ad31, 0xffffd850ffffdda5}, + {0x9635ad32, 0xffffd850ffffdda6}, + {0x9635ad33, 0xffffd850ffffdda7}, + {0x9635ad34, 0xffffd850ffffdda8}, + {0x9635ad35, 0xffffd850ffffdda9}, + {0x9635ad36, 0xffffd850ffffddaa}, + {0x9635ad37, 0xffffd850ffffddab}, + {0x9635ad38, 0xffffd850ffffddac}, + {0x9635ad39, 0xffffd850ffffddad}, + {0x9635ae30, 0xffffd850ffffddae}, + {0x9635ae31, 0xffffd850ffffddaf}, + {0x9635ae32, 0xffffd850ffffddb0}, + {0x9635ae33, 0xffffd850ffffddb1}, + {0x9635ae34, 0xffffd850ffffddb2}, + {0x9635ae35, 0xffffd850ffffddb3}, + {0x9635ae36, 0xffffd850ffffddb4}, + {0x9635ae37, 0xffffd850ffffddb5}, + {0x9635ae38, 0xffffd850ffffddb6}, + {0x9635ae39, 0xffffd850ffffddb7}, + {0x9635af30, 0xffffd850ffffddb8}, + {0x9635af31, 0xffffd850ffffddb9}, + {0x9635af32, 0xffffd850ffffddba}, + {0x9635af33, 0xffffd850ffffddbb}, + {0x9635af34, 0xffffd850ffffddbc}, + {0x9635af35, 0xffffd850ffffddbd}, + {0x9635af36, 0xffffd850ffffddbe}, + {0x9635af37, 0xffffd850ffffddbf}, + {0x9635af38, 0xffffd850ffffddc0}, + {0x9635af39, 0xffffd850ffffddc1}, + {0x9635b030, 0xffffd850ffffddc2}, + {0x9635b031, 0xffffd850ffffddc3}, + {0x9635b032, 0xffffd850ffffddc4}, + {0x9635b033, 0xffffd850ffffddc5}, + {0x9635b034, 0xffffd850ffffddc6}, + {0x9635b035, 0xffffd850ffffddc7}, + {0x9635b036, 0xffffd850ffffddc8}, + {0x9635b037, 0xffffd850ffffddc9}, + {0x9635b038, 0xffffd850ffffddca}, + {0x9635b039, 0xffffd850ffffddcb}, + {0x9635b130, 0xffffd850ffffddcc}, + {0x9635b131, 0xffffd850ffffddcd}, + {0x9635b132, 0xffffd850ffffddce}, + {0x9635b133, 0xffffd850ffffddcf}, + {0x9635b134, 0xffffd850ffffddd0}, + {0x9635b135, 0xffffd850ffffddd1}, + {0x9635b136, 0xffffd850ffffddd2}, + {0x9635b137, 0xffffd850ffffddd3}, + {0x9635b138, 0xffffd850ffffddd4}, + {0x9635b139, 0xffffd850ffffddd5}, + {0x9635b230, 0xffffd850ffffddd6}, + {0x9635b231, 0xffffd850ffffddd7}, + {0x9635b232, 0xffffd850ffffddd8}, + {0x9635b233, 0xffffd850ffffddd9}, + {0x9635b234, 0xffffd850ffffddda}, + {0x9635b235, 0xffffd850ffffdddb}, + {0x9635b236, 0xffffd850ffffdddc}, + {0x9635b237, 0xffffd850ffffdddd}, + {0x9635b238, 0xffffd850ffffddde}, + {0x9635b239, 0xffffd850ffffdddf}, + {0x9635b330, 0xffffd850ffffdde0}, + {0x9635b331, 0xffffd850ffffdde1}, + {0x9635b332, 0xffffd850ffffdde2}, + {0x9635b333, 0xffffd850ffffdde3}, + {0x9635b334, 0xffffd850ffffdde4}, + {0x9635b335, 0xffffd850ffffdde5}, + {0x9635b336, 0xffffd850ffffdde6}, + {0x9635b337, 0xffffd850ffffdde7}, + {0x9635b338, 0xffffd850ffffdde8}, + {0x9635b339, 0xffffd850ffffdde9}, + {0x9635b430, 0xffffd850ffffddea}, + {0x9635b431, 0xffffd850ffffddeb}, + {0x9635b432, 0xffffd850ffffddec}, + {0x9635b433, 0xffffd850ffffdded}, + {0x9635b434, 0xffffd850ffffddee}, + {0x9635b435, 0xffffd850ffffddef}, + {0x9635b436, 0xffffd850ffffddf0}, + {0x9635b437, 0xffffd850ffffddf1}, + {0x9635b438, 0xffffd850ffffddf2}, + {0x9635b439, 0xffffd850ffffddf3}, + {0x9635b530, 0xffffd850ffffddf4}, + {0x9635b531, 0xffffd850ffffddf5}, + {0x9635b532, 0xffffd850ffffddf6}, + {0x9635b533, 0xffffd850ffffddf7}, + {0x9635b534, 0xffffd850ffffddf8}, + {0x9635b535, 0xffffd850ffffddf9}, + {0x9635b536, 0xffffd850ffffddfa}, + {0x9635b537, 0xffffd850ffffddfb}, + {0x9635b538, 0xffffd850ffffddfc}, + {0x9635b539, 0xffffd850ffffddfd}, + {0x9635b630, 0xffffd850ffffddfe}, + {0x9635b631, 0xffffd850ffffddff}, + {0x9635b632, 0xffffd850ffffde00}, + {0x9635b633, 0xffffd850ffffde01}, + {0x9635b634, 0xffffd850ffffde02}, + {0x9635b635, 0xffffd850ffffde03}, + {0x9635b636, 0xffffd850ffffde04}, + {0x9635b637, 0xffffd850ffffde05}, + {0x9635b638, 0xffffd850ffffde06}, + {0x9635b639, 0xffffd850ffffde07}, + {0x9635b730, 0xffffd850ffffde08}, + {0x9635b731, 0xffffd850ffffde09}, + {0x9635b732, 0xffffd850ffffde0a}, + {0x9635b733, 0xffffd850ffffde0b}, + {0x9635b734, 0xffffd850ffffde0c}, + {0x9635b735, 0xffffd850ffffde0d}, + {0x9635b736, 0xffffd850ffffde0e}, + {0x9635b737, 0xffffd850ffffde0f}, + {0x9635b738, 0xffffd850ffffde10}, + {0x9635b739, 0xffffd850ffffde11}, + {0x9635b830, 0xffffd850ffffde12}, + {0x9635b831, 0xffffd850ffffde13}, + {0x9635b832, 0xffffd850ffffde14}, + {0x9635b833, 0xffffd850ffffde15}, + {0x9635b834, 0xffffd850ffffde16}, + {0x9635b835, 0xffffd850ffffde17}, + {0x9635b836, 0xffffd850ffffde18}, + {0x9635b837, 0xffffd850ffffde19}, + {0x9635b838, 0xffffd850ffffde1a}, + {0x9635b839, 0xffffd850ffffde1b}, + {0x9635b930, 0xffffd850ffffde1c}, + {0x9635b931, 0xffffd850ffffde1d}, + {0x9635b932, 0xffffd850ffffde1e}, + {0x9635b933, 0xffffd850ffffde1f}, + {0x9635b934, 0xffffd850ffffde20}, + {0x9635b935, 0xffffd850ffffde21}, + {0x9635b936, 0xffffd850ffffde22}, + {0x9635b937, 0xffffd850ffffde23}, + {0x9635b938, 0xffffd850ffffde24}, + {0x9635b939, 0xffffd850ffffde25}, + {0x9635ba30, 0xffffd850ffffde26}, + {0x9635ba31, 0xffffd850ffffde27}, + {0x9635ba32, 0xffffd850ffffde28}, + {0x9635ba33, 0xffffd850ffffde29}, + {0x9635ba34, 0xffffd850ffffde2a}, + {0x9635ba35, 0xffffd850ffffde2b}, + {0x9635ba36, 0xffffd850ffffde2c}, + {0x9635ba37, 0xffffd850ffffde2d}, + {0x9635ba38, 0xffffd850ffffde2e}, + {0x9635ba39, 0xffffd850ffffde2f}, + {0x9635bb30, 0xffffd850ffffde30}, + {0x9635bb31, 0xffffd850ffffde31}, + {0x9635bb32, 0xffffd850ffffde32}, + {0x9635bb33, 0xffffd850ffffde33}, + {0x9635bb34, 0xffffd850ffffde34}, + {0x9635bb35, 0xffffd850ffffde35}, + {0x9635bb36, 0xffffd850ffffde36}, + {0x9635bb37, 0xffffd850ffffde37}, + {0x9635bb38, 0xffffd850ffffde38}, + {0x9635bb39, 0xffffd850ffffde39}, + {0x9635bc30, 0xffffd850ffffde3a}, + {0x9635bc31, 0xffffd850ffffde3b}, + {0x9635bc32, 0xffffd850ffffde3c}, + {0x9635bc33, 0xffffd850ffffde3d}, + {0x9635bc34, 0xffffd850ffffde3e}, + {0x9635bc35, 0xffffd850ffffde3f}, + {0x9635bc36, 0xffffd850ffffde40}, + {0x9635bc37, 0xffffd850ffffde41}, + {0x9635bc38, 0xffffd850ffffde42}, + {0x9635bc39, 0xffffd850ffffde43}, + {0x9635bd30, 0xffffd850ffffde44}, + {0x9635bd31, 0xffffd850ffffde45}, + {0x9635bd32, 0xffffd850ffffde46}, + {0x9635bd33, 0xffffd850ffffde47}, + {0x9635bd34, 0xffffd850ffffde48}, + {0x9635bd35, 0xffffd850ffffde49}, + {0x9635bd36, 0xffffd850ffffde4a}, + {0x9635bd37, 0xffffd850ffffde4b}, + {0x9635bd38, 0xffffd850ffffde4c}, + {0x9635bd39, 0xffffd850ffffde4d}, + {0x9635be30, 0xffffd850ffffde4e}, + {0x9635be31, 0xffffd850ffffde4f}, + {0x9635be32, 0xffffd850ffffde50}, + {0x9635be33, 0xffffd850ffffde51}, + {0x9635be34, 0xffffd850ffffde52}, + {0x9635be35, 0xffffd850ffffde53}, + {0x9635be36, 0xffffd850ffffde54}, + {0x9635be37, 0xffffd850ffffde55}, + {0x9635be38, 0xffffd850ffffde56}, + {0x9635be39, 0xffffd850ffffde57}, + {0x9635bf30, 0xffffd850ffffde58}, + {0x9635bf31, 0xffffd850ffffde59}, + {0x9635bf32, 0xffffd850ffffde5a}, + {0x9635bf33, 0xffffd850ffffde5b}, + {0x9635bf34, 0xffffd850ffffde5c}, + {0x9635bf35, 0xffffd850ffffde5d}, + {0x9635bf36, 0xffffd850ffffde5e}, + {0x9635bf37, 0xffffd850ffffde5f}, + {0x9635bf38, 0xffffd850ffffde60}, + {0x9635bf39, 0xffffd850ffffde61}, + {0x9635c030, 0xffffd850ffffde62}, + {0x9635c031, 0xffffd850ffffde63}, + {0x9635c032, 0xffffd850ffffde64}, + {0x9635c033, 0xffffd850ffffde65}, + {0x9635c034, 0xffffd850ffffde66}, + {0x9635c035, 0xffffd850ffffde67}, + {0x9635c036, 0xffffd850ffffde68}, + {0x9635c037, 0xffffd850ffffde69}, + {0x9635c038, 0xffffd850ffffde6a}, + {0x9635c039, 0xffffd850ffffde6b}, + {0x9635c130, 0xffffd850ffffde6c}, + {0x9635c131, 0xffffd850ffffde6d}, + {0x9635c132, 0xffffd850ffffde6e}, + {0x9635c133, 0xffffd850ffffde6f}, + {0x9635c134, 0xffffd850ffffde70}, + {0x9635c135, 0xffffd850ffffde71}, + {0x9635c136, 0xffffd850ffffde72}, + {0x9635c137, 0xffffd850ffffde73}, + {0x9635c138, 0xffffd850ffffde74}, + {0x9635c139, 0xffffd850ffffde75}, + {0x9635c230, 0xffffd850ffffde76}, + {0x9635c231, 0xffffd850ffffde77}, + {0x9635c232, 0xffffd850ffffde78}, + {0x9635c233, 0xffffd850ffffde79}, + {0x9635c234, 0xffffd850ffffde7a}, + {0x9635c235, 0xffffd850ffffde7b}, + {0x9635c236, 0xffffd850ffffde7c}, + {0x9635c237, 0xffffd850ffffde7d}, + {0x9635c238, 0xffffd850ffffde7e}, + {0x9635c239, 0xffffd850ffffde7f}, + {0x9635c330, 0xffffd850ffffde80}, + {0x9635c331, 0xffffd850ffffde81}, + {0x9635c332, 0xffffd850ffffde82}, + {0x9635c333, 0xffffd850ffffde83}, + {0x9635c334, 0xffffd850ffffde84}, + {0x9635c335, 0xffffd850ffffde85}, + {0x9635c336, 0xffffd850ffffde86}, + {0x9635c337, 0xffffd850ffffde87}, + {0x9635c338, 0xffffd850ffffde88}, + {0x9635c339, 0xffffd850ffffde89}, + {0x9635c430, 0xffffd850ffffde8a}, + {0x9635c431, 0xffffd850ffffde8b}, + {0x9635c432, 0xffffd850ffffde8c}, + {0x9635c433, 0xffffd850ffffde8d}, + {0x9635c434, 0xffffd850ffffde8e}, + {0x9635c435, 0xffffd850ffffde8f}, + {0x9635c436, 0xffffd850ffffde90}, + {0x9635c437, 0xffffd850ffffde91}, + {0x9635c438, 0xffffd850ffffde92}, + {0x9635c439, 0xffffd850ffffde93}, + {0x9635c530, 0xffffd850ffffde94}, + {0x9635c531, 0xffffd850ffffde95}, + {0x9635c532, 0xffffd850ffffde96}, + {0x9635c533, 0xffffd850ffffde97}, + {0x9635c534, 0xffffd850ffffde98}, + {0x9635c535, 0xffffd850ffffde99}, + {0x9635c536, 0xffffd850ffffde9a}, + {0x9635c537, 0xffffd850ffffde9b}, + {0x9635c538, 0xffffd850ffffde9c}, + {0x9635c539, 0xffffd850ffffde9d}, + {0x9635c630, 0xffffd850ffffde9e}, + {0x9635c631, 0xffffd850ffffde9f}, + {0x9635c632, 0xffffd850ffffdea0}, + {0x9635c633, 0xffffd850ffffdea1}, + {0x9635c634, 0xffffd850ffffdea2}, + {0x9635c635, 0xffffd850ffffdea3}, + {0x9635c636, 0xffffd850ffffdea4}, + {0x9635c637, 0xffffd850ffffdea5}, + {0x9635c638, 0xffffd850ffffdea6}, + {0x9635c639, 0xffffd850ffffdea7}, + {0x9635c730, 0xffffd850ffffdea8}, + {0x9635c731, 0xffffd850ffffdea9}, + {0x9635c732, 0xffffd850ffffdeaa}, + {0x9635c733, 0xffffd850ffffdeab}, + {0x9635c734, 0xffffd850ffffdeac}, + {0x9635c735, 0xffffd850ffffdead}, + {0x9635c736, 0xffffd850ffffdeae}, + {0x9635c737, 0xffffd850ffffdeaf}, + {0x9635c738, 0xffffd850ffffdeb0}, + {0x9635c739, 0xffffd850ffffdeb1}, + {0x9635c830, 0xffffd850ffffdeb2}, + {0x9635c831, 0xffffd850ffffdeb3}, + {0x9635c832, 0xffffd850ffffdeb4}, + {0x9635c833, 0xffffd850ffffdeb5}, + {0x9635c834, 0xffffd850ffffdeb6}, + {0x9635c835, 0xffffd850ffffdeb7}, + {0x9635c836, 0xffffd850ffffdeb8}, + {0x9635c837, 0xffffd850ffffdeb9}, + {0x9635c838, 0xffffd850ffffdeba}, + {0x9635c839, 0xffffd850ffffdebb}, + {0x9635c930, 0xffffd850ffffdebc}, + {0x9635c931, 0xffffd850ffffdebd}, + {0x9635c932, 0xffffd850ffffdebe}, + {0x9635c933, 0xffffd850ffffdebf}, + {0x9635c934, 0xffffd850ffffdec0}, + {0x9635c935, 0xffffd850ffffdec1}, + {0x9635c936, 0xffffd850ffffdec2}, + {0x9635c937, 0xffffd850ffffdec3}, + {0x9635c938, 0xffffd850ffffdec4}, + {0x9635c939, 0xffffd850ffffdec5}, + {0x9635ca30, 0xffffd850ffffdec6}, + {0x9635ca31, 0xffffd850ffffdec7}, + {0x9635ca32, 0xffffd850ffffdec8}, + {0x9635ca33, 0xffffd850ffffdec9}, + {0x9635ca34, 0xffffd850ffffdeca}, + {0x9635ca35, 0xffffd850ffffdecb}, + {0x9635ca36, 0xffffd850ffffdecc}, + {0x9635ca37, 0xffffd850ffffdecd}, + {0x9635ca38, 0xffffd850ffffdece}, + {0x9635ca39, 0xffffd850ffffdecf}, + {0x9635cb30, 0xffffd850ffffded0}, + {0x9635cb31, 0xffffd850ffffded1}, + {0x9635cb32, 0xffffd850ffffded2}, + {0x9635cb33, 0xffffd850ffffded3}, + {0x9635cb34, 0xffffd850ffffded4}, + {0x9635cb35, 0xffffd850ffffded5}, + {0x9635cb36, 0xffffd850ffffded6}, + {0x9635cb37, 0xffffd850ffffded7}, + {0x9635cb38, 0xffffd850ffffded8}, + {0x9635cb39, 0xffffd850ffffded9}, + {0x9635cc30, 0xffffd850ffffdeda}, + {0x9635cc31, 0xffffd850ffffdedb}, + {0x9635cc32, 0xffffd850ffffdedc}, + {0x9635cc33, 0xffffd850ffffdedd}, + {0x9635cc34, 0xffffd850ffffdede}, + {0x9635cc35, 0xffffd850ffffdedf}, + {0x9635cc36, 0xffffd850ffffdee0}, + {0x9635cc37, 0xffffd850ffffdee1}, + {0x9635cc38, 0xffffd850ffffdee2}, + {0x9635cc39, 0xffffd850ffffdee3}, + {0x9635cd30, 0xffffd850ffffdee4}, + {0x9635cd31, 0xffffd850ffffdee5}, + {0x9635cd32, 0xffffd850ffffdee6}, + {0x9635cd33, 0xffffd850ffffdee7}, + {0x9635cd34, 0xffffd850ffffdee8}, + {0x9635cd35, 0xffffd850ffffdee9}, + {0x9635cd36, 0xffffd850ffffdeea}, + {0x9635cd37, 0xffffd850ffffdeeb}, + {0x9635cd38, 0xffffd850ffffdeec}, + {0x9635cd39, 0xffffd850ffffdeed}, + {0x9635ce30, 0xffffd850ffffdeee}, + {0x9635ce31, 0xffffd850ffffdeef}, + {0x9635ce32, 0xffffd850ffffdef0}, + {0x9635ce33, 0xffffd850ffffdef1}, + {0x9635ce34, 0xffffd850ffffdef2}, + {0x9635ce35, 0xffffd850ffffdef3}, + {0x9635ce36, 0xffffd850ffffdef4}, + {0x9635ce37, 0xffffd850ffffdef5}, + {0x9635ce38, 0xffffd850ffffdef6}, + {0x9635ce39, 0xffffd850ffffdef7}, + {0x9635cf30, 0xffffd850ffffdef8}, + {0x9635cf31, 0xffffd850ffffdef9}, + {0x9635cf32, 0xffffd850ffffdefa}, + {0x9635cf33, 0xffffd850ffffdefb}, + {0x9635cf34, 0xffffd850ffffdefc}, + {0x9635cf35, 0xffffd850ffffdefd}, + {0x9635cf36, 0xffffd850ffffdefe}, + {0x9635cf37, 0xffffd850ffffdeff}, + {0x9635cf38, 0xffffd850ffffdf00}, + {0x9635cf39, 0xffffd850ffffdf01}, + {0x9635d030, 0xffffd850ffffdf02}, + {0x9635d031, 0xffffd850ffffdf03}, + {0x9635d032, 0xffffd850ffffdf04}, + {0x9635d033, 0xffffd850ffffdf05}, + {0x9635d034, 0xffffd850ffffdf06}, + {0x9635d035, 0xffffd850ffffdf07}, + {0x9635d036, 0xffffd850ffffdf08}, + {0x9635d037, 0xffffd850ffffdf09}, + {0x9635d038, 0xffffd850ffffdf0a}, + {0x9635d039, 0xffffd850ffffdf0b}, + {0x9635d130, 0xffffd850ffffdf0c}, + {0x9635d131, 0xffffd850ffffdf0d}, + {0x9635d132, 0xffffd850ffffdf0e}, + {0x9635d133, 0xffffd850ffffdf0f}, + {0x9635d134, 0xffffd850ffffdf10}, + {0x9635d135, 0xffffd850ffffdf11}, + {0x9635d136, 0xffffd850ffffdf12}, + {0x9635d137, 0xffffd850ffffdf13}, + {0x9635d138, 0xffffd850ffffdf14}, + {0x9635d139, 0xffffd850ffffdf15}, + {0x9635d230, 0xffffd850ffffdf16}, + {0x9635d231, 0xffffd850ffffdf17}, + {0x9635d232, 0xffffd850ffffdf18}, + {0x9635d233, 0xffffd850ffffdf19}, + {0x9635d234, 0xffffd850ffffdf1a}, + {0x9635d235, 0xffffd850ffffdf1b}, + {0x9635d236, 0xffffd850ffffdf1c}, + {0x9635d237, 0xffffd850ffffdf1d}, + {0x9635d238, 0xffffd850ffffdf1e}, + {0x9635d239, 0xffffd850ffffdf1f}, + {0x9635d330, 0xffffd850ffffdf20}, + {0x9635d331, 0xffffd850ffffdf21}, + {0x9635d332, 0xffffd850ffffdf22}, + {0x9635d333, 0xffffd850ffffdf23}, + {0x9635d334, 0xffffd850ffffdf24}, + {0x9635d335, 0xffffd850ffffdf25}, + {0x9635d336, 0xffffd850ffffdf26}, + {0x9635d337, 0xffffd850ffffdf27}, + {0x9635d338, 0xffffd850ffffdf28}, + {0x9635d339, 0xffffd850ffffdf29}, + {0x9635d430, 0xffffd850ffffdf2a}, + {0x9635d431, 0xffffd850ffffdf2b}, + {0x9635d432, 0xffffd850ffffdf2c}, + {0x9635d433, 0xffffd850ffffdf2d}, + {0x9635d434, 0xffffd850ffffdf2e}, + {0x9635d435, 0xffffd850ffffdf2f}, + {0x9635d436, 0xffffd850ffffdf30}, + {0x9635d437, 0xffffd850ffffdf31}, + {0x9635d438, 0xffffd850ffffdf32}, + {0x9635d439, 0xffffd850ffffdf33}, + {0x9635d530, 0xffffd850ffffdf34}, + {0x9635d531, 0xffffd850ffffdf35}, + {0x9635d532, 0xffffd850ffffdf36}, + {0x9635d533, 0xffffd850ffffdf37}, + {0x9635d534, 0xffffd850ffffdf38}, + {0x9635d535, 0xffffd850ffffdf39}, + {0x9635d536, 0xffffd850ffffdf3a}, + {0x9635d537, 0xffffd850ffffdf3b}, + {0x9635d538, 0xffffd850ffffdf3c}, + {0x9635d539, 0xffffd850ffffdf3d}, + {0x9635d630, 0xffffd850ffffdf3e}, + {0x9635d631, 0xffffd850ffffdf3f}, + {0x9635d632, 0xffffd850ffffdf40}, + {0x9635d633, 0xffffd850ffffdf41}, + {0x9635d634, 0xffffd850ffffdf42}, + {0x9635d635, 0xffffd850ffffdf43}, + {0x9635d636, 0xffffd850ffffdf44}, + {0x9635d637, 0xffffd850ffffdf45}, + {0x9635d638, 0xffffd850ffffdf46}, + {0x9635d639, 0xffffd850ffffdf47}, + {0x9635d730, 0xffffd850ffffdf48}, + {0x9635d731, 0xffffd850ffffdf49}, + {0x9635d732, 0xffffd850ffffdf4a}, + {0x9635d733, 0xffffd850ffffdf4b}, + {0x9635d734, 0xffffd850ffffdf4c}, + {0x9635d735, 0xffffd850ffffdf4d}, + {0x9635d736, 0xffffd850ffffdf4e}, + {0x9635d737, 0xffffd850ffffdf4f}, + {0x9635d738, 0xffffd850ffffdf50}, + {0x9635d739, 0xffffd850ffffdf51}, + {0x9635d830, 0xffffd850ffffdf52}, + {0x9635d831, 0xffffd850ffffdf53}, + {0x9635d832, 0xffffd850ffffdf54}, + {0x9635d833, 0xffffd850ffffdf55}, + {0x9635d834, 0xffffd850ffffdf56}, + {0x9635d835, 0xffffd850ffffdf57}, + {0x9635d836, 0xffffd850ffffdf58}, + {0x9635d837, 0xffffd850ffffdf59}, + {0x9635d838, 0xffffd850ffffdf5a}, + {0x9635d839, 0xffffd850ffffdf5b}, + {0x9635d930, 0xffffd850ffffdf5c}, + {0x9635d931, 0xffffd850ffffdf5d}, + {0x9635d932, 0xffffd850ffffdf5e}, + {0x9635d933, 0xffffd850ffffdf5f}, + {0x9635d934, 0xffffd850ffffdf60}, + {0x9635d935, 0xffffd850ffffdf61}, + {0x9635d936, 0xffffd850ffffdf62}, + {0x9635d937, 0xffffd850ffffdf63}, + {0x9635d938, 0xffffd850ffffdf64}, + {0x9635d939, 0xffffd850ffffdf65}, + {0x9635da30, 0xffffd850ffffdf66}, + {0x9635da31, 0xffffd850ffffdf67}, + {0x9635da32, 0xffffd850ffffdf68}, + {0x9635da33, 0xffffd850ffffdf69}, + {0x9635da34, 0xffffd850ffffdf6a}, + {0x9635da35, 0xffffd850ffffdf6b}, + {0x9635da36, 0xffffd850ffffdf6c}, + {0x9635da37, 0xffffd850ffffdf6d}, + {0x9635da38, 0xffffd850ffffdf6e}, + {0x9635da39, 0xffffd850ffffdf6f}, + {0x9635db30, 0xffffd850ffffdf70}, + {0x9635db31, 0xffffd850ffffdf71}, + {0x9635db32, 0xffffd850ffffdf72}, + {0x9635db33, 0xffffd850ffffdf73}, + {0x9635db34, 0xffffd850ffffdf74}, + {0x9635db35, 0xffffd850ffffdf75}, + {0x9635db36, 0xffffd850ffffdf76}, + {0x9635db37, 0xffffd850ffffdf77}, + {0x9635db38, 0xffffd850ffffdf78}, + {0x9635db39, 0xffffd850ffffdf79}, + {0x9635dc30, 0xffffd850ffffdf7a}, + {0x9635dc31, 0xffffd850ffffdf7b}, + {0x9635dc32, 0xffffd850ffffdf7c}, + {0x9635dc33, 0xffffd850ffffdf7d}, + {0x9635dc34, 0xffffd850ffffdf7e}, + {0x9635dc35, 0xffffd850ffffdf7f}, + {0x9635dc36, 0xffffd850ffffdf80}, + {0x9635dc37, 0xffffd850ffffdf81}, + {0x9635dc38, 0xffffd850ffffdf82}, + {0x9635dc39, 0xffffd850ffffdf83}, + {0x9635dd30, 0xffffd850ffffdf84}, + {0x9635dd31, 0xffffd850ffffdf85}, + {0x9635dd32, 0xffffd850ffffdf86}, + {0x9635dd33, 0xffffd850ffffdf87}, + {0x9635dd34, 0xffffd850ffffdf88}, + {0x9635dd35, 0xffffd850ffffdf89}, + {0x9635dd36, 0xffffd850ffffdf8a}, + {0x9635dd37, 0xffffd850ffffdf8b}, + {0x9635dd38, 0xffffd850ffffdf8c}, + {0x9635dd39, 0xffffd850ffffdf8d}, + {0x9635de30, 0xffffd850ffffdf8e}, + {0x9635de31, 0xffffd850ffffdf8f}, + {0x9635de32, 0xffffd850ffffdf90}, + {0x9635de33, 0xffffd850ffffdf91}, + {0x9635de34, 0xffffd850ffffdf92}, + {0x9635de35, 0xffffd850ffffdf93}, + {0x9635de36, 0xffffd850ffffdf94}, + {0x9635de37, 0xffffd850ffffdf95}, + {0x9635de38, 0xffffd850ffffdf96}, + {0x9635de39, 0xffffd850ffffdf97}, + {0x9635df30, 0xffffd850ffffdf98}, + {0x9635df31, 0xffffd850ffffdf99}, + {0x9635df32, 0xffffd850ffffdf9a}, + {0x9635df33, 0xffffd850ffffdf9b}, + {0x9635df34, 0xffffd850ffffdf9c}, + {0x9635df35, 0xffffd850ffffdf9d}, + {0x9635df36, 0xffffd850ffffdf9e}, + {0x9635df37, 0xffffd850ffffdf9f}, + {0x9635df38, 0xffffd850ffffdfa0}, + {0x9635df39, 0xffffd850ffffdfa1}, + {0x9635e030, 0xffffd850ffffdfa2}, + {0x9635e031, 0xffffd850ffffdfa3}, + {0x9635e032, 0xffffd850ffffdfa4}, + {0x9635e033, 0xffffd850ffffdfa5}, + {0x9635e034, 0xffffd850ffffdfa6}, + {0x9635e035, 0xffffd850ffffdfa7}, + {0x9635e036, 0xffffd850ffffdfa8}, + {0x9635e037, 0xffffd850ffffdfa9}, + {0x9635e038, 0xffffd850ffffdfaa}, + {0x9635e039, 0xffffd850ffffdfab}, + {0x9635e130, 0xffffd850ffffdfac}, + {0x9635e131, 0xffffd850ffffdfad}, + {0x9635e132, 0xffffd850ffffdfae}, + {0x9635e133, 0xffffd850ffffdfaf}, + {0x9635e134, 0xffffd850ffffdfb0}, + {0x9635e135, 0xffffd850ffffdfb1}, + {0x9635e136, 0xffffd850ffffdfb2}, + {0x9635e137, 0xffffd850ffffdfb3}, + {0x9635e138, 0xffffd850ffffdfb4}, + {0x9635e139, 0xffffd850ffffdfb5}, + {0x9635e230, 0xffffd850ffffdfb6}, + {0x9635e231, 0xffffd850ffffdfb7}, + {0x9635e232, 0xffffd850ffffdfb8}, + {0x9635e233, 0xffffd850ffffdfb9}, + {0x9635e234, 0xffffd850ffffdfba}, + {0x9635e235, 0xffffd850ffffdfbb}, + {0x9635e236, 0xffffd850ffffdfbc}, + {0x9635e237, 0xffffd850ffffdfbd}, + {0x9635e238, 0xffffd850ffffdfbe}, + {0x9635e239, 0xffffd850ffffdfbf}, + {0x9635e330, 0xffffd850ffffdfc0}, + {0x9635e331, 0xffffd850ffffdfc1}, + {0x9635e332, 0xffffd850ffffdfc2}, + {0x9635e333, 0xffffd850ffffdfc3}, + {0x9635e334, 0xffffd850ffffdfc4}, + {0x9635e335, 0xffffd850ffffdfc5}, + {0x9635e336, 0xffffd850ffffdfc6}, + {0x9635e337, 0xffffd850ffffdfc7}, + {0x9635e338, 0xffffd850ffffdfc8}, + {0x9635e339, 0xffffd850ffffdfc9}, + {0x9635e430, 0xffffd850ffffdfca}, + {0x9635e431, 0xffffd850ffffdfcb}, + {0x9635e432, 0xffffd850ffffdfcc}, + {0x9635e433, 0xffffd850ffffdfcd}, + {0x9635e434, 0xffffd850ffffdfce}, + {0x9635e435, 0xffffd850ffffdfcf}, + {0x9635e436, 0xffffd850ffffdfd0}, + {0x9635e437, 0xffffd850ffffdfd1}, + {0x9635e438, 0xffffd850ffffdfd2}, + {0x9635e439, 0xffffd850ffffdfd3}, + {0x9635e530, 0xffffd850ffffdfd4}, + {0x9635e531, 0xffffd850ffffdfd5}, + {0x9635e532, 0xffffd850ffffdfd6}, + {0x9635e533, 0xffffd850ffffdfd7}, + {0x9635e534, 0xffffd850ffffdfd8}, + {0x9635e535, 0xffffd850ffffdfd9}, + {0x9635e536, 0xffffd850ffffdfda}, + {0x9635e537, 0xffffd850ffffdfdb}, + {0x9635e538, 0xffffd850ffffdfdc}, + {0x9635e539, 0xffffd850ffffdfdd}, + {0x9635e630, 0xffffd850ffffdfde}, + {0x9635e631, 0xffffd850ffffdfdf}, + {0x9635e632, 0xffffd850ffffdfe0}, + {0x9635e633, 0xffffd850ffffdfe1}, + {0x9635e634, 0xffffd850ffffdfe2}, + {0x9635e635, 0xffffd850ffffdfe3}, + {0x9635e636, 0xffffd850ffffdfe4}, + {0x9635e637, 0xffffd850ffffdfe5}, + {0x9635e638, 0xffffd850ffffdfe6}, + {0x9635e639, 0xffffd850ffffdfe7}, + {0x9635e730, 0xffffd850ffffdfe8}, + {0x9635e731, 0xffffd850ffffdfe9}, + {0x9635e732, 0xffffd850ffffdfea}, + {0x9635e733, 0xffffd850ffffdfeb}, + {0x9635e734, 0xffffd850ffffdfec}, + {0x9635e735, 0xffffd850ffffdfed}, + {0x9635e736, 0xffffd850ffffdfee}, + {0x9635e737, 0xffffd850ffffdfef}, + {0x9635e738, 0xffffd850ffffdff0}, + {0x9635e739, 0xffffd850ffffdff1}, + {0x9635e830, 0xffffd850ffffdff2}, + {0x9635e831, 0xffffd850ffffdff3}, + {0x9635e832, 0xffffd850ffffdff4}, + {0x9635e833, 0xffffd850ffffdff5}, + {0x9635e834, 0xffffd850ffffdff6}, + {0x9635e835, 0xffffd850ffffdff7}, + {0x9635e836, 0xffffd850ffffdff8}, + {0x9635e837, 0xffffd850ffffdff9}, + {0x9635e838, 0xffffd850ffffdffa}, + {0x9635e839, 0xffffd850ffffdffb}, + {0x9635e930, 0xffffd850ffffdffc}, + {0x9635e931, 0xffffd850ffffdffd}, + {0x9635e932, 0xffffd850ffffdffe}, + {0x9635e933, 0xffffd850ffffdfff}, + {0x9635e934, 0xffffd851ffffdc00}, + {0x9635e935, 0xffffd851ffffdc01}, + {0x9635e936, 0xffffd851ffffdc02}, + {0x9635e937, 0xffffd851ffffdc03}, + {0x9635e938, 0xffffd851ffffdc04}, + {0x9635e939, 0xffffd851ffffdc05}, + {0x9635ea30, 0xffffd851ffffdc06}, + {0x9635ea31, 0xffffd851ffffdc07}, + {0x9635ea32, 0xffffd851ffffdc08}, + {0x9635ea33, 0xffffd851ffffdc09}, + {0x9635ea34, 0xffffd851ffffdc0a}, + {0x9635ea35, 0xffffd851ffffdc0b}, + {0x9635ea36, 0xffffd851ffffdc0c}, + {0x9635ea37, 0xffffd851ffffdc0d}, + {0x9635ea38, 0xffffd851ffffdc0e}, + {0x9635ea39, 0xffffd851ffffdc0f}, + {0x9635eb30, 0xffffd851ffffdc10}, + {0x9635eb31, 0xffffd851ffffdc11}, + {0x9635eb32, 0xffffd851ffffdc12}, + {0x9635eb33, 0xffffd851ffffdc13}, + {0x9635eb34, 0xffffd851ffffdc14}, + {0x9635eb35, 0xffffd851ffffdc15}, + {0x9635eb36, 0xffffd851ffffdc16}, + {0x9635eb37, 0xffffd851ffffdc17}, + {0x9635eb38, 0xffffd851ffffdc18}, + {0x9635eb39, 0xffffd851ffffdc19}, + {0x9635ec30, 0xffffd851ffffdc1a}, + {0x9635ec31, 0xffffd851ffffdc1b}, + {0x9635ec32, 0xffffd851ffffdc1c}, + {0x9635ec33, 0xffffd851ffffdc1d}, + {0x9635ec34, 0xffffd851ffffdc1e}, + {0x9635ec35, 0xffffd851ffffdc1f}, + {0x9635ec36, 0xffffd851ffffdc20}, + {0x9635ec37, 0xffffd851ffffdc21}, + {0x9635ec38, 0xffffd851ffffdc22}, + {0x9635ec39, 0xffffd851ffffdc23}, + {0x9635ed30, 0xffffd851ffffdc24}, + {0x9635ed31, 0xffffd851ffffdc25}, + {0x9635ed32, 0xffffd851ffffdc26}, + {0x9635ed33, 0xffffd851ffffdc27}, + {0x9635ed34, 0xffffd851ffffdc28}, + {0x9635ed35, 0xffffd851ffffdc29}, + {0x9635ed36, 0xffffd851ffffdc2a}, + {0x9635ed37, 0xffffd851ffffdc2b}, + {0x9635ed38, 0xffffd851ffffdc2c}, + {0x9635ed39, 0xffffd851ffffdc2d}, + {0x9635ee30, 0xffffd851ffffdc2e}, + {0x9635ee31, 0xffffd851ffffdc2f}, + {0x9635ee32, 0xffffd851ffffdc30}, + {0x9635ee33, 0xffffd851ffffdc31}, + {0x9635ee34, 0xffffd851ffffdc32}, + {0x9635ee35, 0xffffd851ffffdc33}, + {0x9635ee36, 0xffffd851ffffdc34}, + {0x9635ee37, 0xffffd851ffffdc35}, + {0x9635ee38, 0xffffd851ffffdc36}, + {0x9635ee39, 0xffffd851ffffdc37}, + {0x9635ef30, 0xffffd851ffffdc38}, + {0x9635ef31, 0xffffd851ffffdc39}, + {0x9635ef32, 0xffffd851ffffdc3a}, + {0x9635ef33, 0xffffd851ffffdc3b}, + {0x9635ef34, 0xffffd851ffffdc3c}, + {0x9635ef35, 0xffffd851ffffdc3d}, + {0x9635ef36, 0xffffd851ffffdc3e}, + {0x9635ef37, 0xffffd851ffffdc3f}, + {0x9635ef38, 0xffffd851ffffdc40}, + {0x9635ef39, 0xffffd851ffffdc41}, + {0x9635f030, 0xffffd851ffffdc42}, + {0x9635f031, 0xffffd851ffffdc43}, + {0x9635f032, 0xffffd851ffffdc44}, + {0x9635f033, 0xffffd851ffffdc45}, + {0x9635f034, 0xffffd851ffffdc46}, + {0x9635f035, 0xffffd851ffffdc47}, + {0x9635f036, 0xffffd851ffffdc48}, + {0x9635f037, 0xffffd851ffffdc49}, + {0x9635f038, 0xffffd851ffffdc4a}, + {0x9635f039, 0xffffd851ffffdc4b}, + {0x9635f130, 0xffffd851ffffdc4c}, + {0x9635f131, 0xffffd851ffffdc4d}, + {0x9635f132, 0xffffd851ffffdc4e}, + {0x9635f133, 0xffffd851ffffdc4f}, + {0x9635f134, 0xffffd851ffffdc50}, + {0x9635f135, 0xffffd851ffffdc51}, + {0x9635f136, 0xffffd851ffffdc52}, + {0x9635f137, 0xffffd851ffffdc53}, + {0x9635f138, 0xffffd851ffffdc54}, + {0x9635f139, 0xffffd851ffffdc55}, + {0x9635f230, 0xffffd851ffffdc56}, + {0x9635f231, 0xffffd851ffffdc57}, + {0x9635f232, 0xffffd851ffffdc58}, + {0x9635f233, 0xffffd851ffffdc59}, + {0x9635f234, 0xffffd851ffffdc5a}, + {0x9635f235, 0xffffd851ffffdc5b}, + {0x9635f236, 0xffffd851ffffdc5c}, + {0x9635f237, 0xffffd851ffffdc5d}, + {0x9635f238, 0xffffd851ffffdc5e}, + {0x9635f239, 0xffffd851ffffdc5f}, + {0x9635f330, 0xffffd851ffffdc60}, + {0x9635f331, 0xffffd851ffffdc61}, + {0x9635f332, 0xffffd851ffffdc62}, + {0x9635f333, 0xffffd851ffffdc63}, + {0x9635f334, 0xffffd851ffffdc64}, + {0x9635f335, 0xffffd851ffffdc65}, + {0x9635f336, 0xffffd851ffffdc66}, + {0x9635f337, 0xffffd851ffffdc67}, + {0x9635f338, 0xffffd851ffffdc68}, + {0x9635f339, 0xffffd851ffffdc69}, + {0x9635f430, 0xffffd851ffffdc6a}, + {0x9635f431, 0xffffd851ffffdc6b}, + {0x9635f432, 0xffffd851ffffdc6c}, + {0x9635f433, 0xffffd851ffffdc6d}, + {0x9635f434, 0xffffd851ffffdc6e}, + {0x9635f435, 0xffffd851ffffdc6f}, + {0x9635f436, 0xffffd851ffffdc70}, + {0x9635f437, 0xffffd851ffffdc71}, + {0x9635f438, 0xffffd851ffffdc72}, + {0x9635f439, 0xffffd851ffffdc73}, + {0x9635f530, 0xffffd851ffffdc74}, + {0x9635f531, 0xffffd851ffffdc75}, + {0x9635f532, 0xffffd851ffffdc76}, + {0x9635f533, 0xffffd851ffffdc77}, + {0x9635f534, 0xffffd851ffffdc78}, + {0x9635f535, 0xffffd851ffffdc79}, + {0x9635f536, 0xffffd851ffffdc7a}, + {0x9635f537, 0xffffd851ffffdc7b}, + {0x9635f538, 0xffffd851ffffdc7c}, + {0x9635f539, 0xffffd851ffffdc7d}, + {0x9635f630, 0xffffd851ffffdc7e}, + {0x9635f631, 0xffffd851ffffdc7f}, + {0x9635f632, 0xffffd851ffffdc80}, + {0x9635f633, 0xffffd851ffffdc81}, + {0x9635f634, 0xffffd851ffffdc82}, + {0x9635f635, 0xffffd851ffffdc83}, + {0x9635f636, 0xffffd851ffffdc84}, + {0x9635f637, 0xffffd851ffffdc85}, + {0x9635f638, 0xffffd851ffffdc86}, + {0x9635f639, 0xffffd851ffffdc87}, + {0x9635f730, 0xffffd851ffffdc88}, + {0x9635f731, 0xffffd851ffffdc89}, + {0x9635f732, 0xffffd851ffffdc8a}, + {0x9635f733, 0xffffd851ffffdc8b}, + {0x9635f734, 0xffffd851ffffdc8c}, + {0x9635f735, 0xffffd851ffffdc8d}, + {0x9635f736, 0xffffd851ffffdc8e}, + {0x9635f737, 0xffffd851ffffdc8f}, + {0x9635f738, 0xffffd851ffffdc90}, + {0x9635f739, 0xffffd851ffffdc91}, + {0x9635f830, 0xffffd851ffffdc92}, + {0x9635f831, 0xffffd851ffffdc93}, + {0x9635f832, 0xffffd851ffffdc94}, + {0x9635f833, 0xffffd851ffffdc95}, + {0x9635f834, 0xffffd851ffffdc96}, + {0x9635f835, 0xffffd851ffffdc97}, + {0x9635f836, 0xffffd851ffffdc98}, + {0x9635f837, 0xffffd851ffffdc99}, + {0x9635f838, 0xffffd851ffffdc9a}, + {0x9635f839, 0xffffd851ffffdc9b}, + {0x9635f930, 0xffffd851ffffdc9c}, + {0x9635f931, 0xffffd851ffffdc9d}, + {0x9635f932, 0xffffd851ffffdc9e}, + {0x9635f933, 0xffffd851ffffdc9f}, + {0x9635f934, 0xffffd851ffffdca0}, + {0x9635f935, 0xffffd851ffffdca1}, + {0x9635f936, 0xffffd851ffffdca2}, + {0x9635f937, 0xffffd851ffffdca3}, + {0x9635f938, 0xffffd851ffffdca4}, + {0x9635f939, 0xffffd851ffffdca5}, + {0x9635fa30, 0xffffd851ffffdca6}, + {0x9635fa31, 0xffffd851ffffdca7}, + {0x9635fa32, 0xffffd851ffffdca8}, + {0x9635fa33, 0xffffd851ffffdca9}, + {0x9635fa34, 0xffffd851ffffdcaa}, + {0x9635fa35, 0xffffd851ffffdcab}, + {0x9635fa36, 0xffffd851ffffdcac}, + {0x9635fa37, 0xffffd851ffffdcad}, + {0x9635fa38, 0xffffd851ffffdcae}, + {0x9635fa39, 0xffffd851ffffdcaf}, + {0x9635fb30, 0xffffd851ffffdcb0}, + {0x9635fb31, 0xffffd851ffffdcb1}, + {0x9635fb32, 0xffffd851ffffdcb2}, + {0x9635fb33, 0xffffd851ffffdcb3}, + {0x9635fb34, 0xffffd851ffffdcb4}, + {0x9635fb35, 0xffffd851ffffdcb5}, + {0x9635fb36, 0xffffd851ffffdcb6}, + {0x9635fb37, 0xffffd851ffffdcb7}, + {0x9635fb38, 0xffffd851ffffdcb8}, + {0x9635fb39, 0xffffd851ffffdcb9}, + {0x9635fc30, 0xffffd851ffffdcba}, + {0x9635fc31, 0xffffd851ffffdcbb}, + {0x9635fc32, 0xffffd851ffffdcbc}, + {0x9635fc33, 0xffffd851ffffdcbd}, + {0x9635fc34, 0xffffd851ffffdcbe}, + {0x9635fc35, 0xffffd851ffffdcbf}, + {0x9635fc36, 0xffffd851ffffdcc0}, + {0x9635fc37, 0xffffd851ffffdcc1}, + {0x9635fc38, 0xffffd851ffffdcc2}, + {0x9635fc39, 0xffffd851ffffdcc3}, + {0x9635fd30, 0xffffd851ffffdcc4}, + {0x9635fd31, 0xffffd851ffffdcc5}, + {0x9635fd32, 0xffffd851ffffdcc6}, + {0x9635fd33, 0xffffd851ffffdcc7}, + {0x9635fd34, 0xffffd851ffffdcc8}, + {0x9635fd35, 0xffffd851ffffdcc9}, + {0x9635fd36, 0xffffd851ffffdcca}, + {0x9635fd37, 0xffffd851ffffdccb}, + {0x9635fd38, 0xffffd851ffffdccc}, + {0x9635fd39, 0xffffd851ffffdccd}, + {0x9635fe30, 0xffffd851ffffdcce}, + {0x9635fe31, 0xffffd851ffffdccf}, + {0x9635fe32, 0xffffd851ffffdcd0}, + {0x9635fe33, 0xffffd851ffffdcd1}, + {0x9635fe34, 0xffffd851ffffdcd2}, + {0x9635fe35, 0xffffd851ffffdcd3}, + {0x9635fe36, 0xffffd851ffffdcd4}, + {0x9635fe37, 0xffffd851ffffdcd5}, + {0x9635fe38, 0xffffd851ffffdcd6}, + {0x9635fe39, 0xffffd851ffffdcd7}, + {0x96368130, 0xffffd851ffffdcd8}, + {0x96368131, 0xffffd851ffffdcd9}, + {0x96368132, 0xffffd851ffffdcda}, + {0x96368133, 0xffffd851ffffdcdb}, + {0x96368134, 0xffffd851ffffdcdc}, + {0x96368135, 0xffffd851ffffdcdd}, + {0x96368136, 0xffffd851ffffdcde}, + {0x96368137, 0xffffd851ffffdcdf}, + {0x96368138, 0xffffd851ffffdce0}, + {0x96368139, 0xffffd851ffffdce1}, + {0x96368230, 0xffffd851ffffdce2}, + {0x96368231, 0xffffd851ffffdce3}, + {0x96368232, 0xffffd851ffffdce4}, + {0x96368233, 0xffffd851ffffdce5}, + {0x96368234, 0xffffd851ffffdce6}, + {0x96368235, 0xffffd851ffffdce7}, + {0x96368236, 0xffffd851ffffdce8}, + {0x96368237, 0xffffd851ffffdce9}, + {0x96368238, 0xffffd851ffffdcea}, + {0x96368239, 0xffffd851ffffdceb}, + {0x96368330, 0xffffd851ffffdcec}, + {0x96368331, 0xffffd851ffffdced}, + {0x96368332, 0xffffd851ffffdcee}, + {0x96368333, 0xffffd851ffffdcef}, + {0x96368334, 0xffffd851ffffdcf0}, + {0x96368335, 0xffffd851ffffdcf1}, + {0x96368336, 0xffffd851ffffdcf2}, + {0x96368337, 0xffffd851ffffdcf3}, + {0x96368338, 0xffffd851ffffdcf4}, + {0x96368339, 0xffffd851ffffdcf5}, + {0x96368430, 0xffffd851ffffdcf6}, + {0x96368431, 0xffffd851ffffdcf7}, + {0x96368432, 0xffffd851ffffdcf8}, + {0x96368433, 0xffffd851ffffdcf9}, + {0x96368434, 0xffffd851ffffdcfa}, + {0x96368435, 0xffffd851ffffdcfb}, + {0x96368436, 0xffffd851ffffdcfc}, + {0x96368437, 0xffffd851ffffdcfd}, + {0x96368438, 0xffffd851ffffdcfe}, + {0x96368439, 0xffffd851ffffdcff}, + {0x96368530, 0xffffd851ffffdd00}, + {0x96368531, 0xffffd851ffffdd01}, + {0x96368532, 0xffffd851ffffdd02}, + {0x96368533, 0xffffd851ffffdd03}, + {0x96368534, 0xffffd851ffffdd04}, + {0x96368535, 0xffffd851ffffdd05}, + {0x96368536, 0xffffd851ffffdd06}, + {0x96368537, 0xffffd851ffffdd07}, + {0x96368538, 0xffffd851ffffdd08}, + {0x96368539, 0xffffd851ffffdd09}, + {0x96368630, 0xffffd851ffffdd0a}, + {0x96368631, 0xffffd851ffffdd0b}, + {0x96368632, 0xffffd851ffffdd0c}, + {0x96368633, 0xffffd851ffffdd0d}, + {0x96368634, 0xffffd851ffffdd0e}, + {0x96368635, 0xffffd851ffffdd0f}, + {0x96368636, 0xffffd851ffffdd10}, + {0x96368637, 0xffffd851ffffdd11}, + {0x96368638, 0xffffd851ffffdd12}, + {0x96368639, 0xffffd851ffffdd13}, + {0x96368730, 0xffffd851ffffdd14}, + {0x96368731, 0xffffd851ffffdd15}, + {0x96368732, 0xffffd851ffffdd16}, + {0x96368733, 0xffffd851ffffdd17}, + {0x96368734, 0xffffd851ffffdd18}, + {0x96368735, 0xffffd851ffffdd19}, + {0x96368736, 0xffffd851ffffdd1a}, + {0x96368737, 0xffffd851ffffdd1b}, + {0x96368738, 0xffffd851ffffdd1c}, + {0x96368739, 0xffffd851ffffdd1d}, + {0x96368830, 0xffffd851ffffdd1e}, + {0x96368831, 0xffffd851ffffdd1f}, + {0x96368832, 0xffffd851ffffdd20}, + {0x96368833, 0xffffd851ffffdd21}, + {0x96368834, 0xffffd851ffffdd22}, + {0x96368835, 0xffffd851ffffdd23}, + {0x96368836, 0xffffd851ffffdd24}, + {0x96368837, 0xffffd851ffffdd25}, + {0x96368838, 0xffffd851ffffdd26}, + {0x96368839, 0xffffd851ffffdd27}, + {0x96368930, 0xffffd851ffffdd28}, + {0x96368931, 0xffffd851ffffdd29}, + {0x96368932, 0xffffd851ffffdd2a}, + {0x96368933, 0xffffd851ffffdd2b}, + {0x96368934, 0xffffd851ffffdd2c}, + {0x96368935, 0xffffd851ffffdd2d}, + {0x96368936, 0xffffd851ffffdd2e}, + {0x96368937, 0xffffd851ffffdd2f}, + {0x96368938, 0xffffd851ffffdd30}, + {0x96368939, 0xffffd851ffffdd31}, + {0x96368a30, 0xffffd851ffffdd32}, + {0x96368a31, 0xffffd851ffffdd33}, + {0x96368a32, 0xffffd851ffffdd34}, + {0x96368a33, 0xffffd851ffffdd35}, + {0x96368a34, 0xffffd851ffffdd36}, + {0x96368a35, 0xffffd851ffffdd37}, + {0x96368a36, 0xffffd851ffffdd38}, + {0x96368a37, 0xffffd851ffffdd39}, + {0x96368a38, 0xffffd851ffffdd3a}, + {0x96368a39, 0xffffd851ffffdd3b}, + {0x96368b30, 0xffffd851ffffdd3c}, + {0x96368b31, 0xffffd851ffffdd3d}, + {0x96368b32, 0xffffd851ffffdd3e}, + {0x96368b33, 0xffffd851ffffdd3f}, + {0x96368b34, 0xffffd851ffffdd40}, + {0x96368b35, 0xffffd851ffffdd41}, + {0x96368b36, 0xffffd851ffffdd42}, + {0x96368b37, 0xffffd851ffffdd43}, + {0x96368b38, 0xffffd851ffffdd44}, + {0x96368b39, 0xffffd851ffffdd45}, + {0x96368c30, 0xffffd851ffffdd46}, + {0x96368c31, 0xffffd851ffffdd47}, + {0x96368c32, 0xffffd851ffffdd48}, + {0x96368c33, 0xffffd851ffffdd49}, + {0x96368c34, 0xffffd851ffffdd4a}, + {0x96368c35, 0xffffd851ffffdd4b}, + {0x96368c36, 0xffffd851ffffdd4c}, + {0x96368c37, 0xffffd851ffffdd4d}, + {0x96368c38, 0xffffd851ffffdd4e}, + {0x96368c39, 0xffffd851ffffdd4f}, + {0x96368d30, 0xffffd851ffffdd50}, + {0x96368d31, 0xffffd851ffffdd51}, + {0x96368d32, 0xffffd851ffffdd52}, + {0x96368d33, 0xffffd851ffffdd53}, + {0x96368d34, 0xffffd851ffffdd54}, + {0x96368d35, 0xffffd851ffffdd55}, + {0x96368d36, 0xffffd851ffffdd56}, + {0x96368d37, 0xffffd851ffffdd57}, + {0x96368d38, 0xffffd851ffffdd58}, + {0x96368d39, 0xffffd851ffffdd59}, + {0x96368e30, 0xffffd851ffffdd5a}, + {0x96368e31, 0xffffd851ffffdd5b}, + {0x96368e32, 0xffffd851ffffdd5c}, + {0x96368e33, 0xffffd851ffffdd5d}, + {0x96368e34, 0xffffd851ffffdd5e}, + {0x96368e35, 0xffffd851ffffdd5f}, + {0x96368e36, 0xffffd851ffffdd60}, + {0x96368e37, 0xffffd851ffffdd61}, + {0x96368e38, 0xffffd851ffffdd62}, + {0x96368e39, 0xffffd851ffffdd63}, + {0x96368f30, 0xffffd851ffffdd64}, + {0x96368f31, 0xffffd851ffffdd65}, + {0x96368f32, 0xffffd851ffffdd66}, + {0x96368f33, 0xffffd851ffffdd67}, + {0x96368f34, 0xffffd851ffffdd68}, + {0x96368f35, 0xffffd851ffffdd69}, + {0x96368f36, 0xffffd851ffffdd6a}, + {0x96368f37, 0xffffd851ffffdd6b}, + {0x96368f38, 0xffffd851ffffdd6c}, + {0x96368f39, 0xffffd851ffffdd6d}, + {0x96369030, 0xffffd851ffffdd6e}, + {0x96369031, 0xffffd851ffffdd6f}, + {0x96369032, 0xffffd851ffffdd70}, + {0x96369033, 0xffffd851ffffdd71}, + {0x96369034, 0xffffd851ffffdd72}, + {0x96369035, 0xffffd851ffffdd73}, + {0x96369036, 0xffffd851ffffdd74}, + {0x96369037, 0xffffd851ffffdd75}, + {0x96369038, 0xffffd851ffffdd76}, + {0x96369039, 0xffffd851ffffdd77}, + {0x96369130, 0xffffd851ffffdd78}, + {0x96369131, 0xffffd851ffffdd79}, + {0x96369132, 0xffffd851ffffdd7a}, + {0x96369133, 0xffffd851ffffdd7b}, + {0x96369134, 0xffffd851ffffdd7c}, + {0x96369135, 0xffffd851ffffdd7d}, + {0x96369136, 0xffffd851ffffdd7e}, + {0x96369137, 0xffffd851ffffdd7f}, + {0x96369138, 0xffffd851ffffdd80}, + {0x96369139, 0xffffd851ffffdd81}, + {0x96369230, 0xffffd851ffffdd82}, + {0x96369231, 0xffffd851ffffdd83}, + {0x96369232, 0xffffd851ffffdd84}, + {0x96369233, 0xffffd851ffffdd85}, + {0x96369234, 0xffffd851ffffdd86}, + {0x96369235, 0xffffd851ffffdd87}, + {0x96369236, 0xffffd851ffffdd88}, + {0x96369237, 0xffffd851ffffdd89}, + {0x96369238, 0xffffd851ffffdd8a}, + {0x96369239, 0xffffd851ffffdd8b}, + {0x96369330, 0xffffd851ffffdd8c}, + {0x96369331, 0xffffd851ffffdd8d}, + {0x96369332, 0xffffd851ffffdd8e}, + {0x96369333, 0xffffd851ffffdd8f}, + {0x96369334, 0xffffd851ffffdd90}, + {0x96369335, 0xffffd851ffffdd91}, + {0x96369336, 0xffffd851ffffdd92}, + {0x96369337, 0xffffd851ffffdd93}, + {0x96369338, 0xffffd851ffffdd94}, + {0x96369339, 0xffffd851ffffdd95}, + {0x96369430, 0xffffd851ffffdd96}, + {0x96369431, 0xffffd851ffffdd97}, + {0x96369432, 0xffffd851ffffdd98}, + {0x96369433, 0xffffd851ffffdd99}, + {0x96369434, 0xffffd851ffffdd9a}, + {0x96369435, 0xffffd851ffffdd9b}, + {0x96369436, 0xffffd851ffffdd9c}, + {0x96369437, 0xffffd851ffffdd9d}, + {0x96369438, 0xffffd851ffffdd9e}, + {0x96369439, 0xffffd851ffffdd9f}, + {0x96369530, 0xffffd851ffffdda0}, + {0x96369531, 0xffffd851ffffdda1}, + {0x96369532, 0xffffd851ffffdda2}, + {0x96369533, 0xffffd851ffffdda3}, + {0x96369534, 0xffffd851ffffdda4}, + {0x96369535, 0xffffd851ffffdda5}, + {0x96369536, 0xffffd851ffffdda6}, + {0x96369537, 0xffffd851ffffdda7}, + {0x96369538, 0xffffd851ffffdda8}, + {0x96369539, 0xffffd851ffffdda9}, + {0x96369630, 0xffffd851ffffddaa}, + {0x96369631, 0xffffd851ffffddab}, + {0x96369632, 0xffffd851ffffddac}, + {0x96369633, 0xffffd851ffffddad}, + {0x96369634, 0xffffd851ffffddae}, + {0x96369635, 0xffffd851ffffddaf}, + {0x96369636, 0xffffd851ffffddb0}, + {0x96369637, 0xffffd851ffffddb1}, + {0x96369638, 0xffffd851ffffddb2}, + {0x96369639, 0xffffd851ffffddb3}, + {0x96369730, 0xffffd851ffffddb4}, + {0x96369731, 0xffffd851ffffddb5}, + {0x96369732, 0xffffd851ffffddb6}, + {0x96369733, 0xffffd851ffffddb7}, + {0x96369734, 0xffffd851ffffddb8}, + {0x96369735, 0xffffd851ffffddb9}, + {0x96369736, 0xffffd851ffffddba}, + {0x96369737, 0xffffd851ffffddbb}, + {0x96369738, 0xffffd851ffffddbc}, + {0x96369739, 0xffffd851ffffddbd}, + {0x96369830, 0xffffd851ffffddbe}, + {0x96369831, 0xffffd851ffffddbf}, + {0x96369832, 0xffffd851ffffddc0}, + {0x96369833, 0xffffd851ffffddc1}, + {0x96369834, 0xffffd851ffffddc2}, + {0x96369835, 0xffffd851ffffddc3}, + {0x96369836, 0xffffd851ffffddc4}, + {0x96369837, 0xffffd851ffffddc5}, + {0x96369838, 0xffffd851ffffddc6}, + {0x96369839, 0xffffd851ffffddc7}, + {0x96369930, 0xffffd851ffffddc8}, + {0x96369931, 0xffffd851ffffddc9}, + {0x96369932, 0xffffd851ffffddca}, + {0x96369933, 0xffffd851ffffddcb}, + {0x96369934, 0xffffd851ffffddcc}, + {0x96369935, 0xffffd851ffffddcd}, + {0x96369936, 0xffffd851ffffddce}, + {0x96369937, 0xffffd851ffffddcf}, + {0x96369938, 0xffffd851ffffddd0}, + {0x96369939, 0xffffd851ffffddd1}, + {0x96369a30, 0xffffd851ffffddd2}, + {0x96369a31, 0xffffd851ffffddd3}, + {0x96369a32, 0xffffd851ffffddd4}, + {0x96369a33, 0xffffd851ffffddd5}, + {0x96369a34, 0xffffd851ffffddd6}, + {0x96369a35, 0xffffd851ffffddd7}, + {0x96369a36, 0xffffd851ffffddd8}, + {0x96369a37, 0xffffd851ffffddd9}, + {0x96369a38, 0xffffd851ffffddda}, + {0x96369a39, 0xffffd851ffffdddb}, + {0x96369b30, 0xffffd851ffffdddc}, + {0x96369b31, 0xffffd851ffffdddd}, + {0x96369b32, 0xffffd851ffffddde}, + {0x96369b33, 0xffffd851ffffdddf}, + {0x96369b34, 0xffffd851ffffdde0}, + {0x96369b35, 0xffffd851ffffdde1}, + {0x96369b36, 0xffffd851ffffdde2}, + {0x96369b37, 0xffffd851ffffdde3}, + {0x96369b38, 0xffffd851ffffdde4}, + {0x96369b39, 0xffffd851ffffdde5}, + {0x96369c30, 0xffffd851ffffdde6}, + {0x96369c31, 0xffffd851ffffdde7}, + {0x96369c32, 0xffffd851ffffdde8}, + {0x96369c33, 0xffffd851ffffdde9}, + {0x96369c34, 0xffffd851ffffddea}, + {0x96369c35, 0xffffd851ffffddeb}, + {0x96369c36, 0xffffd851ffffddec}, + {0x96369c37, 0xffffd851ffffdded}, + {0x96369c38, 0xffffd851ffffddee}, + {0x96369c39, 0xffffd851ffffddef}, + {0x96369d30, 0xffffd851ffffddf0}, + {0x96369d31, 0xffffd851ffffddf1}, + {0x96369d32, 0xffffd851ffffddf2}, + {0x96369d33, 0xffffd851ffffddf3}, + {0x96369d34, 0xffffd851ffffddf4}, + {0x96369d35, 0xffffd851ffffddf5}, + {0x96369d36, 0xffffd851ffffddf6}, + {0x96369d37, 0xffffd851ffffddf7}, + {0x96369d38, 0xffffd851ffffddf8}, + {0x96369d39, 0xffffd851ffffddf9}, + {0x96369e30, 0xffffd851ffffddfa}, + {0x96369e31, 0xffffd851ffffddfb}, + {0x96369e32, 0xffffd851ffffddfc}, + {0x96369e33, 0xffffd851ffffddfd}, + {0x96369e34, 0xffffd851ffffddfe}, + {0x96369e35, 0xffffd851ffffddff}, + {0x96369e36, 0xffffd851ffffde00}, + {0x96369e37, 0xffffd851ffffde01}, + {0x96369e38, 0xffffd851ffffde02}, + {0x96369e39, 0xffffd851ffffde03}, + {0x96369f30, 0xffffd851ffffde04}, + {0x96369f31, 0xffffd851ffffde05}, + {0x96369f32, 0xffffd851ffffde06}, + {0x96369f33, 0xffffd851ffffde07}, + {0x96369f34, 0xffffd851ffffde08}, + {0x96369f35, 0xffffd851ffffde09}, + {0x96369f36, 0xffffd851ffffde0a}, + {0x96369f37, 0xffffd851ffffde0b}, + {0x96369f38, 0xffffd851ffffde0c}, + {0x96369f39, 0xffffd851ffffde0d}, + {0x9636a030, 0xffffd851ffffde0e}, + {0x9636a031, 0xffffd851ffffde0f}, + {0x9636a032, 0xffffd851ffffde10}, + {0x9636a033, 0xffffd851ffffde11}, + {0x9636a034, 0xffffd851ffffde12}, + {0x9636a035, 0xffffd851ffffde13}, + {0x9636a036, 0xffffd851ffffde14}, + {0x9636a037, 0xffffd851ffffde15}, + {0x9636a038, 0xffffd851ffffde16}, + {0x9636a039, 0xffffd851ffffde17}, + {0x9636a130, 0xffffd851ffffde18}, + {0x9636a131, 0xffffd851ffffde19}, + {0x9636a132, 0xffffd851ffffde1a}, + {0x9636a133, 0xffffd851ffffde1b}, + {0x9636a134, 0xffffd851ffffde1c}, + {0x9636a135, 0xffffd851ffffde1d}, + {0x9636a136, 0xffffd851ffffde1e}, + {0x9636a137, 0xffffd851ffffde1f}, + {0x9636a138, 0xffffd851ffffde20}, + {0x9636a139, 0xffffd851ffffde21}, + {0x9636a230, 0xffffd851ffffde22}, + {0x9636a231, 0xffffd851ffffde23}, + {0x9636a232, 0xffffd851ffffde24}, + {0x9636a233, 0xffffd851ffffde25}, + {0x9636a234, 0xffffd851ffffde26}, + {0x9636a235, 0xffffd851ffffde27}, + {0x9636a236, 0xffffd851ffffde28}, + {0x9636a237, 0xffffd851ffffde29}, + {0x9636a238, 0xffffd851ffffde2a}, + {0x9636a239, 0xffffd851ffffde2b}, + {0x9636a330, 0xffffd851ffffde2c}, + {0x9636a331, 0xffffd851ffffde2d}, + {0x9636a332, 0xffffd851ffffde2e}, + {0x9636a333, 0xffffd851ffffde2f}, + {0x9636a334, 0xffffd851ffffde30}, + {0x9636a335, 0xffffd851ffffde31}, + {0x9636a336, 0xffffd851ffffde32}, + {0x9636a337, 0xffffd851ffffde33}, + {0x9636a338, 0xffffd851ffffde34}, + {0x9636a339, 0xffffd851ffffde35}, + {0x9636a430, 0xffffd851ffffde36}, + {0x9636a431, 0xffffd851ffffde37}, + {0x9636a432, 0xffffd851ffffde38}, + {0x9636a433, 0xffffd851ffffde39}, + {0x9636a434, 0xffffd851ffffde3a}, + {0x9636a435, 0xffffd851ffffde3b}, + {0x9636a436, 0xffffd851ffffde3c}, + {0x9636a437, 0xffffd851ffffde3d}, + {0x9636a438, 0xffffd851ffffde3e}, + {0x9636a439, 0xffffd851ffffde3f}, + {0x9636a530, 0xffffd851ffffde40}, + {0x9636a531, 0xffffd851ffffde41}, + {0x9636a532, 0xffffd851ffffde42}, + {0x9636a533, 0xffffd851ffffde43}, + {0x9636a534, 0xffffd851ffffde44}, + {0x9636a535, 0xffffd851ffffde45}, + {0x9636a536, 0xffffd851ffffde46}, + {0x9636a537, 0xffffd851ffffde47}, + {0x9636a538, 0xffffd851ffffde48}, + {0x9636a539, 0xffffd851ffffde49}, + {0x9636a630, 0xffffd851ffffde4a}, + {0x9636a631, 0xffffd851ffffde4b}, + {0x9636a632, 0xffffd851ffffde4c}, + {0x9636a633, 0xffffd851ffffde4d}, + {0x9636a634, 0xffffd851ffffde4e}, + {0x9636a635, 0xffffd851ffffde4f}, + {0x9636a636, 0xffffd851ffffde50}, + {0x9636a637, 0xffffd851ffffde51}, + {0x9636a638, 0xffffd851ffffde52}, + {0x9636a639, 0xffffd851ffffde53}, + {0x9636a730, 0xffffd851ffffde54}, + {0x9636a731, 0xffffd851ffffde55}, + {0x9636a732, 0xffffd851ffffde56}, + {0x9636a733, 0xffffd851ffffde57}, + {0x9636a734, 0xffffd851ffffde58}, + {0x9636a735, 0xffffd851ffffde59}, + {0x9636a736, 0xffffd851ffffde5a}, + {0x9636a737, 0xffffd851ffffde5b}, + {0x9636a738, 0xffffd851ffffde5c}, + {0x9636a739, 0xffffd851ffffde5d}, + {0x9636a830, 0xffffd851ffffde5e}, + {0x9636a831, 0xffffd851ffffde5f}, + {0x9636a832, 0xffffd851ffffde60}, + {0x9636a833, 0xffffd851ffffde61}, + {0x9636a834, 0xffffd851ffffde62}, + {0x9636a835, 0xffffd851ffffde63}, + {0x9636a836, 0xffffd851ffffde64}, + {0x9636a837, 0xffffd851ffffde65}, + {0x9636a838, 0xffffd851ffffde66}, + {0x9636a839, 0xffffd851ffffde67}, + {0x9636a930, 0xffffd851ffffde68}, + {0x9636a931, 0xffffd851ffffde69}, + {0x9636a932, 0xffffd851ffffde6a}, + {0x9636a933, 0xffffd851ffffde6b}, + {0x9636a934, 0xffffd851ffffde6c}, + {0x9636a935, 0xffffd851ffffde6d}, + {0x9636a936, 0xffffd851ffffde6e}, + {0x9636a937, 0xffffd851ffffde6f}, + {0x9636a938, 0xffffd851ffffde70}, + {0x9636a939, 0xffffd851ffffde71}, + {0x9636aa30, 0xffffd851ffffde72}, + {0x9636aa31, 0xffffd851ffffde73}, + {0x9636aa32, 0xffffd851ffffde74}, + {0x9636aa33, 0xffffd851ffffde75}, + {0x9636aa34, 0xffffd851ffffde76}, + {0x9636aa35, 0xffffd851ffffde77}, + {0x9636aa36, 0xffffd851ffffde78}, + {0x9636aa37, 0xffffd851ffffde79}, + {0x9636aa38, 0xffffd851ffffde7a}, + {0x9636aa39, 0xffffd851ffffde7b}, + {0x9636ab30, 0xffffd851ffffde7c}, + {0x9636ab31, 0xffffd851ffffde7d}, + {0x9636ab32, 0xffffd851ffffde7e}, + {0x9636ab33, 0xffffd851ffffde7f}, + {0x9636ab34, 0xffffd851ffffde80}, + {0x9636ab35, 0xffffd851ffffde81}, + {0x9636ab36, 0xffffd851ffffde82}, + {0x9636ab37, 0xffffd851ffffde83}, + {0x9636ab38, 0xffffd851ffffde84}, + {0x9636ab39, 0xffffd851ffffde85}, + {0x9636ac30, 0xffffd851ffffde86}, + {0x9636ac31, 0xffffd851ffffde87}, + {0x9636ac32, 0xffffd851ffffde88}, + {0x9636ac33, 0xffffd851ffffde89}, + {0x9636ac34, 0xffffd851ffffde8a}, + {0x9636ac35, 0xffffd851ffffde8b}, + {0x9636ac36, 0xffffd851ffffde8c}, + {0x9636ac37, 0xffffd851ffffde8d}, + {0x9636ac38, 0xffffd851ffffde8e}, + {0x9636ac39, 0xffffd851ffffde8f}, + {0x9636ad30, 0xffffd851ffffde90}, + {0x9636ad31, 0xffffd851ffffde91}, + {0x9636ad32, 0xffffd851ffffde92}, + {0x9636ad33, 0xffffd851ffffde93}, + {0x9636ad34, 0xffffd851ffffde94}, + {0x9636ad35, 0xffffd851ffffde95}, + {0x9636ad36, 0xffffd851ffffde96}, + {0x9636ad37, 0xffffd851ffffde97}, + {0x9636ad38, 0xffffd851ffffde98}, + {0x9636ad39, 0xffffd851ffffde99}, + {0x9636ae30, 0xffffd851ffffde9a}, + {0x9636ae31, 0xffffd851ffffde9b}, + {0x9636ae32, 0xffffd851ffffde9c}, + {0x9636ae33, 0xffffd851ffffde9d}, + {0x9636ae34, 0xffffd851ffffde9e}, + {0x9636ae35, 0xffffd851ffffde9f}, + {0x9636ae36, 0xffffd851ffffdea0}, + {0x9636ae37, 0xffffd851ffffdea1}, + {0x9636ae38, 0xffffd851ffffdea2}, + {0x9636ae39, 0xffffd851ffffdea3}, + {0x9636af30, 0xffffd851ffffdea4}, + {0x9636af31, 0xffffd851ffffdea5}, + {0x9636af32, 0xffffd851ffffdea6}, + {0x9636af33, 0xffffd851ffffdea7}, + {0x9636af34, 0xffffd851ffffdea8}, + {0x9636af35, 0xffffd851ffffdea9}, + {0x9636af36, 0xffffd851ffffdeaa}, + {0x9636af37, 0xffffd851ffffdeab}, + {0x9636af38, 0xffffd851ffffdeac}, + {0x9636af39, 0xffffd851ffffdead}, + {0x9636b030, 0xffffd851ffffdeae}, + {0x9636b031, 0xffffd851ffffdeaf}, + {0x9636b032, 0xffffd851ffffdeb0}, + {0x9636b033, 0xffffd851ffffdeb1}, + {0x9636b034, 0xffffd851ffffdeb2}, + {0x9636b035, 0xffffd851ffffdeb3}, + {0x9636b036, 0xffffd851ffffdeb4}, + {0x9636b037, 0xffffd851ffffdeb5}, + {0x9636b038, 0xffffd851ffffdeb6}, + {0x9636b039, 0xffffd851ffffdeb7}, + {0x9636b130, 0xffffd851ffffdeb8}, + {0x9636b131, 0xffffd851ffffdeb9}, + {0x9636b132, 0xffffd851ffffdeba}, + {0x9636b133, 0xffffd851ffffdebb}, + {0x9636b134, 0xffffd851ffffdebc}, + {0x9636b135, 0xffffd851ffffdebd}, + {0x9636b136, 0xffffd851ffffdebe}, + {0x9636b137, 0xffffd851ffffdebf}, + {0x9636b138, 0xffffd851ffffdec0}, + {0x9636b139, 0xffffd851ffffdec1}, + {0x9636b230, 0xffffd851ffffdec2}, + {0x9636b231, 0xffffd851ffffdec3}, + {0x9636b232, 0xffffd851ffffdec4}, + {0x9636b233, 0xffffd851ffffdec5}, + {0x9636b234, 0xffffd851ffffdec6}, + {0x9636b235, 0xffffd851ffffdec7}, + {0x9636b236, 0xffffd851ffffdec8}, + {0x9636b237, 0xffffd851ffffdec9}, + {0x9636b238, 0xffffd851ffffdeca}, + {0x9636b239, 0xffffd851ffffdecb}, + {0x9636b330, 0xffffd851ffffdecc}, + {0x9636b331, 0xffffd851ffffdecd}, + {0x9636b332, 0xffffd851ffffdece}, + {0x9636b333, 0xffffd851ffffdecf}, + {0x9636b334, 0xffffd851ffffded0}, + {0x9636b335, 0xffffd851ffffded1}, + {0x9636b336, 0xffffd851ffffded2}, + {0x9636b337, 0xffffd851ffffded3}, + {0x9636b338, 0xffffd851ffffded4}, + {0x9636b339, 0xffffd851ffffded5}, + {0x9636b430, 0xffffd851ffffded6}, + {0x9636b431, 0xffffd851ffffded7}, + {0x9636b432, 0xffffd851ffffded8}, + {0x9636b433, 0xffffd851ffffded9}, + {0x9636b434, 0xffffd851ffffdeda}, + {0x9636b435, 0xffffd851ffffdedb}, + {0x9636b436, 0xffffd851ffffdedc}, + {0x9636b437, 0xffffd851ffffdedd}, + {0x9636b438, 0xffffd851ffffdede}, + {0x9636b439, 0xffffd851ffffdedf}, + {0x9636b530, 0xffffd851ffffdee0}, + {0x9636b531, 0xffffd851ffffdee1}, + {0x9636b532, 0xffffd851ffffdee2}, + {0x9636b533, 0xffffd851ffffdee3}, + {0x9636b534, 0xffffd851ffffdee4}, + {0x9636b535, 0xffffd851ffffdee5}, + {0x9636b536, 0xffffd851ffffdee6}, + {0x9636b537, 0xffffd851ffffdee7}, + {0x9636b538, 0xffffd851ffffdee8}, + {0x9636b539, 0xffffd851ffffdee9}, + {0x9636b630, 0xffffd851ffffdeea}, + {0x9636b631, 0xffffd851ffffdeeb}, + {0x9636b632, 0xffffd851ffffdeec}, + {0x9636b633, 0xffffd851ffffdeed}, + {0x9636b634, 0xffffd851ffffdeee}, + {0x9636b635, 0xffffd851ffffdeef}, + {0x9636b636, 0xffffd851ffffdef0}, + {0x9636b637, 0xffffd851ffffdef1}, + {0x9636b638, 0xffffd851ffffdef2}, + {0x9636b639, 0xffffd851ffffdef3}, + {0x9636b730, 0xffffd851ffffdef4}, + {0x9636b731, 0xffffd851ffffdef5}, + {0x9636b732, 0xffffd851ffffdef6}, + {0x9636b733, 0xffffd851ffffdef7}, + {0x9636b734, 0xffffd851ffffdef8}, + {0x9636b735, 0xffffd851ffffdef9}, + {0x9636b736, 0xffffd851ffffdefa}, + {0x9636b737, 0xffffd851ffffdefb}, + {0x9636b738, 0xffffd851ffffdefc}, + {0x9636b739, 0xffffd851ffffdefd}, + {0x9636b830, 0xffffd851ffffdefe}, + {0x9636b831, 0xffffd851ffffdeff}, + {0x9636b832, 0xffffd851ffffdf00}, + {0x9636b833, 0xffffd851ffffdf01}, + {0x9636b834, 0xffffd851ffffdf02}, + {0x9636b835, 0xffffd851ffffdf03}, + {0x9636b836, 0xffffd851ffffdf04}, + {0x9636b837, 0xffffd851ffffdf05}, + {0x9636b838, 0xffffd851ffffdf06}, + {0x9636b839, 0xffffd851ffffdf07}, + {0x9636b930, 0xffffd851ffffdf08}, + {0x9636b931, 0xffffd851ffffdf09}, + {0x9636b932, 0xffffd851ffffdf0a}, + {0x9636b933, 0xffffd851ffffdf0b}, + {0x9636b934, 0xffffd851ffffdf0c}, + {0x9636b935, 0xffffd851ffffdf0d}, + {0x9636b936, 0xffffd851ffffdf0e}, + {0x9636b937, 0xffffd851ffffdf0f}, + {0x9636b938, 0xffffd851ffffdf10}, + {0x9636b939, 0xffffd851ffffdf11}, + {0x9636ba30, 0xffffd851ffffdf12}, + {0x9636ba31, 0xffffd851ffffdf13}, + {0x9636ba32, 0xffffd851ffffdf14}, + {0x9636ba33, 0xffffd851ffffdf15}, + {0x9636ba34, 0xffffd851ffffdf16}, + {0x9636ba35, 0xffffd851ffffdf17}, + {0x9636ba36, 0xffffd851ffffdf18}, + {0x9636ba37, 0xffffd851ffffdf19}, + {0x9636ba38, 0xffffd851ffffdf1a}, + {0x9636ba39, 0xffffd851ffffdf1b}, + {0x9636bb30, 0xffffd851ffffdf1c}, + {0x9636bb31, 0xffffd851ffffdf1d}, + {0x9636bb32, 0xffffd851ffffdf1e}, + {0x9636bb33, 0xffffd851ffffdf1f}, + {0x9636bb34, 0xffffd851ffffdf20}, + {0x9636bb35, 0xffffd851ffffdf21}, + {0x9636bb36, 0xffffd851ffffdf22}, + {0x9636bb37, 0xffffd851ffffdf23}, + {0x9636bb38, 0xffffd851ffffdf24}, + {0x9636bb39, 0xffffd851ffffdf25}, + {0x9636bc30, 0xffffd851ffffdf26}, + {0x9636bc31, 0xffffd851ffffdf27}, + {0x9636bc32, 0xffffd851ffffdf28}, + {0x9636bc33, 0xffffd851ffffdf29}, + {0x9636bc34, 0xffffd851ffffdf2a}, + {0x9636bc35, 0xffffd851ffffdf2b}, + {0x9636bc36, 0xffffd851ffffdf2c}, + {0x9636bc37, 0xffffd851ffffdf2d}, + {0x9636bc38, 0xffffd851ffffdf2e}, + {0x9636bc39, 0xffffd851ffffdf2f}, + {0x9636bd30, 0xffffd851ffffdf30}, + {0x9636bd31, 0xffffd851ffffdf31}, + {0x9636bd32, 0xffffd851ffffdf32}, + {0x9636bd33, 0xffffd851ffffdf33}, + {0x9636bd34, 0xffffd851ffffdf34}, + {0x9636bd35, 0xffffd851ffffdf35}, + {0x9636bd36, 0xffffd851ffffdf36}, + {0x9636bd37, 0xffffd851ffffdf37}, + {0x9636bd38, 0xffffd851ffffdf38}, + {0x9636bd39, 0xffffd851ffffdf39}, + {0x9636be30, 0xffffd851ffffdf3a}, + {0x9636be31, 0xffffd851ffffdf3b}, + {0x9636be32, 0xffffd851ffffdf3c}, + {0x9636be33, 0xffffd851ffffdf3d}, + {0x9636be34, 0xffffd851ffffdf3e}, + {0x9636be35, 0xffffd851ffffdf3f}, + {0x9636be36, 0xffffd851ffffdf40}, + {0x9636be37, 0xffffd851ffffdf41}, + {0x9636be38, 0xffffd851ffffdf42}, + {0x9636be39, 0xffffd851ffffdf43}, + {0x9636bf30, 0xffffd851ffffdf44}, + {0x9636bf31, 0xffffd851ffffdf45}, + {0x9636bf32, 0xffffd851ffffdf46}, + {0x9636bf33, 0xffffd851ffffdf47}, + {0x9636bf34, 0xffffd851ffffdf48}, + {0x9636bf35, 0xffffd851ffffdf49}, + {0x9636bf36, 0xffffd851ffffdf4a}, + {0x9636bf37, 0xffffd851ffffdf4b}, + {0x9636bf38, 0xffffd851ffffdf4c}, + {0x9636bf39, 0xffffd851ffffdf4d}, + {0x9636c030, 0xffffd851ffffdf4e}, + {0x9636c031, 0xffffd851ffffdf4f}, + {0x9636c032, 0xffffd851ffffdf50}, + {0x9636c033, 0xffffd851ffffdf51}, + {0x9636c034, 0xffffd851ffffdf52}, + {0x9636c035, 0xffffd851ffffdf53}, + {0x9636c036, 0xffffd851ffffdf54}, + {0x9636c037, 0xffffd851ffffdf55}, + {0x9636c038, 0xffffd851ffffdf56}, + {0x9636c039, 0xffffd851ffffdf57}, + {0x9636c130, 0xffffd851ffffdf58}, + {0x9636c131, 0xffffd851ffffdf59}, + {0x9636c132, 0xffffd851ffffdf5a}, + {0x9636c133, 0xffffd851ffffdf5b}, + {0x9636c134, 0xffffd851ffffdf5c}, + {0x9636c135, 0xffffd851ffffdf5d}, + {0x9636c136, 0xffffd851ffffdf5e}, + {0x9636c137, 0xffffd851ffffdf5f}, + {0x9636c138, 0xffffd851ffffdf60}, + {0x9636c139, 0xffffd851ffffdf61}, + {0x9636c230, 0xffffd851ffffdf62}, + {0x9636c231, 0xffffd851ffffdf63}, + {0x9636c232, 0xffffd851ffffdf64}, + {0x9636c233, 0xffffd851ffffdf65}, + {0x9636c234, 0xffffd851ffffdf66}, + {0x9636c235, 0xffffd851ffffdf67}, + {0x9636c236, 0xffffd851ffffdf68}, + {0x9636c237, 0xffffd851ffffdf69}, + {0x9636c238, 0xffffd851ffffdf6a}, + {0x9636c239, 0xffffd851ffffdf6b}, + {0x9636c330, 0xffffd851ffffdf6c}, + {0x9636c331, 0xffffd851ffffdf6d}, + {0x9636c332, 0xffffd851ffffdf6e}, + {0x9636c333, 0xffffd851ffffdf6f}, + {0x9636c334, 0xffffd851ffffdf70}, + {0x9636c335, 0xffffd851ffffdf71}, + {0x9636c336, 0xffffd851ffffdf72}, + {0x9636c337, 0xffffd851ffffdf73}, + {0x9636c338, 0xffffd851ffffdf74}, + {0x9636c339, 0xffffd851ffffdf75}, + {0x9636c430, 0xffffd851ffffdf76}, + {0x9636c431, 0xffffd851ffffdf77}, + {0x9636c432, 0xffffd851ffffdf78}, + {0x9636c433, 0xffffd851ffffdf79}, + {0x9636c434, 0xffffd851ffffdf7a}, + {0x9636c435, 0xffffd851ffffdf7b}, + {0x9636c436, 0xffffd851ffffdf7c}, + {0x9636c437, 0xffffd851ffffdf7d}, + {0x9636c438, 0xffffd851ffffdf7e}, + {0x9636c439, 0xffffd851ffffdf7f}, + {0x9636c530, 0xffffd851ffffdf80}, + {0x9636c531, 0xffffd851ffffdf81}, + {0x9636c532, 0xffffd851ffffdf82}, + {0x9636c533, 0xffffd851ffffdf83}, + {0x9636c534, 0xffffd851ffffdf84}, + {0x9636c535, 0xffffd851ffffdf85}, + {0x9636c536, 0xffffd851ffffdf86}, + {0x9636c537, 0xffffd851ffffdf87}, + {0x9636c538, 0xffffd851ffffdf88}, + {0x9636c539, 0xffffd851ffffdf89}, + {0x9636c630, 0xffffd851ffffdf8a}, + {0x9636c631, 0xffffd851ffffdf8b}, + {0x9636c632, 0xffffd851ffffdf8c}, + {0x9636c633, 0xffffd851ffffdf8d}, + {0x9636c634, 0xffffd851ffffdf8e}, + {0x9636c635, 0xffffd851ffffdf8f}, + {0x9636c636, 0xffffd851ffffdf90}, + {0x9636c637, 0xffffd851ffffdf91}, + {0x9636c638, 0xffffd851ffffdf92}, + {0x9636c639, 0xffffd851ffffdf93}, + {0x9636c730, 0xffffd851ffffdf94}, + {0x9636c731, 0xffffd851ffffdf95}, + {0x9636c732, 0xffffd851ffffdf96}, + {0x9636c733, 0xffffd851ffffdf97}, + {0x9636c734, 0xffffd851ffffdf98}, + {0x9636c735, 0xffffd851ffffdf99}, + {0x9636c736, 0xffffd851ffffdf9a}, + {0x9636c737, 0xffffd851ffffdf9b}, + {0x9636c738, 0xffffd851ffffdf9c}, + {0x9636c739, 0xffffd851ffffdf9d}, + {0x9636c830, 0xffffd851ffffdf9e}, + {0x9636c831, 0xffffd851ffffdf9f}, + {0x9636c832, 0xffffd851ffffdfa0}, + {0x9636c833, 0xffffd851ffffdfa1}, + {0x9636c834, 0xffffd851ffffdfa2}, + {0x9636c835, 0xffffd851ffffdfa3}, + {0x9636c836, 0xffffd851ffffdfa4}, + {0x9636c837, 0xffffd851ffffdfa5}, + {0x9636c838, 0xffffd851ffffdfa6}, + {0x9636c839, 0xffffd851ffffdfa7}, + {0x9636c930, 0xffffd851ffffdfa8}, + {0x9636c931, 0xffffd851ffffdfa9}, + {0x9636c932, 0xffffd851ffffdfaa}, + {0x9636c933, 0xffffd851ffffdfab}, + {0x9636c934, 0xffffd851ffffdfac}, + {0x9636c935, 0xffffd851ffffdfad}, + {0x9636c936, 0xffffd851ffffdfae}, + {0x9636c937, 0xffffd851ffffdfaf}, + {0x9636c938, 0xffffd851ffffdfb0}, + {0x9636c939, 0xffffd851ffffdfb1}, + {0x9636ca30, 0xffffd851ffffdfb2}, + {0x9636ca31, 0xffffd851ffffdfb3}, + {0x9636ca32, 0xffffd851ffffdfb4}, + {0x9636ca33, 0xffffd851ffffdfb5}, + {0x9636ca34, 0xffffd851ffffdfb6}, + {0x9636ca35, 0xffffd851ffffdfb7}, + {0x9636ca36, 0xffffd851ffffdfb8}, + {0x9636ca37, 0xffffd851ffffdfb9}, + {0x9636ca38, 0xffffd851ffffdfba}, + {0x9636ca39, 0xffffd851ffffdfbb}, + {0x9636cb30, 0xffffd851ffffdfbc}, + {0x9636cb31, 0xffffd851ffffdfbd}, + {0x9636cb32, 0xffffd851ffffdfbe}, + {0x9636cb33, 0xffffd851ffffdfbf}, + {0x9636cb34, 0xffffd851ffffdfc0}, + {0x9636cb35, 0xffffd851ffffdfc1}, + {0x9636cb36, 0xffffd851ffffdfc2}, + {0x9636cb37, 0xffffd851ffffdfc3}, + {0x9636cb38, 0xffffd851ffffdfc4}, + {0x9636cb39, 0xffffd851ffffdfc5}, + {0x9636cc30, 0xffffd851ffffdfc6}, + {0x9636cc31, 0xffffd851ffffdfc7}, + {0x9636cc32, 0xffffd851ffffdfc8}, + {0x9636cc33, 0xffffd851ffffdfc9}, + {0x9636cc34, 0xffffd851ffffdfca}, + {0x9636cc35, 0xffffd851ffffdfcb}, + {0x9636cc36, 0xffffd851ffffdfcc}, + {0x9636cc37, 0xffffd851ffffdfcd}, + {0x9636cc38, 0xffffd851ffffdfce}, + {0x9636cc39, 0xffffd851ffffdfcf}, + {0x9636cd30, 0xffffd851ffffdfd0}, + {0x9636cd31, 0xffffd851ffffdfd1}, + {0x9636cd32, 0xffffd851ffffdfd2}, + {0x9636cd33, 0xffffd851ffffdfd3}, + {0x9636cd34, 0xffffd851ffffdfd4}, + {0x9636cd35, 0xffffd851ffffdfd5}, + {0x9636cd36, 0xffffd851ffffdfd6}, + {0x9636cd37, 0xffffd851ffffdfd7}, + {0x9636cd38, 0xffffd851ffffdfd8}, + {0x9636cd39, 0xffffd851ffffdfd9}, + {0x9636ce30, 0xffffd851ffffdfda}, + {0x9636ce31, 0xffffd851ffffdfdb}, + {0x9636ce32, 0xffffd851ffffdfdc}, + {0x9636ce33, 0xffffd851ffffdfdd}, + {0x9636ce34, 0xffffd851ffffdfde}, + {0x9636ce35, 0xffffd851ffffdfdf}, + {0x9636ce36, 0xffffd851ffffdfe0}, + {0x9636ce37, 0xffffd851ffffdfe1}, + {0x9636ce38, 0xffffd851ffffdfe2}, + {0x9636ce39, 0xffffd851ffffdfe3}, + {0x9636cf30, 0xffffd851ffffdfe4}, + {0x9636cf31, 0xffffd851ffffdfe5}, + {0x9636cf32, 0xffffd851ffffdfe6}, + {0x9636cf33, 0xffffd851ffffdfe7}, + {0x9636cf34, 0xffffd851ffffdfe8}, + {0x9636cf35, 0xffffd851ffffdfe9}, + {0x9636cf36, 0xffffd851ffffdfea}, + {0x9636cf37, 0xffffd851ffffdfeb}, + {0x9636cf38, 0xffffd851ffffdfec}, + {0x9636cf39, 0xffffd851ffffdfed}, + {0x9636d030, 0xffffd851ffffdfee}, + {0x9636d031, 0xffffd851ffffdfef}, + {0x9636d032, 0xffffd851ffffdff0}, + {0x9636d033, 0xffffd851ffffdff1}, + {0x9636d034, 0xffffd851ffffdff2}, + {0x9636d035, 0xffffd851ffffdff3}, + {0x9636d036, 0xffffd851ffffdff4}, + {0x9636d037, 0xffffd851ffffdff5}, + {0x9636d038, 0xffffd851ffffdff6}, + {0x9636d039, 0xffffd851ffffdff7}, + {0x9636d130, 0xffffd851ffffdff8}, + {0x9636d131, 0xffffd851ffffdff9}, + {0x9636d132, 0xffffd851ffffdffa}, + {0x9636d133, 0xffffd851ffffdffb}, + {0x9636d134, 0xffffd851ffffdffc}, + {0x9636d135, 0xffffd851ffffdffd}, + {0x9636d136, 0xffffd851ffffdffe}, + {0x9636d137, 0xffffd851ffffdfff}, + {0x9636d138, 0xffffd852ffffdc00}, + {0x9636d139, 0xffffd852ffffdc01}, + {0x9636d230, 0xffffd852ffffdc02}, + {0x9636d231, 0xffffd852ffffdc03}, + {0x9636d232, 0xffffd852ffffdc04}, + {0x9636d233, 0xffffd852ffffdc05}, + {0x9636d234, 0xffffd852ffffdc06}, + {0x9636d235, 0xffffd852ffffdc07}, + {0x9636d236, 0xffffd852ffffdc08}, + {0x9636d237, 0xffffd852ffffdc09}, + {0x9636d238, 0xffffd852ffffdc0a}, + {0x9636d239, 0xffffd852ffffdc0b}, + {0x9636d330, 0xffffd852ffffdc0c}, + {0x9636d331, 0xffffd852ffffdc0d}, + {0x9636d332, 0xffffd852ffffdc0e}, + {0x9636d333, 0xffffd852ffffdc0f}, + {0x9636d334, 0xffffd852ffffdc10}, + {0x9636d335, 0xffffd852ffffdc11}, + {0x9636d336, 0xffffd852ffffdc12}, + {0x9636d337, 0xffffd852ffffdc13}, + {0x9636d338, 0xffffd852ffffdc14}, + {0x9636d339, 0xffffd852ffffdc15}, + {0x9636d430, 0xffffd852ffffdc16}, + {0x9636d431, 0xffffd852ffffdc17}, + {0x9636d432, 0xffffd852ffffdc18}, + {0x9636d433, 0xffffd852ffffdc19}, + {0x9636d434, 0xffffd852ffffdc1a}, + {0x9636d435, 0xffffd852ffffdc1b}, + {0x9636d436, 0xffffd852ffffdc1c}, + {0x9636d437, 0xffffd852ffffdc1d}, + {0x9636d438, 0xffffd852ffffdc1e}, + {0x9636d439, 0xffffd852ffffdc1f}, + {0x9636d530, 0xffffd852ffffdc20}, + {0x9636d531, 0xffffd852ffffdc21}, + {0x9636d532, 0xffffd852ffffdc22}, + {0x9636d533, 0xffffd852ffffdc23}, + {0x9636d534, 0xffffd852ffffdc24}, + {0x9636d535, 0xffffd852ffffdc25}, + {0x9636d536, 0xffffd852ffffdc26}, + {0x9636d537, 0xffffd852ffffdc27}, + {0x9636d538, 0xffffd852ffffdc28}, + {0x9636d539, 0xffffd852ffffdc29}, + {0x9636d630, 0xffffd852ffffdc2a}, + {0x9636d631, 0xffffd852ffffdc2b}, + {0x9636d632, 0xffffd852ffffdc2c}, + {0x9636d633, 0xffffd852ffffdc2d}, + {0x9636d634, 0xffffd852ffffdc2e}, + {0x9636d635, 0xffffd852ffffdc2f}, + {0x9636d636, 0xffffd852ffffdc30}, + {0x9636d637, 0xffffd852ffffdc31}, + {0x9636d638, 0xffffd852ffffdc32}, + {0x9636d639, 0xffffd852ffffdc33}, + {0x9636d730, 0xffffd852ffffdc34}, + {0x9636d731, 0xffffd852ffffdc35}, + {0x9636d732, 0xffffd852ffffdc36}, + {0x9636d733, 0xffffd852ffffdc37}, + {0x9636d734, 0xffffd852ffffdc38}, + {0x9636d735, 0xffffd852ffffdc39}, + {0x9636d736, 0xffffd852ffffdc3a}, + {0x9636d737, 0xffffd852ffffdc3b}, + {0x9636d738, 0xffffd852ffffdc3c}, + {0x9636d739, 0xffffd852ffffdc3d}, + {0x9636d830, 0xffffd852ffffdc3e}, + {0x9636d831, 0xffffd852ffffdc3f}, + {0x9636d832, 0xffffd852ffffdc40}, + {0x9636d833, 0xffffd852ffffdc41}, + {0x9636d834, 0xffffd852ffffdc42}, + {0x9636d835, 0xffffd852ffffdc43}, + {0x9636d836, 0xffffd852ffffdc44}, + {0x9636d837, 0xffffd852ffffdc45}, + {0x9636d838, 0xffffd852ffffdc46}, + {0x9636d839, 0xffffd852ffffdc47}, + {0x9636d930, 0xffffd852ffffdc48}, + {0x9636d931, 0xffffd852ffffdc49}, + {0x9636d932, 0xffffd852ffffdc4a}, + {0x9636d933, 0xffffd852ffffdc4b}, + {0x9636d934, 0xffffd852ffffdc4c}, + {0x9636d935, 0xffffd852ffffdc4d}, + {0x9636d936, 0xffffd852ffffdc4e}, + {0x9636d937, 0xffffd852ffffdc4f}, + {0x9636d938, 0xffffd852ffffdc50}, + {0x9636d939, 0xffffd852ffffdc51}, + {0x9636da30, 0xffffd852ffffdc52}, + {0x9636da31, 0xffffd852ffffdc53}, + {0x9636da32, 0xffffd852ffffdc54}, + {0x9636da33, 0xffffd852ffffdc55}, + {0x9636da34, 0xffffd852ffffdc56}, + {0x9636da35, 0xffffd852ffffdc57}, + {0x9636da36, 0xffffd852ffffdc58}, + {0x9636da37, 0xffffd852ffffdc59}, + {0x9636da38, 0xffffd852ffffdc5a}, + {0x9636da39, 0xffffd852ffffdc5b}, + {0x9636db30, 0xffffd852ffffdc5c}, + {0x9636db31, 0xffffd852ffffdc5d}, + {0x9636db32, 0xffffd852ffffdc5e}, + {0x9636db33, 0xffffd852ffffdc5f}, + {0x9636db34, 0xffffd852ffffdc60}, + {0x9636db35, 0xffffd852ffffdc61}, + {0x9636db36, 0xffffd852ffffdc62}, + {0x9636db37, 0xffffd852ffffdc63}, + {0x9636db38, 0xffffd852ffffdc64}, + {0x9636db39, 0xffffd852ffffdc65}, + {0x9636dc30, 0xffffd852ffffdc66}, + {0x9636dc31, 0xffffd852ffffdc67}, + {0x9636dc32, 0xffffd852ffffdc68}, + {0x9636dc33, 0xffffd852ffffdc69}, + {0x9636dc34, 0xffffd852ffffdc6a}, + {0x9636dc35, 0xffffd852ffffdc6b}, + {0x9636dc36, 0xffffd852ffffdc6c}, + {0x9636dc37, 0xffffd852ffffdc6d}, + {0x9636dc38, 0xffffd852ffffdc6e}, + {0x9636dc39, 0xffffd852ffffdc6f}, + {0x9636dd30, 0xffffd852ffffdc70}, + {0x9636dd31, 0xffffd852ffffdc71}, + {0x9636dd32, 0xffffd852ffffdc72}, + {0x9636dd33, 0xffffd852ffffdc73}, + {0x9636dd34, 0xffffd852ffffdc74}, + {0x9636dd35, 0xffffd852ffffdc75}, + {0x9636dd36, 0xffffd852ffffdc76}, + {0x9636dd37, 0xffffd852ffffdc77}, + {0x9636dd38, 0xffffd852ffffdc78}, + {0x9636dd39, 0xffffd852ffffdc79}, + {0x9636de30, 0xffffd852ffffdc7a}, + {0x9636de31, 0xffffd852ffffdc7b}, + {0x9636de32, 0xffffd852ffffdc7c}, + {0x9636de33, 0xffffd852ffffdc7d}, + {0x9636de34, 0xffffd852ffffdc7e}, + {0x9636de35, 0xffffd852ffffdc7f}, + {0x9636de36, 0xffffd852ffffdc80}, + {0x9636de37, 0xffffd852ffffdc81}, + {0x9636de38, 0xffffd852ffffdc82}, + {0x9636de39, 0xffffd852ffffdc83}, + {0x9636df30, 0xffffd852ffffdc84}, + {0x9636df31, 0xffffd852ffffdc85}, + {0x9636df32, 0xffffd852ffffdc86}, + {0x9636df33, 0xffffd852ffffdc87}, + {0x9636df34, 0xffffd852ffffdc88}, + {0x9636df35, 0xffffd852ffffdc89}, + {0x9636df36, 0xffffd852ffffdc8a}, + {0x9636df37, 0xffffd852ffffdc8b}, + {0x9636df38, 0xffffd852ffffdc8c}, + {0x9636df39, 0xffffd852ffffdc8d}, + {0x9636e030, 0xffffd852ffffdc8e}, + {0x9636e031, 0xffffd852ffffdc8f}, + {0x9636e032, 0xffffd852ffffdc90}, + {0x9636e033, 0xffffd852ffffdc91}, + {0x9636e034, 0xffffd852ffffdc92}, + {0x9636e035, 0xffffd852ffffdc93}, + {0x9636e036, 0xffffd852ffffdc94}, + {0x9636e037, 0xffffd852ffffdc95}, + {0x9636e038, 0xffffd852ffffdc96}, + {0x9636e039, 0xffffd852ffffdc97}, + {0x9636e130, 0xffffd852ffffdc98}, + {0x9636e131, 0xffffd852ffffdc99}, + {0x9636e132, 0xffffd852ffffdc9a}, + {0x9636e133, 0xffffd852ffffdc9b}, + {0x9636e134, 0xffffd852ffffdc9c}, + {0x9636e135, 0xffffd852ffffdc9d}, + {0x9636e136, 0xffffd852ffffdc9e}, + {0x9636e137, 0xffffd852ffffdc9f}, + {0x9636e138, 0xffffd852ffffdca0}, + {0x9636e139, 0xffffd852ffffdca1}, + {0x9636e230, 0xffffd852ffffdca2}, + {0x9636e231, 0xffffd852ffffdca3}, + {0x9636e232, 0xffffd852ffffdca4}, + {0x9636e233, 0xffffd852ffffdca5}, + {0x9636e234, 0xffffd852ffffdca6}, + {0x9636e235, 0xffffd852ffffdca7}, + {0x9636e236, 0xffffd852ffffdca8}, + {0x9636e237, 0xffffd852ffffdca9}, + {0x9636e238, 0xffffd852ffffdcaa}, + {0x9636e239, 0xffffd852ffffdcab}, + {0x9636e330, 0xffffd852ffffdcac}, + {0x9636e331, 0xffffd852ffffdcad}, + {0x9636e332, 0xffffd852ffffdcae}, + {0x9636e333, 0xffffd852ffffdcaf}, + {0x9636e334, 0xffffd852ffffdcb0}, + {0x9636e335, 0xffffd852ffffdcb1}, + {0x9636e336, 0xffffd852ffffdcb2}, + {0x9636e337, 0xffffd852ffffdcb3}, + {0x9636e338, 0xffffd852ffffdcb4}, + {0x9636e339, 0xffffd852ffffdcb5}, + {0x9636e430, 0xffffd852ffffdcb6}, + {0x9636e431, 0xffffd852ffffdcb7}, + {0x9636e432, 0xffffd852ffffdcb8}, + {0x9636e433, 0xffffd852ffffdcb9}, + {0x9636e434, 0xffffd852ffffdcba}, + {0x9636e435, 0xffffd852ffffdcbb}, + {0x9636e436, 0xffffd852ffffdcbc}, + {0x9636e437, 0xffffd852ffffdcbd}, + {0x9636e438, 0xffffd852ffffdcbe}, + {0x9636e439, 0xffffd852ffffdcbf}, + {0x9636e530, 0xffffd852ffffdcc0}, + {0x9636e531, 0xffffd852ffffdcc1}, + {0x9636e532, 0xffffd852ffffdcc2}, + {0x9636e533, 0xffffd852ffffdcc3}, + {0x9636e534, 0xffffd852ffffdcc4}, + {0x9636e535, 0xffffd852ffffdcc5}, + {0x9636e536, 0xffffd852ffffdcc6}, + {0x9636e537, 0xffffd852ffffdcc7}, + {0x9636e538, 0xffffd852ffffdcc8}, + {0x9636e539, 0xffffd852ffffdcc9}, + {0x9636e630, 0xffffd852ffffdcca}, + {0x9636e631, 0xffffd852ffffdccb}, + {0x9636e632, 0xffffd852ffffdccc}, + {0x9636e633, 0xffffd852ffffdccd}, + {0x9636e634, 0xffffd852ffffdcce}, + {0x9636e635, 0xffffd852ffffdccf}, + {0x9636e636, 0xffffd852ffffdcd0}, + {0x9636e637, 0xffffd852ffffdcd1}, + {0x9636e638, 0xffffd852ffffdcd2}, + {0x9636e639, 0xffffd852ffffdcd3}, + {0x9636e730, 0xffffd852ffffdcd4}, + {0x9636e731, 0xffffd852ffffdcd5}, + {0x9636e732, 0xffffd852ffffdcd6}, + {0x9636e733, 0xffffd852ffffdcd7}, + {0x9636e734, 0xffffd852ffffdcd8}, + {0x9636e735, 0xffffd852ffffdcd9}, + {0x9636e736, 0xffffd852ffffdcda}, + {0x9636e737, 0xffffd852ffffdcdb}, + {0x9636e738, 0xffffd852ffffdcdc}, + {0x9636e739, 0xffffd852ffffdcdd}, + {0x9636e830, 0xffffd852ffffdcde}, + {0x9636e831, 0xffffd852ffffdcdf}, + {0x9636e832, 0xffffd852ffffdce0}, + {0x9636e833, 0xffffd852ffffdce1}, + {0x9636e834, 0xffffd852ffffdce2}, + {0x9636e835, 0xffffd852ffffdce3}, + {0x9636e836, 0xffffd852ffffdce4}, + {0x9636e837, 0xffffd852ffffdce5}, + {0x9636e838, 0xffffd852ffffdce6}, + {0x9636e839, 0xffffd852ffffdce7}, + {0x9636e930, 0xffffd852ffffdce8}, + {0x9636e931, 0xffffd852ffffdce9}, + {0x9636e932, 0xffffd852ffffdcea}, + {0x9636e933, 0xffffd852ffffdceb}, + {0x9636e934, 0xffffd852ffffdcec}, + {0x9636e935, 0xffffd852ffffdced}, + {0x9636e936, 0xffffd852ffffdcee}, + {0x9636e937, 0xffffd852ffffdcef}, + {0x9636e938, 0xffffd852ffffdcf0}, + {0x9636e939, 0xffffd852ffffdcf1}, + {0x9636ea30, 0xffffd852ffffdcf2}, + {0x9636ea31, 0xffffd852ffffdcf3}, + {0x9636ea32, 0xffffd852ffffdcf4}, + {0x9636ea33, 0xffffd852ffffdcf5}, + {0x9636ea34, 0xffffd852ffffdcf6}, + {0x9636ea35, 0xffffd852ffffdcf7}, + {0x9636ea36, 0xffffd852ffffdcf8}, + {0x9636ea37, 0xffffd852ffffdcf9}, + {0x9636ea38, 0xffffd852ffffdcfa}, + {0x9636ea39, 0xffffd852ffffdcfb}, + {0x9636eb30, 0xffffd852ffffdcfc}, + {0x9636eb31, 0xffffd852ffffdcfd}, + {0x9636eb32, 0xffffd852ffffdcfe}, + {0x9636eb33, 0xffffd852ffffdcff}, + {0x9636eb34, 0xffffd852ffffdd00}, + {0x9636eb35, 0xffffd852ffffdd01}, + {0x9636eb36, 0xffffd852ffffdd02}, + {0x9636eb37, 0xffffd852ffffdd03}, + {0x9636eb38, 0xffffd852ffffdd04}, + {0x9636eb39, 0xffffd852ffffdd05}, + {0x9636ec30, 0xffffd852ffffdd06}, + {0x9636ec31, 0xffffd852ffffdd07}, + {0x9636ec32, 0xffffd852ffffdd08}, + {0x9636ec33, 0xffffd852ffffdd09}, + {0x9636ec34, 0xffffd852ffffdd0a}, + {0x9636ec35, 0xffffd852ffffdd0b}, + {0x9636ec36, 0xffffd852ffffdd0c}, + {0x9636ec37, 0xffffd852ffffdd0d}, + {0x9636ec38, 0xffffd852ffffdd0e}, + {0x9636ec39, 0xffffd852ffffdd0f}, + {0x9636ed30, 0xffffd852ffffdd10}, + {0x9636ed31, 0xffffd852ffffdd11}, + {0x9636ed32, 0xffffd852ffffdd12}, + {0x9636ed33, 0xffffd852ffffdd13}, + {0x9636ed34, 0xffffd852ffffdd14}, + {0x9636ed35, 0xffffd852ffffdd15}, + {0x9636ed36, 0xffffd852ffffdd16}, + {0x9636ed37, 0xffffd852ffffdd17}, + {0x9636ed38, 0xffffd852ffffdd18}, + {0x9636ed39, 0xffffd852ffffdd19}, + {0x9636ee30, 0xffffd852ffffdd1a}, + {0x9636ee31, 0xffffd852ffffdd1b}, + {0x9636ee32, 0xffffd852ffffdd1c}, + {0x9636ee33, 0xffffd852ffffdd1d}, + {0x9636ee34, 0xffffd852ffffdd1e}, + {0x9636ee35, 0xffffd852ffffdd1f}, + {0x9636ee36, 0xffffd852ffffdd20}, + {0x9636ee37, 0xffffd852ffffdd21}, + {0x9636ee38, 0xffffd852ffffdd22}, + {0x9636ee39, 0xffffd852ffffdd23}, + {0x9636ef30, 0xffffd852ffffdd24}, + {0x9636ef31, 0xffffd852ffffdd25}, + {0x9636ef32, 0xffffd852ffffdd26}, + {0x9636ef33, 0xffffd852ffffdd27}, + {0x9636ef34, 0xffffd852ffffdd28}, + {0x9636ef35, 0xffffd852ffffdd29}, + {0x9636ef36, 0xffffd852ffffdd2a}, + {0x9636ef37, 0xffffd852ffffdd2b}, + {0x9636ef38, 0xffffd852ffffdd2c}, + {0x9636ef39, 0xffffd852ffffdd2d}, + {0x9636f030, 0xffffd852ffffdd2e}, + {0x9636f031, 0xffffd852ffffdd2f}, + {0x9636f032, 0xffffd852ffffdd30}, + {0x9636f033, 0xffffd852ffffdd31}, + {0x9636f034, 0xffffd852ffffdd32}, + {0x9636f035, 0xffffd852ffffdd33}, + {0x9636f036, 0xffffd852ffffdd34}, + {0x9636f037, 0xffffd852ffffdd35}, + {0x9636f038, 0xffffd852ffffdd36}, + {0x9636f039, 0xffffd852ffffdd37}, + {0x9636f130, 0xffffd852ffffdd38}, + {0x9636f131, 0xffffd852ffffdd39}, + {0x9636f132, 0xffffd852ffffdd3a}, + {0x9636f133, 0xffffd852ffffdd3b}, + {0x9636f134, 0xffffd852ffffdd3c}, + {0x9636f135, 0xffffd852ffffdd3d}, + {0x9636f136, 0xffffd852ffffdd3e}, + {0x9636f137, 0xffffd852ffffdd3f}, + {0x9636f138, 0xffffd852ffffdd40}, + {0x9636f139, 0xffffd852ffffdd41}, + {0x9636f230, 0xffffd852ffffdd42}, + {0x9636f231, 0xffffd852ffffdd43}, + {0x9636f232, 0xffffd852ffffdd44}, + {0x9636f233, 0xffffd852ffffdd45}, + {0x9636f234, 0xffffd852ffffdd46}, + {0x9636f235, 0xffffd852ffffdd47}, + {0x9636f236, 0xffffd852ffffdd48}, + {0x9636f237, 0xffffd852ffffdd49}, + {0x9636f238, 0xffffd852ffffdd4a}, + {0x9636f239, 0xffffd852ffffdd4b}, + {0x9636f330, 0xffffd852ffffdd4c}, + {0x9636f331, 0xffffd852ffffdd4d}, + {0x9636f332, 0xffffd852ffffdd4e}, + {0x9636f333, 0xffffd852ffffdd4f}, + {0x9636f334, 0xffffd852ffffdd50}, + {0x9636f335, 0xffffd852ffffdd51}, + {0x9636f336, 0xffffd852ffffdd52}, + {0x9636f337, 0xffffd852ffffdd53}, + {0x9636f338, 0xffffd852ffffdd54}, + {0x9636f339, 0xffffd852ffffdd55}, + {0x9636f430, 0xffffd852ffffdd56}, + {0x9636f431, 0xffffd852ffffdd57}, + {0x9636f432, 0xffffd852ffffdd58}, + {0x9636f433, 0xffffd852ffffdd59}, + {0x9636f434, 0xffffd852ffffdd5a}, + {0x9636f435, 0xffffd852ffffdd5b}, + {0x9636f436, 0xffffd852ffffdd5c}, + {0x9636f437, 0xffffd852ffffdd5d}, + {0x9636f438, 0xffffd852ffffdd5e}, + {0x9636f439, 0xffffd852ffffdd5f}, + {0x9636f530, 0xffffd852ffffdd60}, + {0x9636f531, 0xffffd852ffffdd61}, + {0x9636f532, 0xffffd852ffffdd62}, + {0x9636f533, 0xffffd852ffffdd63}, + {0x9636f534, 0xffffd852ffffdd64}, + {0x9636f535, 0xffffd852ffffdd65}, + {0x9636f536, 0xffffd852ffffdd66}, + {0x9636f537, 0xffffd852ffffdd67}, + {0x9636f538, 0xffffd852ffffdd68}, + {0x9636f539, 0xffffd852ffffdd69}, + {0x9636f630, 0xffffd852ffffdd6a}, + {0x9636f631, 0xffffd852ffffdd6b}, + {0x9636f632, 0xffffd852ffffdd6c}, + {0x9636f633, 0xffffd852ffffdd6d}, + {0x9636f634, 0xffffd852ffffdd6e}, + {0x9636f635, 0xffffd852ffffdd6f}, + {0x9636f636, 0xffffd852ffffdd70}, + {0x9636f637, 0xffffd852ffffdd71}, + {0x9636f638, 0xffffd852ffffdd72}, + {0x9636f639, 0xffffd852ffffdd73}, + {0x9636f730, 0xffffd852ffffdd74}, + {0x9636f731, 0xffffd852ffffdd75}, + {0x9636f732, 0xffffd852ffffdd76}, + {0x9636f733, 0xffffd852ffffdd77}, + {0x9636f734, 0xffffd852ffffdd78}, + {0x9636f735, 0xffffd852ffffdd79}, + {0x9636f736, 0xffffd852ffffdd7a}, + {0x9636f737, 0xffffd852ffffdd7b}, + {0x9636f738, 0xffffd852ffffdd7c}, + {0x9636f739, 0xffffd852ffffdd7d}, + {0x9636f830, 0xffffd852ffffdd7e}, + {0x9636f831, 0xffffd852ffffdd7f}, + {0x9636f832, 0xffffd852ffffdd80}, + {0x9636f833, 0xffffd852ffffdd81}, + {0x9636f834, 0xffffd852ffffdd82}, + {0x9636f835, 0xffffd852ffffdd83}, + {0x9636f836, 0xffffd852ffffdd84}, + {0x9636f837, 0xffffd852ffffdd85}, + {0x9636f838, 0xffffd852ffffdd86}, + {0x9636f839, 0xffffd852ffffdd87}, + {0x9636f930, 0xffffd852ffffdd88}, + {0x9636f931, 0xffffd852ffffdd89}, + {0x9636f932, 0xffffd852ffffdd8a}, + {0x9636f933, 0xffffd852ffffdd8b}, + {0x9636f934, 0xffffd852ffffdd8c}, + {0x9636f935, 0xffffd852ffffdd8d}, + {0x9636f936, 0xffffd852ffffdd8e}, + {0x9636f937, 0xffffd852ffffdd8f}, + {0x9636f938, 0xffffd852ffffdd90}, + {0x9636f939, 0xffffd852ffffdd91}, + {0x9636fa30, 0xffffd852ffffdd92}, + {0x9636fa31, 0xffffd852ffffdd93}, + {0x9636fa32, 0xffffd852ffffdd94}, + {0x9636fa33, 0xffffd852ffffdd95}, + {0x9636fa34, 0xffffd852ffffdd96}, + {0x9636fa35, 0xffffd852ffffdd97}, + {0x9636fa36, 0xffffd852ffffdd98}, + {0x9636fa37, 0xffffd852ffffdd99}, + {0x9636fa38, 0xffffd852ffffdd9a}, + {0x9636fa39, 0xffffd852ffffdd9b}, + {0x9636fb30, 0xffffd852ffffdd9c}, + {0x9636fb31, 0xffffd852ffffdd9d}, + {0x9636fb32, 0xffffd852ffffdd9e}, + {0x9636fb33, 0xffffd852ffffdd9f}, + {0x9636fb34, 0xffffd852ffffdda0}, + {0x9636fb35, 0xffffd852ffffdda1}, + {0x9636fb36, 0xffffd852ffffdda2}, + {0x9636fb37, 0xffffd852ffffdda3}, + {0x9636fb38, 0xffffd852ffffdda4}, + {0x9636fb39, 0xffffd852ffffdda5}, + {0x9636fc30, 0xffffd852ffffdda6}, + {0x9636fc31, 0xffffd852ffffdda7}, + {0x9636fc32, 0xffffd852ffffdda8}, + {0x9636fc33, 0xffffd852ffffdda9}, + {0x9636fc34, 0xffffd852ffffddaa}, + {0x9636fc35, 0xffffd852ffffddab}, + {0x9636fc36, 0xffffd852ffffddac}, + {0x9636fc37, 0xffffd852ffffddad}, + {0x9636fc38, 0xffffd852ffffddae}, + {0x9636fc39, 0xffffd852ffffddaf}, + {0x9636fd30, 0xffffd852ffffddb0}, + {0x9636fd31, 0xffffd852ffffddb1}, + {0x9636fd32, 0xffffd852ffffddb2}, + {0x9636fd33, 0xffffd852ffffddb3}, + {0x9636fd34, 0xffffd852ffffddb4}, + {0x9636fd35, 0xffffd852ffffddb5}, + {0x9636fd36, 0xffffd852ffffddb6}, + {0x9636fd37, 0xffffd852ffffddb7}, + {0x9636fd38, 0xffffd852ffffddb8}, + {0x9636fd39, 0xffffd852ffffddb9}, + {0x9636fe30, 0xffffd852ffffddba}, + {0x9636fe31, 0xffffd852ffffddbb}, + {0x9636fe32, 0xffffd852ffffddbc}, + {0x9636fe33, 0xffffd852ffffddbd}, + {0x9636fe34, 0xffffd852ffffddbe}, + {0x9636fe35, 0xffffd852ffffddbf}, + {0x9636fe36, 0xffffd852ffffddc0}, + {0x9636fe37, 0xffffd852ffffddc1}, + {0x9636fe38, 0xffffd852ffffddc2}, + {0x9636fe39, 0xffffd852ffffddc3}, + {0x96378130, 0xffffd852ffffddc4}, + {0x96378131, 0xffffd852ffffddc5}, + {0x96378132, 0xffffd852ffffddc6}, + {0x96378133, 0xffffd852ffffddc7}, + {0x96378134, 0xffffd852ffffddc8}, + {0x96378135, 0xffffd852ffffddc9}, + {0x96378136, 0xffffd852ffffddca}, + {0x96378137, 0xffffd852ffffddcb}, + {0x96378138, 0xffffd852ffffddcc}, + {0x96378139, 0xffffd852ffffddcd}, + {0x96378230, 0xffffd852ffffddce}, + {0x96378231, 0xffffd852ffffddcf}, + {0x96378232, 0xffffd852ffffddd0}, + {0x96378233, 0xffffd852ffffddd1}, + {0x96378234, 0xffffd852ffffddd2}, + {0x96378235, 0xffffd852ffffddd3}, + {0x96378236, 0xffffd852ffffddd4}, + {0x96378237, 0xffffd852ffffddd5}, + {0x96378238, 0xffffd852ffffddd6}, + {0x96378239, 0xffffd852ffffddd7}, + {0x96378330, 0xffffd852ffffddd8}, + {0x96378331, 0xffffd852ffffddd9}, + {0x96378332, 0xffffd852ffffddda}, + {0x96378333, 0xffffd852ffffdddb}, + {0x96378334, 0xffffd852ffffdddc}, + {0x96378335, 0xffffd852ffffdddd}, + {0x96378336, 0xffffd852ffffddde}, + {0x96378337, 0xffffd852ffffdddf}, + {0x96378338, 0xffffd852ffffdde0}, + {0x96378339, 0xffffd852ffffdde1}, + {0x96378430, 0xffffd852ffffdde2}, + {0x96378431, 0xffffd852ffffdde3}, + {0x96378432, 0xffffd852ffffdde4}, + {0x96378433, 0xffffd852ffffdde5}, + {0x96378434, 0xffffd852ffffdde6}, + {0x96378435, 0xffffd852ffffdde7}, + {0x96378436, 0xffffd852ffffdde8}, + {0x96378437, 0xffffd852ffffdde9}, + {0x96378438, 0xffffd852ffffddea}, + {0x96378439, 0xffffd852ffffddeb}, + {0x96378530, 0xffffd852ffffddec}, + {0x96378531, 0xffffd852ffffdded}, + {0x96378532, 0xffffd852ffffddee}, + {0x96378533, 0xffffd852ffffddef}, + {0x96378534, 0xffffd852ffffddf0}, + {0x96378535, 0xffffd852ffffddf1}, + {0x96378536, 0xffffd852ffffddf2}, + {0x96378537, 0xffffd852ffffddf3}, + {0x96378538, 0xffffd852ffffddf4}, + {0x96378539, 0xffffd852ffffddf5}, + {0x96378630, 0xffffd852ffffddf6}, + {0x96378631, 0xffffd852ffffddf7}, + {0x96378632, 0xffffd852ffffddf8}, + {0x96378633, 0xffffd852ffffddf9}, + {0x96378634, 0xffffd852ffffddfa}, + {0x96378635, 0xffffd852ffffddfb}, + {0x96378636, 0xffffd852ffffddfc}, + {0x96378637, 0xffffd852ffffddfd}, + {0x96378638, 0xffffd852ffffddfe}, + {0x96378639, 0xffffd852ffffddff}, + {0x96378730, 0xffffd852ffffde00}, + {0x96378731, 0xffffd852ffffde01}, + {0x96378732, 0xffffd852ffffde02}, + {0x96378733, 0xffffd852ffffde03}, + {0x96378734, 0xffffd852ffffde04}, + {0x96378735, 0xffffd852ffffde05}, + {0x96378736, 0xffffd852ffffde06}, + {0x96378737, 0xffffd852ffffde07}, + {0x96378738, 0xffffd852ffffde08}, + {0x96378739, 0xffffd852ffffde09}, + {0x96378830, 0xffffd852ffffde0a}, + {0x96378831, 0xffffd852ffffde0b}, + {0x96378832, 0xffffd852ffffde0c}, + {0x96378833, 0xffffd852ffffde0d}, + {0x96378834, 0xffffd852ffffde0e}, + {0x96378835, 0xffffd852ffffde0f}, + {0x96378836, 0xffffd852ffffde10}, + {0x96378837, 0xffffd852ffffde11}, + {0x96378838, 0xffffd852ffffde12}, + {0x96378839, 0xffffd852ffffde13}, + {0x96378930, 0xffffd852ffffde14}, + {0x96378931, 0xffffd852ffffde15}, + {0x96378932, 0xffffd852ffffde16}, + {0x96378933, 0xffffd852ffffde17}, + {0x96378934, 0xffffd852ffffde18}, + {0x96378935, 0xffffd852ffffde19}, + {0x96378936, 0xffffd852ffffde1a}, + {0x96378937, 0xffffd852ffffde1b}, + {0x96378938, 0xffffd852ffffde1c}, + {0x96378939, 0xffffd852ffffde1d}, + {0x96378a30, 0xffffd852ffffde1e}, + {0x96378a31, 0xffffd852ffffde1f}, + {0x96378a32, 0xffffd852ffffde20}, + {0x96378a33, 0xffffd852ffffde21}, + {0x96378a34, 0xffffd852ffffde22}, + {0x96378a35, 0xffffd852ffffde23}, + {0x96378a36, 0xffffd852ffffde24}, + {0x96378a37, 0xffffd852ffffde25}, + {0x96378a38, 0xffffd852ffffde26}, + {0x96378a39, 0xffffd852ffffde27}, + {0x96378b30, 0xffffd852ffffde28}, + {0x96378b31, 0xffffd852ffffde29}, + {0x96378b32, 0xffffd852ffffde2a}, + {0x96378b33, 0xffffd852ffffde2b}, + {0x96378b34, 0xffffd852ffffde2c}, + {0x96378b35, 0xffffd852ffffde2d}, + {0x96378b36, 0xffffd852ffffde2e}, + {0x96378b37, 0xffffd852ffffde2f}, + {0x96378b38, 0xffffd852ffffde30}, + {0x96378b39, 0xffffd852ffffde31}, + {0x96378c30, 0xffffd852ffffde32}, + {0x96378c31, 0xffffd852ffffde33}, + {0x96378c32, 0xffffd852ffffde34}, + {0x96378c33, 0xffffd852ffffde35}, + {0x96378c34, 0xffffd852ffffde36}, + {0x96378c35, 0xffffd852ffffde37}, + {0x96378c36, 0xffffd852ffffde38}, + {0x96378c37, 0xffffd852ffffde39}, + {0x96378c38, 0xffffd852ffffde3a}, + {0x96378c39, 0xffffd852ffffde3b}, + {0x96378d30, 0xffffd852ffffde3c}, + {0x96378d31, 0xffffd852ffffde3d}, + {0x96378d32, 0xffffd852ffffde3e}, + {0x96378d33, 0xffffd852ffffde3f}, + {0x96378d34, 0xffffd852ffffde40}, + {0x96378d35, 0xffffd852ffffde41}, + {0x96378d36, 0xffffd852ffffde42}, + {0x96378d37, 0xffffd852ffffde43}, + {0x96378d38, 0xffffd852ffffde44}, + {0x96378d39, 0xffffd852ffffde45}, + {0x96378e30, 0xffffd852ffffde46}, + {0x96378e31, 0xffffd852ffffde47}, + {0x96378e32, 0xffffd852ffffde48}, + {0x96378e33, 0xffffd852ffffde49}, + {0x96378e34, 0xffffd852ffffde4a}, + {0x96378e35, 0xffffd852ffffde4b}, + {0x96378e36, 0xffffd852ffffde4c}, + {0x96378e37, 0xffffd852ffffde4d}, + {0x96378e38, 0xffffd852ffffde4e}, + {0x96378e39, 0xffffd852ffffde4f}, + {0x96378f30, 0xffffd852ffffde50}, + {0x96378f31, 0xffffd852ffffde51}, + {0x96378f32, 0xffffd852ffffde52}, + {0x96378f33, 0xffffd852ffffde53}, + {0x96378f34, 0xffffd852ffffde54}, + {0x96378f35, 0xffffd852ffffde55}, + {0x96378f36, 0xffffd852ffffde56}, + {0x96378f37, 0xffffd852ffffde57}, + {0x96378f38, 0xffffd852ffffde58}, + {0x96378f39, 0xffffd852ffffde59}, + {0x96379030, 0xffffd852ffffde5a}, + {0x96379031, 0xffffd852ffffde5b}, + {0x96379032, 0xffffd852ffffde5c}, + {0x96379033, 0xffffd852ffffde5d}, + {0x96379034, 0xffffd852ffffde5e}, + {0x96379035, 0xffffd852ffffde5f}, + {0x96379036, 0xffffd852ffffde60}, + {0x96379037, 0xffffd852ffffde61}, + {0x96379038, 0xffffd852ffffde62}, + {0x96379039, 0xffffd852ffffde63}, + {0x96379130, 0xffffd852ffffde64}, + {0x96379131, 0xffffd852ffffde65}, + {0x96379132, 0xffffd852ffffde66}, + {0x96379133, 0xffffd852ffffde67}, + {0x96379134, 0xffffd852ffffde68}, + {0x96379135, 0xffffd852ffffde69}, + {0x96379136, 0xffffd852ffffde6a}, + {0x96379137, 0xffffd852ffffde6b}, + {0x96379138, 0xffffd852ffffde6c}, + {0x96379139, 0xffffd852ffffde6d}, + {0x96379230, 0xffffd852ffffde6e}, + {0x96379231, 0xffffd852ffffde6f}, + {0x96379232, 0xffffd852ffffde70}, + {0x96379233, 0xffffd852ffffde71}, + {0x96379234, 0xffffd852ffffde72}, + {0x96379235, 0xffffd852ffffde73}, + {0x96379236, 0xffffd852ffffde74}, + {0x96379237, 0xffffd852ffffde75}, + {0x96379238, 0xffffd852ffffde76}, + {0x96379239, 0xffffd852ffffde77}, + {0x96379330, 0xffffd852ffffde78}, + {0x96379331, 0xffffd852ffffde79}, + {0x96379332, 0xffffd852ffffde7a}, + {0x96379333, 0xffffd852ffffde7b}, + {0x96379334, 0xffffd852ffffde7c}, + {0x96379335, 0xffffd852ffffde7d}, + {0x96379336, 0xffffd852ffffde7e}, + {0x96379337, 0xffffd852ffffde7f}, + {0x96379338, 0xffffd852ffffde80}, + {0x96379339, 0xffffd852ffffde81}, + {0x96379430, 0xffffd852ffffde82}, + {0x96379431, 0xffffd852ffffde83}, + {0x96379432, 0xffffd852ffffde84}, + {0x96379433, 0xffffd852ffffde85}, + {0x96379434, 0xffffd852ffffde86}, + {0x96379435, 0xffffd852ffffde87}, + {0x96379436, 0xffffd852ffffde88}, + {0x96379437, 0xffffd852ffffde89}, + {0x96379438, 0xffffd852ffffde8a}, + {0x96379439, 0xffffd852ffffde8b}, + {0x96379530, 0xffffd852ffffde8c}, + {0x96379531, 0xffffd852ffffde8d}, + {0x96379532, 0xffffd852ffffde8e}, + {0x96379533, 0xffffd852ffffde8f}, + {0x96379534, 0xffffd852ffffde90}, + {0x96379535, 0xffffd852ffffde91}, + {0x96379536, 0xffffd852ffffde92}, + {0x96379537, 0xffffd852ffffde93}, + {0x96379538, 0xffffd852ffffde94}, + {0x96379539, 0xffffd852ffffde95}, + {0x96379630, 0xffffd852ffffde96}, + {0x96379631, 0xffffd852ffffde97}, + {0x96379632, 0xffffd852ffffde98}, + {0x96379633, 0xffffd852ffffde99}, + {0x96379634, 0xffffd852ffffde9a}, + {0x96379635, 0xffffd852ffffde9b}, + {0x96379636, 0xffffd852ffffde9c}, + {0x96379637, 0xffffd852ffffde9d}, + {0x96379638, 0xffffd852ffffde9e}, + {0x96379639, 0xffffd852ffffde9f}, + {0x96379730, 0xffffd852ffffdea0}, + {0x96379731, 0xffffd852ffffdea1}, + {0x96379732, 0xffffd852ffffdea2}, + {0x96379733, 0xffffd852ffffdea3}, + {0x96379734, 0xffffd852ffffdea4}, + {0x96379735, 0xffffd852ffffdea5}, + {0x96379736, 0xffffd852ffffdea6}, + {0x96379737, 0xffffd852ffffdea7}, + {0x96379738, 0xffffd852ffffdea8}, + {0x96379739, 0xffffd852ffffdea9}, + {0x96379830, 0xffffd852ffffdeaa}, + {0x96379831, 0xffffd852ffffdeab}, + {0x96379832, 0xffffd852ffffdeac}, + {0x96379833, 0xffffd852ffffdead}, + {0x96379834, 0xffffd852ffffdeae}, + {0x96379835, 0xffffd852ffffdeaf}, + {0x96379836, 0xffffd852ffffdeb0}, + {0x96379837, 0xffffd852ffffdeb1}, + {0x96379838, 0xffffd852ffffdeb2}, + {0x96379839, 0xffffd852ffffdeb3}, + {0x96379930, 0xffffd852ffffdeb4}, + {0x96379931, 0xffffd852ffffdeb5}, + {0x96379932, 0xffffd852ffffdeb6}, + {0x96379933, 0xffffd852ffffdeb7}, + {0x96379934, 0xffffd852ffffdeb8}, + {0x96379935, 0xffffd852ffffdeb9}, + {0x96379936, 0xffffd852ffffdeba}, + {0x96379937, 0xffffd852ffffdebb}, + {0x96379938, 0xffffd852ffffdebc}, + {0x96379939, 0xffffd852ffffdebd}, + {0x96379a30, 0xffffd852ffffdebe}, + {0x96379a31, 0xffffd852ffffdebf}, + {0x96379a32, 0xffffd852ffffdec0}, + {0x96379a33, 0xffffd852ffffdec1}, + {0x96379a34, 0xffffd852ffffdec2}, + {0x96379a35, 0xffffd852ffffdec3}, + {0x96379a36, 0xffffd852ffffdec4}, + {0x96379a37, 0xffffd852ffffdec5}, + {0x96379a38, 0xffffd852ffffdec6}, + {0x96379a39, 0xffffd852ffffdec7}, + {0x96379b30, 0xffffd852ffffdec8}, + {0x96379b31, 0xffffd852ffffdec9}, + {0x96379b32, 0xffffd852ffffdeca}, + {0x96379b33, 0xffffd852ffffdecb}, + {0x96379b34, 0xffffd852ffffdecc}, + {0x96379b35, 0xffffd852ffffdecd}, + {0x96379b36, 0xffffd852ffffdece}, + {0x96379b37, 0xffffd852ffffdecf}, + {0x96379b38, 0xffffd852ffffded0}, + {0x96379b39, 0xffffd852ffffded1}, + {0x96379c30, 0xffffd852ffffded2}, + {0x96379c31, 0xffffd852ffffded3}, + {0x96379c32, 0xffffd852ffffded4}, + {0x96379c33, 0xffffd852ffffded5}, + {0x96379c34, 0xffffd852ffffded6}, + {0x96379c35, 0xffffd852ffffded7}, + {0x96379c36, 0xffffd852ffffded8}, + {0x96379c37, 0xffffd852ffffded9}, + {0x96379c38, 0xffffd852ffffdeda}, + {0x96379c39, 0xffffd852ffffdedb}, + {0x96379d30, 0xffffd852ffffdedc}, + {0x96379d31, 0xffffd852ffffdedd}, + {0x96379d32, 0xffffd852ffffdede}, + {0x96379d33, 0xffffd852ffffdedf}, + {0x96379d34, 0xffffd852ffffdee0}, + {0x96379d35, 0xffffd852ffffdee1}, + {0x96379d36, 0xffffd852ffffdee2}, + {0x96379d37, 0xffffd852ffffdee3}, + {0x96379d38, 0xffffd852ffffdee4}, + {0x96379d39, 0xffffd852ffffdee5}, + {0x96379e30, 0xffffd852ffffdee6}, + {0x96379e31, 0xffffd852ffffdee7}, + {0x96379e32, 0xffffd852ffffdee8}, + {0x96379e33, 0xffffd852ffffdee9}, + {0x96379e34, 0xffffd852ffffdeea}, + {0x96379e35, 0xffffd852ffffdeeb}, + {0x96379e36, 0xffffd852ffffdeec}, + {0x96379e37, 0xffffd852ffffdeed}, + {0x96379e38, 0xffffd852ffffdeee}, + {0x96379e39, 0xffffd852ffffdeef}, + {0x96379f30, 0xffffd852ffffdef0}, + {0x96379f31, 0xffffd852ffffdef1}, + {0x96379f32, 0xffffd852ffffdef2}, + {0x96379f33, 0xffffd852ffffdef3}, + {0x96379f34, 0xffffd852ffffdef4}, + {0x96379f35, 0xffffd852ffffdef5}, + {0x96379f36, 0xffffd852ffffdef6}, + {0x96379f37, 0xffffd852ffffdef7}, + {0x96379f38, 0xffffd852ffffdef8}, + {0x96379f39, 0xffffd852ffffdef9}, + {0x9637a030, 0xffffd852ffffdefa}, + {0x9637a031, 0xffffd852ffffdefb}, + {0x9637a032, 0xffffd852ffffdefc}, + {0x9637a033, 0xffffd852ffffdefd}, + {0x9637a034, 0xffffd852ffffdefe}, + {0x9637a035, 0xffffd852ffffdeff}, + {0x9637a036, 0xffffd852ffffdf00}, + {0x9637a037, 0xffffd852ffffdf01}, + {0x9637a038, 0xffffd852ffffdf02}, + {0x9637a039, 0xffffd852ffffdf03}, + {0x9637a130, 0xffffd852ffffdf04}, + {0x9637a131, 0xffffd852ffffdf05}, + {0x9637a132, 0xffffd852ffffdf06}, + {0x9637a133, 0xffffd852ffffdf07}, + {0x9637a134, 0xffffd852ffffdf08}, + {0x9637a135, 0xffffd852ffffdf09}, + {0x9637a136, 0xffffd852ffffdf0a}, + {0x9637a137, 0xffffd852ffffdf0b}, + {0x9637a138, 0xffffd852ffffdf0c}, + {0x9637a139, 0xffffd852ffffdf0d}, + {0x9637a230, 0xffffd852ffffdf0e}, + {0x9637a231, 0xffffd852ffffdf0f}, + {0x9637a232, 0xffffd852ffffdf10}, + {0x9637a233, 0xffffd852ffffdf11}, + {0x9637a234, 0xffffd852ffffdf12}, + {0x9637a235, 0xffffd852ffffdf13}, + {0x9637a236, 0xffffd852ffffdf14}, + {0x9637a237, 0xffffd852ffffdf15}, + {0x9637a238, 0xffffd852ffffdf16}, + {0x9637a239, 0xffffd852ffffdf17}, + {0x9637a330, 0xffffd852ffffdf18}, + {0x9637a331, 0xffffd852ffffdf19}, + {0x9637a332, 0xffffd852ffffdf1a}, + {0x9637a333, 0xffffd852ffffdf1b}, + {0x9637a334, 0xffffd852ffffdf1c}, + {0x9637a335, 0xffffd852ffffdf1d}, + {0x9637a336, 0xffffd852ffffdf1e}, + {0x9637a337, 0xffffd852ffffdf1f}, + {0x9637a338, 0xffffd852ffffdf20}, + {0x9637a339, 0xffffd852ffffdf21}, + {0x9637a430, 0xffffd852ffffdf22}, + {0x9637a431, 0xffffd852ffffdf23}, + {0x9637a432, 0xffffd852ffffdf24}, + {0x9637a433, 0xffffd852ffffdf25}, + {0x9637a434, 0xffffd852ffffdf26}, + {0x9637a435, 0xffffd852ffffdf27}, + {0x9637a436, 0xffffd852ffffdf28}, + {0x9637a437, 0xffffd852ffffdf29}, + {0x9637a438, 0xffffd852ffffdf2a}, + {0x9637a439, 0xffffd852ffffdf2b}, + {0x9637a530, 0xffffd852ffffdf2c}, + {0x9637a531, 0xffffd852ffffdf2d}, + {0x9637a532, 0xffffd852ffffdf2e}, + {0x9637a533, 0xffffd852ffffdf2f}, + {0x9637a534, 0xffffd852ffffdf30}, + {0x9637a535, 0xffffd852ffffdf31}, + {0x9637a536, 0xffffd852ffffdf32}, + {0x9637a537, 0xffffd852ffffdf33}, + {0x9637a538, 0xffffd852ffffdf34}, + {0x9637a539, 0xffffd852ffffdf35}, + {0x9637a630, 0xffffd852ffffdf36}, + {0x9637a631, 0xffffd852ffffdf37}, + {0x9637a632, 0xffffd852ffffdf38}, + {0x9637a633, 0xffffd852ffffdf39}, + {0x9637a634, 0xffffd852ffffdf3a}, + {0x9637a635, 0xffffd852ffffdf3b}, + {0x9637a636, 0xffffd852ffffdf3c}, + {0x9637a637, 0xffffd852ffffdf3d}, + {0x9637a638, 0xffffd852ffffdf3e}, + {0x9637a639, 0xffffd852ffffdf3f}, + {0x9637a730, 0xffffd852ffffdf40}, + {0x9637a731, 0xffffd852ffffdf41}, + {0x9637a732, 0xffffd852ffffdf42}, + {0x9637a733, 0xffffd852ffffdf43}, + {0x9637a734, 0xffffd852ffffdf44}, + {0x9637a735, 0xffffd852ffffdf45}, + {0x9637a736, 0xffffd852ffffdf46}, + {0x9637a737, 0xffffd852ffffdf47}, + {0x9637a738, 0xffffd852ffffdf48}, + {0x9637a739, 0xffffd852ffffdf49}, + {0x9637a830, 0xffffd852ffffdf4a}, + {0x9637a831, 0xffffd852ffffdf4b}, + {0x9637a832, 0xffffd852ffffdf4c}, + {0x9637a833, 0xffffd852ffffdf4d}, + {0x9637a834, 0xffffd852ffffdf4e}, + {0x9637a835, 0xffffd852ffffdf4f}, + {0x9637a836, 0xffffd852ffffdf50}, + {0x9637a837, 0xffffd852ffffdf51}, + {0x9637a838, 0xffffd852ffffdf52}, + {0x9637a839, 0xffffd852ffffdf53}, + {0x9637a930, 0xffffd852ffffdf54}, + {0x9637a931, 0xffffd852ffffdf55}, + {0x9637a932, 0xffffd852ffffdf56}, + {0x9637a933, 0xffffd852ffffdf57}, + {0x9637a934, 0xffffd852ffffdf58}, + {0x9637a935, 0xffffd852ffffdf59}, + {0x9637a936, 0xffffd852ffffdf5a}, + {0x9637a937, 0xffffd852ffffdf5b}, + {0x9637a938, 0xffffd852ffffdf5c}, + {0x9637a939, 0xffffd852ffffdf5d}, + {0x9637aa30, 0xffffd852ffffdf5e}, + {0x9637aa31, 0xffffd852ffffdf5f}, + {0x9637aa32, 0xffffd852ffffdf60}, + {0x9637aa33, 0xffffd852ffffdf61}, + {0x9637aa34, 0xffffd852ffffdf62}, + {0x9637aa35, 0xffffd852ffffdf63}, + {0x9637aa36, 0xffffd852ffffdf64}, + {0x9637aa37, 0xffffd852ffffdf65}, + {0x9637aa38, 0xffffd852ffffdf66}, + {0x9637aa39, 0xffffd852ffffdf67}, + {0x9637ab30, 0xffffd852ffffdf68}, + {0x9637ab31, 0xffffd852ffffdf69}, + {0x9637ab32, 0xffffd852ffffdf6a}, + {0x9637ab33, 0xffffd852ffffdf6b}, + {0x9637ab34, 0xffffd852ffffdf6c}, + {0x9637ab35, 0xffffd852ffffdf6d}, + {0x9637ab36, 0xffffd852ffffdf6e}, + {0x9637ab37, 0xffffd852ffffdf6f}, + {0x9637ab38, 0xffffd852ffffdf70}, + {0x9637ab39, 0xffffd852ffffdf71}, + {0x9637ac30, 0xffffd852ffffdf72}, + {0x9637ac31, 0xffffd852ffffdf73}, + {0x9637ac32, 0xffffd852ffffdf74}, + {0x9637ac33, 0xffffd852ffffdf75}, + {0x9637ac34, 0xffffd852ffffdf76}, + {0x9637ac35, 0xffffd852ffffdf77}, + {0x9637ac36, 0xffffd852ffffdf78}, + {0x9637ac37, 0xffffd852ffffdf79}, + {0x9637ac38, 0xffffd852ffffdf7a}, + {0x9637ac39, 0xffffd852ffffdf7b}, + {0x9637ad30, 0xffffd852ffffdf7c}, + {0x9637ad31, 0xffffd852ffffdf7d}, + {0x9637ad32, 0xffffd852ffffdf7e}, + {0x9637ad33, 0xffffd852ffffdf7f}, + {0x9637ad34, 0xffffd852ffffdf80}, + {0x9637ad35, 0xffffd852ffffdf81}, + {0x9637ad36, 0xffffd852ffffdf82}, + {0x9637ad37, 0xffffd852ffffdf83}, + {0x9637ad38, 0xffffd852ffffdf84}, + {0x9637ad39, 0xffffd852ffffdf85}, + {0x9637ae30, 0xffffd852ffffdf86}, + {0x9637ae31, 0xffffd852ffffdf87}, + {0x9637ae32, 0xffffd852ffffdf88}, + {0x9637ae33, 0xffffd852ffffdf89}, + {0x9637ae34, 0xffffd852ffffdf8a}, + {0x9637ae35, 0xffffd852ffffdf8b}, + {0x9637ae36, 0xffffd852ffffdf8c}, + {0x9637ae37, 0xffffd852ffffdf8d}, + {0x9637ae38, 0xffffd852ffffdf8e}, + {0x9637ae39, 0xffffd852ffffdf8f}, + {0x9637af30, 0xffffd852ffffdf90}, + {0x9637af31, 0xffffd852ffffdf91}, + {0x9637af32, 0xffffd852ffffdf92}, + {0x9637af33, 0xffffd852ffffdf93}, + {0x9637af34, 0xffffd852ffffdf94}, + {0x9637af35, 0xffffd852ffffdf95}, + {0x9637af36, 0xffffd852ffffdf96}, + {0x9637af37, 0xffffd852ffffdf97}, + {0x9637af38, 0xffffd852ffffdf98}, + {0x9637af39, 0xffffd852ffffdf99}, + {0x9637b030, 0xffffd852ffffdf9a}, + {0x9637b031, 0xffffd852ffffdf9b}, + {0x9637b032, 0xffffd852ffffdf9c}, + {0x9637b033, 0xffffd852ffffdf9d}, + {0x9637b034, 0xffffd852ffffdf9e}, + {0x9637b035, 0xffffd852ffffdf9f}, + {0x9637b036, 0xffffd852ffffdfa0}, + {0x9637b037, 0xffffd852ffffdfa1}, + {0x9637b038, 0xffffd852ffffdfa2}, + {0x9637b039, 0xffffd852ffffdfa3}, + {0x9637b130, 0xffffd852ffffdfa4}, + {0x9637b131, 0xffffd852ffffdfa5}, + {0x9637b132, 0xffffd852ffffdfa6}, + {0x9637b133, 0xffffd852ffffdfa7}, + {0x9637b134, 0xffffd852ffffdfa8}, + {0x9637b135, 0xffffd852ffffdfa9}, + {0x9637b136, 0xffffd852ffffdfaa}, + {0x9637b137, 0xffffd852ffffdfab}, + {0x9637b138, 0xffffd852ffffdfac}, + {0x9637b139, 0xffffd852ffffdfad}, + {0x9637b230, 0xffffd852ffffdfae}, + {0x9637b231, 0xffffd852ffffdfaf}, + {0x9637b232, 0xffffd852ffffdfb0}, + {0x9637b233, 0xffffd852ffffdfb1}, + {0x9637b234, 0xffffd852ffffdfb2}, + {0x9637b235, 0xffffd852ffffdfb3}, + {0x9637b236, 0xffffd852ffffdfb4}, + {0x9637b237, 0xffffd852ffffdfb5}, + {0x9637b238, 0xffffd852ffffdfb6}, + {0x9637b239, 0xffffd852ffffdfb7}, + {0x9637b330, 0xffffd852ffffdfb8}, + {0x9637b331, 0xffffd852ffffdfb9}, + {0x9637b332, 0xffffd852ffffdfba}, + {0x9637b333, 0xffffd852ffffdfbb}, + {0x9637b334, 0xffffd852ffffdfbc}, + {0x9637b335, 0xffffd852ffffdfbd}, + {0x9637b336, 0xffffd852ffffdfbe}, + {0x9637b337, 0xffffd852ffffdfbf}, + {0x9637b338, 0xffffd852ffffdfc0}, + {0x9637b339, 0xffffd852ffffdfc1}, + {0x9637b430, 0xffffd852ffffdfc2}, + {0x9637b431, 0xffffd852ffffdfc3}, + {0x9637b432, 0xffffd852ffffdfc4}, + {0x9637b433, 0xffffd852ffffdfc5}, + {0x9637b434, 0xffffd852ffffdfc6}, + {0x9637b435, 0xffffd852ffffdfc7}, + {0x9637b436, 0xffffd852ffffdfc8}, + {0x9637b437, 0xffffd852ffffdfc9}, + {0x9637b438, 0xffffd852ffffdfca}, + {0x9637b439, 0xffffd852ffffdfcb}, + {0x9637b530, 0xffffd852ffffdfcc}, + {0x9637b531, 0xffffd852ffffdfcd}, + {0x9637b532, 0xffffd852ffffdfce}, + {0x9637b533, 0xffffd852ffffdfcf}, + {0x9637b534, 0xffffd852ffffdfd0}, + {0x9637b535, 0xffffd852ffffdfd1}, + {0x9637b536, 0xffffd852ffffdfd2}, + {0x9637b537, 0xffffd852ffffdfd3}, + {0x9637b538, 0xffffd852ffffdfd4}, + {0x9637b539, 0xffffd852ffffdfd5}, + {0x9637b630, 0xffffd852ffffdfd6}, + {0x9637b631, 0xffffd852ffffdfd7}, + {0x9637b632, 0xffffd852ffffdfd8}, + {0x9637b633, 0xffffd852ffffdfd9}, + {0x9637b634, 0xffffd852ffffdfda}, + {0x9637b635, 0xffffd852ffffdfdb}, + {0x9637b636, 0xffffd852ffffdfdc}, + {0x9637b637, 0xffffd852ffffdfdd}, + {0x9637b638, 0xffffd852ffffdfde}, + {0x9637b639, 0xffffd852ffffdfdf}, + {0x9637b730, 0xffffd852ffffdfe0}, + {0x9637b731, 0xffffd852ffffdfe1}, + {0x9637b732, 0xffffd852ffffdfe2}, + {0x9637b733, 0xffffd852ffffdfe3}, + {0x9637b734, 0xffffd852ffffdfe4}, + {0x9637b735, 0xffffd852ffffdfe5}, + {0x9637b736, 0xffffd852ffffdfe6}, + {0x9637b737, 0xffffd852ffffdfe7}, + {0x9637b738, 0xffffd852ffffdfe8}, + {0x9637b739, 0xffffd852ffffdfe9}, + {0x9637b830, 0xffffd852ffffdfea}, + {0x9637b831, 0xffffd852ffffdfeb}, + {0x9637b832, 0xffffd852ffffdfec}, + {0x9637b833, 0xffffd852ffffdfed}, + {0x9637b834, 0xffffd852ffffdfee}, + {0x9637b835, 0xffffd852ffffdfef}, + {0x9637b836, 0xffffd852ffffdff0}, + {0x9637b837, 0xffffd852ffffdff1}, + {0x9637b838, 0xffffd852ffffdff2}, + {0x9637b839, 0xffffd852ffffdff3}, + {0x9637b930, 0xffffd852ffffdff4}, + {0x9637b931, 0xffffd852ffffdff5}, + {0x9637b932, 0xffffd852ffffdff6}, + {0x9637b933, 0xffffd852ffffdff7}, + {0x9637b934, 0xffffd852ffffdff8}, + {0x9637b935, 0xffffd852ffffdff9}, + {0x9637b936, 0xffffd852ffffdffa}, + {0x9637b937, 0xffffd852ffffdffb}, + {0x9637b938, 0xffffd852ffffdffc}, + {0x9637b939, 0xffffd852ffffdffd}, + {0x9637ba30, 0xffffd852ffffdffe}, + {0x9637ba31, 0xffffd852ffffdfff}, + {0x9637ba32, 0xffffd853ffffdc00}, + {0x9637ba33, 0xffffd853ffffdc01}, + {0x9637ba34, 0xffffd853ffffdc02}, + {0x9637ba35, 0xffffd853ffffdc03}, + {0x9637ba36, 0xffffd853ffffdc04}, + {0x9637ba37, 0xffffd853ffffdc05}, + {0x9637ba38, 0xffffd853ffffdc06}, + {0x9637ba39, 0xffffd853ffffdc07}, + {0x9637bb30, 0xffffd853ffffdc08}, + {0x9637bb31, 0xffffd853ffffdc09}, + {0x9637bb32, 0xffffd853ffffdc0a}, + {0x9637bb33, 0xffffd853ffffdc0b}, + {0x9637bb34, 0xffffd853ffffdc0c}, + {0x9637bb35, 0xffffd853ffffdc0d}, + {0x9637bb36, 0xffffd853ffffdc0e}, + {0x9637bb37, 0xffffd853ffffdc0f}, + {0x9637bb38, 0xffffd853ffffdc10}, + {0x9637bb39, 0xffffd853ffffdc11}, + {0x9637bc30, 0xffffd853ffffdc12}, + {0x9637bc31, 0xffffd853ffffdc13}, + {0x9637bc32, 0xffffd853ffffdc14}, + {0x9637bc33, 0xffffd853ffffdc15}, + {0x9637bc34, 0xffffd853ffffdc16}, + {0x9637bc35, 0xffffd853ffffdc17}, + {0x9637bc36, 0xffffd853ffffdc18}, + {0x9637bc37, 0xffffd853ffffdc19}, + {0x9637bc38, 0xffffd853ffffdc1a}, + {0x9637bc39, 0xffffd853ffffdc1b}, + {0x9637bd30, 0xffffd853ffffdc1c}, + {0x9637bd31, 0xffffd853ffffdc1d}, + {0x9637bd32, 0xffffd853ffffdc1e}, + {0x9637bd33, 0xffffd853ffffdc1f}, + {0x9637bd34, 0xffffd853ffffdc20}, + {0x9637bd35, 0xffffd853ffffdc21}, + {0x9637bd36, 0xffffd853ffffdc22}, + {0x9637bd37, 0xffffd853ffffdc23}, + {0x9637bd38, 0xffffd853ffffdc24}, + {0x9637bd39, 0xffffd853ffffdc25}, + {0x9637be30, 0xffffd853ffffdc26}, + {0x9637be31, 0xffffd853ffffdc27}, + {0x9637be32, 0xffffd853ffffdc28}, + {0x9637be33, 0xffffd853ffffdc29}, + {0x9637be34, 0xffffd853ffffdc2a}, + {0x9637be35, 0xffffd853ffffdc2b}, + {0x9637be36, 0xffffd853ffffdc2c}, + {0x9637be37, 0xffffd853ffffdc2d}, + {0x9637be38, 0xffffd853ffffdc2e}, + {0x9637be39, 0xffffd853ffffdc2f}, + {0x9637bf30, 0xffffd853ffffdc30}, + {0x9637bf31, 0xffffd853ffffdc31}, + {0x9637bf32, 0xffffd853ffffdc32}, + {0x9637bf33, 0xffffd853ffffdc33}, + {0x9637bf34, 0xffffd853ffffdc34}, + {0x9637bf35, 0xffffd853ffffdc35}, + {0x9637bf36, 0xffffd853ffffdc36}, + {0x9637bf37, 0xffffd853ffffdc37}, + {0x9637bf38, 0xffffd853ffffdc38}, + {0x9637bf39, 0xffffd853ffffdc39}, + {0x9637c030, 0xffffd853ffffdc3a}, + {0x9637c031, 0xffffd853ffffdc3b}, + {0x9637c032, 0xffffd853ffffdc3c}, + {0x9637c033, 0xffffd853ffffdc3d}, + {0x9637c034, 0xffffd853ffffdc3e}, + {0x9637c035, 0xffffd853ffffdc3f}, + {0x9637c036, 0xffffd853ffffdc40}, + {0x9637c037, 0xffffd853ffffdc41}, + {0x9637c038, 0xffffd853ffffdc42}, + {0x9637c039, 0xffffd853ffffdc43}, + {0x9637c130, 0xffffd853ffffdc44}, + {0x9637c131, 0xffffd853ffffdc45}, + {0x9637c132, 0xffffd853ffffdc46}, + {0x9637c133, 0xffffd853ffffdc47}, + {0x9637c134, 0xffffd853ffffdc48}, + {0x9637c135, 0xffffd853ffffdc49}, + {0x9637c136, 0xffffd853ffffdc4a}, + {0x9637c137, 0xffffd853ffffdc4b}, + {0x9637c138, 0xffffd853ffffdc4c}, + {0x9637c139, 0xffffd853ffffdc4d}, + {0x9637c230, 0xffffd853ffffdc4e}, + {0x9637c231, 0xffffd853ffffdc4f}, + {0x9637c232, 0xffffd853ffffdc50}, + {0x9637c233, 0xffffd853ffffdc51}, + {0x9637c234, 0xffffd853ffffdc52}, + {0x9637c235, 0xffffd853ffffdc53}, + {0x9637c236, 0xffffd853ffffdc54}, + {0x9637c237, 0xffffd853ffffdc55}, + {0x9637c238, 0xffffd853ffffdc56}, + {0x9637c239, 0xffffd853ffffdc57}, + {0x9637c330, 0xffffd853ffffdc58}, + {0x9637c331, 0xffffd853ffffdc59}, + {0x9637c332, 0xffffd853ffffdc5a}, + {0x9637c333, 0xffffd853ffffdc5b}, + {0x9637c334, 0xffffd853ffffdc5c}, + {0x9637c335, 0xffffd853ffffdc5d}, + {0x9637c336, 0xffffd853ffffdc5e}, + {0x9637c337, 0xffffd853ffffdc5f}, + {0x9637c338, 0xffffd853ffffdc60}, + {0x9637c339, 0xffffd853ffffdc61}, + {0x9637c430, 0xffffd853ffffdc62}, + {0x9637c431, 0xffffd853ffffdc63}, + {0x9637c432, 0xffffd853ffffdc64}, + {0x9637c433, 0xffffd853ffffdc65}, + {0x9637c434, 0xffffd853ffffdc66}, + {0x9637c435, 0xffffd853ffffdc67}, + {0x9637c436, 0xffffd853ffffdc68}, + {0x9637c437, 0xffffd853ffffdc69}, + {0x9637c438, 0xffffd853ffffdc6a}, + {0x9637c439, 0xffffd853ffffdc6b}, + {0x9637c530, 0xffffd853ffffdc6c}, + {0x9637c531, 0xffffd853ffffdc6d}, + {0x9637c532, 0xffffd853ffffdc6e}, + {0x9637c533, 0xffffd853ffffdc6f}, + {0x9637c534, 0xffffd853ffffdc70}, + {0x9637c535, 0xffffd853ffffdc71}, + {0x9637c536, 0xffffd853ffffdc72}, + {0x9637c537, 0xffffd853ffffdc73}, + {0x9637c538, 0xffffd853ffffdc74}, + {0x9637c539, 0xffffd853ffffdc75}, + {0x9637c630, 0xffffd853ffffdc76}, + {0x9637c631, 0xffffd853ffffdc77}, + {0x9637c632, 0xffffd853ffffdc78}, + {0x9637c633, 0xffffd853ffffdc79}, + {0x9637c634, 0xffffd853ffffdc7a}, + {0x9637c635, 0xffffd853ffffdc7b}, + {0x9637c636, 0xffffd853ffffdc7c}, + {0x9637c637, 0xffffd853ffffdc7d}, + {0x9637c638, 0xffffd853ffffdc7e}, + {0x9637c639, 0xffffd853ffffdc7f}, + {0x9637c730, 0xffffd853ffffdc80}, + {0x9637c731, 0xffffd853ffffdc81}, + {0x9637c732, 0xffffd853ffffdc82}, + {0x9637c733, 0xffffd853ffffdc83}, + {0x9637c734, 0xffffd853ffffdc84}, + {0x9637c735, 0xffffd853ffffdc85}, + {0x9637c736, 0xffffd853ffffdc86}, + {0x9637c737, 0xffffd853ffffdc87}, + {0x9637c738, 0xffffd853ffffdc88}, + {0x9637c739, 0xffffd853ffffdc89}, + {0x9637c830, 0xffffd853ffffdc8a}, + {0x9637c831, 0xffffd853ffffdc8b}, + {0x9637c832, 0xffffd853ffffdc8c}, + {0x9637c833, 0xffffd853ffffdc8d}, + {0x9637c834, 0xffffd853ffffdc8e}, + {0x9637c835, 0xffffd853ffffdc8f}, + {0x9637c836, 0xffffd853ffffdc90}, + {0x9637c837, 0xffffd853ffffdc91}, + {0x9637c838, 0xffffd853ffffdc92}, + {0x9637c839, 0xffffd853ffffdc93}, + {0x9637c930, 0xffffd853ffffdc94}, + {0x9637c931, 0xffffd853ffffdc95}, + {0x9637c932, 0xffffd853ffffdc96}, + {0x9637c933, 0xffffd853ffffdc97}, + {0x9637c934, 0xffffd853ffffdc98}, + {0x9637c935, 0xffffd853ffffdc99}, + {0x9637c936, 0xffffd853ffffdc9a}, + {0x9637c937, 0xffffd853ffffdc9b}, + {0x9637c938, 0xffffd853ffffdc9c}, + {0x9637c939, 0xffffd853ffffdc9d}, + {0x9637ca30, 0xffffd853ffffdc9e}, + {0x9637ca31, 0xffffd853ffffdc9f}, + {0x9637ca32, 0xffffd853ffffdca0}, + {0x9637ca33, 0xffffd853ffffdca1}, + {0x9637ca34, 0xffffd853ffffdca2}, + {0x9637ca35, 0xffffd853ffffdca3}, + {0x9637ca36, 0xffffd853ffffdca4}, + {0x9637ca37, 0xffffd853ffffdca5}, + {0x9637ca38, 0xffffd853ffffdca6}, + {0x9637ca39, 0xffffd853ffffdca7}, + {0x9637cb30, 0xffffd853ffffdca8}, + {0x9637cb31, 0xffffd853ffffdca9}, + {0x9637cb32, 0xffffd853ffffdcaa}, + {0x9637cb33, 0xffffd853ffffdcab}, + {0x9637cb34, 0xffffd853ffffdcac}, + {0x9637cb35, 0xffffd853ffffdcad}, + {0x9637cb36, 0xffffd853ffffdcae}, + {0x9637cb37, 0xffffd853ffffdcaf}, + {0x9637cb38, 0xffffd853ffffdcb0}, + {0x9637cb39, 0xffffd853ffffdcb1}, + {0x9637cc30, 0xffffd853ffffdcb2}, + {0x9637cc31, 0xffffd853ffffdcb3}, + {0x9637cc32, 0xffffd853ffffdcb4}, + {0x9637cc33, 0xffffd853ffffdcb5}, + {0x9637cc34, 0xffffd853ffffdcb6}, + {0x9637cc35, 0xffffd853ffffdcb7}, + {0x9637cc36, 0xffffd853ffffdcb8}, + {0x9637cc37, 0xffffd853ffffdcb9}, + {0x9637cc38, 0xffffd853ffffdcba}, + {0x9637cc39, 0xffffd853ffffdcbb}, + {0x9637cd30, 0xffffd853ffffdcbc}, + {0x9637cd31, 0xffffd853ffffdcbd}, + {0x9637cd32, 0xffffd853ffffdcbe}, + {0x9637cd33, 0xffffd853ffffdcbf}, + {0x9637cd34, 0xffffd853ffffdcc0}, + {0x9637cd35, 0xffffd853ffffdcc1}, + {0x9637cd36, 0xffffd853ffffdcc2}, + {0x9637cd37, 0xffffd853ffffdcc3}, + {0x9637cd38, 0xffffd853ffffdcc4}, + {0x9637cd39, 0xffffd853ffffdcc5}, + {0x9637ce30, 0xffffd853ffffdcc6}, + {0x9637ce31, 0xffffd853ffffdcc7}, + {0x9637ce32, 0xffffd853ffffdcc8}, + {0x9637ce33, 0xffffd853ffffdcc9}, + {0x9637ce34, 0xffffd853ffffdcca}, + {0x9637ce35, 0xffffd853ffffdccb}, + {0x9637ce36, 0xffffd853ffffdccc}, + {0x9637ce37, 0xffffd853ffffdccd}, + {0x9637ce38, 0xffffd853ffffdcce}, + {0x9637ce39, 0xffffd853ffffdccf}, + {0x9637cf30, 0xffffd853ffffdcd0}, + {0x9637cf31, 0xffffd853ffffdcd1}, + {0x9637cf32, 0xffffd853ffffdcd2}, + {0x9637cf33, 0xffffd853ffffdcd3}, + {0x9637cf34, 0xffffd853ffffdcd4}, + {0x9637cf35, 0xffffd853ffffdcd5}, + {0x9637cf36, 0xffffd853ffffdcd6}, + {0x9637cf37, 0xffffd853ffffdcd7}, + {0x9637cf38, 0xffffd853ffffdcd8}, + {0x9637cf39, 0xffffd853ffffdcd9}, + {0x9637d030, 0xffffd853ffffdcda}, + {0x9637d031, 0xffffd853ffffdcdb}, + {0x9637d032, 0xffffd853ffffdcdc}, + {0x9637d033, 0xffffd853ffffdcdd}, + {0x9637d034, 0xffffd853ffffdcde}, + {0x9637d035, 0xffffd853ffffdcdf}, + {0x9637d036, 0xffffd853ffffdce0}, + {0x9637d037, 0xffffd853ffffdce1}, + {0x9637d038, 0xffffd853ffffdce2}, + {0x9637d039, 0xffffd853ffffdce3}, + {0x9637d130, 0xffffd853ffffdce4}, + {0x9637d131, 0xffffd853ffffdce5}, + {0x9637d132, 0xffffd853ffffdce6}, + {0x9637d133, 0xffffd853ffffdce7}, + {0x9637d134, 0xffffd853ffffdce8}, + {0x9637d135, 0xffffd853ffffdce9}, + {0x9637d136, 0xffffd853ffffdcea}, + {0x9637d137, 0xffffd853ffffdceb}, + {0x9637d138, 0xffffd853ffffdcec}, + {0x9637d139, 0xffffd853ffffdced}, + {0x9637d230, 0xffffd853ffffdcee}, + {0x9637d231, 0xffffd853ffffdcef}, + {0x9637d232, 0xffffd853ffffdcf0}, + {0x9637d233, 0xffffd853ffffdcf1}, + {0x9637d234, 0xffffd853ffffdcf2}, + {0x9637d235, 0xffffd853ffffdcf3}, + {0x9637d236, 0xffffd853ffffdcf4}, + {0x9637d237, 0xffffd853ffffdcf5}, + {0x9637d238, 0xffffd853ffffdcf6}, + {0x9637d239, 0xffffd853ffffdcf7}, + {0x9637d330, 0xffffd853ffffdcf8}, + {0x9637d331, 0xffffd853ffffdcf9}, + {0x9637d332, 0xffffd853ffffdcfa}, + {0x9637d333, 0xffffd853ffffdcfb}, + {0x9637d334, 0xffffd853ffffdcfc}, + {0x9637d335, 0xffffd853ffffdcfd}, + {0x9637d336, 0xffffd853ffffdcfe}, + {0x9637d337, 0xffffd853ffffdcff}, + {0x9637d338, 0xffffd853ffffdd00}, + {0x9637d339, 0xffffd853ffffdd01}, + {0x9637d430, 0xffffd853ffffdd02}, + {0x9637d431, 0xffffd853ffffdd03}, + {0x9637d432, 0xffffd853ffffdd04}, + {0x9637d433, 0xffffd853ffffdd05}, + {0x9637d434, 0xffffd853ffffdd06}, + {0x9637d435, 0xffffd853ffffdd07}, + {0x9637d436, 0xffffd853ffffdd08}, + {0x9637d437, 0xffffd853ffffdd09}, + {0x9637d438, 0xffffd853ffffdd0a}, + {0x9637d439, 0xffffd853ffffdd0b}, + {0x9637d530, 0xffffd853ffffdd0c}, + {0x9637d531, 0xffffd853ffffdd0d}, + {0x9637d532, 0xffffd853ffffdd0e}, + {0x9637d533, 0xffffd853ffffdd0f}, + {0x9637d534, 0xffffd853ffffdd10}, + {0x9637d535, 0xffffd853ffffdd11}, + {0x9637d536, 0xffffd853ffffdd12}, + {0x9637d537, 0xffffd853ffffdd13}, + {0x9637d538, 0xffffd853ffffdd14}, + {0x9637d539, 0xffffd853ffffdd15}, + {0x9637d630, 0xffffd853ffffdd16}, + {0x9637d631, 0xffffd853ffffdd17}, + {0x9637d632, 0xffffd853ffffdd18}, + {0x9637d633, 0xffffd853ffffdd19}, + {0x9637d634, 0xffffd853ffffdd1a}, + {0x9637d635, 0xffffd853ffffdd1b}, + {0x9637d636, 0xffffd853ffffdd1c}, + {0x9637d637, 0xffffd853ffffdd1d}, + {0x9637d638, 0xffffd853ffffdd1e}, + {0x9637d639, 0xffffd853ffffdd1f}, + {0x9637d730, 0xffffd853ffffdd20}, + {0x9637d731, 0xffffd853ffffdd21}, + {0x9637d732, 0xffffd853ffffdd22}, + {0x9637d733, 0xffffd853ffffdd23}, + {0x9637d734, 0xffffd853ffffdd24}, + {0x9637d735, 0xffffd853ffffdd25}, + {0x9637d736, 0xffffd853ffffdd26}, + {0x9637d737, 0xffffd853ffffdd27}, + {0x9637d738, 0xffffd853ffffdd28}, + {0x9637d739, 0xffffd853ffffdd29}, + {0x9637d830, 0xffffd853ffffdd2a}, + {0x9637d831, 0xffffd853ffffdd2b}, + {0x9637d832, 0xffffd853ffffdd2c}, + {0x9637d833, 0xffffd853ffffdd2d}, + {0x9637d834, 0xffffd853ffffdd2e}, + {0x9637d835, 0xffffd853ffffdd2f}, + {0x9637d836, 0xffffd853ffffdd30}, + {0x9637d837, 0xffffd853ffffdd31}, + {0x9637d838, 0xffffd853ffffdd32}, + {0x9637d839, 0xffffd853ffffdd33}, + {0x9637d930, 0xffffd853ffffdd34}, + {0x9637d931, 0xffffd853ffffdd35}, + {0x9637d932, 0xffffd853ffffdd36}, + {0x9637d933, 0xffffd853ffffdd37}, + {0x9637d934, 0xffffd853ffffdd38}, + {0x9637d935, 0xffffd853ffffdd39}, + {0x9637d936, 0xffffd853ffffdd3a}, + {0x9637d937, 0xffffd853ffffdd3b}, + {0x9637d938, 0xffffd853ffffdd3c}, + {0x9637d939, 0xffffd853ffffdd3d}, + {0x9637da30, 0xffffd853ffffdd3e}, + {0x9637da31, 0xffffd853ffffdd3f}, + {0x9637da32, 0xffffd853ffffdd40}, + {0x9637da33, 0xffffd853ffffdd41}, + {0x9637da34, 0xffffd853ffffdd42}, + {0x9637da35, 0xffffd853ffffdd43}, + {0x9637da36, 0xffffd853ffffdd44}, + {0x9637da37, 0xffffd853ffffdd45}, + {0x9637da38, 0xffffd853ffffdd46}, + {0x9637da39, 0xffffd853ffffdd47}, + {0x9637db30, 0xffffd853ffffdd48}, + {0x9637db31, 0xffffd853ffffdd49}, + {0x9637db32, 0xffffd853ffffdd4a}, + {0x9637db33, 0xffffd853ffffdd4b}, + {0x9637db34, 0xffffd853ffffdd4c}, + {0x9637db35, 0xffffd853ffffdd4d}, + {0x9637db36, 0xffffd853ffffdd4e}, + {0x9637db37, 0xffffd853ffffdd4f}, + {0x9637db38, 0xffffd853ffffdd50}, + {0x9637db39, 0xffffd853ffffdd51}, + {0x9637dc30, 0xffffd853ffffdd52}, + {0x9637dc31, 0xffffd853ffffdd53}, + {0x9637dc32, 0xffffd853ffffdd54}, + {0x9637dc33, 0xffffd853ffffdd55}, + {0x9637dc34, 0xffffd853ffffdd56}, + {0x9637dc35, 0xffffd853ffffdd57}, + {0x9637dc36, 0xffffd853ffffdd58}, + {0x9637dc37, 0xffffd853ffffdd59}, + {0x9637dc38, 0xffffd853ffffdd5a}, + {0x9637dc39, 0xffffd853ffffdd5b}, + {0x9637dd30, 0xffffd853ffffdd5c}, + {0x9637dd31, 0xffffd853ffffdd5d}, + {0x9637dd32, 0xffffd853ffffdd5e}, + {0x9637dd33, 0xffffd853ffffdd5f}, + {0x9637dd34, 0xffffd853ffffdd60}, + {0x9637dd35, 0xffffd853ffffdd61}, + {0x9637dd36, 0xffffd853ffffdd62}, + {0x9637dd37, 0xffffd853ffffdd63}, + {0x9637dd38, 0xffffd853ffffdd64}, + {0x9637dd39, 0xffffd853ffffdd65}, + {0x9637de30, 0xffffd853ffffdd66}, + {0x9637de31, 0xffffd853ffffdd67}, + {0x9637de32, 0xffffd853ffffdd68}, + {0x9637de33, 0xffffd853ffffdd69}, + {0x9637de34, 0xffffd853ffffdd6a}, + {0x9637de35, 0xffffd853ffffdd6b}, + {0x9637de36, 0xffffd853ffffdd6c}, + {0x9637de37, 0xffffd853ffffdd6d}, + {0x9637de38, 0xffffd853ffffdd6e}, + {0x9637de39, 0xffffd853ffffdd6f}, + {0x9637df30, 0xffffd853ffffdd70}, + {0x9637df31, 0xffffd853ffffdd71}, + {0x9637df32, 0xffffd853ffffdd72}, + {0x9637df33, 0xffffd853ffffdd73}, + {0x9637df34, 0xffffd853ffffdd74}, + {0x9637df35, 0xffffd853ffffdd75}, + {0x9637df36, 0xffffd853ffffdd76}, + {0x9637df37, 0xffffd853ffffdd77}, + {0x9637df38, 0xffffd853ffffdd78}, + {0x9637df39, 0xffffd853ffffdd79}, + {0x9637e030, 0xffffd853ffffdd7a}, + {0x9637e031, 0xffffd853ffffdd7b}, + {0x9637e032, 0xffffd853ffffdd7c}, + {0x9637e033, 0xffffd853ffffdd7d}, + {0x9637e034, 0xffffd853ffffdd7e}, + {0x9637e035, 0xffffd853ffffdd7f}, + {0x9637e036, 0xffffd853ffffdd80}, + {0x9637e037, 0xffffd853ffffdd81}, + {0x9637e038, 0xffffd853ffffdd82}, + {0x9637e039, 0xffffd853ffffdd83}, + {0x9637e130, 0xffffd853ffffdd84}, + {0x9637e131, 0xffffd853ffffdd85}, + {0x9637e132, 0xffffd853ffffdd86}, + {0x9637e133, 0xffffd853ffffdd87}, + {0x9637e134, 0xffffd853ffffdd88}, + {0x9637e135, 0xffffd853ffffdd89}, + {0x9637e136, 0xffffd853ffffdd8a}, + {0x9637e137, 0xffffd853ffffdd8b}, + {0x9637e138, 0xffffd853ffffdd8c}, + {0x9637e139, 0xffffd853ffffdd8d}, + {0x9637e230, 0xffffd853ffffdd8e}, + {0x9637e231, 0xffffd853ffffdd8f}, + {0x9637e232, 0xffffd853ffffdd90}, + {0x9637e233, 0xffffd853ffffdd91}, + {0x9637e234, 0xffffd853ffffdd92}, + {0x9637e235, 0xffffd853ffffdd93}, + {0x9637e236, 0xffffd853ffffdd94}, + {0x9637e237, 0xffffd853ffffdd95}, + {0x9637e238, 0xffffd853ffffdd96}, + {0x9637e239, 0xffffd853ffffdd97}, + {0x9637e330, 0xffffd853ffffdd98}, + {0x9637e331, 0xffffd853ffffdd99}, + {0x9637e332, 0xffffd853ffffdd9a}, + {0x9637e333, 0xffffd853ffffdd9b}, + {0x9637e334, 0xffffd853ffffdd9c}, + {0x9637e335, 0xffffd853ffffdd9d}, + {0x9637e336, 0xffffd853ffffdd9e}, + {0x9637e337, 0xffffd853ffffdd9f}, + {0x9637e338, 0xffffd853ffffdda0}, + {0x9637e339, 0xffffd853ffffdda1}, + {0x9637e430, 0xffffd853ffffdda2}, + {0x9637e431, 0xffffd853ffffdda3}, + {0x9637e432, 0xffffd853ffffdda4}, + {0x9637e433, 0xffffd853ffffdda5}, + {0x9637e434, 0xffffd853ffffdda6}, + {0x9637e435, 0xffffd853ffffdda7}, + {0x9637e436, 0xffffd853ffffdda8}, + {0x9637e437, 0xffffd853ffffdda9}, + {0x9637e438, 0xffffd853ffffddaa}, + {0x9637e439, 0xffffd853ffffddab}, + {0x9637e530, 0xffffd853ffffddac}, + {0x9637e531, 0xffffd853ffffddad}, + {0x9637e532, 0xffffd853ffffddae}, + {0x9637e533, 0xffffd853ffffddaf}, + {0x9637e534, 0xffffd853ffffddb0}, + {0x9637e535, 0xffffd853ffffddb1}, + {0x9637e536, 0xffffd853ffffddb2}, + {0x9637e537, 0xffffd853ffffddb3}, + {0x9637e538, 0xffffd853ffffddb4}, + {0x9637e539, 0xffffd853ffffddb5}, + {0x9637e630, 0xffffd853ffffddb6}, + {0x9637e631, 0xffffd853ffffddb7}, + {0x9637e632, 0xffffd853ffffddb8}, + {0x9637e633, 0xffffd853ffffddb9}, + {0x9637e634, 0xffffd853ffffddba}, + {0x9637e635, 0xffffd853ffffddbb}, + {0x9637e636, 0xffffd853ffffddbc}, + {0x9637e637, 0xffffd853ffffddbd}, + {0x9637e638, 0xffffd853ffffddbe}, + {0x9637e639, 0xffffd853ffffddbf}, + {0x9637e730, 0xffffd853ffffddc0}, + {0x9637e731, 0xffffd853ffffddc1}, + {0x9637e732, 0xffffd853ffffddc2}, + {0x9637e733, 0xffffd853ffffddc3}, + {0x9637e734, 0xffffd853ffffddc4}, + {0x9637e735, 0xffffd853ffffddc5}, + {0x9637e736, 0xffffd853ffffddc6}, + {0x9637e737, 0xffffd853ffffddc7}, + {0x9637e738, 0xffffd853ffffddc8}, + {0x9637e739, 0xffffd853ffffddc9}, + {0x9637e830, 0xffffd853ffffddca}, + {0x9637e831, 0xffffd853ffffddcb}, + {0x9637e832, 0xffffd853ffffddcc}, + {0x9637e833, 0xffffd853ffffddcd}, + {0x9637e834, 0xffffd853ffffddce}, + {0x9637e835, 0xffffd853ffffddcf}, + {0x9637e836, 0xffffd853ffffddd0}, + {0x9637e837, 0xffffd853ffffddd1}, + {0x9637e838, 0xffffd853ffffddd2}, + {0x9637e839, 0xffffd853ffffddd3}, + {0x9637e930, 0xffffd853ffffddd4}, + {0x9637e931, 0xffffd853ffffddd5}, + {0x9637e932, 0xffffd853ffffddd6}, + {0x9637e933, 0xffffd853ffffddd7}, + {0x9637e934, 0xffffd853ffffddd8}, + {0x9637e935, 0xffffd853ffffddd9}, + {0x9637e936, 0xffffd853ffffddda}, + {0x9637e937, 0xffffd853ffffdddb}, + {0x9637e938, 0xffffd853ffffdddc}, + {0x9637e939, 0xffffd853ffffdddd}, + {0x9637ea30, 0xffffd853ffffddde}, + {0x9637ea31, 0xffffd853ffffdddf}, + {0x9637ea32, 0xffffd853ffffdde0}, + {0x9637ea33, 0xffffd853ffffdde1}, + {0x9637ea34, 0xffffd853ffffdde2}, + {0x9637ea35, 0xffffd853ffffdde3}, + {0x9637ea36, 0xffffd853ffffdde4}, + {0x9637ea37, 0xffffd853ffffdde5}, + {0x9637ea38, 0xffffd853ffffdde6}, + {0x9637ea39, 0xffffd853ffffdde7}, + {0x9637eb30, 0xffffd853ffffdde8}, + {0x9637eb31, 0xffffd853ffffdde9}, + {0x9637eb32, 0xffffd853ffffddea}, + {0x9637eb33, 0xffffd853ffffddeb}, + {0x9637eb34, 0xffffd853ffffddec}, + {0x9637eb35, 0xffffd853ffffdded}, + {0x9637eb36, 0xffffd853ffffddee}, + {0x9637eb37, 0xffffd853ffffddef}, + {0x9637eb38, 0xffffd853ffffddf0}, + {0x9637eb39, 0xffffd853ffffddf1}, + {0x9637ec30, 0xffffd853ffffddf2}, + {0x9637ec31, 0xffffd853ffffddf3}, + {0x9637ec32, 0xffffd853ffffddf4}, + {0x9637ec33, 0xffffd853ffffddf5}, + {0x9637ec34, 0xffffd853ffffddf6}, + {0x9637ec35, 0xffffd853ffffddf7}, + {0x9637ec36, 0xffffd853ffffddf8}, + {0x9637ec37, 0xffffd853ffffddf9}, + {0x9637ec38, 0xffffd853ffffddfa}, + {0x9637ec39, 0xffffd853ffffddfb}, + {0x9637ed30, 0xffffd853ffffddfc}, + {0x9637ed31, 0xffffd853ffffddfd}, + {0x9637ed32, 0xffffd853ffffddfe}, + {0x9637ed33, 0xffffd853ffffddff}, + {0x9637ed34, 0xffffd853ffffde00}, + {0x9637ed35, 0xffffd853ffffde01}, + {0x9637ed36, 0xffffd853ffffde02}, + {0x9637ed37, 0xffffd853ffffde03}, + {0x9637ed38, 0xffffd853ffffde04}, + {0x9637ed39, 0xffffd853ffffde05}, + {0x9637ee30, 0xffffd853ffffde06}, + {0x9637ee31, 0xffffd853ffffde07}, + {0x9637ee32, 0xffffd853ffffde08}, + {0x9637ee33, 0xffffd853ffffde09}, + {0x9637ee34, 0xffffd853ffffde0a}, + {0x9637ee35, 0xffffd853ffffde0b}, + {0x9637ee36, 0xffffd853ffffde0c}, + {0x9637ee37, 0xffffd853ffffde0d}, + {0x9637ee38, 0xffffd853ffffde0e}, + {0x9637ee39, 0xffffd853ffffde0f}, + {0x9637ef30, 0xffffd853ffffde10}, + {0x9637ef31, 0xffffd853ffffde11}, + {0x9637ef32, 0xffffd853ffffde12}, + {0x9637ef33, 0xffffd853ffffde13}, + {0x9637ef34, 0xffffd853ffffde14}, + {0x9637ef35, 0xffffd853ffffde15}, + {0x9637ef36, 0xffffd853ffffde16}, + {0x9637ef37, 0xffffd853ffffde17}, + {0x9637ef38, 0xffffd853ffffde18}, + {0x9637ef39, 0xffffd853ffffde19}, + {0x9637f030, 0xffffd853ffffde1a}, + {0x9637f031, 0xffffd853ffffde1b}, + {0x9637f032, 0xffffd853ffffde1c}, + {0x9637f033, 0xffffd853ffffde1d}, + {0x9637f034, 0xffffd853ffffde1e}, + {0x9637f035, 0xffffd853ffffde1f}, + {0x9637f036, 0xffffd853ffffde20}, + {0x9637f037, 0xffffd853ffffde21}, + {0x9637f038, 0xffffd853ffffde22}, + {0x9637f039, 0xffffd853ffffde23}, + {0x9637f130, 0xffffd853ffffde24}, + {0x9637f131, 0xffffd853ffffde25}, + {0x9637f132, 0xffffd853ffffde26}, + {0x9637f133, 0xffffd853ffffde27}, + {0x9637f134, 0xffffd853ffffde28}, + {0x9637f135, 0xffffd853ffffde29}, + {0x9637f136, 0xffffd853ffffde2a}, + {0x9637f137, 0xffffd853ffffde2b}, + {0x9637f138, 0xffffd853ffffde2c}, + {0x9637f139, 0xffffd853ffffde2d}, + {0x9637f230, 0xffffd853ffffde2e}, + {0x9637f231, 0xffffd853ffffde2f}, + {0x9637f232, 0xffffd853ffffde30}, + {0x9637f233, 0xffffd853ffffde31}, + {0x9637f234, 0xffffd853ffffde32}, + {0x9637f235, 0xffffd853ffffde33}, + {0x9637f236, 0xffffd853ffffde34}, + {0x9637f237, 0xffffd853ffffde35}, + {0x9637f238, 0xffffd853ffffde36}, + {0x9637f239, 0xffffd853ffffde37}, + {0x9637f330, 0xffffd853ffffde38}, + {0x9637f331, 0xffffd853ffffde39}, + {0x9637f332, 0xffffd853ffffde3a}, + {0x9637f333, 0xffffd853ffffde3b}, + {0x9637f334, 0xffffd853ffffde3c}, + {0x9637f335, 0xffffd853ffffde3d}, + {0x9637f336, 0xffffd853ffffde3e}, + {0x9637f337, 0xffffd853ffffde3f}, + {0x9637f338, 0xffffd853ffffde40}, + {0x9637f339, 0xffffd853ffffde41}, + {0x9637f430, 0xffffd853ffffde42}, + {0x9637f431, 0xffffd853ffffde43}, + {0x9637f432, 0xffffd853ffffde44}, + {0x9637f433, 0xffffd853ffffde45}, + {0x9637f434, 0xffffd853ffffde46}, + {0x9637f435, 0xffffd853ffffde47}, + {0x9637f436, 0xffffd853ffffde48}, + {0x9637f437, 0xffffd853ffffde49}, + {0x9637f438, 0xffffd853ffffde4a}, + {0x9637f439, 0xffffd853ffffde4b}, + {0x9637f530, 0xffffd853ffffde4c}, + {0x9637f531, 0xffffd853ffffde4d}, + {0x9637f532, 0xffffd853ffffde4e}, + {0x9637f533, 0xffffd853ffffde4f}, + {0x9637f534, 0xffffd853ffffde50}, + {0x9637f535, 0xffffd853ffffde51}, + {0x9637f536, 0xffffd853ffffde52}, + {0x9637f537, 0xffffd853ffffde53}, + {0x9637f538, 0xffffd853ffffde54}, + {0x9637f539, 0xffffd853ffffde55}, + {0x9637f630, 0xffffd853ffffde56}, + {0x9637f631, 0xffffd853ffffde57}, + {0x9637f632, 0xffffd853ffffde58}, + {0x9637f633, 0xffffd853ffffde59}, + {0x9637f634, 0xffffd853ffffde5a}, + {0x9637f635, 0xffffd853ffffde5b}, + {0x9637f636, 0xffffd853ffffde5c}, + {0x9637f637, 0xffffd853ffffde5d}, + {0x9637f638, 0xffffd853ffffde5e}, + {0x9637f639, 0xffffd853ffffde5f}, + {0x9637f730, 0xffffd853ffffde60}, + {0x9637f731, 0xffffd853ffffde61}, + {0x9637f732, 0xffffd853ffffde62}, + {0x9637f733, 0xffffd853ffffde63}, + {0x9637f734, 0xffffd853ffffde64}, + {0x9637f735, 0xffffd853ffffde65}, + {0x9637f736, 0xffffd853ffffde66}, + {0x9637f737, 0xffffd853ffffde67}, + {0x9637f738, 0xffffd853ffffde68}, + {0x9637f739, 0xffffd853ffffde69}, + {0x9637f830, 0xffffd853ffffde6a}, + {0x9637f831, 0xffffd853ffffde6b}, + {0x9637f832, 0xffffd853ffffde6c}, + {0x9637f833, 0xffffd853ffffde6d}, + {0x9637f834, 0xffffd853ffffde6e}, + {0x9637f835, 0xffffd853ffffde6f}, + {0x9637f836, 0xffffd853ffffde70}, + {0x9637f837, 0xffffd853ffffde71}, + {0x9637f838, 0xffffd853ffffde72}, + {0x9637f839, 0xffffd853ffffde73}, + {0x9637f930, 0xffffd853ffffde74}, + {0x9637f931, 0xffffd853ffffde75}, + {0x9637f932, 0xffffd853ffffde76}, + {0x9637f933, 0xffffd853ffffde77}, + {0x9637f934, 0xffffd853ffffde78}, + {0x9637f935, 0xffffd853ffffde79}, + {0x9637f936, 0xffffd853ffffde7a}, + {0x9637f937, 0xffffd853ffffde7b}, + {0x9637f938, 0xffffd853ffffde7c}, + {0x9637f939, 0xffffd853ffffde7d}, + {0x9637fa30, 0xffffd853ffffde7e}, + {0x9637fa31, 0xffffd853ffffde7f}, + {0x9637fa32, 0xffffd853ffffde80}, + {0x9637fa33, 0xffffd853ffffde81}, + {0x9637fa34, 0xffffd853ffffde82}, + {0x9637fa35, 0xffffd853ffffde83}, + {0x9637fa36, 0xffffd853ffffde84}, + {0x9637fa37, 0xffffd853ffffde85}, + {0x9637fa38, 0xffffd853ffffde86}, + {0x9637fa39, 0xffffd853ffffde87}, + {0x9637fb30, 0xffffd853ffffde88}, + {0x9637fb31, 0xffffd853ffffde89}, + {0x9637fb32, 0xffffd853ffffde8a}, + {0x9637fb33, 0xffffd853ffffde8b}, + {0x9637fb34, 0xffffd853ffffde8c}, + {0x9637fb35, 0xffffd853ffffde8d}, + {0x9637fb36, 0xffffd853ffffde8e}, + {0x9637fb37, 0xffffd853ffffde8f}, + {0x9637fb38, 0xffffd853ffffde90}, + {0x9637fb39, 0xffffd853ffffde91}, + {0x9637fc30, 0xffffd853ffffde92}, + {0x9637fc31, 0xffffd853ffffde93}, + {0x9637fc32, 0xffffd853ffffde94}, + {0x9637fc33, 0xffffd853ffffde95}, + {0x9637fc34, 0xffffd853ffffde96}, + {0x9637fc35, 0xffffd853ffffde97}, + {0x9637fc36, 0xffffd853ffffde98}, + {0x9637fc37, 0xffffd853ffffde99}, + {0x9637fc38, 0xffffd853ffffde9a}, + {0x9637fc39, 0xffffd853ffffde9b}, + {0x9637fd30, 0xffffd853ffffde9c}, + {0x9637fd31, 0xffffd853ffffde9d}, + {0x9637fd32, 0xffffd853ffffde9e}, + {0x9637fd33, 0xffffd853ffffde9f}, + {0x9637fd34, 0xffffd853ffffdea0}, + {0x9637fd35, 0xffffd853ffffdea1}, + {0x9637fd36, 0xffffd853ffffdea2}, + {0x9637fd37, 0xffffd853ffffdea3}, + {0x9637fd38, 0xffffd853ffffdea4}, + {0x9637fd39, 0xffffd853ffffdea5}, + {0x9637fe30, 0xffffd853ffffdea6}, + {0x9637fe31, 0xffffd853ffffdea7}, + {0x9637fe32, 0xffffd853ffffdea8}, + {0x9637fe33, 0xffffd853ffffdea9}, + {0x9637fe34, 0xffffd853ffffdeaa}, + {0x9637fe35, 0xffffd853ffffdeab}, + {0x9637fe36, 0xffffd853ffffdeac}, + {0x9637fe37, 0xffffd853ffffdead}, + {0x9637fe38, 0xffffd853ffffdeae}, + {0x9637fe39, 0xffffd853ffffdeaf}, + {0x96388130, 0xffffd853ffffdeb0}, + {0x96388131, 0xffffd853ffffdeb1}, + {0x96388132, 0xffffd853ffffdeb2}, + {0x96388133, 0xffffd853ffffdeb3}, + {0x96388134, 0xffffd853ffffdeb4}, + {0x96388135, 0xffffd853ffffdeb5}, + {0x96388136, 0xffffd853ffffdeb6}, + {0x96388137, 0xffffd853ffffdeb7}, + {0x96388138, 0xffffd853ffffdeb8}, + {0x96388139, 0xffffd853ffffdeb9}, + {0x96388230, 0xffffd853ffffdeba}, + {0x96388231, 0xffffd853ffffdebb}, + {0x96388232, 0xffffd853ffffdebc}, + {0x96388233, 0xffffd853ffffdebd}, + {0x96388234, 0xffffd853ffffdebe}, + {0x96388235, 0xffffd853ffffdebf}, + {0x96388236, 0xffffd853ffffdec0}, + {0x96388237, 0xffffd853ffffdec1}, + {0x96388238, 0xffffd853ffffdec2}, + {0x96388239, 0xffffd853ffffdec3}, + {0x96388330, 0xffffd853ffffdec4}, + {0x96388331, 0xffffd853ffffdec5}, + {0x96388332, 0xffffd853ffffdec6}, + {0x96388333, 0xffffd853ffffdec7}, + {0x96388334, 0xffffd853ffffdec8}, + {0x96388335, 0xffffd853ffffdec9}, + {0x96388336, 0xffffd853ffffdeca}, + {0x96388337, 0xffffd853ffffdecb}, + {0x96388338, 0xffffd853ffffdecc}, + {0x96388339, 0xffffd853ffffdecd}, + {0x96388430, 0xffffd853ffffdece}, + {0x96388431, 0xffffd853ffffdecf}, + {0x96388432, 0xffffd853ffffded0}, + {0x96388433, 0xffffd853ffffded1}, + {0x96388434, 0xffffd853ffffded2}, + {0x96388435, 0xffffd853ffffded3}, + {0x96388436, 0xffffd853ffffded4}, + {0x96388437, 0xffffd853ffffded5}, + {0x96388438, 0xffffd853ffffded6}, + {0x96388439, 0xffffd853ffffded7}, + {0x96388530, 0xffffd853ffffded8}, + {0x96388531, 0xffffd853ffffded9}, + {0x96388532, 0xffffd853ffffdeda}, + {0x96388533, 0xffffd853ffffdedb}, + {0x96388534, 0xffffd853ffffdedc}, + {0x96388535, 0xffffd853ffffdedd}, + {0x96388536, 0xffffd853ffffdede}, + {0x96388537, 0xffffd853ffffdedf}, + {0x96388538, 0xffffd853ffffdee0}, + {0x96388539, 0xffffd853ffffdee1}, + {0x96388630, 0xffffd853ffffdee2}, + {0x96388631, 0xffffd853ffffdee3}, + {0x96388632, 0xffffd853ffffdee4}, + {0x96388633, 0xffffd853ffffdee5}, + {0x96388634, 0xffffd853ffffdee6}, + {0x96388635, 0xffffd853ffffdee7}, + {0x96388636, 0xffffd853ffffdee8}, + {0x96388637, 0xffffd853ffffdee9}, + {0x96388638, 0xffffd853ffffdeea}, + {0x96388639, 0xffffd853ffffdeeb}, + {0x96388730, 0xffffd853ffffdeec}, + {0x96388731, 0xffffd853ffffdeed}, + {0x96388732, 0xffffd853ffffdeee}, + {0x96388733, 0xffffd853ffffdeef}, + {0x96388734, 0xffffd853ffffdef0}, + {0x96388735, 0xffffd853ffffdef1}, + {0x96388736, 0xffffd853ffffdef2}, + {0x96388737, 0xffffd853ffffdef3}, + {0x96388738, 0xffffd853ffffdef4}, + {0x96388739, 0xffffd853ffffdef5}, + {0x96388830, 0xffffd853ffffdef6}, + {0x96388831, 0xffffd853ffffdef7}, + {0x96388832, 0xffffd853ffffdef8}, + {0x96388833, 0xffffd853ffffdef9}, + {0x96388834, 0xffffd853ffffdefa}, + {0x96388835, 0xffffd853ffffdefb}, + {0x96388836, 0xffffd853ffffdefc}, + {0x96388837, 0xffffd853ffffdefd}, + {0x96388838, 0xffffd853ffffdefe}, + {0x96388839, 0xffffd853ffffdeff}, + {0x96388930, 0xffffd853ffffdf00}, + {0x96388931, 0xffffd853ffffdf01}, + {0x96388932, 0xffffd853ffffdf02}, + {0x96388933, 0xffffd853ffffdf03}, + {0x96388934, 0xffffd853ffffdf04}, + {0x96388935, 0xffffd853ffffdf05}, + {0x96388936, 0xffffd853ffffdf06}, + {0x96388937, 0xffffd853ffffdf07}, + {0x96388938, 0xffffd853ffffdf08}, + {0x96388939, 0xffffd853ffffdf09}, + {0x96388a30, 0xffffd853ffffdf0a}, + {0x96388a31, 0xffffd853ffffdf0b}, + {0x96388a32, 0xffffd853ffffdf0c}, + {0x96388a33, 0xffffd853ffffdf0d}, + {0x96388a34, 0xffffd853ffffdf0e}, + {0x96388a35, 0xffffd853ffffdf0f}, + {0x96388a36, 0xffffd853ffffdf10}, + {0x96388a37, 0xffffd853ffffdf11}, + {0x96388a38, 0xffffd853ffffdf12}, + {0x96388a39, 0xffffd853ffffdf13}, + {0x96388b30, 0xffffd853ffffdf14}, + {0x96388b31, 0xffffd853ffffdf15}, + {0x96388b32, 0xffffd853ffffdf16}, + {0x96388b33, 0xffffd853ffffdf17}, + {0x96388b34, 0xffffd853ffffdf18}, + {0x96388b35, 0xffffd853ffffdf19}, + {0x96388b36, 0xffffd853ffffdf1a}, + {0x96388b37, 0xffffd853ffffdf1b}, + {0x96388b38, 0xffffd853ffffdf1c}, + {0x96388b39, 0xffffd853ffffdf1d}, + {0x96388c30, 0xffffd853ffffdf1e}, + {0x96388c31, 0xffffd853ffffdf1f}, + {0x96388c32, 0xffffd853ffffdf20}, + {0x96388c33, 0xffffd853ffffdf21}, + {0x96388c34, 0xffffd853ffffdf22}, + {0x96388c35, 0xffffd853ffffdf23}, + {0x96388c36, 0xffffd853ffffdf24}, + {0x96388c37, 0xffffd853ffffdf25}, + {0x96388c38, 0xffffd853ffffdf26}, + {0x96388c39, 0xffffd853ffffdf27}, + {0x96388d30, 0xffffd853ffffdf28}, + {0x96388d31, 0xffffd853ffffdf29}, + {0x96388d32, 0xffffd853ffffdf2a}, + {0x96388d33, 0xffffd853ffffdf2b}, + {0x96388d34, 0xffffd853ffffdf2c}, + {0x96388d35, 0xffffd853ffffdf2d}, + {0x96388d36, 0xffffd853ffffdf2e}, + {0x96388d37, 0xffffd853ffffdf2f}, + {0x96388d38, 0xffffd853ffffdf30}, + {0x96388d39, 0xffffd853ffffdf31}, + {0x96388e30, 0xffffd853ffffdf32}, + {0x96388e31, 0xffffd853ffffdf33}, + {0x96388e32, 0xffffd853ffffdf34}, + {0x96388e33, 0xffffd853ffffdf35}, + {0x96388e34, 0xffffd853ffffdf36}, + {0x96388e35, 0xffffd853ffffdf37}, + {0x96388e36, 0xffffd853ffffdf38}, + {0x96388e37, 0xffffd853ffffdf39}, + {0x96388e38, 0xffffd853ffffdf3a}, + {0x96388e39, 0xffffd853ffffdf3b}, + {0x96388f30, 0xffffd853ffffdf3c}, + {0x96388f31, 0xffffd853ffffdf3d}, + {0x96388f32, 0xffffd853ffffdf3e}, + {0x96388f33, 0xffffd853ffffdf3f}, + {0x96388f34, 0xffffd853ffffdf40}, + {0x96388f35, 0xffffd853ffffdf41}, + {0x96388f36, 0xffffd853ffffdf42}, + {0x96388f37, 0xffffd853ffffdf43}, + {0x96388f38, 0xffffd853ffffdf44}, + {0x96388f39, 0xffffd853ffffdf45}, + {0x96389030, 0xffffd853ffffdf46}, + {0x96389031, 0xffffd853ffffdf47}, + {0x96389032, 0xffffd853ffffdf48}, + {0x96389033, 0xffffd853ffffdf49}, + {0x96389034, 0xffffd853ffffdf4a}, + {0x96389035, 0xffffd853ffffdf4b}, + {0x96389036, 0xffffd853ffffdf4c}, + {0x96389037, 0xffffd853ffffdf4d}, + {0x96389038, 0xffffd853ffffdf4e}, + {0x96389039, 0xffffd853ffffdf4f}, + {0x96389130, 0xffffd853ffffdf50}, + {0x96389131, 0xffffd853ffffdf51}, + {0x96389132, 0xffffd853ffffdf52}, + {0x96389133, 0xffffd853ffffdf53}, + {0x96389134, 0xffffd853ffffdf54}, + {0x96389135, 0xffffd853ffffdf55}, + {0x96389136, 0xffffd853ffffdf56}, + {0x96389137, 0xffffd853ffffdf57}, + {0x96389138, 0xffffd853ffffdf58}, + {0x96389139, 0xffffd853ffffdf59}, + {0x96389230, 0xffffd853ffffdf5a}, + {0x96389231, 0xffffd853ffffdf5b}, + {0x96389232, 0xffffd853ffffdf5c}, + {0x96389233, 0xffffd853ffffdf5d}, + {0x96389234, 0xffffd853ffffdf5e}, + {0x96389235, 0xffffd853ffffdf5f}, + {0x96389236, 0xffffd853ffffdf60}, + {0x96389237, 0xffffd853ffffdf61}, + {0x96389238, 0xffffd853ffffdf62}, + {0x96389239, 0xffffd853ffffdf63}, + {0x96389330, 0xffffd853ffffdf64}, + {0x96389331, 0xffffd853ffffdf65}, + {0x96389332, 0xffffd853ffffdf66}, + {0x96389333, 0xffffd853ffffdf67}, + {0x96389334, 0xffffd853ffffdf68}, + {0x96389335, 0xffffd853ffffdf69}, + {0x96389336, 0xffffd853ffffdf6a}, + {0x96389337, 0xffffd853ffffdf6b}, + {0x96389338, 0xffffd853ffffdf6c}, + {0x96389339, 0xffffd853ffffdf6d}, + {0x96389430, 0xffffd853ffffdf6e}, + {0x96389431, 0xffffd853ffffdf6f}, + {0x96389432, 0xffffd853ffffdf70}, + {0x96389433, 0xffffd853ffffdf71}, + {0x96389434, 0xffffd853ffffdf72}, + {0x96389435, 0xffffd853ffffdf73}, + {0x96389436, 0xffffd853ffffdf74}, + {0x96389437, 0xffffd853ffffdf75}, + {0x96389438, 0xffffd853ffffdf76}, + {0x96389439, 0xffffd853ffffdf77}, + {0x96389530, 0xffffd853ffffdf78}, + {0x96389531, 0xffffd853ffffdf79}, + {0x96389532, 0xffffd853ffffdf7a}, + {0x96389533, 0xffffd853ffffdf7b}, + {0x96389534, 0xffffd853ffffdf7c}, + {0x96389535, 0xffffd853ffffdf7d}, + {0x96389536, 0xffffd853ffffdf7e}, + {0x96389537, 0xffffd853ffffdf7f}, + {0x96389538, 0xffffd853ffffdf80}, + {0x96389539, 0xffffd853ffffdf81}, + {0x96389630, 0xffffd853ffffdf82}, + {0x96389631, 0xffffd853ffffdf83}, + {0x96389632, 0xffffd853ffffdf84}, + {0x96389633, 0xffffd853ffffdf85}, + {0x96389634, 0xffffd853ffffdf86}, + {0x96389635, 0xffffd853ffffdf87}, + {0x96389636, 0xffffd853ffffdf88}, + {0x96389637, 0xffffd853ffffdf89}, + {0x96389638, 0xffffd853ffffdf8a}, + {0x96389639, 0xffffd853ffffdf8b}, + {0x96389730, 0xffffd853ffffdf8c}, + {0x96389731, 0xffffd853ffffdf8d}, + {0x96389732, 0xffffd853ffffdf8e}, + {0x96389733, 0xffffd853ffffdf8f}, + {0x96389734, 0xffffd853ffffdf90}, + {0x96389735, 0xffffd853ffffdf91}, + {0x96389736, 0xffffd853ffffdf92}, + {0x96389737, 0xffffd853ffffdf93}, + {0x96389738, 0xffffd853ffffdf94}, + {0x96389739, 0xffffd853ffffdf95}, + {0x96389830, 0xffffd853ffffdf96}, + {0x96389831, 0xffffd853ffffdf97}, + {0x96389832, 0xffffd853ffffdf98}, + {0x96389833, 0xffffd853ffffdf99}, + {0x96389834, 0xffffd853ffffdf9a}, + {0x96389835, 0xffffd853ffffdf9b}, + {0x96389836, 0xffffd853ffffdf9c}, + {0x96389837, 0xffffd853ffffdf9d}, + {0x96389838, 0xffffd853ffffdf9e}, + {0x96389839, 0xffffd853ffffdf9f}, + {0x96389930, 0xffffd853ffffdfa0}, + {0x96389931, 0xffffd853ffffdfa1}, + {0x96389932, 0xffffd853ffffdfa2}, + {0x96389933, 0xffffd853ffffdfa3}, + {0x96389934, 0xffffd853ffffdfa4}, + {0x96389935, 0xffffd853ffffdfa5}, + {0x96389936, 0xffffd853ffffdfa6}, + {0x96389937, 0xffffd853ffffdfa7}, + {0x96389938, 0xffffd853ffffdfa8}, + {0x96389939, 0xffffd853ffffdfa9}, + {0x96389a30, 0xffffd853ffffdfaa}, + {0x96389a31, 0xffffd853ffffdfab}, + {0x96389a32, 0xffffd853ffffdfac}, + {0x96389a33, 0xffffd853ffffdfad}, + {0x96389a34, 0xffffd853ffffdfae}, + {0x96389a35, 0xffffd853ffffdfaf}, + {0x96389a36, 0xffffd853ffffdfb0}, + {0x96389a37, 0xffffd853ffffdfb1}, + {0x96389a38, 0xffffd853ffffdfb2}, + {0x96389a39, 0xffffd853ffffdfb3}, + {0x96389b30, 0xffffd853ffffdfb4}, + {0x96389b31, 0xffffd853ffffdfb5}, + {0x96389b32, 0xffffd853ffffdfb6}, + {0x96389b33, 0xffffd853ffffdfb7}, + {0x96389b34, 0xffffd853ffffdfb8}, + {0x96389b35, 0xffffd853ffffdfb9}, + {0x96389b36, 0xffffd853ffffdfba}, + {0x96389b37, 0xffffd853ffffdfbb}, + {0x96389b38, 0xffffd853ffffdfbc}, + {0x96389b39, 0xffffd853ffffdfbd}, + {0x96389c30, 0xffffd853ffffdfbe}, + {0x96389c31, 0xffffd853ffffdfbf}, + {0x96389c32, 0xffffd853ffffdfc0}, + {0x96389c33, 0xffffd853ffffdfc1}, + {0x96389c34, 0xffffd853ffffdfc2}, + {0x96389c35, 0xffffd853ffffdfc3}, + {0x96389c36, 0xffffd853ffffdfc4}, + {0x96389c37, 0xffffd853ffffdfc5}, + {0x96389c38, 0xffffd853ffffdfc6}, + {0x96389c39, 0xffffd853ffffdfc7}, + {0x96389d30, 0xffffd853ffffdfc8}, + {0x96389d31, 0xffffd853ffffdfc9}, + {0x96389d32, 0xffffd853ffffdfca}, + {0x96389d33, 0xffffd853ffffdfcb}, + {0x96389d34, 0xffffd853ffffdfcc}, + {0x96389d35, 0xffffd853ffffdfcd}, + {0x96389d36, 0xffffd853ffffdfce}, + {0x96389d37, 0xffffd853ffffdfcf}, + {0x96389d38, 0xffffd853ffffdfd0}, + {0x96389d39, 0xffffd853ffffdfd1}, + {0x96389e30, 0xffffd853ffffdfd2}, + {0x96389e31, 0xffffd853ffffdfd3}, + {0x96389e32, 0xffffd853ffffdfd4}, + {0x96389e33, 0xffffd853ffffdfd5}, + {0x96389e34, 0xffffd853ffffdfd6}, + {0x96389e35, 0xffffd853ffffdfd7}, + {0x96389e36, 0xffffd853ffffdfd8}, + {0x96389e37, 0xffffd853ffffdfd9}, + {0x96389e38, 0xffffd853ffffdfda}, + {0x96389e39, 0xffffd853ffffdfdb}, + {0x96389f30, 0xffffd853ffffdfdc}, + {0x96389f31, 0xffffd853ffffdfdd}, + {0x96389f32, 0xffffd853ffffdfde}, + {0x96389f33, 0xffffd853ffffdfdf}, + {0x96389f34, 0xffffd853ffffdfe0}, + {0x96389f35, 0xffffd853ffffdfe1}, + {0x96389f36, 0xffffd853ffffdfe2}, + {0x96389f37, 0xffffd853ffffdfe3}, + {0x96389f38, 0xffffd853ffffdfe4}, + {0x96389f39, 0xffffd853ffffdfe5}, + {0x9638a030, 0xffffd853ffffdfe6}, + {0x9638a031, 0xffffd853ffffdfe7}, + {0x9638a032, 0xffffd853ffffdfe8}, + {0x9638a033, 0xffffd853ffffdfe9}, + {0x9638a034, 0xffffd853ffffdfea}, + {0x9638a035, 0xffffd853ffffdfeb}, + {0x9638a036, 0xffffd853ffffdfec}, + {0x9638a037, 0xffffd853ffffdfed}, + {0x9638a038, 0xffffd853ffffdfee}, + {0x9638a039, 0xffffd853ffffdfef}, + {0x9638a130, 0xffffd853ffffdff0}, + {0x9638a131, 0xffffd853ffffdff1}, + {0x9638a132, 0xffffd853ffffdff2}, + {0x9638a133, 0xffffd853ffffdff3}, + {0x9638a134, 0xffffd853ffffdff4}, + {0x9638a135, 0xffffd853ffffdff5}, + {0x9638a136, 0xffffd853ffffdff6}, + {0x9638a137, 0xffffd853ffffdff7}, + {0x9638a138, 0xffffd853ffffdff8}, + {0x9638a139, 0xffffd853ffffdff9}, + {0x9638a230, 0xffffd853ffffdffa}, + {0x9638a231, 0xffffd853ffffdffb}, + {0x9638a232, 0xffffd853ffffdffc}, + {0x9638a233, 0xffffd853ffffdffd}, + {0x9638a234, 0xffffd853ffffdffe}, + {0x9638a235, 0xffffd853ffffdfff}, + {0x9638a236, 0xffffd854ffffdc00}, + {0x9638a237, 0xffffd854ffffdc01}, + {0x9638a238, 0xffffd854ffffdc02}, + {0x9638a239, 0xffffd854ffffdc03}, + {0x9638a330, 0xffffd854ffffdc04}, + {0x9638a331, 0xffffd854ffffdc05}, + {0x9638a332, 0xffffd854ffffdc06}, + {0x9638a333, 0xffffd854ffffdc07}, + {0x9638a334, 0xffffd854ffffdc08}, + {0x9638a335, 0xffffd854ffffdc09}, + {0x9638a336, 0xffffd854ffffdc0a}, + {0x9638a337, 0xffffd854ffffdc0b}, + {0x9638a338, 0xffffd854ffffdc0c}, + {0x9638a339, 0xffffd854ffffdc0d}, + {0x9638a430, 0xffffd854ffffdc0e}, + {0x9638a431, 0xffffd854ffffdc0f}, + {0x9638a432, 0xffffd854ffffdc10}, + {0x9638a433, 0xffffd854ffffdc11}, + {0x9638a434, 0xffffd854ffffdc12}, + {0x9638a435, 0xffffd854ffffdc13}, + {0x9638a436, 0xffffd854ffffdc14}, + {0x9638a437, 0xffffd854ffffdc15}, + {0x9638a438, 0xffffd854ffffdc16}, + {0x9638a439, 0xffffd854ffffdc17}, + {0x9638a530, 0xffffd854ffffdc18}, + {0x9638a531, 0xffffd854ffffdc19}, + {0x9638a532, 0xffffd854ffffdc1a}, + {0x9638a533, 0xffffd854ffffdc1b}, + {0x9638a534, 0xffffd854ffffdc1c}, + {0x9638a535, 0xffffd854ffffdc1d}, + {0x9638a536, 0xffffd854ffffdc1e}, + {0x9638a537, 0xffffd854ffffdc1f}, + {0x9638a538, 0xffffd854ffffdc20}, + {0x9638a539, 0xffffd854ffffdc21}, + {0x9638a630, 0xffffd854ffffdc22}, + {0x9638a631, 0xffffd854ffffdc23}, + {0x9638a632, 0xffffd854ffffdc24}, + {0x9638a633, 0xffffd854ffffdc25}, + {0x9638a634, 0xffffd854ffffdc26}, + {0x9638a635, 0xffffd854ffffdc27}, + {0x9638a636, 0xffffd854ffffdc28}, + {0x9638a637, 0xffffd854ffffdc29}, + {0x9638a638, 0xffffd854ffffdc2a}, + {0x9638a639, 0xffffd854ffffdc2b}, + {0x9638a730, 0xffffd854ffffdc2c}, + {0x9638a731, 0xffffd854ffffdc2d}, + {0x9638a732, 0xffffd854ffffdc2e}, + {0x9638a733, 0xffffd854ffffdc2f}, + {0x9638a734, 0xffffd854ffffdc30}, + {0x9638a735, 0xffffd854ffffdc31}, + {0x9638a736, 0xffffd854ffffdc32}, + {0x9638a737, 0xffffd854ffffdc33}, + {0x9638a738, 0xffffd854ffffdc34}, + {0x9638a739, 0xffffd854ffffdc35}, + {0x9638a830, 0xffffd854ffffdc36}, + {0x9638a831, 0xffffd854ffffdc37}, + {0x9638a832, 0xffffd854ffffdc38}, + {0x9638a833, 0xffffd854ffffdc39}, + {0x9638a834, 0xffffd854ffffdc3a}, + {0x9638a835, 0xffffd854ffffdc3b}, + {0x9638a836, 0xffffd854ffffdc3c}, + {0x9638a837, 0xffffd854ffffdc3d}, + {0x9638a838, 0xffffd854ffffdc3e}, + {0x9638a839, 0xffffd854ffffdc3f}, + {0x9638a930, 0xffffd854ffffdc40}, + {0x9638a931, 0xffffd854ffffdc41}, + {0x9638a932, 0xffffd854ffffdc42}, + {0x9638a933, 0xffffd854ffffdc43}, + {0x9638a934, 0xffffd854ffffdc44}, + {0x9638a935, 0xffffd854ffffdc45}, + {0x9638a936, 0xffffd854ffffdc46}, + {0x9638a937, 0xffffd854ffffdc47}, + {0x9638a938, 0xffffd854ffffdc48}, + {0x9638a939, 0xffffd854ffffdc49}, + {0x9638aa30, 0xffffd854ffffdc4a}, + {0x9638aa31, 0xffffd854ffffdc4b}, + {0x9638aa32, 0xffffd854ffffdc4c}, + {0x9638aa33, 0xffffd854ffffdc4d}, + {0x9638aa34, 0xffffd854ffffdc4e}, + {0x9638aa35, 0xffffd854ffffdc4f}, + {0x9638aa36, 0xffffd854ffffdc50}, + {0x9638aa37, 0xffffd854ffffdc51}, + {0x9638aa38, 0xffffd854ffffdc52}, + {0x9638aa39, 0xffffd854ffffdc53}, + {0x9638ab30, 0xffffd854ffffdc54}, + {0x9638ab31, 0xffffd854ffffdc55}, + {0x9638ab32, 0xffffd854ffffdc56}, + {0x9638ab33, 0xffffd854ffffdc57}, + {0x9638ab34, 0xffffd854ffffdc58}, + {0x9638ab35, 0xffffd854ffffdc59}, + {0x9638ab36, 0xffffd854ffffdc5a}, + {0x9638ab37, 0xffffd854ffffdc5b}, + {0x9638ab38, 0xffffd854ffffdc5c}, + {0x9638ab39, 0xffffd854ffffdc5d}, + {0x9638ac30, 0xffffd854ffffdc5e}, + {0x9638ac31, 0xffffd854ffffdc5f}, + {0x9638ac32, 0xffffd854ffffdc60}, + {0x9638ac33, 0xffffd854ffffdc61}, + {0x9638ac34, 0xffffd854ffffdc62}, + {0x9638ac35, 0xffffd854ffffdc63}, + {0x9638ac36, 0xffffd854ffffdc64}, + {0x9638ac37, 0xffffd854ffffdc65}, + {0x9638ac38, 0xffffd854ffffdc66}, + {0x9638ac39, 0xffffd854ffffdc67}, + {0x9638ad30, 0xffffd854ffffdc68}, + {0x9638ad31, 0xffffd854ffffdc69}, + {0x9638ad32, 0xffffd854ffffdc6a}, + {0x9638ad33, 0xffffd854ffffdc6b}, + {0x9638ad34, 0xffffd854ffffdc6c}, + {0x9638ad35, 0xffffd854ffffdc6d}, + {0x9638ad36, 0xffffd854ffffdc6e}, + {0x9638ad37, 0xffffd854ffffdc6f}, + {0x9638ad38, 0xffffd854ffffdc70}, + {0x9638ad39, 0xffffd854ffffdc71}, + {0x9638ae30, 0xffffd854ffffdc72}, + {0x9638ae31, 0xffffd854ffffdc73}, + {0x9638ae32, 0xffffd854ffffdc74}, + {0x9638ae33, 0xffffd854ffffdc75}, + {0x9638ae34, 0xffffd854ffffdc76}, + {0x9638ae35, 0xffffd854ffffdc77}, + {0x9638ae36, 0xffffd854ffffdc78}, + {0x9638ae37, 0xffffd854ffffdc79}, + {0x9638ae38, 0xffffd854ffffdc7a}, + {0x9638ae39, 0xffffd854ffffdc7b}, + {0x9638af30, 0xffffd854ffffdc7c}, + {0x9638af31, 0xffffd854ffffdc7d}, + {0x9638af32, 0xffffd854ffffdc7e}, + {0x9638af33, 0xffffd854ffffdc7f}, + {0x9638af34, 0xffffd854ffffdc80}, + {0x9638af35, 0xffffd854ffffdc81}, + {0x9638af36, 0xffffd854ffffdc82}, + {0x9638af37, 0xffffd854ffffdc83}, + {0x9638af38, 0xffffd854ffffdc84}, + {0x9638af39, 0xffffd854ffffdc85}, + {0x9638b030, 0xffffd854ffffdc86}, + {0x9638b031, 0xffffd854ffffdc87}, + {0x9638b032, 0xffffd854ffffdc88}, + {0x9638b033, 0xffffd854ffffdc89}, + {0x9638b034, 0xffffd854ffffdc8a}, + {0x9638b035, 0xffffd854ffffdc8b}, + {0x9638b036, 0xffffd854ffffdc8c}, + {0x9638b037, 0xffffd854ffffdc8d}, + {0x9638b038, 0xffffd854ffffdc8e}, + {0x9638b039, 0xffffd854ffffdc8f}, + {0x9638b130, 0xffffd854ffffdc90}, + {0x9638b131, 0xffffd854ffffdc91}, + {0x9638b132, 0xffffd854ffffdc92}, + {0x9638b133, 0xffffd854ffffdc93}, + {0x9638b134, 0xffffd854ffffdc94}, + {0x9638b135, 0xffffd854ffffdc95}, + {0x9638b136, 0xffffd854ffffdc96}, + {0x9638b137, 0xffffd854ffffdc97}, + {0x9638b138, 0xffffd854ffffdc98}, + {0x9638b139, 0xffffd854ffffdc99}, + {0x9638b230, 0xffffd854ffffdc9a}, + {0x9638b231, 0xffffd854ffffdc9b}, + {0x9638b232, 0xffffd854ffffdc9c}, + {0x9638b233, 0xffffd854ffffdc9d}, + {0x9638b234, 0xffffd854ffffdc9e}, + {0x9638b235, 0xffffd854ffffdc9f}, + {0x9638b236, 0xffffd854ffffdca0}, + {0x9638b237, 0xffffd854ffffdca1}, + {0x9638b238, 0xffffd854ffffdca2}, + {0x9638b239, 0xffffd854ffffdca3}, + {0x9638b330, 0xffffd854ffffdca4}, + {0x9638b331, 0xffffd854ffffdca5}, + {0x9638b332, 0xffffd854ffffdca6}, + {0x9638b333, 0xffffd854ffffdca7}, + {0x9638b334, 0xffffd854ffffdca8}, + {0x9638b335, 0xffffd854ffffdca9}, + {0x9638b336, 0xffffd854ffffdcaa}, + {0x9638b337, 0xffffd854ffffdcab}, + {0x9638b338, 0xffffd854ffffdcac}, + {0x9638b339, 0xffffd854ffffdcad}, + {0x9638b430, 0xffffd854ffffdcae}, + {0x9638b431, 0xffffd854ffffdcaf}, + {0x9638b432, 0xffffd854ffffdcb0}, + {0x9638b433, 0xffffd854ffffdcb1}, + {0x9638b434, 0xffffd854ffffdcb2}, + {0x9638b435, 0xffffd854ffffdcb3}, + {0x9638b436, 0xffffd854ffffdcb4}, + {0x9638b437, 0xffffd854ffffdcb5}, + {0x9638b438, 0xffffd854ffffdcb6}, + {0x9638b439, 0xffffd854ffffdcb7}, + {0x9638b530, 0xffffd854ffffdcb8}, + {0x9638b531, 0xffffd854ffffdcb9}, + {0x9638b532, 0xffffd854ffffdcba}, + {0x9638b533, 0xffffd854ffffdcbb}, + {0x9638b534, 0xffffd854ffffdcbc}, + {0x9638b535, 0xffffd854ffffdcbd}, + {0x9638b536, 0xffffd854ffffdcbe}, + {0x9638b537, 0xffffd854ffffdcbf}, + {0x9638b538, 0xffffd854ffffdcc0}, + {0x9638b539, 0xffffd854ffffdcc1}, + {0x9638b630, 0xffffd854ffffdcc2}, + {0x9638b631, 0xffffd854ffffdcc3}, + {0x9638b632, 0xffffd854ffffdcc4}, + {0x9638b633, 0xffffd854ffffdcc5}, + {0x9638b634, 0xffffd854ffffdcc6}, + {0x9638b635, 0xffffd854ffffdcc7}, + {0x9638b636, 0xffffd854ffffdcc8}, + {0x9638b637, 0xffffd854ffffdcc9}, + {0x9638b638, 0xffffd854ffffdcca}, + {0x9638b639, 0xffffd854ffffdccb}, + {0x9638b730, 0xffffd854ffffdccc}, + {0x9638b731, 0xffffd854ffffdccd}, + {0x9638b732, 0xffffd854ffffdcce}, + {0x9638b733, 0xffffd854ffffdccf}, + {0x9638b734, 0xffffd854ffffdcd0}, + {0x9638b735, 0xffffd854ffffdcd1}, + {0x9638b736, 0xffffd854ffffdcd2}, + {0x9638b737, 0xffffd854ffffdcd3}, + {0x9638b738, 0xffffd854ffffdcd4}, + {0x9638b739, 0xffffd854ffffdcd5}, + {0x9638b830, 0xffffd854ffffdcd6}, + {0x9638b831, 0xffffd854ffffdcd7}, + {0x9638b832, 0xffffd854ffffdcd8}, + {0x9638b833, 0xffffd854ffffdcd9}, + {0x9638b834, 0xffffd854ffffdcda}, + {0x9638b835, 0xffffd854ffffdcdb}, + {0x9638b836, 0xffffd854ffffdcdc}, + {0x9638b837, 0xffffd854ffffdcdd}, + {0x9638b838, 0xffffd854ffffdcde}, + {0x9638b839, 0xffffd854ffffdcdf}, + {0x9638b930, 0xffffd854ffffdce0}, + {0x9638b931, 0xffffd854ffffdce1}, + {0x9638b932, 0xffffd854ffffdce2}, + {0x9638b933, 0xffffd854ffffdce3}, + {0x9638b934, 0xffffd854ffffdce4}, + {0x9638b935, 0xffffd854ffffdce5}, + {0x9638b936, 0xffffd854ffffdce6}, + {0x9638b937, 0xffffd854ffffdce7}, + {0x9638b938, 0xffffd854ffffdce8}, + {0x9638b939, 0xffffd854ffffdce9}, + {0x9638ba30, 0xffffd854ffffdcea}, + {0x9638ba31, 0xffffd854ffffdceb}, + {0x9638ba32, 0xffffd854ffffdcec}, + {0x9638ba33, 0xffffd854ffffdced}, + {0x9638ba34, 0xffffd854ffffdcee}, + {0x9638ba35, 0xffffd854ffffdcef}, + {0x9638ba36, 0xffffd854ffffdcf0}, + {0x9638ba37, 0xffffd854ffffdcf1}, + {0x9638ba38, 0xffffd854ffffdcf2}, + {0x9638ba39, 0xffffd854ffffdcf3}, + {0x9638bb30, 0xffffd854ffffdcf4}, + {0x9638bb31, 0xffffd854ffffdcf5}, + {0x9638bb32, 0xffffd854ffffdcf6}, + {0x9638bb33, 0xffffd854ffffdcf7}, + {0x9638bb34, 0xffffd854ffffdcf8}, + {0x9638bb35, 0xffffd854ffffdcf9}, + {0x9638bb36, 0xffffd854ffffdcfa}, + {0x9638bb37, 0xffffd854ffffdcfb}, + {0x9638bb38, 0xffffd854ffffdcfc}, + {0x9638bb39, 0xffffd854ffffdcfd}, + {0x9638bc30, 0xffffd854ffffdcfe}, + {0x9638bc31, 0xffffd854ffffdcff}, + {0x9638bc32, 0xffffd854ffffdd00}, + {0x9638bc33, 0xffffd854ffffdd01}, + {0x9638bc34, 0xffffd854ffffdd02}, + {0x9638bc35, 0xffffd854ffffdd03}, + {0x9638bc36, 0xffffd854ffffdd04}, + {0x9638bc37, 0xffffd854ffffdd05}, + {0x9638bc38, 0xffffd854ffffdd06}, + {0x9638bc39, 0xffffd854ffffdd07}, + {0x9638bd30, 0xffffd854ffffdd08}, + {0x9638bd31, 0xffffd854ffffdd09}, + {0x9638bd32, 0xffffd854ffffdd0a}, + {0x9638bd33, 0xffffd854ffffdd0b}, + {0x9638bd34, 0xffffd854ffffdd0c}, + {0x9638bd35, 0xffffd854ffffdd0d}, + {0x9638bd36, 0xffffd854ffffdd0e}, + {0x9638bd37, 0xffffd854ffffdd0f}, + {0x9638bd38, 0xffffd854ffffdd10}, + {0x9638bd39, 0xffffd854ffffdd11}, + {0x9638be30, 0xffffd854ffffdd12}, + {0x9638be31, 0xffffd854ffffdd13}, + {0x9638be32, 0xffffd854ffffdd14}, + {0x9638be33, 0xffffd854ffffdd15}, + {0x9638be34, 0xffffd854ffffdd16}, + {0x9638be35, 0xffffd854ffffdd17}, + {0x9638be36, 0xffffd854ffffdd18}, + {0x9638be37, 0xffffd854ffffdd19}, + {0x9638be38, 0xffffd854ffffdd1a}, + {0x9638be39, 0xffffd854ffffdd1b}, + {0x9638bf30, 0xffffd854ffffdd1c}, + {0x9638bf31, 0xffffd854ffffdd1d}, + {0x9638bf32, 0xffffd854ffffdd1e}, + {0x9638bf33, 0xffffd854ffffdd1f}, + {0x9638bf34, 0xffffd854ffffdd20}, + {0x9638bf35, 0xffffd854ffffdd21}, + {0x9638bf36, 0xffffd854ffffdd22}, + {0x9638bf37, 0xffffd854ffffdd23}, + {0x9638bf38, 0xffffd854ffffdd24}, + {0x9638bf39, 0xffffd854ffffdd25}, + {0x9638c030, 0xffffd854ffffdd26}, + {0x9638c031, 0xffffd854ffffdd27}, + {0x9638c032, 0xffffd854ffffdd28}, + {0x9638c033, 0xffffd854ffffdd29}, + {0x9638c034, 0xffffd854ffffdd2a}, + {0x9638c035, 0xffffd854ffffdd2b}, + {0x9638c036, 0xffffd854ffffdd2c}, + {0x9638c037, 0xffffd854ffffdd2d}, + {0x9638c038, 0xffffd854ffffdd2e}, + {0x9638c039, 0xffffd854ffffdd2f}, + {0x9638c130, 0xffffd854ffffdd30}, + {0x9638c131, 0xffffd854ffffdd31}, + {0x9638c132, 0xffffd854ffffdd32}, + {0x9638c133, 0xffffd854ffffdd33}, + {0x9638c134, 0xffffd854ffffdd34}, + {0x9638c135, 0xffffd854ffffdd35}, + {0x9638c136, 0xffffd854ffffdd36}, + {0x9638c137, 0xffffd854ffffdd37}, + {0x9638c138, 0xffffd854ffffdd38}, + {0x9638c139, 0xffffd854ffffdd39}, + {0x9638c230, 0xffffd854ffffdd3a}, + {0x9638c231, 0xffffd854ffffdd3b}, + {0x9638c232, 0xffffd854ffffdd3c}, + {0x9638c233, 0xffffd854ffffdd3d}, + {0x9638c234, 0xffffd854ffffdd3e}, + {0x9638c235, 0xffffd854ffffdd3f}, + {0x9638c236, 0xffffd854ffffdd40}, + {0x9638c237, 0xffffd854ffffdd41}, + {0x9638c238, 0xffffd854ffffdd42}, + {0x9638c239, 0xffffd854ffffdd43}, + {0x9638c330, 0xffffd854ffffdd44}, + {0x9638c331, 0xffffd854ffffdd45}, + {0x9638c332, 0xffffd854ffffdd46}, + {0x9638c333, 0xffffd854ffffdd47}, + {0x9638c334, 0xffffd854ffffdd48}, + {0x9638c335, 0xffffd854ffffdd49}, + {0x9638c336, 0xffffd854ffffdd4a}, + {0x9638c337, 0xffffd854ffffdd4b}, + {0x9638c338, 0xffffd854ffffdd4c}, + {0x9638c339, 0xffffd854ffffdd4d}, + {0x9638c430, 0xffffd854ffffdd4e}, + {0x9638c431, 0xffffd854ffffdd4f}, + {0x9638c432, 0xffffd854ffffdd50}, + {0x9638c433, 0xffffd854ffffdd51}, + {0x9638c434, 0xffffd854ffffdd52}, + {0x9638c435, 0xffffd854ffffdd53}, + {0x9638c436, 0xffffd854ffffdd54}, + {0x9638c437, 0xffffd854ffffdd55}, + {0x9638c438, 0xffffd854ffffdd56}, + {0x9638c439, 0xffffd854ffffdd57}, + {0x9638c530, 0xffffd854ffffdd58}, + {0x9638c531, 0xffffd854ffffdd59}, + {0x9638c532, 0xffffd854ffffdd5a}, + {0x9638c533, 0xffffd854ffffdd5b}, + {0x9638c534, 0xffffd854ffffdd5c}, + {0x9638c535, 0xffffd854ffffdd5d}, + {0x9638c536, 0xffffd854ffffdd5e}, + {0x9638c537, 0xffffd854ffffdd5f}, + {0x9638c538, 0xffffd854ffffdd60}, + {0x9638c539, 0xffffd854ffffdd61}, + {0x9638c630, 0xffffd854ffffdd62}, + {0x9638c631, 0xffffd854ffffdd63}, + {0x9638c632, 0xffffd854ffffdd64}, + {0x9638c633, 0xffffd854ffffdd65}, + {0x9638c634, 0xffffd854ffffdd66}, + {0x9638c635, 0xffffd854ffffdd67}, + {0x9638c636, 0xffffd854ffffdd68}, + {0x9638c637, 0xffffd854ffffdd69}, + {0x9638c638, 0xffffd854ffffdd6a}, + {0x9638c639, 0xffffd854ffffdd6b}, + {0x9638c730, 0xffffd854ffffdd6c}, + {0x9638c731, 0xffffd854ffffdd6d}, + {0x9638c732, 0xffffd854ffffdd6e}, + {0x9638c733, 0xffffd854ffffdd6f}, + {0x9638c734, 0xffffd854ffffdd70}, + {0x9638c735, 0xffffd854ffffdd71}, + {0x9638c736, 0xffffd854ffffdd72}, + {0x9638c737, 0xffffd854ffffdd73}, + {0x9638c738, 0xffffd854ffffdd74}, + {0x9638c739, 0xffffd854ffffdd75}, + {0x9638c830, 0xffffd854ffffdd76}, + {0x9638c831, 0xffffd854ffffdd77}, + {0x9638c832, 0xffffd854ffffdd78}, + {0x9638c833, 0xffffd854ffffdd79}, + {0x9638c834, 0xffffd854ffffdd7a}, + {0x9638c835, 0xffffd854ffffdd7b}, + {0x9638c836, 0xffffd854ffffdd7c}, + {0x9638c837, 0xffffd854ffffdd7d}, + {0x9638c838, 0xffffd854ffffdd7e}, + {0x9638c839, 0xffffd854ffffdd7f}, + {0x9638c930, 0xffffd854ffffdd80}, + {0x9638c931, 0xffffd854ffffdd81}, + {0x9638c932, 0xffffd854ffffdd82}, + {0x9638c933, 0xffffd854ffffdd83}, + {0x9638c934, 0xffffd854ffffdd84}, + {0x9638c935, 0xffffd854ffffdd85}, + {0x9638c936, 0xffffd854ffffdd86}, + {0x9638c937, 0xffffd854ffffdd87}, + {0x9638c938, 0xffffd854ffffdd88}, + {0x9638c939, 0xffffd854ffffdd89}, + {0x9638ca30, 0xffffd854ffffdd8a}, + {0x9638ca31, 0xffffd854ffffdd8b}, + {0x9638ca32, 0xffffd854ffffdd8c}, + {0x9638ca33, 0xffffd854ffffdd8d}, + {0x9638ca34, 0xffffd854ffffdd8e}, + {0x9638ca35, 0xffffd854ffffdd8f}, + {0x9638ca36, 0xffffd854ffffdd90}, + {0x9638ca37, 0xffffd854ffffdd91}, + {0x9638ca38, 0xffffd854ffffdd92}, + {0x9638ca39, 0xffffd854ffffdd93}, + {0x9638cb30, 0xffffd854ffffdd94}, + {0x9638cb31, 0xffffd854ffffdd95}, + {0x9638cb32, 0xffffd854ffffdd96}, + {0x9638cb33, 0xffffd854ffffdd97}, + {0x9638cb34, 0xffffd854ffffdd98}, + {0x9638cb35, 0xffffd854ffffdd99}, + {0x9638cb36, 0xffffd854ffffdd9a}, + {0x9638cb37, 0xffffd854ffffdd9b}, + {0x9638cb38, 0xffffd854ffffdd9c}, + {0x9638cb39, 0xffffd854ffffdd9d}, + {0x9638cc30, 0xffffd854ffffdd9e}, + {0x9638cc31, 0xffffd854ffffdd9f}, + {0x9638cc32, 0xffffd854ffffdda0}, + {0x9638cc33, 0xffffd854ffffdda1}, + {0x9638cc34, 0xffffd854ffffdda2}, + {0x9638cc35, 0xffffd854ffffdda3}, + {0x9638cc36, 0xffffd854ffffdda4}, + {0x9638cc37, 0xffffd854ffffdda5}, + {0x9638cc38, 0xffffd854ffffdda6}, + {0x9638cc39, 0xffffd854ffffdda7}, + {0x9638cd30, 0xffffd854ffffdda8}, + {0x9638cd31, 0xffffd854ffffdda9}, + {0x9638cd32, 0xffffd854ffffddaa}, + {0x9638cd33, 0xffffd854ffffddab}, + {0x9638cd34, 0xffffd854ffffddac}, + {0x9638cd35, 0xffffd854ffffddad}, + {0x9638cd36, 0xffffd854ffffddae}, + {0x9638cd37, 0xffffd854ffffddaf}, + {0x9638cd38, 0xffffd854ffffddb0}, + {0x9638cd39, 0xffffd854ffffddb1}, + {0x9638ce30, 0xffffd854ffffddb2}, + {0x9638ce31, 0xffffd854ffffddb3}, + {0x9638ce32, 0xffffd854ffffddb4}, + {0x9638ce33, 0xffffd854ffffddb5}, + {0x9638ce34, 0xffffd854ffffddb6}, + {0x9638ce35, 0xffffd854ffffddb7}, + {0x9638ce36, 0xffffd854ffffddb8}, + {0x9638ce37, 0xffffd854ffffddb9}, + {0x9638ce38, 0xffffd854ffffddba}, + {0x9638ce39, 0xffffd854ffffddbb}, + {0x9638cf30, 0xffffd854ffffddbc}, + {0x9638cf31, 0xffffd854ffffddbd}, + {0x9638cf32, 0xffffd854ffffddbe}, + {0x9638cf33, 0xffffd854ffffddbf}, + {0x9638cf34, 0xffffd854ffffddc0}, + {0x9638cf35, 0xffffd854ffffddc1}, + {0x9638cf36, 0xffffd854ffffddc2}, + {0x9638cf37, 0xffffd854ffffddc3}, + {0x9638cf38, 0xffffd854ffffddc4}, + {0x9638cf39, 0xffffd854ffffddc5}, + {0x9638d030, 0xffffd854ffffddc6}, + {0x9638d031, 0xffffd854ffffddc7}, + {0x9638d032, 0xffffd854ffffddc8}, + {0x9638d033, 0xffffd854ffffddc9}, + {0x9638d034, 0xffffd854ffffddca}, + {0x9638d035, 0xffffd854ffffddcb}, + {0x9638d036, 0xffffd854ffffddcc}, + {0x9638d037, 0xffffd854ffffddcd}, + {0x9638d038, 0xffffd854ffffddce}, + {0x9638d039, 0xffffd854ffffddcf}, + {0x9638d130, 0xffffd854ffffddd0}, + {0x9638d131, 0xffffd854ffffddd1}, + {0x9638d132, 0xffffd854ffffddd2}, + {0x9638d133, 0xffffd854ffffddd3}, + {0x9638d134, 0xffffd854ffffddd4}, + {0x9638d135, 0xffffd854ffffddd5}, + {0x9638d136, 0xffffd854ffffddd6}, + {0x9638d137, 0xffffd854ffffddd7}, + {0x9638d138, 0xffffd854ffffddd8}, + {0x9638d139, 0xffffd854ffffddd9}, + {0x9638d230, 0xffffd854ffffddda}, + {0x9638d231, 0xffffd854ffffdddb}, + {0x9638d232, 0xffffd854ffffdddc}, + {0x9638d233, 0xffffd854ffffdddd}, + {0x9638d234, 0xffffd854ffffddde}, + {0x9638d235, 0xffffd854ffffdddf}, + {0x9638d236, 0xffffd854ffffdde0}, + {0x9638d237, 0xffffd854ffffdde1}, + {0x9638d238, 0xffffd854ffffdde2}, + {0x9638d239, 0xffffd854ffffdde3}, + {0x9638d330, 0xffffd854ffffdde4}, + {0x9638d331, 0xffffd854ffffdde5}, + {0x9638d332, 0xffffd854ffffdde6}, + {0x9638d333, 0xffffd854ffffdde7}, + {0x9638d334, 0xffffd854ffffdde8}, + {0x9638d335, 0xffffd854ffffdde9}, + {0x9638d336, 0xffffd854ffffddea}, + {0x9638d337, 0xffffd854ffffddeb}, + {0x9638d338, 0xffffd854ffffddec}, + {0x9638d339, 0xffffd854ffffdded}, + {0x9638d430, 0xffffd854ffffddee}, + {0x9638d431, 0xffffd854ffffddef}, + {0x9638d432, 0xffffd854ffffddf0}, + {0x9638d433, 0xffffd854ffffddf1}, + {0x9638d434, 0xffffd854ffffddf2}, + {0x9638d435, 0xffffd854ffffddf3}, + {0x9638d436, 0xffffd854ffffddf4}, + {0x9638d437, 0xffffd854ffffddf5}, + {0x9638d438, 0xffffd854ffffddf6}, + {0x9638d439, 0xffffd854ffffddf7}, + {0x9638d530, 0xffffd854ffffddf8}, + {0x9638d531, 0xffffd854ffffddf9}, + {0x9638d532, 0xffffd854ffffddfa}, + {0x9638d533, 0xffffd854ffffddfb}, + {0x9638d534, 0xffffd854ffffddfc}, + {0x9638d535, 0xffffd854ffffddfd}, + {0x9638d536, 0xffffd854ffffddfe}, + {0x9638d537, 0xffffd854ffffddff}, + {0x9638d538, 0xffffd854ffffde00}, + {0x9638d539, 0xffffd854ffffde01}, + {0x9638d630, 0xffffd854ffffde02}, + {0x9638d631, 0xffffd854ffffde03}, + {0x9638d632, 0xffffd854ffffde04}, + {0x9638d633, 0xffffd854ffffde05}, + {0x9638d634, 0xffffd854ffffde06}, + {0x9638d635, 0xffffd854ffffde07}, + {0x9638d636, 0xffffd854ffffde08}, + {0x9638d637, 0xffffd854ffffde09}, + {0x9638d638, 0xffffd854ffffde0a}, + {0x9638d639, 0xffffd854ffffde0b}, + {0x9638d730, 0xffffd854ffffde0c}, + {0x9638d731, 0xffffd854ffffde0d}, + {0x9638d732, 0xffffd854ffffde0e}, + {0x9638d733, 0xffffd854ffffde0f}, + {0x9638d734, 0xffffd854ffffde10}, + {0x9638d735, 0xffffd854ffffde11}, + {0x9638d736, 0xffffd854ffffde12}, + {0x9638d737, 0xffffd854ffffde13}, + {0x9638d738, 0xffffd854ffffde14}, + {0x9638d739, 0xffffd854ffffde15}, + {0x9638d830, 0xffffd854ffffde16}, + {0x9638d831, 0xffffd854ffffde17}, + {0x9638d832, 0xffffd854ffffde18}, + {0x9638d833, 0xffffd854ffffde19}, + {0x9638d834, 0xffffd854ffffde1a}, + {0x9638d835, 0xffffd854ffffde1b}, + {0x9638d836, 0xffffd854ffffde1c}, + {0x9638d837, 0xffffd854ffffde1d}, + {0x9638d838, 0xffffd854ffffde1e}, + {0x9638d839, 0xffffd854ffffde1f}, + {0x9638d930, 0xffffd854ffffde20}, + {0x9638d931, 0xffffd854ffffde21}, + {0x9638d932, 0xffffd854ffffde22}, + {0x9638d933, 0xffffd854ffffde23}, + {0x9638d934, 0xffffd854ffffde24}, + {0x9638d935, 0xffffd854ffffde25}, + {0x9638d936, 0xffffd854ffffde26}, + {0x9638d937, 0xffffd854ffffde27}, + {0x9638d938, 0xffffd854ffffde28}, + {0x9638d939, 0xffffd854ffffde29}, + {0x9638da30, 0xffffd854ffffde2a}, + {0x9638da31, 0xffffd854ffffde2b}, + {0x9638da32, 0xffffd854ffffde2c}, + {0x9638da33, 0xffffd854ffffde2d}, + {0x9638da34, 0xffffd854ffffde2e}, + {0x9638da35, 0xffffd854ffffde2f}, + {0x9638da36, 0xffffd854ffffde30}, + {0x9638da37, 0xffffd854ffffde31}, + {0x9638da38, 0xffffd854ffffde32}, + {0x9638da39, 0xffffd854ffffde33}, + {0x9638db30, 0xffffd854ffffde34}, + {0x9638db31, 0xffffd854ffffde35}, + {0x9638db32, 0xffffd854ffffde36}, + {0x9638db33, 0xffffd854ffffde37}, + {0x9638db34, 0xffffd854ffffde38}, + {0x9638db35, 0xffffd854ffffde39}, + {0x9638db36, 0xffffd854ffffde3a}, + {0x9638db37, 0xffffd854ffffde3b}, + {0x9638db38, 0xffffd854ffffde3c}, + {0x9638db39, 0xffffd854ffffde3d}, + {0x9638dc30, 0xffffd854ffffde3e}, + {0x9638dc31, 0xffffd854ffffde3f}, + {0x9638dc32, 0xffffd854ffffde40}, + {0x9638dc33, 0xffffd854ffffde41}, + {0x9638dc34, 0xffffd854ffffde42}, + {0x9638dc35, 0xffffd854ffffde43}, + {0x9638dc36, 0xffffd854ffffde44}, + {0x9638dc37, 0xffffd854ffffde45}, + {0x9638dc38, 0xffffd854ffffde46}, + {0x9638dc39, 0xffffd854ffffde47}, + {0x9638dd30, 0xffffd854ffffde48}, + {0x9638dd31, 0xffffd854ffffde49}, + {0x9638dd32, 0xffffd854ffffde4a}, + {0x9638dd33, 0xffffd854ffffde4b}, + {0x9638dd34, 0xffffd854ffffde4c}, + {0x9638dd35, 0xffffd854ffffde4d}, + {0x9638dd36, 0xffffd854ffffde4e}, + {0x9638dd37, 0xffffd854ffffde4f}, + {0x9638dd38, 0xffffd854ffffde50}, + {0x9638dd39, 0xffffd854ffffde51}, + {0x9638de30, 0xffffd854ffffde52}, + {0x9638de31, 0xffffd854ffffde53}, + {0x9638de32, 0xffffd854ffffde54}, + {0x9638de33, 0xffffd854ffffde55}, + {0x9638de34, 0xffffd854ffffde56}, + {0x9638de35, 0xffffd854ffffde57}, + {0x9638de36, 0xffffd854ffffde58}, + {0x9638de37, 0xffffd854ffffde59}, + {0x9638de38, 0xffffd854ffffde5a}, + {0x9638de39, 0xffffd854ffffde5b}, + {0x9638df30, 0xffffd854ffffde5c}, + {0x9638df31, 0xffffd854ffffde5d}, + {0x9638df32, 0xffffd854ffffde5e}, + {0x9638df33, 0xffffd854ffffde5f}, + {0x9638df34, 0xffffd854ffffde60}, + {0x9638df35, 0xffffd854ffffde61}, + {0x9638df36, 0xffffd854ffffde62}, + {0x9638df37, 0xffffd854ffffde63}, + {0x9638df38, 0xffffd854ffffde64}, + {0x9638df39, 0xffffd854ffffde65}, + {0x9638e030, 0xffffd854ffffde66}, + {0x9638e031, 0xffffd854ffffde67}, + {0x9638e032, 0xffffd854ffffde68}, + {0x9638e033, 0xffffd854ffffde69}, + {0x9638e034, 0xffffd854ffffde6a}, + {0x9638e035, 0xffffd854ffffde6b}, + {0x9638e036, 0xffffd854ffffde6c}, + {0x9638e037, 0xffffd854ffffde6d}, + {0x9638e038, 0xffffd854ffffde6e}, + {0x9638e039, 0xffffd854ffffde6f}, + {0x9638e130, 0xffffd854ffffde70}, + {0x9638e131, 0xffffd854ffffde71}, + {0x9638e132, 0xffffd854ffffde72}, + {0x9638e133, 0xffffd854ffffde73}, + {0x9638e134, 0xffffd854ffffde74}, + {0x9638e135, 0xffffd854ffffde75}, + {0x9638e136, 0xffffd854ffffde76}, + {0x9638e137, 0xffffd854ffffde77}, + {0x9638e138, 0xffffd854ffffde78}, + {0x9638e139, 0xffffd854ffffde79}, + {0x9638e230, 0xffffd854ffffde7a}, + {0x9638e231, 0xffffd854ffffde7b}, + {0x9638e232, 0xffffd854ffffde7c}, + {0x9638e233, 0xffffd854ffffde7d}, + {0x9638e234, 0xffffd854ffffde7e}, + {0x9638e235, 0xffffd854ffffde7f}, + {0x9638e236, 0xffffd854ffffde80}, + {0x9638e237, 0xffffd854ffffde81}, + {0x9638e238, 0xffffd854ffffde82}, + {0x9638e239, 0xffffd854ffffde83}, + {0x9638e330, 0xffffd854ffffde84}, + {0x9638e331, 0xffffd854ffffde85}, + {0x9638e332, 0xffffd854ffffde86}, + {0x9638e333, 0xffffd854ffffde87}, + {0x9638e334, 0xffffd854ffffde88}, + {0x9638e335, 0xffffd854ffffde89}, + {0x9638e336, 0xffffd854ffffde8a}, + {0x9638e337, 0xffffd854ffffde8b}, + {0x9638e338, 0xffffd854ffffde8c}, + {0x9638e339, 0xffffd854ffffde8d}, + {0x9638e430, 0xffffd854ffffde8e}, + {0x9638e431, 0xffffd854ffffde8f}, + {0x9638e432, 0xffffd854ffffde90}, + {0x9638e433, 0xffffd854ffffde91}, + {0x9638e434, 0xffffd854ffffde92}, + {0x9638e435, 0xffffd854ffffde93}, + {0x9638e436, 0xffffd854ffffde94}, + {0x9638e437, 0xffffd854ffffde95}, + {0x9638e438, 0xffffd854ffffde96}, + {0x9638e439, 0xffffd854ffffde97}, + {0x9638e530, 0xffffd854ffffde98}, + {0x9638e531, 0xffffd854ffffde99}, + {0x9638e532, 0xffffd854ffffde9a}, + {0x9638e533, 0xffffd854ffffde9b}, + {0x9638e534, 0xffffd854ffffde9c}, + {0x9638e535, 0xffffd854ffffde9d}, + {0x9638e536, 0xffffd854ffffde9e}, + {0x9638e537, 0xffffd854ffffde9f}, + {0x9638e538, 0xffffd854ffffdea0}, + {0x9638e539, 0xffffd854ffffdea1}, + {0x9638e630, 0xffffd854ffffdea2}, + {0x9638e631, 0xffffd854ffffdea3}, + {0x9638e632, 0xffffd854ffffdea4}, + {0x9638e633, 0xffffd854ffffdea5}, + {0x9638e634, 0xffffd854ffffdea6}, + {0x9638e635, 0xffffd854ffffdea7}, + {0x9638e636, 0xffffd854ffffdea8}, + {0x9638e637, 0xffffd854ffffdea9}, + {0x9638e638, 0xffffd854ffffdeaa}, + {0x9638e639, 0xffffd854ffffdeab}, + {0x9638e730, 0xffffd854ffffdeac}, + {0x9638e731, 0xffffd854ffffdead}, + {0x9638e732, 0xffffd854ffffdeae}, + {0x9638e733, 0xffffd854ffffdeaf}, + {0x9638e734, 0xffffd854ffffdeb0}, + {0x9638e735, 0xffffd854ffffdeb1}, + {0x9638e736, 0xffffd854ffffdeb2}, + {0x9638e737, 0xffffd854ffffdeb3}, + {0x9638e738, 0xffffd854ffffdeb4}, + {0x9638e739, 0xffffd854ffffdeb5}, + {0x9638e830, 0xffffd854ffffdeb6}, + {0x9638e831, 0xffffd854ffffdeb7}, + {0x9638e832, 0xffffd854ffffdeb8}, + {0x9638e833, 0xffffd854ffffdeb9}, + {0x9638e834, 0xffffd854ffffdeba}, + {0x9638e835, 0xffffd854ffffdebb}, + {0x9638e836, 0xffffd854ffffdebc}, + {0x9638e837, 0xffffd854ffffdebd}, + {0x9638e838, 0xffffd854ffffdebe}, + {0x9638e839, 0xffffd854ffffdebf}, + {0x9638e930, 0xffffd854ffffdec0}, + {0x9638e931, 0xffffd854ffffdec1}, + {0x9638e932, 0xffffd854ffffdec2}, + {0x9638e933, 0xffffd854ffffdec3}, + {0x9638e934, 0xffffd854ffffdec4}, + {0x9638e935, 0xffffd854ffffdec5}, + {0x9638e936, 0xffffd854ffffdec6}, + {0x9638e937, 0xffffd854ffffdec7}, + {0x9638e938, 0xffffd854ffffdec8}, + {0x9638e939, 0xffffd854ffffdec9}, + {0x9638ea30, 0xffffd854ffffdeca}, + {0x9638ea31, 0xffffd854ffffdecb}, + {0x9638ea32, 0xffffd854ffffdecc}, + {0x9638ea33, 0xffffd854ffffdecd}, + {0x9638ea34, 0xffffd854ffffdece}, + {0x9638ea35, 0xffffd854ffffdecf}, + {0x9638ea36, 0xffffd854ffffded0}, + {0x9638ea37, 0xffffd854ffffded1}, + {0x9638ea38, 0xffffd854ffffded2}, + {0x9638ea39, 0xffffd854ffffded3}, + {0x9638eb30, 0xffffd854ffffded4}, + {0x9638eb31, 0xffffd854ffffded5}, + {0x9638eb32, 0xffffd854ffffded6}, + {0x9638eb33, 0xffffd854ffffded7}, + {0x9638eb34, 0xffffd854ffffded8}, + {0x9638eb35, 0xffffd854ffffded9}, + {0x9638eb36, 0xffffd854ffffdeda}, + {0x9638eb37, 0xffffd854ffffdedb}, + {0x9638eb38, 0xffffd854ffffdedc}, + {0x9638eb39, 0xffffd854ffffdedd}, + {0x9638ec30, 0xffffd854ffffdede}, + {0x9638ec31, 0xffffd854ffffdedf}, + {0x9638ec32, 0xffffd854ffffdee0}, + {0x9638ec33, 0xffffd854ffffdee1}, + {0x9638ec34, 0xffffd854ffffdee2}, + {0x9638ec35, 0xffffd854ffffdee3}, + {0x9638ec36, 0xffffd854ffffdee4}, + {0x9638ec37, 0xffffd854ffffdee5}, + {0x9638ec38, 0xffffd854ffffdee6}, + {0x9638ec39, 0xffffd854ffffdee7}, + {0x9638ed30, 0xffffd854ffffdee8}, + {0x9638ed31, 0xffffd854ffffdee9}, + {0x9638ed32, 0xffffd854ffffdeea}, + {0x9638ed33, 0xffffd854ffffdeeb}, + {0x9638ed34, 0xffffd854ffffdeec}, + {0x9638ed35, 0xffffd854ffffdeed}, + {0x9638ed36, 0xffffd854ffffdeee}, + {0x9638ed37, 0xffffd854ffffdeef}, + {0x9638ed38, 0xffffd854ffffdef0}, + {0x9638ed39, 0xffffd854ffffdef1}, + {0x9638ee30, 0xffffd854ffffdef2}, + {0x9638ee31, 0xffffd854ffffdef3}, + {0x9638ee32, 0xffffd854ffffdef4}, + {0x9638ee33, 0xffffd854ffffdef5}, + {0x9638ee34, 0xffffd854ffffdef6}, + {0x9638ee35, 0xffffd854ffffdef7}, + {0x9638ee36, 0xffffd854ffffdef8}, + {0x9638ee37, 0xffffd854ffffdef9}, + {0x9638ee38, 0xffffd854ffffdefa}, + {0x9638ee39, 0xffffd854ffffdefb}, + {0x9638ef30, 0xffffd854ffffdefc}, + {0x9638ef31, 0xffffd854ffffdefd}, + {0x9638ef32, 0xffffd854ffffdefe}, + {0x9638ef33, 0xffffd854ffffdeff}, + {0x9638ef34, 0xffffd854ffffdf00}, + {0x9638ef35, 0xffffd854ffffdf01}, + {0x9638ef36, 0xffffd854ffffdf02}, + {0x9638ef37, 0xffffd854ffffdf03}, + {0x9638ef38, 0xffffd854ffffdf04}, + {0x9638ef39, 0xffffd854ffffdf05}, + {0x9638f030, 0xffffd854ffffdf06}, + {0x9638f031, 0xffffd854ffffdf07}, + {0x9638f032, 0xffffd854ffffdf08}, + {0x9638f033, 0xffffd854ffffdf09}, + {0x9638f034, 0xffffd854ffffdf0a}, + {0x9638f035, 0xffffd854ffffdf0b}, + {0x9638f036, 0xffffd854ffffdf0c}, + {0x9638f037, 0xffffd854ffffdf0d}, + {0x9638f038, 0xffffd854ffffdf0e}, + {0x9638f039, 0xffffd854ffffdf0f}, + {0x9638f130, 0xffffd854ffffdf10}, + {0x9638f131, 0xffffd854ffffdf11}, + {0x9638f132, 0xffffd854ffffdf12}, + {0x9638f133, 0xffffd854ffffdf13}, + {0x9638f134, 0xffffd854ffffdf14}, + {0x9638f135, 0xffffd854ffffdf15}, + {0x9638f136, 0xffffd854ffffdf16}, + {0x9638f137, 0xffffd854ffffdf17}, + {0x9638f138, 0xffffd854ffffdf18}, + {0x9638f139, 0xffffd854ffffdf19}, + {0x9638f230, 0xffffd854ffffdf1a}, + {0x9638f231, 0xffffd854ffffdf1b}, + {0x9638f232, 0xffffd854ffffdf1c}, + {0x9638f233, 0xffffd854ffffdf1d}, + {0x9638f234, 0xffffd854ffffdf1e}, + {0x9638f235, 0xffffd854ffffdf1f}, + {0x9638f236, 0xffffd854ffffdf20}, + {0x9638f237, 0xffffd854ffffdf21}, + {0x9638f238, 0xffffd854ffffdf22}, + {0x9638f239, 0xffffd854ffffdf23}, + {0x9638f330, 0xffffd854ffffdf24}, + {0x9638f331, 0xffffd854ffffdf25}, + {0x9638f332, 0xffffd854ffffdf26}, + {0x9638f333, 0xffffd854ffffdf27}, + {0x9638f334, 0xffffd854ffffdf28}, + {0x9638f335, 0xffffd854ffffdf29}, + {0x9638f336, 0xffffd854ffffdf2a}, + {0x9638f337, 0xffffd854ffffdf2b}, + {0x9638f338, 0xffffd854ffffdf2c}, + {0x9638f339, 0xffffd854ffffdf2d}, + {0x9638f430, 0xffffd854ffffdf2e}, + {0x9638f431, 0xffffd854ffffdf2f}, + {0x9638f432, 0xffffd854ffffdf30}, + {0x9638f433, 0xffffd854ffffdf31}, + {0x9638f434, 0xffffd854ffffdf32}, + {0x9638f435, 0xffffd854ffffdf33}, + {0x9638f436, 0xffffd854ffffdf34}, + {0x9638f437, 0xffffd854ffffdf35}, + {0x9638f438, 0xffffd854ffffdf36}, + {0x9638f439, 0xffffd854ffffdf37}, + {0x9638f530, 0xffffd854ffffdf38}, + {0x9638f531, 0xffffd854ffffdf39}, + {0x9638f532, 0xffffd854ffffdf3a}, + {0x9638f533, 0xffffd854ffffdf3b}, + {0x9638f534, 0xffffd854ffffdf3c}, + {0x9638f535, 0xffffd854ffffdf3d}, + {0x9638f536, 0xffffd854ffffdf3e}, + {0x9638f537, 0xffffd854ffffdf3f}, + {0x9638f538, 0xffffd854ffffdf40}, + {0x9638f539, 0xffffd854ffffdf41}, + {0x9638f630, 0xffffd854ffffdf42}, + {0x9638f631, 0xffffd854ffffdf43}, + {0x9638f632, 0xffffd854ffffdf44}, + {0x9638f633, 0xffffd854ffffdf45}, + {0x9638f634, 0xffffd854ffffdf46}, + {0x9638f635, 0xffffd854ffffdf47}, + {0x9638f636, 0xffffd854ffffdf48}, + {0x9638f637, 0xffffd854ffffdf49}, + {0x9638f638, 0xffffd854ffffdf4a}, + {0x9638f639, 0xffffd854ffffdf4b}, + {0x9638f730, 0xffffd854ffffdf4c}, + {0x9638f731, 0xffffd854ffffdf4d}, + {0x9638f732, 0xffffd854ffffdf4e}, + {0x9638f733, 0xffffd854ffffdf4f}, + {0x9638f734, 0xffffd854ffffdf50}, + {0x9638f735, 0xffffd854ffffdf51}, + {0x9638f736, 0xffffd854ffffdf52}, + {0x9638f737, 0xffffd854ffffdf53}, + {0x9638f738, 0xffffd854ffffdf54}, + {0x9638f739, 0xffffd854ffffdf55}, + {0x9638f830, 0xffffd854ffffdf56}, + {0x9638f831, 0xffffd854ffffdf57}, + {0x9638f832, 0xffffd854ffffdf58}, + {0x9638f833, 0xffffd854ffffdf59}, + {0x9638f834, 0xffffd854ffffdf5a}, + {0x9638f835, 0xffffd854ffffdf5b}, + {0x9638f836, 0xffffd854ffffdf5c}, + {0x9638f837, 0xffffd854ffffdf5d}, + {0x9638f838, 0xffffd854ffffdf5e}, + {0x9638f839, 0xffffd854ffffdf5f}, + {0x9638f930, 0xffffd854ffffdf60}, + {0x9638f931, 0xffffd854ffffdf61}, + {0x9638f932, 0xffffd854ffffdf62}, + {0x9638f933, 0xffffd854ffffdf63}, + {0x9638f934, 0xffffd854ffffdf64}, + {0x9638f935, 0xffffd854ffffdf65}, + {0x9638f936, 0xffffd854ffffdf66}, + {0x9638f937, 0xffffd854ffffdf67}, + {0x9638f938, 0xffffd854ffffdf68}, + {0x9638f939, 0xffffd854ffffdf69}, + {0x9638fa30, 0xffffd854ffffdf6a}, + {0x9638fa31, 0xffffd854ffffdf6b}, + {0x9638fa32, 0xffffd854ffffdf6c}, + {0x9638fa33, 0xffffd854ffffdf6d}, + {0x9638fa34, 0xffffd854ffffdf6e}, + {0x9638fa35, 0xffffd854ffffdf6f}, + {0x9638fa36, 0xffffd854ffffdf70}, + {0x9638fa37, 0xffffd854ffffdf71}, + {0x9638fa38, 0xffffd854ffffdf72}, + {0x9638fa39, 0xffffd854ffffdf73}, + {0x9638fb30, 0xffffd854ffffdf74}, + {0x9638fb31, 0xffffd854ffffdf75}, + {0x9638fb32, 0xffffd854ffffdf76}, + {0x9638fb33, 0xffffd854ffffdf77}, + {0x9638fb34, 0xffffd854ffffdf78}, + {0x9638fb35, 0xffffd854ffffdf79}, + {0x9638fb36, 0xffffd854ffffdf7a}, + {0x9638fb37, 0xffffd854ffffdf7b}, + {0x9638fb38, 0xffffd854ffffdf7c}, + {0x9638fb39, 0xffffd854ffffdf7d}, + {0x9638fc30, 0xffffd854ffffdf7e}, + {0x9638fc31, 0xffffd854ffffdf7f}, + {0x9638fc32, 0xffffd854ffffdf80}, + {0x9638fc33, 0xffffd854ffffdf81}, + {0x9638fc34, 0xffffd854ffffdf82}, + {0x9638fc35, 0xffffd854ffffdf83}, + {0x9638fc36, 0xffffd854ffffdf84}, + {0x9638fc37, 0xffffd854ffffdf85}, + {0x9638fc38, 0xffffd854ffffdf86}, + {0x9638fc39, 0xffffd854ffffdf87}, + {0x9638fd30, 0xffffd854ffffdf88}, + {0x9638fd31, 0xffffd854ffffdf89}, + {0x9638fd32, 0xffffd854ffffdf8a}, + {0x9638fd33, 0xffffd854ffffdf8b}, + {0x9638fd34, 0xffffd854ffffdf8c}, + {0x9638fd35, 0xffffd854ffffdf8d}, + {0x9638fd36, 0xffffd854ffffdf8e}, + {0x9638fd37, 0xffffd854ffffdf8f}, + {0x9638fd38, 0xffffd854ffffdf90}, + {0x9638fd39, 0xffffd854ffffdf91}, + {0x9638fe30, 0xffffd854ffffdf92}, + {0x9638fe31, 0xffffd854ffffdf93}, + {0x9638fe32, 0xffffd854ffffdf94}, + {0x9638fe33, 0xffffd854ffffdf95}, + {0x9638fe34, 0xffffd854ffffdf96}, + {0x9638fe35, 0xffffd854ffffdf97}, + {0x9638fe36, 0xffffd854ffffdf98}, + {0x9638fe37, 0xffffd854ffffdf99}, + {0x9638fe38, 0xffffd854ffffdf9a}, + {0x9638fe39, 0xffffd854ffffdf9b}, + {0x96398130, 0xffffd854ffffdf9c}, + {0x96398131, 0xffffd854ffffdf9d}, + {0x96398132, 0xffffd854ffffdf9e}, + {0x96398133, 0xffffd854ffffdf9f}, + {0x96398134, 0xffffd854ffffdfa0}, + {0x96398135, 0xffffd854ffffdfa1}, + {0x96398136, 0xffffd854ffffdfa2}, + {0x96398137, 0xffffd854ffffdfa3}, + {0x96398138, 0xffffd854ffffdfa4}, + {0x96398139, 0xffffd854ffffdfa5}, + {0x96398230, 0xffffd854ffffdfa6}, + {0x96398231, 0xffffd854ffffdfa7}, + {0x96398232, 0xffffd854ffffdfa8}, + {0x96398233, 0xffffd854ffffdfa9}, + {0x96398234, 0xffffd854ffffdfaa}, + {0x96398235, 0xffffd854ffffdfab}, + {0x96398236, 0xffffd854ffffdfac}, + {0x96398237, 0xffffd854ffffdfad}, + {0x96398238, 0xffffd854ffffdfae}, + {0x96398239, 0xffffd854ffffdfaf}, + {0x96398330, 0xffffd854ffffdfb0}, + {0x96398331, 0xffffd854ffffdfb1}, + {0x96398332, 0xffffd854ffffdfb2}, + {0x96398333, 0xffffd854ffffdfb3}, + {0x96398334, 0xffffd854ffffdfb4}, + {0x96398335, 0xffffd854ffffdfb5}, + {0x96398336, 0xffffd854ffffdfb6}, + {0x96398337, 0xffffd854ffffdfb7}, + {0x96398338, 0xffffd854ffffdfb8}, + {0x96398339, 0xffffd854ffffdfb9}, + {0x96398430, 0xffffd854ffffdfba}, + {0x96398431, 0xffffd854ffffdfbb}, + {0x96398432, 0xffffd854ffffdfbc}, + {0x96398433, 0xffffd854ffffdfbd}, + {0x96398434, 0xffffd854ffffdfbe}, + {0x96398435, 0xffffd854ffffdfbf}, + {0x96398436, 0xffffd854ffffdfc0}, + {0x96398437, 0xffffd854ffffdfc1}, + {0x96398438, 0xffffd854ffffdfc2}, + {0x96398439, 0xffffd854ffffdfc3}, + {0x96398530, 0xffffd854ffffdfc4}, + {0x96398531, 0xffffd854ffffdfc5}, + {0x96398532, 0xffffd854ffffdfc6}, + {0x96398533, 0xffffd854ffffdfc7}, + {0x96398534, 0xffffd854ffffdfc8}, + {0x96398535, 0xffffd854ffffdfc9}, + {0x96398536, 0xffffd854ffffdfca}, + {0x96398537, 0xffffd854ffffdfcb}, + {0x96398538, 0xffffd854ffffdfcc}, + {0x96398539, 0xffffd854ffffdfcd}, + {0x96398630, 0xffffd854ffffdfce}, + {0x96398631, 0xffffd854ffffdfcf}, + {0x96398632, 0xffffd854ffffdfd0}, + {0x96398633, 0xffffd854ffffdfd1}, + {0x96398634, 0xffffd854ffffdfd2}, + {0x96398635, 0xffffd854ffffdfd3}, + {0x96398636, 0xffffd854ffffdfd4}, + {0x96398637, 0xffffd854ffffdfd5}, + {0x96398638, 0xffffd854ffffdfd6}, + {0x96398639, 0xffffd854ffffdfd7}, + {0x96398730, 0xffffd854ffffdfd8}, + {0x96398731, 0xffffd854ffffdfd9}, + {0x96398732, 0xffffd854ffffdfda}, + {0x96398733, 0xffffd854ffffdfdb}, + {0x96398734, 0xffffd854ffffdfdc}, + {0x96398735, 0xffffd854ffffdfdd}, + {0x96398736, 0xffffd854ffffdfde}, + {0x96398737, 0xffffd854ffffdfdf}, + {0x96398738, 0xffffd854ffffdfe0}, + {0x96398739, 0xffffd854ffffdfe1}, + {0x96398830, 0xffffd854ffffdfe2}, + {0x96398831, 0xffffd854ffffdfe3}, + {0x96398832, 0xffffd854ffffdfe4}, + {0x96398833, 0xffffd854ffffdfe5}, + {0x96398834, 0xffffd854ffffdfe6}, + {0x96398835, 0xffffd854ffffdfe7}, + {0x96398836, 0xffffd854ffffdfe8}, + {0x96398837, 0xffffd854ffffdfe9}, + {0x96398838, 0xffffd854ffffdfea}, + {0x96398839, 0xffffd854ffffdfeb}, + {0x96398930, 0xffffd854ffffdfec}, + {0x96398931, 0xffffd854ffffdfed}, + {0x96398932, 0xffffd854ffffdfee}, + {0x96398933, 0xffffd854ffffdfef}, + {0x96398934, 0xffffd854ffffdff0}, + {0x96398935, 0xffffd854ffffdff1}, + {0x96398936, 0xffffd854ffffdff2}, + {0x96398937, 0xffffd854ffffdff3}, + {0x96398938, 0xffffd854ffffdff4}, + {0x96398939, 0xffffd854ffffdff5}, + {0x96398a30, 0xffffd854ffffdff6}, + {0x96398a31, 0xffffd854ffffdff7}, + {0x96398a32, 0xffffd854ffffdff8}, + {0x96398a33, 0xffffd854ffffdff9}, + {0x96398a34, 0xffffd854ffffdffa}, + {0x96398a35, 0xffffd854ffffdffb}, + {0x96398a36, 0xffffd854ffffdffc}, + {0x96398a37, 0xffffd854ffffdffd}, + {0x96398a38, 0xffffd854ffffdffe}, + {0x96398a39, 0xffffd854ffffdfff}, + {0x96398b30, 0xffffd855ffffdc00}, + {0x96398b31, 0xffffd855ffffdc01}, + {0x96398b32, 0xffffd855ffffdc02}, + {0x96398b33, 0xffffd855ffffdc03}, + {0x96398b34, 0xffffd855ffffdc04}, + {0x96398b35, 0xffffd855ffffdc05}, + {0x96398b36, 0xffffd855ffffdc06}, + {0x96398b37, 0xffffd855ffffdc07}, + {0x96398b38, 0xffffd855ffffdc08}, + {0x96398b39, 0xffffd855ffffdc09}, + {0x96398c30, 0xffffd855ffffdc0a}, + {0x96398c31, 0xffffd855ffffdc0b}, + {0x96398c32, 0xffffd855ffffdc0c}, + {0x96398c33, 0xffffd855ffffdc0d}, + {0x96398c34, 0xffffd855ffffdc0e}, + {0x96398c35, 0xffffd855ffffdc0f}, + {0x96398c36, 0xffffd855ffffdc10}, + {0x96398c37, 0xffffd855ffffdc11}, + {0x96398c38, 0xffffd855ffffdc12}, + {0x96398c39, 0xffffd855ffffdc13}, + {0x96398d30, 0xffffd855ffffdc14}, + {0x96398d31, 0xffffd855ffffdc15}, + {0x96398d32, 0xffffd855ffffdc16}, + {0x96398d33, 0xffffd855ffffdc17}, + {0x96398d34, 0xffffd855ffffdc18}, + {0x96398d35, 0xffffd855ffffdc19}, + {0x96398d36, 0xffffd855ffffdc1a}, + {0x96398d37, 0xffffd855ffffdc1b}, + {0x96398d38, 0xffffd855ffffdc1c}, + {0x96398d39, 0xffffd855ffffdc1d}, + {0x96398e30, 0xffffd855ffffdc1e}, + {0x96398e31, 0xffffd855ffffdc1f}, + {0x96398e32, 0xffffd855ffffdc20}, + {0x96398e33, 0xffffd855ffffdc21}, + {0x96398e34, 0xffffd855ffffdc22}, + {0x96398e35, 0xffffd855ffffdc23}, + {0x96398e36, 0xffffd855ffffdc24}, + {0x96398e37, 0xffffd855ffffdc25}, + {0x96398e38, 0xffffd855ffffdc26}, + {0x96398e39, 0xffffd855ffffdc27}, + {0x96398f30, 0xffffd855ffffdc28}, + {0x96398f31, 0xffffd855ffffdc29}, + {0x96398f32, 0xffffd855ffffdc2a}, + {0x96398f33, 0xffffd855ffffdc2b}, + {0x96398f34, 0xffffd855ffffdc2c}, + {0x96398f35, 0xffffd855ffffdc2d}, + {0x96398f36, 0xffffd855ffffdc2e}, + {0x96398f37, 0xffffd855ffffdc2f}, + {0x96398f38, 0xffffd855ffffdc30}, + {0x96398f39, 0xffffd855ffffdc31}, + {0x96399030, 0xffffd855ffffdc32}, + {0x96399031, 0xffffd855ffffdc33}, + {0x96399032, 0xffffd855ffffdc34}, + {0x96399033, 0xffffd855ffffdc35}, + {0x96399034, 0xffffd855ffffdc36}, + {0x96399035, 0xffffd855ffffdc37}, + {0x96399036, 0xffffd855ffffdc38}, + {0x96399037, 0xffffd855ffffdc39}, + {0x96399038, 0xffffd855ffffdc3a}, + {0x96399039, 0xffffd855ffffdc3b}, + {0x96399130, 0xffffd855ffffdc3c}, + {0x96399131, 0xffffd855ffffdc3d}, + {0x96399132, 0xffffd855ffffdc3e}, + {0x96399133, 0xffffd855ffffdc3f}, + {0x96399134, 0xffffd855ffffdc40}, + {0x96399135, 0xffffd855ffffdc41}, + {0x96399136, 0xffffd855ffffdc42}, + {0x96399137, 0xffffd855ffffdc43}, + {0x96399138, 0xffffd855ffffdc44}, + {0x96399139, 0xffffd855ffffdc45}, + {0x96399230, 0xffffd855ffffdc46}, + {0x96399231, 0xffffd855ffffdc47}, + {0x96399232, 0xffffd855ffffdc48}, + {0x96399233, 0xffffd855ffffdc49}, + {0x96399234, 0xffffd855ffffdc4a}, + {0x96399235, 0xffffd855ffffdc4b}, + {0x96399236, 0xffffd855ffffdc4c}, + {0x96399237, 0xffffd855ffffdc4d}, + {0x96399238, 0xffffd855ffffdc4e}, + {0x96399239, 0xffffd855ffffdc4f}, + {0x96399330, 0xffffd855ffffdc50}, + {0x96399331, 0xffffd855ffffdc51}, + {0x96399332, 0xffffd855ffffdc52}, + {0x96399333, 0xffffd855ffffdc53}, + {0x96399334, 0xffffd855ffffdc54}, + {0x96399335, 0xffffd855ffffdc55}, + {0x96399336, 0xffffd855ffffdc56}, + {0x96399337, 0xffffd855ffffdc57}, + {0x96399338, 0xffffd855ffffdc58}, + {0x96399339, 0xffffd855ffffdc59}, + {0x96399430, 0xffffd855ffffdc5a}, + {0x96399431, 0xffffd855ffffdc5b}, + {0x96399432, 0xffffd855ffffdc5c}, + {0x96399433, 0xffffd855ffffdc5d}, + {0x96399434, 0xffffd855ffffdc5e}, + {0x96399435, 0xffffd855ffffdc5f}, + {0x96399436, 0xffffd855ffffdc60}, + {0x96399437, 0xffffd855ffffdc61}, + {0x96399438, 0xffffd855ffffdc62}, + {0x96399439, 0xffffd855ffffdc63}, + {0x96399530, 0xffffd855ffffdc64}, + {0x96399531, 0xffffd855ffffdc65}, + {0x96399532, 0xffffd855ffffdc66}, + {0x96399533, 0xffffd855ffffdc67}, + {0x96399534, 0xffffd855ffffdc68}, + {0x96399535, 0xffffd855ffffdc69}, + {0x96399536, 0xffffd855ffffdc6a}, + {0x96399537, 0xffffd855ffffdc6b}, + {0x96399538, 0xffffd855ffffdc6c}, + {0x96399539, 0xffffd855ffffdc6d}, + {0x96399630, 0xffffd855ffffdc6e}, + {0x96399631, 0xffffd855ffffdc6f}, + {0x96399632, 0xffffd855ffffdc70}, + {0x96399633, 0xffffd855ffffdc71}, + {0x96399634, 0xffffd855ffffdc72}, + {0x96399635, 0xffffd855ffffdc73}, + {0x96399636, 0xffffd855ffffdc74}, + {0x96399637, 0xffffd855ffffdc75}, + {0x96399638, 0xffffd855ffffdc76}, + {0x96399639, 0xffffd855ffffdc77}, + {0x96399730, 0xffffd855ffffdc78}, + {0x96399731, 0xffffd855ffffdc79}, + {0x96399732, 0xffffd855ffffdc7a}, + {0x96399733, 0xffffd855ffffdc7b}, + {0x96399734, 0xffffd855ffffdc7c}, + {0x96399735, 0xffffd855ffffdc7d}, + {0x96399736, 0xffffd855ffffdc7e}, + {0x96399737, 0xffffd855ffffdc7f}, + {0x96399738, 0xffffd855ffffdc80}, + {0x96399739, 0xffffd855ffffdc81}, + {0x96399830, 0xffffd855ffffdc82}, + {0x96399831, 0xffffd855ffffdc83}, + {0x96399832, 0xffffd855ffffdc84}, + {0x96399833, 0xffffd855ffffdc85}, + {0x96399834, 0xffffd855ffffdc86}, + {0x96399835, 0xffffd855ffffdc87}, + {0x96399836, 0xffffd855ffffdc88}, + {0x96399837, 0xffffd855ffffdc89}, + {0x96399838, 0xffffd855ffffdc8a}, + {0x96399839, 0xffffd855ffffdc8b}, + {0x96399930, 0xffffd855ffffdc8c}, + {0x96399931, 0xffffd855ffffdc8d}, + {0x96399932, 0xffffd855ffffdc8e}, + {0x96399933, 0xffffd855ffffdc8f}, + {0x96399934, 0xffffd855ffffdc90}, + {0x96399935, 0xffffd855ffffdc91}, + {0x96399936, 0xffffd855ffffdc92}, + {0x96399937, 0xffffd855ffffdc93}, + {0x96399938, 0xffffd855ffffdc94}, + {0x96399939, 0xffffd855ffffdc95}, + {0x96399a30, 0xffffd855ffffdc96}, + {0x96399a31, 0xffffd855ffffdc97}, + {0x96399a32, 0xffffd855ffffdc98}, + {0x96399a33, 0xffffd855ffffdc99}, + {0x96399a34, 0xffffd855ffffdc9a}, + {0x96399a35, 0xffffd855ffffdc9b}, + {0x96399a36, 0xffffd855ffffdc9c}, + {0x96399a37, 0xffffd855ffffdc9d}, + {0x96399a38, 0xffffd855ffffdc9e}, + {0x96399a39, 0xffffd855ffffdc9f}, + {0x96399b30, 0xffffd855ffffdca0}, + {0x96399b31, 0xffffd855ffffdca1}, + {0x96399b32, 0xffffd855ffffdca2}, + {0x96399b33, 0xffffd855ffffdca3}, + {0x96399b34, 0xffffd855ffffdca4}, + {0x96399b35, 0xffffd855ffffdca5}, + {0x96399b36, 0xffffd855ffffdca6}, + {0x96399b37, 0xffffd855ffffdca7}, + {0x96399b38, 0xffffd855ffffdca8}, + {0x96399b39, 0xffffd855ffffdca9}, + {0x96399c30, 0xffffd855ffffdcaa}, + {0x96399c31, 0xffffd855ffffdcab}, + {0x96399c32, 0xffffd855ffffdcac}, + {0x96399c33, 0xffffd855ffffdcad}, + {0x96399c34, 0xffffd855ffffdcae}, + {0x96399c35, 0xffffd855ffffdcaf}, + {0x96399c36, 0xffffd855ffffdcb0}, + {0x96399c37, 0xffffd855ffffdcb1}, + {0x96399c38, 0xffffd855ffffdcb2}, + {0x96399c39, 0xffffd855ffffdcb3}, + {0x96399d30, 0xffffd855ffffdcb4}, + {0x96399d31, 0xffffd855ffffdcb5}, + {0x96399d32, 0xffffd855ffffdcb6}, + {0x96399d33, 0xffffd855ffffdcb7}, + {0x96399d34, 0xffffd855ffffdcb8}, + {0x96399d35, 0xffffd855ffffdcb9}, + {0x96399d36, 0xffffd855ffffdcba}, + {0x96399d37, 0xffffd855ffffdcbb}, + {0x96399d38, 0xffffd855ffffdcbc}, + {0x96399d39, 0xffffd855ffffdcbd}, + {0x96399e30, 0xffffd855ffffdcbe}, + {0x96399e31, 0xffffd855ffffdcbf}, + {0x96399e32, 0xffffd855ffffdcc0}, + {0x96399e33, 0xffffd855ffffdcc1}, + {0x96399e34, 0xffffd855ffffdcc2}, + {0x96399e35, 0xffffd855ffffdcc3}, + {0x96399e36, 0xffffd855ffffdcc4}, + {0x96399e37, 0xffffd855ffffdcc5}, + {0x96399e38, 0xffffd855ffffdcc6}, + {0x96399e39, 0xffffd855ffffdcc7}, + {0x96399f30, 0xffffd855ffffdcc8}, + {0x96399f31, 0xffffd855ffffdcc9}, + {0x96399f32, 0xffffd855ffffdcca}, + {0x96399f33, 0xffffd855ffffdccb}, + {0x96399f34, 0xffffd855ffffdccc}, + {0x96399f35, 0xffffd855ffffdccd}, + {0x96399f36, 0xffffd855ffffdcce}, + {0x96399f37, 0xffffd855ffffdccf}, + {0x96399f38, 0xffffd855ffffdcd0}, + {0x96399f39, 0xffffd855ffffdcd1}, + {0x9639a030, 0xffffd855ffffdcd2}, + {0x9639a031, 0xffffd855ffffdcd3}, + {0x9639a032, 0xffffd855ffffdcd4}, + {0x9639a033, 0xffffd855ffffdcd5}, + {0x9639a034, 0xffffd855ffffdcd6}, + {0x9639a035, 0xffffd855ffffdcd7}, + {0x9639a036, 0xffffd855ffffdcd8}, + {0x9639a037, 0xffffd855ffffdcd9}, + {0x9639a038, 0xffffd855ffffdcda}, + {0x9639a039, 0xffffd855ffffdcdb}, + {0x9639a130, 0xffffd855ffffdcdc}, + {0x9639a131, 0xffffd855ffffdcdd}, + {0x9639a132, 0xffffd855ffffdcde}, + {0x9639a133, 0xffffd855ffffdcdf}, + {0x9639a134, 0xffffd855ffffdce0}, + {0x9639a135, 0xffffd855ffffdce1}, + {0x9639a136, 0xffffd855ffffdce2}, + {0x9639a137, 0xffffd855ffffdce3}, + {0x9639a138, 0xffffd855ffffdce4}, + {0x9639a139, 0xffffd855ffffdce5}, + {0x9639a230, 0xffffd855ffffdce6}, + {0x9639a231, 0xffffd855ffffdce7}, + {0x9639a232, 0xffffd855ffffdce8}, + {0x9639a233, 0xffffd855ffffdce9}, + {0x9639a234, 0xffffd855ffffdcea}, + {0x9639a235, 0xffffd855ffffdceb}, + {0x9639a236, 0xffffd855ffffdcec}, + {0x9639a237, 0xffffd855ffffdced}, + {0x9639a238, 0xffffd855ffffdcee}, + {0x9639a239, 0xffffd855ffffdcef}, + {0x9639a330, 0xffffd855ffffdcf0}, + {0x9639a331, 0xffffd855ffffdcf1}, + {0x9639a332, 0xffffd855ffffdcf2}, + {0x9639a333, 0xffffd855ffffdcf3}, + {0x9639a334, 0xffffd855ffffdcf4}, + {0x9639a335, 0xffffd855ffffdcf5}, + {0x9639a336, 0xffffd855ffffdcf6}, + {0x9639a337, 0xffffd855ffffdcf7}, + {0x9639a338, 0xffffd855ffffdcf8}, + {0x9639a339, 0xffffd855ffffdcf9}, + {0x9639a430, 0xffffd855ffffdcfa}, + {0x9639a431, 0xffffd855ffffdcfb}, + {0x9639a432, 0xffffd855ffffdcfc}, + {0x9639a433, 0xffffd855ffffdcfd}, + {0x9639a434, 0xffffd855ffffdcfe}, + {0x9639a435, 0xffffd855ffffdcff}, + {0x9639a436, 0xffffd855ffffdd00}, + {0x9639a437, 0xffffd855ffffdd01}, + {0x9639a438, 0xffffd855ffffdd02}, + {0x9639a439, 0xffffd855ffffdd03}, + {0x9639a530, 0xffffd855ffffdd04}, + {0x9639a531, 0xffffd855ffffdd05}, + {0x9639a532, 0xffffd855ffffdd06}, + {0x9639a533, 0xffffd855ffffdd07}, + {0x9639a534, 0xffffd855ffffdd08}, + {0x9639a535, 0xffffd855ffffdd09}, + {0x9639a536, 0xffffd855ffffdd0a}, + {0x9639a537, 0xffffd855ffffdd0b}, + {0x9639a538, 0xffffd855ffffdd0c}, + {0x9639a539, 0xffffd855ffffdd0d}, + {0x9639a630, 0xffffd855ffffdd0e}, + {0x9639a631, 0xffffd855ffffdd0f}, + {0x9639a632, 0xffffd855ffffdd10}, + {0x9639a633, 0xffffd855ffffdd11}, + {0x9639a634, 0xffffd855ffffdd12}, + {0x9639a635, 0xffffd855ffffdd13}, + {0x9639a636, 0xffffd855ffffdd14}, + {0x9639a637, 0xffffd855ffffdd15}, + {0x9639a638, 0xffffd855ffffdd16}, + {0x9639a639, 0xffffd855ffffdd17}, + {0x9639a730, 0xffffd855ffffdd18}, + {0x9639a731, 0xffffd855ffffdd19}, + {0x9639a732, 0xffffd855ffffdd1a}, + {0x9639a733, 0xffffd855ffffdd1b}, + {0x9639a734, 0xffffd855ffffdd1c}, + {0x9639a735, 0xffffd855ffffdd1d}, + {0x9639a736, 0xffffd855ffffdd1e}, + {0x9639a737, 0xffffd855ffffdd1f}, + {0x9639a738, 0xffffd855ffffdd20}, + {0x9639a739, 0xffffd855ffffdd21}, + {0x9639a830, 0xffffd855ffffdd22}, + {0x9639a831, 0xffffd855ffffdd23}, + {0x9639a832, 0xffffd855ffffdd24}, + {0x9639a833, 0xffffd855ffffdd25}, + {0x9639a834, 0xffffd855ffffdd26}, + {0x9639a835, 0xffffd855ffffdd27}, + {0x9639a836, 0xffffd855ffffdd28}, + {0x9639a837, 0xffffd855ffffdd29}, + {0x9639a838, 0xffffd855ffffdd2a}, + {0x9639a839, 0xffffd855ffffdd2b}, + {0x9639a930, 0xffffd855ffffdd2c}, + {0x9639a931, 0xffffd855ffffdd2d}, + {0x9639a932, 0xffffd855ffffdd2e}, + {0x9639a933, 0xffffd855ffffdd2f}, + {0x9639a934, 0xffffd855ffffdd30}, + {0x9639a935, 0xffffd855ffffdd31}, + {0x9639a936, 0xffffd855ffffdd32}, + {0x9639a937, 0xffffd855ffffdd33}, + {0x9639a938, 0xffffd855ffffdd34}, + {0x9639a939, 0xffffd855ffffdd35}, + {0x9639aa30, 0xffffd855ffffdd36}, + {0x9639aa31, 0xffffd855ffffdd37}, + {0x9639aa32, 0xffffd855ffffdd38}, + {0x9639aa33, 0xffffd855ffffdd39}, + {0x9639aa34, 0xffffd855ffffdd3a}, + {0x9639aa35, 0xffffd855ffffdd3b}, + {0x9639aa36, 0xffffd855ffffdd3c}, + {0x9639aa37, 0xffffd855ffffdd3d}, + {0x9639aa38, 0xffffd855ffffdd3e}, + {0x9639aa39, 0xffffd855ffffdd3f}, + {0x9639ab30, 0xffffd855ffffdd40}, + {0x9639ab31, 0xffffd855ffffdd41}, + {0x9639ab32, 0xffffd855ffffdd42}, + {0x9639ab33, 0xffffd855ffffdd43}, + {0x9639ab34, 0xffffd855ffffdd44}, + {0x9639ab35, 0xffffd855ffffdd45}, + {0x9639ab36, 0xffffd855ffffdd46}, + {0x9639ab37, 0xffffd855ffffdd47}, + {0x9639ab38, 0xffffd855ffffdd48}, + {0x9639ab39, 0xffffd855ffffdd49}, + {0x9639ac30, 0xffffd855ffffdd4a}, + {0x9639ac31, 0xffffd855ffffdd4b}, + {0x9639ac32, 0xffffd855ffffdd4c}, + {0x9639ac33, 0xffffd855ffffdd4d}, + {0x9639ac34, 0xffffd855ffffdd4e}, + {0x9639ac35, 0xffffd855ffffdd4f}, + {0x9639ac36, 0xffffd855ffffdd50}, + {0x9639ac37, 0xffffd855ffffdd51}, + {0x9639ac38, 0xffffd855ffffdd52}, + {0x9639ac39, 0xffffd855ffffdd53}, + {0x9639ad30, 0xffffd855ffffdd54}, + {0x9639ad31, 0xffffd855ffffdd55}, + {0x9639ad32, 0xffffd855ffffdd56}, + {0x9639ad33, 0xffffd855ffffdd57}, + {0x9639ad34, 0xffffd855ffffdd58}, + {0x9639ad35, 0xffffd855ffffdd59}, + {0x9639ad36, 0xffffd855ffffdd5a}, + {0x9639ad37, 0xffffd855ffffdd5b}, + {0x9639ad38, 0xffffd855ffffdd5c}, + {0x9639ad39, 0xffffd855ffffdd5d}, + {0x9639ae30, 0xffffd855ffffdd5e}, + {0x9639ae31, 0xffffd855ffffdd5f}, + {0x9639ae32, 0xffffd855ffffdd60}, + {0x9639ae33, 0xffffd855ffffdd61}, + {0x9639ae34, 0xffffd855ffffdd62}, + {0x9639ae35, 0xffffd855ffffdd63}, + {0x9639ae36, 0xffffd855ffffdd64}, + {0x9639ae37, 0xffffd855ffffdd65}, + {0x9639ae38, 0xffffd855ffffdd66}, + {0x9639ae39, 0xffffd855ffffdd67}, + {0x9639af30, 0xffffd855ffffdd68}, + {0x9639af31, 0xffffd855ffffdd69}, + {0x9639af32, 0xffffd855ffffdd6a}, + {0x9639af33, 0xffffd855ffffdd6b}, + {0x9639af34, 0xffffd855ffffdd6c}, + {0x9639af35, 0xffffd855ffffdd6d}, + {0x9639af36, 0xffffd855ffffdd6e}, + {0x9639af37, 0xffffd855ffffdd6f}, + {0x9639af38, 0xffffd855ffffdd70}, + {0x9639af39, 0xffffd855ffffdd71}, + {0x9639b030, 0xffffd855ffffdd72}, + {0x9639b031, 0xffffd855ffffdd73}, + {0x9639b032, 0xffffd855ffffdd74}, + {0x9639b033, 0xffffd855ffffdd75}, + {0x9639b034, 0xffffd855ffffdd76}, + {0x9639b035, 0xffffd855ffffdd77}, + {0x9639b036, 0xffffd855ffffdd78}, + {0x9639b037, 0xffffd855ffffdd79}, + {0x9639b038, 0xffffd855ffffdd7a}, + {0x9639b039, 0xffffd855ffffdd7b}, + {0x9639b130, 0xffffd855ffffdd7c}, + {0x9639b131, 0xffffd855ffffdd7d}, + {0x9639b132, 0xffffd855ffffdd7e}, + {0x9639b133, 0xffffd855ffffdd7f}, + {0x9639b134, 0xffffd855ffffdd80}, + {0x9639b135, 0xffffd855ffffdd81}, + {0x9639b136, 0xffffd855ffffdd82}, + {0x9639b137, 0xffffd855ffffdd83}, + {0x9639b138, 0xffffd855ffffdd84}, + {0x9639b139, 0xffffd855ffffdd85}, + {0x9639b230, 0xffffd855ffffdd86}, + {0x9639b231, 0xffffd855ffffdd87}, + {0x9639b232, 0xffffd855ffffdd88}, + {0x9639b233, 0xffffd855ffffdd89}, + {0x9639b234, 0xffffd855ffffdd8a}, + {0x9639b235, 0xffffd855ffffdd8b}, + {0x9639b236, 0xffffd855ffffdd8c}, + {0x9639b237, 0xffffd855ffffdd8d}, + {0x9639b238, 0xffffd855ffffdd8e}, + {0x9639b239, 0xffffd855ffffdd8f}, + {0x9639b330, 0xffffd855ffffdd90}, + {0x9639b331, 0xffffd855ffffdd91}, + {0x9639b332, 0xffffd855ffffdd92}, + {0x9639b333, 0xffffd855ffffdd93}, + {0x9639b334, 0xffffd855ffffdd94}, + {0x9639b335, 0xffffd855ffffdd95}, + {0x9639b336, 0xffffd855ffffdd96}, + {0x9639b337, 0xffffd855ffffdd97}, + {0x9639b338, 0xffffd855ffffdd98}, + {0x9639b339, 0xffffd855ffffdd99}, + {0x9639b430, 0xffffd855ffffdd9a}, + {0x9639b431, 0xffffd855ffffdd9b}, + {0x9639b432, 0xffffd855ffffdd9c}, + {0x9639b433, 0xffffd855ffffdd9d}, + {0x9639b434, 0xffffd855ffffdd9e}, + {0x9639b435, 0xffffd855ffffdd9f}, + {0x9639b436, 0xffffd855ffffdda0}, + {0x9639b437, 0xffffd855ffffdda1}, + {0x9639b438, 0xffffd855ffffdda2}, + {0x9639b439, 0xffffd855ffffdda3}, + {0x9639b530, 0xffffd855ffffdda4}, + {0x9639b531, 0xffffd855ffffdda5}, + {0x9639b532, 0xffffd855ffffdda6}, + {0x9639b533, 0xffffd855ffffdda7}, + {0x9639b534, 0xffffd855ffffdda8}, + {0x9639b535, 0xffffd855ffffdda9}, + {0x9639b536, 0xffffd855ffffddaa}, + {0x9639b537, 0xffffd855ffffddab}, + {0x9639b538, 0xffffd855ffffddac}, + {0x9639b539, 0xffffd855ffffddad}, + {0x9639b630, 0xffffd855ffffddae}, + {0x9639b631, 0xffffd855ffffddaf}, + {0x9639b632, 0xffffd855ffffddb0}, + {0x9639b633, 0xffffd855ffffddb1}, + {0x9639b634, 0xffffd855ffffddb2}, + {0x9639b635, 0xffffd855ffffddb3}, + {0x9639b636, 0xffffd855ffffddb4}, + {0x9639b637, 0xffffd855ffffddb5}, + {0x9639b638, 0xffffd855ffffddb6}, + {0x9639b639, 0xffffd855ffffddb7}, + {0x9639b730, 0xffffd855ffffddb8}, + {0x9639b731, 0xffffd855ffffddb9}, + {0x9639b732, 0xffffd855ffffddba}, + {0x9639b733, 0xffffd855ffffddbb}, + {0x9639b734, 0xffffd855ffffddbc}, + {0x9639b735, 0xffffd855ffffddbd}, + {0x9639b736, 0xffffd855ffffddbe}, + {0x9639b737, 0xffffd855ffffddbf}, + {0x9639b738, 0xffffd855ffffddc0}, + {0x9639b739, 0xffffd855ffffddc1}, + {0x9639b830, 0xffffd855ffffddc2}, + {0x9639b831, 0xffffd855ffffddc3}, + {0x9639b832, 0xffffd855ffffddc4}, + {0x9639b833, 0xffffd855ffffddc5}, + {0x9639b834, 0xffffd855ffffddc6}, + {0x9639b835, 0xffffd855ffffddc7}, + {0x9639b836, 0xffffd855ffffddc8}, + {0x9639b837, 0xffffd855ffffddc9}, + {0x9639b838, 0xffffd855ffffddca}, + {0x9639b839, 0xffffd855ffffddcb}, + {0x9639b930, 0xffffd855ffffddcc}, + {0x9639b931, 0xffffd855ffffddcd}, + {0x9639b932, 0xffffd855ffffddce}, + {0x9639b933, 0xffffd855ffffddcf}, + {0x9639b934, 0xffffd855ffffddd0}, + {0x9639b935, 0xffffd855ffffddd1}, + {0x9639b936, 0xffffd855ffffddd2}, + {0x9639b937, 0xffffd855ffffddd3}, + {0x9639b938, 0xffffd855ffffddd4}, + {0x9639b939, 0xffffd855ffffddd5}, + {0x9639ba30, 0xffffd855ffffddd6}, + {0x9639ba31, 0xffffd855ffffddd7}, + {0x9639ba32, 0xffffd855ffffddd8}, + {0x9639ba33, 0xffffd855ffffddd9}, + {0x9639ba34, 0xffffd855ffffddda}, + {0x9639ba35, 0xffffd855ffffdddb}, + {0x9639ba36, 0xffffd855ffffdddc}, + {0x9639ba37, 0xffffd855ffffdddd}, + {0x9639ba38, 0xffffd855ffffddde}, + {0x9639ba39, 0xffffd855ffffdddf}, + {0x9639bb30, 0xffffd855ffffdde0}, + {0x9639bb31, 0xffffd855ffffdde1}, + {0x9639bb32, 0xffffd855ffffdde2}, + {0x9639bb33, 0xffffd855ffffdde3}, + {0x9639bb34, 0xffffd855ffffdde4}, + {0x9639bb35, 0xffffd855ffffdde5}, + {0x9639bb36, 0xffffd855ffffdde6}, + {0x9639bb37, 0xffffd855ffffdde7}, + {0x9639bb38, 0xffffd855ffffdde8}, + {0x9639bb39, 0xffffd855ffffdde9}, + {0x9639bc30, 0xffffd855ffffddea}, + {0x9639bc31, 0xffffd855ffffddeb}, + {0x9639bc32, 0xffffd855ffffddec}, + {0x9639bc33, 0xffffd855ffffdded}, + {0x9639bc34, 0xffffd855ffffddee}, + {0x9639bc35, 0xffffd855ffffddef}, + {0x9639bc36, 0xffffd855ffffddf0}, + {0x9639bc37, 0xffffd855ffffddf1}, + {0x9639bc38, 0xffffd855ffffddf2}, + {0x9639bc39, 0xffffd855ffffddf3}, + {0x9639bd30, 0xffffd855ffffddf4}, + {0x9639bd31, 0xffffd855ffffddf5}, + {0x9639bd32, 0xffffd855ffffddf6}, + {0x9639bd33, 0xffffd855ffffddf7}, + {0x9639bd34, 0xffffd855ffffddf8}, + {0x9639bd35, 0xffffd855ffffddf9}, + {0x9639bd36, 0xffffd855ffffddfa}, + {0x9639bd37, 0xffffd855ffffddfb}, + {0x9639bd38, 0xffffd855ffffddfc}, + {0x9639bd39, 0xffffd855ffffddfd}, + {0x9639be30, 0xffffd855ffffddfe}, + {0x9639be31, 0xffffd855ffffddff}, + {0x9639be32, 0xffffd855ffffde00}, + {0x9639be33, 0xffffd855ffffde01}, + {0x9639be34, 0xffffd855ffffde02}, + {0x9639be35, 0xffffd855ffffde03}, + {0x9639be36, 0xffffd855ffffde04}, + {0x9639be37, 0xffffd855ffffde05}, + {0x9639be38, 0xffffd855ffffde06}, + {0x9639be39, 0xffffd855ffffde07}, + {0x9639bf30, 0xffffd855ffffde08}, + {0x9639bf31, 0xffffd855ffffde09}, + {0x9639bf32, 0xffffd855ffffde0a}, + {0x9639bf33, 0xffffd855ffffde0b}, + {0x9639bf34, 0xffffd855ffffde0c}, + {0x9639bf35, 0xffffd855ffffde0d}, + {0x9639bf36, 0xffffd855ffffde0e}, + {0x9639bf37, 0xffffd855ffffde0f}, + {0x9639bf38, 0xffffd855ffffde10}, + {0x9639bf39, 0xffffd855ffffde11}, + {0x9639c030, 0xffffd855ffffde12}, + {0x9639c031, 0xffffd855ffffde13}, + {0x9639c032, 0xffffd855ffffde14}, + {0x9639c033, 0xffffd855ffffde15}, + {0x9639c034, 0xffffd855ffffde16}, + {0x9639c035, 0xffffd855ffffde17}, + {0x9639c036, 0xffffd855ffffde18}, + {0x9639c037, 0xffffd855ffffde19}, + {0x9639c038, 0xffffd855ffffde1a}, + {0x9639c039, 0xffffd855ffffde1b}, + {0x9639c130, 0xffffd855ffffde1c}, + {0x9639c131, 0xffffd855ffffde1d}, + {0x9639c132, 0xffffd855ffffde1e}, + {0x9639c133, 0xffffd855ffffde1f}, + {0x9639c134, 0xffffd855ffffde20}, + {0x9639c135, 0xffffd855ffffde21}, + {0x9639c136, 0xffffd855ffffde22}, + {0x9639c137, 0xffffd855ffffde23}, + {0x9639c138, 0xffffd855ffffde24}, + {0x9639c139, 0xffffd855ffffde25}, + {0x9639c230, 0xffffd855ffffde26}, + {0x9639c231, 0xffffd855ffffde27}, + {0x9639c232, 0xffffd855ffffde28}, + {0x9639c233, 0xffffd855ffffde29}, + {0x9639c234, 0xffffd855ffffde2a}, + {0x9639c235, 0xffffd855ffffde2b}, + {0x9639c236, 0xffffd855ffffde2c}, + {0x9639c237, 0xffffd855ffffde2d}, + {0x9639c238, 0xffffd855ffffde2e}, + {0x9639c239, 0xffffd855ffffde2f}, + {0x9639c330, 0xffffd855ffffde30}, + {0x9639c331, 0xffffd855ffffde31}, + {0x9639c332, 0xffffd855ffffde32}, + {0x9639c333, 0xffffd855ffffde33}, + {0x9639c334, 0xffffd855ffffde34}, + {0x9639c335, 0xffffd855ffffde35}, + {0x9639c336, 0xffffd855ffffde36}, + {0x9639c337, 0xffffd855ffffde37}, + {0x9639c338, 0xffffd855ffffde38}, + {0x9639c339, 0xffffd855ffffde39}, + {0x9639c430, 0xffffd855ffffde3a}, + {0x9639c431, 0xffffd855ffffde3b}, + {0x9639c432, 0xffffd855ffffde3c}, + {0x9639c433, 0xffffd855ffffde3d}, + {0x9639c434, 0xffffd855ffffde3e}, + {0x9639c435, 0xffffd855ffffde3f}, + {0x9639c436, 0xffffd855ffffde40}, + {0x9639c437, 0xffffd855ffffde41}, + {0x9639c438, 0xffffd855ffffde42}, + {0x9639c439, 0xffffd855ffffde43}, + {0x9639c530, 0xffffd855ffffde44}, + {0x9639c531, 0xffffd855ffffde45}, + {0x9639c532, 0xffffd855ffffde46}, + {0x9639c533, 0xffffd855ffffde47}, + {0x9639c534, 0xffffd855ffffde48}, + {0x9639c535, 0xffffd855ffffde49}, + {0x9639c536, 0xffffd855ffffde4a}, + {0x9639c537, 0xffffd855ffffde4b}, + {0x9639c538, 0xffffd855ffffde4c}, + {0x9639c539, 0xffffd855ffffde4d}, + {0x9639c630, 0xffffd855ffffde4e}, + {0x9639c631, 0xffffd855ffffde4f}, + {0x9639c632, 0xffffd855ffffde50}, + {0x9639c633, 0xffffd855ffffde51}, + {0x9639c634, 0xffffd855ffffde52}, + {0x9639c635, 0xffffd855ffffde53}, + {0x9639c636, 0xffffd855ffffde54}, + {0x9639c637, 0xffffd855ffffde55}, + {0x9639c638, 0xffffd855ffffde56}, + {0x9639c639, 0xffffd855ffffde57}, + {0x9639c730, 0xffffd855ffffde58}, + {0x9639c731, 0xffffd855ffffde59}, + {0x9639c732, 0xffffd855ffffde5a}, + {0x9639c733, 0xffffd855ffffde5b}, + {0x9639c734, 0xffffd855ffffde5c}, + {0x9639c735, 0xffffd855ffffde5d}, + {0x9639c736, 0xffffd855ffffde5e}, + {0x9639c737, 0xffffd855ffffde5f}, + {0x9639c738, 0xffffd855ffffde60}, + {0x9639c739, 0xffffd855ffffde61}, + {0x9639c830, 0xffffd855ffffde62}, + {0x9639c831, 0xffffd855ffffde63}, + {0x9639c832, 0xffffd855ffffde64}, + {0x9639c833, 0xffffd855ffffde65}, + {0x9639c834, 0xffffd855ffffde66}, + {0x9639c835, 0xffffd855ffffde67}, + {0x9639c836, 0xffffd855ffffde68}, + {0x9639c837, 0xffffd855ffffde69}, + {0x9639c838, 0xffffd855ffffde6a}, + {0x9639c839, 0xffffd855ffffde6b}, + {0x9639c930, 0xffffd855ffffde6c}, + {0x9639c931, 0xffffd855ffffde6d}, + {0x9639c932, 0xffffd855ffffde6e}, + {0x9639c933, 0xffffd855ffffde6f}, + {0x9639c934, 0xffffd855ffffde70}, + {0x9639c935, 0xffffd855ffffde71}, + {0x9639c936, 0xffffd855ffffde72}, + {0x9639c937, 0xffffd855ffffde73}, + {0x9639c938, 0xffffd855ffffde74}, + {0x9639c939, 0xffffd855ffffde75}, + {0x9639ca30, 0xffffd855ffffde76}, + {0x9639ca31, 0xffffd855ffffde77}, + {0x9639ca32, 0xffffd855ffffde78}, + {0x9639ca33, 0xffffd855ffffde79}, + {0x9639ca34, 0xffffd855ffffde7a}, + {0x9639ca35, 0xffffd855ffffde7b}, + {0x9639ca36, 0xffffd855ffffde7c}, + {0x9639ca37, 0xffffd855ffffde7d}, + {0x9639ca38, 0xffffd855ffffde7e}, + {0x9639ca39, 0xffffd855ffffde7f}, + {0x9639cb30, 0xffffd855ffffde80}, + {0x9639cb31, 0xffffd855ffffde81}, + {0x9639cb32, 0xffffd855ffffde82}, + {0x9639cb33, 0xffffd855ffffde83}, + {0x9639cb34, 0xffffd855ffffde84}, + {0x9639cb35, 0xffffd855ffffde85}, + {0x9639cb36, 0xffffd855ffffde86}, + {0x9639cb37, 0xffffd855ffffde87}, + {0x9639cb38, 0xffffd855ffffde88}, + {0x9639cb39, 0xffffd855ffffde89}, + {0x9639cc30, 0xffffd855ffffde8a}, + {0x9639cc31, 0xffffd855ffffde8b}, + {0x9639cc32, 0xffffd855ffffde8c}, + {0x9639cc33, 0xffffd855ffffde8d}, + {0x9639cc34, 0xffffd855ffffde8e}, + {0x9639cc35, 0xffffd855ffffde8f}, + {0x9639cc36, 0xffffd855ffffde90}, + {0x9639cc37, 0xffffd855ffffde91}, + {0x9639cc38, 0xffffd855ffffde92}, + {0x9639cc39, 0xffffd855ffffde93}, + {0x9639cd30, 0xffffd855ffffde94}, + {0x9639cd31, 0xffffd855ffffde95}, + {0x9639cd32, 0xffffd855ffffde96}, + {0x9639cd33, 0xffffd855ffffde97}, + {0x9639cd34, 0xffffd855ffffde98}, + {0x9639cd35, 0xffffd855ffffde99}, + {0x9639cd36, 0xffffd855ffffde9a}, + {0x9639cd37, 0xffffd855ffffde9b}, + {0x9639cd38, 0xffffd855ffffde9c}, + {0x9639cd39, 0xffffd855ffffde9d}, + {0x9639ce30, 0xffffd855ffffde9e}, + {0x9639ce31, 0xffffd855ffffde9f}, + {0x9639ce32, 0xffffd855ffffdea0}, + {0x9639ce33, 0xffffd855ffffdea1}, + {0x9639ce34, 0xffffd855ffffdea2}, + {0x9639ce35, 0xffffd855ffffdea3}, + {0x9639ce36, 0xffffd855ffffdea4}, + {0x9639ce37, 0xffffd855ffffdea5}, + {0x9639ce38, 0xffffd855ffffdea6}, + {0x9639ce39, 0xffffd855ffffdea7}, + {0x9639cf30, 0xffffd855ffffdea8}, + {0x9639cf31, 0xffffd855ffffdea9}, + {0x9639cf32, 0xffffd855ffffdeaa}, + {0x9639cf33, 0xffffd855ffffdeab}, + {0x9639cf34, 0xffffd855ffffdeac}, + {0x9639cf35, 0xffffd855ffffdead}, + {0x9639cf36, 0xffffd855ffffdeae}, + {0x9639cf37, 0xffffd855ffffdeaf}, + {0x9639cf38, 0xffffd855ffffdeb0}, + {0x9639cf39, 0xffffd855ffffdeb1}, + {0x9639d030, 0xffffd855ffffdeb2}, + {0x9639d031, 0xffffd855ffffdeb3}, + {0x9639d032, 0xffffd855ffffdeb4}, + {0x9639d033, 0xffffd855ffffdeb5}, + {0x9639d034, 0xffffd855ffffdeb6}, + {0x9639d035, 0xffffd855ffffdeb7}, + {0x9639d036, 0xffffd855ffffdeb8}, + {0x9639d037, 0xffffd855ffffdeb9}, + {0x9639d038, 0xffffd855ffffdeba}, + {0x9639d039, 0xffffd855ffffdebb}, + {0x9639d130, 0xffffd855ffffdebc}, + {0x9639d131, 0xffffd855ffffdebd}, + {0x9639d132, 0xffffd855ffffdebe}, + {0x9639d133, 0xffffd855ffffdebf}, + {0x9639d134, 0xffffd855ffffdec0}, + {0x9639d135, 0xffffd855ffffdec1}, + {0x9639d136, 0xffffd855ffffdec2}, + {0x9639d137, 0xffffd855ffffdec3}, + {0x9639d138, 0xffffd855ffffdec4}, + {0x9639d139, 0xffffd855ffffdec5}, + {0x9639d230, 0xffffd855ffffdec6}, + {0x9639d231, 0xffffd855ffffdec7}, + {0x9639d232, 0xffffd855ffffdec8}, + {0x9639d233, 0xffffd855ffffdec9}, + {0x9639d234, 0xffffd855ffffdeca}, + {0x9639d235, 0xffffd855ffffdecb}, + {0x9639d236, 0xffffd855ffffdecc}, + {0x9639d237, 0xffffd855ffffdecd}, + {0x9639d238, 0xffffd855ffffdece}, + {0x9639d239, 0xffffd855ffffdecf}, + {0x9639d330, 0xffffd855ffffded0}, + {0x9639d331, 0xffffd855ffffded1}, + {0x9639d332, 0xffffd855ffffded2}, + {0x9639d333, 0xffffd855ffffded3}, + {0x9639d334, 0xffffd855ffffded4}, + {0x9639d335, 0xffffd855ffffded5}, + {0x9639d336, 0xffffd855ffffded6}, + {0x9639d337, 0xffffd855ffffded7}, + {0x9639d338, 0xffffd855ffffded8}, + {0x9639d339, 0xffffd855ffffded9}, + {0x9639d430, 0xffffd855ffffdeda}, + {0x9639d431, 0xffffd855ffffdedb}, + {0x9639d432, 0xffffd855ffffdedc}, + {0x9639d433, 0xffffd855ffffdedd}, + {0x9639d434, 0xffffd855ffffdede}, + {0x9639d435, 0xffffd855ffffdedf}, + {0x9639d436, 0xffffd855ffffdee0}, + {0x9639d437, 0xffffd855ffffdee1}, + {0x9639d438, 0xffffd855ffffdee2}, + {0x9639d439, 0xffffd855ffffdee3}, + {0x9639d530, 0xffffd855ffffdee4}, + {0x9639d531, 0xffffd855ffffdee5}, + {0x9639d532, 0xffffd855ffffdee6}, + {0x9639d533, 0xffffd855ffffdee7}, + {0x9639d534, 0xffffd855ffffdee8}, + {0x9639d535, 0xffffd855ffffdee9}, + {0x9639d536, 0xffffd855ffffdeea}, + {0x9639d537, 0xffffd855ffffdeeb}, + {0x9639d538, 0xffffd855ffffdeec}, + {0x9639d539, 0xffffd855ffffdeed}, + {0x9639d630, 0xffffd855ffffdeee}, + {0x9639d631, 0xffffd855ffffdeef}, + {0x9639d632, 0xffffd855ffffdef0}, + {0x9639d633, 0xffffd855ffffdef1}, + {0x9639d634, 0xffffd855ffffdef2}, + {0x9639d635, 0xffffd855ffffdef3}, + {0x9639d636, 0xffffd855ffffdef4}, + {0x9639d637, 0xffffd855ffffdef5}, + {0x9639d638, 0xffffd855ffffdef6}, + {0x9639d639, 0xffffd855ffffdef7}, + {0x9639d730, 0xffffd855ffffdef8}, + {0x9639d731, 0xffffd855ffffdef9}, + {0x9639d732, 0xffffd855ffffdefa}, + {0x9639d733, 0xffffd855ffffdefb}, + {0x9639d734, 0xffffd855ffffdefc}, + {0x9639d735, 0xffffd855ffffdefd}, + {0x9639d736, 0xffffd855ffffdefe}, + {0x9639d737, 0xffffd855ffffdeff}, + {0x9639d738, 0xffffd855ffffdf00}, + {0x9639d739, 0xffffd855ffffdf01}, + {0x9639d830, 0xffffd855ffffdf02}, + {0x9639d831, 0xffffd855ffffdf03}, + {0x9639d832, 0xffffd855ffffdf04}, + {0x9639d833, 0xffffd855ffffdf05}, + {0x9639d834, 0xffffd855ffffdf06}, + {0x9639d835, 0xffffd855ffffdf07}, + {0x9639d836, 0xffffd855ffffdf08}, + {0x9639d837, 0xffffd855ffffdf09}, + {0x9639d838, 0xffffd855ffffdf0a}, + {0x9639d839, 0xffffd855ffffdf0b}, + {0x9639d930, 0xffffd855ffffdf0c}, + {0x9639d931, 0xffffd855ffffdf0d}, + {0x9639d932, 0xffffd855ffffdf0e}, + {0x9639d933, 0xffffd855ffffdf0f}, + {0x9639d934, 0xffffd855ffffdf10}, + {0x9639d935, 0xffffd855ffffdf11}, + {0x9639d936, 0xffffd855ffffdf12}, + {0x9639d937, 0xffffd855ffffdf13}, + {0x9639d938, 0xffffd855ffffdf14}, + {0x9639d939, 0xffffd855ffffdf15}, + {0x9639da30, 0xffffd855ffffdf16}, + {0x9639da31, 0xffffd855ffffdf17}, + {0x9639da32, 0xffffd855ffffdf18}, + {0x9639da33, 0xffffd855ffffdf19}, + {0x9639da34, 0xffffd855ffffdf1a}, + {0x9639da35, 0xffffd855ffffdf1b}, + {0x9639da36, 0xffffd855ffffdf1c}, + {0x9639da37, 0xffffd855ffffdf1d}, + {0x9639da38, 0xffffd855ffffdf1e}, + {0x9639da39, 0xffffd855ffffdf1f}, + {0x9639db30, 0xffffd855ffffdf20}, + {0x9639db31, 0xffffd855ffffdf21}, + {0x9639db32, 0xffffd855ffffdf22}, + {0x9639db33, 0xffffd855ffffdf23}, + {0x9639db34, 0xffffd855ffffdf24}, + {0x9639db35, 0xffffd855ffffdf25}, + {0x9639db36, 0xffffd855ffffdf26}, + {0x9639db37, 0xffffd855ffffdf27}, + {0x9639db38, 0xffffd855ffffdf28}, + {0x9639db39, 0xffffd855ffffdf29}, + {0x9639dc30, 0xffffd855ffffdf2a}, + {0x9639dc31, 0xffffd855ffffdf2b}, + {0x9639dc32, 0xffffd855ffffdf2c}, + {0x9639dc33, 0xffffd855ffffdf2d}, + {0x9639dc34, 0xffffd855ffffdf2e}, + {0x9639dc35, 0xffffd855ffffdf2f}, + {0x9639dc36, 0xffffd855ffffdf30}, + {0x9639dc37, 0xffffd855ffffdf31}, + {0x9639dc38, 0xffffd855ffffdf32}, + {0x9639dc39, 0xffffd855ffffdf33}, + {0x9639dd30, 0xffffd855ffffdf34}, + {0x9639dd31, 0xffffd855ffffdf35}, + {0x9639dd32, 0xffffd855ffffdf36}, + {0x9639dd33, 0xffffd855ffffdf37}, + {0x9639dd34, 0xffffd855ffffdf38}, + {0x9639dd35, 0xffffd855ffffdf39}, + {0x9639dd36, 0xffffd855ffffdf3a}, + {0x9639dd37, 0xffffd855ffffdf3b}, + {0x9639dd38, 0xffffd855ffffdf3c}, + {0x9639dd39, 0xffffd855ffffdf3d}, + {0x9639de30, 0xffffd855ffffdf3e}, + {0x9639de31, 0xffffd855ffffdf3f}, + {0x9639de32, 0xffffd855ffffdf40}, + {0x9639de33, 0xffffd855ffffdf41}, + {0x9639de34, 0xffffd855ffffdf42}, + {0x9639de35, 0xffffd855ffffdf43}, + {0x9639de36, 0xffffd855ffffdf44}, + {0x9639de37, 0xffffd855ffffdf45}, + {0x9639de38, 0xffffd855ffffdf46}, + {0x9639de39, 0xffffd855ffffdf47}, + {0x9639df30, 0xffffd855ffffdf48}, + {0x9639df31, 0xffffd855ffffdf49}, + {0x9639df32, 0xffffd855ffffdf4a}, + {0x9639df33, 0xffffd855ffffdf4b}, + {0x9639df34, 0xffffd855ffffdf4c}, + {0x9639df35, 0xffffd855ffffdf4d}, + {0x9639df36, 0xffffd855ffffdf4e}, + {0x9639df37, 0xffffd855ffffdf4f}, + {0x9639df38, 0xffffd855ffffdf50}, + {0x9639df39, 0xffffd855ffffdf51}, + {0x9639e030, 0xffffd855ffffdf52}, + {0x9639e031, 0xffffd855ffffdf53}, + {0x9639e032, 0xffffd855ffffdf54}, + {0x9639e033, 0xffffd855ffffdf55}, + {0x9639e034, 0xffffd855ffffdf56}, + {0x9639e035, 0xffffd855ffffdf57}, + {0x9639e036, 0xffffd855ffffdf58}, + {0x9639e037, 0xffffd855ffffdf59}, + {0x9639e038, 0xffffd855ffffdf5a}, + {0x9639e039, 0xffffd855ffffdf5b}, + {0x9639e130, 0xffffd855ffffdf5c}, + {0x9639e131, 0xffffd855ffffdf5d}, + {0x9639e132, 0xffffd855ffffdf5e}, + {0x9639e133, 0xffffd855ffffdf5f}, + {0x9639e134, 0xffffd855ffffdf60}, + {0x9639e135, 0xffffd855ffffdf61}, + {0x9639e136, 0xffffd855ffffdf62}, + {0x9639e137, 0xffffd855ffffdf63}, + {0x9639e138, 0xffffd855ffffdf64}, + {0x9639e139, 0xffffd855ffffdf65}, + {0x9639e230, 0xffffd855ffffdf66}, + {0x9639e231, 0xffffd855ffffdf67}, + {0x9639e232, 0xffffd855ffffdf68}, + {0x9639e233, 0xffffd855ffffdf69}, + {0x9639e234, 0xffffd855ffffdf6a}, + {0x9639e235, 0xffffd855ffffdf6b}, + {0x9639e236, 0xffffd855ffffdf6c}, + {0x9639e237, 0xffffd855ffffdf6d}, + {0x9639e238, 0xffffd855ffffdf6e}, + {0x9639e239, 0xffffd855ffffdf6f}, + {0x9639e330, 0xffffd855ffffdf70}, + {0x9639e331, 0xffffd855ffffdf71}, + {0x9639e332, 0xffffd855ffffdf72}, + {0x9639e333, 0xffffd855ffffdf73}, + {0x9639e334, 0xffffd855ffffdf74}, + {0x9639e335, 0xffffd855ffffdf75}, + {0x9639e336, 0xffffd855ffffdf76}, + {0x9639e337, 0xffffd855ffffdf77}, + {0x9639e338, 0xffffd855ffffdf78}, + {0x9639e339, 0xffffd855ffffdf79}, + {0x9639e430, 0xffffd855ffffdf7a}, + {0x9639e431, 0xffffd855ffffdf7b}, + {0x9639e432, 0xffffd855ffffdf7c}, + {0x9639e433, 0xffffd855ffffdf7d}, + {0x9639e434, 0xffffd855ffffdf7e}, + {0x9639e435, 0xffffd855ffffdf7f}, + {0x9639e436, 0xffffd855ffffdf80}, + {0x9639e437, 0xffffd855ffffdf81}, + {0x9639e438, 0xffffd855ffffdf82}, + {0x9639e439, 0xffffd855ffffdf83}, + {0x9639e530, 0xffffd855ffffdf84}, + {0x9639e531, 0xffffd855ffffdf85}, + {0x9639e532, 0xffffd855ffffdf86}, + {0x9639e533, 0xffffd855ffffdf87}, + {0x9639e534, 0xffffd855ffffdf88}, + {0x9639e535, 0xffffd855ffffdf89}, + {0x9639e536, 0xffffd855ffffdf8a}, + {0x9639e537, 0xffffd855ffffdf8b}, + {0x9639e538, 0xffffd855ffffdf8c}, + {0x9639e539, 0xffffd855ffffdf8d}, + {0x9639e630, 0xffffd855ffffdf8e}, + {0x9639e631, 0xffffd855ffffdf8f}, + {0x9639e632, 0xffffd855ffffdf90}, + {0x9639e633, 0xffffd855ffffdf91}, + {0x9639e634, 0xffffd855ffffdf92}, + {0x9639e635, 0xffffd855ffffdf93}, + {0x9639e636, 0xffffd855ffffdf94}, + {0x9639e637, 0xffffd855ffffdf95}, + {0x9639e638, 0xffffd855ffffdf96}, + {0x9639e639, 0xffffd855ffffdf97}, + {0x9639e730, 0xffffd855ffffdf98}, + {0x9639e731, 0xffffd855ffffdf99}, + {0x9639e732, 0xffffd855ffffdf9a}, + {0x9639e733, 0xffffd855ffffdf9b}, + {0x9639e734, 0xffffd855ffffdf9c}, + {0x9639e735, 0xffffd855ffffdf9d}, + {0x9639e736, 0xffffd855ffffdf9e}, + {0x9639e737, 0xffffd855ffffdf9f}, + {0x9639e738, 0xffffd855ffffdfa0}, + {0x9639e739, 0xffffd855ffffdfa1}, + {0x9639e830, 0xffffd855ffffdfa2}, + {0x9639e831, 0xffffd855ffffdfa3}, + {0x9639e832, 0xffffd855ffffdfa4}, + {0x9639e833, 0xffffd855ffffdfa5}, + {0x9639e834, 0xffffd855ffffdfa6}, + {0x9639e835, 0xffffd855ffffdfa7}, + {0x9639e836, 0xffffd855ffffdfa8}, + {0x9639e837, 0xffffd855ffffdfa9}, + {0x9639e838, 0xffffd855ffffdfaa}, + {0x9639e839, 0xffffd855ffffdfab}, + {0x9639e930, 0xffffd855ffffdfac}, + {0x9639e931, 0xffffd855ffffdfad}, + {0x9639e932, 0xffffd855ffffdfae}, + {0x9639e933, 0xffffd855ffffdfaf}, + {0x9639e934, 0xffffd855ffffdfb0}, + {0x9639e935, 0xffffd855ffffdfb1}, + {0x9639e936, 0xffffd855ffffdfb2}, + {0x9639e937, 0xffffd855ffffdfb3}, + {0x9639e938, 0xffffd855ffffdfb4}, + {0x9639e939, 0xffffd855ffffdfb5}, + {0x9639ea30, 0xffffd855ffffdfb6}, + {0x9639ea31, 0xffffd855ffffdfb7}, + {0x9639ea32, 0xffffd855ffffdfb8}, + {0x9639ea33, 0xffffd855ffffdfb9}, + {0x9639ea34, 0xffffd855ffffdfba}, + {0x9639ea35, 0xffffd855ffffdfbb}, + {0x9639ea36, 0xffffd855ffffdfbc}, + {0x9639ea37, 0xffffd855ffffdfbd}, + {0x9639ea38, 0xffffd855ffffdfbe}, + {0x9639ea39, 0xffffd855ffffdfbf}, + {0x9639eb30, 0xffffd855ffffdfc0}, + {0x9639eb31, 0xffffd855ffffdfc1}, + {0x9639eb32, 0xffffd855ffffdfc2}, + {0x9639eb33, 0xffffd855ffffdfc3}, + {0x9639eb34, 0xffffd855ffffdfc4}, + {0x9639eb35, 0xffffd855ffffdfc5}, + {0x9639eb36, 0xffffd855ffffdfc6}, + {0x9639eb37, 0xffffd855ffffdfc7}, + {0x9639eb38, 0xffffd855ffffdfc8}, + {0x9639eb39, 0xffffd855ffffdfc9}, + {0x9639ec30, 0xffffd855ffffdfca}, + {0x9639ec31, 0xffffd855ffffdfcb}, + {0x9639ec32, 0xffffd855ffffdfcc}, + {0x9639ec33, 0xffffd855ffffdfcd}, + {0x9639ec34, 0xffffd855ffffdfce}, + {0x9639ec35, 0xffffd855ffffdfcf}, + {0x9639ec36, 0xffffd855ffffdfd0}, + {0x9639ec37, 0xffffd855ffffdfd1}, + {0x9639ec38, 0xffffd855ffffdfd2}, + {0x9639ec39, 0xffffd855ffffdfd3}, + {0x9639ed30, 0xffffd855ffffdfd4}, + {0x9639ed31, 0xffffd855ffffdfd5}, + {0x9639ed32, 0xffffd855ffffdfd6}, + {0x9639ed33, 0xffffd855ffffdfd7}, + {0x9639ed34, 0xffffd855ffffdfd8}, + {0x9639ed35, 0xffffd855ffffdfd9}, + {0x9639ed36, 0xffffd855ffffdfda}, + {0x9639ed37, 0xffffd855ffffdfdb}, + {0x9639ed38, 0xffffd855ffffdfdc}, + {0x9639ed39, 0xffffd855ffffdfdd}, + {0x9639ee30, 0xffffd855ffffdfde}, + {0x9639ee31, 0xffffd855ffffdfdf}, + {0x9639ee32, 0xffffd855ffffdfe0}, + {0x9639ee33, 0xffffd855ffffdfe1}, + {0x9639ee34, 0xffffd855ffffdfe2}, + {0x9639ee35, 0xffffd855ffffdfe3}, + {0x9639ee36, 0xffffd855ffffdfe4}, + {0x9639ee37, 0xffffd855ffffdfe5}, + {0x9639ee38, 0xffffd855ffffdfe6}, + {0x9639ee39, 0xffffd855ffffdfe7}, + {0x9639ef30, 0xffffd855ffffdfe8}, + {0x9639ef31, 0xffffd855ffffdfe9}, + {0x9639ef32, 0xffffd855ffffdfea}, + {0x9639ef33, 0xffffd855ffffdfeb}, + {0x9639ef34, 0xffffd855ffffdfec}, + {0x9639ef35, 0xffffd855ffffdfed}, + {0x9639ef36, 0xffffd855ffffdfee}, + {0x9639ef37, 0xffffd855ffffdfef}, + {0x9639ef38, 0xffffd855ffffdff0}, + {0x9639ef39, 0xffffd855ffffdff1}, + {0x9639f030, 0xffffd855ffffdff2}, + {0x9639f031, 0xffffd855ffffdff3}, + {0x9639f032, 0xffffd855ffffdff4}, + {0x9639f033, 0xffffd855ffffdff5}, + {0x9639f034, 0xffffd855ffffdff6}, + {0x9639f035, 0xffffd855ffffdff7}, + {0x9639f036, 0xffffd855ffffdff8}, + {0x9639f037, 0xffffd855ffffdff9}, + {0x9639f038, 0xffffd855ffffdffa}, + {0x9639f039, 0xffffd855ffffdffb}, + {0x9639f130, 0xffffd855ffffdffc}, + {0x9639f131, 0xffffd855ffffdffd}, + {0x9639f132, 0xffffd855ffffdffe}, + {0x9639f133, 0xffffd855ffffdfff}, + {0x9639f134, 0xffffd856ffffdc00}, + {0x9639f135, 0xffffd856ffffdc01}, + {0x9639f136, 0xffffd856ffffdc02}, + {0x9639f137, 0xffffd856ffffdc03}, + {0x9639f138, 0xffffd856ffffdc04}, + {0x9639f139, 0xffffd856ffffdc05}, + {0x9639f230, 0xffffd856ffffdc06}, + {0x9639f231, 0xffffd856ffffdc07}, + {0x9639f232, 0xffffd856ffffdc08}, + {0x9639f233, 0xffffd856ffffdc09}, + {0x9639f234, 0xffffd856ffffdc0a}, + {0x9639f235, 0xffffd856ffffdc0b}, + {0x9639f236, 0xffffd856ffffdc0c}, + {0x9639f237, 0xffffd856ffffdc0d}, + {0x9639f238, 0xffffd856ffffdc0e}, + {0x9639f239, 0xffffd856ffffdc0f}, + {0x9639f330, 0xffffd856ffffdc10}, + {0x9639f331, 0xffffd856ffffdc11}, + {0x9639f332, 0xffffd856ffffdc12}, + {0x9639f333, 0xffffd856ffffdc13}, + {0x9639f334, 0xffffd856ffffdc14}, + {0x9639f335, 0xffffd856ffffdc15}, + {0x9639f336, 0xffffd856ffffdc16}, + {0x9639f337, 0xffffd856ffffdc17}, + {0x9639f338, 0xffffd856ffffdc18}, + {0x9639f339, 0xffffd856ffffdc19}, + {0x9639f430, 0xffffd856ffffdc1a}, + {0x9639f431, 0xffffd856ffffdc1b}, + {0x9639f432, 0xffffd856ffffdc1c}, + {0x9639f433, 0xffffd856ffffdc1d}, + {0x9639f434, 0xffffd856ffffdc1e}, + {0x9639f435, 0xffffd856ffffdc1f}, + {0x9639f436, 0xffffd856ffffdc20}, + {0x9639f437, 0xffffd856ffffdc21}, + {0x9639f438, 0xffffd856ffffdc22}, + {0x9639f439, 0xffffd856ffffdc23}, + {0x9639f530, 0xffffd856ffffdc24}, + {0x9639f531, 0xffffd856ffffdc25}, + {0x9639f532, 0xffffd856ffffdc26}, + {0x9639f533, 0xffffd856ffffdc27}, + {0x9639f534, 0xffffd856ffffdc28}, + {0x9639f535, 0xffffd856ffffdc29}, + {0x9639f536, 0xffffd856ffffdc2a}, + {0x9639f537, 0xffffd856ffffdc2b}, + {0x9639f538, 0xffffd856ffffdc2c}, + {0x9639f539, 0xffffd856ffffdc2d}, + {0x9639f630, 0xffffd856ffffdc2e}, + {0x9639f631, 0xffffd856ffffdc2f}, + {0x9639f632, 0xffffd856ffffdc30}, + {0x9639f633, 0xffffd856ffffdc31}, + {0x9639f634, 0xffffd856ffffdc32}, + {0x9639f635, 0xffffd856ffffdc33}, + {0x9639f636, 0xffffd856ffffdc34}, + {0x9639f637, 0xffffd856ffffdc35}, + {0x9639f638, 0xffffd856ffffdc36}, + {0x9639f639, 0xffffd856ffffdc37}, + {0x9639f730, 0xffffd856ffffdc38}, + {0x9639f731, 0xffffd856ffffdc39}, + {0x9639f732, 0xffffd856ffffdc3a}, + {0x9639f733, 0xffffd856ffffdc3b}, + {0x9639f734, 0xffffd856ffffdc3c}, + {0x9639f735, 0xffffd856ffffdc3d}, + {0x9639f736, 0xffffd856ffffdc3e}, + {0x9639f737, 0xffffd856ffffdc3f}, + {0x9639f738, 0xffffd856ffffdc40}, + {0x9639f739, 0xffffd856ffffdc41}, + {0x9639f830, 0xffffd856ffffdc42}, + {0x9639f831, 0xffffd856ffffdc43}, + {0x9639f832, 0xffffd856ffffdc44}, + {0x9639f833, 0xffffd856ffffdc45}, + {0x9639f834, 0xffffd856ffffdc46}, + {0x9639f835, 0xffffd856ffffdc47}, + {0x9639f836, 0xffffd856ffffdc48}, + {0x9639f837, 0xffffd856ffffdc49}, + {0x9639f838, 0xffffd856ffffdc4a}, + {0x9639f839, 0xffffd856ffffdc4b}, + {0x9639f930, 0xffffd856ffffdc4c}, + {0x9639f931, 0xffffd856ffffdc4d}, + {0x9639f932, 0xffffd856ffffdc4e}, + {0x9639f933, 0xffffd856ffffdc4f}, + {0x9639f934, 0xffffd856ffffdc50}, + {0x9639f935, 0xffffd856ffffdc51}, + {0x9639f936, 0xffffd856ffffdc52}, + {0x9639f937, 0xffffd856ffffdc53}, + {0x9639f938, 0xffffd856ffffdc54}, + {0x9639f939, 0xffffd856ffffdc55}, + {0x9639fa30, 0xffffd856ffffdc56}, + {0x9639fa31, 0xffffd856ffffdc57}, + {0x9639fa32, 0xffffd856ffffdc58}, + {0x9639fa33, 0xffffd856ffffdc59}, + {0x9639fa34, 0xffffd856ffffdc5a}, + {0x9639fa35, 0xffffd856ffffdc5b}, + {0x9639fa36, 0xffffd856ffffdc5c}, + {0x9639fa37, 0xffffd856ffffdc5d}, + {0x9639fa38, 0xffffd856ffffdc5e}, + {0x9639fa39, 0xffffd856ffffdc5f}, + {0x9639fb30, 0xffffd856ffffdc60}, + {0x9639fb31, 0xffffd856ffffdc61}, + {0x9639fb32, 0xffffd856ffffdc62}, + {0x9639fb33, 0xffffd856ffffdc63}, + {0x9639fb34, 0xffffd856ffffdc64}, + {0x9639fb35, 0xffffd856ffffdc65}, + {0x9639fb36, 0xffffd856ffffdc66}, + {0x9639fb37, 0xffffd856ffffdc67}, + {0x9639fb38, 0xffffd856ffffdc68}, + {0x9639fb39, 0xffffd856ffffdc69}, + {0x9639fc30, 0xffffd856ffffdc6a}, + {0x9639fc31, 0xffffd856ffffdc6b}, + {0x9639fc32, 0xffffd856ffffdc6c}, + {0x9639fc33, 0xffffd856ffffdc6d}, + {0x9639fc34, 0xffffd856ffffdc6e}, + {0x9639fc35, 0xffffd856ffffdc6f}, + {0x9639fc36, 0xffffd856ffffdc70}, + {0x9639fc37, 0xffffd856ffffdc71}, + {0x9639fc38, 0xffffd856ffffdc72}, + {0x9639fc39, 0xffffd856ffffdc73}, + {0x9639fd30, 0xffffd856ffffdc74}, + {0x9639fd31, 0xffffd856ffffdc75}, + {0x9639fd32, 0xffffd856ffffdc76}, + {0x9639fd33, 0xffffd856ffffdc77}, + {0x9639fd34, 0xffffd856ffffdc78}, + {0x9639fd35, 0xffffd856ffffdc79}, + {0x9639fd36, 0xffffd856ffffdc7a}, + {0x9639fd37, 0xffffd856ffffdc7b}, + {0x9639fd38, 0xffffd856ffffdc7c}, + {0x9639fd39, 0xffffd856ffffdc7d}, + {0x9639fe30, 0xffffd856ffffdc7e}, + {0x9639fe31, 0xffffd856ffffdc7f}, + {0x9639fe32, 0xffffd856ffffdc80}, + {0x9639fe33, 0xffffd856ffffdc81}, + {0x9639fe34, 0xffffd856ffffdc82}, + {0x9639fe35, 0xffffd856ffffdc83}, + {0x9639fe36, 0xffffd856ffffdc84}, + {0x9639fe37, 0xffffd856ffffdc85}, + {0x9639fe38, 0xffffd856ffffdc86}, + {0x9639fe39, 0xffffd856ffffdc87}, + {0x97308130, 0xffffd856ffffdc88}, + {0x97308131, 0xffffd856ffffdc89}, + {0x97308132, 0xffffd856ffffdc8a}, + {0x97308133, 0xffffd856ffffdc8b}, + {0x97308134, 0xffffd856ffffdc8c}, + {0x97308135, 0xffffd856ffffdc8d}, + {0x97308136, 0xffffd856ffffdc8e}, + {0x97308137, 0xffffd856ffffdc8f}, + {0x97308138, 0xffffd856ffffdc90}, + {0x97308139, 0xffffd856ffffdc91}, + {0x97308230, 0xffffd856ffffdc92}, + {0x97308231, 0xffffd856ffffdc93}, + {0x97308232, 0xffffd856ffffdc94}, + {0x97308233, 0xffffd856ffffdc95}, + {0x97308234, 0xffffd856ffffdc96}, + {0x97308235, 0xffffd856ffffdc97}, + {0x97308236, 0xffffd856ffffdc98}, + {0x97308237, 0xffffd856ffffdc99}, + {0x97308238, 0xffffd856ffffdc9a}, + {0x97308239, 0xffffd856ffffdc9b}, + {0x97308330, 0xffffd856ffffdc9c}, + {0x97308331, 0xffffd856ffffdc9d}, + {0x97308332, 0xffffd856ffffdc9e}, + {0x97308333, 0xffffd856ffffdc9f}, + {0x97308334, 0xffffd856ffffdca0}, + {0x97308335, 0xffffd856ffffdca1}, + {0x97308336, 0xffffd856ffffdca2}, + {0x97308337, 0xffffd856ffffdca3}, + {0x97308338, 0xffffd856ffffdca4}, + {0x97308339, 0xffffd856ffffdca5}, + {0x97308430, 0xffffd856ffffdca6}, + {0x97308431, 0xffffd856ffffdca7}, + {0x97308432, 0xffffd856ffffdca8}, + {0x97308433, 0xffffd856ffffdca9}, + {0x97308434, 0xffffd856ffffdcaa}, + {0x97308435, 0xffffd856ffffdcab}, + {0x97308436, 0xffffd856ffffdcac}, + {0x97308437, 0xffffd856ffffdcad}, + {0x97308438, 0xffffd856ffffdcae}, + {0x97308439, 0xffffd856ffffdcaf}, + {0x97308530, 0xffffd856ffffdcb0}, + {0x97308531, 0xffffd856ffffdcb1}, + {0x97308532, 0xffffd856ffffdcb2}, + {0x97308533, 0xffffd856ffffdcb3}, + {0x97308534, 0xffffd856ffffdcb4}, + {0x97308535, 0xffffd856ffffdcb5}, + {0x97308536, 0xffffd856ffffdcb6}, + {0x97308537, 0xffffd856ffffdcb7}, + {0x97308538, 0xffffd856ffffdcb8}, + {0x97308539, 0xffffd856ffffdcb9}, + {0x97308630, 0xffffd856ffffdcba}, + {0x97308631, 0xffffd856ffffdcbb}, + {0x97308632, 0xffffd856ffffdcbc}, + {0x97308633, 0xffffd856ffffdcbd}, + {0x97308634, 0xffffd856ffffdcbe}, + {0x97308635, 0xffffd856ffffdcbf}, + {0x97308636, 0xffffd856ffffdcc0}, + {0x97308637, 0xffffd856ffffdcc1}, + {0x97308638, 0xffffd856ffffdcc2}, + {0x97308639, 0xffffd856ffffdcc3}, + {0x97308730, 0xffffd856ffffdcc4}, + {0x97308731, 0xffffd856ffffdcc5}, + {0x97308732, 0xffffd856ffffdcc6}, + {0x97308733, 0xffffd856ffffdcc7}, + {0x97308734, 0xffffd856ffffdcc8}, + {0x97308735, 0xffffd856ffffdcc9}, + {0x97308736, 0xffffd856ffffdcca}, + {0x97308737, 0xffffd856ffffdccb}, + {0x97308738, 0xffffd856ffffdccc}, + {0x97308739, 0xffffd856ffffdccd}, + {0x97308830, 0xffffd856ffffdcce}, + {0x97308831, 0xffffd856ffffdccf}, + {0x97308832, 0xffffd856ffffdcd0}, + {0x97308833, 0xffffd856ffffdcd1}, + {0x97308834, 0xffffd856ffffdcd2}, + {0x97308835, 0xffffd856ffffdcd3}, + {0x97308836, 0xffffd856ffffdcd4}, + {0x97308837, 0xffffd856ffffdcd5}, + {0x97308838, 0xffffd856ffffdcd6}, + {0x97308839, 0xffffd856ffffdcd7}, + {0x97308930, 0xffffd856ffffdcd8}, + {0x97308931, 0xffffd856ffffdcd9}, + {0x97308932, 0xffffd856ffffdcda}, + {0x97308933, 0xffffd856ffffdcdb}, + {0x97308934, 0xffffd856ffffdcdc}, + {0x97308935, 0xffffd856ffffdcdd}, + {0x97308936, 0xffffd856ffffdcde}, + {0x97308937, 0xffffd856ffffdcdf}, + {0x97308938, 0xffffd856ffffdce0}, + {0x97308939, 0xffffd856ffffdce1}, + {0x97308a30, 0xffffd856ffffdce2}, + {0x97308a31, 0xffffd856ffffdce3}, + {0x97308a32, 0xffffd856ffffdce4}, + {0x97308a33, 0xffffd856ffffdce5}, + {0x97308a34, 0xffffd856ffffdce6}, + {0x97308a35, 0xffffd856ffffdce7}, + {0x97308a36, 0xffffd856ffffdce8}, + {0x97308a37, 0xffffd856ffffdce9}, + {0x97308a38, 0xffffd856ffffdcea}, + {0x97308a39, 0xffffd856ffffdceb}, + {0x97308b30, 0xffffd856ffffdcec}, + {0x97308b31, 0xffffd856ffffdced}, + {0x97308b32, 0xffffd856ffffdcee}, + {0x97308b33, 0xffffd856ffffdcef}, + {0x97308b34, 0xffffd856ffffdcf0}, + {0x97308b35, 0xffffd856ffffdcf1}, + {0x97308b36, 0xffffd856ffffdcf2}, + {0x97308b37, 0xffffd856ffffdcf3}, + {0x97308b38, 0xffffd856ffffdcf4}, + {0x97308b39, 0xffffd856ffffdcf5}, + {0x97308c30, 0xffffd856ffffdcf6}, + {0x97308c31, 0xffffd856ffffdcf7}, + {0x97308c32, 0xffffd856ffffdcf8}, + {0x97308c33, 0xffffd856ffffdcf9}, + {0x97308c34, 0xffffd856ffffdcfa}, + {0x97308c35, 0xffffd856ffffdcfb}, + {0x97308c36, 0xffffd856ffffdcfc}, + {0x97308c37, 0xffffd856ffffdcfd}, + {0x97308c38, 0xffffd856ffffdcfe}, + {0x97308c39, 0xffffd856ffffdcff}, + {0x97308d30, 0xffffd856ffffdd00}, + {0x97308d31, 0xffffd856ffffdd01}, + {0x97308d32, 0xffffd856ffffdd02}, + {0x97308d33, 0xffffd856ffffdd03}, + {0x97308d34, 0xffffd856ffffdd04}, + {0x97308d35, 0xffffd856ffffdd05}, + {0x97308d36, 0xffffd856ffffdd06}, + {0x97308d37, 0xffffd856ffffdd07}, + {0x97308d38, 0xffffd856ffffdd08}, + {0x97308d39, 0xffffd856ffffdd09}, + {0x97308e30, 0xffffd856ffffdd0a}, + {0x97308e31, 0xffffd856ffffdd0b}, + {0x97308e32, 0xffffd856ffffdd0c}, + {0x97308e33, 0xffffd856ffffdd0d}, + {0x97308e34, 0xffffd856ffffdd0e}, + {0x97308e35, 0xffffd856ffffdd0f}, + {0x97308e36, 0xffffd856ffffdd10}, + {0x97308e37, 0xffffd856ffffdd11}, + {0x97308e38, 0xffffd856ffffdd12}, + {0x97308e39, 0xffffd856ffffdd13}, + {0x97308f30, 0xffffd856ffffdd14}, + {0x97308f31, 0xffffd856ffffdd15}, + {0x97308f32, 0xffffd856ffffdd16}, + {0x97308f33, 0xffffd856ffffdd17}, + {0x97308f34, 0xffffd856ffffdd18}, + {0x97308f35, 0xffffd856ffffdd19}, + {0x97308f36, 0xffffd856ffffdd1a}, + {0x97308f37, 0xffffd856ffffdd1b}, + {0x97308f38, 0xffffd856ffffdd1c}, + {0x97308f39, 0xffffd856ffffdd1d}, + {0x97309030, 0xffffd856ffffdd1e}, + {0x97309031, 0xffffd856ffffdd1f}, + {0x97309032, 0xffffd856ffffdd20}, + {0x97309033, 0xffffd856ffffdd21}, + {0x97309034, 0xffffd856ffffdd22}, + {0x97309035, 0xffffd856ffffdd23}, + {0x97309036, 0xffffd856ffffdd24}, + {0x97309037, 0xffffd856ffffdd25}, + {0x97309038, 0xffffd856ffffdd26}, + {0x97309039, 0xffffd856ffffdd27}, + {0x97309130, 0xffffd856ffffdd28}, + {0x97309131, 0xffffd856ffffdd29}, + {0x97309132, 0xffffd856ffffdd2a}, + {0x97309133, 0xffffd856ffffdd2b}, + {0x97309134, 0xffffd856ffffdd2c}, + {0x97309135, 0xffffd856ffffdd2d}, + {0x97309136, 0xffffd856ffffdd2e}, + {0x97309137, 0xffffd856ffffdd2f}, + {0x97309138, 0xffffd856ffffdd30}, + {0x97309139, 0xffffd856ffffdd31}, + {0x97309230, 0xffffd856ffffdd32}, + {0x97309231, 0xffffd856ffffdd33}, + {0x97309232, 0xffffd856ffffdd34}, + {0x97309233, 0xffffd856ffffdd35}, + {0x97309234, 0xffffd856ffffdd36}, + {0x97309235, 0xffffd856ffffdd37}, + {0x97309236, 0xffffd856ffffdd38}, + {0x97309237, 0xffffd856ffffdd39}, + {0x97309238, 0xffffd856ffffdd3a}, + {0x97309239, 0xffffd856ffffdd3b}, + {0x97309330, 0xffffd856ffffdd3c}, + {0x97309331, 0xffffd856ffffdd3d}, + {0x97309332, 0xffffd856ffffdd3e}, + {0x97309333, 0xffffd856ffffdd3f}, + {0x97309334, 0xffffd856ffffdd40}, + {0x97309335, 0xffffd856ffffdd41}, + {0x97309336, 0xffffd856ffffdd42}, + {0x97309337, 0xffffd856ffffdd43}, + {0x97309338, 0xffffd856ffffdd44}, + {0x97309339, 0xffffd856ffffdd45}, + {0x97309430, 0xffffd856ffffdd46}, + {0x97309431, 0xffffd856ffffdd47}, + {0x97309432, 0xffffd856ffffdd48}, + {0x97309433, 0xffffd856ffffdd49}, + {0x97309434, 0xffffd856ffffdd4a}, + {0x97309435, 0xffffd856ffffdd4b}, + {0x97309436, 0xffffd856ffffdd4c}, + {0x97309437, 0xffffd856ffffdd4d}, + {0x97309438, 0xffffd856ffffdd4e}, + {0x97309439, 0xffffd856ffffdd4f}, + {0x97309530, 0xffffd856ffffdd50}, + {0x97309531, 0xffffd856ffffdd51}, + {0x97309532, 0xffffd856ffffdd52}, + {0x97309533, 0xffffd856ffffdd53}, + {0x97309534, 0xffffd856ffffdd54}, + {0x97309535, 0xffffd856ffffdd55}, + {0x97309536, 0xffffd856ffffdd56}, + {0x97309537, 0xffffd856ffffdd57}, + {0x97309538, 0xffffd856ffffdd58}, + {0x97309539, 0xffffd856ffffdd59}, + {0x97309630, 0xffffd856ffffdd5a}, + {0x97309631, 0xffffd856ffffdd5b}, + {0x97309632, 0xffffd856ffffdd5c}, + {0x97309633, 0xffffd856ffffdd5d}, + {0x97309634, 0xffffd856ffffdd5e}, + {0x97309635, 0xffffd856ffffdd5f}, + {0x97309636, 0xffffd856ffffdd60}, + {0x97309637, 0xffffd856ffffdd61}, + {0x97309638, 0xffffd856ffffdd62}, + {0x97309639, 0xffffd856ffffdd63}, + {0x97309730, 0xffffd856ffffdd64}, + {0x97309731, 0xffffd856ffffdd65}, + {0x97309732, 0xffffd856ffffdd66}, + {0x97309733, 0xffffd856ffffdd67}, + {0x97309734, 0xffffd856ffffdd68}, + {0x97309735, 0xffffd856ffffdd69}, + {0x97309736, 0xffffd856ffffdd6a}, + {0x97309737, 0xffffd856ffffdd6b}, + {0x97309738, 0xffffd856ffffdd6c}, + {0x97309739, 0xffffd856ffffdd6d}, + {0x97309830, 0xffffd856ffffdd6e}, + {0x97309831, 0xffffd856ffffdd6f}, + {0x97309832, 0xffffd856ffffdd70}, + {0x97309833, 0xffffd856ffffdd71}, + {0x97309834, 0xffffd856ffffdd72}, + {0x97309835, 0xffffd856ffffdd73}, + {0x97309836, 0xffffd856ffffdd74}, + {0x97309837, 0xffffd856ffffdd75}, + {0x97309838, 0xffffd856ffffdd76}, + {0x97309839, 0xffffd856ffffdd77}, + {0x97309930, 0xffffd856ffffdd78}, + {0x97309931, 0xffffd856ffffdd79}, + {0x97309932, 0xffffd856ffffdd7a}, + {0x97309933, 0xffffd856ffffdd7b}, + {0x97309934, 0xffffd856ffffdd7c}, + {0x97309935, 0xffffd856ffffdd7d}, + {0x97309936, 0xffffd856ffffdd7e}, + {0x97309937, 0xffffd856ffffdd7f}, + {0x97309938, 0xffffd856ffffdd80}, + {0x97309939, 0xffffd856ffffdd81}, + {0x97309a30, 0xffffd856ffffdd82}, + {0x97309a31, 0xffffd856ffffdd83}, + {0x97309a32, 0xffffd856ffffdd84}, + {0x97309a33, 0xffffd856ffffdd85}, + {0x97309a34, 0xffffd856ffffdd86}, + {0x97309a35, 0xffffd856ffffdd87}, + {0x97309a36, 0xffffd856ffffdd88}, + {0x97309a37, 0xffffd856ffffdd89}, + {0x97309a38, 0xffffd856ffffdd8a}, + {0x97309a39, 0xffffd856ffffdd8b}, + {0x97309b30, 0xffffd856ffffdd8c}, + {0x97309b31, 0xffffd856ffffdd8d}, + {0x97309b32, 0xffffd856ffffdd8e}, + {0x97309b33, 0xffffd856ffffdd8f}, + {0x97309b34, 0xffffd856ffffdd90}, + {0x97309b35, 0xffffd856ffffdd91}, + {0x97309b36, 0xffffd856ffffdd92}, + {0x97309b37, 0xffffd856ffffdd93}, + {0x97309b38, 0xffffd856ffffdd94}, + {0x97309b39, 0xffffd856ffffdd95}, + {0x97309c30, 0xffffd856ffffdd96}, + {0x97309c31, 0xffffd856ffffdd97}, + {0x97309c32, 0xffffd856ffffdd98}, + {0x97309c33, 0xffffd856ffffdd99}, + {0x97309c34, 0xffffd856ffffdd9a}, + {0x97309c35, 0xffffd856ffffdd9b}, + {0x97309c36, 0xffffd856ffffdd9c}, + {0x97309c37, 0xffffd856ffffdd9d}, + {0x97309c38, 0xffffd856ffffdd9e}, + {0x97309c39, 0xffffd856ffffdd9f}, + {0x97309d30, 0xffffd856ffffdda0}, + {0x97309d31, 0xffffd856ffffdda1}, + {0x97309d32, 0xffffd856ffffdda2}, + {0x97309d33, 0xffffd856ffffdda3}, + {0x97309d34, 0xffffd856ffffdda4}, + {0x97309d35, 0xffffd856ffffdda5}, + {0x97309d36, 0xffffd856ffffdda6}, + {0x97309d37, 0xffffd856ffffdda7}, + {0x97309d38, 0xffffd856ffffdda8}, + {0x97309d39, 0xffffd856ffffdda9}, + {0x97309e30, 0xffffd856ffffddaa}, + {0x97309e31, 0xffffd856ffffddab}, + {0x97309e32, 0xffffd856ffffddac}, + {0x97309e33, 0xffffd856ffffddad}, + {0x97309e34, 0xffffd856ffffddae}, + {0x97309e35, 0xffffd856ffffddaf}, + {0x97309e36, 0xffffd856ffffddb0}, + {0x97309e37, 0xffffd856ffffddb1}, + {0x97309e38, 0xffffd856ffffddb2}, + {0x97309e39, 0xffffd856ffffddb3}, + {0x97309f30, 0xffffd856ffffddb4}, + {0x97309f31, 0xffffd856ffffddb5}, + {0x97309f32, 0xffffd856ffffddb6}, + {0x97309f33, 0xffffd856ffffddb7}, + {0x97309f34, 0xffffd856ffffddb8}, + {0x97309f35, 0xffffd856ffffddb9}, + {0x97309f36, 0xffffd856ffffddba}, + {0x97309f37, 0xffffd856ffffddbb}, + {0x97309f38, 0xffffd856ffffddbc}, + {0x97309f39, 0xffffd856ffffddbd}, + {0x9730a030, 0xffffd856ffffddbe}, + {0x9730a031, 0xffffd856ffffddbf}, + {0x9730a032, 0xffffd856ffffddc0}, + {0x9730a033, 0xffffd856ffffddc1}, + {0x9730a034, 0xffffd856ffffddc2}, + {0x9730a035, 0xffffd856ffffddc3}, + {0x9730a036, 0xffffd856ffffddc4}, + {0x9730a037, 0xffffd856ffffddc5}, + {0x9730a038, 0xffffd856ffffddc6}, + {0x9730a039, 0xffffd856ffffddc7}, + {0x9730a130, 0xffffd856ffffddc8}, + {0x9730a131, 0xffffd856ffffddc9}, + {0x9730a132, 0xffffd856ffffddca}, + {0x9730a133, 0xffffd856ffffddcb}, + {0x9730a134, 0xffffd856ffffddcc}, + {0x9730a135, 0xffffd856ffffddcd}, + {0x9730a136, 0xffffd856ffffddce}, + {0x9730a137, 0xffffd856ffffddcf}, + {0x9730a138, 0xffffd856ffffddd0}, + {0x9730a139, 0xffffd856ffffddd1}, + {0x9730a230, 0xffffd856ffffddd2}, + {0x9730a231, 0xffffd856ffffddd3}, + {0x9730a232, 0xffffd856ffffddd4}, + {0x9730a233, 0xffffd856ffffddd5}, + {0x9730a234, 0xffffd856ffffddd6}, + {0x9730a235, 0xffffd856ffffddd7}, + {0x9730a236, 0xffffd856ffffddd8}, + {0x9730a237, 0xffffd856ffffddd9}, + {0x9730a238, 0xffffd856ffffddda}, + {0x9730a239, 0xffffd856ffffdddb}, + {0x9730a330, 0xffffd856ffffdddc}, + {0x9730a331, 0xffffd856ffffdddd}, + {0x9730a332, 0xffffd856ffffddde}, + {0x9730a333, 0xffffd856ffffdddf}, + {0x9730a334, 0xffffd856ffffdde0}, + {0x9730a335, 0xffffd856ffffdde1}, + {0x9730a336, 0xffffd856ffffdde2}, + {0x9730a337, 0xffffd856ffffdde3}, + {0x9730a338, 0xffffd856ffffdde4}, + {0x9730a339, 0xffffd856ffffdde5}, + {0x9730a430, 0xffffd856ffffdde6}, + {0x9730a431, 0xffffd856ffffdde7}, + {0x9730a432, 0xffffd856ffffdde8}, + {0x9730a433, 0xffffd856ffffdde9}, + {0x9730a434, 0xffffd856ffffddea}, + {0x9730a435, 0xffffd856ffffddeb}, + {0x9730a436, 0xffffd856ffffddec}, + {0x9730a437, 0xffffd856ffffdded}, + {0x9730a438, 0xffffd856ffffddee}, + {0x9730a439, 0xffffd856ffffddef}, + {0x9730a530, 0xffffd856ffffddf0}, + {0x9730a531, 0xffffd856ffffddf1}, + {0x9730a532, 0xffffd856ffffddf2}, + {0x9730a533, 0xffffd856ffffddf3}, + {0x9730a534, 0xffffd856ffffddf4}, + {0x9730a535, 0xffffd856ffffddf5}, + {0x9730a536, 0xffffd856ffffddf6}, + {0x9730a537, 0xffffd856ffffddf7}, + {0x9730a538, 0xffffd856ffffddf8}, + {0x9730a539, 0xffffd856ffffddf9}, + {0x9730a630, 0xffffd856ffffddfa}, + {0x9730a631, 0xffffd856ffffddfb}, + {0x9730a632, 0xffffd856ffffddfc}, + {0x9730a633, 0xffffd856ffffddfd}, + {0x9730a634, 0xffffd856ffffddfe}, + {0x9730a635, 0xffffd856ffffddff}, + {0x9730a636, 0xffffd856ffffde00}, + {0x9730a637, 0xffffd856ffffde01}, + {0x9730a638, 0xffffd856ffffde02}, + {0x9730a639, 0xffffd856ffffde03}, + {0x9730a730, 0xffffd856ffffde04}, + {0x9730a731, 0xffffd856ffffde05}, + {0x9730a732, 0xffffd856ffffde06}, + {0x9730a733, 0xffffd856ffffde07}, + {0x9730a734, 0xffffd856ffffde08}, + {0x9730a735, 0xffffd856ffffde09}, + {0x9730a736, 0xffffd856ffffde0a}, + {0x9730a737, 0xffffd856ffffde0b}, + {0x9730a738, 0xffffd856ffffde0c}, + {0x9730a739, 0xffffd856ffffde0d}, + {0x9730a830, 0xffffd856ffffde0e}, + {0x9730a831, 0xffffd856ffffde0f}, + {0x9730a832, 0xffffd856ffffde10}, + {0x9730a833, 0xffffd856ffffde11}, + {0x9730a834, 0xffffd856ffffde12}, + {0x9730a835, 0xffffd856ffffde13}, + {0x9730a836, 0xffffd856ffffde14}, + {0x9730a837, 0xffffd856ffffde15}, + {0x9730a838, 0xffffd856ffffde16}, + {0x9730a839, 0xffffd856ffffde17}, + {0x9730a930, 0xffffd856ffffde18}, + {0x9730a931, 0xffffd856ffffde19}, + {0x9730a932, 0xffffd856ffffde1a}, + {0x9730a933, 0xffffd856ffffde1b}, + {0x9730a934, 0xffffd856ffffde1c}, + {0x9730a935, 0xffffd856ffffde1d}, + {0x9730a936, 0xffffd856ffffde1e}, + {0x9730a937, 0xffffd856ffffde1f}, + {0x9730a938, 0xffffd856ffffde20}, + {0x9730a939, 0xffffd856ffffde21}, + {0x9730aa30, 0xffffd856ffffde22}, + {0x9730aa31, 0xffffd856ffffde23}, + {0x9730aa32, 0xffffd856ffffde24}, + {0x9730aa33, 0xffffd856ffffde25}, + {0x9730aa34, 0xffffd856ffffde26}, + {0x9730aa35, 0xffffd856ffffde27}, + {0x9730aa36, 0xffffd856ffffde28}, + {0x9730aa37, 0xffffd856ffffde29}, + {0x9730aa38, 0xffffd856ffffde2a}, + {0x9730aa39, 0xffffd856ffffde2b}, + {0x9730ab30, 0xffffd856ffffde2c}, + {0x9730ab31, 0xffffd856ffffde2d}, + {0x9730ab32, 0xffffd856ffffde2e}, + {0x9730ab33, 0xffffd856ffffde2f}, + {0x9730ab34, 0xffffd856ffffde30}, + {0x9730ab35, 0xffffd856ffffde31}, + {0x9730ab36, 0xffffd856ffffde32}, + {0x9730ab37, 0xffffd856ffffde33}, + {0x9730ab38, 0xffffd856ffffde34}, + {0x9730ab39, 0xffffd856ffffde35}, + {0x9730ac30, 0xffffd856ffffde36}, + {0x9730ac31, 0xffffd856ffffde37}, + {0x9730ac32, 0xffffd856ffffde38}, + {0x9730ac33, 0xffffd856ffffde39}, + {0x9730ac34, 0xffffd856ffffde3a}, + {0x9730ac35, 0xffffd856ffffde3b}, + {0x9730ac36, 0xffffd856ffffde3c}, + {0x9730ac37, 0xffffd856ffffde3d}, + {0x9730ac38, 0xffffd856ffffde3e}, + {0x9730ac39, 0xffffd856ffffde3f}, + {0x9730ad30, 0xffffd856ffffde40}, + {0x9730ad31, 0xffffd856ffffde41}, + {0x9730ad32, 0xffffd856ffffde42}, + {0x9730ad33, 0xffffd856ffffde43}, + {0x9730ad34, 0xffffd856ffffde44}, + {0x9730ad35, 0xffffd856ffffde45}, + {0x9730ad36, 0xffffd856ffffde46}, + {0x9730ad37, 0xffffd856ffffde47}, + {0x9730ad38, 0xffffd856ffffde48}, + {0x9730ad39, 0xffffd856ffffde49}, + {0x9730ae30, 0xffffd856ffffde4a}, + {0x9730ae31, 0xffffd856ffffde4b}, + {0x9730ae32, 0xffffd856ffffde4c}, + {0x9730ae33, 0xffffd856ffffde4d}, + {0x9730ae34, 0xffffd856ffffde4e}, + {0x9730ae35, 0xffffd856ffffde4f}, + {0x9730ae36, 0xffffd856ffffde50}, + {0x9730ae37, 0xffffd856ffffde51}, + {0x9730ae38, 0xffffd856ffffde52}, + {0x9730ae39, 0xffffd856ffffde53}, + {0x9730af30, 0xffffd856ffffde54}, + {0x9730af31, 0xffffd856ffffde55}, + {0x9730af32, 0xffffd856ffffde56}, + {0x9730af33, 0xffffd856ffffde57}, + {0x9730af34, 0xffffd856ffffde58}, + {0x9730af35, 0xffffd856ffffde59}, + {0x9730af36, 0xffffd856ffffde5a}, + {0x9730af37, 0xffffd856ffffde5b}, + {0x9730af38, 0xffffd856ffffde5c}, + {0x9730af39, 0xffffd856ffffde5d}, + {0x9730b030, 0xffffd856ffffde5e}, + {0x9730b031, 0xffffd856ffffde5f}, + {0x9730b032, 0xffffd856ffffde60}, + {0x9730b033, 0xffffd856ffffde61}, + {0x9730b034, 0xffffd856ffffde62}, + {0x9730b035, 0xffffd856ffffde63}, + {0x9730b036, 0xffffd856ffffde64}, + {0x9730b037, 0xffffd856ffffde65}, + {0x9730b038, 0xffffd856ffffde66}, + {0x9730b039, 0xffffd856ffffde67}, + {0x9730b130, 0xffffd856ffffde68}, + {0x9730b131, 0xffffd856ffffde69}, + {0x9730b132, 0xffffd856ffffde6a}, + {0x9730b133, 0xffffd856ffffde6b}, + {0x9730b134, 0xffffd856ffffde6c}, + {0x9730b135, 0xffffd856ffffde6d}, + {0x9730b136, 0xffffd856ffffde6e}, + {0x9730b137, 0xffffd856ffffde6f}, + {0x9730b138, 0xffffd856ffffde70}, + {0x9730b139, 0xffffd856ffffde71}, + {0x9730b230, 0xffffd856ffffde72}, + {0x9730b231, 0xffffd856ffffde73}, + {0x9730b232, 0xffffd856ffffde74}, + {0x9730b233, 0xffffd856ffffde75}, + {0x9730b234, 0xffffd856ffffde76}, + {0x9730b235, 0xffffd856ffffde77}, + {0x9730b236, 0xffffd856ffffde78}, + {0x9730b237, 0xffffd856ffffde79}, + {0x9730b238, 0xffffd856ffffde7a}, + {0x9730b239, 0xffffd856ffffde7b}, + {0x9730b330, 0xffffd856ffffde7c}, + {0x9730b331, 0xffffd856ffffde7d}, + {0x9730b332, 0xffffd856ffffde7e}, + {0x9730b333, 0xffffd856ffffde7f}, + {0x9730b334, 0xffffd856ffffde80}, + {0x9730b335, 0xffffd856ffffde81}, + {0x9730b336, 0xffffd856ffffde82}, + {0x9730b337, 0xffffd856ffffde83}, + {0x9730b338, 0xffffd856ffffde84}, + {0x9730b339, 0xffffd856ffffde85}, + {0x9730b430, 0xffffd856ffffde86}, + {0x9730b431, 0xffffd856ffffde87}, + {0x9730b432, 0xffffd856ffffde88}, + {0x9730b433, 0xffffd856ffffde89}, + {0x9730b434, 0xffffd856ffffde8a}, + {0x9730b435, 0xffffd856ffffde8b}, + {0x9730b436, 0xffffd856ffffde8c}, + {0x9730b437, 0xffffd856ffffde8d}, + {0x9730b438, 0xffffd856ffffde8e}, + {0x9730b439, 0xffffd856ffffde8f}, + {0x9730b530, 0xffffd856ffffde90}, + {0x9730b531, 0xffffd856ffffde91}, + {0x9730b532, 0xffffd856ffffde92}, + {0x9730b533, 0xffffd856ffffde93}, + {0x9730b534, 0xffffd856ffffde94}, + {0x9730b535, 0xffffd856ffffde95}, + {0x9730b536, 0xffffd856ffffde96}, + {0x9730b537, 0xffffd856ffffde97}, + {0x9730b538, 0xffffd856ffffde98}, + {0x9730b539, 0xffffd856ffffde99}, + {0x9730b630, 0xffffd856ffffde9a}, + {0x9730b631, 0xffffd856ffffde9b}, + {0x9730b632, 0xffffd856ffffde9c}, + {0x9730b633, 0xffffd856ffffde9d}, + {0x9730b634, 0xffffd856ffffde9e}, + {0x9730b635, 0xffffd856ffffde9f}, + {0x9730b636, 0xffffd856ffffdea0}, + {0x9730b637, 0xffffd856ffffdea1}, + {0x9730b638, 0xffffd856ffffdea2}, + {0x9730b639, 0xffffd856ffffdea3}, + {0x9730b730, 0xffffd856ffffdea4}, + {0x9730b731, 0xffffd856ffffdea5}, + {0x9730b732, 0xffffd856ffffdea6}, + {0x9730b733, 0xffffd856ffffdea7}, + {0x9730b734, 0xffffd856ffffdea8}, + {0x9730b735, 0xffffd856ffffdea9}, + {0x9730b736, 0xffffd856ffffdeaa}, + {0x9730b737, 0xffffd856ffffdeab}, + {0x9730b738, 0xffffd856ffffdeac}, + {0x9730b739, 0xffffd856ffffdead}, + {0x9730b830, 0xffffd856ffffdeae}, + {0x9730b831, 0xffffd856ffffdeaf}, + {0x9730b832, 0xffffd856ffffdeb0}, + {0x9730b833, 0xffffd856ffffdeb1}, + {0x9730b834, 0xffffd856ffffdeb2}, + {0x9730b835, 0xffffd856ffffdeb3}, + {0x9730b836, 0xffffd856ffffdeb4}, + {0x9730b837, 0xffffd856ffffdeb5}, + {0x9730b838, 0xffffd856ffffdeb6}, + {0x9730b839, 0xffffd856ffffdeb7}, + {0x9730b930, 0xffffd856ffffdeb8}, + {0x9730b931, 0xffffd856ffffdeb9}, + {0x9730b932, 0xffffd856ffffdeba}, + {0x9730b933, 0xffffd856ffffdebb}, + {0x9730b934, 0xffffd856ffffdebc}, + {0x9730b935, 0xffffd856ffffdebd}, + {0x9730b936, 0xffffd856ffffdebe}, + {0x9730b937, 0xffffd856ffffdebf}, + {0x9730b938, 0xffffd856ffffdec0}, + {0x9730b939, 0xffffd856ffffdec1}, + {0x9730ba30, 0xffffd856ffffdec2}, + {0x9730ba31, 0xffffd856ffffdec3}, + {0x9730ba32, 0xffffd856ffffdec4}, + {0x9730ba33, 0xffffd856ffffdec5}, + {0x9730ba34, 0xffffd856ffffdec6}, + {0x9730ba35, 0xffffd856ffffdec7}, + {0x9730ba36, 0xffffd856ffffdec8}, + {0x9730ba37, 0xffffd856ffffdec9}, + {0x9730ba38, 0xffffd856ffffdeca}, + {0x9730ba39, 0xffffd856ffffdecb}, + {0x9730bb30, 0xffffd856ffffdecc}, + {0x9730bb31, 0xffffd856ffffdecd}, + {0x9730bb32, 0xffffd856ffffdece}, + {0x9730bb33, 0xffffd856ffffdecf}, + {0x9730bb34, 0xffffd856ffffded0}, + {0x9730bb35, 0xffffd856ffffded1}, + {0x9730bb36, 0xffffd856ffffded2}, + {0x9730bb37, 0xffffd856ffffded3}, + {0x9730bb38, 0xffffd856ffffded4}, + {0x9730bb39, 0xffffd856ffffded5}, + {0x9730bc30, 0xffffd856ffffded6}, + {0x9730bc31, 0xffffd856ffffded7}, + {0x9730bc32, 0xffffd856ffffded8}, + {0x9730bc33, 0xffffd856ffffded9}, + {0x9730bc34, 0xffffd856ffffdeda}, + {0x9730bc35, 0xffffd856ffffdedb}, + {0x9730bc36, 0xffffd856ffffdedc}, + {0x9730bc37, 0xffffd856ffffdedd}, + {0x9730bc38, 0xffffd856ffffdede}, + {0x9730bc39, 0xffffd856ffffdedf}, + {0x9730bd30, 0xffffd856ffffdee0}, + {0x9730bd31, 0xffffd856ffffdee1}, + {0x9730bd32, 0xffffd856ffffdee2}, + {0x9730bd33, 0xffffd856ffffdee3}, + {0x9730bd34, 0xffffd856ffffdee4}, + {0x9730bd35, 0xffffd856ffffdee5}, + {0x9730bd36, 0xffffd856ffffdee6}, + {0x9730bd37, 0xffffd856ffffdee7}, + {0x9730bd38, 0xffffd856ffffdee8}, + {0x9730bd39, 0xffffd856ffffdee9}, + {0x9730be30, 0xffffd856ffffdeea}, + {0x9730be31, 0xffffd856ffffdeeb}, + {0x9730be32, 0xffffd856ffffdeec}, + {0x9730be33, 0xffffd856ffffdeed}, + {0x9730be34, 0xffffd856ffffdeee}, + {0x9730be35, 0xffffd856ffffdeef}, + {0x9730be36, 0xffffd856ffffdef0}, + {0x9730be37, 0xffffd856ffffdef1}, + {0x9730be38, 0xffffd856ffffdef2}, + {0x9730be39, 0xffffd856ffffdef3}, + {0x9730bf30, 0xffffd856ffffdef4}, + {0x9730bf31, 0xffffd856ffffdef5}, + {0x9730bf32, 0xffffd856ffffdef6}, + {0x9730bf33, 0xffffd856ffffdef7}, + {0x9730bf34, 0xffffd856ffffdef8}, + {0x9730bf35, 0xffffd856ffffdef9}, + {0x9730bf36, 0xffffd856ffffdefa}, + {0x9730bf37, 0xffffd856ffffdefb}, + {0x9730bf38, 0xffffd856ffffdefc}, + {0x9730bf39, 0xffffd856ffffdefd}, + {0x9730c030, 0xffffd856ffffdefe}, + {0x9730c031, 0xffffd856ffffdeff}, + {0x9730c032, 0xffffd856ffffdf00}, + {0x9730c033, 0xffffd856ffffdf01}, + {0x9730c034, 0xffffd856ffffdf02}, + {0x9730c035, 0xffffd856ffffdf03}, + {0x9730c036, 0xffffd856ffffdf04}, + {0x9730c037, 0xffffd856ffffdf05}, + {0x9730c038, 0xffffd856ffffdf06}, + {0x9730c039, 0xffffd856ffffdf07}, + {0x9730c130, 0xffffd856ffffdf08}, + {0x9730c131, 0xffffd856ffffdf09}, + {0x9730c132, 0xffffd856ffffdf0a}, + {0x9730c133, 0xffffd856ffffdf0b}, + {0x9730c134, 0xffffd856ffffdf0c}, + {0x9730c135, 0xffffd856ffffdf0d}, + {0x9730c136, 0xffffd856ffffdf0e}, + {0x9730c137, 0xffffd856ffffdf0f}, + {0x9730c138, 0xffffd856ffffdf10}, + {0x9730c139, 0xffffd856ffffdf11}, + {0x9730c230, 0xffffd856ffffdf12}, + {0x9730c231, 0xffffd856ffffdf13}, + {0x9730c232, 0xffffd856ffffdf14}, + {0x9730c233, 0xffffd856ffffdf15}, + {0x9730c234, 0xffffd856ffffdf16}, + {0x9730c235, 0xffffd856ffffdf17}, + {0x9730c236, 0xffffd856ffffdf18}, + {0x9730c237, 0xffffd856ffffdf19}, + {0x9730c238, 0xffffd856ffffdf1a}, + {0x9730c239, 0xffffd856ffffdf1b}, + {0x9730c330, 0xffffd856ffffdf1c}, + {0x9730c331, 0xffffd856ffffdf1d}, + {0x9730c332, 0xffffd856ffffdf1e}, + {0x9730c333, 0xffffd856ffffdf1f}, + {0x9730c334, 0xffffd856ffffdf20}, + {0x9730c335, 0xffffd856ffffdf21}, + {0x9730c336, 0xffffd856ffffdf22}, + {0x9730c337, 0xffffd856ffffdf23}, + {0x9730c338, 0xffffd856ffffdf24}, + {0x9730c339, 0xffffd856ffffdf25}, + {0x9730c430, 0xffffd856ffffdf26}, + {0x9730c431, 0xffffd856ffffdf27}, + {0x9730c432, 0xffffd856ffffdf28}, + {0x9730c433, 0xffffd856ffffdf29}, + {0x9730c434, 0xffffd856ffffdf2a}, + {0x9730c435, 0xffffd856ffffdf2b}, + {0x9730c436, 0xffffd856ffffdf2c}, + {0x9730c437, 0xffffd856ffffdf2d}, + {0x9730c438, 0xffffd856ffffdf2e}, + {0x9730c439, 0xffffd856ffffdf2f}, + {0x9730c530, 0xffffd856ffffdf30}, + {0x9730c531, 0xffffd856ffffdf31}, + {0x9730c532, 0xffffd856ffffdf32}, + {0x9730c533, 0xffffd856ffffdf33}, + {0x9730c534, 0xffffd856ffffdf34}, + {0x9730c535, 0xffffd856ffffdf35}, + {0x9730c536, 0xffffd856ffffdf36}, + {0x9730c537, 0xffffd856ffffdf37}, + {0x9730c538, 0xffffd856ffffdf38}, + {0x9730c539, 0xffffd856ffffdf39}, + {0x9730c630, 0xffffd856ffffdf3a}, + {0x9730c631, 0xffffd856ffffdf3b}, + {0x9730c632, 0xffffd856ffffdf3c}, + {0x9730c633, 0xffffd856ffffdf3d}, + {0x9730c634, 0xffffd856ffffdf3e}, + {0x9730c635, 0xffffd856ffffdf3f}, + {0x9730c636, 0xffffd856ffffdf40}, + {0x9730c637, 0xffffd856ffffdf41}, + {0x9730c638, 0xffffd856ffffdf42}, + {0x9730c639, 0xffffd856ffffdf43}, + {0x9730c730, 0xffffd856ffffdf44}, + {0x9730c731, 0xffffd856ffffdf45}, + {0x9730c732, 0xffffd856ffffdf46}, + {0x9730c733, 0xffffd856ffffdf47}, + {0x9730c734, 0xffffd856ffffdf48}, + {0x9730c735, 0xffffd856ffffdf49}, + {0x9730c736, 0xffffd856ffffdf4a}, + {0x9730c737, 0xffffd856ffffdf4b}, + {0x9730c738, 0xffffd856ffffdf4c}, + {0x9730c739, 0xffffd856ffffdf4d}, + {0x9730c830, 0xffffd856ffffdf4e}, + {0x9730c831, 0xffffd856ffffdf4f}, + {0x9730c832, 0xffffd856ffffdf50}, + {0x9730c833, 0xffffd856ffffdf51}, + {0x9730c834, 0xffffd856ffffdf52}, + {0x9730c835, 0xffffd856ffffdf53}, + {0x9730c836, 0xffffd856ffffdf54}, + {0x9730c837, 0xffffd856ffffdf55}, + {0x9730c838, 0xffffd856ffffdf56}, + {0x9730c839, 0xffffd856ffffdf57}, + {0x9730c930, 0xffffd856ffffdf58}, + {0x9730c931, 0xffffd856ffffdf59}, + {0x9730c932, 0xffffd856ffffdf5a}, + {0x9730c933, 0xffffd856ffffdf5b}, + {0x9730c934, 0xffffd856ffffdf5c}, + {0x9730c935, 0xffffd856ffffdf5d}, + {0x9730c936, 0xffffd856ffffdf5e}, + {0x9730c937, 0xffffd856ffffdf5f}, + {0x9730c938, 0xffffd856ffffdf60}, + {0x9730c939, 0xffffd856ffffdf61}, + {0x9730ca30, 0xffffd856ffffdf62}, + {0x9730ca31, 0xffffd856ffffdf63}, + {0x9730ca32, 0xffffd856ffffdf64}, + {0x9730ca33, 0xffffd856ffffdf65}, + {0x9730ca34, 0xffffd856ffffdf66}, + {0x9730ca35, 0xffffd856ffffdf67}, + {0x9730ca36, 0xffffd856ffffdf68}, + {0x9730ca37, 0xffffd856ffffdf69}, + {0x9730ca38, 0xffffd856ffffdf6a}, + {0x9730ca39, 0xffffd856ffffdf6b}, + {0x9730cb30, 0xffffd856ffffdf6c}, + {0x9730cb31, 0xffffd856ffffdf6d}, + {0x9730cb32, 0xffffd856ffffdf6e}, + {0x9730cb33, 0xffffd856ffffdf6f}, + {0x9730cb34, 0xffffd856ffffdf70}, + {0x9730cb35, 0xffffd856ffffdf71}, + {0x9730cb36, 0xffffd856ffffdf72}, + {0x9730cb37, 0xffffd856ffffdf73}, + {0x9730cb38, 0xffffd856ffffdf74}, + {0x9730cb39, 0xffffd856ffffdf75}, + {0x9730cc30, 0xffffd856ffffdf76}, + {0x9730cc31, 0xffffd856ffffdf77}, + {0x9730cc32, 0xffffd856ffffdf78}, + {0x9730cc33, 0xffffd856ffffdf79}, + {0x9730cc34, 0xffffd856ffffdf7a}, + {0x9730cc35, 0xffffd856ffffdf7b}, + {0x9730cc36, 0xffffd856ffffdf7c}, + {0x9730cc37, 0xffffd856ffffdf7d}, + {0x9730cc38, 0xffffd856ffffdf7e}, + {0x9730cc39, 0xffffd856ffffdf7f}, + {0x9730cd30, 0xffffd856ffffdf80}, + {0x9730cd31, 0xffffd856ffffdf81}, + {0x9730cd32, 0xffffd856ffffdf82}, + {0x9730cd33, 0xffffd856ffffdf83}, + {0x9730cd34, 0xffffd856ffffdf84}, + {0x9730cd35, 0xffffd856ffffdf85}, + {0x9730cd36, 0xffffd856ffffdf86}, + {0x9730cd37, 0xffffd856ffffdf87}, + {0x9730cd38, 0xffffd856ffffdf88}, + {0x9730cd39, 0xffffd856ffffdf89}, + {0x9730ce30, 0xffffd856ffffdf8a}, + {0x9730ce31, 0xffffd856ffffdf8b}, + {0x9730ce32, 0xffffd856ffffdf8c}, + {0x9730ce33, 0xffffd856ffffdf8d}, + {0x9730ce34, 0xffffd856ffffdf8e}, + {0x9730ce35, 0xffffd856ffffdf8f}, + {0x9730ce36, 0xffffd856ffffdf90}, + {0x9730ce37, 0xffffd856ffffdf91}, + {0x9730ce38, 0xffffd856ffffdf92}, + {0x9730ce39, 0xffffd856ffffdf93}, + {0x9730cf30, 0xffffd856ffffdf94}, + {0x9730cf31, 0xffffd856ffffdf95}, + {0x9730cf32, 0xffffd856ffffdf96}, + {0x9730cf33, 0xffffd856ffffdf97}, + {0x9730cf34, 0xffffd856ffffdf98}, + {0x9730cf35, 0xffffd856ffffdf99}, + {0x9730cf36, 0xffffd856ffffdf9a}, + {0x9730cf37, 0xffffd856ffffdf9b}, + {0x9730cf38, 0xffffd856ffffdf9c}, + {0x9730cf39, 0xffffd856ffffdf9d}, + {0x9730d030, 0xffffd856ffffdf9e}, + {0x9730d031, 0xffffd856ffffdf9f}, + {0x9730d032, 0xffffd856ffffdfa0}, + {0x9730d033, 0xffffd856ffffdfa1}, + {0x9730d034, 0xffffd856ffffdfa2}, + {0x9730d035, 0xffffd856ffffdfa3}, + {0x9730d036, 0xffffd856ffffdfa4}, + {0x9730d037, 0xffffd856ffffdfa5}, + {0x9730d038, 0xffffd856ffffdfa6}, + {0x9730d039, 0xffffd856ffffdfa7}, + {0x9730d130, 0xffffd856ffffdfa8}, + {0x9730d131, 0xffffd856ffffdfa9}, + {0x9730d132, 0xffffd856ffffdfaa}, + {0x9730d133, 0xffffd856ffffdfab}, + {0x9730d134, 0xffffd856ffffdfac}, + {0x9730d135, 0xffffd856ffffdfad}, + {0x9730d136, 0xffffd856ffffdfae}, + {0x9730d137, 0xffffd856ffffdfaf}, + {0x9730d138, 0xffffd856ffffdfb0}, + {0x9730d139, 0xffffd856ffffdfb1}, + {0x9730d230, 0xffffd856ffffdfb2}, + {0x9730d231, 0xffffd856ffffdfb3}, + {0x9730d232, 0xffffd856ffffdfb4}, + {0x9730d233, 0xffffd856ffffdfb5}, + {0x9730d234, 0xffffd856ffffdfb6}, + {0x9730d235, 0xffffd856ffffdfb7}, + {0x9730d236, 0xffffd856ffffdfb8}, + {0x9730d237, 0xffffd856ffffdfb9}, + {0x9730d238, 0xffffd856ffffdfba}, + {0x9730d239, 0xffffd856ffffdfbb}, + {0x9730d330, 0xffffd856ffffdfbc}, + {0x9730d331, 0xffffd856ffffdfbd}, + {0x9730d332, 0xffffd856ffffdfbe}, + {0x9730d333, 0xffffd856ffffdfbf}, + {0x9730d334, 0xffffd856ffffdfc0}, + {0x9730d335, 0xffffd856ffffdfc1}, + {0x9730d336, 0xffffd856ffffdfc2}, + {0x9730d337, 0xffffd856ffffdfc3}, + {0x9730d338, 0xffffd856ffffdfc4}, + {0x9730d339, 0xffffd856ffffdfc5}, + {0x9730d430, 0xffffd856ffffdfc6}, + {0x9730d431, 0xffffd856ffffdfc7}, + {0x9730d432, 0xffffd856ffffdfc8}, + {0x9730d433, 0xffffd856ffffdfc9}, + {0x9730d434, 0xffffd856ffffdfca}, + {0x9730d435, 0xffffd856ffffdfcb}, + {0x9730d436, 0xffffd856ffffdfcc}, + {0x9730d437, 0xffffd856ffffdfcd}, + {0x9730d438, 0xffffd856ffffdfce}, + {0x9730d439, 0xffffd856ffffdfcf}, + {0x9730d530, 0xffffd856ffffdfd0}, + {0x9730d531, 0xffffd856ffffdfd1}, + {0x9730d532, 0xffffd856ffffdfd2}, + {0x9730d533, 0xffffd856ffffdfd3}, + {0x9730d534, 0xffffd856ffffdfd4}, + {0x9730d535, 0xffffd856ffffdfd5}, + {0x9730d536, 0xffffd856ffffdfd6}, + {0x9730d537, 0xffffd856ffffdfd7}, + {0x9730d538, 0xffffd856ffffdfd8}, + {0x9730d539, 0xffffd856ffffdfd9}, + {0x9730d630, 0xffffd856ffffdfda}, + {0x9730d631, 0xffffd856ffffdfdb}, + {0x9730d632, 0xffffd856ffffdfdc}, + {0x9730d633, 0xffffd856ffffdfdd}, + {0x9730d634, 0xffffd856ffffdfde}, + {0x9730d635, 0xffffd856ffffdfdf}, + {0x9730d636, 0xffffd856ffffdfe0}, + {0x9730d637, 0xffffd856ffffdfe1}, + {0x9730d638, 0xffffd856ffffdfe2}, + {0x9730d639, 0xffffd856ffffdfe3}, + {0x9730d730, 0xffffd856ffffdfe4}, + {0x9730d731, 0xffffd856ffffdfe5}, + {0x9730d732, 0xffffd856ffffdfe6}, + {0x9730d733, 0xffffd856ffffdfe7}, + {0x9730d734, 0xffffd856ffffdfe8}, + {0x9730d735, 0xffffd856ffffdfe9}, + {0x9730d736, 0xffffd856ffffdfea}, + {0x9730d737, 0xffffd856ffffdfeb}, + {0x9730d738, 0xffffd856ffffdfec}, + {0x9730d739, 0xffffd856ffffdfed}, + {0x9730d830, 0xffffd856ffffdfee}, + {0x9730d831, 0xffffd856ffffdfef}, + {0x9730d832, 0xffffd856ffffdff0}, + {0x9730d833, 0xffffd856ffffdff1}, + {0x9730d834, 0xffffd856ffffdff2}, + {0x9730d835, 0xffffd856ffffdff3}, + {0x9730d836, 0xffffd856ffffdff4}, + {0x9730d837, 0xffffd856ffffdff5}, + {0x9730d838, 0xffffd856ffffdff6}, + {0x9730d839, 0xffffd856ffffdff7}, + {0x9730d930, 0xffffd856ffffdff8}, + {0x9730d931, 0xffffd856ffffdff9}, + {0x9730d932, 0xffffd856ffffdffa}, + {0x9730d933, 0xffffd856ffffdffb}, + {0x9730d934, 0xffffd856ffffdffc}, + {0x9730d935, 0xffffd856ffffdffd}, + {0x9730d936, 0xffffd856ffffdffe}, + {0x9730d937, 0xffffd856ffffdfff}, + {0x9730d938, 0xffffd857ffffdc00}, + {0x9730d939, 0xffffd857ffffdc01}, + {0x9730da30, 0xffffd857ffffdc02}, + {0x9730da31, 0xffffd857ffffdc03}, + {0x9730da32, 0xffffd857ffffdc04}, + {0x9730da33, 0xffffd857ffffdc05}, + {0x9730da34, 0xffffd857ffffdc06}, + {0x9730da35, 0xffffd857ffffdc07}, + {0x9730da36, 0xffffd857ffffdc08}, + {0x9730da37, 0xffffd857ffffdc09}, + {0x9730da38, 0xffffd857ffffdc0a}, + {0x9730da39, 0xffffd857ffffdc0b}, + {0x9730db30, 0xffffd857ffffdc0c}, + {0x9730db31, 0xffffd857ffffdc0d}, + {0x9730db32, 0xffffd857ffffdc0e}, + {0x9730db33, 0xffffd857ffffdc0f}, + {0x9730db34, 0xffffd857ffffdc10}, + {0x9730db35, 0xffffd857ffffdc11}, + {0x9730db36, 0xffffd857ffffdc12}, + {0x9730db37, 0xffffd857ffffdc13}, + {0x9730db38, 0xffffd857ffffdc14}, + {0x9730db39, 0xffffd857ffffdc15}, + {0x9730dc30, 0xffffd857ffffdc16}, + {0x9730dc31, 0xffffd857ffffdc17}, + {0x9730dc32, 0xffffd857ffffdc18}, + {0x9730dc33, 0xffffd857ffffdc19}, + {0x9730dc34, 0xffffd857ffffdc1a}, + {0x9730dc35, 0xffffd857ffffdc1b}, + {0x9730dc36, 0xffffd857ffffdc1c}, + {0x9730dc37, 0xffffd857ffffdc1d}, + {0x9730dc38, 0xffffd857ffffdc1e}, + {0x9730dc39, 0xffffd857ffffdc1f}, + {0x9730dd30, 0xffffd857ffffdc20}, + {0x9730dd31, 0xffffd857ffffdc21}, + {0x9730dd32, 0xffffd857ffffdc22}, + {0x9730dd33, 0xffffd857ffffdc23}, + {0x9730dd34, 0xffffd857ffffdc24}, + {0x9730dd35, 0xffffd857ffffdc25}, + {0x9730dd36, 0xffffd857ffffdc26}, + {0x9730dd37, 0xffffd857ffffdc27}, + {0x9730dd38, 0xffffd857ffffdc28}, + {0x9730dd39, 0xffffd857ffffdc29}, + {0x9730de30, 0xffffd857ffffdc2a}, + {0x9730de31, 0xffffd857ffffdc2b}, + {0x9730de32, 0xffffd857ffffdc2c}, + {0x9730de33, 0xffffd857ffffdc2d}, + {0x9730de34, 0xffffd857ffffdc2e}, + {0x9730de35, 0xffffd857ffffdc2f}, + {0x9730de36, 0xffffd857ffffdc30}, + {0x9730de37, 0xffffd857ffffdc31}, + {0x9730de38, 0xffffd857ffffdc32}, + {0x9730de39, 0xffffd857ffffdc33}, + {0x9730df30, 0xffffd857ffffdc34}, + {0x9730df31, 0xffffd857ffffdc35}, + {0x9730df32, 0xffffd857ffffdc36}, + {0x9730df33, 0xffffd857ffffdc37}, + {0x9730df34, 0xffffd857ffffdc38}, + {0x9730df35, 0xffffd857ffffdc39}, + {0x9730df36, 0xffffd857ffffdc3a}, + {0x9730df37, 0xffffd857ffffdc3b}, + {0x9730df38, 0xffffd857ffffdc3c}, + {0x9730df39, 0xffffd857ffffdc3d}, + {0x9730e030, 0xffffd857ffffdc3e}, + {0x9730e031, 0xffffd857ffffdc3f}, + {0x9730e032, 0xffffd857ffffdc40}, + {0x9730e033, 0xffffd857ffffdc41}, + {0x9730e034, 0xffffd857ffffdc42}, + {0x9730e035, 0xffffd857ffffdc43}, + {0x9730e036, 0xffffd857ffffdc44}, + {0x9730e037, 0xffffd857ffffdc45}, + {0x9730e038, 0xffffd857ffffdc46}, + {0x9730e039, 0xffffd857ffffdc47}, + {0x9730e130, 0xffffd857ffffdc48}, + {0x9730e131, 0xffffd857ffffdc49}, + {0x9730e132, 0xffffd857ffffdc4a}, + {0x9730e133, 0xffffd857ffffdc4b}, + {0x9730e134, 0xffffd857ffffdc4c}, + {0x9730e135, 0xffffd857ffffdc4d}, + {0x9730e136, 0xffffd857ffffdc4e}, + {0x9730e137, 0xffffd857ffffdc4f}, + {0x9730e138, 0xffffd857ffffdc50}, + {0x9730e139, 0xffffd857ffffdc51}, + {0x9730e230, 0xffffd857ffffdc52}, + {0x9730e231, 0xffffd857ffffdc53}, + {0x9730e232, 0xffffd857ffffdc54}, + {0x9730e233, 0xffffd857ffffdc55}, + {0x9730e234, 0xffffd857ffffdc56}, + {0x9730e235, 0xffffd857ffffdc57}, + {0x9730e236, 0xffffd857ffffdc58}, + {0x9730e237, 0xffffd857ffffdc59}, + {0x9730e238, 0xffffd857ffffdc5a}, + {0x9730e239, 0xffffd857ffffdc5b}, + {0x9730e330, 0xffffd857ffffdc5c}, + {0x9730e331, 0xffffd857ffffdc5d}, + {0x9730e332, 0xffffd857ffffdc5e}, + {0x9730e333, 0xffffd857ffffdc5f}, + {0x9730e334, 0xffffd857ffffdc60}, + {0x9730e335, 0xffffd857ffffdc61}, + {0x9730e336, 0xffffd857ffffdc62}, + {0x9730e337, 0xffffd857ffffdc63}, + {0x9730e338, 0xffffd857ffffdc64}, + {0x9730e339, 0xffffd857ffffdc65}, + {0x9730e430, 0xffffd857ffffdc66}, + {0x9730e431, 0xffffd857ffffdc67}, + {0x9730e432, 0xffffd857ffffdc68}, + {0x9730e433, 0xffffd857ffffdc69}, + {0x9730e434, 0xffffd857ffffdc6a}, + {0x9730e435, 0xffffd857ffffdc6b}, + {0x9730e436, 0xffffd857ffffdc6c}, + {0x9730e437, 0xffffd857ffffdc6d}, + {0x9730e438, 0xffffd857ffffdc6e}, + {0x9730e439, 0xffffd857ffffdc6f}, + {0x9730e530, 0xffffd857ffffdc70}, + {0x9730e531, 0xffffd857ffffdc71}, + {0x9730e532, 0xffffd857ffffdc72}, + {0x9730e533, 0xffffd857ffffdc73}, + {0x9730e534, 0xffffd857ffffdc74}, + {0x9730e535, 0xffffd857ffffdc75}, + {0x9730e536, 0xffffd857ffffdc76}, + {0x9730e537, 0xffffd857ffffdc77}, + {0x9730e538, 0xffffd857ffffdc78}, + {0x9730e539, 0xffffd857ffffdc79}, + {0x9730e630, 0xffffd857ffffdc7a}, + {0x9730e631, 0xffffd857ffffdc7b}, + {0x9730e632, 0xffffd857ffffdc7c}, + {0x9730e633, 0xffffd857ffffdc7d}, + {0x9730e634, 0xffffd857ffffdc7e}, + {0x9730e635, 0xffffd857ffffdc7f}, + {0x9730e636, 0xffffd857ffffdc80}, + {0x9730e637, 0xffffd857ffffdc81}, + {0x9730e638, 0xffffd857ffffdc82}, + {0x9730e639, 0xffffd857ffffdc83}, + {0x9730e730, 0xffffd857ffffdc84}, + {0x9730e731, 0xffffd857ffffdc85}, + {0x9730e732, 0xffffd857ffffdc86}, + {0x9730e733, 0xffffd857ffffdc87}, + {0x9730e734, 0xffffd857ffffdc88}, + {0x9730e735, 0xffffd857ffffdc89}, + {0x9730e736, 0xffffd857ffffdc8a}, + {0x9730e737, 0xffffd857ffffdc8b}, + {0x9730e738, 0xffffd857ffffdc8c}, + {0x9730e739, 0xffffd857ffffdc8d}, + {0x9730e830, 0xffffd857ffffdc8e}, + {0x9730e831, 0xffffd857ffffdc8f}, + {0x9730e832, 0xffffd857ffffdc90}, + {0x9730e833, 0xffffd857ffffdc91}, + {0x9730e834, 0xffffd857ffffdc92}, + {0x9730e835, 0xffffd857ffffdc93}, + {0x9730e836, 0xffffd857ffffdc94}, + {0x9730e837, 0xffffd857ffffdc95}, + {0x9730e838, 0xffffd857ffffdc96}, + {0x9730e839, 0xffffd857ffffdc97}, + {0x9730e930, 0xffffd857ffffdc98}, + {0x9730e931, 0xffffd857ffffdc99}, + {0x9730e932, 0xffffd857ffffdc9a}, + {0x9730e933, 0xffffd857ffffdc9b}, + {0x9730e934, 0xffffd857ffffdc9c}, + {0x9730e935, 0xffffd857ffffdc9d}, + {0x9730e936, 0xffffd857ffffdc9e}, + {0x9730e937, 0xffffd857ffffdc9f}, + {0x9730e938, 0xffffd857ffffdca0}, + {0x9730e939, 0xffffd857ffffdca1}, + {0x9730ea30, 0xffffd857ffffdca2}, + {0x9730ea31, 0xffffd857ffffdca3}, + {0x9730ea32, 0xffffd857ffffdca4}, + {0x9730ea33, 0xffffd857ffffdca5}, + {0x9730ea34, 0xffffd857ffffdca6}, + {0x9730ea35, 0xffffd857ffffdca7}, + {0x9730ea36, 0xffffd857ffffdca8}, + {0x9730ea37, 0xffffd857ffffdca9}, + {0x9730ea38, 0xffffd857ffffdcaa}, + {0x9730ea39, 0xffffd857ffffdcab}, + {0x9730eb30, 0xffffd857ffffdcac}, + {0x9730eb31, 0xffffd857ffffdcad}, + {0x9730eb32, 0xffffd857ffffdcae}, + {0x9730eb33, 0xffffd857ffffdcaf}, + {0x9730eb34, 0xffffd857ffffdcb0}, + {0x9730eb35, 0xffffd857ffffdcb1}, + {0x9730eb36, 0xffffd857ffffdcb2}, + {0x9730eb37, 0xffffd857ffffdcb3}, + {0x9730eb38, 0xffffd857ffffdcb4}, + {0x9730eb39, 0xffffd857ffffdcb5}, + {0x9730ec30, 0xffffd857ffffdcb6}, + {0x9730ec31, 0xffffd857ffffdcb7}, + {0x9730ec32, 0xffffd857ffffdcb8}, + {0x9730ec33, 0xffffd857ffffdcb9}, + {0x9730ec34, 0xffffd857ffffdcba}, + {0x9730ec35, 0xffffd857ffffdcbb}, + {0x9730ec36, 0xffffd857ffffdcbc}, + {0x9730ec37, 0xffffd857ffffdcbd}, + {0x9730ec38, 0xffffd857ffffdcbe}, + {0x9730ec39, 0xffffd857ffffdcbf}, + {0x9730ed30, 0xffffd857ffffdcc0}, + {0x9730ed31, 0xffffd857ffffdcc1}, + {0x9730ed32, 0xffffd857ffffdcc2}, + {0x9730ed33, 0xffffd857ffffdcc3}, + {0x9730ed34, 0xffffd857ffffdcc4}, + {0x9730ed35, 0xffffd857ffffdcc5}, + {0x9730ed36, 0xffffd857ffffdcc6}, + {0x9730ed37, 0xffffd857ffffdcc7}, + {0x9730ed38, 0xffffd857ffffdcc8}, + {0x9730ed39, 0xffffd857ffffdcc9}, + {0x9730ee30, 0xffffd857ffffdcca}, + {0x9730ee31, 0xffffd857ffffdccb}, + {0x9730ee32, 0xffffd857ffffdccc}, + {0x9730ee33, 0xffffd857ffffdccd}, + {0x9730ee34, 0xffffd857ffffdcce}, + {0x9730ee35, 0xffffd857ffffdccf}, + {0x9730ee36, 0xffffd857ffffdcd0}, + {0x9730ee37, 0xffffd857ffffdcd1}, + {0x9730ee38, 0xffffd857ffffdcd2}, + {0x9730ee39, 0xffffd857ffffdcd3}, + {0x9730ef30, 0xffffd857ffffdcd4}, + {0x9730ef31, 0xffffd857ffffdcd5}, + {0x9730ef32, 0xffffd857ffffdcd6}, + {0x9730ef33, 0xffffd857ffffdcd7}, + {0x9730ef34, 0xffffd857ffffdcd8}, + {0x9730ef35, 0xffffd857ffffdcd9}, + {0x9730ef36, 0xffffd857ffffdcda}, + {0x9730ef37, 0xffffd857ffffdcdb}, + {0x9730ef38, 0xffffd857ffffdcdc}, + {0x9730ef39, 0xffffd857ffffdcdd}, + {0x9730f030, 0xffffd857ffffdcde}, + {0x9730f031, 0xffffd857ffffdcdf}, + {0x9730f032, 0xffffd857ffffdce0}, + {0x9730f033, 0xffffd857ffffdce1}, + {0x9730f034, 0xffffd857ffffdce2}, + {0x9730f035, 0xffffd857ffffdce3}, + {0x9730f036, 0xffffd857ffffdce4}, + {0x9730f037, 0xffffd857ffffdce5}, + {0x9730f038, 0xffffd857ffffdce6}, + {0x9730f039, 0xffffd857ffffdce7}, + {0x9730f130, 0xffffd857ffffdce8}, + {0x9730f131, 0xffffd857ffffdce9}, + {0x9730f132, 0xffffd857ffffdcea}, + {0x9730f133, 0xffffd857ffffdceb}, + {0x9730f134, 0xffffd857ffffdcec}, + {0x9730f135, 0xffffd857ffffdced}, + {0x9730f136, 0xffffd857ffffdcee}, + {0x9730f137, 0xffffd857ffffdcef}, + {0x9730f138, 0xffffd857ffffdcf0}, + {0x9730f139, 0xffffd857ffffdcf1}, + {0x9730f230, 0xffffd857ffffdcf2}, + {0x9730f231, 0xffffd857ffffdcf3}, + {0x9730f232, 0xffffd857ffffdcf4}, + {0x9730f233, 0xffffd857ffffdcf5}, + {0x9730f234, 0xffffd857ffffdcf6}, + {0x9730f235, 0xffffd857ffffdcf7}, + {0x9730f236, 0xffffd857ffffdcf8}, + {0x9730f237, 0xffffd857ffffdcf9}, + {0x9730f238, 0xffffd857ffffdcfa}, + {0x9730f239, 0xffffd857ffffdcfb}, + {0x9730f330, 0xffffd857ffffdcfc}, + {0x9730f331, 0xffffd857ffffdcfd}, + {0x9730f332, 0xffffd857ffffdcfe}, + {0x9730f333, 0xffffd857ffffdcff}, + {0x9730f334, 0xffffd857ffffdd00}, + {0x9730f335, 0xffffd857ffffdd01}, + {0x9730f336, 0xffffd857ffffdd02}, + {0x9730f337, 0xffffd857ffffdd03}, + {0x9730f338, 0xffffd857ffffdd04}, + {0x9730f339, 0xffffd857ffffdd05}, + {0x9730f430, 0xffffd857ffffdd06}, + {0x9730f431, 0xffffd857ffffdd07}, + {0x9730f432, 0xffffd857ffffdd08}, + {0x9730f433, 0xffffd857ffffdd09}, + {0x9730f434, 0xffffd857ffffdd0a}, + {0x9730f435, 0xffffd857ffffdd0b}, + {0x9730f436, 0xffffd857ffffdd0c}, + {0x9730f437, 0xffffd857ffffdd0d}, + {0x9730f438, 0xffffd857ffffdd0e}, + {0x9730f439, 0xffffd857ffffdd0f}, + {0x9730f530, 0xffffd857ffffdd10}, + {0x9730f531, 0xffffd857ffffdd11}, + {0x9730f532, 0xffffd857ffffdd12}, + {0x9730f533, 0xffffd857ffffdd13}, + {0x9730f534, 0xffffd857ffffdd14}, + {0x9730f535, 0xffffd857ffffdd15}, + {0x9730f536, 0xffffd857ffffdd16}, + {0x9730f537, 0xffffd857ffffdd17}, + {0x9730f538, 0xffffd857ffffdd18}, + {0x9730f539, 0xffffd857ffffdd19}, + {0x9730f630, 0xffffd857ffffdd1a}, + {0x9730f631, 0xffffd857ffffdd1b}, + {0x9730f632, 0xffffd857ffffdd1c}, + {0x9730f633, 0xffffd857ffffdd1d}, + {0x9730f634, 0xffffd857ffffdd1e}, + {0x9730f635, 0xffffd857ffffdd1f}, + {0x9730f636, 0xffffd857ffffdd20}, + {0x9730f637, 0xffffd857ffffdd21}, + {0x9730f638, 0xffffd857ffffdd22}, + {0x9730f639, 0xffffd857ffffdd23}, + {0x9730f730, 0xffffd857ffffdd24}, + {0x9730f731, 0xffffd857ffffdd25}, + {0x9730f732, 0xffffd857ffffdd26}, + {0x9730f733, 0xffffd857ffffdd27}, + {0x9730f734, 0xffffd857ffffdd28}, + {0x9730f735, 0xffffd857ffffdd29}, + {0x9730f736, 0xffffd857ffffdd2a}, + {0x9730f737, 0xffffd857ffffdd2b}, + {0x9730f738, 0xffffd857ffffdd2c}, + {0x9730f739, 0xffffd857ffffdd2d}, + {0x9730f830, 0xffffd857ffffdd2e}, + {0x9730f831, 0xffffd857ffffdd2f}, + {0x9730f832, 0xffffd857ffffdd30}, + {0x9730f833, 0xffffd857ffffdd31}, + {0x9730f834, 0xffffd857ffffdd32}, + {0x9730f835, 0xffffd857ffffdd33}, + {0x9730f836, 0xffffd857ffffdd34}, + {0x9730f837, 0xffffd857ffffdd35}, + {0x9730f838, 0xffffd857ffffdd36}, + {0x9730f839, 0xffffd857ffffdd37}, + {0x9730f930, 0xffffd857ffffdd38}, + {0x9730f931, 0xffffd857ffffdd39}, + {0x9730f932, 0xffffd857ffffdd3a}, + {0x9730f933, 0xffffd857ffffdd3b}, + {0x9730f934, 0xffffd857ffffdd3c}, + {0x9730f935, 0xffffd857ffffdd3d}, + {0x9730f936, 0xffffd857ffffdd3e}, + {0x9730f937, 0xffffd857ffffdd3f}, + {0x9730f938, 0xffffd857ffffdd40}, + {0x9730f939, 0xffffd857ffffdd41}, + {0x9730fa30, 0xffffd857ffffdd42}, + {0x9730fa31, 0xffffd857ffffdd43}, + {0x9730fa32, 0xffffd857ffffdd44}, + {0x9730fa33, 0xffffd857ffffdd45}, + {0x9730fa34, 0xffffd857ffffdd46}, + {0x9730fa35, 0xffffd857ffffdd47}, + {0x9730fa36, 0xffffd857ffffdd48}, + {0x9730fa37, 0xffffd857ffffdd49}, + {0x9730fa38, 0xffffd857ffffdd4a}, + {0x9730fa39, 0xffffd857ffffdd4b}, + {0x9730fb30, 0xffffd857ffffdd4c}, + {0x9730fb31, 0xffffd857ffffdd4d}, + {0x9730fb32, 0xffffd857ffffdd4e}, + {0x9730fb33, 0xffffd857ffffdd4f}, + {0x9730fb34, 0xffffd857ffffdd50}, + {0x9730fb35, 0xffffd857ffffdd51}, + {0x9730fb36, 0xffffd857ffffdd52}, + {0x9730fb37, 0xffffd857ffffdd53}, + {0x9730fb38, 0xffffd857ffffdd54}, + {0x9730fb39, 0xffffd857ffffdd55}, + {0x9730fc30, 0xffffd857ffffdd56}, + {0x9730fc31, 0xffffd857ffffdd57}, + {0x9730fc32, 0xffffd857ffffdd58}, + {0x9730fc33, 0xffffd857ffffdd59}, + {0x9730fc34, 0xffffd857ffffdd5a}, + {0x9730fc35, 0xffffd857ffffdd5b}, + {0x9730fc36, 0xffffd857ffffdd5c}, + {0x9730fc37, 0xffffd857ffffdd5d}, + {0x9730fc38, 0xffffd857ffffdd5e}, + {0x9730fc39, 0xffffd857ffffdd5f}, + {0x9730fd30, 0xffffd857ffffdd60}, + {0x9730fd31, 0xffffd857ffffdd61}, + {0x9730fd32, 0xffffd857ffffdd62}, + {0x9730fd33, 0xffffd857ffffdd63}, + {0x9730fd34, 0xffffd857ffffdd64}, + {0x9730fd35, 0xffffd857ffffdd65}, + {0x9730fd36, 0xffffd857ffffdd66}, + {0x9730fd37, 0xffffd857ffffdd67}, + {0x9730fd38, 0xffffd857ffffdd68}, + {0x9730fd39, 0xffffd857ffffdd69}, + {0x9730fe30, 0xffffd857ffffdd6a}, + {0x9730fe31, 0xffffd857ffffdd6b}, + {0x9730fe32, 0xffffd857ffffdd6c}, + {0x9730fe33, 0xffffd857ffffdd6d}, + {0x9730fe34, 0xffffd857ffffdd6e}, + {0x9730fe35, 0xffffd857ffffdd6f}, + {0x9730fe36, 0xffffd857ffffdd70}, + {0x9730fe37, 0xffffd857ffffdd71}, + {0x9730fe38, 0xffffd857ffffdd72}, + {0x9730fe39, 0xffffd857ffffdd73}, + {0x97318130, 0xffffd857ffffdd74}, + {0x97318131, 0xffffd857ffffdd75}, + {0x97318132, 0xffffd857ffffdd76}, + {0x97318133, 0xffffd857ffffdd77}, + {0x97318134, 0xffffd857ffffdd78}, + {0x97318135, 0xffffd857ffffdd79}, + {0x97318136, 0xffffd857ffffdd7a}, + {0x97318137, 0xffffd857ffffdd7b}, + {0x97318138, 0xffffd857ffffdd7c}, + {0x97318139, 0xffffd857ffffdd7d}, + {0x97318230, 0xffffd857ffffdd7e}, + {0x97318231, 0xffffd857ffffdd7f}, + {0x97318232, 0xffffd857ffffdd80}, + {0x97318233, 0xffffd857ffffdd81}, + {0x97318234, 0xffffd857ffffdd82}, + {0x97318235, 0xffffd857ffffdd83}, + {0x97318236, 0xffffd857ffffdd84}, + {0x97318237, 0xffffd857ffffdd85}, + {0x97318238, 0xffffd857ffffdd86}, + {0x97318239, 0xffffd857ffffdd87}, + {0x97318330, 0xffffd857ffffdd88}, + {0x97318331, 0xffffd857ffffdd89}, + {0x97318332, 0xffffd857ffffdd8a}, + {0x97318333, 0xffffd857ffffdd8b}, + {0x97318334, 0xffffd857ffffdd8c}, + {0x97318335, 0xffffd857ffffdd8d}, + {0x97318336, 0xffffd857ffffdd8e}, + {0x97318337, 0xffffd857ffffdd8f}, + {0x97318338, 0xffffd857ffffdd90}, + {0x97318339, 0xffffd857ffffdd91}, + {0x97318430, 0xffffd857ffffdd92}, + {0x97318431, 0xffffd857ffffdd93}, + {0x97318432, 0xffffd857ffffdd94}, + {0x97318433, 0xffffd857ffffdd95}, + {0x97318434, 0xffffd857ffffdd96}, + {0x97318435, 0xffffd857ffffdd97}, + {0x97318436, 0xffffd857ffffdd98}, + {0x97318437, 0xffffd857ffffdd99}, + {0x97318438, 0xffffd857ffffdd9a}, + {0x97318439, 0xffffd857ffffdd9b}, + {0x97318530, 0xffffd857ffffdd9c}, + {0x97318531, 0xffffd857ffffdd9d}, + {0x97318532, 0xffffd857ffffdd9e}, + {0x97318533, 0xffffd857ffffdd9f}, + {0x97318534, 0xffffd857ffffdda0}, + {0x97318535, 0xffffd857ffffdda1}, + {0x97318536, 0xffffd857ffffdda2}, + {0x97318537, 0xffffd857ffffdda3}, + {0x97318538, 0xffffd857ffffdda4}, + {0x97318539, 0xffffd857ffffdda5}, + {0x97318630, 0xffffd857ffffdda6}, + {0x97318631, 0xffffd857ffffdda7}, + {0x97318632, 0xffffd857ffffdda8}, + {0x97318633, 0xffffd857ffffdda9}, + {0x97318634, 0xffffd857ffffddaa}, + {0x97318635, 0xffffd857ffffddab}, + {0x97318636, 0xffffd857ffffddac}, + {0x97318637, 0xffffd857ffffddad}, + {0x97318638, 0xffffd857ffffddae}, + {0x97318639, 0xffffd857ffffddaf}, + {0x97318730, 0xffffd857ffffddb0}, + {0x97318731, 0xffffd857ffffddb1}, + {0x97318732, 0xffffd857ffffddb2}, + {0x97318733, 0xffffd857ffffddb3}, + {0x97318734, 0xffffd857ffffddb4}, + {0x97318735, 0xffffd857ffffddb5}, + {0x97318736, 0xffffd857ffffddb6}, + {0x97318737, 0xffffd857ffffddb7}, + {0x97318738, 0xffffd857ffffddb8}, + {0x97318739, 0xffffd857ffffddb9}, + {0x97318830, 0xffffd857ffffddba}, + {0x97318831, 0xffffd857ffffddbb}, + {0x97318832, 0xffffd857ffffddbc}, + {0x97318833, 0xffffd857ffffddbd}, + {0x97318834, 0xffffd857ffffddbe}, + {0x97318835, 0xffffd857ffffddbf}, + {0x97318836, 0xffffd857ffffddc0}, + {0x97318837, 0xffffd857ffffddc1}, + {0x97318838, 0xffffd857ffffddc2}, + {0x97318839, 0xffffd857ffffddc3}, + {0x97318930, 0xffffd857ffffddc4}, + {0x97318931, 0xffffd857ffffddc5}, + {0x97318932, 0xffffd857ffffddc6}, + {0x97318933, 0xffffd857ffffddc7}, + {0x97318934, 0xffffd857ffffddc8}, + {0x97318935, 0xffffd857ffffddc9}, + {0x97318936, 0xffffd857ffffddca}, + {0x97318937, 0xffffd857ffffddcb}, + {0x97318938, 0xffffd857ffffddcc}, + {0x97318939, 0xffffd857ffffddcd}, + {0x97318a30, 0xffffd857ffffddce}, + {0x97318a31, 0xffffd857ffffddcf}, + {0x97318a32, 0xffffd857ffffddd0}, + {0x97318a33, 0xffffd857ffffddd1}, + {0x97318a34, 0xffffd857ffffddd2}, + {0x97318a35, 0xffffd857ffffddd3}, + {0x97318a36, 0xffffd857ffffddd4}, + {0x97318a37, 0xffffd857ffffddd5}, + {0x97318a38, 0xffffd857ffffddd6}, + {0x97318a39, 0xffffd857ffffddd7}, + {0x97318b30, 0xffffd857ffffddd8}, + {0x97318b31, 0xffffd857ffffddd9}, + {0x97318b32, 0xffffd857ffffddda}, + {0x97318b33, 0xffffd857ffffdddb}, + {0x97318b34, 0xffffd857ffffdddc}, + {0x97318b35, 0xffffd857ffffdddd}, + {0x97318b36, 0xffffd857ffffddde}, + {0x97318b37, 0xffffd857ffffdddf}, + {0x97318b38, 0xffffd857ffffdde0}, + {0x97318b39, 0xffffd857ffffdde1}, + {0x97318c30, 0xffffd857ffffdde2}, + {0x97318c31, 0xffffd857ffffdde3}, + {0x97318c32, 0xffffd857ffffdde4}, + {0x97318c33, 0xffffd857ffffdde5}, + {0x97318c34, 0xffffd857ffffdde6}, + {0x97318c35, 0xffffd857ffffdde7}, + {0x97318c36, 0xffffd857ffffdde8}, + {0x97318c37, 0xffffd857ffffdde9}, + {0x97318c38, 0xffffd857ffffddea}, + {0x97318c39, 0xffffd857ffffddeb}, + {0x97318d30, 0xffffd857ffffddec}, + {0x97318d31, 0xffffd857ffffdded}, + {0x97318d32, 0xffffd857ffffddee}, + {0x97318d33, 0xffffd857ffffddef}, + {0x97318d34, 0xffffd857ffffddf0}, + {0x97318d35, 0xffffd857ffffddf1}, + {0x97318d36, 0xffffd857ffffddf2}, + {0x97318d37, 0xffffd857ffffddf3}, + {0x97318d38, 0xffffd857ffffddf4}, + {0x97318d39, 0xffffd857ffffddf5}, + {0x97318e30, 0xffffd857ffffddf6}, + {0x97318e31, 0xffffd857ffffddf7}, + {0x97318e32, 0xffffd857ffffddf8}, + {0x97318e33, 0xffffd857ffffddf9}, + {0x97318e34, 0xffffd857ffffddfa}, + {0x97318e35, 0xffffd857ffffddfb}, + {0x97318e36, 0xffffd857ffffddfc}, + {0x97318e37, 0xffffd857ffffddfd}, + {0x97318e38, 0xffffd857ffffddfe}, + {0x97318e39, 0xffffd857ffffddff}, + {0x97318f30, 0xffffd857ffffde00}, + {0x97318f31, 0xffffd857ffffde01}, + {0x97318f32, 0xffffd857ffffde02}, + {0x97318f33, 0xffffd857ffffde03}, + {0x97318f34, 0xffffd857ffffde04}, + {0x97318f35, 0xffffd857ffffde05}, + {0x97318f36, 0xffffd857ffffde06}, + {0x97318f37, 0xffffd857ffffde07}, + {0x97318f38, 0xffffd857ffffde08}, + {0x97318f39, 0xffffd857ffffde09}, + {0x97319030, 0xffffd857ffffde0a}, + {0x97319031, 0xffffd857ffffde0b}, + {0x97319032, 0xffffd857ffffde0c}, + {0x97319033, 0xffffd857ffffde0d}, + {0x97319034, 0xffffd857ffffde0e}, + {0x97319035, 0xffffd857ffffde0f}, + {0x97319036, 0xffffd857ffffde10}, + {0x97319037, 0xffffd857ffffde11}, + {0x97319038, 0xffffd857ffffde12}, + {0x97319039, 0xffffd857ffffde13}, + {0x97319130, 0xffffd857ffffde14}, + {0x97319131, 0xffffd857ffffde15}, + {0x97319132, 0xffffd857ffffde16}, + {0x97319133, 0xffffd857ffffde17}, + {0x97319134, 0xffffd857ffffde18}, + {0x97319135, 0xffffd857ffffde19}, + {0x97319136, 0xffffd857ffffde1a}, + {0x97319137, 0xffffd857ffffde1b}, + {0x97319138, 0xffffd857ffffde1c}, + {0x97319139, 0xffffd857ffffde1d}, + {0x97319230, 0xffffd857ffffde1e}, + {0x97319231, 0xffffd857ffffde1f}, + {0x97319232, 0xffffd857ffffde20}, + {0x97319233, 0xffffd857ffffde21}, + {0x97319234, 0xffffd857ffffde22}, + {0x97319235, 0xffffd857ffffde23}, + {0x97319236, 0xffffd857ffffde24}, + {0x97319237, 0xffffd857ffffde25}, + {0x97319238, 0xffffd857ffffde26}, + {0x97319239, 0xffffd857ffffde27}, + {0x97319330, 0xffffd857ffffde28}, + {0x97319331, 0xffffd857ffffde29}, + {0x97319332, 0xffffd857ffffde2a}, + {0x97319333, 0xffffd857ffffde2b}, + {0x97319334, 0xffffd857ffffde2c}, + {0x97319335, 0xffffd857ffffde2d}, + {0x97319336, 0xffffd857ffffde2e}, + {0x97319337, 0xffffd857ffffde2f}, + {0x97319338, 0xffffd857ffffde30}, + {0x97319339, 0xffffd857ffffde31}, + {0x97319430, 0xffffd857ffffde32}, + {0x97319431, 0xffffd857ffffde33}, + {0x97319432, 0xffffd857ffffde34}, + {0x97319433, 0xffffd857ffffde35}, + {0x97319434, 0xffffd857ffffde36}, + {0x97319435, 0xffffd857ffffde37}, + {0x97319436, 0xffffd857ffffde38}, + {0x97319437, 0xffffd857ffffde39}, + {0x97319438, 0xffffd857ffffde3a}, + {0x97319439, 0xffffd857ffffde3b}, + {0x97319530, 0xffffd857ffffde3c}, + {0x97319531, 0xffffd857ffffde3d}, + {0x97319532, 0xffffd857ffffde3e}, + {0x97319533, 0xffffd857ffffde3f}, + {0x97319534, 0xffffd857ffffde40}, + {0x97319535, 0xffffd857ffffde41}, + {0x97319536, 0xffffd857ffffde42}, + {0x97319537, 0xffffd857ffffde43}, + {0x97319538, 0xffffd857ffffde44}, + {0x97319539, 0xffffd857ffffde45}, + {0x97319630, 0xffffd857ffffde46}, + {0x97319631, 0xffffd857ffffde47}, + {0x97319632, 0xffffd857ffffde48}, + {0x97319633, 0xffffd857ffffde49}, + {0x97319634, 0xffffd857ffffde4a}, + {0x97319635, 0xffffd857ffffde4b}, + {0x97319636, 0xffffd857ffffde4c}, + {0x97319637, 0xffffd857ffffde4d}, + {0x97319638, 0xffffd857ffffde4e}, + {0x97319639, 0xffffd857ffffde4f}, + {0x97319730, 0xffffd857ffffde50}, + {0x97319731, 0xffffd857ffffde51}, + {0x97319732, 0xffffd857ffffde52}, + {0x97319733, 0xffffd857ffffde53}, + {0x97319734, 0xffffd857ffffde54}, + {0x97319735, 0xffffd857ffffde55}, + {0x97319736, 0xffffd857ffffde56}, + {0x97319737, 0xffffd857ffffde57}, + {0x97319738, 0xffffd857ffffde58}, + {0x97319739, 0xffffd857ffffde59}, + {0x97319830, 0xffffd857ffffde5a}, + {0x97319831, 0xffffd857ffffde5b}, + {0x97319832, 0xffffd857ffffde5c}, + {0x97319833, 0xffffd857ffffde5d}, + {0x97319834, 0xffffd857ffffde5e}, + {0x97319835, 0xffffd857ffffde5f}, + {0x97319836, 0xffffd857ffffde60}, + {0x97319837, 0xffffd857ffffde61}, + {0x97319838, 0xffffd857ffffde62}, + {0x97319839, 0xffffd857ffffde63}, + {0x97319930, 0xffffd857ffffde64}, + {0x97319931, 0xffffd857ffffde65}, + {0x97319932, 0xffffd857ffffde66}, + {0x97319933, 0xffffd857ffffde67}, + {0x97319934, 0xffffd857ffffde68}, + {0x97319935, 0xffffd857ffffde69}, + {0x97319936, 0xffffd857ffffde6a}, + {0x97319937, 0xffffd857ffffde6b}, + {0x97319938, 0xffffd857ffffde6c}, + {0x97319939, 0xffffd857ffffde6d}, + {0x97319a30, 0xffffd857ffffde6e}, + {0x97319a31, 0xffffd857ffffde6f}, + {0x97319a32, 0xffffd857ffffde70}, + {0x97319a33, 0xffffd857ffffde71}, + {0x97319a34, 0xffffd857ffffde72}, + {0x97319a35, 0xffffd857ffffde73}, + {0x97319a36, 0xffffd857ffffde74}, + {0x97319a37, 0xffffd857ffffde75}, + {0x97319a38, 0xffffd857ffffde76}, + {0x97319a39, 0xffffd857ffffde77}, + {0x97319b30, 0xffffd857ffffde78}, + {0x97319b31, 0xffffd857ffffde79}, + {0x97319b32, 0xffffd857ffffde7a}, + {0x97319b33, 0xffffd857ffffde7b}, + {0x97319b34, 0xffffd857ffffde7c}, + {0x97319b35, 0xffffd857ffffde7d}, + {0x97319b36, 0xffffd857ffffde7e}, + {0x97319b37, 0xffffd857ffffde7f}, + {0x97319b38, 0xffffd857ffffde80}, + {0x97319b39, 0xffffd857ffffde81}, + {0x97319c30, 0xffffd857ffffde82}, + {0x97319c31, 0xffffd857ffffde83}, + {0x97319c32, 0xffffd857ffffde84}, + {0x97319c33, 0xffffd857ffffde85}, + {0x97319c34, 0xffffd857ffffde86}, + {0x97319c35, 0xffffd857ffffde87}, + {0x97319c36, 0xffffd857ffffde88}, + {0x97319c37, 0xffffd857ffffde89}, + {0x97319c38, 0xffffd857ffffde8a}, + {0x97319c39, 0xffffd857ffffde8b}, + {0x97319d30, 0xffffd857ffffde8c}, + {0x97319d31, 0xffffd857ffffde8d}, + {0x97319d32, 0xffffd857ffffde8e}, + {0x97319d33, 0xffffd857ffffde8f}, + {0x97319d34, 0xffffd857ffffde90}, + {0x97319d35, 0xffffd857ffffde91}, + {0x97319d36, 0xffffd857ffffde92}, + {0x97319d37, 0xffffd857ffffde93}, + {0x97319d38, 0xffffd857ffffde94}, + {0x97319d39, 0xffffd857ffffde95}, + {0x97319e30, 0xffffd857ffffde96}, + {0x97319e31, 0xffffd857ffffde97}, + {0x97319e32, 0xffffd857ffffde98}, + {0x97319e33, 0xffffd857ffffde99}, + {0x97319e34, 0xffffd857ffffde9a}, + {0x97319e35, 0xffffd857ffffde9b}, + {0x97319e36, 0xffffd857ffffde9c}, + {0x97319e37, 0xffffd857ffffde9d}, + {0x97319e38, 0xffffd857ffffde9e}, + {0x97319e39, 0xffffd857ffffde9f}, + {0x97319f30, 0xffffd857ffffdea0}, + {0x97319f31, 0xffffd857ffffdea1}, + {0x97319f32, 0xffffd857ffffdea2}, + {0x97319f33, 0xffffd857ffffdea3}, + {0x97319f34, 0xffffd857ffffdea4}, + {0x97319f35, 0xffffd857ffffdea5}, + {0x97319f36, 0xffffd857ffffdea6}, + {0x97319f37, 0xffffd857ffffdea7}, + {0x97319f38, 0xffffd857ffffdea8}, + {0x97319f39, 0xffffd857ffffdea9}, + {0x9731a030, 0xffffd857ffffdeaa}, + {0x9731a031, 0xffffd857ffffdeab}, + {0x9731a032, 0xffffd857ffffdeac}, + {0x9731a033, 0xffffd857ffffdead}, + {0x9731a034, 0xffffd857ffffdeae}, + {0x9731a035, 0xffffd857ffffdeaf}, + {0x9731a036, 0xffffd857ffffdeb0}, + {0x9731a037, 0xffffd857ffffdeb1}, + {0x9731a038, 0xffffd857ffffdeb2}, + {0x9731a039, 0xffffd857ffffdeb3}, + {0x9731a130, 0xffffd857ffffdeb4}, + {0x9731a131, 0xffffd857ffffdeb5}, + {0x9731a132, 0xffffd857ffffdeb6}, + {0x9731a133, 0xffffd857ffffdeb7}, + {0x9731a134, 0xffffd857ffffdeb8}, + {0x9731a135, 0xffffd857ffffdeb9}, + {0x9731a136, 0xffffd857ffffdeba}, + {0x9731a137, 0xffffd857ffffdebb}, + {0x9731a138, 0xffffd857ffffdebc}, + {0x9731a139, 0xffffd857ffffdebd}, + {0x9731a230, 0xffffd857ffffdebe}, + {0x9731a231, 0xffffd857ffffdebf}, + {0x9731a232, 0xffffd857ffffdec0}, + {0x9731a233, 0xffffd857ffffdec1}, + {0x9731a234, 0xffffd857ffffdec2}, + {0x9731a235, 0xffffd857ffffdec3}, + {0x9731a236, 0xffffd857ffffdec4}, + {0x9731a237, 0xffffd857ffffdec5}, + {0x9731a238, 0xffffd857ffffdec6}, + {0x9731a239, 0xffffd857ffffdec7}, + {0x9731a330, 0xffffd857ffffdec8}, + {0x9731a331, 0xffffd857ffffdec9}, + {0x9731a332, 0xffffd857ffffdeca}, + {0x9731a333, 0xffffd857ffffdecb}, + {0x9731a334, 0xffffd857ffffdecc}, + {0x9731a335, 0xffffd857ffffdecd}, + {0x9731a336, 0xffffd857ffffdece}, + {0x9731a337, 0xffffd857ffffdecf}, + {0x9731a338, 0xffffd857ffffded0}, + {0x9731a339, 0xffffd857ffffded1}, + {0x9731a430, 0xffffd857ffffded2}, + {0x9731a431, 0xffffd857ffffded3}, + {0x9731a432, 0xffffd857ffffded4}, + {0x9731a433, 0xffffd857ffffded5}, + {0x9731a434, 0xffffd857ffffded6}, + {0x9731a435, 0xffffd857ffffded7}, + {0x9731a436, 0xffffd857ffffded8}, + {0x9731a437, 0xffffd857ffffded9}, + {0x9731a438, 0xffffd857ffffdeda}, + {0x9731a439, 0xffffd857ffffdedb}, + {0x9731a530, 0xffffd857ffffdedc}, + {0x9731a531, 0xffffd857ffffdedd}, + {0x9731a532, 0xffffd857ffffdede}, + {0x9731a533, 0xffffd857ffffdedf}, + {0x9731a534, 0xffffd857ffffdee0}, + {0x9731a535, 0xffffd857ffffdee1}, + {0x9731a536, 0xffffd857ffffdee2}, + {0x9731a537, 0xffffd857ffffdee3}, + {0x9731a538, 0xffffd857ffffdee4}, + {0x9731a539, 0xffffd857ffffdee5}, + {0x9731a630, 0xffffd857ffffdee6}, + {0x9731a631, 0xffffd857ffffdee7}, + {0x9731a632, 0xffffd857ffffdee8}, + {0x9731a633, 0xffffd857ffffdee9}, + {0x9731a634, 0xffffd857ffffdeea}, + {0x9731a635, 0xffffd857ffffdeeb}, + {0x9731a636, 0xffffd857ffffdeec}, + {0x9731a637, 0xffffd857ffffdeed}, + {0x9731a638, 0xffffd857ffffdeee}, + {0x9731a639, 0xffffd857ffffdeef}, + {0x9731a730, 0xffffd857ffffdef0}, + {0x9731a731, 0xffffd857ffffdef1}, + {0x9731a732, 0xffffd857ffffdef2}, + {0x9731a733, 0xffffd857ffffdef3}, + {0x9731a734, 0xffffd857ffffdef4}, + {0x9731a735, 0xffffd857ffffdef5}, + {0x9731a736, 0xffffd857ffffdef6}, + {0x9731a737, 0xffffd857ffffdef7}, + {0x9731a738, 0xffffd857ffffdef8}, + {0x9731a739, 0xffffd857ffffdef9}, + {0x9731a830, 0xffffd857ffffdefa}, + {0x9731a831, 0xffffd857ffffdefb}, + {0x9731a832, 0xffffd857ffffdefc}, + {0x9731a833, 0xffffd857ffffdefd}, + {0x9731a834, 0xffffd857ffffdefe}, + {0x9731a835, 0xffffd857ffffdeff}, + {0x9731a836, 0xffffd857ffffdf00}, + {0x9731a837, 0xffffd857ffffdf01}, + {0x9731a838, 0xffffd857ffffdf02}, + {0x9731a839, 0xffffd857ffffdf03}, + {0x9731a930, 0xffffd857ffffdf04}, + {0x9731a931, 0xffffd857ffffdf05}, + {0x9731a932, 0xffffd857ffffdf06}, + {0x9731a933, 0xffffd857ffffdf07}, + {0x9731a934, 0xffffd857ffffdf08}, + {0x9731a935, 0xffffd857ffffdf09}, + {0x9731a936, 0xffffd857ffffdf0a}, + {0x9731a937, 0xffffd857ffffdf0b}, + {0x9731a938, 0xffffd857ffffdf0c}, + {0x9731a939, 0xffffd857ffffdf0d}, + {0x9731aa30, 0xffffd857ffffdf0e}, + {0x9731aa31, 0xffffd857ffffdf0f}, + {0x9731aa32, 0xffffd857ffffdf10}, + {0x9731aa33, 0xffffd857ffffdf11}, + {0x9731aa34, 0xffffd857ffffdf12}, + {0x9731aa35, 0xffffd857ffffdf13}, + {0x9731aa36, 0xffffd857ffffdf14}, + {0x9731aa37, 0xffffd857ffffdf15}, + {0x9731aa38, 0xffffd857ffffdf16}, + {0x9731aa39, 0xffffd857ffffdf17}, + {0x9731ab30, 0xffffd857ffffdf18}, + {0x9731ab31, 0xffffd857ffffdf19}, + {0x9731ab32, 0xffffd857ffffdf1a}, + {0x9731ab33, 0xffffd857ffffdf1b}, + {0x9731ab34, 0xffffd857ffffdf1c}, + {0x9731ab35, 0xffffd857ffffdf1d}, + {0x9731ab36, 0xffffd857ffffdf1e}, + {0x9731ab37, 0xffffd857ffffdf1f}, + {0x9731ab38, 0xffffd857ffffdf20}, + {0x9731ab39, 0xffffd857ffffdf21}, + {0x9731ac30, 0xffffd857ffffdf22}, + {0x9731ac31, 0xffffd857ffffdf23}, + {0x9731ac32, 0xffffd857ffffdf24}, + {0x9731ac33, 0xffffd857ffffdf25}, + {0x9731ac34, 0xffffd857ffffdf26}, + {0x9731ac35, 0xffffd857ffffdf27}, + {0x9731ac36, 0xffffd857ffffdf28}, + {0x9731ac37, 0xffffd857ffffdf29}, + {0x9731ac38, 0xffffd857ffffdf2a}, + {0x9731ac39, 0xffffd857ffffdf2b}, + {0x9731ad30, 0xffffd857ffffdf2c}, + {0x9731ad31, 0xffffd857ffffdf2d}, + {0x9731ad32, 0xffffd857ffffdf2e}, + {0x9731ad33, 0xffffd857ffffdf2f}, + {0x9731ad34, 0xffffd857ffffdf30}, + {0x9731ad35, 0xffffd857ffffdf31}, + {0x9731ad36, 0xffffd857ffffdf32}, + {0x9731ad37, 0xffffd857ffffdf33}, + {0x9731ad38, 0xffffd857ffffdf34}, + {0x9731ad39, 0xffffd857ffffdf35}, + {0x9731ae30, 0xffffd857ffffdf36}, + {0x9731ae31, 0xffffd857ffffdf37}, + {0x9731ae32, 0xffffd857ffffdf38}, + {0x9731ae33, 0xffffd857ffffdf39}, + {0x9731ae34, 0xffffd857ffffdf3a}, + {0x9731ae35, 0xffffd857ffffdf3b}, + {0x9731ae36, 0xffffd857ffffdf3c}, + {0x9731ae37, 0xffffd857ffffdf3d}, + {0x9731ae38, 0xffffd857ffffdf3e}, + {0x9731ae39, 0xffffd857ffffdf3f}, + {0x9731af30, 0xffffd857ffffdf40}, + {0x9731af31, 0xffffd857ffffdf41}, + {0x9731af32, 0xffffd857ffffdf42}, + {0x9731af33, 0xffffd857ffffdf43}, + {0x9731af34, 0xffffd857ffffdf44}, + {0x9731af35, 0xffffd857ffffdf45}, + {0x9731af36, 0xffffd857ffffdf46}, + {0x9731af37, 0xffffd857ffffdf47}, + {0x9731af38, 0xffffd857ffffdf48}, + {0x9731af39, 0xffffd857ffffdf49}, + {0x9731b030, 0xffffd857ffffdf4a}, + {0x9731b031, 0xffffd857ffffdf4b}, + {0x9731b032, 0xffffd857ffffdf4c}, + {0x9731b033, 0xffffd857ffffdf4d}, + {0x9731b034, 0xffffd857ffffdf4e}, + {0x9731b035, 0xffffd857ffffdf4f}, + {0x9731b036, 0xffffd857ffffdf50}, + {0x9731b037, 0xffffd857ffffdf51}, + {0x9731b038, 0xffffd857ffffdf52}, + {0x9731b039, 0xffffd857ffffdf53}, + {0x9731b130, 0xffffd857ffffdf54}, + {0x9731b131, 0xffffd857ffffdf55}, + {0x9731b132, 0xffffd857ffffdf56}, + {0x9731b133, 0xffffd857ffffdf57}, + {0x9731b134, 0xffffd857ffffdf58}, + {0x9731b135, 0xffffd857ffffdf59}, + {0x9731b136, 0xffffd857ffffdf5a}, + {0x9731b137, 0xffffd857ffffdf5b}, + {0x9731b138, 0xffffd857ffffdf5c}, + {0x9731b139, 0xffffd857ffffdf5d}, + {0x9731b230, 0xffffd857ffffdf5e}, + {0x9731b231, 0xffffd857ffffdf5f}, + {0x9731b232, 0xffffd857ffffdf60}, + {0x9731b233, 0xffffd857ffffdf61}, + {0x9731b234, 0xffffd857ffffdf62}, + {0x9731b235, 0xffffd857ffffdf63}, + {0x9731b236, 0xffffd857ffffdf64}, + {0x9731b237, 0xffffd857ffffdf65}, + {0x9731b238, 0xffffd857ffffdf66}, + {0x9731b239, 0xffffd857ffffdf67}, + {0x9731b330, 0xffffd857ffffdf68}, + {0x9731b331, 0xffffd857ffffdf69}, + {0x9731b332, 0xffffd857ffffdf6a}, + {0x9731b333, 0xffffd857ffffdf6b}, + {0x9731b334, 0xffffd857ffffdf6c}, + {0x9731b335, 0xffffd857ffffdf6d}, + {0x9731b336, 0xffffd857ffffdf6e}, + {0x9731b337, 0xffffd857ffffdf6f}, + {0x9731b338, 0xffffd857ffffdf70}, + {0x9731b339, 0xffffd857ffffdf71}, + {0x9731b430, 0xffffd857ffffdf72}, + {0x9731b431, 0xffffd857ffffdf73}, + {0x9731b432, 0xffffd857ffffdf74}, + {0x9731b433, 0xffffd857ffffdf75}, + {0x9731b434, 0xffffd857ffffdf76}, + {0x9731b435, 0xffffd857ffffdf77}, + {0x9731b436, 0xffffd857ffffdf78}, + {0x9731b437, 0xffffd857ffffdf79}, + {0x9731b438, 0xffffd857ffffdf7a}, + {0x9731b439, 0xffffd857ffffdf7b}, + {0x9731b530, 0xffffd857ffffdf7c}, + {0x9731b531, 0xffffd857ffffdf7d}, + {0x9731b532, 0xffffd857ffffdf7e}, + {0x9731b533, 0xffffd857ffffdf7f}, + {0x9731b534, 0xffffd857ffffdf80}, + {0x9731b535, 0xffffd857ffffdf81}, + {0x9731b536, 0xffffd857ffffdf82}, + {0x9731b537, 0xffffd857ffffdf83}, + {0x9731b538, 0xffffd857ffffdf84}, + {0x9731b539, 0xffffd857ffffdf85}, + {0x9731b630, 0xffffd857ffffdf86}, + {0x9731b631, 0xffffd857ffffdf87}, + {0x9731b632, 0xffffd857ffffdf88}, + {0x9731b633, 0xffffd857ffffdf89}, + {0x9731b634, 0xffffd857ffffdf8a}, + {0x9731b635, 0xffffd857ffffdf8b}, + {0x9731b636, 0xffffd857ffffdf8c}, + {0x9731b637, 0xffffd857ffffdf8d}, + {0x9731b638, 0xffffd857ffffdf8e}, + {0x9731b639, 0xffffd857ffffdf8f}, + {0x9731b730, 0xffffd857ffffdf90}, + {0x9731b731, 0xffffd857ffffdf91}, + {0x9731b732, 0xffffd857ffffdf92}, + {0x9731b733, 0xffffd857ffffdf93}, + {0x9731b734, 0xffffd857ffffdf94}, + {0x9731b735, 0xffffd857ffffdf95}, + {0x9731b736, 0xffffd857ffffdf96}, + {0x9731b737, 0xffffd857ffffdf97}, + {0x9731b738, 0xffffd857ffffdf98}, + {0x9731b739, 0xffffd857ffffdf99}, + {0x9731b830, 0xffffd857ffffdf9a}, + {0x9731b831, 0xffffd857ffffdf9b}, + {0x9731b832, 0xffffd857ffffdf9c}, + {0x9731b833, 0xffffd857ffffdf9d}, + {0x9731b834, 0xffffd857ffffdf9e}, + {0x9731b835, 0xffffd857ffffdf9f}, + {0x9731b836, 0xffffd857ffffdfa0}, + {0x9731b837, 0xffffd857ffffdfa1}, + {0x9731b838, 0xffffd857ffffdfa2}, + {0x9731b839, 0xffffd857ffffdfa3}, + {0x9731b930, 0xffffd857ffffdfa4}, + {0x9731b931, 0xffffd857ffffdfa5}, + {0x9731b932, 0xffffd857ffffdfa6}, + {0x9731b933, 0xffffd857ffffdfa7}, + {0x9731b934, 0xffffd857ffffdfa8}, + {0x9731b935, 0xffffd857ffffdfa9}, + {0x9731b936, 0xffffd857ffffdfaa}, + {0x9731b937, 0xffffd857ffffdfab}, + {0x9731b938, 0xffffd857ffffdfac}, + {0x9731b939, 0xffffd857ffffdfad}, + {0x9731ba30, 0xffffd857ffffdfae}, + {0x9731ba31, 0xffffd857ffffdfaf}, + {0x9731ba32, 0xffffd857ffffdfb0}, + {0x9731ba33, 0xffffd857ffffdfb1}, + {0x9731ba34, 0xffffd857ffffdfb2}, + {0x9731ba35, 0xffffd857ffffdfb3}, + {0x9731ba36, 0xffffd857ffffdfb4}, + {0x9731ba37, 0xffffd857ffffdfb5}, + {0x9731ba38, 0xffffd857ffffdfb6}, + {0x9731ba39, 0xffffd857ffffdfb7}, + {0x9731bb30, 0xffffd857ffffdfb8}, + {0x9731bb31, 0xffffd857ffffdfb9}, + {0x9731bb32, 0xffffd857ffffdfba}, + {0x9731bb33, 0xffffd857ffffdfbb}, + {0x9731bb34, 0xffffd857ffffdfbc}, + {0x9731bb35, 0xffffd857ffffdfbd}, + {0x9731bb36, 0xffffd857ffffdfbe}, + {0x9731bb37, 0xffffd857ffffdfbf}, + {0x9731bb38, 0xffffd857ffffdfc0}, + {0x9731bb39, 0xffffd857ffffdfc1}, + {0x9731bc30, 0xffffd857ffffdfc2}, + {0x9731bc31, 0xffffd857ffffdfc3}, + {0x9731bc32, 0xffffd857ffffdfc4}, + {0x9731bc33, 0xffffd857ffffdfc5}, + {0x9731bc34, 0xffffd857ffffdfc6}, + {0x9731bc35, 0xffffd857ffffdfc7}, + {0x9731bc36, 0xffffd857ffffdfc8}, + {0x9731bc37, 0xffffd857ffffdfc9}, + {0x9731bc38, 0xffffd857ffffdfca}, + {0x9731bc39, 0xffffd857ffffdfcb}, + {0x9731bd30, 0xffffd857ffffdfcc}, + {0x9731bd31, 0xffffd857ffffdfcd}, + {0x9731bd32, 0xffffd857ffffdfce}, + {0x9731bd33, 0xffffd857ffffdfcf}, + {0x9731bd34, 0xffffd857ffffdfd0}, + {0x9731bd35, 0xffffd857ffffdfd1}, + {0x9731bd36, 0xffffd857ffffdfd2}, + {0x9731bd37, 0xffffd857ffffdfd3}, + {0x9731bd38, 0xffffd857ffffdfd4}, + {0x9731bd39, 0xffffd857ffffdfd5}, + {0x9731be30, 0xffffd857ffffdfd6}, + {0x9731be31, 0xffffd857ffffdfd7}, + {0x9731be32, 0xffffd857ffffdfd8}, + {0x9731be33, 0xffffd857ffffdfd9}, + {0x9731be34, 0xffffd857ffffdfda}, + {0x9731be35, 0xffffd857ffffdfdb}, + {0x9731be36, 0xffffd857ffffdfdc}, + {0x9731be37, 0xffffd857ffffdfdd}, + {0x9731be38, 0xffffd857ffffdfde}, + {0x9731be39, 0xffffd857ffffdfdf}, + {0x9731bf30, 0xffffd857ffffdfe0}, + {0x9731bf31, 0xffffd857ffffdfe1}, + {0x9731bf32, 0xffffd857ffffdfe2}, + {0x9731bf33, 0xffffd857ffffdfe3}, + {0x9731bf34, 0xffffd857ffffdfe4}, + {0x9731bf35, 0xffffd857ffffdfe5}, + {0x9731bf36, 0xffffd857ffffdfe6}, + {0x9731bf37, 0xffffd857ffffdfe7}, + {0x9731bf38, 0xffffd857ffffdfe8}, + {0x9731bf39, 0xffffd857ffffdfe9}, + {0x9731c030, 0xffffd857ffffdfea}, + {0x9731c031, 0xffffd857ffffdfeb}, + {0x9731c032, 0xffffd857ffffdfec}, + {0x9731c033, 0xffffd857ffffdfed}, + {0x9731c034, 0xffffd857ffffdfee}, + {0x9731c035, 0xffffd857ffffdfef}, + {0x9731c036, 0xffffd857ffffdff0}, + {0x9731c037, 0xffffd857ffffdff1}, + {0x9731c038, 0xffffd857ffffdff2}, + {0x9731c039, 0xffffd857ffffdff3}, + {0x9731c130, 0xffffd857ffffdff4}, + {0x9731c131, 0xffffd857ffffdff5}, + {0x9731c132, 0xffffd857ffffdff6}, + {0x9731c133, 0xffffd857ffffdff7}, + {0x9731c134, 0xffffd857ffffdff8}, + {0x9731c135, 0xffffd857ffffdff9}, + {0x9731c136, 0xffffd857ffffdffa}, + {0x9731c137, 0xffffd857ffffdffb}, + {0x9731c138, 0xffffd857ffffdffc}, + {0x9731c139, 0xffffd857ffffdffd}, + {0x9731c230, 0xffffd857ffffdffe}, + {0x9731c231, 0xffffd857ffffdfff}, + {0x9731c232, 0xffffd858ffffdc00}, + {0x9731c233, 0xffffd858ffffdc01}, + {0x9731c234, 0xffffd858ffffdc02}, + {0x9731c235, 0xffffd858ffffdc03}, + {0x9731c236, 0xffffd858ffffdc04}, + {0x9731c237, 0xffffd858ffffdc05}, + {0x9731c238, 0xffffd858ffffdc06}, + {0x9731c239, 0xffffd858ffffdc07}, + {0x9731c330, 0xffffd858ffffdc08}, + {0x9731c331, 0xffffd858ffffdc09}, + {0x9731c332, 0xffffd858ffffdc0a}, + {0x9731c333, 0xffffd858ffffdc0b}, + {0x9731c334, 0xffffd858ffffdc0c}, + {0x9731c335, 0xffffd858ffffdc0d}, + {0x9731c336, 0xffffd858ffffdc0e}, + {0x9731c337, 0xffffd858ffffdc0f}, + {0x9731c338, 0xffffd858ffffdc10}, + {0x9731c339, 0xffffd858ffffdc11}, + {0x9731c430, 0xffffd858ffffdc12}, + {0x9731c431, 0xffffd858ffffdc13}, + {0x9731c432, 0xffffd858ffffdc14}, + {0x9731c433, 0xffffd858ffffdc15}, + {0x9731c434, 0xffffd858ffffdc16}, + {0x9731c435, 0xffffd858ffffdc17}, + {0x9731c436, 0xffffd858ffffdc18}, + {0x9731c437, 0xffffd858ffffdc19}, + {0x9731c438, 0xffffd858ffffdc1a}, + {0x9731c439, 0xffffd858ffffdc1b}, + {0x9731c530, 0xffffd858ffffdc1c}, + {0x9731c531, 0xffffd858ffffdc1d}, + {0x9731c532, 0xffffd858ffffdc1e}, + {0x9731c533, 0xffffd858ffffdc1f}, + {0x9731c534, 0xffffd858ffffdc20}, + {0x9731c535, 0xffffd858ffffdc21}, + {0x9731c536, 0xffffd858ffffdc22}, + {0x9731c537, 0xffffd858ffffdc23}, + {0x9731c538, 0xffffd858ffffdc24}, + {0x9731c539, 0xffffd858ffffdc25}, + {0x9731c630, 0xffffd858ffffdc26}, + {0x9731c631, 0xffffd858ffffdc27}, + {0x9731c632, 0xffffd858ffffdc28}, + {0x9731c633, 0xffffd858ffffdc29}, + {0x9731c634, 0xffffd858ffffdc2a}, + {0x9731c635, 0xffffd858ffffdc2b}, + {0x9731c636, 0xffffd858ffffdc2c}, + {0x9731c637, 0xffffd858ffffdc2d}, + {0x9731c638, 0xffffd858ffffdc2e}, + {0x9731c639, 0xffffd858ffffdc2f}, + {0x9731c730, 0xffffd858ffffdc30}, + {0x9731c731, 0xffffd858ffffdc31}, + {0x9731c732, 0xffffd858ffffdc32}, + {0x9731c733, 0xffffd858ffffdc33}, + {0x9731c734, 0xffffd858ffffdc34}, + {0x9731c735, 0xffffd858ffffdc35}, + {0x9731c736, 0xffffd858ffffdc36}, + {0x9731c737, 0xffffd858ffffdc37}, + {0x9731c738, 0xffffd858ffffdc38}, + {0x9731c739, 0xffffd858ffffdc39}, + {0x9731c830, 0xffffd858ffffdc3a}, + {0x9731c831, 0xffffd858ffffdc3b}, + {0x9731c832, 0xffffd858ffffdc3c}, + {0x9731c833, 0xffffd858ffffdc3d}, + {0x9731c834, 0xffffd858ffffdc3e}, + {0x9731c835, 0xffffd858ffffdc3f}, + {0x9731c836, 0xffffd858ffffdc40}, + {0x9731c837, 0xffffd858ffffdc41}, + {0x9731c838, 0xffffd858ffffdc42}, + {0x9731c839, 0xffffd858ffffdc43}, + {0x9731c930, 0xffffd858ffffdc44}, + {0x9731c931, 0xffffd858ffffdc45}, + {0x9731c932, 0xffffd858ffffdc46}, + {0x9731c933, 0xffffd858ffffdc47}, + {0x9731c934, 0xffffd858ffffdc48}, + {0x9731c935, 0xffffd858ffffdc49}, + {0x9731c936, 0xffffd858ffffdc4a}, + {0x9731c937, 0xffffd858ffffdc4b}, + {0x9731c938, 0xffffd858ffffdc4c}, + {0x9731c939, 0xffffd858ffffdc4d}, + {0x9731ca30, 0xffffd858ffffdc4e}, + {0x9731ca31, 0xffffd858ffffdc4f}, + {0x9731ca32, 0xffffd858ffffdc50}, + {0x9731ca33, 0xffffd858ffffdc51}, + {0x9731ca34, 0xffffd858ffffdc52}, + {0x9731ca35, 0xffffd858ffffdc53}, + {0x9731ca36, 0xffffd858ffffdc54}, + {0x9731ca37, 0xffffd858ffffdc55}, + {0x9731ca38, 0xffffd858ffffdc56}, + {0x9731ca39, 0xffffd858ffffdc57}, + {0x9731cb30, 0xffffd858ffffdc58}, + {0x9731cb31, 0xffffd858ffffdc59}, + {0x9731cb32, 0xffffd858ffffdc5a}, + {0x9731cb33, 0xffffd858ffffdc5b}, + {0x9731cb34, 0xffffd858ffffdc5c}, + {0x9731cb35, 0xffffd858ffffdc5d}, + {0x9731cb36, 0xffffd858ffffdc5e}, + {0x9731cb37, 0xffffd858ffffdc5f}, + {0x9731cb38, 0xffffd858ffffdc60}, + {0x9731cb39, 0xffffd858ffffdc61}, + {0x9731cc30, 0xffffd858ffffdc62}, + {0x9731cc31, 0xffffd858ffffdc63}, + {0x9731cc32, 0xffffd858ffffdc64}, + {0x9731cc33, 0xffffd858ffffdc65}, + {0x9731cc34, 0xffffd858ffffdc66}, + {0x9731cc35, 0xffffd858ffffdc67}, + {0x9731cc36, 0xffffd858ffffdc68}, + {0x9731cc37, 0xffffd858ffffdc69}, + {0x9731cc38, 0xffffd858ffffdc6a}, + {0x9731cc39, 0xffffd858ffffdc6b}, + {0x9731cd30, 0xffffd858ffffdc6c}, + {0x9731cd31, 0xffffd858ffffdc6d}, + {0x9731cd32, 0xffffd858ffffdc6e}, + {0x9731cd33, 0xffffd858ffffdc6f}, + {0x9731cd34, 0xffffd858ffffdc70}, + {0x9731cd35, 0xffffd858ffffdc71}, + {0x9731cd36, 0xffffd858ffffdc72}, + {0x9731cd37, 0xffffd858ffffdc73}, + {0x9731cd38, 0xffffd858ffffdc74}, + {0x9731cd39, 0xffffd858ffffdc75}, + {0x9731ce30, 0xffffd858ffffdc76}, + {0x9731ce31, 0xffffd858ffffdc77}, + {0x9731ce32, 0xffffd858ffffdc78}, + {0x9731ce33, 0xffffd858ffffdc79}, + {0x9731ce34, 0xffffd858ffffdc7a}, + {0x9731ce35, 0xffffd858ffffdc7b}, + {0x9731ce36, 0xffffd858ffffdc7c}, + {0x9731ce37, 0xffffd858ffffdc7d}, + {0x9731ce38, 0xffffd858ffffdc7e}, + {0x9731ce39, 0xffffd858ffffdc7f}, + {0x9731cf30, 0xffffd858ffffdc80}, + {0x9731cf31, 0xffffd858ffffdc81}, + {0x9731cf32, 0xffffd858ffffdc82}, + {0x9731cf33, 0xffffd858ffffdc83}, + {0x9731cf34, 0xffffd858ffffdc84}, + {0x9731cf35, 0xffffd858ffffdc85}, + {0x9731cf36, 0xffffd858ffffdc86}, + {0x9731cf37, 0xffffd858ffffdc87}, + {0x9731cf38, 0xffffd858ffffdc88}, + {0x9731cf39, 0xffffd858ffffdc89}, + {0x9731d030, 0xffffd858ffffdc8a}, + {0x9731d031, 0xffffd858ffffdc8b}, + {0x9731d032, 0xffffd858ffffdc8c}, + {0x9731d033, 0xffffd858ffffdc8d}, + {0x9731d034, 0xffffd858ffffdc8e}, + {0x9731d035, 0xffffd858ffffdc8f}, + {0x9731d036, 0xffffd858ffffdc90}, + {0x9731d037, 0xffffd858ffffdc91}, + {0x9731d038, 0xffffd858ffffdc92}, + {0x9731d039, 0xffffd858ffffdc93}, + {0x9731d130, 0xffffd858ffffdc94}, + {0x9731d131, 0xffffd858ffffdc95}, + {0x9731d132, 0xffffd858ffffdc96}, + {0x9731d133, 0xffffd858ffffdc97}, + {0x9731d134, 0xffffd858ffffdc98}, + {0x9731d135, 0xffffd858ffffdc99}, + {0x9731d136, 0xffffd858ffffdc9a}, + {0x9731d137, 0xffffd858ffffdc9b}, + {0x9731d138, 0xffffd858ffffdc9c}, + {0x9731d139, 0xffffd858ffffdc9d}, + {0x9731d230, 0xffffd858ffffdc9e}, + {0x9731d231, 0xffffd858ffffdc9f}, + {0x9731d232, 0xffffd858ffffdca0}, + {0x9731d233, 0xffffd858ffffdca1}, + {0x9731d234, 0xffffd858ffffdca2}, + {0x9731d235, 0xffffd858ffffdca3}, + {0x9731d236, 0xffffd858ffffdca4}, + {0x9731d237, 0xffffd858ffffdca5}, + {0x9731d238, 0xffffd858ffffdca6}, + {0x9731d239, 0xffffd858ffffdca7}, + {0x9731d330, 0xffffd858ffffdca8}, + {0x9731d331, 0xffffd858ffffdca9}, + {0x9731d332, 0xffffd858ffffdcaa}, + {0x9731d333, 0xffffd858ffffdcab}, + {0x9731d334, 0xffffd858ffffdcac}, + {0x9731d335, 0xffffd858ffffdcad}, + {0x9731d336, 0xffffd858ffffdcae}, + {0x9731d337, 0xffffd858ffffdcaf}, + {0x9731d338, 0xffffd858ffffdcb0}, + {0x9731d339, 0xffffd858ffffdcb1}, + {0x9731d430, 0xffffd858ffffdcb2}, + {0x9731d431, 0xffffd858ffffdcb3}, + {0x9731d432, 0xffffd858ffffdcb4}, + {0x9731d433, 0xffffd858ffffdcb5}, + {0x9731d434, 0xffffd858ffffdcb6}, + {0x9731d435, 0xffffd858ffffdcb7}, + {0x9731d436, 0xffffd858ffffdcb8}, + {0x9731d437, 0xffffd858ffffdcb9}, + {0x9731d438, 0xffffd858ffffdcba}, + {0x9731d439, 0xffffd858ffffdcbb}, + {0x9731d530, 0xffffd858ffffdcbc}, + {0x9731d531, 0xffffd858ffffdcbd}, + {0x9731d532, 0xffffd858ffffdcbe}, + {0x9731d533, 0xffffd858ffffdcbf}, + {0x9731d534, 0xffffd858ffffdcc0}, + {0x9731d535, 0xffffd858ffffdcc1}, + {0x9731d536, 0xffffd858ffffdcc2}, + {0x9731d537, 0xffffd858ffffdcc3}, + {0x9731d538, 0xffffd858ffffdcc4}, + {0x9731d539, 0xffffd858ffffdcc5}, + {0x9731d630, 0xffffd858ffffdcc6}, + {0x9731d631, 0xffffd858ffffdcc7}, + {0x9731d632, 0xffffd858ffffdcc8}, + {0x9731d633, 0xffffd858ffffdcc9}, + {0x9731d634, 0xffffd858ffffdcca}, + {0x9731d635, 0xffffd858ffffdccb}, + {0x9731d636, 0xffffd858ffffdccc}, + {0x9731d637, 0xffffd858ffffdccd}, + {0x9731d638, 0xffffd858ffffdcce}, + {0x9731d639, 0xffffd858ffffdccf}, + {0x9731d730, 0xffffd858ffffdcd0}, + {0x9731d731, 0xffffd858ffffdcd1}, + {0x9731d732, 0xffffd858ffffdcd2}, + {0x9731d733, 0xffffd858ffffdcd3}, + {0x9731d734, 0xffffd858ffffdcd4}, + {0x9731d735, 0xffffd858ffffdcd5}, + {0x9731d736, 0xffffd858ffffdcd6}, + {0x9731d737, 0xffffd858ffffdcd7}, + {0x9731d738, 0xffffd858ffffdcd8}, + {0x9731d739, 0xffffd858ffffdcd9}, + {0x9731d830, 0xffffd858ffffdcda}, + {0x9731d831, 0xffffd858ffffdcdb}, + {0x9731d832, 0xffffd858ffffdcdc}, + {0x9731d833, 0xffffd858ffffdcdd}, + {0x9731d834, 0xffffd858ffffdcde}, + {0x9731d835, 0xffffd858ffffdcdf}, + {0x9731d836, 0xffffd858ffffdce0}, + {0x9731d837, 0xffffd858ffffdce1}, + {0x9731d838, 0xffffd858ffffdce2}, + {0x9731d839, 0xffffd858ffffdce3}, + {0x9731d930, 0xffffd858ffffdce4}, + {0x9731d931, 0xffffd858ffffdce5}, + {0x9731d932, 0xffffd858ffffdce6}, + {0x9731d933, 0xffffd858ffffdce7}, + {0x9731d934, 0xffffd858ffffdce8}, + {0x9731d935, 0xffffd858ffffdce9}, + {0x9731d936, 0xffffd858ffffdcea}, + {0x9731d937, 0xffffd858ffffdceb}, + {0x9731d938, 0xffffd858ffffdcec}, + {0x9731d939, 0xffffd858ffffdced}, + {0x9731da30, 0xffffd858ffffdcee}, + {0x9731da31, 0xffffd858ffffdcef}, + {0x9731da32, 0xffffd858ffffdcf0}, + {0x9731da33, 0xffffd858ffffdcf1}, + {0x9731da34, 0xffffd858ffffdcf2}, + {0x9731da35, 0xffffd858ffffdcf3}, + {0x9731da36, 0xffffd858ffffdcf4}, + {0x9731da37, 0xffffd858ffffdcf5}, + {0x9731da38, 0xffffd858ffffdcf6}, + {0x9731da39, 0xffffd858ffffdcf7}, + {0x9731db30, 0xffffd858ffffdcf8}, + {0x9731db31, 0xffffd858ffffdcf9}, + {0x9731db32, 0xffffd858ffffdcfa}, + {0x9731db33, 0xffffd858ffffdcfb}, + {0x9731db34, 0xffffd858ffffdcfc}, + {0x9731db35, 0xffffd858ffffdcfd}, + {0x9731db36, 0xffffd858ffffdcfe}, + {0x9731db37, 0xffffd858ffffdcff}, + {0x9731db38, 0xffffd858ffffdd00}, + {0x9731db39, 0xffffd858ffffdd01}, + {0x9731dc30, 0xffffd858ffffdd02}, + {0x9731dc31, 0xffffd858ffffdd03}, + {0x9731dc32, 0xffffd858ffffdd04}, + {0x9731dc33, 0xffffd858ffffdd05}, + {0x9731dc34, 0xffffd858ffffdd06}, + {0x9731dc35, 0xffffd858ffffdd07}, + {0x9731dc36, 0xffffd858ffffdd08}, + {0x9731dc37, 0xffffd858ffffdd09}, + {0x9731dc38, 0xffffd858ffffdd0a}, + {0x9731dc39, 0xffffd858ffffdd0b}, + {0x9731dd30, 0xffffd858ffffdd0c}, + {0x9731dd31, 0xffffd858ffffdd0d}, + {0x9731dd32, 0xffffd858ffffdd0e}, + {0x9731dd33, 0xffffd858ffffdd0f}, + {0x9731dd34, 0xffffd858ffffdd10}, + {0x9731dd35, 0xffffd858ffffdd11}, + {0x9731dd36, 0xffffd858ffffdd12}, + {0x9731dd37, 0xffffd858ffffdd13}, + {0x9731dd38, 0xffffd858ffffdd14}, + {0x9731dd39, 0xffffd858ffffdd15}, + {0x9731de30, 0xffffd858ffffdd16}, + {0x9731de31, 0xffffd858ffffdd17}, + {0x9731de32, 0xffffd858ffffdd18}, + {0x9731de33, 0xffffd858ffffdd19}, + {0x9731de34, 0xffffd858ffffdd1a}, + {0x9731de35, 0xffffd858ffffdd1b}, + {0x9731de36, 0xffffd858ffffdd1c}, + {0x9731de37, 0xffffd858ffffdd1d}, + {0x9731de38, 0xffffd858ffffdd1e}, + {0x9731de39, 0xffffd858ffffdd1f}, + {0x9731df30, 0xffffd858ffffdd20}, + {0x9731df31, 0xffffd858ffffdd21}, + {0x9731df32, 0xffffd858ffffdd22}, + {0x9731df33, 0xffffd858ffffdd23}, + {0x9731df34, 0xffffd858ffffdd24}, + {0x9731df35, 0xffffd858ffffdd25}, + {0x9731df36, 0xffffd858ffffdd26}, + {0x9731df37, 0xffffd858ffffdd27}, + {0x9731df38, 0xffffd858ffffdd28}, + {0x9731df39, 0xffffd858ffffdd29}, + {0x9731e030, 0xffffd858ffffdd2a}, + {0x9731e031, 0xffffd858ffffdd2b}, + {0x9731e032, 0xffffd858ffffdd2c}, + {0x9731e033, 0xffffd858ffffdd2d}, + {0x9731e034, 0xffffd858ffffdd2e}, + {0x9731e035, 0xffffd858ffffdd2f}, + {0x9731e036, 0xffffd858ffffdd30}, + {0x9731e037, 0xffffd858ffffdd31}, + {0x9731e038, 0xffffd858ffffdd32}, + {0x9731e039, 0xffffd858ffffdd33}, + {0x9731e130, 0xffffd858ffffdd34}, + {0x9731e131, 0xffffd858ffffdd35}, + {0x9731e132, 0xffffd858ffffdd36}, + {0x9731e133, 0xffffd858ffffdd37}, + {0x9731e134, 0xffffd858ffffdd38}, + {0x9731e135, 0xffffd858ffffdd39}, + {0x9731e136, 0xffffd858ffffdd3a}, + {0x9731e137, 0xffffd858ffffdd3b}, + {0x9731e138, 0xffffd858ffffdd3c}, + {0x9731e139, 0xffffd858ffffdd3d}, + {0x9731e230, 0xffffd858ffffdd3e}, + {0x9731e231, 0xffffd858ffffdd3f}, + {0x9731e232, 0xffffd858ffffdd40}, + {0x9731e233, 0xffffd858ffffdd41}, + {0x9731e234, 0xffffd858ffffdd42}, + {0x9731e235, 0xffffd858ffffdd43}, + {0x9731e236, 0xffffd858ffffdd44}, + {0x9731e237, 0xffffd858ffffdd45}, + {0x9731e238, 0xffffd858ffffdd46}, + {0x9731e239, 0xffffd858ffffdd47}, + {0x9731e330, 0xffffd858ffffdd48}, + {0x9731e331, 0xffffd858ffffdd49}, + {0x9731e332, 0xffffd858ffffdd4a}, + {0x9731e333, 0xffffd858ffffdd4b}, + {0x9731e334, 0xffffd858ffffdd4c}, + {0x9731e335, 0xffffd858ffffdd4d}, + {0x9731e336, 0xffffd858ffffdd4e}, + {0x9731e337, 0xffffd858ffffdd4f}, + {0x9731e338, 0xffffd858ffffdd50}, + {0x9731e339, 0xffffd858ffffdd51}, + {0x9731e430, 0xffffd858ffffdd52}, + {0x9731e431, 0xffffd858ffffdd53}, + {0x9731e432, 0xffffd858ffffdd54}, + {0x9731e433, 0xffffd858ffffdd55}, + {0x9731e434, 0xffffd858ffffdd56}, + {0x9731e435, 0xffffd858ffffdd57}, + {0x9731e436, 0xffffd858ffffdd58}, + {0x9731e437, 0xffffd858ffffdd59}, + {0x9731e438, 0xffffd858ffffdd5a}, + {0x9731e439, 0xffffd858ffffdd5b}, + {0x9731e530, 0xffffd858ffffdd5c}, + {0x9731e531, 0xffffd858ffffdd5d}, + {0x9731e532, 0xffffd858ffffdd5e}, + {0x9731e533, 0xffffd858ffffdd5f}, + {0x9731e534, 0xffffd858ffffdd60}, + {0x9731e535, 0xffffd858ffffdd61}, + {0x9731e536, 0xffffd858ffffdd62}, + {0x9731e537, 0xffffd858ffffdd63}, + {0x9731e538, 0xffffd858ffffdd64}, + {0x9731e539, 0xffffd858ffffdd65}, + {0x9731e630, 0xffffd858ffffdd66}, + {0x9731e631, 0xffffd858ffffdd67}, + {0x9731e632, 0xffffd858ffffdd68}, + {0x9731e633, 0xffffd858ffffdd69}, + {0x9731e634, 0xffffd858ffffdd6a}, + {0x9731e635, 0xffffd858ffffdd6b}, + {0x9731e636, 0xffffd858ffffdd6c}, + {0x9731e637, 0xffffd858ffffdd6d}, + {0x9731e638, 0xffffd858ffffdd6e}, + {0x9731e639, 0xffffd858ffffdd6f}, + {0x9731e730, 0xffffd858ffffdd70}, + {0x9731e731, 0xffffd858ffffdd71}, + {0x9731e732, 0xffffd858ffffdd72}, + {0x9731e733, 0xffffd858ffffdd73}, + {0x9731e734, 0xffffd858ffffdd74}, + {0x9731e735, 0xffffd858ffffdd75}, + {0x9731e736, 0xffffd858ffffdd76}, + {0x9731e737, 0xffffd858ffffdd77}, + {0x9731e738, 0xffffd858ffffdd78}, + {0x9731e739, 0xffffd858ffffdd79}, + {0x9731e830, 0xffffd858ffffdd7a}, + {0x9731e831, 0xffffd858ffffdd7b}, + {0x9731e832, 0xffffd858ffffdd7c}, + {0x9731e833, 0xffffd858ffffdd7d}, + {0x9731e834, 0xffffd858ffffdd7e}, + {0x9731e835, 0xffffd858ffffdd7f}, + {0x9731e836, 0xffffd858ffffdd80}, + {0x9731e837, 0xffffd858ffffdd81}, + {0x9731e838, 0xffffd858ffffdd82}, + {0x9731e839, 0xffffd858ffffdd83}, + {0x9731e930, 0xffffd858ffffdd84}, + {0x9731e931, 0xffffd858ffffdd85}, + {0x9731e932, 0xffffd858ffffdd86}, + {0x9731e933, 0xffffd858ffffdd87}, + {0x9731e934, 0xffffd858ffffdd88}, + {0x9731e935, 0xffffd858ffffdd89}, + {0x9731e936, 0xffffd858ffffdd8a}, + {0x9731e937, 0xffffd858ffffdd8b}, + {0x9731e938, 0xffffd858ffffdd8c}, + {0x9731e939, 0xffffd858ffffdd8d}, + {0x9731ea30, 0xffffd858ffffdd8e}, + {0x9731ea31, 0xffffd858ffffdd8f}, + {0x9731ea32, 0xffffd858ffffdd90}, + {0x9731ea33, 0xffffd858ffffdd91}, + {0x9731ea34, 0xffffd858ffffdd92}, + {0x9731ea35, 0xffffd858ffffdd93}, + {0x9731ea36, 0xffffd858ffffdd94}, + {0x9731ea37, 0xffffd858ffffdd95}, + {0x9731ea38, 0xffffd858ffffdd96}, + {0x9731ea39, 0xffffd858ffffdd97}, + {0x9731eb30, 0xffffd858ffffdd98}, + {0x9731eb31, 0xffffd858ffffdd99}, + {0x9731eb32, 0xffffd858ffffdd9a}, + {0x9731eb33, 0xffffd858ffffdd9b}, + {0x9731eb34, 0xffffd858ffffdd9c}, + {0x9731eb35, 0xffffd858ffffdd9d}, + {0x9731eb36, 0xffffd858ffffdd9e}, + {0x9731eb37, 0xffffd858ffffdd9f}, + {0x9731eb38, 0xffffd858ffffdda0}, + {0x9731eb39, 0xffffd858ffffdda1}, + {0x9731ec30, 0xffffd858ffffdda2}, + {0x9731ec31, 0xffffd858ffffdda3}, + {0x9731ec32, 0xffffd858ffffdda4}, + {0x9731ec33, 0xffffd858ffffdda5}, + {0x9731ec34, 0xffffd858ffffdda6}, + {0x9731ec35, 0xffffd858ffffdda7}, + {0x9731ec36, 0xffffd858ffffdda8}, + {0x9731ec37, 0xffffd858ffffdda9}, + {0x9731ec38, 0xffffd858ffffddaa}, + {0x9731ec39, 0xffffd858ffffddab}, + {0x9731ed30, 0xffffd858ffffddac}, + {0x9731ed31, 0xffffd858ffffddad}, + {0x9731ed32, 0xffffd858ffffddae}, + {0x9731ed33, 0xffffd858ffffddaf}, + {0x9731ed34, 0xffffd858ffffddb0}, + {0x9731ed35, 0xffffd858ffffddb1}, + {0x9731ed36, 0xffffd858ffffddb2}, + {0x9731ed37, 0xffffd858ffffddb3}, + {0x9731ed38, 0xffffd858ffffddb4}, + {0x9731ed39, 0xffffd858ffffddb5}, + {0x9731ee30, 0xffffd858ffffddb6}, + {0x9731ee31, 0xffffd858ffffddb7}, + {0x9731ee32, 0xffffd858ffffddb8}, + {0x9731ee33, 0xffffd858ffffddb9}, + {0x9731ee34, 0xffffd858ffffddba}, + {0x9731ee35, 0xffffd858ffffddbb}, + {0x9731ee36, 0xffffd858ffffddbc}, + {0x9731ee37, 0xffffd858ffffddbd}, + {0x9731ee38, 0xffffd858ffffddbe}, + {0x9731ee39, 0xffffd858ffffddbf}, + {0x9731ef30, 0xffffd858ffffddc0}, + {0x9731ef31, 0xffffd858ffffddc1}, + {0x9731ef32, 0xffffd858ffffddc2}, + {0x9731ef33, 0xffffd858ffffddc3}, + {0x9731ef34, 0xffffd858ffffddc4}, + {0x9731ef35, 0xffffd858ffffddc5}, + {0x9731ef36, 0xffffd858ffffddc6}, + {0x9731ef37, 0xffffd858ffffddc7}, + {0x9731ef38, 0xffffd858ffffddc8}, + {0x9731ef39, 0xffffd858ffffddc9}, + {0x9731f030, 0xffffd858ffffddca}, + {0x9731f031, 0xffffd858ffffddcb}, + {0x9731f032, 0xffffd858ffffddcc}, + {0x9731f033, 0xffffd858ffffddcd}, + {0x9731f034, 0xffffd858ffffddce}, + {0x9731f035, 0xffffd858ffffddcf}, + {0x9731f036, 0xffffd858ffffddd0}, + {0x9731f037, 0xffffd858ffffddd1}, + {0x9731f038, 0xffffd858ffffddd2}, + {0x9731f039, 0xffffd858ffffddd3}, + {0x9731f130, 0xffffd858ffffddd4}, + {0x9731f131, 0xffffd858ffffddd5}, + {0x9731f132, 0xffffd858ffffddd6}, + {0x9731f133, 0xffffd858ffffddd7}, + {0x9731f134, 0xffffd858ffffddd8}, + {0x9731f135, 0xffffd858ffffddd9}, + {0x9731f136, 0xffffd858ffffddda}, + {0x9731f137, 0xffffd858ffffdddb}, + {0x9731f138, 0xffffd858ffffdddc}, + {0x9731f139, 0xffffd858ffffdddd}, + {0x9731f230, 0xffffd858ffffddde}, + {0x9731f231, 0xffffd858ffffdddf}, + {0x9731f232, 0xffffd858ffffdde0}, + {0x9731f233, 0xffffd858ffffdde1}, + {0x9731f234, 0xffffd858ffffdde2}, + {0x9731f235, 0xffffd858ffffdde3}, + {0x9731f236, 0xffffd858ffffdde4}, + {0x9731f237, 0xffffd858ffffdde5}, + {0x9731f238, 0xffffd858ffffdde6}, + {0x9731f239, 0xffffd858ffffdde7}, + {0x9731f330, 0xffffd858ffffdde8}, + {0x9731f331, 0xffffd858ffffdde9}, + {0x9731f332, 0xffffd858ffffddea}, + {0x9731f333, 0xffffd858ffffddeb}, + {0x9731f334, 0xffffd858ffffddec}, + {0x9731f335, 0xffffd858ffffdded}, + {0x9731f336, 0xffffd858ffffddee}, + {0x9731f337, 0xffffd858ffffddef}, + {0x9731f338, 0xffffd858ffffddf0}, + {0x9731f339, 0xffffd858ffffddf1}, + {0x9731f430, 0xffffd858ffffddf2}, + {0x9731f431, 0xffffd858ffffddf3}, + {0x9731f432, 0xffffd858ffffddf4}, + {0x9731f433, 0xffffd858ffffddf5}, + {0x9731f434, 0xffffd858ffffddf6}, + {0x9731f435, 0xffffd858ffffddf7}, + {0x9731f436, 0xffffd858ffffddf8}, + {0x9731f437, 0xffffd858ffffddf9}, + {0x9731f438, 0xffffd858ffffddfa}, + {0x9731f439, 0xffffd858ffffddfb}, + {0x9731f530, 0xffffd858ffffddfc}, + {0x9731f531, 0xffffd858ffffddfd}, + {0x9731f532, 0xffffd858ffffddfe}, + {0x9731f533, 0xffffd858ffffddff}, + {0x9731f534, 0xffffd858ffffde00}, + {0x9731f535, 0xffffd858ffffde01}, + {0x9731f536, 0xffffd858ffffde02}, + {0x9731f537, 0xffffd858ffffde03}, + {0x9731f538, 0xffffd858ffffde04}, + {0x9731f539, 0xffffd858ffffde05}, + {0x9731f630, 0xffffd858ffffde06}, + {0x9731f631, 0xffffd858ffffde07}, + {0x9731f632, 0xffffd858ffffde08}, + {0x9731f633, 0xffffd858ffffde09}, + {0x9731f634, 0xffffd858ffffde0a}, + {0x9731f635, 0xffffd858ffffde0b}, + {0x9731f636, 0xffffd858ffffde0c}, + {0x9731f637, 0xffffd858ffffde0d}, + {0x9731f638, 0xffffd858ffffde0e}, + {0x9731f639, 0xffffd858ffffde0f}, + {0x9731f730, 0xffffd858ffffde10}, + {0x9731f731, 0xffffd858ffffde11}, + {0x9731f732, 0xffffd858ffffde12}, + {0x9731f733, 0xffffd858ffffde13}, + {0x9731f734, 0xffffd858ffffde14}, + {0x9731f735, 0xffffd858ffffde15}, + {0x9731f736, 0xffffd858ffffde16}, + {0x9731f737, 0xffffd858ffffde17}, + {0x9731f738, 0xffffd858ffffde18}, + {0x9731f739, 0xffffd858ffffde19}, + {0x9731f830, 0xffffd858ffffde1a}, + {0x9731f831, 0xffffd858ffffde1b}, + {0x9731f832, 0xffffd858ffffde1c}, + {0x9731f833, 0xffffd858ffffde1d}, + {0x9731f834, 0xffffd858ffffde1e}, + {0x9731f835, 0xffffd858ffffde1f}, + {0x9731f836, 0xffffd858ffffde20}, + {0x9731f837, 0xffffd858ffffde21}, + {0x9731f838, 0xffffd858ffffde22}, + {0x9731f839, 0xffffd858ffffde23}, + {0x9731f930, 0xffffd858ffffde24}, + {0x9731f931, 0xffffd858ffffde25}, + {0x9731f932, 0xffffd858ffffde26}, + {0x9731f933, 0xffffd858ffffde27}, + {0x9731f934, 0xffffd858ffffde28}, + {0x9731f935, 0xffffd858ffffde29}, + {0x9731f936, 0xffffd858ffffde2a}, + {0x9731f937, 0xffffd858ffffde2b}, + {0x9731f938, 0xffffd858ffffde2c}, + {0x9731f939, 0xffffd858ffffde2d}, + {0x9731fa30, 0xffffd858ffffde2e}, + {0x9731fa31, 0xffffd858ffffde2f}, + {0x9731fa32, 0xffffd858ffffde30}, + {0x9731fa33, 0xffffd858ffffde31}, + {0x9731fa34, 0xffffd858ffffde32}, + {0x9731fa35, 0xffffd858ffffde33}, + {0x9731fa36, 0xffffd858ffffde34}, + {0x9731fa37, 0xffffd858ffffde35}, + {0x9731fa38, 0xffffd858ffffde36}, + {0x9731fa39, 0xffffd858ffffde37}, + {0x9731fb30, 0xffffd858ffffde38}, + {0x9731fb31, 0xffffd858ffffde39}, + {0x9731fb32, 0xffffd858ffffde3a}, + {0x9731fb33, 0xffffd858ffffde3b}, + {0x9731fb34, 0xffffd858ffffde3c}, + {0x9731fb35, 0xffffd858ffffde3d}, + {0x9731fb36, 0xffffd858ffffde3e}, + {0x9731fb37, 0xffffd858ffffde3f}, + {0x9731fb38, 0xffffd858ffffde40}, + {0x9731fb39, 0xffffd858ffffde41}, + {0x9731fc30, 0xffffd858ffffde42}, + {0x9731fc31, 0xffffd858ffffde43}, + {0x9731fc32, 0xffffd858ffffde44}, + {0x9731fc33, 0xffffd858ffffde45}, + {0x9731fc34, 0xffffd858ffffde46}, + {0x9731fc35, 0xffffd858ffffde47}, + {0x9731fc36, 0xffffd858ffffde48}, + {0x9731fc37, 0xffffd858ffffde49}, + {0x9731fc38, 0xffffd858ffffde4a}, + {0x9731fc39, 0xffffd858ffffde4b}, + {0x9731fd30, 0xffffd858ffffde4c}, + {0x9731fd31, 0xffffd858ffffde4d}, + {0x9731fd32, 0xffffd858ffffde4e}, + {0x9731fd33, 0xffffd858ffffde4f}, + {0x9731fd34, 0xffffd858ffffde50}, + {0x9731fd35, 0xffffd858ffffde51}, + {0x9731fd36, 0xffffd858ffffde52}, + {0x9731fd37, 0xffffd858ffffde53}, + {0x9731fd38, 0xffffd858ffffde54}, + {0x9731fd39, 0xffffd858ffffde55}, + {0x9731fe30, 0xffffd858ffffde56}, + {0x9731fe31, 0xffffd858ffffde57}, + {0x9731fe32, 0xffffd858ffffde58}, + {0x9731fe33, 0xffffd858ffffde59}, + {0x9731fe34, 0xffffd858ffffde5a}, + {0x9731fe35, 0xffffd858ffffde5b}, + {0x9731fe36, 0xffffd858ffffde5c}, + {0x9731fe37, 0xffffd858ffffde5d}, + {0x9731fe38, 0xffffd858ffffde5e}, + {0x9731fe39, 0xffffd858ffffde5f}, + {0x97328130, 0xffffd858ffffde60}, + {0x97328131, 0xffffd858ffffde61}, + {0x97328132, 0xffffd858ffffde62}, + {0x97328133, 0xffffd858ffffde63}, + {0x97328134, 0xffffd858ffffde64}, + {0x97328135, 0xffffd858ffffde65}, + {0x97328136, 0xffffd858ffffde66}, + {0x97328137, 0xffffd858ffffde67}, + {0x97328138, 0xffffd858ffffde68}, + {0x97328139, 0xffffd858ffffde69}, + {0x97328230, 0xffffd858ffffde6a}, + {0x97328231, 0xffffd858ffffde6b}, + {0x97328232, 0xffffd858ffffde6c}, + {0x97328233, 0xffffd858ffffde6d}, + {0x97328234, 0xffffd858ffffde6e}, + {0x97328235, 0xffffd858ffffde6f}, + {0x97328236, 0xffffd858ffffde70}, + {0x97328237, 0xffffd858ffffde71}, + {0x97328238, 0xffffd858ffffde72}, + {0x97328239, 0xffffd858ffffde73}, + {0x97328330, 0xffffd858ffffde74}, + {0x97328331, 0xffffd858ffffde75}, + {0x97328332, 0xffffd858ffffde76}, + {0x97328333, 0xffffd858ffffde77}, + {0x97328334, 0xffffd858ffffde78}, + {0x97328335, 0xffffd858ffffde79}, + {0x97328336, 0xffffd858ffffde7a}, + {0x97328337, 0xffffd858ffffde7b}, + {0x97328338, 0xffffd858ffffde7c}, + {0x97328339, 0xffffd858ffffde7d}, + {0x97328430, 0xffffd858ffffde7e}, + {0x97328431, 0xffffd858ffffde7f}, + {0x97328432, 0xffffd858ffffde80}, + {0x97328433, 0xffffd858ffffde81}, + {0x97328434, 0xffffd858ffffde82}, + {0x97328435, 0xffffd858ffffde83}, + {0x97328436, 0xffffd858ffffde84}, + {0x97328437, 0xffffd858ffffde85}, + {0x97328438, 0xffffd858ffffde86}, + {0x97328439, 0xffffd858ffffde87}, + {0x97328530, 0xffffd858ffffde88}, + {0x97328531, 0xffffd858ffffde89}, + {0x97328532, 0xffffd858ffffde8a}, + {0x97328533, 0xffffd858ffffde8b}, + {0x97328534, 0xffffd858ffffde8c}, + {0x97328535, 0xffffd858ffffde8d}, + {0x97328536, 0xffffd858ffffde8e}, + {0x97328537, 0xffffd858ffffde8f}, + {0x97328538, 0xffffd858ffffde90}, + {0x97328539, 0xffffd858ffffde91}, + {0x97328630, 0xffffd858ffffde92}, + {0x97328631, 0xffffd858ffffde93}, + {0x97328632, 0xffffd858ffffde94}, + {0x97328633, 0xffffd858ffffde95}, + {0x97328634, 0xffffd858ffffde96}, + {0x97328635, 0xffffd858ffffde97}, + {0x97328636, 0xffffd858ffffde98}, + {0x97328637, 0xffffd858ffffde99}, + {0x97328638, 0xffffd858ffffde9a}, + {0x97328639, 0xffffd858ffffde9b}, + {0x97328730, 0xffffd858ffffde9c}, + {0x97328731, 0xffffd858ffffde9d}, + {0x97328732, 0xffffd858ffffde9e}, + {0x97328733, 0xffffd858ffffde9f}, + {0x97328734, 0xffffd858ffffdea0}, + {0x97328735, 0xffffd858ffffdea1}, + {0x97328736, 0xffffd858ffffdea2}, + {0x97328737, 0xffffd858ffffdea3}, + {0x97328738, 0xffffd858ffffdea4}, + {0x97328739, 0xffffd858ffffdea5}, + {0x97328830, 0xffffd858ffffdea6}, + {0x97328831, 0xffffd858ffffdea7}, + {0x97328832, 0xffffd858ffffdea8}, + {0x97328833, 0xffffd858ffffdea9}, + {0x97328834, 0xffffd858ffffdeaa}, + {0x97328835, 0xffffd858ffffdeab}, + {0x97328836, 0xffffd858ffffdeac}, + {0x97328837, 0xffffd858ffffdead}, + {0x97328838, 0xffffd858ffffdeae}, + {0x97328839, 0xffffd858ffffdeaf}, + {0x97328930, 0xffffd858ffffdeb0}, + {0x97328931, 0xffffd858ffffdeb1}, + {0x97328932, 0xffffd858ffffdeb2}, + {0x97328933, 0xffffd858ffffdeb3}, + {0x97328934, 0xffffd858ffffdeb4}, + {0x97328935, 0xffffd858ffffdeb5}, + {0x97328936, 0xffffd858ffffdeb6}, + {0x97328937, 0xffffd858ffffdeb7}, + {0x97328938, 0xffffd858ffffdeb8}, + {0x97328939, 0xffffd858ffffdeb9}, + {0x97328a30, 0xffffd858ffffdeba}, + {0x97328a31, 0xffffd858ffffdebb}, + {0x97328a32, 0xffffd858ffffdebc}, + {0x97328a33, 0xffffd858ffffdebd}, + {0x97328a34, 0xffffd858ffffdebe}, + {0x97328a35, 0xffffd858ffffdebf}, + {0x97328a36, 0xffffd858ffffdec0}, + {0x97328a37, 0xffffd858ffffdec1}, + {0x97328a38, 0xffffd858ffffdec2}, + {0x97328a39, 0xffffd858ffffdec3}, + {0x97328b30, 0xffffd858ffffdec4}, + {0x97328b31, 0xffffd858ffffdec5}, + {0x97328b32, 0xffffd858ffffdec6}, + {0x97328b33, 0xffffd858ffffdec7}, + {0x97328b34, 0xffffd858ffffdec8}, + {0x97328b35, 0xffffd858ffffdec9}, + {0x97328b36, 0xffffd858ffffdeca}, + {0x97328b37, 0xffffd858ffffdecb}, + {0x97328b38, 0xffffd858ffffdecc}, + {0x97328b39, 0xffffd858ffffdecd}, + {0x97328c30, 0xffffd858ffffdece}, + {0x97328c31, 0xffffd858ffffdecf}, + {0x97328c32, 0xffffd858ffffded0}, + {0x97328c33, 0xffffd858ffffded1}, + {0x97328c34, 0xffffd858ffffded2}, + {0x97328c35, 0xffffd858ffffded3}, + {0x97328c36, 0xffffd858ffffded4}, + {0x97328c37, 0xffffd858ffffded5}, + {0x97328c38, 0xffffd858ffffded6}, + {0x97328c39, 0xffffd858ffffded7}, + {0x97328d30, 0xffffd858ffffded8}, + {0x97328d31, 0xffffd858ffffded9}, + {0x97328d32, 0xffffd858ffffdeda}, + {0x97328d33, 0xffffd858ffffdedb}, + {0x97328d34, 0xffffd858ffffdedc}, + {0x97328d35, 0xffffd858ffffdedd}, + {0x97328d36, 0xffffd858ffffdede}, + {0x97328d37, 0xffffd858ffffdedf}, + {0x97328d38, 0xffffd858ffffdee0}, + {0x97328d39, 0xffffd858ffffdee1}, + {0x97328e30, 0xffffd858ffffdee2}, + {0x97328e31, 0xffffd858ffffdee3}, + {0x97328e32, 0xffffd858ffffdee4}, + {0x97328e33, 0xffffd858ffffdee5}, + {0x97328e34, 0xffffd858ffffdee6}, + {0x97328e35, 0xffffd858ffffdee7}, + {0x97328e36, 0xffffd858ffffdee8}, + {0x97328e37, 0xffffd858ffffdee9}, + {0x97328e38, 0xffffd858ffffdeea}, + {0x97328e39, 0xffffd858ffffdeeb}, + {0x97328f30, 0xffffd858ffffdeec}, + {0x97328f31, 0xffffd858ffffdeed}, + {0x97328f32, 0xffffd858ffffdeee}, + {0x97328f33, 0xffffd858ffffdeef}, + {0x97328f34, 0xffffd858ffffdef0}, + {0x97328f35, 0xffffd858ffffdef1}, + {0x97328f36, 0xffffd858ffffdef2}, + {0x97328f37, 0xffffd858ffffdef3}, + {0x97328f38, 0xffffd858ffffdef4}, + {0x97328f39, 0xffffd858ffffdef5}, + {0x97329030, 0xffffd858ffffdef6}, + {0x97329031, 0xffffd858ffffdef7}, + {0x97329032, 0xffffd858ffffdef8}, + {0x97329033, 0xffffd858ffffdef9}, + {0x97329034, 0xffffd858ffffdefa}, + {0x97329035, 0xffffd858ffffdefb}, + {0x97329036, 0xffffd858ffffdefc}, + {0x97329037, 0xffffd858ffffdefd}, + {0x97329038, 0xffffd858ffffdefe}, + {0x97329039, 0xffffd858ffffdeff}, + {0x97329130, 0xffffd858ffffdf00}, + {0x97329131, 0xffffd858ffffdf01}, + {0x97329132, 0xffffd858ffffdf02}, + {0x97329133, 0xffffd858ffffdf03}, + {0x97329134, 0xffffd858ffffdf04}, + {0x97329135, 0xffffd858ffffdf05}, + {0x97329136, 0xffffd858ffffdf06}, + {0x97329137, 0xffffd858ffffdf07}, + {0x97329138, 0xffffd858ffffdf08}, + {0x97329139, 0xffffd858ffffdf09}, + {0x97329230, 0xffffd858ffffdf0a}, + {0x97329231, 0xffffd858ffffdf0b}, + {0x97329232, 0xffffd858ffffdf0c}, + {0x97329233, 0xffffd858ffffdf0d}, + {0x97329234, 0xffffd858ffffdf0e}, + {0x97329235, 0xffffd858ffffdf0f}, + {0x97329236, 0xffffd858ffffdf10}, + {0x97329237, 0xffffd858ffffdf11}, + {0x97329238, 0xffffd858ffffdf12}, + {0x97329239, 0xffffd858ffffdf13}, + {0x97329330, 0xffffd858ffffdf14}, + {0x97329331, 0xffffd858ffffdf15}, + {0x97329332, 0xffffd858ffffdf16}, + {0x97329333, 0xffffd858ffffdf17}, + {0x97329334, 0xffffd858ffffdf18}, + {0x97329335, 0xffffd858ffffdf19}, + {0x97329336, 0xffffd858ffffdf1a}, + {0x97329337, 0xffffd858ffffdf1b}, + {0x97329338, 0xffffd858ffffdf1c}, + {0x97329339, 0xffffd858ffffdf1d}, + {0x97329430, 0xffffd858ffffdf1e}, + {0x97329431, 0xffffd858ffffdf1f}, + {0x97329432, 0xffffd858ffffdf20}, + {0x97329433, 0xffffd858ffffdf21}, + {0x97329434, 0xffffd858ffffdf22}, + {0x97329435, 0xffffd858ffffdf23}, + {0x97329436, 0xffffd858ffffdf24}, + {0x97329437, 0xffffd858ffffdf25}, + {0x97329438, 0xffffd858ffffdf26}, + {0x97329439, 0xffffd858ffffdf27}, + {0x97329530, 0xffffd858ffffdf28}, + {0x97329531, 0xffffd858ffffdf29}, + {0x97329532, 0xffffd858ffffdf2a}, + {0x97329533, 0xffffd858ffffdf2b}, + {0x97329534, 0xffffd858ffffdf2c}, + {0x97329535, 0xffffd858ffffdf2d}, + {0x97329536, 0xffffd858ffffdf2e}, + {0x97329537, 0xffffd858ffffdf2f}, + {0x97329538, 0xffffd858ffffdf30}, + {0x97329539, 0xffffd858ffffdf31}, + {0x97329630, 0xffffd858ffffdf32}, + {0x97329631, 0xffffd858ffffdf33}, + {0x97329632, 0xffffd858ffffdf34}, + {0x97329633, 0xffffd858ffffdf35}, + {0x97329634, 0xffffd858ffffdf36}, + {0x97329635, 0xffffd858ffffdf37}, + {0x97329636, 0xffffd858ffffdf38}, + {0x97329637, 0xffffd858ffffdf39}, + {0x97329638, 0xffffd858ffffdf3a}, + {0x97329639, 0xffffd858ffffdf3b}, + {0x97329730, 0xffffd858ffffdf3c}, + {0x97329731, 0xffffd858ffffdf3d}, + {0x97329732, 0xffffd858ffffdf3e}, + {0x97329733, 0xffffd858ffffdf3f}, + {0x97329734, 0xffffd858ffffdf40}, + {0x97329735, 0xffffd858ffffdf41}, + {0x97329736, 0xffffd858ffffdf42}, + {0x97329737, 0xffffd858ffffdf43}, + {0x97329738, 0xffffd858ffffdf44}, + {0x97329739, 0xffffd858ffffdf45}, + {0x97329830, 0xffffd858ffffdf46}, + {0x97329831, 0xffffd858ffffdf47}, + {0x97329832, 0xffffd858ffffdf48}, + {0x97329833, 0xffffd858ffffdf49}, + {0x97329834, 0xffffd858ffffdf4a}, + {0x97329835, 0xffffd858ffffdf4b}, + {0x97329836, 0xffffd858ffffdf4c}, + {0x97329837, 0xffffd858ffffdf4d}, + {0x97329838, 0xffffd858ffffdf4e}, + {0x97329839, 0xffffd858ffffdf4f}, + {0x97329930, 0xffffd858ffffdf50}, + {0x97329931, 0xffffd858ffffdf51}, + {0x97329932, 0xffffd858ffffdf52}, + {0x97329933, 0xffffd858ffffdf53}, + {0x97329934, 0xffffd858ffffdf54}, + {0x97329935, 0xffffd858ffffdf55}, + {0x97329936, 0xffffd858ffffdf56}, + {0x97329937, 0xffffd858ffffdf57}, + {0x97329938, 0xffffd858ffffdf58}, + {0x97329939, 0xffffd858ffffdf59}, + {0x97329a30, 0xffffd858ffffdf5a}, + {0x97329a31, 0xffffd858ffffdf5b}, + {0x97329a32, 0xffffd858ffffdf5c}, + {0x97329a33, 0xffffd858ffffdf5d}, + {0x97329a34, 0xffffd858ffffdf5e}, + {0x97329a35, 0xffffd858ffffdf5f}, + {0x97329a36, 0xffffd858ffffdf60}, + {0x97329a37, 0xffffd858ffffdf61}, + {0x97329a38, 0xffffd858ffffdf62}, + {0x97329a39, 0xffffd858ffffdf63}, + {0x97329b30, 0xffffd858ffffdf64}, + {0x97329b31, 0xffffd858ffffdf65}, + {0x97329b32, 0xffffd858ffffdf66}, + {0x97329b33, 0xffffd858ffffdf67}, + {0x97329b34, 0xffffd858ffffdf68}, + {0x97329b35, 0xffffd858ffffdf69}, + {0x97329b36, 0xffffd858ffffdf6a}, + {0x97329b37, 0xffffd858ffffdf6b}, + {0x97329b38, 0xffffd858ffffdf6c}, + {0x97329b39, 0xffffd858ffffdf6d}, + {0x97329c30, 0xffffd858ffffdf6e}, + {0x97329c31, 0xffffd858ffffdf6f}, + {0x97329c32, 0xffffd858ffffdf70}, + {0x97329c33, 0xffffd858ffffdf71}, + {0x97329c34, 0xffffd858ffffdf72}, + {0x97329c35, 0xffffd858ffffdf73}, + {0x97329c36, 0xffffd858ffffdf74}, + {0x97329c37, 0xffffd858ffffdf75}, + {0x97329c38, 0xffffd858ffffdf76}, + {0x97329c39, 0xffffd858ffffdf77}, + {0x97329d30, 0xffffd858ffffdf78}, + {0x97329d31, 0xffffd858ffffdf79}, + {0x97329d32, 0xffffd858ffffdf7a}, + {0x97329d33, 0xffffd858ffffdf7b}, + {0x97329d34, 0xffffd858ffffdf7c}, + {0x97329d35, 0xffffd858ffffdf7d}, + {0x97329d36, 0xffffd858ffffdf7e}, + {0x97329d37, 0xffffd858ffffdf7f}, + {0x97329d38, 0xffffd858ffffdf80}, + {0x97329d39, 0xffffd858ffffdf81}, + {0x97329e30, 0xffffd858ffffdf82}, + {0x97329e31, 0xffffd858ffffdf83}, + {0x97329e32, 0xffffd858ffffdf84}, + {0x97329e33, 0xffffd858ffffdf85}, + {0x97329e34, 0xffffd858ffffdf86}, + {0x97329e35, 0xffffd858ffffdf87}, + {0x97329e36, 0xffffd858ffffdf88}, + {0x97329e37, 0xffffd858ffffdf89}, + {0x97329e38, 0xffffd858ffffdf8a}, + {0x97329e39, 0xffffd858ffffdf8b}, + {0x97329f30, 0xffffd858ffffdf8c}, + {0x97329f31, 0xffffd858ffffdf8d}, + {0x97329f32, 0xffffd858ffffdf8e}, + {0x97329f33, 0xffffd858ffffdf8f}, + {0x97329f34, 0xffffd858ffffdf90}, + {0x97329f35, 0xffffd858ffffdf91}, + {0x97329f36, 0xffffd858ffffdf92}, + {0x97329f37, 0xffffd858ffffdf93}, + {0x97329f38, 0xffffd858ffffdf94}, + {0x97329f39, 0xffffd858ffffdf95}, + {0x9732a030, 0xffffd858ffffdf96}, + {0x9732a031, 0xffffd858ffffdf97}, + {0x9732a032, 0xffffd858ffffdf98}, + {0x9732a033, 0xffffd858ffffdf99}, + {0x9732a034, 0xffffd858ffffdf9a}, + {0x9732a035, 0xffffd858ffffdf9b}, + {0x9732a036, 0xffffd858ffffdf9c}, + {0x9732a037, 0xffffd858ffffdf9d}, + {0x9732a038, 0xffffd858ffffdf9e}, + {0x9732a039, 0xffffd858ffffdf9f}, + {0x9732a130, 0xffffd858ffffdfa0}, + {0x9732a131, 0xffffd858ffffdfa1}, + {0x9732a132, 0xffffd858ffffdfa2}, + {0x9732a133, 0xffffd858ffffdfa3}, + {0x9732a134, 0xffffd858ffffdfa4}, + {0x9732a135, 0xffffd858ffffdfa5}, + {0x9732a136, 0xffffd858ffffdfa6}, + {0x9732a137, 0xffffd858ffffdfa7}, + {0x9732a138, 0xffffd858ffffdfa8}, + {0x9732a139, 0xffffd858ffffdfa9}, + {0x9732a230, 0xffffd858ffffdfaa}, + {0x9732a231, 0xffffd858ffffdfab}, + {0x9732a232, 0xffffd858ffffdfac}, + {0x9732a233, 0xffffd858ffffdfad}, + {0x9732a234, 0xffffd858ffffdfae}, + {0x9732a235, 0xffffd858ffffdfaf}, + {0x9732a236, 0xffffd858ffffdfb0}, + {0x9732a237, 0xffffd858ffffdfb1}, + {0x9732a238, 0xffffd858ffffdfb2}, + {0x9732a239, 0xffffd858ffffdfb3}, + {0x9732a330, 0xffffd858ffffdfb4}, + {0x9732a331, 0xffffd858ffffdfb5}, + {0x9732a332, 0xffffd858ffffdfb6}, + {0x9732a333, 0xffffd858ffffdfb7}, + {0x9732a334, 0xffffd858ffffdfb8}, + {0x9732a335, 0xffffd858ffffdfb9}, + {0x9732a336, 0xffffd858ffffdfba}, + {0x9732a337, 0xffffd858ffffdfbb}, + {0x9732a338, 0xffffd858ffffdfbc}, + {0x9732a339, 0xffffd858ffffdfbd}, + {0x9732a430, 0xffffd858ffffdfbe}, + {0x9732a431, 0xffffd858ffffdfbf}, + {0x9732a432, 0xffffd858ffffdfc0}, + {0x9732a433, 0xffffd858ffffdfc1}, + {0x9732a434, 0xffffd858ffffdfc2}, + {0x9732a435, 0xffffd858ffffdfc3}, + {0x9732a436, 0xffffd858ffffdfc4}, + {0x9732a437, 0xffffd858ffffdfc5}, + {0x9732a438, 0xffffd858ffffdfc6}, + {0x9732a439, 0xffffd858ffffdfc7}, + {0x9732a530, 0xffffd858ffffdfc8}, + {0x9732a531, 0xffffd858ffffdfc9}, + {0x9732a532, 0xffffd858ffffdfca}, + {0x9732a533, 0xffffd858ffffdfcb}, + {0x9732a534, 0xffffd858ffffdfcc}, + {0x9732a535, 0xffffd858ffffdfcd}, + {0x9732a536, 0xffffd858ffffdfce}, + {0x9732a537, 0xffffd858ffffdfcf}, + {0x9732a538, 0xffffd858ffffdfd0}, + {0x9732a539, 0xffffd858ffffdfd1}, + {0x9732a630, 0xffffd858ffffdfd2}, + {0x9732a631, 0xffffd858ffffdfd3}, + {0x9732a632, 0xffffd858ffffdfd4}, + {0x9732a633, 0xffffd858ffffdfd5}, + {0x9732a634, 0xffffd858ffffdfd6}, + {0x9732a635, 0xffffd858ffffdfd7}, + {0x9732a636, 0xffffd858ffffdfd8}, + {0x9732a637, 0xffffd858ffffdfd9}, + {0x9732a638, 0xffffd858ffffdfda}, + {0x9732a639, 0xffffd858ffffdfdb}, + {0x9732a730, 0xffffd858ffffdfdc}, + {0x9732a731, 0xffffd858ffffdfdd}, + {0x9732a732, 0xffffd858ffffdfde}, + {0x9732a733, 0xffffd858ffffdfdf}, + {0x9732a734, 0xffffd858ffffdfe0}, + {0x9732a735, 0xffffd858ffffdfe1}, + {0x9732a736, 0xffffd858ffffdfe2}, + {0x9732a737, 0xffffd858ffffdfe3}, + {0x9732a738, 0xffffd858ffffdfe4}, + {0x9732a739, 0xffffd858ffffdfe5}, + {0x9732a830, 0xffffd858ffffdfe6}, + {0x9732a831, 0xffffd858ffffdfe7}, + {0x9732a832, 0xffffd858ffffdfe8}, + {0x9732a833, 0xffffd858ffffdfe9}, + {0x9732a834, 0xffffd858ffffdfea}, + {0x9732a835, 0xffffd858ffffdfeb}, + {0x9732a836, 0xffffd858ffffdfec}, + {0x9732a837, 0xffffd858ffffdfed}, + {0x9732a838, 0xffffd858ffffdfee}, + {0x9732a839, 0xffffd858ffffdfef}, + {0x9732a930, 0xffffd858ffffdff0}, + {0x9732a931, 0xffffd858ffffdff1}, + {0x9732a932, 0xffffd858ffffdff2}, + {0x9732a933, 0xffffd858ffffdff3}, + {0x9732a934, 0xffffd858ffffdff4}, + {0x9732a935, 0xffffd858ffffdff5}, + {0x9732a936, 0xffffd858ffffdff6}, + {0x9732a937, 0xffffd858ffffdff7}, + {0x9732a938, 0xffffd858ffffdff8}, + {0x9732a939, 0xffffd858ffffdff9}, + {0x9732aa30, 0xffffd858ffffdffa}, + {0x9732aa31, 0xffffd858ffffdffb}, + {0x9732aa32, 0xffffd858ffffdffc}, + {0x9732aa33, 0xffffd858ffffdffd}, + {0x9732aa34, 0xffffd858ffffdffe}, + {0x9732aa35, 0xffffd858ffffdfff}, + {0x9732aa36, 0xffffd859ffffdc00}, + {0x9732aa37, 0xffffd859ffffdc01}, + {0x9732aa38, 0xffffd859ffffdc02}, + {0x9732aa39, 0xffffd859ffffdc03}, + {0x9732ab30, 0xffffd859ffffdc04}, + {0x9732ab31, 0xffffd859ffffdc05}, + {0x9732ab32, 0xffffd859ffffdc06}, + {0x9732ab33, 0xffffd859ffffdc07}, + {0x9732ab34, 0xffffd859ffffdc08}, + {0x9732ab35, 0xffffd859ffffdc09}, + {0x9732ab36, 0xffffd859ffffdc0a}, + {0x9732ab37, 0xffffd859ffffdc0b}, + {0x9732ab38, 0xffffd859ffffdc0c}, + {0x9732ab39, 0xffffd859ffffdc0d}, + {0x9732ac30, 0xffffd859ffffdc0e}, + {0x9732ac31, 0xffffd859ffffdc0f}, + {0x9732ac32, 0xffffd859ffffdc10}, + {0x9732ac33, 0xffffd859ffffdc11}, + {0x9732ac34, 0xffffd859ffffdc12}, + {0x9732ac35, 0xffffd859ffffdc13}, + {0x9732ac36, 0xffffd859ffffdc14}, + {0x9732ac37, 0xffffd859ffffdc15}, + {0x9732ac38, 0xffffd859ffffdc16}, + {0x9732ac39, 0xffffd859ffffdc17}, + {0x9732ad30, 0xffffd859ffffdc18}, + {0x9732ad31, 0xffffd859ffffdc19}, + {0x9732ad32, 0xffffd859ffffdc1a}, + {0x9732ad33, 0xffffd859ffffdc1b}, + {0x9732ad34, 0xffffd859ffffdc1c}, + {0x9732ad35, 0xffffd859ffffdc1d}, + {0x9732ad36, 0xffffd859ffffdc1e}, + {0x9732ad37, 0xffffd859ffffdc1f}, + {0x9732ad38, 0xffffd859ffffdc20}, + {0x9732ad39, 0xffffd859ffffdc21}, + {0x9732ae30, 0xffffd859ffffdc22}, + {0x9732ae31, 0xffffd859ffffdc23}, + {0x9732ae32, 0xffffd859ffffdc24}, + {0x9732ae33, 0xffffd859ffffdc25}, + {0x9732ae34, 0xffffd859ffffdc26}, + {0x9732ae35, 0xffffd859ffffdc27}, + {0x9732ae36, 0xffffd859ffffdc28}, + {0x9732ae37, 0xffffd859ffffdc29}, + {0x9732ae38, 0xffffd859ffffdc2a}, + {0x9732ae39, 0xffffd859ffffdc2b}, + {0x9732af30, 0xffffd859ffffdc2c}, + {0x9732af31, 0xffffd859ffffdc2d}, + {0x9732af32, 0xffffd859ffffdc2e}, + {0x9732af33, 0xffffd859ffffdc2f}, + {0x9732af34, 0xffffd859ffffdc30}, + {0x9732af35, 0xffffd859ffffdc31}, + {0x9732af36, 0xffffd859ffffdc32}, + {0x9732af37, 0xffffd859ffffdc33}, + {0x9732af38, 0xffffd859ffffdc34}, + {0x9732af39, 0xffffd859ffffdc35}, + {0x9732b030, 0xffffd859ffffdc36}, + {0x9732b031, 0xffffd859ffffdc37}, + {0x9732b032, 0xffffd859ffffdc38}, + {0x9732b033, 0xffffd859ffffdc39}, + {0x9732b034, 0xffffd859ffffdc3a}, + {0x9732b035, 0xffffd859ffffdc3b}, + {0x9732b036, 0xffffd859ffffdc3c}, + {0x9732b037, 0xffffd859ffffdc3d}, + {0x9732b038, 0xffffd859ffffdc3e}, + {0x9732b039, 0xffffd859ffffdc3f}, + {0x9732b130, 0xffffd859ffffdc40}, + {0x9732b131, 0xffffd859ffffdc41}, + {0x9732b132, 0xffffd859ffffdc42}, + {0x9732b133, 0xffffd859ffffdc43}, + {0x9732b134, 0xffffd859ffffdc44}, + {0x9732b135, 0xffffd859ffffdc45}, + {0x9732b136, 0xffffd859ffffdc46}, + {0x9732b137, 0xffffd859ffffdc47}, + {0x9732b138, 0xffffd859ffffdc48}, + {0x9732b139, 0xffffd859ffffdc49}, + {0x9732b230, 0xffffd859ffffdc4a}, + {0x9732b231, 0xffffd859ffffdc4b}, + {0x9732b232, 0xffffd859ffffdc4c}, + {0x9732b233, 0xffffd859ffffdc4d}, + {0x9732b234, 0xffffd859ffffdc4e}, + {0x9732b235, 0xffffd859ffffdc4f}, + {0x9732b236, 0xffffd859ffffdc50}, + {0x9732b237, 0xffffd859ffffdc51}, + {0x9732b238, 0xffffd859ffffdc52}, + {0x9732b239, 0xffffd859ffffdc53}, + {0x9732b330, 0xffffd859ffffdc54}, + {0x9732b331, 0xffffd859ffffdc55}, + {0x9732b332, 0xffffd859ffffdc56}, + {0x9732b333, 0xffffd859ffffdc57}, + {0x9732b334, 0xffffd859ffffdc58}, + {0x9732b335, 0xffffd859ffffdc59}, + {0x9732b336, 0xffffd859ffffdc5a}, + {0x9732b337, 0xffffd859ffffdc5b}, + {0x9732b338, 0xffffd859ffffdc5c}, + {0x9732b339, 0xffffd859ffffdc5d}, + {0x9732b430, 0xffffd859ffffdc5e}, + {0x9732b431, 0xffffd859ffffdc5f}, + {0x9732b432, 0xffffd859ffffdc60}, + {0x9732b433, 0xffffd859ffffdc61}, + {0x9732b434, 0xffffd859ffffdc62}, + {0x9732b435, 0xffffd859ffffdc63}, + {0x9732b436, 0xffffd859ffffdc64}, + {0x9732b437, 0xffffd859ffffdc65}, + {0x9732b438, 0xffffd859ffffdc66}, + {0x9732b439, 0xffffd859ffffdc67}, + {0x9732b530, 0xffffd859ffffdc68}, + {0x9732b531, 0xffffd859ffffdc69}, + {0x9732b532, 0xffffd859ffffdc6a}, + {0x9732b533, 0xffffd859ffffdc6b}, + {0x9732b534, 0xffffd859ffffdc6c}, + {0x9732b535, 0xffffd859ffffdc6d}, + {0x9732b536, 0xffffd859ffffdc6e}, + {0x9732b537, 0xffffd859ffffdc6f}, + {0x9732b538, 0xffffd859ffffdc70}, + {0x9732b539, 0xffffd859ffffdc71}, + {0x9732b630, 0xffffd859ffffdc72}, + {0x9732b631, 0xffffd859ffffdc73}, + {0x9732b632, 0xffffd859ffffdc74}, + {0x9732b633, 0xffffd859ffffdc75}, + {0x9732b634, 0xffffd859ffffdc76}, + {0x9732b635, 0xffffd859ffffdc77}, + {0x9732b636, 0xffffd859ffffdc78}, + {0x9732b637, 0xffffd859ffffdc79}, + {0x9732b638, 0xffffd859ffffdc7a}, + {0x9732b639, 0xffffd859ffffdc7b}, + {0x9732b730, 0xffffd859ffffdc7c}, + {0x9732b731, 0xffffd859ffffdc7d}, + {0x9732b732, 0xffffd859ffffdc7e}, + {0x9732b733, 0xffffd859ffffdc7f}, + {0x9732b734, 0xffffd859ffffdc80}, + {0x9732b735, 0xffffd859ffffdc81}, + {0x9732b736, 0xffffd859ffffdc82}, + {0x9732b737, 0xffffd859ffffdc83}, + {0x9732b738, 0xffffd859ffffdc84}, + {0x9732b739, 0xffffd859ffffdc85}, + {0x9732b830, 0xffffd859ffffdc86}, + {0x9732b831, 0xffffd859ffffdc87}, + {0x9732b832, 0xffffd859ffffdc88}, + {0x9732b833, 0xffffd859ffffdc89}, + {0x9732b834, 0xffffd859ffffdc8a}, + {0x9732b835, 0xffffd859ffffdc8b}, + {0x9732b836, 0xffffd859ffffdc8c}, + {0x9732b837, 0xffffd859ffffdc8d}, + {0x9732b838, 0xffffd859ffffdc8e}, + {0x9732b839, 0xffffd859ffffdc8f}, + {0x9732b930, 0xffffd859ffffdc90}, + {0x9732b931, 0xffffd859ffffdc91}, + {0x9732b932, 0xffffd859ffffdc92}, + {0x9732b933, 0xffffd859ffffdc93}, + {0x9732b934, 0xffffd859ffffdc94}, + {0x9732b935, 0xffffd859ffffdc95}, + {0x9732b936, 0xffffd859ffffdc96}, + {0x9732b937, 0xffffd859ffffdc97}, + {0x9732b938, 0xffffd859ffffdc98}, + {0x9732b939, 0xffffd859ffffdc99}, + {0x9732ba30, 0xffffd859ffffdc9a}, + {0x9732ba31, 0xffffd859ffffdc9b}, + {0x9732ba32, 0xffffd859ffffdc9c}, + {0x9732ba33, 0xffffd859ffffdc9d}, + {0x9732ba34, 0xffffd859ffffdc9e}, + {0x9732ba35, 0xffffd859ffffdc9f}, + {0x9732ba36, 0xffffd859ffffdca0}, + {0x9732ba37, 0xffffd859ffffdca1}, + {0x9732ba38, 0xffffd859ffffdca2}, + {0x9732ba39, 0xffffd859ffffdca3}, + {0x9732bb30, 0xffffd859ffffdca4}, + {0x9732bb31, 0xffffd859ffffdca5}, + {0x9732bb32, 0xffffd859ffffdca6}, + {0x9732bb33, 0xffffd859ffffdca7}, + {0x9732bb34, 0xffffd859ffffdca8}, + {0x9732bb35, 0xffffd859ffffdca9}, + {0x9732bb36, 0xffffd859ffffdcaa}, + {0x9732bb37, 0xffffd859ffffdcab}, + {0x9732bb38, 0xffffd859ffffdcac}, + {0x9732bb39, 0xffffd859ffffdcad}, + {0x9732bc30, 0xffffd859ffffdcae}, + {0x9732bc31, 0xffffd859ffffdcaf}, + {0x9732bc32, 0xffffd859ffffdcb0}, + {0x9732bc33, 0xffffd859ffffdcb1}, + {0x9732bc34, 0xffffd859ffffdcb2}, + {0x9732bc35, 0xffffd859ffffdcb3}, + {0x9732bc36, 0xffffd859ffffdcb4}, + {0x9732bc37, 0xffffd859ffffdcb5}, + {0x9732bc38, 0xffffd859ffffdcb6}, + {0x9732bc39, 0xffffd859ffffdcb7}, + {0x9732bd30, 0xffffd859ffffdcb8}, + {0x9732bd31, 0xffffd859ffffdcb9}, + {0x9732bd32, 0xffffd859ffffdcba}, + {0x9732bd33, 0xffffd859ffffdcbb}, + {0x9732bd34, 0xffffd859ffffdcbc}, + {0x9732bd35, 0xffffd859ffffdcbd}, + {0x9732bd36, 0xffffd859ffffdcbe}, + {0x9732bd37, 0xffffd859ffffdcbf}, + {0x9732bd38, 0xffffd859ffffdcc0}, + {0x9732bd39, 0xffffd859ffffdcc1}, + {0x9732be30, 0xffffd859ffffdcc2}, + {0x9732be31, 0xffffd859ffffdcc3}, + {0x9732be32, 0xffffd859ffffdcc4}, + {0x9732be33, 0xffffd859ffffdcc5}, + {0x9732be34, 0xffffd859ffffdcc6}, + {0x9732be35, 0xffffd859ffffdcc7}, + {0x9732be36, 0xffffd859ffffdcc8}, + {0x9732be37, 0xffffd859ffffdcc9}, + {0x9732be38, 0xffffd859ffffdcca}, + {0x9732be39, 0xffffd859ffffdccb}, + {0x9732bf30, 0xffffd859ffffdccc}, + {0x9732bf31, 0xffffd859ffffdccd}, + {0x9732bf32, 0xffffd859ffffdcce}, + {0x9732bf33, 0xffffd859ffffdccf}, + {0x9732bf34, 0xffffd859ffffdcd0}, + {0x9732bf35, 0xffffd859ffffdcd1}, + {0x9732bf36, 0xffffd859ffffdcd2}, + {0x9732bf37, 0xffffd859ffffdcd3}, + {0x9732bf38, 0xffffd859ffffdcd4}, + {0x9732bf39, 0xffffd859ffffdcd5}, + {0x9732c030, 0xffffd859ffffdcd6}, + {0x9732c031, 0xffffd859ffffdcd7}, + {0x9732c032, 0xffffd859ffffdcd8}, + {0x9732c033, 0xffffd859ffffdcd9}, + {0x9732c034, 0xffffd859ffffdcda}, + {0x9732c035, 0xffffd859ffffdcdb}, + {0x9732c036, 0xffffd859ffffdcdc}, + {0x9732c037, 0xffffd859ffffdcdd}, + {0x9732c038, 0xffffd859ffffdcde}, + {0x9732c039, 0xffffd859ffffdcdf}, + {0x9732c130, 0xffffd859ffffdce0}, + {0x9732c131, 0xffffd859ffffdce1}, + {0x9732c132, 0xffffd859ffffdce2}, + {0x9732c133, 0xffffd859ffffdce3}, + {0x9732c134, 0xffffd859ffffdce4}, + {0x9732c135, 0xffffd859ffffdce5}, + {0x9732c136, 0xffffd859ffffdce6}, + {0x9732c137, 0xffffd859ffffdce7}, + {0x9732c138, 0xffffd859ffffdce8}, + {0x9732c139, 0xffffd859ffffdce9}, + {0x9732c230, 0xffffd859ffffdcea}, + {0x9732c231, 0xffffd859ffffdceb}, + {0x9732c232, 0xffffd859ffffdcec}, + {0x9732c233, 0xffffd859ffffdced}, + {0x9732c234, 0xffffd859ffffdcee}, + {0x9732c235, 0xffffd859ffffdcef}, + {0x9732c236, 0xffffd859ffffdcf0}, + {0x9732c237, 0xffffd859ffffdcf1}, + {0x9732c238, 0xffffd859ffffdcf2}, + {0x9732c239, 0xffffd859ffffdcf3}, + {0x9732c330, 0xffffd859ffffdcf4}, + {0x9732c331, 0xffffd859ffffdcf5}, + {0x9732c332, 0xffffd859ffffdcf6}, + {0x9732c333, 0xffffd859ffffdcf7}, + {0x9732c334, 0xffffd859ffffdcf8}, + {0x9732c335, 0xffffd859ffffdcf9}, + {0x9732c336, 0xffffd859ffffdcfa}, + {0x9732c337, 0xffffd859ffffdcfb}, + {0x9732c338, 0xffffd859ffffdcfc}, + {0x9732c339, 0xffffd859ffffdcfd}, + {0x9732c430, 0xffffd859ffffdcfe}, + {0x9732c431, 0xffffd859ffffdcff}, + {0x9732c432, 0xffffd859ffffdd00}, + {0x9732c433, 0xffffd859ffffdd01}, + {0x9732c434, 0xffffd859ffffdd02}, + {0x9732c435, 0xffffd859ffffdd03}, + {0x9732c436, 0xffffd859ffffdd04}, + {0x9732c437, 0xffffd859ffffdd05}, + {0x9732c438, 0xffffd859ffffdd06}, + {0x9732c439, 0xffffd859ffffdd07}, + {0x9732c530, 0xffffd859ffffdd08}, + {0x9732c531, 0xffffd859ffffdd09}, + {0x9732c532, 0xffffd859ffffdd0a}, + {0x9732c533, 0xffffd859ffffdd0b}, + {0x9732c534, 0xffffd859ffffdd0c}, + {0x9732c535, 0xffffd859ffffdd0d}, + {0x9732c536, 0xffffd859ffffdd0e}, + {0x9732c537, 0xffffd859ffffdd0f}, + {0x9732c538, 0xffffd859ffffdd10}, + {0x9732c539, 0xffffd859ffffdd11}, + {0x9732c630, 0xffffd859ffffdd12}, + {0x9732c631, 0xffffd859ffffdd13}, + {0x9732c632, 0xffffd859ffffdd14}, + {0x9732c633, 0xffffd859ffffdd15}, + {0x9732c634, 0xffffd859ffffdd16}, + {0x9732c635, 0xffffd859ffffdd17}, + {0x9732c636, 0xffffd859ffffdd18}, + {0x9732c637, 0xffffd859ffffdd19}, + {0x9732c638, 0xffffd859ffffdd1a}, + {0x9732c639, 0xffffd859ffffdd1b}, + {0x9732c730, 0xffffd859ffffdd1c}, + {0x9732c731, 0xffffd859ffffdd1d}, + {0x9732c732, 0xffffd859ffffdd1e}, + {0x9732c733, 0xffffd859ffffdd1f}, + {0x9732c734, 0xffffd859ffffdd20}, + {0x9732c735, 0xffffd859ffffdd21}, + {0x9732c736, 0xffffd859ffffdd22}, + {0x9732c737, 0xffffd859ffffdd23}, + {0x9732c738, 0xffffd859ffffdd24}, + {0x9732c739, 0xffffd859ffffdd25}, + {0x9732c830, 0xffffd859ffffdd26}, + {0x9732c831, 0xffffd859ffffdd27}, + {0x9732c832, 0xffffd859ffffdd28}, + {0x9732c833, 0xffffd859ffffdd29}, + {0x9732c834, 0xffffd859ffffdd2a}, + {0x9732c835, 0xffffd859ffffdd2b}, + {0x9732c836, 0xffffd859ffffdd2c}, + {0x9732c837, 0xffffd859ffffdd2d}, + {0x9732c838, 0xffffd859ffffdd2e}, + {0x9732c839, 0xffffd859ffffdd2f}, + {0x9732c930, 0xffffd859ffffdd30}, + {0x9732c931, 0xffffd859ffffdd31}, + {0x9732c932, 0xffffd859ffffdd32}, + {0x9732c933, 0xffffd859ffffdd33}, + {0x9732c934, 0xffffd859ffffdd34}, + {0x9732c935, 0xffffd859ffffdd35}, + {0x9732c936, 0xffffd859ffffdd36}, + {0x9732c937, 0xffffd859ffffdd37}, + {0x9732c938, 0xffffd859ffffdd38}, + {0x9732c939, 0xffffd859ffffdd39}, + {0x9732ca30, 0xffffd859ffffdd3a}, + {0x9732ca31, 0xffffd859ffffdd3b}, + {0x9732ca32, 0xffffd859ffffdd3c}, + {0x9732ca33, 0xffffd859ffffdd3d}, + {0x9732ca34, 0xffffd859ffffdd3e}, + {0x9732ca35, 0xffffd859ffffdd3f}, + {0x9732ca36, 0xffffd859ffffdd40}, + {0x9732ca37, 0xffffd859ffffdd41}, + {0x9732ca38, 0xffffd859ffffdd42}, + {0x9732ca39, 0xffffd859ffffdd43}, + {0x9732cb30, 0xffffd859ffffdd44}, + {0x9732cb31, 0xffffd859ffffdd45}, + {0x9732cb32, 0xffffd859ffffdd46}, + {0x9732cb33, 0xffffd859ffffdd47}, + {0x9732cb34, 0xffffd859ffffdd48}, + {0x9732cb35, 0xffffd859ffffdd49}, + {0x9732cb36, 0xffffd859ffffdd4a}, + {0x9732cb37, 0xffffd859ffffdd4b}, + {0x9732cb38, 0xffffd859ffffdd4c}, + {0x9732cb39, 0xffffd859ffffdd4d}, + {0x9732cc30, 0xffffd859ffffdd4e}, + {0x9732cc31, 0xffffd859ffffdd4f}, + {0x9732cc32, 0xffffd859ffffdd50}, + {0x9732cc33, 0xffffd859ffffdd51}, + {0x9732cc34, 0xffffd859ffffdd52}, + {0x9732cc35, 0xffffd859ffffdd53}, + {0x9732cc36, 0xffffd859ffffdd54}, + {0x9732cc37, 0xffffd859ffffdd55}, + {0x9732cc38, 0xffffd859ffffdd56}, + {0x9732cc39, 0xffffd859ffffdd57}, + {0x9732cd30, 0xffffd859ffffdd58}, + {0x9732cd31, 0xffffd859ffffdd59}, + {0x9732cd32, 0xffffd859ffffdd5a}, + {0x9732cd33, 0xffffd859ffffdd5b}, + {0x9732cd34, 0xffffd859ffffdd5c}, + {0x9732cd35, 0xffffd859ffffdd5d}, + {0x9732cd36, 0xffffd859ffffdd5e}, + {0x9732cd37, 0xffffd859ffffdd5f}, + {0x9732cd38, 0xffffd859ffffdd60}, + {0x9732cd39, 0xffffd859ffffdd61}, + {0x9732ce30, 0xffffd859ffffdd62}, + {0x9732ce31, 0xffffd859ffffdd63}, + {0x9732ce32, 0xffffd859ffffdd64}, + {0x9732ce33, 0xffffd859ffffdd65}, + {0x9732ce34, 0xffffd859ffffdd66}, + {0x9732ce35, 0xffffd859ffffdd67}, + {0x9732ce36, 0xffffd859ffffdd68}, + {0x9732ce37, 0xffffd859ffffdd69}, + {0x9732ce38, 0xffffd859ffffdd6a}, + {0x9732ce39, 0xffffd859ffffdd6b}, + {0x9732cf30, 0xffffd859ffffdd6c}, + {0x9732cf31, 0xffffd859ffffdd6d}, + {0x9732cf32, 0xffffd859ffffdd6e}, + {0x9732cf33, 0xffffd859ffffdd6f}, + {0x9732cf34, 0xffffd859ffffdd70}, + {0x9732cf35, 0xffffd859ffffdd71}, + {0x9732cf36, 0xffffd859ffffdd72}, + {0x9732cf37, 0xffffd859ffffdd73}, + {0x9732cf38, 0xffffd859ffffdd74}, + {0x9732cf39, 0xffffd859ffffdd75}, + {0x9732d030, 0xffffd859ffffdd76}, + {0x9732d031, 0xffffd859ffffdd77}, + {0x9732d032, 0xffffd859ffffdd78}, + {0x9732d033, 0xffffd859ffffdd79}, + {0x9732d034, 0xffffd859ffffdd7a}, + {0x9732d035, 0xffffd859ffffdd7b}, + {0x9732d036, 0xffffd859ffffdd7c}, + {0x9732d037, 0xffffd859ffffdd7d}, + {0x9732d038, 0xffffd859ffffdd7e}, + {0x9732d039, 0xffffd859ffffdd7f}, + {0x9732d130, 0xffffd859ffffdd80}, + {0x9732d131, 0xffffd859ffffdd81}, + {0x9732d132, 0xffffd859ffffdd82}, + {0x9732d133, 0xffffd859ffffdd83}, + {0x9732d134, 0xffffd859ffffdd84}, + {0x9732d135, 0xffffd859ffffdd85}, + {0x9732d136, 0xffffd859ffffdd86}, + {0x9732d137, 0xffffd859ffffdd87}, + {0x9732d138, 0xffffd859ffffdd88}, + {0x9732d139, 0xffffd859ffffdd89}, + {0x9732d230, 0xffffd859ffffdd8a}, + {0x9732d231, 0xffffd859ffffdd8b}, + {0x9732d232, 0xffffd859ffffdd8c}, + {0x9732d233, 0xffffd859ffffdd8d}, + {0x9732d234, 0xffffd859ffffdd8e}, + {0x9732d235, 0xffffd859ffffdd8f}, + {0x9732d236, 0xffffd859ffffdd90}, + {0x9732d237, 0xffffd859ffffdd91}, + {0x9732d238, 0xffffd859ffffdd92}, + {0x9732d239, 0xffffd859ffffdd93}, + {0x9732d330, 0xffffd859ffffdd94}, + {0x9732d331, 0xffffd859ffffdd95}, + {0x9732d332, 0xffffd859ffffdd96}, + {0x9732d333, 0xffffd859ffffdd97}, + {0x9732d334, 0xffffd859ffffdd98}, + {0x9732d335, 0xffffd859ffffdd99}, + {0x9732d336, 0xffffd859ffffdd9a}, + {0x9732d337, 0xffffd859ffffdd9b}, + {0x9732d338, 0xffffd859ffffdd9c}, + {0x9732d339, 0xffffd859ffffdd9d}, + {0x9732d430, 0xffffd859ffffdd9e}, + {0x9732d431, 0xffffd859ffffdd9f}, + {0x9732d432, 0xffffd859ffffdda0}, + {0x9732d433, 0xffffd859ffffdda1}, + {0x9732d434, 0xffffd859ffffdda2}, + {0x9732d435, 0xffffd859ffffdda3}, + {0x9732d436, 0xffffd859ffffdda4}, + {0x9732d437, 0xffffd859ffffdda5}, + {0x9732d438, 0xffffd859ffffdda6}, + {0x9732d439, 0xffffd859ffffdda7}, + {0x9732d530, 0xffffd859ffffdda8}, + {0x9732d531, 0xffffd859ffffdda9}, + {0x9732d532, 0xffffd859ffffddaa}, + {0x9732d533, 0xffffd859ffffddab}, + {0x9732d534, 0xffffd859ffffddac}, + {0x9732d535, 0xffffd859ffffddad}, + {0x9732d536, 0xffffd859ffffddae}, + {0x9732d537, 0xffffd859ffffddaf}, + {0x9732d538, 0xffffd859ffffddb0}, + {0x9732d539, 0xffffd859ffffddb1}, + {0x9732d630, 0xffffd859ffffddb2}, + {0x9732d631, 0xffffd859ffffddb3}, + {0x9732d632, 0xffffd859ffffddb4}, + {0x9732d633, 0xffffd859ffffddb5}, + {0x9732d634, 0xffffd859ffffddb6}, + {0x9732d635, 0xffffd859ffffddb7}, + {0x9732d636, 0xffffd859ffffddb8}, + {0x9732d637, 0xffffd859ffffddb9}, + {0x9732d638, 0xffffd859ffffddba}, + {0x9732d639, 0xffffd859ffffddbb}, + {0x9732d730, 0xffffd859ffffddbc}, + {0x9732d731, 0xffffd859ffffddbd}, + {0x9732d732, 0xffffd859ffffddbe}, + {0x9732d733, 0xffffd859ffffddbf}, + {0x9732d734, 0xffffd859ffffddc0}, + {0x9732d735, 0xffffd859ffffddc1}, + {0x9732d736, 0xffffd859ffffddc2}, + {0x9732d737, 0xffffd859ffffddc3}, + {0x9732d738, 0xffffd859ffffddc4}, + {0x9732d739, 0xffffd859ffffddc5}, + {0x9732d830, 0xffffd859ffffddc6}, + {0x9732d831, 0xffffd859ffffddc7}, + {0x9732d832, 0xffffd859ffffddc8}, + {0x9732d833, 0xffffd859ffffddc9}, + {0x9732d834, 0xffffd859ffffddca}, + {0x9732d835, 0xffffd859ffffddcb}, + {0x9732d836, 0xffffd859ffffddcc}, + {0x9732d837, 0xffffd859ffffddcd}, + {0x9732d838, 0xffffd859ffffddce}, + {0x9732d839, 0xffffd859ffffddcf}, + {0x9732d930, 0xffffd859ffffddd0}, + {0x9732d931, 0xffffd859ffffddd1}, + {0x9732d932, 0xffffd859ffffddd2}, + {0x9732d933, 0xffffd859ffffddd3}, + {0x9732d934, 0xffffd859ffffddd4}, + {0x9732d935, 0xffffd859ffffddd5}, + {0x9732d936, 0xffffd859ffffddd6}, + {0x9732d937, 0xffffd859ffffddd7}, + {0x9732d938, 0xffffd859ffffddd8}, + {0x9732d939, 0xffffd859ffffddd9}, + {0x9732da30, 0xffffd859ffffddda}, + {0x9732da31, 0xffffd859ffffdddb}, + {0x9732da32, 0xffffd859ffffdddc}, + {0x9732da33, 0xffffd859ffffdddd}, + {0x9732da34, 0xffffd859ffffddde}, + {0x9732da35, 0xffffd859ffffdddf}, + {0x9732da36, 0xffffd859ffffdde0}, + {0x9732da37, 0xffffd859ffffdde1}, + {0x9732da38, 0xffffd859ffffdde2}, + {0x9732da39, 0xffffd859ffffdde3}, + {0x9732db30, 0xffffd859ffffdde4}, + {0x9732db31, 0xffffd859ffffdde5}, + {0x9732db32, 0xffffd859ffffdde6}, + {0x9732db33, 0xffffd859ffffdde7}, + {0x9732db34, 0xffffd859ffffdde8}, + {0x9732db35, 0xffffd859ffffdde9}, + {0x9732db36, 0xffffd859ffffddea}, + {0x9732db37, 0xffffd859ffffddeb}, + {0x9732db38, 0xffffd859ffffddec}, + {0x9732db39, 0xffffd859ffffdded}, + {0x9732dc30, 0xffffd859ffffddee}, + {0x9732dc31, 0xffffd859ffffddef}, + {0x9732dc32, 0xffffd859ffffddf0}, + {0x9732dc33, 0xffffd859ffffddf1}, + {0x9732dc34, 0xffffd859ffffddf2}, + {0x9732dc35, 0xffffd859ffffddf3}, + {0x9732dc36, 0xffffd859ffffddf4}, + {0x9732dc37, 0xffffd859ffffddf5}, + {0x9732dc38, 0xffffd859ffffddf6}, + {0x9732dc39, 0xffffd859ffffddf7}, + {0x9732dd30, 0xffffd859ffffddf8}, + {0x9732dd31, 0xffffd859ffffddf9}, + {0x9732dd32, 0xffffd859ffffddfa}, + {0x9732dd33, 0xffffd859ffffddfb}, + {0x9732dd34, 0xffffd859ffffddfc}, + {0x9732dd35, 0xffffd859ffffddfd}, + {0x9732dd36, 0xffffd859ffffddfe}, + {0x9732dd37, 0xffffd859ffffddff}, + {0x9732dd38, 0xffffd859ffffde00}, + {0x9732dd39, 0xffffd859ffffde01}, + {0x9732de30, 0xffffd859ffffde02}, + {0x9732de31, 0xffffd859ffffde03}, + {0x9732de32, 0xffffd859ffffde04}, + {0x9732de33, 0xffffd859ffffde05}, + {0x9732de34, 0xffffd859ffffde06}, + {0x9732de35, 0xffffd859ffffde07}, + {0x9732de36, 0xffffd859ffffde08}, + {0x9732de37, 0xffffd859ffffde09}, + {0x9732de38, 0xffffd859ffffde0a}, + {0x9732de39, 0xffffd859ffffde0b}, + {0x9732df30, 0xffffd859ffffde0c}, + {0x9732df31, 0xffffd859ffffde0d}, + {0x9732df32, 0xffffd859ffffde0e}, + {0x9732df33, 0xffffd859ffffde0f}, + {0x9732df34, 0xffffd859ffffde10}, + {0x9732df35, 0xffffd859ffffde11}, + {0x9732df36, 0xffffd859ffffde12}, + {0x9732df37, 0xffffd859ffffde13}, + {0x9732df38, 0xffffd859ffffde14}, + {0x9732df39, 0xffffd859ffffde15}, + {0x9732e030, 0xffffd859ffffde16}, + {0x9732e031, 0xffffd859ffffde17}, + {0x9732e032, 0xffffd859ffffde18}, + {0x9732e033, 0xffffd859ffffde19}, + {0x9732e034, 0xffffd859ffffde1a}, + {0x9732e035, 0xffffd859ffffde1b}, + {0x9732e036, 0xffffd859ffffde1c}, + {0x9732e037, 0xffffd859ffffde1d}, + {0x9732e038, 0xffffd859ffffde1e}, + {0x9732e039, 0xffffd859ffffde1f}, + {0x9732e130, 0xffffd859ffffde20}, + {0x9732e131, 0xffffd859ffffde21}, + {0x9732e132, 0xffffd859ffffde22}, + {0x9732e133, 0xffffd859ffffde23}, + {0x9732e134, 0xffffd859ffffde24}, + {0x9732e135, 0xffffd859ffffde25}, + {0x9732e136, 0xffffd859ffffde26}, + {0x9732e137, 0xffffd859ffffde27}, + {0x9732e138, 0xffffd859ffffde28}, + {0x9732e139, 0xffffd859ffffde29}, + {0x9732e230, 0xffffd859ffffde2a}, + {0x9732e231, 0xffffd859ffffde2b}, + {0x9732e232, 0xffffd859ffffde2c}, + {0x9732e233, 0xffffd859ffffde2d}, + {0x9732e234, 0xffffd859ffffde2e}, + {0x9732e235, 0xffffd859ffffde2f}, + {0x9732e236, 0xffffd859ffffde30}, + {0x9732e237, 0xffffd859ffffde31}, + {0x9732e238, 0xffffd859ffffde32}, + {0x9732e239, 0xffffd859ffffde33}, + {0x9732e330, 0xffffd859ffffde34}, + {0x9732e331, 0xffffd859ffffde35}, + {0x9732e332, 0xffffd859ffffde36}, + {0x9732e333, 0xffffd859ffffde37}, + {0x9732e334, 0xffffd859ffffde38}, + {0x9732e335, 0xffffd859ffffde39}, + {0x9732e336, 0xffffd859ffffde3a}, + {0x9732e337, 0xffffd859ffffde3b}, + {0x9732e338, 0xffffd859ffffde3c}, + {0x9732e339, 0xffffd859ffffde3d}, + {0x9732e430, 0xffffd859ffffde3e}, + {0x9732e431, 0xffffd859ffffde3f}, + {0x9732e432, 0xffffd859ffffde40}, + {0x9732e433, 0xffffd859ffffde41}, + {0x9732e434, 0xffffd859ffffde42}, + {0x9732e435, 0xffffd859ffffde43}, + {0x9732e436, 0xffffd859ffffde44}, + {0x9732e437, 0xffffd859ffffde45}, + {0x9732e438, 0xffffd859ffffde46}, + {0x9732e439, 0xffffd859ffffde47}, + {0x9732e530, 0xffffd859ffffde48}, + {0x9732e531, 0xffffd859ffffde49}, + {0x9732e532, 0xffffd859ffffde4a}, + {0x9732e533, 0xffffd859ffffde4b}, + {0x9732e534, 0xffffd859ffffde4c}, + {0x9732e535, 0xffffd859ffffde4d}, + {0x9732e536, 0xffffd859ffffde4e}, + {0x9732e537, 0xffffd859ffffde4f}, + {0x9732e538, 0xffffd859ffffde50}, + {0x9732e539, 0xffffd859ffffde51}, + {0x9732e630, 0xffffd859ffffde52}, + {0x9732e631, 0xffffd859ffffde53}, + {0x9732e632, 0xffffd859ffffde54}, + {0x9732e633, 0xffffd859ffffde55}, + {0x9732e634, 0xffffd859ffffde56}, + {0x9732e635, 0xffffd859ffffde57}, + {0x9732e636, 0xffffd859ffffde58}, + {0x9732e637, 0xffffd859ffffde59}, + {0x9732e638, 0xffffd859ffffde5a}, + {0x9732e639, 0xffffd859ffffde5b}, + {0x9732e730, 0xffffd859ffffde5c}, + {0x9732e731, 0xffffd859ffffde5d}, + {0x9732e732, 0xffffd859ffffde5e}, + {0x9732e733, 0xffffd859ffffde5f}, + {0x9732e734, 0xffffd859ffffde60}, + {0x9732e735, 0xffffd859ffffde61}, + {0x9732e736, 0xffffd859ffffde62}, + {0x9732e737, 0xffffd859ffffde63}, + {0x9732e738, 0xffffd859ffffde64}, + {0x9732e739, 0xffffd859ffffde65}, + {0x9732e830, 0xffffd859ffffde66}, + {0x9732e831, 0xffffd859ffffde67}, + {0x9732e832, 0xffffd859ffffde68}, + {0x9732e833, 0xffffd859ffffde69}, + {0x9732e834, 0xffffd859ffffde6a}, + {0x9732e835, 0xffffd859ffffde6b}, + {0x9732e836, 0xffffd859ffffde6c}, + {0x9732e837, 0xffffd859ffffde6d}, + {0x9732e838, 0xffffd859ffffde6e}, + {0x9732e839, 0xffffd859ffffde6f}, + {0x9732e930, 0xffffd859ffffde70}, + {0x9732e931, 0xffffd859ffffde71}, + {0x9732e932, 0xffffd859ffffde72}, + {0x9732e933, 0xffffd859ffffde73}, + {0x9732e934, 0xffffd859ffffde74}, + {0x9732e935, 0xffffd859ffffde75}, + {0x9732e936, 0xffffd859ffffde76}, + {0x9732e937, 0xffffd859ffffde77}, + {0x9732e938, 0xffffd859ffffde78}, + {0x9732e939, 0xffffd859ffffde79}, + {0x9732ea30, 0xffffd859ffffde7a}, + {0x9732ea31, 0xffffd859ffffde7b}, + {0x9732ea32, 0xffffd859ffffde7c}, + {0x9732ea33, 0xffffd859ffffde7d}, + {0x9732ea34, 0xffffd859ffffde7e}, + {0x9732ea35, 0xffffd859ffffde7f}, + {0x9732ea36, 0xffffd859ffffde80}, + {0x9732ea37, 0xffffd859ffffde81}, + {0x9732ea38, 0xffffd859ffffde82}, + {0x9732ea39, 0xffffd859ffffde83}, + {0x9732eb30, 0xffffd859ffffde84}, + {0x9732eb31, 0xffffd859ffffde85}, + {0x9732eb32, 0xffffd859ffffde86}, + {0x9732eb33, 0xffffd859ffffde87}, + {0x9732eb34, 0xffffd859ffffde88}, + {0x9732eb35, 0xffffd859ffffde89}, + {0x9732eb36, 0xffffd859ffffde8a}, + {0x9732eb37, 0xffffd859ffffde8b}, + {0x9732eb38, 0xffffd859ffffde8c}, + {0x9732eb39, 0xffffd859ffffde8d}, + {0x9732ec30, 0xffffd859ffffde8e}, + {0x9732ec31, 0xffffd859ffffde8f}, + {0x9732ec32, 0xffffd859ffffde90}, + {0x9732ec33, 0xffffd859ffffde91}, + {0x9732ec34, 0xffffd859ffffde92}, + {0x9732ec35, 0xffffd859ffffde93}, + {0x9732ec36, 0xffffd859ffffde94}, + {0x9732ec37, 0xffffd859ffffde95}, + {0x9732ec38, 0xffffd859ffffde96}, + {0x9732ec39, 0xffffd859ffffde97}, + {0x9732ed30, 0xffffd859ffffde98}, + {0x9732ed31, 0xffffd859ffffde99}, + {0x9732ed32, 0xffffd859ffffde9a}, + {0x9732ed33, 0xffffd859ffffde9b}, + {0x9732ed34, 0xffffd859ffffde9c}, + {0x9732ed35, 0xffffd859ffffde9d}, + {0x9732ed36, 0xffffd859ffffde9e}, + {0x9732ed37, 0xffffd859ffffde9f}, + {0x9732ed38, 0xffffd859ffffdea0}, + {0x9732ed39, 0xffffd859ffffdea1}, + {0x9732ee30, 0xffffd859ffffdea2}, + {0x9732ee31, 0xffffd859ffffdea3}, + {0x9732ee32, 0xffffd859ffffdea4}, + {0x9732ee33, 0xffffd859ffffdea5}, + {0x9732ee34, 0xffffd859ffffdea6}, + {0x9732ee35, 0xffffd859ffffdea7}, + {0x9732ee36, 0xffffd859ffffdea8}, + {0x9732ee37, 0xffffd859ffffdea9}, + {0x9732ee38, 0xffffd859ffffdeaa}, + {0x9732ee39, 0xffffd859ffffdeab}, + {0x9732ef30, 0xffffd859ffffdeac}, + {0x9732ef31, 0xffffd859ffffdead}, + {0x9732ef32, 0xffffd859ffffdeae}, + {0x9732ef33, 0xffffd859ffffdeaf}, + {0x9732ef34, 0xffffd859ffffdeb0}, + {0x9732ef35, 0xffffd859ffffdeb1}, + {0x9732ef36, 0xffffd859ffffdeb2}, + {0x9732ef37, 0xffffd859ffffdeb3}, + {0x9732ef38, 0xffffd859ffffdeb4}, + {0x9732ef39, 0xffffd859ffffdeb5}, + {0x9732f030, 0xffffd859ffffdeb6}, + {0x9732f031, 0xffffd859ffffdeb7}, + {0x9732f032, 0xffffd859ffffdeb8}, + {0x9732f033, 0xffffd859ffffdeb9}, + {0x9732f034, 0xffffd859ffffdeba}, + {0x9732f035, 0xffffd859ffffdebb}, + {0x9732f036, 0xffffd859ffffdebc}, + {0x9732f037, 0xffffd859ffffdebd}, + {0x9732f038, 0xffffd859ffffdebe}, + {0x9732f039, 0xffffd859ffffdebf}, + {0x9732f130, 0xffffd859ffffdec0}, + {0x9732f131, 0xffffd859ffffdec1}, + {0x9732f132, 0xffffd859ffffdec2}, + {0x9732f133, 0xffffd859ffffdec3}, + {0x9732f134, 0xffffd859ffffdec4}, + {0x9732f135, 0xffffd859ffffdec5}, + {0x9732f136, 0xffffd859ffffdec6}, + {0x9732f137, 0xffffd859ffffdec7}, + {0x9732f138, 0xffffd859ffffdec8}, + {0x9732f139, 0xffffd859ffffdec9}, + {0x9732f230, 0xffffd859ffffdeca}, + {0x9732f231, 0xffffd859ffffdecb}, + {0x9732f232, 0xffffd859ffffdecc}, + {0x9732f233, 0xffffd859ffffdecd}, + {0x9732f234, 0xffffd859ffffdece}, + {0x9732f235, 0xffffd859ffffdecf}, + {0x9732f236, 0xffffd859ffffded0}, + {0x9732f237, 0xffffd859ffffded1}, + {0x9732f238, 0xffffd859ffffded2}, + {0x9732f239, 0xffffd859ffffded3}, + {0x9732f330, 0xffffd859ffffded4}, + {0x9732f331, 0xffffd859ffffded5}, + {0x9732f332, 0xffffd859ffffded6}, + {0x9732f333, 0xffffd859ffffded7}, + {0x9732f334, 0xffffd859ffffded8}, + {0x9732f335, 0xffffd859ffffded9}, + {0x9732f336, 0xffffd859ffffdeda}, + {0x9732f337, 0xffffd859ffffdedb}, + {0x9732f338, 0xffffd859ffffdedc}, + {0x9732f339, 0xffffd859ffffdedd}, + {0x9732f430, 0xffffd859ffffdede}, + {0x9732f431, 0xffffd859ffffdedf}, + {0x9732f432, 0xffffd859ffffdee0}, + {0x9732f433, 0xffffd859ffffdee1}, + {0x9732f434, 0xffffd859ffffdee2}, + {0x9732f435, 0xffffd859ffffdee3}, + {0x9732f436, 0xffffd859ffffdee4}, + {0x9732f437, 0xffffd859ffffdee5}, + {0x9732f438, 0xffffd859ffffdee6}, + {0x9732f439, 0xffffd859ffffdee7}, + {0x9732f530, 0xffffd859ffffdee8}, + {0x9732f531, 0xffffd859ffffdee9}, + {0x9732f532, 0xffffd859ffffdeea}, + {0x9732f533, 0xffffd859ffffdeeb}, + {0x9732f534, 0xffffd859ffffdeec}, + {0x9732f535, 0xffffd859ffffdeed}, + {0x9732f536, 0xffffd859ffffdeee}, + {0x9732f537, 0xffffd859ffffdeef}, + {0x9732f538, 0xffffd859ffffdef0}, + {0x9732f539, 0xffffd859ffffdef1}, + {0x9732f630, 0xffffd859ffffdef2}, + {0x9732f631, 0xffffd859ffffdef3}, + {0x9732f632, 0xffffd859ffffdef4}, + {0x9732f633, 0xffffd859ffffdef5}, + {0x9732f634, 0xffffd859ffffdef6}, + {0x9732f635, 0xffffd859ffffdef7}, + {0x9732f636, 0xffffd859ffffdef8}, + {0x9732f637, 0xffffd859ffffdef9}, + {0x9732f638, 0xffffd859ffffdefa}, + {0x9732f639, 0xffffd859ffffdefb}, + {0x9732f730, 0xffffd859ffffdefc}, + {0x9732f731, 0xffffd859ffffdefd}, + {0x9732f732, 0xffffd859ffffdefe}, + {0x9732f733, 0xffffd859ffffdeff}, + {0x9732f734, 0xffffd859ffffdf00}, + {0x9732f735, 0xffffd859ffffdf01}, + {0x9732f736, 0xffffd859ffffdf02}, + {0x9732f737, 0xffffd859ffffdf03}, + {0x9732f738, 0xffffd859ffffdf04}, + {0x9732f739, 0xffffd859ffffdf05}, + {0x9732f830, 0xffffd859ffffdf06}, + {0x9732f831, 0xffffd859ffffdf07}, + {0x9732f832, 0xffffd859ffffdf08}, + {0x9732f833, 0xffffd859ffffdf09}, + {0x9732f834, 0xffffd859ffffdf0a}, + {0x9732f835, 0xffffd859ffffdf0b}, + {0x9732f836, 0xffffd859ffffdf0c}, + {0x9732f837, 0xffffd859ffffdf0d}, + {0x9732f838, 0xffffd859ffffdf0e}, + {0x9732f839, 0xffffd859ffffdf0f}, + {0x9732f930, 0xffffd859ffffdf10}, + {0x9732f931, 0xffffd859ffffdf11}, + {0x9732f932, 0xffffd859ffffdf12}, + {0x9732f933, 0xffffd859ffffdf13}, + {0x9732f934, 0xffffd859ffffdf14}, + {0x9732f935, 0xffffd859ffffdf15}, + {0x9732f936, 0xffffd859ffffdf16}, + {0x9732f937, 0xffffd859ffffdf17}, + {0x9732f938, 0xffffd859ffffdf18}, + {0x9732f939, 0xffffd859ffffdf19}, + {0x9732fa30, 0xffffd859ffffdf1a}, + {0x9732fa31, 0xffffd859ffffdf1b}, + {0x9732fa32, 0xffffd859ffffdf1c}, + {0x9732fa33, 0xffffd859ffffdf1d}, + {0x9732fa34, 0xffffd859ffffdf1e}, + {0x9732fa35, 0xffffd859ffffdf1f}, + {0x9732fa36, 0xffffd859ffffdf20}, + {0x9732fa37, 0xffffd859ffffdf21}, + {0x9732fa38, 0xffffd859ffffdf22}, + {0x9732fa39, 0xffffd859ffffdf23}, + {0x9732fb30, 0xffffd859ffffdf24}, + {0x9732fb31, 0xffffd859ffffdf25}, + {0x9732fb32, 0xffffd859ffffdf26}, + {0x9732fb33, 0xffffd859ffffdf27}, + {0x9732fb34, 0xffffd859ffffdf28}, + {0x9732fb35, 0xffffd859ffffdf29}, + {0x9732fb36, 0xffffd859ffffdf2a}, + {0x9732fb37, 0xffffd859ffffdf2b}, + {0x9732fb38, 0xffffd859ffffdf2c}, + {0x9732fb39, 0xffffd859ffffdf2d}, + {0x9732fc30, 0xffffd859ffffdf2e}, + {0x9732fc31, 0xffffd859ffffdf2f}, + {0x9732fc32, 0xffffd859ffffdf30}, + {0x9732fc33, 0xffffd859ffffdf31}, + {0x9732fc34, 0xffffd859ffffdf32}, + {0x9732fc35, 0xffffd859ffffdf33}, + {0x9732fc36, 0xffffd859ffffdf34}, + {0x9732fc37, 0xffffd859ffffdf35}, + {0x9732fc38, 0xffffd859ffffdf36}, + {0x9732fc39, 0xffffd859ffffdf37}, + {0x9732fd30, 0xffffd859ffffdf38}, + {0x9732fd31, 0xffffd859ffffdf39}, + {0x9732fd32, 0xffffd859ffffdf3a}, + {0x9732fd33, 0xffffd859ffffdf3b}, + {0x9732fd34, 0xffffd859ffffdf3c}, + {0x9732fd35, 0xffffd859ffffdf3d}, + {0x9732fd36, 0xffffd859ffffdf3e}, + {0x9732fd37, 0xffffd859ffffdf3f}, + {0x9732fd38, 0xffffd859ffffdf40}, + {0x9732fd39, 0xffffd859ffffdf41}, + {0x9732fe30, 0xffffd859ffffdf42}, + {0x9732fe31, 0xffffd859ffffdf43}, + {0x9732fe32, 0xffffd859ffffdf44}, + {0x9732fe33, 0xffffd859ffffdf45}, + {0x9732fe34, 0xffffd859ffffdf46}, + {0x9732fe35, 0xffffd859ffffdf47}, + {0x9732fe36, 0xffffd859ffffdf48}, + {0x9732fe37, 0xffffd859ffffdf49}, + {0x9732fe38, 0xffffd859ffffdf4a}, + {0x9732fe39, 0xffffd859ffffdf4b}, + {0x97338130, 0xffffd859ffffdf4c}, + {0x97338131, 0xffffd859ffffdf4d}, + {0x97338132, 0xffffd859ffffdf4e}, + {0x97338133, 0xffffd859ffffdf4f}, + {0x97338134, 0xffffd859ffffdf50}, + {0x97338135, 0xffffd859ffffdf51}, + {0x97338136, 0xffffd859ffffdf52}, + {0x97338137, 0xffffd859ffffdf53}, + {0x97338138, 0xffffd859ffffdf54}, + {0x97338139, 0xffffd859ffffdf55}, + {0x97338230, 0xffffd859ffffdf56}, + {0x97338231, 0xffffd859ffffdf57}, + {0x97338232, 0xffffd859ffffdf58}, + {0x97338233, 0xffffd859ffffdf59}, + {0x97338234, 0xffffd859ffffdf5a}, + {0x97338235, 0xffffd859ffffdf5b}, + {0x97338236, 0xffffd859ffffdf5c}, + {0x97338237, 0xffffd859ffffdf5d}, + {0x97338238, 0xffffd859ffffdf5e}, + {0x97338239, 0xffffd859ffffdf5f}, + {0x97338330, 0xffffd859ffffdf60}, + {0x97338331, 0xffffd859ffffdf61}, + {0x97338332, 0xffffd859ffffdf62}, + {0x97338333, 0xffffd859ffffdf63}, + {0x97338334, 0xffffd859ffffdf64}, + {0x97338335, 0xffffd859ffffdf65}, + {0x97338336, 0xffffd859ffffdf66}, + {0x97338337, 0xffffd859ffffdf67}, + {0x97338338, 0xffffd859ffffdf68}, + {0x97338339, 0xffffd859ffffdf69}, + {0x97338430, 0xffffd859ffffdf6a}, + {0x97338431, 0xffffd859ffffdf6b}, + {0x97338432, 0xffffd859ffffdf6c}, + {0x97338433, 0xffffd859ffffdf6d}, + {0x97338434, 0xffffd859ffffdf6e}, + {0x97338435, 0xffffd859ffffdf6f}, + {0x97338436, 0xffffd859ffffdf70}, + {0x97338437, 0xffffd859ffffdf71}, + {0x97338438, 0xffffd859ffffdf72}, + {0x97338439, 0xffffd859ffffdf73}, + {0x97338530, 0xffffd859ffffdf74}, + {0x97338531, 0xffffd859ffffdf75}, + {0x97338532, 0xffffd859ffffdf76}, + {0x97338533, 0xffffd859ffffdf77}, + {0x97338534, 0xffffd859ffffdf78}, + {0x97338535, 0xffffd859ffffdf79}, + {0x97338536, 0xffffd859ffffdf7a}, + {0x97338537, 0xffffd859ffffdf7b}, + {0x97338538, 0xffffd859ffffdf7c}, + {0x97338539, 0xffffd859ffffdf7d}, + {0x97338630, 0xffffd859ffffdf7e}, + {0x97338631, 0xffffd859ffffdf7f}, + {0x97338632, 0xffffd859ffffdf80}, + {0x97338633, 0xffffd859ffffdf81}, + {0x97338634, 0xffffd859ffffdf82}, + {0x97338635, 0xffffd859ffffdf83}, + {0x97338636, 0xffffd859ffffdf84}, + {0x97338637, 0xffffd859ffffdf85}, + {0x97338638, 0xffffd859ffffdf86}, + {0x97338639, 0xffffd859ffffdf87}, + {0x97338730, 0xffffd859ffffdf88}, + {0x97338731, 0xffffd859ffffdf89}, + {0x97338732, 0xffffd859ffffdf8a}, + {0x97338733, 0xffffd859ffffdf8b}, + {0x97338734, 0xffffd859ffffdf8c}, + {0x97338735, 0xffffd859ffffdf8d}, + {0x97338736, 0xffffd859ffffdf8e}, + {0x97338737, 0xffffd859ffffdf8f}, + {0x97338738, 0xffffd859ffffdf90}, + {0x97338739, 0xffffd859ffffdf91}, + {0x97338830, 0xffffd859ffffdf92}, + {0x97338831, 0xffffd859ffffdf93}, + {0x97338832, 0xffffd859ffffdf94}, + {0x97338833, 0xffffd859ffffdf95}, + {0x97338834, 0xffffd859ffffdf96}, + {0x97338835, 0xffffd859ffffdf97}, + {0x97338836, 0xffffd859ffffdf98}, + {0x97338837, 0xffffd859ffffdf99}, + {0x97338838, 0xffffd859ffffdf9a}, + {0x97338839, 0xffffd859ffffdf9b}, + {0x97338930, 0xffffd859ffffdf9c}, + {0x97338931, 0xffffd859ffffdf9d}, + {0x97338932, 0xffffd859ffffdf9e}, + {0x97338933, 0xffffd859ffffdf9f}, + {0x97338934, 0xffffd859ffffdfa0}, + {0x97338935, 0xffffd859ffffdfa1}, + {0x97338936, 0xffffd859ffffdfa2}, + {0x97338937, 0xffffd859ffffdfa3}, + {0x97338938, 0xffffd859ffffdfa4}, + {0x97338939, 0xffffd859ffffdfa5}, + {0x97338a30, 0xffffd859ffffdfa6}, + {0x97338a31, 0xffffd859ffffdfa7}, + {0x97338a32, 0xffffd859ffffdfa8}, + {0x97338a33, 0xffffd859ffffdfa9}, + {0x97338a34, 0xffffd859ffffdfaa}, + {0x97338a35, 0xffffd859ffffdfab}, + {0x97338a36, 0xffffd859ffffdfac}, + {0x97338a37, 0xffffd859ffffdfad}, + {0x97338a38, 0xffffd859ffffdfae}, + {0x97338a39, 0xffffd859ffffdfaf}, + {0x97338b30, 0xffffd859ffffdfb0}, + {0x97338b31, 0xffffd859ffffdfb1}, + {0x97338b32, 0xffffd859ffffdfb2}, + {0x97338b33, 0xffffd859ffffdfb3}, + {0x97338b34, 0xffffd859ffffdfb4}, + {0x97338b35, 0xffffd859ffffdfb5}, + {0x97338b36, 0xffffd859ffffdfb6}, + {0x97338b37, 0xffffd859ffffdfb7}, + {0x97338b38, 0xffffd859ffffdfb8}, + {0x97338b39, 0xffffd859ffffdfb9}, + {0x97338c30, 0xffffd859ffffdfba}, + {0x97338c31, 0xffffd859ffffdfbb}, + {0x97338c32, 0xffffd859ffffdfbc}, + {0x97338c33, 0xffffd859ffffdfbd}, + {0x97338c34, 0xffffd859ffffdfbe}, + {0x97338c35, 0xffffd859ffffdfbf}, + {0x97338c36, 0xffffd859ffffdfc0}, + {0x97338c37, 0xffffd859ffffdfc1}, + {0x97338c38, 0xffffd859ffffdfc2}, + {0x97338c39, 0xffffd859ffffdfc3}, + {0x97338d30, 0xffffd859ffffdfc4}, + {0x97338d31, 0xffffd859ffffdfc5}, + {0x97338d32, 0xffffd859ffffdfc6}, + {0x97338d33, 0xffffd859ffffdfc7}, + {0x97338d34, 0xffffd859ffffdfc8}, + {0x97338d35, 0xffffd859ffffdfc9}, + {0x97338d36, 0xffffd859ffffdfca}, + {0x97338d37, 0xffffd859ffffdfcb}, + {0x97338d38, 0xffffd859ffffdfcc}, + {0x97338d39, 0xffffd859ffffdfcd}, + {0x97338e30, 0xffffd859ffffdfce}, + {0x97338e31, 0xffffd859ffffdfcf}, + {0x97338e32, 0xffffd859ffffdfd0}, + {0x97338e33, 0xffffd859ffffdfd1}, + {0x97338e34, 0xffffd859ffffdfd2}, + {0x97338e35, 0xffffd859ffffdfd3}, + {0x97338e36, 0xffffd859ffffdfd4}, + {0x97338e37, 0xffffd859ffffdfd5}, + {0x97338e38, 0xffffd859ffffdfd6}, + {0x97338e39, 0xffffd859ffffdfd7}, + {0x97338f30, 0xffffd859ffffdfd8}, + {0x97338f31, 0xffffd859ffffdfd9}, + {0x97338f32, 0xffffd859ffffdfda}, + {0x97338f33, 0xffffd859ffffdfdb}, + {0x97338f34, 0xffffd859ffffdfdc}, + {0x97338f35, 0xffffd859ffffdfdd}, + {0x97338f36, 0xffffd859ffffdfde}, + {0x97338f37, 0xffffd859ffffdfdf}, + {0x97338f38, 0xffffd859ffffdfe0}, + {0x97338f39, 0xffffd859ffffdfe1}, + {0x97339030, 0xffffd859ffffdfe2}, + {0x97339031, 0xffffd859ffffdfe3}, + {0x97339032, 0xffffd859ffffdfe4}, + {0x97339033, 0xffffd859ffffdfe5}, + {0x97339034, 0xffffd859ffffdfe6}, + {0x97339035, 0xffffd859ffffdfe7}, + {0x97339036, 0xffffd859ffffdfe8}, + {0x97339037, 0xffffd859ffffdfe9}, + {0x97339038, 0xffffd859ffffdfea}, + {0x97339039, 0xffffd859ffffdfeb}, + {0x97339130, 0xffffd859ffffdfec}, + {0x97339131, 0xffffd859ffffdfed}, + {0x97339132, 0xffffd859ffffdfee}, + {0x97339133, 0xffffd859ffffdfef}, + {0x97339134, 0xffffd859ffffdff0}, + {0x97339135, 0xffffd859ffffdff1}, + {0x97339136, 0xffffd859ffffdff2}, + {0x97339137, 0xffffd859ffffdff3}, + {0x97339138, 0xffffd859ffffdff4}, + {0x97339139, 0xffffd859ffffdff5}, + {0x97339230, 0xffffd859ffffdff6}, + {0x97339231, 0xffffd859ffffdff7}, + {0x97339232, 0xffffd859ffffdff8}, + {0x97339233, 0xffffd859ffffdff9}, + {0x97339234, 0xffffd859ffffdffa}, + {0x97339235, 0xffffd859ffffdffb}, + {0x97339236, 0xffffd859ffffdffc}, + {0x97339237, 0xffffd859ffffdffd}, + {0x97339238, 0xffffd859ffffdffe}, + {0x97339239, 0xffffd859ffffdfff}, + {0x97339330, 0xffffd85affffdc00}, + {0x97339331, 0xffffd85affffdc01}, + {0x97339332, 0xffffd85affffdc02}, + {0x97339333, 0xffffd85affffdc03}, + {0x97339334, 0xffffd85affffdc04}, + {0x97339335, 0xffffd85affffdc05}, + {0x97339336, 0xffffd85affffdc06}, + {0x97339337, 0xffffd85affffdc07}, + {0x97339338, 0xffffd85affffdc08}, + {0x97339339, 0xffffd85affffdc09}, + {0x97339430, 0xffffd85affffdc0a}, + {0x97339431, 0xffffd85affffdc0b}, + {0x97339432, 0xffffd85affffdc0c}, + {0x97339433, 0xffffd85affffdc0d}, + {0x97339434, 0xffffd85affffdc0e}, + {0x97339435, 0xffffd85affffdc0f}, + {0x97339436, 0xffffd85affffdc10}, + {0x97339437, 0xffffd85affffdc11}, + {0x97339438, 0xffffd85affffdc12}, + {0x97339439, 0xffffd85affffdc13}, + {0x97339530, 0xffffd85affffdc14}, + {0x97339531, 0xffffd85affffdc15}, + {0x97339532, 0xffffd85affffdc16}, + {0x97339533, 0xffffd85affffdc17}, + {0x97339534, 0xffffd85affffdc18}, + {0x97339535, 0xffffd85affffdc19}, + {0x97339536, 0xffffd85affffdc1a}, + {0x97339537, 0xffffd85affffdc1b}, + {0x97339538, 0xffffd85affffdc1c}, + {0x97339539, 0xffffd85affffdc1d}, + {0x97339630, 0xffffd85affffdc1e}, + {0x97339631, 0xffffd85affffdc1f}, + {0x97339632, 0xffffd85affffdc20}, + {0x97339633, 0xffffd85affffdc21}, + {0x97339634, 0xffffd85affffdc22}, + {0x97339635, 0xffffd85affffdc23}, + {0x97339636, 0xffffd85affffdc24}, + {0x97339637, 0xffffd85affffdc25}, + {0x97339638, 0xffffd85affffdc26}, + {0x97339639, 0xffffd85affffdc27}, + {0x97339730, 0xffffd85affffdc28}, + {0x97339731, 0xffffd85affffdc29}, + {0x97339732, 0xffffd85affffdc2a}, + {0x97339733, 0xffffd85affffdc2b}, + {0x97339734, 0xffffd85affffdc2c}, + {0x97339735, 0xffffd85affffdc2d}, + {0x97339736, 0xffffd85affffdc2e}, + {0x97339737, 0xffffd85affffdc2f}, + {0x97339738, 0xffffd85affffdc30}, + {0x97339739, 0xffffd85affffdc31}, + {0x97339830, 0xffffd85affffdc32}, + {0x97339831, 0xffffd85affffdc33}, + {0x97339832, 0xffffd85affffdc34}, + {0x97339833, 0xffffd85affffdc35}, + {0x97339834, 0xffffd85affffdc36}, + {0x97339835, 0xffffd85affffdc37}, + {0x97339836, 0xffffd85affffdc38}, + {0x97339837, 0xffffd85affffdc39}, + {0x97339838, 0xffffd85affffdc3a}, + {0x97339839, 0xffffd85affffdc3b}, + {0x97339930, 0xffffd85affffdc3c}, + {0x97339931, 0xffffd85affffdc3d}, + {0x97339932, 0xffffd85affffdc3e}, + {0x97339933, 0xffffd85affffdc3f}, + {0x97339934, 0xffffd85affffdc40}, + {0x97339935, 0xffffd85affffdc41}, + {0x97339936, 0xffffd85affffdc42}, + {0x97339937, 0xffffd85affffdc43}, + {0x97339938, 0xffffd85affffdc44}, + {0x97339939, 0xffffd85affffdc45}, + {0x97339a30, 0xffffd85affffdc46}, + {0x97339a31, 0xffffd85affffdc47}, + {0x97339a32, 0xffffd85affffdc48}, + {0x97339a33, 0xffffd85affffdc49}, + {0x97339a34, 0xffffd85affffdc4a}, + {0x97339a35, 0xffffd85affffdc4b}, + {0x97339a36, 0xffffd85affffdc4c}, + {0x97339a37, 0xffffd85affffdc4d}, + {0x97339a38, 0xffffd85affffdc4e}, + {0x97339a39, 0xffffd85affffdc4f}, + {0x97339b30, 0xffffd85affffdc50}, + {0x97339b31, 0xffffd85affffdc51}, + {0x97339b32, 0xffffd85affffdc52}, + {0x97339b33, 0xffffd85affffdc53}, + {0x97339b34, 0xffffd85affffdc54}, + {0x97339b35, 0xffffd85affffdc55}, + {0x97339b36, 0xffffd85affffdc56}, + {0x97339b37, 0xffffd85affffdc57}, + {0x97339b38, 0xffffd85affffdc58}, + {0x97339b39, 0xffffd85affffdc59}, + {0x97339c30, 0xffffd85affffdc5a}, + {0x97339c31, 0xffffd85affffdc5b}, + {0x97339c32, 0xffffd85affffdc5c}, + {0x97339c33, 0xffffd85affffdc5d}, + {0x97339c34, 0xffffd85affffdc5e}, + {0x97339c35, 0xffffd85affffdc5f}, + {0x97339c36, 0xffffd85affffdc60}, + {0x97339c37, 0xffffd85affffdc61}, + {0x97339c38, 0xffffd85affffdc62}, + {0x97339c39, 0xffffd85affffdc63}, + {0x97339d30, 0xffffd85affffdc64}, + {0x97339d31, 0xffffd85affffdc65}, + {0x97339d32, 0xffffd85affffdc66}, + {0x97339d33, 0xffffd85affffdc67}, + {0x97339d34, 0xffffd85affffdc68}, + {0x97339d35, 0xffffd85affffdc69}, + {0x97339d36, 0xffffd85affffdc6a}, + {0x97339d37, 0xffffd85affffdc6b}, + {0x97339d38, 0xffffd85affffdc6c}, + {0x97339d39, 0xffffd85affffdc6d}, + {0x97339e30, 0xffffd85affffdc6e}, + {0x97339e31, 0xffffd85affffdc6f}, + {0x97339e32, 0xffffd85affffdc70}, + {0x97339e33, 0xffffd85affffdc71}, + {0x97339e34, 0xffffd85affffdc72}, + {0x97339e35, 0xffffd85affffdc73}, + {0x97339e36, 0xffffd85affffdc74}, + {0x97339e37, 0xffffd85affffdc75}, + {0x97339e38, 0xffffd85affffdc76}, + {0x97339e39, 0xffffd85affffdc77}, + {0x97339f30, 0xffffd85affffdc78}, + {0x97339f31, 0xffffd85affffdc79}, + {0x97339f32, 0xffffd85affffdc7a}, + {0x97339f33, 0xffffd85affffdc7b}, + {0x97339f34, 0xffffd85affffdc7c}, + {0x97339f35, 0xffffd85affffdc7d}, + {0x97339f36, 0xffffd85affffdc7e}, + {0x97339f37, 0xffffd85affffdc7f}, + {0x97339f38, 0xffffd85affffdc80}, + {0x97339f39, 0xffffd85affffdc81}, + {0x9733a030, 0xffffd85affffdc82}, + {0x9733a031, 0xffffd85affffdc83}, + {0x9733a032, 0xffffd85affffdc84}, + {0x9733a033, 0xffffd85affffdc85}, + {0x9733a034, 0xffffd85affffdc86}, + {0x9733a035, 0xffffd85affffdc87}, + {0x9733a036, 0xffffd85affffdc88}, + {0x9733a037, 0xffffd85affffdc89}, + {0x9733a038, 0xffffd85affffdc8a}, + {0x9733a039, 0xffffd85affffdc8b}, + {0x9733a130, 0xffffd85affffdc8c}, + {0x9733a131, 0xffffd85affffdc8d}, + {0x9733a132, 0xffffd85affffdc8e}, + {0x9733a133, 0xffffd85affffdc8f}, + {0x9733a134, 0xffffd85affffdc90}, + {0x9733a135, 0xffffd85affffdc91}, + {0x9733a136, 0xffffd85affffdc92}, + {0x9733a137, 0xffffd85affffdc93}, + {0x9733a138, 0xffffd85affffdc94}, + {0x9733a139, 0xffffd85affffdc95}, + {0x9733a230, 0xffffd85affffdc96}, + {0x9733a231, 0xffffd85affffdc97}, + {0x9733a232, 0xffffd85affffdc98}, + {0x9733a233, 0xffffd85affffdc99}, + {0x9733a234, 0xffffd85affffdc9a}, + {0x9733a235, 0xffffd85affffdc9b}, + {0x9733a236, 0xffffd85affffdc9c}, + {0x9733a237, 0xffffd85affffdc9d}, + {0x9733a238, 0xffffd85affffdc9e}, + {0x9733a239, 0xffffd85affffdc9f}, + {0x9733a330, 0xffffd85affffdca0}, + {0x9733a331, 0xffffd85affffdca1}, + {0x9733a332, 0xffffd85affffdca2}, + {0x9733a333, 0xffffd85affffdca3}, + {0x9733a334, 0xffffd85affffdca4}, + {0x9733a335, 0xffffd85affffdca5}, + {0x9733a336, 0xffffd85affffdca6}, + {0x9733a337, 0xffffd85affffdca7}, + {0x9733a338, 0xffffd85affffdca8}, + {0x9733a339, 0xffffd85affffdca9}, + {0x9733a430, 0xffffd85affffdcaa}, + {0x9733a431, 0xffffd85affffdcab}, + {0x9733a432, 0xffffd85affffdcac}, + {0x9733a433, 0xffffd85affffdcad}, + {0x9733a434, 0xffffd85affffdcae}, + {0x9733a435, 0xffffd85affffdcaf}, + {0x9733a436, 0xffffd85affffdcb0}, + {0x9733a437, 0xffffd85affffdcb1}, + {0x9733a438, 0xffffd85affffdcb2}, + {0x9733a439, 0xffffd85affffdcb3}, + {0x9733a530, 0xffffd85affffdcb4}, + {0x9733a531, 0xffffd85affffdcb5}, + {0x9733a532, 0xffffd85affffdcb6}, + {0x9733a533, 0xffffd85affffdcb7}, + {0x9733a534, 0xffffd85affffdcb8}, + {0x9733a535, 0xffffd85affffdcb9}, + {0x9733a536, 0xffffd85affffdcba}, + {0x9733a537, 0xffffd85affffdcbb}, + {0x9733a538, 0xffffd85affffdcbc}, + {0x9733a539, 0xffffd85affffdcbd}, + {0x9733a630, 0xffffd85affffdcbe}, + {0x9733a631, 0xffffd85affffdcbf}, + {0x9733a632, 0xffffd85affffdcc0}, + {0x9733a633, 0xffffd85affffdcc1}, + {0x9733a634, 0xffffd85affffdcc2}, + {0x9733a635, 0xffffd85affffdcc3}, + {0x9733a636, 0xffffd85affffdcc4}, + {0x9733a637, 0xffffd85affffdcc5}, + {0x9733a638, 0xffffd85affffdcc6}, + {0x9733a639, 0xffffd85affffdcc7}, + {0x9733a730, 0xffffd85affffdcc8}, + {0x9733a731, 0xffffd85affffdcc9}, + {0x9733a732, 0xffffd85affffdcca}, + {0x9733a733, 0xffffd85affffdccb}, + {0x9733a734, 0xffffd85affffdccc}, + {0x9733a735, 0xffffd85affffdccd}, + {0x9733a736, 0xffffd85affffdcce}, + {0x9733a737, 0xffffd85affffdccf}, + {0x9733a738, 0xffffd85affffdcd0}, + {0x9733a739, 0xffffd85affffdcd1}, + {0x9733a830, 0xffffd85affffdcd2}, + {0x9733a831, 0xffffd85affffdcd3}, + {0x9733a832, 0xffffd85affffdcd4}, + {0x9733a833, 0xffffd85affffdcd5}, + {0x9733a834, 0xffffd85affffdcd6}, + {0x9733a835, 0xffffd85affffdcd7}, + {0x9733a836, 0xffffd85affffdcd8}, + {0x9733a837, 0xffffd85affffdcd9}, + {0x9733a838, 0xffffd85affffdcda}, + {0x9733a839, 0xffffd85affffdcdb}, + {0x9733a930, 0xffffd85affffdcdc}, + {0x9733a931, 0xffffd85affffdcdd}, + {0x9733a932, 0xffffd85affffdcde}, + {0x9733a933, 0xffffd85affffdcdf}, + {0x9733a934, 0xffffd85affffdce0}, + {0x9733a935, 0xffffd85affffdce1}, + {0x9733a936, 0xffffd85affffdce2}, + {0x9733a937, 0xffffd85affffdce3}, + {0x9733a938, 0xffffd85affffdce4}, + {0x9733a939, 0xffffd85affffdce5}, + {0x9733aa30, 0xffffd85affffdce6}, + {0x9733aa31, 0xffffd85affffdce7}, + {0x9733aa32, 0xffffd85affffdce8}, + {0x9733aa33, 0xffffd85affffdce9}, + {0x9733aa34, 0xffffd85affffdcea}, + {0x9733aa35, 0xffffd85affffdceb}, + {0x9733aa36, 0xffffd85affffdcec}, + {0x9733aa37, 0xffffd85affffdced}, + {0x9733aa38, 0xffffd85affffdcee}, + {0x9733aa39, 0xffffd85affffdcef}, + {0x9733ab30, 0xffffd85affffdcf0}, + {0x9733ab31, 0xffffd85affffdcf1}, + {0x9733ab32, 0xffffd85affffdcf2}, + {0x9733ab33, 0xffffd85affffdcf3}, + {0x9733ab34, 0xffffd85affffdcf4}, + {0x9733ab35, 0xffffd85affffdcf5}, + {0x9733ab36, 0xffffd85affffdcf6}, + {0x9733ab37, 0xffffd85affffdcf7}, + {0x9733ab38, 0xffffd85affffdcf8}, + {0x9733ab39, 0xffffd85affffdcf9}, + {0x9733ac30, 0xffffd85affffdcfa}, + {0x9733ac31, 0xffffd85affffdcfb}, + {0x9733ac32, 0xffffd85affffdcfc}, + {0x9733ac33, 0xffffd85affffdcfd}, + {0x9733ac34, 0xffffd85affffdcfe}, + {0x9733ac35, 0xffffd85affffdcff}, + {0x9733ac36, 0xffffd85affffdd00}, + {0x9733ac37, 0xffffd85affffdd01}, + {0x9733ac38, 0xffffd85affffdd02}, + {0x9733ac39, 0xffffd85affffdd03}, + {0x9733ad30, 0xffffd85affffdd04}, + {0x9733ad31, 0xffffd85affffdd05}, + {0x9733ad32, 0xffffd85affffdd06}, + {0x9733ad33, 0xffffd85affffdd07}, + {0x9733ad34, 0xffffd85affffdd08}, + {0x9733ad35, 0xffffd85affffdd09}, + {0x9733ad36, 0xffffd85affffdd0a}, + {0x9733ad37, 0xffffd85affffdd0b}, + {0x9733ad38, 0xffffd85affffdd0c}, + {0x9733ad39, 0xffffd85affffdd0d}, + {0x9733ae30, 0xffffd85affffdd0e}, + {0x9733ae31, 0xffffd85affffdd0f}, + {0x9733ae32, 0xffffd85affffdd10}, + {0x9733ae33, 0xffffd85affffdd11}, + {0x9733ae34, 0xffffd85affffdd12}, + {0x9733ae35, 0xffffd85affffdd13}, + {0x9733ae36, 0xffffd85affffdd14}, + {0x9733ae37, 0xffffd85affffdd15}, + {0x9733ae38, 0xffffd85affffdd16}, + {0x9733ae39, 0xffffd85affffdd17}, + {0x9733af30, 0xffffd85affffdd18}, + {0x9733af31, 0xffffd85affffdd19}, + {0x9733af32, 0xffffd85affffdd1a}, + {0x9733af33, 0xffffd85affffdd1b}, + {0x9733af34, 0xffffd85affffdd1c}, + {0x9733af35, 0xffffd85affffdd1d}, + {0x9733af36, 0xffffd85affffdd1e}, + {0x9733af37, 0xffffd85affffdd1f}, + {0x9733af38, 0xffffd85affffdd20}, + {0x9733af39, 0xffffd85affffdd21}, + {0x9733b030, 0xffffd85affffdd22}, + {0x9733b031, 0xffffd85affffdd23}, + {0x9733b032, 0xffffd85affffdd24}, + {0x9733b033, 0xffffd85affffdd25}, + {0x9733b034, 0xffffd85affffdd26}, + {0x9733b035, 0xffffd85affffdd27}, + {0x9733b036, 0xffffd85affffdd28}, + {0x9733b037, 0xffffd85affffdd29}, + {0x9733b038, 0xffffd85affffdd2a}, + {0x9733b039, 0xffffd85affffdd2b}, + {0x9733b130, 0xffffd85affffdd2c}, + {0x9733b131, 0xffffd85affffdd2d}, + {0x9733b132, 0xffffd85affffdd2e}, + {0x9733b133, 0xffffd85affffdd2f}, + {0x9733b134, 0xffffd85affffdd30}, + {0x9733b135, 0xffffd85affffdd31}, + {0x9733b136, 0xffffd85affffdd32}, + {0x9733b137, 0xffffd85affffdd33}, + {0x9733b138, 0xffffd85affffdd34}, + {0x9733b139, 0xffffd85affffdd35}, + {0x9733b230, 0xffffd85affffdd36}, + {0x9733b231, 0xffffd85affffdd37}, + {0x9733b232, 0xffffd85affffdd38}, + {0x9733b233, 0xffffd85affffdd39}, + {0x9733b234, 0xffffd85affffdd3a}, + {0x9733b235, 0xffffd85affffdd3b}, + {0x9733b236, 0xffffd85affffdd3c}, + {0x9733b237, 0xffffd85affffdd3d}, + {0x9733b238, 0xffffd85affffdd3e}, + {0x9733b239, 0xffffd85affffdd3f}, + {0x9733b330, 0xffffd85affffdd40}, + {0x9733b331, 0xffffd85affffdd41}, + {0x9733b332, 0xffffd85affffdd42}, + {0x9733b333, 0xffffd85affffdd43}, + {0x9733b334, 0xffffd85affffdd44}, + {0x9733b335, 0xffffd85affffdd45}, + {0x9733b336, 0xffffd85affffdd46}, + {0x9733b337, 0xffffd85affffdd47}, + {0x9733b338, 0xffffd85affffdd48}, + {0x9733b339, 0xffffd85affffdd49}, + {0x9733b430, 0xffffd85affffdd4a}, + {0x9733b431, 0xffffd85affffdd4b}, + {0x9733b432, 0xffffd85affffdd4c}, + {0x9733b433, 0xffffd85affffdd4d}, + {0x9733b434, 0xffffd85affffdd4e}, + {0x9733b435, 0xffffd85affffdd4f}, + {0x9733b436, 0xffffd85affffdd50}, + {0x9733b437, 0xffffd85affffdd51}, + {0x9733b438, 0xffffd85affffdd52}, + {0x9733b439, 0xffffd85affffdd53}, + {0x9733b530, 0xffffd85affffdd54}, + {0x9733b531, 0xffffd85affffdd55}, + {0x9733b532, 0xffffd85affffdd56}, + {0x9733b533, 0xffffd85affffdd57}, + {0x9733b534, 0xffffd85affffdd58}, + {0x9733b535, 0xffffd85affffdd59}, + {0x9733b536, 0xffffd85affffdd5a}, + {0x9733b537, 0xffffd85affffdd5b}, + {0x9733b538, 0xffffd85affffdd5c}, + {0x9733b539, 0xffffd85affffdd5d}, + {0x9733b630, 0xffffd85affffdd5e}, + {0x9733b631, 0xffffd85affffdd5f}, + {0x9733b632, 0xffffd85affffdd60}, + {0x9733b633, 0xffffd85affffdd61}, + {0x9733b634, 0xffffd85affffdd62}, + {0x9733b635, 0xffffd85affffdd63}, + {0x9733b636, 0xffffd85affffdd64}, + {0x9733b637, 0xffffd85affffdd65}, + {0x9733b638, 0xffffd85affffdd66}, + {0x9733b639, 0xffffd85affffdd67}, + {0x9733b730, 0xffffd85affffdd68}, + {0x9733b731, 0xffffd85affffdd69}, + {0x9733b732, 0xffffd85affffdd6a}, + {0x9733b733, 0xffffd85affffdd6b}, + {0x9733b734, 0xffffd85affffdd6c}, + {0x9733b735, 0xffffd85affffdd6d}, + {0x9733b736, 0xffffd85affffdd6e}, + {0x9733b737, 0xffffd85affffdd6f}, + {0x9733b738, 0xffffd85affffdd70}, + {0x9733b739, 0xffffd85affffdd71}, + {0x9733b830, 0xffffd85affffdd72}, + {0x9733b831, 0xffffd85affffdd73}, + {0x9733b832, 0xffffd85affffdd74}, + {0x9733b833, 0xffffd85affffdd75}, + {0x9733b834, 0xffffd85affffdd76}, + {0x9733b835, 0xffffd85affffdd77}, + {0x9733b836, 0xffffd85affffdd78}, + {0x9733b837, 0xffffd85affffdd79}, + {0x9733b838, 0xffffd85affffdd7a}, + {0x9733b839, 0xffffd85affffdd7b}, + {0x9733b930, 0xffffd85affffdd7c}, + {0x9733b931, 0xffffd85affffdd7d}, + {0x9733b932, 0xffffd85affffdd7e}, + {0x9733b933, 0xffffd85affffdd7f}, + {0x9733b934, 0xffffd85affffdd80}, + {0x9733b935, 0xffffd85affffdd81}, + {0x9733b936, 0xffffd85affffdd82}, + {0x9733b937, 0xffffd85affffdd83}, + {0x9733b938, 0xffffd85affffdd84}, + {0x9733b939, 0xffffd85affffdd85}, + {0x9733ba30, 0xffffd85affffdd86}, + {0x9733ba31, 0xffffd85affffdd87}, + {0x9733ba32, 0xffffd85affffdd88}, + {0x9733ba33, 0xffffd85affffdd89}, + {0x9733ba34, 0xffffd85affffdd8a}, + {0x9733ba35, 0xffffd85affffdd8b}, + {0x9733ba36, 0xffffd85affffdd8c}, + {0x9733ba37, 0xffffd85affffdd8d}, + {0x9733ba38, 0xffffd85affffdd8e}, + {0x9733ba39, 0xffffd85affffdd8f}, + {0x9733bb30, 0xffffd85affffdd90}, + {0x9733bb31, 0xffffd85affffdd91}, + {0x9733bb32, 0xffffd85affffdd92}, + {0x9733bb33, 0xffffd85affffdd93}, + {0x9733bb34, 0xffffd85affffdd94}, + {0x9733bb35, 0xffffd85affffdd95}, + {0x9733bb36, 0xffffd85affffdd96}, + {0x9733bb37, 0xffffd85affffdd97}, + {0x9733bb38, 0xffffd85affffdd98}, + {0x9733bb39, 0xffffd85affffdd99}, + {0x9733bc30, 0xffffd85affffdd9a}, + {0x9733bc31, 0xffffd85affffdd9b}, + {0x9733bc32, 0xffffd85affffdd9c}, + {0x9733bc33, 0xffffd85affffdd9d}, + {0x9733bc34, 0xffffd85affffdd9e}, + {0x9733bc35, 0xffffd85affffdd9f}, + {0x9733bc36, 0xffffd85affffdda0}, + {0x9733bc37, 0xffffd85affffdda1}, + {0x9733bc38, 0xffffd85affffdda2}, + {0x9733bc39, 0xffffd85affffdda3}, + {0x9733bd30, 0xffffd85affffdda4}, + {0x9733bd31, 0xffffd85affffdda5}, + {0x9733bd32, 0xffffd85affffdda6}, + {0x9733bd33, 0xffffd85affffdda7}, + {0x9733bd34, 0xffffd85affffdda8}, + {0x9733bd35, 0xffffd85affffdda9}, + {0x9733bd36, 0xffffd85affffddaa}, + {0x9733bd37, 0xffffd85affffddab}, + {0x9733bd38, 0xffffd85affffddac}, + {0x9733bd39, 0xffffd85affffddad}, + {0x9733be30, 0xffffd85affffddae}, + {0x9733be31, 0xffffd85affffddaf}, + {0x9733be32, 0xffffd85affffddb0}, + {0x9733be33, 0xffffd85affffddb1}, + {0x9733be34, 0xffffd85affffddb2}, + {0x9733be35, 0xffffd85affffddb3}, + {0x9733be36, 0xffffd85affffddb4}, + {0x9733be37, 0xffffd85affffddb5}, + {0x9733be38, 0xffffd85affffddb6}, + {0x9733be39, 0xffffd85affffddb7}, + {0x9733bf30, 0xffffd85affffddb8}, + {0x9733bf31, 0xffffd85affffddb9}, + {0x9733bf32, 0xffffd85affffddba}, + {0x9733bf33, 0xffffd85affffddbb}, + {0x9733bf34, 0xffffd85affffddbc}, + {0x9733bf35, 0xffffd85affffddbd}, + {0x9733bf36, 0xffffd85affffddbe}, + {0x9733bf37, 0xffffd85affffddbf}, + {0x9733bf38, 0xffffd85affffddc0}, + {0x9733bf39, 0xffffd85affffddc1}, + {0x9733c030, 0xffffd85affffddc2}, + {0x9733c031, 0xffffd85affffddc3}, + {0x9733c032, 0xffffd85affffddc4}, + {0x9733c033, 0xffffd85affffddc5}, + {0x9733c034, 0xffffd85affffddc6}, + {0x9733c035, 0xffffd85affffddc7}, + {0x9733c036, 0xffffd85affffddc8}, + {0x9733c037, 0xffffd85affffddc9}, + {0x9733c038, 0xffffd85affffddca}, + {0x9733c039, 0xffffd85affffddcb}, + {0x9733c130, 0xffffd85affffddcc}, + {0x9733c131, 0xffffd85affffddcd}, + {0x9733c132, 0xffffd85affffddce}, + {0x9733c133, 0xffffd85affffddcf}, + {0x9733c134, 0xffffd85affffddd0}, + {0x9733c135, 0xffffd85affffddd1}, + {0x9733c136, 0xffffd85affffddd2}, + {0x9733c137, 0xffffd85affffddd3}, + {0x9733c138, 0xffffd85affffddd4}, + {0x9733c139, 0xffffd85affffddd5}, + {0x9733c230, 0xffffd85affffddd6}, + {0x9733c231, 0xffffd85affffddd7}, + {0x9733c232, 0xffffd85affffddd8}, + {0x9733c233, 0xffffd85affffddd9}, + {0x9733c234, 0xffffd85affffddda}, + {0x9733c235, 0xffffd85affffdddb}, + {0x9733c236, 0xffffd85affffdddc}, + {0x9733c237, 0xffffd85affffdddd}, + {0x9733c238, 0xffffd85affffddde}, + {0x9733c239, 0xffffd85affffdddf}, + {0x9733c330, 0xffffd85affffdde0}, + {0x9733c331, 0xffffd85affffdde1}, + {0x9733c332, 0xffffd85affffdde2}, + {0x9733c333, 0xffffd85affffdde3}, + {0x9733c334, 0xffffd85affffdde4}, + {0x9733c335, 0xffffd85affffdde5}, + {0x9733c336, 0xffffd85affffdde6}, + {0x9733c337, 0xffffd85affffdde7}, + {0x9733c338, 0xffffd85affffdde8}, + {0x9733c339, 0xffffd85affffdde9}, + {0x9733c430, 0xffffd85affffddea}, + {0x9733c431, 0xffffd85affffddeb}, + {0x9733c432, 0xffffd85affffddec}, + {0x9733c433, 0xffffd85affffdded}, + {0x9733c434, 0xffffd85affffddee}, + {0x9733c435, 0xffffd85affffddef}, + {0x9733c436, 0xffffd85affffddf0}, + {0x9733c437, 0xffffd85affffddf1}, + {0x9733c438, 0xffffd85affffddf2}, + {0x9733c439, 0xffffd85affffddf3}, + {0x9733c530, 0xffffd85affffddf4}, + {0x9733c531, 0xffffd85affffddf5}, + {0x9733c532, 0xffffd85affffddf6}, + {0x9733c533, 0xffffd85affffddf7}, + {0x9733c534, 0xffffd85affffddf8}, + {0x9733c535, 0xffffd85affffddf9}, + {0x9733c536, 0xffffd85affffddfa}, + {0x9733c537, 0xffffd85affffddfb}, + {0x9733c538, 0xffffd85affffddfc}, + {0x9733c539, 0xffffd85affffddfd}, + {0x9733c630, 0xffffd85affffddfe}, + {0x9733c631, 0xffffd85affffddff}, + {0x9733c632, 0xffffd85affffde00}, + {0x9733c633, 0xffffd85affffde01}, + {0x9733c634, 0xffffd85affffde02}, + {0x9733c635, 0xffffd85affffde03}, + {0x9733c636, 0xffffd85affffde04}, + {0x9733c637, 0xffffd85affffde05}, + {0x9733c638, 0xffffd85affffde06}, + {0x9733c639, 0xffffd85affffde07}, + {0x9733c730, 0xffffd85affffde08}, + {0x9733c731, 0xffffd85affffde09}, + {0x9733c732, 0xffffd85affffde0a}, + {0x9733c733, 0xffffd85affffde0b}, + {0x9733c734, 0xffffd85affffde0c}, + {0x9733c735, 0xffffd85affffde0d}, + {0x9733c736, 0xffffd85affffde0e}, + {0x9733c737, 0xffffd85affffde0f}, + {0x9733c738, 0xffffd85affffde10}, + {0x9733c739, 0xffffd85affffde11}, + {0x9733c830, 0xffffd85affffde12}, + {0x9733c831, 0xffffd85affffde13}, + {0x9733c832, 0xffffd85affffde14}, + {0x9733c833, 0xffffd85affffde15}, + {0x9733c834, 0xffffd85affffde16}, + {0x9733c835, 0xffffd85affffde17}, + {0x9733c836, 0xffffd85affffde18}, + {0x9733c837, 0xffffd85affffde19}, + {0x9733c838, 0xffffd85affffde1a}, + {0x9733c839, 0xffffd85affffde1b}, + {0x9733c930, 0xffffd85affffde1c}, + {0x9733c931, 0xffffd85affffde1d}, + {0x9733c932, 0xffffd85affffde1e}, + {0x9733c933, 0xffffd85affffde1f}, + {0x9733c934, 0xffffd85affffde20}, + {0x9733c935, 0xffffd85affffde21}, + {0x9733c936, 0xffffd85affffde22}, + {0x9733c937, 0xffffd85affffde23}, + {0x9733c938, 0xffffd85affffde24}, + {0x9733c939, 0xffffd85affffde25}, + {0x9733ca30, 0xffffd85affffde26}, + {0x9733ca31, 0xffffd85affffde27}, + {0x9733ca32, 0xffffd85affffde28}, + {0x9733ca33, 0xffffd85affffde29}, + {0x9733ca34, 0xffffd85affffde2a}, + {0x9733ca35, 0xffffd85affffde2b}, + {0x9733ca36, 0xffffd85affffde2c}, + {0x9733ca37, 0xffffd85affffde2d}, + {0x9733ca38, 0xffffd85affffde2e}, + {0x9733ca39, 0xffffd85affffde2f}, + {0x9733cb30, 0xffffd85affffde30}, + {0x9733cb31, 0xffffd85affffde31}, + {0x9733cb32, 0xffffd85affffde32}, + {0x9733cb33, 0xffffd85affffde33}, + {0x9733cb34, 0xffffd85affffde34}, + {0x9733cb35, 0xffffd85affffde35}, + {0x9733cb36, 0xffffd85affffde36}, + {0x9733cb37, 0xffffd85affffde37}, + {0x9733cb38, 0xffffd85affffde38}, + {0x9733cb39, 0xffffd85affffde39}, + {0x9733cc30, 0xffffd85affffde3a}, + {0x9733cc31, 0xffffd85affffde3b}, + {0x9733cc32, 0xffffd85affffde3c}, + {0x9733cc33, 0xffffd85affffde3d}, + {0x9733cc34, 0xffffd85affffde3e}, + {0x9733cc35, 0xffffd85affffde3f}, + {0x9733cc36, 0xffffd85affffde40}, + {0x9733cc37, 0xffffd85affffde41}, + {0x9733cc38, 0xffffd85affffde42}, + {0x9733cc39, 0xffffd85affffde43}, + {0x9733cd30, 0xffffd85affffde44}, + {0x9733cd31, 0xffffd85affffde45}, + {0x9733cd32, 0xffffd85affffde46}, + {0x9733cd33, 0xffffd85affffde47}, + {0x9733cd34, 0xffffd85affffde48}, + {0x9733cd35, 0xffffd85affffde49}, + {0x9733cd36, 0xffffd85affffde4a}, + {0x9733cd37, 0xffffd85affffde4b}, + {0x9733cd38, 0xffffd85affffde4c}, + {0x9733cd39, 0xffffd85affffde4d}, + {0x9733ce30, 0xffffd85affffde4e}, + {0x9733ce31, 0xffffd85affffde4f}, + {0x9733ce32, 0xffffd85affffde50}, + {0x9733ce33, 0xffffd85affffde51}, + {0x9733ce34, 0xffffd85affffde52}, + {0x9733ce35, 0xffffd85affffde53}, + {0x9733ce36, 0xffffd85affffde54}, + {0x9733ce37, 0xffffd85affffde55}, + {0x9733ce38, 0xffffd85affffde56}, + {0x9733ce39, 0xffffd85affffde57}, + {0x9733cf30, 0xffffd85affffde58}, + {0x9733cf31, 0xffffd85affffde59}, + {0x9733cf32, 0xffffd85affffde5a}, + {0x9733cf33, 0xffffd85affffde5b}, + {0x9733cf34, 0xffffd85affffde5c}, + {0x9733cf35, 0xffffd85affffde5d}, + {0x9733cf36, 0xffffd85affffde5e}, + {0x9733cf37, 0xffffd85affffde5f}, + {0x9733cf38, 0xffffd85affffde60}, + {0x9733cf39, 0xffffd85affffde61}, + {0x9733d030, 0xffffd85affffde62}, + {0x9733d031, 0xffffd85affffde63}, + {0x9733d032, 0xffffd85affffde64}, + {0x9733d033, 0xffffd85affffde65}, + {0x9733d034, 0xffffd85affffde66}, + {0x9733d035, 0xffffd85affffde67}, + {0x9733d036, 0xffffd85affffde68}, + {0x9733d037, 0xffffd85affffde69}, + {0x9733d038, 0xffffd85affffde6a}, + {0x9733d039, 0xffffd85affffde6b}, + {0x9733d130, 0xffffd85affffde6c}, + {0x9733d131, 0xffffd85affffde6d}, + {0x9733d132, 0xffffd85affffde6e}, + {0x9733d133, 0xffffd85affffde6f}, + {0x9733d134, 0xffffd85affffde70}, + {0x9733d135, 0xffffd85affffde71}, + {0x9733d136, 0xffffd85affffde72}, + {0x9733d137, 0xffffd85affffde73}, + {0x9733d138, 0xffffd85affffde74}, + {0x9733d139, 0xffffd85affffde75}, + {0x9733d230, 0xffffd85affffde76}, + {0x9733d231, 0xffffd85affffde77}, + {0x9733d232, 0xffffd85affffde78}, + {0x9733d233, 0xffffd85affffde79}, + {0x9733d234, 0xffffd85affffde7a}, + {0x9733d235, 0xffffd85affffde7b}, + {0x9733d236, 0xffffd85affffde7c}, + {0x9733d237, 0xffffd85affffde7d}, + {0x9733d238, 0xffffd85affffde7e}, + {0x9733d239, 0xffffd85affffde7f}, + {0x9733d330, 0xffffd85affffde80}, + {0x9733d331, 0xffffd85affffde81}, + {0x9733d332, 0xffffd85affffde82}, + {0x9733d333, 0xffffd85affffde83}, + {0x9733d334, 0xffffd85affffde84}, + {0x9733d335, 0xffffd85affffde85}, + {0x9733d336, 0xffffd85affffde86}, + {0x9733d337, 0xffffd85affffde87}, + {0x9733d338, 0xffffd85affffde88}, + {0x9733d339, 0xffffd85affffde89}, + {0x9733d430, 0xffffd85affffde8a}, + {0x9733d431, 0xffffd85affffde8b}, + {0x9733d432, 0xffffd85affffde8c}, + {0x9733d433, 0xffffd85affffde8d}, + {0x9733d434, 0xffffd85affffde8e}, + {0x9733d435, 0xffffd85affffde8f}, + {0x9733d436, 0xffffd85affffde90}, + {0x9733d437, 0xffffd85affffde91}, + {0x9733d438, 0xffffd85affffde92}, + {0x9733d439, 0xffffd85affffde93}, + {0x9733d530, 0xffffd85affffde94}, + {0x9733d531, 0xffffd85affffde95}, + {0x9733d532, 0xffffd85affffde96}, + {0x9733d533, 0xffffd85affffde97}, + {0x9733d534, 0xffffd85affffde98}, + {0x9733d535, 0xffffd85affffde99}, + {0x9733d536, 0xffffd85affffde9a}, + {0x9733d537, 0xffffd85affffde9b}, + {0x9733d538, 0xffffd85affffde9c}, + {0x9733d539, 0xffffd85affffde9d}, + {0x9733d630, 0xffffd85affffde9e}, + {0x9733d631, 0xffffd85affffde9f}, + {0x9733d632, 0xffffd85affffdea0}, + {0x9733d633, 0xffffd85affffdea1}, + {0x9733d634, 0xffffd85affffdea2}, + {0x9733d635, 0xffffd85affffdea3}, + {0x9733d636, 0xffffd85affffdea4}, + {0x9733d637, 0xffffd85affffdea5}, + {0x9733d638, 0xffffd85affffdea6}, + {0x9733d639, 0xffffd85affffdea7}, + {0x9733d730, 0xffffd85affffdea8}, + {0x9733d731, 0xffffd85affffdea9}, + {0x9733d732, 0xffffd85affffdeaa}, + {0x9733d733, 0xffffd85affffdeab}, + {0x9733d734, 0xffffd85affffdeac}, + {0x9733d735, 0xffffd85affffdead}, + {0x9733d736, 0xffffd85affffdeae}, + {0x9733d737, 0xffffd85affffdeaf}, + {0x9733d738, 0xffffd85affffdeb0}, + {0x9733d739, 0xffffd85affffdeb1}, + {0x9733d830, 0xffffd85affffdeb2}, + {0x9733d831, 0xffffd85affffdeb3}, + {0x9733d832, 0xffffd85affffdeb4}, + {0x9733d833, 0xffffd85affffdeb5}, + {0x9733d834, 0xffffd85affffdeb6}, + {0x9733d835, 0xffffd85affffdeb7}, + {0x9733d836, 0xffffd85affffdeb8}, + {0x9733d837, 0xffffd85affffdeb9}, + {0x9733d838, 0xffffd85affffdeba}, + {0x9733d839, 0xffffd85affffdebb}, + {0x9733d930, 0xffffd85affffdebc}, + {0x9733d931, 0xffffd85affffdebd}, + {0x9733d932, 0xffffd85affffdebe}, + {0x9733d933, 0xffffd85affffdebf}, + {0x9733d934, 0xffffd85affffdec0}, + {0x9733d935, 0xffffd85affffdec1}, + {0x9733d936, 0xffffd85affffdec2}, + {0x9733d937, 0xffffd85affffdec3}, + {0x9733d938, 0xffffd85affffdec4}, + {0x9733d939, 0xffffd85affffdec5}, + {0x9733da30, 0xffffd85affffdec6}, + {0x9733da31, 0xffffd85affffdec7}, + {0x9733da32, 0xffffd85affffdec8}, + {0x9733da33, 0xffffd85affffdec9}, + {0x9733da34, 0xffffd85affffdeca}, + {0x9733da35, 0xffffd85affffdecb}, + {0x9733da36, 0xffffd85affffdecc}, + {0x9733da37, 0xffffd85affffdecd}, + {0x9733da38, 0xffffd85affffdece}, + {0x9733da39, 0xffffd85affffdecf}, + {0x9733db30, 0xffffd85affffded0}, + {0x9733db31, 0xffffd85affffded1}, + {0x9733db32, 0xffffd85affffded2}, + {0x9733db33, 0xffffd85affffded3}, + {0x9733db34, 0xffffd85affffded4}, + {0x9733db35, 0xffffd85affffded5}, + {0x9733db36, 0xffffd85affffded6}, + {0x9733db37, 0xffffd85affffded7}, + {0x9733db38, 0xffffd85affffded8}, + {0x9733db39, 0xffffd85affffded9}, + {0x9733dc30, 0xffffd85affffdeda}, + {0x9733dc31, 0xffffd85affffdedb}, + {0x9733dc32, 0xffffd85affffdedc}, + {0x9733dc33, 0xffffd85affffdedd}, + {0x9733dc34, 0xffffd85affffdede}, + {0x9733dc35, 0xffffd85affffdedf}, + {0x9733dc36, 0xffffd85affffdee0}, + {0x9733dc37, 0xffffd85affffdee1}, + {0x9733dc38, 0xffffd85affffdee2}, + {0x9733dc39, 0xffffd85affffdee3}, + {0x9733dd30, 0xffffd85affffdee4}, + {0x9733dd31, 0xffffd85affffdee5}, + {0x9733dd32, 0xffffd85affffdee6}, + {0x9733dd33, 0xffffd85affffdee7}, + {0x9733dd34, 0xffffd85affffdee8}, + {0x9733dd35, 0xffffd85affffdee9}, + {0x9733dd36, 0xffffd85affffdeea}, + {0x9733dd37, 0xffffd85affffdeeb}, + {0x9733dd38, 0xffffd85affffdeec}, + {0x9733dd39, 0xffffd85affffdeed}, + {0x9733de30, 0xffffd85affffdeee}, + {0x9733de31, 0xffffd85affffdeef}, + {0x9733de32, 0xffffd85affffdef0}, + {0x9733de33, 0xffffd85affffdef1}, + {0x9733de34, 0xffffd85affffdef2}, + {0x9733de35, 0xffffd85affffdef3}, + {0x9733de36, 0xffffd85affffdef4}, + {0x9733de37, 0xffffd85affffdef5}, + {0x9733de38, 0xffffd85affffdef6}, + {0x9733de39, 0xffffd85affffdef7}, + {0x9733df30, 0xffffd85affffdef8}, + {0x9733df31, 0xffffd85affffdef9}, + {0x9733df32, 0xffffd85affffdefa}, + {0x9733df33, 0xffffd85affffdefb}, + {0x9733df34, 0xffffd85affffdefc}, + {0x9733df35, 0xffffd85affffdefd}, + {0x9733df36, 0xffffd85affffdefe}, + {0x9733df37, 0xffffd85affffdeff}, + {0x9733df38, 0xffffd85affffdf00}, + {0x9733df39, 0xffffd85affffdf01}, + {0x9733e030, 0xffffd85affffdf02}, + {0x9733e031, 0xffffd85affffdf03}, + {0x9733e032, 0xffffd85affffdf04}, + {0x9733e033, 0xffffd85affffdf05}, + {0x9733e034, 0xffffd85affffdf06}, + {0x9733e035, 0xffffd85affffdf07}, + {0x9733e036, 0xffffd85affffdf08}, + {0x9733e037, 0xffffd85affffdf09}, + {0x9733e038, 0xffffd85affffdf0a}, + {0x9733e039, 0xffffd85affffdf0b}, + {0x9733e130, 0xffffd85affffdf0c}, + {0x9733e131, 0xffffd85affffdf0d}, + {0x9733e132, 0xffffd85affffdf0e}, + {0x9733e133, 0xffffd85affffdf0f}, + {0x9733e134, 0xffffd85affffdf10}, + {0x9733e135, 0xffffd85affffdf11}, + {0x9733e136, 0xffffd85affffdf12}, + {0x9733e137, 0xffffd85affffdf13}, + {0x9733e138, 0xffffd85affffdf14}, + {0x9733e139, 0xffffd85affffdf15}, + {0x9733e230, 0xffffd85affffdf16}, + {0x9733e231, 0xffffd85affffdf17}, + {0x9733e232, 0xffffd85affffdf18}, + {0x9733e233, 0xffffd85affffdf19}, + {0x9733e234, 0xffffd85affffdf1a}, + {0x9733e235, 0xffffd85affffdf1b}, + {0x9733e236, 0xffffd85affffdf1c}, + {0x9733e237, 0xffffd85affffdf1d}, + {0x9733e238, 0xffffd85affffdf1e}, + {0x9733e239, 0xffffd85affffdf1f}, + {0x9733e330, 0xffffd85affffdf20}, + {0x9733e331, 0xffffd85affffdf21}, + {0x9733e332, 0xffffd85affffdf22}, + {0x9733e333, 0xffffd85affffdf23}, + {0x9733e334, 0xffffd85affffdf24}, + {0x9733e335, 0xffffd85affffdf25}, + {0x9733e336, 0xffffd85affffdf26}, + {0x9733e337, 0xffffd85affffdf27}, + {0x9733e338, 0xffffd85affffdf28}, + {0x9733e339, 0xffffd85affffdf29}, + {0x9733e430, 0xffffd85affffdf2a}, + {0x9733e431, 0xffffd85affffdf2b}, + {0x9733e432, 0xffffd85affffdf2c}, + {0x9733e433, 0xffffd85affffdf2d}, + {0x9733e434, 0xffffd85affffdf2e}, + {0x9733e435, 0xffffd85affffdf2f}, + {0x9733e436, 0xffffd85affffdf30}, + {0x9733e437, 0xffffd85affffdf31}, + {0x9733e438, 0xffffd85affffdf32}, + {0x9733e439, 0xffffd85affffdf33}, + {0x9733e530, 0xffffd85affffdf34}, + {0x9733e531, 0xffffd85affffdf35}, + {0x9733e532, 0xffffd85affffdf36}, + {0x9733e533, 0xffffd85affffdf37}, + {0x9733e534, 0xffffd85affffdf38}, + {0x9733e535, 0xffffd85affffdf39}, + {0x9733e536, 0xffffd85affffdf3a}, + {0x9733e537, 0xffffd85affffdf3b}, + {0x9733e538, 0xffffd85affffdf3c}, + {0x9733e539, 0xffffd85affffdf3d}, + {0x9733e630, 0xffffd85affffdf3e}, + {0x9733e631, 0xffffd85affffdf3f}, + {0x9733e632, 0xffffd85affffdf40}, + {0x9733e633, 0xffffd85affffdf41}, + {0x9733e634, 0xffffd85affffdf42}, + {0x9733e635, 0xffffd85affffdf43}, + {0x9733e636, 0xffffd85affffdf44}, + {0x9733e637, 0xffffd85affffdf45}, + {0x9733e638, 0xffffd85affffdf46}, + {0x9733e639, 0xffffd85affffdf47}, + {0x9733e730, 0xffffd85affffdf48}, + {0x9733e731, 0xffffd85affffdf49}, + {0x9733e732, 0xffffd85affffdf4a}, + {0x9733e733, 0xffffd85affffdf4b}, + {0x9733e734, 0xffffd85affffdf4c}, + {0x9733e735, 0xffffd85affffdf4d}, + {0x9733e736, 0xffffd85affffdf4e}, + {0x9733e737, 0xffffd85affffdf4f}, + {0x9733e738, 0xffffd85affffdf50}, + {0x9733e739, 0xffffd85affffdf51}, + {0x9733e830, 0xffffd85affffdf52}, + {0x9733e831, 0xffffd85affffdf53}, + {0x9733e832, 0xffffd85affffdf54}, + {0x9733e833, 0xffffd85affffdf55}, + {0x9733e834, 0xffffd85affffdf56}, + {0x9733e835, 0xffffd85affffdf57}, + {0x9733e836, 0xffffd85affffdf58}, + {0x9733e837, 0xffffd85affffdf59}, + {0x9733e838, 0xffffd85affffdf5a}, + {0x9733e839, 0xffffd85affffdf5b}, + {0x9733e930, 0xffffd85affffdf5c}, + {0x9733e931, 0xffffd85affffdf5d}, + {0x9733e932, 0xffffd85affffdf5e}, + {0x9733e933, 0xffffd85affffdf5f}, + {0x9733e934, 0xffffd85affffdf60}, + {0x9733e935, 0xffffd85affffdf61}, + {0x9733e936, 0xffffd85affffdf62}, + {0x9733e937, 0xffffd85affffdf63}, + {0x9733e938, 0xffffd85affffdf64}, + {0x9733e939, 0xffffd85affffdf65}, + {0x9733ea30, 0xffffd85affffdf66}, + {0x9733ea31, 0xffffd85affffdf67}, + {0x9733ea32, 0xffffd85affffdf68}, + {0x9733ea33, 0xffffd85affffdf69}, + {0x9733ea34, 0xffffd85affffdf6a}, + {0x9733ea35, 0xffffd85affffdf6b}, + {0x9733ea36, 0xffffd85affffdf6c}, + {0x9733ea37, 0xffffd85affffdf6d}, + {0x9733ea38, 0xffffd85affffdf6e}, + {0x9733ea39, 0xffffd85affffdf6f}, + {0x9733eb30, 0xffffd85affffdf70}, + {0x9733eb31, 0xffffd85affffdf71}, + {0x9733eb32, 0xffffd85affffdf72}, + {0x9733eb33, 0xffffd85affffdf73}, + {0x9733eb34, 0xffffd85affffdf74}, + {0x9733eb35, 0xffffd85affffdf75}, + {0x9733eb36, 0xffffd85affffdf76}, + {0x9733eb37, 0xffffd85affffdf77}, + {0x9733eb38, 0xffffd85affffdf78}, + {0x9733eb39, 0xffffd85affffdf79}, + {0x9733ec30, 0xffffd85affffdf7a}, + {0x9733ec31, 0xffffd85affffdf7b}, + {0x9733ec32, 0xffffd85affffdf7c}, + {0x9733ec33, 0xffffd85affffdf7d}, + {0x9733ec34, 0xffffd85affffdf7e}, + {0x9733ec35, 0xffffd85affffdf7f}, + {0x9733ec36, 0xffffd85affffdf80}, + {0x9733ec37, 0xffffd85affffdf81}, + {0x9733ec38, 0xffffd85affffdf82}, + {0x9733ec39, 0xffffd85affffdf83}, + {0x9733ed30, 0xffffd85affffdf84}, + {0x9733ed31, 0xffffd85affffdf85}, + {0x9733ed32, 0xffffd85affffdf86}, + {0x9733ed33, 0xffffd85affffdf87}, + {0x9733ed34, 0xffffd85affffdf88}, + {0x9733ed35, 0xffffd85affffdf89}, + {0x9733ed36, 0xffffd85affffdf8a}, + {0x9733ed37, 0xffffd85affffdf8b}, + {0x9733ed38, 0xffffd85affffdf8c}, + {0x9733ed39, 0xffffd85affffdf8d}, + {0x9733ee30, 0xffffd85affffdf8e}, + {0x9733ee31, 0xffffd85affffdf8f}, + {0x9733ee32, 0xffffd85affffdf90}, + {0x9733ee33, 0xffffd85affffdf91}, + {0x9733ee34, 0xffffd85affffdf92}, + {0x9733ee35, 0xffffd85affffdf93}, + {0x9733ee36, 0xffffd85affffdf94}, + {0x9733ee37, 0xffffd85affffdf95}, + {0x9733ee38, 0xffffd85affffdf96}, + {0x9733ee39, 0xffffd85affffdf97}, + {0x9733ef30, 0xffffd85affffdf98}, + {0x9733ef31, 0xffffd85affffdf99}, + {0x9733ef32, 0xffffd85affffdf9a}, + {0x9733ef33, 0xffffd85affffdf9b}, + {0x9733ef34, 0xffffd85affffdf9c}, + {0x9733ef35, 0xffffd85affffdf9d}, + {0x9733ef36, 0xffffd85affffdf9e}, + {0x9733ef37, 0xffffd85affffdf9f}, + {0x9733ef38, 0xffffd85affffdfa0}, + {0x9733ef39, 0xffffd85affffdfa1}, + {0x9733f030, 0xffffd85affffdfa2}, + {0x9733f031, 0xffffd85affffdfa3}, + {0x9733f032, 0xffffd85affffdfa4}, + {0x9733f033, 0xffffd85affffdfa5}, + {0x9733f034, 0xffffd85affffdfa6}, + {0x9733f035, 0xffffd85affffdfa7}, + {0x9733f036, 0xffffd85affffdfa8}, + {0x9733f037, 0xffffd85affffdfa9}, + {0x9733f038, 0xffffd85affffdfaa}, + {0x9733f039, 0xffffd85affffdfab}, + {0x9733f130, 0xffffd85affffdfac}, + {0x9733f131, 0xffffd85affffdfad}, + {0x9733f132, 0xffffd85affffdfae}, + {0x9733f133, 0xffffd85affffdfaf}, + {0x9733f134, 0xffffd85affffdfb0}, + {0x9733f135, 0xffffd85affffdfb1}, + {0x9733f136, 0xffffd85affffdfb2}, + {0x9733f137, 0xffffd85affffdfb3}, + {0x9733f138, 0xffffd85affffdfb4}, + {0x9733f139, 0xffffd85affffdfb5}, + {0x9733f230, 0xffffd85affffdfb6}, + {0x9733f231, 0xffffd85affffdfb7}, + {0x9733f232, 0xffffd85affffdfb8}, + {0x9733f233, 0xffffd85affffdfb9}, + {0x9733f234, 0xffffd85affffdfba}, + {0x9733f235, 0xffffd85affffdfbb}, + {0x9733f236, 0xffffd85affffdfbc}, + {0x9733f237, 0xffffd85affffdfbd}, + {0x9733f238, 0xffffd85affffdfbe}, + {0x9733f239, 0xffffd85affffdfbf}, + {0x9733f330, 0xffffd85affffdfc0}, + {0x9733f331, 0xffffd85affffdfc1}, + {0x9733f332, 0xffffd85affffdfc2}, + {0x9733f333, 0xffffd85affffdfc3}, + {0x9733f334, 0xffffd85affffdfc4}, + {0x9733f335, 0xffffd85affffdfc5}, + {0x9733f336, 0xffffd85affffdfc6}, + {0x9733f337, 0xffffd85affffdfc7}, + {0x9733f338, 0xffffd85affffdfc8}, + {0x9733f339, 0xffffd85affffdfc9}, + {0x9733f430, 0xffffd85affffdfca}, + {0x9733f431, 0xffffd85affffdfcb}, + {0x9733f432, 0xffffd85affffdfcc}, + {0x9733f433, 0xffffd85affffdfcd}, + {0x9733f434, 0xffffd85affffdfce}, + {0x9733f435, 0xffffd85affffdfcf}, + {0x9733f436, 0xffffd85affffdfd0}, + {0x9733f437, 0xffffd85affffdfd1}, + {0x9733f438, 0xffffd85affffdfd2}, + {0x9733f439, 0xffffd85affffdfd3}, + {0x9733f530, 0xffffd85affffdfd4}, + {0x9733f531, 0xffffd85affffdfd5}, + {0x9733f532, 0xffffd85affffdfd6}, + {0x9733f533, 0xffffd85affffdfd7}, + {0x9733f534, 0xffffd85affffdfd8}, + {0x9733f535, 0xffffd85affffdfd9}, + {0x9733f536, 0xffffd85affffdfda}, + {0x9733f537, 0xffffd85affffdfdb}, + {0x9733f538, 0xffffd85affffdfdc}, + {0x9733f539, 0xffffd85affffdfdd}, + {0x9733f630, 0xffffd85affffdfde}, + {0x9733f631, 0xffffd85affffdfdf}, + {0x9733f632, 0xffffd85affffdfe0}, + {0x9733f633, 0xffffd85affffdfe1}, + {0x9733f634, 0xffffd85affffdfe2}, + {0x9733f635, 0xffffd85affffdfe3}, + {0x9733f636, 0xffffd85affffdfe4}, + {0x9733f637, 0xffffd85affffdfe5}, + {0x9733f638, 0xffffd85affffdfe6}, + {0x9733f639, 0xffffd85affffdfe7}, + {0x9733f730, 0xffffd85affffdfe8}, + {0x9733f731, 0xffffd85affffdfe9}, + {0x9733f732, 0xffffd85affffdfea}, + {0x9733f733, 0xffffd85affffdfeb}, + {0x9733f734, 0xffffd85affffdfec}, + {0x9733f735, 0xffffd85affffdfed}, + {0x9733f736, 0xffffd85affffdfee}, + {0x9733f737, 0xffffd85affffdfef}, + {0x9733f738, 0xffffd85affffdff0}, + {0x9733f739, 0xffffd85affffdff1}, + {0x9733f830, 0xffffd85affffdff2}, + {0x9733f831, 0xffffd85affffdff3}, + {0x9733f832, 0xffffd85affffdff4}, + {0x9733f833, 0xffffd85affffdff5}, + {0x9733f834, 0xffffd85affffdff6}, + {0x9733f835, 0xffffd85affffdff7}, + {0x9733f836, 0xffffd85affffdff8}, + {0x9733f837, 0xffffd85affffdff9}, + {0x9733f838, 0xffffd85affffdffa}, + {0x9733f839, 0xffffd85affffdffb}, + {0x9733f930, 0xffffd85affffdffc}, + {0x9733f931, 0xffffd85affffdffd}, + {0x9733f932, 0xffffd85affffdffe}, + {0x9733f933, 0xffffd85affffdfff}, + {0x9733f934, 0xffffd85bffffdc00}, + {0x9733f935, 0xffffd85bffffdc01}, + {0x9733f936, 0xffffd85bffffdc02}, + {0x9733f937, 0xffffd85bffffdc03}, + {0x9733f938, 0xffffd85bffffdc04}, + {0x9733f939, 0xffffd85bffffdc05}, + {0x9733fa30, 0xffffd85bffffdc06}, + {0x9733fa31, 0xffffd85bffffdc07}, + {0x9733fa32, 0xffffd85bffffdc08}, + {0x9733fa33, 0xffffd85bffffdc09}, + {0x9733fa34, 0xffffd85bffffdc0a}, + {0x9733fa35, 0xffffd85bffffdc0b}, + {0x9733fa36, 0xffffd85bffffdc0c}, + {0x9733fa37, 0xffffd85bffffdc0d}, + {0x9733fa38, 0xffffd85bffffdc0e}, + {0x9733fa39, 0xffffd85bffffdc0f}, + {0x9733fb30, 0xffffd85bffffdc10}, + {0x9733fb31, 0xffffd85bffffdc11}, + {0x9733fb32, 0xffffd85bffffdc12}, + {0x9733fb33, 0xffffd85bffffdc13}, + {0x9733fb34, 0xffffd85bffffdc14}, + {0x9733fb35, 0xffffd85bffffdc15}, + {0x9733fb36, 0xffffd85bffffdc16}, + {0x9733fb37, 0xffffd85bffffdc17}, + {0x9733fb38, 0xffffd85bffffdc18}, + {0x9733fb39, 0xffffd85bffffdc19}, + {0x9733fc30, 0xffffd85bffffdc1a}, + {0x9733fc31, 0xffffd85bffffdc1b}, + {0x9733fc32, 0xffffd85bffffdc1c}, + {0x9733fc33, 0xffffd85bffffdc1d}, + {0x9733fc34, 0xffffd85bffffdc1e}, + {0x9733fc35, 0xffffd85bffffdc1f}, + {0x9733fc36, 0xffffd85bffffdc20}, + {0x9733fc37, 0xffffd85bffffdc21}, + {0x9733fc38, 0xffffd85bffffdc22}, + {0x9733fc39, 0xffffd85bffffdc23}, + {0x9733fd30, 0xffffd85bffffdc24}, + {0x9733fd31, 0xffffd85bffffdc25}, + {0x9733fd32, 0xffffd85bffffdc26}, + {0x9733fd33, 0xffffd85bffffdc27}, + {0x9733fd34, 0xffffd85bffffdc28}, + {0x9733fd35, 0xffffd85bffffdc29}, + {0x9733fd36, 0xffffd85bffffdc2a}, + {0x9733fd37, 0xffffd85bffffdc2b}, + {0x9733fd38, 0xffffd85bffffdc2c}, + {0x9733fd39, 0xffffd85bffffdc2d}, + {0x9733fe30, 0xffffd85bffffdc2e}, + {0x9733fe31, 0xffffd85bffffdc2f}, + {0x9733fe32, 0xffffd85bffffdc30}, + {0x9733fe33, 0xffffd85bffffdc31}, + {0x9733fe34, 0xffffd85bffffdc32}, + {0x9733fe35, 0xffffd85bffffdc33}, + {0x9733fe36, 0xffffd85bffffdc34}, + {0x9733fe37, 0xffffd85bffffdc35}, + {0x9733fe38, 0xffffd85bffffdc36}, + {0x9733fe39, 0xffffd85bffffdc37}, + {0x97348130, 0xffffd85bffffdc38}, + {0x97348131, 0xffffd85bffffdc39}, + {0x97348132, 0xffffd85bffffdc3a}, + {0x97348133, 0xffffd85bffffdc3b}, + {0x97348134, 0xffffd85bffffdc3c}, + {0x97348135, 0xffffd85bffffdc3d}, + {0x97348136, 0xffffd85bffffdc3e}, + {0x97348137, 0xffffd85bffffdc3f}, + {0x97348138, 0xffffd85bffffdc40}, + {0x97348139, 0xffffd85bffffdc41}, + {0x97348230, 0xffffd85bffffdc42}, + {0x97348231, 0xffffd85bffffdc43}, + {0x97348232, 0xffffd85bffffdc44}, + {0x97348233, 0xffffd85bffffdc45}, + {0x97348234, 0xffffd85bffffdc46}, + {0x97348235, 0xffffd85bffffdc47}, + {0x97348236, 0xffffd85bffffdc48}, + {0x97348237, 0xffffd85bffffdc49}, + {0x97348238, 0xffffd85bffffdc4a}, + {0x97348239, 0xffffd85bffffdc4b}, + {0x97348330, 0xffffd85bffffdc4c}, + {0x97348331, 0xffffd85bffffdc4d}, + {0x97348332, 0xffffd85bffffdc4e}, + {0x97348333, 0xffffd85bffffdc4f}, + {0x97348334, 0xffffd85bffffdc50}, + {0x97348335, 0xffffd85bffffdc51}, + {0x97348336, 0xffffd85bffffdc52}, + {0x97348337, 0xffffd85bffffdc53}, + {0x97348338, 0xffffd85bffffdc54}, + {0x97348339, 0xffffd85bffffdc55}, + {0x97348430, 0xffffd85bffffdc56}, + {0x97348431, 0xffffd85bffffdc57}, + {0x97348432, 0xffffd85bffffdc58}, + {0x97348433, 0xffffd85bffffdc59}, + {0x97348434, 0xffffd85bffffdc5a}, + {0x97348435, 0xffffd85bffffdc5b}, + {0x97348436, 0xffffd85bffffdc5c}, + {0x97348437, 0xffffd85bffffdc5d}, + {0x97348438, 0xffffd85bffffdc5e}, + {0x97348439, 0xffffd85bffffdc5f}, + {0x97348530, 0xffffd85bffffdc60}, + {0x97348531, 0xffffd85bffffdc61}, + {0x97348532, 0xffffd85bffffdc62}, + {0x97348533, 0xffffd85bffffdc63}, + {0x97348534, 0xffffd85bffffdc64}, + {0x97348535, 0xffffd85bffffdc65}, + {0x97348536, 0xffffd85bffffdc66}, + {0x97348537, 0xffffd85bffffdc67}, + {0x97348538, 0xffffd85bffffdc68}, + {0x97348539, 0xffffd85bffffdc69}, + {0x97348630, 0xffffd85bffffdc6a}, + {0x97348631, 0xffffd85bffffdc6b}, + {0x97348632, 0xffffd85bffffdc6c}, + {0x97348633, 0xffffd85bffffdc6d}, + {0x97348634, 0xffffd85bffffdc6e}, + {0x97348635, 0xffffd85bffffdc6f}, + {0x97348636, 0xffffd85bffffdc70}, + {0x97348637, 0xffffd85bffffdc71}, + {0x97348638, 0xffffd85bffffdc72}, + {0x97348639, 0xffffd85bffffdc73}, + {0x97348730, 0xffffd85bffffdc74}, + {0x97348731, 0xffffd85bffffdc75}, + {0x97348732, 0xffffd85bffffdc76}, + {0x97348733, 0xffffd85bffffdc77}, + {0x97348734, 0xffffd85bffffdc78}, + {0x97348735, 0xffffd85bffffdc79}, + {0x97348736, 0xffffd85bffffdc7a}, + {0x97348737, 0xffffd85bffffdc7b}, + {0x97348738, 0xffffd85bffffdc7c}, + {0x97348739, 0xffffd85bffffdc7d}, + {0x97348830, 0xffffd85bffffdc7e}, + {0x97348831, 0xffffd85bffffdc7f}, + {0x97348832, 0xffffd85bffffdc80}, + {0x97348833, 0xffffd85bffffdc81}, + {0x97348834, 0xffffd85bffffdc82}, + {0x97348835, 0xffffd85bffffdc83}, + {0x97348836, 0xffffd85bffffdc84}, + {0x97348837, 0xffffd85bffffdc85}, + {0x97348838, 0xffffd85bffffdc86}, + {0x97348839, 0xffffd85bffffdc87}, + {0x97348930, 0xffffd85bffffdc88}, + {0x97348931, 0xffffd85bffffdc89}, + {0x97348932, 0xffffd85bffffdc8a}, + {0x97348933, 0xffffd85bffffdc8b}, + {0x97348934, 0xffffd85bffffdc8c}, + {0x97348935, 0xffffd85bffffdc8d}, + {0x97348936, 0xffffd85bffffdc8e}, + {0x97348937, 0xffffd85bffffdc8f}, + {0x97348938, 0xffffd85bffffdc90}, + {0x97348939, 0xffffd85bffffdc91}, + {0x97348a30, 0xffffd85bffffdc92}, + {0x97348a31, 0xffffd85bffffdc93}, + {0x97348a32, 0xffffd85bffffdc94}, + {0x97348a33, 0xffffd85bffffdc95}, + {0x97348a34, 0xffffd85bffffdc96}, + {0x97348a35, 0xffffd85bffffdc97}, + {0x97348a36, 0xffffd85bffffdc98}, + {0x97348a37, 0xffffd85bffffdc99}, + {0x97348a38, 0xffffd85bffffdc9a}, + {0x97348a39, 0xffffd85bffffdc9b}, + {0x97348b30, 0xffffd85bffffdc9c}, + {0x97348b31, 0xffffd85bffffdc9d}, + {0x97348b32, 0xffffd85bffffdc9e}, + {0x97348b33, 0xffffd85bffffdc9f}, + {0x97348b34, 0xffffd85bffffdca0}, + {0x97348b35, 0xffffd85bffffdca1}, + {0x97348b36, 0xffffd85bffffdca2}, + {0x97348b37, 0xffffd85bffffdca3}, + {0x97348b38, 0xffffd85bffffdca4}, + {0x97348b39, 0xffffd85bffffdca5}, + {0x97348c30, 0xffffd85bffffdca6}, + {0x97348c31, 0xffffd85bffffdca7}, + {0x97348c32, 0xffffd85bffffdca8}, + {0x97348c33, 0xffffd85bffffdca9}, + {0x97348c34, 0xffffd85bffffdcaa}, + {0x97348c35, 0xffffd85bffffdcab}, + {0x97348c36, 0xffffd85bffffdcac}, + {0x97348c37, 0xffffd85bffffdcad}, + {0x97348c38, 0xffffd85bffffdcae}, + {0x97348c39, 0xffffd85bffffdcaf}, + {0x97348d30, 0xffffd85bffffdcb0}, + {0x97348d31, 0xffffd85bffffdcb1}, + {0x97348d32, 0xffffd85bffffdcb2}, + {0x97348d33, 0xffffd85bffffdcb3}, + {0x97348d34, 0xffffd85bffffdcb4}, + {0x97348d35, 0xffffd85bffffdcb5}, + {0x97348d36, 0xffffd85bffffdcb6}, + {0x97348d37, 0xffffd85bffffdcb7}, + {0x97348d38, 0xffffd85bffffdcb8}, + {0x97348d39, 0xffffd85bffffdcb9}, + {0x97348e30, 0xffffd85bffffdcba}, + {0x97348e31, 0xffffd85bffffdcbb}, + {0x97348e32, 0xffffd85bffffdcbc}, + {0x97348e33, 0xffffd85bffffdcbd}, + {0x97348e34, 0xffffd85bffffdcbe}, + {0x97348e35, 0xffffd85bffffdcbf}, + {0x97348e36, 0xffffd85bffffdcc0}, + {0x97348e37, 0xffffd85bffffdcc1}, + {0x97348e38, 0xffffd85bffffdcc2}, + {0x97348e39, 0xffffd85bffffdcc3}, + {0x97348f30, 0xffffd85bffffdcc4}, + {0x97348f31, 0xffffd85bffffdcc5}, + {0x97348f32, 0xffffd85bffffdcc6}, + {0x97348f33, 0xffffd85bffffdcc7}, + {0x97348f34, 0xffffd85bffffdcc8}, + {0x97348f35, 0xffffd85bffffdcc9}, + {0x97348f36, 0xffffd85bffffdcca}, + {0x97348f37, 0xffffd85bffffdccb}, + {0x97348f38, 0xffffd85bffffdccc}, + {0x97348f39, 0xffffd85bffffdccd}, + {0x97349030, 0xffffd85bffffdcce}, + {0x97349031, 0xffffd85bffffdccf}, + {0x97349032, 0xffffd85bffffdcd0}, + {0x97349033, 0xffffd85bffffdcd1}, + {0x97349034, 0xffffd85bffffdcd2}, + {0x97349035, 0xffffd85bffffdcd3}, + {0x97349036, 0xffffd85bffffdcd4}, + {0x97349037, 0xffffd85bffffdcd5}, + {0x97349038, 0xffffd85bffffdcd6}, + {0x97349039, 0xffffd85bffffdcd7}, + {0x97349130, 0xffffd85bffffdcd8}, + {0x97349131, 0xffffd85bffffdcd9}, + {0x97349132, 0xffffd85bffffdcda}, + {0x97349133, 0xffffd85bffffdcdb}, + {0x97349134, 0xffffd85bffffdcdc}, + {0x97349135, 0xffffd85bffffdcdd}, + {0x97349136, 0xffffd85bffffdcde}, + {0x97349137, 0xffffd85bffffdcdf}, + {0x97349138, 0xffffd85bffffdce0}, + {0x97349139, 0xffffd85bffffdce1}, + {0x97349230, 0xffffd85bffffdce2}, + {0x97349231, 0xffffd85bffffdce3}, + {0x97349232, 0xffffd85bffffdce4}, + {0x97349233, 0xffffd85bffffdce5}, + {0x97349234, 0xffffd85bffffdce6}, + {0x97349235, 0xffffd85bffffdce7}, + {0x97349236, 0xffffd85bffffdce8}, + {0x97349237, 0xffffd85bffffdce9}, + {0x97349238, 0xffffd85bffffdcea}, + {0x97349239, 0xffffd85bffffdceb}, + {0x97349330, 0xffffd85bffffdcec}, + {0x97349331, 0xffffd85bffffdced}, + {0x97349332, 0xffffd85bffffdcee}, + {0x97349333, 0xffffd85bffffdcef}, + {0x97349334, 0xffffd85bffffdcf0}, + {0x97349335, 0xffffd85bffffdcf1}, + {0x97349336, 0xffffd85bffffdcf2}, + {0x97349337, 0xffffd85bffffdcf3}, + {0x97349338, 0xffffd85bffffdcf4}, + {0x97349339, 0xffffd85bffffdcf5}, + {0x97349430, 0xffffd85bffffdcf6}, + {0x97349431, 0xffffd85bffffdcf7}, + {0x97349432, 0xffffd85bffffdcf8}, + {0x97349433, 0xffffd85bffffdcf9}, + {0x97349434, 0xffffd85bffffdcfa}, + {0x97349435, 0xffffd85bffffdcfb}, + {0x97349436, 0xffffd85bffffdcfc}, + {0x97349437, 0xffffd85bffffdcfd}, + {0x97349438, 0xffffd85bffffdcfe}, + {0x97349439, 0xffffd85bffffdcff}, + {0x97349530, 0xffffd85bffffdd00}, + {0x97349531, 0xffffd85bffffdd01}, + {0x97349532, 0xffffd85bffffdd02}, + {0x97349533, 0xffffd85bffffdd03}, + {0x97349534, 0xffffd85bffffdd04}, + {0x97349535, 0xffffd85bffffdd05}, + {0x97349536, 0xffffd85bffffdd06}, + {0x97349537, 0xffffd85bffffdd07}, + {0x97349538, 0xffffd85bffffdd08}, + {0x97349539, 0xffffd85bffffdd09}, + {0x97349630, 0xffffd85bffffdd0a}, + {0x97349631, 0xffffd85bffffdd0b}, + {0x97349632, 0xffffd85bffffdd0c}, + {0x97349633, 0xffffd85bffffdd0d}, + {0x97349634, 0xffffd85bffffdd0e}, + {0x97349635, 0xffffd85bffffdd0f}, + {0x97349636, 0xffffd85bffffdd10}, + {0x97349637, 0xffffd85bffffdd11}, + {0x97349638, 0xffffd85bffffdd12}, + {0x97349639, 0xffffd85bffffdd13}, + {0x97349730, 0xffffd85bffffdd14}, + {0x97349731, 0xffffd85bffffdd15}, + {0x97349732, 0xffffd85bffffdd16}, + {0x97349733, 0xffffd85bffffdd17}, + {0x97349734, 0xffffd85bffffdd18}, + {0x97349735, 0xffffd85bffffdd19}, + {0x97349736, 0xffffd85bffffdd1a}, + {0x97349737, 0xffffd85bffffdd1b}, + {0x97349738, 0xffffd85bffffdd1c}, + {0x97349739, 0xffffd85bffffdd1d}, + {0x97349830, 0xffffd85bffffdd1e}, + {0x97349831, 0xffffd85bffffdd1f}, + {0x97349832, 0xffffd85bffffdd20}, + {0x97349833, 0xffffd85bffffdd21}, + {0x97349834, 0xffffd85bffffdd22}, + {0x97349835, 0xffffd85bffffdd23}, + {0x97349836, 0xffffd85bffffdd24}, + {0x97349837, 0xffffd85bffffdd25}, + {0x97349838, 0xffffd85bffffdd26}, + {0x97349839, 0xffffd85bffffdd27}, + {0x97349930, 0xffffd85bffffdd28}, + {0x97349931, 0xffffd85bffffdd29}, + {0x97349932, 0xffffd85bffffdd2a}, + {0x97349933, 0xffffd85bffffdd2b}, + {0x97349934, 0xffffd85bffffdd2c}, + {0x97349935, 0xffffd85bffffdd2d}, + {0x97349936, 0xffffd85bffffdd2e}, + {0x97349937, 0xffffd85bffffdd2f}, + {0x97349938, 0xffffd85bffffdd30}, + {0x97349939, 0xffffd85bffffdd31}, + {0x97349a30, 0xffffd85bffffdd32}, + {0x97349a31, 0xffffd85bffffdd33}, + {0x97349a32, 0xffffd85bffffdd34}, + {0x97349a33, 0xffffd85bffffdd35}, + {0x97349a34, 0xffffd85bffffdd36}, + {0x97349a35, 0xffffd85bffffdd37}, + {0x97349a36, 0xffffd85bffffdd38}, + {0x97349a37, 0xffffd85bffffdd39}, + {0x97349a38, 0xffffd85bffffdd3a}, + {0x97349a39, 0xffffd85bffffdd3b}, + {0x97349b30, 0xffffd85bffffdd3c}, + {0x97349b31, 0xffffd85bffffdd3d}, + {0x97349b32, 0xffffd85bffffdd3e}, + {0x97349b33, 0xffffd85bffffdd3f}, + {0x97349b34, 0xffffd85bffffdd40}, + {0x97349b35, 0xffffd85bffffdd41}, + {0x97349b36, 0xffffd85bffffdd42}, + {0x97349b37, 0xffffd85bffffdd43}, + {0x97349b38, 0xffffd85bffffdd44}, + {0x97349b39, 0xffffd85bffffdd45}, + {0x97349c30, 0xffffd85bffffdd46}, + {0x97349c31, 0xffffd85bffffdd47}, + {0x97349c32, 0xffffd85bffffdd48}, + {0x97349c33, 0xffffd85bffffdd49}, + {0x97349c34, 0xffffd85bffffdd4a}, + {0x97349c35, 0xffffd85bffffdd4b}, + {0x97349c36, 0xffffd85bffffdd4c}, + {0x97349c37, 0xffffd85bffffdd4d}, + {0x97349c38, 0xffffd85bffffdd4e}, + {0x97349c39, 0xffffd85bffffdd4f}, + {0x97349d30, 0xffffd85bffffdd50}, + {0x97349d31, 0xffffd85bffffdd51}, + {0x97349d32, 0xffffd85bffffdd52}, + {0x97349d33, 0xffffd85bffffdd53}, + {0x97349d34, 0xffffd85bffffdd54}, + {0x97349d35, 0xffffd85bffffdd55}, + {0x97349d36, 0xffffd85bffffdd56}, + {0x97349d37, 0xffffd85bffffdd57}, + {0x97349d38, 0xffffd85bffffdd58}, + {0x97349d39, 0xffffd85bffffdd59}, + {0x97349e30, 0xffffd85bffffdd5a}, + {0x97349e31, 0xffffd85bffffdd5b}, + {0x97349e32, 0xffffd85bffffdd5c}, + {0x97349e33, 0xffffd85bffffdd5d}, + {0x97349e34, 0xffffd85bffffdd5e}, + {0x97349e35, 0xffffd85bffffdd5f}, + {0x97349e36, 0xffffd85bffffdd60}, + {0x97349e37, 0xffffd85bffffdd61}, + {0x97349e38, 0xffffd85bffffdd62}, + {0x97349e39, 0xffffd85bffffdd63}, + {0x97349f30, 0xffffd85bffffdd64}, + {0x97349f31, 0xffffd85bffffdd65}, + {0x97349f32, 0xffffd85bffffdd66}, + {0x97349f33, 0xffffd85bffffdd67}, + {0x97349f34, 0xffffd85bffffdd68}, + {0x97349f35, 0xffffd85bffffdd69}, + {0x97349f36, 0xffffd85bffffdd6a}, + {0x97349f37, 0xffffd85bffffdd6b}, + {0x97349f38, 0xffffd85bffffdd6c}, + {0x97349f39, 0xffffd85bffffdd6d}, + {0x9734a030, 0xffffd85bffffdd6e}, + {0x9734a031, 0xffffd85bffffdd6f}, + {0x9734a032, 0xffffd85bffffdd70}, + {0x9734a033, 0xffffd85bffffdd71}, + {0x9734a034, 0xffffd85bffffdd72}, + {0x9734a035, 0xffffd85bffffdd73}, + {0x9734a036, 0xffffd85bffffdd74}, + {0x9734a037, 0xffffd85bffffdd75}, + {0x9734a038, 0xffffd85bffffdd76}, + {0x9734a039, 0xffffd85bffffdd77}, + {0x9734a130, 0xffffd85bffffdd78}, + {0x9734a131, 0xffffd85bffffdd79}, + {0x9734a132, 0xffffd85bffffdd7a}, + {0x9734a133, 0xffffd85bffffdd7b}, + {0x9734a134, 0xffffd85bffffdd7c}, + {0x9734a135, 0xffffd85bffffdd7d}, + {0x9734a136, 0xffffd85bffffdd7e}, + {0x9734a137, 0xffffd85bffffdd7f}, + {0x9734a138, 0xffffd85bffffdd80}, + {0x9734a139, 0xffffd85bffffdd81}, + {0x9734a230, 0xffffd85bffffdd82}, + {0x9734a231, 0xffffd85bffffdd83}, + {0x9734a232, 0xffffd85bffffdd84}, + {0x9734a233, 0xffffd85bffffdd85}, + {0x9734a234, 0xffffd85bffffdd86}, + {0x9734a235, 0xffffd85bffffdd87}, + {0x9734a236, 0xffffd85bffffdd88}, + {0x9734a237, 0xffffd85bffffdd89}, + {0x9734a238, 0xffffd85bffffdd8a}, + {0x9734a239, 0xffffd85bffffdd8b}, + {0x9734a330, 0xffffd85bffffdd8c}, + {0x9734a331, 0xffffd85bffffdd8d}, + {0x9734a332, 0xffffd85bffffdd8e}, + {0x9734a333, 0xffffd85bffffdd8f}, + {0x9734a334, 0xffffd85bffffdd90}, + {0x9734a335, 0xffffd85bffffdd91}, + {0x9734a336, 0xffffd85bffffdd92}, + {0x9734a337, 0xffffd85bffffdd93}, + {0x9734a338, 0xffffd85bffffdd94}, + {0x9734a339, 0xffffd85bffffdd95}, + {0x9734a430, 0xffffd85bffffdd96}, + {0x9734a431, 0xffffd85bffffdd97}, + {0x9734a432, 0xffffd85bffffdd98}, + {0x9734a433, 0xffffd85bffffdd99}, + {0x9734a434, 0xffffd85bffffdd9a}, + {0x9734a435, 0xffffd85bffffdd9b}, + {0x9734a436, 0xffffd85bffffdd9c}, + {0x9734a437, 0xffffd85bffffdd9d}, + {0x9734a438, 0xffffd85bffffdd9e}, + {0x9734a439, 0xffffd85bffffdd9f}, + {0x9734a530, 0xffffd85bffffdda0}, + {0x9734a531, 0xffffd85bffffdda1}, + {0x9734a532, 0xffffd85bffffdda2}, + {0x9734a533, 0xffffd85bffffdda3}, + {0x9734a534, 0xffffd85bffffdda4}, + {0x9734a535, 0xffffd85bffffdda5}, + {0x9734a536, 0xffffd85bffffdda6}, + {0x9734a537, 0xffffd85bffffdda7}, + {0x9734a538, 0xffffd85bffffdda8}, + {0x9734a539, 0xffffd85bffffdda9}, + {0x9734a630, 0xffffd85bffffddaa}, + {0x9734a631, 0xffffd85bffffddab}, + {0x9734a632, 0xffffd85bffffddac}, + {0x9734a633, 0xffffd85bffffddad}, + {0x9734a634, 0xffffd85bffffddae}, + {0x9734a635, 0xffffd85bffffddaf}, + {0x9734a636, 0xffffd85bffffddb0}, + {0x9734a637, 0xffffd85bffffddb1}, + {0x9734a638, 0xffffd85bffffddb2}, + {0x9734a639, 0xffffd85bffffddb3}, + {0x9734a730, 0xffffd85bffffddb4}, + {0x9734a731, 0xffffd85bffffddb5}, + {0x9734a732, 0xffffd85bffffddb6}, + {0x9734a733, 0xffffd85bffffddb7}, + {0x9734a734, 0xffffd85bffffddb8}, + {0x9734a735, 0xffffd85bffffddb9}, + {0x9734a736, 0xffffd85bffffddba}, + {0x9734a737, 0xffffd85bffffddbb}, + {0x9734a738, 0xffffd85bffffddbc}, + {0x9734a739, 0xffffd85bffffddbd}, + {0x9734a830, 0xffffd85bffffddbe}, + {0x9734a831, 0xffffd85bffffddbf}, + {0x9734a832, 0xffffd85bffffddc0}, + {0x9734a833, 0xffffd85bffffddc1}, + {0x9734a834, 0xffffd85bffffddc2}, + {0x9734a835, 0xffffd85bffffddc3}, + {0x9734a836, 0xffffd85bffffddc4}, + {0x9734a837, 0xffffd85bffffddc5}, + {0x9734a838, 0xffffd85bffffddc6}, + {0x9734a839, 0xffffd85bffffddc7}, + {0x9734a930, 0xffffd85bffffddc8}, + {0x9734a931, 0xffffd85bffffddc9}, + {0x9734a932, 0xffffd85bffffddca}, + {0x9734a933, 0xffffd85bffffddcb}, + {0x9734a934, 0xffffd85bffffddcc}, + {0x9734a935, 0xffffd85bffffddcd}, + {0x9734a936, 0xffffd85bffffddce}, + {0x9734a937, 0xffffd85bffffddcf}, + {0x9734a938, 0xffffd85bffffddd0}, + {0x9734a939, 0xffffd85bffffddd1}, + {0x9734aa30, 0xffffd85bffffddd2}, + {0x9734aa31, 0xffffd85bffffddd3}, + {0x9734aa32, 0xffffd85bffffddd4}, + {0x9734aa33, 0xffffd85bffffddd5}, + {0x9734aa34, 0xffffd85bffffddd6}, + {0x9734aa35, 0xffffd85bffffddd7}, + {0x9734aa36, 0xffffd85bffffddd8}, + {0x9734aa37, 0xffffd85bffffddd9}, + {0x9734aa38, 0xffffd85bffffddda}, + {0x9734aa39, 0xffffd85bffffdddb}, + {0x9734ab30, 0xffffd85bffffdddc}, + {0x9734ab31, 0xffffd85bffffdddd}, + {0x9734ab32, 0xffffd85bffffddde}, + {0x9734ab33, 0xffffd85bffffdddf}, + {0x9734ab34, 0xffffd85bffffdde0}, + {0x9734ab35, 0xffffd85bffffdde1}, + {0x9734ab36, 0xffffd85bffffdde2}, + {0x9734ab37, 0xffffd85bffffdde3}, + {0x9734ab38, 0xffffd85bffffdde4}, + {0x9734ab39, 0xffffd85bffffdde5}, + {0x9734ac30, 0xffffd85bffffdde6}, + {0x9734ac31, 0xffffd85bffffdde7}, + {0x9734ac32, 0xffffd85bffffdde8}, + {0x9734ac33, 0xffffd85bffffdde9}, + {0x9734ac34, 0xffffd85bffffddea}, + {0x9734ac35, 0xffffd85bffffddeb}, + {0x9734ac36, 0xffffd85bffffddec}, + {0x9734ac37, 0xffffd85bffffdded}, + {0x9734ac38, 0xffffd85bffffddee}, + {0x9734ac39, 0xffffd85bffffddef}, + {0x9734ad30, 0xffffd85bffffddf0}, + {0x9734ad31, 0xffffd85bffffddf1}, + {0x9734ad32, 0xffffd85bffffddf2}, + {0x9734ad33, 0xffffd85bffffddf3}, + {0x9734ad34, 0xffffd85bffffddf4}, + {0x9734ad35, 0xffffd85bffffddf5}, + {0x9734ad36, 0xffffd85bffffddf6}, + {0x9734ad37, 0xffffd85bffffddf7}, + {0x9734ad38, 0xffffd85bffffddf8}, + {0x9734ad39, 0xffffd85bffffddf9}, + {0x9734ae30, 0xffffd85bffffddfa}, + {0x9734ae31, 0xffffd85bffffddfb}, + {0x9734ae32, 0xffffd85bffffddfc}, + {0x9734ae33, 0xffffd85bffffddfd}, + {0x9734ae34, 0xffffd85bffffddfe}, + {0x9734ae35, 0xffffd85bffffddff}, + {0x9734ae36, 0xffffd85bffffde00}, + {0x9734ae37, 0xffffd85bffffde01}, + {0x9734ae38, 0xffffd85bffffde02}, + {0x9734ae39, 0xffffd85bffffde03}, + {0x9734af30, 0xffffd85bffffde04}, + {0x9734af31, 0xffffd85bffffde05}, + {0x9734af32, 0xffffd85bffffde06}, + {0x9734af33, 0xffffd85bffffde07}, + {0x9734af34, 0xffffd85bffffde08}, + {0x9734af35, 0xffffd85bffffde09}, + {0x9734af36, 0xffffd85bffffde0a}, + {0x9734af37, 0xffffd85bffffde0b}, + {0x9734af38, 0xffffd85bffffde0c}, + {0x9734af39, 0xffffd85bffffde0d}, + {0x9734b030, 0xffffd85bffffde0e}, + {0x9734b031, 0xffffd85bffffde0f}, + {0x9734b032, 0xffffd85bffffde10}, + {0x9734b033, 0xffffd85bffffde11}, + {0x9734b034, 0xffffd85bffffde12}, + {0x9734b035, 0xffffd85bffffde13}, + {0x9734b036, 0xffffd85bffffde14}, + {0x9734b037, 0xffffd85bffffde15}, + {0x9734b038, 0xffffd85bffffde16}, + {0x9734b039, 0xffffd85bffffde17}, + {0x9734b130, 0xffffd85bffffde18}, + {0x9734b131, 0xffffd85bffffde19}, + {0x9734b132, 0xffffd85bffffde1a}, + {0x9734b133, 0xffffd85bffffde1b}, + {0x9734b134, 0xffffd85bffffde1c}, + {0x9734b135, 0xffffd85bffffde1d}, + {0x9734b136, 0xffffd85bffffde1e}, + {0x9734b137, 0xffffd85bffffde1f}, + {0x9734b138, 0xffffd85bffffde20}, + {0x9734b139, 0xffffd85bffffde21}, + {0x9734b230, 0xffffd85bffffde22}, + {0x9734b231, 0xffffd85bffffde23}, + {0x9734b232, 0xffffd85bffffde24}, + {0x9734b233, 0xffffd85bffffde25}, + {0x9734b234, 0xffffd85bffffde26}, + {0x9734b235, 0xffffd85bffffde27}, + {0x9734b236, 0xffffd85bffffde28}, + {0x9734b237, 0xffffd85bffffde29}, + {0x9734b238, 0xffffd85bffffde2a}, + {0x9734b239, 0xffffd85bffffde2b}, + {0x9734b330, 0xffffd85bffffde2c}, + {0x9734b331, 0xffffd85bffffde2d}, + {0x9734b332, 0xffffd85bffffde2e}, + {0x9734b333, 0xffffd85bffffde2f}, + {0x9734b334, 0xffffd85bffffde30}, + {0x9734b335, 0xffffd85bffffde31}, + {0x9734b336, 0xffffd85bffffde32}, + {0x9734b337, 0xffffd85bffffde33}, + {0x9734b338, 0xffffd85bffffde34}, + {0x9734b339, 0xffffd85bffffde35}, + {0x9734b430, 0xffffd85bffffde36}, + {0x9734b431, 0xffffd85bffffde37}, + {0x9734b432, 0xffffd85bffffde38}, + {0x9734b433, 0xffffd85bffffde39}, + {0x9734b434, 0xffffd85bffffde3a}, + {0x9734b435, 0xffffd85bffffde3b}, + {0x9734b436, 0xffffd85bffffde3c}, + {0x9734b437, 0xffffd85bffffde3d}, + {0x9734b438, 0xffffd85bffffde3e}, + {0x9734b439, 0xffffd85bffffde3f}, + {0x9734b530, 0xffffd85bffffde40}, + {0x9734b531, 0xffffd85bffffde41}, + {0x9734b532, 0xffffd85bffffde42}, + {0x9734b533, 0xffffd85bffffde43}, + {0x9734b534, 0xffffd85bffffde44}, + {0x9734b535, 0xffffd85bffffde45}, + {0x9734b536, 0xffffd85bffffde46}, + {0x9734b537, 0xffffd85bffffde47}, + {0x9734b538, 0xffffd85bffffde48}, + {0x9734b539, 0xffffd85bffffde49}, + {0x9734b630, 0xffffd85bffffde4a}, + {0x9734b631, 0xffffd85bffffde4b}, + {0x9734b632, 0xffffd85bffffde4c}, + {0x9734b633, 0xffffd85bffffde4d}, + {0x9734b634, 0xffffd85bffffde4e}, + {0x9734b635, 0xffffd85bffffde4f}, + {0x9734b636, 0xffffd85bffffde50}, + {0x9734b637, 0xffffd85bffffde51}, + {0x9734b638, 0xffffd85bffffde52}, + {0x9734b639, 0xffffd85bffffde53}, + {0x9734b730, 0xffffd85bffffde54}, + {0x9734b731, 0xffffd85bffffde55}, + {0x9734b732, 0xffffd85bffffde56}, + {0x9734b733, 0xffffd85bffffde57}, + {0x9734b734, 0xffffd85bffffde58}, + {0x9734b735, 0xffffd85bffffde59}, + {0x9734b736, 0xffffd85bffffde5a}, + {0x9734b737, 0xffffd85bffffde5b}, + {0x9734b738, 0xffffd85bffffde5c}, + {0x9734b739, 0xffffd85bffffde5d}, + {0x9734b830, 0xffffd85bffffde5e}, + {0x9734b831, 0xffffd85bffffde5f}, + {0x9734b832, 0xffffd85bffffde60}, + {0x9734b833, 0xffffd85bffffde61}, + {0x9734b834, 0xffffd85bffffde62}, + {0x9734b835, 0xffffd85bffffde63}, + {0x9734b836, 0xffffd85bffffde64}, + {0x9734b837, 0xffffd85bffffde65}, + {0x9734b838, 0xffffd85bffffde66}, + {0x9734b839, 0xffffd85bffffde67}, + {0x9734b930, 0xffffd85bffffde68}, + {0x9734b931, 0xffffd85bffffde69}, + {0x9734b932, 0xffffd85bffffde6a}, + {0x9734b933, 0xffffd85bffffde6b}, + {0x9734b934, 0xffffd85bffffde6c}, + {0x9734b935, 0xffffd85bffffde6d}, + {0x9734b936, 0xffffd85bffffde6e}, + {0x9734b937, 0xffffd85bffffde6f}, + {0x9734b938, 0xffffd85bffffde70}, + {0x9734b939, 0xffffd85bffffde71}, + {0x9734ba30, 0xffffd85bffffde72}, + {0x9734ba31, 0xffffd85bffffde73}, + {0x9734ba32, 0xffffd85bffffde74}, + {0x9734ba33, 0xffffd85bffffde75}, + {0x9734ba34, 0xffffd85bffffde76}, + {0x9734ba35, 0xffffd85bffffde77}, + {0x9734ba36, 0xffffd85bffffde78}, + {0x9734ba37, 0xffffd85bffffde79}, + {0x9734ba38, 0xffffd85bffffde7a}, + {0x9734ba39, 0xffffd85bffffde7b}, + {0x9734bb30, 0xffffd85bffffde7c}, + {0x9734bb31, 0xffffd85bffffde7d}, + {0x9734bb32, 0xffffd85bffffde7e}, + {0x9734bb33, 0xffffd85bffffde7f}, + {0x9734bb34, 0xffffd85bffffde80}, + {0x9734bb35, 0xffffd85bffffde81}, + {0x9734bb36, 0xffffd85bffffde82}, + {0x9734bb37, 0xffffd85bffffde83}, + {0x9734bb38, 0xffffd85bffffde84}, + {0x9734bb39, 0xffffd85bffffde85}, + {0x9734bc30, 0xffffd85bffffde86}, + {0x9734bc31, 0xffffd85bffffde87}, + {0x9734bc32, 0xffffd85bffffde88}, + {0x9734bc33, 0xffffd85bffffde89}, + {0x9734bc34, 0xffffd85bffffde8a}, + {0x9734bc35, 0xffffd85bffffde8b}, + {0x9734bc36, 0xffffd85bffffde8c}, + {0x9734bc37, 0xffffd85bffffde8d}, + {0x9734bc38, 0xffffd85bffffde8e}, + {0x9734bc39, 0xffffd85bffffde8f}, + {0x9734bd30, 0xffffd85bffffde90}, + {0x9734bd31, 0xffffd85bffffde91}, + {0x9734bd32, 0xffffd85bffffde92}, + {0x9734bd33, 0xffffd85bffffde93}, + {0x9734bd34, 0xffffd85bffffde94}, + {0x9734bd35, 0xffffd85bffffde95}, + {0x9734bd36, 0xffffd85bffffde96}, + {0x9734bd37, 0xffffd85bffffde97}, + {0x9734bd38, 0xffffd85bffffde98}, + {0x9734bd39, 0xffffd85bffffde99}, + {0x9734be30, 0xffffd85bffffde9a}, + {0x9734be31, 0xffffd85bffffde9b}, + {0x9734be32, 0xffffd85bffffde9c}, + {0x9734be33, 0xffffd85bffffde9d}, + {0x9734be34, 0xffffd85bffffde9e}, + {0x9734be35, 0xffffd85bffffde9f}, + {0x9734be36, 0xffffd85bffffdea0}, + {0x9734be37, 0xffffd85bffffdea1}, + {0x9734be38, 0xffffd85bffffdea2}, + {0x9734be39, 0xffffd85bffffdea3}, + {0x9734bf30, 0xffffd85bffffdea4}, + {0x9734bf31, 0xffffd85bffffdea5}, + {0x9734bf32, 0xffffd85bffffdea6}, + {0x9734bf33, 0xffffd85bffffdea7}, + {0x9734bf34, 0xffffd85bffffdea8}, + {0x9734bf35, 0xffffd85bffffdea9}, + {0x9734bf36, 0xffffd85bffffdeaa}, + {0x9734bf37, 0xffffd85bffffdeab}, + {0x9734bf38, 0xffffd85bffffdeac}, + {0x9734bf39, 0xffffd85bffffdead}, + {0x9734c030, 0xffffd85bffffdeae}, + {0x9734c031, 0xffffd85bffffdeaf}, + {0x9734c032, 0xffffd85bffffdeb0}, + {0x9734c033, 0xffffd85bffffdeb1}, + {0x9734c034, 0xffffd85bffffdeb2}, + {0x9734c035, 0xffffd85bffffdeb3}, + {0x9734c036, 0xffffd85bffffdeb4}, + {0x9734c037, 0xffffd85bffffdeb5}, + {0x9734c038, 0xffffd85bffffdeb6}, + {0x9734c039, 0xffffd85bffffdeb7}, + {0x9734c130, 0xffffd85bffffdeb8}, + {0x9734c131, 0xffffd85bffffdeb9}, + {0x9734c132, 0xffffd85bffffdeba}, + {0x9734c133, 0xffffd85bffffdebb}, + {0x9734c134, 0xffffd85bffffdebc}, + {0x9734c135, 0xffffd85bffffdebd}, + {0x9734c136, 0xffffd85bffffdebe}, + {0x9734c137, 0xffffd85bffffdebf}, + {0x9734c138, 0xffffd85bffffdec0}, + {0x9734c139, 0xffffd85bffffdec1}, + {0x9734c230, 0xffffd85bffffdec2}, + {0x9734c231, 0xffffd85bffffdec3}, + {0x9734c232, 0xffffd85bffffdec4}, + {0x9734c233, 0xffffd85bffffdec5}, + {0x9734c234, 0xffffd85bffffdec6}, + {0x9734c235, 0xffffd85bffffdec7}, + {0x9734c236, 0xffffd85bffffdec8}, + {0x9734c237, 0xffffd85bffffdec9}, + {0x9734c238, 0xffffd85bffffdeca}, + {0x9734c239, 0xffffd85bffffdecb}, + {0x9734c330, 0xffffd85bffffdecc}, + {0x9734c331, 0xffffd85bffffdecd}, + {0x9734c332, 0xffffd85bffffdece}, + {0x9734c333, 0xffffd85bffffdecf}, + {0x9734c334, 0xffffd85bffffded0}, + {0x9734c335, 0xffffd85bffffded1}, + {0x9734c336, 0xffffd85bffffded2}, + {0x9734c337, 0xffffd85bffffded3}, + {0x9734c338, 0xffffd85bffffded4}, + {0x9734c339, 0xffffd85bffffded5}, + {0x9734c430, 0xffffd85bffffded6}, + {0x9734c431, 0xffffd85bffffded7}, + {0x9734c432, 0xffffd85bffffded8}, + {0x9734c433, 0xffffd85bffffded9}, + {0x9734c434, 0xffffd85bffffdeda}, + {0x9734c435, 0xffffd85bffffdedb}, + {0x9734c436, 0xffffd85bffffdedc}, + {0x9734c437, 0xffffd85bffffdedd}, + {0x9734c438, 0xffffd85bffffdede}, + {0x9734c439, 0xffffd85bffffdedf}, + {0x9734c530, 0xffffd85bffffdee0}, + {0x9734c531, 0xffffd85bffffdee1}, + {0x9734c532, 0xffffd85bffffdee2}, + {0x9734c533, 0xffffd85bffffdee3}, + {0x9734c534, 0xffffd85bffffdee4}, + {0x9734c535, 0xffffd85bffffdee5}, + {0x9734c536, 0xffffd85bffffdee6}, + {0x9734c537, 0xffffd85bffffdee7}, + {0x9734c538, 0xffffd85bffffdee8}, + {0x9734c539, 0xffffd85bffffdee9}, + {0x9734c630, 0xffffd85bffffdeea}, + {0x9734c631, 0xffffd85bffffdeeb}, + {0x9734c632, 0xffffd85bffffdeec}, + {0x9734c633, 0xffffd85bffffdeed}, + {0x9734c634, 0xffffd85bffffdeee}, + {0x9734c635, 0xffffd85bffffdeef}, + {0x9734c636, 0xffffd85bffffdef0}, + {0x9734c637, 0xffffd85bffffdef1}, + {0x9734c638, 0xffffd85bffffdef2}, + {0x9734c639, 0xffffd85bffffdef3}, + {0x9734c730, 0xffffd85bffffdef4}, + {0x9734c731, 0xffffd85bffffdef5}, + {0x9734c732, 0xffffd85bffffdef6}, + {0x9734c733, 0xffffd85bffffdef7}, + {0x9734c734, 0xffffd85bffffdef8}, + {0x9734c735, 0xffffd85bffffdef9}, + {0x9734c736, 0xffffd85bffffdefa}, + {0x9734c737, 0xffffd85bffffdefb}, + {0x9734c738, 0xffffd85bffffdefc}, + {0x9734c739, 0xffffd85bffffdefd}, + {0x9734c830, 0xffffd85bffffdefe}, + {0x9734c831, 0xffffd85bffffdeff}, + {0x9734c832, 0xffffd85bffffdf00}, + {0x9734c833, 0xffffd85bffffdf01}, + {0x9734c834, 0xffffd85bffffdf02}, + {0x9734c835, 0xffffd85bffffdf03}, + {0x9734c836, 0xffffd85bffffdf04}, + {0x9734c837, 0xffffd85bffffdf05}, + {0x9734c838, 0xffffd85bffffdf06}, + {0x9734c839, 0xffffd85bffffdf07}, + {0x9734c930, 0xffffd85bffffdf08}, + {0x9734c931, 0xffffd85bffffdf09}, + {0x9734c932, 0xffffd85bffffdf0a}, + {0x9734c933, 0xffffd85bffffdf0b}, + {0x9734c934, 0xffffd85bffffdf0c}, + {0x9734c935, 0xffffd85bffffdf0d}, + {0x9734c936, 0xffffd85bffffdf0e}, + {0x9734c937, 0xffffd85bffffdf0f}, + {0x9734c938, 0xffffd85bffffdf10}, + {0x9734c939, 0xffffd85bffffdf11}, + {0x9734ca30, 0xffffd85bffffdf12}, + {0x9734ca31, 0xffffd85bffffdf13}, + {0x9734ca32, 0xffffd85bffffdf14}, + {0x9734ca33, 0xffffd85bffffdf15}, + {0x9734ca34, 0xffffd85bffffdf16}, + {0x9734ca35, 0xffffd85bffffdf17}, + {0x9734ca36, 0xffffd85bffffdf18}, + {0x9734ca37, 0xffffd85bffffdf19}, + {0x9734ca38, 0xffffd85bffffdf1a}, + {0x9734ca39, 0xffffd85bffffdf1b}, + {0x9734cb30, 0xffffd85bffffdf1c}, + {0x9734cb31, 0xffffd85bffffdf1d}, + {0x9734cb32, 0xffffd85bffffdf1e}, + {0x9734cb33, 0xffffd85bffffdf1f}, + {0x9734cb34, 0xffffd85bffffdf20}, + {0x9734cb35, 0xffffd85bffffdf21}, + {0x9734cb36, 0xffffd85bffffdf22}, + {0x9734cb37, 0xffffd85bffffdf23}, + {0x9734cb38, 0xffffd85bffffdf24}, + {0x9734cb39, 0xffffd85bffffdf25}, + {0x9734cc30, 0xffffd85bffffdf26}, + {0x9734cc31, 0xffffd85bffffdf27}, + {0x9734cc32, 0xffffd85bffffdf28}, + {0x9734cc33, 0xffffd85bffffdf29}, + {0x9734cc34, 0xffffd85bffffdf2a}, + {0x9734cc35, 0xffffd85bffffdf2b}, + {0x9734cc36, 0xffffd85bffffdf2c}, + {0x9734cc37, 0xffffd85bffffdf2d}, + {0x9734cc38, 0xffffd85bffffdf2e}, + {0x9734cc39, 0xffffd85bffffdf2f}, + {0x9734cd30, 0xffffd85bffffdf30}, + {0x9734cd31, 0xffffd85bffffdf31}, + {0x9734cd32, 0xffffd85bffffdf32}, + {0x9734cd33, 0xffffd85bffffdf33}, + {0x9734cd34, 0xffffd85bffffdf34}, + {0x9734cd35, 0xffffd85bffffdf35}, + {0x9734cd36, 0xffffd85bffffdf36}, + {0x9734cd37, 0xffffd85bffffdf37}, + {0x9734cd38, 0xffffd85bffffdf38}, + {0x9734cd39, 0xffffd85bffffdf39}, + {0x9734ce30, 0xffffd85bffffdf3a}, + {0x9734ce31, 0xffffd85bffffdf3b}, + {0x9734ce32, 0xffffd85bffffdf3c}, + {0x9734ce33, 0xffffd85bffffdf3d}, + {0x9734ce34, 0xffffd85bffffdf3e}, + {0x9734ce35, 0xffffd85bffffdf3f}, + {0x9734ce36, 0xffffd85bffffdf40}, + {0x9734ce37, 0xffffd85bffffdf41}, + {0x9734ce38, 0xffffd85bffffdf42}, + {0x9734ce39, 0xffffd85bffffdf43}, + {0x9734cf30, 0xffffd85bffffdf44}, + {0x9734cf31, 0xffffd85bffffdf45}, + {0x9734cf32, 0xffffd85bffffdf46}, + {0x9734cf33, 0xffffd85bffffdf47}, + {0x9734cf34, 0xffffd85bffffdf48}, + {0x9734cf35, 0xffffd85bffffdf49}, + {0x9734cf36, 0xffffd85bffffdf4a}, + {0x9734cf37, 0xffffd85bffffdf4b}, + {0x9734cf38, 0xffffd85bffffdf4c}, + {0x9734cf39, 0xffffd85bffffdf4d}, + {0x9734d030, 0xffffd85bffffdf4e}, + {0x9734d031, 0xffffd85bffffdf4f}, + {0x9734d032, 0xffffd85bffffdf50}, + {0x9734d033, 0xffffd85bffffdf51}, + {0x9734d034, 0xffffd85bffffdf52}, + {0x9734d035, 0xffffd85bffffdf53}, + {0x9734d036, 0xffffd85bffffdf54}, + {0x9734d037, 0xffffd85bffffdf55}, + {0x9734d038, 0xffffd85bffffdf56}, + {0x9734d039, 0xffffd85bffffdf57}, + {0x9734d130, 0xffffd85bffffdf58}, + {0x9734d131, 0xffffd85bffffdf59}, + {0x9734d132, 0xffffd85bffffdf5a}, + {0x9734d133, 0xffffd85bffffdf5b}, + {0x9734d134, 0xffffd85bffffdf5c}, + {0x9734d135, 0xffffd85bffffdf5d}, + {0x9734d136, 0xffffd85bffffdf5e}, + {0x9734d137, 0xffffd85bffffdf5f}, + {0x9734d138, 0xffffd85bffffdf60}, + {0x9734d139, 0xffffd85bffffdf61}, + {0x9734d230, 0xffffd85bffffdf62}, + {0x9734d231, 0xffffd85bffffdf63}, + {0x9734d232, 0xffffd85bffffdf64}, + {0x9734d233, 0xffffd85bffffdf65}, + {0x9734d234, 0xffffd85bffffdf66}, + {0x9734d235, 0xffffd85bffffdf67}, + {0x9734d236, 0xffffd85bffffdf68}, + {0x9734d237, 0xffffd85bffffdf69}, + {0x9734d238, 0xffffd85bffffdf6a}, + {0x9734d239, 0xffffd85bffffdf6b}, + {0x9734d330, 0xffffd85bffffdf6c}, + {0x9734d331, 0xffffd85bffffdf6d}, + {0x9734d332, 0xffffd85bffffdf6e}, + {0x9734d333, 0xffffd85bffffdf6f}, + {0x9734d334, 0xffffd85bffffdf70}, + {0x9734d335, 0xffffd85bffffdf71}, + {0x9734d336, 0xffffd85bffffdf72}, + {0x9734d337, 0xffffd85bffffdf73}, + {0x9734d338, 0xffffd85bffffdf74}, + {0x9734d339, 0xffffd85bffffdf75}, + {0x9734d430, 0xffffd85bffffdf76}, + {0x9734d431, 0xffffd85bffffdf77}, + {0x9734d432, 0xffffd85bffffdf78}, + {0x9734d433, 0xffffd85bffffdf79}, + {0x9734d434, 0xffffd85bffffdf7a}, + {0x9734d435, 0xffffd85bffffdf7b}, + {0x9734d436, 0xffffd85bffffdf7c}, + {0x9734d437, 0xffffd85bffffdf7d}, + {0x9734d438, 0xffffd85bffffdf7e}, + {0x9734d439, 0xffffd85bffffdf7f}, + {0x9734d530, 0xffffd85bffffdf80}, + {0x9734d531, 0xffffd85bffffdf81}, + {0x9734d532, 0xffffd85bffffdf82}, + {0x9734d533, 0xffffd85bffffdf83}, + {0x9734d534, 0xffffd85bffffdf84}, + {0x9734d535, 0xffffd85bffffdf85}, + {0x9734d536, 0xffffd85bffffdf86}, + {0x9734d537, 0xffffd85bffffdf87}, + {0x9734d538, 0xffffd85bffffdf88}, + {0x9734d539, 0xffffd85bffffdf89}, + {0x9734d630, 0xffffd85bffffdf8a}, + {0x9734d631, 0xffffd85bffffdf8b}, + {0x9734d632, 0xffffd85bffffdf8c}, + {0x9734d633, 0xffffd85bffffdf8d}, + {0x9734d634, 0xffffd85bffffdf8e}, + {0x9734d635, 0xffffd85bffffdf8f}, + {0x9734d636, 0xffffd85bffffdf90}, + {0x9734d637, 0xffffd85bffffdf91}, + {0x9734d638, 0xffffd85bffffdf92}, + {0x9734d639, 0xffffd85bffffdf93}, + {0x9734d730, 0xffffd85bffffdf94}, + {0x9734d731, 0xffffd85bffffdf95}, + {0x9734d732, 0xffffd85bffffdf96}, + {0x9734d733, 0xffffd85bffffdf97}, + {0x9734d734, 0xffffd85bffffdf98}, + {0x9734d735, 0xffffd85bffffdf99}, + {0x9734d736, 0xffffd85bffffdf9a}, + {0x9734d737, 0xffffd85bffffdf9b}, + {0x9734d738, 0xffffd85bffffdf9c}, + {0x9734d739, 0xffffd85bffffdf9d}, + {0x9734d830, 0xffffd85bffffdf9e}, + {0x9734d831, 0xffffd85bffffdf9f}, + {0x9734d832, 0xffffd85bffffdfa0}, + {0x9734d833, 0xffffd85bffffdfa1}, + {0x9734d834, 0xffffd85bffffdfa2}, + {0x9734d835, 0xffffd85bffffdfa3}, + {0x9734d836, 0xffffd85bffffdfa4}, + {0x9734d837, 0xffffd85bffffdfa5}, + {0x9734d838, 0xffffd85bffffdfa6}, + {0x9734d839, 0xffffd85bffffdfa7}, + {0x9734d930, 0xffffd85bffffdfa8}, + {0x9734d931, 0xffffd85bffffdfa9}, + {0x9734d932, 0xffffd85bffffdfaa}, + {0x9734d933, 0xffffd85bffffdfab}, + {0x9734d934, 0xffffd85bffffdfac}, + {0x9734d935, 0xffffd85bffffdfad}, + {0x9734d936, 0xffffd85bffffdfae}, + {0x9734d937, 0xffffd85bffffdfaf}, + {0x9734d938, 0xffffd85bffffdfb0}, + {0x9734d939, 0xffffd85bffffdfb1}, + {0x9734da30, 0xffffd85bffffdfb2}, + {0x9734da31, 0xffffd85bffffdfb3}, + {0x9734da32, 0xffffd85bffffdfb4}, + {0x9734da33, 0xffffd85bffffdfb5}, + {0x9734da34, 0xffffd85bffffdfb6}, + {0x9734da35, 0xffffd85bffffdfb7}, + {0x9734da36, 0xffffd85bffffdfb8}, + {0x9734da37, 0xffffd85bffffdfb9}, + {0x9734da38, 0xffffd85bffffdfba}, + {0x9734da39, 0xffffd85bffffdfbb}, + {0x9734db30, 0xffffd85bffffdfbc}, + {0x9734db31, 0xffffd85bffffdfbd}, + {0x9734db32, 0xffffd85bffffdfbe}, + {0x9734db33, 0xffffd85bffffdfbf}, + {0x9734db34, 0xffffd85bffffdfc0}, + {0x9734db35, 0xffffd85bffffdfc1}, + {0x9734db36, 0xffffd85bffffdfc2}, + {0x9734db37, 0xffffd85bffffdfc3}, + {0x9734db38, 0xffffd85bffffdfc4}, + {0x9734db39, 0xffffd85bffffdfc5}, + {0x9734dc30, 0xffffd85bffffdfc6}, + {0x9734dc31, 0xffffd85bffffdfc7}, + {0x9734dc32, 0xffffd85bffffdfc8}, + {0x9734dc33, 0xffffd85bffffdfc9}, + {0x9734dc34, 0xffffd85bffffdfca}, + {0x9734dc35, 0xffffd85bffffdfcb}, + {0x9734dc36, 0xffffd85bffffdfcc}, + {0x9734dc37, 0xffffd85bffffdfcd}, + {0x9734dc38, 0xffffd85bffffdfce}, + {0x9734dc39, 0xffffd85bffffdfcf}, + {0x9734dd30, 0xffffd85bffffdfd0}, + {0x9734dd31, 0xffffd85bffffdfd1}, + {0x9734dd32, 0xffffd85bffffdfd2}, + {0x9734dd33, 0xffffd85bffffdfd3}, + {0x9734dd34, 0xffffd85bffffdfd4}, + {0x9734dd35, 0xffffd85bffffdfd5}, + {0x9734dd36, 0xffffd85bffffdfd6}, + {0x9734dd37, 0xffffd85bffffdfd7}, + {0x9734dd38, 0xffffd85bffffdfd8}, + {0x9734dd39, 0xffffd85bffffdfd9}, + {0x9734de30, 0xffffd85bffffdfda}, + {0x9734de31, 0xffffd85bffffdfdb}, + {0x9734de32, 0xffffd85bffffdfdc}, + {0x9734de33, 0xffffd85bffffdfdd}, + {0x9734de34, 0xffffd85bffffdfde}, + {0x9734de35, 0xffffd85bffffdfdf}, + {0x9734de36, 0xffffd85bffffdfe0}, + {0x9734de37, 0xffffd85bffffdfe1}, + {0x9734de38, 0xffffd85bffffdfe2}, + {0x9734de39, 0xffffd85bffffdfe3}, + {0x9734df30, 0xffffd85bffffdfe4}, + {0x9734df31, 0xffffd85bffffdfe5}, + {0x9734df32, 0xffffd85bffffdfe6}, + {0x9734df33, 0xffffd85bffffdfe7}, + {0x9734df34, 0xffffd85bffffdfe8}, + {0x9734df35, 0xffffd85bffffdfe9}, + {0x9734df36, 0xffffd85bffffdfea}, + {0x9734df37, 0xffffd85bffffdfeb}, + {0x9734df38, 0xffffd85bffffdfec}, + {0x9734df39, 0xffffd85bffffdfed}, + {0x9734e030, 0xffffd85bffffdfee}, + {0x9734e031, 0xffffd85bffffdfef}, + {0x9734e032, 0xffffd85bffffdff0}, + {0x9734e033, 0xffffd85bffffdff1}, + {0x9734e034, 0xffffd85bffffdff2}, + {0x9734e035, 0xffffd85bffffdff3}, + {0x9734e036, 0xffffd85bffffdff4}, + {0x9734e037, 0xffffd85bffffdff5}, + {0x9734e038, 0xffffd85bffffdff6}, + {0x9734e039, 0xffffd85bffffdff7}, + {0x9734e130, 0xffffd85bffffdff8}, + {0x9734e131, 0xffffd85bffffdff9}, + {0x9734e132, 0xffffd85bffffdffa}, + {0x9734e133, 0xffffd85bffffdffb}, + {0x9734e134, 0xffffd85bffffdffc}, + {0x9734e135, 0xffffd85bffffdffd}, + {0x9734e136, 0xffffd85bffffdffe}, + {0x9734e137, 0xffffd85bffffdfff}, + {0x9734e138, 0xffffd85cffffdc00}, + {0x9734e139, 0xffffd85cffffdc01}, + {0x9734e230, 0xffffd85cffffdc02}, + {0x9734e231, 0xffffd85cffffdc03}, + {0x9734e232, 0xffffd85cffffdc04}, + {0x9734e233, 0xffffd85cffffdc05}, + {0x9734e234, 0xffffd85cffffdc06}, + {0x9734e235, 0xffffd85cffffdc07}, + {0x9734e236, 0xffffd85cffffdc08}, + {0x9734e237, 0xffffd85cffffdc09}, + {0x9734e238, 0xffffd85cffffdc0a}, + {0x9734e239, 0xffffd85cffffdc0b}, + {0x9734e330, 0xffffd85cffffdc0c}, + {0x9734e331, 0xffffd85cffffdc0d}, + {0x9734e332, 0xffffd85cffffdc0e}, + {0x9734e333, 0xffffd85cffffdc0f}, + {0x9734e334, 0xffffd85cffffdc10}, + {0x9734e335, 0xffffd85cffffdc11}, + {0x9734e336, 0xffffd85cffffdc12}, + {0x9734e337, 0xffffd85cffffdc13}, + {0x9734e338, 0xffffd85cffffdc14}, + {0x9734e339, 0xffffd85cffffdc15}, + {0x9734e430, 0xffffd85cffffdc16}, + {0x9734e431, 0xffffd85cffffdc17}, + {0x9734e432, 0xffffd85cffffdc18}, + {0x9734e433, 0xffffd85cffffdc19}, + {0x9734e434, 0xffffd85cffffdc1a}, + {0x9734e435, 0xffffd85cffffdc1b}, + {0x9734e436, 0xffffd85cffffdc1c}, + {0x9734e437, 0xffffd85cffffdc1d}, + {0x9734e438, 0xffffd85cffffdc1e}, + {0x9734e439, 0xffffd85cffffdc1f}, + {0x9734e530, 0xffffd85cffffdc20}, + {0x9734e531, 0xffffd85cffffdc21}, + {0x9734e532, 0xffffd85cffffdc22}, + {0x9734e533, 0xffffd85cffffdc23}, + {0x9734e534, 0xffffd85cffffdc24}, + {0x9734e535, 0xffffd85cffffdc25}, + {0x9734e536, 0xffffd85cffffdc26}, + {0x9734e537, 0xffffd85cffffdc27}, + {0x9734e538, 0xffffd85cffffdc28}, + {0x9734e539, 0xffffd85cffffdc29}, + {0x9734e630, 0xffffd85cffffdc2a}, + {0x9734e631, 0xffffd85cffffdc2b}, + {0x9734e632, 0xffffd85cffffdc2c}, + {0x9734e633, 0xffffd85cffffdc2d}, + {0x9734e634, 0xffffd85cffffdc2e}, + {0x9734e635, 0xffffd85cffffdc2f}, + {0x9734e636, 0xffffd85cffffdc30}, + {0x9734e637, 0xffffd85cffffdc31}, + {0x9734e638, 0xffffd85cffffdc32}, + {0x9734e639, 0xffffd85cffffdc33}, + {0x9734e730, 0xffffd85cffffdc34}, + {0x9734e731, 0xffffd85cffffdc35}, + {0x9734e732, 0xffffd85cffffdc36}, + {0x9734e733, 0xffffd85cffffdc37}, + {0x9734e734, 0xffffd85cffffdc38}, + {0x9734e735, 0xffffd85cffffdc39}, + {0x9734e736, 0xffffd85cffffdc3a}, + {0x9734e737, 0xffffd85cffffdc3b}, + {0x9734e738, 0xffffd85cffffdc3c}, + {0x9734e739, 0xffffd85cffffdc3d}, + {0x9734e830, 0xffffd85cffffdc3e}, + {0x9734e831, 0xffffd85cffffdc3f}, + {0x9734e832, 0xffffd85cffffdc40}, + {0x9734e833, 0xffffd85cffffdc41}, + {0x9734e834, 0xffffd85cffffdc42}, + {0x9734e835, 0xffffd85cffffdc43}, + {0x9734e836, 0xffffd85cffffdc44}, + {0x9734e837, 0xffffd85cffffdc45}, + {0x9734e838, 0xffffd85cffffdc46}, + {0x9734e839, 0xffffd85cffffdc47}, + {0x9734e930, 0xffffd85cffffdc48}, + {0x9734e931, 0xffffd85cffffdc49}, + {0x9734e932, 0xffffd85cffffdc4a}, + {0x9734e933, 0xffffd85cffffdc4b}, + {0x9734e934, 0xffffd85cffffdc4c}, + {0x9734e935, 0xffffd85cffffdc4d}, + {0x9734e936, 0xffffd85cffffdc4e}, + {0x9734e937, 0xffffd85cffffdc4f}, + {0x9734e938, 0xffffd85cffffdc50}, + {0x9734e939, 0xffffd85cffffdc51}, + {0x9734ea30, 0xffffd85cffffdc52}, + {0x9734ea31, 0xffffd85cffffdc53}, + {0x9734ea32, 0xffffd85cffffdc54}, + {0x9734ea33, 0xffffd85cffffdc55}, + {0x9734ea34, 0xffffd85cffffdc56}, + {0x9734ea35, 0xffffd85cffffdc57}, + {0x9734ea36, 0xffffd85cffffdc58}, + {0x9734ea37, 0xffffd85cffffdc59}, + {0x9734ea38, 0xffffd85cffffdc5a}, + {0x9734ea39, 0xffffd85cffffdc5b}, + {0x9734eb30, 0xffffd85cffffdc5c}, + {0x9734eb31, 0xffffd85cffffdc5d}, + {0x9734eb32, 0xffffd85cffffdc5e}, + {0x9734eb33, 0xffffd85cffffdc5f}, + {0x9734eb34, 0xffffd85cffffdc60}, + {0x9734eb35, 0xffffd85cffffdc61}, + {0x9734eb36, 0xffffd85cffffdc62}, + {0x9734eb37, 0xffffd85cffffdc63}, + {0x9734eb38, 0xffffd85cffffdc64}, + {0x9734eb39, 0xffffd85cffffdc65}, + {0x9734ec30, 0xffffd85cffffdc66}, + {0x9734ec31, 0xffffd85cffffdc67}, + {0x9734ec32, 0xffffd85cffffdc68}, + {0x9734ec33, 0xffffd85cffffdc69}, + {0x9734ec34, 0xffffd85cffffdc6a}, + {0x9734ec35, 0xffffd85cffffdc6b}, + {0x9734ec36, 0xffffd85cffffdc6c}, + {0x9734ec37, 0xffffd85cffffdc6d}, + {0x9734ec38, 0xffffd85cffffdc6e}, + {0x9734ec39, 0xffffd85cffffdc6f}, + {0x9734ed30, 0xffffd85cffffdc70}, + {0x9734ed31, 0xffffd85cffffdc71}, + {0x9734ed32, 0xffffd85cffffdc72}, + {0x9734ed33, 0xffffd85cffffdc73}, + {0x9734ed34, 0xffffd85cffffdc74}, + {0x9734ed35, 0xffffd85cffffdc75}, + {0x9734ed36, 0xffffd85cffffdc76}, + {0x9734ed37, 0xffffd85cffffdc77}, + {0x9734ed38, 0xffffd85cffffdc78}, + {0x9734ed39, 0xffffd85cffffdc79}, + {0x9734ee30, 0xffffd85cffffdc7a}, + {0x9734ee31, 0xffffd85cffffdc7b}, + {0x9734ee32, 0xffffd85cffffdc7c}, + {0x9734ee33, 0xffffd85cffffdc7d}, + {0x9734ee34, 0xffffd85cffffdc7e}, + {0x9734ee35, 0xffffd85cffffdc7f}, + {0x9734ee36, 0xffffd85cffffdc80}, + {0x9734ee37, 0xffffd85cffffdc81}, + {0x9734ee38, 0xffffd85cffffdc82}, + {0x9734ee39, 0xffffd85cffffdc83}, + {0x9734ef30, 0xffffd85cffffdc84}, + {0x9734ef31, 0xffffd85cffffdc85}, + {0x9734ef32, 0xffffd85cffffdc86}, + {0x9734ef33, 0xffffd85cffffdc87}, + {0x9734ef34, 0xffffd85cffffdc88}, + {0x9734ef35, 0xffffd85cffffdc89}, + {0x9734ef36, 0xffffd85cffffdc8a}, + {0x9734ef37, 0xffffd85cffffdc8b}, + {0x9734ef38, 0xffffd85cffffdc8c}, + {0x9734ef39, 0xffffd85cffffdc8d}, + {0x9734f030, 0xffffd85cffffdc8e}, + {0x9734f031, 0xffffd85cffffdc8f}, + {0x9734f032, 0xffffd85cffffdc90}, + {0x9734f033, 0xffffd85cffffdc91}, + {0x9734f034, 0xffffd85cffffdc92}, + {0x9734f035, 0xffffd85cffffdc93}, + {0x9734f036, 0xffffd85cffffdc94}, + {0x9734f037, 0xffffd85cffffdc95}, + {0x9734f038, 0xffffd85cffffdc96}, + {0x9734f039, 0xffffd85cffffdc97}, + {0x9734f130, 0xffffd85cffffdc98}, + {0x9734f131, 0xffffd85cffffdc99}, + {0x9734f132, 0xffffd85cffffdc9a}, + {0x9734f133, 0xffffd85cffffdc9b}, + {0x9734f134, 0xffffd85cffffdc9c}, + {0x9734f135, 0xffffd85cffffdc9d}, + {0x9734f136, 0xffffd85cffffdc9e}, + {0x9734f137, 0xffffd85cffffdc9f}, + {0x9734f138, 0xffffd85cffffdca0}, + {0x9734f139, 0xffffd85cffffdca1}, + {0x9734f230, 0xffffd85cffffdca2}, + {0x9734f231, 0xffffd85cffffdca3}, + {0x9734f232, 0xffffd85cffffdca4}, + {0x9734f233, 0xffffd85cffffdca5}, + {0x9734f234, 0xffffd85cffffdca6}, + {0x9734f235, 0xffffd85cffffdca7}, + {0x9734f236, 0xffffd85cffffdca8}, + {0x9734f237, 0xffffd85cffffdca9}, + {0x9734f238, 0xffffd85cffffdcaa}, + {0x9734f239, 0xffffd85cffffdcab}, + {0x9734f330, 0xffffd85cffffdcac}, + {0x9734f331, 0xffffd85cffffdcad}, + {0x9734f332, 0xffffd85cffffdcae}, + {0x9734f333, 0xffffd85cffffdcaf}, + {0x9734f334, 0xffffd85cffffdcb0}, + {0x9734f335, 0xffffd85cffffdcb1}, + {0x9734f336, 0xffffd85cffffdcb2}, + {0x9734f337, 0xffffd85cffffdcb3}, + {0x9734f338, 0xffffd85cffffdcb4}, + {0x9734f339, 0xffffd85cffffdcb5}, + {0x9734f430, 0xffffd85cffffdcb6}, + {0x9734f431, 0xffffd85cffffdcb7}, + {0x9734f432, 0xffffd85cffffdcb8}, + {0x9734f433, 0xffffd85cffffdcb9}, + {0x9734f434, 0xffffd85cffffdcba}, + {0x9734f435, 0xffffd85cffffdcbb}, + {0x9734f436, 0xffffd85cffffdcbc}, + {0x9734f437, 0xffffd85cffffdcbd}, + {0x9734f438, 0xffffd85cffffdcbe}, + {0x9734f439, 0xffffd85cffffdcbf}, + {0x9734f530, 0xffffd85cffffdcc0}, + {0x9734f531, 0xffffd85cffffdcc1}, + {0x9734f532, 0xffffd85cffffdcc2}, + {0x9734f533, 0xffffd85cffffdcc3}, + {0x9734f534, 0xffffd85cffffdcc4}, + {0x9734f535, 0xffffd85cffffdcc5}, + {0x9734f536, 0xffffd85cffffdcc6}, + {0x9734f537, 0xffffd85cffffdcc7}, + {0x9734f538, 0xffffd85cffffdcc8}, + {0x9734f539, 0xffffd85cffffdcc9}, + {0x9734f630, 0xffffd85cffffdcca}, + {0x9734f631, 0xffffd85cffffdccb}, + {0x9734f632, 0xffffd85cffffdccc}, + {0x9734f633, 0xffffd85cffffdccd}, + {0x9734f634, 0xffffd85cffffdcce}, + {0x9734f635, 0xffffd85cffffdccf}, + {0x9734f636, 0xffffd85cffffdcd0}, + {0x9734f637, 0xffffd85cffffdcd1}, + {0x9734f638, 0xffffd85cffffdcd2}, + {0x9734f639, 0xffffd85cffffdcd3}, + {0x9734f730, 0xffffd85cffffdcd4}, + {0x9734f731, 0xffffd85cffffdcd5}, + {0x9734f732, 0xffffd85cffffdcd6}, + {0x9734f733, 0xffffd85cffffdcd7}, + {0x9734f734, 0xffffd85cffffdcd8}, + {0x9734f735, 0xffffd85cffffdcd9}, + {0x9734f736, 0xffffd85cffffdcda}, + {0x9734f737, 0xffffd85cffffdcdb}, + {0x9734f738, 0xffffd85cffffdcdc}, + {0x9734f739, 0xffffd85cffffdcdd}, + {0x9734f830, 0xffffd85cffffdcde}, + {0x9734f831, 0xffffd85cffffdcdf}, + {0x9734f832, 0xffffd85cffffdce0}, + {0x9734f833, 0xffffd85cffffdce1}, + {0x9734f834, 0xffffd85cffffdce2}, + {0x9734f835, 0xffffd85cffffdce3}, + {0x9734f836, 0xffffd85cffffdce4}, + {0x9734f837, 0xffffd85cffffdce5}, + {0x9734f838, 0xffffd85cffffdce6}, + {0x9734f839, 0xffffd85cffffdce7}, + {0x9734f930, 0xffffd85cffffdce8}, + {0x9734f931, 0xffffd85cffffdce9}, + {0x9734f932, 0xffffd85cffffdcea}, + {0x9734f933, 0xffffd85cffffdceb}, + {0x9734f934, 0xffffd85cffffdcec}, + {0x9734f935, 0xffffd85cffffdced}, + {0x9734f936, 0xffffd85cffffdcee}, + {0x9734f937, 0xffffd85cffffdcef}, + {0x9734f938, 0xffffd85cffffdcf0}, + {0x9734f939, 0xffffd85cffffdcf1}, + {0x9734fa30, 0xffffd85cffffdcf2}, + {0x9734fa31, 0xffffd85cffffdcf3}, + {0x9734fa32, 0xffffd85cffffdcf4}, + {0x9734fa33, 0xffffd85cffffdcf5}, + {0x9734fa34, 0xffffd85cffffdcf6}, + {0x9734fa35, 0xffffd85cffffdcf7}, + {0x9734fa36, 0xffffd85cffffdcf8}, + {0x9734fa37, 0xffffd85cffffdcf9}, + {0x9734fa38, 0xffffd85cffffdcfa}, + {0x9734fa39, 0xffffd85cffffdcfb}, + {0x9734fb30, 0xffffd85cffffdcfc}, + {0x9734fb31, 0xffffd85cffffdcfd}, + {0x9734fb32, 0xffffd85cffffdcfe}, + {0x9734fb33, 0xffffd85cffffdcff}, + {0x9734fb34, 0xffffd85cffffdd00}, + {0x9734fb35, 0xffffd85cffffdd01}, + {0x9734fb36, 0xffffd85cffffdd02}, + {0x9734fb37, 0xffffd85cffffdd03}, + {0x9734fb38, 0xffffd85cffffdd04}, + {0x9734fb39, 0xffffd85cffffdd05}, + {0x9734fc30, 0xffffd85cffffdd06}, + {0x9734fc31, 0xffffd85cffffdd07}, + {0x9734fc32, 0xffffd85cffffdd08}, + {0x9734fc33, 0xffffd85cffffdd09}, + {0x9734fc34, 0xffffd85cffffdd0a}, + {0x9734fc35, 0xffffd85cffffdd0b}, + {0x9734fc36, 0xffffd85cffffdd0c}, + {0x9734fc37, 0xffffd85cffffdd0d}, + {0x9734fc38, 0xffffd85cffffdd0e}, + {0x9734fc39, 0xffffd85cffffdd0f}, + {0x9734fd30, 0xffffd85cffffdd10}, + {0x9734fd31, 0xffffd85cffffdd11}, + {0x9734fd32, 0xffffd85cffffdd12}, + {0x9734fd33, 0xffffd85cffffdd13}, + {0x9734fd34, 0xffffd85cffffdd14}, + {0x9734fd35, 0xffffd85cffffdd15}, + {0x9734fd36, 0xffffd85cffffdd16}, + {0x9734fd37, 0xffffd85cffffdd17}, + {0x9734fd38, 0xffffd85cffffdd18}, + {0x9734fd39, 0xffffd85cffffdd19}, + {0x9734fe30, 0xffffd85cffffdd1a}, + {0x9734fe31, 0xffffd85cffffdd1b}, + {0x9734fe32, 0xffffd85cffffdd1c}, + {0x9734fe33, 0xffffd85cffffdd1d}, + {0x9734fe34, 0xffffd85cffffdd1e}, + {0x9734fe35, 0xffffd85cffffdd1f}, + {0x9734fe36, 0xffffd85cffffdd20}, + {0x9734fe37, 0xffffd85cffffdd21}, + {0x9734fe38, 0xffffd85cffffdd22}, + {0x9734fe39, 0xffffd85cffffdd23}, + {0x97358130, 0xffffd85cffffdd24}, + {0x97358131, 0xffffd85cffffdd25}, + {0x97358132, 0xffffd85cffffdd26}, + {0x97358133, 0xffffd85cffffdd27}, + {0x97358134, 0xffffd85cffffdd28}, + {0x97358135, 0xffffd85cffffdd29}, + {0x97358136, 0xffffd85cffffdd2a}, + {0x97358137, 0xffffd85cffffdd2b}, + {0x97358138, 0xffffd85cffffdd2c}, + {0x97358139, 0xffffd85cffffdd2d}, + {0x97358230, 0xffffd85cffffdd2e}, + {0x97358231, 0xffffd85cffffdd2f}, + {0x97358232, 0xffffd85cffffdd30}, + {0x97358233, 0xffffd85cffffdd31}, + {0x97358234, 0xffffd85cffffdd32}, + {0x97358235, 0xffffd85cffffdd33}, + {0x97358236, 0xffffd85cffffdd34}, + {0x97358237, 0xffffd85cffffdd35}, + {0x97358238, 0xffffd85cffffdd36}, + {0x97358239, 0xffffd85cffffdd37}, + {0x97358330, 0xffffd85cffffdd38}, + {0x97358331, 0xffffd85cffffdd39}, + {0x97358332, 0xffffd85cffffdd3a}, + {0x97358333, 0xffffd85cffffdd3b}, + {0x97358334, 0xffffd85cffffdd3c}, + {0x97358335, 0xffffd85cffffdd3d}, + {0x97358336, 0xffffd85cffffdd3e}, + {0x97358337, 0xffffd85cffffdd3f}, + {0x97358338, 0xffffd85cffffdd40}, + {0x97358339, 0xffffd85cffffdd41}, + {0x97358430, 0xffffd85cffffdd42}, + {0x97358431, 0xffffd85cffffdd43}, + {0x97358432, 0xffffd85cffffdd44}, + {0x97358433, 0xffffd85cffffdd45}, + {0x97358434, 0xffffd85cffffdd46}, + {0x97358435, 0xffffd85cffffdd47}, + {0x97358436, 0xffffd85cffffdd48}, + {0x97358437, 0xffffd85cffffdd49}, + {0x97358438, 0xffffd85cffffdd4a}, + {0x97358439, 0xffffd85cffffdd4b}, + {0x97358530, 0xffffd85cffffdd4c}, + {0x97358531, 0xffffd85cffffdd4d}, + {0x97358532, 0xffffd85cffffdd4e}, + {0x97358533, 0xffffd85cffffdd4f}, + {0x97358534, 0xffffd85cffffdd50}, + {0x97358535, 0xffffd85cffffdd51}, + {0x97358536, 0xffffd85cffffdd52}, + {0x97358537, 0xffffd85cffffdd53}, + {0x97358538, 0xffffd85cffffdd54}, + {0x97358539, 0xffffd85cffffdd55}, + {0x97358630, 0xffffd85cffffdd56}, + {0x97358631, 0xffffd85cffffdd57}, + {0x97358632, 0xffffd85cffffdd58}, + {0x97358633, 0xffffd85cffffdd59}, + {0x97358634, 0xffffd85cffffdd5a}, + {0x97358635, 0xffffd85cffffdd5b}, + {0x97358636, 0xffffd85cffffdd5c}, + {0x97358637, 0xffffd85cffffdd5d}, + {0x97358638, 0xffffd85cffffdd5e}, + {0x97358639, 0xffffd85cffffdd5f}, + {0x97358730, 0xffffd85cffffdd60}, + {0x97358731, 0xffffd85cffffdd61}, + {0x97358732, 0xffffd85cffffdd62}, + {0x97358733, 0xffffd85cffffdd63}, + {0x97358734, 0xffffd85cffffdd64}, + {0x97358735, 0xffffd85cffffdd65}, + {0x97358736, 0xffffd85cffffdd66}, + {0x97358737, 0xffffd85cffffdd67}, + {0x97358738, 0xffffd85cffffdd68}, + {0x97358739, 0xffffd85cffffdd69}, + {0x97358830, 0xffffd85cffffdd6a}, + {0x97358831, 0xffffd85cffffdd6b}, + {0x97358832, 0xffffd85cffffdd6c}, + {0x97358833, 0xffffd85cffffdd6d}, + {0x97358834, 0xffffd85cffffdd6e}, + {0x97358835, 0xffffd85cffffdd6f}, + {0x97358836, 0xffffd85cffffdd70}, + {0x97358837, 0xffffd85cffffdd71}, + {0x97358838, 0xffffd85cffffdd72}, + {0x97358839, 0xffffd85cffffdd73}, + {0x97358930, 0xffffd85cffffdd74}, + {0x97358931, 0xffffd85cffffdd75}, + {0x97358932, 0xffffd85cffffdd76}, + {0x97358933, 0xffffd85cffffdd77}, + {0x97358934, 0xffffd85cffffdd78}, + {0x97358935, 0xffffd85cffffdd79}, + {0x97358936, 0xffffd85cffffdd7a}, + {0x97358937, 0xffffd85cffffdd7b}, + {0x97358938, 0xffffd85cffffdd7c}, + {0x97358939, 0xffffd85cffffdd7d}, + {0x97358a30, 0xffffd85cffffdd7e}, + {0x97358a31, 0xffffd85cffffdd7f}, + {0x97358a32, 0xffffd85cffffdd80}, + {0x97358a33, 0xffffd85cffffdd81}, + {0x97358a34, 0xffffd85cffffdd82}, + {0x97358a35, 0xffffd85cffffdd83}, + {0x97358a36, 0xffffd85cffffdd84}, + {0x97358a37, 0xffffd85cffffdd85}, + {0x97358a38, 0xffffd85cffffdd86}, + {0x97358a39, 0xffffd85cffffdd87}, + {0x97358b30, 0xffffd85cffffdd88}, + {0x97358b31, 0xffffd85cffffdd89}, + {0x97358b32, 0xffffd85cffffdd8a}, + {0x97358b33, 0xffffd85cffffdd8b}, + {0x97358b34, 0xffffd85cffffdd8c}, + {0x97358b35, 0xffffd85cffffdd8d}, + {0x97358b36, 0xffffd85cffffdd8e}, + {0x97358b37, 0xffffd85cffffdd8f}, + {0x97358b38, 0xffffd85cffffdd90}, + {0x97358b39, 0xffffd85cffffdd91}, + {0x97358c30, 0xffffd85cffffdd92}, + {0x97358c31, 0xffffd85cffffdd93}, + {0x97358c32, 0xffffd85cffffdd94}, + {0x97358c33, 0xffffd85cffffdd95}, + {0x97358c34, 0xffffd85cffffdd96}, + {0x97358c35, 0xffffd85cffffdd97}, + {0x97358c36, 0xffffd85cffffdd98}, + {0x97358c37, 0xffffd85cffffdd99}, + {0x97358c38, 0xffffd85cffffdd9a}, + {0x97358c39, 0xffffd85cffffdd9b}, + {0x97358d30, 0xffffd85cffffdd9c}, + {0x97358d31, 0xffffd85cffffdd9d}, + {0x97358d32, 0xffffd85cffffdd9e}, + {0x97358d33, 0xffffd85cffffdd9f}, + {0x97358d34, 0xffffd85cffffdda0}, + {0x97358d35, 0xffffd85cffffdda1}, + {0x97358d36, 0xffffd85cffffdda2}, + {0x97358d37, 0xffffd85cffffdda3}, + {0x97358d38, 0xffffd85cffffdda4}, + {0x97358d39, 0xffffd85cffffdda5}, + {0x97358e30, 0xffffd85cffffdda6}, + {0x97358e31, 0xffffd85cffffdda7}, + {0x97358e32, 0xffffd85cffffdda8}, + {0x97358e33, 0xffffd85cffffdda9}, + {0x97358e34, 0xffffd85cffffddaa}, + {0x97358e35, 0xffffd85cffffddab}, + {0x97358e36, 0xffffd85cffffddac}, + {0x97358e37, 0xffffd85cffffddad}, + {0x97358e38, 0xffffd85cffffddae}, + {0x97358e39, 0xffffd85cffffddaf}, + {0x97358f30, 0xffffd85cffffddb0}, + {0x97358f31, 0xffffd85cffffddb1}, + {0x97358f32, 0xffffd85cffffddb2}, + {0x97358f33, 0xffffd85cffffddb3}, + {0x97358f34, 0xffffd85cffffddb4}, + {0x97358f35, 0xffffd85cffffddb5}, + {0x97358f36, 0xffffd85cffffddb6}, + {0x97358f37, 0xffffd85cffffddb7}, + {0x97358f38, 0xffffd85cffffddb8}, + {0x97358f39, 0xffffd85cffffddb9}, + {0x97359030, 0xffffd85cffffddba}, + {0x97359031, 0xffffd85cffffddbb}, + {0x97359032, 0xffffd85cffffddbc}, + {0x97359033, 0xffffd85cffffddbd}, + {0x97359034, 0xffffd85cffffddbe}, + {0x97359035, 0xffffd85cffffddbf}, + {0x97359036, 0xffffd85cffffddc0}, + {0x97359037, 0xffffd85cffffddc1}, + {0x97359038, 0xffffd85cffffddc2}, + {0x97359039, 0xffffd85cffffddc3}, + {0x97359130, 0xffffd85cffffddc4}, + {0x97359131, 0xffffd85cffffddc5}, + {0x97359132, 0xffffd85cffffddc6}, + {0x97359133, 0xffffd85cffffddc7}, + {0x97359134, 0xffffd85cffffddc8}, + {0x97359135, 0xffffd85cffffddc9}, + {0x97359136, 0xffffd85cffffddca}, + {0x97359137, 0xffffd85cffffddcb}, + {0x97359138, 0xffffd85cffffddcc}, + {0x97359139, 0xffffd85cffffddcd}, + {0x97359230, 0xffffd85cffffddce}, + {0x97359231, 0xffffd85cffffddcf}, + {0x97359232, 0xffffd85cffffddd0}, + {0x97359233, 0xffffd85cffffddd1}, + {0x97359234, 0xffffd85cffffddd2}, + {0x97359235, 0xffffd85cffffddd3}, + {0x97359236, 0xffffd85cffffddd4}, + {0x97359237, 0xffffd85cffffddd5}, + {0x97359238, 0xffffd85cffffddd6}, + {0x97359239, 0xffffd85cffffddd7}, + {0x97359330, 0xffffd85cffffddd8}, + {0x97359331, 0xffffd85cffffddd9}, + {0x97359332, 0xffffd85cffffddda}, + {0x97359333, 0xffffd85cffffdddb}, + {0x97359334, 0xffffd85cffffdddc}, + {0x97359335, 0xffffd85cffffdddd}, + {0x97359336, 0xffffd85cffffddde}, + {0x97359337, 0xffffd85cffffdddf}, + {0x97359338, 0xffffd85cffffdde0}, + {0x97359339, 0xffffd85cffffdde1}, + {0x97359430, 0xffffd85cffffdde2}, + {0x97359431, 0xffffd85cffffdde3}, + {0x97359432, 0xffffd85cffffdde4}, + {0x97359433, 0xffffd85cffffdde5}, + {0x97359434, 0xffffd85cffffdde6}, + {0x97359435, 0xffffd85cffffdde7}, + {0x97359436, 0xffffd85cffffdde8}, + {0x97359437, 0xffffd85cffffdde9}, + {0x97359438, 0xffffd85cffffddea}, + {0x97359439, 0xffffd85cffffddeb}, + {0x97359530, 0xffffd85cffffddec}, + {0x97359531, 0xffffd85cffffdded}, + {0x97359532, 0xffffd85cffffddee}, + {0x97359533, 0xffffd85cffffddef}, + {0x97359534, 0xffffd85cffffddf0}, + {0x97359535, 0xffffd85cffffddf1}, + {0x97359536, 0xffffd85cffffddf2}, + {0x97359537, 0xffffd85cffffddf3}, + {0x97359538, 0xffffd85cffffddf4}, + {0x97359539, 0xffffd85cffffddf5}, + {0x97359630, 0xffffd85cffffddf6}, + {0x97359631, 0xffffd85cffffddf7}, + {0x97359632, 0xffffd85cffffddf8}, + {0x97359633, 0xffffd85cffffddf9}, + {0x97359634, 0xffffd85cffffddfa}, + {0x97359635, 0xffffd85cffffddfb}, + {0x97359636, 0xffffd85cffffddfc}, + {0x97359637, 0xffffd85cffffddfd}, + {0x97359638, 0xffffd85cffffddfe}, + {0x97359639, 0xffffd85cffffddff}, + {0x97359730, 0xffffd85cffffde00}, + {0x97359731, 0xffffd85cffffde01}, + {0x97359732, 0xffffd85cffffde02}, + {0x97359733, 0xffffd85cffffde03}, + {0x97359734, 0xffffd85cffffde04}, + {0x97359735, 0xffffd85cffffde05}, + {0x97359736, 0xffffd85cffffde06}, + {0x97359737, 0xffffd85cffffde07}, + {0x97359738, 0xffffd85cffffde08}, + {0x97359739, 0xffffd85cffffde09}, + {0x97359830, 0xffffd85cffffde0a}, + {0x97359831, 0xffffd85cffffde0b}, + {0x97359832, 0xffffd85cffffde0c}, + {0x97359833, 0xffffd85cffffde0d}, + {0x97359834, 0xffffd85cffffde0e}, + {0x97359835, 0xffffd85cffffde0f}, + {0x97359836, 0xffffd85cffffde10}, + {0x97359837, 0xffffd85cffffde11}, + {0x97359838, 0xffffd85cffffde12}, + {0x97359839, 0xffffd85cffffde13}, + {0x97359930, 0xffffd85cffffde14}, + {0x97359931, 0xffffd85cffffde15}, + {0x97359932, 0xffffd85cffffde16}, + {0x97359933, 0xffffd85cffffde17}, + {0x97359934, 0xffffd85cffffde18}, + {0x97359935, 0xffffd85cffffde19}, + {0x97359936, 0xffffd85cffffde1a}, + {0x97359937, 0xffffd85cffffde1b}, + {0x97359938, 0xffffd85cffffde1c}, + {0x97359939, 0xffffd85cffffde1d}, + {0x97359a30, 0xffffd85cffffde1e}, + {0x97359a31, 0xffffd85cffffde1f}, + {0x97359a32, 0xffffd85cffffde20}, + {0x97359a33, 0xffffd85cffffde21}, + {0x97359a34, 0xffffd85cffffde22}, + {0x97359a35, 0xffffd85cffffde23}, + {0x97359a36, 0xffffd85cffffde24}, + {0x97359a37, 0xffffd85cffffde25}, + {0x97359a38, 0xffffd85cffffde26}, + {0x97359a39, 0xffffd85cffffde27}, + {0x97359b30, 0xffffd85cffffde28}, + {0x97359b31, 0xffffd85cffffde29}, + {0x97359b32, 0xffffd85cffffde2a}, + {0x97359b33, 0xffffd85cffffde2b}, + {0x97359b34, 0xffffd85cffffde2c}, + {0x97359b35, 0xffffd85cffffde2d}, + {0x97359b36, 0xffffd85cffffde2e}, + {0x97359b37, 0xffffd85cffffde2f}, + {0x97359b38, 0xffffd85cffffde30}, + {0x97359b39, 0xffffd85cffffde31}, + {0x97359c30, 0xffffd85cffffde32}, + {0x97359c31, 0xffffd85cffffde33}, + {0x97359c32, 0xffffd85cffffde34}, + {0x97359c33, 0xffffd85cffffde35}, + {0x97359c34, 0xffffd85cffffde36}, + {0x97359c35, 0xffffd85cffffde37}, + {0x97359c36, 0xffffd85cffffde38}, + {0x97359c37, 0xffffd85cffffde39}, + {0x97359c38, 0xffffd85cffffde3a}, + {0x97359c39, 0xffffd85cffffde3b}, + {0x97359d30, 0xffffd85cffffde3c}, + {0x97359d31, 0xffffd85cffffde3d}, + {0x97359d32, 0xffffd85cffffde3e}, + {0x97359d33, 0xffffd85cffffde3f}, + {0x97359d34, 0xffffd85cffffde40}, + {0x97359d35, 0xffffd85cffffde41}, + {0x97359d36, 0xffffd85cffffde42}, + {0x97359d37, 0xffffd85cffffde43}, + {0x97359d38, 0xffffd85cffffde44}, + {0x97359d39, 0xffffd85cffffde45}, + {0x97359e30, 0xffffd85cffffde46}, + {0x97359e31, 0xffffd85cffffde47}, + {0x97359e32, 0xffffd85cffffde48}, + {0x97359e33, 0xffffd85cffffde49}, + {0x97359e34, 0xffffd85cffffde4a}, + {0x97359e35, 0xffffd85cffffde4b}, + {0x97359e36, 0xffffd85cffffde4c}, + {0x97359e37, 0xffffd85cffffde4d}, + {0x97359e38, 0xffffd85cffffde4e}, + {0x97359e39, 0xffffd85cffffde4f}, + {0x97359f30, 0xffffd85cffffde50}, + {0x97359f31, 0xffffd85cffffde51}, + {0x97359f32, 0xffffd85cffffde52}, + {0x97359f33, 0xffffd85cffffde53}, + {0x97359f34, 0xffffd85cffffde54}, + {0x97359f35, 0xffffd85cffffde55}, + {0x97359f36, 0xffffd85cffffde56}, + {0x97359f37, 0xffffd85cffffde57}, + {0x97359f38, 0xffffd85cffffde58}, + {0x97359f39, 0xffffd85cffffde59}, + {0x9735a030, 0xffffd85cffffde5a}, + {0x9735a031, 0xffffd85cffffde5b}, + {0x9735a032, 0xffffd85cffffde5c}, + {0x9735a033, 0xffffd85cffffde5d}, + {0x9735a034, 0xffffd85cffffde5e}, + {0x9735a035, 0xffffd85cffffde5f}, + {0x9735a036, 0xffffd85cffffde60}, + {0x9735a037, 0xffffd85cffffde61}, + {0x9735a038, 0xffffd85cffffde62}, + {0x9735a039, 0xffffd85cffffde63}, + {0x9735a130, 0xffffd85cffffde64}, + {0x9735a131, 0xffffd85cffffde65}, + {0x9735a132, 0xffffd85cffffde66}, + {0x9735a133, 0xffffd85cffffde67}, + {0x9735a134, 0xffffd85cffffde68}, + {0x9735a135, 0xffffd85cffffde69}, + {0x9735a136, 0xffffd85cffffde6a}, + {0x9735a137, 0xffffd85cffffde6b}, + {0x9735a138, 0xffffd85cffffde6c}, + {0x9735a139, 0xffffd85cffffde6d}, + {0x9735a230, 0xffffd85cffffde6e}, + {0x9735a231, 0xffffd85cffffde6f}, + {0x9735a232, 0xffffd85cffffde70}, + {0x9735a233, 0xffffd85cffffde71}, + {0x9735a234, 0xffffd85cffffde72}, + {0x9735a235, 0xffffd85cffffde73}, + {0x9735a236, 0xffffd85cffffde74}, + {0x9735a237, 0xffffd85cffffde75}, + {0x9735a238, 0xffffd85cffffde76}, + {0x9735a239, 0xffffd85cffffde77}, + {0x9735a330, 0xffffd85cffffde78}, + {0x9735a331, 0xffffd85cffffde79}, + {0x9735a332, 0xffffd85cffffde7a}, + {0x9735a333, 0xffffd85cffffde7b}, + {0x9735a334, 0xffffd85cffffde7c}, + {0x9735a335, 0xffffd85cffffde7d}, + {0x9735a336, 0xffffd85cffffde7e}, + {0x9735a337, 0xffffd85cffffde7f}, + {0x9735a338, 0xffffd85cffffde80}, + {0x9735a339, 0xffffd85cffffde81}, + {0x9735a430, 0xffffd85cffffde82}, + {0x9735a431, 0xffffd85cffffde83}, + {0x9735a432, 0xffffd85cffffde84}, + {0x9735a433, 0xffffd85cffffde85}, + {0x9735a434, 0xffffd85cffffde86}, + {0x9735a435, 0xffffd85cffffde87}, + {0x9735a436, 0xffffd85cffffde88}, + {0x9735a437, 0xffffd85cffffde89}, + {0x9735a438, 0xffffd85cffffde8a}, + {0x9735a439, 0xffffd85cffffde8b}, + {0x9735a530, 0xffffd85cffffde8c}, + {0x9735a531, 0xffffd85cffffde8d}, + {0x9735a532, 0xffffd85cffffde8e}, + {0x9735a533, 0xffffd85cffffde8f}, + {0x9735a534, 0xffffd85cffffde90}, + {0x9735a535, 0xffffd85cffffde91}, + {0x9735a536, 0xffffd85cffffde92}, + {0x9735a537, 0xffffd85cffffde93}, + {0x9735a538, 0xffffd85cffffde94}, + {0x9735a539, 0xffffd85cffffde95}, + {0x9735a630, 0xffffd85cffffde96}, + {0x9735a631, 0xffffd85cffffde97}, + {0x9735a632, 0xffffd85cffffde98}, + {0x9735a633, 0xffffd85cffffde99}, + {0x9735a634, 0xffffd85cffffde9a}, + {0x9735a635, 0xffffd85cffffde9b}, + {0x9735a636, 0xffffd85cffffde9c}, + {0x9735a637, 0xffffd85cffffde9d}, + {0x9735a638, 0xffffd85cffffde9e}, + {0x9735a639, 0xffffd85cffffde9f}, + {0x9735a730, 0xffffd85cffffdea0}, + {0x9735a731, 0xffffd85cffffdea1}, + {0x9735a732, 0xffffd85cffffdea2}, + {0x9735a733, 0xffffd85cffffdea3}, + {0x9735a734, 0xffffd85cffffdea4}, + {0x9735a735, 0xffffd85cffffdea5}, + {0x9735a736, 0xffffd85cffffdea6}, + {0x9735a737, 0xffffd85cffffdea7}, + {0x9735a738, 0xffffd85cffffdea8}, + {0x9735a739, 0xffffd85cffffdea9}, + {0x9735a830, 0xffffd85cffffdeaa}, + {0x9735a831, 0xffffd85cffffdeab}, + {0x9735a832, 0xffffd85cffffdeac}, + {0x9735a833, 0xffffd85cffffdead}, + {0x9735a834, 0xffffd85cffffdeae}, + {0x9735a835, 0xffffd85cffffdeaf}, + {0x9735a836, 0xffffd85cffffdeb0}, + {0x9735a837, 0xffffd85cffffdeb1}, + {0x9735a838, 0xffffd85cffffdeb2}, + {0x9735a839, 0xffffd85cffffdeb3}, + {0x9735a930, 0xffffd85cffffdeb4}, + {0x9735a931, 0xffffd85cffffdeb5}, + {0x9735a932, 0xffffd85cffffdeb6}, + {0x9735a933, 0xffffd85cffffdeb7}, + {0x9735a934, 0xffffd85cffffdeb8}, + {0x9735a935, 0xffffd85cffffdeb9}, + {0x9735a936, 0xffffd85cffffdeba}, + {0x9735a937, 0xffffd85cffffdebb}, + {0x9735a938, 0xffffd85cffffdebc}, + {0x9735a939, 0xffffd85cffffdebd}, + {0x9735aa30, 0xffffd85cffffdebe}, + {0x9735aa31, 0xffffd85cffffdebf}, + {0x9735aa32, 0xffffd85cffffdec0}, + {0x9735aa33, 0xffffd85cffffdec1}, + {0x9735aa34, 0xffffd85cffffdec2}, + {0x9735aa35, 0xffffd85cffffdec3}, + {0x9735aa36, 0xffffd85cffffdec4}, + {0x9735aa37, 0xffffd85cffffdec5}, + {0x9735aa38, 0xffffd85cffffdec6}, + {0x9735aa39, 0xffffd85cffffdec7}, + {0x9735ab30, 0xffffd85cffffdec8}, + {0x9735ab31, 0xffffd85cffffdec9}, + {0x9735ab32, 0xffffd85cffffdeca}, + {0x9735ab33, 0xffffd85cffffdecb}, + {0x9735ab34, 0xffffd85cffffdecc}, + {0x9735ab35, 0xffffd85cffffdecd}, + {0x9735ab36, 0xffffd85cffffdece}, + {0x9735ab37, 0xffffd85cffffdecf}, + {0x9735ab38, 0xffffd85cffffded0}, + {0x9735ab39, 0xffffd85cffffded1}, + {0x9735ac30, 0xffffd85cffffded2}, + {0x9735ac31, 0xffffd85cffffded3}, + {0x9735ac32, 0xffffd85cffffded4}, + {0x9735ac33, 0xffffd85cffffded5}, + {0x9735ac34, 0xffffd85cffffded6}, + {0x9735ac35, 0xffffd85cffffded7}, + {0x9735ac36, 0xffffd85cffffded8}, + {0x9735ac37, 0xffffd85cffffded9}, + {0x9735ac38, 0xffffd85cffffdeda}, + {0x9735ac39, 0xffffd85cffffdedb}, + {0x9735ad30, 0xffffd85cffffdedc}, + {0x9735ad31, 0xffffd85cffffdedd}, + {0x9735ad32, 0xffffd85cffffdede}, + {0x9735ad33, 0xffffd85cffffdedf}, + {0x9735ad34, 0xffffd85cffffdee0}, + {0x9735ad35, 0xffffd85cffffdee1}, + {0x9735ad36, 0xffffd85cffffdee2}, + {0x9735ad37, 0xffffd85cffffdee3}, + {0x9735ad38, 0xffffd85cffffdee4}, + {0x9735ad39, 0xffffd85cffffdee5}, + {0x9735ae30, 0xffffd85cffffdee6}, + {0x9735ae31, 0xffffd85cffffdee7}, + {0x9735ae32, 0xffffd85cffffdee8}, + {0x9735ae33, 0xffffd85cffffdee9}, + {0x9735ae34, 0xffffd85cffffdeea}, + {0x9735ae35, 0xffffd85cffffdeeb}, + {0x9735ae36, 0xffffd85cffffdeec}, + {0x9735ae37, 0xffffd85cffffdeed}, + {0x9735ae38, 0xffffd85cffffdeee}, + {0x9735ae39, 0xffffd85cffffdeef}, + {0x9735af30, 0xffffd85cffffdef0}, + {0x9735af31, 0xffffd85cffffdef1}, + {0x9735af32, 0xffffd85cffffdef2}, + {0x9735af33, 0xffffd85cffffdef3}, + {0x9735af34, 0xffffd85cffffdef4}, + {0x9735af35, 0xffffd85cffffdef5}, + {0x9735af36, 0xffffd85cffffdef6}, + {0x9735af37, 0xffffd85cffffdef7}, + {0x9735af38, 0xffffd85cffffdef8}, + {0x9735af39, 0xffffd85cffffdef9}, + {0x9735b030, 0xffffd85cffffdefa}, + {0x9735b031, 0xffffd85cffffdefb}, + {0x9735b032, 0xffffd85cffffdefc}, + {0x9735b033, 0xffffd85cffffdefd}, + {0x9735b034, 0xffffd85cffffdefe}, + {0x9735b035, 0xffffd85cffffdeff}, + {0x9735b036, 0xffffd85cffffdf00}, + {0x9735b037, 0xffffd85cffffdf01}, + {0x9735b038, 0xffffd85cffffdf02}, + {0x9735b039, 0xffffd85cffffdf03}, + {0x9735b130, 0xffffd85cffffdf04}, + {0x9735b131, 0xffffd85cffffdf05}, + {0x9735b132, 0xffffd85cffffdf06}, + {0x9735b133, 0xffffd85cffffdf07}, + {0x9735b134, 0xffffd85cffffdf08}, + {0x9735b135, 0xffffd85cffffdf09}, + {0x9735b136, 0xffffd85cffffdf0a}, + {0x9735b137, 0xffffd85cffffdf0b}, + {0x9735b138, 0xffffd85cffffdf0c}, + {0x9735b139, 0xffffd85cffffdf0d}, + {0x9735b230, 0xffffd85cffffdf0e}, + {0x9735b231, 0xffffd85cffffdf0f}, + {0x9735b232, 0xffffd85cffffdf10}, + {0x9735b233, 0xffffd85cffffdf11}, + {0x9735b234, 0xffffd85cffffdf12}, + {0x9735b235, 0xffffd85cffffdf13}, + {0x9735b236, 0xffffd85cffffdf14}, + {0x9735b237, 0xffffd85cffffdf15}, + {0x9735b238, 0xffffd85cffffdf16}, + {0x9735b239, 0xffffd85cffffdf17}, + {0x9735b330, 0xffffd85cffffdf18}, + {0x9735b331, 0xffffd85cffffdf19}, + {0x9735b332, 0xffffd85cffffdf1a}, + {0x9735b333, 0xffffd85cffffdf1b}, + {0x9735b334, 0xffffd85cffffdf1c}, + {0x9735b335, 0xffffd85cffffdf1d}, + {0x9735b336, 0xffffd85cffffdf1e}, + {0x9735b337, 0xffffd85cffffdf1f}, + {0x9735b338, 0xffffd85cffffdf20}, + {0x9735b339, 0xffffd85cffffdf21}, + {0x9735b430, 0xffffd85cffffdf22}, + {0x9735b431, 0xffffd85cffffdf23}, + {0x9735b432, 0xffffd85cffffdf24}, + {0x9735b433, 0xffffd85cffffdf25}, + {0x9735b434, 0xffffd85cffffdf26}, + {0x9735b435, 0xffffd85cffffdf27}, + {0x9735b436, 0xffffd85cffffdf28}, + {0x9735b437, 0xffffd85cffffdf29}, + {0x9735b438, 0xffffd85cffffdf2a}, + {0x9735b439, 0xffffd85cffffdf2b}, + {0x9735b530, 0xffffd85cffffdf2c}, + {0x9735b531, 0xffffd85cffffdf2d}, + {0x9735b532, 0xffffd85cffffdf2e}, + {0x9735b533, 0xffffd85cffffdf2f}, + {0x9735b534, 0xffffd85cffffdf30}, + {0x9735b535, 0xffffd85cffffdf31}, + {0x9735b536, 0xffffd85cffffdf32}, + {0x9735b537, 0xffffd85cffffdf33}, + {0x9735b538, 0xffffd85cffffdf34}, + {0x9735b539, 0xffffd85cffffdf35}, + {0x9735b630, 0xffffd85cffffdf36}, + {0x9735b631, 0xffffd85cffffdf37}, + {0x9735b632, 0xffffd85cffffdf38}, + {0x9735b633, 0xffffd85cffffdf39}, + {0x9735b634, 0xffffd85cffffdf3a}, + {0x9735b635, 0xffffd85cffffdf3b}, + {0x9735b636, 0xffffd85cffffdf3c}, + {0x9735b637, 0xffffd85cffffdf3d}, + {0x9735b638, 0xffffd85cffffdf3e}, + {0x9735b639, 0xffffd85cffffdf3f}, + {0x9735b730, 0xffffd85cffffdf40}, + {0x9735b731, 0xffffd85cffffdf41}, + {0x9735b732, 0xffffd85cffffdf42}, + {0x9735b733, 0xffffd85cffffdf43}, + {0x9735b734, 0xffffd85cffffdf44}, + {0x9735b735, 0xffffd85cffffdf45}, + {0x9735b736, 0xffffd85cffffdf46}, + {0x9735b737, 0xffffd85cffffdf47}, + {0x9735b738, 0xffffd85cffffdf48}, + {0x9735b739, 0xffffd85cffffdf49}, + {0x9735b830, 0xffffd85cffffdf4a}, + {0x9735b831, 0xffffd85cffffdf4b}, + {0x9735b832, 0xffffd85cffffdf4c}, + {0x9735b833, 0xffffd85cffffdf4d}, + {0x9735b834, 0xffffd85cffffdf4e}, + {0x9735b835, 0xffffd85cffffdf4f}, + {0x9735b836, 0xffffd85cffffdf50}, + {0x9735b837, 0xffffd85cffffdf51}, + {0x9735b838, 0xffffd85cffffdf52}, + {0x9735b839, 0xffffd85cffffdf53}, + {0x9735b930, 0xffffd85cffffdf54}, + {0x9735b931, 0xffffd85cffffdf55}, + {0x9735b932, 0xffffd85cffffdf56}, + {0x9735b933, 0xffffd85cffffdf57}, + {0x9735b934, 0xffffd85cffffdf58}, + {0x9735b935, 0xffffd85cffffdf59}, + {0x9735b936, 0xffffd85cffffdf5a}, + {0x9735b937, 0xffffd85cffffdf5b}, + {0x9735b938, 0xffffd85cffffdf5c}, + {0x9735b939, 0xffffd85cffffdf5d}, + {0x9735ba30, 0xffffd85cffffdf5e}, + {0x9735ba31, 0xffffd85cffffdf5f}, + {0x9735ba32, 0xffffd85cffffdf60}, + {0x9735ba33, 0xffffd85cffffdf61}, + {0x9735ba34, 0xffffd85cffffdf62}, + {0x9735ba35, 0xffffd85cffffdf63}, + {0x9735ba36, 0xffffd85cffffdf64}, + {0x9735ba37, 0xffffd85cffffdf65}, + {0x9735ba38, 0xffffd85cffffdf66}, + {0x9735ba39, 0xffffd85cffffdf67}, + {0x9735bb30, 0xffffd85cffffdf68}, + {0x9735bb31, 0xffffd85cffffdf69}, + {0x9735bb32, 0xffffd85cffffdf6a}, + {0x9735bb33, 0xffffd85cffffdf6b}, + {0x9735bb34, 0xffffd85cffffdf6c}, + {0x9735bb35, 0xffffd85cffffdf6d}, + {0x9735bb36, 0xffffd85cffffdf6e}, + {0x9735bb37, 0xffffd85cffffdf6f}, + {0x9735bb38, 0xffffd85cffffdf70}, + {0x9735bb39, 0xffffd85cffffdf71}, + {0x9735bc30, 0xffffd85cffffdf72}, + {0x9735bc31, 0xffffd85cffffdf73}, + {0x9735bc32, 0xffffd85cffffdf74}, + {0x9735bc33, 0xffffd85cffffdf75}, + {0x9735bc34, 0xffffd85cffffdf76}, + {0x9735bc35, 0xffffd85cffffdf77}, + {0x9735bc36, 0xffffd85cffffdf78}, + {0x9735bc37, 0xffffd85cffffdf79}, + {0x9735bc38, 0xffffd85cffffdf7a}, + {0x9735bc39, 0xffffd85cffffdf7b}, + {0x9735bd30, 0xffffd85cffffdf7c}, + {0x9735bd31, 0xffffd85cffffdf7d}, + {0x9735bd32, 0xffffd85cffffdf7e}, + {0x9735bd33, 0xffffd85cffffdf7f}, + {0x9735bd34, 0xffffd85cffffdf80}, + {0x9735bd35, 0xffffd85cffffdf81}, + {0x9735bd36, 0xffffd85cffffdf82}, + {0x9735bd37, 0xffffd85cffffdf83}, + {0x9735bd38, 0xffffd85cffffdf84}, + {0x9735bd39, 0xffffd85cffffdf85}, + {0x9735be30, 0xffffd85cffffdf86}, + {0x9735be31, 0xffffd85cffffdf87}, + {0x9735be32, 0xffffd85cffffdf88}, + {0x9735be33, 0xffffd85cffffdf89}, + {0x9735be34, 0xffffd85cffffdf8a}, + {0x9735be35, 0xffffd85cffffdf8b}, + {0x9735be36, 0xffffd85cffffdf8c}, + {0x9735be37, 0xffffd85cffffdf8d}, + {0x9735be38, 0xffffd85cffffdf8e}, + {0x9735be39, 0xffffd85cffffdf8f}, + {0x9735bf30, 0xffffd85cffffdf90}, + {0x9735bf31, 0xffffd85cffffdf91}, + {0x9735bf32, 0xffffd85cffffdf92}, + {0x9735bf33, 0xffffd85cffffdf93}, + {0x9735bf34, 0xffffd85cffffdf94}, + {0x9735bf35, 0xffffd85cffffdf95}, + {0x9735bf36, 0xffffd85cffffdf96}, + {0x9735bf37, 0xffffd85cffffdf97}, + {0x9735bf38, 0xffffd85cffffdf98}, + {0x9735bf39, 0xffffd85cffffdf99}, + {0x9735c030, 0xffffd85cffffdf9a}, + {0x9735c031, 0xffffd85cffffdf9b}, + {0x9735c032, 0xffffd85cffffdf9c}, + {0x9735c033, 0xffffd85cffffdf9d}, + {0x9735c034, 0xffffd85cffffdf9e}, + {0x9735c035, 0xffffd85cffffdf9f}, + {0x9735c036, 0xffffd85cffffdfa0}, + {0x9735c037, 0xffffd85cffffdfa1}, + {0x9735c038, 0xffffd85cffffdfa2}, + {0x9735c039, 0xffffd85cffffdfa3}, + {0x9735c130, 0xffffd85cffffdfa4}, + {0x9735c131, 0xffffd85cffffdfa5}, + {0x9735c132, 0xffffd85cffffdfa6}, + {0x9735c133, 0xffffd85cffffdfa7}, + {0x9735c134, 0xffffd85cffffdfa8}, + {0x9735c135, 0xffffd85cffffdfa9}, + {0x9735c136, 0xffffd85cffffdfaa}, + {0x9735c137, 0xffffd85cffffdfab}, + {0x9735c138, 0xffffd85cffffdfac}, + {0x9735c139, 0xffffd85cffffdfad}, + {0x9735c230, 0xffffd85cffffdfae}, + {0x9735c231, 0xffffd85cffffdfaf}, + {0x9735c232, 0xffffd85cffffdfb0}, + {0x9735c233, 0xffffd85cffffdfb1}, + {0x9735c234, 0xffffd85cffffdfb2}, + {0x9735c235, 0xffffd85cffffdfb3}, + {0x9735c236, 0xffffd85cffffdfb4}, + {0x9735c237, 0xffffd85cffffdfb5}, + {0x9735c238, 0xffffd85cffffdfb6}, + {0x9735c239, 0xffffd85cffffdfb7}, + {0x9735c330, 0xffffd85cffffdfb8}, + {0x9735c331, 0xffffd85cffffdfb9}, + {0x9735c332, 0xffffd85cffffdfba}, + {0x9735c333, 0xffffd85cffffdfbb}, + {0x9735c334, 0xffffd85cffffdfbc}, + {0x9735c335, 0xffffd85cffffdfbd}, + {0x9735c336, 0xffffd85cffffdfbe}, + {0x9735c337, 0xffffd85cffffdfbf}, + {0x9735c338, 0xffffd85cffffdfc0}, + {0x9735c339, 0xffffd85cffffdfc1}, + {0x9735c430, 0xffffd85cffffdfc2}, + {0x9735c431, 0xffffd85cffffdfc3}, + {0x9735c432, 0xffffd85cffffdfc4}, + {0x9735c433, 0xffffd85cffffdfc5}, + {0x9735c434, 0xffffd85cffffdfc6}, + {0x9735c435, 0xffffd85cffffdfc7}, + {0x9735c436, 0xffffd85cffffdfc8}, + {0x9735c437, 0xffffd85cffffdfc9}, + {0x9735c438, 0xffffd85cffffdfca}, + {0x9735c439, 0xffffd85cffffdfcb}, + {0x9735c530, 0xffffd85cffffdfcc}, + {0x9735c531, 0xffffd85cffffdfcd}, + {0x9735c532, 0xffffd85cffffdfce}, + {0x9735c533, 0xffffd85cffffdfcf}, + {0x9735c534, 0xffffd85cffffdfd0}, + {0x9735c535, 0xffffd85cffffdfd1}, + {0x9735c536, 0xffffd85cffffdfd2}, + {0x9735c537, 0xffffd85cffffdfd3}, + {0x9735c538, 0xffffd85cffffdfd4}, + {0x9735c539, 0xffffd85cffffdfd5}, + {0x9735c630, 0xffffd85cffffdfd6}, + {0x9735c631, 0xffffd85cffffdfd7}, + {0x9735c632, 0xffffd85cffffdfd8}, + {0x9735c633, 0xffffd85cffffdfd9}, + {0x9735c634, 0xffffd85cffffdfda}, + {0x9735c635, 0xffffd85cffffdfdb}, + {0x9735c636, 0xffffd85cffffdfdc}, + {0x9735c637, 0xffffd85cffffdfdd}, + {0x9735c638, 0xffffd85cffffdfde}, + {0x9735c639, 0xffffd85cffffdfdf}, + {0x9735c730, 0xffffd85cffffdfe0}, + {0x9735c731, 0xffffd85cffffdfe1}, + {0x9735c732, 0xffffd85cffffdfe2}, + {0x9735c733, 0xffffd85cffffdfe3}, + {0x9735c734, 0xffffd85cffffdfe4}, + {0x9735c735, 0xffffd85cffffdfe5}, + {0x9735c736, 0xffffd85cffffdfe6}, + {0x9735c737, 0xffffd85cffffdfe7}, + {0x9735c738, 0xffffd85cffffdfe8}, + {0x9735c739, 0xffffd85cffffdfe9}, + {0x9735c830, 0xffffd85cffffdfea}, + {0x9735c831, 0xffffd85cffffdfeb}, + {0x9735c832, 0xffffd85cffffdfec}, + {0x9735c833, 0xffffd85cffffdfed}, + {0x9735c834, 0xffffd85cffffdfee}, + {0x9735c835, 0xffffd85cffffdfef}, + {0x9735c836, 0xffffd85cffffdff0}, + {0x9735c837, 0xffffd85cffffdff1}, + {0x9735c838, 0xffffd85cffffdff2}, + {0x9735c839, 0xffffd85cffffdff3}, + {0x9735c930, 0xffffd85cffffdff4}, + {0x9735c931, 0xffffd85cffffdff5}, + {0x9735c932, 0xffffd85cffffdff6}, + {0x9735c933, 0xffffd85cffffdff7}, + {0x9735c934, 0xffffd85cffffdff8}, + {0x9735c935, 0xffffd85cffffdff9}, + {0x9735c936, 0xffffd85cffffdffa}, + {0x9735c937, 0xffffd85cffffdffb}, + {0x9735c938, 0xffffd85cffffdffc}, + {0x9735c939, 0xffffd85cffffdffd}, + {0x9735ca30, 0xffffd85cffffdffe}, + {0x9735ca31, 0xffffd85cffffdfff}, + {0x9735ca32, 0xffffd85dffffdc00}, + {0x9735ca33, 0xffffd85dffffdc01}, + {0x9735ca34, 0xffffd85dffffdc02}, + {0x9735ca35, 0xffffd85dffffdc03}, + {0x9735ca36, 0xffffd85dffffdc04}, + {0x9735ca37, 0xffffd85dffffdc05}, + {0x9735ca38, 0xffffd85dffffdc06}, + {0x9735ca39, 0xffffd85dffffdc07}, + {0x9735cb30, 0xffffd85dffffdc08}, + {0x9735cb31, 0xffffd85dffffdc09}, + {0x9735cb32, 0xffffd85dffffdc0a}, + {0x9735cb33, 0xffffd85dffffdc0b}, + {0x9735cb34, 0xffffd85dffffdc0c}, + {0x9735cb35, 0xffffd85dffffdc0d}, + {0x9735cb36, 0xffffd85dffffdc0e}, + {0x9735cb37, 0xffffd85dffffdc0f}, + {0x9735cb38, 0xffffd85dffffdc10}, + {0x9735cb39, 0xffffd85dffffdc11}, + {0x9735cc30, 0xffffd85dffffdc12}, + {0x9735cc31, 0xffffd85dffffdc13}, + {0x9735cc32, 0xffffd85dffffdc14}, + {0x9735cc33, 0xffffd85dffffdc15}, + {0x9735cc34, 0xffffd85dffffdc16}, + {0x9735cc35, 0xffffd85dffffdc17}, + {0x9735cc36, 0xffffd85dffffdc18}, + {0x9735cc37, 0xffffd85dffffdc19}, + {0x9735cc38, 0xffffd85dffffdc1a}, + {0x9735cc39, 0xffffd85dffffdc1b}, + {0x9735cd30, 0xffffd85dffffdc1c}, + {0x9735cd31, 0xffffd85dffffdc1d}, + {0x9735cd32, 0xffffd85dffffdc1e}, + {0x9735cd33, 0xffffd85dffffdc1f}, + {0x9735cd34, 0xffffd85dffffdc20}, + {0x9735cd35, 0xffffd85dffffdc21}, + {0x9735cd36, 0xffffd85dffffdc22}, + {0x9735cd37, 0xffffd85dffffdc23}, + {0x9735cd38, 0xffffd85dffffdc24}, + {0x9735cd39, 0xffffd85dffffdc25}, + {0x9735ce30, 0xffffd85dffffdc26}, + {0x9735ce31, 0xffffd85dffffdc27}, + {0x9735ce32, 0xffffd85dffffdc28}, + {0x9735ce33, 0xffffd85dffffdc29}, + {0x9735ce34, 0xffffd85dffffdc2a}, + {0x9735ce35, 0xffffd85dffffdc2b}, + {0x9735ce36, 0xffffd85dffffdc2c}, + {0x9735ce37, 0xffffd85dffffdc2d}, + {0x9735ce38, 0xffffd85dffffdc2e}, + {0x9735ce39, 0xffffd85dffffdc2f}, + {0x9735cf30, 0xffffd85dffffdc30}, + {0x9735cf31, 0xffffd85dffffdc31}, + {0x9735cf32, 0xffffd85dffffdc32}, + {0x9735cf33, 0xffffd85dffffdc33}, + {0x9735cf34, 0xffffd85dffffdc34}, + {0x9735cf35, 0xffffd85dffffdc35}, + {0x9735cf36, 0xffffd85dffffdc36}, + {0x9735cf37, 0xffffd85dffffdc37}, + {0x9735cf38, 0xffffd85dffffdc38}, + {0x9735cf39, 0xffffd85dffffdc39}, + {0x9735d030, 0xffffd85dffffdc3a}, + {0x9735d031, 0xffffd85dffffdc3b}, + {0x9735d032, 0xffffd85dffffdc3c}, + {0x9735d033, 0xffffd85dffffdc3d}, + {0x9735d034, 0xffffd85dffffdc3e}, + {0x9735d035, 0xffffd85dffffdc3f}, + {0x9735d036, 0xffffd85dffffdc40}, + {0x9735d037, 0xffffd85dffffdc41}, + {0x9735d038, 0xffffd85dffffdc42}, + {0x9735d039, 0xffffd85dffffdc43}, + {0x9735d130, 0xffffd85dffffdc44}, + {0x9735d131, 0xffffd85dffffdc45}, + {0x9735d132, 0xffffd85dffffdc46}, + {0x9735d133, 0xffffd85dffffdc47}, + {0x9735d134, 0xffffd85dffffdc48}, + {0x9735d135, 0xffffd85dffffdc49}, + {0x9735d136, 0xffffd85dffffdc4a}, + {0x9735d137, 0xffffd85dffffdc4b}, + {0x9735d138, 0xffffd85dffffdc4c}, + {0x9735d139, 0xffffd85dffffdc4d}, + {0x9735d230, 0xffffd85dffffdc4e}, + {0x9735d231, 0xffffd85dffffdc4f}, + {0x9735d232, 0xffffd85dffffdc50}, + {0x9735d233, 0xffffd85dffffdc51}, + {0x9735d234, 0xffffd85dffffdc52}, + {0x9735d235, 0xffffd85dffffdc53}, + {0x9735d236, 0xffffd85dffffdc54}, + {0x9735d237, 0xffffd85dffffdc55}, + {0x9735d238, 0xffffd85dffffdc56}, + {0x9735d239, 0xffffd85dffffdc57}, + {0x9735d330, 0xffffd85dffffdc58}, + {0x9735d331, 0xffffd85dffffdc59}, + {0x9735d332, 0xffffd85dffffdc5a}, + {0x9735d333, 0xffffd85dffffdc5b}, + {0x9735d334, 0xffffd85dffffdc5c}, + {0x9735d335, 0xffffd85dffffdc5d}, + {0x9735d336, 0xffffd85dffffdc5e}, + {0x9735d337, 0xffffd85dffffdc5f}, + {0x9735d338, 0xffffd85dffffdc60}, + {0x9735d339, 0xffffd85dffffdc61}, + {0x9735d430, 0xffffd85dffffdc62}, + {0x9735d431, 0xffffd85dffffdc63}, + {0x9735d432, 0xffffd85dffffdc64}, + {0x9735d433, 0xffffd85dffffdc65}, + {0x9735d434, 0xffffd85dffffdc66}, + {0x9735d435, 0xffffd85dffffdc67}, + {0x9735d436, 0xffffd85dffffdc68}, + {0x9735d437, 0xffffd85dffffdc69}, + {0x9735d438, 0xffffd85dffffdc6a}, + {0x9735d439, 0xffffd85dffffdc6b}, + {0x9735d530, 0xffffd85dffffdc6c}, + {0x9735d531, 0xffffd85dffffdc6d}, + {0x9735d532, 0xffffd85dffffdc6e}, + {0x9735d533, 0xffffd85dffffdc6f}, + {0x9735d534, 0xffffd85dffffdc70}, + {0x9735d535, 0xffffd85dffffdc71}, + {0x9735d536, 0xffffd85dffffdc72}, + {0x9735d537, 0xffffd85dffffdc73}, + {0x9735d538, 0xffffd85dffffdc74}, + {0x9735d539, 0xffffd85dffffdc75}, + {0x9735d630, 0xffffd85dffffdc76}, + {0x9735d631, 0xffffd85dffffdc77}, + {0x9735d632, 0xffffd85dffffdc78}, + {0x9735d633, 0xffffd85dffffdc79}, + {0x9735d634, 0xffffd85dffffdc7a}, + {0x9735d635, 0xffffd85dffffdc7b}, + {0x9735d636, 0xffffd85dffffdc7c}, + {0x9735d637, 0xffffd85dffffdc7d}, + {0x9735d638, 0xffffd85dffffdc7e}, + {0x9735d639, 0xffffd85dffffdc7f}, + {0x9735d730, 0xffffd85dffffdc80}, + {0x9735d731, 0xffffd85dffffdc81}, + {0x9735d732, 0xffffd85dffffdc82}, + {0x9735d733, 0xffffd85dffffdc83}, + {0x9735d734, 0xffffd85dffffdc84}, + {0x9735d735, 0xffffd85dffffdc85}, + {0x9735d736, 0xffffd85dffffdc86}, + {0x9735d737, 0xffffd85dffffdc87}, + {0x9735d738, 0xffffd85dffffdc88}, + {0x9735d739, 0xffffd85dffffdc89}, + {0x9735d830, 0xffffd85dffffdc8a}, + {0x9735d831, 0xffffd85dffffdc8b}, + {0x9735d832, 0xffffd85dffffdc8c}, + {0x9735d833, 0xffffd85dffffdc8d}, + {0x9735d834, 0xffffd85dffffdc8e}, + {0x9735d835, 0xffffd85dffffdc8f}, + {0x9735d836, 0xffffd85dffffdc90}, + {0x9735d837, 0xffffd85dffffdc91}, + {0x9735d838, 0xffffd85dffffdc92}, + {0x9735d839, 0xffffd85dffffdc93}, + {0x9735d930, 0xffffd85dffffdc94}, + {0x9735d931, 0xffffd85dffffdc95}, + {0x9735d932, 0xffffd85dffffdc96}, + {0x9735d933, 0xffffd85dffffdc97}, + {0x9735d934, 0xffffd85dffffdc98}, + {0x9735d935, 0xffffd85dffffdc99}, + {0x9735d936, 0xffffd85dffffdc9a}, + {0x9735d937, 0xffffd85dffffdc9b}, + {0x9735d938, 0xffffd85dffffdc9c}, + {0x9735d939, 0xffffd85dffffdc9d}, + {0x9735da30, 0xffffd85dffffdc9e}, + {0x9735da31, 0xffffd85dffffdc9f}, + {0x9735da32, 0xffffd85dffffdca0}, + {0x9735da33, 0xffffd85dffffdca1}, + {0x9735da34, 0xffffd85dffffdca2}, + {0x9735da35, 0xffffd85dffffdca3}, + {0x9735da36, 0xffffd85dffffdca4}, + {0x9735da37, 0xffffd85dffffdca5}, + {0x9735da38, 0xffffd85dffffdca6}, + {0x9735da39, 0xffffd85dffffdca7}, + {0x9735db30, 0xffffd85dffffdca8}, + {0x9735db31, 0xffffd85dffffdca9}, + {0x9735db32, 0xffffd85dffffdcaa}, + {0x9735db33, 0xffffd85dffffdcab}, + {0x9735db34, 0xffffd85dffffdcac}, + {0x9735db35, 0xffffd85dffffdcad}, + {0x9735db36, 0xffffd85dffffdcae}, + {0x9735db37, 0xffffd85dffffdcaf}, + {0x9735db38, 0xffffd85dffffdcb0}, + {0x9735db39, 0xffffd85dffffdcb1}, + {0x9735dc30, 0xffffd85dffffdcb2}, + {0x9735dc31, 0xffffd85dffffdcb3}, + {0x9735dc32, 0xffffd85dffffdcb4}, + {0x9735dc33, 0xffffd85dffffdcb5}, + {0x9735dc34, 0xffffd85dffffdcb6}, + {0x9735dc35, 0xffffd85dffffdcb7}, + {0x9735dc36, 0xffffd85dffffdcb8}, + {0x9735dc37, 0xffffd85dffffdcb9}, + {0x9735dc38, 0xffffd85dffffdcba}, + {0x9735dc39, 0xffffd85dffffdcbb}, + {0x9735dd30, 0xffffd85dffffdcbc}, + {0x9735dd31, 0xffffd85dffffdcbd}, + {0x9735dd32, 0xffffd85dffffdcbe}, + {0x9735dd33, 0xffffd85dffffdcbf}, + {0x9735dd34, 0xffffd85dffffdcc0}, + {0x9735dd35, 0xffffd85dffffdcc1}, + {0x9735dd36, 0xffffd85dffffdcc2}, + {0x9735dd37, 0xffffd85dffffdcc3}, + {0x9735dd38, 0xffffd85dffffdcc4}, + {0x9735dd39, 0xffffd85dffffdcc5}, + {0x9735de30, 0xffffd85dffffdcc6}, + {0x9735de31, 0xffffd85dffffdcc7}, + {0x9735de32, 0xffffd85dffffdcc8}, + {0x9735de33, 0xffffd85dffffdcc9}, + {0x9735de34, 0xffffd85dffffdcca}, + {0x9735de35, 0xffffd85dffffdccb}, + {0x9735de36, 0xffffd85dffffdccc}, + {0x9735de37, 0xffffd85dffffdccd}, + {0x9735de38, 0xffffd85dffffdcce}, + {0x9735de39, 0xffffd85dffffdccf}, + {0x9735df30, 0xffffd85dffffdcd0}, + {0x9735df31, 0xffffd85dffffdcd1}, + {0x9735df32, 0xffffd85dffffdcd2}, + {0x9735df33, 0xffffd85dffffdcd3}, + {0x9735df34, 0xffffd85dffffdcd4}, + {0x9735df35, 0xffffd85dffffdcd5}, + {0x9735df36, 0xffffd85dffffdcd6}, + {0x9735df37, 0xffffd85dffffdcd7}, + {0x9735df38, 0xffffd85dffffdcd8}, + {0x9735df39, 0xffffd85dffffdcd9}, + {0x9735e030, 0xffffd85dffffdcda}, + {0x9735e031, 0xffffd85dffffdcdb}, + {0x9735e032, 0xffffd85dffffdcdc}, + {0x9735e033, 0xffffd85dffffdcdd}, + {0x9735e034, 0xffffd85dffffdcde}, + {0x9735e035, 0xffffd85dffffdcdf}, + {0x9735e036, 0xffffd85dffffdce0}, + {0x9735e037, 0xffffd85dffffdce1}, + {0x9735e038, 0xffffd85dffffdce2}, + {0x9735e039, 0xffffd85dffffdce3}, + {0x9735e130, 0xffffd85dffffdce4}, + {0x9735e131, 0xffffd85dffffdce5}, + {0x9735e132, 0xffffd85dffffdce6}, + {0x9735e133, 0xffffd85dffffdce7}, + {0x9735e134, 0xffffd85dffffdce8}, + {0x9735e135, 0xffffd85dffffdce9}, + {0x9735e136, 0xffffd85dffffdcea}, + {0x9735e137, 0xffffd85dffffdceb}, + {0x9735e138, 0xffffd85dffffdcec}, + {0x9735e139, 0xffffd85dffffdced}, + {0x9735e230, 0xffffd85dffffdcee}, + {0x9735e231, 0xffffd85dffffdcef}, + {0x9735e232, 0xffffd85dffffdcf0}, + {0x9735e233, 0xffffd85dffffdcf1}, + {0x9735e234, 0xffffd85dffffdcf2}, + {0x9735e235, 0xffffd85dffffdcf3}, + {0x9735e236, 0xffffd85dffffdcf4}, + {0x9735e237, 0xffffd85dffffdcf5}, + {0x9735e238, 0xffffd85dffffdcf6}, + {0x9735e239, 0xffffd85dffffdcf7}, + {0x9735e330, 0xffffd85dffffdcf8}, + {0x9735e331, 0xffffd85dffffdcf9}, + {0x9735e332, 0xffffd85dffffdcfa}, + {0x9735e333, 0xffffd85dffffdcfb}, + {0x9735e334, 0xffffd85dffffdcfc}, + {0x9735e335, 0xffffd85dffffdcfd}, + {0x9735e336, 0xffffd85dffffdcfe}, + {0x9735e337, 0xffffd85dffffdcff}, + {0x9735e338, 0xffffd85dffffdd00}, + {0x9735e339, 0xffffd85dffffdd01}, + {0x9735e430, 0xffffd85dffffdd02}, + {0x9735e431, 0xffffd85dffffdd03}, + {0x9735e432, 0xffffd85dffffdd04}, + {0x9735e433, 0xffffd85dffffdd05}, + {0x9735e434, 0xffffd85dffffdd06}, + {0x9735e435, 0xffffd85dffffdd07}, + {0x9735e436, 0xffffd85dffffdd08}, + {0x9735e437, 0xffffd85dffffdd09}, + {0x9735e438, 0xffffd85dffffdd0a}, + {0x9735e439, 0xffffd85dffffdd0b}, + {0x9735e530, 0xffffd85dffffdd0c}, + {0x9735e531, 0xffffd85dffffdd0d}, + {0x9735e532, 0xffffd85dffffdd0e}, + {0x9735e533, 0xffffd85dffffdd0f}, + {0x9735e534, 0xffffd85dffffdd10}, + {0x9735e535, 0xffffd85dffffdd11}, + {0x9735e536, 0xffffd85dffffdd12}, + {0x9735e537, 0xffffd85dffffdd13}, + {0x9735e538, 0xffffd85dffffdd14}, + {0x9735e539, 0xffffd85dffffdd15}, + {0x9735e630, 0xffffd85dffffdd16}, + {0x9735e631, 0xffffd85dffffdd17}, + {0x9735e632, 0xffffd85dffffdd18}, + {0x9735e633, 0xffffd85dffffdd19}, + {0x9735e634, 0xffffd85dffffdd1a}, + {0x9735e635, 0xffffd85dffffdd1b}, + {0x9735e636, 0xffffd85dffffdd1c}, + {0x9735e637, 0xffffd85dffffdd1d}, + {0x9735e638, 0xffffd85dffffdd1e}, + {0x9735e639, 0xffffd85dffffdd1f}, + {0x9735e730, 0xffffd85dffffdd20}, + {0x9735e731, 0xffffd85dffffdd21}, + {0x9735e732, 0xffffd85dffffdd22}, + {0x9735e733, 0xffffd85dffffdd23}, + {0x9735e734, 0xffffd85dffffdd24}, + {0x9735e735, 0xffffd85dffffdd25}, + {0x9735e736, 0xffffd85dffffdd26}, + {0x9735e737, 0xffffd85dffffdd27}, + {0x9735e738, 0xffffd85dffffdd28}, + {0x9735e739, 0xffffd85dffffdd29}, + {0x9735e830, 0xffffd85dffffdd2a}, + {0x9735e831, 0xffffd85dffffdd2b}, + {0x9735e832, 0xffffd85dffffdd2c}, + {0x9735e833, 0xffffd85dffffdd2d}, + {0x9735e834, 0xffffd85dffffdd2e}, + {0x9735e835, 0xffffd85dffffdd2f}, + {0x9735e836, 0xffffd85dffffdd30}, + {0x9735e837, 0xffffd85dffffdd31}, + {0x9735e838, 0xffffd85dffffdd32}, + {0x9735e839, 0xffffd85dffffdd33}, + {0x9735e930, 0xffffd85dffffdd34}, + {0x9735e931, 0xffffd85dffffdd35}, + {0x9735e932, 0xffffd85dffffdd36}, + {0x9735e933, 0xffffd85dffffdd37}, + {0x9735e934, 0xffffd85dffffdd38}, + {0x9735e935, 0xffffd85dffffdd39}, + {0x9735e936, 0xffffd85dffffdd3a}, + {0x9735e937, 0xffffd85dffffdd3b}, + {0x9735e938, 0xffffd85dffffdd3c}, + {0x9735e939, 0xffffd85dffffdd3d}, + {0x9735ea30, 0xffffd85dffffdd3e}, + {0x9735ea31, 0xffffd85dffffdd3f}, + {0x9735ea32, 0xffffd85dffffdd40}, + {0x9735ea33, 0xffffd85dffffdd41}, + {0x9735ea34, 0xffffd85dffffdd42}, + {0x9735ea35, 0xffffd85dffffdd43}, + {0x9735ea36, 0xffffd85dffffdd44}, + {0x9735ea37, 0xffffd85dffffdd45}, + {0x9735ea38, 0xffffd85dffffdd46}, + {0x9735ea39, 0xffffd85dffffdd47}, + {0x9735eb30, 0xffffd85dffffdd48}, + {0x9735eb31, 0xffffd85dffffdd49}, + {0x9735eb32, 0xffffd85dffffdd4a}, + {0x9735eb33, 0xffffd85dffffdd4b}, + {0x9735eb34, 0xffffd85dffffdd4c}, + {0x9735eb35, 0xffffd85dffffdd4d}, + {0x9735eb36, 0xffffd85dffffdd4e}, + {0x9735eb37, 0xffffd85dffffdd4f}, + {0x9735eb38, 0xffffd85dffffdd50}, + {0x9735eb39, 0xffffd85dffffdd51}, + {0x9735ec30, 0xffffd85dffffdd52}, + {0x9735ec31, 0xffffd85dffffdd53}, + {0x9735ec32, 0xffffd85dffffdd54}, + {0x9735ec33, 0xffffd85dffffdd55}, + {0x9735ec34, 0xffffd85dffffdd56}, + {0x9735ec35, 0xffffd85dffffdd57}, + {0x9735ec36, 0xffffd85dffffdd58}, + {0x9735ec37, 0xffffd85dffffdd59}, + {0x9735ec38, 0xffffd85dffffdd5a}, + {0x9735ec39, 0xffffd85dffffdd5b}, + {0x9735ed30, 0xffffd85dffffdd5c}, + {0x9735ed31, 0xffffd85dffffdd5d}, + {0x9735ed32, 0xffffd85dffffdd5e}, + {0x9735ed33, 0xffffd85dffffdd5f}, + {0x9735ed34, 0xffffd85dffffdd60}, + {0x9735ed35, 0xffffd85dffffdd61}, + {0x9735ed36, 0xffffd85dffffdd62}, + {0x9735ed37, 0xffffd85dffffdd63}, + {0x9735ed38, 0xffffd85dffffdd64}, + {0x9735ed39, 0xffffd85dffffdd65}, + {0x9735ee30, 0xffffd85dffffdd66}, + {0x9735ee31, 0xffffd85dffffdd67}, + {0x9735ee32, 0xffffd85dffffdd68}, + {0x9735ee33, 0xffffd85dffffdd69}, + {0x9735ee34, 0xffffd85dffffdd6a}, + {0x9735ee35, 0xffffd85dffffdd6b}, + {0x9735ee36, 0xffffd85dffffdd6c}, + {0x9735ee37, 0xffffd85dffffdd6d}, + {0x9735ee38, 0xffffd85dffffdd6e}, + {0x9735ee39, 0xffffd85dffffdd6f}, + {0x9735ef30, 0xffffd85dffffdd70}, + {0x9735ef31, 0xffffd85dffffdd71}, + {0x9735ef32, 0xffffd85dffffdd72}, + {0x9735ef33, 0xffffd85dffffdd73}, + {0x9735ef34, 0xffffd85dffffdd74}, + {0x9735ef35, 0xffffd85dffffdd75}, + {0x9735ef36, 0xffffd85dffffdd76}, + {0x9735ef37, 0xffffd85dffffdd77}, + {0x9735ef38, 0xffffd85dffffdd78}, + {0x9735ef39, 0xffffd85dffffdd79}, + {0x9735f030, 0xffffd85dffffdd7a}, + {0x9735f031, 0xffffd85dffffdd7b}, + {0x9735f032, 0xffffd85dffffdd7c}, + {0x9735f033, 0xffffd85dffffdd7d}, + {0x9735f034, 0xffffd85dffffdd7e}, + {0x9735f035, 0xffffd85dffffdd7f}, + {0x9735f036, 0xffffd85dffffdd80}, + {0x9735f037, 0xffffd85dffffdd81}, + {0x9735f038, 0xffffd85dffffdd82}, + {0x9735f039, 0xffffd85dffffdd83}, + {0x9735f130, 0xffffd85dffffdd84}, + {0x9735f131, 0xffffd85dffffdd85}, + {0x9735f132, 0xffffd85dffffdd86}, + {0x9735f133, 0xffffd85dffffdd87}, + {0x9735f134, 0xffffd85dffffdd88}, + {0x9735f135, 0xffffd85dffffdd89}, + {0x9735f136, 0xffffd85dffffdd8a}, + {0x9735f137, 0xffffd85dffffdd8b}, + {0x9735f138, 0xffffd85dffffdd8c}, + {0x9735f139, 0xffffd85dffffdd8d}, + {0x9735f230, 0xffffd85dffffdd8e}, + {0x9735f231, 0xffffd85dffffdd8f}, + {0x9735f232, 0xffffd85dffffdd90}, + {0x9735f233, 0xffffd85dffffdd91}, + {0x9735f234, 0xffffd85dffffdd92}, + {0x9735f235, 0xffffd85dffffdd93}, + {0x9735f236, 0xffffd85dffffdd94}, + {0x9735f237, 0xffffd85dffffdd95}, + {0x9735f238, 0xffffd85dffffdd96}, + {0x9735f239, 0xffffd85dffffdd97}, + {0x9735f330, 0xffffd85dffffdd98}, + {0x9735f331, 0xffffd85dffffdd99}, + {0x9735f332, 0xffffd85dffffdd9a}, + {0x9735f333, 0xffffd85dffffdd9b}, + {0x9735f334, 0xffffd85dffffdd9c}, + {0x9735f335, 0xffffd85dffffdd9d}, + {0x9735f336, 0xffffd85dffffdd9e}, + {0x9735f337, 0xffffd85dffffdd9f}, + {0x9735f338, 0xffffd85dffffdda0}, + {0x9735f339, 0xffffd85dffffdda1}, + {0x9735f430, 0xffffd85dffffdda2}, + {0x9735f431, 0xffffd85dffffdda3}, + {0x9735f432, 0xffffd85dffffdda4}, + {0x9735f433, 0xffffd85dffffdda5}, + {0x9735f434, 0xffffd85dffffdda6}, + {0x9735f435, 0xffffd85dffffdda7}, + {0x9735f436, 0xffffd85dffffdda8}, + {0x9735f437, 0xffffd85dffffdda9}, + {0x9735f438, 0xffffd85dffffddaa}, + {0x9735f439, 0xffffd85dffffddab}, + {0x9735f530, 0xffffd85dffffddac}, + {0x9735f531, 0xffffd85dffffddad}, + {0x9735f532, 0xffffd85dffffddae}, + {0x9735f533, 0xffffd85dffffddaf}, + {0x9735f534, 0xffffd85dffffddb0}, + {0x9735f535, 0xffffd85dffffddb1}, + {0x9735f536, 0xffffd85dffffddb2}, + {0x9735f537, 0xffffd85dffffddb3}, + {0x9735f538, 0xffffd85dffffddb4}, + {0x9735f539, 0xffffd85dffffddb5}, + {0x9735f630, 0xffffd85dffffddb6}, + {0x9735f631, 0xffffd85dffffddb7}, + {0x9735f632, 0xffffd85dffffddb8}, + {0x9735f633, 0xffffd85dffffddb9}, + {0x9735f634, 0xffffd85dffffddba}, + {0x9735f635, 0xffffd85dffffddbb}, + {0x9735f636, 0xffffd85dffffddbc}, + {0x9735f637, 0xffffd85dffffddbd}, + {0x9735f638, 0xffffd85dffffddbe}, + {0x9735f639, 0xffffd85dffffddbf}, + {0x9735f730, 0xffffd85dffffddc0}, + {0x9735f731, 0xffffd85dffffddc1}, + {0x9735f732, 0xffffd85dffffddc2}, + {0x9735f733, 0xffffd85dffffddc3}, + {0x9735f734, 0xffffd85dffffddc4}, + {0x9735f735, 0xffffd85dffffddc5}, + {0x9735f736, 0xffffd85dffffddc6}, + {0x9735f737, 0xffffd85dffffddc7}, + {0x9735f738, 0xffffd85dffffddc8}, + {0x9735f739, 0xffffd85dffffddc9}, + {0x9735f830, 0xffffd85dffffddca}, + {0x9735f831, 0xffffd85dffffddcb}, + {0x9735f832, 0xffffd85dffffddcc}, + {0x9735f833, 0xffffd85dffffddcd}, + {0x9735f834, 0xffffd85dffffddce}, + {0x9735f835, 0xffffd85dffffddcf}, + {0x9735f836, 0xffffd85dffffddd0}, + {0x9735f837, 0xffffd85dffffddd1}, + {0x9735f838, 0xffffd85dffffddd2}, + {0x9735f839, 0xffffd85dffffddd3}, + {0x9735f930, 0xffffd85dffffddd4}, + {0x9735f931, 0xffffd85dffffddd5}, + {0x9735f932, 0xffffd85dffffddd6}, + {0x9735f933, 0xffffd85dffffddd7}, + {0x9735f934, 0xffffd85dffffddd8}, + {0x9735f935, 0xffffd85dffffddd9}, + {0x9735f936, 0xffffd85dffffddda}, + {0x9735f937, 0xffffd85dffffdddb}, + {0x9735f938, 0xffffd85dffffdddc}, + {0x9735f939, 0xffffd85dffffdddd}, + {0x9735fa30, 0xffffd85dffffddde}, + {0x9735fa31, 0xffffd85dffffdddf}, + {0x9735fa32, 0xffffd85dffffdde0}, + {0x9735fa33, 0xffffd85dffffdde1}, + {0x9735fa34, 0xffffd85dffffdde2}, + {0x9735fa35, 0xffffd85dffffdde3}, + {0x9735fa36, 0xffffd85dffffdde4}, + {0x9735fa37, 0xffffd85dffffdde5}, + {0x9735fa38, 0xffffd85dffffdde6}, + {0x9735fa39, 0xffffd85dffffdde7}, + {0x9735fb30, 0xffffd85dffffdde8}, + {0x9735fb31, 0xffffd85dffffdde9}, + {0x9735fb32, 0xffffd85dffffddea}, + {0x9735fb33, 0xffffd85dffffddeb}, + {0x9735fb34, 0xffffd85dffffddec}, + {0x9735fb35, 0xffffd85dffffdded}, + {0x9735fb36, 0xffffd85dffffddee}, + {0x9735fb37, 0xffffd85dffffddef}, + {0x9735fb38, 0xffffd85dffffddf0}, + {0x9735fb39, 0xffffd85dffffddf1}, + {0x9735fc30, 0xffffd85dffffddf2}, + {0x9735fc31, 0xffffd85dffffddf3}, + {0x9735fc32, 0xffffd85dffffddf4}, + {0x9735fc33, 0xffffd85dffffddf5}, + {0x9735fc34, 0xffffd85dffffddf6}, + {0x9735fc35, 0xffffd85dffffddf7}, + {0x9735fc36, 0xffffd85dffffddf8}, + {0x9735fc37, 0xffffd85dffffddf9}, + {0x9735fc38, 0xffffd85dffffddfa}, + {0x9735fc39, 0xffffd85dffffddfb}, + {0x9735fd30, 0xffffd85dffffddfc}, + {0x9735fd31, 0xffffd85dffffddfd}, + {0x9735fd32, 0xffffd85dffffddfe}, + {0x9735fd33, 0xffffd85dffffddff}, + {0x9735fd34, 0xffffd85dffffde00}, + {0x9735fd35, 0xffffd85dffffde01}, + {0x9735fd36, 0xffffd85dffffde02}, + {0x9735fd37, 0xffffd85dffffde03}, + {0x9735fd38, 0xffffd85dffffde04}, + {0x9735fd39, 0xffffd85dffffde05}, + {0x9735fe30, 0xffffd85dffffde06}, + {0x9735fe31, 0xffffd85dffffde07}, + {0x9735fe32, 0xffffd85dffffde08}, + {0x9735fe33, 0xffffd85dffffde09}, + {0x9735fe34, 0xffffd85dffffde0a}, + {0x9735fe35, 0xffffd85dffffde0b}, + {0x9735fe36, 0xffffd85dffffde0c}, + {0x9735fe37, 0xffffd85dffffde0d}, + {0x9735fe38, 0xffffd85dffffde0e}, + {0x9735fe39, 0xffffd85dffffde0f}, + {0x97368130, 0xffffd85dffffde10}, + {0x97368131, 0xffffd85dffffde11}, + {0x97368132, 0xffffd85dffffde12}, + {0x97368133, 0xffffd85dffffde13}, + {0x97368134, 0xffffd85dffffde14}, + {0x97368135, 0xffffd85dffffde15}, + {0x97368136, 0xffffd85dffffde16}, + {0x97368137, 0xffffd85dffffde17}, + {0x97368138, 0xffffd85dffffde18}, + {0x97368139, 0xffffd85dffffde19}, + {0x97368230, 0xffffd85dffffde1a}, + {0x97368231, 0xffffd85dffffde1b}, + {0x97368232, 0xffffd85dffffde1c}, + {0x97368233, 0xffffd85dffffde1d}, + {0x97368234, 0xffffd85dffffde1e}, + {0x97368235, 0xffffd85dffffde1f}, + {0x97368236, 0xffffd85dffffde20}, + {0x97368237, 0xffffd85dffffde21}, + {0x97368238, 0xffffd85dffffde22}, + {0x97368239, 0xffffd85dffffde23}, + {0x97368330, 0xffffd85dffffde24}, + {0x97368331, 0xffffd85dffffde25}, + {0x97368332, 0xffffd85dffffde26}, + {0x97368333, 0xffffd85dffffde27}, + {0x97368334, 0xffffd85dffffde28}, + {0x97368335, 0xffffd85dffffde29}, + {0x97368336, 0xffffd85dffffde2a}, + {0x97368337, 0xffffd85dffffde2b}, + {0x97368338, 0xffffd85dffffde2c}, + {0x97368339, 0xffffd85dffffde2d}, + {0x97368430, 0xffffd85dffffde2e}, + {0x97368431, 0xffffd85dffffde2f}, + {0x97368432, 0xffffd85dffffde30}, + {0x97368433, 0xffffd85dffffde31}, + {0x97368434, 0xffffd85dffffde32}, + {0x97368435, 0xffffd85dffffde33}, + {0x97368436, 0xffffd85dffffde34}, + {0x97368437, 0xffffd85dffffde35}, + {0x97368438, 0xffffd85dffffde36}, + {0x97368439, 0xffffd85dffffde37}, + {0x97368530, 0xffffd85dffffde38}, + {0x97368531, 0xffffd85dffffde39}, + {0x97368532, 0xffffd85dffffde3a}, + {0x97368533, 0xffffd85dffffde3b}, + {0x97368534, 0xffffd85dffffde3c}, + {0x97368535, 0xffffd85dffffde3d}, + {0x97368536, 0xffffd85dffffde3e}, + {0x97368537, 0xffffd85dffffde3f}, + {0x97368538, 0xffffd85dffffde40}, + {0x97368539, 0xffffd85dffffde41}, + {0x97368630, 0xffffd85dffffde42}, + {0x97368631, 0xffffd85dffffde43}, + {0x97368632, 0xffffd85dffffde44}, + {0x97368633, 0xffffd85dffffde45}, + {0x97368634, 0xffffd85dffffde46}, + {0x97368635, 0xffffd85dffffde47}, + {0x97368636, 0xffffd85dffffde48}, + {0x97368637, 0xffffd85dffffde49}, + {0x97368638, 0xffffd85dffffde4a}, + {0x97368639, 0xffffd85dffffde4b}, + {0x97368730, 0xffffd85dffffde4c}, + {0x97368731, 0xffffd85dffffde4d}, + {0x97368732, 0xffffd85dffffde4e}, + {0x97368733, 0xffffd85dffffde4f}, + {0x97368734, 0xffffd85dffffde50}, + {0x97368735, 0xffffd85dffffde51}, + {0x97368736, 0xffffd85dffffde52}, + {0x97368737, 0xffffd85dffffde53}, + {0x97368738, 0xffffd85dffffde54}, + {0x97368739, 0xffffd85dffffde55}, + {0x97368830, 0xffffd85dffffde56}, + {0x97368831, 0xffffd85dffffde57}, + {0x97368832, 0xffffd85dffffde58}, + {0x97368833, 0xffffd85dffffde59}, + {0x97368834, 0xffffd85dffffde5a}, + {0x97368835, 0xffffd85dffffde5b}, + {0x97368836, 0xffffd85dffffde5c}, + {0x97368837, 0xffffd85dffffde5d}, + {0x97368838, 0xffffd85dffffde5e}, + {0x97368839, 0xffffd85dffffde5f}, + {0x97368930, 0xffffd85dffffde60}, + {0x97368931, 0xffffd85dffffde61}, + {0x97368932, 0xffffd85dffffde62}, + {0x97368933, 0xffffd85dffffde63}, + {0x97368934, 0xffffd85dffffde64}, + {0x97368935, 0xffffd85dffffde65}, + {0x97368936, 0xffffd85dffffde66}, + {0x97368937, 0xffffd85dffffde67}, + {0x97368938, 0xffffd85dffffde68}, + {0x97368939, 0xffffd85dffffde69}, + {0x97368a30, 0xffffd85dffffde6a}, + {0x97368a31, 0xffffd85dffffde6b}, + {0x97368a32, 0xffffd85dffffde6c}, + {0x97368a33, 0xffffd85dffffde6d}, + {0x97368a34, 0xffffd85dffffde6e}, + {0x97368a35, 0xffffd85dffffde6f}, + {0x97368a36, 0xffffd85dffffde70}, + {0x97368a37, 0xffffd85dffffde71}, + {0x97368a38, 0xffffd85dffffde72}, + {0x97368a39, 0xffffd85dffffde73}, + {0x97368b30, 0xffffd85dffffde74}, + {0x97368b31, 0xffffd85dffffde75}, + {0x97368b32, 0xffffd85dffffde76}, + {0x97368b33, 0xffffd85dffffde77}, + {0x97368b34, 0xffffd85dffffde78}, + {0x97368b35, 0xffffd85dffffde79}, + {0x97368b36, 0xffffd85dffffde7a}, + {0x97368b37, 0xffffd85dffffde7b}, + {0x97368b38, 0xffffd85dffffde7c}, + {0x97368b39, 0xffffd85dffffde7d}, + {0x97368c30, 0xffffd85dffffde7e}, + {0x97368c31, 0xffffd85dffffde7f}, + {0x97368c32, 0xffffd85dffffde80}, + {0x97368c33, 0xffffd85dffffde81}, + {0x97368c34, 0xffffd85dffffde82}, + {0x97368c35, 0xffffd85dffffde83}, + {0x97368c36, 0xffffd85dffffde84}, + {0x97368c37, 0xffffd85dffffde85}, + {0x97368c38, 0xffffd85dffffde86}, + {0x97368c39, 0xffffd85dffffde87}, + {0x97368d30, 0xffffd85dffffde88}, + {0x97368d31, 0xffffd85dffffde89}, + {0x97368d32, 0xffffd85dffffde8a}, + {0x97368d33, 0xffffd85dffffde8b}, + {0x97368d34, 0xffffd85dffffde8c}, + {0x97368d35, 0xffffd85dffffde8d}, + {0x97368d36, 0xffffd85dffffde8e}, + {0x97368d37, 0xffffd85dffffde8f}, + {0x97368d38, 0xffffd85dffffde90}, + {0x97368d39, 0xffffd85dffffde91}, + {0x97368e30, 0xffffd85dffffde92}, + {0x97368e31, 0xffffd85dffffde93}, + {0x97368e32, 0xffffd85dffffde94}, + {0x97368e33, 0xffffd85dffffde95}, + {0x97368e34, 0xffffd85dffffde96}, + {0x97368e35, 0xffffd85dffffde97}, + {0x97368e36, 0xffffd85dffffde98}, + {0x97368e37, 0xffffd85dffffde99}, + {0x97368e38, 0xffffd85dffffde9a}, + {0x97368e39, 0xffffd85dffffde9b}, + {0x97368f30, 0xffffd85dffffde9c}, + {0x97368f31, 0xffffd85dffffde9d}, + {0x97368f32, 0xffffd85dffffde9e}, + {0x97368f33, 0xffffd85dffffde9f}, + {0x97368f34, 0xffffd85dffffdea0}, + {0x97368f35, 0xffffd85dffffdea1}, + {0x97368f36, 0xffffd85dffffdea2}, + {0x97368f37, 0xffffd85dffffdea3}, + {0x97368f38, 0xffffd85dffffdea4}, + {0x97368f39, 0xffffd85dffffdea5}, + {0x97369030, 0xffffd85dffffdea6}, + {0x97369031, 0xffffd85dffffdea7}, + {0x97369032, 0xffffd85dffffdea8}, + {0x97369033, 0xffffd85dffffdea9}, + {0x97369034, 0xffffd85dffffdeaa}, + {0x97369035, 0xffffd85dffffdeab}, + {0x97369036, 0xffffd85dffffdeac}, + {0x97369037, 0xffffd85dffffdead}, + {0x97369038, 0xffffd85dffffdeae}, + {0x97369039, 0xffffd85dffffdeaf}, + {0x97369130, 0xffffd85dffffdeb0}, + {0x97369131, 0xffffd85dffffdeb1}, + {0x97369132, 0xffffd85dffffdeb2}, + {0x97369133, 0xffffd85dffffdeb3}, + {0x97369134, 0xffffd85dffffdeb4}, + {0x97369135, 0xffffd85dffffdeb5}, + {0x97369136, 0xffffd85dffffdeb6}, + {0x97369137, 0xffffd85dffffdeb7}, + {0x97369138, 0xffffd85dffffdeb8}, + {0x97369139, 0xffffd85dffffdeb9}, + {0x97369230, 0xffffd85dffffdeba}, + {0x97369231, 0xffffd85dffffdebb}, + {0x97369232, 0xffffd85dffffdebc}, + {0x97369233, 0xffffd85dffffdebd}, + {0x97369234, 0xffffd85dffffdebe}, + {0x97369235, 0xffffd85dffffdebf}, + {0x97369236, 0xffffd85dffffdec0}, + {0x97369237, 0xffffd85dffffdec1}, + {0x97369238, 0xffffd85dffffdec2}, + {0x97369239, 0xffffd85dffffdec3}, + {0x97369330, 0xffffd85dffffdec4}, + {0x97369331, 0xffffd85dffffdec5}, + {0x97369332, 0xffffd85dffffdec6}, + {0x97369333, 0xffffd85dffffdec7}, + {0x97369334, 0xffffd85dffffdec8}, + {0x97369335, 0xffffd85dffffdec9}, + {0x97369336, 0xffffd85dffffdeca}, + {0x97369337, 0xffffd85dffffdecb}, + {0x97369338, 0xffffd85dffffdecc}, + {0x97369339, 0xffffd85dffffdecd}, + {0x97369430, 0xffffd85dffffdece}, + {0x97369431, 0xffffd85dffffdecf}, + {0x97369432, 0xffffd85dffffded0}, + {0x97369433, 0xffffd85dffffded1}, + {0x97369434, 0xffffd85dffffded2}, + {0x97369435, 0xffffd85dffffded3}, + {0x97369436, 0xffffd85dffffded4}, + {0x97369437, 0xffffd85dffffded5}, + {0x97369438, 0xffffd85dffffded6}, + {0x97369439, 0xffffd85dffffded7}, + {0x97369530, 0xffffd85dffffded8}, + {0x97369531, 0xffffd85dffffded9}, + {0x97369532, 0xffffd85dffffdeda}, + {0x97369533, 0xffffd85dffffdedb}, + {0x97369534, 0xffffd85dffffdedc}, + {0x97369535, 0xffffd85dffffdedd}, + {0x97369536, 0xffffd85dffffdede}, + {0x97369537, 0xffffd85dffffdedf}, + {0x97369538, 0xffffd85dffffdee0}, + {0x97369539, 0xffffd85dffffdee1}, + {0x97369630, 0xffffd85dffffdee2}, + {0x97369631, 0xffffd85dffffdee3}, + {0x97369632, 0xffffd85dffffdee4}, + {0x97369633, 0xffffd85dffffdee5}, + {0x97369634, 0xffffd85dffffdee6}, + {0x97369635, 0xffffd85dffffdee7}, + {0x97369636, 0xffffd85dffffdee8}, + {0x97369637, 0xffffd85dffffdee9}, + {0x97369638, 0xffffd85dffffdeea}, + {0x97369639, 0xffffd85dffffdeeb}, + {0x97369730, 0xffffd85dffffdeec}, + {0x97369731, 0xffffd85dffffdeed}, + {0x97369732, 0xffffd85dffffdeee}, + {0x97369733, 0xffffd85dffffdeef}, + {0x97369734, 0xffffd85dffffdef0}, + {0x97369735, 0xffffd85dffffdef1}, + {0x97369736, 0xffffd85dffffdef2}, + {0x97369737, 0xffffd85dffffdef3}, + {0x97369738, 0xffffd85dffffdef4}, + {0x97369739, 0xffffd85dffffdef5}, + {0x97369830, 0xffffd85dffffdef6}, + {0x97369831, 0xffffd85dffffdef7}, + {0x97369832, 0xffffd85dffffdef8}, + {0x97369833, 0xffffd85dffffdef9}, + {0x97369834, 0xffffd85dffffdefa}, + {0x97369835, 0xffffd85dffffdefb}, + {0x97369836, 0xffffd85dffffdefc}, + {0x97369837, 0xffffd85dffffdefd}, + {0x97369838, 0xffffd85dffffdefe}, + {0x97369839, 0xffffd85dffffdeff}, + {0x97369930, 0xffffd85dffffdf00}, + {0x97369931, 0xffffd85dffffdf01}, + {0x97369932, 0xffffd85dffffdf02}, + {0x97369933, 0xffffd85dffffdf03}, + {0x97369934, 0xffffd85dffffdf04}, + {0x97369935, 0xffffd85dffffdf05}, + {0x97369936, 0xffffd85dffffdf06}, + {0x97369937, 0xffffd85dffffdf07}, + {0x97369938, 0xffffd85dffffdf08}, + {0x97369939, 0xffffd85dffffdf09}, + {0x97369a30, 0xffffd85dffffdf0a}, + {0x97369a31, 0xffffd85dffffdf0b}, + {0x97369a32, 0xffffd85dffffdf0c}, + {0x97369a33, 0xffffd85dffffdf0d}, + {0x97369a34, 0xffffd85dffffdf0e}, + {0x97369a35, 0xffffd85dffffdf0f}, + {0x97369a36, 0xffffd85dffffdf10}, + {0x97369a37, 0xffffd85dffffdf11}, + {0x97369a38, 0xffffd85dffffdf12}, + {0x97369a39, 0xffffd85dffffdf13}, + {0x97369b30, 0xffffd85dffffdf14}, + {0x97369b31, 0xffffd85dffffdf15}, + {0x97369b32, 0xffffd85dffffdf16}, + {0x97369b33, 0xffffd85dffffdf17}, + {0x97369b34, 0xffffd85dffffdf18}, + {0x97369b35, 0xffffd85dffffdf19}, + {0x97369b36, 0xffffd85dffffdf1a}, + {0x97369b37, 0xffffd85dffffdf1b}, + {0x97369b38, 0xffffd85dffffdf1c}, + {0x97369b39, 0xffffd85dffffdf1d}, + {0x97369c30, 0xffffd85dffffdf1e}, + {0x97369c31, 0xffffd85dffffdf1f}, + {0x97369c32, 0xffffd85dffffdf20}, + {0x97369c33, 0xffffd85dffffdf21}, + {0x97369c34, 0xffffd85dffffdf22}, + {0x97369c35, 0xffffd85dffffdf23}, + {0x97369c36, 0xffffd85dffffdf24}, + {0x97369c37, 0xffffd85dffffdf25}, + {0x97369c38, 0xffffd85dffffdf26}, + {0x97369c39, 0xffffd85dffffdf27}, + {0x97369d30, 0xffffd85dffffdf28}, + {0x97369d31, 0xffffd85dffffdf29}, + {0x97369d32, 0xffffd85dffffdf2a}, + {0x97369d33, 0xffffd85dffffdf2b}, + {0x97369d34, 0xffffd85dffffdf2c}, + {0x97369d35, 0xffffd85dffffdf2d}, + {0x97369d36, 0xffffd85dffffdf2e}, + {0x97369d37, 0xffffd85dffffdf2f}, + {0x97369d38, 0xffffd85dffffdf30}, + {0x97369d39, 0xffffd85dffffdf31}, + {0x97369e30, 0xffffd85dffffdf32}, + {0x97369e31, 0xffffd85dffffdf33}, + {0x97369e32, 0xffffd85dffffdf34}, + {0x97369e33, 0xffffd85dffffdf35}, + {0x97369e34, 0xffffd85dffffdf36}, + {0x97369e35, 0xffffd85dffffdf37}, + {0x97369e36, 0xffffd85dffffdf38}, + {0x97369e37, 0xffffd85dffffdf39}, + {0x97369e38, 0xffffd85dffffdf3a}, + {0x97369e39, 0xffffd85dffffdf3b}, + {0x97369f30, 0xffffd85dffffdf3c}, + {0x97369f31, 0xffffd85dffffdf3d}, + {0x97369f32, 0xffffd85dffffdf3e}, + {0x97369f33, 0xffffd85dffffdf3f}, + {0x97369f34, 0xffffd85dffffdf40}, + {0x97369f35, 0xffffd85dffffdf41}, + {0x97369f36, 0xffffd85dffffdf42}, + {0x97369f37, 0xffffd85dffffdf43}, + {0x97369f38, 0xffffd85dffffdf44}, + {0x97369f39, 0xffffd85dffffdf45}, + {0x9736a030, 0xffffd85dffffdf46}, + {0x9736a031, 0xffffd85dffffdf47}, + {0x9736a032, 0xffffd85dffffdf48}, + {0x9736a033, 0xffffd85dffffdf49}, + {0x9736a034, 0xffffd85dffffdf4a}, + {0x9736a035, 0xffffd85dffffdf4b}, + {0x9736a036, 0xffffd85dffffdf4c}, + {0x9736a037, 0xffffd85dffffdf4d}, + {0x9736a038, 0xffffd85dffffdf4e}, + {0x9736a039, 0xffffd85dffffdf4f}, + {0x9736a130, 0xffffd85dffffdf50}, + {0x9736a131, 0xffffd85dffffdf51}, + {0x9736a132, 0xffffd85dffffdf52}, + {0x9736a133, 0xffffd85dffffdf53}, + {0x9736a134, 0xffffd85dffffdf54}, + {0x9736a135, 0xffffd85dffffdf55}, + {0x9736a136, 0xffffd85dffffdf56}, + {0x9736a137, 0xffffd85dffffdf57}, + {0x9736a138, 0xffffd85dffffdf58}, + {0x9736a139, 0xffffd85dffffdf59}, + {0x9736a230, 0xffffd85dffffdf5a}, + {0x9736a231, 0xffffd85dffffdf5b}, + {0x9736a232, 0xffffd85dffffdf5c}, + {0x9736a233, 0xffffd85dffffdf5d}, + {0x9736a234, 0xffffd85dffffdf5e}, + {0x9736a235, 0xffffd85dffffdf5f}, + {0x9736a236, 0xffffd85dffffdf60}, + {0x9736a237, 0xffffd85dffffdf61}, + {0x9736a238, 0xffffd85dffffdf62}, + {0x9736a239, 0xffffd85dffffdf63}, + {0x9736a330, 0xffffd85dffffdf64}, + {0x9736a331, 0xffffd85dffffdf65}, + {0x9736a332, 0xffffd85dffffdf66}, + {0x9736a333, 0xffffd85dffffdf67}, + {0x9736a334, 0xffffd85dffffdf68}, + {0x9736a335, 0xffffd85dffffdf69}, + {0x9736a336, 0xffffd85dffffdf6a}, + {0x9736a337, 0xffffd85dffffdf6b}, + {0x9736a338, 0xffffd85dffffdf6c}, + {0x9736a339, 0xffffd85dffffdf6d}, + {0x9736a430, 0xffffd85dffffdf6e}, + {0x9736a431, 0xffffd85dffffdf6f}, + {0x9736a432, 0xffffd85dffffdf70}, + {0x9736a433, 0xffffd85dffffdf71}, + {0x9736a434, 0xffffd85dffffdf72}, + {0x9736a435, 0xffffd85dffffdf73}, + {0x9736a436, 0xffffd85dffffdf74}, + {0x9736a437, 0xffffd85dffffdf75}, + {0x9736a438, 0xffffd85dffffdf76}, + {0x9736a439, 0xffffd85dffffdf77}, + {0x9736a530, 0xffffd85dffffdf78}, + {0x9736a531, 0xffffd85dffffdf79}, + {0x9736a532, 0xffffd85dffffdf7a}, + {0x9736a533, 0xffffd85dffffdf7b}, + {0x9736a534, 0xffffd85dffffdf7c}, + {0x9736a535, 0xffffd85dffffdf7d}, + {0x9736a536, 0xffffd85dffffdf7e}, + {0x9736a537, 0xffffd85dffffdf7f}, + {0x9736a538, 0xffffd85dffffdf80}, + {0x9736a539, 0xffffd85dffffdf81}, + {0x9736a630, 0xffffd85dffffdf82}, + {0x9736a631, 0xffffd85dffffdf83}, + {0x9736a632, 0xffffd85dffffdf84}, + {0x9736a633, 0xffffd85dffffdf85}, + {0x9736a634, 0xffffd85dffffdf86}, + {0x9736a635, 0xffffd85dffffdf87}, + {0x9736a636, 0xffffd85dffffdf88}, + {0x9736a637, 0xffffd85dffffdf89}, + {0x9736a638, 0xffffd85dffffdf8a}, + {0x9736a639, 0xffffd85dffffdf8b}, + {0x9736a730, 0xffffd85dffffdf8c}, + {0x9736a731, 0xffffd85dffffdf8d}, + {0x9736a732, 0xffffd85dffffdf8e}, + {0x9736a733, 0xffffd85dffffdf8f}, + {0x9736a734, 0xffffd85dffffdf90}, + {0x9736a735, 0xffffd85dffffdf91}, + {0x9736a736, 0xffffd85dffffdf92}, + {0x9736a737, 0xffffd85dffffdf93}, + {0x9736a738, 0xffffd85dffffdf94}, + {0x9736a739, 0xffffd85dffffdf95}, + {0x9736a830, 0xffffd85dffffdf96}, + {0x9736a831, 0xffffd85dffffdf97}, + {0x9736a832, 0xffffd85dffffdf98}, + {0x9736a833, 0xffffd85dffffdf99}, + {0x9736a834, 0xffffd85dffffdf9a}, + {0x9736a835, 0xffffd85dffffdf9b}, + {0x9736a836, 0xffffd85dffffdf9c}, + {0x9736a837, 0xffffd85dffffdf9d}, + {0x9736a838, 0xffffd85dffffdf9e}, + {0x9736a839, 0xffffd85dffffdf9f}, + {0x9736a930, 0xffffd85dffffdfa0}, + {0x9736a931, 0xffffd85dffffdfa1}, + {0x9736a932, 0xffffd85dffffdfa2}, + {0x9736a933, 0xffffd85dffffdfa3}, + {0x9736a934, 0xffffd85dffffdfa4}, + {0x9736a935, 0xffffd85dffffdfa5}, + {0x9736a936, 0xffffd85dffffdfa6}, + {0x9736a937, 0xffffd85dffffdfa7}, + {0x9736a938, 0xffffd85dffffdfa8}, + {0x9736a939, 0xffffd85dffffdfa9}, + {0x9736aa30, 0xffffd85dffffdfaa}, + {0x9736aa31, 0xffffd85dffffdfab}, + {0x9736aa32, 0xffffd85dffffdfac}, + {0x9736aa33, 0xffffd85dffffdfad}, + {0x9736aa34, 0xffffd85dffffdfae}, + {0x9736aa35, 0xffffd85dffffdfaf}, + {0x9736aa36, 0xffffd85dffffdfb0}, + {0x9736aa37, 0xffffd85dffffdfb1}, + {0x9736aa38, 0xffffd85dffffdfb2}, + {0x9736aa39, 0xffffd85dffffdfb3}, + {0x9736ab30, 0xffffd85dffffdfb4}, + {0x9736ab31, 0xffffd85dffffdfb5}, + {0x9736ab32, 0xffffd85dffffdfb6}, + {0x9736ab33, 0xffffd85dffffdfb7}, + {0x9736ab34, 0xffffd85dffffdfb8}, + {0x9736ab35, 0xffffd85dffffdfb9}, + {0x9736ab36, 0xffffd85dffffdfba}, + {0x9736ab37, 0xffffd85dffffdfbb}, + {0x9736ab38, 0xffffd85dffffdfbc}, + {0x9736ab39, 0xffffd85dffffdfbd}, + {0x9736ac30, 0xffffd85dffffdfbe}, + {0x9736ac31, 0xffffd85dffffdfbf}, + {0x9736ac32, 0xffffd85dffffdfc0}, + {0x9736ac33, 0xffffd85dffffdfc1}, + {0x9736ac34, 0xffffd85dffffdfc2}, + {0x9736ac35, 0xffffd85dffffdfc3}, + {0x9736ac36, 0xffffd85dffffdfc4}, + {0x9736ac37, 0xffffd85dffffdfc5}, + {0x9736ac38, 0xffffd85dffffdfc6}, + {0x9736ac39, 0xffffd85dffffdfc7}, + {0x9736ad30, 0xffffd85dffffdfc8}, + {0x9736ad31, 0xffffd85dffffdfc9}, + {0x9736ad32, 0xffffd85dffffdfca}, + {0x9736ad33, 0xffffd85dffffdfcb}, + {0x9736ad34, 0xffffd85dffffdfcc}, + {0x9736ad35, 0xffffd85dffffdfcd}, + {0x9736ad36, 0xffffd85dffffdfce}, + {0x9736ad37, 0xffffd85dffffdfcf}, + {0x9736ad38, 0xffffd85dffffdfd0}, + {0x9736ad39, 0xffffd85dffffdfd1}, + {0x9736ae30, 0xffffd85dffffdfd2}, + {0x9736ae31, 0xffffd85dffffdfd3}, + {0x9736ae32, 0xffffd85dffffdfd4}, + {0x9736ae33, 0xffffd85dffffdfd5}, + {0x9736ae34, 0xffffd85dffffdfd6}, + {0x9736ae35, 0xffffd85dffffdfd7}, + {0x9736ae36, 0xffffd85dffffdfd8}, + {0x9736ae37, 0xffffd85dffffdfd9}, + {0x9736ae38, 0xffffd85dffffdfda}, + {0x9736ae39, 0xffffd85dffffdfdb}, + {0x9736af30, 0xffffd85dffffdfdc}, + {0x9736af31, 0xffffd85dffffdfdd}, + {0x9736af32, 0xffffd85dffffdfde}, + {0x9736af33, 0xffffd85dffffdfdf}, + {0x9736af34, 0xffffd85dffffdfe0}, + {0x9736af35, 0xffffd85dffffdfe1}, + {0x9736af36, 0xffffd85dffffdfe2}, + {0x9736af37, 0xffffd85dffffdfe3}, + {0x9736af38, 0xffffd85dffffdfe4}, + {0x9736af39, 0xffffd85dffffdfe5}, + {0x9736b030, 0xffffd85dffffdfe6}, + {0x9736b031, 0xffffd85dffffdfe7}, + {0x9736b032, 0xffffd85dffffdfe8}, + {0x9736b033, 0xffffd85dffffdfe9}, + {0x9736b034, 0xffffd85dffffdfea}, + {0x9736b035, 0xffffd85dffffdfeb}, + {0x9736b036, 0xffffd85dffffdfec}, + {0x9736b037, 0xffffd85dffffdfed}, + {0x9736b038, 0xffffd85dffffdfee}, + {0x9736b039, 0xffffd85dffffdfef}, + {0x9736b130, 0xffffd85dffffdff0}, + {0x9736b131, 0xffffd85dffffdff1}, + {0x9736b132, 0xffffd85dffffdff2}, + {0x9736b133, 0xffffd85dffffdff3}, + {0x9736b134, 0xffffd85dffffdff4}, + {0x9736b135, 0xffffd85dffffdff5}, + {0x9736b136, 0xffffd85dffffdff6}, + {0x9736b137, 0xffffd85dffffdff7}, + {0x9736b138, 0xffffd85dffffdff8}, + {0x9736b139, 0xffffd85dffffdff9}, + {0x9736b230, 0xffffd85dffffdffa}, + {0x9736b231, 0xffffd85dffffdffb}, + {0x9736b232, 0xffffd85dffffdffc}, + {0x9736b233, 0xffffd85dffffdffd}, + {0x9736b234, 0xffffd85dffffdffe}, + {0x9736b235, 0xffffd85dffffdfff}, + {0x9736b236, 0xffffd85effffdc00}, + {0x9736b237, 0xffffd85effffdc01}, + {0x9736b238, 0xffffd85effffdc02}, + {0x9736b239, 0xffffd85effffdc03}, + {0x9736b330, 0xffffd85effffdc04}, + {0x9736b331, 0xffffd85effffdc05}, + {0x9736b332, 0xffffd85effffdc06}, + {0x9736b333, 0xffffd85effffdc07}, + {0x9736b334, 0xffffd85effffdc08}, + {0x9736b335, 0xffffd85effffdc09}, + {0x9736b336, 0xffffd85effffdc0a}, + {0x9736b337, 0xffffd85effffdc0b}, + {0x9736b338, 0xffffd85effffdc0c}, + {0x9736b339, 0xffffd85effffdc0d}, + {0x9736b430, 0xffffd85effffdc0e}, + {0x9736b431, 0xffffd85effffdc0f}, + {0x9736b432, 0xffffd85effffdc10}, + {0x9736b433, 0xffffd85effffdc11}, + {0x9736b434, 0xffffd85effffdc12}, + {0x9736b435, 0xffffd85effffdc13}, + {0x9736b436, 0xffffd85effffdc14}, + {0x9736b437, 0xffffd85effffdc15}, + {0x9736b438, 0xffffd85effffdc16}, + {0x9736b439, 0xffffd85effffdc17}, + {0x9736b530, 0xffffd85effffdc18}, + {0x9736b531, 0xffffd85effffdc19}, + {0x9736b532, 0xffffd85effffdc1a}, + {0x9736b533, 0xffffd85effffdc1b}, + {0x9736b534, 0xffffd85effffdc1c}, + {0x9736b535, 0xffffd85effffdc1d}, + {0x9736b536, 0xffffd85effffdc1e}, + {0x9736b537, 0xffffd85effffdc1f}, + {0x9736b538, 0xffffd85effffdc20}, + {0x9736b539, 0xffffd85effffdc21}, + {0x9736b630, 0xffffd85effffdc22}, + {0x9736b631, 0xffffd85effffdc23}, + {0x9736b632, 0xffffd85effffdc24}, + {0x9736b633, 0xffffd85effffdc25}, + {0x9736b634, 0xffffd85effffdc26}, + {0x9736b635, 0xffffd85effffdc27}, + {0x9736b636, 0xffffd85effffdc28}, + {0x9736b637, 0xffffd85effffdc29}, + {0x9736b638, 0xffffd85effffdc2a}, + {0x9736b639, 0xffffd85effffdc2b}, + {0x9736b730, 0xffffd85effffdc2c}, + {0x9736b731, 0xffffd85effffdc2d}, + {0x9736b732, 0xffffd85effffdc2e}, + {0x9736b733, 0xffffd85effffdc2f}, + {0x9736b734, 0xffffd85effffdc30}, + {0x9736b735, 0xffffd85effffdc31}, + {0x9736b736, 0xffffd85effffdc32}, + {0x9736b737, 0xffffd85effffdc33}, + {0x9736b738, 0xffffd85effffdc34}, + {0x9736b739, 0xffffd85effffdc35}, + {0x9736b830, 0xffffd85effffdc36}, + {0x9736b831, 0xffffd85effffdc37}, + {0x9736b832, 0xffffd85effffdc38}, + {0x9736b833, 0xffffd85effffdc39}, + {0x9736b834, 0xffffd85effffdc3a}, + {0x9736b835, 0xffffd85effffdc3b}, + {0x9736b836, 0xffffd85effffdc3c}, + {0x9736b837, 0xffffd85effffdc3d}, + {0x9736b838, 0xffffd85effffdc3e}, + {0x9736b839, 0xffffd85effffdc3f}, + {0x9736b930, 0xffffd85effffdc40}, + {0x9736b931, 0xffffd85effffdc41}, + {0x9736b932, 0xffffd85effffdc42}, + {0x9736b933, 0xffffd85effffdc43}, + {0x9736b934, 0xffffd85effffdc44}, + {0x9736b935, 0xffffd85effffdc45}, + {0x9736b936, 0xffffd85effffdc46}, + {0x9736b937, 0xffffd85effffdc47}, + {0x9736b938, 0xffffd85effffdc48}, + {0x9736b939, 0xffffd85effffdc49}, + {0x9736ba30, 0xffffd85effffdc4a}, + {0x9736ba31, 0xffffd85effffdc4b}, + {0x9736ba32, 0xffffd85effffdc4c}, + {0x9736ba33, 0xffffd85effffdc4d}, + {0x9736ba34, 0xffffd85effffdc4e}, + {0x9736ba35, 0xffffd85effffdc4f}, + {0x9736ba36, 0xffffd85effffdc50}, + {0x9736ba37, 0xffffd85effffdc51}, + {0x9736ba38, 0xffffd85effffdc52}, + {0x9736ba39, 0xffffd85effffdc53}, + {0x9736bb30, 0xffffd85effffdc54}, + {0x9736bb31, 0xffffd85effffdc55}, + {0x9736bb32, 0xffffd85effffdc56}, + {0x9736bb33, 0xffffd85effffdc57}, + {0x9736bb34, 0xffffd85effffdc58}, + {0x9736bb35, 0xffffd85effffdc59}, + {0x9736bb36, 0xffffd85effffdc5a}, + {0x9736bb37, 0xffffd85effffdc5b}, + {0x9736bb38, 0xffffd85effffdc5c}, + {0x9736bb39, 0xffffd85effffdc5d}, + {0x9736bc30, 0xffffd85effffdc5e}, + {0x9736bc31, 0xffffd85effffdc5f}, + {0x9736bc32, 0xffffd85effffdc60}, + {0x9736bc33, 0xffffd85effffdc61}, + {0x9736bc34, 0xffffd85effffdc62}, + {0x9736bc35, 0xffffd85effffdc63}, + {0x9736bc36, 0xffffd85effffdc64}, + {0x9736bc37, 0xffffd85effffdc65}, + {0x9736bc38, 0xffffd85effffdc66}, + {0x9736bc39, 0xffffd85effffdc67}, + {0x9736bd30, 0xffffd85effffdc68}, + {0x9736bd31, 0xffffd85effffdc69}, + {0x9736bd32, 0xffffd85effffdc6a}, + {0x9736bd33, 0xffffd85effffdc6b}, + {0x9736bd34, 0xffffd85effffdc6c}, + {0x9736bd35, 0xffffd85effffdc6d}, + {0x9736bd36, 0xffffd85effffdc6e}, + {0x9736bd37, 0xffffd85effffdc6f}, + {0x9736bd38, 0xffffd85effffdc70}, + {0x9736bd39, 0xffffd85effffdc71}, + {0x9736be30, 0xffffd85effffdc72}, + {0x9736be31, 0xffffd85effffdc73}, + {0x9736be32, 0xffffd85effffdc74}, + {0x9736be33, 0xffffd85effffdc75}, + {0x9736be34, 0xffffd85effffdc76}, + {0x9736be35, 0xffffd85effffdc77}, + {0x9736be36, 0xffffd85effffdc78}, + {0x9736be37, 0xffffd85effffdc79}, + {0x9736be38, 0xffffd85effffdc7a}, + {0x9736be39, 0xffffd85effffdc7b}, + {0x9736bf30, 0xffffd85effffdc7c}, + {0x9736bf31, 0xffffd85effffdc7d}, + {0x9736bf32, 0xffffd85effffdc7e}, + {0x9736bf33, 0xffffd85effffdc7f}, + {0x9736bf34, 0xffffd85effffdc80}, + {0x9736bf35, 0xffffd85effffdc81}, + {0x9736bf36, 0xffffd85effffdc82}, + {0x9736bf37, 0xffffd85effffdc83}, + {0x9736bf38, 0xffffd85effffdc84}, + {0x9736bf39, 0xffffd85effffdc85}, + {0x9736c030, 0xffffd85effffdc86}, + {0x9736c031, 0xffffd85effffdc87}, + {0x9736c032, 0xffffd85effffdc88}, + {0x9736c033, 0xffffd85effffdc89}, + {0x9736c034, 0xffffd85effffdc8a}, + {0x9736c035, 0xffffd85effffdc8b}, + {0x9736c036, 0xffffd85effffdc8c}, + {0x9736c037, 0xffffd85effffdc8d}, + {0x9736c038, 0xffffd85effffdc8e}, + {0x9736c039, 0xffffd85effffdc8f}, + {0x9736c130, 0xffffd85effffdc90}, + {0x9736c131, 0xffffd85effffdc91}, + {0x9736c132, 0xffffd85effffdc92}, + {0x9736c133, 0xffffd85effffdc93}, + {0x9736c134, 0xffffd85effffdc94}, + {0x9736c135, 0xffffd85effffdc95}, + {0x9736c136, 0xffffd85effffdc96}, + {0x9736c137, 0xffffd85effffdc97}, + {0x9736c138, 0xffffd85effffdc98}, + {0x9736c139, 0xffffd85effffdc99}, + {0x9736c230, 0xffffd85effffdc9a}, + {0x9736c231, 0xffffd85effffdc9b}, + {0x9736c232, 0xffffd85effffdc9c}, + {0x9736c233, 0xffffd85effffdc9d}, + {0x9736c234, 0xffffd85effffdc9e}, + {0x9736c235, 0xffffd85effffdc9f}, + {0x9736c236, 0xffffd85effffdca0}, + {0x9736c237, 0xffffd85effffdca1}, + {0x9736c238, 0xffffd85effffdca2}, + {0x9736c239, 0xffffd85effffdca3}, + {0x9736c330, 0xffffd85effffdca4}, + {0x9736c331, 0xffffd85effffdca5}, + {0x9736c332, 0xffffd85effffdca6}, + {0x9736c333, 0xffffd85effffdca7}, + {0x9736c334, 0xffffd85effffdca8}, + {0x9736c335, 0xffffd85effffdca9}, + {0x9736c336, 0xffffd85effffdcaa}, + {0x9736c337, 0xffffd85effffdcab}, + {0x9736c338, 0xffffd85effffdcac}, + {0x9736c339, 0xffffd85effffdcad}, + {0x9736c430, 0xffffd85effffdcae}, + {0x9736c431, 0xffffd85effffdcaf}, + {0x9736c432, 0xffffd85effffdcb0}, + {0x9736c433, 0xffffd85effffdcb1}, + {0x9736c434, 0xffffd85effffdcb2}, + {0x9736c435, 0xffffd85effffdcb3}, + {0x9736c436, 0xffffd85effffdcb4}, + {0x9736c437, 0xffffd85effffdcb5}, + {0x9736c438, 0xffffd85effffdcb6}, + {0x9736c439, 0xffffd85effffdcb7}, + {0x9736c530, 0xffffd85effffdcb8}, + {0x9736c531, 0xffffd85effffdcb9}, + {0x9736c532, 0xffffd85effffdcba}, + {0x9736c533, 0xffffd85effffdcbb}, + {0x9736c534, 0xffffd85effffdcbc}, + {0x9736c535, 0xffffd85effffdcbd}, + {0x9736c536, 0xffffd85effffdcbe}, + {0x9736c537, 0xffffd85effffdcbf}, + {0x9736c538, 0xffffd85effffdcc0}, + {0x9736c539, 0xffffd85effffdcc1}, + {0x9736c630, 0xffffd85effffdcc2}, + {0x9736c631, 0xffffd85effffdcc3}, + {0x9736c632, 0xffffd85effffdcc4}, + {0x9736c633, 0xffffd85effffdcc5}, + {0x9736c634, 0xffffd85effffdcc6}, + {0x9736c635, 0xffffd85effffdcc7}, + {0x9736c636, 0xffffd85effffdcc8}, + {0x9736c637, 0xffffd85effffdcc9}, + {0x9736c638, 0xffffd85effffdcca}, + {0x9736c639, 0xffffd85effffdccb}, + {0x9736c730, 0xffffd85effffdccc}, + {0x9736c731, 0xffffd85effffdccd}, + {0x9736c732, 0xffffd85effffdcce}, + {0x9736c733, 0xffffd85effffdccf}, + {0x9736c734, 0xffffd85effffdcd0}, + {0x9736c735, 0xffffd85effffdcd1}, + {0x9736c736, 0xffffd85effffdcd2}, + {0x9736c737, 0xffffd85effffdcd3}, + {0x9736c738, 0xffffd85effffdcd4}, + {0x9736c739, 0xffffd85effffdcd5}, + {0x9736c830, 0xffffd85effffdcd6}, + {0x9736c831, 0xffffd85effffdcd7}, + {0x9736c832, 0xffffd85effffdcd8}, + {0x9736c833, 0xffffd85effffdcd9}, + {0x9736c834, 0xffffd85effffdcda}, + {0x9736c835, 0xffffd85effffdcdb}, + {0x9736c836, 0xffffd85effffdcdc}, + {0x9736c837, 0xffffd85effffdcdd}, + {0x9736c838, 0xffffd85effffdcde}, + {0x9736c839, 0xffffd85effffdcdf}, + {0x9736c930, 0xffffd85effffdce0}, + {0x9736c931, 0xffffd85effffdce1}, + {0x9736c932, 0xffffd85effffdce2}, + {0x9736c933, 0xffffd85effffdce3}, + {0x9736c934, 0xffffd85effffdce4}, + {0x9736c935, 0xffffd85effffdce5}, + {0x9736c936, 0xffffd85effffdce6}, + {0x9736c937, 0xffffd85effffdce7}, + {0x9736c938, 0xffffd85effffdce8}, + {0x9736c939, 0xffffd85effffdce9}, + {0x9736ca30, 0xffffd85effffdcea}, + {0x9736ca31, 0xffffd85effffdceb}, + {0x9736ca32, 0xffffd85effffdcec}, + {0x9736ca33, 0xffffd85effffdced}, + {0x9736ca34, 0xffffd85effffdcee}, + {0x9736ca35, 0xffffd85effffdcef}, + {0x9736ca36, 0xffffd85effffdcf0}, + {0x9736ca37, 0xffffd85effffdcf1}, + {0x9736ca38, 0xffffd85effffdcf2}, + {0x9736ca39, 0xffffd85effffdcf3}, + {0x9736cb30, 0xffffd85effffdcf4}, + {0x9736cb31, 0xffffd85effffdcf5}, + {0x9736cb32, 0xffffd85effffdcf6}, + {0x9736cb33, 0xffffd85effffdcf7}, + {0x9736cb34, 0xffffd85effffdcf8}, + {0x9736cb35, 0xffffd85effffdcf9}, + {0x9736cb36, 0xffffd85effffdcfa}, + {0x9736cb37, 0xffffd85effffdcfb}, + {0x9736cb38, 0xffffd85effffdcfc}, + {0x9736cb39, 0xffffd85effffdcfd}, + {0x9736cc30, 0xffffd85effffdcfe}, + {0x9736cc31, 0xffffd85effffdcff}, + {0x9736cc32, 0xffffd85effffdd00}, + {0x9736cc33, 0xffffd85effffdd01}, + {0x9736cc34, 0xffffd85effffdd02}, + {0x9736cc35, 0xffffd85effffdd03}, + {0x9736cc36, 0xffffd85effffdd04}, + {0x9736cc37, 0xffffd85effffdd05}, + {0x9736cc38, 0xffffd85effffdd06}, + {0x9736cc39, 0xffffd85effffdd07}, + {0x9736cd30, 0xffffd85effffdd08}, + {0x9736cd31, 0xffffd85effffdd09}, + {0x9736cd32, 0xffffd85effffdd0a}, + {0x9736cd33, 0xffffd85effffdd0b}, + {0x9736cd34, 0xffffd85effffdd0c}, + {0x9736cd35, 0xffffd85effffdd0d}, + {0x9736cd36, 0xffffd85effffdd0e}, + {0x9736cd37, 0xffffd85effffdd0f}, + {0x9736cd38, 0xffffd85effffdd10}, + {0x9736cd39, 0xffffd85effffdd11}, + {0x9736ce30, 0xffffd85effffdd12}, + {0x9736ce31, 0xffffd85effffdd13}, + {0x9736ce32, 0xffffd85effffdd14}, + {0x9736ce33, 0xffffd85effffdd15}, + {0x9736ce34, 0xffffd85effffdd16}, + {0x9736ce35, 0xffffd85effffdd17}, + {0x9736ce36, 0xffffd85effffdd18}, + {0x9736ce37, 0xffffd85effffdd19}, + {0x9736ce38, 0xffffd85effffdd1a}, + {0x9736ce39, 0xffffd85effffdd1b}, + {0x9736cf30, 0xffffd85effffdd1c}, + {0x9736cf31, 0xffffd85effffdd1d}, + {0x9736cf32, 0xffffd85effffdd1e}, + {0x9736cf33, 0xffffd85effffdd1f}, + {0x9736cf34, 0xffffd85effffdd20}, + {0x9736cf35, 0xffffd85effffdd21}, + {0x9736cf36, 0xffffd85effffdd22}, + {0x9736cf37, 0xffffd85effffdd23}, + {0x9736cf38, 0xffffd85effffdd24}, + {0x9736cf39, 0xffffd85effffdd25}, + {0x9736d030, 0xffffd85effffdd26}, + {0x9736d031, 0xffffd85effffdd27}, + {0x9736d032, 0xffffd85effffdd28}, + {0x9736d033, 0xffffd85effffdd29}, + {0x9736d034, 0xffffd85effffdd2a}, + {0x9736d035, 0xffffd85effffdd2b}, + {0x9736d036, 0xffffd85effffdd2c}, + {0x9736d037, 0xffffd85effffdd2d}, + {0x9736d038, 0xffffd85effffdd2e}, + {0x9736d039, 0xffffd85effffdd2f}, + {0x9736d130, 0xffffd85effffdd30}, + {0x9736d131, 0xffffd85effffdd31}, + {0x9736d132, 0xffffd85effffdd32}, + {0x9736d133, 0xffffd85effffdd33}, + {0x9736d134, 0xffffd85effffdd34}, + {0x9736d135, 0xffffd85effffdd35}, + {0x9736d136, 0xffffd85effffdd36}, + {0x9736d137, 0xffffd85effffdd37}, + {0x9736d138, 0xffffd85effffdd38}, + {0x9736d139, 0xffffd85effffdd39}, + {0x9736d230, 0xffffd85effffdd3a}, + {0x9736d231, 0xffffd85effffdd3b}, + {0x9736d232, 0xffffd85effffdd3c}, + {0x9736d233, 0xffffd85effffdd3d}, + {0x9736d234, 0xffffd85effffdd3e}, + {0x9736d235, 0xffffd85effffdd3f}, + {0x9736d236, 0xffffd85effffdd40}, + {0x9736d237, 0xffffd85effffdd41}, + {0x9736d238, 0xffffd85effffdd42}, + {0x9736d239, 0xffffd85effffdd43}, + {0x9736d330, 0xffffd85effffdd44}, + {0x9736d331, 0xffffd85effffdd45}, + {0x9736d332, 0xffffd85effffdd46}, + {0x9736d333, 0xffffd85effffdd47}, + {0x9736d334, 0xffffd85effffdd48}, + {0x9736d335, 0xffffd85effffdd49}, + {0x9736d336, 0xffffd85effffdd4a}, + {0x9736d337, 0xffffd85effffdd4b}, + {0x9736d338, 0xffffd85effffdd4c}, + {0x9736d339, 0xffffd85effffdd4d}, + {0x9736d430, 0xffffd85effffdd4e}, + {0x9736d431, 0xffffd85effffdd4f}, + {0x9736d432, 0xffffd85effffdd50}, + {0x9736d433, 0xffffd85effffdd51}, + {0x9736d434, 0xffffd85effffdd52}, + {0x9736d435, 0xffffd85effffdd53}, + {0x9736d436, 0xffffd85effffdd54}, + {0x9736d437, 0xffffd85effffdd55}, + {0x9736d438, 0xffffd85effffdd56}, + {0x9736d439, 0xffffd85effffdd57}, + {0x9736d530, 0xffffd85effffdd58}, + {0x9736d531, 0xffffd85effffdd59}, + {0x9736d532, 0xffffd85effffdd5a}, + {0x9736d533, 0xffffd85effffdd5b}, + {0x9736d534, 0xffffd85effffdd5c}, + {0x9736d535, 0xffffd85effffdd5d}, + {0x9736d536, 0xffffd85effffdd5e}, + {0x9736d537, 0xffffd85effffdd5f}, + {0x9736d538, 0xffffd85effffdd60}, + {0x9736d539, 0xffffd85effffdd61}, + {0x9736d630, 0xffffd85effffdd62}, + {0x9736d631, 0xffffd85effffdd63}, + {0x9736d632, 0xffffd85effffdd64}, + {0x9736d633, 0xffffd85effffdd65}, + {0x9736d634, 0xffffd85effffdd66}, + {0x9736d635, 0xffffd85effffdd67}, + {0x9736d636, 0xffffd85effffdd68}, + {0x9736d637, 0xffffd85effffdd69}, + {0x9736d638, 0xffffd85effffdd6a}, + {0x9736d639, 0xffffd85effffdd6b}, + {0x9736d730, 0xffffd85effffdd6c}, + {0x9736d731, 0xffffd85effffdd6d}, + {0x9736d732, 0xffffd85effffdd6e}, + {0x9736d733, 0xffffd85effffdd6f}, + {0x9736d734, 0xffffd85effffdd70}, + {0x9736d735, 0xffffd85effffdd71}, + {0x9736d736, 0xffffd85effffdd72}, + {0x9736d737, 0xffffd85effffdd73}, + {0x9736d738, 0xffffd85effffdd74}, + {0x9736d739, 0xffffd85effffdd75}, + {0x9736d830, 0xffffd85effffdd76}, + {0x9736d831, 0xffffd85effffdd77}, + {0x9736d832, 0xffffd85effffdd78}, + {0x9736d833, 0xffffd85effffdd79}, + {0x9736d834, 0xffffd85effffdd7a}, + {0x9736d835, 0xffffd85effffdd7b}, + {0x9736d836, 0xffffd85effffdd7c}, + {0x9736d837, 0xffffd85effffdd7d}, + {0x9736d838, 0xffffd85effffdd7e}, + {0x9736d839, 0xffffd85effffdd7f}, + {0x9736d930, 0xffffd85effffdd80}, + {0x9736d931, 0xffffd85effffdd81}, + {0x9736d932, 0xffffd85effffdd82}, + {0x9736d933, 0xffffd85effffdd83}, + {0x9736d934, 0xffffd85effffdd84}, + {0x9736d935, 0xffffd85effffdd85}, + {0x9736d936, 0xffffd85effffdd86}, + {0x9736d937, 0xffffd85effffdd87}, + {0x9736d938, 0xffffd85effffdd88}, + {0x9736d939, 0xffffd85effffdd89}, + {0x9736da30, 0xffffd85effffdd8a}, + {0x9736da31, 0xffffd85effffdd8b}, + {0x9736da32, 0xffffd85effffdd8c}, + {0x9736da33, 0xffffd85effffdd8d}, + {0x9736da34, 0xffffd85effffdd8e}, + {0x9736da35, 0xffffd85effffdd8f}, + {0x9736da36, 0xffffd85effffdd90}, + {0x9736da37, 0xffffd85effffdd91}, + {0x9736da38, 0xffffd85effffdd92}, + {0x9736da39, 0xffffd85effffdd93}, + {0x9736db30, 0xffffd85effffdd94}, + {0x9736db31, 0xffffd85effffdd95}, + {0x9736db32, 0xffffd85effffdd96}, + {0x9736db33, 0xffffd85effffdd97}, + {0x9736db34, 0xffffd85effffdd98}, + {0x9736db35, 0xffffd85effffdd99}, + {0x9736db36, 0xffffd85effffdd9a}, + {0x9736db37, 0xffffd85effffdd9b}, + {0x9736db38, 0xffffd85effffdd9c}, + {0x9736db39, 0xffffd85effffdd9d}, + {0x9736dc30, 0xffffd85effffdd9e}, + {0x9736dc31, 0xffffd85effffdd9f}, + {0x9736dc32, 0xffffd85effffdda0}, + {0x9736dc33, 0xffffd85effffdda1}, + {0x9736dc34, 0xffffd85effffdda2}, + {0x9736dc35, 0xffffd85effffdda3}, + {0x9736dc36, 0xffffd85effffdda4}, + {0x9736dc37, 0xffffd85effffdda5}, + {0x9736dc38, 0xffffd85effffdda6}, + {0x9736dc39, 0xffffd85effffdda7}, + {0x9736dd30, 0xffffd85effffdda8}, + {0x9736dd31, 0xffffd85effffdda9}, + {0x9736dd32, 0xffffd85effffddaa}, + {0x9736dd33, 0xffffd85effffddab}, + {0x9736dd34, 0xffffd85effffddac}, + {0x9736dd35, 0xffffd85effffddad}, + {0x9736dd36, 0xffffd85effffddae}, + {0x9736dd37, 0xffffd85effffddaf}, + {0x9736dd38, 0xffffd85effffddb0}, + {0x9736dd39, 0xffffd85effffddb1}, + {0x9736de30, 0xffffd85effffddb2}, + {0x9736de31, 0xffffd85effffddb3}, + {0x9736de32, 0xffffd85effffddb4}, + {0x9736de33, 0xffffd85effffddb5}, + {0x9736de34, 0xffffd85effffddb6}, + {0x9736de35, 0xffffd85effffddb7}, + {0x9736de36, 0xffffd85effffddb8}, + {0x9736de37, 0xffffd85effffddb9}, + {0x9736de38, 0xffffd85effffddba}, + {0x9736de39, 0xffffd85effffddbb}, + {0x9736df30, 0xffffd85effffddbc}, + {0x9736df31, 0xffffd85effffddbd}, + {0x9736df32, 0xffffd85effffddbe}, + {0x9736df33, 0xffffd85effffddbf}, + {0x9736df34, 0xffffd85effffddc0}, + {0x9736df35, 0xffffd85effffddc1}, + {0x9736df36, 0xffffd85effffddc2}, + {0x9736df37, 0xffffd85effffddc3}, + {0x9736df38, 0xffffd85effffddc4}, + {0x9736df39, 0xffffd85effffddc5}, + {0x9736e030, 0xffffd85effffddc6}, + {0x9736e031, 0xffffd85effffddc7}, + {0x9736e032, 0xffffd85effffddc8}, + {0x9736e033, 0xffffd85effffddc9}, + {0x9736e034, 0xffffd85effffddca}, + {0x9736e035, 0xffffd85effffddcb}, + {0x9736e036, 0xffffd85effffddcc}, + {0x9736e037, 0xffffd85effffddcd}, + {0x9736e038, 0xffffd85effffddce}, + {0x9736e039, 0xffffd85effffddcf}, + {0x9736e130, 0xffffd85effffddd0}, + {0x9736e131, 0xffffd85effffddd1}, + {0x9736e132, 0xffffd85effffddd2}, + {0x9736e133, 0xffffd85effffddd3}, + {0x9736e134, 0xffffd85effffddd4}, + {0x9736e135, 0xffffd85effffddd5}, + {0x9736e136, 0xffffd85effffddd6}, + {0x9736e137, 0xffffd85effffddd7}, + {0x9736e138, 0xffffd85effffddd8}, + {0x9736e139, 0xffffd85effffddd9}, + {0x9736e230, 0xffffd85effffddda}, + {0x9736e231, 0xffffd85effffdddb}, + {0x9736e232, 0xffffd85effffdddc}, + {0x9736e233, 0xffffd85effffdddd}, + {0x9736e234, 0xffffd85effffddde}, + {0x9736e235, 0xffffd85effffdddf}, + {0x9736e236, 0xffffd85effffdde0}, + {0x9736e237, 0xffffd85effffdde1}, + {0x9736e238, 0xffffd85effffdde2}, + {0x9736e239, 0xffffd85effffdde3}, + {0x9736e330, 0xffffd85effffdde4}, + {0x9736e331, 0xffffd85effffdde5}, + {0x9736e332, 0xffffd85effffdde6}, + {0x9736e333, 0xffffd85effffdde7}, + {0x9736e334, 0xffffd85effffdde8}, + {0x9736e335, 0xffffd85effffdde9}, + {0x9736e336, 0xffffd85effffddea}, + {0x9736e337, 0xffffd85effffddeb}, + {0x9736e338, 0xffffd85effffddec}, + {0x9736e339, 0xffffd85effffdded}, + {0x9736e430, 0xffffd85effffddee}, + {0x9736e431, 0xffffd85effffddef}, + {0x9736e432, 0xffffd85effffddf0}, + {0x9736e433, 0xffffd85effffddf1}, + {0x9736e434, 0xffffd85effffddf2}, + {0x9736e435, 0xffffd85effffddf3}, + {0x9736e436, 0xffffd85effffddf4}, + {0x9736e437, 0xffffd85effffddf5}, + {0x9736e438, 0xffffd85effffddf6}, + {0x9736e439, 0xffffd85effffddf7}, + {0x9736e530, 0xffffd85effffddf8}, + {0x9736e531, 0xffffd85effffddf9}, + {0x9736e532, 0xffffd85effffddfa}, + {0x9736e533, 0xffffd85effffddfb}, + {0x9736e534, 0xffffd85effffddfc}, + {0x9736e535, 0xffffd85effffddfd}, + {0x9736e536, 0xffffd85effffddfe}, + {0x9736e537, 0xffffd85effffddff}, + {0x9736e538, 0xffffd85effffde00}, + {0x9736e539, 0xffffd85effffde01}, + {0x9736e630, 0xffffd85effffde02}, + {0x9736e631, 0xffffd85effffde03}, + {0x9736e632, 0xffffd85effffde04}, + {0x9736e633, 0xffffd85effffde05}, + {0x9736e634, 0xffffd85effffde06}, + {0x9736e635, 0xffffd85effffde07}, + {0x9736e636, 0xffffd85effffde08}, + {0x9736e637, 0xffffd85effffde09}, + {0x9736e638, 0xffffd85effffde0a}, + {0x9736e639, 0xffffd85effffde0b}, + {0x9736e730, 0xffffd85effffde0c}, + {0x9736e731, 0xffffd85effffde0d}, + {0x9736e732, 0xffffd85effffde0e}, + {0x9736e733, 0xffffd85effffde0f}, + {0x9736e734, 0xffffd85effffde10}, + {0x9736e735, 0xffffd85effffde11}, + {0x9736e736, 0xffffd85effffde12}, + {0x9736e737, 0xffffd85effffde13}, + {0x9736e738, 0xffffd85effffde14}, + {0x9736e739, 0xffffd85effffde15}, + {0x9736e830, 0xffffd85effffde16}, + {0x9736e831, 0xffffd85effffde17}, + {0x9736e832, 0xffffd85effffde18}, + {0x9736e833, 0xffffd85effffde19}, + {0x9736e834, 0xffffd85effffde1a}, + {0x9736e835, 0xffffd85effffde1b}, + {0x9736e836, 0xffffd85effffde1c}, + {0x9736e837, 0xffffd85effffde1d}, + {0x9736e838, 0xffffd85effffde1e}, + {0x9736e839, 0xffffd85effffde1f}, + {0x9736e930, 0xffffd85effffde20}, + {0x9736e931, 0xffffd85effffde21}, + {0x9736e932, 0xffffd85effffde22}, + {0x9736e933, 0xffffd85effffde23}, + {0x9736e934, 0xffffd85effffde24}, + {0x9736e935, 0xffffd85effffde25}, + {0x9736e936, 0xffffd85effffde26}, + {0x9736e937, 0xffffd85effffde27}, + {0x9736e938, 0xffffd85effffde28}, + {0x9736e939, 0xffffd85effffde29}, + {0x9736ea30, 0xffffd85effffde2a}, + {0x9736ea31, 0xffffd85effffde2b}, + {0x9736ea32, 0xffffd85effffde2c}, + {0x9736ea33, 0xffffd85effffde2d}, + {0x9736ea34, 0xffffd85effffde2e}, + {0x9736ea35, 0xffffd85effffde2f}, + {0x9736ea36, 0xffffd85effffde30}, + {0x9736ea37, 0xffffd85effffde31}, + {0x9736ea38, 0xffffd85effffde32}, + {0x9736ea39, 0xffffd85effffde33}, + {0x9736eb30, 0xffffd85effffde34}, + {0x9736eb31, 0xffffd85effffde35}, + {0x9736eb32, 0xffffd85effffde36}, + {0x9736eb33, 0xffffd85effffde37}, + {0x9736eb34, 0xffffd85effffde38}, + {0x9736eb35, 0xffffd85effffde39}, + {0x9736eb36, 0xffffd85effffde3a}, + {0x9736eb37, 0xffffd85effffde3b}, + {0x9736eb38, 0xffffd85effffde3c}, + {0x9736eb39, 0xffffd85effffde3d}, + {0x9736ec30, 0xffffd85effffde3e}, + {0x9736ec31, 0xffffd85effffde3f}, + {0x9736ec32, 0xffffd85effffde40}, + {0x9736ec33, 0xffffd85effffde41}, + {0x9736ec34, 0xffffd85effffde42}, + {0x9736ec35, 0xffffd85effffde43}, + {0x9736ec36, 0xffffd85effffde44}, + {0x9736ec37, 0xffffd85effffde45}, + {0x9736ec38, 0xffffd85effffde46}, + {0x9736ec39, 0xffffd85effffde47}, + {0x9736ed30, 0xffffd85effffde48}, + {0x9736ed31, 0xffffd85effffde49}, + {0x9736ed32, 0xffffd85effffde4a}, + {0x9736ed33, 0xffffd85effffde4b}, + {0x9736ed34, 0xffffd85effffde4c}, + {0x9736ed35, 0xffffd85effffde4d}, + {0x9736ed36, 0xffffd85effffde4e}, + {0x9736ed37, 0xffffd85effffde4f}, + {0x9736ed38, 0xffffd85effffde50}, + {0x9736ed39, 0xffffd85effffde51}, + {0x9736ee30, 0xffffd85effffde52}, + {0x9736ee31, 0xffffd85effffde53}, + {0x9736ee32, 0xffffd85effffde54}, + {0x9736ee33, 0xffffd85effffde55}, + {0x9736ee34, 0xffffd85effffde56}, + {0x9736ee35, 0xffffd85effffde57}, + {0x9736ee36, 0xffffd85effffde58}, + {0x9736ee37, 0xffffd85effffde59}, + {0x9736ee38, 0xffffd85effffde5a}, + {0x9736ee39, 0xffffd85effffde5b}, + {0x9736ef30, 0xffffd85effffde5c}, + {0x9736ef31, 0xffffd85effffde5d}, + {0x9736ef32, 0xffffd85effffde5e}, + {0x9736ef33, 0xffffd85effffde5f}, + {0x9736ef34, 0xffffd85effffde60}, + {0x9736ef35, 0xffffd85effffde61}, + {0x9736ef36, 0xffffd85effffde62}, + {0x9736ef37, 0xffffd85effffde63}, + {0x9736ef38, 0xffffd85effffde64}, + {0x9736ef39, 0xffffd85effffde65}, + {0x9736f030, 0xffffd85effffde66}, + {0x9736f031, 0xffffd85effffde67}, + {0x9736f032, 0xffffd85effffde68}, + {0x9736f033, 0xffffd85effffde69}, + {0x9736f034, 0xffffd85effffde6a}, + {0x9736f035, 0xffffd85effffde6b}, + {0x9736f036, 0xffffd85effffde6c}, + {0x9736f037, 0xffffd85effffde6d}, + {0x9736f038, 0xffffd85effffde6e}, + {0x9736f039, 0xffffd85effffde6f}, + {0x9736f130, 0xffffd85effffde70}, + {0x9736f131, 0xffffd85effffde71}, + {0x9736f132, 0xffffd85effffde72}, + {0x9736f133, 0xffffd85effffde73}, + {0x9736f134, 0xffffd85effffde74}, + {0x9736f135, 0xffffd85effffde75}, + {0x9736f136, 0xffffd85effffde76}, + {0x9736f137, 0xffffd85effffde77}, + {0x9736f138, 0xffffd85effffde78}, + {0x9736f139, 0xffffd85effffde79}, + {0x9736f230, 0xffffd85effffde7a}, + {0x9736f231, 0xffffd85effffde7b}, + {0x9736f232, 0xffffd85effffde7c}, + {0x9736f233, 0xffffd85effffde7d}, + {0x9736f234, 0xffffd85effffde7e}, + {0x9736f235, 0xffffd85effffde7f}, + {0x9736f236, 0xffffd85effffde80}, + {0x9736f237, 0xffffd85effffde81}, + {0x9736f238, 0xffffd85effffde82}, + {0x9736f239, 0xffffd85effffde83}, + {0x9736f330, 0xffffd85effffde84}, + {0x9736f331, 0xffffd85effffde85}, + {0x9736f332, 0xffffd85effffde86}, + {0x9736f333, 0xffffd85effffde87}, + {0x9736f334, 0xffffd85effffde88}, + {0x9736f335, 0xffffd85effffde89}, + {0x9736f336, 0xffffd85effffde8a}, + {0x9736f337, 0xffffd85effffde8b}, + {0x9736f338, 0xffffd85effffde8c}, + {0x9736f339, 0xffffd85effffde8d}, + {0x9736f430, 0xffffd85effffde8e}, + {0x9736f431, 0xffffd85effffde8f}, + {0x9736f432, 0xffffd85effffde90}, + {0x9736f433, 0xffffd85effffde91}, + {0x9736f434, 0xffffd85effffde92}, + {0x9736f435, 0xffffd85effffde93}, + {0x9736f436, 0xffffd85effffde94}, + {0x9736f437, 0xffffd85effffde95}, + {0x9736f438, 0xffffd85effffde96}, + {0x9736f439, 0xffffd85effffde97}, + {0x9736f530, 0xffffd85effffde98}, + {0x9736f531, 0xffffd85effffde99}, + {0x9736f532, 0xffffd85effffde9a}, + {0x9736f533, 0xffffd85effffde9b}, + {0x9736f534, 0xffffd85effffde9c}, + {0x9736f535, 0xffffd85effffde9d}, + {0x9736f536, 0xffffd85effffde9e}, + {0x9736f537, 0xffffd85effffde9f}, + {0x9736f538, 0xffffd85effffdea0}, + {0x9736f539, 0xffffd85effffdea1}, + {0x9736f630, 0xffffd85effffdea2}, + {0x9736f631, 0xffffd85effffdea3}, + {0x9736f632, 0xffffd85effffdea4}, + {0x9736f633, 0xffffd85effffdea5}, + {0x9736f634, 0xffffd85effffdea6}, + {0x9736f635, 0xffffd85effffdea7}, + {0x9736f636, 0xffffd85effffdea8}, + {0x9736f637, 0xffffd85effffdea9}, + {0x9736f638, 0xffffd85effffdeaa}, + {0x9736f639, 0xffffd85effffdeab}, + {0x9736f730, 0xffffd85effffdeac}, + {0x9736f731, 0xffffd85effffdead}, + {0x9736f732, 0xffffd85effffdeae}, + {0x9736f733, 0xffffd85effffdeaf}, + {0x9736f734, 0xffffd85effffdeb0}, + {0x9736f735, 0xffffd85effffdeb1}, + {0x9736f736, 0xffffd85effffdeb2}, + {0x9736f737, 0xffffd85effffdeb3}, + {0x9736f738, 0xffffd85effffdeb4}, + {0x9736f739, 0xffffd85effffdeb5}, + {0x9736f830, 0xffffd85effffdeb6}, + {0x9736f831, 0xffffd85effffdeb7}, + {0x9736f832, 0xffffd85effffdeb8}, + {0x9736f833, 0xffffd85effffdeb9}, + {0x9736f834, 0xffffd85effffdeba}, + {0x9736f835, 0xffffd85effffdebb}, + {0x9736f836, 0xffffd85effffdebc}, + {0x9736f837, 0xffffd85effffdebd}, + {0x9736f838, 0xffffd85effffdebe}, + {0x9736f839, 0xffffd85effffdebf}, + {0x9736f930, 0xffffd85effffdec0}, + {0x9736f931, 0xffffd85effffdec1}, + {0x9736f932, 0xffffd85effffdec2}, + {0x9736f933, 0xffffd85effffdec3}, + {0x9736f934, 0xffffd85effffdec4}, + {0x9736f935, 0xffffd85effffdec5}, + {0x9736f936, 0xffffd85effffdec6}, + {0x9736f937, 0xffffd85effffdec7}, + {0x9736f938, 0xffffd85effffdec8}, + {0x9736f939, 0xffffd85effffdec9}, + {0x9736fa30, 0xffffd85effffdeca}, + {0x9736fa31, 0xffffd85effffdecb}, + {0x9736fa32, 0xffffd85effffdecc}, + {0x9736fa33, 0xffffd85effffdecd}, + {0x9736fa34, 0xffffd85effffdece}, + {0x9736fa35, 0xffffd85effffdecf}, + {0x9736fa36, 0xffffd85effffded0}, + {0x9736fa37, 0xffffd85effffded1}, + {0x9736fa38, 0xffffd85effffded2}, + {0x9736fa39, 0xffffd85effffded3}, + {0x9736fb30, 0xffffd85effffded4}, + {0x9736fb31, 0xffffd85effffded5}, + {0x9736fb32, 0xffffd85effffded6}, + {0x9736fb33, 0xffffd85effffded7}, + {0x9736fb34, 0xffffd85effffded8}, + {0x9736fb35, 0xffffd85effffded9}, + {0x9736fb36, 0xffffd85effffdeda}, + {0x9736fb37, 0xffffd85effffdedb}, + {0x9736fb38, 0xffffd85effffdedc}, + {0x9736fb39, 0xffffd85effffdedd}, + {0x9736fc30, 0xffffd85effffdede}, + {0x9736fc31, 0xffffd85effffdedf}, + {0x9736fc32, 0xffffd85effffdee0}, + {0x9736fc33, 0xffffd85effffdee1}, + {0x9736fc34, 0xffffd85effffdee2}, + {0x9736fc35, 0xffffd85effffdee3}, + {0x9736fc36, 0xffffd85effffdee4}, + {0x9736fc37, 0xffffd85effffdee5}, + {0x9736fc38, 0xffffd85effffdee6}, + {0x9736fc39, 0xffffd85effffdee7}, + {0x9736fd30, 0xffffd85effffdee8}, + {0x9736fd31, 0xffffd85effffdee9}, + {0x9736fd32, 0xffffd85effffdeea}, + {0x9736fd33, 0xffffd85effffdeeb}, + {0x9736fd34, 0xffffd85effffdeec}, + {0x9736fd35, 0xffffd85effffdeed}, + {0x9736fd36, 0xffffd85effffdeee}, + {0x9736fd37, 0xffffd85effffdeef}, + {0x9736fd38, 0xffffd85effffdef0}, + {0x9736fd39, 0xffffd85effffdef1}, + {0x9736fe30, 0xffffd85effffdef2}, + {0x9736fe31, 0xffffd85effffdef3}, + {0x9736fe32, 0xffffd85effffdef4}, + {0x9736fe33, 0xffffd85effffdef5}, + {0x9736fe34, 0xffffd85effffdef6}, + {0x9736fe35, 0xffffd85effffdef7}, + {0x9736fe36, 0xffffd85effffdef8}, + {0x9736fe37, 0xffffd85effffdef9}, + {0x9736fe38, 0xffffd85effffdefa}, + {0x9736fe39, 0xffffd85effffdefb}, + {0x97378130, 0xffffd85effffdefc}, + {0x97378131, 0xffffd85effffdefd}, + {0x97378132, 0xffffd85effffdefe}, + {0x97378133, 0xffffd85effffdeff}, + {0x97378134, 0xffffd85effffdf00}, + {0x97378135, 0xffffd85effffdf01}, + {0x97378136, 0xffffd85effffdf02}, + {0x97378137, 0xffffd85effffdf03}, + {0x97378138, 0xffffd85effffdf04}, + {0x97378139, 0xffffd85effffdf05}, + {0x97378230, 0xffffd85effffdf06}, + {0x97378231, 0xffffd85effffdf07}, + {0x97378232, 0xffffd85effffdf08}, + {0x97378233, 0xffffd85effffdf09}, + {0x97378234, 0xffffd85effffdf0a}, + {0x97378235, 0xffffd85effffdf0b}, + {0x97378236, 0xffffd85effffdf0c}, + {0x97378237, 0xffffd85effffdf0d}, + {0x97378238, 0xffffd85effffdf0e}, + {0x97378239, 0xffffd85effffdf0f}, + {0x97378330, 0xffffd85effffdf10}, + {0x97378331, 0xffffd85effffdf11}, + {0x97378332, 0xffffd85effffdf12}, + {0x97378333, 0xffffd85effffdf13}, + {0x97378334, 0xffffd85effffdf14}, + {0x97378335, 0xffffd85effffdf15}, + {0x97378336, 0xffffd85effffdf16}, + {0x97378337, 0xffffd85effffdf17}, + {0x97378338, 0xffffd85effffdf18}, + {0x97378339, 0xffffd85effffdf19}, + {0x97378430, 0xffffd85effffdf1a}, + {0x97378431, 0xffffd85effffdf1b}, + {0x97378432, 0xffffd85effffdf1c}, + {0x97378433, 0xffffd85effffdf1d}, + {0x97378434, 0xffffd85effffdf1e}, + {0x97378435, 0xffffd85effffdf1f}, + {0x97378436, 0xffffd85effffdf20}, + {0x97378437, 0xffffd85effffdf21}, + {0x97378438, 0xffffd85effffdf22}, + {0x97378439, 0xffffd85effffdf23}, + {0x97378530, 0xffffd85effffdf24}, + {0x97378531, 0xffffd85effffdf25}, + {0x97378532, 0xffffd85effffdf26}, + {0x97378533, 0xffffd85effffdf27}, + {0x97378534, 0xffffd85effffdf28}, + {0x97378535, 0xffffd85effffdf29}, + {0x97378536, 0xffffd85effffdf2a}, + {0x97378537, 0xffffd85effffdf2b}, + {0x97378538, 0xffffd85effffdf2c}, + {0x97378539, 0xffffd85effffdf2d}, + {0x97378630, 0xffffd85effffdf2e}, + {0x97378631, 0xffffd85effffdf2f}, + {0x97378632, 0xffffd85effffdf30}, + {0x97378633, 0xffffd85effffdf31}, + {0x97378634, 0xffffd85effffdf32}, + {0x97378635, 0xffffd85effffdf33}, + {0x97378636, 0xffffd85effffdf34}, + {0x97378637, 0xffffd85effffdf35}, + {0x97378638, 0xffffd85effffdf36}, + {0x97378639, 0xffffd85effffdf37}, + {0x97378730, 0xffffd85effffdf38}, + {0x97378731, 0xffffd85effffdf39}, + {0x97378732, 0xffffd85effffdf3a}, + {0x97378733, 0xffffd85effffdf3b}, + {0x97378734, 0xffffd85effffdf3c}, + {0x97378735, 0xffffd85effffdf3d}, + {0x97378736, 0xffffd85effffdf3e}, + {0x97378737, 0xffffd85effffdf3f}, + {0x97378738, 0xffffd85effffdf40}, + {0x97378739, 0xffffd85effffdf41}, + {0x97378830, 0xffffd85effffdf42}, + {0x97378831, 0xffffd85effffdf43}, + {0x97378832, 0xffffd85effffdf44}, + {0x97378833, 0xffffd85effffdf45}, + {0x97378834, 0xffffd85effffdf46}, + {0x97378835, 0xffffd85effffdf47}, + {0x97378836, 0xffffd85effffdf48}, + {0x97378837, 0xffffd85effffdf49}, + {0x97378838, 0xffffd85effffdf4a}, + {0x97378839, 0xffffd85effffdf4b}, + {0x97378930, 0xffffd85effffdf4c}, + {0x97378931, 0xffffd85effffdf4d}, + {0x97378932, 0xffffd85effffdf4e}, + {0x97378933, 0xffffd85effffdf4f}, + {0x97378934, 0xffffd85effffdf50}, + {0x97378935, 0xffffd85effffdf51}, + {0x97378936, 0xffffd85effffdf52}, + {0x97378937, 0xffffd85effffdf53}, + {0x97378938, 0xffffd85effffdf54}, + {0x97378939, 0xffffd85effffdf55}, + {0x97378a30, 0xffffd85effffdf56}, + {0x97378a31, 0xffffd85effffdf57}, + {0x97378a32, 0xffffd85effffdf58}, + {0x97378a33, 0xffffd85effffdf59}, + {0x97378a34, 0xffffd85effffdf5a}, + {0x97378a35, 0xffffd85effffdf5b}, + {0x97378a36, 0xffffd85effffdf5c}, + {0x97378a37, 0xffffd85effffdf5d}, + {0x97378a38, 0xffffd85effffdf5e}, + {0x97378a39, 0xffffd85effffdf5f}, + {0x97378b30, 0xffffd85effffdf60}, + {0x97378b31, 0xffffd85effffdf61}, + {0x97378b32, 0xffffd85effffdf62}, + {0x97378b33, 0xffffd85effffdf63}, + {0x97378b34, 0xffffd85effffdf64}, + {0x97378b35, 0xffffd85effffdf65}, + {0x97378b36, 0xffffd85effffdf66}, + {0x97378b37, 0xffffd85effffdf67}, + {0x97378b38, 0xffffd85effffdf68}, + {0x97378b39, 0xffffd85effffdf69}, + {0x97378c30, 0xffffd85effffdf6a}, + {0x97378c31, 0xffffd85effffdf6b}, + {0x97378c32, 0xffffd85effffdf6c}, + {0x97378c33, 0xffffd85effffdf6d}, + {0x97378c34, 0xffffd85effffdf6e}, + {0x97378c35, 0xffffd85effffdf6f}, + {0x97378c36, 0xffffd85effffdf70}, + {0x97378c37, 0xffffd85effffdf71}, + {0x97378c38, 0xffffd85effffdf72}, + {0x97378c39, 0xffffd85effffdf73}, + {0x97378d30, 0xffffd85effffdf74}, + {0x97378d31, 0xffffd85effffdf75}, + {0x97378d32, 0xffffd85effffdf76}, + {0x97378d33, 0xffffd85effffdf77}, + {0x97378d34, 0xffffd85effffdf78}, + {0x97378d35, 0xffffd85effffdf79}, + {0x97378d36, 0xffffd85effffdf7a}, + {0x97378d37, 0xffffd85effffdf7b}, + {0x97378d38, 0xffffd85effffdf7c}, + {0x97378d39, 0xffffd85effffdf7d}, + {0x97378e30, 0xffffd85effffdf7e}, + {0x97378e31, 0xffffd85effffdf7f}, + {0x97378e32, 0xffffd85effffdf80}, + {0x97378e33, 0xffffd85effffdf81}, + {0x97378e34, 0xffffd85effffdf82}, + {0x97378e35, 0xffffd85effffdf83}, + {0x97378e36, 0xffffd85effffdf84}, + {0x97378e37, 0xffffd85effffdf85}, + {0x97378e38, 0xffffd85effffdf86}, + {0x97378e39, 0xffffd85effffdf87}, + {0x97378f30, 0xffffd85effffdf88}, + {0x97378f31, 0xffffd85effffdf89}, + {0x97378f32, 0xffffd85effffdf8a}, + {0x97378f33, 0xffffd85effffdf8b}, + {0x97378f34, 0xffffd85effffdf8c}, + {0x97378f35, 0xffffd85effffdf8d}, + {0x97378f36, 0xffffd85effffdf8e}, + {0x97378f37, 0xffffd85effffdf8f}, + {0x97378f38, 0xffffd85effffdf90}, + {0x97378f39, 0xffffd85effffdf91}, + {0x97379030, 0xffffd85effffdf92}, + {0x97379031, 0xffffd85effffdf93}, + {0x97379032, 0xffffd85effffdf94}, + {0x97379033, 0xffffd85effffdf95}, + {0x97379034, 0xffffd85effffdf96}, + {0x97379035, 0xffffd85effffdf97}, + {0x97379036, 0xffffd85effffdf98}, + {0x97379037, 0xffffd85effffdf99}, + {0x97379038, 0xffffd85effffdf9a}, + {0x97379039, 0xffffd85effffdf9b}, + {0x97379130, 0xffffd85effffdf9c}, + {0x97379131, 0xffffd85effffdf9d}, + {0x97379132, 0xffffd85effffdf9e}, + {0x97379133, 0xffffd85effffdf9f}, + {0x97379134, 0xffffd85effffdfa0}, + {0x97379135, 0xffffd85effffdfa1}, + {0x97379136, 0xffffd85effffdfa2}, + {0x97379137, 0xffffd85effffdfa3}, + {0x97379138, 0xffffd85effffdfa4}, + {0x97379139, 0xffffd85effffdfa5}, + {0x97379230, 0xffffd85effffdfa6}, + {0x97379231, 0xffffd85effffdfa7}, + {0x97379232, 0xffffd85effffdfa8}, + {0x97379233, 0xffffd85effffdfa9}, + {0x97379234, 0xffffd85effffdfaa}, + {0x97379235, 0xffffd85effffdfab}, + {0x97379236, 0xffffd85effffdfac}, + {0x97379237, 0xffffd85effffdfad}, + {0x97379238, 0xffffd85effffdfae}, + {0x97379239, 0xffffd85effffdfaf}, + {0x97379330, 0xffffd85effffdfb0}, + {0x97379331, 0xffffd85effffdfb1}, + {0x97379332, 0xffffd85effffdfb2}, + {0x97379333, 0xffffd85effffdfb3}, + {0x97379334, 0xffffd85effffdfb4}, + {0x97379335, 0xffffd85effffdfb5}, + {0x97379336, 0xffffd85effffdfb6}, + {0x97379337, 0xffffd85effffdfb7}, + {0x97379338, 0xffffd85effffdfb8}, + {0x97379339, 0xffffd85effffdfb9}, + {0x97379430, 0xffffd85effffdfba}, + {0x97379431, 0xffffd85effffdfbb}, + {0x97379432, 0xffffd85effffdfbc}, + {0x97379433, 0xffffd85effffdfbd}, + {0x97379434, 0xffffd85effffdfbe}, + {0x97379435, 0xffffd85effffdfbf}, + {0x97379436, 0xffffd85effffdfc0}, + {0x97379437, 0xffffd85effffdfc1}, + {0x97379438, 0xffffd85effffdfc2}, + {0x97379439, 0xffffd85effffdfc3}, + {0x97379530, 0xffffd85effffdfc4}, + {0x97379531, 0xffffd85effffdfc5}, + {0x97379532, 0xffffd85effffdfc6}, + {0x97379533, 0xffffd85effffdfc7}, + {0x97379534, 0xffffd85effffdfc8}, + {0x97379535, 0xffffd85effffdfc9}, + {0x97379536, 0xffffd85effffdfca}, + {0x97379537, 0xffffd85effffdfcb}, + {0x97379538, 0xffffd85effffdfcc}, + {0x97379539, 0xffffd85effffdfcd}, + {0x97379630, 0xffffd85effffdfce}, + {0x97379631, 0xffffd85effffdfcf}, + {0x97379632, 0xffffd85effffdfd0}, + {0x97379633, 0xffffd85effffdfd1}, + {0x97379634, 0xffffd85effffdfd2}, + {0x97379635, 0xffffd85effffdfd3}, + {0x97379636, 0xffffd85effffdfd4}, + {0x97379637, 0xffffd85effffdfd5}, + {0x97379638, 0xffffd85effffdfd6}, + {0x97379639, 0xffffd85effffdfd7}, + {0x97379730, 0xffffd85effffdfd8}, + {0x97379731, 0xffffd85effffdfd9}, + {0x97379732, 0xffffd85effffdfda}, + {0x97379733, 0xffffd85effffdfdb}, + {0x97379734, 0xffffd85effffdfdc}, + {0x97379735, 0xffffd85effffdfdd}, + {0x97379736, 0xffffd85effffdfde}, + {0x97379737, 0xffffd85effffdfdf}, + {0x97379738, 0xffffd85effffdfe0}, + {0x97379739, 0xffffd85effffdfe1}, + {0x97379830, 0xffffd85effffdfe2}, + {0x97379831, 0xffffd85effffdfe3}, + {0x97379832, 0xffffd85effffdfe4}, + {0x97379833, 0xffffd85effffdfe5}, + {0x97379834, 0xffffd85effffdfe6}, + {0x97379835, 0xffffd85effffdfe7}, + {0x97379836, 0xffffd85effffdfe8}, + {0x97379837, 0xffffd85effffdfe9}, + {0x97379838, 0xffffd85effffdfea}, + {0x97379839, 0xffffd85effffdfeb}, + {0x97379930, 0xffffd85effffdfec}, + {0x97379931, 0xffffd85effffdfed}, + {0x97379932, 0xffffd85effffdfee}, + {0x97379933, 0xffffd85effffdfef}, + {0x97379934, 0xffffd85effffdff0}, + {0x97379935, 0xffffd85effffdff1}, + {0x97379936, 0xffffd85effffdff2}, + {0x97379937, 0xffffd85effffdff3}, + {0x97379938, 0xffffd85effffdff4}, + {0x97379939, 0xffffd85effffdff5}, + {0x97379a30, 0xffffd85effffdff6}, + {0x97379a31, 0xffffd85effffdff7}, + {0x97379a32, 0xffffd85effffdff8}, + {0x97379a33, 0xffffd85effffdff9}, + {0x97379a34, 0xffffd85effffdffa}, + {0x97379a35, 0xffffd85effffdffb}, + {0x97379a36, 0xffffd85effffdffc}, + {0x97379a37, 0xffffd85effffdffd}, + {0x97379a38, 0xffffd85effffdffe}, + {0x97379a39, 0xffffd85effffdfff}, + {0x97379b30, 0xffffd85fffffdc00}, + {0x97379b31, 0xffffd85fffffdc01}, + {0x97379b32, 0xffffd85fffffdc02}, + {0x97379b33, 0xffffd85fffffdc03}, + {0x97379b34, 0xffffd85fffffdc04}, + {0x97379b35, 0xffffd85fffffdc05}, + {0x97379b36, 0xffffd85fffffdc06}, + {0x97379b37, 0xffffd85fffffdc07}, + {0x97379b38, 0xffffd85fffffdc08}, + {0x97379b39, 0xffffd85fffffdc09}, + {0x97379c30, 0xffffd85fffffdc0a}, + {0x97379c31, 0xffffd85fffffdc0b}, + {0x97379c32, 0xffffd85fffffdc0c}, + {0x97379c33, 0xffffd85fffffdc0d}, + {0x97379c34, 0xffffd85fffffdc0e}, + {0x97379c35, 0xffffd85fffffdc0f}, + {0x97379c36, 0xffffd85fffffdc10}, + {0x97379c37, 0xffffd85fffffdc11}, + {0x97379c38, 0xffffd85fffffdc12}, + {0x97379c39, 0xffffd85fffffdc13}, + {0x97379d30, 0xffffd85fffffdc14}, + {0x97379d31, 0xffffd85fffffdc15}, + {0x97379d32, 0xffffd85fffffdc16}, + {0x97379d33, 0xffffd85fffffdc17}, + {0x97379d34, 0xffffd85fffffdc18}, + {0x97379d35, 0xffffd85fffffdc19}, + {0x97379d36, 0xffffd85fffffdc1a}, + {0x97379d37, 0xffffd85fffffdc1b}, + {0x97379d38, 0xffffd85fffffdc1c}, + {0x97379d39, 0xffffd85fffffdc1d}, + {0x97379e30, 0xffffd85fffffdc1e}, + {0x97379e31, 0xffffd85fffffdc1f}, + {0x97379e32, 0xffffd85fffffdc20}, + {0x97379e33, 0xffffd85fffffdc21}, + {0x97379e34, 0xffffd85fffffdc22}, + {0x97379e35, 0xffffd85fffffdc23}, + {0x97379e36, 0xffffd85fffffdc24}, + {0x97379e37, 0xffffd85fffffdc25}, + {0x97379e38, 0xffffd85fffffdc26}, + {0x97379e39, 0xffffd85fffffdc27}, + {0x97379f30, 0xffffd85fffffdc28}, + {0x97379f31, 0xffffd85fffffdc29}, + {0x97379f32, 0xffffd85fffffdc2a}, + {0x97379f33, 0xffffd85fffffdc2b}, + {0x97379f34, 0xffffd85fffffdc2c}, + {0x97379f35, 0xffffd85fffffdc2d}, + {0x97379f36, 0xffffd85fffffdc2e}, + {0x97379f37, 0xffffd85fffffdc2f}, + {0x97379f38, 0xffffd85fffffdc30}, + {0x97379f39, 0xffffd85fffffdc31}, + {0x9737a030, 0xffffd85fffffdc32}, + {0x9737a031, 0xffffd85fffffdc33}, + {0x9737a032, 0xffffd85fffffdc34}, + {0x9737a033, 0xffffd85fffffdc35}, + {0x9737a034, 0xffffd85fffffdc36}, + {0x9737a035, 0xffffd85fffffdc37}, + {0x9737a036, 0xffffd85fffffdc38}, + {0x9737a037, 0xffffd85fffffdc39}, + {0x9737a038, 0xffffd85fffffdc3a}, + {0x9737a039, 0xffffd85fffffdc3b}, + {0x9737a130, 0xffffd85fffffdc3c}, + {0x9737a131, 0xffffd85fffffdc3d}, + {0x9737a132, 0xffffd85fffffdc3e}, + {0x9737a133, 0xffffd85fffffdc3f}, + {0x9737a134, 0xffffd85fffffdc40}, + {0x9737a135, 0xffffd85fffffdc41}, + {0x9737a136, 0xffffd85fffffdc42}, + {0x9737a137, 0xffffd85fffffdc43}, + {0x9737a138, 0xffffd85fffffdc44}, + {0x9737a139, 0xffffd85fffffdc45}, + {0x9737a230, 0xffffd85fffffdc46}, + {0x9737a231, 0xffffd85fffffdc47}, + {0x9737a232, 0xffffd85fffffdc48}, + {0x9737a233, 0xffffd85fffffdc49}, + {0x9737a234, 0xffffd85fffffdc4a}, + {0x9737a235, 0xffffd85fffffdc4b}, + {0x9737a236, 0xffffd85fffffdc4c}, + {0x9737a237, 0xffffd85fffffdc4d}, + {0x9737a238, 0xffffd85fffffdc4e}, + {0x9737a239, 0xffffd85fffffdc4f}, + {0x9737a330, 0xffffd85fffffdc50}, + {0x9737a331, 0xffffd85fffffdc51}, + {0x9737a332, 0xffffd85fffffdc52}, + {0x9737a333, 0xffffd85fffffdc53}, + {0x9737a334, 0xffffd85fffffdc54}, + {0x9737a335, 0xffffd85fffffdc55}, + {0x9737a336, 0xffffd85fffffdc56}, + {0x9737a337, 0xffffd85fffffdc57}, + {0x9737a338, 0xffffd85fffffdc58}, + {0x9737a339, 0xffffd85fffffdc59}, + {0x9737a430, 0xffffd85fffffdc5a}, + {0x9737a431, 0xffffd85fffffdc5b}, + {0x9737a432, 0xffffd85fffffdc5c}, + {0x9737a433, 0xffffd85fffffdc5d}, + {0x9737a434, 0xffffd85fffffdc5e}, + {0x9737a435, 0xffffd85fffffdc5f}, + {0x9737a436, 0xffffd85fffffdc60}, + {0x9737a437, 0xffffd85fffffdc61}, + {0x9737a438, 0xffffd85fffffdc62}, + {0x9737a439, 0xffffd85fffffdc63}, + {0x9737a530, 0xffffd85fffffdc64}, + {0x9737a531, 0xffffd85fffffdc65}, + {0x9737a532, 0xffffd85fffffdc66}, + {0x9737a533, 0xffffd85fffffdc67}, + {0x9737a534, 0xffffd85fffffdc68}, + {0x9737a535, 0xffffd85fffffdc69}, + {0x9737a536, 0xffffd85fffffdc6a}, + {0x9737a537, 0xffffd85fffffdc6b}, + {0x9737a538, 0xffffd85fffffdc6c}, + {0x9737a539, 0xffffd85fffffdc6d}, + {0x9737a630, 0xffffd85fffffdc6e}, + {0x9737a631, 0xffffd85fffffdc6f}, + {0x9737a632, 0xffffd85fffffdc70}, + {0x9737a633, 0xffffd85fffffdc71}, + {0x9737a634, 0xffffd85fffffdc72}, + {0x9737a635, 0xffffd85fffffdc73}, + {0x9737a636, 0xffffd85fffffdc74}, + {0x9737a637, 0xffffd85fffffdc75}, + {0x9737a638, 0xffffd85fffffdc76}, + {0x9737a639, 0xffffd85fffffdc77}, + {0x9737a730, 0xffffd85fffffdc78}, + {0x9737a731, 0xffffd85fffffdc79}, + {0x9737a732, 0xffffd85fffffdc7a}, + {0x9737a733, 0xffffd85fffffdc7b}, + {0x9737a734, 0xffffd85fffffdc7c}, + {0x9737a735, 0xffffd85fffffdc7d}, + {0x9737a736, 0xffffd85fffffdc7e}, + {0x9737a737, 0xffffd85fffffdc7f}, + {0x9737a738, 0xffffd85fffffdc80}, + {0x9737a739, 0xffffd85fffffdc81}, + {0x9737a830, 0xffffd85fffffdc82}, + {0x9737a831, 0xffffd85fffffdc83}, + {0x9737a832, 0xffffd85fffffdc84}, + {0x9737a833, 0xffffd85fffffdc85}, + {0x9737a834, 0xffffd85fffffdc86}, + {0x9737a835, 0xffffd85fffffdc87}, + {0x9737a836, 0xffffd85fffffdc88}, + {0x9737a837, 0xffffd85fffffdc89}, + {0x9737a838, 0xffffd85fffffdc8a}, + {0x9737a839, 0xffffd85fffffdc8b}, + {0x9737a930, 0xffffd85fffffdc8c}, + {0x9737a931, 0xffffd85fffffdc8d}, + {0x9737a932, 0xffffd85fffffdc8e}, + {0x9737a933, 0xffffd85fffffdc8f}, + {0x9737a934, 0xffffd85fffffdc90}, + {0x9737a935, 0xffffd85fffffdc91}, + {0x9737a936, 0xffffd85fffffdc92}, + {0x9737a937, 0xffffd85fffffdc93}, + {0x9737a938, 0xffffd85fffffdc94}, + {0x9737a939, 0xffffd85fffffdc95}, + {0x9737aa30, 0xffffd85fffffdc96}, + {0x9737aa31, 0xffffd85fffffdc97}, + {0x9737aa32, 0xffffd85fffffdc98}, + {0x9737aa33, 0xffffd85fffffdc99}, + {0x9737aa34, 0xffffd85fffffdc9a}, + {0x9737aa35, 0xffffd85fffffdc9b}, + {0x9737aa36, 0xffffd85fffffdc9c}, + {0x9737aa37, 0xffffd85fffffdc9d}, + {0x9737aa38, 0xffffd85fffffdc9e}, + {0x9737aa39, 0xffffd85fffffdc9f}, + {0x9737ab30, 0xffffd85fffffdca0}, + {0x9737ab31, 0xffffd85fffffdca1}, + {0x9737ab32, 0xffffd85fffffdca2}, + {0x9737ab33, 0xffffd85fffffdca3}, + {0x9737ab34, 0xffffd85fffffdca4}, + {0x9737ab35, 0xffffd85fffffdca5}, + {0x9737ab36, 0xffffd85fffffdca6}, + {0x9737ab37, 0xffffd85fffffdca7}, + {0x9737ab38, 0xffffd85fffffdca8}, + {0x9737ab39, 0xffffd85fffffdca9}, + {0x9737ac30, 0xffffd85fffffdcaa}, + {0x9737ac31, 0xffffd85fffffdcab}, + {0x9737ac32, 0xffffd85fffffdcac}, + {0x9737ac33, 0xffffd85fffffdcad}, + {0x9737ac34, 0xffffd85fffffdcae}, + {0x9737ac35, 0xffffd85fffffdcaf}, + {0x9737ac36, 0xffffd85fffffdcb0}, + {0x9737ac37, 0xffffd85fffffdcb1}, + {0x9737ac38, 0xffffd85fffffdcb2}, + {0x9737ac39, 0xffffd85fffffdcb3}, + {0x9737ad30, 0xffffd85fffffdcb4}, + {0x9737ad31, 0xffffd85fffffdcb5}, + {0x9737ad32, 0xffffd85fffffdcb6}, + {0x9737ad33, 0xffffd85fffffdcb7}, + {0x9737ad34, 0xffffd85fffffdcb8}, + {0x9737ad35, 0xffffd85fffffdcb9}, + {0x9737ad36, 0xffffd85fffffdcba}, + {0x9737ad37, 0xffffd85fffffdcbb}, + {0x9737ad38, 0xffffd85fffffdcbc}, + {0x9737ad39, 0xffffd85fffffdcbd}, + {0x9737ae30, 0xffffd85fffffdcbe}, + {0x9737ae31, 0xffffd85fffffdcbf}, + {0x9737ae32, 0xffffd85fffffdcc0}, + {0x9737ae33, 0xffffd85fffffdcc1}, + {0x9737ae34, 0xffffd85fffffdcc2}, + {0x9737ae35, 0xffffd85fffffdcc3}, + {0x9737ae36, 0xffffd85fffffdcc4}, + {0x9737ae37, 0xffffd85fffffdcc5}, + {0x9737ae38, 0xffffd85fffffdcc6}, + {0x9737ae39, 0xffffd85fffffdcc7}, + {0x9737af30, 0xffffd85fffffdcc8}, + {0x9737af31, 0xffffd85fffffdcc9}, + {0x9737af32, 0xffffd85fffffdcca}, + {0x9737af33, 0xffffd85fffffdccb}, + {0x9737af34, 0xffffd85fffffdccc}, + {0x9737af35, 0xffffd85fffffdccd}, + {0x9737af36, 0xffffd85fffffdcce}, + {0x9737af37, 0xffffd85fffffdccf}, + {0x9737af38, 0xffffd85fffffdcd0}, + {0x9737af39, 0xffffd85fffffdcd1}, + {0x9737b030, 0xffffd85fffffdcd2}, + {0x9737b031, 0xffffd85fffffdcd3}, + {0x9737b032, 0xffffd85fffffdcd4}, + {0x9737b033, 0xffffd85fffffdcd5}, + {0x9737b034, 0xffffd85fffffdcd6}, + {0x9737b035, 0xffffd85fffffdcd7}, + {0x9737b036, 0xffffd85fffffdcd8}, + {0x9737b037, 0xffffd85fffffdcd9}, + {0x9737b038, 0xffffd85fffffdcda}, + {0x9737b039, 0xffffd85fffffdcdb}, + {0x9737b130, 0xffffd85fffffdcdc}, + {0x9737b131, 0xffffd85fffffdcdd}, + {0x9737b132, 0xffffd85fffffdcde}, + {0x9737b133, 0xffffd85fffffdcdf}, + {0x9737b134, 0xffffd85fffffdce0}, + {0x9737b135, 0xffffd85fffffdce1}, + {0x9737b136, 0xffffd85fffffdce2}, + {0x9737b137, 0xffffd85fffffdce3}, + {0x9737b138, 0xffffd85fffffdce4}, + {0x9737b139, 0xffffd85fffffdce5}, + {0x9737b230, 0xffffd85fffffdce6}, + {0x9737b231, 0xffffd85fffffdce7}, + {0x9737b232, 0xffffd85fffffdce8}, + {0x9737b233, 0xffffd85fffffdce9}, + {0x9737b234, 0xffffd85fffffdcea}, + {0x9737b235, 0xffffd85fffffdceb}, + {0x9737b236, 0xffffd85fffffdcec}, + {0x9737b237, 0xffffd85fffffdced}, + {0x9737b238, 0xffffd85fffffdcee}, + {0x9737b239, 0xffffd85fffffdcef}, + {0x9737b330, 0xffffd85fffffdcf0}, + {0x9737b331, 0xffffd85fffffdcf1}, + {0x9737b332, 0xffffd85fffffdcf2}, + {0x9737b333, 0xffffd85fffffdcf3}, + {0x9737b334, 0xffffd85fffffdcf4}, + {0x9737b335, 0xffffd85fffffdcf5}, + {0x9737b336, 0xffffd85fffffdcf6}, + {0x9737b337, 0xffffd85fffffdcf7}, + {0x9737b338, 0xffffd85fffffdcf8}, + {0x9737b339, 0xffffd85fffffdcf9}, + {0x9737b430, 0xffffd85fffffdcfa}, + {0x9737b431, 0xffffd85fffffdcfb}, + {0x9737b432, 0xffffd85fffffdcfc}, + {0x9737b433, 0xffffd85fffffdcfd}, + {0x9737b434, 0xffffd85fffffdcfe}, + {0x9737b435, 0xffffd85fffffdcff}, + {0x9737b436, 0xffffd85fffffdd00}, + {0x9737b437, 0xffffd85fffffdd01}, + {0x9737b438, 0xffffd85fffffdd02}, + {0x9737b439, 0xffffd85fffffdd03}, + {0x9737b530, 0xffffd85fffffdd04}, + {0x9737b531, 0xffffd85fffffdd05}, + {0x9737b532, 0xffffd85fffffdd06}, + {0x9737b533, 0xffffd85fffffdd07}, + {0x9737b534, 0xffffd85fffffdd08}, + {0x9737b535, 0xffffd85fffffdd09}, + {0x9737b536, 0xffffd85fffffdd0a}, + {0x9737b537, 0xffffd85fffffdd0b}, + {0x9737b538, 0xffffd85fffffdd0c}, + {0x9737b539, 0xffffd85fffffdd0d}, + {0x9737b630, 0xffffd85fffffdd0e}, + {0x9737b631, 0xffffd85fffffdd0f}, + {0x9737b632, 0xffffd85fffffdd10}, + {0x9737b633, 0xffffd85fffffdd11}, + {0x9737b634, 0xffffd85fffffdd12}, + {0x9737b635, 0xffffd85fffffdd13}, + {0x9737b636, 0xffffd85fffffdd14}, + {0x9737b637, 0xffffd85fffffdd15}, + {0x9737b638, 0xffffd85fffffdd16}, + {0x9737b639, 0xffffd85fffffdd17}, + {0x9737b730, 0xffffd85fffffdd18}, + {0x9737b731, 0xffffd85fffffdd19}, + {0x9737b732, 0xffffd85fffffdd1a}, + {0x9737b733, 0xffffd85fffffdd1b}, + {0x9737b734, 0xffffd85fffffdd1c}, + {0x9737b735, 0xffffd85fffffdd1d}, + {0x9737b736, 0xffffd85fffffdd1e}, + {0x9737b737, 0xffffd85fffffdd1f}, + {0x9737b738, 0xffffd85fffffdd20}, + {0x9737b739, 0xffffd85fffffdd21}, + {0x9737b830, 0xffffd85fffffdd22}, + {0x9737b831, 0xffffd85fffffdd23}, + {0x9737b832, 0xffffd85fffffdd24}, + {0x9737b833, 0xffffd85fffffdd25}, + {0x9737b834, 0xffffd85fffffdd26}, + {0x9737b835, 0xffffd85fffffdd27}, + {0x9737b836, 0xffffd85fffffdd28}, + {0x9737b837, 0xffffd85fffffdd29}, + {0x9737b838, 0xffffd85fffffdd2a}, + {0x9737b839, 0xffffd85fffffdd2b}, + {0x9737b930, 0xffffd85fffffdd2c}, + {0x9737b931, 0xffffd85fffffdd2d}, + {0x9737b932, 0xffffd85fffffdd2e}, + {0x9737b933, 0xffffd85fffffdd2f}, + {0x9737b934, 0xffffd85fffffdd30}, + {0x9737b935, 0xffffd85fffffdd31}, + {0x9737b936, 0xffffd85fffffdd32}, + {0x9737b937, 0xffffd85fffffdd33}, + {0x9737b938, 0xffffd85fffffdd34}, + {0x9737b939, 0xffffd85fffffdd35}, + {0x9737ba30, 0xffffd85fffffdd36}, + {0x9737ba31, 0xffffd85fffffdd37}, + {0x9737ba32, 0xffffd85fffffdd38}, + {0x9737ba33, 0xffffd85fffffdd39}, + {0x9737ba34, 0xffffd85fffffdd3a}, + {0x9737ba35, 0xffffd85fffffdd3b}, + {0x9737ba36, 0xffffd85fffffdd3c}, + {0x9737ba37, 0xffffd85fffffdd3d}, + {0x9737ba38, 0xffffd85fffffdd3e}, + {0x9737ba39, 0xffffd85fffffdd3f}, + {0x9737bb30, 0xffffd85fffffdd40}, + {0x9737bb31, 0xffffd85fffffdd41}, + {0x9737bb32, 0xffffd85fffffdd42}, + {0x9737bb33, 0xffffd85fffffdd43}, + {0x9737bb34, 0xffffd85fffffdd44}, + {0x9737bb35, 0xffffd85fffffdd45}, + {0x9737bb36, 0xffffd85fffffdd46}, + {0x9737bb37, 0xffffd85fffffdd47}, + {0x9737bb38, 0xffffd85fffffdd48}, + {0x9737bb39, 0xffffd85fffffdd49}, + {0x9737bc30, 0xffffd85fffffdd4a}, + {0x9737bc31, 0xffffd85fffffdd4b}, + {0x9737bc32, 0xffffd85fffffdd4c}, + {0x9737bc33, 0xffffd85fffffdd4d}, + {0x9737bc34, 0xffffd85fffffdd4e}, + {0x9737bc35, 0xffffd85fffffdd4f}, + {0x9737bc36, 0xffffd85fffffdd50}, + {0x9737bc37, 0xffffd85fffffdd51}, + {0x9737bc38, 0xffffd85fffffdd52}, + {0x9737bc39, 0xffffd85fffffdd53}, + {0x9737bd30, 0xffffd85fffffdd54}, + {0x9737bd31, 0xffffd85fffffdd55}, + {0x9737bd32, 0xffffd85fffffdd56}, + {0x9737bd33, 0xffffd85fffffdd57}, + {0x9737bd34, 0xffffd85fffffdd58}, + {0x9737bd35, 0xffffd85fffffdd59}, + {0x9737bd36, 0xffffd85fffffdd5a}, + {0x9737bd37, 0xffffd85fffffdd5b}, + {0x9737bd38, 0xffffd85fffffdd5c}, + {0x9737bd39, 0xffffd85fffffdd5d}, + {0x9737be30, 0xffffd85fffffdd5e}, + {0x9737be31, 0xffffd85fffffdd5f}, + {0x9737be32, 0xffffd85fffffdd60}, + {0x9737be33, 0xffffd85fffffdd61}, + {0x9737be34, 0xffffd85fffffdd62}, + {0x9737be35, 0xffffd85fffffdd63}, + {0x9737be36, 0xffffd85fffffdd64}, + {0x9737be37, 0xffffd85fffffdd65}, + {0x9737be38, 0xffffd85fffffdd66}, + {0x9737be39, 0xffffd85fffffdd67}, + {0x9737bf30, 0xffffd85fffffdd68}, + {0x9737bf31, 0xffffd85fffffdd69}, + {0x9737bf32, 0xffffd85fffffdd6a}, + {0x9737bf33, 0xffffd85fffffdd6b}, + {0x9737bf34, 0xffffd85fffffdd6c}, + {0x9737bf35, 0xffffd85fffffdd6d}, + {0x9737bf36, 0xffffd85fffffdd6e}, + {0x9737bf37, 0xffffd85fffffdd6f}, + {0x9737bf38, 0xffffd85fffffdd70}, + {0x9737bf39, 0xffffd85fffffdd71}, + {0x9737c030, 0xffffd85fffffdd72}, + {0x9737c031, 0xffffd85fffffdd73}, + {0x9737c032, 0xffffd85fffffdd74}, + {0x9737c033, 0xffffd85fffffdd75}, + {0x9737c034, 0xffffd85fffffdd76}, + {0x9737c035, 0xffffd85fffffdd77}, + {0x9737c036, 0xffffd85fffffdd78}, + {0x9737c037, 0xffffd85fffffdd79}, + {0x9737c038, 0xffffd85fffffdd7a}, + {0x9737c039, 0xffffd85fffffdd7b}, + {0x9737c130, 0xffffd85fffffdd7c}, + {0x9737c131, 0xffffd85fffffdd7d}, + {0x9737c132, 0xffffd85fffffdd7e}, + {0x9737c133, 0xffffd85fffffdd7f}, + {0x9737c134, 0xffffd85fffffdd80}, + {0x9737c135, 0xffffd85fffffdd81}, + {0x9737c136, 0xffffd85fffffdd82}, + {0x9737c137, 0xffffd85fffffdd83}, + {0x9737c138, 0xffffd85fffffdd84}, + {0x9737c139, 0xffffd85fffffdd85}, + {0x9737c230, 0xffffd85fffffdd86}, + {0x9737c231, 0xffffd85fffffdd87}, + {0x9737c232, 0xffffd85fffffdd88}, + {0x9737c233, 0xffffd85fffffdd89}, + {0x9737c234, 0xffffd85fffffdd8a}, + {0x9737c235, 0xffffd85fffffdd8b}, + {0x9737c236, 0xffffd85fffffdd8c}, + {0x9737c237, 0xffffd85fffffdd8d}, + {0x9737c238, 0xffffd85fffffdd8e}, + {0x9737c239, 0xffffd85fffffdd8f}, + {0x9737c330, 0xffffd85fffffdd90}, + {0x9737c331, 0xffffd85fffffdd91}, + {0x9737c332, 0xffffd85fffffdd92}, + {0x9737c333, 0xffffd85fffffdd93}, + {0x9737c334, 0xffffd85fffffdd94}, + {0x9737c335, 0xffffd85fffffdd95}, + {0x9737c336, 0xffffd85fffffdd96}, + {0x9737c337, 0xffffd85fffffdd97}, + {0x9737c338, 0xffffd85fffffdd98}, + {0x9737c339, 0xffffd85fffffdd99}, + {0x9737c430, 0xffffd85fffffdd9a}, + {0x9737c431, 0xffffd85fffffdd9b}, + {0x9737c432, 0xffffd85fffffdd9c}, + {0x9737c433, 0xffffd85fffffdd9d}, + {0x9737c434, 0xffffd85fffffdd9e}, + {0x9737c435, 0xffffd85fffffdd9f}, + {0x9737c436, 0xffffd85fffffdda0}, + {0x9737c437, 0xffffd85fffffdda1}, + {0x9737c438, 0xffffd85fffffdda2}, + {0x9737c439, 0xffffd85fffffdda3}, + {0x9737c530, 0xffffd85fffffdda4}, + {0x9737c531, 0xffffd85fffffdda5}, + {0x9737c532, 0xffffd85fffffdda6}, + {0x9737c533, 0xffffd85fffffdda7}, + {0x9737c534, 0xffffd85fffffdda8}, + {0x9737c535, 0xffffd85fffffdda9}, + {0x9737c536, 0xffffd85fffffddaa}, + {0x9737c537, 0xffffd85fffffddab}, + {0x9737c538, 0xffffd85fffffddac}, + {0x9737c539, 0xffffd85fffffddad}, + {0x9737c630, 0xffffd85fffffddae}, + {0x9737c631, 0xffffd85fffffddaf}, + {0x9737c632, 0xffffd85fffffddb0}, + {0x9737c633, 0xffffd85fffffddb1}, + {0x9737c634, 0xffffd85fffffddb2}, + {0x9737c635, 0xffffd85fffffddb3}, + {0x9737c636, 0xffffd85fffffddb4}, + {0x9737c637, 0xffffd85fffffddb5}, + {0x9737c638, 0xffffd85fffffddb6}, + {0x9737c639, 0xffffd85fffffddb7}, + {0x9737c730, 0xffffd85fffffddb8}, + {0x9737c731, 0xffffd85fffffddb9}, + {0x9737c732, 0xffffd85fffffddba}, + {0x9737c733, 0xffffd85fffffddbb}, + {0x9737c734, 0xffffd85fffffddbc}, + {0x9737c735, 0xffffd85fffffddbd}, + {0x9737c736, 0xffffd85fffffddbe}, + {0x9737c737, 0xffffd85fffffddbf}, + {0x9737c738, 0xffffd85fffffddc0}, + {0x9737c739, 0xffffd85fffffddc1}, + {0x9737c830, 0xffffd85fffffddc2}, + {0x9737c831, 0xffffd85fffffddc3}, + {0x9737c832, 0xffffd85fffffddc4}, + {0x9737c833, 0xffffd85fffffddc5}, + {0x9737c834, 0xffffd85fffffddc6}, + {0x9737c835, 0xffffd85fffffddc7}, + {0x9737c836, 0xffffd85fffffddc8}, + {0x9737c837, 0xffffd85fffffddc9}, + {0x9737c838, 0xffffd85fffffddca}, + {0x9737c839, 0xffffd85fffffddcb}, + {0x9737c930, 0xffffd85fffffddcc}, + {0x9737c931, 0xffffd85fffffddcd}, + {0x9737c932, 0xffffd85fffffddce}, + {0x9737c933, 0xffffd85fffffddcf}, + {0x9737c934, 0xffffd85fffffddd0}, + {0x9737c935, 0xffffd85fffffddd1}, + {0x9737c936, 0xffffd85fffffddd2}, + {0x9737c937, 0xffffd85fffffddd3}, + {0x9737c938, 0xffffd85fffffddd4}, + {0x9737c939, 0xffffd85fffffddd5}, + {0x9737ca30, 0xffffd85fffffddd6}, + {0x9737ca31, 0xffffd85fffffddd7}, + {0x9737ca32, 0xffffd85fffffddd8}, + {0x9737ca33, 0xffffd85fffffddd9}, + {0x9737ca34, 0xffffd85fffffddda}, + {0x9737ca35, 0xffffd85fffffdddb}, + {0x9737ca36, 0xffffd85fffffdddc}, + {0x9737ca37, 0xffffd85fffffdddd}, + {0x9737ca38, 0xffffd85fffffddde}, + {0x9737ca39, 0xffffd85fffffdddf}, + {0x9737cb30, 0xffffd85fffffdde0}, + {0x9737cb31, 0xffffd85fffffdde1}, + {0x9737cb32, 0xffffd85fffffdde2}, + {0x9737cb33, 0xffffd85fffffdde3}, + {0x9737cb34, 0xffffd85fffffdde4}, + {0x9737cb35, 0xffffd85fffffdde5}, + {0x9737cb36, 0xffffd85fffffdde6}, + {0x9737cb37, 0xffffd85fffffdde7}, + {0x9737cb38, 0xffffd85fffffdde8}, + {0x9737cb39, 0xffffd85fffffdde9}, + {0x9737cc30, 0xffffd85fffffddea}, + {0x9737cc31, 0xffffd85fffffddeb}, + {0x9737cc32, 0xffffd85fffffddec}, + {0x9737cc33, 0xffffd85fffffdded}, + {0x9737cc34, 0xffffd85fffffddee}, + {0x9737cc35, 0xffffd85fffffddef}, + {0x9737cc36, 0xffffd85fffffddf0}, + {0x9737cc37, 0xffffd85fffffddf1}, + {0x9737cc38, 0xffffd85fffffddf2}, + {0x9737cc39, 0xffffd85fffffddf3}, + {0x9737cd30, 0xffffd85fffffddf4}, + {0x9737cd31, 0xffffd85fffffddf5}, + {0x9737cd32, 0xffffd85fffffddf6}, + {0x9737cd33, 0xffffd85fffffddf7}, + {0x9737cd34, 0xffffd85fffffddf8}, + {0x9737cd35, 0xffffd85fffffddf9}, + {0x9737cd36, 0xffffd85fffffddfa}, + {0x9737cd37, 0xffffd85fffffddfb}, + {0x9737cd38, 0xffffd85fffffddfc}, + {0x9737cd39, 0xffffd85fffffddfd}, + {0x9737ce30, 0xffffd85fffffddfe}, + {0x9737ce31, 0xffffd85fffffddff}, + {0x9737ce32, 0xffffd85fffffde00}, + {0x9737ce33, 0xffffd85fffffde01}, + {0x9737ce34, 0xffffd85fffffde02}, + {0x9737ce35, 0xffffd85fffffde03}, + {0x9737ce36, 0xffffd85fffffde04}, + {0x9737ce37, 0xffffd85fffffde05}, + {0x9737ce38, 0xffffd85fffffde06}, + {0x9737ce39, 0xffffd85fffffde07}, + {0x9737cf30, 0xffffd85fffffde08}, + {0x9737cf31, 0xffffd85fffffde09}, + {0x9737cf32, 0xffffd85fffffde0a}, + {0x9737cf33, 0xffffd85fffffde0b}, + {0x9737cf34, 0xffffd85fffffde0c}, + {0x9737cf35, 0xffffd85fffffde0d}, + {0x9737cf36, 0xffffd85fffffde0e}, + {0x9737cf37, 0xffffd85fffffde0f}, + {0x9737cf38, 0xffffd85fffffde10}, + {0x9737cf39, 0xffffd85fffffde11}, + {0x9737d030, 0xffffd85fffffde12}, + {0x9737d031, 0xffffd85fffffde13}, + {0x9737d032, 0xffffd85fffffde14}, + {0x9737d033, 0xffffd85fffffde15}, + {0x9737d034, 0xffffd85fffffde16}, + {0x9737d035, 0xffffd85fffffde17}, + {0x9737d036, 0xffffd85fffffde18}, + {0x9737d037, 0xffffd85fffffde19}, + {0x9737d038, 0xffffd85fffffde1a}, + {0x9737d039, 0xffffd85fffffde1b}, + {0x9737d130, 0xffffd85fffffde1c}, + {0x9737d131, 0xffffd85fffffde1d}, + {0x9737d132, 0xffffd85fffffde1e}, + {0x9737d133, 0xffffd85fffffde1f}, + {0x9737d134, 0xffffd85fffffde20}, + {0x9737d135, 0xffffd85fffffde21}, + {0x9737d136, 0xffffd85fffffde22}, + {0x9737d137, 0xffffd85fffffde23}, + {0x9737d138, 0xffffd85fffffde24}, + {0x9737d139, 0xffffd85fffffde25}, + {0x9737d230, 0xffffd85fffffde26}, + {0x9737d231, 0xffffd85fffffde27}, + {0x9737d232, 0xffffd85fffffde28}, + {0x9737d233, 0xffffd85fffffde29}, + {0x9737d234, 0xffffd85fffffde2a}, + {0x9737d235, 0xffffd85fffffde2b}, + {0x9737d236, 0xffffd85fffffde2c}, + {0x9737d237, 0xffffd85fffffde2d}, + {0x9737d238, 0xffffd85fffffde2e}, + {0x9737d239, 0xffffd85fffffde2f}, + {0x9737d330, 0xffffd85fffffde30}, + {0x9737d331, 0xffffd85fffffde31}, + {0x9737d332, 0xffffd85fffffde32}, + {0x9737d333, 0xffffd85fffffde33}, + {0x9737d334, 0xffffd85fffffde34}, + {0x9737d335, 0xffffd85fffffde35}, + {0x9737d336, 0xffffd85fffffde36}, + {0x9737d337, 0xffffd85fffffde37}, + {0x9737d338, 0xffffd85fffffde38}, + {0x9737d339, 0xffffd85fffffde39}, + {0x9737d430, 0xffffd85fffffde3a}, + {0x9737d431, 0xffffd85fffffde3b}, + {0x9737d432, 0xffffd85fffffde3c}, + {0x9737d433, 0xffffd85fffffde3d}, + {0x9737d434, 0xffffd85fffffde3e}, + {0x9737d435, 0xffffd85fffffde3f}, + {0x9737d436, 0xffffd85fffffde40}, + {0x9737d437, 0xffffd85fffffde41}, + {0x9737d438, 0xffffd85fffffde42}, + {0x9737d439, 0xffffd85fffffde43}, + {0x9737d530, 0xffffd85fffffde44}, + {0x9737d531, 0xffffd85fffffde45}, + {0x9737d532, 0xffffd85fffffde46}, + {0x9737d533, 0xffffd85fffffde47}, + {0x9737d534, 0xffffd85fffffde48}, + {0x9737d535, 0xffffd85fffffde49}, + {0x9737d536, 0xffffd85fffffde4a}, + {0x9737d537, 0xffffd85fffffde4b}, + {0x9737d538, 0xffffd85fffffde4c}, + {0x9737d539, 0xffffd85fffffde4d}, + {0x9737d630, 0xffffd85fffffde4e}, + {0x9737d631, 0xffffd85fffffde4f}, + {0x9737d632, 0xffffd85fffffde50}, + {0x9737d633, 0xffffd85fffffde51}, + {0x9737d634, 0xffffd85fffffde52}, + {0x9737d635, 0xffffd85fffffde53}, + {0x9737d636, 0xffffd85fffffde54}, + {0x9737d637, 0xffffd85fffffde55}, + {0x9737d638, 0xffffd85fffffde56}, + {0x9737d639, 0xffffd85fffffde57}, + {0x9737d730, 0xffffd85fffffde58}, + {0x9737d731, 0xffffd85fffffde59}, + {0x9737d732, 0xffffd85fffffde5a}, + {0x9737d733, 0xffffd85fffffde5b}, + {0x9737d734, 0xffffd85fffffde5c}, + {0x9737d735, 0xffffd85fffffde5d}, + {0x9737d736, 0xffffd85fffffde5e}, + {0x9737d737, 0xffffd85fffffde5f}, + {0x9737d738, 0xffffd85fffffde60}, + {0x9737d739, 0xffffd85fffffde61}, + {0x9737d830, 0xffffd85fffffde62}, + {0x9737d831, 0xffffd85fffffde63}, + {0x9737d832, 0xffffd85fffffde64}, + {0x9737d833, 0xffffd85fffffde65}, + {0x9737d834, 0xffffd85fffffde66}, + {0x9737d835, 0xffffd85fffffde67}, + {0x9737d836, 0xffffd85fffffde68}, + {0x9737d837, 0xffffd85fffffde69}, + {0x9737d838, 0xffffd85fffffde6a}, + {0x9737d839, 0xffffd85fffffde6b}, + {0x9737d930, 0xffffd85fffffde6c}, + {0x9737d931, 0xffffd85fffffde6d}, + {0x9737d932, 0xffffd85fffffde6e}, + {0x9737d933, 0xffffd85fffffde6f}, + {0x9737d934, 0xffffd85fffffde70}, + {0x9737d935, 0xffffd85fffffde71}, + {0x9737d936, 0xffffd85fffffde72}, + {0x9737d937, 0xffffd85fffffde73}, + {0x9737d938, 0xffffd85fffffde74}, + {0x9737d939, 0xffffd85fffffde75}, + {0x9737da30, 0xffffd85fffffde76}, + {0x9737da31, 0xffffd85fffffde77}, + {0x9737da32, 0xffffd85fffffde78}, + {0x9737da33, 0xffffd85fffffde79}, + {0x9737da34, 0xffffd85fffffde7a}, + {0x9737da35, 0xffffd85fffffde7b}, + {0x9737da36, 0xffffd85fffffde7c}, + {0x9737da37, 0xffffd85fffffde7d}, + {0x9737da38, 0xffffd85fffffde7e}, + {0x9737da39, 0xffffd85fffffde7f}, + {0x9737db30, 0xffffd85fffffde80}, + {0x9737db31, 0xffffd85fffffde81}, + {0x9737db32, 0xffffd85fffffde82}, + {0x9737db33, 0xffffd85fffffde83}, + {0x9737db34, 0xffffd85fffffde84}, + {0x9737db35, 0xffffd85fffffde85}, + {0x9737db36, 0xffffd85fffffde86}, + {0x9737db37, 0xffffd85fffffde87}, + {0x9737db38, 0xffffd85fffffde88}, + {0x9737db39, 0xffffd85fffffde89}, + {0x9737dc30, 0xffffd85fffffde8a}, + {0x9737dc31, 0xffffd85fffffde8b}, + {0x9737dc32, 0xffffd85fffffde8c}, + {0x9737dc33, 0xffffd85fffffde8d}, + {0x9737dc34, 0xffffd85fffffde8e}, + {0x9737dc35, 0xffffd85fffffde8f}, + {0x9737dc36, 0xffffd85fffffde90}, + {0x9737dc37, 0xffffd85fffffde91}, + {0x9737dc38, 0xffffd85fffffde92}, + {0x9737dc39, 0xffffd85fffffde93}, + {0x9737dd30, 0xffffd85fffffde94}, + {0x9737dd31, 0xffffd85fffffde95}, + {0x9737dd32, 0xffffd85fffffde96}, + {0x9737dd33, 0xffffd85fffffde97}, + {0x9737dd34, 0xffffd85fffffde98}, + {0x9737dd35, 0xffffd85fffffde99}, + {0x9737dd36, 0xffffd85fffffde9a}, + {0x9737dd37, 0xffffd85fffffde9b}, + {0x9737dd38, 0xffffd85fffffde9c}, + {0x9737dd39, 0xffffd85fffffde9d}, + {0x9737de30, 0xffffd85fffffde9e}, + {0x9737de31, 0xffffd85fffffde9f}, + {0x9737de32, 0xffffd85fffffdea0}, + {0x9737de33, 0xffffd85fffffdea1}, + {0x9737de34, 0xffffd85fffffdea2}, + {0x9737de35, 0xffffd85fffffdea3}, + {0x9737de36, 0xffffd85fffffdea4}, + {0x9737de37, 0xffffd85fffffdea5}, + {0x9737de38, 0xffffd85fffffdea6}, + {0x9737de39, 0xffffd85fffffdea7}, + {0x9737df30, 0xffffd85fffffdea8}, + {0x9737df31, 0xffffd85fffffdea9}, + {0x9737df32, 0xffffd85fffffdeaa}, + {0x9737df33, 0xffffd85fffffdeab}, + {0x9737df34, 0xffffd85fffffdeac}, + {0x9737df35, 0xffffd85fffffdead}, + {0x9737df36, 0xffffd85fffffdeae}, + {0x9737df37, 0xffffd85fffffdeaf}, + {0x9737df38, 0xffffd85fffffdeb0}, + {0x9737df39, 0xffffd85fffffdeb1}, + {0x9737e030, 0xffffd85fffffdeb2}, + {0x9737e031, 0xffffd85fffffdeb3}, + {0x9737e032, 0xffffd85fffffdeb4}, + {0x9737e033, 0xffffd85fffffdeb5}, + {0x9737e034, 0xffffd85fffffdeb6}, + {0x9737e035, 0xffffd85fffffdeb7}, + {0x9737e036, 0xffffd85fffffdeb8}, + {0x9737e037, 0xffffd85fffffdeb9}, + {0x9737e038, 0xffffd85fffffdeba}, + {0x9737e039, 0xffffd85fffffdebb}, + {0x9737e130, 0xffffd85fffffdebc}, + {0x9737e131, 0xffffd85fffffdebd}, + {0x9737e132, 0xffffd85fffffdebe}, + {0x9737e133, 0xffffd85fffffdebf}, + {0x9737e134, 0xffffd85fffffdec0}, + {0x9737e135, 0xffffd85fffffdec1}, + {0x9737e136, 0xffffd85fffffdec2}, + {0x9737e137, 0xffffd85fffffdec3}, + {0x9737e138, 0xffffd85fffffdec4}, + {0x9737e139, 0xffffd85fffffdec5}, + {0x9737e230, 0xffffd85fffffdec6}, + {0x9737e231, 0xffffd85fffffdec7}, + {0x9737e232, 0xffffd85fffffdec8}, + {0x9737e233, 0xffffd85fffffdec9}, + {0x9737e234, 0xffffd85fffffdeca}, + {0x9737e235, 0xffffd85fffffdecb}, + {0x9737e236, 0xffffd85fffffdecc}, + {0x9737e237, 0xffffd85fffffdecd}, + {0x9737e238, 0xffffd85fffffdece}, + {0x9737e239, 0xffffd85fffffdecf}, + {0x9737e330, 0xffffd85fffffded0}, + {0x9737e331, 0xffffd85fffffded1}, + {0x9737e332, 0xffffd85fffffded2}, + {0x9737e333, 0xffffd85fffffded3}, + {0x9737e334, 0xffffd85fffffded4}, + {0x9737e335, 0xffffd85fffffded5}, + {0x9737e336, 0xffffd85fffffded6}, + {0x9737e337, 0xffffd85fffffded7}, + {0x9737e338, 0xffffd85fffffded8}, + {0x9737e339, 0xffffd85fffffded9}, + {0x9737e430, 0xffffd85fffffdeda}, + {0x9737e431, 0xffffd85fffffdedb}, + {0x9737e432, 0xffffd85fffffdedc}, + {0x9737e433, 0xffffd85fffffdedd}, + {0x9737e434, 0xffffd85fffffdede}, + {0x9737e435, 0xffffd85fffffdedf}, + {0x9737e436, 0xffffd85fffffdee0}, + {0x9737e437, 0xffffd85fffffdee1}, + {0x9737e438, 0xffffd85fffffdee2}, + {0x9737e439, 0xffffd85fffffdee3}, + {0x9737e530, 0xffffd85fffffdee4}, + {0x9737e531, 0xffffd85fffffdee5}, + {0x9737e532, 0xffffd85fffffdee6}, + {0x9737e533, 0xffffd85fffffdee7}, + {0x9737e534, 0xffffd85fffffdee8}, + {0x9737e535, 0xffffd85fffffdee9}, + {0x9737e536, 0xffffd85fffffdeea}, + {0x9737e537, 0xffffd85fffffdeeb}, + {0x9737e538, 0xffffd85fffffdeec}, + {0x9737e539, 0xffffd85fffffdeed}, + {0x9737e630, 0xffffd85fffffdeee}, + {0x9737e631, 0xffffd85fffffdeef}, + {0x9737e632, 0xffffd85fffffdef0}, + {0x9737e633, 0xffffd85fffffdef1}, + {0x9737e634, 0xffffd85fffffdef2}, + {0x9737e635, 0xffffd85fffffdef3}, + {0x9737e636, 0xffffd85fffffdef4}, + {0x9737e637, 0xffffd85fffffdef5}, + {0x9737e638, 0xffffd85fffffdef6}, + {0x9737e639, 0xffffd85fffffdef7}, + {0x9737e730, 0xffffd85fffffdef8}, + {0x9737e731, 0xffffd85fffffdef9}, + {0x9737e732, 0xffffd85fffffdefa}, + {0x9737e733, 0xffffd85fffffdefb}, + {0x9737e734, 0xffffd85fffffdefc}, + {0x9737e735, 0xffffd85fffffdefd}, + {0x9737e736, 0xffffd85fffffdefe}, + {0x9737e737, 0xffffd85fffffdeff}, + {0x9737e738, 0xffffd85fffffdf00}, + {0x9737e739, 0xffffd85fffffdf01}, + {0x9737e830, 0xffffd85fffffdf02}, + {0x9737e831, 0xffffd85fffffdf03}, + {0x9737e832, 0xffffd85fffffdf04}, + {0x9737e833, 0xffffd85fffffdf05}, + {0x9737e834, 0xffffd85fffffdf06}, + {0x9737e835, 0xffffd85fffffdf07}, + {0x9737e836, 0xffffd85fffffdf08}, + {0x9737e837, 0xffffd85fffffdf09}, + {0x9737e838, 0xffffd85fffffdf0a}, + {0x9737e839, 0xffffd85fffffdf0b}, + {0x9737e930, 0xffffd85fffffdf0c}, + {0x9737e931, 0xffffd85fffffdf0d}, + {0x9737e932, 0xffffd85fffffdf0e}, + {0x9737e933, 0xffffd85fffffdf0f}, + {0x9737e934, 0xffffd85fffffdf10}, + {0x9737e935, 0xffffd85fffffdf11}, + {0x9737e936, 0xffffd85fffffdf12}, + {0x9737e937, 0xffffd85fffffdf13}, + {0x9737e938, 0xffffd85fffffdf14}, + {0x9737e939, 0xffffd85fffffdf15}, + {0x9737ea30, 0xffffd85fffffdf16}, + {0x9737ea31, 0xffffd85fffffdf17}, + {0x9737ea32, 0xffffd85fffffdf18}, + {0x9737ea33, 0xffffd85fffffdf19}, + {0x9737ea34, 0xffffd85fffffdf1a}, + {0x9737ea35, 0xffffd85fffffdf1b}, + {0x9737ea36, 0xffffd85fffffdf1c}, + {0x9737ea37, 0xffffd85fffffdf1d}, + {0x9737ea38, 0xffffd85fffffdf1e}, + {0x9737ea39, 0xffffd85fffffdf1f}, + {0x9737eb30, 0xffffd85fffffdf20}, + {0x9737eb31, 0xffffd85fffffdf21}, + {0x9737eb32, 0xffffd85fffffdf22}, + {0x9737eb33, 0xffffd85fffffdf23}, + {0x9737eb34, 0xffffd85fffffdf24}, + {0x9737eb35, 0xffffd85fffffdf25}, + {0x9737eb36, 0xffffd85fffffdf26}, + {0x9737eb37, 0xffffd85fffffdf27}, + {0x9737eb38, 0xffffd85fffffdf28}, + {0x9737eb39, 0xffffd85fffffdf29}, + {0x9737ec30, 0xffffd85fffffdf2a}, + {0x9737ec31, 0xffffd85fffffdf2b}, + {0x9737ec32, 0xffffd85fffffdf2c}, + {0x9737ec33, 0xffffd85fffffdf2d}, + {0x9737ec34, 0xffffd85fffffdf2e}, + {0x9737ec35, 0xffffd85fffffdf2f}, + {0x9737ec36, 0xffffd85fffffdf30}, + {0x9737ec37, 0xffffd85fffffdf31}, + {0x9737ec38, 0xffffd85fffffdf32}, + {0x9737ec39, 0xffffd85fffffdf33}, + {0x9737ed30, 0xffffd85fffffdf34}, + {0x9737ed31, 0xffffd85fffffdf35}, + {0x9737ed32, 0xffffd85fffffdf36}, + {0x9737ed33, 0xffffd85fffffdf37}, + {0x9737ed34, 0xffffd85fffffdf38}, + {0x9737ed35, 0xffffd85fffffdf39}, + {0x9737ed36, 0xffffd85fffffdf3a}, + {0x9737ed37, 0xffffd85fffffdf3b}, + {0x9737ed38, 0xffffd85fffffdf3c}, + {0x9737ed39, 0xffffd85fffffdf3d}, + {0x9737ee30, 0xffffd85fffffdf3e}, + {0x9737ee31, 0xffffd85fffffdf3f}, + {0x9737ee32, 0xffffd85fffffdf40}, + {0x9737ee33, 0xffffd85fffffdf41}, + {0x9737ee34, 0xffffd85fffffdf42}, + {0x9737ee35, 0xffffd85fffffdf43}, + {0x9737ee36, 0xffffd85fffffdf44}, + {0x9737ee37, 0xffffd85fffffdf45}, + {0x9737ee38, 0xffffd85fffffdf46}, + {0x9737ee39, 0xffffd85fffffdf47}, + {0x9737ef30, 0xffffd85fffffdf48}, + {0x9737ef31, 0xffffd85fffffdf49}, + {0x9737ef32, 0xffffd85fffffdf4a}, + {0x9737ef33, 0xffffd85fffffdf4b}, + {0x9737ef34, 0xffffd85fffffdf4c}, + {0x9737ef35, 0xffffd85fffffdf4d}, + {0x9737ef36, 0xffffd85fffffdf4e}, + {0x9737ef37, 0xffffd85fffffdf4f}, + {0x9737ef38, 0xffffd85fffffdf50}, + {0x9737ef39, 0xffffd85fffffdf51}, + {0x9737f030, 0xffffd85fffffdf52}, + {0x9737f031, 0xffffd85fffffdf53}, + {0x9737f032, 0xffffd85fffffdf54}, + {0x9737f033, 0xffffd85fffffdf55}, + {0x9737f034, 0xffffd85fffffdf56}, + {0x9737f035, 0xffffd85fffffdf57}, + {0x9737f036, 0xffffd85fffffdf58}, + {0x9737f037, 0xffffd85fffffdf59}, + {0x9737f038, 0xffffd85fffffdf5a}, + {0x9737f039, 0xffffd85fffffdf5b}, + {0x9737f130, 0xffffd85fffffdf5c}, + {0x9737f131, 0xffffd85fffffdf5d}, + {0x9737f132, 0xffffd85fffffdf5e}, + {0x9737f133, 0xffffd85fffffdf5f}, + {0x9737f134, 0xffffd85fffffdf60}, + {0x9737f135, 0xffffd85fffffdf61}, + {0x9737f136, 0xffffd85fffffdf62}, + {0x9737f137, 0xffffd85fffffdf63}, + {0x9737f138, 0xffffd85fffffdf64}, + {0x9737f139, 0xffffd85fffffdf65}, + {0x9737f230, 0xffffd85fffffdf66}, + {0x9737f231, 0xffffd85fffffdf67}, + {0x9737f232, 0xffffd85fffffdf68}, + {0x9737f233, 0xffffd85fffffdf69}, + {0x9737f234, 0xffffd85fffffdf6a}, + {0x9737f235, 0xffffd85fffffdf6b}, + {0x9737f236, 0xffffd85fffffdf6c}, + {0x9737f237, 0xffffd85fffffdf6d}, + {0x9737f238, 0xffffd85fffffdf6e}, + {0x9737f239, 0xffffd85fffffdf6f}, + {0x9737f330, 0xffffd85fffffdf70}, + {0x9737f331, 0xffffd85fffffdf71}, + {0x9737f332, 0xffffd85fffffdf72}, + {0x9737f333, 0xffffd85fffffdf73}, + {0x9737f334, 0xffffd85fffffdf74}, + {0x9737f335, 0xffffd85fffffdf75}, + {0x9737f336, 0xffffd85fffffdf76}, + {0x9737f337, 0xffffd85fffffdf77}, + {0x9737f338, 0xffffd85fffffdf78}, + {0x9737f339, 0xffffd85fffffdf79}, + {0x9737f430, 0xffffd85fffffdf7a}, + {0x9737f431, 0xffffd85fffffdf7b}, + {0x9737f432, 0xffffd85fffffdf7c}, + {0x9737f433, 0xffffd85fffffdf7d}, + {0x9737f434, 0xffffd85fffffdf7e}, + {0x9737f435, 0xffffd85fffffdf7f}, + {0x9737f436, 0xffffd85fffffdf80}, + {0x9737f437, 0xffffd85fffffdf81}, + {0x9737f438, 0xffffd85fffffdf82}, + {0x9737f439, 0xffffd85fffffdf83}, + {0x9737f530, 0xffffd85fffffdf84}, + {0x9737f531, 0xffffd85fffffdf85}, + {0x9737f532, 0xffffd85fffffdf86}, + {0x9737f533, 0xffffd85fffffdf87}, + {0x9737f534, 0xffffd85fffffdf88}, + {0x9737f535, 0xffffd85fffffdf89}, + {0x9737f536, 0xffffd85fffffdf8a}, + {0x9737f537, 0xffffd85fffffdf8b}, + {0x9737f538, 0xffffd85fffffdf8c}, + {0x9737f539, 0xffffd85fffffdf8d}, + {0x9737f630, 0xffffd85fffffdf8e}, + {0x9737f631, 0xffffd85fffffdf8f}, + {0x9737f632, 0xffffd85fffffdf90}, + {0x9737f633, 0xffffd85fffffdf91}, + {0x9737f634, 0xffffd85fffffdf92}, + {0x9737f635, 0xffffd85fffffdf93}, + {0x9737f636, 0xffffd85fffffdf94}, + {0x9737f637, 0xffffd85fffffdf95}, + {0x9737f638, 0xffffd85fffffdf96}, + {0x9737f639, 0xffffd85fffffdf97}, + {0x9737f730, 0xffffd85fffffdf98}, + {0x9737f731, 0xffffd85fffffdf99}, + {0x9737f732, 0xffffd85fffffdf9a}, + {0x9737f733, 0xffffd85fffffdf9b}, + {0x9737f734, 0xffffd85fffffdf9c}, + {0x9737f735, 0xffffd85fffffdf9d}, + {0x9737f736, 0xffffd85fffffdf9e}, + {0x9737f737, 0xffffd85fffffdf9f}, + {0x9737f738, 0xffffd85fffffdfa0}, + {0x9737f739, 0xffffd85fffffdfa1}, + {0x9737f830, 0xffffd85fffffdfa2}, + {0x9737f831, 0xffffd85fffffdfa3}, + {0x9737f832, 0xffffd85fffffdfa4}, + {0x9737f833, 0xffffd85fffffdfa5}, + {0x9737f834, 0xffffd85fffffdfa6}, + {0x9737f835, 0xffffd85fffffdfa7}, + {0x9737f836, 0xffffd85fffffdfa8}, + {0x9737f837, 0xffffd85fffffdfa9}, + {0x9737f838, 0xffffd85fffffdfaa}, + {0x9737f839, 0xffffd85fffffdfab}, + {0x9737f930, 0xffffd85fffffdfac}, + {0x9737f931, 0xffffd85fffffdfad}, + {0x9737f932, 0xffffd85fffffdfae}, + {0x9737f933, 0xffffd85fffffdfaf}, + {0x9737f934, 0xffffd85fffffdfb0}, + {0x9737f935, 0xffffd85fffffdfb1}, + {0x9737f936, 0xffffd85fffffdfb2}, + {0x9737f937, 0xffffd85fffffdfb3}, + {0x9737f938, 0xffffd85fffffdfb4}, + {0x9737f939, 0xffffd85fffffdfb5}, + {0x9737fa30, 0xffffd85fffffdfb6}, + {0x9737fa31, 0xffffd85fffffdfb7}, + {0x9737fa32, 0xffffd85fffffdfb8}, + {0x9737fa33, 0xffffd85fffffdfb9}, + {0x9737fa34, 0xffffd85fffffdfba}, + {0x9737fa35, 0xffffd85fffffdfbb}, + {0x9737fa36, 0xffffd85fffffdfbc}, + {0x9737fa37, 0xffffd85fffffdfbd}, + {0x9737fa38, 0xffffd85fffffdfbe}, + {0x9737fa39, 0xffffd85fffffdfbf}, + {0x9737fb30, 0xffffd85fffffdfc0}, + {0x9737fb31, 0xffffd85fffffdfc1}, + {0x9737fb32, 0xffffd85fffffdfc2}, + {0x9737fb33, 0xffffd85fffffdfc3}, + {0x9737fb34, 0xffffd85fffffdfc4}, + {0x9737fb35, 0xffffd85fffffdfc5}, + {0x9737fb36, 0xffffd85fffffdfc6}, + {0x9737fb37, 0xffffd85fffffdfc7}, + {0x9737fb38, 0xffffd85fffffdfc8}, + {0x9737fb39, 0xffffd85fffffdfc9}, + {0x9737fc30, 0xffffd85fffffdfca}, + {0x9737fc31, 0xffffd85fffffdfcb}, + {0x9737fc32, 0xffffd85fffffdfcc}, + {0x9737fc33, 0xffffd85fffffdfcd}, + {0x9737fc34, 0xffffd85fffffdfce}, + {0x9737fc35, 0xffffd85fffffdfcf}, + {0x9737fc36, 0xffffd85fffffdfd0}, + {0x9737fc37, 0xffffd85fffffdfd1}, + {0x9737fc38, 0xffffd85fffffdfd2}, + {0x9737fc39, 0xffffd85fffffdfd3}, + {0x9737fd30, 0xffffd85fffffdfd4}, + {0x9737fd31, 0xffffd85fffffdfd5}, + {0x9737fd32, 0xffffd85fffffdfd6}, + {0x9737fd33, 0xffffd85fffffdfd7}, + {0x9737fd34, 0xffffd85fffffdfd8}, + {0x9737fd35, 0xffffd85fffffdfd9}, + {0x9737fd36, 0xffffd85fffffdfda}, + {0x9737fd37, 0xffffd85fffffdfdb}, + {0x9737fd38, 0xffffd85fffffdfdc}, + {0x9737fd39, 0xffffd85fffffdfdd}, + {0x9737fe30, 0xffffd85fffffdfde}, + {0x9737fe31, 0xffffd85fffffdfdf}, + {0x9737fe32, 0xffffd85fffffdfe0}, + {0x9737fe33, 0xffffd85fffffdfe1}, + {0x9737fe34, 0xffffd85fffffdfe2}, + {0x9737fe35, 0xffffd85fffffdfe3}, + {0x9737fe36, 0xffffd85fffffdfe4}, + {0x9737fe37, 0xffffd85fffffdfe5}, + {0x9737fe38, 0xffffd85fffffdfe6}, + {0x9737fe39, 0xffffd85fffffdfe7}, + {0x97388130, 0xffffd85fffffdfe8}, + {0x97388131, 0xffffd85fffffdfe9}, + {0x97388132, 0xffffd85fffffdfea}, + {0x97388133, 0xffffd85fffffdfeb}, + {0x97388134, 0xffffd85fffffdfec}, + {0x97388135, 0xffffd85fffffdfed}, + {0x97388136, 0xffffd85fffffdfee}, + {0x97388137, 0xffffd85fffffdfef}, + {0x97388138, 0xffffd85fffffdff0}, + {0x97388139, 0xffffd85fffffdff1}, + {0x97388230, 0xffffd85fffffdff2}, + {0x97388231, 0xffffd85fffffdff3}, + {0x97388232, 0xffffd85fffffdff4}, + {0x97388233, 0xffffd85fffffdff5}, + {0x97388234, 0xffffd85fffffdff6}, + {0x97388235, 0xffffd85fffffdff7}, + {0x97388236, 0xffffd85fffffdff8}, + {0x97388237, 0xffffd85fffffdff9}, + {0x97388238, 0xffffd85fffffdffa}, + {0x97388239, 0xffffd85fffffdffb}, + {0x97388330, 0xffffd85fffffdffc}, + {0x97388331, 0xffffd85fffffdffd}, + {0x97388332, 0xffffd85fffffdffe}, + {0x97388333, 0xffffd85fffffdfff}, + {0x97388334, 0xffffd860ffffdc00}, + {0x97388335, 0xffffd860ffffdc01}, + {0x97388336, 0xffffd860ffffdc02}, + {0x97388337, 0xffffd860ffffdc03}, + {0x97388338, 0xffffd860ffffdc04}, + {0x97388339, 0xffffd860ffffdc05}, + {0x97388430, 0xffffd860ffffdc06}, + {0x97388431, 0xffffd860ffffdc07}, + {0x97388432, 0xffffd860ffffdc08}, + {0x97388433, 0xffffd860ffffdc09}, + {0x97388434, 0xffffd860ffffdc0a}, + {0x97388435, 0xffffd860ffffdc0b}, + {0x97388436, 0xffffd860ffffdc0c}, + {0x97388437, 0xffffd860ffffdc0d}, + {0x97388438, 0xffffd860ffffdc0e}, + {0x97388439, 0xffffd860ffffdc0f}, + {0x97388530, 0xffffd860ffffdc10}, + {0x97388531, 0xffffd860ffffdc11}, + {0x97388532, 0xffffd860ffffdc12}, + {0x97388533, 0xffffd860ffffdc13}, + {0x97388534, 0xffffd860ffffdc14}, + {0x97388535, 0xffffd860ffffdc15}, + {0x97388536, 0xffffd860ffffdc16}, + {0x97388537, 0xffffd860ffffdc17}, + {0x97388538, 0xffffd860ffffdc18}, + {0x97388539, 0xffffd860ffffdc19}, + {0x97388630, 0xffffd860ffffdc1a}, + {0x97388631, 0xffffd860ffffdc1b}, + {0x97388632, 0xffffd860ffffdc1c}, + {0x97388633, 0xffffd860ffffdc1d}, + {0x97388634, 0xffffd860ffffdc1e}, + {0x97388635, 0xffffd860ffffdc1f}, + {0x97388636, 0xffffd860ffffdc20}, + {0x97388637, 0xffffd860ffffdc21}, + {0x97388638, 0xffffd860ffffdc22}, + {0x97388639, 0xffffd860ffffdc23}, + {0x97388730, 0xffffd860ffffdc24}, + {0x97388731, 0xffffd860ffffdc25}, + {0x97388732, 0xffffd860ffffdc26}, + {0x97388733, 0xffffd860ffffdc27}, + {0x97388734, 0xffffd860ffffdc28}, + {0x97388735, 0xffffd860ffffdc29}, + {0x97388736, 0xffffd860ffffdc2a}, + {0x97388737, 0xffffd860ffffdc2b}, + {0x97388738, 0xffffd860ffffdc2c}, + {0x97388739, 0xffffd860ffffdc2d}, + {0x97388830, 0xffffd860ffffdc2e}, + {0x97388831, 0xffffd860ffffdc2f}, + {0x97388832, 0xffffd860ffffdc30}, + {0x97388833, 0xffffd860ffffdc31}, + {0x97388834, 0xffffd860ffffdc32}, + {0x97388835, 0xffffd860ffffdc33}, + {0x97388836, 0xffffd860ffffdc34}, + {0x97388837, 0xffffd860ffffdc35}, + {0x97388838, 0xffffd860ffffdc36}, + {0x97388839, 0xffffd860ffffdc37}, + {0x97388930, 0xffffd860ffffdc38}, + {0x97388931, 0xffffd860ffffdc39}, + {0x97388932, 0xffffd860ffffdc3a}, + {0x97388933, 0xffffd860ffffdc3b}, + {0x97388934, 0xffffd860ffffdc3c}, + {0x97388935, 0xffffd860ffffdc3d}, + {0x97388936, 0xffffd860ffffdc3e}, + {0x97388937, 0xffffd860ffffdc3f}, + {0x97388938, 0xffffd860ffffdc40}, + {0x97388939, 0xffffd860ffffdc41}, + {0x97388a30, 0xffffd860ffffdc42}, + {0x97388a31, 0xffffd860ffffdc43}, + {0x97388a32, 0xffffd860ffffdc44}, + {0x97388a33, 0xffffd860ffffdc45}, + {0x97388a34, 0xffffd860ffffdc46}, + {0x97388a35, 0xffffd860ffffdc47}, + {0x97388a36, 0xffffd860ffffdc48}, + {0x97388a37, 0xffffd860ffffdc49}, + {0x97388a38, 0xffffd860ffffdc4a}, + {0x97388a39, 0xffffd860ffffdc4b}, + {0x97388b30, 0xffffd860ffffdc4c}, + {0x97388b31, 0xffffd860ffffdc4d}, + {0x97388b32, 0xffffd860ffffdc4e}, + {0x97388b33, 0xffffd860ffffdc4f}, + {0x97388b34, 0xffffd860ffffdc50}, + {0x97388b35, 0xffffd860ffffdc51}, + {0x97388b36, 0xffffd860ffffdc52}, + {0x97388b37, 0xffffd860ffffdc53}, + {0x97388b38, 0xffffd860ffffdc54}, + {0x97388b39, 0xffffd860ffffdc55}, + {0x97388c30, 0xffffd860ffffdc56}, + {0x97388c31, 0xffffd860ffffdc57}, + {0x97388c32, 0xffffd860ffffdc58}, + {0x97388c33, 0xffffd860ffffdc59}, + {0x97388c34, 0xffffd860ffffdc5a}, + {0x97388c35, 0xffffd860ffffdc5b}, + {0x97388c36, 0xffffd860ffffdc5c}, + {0x97388c37, 0xffffd860ffffdc5d}, + {0x97388c38, 0xffffd860ffffdc5e}, + {0x97388c39, 0xffffd860ffffdc5f}, + {0x97388d30, 0xffffd860ffffdc60}, + {0x97388d31, 0xffffd860ffffdc61}, + {0x97388d32, 0xffffd860ffffdc62}, + {0x97388d33, 0xffffd860ffffdc63}, + {0x97388d34, 0xffffd860ffffdc64}, + {0x97388d35, 0xffffd860ffffdc65}, + {0x97388d36, 0xffffd860ffffdc66}, + {0x97388d37, 0xffffd860ffffdc67}, + {0x97388d38, 0xffffd860ffffdc68}, + {0x97388d39, 0xffffd860ffffdc69}, + {0x97388e30, 0xffffd860ffffdc6a}, + {0x97388e31, 0xffffd860ffffdc6b}, + {0x97388e32, 0xffffd860ffffdc6c}, + {0x97388e33, 0xffffd860ffffdc6d}, + {0x97388e34, 0xffffd860ffffdc6e}, + {0x97388e35, 0xffffd860ffffdc6f}, + {0x97388e36, 0xffffd860ffffdc70}, + {0x97388e37, 0xffffd860ffffdc71}, + {0x97388e38, 0xffffd860ffffdc72}, + {0x97388e39, 0xffffd860ffffdc73}, + {0x97388f30, 0xffffd860ffffdc74}, + {0x97388f31, 0xffffd860ffffdc75}, + {0x97388f32, 0xffffd860ffffdc76}, + {0x97388f33, 0xffffd860ffffdc77}, + {0x97388f34, 0xffffd860ffffdc78}, + {0x97388f35, 0xffffd860ffffdc79}, + {0x97388f36, 0xffffd860ffffdc7a}, + {0x97388f37, 0xffffd860ffffdc7b}, + {0x97388f38, 0xffffd860ffffdc7c}, + {0x97388f39, 0xffffd860ffffdc7d}, + {0x97389030, 0xffffd860ffffdc7e}, + {0x97389031, 0xffffd860ffffdc7f}, + {0x97389032, 0xffffd860ffffdc80}, + {0x97389033, 0xffffd860ffffdc81}, + {0x97389034, 0xffffd860ffffdc82}, + {0x97389035, 0xffffd860ffffdc83}, + {0x97389036, 0xffffd860ffffdc84}, + {0x97389037, 0xffffd860ffffdc85}, + {0x97389038, 0xffffd860ffffdc86}, + {0x97389039, 0xffffd860ffffdc87}, + {0x97389130, 0xffffd860ffffdc88}, + {0x97389131, 0xffffd860ffffdc89}, + {0x97389132, 0xffffd860ffffdc8a}, + {0x97389133, 0xffffd860ffffdc8b}, + {0x97389134, 0xffffd860ffffdc8c}, + {0x97389135, 0xffffd860ffffdc8d}, + {0x97389136, 0xffffd860ffffdc8e}, + {0x97389137, 0xffffd860ffffdc8f}, + {0x97389138, 0xffffd860ffffdc90}, + {0x97389139, 0xffffd860ffffdc91}, + {0x97389230, 0xffffd860ffffdc92}, + {0x97389231, 0xffffd860ffffdc93}, + {0x97389232, 0xffffd860ffffdc94}, + {0x97389233, 0xffffd860ffffdc95}, + {0x97389234, 0xffffd860ffffdc96}, + {0x97389235, 0xffffd860ffffdc97}, + {0x97389236, 0xffffd860ffffdc98}, + {0x97389237, 0xffffd860ffffdc99}, + {0x97389238, 0xffffd860ffffdc9a}, + {0x97389239, 0xffffd860ffffdc9b}, + {0x97389330, 0xffffd860ffffdc9c}, + {0x97389331, 0xffffd860ffffdc9d}, + {0x97389332, 0xffffd860ffffdc9e}, + {0x97389333, 0xffffd860ffffdc9f}, + {0x97389334, 0xffffd860ffffdca0}, + {0x97389335, 0xffffd860ffffdca1}, + {0x97389336, 0xffffd860ffffdca2}, + {0x97389337, 0xffffd860ffffdca3}, + {0x97389338, 0xffffd860ffffdca4}, + {0x97389339, 0xffffd860ffffdca5}, + {0x97389430, 0xffffd860ffffdca6}, + {0x97389431, 0xffffd860ffffdca7}, + {0x97389432, 0xffffd860ffffdca8}, + {0x97389433, 0xffffd860ffffdca9}, + {0x97389434, 0xffffd860ffffdcaa}, + {0x97389435, 0xffffd860ffffdcab}, + {0x97389436, 0xffffd860ffffdcac}, + {0x97389437, 0xffffd860ffffdcad}, + {0x97389438, 0xffffd860ffffdcae}, + {0x97389439, 0xffffd860ffffdcaf}, + {0x97389530, 0xffffd860ffffdcb0}, + {0x97389531, 0xffffd860ffffdcb1}, + {0x97389532, 0xffffd860ffffdcb2}, + {0x97389533, 0xffffd860ffffdcb3}, + {0x97389534, 0xffffd860ffffdcb4}, + {0x97389535, 0xffffd860ffffdcb5}, + {0x97389536, 0xffffd860ffffdcb6}, + {0x97389537, 0xffffd860ffffdcb7}, + {0x97389538, 0xffffd860ffffdcb8}, + {0x97389539, 0xffffd860ffffdcb9}, + {0x97389630, 0xffffd860ffffdcba}, + {0x97389631, 0xffffd860ffffdcbb}, + {0x97389632, 0xffffd860ffffdcbc}, + {0x97389633, 0xffffd860ffffdcbd}, + {0x97389634, 0xffffd860ffffdcbe}, + {0x97389635, 0xffffd860ffffdcbf}, + {0x97389636, 0xffffd860ffffdcc0}, + {0x97389637, 0xffffd860ffffdcc1}, + {0x97389638, 0xffffd860ffffdcc2}, + {0x97389639, 0xffffd860ffffdcc3}, + {0x97389730, 0xffffd860ffffdcc4}, + {0x97389731, 0xffffd860ffffdcc5}, + {0x97389732, 0xffffd860ffffdcc6}, + {0x97389733, 0xffffd860ffffdcc7}, + {0x97389734, 0xffffd860ffffdcc8}, + {0x97389735, 0xffffd860ffffdcc9}, + {0x97389736, 0xffffd860ffffdcca}, + {0x97389737, 0xffffd860ffffdccb}, + {0x97389738, 0xffffd860ffffdccc}, + {0x97389739, 0xffffd860ffffdccd}, + {0x97389830, 0xffffd860ffffdcce}, + {0x97389831, 0xffffd860ffffdccf}, + {0x97389832, 0xffffd860ffffdcd0}, + {0x97389833, 0xffffd860ffffdcd1}, + {0x97389834, 0xffffd860ffffdcd2}, + {0x97389835, 0xffffd860ffffdcd3}, + {0x97389836, 0xffffd860ffffdcd4}, + {0x97389837, 0xffffd860ffffdcd5}, + {0x97389838, 0xffffd860ffffdcd6}, + {0x97389839, 0xffffd860ffffdcd7}, + {0x97389930, 0xffffd860ffffdcd8}, + {0x97389931, 0xffffd860ffffdcd9}, + {0x97389932, 0xffffd860ffffdcda}, + {0x97389933, 0xffffd860ffffdcdb}, + {0x97389934, 0xffffd860ffffdcdc}, + {0x97389935, 0xffffd860ffffdcdd}, + {0x97389936, 0xffffd860ffffdcde}, + {0x97389937, 0xffffd860ffffdcdf}, + {0x97389938, 0xffffd860ffffdce0}, + {0x97389939, 0xffffd860ffffdce1}, + {0x97389a30, 0xffffd860ffffdce2}, + {0x97389a31, 0xffffd860ffffdce3}, + {0x97389a32, 0xffffd860ffffdce4}, + {0x97389a33, 0xffffd860ffffdce5}, + {0x97389a34, 0xffffd860ffffdce6}, + {0x97389a35, 0xffffd860ffffdce7}, + {0x97389a36, 0xffffd860ffffdce8}, + {0x97389a37, 0xffffd860ffffdce9}, + {0x97389a38, 0xffffd860ffffdcea}, + {0x97389a39, 0xffffd860ffffdceb}, + {0x97389b30, 0xffffd860ffffdcec}, + {0x97389b31, 0xffffd860ffffdced}, + {0x97389b32, 0xffffd860ffffdcee}, + {0x97389b33, 0xffffd860ffffdcef}, + {0x97389b34, 0xffffd860ffffdcf0}, + {0x97389b35, 0xffffd860ffffdcf1}, + {0x97389b36, 0xffffd860ffffdcf2}, + {0x97389b37, 0xffffd860ffffdcf3}, + {0x97389b38, 0xffffd860ffffdcf4}, + {0x97389b39, 0xffffd860ffffdcf5}, + {0x97389c30, 0xffffd860ffffdcf6}, + {0x97389c31, 0xffffd860ffffdcf7}, + {0x97389c32, 0xffffd860ffffdcf8}, + {0x97389c33, 0xffffd860ffffdcf9}, + {0x97389c34, 0xffffd860ffffdcfa}, + {0x97389c35, 0xffffd860ffffdcfb}, + {0x97389c36, 0xffffd860ffffdcfc}, + {0x97389c37, 0xffffd860ffffdcfd}, + {0x97389c38, 0xffffd860ffffdcfe}, + {0x97389c39, 0xffffd860ffffdcff}, + {0x97389d30, 0xffffd860ffffdd00}, + {0x97389d31, 0xffffd860ffffdd01}, + {0x97389d32, 0xffffd860ffffdd02}, + {0x97389d33, 0xffffd860ffffdd03}, + {0x97389d34, 0xffffd860ffffdd04}, + {0x97389d35, 0xffffd860ffffdd05}, + {0x97389d36, 0xffffd860ffffdd06}, + {0x97389d37, 0xffffd860ffffdd07}, + {0x97389d38, 0xffffd860ffffdd08}, + {0x97389d39, 0xffffd860ffffdd09}, + {0x97389e30, 0xffffd860ffffdd0a}, + {0x97389e31, 0xffffd860ffffdd0b}, + {0x97389e32, 0xffffd860ffffdd0c}, + {0x97389e33, 0xffffd860ffffdd0d}, + {0x97389e34, 0xffffd860ffffdd0e}, + {0x97389e35, 0xffffd860ffffdd0f}, + {0x97389e36, 0xffffd860ffffdd10}, + {0x97389e37, 0xffffd860ffffdd11}, + {0x97389e38, 0xffffd860ffffdd12}, + {0x97389e39, 0xffffd860ffffdd13}, + {0x97389f30, 0xffffd860ffffdd14}, + {0x97389f31, 0xffffd860ffffdd15}, + {0x97389f32, 0xffffd860ffffdd16}, + {0x97389f33, 0xffffd860ffffdd17}, + {0x97389f34, 0xffffd860ffffdd18}, + {0x97389f35, 0xffffd860ffffdd19}, + {0x97389f36, 0xffffd860ffffdd1a}, + {0x97389f37, 0xffffd860ffffdd1b}, + {0x97389f38, 0xffffd860ffffdd1c}, + {0x97389f39, 0xffffd860ffffdd1d}, + {0x9738a030, 0xffffd860ffffdd1e}, + {0x9738a031, 0xffffd860ffffdd1f}, + {0x9738a032, 0xffffd860ffffdd20}, + {0x9738a033, 0xffffd860ffffdd21}, + {0x9738a034, 0xffffd860ffffdd22}, + {0x9738a035, 0xffffd860ffffdd23}, + {0x9738a036, 0xffffd860ffffdd24}, + {0x9738a037, 0xffffd860ffffdd25}, + {0x9738a038, 0xffffd860ffffdd26}, + {0x9738a039, 0xffffd860ffffdd27}, + {0x9738a130, 0xffffd860ffffdd28}, + {0x9738a131, 0xffffd860ffffdd29}, + {0x9738a132, 0xffffd860ffffdd2a}, + {0x9738a133, 0xffffd860ffffdd2b}, + {0x9738a134, 0xffffd860ffffdd2c}, + {0x9738a135, 0xffffd860ffffdd2d}, + {0x9738a136, 0xffffd860ffffdd2e}, + {0x9738a137, 0xffffd860ffffdd2f}, + {0x9738a138, 0xffffd860ffffdd30}, + {0x9738a139, 0xffffd860ffffdd31}, + {0x9738a230, 0xffffd860ffffdd32}, + {0x9738a231, 0xffffd860ffffdd33}, + {0x9738a232, 0xffffd860ffffdd34}, + {0x9738a233, 0xffffd860ffffdd35}, + {0x9738a234, 0xffffd860ffffdd36}, + {0x9738a235, 0xffffd860ffffdd37}, + {0x9738a236, 0xffffd860ffffdd38}, + {0x9738a237, 0xffffd860ffffdd39}, + {0x9738a238, 0xffffd860ffffdd3a}, + {0x9738a239, 0xffffd860ffffdd3b}, + {0x9738a330, 0xffffd860ffffdd3c}, + {0x9738a331, 0xffffd860ffffdd3d}, + {0x9738a332, 0xffffd860ffffdd3e}, + {0x9738a333, 0xffffd860ffffdd3f}, + {0x9738a334, 0xffffd860ffffdd40}, + {0x9738a335, 0xffffd860ffffdd41}, + {0x9738a336, 0xffffd860ffffdd42}, + {0x9738a337, 0xffffd860ffffdd43}, + {0x9738a338, 0xffffd860ffffdd44}, + {0x9738a339, 0xffffd860ffffdd45}, + {0x9738a430, 0xffffd860ffffdd46}, + {0x9738a431, 0xffffd860ffffdd47}, + {0x9738a432, 0xffffd860ffffdd48}, + {0x9738a433, 0xffffd860ffffdd49}, + {0x9738a434, 0xffffd860ffffdd4a}, + {0x9738a435, 0xffffd860ffffdd4b}, + {0x9738a436, 0xffffd860ffffdd4c}, + {0x9738a437, 0xffffd860ffffdd4d}, + {0x9738a438, 0xffffd860ffffdd4e}, + {0x9738a439, 0xffffd860ffffdd4f}, + {0x9738a530, 0xffffd860ffffdd50}, + {0x9738a531, 0xffffd860ffffdd51}, + {0x9738a532, 0xffffd860ffffdd52}, + {0x9738a533, 0xffffd860ffffdd53}, + {0x9738a534, 0xffffd860ffffdd54}, + {0x9738a535, 0xffffd860ffffdd55}, + {0x9738a536, 0xffffd860ffffdd56}, + {0x9738a537, 0xffffd860ffffdd57}, + {0x9738a538, 0xffffd860ffffdd58}, + {0x9738a539, 0xffffd860ffffdd59}, + {0x9738a630, 0xffffd860ffffdd5a}, + {0x9738a631, 0xffffd860ffffdd5b}, + {0x9738a632, 0xffffd860ffffdd5c}, + {0x9738a633, 0xffffd860ffffdd5d}, + {0x9738a634, 0xffffd860ffffdd5e}, + {0x9738a635, 0xffffd860ffffdd5f}, + {0x9738a636, 0xffffd860ffffdd60}, + {0x9738a637, 0xffffd860ffffdd61}, + {0x9738a638, 0xffffd860ffffdd62}, + {0x9738a639, 0xffffd860ffffdd63}, + {0x9738a730, 0xffffd860ffffdd64}, + {0x9738a731, 0xffffd860ffffdd65}, + {0x9738a732, 0xffffd860ffffdd66}, + {0x9738a733, 0xffffd860ffffdd67}, + {0x9738a734, 0xffffd860ffffdd68}, + {0x9738a735, 0xffffd860ffffdd69}, + {0x9738a736, 0xffffd860ffffdd6a}, + {0x9738a737, 0xffffd860ffffdd6b}, + {0x9738a738, 0xffffd860ffffdd6c}, + {0x9738a739, 0xffffd860ffffdd6d}, + {0x9738a830, 0xffffd860ffffdd6e}, + {0x9738a831, 0xffffd860ffffdd6f}, + {0x9738a832, 0xffffd860ffffdd70}, + {0x9738a833, 0xffffd860ffffdd71}, + {0x9738a834, 0xffffd860ffffdd72}, + {0x9738a835, 0xffffd860ffffdd73}, + {0x9738a836, 0xffffd860ffffdd74}, + {0x9738a837, 0xffffd860ffffdd75}, + {0x9738a838, 0xffffd860ffffdd76}, + {0x9738a839, 0xffffd860ffffdd77}, + {0x9738a930, 0xffffd860ffffdd78}, + {0x9738a931, 0xffffd860ffffdd79}, + {0x9738a932, 0xffffd860ffffdd7a}, + {0x9738a933, 0xffffd860ffffdd7b}, + {0x9738a934, 0xffffd860ffffdd7c}, + {0x9738a935, 0xffffd860ffffdd7d}, + {0x9738a936, 0xffffd860ffffdd7e}, + {0x9738a937, 0xffffd860ffffdd7f}, + {0x9738a938, 0xffffd860ffffdd80}, + {0x9738a939, 0xffffd860ffffdd81}, + {0x9738aa30, 0xffffd860ffffdd82}, + {0x9738aa31, 0xffffd860ffffdd83}, + {0x9738aa32, 0xffffd860ffffdd84}, + {0x9738aa33, 0xffffd860ffffdd85}, + {0x9738aa34, 0xffffd860ffffdd86}, + {0x9738aa35, 0xffffd860ffffdd87}, + {0x9738aa36, 0xffffd860ffffdd88}, + {0x9738aa37, 0xffffd860ffffdd89}, + {0x9738aa38, 0xffffd860ffffdd8a}, + {0x9738aa39, 0xffffd860ffffdd8b}, + {0x9738ab30, 0xffffd860ffffdd8c}, + {0x9738ab31, 0xffffd860ffffdd8d}, + {0x9738ab32, 0xffffd860ffffdd8e}, + {0x9738ab33, 0xffffd860ffffdd8f}, + {0x9738ab34, 0xffffd860ffffdd90}, + {0x9738ab35, 0xffffd860ffffdd91}, + {0x9738ab36, 0xffffd860ffffdd92}, + {0x9738ab37, 0xffffd860ffffdd93}, + {0x9738ab38, 0xffffd860ffffdd94}, + {0x9738ab39, 0xffffd860ffffdd95}, + {0x9738ac30, 0xffffd860ffffdd96}, + {0x9738ac31, 0xffffd860ffffdd97}, + {0x9738ac32, 0xffffd860ffffdd98}, + {0x9738ac33, 0xffffd860ffffdd99}, + {0x9738ac34, 0xffffd860ffffdd9a}, + {0x9738ac35, 0xffffd860ffffdd9b}, + {0x9738ac36, 0xffffd860ffffdd9c}, + {0x9738ac37, 0xffffd860ffffdd9d}, + {0x9738ac38, 0xffffd860ffffdd9e}, + {0x9738ac39, 0xffffd860ffffdd9f}, + {0x9738ad30, 0xffffd860ffffdda0}, + {0x9738ad31, 0xffffd860ffffdda1}, + {0x9738ad32, 0xffffd860ffffdda2}, + {0x9738ad33, 0xffffd860ffffdda3}, + {0x9738ad34, 0xffffd860ffffdda4}, + {0x9738ad35, 0xffffd860ffffdda5}, + {0x9738ad36, 0xffffd860ffffdda6}, + {0x9738ad37, 0xffffd860ffffdda7}, + {0x9738ad38, 0xffffd860ffffdda8}, + {0x9738ad39, 0xffffd860ffffdda9}, + {0x9738ae30, 0xffffd860ffffddaa}, + {0x9738ae31, 0xffffd860ffffddab}, + {0x9738ae32, 0xffffd860ffffddac}, + {0x9738ae33, 0xffffd860ffffddad}, + {0x9738ae34, 0xffffd860ffffddae}, + {0x9738ae35, 0xffffd860ffffddaf}, + {0x9738ae36, 0xffffd860ffffddb0}, + {0x9738ae37, 0xffffd860ffffddb1}, + {0x9738ae38, 0xffffd860ffffddb2}, + {0x9738ae39, 0xffffd860ffffddb3}, + {0x9738af30, 0xffffd860ffffddb4}, + {0x9738af31, 0xffffd860ffffddb5}, + {0x9738af32, 0xffffd860ffffddb6}, + {0x9738af33, 0xffffd860ffffddb7}, + {0x9738af34, 0xffffd860ffffddb8}, + {0x9738af35, 0xffffd860ffffddb9}, + {0x9738af36, 0xffffd860ffffddba}, + {0x9738af37, 0xffffd860ffffddbb}, + {0x9738af38, 0xffffd860ffffddbc}, + {0x9738af39, 0xffffd860ffffddbd}, + {0x9738b030, 0xffffd860ffffddbe}, + {0x9738b031, 0xffffd860ffffddbf}, + {0x9738b032, 0xffffd860ffffddc0}, + {0x9738b033, 0xffffd860ffffddc1}, + {0x9738b034, 0xffffd860ffffddc2}, + {0x9738b035, 0xffffd860ffffddc3}, + {0x9738b036, 0xffffd860ffffddc4}, + {0x9738b037, 0xffffd860ffffddc5}, + {0x9738b038, 0xffffd860ffffddc6}, + {0x9738b039, 0xffffd860ffffddc7}, + {0x9738b130, 0xffffd860ffffddc8}, + {0x9738b131, 0xffffd860ffffddc9}, + {0x9738b132, 0xffffd860ffffddca}, + {0x9738b133, 0xffffd860ffffddcb}, + {0x9738b134, 0xffffd860ffffddcc}, + {0x9738b135, 0xffffd860ffffddcd}, + {0x9738b136, 0xffffd860ffffddce}, + {0x9738b137, 0xffffd860ffffddcf}, + {0x9738b138, 0xffffd860ffffddd0}, + {0x9738b139, 0xffffd860ffffddd1}, + {0x9738b230, 0xffffd860ffffddd2}, + {0x9738b231, 0xffffd860ffffddd3}, + {0x9738b232, 0xffffd860ffffddd4}, + {0x9738b233, 0xffffd860ffffddd5}, + {0x9738b234, 0xffffd860ffffddd6}, + {0x9738b235, 0xffffd860ffffddd7}, + {0x9738b236, 0xffffd860ffffddd8}, + {0x9738b237, 0xffffd860ffffddd9}, + {0x9738b238, 0xffffd860ffffddda}, + {0x9738b239, 0xffffd860ffffdddb}, + {0x9738b330, 0xffffd860ffffdddc}, + {0x9738b331, 0xffffd860ffffdddd}, + {0x9738b332, 0xffffd860ffffddde}, + {0x9738b333, 0xffffd860ffffdddf}, + {0x9738b334, 0xffffd860ffffdde0}, + {0x9738b335, 0xffffd860ffffdde1}, + {0x9738b336, 0xffffd860ffffdde2}, + {0x9738b337, 0xffffd860ffffdde3}, + {0x9738b338, 0xffffd860ffffdde4}, + {0x9738b339, 0xffffd860ffffdde5}, + {0x9738b430, 0xffffd860ffffdde6}, + {0x9738b431, 0xffffd860ffffdde7}, + {0x9738b432, 0xffffd860ffffdde8}, + {0x9738b433, 0xffffd860ffffdde9}, + {0x9738b434, 0xffffd860ffffddea}, + {0x9738b435, 0xffffd860ffffddeb}, + {0x9738b436, 0xffffd860ffffddec}, + {0x9738b437, 0xffffd860ffffdded}, + {0x9738b438, 0xffffd860ffffddee}, + {0x9738b439, 0xffffd860ffffddef}, + {0x9738b530, 0xffffd860ffffddf0}, + {0x9738b531, 0xffffd860ffffddf1}, + {0x9738b532, 0xffffd860ffffddf2}, + {0x9738b533, 0xffffd860ffffddf3}, + {0x9738b534, 0xffffd860ffffddf4}, + {0x9738b535, 0xffffd860ffffddf5}, + {0x9738b536, 0xffffd860ffffddf6}, + {0x9738b537, 0xffffd860ffffddf7}, + {0x9738b538, 0xffffd860ffffddf8}, + {0x9738b539, 0xffffd860ffffddf9}, + {0x9738b630, 0xffffd860ffffddfa}, + {0x9738b631, 0xffffd860ffffddfb}, + {0x9738b632, 0xffffd860ffffddfc}, + {0x9738b633, 0xffffd860ffffddfd}, + {0x9738b634, 0xffffd860ffffddfe}, + {0x9738b635, 0xffffd860ffffddff}, + {0x9738b636, 0xffffd860ffffde00}, + {0x9738b637, 0xffffd860ffffde01}, + {0x9738b638, 0xffffd860ffffde02}, + {0x9738b639, 0xffffd860ffffde03}, + {0x9738b730, 0xffffd860ffffde04}, + {0x9738b731, 0xffffd860ffffde05}, + {0x9738b732, 0xffffd860ffffde06}, + {0x9738b733, 0xffffd860ffffde07}, + {0x9738b734, 0xffffd860ffffde08}, + {0x9738b735, 0xffffd860ffffde09}, + {0x9738b736, 0xffffd860ffffde0a}, + {0x9738b737, 0xffffd860ffffde0b}, + {0x9738b738, 0xffffd860ffffde0c}, + {0x9738b739, 0xffffd860ffffde0d}, + {0x9738b830, 0xffffd860ffffde0e}, + {0x9738b831, 0xffffd860ffffde0f}, + {0x9738b832, 0xffffd860ffffde10}, + {0x9738b833, 0xffffd860ffffde11}, + {0x9738b834, 0xffffd860ffffde12}, + {0x9738b835, 0xffffd860ffffde13}, + {0x9738b836, 0xffffd860ffffde14}, + {0x9738b837, 0xffffd860ffffde15}, + {0x9738b838, 0xffffd860ffffde16}, + {0x9738b839, 0xffffd860ffffde17}, + {0x9738b930, 0xffffd860ffffde18}, + {0x9738b931, 0xffffd860ffffde19}, + {0x9738b932, 0xffffd860ffffde1a}, + {0x9738b933, 0xffffd860ffffde1b}, + {0x9738b934, 0xffffd860ffffde1c}, + {0x9738b935, 0xffffd860ffffde1d}, + {0x9738b936, 0xffffd860ffffde1e}, + {0x9738b937, 0xffffd860ffffde1f}, + {0x9738b938, 0xffffd860ffffde20}, + {0x9738b939, 0xffffd860ffffde21}, + {0x9738ba30, 0xffffd860ffffde22}, + {0x9738ba31, 0xffffd860ffffde23}, + {0x9738ba32, 0xffffd860ffffde24}, + {0x9738ba33, 0xffffd860ffffde25}, + {0x9738ba34, 0xffffd860ffffde26}, + {0x9738ba35, 0xffffd860ffffde27}, + {0x9738ba36, 0xffffd860ffffde28}, + {0x9738ba37, 0xffffd860ffffde29}, + {0x9738ba38, 0xffffd860ffffde2a}, + {0x9738ba39, 0xffffd860ffffde2b}, + {0x9738bb30, 0xffffd860ffffde2c}, + {0x9738bb31, 0xffffd860ffffde2d}, + {0x9738bb32, 0xffffd860ffffde2e}, + {0x9738bb33, 0xffffd860ffffde2f}, + {0x9738bb34, 0xffffd860ffffde30}, + {0x9738bb35, 0xffffd860ffffde31}, + {0x9738bb36, 0xffffd860ffffde32}, + {0x9738bb37, 0xffffd860ffffde33}, + {0x9738bb38, 0xffffd860ffffde34}, + {0x9738bb39, 0xffffd860ffffde35}, + {0x9738bc30, 0xffffd860ffffde36}, + {0x9738bc31, 0xffffd860ffffde37}, + {0x9738bc32, 0xffffd860ffffde38}, + {0x9738bc33, 0xffffd860ffffde39}, + {0x9738bc34, 0xffffd860ffffde3a}, + {0x9738bc35, 0xffffd860ffffde3b}, + {0x9738bc36, 0xffffd860ffffde3c}, + {0x9738bc37, 0xffffd860ffffde3d}, + {0x9738bc38, 0xffffd860ffffde3e}, + {0x9738bc39, 0xffffd860ffffde3f}, + {0x9738bd30, 0xffffd860ffffde40}, + {0x9738bd31, 0xffffd860ffffde41}, + {0x9738bd32, 0xffffd860ffffde42}, + {0x9738bd33, 0xffffd860ffffde43}, + {0x9738bd34, 0xffffd860ffffde44}, + {0x9738bd35, 0xffffd860ffffde45}, + {0x9738bd36, 0xffffd860ffffde46}, + {0x9738bd37, 0xffffd860ffffde47}, + {0x9738bd38, 0xffffd860ffffde48}, + {0x9738bd39, 0xffffd860ffffde49}, + {0x9738be30, 0xffffd860ffffde4a}, + {0x9738be31, 0xffffd860ffffde4b}, + {0x9738be32, 0xffffd860ffffde4c}, + {0x9738be33, 0xffffd860ffffde4d}, + {0x9738be34, 0xffffd860ffffde4e}, + {0x9738be35, 0xffffd860ffffde4f}, + {0x9738be36, 0xffffd860ffffde50}, + {0x9738be37, 0xffffd860ffffde51}, + {0x9738be38, 0xffffd860ffffde52}, + {0x9738be39, 0xffffd860ffffde53}, + {0x9738bf30, 0xffffd860ffffde54}, + {0x9738bf31, 0xffffd860ffffde55}, + {0x9738bf32, 0xffffd860ffffde56}, + {0x9738bf33, 0xffffd860ffffde57}, + {0x9738bf34, 0xffffd860ffffde58}, + {0x9738bf35, 0xffffd860ffffde59}, + {0x9738bf36, 0xffffd860ffffde5a}, + {0x9738bf37, 0xffffd860ffffde5b}, + {0x9738bf38, 0xffffd860ffffde5c}, + {0x9738bf39, 0xffffd860ffffde5d}, + {0x9738c030, 0xffffd860ffffde5e}, + {0x9738c031, 0xffffd860ffffde5f}, + {0x9738c032, 0xffffd860ffffde60}, + {0x9738c033, 0xffffd860ffffde61}, + {0x9738c034, 0xffffd860ffffde62}, + {0x9738c035, 0xffffd860ffffde63}, + {0x9738c036, 0xffffd860ffffde64}, + {0x9738c037, 0xffffd860ffffde65}, + {0x9738c038, 0xffffd860ffffde66}, + {0x9738c039, 0xffffd860ffffde67}, + {0x9738c130, 0xffffd860ffffde68}, + {0x9738c131, 0xffffd860ffffde69}, + {0x9738c132, 0xffffd860ffffde6a}, + {0x9738c133, 0xffffd860ffffde6b}, + {0x9738c134, 0xffffd860ffffde6c}, + {0x9738c135, 0xffffd860ffffde6d}, + {0x9738c136, 0xffffd860ffffde6e}, + {0x9738c137, 0xffffd860ffffde6f}, + {0x9738c138, 0xffffd860ffffde70}, + {0x9738c139, 0xffffd860ffffde71}, + {0x9738c230, 0xffffd860ffffde72}, + {0x9738c231, 0xffffd860ffffde73}, + {0x9738c232, 0xffffd860ffffde74}, + {0x9738c233, 0xffffd860ffffde75}, + {0x9738c234, 0xffffd860ffffde76}, + {0x9738c235, 0xffffd860ffffde77}, + {0x9738c236, 0xffffd860ffffde78}, + {0x9738c237, 0xffffd860ffffde79}, + {0x9738c238, 0xffffd860ffffde7a}, + {0x9738c239, 0xffffd860ffffde7b}, + {0x9738c330, 0xffffd860ffffde7c}, + {0x9738c331, 0xffffd860ffffde7d}, + {0x9738c332, 0xffffd860ffffde7e}, + {0x9738c333, 0xffffd860ffffde7f}, + {0x9738c334, 0xffffd860ffffde80}, + {0x9738c335, 0xffffd860ffffde81}, + {0x9738c336, 0xffffd860ffffde82}, + {0x9738c337, 0xffffd860ffffde83}, + {0x9738c338, 0xffffd860ffffde84}, + {0x9738c339, 0xffffd860ffffde85}, + {0x9738c430, 0xffffd860ffffde86}, + {0x9738c431, 0xffffd860ffffde87}, + {0x9738c432, 0xffffd860ffffde88}, + {0x9738c433, 0xffffd860ffffde89}, + {0x9738c434, 0xffffd860ffffde8a}, + {0x9738c435, 0xffffd860ffffde8b}, + {0x9738c436, 0xffffd860ffffde8c}, + {0x9738c437, 0xffffd860ffffde8d}, + {0x9738c438, 0xffffd860ffffde8e}, + {0x9738c439, 0xffffd860ffffde8f}, + {0x9738c530, 0xffffd860ffffde90}, + {0x9738c531, 0xffffd860ffffde91}, + {0x9738c532, 0xffffd860ffffde92}, + {0x9738c533, 0xffffd860ffffde93}, + {0x9738c534, 0xffffd860ffffde94}, + {0x9738c535, 0xffffd860ffffde95}, + {0x9738c536, 0xffffd860ffffde96}, + {0x9738c537, 0xffffd860ffffde97}, + {0x9738c538, 0xffffd860ffffde98}, + {0x9738c539, 0xffffd860ffffde99}, + {0x9738c630, 0xffffd860ffffde9a}, + {0x9738c631, 0xffffd860ffffde9b}, + {0x9738c632, 0xffffd860ffffde9c}, + {0x9738c633, 0xffffd860ffffde9d}, + {0x9738c634, 0xffffd860ffffde9e}, + {0x9738c635, 0xffffd860ffffde9f}, + {0x9738c636, 0xffffd860ffffdea0}, + {0x9738c637, 0xffffd860ffffdea1}, + {0x9738c638, 0xffffd860ffffdea2}, + {0x9738c639, 0xffffd860ffffdea3}, + {0x9738c730, 0xffffd860ffffdea4}, + {0x9738c731, 0xffffd860ffffdea5}, + {0x9738c732, 0xffffd860ffffdea6}, + {0x9738c733, 0xffffd860ffffdea7}, + {0x9738c734, 0xffffd860ffffdea8}, + {0x9738c735, 0xffffd860ffffdea9}, + {0x9738c736, 0xffffd860ffffdeaa}, + {0x9738c737, 0xffffd860ffffdeab}, + {0x9738c738, 0xffffd860ffffdeac}, + {0x9738c739, 0xffffd860ffffdead}, + {0x9738c830, 0xffffd860ffffdeae}, + {0x9738c831, 0xffffd860ffffdeaf}, + {0x9738c832, 0xffffd860ffffdeb0}, + {0x9738c833, 0xffffd860ffffdeb1}, + {0x9738c834, 0xffffd860ffffdeb2}, + {0x9738c835, 0xffffd860ffffdeb3}, + {0x9738c836, 0xffffd860ffffdeb4}, + {0x9738c837, 0xffffd860ffffdeb5}, + {0x9738c838, 0xffffd860ffffdeb6}, + {0x9738c839, 0xffffd860ffffdeb7}, + {0x9738c930, 0xffffd860ffffdeb8}, + {0x9738c931, 0xffffd860ffffdeb9}, + {0x9738c932, 0xffffd860ffffdeba}, + {0x9738c933, 0xffffd860ffffdebb}, + {0x9738c934, 0xffffd860ffffdebc}, + {0x9738c935, 0xffffd860ffffdebd}, + {0x9738c936, 0xffffd860ffffdebe}, + {0x9738c937, 0xffffd860ffffdebf}, + {0x9738c938, 0xffffd860ffffdec0}, + {0x9738c939, 0xffffd860ffffdec1}, + {0x9738ca30, 0xffffd860ffffdec2}, + {0x9738ca31, 0xffffd860ffffdec3}, + {0x9738ca32, 0xffffd860ffffdec4}, + {0x9738ca33, 0xffffd860ffffdec5}, + {0x9738ca34, 0xffffd860ffffdec6}, + {0x9738ca35, 0xffffd860ffffdec7}, + {0x9738ca36, 0xffffd860ffffdec8}, + {0x9738ca37, 0xffffd860ffffdec9}, + {0x9738ca38, 0xffffd860ffffdeca}, + {0x9738ca39, 0xffffd860ffffdecb}, + {0x9738cb30, 0xffffd860ffffdecc}, + {0x9738cb31, 0xffffd860ffffdecd}, + {0x9738cb32, 0xffffd860ffffdece}, + {0x9738cb33, 0xffffd860ffffdecf}, + {0x9738cb34, 0xffffd860ffffded0}, + {0x9738cb35, 0xffffd860ffffded1}, + {0x9738cb36, 0xffffd860ffffded2}, + {0x9738cb37, 0xffffd860ffffded3}, + {0x9738cb38, 0xffffd860ffffded4}, + {0x9738cb39, 0xffffd860ffffded5}, + {0x9738cc30, 0xffffd860ffffded6}, + {0x9738cc31, 0xffffd860ffffded7}, + {0x9738cc32, 0xffffd860ffffded8}, + {0x9738cc33, 0xffffd860ffffded9}, + {0x9738cc34, 0xffffd860ffffdeda}, + {0x9738cc35, 0xffffd860ffffdedb}, + {0x9738cc36, 0xffffd860ffffdedc}, + {0x9738cc37, 0xffffd860ffffdedd}, + {0x9738cc38, 0xffffd860ffffdede}, + {0x9738cc39, 0xffffd860ffffdedf}, + {0x9738cd30, 0xffffd860ffffdee0}, + {0x9738cd31, 0xffffd860ffffdee1}, + {0x9738cd32, 0xffffd860ffffdee2}, + {0x9738cd33, 0xffffd860ffffdee3}, + {0x9738cd34, 0xffffd860ffffdee4}, + {0x9738cd35, 0xffffd860ffffdee5}, + {0x9738cd36, 0xffffd860ffffdee6}, + {0x9738cd37, 0xffffd860ffffdee7}, + {0x9738cd38, 0xffffd860ffffdee8}, + {0x9738cd39, 0xffffd860ffffdee9}, + {0x9738ce30, 0xffffd860ffffdeea}, + {0x9738ce31, 0xffffd860ffffdeeb}, + {0x9738ce32, 0xffffd860ffffdeec}, + {0x9738ce33, 0xffffd860ffffdeed}, + {0x9738ce34, 0xffffd860ffffdeee}, + {0x9738ce35, 0xffffd860ffffdeef}, + {0x9738ce36, 0xffffd860ffffdef0}, + {0x9738ce37, 0xffffd860ffffdef1}, + {0x9738ce38, 0xffffd860ffffdef2}, + {0x9738ce39, 0xffffd860ffffdef3}, + {0x9738cf30, 0xffffd860ffffdef4}, + {0x9738cf31, 0xffffd860ffffdef5}, + {0x9738cf32, 0xffffd860ffffdef6}, + {0x9738cf33, 0xffffd860ffffdef7}, + {0x9738cf34, 0xffffd860ffffdef8}, + {0x9738cf35, 0xffffd860ffffdef9}, + {0x9738cf36, 0xffffd860ffffdefa}, + {0x9738cf37, 0xffffd860ffffdefb}, + {0x9738cf38, 0xffffd860ffffdefc}, + {0x9738cf39, 0xffffd860ffffdefd}, + {0x9738d030, 0xffffd860ffffdefe}, + {0x9738d031, 0xffffd860ffffdeff}, + {0x9738d032, 0xffffd860ffffdf00}, + {0x9738d033, 0xffffd860ffffdf01}, + {0x9738d034, 0xffffd860ffffdf02}, + {0x9738d035, 0xffffd860ffffdf03}, + {0x9738d036, 0xffffd860ffffdf04}, + {0x9738d037, 0xffffd860ffffdf05}, + {0x9738d038, 0xffffd860ffffdf06}, + {0x9738d039, 0xffffd860ffffdf07}, + {0x9738d130, 0xffffd860ffffdf08}, + {0x9738d131, 0xffffd860ffffdf09}, + {0x9738d132, 0xffffd860ffffdf0a}, + {0x9738d133, 0xffffd860ffffdf0b}, + {0x9738d134, 0xffffd860ffffdf0c}, + {0x9738d135, 0xffffd860ffffdf0d}, + {0x9738d136, 0xffffd860ffffdf0e}, + {0x9738d137, 0xffffd860ffffdf0f}, + {0x9738d138, 0xffffd860ffffdf10}, + {0x9738d139, 0xffffd860ffffdf11}, + {0x9738d230, 0xffffd860ffffdf12}, + {0x9738d231, 0xffffd860ffffdf13}, + {0x9738d232, 0xffffd860ffffdf14}, + {0x9738d233, 0xffffd860ffffdf15}, + {0x9738d234, 0xffffd860ffffdf16}, + {0x9738d235, 0xffffd860ffffdf17}, + {0x9738d236, 0xffffd860ffffdf18}, + {0x9738d237, 0xffffd860ffffdf19}, + {0x9738d238, 0xffffd860ffffdf1a}, + {0x9738d239, 0xffffd860ffffdf1b}, + {0x9738d330, 0xffffd860ffffdf1c}, + {0x9738d331, 0xffffd860ffffdf1d}, + {0x9738d332, 0xffffd860ffffdf1e}, + {0x9738d333, 0xffffd860ffffdf1f}, + {0x9738d334, 0xffffd860ffffdf20}, + {0x9738d335, 0xffffd860ffffdf21}, + {0x9738d336, 0xffffd860ffffdf22}, + {0x9738d337, 0xffffd860ffffdf23}, + {0x9738d338, 0xffffd860ffffdf24}, + {0x9738d339, 0xffffd860ffffdf25}, + {0x9738d430, 0xffffd860ffffdf26}, + {0x9738d431, 0xffffd860ffffdf27}, + {0x9738d432, 0xffffd860ffffdf28}, + {0x9738d433, 0xffffd860ffffdf29}, + {0x9738d434, 0xffffd860ffffdf2a}, + {0x9738d435, 0xffffd860ffffdf2b}, + {0x9738d436, 0xffffd860ffffdf2c}, + {0x9738d437, 0xffffd860ffffdf2d}, + {0x9738d438, 0xffffd860ffffdf2e}, + {0x9738d439, 0xffffd860ffffdf2f}, + {0x9738d530, 0xffffd860ffffdf30}, + {0x9738d531, 0xffffd860ffffdf31}, + {0x9738d532, 0xffffd860ffffdf32}, + {0x9738d533, 0xffffd860ffffdf33}, + {0x9738d534, 0xffffd860ffffdf34}, + {0x9738d535, 0xffffd860ffffdf35}, + {0x9738d536, 0xffffd860ffffdf36}, + {0x9738d537, 0xffffd860ffffdf37}, + {0x9738d538, 0xffffd860ffffdf38}, + {0x9738d539, 0xffffd860ffffdf39}, + {0x9738d630, 0xffffd860ffffdf3a}, + {0x9738d631, 0xffffd860ffffdf3b}, + {0x9738d632, 0xffffd860ffffdf3c}, + {0x9738d633, 0xffffd860ffffdf3d}, + {0x9738d634, 0xffffd860ffffdf3e}, + {0x9738d635, 0xffffd860ffffdf3f}, + {0x9738d636, 0xffffd860ffffdf40}, + {0x9738d637, 0xffffd860ffffdf41}, + {0x9738d638, 0xffffd860ffffdf42}, + {0x9738d639, 0xffffd860ffffdf43}, + {0x9738d730, 0xffffd860ffffdf44}, + {0x9738d731, 0xffffd860ffffdf45}, + {0x9738d732, 0xffffd860ffffdf46}, + {0x9738d733, 0xffffd860ffffdf47}, + {0x9738d734, 0xffffd860ffffdf48}, + {0x9738d735, 0xffffd860ffffdf49}, + {0x9738d736, 0xffffd860ffffdf4a}, + {0x9738d737, 0xffffd860ffffdf4b}, + {0x9738d738, 0xffffd860ffffdf4c}, + {0x9738d739, 0xffffd860ffffdf4d}, + {0x9738d830, 0xffffd860ffffdf4e}, + {0x9738d831, 0xffffd860ffffdf4f}, + {0x9738d832, 0xffffd860ffffdf50}, + {0x9738d833, 0xffffd860ffffdf51}, + {0x9738d834, 0xffffd860ffffdf52}, + {0x9738d835, 0xffffd860ffffdf53}, + {0x9738d836, 0xffffd860ffffdf54}, + {0x9738d837, 0xffffd860ffffdf55}, + {0x9738d838, 0xffffd860ffffdf56}, + {0x9738d839, 0xffffd860ffffdf57}, + {0x9738d930, 0xffffd860ffffdf58}, + {0x9738d931, 0xffffd860ffffdf59}, + {0x9738d932, 0xffffd860ffffdf5a}, + {0x9738d933, 0xffffd860ffffdf5b}, + {0x9738d934, 0xffffd860ffffdf5c}, + {0x9738d935, 0xffffd860ffffdf5d}, + {0x9738d936, 0xffffd860ffffdf5e}, + {0x9738d937, 0xffffd860ffffdf5f}, + {0x9738d938, 0xffffd860ffffdf60}, + {0x9738d939, 0xffffd860ffffdf61}, + {0x9738da30, 0xffffd860ffffdf62}, + {0x9738da31, 0xffffd860ffffdf63}, + {0x9738da32, 0xffffd860ffffdf64}, + {0x9738da33, 0xffffd860ffffdf65}, + {0x9738da34, 0xffffd860ffffdf66}, + {0x9738da35, 0xffffd860ffffdf67}, + {0x9738da36, 0xffffd860ffffdf68}, + {0x9738da37, 0xffffd860ffffdf69}, + {0x9738da38, 0xffffd860ffffdf6a}, + {0x9738da39, 0xffffd860ffffdf6b}, + {0x9738db30, 0xffffd860ffffdf6c}, + {0x9738db31, 0xffffd860ffffdf6d}, + {0x9738db32, 0xffffd860ffffdf6e}, + {0x9738db33, 0xffffd860ffffdf6f}, + {0x9738db34, 0xffffd860ffffdf70}, + {0x9738db35, 0xffffd860ffffdf71}, + {0x9738db36, 0xffffd860ffffdf72}, + {0x9738db37, 0xffffd860ffffdf73}, + {0x9738db38, 0xffffd860ffffdf74}, + {0x9738db39, 0xffffd860ffffdf75}, + {0x9738dc30, 0xffffd860ffffdf76}, + {0x9738dc31, 0xffffd860ffffdf77}, + {0x9738dc32, 0xffffd860ffffdf78}, + {0x9738dc33, 0xffffd860ffffdf79}, + {0x9738dc34, 0xffffd860ffffdf7a}, + {0x9738dc35, 0xffffd860ffffdf7b}, + {0x9738dc36, 0xffffd860ffffdf7c}, + {0x9738dc37, 0xffffd860ffffdf7d}, + {0x9738dc38, 0xffffd860ffffdf7e}, + {0x9738dc39, 0xffffd860ffffdf7f}, + {0x9738dd30, 0xffffd860ffffdf80}, + {0x9738dd31, 0xffffd860ffffdf81}, + {0x9738dd32, 0xffffd860ffffdf82}, + {0x9738dd33, 0xffffd860ffffdf83}, + {0x9738dd34, 0xffffd860ffffdf84}, + {0x9738dd35, 0xffffd860ffffdf85}, + {0x9738dd36, 0xffffd860ffffdf86}, + {0x9738dd37, 0xffffd860ffffdf87}, + {0x9738dd38, 0xffffd860ffffdf88}, + {0x9738dd39, 0xffffd860ffffdf89}, + {0x9738de30, 0xffffd860ffffdf8a}, + {0x9738de31, 0xffffd860ffffdf8b}, + {0x9738de32, 0xffffd860ffffdf8c}, + {0x9738de33, 0xffffd860ffffdf8d}, + {0x9738de34, 0xffffd860ffffdf8e}, + {0x9738de35, 0xffffd860ffffdf8f}, + {0x9738de36, 0xffffd860ffffdf90}, + {0x9738de37, 0xffffd860ffffdf91}, + {0x9738de38, 0xffffd860ffffdf92}, + {0x9738de39, 0xffffd860ffffdf93}, + {0x9738df30, 0xffffd860ffffdf94}, + {0x9738df31, 0xffffd860ffffdf95}, + {0x9738df32, 0xffffd860ffffdf96}, + {0x9738df33, 0xffffd860ffffdf97}, + {0x9738df34, 0xffffd860ffffdf98}, + {0x9738df35, 0xffffd860ffffdf99}, + {0x9738df36, 0xffffd860ffffdf9a}, + {0x9738df37, 0xffffd860ffffdf9b}, + {0x9738df38, 0xffffd860ffffdf9c}, + {0x9738df39, 0xffffd860ffffdf9d}, + {0x9738e030, 0xffffd860ffffdf9e}, + {0x9738e031, 0xffffd860ffffdf9f}, + {0x9738e032, 0xffffd860ffffdfa0}, + {0x9738e033, 0xffffd860ffffdfa1}, + {0x9738e034, 0xffffd860ffffdfa2}, + {0x9738e035, 0xffffd860ffffdfa3}, + {0x9738e036, 0xffffd860ffffdfa4}, + {0x9738e037, 0xffffd860ffffdfa5}, + {0x9738e038, 0xffffd860ffffdfa6}, + {0x9738e039, 0xffffd860ffffdfa7}, + {0x9738e130, 0xffffd860ffffdfa8}, + {0x9738e131, 0xffffd860ffffdfa9}, + {0x9738e132, 0xffffd860ffffdfaa}, + {0x9738e133, 0xffffd860ffffdfab}, + {0x9738e134, 0xffffd860ffffdfac}, + {0x9738e135, 0xffffd860ffffdfad}, + {0x9738e136, 0xffffd860ffffdfae}, + {0x9738e137, 0xffffd860ffffdfaf}, + {0x9738e138, 0xffffd860ffffdfb0}, + {0x9738e139, 0xffffd860ffffdfb1}, + {0x9738e230, 0xffffd860ffffdfb2}, + {0x9738e231, 0xffffd860ffffdfb3}, + {0x9738e232, 0xffffd860ffffdfb4}, + {0x9738e233, 0xffffd860ffffdfb5}, + {0x9738e234, 0xffffd860ffffdfb6}, + {0x9738e235, 0xffffd860ffffdfb7}, + {0x9738e236, 0xffffd860ffffdfb8}, + {0x9738e237, 0xffffd860ffffdfb9}, + {0x9738e238, 0xffffd860ffffdfba}, + {0x9738e239, 0xffffd860ffffdfbb}, + {0x9738e330, 0xffffd860ffffdfbc}, + {0x9738e331, 0xffffd860ffffdfbd}, + {0x9738e332, 0xffffd860ffffdfbe}, + {0x9738e333, 0xffffd860ffffdfbf}, + {0x9738e334, 0xffffd860ffffdfc0}, + {0x9738e335, 0xffffd860ffffdfc1}, + {0x9738e336, 0xffffd860ffffdfc2}, + {0x9738e337, 0xffffd860ffffdfc3}, + {0x9738e338, 0xffffd860ffffdfc4}, + {0x9738e339, 0xffffd860ffffdfc5}, + {0x9738e430, 0xffffd860ffffdfc6}, + {0x9738e431, 0xffffd860ffffdfc7}, + {0x9738e432, 0xffffd860ffffdfc8}, + {0x9738e433, 0xffffd860ffffdfc9}, + {0x9738e434, 0xffffd860ffffdfca}, + {0x9738e435, 0xffffd860ffffdfcb}, + {0x9738e436, 0xffffd860ffffdfcc}, + {0x9738e437, 0xffffd860ffffdfcd}, + {0x9738e438, 0xffffd860ffffdfce}, + {0x9738e439, 0xffffd860ffffdfcf}, + {0x9738e530, 0xffffd860ffffdfd0}, + {0x9738e531, 0xffffd860ffffdfd1}, + {0x9738e532, 0xffffd860ffffdfd2}, + {0x9738e533, 0xffffd860ffffdfd3}, + {0x9738e534, 0xffffd860ffffdfd4}, + {0x9738e535, 0xffffd860ffffdfd5}, + {0x9738e536, 0xffffd860ffffdfd6}, + {0x9738e537, 0xffffd860ffffdfd7}, + {0x9738e538, 0xffffd860ffffdfd8}, + {0x9738e539, 0xffffd860ffffdfd9}, + {0x9738e630, 0xffffd860ffffdfda}, + {0x9738e631, 0xffffd860ffffdfdb}, + {0x9738e632, 0xffffd860ffffdfdc}, + {0x9738e633, 0xffffd860ffffdfdd}, + {0x9738e634, 0xffffd860ffffdfde}, + {0x9738e635, 0xffffd860ffffdfdf}, + {0x9738e636, 0xffffd860ffffdfe0}, + {0x9738e637, 0xffffd860ffffdfe1}, + {0x9738e638, 0xffffd860ffffdfe2}, + {0x9738e639, 0xffffd860ffffdfe3}, + {0x9738e730, 0xffffd860ffffdfe4}, + {0x9738e731, 0xffffd860ffffdfe5}, + {0x9738e732, 0xffffd860ffffdfe6}, + {0x9738e733, 0xffffd860ffffdfe7}, + {0x9738e734, 0xffffd860ffffdfe8}, + {0x9738e735, 0xffffd860ffffdfe9}, + {0x9738e736, 0xffffd860ffffdfea}, + {0x9738e737, 0xffffd860ffffdfeb}, + {0x9738e738, 0xffffd860ffffdfec}, + {0x9738e739, 0xffffd860ffffdfed}, + {0x9738e830, 0xffffd860ffffdfee}, + {0x9738e831, 0xffffd860ffffdfef}, + {0x9738e832, 0xffffd860ffffdff0}, + {0x9738e833, 0xffffd860ffffdff1}, + {0x9738e834, 0xffffd860ffffdff2}, + {0x9738e835, 0xffffd860ffffdff3}, + {0x9738e836, 0xffffd860ffffdff4}, + {0x9738e837, 0xffffd860ffffdff5}, + {0x9738e838, 0xffffd860ffffdff6}, + {0x9738e839, 0xffffd860ffffdff7}, + {0x9738e930, 0xffffd860ffffdff8}, + {0x9738e931, 0xffffd860ffffdff9}, + {0x9738e932, 0xffffd860ffffdffa}, + {0x9738e933, 0xffffd860ffffdffb}, + {0x9738e934, 0xffffd860ffffdffc}, + {0x9738e935, 0xffffd860ffffdffd}, + {0x9738e936, 0xffffd860ffffdffe}, + {0x9738e937, 0xffffd860ffffdfff}, + {0x9738e938, 0xffffd861ffffdc00}, + {0x9738e939, 0xffffd861ffffdc01}, + {0x9738ea30, 0xffffd861ffffdc02}, + {0x9738ea31, 0xffffd861ffffdc03}, + {0x9738ea32, 0xffffd861ffffdc04}, + {0x9738ea33, 0xffffd861ffffdc05}, + {0x9738ea34, 0xffffd861ffffdc06}, + {0x9738ea35, 0xffffd861ffffdc07}, + {0x9738ea36, 0xffffd861ffffdc08}, + {0x9738ea37, 0xffffd861ffffdc09}, + {0x9738ea38, 0xffffd861ffffdc0a}, + {0x9738ea39, 0xffffd861ffffdc0b}, + {0x9738eb30, 0xffffd861ffffdc0c}, + {0x9738eb31, 0xffffd861ffffdc0d}, + {0x9738eb32, 0xffffd861ffffdc0e}, + {0x9738eb33, 0xffffd861ffffdc0f}, + {0x9738eb34, 0xffffd861ffffdc10}, + {0x9738eb35, 0xffffd861ffffdc11}, + {0x9738eb36, 0xffffd861ffffdc12}, + {0x9738eb37, 0xffffd861ffffdc13}, + {0x9738eb38, 0xffffd861ffffdc14}, + {0x9738eb39, 0xffffd861ffffdc15}, + {0x9738ec30, 0xffffd861ffffdc16}, + {0x9738ec31, 0xffffd861ffffdc17}, + {0x9738ec32, 0xffffd861ffffdc18}, + {0x9738ec33, 0xffffd861ffffdc19}, + {0x9738ec34, 0xffffd861ffffdc1a}, + {0x9738ec35, 0xffffd861ffffdc1b}, + {0x9738ec36, 0xffffd861ffffdc1c}, + {0x9738ec37, 0xffffd861ffffdc1d}, + {0x9738ec38, 0xffffd861ffffdc1e}, + {0x9738ec39, 0xffffd861ffffdc1f}, + {0x9738ed30, 0xffffd861ffffdc20}, + {0x9738ed31, 0xffffd861ffffdc21}, + {0x9738ed32, 0xffffd861ffffdc22}, + {0x9738ed33, 0xffffd861ffffdc23}, + {0x9738ed34, 0xffffd861ffffdc24}, + {0x9738ed35, 0xffffd861ffffdc25}, + {0x9738ed36, 0xffffd861ffffdc26}, + {0x9738ed37, 0xffffd861ffffdc27}, + {0x9738ed38, 0xffffd861ffffdc28}, + {0x9738ed39, 0xffffd861ffffdc29}, + {0x9738ee30, 0xffffd861ffffdc2a}, + {0x9738ee31, 0xffffd861ffffdc2b}, + {0x9738ee32, 0xffffd861ffffdc2c}, + {0x9738ee33, 0xffffd861ffffdc2d}, + {0x9738ee34, 0xffffd861ffffdc2e}, + {0x9738ee35, 0xffffd861ffffdc2f}, + {0x9738ee36, 0xffffd861ffffdc30}, + {0x9738ee37, 0xffffd861ffffdc31}, + {0x9738ee38, 0xffffd861ffffdc32}, + {0x9738ee39, 0xffffd861ffffdc33}, + {0x9738ef30, 0xffffd861ffffdc34}, + {0x9738ef31, 0xffffd861ffffdc35}, + {0x9738ef32, 0xffffd861ffffdc36}, + {0x9738ef33, 0xffffd861ffffdc37}, + {0x9738ef34, 0xffffd861ffffdc38}, + {0x9738ef35, 0xffffd861ffffdc39}, + {0x9738ef36, 0xffffd861ffffdc3a}, + {0x9738ef37, 0xffffd861ffffdc3b}, + {0x9738ef38, 0xffffd861ffffdc3c}, + {0x9738ef39, 0xffffd861ffffdc3d}, + {0x9738f030, 0xffffd861ffffdc3e}, + {0x9738f031, 0xffffd861ffffdc3f}, + {0x9738f032, 0xffffd861ffffdc40}, + {0x9738f033, 0xffffd861ffffdc41}, + {0x9738f034, 0xffffd861ffffdc42}, + {0x9738f035, 0xffffd861ffffdc43}, + {0x9738f036, 0xffffd861ffffdc44}, + {0x9738f037, 0xffffd861ffffdc45}, + {0x9738f038, 0xffffd861ffffdc46}, + {0x9738f039, 0xffffd861ffffdc47}, + {0x9738f130, 0xffffd861ffffdc48}, + {0x9738f131, 0xffffd861ffffdc49}, + {0x9738f132, 0xffffd861ffffdc4a}, + {0x9738f133, 0xffffd861ffffdc4b}, + {0x9738f134, 0xffffd861ffffdc4c}, + {0x9738f135, 0xffffd861ffffdc4d}, + {0x9738f136, 0xffffd861ffffdc4e}, + {0x9738f137, 0xffffd861ffffdc4f}, + {0x9738f138, 0xffffd861ffffdc50}, + {0x9738f139, 0xffffd861ffffdc51}, + {0x9738f230, 0xffffd861ffffdc52}, + {0x9738f231, 0xffffd861ffffdc53}, + {0x9738f232, 0xffffd861ffffdc54}, + {0x9738f233, 0xffffd861ffffdc55}, + {0x9738f234, 0xffffd861ffffdc56}, + {0x9738f235, 0xffffd861ffffdc57}, + {0x9738f236, 0xffffd861ffffdc58}, + {0x9738f237, 0xffffd861ffffdc59}, + {0x9738f238, 0xffffd861ffffdc5a}, + {0x9738f239, 0xffffd861ffffdc5b}, + {0x9738f330, 0xffffd861ffffdc5c}, + {0x9738f331, 0xffffd861ffffdc5d}, + {0x9738f332, 0xffffd861ffffdc5e}, + {0x9738f333, 0xffffd861ffffdc5f}, + {0x9738f334, 0xffffd861ffffdc60}, + {0x9738f335, 0xffffd861ffffdc61}, + {0x9738f336, 0xffffd861ffffdc62}, + {0x9738f337, 0xffffd861ffffdc63}, + {0x9738f338, 0xffffd861ffffdc64}, + {0x9738f339, 0xffffd861ffffdc65}, + {0x9738f430, 0xffffd861ffffdc66}, + {0x9738f431, 0xffffd861ffffdc67}, + {0x9738f432, 0xffffd861ffffdc68}, + {0x9738f433, 0xffffd861ffffdc69}, + {0x9738f434, 0xffffd861ffffdc6a}, + {0x9738f435, 0xffffd861ffffdc6b}, + {0x9738f436, 0xffffd861ffffdc6c}, + {0x9738f437, 0xffffd861ffffdc6d}, + {0x9738f438, 0xffffd861ffffdc6e}, + {0x9738f439, 0xffffd861ffffdc6f}, + {0x9738f530, 0xffffd861ffffdc70}, + {0x9738f531, 0xffffd861ffffdc71}, + {0x9738f532, 0xffffd861ffffdc72}, + {0x9738f533, 0xffffd861ffffdc73}, + {0x9738f534, 0xffffd861ffffdc74}, + {0x9738f535, 0xffffd861ffffdc75}, + {0x9738f536, 0xffffd861ffffdc76}, + {0x9738f537, 0xffffd861ffffdc77}, + {0x9738f538, 0xffffd861ffffdc78}, + {0x9738f539, 0xffffd861ffffdc79}, + {0x9738f630, 0xffffd861ffffdc7a}, + {0x9738f631, 0xffffd861ffffdc7b}, + {0x9738f632, 0xffffd861ffffdc7c}, + {0x9738f633, 0xffffd861ffffdc7d}, + {0x9738f634, 0xffffd861ffffdc7e}, + {0x9738f635, 0xffffd861ffffdc7f}, + {0x9738f636, 0xffffd861ffffdc80}, + {0x9738f637, 0xffffd861ffffdc81}, + {0x9738f638, 0xffffd861ffffdc82}, + {0x9738f639, 0xffffd861ffffdc83}, + {0x9738f730, 0xffffd861ffffdc84}, + {0x9738f731, 0xffffd861ffffdc85}, + {0x9738f732, 0xffffd861ffffdc86}, + {0x9738f733, 0xffffd861ffffdc87}, + {0x9738f734, 0xffffd861ffffdc88}, + {0x9738f735, 0xffffd861ffffdc89}, + {0x9738f736, 0xffffd861ffffdc8a}, + {0x9738f737, 0xffffd861ffffdc8b}, + {0x9738f738, 0xffffd861ffffdc8c}, + {0x9738f739, 0xffffd861ffffdc8d}, + {0x9738f830, 0xffffd861ffffdc8e}, + {0x9738f831, 0xffffd861ffffdc8f}, + {0x9738f832, 0xffffd861ffffdc90}, + {0x9738f833, 0xffffd861ffffdc91}, + {0x9738f834, 0xffffd861ffffdc92}, + {0x9738f835, 0xffffd861ffffdc93}, + {0x9738f836, 0xffffd861ffffdc94}, + {0x9738f837, 0xffffd861ffffdc95}, + {0x9738f838, 0xffffd861ffffdc96}, + {0x9738f839, 0xffffd861ffffdc97}, + {0x9738f930, 0xffffd861ffffdc98}, + {0x9738f931, 0xffffd861ffffdc99}, + {0x9738f932, 0xffffd861ffffdc9a}, + {0x9738f933, 0xffffd861ffffdc9b}, + {0x9738f934, 0xffffd861ffffdc9c}, + {0x9738f935, 0xffffd861ffffdc9d}, + {0x9738f936, 0xffffd861ffffdc9e}, + {0x9738f937, 0xffffd861ffffdc9f}, + {0x9738f938, 0xffffd861ffffdca0}, + {0x9738f939, 0xffffd861ffffdca1}, + {0x9738fa30, 0xffffd861ffffdca2}, + {0x9738fa31, 0xffffd861ffffdca3}, + {0x9738fa32, 0xffffd861ffffdca4}, + {0x9738fa33, 0xffffd861ffffdca5}, + {0x9738fa34, 0xffffd861ffffdca6}, + {0x9738fa35, 0xffffd861ffffdca7}, + {0x9738fa36, 0xffffd861ffffdca8}, + {0x9738fa37, 0xffffd861ffffdca9}, + {0x9738fa38, 0xffffd861ffffdcaa}, + {0x9738fa39, 0xffffd861ffffdcab}, + {0x9738fb30, 0xffffd861ffffdcac}, + {0x9738fb31, 0xffffd861ffffdcad}, + {0x9738fb32, 0xffffd861ffffdcae}, + {0x9738fb33, 0xffffd861ffffdcaf}, + {0x9738fb34, 0xffffd861ffffdcb0}, + {0x9738fb35, 0xffffd861ffffdcb1}, + {0x9738fb36, 0xffffd861ffffdcb2}, + {0x9738fb37, 0xffffd861ffffdcb3}, + {0x9738fb38, 0xffffd861ffffdcb4}, + {0x9738fb39, 0xffffd861ffffdcb5}, + {0x9738fc30, 0xffffd861ffffdcb6}, + {0x9738fc31, 0xffffd861ffffdcb7}, + {0x9738fc32, 0xffffd861ffffdcb8}, + {0x9738fc33, 0xffffd861ffffdcb9}, + {0x9738fc34, 0xffffd861ffffdcba}, + {0x9738fc35, 0xffffd861ffffdcbb}, + {0x9738fc36, 0xffffd861ffffdcbc}, + {0x9738fc37, 0xffffd861ffffdcbd}, + {0x9738fc38, 0xffffd861ffffdcbe}, + {0x9738fc39, 0xffffd861ffffdcbf}, + {0x9738fd30, 0xffffd861ffffdcc0}, + {0x9738fd31, 0xffffd861ffffdcc1}, + {0x9738fd32, 0xffffd861ffffdcc2}, + {0x9738fd33, 0xffffd861ffffdcc3}, + {0x9738fd34, 0xffffd861ffffdcc4}, + {0x9738fd35, 0xffffd861ffffdcc5}, + {0x9738fd36, 0xffffd861ffffdcc6}, + {0x9738fd37, 0xffffd861ffffdcc7}, + {0x9738fd38, 0xffffd861ffffdcc8}, + {0x9738fd39, 0xffffd861ffffdcc9}, + {0x9738fe30, 0xffffd861ffffdcca}, + {0x9738fe31, 0xffffd861ffffdccb}, + {0x9738fe32, 0xffffd861ffffdccc}, + {0x9738fe33, 0xffffd861ffffdccd}, + {0x9738fe34, 0xffffd861ffffdcce}, + {0x9738fe35, 0xffffd861ffffdccf}, + {0x9738fe36, 0xffffd861ffffdcd0}, + {0x9738fe37, 0xffffd861ffffdcd1}, + {0x9738fe38, 0xffffd861ffffdcd2}, + {0x9738fe39, 0xffffd861ffffdcd3}, + {0x97398130, 0xffffd861ffffdcd4}, + {0x97398131, 0xffffd861ffffdcd5}, + {0x97398132, 0xffffd861ffffdcd6}, + {0x97398133, 0xffffd861ffffdcd7}, + {0x97398134, 0xffffd861ffffdcd8}, + {0x97398135, 0xffffd861ffffdcd9}, + {0x97398136, 0xffffd861ffffdcda}, + {0x97398137, 0xffffd861ffffdcdb}, + {0x97398138, 0xffffd861ffffdcdc}, + {0x97398139, 0xffffd861ffffdcdd}, + {0x97398230, 0xffffd861ffffdcde}, + {0x97398231, 0xffffd861ffffdcdf}, + {0x97398232, 0xffffd861ffffdce0}, + {0x97398233, 0xffffd861ffffdce1}, + {0x97398234, 0xffffd861ffffdce2}, + {0x97398235, 0xffffd861ffffdce3}, + {0x97398236, 0xffffd861ffffdce4}, + {0x97398237, 0xffffd861ffffdce5}, + {0x97398238, 0xffffd861ffffdce6}, + {0x97398239, 0xffffd861ffffdce7}, + {0x97398330, 0xffffd861ffffdce8}, + {0x97398331, 0xffffd861ffffdce9}, + {0x97398332, 0xffffd861ffffdcea}, + {0x97398333, 0xffffd861ffffdceb}, + {0x97398334, 0xffffd861ffffdcec}, + {0x97398335, 0xffffd861ffffdced}, + {0x97398336, 0xffffd861ffffdcee}, + {0x97398337, 0xffffd861ffffdcef}, + {0x97398338, 0xffffd861ffffdcf0}, + {0x97398339, 0xffffd861ffffdcf1}, + {0x97398430, 0xffffd861ffffdcf2}, + {0x97398431, 0xffffd861ffffdcf3}, + {0x97398432, 0xffffd861ffffdcf4}, + {0x97398433, 0xffffd861ffffdcf5}, + {0x97398434, 0xffffd861ffffdcf6}, + {0x97398435, 0xffffd861ffffdcf7}, + {0x97398436, 0xffffd861ffffdcf8}, + {0x97398437, 0xffffd861ffffdcf9}, + {0x97398438, 0xffffd861ffffdcfa}, + {0x97398439, 0xffffd861ffffdcfb}, + {0x97398530, 0xffffd861ffffdcfc}, + {0x97398531, 0xffffd861ffffdcfd}, + {0x97398532, 0xffffd861ffffdcfe}, + {0x97398533, 0xffffd861ffffdcff}, + {0x97398534, 0xffffd861ffffdd00}, + {0x97398535, 0xffffd861ffffdd01}, + {0x97398536, 0xffffd861ffffdd02}, + {0x97398537, 0xffffd861ffffdd03}, + {0x97398538, 0xffffd861ffffdd04}, + {0x97398539, 0xffffd861ffffdd05}, + {0x97398630, 0xffffd861ffffdd06}, + {0x97398631, 0xffffd861ffffdd07}, + {0x97398632, 0xffffd861ffffdd08}, + {0x97398633, 0xffffd861ffffdd09}, + {0x97398634, 0xffffd861ffffdd0a}, + {0x97398635, 0xffffd861ffffdd0b}, + {0x97398636, 0xffffd861ffffdd0c}, + {0x97398637, 0xffffd861ffffdd0d}, + {0x97398638, 0xffffd861ffffdd0e}, + {0x97398639, 0xffffd861ffffdd0f}, + {0x97398730, 0xffffd861ffffdd10}, + {0x97398731, 0xffffd861ffffdd11}, + {0x97398732, 0xffffd861ffffdd12}, + {0x97398733, 0xffffd861ffffdd13}, + {0x97398734, 0xffffd861ffffdd14}, + {0x97398735, 0xffffd861ffffdd15}, + {0x97398736, 0xffffd861ffffdd16}, + {0x97398737, 0xffffd861ffffdd17}, + {0x97398738, 0xffffd861ffffdd18}, + {0x97398739, 0xffffd861ffffdd19}, + {0x97398830, 0xffffd861ffffdd1a}, + {0x97398831, 0xffffd861ffffdd1b}, + {0x97398832, 0xffffd861ffffdd1c}, + {0x97398833, 0xffffd861ffffdd1d}, + {0x97398834, 0xffffd861ffffdd1e}, + {0x97398835, 0xffffd861ffffdd1f}, + {0x97398836, 0xffffd861ffffdd20}, + {0x97398837, 0xffffd861ffffdd21}, + {0x97398838, 0xffffd861ffffdd22}, + {0x97398839, 0xffffd861ffffdd23}, + {0x97398930, 0xffffd861ffffdd24}, + {0x97398931, 0xffffd861ffffdd25}, + {0x97398932, 0xffffd861ffffdd26}, + {0x97398933, 0xffffd861ffffdd27}, + {0x97398934, 0xffffd861ffffdd28}, + {0x97398935, 0xffffd861ffffdd29}, + {0x97398936, 0xffffd861ffffdd2a}, + {0x97398937, 0xffffd861ffffdd2b}, + {0x97398938, 0xffffd861ffffdd2c}, + {0x97398939, 0xffffd861ffffdd2d}, + {0x97398a30, 0xffffd861ffffdd2e}, + {0x97398a31, 0xffffd861ffffdd2f}, + {0x97398a32, 0xffffd861ffffdd30}, + {0x97398a33, 0xffffd861ffffdd31}, + {0x97398a34, 0xffffd861ffffdd32}, + {0x97398a35, 0xffffd861ffffdd33}, + {0x97398a36, 0xffffd861ffffdd34}, + {0x97398a37, 0xffffd861ffffdd35}, + {0x97398a38, 0xffffd861ffffdd36}, + {0x97398a39, 0xffffd861ffffdd37}, + {0x97398b30, 0xffffd861ffffdd38}, + {0x97398b31, 0xffffd861ffffdd39}, + {0x97398b32, 0xffffd861ffffdd3a}, + {0x97398b33, 0xffffd861ffffdd3b}, + {0x97398b34, 0xffffd861ffffdd3c}, + {0x97398b35, 0xffffd861ffffdd3d}, + {0x97398b36, 0xffffd861ffffdd3e}, + {0x97398b37, 0xffffd861ffffdd3f}, + {0x97398b38, 0xffffd861ffffdd40}, + {0x97398b39, 0xffffd861ffffdd41}, + {0x97398c30, 0xffffd861ffffdd42}, + {0x97398c31, 0xffffd861ffffdd43}, + {0x97398c32, 0xffffd861ffffdd44}, + {0x97398c33, 0xffffd861ffffdd45}, + {0x97398c34, 0xffffd861ffffdd46}, + {0x97398c35, 0xffffd861ffffdd47}, + {0x97398c36, 0xffffd861ffffdd48}, + {0x97398c37, 0xffffd861ffffdd49}, + {0x97398c38, 0xffffd861ffffdd4a}, + {0x97398c39, 0xffffd861ffffdd4b}, + {0x97398d30, 0xffffd861ffffdd4c}, + {0x97398d31, 0xffffd861ffffdd4d}, + {0x97398d32, 0xffffd861ffffdd4e}, + {0x97398d33, 0xffffd861ffffdd4f}, + {0x97398d34, 0xffffd861ffffdd50}, + {0x97398d35, 0xffffd861ffffdd51}, + {0x97398d36, 0xffffd861ffffdd52}, + {0x97398d37, 0xffffd861ffffdd53}, + {0x97398d38, 0xffffd861ffffdd54}, + {0x97398d39, 0xffffd861ffffdd55}, + {0x97398e30, 0xffffd861ffffdd56}, + {0x97398e31, 0xffffd861ffffdd57}, + {0x97398e32, 0xffffd861ffffdd58}, + {0x97398e33, 0xffffd861ffffdd59}, + {0x97398e34, 0xffffd861ffffdd5a}, + {0x97398e35, 0xffffd861ffffdd5b}, + {0x97398e36, 0xffffd861ffffdd5c}, + {0x97398e37, 0xffffd861ffffdd5d}, + {0x97398e38, 0xffffd861ffffdd5e}, + {0x97398e39, 0xffffd861ffffdd5f}, + {0x97398f30, 0xffffd861ffffdd60}, + {0x97398f31, 0xffffd861ffffdd61}, + {0x97398f32, 0xffffd861ffffdd62}, + {0x97398f33, 0xffffd861ffffdd63}, + {0x97398f34, 0xffffd861ffffdd64}, + {0x97398f35, 0xffffd861ffffdd65}, + {0x97398f36, 0xffffd861ffffdd66}, + {0x97398f37, 0xffffd861ffffdd67}, + {0x97398f38, 0xffffd861ffffdd68}, + {0x97398f39, 0xffffd861ffffdd69}, + {0x97399030, 0xffffd861ffffdd6a}, + {0x97399031, 0xffffd861ffffdd6b}, + {0x97399032, 0xffffd861ffffdd6c}, + {0x97399033, 0xffffd861ffffdd6d}, + {0x97399034, 0xffffd861ffffdd6e}, + {0x97399035, 0xffffd861ffffdd6f}, + {0x97399036, 0xffffd861ffffdd70}, + {0x97399037, 0xffffd861ffffdd71}, + {0x97399038, 0xffffd861ffffdd72}, + {0x97399039, 0xffffd861ffffdd73}, + {0x97399130, 0xffffd861ffffdd74}, + {0x97399131, 0xffffd861ffffdd75}, + {0x97399132, 0xffffd861ffffdd76}, + {0x97399133, 0xffffd861ffffdd77}, + {0x97399134, 0xffffd861ffffdd78}, + {0x97399135, 0xffffd861ffffdd79}, + {0x97399136, 0xffffd861ffffdd7a}, + {0x97399137, 0xffffd861ffffdd7b}, + {0x97399138, 0xffffd861ffffdd7c}, + {0x97399139, 0xffffd861ffffdd7d}, + {0x97399230, 0xffffd861ffffdd7e}, + {0x97399231, 0xffffd861ffffdd7f}, + {0x97399232, 0xffffd861ffffdd80}, + {0x97399233, 0xffffd861ffffdd81}, + {0x97399234, 0xffffd861ffffdd82}, + {0x97399235, 0xffffd861ffffdd83}, + {0x97399236, 0xffffd861ffffdd84}, + {0x97399237, 0xffffd861ffffdd85}, + {0x97399238, 0xffffd861ffffdd86}, + {0x97399239, 0xffffd861ffffdd87}, + {0x97399330, 0xffffd861ffffdd88}, + {0x97399331, 0xffffd861ffffdd89}, + {0x97399332, 0xffffd861ffffdd8a}, + {0x97399333, 0xffffd861ffffdd8b}, + {0x97399334, 0xffffd861ffffdd8c}, + {0x97399335, 0xffffd861ffffdd8d}, + {0x97399336, 0xffffd861ffffdd8e}, + {0x97399337, 0xffffd861ffffdd8f}, + {0x97399338, 0xffffd861ffffdd90}, + {0x97399339, 0xffffd861ffffdd91}, + {0x97399430, 0xffffd861ffffdd92}, + {0x97399431, 0xffffd861ffffdd93}, + {0x97399432, 0xffffd861ffffdd94}, + {0x97399433, 0xffffd861ffffdd95}, + {0x97399434, 0xffffd861ffffdd96}, + {0x97399435, 0xffffd861ffffdd97}, + {0x97399436, 0xffffd861ffffdd98}, + {0x97399437, 0xffffd861ffffdd99}, + {0x97399438, 0xffffd861ffffdd9a}, + {0x97399439, 0xffffd861ffffdd9b}, + {0x97399530, 0xffffd861ffffdd9c}, + {0x97399531, 0xffffd861ffffdd9d}, + {0x97399532, 0xffffd861ffffdd9e}, + {0x97399533, 0xffffd861ffffdd9f}, + {0x97399534, 0xffffd861ffffdda0}, + {0x97399535, 0xffffd861ffffdda1}, + {0x97399536, 0xffffd861ffffdda2}, + {0x97399537, 0xffffd861ffffdda3}, + {0x97399538, 0xffffd861ffffdda4}, + {0x97399539, 0xffffd861ffffdda5}, + {0x97399630, 0xffffd861ffffdda6}, + {0x97399631, 0xffffd861ffffdda7}, + {0x97399632, 0xffffd861ffffdda8}, + {0x97399633, 0xffffd861ffffdda9}, + {0x97399634, 0xffffd861ffffddaa}, + {0x97399635, 0xffffd861ffffddab}, + {0x97399636, 0xffffd861ffffddac}, + {0x97399637, 0xffffd861ffffddad}, + {0x97399638, 0xffffd861ffffddae}, + {0x97399639, 0xffffd861ffffddaf}, + {0x97399730, 0xffffd861ffffddb0}, + {0x97399731, 0xffffd861ffffddb1}, + {0x97399732, 0xffffd861ffffddb2}, + {0x97399733, 0xffffd861ffffddb3}, + {0x97399734, 0xffffd861ffffddb4}, + {0x97399735, 0xffffd861ffffddb5}, + {0x97399736, 0xffffd861ffffddb6}, + {0x97399737, 0xffffd861ffffddb7}, + {0x97399738, 0xffffd861ffffddb8}, + {0x97399739, 0xffffd861ffffddb9}, + {0x97399830, 0xffffd861ffffddba}, + {0x97399831, 0xffffd861ffffddbb}, + {0x97399832, 0xffffd861ffffddbc}, + {0x97399833, 0xffffd861ffffddbd}, + {0x97399834, 0xffffd861ffffddbe}, + {0x97399835, 0xffffd861ffffddbf}, + {0x97399836, 0xffffd861ffffddc0}, + {0x97399837, 0xffffd861ffffddc1}, + {0x97399838, 0xffffd861ffffddc2}, + {0x97399839, 0xffffd861ffffddc3}, + {0x97399930, 0xffffd861ffffddc4}, + {0x97399931, 0xffffd861ffffddc5}, + {0x97399932, 0xffffd861ffffddc6}, + {0x97399933, 0xffffd861ffffddc7}, + {0x97399934, 0xffffd861ffffddc8}, + {0x97399935, 0xffffd861ffffddc9}, + {0x97399936, 0xffffd861ffffddca}, + {0x97399937, 0xffffd861ffffddcb}, + {0x97399938, 0xffffd861ffffddcc}, + {0x97399939, 0xffffd861ffffddcd}, + {0x97399a30, 0xffffd861ffffddce}, + {0x97399a31, 0xffffd861ffffddcf}, + {0x97399a32, 0xffffd861ffffddd0}, + {0x97399a33, 0xffffd861ffffddd1}, + {0x97399a34, 0xffffd861ffffddd2}, + {0x97399a35, 0xffffd861ffffddd3}, + {0x97399a36, 0xffffd861ffffddd4}, + {0x97399a37, 0xffffd861ffffddd5}, + {0x97399a38, 0xffffd861ffffddd6}, + {0x97399a39, 0xffffd861ffffddd7}, + {0x97399b30, 0xffffd861ffffddd8}, + {0x97399b31, 0xffffd861ffffddd9}, + {0x97399b32, 0xffffd861ffffddda}, + {0x97399b33, 0xffffd861ffffdddb}, + {0x97399b34, 0xffffd861ffffdddc}, + {0x97399b35, 0xffffd861ffffdddd}, + {0x97399b36, 0xffffd861ffffddde}, + {0x97399b37, 0xffffd861ffffdddf}, + {0x97399b38, 0xffffd861ffffdde0}, + {0x97399b39, 0xffffd861ffffdde1}, + {0x97399c30, 0xffffd861ffffdde2}, + {0x97399c31, 0xffffd861ffffdde3}, + {0x97399c32, 0xffffd861ffffdde4}, + {0x97399c33, 0xffffd861ffffdde5}, + {0x97399c34, 0xffffd861ffffdde6}, + {0x97399c35, 0xffffd861ffffdde7}, + {0x97399c36, 0xffffd861ffffdde8}, + {0x97399c37, 0xffffd861ffffdde9}, + {0x97399c38, 0xffffd861ffffddea}, + {0x97399c39, 0xffffd861ffffddeb}, + {0x97399d30, 0xffffd861ffffddec}, + {0x97399d31, 0xffffd861ffffdded}, + {0x97399d32, 0xffffd861ffffddee}, + {0x97399d33, 0xffffd861ffffddef}, + {0x97399d34, 0xffffd861ffffddf0}, + {0x97399d35, 0xffffd861ffffddf1}, + {0x97399d36, 0xffffd861ffffddf2}, + {0x97399d37, 0xffffd861ffffddf3}, + {0x97399d38, 0xffffd861ffffddf4}, + {0x97399d39, 0xffffd861ffffddf5}, + {0x97399e30, 0xffffd861ffffddf6}, + {0x97399e31, 0xffffd861ffffddf7}, + {0x97399e32, 0xffffd861ffffddf8}, + {0x97399e33, 0xffffd861ffffddf9}, + {0x97399e34, 0xffffd861ffffddfa}, + {0x97399e35, 0xffffd861ffffddfb}, + {0x97399e36, 0xffffd861ffffddfc}, + {0x97399e37, 0xffffd861ffffddfd}, + {0x97399e38, 0xffffd861ffffddfe}, + {0x97399e39, 0xffffd861ffffddff}, + {0x97399f30, 0xffffd861ffffde00}, + {0x97399f31, 0xffffd861ffffde01}, + {0x97399f32, 0xffffd861ffffde02}, + {0x97399f33, 0xffffd861ffffde03}, + {0x97399f34, 0xffffd861ffffde04}, + {0x97399f35, 0xffffd861ffffde05}, + {0x97399f36, 0xffffd861ffffde06}, + {0x97399f37, 0xffffd861ffffde07}, + {0x97399f38, 0xffffd861ffffde08}, + {0x97399f39, 0xffffd861ffffde09}, + {0x9739a030, 0xffffd861ffffde0a}, + {0x9739a031, 0xffffd861ffffde0b}, + {0x9739a032, 0xffffd861ffffde0c}, + {0x9739a033, 0xffffd861ffffde0d}, + {0x9739a034, 0xffffd861ffffde0e}, + {0x9739a035, 0xffffd861ffffde0f}, + {0x9739a036, 0xffffd861ffffde10}, + {0x9739a037, 0xffffd861ffffde11}, + {0x9739a038, 0xffffd861ffffde12}, + {0x9739a039, 0xffffd861ffffde13}, + {0x9739a130, 0xffffd861ffffde14}, + {0x9739a131, 0xffffd861ffffde15}, + {0x9739a132, 0xffffd861ffffde16}, + {0x9739a133, 0xffffd861ffffde17}, + {0x9739a134, 0xffffd861ffffde18}, + {0x9739a135, 0xffffd861ffffde19}, + {0x9739a136, 0xffffd861ffffde1a}, + {0x9739a137, 0xffffd861ffffde1b}, + {0x9739a138, 0xffffd861ffffde1c}, + {0x9739a139, 0xffffd861ffffde1d}, + {0x9739a230, 0xffffd861ffffde1e}, + {0x9739a231, 0xffffd861ffffde1f}, + {0x9739a232, 0xffffd861ffffde20}, + {0x9739a233, 0xffffd861ffffde21}, + {0x9739a234, 0xffffd861ffffde22}, + {0x9739a235, 0xffffd861ffffde23}, + {0x9739a236, 0xffffd861ffffde24}, + {0x9739a237, 0xffffd861ffffde25}, + {0x9739a238, 0xffffd861ffffde26}, + {0x9739a239, 0xffffd861ffffde27}, + {0x9739a330, 0xffffd861ffffde28}, + {0x9739a331, 0xffffd861ffffde29}, + {0x9739a332, 0xffffd861ffffde2a}, + {0x9739a333, 0xffffd861ffffde2b}, + {0x9739a334, 0xffffd861ffffde2c}, + {0x9739a335, 0xffffd861ffffde2d}, + {0x9739a336, 0xffffd861ffffde2e}, + {0x9739a337, 0xffffd861ffffde2f}, + {0x9739a338, 0xffffd861ffffde30}, + {0x9739a339, 0xffffd861ffffde31}, + {0x9739a430, 0xffffd861ffffde32}, + {0x9739a431, 0xffffd861ffffde33}, + {0x9739a432, 0xffffd861ffffde34}, + {0x9739a433, 0xffffd861ffffde35}, + {0x9739a434, 0xffffd861ffffde36}, + {0x9739a435, 0xffffd861ffffde37}, + {0x9739a436, 0xffffd861ffffde38}, + {0x9739a437, 0xffffd861ffffde39}, + {0x9739a438, 0xffffd861ffffde3a}, + {0x9739a439, 0xffffd861ffffde3b}, + {0x9739a530, 0xffffd861ffffde3c}, + {0x9739a531, 0xffffd861ffffde3d}, + {0x9739a532, 0xffffd861ffffde3e}, + {0x9739a533, 0xffffd861ffffde3f}, + {0x9739a534, 0xffffd861ffffde40}, + {0x9739a535, 0xffffd861ffffde41}, + {0x9739a536, 0xffffd861ffffde42}, + {0x9739a537, 0xffffd861ffffde43}, + {0x9739a538, 0xffffd861ffffde44}, + {0x9739a539, 0xffffd861ffffde45}, + {0x9739a630, 0xffffd861ffffde46}, + {0x9739a631, 0xffffd861ffffde47}, + {0x9739a632, 0xffffd861ffffde48}, + {0x9739a633, 0xffffd861ffffde49}, + {0x9739a634, 0xffffd861ffffde4a}, + {0x9739a635, 0xffffd861ffffde4b}, + {0x9739a636, 0xffffd861ffffde4c}, + {0x9739a637, 0xffffd861ffffde4d}, + {0x9739a638, 0xffffd861ffffde4e}, + {0x9739a639, 0xffffd861ffffde4f}, + {0x9739a730, 0xffffd861ffffde50}, + {0x9739a731, 0xffffd861ffffde51}, + {0x9739a732, 0xffffd861ffffde52}, + {0x9739a733, 0xffffd861ffffde53}, + {0x9739a734, 0xffffd861ffffde54}, + {0x9739a735, 0xffffd861ffffde55}, + {0x9739a736, 0xffffd861ffffde56}, + {0x9739a737, 0xffffd861ffffde57}, + {0x9739a738, 0xffffd861ffffde58}, + {0x9739a739, 0xffffd861ffffde59}, + {0x9739a830, 0xffffd861ffffde5a}, + {0x9739a831, 0xffffd861ffffde5b}, + {0x9739a832, 0xffffd861ffffde5c}, + {0x9739a833, 0xffffd861ffffde5d}, + {0x9739a834, 0xffffd861ffffde5e}, + {0x9739a835, 0xffffd861ffffde5f}, + {0x9739a836, 0xffffd861ffffde60}, + {0x9739a837, 0xffffd861ffffde61}, + {0x9739a838, 0xffffd861ffffde62}, + {0x9739a839, 0xffffd861ffffde63}, + {0x9739a930, 0xffffd861ffffde64}, + {0x9739a931, 0xffffd861ffffde65}, + {0x9739a932, 0xffffd861ffffde66}, + {0x9739a933, 0xffffd861ffffde67}, + {0x9739a934, 0xffffd861ffffde68}, + {0x9739a935, 0xffffd861ffffde69}, + {0x9739a936, 0xffffd861ffffde6a}, + {0x9739a937, 0xffffd861ffffde6b}, + {0x9739a938, 0xffffd861ffffde6c}, + {0x9739a939, 0xffffd861ffffde6d}, + {0x9739aa30, 0xffffd861ffffde6e}, + {0x9739aa31, 0xffffd861ffffde6f}, + {0x9739aa32, 0xffffd861ffffde70}, + {0x9739aa33, 0xffffd861ffffde71}, + {0x9739aa34, 0xffffd861ffffde72}, + {0x9739aa35, 0xffffd861ffffde73}, + {0x9739aa36, 0xffffd861ffffde74}, + {0x9739aa37, 0xffffd861ffffde75}, + {0x9739aa38, 0xffffd861ffffde76}, + {0x9739aa39, 0xffffd861ffffde77}, + {0x9739ab30, 0xffffd861ffffde78}, + {0x9739ab31, 0xffffd861ffffde79}, + {0x9739ab32, 0xffffd861ffffde7a}, + {0x9739ab33, 0xffffd861ffffde7b}, + {0x9739ab34, 0xffffd861ffffde7c}, + {0x9739ab35, 0xffffd861ffffde7d}, + {0x9739ab36, 0xffffd861ffffde7e}, + {0x9739ab37, 0xffffd861ffffde7f}, + {0x9739ab38, 0xffffd861ffffde80}, + {0x9739ab39, 0xffffd861ffffde81}, + {0x9739ac30, 0xffffd861ffffde82}, + {0x9739ac31, 0xffffd861ffffde83}, + {0x9739ac32, 0xffffd861ffffde84}, + {0x9739ac33, 0xffffd861ffffde85}, + {0x9739ac34, 0xffffd861ffffde86}, + {0x9739ac35, 0xffffd861ffffde87}, + {0x9739ac36, 0xffffd861ffffde88}, + {0x9739ac37, 0xffffd861ffffde89}, + {0x9739ac38, 0xffffd861ffffde8a}, + {0x9739ac39, 0xffffd861ffffde8b}, + {0x9739ad30, 0xffffd861ffffde8c}, + {0x9739ad31, 0xffffd861ffffde8d}, + {0x9739ad32, 0xffffd861ffffde8e}, + {0x9739ad33, 0xffffd861ffffde8f}, + {0x9739ad34, 0xffffd861ffffde90}, + {0x9739ad35, 0xffffd861ffffde91}, + {0x9739ad36, 0xffffd861ffffde92}, + {0x9739ad37, 0xffffd861ffffde93}, + {0x9739ad38, 0xffffd861ffffde94}, + {0x9739ad39, 0xffffd861ffffde95}, + {0x9739ae30, 0xffffd861ffffde96}, + {0x9739ae31, 0xffffd861ffffde97}, + {0x9739ae32, 0xffffd861ffffde98}, + {0x9739ae33, 0xffffd861ffffde99}, + {0x9739ae34, 0xffffd861ffffde9a}, + {0x9739ae35, 0xffffd861ffffde9b}, + {0x9739ae36, 0xffffd861ffffde9c}, + {0x9739ae37, 0xffffd861ffffde9d}, + {0x9739ae38, 0xffffd861ffffde9e}, + {0x9739ae39, 0xffffd861ffffde9f}, + {0x9739af30, 0xffffd861ffffdea0}, + {0x9739af31, 0xffffd861ffffdea1}, + {0x9739af32, 0xffffd861ffffdea2}, + {0x9739af33, 0xffffd861ffffdea3}, + {0x9739af34, 0xffffd861ffffdea4}, + {0x9739af35, 0xffffd861ffffdea5}, + {0x9739af36, 0xffffd861ffffdea6}, + {0x9739af37, 0xffffd861ffffdea7}, + {0x9739af38, 0xffffd861ffffdea8}, + {0x9739af39, 0xffffd861ffffdea9}, + {0x9739b030, 0xffffd861ffffdeaa}, + {0x9739b031, 0xffffd861ffffdeab}, + {0x9739b032, 0xffffd861ffffdeac}, + {0x9739b033, 0xffffd861ffffdead}, + {0x9739b034, 0xffffd861ffffdeae}, + {0x9739b035, 0xffffd861ffffdeaf}, + {0x9739b036, 0xffffd861ffffdeb0}, + {0x9739b037, 0xffffd861ffffdeb1}, + {0x9739b038, 0xffffd861ffffdeb2}, + {0x9739b039, 0xffffd861ffffdeb3}, + {0x9739b130, 0xffffd861ffffdeb4}, + {0x9739b131, 0xffffd861ffffdeb5}, + {0x9739b132, 0xffffd861ffffdeb6}, + {0x9739b133, 0xffffd861ffffdeb7}, + {0x9739b134, 0xffffd861ffffdeb8}, + {0x9739b135, 0xffffd861ffffdeb9}, + {0x9739b136, 0xffffd861ffffdeba}, + {0x9739b137, 0xffffd861ffffdebb}, + {0x9739b138, 0xffffd861ffffdebc}, + {0x9739b139, 0xffffd861ffffdebd}, + {0x9739b230, 0xffffd861ffffdebe}, + {0x9739b231, 0xffffd861ffffdebf}, + {0x9739b232, 0xffffd861ffffdec0}, + {0x9739b233, 0xffffd861ffffdec1}, + {0x9739b234, 0xffffd861ffffdec2}, + {0x9739b235, 0xffffd861ffffdec3}, + {0x9739b236, 0xffffd861ffffdec4}, + {0x9739b237, 0xffffd861ffffdec5}, + {0x9739b238, 0xffffd861ffffdec6}, + {0x9739b239, 0xffffd861ffffdec7}, + {0x9739b330, 0xffffd861ffffdec8}, + {0x9739b331, 0xffffd861ffffdec9}, + {0x9739b332, 0xffffd861ffffdeca}, + {0x9739b333, 0xffffd861ffffdecb}, + {0x9739b334, 0xffffd861ffffdecc}, + {0x9739b335, 0xffffd861ffffdecd}, + {0x9739b336, 0xffffd861ffffdece}, + {0x9739b337, 0xffffd861ffffdecf}, + {0x9739b338, 0xffffd861ffffded0}, + {0x9739b339, 0xffffd861ffffded1}, + {0x9739b430, 0xffffd861ffffded2}, + {0x9739b431, 0xffffd861ffffded3}, + {0x9739b432, 0xffffd861ffffded4}, + {0x9739b433, 0xffffd861ffffded5}, + {0x9739b434, 0xffffd861ffffded6}, + {0x9739b435, 0xffffd861ffffded7}, + {0x9739b436, 0xffffd861ffffded8}, + {0x9739b437, 0xffffd861ffffded9}, + {0x9739b438, 0xffffd861ffffdeda}, + {0x9739b439, 0xffffd861ffffdedb}, + {0x9739b530, 0xffffd861ffffdedc}, + {0x9739b531, 0xffffd861ffffdedd}, + {0x9739b532, 0xffffd861ffffdede}, + {0x9739b533, 0xffffd861ffffdedf}, + {0x9739b534, 0xffffd861ffffdee0}, + {0x9739b535, 0xffffd861ffffdee1}, + {0x9739b536, 0xffffd861ffffdee2}, + {0x9739b537, 0xffffd861ffffdee3}, + {0x9739b538, 0xffffd861ffffdee4}, + {0x9739b539, 0xffffd861ffffdee5}, + {0x9739b630, 0xffffd861ffffdee6}, + {0x9739b631, 0xffffd861ffffdee7}, + {0x9739b632, 0xffffd861ffffdee8}, + {0x9739b633, 0xffffd861ffffdee9}, + {0x9739b634, 0xffffd861ffffdeea}, + {0x9739b635, 0xffffd861ffffdeeb}, + {0x9739b636, 0xffffd861ffffdeec}, + {0x9739b637, 0xffffd861ffffdeed}, + {0x9739b638, 0xffffd861ffffdeee}, + {0x9739b639, 0xffffd861ffffdeef}, + {0x9739b730, 0xffffd861ffffdef0}, + {0x9739b731, 0xffffd861ffffdef1}, + {0x9739b732, 0xffffd861ffffdef2}, + {0x9739b733, 0xffffd861ffffdef3}, + {0x9739b734, 0xffffd861ffffdef4}, + {0x9739b735, 0xffffd861ffffdef5}, + {0x9739b736, 0xffffd861ffffdef6}, + {0x9739b737, 0xffffd861ffffdef7}, + {0x9739b738, 0xffffd861ffffdef8}, + {0x9739b739, 0xffffd861ffffdef9}, + {0x9739b830, 0xffffd861ffffdefa}, + {0x9739b831, 0xffffd861ffffdefb}, + {0x9739b832, 0xffffd861ffffdefc}, + {0x9739b833, 0xffffd861ffffdefd}, + {0x9739b834, 0xffffd861ffffdefe}, + {0x9739b835, 0xffffd861ffffdeff}, + {0x9739b836, 0xffffd861ffffdf00}, + {0x9739b837, 0xffffd861ffffdf01}, + {0x9739b838, 0xffffd861ffffdf02}, + {0x9739b839, 0xffffd861ffffdf03}, + {0x9739b930, 0xffffd861ffffdf04}, + {0x9739b931, 0xffffd861ffffdf05}, + {0x9739b932, 0xffffd861ffffdf06}, + {0x9739b933, 0xffffd861ffffdf07}, + {0x9739b934, 0xffffd861ffffdf08}, + {0x9739b935, 0xffffd861ffffdf09}, + {0x9739b936, 0xffffd861ffffdf0a}, + {0x9739b937, 0xffffd861ffffdf0b}, + {0x9739b938, 0xffffd861ffffdf0c}, + {0x9739b939, 0xffffd861ffffdf0d}, + {0x9739ba30, 0xffffd861ffffdf0e}, + {0x9739ba31, 0xffffd861ffffdf0f}, + {0x9739ba32, 0xffffd861ffffdf10}, + {0x9739ba33, 0xffffd861ffffdf11}, + {0x9739ba34, 0xffffd861ffffdf12}, + {0x9739ba35, 0xffffd861ffffdf13}, + {0x9739ba36, 0xffffd861ffffdf14}, + {0x9739ba37, 0xffffd861ffffdf15}, + {0x9739ba38, 0xffffd861ffffdf16}, + {0x9739ba39, 0xffffd861ffffdf17}, + {0x9739bb30, 0xffffd861ffffdf18}, + {0x9739bb31, 0xffffd861ffffdf19}, + {0x9739bb32, 0xffffd861ffffdf1a}, + {0x9739bb33, 0xffffd861ffffdf1b}, + {0x9739bb34, 0xffffd861ffffdf1c}, + {0x9739bb35, 0xffffd861ffffdf1d}, + {0x9739bb36, 0xffffd861ffffdf1e}, + {0x9739bb37, 0xffffd861ffffdf1f}, + {0x9739bb38, 0xffffd861ffffdf20}, + {0x9739bb39, 0xffffd861ffffdf21}, + {0x9739bc30, 0xffffd861ffffdf22}, + {0x9739bc31, 0xffffd861ffffdf23}, + {0x9739bc32, 0xffffd861ffffdf24}, + {0x9739bc33, 0xffffd861ffffdf25}, + {0x9739bc34, 0xffffd861ffffdf26}, + {0x9739bc35, 0xffffd861ffffdf27}, + {0x9739bc36, 0xffffd861ffffdf28}, + {0x9739bc37, 0xffffd861ffffdf29}, + {0x9739bc38, 0xffffd861ffffdf2a}, + {0x9739bc39, 0xffffd861ffffdf2b}, + {0x9739bd30, 0xffffd861ffffdf2c}, + {0x9739bd31, 0xffffd861ffffdf2d}, + {0x9739bd32, 0xffffd861ffffdf2e}, + {0x9739bd33, 0xffffd861ffffdf2f}, + {0x9739bd34, 0xffffd861ffffdf30}, + {0x9739bd35, 0xffffd861ffffdf31}, + {0x9739bd36, 0xffffd861ffffdf32}, + {0x9739bd37, 0xffffd861ffffdf33}, + {0x9739bd38, 0xffffd861ffffdf34}, + {0x9739bd39, 0xffffd861ffffdf35}, + {0x9739be30, 0xffffd861ffffdf36}, + {0x9739be31, 0xffffd861ffffdf37}, + {0x9739be32, 0xffffd861ffffdf38}, + {0x9739be33, 0xffffd861ffffdf39}, + {0x9739be34, 0xffffd861ffffdf3a}, + {0x9739be35, 0xffffd861ffffdf3b}, + {0x9739be36, 0xffffd861ffffdf3c}, + {0x9739be37, 0xffffd861ffffdf3d}, + {0x9739be38, 0xffffd861ffffdf3e}, + {0x9739be39, 0xffffd861ffffdf3f}, + {0x9739bf30, 0xffffd861ffffdf40}, + {0x9739bf31, 0xffffd861ffffdf41}, + {0x9739bf32, 0xffffd861ffffdf42}, + {0x9739bf33, 0xffffd861ffffdf43}, + {0x9739bf34, 0xffffd861ffffdf44}, + {0x9739bf35, 0xffffd861ffffdf45}, + {0x9739bf36, 0xffffd861ffffdf46}, + {0x9739bf37, 0xffffd861ffffdf47}, + {0x9739bf38, 0xffffd861ffffdf48}, + {0x9739bf39, 0xffffd861ffffdf49}, + {0x9739c030, 0xffffd861ffffdf4a}, + {0x9739c031, 0xffffd861ffffdf4b}, + {0x9739c032, 0xffffd861ffffdf4c}, + {0x9739c033, 0xffffd861ffffdf4d}, + {0x9739c034, 0xffffd861ffffdf4e}, + {0x9739c035, 0xffffd861ffffdf4f}, + {0x9739c036, 0xffffd861ffffdf50}, + {0x9739c037, 0xffffd861ffffdf51}, + {0x9739c038, 0xffffd861ffffdf52}, + {0x9739c039, 0xffffd861ffffdf53}, + {0x9739c130, 0xffffd861ffffdf54}, + {0x9739c131, 0xffffd861ffffdf55}, + {0x9739c132, 0xffffd861ffffdf56}, + {0x9739c133, 0xffffd861ffffdf57}, + {0x9739c134, 0xffffd861ffffdf58}, + {0x9739c135, 0xffffd861ffffdf59}, + {0x9739c136, 0xffffd861ffffdf5a}, + {0x9739c137, 0xffffd861ffffdf5b}, + {0x9739c138, 0xffffd861ffffdf5c}, + {0x9739c139, 0xffffd861ffffdf5d}, + {0x9739c230, 0xffffd861ffffdf5e}, + {0x9739c231, 0xffffd861ffffdf5f}, + {0x9739c232, 0xffffd861ffffdf60}, + {0x9739c233, 0xffffd861ffffdf61}, + {0x9739c234, 0xffffd861ffffdf62}, + {0x9739c235, 0xffffd861ffffdf63}, + {0x9739c236, 0xffffd861ffffdf64}, + {0x9739c237, 0xffffd861ffffdf65}, + {0x9739c238, 0xffffd861ffffdf66}, + {0x9739c239, 0xffffd861ffffdf67}, + {0x9739c330, 0xffffd861ffffdf68}, + {0x9739c331, 0xffffd861ffffdf69}, + {0x9739c332, 0xffffd861ffffdf6a}, + {0x9739c333, 0xffffd861ffffdf6b}, + {0x9739c334, 0xffffd861ffffdf6c}, + {0x9739c335, 0xffffd861ffffdf6d}, + {0x9739c336, 0xffffd861ffffdf6e}, + {0x9739c337, 0xffffd861ffffdf6f}, + {0x9739c338, 0xffffd861ffffdf70}, + {0x9739c339, 0xffffd861ffffdf71}, + {0x9739c430, 0xffffd861ffffdf72}, + {0x9739c431, 0xffffd861ffffdf73}, + {0x9739c432, 0xffffd861ffffdf74}, + {0x9739c433, 0xffffd861ffffdf75}, + {0x9739c434, 0xffffd861ffffdf76}, + {0x9739c435, 0xffffd861ffffdf77}, + {0x9739c436, 0xffffd861ffffdf78}, + {0x9739c437, 0xffffd861ffffdf79}, + {0x9739c438, 0xffffd861ffffdf7a}, + {0x9739c439, 0xffffd861ffffdf7b}, + {0x9739c530, 0xffffd861ffffdf7c}, + {0x9739c531, 0xffffd861ffffdf7d}, + {0x9739c532, 0xffffd861ffffdf7e}, + {0x9739c533, 0xffffd861ffffdf7f}, + {0x9739c534, 0xffffd861ffffdf80}, + {0x9739c535, 0xffffd861ffffdf81}, + {0x9739c536, 0xffffd861ffffdf82}, + {0x9739c537, 0xffffd861ffffdf83}, + {0x9739c538, 0xffffd861ffffdf84}, + {0x9739c539, 0xffffd861ffffdf85}, + {0x9739c630, 0xffffd861ffffdf86}, + {0x9739c631, 0xffffd861ffffdf87}, + {0x9739c632, 0xffffd861ffffdf88}, + {0x9739c633, 0xffffd861ffffdf89}, + {0x9739c634, 0xffffd861ffffdf8a}, + {0x9739c635, 0xffffd861ffffdf8b}, + {0x9739c636, 0xffffd861ffffdf8c}, + {0x9739c637, 0xffffd861ffffdf8d}, + {0x9739c638, 0xffffd861ffffdf8e}, + {0x9739c639, 0xffffd861ffffdf8f}, + {0x9739c730, 0xffffd861ffffdf90}, + {0x9739c731, 0xffffd861ffffdf91}, + {0x9739c732, 0xffffd861ffffdf92}, + {0x9739c733, 0xffffd861ffffdf93}, + {0x9739c734, 0xffffd861ffffdf94}, + {0x9739c735, 0xffffd861ffffdf95}, + {0x9739c736, 0xffffd861ffffdf96}, + {0x9739c737, 0xffffd861ffffdf97}, + {0x9739c738, 0xffffd861ffffdf98}, + {0x9739c739, 0xffffd861ffffdf99}, + {0x9739c830, 0xffffd861ffffdf9a}, + {0x9739c831, 0xffffd861ffffdf9b}, + {0x9739c832, 0xffffd861ffffdf9c}, + {0x9739c833, 0xffffd861ffffdf9d}, + {0x9739c834, 0xffffd861ffffdf9e}, + {0x9739c835, 0xffffd861ffffdf9f}, + {0x9739c836, 0xffffd861ffffdfa0}, + {0x9739c837, 0xffffd861ffffdfa1}, + {0x9739c838, 0xffffd861ffffdfa2}, + {0x9739c839, 0xffffd861ffffdfa3}, + {0x9739c930, 0xffffd861ffffdfa4}, + {0x9739c931, 0xffffd861ffffdfa5}, + {0x9739c932, 0xffffd861ffffdfa6}, + {0x9739c933, 0xffffd861ffffdfa7}, + {0x9739c934, 0xffffd861ffffdfa8}, + {0x9739c935, 0xffffd861ffffdfa9}, + {0x9739c936, 0xffffd861ffffdfaa}, + {0x9739c937, 0xffffd861ffffdfab}, + {0x9739c938, 0xffffd861ffffdfac}, + {0x9739c939, 0xffffd861ffffdfad}, + {0x9739ca30, 0xffffd861ffffdfae}, + {0x9739ca31, 0xffffd861ffffdfaf}, + {0x9739ca32, 0xffffd861ffffdfb0}, + {0x9739ca33, 0xffffd861ffffdfb1}, + {0x9739ca34, 0xffffd861ffffdfb2}, + {0x9739ca35, 0xffffd861ffffdfb3}, + {0x9739ca36, 0xffffd861ffffdfb4}, + {0x9739ca37, 0xffffd861ffffdfb5}, + {0x9739ca38, 0xffffd861ffffdfb6}, + {0x9739ca39, 0xffffd861ffffdfb7}, + {0x9739cb30, 0xffffd861ffffdfb8}, + {0x9739cb31, 0xffffd861ffffdfb9}, + {0x9739cb32, 0xffffd861ffffdfba}, + {0x9739cb33, 0xffffd861ffffdfbb}, + {0x9739cb34, 0xffffd861ffffdfbc}, + {0x9739cb35, 0xffffd861ffffdfbd}, + {0x9739cb36, 0xffffd861ffffdfbe}, + {0x9739cb37, 0xffffd861ffffdfbf}, + {0x9739cb38, 0xffffd861ffffdfc0}, + {0x9739cb39, 0xffffd861ffffdfc1}, + {0x9739cc30, 0xffffd861ffffdfc2}, + {0x9739cc31, 0xffffd861ffffdfc3}, + {0x9739cc32, 0xffffd861ffffdfc4}, + {0x9739cc33, 0xffffd861ffffdfc5}, + {0x9739cc34, 0xffffd861ffffdfc6}, + {0x9739cc35, 0xffffd861ffffdfc7}, + {0x9739cc36, 0xffffd861ffffdfc8}, + {0x9739cc37, 0xffffd861ffffdfc9}, + {0x9739cc38, 0xffffd861ffffdfca}, + {0x9739cc39, 0xffffd861ffffdfcb}, + {0x9739cd30, 0xffffd861ffffdfcc}, + {0x9739cd31, 0xffffd861ffffdfcd}, + {0x9739cd32, 0xffffd861ffffdfce}, + {0x9739cd33, 0xffffd861ffffdfcf}, + {0x9739cd34, 0xffffd861ffffdfd0}, + {0x9739cd35, 0xffffd861ffffdfd1}, + {0x9739cd36, 0xffffd861ffffdfd2}, + {0x9739cd37, 0xffffd861ffffdfd3}, + {0x9739cd38, 0xffffd861ffffdfd4}, + {0x9739cd39, 0xffffd861ffffdfd5}, + {0x9739ce30, 0xffffd861ffffdfd6}, + {0x9739ce31, 0xffffd861ffffdfd7}, + {0x9739ce32, 0xffffd861ffffdfd8}, + {0x9739ce33, 0xffffd861ffffdfd9}, + {0x9739ce34, 0xffffd861ffffdfda}, + {0x9739ce35, 0xffffd861ffffdfdb}, + {0x9739ce36, 0xffffd861ffffdfdc}, + {0x9739ce37, 0xffffd861ffffdfdd}, + {0x9739ce38, 0xffffd861ffffdfde}, + {0x9739ce39, 0xffffd861ffffdfdf}, + {0x9739cf30, 0xffffd861ffffdfe0}, + {0x9739cf31, 0xffffd861ffffdfe1}, + {0x9739cf32, 0xffffd861ffffdfe2}, + {0x9739cf33, 0xffffd861ffffdfe3}, + {0x9739cf34, 0xffffd861ffffdfe4}, + {0x9739cf35, 0xffffd861ffffdfe5}, + {0x9739cf36, 0xffffd861ffffdfe6}, + {0x9739cf37, 0xffffd861ffffdfe7}, + {0x9739cf38, 0xffffd861ffffdfe8}, + {0x9739cf39, 0xffffd861ffffdfe9}, + {0x9739d030, 0xffffd861ffffdfea}, + {0x9739d031, 0xffffd861ffffdfeb}, + {0x9739d032, 0xffffd861ffffdfec}, + {0x9739d033, 0xffffd861ffffdfed}, + {0x9739d034, 0xffffd861ffffdfee}, + {0x9739d035, 0xffffd861ffffdfef}, + {0x9739d036, 0xffffd861ffffdff0}, + {0x9739d037, 0xffffd861ffffdff1}, + {0x9739d038, 0xffffd861ffffdff2}, + {0x9739d039, 0xffffd861ffffdff3}, + {0x9739d130, 0xffffd861ffffdff4}, + {0x9739d131, 0xffffd861ffffdff5}, + {0x9739d132, 0xffffd861ffffdff6}, + {0x9739d133, 0xffffd861ffffdff7}, + {0x9739d134, 0xffffd861ffffdff8}, + {0x9739d135, 0xffffd861ffffdff9}, + {0x9739d136, 0xffffd861ffffdffa}, + {0x9739d137, 0xffffd861ffffdffb}, + {0x9739d138, 0xffffd861ffffdffc}, + {0x9739d139, 0xffffd861ffffdffd}, + {0x9739d230, 0xffffd861ffffdffe}, + {0x9739d231, 0xffffd861ffffdfff}, + {0x9739d232, 0xffffd862ffffdc00}, + {0x9739d233, 0xffffd862ffffdc01}, + {0x9739d234, 0xffffd862ffffdc02}, + {0x9739d235, 0xffffd862ffffdc03}, + {0x9739d236, 0xffffd862ffffdc04}, + {0x9739d237, 0xffffd862ffffdc05}, + {0x9739d238, 0xffffd862ffffdc06}, + {0x9739d239, 0xffffd862ffffdc07}, + {0x9739d330, 0xffffd862ffffdc08}, + {0x9739d331, 0xffffd862ffffdc09}, + {0x9739d332, 0xffffd862ffffdc0a}, + {0x9739d333, 0xffffd862ffffdc0b}, + {0x9739d334, 0xffffd862ffffdc0c}, + {0x9739d335, 0xffffd862ffffdc0d}, + {0x9739d336, 0xffffd862ffffdc0e}, + {0x9739d337, 0xffffd862ffffdc0f}, + {0x9739d338, 0xffffd862ffffdc10}, + {0x9739d339, 0xffffd862ffffdc11}, + {0x9739d430, 0xffffd862ffffdc12}, + {0x9739d431, 0xffffd862ffffdc13}, + {0x9739d432, 0xffffd862ffffdc14}, + {0x9739d433, 0xffffd862ffffdc15}, + {0x9739d434, 0xffffd862ffffdc16}, + {0x9739d435, 0xffffd862ffffdc17}, + {0x9739d436, 0xffffd862ffffdc18}, + {0x9739d437, 0xffffd862ffffdc19}, + {0x9739d438, 0xffffd862ffffdc1a}, + {0x9739d439, 0xffffd862ffffdc1b}, + {0x9739d530, 0xffffd862ffffdc1c}, + {0x9739d531, 0xffffd862ffffdc1d}, + {0x9739d532, 0xffffd862ffffdc1e}, + {0x9739d533, 0xffffd862ffffdc1f}, + {0x9739d534, 0xffffd862ffffdc20}, + {0x9739d535, 0xffffd862ffffdc21}, + {0x9739d536, 0xffffd862ffffdc22}, + {0x9739d537, 0xffffd862ffffdc23}, + {0x9739d538, 0xffffd862ffffdc24}, + {0x9739d539, 0xffffd862ffffdc25}, + {0x9739d630, 0xffffd862ffffdc26}, + {0x9739d631, 0xffffd862ffffdc27}, + {0x9739d632, 0xffffd862ffffdc28}, + {0x9739d633, 0xffffd862ffffdc29}, + {0x9739d634, 0xffffd862ffffdc2a}, + {0x9739d635, 0xffffd862ffffdc2b}, + {0x9739d636, 0xffffd862ffffdc2c}, + {0x9739d637, 0xffffd862ffffdc2d}, + {0x9739d638, 0xffffd862ffffdc2e}, + {0x9739d639, 0xffffd862ffffdc2f}, + {0x9739d730, 0xffffd862ffffdc30}, + {0x9739d731, 0xffffd862ffffdc31}, + {0x9739d732, 0xffffd862ffffdc32}, + {0x9739d733, 0xffffd862ffffdc33}, + {0x9739d734, 0xffffd862ffffdc34}, + {0x9739d735, 0xffffd862ffffdc35}, + {0x9739d736, 0xffffd862ffffdc36}, + {0x9739d737, 0xffffd862ffffdc37}, + {0x9739d738, 0xffffd862ffffdc38}, + {0x9739d739, 0xffffd862ffffdc39}, + {0x9739d830, 0xffffd862ffffdc3a}, + {0x9739d831, 0xffffd862ffffdc3b}, + {0x9739d832, 0xffffd862ffffdc3c}, + {0x9739d833, 0xffffd862ffffdc3d}, + {0x9739d834, 0xffffd862ffffdc3e}, + {0x9739d835, 0xffffd862ffffdc3f}, + {0x9739d836, 0xffffd862ffffdc40}, + {0x9739d837, 0xffffd862ffffdc41}, + {0x9739d838, 0xffffd862ffffdc42}, + {0x9739d839, 0xffffd862ffffdc43}, + {0x9739d930, 0xffffd862ffffdc44}, + {0x9739d931, 0xffffd862ffffdc45}, + {0x9739d932, 0xffffd862ffffdc46}, + {0x9739d933, 0xffffd862ffffdc47}, + {0x9739d934, 0xffffd862ffffdc48}, + {0x9739d935, 0xffffd862ffffdc49}, + {0x9739d936, 0xffffd862ffffdc4a}, + {0x9739d937, 0xffffd862ffffdc4b}, + {0x9739d938, 0xffffd862ffffdc4c}, + {0x9739d939, 0xffffd862ffffdc4d}, + {0x9739da30, 0xffffd862ffffdc4e}, + {0x9739da31, 0xffffd862ffffdc4f}, + {0x9739da32, 0xffffd862ffffdc50}, + {0x9739da33, 0xffffd862ffffdc51}, + {0x9739da34, 0xffffd862ffffdc52}, + {0x9739da35, 0xffffd862ffffdc53}, + {0x9739da36, 0xffffd862ffffdc54}, + {0x9739da37, 0xffffd862ffffdc55}, + {0x9739da38, 0xffffd862ffffdc56}, + {0x9739da39, 0xffffd862ffffdc57}, + {0x9739db30, 0xffffd862ffffdc58}, + {0x9739db31, 0xffffd862ffffdc59}, + {0x9739db32, 0xffffd862ffffdc5a}, + {0x9739db33, 0xffffd862ffffdc5b}, + {0x9739db34, 0xffffd862ffffdc5c}, + {0x9739db35, 0xffffd862ffffdc5d}, + {0x9739db36, 0xffffd862ffffdc5e}, + {0x9739db37, 0xffffd862ffffdc5f}, + {0x9739db38, 0xffffd862ffffdc60}, + {0x9739db39, 0xffffd862ffffdc61}, + {0x9739dc30, 0xffffd862ffffdc62}, + {0x9739dc31, 0xffffd862ffffdc63}, + {0x9739dc32, 0xffffd862ffffdc64}, + {0x9739dc33, 0xffffd862ffffdc65}, + {0x9739dc34, 0xffffd862ffffdc66}, + {0x9739dc35, 0xffffd862ffffdc67}, + {0x9739dc36, 0xffffd862ffffdc68}, + {0x9739dc37, 0xffffd862ffffdc69}, + {0x9739dc38, 0xffffd862ffffdc6a}, + {0x9739dc39, 0xffffd862ffffdc6b}, + {0x9739dd30, 0xffffd862ffffdc6c}, + {0x9739dd31, 0xffffd862ffffdc6d}, + {0x9739dd32, 0xffffd862ffffdc6e}, + {0x9739dd33, 0xffffd862ffffdc6f}, + {0x9739dd34, 0xffffd862ffffdc70}, + {0x9739dd35, 0xffffd862ffffdc71}, + {0x9739dd36, 0xffffd862ffffdc72}, + {0x9739dd37, 0xffffd862ffffdc73}, + {0x9739dd38, 0xffffd862ffffdc74}, + {0x9739dd39, 0xffffd862ffffdc75}, + {0x9739de30, 0xffffd862ffffdc76}, + {0x9739de31, 0xffffd862ffffdc77}, + {0x9739de32, 0xffffd862ffffdc78}, + {0x9739de33, 0xffffd862ffffdc79}, + {0x9739de34, 0xffffd862ffffdc7a}, + {0x9739de35, 0xffffd862ffffdc7b}, + {0x9739de36, 0xffffd862ffffdc7c}, + {0x9739de37, 0xffffd862ffffdc7d}, + {0x9739de38, 0xffffd862ffffdc7e}, + {0x9739de39, 0xffffd862ffffdc7f}, + {0x9739df30, 0xffffd862ffffdc80}, + {0x9739df31, 0xffffd862ffffdc81}, + {0x9739df32, 0xffffd862ffffdc82}, + {0x9739df33, 0xffffd862ffffdc83}, + {0x9739df34, 0xffffd862ffffdc84}, + {0x9739df35, 0xffffd862ffffdc85}, + {0x9739df36, 0xffffd862ffffdc86}, + {0x9739df37, 0xffffd862ffffdc87}, + {0x9739df38, 0xffffd862ffffdc88}, + {0x9739df39, 0xffffd862ffffdc89}, + {0x9739e030, 0xffffd862ffffdc8a}, + {0x9739e031, 0xffffd862ffffdc8b}, + {0x9739e032, 0xffffd862ffffdc8c}, + {0x9739e033, 0xffffd862ffffdc8d}, + {0x9739e034, 0xffffd862ffffdc8e}, + {0x9739e035, 0xffffd862ffffdc8f}, + {0x9739e036, 0xffffd862ffffdc90}, + {0x9739e037, 0xffffd862ffffdc91}, + {0x9739e038, 0xffffd862ffffdc92}, + {0x9739e039, 0xffffd862ffffdc93}, + {0x9739e130, 0xffffd862ffffdc94}, + {0x9739e131, 0xffffd862ffffdc95}, + {0x9739e132, 0xffffd862ffffdc96}, + {0x9739e133, 0xffffd862ffffdc97}, + {0x9739e134, 0xffffd862ffffdc98}, + {0x9739e135, 0xffffd862ffffdc99}, + {0x9739e136, 0xffffd862ffffdc9a}, + {0x9739e137, 0xffffd862ffffdc9b}, + {0x9739e138, 0xffffd862ffffdc9c}, + {0x9739e139, 0xffffd862ffffdc9d}, + {0x9739e230, 0xffffd862ffffdc9e}, + {0x9739e231, 0xffffd862ffffdc9f}, + {0x9739e232, 0xffffd862ffffdca0}, + {0x9739e233, 0xffffd862ffffdca1}, + {0x9739e234, 0xffffd862ffffdca2}, + {0x9739e235, 0xffffd862ffffdca3}, + {0x9739e236, 0xffffd862ffffdca4}, + {0x9739e237, 0xffffd862ffffdca5}, + {0x9739e238, 0xffffd862ffffdca6}, + {0x9739e239, 0xffffd862ffffdca7}, + {0x9739e330, 0xffffd862ffffdca8}, + {0x9739e331, 0xffffd862ffffdca9}, + {0x9739e332, 0xffffd862ffffdcaa}, + {0x9739e333, 0xffffd862ffffdcab}, + {0x9739e334, 0xffffd862ffffdcac}, + {0x9739e335, 0xffffd862ffffdcad}, + {0x9739e336, 0xffffd862ffffdcae}, + {0x9739e337, 0xffffd862ffffdcaf}, + {0x9739e338, 0xffffd862ffffdcb0}, + {0x9739e339, 0xffffd862ffffdcb1}, + {0x9739e430, 0xffffd862ffffdcb2}, + {0x9739e431, 0xffffd862ffffdcb3}, + {0x9739e432, 0xffffd862ffffdcb4}, + {0x9739e433, 0xffffd862ffffdcb5}, + {0x9739e434, 0xffffd862ffffdcb6}, + {0x9739e435, 0xffffd862ffffdcb7}, + {0x9739e436, 0xffffd862ffffdcb8}, + {0x9739e437, 0xffffd862ffffdcb9}, + {0x9739e438, 0xffffd862ffffdcba}, + {0x9739e439, 0xffffd862ffffdcbb}, + {0x9739e530, 0xffffd862ffffdcbc}, + {0x9739e531, 0xffffd862ffffdcbd}, + {0x9739e532, 0xffffd862ffffdcbe}, + {0x9739e533, 0xffffd862ffffdcbf}, + {0x9739e534, 0xffffd862ffffdcc0}, + {0x9739e535, 0xffffd862ffffdcc1}, + {0x9739e536, 0xffffd862ffffdcc2}, + {0x9739e537, 0xffffd862ffffdcc3}, + {0x9739e538, 0xffffd862ffffdcc4}, + {0x9739e539, 0xffffd862ffffdcc5}, + {0x9739e630, 0xffffd862ffffdcc6}, + {0x9739e631, 0xffffd862ffffdcc7}, + {0x9739e632, 0xffffd862ffffdcc8}, + {0x9739e633, 0xffffd862ffffdcc9}, + {0x9739e634, 0xffffd862ffffdcca}, + {0x9739e635, 0xffffd862ffffdccb}, + {0x9739e636, 0xffffd862ffffdccc}, + {0x9739e637, 0xffffd862ffffdccd}, + {0x9739e638, 0xffffd862ffffdcce}, + {0x9739e639, 0xffffd862ffffdccf}, + {0x9739e730, 0xffffd862ffffdcd0}, + {0x9739e731, 0xffffd862ffffdcd1}, + {0x9739e732, 0xffffd862ffffdcd2}, + {0x9739e733, 0xffffd862ffffdcd3}, + {0x9739e734, 0xffffd862ffffdcd4}, + {0x9739e735, 0xffffd862ffffdcd5}, + {0x9739e736, 0xffffd862ffffdcd6}, + {0x9739e737, 0xffffd862ffffdcd7}, + {0x9739e738, 0xffffd862ffffdcd8}, + {0x9739e739, 0xffffd862ffffdcd9}, + {0x9739e830, 0xffffd862ffffdcda}, + {0x9739e831, 0xffffd862ffffdcdb}, + {0x9739e832, 0xffffd862ffffdcdc}, + {0x9739e833, 0xffffd862ffffdcdd}, + {0x9739e834, 0xffffd862ffffdcde}, + {0x9739e835, 0xffffd862ffffdcdf}, + {0x9739e836, 0xffffd862ffffdce0}, + {0x9739e837, 0xffffd862ffffdce1}, + {0x9739e838, 0xffffd862ffffdce2}, + {0x9739e839, 0xffffd862ffffdce3}, + {0x9739e930, 0xffffd862ffffdce4}, + {0x9739e931, 0xffffd862ffffdce5}, + {0x9739e932, 0xffffd862ffffdce6}, + {0x9739e933, 0xffffd862ffffdce7}, + {0x9739e934, 0xffffd862ffffdce8}, + {0x9739e935, 0xffffd862ffffdce9}, + {0x9739e936, 0xffffd862ffffdcea}, + {0x9739e937, 0xffffd862ffffdceb}, + {0x9739e938, 0xffffd862ffffdcec}, + {0x9739e939, 0xffffd862ffffdced}, + {0x9739ea30, 0xffffd862ffffdcee}, + {0x9739ea31, 0xffffd862ffffdcef}, + {0x9739ea32, 0xffffd862ffffdcf0}, + {0x9739ea33, 0xffffd862ffffdcf1}, + {0x9739ea34, 0xffffd862ffffdcf2}, + {0x9739ea35, 0xffffd862ffffdcf3}, + {0x9739ea36, 0xffffd862ffffdcf4}, + {0x9739ea37, 0xffffd862ffffdcf5}, + {0x9739ea38, 0xffffd862ffffdcf6}, + {0x9739ea39, 0xffffd862ffffdcf7}, + {0x9739eb30, 0xffffd862ffffdcf8}, + {0x9739eb31, 0xffffd862ffffdcf9}, + {0x9739eb32, 0xffffd862ffffdcfa}, + {0x9739eb33, 0xffffd862ffffdcfb}, + {0x9739eb34, 0xffffd862ffffdcfc}, + {0x9739eb35, 0xffffd862ffffdcfd}, + {0x9739eb36, 0xffffd862ffffdcfe}, + {0x9739eb37, 0xffffd862ffffdcff}, + {0x9739eb38, 0xffffd862ffffdd00}, + {0x9739eb39, 0xffffd862ffffdd01}, + {0x9739ec30, 0xffffd862ffffdd02}, + {0x9739ec31, 0xffffd862ffffdd03}, + {0x9739ec32, 0xffffd862ffffdd04}, + {0x9739ec33, 0xffffd862ffffdd05}, + {0x9739ec34, 0xffffd862ffffdd06}, + {0x9739ec35, 0xffffd862ffffdd07}, + {0x9739ec36, 0xffffd862ffffdd08}, + {0x9739ec37, 0xffffd862ffffdd09}, + {0x9739ec38, 0xffffd862ffffdd0a}, + {0x9739ec39, 0xffffd862ffffdd0b}, + {0x9739ed30, 0xffffd862ffffdd0c}, + {0x9739ed31, 0xffffd862ffffdd0d}, + {0x9739ed32, 0xffffd862ffffdd0e}, + {0x9739ed33, 0xffffd862ffffdd0f}, + {0x9739ed34, 0xffffd862ffffdd10}, + {0x9739ed35, 0xffffd862ffffdd11}, + {0x9739ed36, 0xffffd862ffffdd12}, + {0x9739ed37, 0xffffd862ffffdd13}, + {0x9739ed38, 0xffffd862ffffdd14}, + {0x9739ed39, 0xffffd862ffffdd15}, + {0x9739ee30, 0xffffd862ffffdd16}, + {0x9739ee31, 0xffffd862ffffdd17}, + {0x9739ee32, 0xffffd862ffffdd18}, + {0x9739ee33, 0xffffd862ffffdd19}, + {0x9739ee34, 0xffffd862ffffdd1a}, + {0x9739ee35, 0xffffd862ffffdd1b}, + {0x9739ee36, 0xffffd862ffffdd1c}, + {0x9739ee37, 0xffffd862ffffdd1d}, + {0x9739ee38, 0xffffd862ffffdd1e}, + {0x9739ee39, 0xffffd862ffffdd1f}, + {0x9739ef30, 0xffffd862ffffdd20}, + {0x9739ef31, 0xffffd862ffffdd21}, + {0x9739ef32, 0xffffd862ffffdd22}, + {0x9739ef33, 0xffffd862ffffdd23}, + {0x9739ef34, 0xffffd862ffffdd24}, + {0x9739ef35, 0xffffd862ffffdd25}, + {0x9739ef36, 0xffffd862ffffdd26}, + {0x9739ef37, 0xffffd862ffffdd27}, + {0x9739ef38, 0xffffd862ffffdd28}, + {0x9739ef39, 0xffffd862ffffdd29}, + {0x9739f030, 0xffffd862ffffdd2a}, + {0x9739f031, 0xffffd862ffffdd2b}, + {0x9739f032, 0xffffd862ffffdd2c}, + {0x9739f033, 0xffffd862ffffdd2d}, + {0x9739f034, 0xffffd862ffffdd2e}, + {0x9739f035, 0xffffd862ffffdd2f}, + {0x9739f036, 0xffffd862ffffdd30}, + {0x9739f037, 0xffffd862ffffdd31}, + {0x9739f038, 0xffffd862ffffdd32}, + {0x9739f039, 0xffffd862ffffdd33}, + {0x9739f130, 0xffffd862ffffdd34}, + {0x9739f131, 0xffffd862ffffdd35}, + {0x9739f132, 0xffffd862ffffdd36}, + {0x9739f133, 0xffffd862ffffdd37}, + {0x9739f134, 0xffffd862ffffdd38}, + {0x9739f135, 0xffffd862ffffdd39}, + {0x9739f136, 0xffffd862ffffdd3a}, + {0x9739f137, 0xffffd862ffffdd3b}, + {0x9739f138, 0xffffd862ffffdd3c}, + {0x9739f139, 0xffffd862ffffdd3d}, + {0x9739f230, 0xffffd862ffffdd3e}, + {0x9739f231, 0xffffd862ffffdd3f}, + {0x9739f232, 0xffffd862ffffdd40}, + {0x9739f233, 0xffffd862ffffdd41}, + {0x9739f234, 0xffffd862ffffdd42}, + {0x9739f235, 0xffffd862ffffdd43}, + {0x9739f236, 0xffffd862ffffdd44}, + {0x9739f237, 0xffffd862ffffdd45}, + {0x9739f238, 0xffffd862ffffdd46}, + {0x9739f239, 0xffffd862ffffdd47}, + {0x9739f330, 0xffffd862ffffdd48}, + {0x9739f331, 0xffffd862ffffdd49}, + {0x9739f332, 0xffffd862ffffdd4a}, + {0x9739f333, 0xffffd862ffffdd4b}, + {0x9739f334, 0xffffd862ffffdd4c}, + {0x9739f335, 0xffffd862ffffdd4d}, + {0x9739f336, 0xffffd862ffffdd4e}, + {0x9739f337, 0xffffd862ffffdd4f}, + {0x9739f338, 0xffffd862ffffdd50}, + {0x9739f339, 0xffffd862ffffdd51}, + {0x9739f430, 0xffffd862ffffdd52}, + {0x9739f431, 0xffffd862ffffdd53}, + {0x9739f432, 0xffffd862ffffdd54}, + {0x9739f433, 0xffffd862ffffdd55}, + {0x9739f434, 0xffffd862ffffdd56}, + {0x9739f435, 0xffffd862ffffdd57}, + {0x9739f436, 0xffffd862ffffdd58}, + {0x9739f437, 0xffffd862ffffdd59}, + {0x9739f438, 0xffffd862ffffdd5a}, + {0x9739f439, 0xffffd862ffffdd5b}, + {0x9739f530, 0xffffd862ffffdd5c}, + {0x9739f531, 0xffffd862ffffdd5d}, + {0x9739f532, 0xffffd862ffffdd5e}, + {0x9739f533, 0xffffd862ffffdd5f}, + {0x9739f534, 0xffffd862ffffdd60}, + {0x9739f535, 0xffffd862ffffdd61}, + {0x9739f536, 0xffffd862ffffdd62}, + {0x9739f537, 0xffffd862ffffdd63}, + {0x9739f538, 0xffffd862ffffdd64}, + {0x9739f539, 0xffffd862ffffdd65}, + {0x9739f630, 0xffffd862ffffdd66}, + {0x9739f631, 0xffffd862ffffdd67}, + {0x9739f632, 0xffffd862ffffdd68}, + {0x9739f633, 0xffffd862ffffdd69}, + {0x9739f634, 0xffffd862ffffdd6a}, + {0x9739f635, 0xffffd862ffffdd6b}, + {0x9739f636, 0xffffd862ffffdd6c}, + {0x9739f637, 0xffffd862ffffdd6d}, + {0x9739f638, 0xffffd862ffffdd6e}, + {0x9739f639, 0xffffd862ffffdd6f}, + {0x9739f730, 0xffffd862ffffdd70}, + {0x9739f731, 0xffffd862ffffdd71}, + {0x9739f732, 0xffffd862ffffdd72}, + {0x9739f733, 0xffffd862ffffdd73}, + {0x9739f734, 0xffffd862ffffdd74}, + {0x9739f735, 0xffffd862ffffdd75}, + {0x9739f736, 0xffffd862ffffdd76}, + {0x9739f737, 0xffffd862ffffdd77}, + {0x9739f738, 0xffffd862ffffdd78}, + {0x9739f739, 0xffffd862ffffdd79}, + {0x9739f830, 0xffffd862ffffdd7a}, + {0x9739f831, 0xffffd862ffffdd7b}, + {0x9739f832, 0xffffd862ffffdd7c}, + {0x9739f833, 0xffffd862ffffdd7d}, + {0x9739f834, 0xffffd862ffffdd7e}, + {0x9739f835, 0xffffd862ffffdd7f}, + {0x9739f836, 0xffffd862ffffdd80}, + {0x9739f837, 0xffffd862ffffdd81}, + {0x9739f838, 0xffffd862ffffdd82}, + {0x9739f839, 0xffffd862ffffdd83}, + {0x9739f930, 0xffffd862ffffdd84}, + {0x9739f931, 0xffffd862ffffdd85}, + {0x9739f932, 0xffffd862ffffdd86}, + {0x9739f933, 0xffffd862ffffdd87}, + {0x9739f934, 0xffffd862ffffdd88}, + {0x9739f935, 0xffffd862ffffdd89}, + {0x9739f936, 0xffffd862ffffdd8a}, + {0x9739f937, 0xffffd862ffffdd8b}, + {0x9739f938, 0xffffd862ffffdd8c}, + {0x9739f939, 0xffffd862ffffdd8d}, + {0x9739fa30, 0xffffd862ffffdd8e}, + {0x9739fa31, 0xffffd862ffffdd8f}, + {0x9739fa32, 0xffffd862ffffdd90}, + {0x9739fa33, 0xffffd862ffffdd91}, + {0x9739fa34, 0xffffd862ffffdd92}, + {0x9739fa35, 0xffffd862ffffdd93}, + {0x9739fa36, 0xffffd862ffffdd94}, + {0x9739fa37, 0xffffd862ffffdd95}, + {0x9739fa38, 0xffffd862ffffdd96}, + {0x9739fa39, 0xffffd862ffffdd97}, + {0x9739fb30, 0xffffd862ffffdd98}, + {0x9739fb31, 0xffffd862ffffdd99}, + {0x9739fb32, 0xffffd862ffffdd9a}, + {0x9739fb33, 0xffffd862ffffdd9b}, + {0x9739fb34, 0xffffd862ffffdd9c}, + {0x9739fb35, 0xffffd862ffffdd9d}, + {0x9739fb36, 0xffffd862ffffdd9e}, + {0x9739fb37, 0xffffd862ffffdd9f}, + {0x9739fb38, 0xffffd862ffffdda0}, + {0x9739fb39, 0xffffd862ffffdda1}, + {0x9739fc30, 0xffffd862ffffdda2}, + {0x9739fc31, 0xffffd862ffffdda3}, + {0x9739fc32, 0xffffd862ffffdda4}, + {0x9739fc33, 0xffffd862ffffdda5}, + {0x9739fc34, 0xffffd862ffffdda6}, + {0x9739fc35, 0xffffd862ffffdda7}, + {0x9739fc36, 0xffffd862ffffdda8}, + {0x9739fc37, 0xffffd862ffffdda9}, + {0x9739fc38, 0xffffd862ffffddaa}, + {0x9739fc39, 0xffffd862ffffddab}, + {0x9739fd30, 0xffffd862ffffddac}, + {0x9739fd31, 0xffffd862ffffddad}, + {0x9739fd32, 0xffffd862ffffddae}, + {0x9739fd33, 0xffffd862ffffddaf}, + {0x9739fd34, 0xffffd862ffffddb0}, + {0x9739fd35, 0xffffd862ffffddb1}, + {0x9739fd36, 0xffffd862ffffddb2}, + {0x9739fd37, 0xffffd862ffffddb3}, + {0x9739fd38, 0xffffd862ffffddb4}, + {0x9739fd39, 0xffffd862ffffddb5}, + {0x9739fe30, 0xffffd862ffffddb6}, + {0x9739fe31, 0xffffd862ffffddb7}, + {0x9739fe32, 0xffffd862ffffddb8}, + {0x9739fe33, 0xffffd862ffffddb9}, + {0x9739fe34, 0xffffd862ffffddba}, + {0x9739fe35, 0xffffd862ffffddbb}, + {0x9739fe36, 0xffffd862ffffddbc}, + {0x9739fe37, 0xffffd862ffffddbd}, + {0x9739fe38, 0xffffd862ffffddbe}, + {0x9739fe39, 0xffffd862ffffddbf}, + {0x98308130, 0xffffd862ffffddc0}, + {0x98308131, 0xffffd862ffffddc1}, + {0x98308132, 0xffffd862ffffddc2}, + {0x98308133, 0xffffd862ffffddc3}, + {0x98308134, 0xffffd862ffffddc4}, + {0x98308135, 0xffffd862ffffddc5}, + {0x98308136, 0xffffd862ffffddc6}, + {0x98308137, 0xffffd862ffffddc7}, + {0x98308138, 0xffffd862ffffddc8}, + {0x98308139, 0xffffd862ffffddc9}, + {0x98308230, 0xffffd862ffffddca}, + {0x98308231, 0xffffd862ffffddcb}, + {0x98308232, 0xffffd862ffffddcc}, + {0x98308233, 0xffffd862ffffddcd}, + {0x98308234, 0xffffd862ffffddce}, + {0x98308235, 0xffffd862ffffddcf}, + {0x98308236, 0xffffd862ffffddd0}, + {0x98308237, 0xffffd862ffffddd1}, + {0x98308238, 0xffffd862ffffddd2}, + {0x98308239, 0xffffd862ffffddd3}, + {0x98308330, 0xffffd862ffffddd4}, + {0x98308331, 0xffffd862ffffddd5}, + {0x98308332, 0xffffd862ffffddd6}, + {0x98308333, 0xffffd862ffffddd7}, + {0x98308334, 0xffffd862ffffddd8}, + {0x98308335, 0xffffd862ffffddd9}, + {0x98308336, 0xffffd862ffffddda}, + {0x98308337, 0xffffd862ffffdddb}, + {0x98308338, 0xffffd862ffffdddc}, + {0x98308339, 0xffffd862ffffdddd}, + {0x98308430, 0xffffd862ffffddde}, + {0x98308431, 0xffffd862ffffdddf}, + {0x98308432, 0xffffd862ffffdde0}, + {0x98308433, 0xffffd862ffffdde1}, + {0x98308434, 0xffffd862ffffdde2}, + {0x98308435, 0xffffd862ffffdde3}, + {0x98308436, 0xffffd862ffffdde4}, + {0x98308437, 0xffffd862ffffdde5}, + {0x98308438, 0xffffd862ffffdde6}, + {0x98308439, 0xffffd862ffffdde7}, + {0x98308530, 0xffffd862ffffdde8}, + {0x98308531, 0xffffd862ffffdde9}, + {0x98308532, 0xffffd862ffffddea}, + {0x98308533, 0xffffd862ffffddeb}, + {0x98308534, 0xffffd862ffffddec}, + {0x98308535, 0xffffd862ffffdded}, + {0x98308536, 0xffffd862ffffddee}, + {0x98308537, 0xffffd862ffffddef}, + {0x98308538, 0xffffd862ffffddf0}, + {0x98308539, 0xffffd862ffffddf1}, + {0x98308630, 0xffffd862ffffddf2}, + {0x98308631, 0xffffd862ffffddf3}, + {0x98308632, 0xffffd862ffffddf4}, + {0x98308633, 0xffffd862ffffddf5}, + {0x98308634, 0xffffd862ffffddf6}, + {0x98308635, 0xffffd862ffffddf7}, + {0x98308636, 0xffffd862ffffddf8}, + {0x98308637, 0xffffd862ffffddf9}, + {0x98308638, 0xffffd862ffffddfa}, + {0x98308639, 0xffffd862ffffddfb}, + {0x98308730, 0xffffd862ffffddfc}, + {0x98308731, 0xffffd862ffffddfd}, + {0x98308732, 0xffffd862ffffddfe}, + {0x98308733, 0xffffd862ffffddff}, + {0x98308734, 0xffffd862ffffde00}, + {0x98308735, 0xffffd862ffffde01}, + {0x98308736, 0xffffd862ffffde02}, + {0x98308737, 0xffffd862ffffde03}, + {0x98308738, 0xffffd862ffffde04}, + {0x98308739, 0xffffd862ffffde05}, + {0x98308830, 0xffffd862ffffde06}, + {0x98308831, 0xffffd862ffffde07}, + {0x98308832, 0xffffd862ffffde08}, + {0x98308833, 0xffffd862ffffde09}, + {0x98308834, 0xffffd862ffffde0a}, + {0x98308835, 0xffffd862ffffde0b}, + {0x98308836, 0xffffd862ffffde0c}, + {0x98308837, 0xffffd862ffffde0d}, + {0x98308838, 0xffffd862ffffde0e}, + {0x98308839, 0xffffd862ffffde0f}, + {0x98308930, 0xffffd862ffffde10}, + {0x98308931, 0xffffd862ffffde11}, + {0x98308932, 0xffffd862ffffde12}, + {0x98308933, 0xffffd862ffffde13}, + {0x98308934, 0xffffd862ffffde14}, + {0x98308935, 0xffffd862ffffde15}, + {0x98308936, 0xffffd862ffffde16}, + {0x98308937, 0xffffd862ffffde17}, + {0x98308938, 0xffffd862ffffde18}, + {0x98308939, 0xffffd862ffffde19}, + {0x98308a30, 0xffffd862ffffde1a}, + {0x98308a31, 0xffffd862ffffde1b}, + {0x98308a32, 0xffffd862ffffde1c}, + {0x98308a33, 0xffffd862ffffde1d}, + {0x98308a34, 0xffffd862ffffde1e}, + {0x98308a35, 0xffffd862ffffde1f}, + {0x98308a36, 0xffffd862ffffde20}, + {0x98308a37, 0xffffd862ffffde21}, + {0x98308a38, 0xffffd862ffffde22}, + {0x98308a39, 0xffffd862ffffde23}, + {0x98308b30, 0xffffd862ffffde24}, + {0x98308b31, 0xffffd862ffffde25}, + {0x98308b32, 0xffffd862ffffde26}, + {0x98308b33, 0xffffd862ffffde27}, + {0x98308b34, 0xffffd862ffffde28}, + {0x98308b35, 0xffffd862ffffde29}, + {0x98308b36, 0xffffd862ffffde2a}, + {0x98308b37, 0xffffd862ffffde2b}, + {0x98308b38, 0xffffd862ffffde2c}, + {0x98308b39, 0xffffd862ffffde2d}, + {0x98308c30, 0xffffd862ffffde2e}, + {0x98308c31, 0xffffd862ffffde2f}, + {0x98308c32, 0xffffd862ffffde30}, + {0x98308c33, 0xffffd862ffffde31}, + {0x98308c34, 0xffffd862ffffde32}, + {0x98308c35, 0xffffd862ffffde33}, + {0x98308c36, 0xffffd862ffffde34}, + {0x98308c37, 0xffffd862ffffde35}, + {0x98308c38, 0xffffd862ffffde36}, + {0x98308c39, 0xffffd862ffffde37}, + {0x98308d30, 0xffffd862ffffde38}, + {0x98308d31, 0xffffd862ffffde39}, + {0x98308d32, 0xffffd862ffffde3a}, + {0x98308d33, 0xffffd862ffffde3b}, + {0x98308d34, 0xffffd862ffffde3c}, + {0x98308d35, 0xffffd862ffffde3d}, + {0x98308d36, 0xffffd862ffffde3e}, + {0x98308d37, 0xffffd862ffffde3f}, + {0x98308d38, 0xffffd862ffffde40}, + {0x98308d39, 0xffffd862ffffde41}, + {0x98308e30, 0xffffd862ffffde42}, + {0x98308e31, 0xffffd862ffffde43}, + {0x98308e32, 0xffffd862ffffde44}, + {0x98308e33, 0xffffd862ffffde45}, + {0x98308e34, 0xffffd862ffffde46}, + {0x98308e35, 0xffffd862ffffde47}, + {0x98308e36, 0xffffd862ffffde48}, + {0x98308e37, 0xffffd862ffffde49}, + {0x98308e38, 0xffffd862ffffde4a}, + {0x98308e39, 0xffffd862ffffde4b}, + {0x98308f30, 0xffffd862ffffde4c}, + {0x98308f31, 0xffffd862ffffde4d}, + {0x98308f32, 0xffffd862ffffde4e}, + {0x98308f33, 0xffffd862ffffde4f}, + {0x98308f34, 0xffffd862ffffde50}, + {0x98308f35, 0xffffd862ffffde51}, + {0x98308f36, 0xffffd862ffffde52}, + {0x98308f37, 0xffffd862ffffde53}, + {0x98308f38, 0xffffd862ffffde54}, + {0x98308f39, 0xffffd862ffffde55}, + {0x98309030, 0xffffd862ffffde56}, + {0x98309031, 0xffffd862ffffde57}, + {0x98309032, 0xffffd862ffffde58}, + {0x98309033, 0xffffd862ffffde59}, + {0x98309034, 0xffffd862ffffde5a}, + {0x98309035, 0xffffd862ffffde5b}, + {0x98309036, 0xffffd862ffffde5c}, + {0x98309037, 0xffffd862ffffde5d}, + {0x98309038, 0xffffd862ffffde5e}, + {0x98309039, 0xffffd862ffffde5f}, + {0x98309130, 0xffffd862ffffde60}, + {0x98309131, 0xffffd862ffffde61}, + {0x98309132, 0xffffd862ffffde62}, + {0x98309133, 0xffffd862ffffde63}, + {0x98309134, 0xffffd862ffffde64}, + {0x98309135, 0xffffd862ffffde65}, + {0x98309136, 0xffffd862ffffde66}, + {0x98309137, 0xffffd862ffffde67}, + {0x98309138, 0xffffd862ffffde68}, + {0x98309139, 0xffffd862ffffde69}, + {0x98309230, 0xffffd862ffffde6a}, + {0x98309231, 0xffffd862ffffde6b}, + {0x98309232, 0xffffd862ffffde6c}, + {0x98309233, 0xffffd862ffffde6d}, + {0x98309234, 0xffffd862ffffde6e}, + {0x98309235, 0xffffd862ffffde6f}, + {0x98309236, 0xffffd862ffffde70}, + {0x98309237, 0xffffd862ffffde71}, + {0x98309238, 0xffffd862ffffde72}, + {0x98309239, 0xffffd862ffffde73}, + {0x98309330, 0xffffd862ffffde74}, + {0x98309331, 0xffffd862ffffde75}, + {0x98309332, 0xffffd862ffffde76}, + {0x98309333, 0xffffd862ffffde77}, + {0x98309334, 0xffffd862ffffde78}, + {0x98309335, 0xffffd862ffffde79}, + {0x98309336, 0xffffd862ffffde7a}, + {0x98309337, 0xffffd862ffffde7b}, + {0x98309338, 0xffffd862ffffde7c}, + {0x98309339, 0xffffd862ffffde7d}, + {0x98309430, 0xffffd862ffffde7e}, + {0x98309431, 0xffffd862ffffde7f}, + {0x98309432, 0xffffd862ffffde80}, + {0x98309433, 0xffffd862ffffde81}, + {0x98309434, 0xffffd862ffffde82}, + {0x98309435, 0xffffd862ffffde83}, + {0x98309436, 0xffffd862ffffde84}, + {0x98309437, 0xffffd862ffffde85}, + {0x98309438, 0xffffd862ffffde86}, + {0x98309439, 0xffffd862ffffde87}, + {0x98309530, 0xffffd862ffffde88}, + {0x98309531, 0xffffd862ffffde89}, + {0x98309532, 0xffffd862ffffde8a}, + {0x98309533, 0xffffd862ffffde8b}, + {0x98309534, 0xffffd862ffffde8c}, + {0x98309535, 0xffffd862ffffde8d}, + {0x98309536, 0xffffd862ffffde8e}, + {0x98309537, 0xffffd862ffffde8f}, + {0x98309538, 0xffffd862ffffde90}, + {0x98309539, 0xffffd862ffffde91}, + {0x98309630, 0xffffd862ffffde92}, + {0x98309631, 0xffffd862ffffde93}, + {0x98309632, 0xffffd862ffffde94}, + {0x98309633, 0xffffd862ffffde95}, + {0x98309634, 0xffffd862ffffde96}, + {0x98309635, 0xffffd862ffffde97}, + {0x98309636, 0xffffd862ffffde98}, + {0x98309637, 0xffffd862ffffde99}, + {0x98309638, 0xffffd862ffffde9a}, + {0x98309639, 0xffffd862ffffde9b}, + {0x98309730, 0xffffd862ffffde9c}, + {0x98309731, 0xffffd862ffffde9d}, + {0x98309732, 0xffffd862ffffde9e}, + {0x98309733, 0xffffd862ffffde9f}, + {0x98309734, 0xffffd862ffffdea0}, + {0x98309735, 0xffffd862ffffdea1}, + {0x98309736, 0xffffd862ffffdea2}, + {0x98309737, 0xffffd862ffffdea3}, + {0x98309738, 0xffffd862ffffdea4}, + {0x98309739, 0xffffd862ffffdea5}, + {0x98309830, 0xffffd862ffffdea6}, + {0x98309831, 0xffffd862ffffdea7}, + {0x98309832, 0xffffd862ffffdea8}, + {0x98309833, 0xffffd862ffffdea9}, + {0x98309834, 0xffffd862ffffdeaa}, + {0x98309835, 0xffffd862ffffdeab}, + {0x98309836, 0xffffd862ffffdeac}, + {0x98309837, 0xffffd862ffffdead}, + {0x98309838, 0xffffd862ffffdeae}, + {0x98309839, 0xffffd862ffffdeaf}, + {0x98309930, 0xffffd862ffffdeb0}, + {0x98309931, 0xffffd862ffffdeb1}, + {0x98309932, 0xffffd862ffffdeb2}, + {0x98309933, 0xffffd862ffffdeb3}, + {0x98309934, 0xffffd862ffffdeb4}, + {0x98309935, 0xffffd862ffffdeb5}, + {0x98309936, 0xffffd862ffffdeb6}, + {0x98309937, 0xffffd862ffffdeb7}, + {0x98309938, 0xffffd862ffffdeb8}, + {0x98309939, 0xffffd862ffffdeb9}, + {0x98309a30, 0xffffd862ffffdeba}, + {0x98309a31, 0xffffd862ffffdebb}, + {0x98309a32, 0xffffd862ffffdebc}, + {0x98309a33, 0xffffd862ffffdebd}, + {0x98309a34, 0xffffd862ffffdebe}, + {0x98309a35, 0xffffd862ffffdebf}, + {0x98309a36, 0xffffd862ffffdec0}, + {0x98309a37, 0xffffd862ffffdec1}, + {0x98309a38, 0xffffd862ffffdec2}, + {0x98309a39, 0xffffd862ffffdec3}, + {0x98309b30, 0xffffd862ffffdec4}, + {0x98309b31, 0xffffd862ffffdec5}, + {0x98309b32, 0xffffd862ffffdec6}, + {0x98309b33, 0xffffd862ffffdec7}, + {0x98309b34, 0xffffd862ffffdec8}, + {0x98309b35, 0xffffd862ffffdec9}, + {0x98309b36, 0xffffd862ffffdeca}, + {0x98309b37, 0xffffd862ffffdecb}, + {0x98309b38, 0xffffd862ffffdecc}, + {0x98309b39, 0xffffd862ffffdecd}, + {0x98309c30, 0xffffd862ffffdece}, + {0x98309c31, 0xffffd862ffffdecf}, + {0x98309c32, 0xffffd862ffffded0}, + {0x98309c33, 0xffffd862ffffded1}, + {0x98309c34, 0xffffd862ffffded2}, + {0x98309c35, 0xffffd862ffffded3}, + {0x98309c36, 0xffffd862ffffded4}, + {0x98309c37, 0xffffd862ffffded5}, + {0x98309c38, 0xffffd862ffffded6}, + {0x98309c39, 0xffffd862ffffded7}, + {0x98309d30, 0xffffd862ffffded8}, + {0x98309d31, 0xffffd862ffffded9}, + {0x98309d32, 0xffffd862ffffdeda}, + {0x98309d33, 0xffffd862ffffdedb}, + {0x98309d34, 0xffffd862ffffdedc}, + {0x98309d35, 0xffffd862ffffdedd}, + {0x98309d36, 0xffffd862ffffdede}, + {0x98309d37, 0xffffd862ffffdedf}, + {0x98309d38, 0xffffd862ffffdee0}, + {0x98309d39, 0xffffd862ffffdee1}, + {0x98309e30, 0xffffd862ffffdee2}, + {0x98309e31, 0xffffd862ffffdee3}, + {0x98309e32, 0xffffd862ffffdee4}, + {0x98309e33, 0xffffd862ffffdee5}, + {0x98309e34, 0xffffd862ffffdee6}, + {0x98309e35, 0xffffd862ffffdee7}, + {0x98309e36, 0xffffd862ffffdee8}, + {0x98309e37, 0xffffd862ffffdee9}, + {0x98309e38, 0xffffd862ffffdeea}, + {0x98309e39, 0xffffd862ffffdeeb}, + {0x98309f30, 0xffffd862ffffdeec}, + {0x98309f31, 0xffffd862ffffdeed}, + {0x98309f32, 0xffffd862ffffdeee}, + {0x98309f33, 0xffffd862ffffdeef}, + {0x98309f34, 0xffffd862ffffdef0}, + {0x98309f35, 0xffffd862ffffdef1}, + {0x98309f36, 0xffffd862ffffdef2}, + {0x98309f37, 0xffffd862ffffdef3}, + {0x98309f38, 0xffffd862ffffdef4}, + {0x98309f39, 0xffffd862ffffdef5}, + {0x9830a030, 0xffffd862ffffdef6}, + {0x9830a031, 0xffffd862ffffdef7}, + {0x9830a032, 0xffffd862ffffdef8}, + {0x9830a033, 0xffffd862ffffdef9}, + {0x9830a034, 0xffffd862ffffdefa}, + {0x9830a035, 0xffffd862ffffdefb}, + {0x9830a036, 0xffffd862ffffdefc}, + {0x9830a037, 0xffffd862ffffdefd}, + {0x9830a038, 0xffffd862ffffdefe}, + {0x9830a039, 0xffffd862ffffdeff}, + {0x9830a130, 0xffffd862ffffdf00}, + {0x9830a131, 0xffffd862ffffdf01}, + {0x9830a132, 0xffffd862ffffdf02}, + {0x9830a133, 0xffffd862ffffdf03}, + {0x9830a134, 0xffffd862ffffdf04}, + {0x9830a135, 0xffffd862ffffdf05}, + {0x9830a136, 0xffffd862ffffdf06}, + {0x9830a137, 0xffffd862ffffdf07}, + {0x9830a138, 0xffffd862ffffdf08}, + {0x9830a139, 0xffffd862ffffdf09}, + {0x9830a230, 0xffffd862ffffdf0a}, + {0x9830a231, 0xffffd862ffffdf0b}, + {0x9830a232, 0xffffd862ffffdf0c}, + {0x9830a233, 0xffffd862ffffdf0d}, + {0x9830a234, 0xffffd862ffffdf0e}, + {0x9830a235, 0xffffd862ffffdf0f}, + {0x9830a236, 0xffffd862ffffdf10}, + {0x9830a237, 0xffffd862ffffdf11}, + {0x9830a238, 0xffffd862ffffdf12}, + {0x9830a239, 0xffffd862ffffdf13}, + {0x9830a330, 0xffffd862ffffdf14}, + {0x9830a331, 0xffffd862ffffdf15}, + {0x9830a332, 0xffffd862ffffdf16}, + {0x9830a333, 0xffffd862ffffdf17}, + {0x9830a334, 0xffffd862ffffdf18}, + {0x9830a335, 0xffffd862ffffdf19}, + {0x9830a336, 0xffffd862ffffdf1a}, + {0x9830a337, 0xffffd862ffffdf1b}, + {0x9830a338, 0xffffd862ffffdf1c}, + {0x9830a339, 0xffffd862ffffdf1d}, + {0x9830a430, 0xffffd862ffffdf1e}, + {0x9830a431, 0xffffd862ffffdf1f}, + {0x9830a432, 0xffffd862ffffdf20}, + {0x9830a433, 0xffffd862ffffdf21}, + {0x9830a434, 0xffffd862ffffdf22}, + {0x9830a435, 0xffffd862ffffdf23}, + {0x9830a436, 0xffffd862ffffdf24}, + {0x9830a437, 0xffffd862ffffdf25}, + {0x9830a438, 0xffffd862ffffdf26}, + {0x9830a439, 0xffffd862ffffdf27}, + {0x9830a530, 0xffffd862ffffdf28}, + {0x9830a531, 0xffffd862ffffdf29}, + {0x9830a532, 0xffffd862ffffdf2a}, + {0x9830a533, 0xffffd862ffffdf2b}, + {0x9830a534, 0xffffd862ffffdf2c}, + {0x9830a535, 0xffffd862ffffdf2d}, + {0x9830a536, 0xffffd862ffffdf2e}, + {0x9830a537, 0xffffd862ffffdf2f}, + {0x9830a538, 0xffffd862ffffdf30}, + {0x9830a539, 0xffffd862ffffdf31}, + {0x9830a630, 0xffffd862ffffdf32}, + {0x9830a631, 0xffffd862ffffdf33}, + {0x9830a632, 0xffffd862ffffdf34}, + {0x9830a633, 0xffffd862ffffdf35}, + {0x9830a634, 0xffffd862ffffdf36}, + {0x9830a635, 0xffffd862ffffdf37}, + {0x9830a636, 0xffffd862ffffdf38}, + {0x9830a637, 0xffffd862ffffdf39}, + {0x9830a638, 0xffffd862ffffdf3a}, + {0x9830a639, 0xffffd862ffffdf3b}, + {0x9830a730, 0xffffd862ffffdf3c}, + {0x9830a731, 0xffffd862ffffdf3d}, + {0x9830a732, 0xffffd862ffffdf3e}, + {0x9830a733, 0xffffd862ffffdf3f}, + {0x9830a734, 0xffffd862ffffdf40}, + {0x9830a735, 0xffffd862ffffdf41}, + {0x9830a736, 0xffffd862ffffdf42}, + {0x9830a737, 0xffffd862ffffdf43}, + {0x9830a738, 0xffffd862ffffdf44}, + {0x9830a739, 0xffffd862ffffdf45}, + {0x9830a830, 0xffffd862ffffdf46}, + {0x9830a831, 0xffffd862ffffdf47}, + {0x9830a832, 0xffffd862ffffdf48}, + {0x9830a833, 0xffffd862ffffdf49}, + {0x9830a834, 0xffffd862ffffdf4a}, + {0x9830a835, 0xffffd862ffffdf4b}, + {0x9830a836, 0xffffd862ffffdf4c}, + {0x9830a837, 0xffffd862ffffdf4d}, + {0x9830a838, 0xffffd862ffffdf4e}, + {0x9830a839, 0xffffd862ffffdf4f}, + {0x9830a930, 0xffffd862ffffdf50}, + {0x9830a931, 0xffffd862ffffdf51}, + {0x9830a932, 0xffffd862ffffdf52}, + {0x9830a933, 0xffffd862ffffdf53}, + {0x9830a934, 0xffffd862ffffdf54}, + {0x9830a935, 0xffffd862ffffdf55}, + {0x9830a936, 0xffffd862ffffdf56}, + {0x9830a937, 0xffffd862ffffdf57}, + {0x9830a938, 0xffffd862ffffdf58}, + {0x9830a939, 0xffffd862ffffdf59}, + {0x9830aa30, 0xffffd862ffffdf5a}, + {0x9830aa31, 0xffffd862ffffdf5b}, + {0x9830aa32, 0xffffd862ffffdf5c}, + {0x9830aa33, 0xffffd862ffffdf5d}, + {0x9830aa34, 0xffffd862ffffdf5e}, + {0x9830aa35, 0xffffd862ffffdf5f}, + {0x9830aa36, 0xffffd862ffffdf60}, + {0x9830aa37, 0xffffd862ffffdf61}, + {0x9830aa38, 0xffffd862ffffdf62}, + {0x9830aa39, 0xffffd862ffffdf63}, + {0x9830ab30, 0xffffd862ffffdf64}, + {0x9830ab31, 0xffffd862ffffdf65}, + {0x9830ab32, 0xffffd862ffffdf66}, + {0x9830ab33, 0xffffd862ffffdf67}, + {0x9830ab34, 0xffffd862ffffdf68}, + {0x9830ab35, 0xffffd862ffffdf69}, + {0x9830ab36, 0xffffd862ffffdf6a}, + {0x9830ab37, 0xffffd862ffffdf6b}, + {0x9830ab38, 0xffffd862ffffdf6c}, + {0x9830ab39, 0xffffd862ffffdf6d}, + {0x9830ac30, 0xffffd862ffffdf6e}, + {0x9830ac31, 0xffffd862ffffdf6f}, + {0x9830ac32, 0xffffd862ffffdf70}, + {0x9830ac33, 0xffffd862ffffdf71}, + {0x9830ac34, 0xffffd862ffffdf72}, + {0x9830ac35, 0xffffd862ffffdf73}, + {0x9830ac36, 0xffffd862ffffdf74}, + {0x9830ac37, 0xffffd862ffffdf75}, + {0x9830ac38, 0xffffd862ffffdf76}, + {0x9830ac39, 0xffffd862ffffdf77}, + {0x9830ad30, 0xffffd862ffffdf78}, + {0x9830ad31, 0xffffd862ffffdf79}, + {0x9830ad32, 0xffffd862ffffdf7a}, + {0x9830ad33, 0xffffd862ffffdf7b}, + {0x9830ad34, 0xffffd862ffffdf7c}, + {0x9830ad35, 0xffffd862ffffdf7d}, + {0x9830ad36, 0xffffd862ffffdf7e}, + {0x9830ad37, 0xffffd862ffffdf7f}, + {0x9830ad38, 0xffffd862ffffdf80}, + {0x9830ad39, 0xffffd862ffffdf81}, + {0x9830ae30, 0xffffd862ffffdf82}, + {0x9830ae31, 0xffffd862ffffdf83}, + {0x9830ae32, 0xffffd862ffffdf84}, + {0x9830ae33, 0xffffd862ffffdf85}, + {0x9830ae34, 0xffffd862ffffdf86}, + {0x9830ae35, 0xffffd862ffffdf87}, + {0x9830ae36, 0xffffd862ffffdf88}, + {0x9830ae37, 0xffffd862ffffdf89}, + {0x9830ae38, 0xffffd862ffffdf8a}, + {0x9830ae39, 0xffffd862ffffdf8b}, + {0x9830af30, 0xffffd862ffffdf8c}, + {0x9830af31, 0xffffd862ffffdf8d}, + {0x9830af32, 0xffffd862ffffdf8e}, + {0x9830af33, 0xffffd862ffffdf8f}, + {0x9830af34, 0xffffd862ffffdf90}, + {0x9830af35, 0xffffd862ffffdf91}, + {0x9830af36, 0xffffd862ffffdf92}, + {0x9830af37, 0xffffd862ffffdf93}, + {0x9830af38, 0xffffd862ffffdf94}, + {0x9830af39, 0xffffd862ffffdf95}, + {0x9830b030, 0xffffd862ffffdf96}, + {0x9830b031, 0xffffd862ffffdf97}, + {0x9830b032, 0xffffd862ffffdf98}, + {0x9830b033, 0xffffd862ffffdf99}, + {0x9830b034, 0xffffd862ffffdf9a}, + {0x9830b035, 0xffffd862ffffdf9b}, + {0x9830b036, 0xffffd862ffffdf9c}, + {0x9830b037, 0xffffd862ffffdf9d}, + {0x9830b038, 0xffffd862ffffdf9e}, + {0x9830b039, 0xffffd862ffffdf9f}, + {0x9830b130, 0xffffd862ffffdfa0}, + {0x9830b131, 0xffffd862ffffdfa1}, + {0x9830b132, 0xffffd862ffffdfa2}, + {0x9830b133, 0xffffd862ffffdfa3}, + {0x9830b134, 0xffffd862ffffdfa4}, + {0x9830b135, 0xffffd862ffffdfa5}, + {0x9830b136, 0xffffd862ffffdfa6}, + {0x9830b137, 0xffffd862ffffdfa7}, + {0x9830b138, 0xffffd862ffffdfa8}, + {0x9830b139, 0xffffd862ffffdfa9}, + {0x9830b230, 0xffffd862ffffdfaa}, + {0x9830b231, 0xffffd862ffffdfab}, + {0x9830b232, 0xffffd862ffffdfac}, + {0x9830b233, 0xffffd862ffffdfad}, + {0x9830b234, 0xffffd862ffffdfae}, + {0x9830b235, 0xffffd862ffffdfaf}, + {0x9830b236, 0xffffd862ffffdfb0}, + {0x9830b237, 0xffffd862ffffdfb1}, + {0x9830b238, 0xffffd862ffffdfb2}, + {0x9830b239, 0xffffd862ffffdfb3}, + {0x9830b330, 0xffffd862ffffdfb4}, + {0x9830b331, 0xffffd862ffffdfb5}, + {0x9830b332, 0xffffd862ffffdfb6}, + {0x9830b333, 0xffffd862ffffdfb7}, + {0x9830b334, 0xffffd862ffffdfb8}, + {0x9830b335, 0xffffd862ffffdfb9}, + {0x9830b336, 0xffffd862ffffdfba}, + {0x9830b337, 0xffffd862ffffdfbb}, + {0x9830b338, 0xffffd862ffffdfbc}, + {0x9830b339, 0xffffd862ffffdfbd}, + {0x9830b430, 0xffffd862ffffdfbe}, + {0x9830b431, 0xffffd862ffffdfbf}, + {0x9830b432, 0xffffd862ffffdfc0}, + {0x9830b433, 0xffffd862ffffdfc1}, + {0x9830b434, 0xffffd862ffffdfc2}, + {0x9830b435, 0xffffd862ffffdfc3}, + {0x9830b436, 0xffffd862ffffdfc4}, + {0x9830b437, 0xffffd862ffffdfc5}, + {0x9830b438, 0xffffd862ffffdfc6}, + {0x9830b439, 0xffffd862ffffdfc7}, + {0x9830b530, 0xffffd862ffffdfc8}, + {0x9830b531, 0xffffd862ffffdfc9}, + {0x9830b532, 0xffffd862ffffdfca}, + {0x9830b533, 0xffffd862ffffdfcb}, + {0x9830b534, 0xffffd862ffffdfcc}, + {0x9830b535, 0xffffd862ffffdfcd}, + {0x9830b536, 0xffffd862ffffdfce}, + {0x9830b537, 0xffffd862ffffdfcf}, + {0x9830b538, 0xffffd862ffffdfd0}, + {0x9830b539, 0xffffd862ffffdfd1}, + {0x9830b630, 0xffffd862ffffdfd2}, + {0x9830b631, 0xffffd862ffffdfd3}, + {0x9830b632, 0xffffd862ffffdfd4}, + {0x9830b633, 0xffffd862ffffdfd5}, + {0x9830b634, 0xffffd862ffffdfd6}, + {0x9830b635, 0xffffd862ffffdfd7}, + {0x9830b636, 0xffffd862ffffdfd8}, + {0x9830b637, 0xffffd862ffffdfd9}, + {0x9830b638, 0xffffd862ffffdfda}, + {0x9830b639, 0xffffd862ffffdfdb}, + {0x9830b730, 0xffffd862ffffdfdc}, + {0x9830b731, 0xffffd862ffffdfdd}, + {0x9830b732, 0xffffd862ffffdfde}, + {0x9830b733, 0xffffd862ffffdfdf}, + {0x9830b734, 0xffffd862ffffdfe0}, + {0x9830b735, 0xffffd862ffffdfe1}, + {0x9830b736, 0xffffd862ffffdfe2}, + {0x9830b737, 0xffffd862ffffdfe3}, + {0x9830b738, 0xffffd862ffffdfe4}, + {0x9830b739, 0xffffd862ffffdfe5}, + {0x9830b830, 0xffffd862ffffdfe6}, + {0x9830b831, 0xffffd862ffffdfe7}, + {0x9830b832, 0xffffd862ffffdfe8}, + {0x9830b833, 0xffffd862ffffdfe9}, + {0x9830b834, 0xffffd862ffffdfea}, + {0x9830b835, 0xffffd862ffffdfeb}, + {0x9830b836, 0xffffd862ffffdfec}, + {0x9830b837, 0xffffd862ffffdfed}, + {0x9830b838, 0xffffd862ffffdfee}, + {0x9830b839, 0xffffd862ffffdfef}, + {0x9830b930, 0xffffd862ffffdff0}, + {0x9830b931, 0xffffd862ffffdff1}, + {0x9830b932, 0xffffd862ffffdff2}, + {0x9830b933, 0xffffd862ffffdff3}, + {0x9830b934, 0xffffd862ffffdff4}, + {0x9830b935, 0xffffd862ffffdff5}, + {0x9830b936, 0xffffd862ffffdff6}, + {0x9830b937, 0xffffd862ffffdff7}, + {0x9830b938, 0xffffd862ffffdff8}, + {0x9830b939, 0xffffd862ffffdff9}, + {0x9830ba30, 0xffffd862ffffdffa}, + {0x9830ba31, 0xffffd862ffffdffb}, + {0x9830ba32, 0xffffd862ffffdffc}, + {0x9830ba33, 0xffffd862ffffdffd}, + {0x9830ba34, 0xffffd862ffffdffe}, + {0x9830ba35, 0xffffd862ffffdfff}, + {0x9830ba36, 0xffffd863ffffdc00}, + {0x9830ba37, 0xffffd863ffffdc01}, + {0x9830ba38, 0xffffd863ffffdc02}, + {0x9830ba39, 0xffffd863ffffdc03}, + {0x9830bb30, 0xffffd863ffffdc04}, + {0x9830bb31, 0xffffd863ffffdc05}, + {0x9830bb32, 0xffffd863ffffdc06}, + {0x9830bb33, 0xffffd863ffffdc07}, + {0x9830bb34, 0xffffd863ffffdc08}, + {0x9830bb35, 0xffffd863ffffdc09}, + {0x9830bb36, 0xffffd863ffffdc0a}, + {0x9830bb37, 0xffffd863ffffdc0b}, + {0x9830bb38, 0xffffd863ffffdc0c}, + {0x9830bb39, 0xffffd863ffffdc0d}, + {0x9830bc30, 0xffffd863ffffdc0e}, + {0x9830bc31, 0xffffd863ffffdc0f}, + {0x9830bc32, 0xffffd863ffffdc10}, + {0x9830bc33, 0xffffd863ffffdc11}, + {0x9830bc34, 0xffffd863ffffdc12}, + {0x9830bc35, 0xffffd863ffffdc13}, + {0x9830bc36, 0xffffd863ffffdc14}, + {0x9830bc37, 0xffffd863ffffdc15}, + {0x9830bc38, 0xffffd863ffffdc16}, + {0x9830bc39, 0xffffd863ffffdc17}, + {0x9830bd30, 0xffffd863ffffdc18}, + {0x9830bd31, 0xffffd863ffffdc19}, + {0x9830bd32, 0xffffd863ffffdc1a}, + {0x9830bd33, 0xffffd863ffffdc1b}, + {0x9830bd34, 0xffffd863ffffdc1c}, + {0x9830bd35, 0xffffd863ffffdc1d}, + {0x9830bd36, 0xffffd863ffffdc1e}, + {0x9830bd37, 0xffffd863ffffdc1f}, + {0x9830bd38, 0xffffd863ffffdc20}, + {0x9830bd39, 0xffffd863ffffdc21}, + {0x9830be30, 0xffffd863ffffdc22}, + {0x9830be31, 0xffffd863ffffdc23}, + {0x9830be32, 0xffffd863ffffdc24}, + {0x9830be33, 0xffffd863ffffdc25}, + {0x9830be34, 0xffffd863ffffdc26}, + {0x9830be35, 0xffffd863ffffdc27}, + {0x9830be36, 0xffffd863ffffdc28}, + {0x9830be37, 0xffffd863ffffdc29}, + {0x9830be38, 0xffffd863ffffdc2a}, + {0x9830be39, 0xffffd863ffffdc2b}, + {0x9830bf30, 0xffffd863ffffdc2c}, + {0x9830bf31, 0xffffd863ffffdc2d}, + {0x9830bf32, 0xffffd863ffffdc2e}, + {0x9830bf33, 0xffffd863ffffdc2f}, + {0x9830bf34, 0xffffd863ffffdc30}, + {0x9830bf35, 0xffffd863ffffdc31}, + {0x9830bf36, 0xffffd863ffffdc32}, + {0x9830bf37, 0xffffd863ffffdc33}, + {0x9830bf38, 0xffffd863ffffdc34}, + {0x9830bf39, 0xffffd863ffffdc35}, + {0x9830c030, 0xffffd863ffffdc36}, + {0x9830c031, 0xffffd863ffffdc37}, + {0x9830c032, 0xffffd863ffffdc38}, + {0x9830c033, 0xffffd863ffffdc39}, + {0x9830c034, 0xffffd863ffffdc3a}, + {0x9830c035, 0xffffd863ffffdc3b}, + {0x9830c036, 0xffffd863ffffdc3c}, + {0x9830c037, 0xffffd863ffffdc3d}, + {0x9830c038, 0xffffd863ffffdc3e}, + {0x9830c039, 0xffffd863ffffdc3f}, + {0x9830c130, 0xffffd863ffffdc40}, + {0x9830c131, 0xffffd863ffffdc41}, + {0x9830c132, 0xffffd863ffffdc42}, + {0x9830c133, 0xffffd863ffffdc43}, + {0x9830c134, 0xffffd863ffffdc44}, + {0x9830c135, 0xffffd863ffffdc45}, + {0x9830c136, 0xffffd863ffffdc46}, + {0x9830c137, 0xffffd863ffffdc47}, + {0x9830c138, 0xffffd863ffffdc48}, + {0x9830c139, 0xffffd863ffffdc49}, + {0x9830c230, 0xffffd863ffffdc4a}, + {0x9830c231, 0xffffd863ffffdc4b}, + {0x9830c232, 0xffffd863ffffdc4c}, + {0x9830c233, 0xffffd863ffffdc4d}, + {0x9830c234, 0xffffd863ffffdc4e}, + {0x9830c235, 0xffffd863ffffdc4f}, + {0x9830c236, 0xffffd863ffffdc50}, + {0x9830c237, 0xffffd863ffffdc51}, + {0x9830c238, 0xffffd863ffffdc52}, + {0x9830c239, 0xffffd863ffffdc53}, + {0x9830c330, 0xffffd863ffffdc54}, + {0x9830c331, 0xffffd863ffffdc55}, + {0x9830c332, 0xffffd863ffffdc56}, + {0x9830c333, 0xffffd863ffffdc57}, + {0x9830c334, 0xffffd863ffffdc58}, + {0x9830c335, 0xffffd863ffffdc59}, + {0x9830c336, 0xffffd863ffffdc5a}, + {0x9830c337, 0xffffd863ffffdc5b}, + {0x9830c338, 0xffffd863ffffdc5c}, + {0x9830c339, 0xffffd863ffffdc5d}, + {0x9830c430, 0xffffd863ffffdc5e}, + {0x9830c431, 0xffffd863ffffdc5f}, + {0x9830c432, 0xffffd863ffffdc60}, + {0x9830c433, 0xffffd863ffffdc61}, + {0x9830c434, 0xffffd863ffffdc62}, + {0x9830c435, 0xffffd863ffffdc63}, + {0x9830c436, 0xffffd863ffffdc64}, + {0x9830c437, 0xffffd863ffffdc65}, + {0x9830c438, 0xffffd863ffffdc66}, + {0x9830c439, 0xffffd863ffffdc67}, + {0x9830c530, 0xffffd863ffffdc68}, + {0x9830c531, 0xffffd863ffffdc69}, + {0x9830c532, 0xffffd863ffffdc6a}, + {0x9830c533, 0xffffd863ffffdc6b}, + {0x9830c534, 0xffffd863ffffdc6c}, + {0x9830c535, 0xffffd863ffffdc6d}, + {0x9830c536, 0xffffd863ffffdc6e}, + {0x9830c537, 0xffffd863ffffdc6f}, + {0x9830c538, 0xffffd863ffffdc70}, + {0x9830c539, 0xffffd863ffffdc71}, + {0x9830c630, 0xffffd863ffffdc72}, + {0x9830c631, 0xffffd863ffffdc73}, + {0x9830c632, 0xffffd863ffffdc74}, + {0x9830c633, 0xffffd863ffffdc75}, + {0x9830c634, 0xffffd863ffffdc76}, + {0x9830c635, 0xffffd863ffffdc77}, + {0x9830c636, 0xffffd863ffffdc78}, + {0x9830c637, 0xffffd863ffffdc79}, + {0x9830c638, 0xffffd863ffffdc7a}, + {0x9830c639, 0xffffd863ffffdc7b}, + {0x9830c730, 0xffffd863ffffdc7c}, + {0x9830c731, 0xffffd863ffffdc7d}, + {0x9830c732, 0xffffd863ffffdc7e}, + {0x9830c733, 0xffffd863ffffdc7f}, + {0x9830c734, 0xffffd863ffffdc80}, + {0x9830c735, 0xffffd863ffffdc81}, + {0x9830c736, 0xffffd863ffffdc82}, + {0x9830c737, 0xffffd863ffffdc83}, + {0x9830c738, 0xffffd863ffffdc84}, + {0x9830c739, 0xffffd863ffffdc85}, + {0x9830c830, 0xffffd863ffffdc86}, + {0x9830c831, 0xffffd863ffffdc87}, + {0x9830c832, 0xffffd863ffffdc88}, + {0x9830c833, 0xffffd863ffffdc89}, + {0x9830c834, 0xffffd863ffffdc8a}, + {0x9830c835, 0xffffd863ffffdc8b}, + {0x9830c836, 0xffffd863ffffdc8c}, + {0x9830c837, 0xffffd863ffffdc8d}, + {0x9830c838, 0xffffd863ffffdc8e}, + {0x9830c839, 0xffffd863ffffdc8f}, + {0x9830c930, 0xffffd863ffffdc90}, + {0x9830c931, 0xffffd863ffffdc91}, + {0x9830c932, 0xffffd863ffffdc92}, + {0x9830c933, 0xffffd863ffffdc93}, + {0x9830c934, 0xffffd863ffffdc94}, + {0x9830c935, 0xffffd863ffffdc95}, + {0x9830c936, 0xffffd863ffffdc96}, + {0x9830c937, 0xffffd863ffffdc97}, + {0x9830c938, 0xffffd863ffffdc98}, + {0x9830c939, 0xffffd863ffffdc99}, + {0x9830ca30, 0xffffd863ffffdc9a}, + {0x9830ca31, 0xffffd863ffffdc9b}, + {0x9830ca32, 0xffffd863ffffdc9c}, + {0x9830ca33, 0xffffd863ffffdc9d}, + {0x9830ca34, 0xffffd863ffffdc9e}, + {0x9830ca35, 0xffffd863ffffdc9f}, + {0x9830ca36, 0xffffd863ffffdca0}, + {0x9830ca37, 0xffffd863ffffdca1}, + {0x9830ca38, 0xffffd863ffffdca2}, + {0x9830ca39, 0xffffd863ffffdca3}, + {0x9830cb30, 0xffffd863ffffdca4}, + {0x9830cb31, 0xffffd863ffffdca5}, + {0x9830cb32, 0xffffd863ffffdca6}, + {0x9830cb33, 0xffffd863ffffdca7}, + {0x9830cb34, 0xffffd863ffffdca8}, + {0x9830cb35, 0xffffd863ffffdca9}, + {0x9830cb36, 0xffffd863ffffdcaa}, + {0x9830cb37, 0xffffd863ffffdcab}, + {0x9830cb38, 0xffffd863ffffdcac}, + {0x9830cb39, 0xffffd863ffffdcad}, + {0x9830cc30, 0xffffd863ffffdcae}, + {0x9830cc31, 0xffffd863ffffdcaf}, + {0x9830cc32, 0xffffd863ffffdcb0}, + {0x9830cc33, 0xffffd863ffffdcb1}, + {0x9830cc34, 0xffffd863ffffdcb2}, + {0x9830cc35, 0xffffd863ffffdcb3}, + {0x9830cc36, 0xffffd863ffffdcb4}, + {0x9830cc37, 0xffffd863ffffdcb5}, + {0x9830cc38, 0xffffd863ffffdcb6}, + {0x9830cc39, 0xffffd863ffffdcb7}, + {0x9830cd30, 0xffffd863ffffdcb8}, + {0x9830cd31, 0xffffd863ffffdcb9}, + {0x9830cd32, 0xffffd863ffffdcba}, + {0x9830cd33, 0xffffd863ffffdcbb}, + {0x9830cd34, 0xffffd863ffffdcbc}, + {0x9830cd35, 0xffffd863ffffdcbd}, + {0x9830cd36, 0xffffd863ffffdcbe}, + {0x9830cd37, 0xffffd863ffffdcbf}, + {0x9830cd38, 0xffffd863ffffdcc0}, + {0x9830cd39, 0xffffd863ffffdcc1}, + {0x9830ce30, 0xffffd863ffffdcc2}, + {0x9830ce31, 0xffffd863ffffdcc3}, + {0x9830ce32, 0xffffd863ffffdcc4}, + {0x9830ce33, 0xffffd863ffffdcc5}, + {0x9830ce34, 0xffffd863ffffdcc6}, + {0x9830ce35, 0xffffd863ffffdcc7}, + {0x9830ce36, 0xffffd863ffffdcc8}, + {0x9830ce37, 0xffffd863ffffdcc9}, + {0x9830ce38, 0xffffd863ffffdcca}, + {0x9830ce39, 0xffffd863ffffdccb}, + {0x9830cf30, 0xffffd863ffffdccc}, + {0x9830cf31, 0xffffd863ffffdccd}, + {0x9830cf32, 0xffffd863ffffdcce}, + {0x9830cf33, 0xffffd863ffffdccf}, + {0x9830cf34, 0xffffd863ffffdcd0}, + {0x9830cf35, 0xffffd863ffffdcd1}, + {0x9830cf36, 0xffffd863ffffdcd2}, + {0x9830cf37, 0xffffd863ffffdcd3}, + {0x9830cf38, 0xffffd863ffffdcd4}, + {0x9830cf39, 0xffffd863ffffdcd5}, + {0x9830d030, 0xffffd863ffffdcd6}, + {0x9830d031, 0xffffd863ffffdcd7}, + {0x9830d032, 0xffffd863ffffdcd8}, + {0x9830d033, 0xffffd863ffffdcd9}, + {0x9830d034, 0xffffd863ffffdcda}, + {0x9830d035, 0xffffd863ffffdcdb}, + {0x9830d036, 0xffffd863ffffdcdc}, + {0x9830d037, 0xffffd863ffffdcdd}, + {0x9830d038, 0xffffd863ffffdcde}, + {0x9830d039, 0xffffd863ffffdcdf}, + {0x9830d130, 0xffffd863ffffdce0}, + {0x9830d131, 0xffffd863ffffdce1}, + {0x9830d132, 0xffffd863ffffdce2}, + {0x9830d133, 0xffffd863ffffdce3}, + {0x9830d134, 0xffffd863ffffdce4}, + {0x9830d135, 0xffffd863ffffdce5}, + {0x9830d136, 0xffffd863ffffdce6}, + {0x9830d137, 0xffffd863ffffdce7}, + {0x9830d138, 0xffffd863ffffdce8}, + {0x9830d139, 0xffffd863ffffdce9}, + {0x9830d230, 0xffffd863ffffdcea}, + {0x9830d231, 0xffffd863ffffdceb}, + {0x9830d232, 0xffffd863ffffdcec}, + {0x9830d233, 0xffffd863ffffdced}, + {0x9830d234, 0xffffd863ffffdcee}, + {0x9830d235, 0xffffd863ffffdcef}, + {0x9830d236, 0xffffd863ffffdcf0}, + {0x9830d237, 0xffffd863ffffdcf1}, + {0x9830d238, 0xffffd863ffffdcf2}, + {0x9830d239, 0xffffd863ffffdcf3}, + {0x9830d330, 0xffffd863ffffdcf4}, + {0x9830d331, 0xffffd863ffffdcf5}, + {0x9830d332, 0xffffd863ffffdcf6}, + {0x9830d333, 0xffffd863ffffdcf7}, + {0x9830d334, 0xffffd863ffffdcf8}, + {0x9830d335, 0xffffd863ffffdcf9}, + {0x9830d336, 0xffffd863ffffdcfa}, + {0x9830d337, 0xffffd863ffffdcfb}, + {0x9830d338, 0xffffd863ffffdcfc}, + {0x9830d339, 0xffffd863ffffdcfd}, + {0x9830d430, 0xffffd863ffffdcfe}, + {0x9830d431, 0xffffd863ffffdcff}, + {0x9830d432, 0xffffd863ffffdd00}, + {0x9830d433, 0xffffd863ffffdd01}, + {0x9830d434, 0xffffd863ffffdd02}, + {0x9830d435, 0xffffd863ffffdd03}, + {0x9830d436, 0xffffd863ffffdd04}, + {0x9830d437, 0xffffd863ffffdd05}, + {0x9830d438, 0xffffd863ffffdd06}, + {0x9830d439, 0xffffd863ffffdd07}, + {0x9830d530, 0xffffd863ffffdd08}, + {0x9830d531, 0xffffd863ffffdd09}, + {0x9830d532, 0xffffd863ffffdd0a}, + {0x9830d533, 0xffffd863ffffdd0b}, + {0x9830d534, 0xffffd863ffffdd0c}, + {0x9830d535, 0xffffd863ffffdd0d}, + {0x9830d536, 0xffffd863ffffdd0e}, + {0x9830d537, 0xffffd863ffffdd0f}, + {0x9830d538, 0xffffd863ffffdd10}, + {0x9830d539, 0xffffd863ffffdd11}, + {0x9830d630, 0xffffd863ffffdd12}, + {0x9830d631, 0xffffd863ffffdd13}, + {0x9830d632, 0xffffd863ffffdd14}, + {0x9830d633, 0xffffd863ffffdd15}, + {0x9830d634, 0xffffd863ffffdd16}, + {0x9830d635, 0xffffd863ffffdd17}, + {0x9830d636, 0xffffd863ffffdd18}, + {0x9830d637, 0xffffd863ffffdd19}, + {0x9830d638, 0xffffd863ffffdd1a}, + {0x9830d639, 0xffffd863ffffdd1b}, + {0x9830d730, 0xffffd863ffffdd1c}, + {0x9830d731, 0xffffd863ffffdd1d}, + {0x9830d732, 0xffffd863ffffdd1e}, + {0x9830d733, 0xffffd863ffffdd1f}, + {0x9830d734, 0xffffd863ffffdd20}, + {0x9830d735, 0xffffd863ffffdd21}, + {0x9830d736, 0xffffd863ffffdd22}, + {0x9830d737, 0xffffd863ffffdd23}, + {0x9830d738, 0xffffd863ffffdd24}, + {0x9830d739, 0xffffd863ffffdd25}, + {0x9830d830, 0xffffd863ffffdd26}, + {0x9830d831, 0xffffd863ffffdd27}, + {0x9830d832, 0xffffd863ffffdd28}, + {0x9830d833, 0xffffd863ffffdd29}, + {0x9830d834, 0xffffd863ffffdd2a}, + {0x9830d835, 0xffffd863ffffdd2b}, + {0x9830d836, 0xffffd863ffffdd2c}, + {0x9830d837, 0xffffd863ffffdd2d}, + {0x9830d838, 0xffffd863ffffdd2e}, + {0x9830d839, 0xffffd863ffffdd2f}, + {0x9830d930, 0xffffd863ffffdd30}, + {0x9830d931, 0xffffd863ffffdd31}, + {0x9830d932, 0xffffd863ffffdd32}, + {0x9830d933, 0xffffd863ffffdd33}, + {0x9830d934, 0xffffd863ffffdd34}, + {0x9830d935, 0xffffd863ffffdd35}, + {0x9830d936, 0xffffd863ffffdd36}, + {0x9830d937, 0xffffd863ffffdd37}, + {0x9830d938, 0xffffd863ffffdd38}, + {0x9830d939, 0xffffd863ffffdd39}, + {0x9830da30, 0xffffd863ffffdd3a}, + {0x9830da31, 0xffffd863ffffdd3b}, + {0x9830da32, 0xffffd863ffffdd3c}, + {0x9830da33, 0xffffd863ffffdd3d}, + {0x9830da34, 0xffffd863ffffdd3e}, + {0x9830da35, 0xffffd863ffffdd3f}, + {0x9830da36, 0xffffd863ffffdd40}, + {0x9830da37, 0xffffd863ffffdd41}, + {0x9830da38, 0xffffd863ffffdd42}, + {0x9830da39, 0xffffd863ffffdd43}, + {0x9830db30, 0xffffd863ffffdd44}, + {0x9830db31, 0xffffd863ffffdd45}, + {0x9830db32, 0xffffd863ffffdd46}, + {0x9830db33, 0xffffd863ffffdd47}, + {0x9830db34, 0xffffd863ffffdd48}, + {0x9830db35, 0xffffd863ffffdd49}, + {0x9830db36, 0xffffd863ffffdd4a}, + {0x9830db37, 0xffffd863ffffdd4b}, + {0x9830db38, 0xffffd863ffffdd4c}, + {0x9830db39, 0xffffd863ffffdd4d}, + {0x9830dc30, 0xffffd863ffffdd4e}, + {0x9830dc31, 0xffffd863ffffdd4f}, + {0x9830dc32, 0xffffd863ffffdd50}, + {0x9830dc33, 0xffffd863ffffdd51}, + {0x9830dc34, 0xffffd863ffffdd52}, + {0x9830dc35, 0xffffd863ffffdd53}, + {0x9830dc36, 0xffffd863ffffdd54}, + {0x9830dc37, 0xffffd863ffffdd55}, + {0x9830dc38, 0xffffd863ffffdd56}, + {0x9830dc39, 0xffffd863ffffdd57}, + {0x9830dd30, 0xffffd863ffffdd58}, + {0x9830dd31, 0xffffd863ffffdd59}, + {0x9830dd32, 0xffffd863ffffdd5a}, + {0x9830dd33, 0xffffd863ffffdd5b}, + {0x9830dd34, 0xffffd863ffffdd5c}, + {0x9830dd35, 0xffffd863ffffdd5d}, + {0x9830dd36, 0xffffd863ffffdd5e}, + {0x9830dd37, 0xffffd863ffffdd5f}, + {0x9830dd38, 0xffffd863ffffdd60}, + {0x9830dd39, 0xffffd863ffffdd61}, + {0x9830de30, 0xffffd863ffffdd62}, + {0x9830de31, 0xffffd863ffffdd63}, + {0x9830de32, 0xffffd863ffffdd64}, + {0x9830de33, 0xffffd863ffffdd65}, + {0x9830de34, 0xffffd863ffffdd66}, + {0x9830de35, 0xffffd863ffffdd67}, + {0x9830de36, 0xffffd863ffffdd68}, + {0x9830de37, 0xffffd863ffffdd69}, + {0x9830de38, 0xffffd863ffffdd6a}, + {0x9830de39, 0xffffd863ffffdd6b}, + {0x9830df30, 0xffffd863ffffdd6c}, + {0x9830df31, 0xffffd863ffffdd6d}, + {0x9830df32, 0xffffd863ffffdd6e}, + {0x9830df33, 0xffffd863ffffdd6f}, + {0x9830df34, 0xffffd863ffffdd70}, + {0x9830df35, 0xffffd863ffffdd71}, + {0x9830df36, 0xffffd863ffffdd72}, + {0x9830df37, 0xffffd863ffffdd73}, + {0x9830df38, 0xffffd863ffffdd74}, + {0x9830df39, 0xffffd863ffffdd75}, + {0x9830e030, 0xffffd863ffffdd76}, + {0x9830e031, 0xffffd863ffffdd77}, + {0x9830e032, 0xffffd863ffffdd78}, + {0x9830e033, 0xffffd863ffffdd79}, + {0x9830e034, 0xffffd863ffffdd7a}, + {0x9830e035, 0xffffd863ffffdd7b}, + {0x9830e036, 0xffffd863ffffdd7c}, + {0x9830e037, 0xffffd863ffffdd7d}, + {0x9830e038, 0xffffd863ffffdd7e}, + {0x9830e039, 0xffffd863ffffdd7f}, + {0x9830e130, 0xffffd863ffffdd80}, + {0x9830e131, 0xffffd863ffffdd81}, + {0x9830e132, 0xffffd863ffffdd82}, + {0x9830e133, 0xffffd863ffffdd83}, + {0x9830e134, 0xffffd863ffffdd84}, + {0x9830e135, 0xffffd863ffffdd85}, + {0x9830e136, 0xffffd863ffffdd86}, + {0x9830e137, 0xffffd863ffffdd87}, + {0x9830e138, 0xffffd863ffffdd88}, + {0x9830e139, 0xffffd863ffffdd89}, + {0x9830e230, 0xffffd863ffffdd8a}, + {0x9830e231, 0xffffd863ffffdd8b}, + {0x9830e232, 0xffffd863ffffdd8c}, + {0x9830e233, 0xffffd863ffffdd8d}, + {0x9830e234, 0xffffd863ffffdd8e}, + {0x9830e235, 0xffffd863ffffdd8f}, + {0x9830e236, 0xffffd863ffffdd90}, + {0x9830e237, 0xffffd863ffffdd91}, + {0x9830e238, 0xffffd863ffffdd92}, + {0x9830e239, 0xffffd863ffffdd93}, + {0x9830e330, 0xffffd863ffffdd94}, + {0x9830e331, 0xffffd863ffffdd95}, + {0x9830e332, 0xffffd863ffffdd96}, + {0x9830e333, 0xffffd863ffffdd97}, + {0x9830e334, 0xffffd863ffffdd98}, + {0x9830e335, 0xffffd863ffffdd99}, + {0x9830e336, 0xffffd863ffffdd9a}, + {0x9830e337, 0xffffd863ffffdd9b}, + {0x9830e338, 0xffffd863ffffdd9c}, + {0x9830e339, 0xffffd863ffffdd9d}, + {0x9830e430, 0xffffd863ffffdd9e}, + {0x9830e431, 0xffffd863ffffdd9f}, + {0x9830e432, 0xffffd863ffffdda0}, + {0x9830e433, 0xffffd863ffffdda1}, + {0x9830e434, 0xffffd863ffffdda2}, + {0x9830e435, 0xffffd863ffffdda3}, + {0x9830e436, 0xffffd863ffffdda4}, + {0x9830e437, 0xffffd863ffffdda5}, + {0x9830e438, 0xffffd863ffffdda6}, + {0x9830e439, 0xffffd863ffffdda7}, + {0x9830e530, 0xffffd863ffffdda8}, + {0x9830e531, 0xffffd863ffffdda9}, + {0x9830e532, 0xffffd863ffffddaa}, + {0x9830e533, 0xffffd863ffffddab}, + {0x9830e534, 0xffffd863ffffddac}, + {0x9830e535, 0xffffd863ffffddad}, + {0x9830e536, 0xffffd863ffffddae}, + {0x9830e537, 0xffffd863ffffddaf}, + {0x9830e538, 0xffffd863ffffddb0}, + {0x9830e539, 0xffffd863ffffddb1}, + {0x9830e630, 0xffffd863ffffddb2}, + {0x9830e631, 0xffffd863ffffddb3}, + {0x9830e632, 0xffffd863ffffddb4}, + {0x9830e633, 0xffffd863ffffddb5}, + {0x9830e634, 0xffffd863ffffddb6}, + {0x9830e635, 0xffffd863ffffddb7}, + {0x9830e636, 0xffffd863ffffddb8}, + {0x9830e637, 0xffffd863ffffddb9}, + {0x9830e638, 0xffffd863ffffddba}, + {0x9830e639, 0xffffd863ffffddbb}, + {0x9830e730, 0xffffd863ffffddbc}, + {0x9830e731, 0xffffd863ffffddbd}, + {0x9830e732, 0xffffd863ffffddbe}, + {0x9830e733, 0xffffd863ffffddbf}, + {0x9830e734, 0xffffd863ffffddc0}, + {0x9830e735, 0xffffd863ffffddc1}, + {0x9830e736, 0xffffd863ffffddc2}, + {0x9830e737, 0xffffd863ffffddc3}, + {0x9830e738, 0xffffd863ffffddc4}, + {0x9830e739, 0xffffd863ffffddc5}, + {0x9830e830, 0xffffd863ffffddc6}, + {0x9830e831, 0xffffd863ffffddc7}, + {0x9830e832, 0xffffd863ffffddc8}, + {0x9830e833, 0xffffd863ffffddc9}, + {0x9830e834, 0xffffd863ffffddca}, + {0x9830e835, 0xffffd863ffffddcb}, + {0x9830e836, 0xffffd863ffffddcc}, + {0x9830e837, 0xffffd863ffffddcd}, + {0x9830e838, 0xffffd863ffffddce}, + {0x9830e839, 0xffffd863ffffddcf}, + {0x9830e930, 0xffffd863ffffddd0}, + {0x9830e931, 0xffffd863ffffddd1}, + {0x9830e932, 0xffffd863ffffddd2}, + {0x9830e933, 0xffffd863ffffddd3}, + {0x9830e934, 0xffffd863ffffddd4}, + {0x9830e935, 0xffffd863ffffddd5}, + {0x9830e936, 0xffffd863ffffddd6}, + {0x9830e937, 0xffffd863ffffddd7}, + {0x9830e938, 0xffffd863ffffddd8}, + {0x9830e939, 0xffffd863ffffddd9}, + {0x9830ea30, 0xffffd863ffffddda}, + {0x9830ea31, 0xffffd863ffffdddb}, + {0x9830ea32, 0xffffd863ffffdddc}, + {0x9830ea33, 0xffffd863ffffdddd}, + {0x9830ea34, 0xffffd863ffffddde}, + {0x9830ea35, 0xffffd863ffffdddf}, + {0x9830ea36, 0xffffd863ffffdde0}, + {0x9830ea37, 0xffffd863ffffdde1}, + {0x9830ea38, 0xffffd863ffffdde2}, + {0x9830ea39, 0xffffd863ffffdde3}, + {0x9830eb30, 0xffffd863ffffdde4}, + {0x9830eb31, 0xffffd863ffffdde5}, + {0x9830eb32, 0xffffd863ffffdde6}, + {0x9830eb33, 0xffffd863ffffdde7}, + {0x9830eb34, 0xffffd863ffffdde8}, + {0x9830eb35, 0xffffd863ffffdde9}, + {0x9830eb36, 0xffffd863ffffddea}, + {0x9830eb37, 0xffffd863ffffddeb}, + {0x9830eb38, 0xffffd863ffffddec}, + {0x9830eb39, 0xffffd863ffffdded}, + {0x9830ec30, 0xffffd863ffffddee}, + {0x9830ec31, 0xffffd863ffffddef}, + {0x9830ec32, 0xffffd863ffffddf0}, + {0x9830ec33, 0xffffd863ffffddf1}, + {0x9830ec34, 0xffffd863ffffddf2}, + {0x9830ec35, 0xffffd863ffffddf3}, + {0x9830ec36, 0xffffd863ffffddf4}, + {0x9830ec37, 0xffffd863ffffddf5}, + {0x9830ec38, 0xffffd863ffffddf6}, + {0x9830ec39, 0xffffd863ffffddf7}, + {0x9830ed30, 0xffffd863ffffddf8}, + {0x9830ed31, 0xffffd863ffffddf9}, + {0x9830ed32, 0xffffd863ffffddfa}, + {0x9830ed33, 0xffffd863ffffddfb}, + {0x9830ed34, 0xffffd863ffffddfc}, + {0x9830ed35, 0xffffd863ffffddfd}, + {0x9830ed36, 0xffffd863ffffddfe}, + {0x9830ed37, 0xffffd863ffffddff}, + {0x9830ed38, 0xffffd863ffffde00}, + {0x9830ed39, 0xffffd863ffffde01}, + {0x9830ee30, 0xffffd863ffffde02}, + {0x9830ee31, 0xffffd863ffffde03}, + {0x9830ee32, 0xffffd863ffffde04}, + {0x9830ee33, 0xffffd863ffffde05}, + {0x9830ee34, 0xffffd863ffffde06}, + {0x9830ee35, 0xffffd863ffffde07}, + {0x9830ee36, 0xffffd863ffffde08}, + {0x9830ee37, 0xffffd863ffffde09}, + {0x9830ee38, 0xffffd863ffffde0a}, + {0x9830ee39, 0xffffd863ffffde0b}, + {0x9830ef30, 0xffffd863ffffde0c}, + {0x9830ef31, 0xffffd863ffffde0d}, + {0x9830ef32, 0xffffd863ffffde0e}, + {0x9830ef33, 0xffffd863ffffde0f}, + {0x9830ef34, 0xffffd863ffffde10}, + {0x9830ef35, 0xffffd863ffffde11}, + {0x9830ef36, 0xffffd863ffffde12}, + {0x9830ef37, 0xffffd863ffffde13}, + {0x9830ef38, 0xffffd863ffffde14}, + {0x9830ef39, 0xffffd863ffffde15}, + {0x9830f030, 0xffffd863ffffde16}, + {0x9830f031, 0xffffd863ffffde17}, + {0x9830f032, 0xffffd863ffffde18}, + {0x9830f033, 0xffffd863ffffde19}, + {0x9830f034, 0xffffd863ffffde1a}, + {0x9830f035, 0xffffd863ffffde1b}, + {0x9830f036, 0xffffd863ffffde1c}, + {0x9830f037, 0xffffd863ffffde1d}, + {0x9830f038, 0xffffd863ffffde1e}, + {0x9830f039, 0xffffd863ffffde1f}, + {0x9830f130, 0xffffd863ffffde20}, + {0x9830f131, 0xffffd863ffffde21}, + {0x9830f132, 0xffffd863ffffde22}, + {0x9830f133, 0xffffd863ffffde23}, + {0x9830f134, 0xffffd863ffffde24}, + {0x9830f135, 0xffffd863ffffde25}, + {0x9830f136, 0xffffd863ffffde26}, + {0x9830f137, 0xffffd863ffffde27}, + {0x9830f138, 0xffffd863ffffde28}, + {0x9830f139, 0xffffd863ffffde29}, + {0x9830f230, 0xffffd863ffffde2a}, + {0x9830f231, 0xffffd863ffffde2b}, + {0x9830f232, 0xffffd863ffffde2c}, + {0x9830f233, 0xffffd863ffffde2d}, + {0x9830f234, 0xffffd863ffffde2e}, + {0x9830f235, 0xffffd863ffffde2f}, + {0x9830f236, 0xffffd863ffffde30}, + {0x9830f237, 0xffffd863ffffde31}, + {0x9830f238, 0xffffd863ffffde32}, + {0x9830f239, 0xffffd863ffffde33}, + {0x9830f330, 0xffffd863ffffde34}, + {0x9830f331, 0xffffd863ffffde35}, + {0x9830f332, 0xffffd863ffffde36}, + {0x9830f333, 0xffffd863ffffde37}, + {0x9830f334, 0xffffd863ffffde38}, + {0x9830f335, 0xffffd863ffffde39}, + {0x9830f336, 0xffffd863ffffde3a}, + {0x9830f337, 0xffffd863ffffde3b}, + {0x9830f338, 0xffffd863ffffde3c}, + {0x9830f339, 0xffffd863ffffde3d}, + {0x9830f430, 0xffffd863ffffde3e}, + {0x9830f431, 0xffffd863ffffde3f}, + {0x9830f432, 0xffffd863ffffde40}, + {0x9830f433, 0xffffd863ffffde41}, + {0x9830f434, 0xffffd863ffffde42}, + {0x9830f435, 0xffffd863ffffde43}, + {0x9830f436, 0xffffd863ffffde44}, + {0x9830f437, 0xffffd863ffffde45}, + {0x9830f438, 0xffffd863ffffde46}, + {0x9830f439, 0xffffd863ffffde47}, + {0x9830f530, 0xffffd863ffffde48}, + {0x9830f531, 0xffffd863ffffde49}, + {0x9830f532, 0xffffd863ffffde4a}, + {0x9830f533, 0xffffd863ffffde4b}, + {0x9830f534, 0xffffd863ffffde4c}, + {0x9830f535, 0xffffd863ffffde4d}, + {0x9830f536, 0xffffd863ffffde4e}, + {0x9830f537, 0xffffd863ffffde4f}, + {0x9830f538, 0xffffd863ffffde50}, + {0x9830f539, 0xffffd863ffffde51}, + {0x9830f630, 0xffffd863ffffde52}, + {0x9830f631, 0xffffd863ffffde53}, + {0x9830f632, 0xffffd863ffffde54}, + {0x9830f633, 0xffffd863ffffde55}, + {0x9830f634, 0xffffd863ffffde56}, + {0x9830f635, 0xffffd863ffffde57}, + {0x9830f636, 0xffffd863ffffde58}, + {0x9830f637, 0xffffd863ffffde59}, + {0x9830f638, 0xffffd863ffffde5a}, + {0x9830f639, 0xffffd863ffffde5b}, + {0x9830f730, 0xffffd863ffffde5c}, + {0x9830f731, 0xffffd863ffffde5d}, + {0x9830f732, 0xffffd863ffffde5e}, + {0x9830f733, 0xffffd863ffffde5f}, + {0x9830f734, 0xffffd863ffffde60}, + {0x9830f735, 0xffffd863ffffde61}, + {0x9830f736, 0xffffd863ffffde62}, + {0x9830f737, 0xffffd863ffffde63}, + {0x9830f738, 0xffffd863ffffde64}, + {0x9830f739, 0xffffd863ffffde65}, + {0x9830f830, 0xffffd863ffffde66}, + {0x9830f831, 0xffffd863ffffde67}, + {0x9830f832, 0xffffd863ffffde68}, + {0x9830f833, 0xffffd863ffffde69}, + {0x9830f834, 0xffffd863ffffde6a}, + {0x9830f835, 0xffffd863ffffde6b}, + {0x9830f836, 0xffffd863ffffde6c}, + {0x9830f837, 0xffffd863ffffde6d}, + {0x9830f838, 0xffffd863ffffde6e}, + {0x9830f839, 0xffffd863ffffde6f}, + {0x9830f930, 0xffffd863ffffde70}, + {0x9830f931, 0xffffd863ffffde71}, + {0x9830f932, 0xffffd863ffffde72}, + {0x9830f933, 0xffffd863ffffde73}, + {0x9830f934, 0xffffd863ffffde74}, + {0x9830f935, 0xffffd863ffffde75}, + {0x9830f936, 0xffffd863ffffde76}, + {0x9830f937, 0xffffd863ffffde77}, + {0x9830f938, 0xffffd863ffffde78}, + {0x9830f939, 0xffffd863ffffde79}, + {0x9830fa30, 0xffffd863ffffde7a}, + {0x9830fa31, 0xffffd863ffffde7b}, + {0x9830fa32, 0xffffd863ffffde7c}, + {0x9830fa33, 0xffffd863ffffde7d}, + {0x9830fa34, 0xffffd863ffffde7e}, + {0x9830fa35, 0xffffd863ffffde7f}, + {0x9830fa36, 0xffffd863ffffde80}, + {0x9830fa37, 0xffffd863ffffde81}, + {0x9830fa38, 0xffffd863ffffde82}, + {0x9830fa39, 0xffffd863ffffde83}, + {0x9830fb30, 0xffffd863ffffde84}, + {0x9830fb31, 0xffffd863ffffde85}, + {0x9830fb32, 0xffffd863ffffde86}, + {0x9830fb33, 0xffffd863ffffde87}, + {0x9830fb34, 0xffffd863ffffde88}, + {0x9830fb35, 0xffffd863ffffde89}, + {0x9830fb36, 0xffffd863ffffde8a}, + {0x9830fb37, 0xffffd863ffffde8b}, + {0x9830fb38, 0xffffd863ffffde8c}, + {0x9830fb39, 0xffffd863ffffde8d}, + {0x9830fc30, 0xffffd863ffffde8e}, + {0x9830fc31, 0xffffd863ffffde8f}, + {0x9830fc32, 0xffffd863ffffde90}, + {0x9830fc33, 0xffffd863ffffde91}, + {0x9830fc34, 0xffffd863ffffde92}, + {0x9830fc35, 0xffffd863ffffde93}, + {0x9830fc36, 0xffffd863ffffde94}, + {0x9830fc37, 0xffffd863ffffde95}, + {0x9830fc38, 0xffffd863ffffde96}, + {0x9830fc39, 0xffffd863ffffde97}, + {0x9830fd30, 0xffffd863ffffde98}, + {0x9830fd31, 0xffffd863ffffde99}, + {0x9830fd32, 0xffffd863ffffde9a}, + {0x9830fd33, 0xffffd863ffffde9b}, + {0x9830fd34, 0xffffd863ffffde9c}, + {0x9830fd35, 0xffffd863ffffde9d}, + {0x9830fd36, 0xffffd863ffffde9e}, + {0x9830fd37, 0xffffd863ffffde9f}, + {0x9830fd38, 0xffffd863ffffdea0}, + {0x9830fd39, 0xffffd863ffffdea1}, + {0x9830fe30, 0xffffd863ffffdea2}, + {0x9830fe31, 0xffffd863ffffdea3}, + {0x9830fe32, 0xffffd863ffffdea4}, + {0x9830fe33, 0xffffd863ffffdea5}, + {0x9830fe34, 0xffffd863ffffdea6}, + {0x9830fe35, 0xffffd863ffffdea7}, + {0x9830fe36, 0xffffd863ffffdea8}, + {0x9830fe37, 0xffffd863ffffdea9}, + {0x9830fe38, 0xffffd863ffffdeaa}, + {0x9830fe39, 0xffffd863ffffdeab}, + {0x98318130, 0xffffd863ffffdeac}, + {0x98318131, 0xffffd863ffffdead}, + {0x98318132, 0xffffd863ffffdeae}, + {0x98318133, 0xffffd863ffffdeaf}, + {0x98318134, 0xffffd863ffffdeb0}, + {0x98318135, 0xffffd863ffffdeb1}, + {0x98318136, 0xffffd863ffffdeb2}, + {0x98318137, 0xffffd863ffffdeb3}, + {0x98318138, 0xffffd863ffffdeb4}, + {0x98318139, 0xffffd863ffffdeb5}, + {0x98318230, 0xffffd863ffffdeb6}, + {0x98318231, 0xffffd863ffffdeb7}, + {0x98318232, 0xffffd863ffffdeb8}, + {0x98318233, 0xffffd863ffffdeb9}, + {0x98318234, 0xffffd863ffffdeba}, + {0x98318235, 0xffffd863ffffdebb}, + {0x98318236, 0xffffd863ffffdebc}, + {0x98318237, 0xffffd863ffffdebd}, + {0x98318238, 0xffffd863ffffdebe}, + {0x98318239, 0xffffd863ffffdebf}, + {0x98318330, 0xffffd863ffffdec0}, + {0x98318331, 0xffffd863ffffdec1}, + {0x98318332, 0xffffd863ffffdec2}, + {0x98318333, 0xffffd863ffffdec3}, + {0x98318334, 0xffffd863ffffdec4}, + {0x98318335, 0xffffd863ffffdec5}, + {0x98318336, 0xffffd863ffffdec6}, + {0x98318337, 0xffffd863ffffdec7}, + {0x98318338, 0xffffd863ffffdec8}, + {0x98318339, 0xffffd863ffffdec9}, + {0x98318430, 0xffffd863ffffdeca}, + {0x98318431, 0xffffd863ffffdecb}, + {0x98318432, 0xffffd863ffffdecc}, + {0x98318433, 0xffffd863ffffdecd}, + {0x98318434, 0xffffd863ffffdece}, + {0x98318435, 0xffffd863ffffdecf}, + {0x98318436, 0xffffd863ffffded0}, + {0x98318437, 0xffffd863ffffded1}, + {0x98318438, 0xffffd863ffffded2}, + {0x98318439, 0xffffd863ffffded3}, + {0x98318530, 0xffffd863ffffded4}, + {0x98318531, 0xffffd863ffffded5}, + {0x98318532, 0xffffd863ffffded6}, + {0x98318533, 0xffffd863ffffded7}, + {0x98318534, 0xffffd863ffffded8}, + {0x98318535, 0xffffd863ffffded9}, + {0x98318536, 0xffffd863ffffdeda}, + {0x98318537, 0xffffd863ffffdedb}, + {0x98318538, 0xffffd863ffffdedc}, + {0x98318539, 0xffffd863ffffdedd}, + {0x98318630, 0xffffd863ffffdede}, + {0x98318631, 0xffffd863ffffdedf}, + {0x98318632, 0xffffd863ffffdee0}, + {0x98318633, 0xffffd863ffffdee1}, + {0x98318634, 0xffffd863ffffdee2}, + {0x98318635, 0xffffd863ffffdee3}, + {0x98318636, 0xffffd863ffffdee4}, + {0x98318637, 0xffffd863ffffdee5}, + {0x98318638, 0xffffd863ffffdee6}, + {0x98318639, 0xffffd863ffffdee7}, + {0x98318730, 0xffffd863ffffdee8}, + {0x98318731, 0xffffd863ffffdee9}, + {0x98318732, 0xffffd863ffffdeea}, + {0x98318733, 0xffffd863ffffdeeb}, + {0x98318734, 0xffffd863ffffdeec}, + {0x98318735, 0xffffd863ffffdeed}, + {0x98318736, 0xffffd863ffffdeee}, + {0x98318737, 0xffffd863ffffdeef}, + {0x98318738, 0xffffd863ffffdef0}, + {0x98318739, 0xffffd863ffffdef1}, + {0x98318830, 0xffffd863ffffdef2}, + {0x98318831, 0xffffd863ffffdef3}, + {0x98318832, 0xffffd863ffffdef4}, + {0x98318833, 0xffffd863ffffdef5}, + {0x98318834, 0xffffd863ffffdef6}, + {0x98318835, 0xffffd863ffffdef7}, + {0x98318836, 0xffffd863ffffdef8}, + {0x98318837, 0xffffd863ffffdef9}, + {0x98318838, 0xffffd863ffffdefa}, + {0x98318839, 0xffffd863ffffdefb}, + {0x98318930, 0xffffd863ffffdefc}, + {0x98318931, 0xffffd863ffffdefd}, + {0x98318932, 0xffffd863ffffdefe}, + {0x98318933, 0xffffd863ffffdeff}, + {0x98318934, 0xffffd863ffffdf00}, + {0x98318935, 0xffffd863ffffdf01}, + {0x98318936, 0xffffd863ffffdf02}, + {0x98318937, 0xffffd863ffffdf03}, + {0x98318938, 0xffffd863ffffdf04}, + {0x98318939, 0xffffd863ffffdf05}, + {0x98318a30, 0xffffd863ffffdf06}, + {0x98318a31, 0xffffd863ffffdf07}, + {0x98318a32, 0xffffd863ffffdf08}, + {0x98318a33, 0xffffd863ffffdf09}, + {0x98318a34, 0xffffd863ffffdf0a}, + {0x98318a35, 0xffffd863ffffdf0b}, + {0x98318a36, 0xffffd863ffffdf0c}, + {0x98318a37, 0xffffd863ffffdf0d}, + {0x98318a38, 0xffffd863ffffdf0e}, + {0x98318a39, 0xffffd863ffffdf0f}, + {0x98318b30, 0xffffd863ffffdf10}, + {0x98318b31, 0xffffd863ffffdf11}, + {0x98318b32, 0xffffd863ffffdf12}, + {0x98318b33, 0xffffd863ffffdf13}, + {0x98318b34, 0xffffd863ffffdf14}, + {0x98318b35, 0xffffd863ffffdf15}, + {0x98318b36, 0xffffd863ffffdf16}, + {0x98318b37, 0xffffd863ffffdf17}, + {0x98318b38, 0xffffd863ffffdf18}, + {0x98318b39, 0xffffd863ffffdf19}, + {0x98318c30, 0xffffd863ffffdf1a}, + {0x98318c31, 0xffffd863ffffdf1b}, + {0x98318c32, 0xffffd863ffffdf1c}, + {0x98318c33, 0xffffd863ffffdf1d}, + {0x98318c34, 0xffffd863ffffdf1e}, + {0x98318c35, 0xffffd863ffffdf1f}, + {0x98318c36, 0xffffd863ffffdf20}, + {0x98318c37, 0xffffd863ffffdf21}, + {0x98318c38, 0xffffd863ffffdf22}, + {0x98318c39, 0xffffd863ffffdf23}, + {0x98318d30, 0xffffd863ffffdf24}, + {0x98318d31, 0xffffd863ffffdf25}, + {0x98318d32, 0xffffd863ffffdf26}, + {0x98318d33, 0xffffd863ffffdf27}, + {0x98318d34, 0xffffd863ffffdf28}, + {0x98318d35, 0xffffd863ffffdf29}, + {0x98318d36, 0xffffd863ffffdf2a}, + {0x98318d37, 0xffffd863ffffdf2b}, + {0x98318d38, 0xffffd863ffffdf2c}, + {0x98318d39, 0xffffd863ffffdf2d}, + {0x98318e30, 0xffffd863ffffdf2e}, + {0x98318e31, 0xffffd863ffffdf2f}, + {0x98318e32, 0xffffd863ffffdf30}, + {0x98318e33, 0xffffd863ffffdf31}, + {0x98318e34, 0xffffd863ffffdf32}, + {0x98318e35, 0xffffd863ffffdf33}, + {0x98318e36, 0xffffd863ffffdf34}, + {0x98318e37, 0xffffd863ffffdf35}, + {0x98318e38, 0xffffd863ffffdf36}, + {0x98318e39, 0xffffd863ffffdf37}, + {0x98318f30, 0xffffd863ffffdf38}, + {0x98318f31, 0xffffd863ffffdf39}, + {0x98318f32, 0xffffd863ffffdf3a}, + {0x98318f33, 0xffffd863ffffdf3b}, + {0x98318f34, 0xffffd863ffffdf3c}, + {0x98318f35, 0xffffd863ffffdf3d}, + {0x98318f36, 0xffffd863ffffdf3e}, + {0x98318f37, 0xffffd863ffffdf3f}, + {0x98318f38, 0xffffd863ffffdf40}, + {0x98318f39, 0xffffd863ffffdf41}, + {0x98319030, 0xffffd863ffffdf42}, + {0x98319031, 0xffffd863ffffdf43}, + {0x98319032, 0xffffd863ffffdf44}, + {0x98319033, 0xffffd863ffffdf45}, + {0x98319034, 0xffffd863ffffdf46}, + {0x98319035, 0xffffd863ffffdf47}, + {0x98319036, 0xffffd863ffffdf48}, + {0x98319037, 0xffffd863ffffdf49}, + {0x98319038, 0xffffd863ffffdf4a}, + {0x98319039, 0xffffd863ffffdf4b}, + {0x98319130, 0xffffd863ffffdf4c}, + {0x98319131, 0xffffd863ffffdf4d}, + {0x98319132, 0xffffd863ffffdf4e}, + {0x98319133, 0xffffd863ffffdf4f}, + {0x98319134, 0xffffd863ffffdf50}, + {0x98319135, 0xffffd863ffffdf51}, + {0x98319136, 0xffffd863ffffdf52}, + {0x98319137, 0xffffd863ffffdf53}, + {0x98319138, 0xffffd863ffffdf54}, + {0x98319139, 0xffffd863ffffdf55}, + {0x98319230, 0xffffd863ffffdf56}, + {0x98319231, 0xffffd863ffffdf57}, + {0x98319232, 0xffffd863ffffdf58}, + {0x98319233, 0xffffd863ffffdf59}, + {0x98319234, 0xffffd863ffffdf5a}, + {0x98319235, 0xffffd863ffffdf5b}, + {0x98319236, 0xffffd863ffffdf5c}, + {0x98319237, 0xffffd863ffffdf5d}, + {0x98319238, 0xffffd863ffffdf5e}, + {0x98319239, 0xffffd863ffffdf5f}, + {0x98319330, 0xffffd863ffffdf60}, + {0x98319331, 0xffffd863ffffdf61}, + {0x98319332, 0xffffd863ffffdf62}, + {0x98319333, 0xffffd863ffffdf63}, + {0x98319334, 0xffffd863ffffdf64}, + {0x98319335, 0xffffd863ffffdf65}, + {0x98319336, 0xffffd863ffffdf66}, + {0x98319337, 0xffffd863ffffdf67}, + {0x98319338, 0xffffd863ffffdf68}, + {0x98319339, 0xffffd863ffffdf69}, + {0x98319430, 0xffffd863ffffdf6a}, + {0x98319431, 0xffffd863ffffdf6b}, + {0x98319432, 0xffffd863ffffdf6c}, + {0x98319433, 0xffffd863ffffdf6d}, + {0x98319434, 0xffffd863ffffdf6e}, + {0x98319435, 0xffffd863ffffdf6f}, + {0x98319436, 0xffffd863ffffdf70}, + {0x98319437, 0xffffd863ffffdf71}, + {0x98319438, 0xffffd863ffffdf72}, + {0x98319439, 0xffffd863ffffdf73}, + {0x98319530, 0xffffd863ffffdf74}, + {0x98319531, 0xffffd863ffffdf75}, + {0x98319532, 0xffffd863ffffdf76}, + {0x98319533, 0xffffd863ffffdf77}, + {0x98319534, 0xffffd863ffffdf78}, + {0x98319535, 0xffffd863ffffdf79}, + {0x98319536, 0xffffd863ffffdf7a}, + {0x98319537, 0xffffd863ffffdf7b}, + {0x98319538, 0xffffd863ffffdf7c}, + {0x98319539, 0xffffd863ffffdf7d}, + {0x98319630, 0xffffd863ffffdf7e}, + {0x98319631, 0xffffd863ffffdf7f}, + {0x98319632, 0xffffd863ffffdf80}, + {0x98319633, 0xffffd863ffffdf81}, + {0x98319634, 0xffffd863ffffdf82}, + {0x98319635, 0xffffd863ffffdf83}, + {0x98319636, 0xffffd863ffffdf84}, + {0x98319637, 0xffffd863ffffdf85}, + {0x98319638, 0xffffd863ffffdf86}, + {0x98319639, 0xffffd863ffffdf87}, + {0x98319730, 0xffffd863ffffdf88}, + {0x98319731, 0xffffd863ffffdf89}, + {0x98319732, 0xffffd863ffffdf8a}, + {0x98319733, 0xffffd863ffffdf8b}, + {0x98319734, 0xffffd863ffffdf8c}, + {0x98319735, 0xffffd863ffffdf8d}, + {0x98319736, 0xffffd863ffffdf8e}, + {0x98319737, 0xffffd863ffffdf8f}, + {0x98319738, 0xffffd863ffffdf90}, + {0x98319739, 0xffffd863ffffdf91}, + {0x98319830, 0xffffd863ffffdf92}, + {0x98319831, 0xffffd863ffffdf93}, + {0x98319832, 0xffffd863ffffdf94}, + {0x98319833, 0xffffd863ffffdf95}, + {0x98319834, 0xffffd863ffffdf96}, + {0x98319835, 0xffffd863ffffdf97}, + {0x98319836, 0xffffd863ffffdf98}, + {0x98319837, 0xffffd863ffffdf99}, + {0x98319838, 0xffffd863ffffdf9a}, + {0x98319839, 0xffffd863ffffdf9b}, + {0x98319930, 0xffffd863ffffdf9c}, + {0x98319931, 0xffffd863ffffdf9d}, + {0x98319932, 0xffffd863ffffdf9e}, + {0x98319933, 0xffffd863ffffdf9f}, + {0x98319934, 0xffffd863ffffdfa0}, + {0x98319935, 0xffffd863ffffdfa1}, + {0x98319936, 0xffffd863ffffdfa2}, + {0x98319937, 0xffffd863ffffdfa3}, + {0x98319938, 0xffffd863ffffdfa4}, + {0x98319939, 0xffffd863ffffdfa5}, + {0x98319a30, 0xffffd863ffffdfa6}, + {0x98319a31, 0xffffd863ffffdfa7}, + {0x98319a32, 0xffffd863ffffdfa8}, + {0x98319a33, 0xffffd863ffffdfa9}, + {0x98319a34, 0xffffd863ffffdfaa}, + {0x98319a35, 0xffffd863ffffdfab}, + {0x98319a36, 0xffffd863ffffdfac}, + {0x98319a37, 0xffffd863ffffdfad}, + {0x98319a38, 0xffffd863ffffdfae}, + {0x98319a39, 0xffffd863ffffdfaf}, + {0x98319b30, 0xffffd863ffffdfb0}, + {0x98319b31, 0xffffd863ffffdfb1}, + {0x98319b32, 0xffffd863ffffdfb2}, + {0x98319b33, 0xffffd863ffffdfb3}, + {0x98319b34, 0xffffd863ffffdfb4}, + {0x98319b35, 0xffffd863ffffdfb5}, + {0x98319b36, 0xffffd863ffffdfb6}, + {0x98319b37, 0xffffd863ffffdfb7}, + {0x98319b38, 0xffffd863ffffdfb8}, + {0x98319b39, 0xffffd863ffffdfb9}, + {0x98319c30, 0xffffd863ffffdfba}, + {0x98319c31, 0xffffd863ffffdfbb}, + {0x98319c32, 0xffffd863ffffdfbc}, + {0x98319c33, 0xffffd863ffffdfbd}, + {0x98319c34, 0xffffd863ffffdfbe}, + {0x98319c35, 0xffffd863ffffdfbf}, + {0x98319c36, 0xffffd863ffffdfc0}, + {0x98319c37, 0xffffd863ffffdfc1}, + {0x98319c38, 0xffffd863ffffdfc2}, + {0x98319c39, 0xffffd863ffffdfc3}, + {0x98319d30, 0xffffd863ffffdfc4}, + {0x98319d31, 0xffffd863ffffdfc5}, + {0x98319d32, 0xffffd863ffffdfc6}, + {0x98319d33, 0xffffd863ffffdfc7}, + {0x98319d34, 0xffffd863ffffdfc8}, + {0x98319d35, 0xffffd863ffffdfc9}, + {0x98319d36, 0xffffd863ffffdfca}, + {0x98319d37, 0xffffd863ffffdfcb}, + {0x98319d38, 0xffffd863ffffdfcc}, + {0x98319d39, 0xffffd863ffffdfcd}, + {0x98319e30, 0xffffd863ffffdfce}, + {0x98319e31, 0xffffd863ffffdfcf}, + {0x98319e32, 0xffffd863ffffdfd0}, + {0x98319e33, 0xffffd863ffffdfd1}, + {0x98319e34, 0xffffd863ffffdfd2}, + {0x98319e35, 0xffffd863ffffdfd3}, + {0x98319e36, 0xffffd863ffffdfd4}, + {0x98319e37, 0xffffd863ffffdfd5}, + {0x98319e38, 0xffffd863ffffdfd6}, + {0x98319e39, 0xffffd863ffffdfd7}, + {0x98319f30, 0xffffd863ffffdfd8}, + {0x98319f31, 0xffffd863ffffdfd9}, + {0x98319f32, 0xffffd863ffffdfda}, + {0x98319f33, 0xffffd863ffffdfdb}, + {0x98319f34, 0xffffd863ffffdfdc}, + {0x98319f35, 0xffffd863ffffdfdd}, + {0x98319f36, 0xffffd863ffffdfde}, + {0x98319f37, 0xffffd863ffffdfdf}, + {0x98319f38, 0xffffd863ffffdfe0}, + {0x98319f39, 0xffffd863ffffdfe1}, + {0x9831a030, 0xffffd863ffffdfe2}, + {0x9831a031, 0xffffd863ffffdfe3}, + {0x9831a032, 0xffffd863ffffdfe4}, + {0x9831a033, 0xffffd863ffffdfe5}, + {0x9831a034, 0xffffd863ffffdfe6}, + {0x9831a035, 0xffffd863ffffdfe7}, + {0x9831a036, 0xffffd863ffffdfe8}, + {0x9831a037, 0xffffd863ffffdfe9}, + {0x9831a038, 0xffffd863ffffdfea}, + {0x9831a039, 0xffffd863ffffdfeb}, + {0x9831a130, 0xffffd863ffffdfec}, + {0x9831a131, 0xffffd863ffffdfed}, + {0x9831a132, 0xffffd863ffffdfee}, + {0x9831a133, 0xffffd863ffffdfef}, + {0x9831a134, 0xffffd863ffffdff0}, + {0x9831a135, 0xffffd863ffffdff1}, + {0x9831a136, 0xffffd863ffffdff2}, + {0x9831a137, 0xffffd863ffffdff3}, + {0x9831a138, 0xffffd863ffffdff4}, + {0x9831a139, 0xffffd863ffffdff5}, + {0x9831a230, 0xffffd863ffffdff6}, + {0x9831a231, 0xffffd863ffffdff7}, + {0x9831a232, 0xffffd863ffffdff8}, + {0x9831a233, 0xffffd863ffffdff9}, + {0x9831a234, 0xffffd863ffffdffa}, + {0x9831a235, 0xffffd863ffffdffb}, + {0x9831a236, 0xffffd863ffffdffc}, + {0x9831a237, 0xffffd863ffffdffd}, + {0x9831a238, 0xffffd863ffffdffe}, + {0x9831a239, 0xffffd863ffffdfff}, + {0x9831a330, 0xffffd864ffffdc00}, + {0x9831a331, 0xffffd864ffffdc01}, + {0x9831a332, 0xffffd864ffffdc02}, + {0x9831a333, 0xffffd864ffffdc03}, + {0x9831a334, 0xffffd864ffffdc04}, + {0x9831a335, 0xffffd864ffffdc05}, + {0x9831a336, 0xffffd864ffffdc06}, + {0x9831a337, 0xffffd864ffffdc07}, + {0x9831a338, 0xffffd864ffffdc08}, + {0x9831a339, 0xffffd864ffffdc09}, + {0x9831a430, 0xffffd864ffffdc0a}, + {0x9831a431, 0xffffd864ffffdc0b}, + {0x9831a432, 0xffffd864ffffdc0c}, + {0x9831a433, 0xffffd864ffffdc0d}, + {0x9831a434, 0xffffd864ffffdc0e}, + {0x9831a435, 0xffffd864ffffdc0f}, + {0x9831a436, 0xffffd864ffffdc10}, + {0x9831a437, 0xffffd864ffffdc11}, + {0x9831a438, 0xffffd864ffffdc12}, + {0x9831a439, 0xffffd864ffffdc13}, + {0x9831a530, 0xffffd864ffffdc14}, + {0x9831a531, 0xffffd864ffffdc15}, + {0x9831a532, 0xffffd864ffffdc16}, + {0x9831a533, 0xffffd864ffffdc17}, + {0x9831a534, 0xffffd864ffffdc18}, + {0x9831a535, 0xffffd864ffffdc19}, + {0x9831a536, 0xffffd864ffffdc1a}, + {0x9831a537, 0xffffd864ffffdc1b}, + {0x9831a538, 0xffffd864ffffdc1c}, + {0x9831a539, 0xffffd864ffffdc1d}, + {0x9831a630, 0xffffd864ffffdc1e}, + {0x9831a631, 0xffffd864ffffdc1f}, + {0x9831a632, 0xffffd864ffffdc20}, + {0x9831a633, 0xffffd864ffffdc21}, + {0x9831a634, 0xffffd864ffffdc22}, + {0x9831a635, 0xffffd864ffffdc23}, + {0x9831a636, 0xffffd864ffffdc24}, + {0x9831a637, 0xffffd864ffffdc25}, + {0x9831a638, 0xffffd864ffffdc26}, + {0x9831a639, 0xffffd864ffffdc27}, + {0x9831a730, 0xffffd864ffffdc28}, + {0x9831a731, 0xffffd864ffffdc29}, + {0x9831a732, 0xffffd864ffffdc2a}, + {0x9831a733, 0xffffd864ffffdc2b}, + {0x9831a734, 0xffffd864ffffdc2c}, + {0x9831a735, 0xffffd864ffffdc2d}, + {0x9831a736, 0xffffd864ffffdc2e}, + {0x9831a737, 0xffffd864ffffdc2f}, + {0x9831a738, 0xffffd864ffffdc30}, + {0x9831a739, 0xffffd864ffffdc31}, + {0x9831a830, 0xffffd864ffffdc32}, + {0x9831a831, 0xffffd864ffffdc33}, + {0x9831a832, 0xffffd864ffffdc34}, + {0x9831a833, 0xffffd864ffffdc35}, + {0x9831a834, 0xffffd864ffffdc36}, + {0x9831a835, 0xffffd864ffffdc37}, + {0x9831a836, 0xffffd864ffffdc38}, + {0x9831a837, 0xffffd864ffffdc39}, + {0x9831a838, 0xffffd864ffffdc3a}, + {0x9831a839, 0xffffd864ffffdc3b}, + {0x9831a930, 0xffffd864ffffdc3c}, + {0x9831a931, 0xffffd864ffffdc3d}, + {0x9831a932, 0xffffd864ffffdc3e}, + {0x9831a933, 0xffffd864ffffdc3f}, + {0x9831a934, 0xffffd864ffffdc40}, + {0x9831a935, 0xffffd864ffffdc41}, + {0x9831a936, 0xffffd864ffffdc42}, + {0x9831a937, 0xffffd864ffffdc43}, + {0x9831a938, 0xffffd864ffffdc44}, + {0x9831a939, 0xffffd864ffffdc45}, + {0x9831aa30, 0xffffd864ffffdc46}, + {0x9831aa31, 0xffffd864ffffdc47}, + {0x9831aa32, 0xffffd864ffffdc48}, + {0x9831aa33, 0xffffd864ffffdc49}, + {0x9831aa34, 0xffffd864ffffdc4a}, + {0x9831aa35, 0xffffd864ffffdc4b}, + {0x9831aa36, 0xffffd864ffffdc4c}, + {0x9831aa37, 0xffffd864ffffdc4d}, + {0x9831aa38, 0xffffd864ffffdc4e}, + {0x9831aa39, 0xffffd864ffffdc4f}, + {0x9831ab30, 0xffffd864ffffdc50}, + {0x9831ab31, 0xffffd864ffffdc51}, + {0x9831ab32, 0xffffd864ffffdc52}, + {0x9831ab33, 0xffffd864ffffdc53}, + {0x9831ab34, 0xffffd864ffffdc54}, + {0x9831ab35, 0xffffd864ffffdc55}, + {0x9831ab36, 0xffffd864ffffdc56}, + {0x9831ab37, 0xffffd864ffffdc57}, + {0x9831ab38, 0xffffd864ffffdc58}, + {0x9831ab39, 0xffffd864ffffdc59}, + {0x9831ac30, 0xffffd864ffffdc5a}, + {0x9831ac31, 0xffffd864ffffdc5b}, + {0x9831ac32, 0xffffd864ffffdc5c}, + {0x9831ac33, 0xffffd864ffffdc5d}, + {0x9831ac34, 0xffffd864ffffdc5e}, + {0x9831ac35, 0xffffd864ffffdc5f}, + {0x9831ac36, 0xffffd864ffffdc60}, + {0x9831ac37, 0xffffd864ffffdc61}, + {0x9831ac38, 0xffffd864ffffdc62}, + {0x9831ac39, 0xffffd864ffffdc63}, + {0x9831ad30, 0xffffd864ffffdc64}, + {0x9831ad31, 0xffffd864ffffdc65}, + {0x9831ad32, 0xffffd864ffffdc66}, + {0x9831ad33, 0xffffd864ffffdc67}, + {0x9831ad34, 0xffffd864ffffdc68}, + {0x9831ad35, 0xffffd864ffffdc69}, + {0x9831ad36, 0xffffd864ffffdc6a}, + {0x9831ad37, 0xffffd864ffffdc6b}, + {0x9831ad38, 0xffffd864ffffdc6c}, + {0x9831ad39, 0xffffd864ffffdc6d}, + {0x9831ae30, 0xffffd864ffffdc6e}, + {0x9831ae31, 0xffffd864ffffdc6f}, + {0x9831ae32, 0xffffd864ffffdc70}, + {0x9831ae33, 0xffffd864ffffdc71}, + {0x9831ae34, 0xffffd864ffffdc72}, + {0x9831ae35, 0xffffd864ffffdc73}, + {0x9831ae36, 0xffffd864ffffdc74}, + {0x9831ae37, 0xffffd864ffffdc75}, + {0x9831ae38, 0xffffd864ffffdc76}, + {0x9831ae39, 0xffffd864ffffdc77}, + {0x9831af30, 0xffffd864ffffdc78}, + {0x9831af31, 0xffffd864ffffdc79}, + {0x9831af32, 0xffffd864ffffdc7a}, + {0x9831af33, 0xffffd864ffffdc7b}, + {0x9831af34, 0xffffd864ffffdc7c}, + {0x9831af35, 0xffffd864ffffdc7d}, + {0x9831af36, 0xffffd864ffffdc7e}, + {0x9831af37, 0xffffd864ffffdc7f}, + {0x9831af38, 0xffffd864ffffdc80}, + {0x9831af39, 0xffffd864ffffdc81}, + {0x9831b030, 0xffffd864ffffdc82}, + {0x9831b031, 0xffffd864ffffdc83}, + {0x9831b032, 0xffffd864ffffdc84}, + {0x9831b033, 0xffffd864ffffdc85}, + {0x9831b034, 0xffffd864ffffdc86}, + {0x9831b035, 0xffffd864ffffdc87}, + {0x9831b036, 0xffffd864ffffdc88}, + {0x9831b037, 0xffffd864ffffdc89}, + {0x9831b038, 0xffffd864ffffdc8a}, + {0x9831b039, 0xffffd864ffffdc8b}, + {0x9831b130, 0xffffd864ffffdc8c}, + {0x9831b131, 0xffffd864ffffdc8d}, + {0x9831b132, 0xffffd864ffffdc8e}, + {0x9831b133, 0xffffd864ffffdc8f}, + {0x9831b134, 0xffffd864ffffdc90}, + {0x9831b135, 0xffffd864ffffdc91}, + {0x9831b136, 0xffffd864ffffdc92}, + {0x9831b137, 0xffffd864ffffdc93}, + {0x9831b138, 0xffffd864ffffdc94}, + {0x9831b139, 0xffffd864ffffdc95}, + {0x9831b230, 0xffffd864ffffdc96}, + {0x9831b231, 0xffffd864ffffdc97}, + {0x9831b232, 0xffffd864ffffdc98}, + {0x9831b233, 0xffffd864ffffdc99}, + {0x9831b234, 0xffffd864ffffdc9a}, + {0x9831b235, 0xffffd864ffffdc9b}, + {0x9831b236, 0xffffd864ffffdc9c}, + {0x9831b237, 0xffffd864ffffdc9d}, + {0x9831b238, 0xffffd864ffffdc9e}, + {0x9831b239, 0xffffd864ffffdc9f}, + {0x9831b330, 0xffffd864ffffdca0}, + {0x9831b331, 0xffffd864ffffdca1}, + {0x9831b332, 0xffffd864ffffdca2}, + {0x9831b333, 0xffffd864ffffdca3}, + {0x9831b334, 0xffffd864ffffdca4}, + {0x9831b335, 0xffffd864ffffdca5}, + {0x9831b336, 0xffffd864ffffdca6}, + {0x9831b337, 0xffffd864ffffdca7}, + {0x9831b338, 0xffffd864ffffdca8}, + {0x9831b339, 0xffffd864ffffdca9}, + {0x9831b430, 0xffffd864ffffdcaa}, + {0x9831b431, 0xffffd864ffffdcab}, + {0x9831b432, 0xffffd864ffffdcac}, + {0x9831b433, 0xffffd864ffffdcad}, + {0x9831b434, 0xffffd864ffffdcae}, + {0x9831b435, 0xffffd864ffffdcaf}, + {0x9831b436, 0xffffd864ffffdcb0}, + {0x9831b437, 0xffffd864ffffdcb1}, + {0x9831b438, 0xffffd864ffffdcb2}, + {0x9831b439, 0xffffd864ffffdcb3}, + {0x9831b530, 0xffffd864ffffdcb4}, + {0x9831b531, 0xffffd864ffffdcb5}, + {0x9831b532, 0xffffd864ffffdcb6}, + {0x9831b533, 0xffffd864ffffdcb7}, + {0x9831b534, 0xffffd864ffffdcb8}, + {0x9831b535, 0xffffd864ffffdcb9}, + {0x9831b536, 0xffffd864ffffdcba}, + {0x9831b537, 0xffffd864ffffdcbb}, + {0x9831b538, 0xffffd864ffffdcbc}, + {0x9831b539, 0xffffd864ffffdcbd}, + {0x9831b630, 0xffffd864ffffdcbe}, + {0x9831b631, 0xffffd864ffffdcbf}, + {0x9831b632, 0xffffd864ffffdcc0}, + {0x9831b633, 0xffffd864ffffdcc1}, + {0x9831b634, 0xffffd864ffffdcc2}, + {0x9831b635, 0xffffd864ffffdcc3}, + {0x9831b636, 0xffffd864ffffdcc4}, + {0x9831b637, 0xffffd864ffffdcc5}, + {0x9831b638, 0xffffd864ffffdcc6}, + {0x9831b639, 0xffffd864ffffdcc7}, + {0x9831b730, 0xffffd864ffffdcc8}, + {0x9831b731, 0xffffd864ffffdcc9}, + {0x9831b732, 0xffffd864ffffdcca}, + {0x9831b733, 0xffffd864ffffdccb}, + {0x9831b734, 0xffffd864ffffdccc}, + {0x9831b735, 0xffffd864ffffdccd}, + {0x9831b736, 0xffffd864ffffdcce}, + {0x9831b737, 0xffffd864ffffdccf}, + {0x9831b738, 0xffffd864ffffdcd0}, + {0x9831b739, 0xffffd864ffffdcd1}, + {0x9831b830, 0xffffd864ffffdcd2}, + {0x9831b831, 0xffffd864ffffdcd3}, + {0x9831b832, 0xffffd864ffffdcd4}, + {0x9831b833, 0xffffd864ffffdcd5}, + {0x9831b834, 0xffffd864ffffdcd6}, + {0x9831b835, 0xffffd864ffffdcd7}, + {0x9831b836, 0xffffd864ffffdcd8}, + {0x9831b837, 0xffffd864ffffdcd9}, + {0x9831b838, 0xffffd864ffffdcda}, + {0x9831b839, 0xffffd864ffffdcdb}, + {0x9831b930, 0xffffd864ffffdcdc}, + {0x9831b931, 0xffffd864ffffdcdd}, + {0x9831b932, 0xffffd864ffffdcde}, + {0x9831b933, 0xffffd864ffffdcdf}, + {0x9831b934, 0xffffd864ffffdce0}, + {0x9831b935, 0xffffd864ffffdce1}, + {0x9831b936, 0xffffd864ffffdce2}, + {0x9831b937, 0xffffd864ffffdce3}, + {0x9831b938, 0xffffd864ffffdce4}, + {0x9831b939, 0xffffd864ffffdce5}, + {0x9831ba30, 0xffffd864ffffdce6}, + {0x9831ba31, 0xffffd864ffffdce7}, + {0x9831ba32, 0xffffd864ffffdce8}, + {0x9831ba33, 0xffffd864ffffdce9}, + {0x9831ba34, 0xffffd864ffffdcea}, + {0x9831ba35, 0xffffd864ffffdceb}, + {0x9831ba36, 0xffffd864ffffdcec}, + {0x9831ba37, 0xffffd864ffffdced}, + {0x9831ba38, 0xffffd864ffffdcee}, + {0x9831ba39, 0xffffd864ffffdcef}, + {0x9831bb30, 0xffffd864ffffdcf0}, + {0x9831bb31, 0xffffd864ffffdcf1}, + {0x9831bb32, 0xffffd864ffffdcf2}, + {0x9831bb33, 0xffffd864ffffdcf3}, + {0x9831bb34, 0xffffd864ffffdcf4}, + {0x9831bb35, 0xffffd864ffffdcf5}, + {0x9831bb36, 0xffffd864ffffdcf6}, + {0x9831bb37, 0xffffd864ffffdcf7}, + {0x9831bb38, 0xffffd864ffffdcf8}, + {0x9831bb39, 0xffffd864ffffdcf9}, + {0x9831bc30, 0xffffd864ffffdcfa}, + {0x9831bc31, 0xffffd864ffffdcfb}, + {0x9831bc32, 0xffffd864ffffdcfc}, + {0x9831bc33, 0xffffd864ffffdcfd}, + {0x9831bc34, 0xffffd864ffffdcfe}, + {0x9831bc35, 0xffffd864ffffdcff}, + {0x9831bc36, 0xffffd864ffffdd00}, + {0x9831bc37, 0xffffd864ffffdd01}, + {0x9831bc38, 0xffffd864ffffdd02}, + {0x9831bc39, 0xffffd864ffffdd03}, + {0x9831bd30, 0xffffd864ffffdd04}, + {0x9831bd31, 0xffffd864ffffdd05}, + {0x9831bd32, 0xffffd864ffffdd06}, + {0x9831bd33, 0xffffd864ffffdd07}, + {0x9831bd34, 0xffffd864ffffdd08}, + {0x9831bd35, 0xffffd864ffffdd09}, + {0x9831bd36, 0xffffd864ffffdd0a}, + {0x9831bd37, 0xffffd864ffffdd0b}, + {0x9831bd38, 0xffffd864ffffdd0c}, + {0x9831bd39, 0xffffd864ffffdd0d}, + {0x9831be30, 0xffffd864ffffdd0e}, + {0x9831be31, 0xffffd864ffffdd0f}, + {0x9831be32, 0xffffd864ffffdd10}, + {0x9831be33, 0xffffd864ffffdd11}, + {0x9831be34, 0xffffd864ffffdd12}, + {0x9831be35, 0xffffd864ffffdd13}, + {0x9831be36, 0xffffd864ffffdd14}, + {0x9831be37, 0xffffd864ffffdd15}, + {0x9831be38, 0xffffd864ffffdd16}, + {0x9831be39, 0xffffd864ffffdd17}, + {0x9831bf30, 0xffffd864ffffdd18}, + {0x9831bf31, 0xffffd864ffffdd19}, + {0x9831bf32, 0xffffd864ffffdd1a}, + {0x9831bf33, 0xffffd864ffffdd1b}, + {0x9831bf34, 0xffffd864ffffdd1c}, + {0x9831bf35, 0xffffd864ffffdd1d}, + {0x9831bf36, 0xffffd864ffffdd1e}, + {0x9831bf37, 0xffffd864ffffdd1f}, + {0x9831bf38, 0xffffd864ffffdd20}, + {0x9831bf39, 0xffffd864ffffdd21}, + {0x9831c030, 0xffffd864ffffdd22}, + {0x9831c031, 0xffffd864ffffdd23}, + {0x9831c032, 0xffffd864ffffdd24}, + {0x9831c033, 0xffffd864ffffdd25}, + {0x9831c034, 0xffffd864ffffdd26}, + {0x9831c035, 0xffffd864ffffdd27}, + {0x9831c036, 0xffffd864ffffdd28}, + {0x9831c037, 0xffffd864ffffdd29}, + {0x9831c038, 0xffffd864ffffdd2a}, + {0x9831c039, 0xffffd864ffffdd2b}, + {0x9831c130, 0xffffd864ffffdd2c}, + {0x9831c131, 0xffffd864ffffdd2d}, + {0x9831c132, 0xffffd864ffffdd2e}, + {0x9831c133, 0xffffd864ffffdd2f}, + {0x9831c134, 0xffffd864ffffdd30}, + {0x9831c135, 0xffffd864ffffdd31}, + {0x9831c136, 0xffffd864ffffdd32}, + {0x9831c137, 0xffffd864ffffdd33}, + {0x9831c138, 0xffffd864ffffdd34}, + {0x9831c139, 0xffffd864ffffdd35}, + {0x9831c230, 0xffffd864ffffdd36}, + {0x9831c231, 0xffffd864ffffdd37}, + {0x9831c232, 0xffffd864ffffdd38}, + {0x9831c233, 0xffffd864ffffdd39}, + {0x9831c234, 0xffffd864ffffdd3a}, + {0x9831c235, 0xffffd864ffffdd3b}, + {0x9831c236, 0xffffd864ffffdd3c}, + {0x9831c237, 0xffffd864ffffdd3d}, + {0x9831c238, 0xffffd864ffffdd3e}, + {0x9831c239, 0xffffd864ffffdd3f}, + {0x9831c330, 0xffffd864ffffdd40}, + {0x9831c331, 0xffffd864ffffdd41}, + {0x9831c332, 0xffffd864ffffdd42}, + {0x9831c333, 0xffffd864ffffdd43}, + {0x9831c334, 0xffffd864ffffdd44}, + {0x9831c335, 0xffffd864ffffdd45}, + {0x9831c336, 0xffffd864ffffdd46}, + {0x9831c337, 0xffffd864ffffdd47}, + {0x9831c338, 0xffffd864ffffdd48}, + {0x9831c339, 0xffffd864ffffdd49}, + {0x9831c430, 0xffffd864ffffdd4a}, + {0x9831c431, 0xffffd864ffffdd4b}, + {0x9831c432, 0xffffd864ffffdd4c}, + {0x9831c433, 0xffffd864ffffdd4d}, + {0x9831c434, 0xffffd864ffffdd4e}, + {0x9831c435, 0xffffd864ffffdd4f}, + {0x9831c436, 0xffffd864ffffdd50}, + {0x9831c437, 0xffffd864ffffdd51}, + {0x9831c438, 0xffffd864ffffdd52}, + {0x9831c439, 0xffffd864ffffdd53}, + {0x9831c530, 0xffffd864ffffdd54}, + {0x9831c531, 0xffffd864ffffdd55}, + {0x9831c532, 0xffffd864ffffdd56}, + {0x9831c533, 0xffffd864ffffdd57}, + {0x9831c534, 0xffffd864ffffdd58}, + {0x9831c535, 0xffffd864ffffdd59}, + {0x9831c536, 0xffffd864ffffdd5a}, + {0x9831c537, 0xffffd864ffffdd5b}, + {0x9831c538, 0xffffd864ffffdd5c}, + {0x9831c539, 0xffffd864ffffdd5d}, + {0x9831c630, 0xffffd864ffffdd5e}, + {0x9831c631, 0xffffd864ffffdd5f}, + {0x9831c632, 0xffffd864ffffdd60}, + {0x9831c633, 0xffffd864ffffdd61}, + {0x9831c634, 0xffffd864ffffdd62}, + {0x9831c635, 0xffffd864ffffdd63}, + {0x9831c636, 0xffffd864ffffdd64}, + {0x9831c637, 0xffffd864ffffdd65}, + {0x9831c638, 0xffffd864ffffdd66}, + {0x9831c639, 0xffffd864ffffdd67}, + {0x9831c730, 0xffffd864ffffdd68}, + {0x9831c731, 0xffffd864ffffdd69}, + {0x9831c732, 0xffffd864ffffdd6a}, + {0x9831c733, 0xffffd864ffffdd6b}, + {0x9831c734, 0xffffd864ffffdd6c}, + {0x9831c735, 0xffffd864ffffdd6d}, + {0x9831c736, 0xffffd864ffffdd6e}, + {0x9831c737, 0xffffd864ffffdd6f}, + {0x9831c738, 0xffffd864ffffdd70}, + {0x9831c739, 0xffffd864ffffdd71}, + {0x9831c830, 0xffffd864ffffdd72}, + {0x9831c831, 0xffffd864ffffdd73}, + {0x9831c832, 0xffffd864ffffdd74}, + {0x9831c833, 0xffffd864ffffdd75}, + {0x9831c834, 0xffffd864ffffdd76}, + {0x9831c835, 0xffffd864ffffdd77}, + {0x9831c836, 0xffffd864ffffdd78}, + {0x9831c837, 0xffffd864ffffdd79}, + {0x9831c838, 0xffffd864ffffdd7a}, + {0x9831c839, 0xffffd864ffffdd7b}, + {0x9831c930, 0xffffd864ffffdd7c}, + {0x9831c931, 0xffffd864ffffdd7d}, + {0x9831c932, 0xffffd864ffffdd7e}, + {0x9831c933, 0xffffd864ffffdd7f}, + {0x9831c934, 0xffffd864ffffdd80}, + {0x9831c935, 0xffffd864ffffdd81}, + {0x9831c936, 0xffffd864ffffdd82}, + {0x9831c937, 0xffffd864ffffdd83}, + {0x9831c938, 0xffffd864ffffdd84}, + {0x9831c939, 0xffffd864ffffdd85}, + {0x9831ca30, 0xffffd864ffffdd86}, + {0x9831ca31, 0xffffd864ffffdd87}, + {0x9831ca32, 0xffffd864ffffdd88}, + {0x9831ca33, 0xffffd864ffffdd89}, + {0x9831ca34, 0xffffd864ffffdd8a}, + {0x9831ca35, 0xffffd864ffffdd8b}, + {0x9831ca36, 0xffffd864ffffdd8c}, + {0x9831ca37, 0xffffd864ffffdd8d}, + {0x9831ca38, 0xffffd864ffffdd8e}, + {0x9831ca39, 0xffffd864ffffdd8f}, + {0x9831cb30, 0xffffd864ffffdd90}, + {0x9831cb31, 0xffffd864ffffdd91}, + {0x9831cb32, 0xffffd864ffffdd92}, + {0x9831cb33, 0xffffd864ffffdd93}, + {0x9831cb34, 0xffffd864ffffdd94}, + {0x9831cb35, 0xffffd864ffffdd95}, + {0x9831cb36, 0xffffd864ffffdd96}, + {0x9831cb37, 0xffffd864ffffdd97}, + {0x9831cb38, 0xffffd864ffffdd98}, + {0x9831cb39, 0xffffd864ffffdd99}, + {0x9831cc30, 0xffffd864ffffdd9a}, + {0x9831cc31, 0xffffd864ffffdd9b}, + {0x9831cc32, 0xffffd864ffffdd9c}, + {0x9831cc33, 0xffffd864ffffdd9d}, + {0x9831cc34, 0xffffd864ffffdd9e}, + {0x9831cc35, 0xffffd864ffffdd9f}, + {0x9831cc36, 0xffffd864ffffdda0}, + {0x9831cc37, 0xffffd864ffffdda1}, + {0x9831cc38, 0xffffd864ffffdda2}, + {0x9831cc39, 0xffffd864ffffdda3}, + {0x9831cd30, 0xffffd864ffffdda4}, + {0x9831cd31, 0xffffd864ffffdda5}, + {0x9831cd32, 0xffffd864ffffdda6}, + {0x9831cd33, 0xffffd864ffffdda7}, + {0x9831cd34, 0xffffd864ffffdda8}, + {0x9831cd35, 0xffffd864ffffdda9}, + {0x9831cd36, 0xffffd864ffffddaa}, + {0x9831cd37, 0xffffd864ffffddab}, + {0x9831cd38, 0xffffd864ffffddac}, + {0x9831cd39, 0xffffd864ffffddad}, + {0x9831ce30, 0xffffd864ffffddae}, + {0x9831ce31, 0xffffd864ffffddaf}, + {0x9831ce32, 0xffffd864ffffddb0}, + {0x9831ce33, 0xffffd864ffffddb1}, + {0x9831ce34, 0xffffd864ffffddb2}, + {0x9831ce35, 0xffffd864ffffddb3}, + {0x9831ce36, 0xffffd864ffffddb4}, + {0x9831ce37, 0xffffd864ffffddb5}, + {0x9831ce38, 0xffffd864ffffddb6}, + {0x9831ce39, 0xffffd864ffffddb7}, + {0x9831cf30, 0xffffd864ffffddb8}, + {0x9831cf31, 0xffffd864ffffddb9}, + {0x9831cf32, 0xffffd864ffffddba}, + {0x9831cf33, 0xffffd864ffffddbb}, + {0x9831cf34, 0xffffd864ffffddbc}, + {0x9831cf35, 0xffffd864ffffddbd}, + {0x9831cf36, 0xffffd864ffffddbe}, + {0x9831cf37, 0xffffd864ffffddbf}, + {0x9831cf38, 0xffffd864ffffddc0}, + {0x9831cf39, 0xffffd864ffffddc1}, + {0x9831d030, 0xffffd864ffffddc2}, + {0x9831d031, 0xffffd864ffffddc3}, + {0x9831d032, 0xffffd864ffffddc4}, + {0x9831d033, 0xffffd864ffffddc5}, + {0x9831d034, 0xffffd864ffffddc6}, + {0x9831d035, 0xffffd864ffffddc7}, + {0x9831d036, 0xffffd864ffffddc8}, + {0x9831d037, 0xffffd864ffffddc9}, + {0x9831d038, 0xffffd864ffffddca}, + {0x9831d039, 0xffffd864ffffddcb}, + {0x9831d130, 0xffffd864ffffddcc}, + {0x9831d131, 0xffffd864ffffddcd}, + {0x9831d132, 0xffffd864ffffddce}, + {0x9831d133, 0xffffd864ffffddcf}, + {0x9831d134, 0xffffd864ffffddd0}, + {0x9831d135, 0xffffd864ffffddd1}, + {0x9831d136, 0xffffd864ffffddd2}, + {0x9831d137, 0xffffd864ffffddd3}, + {0x9831d138, 0xffffd864ffffddd4}, + {0x9831d139, 0xffffd864ffffddd5}, + {0x9831d230, 0xffffd864ffffddd6}, + {0x9831d231, 0xffffd864ffffddd7}, + {0x9831d232, 0xffffd864ffffddd8}, + {0x9831d233, 0xffffd864ffffddd9}, + {0x9831d234, 0xffffd864ffffddda}, + {0x9831d235, 0xffffd864ffffdddb}, + {0x9831d236, 0xffffd864ffffdddc}, + {0x9831d237, 0xffffd864ffffdddd}, + {0x9831d238, 0xffffd864ffffddde}, + {0x9831d239, 0xffffd864ffffdddf}, + {0x9831d330, 0xffffd864ffffdde0}, + {0x9831d331, 0xffffd864ffffdde1}, + {0x9831d332, 0xffffd864ffffdde2}, + {0x9831d333, 0xffffd864ffffdde3}, + {0x9831d334, 0xffffd864ffffdde4}, + {0x9831d335, 0xffffd864ffffdde5}, + {0x9831d336, 0xffffd864ffffdde6}, + {0x9831d337, 0xffffd864ffffdde7}, + {0x9831d338, 0xffffd864ffffdde8}, + {0x9831d339, 0xffffd864ffffdde9}, + {0x9831d430, 0xffffd864ffffddea}, + {0x9831d431, 0xffffd864ffffddeb}, + {0x9831d432, 0xffffd864ffffddec}, + {0x9831d433, 0xffffd864ffffdded}, + {0x9831d434, 0xffffd864ffffddee}, + {0x9831d435, 0xffffd864ffffddef}, + {0x9831d436, 0xffffd864ffffddf0}, + {0x9831d437, 0xffffd864ffffddf1}, + {0x9831d438, 0xffffd864ffffddf2}, + {0x9831d439, 0xffffd864ffffddf3}, + {0x9831d530, 0xffffd864ffffddf4}, + {0x9831d531, 0xffffd864ffffddf5}, + {0x9831d532, 0xffffd864ffffddf6}, + {0x9831d533, 0xffffd864ffffddf7}, + {0x9831d534, 0xffffd864ffffddf8}, + {0x9831d535, 0xffffd864ffffddf9}, + {0x9831d536, 0xffffd864ffffddfa}, + {0x9831d537, 0xffffd864ffffddfb}, + {0x9831d538, 0xffffd864ffffddfc}, + {0x9831d539, 0xffffd864ffffddfd}, + {0x9831d630, 0xffffd864ffffddfe}, + {0x9831d631, 0xffffd864ffffddff}, + {0x9831d632, 0xffffd864ffffde00}, + {0x9831d633, 0xffffd864ffffde01}, + {0x9831d634, 0xffffd864ffffde02}, + {0x9831d635, 0xffffd864ffffde03}, + {0x9831d636, 0xffffd864ffffde04}, + {0x9831d637, 0xffffd864ffffde05}, + {0x9831d638, 0xffffd864ffffde06}, + {0x9831d639, 0xffffd864ffffde07}, + {0x9831d730, 0xffffd864ffffde08}, + {0x9831d731, 0xffffd864ffffde09}, + {0x9831d732, 0xffffd864ffffde0a}, + {0x9831d733, 0xffffd864ffffde0b}, + {0x9831d734, 0xffffd864ffffde0c}, + {0x9831d735, 0xffffd864ffffde0d}, + {0x9831d736, 0xffffd864ffffde0e}, + {0x9831d737, 0xffffd864ffffde0f}, + {0x9831d738, 0xffffd864ffffde10}, + {0x9831d739, 0xffffd864ffffde11}, + {0x9831d830, 0xffffd864ffffde12}, + {0x9831d831, 0xffffd864ffffde13}, + {0x9831d832, 0xffffd864ffffde14}, + {0x9831d833, 0xffffd864ffffde15}, + {0x9831d834, 0xffffd864ffffde16}, + {0x9831d835, 0xffffd864ffffde17}, + {0x9831d836, 0xffffd864ffffde18}, + {0x9831d837, 0xffffd864ffffde19}, + {0x9831d838, 0xffffd864ffffde1a}, + {0x9831d839, 0xffffd864ffffde1b}, + {0x9831d930, 0xffffd864ffffde1c}, + {0x9831d931, 0xffffd864ffffde1d}, + {0x9831d932, 0xffffd864ffffde1e}, + {0x9831d933, 0xffffd864ffffde1f}, + {0x9831d934, 0xffffd864ffffde20}, + {0x9831d935, 0xffffd864ffffde21}, + {0x9831d936, 0xffffd864ffffde22}, + {0x9831d937, 0xffffd864ffffde23}, + {0x9831d938, 0xffffd864ffffde24}, + {0x9831d939, 0xffffd864ffffde25}, + {0x9831da30, 0xffffd864ffffde26}, + {0x9831da31, 0xffffd864ffffde27}, + {0x9831da32, 0xffffd864ffffde28}, + {0x9831da33, 0xffffd864ffffde29}, + {0x9831da34, 0xffffd864ffffde2a}, + {0x9831da35, 0xffffd864ffffde2b}, + {0x9831da36, 0xffffd864ffffde2c}, + {0x9831da37, 0xffffd864ffffde2d}, + {0x9831da38, 0xffffd864ffffde2e}, + {0x9831da39, 0xffffd864ffffde2f}, + {0x9831db30, 0xffffd864ffffde30}, + {0x9831db31, 0xffffd864ffffde31}, + {0x9831db32, 0xffffd864ffffde32}, + {0x9831db33, 0xffffd864ffffde33}, + {0x9831db34, 0xffffd864ffffde34}, + {0x9831db35, 0xffffd864ffffde35}, + {0x9831db36, 0xffffd864ffffde36}, + {0x9831db37, 0xffffd864ffffde37}, + {0x9831db38, 0xffffd864ffffde38}, + {0x9831db39, 0xffffd864ffffde39}, + {0x9831dc30, 0xffffd864ffffde3a}, + {0x9831dc31, 0xffffd864ffffde3b}, + {0x9831dc32, 0xffffd864ffffde3c}, + {0x9831dc33, 0xffffd864ffffde3d}, + {0x9831dc34, 0xffffd864ffffde3e}, + {0x9831dc35, 0xffffd864ffffde3f}, + {0x9831dc36, 0xffffd864ffffde40}, + {0x9831dc37, 0xffffd864ffffde41}, + {0x9831dc38, 0xffffd864ffffde42}, + {0x9831dc39, 0xffffd864ffffde43}, + {0x9831dd30, 0xffffd864ffffde44}, + {0x9831dd31, 0xffffd864ffffde45}, + {0x9831dd32, 0xffffd864ffffde46}, + {0x9831dd33, 0xffffd864ffffde47}, + {0x9831dd34, 0xffffd864ffffde48}, + {0x9831dd35, 0xffffd864ffffde49}, + {0x9831dd36, 0xffffd864ffffde4a}, + {0x9831dd37, 0xffffd864ffffde4b}, + {0x9831dd38, 0xffffd864ffffde4c}, + {0x9831dd39, 0xffffd864ffffde4d}, + {0x9831de30, 0xffffd864ffffde4e}, + {0x9831de31, 0xffffd864ffffde4f}, + {0x9831de32, 0xffffd864ffffde50}, + {0x9831de33, 0xffffd864ffffde51}, + {0x9831de34, 0xffffd864ffffde52}, + {0x9831de35, 0xffffd864ffffde53}, + {0x9831de36, 0xffffd864ffffde54}, + {0x9831de37, 0xffffd864ffffde55}, + {0x9831de38, 0xffffd864ffffde56}, + {0x9831de39, 0xffffd864ffffde57}, + {0x9831df30, 0xffffd864ffffde58}, + {0x9831df31, 0xffffd864ffffde59}, + {0x9831df32, 0xffffd864ffffde5a}, + {0x9831df33, 0xffffd864ffffde5b}, + {0x9831df34, 0xffffd864ffffde5c}, + {0x9831df35, 0xffffd864ffffde5d}, + {0x9831df36, 0xffffd864ffffde5e}, + {0x9831df37, 0xffffd864ffffde5f}, + {0x9831df38, 0xffffd864ffffde60}, + {0x9831df39, 0xffffd864ffffde61}, + {0x9831e030, 0xffffd864ffffde62}, + {0x9831e031, 0xffffd864ffffde63}, + {0x9831e032, 0xffffd864ffffde64}, + {0x9831e033, 0xffffd864ffffde65}, + {0x9831e034, 0xffffd864ffffde66}, + {0x9831e035, 0xffffd864ffffde67}, + {0x9831e036, 0xffffd864ffffde68}, + {0x9831e037, 0xffffd864ffffde69}, + {0x9831e038, 0xffffd864ffffde6a}, + {0x9831e039, 0xffffd864ffffde6b}, + {0x9831e130, 0xffffd864ffffde6c}, + {0x9831e131, 0xffffd864ffffde6d}, + {0x9831e132, 0xffffd864ffffde6e}, + {0x9831e133, 0xffffd864ffffde6f}, + {0x9831e134, 0xffffd864ffffde70}, + {0x9831e135, 0xffffd864ffffde71}, + {0x9831e136, 0xffffd864ffffde72}, + {0x9831e137, 0xffffd864ffffde73}, + {0x9831e138, 0xffffd864ffffde74}, + {0x9831e139, 0xffffd864ffffde75}, + {0x9831e230, 0xffffd864ffffde76}, + {0x9831e231, 0xffffd864ffffde77}, + {0x9831e232, 0xffffd864ffffde78}, + {0x9831e233, 0xffffd864ffffde79}, + {0x9831e234, 0xffffd864ffffde7a}, + {0x9831e235, 0xffffd864ffffde7b}, + {0x9831e236, 0xffffd864ffffde7c}, + {0x9831e237, 0xffffd864ffffde7d}, + {0x9831e238, 0xffffd864ffffde7e}, + {0x9831e239, 0xffffd864ffffde7f}, + {0x9831e330, 0xffffd864ffffde80}, + {0x9831e331, 0xffffd864ffffde81}, + {0x9831e332, 0xffffd864ffffde82}, + {0x9831e333, 0xffffd864ffffde83}, + {0x9831e334, 0xffffd864ffffde84}, + {0x9831e335, 0xffffd864ffffde85}, + {0x9831e336, 0xffffd864ffffde86}, + {0x9831e337, 0xffffd864ffffde87}, + {0x9831e338, 0xffffd864ffffde88}, + {0x9831e339, 0xffffd864ffffde89}, + {0x9831e430, 0xffffd864ffffde8a}, + {0x9831e431, 0xffffd864ffffde8b}, + {0x9831e432, 0xffffd864ffffde8c}, + {0x9831e433, 0xffffd864ffffde8d}, + {0x9831e434, 0xffffd864ffffde8e}, + {0x9831e435, 0xffffd864ffffde8f}, + {0x9831e436, 0xffffd864ffffde90}, + {0x9831e437, 0xffffd864ffffde91}, + {0x9831e438, 0xffffd864ffffde92}, + {0x9831e439, 0xffffd864ffffde93}, + {0x9831e530, 0xffffd864ffffde94}, + {0x9831e531, 0xffffd864ffffde95}, + {0x9831e532, 0xffffd864ffffde96}, + {0x9831e533, 0xffffd864ffffde97}, + {0x9831e534, 0xffffd864ffffde98}, + {0x9831e535, 0xffffd864ffffde99}, + {0x9831e536, 0xffffd864ffffde9a}, + {0x9831e537, 0xffffd864ffffde9b}, + {0x9831e538, 0xffffd864ffffde9c}, + {0x9831e539, 0xffffd864ffffde9d}, + {0x9831e630, 0xffffd864ffffde9e}, + {0x9831e631, 0xffffd864ffffde9f}, + {0x9831e632, 0xffffd864ffffdea0}, + {0x9831e633, 0xffffd864ffffdea1}, + {0x9831e634, 0xffffd864ffffdea2}, + {0x9831e635, 0xffffd864ffffdea3}, + {0x9831e636, 0xffffd864ffffdea4}, + {0x9831e637, 0xffffd864ffffdea5}, + {0x9831e638, 0xffffd864ffffdea6}, + {0x9831e639, 0xffffd864ffffdea7}, + {0x9831e730, 0xffffd864ffffdea8}, + {0x9831e731, 0xffffd864ffffdea9}, + {0x9831e732, 0xffffd864ffffdeaa}, + {0x9831e733, 0xffffd864ffffdeab}, + {0x9831e734, 0xffffd864ffffdeac}, + {0x9831e735, 0xffffd864ffffdead}, + {0x9831e736, 0xffffd864ffffdeae}, + {0x9831e737, 0xffffd864ffffdeaf}, + {0x9831e738, 0xffffd864ffffdeb0}, + {0x9831e739, 0xffffd864ffffdeb1}, + {0x9831e830, 0xffffd864ffffdeb2}, + {0x9831e831, 0xffffd864ffffdeb3}, + {0x9831e832, 0xffffd864ffffdeb4}, + {0x9831e833, 0xffffd864ffffdeb5}, + {0x9831e834, 0xffffd864ffffdeb6}, + {0x9831e835, 0xffffd864ffffdeb7}, + {0x9831e836, 0xffffd864ffffdeb8}, + {0x9831e837, 0xffffd864ffffdeb9}, + {0x9831e838, 0xffffd864ffffdeba}, + {0x9831e839, 0xffffd864ffffdebb}, + {0x9831e930, 0xffffd864ffffdebc}, + {0x9831e931, 0xffffd864ffffdebd}, + {0x9831e932, 0xffffd864ffffdebe}, + {0x9831e933, 0xffffd864ffffdebf}, + {0x9831e934, 0xffffd864ffffdec0}, + {0x9831e935, 0xffffd864ffffdec1}, + {0x9831e936, 0xffffd864ffffdec2}, + {0x9831e937, 0xffffd864ffffdec3}, + {0x9831e938, 0xffffd864ffffdec4}, + {0x9831e939, 0xffffd864ffffdec5}, + {0x9831ea30, 0xffffd864ffffdec6}, + {0x9831ea31, 0xffffd864ffffdec7}, + {0x9831ea32, 0xffffd864ffffdec8}, + {0x9831ea33, 0xffffd864ffffdec9}, + {0x9831ea34, 0xffffd864ffffdeca}, + {0x9831ea35, 0xffffd864ffffdecb}, + {0x9831ea36, 0xffffd864ffffdecc}, + {0x9831ea37, 0xffffd864ffffdecd}, + {0x9831ea38, 0xffffd864ffffdece}, + {0x9831ea39, 0xffffd864ffffdecf}, + {0x9831eb30, 0xffffd864ffffded0}, + {0x9831eb31, 0xffffd864ffffded1}, + {0x9831eb32, 0xffffd864ffffded2}, + {0x9831eb33, 0xffffd864ffffded3}, + {0x9831eb34, 0xffffd864ffffded4}, + {0x9831eb35, 0xffffd864ffffded5}, + {0x9831eb36, 0xffffd864ffffded6}, + {0x9831eb37, 0xffffd864ffffded7}, + {0x9831eb38, 0xffffd864ffffded8}, + {0x9831eb39, 0xffffd864ffffded9}, + {0x9831ec30, 0xffffd864ffffdeda}, + {0x9831ec31, 0xffffd864ffffdedb}, + {0x9831ec32, 0xffffd864ffffdedc}, + {0x9831ec33, 0xffffd864ffffdedd}, + {0x9831ec34, 0xffffd864ffffdede}, + {0x9831ec35, 0xffffd864ffffdedf}, + {0x9831ec36, 0xffffd864ffffdee0}, + {0x9831ec37, 0xffffd864ffffdee1}, + {0x9831ec38, 0xffffd864ffffdee2}, + {0x9831ec39, 0xffffd864ffffdee3}, + {0x9831ed30, 0xffffd864ffffdee4}, + {0x9831ed31, 0xffffd864ffffdee5}, + {0x9831ed32, 0xffffd864ffffdee6}, + {0x9831ed33, 0xffffd864ffffdee7}, + {0x9831ed34, 0xffffd864ffffdee8}, + {0x9831ed35, 0xffffd864ffffdee9}, + {0x9831ed36, 0xffffd864ffffdeea}, + {0x9831ed37, 0xffffd864ffffdeeb}, + {0x9831ed38, 0xffffd864ffffdeec}, + {0x9831ed39, 0xffffd864ffffdeed}, + {0x9831ee30, 0xffffd864ffffdeee}, + {0x9831ee31, 0xffffd864ffffdeef}, + {0x9831ee32, 0xffffd864ffffdef0}, + {0x9831ee33, 0xffffd864ffffdef1}, + {0x9831ee34, 0xffffd864ffffdef2}, + {0x9831ee35, 0xffffd864ffffdef3}, + {0x9831ee36, 0xffffd864ffffdef4}, + {0x9831ee37, 0xffffd864ffffdef5}, + {0x9831ee38, 0xffffd864ffffdef6}, + {0x9831ee39, 0xffffd864ffffdef7}, + {0x9831ef30, 0xffffd864ffffdef8}, + {0x9831ef31, 0xffffd864ffffdef9}, + {0x9831ef32, 0xffffd864ffffdefa}, + {0x9831ef33, 0xffffd864ffffdefb}, + {0x9831ef34, 0xffffd864ffffdefc}, + {0x9831ef35, 0xffffd864ffffdefd}, + {0x9831ef36, 0xffffd864ffffdefe}, + {0x9831ef37, 0xffffd864ffffdeff}, + {0x9831ef38, 0xffffd864ffffdf00}, + {0x9831ef39, 0xffffd864ffffdf01}, + {0x9831f030, 0xffffd864ffffdf02}, + {0x9831f031, 0xffffd864ffffdf03}, + {0x9831f032, 0xffffd864ffffdf04}, + {0x9831f033, 0xffffd864ffffdf05}, + {0x9831f034, 0xffffd864ffffdf06}, + {0x9831f035, 0xffffd864ffffdf07}, + {0x9831f036, 0xffffd864ffffdf08}, + {0x9831f037, 0xffffd864ffffdf09}, + {0x9831f038, 0xffffd864ffffdf0a}, + {0x9831f039, 0xffffd864ffffdf0b}, + {0x9831f130, 0xffffd864ffffdf0c}, + {0x9831f131, 0xffffd864ffffdf0d}, + {0x9831f132, 0xffffd864ffffdf0e}, + {0x9831f133, 0xffffd864ffffdf0f}, + {0x9831f134, 0xffffd864ffffdf10}, + {0x9831f135, 0xffffd864ffffdf11}, + {0x9831f136, 0xffffd864ffffdf12}, + {0x9831f137, 0xffffd864ffffdf13}, + {0x9831f138, 0xffffd864ffffdf14}, + {0x9831f139, 0xffffd864ffffdf15}, + {0x9831f230, 0xffffd864ffffdf16}, + {0x9831f231, 0xffffd864ffffdf17}, + {0x9831f232, 0xffffd864ffffdf18}, + {0x9831f233, 0xffffd864ffffdf19}, + {0x9831f234, 0xffffd864ffffdf1a}, + {0x9831f235, 0xffffd864ffffdf1b}, + {0x9831f236, 0xffffd864ffffdf1c}, + {0x9831f237, 0xffffd864ffffdf1d}, + {0x9831f238, 0xffffd864ffffdf1e}, + {0x9831f239, 0xffffd864ffffdf1f}, + {0x9831f330, 0xffffd864ffffdf20}, + {0x9831f331, 0xffffd864ffffdf21}, + {0x9831f332, 0xffffd864ffffdf22}, + {0x9831f333, 0xffffd864ffffdf23}, + {0x9831f334, 0xffffd864ffffdf24}, + {0x9831f335, 0xffffd864ffffdf25}, + {0x9831f336, 0xffffd864ffffdf26}, + {0x9831f337, 0xffffd864ffffdf27}, + {0x9831f338, 0xffffd864ffffdf28}, + {0x9831f339, 0xffffd864ffffdf29}, + {0x9831f430, 0xffffd864ffffdf2a}, + {0x9831f431, 0xffffd864ffffdf2b}, + {0x9831f432, 0xffffd864ffffdf2c}, + {0x9831f433, 0xffffd864ffffdf2d}, + {0x9831f434, 0xffffd864ffffdf2e}, + {0x9831f435, 0xffffd864ffffdf2f}, + {0x9831f436, 0xffffd864ffffdf30}, + {0x9831f437, 0xffffd864ffffdf31}, + {0x9831f438, 0xffffd864ffffdf32}, + {0x9831f439, 0xffffd864ffffdf33}, + {0x9831f530, 0xffffd864ffffdf34}, + {0x9831f531, 0xffffd864ffffdf35}, + {0x9831f532, 0xffffd864ffffdf36}, + {0x9831f533, 0xffffd864ffffdf37}, + {0x9831f534, 0xffffd864ffffdf38}, + {0x9831f535, 0xffffd864ffffdf39}, + {0x9831f536, 0xffffd864ffffdf3a}, + {0x9831f537, 0xffffd864ffffdf3b}, + {0x9831f538, 0xffffd864ffffdf3c}, + {0x9831f539, 0xffffd864ffffdf3d}, + {0x9831f630, 0xffffd864ffffdf3e}, + {0x9831f631, 0xffffd864ffffdf3f}, + {0x9831f632, 0xffffd864ffffdf40}, + {0x9831f633, 0xffffd864ffffdf41}, + {0x9831f634, 0xffffd864ffffdf42}, + {0x9831f635, 0xffffd864ffffdf43}, + {0x9831f636, 0xffffd864ffffdf44}, + {0x9831f637, 0xffffd864ffffdf45}, + {0x9831f638, 0xffffd864ffffdf46}, + {0x9831f639, 0xffffd864ffffdf47}, + {0x9831f730, 0xffffd864ffffdf48}, + {0x9831f731, 0xffffd864ffffdf49}, + {0x9831f732, 0xffffd864ffffdf4a}, + {0x9831f733, 0xffffd864ffffdf4b}, + {0x9831f734, 0xffffd864ffffdf4c}, + {0x9831f735, 0xffffd864ffffdf4d}, + {0x9831f736, 0xffffd864ffffdf4e}, + {0x9831f737, 0xffffd864ffffdf4f}, + {0x9831f738, 0xffffd864ffffdf50}, + {0x9831f739, 0xffffd864ffffdf51}, + {0x9831f830, 0xffffd864ffffdf52}, + {0x9831f831, 0xffffd864ffffdf53}, + {0x9831f832, 0xffffd864ffffdf54}, + {0x9831f833, 0xffffd864ffffdf55}, + {0x9831f834, 0xffffd864ffffdf56}, + {0x9831f835, 0xffffd864ffffdf57}, + {0x9831f836, 0xffffd864ffffdf58}, + {0x9831f837, 0xffffd864ffffdf59}, + {0x9831f838, 0xffffd864ffffdf5a}, + {0x9831f839, 0xffffd864ffffdf5b}, + {0x9831f930, 0xffffd864ffffdf5c}, + {0x9831f931, 0xffffd864ffffdf5d}, + {0x9831f932, 0xffffd864ffffdf5e}, + {0x9831f933, 0xffffd864ffffdf5f}, + {0x9831f934, 0xffffd864ffffdf60}, + {0x9831f935, 0xffffd864ffffdf61}, + {0x9831f936, 0xffffd864ffffdf62}, + {0x9831f937, 0xffffd864ffffdf63}, + {0x9831f938, 0xffffd864ffffdf64}, + {0x9831f939, 0xffffd864ffffdf65}, + {0x9831fa30, 0xffffd864ffffdf66}, + {0x9831fa31, 0xffffd864ffffdf67}, + {0x9831fa32, 0xffffd864ffffdf68}, + {0x9831fa33, 0xffffd864ffffdf69}, + {0x9831fa34, 0xffffd864ffffdf6a}, + {0x9831fa35, 0xffffd864ffffdf6b}, + {0x9831fa36, 0xffffd864ffffdf6c}, + {0x9831fa37, 0xffffd864ffffdf6d}, + {0x9831fa38, 0xffffd864ffffdf6e}, + {0x9831fa39, 0xffffd864ffffdf6f}, + {0x9831fb30, 0xffffd864ffffdf70}, + {0x9831fb31, 0xffffd864ffffdf71}, + {0x9831fb32, 0xffffd864ffffdf72}, + {0x9831fb33, 0xffffd864ffffdf73}, + {0x9831fb34, 0xffffd864ffffdf74}, + {0x9831fb35, 0xffffd864ffffdf75}, + {0x9831fb36, 0xffffd864ffffdf76}, + {0x9831fb37, 0xffffd864ffffdf77}, + {0x9831fb38, 0xffffd864ffffdf78}, + {0x9831fb39, 0xffffd864ffffdf79}, + {0x9831fc30, 0xffffd864ffffdf7a}, + {0x9831fc31, 0xffffd864ffffdf7b}, + {0x9831fc32, 0xffffd864ffffdf7c}, + {0x9831fc33, 0xffffd864ffffdf7d}, + {0x9831fc34, 0xffffd864ffffdf7e}, + {0x9831fc35, 0xffffd864ffffdf7f}, + {0x9831fc36, 0xffffd864ffffdf80}, + {0x9831fc37, 0xffffd864ffffdf81}, + {0x9831fc38, 0xffffd864ffffdf82}, + {0x9831fc39, 0xffffd864ffffdf83}, + {0x9831fd30, 0xffffd864ffffdf84}, + {0x9831fd31, 0xffffd864ffffdf85}, + {0x9831fd32, 0xffffd864ffffdf86}, + {0x9831fd33, 0xffffd864ffffdf87}, + {0x9831fd34, 0xffffd864ffffdf88}, + {0x9831fd35, 0xffffd864ffffdf89}, + {0x9831fd36, 0xffffd864ffffdf8a}, + {0x9831fd37, 0xffffd864ffffdf8b}, + {0x9831fd38, 0xffffd864ffffdf8c}, + {0x9831fd39, 0xffffd864ffffdf8d}, + {0x9831fe30, 0xffffd864ffffdf8e}, + {0x9831fe31, 0xffffd864ffffdf8f}, + {0x9831fe32, 0xffffd864ffffdf90}, + {0x9831fe33, 0xffffd864ffffdf91}, + {0x9831fe34, 0xffffd864ffffdf92}, + {0x9831fe35, 0xffffd864ffffdf93}, + {0x9831fe36, 0xffffd864ffffdf94}, + {0x9831fe37, 0xffffd864ffffdf95}, + {0x9831fe38, 0xffffd864ffffdf96}, + {0x9831fe39, 0xffffd864ffffdf97}, + {0x98328130, 0xffffd864ffffdf98}, + {0x98328131, 0xffffd864ffffdf99}, + {0x98328132, 0xffffd864ffffdf9a}, + {0x98328133, 0xffffd864ffffdf9b}, + {0x98328134, 0xffffd864ffffdf9c}, + {0x98328135, 0xffffd864ffffdf9d}, + {0x98328136, 0xffffd864ffffdf9e}, + {0x98328137, 0xffffd864ffffdf9f}, + {0x98328138, 0xffffd864ffffdfa0}, + {0x98328139, 0xffffd864ffffdfa1}, + {0x98328230, 0xffffd864ffffdfa2}, + {0x98328231, 0xffffd864ffffdfa3}, + {0x98328232, 0xffffd864ffffdfa4}, + {0x98328233, 0xffffd864ffffdfa5}, + {0x98328234, 0xffffd864ffffdfa6}, + {0x98328235, 0xffffd864ffffdfa7}, + {0x98328236, 0xffffd864ffffdfa8}, + {0x98328237, 0xffffd864ffffdfa9}, + {0x98328238, 0xffffd864ffffdfaa}, + {0x98328239, 0xffffd864ffffdfab}, + {0x98328330, 0xffffd864ffffdfac}, + {0x98328331, 0xffffd864ffffdfad}, + {0x98328332, 0xffffd864ffffdfae}, + {0x98328333, 0xffffd864ffffdfaf}, + {0x98328334, 0xffffd864ffffdfb0}, + {0x98328335, 0xffffd864ffffdfb1}, + {0x98328336, 0xffffd864ffffdfb2}, + {0x98328337, 0xffffd864ffffdfb3}, + {0x98328338, 0xffffd864ffffdfb4}, + {0x98328339, 0xffffd864ffffdfb5}, + {0x98328430, 0xffffd864ffffdfb6}, + {0x98328431, 0xffffd864ffffdfb7}, + {0x98328432, 0xffffd864ffffdfb8}, + {0x98328433, 0xffffd864ffffdfb9}, + {0x98328434, 0xffffd864ffffdfba}, + {0x98328435, 0xffffd864ffffdfbb}, + {0x98328436, 0xffffd864ffffdfbc}, + {0x98328437, 0xffffd864ffffdfbd}, + {0x98328438, 0xffffd864ffffdfbe}, + {0x98328439, 0xffffd864ffffdfbf}, + {0x98328530, 0xffffd864ffffdfc0}, + {0x98328531, 0xffffd864ffffdfc1}, + {0x98328532, 0xffffd864ffffdfc2}, + {0x98328533, 0xffffd864ffffdfc3}, + {0x98328534, 0xffffd864ffffdfc4}, + {0x98328535, 0xffffd864ffffdfc5}, + {0x98328536, 0xffffd864ffffdfc6}, + {0x98328537, 0xffffd864ffffdfc7}, + {0x98328538, 0xffffd864ffffdfc8}, + {0x98328539, 0xffffd864ffffdfc9}, + {0x98328630, 0xffffd864ffffdfca}, + {0x98328631, 0xffffd864ffffdfcb}, + {0x98328632, 0xffffd864ffffdfcc}, + {0x98328633, 0xffffd864ffffdfcd}, + {0x98328634, 0xffffd864ffffdfce}, + {0x98328635, 0xffffd864ffffdfcf}, + {0x98328636, 0xffffd864ffffdfd0}, + {0x98328637, 0xffffd864ffffdfd1}, + {0x98328638, 0xffffd864ffffdfd2}, + {0x98328639, 0xffffd864ffffdfd3}, + {0x98328730, 0xffffd864ffffdfd4}, + {0x98328731, 0xffffd864ffffdfd5}, + {0x98328732, 0xffffd864ffffdfd6}, + {0x98328733, 0xffffd864ffffdfd7}, + {0x98328734, 0xffffd864ffffdfd8}, + {0x98328735, 0xffffd864ffffdfd9}, + {0x98328736, 0xffffd864ffffdfda}, + {0x98328737, 0xffffd864ffffdfdb}, + {0x98328738, 0xffffd864ffffdfdc}, + {0x98328739, 0xffffd864ffffdfdd}, + {0x98328830, 0xffffd864ffffdfde}, + {0x98328831, 0xffffd864ffffdfdf}, + {0x98328832, 0xffffd864ffffdfe0}, + {0x98328833, 0xffffd864ffffdfe1}, + {0x98328834, 0xffffd864ffffdfe2}, + {0x98328835, 0xffffd864ffffdfe3}, + {0x98328836, 0xffffd864ffffdfe4}, + {0x98328837, 0xffffd864ffffdfe5}, + {0x98328838, 0xffffd864ffffdfe6}, + {0x98328839, 0xffffd864ffffdfe7}, + {0x98328930, 0xffffd864ffffdfe8}, + {0x98328931, 0xffffd864ffffdfe9}, + {0x98328932, 0xffffd864ffffdfea}, + {0x98328933, 0xffffd864ffffdfeb}, + {0x98328934, 0xffffd864ffffdfec}, + {0x98328935, 0xffffd864ffffdfed}, + {0x98328936, 0xffffd864ffffdfee}, + {0x98328937, 0xffffd864ffffdfef}, + {0x98328938, 0xffffd864ffffdff0}, + {0x98328939, 0xffffd864ffffdff1}, + {0x98328a30, 0xffffd864ffffdff2}, + {0x98328a31, 0xffffd864ffffdff3}, + {0x98328a32, 0xffffd864ffffdff4}, + {0x98328a33, 0xffffd864ffffdff5}, + {0x98328a34, 0xffffd864ffffdff6}, + {0x98328a35, 0xffffd864ffffdff7}, + {0x98328a36, 0xffffd864ffffdff8}, + {0x98328a37, 0xffffd864ffffdff9}, + {0x98328a38, 0xffffd864ffffdffa}, + {0x98328a39, 0xffffd864ffffdffb}, + {0x98328b30, 0xffffd864ffffdffc}, + {0x98328b31, 0xffffd864ffffdffd}, + {0x98328b32, 0xffffd864ffffdffe}, + {0x98328b33, 0xffffd864ffffdfff}, + {0x98328b34, 0xffffd865ffffdc00}, + {0x98328b35, 0xffffd865ffffdc01}, + {0x98328b36, 0xffffd865ffffdc02}, + {0x98328b37, 0xffffd865ffffdc03}, + {0x98328b38, 0xffffd865ffffdc04}, + {0x98328b39, 0xffffd865ffffdc05}, + {0x98328c30, 0xffffd865ffffdc06}, + {0x98328c31, 0xffffd865ffffdc07}, + {0x98328c32, 0xffffd865ffffdc08}, + {0x98328c33, 0xffffd865ffffdc09}, + {0x98328c34, 0xffffd865ffffdc0a}, + {0x98328c35, 0xffffd865ffffdc0b}, + {0x98328c36, 0xffffd865ffffdc0c}, + {0x98328c37, 0xffffd865ffffdc0d}, + {0x98328c38, 0xffffd865ffffdc0e}, + {0x98328c39, 0xffffd865ffffdc0f}, + {0x98328d30, 0xffffd865ffffdc10}, + {0x98328d31, 0xffffd865ffffdc11}, + {0x98328d32, 0xffffd865ffffdc12}, + {0x98328d33, 0xffffd865ffffdc13}, + {0x98328d34, 0xffffd865ffffdc14}, + {0x98328d35, 0xffffd865ffffdc15}, + {0x98328d36, 0xffffd865ffffdc16}, + {0x98328d37, 0xffffd865ffffdc17}, + {0x98328d38, 0xffffd865ffffdc18}, + {0x98328d39, 0xffffd865ffffdc19}, + {0x98328e30, 0xffffd865ffffdc1a}, + {0x98328e31, 0xffffd865ffffdc1b}, + {0x98328e32, 0xffffd865ffffdc1c}, + {0x98328e33, 0xffffd865ffffdc1d}, + {0x98328e34, 0xffffd865ffffdc1e}, + {0x98328e35, 0xffffd865ffffdc1f}, + {0x98328e36, 0xffffd865ffffdc20}, + {0x98328e37, 0xffffd865ffffdc21}, + {0x98328e38, 0xffffd865ffffdc22}, + {0x98328e39, 0xffffd865ffffdc23}, + {0x98328f30, 0xffffd865ffffdc24}, + {0x98328f31, 0xffffd865ffffdc25}, + {0x98328f32, 0xffffd865ffffdc26}, + {0x98328f33, 0xffffd865ffffdc27}, + {0x98328f34, 0xffffd865ffffdc28}, + {0x98328f35, 0xffffd865ffffdc29}, + {0x98328f36, 0xffffd865ffffdc2a}, + {0x98328f37, 0xffffd865ffffdc2b}, + {0x98328f38, 0xffffd865ffffdc2c}, + {0x98328f39, 0xffffd865ffffdc2d}, + {0x98329030, 0xffffd865ffffdc2e}, + {0x98329031, 0xffffd865ffffdc2f}, + {0x98329032, 0xffffd865ffffdc30}, + {0x98329033, 0xffffd865ffffdc31}, + {0x98329034, 0xffffd865ffffdc32}, + {0x98329035, 0xffffd865ffffdc33}, + {0x98329036, 0xffffd865ffffdc34}, + {0x98329037, 0xffffd865ffffdc35}, + {0x98329038, 0xffffd865ffffdc36}, + {0x98329039, 0xffffd865ffffdc37}, + {0x98329130, 0xffffd865ffffdc38}, + {0x98329131, 0xffffd865ffffdc39}, + {0x98329132, 0xffffd865ffffdc3a}, + {0x98329133, 0xffffd865ffffdc3b}, + {0x98329134, 0xffffd865ffffdc3c}, + {0x98329135, 0xffffd865ffffdc3d}, + {0x98329136, 0xffffd865ffffdc3e}, + {0x98329137, 0xffffd865ffffdc3f}, + {0x98329138, 0xffffd865ffffdc40}, + {0x98329139, 0xffffd865ffffdc41}, + {0x98329230, 0xffffd865ffffdc42}, + {0x98329231, 0xffffd865ffffdc43}, + {0x98329232, 0xffffd865ffffdc44}, + {0x98329233, 0xffffd865ffffdc45}, + {0x98329234, 0xffffd865ffffdc46}, + {0x98329235, 0xffffd865ffffdc47}, + {0x98329236, 0xffffd865ffffdc48}, + {0x98329237, 0xffffd865ffffdc49}, + {0x98329238, 0xffffd865ffffdc4a}, + {0x98329239, 0xffffd865ffffdc4b}, + {0x98329330, 0xffffd865ffffdc4c}, + {0x98329331, 0xffffd865ffffdc4d}, + {0x98329332, 0xffffd865ffffdc4e}, + {0x98329333, 0xffffd865ffffdc4f}, + {0x98329334, 0xffffd865ffffdc50}, + {0x98329335, 0xffffd865ffffdc51}, + {0x98329336, 0xffffd865ffffdc52}, + {0x98329337, 0xffffd865ffffdc53}, + {0x98329338, 0xffffd865ffffdc54}, + {0x98329339, 0xffffd865ffffdc55}, + {0x98329430, 0xffffd865ffffdc56}, + {0x98329431, 0xffffd865ffffdc57}, + {0x98329432, 0xffffd865ffffdc58}, + {0x98329433, 0xffffd865ffffdc59}, + {0x98329434, 0xffffd865ffffdc5a}, + {0x98329435, 0xffffd865ffffdc5b}, + {0x98329436, 0xffffd865ffffdc5c}, + {0x98329437, 0xffffd865ffffdc5d}, + {0x98329438, 0xffffd865ffffdc5e}, + {0x98329439, 0xffffd865ffffdc5f}, + {0x98329530, 0xffffd865ffffdc60}, + {0x98329531, 0xffffd865ffffdc61}, + {0x98329532, 0xffffd865ffffdc62}, + {0x98329533, 0xffffd865ffffdc63}, + {0x98329534, 0xffffd865ffffdc64}, + {0x98329535, 0xffffd865ffffdc65}, + {0x98329536, 0xffffd865ffffdc66}, + {0x98329537, 0xffffd865ffffdc67}, + {0x98329538, 0xffffd865ffffdc68}, + {0x98329539, 0xffffd865ffffdc69}, + {0x98329630, 0xffffd865ffffdc6a}, + {0x98329631, 0xffffd865ffffdc6b}, + {0x98329632, 0xffffd865ffffdc6c}, + {0x98329633, 0xffffd865ffffdc6d}, + {0x98329634, 0xffffd865ffffdc6e}, + {0x98329635, 0xffffd865ffffdc6f}, + {0x98329636, 0xffffd865ffffdc70}, + {0x98329637, 0xffffd865ffffdc71}, + {0x98329638, 0xffffd865ffffdc72}, + {0x98329639, 0xffffd865ffffdc73}, + {0x98329730, 0xffffd865ffffdc74}, + {0x98329731, 0xffffd865ffffdc75}, + {0x98329732, 0xffffd865ffffdc76}, + {0x98329733, 0xffffd865ffffdc77}, + {0x98329734, 0xffffd865ffffdc78}, + {0x98329735, 0xffffd865ffffdc79}, + {0x98329736, 0xffffd865ffffdc7a}, + {0x98329737, 0xffffd865ffffdc7b}, + {0x98329738, 0xffffd865ffffdc7c}, + {0x98329739, 0xffffd865ffffdc7d}, + {0x98329830, 0xffffd865ffffdc7e}, + {0x98329831, 0xffffd865ffffdc7f}, + {0x98329832, 0xffffd865ffffdc80}, + {0x98329833, 0xffffd865ffffdc81}, + {0x98329834, 0xffffd865ffffdc82}, + {0x98329835, 0xffffd865ffffdc83}, + {0x98329836, 0xffffd865ffffdc84}, + {0x98329837, 0xffffd865ffffdc85}, + {0x98329838, 0xffffd865ffffdc86}, + {0x98329839, 0xffffd865ffffdc87}, + {0x98329930, 0xffffd865ffffdc88}, + {0x98329931, 0xffffd865ffffdc89}, + {0x98329932, 0xffffd865ffffdc8a}, + {0x98329933, 0xffffd865ffffdc8b}, + {0x98329934, 0xffffd865ffffdc8c}, + {0x98329935, 0xffffd865ffffdc8d}, + {0x98329936, 0xffffd865ffffdc8e}, + {0x98329937, 0xffffd865ffffdc8f}, + {0x98329938, 0xffffd865ffffdc90}, + {0x98329939, 0xffffd865ffffdc91}, + {0x98329a30, 0xffffd865ffffdc92}, + {0x98329a31, 0xffffd865ffffdc93}, + {0x98329a32, 0xffffd865ffffdc94}, + {0x98329a33, 0xffffd865ffffdc95}, + {0x98329a34, 0xffffd865ffffdc96}, + {0x98329a35, 0xffffd865ffffdc97}, + {0x98329a36, 0xffffd865ffffdc98}, + {0x98329a37, 0xffffd865ffffdc99}, + {0x98329a38, 0xffffd865ffffdc9a}, + {0x98329a39, 0xffffd865ffffdc9b}, + {0x98329b30, 0xffffd865ffffdc9c}, + {0x98329b31, 0xffffd865ffffdc9d}, + {0x98329b32, 0xffffd865ffffdc9e}, + {0x98329b33, 0xffffd865ffffdc9f}, + {0x98329b34, 0xffffd865ffffdca0}, + {0x98329b35, 0xffffd865ffffdca1}, + {0x98329b36, 0xffffd865ffffdca2}, + {0x98329b37, 0xffffd865ffffdca3}, + {0x98329b38, 0xffffd865ffffdca4}, + {0x98329b39, 0xffffd865ffffdca5}, + {0x98329c30, 0xffffd865ffffdca6}, + {0x98329c31, 0xffffd865ffffdca7}, + {0x98329c32, 0xffffd865ffffdca8}, + {0x98329c33, 0xffffd865ffffdca9}, + {0x98329c34, 0xffffd865ffffdcaa}, + {0x98329c35, 0xffffd865ffffdcab}, + {0x98329c36, 0xffffd865ffffdcac}, + {0x98329c37, 0xffffd865ffffdcad}, + {0x98329c38, 0xffffd865ffffdcae}, + {0x98329c39, 0xffffd865ffffdcaf}, + {0x98329d30, 0xffffd865ffffdcb0}, + {0x98329d31, 0xffffd865ffffdcb1}, + {0x98329d32, 0xffffd865ffffdcb2}, + {0x98329d33, 0xffffd865ffffdcb3}, + {0x98329d34, 0xffffd865ffffdcb4}, + {0x98329d35, 0xffffd865ffffdcb5}, + {0x98329d36, 0xffffd865ffffdcb6}, + {0x98329d37, 0xffffd865ffffdcb7}, + {0x98329d38, 0xffffd865ffffdcb8}, + {0x98329d39, 0xffffd865ffffdcb9}, + {0x98329e30, 0xffffd865ffffdcba}, + {0x98329e31, 0xffffd865ffffdcbb}, + {0x98329e32, 0xffffd865ffffdcbc}, + {0x98329e33, 0xffffd865ffffdcbd}, + {0x98329e34, 0xffffd865ffffdcbe}, + {0x98329e35, 0xffffd865ffffdcbf}, + {0x98329e36, 0xffffd865ffffdcc0}, + {0x98329e37, 0xffffd865ffffdcc1}, + {0x98329e38, 0xffffd865ffffdcc2}, + {0x98329e39, 0xffffd865ffffdcc3}, + {0x98329f30, 0xffffd865ffffdcc4}, + {0x98329f31, 0xffffd865ffffdcc5}, + {0x98329f32, 0xffffd865ffffdcc6}, + {0x98329f33, 0xffffd865ffffdcc7}, + {0x98329f34, 0xffffd865ffffdcc8}, + {0x98329f35, 0xffffd865ffffdcc9}, + {0x98329f36, 0xffffd865ffffdcca}, + {0x98329f37, 0xffffd865ffffdccb}, + {0x98329f38, 0xffffd865ffffdccc}, + {0x98329f39, 0xffffd865ffffdccd}, + {0x9832a030, 0xffffd865ffffdcce}, + {0x9832a031, 0xffffd865ffffdccf}, + {0x9832a032, 0xffffd865ffffdcd0}, + {0x9832a033, 0xffffd865ffffdcd1}, + {0x9832a034, 0xffffd865ffffdcd2}, + {0x9832a035, 0xffffd865ffffdcd3}, + {0x9832a036, 0xffffd865ffffdcd4}, + {0x9832a037, 0xffffd865ffffdcd5}, + {0x9832a038, 0xffffd865ffffdcd6}, + {0x9832a039, 0xffffd865ffffdcd7}, + {0x9832a130, 0xffffd865ffffdcd8}, + {0x9832a131, 0xffffd865ffffdcd9}, + {0x9832a132, 0xffffd865ffffdcda}, + {0x9832a133, 0xffffd865ffffdcdb}, + {0x9832a134, 0xffffd865ffffdcdc}, + {0x9832a135, 0xffffd865ffffdcdd}, + {0x9832a136, 0xffffd865ffffdcde}, + {0x9832a137, 0xffffd865ffffdcdf}, + {0x9832a138, 0xffffd865ffffdce0}, + {0x9832a139, 0xffffd865ffffdce1}, + {0x9832a230, 0xffffd865ffffdce2}, + {0x9832a231, 0xffffd865ffffdce3}, + {0x9832a232, 0xffffd865ffffdce4}, + {0x9832a233, 0xffffd865ffffdce5}, + {0x9832a234, 0xffffd865ffffdce6}, + {0x9832a235, 0xffffd865ffffdce7}, + {0x9832a236, 0xffffd865ffffdce8}, + {0x9832a237, 0xffffd865ffffdce9}, + {0x9832a238, 0xffffd865ffffdcea}, + {0x9832a239, 0xffffd865ffffdceb}, + {0x9832a330, 0xffffd865ffffdcec}, + {0x9832a331, 0xffffd865ffffdced}, + {0x9832a332, 0xffffd865ffffdcee}, + {0x9832a333, 0xffffd865ffffdcef}, + {0x9832a334, 0xffffd865ffffdcf0}, + {0x9832a335, 0xffffd865ffffdcf1}, + {0x9832a336, 0xffffd865ffffdcf2}, + {0x9832a337, 0xffffd865ffffdcf3}, + {0x9832a338, 0xffffd865ffffdcf4}, + {0x9832a339, 0xffffd865ffffdcf5}, + {0x9832a430, 0xffffd865ffffdcf6}, + {0x9832a431, 0xffffd865ffffdcf7}, + {0x9832a432, 0xffffd865ffffdcf8}, + {0x9832a433, 0xffffd865ffffdcf9}, + {0x9832a434, 0xffffd865ffffdcfa}, + {0x9832a435, 0xffffd865ffffdcfb}, + {0x9832a436, 0xffffd865ffffdcfc}, + {0x9832a437, 0xffffd865ffffdcfd}, + {0x9832a438, 0xffffd865ffffdcfe}, + {0x9832a439, 0xffffd865ffffdcff}, + {0x9832a530, 0xffffd865ffffdd00}, + {0x9832a531, 0xffffd865ffffdd01}, + {0x9832a532, 0xffffd865ffffdd02}, + {0x9832a533, 0xffffd865ffffdd03}, + {0x9832a534, 0xffffd865ffffdd04}, + {0x9832a535, 0xffffd865ffffdd05}, + {0x9832a536, 0xffffd865ffffdd06}, + {0x9832a537, 0xffffd865ffffdd07}, + {0x9832a538, 0xffffd865ffffdd08}, + {0x9832a539, 0xffffd865ffffdd09}, + {0x9832a630, 0xffffd865ffffdd0a}, + {0x9832a631, 0xffffd865ffffdd0b}, + {0x9832a632, 0xffffd865ffffdd0c}, + {0x9832a633, 0xffffd865ffffdd0d}, + {0x9832a634, 0xffffd865ffffdd0e}, + {0x9832a635, 0xffffd865ffffdd0f}, + {0x9832a636, 0xffffd865ffffdd10}, + {0x9832a637, 0xffffd865ffffdd11}, + {0x9832a638, 0xffffd865ffffdd12}, + {0x9832a639, 0xffffd865ffffdd13}, + {0x9832a730, 0xffffd865ffffdd14}, + {0x9832a731, 0xffffd865ffffdd15}, + {0x9832a732, 0xffffd865ffffdd16}, + {0x9832a733, 0xffffd865ffffdd17}, + {0x9832a734, 0xffffd865ffffdd18}, + {0x9832a735, 0xffffd865ffffdd19}, + {0x9832a736, 0xffffd865ffffdd1a}, + {0x9832a737, 0xffffd865ffffdd1b}, + {0x9832a738, 0xffffd865ffffdd1c}, + {0x9832a739, 0xffffd865ffffdd1d}, + {0x9832a830, 0xffffd865ffffdd1e}, + {0x9832a831, 0xffffd865ffffdd1f}, + {0x9832a832, 0xffffd865ffffdd20}, + {0x9832a833, 0xffffd865ffffdd21}, + {0x9832a834, 0xffffd865ffffdd22}, + {0x9832a835, 0xffffd865ffffdd23}, + {0x9832a836, 0xffffd865ffffdd24}, + {0x9832a837, 0xffffd865ffffdd25}, + {0x9832a838, 0xffffd865ffffdd26}, + {0x9832a839, 0xffffd865ffffdd27}, + {0x9832a930, 0xffffd865ffffdd28}, + {0x9832a931, 0xffffd865ffffdd29}, + {0x9832a932, 0xffffd865ffffdd2a}, + {0x9832a933, 0xffffd865ffffdd2b}, + {0x9832a934, 0xffffd865ffffdd2c}, + {0x9832a935, 0xffffd865ffffdd2d}, + {0x9832a936, 0xffffd865ffffdd2e}, + {0x9832a937, 0xffffd865ffffdd2f}, + {0x9832a938, 0xffffd865ffffdd30}, + {0x9832a939, 0xffffd865ffffdd31}, + {0x9832aa30, 0xffffd865ffffdd32}, + {0x9832aa31, 0xffffd865ffffdd33}, + {0x9832aa32, 0xffffd865ffffdd34}, + {0x9832aa33, 0xffffd865ffffdd35}, + {0x9832aa34, 0xffffd865ffffdd36}, + {0x9832aa35, 0xffffd865ffffdd37}, + {0x9832aa36, 0xffffd865ffffdd38}, + {0x9832aa37, 0xffffd865ffffdd39}, + {0x9832aa38, 0xffffd865ffffdd3a}, + {0x9832aa39, 0xffffd865ffffdd3b}, + {0x9832ab30, 0xffffd865ffffdd3c}, + {0x9832ab31, 0xffffd865ffffdd3d}, + {0x9832ab32, 0xffffd865ffffdd3e}, + {0x9832ab33, 0xffffd865ffffdd3f}, + {0x9832ab34, 0xffffd865ffffdd40}, + {0x9832ab35, 0xffffd865ffffdd41}, + {0x9832ab36, 0xffffd865ffffdd42}, + {0x9832ab37, 0xffffd865ffffdd43}, + {0x9832ab38, 0xffffd865ffffdd44}, + {0x9832ab39, 0xffffd865ffffdd45}, + {0x9832ac30, 0xffffd865ffffdd46}, + {0x9832ac31, 0xffffd865ffffdd47}, + {0x9832ac32, 0xffffd865ffffdd48}, + {0x9832ac33, 0xffffd865ffffdd49}, + {0x9832ac34, 0xffffd865ffffdd4a}, + {0x9832ac35, 0xffffd865ffffdd4b}, + {0x9832ac36, 0xffffd865ffffdd4c}, + {0x9832ac37, 0xffffd865ffffdd4d}, + {0x9832ac38, 0xffffd865ffffdd4e}, + {0x9832ac39, 0xffffd865ffffdd4f}, + {0x9832ad30, 0xffffd865ffffdd50}, + {0x9832ad31, 0xffffd865ffffdd51}, + {0x9832ad32, 0xffffd865ffffdd52}, + {0x9832ad33, 0xffffd865ffffdd53}, + {0x9832ad34, 0xffffd865ffffdd54}, + {0x9832ad35, 0xffffd865ffffdd55}, + {0x9832ad36, 0xffffd865ffffdd56}, + {0x9832ad37, 0xffffd865ffffdd57}, + {0x9832ad38, 0xffffd865ffffdd58}, + {0x9832ad39, 0xffffd865ffffdd59}, + {0x9832ae30, 0xffffd865ffffdd5a}, + {0x9832ae31, 0xffffd865ffffdd5b}, + {0x9832ae32, 0xffffd865ffffdd5c}, + {0x9832ae33, 0xffffd865ffffdd5d}, + {0x9832ae34, 0xffffd865ffffdd5e}, + {0x9832ae35, 0xffffd865ffffdd5f}, + {0x9832ae36, 0xffffd865ffffdd60}, + {0x9832ae37, 0xffffd865ffffdd61}, + {0x9832ae38, 0xffffd865ffffdd62}, + {0x9832ae39, 0xffffd865ffffdd63}, + {0x9832af30, 0xffffd865ffffdd64}, + {0x9832af31, 0xffffd865ffffdd65}, + {0x9832af32, 0xffffd865ffffdd66}, + {0x9832af33, 0xffffd865ffffdd67}, + {0x9832af34, 0xffffd865ffffdd68}, + {0x9832af35, 0xffffd865ffffdd69}, + {0x9832af36, 0xffffd865ffffdd6a}, + {0x9832af37, 0xffffd865ffffdd6b}, + {0x9832af38, 0xffffd865ffffdd6c}, + {0x9832af39, 0xffffd865ffffdd6d}, + {0x9832b030, 0xffffd865ffffdd6e}, + {0x9832b031, 0xffffd865ffffdd6f}, + {0x9832b032, 0xffffd865ffffdd70}, + {0x9832b033, 0xffffd865ffffdd71}, + {0x9832b034, 0xffffd865ffffdd72}, + {0x9832b035, 0xffffd865ffffdd73}, + {0x9832b036, 0xffffd865ffffdd74}, + {0x9832b037, 0xffffd865ffffdd75}, + {0x9832b038, 0xffffd865ffffdd76}, + {0x9832b039, 0xffffd865ffffdd77}, + {0x9832b130, 0xffffd865ffffdd78}, + {0x9832b131, 0xffffd865ffffdd79}, + {0x9832b132, 0xffffd865ffffdd7a}, + {0x9832b133, 0xffffd865ffffdd7b}, + {0x9832b134, 0xffffd865ffffdd7c}, + {0x9832b135, 0xffffd865ffffdd7d}, + {0x9832b136, 0xffffd865ffffdd7e}, + {0x9832b137, 0xffffd865ffffdd7f}, + {0x9832b138, 0xffffd865ffffdd80}, + {0x9832b139, 0xffffd865ffffdd81}, + {0x9832b230, 0xffffd865ffffdd82}, + {0x9832b231, 0xffffd865ffffdd83}, + {0x9832b232, 0xffffd865ffffdd84}, + {0x9832b233, 0xffffd865ffffdd85}, + {0x9832b234, 0xffffd865ffffdd86}, + {0x9832b235, 0xffffd865ffffdd87}, + {0x9832b236, 0xffffd865ffffdd88}, + {0x9832b237, 0xffffd865ffffdd89}, + {0x9832b238, 0xffffd865ffffdd8a}, + {0x9832b239, 0xffffd865ffffdd8b}, + {0x9832b330, 0xffffd865ffffdd8c}, + {0x9832b331, 0xffffd865ffffdd8d}, + {0x9832b332, 0xffffd865ffffdd8e}, + {0x9832b333, 0xffffd865ffffdd8f}, + {0x9832b334, 0xffffd865ffffdd90}, + {0x9832b335, 0xffffd865ffffdd91}, + {0x9832b336, 0xffffd865ffffdd92}, + {0x9832b337, 0xffffd865ffffdd93}, + {0x9832b338, 0xffffd865ffffdd94}, + {0x9832b339, 0xffffd865ffffdd95}, + {0x9832b430, 0xffffd865ffffdd96}, + {0x9832b431, 0xffffd865ffffdd97}, + {0x9832b432, 0xffffd865ffffdd98}, + {0x9832b433, 0xffffd865ffffdd99}, + {0x9832b434, 0xffffd865ffffdd9a}, + {0x9832b435, 0xffffd865ffffdd9b}, + {0x9832b436, 0xffffd865ffffdd9c}, + {0x9832b437, 0xffffd865ffffdd9d}, + {0x9832b438, 0xffffd865ffffdd9e}, + {0x9832b439, 0xffffd865ffffdd9f}, + {0x9832b530, 0xffffd865ffffdda0}, + {0x9832b531, 0xffffd865ffffdda1}, + {0x9832b532, 0xffffd865ffffdda2}, + {0x9832b533, 0xffffd865ffffdda3}, + {0x9832b534, 0xffffd865ffffdda4}, + {0x9832b535, 0xffffd865ffffdda5}, + {0x9832b536, 0xffffd865ffffdda6}, + {0x9832b537, 0xffffd865ffffdda7}, + {0x9832b538, 0xffffd865ffffdda8}, + {0x9832b539, 0xffffd865ffffdda9}, + {0x9832b630, 0xffffd865ffffddaa}, + {0x9832b631, 0xffffd865ffffddab}, + {0x9832b632, 0xffffd865ffffddac}, + {0x9832b633, 0xffffd865ffffddad}, + {0x9832b634, 0xffffd865ffffddae}, + {0x9832b635, 0xffffd865ffffddaf}, + {0x9832b636, 0xffffd865ffffddb0}, + {0x9832b637, 0xffffd865ffffddb1}, + {0x9832b638, 0xffffd865ffffddb2}, + {0x9832b639, 0xffffd865ffffddb3}, + {0x9832b730, 0xffffd865ffffddb4}, + {0x9832b731, 0xffffd865ffffddb5}, + {0x9832b732, 0xffffd865ffffddb6}, + {0x9832b733, 0xffffd865ffffddb7}, + {0x9832b734, 0xffffd865ffffddb8}, + {0x9832b735, 0xffffd865ffffddb9}, + {0x9832b736, 0xffffd865ffffddba}, + {0x9832b737, 0xffffd865ffffddbb}, + {0x9832b738, 0xffffd865ffffddbc}, + {0x9832b739, 0xffffd865ffffddbd}, + {0x9832b830, 0xffffd865ffffddbe}, + {0x9832b831, 0xffffd865ffffddbf}, + {0x9832b832, 0xffffd865ffffddc0}, + {0x9832b833, 0xffffd865ffffddc1}, + {0x9832b834, 0xffffd865ffffddc2}, + {0x9832b835, 0xffffd865ffffddc3}, + {0x9832b836, 0xffffd865ffffddc4}, + {0x9832b837, 0xffffd865ffffddc5}, + {0x9832b838, 0xffffd865ffffddc6}, + {0x9832b839, 0xffffd865ffffddc7}, + {0x9832b930, 0xffffd865ffffddc8}, + {0x9832b931, 0xffffd865ffffddc9}, + {0x9832b932, 0xffffd865ffffddca}, + {0x9832b933, 0xffffd865ffffddcb}, + {0x9832b934, 0xffffd865ffffddcc}, + {0x9832b935, 0xffffd865ffffddcd}, + {0x9832b936, 0xffffd865ffffddce}, + {0x9832b937, 0xffffd865ffffddcf}, + {0x9832b938, 0xffffd865ffffddd0}, + {0x9832b939, 0xffffd865ffffddd1}, + {0x9832ba30, 0xffffd865ffffddd2}, + {0x9832ba31, 0xffffd865ffffddd3}, + {0x9832ba32, 0xffffd865ffffddd4}, + {0x9832ba33, 0xffffd865ffffddd5}, + {0x9832ba34, 0xffffd865ffffddd6}, + {0x9832ba35, 0xffffd865ffffddd7}, + {0x9832ba36, 0xffffd865ffffddd8}, + {0x9832ba37, 0xffffd865ffffddd9}, + {0x9832ba38, 0xffffd865ffffddda}, + {0x9832ba39, 0xffffd865ffffdddb}, + {0x9832bb30, 0xffffd865ffffdddc}, + {0x9832bb31, 0xffffd865ffffdddd}, + {0x9832bb32, 0xffffd865ffffddde}, + {0x9832bb33, 0xffffd865ffffdddf}, + {0x9832bb34, 0xffffd865ffffdde0}, + {0x9832bb35, 0xffffd865ffffdde1}, + {0x9832bb36, 0xffffd865ffffdde2}, + {0x9832bb37, 0xffffd865ffffdde3}, + {0x9832bb38, 0xffffd865ffffdde4}, + {0x9832bb39, 0xffffd865ffffdde5}, + {0x9832bc30, 0xffffd865ffffdde6}, + {0x9832bc31, 0xffffd865ffffdde7}, + {0x9832bc32, 0xffffd865ffffdde8}, + {0x9832bc33, 0xffffd865ffffdde9}, + {0x9832bc34, 0xffffd865ffffddea}, + {0x9832bc35, 0xffffd865ffffddeb}, + {0x9832bc36, 0xffffd865ffffddec}, + {0x9832bc37, 0xffffd865ffffdded}, + {0x9832bc38, 0xffffd865ffffddee}, + {0x9832bc39, 0xffffd865ffffddef}, + {0x9832bd30, 0xffffd865ffffddf0}, + {0x9832bd31, 0xffffd865ffffddf1}, + {0x9832bd32, 0xffffd865ffffddf2}, + {0x9832bd33, 0xffffd865ffffddf3}, + {0x9832bd34, 0xffffd865ffffddf4}, + {0x9832bd35, 0xffffd865ffffddf5}, + {0x9832bd36, 0xffffd865ffffddf6}, + {0x9832bd37, 0xffffd865ffffddf7}, + {0x9832bd38, 0xffffd865ffffddf8}, + {0x9832bd39, 0xffffd865ffffddf9}, + {0x9832be30, 0xffffd865ffffddfa}, + {0x9832be31, 0xffffd865ffffddfb}, + {0x9832be32, 0xffffd865ffffddfc}, + {0x9832be33, 0xffffd865ffffddfd}, + {0x9832be34, 0xffffd865ffffddfe}, + {0x9832be35, 0xffffd865ffffddff}, + {0x9832be36, 0xffffd865ffffde00}, + {0x9832be37, 0xffffd865ffffde01}, + {0x9832be38, 0xffffd865ffffde02}, + {0x9832be39, 0xffffd865ffffde03}, + {0x9832bf30, 0xffffd865ffffde04}, + {0x9832bf31, 0xffffd865ffffde05}, + {0x9832bf32, 0xffffd865ffffde06}, + {0x9832bf33, 0xffffd865ffffde07}, + {0x9832bf34, 0xffffd865ffffde08}, + {0x9832bf35, 0xffffd865ffffde09}, + {0x9832bf36, 0xffffd865ffffde0a}, + {0x9832bf37, 0xffffd865ffffde0b}, + {0x9832bf38, 0xffffd865ffffde0c}, + {0x9832bf39, 0xffffd865ffffde0d}, + {0x9832c030, 0xffffd865ffffde0e}, + {0x9832c031, 0xffffd865ffffde0f}, + {0x9832c032, 0xffffd865ffffde10}, + {0x9832c033, 0xffffd865ffffde11}, + {0x9832c034, 0xffffd865ffffde12}, + {0x9832c035, 0xffffd865ffffde13}, + {0x9832c036, 0xffffd865ffffde14}, + {0x9832c037, 0xffffd865ffffde15}, + {0x9832c038, 0xffffd865ffffde16}, + {0x9832c039, 0xffffd865ffffde17}, + {0x9832c130, 0xffffd865ffffde18}, + {0x9832c131, 0xffffd865ffffde19}, + {0x9832c132, 0xffffd865ffffde1a}, + {0x9832c133, 0xffffd865ffffde1b}, + {0x9832c134, 0xffffd865ffffde1c}, + {0x9832c135, 0xffffd865ffffde1d}, + {0x9832c136, 0xffffd865ffffde1e}, + {0x9832c137, 0xffffd865ffffde1f}, + {0x9832c138, 0xffffd865ffffde20}, + {0x9832c139, 0xffffd865ffffde21}, + {0x9832c230, 0xffffd865ffffde22}, + {0x9832c231, 0xffffd865ffffde23}, + {0x9832c232, 0xffffd865ffffde24}, + {0x9832c233, 0xffffd865ffffde25}, + {0x9832c234, 0xffffd865ffffde26}, + {0x9832c235, 0xffffd865ffffde27}, + {0x9832c236, 0xffffd865ffffde28}, + {0x9832c237, 0xffffd865ffffde29}, + {0x9832c238, 0xffffd865ffffde2a}, + {0x9832c239, 0xffffd865ffffde2b}, + {0x9832c330, 0xffffd865ffffde2c}, + {0x9832c331, 0xffffd865ffffde2d}, + {0x9832c332, 0xffffd865ffffde2e}, + {0x9832c333, 0xffffd865ffffde2f}, + {0x9832c334, 0xffffd865ffffde30}, + {0x9832c335, 0xffffd865ffffde31}, + {0x9832c336, 0xffffd865ffffde32}, + {0x9832c337, 0xffffd865ffffde33}, + {0x9832c338, 0xffffd865ffffde34}, + {0x9832c339, 0xffffd865ffffde35}, + {0x9832c430, 0xffffd865ffffde36}, + {0x9832c431, 0xffffd865ffffde37}, + {0x9832c432, 0xffffd865ffffde38}, + {0x9832c433, 0xffffd865ffffde39}, + {0x9832c434, 0xffffd865ffffde3a}, + {0x9832c435, 0xffffd865ffffde3b}, + {0x9832c436, 0xffffd865ffffde3c}, + {0x9832c437, 0xffffd865ffffde3d}, + {0x9832c438, 0xffffd865ffffde3e}, + {0x9832c439, 0xffffd865ffffde3f}, + {0x9832c530, 0xffffd865ffffde40}, + {0x9832c531, 0xffffd865ffffde41}, + {0x9832c532, 0xffffd865ffffde42}, + {0x9832c533, 0xffffd865ffffde43}, + {0x9832c534, 0xffffd865ffffde44}, + {0x9832c535, 0xffffd865ffffde45}, + {0x9832c536, 0xffffd865ffffde46}, + {0x9832c537, 0xffffd865ffffde47}, + {0x9832c538, 0xffffd865ffffde48}, + {0x9832c539, 0xffffd865ffffde49}, + {0x9832c630, 0xffffd865ffffde4a}, + {0x9832c631, 0xffffd865ffffde4b}, + {0x9832c632, 0xffffd865ffffde4c}, + {0x9832c633, 0xffffd865ffffde4d}, + {0x9832c634, 0xffffd865ffffde4e}, + {0x9832c635, 0xffffd865ffffde4f}, + {0x9832c636, 0xffffd865ffffde50}, + {0x9832c637, 0xffffd865ffffde51}, + {0x9832c638, 0xffffd865ffffde52}, + {0x9832c639, 0xffffd865ffffde53}, + {0x9832c730, 0xffffd865ffffde54}, + {0x9832c731, 0xffffd865ffffde55}, + {0x9832c732, 0xffffd865ffffde56}, + {0x9832c733, 0xffffd865ffffde57}, + {0x9832c734, 0xffffd865ffffde58}, + {0x9832c735, 0xffffd865ffffde59}, + {0x9832c736, 0xffffd865ffffde5a}, + {0x9832c737, 0xffffd865ffffde5b}, + {0x9832c738, 0xffffd865ffffde5c}, + {0x9832c739, 0xffffd865ffffde5d}, + {0x9832c830, 0xffffd865ffffde5e}, + {0x9832c831, 0xffffd865ffffde5f}, + {0x9832c832, 0xffffd865ffffde60}, + {0x9832c833, 0xffffd865ffffde61}, + {0x9832c834, 0xffffd865ffffde62}, + {0x9832c835, 0xffffd865ffffde63}, + {0x9832c836, 0xffffd865ffffde64}, + {0x9832c837, 0xffffd865ffffde65}, + {0x9832c838, 0xffffd865ffffde66}, + {0x9832c839, 0xffffd865ffffde67}, + {0x9832c930, 0xffffd865ffffde68}, + {0x9832c931, 0xffffd865ffffde69}, + {0x9832c932, 0xffffd865ffffde6a}, + {0x9832c933, 0xffffd865ffffde6b}, + {0x9832c934, 0xffffd865ffffde6c}, + {0x9832c935, 0xffffd865ffffde6d}, + {0x9832c936, 0xffffd865ffffde6e}, + {0x9832c937, 0xffffd865ffffde6f}, + {0x9832c938, 0xffffd865ffffde70}, + {0x9832c939, 0xffffd865ffffde71}, + {0x9832ca30, 0xffffd865ffffde72}, + {0x9832ca31, 0xffffd865ffffde73}, + {0x9832ca32, 0xffffd865ffffde74}, + {0x9832ca33, 0xffffd865ffffde75}, + {0x9832ca34, 0xffffd865ffffde76}, + {0x9832ca35, 0xffffd865ffffde77}, + {0x9832ca36, 0xffffd865ffffde78}, + {0x9832ca37, 0xffffd865ffffde79}, + {0x9832ca38, 0xffffd865ffffde7a}, + {0x9832ca39, 0xffffd865ffffde7b}, + {0x9832cb30, 0xffffd865ffffde7c}, + {0x9832cb31, 0xffffd865ffffde7d}, + {0x9832cb32, 0xffffd865ffffde7e}, + {0x9832cb33, 0xffffd865ffffde7f}, + {0x9832cb34, 0xffffd865ffffde80}, + {0x9832cb35, 0xffffd865ffffde81}, + {0x9832cb36, 0xffffd865ffffde82}, + {0x9832cb37, 0xffffd865ffffde83}, + {0x9832cb38, 0xffffd865ffffde84}, + {0x9832cb39, 0xffffd865ffffde85}, + {0x9832cc30, 0xffffd865ffffde86}, + {0x9832cc31, 0xffffd865ffffde87}, + {0x9832cc32, 0xffffd865ffffde88}, + {0x9832cc33, 0xffffd865ffffde89}, + {0x9832cc34, 0xffffd865ffffde8a}, + {0x9832cc35, 0xffffd865ffffde8b}, + {0x9832cc36, 0xffffd865ffffde8c}, + {0x9832cc37, 0xffffd865ffffde8d}, + {0x9832cc38, 0xffffd865ffffde8e}, + {0x9832cc39, 0xffffd865ffffde8f}, + {0x9832cd30, 0xffffd865ffffde90}, + {0x9832cd31, 0xffffd865ffffde91}, + {0x9832cd32, 0xffffd865ffffde92}, + {0x9832cd33, 0xffffd865ffffde93}, + {0x9832cd34, 0xffffd865ffffde94}, + {0x9832cd35, 0xffffd865ffffde95}, + {0x9832cd36, 0xffffd865ffffde96}, + {0x9832cd37, 0xffffd865ffffde97}, + {0x9832cd38, 0xffffd865ffffde98}, + {0x9832cd39, 0xffffd865ffffde99}, + {0x9832ce30, 0xffffd865ffffde9a}, + {0x9832ce31, 0xffffd865ffffde9b}, + {0x9832ce32, 0xffffd865ffffde9c}, + {0x9832ce33, 0xffffd865ffffde9d}, + {0x9832ce34, 0xffffd865ffffde9e}, + {0x9832ce35, 0xffffd865ffffde9f}, + {0x9832ce36, 0xffffd865ffffdea0}, + {0x9832ce37, 0xffffd865ffffdea1}, + {0x9832ce38, 0xffffd865ffffdea2}, + {0x9832ce39, 0xffffd865ffffdea3}, + {0x9832cf30, 0xffffd865ffffdea4}, + {0x9832cf31, 0xffffd865ffffdea5}, + {0x9832cf32, 0xffffd865ffffdea6}, + {0x9832cf33, 0xffffd865ffffdea7}, + {0x9832cf34, 0xffffd865ffffdea8}, + {0x9832cf35, 0xffffd865ffffdea9}, + {0x9832cf36, 0xffffd865ffffdeaa}, + {0x9832cf37, 0xffffd865ffffdeab}, + {0x9832cf38, 0xffffd865ffffdeac}, + {0x9832cf39, 0xffffd865ffffdead}, + {0x9832d030, 0xffffd865ffffdeae}, + {0x9832d031, 0xffffd865ffffdeaf}, + {0x9832d032, 0xffffd865ffffdeb0}, + {0x9832d033, 0xffffd865ffffdeb1}, + {0x9832d034, 0xffffd865ffffdeb2}, + {0x9832d035, 0xffffd865ffffdeb3}, + {0x9832d036, 0xffffd865ffffdeb4}, + {0x9832d037, 0xffffd865ffffdeb5}, + {0x9832d038, 0xffffd865ffffdeb6}, + {0x9832d039, 0xffffd865ffffdeb7}, + {0x9832d130, 0xffffd865ffffdeb8}, + {0x9832d131, 0xffffd865ffffdeb9}, + {0x9832d132, 0xffffd865ffffdeba}, + {0x9832d133, 0xffffd865ffffdebb}, + {0x9832d134, 0xffffd865ffffdebc}, + {0x9832d135, 0xffffd865ffffdebd}, + {0x9832d136, 0xffffd865ffffdebe}, + {0x9832d137, 0xffffd865ffffdebf}, + {0x9832d138, 0xffffd865ffffdec0}, + {0x9832d139, 0xffffd865ffffdec1}, + {0x9832d230, 0xffffd865ffffdec2}, + {0x9832d231, 0xffffd865ffffdec3}, + {0x9832d232, 0xffffd865ffffdec4}, + {0x9832d233, 0xffffd865ffffdec5}, + {0x9832d234, 0xffffd865ffffdec6}, + {0x9832d235, 0xffffd865ffffdec7}, + {0x9832d236, 0xffffd865ffffdec8}, + {0x9832d237, 0xffffd865ffffdec9}, + {0x9832d238, 0xffffd865ffffdeca}, + {0x9832d239, 0xffffd865ffffdecb}, + {0x9832d330, 0xffffd865ffffdecc}, + {0x9832d331, 0xffffd865ffffdecd}, + {0x9832d332, 0xffffd865ffffdece}, + {0x9832d333, 0xffffd865ffffdecf}, + {0x9832d334, 0xffffd865ffffded0}, + {0x9832d335, 0xffffd865ffffded1}, + {0x9832d336, 0xffffd865ffffded2}, + {0x9832d337, 0xffffd865ffffded3}, + {0x9832d338, 0xffffd865ffffded4}, + {0x9832d339, 0xffffd865ffffded5}, + {0x9832d430, 0xffffd865ffffded6}, + {0x9832d431, 0xffffd865ffffded7}, + {0x9832d432, 0xffffd865ffffded8}, + {0x9832d433, 0xffffd865ffffded9}, + {0x9832d434, 0xffffd865ffffdeda}, + {0x9832d435, 0xffffd865ffffdedb}, + {0x9832d436, 0xffffd865ffffdedc}, + {0x9832d437, 0xffffd865ffffdedd}, + {0x9832d438, 0xffffd865ffffdede}, + {0x9832d439, 0xffffd865ffffdedf}, + {0x9832d530, 0xffffd865ffffdee0}, + {0x9832d531, 0xffffd865ffffdee1}, + {0x9832d532, 0xffffd865ffffdee2}, + {0x9832d533, 0xffffd865ffffdee3}, + {0x9832d534, 0xffffd865ffffdee4}, + {0x9832d535, 0xffffd865ffffdee5}, + {0x9832d536, 0xffffd865ffffdee6}, + {0x9832d537, 0xffffd865ffffdee7}, + {0x9832d538, 0xffffd865ffffdee8}, + {0x9832d539, 0xffffd865ffffdee9}, + {0x9832d630, 0xffffd865ffffdeea}, + {0x9832d631, 0xffffd865ffffdeeb}, + {0x9832d632, 0xffffd865ffffdeec}, + {0x9832d633, 0xffffd865ffffdeed}, + {0x9832d634, 0xffffd865ffffdeee}, + {0x9832d635, 0xffffd865ffffdeef}, + {0x9832d636, 0xffffd865ffffdef0}, + {0x9832d637, 0xffffd865ffffdef1}, + {0x9832d638, 0xffffd865ffffdef2}, + {0x9832d639, 0xffffd865ffffdef3}, + {0x9832d730, 0xffffd865ffffdef4}, + {0x9832d731, 0xffffd865ffffdef5}, + {0x9832d732, 0xffffd865ffffdef6}, + {0x9832d733, 0xffffd865ffffdef7}, + {0x9832d734, 0xffffd865ffffdef8}, + {0x9832d735, 0xffffd865ffffdef9}, + {0x9832d736, 0xffffd865ffffdefa}, + {0x9832d737, 0xffffd865ffffdefb}, + {0x9832d738, 0xffffd865ffffdefc}, + {0x9832d739, 0xffffd865ffffdefd}, + {0x9832d830, 0xffffd865ffffdefe}, + {0x9832d831, 0xffffd865ffffdeff}, + {0x9832d832, 0xffffd865ffffdf00}, + {0x9832d833, 0xffffd865ffffdf01}, + {0x9832d834, 0xffffd865ffffdf02}, + {0x9832d835, 0xffffd865ffffdf03}, + {0x9832d836, 0xffffd865ffffdf04}, + {0x9832d837, 0xffffd865ffffdf05}, + {0x9832d838, 0xffffd865ffffdf06}, + {0x9832d839, 0xffffd865ffffdf07}, + {0x9832d930, 0xffffd865ffffdf08}, + {0x9832d931, 0xffffd865ffffdf09}, + {0x9832d932, 0xffffd865ffffdf0a}, + {0x9832d933, 0xffffd865ffffdf0b}, + {0x9832d934, 0xffffd865ffffdf0c}, + {0x9832d935, 0xffffd865ffffdf0d}, + {0x9832d936, 0xffffd865ffffdf0e}, + {0x9832d937, 0xffffd865ffffdf0f}, + {0x9832d938, 0xffffd865ffffdf10}, + {0x9832d939, 0xffffd865ffffdf11}, + {0x9832da30, 0xffffd865ffffdf12}, + {0x9832da31, 0xffffd865ffffdf13}, + {0x9832da32, 0xffffd865ffffdf14}, + {0x9832da33, 0xffffd865ffffdf15}, + {0x9832da34, 0xffffd865ffffdf16}, + {0x9832da35, 0xffffd865ffffdf17}, + {0x9832da36, 0xffffd865ffffdf18}, + {0x9832da37, 0xffffd865ffffdf19}, + {0x9832da38, 0xffffd865ffffdf1a}, + {0x9832da39, 0xffffd865ffffdf1b}, + {0x9832db30, 0xffffd865ffffdf1c}, + {0x9832db31, 0xffffd865ffffdf1d}, + {0x9832db32, 0xffffd865ffffdf1e}, + {0x9832db33, 0xffffd865ffffdf1f}, + {0x9832db34, 0xffffd865ffffdf20}, + {0x9832db35, 0xffffd865ffffdf21}, + {0x9832db36, 0xffffd865ffffdf22}, + {0x9832db37, 0xffffd865ffffdf23}, + {0x9832db38, 0xffffd865ffffdf24}, + {0x9832db39, 0xffffd865ffffdf25}, + {0x9832dc30, 0xffffd865ffffdf26}, + {0x9832dc31, 0xffffd865ffffdf27}, + {0x9832dc32, 0xffffd865ffffdf28}, + {0x9832dc33, 0xffffd865ffffdf29}, + {0x9832dc34, 0xffffd865ffffdf2a}, + {0x9832dc35, 0xffffd865ffffdf2b}, + {0x9832dc36, 0xffffd865ffffdf2c}, + {0x9832dc37, 0xffffd865ffffdf2d}, + {0x9832dc38, 0xffffd865ffffdf2e}, + {0x9832dc39, 0xffffd865ffffdf2f}, + {0x9832dd30, 0xffffd865ffffdf30}, + {0x9832dd31, 0xffffd865ffffdf31}, + {0x9832dd32, 0xffffd865ffffdf32}, + {0x9832dd33, 0xffffd865ffffdf33}, + {0x9832dd34, 0xffffd865ffffdf34}, + {0x9832dd35, 0xffffd865ffffdf35}, + {0x9832dd36, 0xffffd865ffffdf36}, + {0x9832dd37, 0xffffd865ffffdf37}, + {0x9832dd38, 0xffffd865ffffdf38}, + {0x9832dd39, 0xffffd865ffffdf39}, + {0x9832de30, 0xffffd865ffffdf3a}, + {0x9832de31, 0xffffd865ffffdf3b}, + {0x9832de32, 0xffffd865ffffdf3c}, + {0x9832de33, 0xffffd865ffffdf3d}, + {0x9832de34, 0xffffd865ffffdf3e}, + {0x9832de35, 0xffffd865ffffdf3f}, + {0x9832de36, 0xffffd865ffffdf40}, + {0x9832de37, 0xffffd865ffffdf41}, + {0x9832de38, 0xffffd865ffffdf42}, + {0x9832de39, 0xffffd865ffffdf43}, + {0x9832df30, 0xffffd865ffffdf44}, + {0x9832df31, 0xffffd865ffffdf45}, + {0x9832df32, 0xffffd865ffffdf46}, + {0x9832df33, 0xffffd865ffffdf47}, + {0x9832df34, 0xffffd865ffffdf48}, + {0x9832df35, 0xffffd865ffffdf49}, + {0x9832df36, 0xffffd865ffffdf4a}, + {0x9832df37, 0xffffd865ffffdf4b}, + {0x9832df38, 0xffffd865ffffdf4c}, + {0x9832df39, 0xffffd865ffffdf4d}, + {0x9832e030, 0xffffd865ffffdf4e}, + {0x9832e031, 0xffffd865ffffdf4f}, + {0x9832e032, 0xffffd865ffffdf50}, + {0x9832e033, 0xffffd865ffffdf51}, + {0x9832e034, 0xffffd865ffffdf52}, + {0x9832e035, 0xffffd865ffffdf53}, + {0x9832e036, 0xffffd865ffffdf54}, + {0x9832e037, 0xffffd865ffffdf55}, + {0x9832e038, 0xffffd865ffffdf56}, + {0x9832e039, 0xffffd865ffffdf57}, + {0x9832e130, 0xffffd865ffffdf58}, + {0x9832e131, 0xffffd865ffffdf59}, + {0x9832e132, 0xffffd865ffffdf5a}, + {0x9832e133, 0xffffd865ffffdf5b}, + {0x9832e134, 0xffffd865ffffdf5c}, + {0x9832e135, 0xffffd865ffffdf5d}, + {0x9832e136, 0xffffd865ffffdf5e}, + {0x9832e137, 0xffffd865ffffdf5f}, + {0x9832e138, 0xffffd865ffffdf60}, + {0x9832e139, 0xffffd865ffffdf61}, + {0x9832e230, 0xffffd865ffffdf62}, + {0x9832e231, 0xffffd865ffffdf63}, + {0x9832e232, 0xffffd865ffffdf64}, + {0x9832e233, 0xffffd865ffffdf65}, + {0x9832e234, 0xffffd865ffffdf66}, + {0x9832e235, 0xffffd865ffffdf67}, + {0x9832e236, 0xffffd865ffffdf68}, + {0x9832e237, 0xffffd865ffffdf69}, + {0x9832e238, 0xffffd865ffffdf6a}, + {0x9832e239, 0xffffd865ffffdf6b}, + {0x9832e330, 0xffffd865ffffdf6c}, + {0x9832e331, 0xffffd865ffffdf6d}, + {0x9832e332, 0xffffd865ffffdf6e}, + {0x9832e333, 0xffffd865ffffdf6f}, + {0x9832e334, 0xffffd865ffffdf70}, + {0x9832e335, 0xffffd865ffffdf71}, + {0x9832e336, 0xffffd865ffffdf72}, + {0x9832e337, 0xffffd865ffffdf73}, + {0x9832e338, 0xffffd865ffffdf74}, + {0x9832e339, 0xffffd865ffffdf75}, + {0x9832e430, 0xffffd865ffffdf76}, + {0x9832e431, 0xffffd865ffffdf77}, + {0x9832e432, 0xffffd865ffffdf78}, + {0x9832e433, 0xffffd865ffffdf79}, + {0x9832e434, 0xffffd865ffffdf7a}, + {0x9832e435, 0xffffd865ffffdf7b}, + {0x9832e436, 0xffffd865ffffdf7c}, + {0x9832e437, 0xffffd865ffffdf7d}, + {0x9832e438, 0xffffd865ffffdf7e}, + {0x9832e439, 0xffffd865ffffdf7f}, + {0x9832e530, 0xffffd865ffffdf80}, + {0x9832e531, 0xffffd865ffffdf81}, + {0x9832e532, 0xffffd865ffffdf82}, + {0x9832e533, 0xffffd865ffffdf83}, + {0x9832e534, 0xffffd865ffffdf84}, + {0x9832e535, 0xffffd865ffffdf85}, + {0x9832e536, 0xffffd865ffffdf86}, + {0x9832e537, 0xffffd865ffffdf87}, + {0x9832e538, 0xffffd865ffffdf88}, + {0x9832e539, 0xffffd865ffffdf89}, + {0x9832e630, 0xffffd865ffffdf8a}, + {0x9832e631, 0xffffd865ffffdf8b}, + {0x9832e632, 0xffffd865ffffdf8c}, + {0x9832e633, 0xffffd865ffffdf8d}, + {0x9832e634, 0xffffd865ffffdf8e}, + {0x9832e635, 0xffffd865ffffdf8f}, + {0x9832e636, 0xffffd865ffffdf90}, + {0x9832e637, 0xffffd865ffffdf91}, + {0x9832e638, 0xffffd865ffffdf92}, + {0x9832e639, 0xffffd865ffffdf93}, + {0x9832e730, 0xffffd865ffffdf94}, + {0x9832e731, 0xffffd865ffffdf95}, + {0x9832e732, 0xffffd865ffffdf96}, + {0x9832e733, 0xffffd865ffffdf97}, + {0x9832e734, 0xffffd865ffffdf98}, + {0x9832e735, 0xffffd865ffffdf99}, + {0x9832e736, 0xffffd865ffffdf9a}, + {0x9832e737, 0xffffd865ffffdf9b}, + {0x9832e738, 0xffffd865ffffdf9c}, + {0x9832e739, 0xffffd865ffffdf9d}, + {0x9832e830, 0xffffd865ffffdf9e}, + {0x9832e831, 0xffffd865ffffdf9f}, + {0x9832e832, 0xffffd865ffffdfa0}, + {0x9832e833, 0xffffd865ffffdfa1}, + {0x9832e834, 0xffffd865ffffdfa2}, + {0x9832e835, 0xffffd865ffffdfa3}, + {0x9832e836, 0xffffd865ffffdfa4}, + {0x9832e837, 0xffffd865ffffdfa5}, + {0x9832e838, 0xffffd865ffffdfa6}, + {0x9832e839, 0xffffd865ffffdfa7}, + {0x9832e930, 0xffffd865ffffdfa8}, + {0x9832e931, 0xffffd865ffffdfa9}, + {0x9832e932, 0xffffd865ffffdfaa}, + {0x9832e933, 0xffffd865ffffdfab}, + {0x9832e934, 0xffffd865ffffdfac}, + {0x9832e935, 0xffffd865ffffdfad}, + {0x9832e936, 0xffffd865ffffdfae}, + {0x9832e937, 0xffffd865ffffdfaf}, + {0x9832e938, 0xffffd865ffffdfb0}, + {0x9832e939, 0xffffd865ffffdfb1}, + {0x9832ea30, 0xffffd865ffffdfb2}, + {0x9832ea31, 0xffffd865ffffdfb3}, + {0x9832ea32, 0xffffd865ffffdfb4}, + {0x9832ea33, 0xffffd865ffffdfb5}, + {0x9832ea34, 0xffffd865ffffdfb6}, + {0x9832ea35, 0xffffd865ffffdfb7}, + {0x9832ea36, 0xffffd865ffffdfb8}, + {0x9832ea37, 0xffffd865ffffdfb9}, + {0x9832ea38, 0xffffd865ffffdfba}, + {0x9832ea39, 0xffffd865ffffdfbb}, + {0x9832eb30, 0xffffd865ffffdfbc}, + {0x9832eb31, 0xffffd865ffffdfbd}, + {0x9832eb32, 0xffffd865ffffdfbe}, + {0x9832eb33, 0xffffd865ffffdfbf}, + {0x9832eb34, 0xffffd865ffffdfc0}, + {0x9832eb35, 0xffffd865ffffdfc1}, + {0x9832eb36, 0xffffd865ffffdfc2}, + {0x9832eb37, 0xffffd865ffffdfc3}, + {0x9832eb38, 0xffffd865ffffdfc4}, + {0x9832eb39, 0xffffd865ffffdfc5}, + {0x9832ec30, 0xffffd865ffffdfc6}, + {0x9832ec31, 0xffffd865ffffdfc7}, + {0x9832ec32, 0xffffd865ffffdfc8}, + {0x9832ec33, 0xffffd865ffffdfc9}, + {0x9832ec34, 0xffffd865ffffdfca}, + {0x9832ec35, 0xffffd865ffffdfcb}, + {0x9832ec36, 0xffffd865ffffdfcc}, + {0x9832ec37, 0xffffd865ffffdfcd}, + {0x9832ec38, 0xffffd865ffffdfce}, + {0x9832ec39, 0xffffd865ffffdfcf}, + {0x9832ed30, 0xffffd865ffffdfd0}, + {0x9832ed31, 0xffffd865ffffdfd1}, + {0x9832ed32, 0xffffd865ffffdfd2}, + {0x9832ed33, 0xffffd865ffffdfd3}, + {0x9832ed34, 0xffffd865ffffdfd4}, + {0x9832ed35, 0xffffd865ffffdfd5}, + {0x9832ed36, 0xffffd865ffffdfd6}, + {0x9832ed37, 0xffffd865ffffdfd7}, + {0x9832ed38, 0xffffd865ffffdfd8}, + {0x9832ed39, 0xffffd865ffffdfd9}, + {0x9832ee30, 0xffffd865ffffdfda}, + {0x9832ee31, 0xffffd865ffffdfdb}, + {0x9832ee32, 0xffffd865ffffdfdc}, + {0x9832ee33, 0xffffd865ffffdfdd}, + {0x9832ee34, 0xffffd865ffffdfde}, + {0x9832ee35, 0xffffd865ffffdfdf}, + {0x9832ee36, 0xffffd865ffffdfe0}, + {0x9832ee37, 0xffffd865ffffdfe1}, + {0x9832ee38, 0xffffd865ffffdfe2}, + {0x9832ee39, 0xffffd865ffffdfe3}, + {0x9832ef30, 0xffffd865ffffdfe4}, + {0x9832ef31, 0xffffd865ffffdfe5}, + {0x9832ef32, 0xffffd865ffffdfe6}, + {0x9832ef33, 0xffffd865ffffdfe7}, + {0x9832ef34, 0xffffd865ffffdfe8}, + {0x9832ef35, 0xffffd865ffffdfe9}, + {0x9832ef36, 0xffffd865ffffdfea}, + {0x9832ef37, 0xffffd865ffffdfeb}, + {0x9832ef38, 0xffffd865ffffdfec}, + {0x9832ef39, 0xffffd865ffffdfed}, + {0x9832f030, 0xffffd865ffffdfee}, + {0x9832f031, 0xffffd865ffffdfef}, + {0x9832f032, 0xffffd865ffffdff0}, + {0x9832f033, 0xffffd865ffffdff1}, + {0x9832f034, 0xffffd865ffffdff2}, + {0x9832f035, 0xffffd865ffffdff3}, + {0x9832f036, 0xffffd865ffffdff4}, + {0x9832f037, 0xffffd865ffffdff5}, + {0x9832f038, 0xffffd865ffffdff6}, + {0x9832f039, 0xffffd865ffffdff7}, + {0x9832f130, 0xffffd865ffffdff8}, + {0x9832f131, 0xffffd865ffffdff9}, + {0x9832f132, 0xffffd865ffffdffa}, + {0x9832f133, 0xffffd865ffffdffb}, + {0x9832f134, 0xffffd865ffffdffc}, + {0x9832f135, 0xffffd865ffffdffd}, + {0x9832f136, 0xffffd865ffffdffe}, + {0x9832f137, 0xffffd865ffffdfff}, + {0x9832f138, 0xffffd866ffffdc00}, + {0x9832f139, 0xffffd866ffffdc01}, + {0x9832f230, 0xffffd866ffffdc02}, + {0x9832f231, 0xffffd866ffffdc03}, + {0x9832f232, 0xffffd866ffffdc04}, + {0x9832f233, 0xffffd866ffffdc05}, + {0x9832f234, 0xffffd866ffffdc06}, + {0x9832f235, 0xffffd866ffffdc07}, + {0x9832f236, 0xffffd866ffffdc08}, + {0x9832f237, 0xffffd866ffffdc09}, + {0x9832f238, 0xffffd866ffffdc0a}, + {0x9832f239, 0xffffd866ffffdc0b}, + {0x9832f330, 0xffffd866ffffdc0c}, + {0x9832f331, 0xffffd866ffffdc0d}, + {0x9832f332, 0xffffd866ffffdc0e}, + {0x9832f333, 0xffffd866ffffdc0f}, + {0x9832f334, 0xffffd866ffffdc10}, + {0x9832f335, 0xffffd866ffffdc11}, + {0x9832f336, 0xffffd866ffffdc12}, + {0x9832f337, 0xffffd866ffffdc13}, + {0x9832f338, 0xffffd866ffffdc14}, + {0x9832f339, 0xffffd866ffffdc15}, + {0x9832f430, 0xffffd866ffffdc16}, + {0x9832f431, 0xffffd866ffffdc17}, + {0x9832f432, 0xffffd866ffffdc18}, + {0x9832f433, 0xffffd866ffffdc19}, + {0x9832f434, 0xffffd866ffffdc1a}, + {0x9832f435, 0xffffd866ffffdc1b}, + {0x9832f436, 0xffffd866ffffdc1c}, + {0x9832f437, 0xffffd866ffffdc1d}, + {0x9832f438, 0xffffd866ffffdc1e}, + {0x9832f439, 0xffffd866ffffdc1f}, + {0x9832f530, 0xffffd866ffffdc20}, + {0x9832f531, 0xffffd866ffffdc21}, + {0x9832f532, 0xffffd866ffffdc22}, + {0x9832f533, 0xffffd866ffffdc23}, + {0x9832f534, 0xffffd866ffffdc24}, + {0x9832f535, 0xffffd866ffffdc25}, + {0x9832f536, 0xffffd866ffffdc26}, + {0x9832f537, 0xffffd866ffffdc27}, + {0x9832f538, 0xffffd866ffffdc28}, + {0x9832f539, 0xffffd866ffffdc29}, + {0x9832f630, 0xffffd866ffffdc2a}, + {0x9832f631, 0xffffd866ffffdc2b}, + {0x9832f632, 0xffffd866ffffdc2c}, + {0x9832f633, 0xffffd866ffffdc2d}, + {0x9832f634, 0xffffd866ffffdc2e}, + {0x9832f635, 0xffffd866ffffdc2f}, + {0x9832f636, 0xffffd866ffffdc30}, + {0x9832f637, 0xffffd866ffffdc31}, + {0x9832f638, 0xffffd866ffffdc32}, + {0x9832f639, 0xffffd866ffffdc33}, + {0x9832f730, 0xffffd866ffffdc34}, + {0x9832f731, 0xffffd866ffffdc35}, + {0x9832f732, 0xffffd866ffffdc36}, + {0x9832f733, 0xffffd866ffffdc37}, + {0x9832f734, 0xffffd866ffffdc38}, + {0x9832f735, 0xffffd866ffffdc39}, + {0x9832f736, 0xffffd866ffffdc3a}, + {0x9832f737, 0xffffd866ffffdc3b}, + {0x9832f738, 0xffffd866ffffdc3c}, + {0x9832f739, 0xffffd866ffffdc3d}, + {0x9832f830, 0xffffd866ffffdc3e}, + {0x9832f831, 0xffffd866ffffdc3f}, + {0x9832f832, 0xffffd866ffffdc40}, + {0x9832f833, 0xffffd866ffffdc41}, + {0x9832f834, 0xffffd866ffffdc42}, + {0x9832f835, 0xffffd866ffffdc43}, + {0x9832f836, 0xffffd866ffffdc44}, + {0x9832f837, 0xffffd866ffffdc45}, + {0x9832f838, 0xffffd866ffffdc46}, + {0x9832f839, 0xffffd866ffffdc47}, + {0x9832f930, 0xffffd866ffffdc48}, + {0x9832f931, 0xffffd866ffffdc49}, + {0x9832f932, 0xffffd866ffffdc4a}, + {0x9832f933, 0xffffd866ffffdc4b}, + {0x9832f934, 0xffffd866ffffdc4c}, + {0x9832f935, 0xffffd866ffffdc4d}, + {0x9832f936, 0xffffd866ffffdc4e}, + {0x9832f937, 0xffffd866ffffdc4f}, + {0x9832f938, 0xffffd866ffffdc50}, + {0x9832f939, 0xffffd866ffffdc51}, + {0x9832fa30, 0xffffd866ffffdc52}, + {0x9832fa31, 0xffffd866ffffdc53}, + {0x9832fa32, 0xffffd866ffffdc54}, + {0x9832fa33, 0xffffd866ffffdc55}, + {0x9832fa34, 0xffffd866ffffdc56}, + {0x9832fa35, 0xffffd866ffffdc57}, + {0x9832fa36, 0xffffd866ffffdc58}, + {0x9832fa37, 0xffffd866ffffdc59}, + {0x9832fa38, 0xffffd866ffffdc5a}, + {0x9832fa39, 0xffffd866ffffdc5b}, + {0x9832fb30, 0xffffd866ffffdc5c}, + {0x9832fb31, 0xffffd866ffffdc5d}, + {0x9832fb32, 0xffffd866ffffdc5e}, + {0x9832fb33, 0xffffd866ffffdc5f}, + {0x9832fb34, 0xffffd866ffffdc60}, + {0x9832fb35, 0xffffd866ffffdc61}, + {0x9832fb36, 0xffffd866ffffdc62}, + {0x9832fb37, 0xffffd866ffffdc63}, + {0x9832fb38, 0xffffd866ffffdc64}, + {0x9832fb39, 0xffffd866ffffdc65}, + {0x9832fc30, 0xffffd866ffffdc66}, + {0x9832fc31, 0xffffd866ffffdc67}, + {0x9832fc32, 0xffffd866ffffdc68}, + {0x9832fc33, 0xffffd866ffffdc69}, + {0x9832fc34, 0xffffd866ffffdc6a}, + {0x9832fc35, 0xffffd866ffffdc6b}, + {0x9832fc36, 0xffffd866ffffdc6c}, + {0x9832fc37, 0xffffd866ffffdc6d}, + {0x9832fc38, 0xffffd866ffffdc6e}, + {0x9832fc39, 0xffffd866ffffdc6f}, + {0x9832fd30, 0xffffd866ffffdc70}, + {0x9832fd31, 0xffffd866ffffdc71}, + {0x9832fd32, 0xffffd866ffffdc72}, + {0x9832fd33, 0xffffd866ffffdc73}, + {0x9832fd34, 0xffffd866ffffdc74}, + {0x9832fd35, 0xffffd866ffffdc75}, + {0x9832fd36, 0xffffd866ffffdc76}, + {0x9832fd37, 0xffffd866ffffdc77}, + {0x9832fd38, 0xffffd866ffffdc78}, + {0x9832fd39, 0xffffd866ffffdc79}, + {0x9832fe30, 0xffffd866ffffdc7a}, + {0x9832fe31, 0xffffd866ffffdc7b}, + {0x9832fe32, 0xffffd866ffffdc7c}, + {0x9832fe33, 0xffffd866ffffdc7d}, + {0x9832fe34, 0xffffd866ffffdc7e}, + {0x9832fe35, 0xffffd866ffffdc7f}, + {0x9832fe36, 0xffffd866ffffdc80}, + {0x9832fe37, 0xffffd866ffffdc81}, + {0x9832fe38, 0xffffd866ffffdc82}, + {0x9832fe39, 0xffffd866ffffdc83}, + {0x98338130, 0xffffd866ffffdc84}, + {0x98338131, 0xffffd866ffffdc85}, + {0x98338132, 0xffffd866ffffdc86}, + {0x98338133, 0xffffd866ffffdc87}, + {0x98338134, 0xffffd866ffffdc88}, + {0x98338135, 0xffffd866ffffdc89}, + {0x98338136, 0xffffd866ffffdc8a}, + {0x98338137, 0xffffd866ffffdc8b}, + {0x98338138, 0xffffd866ffffdc8c}, + {0x98338139, 0xffffd866ffffdc8d}, + {0x98338230, 0xffffd866ffffdc8e}, + {0x98338231, 0xffffd866ffffdc8f}, + {0x98338232, 0xffffd866ffffdc90}, + {0x98338233, 0xffffd866ffffdc91}, + {0x98338234, 0xffffd866ffffdc92}, + {0x98338235, 0xffffd866ffffdc93}, + {0x98338236, 0xffffd866ffffdc94}, + {0x98338237, 0xffffd866ffffdc95}, + {0x98338238, 0xffffd866ffffdc96}, + {0x98338239, 0xffffd866ffffdc97}, + {0x98338330, 0xffffd866ffffdc98}, + {0x98338331, 0xffffd866ffffdc99}, + {0x98338332, 0xffffd866ffffdc9a}, + {0x98338333, 0xffffd866ffffdc9b}, + {0x98338334, 0xffffd866ffffdc9c}, + {0x98338335, 0xffffd866ffffdc9d}, + {0x98338336, 0xffffd866ffffdc9e}, + {0x98338337, 0xffffd866ffffdc9f}, + {0x98338338, 0xffffd866ffffdca0}, + {0x98338339, 0xffffd866ffffdca1}, + {0x98338430, 0xffffd866ffffdca2}, + {0x98338431, 0xffffd866ffffdca3}, + {0x98338432, 0xffffd866ffffdca4}, + {0x98338433, 0xffffd866ffffdca5}, + {0x98338434, 0xffffd866ffffdca6}, + {0x98338435, 0xffffd866ffffdca7}, + {0x98338436, 0xffffd866ffffdca8}, + {0x98338437, 0xffffd866ffffdca9}, + {0x98338438, 0xffffd866ffffdcaa}, + {0x98338439, 0xffffd866ffffdcab}, + {0x98338530, 0xffffd866ffffdcac}, + {0x98338531, 0xffffd866ffffdcad}, + {0x98338532, 0xffffd866ffffdcae}, + {0x98338533, 0xffffd866ffffdcaf}, + {0x98338534, 0xffffd866ffffdcb0}, + {0x98338535, 0xffffd866ffffdcb1}, + {0x98338536, 0xffffd866ffffdcb2}, + {0x98338537, 0xffffd866ffffdcb3}, + {0x98338538, 0xffffd866ffffdcb4}, + {0x98338539, 0xffffd866ffffdcb5}, + {0x98338630, 0xffffd866ffffdcb6}, + {0x98338631, 0xffffd866ffffdcb7}, + {0x98338632, 0xffffd866ffffdcb8}, + {0x98338633, 0xffffd866ffffdcb9}, + {0x98338634, 0xffffd866ffffdcba}, + {0x98338635, 0xffffd866ffffdcbb}, + {0x98338636, 0xffffd866ffffdcbc}, + {0x98338637, 0xffffd866ffffdcbd}, + {0x98338638, 0xffffd866ffffdcbe}, + {0x98338639, 0xffffd866ffffdcbf}, + {0x98338730, 0xffffd866ffffdcc0}, + {0x98338731, 0xffffd866ffffdcc1}, + {0x98338732, 0xffffd866ffffdcc2}, + {0x98338733, 0xffffd866ffffdcc3}, + {0x98338734, 0xffffd866ffffdcc4}, + {0x98338735, 0xffffd866ffffdcc5}, + {0x98338736, 0xffffd866ffffdcc6}, + {0x98338737, 0xffffd866ffffdcc7}, + {0x98338738, 0xffffd866ffffdcc8}, + {0x98338739, 0xffffd866ffffdcc9}, + {0x98338830, 0xffffd866ffffdcca}, + {0x98338831, 0xffffd866ffffdccb}, + {0x98338832, 0xffffd866ffffdccc}, + {0x98338833, 0xffffd866ffffdccd}, + {0x98338834, 0xffffd866ffffdcce}, + {0x98338835, 0xffffd866ffffdccf}, + {0x98338836, 0xffffd866ffffdcd0}, + {0x98338837, 0xffffd866ffffdcd1}, + {0x98338838, 0xffffd866ffffdcd2}, + {0x98338839, 0xffffd866ffffdcd3}, + {0x98338930, 0xffffd866ffffdcd4}, + {0x98338931, 0xffffd866ffffdcd5}, + {0x98338932, 0xffffd866ffffdcd6}, + {0x98338933, 0xffffd866ffffdcd7}, + {0x98338934, 0xffffd866ffffdcd8}, + {0x98338935, 0xffffd866ffffdcd9}, + {0x98338936, 0xffffd866ffffdcda}, + {0x98338937, 0xffffd866ffffdcdb}, + {0x98338938, 0xffffd866ffffdcdc}, + {0x98338939, 0xffffd866ffffdcdd}, + {0x98338a30, 0xffffd866ffffdcde}, + {0x98338a31, 0xffffd866ffffdcdf}, + {0x98338a32, 0xffffd866ffffdce0}, + {0x98338a33, 0xffffd866ffffdce1}, + {0x98338a34, 0xffffd866ffffdce2}, + {0x98338a35, 0xffffd866ffffdce3}, + {0x98338a36, 0xffffd866ffffdce4}, + {0x98338a37, 0xffffd866ffffdce5}, + {0x98338a38, 0xffffd866ffffdce6}, + {0x98338a39, 0xffffd866ffffdce7}, + {0x98338b30, 0xffffd866ffffdce8}, + {0x98338b31, 0xffffd866ffffdce9}, + {0x98338b32, 0xffffd866ffffdcea}, + {0x98338b33, 0xffffd866ffffdceb}, + {0x98338b34, 0xffffd866ffffdcec}, + {0x98338b35, 0xffffd866ffffdced}, + {0x98338b36, 0xffffd866ffffdcee}, + {0x98338b37, 0xffffd866ffffdcef}, + {0x98338b38, 0xffffd866ffffdcf0}, + {0x98338b39, 0xffffd866ffffdcf1}, + {0x98338c30, 0xffffd866ffffdcf2}, + {0x98338c31, 0xffffd866ffffdcf3}, + {0x98338c32, 0xffffd866ffffdcf4}, + {0x98338c33, 0xffffd866ffffdcf5}, + {0x98338c34, 0xffffd866ffffdcf6}, + {0x98338c35, 0xffffd866ffffdcf7}, + {0x98338c36, 0xffffd866ffffdcf8}, + {0x98338c37, 0xffffd866ffffdcf9}, + {0x98338c38, 0xffffd866ffffdcfa}, + {0x98338c39, 0xffffd866ffffdcfb}, + {0x98338d30, 0xffffd866ffffdcfc}, + {0x98338d31, 0xffffd866ffffdcfd}, + {0x98338d32, 0xffffd866ffffdcfe}, + {0x98338d33, 0xffffd866ffffdcff}, + {0x98338d34, 0xffffd866ffffdd00}, + {0x98338d35, 0xffffd866ffffdd01}, + {0x98338d36, 0xffffd866ffffdd02}, + {0x98338d37, 0xffffd866ffffdd03}, + {0x98338d38, 0xffffd866ffffdd04}, + {0x98338d39, 0xffffd866ffffdd05}, + {0x98338e30, 0xffffd866ffffdd06}, + {0x98338e31, 0xffffd866ffffdd07}, + {0x98338e32, 0xffffd866ffffdd08}, + {0x98338e33, 0xffffd866ffffdd09}, + {0x98338e34, 0xffffd866ffffdd0a}, + {0x98338e35, 0xffffd866ffffdd0b}, + {0x98338e36, 0xffffd866ffffdd0c}, + {0x98338e37, 0xffffd866ffffdd0d}, + {0x98338e38, 0xffffd866ffffdd0e}, + {0x98338e39, 0xffffd866ffffdd0f}, + {0x98338f30, 0xffffd866ffffdd10}, + {0x98338f31, 0xffffd866ffffdd11}, + {0x98338f32, 0xffffd866ffffdd12}, + {0x98338f33, 0xffffd866ffffdd13}, + {0x98338f34, 0xffffd866ffffdd14}, + {0x98338f35, 0xffffd866ffffdd15}, + {0x98338f36, 0xffffd866ffffdd16}, + {0x98338f37, 0xffffd866ffffdd17}, + {0x98338f38, 0xffffd866ffffdd18}, + {0x98338f39, 0xffffd866ffffdd19}, + {0x98339030, 0xffffd866ffffdd1a}, + {0x98339031, 0xffffd866ffffdd1b}, + {0x98339032, 0xffffd866ffffdd1c}, + {0x98339033, 0xffffd866ffffdd1d}, + {0x98339034, 0xffffd866ffffdd1e}, + {0x98339035, 0xffffd866ffffdd1f}, + {0x98339036, 0xffffd866ffffdd20}, + {0x98339037, 0xffffd866ffffdd21}, + {0x98339038, 0xffffd866ffffdd22}, + {0x98339039, 0xffffd866ffffdd23}, + {0x98339130, 0xffffd866ffffdd24}, + {0x98339131, 0xffffd866ffffdd25}, + {0x98339132, 0xffffd866ffffdd26}, + {0x98339133, 0xffffd866ffffdd27}, + {0x98339134, 0xffffd866ffffdd28}, + {0x98339135, 0xffffd866ffffdd29}, + {0x98339136, 0xffffd866ffffdd2a}, + {0x98339137, 0xffffd866ffffdd2b}, + {0x98339138, 0xffffd866ffffdd2c}, + {0x98339139, 0xffffd866ffffdd2d}, + {0x98339230, 0xffffd866ffffdd2e}, + {0x98339231, 0xffffd866ffffdd2f}, + {0x98339232, 0xffffd866ffffdd30}, + {0x98339233, 0xffffd866ffffdd31}, + {0x98339234, 0xffffd866ffffdd32}, + {0x98339235, 0xffffd866ffffdd33}, + {0x98339236, 0xffffd866ffffdd34}, + {0x98339237, 0xffffd866ffffdd35}, + {0x98339238, 0xffffd866ffffdd36}, + {0x98339239, 0xffffd866ffffdd37}, + {0x98339330, 0xffffd866ffffdd38}, + {0x98339331, 0xffffd866ffffdd39}, + {0x98339332, 0xffffd866ffffdd3a}, + {0x98339333, 0xffffd866ffffdd3b}, + {0x98339334, 0xffffd866ffffdd3c}, + {0x98339335, 0xffffd866ffffdd3d}, + {0x98339336, 0xffffd866ffffdd3e}, + {0x98339337, 0xffffd866ffffdd3f}, + {0x98339338, 0xffffd866ffffdd40}, + {0x98339339, 0xffffd866ffffdd41}, + {0x98339430, 0xffffd866ffffdd42}, + {0x98339431, 0xffffd866ffffdd43}, + {0x98339432, 0xffffd866ffffdd44}, + {0x98339433, 0xffffd866ffffdd45}, + {0x98339434, 0xffffd866ffffdd46}, + {0x98339435, 0xffffd866ffffdd47}, + {0x98339436, 0xffffd866ffffdd48}, + {0x98339437, 0xffffd866ffffdd49}, + {0x98339438, 0xffffd866ffffdd4a}, + {0x98339439, 0xffffd866ffffdd4b}, + {0x98339530, 0xffffd866ffffdd4c}, + {0x98339531, 0xffffd866ffffdd4d}, + {0x98339532, 0xffffd866ffffdd4e}, + {0x98339533, 0xffffd866ffffdd4f}, + {0x98339534, 0xffffd866ffffdd50}, + {0x98339535, 0xffffd866ffffdd51}, + {0x98339536, 0xffffd866ffffdd52}, + {0x98339537, 0xffffd866ffffdd53}, + {0x98339538, 0xffffd866ffffdd54}, + {0x98339539, 0xffffd866ffffdd55}, + {0x98339630, 0xffffd866ffffdd56}, + {0x98339631, 0xffffd866ffffdd57}, + {0x98339632, 0xffffd866ffffdd58}, + {0x98339633, 0xffffd866ffffdd59}, + {0x98339634, 0xffffd866ffffdd5a}, + {0x98339635, 0xffffd866ffffdd5b}, + {0x98339636, 0xffffd866ffffdd5c}, + {0x98339637, 0xffffd866ffffdd5d}, + {0x98339638, 0xffffd866ffffdd5e}, + {0x98339639, 0xffffd866ffffdd5f}, + {0x98339730, 0xffffd866ffffdd60}, + {0x98339731, 0xffffd866ffffdd61}, + {0x98339732, 0xffffd866ffffdd62}, + {0x98339733, 0xffffd866ffffdd63}, + {0x98339734, 0xffffd866ffffdd64}, + {0x98339735, 0xffffd866ffffdd65}, + {0x98339736, 0xffffd866ffffdd66}, + {0x98339737, 0xffffd866ffffdd67}, + {0x98339738, 0xffffd866ffffdd68}, + {0x98339739, 0xffffd866ffffdd69}, + {0x98339830, 0xffffd866ffffdd6a}, + {0x98339831, 0xffffd866ffffdd6b}, + {0x98339832, 0xffffd866ffffdd6c}, + {0x98339833, 0xffffd866ffffdd6d}, + {0x98339834, 0xffffd866ffffdd6e}, + {0x98339835, 0xffffd866ffffdd6f}, + {0x98339836, 0xffffd866ffffdd70}, + {0x98339837, 0xffffd866ffffdd71}, + {0x98339838, 0xffffd866ffffdd72}, + {0x98339839, 0xffffd866ffffdd73}, + {0x98339930, 0xffffd866ffffdd74}, + {0x98339931, 0xffffd866ffffdd75}, + {0x98339932, 0xffffd866ffffdd76}, + {0x98339933, 0xffffd866ffffdd77}, + {0x98339934, 0xffffd866ffffdd78}, + {0x98339935, 0xffffd866ffffdd79}, + {0x98339936, 0xffffd866ffffdd7a}, + {0x98339937, 0xffffd866ffffdd7b}, + {0x98339938, 0xffffd866ffffdd7c}, + {0x98339939, 0xffffd866ffffdd7d}, + {0x98339a30, 0xffffd866ffffdd7e}, + {0x98339a31, 0xffffd866ffffdd7f}, + {0x98339a32, 0xffffd866ffffdd80}, + {0x98339a33, 0xffffd866ffffdd81}, + {0x98339a34, 0xffffd866ffffdd82}, + {0x98339a35, 0xffffd866ffffdd83}, + {0x98339a36, 0xffffd866ffffdd84}, + {0x98339a37, 0xffffd866ffffdd85}, + {0x98339a38, 0xffffd866ffffdd86}, + {0x98339a39, 0xffffd866ffffdd87}, + {0x98339b30, 0xffffd866ffffdd88}, + {0x98339b31, 0xffffd866ffffdd89}, + {0x98339b32, 0xffffd866ffffdd8a}, + {0x98339b33, 0xffffd866ffffdd8b}, + {0x98339b34, 0xffffd866ffffdd8c}, + {0x98339b35, 0xffffd866ffffdd8d}, + {0x98339b36, 0xffffd866ffffdd8e}, + {0x98339b37, 0xffffd866ffffdd8f}, + {0x98339b38, 0xffffd866ffffdd90}, + {0x98339b39, 0xffffd866ffffdd91}, + {0x98339c30, 0xffffd866ffffdd92}, + {0x98339c31, 0xffffd866ffffdd93}, + {0x98339c32, 0xffffd866ffffdd94}, + {0x98339c33, 0xffffd866ffffdd95}, + {0x98339c34, 0xffffd866ffffdd96}, + {0x98339c35, 0xffffd866ffffdd97}, + {0x98339c36, 0xffffd866ffffdd98}, + {0x98339c37, 0xffffd866ffffdd99}, + {0x98339c38, 0xffffd866ffffdd9a}, + {0x98339c39, 0xffffd866ffffdd9b}, + {0x98339d30, 0xffffd866ffffdd9c}, + {0x98339d31, 0xffffd866ffffdd9d}, + {0x98339d32, 0xffffd866ffffdd9e}, + {0x98339d33, 0xffffd866ffffdd9f}, + {0x98339d34, 0xffffd866ffffdda0}, + {0x98339d35, 0xffffd866ffffdda1}, + {0x98339d36, 0xffffd866ffffdda2}, + {0x98339d37, 0xffffd866ffffdda3}, + {0x98339d38, 0xffffd866ffffdda4}, + {0x98339d39, 0xffffd866ffffdda5}, + {0x98339e30, 0xffffd866ffffdda6}, + {0x98339e31, 0xffffd866ffffdda7}, + {0x98339e32, 0xffffd866ffffdda8}, + {0x98339e33, 0xffffd866ffffdda9}, + {0x98339e34, 0xffffd866ffffddaa}, + {0x98339e35, 0xffffd866ffffddab}, + {0x98339e36, 0xffffd866ffffddac}, + {0x98339e37, 0xffffd866ffffddad}, + {0x98339e38, 0xffffd866ffffddae}, + {0x98339e39, 0xffffd866ffffddaf}, + {0x98339f30, 0xffffd866ffffddb0}, + {0x98339f31, 0xffffd866ffffddb1}, + {0x98339f32, 0xffffd866ffffddb2}, + {0x98339f33, 0xffffd866ffffddb3}, + {0x98339f34, 0xffffd866ffffddb4}, + {0x98339f35, 0xffffd866ffffddb5}, + {0x98339f36, 0xffffd866ffffddb6}, + {0x98339f37, 0xffffd866ffffddb7}, + {0x98339f38, 0xffffd866ffffddb8}, + {0x98339f39, 0xffffd866ffffddb9}, + {0x9833a030, 0xffffd866ffffddba}, + {0x9833a031, 0xffffd866ffffddbb}, + {0x9833a032, 0xffffd866ffffddbc}, + {0x9833a033, 0xffffd866ffffddbd}, + {0x9833a034, 0xffffd866ffffddbe}, + {0x9833a035, 0xffffd866ffffddbf}, + {0x9833a036, 0xffffd866ffffddc0}, + {0x9833a037, 0xffffd866ffffddc1}, + {0x9833a038, 0xffffd866ffffddc2}, + {0x9833a039, 0xffffd866ffffddc3}, + {0x9833a130, 0xffffd866ffffddc4}, + {0x9833a131, 0xffffd866ffffddc5}, + {0x9833a132, 0xffffd866ffffddc6}, + {0x9833a133, 0xffffd866ffffddc7}, + {0x9833a134, 0xffffd866ffffddc8}, + {0x9833a135, 0xffffd866ffffddc9}, + {0x9833a136, 0xffffd866ffffddca}, + {0x9833a137, 0xffffd866ffffddcb}, + {0x9833a138, 0xffffd866ffffddcc}, + {0x9833a139, 0xffffd866ffffddcd}, + {0x9833a230, 0xffffd866ffffddce}, + {0x9833a231, 0xffffd866ffffddcf}, + {0x9833a232, 0xffffd866ffffddd0}, + {0x9833a233, 0xffffd866ffffddd1}, + {0x9833a234, 0xffffd866ffffddd2}, + {0x9833a235, 0xffffd866ffffddd3}, + {0x9833a236, 0xffffd866ffffddd4}, + {0x9833a237, 0xffffd866ffffddd5}, + {0x9833a238, 0xffffd866ffffddd6}, + {0x9833a239, 0xffffd866ffffddd7}, + {0x9833a330, 0xffffd866ffffddd8}, + {0x9833a331, 0xffffd866ffffddd9}, + {0x9833a332, 0xffffd866ffffddda}, + {0x9833a333, 0xffffd866ffffdddb}, + {0x9833a334, 0xffffd866ffffdddc}, + {0x9833a335, 0xffffd866ffffdddd}, + {0x9833a336, 0xffffd866ffffddde}, + {0x9833a337, 0xffffd866ffffdddf}, + {0x9833a338, 0xffffd866ffffdde0}, + {0x9833a339, 0xffffd866ffffdde1}, + {0x9833a430, 0xffffd866ffffdde2}, + {0x9833a431, 0xffffd866ffffdde3}, + {0x9833a432, 0xffffd866ffffdde4}, + {0x9833a433, 0xffffd866ffffdde5}, + {0x9833a434, 0xffffd866ffffdde6}, + {0x9833a435, 0xffffd866ffffdde7}, + {0x9833a436, 0xffffd866ffffdde8}, + {0x9833a437, 0xffffd866ffffdde9}, + {0x9833a438, 0xffffd866ffffddea}, + {0x9833a439, 0xffffd866ffffddeb}, + {0x9833a530, 0xffffd866ffffddec}, + {0x9833a531, 0xffffd866ffffdded}, + {0x9833a532, 0xffffd866ffffddee}, + {0x9833a533, 0xffffd866ffffddef}, + {0x9833a534, 0xffffd866ffffddf0}, + {0x9833a535, 0xffffd866ffffddf1}, + {0x9833a536, 0xffffd866ffffddf2}, + {0x9833a537, 0xffffd866ffffddf3}, + {0x9833a538, 0xffffd866ffffddf4}, + {0x9833a539, 0xffffd866ffffddf5}, + {0x9833a630, 0xffffd866ffffddf6}, + {0x9833a631, 0xffffd866ffffddf7}, + {0x9833a632, 0xffffd866ffffddf8}, + {0x9833a633, 0xffffd866ffffddf9}, + {0x9833a634, 0xffffd866ffffddfa}, + {0x9833a635, 0xffffd866ffffddfb}, + {0x9833a636, 0xffffd866ffffddfc}, + {0x9833a637, 0xffffd866ffffddfd}, + {0x9833a638, 0xffffd866ffffddfe}, + {0x9833a639, 0xffffd866ffffddff}, + {0x9833a730, 0xffffd866ffffde00}, + {0x9833a731, 0xffffd866ffffde01}, + {0x9833a732, 0xffffd866ffffde02}, + {0x9833a733, 0xffffd866ffffde03}, + {0x9833a734, 0xffffd866ffffde04}, + {0x9833a735, 0xffffd866ffffde05}, + {0x9833a736, 0xffffd866ffffde06}, + {0x9833a737, 0xffffd866ffffde07}, + {0x9833a738, 0xffffd866ffffde08}, + {0x9833a739, 0xffffd866ffffde09}, + {0x9833a830, 0xffffd866ffffde0a}, + {0x9833a831, 0xffffd866ffffde0b}, + {0x9833a832, 0xffffd866ffffde0c}, + {0x9833a833, 0xffffd866ffffde0d}, + {0x9833a834, 0xffffd866ffffde0e}, + {0x9833a835, 0xffffd866ffffde0f}, + {0x9833a836, 0xffffd866ffffde10}, + {0x9833a837, 0xffffd866ffffde11}, + {0x9833a838, 0xffffd866ffffde12}, + {0x9833a839, 0xffffd866ffffde13}, + {0x9833a930, 0xffffd866ffffde14}, + {0x9833a931, 0xffffd866ffffde15}, + {0x9833a932, 0xffffd866ffffde16}, + {0x9833a933, 0xffffd866ffffde17}, + {0x9833a934, 0xffffd866ffffde18}, + {0x9833a935, 0xffffd866ffffde19}, + {0x9833a936, 0xffffd866ffffde1a}, + {0x9833a937, 0xffffd866ffffde1b}, + {0x9833a938, 0xffffd866ffffde1c}, + {0x9833a939, 0xffffd866ffffde1d}, + {0x9833aa30, 0xffffd866ffffde1e}, + {0x9833aa31, 0xffffd866ffffde1f}, + {0x9833aa32, 0xffffd866ffffde20}, + {0x9833aa33, 0xffffd866ffffde21}, + {0x9833aa34, 0xffffd866ffffde22}, + {0x9833aa35, 0xffffd866ffffde23}, + {0x9833aa36, 0xffffd866ffffde24}, + {0x9833aa37, 0xffffd866ffffde25}, + {0x9833aa38, 0xffffd866ffffde26}, + {0x9833aa39, 0xffffd866ffffde27}, + {0x9833ab30, 0xffffd866ffffde28}, + {0x9833ab31, 0xffffd866ffffde29}, + {0x9833ab32, 0xffffd866ffffde2a}, + {0x9833ab33, 0xffffd866ffffde2b}, + {0x9833ab34, 0xffffd866ffffde2c}, + {0x9833ab35, 0xffffd866ffffde2d}, + {0x9833ab36, 0xffffd866ffffde2e}, + {0x9833ab37, 0xffffd866ffffde2f}, + {0x9833ab38, 0xffffd866ffffde30}, + {0x9833ab39, 0xffffd866ffffde31}, + {0x9833ac30, 0xffffd866ffffde32}, + {0x9833ac31, 0xffffd866ffffde33}, + {0x9833ac32, 0xffffd866ffffde34}, + {0x9833ac33, 0xffffd866ffffde35}, + {0x9833ac34, 0xffffd866ffffde36}, + {0x9833ac35, 0xffffd866ffffde37}, + {0x9833ac36, 0xffffd866ffffde38}, + {0x9833ac37, 0xffffd866ffffde39}, + {0x9833ac38, 0xffffd866ffffde3a}, + {0x9833ac39, 0xffffd866ffffde3b}, + {0x9833ad30, 0xffffd866ffffde3c}, + {0x9833ad31, 0xffffd866ffffde3d}, + {0x9833ad32, 0xffffd866ffffde3e}, + {0x9833ad33, 0xffffd866ffffde3f}, + {0x9833ad34, 0xffffd866ffffde40}, + {0x9833ad35, 0xffffd866ffffde41}, + {0x9833ad36, 0xffffd866ffffde42}, + {0x9833ad37, 0xffffd866ffffde43}, + {0x9833ad38, 0xffffd866ffffde44}, + {0x9833ad39, 0xffffd866ffffde45}, + {0x9833ae30, 0xffffd866ffffde46}, + {0x9833ae31, 0xffffd866ffffde47}, + {0x9833ae32, 0xffffd866ffffde48}, + {0x9833ae33, 0xffffd866ffffde49}, + {0x9833ae34, 0xffffd866ffffde4a}, + {0x9833ae35, 0xffffd866ffffde4b}, + {0x9833ae36, 0xffffd866ffffde4c}, + {0x9833ae37, 0xffffd866ffffde4d}, + {0x9833ae38, 0xffffd866ffffde4e}, + {0x9833ae39, 0xffffd866ffffde4f}, + {0x9833af30, 0xffffd866ffffde50}, + {0x9833af31, 0xffffd866ffffde51}, + {0x9833af32, 0xffffd866ffffde52}, + {0x9833af33, 0xffffd866ffffde53}, + {0x9833af34, 0xffffd866ffffde54}, + {0x9833af35, 0xffffd866ffffde55}, + {0x9833af36, 0xffffd866ffffde56}, + {0x9833af37, 0xffffd866ffffde57}, + {0x9833af38, 0xffffd866ffffde58}, + {0x9833af39, 0xffffd866ffffde59}, + {0x9833b030, 0xffffd866ffffde5a}, + {0x9833b031, 0xffffd866ffffde5b}, + {0x9833b032, 0xffffd866ffffde5c}, + {0x9833b033, 0xffffd866ffffde5d}, + {0x9833b034, 0xffffd866ffffde5e}, + {0x9833b035, 0xffffd866ffffde5f}, + {0x9833b036, 0xffffd866ffffde60}, + {0x9833b037, 0xffffd866ffffde61}, + {0x9833b038, 0xffffd866ffffde62}, + {0x9833b039, 0xffffd866ffffde63}, + {0x9833b130, 0xffffd866ffffde64}, + {0x9833b131, 0xffffd866ffffde65}, + {0x9833b132, 0xffffd866ffffde66}, + {0x9833b133, 0xffffd866ffffde67}, + {0x9833b134, 0xffffd866ffffde68}, + {0x9833b135, 0xffffd866ffffde69}, + {0x9833b136, 0xffffd866ffffde6a}, + {0x9833b137, 0xffffd866ffffde6b}, + {0x9833b138, 0xffffd866ffffde6c}, + {0x9833b139, 0xffffd866ffffde6d}, + {0x9833b230, 0xffffd866ffffde6e}, + {0x9833b231, 0xffffd866ffffde6f}, + {0x9833b232, 0xffffd866ffffde70}, + {0x9833b233, 0xffffd866ffffde71}, + {0x9833b234, 0xffffd866ffffde72}, + {0x9833b235, 0xffffd866ffffde73}, + {0x9833b236, 0xffffd866ffffde74}, + {0x9833b237, 0xffffd866ffffde75}, + {0x9833b238, 0xffffd866ffffde76}, + {0x9833b239, 0xffffd866ffffde77}, + {0x9833b330, 0xffffd866ffffde78}, + {0x9833b331, 0xffffd866ffffde79}, + {0x9833b332, 0xffffd866ffffde7a}, + {0x9833b333, 0xffffd866ffffde7b}, + {0x9833b334, 0xffffd866ffffde7c}, + {0x9833b335, 0xffffd866ffffde7d}, + {0x9833b336, 0xffffd866ffffde7e}, + {0x9833b337, 0xffffd866ffffde7f}, + {0x9833b338, 0xffffd866ffffde80}, + {0x9833b339, 0xffffd866ffffde81}, + {0x9833b430, 0xffffd866ffffde82}, + {0x9833b431, 0xffffd866ffffde83}, + {0x9833b432, 0xffffd866ffffde84}, + {0x9833b433, 0xffffd866ffffde85}, + {0x9833b434, 0xffffd866ffffde86}, + {0x9833b435, 0xffffd866ffffde87}, + {0x9833b436, 0xffffd866ffffde88}, + {0x9833b437, 0xffffd866ffffde89}, + {0x9833b438, 0xffffd866ffffde8a}, + {0x9833b439, 0xffffd866ffffde8b}, + {0x9833b530, 0xffffd866ffffde8c}, + {0x9833b531, 0xffffd866ffffde8d}, + {0x9833b532, 0xffffd866ffffde8e}, + {0x9833b533, 0xffffd866ffffde8f}, + {0x9833b534, 0xffffd866ffffde90}, + {0x9833b535, 0xffffd866ffffde91}, + {0x9833b536, 0xffffd866ffffde92}, + {0x9833b537, 0xffffd866ffffde93}, + {0x9833b538, 0xffffd866ffffde94}, + {0x9833b539, 0xffffd866ffffde95}, + {0x9833b630, 0xffffd866ffffde96}, + {0x9833b631, 0xffffd866ffffde97}, + {0x9833b632, 0xffffd866ffffde98}, + {0x9833b633, 0xffffd866ffffde99}, + {0x9833b634, 0xffffd866ffffde9a}, + {0x9833b635, 0xffffd866ffffde9b}, + {0x9833b636, 0xffffd866ffffde9c}, + {0x9833b637, 0xffffd866ffffde9d}, + {0x9833b638, 0xffffd866ffffde9e}, + {0x9833b639, 0xffffd866ffffde9f}, + {0x9833b730, 0xffffd866ffffdea0}, + {0x9833b731, 0xffffd866ffffdea1}, + {0x9833b732, 0xffffd866ffffdea2}, + {0x9833b733, 0xffffd866ffffdea3}, + {0x9833b734, 0xffffd866ffffdea4}, + {0x9833b735, 0xffffd866ffffdea5}, + {0x9833b736, 0xffffd866ffffdea6}, + {0x9833b737, 0xffffd866ffffdea7}, + {0x9833b738, 0xffffd866ffffdea8}, + {0x9833b739, 0xffffd866ffffdea9}, + {0x9833b830, 0xffffd866ffffdeaa}, + {0x9833b831, 0xffffd866ffffdeab}, + {0x9833b832, 0xffffd866ffffdeac}, + {0x9833b833, 0xffffd866ffffdead}, + {0x9833b834, 0xffffd866ffffdeae}, + {0x9833b835, 0xffffd866ffffdeaf}, + {0x9833b836, 0xffffd866ffffdeb0}, + {0x9833b837, 0xffffd866ffffdeb1}, + {0x9833b838, 0xffffd866ffffdeb2}, + {0x9833b839, 0xffffd866ffffdeb3}, + {0x9833b930, 0xffffd866ffffdeb4}, + {0x9833b931, 0xffffd866ffffdeb5}, + {0x9833b932, 0xffffd866ffffdeb6}, + {0x9833b933, 0xffffd866ffffdeb7}, + {0x9833b934, 0xffffd866ffffdeb8}, + {0x9833b935, 0xffffd866ffffdeb9}, + {0x9833b936, 0xffffd866ffffdeba}, + {0x9833b937, 0xffffd866ffffdebb}, + {0x9833b938, 0xffffd866ffffdebc}, + {0x9833b939, 0xffffd866ffffdebd}, + {0x9833ba30, 0xffffd866ffffdebe}, + {0x9833ba31, 0xffffd866ffffdebf}, + {0x9833ba32, 0xffffd866ffffdec0}, + {0x9833ba33, 0xffffd866ffffdec1}, + {0x9833ba34, 0xffffd866ffffdec2}, + {0x9833ba35, 0xffffd866ffffdec3}, + {0x9833ba36, 0xffffd866ffffdec4}, + {0x9833ba37, 0xffffd866ffffdec5}, + {0x9833ba38, 0xffffd866ffffdec6}, + {0x9833ba39, 0xffffd866ffffdec7}, + {0x9833bb30, 0xffffd866ffffdec8}, + {0x9833bb31, 0xffffd866ffffdec9}, + {0x9833bb32, 0xffffd866ffffdeca}, + {0x9833bb33, 0xffffd866ffffdecb}, + {0x9833bb34, 0xffffd866ffffdecc}, + {0x9833bb35, 0xffffd866ffffdecd}, + {0x9833bb36, 0xffffd866ffffdece}, + {0x9833bb37, 0xffffd866ffffdecf}, + {0x9833bb38, 0xffffd866ffffded0}, + {0x9833bb39, 0xffffd866ffffded1}, + {0x9833bc30, 0xffffd866ffffded2}, + {0x9833bc31, 0xffffd866ffffded3}, + {0x9833bc32, 0xffffd866ffffded4}, + {0x9833bc33, 0xffffd866ffffded5}, + {0x9833bc34, 0xffffd866ffffded6}, + {0x9833bc35, 0xffffd866ffffded7}, + {0x9833bc36, 0xffffd866ffffded8}, + {0x9833bc37, 0xffffd866ffffded9}, + {0x9833bc38, 0xffffd866ffffdeda}, + {0x9833bc39, 0xffffd866ffffdedb}, + {0x9833bd30, 0xffffd866ffffdedc}, + {0x9833bd31, 0xffffd866ffffdedd}, + {0x9833bd32, 0xffffd866ffffdede}, + {0x9833bd33, 0xffffd866ffffdedf}, + {0x9833bd34, 0xffffd866ffffdee0}, + {0x9833bd35, 0xffffd866ffffdee1}, + {0x9833bd36, 0xffffd866ffffdee2}, + {0x9833bd37, 0xffffd866ffffdee3}, + {0x9833bd38, 0xffffd866ffffdee4}, + {0x9833bd39, 0xffffd866ffffdee5}, + {0x9833be30, 0xffffd866ffffdee6}, + {0x9833be31, 0xffffd866ffffdee7}, + {0x9833be32, 0xffffd866ffffdee8}, + {0x9833be33, 0xffffd866ffffdee9}, + {0x9833be34, 0xffffd866ffffdeea}, + {0x9833be35, 0xffffd866ffffdeeb}, + {0x9833be36, 0xffffd866ffffdeec}, + {0x9833be37, 0xffffd866ffffdeed}, + {0x9833be38, 0xffffd866ffffdeee}, + {0x9833be39, 0xffffd866ffffdeef}, + {0x9833bf30, 0xffffd866ffffdef0}, + {0x9833bf31, 0xffffd866ffffdef1}, + {0x9833bf32, 0xffffd866ffffdef2}, + {0x9833bf33, 0xffffd866ffffdef3}, + {0x9833bf34, 0xffffd866ffffdef4}, + {0x9833bf35, 0xffffd866ffffdef5}, + {0x9833bf36, 0xffffd866ffffdef6}, + {0x9833bf37, 0xffffd866ffffdef7}, + {0x9833bf38, 0xffffd866ffffdef8}, + {0x9833bf39, 0xffffd866ffffdef9}, + {0x9833c030, 0xffffd866ffffdefa}, + {0x9833c031, 0xffffd866ffffdefb}, + {0x9833c032, 0xffffd866ffffdefc}, + {0x9833c033, 0xffffd866ffffdefd}, + {0x9833c034, 0xffffd866ffffdefe}, + {0x9833c035, 0xffffd866ffffdeff}, + {0x9833c036, 0xffffd866ffffdf00}, + {0x9833c037, 0xffffd866ffffdf01}, + {0x9833c038, 0xffffd866ffffdf02}, + {0x9833c039, 0xffffd866ffffdf03}, + {0x9833c130, 0xffffd866ffffdf04}, + {0x9833c131, 0xffffd866ffffdf05}, + {0x9833c132, 0xffffd866ffffdf06}, + {0x9833c133, 0xffffd866ffffdf07}, + {0x9833c134, 0xffffd866ffffdf08}, + {0x9833c135, 0xffffd866ffffdf09}, + {0x9833c136, 0xffffd866ffffdf0a}, + {0x9833c137, 0xffffd866ffffdf0b}, + {0x9833c138, 0xffffd866ffffdf0c}, + {0x9833c139, 0xffffd866ffffdf0d}, + {0x9833c230, 0xffffd866ffffdf0e}, + {0x9833c231, 0xffffd866ffffdf0f}, + {0x9833c232, 0xffffd866ffffdf10}, + {0x9833c233, 0xffffd866ffffdf11}, + {0x9833c234, 0xffffd866ffffdf12}, + {0x9833c235, 0xffffd866ffffdf13}, + {0x9833c236, 0xffffd866ffffdf14}, + {0x9833c237, 0xffffd866ffffdf15}, + {0x9833c238, 0xffffd866ffffdf16}, + {0x9833c239, 0xffffd866ffffdf17}, + {0x9833c330, 0xffffd866ffffdf18}, + {0x9833c331, 0xffffd866ffffdf19}, + {0x9833c332, 0xffffd866ffffdf1a}, + {0x9833c333, 0xffffd866ffffdf1b}, + {0x9833c334, 0xffffd866ffffdf1c}, + {0x9833c335, 0xffffd866ffffdf1d}, + {0x9833c336, 0xffffd866ffffdf1e}, + {0x9833c337, 0xffffd866ffffdf1f}, + {0x9833c338, 0xffffd866ffffdf20}, + {0x9833c339, 0xffffd866ffffdf21}, + {0x9833c430, 0xffffd866ffffdf22}, + {0x9833c431, 0xffffd866ffffdf23}, + {0x9833c432, 0xffffd866ffffdf24}, + {0x9833c433, 0xffffd866ffffdf25}, + {0x9833c434, 0xffffd866ffffdf26}, + {0x9833c435, 0xffffd866ffffdf27}, + {0x9833c436, 0xffffd866ffffdf28}, + {0x9833c437, 0xffffd866ffffdf29}, + {0x9833c438, 0xffffd866ffffdf2a}, + {0x9833c439, 0xffffd866ffffdf2b}, + {0x9833c530, 0xffffd866ffffdf2c}, + {0x9833c531, 0xffffd866ffffdf2d}, + {0x9833c532, 0xffffd866ffffdf2e}, + {0x9833c533, 0xffffd866ffffdf2f}, + {0x9833c534, 0xffffd866ffffdf30}, + {0x9833c535, 0xffffd866ffffdf31}, + {0x9833c536, 0xffffd866ffffdf32}, + {0x9833c537, 0xffffd866ffffdf33}, + {0x9833c538, 0xffffd866ffffdf34}, + {0x9833c539, 0xffffd866ffffdf35}, + {0x9833c630, 0xffffd866ffffdf36}, + {0x9833c631, 0xffffd866ffffdf37}, + {0x9833c632, 0xffffd866ffffdf38}, + {0x9833c633, 0xffffd866ffffdf39}, + {0x9833c634, 0xffffd866ffffdf3a}, + {0x9833c635, 0xffffd866ffffdf3b}, + {0x9833c636, 0xffffd866ffffdf3c}, + {0x9833c637, 0xffffd866ffffdf3d}, + {0x9833c638, 0xffffd866ffffdf3e}, + {0x9833c639, 0xffffd866ffffdf3f}, + {0x9833c730, 0xffffd866ffffdf40}, + {0x9833c731, 0xffffd866ffffdf41}, + {0x9833c732, 0xffffd866ffffdf42}, + {0x9833c733, 0xffffd866ffffdf43}, + {0x9833c734, 0xffffd866ffffdf44}, + {0x9833c735, 0xffffd866ffffdf45}, + {0x9833c736, 0xffffd866ffffdf46}, + {0x9833c737, 0xffffd866ffffdf47}, + {0x9833c738, 0xffffd866ffffdf48}, + {0x9833c739, 0xffffd866ffffdf49}, + {0x9833c830, 0xffffd866ffffdf4a}, + {0x9833c831, 0xffffd866ffffdf4b}, + {0x9833c832, 0xffffd866ffffdf4c}, + {0x9833c833, 0xffffd866ffffdf4d}, + {0x9833c834, 0xffffd866ffffdf4e}, + {0x9833c835, 0xffffd866ffffdf4f}, + {0x9833c836, 0xffffd866ffffdf50}, + {0x9833c837, 0xffffd866ffffdf51}, + {0x9833c838, 0xffffd866ffffdf52}, + {0x9833c839, 0xffffd866ffffdf53}, + {0x9833c930, 0xffffd866ffffdf54}, + {0x9833c931, 0xffffd866ffffdf55}, + {0x9833c932, 0xffffd866ffffdf56}, + {0x9833c933, 0xffffd866ffffdf57}, + {0x9833c934, 0xffffd866ffffdf58}, + {0x9833c935, 0xffffd866ffffdf59}, + {0x9833c936, 0xffffd866ffffdf5a}, + {0x9833c937, 0xffffd866ffffdf5b}, + {0x9833c938, 0xffffd866ffffdf5c}, + {0x9833c939, 0xffffd866ffffdf5d}, + {0x9833ca30, 0xffffd866ffffdf5e}, + {0x9833ca31, 0xffffd866ffffdf5f}, + {0x9833ca32, 0xffffd866ffffdf60}, + {0x9833ca33, 0xffffd866ffffdf61}, + {0x9833ca34, 0xffffd866ffffdf62}, + {0x9833ca35, 0xffffd866ffffdf63}, + {0x9833ca36, 0xffffd866ffffdf64}, + {0x9833ca37, 0xffffd866ffffdf65}, + {0x9833ca38, 0xffffd866ffffdf66}, + {0x9833ca39, 0xffffd866ffffdf67}, + {0x9833cb30, 0xffffd866ffffdf68}, + {0x9833cb31, 0xffffd866ffffdf69}, + {0x9833cb32, 0xffffd866ffffdf6a}, + {0x9833cb33, 0xffffd866ffffdf6b}, + {0x9833cb34, 0xffffd866ffffdf6c}, + {0x9833cb35, 0xffffd866ffffdf6d}, + {0x9833cb36, 0xffffd866ffffdf6e}, + {0x9833cb37, 0xffffd866ffffdf6f}, + {0x9833cb38, 0xffffd866ffffdf70}, + {0x9833cb39, 0xffffd866ffffdf71}, + {0x9833cc30, 0xffffd866ffffdf72}, + {0x9833cc31, 0xffffd866ffffdf73}, + {0x9833cc32, 0xffffd866ffffdf74}, + {0x9833cc33, 0xffffd866ffffdf75}, + {0x9833cc34, 0xffffd866ffffdf76}, + {0x9833cc35, 0xffffd866ffffdf77}, + {0x9833cc36, 0xffffd866ffffdf78}, + {0x9833cc37, 0xffffd866ffffdf79}, + {0x9833cc38, 0xffffd866ffffdf7a}, + {0x9833cc39, 0xffffd866ffffdf7b}, + {0x9833cd30, 0xffffd866ffffdf7c}, + {0x9833cd31, 0xffffd866ffffdf7d}, + {0x9833cd32, 0xffffd866ffffdf7e}, + {0x9833cd33, 0xffffd866ffffdf7f}, + {0x9833cd34, 0xffffd866ffffdf80}, + {0x9833cd35, 0xffffd866ffffdf81}, + {0x9833cd36, 0xffffd866ffffdf82}, + {0x9833cd37, 0xffffd866ffffdf83}, + {0x9833cd38, 0xffffd866ffffdf84}, + {0x9833cd39, 0xffffd866ffffdf85}, + {0x9833ce30, 0xffffd866ffffdf86}, + {0x9833ce31, 0xffffd866ffffdf87}, + {0x9833ce32, 0xffffd866ffffdf88}, + {0x9833ce33, 0xffffd866ffffdf89}, + {0x9833ce34, 0xffffd866ffffdf8a}, + {0x9833ce35, 0xffffd866ffffdf8b}, + {0x9833ce36, 0xffffd866ffffdf8c}, + {0x9833ce37, 0xffffd866ffffdf8d}, + {0x9833ce38, 0xffffd866ffffdf8e}, + {0x9833ce39, 0xffffd866ffffdf8f}, + {0x9833cf30, 0xffffd866ffffdf90}, + {0x9833cf31, 0xffffd866ffffdf91}, + {0x9833cf32, 0xffffd866ffffdf92}, + {0x9833cf33, 0xffffd866ffffdf93}, + {0x9833cf34, 0xffffd866ffffdf94}, + {0x9833cf35, 0xffffd866ffffdf95}, + {0x9833cf36, 0xffffd866ffffdf96}, + {0x9833cf37, 0xffffd866ffffdf97}, + {0x9833cf38, 0xffffd866ffffdf98}, + {0x9833cf39, 0xffffd866ffffdf99}, + {0x9833d030, 0xffffd866ffffdf9a}, + {0x9833d031, 0xffffd866ffffdf9b}, + {0x9833d032, 0xffffd866ffffdf9c}, + {0x9833d033, 0xffffd866ffffdf9d}, + {0x9833d034, 0xffffd866ffffdf9e}, + {0x9833d035, 0xffffd866ffffdf9f}, + {0x9833d036, 0xffffd866ffffdfa0}, + {0x9833d037, 0xffffd866ffffdfa1}, + {0x9833d038, 0xffffd866ffffdfa2}, + {0x9833d039, 0xffffd866ffffdfa3}, + {0x9833d130, 0xffffd866ffffdfa4}, + {0x9833d131, 0xffffd866ffffdfa5}, + {0x9833d132, 0xffffd866ffffdfa6}, + {0x9833d133, 0xffffd866ffffdfa7}, + {0x9833d134, 0xffffd866ffffdfa8}, + {0x9833d135, 0xffffd866ffffdfa9}, + {0x9833d136, 0xffffd866ffffdfaa}, + {0x9833d137, 0xffffd866ffffdfab}, + {0x9833d138, 0xffffd866ffffdfac}, + {0x9833d139, 0xffffd866ffffdfad}, + {0x9833d230, 0xffffd866ffffdfae}, + {0x9833d231, 0xffffd866ffffdfaf}, + {0x9833d232, 0xffffd866ffffdfb0}, + {0x9833d233, 0xffffd866ffffdfb1}, + {0x9833d234, 0xffffd866ffffdfb2}, + {0x9833d235, 0xffffd866ffffdfb3}, + {0x9833d236, 0xffffd866ffffdfb4}, + {0x9833d237, 0xffffd866ffffdfb5}, + {0x9833d238, 0xffffd866ffffdfb6}, + {0x9833d239, 0xffffd866ffffdfb7}, + {0x9833d330, 0xffffd866ffffdfb8}, + {0x9833d331, 0xffffd866ffffdfb9}, + {0x9833d332, 0xffffd866ffffdfba}, + {0x9833d333, 0xffffd866ffffdfbb}, + {0x9833d334, 0xffffd866ffffdfbc}, + {0x9833d335, 0xffffd866ffffdfbd}, + {0x9833d336, 0xffffd866ffffdfbe}, + {0x9833d337, 0xffffd866ffffdfbf}, + {0x9833d338, 0xffffd866ffffdfc0}, + {0x9833d339, 0xffffd866ffffdfc1}, + {0x9833d430, 0xffffd866ffffdfc2}, + {0x9833d431, 0xffffd866ffffdfc3}, + {0x9833d432, 0xffffd866ffffdfc4}, + {0x9833d433, 0xffffd866ffffdfc5}, + {0x9833d434, 0xffffd866ffffdfc6}, + {0x9833d435, 0xffffd866ffffdfc7}, + {0x9833d436, 0xffffd866ffffdfc8}, + {0x9833d437, 0xffffd866ffffdfc9}, + {0x9833d438, 0xffffd866ffffdfca}, + {0x9833d439, 0xffffd866ffffdfcb}, + {0x9833d530, 0xffffd866ffffdfcc}, + {0x9833d531, 0xffffd866ffffdfcd}, + {0x9833d532, 0xffffd866ffffdfce}, + {0x9833d533, 0xffffd866ffffdfcf}, + {0x9833d534, 0xffffd866ffffdfd0}, + {0x9833d535, 0xffffd866ffffdfd1}, + {0x9833d536, 0xffffd866ffffdfd2}, + {0x9833d537, 0xffffd866ffffdfd3}, + {0x9833d538, 0xffffd866ffffdfd4}, + {0x9833d539, 0xffffd866ffffdfd5}, + {0x9833d630, 0xffffd866ffffdfd6}, + {0x9833d631, 0xffffd866ffffdfd7}, + {0x9833d632, 0xffffd866ffffdfd8}, + {0x9833d633, 0xffffd866ffffdfd9}, + {0x9833d634, 0xffffd866ffffdfda}, + {0x9833d635, 0xffffd866ffffdfdb}, + {0x9833d636, 0xffffd866ffffdfdc}, + {0x9833d637, 0xffffd866ffffdfdd}, + {0x9833d638, 0xffffd866ffffdfde}, + {0x9833d639, 0xffffd866ffffdfdf}, + {0x9833d730, 0xffffd866ffffdfe0}, + {0x9833d731, 0xffffd866ffffdfe1}, + {0x9833d732, 0xffffd866ffffdfe2}, + {0x9833d733, 0xffffd866ffffdfe3}, + {0x9833d734, 0xffffd866ffffdfe4}, + {0x9833d735, 0xffffd866ffffdfe5}, + {0x9833d736, 0xffffd866ffffdfe6}, + {0x9833d737, 0xffffd866ffffdfe7}, + {0x9833d738, 0xffffd866ffffdfe8}, + {0x9833d739, 0xffffd866ffffdfe9}, + {0x9833d830, 0xffffd866ffffdfea}, + {0x9833d831, 0xffffd866ffffdfeb}, + {0x9833d832, 0xffffd866ffffdfec}, + {0x9833d833, 0xffffd866ffffdfed}, + {0x9833d834, 0xffffd866ffffdfee}, + {0x9833d835, 0xffffd866ffffdfef}, + {0x9833d836, 0xffffd866ffffdff0}, + {0x9833d837, 0xffffd866ffffdff1}, + {0x9833d838, 0xffffd866ffffdff2}, + {0x9833d839, 0xffffd866ffffdff3}, + {0x9833d930, 0xffffd866ffffdff4}, + {0x9833d931, 0xffffd866ffffdff5}, + {0x9833d932, 0xffffd866ffffdff6}, + {0x9833d933, 0xffffd866ffffdff7}, + {0x9833d934, 0xffffd866ffffdff8}, + {0x9833d935, 0xffffd866ffffdff9}, + {0x9833d936, 0xffffd866ffffdffa}, + {0x9833d937, 0xffffd866ffffdffb}, + {0x9833d938, 0xffffd866ffffdffc}, + {0x9833d939, 0xffffd866ffffdffd}, + {0x9833da30, 0xffffd866ffffdffe}, + {0x9833da31, 0xffffd866ffffdfff}, + {0x9833da32, 0xffffd867ffffdc00}, + {0x9833da33, 0xffffd867ffffdc01}, + {0x9833da34, 0xffffd867ffffdc02}, + {0x9833da35, 0xffffd867ffffdc03}, + {0x9833da36, 0xffffd867ffffdc04}, + {0x9833da37, 0xffffd867ffffdc05}, + {0x9833da38, 0xffffd867ffffdc06}, + {0x9833da39, 0xffffd867ffffdc07}, + {0x9833db30, 0xffffd867ffffdc08}, + {0x9833db31, 0xffffd867ffffdc09}, + {0x9833db32, 0xffffd867ffffdc0a}, + {0x9833db33, 0xffffd867ffffdc0b}, + {0x9833db34, 0xffffd867ffffdc0c}, + {0x9833db35, 0xffffd867ffffdc0d}, + {0x9833db36, 0xffffd867ffffdc0e}, + {0x9833db37, 0xffffd867ffffdc0f}, + {0x9833db38, 0xffffd867ffffdc10}, + {0x9833db39, 0xffffd867ffffdc11}, + {0x9833dc30, 0xffffd867ffffdc12}, + {0x9833dc31, 0xffffd867ffffdc13}, + {0x9833dc32, 0xffffd867ffffdc14}, + {0x9833dc33, 0xffffd867ffffdc15}, + {0x9833dc34, 0xffffd867ffffdc16}, + {0x9833dc35, 0xffffd867ffffdc17}, + {0x9833dc36, 0xffffd867ffffdc18}, + {0x9833dc37, 0xffffd867ffffdc19}, + {0x9833dc38, 0xffffd867ffffdc1a}, + {0x9833dc39, 0xffffd867ffffdc1b}, + {0x9833dd30, 0xffffd867ffffdc1c}, + {0x9833dd31, 0xffffd867ffffdc1d}, + {0x9833dd32, 0xffffd867ffffdc1e}, + {0x9833dd33, 0xffffd867ffffdc1f}, + {0x9833dd34, 0xffffd867ffffdc20}, + {0x9833dd35, 0xffffd867ffffdc21}, + {0x9833dd36, 0xffffd867ffffdc22}, + {0x9833dd37, 0xffffd867ffffdc23}, + {0x9833dd38, 0xffffd867ffffdc24}, + {0x9833dd39, 0xffffd867ffffdc25}, + {0x9833de30, 0xffffd867ffffdc26}, + {0x9833de31, 0xffffd867ffffdc27}, + {0x9833de32, 0xffffd867ffffdc28}, + {0x9833de33, 0xffffd867ffffdc29}, + {0x9833de34, 0xffffd867ffffdc2a}, + {0x9833de35, 0xffffd867ffffdc2b}, + {0x9833de36, 0xffffd867ffffdc2c}, + {0x9833de37, 0xffffd867ffffdc2d}, + {0x9833de38, 0xffffd867ffffdc2e}, + {0x9833de39, 0xffffd867ffffdc2f}, + {0x9833df30, 0xffffd867ffffdc30}, + {0x9833df31, 0xffffd867ffffdc31}, + {0x9833df32, 0xffffd867ffffdc32}, + {0x9833df33, 0xffffd867ffffdc33}, + {0x9833df34, 0xffffd867ffffdc34}, + {0x9833df35, 0xffffd867ffffdc35}, + {0x9833df36, 0xffffd867ffffdc36}, + {0x9833df37, 0xffffd867ffffdc37}, + {0x9833df38, 0xffffd867ffffdc38}, + {0x9833df39, 0xffffd867ffffdc39}, + {0x9833e030, 0xffffd867ffffdc3a}, + {0x9833e031, 0xffffd867ffffdc3b}, + {0x9833e032, 0xffffd867ffffdc3c}, + {0x9833e033, 0xffffd867ffffdc3d}, + {0x9833e034, 0xffffd867ffffdc3e}, + {0x9833e035, 0xffffd867ffffdc3f}, + {0x9833e036, 0xffffd867ffffdc40}, + {0x9833e037, 0xffffd867ffffdc41}, + {0x9833e038, 0xffffd867ffffdc42}, + {0x9833e039, 0xffffd867ffffdc43}, + {0x9833e130, 0xffffd867ffffdc44}, + {0x9833e131, 0xffffd867ffffdc45}, + {0x9833e132, 0xffffd867ffffdc46}, + {0x9833e133, 0xffffd867ffffdc47}, + {0x9833e134, 0xffffd867ffffdc48}, + {0x9833e135, 0xffffd867ffffdc49}, + {0x9833e136, 0xffffd867ffffdc4a}, + {0x9833e137, 0xffffd867ffffdc4b}, + {0x9833e138, 0xffffd867ffffdc4c}, + {0x9833e139, 0xffffd867ffffdc4d}, + {0x9833e230, 0xffffd867ffffdc4e}, + {0x9833e231, 0xffffd867ffffdc4f}, + {0x9833e232, 0xffffd867ffffdc50}, + {0x9833e233, 0xffffd867ffffdc51}, + {0x9833e234, 0xffffd867ffffdc52}, + {0x9833e235, 0xffffd867ffffdc53}, + {0x9833e236, 0xffffd867ffffdc54}, + {0x9833e237, 0xffffd867ffffdc55}, + {0x9833e238, 0xffffd867ffffdc56}, + {0x9833e239, 0xffffd867ffffdc57}, + {0x9833e330, 0xffffd867ffffdc58}, + {0x9833e331, 0xffffd867ffffdc59}, + {0x9833e332, 0xffffd867ffffdc5a}, + {0x9833e333, 0xffffd867ffffdc5b}, + {0x9833e334, 0xffffd867ffffdc5c}, + {0x9833e335, 0xffffd867ffffdc5d}, + {0x9833e336, 0xffffd867ffffdc5e}, + {0x9833e337, 0xffffd867ffffdc5f}, + {0x9833e338, 0xffffd867ffffdc60}, + {0x9833e339, 0xffffd867ffffdc61}, + {0x9833e430, 0xffffd867ffffdc62}, + {0x9833e431, 0xffffd867ffffdc63}, + {0x9833e432, 0xffffd867ffffdc64}, + {0x9833e433, 0xffffd867ffffdc65}, + {0x9833e434, 0xffffd867ffffdc66}, + {0x9833e435, 0xffffd867ffffdc67}, + {0x9833e436, 0xffffd867ffffdc68}, + {0x9833e437, 0xffffd867ffffdc69}, + {0x9833e438, 0xffffd867ffffdc6a}, + {0x9833e439, 0xffffd867ffffdc6b}, + {0x9833e530, 0xffffd867ffffdc6c}, + {0x9833e531, 0xffffd867ffffdc6d}, + {0x9833e532, 0xffffd867ffffdc6e}, + {0x9833e533, 0xffffd867ffffdc6f}, + {0x9833e534, 0xffffd867ffffdc70}, + {0x9833e535, 0xffffd867ffffdc71}, + {0x9833e536, 0xffffd867ffffdc72}, + {0x9833e537, 0xffffd867ffffdc73}, + {0x9833e538, 0xffffd867ffffdc74}, + {0x9833e539, 0xffffd867ffffdc75}, + {0x9833e630, 0xffffd867ffffdc76}, + {0x9833e631, 0xffffd867ffffdc77}, + {0x9833e632, 0xffffd867ffffdc78}, + {0x9833e633, 0xffffd867ffffdc79}, + {0x9833e634, 0xffffd867ffffdc7a}, + {0x9833e635, 0xffffd867ffffdc7b}, + {0x9833e636, 0xffffd867ffffdc7c}, + {0x9833e637, 0xffffd867ffffdc7d}, + {0x9833e638, 0xffffd867ffffdc7e}, + {0x9833e639, 0xffffd867ffffdc7f}, + {0x9833e730, 0xffffd867ffffdc80}, + {0x9833e731, 0xffffd867ffffdc81}, + {0x9833e732, 0xffffd867ffffdc82}, + {0x9833e733, 0xffffd867ffffdc83}, + {0x9833e734, 0xffffd867ffffdc84}, + {0x9833e735, 0xffffd867ffffdc85}, + {0x9833e736, 0xffffd867ffffdc86}, + {0x9833e737, 0xffffd867ffffdc87}, + {0x9833e738, 0xffffd867ffffdc88}, + {0x9833e739, 0xffffd867ffffdc89}, + {0x9833e830, 0xffffd867ffffdc8a}, + {0x9833e831, 0xffffd867ffffdc8b}, + {0x9833e832, 0xffffd867ffffdc8c}, + {0x9833e833, 0xffffd867ffffdc8d}, + {0x9833e834, 0xffffd867ffffdc8e}, + {0x9833e835, 0xffffd867ffffdc8f}, + {0x9833e836, 0xffffd867ffffdc90}, + {0x9833e837, 0xffffd867ffffdc91}, + {0x9833e838, 0xffffd867ffffdc92}, + {0x9833e839, 0xffffd867ffffdc93}, + {0x9833e930, 0xffffd867ffffdc94}, + {0x9833e931, 0xffffd867ffffdc95}, + {0x9833e932, 0xffffd867ffffdc96}, + {0x9833e933, 0xffffd867ffffdc97}, + {0x9833e934, 0xffffd867ffffdc98}, + {0x9833e935, 0xffffd867ffffdc99}, + {0x9833e936, 0xffffd867ffffdc9a}, + {0x9833e937, 0xffffd867ffffdc9b}, + {0x9833e938, 0xffffd867ffffdc9c}, + {0x9833e939, 0xffffd867ffffdc9d}, + {0x9833ea30, 0xffffd867ffffdc9e}, + {0x9833ea31, 0xffffd867ffffdc9f}, + {0x9833ea32, 0xffffd867ffffdca0}, + {0x9833ea33, 0xffffd867ffffdca1}, + {0x9833ea34, 0xffffd867ffffdca2}, + {0x9833ea35, 0xffffd867ffffdca3}, + {0x9833ea36, 0xffffd867ffffdca4}, + {0x9833ea37, 0xffffd867ffffdca5}, + {0x9833ea38, 0xffffd867ffffdca6}, + {0x9833ea39, 0xffffd867ffffdca7}, + {0x9833eb30, 0xffffd867ffffdca8}, + {0x9833eb31, 0xffffd867ffffdca9}, + {0x9833eb32, 0xffffd867ffffdcaa}, + {0x9833eb33, 0xffffd867ffffdcab}, + {0x9833eb34, 0xffffd867ffffdcac}, + {0x9833eb35, 0xffffd867ffffdcad}, + {0x9833eb36, 0xffffd867ffffdcae}, + {0x9833eb37, 0xffffd867ffffdcaf}, + {0x9833eb38, 0xffffd867ffffdcb0}, + {0x9833eb39, 0xffffd867ffffdcb1}, + {0x9833ec30, 0xffffd867ffffdcb2}, + {0x9833ec31, 0xffffd867ffffdcb3}, + {0x9833ec32, 0xffffd867ffffdcb4}, + {0x9833ec33, 0xffffd867ffffdcb5}, + {0x9833ec34, 0xffffd867ffffdcb6}, + {0x9833ec35, 0xffffd867ffffdcb7}, + {0x9833ec36, 0xffffd867ffffdcb8}, + {0x9833ec37, 0xffffd867ffffdcb9}, + {0x9833ec38, 0xffffd867ffffdcba}, + {0x9833ec39, 0xffffd867ffffdcbb}, + {0x9833ed30, 0xffffd867ffffdcbc}, + {0x9833ed31, 0xffffd867ffffdcbd}, + {0x9833ed32, 0xffffd867ffffdcbe}, + {0x9833ed33, 0xffffd867ffffdcbf}, + {0x9833ed34, 0xffffd867ffffdcc0}, + {0x9833ed35, 0xffffd867ffffdcc1}, + {0x9833ed36, 0xffffd867ffffdcc2}, + {0x9833ed37, 0xffffd867ffffdcc3}, + {0x9833ed38, 0xffffd867ffffdcc4}, + {0x9833ed39, 0xffffd867ffffdcc5}, + {0x9833ee30, 0xffffd867ffffdcc6}, + {0x9833ee31, 0xffffd867ffffdcc7}, + {0x9833ee32, 0xffffd867ffffdcc8}, + {0x9833ee33, 0xffffd867ffffdcc9}, + {0x9833ee34, 0xffffd867ffffdcca}, + {0x9833ee35, 0xffffd867ffffdccb}, + {0x9833ee36, 0xffffd867ffffdccc}, + {0x9833ee37, 0xffffd867ffffdccd}, + {0x9833ee38, 0xffffd867ffffdcce}, + {0x9833ee39, 0xffffd867ffffdccf}, + {0x9833ef30, 0xffffd867ffffdcd0}, + {0x9833ef31, 0xffffd867ffffdcd1}, + {0x9833ef32, 0xffffd867ffffdcd2}, + {0x9833ef33, 0xffffd867ffffdcd3}, + {0x9833ef34, 0xffffd867ffffdcd4}, + {0x9833ef35, 0xffffd867ffffdcd5}, + {0x9833ef36, 0xffffd867ffffdcd6}, + {0x9833ef37, 0xffffd867ffffdcd7}, + {0x9833ef38, 0xffffd867ffffdcd8}, + {0x9833ef39, 0xffffd867ffffdcd9}, + {0x9833f030, 0xffffd867ffffdcda}, + {0x9833f031, 0xffffd867ffffdcdb}, + {0x9833f032, 0xffffd867ffffdcdc}, + {0x9833f033, 0xffffd867ffffdcdd}, + {0x9833f034, 0xffffd867ffffdcde}, + {0x9833f035, 0xffffd867ffffdcdf}, + {0x9833f036, 0xffffd867ffffdce0}, + {0x9833f037, 0xffffd867ffffdce1}, + {0x9833f038, 0xffffd867ffffdce2}, + {0x9833f039, 0xffffd867ffffdce3}, + {0x9833f130, 0xffffd867ffffdce4}, + {0x9833f131, 0xffffd867ffffdce5}, + {0x9833f132, 0xffffd867ffffdce6}, + {0x9833f133, 0xffffd867ffffdce7}, + {0x9833f134, 0xffffd867ffffdce8}, + {0x9833f135, 0xffffd867ffffdce9}, + {0x9833f136, 0xffffd867ffffdcea}, + {0x9833f137, 0xffffd867ffffdceb}, + {0x9833f138, 0xffffd867ffffdcec}, + {0x9833f139, 0xffffd867ffffdced}, + {0x9833f230, 0xffffd867ffffdcee}, + {0x9833f231, 0xffffd867ffffdcef}, + {0x9833f232, 0xffffd867ffffdcf0}, + {0x9833f233, 0xffffd867ffffdcf1}, + {0x9833f234, 0xffffd867ffffdcf2}, + {0x9833f235, 0xffffd867ffffdcf3}, + {0x9833f236, 0xffffd867ffffdcf4}, + {0x9833f237, 0xffffd867ffffdcf5}, + {0x9833f238, 0xffffd867ffffdcf6}, + {0x9833f239, 0xffffd867ffffdcf7}, + {0x9833f330, 0xffffd867ffffdcf8}, + {0x9833f331, 0xffffd867ffffdcf9}, + {0x9833f332, 0xffffd867ffffdcfa}, + {0x9833f333, 0xffffd867ffffdcfb}, + {0x9833f334, 0xffffd867ffffdcfc}, + {0x9833f335, 0xffffd867ffffdcfd}, + {0x9833f336, 0xffffd867ffffdcfe}, + {0x9833f337, 0xffffd867ffffdcff}, + {0x9833f338, 0xffffd867ffffdd00}, + {0x9833f339, 0xffffd867ffffdd01}, + {0x9833f430, 0xffffd867ffffdd02}, + {0x9833f431, 0xffffd867ffffdd03}, + {0x9833f432, 0xffffd867ffffdd04}, + {0x9833f433, 0xffffd867ffffdd05}, + {0x9833f434, 0xffffd867ffffdd06}, + {0x9833f435, 0xffffd867ffffdd07}, + {0x9833f436, 0xffffd867ffffdd08}, + {0x9833f437, 0xffffd867ffffdd09}, + {0x9833f438, 0xffffd867ffffdd0a}, + {0x9833f439, 0xffffd867ffffdd0b}, + {0x9833f530, 0xffffd867ffffdd0c}, + {0x9833f531, 0xffffd867ffffdd0d}, + {0x9833f532, 0xffffd867ffffdd0e}, + {0x9833f533, 0xffffd867ffffdd0f}, + {0x9833f534, 0xffffd867ffffdd10}, + {0x9833f535, 0xffffd867ffffdd11}, + {0x9833f536, 0xffffd867ffffdd12}, + {0x9833f537, 0xffffd867ffffdd13}, + {0x9833f538, 0xffffd867ffffdd14}, + {0x9833f539, 0xffffd867ffffdd15}, + {0x9833f630, 0xffffd867ffffdd16}, + {0x9833f631, 0xffffd867ffffdd17}, + {0x9833f632, 0xffffd867ffffdd18}, + {0x9833f633, 0xffffd867ffffdd19}, + {0x9833f634, 0xffffd867ffffdd1a}, + {0x9833f635, 0xffffd867ffffdd1b}, + {0x9833f636, 0xffffd867ffffdd1c}, + {0x9833f637, 0xffffd867ffffdd1d}, + {0x9833f638, 0xffffd867ffffdd1e}, + {0x9833f639, 0xffffd867ffffdd1f}, + {0x9833f730, 0xffffd867ffffdd20}, + {0x9833f731, 0xffffd867ffffdd21}, + {0x9833f732, 0xffffd867ffffdd22}, + {0x9833f733, 0xffffd867ffffdd23}, + {0x9833f734, 0xffffd867ffffdd24}, + {0x9833f735, 0xffffd867ffffdd25}, + {0x9833f736, 0xffffd867ffffdd26}, + {0x9833f737, 0xffffd867ffffdd27}, + {0x9833f738, 0xffffd867ffffdd28}, + {0x9833f739, 0xffffd867ffffdd29}, + {0x9833f830, 0xffffd867ffffdd2a}, + {0x9833f831, 0xffffd867ffffdd2b}, + {0x9833f832, 0xffffd867ffffdd2c}, + {0x9833f833, 0xffffd867ffffdd2d}, + {0x9833f834, 0xffffd867ffffdd2e}, + {0x9833f835, 0xffffd867ffffdd2f}, + {0x9833f836, 0xffffd867ffffdd30}, + {0x9833f837, 0xffffd867ffffdd31}, + {0x9833f838, 0xffffd867ffffdd32}, + {0x9833f839, 0xffffd867ffffdd33}, + {0x9833f930, 0xffffd867ffffdd34}, + {0x9833f931, 0xffffd867ffffdd35}, + {0x9833f932, 0xffffd867ffffdd36}, + {0x9833f933, 0xffffd867ffffdd37}, + {0x9833f934, 0xffffd867ffffdd38}, + {0x9833f935, 0xffffd867ffffdd39}, + {0x9833f936, 0xffffd867ffffdd3a}, + {0x9833f937, 0xffffd867ffffdd3b}, + {0x9833f938, 0xffffd867ffffdd3c}, + {0x9833f939, 0xffffd867ffffdd3d}, + {0x9833fa30, 0xffffd867ffffdd3e}, + {0x9833fa31, 0xffffd867ffffdd3f}, + {0x9833fa32, 0xffffd867ffffdd40}, + {0x9833fa33, 0xffffd867ffffdd41}, + {0x9833fa34, 0xffffd867ffffdd42}, + {0x9833fa35, 0xffffd867ffffdd43}, + {0x9833fa36, 0xffffd867ffffdd44}, + {0x9833fa37, 0xffffd867ffffdd45}, + {0x9833fa38, 0xffffd867ffffdd46}, + {0x9833fa39, 0xffffd867ffffdd47}, + {0x9833fb30, 0xffffd867ffffdd48}, + {0x9833fb31, 0xffffd867ffffdd49}, + {0x9833fb32, 0xffffd867ffffdd4a}, + {0x9833fb33, 0xffffd867ffffdd4b}, + {0x9833fb34, 0xffffd867ffffdd4c}, + {0x9833fb35, 0xffffd867ffffdd4d}, + {0x9833fb36, 0xffffd867ffffdd4e}, + {0x9833fb37, 0xffffd867ffffdd4f}, + {0x9833fb38, 0xffffd867ffffdd50}, + {0x9833fb39, 0xffffd867ffffdd51}, + {0x9833fc30, 0xffffd867ffffdd52}, + {0x9833fc31, 0xffffd867ffffdd53}, + {0x9833fc32, 0xffffd867ffffdd54}, + {0x9833fc33, 0xffffd867ffffdd55}, + {0x9833fc34, 0xffffd867ffffdd56}, + {0x9833fc35, 0xffffd867ffffdd57}, + {0x9833fc36, 0xffffd867ffffdd58}, + {0x9833fc37, 0xffffd867ffffdd59}, + {0x9833fc38, 0xffffd867ffffdd5a}, + {0x9833fc39, 0xffffd867ffffdd5b}, + {0x9833fd30, 0xffffd867ffffdd5c}, + {0x9833fd31, 0xffffd867ffffdd5d}, + {0x9833fd32, 0xffffd867ffffdd5e}, + {0x9833fd33, 0xffffd867ffffdd5f}, + {0x9833fd34, 0xffffd867ffffdd60}, + {0x9833fd35, 0xffffd867ffffdd61}, + {0x9833fd36, 0xffffd867ffffdd62}, + {0x9833fd37, 0xffffd867ffffdd63}, + {0x9833fd38, 0xffffd867ffffdd64}, + {0x9833fd39, 0xffffd867ffffdd65}, + {0x9833fe30, 0xffffd867ffffdd66}, + {0x9833fe31, 0xffffd867ffffdd67}, + {0x9833fe32, 0xffffd867ffffdd68}, + {0x9833fe33, 0xffffd867ffffdd69}, + {0x9833fe34, 0xffffd867ffffdd6a}, + {0x9833fe35, 0xffffd867ffffdd6b}, + {0x9833fe36, 0xffffd867ffffdd6c}, + {0x9833fe37, 0xffffd867ffffdd6d}, + {0x9833fe38, 0xffffd867ffffdd6e}, + {0x9833fe39, 0xffffd867ffffdd6f}, + {0x98348130, 0xffffd867ffffdd70}, + {0x98348131, 0xffffd867ffffdd71}, + {0x98348132, 0xffffd867ffffdd72}, + {0x98348133, 0xffffd867ffffdd73}, + {0x98348134, 0xffffd867ffffdd74}, + {0x98348135, 0xffffd867ffffdd75}, + {0x98348136, 0xffffd867ffffdd76}, + {0x98348137, 0xffffd867ffffdd77}, + {0x98348138, 0xffffd867ffffdd78}, + {0x98348139, 0xffffd867ffffdd79}, + {0x98348230, 0xffffd867ffffdd7a}, + {0x98348231, 0xffffd867ffffdd7b}, + {0x98348232, 0xffffd867ffffdd7c}, + {0x98348233, 0xffffd867ffffdd7d}, + {0x98348234, 0xffffd867ffffdd7e}, + {0x98348235, 0xffffd867ffffdd7f}, + {0x98348236, 0xffffd867ffffdd80}, + {0x98348237, 0xffffd867ffffdd81}, + {0x98348238, 0xffffd867ffffdd82}, + {0x98348239, 0xffffd867ffffdd83}, + {0x98348330, 0xffffd867ffffdd84}, + {0x98348331, 0xffffd867ffffdd85}, + {0x98348332, 0xffffd867ffffdd86}, + {0x98348333, 0xffffd867ffffdd87}, + {0x98348334, 0xffffd867ffffdd88}, + {0x98348335, 0xffffd867ffffdd89}, + {0x98348336, 0xffffd867ffffdd8a}, + {0x98348337, 0xffffd867ffffdd8b}, + {0x98348338, 0xffffd867ffffdd8c}, + {0x98348339, 0xffffd867ffffdd8d}, + {0x98348430, 0xffffd867ffffdd8e}, + {0x98348431, 0xffffd867ffffdd8f}, + {0x98348432, 0xffffd867ffffdd90}, + {0x98348433, 0xffffd867ffffdd91}, + {0x98348434, 0xffffd867ffffdd92}, + {0x98348435, 0xffffd867ffffdd93}, + {0x98348436, 0xffffd867ffffdd94}, + {0x98348437, 0xffffd867ffffdd95}, + {0x98348438, 0xffffd867ffffdd96}, + {0x98348439, 0xffffd867ffffdd97}, + {0x98348530, 0xffffd867ffffdd98}, + {0x98348531, 0xffffd867ffffdd99}, + {0x98348532, 0xffffd867ffffdd9a}, + {0x98348533, 0xffffd867ffffdd9b}, + {0x98348534, 0xffffd867ffffdd9c}, + {0x98348535, 0xffffd867ffffdd9d}, + {0x98348536, 0xffffd867ffffdd9e}, + {0x98348537, 0xffffd867ffffdd9f}, + {0x98348538, 0xffffd867ffffdda0}, + {0x98348539, 0xffffd867ffffdda1}, + {0x98348630, 0xffffd867ffffdda2}, + {0x98348631, 0xffffd867ffffdda3}, + {0x98348632, 0xffffd867ffffdda4}, + {0x98348633, 0xffffd867ffffdda5}, + {0x98348634, 0xffffd867ffffdda6}, + {0x98348635, 0xffffd867ffffdda7}, + {0x98348636, 0xffffd867ffffdda8}, + {0x98348637, 0xffffd867ffffdda9}, + {0x98348638, 0xffffd867ffffddaa}, + {0x98348639, 0xffffd867ffffddab}, + {0x98348730, 0xffffd867ffffddac}, + {0x98348731, 0xffffd867ffffddad}, + {0x98348732, 0xffffd867ffffddae}, + {0x98348733, 0xffffd867ffffddaf}, + {0x98348734, 0xffffd867ffffddb0}, + {0x98348735, 0xffffd867ffffddb1}, + {0x98348736, 0xffffd867ffffddb2}, + {0x98348737, 0xffffd867ffffddb3}, + {0x98348738, 0xffffd867ffffddb4}, + {0x98348739, 0xffffd867ffffddb5}, + {0x98348830, 0xffffd867ffffddb6}, + {0x98348831, 0xffffd867ffffddb7}, + {0x98348832, 0xffffd867ffffddb8}, + {0x98348833, 0xffffd867ffffddb9}, + {0x98348834, 0xffffd867ffffddba}, + {0x98348835, 0xffffd867ffffddbb}, + {0x98348836, 0xffffd867ffffddbc}, + {0x98348837, 0xffffd867ffffddbd}, + {0x98348838, 0xffffd867ffffddbe}, + {0x98348839, 0xffffd867ffffddbf}, + {0x98348930, 0xffffd867ffffddc0}, + {0x98348931, 0xffffd867ffffddc1}, + {0x98348932, 0xffffd867ffffddc2}, + {0x98348933, 0xffffd867ffffddc3}, + {0x98348934, 0xffffd867ffffddc4}, + {0x98348935, 0xffffd867ffffddc5}, + {0x98348936, 0xffffd867ffffddc6}, + {0x98348937, 0xffffd867ffffddc7}, + {0x98348938, 0xffffd867ffffddc8}, + {0x98348939, 0xffffd867ffffddc9}, + {0x98348a30, 0xffffd867ffffddca}, + {0x98348a31, 0xffffd867ffffddcb}, + {0x98348a32, 0xffffd867ffffddcc}, + {0x98348a33, 0xffffd867ffffddcd}, + {0x98348a34, 0xffffd867ffffddce}, + {0x98348a35, 0xffffd867ffffddcf}, + {0x98348a36, 0xffffd867ffffddd0}, + {0x98348a37, 0xffffd867ffffddd1}, + {0x98348a38, 0xffffd867ffffddd2}, + {0x98348a39, 0xffffd867ffffddd3}, + {0x98348b30, 0xffffd867ffffddd4}, + {0x98348b31, 0xffffd867ffffddd5}, + {0x98348b32, 0xffffd867ffffddd6}, + {0x98348b33, 0xffffd867ffffddd7}, + {0x98348b34, 0xffffd867ffffddd8}, + {0x98348b35, 0xffffd867ffffddd9}, + {0x98348b36, 0xffffd867ffffddda}, + {0x98348b37, 0xffffd867ffffdddb}, + {0x98348b38, 0xffffd867ffffdddc}, + {0x98348b39, 0xffffd867ffffdddd}, + {0x98348c30, 0xffffd867ffffddde}, + {0x98348c31, 0xffffd867ffffdddf}, + {0x98348c32, 0xffffd867ffffdde0}, + {0x98348c33, 0xffffd867ffffdde1}, + {0x98348c34, 0xffffd867ffffdde2}, + {0x98348c35, 0xffffd867ffffdde3}, + {0x98348c36, 0xffffd867ffffdde4}, + {0x98348c37, 0xffffd867ffffdde5}, + {0x98348c38, 0xffffd867ffffdde6}, + {0x98348c39, 0xffffd867ffffdde7}, + {0x98348d30, 0xffffd867ffffdde8}, + {0x98348d31, 0xffffd867ffffdde9}, + {0x98348d32, 0xffffd867ffffddea}, + {0x98348d33, 0xffffd867ffffddeb}, + {0x98348d34, 0xffffd867ffffddec}, + {0x98348d35, 0xffffd867ffffdded}, + {0x98348d36, 0xffffd867ffffddee}, + {0x98348d37, 0xffffd867ffffddef}, + {0x98348d38, 0xffffd867ffffddf0}, + {0x98348d39, 0xffffd867ffffddf1}, + {0x98348e30, 0xffffd867ffffddf2}, + {0x98348e31, 0xffffd867ffffddf3}, + {0x98348e32, 0xffffd867ffffddf4}, + {0x98348e33, 0xffffd867ffffddf5}, + {0x98348e34, 0xffffd867ffffddf6}, + {0x98348e35, 0xffffd867ffffddf7}, + {0x98348e36, 0xffffd867ffffddf8}, + {0x98348e37, 0xffffd867ffffddf9}, + {0x98348e38, 0xffffd867ffffddfa}, + {0x98348e39, 0xffffd867ffffddfb}, + {0x98348f30, 0xffffd867ffffddfc}, + {0x98348f31, 0xffffd867ffffddfd}, + {0x98348f32, 0xffffd867ffffddfe}, + {0x98348f33, 0xffffd867ffffddff}, + {0x98348f34, 0xffffd867ffffde00}, + {0x98348f35, 0xffffd867ffffde01}, + {0x98348f36, 0xffffd867ffffde02}, + {0x98348f37, 0xffffd867ffffde03}, + {0x98348f38, 0xffffd867ffffde04}, + {0x98348f39, 0xffffd867ffffde05}, + {0x98349030, 0xffffd867ffffde06}, + {0x98349031, 0xffffd867ffffde07}, + {0x98349032, 0xffffd867ffffde08}, + {0x98349033, 0xffffd867ffffde09}, + {0x98349034, 0xffffd867ffffde0a}, + {0x98349035, 0xffffd867ffffde0b}, + {0x98349036, 0xffffd867ffffde0c}, + {0x98349037, 0xffffd867ffffde0d}, + {0x98349038, 0xffffd867ffffde0e}, + {0x98349039, 0xffffd867ffffde0f}, + {0x98349130, 0xffffd867ffffde10}, + {0x98349131, 0xffffd867ffffde11}, + {0x98349132, 0xffffd867ffffde12}, + {0x98349133, 0xffffd867ffffde13}, + {0x98349134, 0xffffd867ffffde14}, + {0x98349135, 0xffffd867ffffde15}, + {0x98349136, 0xffffd867ffffde16}, + {0x98349137, 0xffffd867ffffde17}, + {0x98349138, 0xffffd867ffffde18}, + {0x98349139, 0xffffd867ffffde19}, + {0x98349230, 0xffffd867ffffde1a}, + {0x98349231, 0xffffd867ffffde1b}, + {0x98349232, 0xffffd867ffffde1c}, + {0x98349233, 0xffffd867ffffde1d}, + {0x98349234, 0xffffd867ffffde1e}, + {0x98349235, 0xffffd867ffffde1f}, + {0x98349236, 0xffffd867ffffde20}, + {0x98349237, 0xffffd867ffffde21}, + {0x98349238, 0xffffd867ffffde22}, + {0x98349239, 0xffffd867ffffde23}, + {0x98349330, 0xffffd867ffffde24}, + {0x98349331, 0xffffd867ffffde25}, + {0x98349332, 0xffffd867ffffde26}, + {0x98349333, 0xffffd867ffffde27}, + {0x98349334, 0xffffd867ffffde28}, + {0x98349335, 0xffffd867ffffde29}, + {0x98349336, 0xffffd867ffffde2a}, + {0x98349337, 0xffffd867ffffde2b}, + {0x98349338, 0xffffd867ffffde2c}, + {0x98349339, 0xffffd867ffffde2d}, + {0x98349430, 0xffffd867ffffde2e}, + {0x98349431, 0xffffd867ffffde2f}, + {0x98349432, 0xffffd867ffffde30}, + {0x98349433, 0xffffd867ffffde31}, + {0x98349434, 0xffffd867ffffde32}, + {0x98349435, 0xffffd867ffffde33}, + {0x98349436, 0xffffd867ffffde34}, + {0x98349437, 0xffffd867ffffde35}, + {0x98349438, 0xffffd867ffffde36}, + {0x98349439, 0xffffd867ffffde37}, + {0x98349530, 0xffffd867ffffde38}, + {0x98349531, 0xffffd867ffffde39}, + {0x98349532, 0xffffd867ffffde3a}, + {0x98349533, 0xffffd867ffffde3b}, + {0x98349534, 0xffffd867ffffde3c}, + {0x98349535, 0xffffd867ffffde3d}, + {0x98349536, 0xffffd867ffffde3e}, + {0x98349537, 0xffffd867ffffde3f}, + {0x98349538, 0xffffd867ffffde40}, + {0x98349539, 0xffffd867ffffde41}, + {0x98349630, 0xffffd867ffffde42}, + {0x98349631, 0xffffd867ffffde43}, + {0x98349632, 0xffffd867ffffde44}, + {0x98349633, 0xffffd867ffffde45}, + {0x98349634, 0xffffd867ffffde46}, + {0x98349635, 0xffffd867ffffde47}, + {0x98349636, 0xffffd867ffffde48}, + {0x98349637, 0xffffd867ffffde49}, + {0x98349638, 0xffffd867ffffde4a}, + {0x98349639, 0xffffd867ffffde4b}, + {0x98349730, 0xffffd867ffffde4c}, + {0x98349731, 0xffffd867ffffde4d}, + {0x98349732, 0xffffd867ffffde4e}, + {0x98349733, 0xffffd867ffffde4f}, + {0x98349734, 0xffffd867ffffde50}, + {0x98349735, 0xffffd867ffffde51}, + {0x98349736, 0xffffd867ffffde52}, + {0x98349737, 0xffffd867ffffde53}, + {0x98349738, 0xffffd867ffffde54}, + {0x98349739, 0xffffd867ffffde55}, + {0x98349830, 0xffffd867ffffde56}, + {0x98349831, 0xffffd867ffffde57}, + {0x98349832, 0xffffd867ffffde58}, + {0x98349833, 0xffffd867ffffde59}, + {0x98349834, 0xffffd867ffffde5a}, + {0x98349835, 0xffffd867ffffde5b}, + {0x98349836, 0xffffd867ffffde5c}, + {0x98349837, 0xffffd867ffffde5d}, + {0x98349838, 0xffffd867ffffde5e}, + {0x98349839, 0xffffd867ffffde5f}, + {0x98349930, 0xffffd867ffffde60}, + {0x98349931, 0xffffd867ffffde61}, + {0x98349932, 0xffffd867ffffde62}, + {0x98349933, 0xffffd867ffffde63}, + {0x98349934, 0xffffd867ffffde64}, + {0x98349935, 0xffffd867ffffde65}, + {0x98349936, 0xffffd867ffffde66}, + {0x98349937, 0xffffd867ffffde67}, + {0x98349938, 0xffffd867ffffde68}, + {0x98349939, 0xffffd867ffffde69}, + {0x98349a30, 0xffffd867ffffde6a}, + {0x98349a31, 0xffffd867ffffde6b}, + {0x98349a32, 0xffffd867ffffde6c}, + {0x98349a33, 0xffffd867ffffde6d}, + {0x98349a34, 0xffffd867ffffde6e}, + {0x98349a35, 0xffffd867ffffde6f}, + {0x98349a36, 0xffffd867ffffde70}, + {0x98349a37, 0xffffd867ffffde71}, + {0x98349a38, 0xffffd867ffffde72}, + {0x98349a39, 0xffffd867ffffde73}, + {0x98349b30, 0xffffd867ffffde74}, + {0x98349b31, 0xffffd867ffffde75}, + {0x98349b32, 0xffffd867ffffde76}, + {0x98349b33, 0xffffd867ffffde77}, + {0x98349b34, 0xffffd867ffffde78}, + {0x98349b35, 0xffffd867ffffde79}, + {0x98349b36, 0xffffd867ffffde7a}, + {0x98349b37, 0xffffd867ffffde7b}, + {0x98349b38, 0xffffd867ffffde7c}, + {0x98349b39, 0xffffd867ffffde7d}, + {0x98349c30, 0xffffd867ffffde7e}, + {0x98349c31, 0xffffd867ffffde7f}, + {0x98349c32, 0xffffd867ffffde80}, + {0x98349c33, 0xffffd867ffffde81}, + {0x98349c34, 0xffffd867ffffde82}, + {0x98349c35, 0xffffd867ffffde83}, + {0x98349c36, 0xffffd867ffffde84}, + {0x98349c37, 0xffffd867ffffde85}, + {0x98349c38, 0xffffd867ffffde86}, + {0x98349c39, 0xffffd867ffffde87}, + {0x98349d30, 0xffffd867ffffde88}, + {0x98349d31, 0xffffd867ffffde89}, + {0x98349d32, 0xffffd867ffffde8a}, + {0x98349d33, 0xffffd867ffffde8b}, + {0x98349d34, 0xffffd867ffffde8c}, + {0x98349d35, 0xffffd867ffffde8d}, + {0x98349d36, 0xffffd867ffffde8e}, + {0x98349d37, 0xffffd867ffffde8f}, + {0x98349d38, 0xffffd867ffffde90}, + {0x98349d39, 0xffffd867ffffde91}, + {0x98349e30, 0xffffd867ffffde92}, + {0x98349e31, 0xffffd867ffffde93}, + {0x98349e32, 0xffffd867ffffde94}, + {0x98349e33, 0xffffd867ffffde95}, + {0x98349e34, 0xffffd867ffffde96}, + {0x98349e35, 0xffffd867ffffde97}, + {0x98349e36, 0xffffd867ffffde98}, + {0x98349e37, 0xffffd867ffffde99}, + {0x98349e38, 0xffffd867ffffde9a}, + {0x98349e39, 0xffffd867ffffde9b}, + {0x98349f30, 0xffffd867ffffde9c}, + {0x98349f31, 0xffffd867ffffde9d}, + {0x98349f32, 0xffffd867ffffde9e}, + {0x98349f33, 0xffffd867ffffde9f}, + {0x98349f34, 0xffffd867ffffdea0}, + {0x98349f35, 0xffffd867ffffdea1}, + {0x98349f36, 0xffffd867ffffdea2}, + {0x98349f37, 0xffffd867ffffdea3}, + {0x98349f38, 0xffffd867ffffdea4}, + {0x98349f39, 0xffffd867ffffdea5}, + {0x9834a030, 0xffffd867ffffdea6}, + {0x9834a031, 0xffffd867ffffdea7}, + {0x9834a032, 0xffffd867ffffdea8}, + {0x9834a033, 0xffffd867ffffdea9}, + {0x9834a034, 0xffffd867ffffdeaa}, + {0x9834a035, 0xffffd867ffffdeab}, + {0x9834a036, 0xffffd867ffffdeac}, + {0x9834a037, 0xffffd867ffffdead}, + {0x9834a038, 0xffffd867ffffdeae}, + {0x9834a039, 0xffffd867ffffdeaf}, + {0x9834a130, 0xffffd867ffffdeb0}, + {0x9834a131, 0xffffd867ffffdeb1}, + {0x9834a132, 0xffffd867ffffdeb2}, + {0x9834a133, 0xffffd867ffffdeb3}, + {0x9834a134, 0xffffd867ffffdeb4}, + {0x9834a135, 0xffffd867ffffdeb5}, + {0x9834a136, 0xffffd867ffffdeb6}, + {0x9834a137, 0xffffd867ffffdeb7}, + {0x9834a138, 0xffffd867ffffdeb8}, + {0x9834a139, 0xffffd867ffffdeb9}, + {0x9834a230, 0xffffd867ffffdeba}, + {0x9834a231, 0xffffd867ffffdebb}, + {0x9834a232, 0xffffd867ffffdebc}, + {0x9834a233, 0xffffd867ffffdebd}, + {0x9834a234, 0xffffd867ffffdebe}, + {0x9834a235, 0xffffd867ffffdebf}, + {0x9834a236, 0xffffd867ffffdec0}, + {0x9834a237, 0xffffd867ffffdec1}, + {0x9834a238, 0xffffd867ffffdec2}, + {0x9834a239, 0xffffd867ffffdec3}, + {0x9834a330, 0xffffd867ffffdec4}, + {0x9834a331, 0xffffd867ffffdec5}, + {0x9834a332, 0xffffd867ffffdec6}, + {0x9834a333, 0xffffd867ffffdec7}, + {0x9834a334, 0xffffd867ffffdec8}, + {0x9834a335, 0xffffd867ffffdec9}, + {0x9834a336, 0xffffd867ffffdeca}, + {0x9834a337, 0xffffd867ffffdecb}, + {0x9834a338, 0xffffd867ffffdecc}, + {0x9834a339, 0xffffd867ffffdecd}, + {0x9834a430, 0xffffd867ffffdece}, + {0x9834a431, 0xffffd867ffffdecf}, + {0x9834a432, 0xffffd867ffffded0}, + {0x9834a433, 0xffffd867ffffded1}, + {0x9834a434, 0xffffd867ffffded2}, + {0x9834a435, 0xffffd867ffffded3}, + {0x9834a436, 0xffffd867ffffded4}, + {0x9834a437, 0xffffd867ffffded5}, + {0x9834a438, 0xffffd867ffffded6}, + {0x9834a439, 0xffffd867ffffded7}, + {0x9834a530, 0xffffd867ffffded8}, + {0x9834a531, 0xffffd867ffffded9}, + {0x9834a532, 0xffffd867ffffdeda}, + {0x9834a533, 0xffffd867ffffdedb}, + {0x9834a534, 0xffffd867ffffdedc}, + {0x9834a535, 0xffffd867ffffdedd}, + {0x9834a536, 0xffffd867ffffdede}, + {0x9834a537, 0xffffd867ffffdedf}, + {0x9834a538, 0xffffd867ffffdee0}, + {0x9834a539, 0xffffd867ffffdee1}, + {0x9834a630, 0xffffd867ffffdee2}, + {0x9834a631, 0xffffd867ffffdee3}, + {0x9834a632, 0xffffd867ffffdee4}, + {0x9834a633, 0xffffd867ffffdee5}, + {0x9834a634, 0xffffd867ffffdee6}, + {0x9834a635, 0xffffd867ffffdee7}, + {0x9834a636, 0xffffd867ffffdee8}, + {0x9834a637, 0xffffd867ffffdee9}, + {0x9834a638, 0xffffd867ffffdeea}, + {0x9834a639, 0xffffd867ffffdeeb}, + {0x9834a730, 0xffffd867ffffdeec}, + {0x9834a731, 0xffffd867ffffdeed}, + {0x9834a732, 0xffffd867ffffdeee}, + {0x9834a733, 0xffffd867ffffdeef}, + {0x9834a734, 0xffffd867ffffdef0}, + {0x9834a735, 0xffffd867ffffdef1}, + {0x9834a736, 0xffffd867ffffdef2}, + {0x9834a737, 0xffffd867ffffdef3}, + {0x9834a738, 0xffffd867ffffdef4}, + {0x9834a739, 0xffffd867ffffdef5}, + {0x9834a830, 0xffffd867ffffdef6}, + {0x9834a831, 0xffffd867ffffdef7}, + {0x9834a832, 0xffffd867ffffdef8}, + {0x9834a833, 0xffffd867ffffdef9}, + {0x9834a834, 0xffffd867ffffdefa}, + {0x9834a835, 0xffffd867ffffdefb}, + {0x9834a836, 0xffffd867ffffdefc}, + {0x9834a837, 0xffffd867ffffdefd}, + {0x9834a838, 0xffffd867ffffdefe}, + {0x9834a839, 0xffffd867ffffdeff}, + {0x9834a930, 0xffffd867ffffdf00}, + {0x9834a931, 0xffffd867ffffdf01}, + {0x9834a932, 0xffffd867ffffdf02}, + {0x9834a933, 0xffffd867ffffdf03}, + {0x9834a934, 0xffffd867ffffdf04}, + {0x9834a935, 0xffffd867ffffdf05}, + {0x9834a936, 0xffffd867ffffdf06}, + {0x9834a937, 0xffffd867ffffdf07}, + {0x9834a938, 0xffffd867ffffdf08}, + {0x9834a939, 0xffffd867ffffdf09}, + {0x9834aa30, 0xffffd867ffffdf0a}, + {0x9834aa31, 0xffffd867ffffdf0b}, + {0x9834aa32, 0xffffd867ffffdf0c}, + {0x9834aa33, 0xffffd867ffffdf0d}, + {0x9834aa34, 0xffffd867ffffdf0e}, + {0x9834aa35, 0xffffd867ffffdf0f}, + {0x9834aa36, 0xffffd867ffffdf10}, + {0x9834aa37, 0xffffd867ffffdf11}, + {0x9834aa38, 0xffffd867ffffdf12}, + {0x9834aa39, 0xffffd867ffffdf13}, + {0x9834ab30, 0xffffd867ffffdf14}, + {0x9834ab31, 0xffffd867ffffdf15}, + {0x9834ab32, 0xffffd867ffffdf16}, + {0x9834ab33, 0xffffd867ffffdf17}, + {0x9834ab34, 0xffffd867ffffdf18}, + {0x9834ab35, 0xffffd867ffffdf19}, + {0x9834ab36, 0xffffd867ffffdf1a}, + {0x9834ab37, 0xffffd867ffffdf1b}, + {0x9834ab38, 0xffffd867ffffdf1c}, + {0x9834ab39, 0xffffd867ffffdf1d}, + {0x9834ac30, 0xffffd867ffffdf1e}, + {0x9834ac31, 0xffffd867ffffdf1f}, + {0x9834ac32, 0xffffd867ffffdf20}, + {0x9834ac33, 0xffffd867ffffdf21}, + {0x9834ac34, 0xffffd867ffffdf22}, + {0x9834ac35, 0xffffd867ffffdf23}, + {0x9834ac36, 0xffffd867ffffdf24}, + {0x9834ac37, 0xffffd867ffffdf25}, + {0x9834ac38, 0xffffd867ffffdf26}, + {0x9834ac39, 0xffffd867ffffdf27}, + {0x9834ad30, 0xffffd867ffffdf28}, + {0x9834ad31, 0xffffd867ffffdf29}, + {0x9834ad32, 0xffffd867ffffdf2a}, + {0x9834ad33, 0xffffd867ffffdf2b}, + {0x9834ad34, 0xffffd867ffffdf2c}, + {0x9834ad35, 0xffffd867ffffdf2d}, + {0x9834ad36, 0xffffd867ffffdf2e}, + {0x9834ad37, 0xffffd867ffffdf2f}, + {0x9834ad38, 0xffffd867ffffdf30}, + {0x9834ad39, 0xffffd867ffffdf31}, + {0x9834ae30, 0xffffd867ffffdf32}, + {0x9834ae31, 0xffffd867ffffdf33}, + {0x9834ae32, 0xffffd867ffffdf34}, + {0x9834ae33, 0xffffd867ffffdf35}, + {0x9834ae34, 0xffffd867ffffdf36}, + {0x9834ae35, 0xffffd867ffffdf37}, + {0x9834ae36, 0xffffd867ffffdf38}, + {0x9834ae37, 0xffffd867ffffdf39}, + {0x9834ae38, 0xffffd867ffffdf3a}, + {0x9834ae39, 0xffffd867ffffdf3b}, + {0x9834af30, 0xffffd867ffffdf3c}, + {0x9834af31, 0xffffd867ffffdf3d}, + {0x9834af32, 0xffffd867ffffdf3e}, + {0x9834af33, 0xffffd867ffffdf3f}, + {0x9834af34, 0xffffd867ffffdf40}, + {0x9834af35, 0xffffd867ffffdf41}, + {0x9834af36, 0xffffd867ffffdf42}, + {0x9834af37, 0xffffd867ffffdf43}, + {0x9834af38, 0xffffd867ffffdf44}, + {0x9834af39, 0xffffd867ffffdf45}, + {0x9834b030, 0xffffd867ffffdf46}, + {0x9834b031, 0xffffd867ffffdf47}, + {0x9834b032, 0xffffd867ffffdf48}, + {0x9834b033, 0xffffd867ffffdf49}, + {0x9834b034, 0xffffd867ffffdf4a}, + {0x9834b035, 0xffffd867ffffdf4b}, + {0x9834b036, 0xffffd867ffffdf4c}, + {0x9834b037, 0xffffd867ffffdf4d}, + {0x9834b038, 0xffffd867ffffdf4e}, + {0x9834b039, 0xffffd867ffffdf4f}, + {0x9834b130, 0xffffd867ffffdf50}, + {0x9834b131, 0xffffd867ffffdf51}, + {0x9834b132, 0xffffd867ffffdf52}, + {0x9834b133, 0xffffd867ffffdf53}, + {0x9834b134, 0xffffd867ffffdf54}, + {0x9834b135, 0xffffd867ffffdf55}, + {0x9834b136, 0xffffd867ffffdf56}, + {0x9834b137, 0xffffd867ffffdf57}, + {0x9834b138, 0xffffd867ffffdf58}, + {0x9834b139, 0xffffd867ffffdf59}, + {0x9834b230, 0xffffd867ffffdf5a}, + {0x9834b231, 0xffffd867ffffdf5b}, + {0x9834b232, 0xffffd867ffffdf5c}, + {0x9834b233, 0xffffd867ffffdf5d}, + {0x9834b234, 0xffffd867ffffdf5e}, + {0x9834b235, 0xffffd867ffffdf5f}, + {0x9834b236, 0xffffd867ffffdf60}, + {0x9834b237, 0xffffd867ffffdf61}, + {0x9834b238, 0xffffd867ffffdf62}, + {0x9834b239, 0xffffd867ffffdf63}, + {0x9834b330, 0xffffd867ffffdf64}, + {0x9834b331, 0xffffd867ffffdf65}, + {0x9834b332, 0xffffd867ffffdf66}, + {0x9834b333, 0xffffd867ffffdf67}, + {0x9834b334, 0xffffd867ffffdf68}, + {0x9834b335, 0xffffd867ffffdf69}, + {0x9834b336, 0xffffd867ffffdf6a}, + {0x9834b337, 0xffffd867ffffdf6b}, + {0x9834b338, 0xffffd867ffffdf6c}, + {0x9834b339, 0xffffd867ffffdf6d}, + {0x9834b430, 0xffffd867ffffdf6e}, + {0x9834b431, 0xffffd867ffffdf6f}, + {0x9834b432, 0xffffd867ffffdf70}, + {0x9834b433, 0xffffd867ffffdf71}, + {0x9834b434, 0xffffd867ffffdf72}, + {0x9834b435, 0xffffd867ffffdf73}, + {0x9834b436, 0xffffd867ffffdf74}, + {0x9834b437, 0xffffd867ffffdf75}, + {0x9834b438, 0xffffd867ffffdf76}, + {0x9834b439, 0xffffd867ffffdf77}, + {0x9834b530, 0xffffd867ffffdf78}, + {0x9834b531, 0xffffd867ffffdf79}, + {0x9834b532, 0xffffd867ffffdf7a}, + {0x9834b533, 0xffffd867ffffdf7b}, + {0x9834b534, 0xffffd867ffffdf7c}, + {0x9834b535, 0xffffd867ffffdf7d}, + {0x9834b536, 0xffffd867ffffdf7e}, + {0x9834b537, 0xffffd867ffffdf7f}, + {0x9834b538, 0xffffd867ffffdf80}, + {0x9834b539, 0xffffd867ffffdf81}, + {0x9834b630, 0xffffd867ffffdf82}, + {0x9834b631, 0xffffd867ffffdf83}, + {0x9834b632, 0xffffd867ffffdf84}, + {0x9834b633, 0xffffd867ffffdf85}, + {0x9834b634, 0xffffd867ffffdf86}, + {0x9834b635, 0xffffd867ffffdf87}, + {0x9834b636, 0xffffd867ffffdf88}, + {0x9834b637, 0xffffd867ffffdf89}, + {0x9834b638, 0xffffd867ffffdf8a}, + {0x9834b639, 0xffffd867ffffdf8b}, + {0x9834b730, 0xffffd867ffffdf8c}, + {0x9834b731, 0xffffd867ffffdf8d}, + {0x9834b732, 0xffffd867ffffdf8e}, + {0x9834b733, 0xffffd867ffffdf8f}, + {0x9834b734, 0xffffd867ffffdf90}, + {0x9834b735, 0xffffd867ffffdf91}, + {0x9834b736, 0xffffd867ffffdf92}, + {0x9834b737, 0xffffd867ffffdf93}, + {0x9834b738, 0xffffd867ffffdf94}, + {0x9834b739, 0xffffd867ffffdf95}, + {0x9834b830, 0xffffd867ffffdf96}, + {0x9834b831, 0xffffd867ffffdf97}, + {0x9834b832, 0xffffd867ffffdf98}, + {0x9834b833, 0xffffd867ffffdf99}, + {0x9834b834, 0xffffd867ffffdf9a}, + {0x9834b835, 0xffffd867ffffdf9b}, + {0x9834b836, 0xffffd867ffffdf9c}, + {0x9834b837, 0xffffd867ffffdf9d}, + {0x9834b838, 0xffffd867ffffdf9e}, + {0x9834b839, 0xffffd867ffffdf9f}, + {0x9834b930, 0xffffd867ffffdfa0}, + {0x9834b931, 0xffffd867ffffdfa1}, + {0x9834b932, 0xffffd867ffffdfa2}, + {0x9834b933, 0xffffd867ffffdfa3}, + {0x9834b934, 0xffffd867ffffdfa4}, + {0x9834b935, 0xffffd867ffffdfa5}, + {0x9834b936, 0xffffd867ffffdfa6}, + {0x9834b937, 0xffffd867ffffdfa7}, + {0x9834b938, 0xffffd867ffffdfa8}, + {0x9834b939, 0xffffd867ffffdfa9}, + {0x9834ba30, 0xffffd867ffffdfaa}, + {0x9834ba31, 0xffffd867ffffdfab}, + {0x9834ba32, 0xffffd867ffffdfac}, + {0x9834ba33, 0xffffd867ffffdfad}, + {0x9834ba34, 0xffffd867ffffdfae}, + {0x9834ba35, 0xffffd867ffffdfaf}, + {0x9834ba36, 0xffffd867ffffdfb0}, + {0x9834ba37, 0xffffd867ffffdfb1}, + {0x9834ba38, 0xffffd867ffffdfb2}, + {0x9834ba39, 0xffffd867ffffdfb3}, + {0x9834bb30, 0xffffd867ffffdfb4}, + {0x9834bb31, 0xffffd867ffffdfb5}, + {0x9834bb32, 0xffffd867ffffdfb6}, + {0x9834bb33, 0xffffd867ffffdfb7}, + {0x9834bb34, 0xffffd867ffffdfb8}, + {0x9834bb35, 0xffffd867ffffdfb9}, + {0x9834bb36, 0xffffd867ffffdfba}, + {0x9834bb37, 0xffffd867ffffdfbb}, + {0x9834bb38, 0xffffd867ffffdfbc}, + {0x9834bb39, 0xffffd867ffffdfbd}, + {0x9834bc30, 0xffffd867ffffdfbe}, + {0x9834bc31, 0xffffd867ffffdfbf}, + {0x9834bc32, 0xffffd867ffffdfc0}, + {0x9834bc33, 0xffffd867ffffdfc1}, + {0x9834bc34, 0xffffd867ffffdfc2}, + {0x9834bc35, 0xffffd867ffffdfc3}, + {0x9834bc36, 0xffffd867ffffdfc4}, + {0x9834bc37, 0xffffd867ffffdfc5}, + {0x9834bc38, 0xffffd867ffffdfc6}, + {0x9834bc39, 0xffffd867ffffdfc7}, + {0x9834bd30, 0xffffd867ffffdfc8}, + {0x9834bd31, 0xffffd867ffffdfc9}, + {0x9834bd32, 0xffffd867ffffdfca}, + {0x9834bd33, 0xffffd867ffffdfcb}, + {0x9834bd34, 0xffffd867ffffdfcc}, + {0x9834bd35, 0xffffd867ffffdfcd}, + {0x9834bd36, 0xffffd867ffffdfce}, + {0x9834bd37, 0xffffd867ffffdfcf}, + {0x9834bd38, 0xffffd867ffffdfd0}, + {0x9834bd39, 0xffffd867ffffdfd1}, + {0x9834be30, 0xffffd867ffffdfd2}, + {0x9834be31, 0xffffd867ffffdfd3}, + {0x9834be32, 0xffffd867ffffdfd4}, + {0x9834be33, 0xffffd867ffffdfd5}, + {0x9834be34, 0xffffd867ffffdfd6}, + {0x9834be35, 0xffffd867ffffdfd7}, + {0x9834be36, 0xffffd867ffffdfd8}, + {0x9834be37, 0xffffd867ffffdfd9}, + {0x9834be38, 0xffffd867ffffdfda}, + {0x9834be39, 0xffffd867ffffdfdb}, + {0x9834bf30, 0xffffd867ffffdfdc}, + {0x9834bf31, 0xffffd867ffffdfdd}, + {0x9834bf32, 0xffffd867ffffdfde}, + {0x9834bf33, 0xffffd867ffffdfdf}, + {0x9834bf34, 0xffffd867ffffdfe0}, + {0x9834bf35, 0xffffd867ffffdfe1}, + {0x9834bf36, 0xffffd867ffffdfe2}, + {0x9834bf37, 0xffffd867ffffdfe3}, + {0x9834bf38, 0xffffd867ffffdfe4}, + {0x9834bf39, 0xffffd867ffffdfe5}, + {0x9834c030, 0xffffd867ffffdfe6}, + {0x9834c031, 0xffffd867ffffdfe7}, + {0x9834c032, 0xffffd867ffffdfe8}, + {0x9834c033, 0xffffd867ffffdfe9}, + {0x9834c034, 0xffffd867ffffdfea}, + {0x9834c035, 0xffffd867ffffdfeb}, + {0x9834c036, 0xffffd867ffffdfec}, + {0x9834c037, 0xffffd867ffffdfed}, + {0x9834c038, 0xffffd867ffffdfee}, + {0x9834c039, 0xffffd867ffffdfef}, + {0x9834c130, 0xffffd867ffffdff0}, + {0x9834c131, 0xffffd867ffffdff1}, + {0x9834c132, 0xffffd867ffffdff2}, + {0x9834c133, 0xffffd867ffffdff3}, + {0x9834c134, 0xffffd867ffffdff4}, + {0x9834c135, 0xffffd867ffffdff5}, + {0x9834c136, 0xffffd867ffffdff6}, + {0x9834c137, 0xffffd867ffffdff7}, + {0x9834c138, 0xffffd867ffffdff8}, + {0x9834c139, 0xffffd867ffffdff9}, + {0x9834c230, 0xffffd867ffffdffa}, + {0x9834c231, 0xffffd867ffffdffb}, + {0x9834c232, 0xffffd867ffffdffc}, + {0x9834c233, 0xffffd867ffffdffd}, + {0x9834c234, 0xffffd867ffffdffe}, + {0x9834c235, 0xffffd867ffffdfff}, + {0x9834c236, 0xffffd868ffffdc00}, + {0x9834c237, 0xffffd868ffffdc01}, + {0x9834c238, 0xffffd868ffffdc02}, + {0x9834c239, 0xffffd868ffffdc03}, + {0x9834c330, 0xffffd868ffffdc04}, + {0x9834c331, 0xffffd868ffffdc05}, + {0x9834c332, 0xffffd868ffffdc06}, + {0x9834c333, 0xffffd868ffffdc07}, + {0x9834c334, 0xffffd868ffffdc08}, + {0x9834c335, 0xffffd868ffffdc09}, + {0x9834c336, 0xffffd868ffffdc0a}, + {0x9834c337, 0xffffd868ffffdc0b}, + {0x9834c338, 0xffffd868ffffdc0c}, + {0x9834c339, 0xffffd868ffffdc0d}, + {0x9834c430, 0xffffd868ffffdc0e}, + {0x9834c431, 0xffffd868ffffdc0f}, + {0x9834c432, 0xffffd868ffffdc10}, + {0x9834c433, 0xffffd868ffffdc11}, + {0x9834c434, 0xffffd868ffffdc12}, + {0x9834c435, 0xffffd868ffffdc13}, + {0x9834c436, 0xffffd868ffffdc14}, + {0x9834c437, 0xffffd868ffffdc15}, + {0x9834c438, 0xffffd868ffffdc16}, + {0x9834c439, 0xffffd868ffffdc17}, + {0x9834c530, 0xffffd868ffffdc18}, + {0x9834c531, 0xffffd868ffffdc19}, + {0x9834c532, 0xffffd868ffffdc1a}, + {0x9834c533, 0xffffd868ffffdc1b}, + {0x9834c534, 0xffffd868ffffdc1c}, + {0x9834c535, 0xffffd868ffffdc1d}, + {0x9834c536, 0xffffd868ffffdc1e}, + {0x9834c537, 0xffffd868ffffdc1f}, + {0x9834c538, 0xffffd868ffffdc20}, + {0x9834c539, 0xffffd868ffffdc21}, + {0x9834c630, 0xffffd868ffffdc22}, + {0x9834c631, 0xffffd868ffffdc23}, + {0x9834c632, 0xffffd868ffffdc24}, + {0x9834c633, 0xffffd868ffffdc25}, + {0x9834c634, 0xffffd868ffffdc26}, + {0x9834c635, 0xffffd868ffffdc27}, + {0x9834c636, 0xffffd868ffffdc28}, + {0x9834c637, 0xffffd868ffffdc29}, + {0x9834c638, 0xffffd868ffffdc2a}, + {0x9834c639, 0xffffd868ffffdc2b}, + {0x9834c730, 0xffffd868ffffdc2c}, + {0x9834c731, 0xffffd868ffffdc2d}, + {0x9834c732, 0xffffd868ffffdc2e}, + {0x9834c733, 0xffffd868ffffdc2f}, + {0x9834c734, 0xffffd868ffffdc30}, + {0x9834c735, 0xffffd868ffffdc31}, + {0x9834c736, 0xffffd868ffffdc32}, + {0x9834c737, 0xffffd868ffffdc33}, + {0x9834c738, 0xffffd868ffffdc34}, + {0x9834c739, 0xffffd868ffffdc35}, + {0x9834c830, 0xffffd868ffffdc36}, + {0x9834c831, 0xffffd868ffffdc37}, + {0x9834c832, 0xffffd868ffffdc38}, + {0x9834c833, 0xffffd868ffffdc39}, + {0x9834c834, 0xffffd868ffffdc3a}, + {0x9834c835, 0xffffd868ffffdc3b}, + {0x9834c836, 0xffffd868ffffdc3c}, + {0x9834c837, 0xffffd868ffffdc3d}, + {0x9834c838, 0xffffd868ffffdc3e}, + {0x9834c839, 0xffffd868ffffdc3f}, + {0x9834c930, 0xffffd868ffffdc40}, + {0x9834c931, 0xffffd868ffffdc41}, + {0x9834c932, 0xffffd868ffffdc42}, + {0x9834c933, 0xffffd868ffffdc43}, + {0x9834c934, 0xffffd868ffffdc44}, + {0x9834c935, 0xffffd868ffffdc45}, + {0x9834c936, 0xffffd868ffffdc46}, + {0x9834c937, 0xffffd868ffffdc47}, + {0x9834c938, 0xffffd868ffffdc48}, + {0x9834c939, 0xffffd868ffffdc49}, + {0x9834ca30, 0xffffd868ffffdc4a}, + {0x9834ca31, 0xffffd868ffffdc4b}, + {0x9834ca32, 0xffffd868ffffdc4c}, + {0x9834ca33, 0xffffd868ffffdc4d}, + {0x9834ca34, 0xffffd868ffffdc4e}, + {0x9834ca35, 0xffffd868ffffdc4f}, + {0x9834ca36, 0xffffd868ffffdc50}, + {0x9834ca37, 0xffffd868ffffdc51}, + {0x9834ca38, 0xffffd868ffffdc52}, + {0x9834ca39, 0xffffd868ffffdc53}, + {0x9834cb30, 0xffffd868ffffdc54}, + {0x9834cb31, 0xffffd868ffffdc55}, + {0x9834cb32, 0xffffd868ffffdc56}, + {0x9834cb33, 0xffffd868ffffdc57}, + {0x9834cb34, 0xffffd868ffffdc58}, + {0x9834cb35, 0xffffd868ffffdc59}, + {0x9834cb36, 0xffffd868ffffdc5a}, + {0x9834cb37, 0xffffd868ffffdc5b}, + {0x9834cb38, 0xffffd868ffffdc5c}, + {0x9834cb39, 0xffffd868ffffdc5d}, + {0x9834cc30, 0xffffd868ffffdc5e}, + {0x9834cc31, 0xffffd868ffffdc5f}, + {0x9834cc32, 0xffffd868ffffdc60}, + {0x9834cc33, 0xffffd868ffffdc61}, + {0x9834cc34, 0xffffd868ffffdc62}, + {0x9834cc35, 0xffffd868ffffdc63}, + {0x9834cc36, 0xffffd868ffffdc64}, + {0x9834cc37, 0xffffd868ffffdc65}, + {0x9834cc38, 0xffffd868ffffdc66}, + {0x9834cc39, 0xffffd868ffffdc67}, + {0x9834cd30, 0xffffd868ffffdc68}, + {0x9834cd31, 0xffffd868ffffdc69}, + {0x9834cd32, 0xffffd868ffffdc6a}, + {0x9834cd33, 0xffffd868ffffdc6b}, + {0x9834cd34, 0xffffd868ffffdc6c}, + {0x9834cd35, 0xffffd868ffffdc6d}, + {0x9834cd36, 0xffffd868ffffdc6e}, + {0x9834cd37, 0xffffd868ffffdc6f}, + {0x9834cd38, 0xffffd868ffffdc70}, + {0x9834cd39, 0xffffd868ffffdc71}, + {0x9834ce30, 0xffffd868ffffdc72}, + {0x9834ce31, 0xffffd868ffffdc73}, + {0x9834ce32, 0xffffd868ffffdc74}, + {0x9834ce33, 0xffffd868ffffdc75}, + {0x9834ce34, 0xffffd868ffffdc76}, + {0x9834ce35, 0xffffd868ffffdc77}, + {0x9834ce36, 0xffffd868ffffdc78}, + {0x9834ce37, 0xffffd868ffffdc79}, + {0x9834ce38, 0xffffd868ffffdc7a}, + {0x9834ce39, 0xffffd868ffffdc7b}, + {0x9834cf30, 0xffffd868ffffdc7c}, + {0x9834cf31, 0xffffd868ffffdc7d}, + {0x9834cf32, 0xffffd868ffffdc7e}, + {0x9834cf33, 0xffffd868ffffdc7f}, + {0x9834cf34, 0xffffd868ffffdc80}, + {0x9834cf35, 0xffffd868ffffdc81}, + {0x9834cf36, 0xffffd868ffffdc82}, + {0x9834cf37, 0xffffd868ffffdc83}, + {0x9834cf38, 0xffffd868ffffdc84}, + {0x9834cf39, 0xffffd868ffffdc85}, + {0x9834d030, 0xffffd868ffffdc86}, + {0x9834d031, 0xffffd868ffffdc87}, + {0x9834d032, 0xffffd868ffffdc88}, + {0x9834d033, 0xffffd868ffffdc89}, + {0x9834d034, 0xffffd868ffffdc8a}, + {0x9834d035, 0xffffd868ffffdc8b}, + {0x9834d036, 0xffffd868ffffdc8c}, + {0x9834d037, 0xffffd868ffffdc8d}, + {0x9834d038, 0xffffd868ffffdc8e}, + {0x9834d039, 0xffffd868ffffdc8f}, + {0x9834d130, 0xffffd868ffffdc90}, + {0x9834d131, 0xffffd868ffffdc91}, + {0x9834d132, 0xffffd868ffffdc92}, + {0x9834d133, 0xffffd868ffffdc93}, + {0x9834d134, 0xffffd868ffffdc94}, + {0x9834d135, 0xffffd868ffffdc95}, + {0x9834d136, 0xffffd868ffffdc96}, + {0x9834d137, 0xffffd868ffffdc97}, + {0x9834d138, 0xffffd868ffffdc98}, + {0x9834d139, 0xffffd868ffffdc99}, + {0x9834d230, 0xffffd868ffffdc9a}, + {0x9834d231, 0xffffd868ffffdc9b}, + {0x9834d232, 0xffffd868ffffdc9c}, + {0x9834d233, 0xffffd868ffffdc9d}, + {0x9834d234, 0xffffd868ffffdc9e}, + {0x9834d235, 0xffffd868ffffdc9f}, + {0x9834d236, 0xffffd868ffffdca0}, + {0x9834d237, 0xffffd868ffffdca1}, + {0x9834d238, 0xffffd868ffffdca2}, + {0x9834d239, 0xffffd868ffffdca3}, + {0x9834d330, 0xffffd868ffffdca4}, + {0x9834d331, 0xffffd868ffffdca5}, + {0x9834d332, 0xffffd868ffffdca6}, + {0x9834d333, 0xffffd868ffffdca7}, + {0x9834d334, 0xffffd868ffffdca8}, + {0x9834d335, 0xffffd868ffffdca9}, + {0x9834d336, 0xffffd868ffffdcaa}, + {0x9834d337, 0xffffd868ffffdcab}, + {0x9834d338, 0xffffd868ffffdcac}, + {0x9834d339, 0xffffd868ffffdcad}, + {0x9834d430, 0xffffd868ffffdcae}, + {0x9834d431, 0xffffd868ffffdcaf}, + {0x9834d432, 0xffffd868ffffdcb0}, + {0x9834d433, 0xffffd868ffffdcb1}, + {0x9834d434, 0xffffd868ffffdcb2}, + {0x9834d435, 0xffffd868ffffdcb3}, + {0x9834d436, 0xffffd868ffffdcb4}, + {0x9834d437, 0xffffd868ffffdcb5}, + {0x9834d438, 0xffffd868ffffdcb6}, + {0x9834d439, 0xffffd868ffffdcb7}, + {0x9834d530, 0xffffd868ffffdcb8}, + {0x9834d531, 0xffffd868ffffdcb9}, + {0x9834d532, 0xffffd868ffffdcba}, + {0x9834d533, 0xffffd868ffffdcbb}, + {0x9834d534, 0xffffd868ffffdcbc}, + {0x9834d535, 0xffffd868ffffdcbd}, + {0x9834d536, 0xffffd868ffffdcbe}, + {0x9834d537, 0xffffd868ffffdcbf}, + {0x9834d538, 0xffffd868ffffdcc0}, + {0x9834d539, 0xffffd868ffffdcc1}, + {0x9834d630, 0xffffd868ffffdcc2}, + {0x9834d631, 0xffffd868ffffdcc3}, + {0x9834d632, 0xffffd868ffffdcc4}, + {0x9834d633, 0xffffd868ffffdcc5}, + {0x9834d634, 0xffffd868ffffdcc6}, + {0x9834d635, 0xffffd868ffffdcc7}, + {0x9834d636, 0xffffd868ffffdcc8}, + {0x9834d637, 0xffffd868ffffdcc9}, + {0x9834d638, 0xffffd868ffffdcca}, + {0x9834d639, 0xffffd868ffffdccb}, + {0x9834d730, 0xffffd868ffffdccc}, + {0x9834d731, 0xffffd868ffffdccd}, + {0x9834d732, 0xffffd868ffffdcce}, + {0x9834d733, 0xffffd868ffffdccf}, + {0x9834d734, 0xffffd868ffffdcd0}, + {0x9834d735, 0xffffd868ffffdcd1}, + {0x9834d736, 0xffffd868ffffdcd2}, + {0x9834d737, 0xffffd868ffffdcd3}, + {0x9834d738, 0xffffd868ffffdcd4}, + {0x9834d739, 0xffffd868ffffdcd5}, + {0x9834d830, 0xffffd868ffffdcd6}, + {0x9834d831, 0xffffd868ffffdcd7}, + {0x9834d832, 0xffffd868ffffdcd8}, + {0x9834d833, 0xffffd868ffffdcd9}, + {0x9834d834, 0xffffd868ffffdcda}, + {0x9834d835, 0xffffd868ffffdcdb}, + {0x9834d836, 0xffffd868ffffdcdc}, + {0x9834d837, 0xffffd868ffffdcdd}, + {0x9834d838, 0xffffd868ffffdcde}, + {0x9834d839, 0xffffd868ffffdcdf}, + {0x9834d930, 0xffffd868ffffdce0}, + {0x9834d931, 0xffffd868ffffdce1}, + {0x9834d932, 0xffffd868ffffdce2}, + {0x9834d933, 0xffffd868ffffdce3}, + {0x9834d934, 0xffffd868ffffdce4}, + {0x9834d935, 0xffffd868ffffdce5}, + {0x9834d936, 0xffffd868ffffdce6}, + {0x9834d937, 0xffffd868ffffdce7}, + {0x9834d938, 0xffffd868ffffdce8}, + {0x9834d939, 0xffffd868ffffdce9}, + {0x9834da30, 0xffffd868ffffdcea}, + {0x9834da31, 0xffffd868ffffdceb}, + {0x9834da32, 0xffffd868ffffdcec}, + {0x9834da33, 0xffffd868ffffdced}, + {0x9834da34, 0xffffd868ffffdcee}, + {0x9834da35, 0xffffd868ffffdcef}, + {0x9834da36, 0xffffd868ffffdcf0}, + {0x9834da37, 0xffffd868ffffdcf1}, + {0x9834da38, 0xffffd868ffffdcf2}, + {0x9834da39, 0xffffd868ffffdcf3}, + {0x9834db30, 0xffffd868ffffdcf4}, + {0x9834db31, 0xffffd868ffffdcf5}, + {0x9834db32, 0xffffd868ffffdcf6}, + {0x9834db33, 0xffffd868ffffdcf7}, + {0x9834db34, 0xffffd868ffffdcf8}, + {0x9834db35, 0xffffd868ffffdcf9}, + {0x9834db36, 0xffffd868ffffdcfa}, + {0x9834db37, 0xffffd868ffffdcfb}, + {0x9834db38, 0xffffd868ffffdcfc}, + {0x9834db39, 0xffffd868ffffdcfd}, + {0x9834dc30, 0xffffd868ffffdcfe}, + {0x9834dc31, 0xffffd868ffffdcff}, + {0x9834dc32, 0xffffd868ffffdd00}, + {0x9834dc33, 0xffffd868ffffdd01}, + {0x9834dc34, 0xffffd868ffffdd02}, + {0x9834dc35, 0xffffd868ffffdd03}, + {0x9834dc36, 0xffffd868ffffdd04}, + {0x9834dc37, 0xffffd868ffffdd05}, + {0x9834dc38, 0xffffd868ffffdd06}, + {0x9834dc39, 0xffffd868ffffdd07}, + {0x9834dd30, 0xffffd868ffffdd08}, + {0x9834dd31, 0xffffd868ffffdd09}, + {0x9834dd32, 0xffffd868ffffdd0a}, + {0x9834dd33, 0xffffd868ffffdd0b}, + {0x9834dd34, 0xffffd868ffffdd0c}, + {0x9834dd35, 0xffffd868ffffdd0d}, + {0x9834dd36, 0xffffd868ffffdd0e}, + {0x9834dd37, 0xffffd868ffffdd0f}, + {0x9834dd38, 0xffffd868ffffdd10}, + {0x9834dd39, 0xffffd868ffffdd11}, + {0x9834de30, 0xffffd868ffffdd12}, + {0x9834de31, 0xffffd868ffffdd13}, + {0x9834de32, 0xffffd868ffffdd14}, + {0x9834de33, 0xffffd868ffffdd15}, + {0x9834de34, 0xffffd868ffffdd16}, + {0x9834de35, 0xffffd868ffffdd17}, + {0x9834de36, 0xffffd868ffffdd18}, + {0x9834de37, 0xffffd868ffffdd19}, + {0x9834de38, 0xffffd868ffffdd1a}, + {0x9834de39, 0xffffd868ffffdd1b}, + {0x9834df30, 0xffffd868ffffdd1c}, + {0x9834df31, 0xffffd868ffffdd1d}, + {0x9834df32, 0xffffd868ffffdd1e}, + {0x9834df33, 0xffffd868ffffdd1f}, + {0x9834df34, 0xffffd868ffffdd20}, + {0x9834df35, 0xffffd868ffffdd21}, + {0x9834df36, 0xffffd868ffffdd22}, + {0x9834df37, 0xffffd868ffffdd23}, + {0x9834df38, 0xffffd868ffffdd24}, + {0x9834df39, 0xffffd868ffffdd25}, + {0x9834e030, 0xffffd868ffffdd26}, + {0x9834e031, 0xffffd868ffffdd27}, + {0x9834e032, 0xffffd868ffffdd28}, + {0x9834e033, 0xffffd868ffffdd29}, + {0x9834e034, 0xffffd868ffffdd2a}, + {0x9834e035, 0xffffd868ffffdd2b}, + {0x9834e036, 0xffffd868ffffdd2c}, + {0x9834e037, 0xffffd868ffffdd2d}, + {0x9834e038, 0xffffd868ffffdd2e}, + {0x9834e039, 0xffffd868ffffdd2f}, + {0x9834e130, 0xffffd868ffffdd30}, + {0x9834e131, 0xffffd868ffffdd31}, + {0x9834e132, 0xffffd868ffffdd32}, + {0x9834e133, 0xffffd868ffffdd33}, + {0x9834e134, 0xffffd868ffffdd34}, + {0x9834e135, 0xffffd868ffffdd35}, + {0x9834e136, 0xffffd868ffffdd36}, + {0x9834e137, 0xffffd868ffffdd37}, + {0x9834e138, 0xffffd868ffffdd38}, + {0x9834e139, 0xffffd868ffffdd39}, + {0x9834e230, 0xffffd868ffffdd3a}, + {0x9834e231, 0xffffd868ffffdd3b}, + {0x9834e232, 0xffffd868ffffdd3c}, + {0x9834e233, 0xffffd868ffffdd3d}, + {0x9834e234, 0xffffd868ffffdd3e}, + {0x9834e235, 0xffffd868ffffdd3f}, + {0x9834e236, 0xffffd868ffffdd40}, + {0x9834e237, 0xffffd868ffffdd41}, + {0x9834e238, 0xffffd868ffffdd42}, + {0x9834e239, 0xffffd868ffffdd43}, + {0x9834e330, 0xffffd868ffffdd44}, + {0x9834e331, 0xffffd868ffffdd45}, + {0x9834e332, 0xffffd868ffffdd46}, + {0x9834e333, 0xffffd868ffffdd47}, + {0x9834e334, 0xffffd868ffffdd48}, + {0x9834e335, 0xffffd868ffffdd49}, + {0x9834e336, 0xffffd868ffffdd4a}, + {0x9834e337, 0xffffd868ffffdd4b}, + {0x9834e338, 0xffffd868ffffdd4c}, + {0x9834e339, 0xffffd868ffffdd4d}, + {0x9834e430, 0xffffd868ffffdd4e}, + {0x9834e431, 0xffffd868ffffdd4f}, + {0x9834e432, 0xffffd868ffffdd50}, + {0x9834e433, 0xffffd868ffffdd51}, + {0x9834e434, 0xffffd868ffffdd52}, + {0x9834e435, 0xffffd868ffffdd53}, + {0x9834e436, 0xffffd868ffffdd54}, + {0x9834e437, 0xffffd868ffffdd55}, + {0x9834e438, 0xffffd868ffffdd56}, + {0x9834e439, 0xffffd868ffffdd57}, + {0x9834e530, 0xffffd868ffffdd58}, + {0x9834e531, 0xffffd868ffffdd59}, + {0x9834e532, 0xffffd868ffffdd5a}, + {0x9834e533, 0xffffd868ffffdd5b}, + {0x9834e534, 0xffffd868ffffdd5c}, + {0x9834e535, 0xffffd868ffffdd5d}, + {0x9834e536, 0xffffd868ffffdd5e}, + {0x9834e537, 0xffffd868ffffdd5f}, + {0x9834e538, 0xffffd868ffffdd60}, + {0x9834e539, 0xffffd868ffffdd61}, + {0x9834e630, 0xffffd868ffffdd62}, + {0x9834e631, 0xffffd868ffffdd63}, + {0x9834e632, 0xffffd868ffffdd64}, + {0x9834e633, 0xffffd868ffffdd65}, + {0x9834e634, 0xffffd868ffffdd66}, + {0x9834e635, 0xffffd868ffffdd67}, + {0x9834e636, 0xffffd868ffffdd68}, + {0x9834e637, 0xffffd868ffffdd69}, + {0x9834e638, 0xffffd868ffffdd6a}, + {0x9834e639, 0xffffd868ffffdd6b}, + {0x9834e730, 0xffffd868ffffdd6c}, + {0x9834e731, 0xffffd868ffffdd6d}, + {0x9834e732, 0xffffd868ffffdd6e}, + {0x9834e733, 0xffffd868ffffdd6f}, + {0x9834e734, 0xffffd868ffffdd70}, + {0x9834e735, 0xffffd868ffffdd71}, + {0x9834e736, 0xffffd868ffffdd72}, + {0x9834e737, 0xffffd868ffffdd73}, + {0x9834e738, 0xffffd868ffffdd74}, + {0x9834e739, 0xffffd868ffffdd75}, + {0x9834e830, 0xffffd868ffffdd76}, + {0x9834e831, 0xffffd868ffffdd77}, + {0x9834e832, 0xffffd868ffffdd78}, + {0x9834e833, 0xffffd868ffffdd79}, + {0x9834e834, 0xffffd868ffffdd7a}, + {0x9834e835, 0xffffd868ffffdd7b}, + {0x9834e836, 0xffffd868ffffdd7c}, + {0x9834e837, 0xffffd868ffffdd7d}, + {0x9834e838, 0xffffd868ffffdd7e}, + {0x9834e839, 0xffffd868ffffdd7f}, + {0x9834e930, 0xffffd868ffffdd80}, + {0x9834e931, 0xffffd868ffffdd81}, + {0x9834e932, 0xffffd868ffffdd82}, + {0x9834e933, 0xffffd868ffffdd83}, + {0x9834e934, 0xffffd868ffffdd84}, + {0x9834e935, 0xffffd868ffffdd85}, + {0x9834e936, 0xffffd868ffffdd86}, + {0x9834e937, 0xffffd868ffffdd87}, + {0x9834e938, 0xffffd868ffffdd88}, + {0x9834e939, 0xffffd868ffffdd89}, + {0x9834ea30, 0xffffd868ffffdd8a}, + {0x9834ea31, 0xffffd868ffffdd8b}, + {0x9834ea32, 0xffffd868ffffdd8c}, + {0x9834ea33, 0xffffd868ffffdd8d}, + {0x9834ea34, 0xffffd868ffffdd8e}, + {0x9834ea35, 0xffffd868ffffdd8f}, + {0x9834ea36, 0xffffd868ffffdd90}, + {0x9834ea37, 0xffffd868ffffdd91}, + {0x9834ea38, 0xffffd868ffffdd92}, + {0x9834ea39, 0xffffd868ffffdd93}, + {0x9834eb30, 0xffffd868ffffdd94}, + {0x9834eb31, 0xffffd868ffffdd95}, + {0x9834eb32, 0xffffd868ffffdd96}, + {0x9834eb33, 0xffffd868ffffdd97}, + {0x9834eb34, 0xffffd868ffffdd98}, + {0x9834eb35, 0xffffd868ffffdd99}, + {0x9834eb36, 0xffffd868ffffdd9a}, + {0x9834eb37, 0xffffd868ffffdd9b}, + {0x9834eb38, 0xffffd868ffffdd9c}, + {0x9834eb39, 0xffffd868ffffdd9d}, + {0x9834ec30, 0xffffd868ffffdd9e}, + {0x9834ec31, 0xffffd868ffffdd9f}, + {0x9834ec32, 0xffffd868ffffdda0}, + {0x9834ec33, 0xffffd868ffffdda1}, + {0x9834ec34, 0xffffd868ffffdda2}, + {0x9834ec35, 0xffffd868ffffdda3}, + {0x9834ec36, 0xffffd868ffffdda4}, + {0x9834ec37, 0xffffd868ffffdda5}, + {0x9834ec38, 0xffffd868ffffdda6}, + {0x9834ec39, 0xffffd868ffffdda7}, + {0x9834ed30, 0xffffd868ffffdda8}, + {0x9834ed31, 0xffffd868ffffdda9}, + {0x9834ed32, 0xffffd868ffffddaa}, + {0x9834ed33, 0xffffd868ffffddab}, + {0x9834ed34, 0xffffd868ffffddac}, + {0x9834ed35, 0xffffd868ffffddad}, + {0x9834ed36, 0xffffd868ffffddae}, + {0x9834ed37, 0xffffd868ffffddaf}, + {0x9834ed38, 0xffffd868ffffddb0}, + {0x9834ed39, 0xffffd868ffffddb1}, + {0x9834ee30, 0xffffd868ffffddb2}, + {0x9834ee31, 0xffffd868ffffddb3}, + {0x9834ee32, 0xffffd868ffffddb4}, + {0x9834ee33, 0xffffd868ffffddb5}, + {0x9834ee34, 0xffffd868ffffddb6}, + {0x9834ee35, 0xffffd868ffffddb7}, + {0x9834ee36, 0xffffd868ffffddb8}, + {0x9834ee37, 0xffffd868ffffddb9}, + {0x9834ee38, 0xffffd868ffffddba}, + {0x9834ee39, 0xffffd868ffffddbb}, + {0x9834ef30, 0xffffd868ffffddbc}, + {0x9834ef31, 0xffffd868ffffddbd}, + {0x9834ef32, 0xffffd868ffffddbe}, + {0x9834ef33, 0xffffd868ffffddbf}, + {0x9834ef34, 0xffffd868ffffddc0}, + {0x9834ef35, 0xffffd868ffffddc1}, + {0x9834ef36, 0xffffd868ffffddc2}, + {0x9834ef37, 0xffffd868ffffddc3}, + {0x9834ef38, 0xffffd868ffffddc4}, + {0x9834ef39, 0xffffd868ffffddc5}, + {0x9834f030, 0xffffd868ffffddc6}, + {0x9834f031, 0xffffd868ffffddc7}, + {0x9834f032, 0xffffd868ffffddc8}, + {0x9834f033, 0xffffd868ffffddc9}, + {0x9834f034, 0xffffd868ffffddca}, + {0x9834f035, 0xffffd868ffffddcb}, + {0x9834f036, 0xffffd868ffffddcc}, + {0x9834f037, 0xffffd868ffffddcd}, + {0x9834f038, 0xffffd868ffffddce}, + {0x9834f039, 0xffffd868ffffddcf}, + {0x9834f130, 0xffffd868ffffddd0}, + {0x9834f131, 0xffffd868ffffddd1}, + {0x9834f132, 0xffffd868ffffddd2}, + {0x9834f133, 0xffffd868ffffddd3}, + {0x9834f134, 0xffffd868ffffddd4}, + {0x9834f135, 0xffffd868ffffddd5}, + {0x9834f136, 0xffffd868ffffddd6}, + {0x9834f137, 0xffffd868ffffddd7}, + {0x9834f138, 0xffffd868ffffddd8}, + {0x9834f139, 0xffffd868ffffddd9}, + {0x9834f230, 0xffffd868ffffddda}, + {0x9834f231, 0xffffd868ffffdddb}, + {0x9834f232, 0xffffd868ffffdddc}, + {0x9834f233, 0xffffd868ffffdddd}, + {0x9834f234, 0xffffd868ffffddde}, + {0x9834f235, 0xffffd868ffffdddf}, + {0x9834f236, 0xffffd868ffffdde0}, + {0x9834f237, 0xffffd868ffffdde1}, + {0x9834f238, 0xffffd868ffffdde2}, + {0x9834f239, 0xffffd868ffffdde3}, + {0x9834f330, 0xffffd868ffffdde4}, + {0x9834f331, 0xffffd868ffffdde5}, + {0x9834f332, 0xffffd868ffffdde6}, + {0x9834f333, 0xffffd868ffffdde7}, + {0x9834f334, 0xffffd868ffffdde8}, + {0x9834f335, 0xffffd868ffffdde9}, + {0x9834f336, 0xffffd868ffffddea}, + {0x9834f337, 0xffffd868ffffddeb}, + {0x9834f338, 0xffffd868ffffddec}, + {0x9834f339, 0xffffd868ffffdded}, + {0x9834f430, 0xffffd868ffffddee}, + {0x9834f431, 0xffffd868ffffddef}, + {0x9834f432, 0xffffd868ffffddf0}, + {0x9834f433, 0xffffd868ffffddf1}, + {0x9834f434, 0xffffd868ffffddf2}, + {0x9834f435, 0xffffd868ffffddf3}, + {0x9834f436, 0xffffd868ffffddf4}, + {0x9834f437, 0xffffd868ffffddf5}, + {0x9834f438, 0xffffd868ffffddf6}, + {0x9834f439, 0xffffd868ffffddf7}, + {0x9834f530, 0xffffd868ffffddf8}, + {0x9834f531, 0xffffd868ffffddf9}, + {0x9834f532, 0xffffd868ffffddfa}, + {0x9834f533, 0xffffd868ffffddfb}, + {0x9834f534, 0xffffd868ffffddfc}, + {0x9834f535, 0xffffd868ffffddfd}, + {0x9834f536, 0xffffd868ffffddfe}, + {0x9834f537, 0xffffd868ffffddff}, + {0x9834f538, 0xffffd868ffffde00}, + {0x9834f539, 0xffffd868ffffde01}, + {0x9834f630, 0xffffd868ffffde02}, + {0x9834f631, 0xffffd868ffffde03}, + {0x9834f632, 0xffffd868ffffde04}, + {0x9834f633, 0xffffd868ffffde05}, + {0x9834f634, 0xffffd868ffffde06}, + {0x9834f635, 0xffffd868ffffde07}, + {0x9834f636, 0xffffd868ffffde08}, + {0x9834f637, 0xffffd868ffffde09}, + {0x9834f638, 0xffffd868ffffde0a}, + {0x9834f639, 0xffffd868ffffde0b}, + {0x9834f730, 0xffffd868ffffde0c}, + {0x9834f731, 0xffffd868ffffde0d}, + {0x9834f732, 0xffffd868ffffde0e}, + {0x9834f733, 0xffffd868ffffde0f}, + {0x9834f734, 0xffffd868ffffde10}, + {0x9834f735, 0xffffd868ffffde11}, + {0x9834f736, 0xffffd868ffffde12}, + {0x9834f737, 0xffffd868ffffde13}, + {0x9834f738, 0xffffd868ffffde14}, + {0x9834f739, 0xffffd868ffffde15}, + {0x9834f830, 0xffffd868ffffde16}, + {0x9834f831, 0xffffd868ffffde17}, + {0x9834f832, 0xffffd868ffffde18}, + {0x9834f833, 0xffffd868ffffde19}, + {0x9834f834, 0xffffd868ffffde1a}, + {0x9834f835, 0xffffd868ffffde1b}, + {0x9834f836, 0xffffd868ffffde1c}, + {0x9834f837, 0xffffd868ffffde1d}, + {0x9834f838, 0xffffd868ffffde1e}, + {0x9834f839, 0xffffd868ffffde1f}, + {0x9834f930, 0xffffd868ffffde20}, + {0x9834f931, 0xffffd868ffffde21}, + {0x9834f932, 0xffffd868ffffde22}, + {0x9834f933, 0xffffd868ffffde23}, + {0x9834f934, 0xffffd868ffffde24}, + {0x9834f935, 0xffffd868ffffde25}, + {0x9834f936, 0xffffd868ffffde26}, + {0x9834f937, 0xffffd868ffffde27}, + {0x9834f938, 0xffffd868ffffde28}, + {0x9834f939, 0xffffd868ffffde29}, + {0x9834fa30, 0xffffd868ffffde2a}, + {0x9834fa31, 0xffffd868ffffde2b}, + {0x9834fa32, 0xffffd868ffffde2c}, + {0x9834fa33, 0xffffd868ffffde2d}, + {0x9834fa34, 0xffffd868ffffde2e}, + {0x9834fa35, 0xffffd868ffffde2f}, + {0x9834fa36, 0xffffd868ffffde30}, + {0x9834fa37, 0xffffd868ffffde31}, + {0x9834fa38, 0xffffd868ffffde32}, + {0x9834fa39, 0xffffd868ffffde33}, + {0x9834fb30, 0xffffd868ffffde34}, + {0x9834fb31, 0xffffd868ffffde35}, + {0x9834fb32, 0xffffd868ffffde36}, + {0x9834fb33, 0xffffd868ffffde37}, + {0x9834fb34, 0xffffd868ffffde38}, + {0x9834fb35, 0xffffd868ffffde39}, + {0x9834fb36, 0xffffd868ffffde3a}, + {0x9834fb37, 0xffffd868ffffde3b}, + {0x9834fb38, 0xffffd868ffffde3c}, + {0x9834fb39, 0xffffd868ffffde3d}, + {0x9834fc30, 0xffffd868ffffde3e}, + {0x9834fc31, 0xffffd868ffffde3f}, + {0x9834fc32, 0xffffd868ffffde40}, + {0x9834fc33, 0xffffd868ffffde41}, + {0x9834fc34, 0xffffd868ffffde42}, + {0x9834fc35, 0xffffd868ffffde43}, + {0x9834fc36, 0xffffd868ffffde44}, + {0x9834fc37, 0xffffd868ffffde45}, + {0x9834fc38, 0xffffd868ffffde46}, + {0x9834fc39, 0xffffd868ffffde47}, + {0x9834fd30, 0xffffd868ffffde48}, + {0x9834fd31, 0xffffd868ffffde49}, + {0x9834fd32, 0xffffd868ffffde4a}, + {0x9834fd33, 0xffffd868ffffde4b}, + {0x9834fd34, 0xffffd868ffffde4c}, + {0x9834fd35, 0xffffd868ffffde4d}, + {0x9834fd36, 0xffffd868ffffde4e}, + {0x9834fd37, 0xffffd868ffffde4f}, + {0x9834fd38, 0xffffd868ffffde50}, + {0x9834fd39, 0xffffd868ffffde51}, + {0x9834fe30, 0xffffd868ffffde52}, + {0x9834fe31, 0xffffd868ffffde53}, + {0x9834fe32, 0xffffd868ffffde54}, + {0x9834fe33, 0xffffd868ffffde55}, + {0x9834fe34, 0xffffd868ffffde56}, + {0x9834fe35, 0xffffd868ffffde57}, + {0x9834fe36, 0xffffd868ffffde58}, + {0x9834fe37, 0xffffd868ffffde59}, + {0x9834fe38, 0xffffd868ffffde5a}, + {0x9834fe39, 0xffffd868ffffde5b}, + {0x98358130, 0xffffd868ffffde5c}, + {0x98358131, 0xffffd868ffffde5d}, + {0x98358132, 0xffffd868ffffde5e}, + {0x98358133, 0xffffd868ffffde5f}, + {0x98358134, 0xffffd868ffffde60}, + {0x98358135, 0xffffd868ffffde61}, + {0x98358136, 0xffffd868ffffde62}, + {0x98358137, 0xffffd868ffffde63}, + {0x98358138, 0xffffd868ffffde64}, + {0x98358139, 0xffffd868ffffde65}, + {0x98358230, 0xffffd868ffffde66}, + {0x98358231, 0xffffd868ffffde67}, + {0x98358232, 0xffffd868ffffde68}, + {0x98358233, 0xffffd868ffffde69}, + {0x98358234, 0xffffd868ffffde6a}, + {0x98358235, 0xffffd868ffffde6b}, + {0x98358236, 0xffffd868ffffde6c}, + {0x98358237, 0xffffd868ffffde6d}, + {0x98358238, 0xffffd868ffffde6e}, + {0x98358239, 0xffffd868ffffde6f}, + {0x98358330, 0xffffd868ffffde70}, + {0x98358331, 0xffffd868ffffde71}, + {0x98358332, 0xffffd868ffffde72}, + {0x98358333, 0xffffd868ffffde73}, + {0x98358334, 0xffffd868ffffde74}, + {0x98358335, 0xffffd868ffffde75}, + {0x98358336, 0xffffd868ffffde76}, + {0x98358337, 0xffffd868ffffde77}, + {0x98358338, 0xffffd868ffffde78}, + {0x98358339, 0xffffd868ffffde79}, + {0x98358430, 0xffffd868ffffde7a}, + {0x98358431, 0xffffd868ffffde7b}, + {0x98358432, 0xffffd868ffffde7c}, + {0x98358433, 0xffffd868ffffde7d}, + {0x98358434, 0xffffd868ffffde7e}, + {0x98358435, 0xffffd868ffffde7f}, + {0x98358436, 0xffffd868ffffde80}, + {0x98358437, 0xffffd868ffffde81}, + {0x98358438, 0xffffd868ffffde82}, + {0x98358439, 0xffffd868ffffde83}, + {0x98358530, 0xffffd868ffffde84}, + {0x98358531, 0xffffd868ffffde85}, + {0x98358532, 0xffffd868ffffde86}, + {0x98358533, 0xffffd868ffffde87}, + {0x98358534, 0xffffd868ffffde88}, + {0x98358535, 0xffffd868ffffde89}, + {0x98358536, 0xffffd868ffffde8a}, + {0x98358537, 0xffffd868ffffde8b}, + {0x98358538, 0xffffd868ffffde8c}, + {0x98358539, 0xffffd868ffffde8d}, + {0x98358630, 0xffffd868ffffde8e}, + {0x98358631, 0xffffd868ffffde8f}, + {0x98358632, 0xffffd868ffffde90}, + {0x98358633, 0xffffd868ffffde91}, + {0x98358634, 0xffffd868ffffde92}, + {0x98358635, 0xffffd868ffffde93}, + {0x98358636, 0xffffd868ffffde94}, + {0x98358637, 0xffffd868ffffde95}, + {0x98358638, 0xffffd868ffffde96}, + {0x98358639, 0xffffd868ffffde97}, + {0x98358730, 0xffffd868ffffde98}, + {0x98358731, 0xffffd868ffffde99}, + {0x98358732, 0xffffd868ffffde9a}, + {0x98358733, 0xffffd868ffffde9b}, + {0x98358734, 0xffffd868ffffde9c}, + {0x98358735, 0xffffd868ffffde9d}, + {0x98358736, 0xffffd868ffffde9e}, + {0x98358737, 0xffffd868ffffde9f}, + {0x98358738, 0xffffd868ffffdea0}, + {0x98358739, 0xffffd868ffffdea1}, + {0x98358830, 0xffffd868ffffdea2}, + {0x98358831, 0xffffd868ffffdea3}, + {0x98358832, 0xffffd868ffffdea4}, + {0x98358833, 0xffffd868ffffdea5}, + {0x98358834, 0xffffd868ffffdea6}, + {0x98358835, 0xffffd868ffffdea7}, + {0x98358836, 0xffffd868ffffdea8}, + {0x98358837, 0xffffd868ffffdea9}, + {0x98358838, 0xffffd868ffffdeaa}, + {0x98358839, 0xffffd868ffffdeab}, + {0x98358930, 0xffffd868ffffdeac}, + {0x98358931, 0xffffd868ffffdead}, + {0x98358932, 0xffffd868ffffdeae}, + {0x98358933, 0xffffd868ffffdeaf}, + {0x98358934, 0xffffd868ffffdeb0}, + {0x98358935, 0xffffd868ffffdeb1}, + {0x98358936, 0xffffd868ffffdeb2}, + {0x98358937, 0xffffd868ffffdeb3}, + {0x98358938, 0xffffd868ffffdeb4}, + {0x98358939, 0xffffd868ffffdeb5}, + {0x98358a30, 0xffffd868ffffdeb6}, + {0x98358a31, 0xffffd868ffffdeb7}, + {0x98358a32, 0xffffd868ffffdeb8}, + {0x98358a33, 0xffffd868ffffdeb9}, + {0x98358a34, 0xffffd868ffffdeba}, + {0x98358a35, 0xffffd868ffffdebb}, + {0x98358a36, 0xffffd868ffffdebc}, + {0x98358a37, 0xffffd868ffffdebd}, + {0x98358a38, 0xffffd868ffffdebe}, + {0x98358a39, 0xffffd868ffffdebf}, + {0x98358b30, 0xffffd868ffffdec0}, + {0x98358b31, 0xffffd868ffffdec1}, + {0x98358b32, 0xffffd868ffffdec2}, + {0x98358b33, 0xffffd868ffffdec3}, + {0x98358b34, 0xffffd868ffffdec4}, + {0x98358b35, 0xffffd868ffffdec5}, + {0x98358b36, 0xffffd868ffffdec6}, + {0x98358b37, 0xffffd868ffffdec7}, + {0x98358b38, 0xffffd868ffffdec8}, + {0x98358b39, 0xffffd868ffffdec9}, + {0x98358c30, 0xffffd868ffffdeca}, + {0x98358c31, 0xffffd868ffffdecb}, + {0x98358c32, 0xffffd868ffffdecc}, + {0x98358c33, 0xffffd868ffffdecd}, + {0x98358c34, 0xffffd868ffffdece}, + {0x98358c35, 0xffffd868ffffdecf}, + {0x98358c36, 0xffffd868ffffded0}, + {0x98358c37, 0xffffd868ffffded1}, + {0x98358c38, 0xffffd868ffffded2}, + {0x98358c39, 0xffffd868ffffded3}, + {0x98358d30, 0xffffd868ffffded4}, + {0x98358d31, 0xffffd868ffffded5}, + {0x98358d32, 0xffffd868ffffded6}, + {0x98358d33, 0xffffd868ffffded7}, + {0x98358d34, 0xffffd868ffffded8}, + {0x98358d35, 0xffffd868ffffded9}, + {0x98358d36, 0xffffd868ffffdeda}, + {0x98358d37, 0xffffd868ffffdedb}, + {0x98358d38, 0xffffd868ffffdedc}, + {0x98358d39, 0xffffd868ffffdedd}, + {0x98358e30, 0xffffd868ffffdede}, + {0x98358e31, 0xffffd868ffffdedf}, + {0x98358e32, 0xffffd868ffffdee0}, + {0x98358e33, 0xffffd868ffffdee1}, + {0x98358e34, 0xffffd868ffffdee2}, + {0x98358e35, 0xffffd868ffffdee3}, + {0x98358e36, 0xffffd868ffffdee4}, + {0x98358e37, 0xffffd868ffffdee5}, + {0x98358e38, 0xffffd868ffffdee6}, + {0x98358e39, 0xffffd868ffffdee7}, + {0x98358f30, 0xffffd868ffffdee8}, + {0x98358f31, 0xffffd868ffffdee9}, + {0x98358f32, 0xffffd868ffffdeea}, + {0x98358f33, 0xffffd868ffffdeeb}, + {0x98358f34, 0xffffd868ffffdeec}, + {0x98358f35, 0xffffd868ffffdeed}, + {0x98358f36, 0xffffd868ffffdeee}, + {0x98358f37, 0xffffd868ffffdeef}, + {0x98358f38, 0xffffd868ffffdef0}, + {0x98358f39, 0xffffd868ffffdef1}, + {0x98359030, 0xffffd868ffffdef2}, + {0x98359031, 0xffffd868ffffdef3}, + {0x98359032, 0xffffd868ffffdef4}, + {0x98359033, 0xffffd868ffffdef5}, + {0x98359034, 0xffffd868ffffdef6}, + {0x98359035, 0xffffd868ffffdef7}, + {0x98359036, 0xffffd868ffffdef8}, + {0x98359037, 0xffffd868ffffdef9}, + {0x98359038, 0xffffd868ffffdefa}, + {0x98359039, 0xffffd868ffffdefb}, + {0x98359130, 0xffffd868ffffdefc}, + {0x98359131, 0xffffd868ffffdefd}, + {0x98359132, 0xffffd868ffffdefe}, + {0x98359133, 0xffffd868ffffdeff}, + {0x98359134, 0xffffd868ffffdf00}, + {0x98359135, 0xffffd868ffffdf01}, + {0x98359136, 0xffffd868ffffdf02}, + {0x98359137, 0xffffd868ffffdf03}, + {0x98359138, 0xffffd868ffffdf04}, + {0x98359139, 0xffffd868ffffdf05}, + {0x98359230, 0xffffd868ffffdf06}, + {0x98359231, 0xffffd868ffffdf07}, + {0x98359232, 0xffffd868ffffdf08}, + {0x98359233, 0xffffd868ffffdf09}, + {0x98359234, 0xffffd868ffffdf0a}, + {0x98359235, 0xffffd868ffffdf0b}, + {0x98359236, 0xffffd868ffffdf0c}, + {0x98359237, 0xffffd868ffffdf0d}, + {0x98359238, 0xffffd868ffffdf0e}, + {0x98359239, 0xffffd868ffffdf0f}, + {0x98359330, 0xffffd868ffffdf10}, + {0x98359331, 0xffffd868ffffdf11}, + {0x98359332, 0xffffd868ffffdf12}, + {0x98359333, 0xffffd868ffffdf13}, + {0x98359334, 0xffffd868ffffdf14}, + {0x98359335, 0xffffd868ffffdf15}, + {0x98359336, 0xffffd868ffffdf16}, + {0x98359337, 0xffffd868ffffdf17}, + {0x98359338, 0xffffd868ffffdf18}, + {0x98359339, 0xffffd868ffffdf19}, + {0x98359430, 0xffffd868ffffdf1a}, + {0x98359431, 0xffffd868ffffdf1b}, + {0x98359432, 0xffffd868ffffdf1c}, + {0x98359433, 0xffffd868ffffdf1d}, + {0x98359434, 0xffffd868ffffdf1e}, + {0x98359435, 0xffffd868ffffdf1f}, + {0x98359436, 0xffffd868ffffdf20}, + {0x98359437, 0xffffd868ffffdf21}, + {0x98359438, 0xffffd868ffffdf22}, + {0x98359439, 0xffffd868ffffdf23}, + {0x98359530, 0xffffd868ffffdf24}, + {0x98359531, 0xffffd868ffffdf25}, + {0x98359532, 0xffffd868ffffdf26}, + {0x98359533, 0xffffd868ffffdf27}, + {0x98359534, 0xffffd868ffffdf28}, + {0x98359535, 0xffffd868ffffdf29}, + {0x98359536, 0xffffd868ffffdf2a}, + {0x98359537, 0xffffd868ffffdf2b}, + {0x98359538, 0xffffd868ffffdf2c}, + {0x98359539, 0xffffd868ffffdf2d}, + {0x98359630, 0xffffd868ffffdf2e}, + {0x98359631, 0xffffd868ffffdf2f}, + {0x98359632, 0xffffd868ffffdf30}, + {0x98359633, 0xffffd868ffffdf31}, + {0x98359634, 0xffffd868ffffdf32}, + {0x98359635, 0xffffd868ffffdf33}, + {0x98359636, 0xffffd868ffffdf34}, + {0x98359637, 0xffffd868ffffdf35}, + {0x98359638, 0xffffd868ffffdf36}, + {0x98359639, 0xffffd868ffffdf37}, + {0x98359730, 0xffffd868ffffdf38}, + {0x98359731, 0xffffd868ffffdf39}, + {0x98359732, 0xffffd868ffffdf3a}, + {0x98359733, 0xffffd868ffffdf3b}, + {0x98359734, 0xffffd868ffffdf3c}, + {0x98359735, 0xffffd868ffffdf3d}, + {0x98359736, 0xffffd868ffffdf3e}, + {0x98359737, 0xffffd868ffffdf3f}, + {0x98359738, 0xffffd868ffffdf40}, + {0x98359739, 0xffffd868ffffdf41}, + {0x98359830, 0xffffd868ffffdf42}, + {0x98359831, 0xffffd868ffffdf43}, + {0x98359832, 0xffffd868ffffdf44}, + {0x98359833, 0xffffd868ffffdf45}, + {0x98359834, 0xffffd868ffffdf46}, + {0x98359835, 0xffffd868ffffdf47}, + {0x98359836, 0xffffd868ffffdf48}, + {0x98359837, 0xffffd868ffffdf49}, + {0x98359838, 0xffffd868ffffdf4a}, + {0x98359839, 0xffffd868ffffdf4b}, + {0x98359930, 0xffffd868ffffdf4c}, + {0x98359931, 0xffffd868ffffdf4d}, + {0x98359932, 0xffffd868ffffdf4e}, + {0x98359933, 0xffffd868ffffdf4f}, + {0x98359934, 0xffffd868ffffdf50}, + {0x98359935, 0xffffd868ffffdf51}, + {0x98359936, 0xffffd868ffffdf52}, + {0x98359937, 0xffffd868ffffdf53}, + {0x98359938, 0xffffd868ffffdf54}, + {0x98359939, 0xffffd868ffffdf55}, + {0x98359a30, 0xffffd868ffffdf56}, + {0x98359a31, 0xffffd868ffffdf57}, + {0x98359a32, 0xffffd868ffffdf58}, + {0x98359a33, 0xffffd868ffffdf59}, + {0x98359a34, 0xffffd868ffffdf5a}, + {0x98359a35, 0xffffd868ffffdf5b}, + {0x98359a36, 0xffffd868ffffdf5c}, + {0x98359a37, 0xffffd868ffffdf5d}, + {0x98359a38, 0xffffd868ffffdf5e}, + {0x98359a39, 0xffffd868ffffdf5f}, + {0x98359b30, 0xffffd868ffffdf60}, + {0x98359b31, 0xffffd868ffffdf61}, + {0x98359b32, 0xffffd868ffffdf62}, + {0x98359b33, 0xffffd868ffffdf63}, + {0x98359b34, 0xffffd868ffffdf64}, + {0x98359b35, 0xffffd868ffffdf65}, + {0x98359b36, 0xffffd868ffffdf66}, + {0x98359b37, 0xffffd868ffffdf67}, + {0x98359b38, 0xffffd868ffffdf68}, + {0x98359b39, 0xffffd868ffffdf69}, + {0x98359c30, 0xffffd868ffffdf6a}, + {0x98359c31, 0xffffd868ffffdf6b}, + {0x98359c32, 0xffffd868ffffdf6c}, + {0x98359c33, 0xffffd868ffffdf6d}, + {0x98359c34, 0xffffd868ffffdf6e}, + {0x98359c35, 0xffffd868ffffdf6f}, + {0x98359c36, 0xffffd868ffffdf70}, + {0x98359c37, 0xffffd868ffffdf71}, + {0x98359c38, 0xffffd868ffffdf72}, + {0x98359c39, 0xffffd868ffffdf73}, + {0x98359d30, 0xffffd868ffffdf74}, + {0x98359d31, 0xffffd868ffffdf75}, + {0x98359d32, 0xffffd868ffffdf76}, + {0x98359d33, 0xffffd868ffffdf77}, + {0x98359d34, 0xffffd868ffffdf78}, + {0x98359d35, 0xffffd868ffffdf79}, + {0x98359d36, 0xffffd868ffffdf7a}, + {0x98359d37, 0xffffd868ffffdf7b}, + {0x98359d38, 0xffffd868ffffdf7c}, + {0x98359d39, 0xffffd868ffffdf7d}, + {0x98359e30, 0xffffd868ffffdf7e}, + {0x98359e31, 0xffffd868ffffdf7f}, + {0x98359e32, 0xffffd868ffffdf80}, + {0x98359e33, 0xffffd868ffffdf81}, + {0x98359e34, 0xffffd868ffffdf82}, + {0x98359e35, 0xffffd868ffffdf83}, + {0x98359e36, 0xffffd868ffffdf84}, + {0x98359e37, 0xffffd868ffffdf85}, + {0x98359e38, 0xffffd868ffffdf86}, + {0x98359e39, 0xffffd868ffffdf87}, + {0x98359f30, 0xffffd868ffffdf88}, + {0x98359f31, 0xffffd868ffffdf89}, + {0x98359f32, 0xffffd868ffffdf8a}, + {0x98359f33, 0xffffd868ffffdf8b}, + {0x98359f34, 0xffffd868ffffdf8c}, + {0x98359f35, 0xffffd868ffffdf8d}, + {0x98359f36, 0xffffd868ffffdf8e}, + {0x98359f37, 0xffffd868ffffdf8f}, + {0x98359f38, 0xffffd868ffffdf90}, + {0x98359f39, 0xffffd868ffffdf91}, + {0x9835a030, 0xffffd868ffffdf92}, + {0x9835a031, 0xffffd868ffffdf93}, + {0x9835a032, 0xffffd868ffffdf94}, + {0x9835a033, 0xffffd868ffffdf95}, + {0x9835a034, 0xffffd868ffffdf96}, + {0x9835a035, 0xffffd868ffffdf97}, + {0x9835a036, 0xffffd868ffffdf98}, + {0x9835a037, 0xffffd868ffffdf99}, + {0x9835a038, 0xffffd868ffffdf9a}, + {0x9835a039, 0xffffd868ffffdf9b}, + {0x9835a130, 0xffffd868ffffdf9c}, + {0x9835a131, 0xffffd868ffffdf9d}, + {0x9835a132, 0xffffd868ffffdf9e}, + {0x9835a133, 0xffffd868ffffdf9f}, + {0x9835a134, 0xffffd868ffffdfa0}, + {0x9835a135, 0xffffd868ffffdfa1}, + {0x9835a136, 0xffffd868ffffdfa2}, + {0x9835a137, 0xffffd868ffffdfa3}, + {0x9835a138, 0xffffd868ffffdfa4}, + {0x9835a139, 0xffffd868ffffdfa5}, + {0x9835a230, 0xffffd868ffffdfa6}, + {0x9835a231, 0xffffd868ffffdfa7}, + {0x9835a232, 0xffffd868ffffdfa8}, + {0x9835a233, 0xffffd868ffffdfa9}, + {0x9835a234, 0xffffd868ffffdfaa}, + {0x9835a235, 0xffffd868ffffdfab}, + {0x9835a236, 0xffffd868ffffdfac}, + {0x9835a237, 0xffffd868ffffdfad}, + {0x9835a238, 0xffffd868ffffdfae}, + {0x9835a239, 0xffffd868ffffdfaf}, + {0x9835a330, 0xffffd868ffffdfb0}, + {0x9835a331, 0xffffd868ffffdfb1}, + {0x9835a332, 0xffffd868ffffdfb2}, + {0x9835a333, 0xffffd868ffffdfb3}, + {0x9835a334, 0xffffd868ffffdfb4}, + {0x9835a335, 0xffffd868ffffdfb5}, + {0x9835a336, 0xffffd868ffffdfb6}, + {0x9835a337, 0xffffd868ffffdfb7}, + {0x9835a338, 0xffffd868ffffdfb8}, + {0x9835a339, 0xffffd868ffffdfb9}, + {0x9835a430, 0xffffd868ffffdfba}, + {0x9835a431, 0xffffd868ffffdfbb}, + {0x9835a432, 0xffffd868ffffdfbc}, + {0x9835a433, 0xffffd868ffffdfbd}, + {0x9835a434, 0xffffd868ffffdfbe}, + {0x9835a435, 0xffffd868ffffdfbf}, + {0x9835a436, 0xffffd868ffffdfc0}, + {0x9835a437, 0xffffd868ffffdfc1}, + {0x9835a438, 0xffffd868ffffdfc2}, + {0x9835a439, 0xffffd868ffffdfc3}, + {0x9835a530, 0xffffd868ffffdfc4}, + {0x9835a531, 0xffffd868ffffdfc5}, + {0x9835a532, 0xffffd868ffffdfc6}, + {0x9835a533, 0xffffd868ffffdfc7}, + {0x9835a534, 0xffffd868ffffdfc8}, + {0x9835a535, 0xffffd868ffffdfc9}, + {0x9835a536, 0xffffd868ffffdfca}, + {0x9835a537, 0xffffd868ffffdfcb}, + {0x9835a538, 0xffffd868ffffdfcc}, + {0x9835a539, 0xffffd868ffffdfcd}, + {0x9835a630, 0xffffd868ffffdfce}, + {0x9835a631, 0xffffd868ffffdfcf}, + {0x9835a632, 0xffffd868ffffdfd0}, + {0x9835a633, 0xffffd868ffffdfd1}, + {0x9835a634, 0xffffd868ffffdfd2}, + {0x9835a635, 0xffffd868ffffdfd3}, + {0x9835a636, 0xffffd868ffffdfd4}, + {0x9835a637, 0xffffd868ffffdfd5}, + {0x9835a638, 0xffffd868ffffdfd6}, + {0x9835a639, 0xffffd868ffffdfd7}, + {0x9835a730, 0xffffd868ffffdfd8}, + {0x9835a731, 0xffffd868ffffdfd9}, + {0x9835a732, 0xffffd868ffffdfda}, + {0x9835a733, 0xffffd868ffffdfdb}, + {0x9835a734, 0xffffd868ffffdfdc}, + {0x9835a735, 0xffffd868ffffdfdd}, + {0x9835a736, 0xffffd868ffffdfde}, + {0x9835a737, 0xffffd868ffffdfdf}, + {0x9835a738, 0xffffd868ffffdfe0}, + {0x9835a739, 0xffffd868ffffdfe1}, + {0x9835a830, 0xffffd868ffffdfe2}, + {0x9835a831, 0xffffd868ffffdfe3}, + {0x9835a832, 0xffffd868ffffdfe4}, + {0x9835a833, 0xffffd868ffffdfe5}, + {0x9835a834, 0xffffd868ffffdfe6}, + {0x9835a835, 0xffffd868ffffdfe7}, + {0x9835a836, 0xffffd868ffffdfe8}, + {0x9835a837, 0xffffd868ffffdfe9}, + {0x9835a838, 0xffffd868ffffdfea}, + {0x9835a839, 0xffffd868ffffdfeb}, + {0x9835a930, 0xffffd868ffffdfec}, + {0x9835a931, 0xffffd868ffffdfed}, + {0x9835a932, 0xffffd868ffffdfee}, + {0x9835a933, 0xffffd868ffffdfef}, + {0x9835a934, 0xffffd868ffffdff0}, + {0x9835a935, 0xffffd868ffffdff1}, + {0x9835a936, 0xffffd868ffffdff2}, + {0x9835a937, 0xffffd868ffffdff3}, + {0x9835a938, 0xffffd868ffffdff4}, + {0x9835a939, 0xffffd868ffffdff5}, + {0x9835aa30, 0xffffd868ffffdff6}, + {0x9835aa31, 0xffffd868ffffdff7}, + {0x9835aa32, 0xffffd868ffffdff8}, + {0x9835aa33, 0xffffd868ffffdff9}, + {0x9835aa34, 0xffffd868ffffdffa}, + {0x9835aa35, 0xffffd868ffffdffb}, + {0x9835aa36, 0xffffd868ffffdffc}, + {0x9835aa37, 0xffffd868ffffdffd}, + {0x9835aa38, 0xffffd868ffffdffe}, + {0x9835aa39, 0xffffd868ffffdfff}, + {0x9835ab30, 0xffffd869ffffdc00}, + {0x9835ab31, 0xffffd869ffffdc01}, + {0x9835ab32, 0xffffd869ffffdc02}, + {0x9835ab33, 0xffffd869ffffdc03}, + {0x9835ab34, 0xffffd869ffffdc04}, + {0x9835ab35, 0xffffd869ffffdc05}, + {0x9835ab36, 0xffffd869ffffdc06}, + {0x9835ab37, 0xffffd869ffffdc07}, + {0x9835ab38, 0xffffd869ffffdc08}, + {0x9835ab39, 0xffffd869ffffdc09}, + {0x9835ac30, 0xffffd869ffffdc0a}, + {0x9835ac31, 0xffffd869ffffdc0b}, + {0x9835ac32, 0xffffd869ffffdc0c}, + {0x9835ac33, 0xffffd869ffffdc0d}, + {0x9835ac34, 0xffffd869ffffdc0e}, + {0x9835ac35, 0xffffd869ffffdc0f}, + {0x9835ac36, 0xffffd869ffffdc10}, + {0x9835ac37, 0xffffd869ffffdc11}, + {0x9835ac38, 0xffffd869ffffdc12}, + {0x9835ac39, 0xffffd869ffffdc13}, + {0x9835ad30, 0xffffd869ffffdc14}, + {0x9835ad31, 0xffffd869ffffdc15}, + {0x9835ad32, 0xffffd869ffffdc16}, + {0x9835ad33, 0xffffd869ffffdc17}, + {0x9835ad34, 0xffffd869ffffdc18}, + {0x9835ad35, 0xffffd869ffffdc19}, + {0x9835ad36, 0xffffd869ffffdc1a}, + {0x9835ad37, 0xffffd869ffffdc1b}, + {0x9835ad38, 0xffffd869ffffdc1c}, + {0x9835ad39, 0xffffd869ffffdc1d}, + {0x9835ae30, 0xffffd869ffffdc1e}, + {0x9835ae31, 0xffffd869ffffdc1f}, + {0x9835ae32, 0xffffd869ffffdc20}, + {0x9835ae33, 0xffffd869ffffdc21}, + {0x9835ae34, 0xffffd869ffffdc22}, + {0x9835ae35, 0xffffd869ffffdc23}, + {0x9835ae36, 0xffffd869ffffdc24}, + {0x9835ae37, 0xffffd869ffffdc25}, + {0x9835ae38, 0xffffd869ffffdc26}, + {0x9835ae39, 0xffffd869ffffdc27}, + {0x9835af30, 0xffffd869ffffdc28}, + {0x9835af31, 0xffffd869ffffdc29}, + {0x9835af32, 0xffffd869ffffdc2a}, + {0x9835af33, 0xffffd869ffffdc2b}, + {0x9835af34, 0xffffd869ffffdc2c}, + {0x9835af35, 0xffffd869ffffdc2d}, + {0x9835af36, 0xffffd869ffffdc2e}, + {0x9835af37, 0xffffd869ffffdc2f}, + {0x9835af38, 0xffffd869ffffdc30}, + {0x9835af39, 0xffffd869ffffdc31}, + {0x9835b030, 0xffffd869ffffdc32}, + {0x9835b031, 0xffffd869ffffdc33}, + {0x9835b032, 0xffffd869ffffdc34}, + {0x9835b033, 0xffffd869ffffdc35}, + {0x9835b034, 0xffffd869ffffdc36}, + {0x9835b035, 0xffffd869ffffdc37}, + {0x9835b036, 0xffffd869ffffdc38}, + {0x9835b037, 0xffffd869ffffdc39}, + {0x9835b038, 0xffffd869ffffdc3a}, + {0x9835b039, 0xffffd869ffffdc3b}, + {0x9835b130, 0xffffd869ffffdc3c}, + {0x9835b131, 0xffffd869ffffdc3d}, + {0x9835b132, 0xffffd869ffffdc3e}, + {0x9835b133, 0xffffd869ffffdc3f}, + {0x9835b134, 0xffffd869ffffdc40}, + {0x9835b135, 0xffffd869ffffdc41}, + {0x9835b136, 0xffffd869ffffdc42}, + {0x9835b137, 0xffffd869ffffdc43}, + {0x9835b138, 0xffffd869ffffdc44}, + {0x9835b139, 0xffffd869ffffdc45}, + {0x9835b230, 0xffffd869ffffdc46}, + {0x9835b231, 0xffffd869ffffdc47}, + {0x9835b232, 0xffffd869ffffdc48}, + {0x9835b233, 0xffffd869ffffdc49}, + {0x9835b234, 0xffffd869ffffdc4a}, + {0x9835b235, 0xffffd869ffffdc4b}, + {0x9835b236, 0xffffd869ffffdc4c}, + {0x9835b237, 0xffffd869ffffdc4d}, + {0x9835b238, 0xffffd869ffffdc4e}, + {0x9835b239, 0xffffd869ffffdc4f}, + {0x9835b330, 0xffffd869ffffdc50}, + {0x9835b331, 0xffffd869ffffdc51}, + {0x9835b332, 0xffffd869ffffdc52}, + {0x9835b333, 0xffffd869ffffdc53}, + {0x9835b334, 0xffffd869ffffdc54}, + {0x9835b335, 0xffffd869ffffdc55}, + {0x9835b336, 0xffffd869ffffdc56}, + {0x9835b337, 0xffffd869ffffdc57}, + {0x9835b338, 0xffffd869ffffdc58}, + {0x9835b339, 0xffffd869ffffdc59}, + {0x9835b430, 0xffffd869ffffdc5a}, + {0x9835b431, 0xffffd869ffffdc5b}, + {0x9835b432, 0xffffd869ffffdc5c}, + {0x9835b433, 0xffffd869ffffdc5d}, + {0x9835b434, 0xffffd869ffffdc5e}, + {0x9835b435, 0xffffd869ffffdc5f}, + {0x9835b436, 0xffffd869ffffdc60}, + {0x9835b437, 0xffffd869ffffdc61}, + {0x9835b438, 0xffffd869ffffdc62}, + {0x9835b439, 0xffffd869ffffdc63}, + {0x9835b530, 0xffffd869ffffdc64}, + {0x9835b531, 0xffffd869ffffdc65}, + {0x9835b532, 0xffffd869ffffdc66}, + {0x9835b533, 0xffffd869ffffdc67}, + {0x9835b534, 0xffffd869ffffdc68}, + {0x9835b535, 0xffffd869ffffdc69}, + {0x9835b536, 0xffffd869ffffdc6a}, + {0x9835b537, 0xffffd869ffffdc6b}, + {0x9835b538, 0xffffd869ffffdc6c}, + {0x9835b539, 0xffffd869ffffdc6d}, + {0x9835b630, 0xffffd869ffffdc6e}, + {0x9835b631, 0xffffd869ffffdc6f}, + {0x9835b632, 0xffffd869ffffdc70}, + {0x9835b633, 0xffffd869ffffdc71}, + {0x9835b634, 0xffffd869ffffdc72}, + {0x9835b635, 0xffffd869ffffdc73}, + {0x9835b636, 0xffffd869ffffdc74}, + {0x9835b637, 0xffffd869ffffdc75}, + {0x9835b638, 0xffffd869ffffdc76}, + {0x9835b639, 0xffffd869ffffdc77}, + {0x9835b730, 0xffffd869ffffdc78}, + {0x9835b731, 0xffffd869ffffdc79}, + {0x9835b732, 0xffffd869ffffdc7a}, + {0x9835b733, 0xffffd869ffffdc7b}, + {0x9835b734, 0xffffd869ffffdc7c}, + {0x9835b735, 0xffffd869ffffdc7d}, + {0x9835b736, 0xffffd869ffffdc7e}, + {0x9835b737, 0xffffd869ffffdc7f}, + {0x9835b738, 0xffffd869ffffdc80}, + {0x9835b739, 0xffffd869ffffdc81}, + {0x9835b830, 0xffffd869ffffdc82}, + {0x9835b831, 0xffffd869ffffdc83}, + {0x9835b832, 0xffffd869ffffdc84}, + {0x9835b833, 0xffffd869ffffdc85}, + {0x9835b834, 0xffffd869ffffdc86}, + {0x9835b835, 0xffffd869ffffdc87}, + {0x9835b836, 0xffffd869ffffdc88}, + {0x9835b837, 0xffffd869ffffdc89}, + {0x9835b838, 0xffffd869ffffdc8a}, + {0x9835b839, 0xffffd869ffffdc8b}, + {0x9835b930, 0xffffd869ffffdc8c}, + {0x9835b931, 0xffffd869ffffdc8d}, + {0x9835b932, 0xffffd869ffffdc8e}, + {0x9835b933, 0xffffd869ffffdc8f}, + {0x9835b934, 0xffffd869ffffdc90}, + {0x9835b935, 0xffffd869ffffdc91}, + {0x9835b936, 0xffffd869ffffdc92}, + {0x9835b937, 0xffffd869ffffdc93}, + {0x9835b938, 0xffffd869ffffdc94}, + {0x9835b939, 0xffffd869ffffdc95}, + {0x9835ba30, 0xffffd869ffffdc96}, + {0x9835ba31, 0xffffd869ffffdc97}, + {0x9835ba32, 0xffffd869ffffdc98}, + {0x9835ba33, 0xffffd869ffffdc99}, + {0x9835ba34, 0xffffd869ffffdc9a}, + {0x9835ba35, 0xffffd869ffffdc9b}, + {0x9835ba36, 0xffffd869ffffdc9c}, + {0x9835ba37, 0xffffd869ffffdc9d}, + {0x9835ba38, 0xffffd869ffffdc9e}, + {0x9835ba39, 0xffffd869ffffdc9f}, + {0x9835bb30, 0xffffd869ffffdca0}, + {0x9835bb31, 0xffffd869ffffdca1}, + {0x9835bb32, 0xffffd869ffffdca2}, + {0x9835bb33, 0xffffd869ffffdca3}, + {0x9835bb34, 0xffffd869ffffdca4}, + {0x9835bb35, 0xffffd869ffffdca5}, + {0x9835bb36, 0xffffd869ffffdca6}, + {0x9835bb37, 0xffffd869ffffdca7}, + {0x9835bb38, 0xffffd869ffffdca8}, + {0x9835bb39, 0xffffd869ffffdca9}, + {0x9835bc30, 0xffffd869ffffdcaa}, + {0x9835bc31, 0xffffd869ffffdcab}, + {0x9835bc32, 0xffffd869ffffdcac}, + {0x9835bc33, 0xffffd869ffffdcad}, + {0x9835bc34, 0xffffd869ffffdcae}, + {0x9835bc35, 0xffffd869ffffdcaf}, + {0x9835bc36, 0xffffd869ffffdcb0}, + {0x9835bc37, 0xffffd869ffffdcb1}, + {0x9835bc38, 0xffffd869ffffdcb2}, + {0x9835bc39, 0xffffd869ffffdcb3}, + {0x9835bd30, 0xffffd869ffffdcb4}, + {0x9835bd31, 0xffffd869ffffdcb5}, + {0x9835bd32, 0xffffd869ffffdcb6}, + {0x9835bd33, 0xffffd869ffffdcb7}, + {0x9835bd34, 0xffffd869ffffdcb8}, + {0x9835bd35, 0xffffd869ffffdcb9}, + {0x9835bd36, 0xffffd869ffffdcba}, + {0x9835bd37, 0xffffd869ffffdcbb}, + {0x9835bd38, 0xffffd869ffffdcbc}, + {0x9835bd39, 0xffffd869ffffdcbd}, + {0x9835be30, 0xffffd869ffffdcbe}, + {0x9835be31, 0xffffd869ffffdcbf}, + {0x9835be32, 0xffffd869ffffdcc0}, + {0x9835be33, 0xffffd869ffffdcc1}, + {0x9835be34, 0xffffd869ffffdcc2}, + {0x9835be35, 0xffffd869ffffdcc3}, + {0x9835be36, 0xffffd869ffffdcc4}, + {0x9835be37, 0xffffd869ffffdcc5}, + {0x9835be38, 0xffffd869ffffdcc6}, + {0x9835be39, 0xffffd869ffffdcc7}, + {0x9835bf30, 0xffffd869ffffdcc8}, + {0x9835bf31, 0xffffd869ffffdcc9}, + {0x9835bf32, 0xffffd869ffffdcca}, + {0x9835bf33, 0xffffd869ffffdccb}, + {0x9835bf34, 0xffffd869ffffdccc}, + {0x9835bf35, 0xffffd869ffffdccd}, + {0x9835bf36, 0xffffd869ffffdcce}, + {0x9835bf37, 0xffffd869ffffdccf}, + {0x9835bf38, 0xffffd869ffffdcd0}, + {0x9835bf39, 0xffffd869ffffdcd1}, + {0x9835c030, 0xffffd869ffffdcd2}, + {0x9835c031, 0xffffd869ffffdcd3}, + {0x9835c032, 0xffffd869ffffdcd4}, + {0x9835c033, 0xffffd869ffffdcd5}, + {0x9835c034, 0xffffd869ffffdcd6}, + {0x9835c035, 0xffffd869ffffdcd7}, + {0x9835c036, 0xffffd869ffffdcd8}, + {0x9835c037, 0xffffd869ffffdcd9}, + {0x9835c038, 0xffffd869ffffdcda}, + {0x9835c039, 0xffffd869ffffdcdb}, + {0x9835c130, 0xffffd869ffffdcdc}, + {0x9835c131, 0xffffd869ffffdcdd}, + {0x9835c132, 0xffffd869ffffdcde}, + {0x9835c133, 0xffffd869ffffdcdf}, + {0x9835c134, 0xffffd869ffffdce0}, + {0x9835c135, 0xffffd869ffffdce1}, + {0x9835c136, 0xffffd869ffffdce2}, + {0x9835c137, 0xffffd869ffffdce3}, + {0x9835c138, 0xffffd869ffffdce4}, + {0x9835c139, 0xffffd869ffffdce5}, + {0x9835c230, 0xffffd869ffffdce6}, + {0x9835c231, 0xffffd869ffffdce7}, + {0x9835c232, 0xffffd869ffffdce8}, + {0x9835c233, 0xffffd869ffffdce9}, + {0x9835c234, 0xffffd869ffffdcea}, + {0x9835c235, 0xffffd869ffffdceb}, + {0x9835c236, 0xffffd869ffffdcec}, + {0x9835c237, 0xffffd869ffffdced}, + {0x9835c238, 0xffffd869ffffdcee}, + {0x9835c239, 0xffffd869ffffdcef}, + {0x9835c330, 0xffffd869ffffdcf0}, + {0x9835c331, 0xffffd869ffffdcf1}, + {0x9835c332, 0xffffd869ffffdcf2}, + {0x9835c333, 0xffffd869ffffdcf3}, + {0x9835c334, 0xffffd869ffffdcf4}, + {0x9835c335, 0xffffd869ffffdcf5}, + {0x9835c336, 0xffffd869ffffdcf6}, + {0x9835c337, 0xffffd869ffffdcf7}, + {0x9835c338, 0xffffd869ffffdcf8}, + {0x9835c339, 0xffffd869ffffdcf9}, + {0x9835c430, 0xffffd869ffffdcfa}, + {0x9835c431, 0xffffd869ffffdcfb}, + {0x9835c432, 0xffffd869ffffdcfc}, + {0x9835c433, 0xffffd869ffffdcfd}, + {0x9835c434, 0xffffd869ffffdcfe}, + {0x9835c435, 0xffffd869ffffdcff}, + {0x9835c436, 0xffffd869ffffdd00}, + {0x9835c437, 0xffffd869ffffdd01}, + {0x9835c438, 0xffffd869ffffdd02}, + {0x9835c439, 0xffffd869ffffdd03}, + {0x9835c530, 0xffffd869ffffdd04}, + {0x9835c531, 0xffffd869ffffdd05}, + {0x9835c532, 0xffffd869ffffdd06}, + {0x9835c533, 0xffffd869ffffdd07}, + {0x9835c534, 0xffffd869ffffdd08}, + {0x9835c535, 0xffffd869ffffdd09}, + {0x9835c536, 0xffffd869ffffdd0a}, + {0x9835c537, 0xffffd869ffffdd0b}, + {0x9835c538, 0xffffd869ffffdd0c}, + {0x9835c539, 0xffffd869ffffdd0d}, + {0x9835c630, 0xffffd869ffffdd0e}, + {0x9835c631, 0xffffd869ffffdd0f}, + {0x9835c632, 0xffffd869ffffdd10}, + {0x9835c633, 0xffffd869ffffdd11}, + {0x9835c634, 0xffffd869ffffdd12}, + {0x9835c635, 0xffffd869ffffdd13}, + {0x9835c636, 0xffffd869ffffdd14}, + {0x9835c637, 0xffffd869ffffdd15}, + {0x9835c638, 0xffffd869ffffdd16}, + {0x9835c639, 0xffffd869ffffdd17}, + {0x9835c730, 0xffffd869ffffdd18}, + {0x9835c731, 0xffffd869ffffdd19}, + {0x9835c732, 0xffffd869ffffdd1a}, + {0x9835c733, 0xffffd869ffffdd1b}, + {0x9835c734, 0xffffd869ffffdd1c}, + {0x9835c735, 0xffffd869ffffdd1d}, + {0x9835c736, 0xffffd869ffffdd1e}, + {0x9835c737, 0xffffd869ffffdd1f}, + {0x9835c738, 0xffffd869ffffdd20}, + {0x9835c739, 0xffffd869ffffdd21}, + {0x9835c830, 0xffffd869ffffdd22}, + {0x9835c831, 0xffffd869ffffdd23}, + {0x9835c832, 0xffffd869ffffdd24}, + {0x9835c833, 0xffffd869ffffdd25}, + {0x9835c834, 0xffffd869ffffdd26}, + {0x9835c835, 0xffffd869ffffdd27}, + {0x9835c836, 0xffffd869ffffdd28}, + {0x9835c837, 0xffffd869ffffdd29}, + {0x9835c838, 0xffffd869ffffdd2a}, + {0x9835c839, 0xffffd869ffffdd2b}, + {0x9835c930, 0xffffd869ffffdd2c}, + {0x9835c931, 0xffffd869ffffdd2d}, + {0x9835c932, 0xffffd869ffffdd2e}, + {0x9835c933, 0xffffd869ffffdd2f}, + {0x9835c934, 0xffffd869ffffdd30}, + {0x9835c935, 0xffffd869ffffdd31}, + {0x9835c936, 0xffffd869ffffdd32}, + {0x9835c937, 0xffffd869ffffdd33}, + {0x9835c938, 0xffffd869ffffdd34}, + {0x9835c939, 0xffffd869ffffdd35}, + {0x9835ca30, 0xffffd869ffffdd36}, + {0x9835ca31, 0xffffd869ffffdd37}, + {0x9835ca32, 0xffffd869ffffdd38}, + {0x9835ca33, 0xffffd869ffffdd39}, + {0x9835ca34, 0xffffd869ffffdd3a}, + {0x9835ca35, 0xffffd869ffffdd3b}, + {0x9835ca36, 0xffffd869ffffdd3c}, + {0x9835ca37, 0xffffd869ffffdd3d}, + {0x9835ca38, 0xffffd869ffffdd3e}, + {0x9835ca39, 0xffffd869ffffdd3f}, + {0x9835cb30, 0xffffd869ffffdd40}, + {0x9835cb31, 0xffffd869ffffdd41}, + {0x9835cb32, 0xffffd869ffffdd42}, + {0x9835cb33, 0xffffd869ffffdd43}, + {0x9835cb34, 0xffffd869ffffdd44}, + {0x9835cb35, 0xffffd869ffffdd45}, + {0x9835cb36, 0xffffd869ffffdd46}, + {0x9835cb37, 0xffffd869ffffdd47}, + {0x9835cb38, 0xffffd869ffffdd48}, + {0x9835cb39, 0xffffd869ffffdd49}, + {0x9835cc30, 0xffffd869ffffdd4a}, + {0x9835cc31, 0xffffd869ffffdd4b}, + {0x9835cc32, 0xffffd869ffffdd4c}, + {0x9835cc33, 0xffffd869ffffdd4d}, + {0x9835cc34, 0xffffd869ffffdd4e}, + {0x9835cc35, 0xffffd869ffffdd4f}, + {0x9835cc36, 0xffffd869ffffdd50}, + {0x9835cc37, 0xffffd869ffffdd51}, + {0x9835cc38, 0xffffd869ffffdd52}, + {0x9835cc39, 0xffffd869ffffdd53}, + {0x9835cd30, 0xffffd869ffffdd54}, + {0x9835cd31, 0xffffd869ffffdd55}, + {0x9835cd32, 0xffffd869ffffdd56}, + {0x9835cd33, 0xffffd869ffffdd57}, + {0x9835cd34, 0xffffd869ffffdd58}, + {0x9835cd35, 0xffffd869ffffdd59}, + {0x9835cd36, 0xffffd869ffffdd5a}, + {0x9835cd37, 0xffffd869ffffdd5b}, + {0x9835cd38, 0xffffd869ffffdd5c}, + {0x9835cd39, 0xffffd869ffffdd5d}, + {0x9835ce30, 0xffffd869ffffdd5e}, + {0x9835ce31, 0xffffd869ffffdd5f}, + {0x9835ce32, 0xffffd869ffffdd60}, + {0x9835ce33, 0xffffd869ffffdd61}, + {0x9835ce34, 0xffffd869ffffdd62}, + {0x9835ce35, 0xffffd869ffffdd63}, + {0x9835ce36, 0xffffd869ffffdd64}, + {0x9835ce37, 0xffffd869ffffdd65}, + {0x9835ce38, 0xffffd869ffffdd66}, + {0x9835ce39, 0xffffd869ffffdd67}, + {0x9835cf30, 0xffffd869ffffdd68}, + {0x9835cf31, 0xffffd869ffffdd69}, + {0x9835cf32, 0xffffd869ffffdd6a}, + {0x9835cf33, 0xffffd869ffffdd6b}, + {0x9835cf34, 0xffffd869ffffdd6c}, + {0x9835cf35, 0xffffd869ffffdd6d}, + {0x9835cf36, 0xffffd869ffffdd6e}, + {0x9835cf37, 0xffffd869ffffdd6f}, + {0x9835cf38, 0xffffd869ffffdd70}, + {0x9835cf39, 0xffffd869ffffdd71}, + {0x9835d030, 0xffffd869ffffdd72}, + {0x9835d031, 0xffffd869ffffdd73}, + {0x9835d032, 0xffffd869ffffdd74}, + {0x9835d033, 0xffffd869ffffdd75}, + {0x9835d034, 0xffffd869ffffdd76}, + {0x9835d035, 0xffffd869ffffdd77}, + {0x9835d036, 0xffffd869ffffdd78}, + {0x9835d037, 0xffffd869ffffdd79}, + {0x9835d038, 0xffffd869ffffdd7a}, + {0x9835d039, 0xffffd869ffffdd7b}, + {0x9835d130, 0xffffd869ffffdd7c}, + {0x9835d131, 0xffffd869ffffdd7d}, + {0x9835d132, 0xffffd869ffffdd7e}, + {0x9835d133, 0xffffd869ffffdd7f}, + {0x9835d134, 0xffffd869ffffdd80}, + {0x9835d135, 0xffffd869ffffdd81}, + {0x9835d136, 0xffffd869ffffdd82}, + {0x9835d137, 0xffffd869ffffdd83}, + {0x9835d138, 0xffffd869ffffdd84}, + {0x9835d139, 0xffffd869ffffdd85}, + {0x9835d230, 0xffffd869ffffdd86}, + {0x9835d231, 0xffffd869ffffdd87}, + {0x9835d232, 0xffffd869ffffdd88}, + {0x9835d233, 0xffffd869ffffdd89}, + {0x9835d234, 0xffffd869ffffdd8a}, + {0x9835d235, 0xffffd869ffffdd8b}, + {0x9835d236, 0xffffd869ffffdd8c}, + {0x9835d237, 0xffffd869ffffdd8d}, + {0x9835d238, 0xffffd869ffffdd8e}, + {0x9835d239, 0xffffd869ffffdd8f}, + {0x9835d330, 0xffffd869ffffdd90}, + {0x9835d331, 0xffffd869ffffdd91}, + {0x9835d332, 0xffffd869ffffdd92}, + {0x9835d333, 0xffffd869ffffdd93}, + {0x9835d334, 0xffffd869ffffdd94}, + {0x9835d335, 0xffffd869ffffdd95}, + {0x9835d336, 0xffffd869ffffdd96}, + {0x9835d337, 0xffffd869ffffdd97}, + {0x9835d338, 0xffffd869ffffdd98}, + {0x9835d339, 0xffffd869ffffdd99}, + {0x9835d430, 0xffffd869ffffdd9a}, + {0x9835d431, 0xffffd869ffffdd9b}, + {0x9835d432, 0xffffd869ffffdd9c}, + {0x9835d433, 0xffffd869ffffdd9d}, + {0x9835d434, 0xffffd869ffffdd9e}, + {0x9835d435, 0xffffd869ffffdd9f}, + {0x9835d436, 0xffffd869ffffdda0}, + {0x9835d437, 0xffffd869ffffdda1}, + {0x9835d438, 0xffffd869ffffdda2}, + {0x9835d439, 0xffffd869ffffdda3}, + {0x9835d530, 0xffffd869ffffdda4}, + {0x9835d531, 0xffffd869ffffdda5}, + {0x9835d532, 0xffffd869ffffdda6}, + {0x9835d533, 0xffffd869ffffdda7}, + {0x9835d534, 0xffffd869ffffdda8}, + {0x9835d535, 0xffffd869ffffdda9}, + {0x9835d536, 0xffffd869ffffddaa}, + {0x9835d537, 0xffffd869ffffddab}, + {0x9835d538, 0xffffd869ffffddac}, + {0x9835d539, 0xffffd869ffffddad}, + {0x9835d630, 0xffffd869ffffddae}, + {0x9835d631, 0xffffd869ffffddaf}, + {0x9835d632, 0xffffd869ffffddb0}, + {0x9835d633, 0xffffd869ffffddb1}, + {0x9835d634, 0xffffd869ffffddb2}, + {0x9835d635, 0xffffd869ffffddb3}, + {0x9835d636, 0xffffd869ffffddb4}, + {0x9835d637, 0xffffd869ffffddb5}, + {0x9835d638, 0xffffd869ffffddb6}, + {0x9835d639, 0xffffd869ffffddb7}, + {0x9835d730, 0xffffd869ffffddb8}, + {0x9835d731, 0xffffd869ffffddb9}, + {0x9835d732, 0xffffd869ffffddba}, + {0x9835d733, 0xffffd869ffffddbb}, + {0x9835d734, 0xffffd869ffffddbc}, + {0x9835d735, 0xffffd869ffffddbd}, + {0x9835d736, 0xffffd869ffffddbe}, + {0x9835d737, 0xffffd869ffffddbf}, + {0x9835d738, 0xffffd869ffffddc0}, + {0x9835d739, 0xffffd869ffffddc1}, + {0x9835d830, 0xffffd869ffffddc2}, + {0x9835d831, 0xffffd869ffffddc3}, + {0x9835d832, 0xffffd869ffffddc4}, + {0x9835d833, 0xffffd869ffffddc5}, + {0x9835d834, 0xffffd869ffffddc6}, + {0x9835d835, 0xffffd869ffffddc7}, + {0x9835d836, 0xffffd869ffffddc8}, + {0x9835d837, 0xffffd869ffffddc9}, + {0x9835d838, 0xffffd869ffffddca}, + {0x9835d839, 0xffffd869ffffddcb}, + {0x9835d930, 0xffffd869ffffddcc}, + {0x9835d931, 0xffffd869ffffddcd}, + {0x9835d932, 0xffffd869ffffddce}, + {0x9835d933, 0xffffd869ffffddcf}, + {0x9835d934, 0xffffd869ffffddd0}, + {0x9835d935, 0xffffd869ffffddd1}, + {0x9835d936, 0xffffd869ffffddd2}, + {0x9835d937, 0xffffd869ffffddd3}, + {0x9835d938, 0xffffd869ffffddd4}, + {0x9835d939, 0xffffd869ffffddd5}, + {0x9835da30, 0xffffd869ffffddd6}, + {0x9835da31, 0xffffd869ffffddd7}, + {0x9835da32, 0xffffd869ffffddd8}, + {0x9835da33, 0xffffd869ffffddd9}, + {0x9835da34, 0xffffd869ffffddda}, + {0x9835da35, 0xffffd869ffffdddb}, + {0x9835da36, 0xffffd869ffffdddc}, + {0x9835da37, 0xffffd869ffffdddd}, + {0x9835da38, 0xffffd869ffffddde}, + {0x9835da39, 0xffffd869ffffdddf}, + {0x9835db30, 0xffffd869ffffdde0}, + {0x9835db31, 0xffffd869ffffdde1}, + {0x9835db32, 0xffffd869ffffdde2}, + {0x9835db33, 0xffffd869ffffdde3}, + {0x9835db34, 0xffffd869ffffdde4}, + {0x9835db35, 0xffffd869ffffdde5}, + {0x9835db36, 0xffffd869ffffdde6}, + {0x9835db37, 0xffffd869ffffdde7}, + {0x9835db38, 0xffffd869ffffdde8}, + {0x9835db39, 0xffffd869ffffdde9}, + {0x9835dc30, 0xffffd869ffffddea}, + {0x9835dc31, 0xffffd869ffffddeb}, + {0x9835dc32, 0xffffd869ffffddec}, + {0x9835dc33, 0xffffd869ffffdded}, + {0x9835dc34, 0xffffd869ffffddee}, + {0x9835dc35, 0xffffd869ffffddef}, + {0x9835dc36, 0xffffd869ffffddf0}, + {0x9835dc37, 0xffffd869ffffddf1}, + {0x9835dc38, 0xffffd869ffffddf2}, + {0x9835dc39, 0xffffd869ffffddf3}, + {0x9835dd30, 0xffffd869ffffddf4}, + {0x9835dd31, 0xffffd869ffffddf5}, + {0x9835dd32, 0xffffd869ffffddf6}, + {0x9835dd33, 0xffffd869ffffddf7}, + {0x9835dd34, 0xffffd869ffffddf8}, + {0x9835dd35, 0xffffd869ffffddf9}, + {0x9835dd36, 0xffffd869ffffddfa}, + {0x9835dd37, 0xffffd869ffffddfb}, + {0x9835dd38, 0xffffd869ffffddfc}, + {0x9835dd39, 0xffffd869ffffddfd}, + {0x9835de30, 0xffffd869ffffddfe}, + {0x9835de31, 0xffffd869ffffddff}, + {0x9835de32, 0xffffd869ffffde00}, + {0x9835de33, 0xffffd869ffffde01}, + {0x9835de34, 0xffffd869ffffde02}, + {0x9835de35, 0xffffd869ffffde03}, + {0x9835de36, 0xffffd869ffffde04}, + {0x9835de37, 0xffffd869ffffde05}, + {0x9835de38, 0xffffd869ffffde06}, + {0x9835de39, 0xffffd869ffffde07}, + {0x9835df30, 0xffffd869ffffde08}, + {0x9835df31, 0xffffd869ffffde09}, + {0x9835df32, 0xffffd869ffffde0a}, + {0x9835df33, 0xffffd869ffffde0b}, + {0x9835df34, 0xffffd869ffffde0c}, + {0x9835df35, 0xffffd869ffffde0d}, + {0x9835df36, 0xffffd869ffffde0e}, + {0x9835df37, 0xffffd869ffffde0f}, + {0x9835df38, 0xffffd869ffffde10}, + {0x9835df39, 0xffffd869ffffde11}, + {0x9835e030, 0xffffd869ffffde12}, + {0x9835e031, 0xffffd869ffffde13}, + {0x9835e032, 0xffffd869ffffde14}, + {0x9835e033, 0xffffd869ffffde15}, + {0x9835e034, 0xffffd869ffffde16}, + {0x9835e035, 0xffffd869ffffde17}, + {0x9835e036, 0xffffd869ffffde18}, + {0x9835e037, 0xffffd869ffffde19}, + {0x9835e038, 0xffffd869ffffde1a}, + {0x9835e039, 0xffffd869ffffde1b}, + {0x9835e130, 0xffffd869ffffde1c}, + {0x9835e131, 0xffffd869ffffde1d}, + {0x9835e132, 0xffffd869ffffde1e}, + {0x9835e133, 0xffffd869ffffde1f}, + {0x9835e134, 0xffffd869ffffde20}, + {0x9835e135, 0xffffd869ffffde21}, + {0x9835e136, 0xffffd869ffffde22}, + {0x9835e137, 0xffffd869ffffde23}, + {0x9835e138, 0xffffd869ffffde24}, + {0x9835e139, 0xffffd869ffffde25}, + {0x9835e230, 0xffffd869ffffde26}, + {0x9835e231, 0xffffd869ffffde27}, + {0x9835e232, 0xffffd869ffffde28}, + {0x9835e233, 0xffffd869ffffde29}, + {0x9835e234, 0xffffd869ffffde2a}, + {0x9835e235, 0xffffd869ffffde2b}, + {0x9835e236, 0xffffd869ffffde2c}, + {0x9835e237, 0xffffd869ffffde2d}, + {0x9835e238, 0xffffd869ffffde2e}, + {0x9835e239, 0xffffd869ffffde2f}, + {0x9835e330, 0xffffd869ffffde30}, + {0x9835e331, 0xffffd869ffffde31}, + {0x9835e332, 0xffffd869ffffde32}, + {0x9835e333, 0xffffd869ffffde33}, + {0x9835e334, 0xffffd869ffffde34}, + {0x9835e335, 0xffffd869ffffde35}, + {0x9835e336, 0xffffd869ffffde36}, + {0x9835e337, 0xffffd869ffffde37}, + {0x9835e338, 0xffffd869ffffde38}, + {0x9835e339, 0xffffd869ffffde39}, + {0x9835e430, 0xffffd869ffffde3a}, + {0x9835e431, 0xffffd869ffffde3b}, + {0x9835e432, 0xffffd869ffffde3c}, + {0x9835e433, 0xffffd869ffffde3d}, + {0x9835e434, 0xffffd869ffffde3e}, + {0x9835e435, 0xffffd869ffffde3f}, + {0x9835e436, 0xffffd869ffffde40}, + {0x9835e437, 0xffffd869ffffde41}, + {0x9835e438, 0xffffd869ffffde42}, + {0x9835e439, 0xffffd869ffffde43}, + {0x9835e530, 0xffffd869ffffde44}, + {0x9835e531, 0xffffd869ffffde45}, + {0x9835e532, 0xffffd869ffffde46}, + {0x9835e533, 0xffffd869ffffde47}, + {0x9835e534, 0xffffd869ffffde48}, + {0x9835e535, 0xffffd869ffffde49}, + {0x9835e536, 0xffffd869ffffde4a}, + {0x9835e537, 0xffffd869ffffde4b}, + {0x9835e538, 0xffffd869ffffde4c}, + {0x9835e539, 0xffffd869ffffde4d}, + {0x9835e630, 0xffffd869ffffde4e}, + {0x9835e631, 0xffffd869ffffde4f}, + {0x9835e632, 0xffffd869ffffde50}, + {0x9835e633, 0xffffd869ffffde51}, + {0x9835e634, 0xffffd869ffffde52}, + {0x9835e635, 0xffffd869ffffde53}, + {0x9835e636, 0xffffd869ffffde54}, + {0x9835e637, 0xffffd869ffffde55}, + {0x9835e638, 0xffffd869ffffde56}, + {0x9835e639, 0xffffd869ffffde57}, + {0x9835e730, 0xffffd869ffffde58}, + {0x9835e731, 0xffffd869ffffde59}, + {0x9835e732, 0xffffd869ffffde5a}, + {0x9835e733, 0xffffd869ffffde5b}, + {0x9835e734, 0xffffd869ffffde5c}, + {0x9835e735, 0xffffd869ffffde5d}, + {0x9835e736, 0xffffd869ffffde5e}, + {0x9835e737, 0xffffd869ffffde5f}, + {0x9835e738, 0xffffd869ffffde60}, + {0x9835e739, 0xffffd869ffffde61}, + {0x9835e830, 0xffffd869ffffde62}, + {0x9835e831, 0xffffd869ffffde63}, + {0x9835e832, 0xffffd869ffffde64}, + {0x9835e833, 0xffffd869ffffde65}, + {0x9835e834, 0xffffd869ffffde66}, + {0x9835e835, 0xffffd869ffffde67}, + {0x9835e836, 0xffffd869ffffde68}, + {0x9835e837, 0xffffd869ffffde69}, + {0x9835e838, 0xffffd869ffffde6a}, + {0x9835e839, 0xffffd869ffffde6b}, + {0x9835e930, 0xffffd869ffffde6c}, + {0x9835e931, 0xffffd869ffffde6d}, + {0x9835e932, 0xffffd869ffffde6e}, + {0x9835e933, 0xffffd869ffffde6f}, + {0x9835e934, 0xffffd869ffffde70}, + {0x9835e935, 0xffffd869ffffde71}, + {0x9835e936, 0xffffd869ffffde72}, + {0x9835e937, 0xffffd869ffffde73}, + {0x9835e938, 0xffffd869ffffde74}, + {0x9835e939, 0xffffd869ffffde75}, + {0x9835ea30, 0xffffd869ffffde76}, + {0x9835ea31, 0xffffd869ffffde77}, + {0x9835ea32, 0xffffd869ffffde78}, + {0x9835ea33, 0xffffd869ffffde79}, + {0x9835ea34, 0xffffd869ffffde7a}, + {0x9835ea35, 0xffffd869ffffde7b}, + {0x9835ea36, 0xffffd869ffffde7c}, + {0x9835ea37, 0xffffd869ffffde7d}, + {0x9835ea38, 0xffffd869ffffde7e}, + {0x9835ea39, 0xffffd869ffffde7f}, + {0x9835eb30, 0xffffd869ffffde80}, + {0x9835eb31, 0xffffd869ffffde81}, + {0x9835eb32, 0xffffd869ffffde82}, + {0x9835eb33, 0xffffd869ffffde83}, + {0x9835eb34, 0xffffd869ffffde84}, + {0x9835eb35, 0xffffd869ffffde85}, + {0x9835eb36, 0xffffd869ffffde86}, + {0x9835eb37, 0xffffd869ffffde87}, + {0x9835eb38, 0xffffd869ffffde88}, + {0x9835eb39, 0xffffd869ffffde89}, + {0x9835ec30, 0xffffd869ffffde8a}, + {0x9835ec31, 0xffffd869ffffde8b}, + {0x9835ec32, 0xffffd869ffffde8c}, + {0x9835ec33, 0xffffd869ffffde8d}, + {0x9835ec34, 0xffffd869ffffde8e}, + {0x9835ec35, 0xffffd869ffffde8f}, + {0x9835ec36, 0xffffd869ffffde90}, + {0x9835ec37, 0xffffd869ffffde91}, + {0x9835ec38, 0xffffd869ffffde92}, + {0x9835ec39, 0xffffd869ffffde93}, + {0x9835ed30, 0xffffd869ffffde94}, + {0x9835ed31, 0xffffd869ffffde95}, + {0x9835ed32, 0xffffd869ffffde96}, + {0x9835ed33, 0xffffd869ffffde97}, + {0x9835ed34, 0xffffd869ffffde98}, + {0x9835ed35, 0xffffd869ffffde99}, + {0x9835ed36, 0xffffd869ffffde9a}, + {0x9835ed37, 0xffffd869ffffde9b}, + {0x9835ed38, 0xffffd869ffffde9c}, + {0x9835ed39, 0xffffd869ffffde9d}, + {0x9835ee30, 0xffffd869ffffde9e}, + {0x9835ee31, 0xffffd869ffffde9f}, + {0x9835ee32, 0xffffd869ffffdea0}, + {0x9835ee33, 0xffffd869ffffdea1}, + {0x9835ee34, 0xffffd869ffffdea2}, + {0x9835ee35, 0xffffd869ffffdea3}, + {0x9835ee36, 0xffffd869ffffdea4}, + {0x9835ee37, 0xffffd869ffffdea5}, + {0x9835ee38, 0xffffd869ffffdea6}, + {0x9835ee39, 0xffffd869ffffdea7}, + {0x9835ef30, 0xffffd869ffffdea8}, + {0x9835ef31, 0xffffd869ffffdea9}, + {0x9835ef32, 0xffffd869ffffdeaa}, + {0x9835ef33, 0xffffd869ffffdeab}, + {0x9835ef34, 0xffffd869ffffdeac}, + {0x9835ef35, 0xffffd869ffffdead}, + {0x9835ef36, 0xffffd869ffffdeae}, + {0x9835ef37, 0xffffd869ffffdeaf}, + {0x9835ef38, 0xffffd869ffffdeb0}, + {0x9835ef39, 0xffffd869ffffdeb1}, + {0x9835f030, 0xffffd869ffffdeb2}, + {0x9835f031, 0xffffd869ffffdeb3}, + {0x9835f032, 0xffffd869ffffdeb4}, + {0x9835f033, 0xffffd869ffffdeb5}, + {0x9835f034, 0xffffd869ffffdeb6}, + {0x9835f035, 0xffffd869ffffdeb7}, + {0x9835f036, 0xffffd869ffffdeb8}, + {0x9835f037, 0xffffd869ffffdeb9}, + {0x9835f038, 0xffffd869ffffdeba}, + {0x9835f039, 0xffffd869ffffdebb}, + {0x9835f130, 0xffffd869ffffdebc}, + {0x9835f131, 0xffffd869ffffdebd}, + {0x9835f132, 0xffffd869ffffdebe}, + {0x9835f133, 0xffffd869ffffdebf}, + {0x9835f134, 0xffffd869ffffdec0}, + {0x9835f135, 0xffffd869ffffdec1}, + {0x9835f136, 0xffffd869ffffdec2}, + {0x9835f137, 0xffffd869ffffdec3}, + {0x9835f138, 0xffffd869ffffdec4}, + {0x9835f139, 0xffffd869ffffdec5}, + {0x9835f230, 0xffffd869ffffdec6}, + {0x9835f231, 0xffffd869ffffdec7}, + {0x9835f232, 0xffffd869ffffdec8}, + {0x9835f233, 0xffffd869ffffdec9}, + {0x9835f234, 0xffffd869ffffdeca}, + {0x9835f235, 0xffffd869ffffdecb}, + {0x9835f236, 0xffffd869ffffdecc}, + {0x9835f237, 0xffffd869ffffdecd}, + {0x9835f238, 0xffffd869ffffdece}, + {0x9835f239, 0xffffd869ffffdecf}, + {0x9835f330, 0xffffd869ffffded0}, + {0x9835f331, 0xffffd869ffffded1}, + {0x9835f332, 0xffffd869ffffded2}, + {0x9835f333, 0xffffd869ffffded3}, + {0x9835f334, 0xffffd869ffffded4}, + {0x9835f335, 0xffffd869ffffded5}, + {0x9835f336, 0xffffd869ffffded6}, + {0x9835f337, 0xffffd869ffffded7}, + {0x9835f338, 0xffffd869ffffded8}, + {0x9835f339, 0xffffd869ffffded9}, + {0x9835f430, 0xffffd869ffffdeda}, + {0x9835f431, 0xffffd869ffffdedb}, + {0x9835f432, 0xffffd869ffffdedc}, + {0x9835f433, 0xffffd869ffffdedd}, + {0x9835f434, 0xffffd869ffffdede}, + {0x9835f435, 0xffffd869ffffdedf}, + {0x9835f436, 0xffffd869ffffdee0}, + {0x9835f437, 0xffffd869ffffdee1}, + {0x9835f438, 0xffffd869ffffdee2}, + {0x9835f439, 0xffffd869ffffdee3}, + {0x9835f530, 0xffffd869ffffdee4}, + {0x9835f531, 0xffffd869ffffdee5}, + {0x9835f532, 0xffffd869ffffdee6}, + {0x9835f533, 0xffffd869ffffdee7}, + {0x9835f534, 0xffffd869ffffdee8}, + {0x9835f535, 0xffffd869ffffdee9}, + {0x9835f536, 0xffffd869ffffdeea}, + {0x9835f537, 0xffffd869ffffdeeb}, + {0x9835f538, 0xffffd869ffffdeec}, + {0x9835f539, 0xffffd869ffffdeed}, + {0x9835f630, 0xffffd869ffffdeee}, + {0x9835f631, 0xffffd869ffffdeef}, + {0x9835f632, 0xffffd869ffffdef0}, + {0x9835f633, 0xffffd869ffffdef1}, + {0x9835f634, 0xffffd869ffffdef2}, + {0x9835f635, 0xffffd869ffffdef3}, + {0x9835f636, 0xffffd869ffffdef4}, + {0x9835f637, 0xffffd869ffffdef5}, + {0x9835f638, 0xffffd869ffffdef6}, + {0x9835f639, 0xffffd869ffffdef7}, + {0x9835f730, 0xffffd869ffffdef8}, + {0x9835f731, 0xffffd869ffffdef9}, + {0x9835f732, 0xffffd869ffffdefa}, + {0x9835f733, 0xffffd869ffffdefb}, + {0x9835f734, 0xffffd869ffffdefc}, + {0x9835f735, 0xffffd869ffffdefd}, + {0x9835f736, 0xffffd869ffffdefe}, + {0x9835f737, 0xffffd869ffffdeff}, + {0x9835f738, 0xffffd869ffffdf00}, + {0x9835f739, 0xffffd869ffffdf01}, + {0x9835f830, 0xffffd869ffffdf02}, + {0x9835f831, 0xffffd869ffffdf03}, + {0x9835f832, 0xffffd869ffffdf04}, + {0x9835f833, 0xffffd869ffffdf05}, + {0x9835f834, 0xffffd869ffffdf06}, + {0x9835f835, 0xffffd869ffffdf07}, + {0x9835f836, 0xffffd869ffffdf08}, + {0x9835f837, 0xffffd869ffffdf09}, + {0x9835f838, 0xffffd869ffffdf0a}, + {0x9835f839, 0xffffd869ffffdf0b}, + {0x9835f930, 0xffffd869ffffdf0c}, + {0x9835f931, 0xffffd869ffffdf0d}, + {0x9835f932, 0xffffd869ffffdf0e}, + {0x9835f933, 0xffffd869ffffdf0f}, + {0x9835f934, 0xffffd869ffffdf10}, + {0x9835f935, 0xffffd869ffffdf11}, + {0x9835f936, 0xffffd869ffffdf12}, + {0x9835f937, 0xffffd869ffffdf13}, + {0x9835f938, 0xffffd869ffffdf14}, + {0x9835f939, 0xffffd869ffffdf15}, + {0x9835fa30, 0xffffd869ffffdf16}, + {0x9835fa31, 0xffffd869ffffdf17}, + {0x9835fa32, 0xffffd869ffffdf18}, + {0x9835fa33, 0xffffd869ffffdf19}, + {0x9835fa34, 0xffffd869ffffdf1a}, + {0x9835fa35, 0xffffd869ffffdf1b}, + {0x9835fa36, 0xffffd869ffffdf1c}, + {0x9835fa37, 0xffffd869ffffdf1d}, + {0x9835fa38, 0xffffd869ffffdf1e}, + {0x9835fa39, 0xffffd869ffffdf1f}, + {0x9835fb30, 0xffffd869ffffdf20}, + {0x9835fb31, 0xffffd869ffffdf21}, + {0x9835fb32, 0xffffd869ffffdf22}, + {0x9835fb33, 0xffffd869ffffdf23}, + {0x9835fb34, 0xffffd869ffffdf24}, + {0x9835fb35, 0xffffd869ffffdf25}, + {0x9835fb36, 0xffffd869ffffdf26}, + {0x9835fb37, 0xffffd869ffffdf27}, + {0x9835fb38, 0xffffd869ffffdf28}, + {0x9835fb39, 0xffffd869ffffdf29}, + {0x9835fc30, 0xffffd869ffffdf2a}, + {0x9835fc31, 0xffffd869ffffdf2b}, + {0x9835fc32, 0xffffd869ffffdf2c}, + {0x9835fc33, 0xffffd869ffffdf2d}, + {0x9835fc34, 0xffffd869ffffdf2e}, + {0x9835fc35, 0xffffd869ffffdf2f}, + {0x9835fc36, 0xffffd869ffffdf30}, + {0x9835fc37, 0xffffd869ffffdf31}, + {0x9835fc38, 0xffffd869ffffdf32}, + {0x9835fc39, 0xffffd869ffffdf33}, + {0x9835fd30, 0xffffd869ffffdf34}, + {0x9835fd31, 0xffffd869ffffdf35}, + {0x9835fd32, 0xffffd869ffffdf36}, + {0x9835fd33, 0xffffd869ffffdf37}, + {0x9835fd34, 0xffffd869ffffdf38}, + {0x9835fd35, 0xffffd869ffffdf39}, + {0x9835fd36, 0xffffd869ffffdf3a}, + {0x9835fd37, 0xffffd869ffffdf3b}, + {0x9835fd38, 0xffffd869ffffdf3c}, + {0x9835fd39, 0xffffd869ffffdf3d}, + {0x9835fe30, 0xffffd869ffffdf3e}, + {0x9835fe31, 0xffffd869ffffdf3f}, + {0x9835fe32, 0xffffd869ffffdf40}, + {0x9835fe33, 0xffffd869ffffdf41}, + {0x9835fe34, 0xffffd869ffffdf42}, + {0x9835fe35, 0xffffd869ffffdf43}, + {0x9835fe36, 0xffffd869ffffdf44}, + {0x9835fe37, 0xffffd869ffffdf45}, + {0x9835fe38, 0xffffd869ffffdf46}, + {0x9835fe39, 0xffffd869ffffdf47}, + {0x98368130, 0xffffd869ffffdf48}, + {0x98368131, 0xffffd869ffffdf49}, + {0x98368132, 0xffffd869ffffdf4a}, + {0x98368133, 0xffffd869ffffdf4b}, + {0x98368134, 0xffffd869ffffdf4c}, + {0x98368135, 0xffffd869ffffdf4d}, + {0x98368136, 0xffffd869ffffdf4e}, + {0x98368137, 0xffffd869ffffdf4f}, + {0x98368138, 0xffffd869ffffdf50}, + {0x98368139, 0xffffd869ffffdf51}, + {0x98368230, 0xffffd869ffffdf52}, + {0x98368231, 0xffffd869ffffdf53}, + {0x98368232, 0xffffd869ffffdf54}, + {0x98368233, 0xffffd869ffffdf55}, + {0x98368234, 0xffffd869ffffdf56}, + {0x98368235, 0xffffd869ffffdf57}, + {0x98368236, 0xffffd869ffffdf58}, + {0x98368237, 0xffffd869ffffdf59}, + {0x98368238, 0xffffd869ffffdf5a}, + {0x98368239, 0xffffd869ffffdf5b}, + {0x98368330, 0xffffd869ffffdf5c}, + {0x98368331, 0xffffd869ffffdf5d}, + {0x98368332, 0xffffd869ffffdf5e}, + {0x98368333, 0xffffd869ffffdf5f}, + {0x98368334, 0xffffd869ffffdf60}, + {0x98368335, 0xffffd869ffffdf61}, + {0x98368336, 0xffffd869ffffdf62}, + {0x98368337, 0xffffd869ffffdf63}, + {0x98368338, 0xffffd869ffffdf64}, + {0x98368339, 0xffffd869ffffdf65}, + {0x98368430, 0xffffd869ffffdf66}, + {0x98368431, 0xffffd869ffffdf67}, + {0x98368432, 0xffffd869ffffdf68}, + {0x98368433, 0xffffd869ffffdf69}, + {0x98368434, 0xffffd869ffffdf6a}, + {0x98368435, 0xffffd869ffffdf6b}, + {0x98368436, 0xffffd869ffffdf6c}, + {0x98368437, 0xffffd869ffffdf6d}, + {0x98368438, 0xffffd869ffffdf6e}, + {0x98368439, 0xffffd869ffffdf6f}, + {0x98368530, 0xffffd869ffffdf70}, + {0x98368531, 0xffffd869ffffdf71}, + {0x98368532, 0xffffd869ffffdf72}, + {0x98368533, 0xffffd869ffffdf73}, + {0x98368534, 0xffffd869ffffdf74}, + {0x98368535, 0xffffd869ffffdf75}, + {0x98368536, 0xffffd869ffffdf76}, + {0x98368537, 0xffffd869ffffdf77}, + {0x98368538, 0xffffd869ffffdf78}, + {0x98368539, 0xffffd869ffffdf79}, + {0x98368630, 0xffffd869ffffdf7a}, + {0x98368631, 0xffffd869ffffdf7b}, + {0x98368632, 0xffffd869ffffdf7c}, + {0x98368633, 0xffffd869ffffdf7d}, + {0x98368634, 0xffffd869ffffdf7e}, + {0x98368635, 0xffffd869ffffdf7f}, + {0x98368636, 0xffffd869ffffdf80}, + {0x98368637, 0xffffd869ffffdf81}, + {0x98368638, 0xffffd869ffffdf82}, + {0x98368639, 0xffffd869ffffdf83}, + {0x98368730, 0xffffd869ffffdf84}, + {0x98368731, 0xffffd869ffffdf85}, + {0x98368732, 0xffffd869ffffdf86}, + {0x98368733, 0xffffd869ffffdf87}, + {0x98368734, 0xffffd869ffffdf88}, + {0x98368735, 0xffffd869ffffdf89}, + {0x98368736, 0xffffd869ffffdf8a}, + {0x98368737, 0xffffd869ffffdf8b}, + {0x98368738, 0xffffd869ffffdf8c}, + {0x98368739, 0xffffd869ffffdf8d}, + {0x98368830, 0xffffd869ffffdf8e}, + {0x98368831, 0xffffd869ffffdf8f}, + {0x98368832, 0xffffd869ffffdf90}, + {0x98368833, 0xffffd869ffffdf91}, + {0x98368834, 0xffffd869ffffdf92}, + {0x98368835, 0xffffd869ffffdf93}, + {0x98368836, 0xffffd869ffffdf94}, + {0x98368837, 0xffffd869ffffdf95}, + {0x98368838, 0xffffd869ffffdf96}, + {0x98368839, 0xffffd869ffffdf97}, + {0x98368930, 0xffffd869ffffdf98}, + {0x98368931, 0xffffd869ffffdf99}, + {0x98368932, 0xffffd869ffffdf9a}, + {0x98368933, 0xffffd869ffffdf9b}, + {0x98368934, 0xffffd869ffffdf9c}, + {0x98368935, 0xffffd869ffffdf9d}, + {0x98368936, 0xffffd869ffffdf9e}, + {0x98368937, 0xffffd869ffffdf9f}, + {0x98368938, 0xffffd869ffffdfa0}, + {0x98368939, 0xffffd869ffffdfa1}, + {0x98368a30, 0xffffd869ffffdfa2}, + {0x98368a31, 0xffffd869ffffdfa3}, + {0x98368a32, 0xffffd869ffffdfa4}, + {0x98368a33, 0xffffd869ffffdfa5}, + {0x98368a34, 0xffffd869ffffdfa6}, + {0x98368a35, 0xffffd869ffffdfa7}, + {0x98368a36, 0xffffd869ffffdfa8}, + {0x98368a37, 0xffffd869ffffdfa9}, + {0x98368a38, 0xffffd869ffffdfaa}, + {0x98368a39, 0xffffd869ffffdfab}, + {0x98368b30, 0xffffd869ffffdfac}, + {0x98368b31, 0xffffd869ffffdfad}, + {0x98368b32, 0xffffd869ffffdfae}, + {0x98368b33, 0xffffd869ffffdfaf}, + {0x98368b34, 0xffffd869ffffdfb0}, + {0x98368b35, 0xffffd869ffffdfb1}, + {0x98368b36, 0xffffd869ffffdfb2}, + {0x98368b37, 0xffffd869ffffdfb3}, + {0x98368b38, 0xffffd869ffffdfb4}, + {0x98368b39, 0xffffd869ffffdfb5}, + {0x98368c30, 0xffffd869ffffdfb6}, + {0x98368c31, 0xffffd869ffffdfb7}, + {0x98368c32, 0xffffd869ffffdfb8}, + {0x98368c33, 0xffffd869ffffdfb9}, + {0x98368c34, 0xffffd869ffffdfba}, + {0x98368c35, 0xffffd869ffffdfbb}, + {0x98368c36, 0xffffd869ffffdfbc}, + {0x98368c37, 0xffffd869ffffdfbd}, + {0x98368c38, 0xffffd869ffffdfbe}, + {0x98368c39, 0xffffd869ffffdfbf}, + {0x98368d30, 0xffffd869ffffdfc0}, + {0x98368d31, 0xffffd869ffffdfc1}, + {0x98368d32, 0xffffd869ffffdfc2}, + {0x98368d33, 0xffffd869ffffdfc3}, + {0x98368d34, 0xffffd869ffffdfc4}, + {0x98368d35, 0xffffd869ffffdfc5}, + {0x98368d36, 0xffffd869ffffdfc6}, + {0x98368d37, 0xffffd869ffffdfc7}, + {0x98368d38, 0xffffd869ffffdfc8}, + {0x98368d39, 0xffffd869ffffdfc9}, + {0x98368e30, 0xffffd869ffffdfca}, + {0x98368e31, 0xffffd869ffffdfcb}, + {0x98368e32, 0xffffd869ffffdfcc}, + {0x98368e33, 0xffffd869ffffdfcd}, + {0x98368e34, 0xffffd869ffffdfce}, + {0x98368e35, 0xffffd869ffffdfcf}, + {0x98368e36, 0xffffd869ffffdfd0}, + {0x98368e37, 0xffffd869ffffdfd1}, + {0x98368e38, 0xffffd869ffffdfd2}, + {0x98368e39, 0xffffd869ffffdfd3}, + {0x98368f30, 0xffffd869ffffdfd4}, + {0x98368f31, 0xffffd869ffffdfd5}, + {0x98368f32, 0xffffd869ffffdfd6}, + {0x98368f33, 0xffffd869ffffdfd7}, + {0x98368f34, 0xffffd869ffffdfd8}, + {0x98368f35, 0xffffd869ffffdfd9}, + {0x98368f36, 0xffffd869ffffdfda}, + {0x98368f37, 0xffffd869ffffdfdb}, + {0x98368f38, 0xffffd869ffffdfdc}, + {0x98368f39, 0xffffd869ffffdfdd}, + {0x98369030, 0xffffd869ffffdfde}, + {0x98369031, 0xffffd869ffffdfdf}, + {0x98369032, 0xffffd869ffffdfe0}, + {0x98369033, 0xffffd869ffffdfe1}, + {0x98369034, 0xffffd869ffffdfe2}, + {0x98369035, 0xffffd869ffffdfe3}, + {0x98369036, 0xffffd869ffffdfe4}, + {0x98369037, 0xffffd869ffffdfe5}, + {0x98369038, 0xffffd869ffffdfe6}, + {0x98369039, 0xffffd869ffffdfe7}, + {0x98369130, 0xffffd869ffffdfe8}, + {0x98369131, 0xffffd869ffffdfe9}, + {0x98369132, 0xffffd869ffffdfea}, + {0x98369133, 0xffffd869ffffdfeb}, + {0x98369134, 0xffffd869ffffdfec}, + {0x98369135, 0xffffd869ffffdfed}, + {0x98369136, 0xffffd869ffffdfee}, + {0x98369137, 0xffffd869ffffdfef}, + {0x98369138, 0xffffd869ffffdff0}, + {0x98369139, 0xffffd869ffffdff1}, + {0x98369230, 0xffffd869ffffdff2}, + {0x98369231, 0xffffd869ffffdff3}, + {0x98369232, 0xffffd869ffffdff4}, + {0x98369233, 0xffffd869ffffdff5}, + {0x98369234, 0xffffd869ffffdff6}, + {0x98369235, 0xffffd869ffffdff7}, + {0x98369236, 0xffffd869ffffdff8}, + {0x98369237, 0xffffd869ffffdff9}, + {0x98369238, 0xffffd869ffffdffa}, + {0x98369239, 0xffffd869ffffdffb}, + {0x98369330, 0xffffd869ffffdffc}, + {0x98369331, 0xffffd869ffffdffd}, + {0x98369332, 0xffffd869ffffdffe}, + {0x98369333, 0xffffd869ffffdfff}, + {0x98369334, 0xffffd86affffdc00}, + {0x98369335, 0xffffd86affffdc01}, + {0x98369336, 0xffffd86affffdc02}, + {0x98369337, 0xffffd86affffdc03}, + {0x98369338, 0xffffd86affffdc04}, + {0x98369339, 0xffffd86affffdc05}, + {0x98369430, 0xffffd86affffdc06}, + {0x98369431, 0xffffd86affffdc07}, + {0x98369432, 0xffffd86affffdc08}, + {0x98369433, 0xffffd86affffdc09}, + {0x98369434, 0xffffd86affffdc0a}, + {0x98369435, 0xffffd86affffdc0b}, + {0x98369436, 0xffffd86affffdc0c}, + {0x98369437, 0xffffd86affffdc0d}, + {0x98369438, 0xffffd86affffdc0e}, + {0x98369439, 0xffffd86affffdc0f}, + {0x98369530, 0xffffd86affffdc10}, + {0x98369531, 0xffffd86affffdc11}, + {0x98369532, 0xffffd86affffdc12}, + {0x98369533, 0xffffd86affffdc13}, + {0x98369534, 0xffffd86affffdc14}, + {0x98369535, 0xffffd86affffdc15}, + {0x98369536, 0xffffd86affffdc16}, + {0x98369537, 0xffffd86affffdc17}, + {0x98369538, 0xffffd86affffdc18}, + {0x98369539, 0xffffd86affffdc19}, + {0x98369630, 0xffffd86affffdc1a}, + {0x98369631, 0xffffd86affffdc1b}, + {0x98369632, 0xffffd86affffdc1c}, + {0x98369633, 0xffffd86affffdc1d}, + {0x98369634, 0xffffd86affffdc1e}, + {0x98369635, 0xffffd86affffdc1f}, + {0x98369636, 0xffffd86affffdc20}, + {0x98369637, 0xffffd86affffdc21}, + {0x98369638, 0xffffd86affffdc22}, + {0x98369639, 0xffffd86affffdc23}, + {0x98369730, 0xffffd86affffdc24}, + {0x98369731, 0xffffd86affffdc25}, + {0x98369732, 0xffffd86affffdc26}, + {0x98369733, 0xffffd86affffdc27}, + {0x98369734, 0xffffd86affffdc28}, + {0x98369735, 0xffffd86affffdc29}, + {0x98369736, 0xffffd86affffdc2a}, + {0x98369737, 0xffffd86affffdc2b}, + {0x98369738, 0xffffd86affffdc2c}, + {0x98369739, 0xffffd86affffdc2d}, + {0x98369830, 0xffffd86affffdc2e}, + {0x98369831, 0xffffd86affffdc2f}, + {0x98369832, 0xffffd86affffdc30}, + {0x98369833, 0xffffd86affffdc31}, + {0x98369834, 0xffffd86affffdc32}, + {0x98369835, 0xffffd86affffdc33}, + {0x98369836, 0xffffd86affffdc34}, + {0x98369837, 0xffffd86affffdc35}, + {0x98369838, 0xffffd86affffdc36}, + {0x98369839, 0xffffd86affffdc37}, + {0x98369930, 0xffffd86affffdc38}, + {0x98369931, 0xffffd86affffdc39}, + {0x98369932, 0xffffd86affffdc3a}, + {0x98369933, 0xffffd86affffdc3b}, + {0x98369934, 0xffffd86affffdc3c}, + {0x98369935, 0xffffd86affffdc3d}, + {0x98369936, 0xffffd86affffdc3e}, + {0x98369937, 0xffffd86affffdc3f}, + {0x98369938, 0xffffd86affffdc40}, + {0x98369939, 0xffffd86affffdc41}, + {0x98369a30, 0xffffd86affffdc42}, + {0x98369a31, 0xffffd86affffdc43}, + {0x98369a32, 0xffffd86affffdc44}, + {0x98369a33, 0xffffd86affffdc45}, + {0x98369a34, 0xffffd86affffdc46}, + {0x98369a35, 0xffffd86affffdc47}, + {0x98369a36, 0xffffd86affffdc48}, + {0x98369a37, 0xffffd86affffdc49}, + {0x98369a38, 0xffffd86affffdc4a}, + {0x98369a39, 0xffffd86affffdc4b}, + {0x98369b30, 0xffffd86affffdc4c}, + {0x98369b31, 0xffffd86affffdc4d}, + {0x98369b32, 0xffffd86affffdc4e}, + {0x98369b33, 0xffffd86affffdc4f}, + {0x98369b34, 0xffffd86affffdc50}, + {0x98369b35, 0xffffd86affffdc51}, + {0x98369b36, 0xffffd86affffdc52}, + {0x98369b37, 0xffffd86affffdc53}, + {0x98369b38, 0xffffd86affffdc54}, + {0x98369b39, 0xffffd86affffdc55}, + {0x98369c30, 0xffffd86affffdc56}, + {0x98369c31, 0xffffd86affffdc57}, + {0x98369c32, 0xffffd86affffdc58}, + {0x98369c33, 0xffffd86affffdc59}, + {0x98369c34, 0xffffd86affffdc5a}, + {0x98369c35, 0xffffd86affffdc5b}, + {0x98369c36, 0xffffd86affffdc5c}, + {0x98369c37, 0xffffd86affffdc5d}, + {0x98369c38, 0xffffd86affffdc5e}, + {0x98369c39, 0xffffd86affffdc5f}, + {0x98369d30, 0xffffd86affffdc60}, + {0x98369d31, 0xffffd86affffdc61}, + {0x98369d32, 0xffffd86affffdc62}, + {0x98369d33, 0xffffd86affffdc63}, + {0x98369d34, 0xffffd86affffdc64}, + {0x98369d35, 0xffffd86affffdc65}, + {0x98369d36, 0xffffd86affffdc66}, + {0x98369d37, 0xffffd86affffdc67}, + {0x98369d38, 0xffffd86affffdc68}, + {0x98369d39, 0xffffd86affffdc69}, + {0x98369e30, 0xffffd86affffdc6a}, + {0x98369e31, 0xffffd86affffdc6b}, + {0x98369e32, 0xffffd86affffdc6c}, + {0x98369e33, 0xffffd86affffdc6d}, + {0x98369e34, 0xffffd86affffdc6e}, + {0x98369e35, 0xffffd86affffdc6f}, + {0x98369e36, 0xffffd86affffdc70}, + {0x98369e37, 0xffffd86affffdc71}, + {0x98369e38, 0xffffd86affffdc72}, + {0x98369e39, 0xffffd86affffdc73}, + {0x98369f30, 0xffffd86affffdc74}, + {0x98369f31, 0xffffd86affffdc75}, + {0x98369f32, 0xffffd86affffdc76}, + {0x98369f33, 0xffffd86affffdc77}, + {0x98369f34, 0xffffd86affffdc78}, + {0x98369f35, 0xffffd86affffdc79}, + {0x98369f36, 0xffffd86affffdc7a}, + {0x98369f37, 0xffffd86affffdc7b}, + {0x98369f38, 0xffffd86affffdc7c}, + {0x98369f39, 0xffffd86affffdc7d}, + {0x9836a030, 0xffffd86affffdc7e}, + {0x9836a031, 0xffffd86affffdc7f}, + {0x9836a032, 0xffffd86affffdc80}, + {0x9836a033, 0xffffd86affffdc81}, + {0x9836a034, 0xffffd86affffdc82}, + {0x9836a035, 0xffffd86affffdc83}, + {0x9836a036, 0xffffd86affffdc84}, + {0x9836a037, 0xffffd86affffdc85}, + {0x9836a038, 0xffffd86affffdc86}, + {0x9836a039, 0xffffd86affffdc87}, + {0x9836a130, 0xffffd86affffdc88}, + {0x9836a131, 0xffffd86affffdc89}, + {0x9836a132, 0xffffd86affffdc8a}, + {0x9836a133, 0xffffd86affffdc8b}, + {0x9836a134, 0xffffd86affffdc8c}, + {0x9836a135, 0xffffd86affffdc8d}, + {0x9836a136, 0xffffd86affffdc8e}, + {0x9836a137, 0xffffd86affffdc8f}, + {0x9836a138, 0xffffd86affffdc90}, + {0x9836a139, 0xffffd86affffdc91}, + {0x9836a230, 0xffffd86affffdc92}, + {0x9836a231, 0xffffd86affffdc93}, + {0x9836a232, 0xffffd86affffdc94}, + {0x9836a233, 0xffffd86affffdc95}, + {0x9836a234, 0xffffd86affffdc96}, + {0x9836a235, 0xffffd86affffdc97}, + {0x9836a236, 0xffffd86affffdc98}, + {0x9836a237, 0xffffd86affffdc99}, + {0x9836a238, 0xffffd86affffdc9a}, + {0x9836a239, 0xffffd86affffdc9b}, + {0x9836a330, 0xffffd86affffdc9c}, + {0x9836a331, 0xffffd86affffdc9d}, + {0x9836a332, 0xffffd86affffdc9e}, + {0x9836a333, 0xffffd86affffdc9f}, + {0x9836a334, 0xffffd86affffdca0}, + {0x9836a335, 0xffffd86affffdca1}, + {0x9836a336, 0xffffd86affffdca2}, + {0x9836a337, 0xffffd86affffdca3}, + {0x9836a338, 0xffffd86affffdca4}, + {0x9836a339, 0xffffd86affffdca5}, + {0x9836a430, 0xffffd86affffdca6}, + {0x9836a431, 0xffffd86affffdca7}, + {0x9836a432, 0xffffd86affffdca8}, + {0x9836a433, 0xffffd86affffdca9}, + {0x9836a434, 0xffffd86affffdcaa}, + {0x9836a435, 0xffffd86affffdcab}, + {0x9836a436, 0xffffd86affffdcac}, + {0x9836a437, 0xffffd86affffdcad}, + {0x9836a438, 0xffffd86affffdcae}, + {0x9836a439, 0xffffd86affffdcaf}, + {0x9836a530, 0xffffd86affffdcb0}, + {0x9836a531, 0xffffd86affffdcb1}, + {0x9836a532, 0xffffd86affffdcb2}, + {0x9836a533, 0xffffd86affffdcb3}, + {0x9836a534, 0xffffd86affffdcb4}, + {0x9836a535, 0xffffd86affffdcb5}, + {0x9836a536, 0xffffd86affffdcb6}, + {0x9836a537, 0xffffd86affffdcb7}, + {0x9836a538, 0xffffd86affffdcb8}, + {0x9836a539, 0xffffd86affffdcb9}, + {0x9836a630, 0xffffd86affffdcba}, + {0x9836a631, 0xffffd86affffdcbb}, + {0x9836a632, 0xffffd86affffdcbc}, + {0x9836a633, 0xffffd86affffdcbd}, + {0x9836a634, 0xffffd86affffdcbe}, + {0x9836a635, 0xffffd86affffdcbf}, + {0x9836a636, 0xffffd86affffdcc0}, + {0x9836a637, 0xffffd86affffdcc1}, + {0x9836a638, 0xffffd86affffdcc2}, + {0x9836a639, 0xffffd86affffdcc3}, + {0x9836a730, 0xffffd86affffdcc4}, + {0x9836a731, 0xffffd86affffdcc5}, + {0x9836a732, 0xffffd86affffdcc6}, + {0x9836a733, 0xffffd86affffdcc7}, + {0x9836a734, 0xffffd86affffdcc8}, + {0x9836a735, 0xffffd86affffdcc9}, + {0x9836a736, 0xffffd86affffdcca}, + {0x9836a737, 0xffffd86affffdccb}, + {0x9836a738, 0xffffd86affffdccc}, + {0x9836a739, 0xffffd86affffdccd}, + {0x9836a830, 0xffffd86affffdcce}, + {0x9836a831, 0xffffd86affffdccf}, + {0x9836a832, 0xffffd86affffdcd0}, + {0x9836a833, 0xffffd86affffdcd1}, + {0x9836a834, 0xffffd86affffdcd2}, + {0x9836a835, 0xffffd86affffdcd3}, + {0x9836a836, 0xffffd86affffdcd4}, + {0x9836a837, 0xffffd86affffdcd5}, + {0x9836a838, 0xffffd86affffdcd6}, + {0x9836a839, 0xffffd86affffdcd7}, + {0x9836a930, 0xffffd86affffdcd8}, + {0x9836a931, 0xffffd86affffdcd9}, + {0x9836a932, 0xffffd86affffdcda}, + {0x9836a933, 0xffffd86affffdcdb}, + {0x9836a934, 0xffffd86affffdcdc}, + {0x9836a935, 0xffffd86affffdcdd}, + {0x9836a936, 0xffffd86affffdcde}, + {0x9836a937, 0xffffd86affffdcdf}, + {0x9836a938, 0xffffd86affffdce0}, + {0x9836a939, 0xffffd86affffdce1}, + {0x9836aa30, 0xffffd86affffdce2}, + {0x9836aa31, 0xffffd86affffdce3}, + {0x9836aa32, 0xffffd86affffdce4}, + {0x9836aa33, 0xffffd86affffdce5}, + {0x9836aa34, 0xffffd86affffdce6}, + {0x9836aa35, 0xffffd86affffdce7}, + {0x9836aa36, 0xffffd86affffdce8}, + {0x9836aa37, 0xffffd86affffdce9}, + {0x9836aa38, 0xffffd86affffdcea}, + {0x9836aa39, 0xffffd86affffdceb}, + {0x9836ab30, 0xffffd86affffdcec}, + {0x9836ab31, 0xffffd86affffdced}, + {0x9836ab32, 0xffffd86affffdcee}, + {0x9836ab33, 0xffffd86affffdcef}, + {0x9836ab34, 0xffffd86affffdcf0}, + {0x9836ab35, 0xffffd86affffdcf1}, + {0x9836ab36, 0xffffd86affffdcf2}, + {0x9836ab37, 0xffffd86affffdcf3}, + {0x9836ab38, 0xffffd86affffdcf4}, + {0x9836ab39, 0xffffd86affffdcf5}, + {0x9836ac30, 0xffffd86affffdcf6}, + {0x9836ac31, 0xffffd86affffdcf7}, + {0x9836ac32, 0xffffd86affffdcf8}, + {0x9836ac33, 0xffffd86affffdcf9}, + {0x9836ac34, 0xffffd86affffdcfa}, + {0x9836ac35, 0xffffd86affffdcfb}, + {0x9836ac36, 0xffffd86affffdcfc}, + {0x9836ac37, 0xffffd86affffdcfd}, + {0x9836ac38, 0xffffd86affffdcfe}, + {0x9836ac39, 0xffffd86affffdcff}, + {0x9836ad30, 0xffffd86affffdd00}, + {0x9836ad31, 0xffffd86affffdd01}, + {0x9836ad32, 0xffffd86affffdd02}, + {0x9836ad33, 0xffffd86affffdd03}, + {0x9836ad34, 0xffffd86affffdd04}, + {0x9836ad35, 0xffffd86affffdd05}, + {0x9836ad36, 0xffffd86affffdd06}, + {0x9836ad37, 0xffffd86affffdd07}, + {0x9836ad38, 0xffffd86affffdd08}, + {0x9836ad39, 0xffffd86affffdd09}, + {0x9836ae30, 0xffffd86affffdd0a}, + {0x9836ae31, 0xffffd86affffdd0b}, + {0x9836ae32, 0xffffd86affffdd0c}, + {0x9836ae33, 0xffffd86affffdd0d}, + {0x9836ae34, 0xffffd86affffdd0e}, + {0x9836ae35, 0xffffd86affffdd0f}, + {0x9836ae36, 0xffffd86affffdd10}, + {0x9836ae37, 0xffffd86affffdd11}, + {0x9836ae38, 0xffffd86affffdd12}, + {0x9836ae39, 0xffffd86affffdd13}, + {0x9836af30, 0xffffd86affffdd14}, + {0x9836af31, 0xffffd86affffdd15}, + {0x9836af32, 0xffffd86affffdd16}, + {0x9836af33, 0xffffd86affffdd17}, + {0x9836af34, 0xffffd86affffdd18}, + {0x9836af35, 0xffffd86affffdd19}, + {0x9836af36, 0xffffd86affffdd1a}, + {0x9836af37, 0xffffd86affffdd1b}, + {0x9836af38, 0xffffd86affffdd1c}, + {0x9836af39, 0xffffd86affffdd1d}, + {0x9836b030, 0xffffd86affffdd1e}, + {0x9836b031, 0xffffd86affffdd1f}, + {0x9836b032, 0xffffd86affffdd20}, + {0x9836b033, 0xffffd86affffdd21}, + {0x9836b034, 0xffffd86affffdd22}, + {0x9836b035, 0xffffd86affffdd23}, + {0x9836b036, 0xffffd86affffdd24}, + {0x9836b037, 0xffffd86affffdd25}, + {0x9836b038, 0xffffd86affffdd26}, + {0x9836b039, 0xffffd86affffdd27}, + {0x9836b130, 0xffffd86affffdd28}, + {0x9836b131, 0xffffd86affffdd29}, + {0x9836b132, 0xffffd86affffdd2a}, + {0x9836b133, 0xffffd86affffdd2b}, + {0x9836b134, 0xffffd86affffdd2c}, + {0x9836b135, 0xffffd86affffdd2d}, + {0x9836b136, 0xffffd86affffdd2e}, + {0x9836b137, 0xffffd86affffdd2f}, + {0x9836b138, 0xffffd86affffdd30}, + {0x9836b139, 0xffffd86affffdd31}, + {0x9836b230, 0xffffd86affffdd32}, + {0x9836b231, 0xffffd86affffdd33}, + {0x9836b232, 0xffffd86affffdd34}, + {0x9836b233, 0xffffd86affffdd35}, + {0x9836b234, 0xffffd86affffdd36}, + {0x9836b235, 0xffffd86affffdd37}, + {0x9836b236, 0xffffd86affffdd38}, + {0x9836b237, 0xffffd86affffdd39}, + {0x9836b238, 0xffffd86affffdd3a}, + {0x9836b239, 0xffffd86affffdd3b}, + {0x9836b330, 0xffffd86affffdd3c}, + {0x9836b331, 0xffffd86affffdd3d}, + {0x9836b332, 0xffffd86affffdd3e}, + {0x9836b333, 0xffffd86affffdd3f}, + {0x9836b334, 0xffffd86affffdd40}, + {0x9836b335, 0xffffd86affffdd41}, + {0x9836b336, 0xffffd86affffdd42}, + {0x9836b337, 0xffffd86affffdd43}, + {0x9836b338, 0xffffd86affffdd44}, + {0x9836b339, 0xffffd86affffdd45}, + {0x9836b430, 0xffffd86affffdd46}, + {0x9836b431, 0xffffd86affffdd47}, + {0x9836b432, 0xffffd86affffdd48}, + {0x9836b433, 0xffffd86affffdd49}, + {0x9836b434, 0xffffd86affffdd4a}, + {0x9836b435, 0xffffd86affffdd4b}, + {0x9836b436, 0xffffd86affffdd4c}, + {0x9836b437, 0xffffd86affffdd4d}, + {0x9836b438, 0xffffd86affffdd4e}, + {0x9836b439, 0xffffd86affffdd4f}, + {0x9836b530, 0xffffd86affffdd50}, + {0x9836b531, 0xffffd86affffdd51}, + {0x9836b532, 0xffffd86affffdd52}, + {0x9836b533, 0xffffd86affffdd53}, + {0x9836b534, 0xffffd86affffdd54}, + {0x9836b535, 0xffffd86affffdd55}, + {0x9836b536, 0xffffd86affffdd56}, + {0x9836b537, 0xffffd86affffdd57}, + {0x9836b538, 0xffffd86affffdd58}, + {0x9836b539, 0xffffd86affffdd59}, + {0x9836b630, 0xffffd86affffdd5a}, + {0x9836b631, 0xffffd86affffdd5b}, + {0x9836b632, 0xffffd86affffdd5c}, + {0x9836b633, 0xffffd86affffdd5d}, + {0x9836b634, 0xffffd86affffdd5e}, + {0x9836b635, 0xffffd86affffdd5f}, + {0x9836b636, 0xffffd86affffdd60}, + {0x9836b637, 0xffffd86affffdd61}, + {0x9836b638, 0xffffd86affffdd62}, + {0x9836b639, 0xffffd86affffdd63}, + {0x9836b730, 0xffffd86affffdd64}, + {0x9836b731, 0xffffd86affffdd65}, + {0x9836b732, 0xffffd86affffdd66}, + {0x9836b733, 0xffffd86affffdd67}, + {0x9836b734, 0xffffd86affffdd68}, + {0x9836b735, 0xffffd86affffdd69}, + {0x9836b736, 0xffffd86affffdd6a}, + {0x9836b737, 0xffffd86affffdd6b}, + {0x9836b738, 0xffffd86affffdd6c}, + {0x9836b739, 0xffffd86affffdd6d}, + {0x9836b830, 0xffffd86affffdd6e}, + {0x9836b831, 0xffffd86affffdd6f}, + {0x9836b832, 0xffffd86affffdd70}, + {0x9836b833, 0xffffd86affffdd71}, + {0x9836b834, 0xffffd86affffdd72}, + {0x9836b835, 0xffffd86affffdd73}, + {0x9836b836, 0xffffd86affffdd74}, + {0x9836b837, 0xffffd86affffdd75}, + {0x9836b838, 0xffffd86affffdd76}, + {0x9836b839, 0xffffd86affffdd77}, + {0x9836b930, 0xffffd86affffdd78}, + {0x9836b931, 0xffffd86affffdd79}, + {0x9836b932, 0xffffd86affffdd7a}, + {0x9836b933, 0xffffd86affffdd7b}, + {0x9836b934, 0xffffd86affffdd7c}, + {0x9836b935, 0xffffd86affffdd7d}, + {0x9836b936, 0xffffd86affffdd7e}, + {0x9836b937, 0xffffd86affffdd7f}, + {0x9836b938, 0xffffd86affffdd80}, + {0x9836b939, 0xffffd86affffdd81}, + {0x9836ba30, 0xffffd86affffdd82}, + {0x9836ba31, 0xffffd86affffdd83}, + {0x9836ba32, 0xffffd86affffdd84}, + {0x9836ba33, 0xffffd86affffdd85}, + {0x9836ba34, 0xffffd86affffdd86}, + {0x9836ba35, 0xffffd86affffdd87}, + {0x9836ba36, 0xffffd86affffdd88}, + {0x9836ba37, 0xffffd86affffdd89}, + {0x9836ba38, 0xffffd86affffdd8a}, + {0x9836ba39, 0xffffd86affffdd8b}, + {0x9836bb30, 0xffffd86affffdd8c}, + {0x9836bb31, 0xffffd86affffdd8d}, + {0x9836bb32, 0xffffd86affffdd8e}, + {0x9836bb33, 0xffffd86affffdd8f}, + {0x9836bb34, 0xffffd86affffdd90}, + {0x9836bb35, 0xffffd86affffdd91}, + {0x9836bb36, 0xffffd86affffdd92}, + {0x9836bb37, 0xffffd86affffdd93}, + {0x9836bb38, 0xffffd86affffdd94}, + {0x9836bb39, 0xffffd86affffdd95}, + {0x9836bc30, 0xffffd86affffdd96}, + {0x9836bc31, 0xffffd86affffdd97}, + {0x9836bc32, 0xffffd86affffdd98}, + {0x9836bc33, 0xffffd86affffdd99}, + {0x9836bc34, 0xffffd86affffdd9a}, + {0x9836bc35, 0xffffd86affffdd9b}, + {0x9836bc36, 0xffffd86affffdd9c}, + {0x9836bc37, 0xffffd86affffdd9d}, + {0x9836bc38, 0xffffd86affffdd9e}, + {0x9836bc39, 0xffffd86affffdd9f}, + {0x9836bd30, 0xffffd86affffdda0}, + {0x9836bd31, 0xffffd86affffdda1}, + {0x9836bd32, 0xffffd86affffdda2}, + {0x9836bd33, 0xffffd86affffdda3}, + {0x9836bd34, 0xffffd86affffdda4}, + {0x9836bd35, 0xffffd86affffdda5}, + {0x9836bd36, 0xffffd86affffdda6}, + {0x9836bd37, 0xffffd86affffdda7}, + {0x9836bd38, 0xffffd86affffdda8}, + {0x9836bd39, 0xffffd86affffdda9}, + {0x9836be30, 0xffffd86affffddaa}, + {0x9836be31, 0xffffd86affffddab}, + {0x9836be32, 0xffffd86affffddac}, + {0x9836be33, 0xffffd86affffddad}, + {0x9836be34, 0xffffd86affffddae}, + {0x9836be35, 0xffffd86affffddaf}, + {0x9836be36, 0xffffd86affffddb0}, + {0x9836be37, 0xffffd86affffddb1}, + {0x9836be38, 0xffffd86affffddb2}, + {0x9836be39, 0xffffd86affffddb3}, + {0x9836bf30, 0xffffd86affffddb4}, + {0x9836bf31, 0xffffd86affffddb5}, + {0x9836bf32, 0xffffd86affffddb6}, + {0x9836bf33, 0xffffd86affffddb7}, + {0x9836bf34, 0xffffd86affffddb8}, + {0x9836bf35, 0xffffd86affffddb9}, + {0x9836bf36, 0xffffd86affffddba}, + {0x9836bf37, 0xffffd86affffddbb}, + {0x9836bf38, 0xffffd86affffddbc}, + {0x9836bf39, 0xffffd86affffddbd}, + {0x9836c030, 0xffffd86affffddbe}, + {0x9836c031, 0xffffd86affffddbf}, + {0x9836c032, 0xffffd86affffddc0}, + {0x9836c033, 0xffffd86affffddc1}, + {0x9836c034, 0xffffd86affffddc2}, + {0x9836c035, 0xffffd86affffddc3}, + {0x9836c036, 0xffffd86affffddc4}, + {0x9836c037, 0xffffd86affffddc5}, + {0x9836c038, 0xffffd86affffddc6}, + {0x9836c039, 0xffffd86affffddc7}, + {0x9836c130, 0xffffd86affffddc8}, + {0x9836c131, 0xffffd86affffddc9}, + {0x9836c132, 0xffffd86affffddca}, + {0x9836c133, 0xffffd86affffddcb}, + {0x9836c134, 0xffffd86affffddcc}, + {0x9836c135, 0xffffd86affffddcd}, + {0x9836c136, 0xffffd86affffddce}, + {0x9836c137, 0xffffd86affffddcf}, + {0x9836c138, 0xffffd86affffddd0}, + {0x9836c139, 0xffffd86affffddd1}, + {0x9836c230, 0xffffd86affffddd2}, + {0x9836c231, 0xffffd86affffddd3}, + {0x9836c232, 0xffffd86affffddd4}, + {0x9836c233, 0xffffd86affffddd5}, + {0x9836c234, 0xffffd86affffddd6}, + {0x9836c235, 0xffffd86affffddd7}, + {0x9836c236, 0xffffd86affffddd8}, + {0x9836c237, 0xffffd86affffddd9}, + {0x9836c238, 0xffffd86affffddda}, + {0x9836c239, 0xffffd86affffdddb}, + {0x9836c330, 0xffffd86affffdddc}, + {0x9836c331, 0xffffd86affffdddd}, + {0x9836c332, 0xffffd86affffddde}, + {0x9836c333, 0xffffd86affffdddf}, + {0x9836c334, 0xffffd86affffdde0}, + {0x9836c335, 0xffffd86affffdde1}, + {0x9836c336, 0xffffd86affffdde2}, + {0x9836c337, 0xffffd86affffdde3}, + {0x9836c338, 0xffffd86affffdde4}, + {0x9836c339, 0xffffd86affffdde5}, + {0x9836c430, 0xffffd86affffdde6}, + {0x9836c431, 0xffffd86affffdde7}, + {0x9836c432, 0xffffd86affffdde8}, + {0x9836c433, 0xffffd86affffdde9}, + {0x9836c434, 0xffffd86affffddea}, + {0x9836c435, 0xffffd86affffddeb}, + {0x9836c436, 0xffffd86affffddec}, + {0x9836c437, 0xffffd86affffdded}, + {0x9836c438, 0xffffd86affffddee}, + {0x9836c439, 0xffffd86affffddef}, + {0x9836c530, 0xffffd86affffddf0}, + {0x9836c531, 0xffffd86affffddf1}, + {0x9836c532, 0xffffd86affffddf2}, + {0x9836c533, 0xffffd86affffddf3}, + {0x9836c534, 0xffffd86affffddf4}, + {0x9836c535, 0xffffd86affffddf5}, + {0x9836c536, 0xffffd86affffddf6}, + {0x9836c537, 0xffffd86affffddf7}, + {0x9836c538, 0xffffd86affffddf8}, + {0x9836c539, 0xffffd86affffddf9}, + {0x9836c630, 0xffffd86affffddfa}, + {0x9836c631, 0xffffd86affffddfb}, + {0x9836c632, 0xffffd86affffddfc}, + {0x9836c633, 0xffffd86affffddfd}, + {0x9836c634, 0xffffd86affffddfe}, + {0x9836c635, 0xffffd86affffddff}, + {0x9836c636, 0xffffd86affffde00}, + {0x9836c637, 0xffffd86affffde01}, + {0x9836c638, 0xffffd86affffde02}, + {0x9836c639, 0xffffd86affffde03}, + {0x9836c730, 0xffffd86affffde04}, + {0x9836c731, 0xffffd86affffde05}, + {0x9836c732, 0xffffd86affffde06}, + {0x9836c733, 0xffffd86affffde07}, + {0x9836c734, 0xffffd86affffde08}, + {0x9836c735, 0xffffd86affffde09}, + {0x9836c736, 0xffffd86affffde0a}, + {0x9836c737, 0xffffd86affffde0b}, + {0x9836c738, 0xffffd86affffde0c}, + {0x9836c739, 0xffffd86affffde0d}, + {0x9836c830, 0xffffd86affffde0e}, + {0x9836c831, 0xffffd86affffde0f}, + {0x9836c832, 0xffffd86affffde10}, + {0x9836c833, 0xffffd86affffde11}, + {0x9836c834, 0xffffd86affffde12}, + {0x9836c835, 0xffffd86affffde13}, + {0x9836c836, 0xffffd86affffde14}, + {0x9836c837, 0xffffd86affffde15}, + {0x9836c838, 0xffffd86affffde16}, + {0x9836c839, 0xffffd86affffde17}, + {0x9836c930, 0xffffd86affffde18}, + {0x9836c931, 0xffffd86affffde19}, + {0x9836c932, 0xffffd86affffde1a}, + {0x9836c933, 0xffffd86affffde1b}, + {0x9836c934, 0xffffd86affffde1c}, + {0x9836c935, 0xffffd86affffde1d}, + {0x9836c936, 0xffffd86affffde1e}, + {0x9836c937, 0xffffd86affffde1f}, + {0x9836c938, 0xffffd86affffde20}, + {0x9836c939, 0xffffd86affffde21}, + {0x9836ca30, 0xffffd86affffde22}, + {0x9836ca31, 0xffffd86affffde23}, + {0x9836ca32, 0xffffd86affffde24}, + {0x9836ca33, 0xffffd86affffde25}, + {0x9836ca34, 0xffffd86affffde26}, + {0x9836ca35, 0xffffd86affffde27}, + {0x9836ca36, 0xffffd86affffde28}, + {0x9836ca37, 0xffffd86affffde29}, + {0x9836ca38, 0xffffd86affffde2a}, + {0x9836ca39, 0xffffd86affffde2b}, + {0x9836cb30, 0xffffd86affffde2c}, + {0x9836cb31, 0xffffd86affffde2d}, + {0x9836cb32, 0xffffd86affffde2e}, + {0x9836cb33, 0xffffd86affffde2f}, + {0x9836cb34, 0xffffd86affffde30}, + {0x9836cb35, 0xffffd86affffde31}, + {0x9836cb36, 0xffffd86affffde32}, + {0x9836cb37, 0xffffd86affffde33}, + {0x9836cb38, 0xffffd86affffde34}, + {0x9836cb39, 0xffffd86affffde35}, + {0x9836cc30, 0xffffd86affffde36}, + {0x9836cc31, 0xffffd86affffde37}, + {0x9836cc32, 0xffffd86affffde38}, + {0x9836cc33, 0xffffd86affffde39}, + {0x9836cc34, 0xffffd86affffde3a}, + {0x9836cc35, 0xffffd86affffde3b}, + {0x9836cc36, 0xffffd86affffde3c}, + {0x9836cc37, 0xffffd86affffde3d}, + {0x9836cc38, 0xffffd86affffde3e}, + {0x9836cc39, 0xffffd86affffde3f}, + {0x9836cd30, 0xffffd86affffde40}, + {0x9836cd31, 0xffffd86affffde41}, + {0x9836cd32, 0xffffd86affffde42}, + {0x9836cd33, 0xffffd86affffde43}, + {0x9836cd34, 0xffffd86affffde44}, + {0x9836cd35, 0xffffd86affffde45}, + {0x9836cd36, 0xffffd86affffde46}, + {0x9836cd37, 0xffffd86affffde47}, + {0x9836cd38, 0xffffd86affffde48}, + {0x9836cd39, 0xffffd86affffde49}, + {0x9836ce30, 0xffffd86affffde4a}, + {0x9836ce31, 0xffffd86affffde4b}, + {0x9836ce32, 0xffffd86affffde4c}, + {0x9836ce33, 0xffffd86affffde4d}, + {0x9836ce34, 0xffffd86affffde4e}, + {0x9836ce35, 0xffffd86affffde4f}, + {0x9836ce36, 0xffffd86affffde50}, + {0x9836ce37, 0xffffd86affffde51}, + {0x9836ce38, 0xffffd86affffde52}, + {0x9836ce39, 0xffffd86affffde53}, + {0x9836cf30, 0xffffd86affffde54}, + {0x9836cf31, 0xffffd86affffde55}, + {0x9836cf32, 0xffffd86affffde56}, + {0x9836cf33, 0xffffd86affffde57}, + {0x9836cf34, 0xffffd86affffde58}, + {0x9836cf35, 0xffffd86affffde59}, + {0x9836cf36, 0xffffd86affffde5a}, + {0x9836cf37, 0xffffd86affffde5b}, + {0x9836cf38, 0xffffd86affffde5c}, + {0x9836cf39, 0xffffd86affffde5d}, + {0x9836d030, 0xffffd86affffde5e}, + {0x9836d031, 0xffffd86affffde5f}, + {0x9836d032, 0xffffd86affffde60}, + {0x9836d033, 0xffffd86affffde61}, + {0x9836d034, 0xffffd86affffde62}, + {0x9836d035, 0xffffd86affffde63}, + {0x9836d036, 0xffffd86affffde64}, + {0x9836d037, 0xffffd86affffde65}, + {0x9836d038, 0xffffd86affffde66}, + {0x9836d039, 0xffffd86affffde67}, + {0x9836d130, 0xffffd86affffde68}, + {0x9836d131, 0xffffd86affffde69}, + {0x9836d132, 0xffffd86affffde6a}, + {0x9836d133, 0xffffd86affffde6b}, + {0x9836d134, 0xffffd86affffde6c}, + {0x9836d135, 0xffffd86affffde6d}, + {0x9836d136, 0xffffd86affffde6e}, + {0x9836d137, 0xffffd86affffde6f}, + {0x9836d138, 0xffffd86affffde70}, + {0x9836d139, 0xffffd86affffde71}, + {0x9836d230, 0xffffd86affffde72}, + {0x9836d231, 0xffffd86affffde73}, + {0x9836d232, 0xffffd86affffde74}, + {0x9836d233, 0xffffd86affffde75}, + {0x9836d234, 0xffffd86affffde76}, + {0x9836d235, 0xffffd86affffde77}, + {0x9836d236, 0xffffd86affffde78}, + {0x9836d237, 0xffffd86affffde79}, + {0x9836d238, 0xffffd86affffde7a}, + {0x9836d239, 0xffffd86affffde7b}, + {0x9836d330, 0xffffd86affffde7c}, + {0x9836d331, 0xffffd86affffde7d}, + {0x9836d332, 0xffffd86affffde7e}, + {0x9836d333, 0xffffd86affffde7f}, + {0x9836d334, 0xffffd86affffde80}, + {0x9836d335, 0xffffd86affffde81}, + {0x9836d336, 0xffffd86affffde82}, + {0x9836d337, 0xffffd86affffde83}, + {0x9836d338, 0xffffd86affffde84}, + {0x9836d339, 0xffffd86affffde85}, + {0x9836d430, 0xffffd86affffde86}, + {0x9836d431, 0xffffd86affffde87}, + {0x9836d432, 0xffffd86affffde88}, + {0x9836d433, 0xffffd86affffde89}, + {0x9836d434, 0xffffd86affffde8a}, + {0x9836d435, 0xffffd86affffde8b}, + {0x9836d436, 0xffffd86affffde8c}, + {0x9836d437, 0xffffd86affffde8d}, + {0x9836d438, 0xffffd86affffde8e}, + {0x9836d439, 0xffffd86affffde8f}, + {0x9836d530, 0xffffd86affffde90}, + {0x9836d531, 0xffffd86affffde91}, + {0x9836d532, 0xffffd86affffde92}, + {0x9836d533, 0xffffd86affffde93}, + {0x9836d534, 0xffffd86affffde94}, + {0x9836d535, 0xffffd86affffde95}, + {0x9836d536, 0xffffd86affffde96}, + {0x9836d537, 0xffffd86affffde97}, + {0x9836d538, 0xffffd86affffde98}, + {0x9836d539, 0xffffd86affffde99}, + {0x9836d630, 0xffffd86affffde9a}, + {0x9836d631, 0xffffd86affffde9b}, + {0x9836d632, 0xffffd86affffde9c}, + {0x9836d633, 0xffffd86affffde9d}, + {0x9836d634, 0xffffd86affffde9e}, + {0x9836d635, 0xffffd86affffde9f}, + {0x9836d636, 0xffffd86affffdea0}, + {0x9836d637, 0xffffd86affffdea1}, + {0x9836d638, 0xffffd86affffdea2}, + {0x9836d639, 0xffffd86affffdea3}, + {0x9836d730, 0xffffd86affffdea4}, + {0x9836d731, 0xffffd86affffdea5}, + {0x9836d732, 0xffffd86affffdea6}, + {0x9836d733, 0xffffd86affffdea7}, + {0x9836d734, 0xffffd86affffdea8}, + {0x9836d735, 0xffffd86affffdea9}, + {0x9836d736, 0xffffd86affffdeaa}, + {0x9836d737, 0xffffd86affffdeab}, + {0x9836d738, 0xffffd86affffdeac}, + {0x9836d739, 0xffffd86affffdead}, + {0x9836d830, 0xffffd86affffdeae}, + {0x9836d831, 0xffffd86affffdeaf}, + {0x9836d832, 0xffffd86affffdeb0}, + {0x9836d833, 0xffffd86affffdeb1}, + {0x9836d834, 0xffffd86affffdeb2}, + {0x9836d835, 0xffffd86affffdeb3}, + {0x9836d836, 0xffffd86affffdeb4}, + {0x9836d837, 0xffffd86affffdeb5}, + {0x9836d838, 0xffffd86affffdeb6}, + {0x9836d839, 0xffffd86affffdeb7}, + {0x9836d930, 0xffffd86affffdeb8}, + {0x9836d931, 0xffffd86affffdeb9}, + {0x9836d932, 0xffffd86affffdeba}, + {0x9836d933, 0xffffd86affffdebb}, + {0x9836d934, 0xffffd86affffdebc}, + {0x9836d935, 0xffffd86affffdebd}, + {0x9836d936, 0xffffd86affffdebe}, + {0x9836d937, 0xffffd86affffdebf}, + {0x9836d938, 0xffffd86affffdec0}, + {0x9836d939, 0xffffd86affffdec1}, + {0x9836da30, 0xffffd86affffdec2}, + {0x9836da31, 0xffffd86affffdec3}, + {0x9836da32, 0xffffd86affffdec4}, + {0x9836da33, 0xffffd86affffdec5}, + {0x9836da34, 0xffffd86affffdec6}, + {0x9836da35, 0xffffd86affffdec7}, + {0x9836da36, 0xffffd86affffdec8}, + {0x9836da37, 0xffffd86affffdec9}, + {0x9836da38, 0xffffd86affffdeca}, + {0x9836da39, 0xffffd86affffdecb}, + {0x9836db30, 0xffffd86affffdecc}, + {0x9836db31, 0xffffd86affffdecd}, + {0x9836db32, 0xffffd86affffdece}, + {0x9836db33, 0xffffd86affffdecf}, + {0x9836db34, 0xffffd86affffded0}, + {0x9836db35, 0xffffd86affffded1}, + {0x9836db36, 0xffffd86affffded2}, + {0x9836db37, 0xffffd86affffded3}, + {0x9836db38, 0xffffd86affffded4}, + {0x9836db39, 0xffffd86affffded5}, + {0x9836dc30, 0xffffd86affffded6}, + {0x9836dc31, 0xffffd86affffded7}, + {0x9836dc32, 0xffffd86affffded8}, + {0x9836dc33, 0xffffd86affffded9}, + {0x9836dc34, 0xffffd86affffdeda}, + {0x9836dc35, 0xffffd86affffdedb}, + {0x9836dc36, 0xffffd86affffdedc}, + {0x9836dc37, 0xffffd86affffdedd}, + {0x9836dc38, 0xffffd86affffdede}, + {0x9836dc39, 0xffffd86affffdedf}, + {0x9836dd30, 0xffffd86affffdee0}, + {0x9836dd31, 0xffffd86affffdee1}, + {0x9836dd32, 0xffffd86affffdee2}, + {0x9836dd33, 0xffffd86affffdee3}, + {0x9836dd34, 0xffffd86affffdee4}, + {0x9836dd35, 0xffffd86affffdee5}, + {0x9836dd36, 0xffffd86affffdee6}, + {0x9836dd37, 0xffffd86affffdee7}, + {0x9836dd38, 0xffffd86affffdee8}, + {0x9836dd39, 0xffffd86affffdee9}, + {0x9836de30, 0xffffd86affffdeea}, + {0x9836de31, 0xffffd86affffdeeb}, + {0x9836de32, 0xffffd86affffdeec}, + {0x9836de33, 0xffffd86affffdeed}, + {0x9836de34, 0xffffd86affffdeee}, + {0x9836de35, 0xffffd86affffdeef}, + {0x9836de36, 0xffffd86affffdef0}, + {0x9836de37, 0xffffd86affffdef1}, + {0x9836de38, 0xffffd86affffdef2}, + {0x9836de39, 0xffffd86affffdef3}, + {0x9836df30, 0xffffd86affffdef4}, + {0x9836df31, 0xffffd86affffdef5}, + {0x9836df32, 0xffffd86affffdef6}, + {0x9836df33, 0xffffd86affffdef7}, + {0x9836df34, 0xffffd86affffdef8}, + {0x9836df35, 0xffffd86affffdef9}, + {0x9836df36, 0xffffd86affffdefa}, + {0x9836df37, 0xffffd86affffdefb}, + {0x9836df38, 0xffffd86affffdefc}, + {0x9836df39, 0xffffd86affffdefd}, + {0x9836e030, 0xffffd86affffdefe}, + {0x9836e031, 0xffffd86affffdeff}, + {0x9836e032, 0xffffd86affffdf00}, + {0x9836e033, 0xffffd86affffdf01}, + {0x9836e034, 0xffffd86affffdf02}, + {0x9836e035, 0xffffd86affffdf03}, + {0x9836e036, 0xffffd86affffdf04}, + {0x9836e037, 0xffffd86affffdf05}, + {0x9836e038, 0xffffd86affffdf06}, + {0x9836e039, 0xffffd86affffdf07}, + {0x9836e130, 0xffffd86affffdf08}, + {0x9836e131, 0xffffd86affffdf09}, + {0x9836e132, 0xffffd86affffdf0a}, + {0x9836e133, 0xffffd86affffdf0b}, + {0x9836e134, 0xffffd86affffdf0c}, + {0x9836e135, 0xffffd86affffdf0d}, + {0x9836e136, 0xffffd86affffdf0e}, + {0x9836e137, 0xffffd86affffdf0f}, + {0x9836e138, 0xffffd86affffdf10}, + {0x9836e139, 0xffffd86affffdf11}, + {0x9836e230, 0xffffd86affffdf12}, + {0x9836e231, 0xffffd86affffdf13}, + {0x9836e232, 0xffffd86affffdf14}, + {0x9836e233, 0xffffd86affffdf15}, + {0x9836e234, 0xffffd86affffdf16}, + {0x9836e235, 0xffffd86affffdf17}, + {0x9836e236, 0xffffd86affffdf18}, + {0x9836e237, 0xffffd86affffdf19}, + {0x9836e238, 0xffffd86affffdf1a}, + {0x9836e239, 0xffffd86affffdf1b}, + {0x9836e330, 0xffffd86affffdf1c}, + {0x9836e331, 0xffffd86affffdf1d}, + {0x9836e332, 0xffffd86affffdf1e}, + {0x9836e333, 0xffffd86affffdf1f}, + {0x9836e334, 0xffffd86affffdf20}, + {0x9836e335, 0xffffd86affffdf21}, + {0x9836e336, 0xffffd86affffdf22}, + {0x9836e337, 0xffffd86affffdf23}, + {0x9836e338, 0xffffd86affffdf24}, + {0x9836e339, 0xffffd86affffdf25}, + {0x9836e430, 0xffffd86affffdf26}, + {0x9836e431, 0xffffd86affffdf27}, + {0x9836e432, 0xffffd86affffdf28}, + {0x9836e433, 0xffffd86affffdf29}, + {0x9836e434, 0xffffd86affffdf2a}, + {0x9836e435, 0xffffd86affffdf2b}, + {0x9836e436, 0xffffd86affffdf2c}, + {0x9836e437, 0xffffd86affffdf2d}, + {0x9836e438, 0xffffd86affffdf2e}, + {0x9836e439, 0xffffd86affffdf2f}, + {0x9836e530, 0xffffd86affffdf30}, + {0x9836e531, 0xffffd86affffdf31}, + {0x9836e532, 0xffffd86affffdf32}, + {0x9836e533, 0xffffd86affffdf33}, + {0x9836e534, 0xffffd86affffdf34}, + {0x9836e535, 0xffffd86affffdf35}, + {0x9836e536, 0xffffd86affffdf36}, + {0x9836e537, 0xffffd86affffdf37}, + {0x9836e538, 0xffffd86affffdf38}, + {0x9836e539, 0xffffd86affffdf39}, + {0x9836e630, 0xffffd86affffdf3a}, + {0x9836e631, 0xffffd86affffdf3b}, + {0x9836e632, 0xffffd86affffdf3c}, + {0x9836e633, 0xffffd86affffdf3d}, + {0x9836e634, 0xffffd86affffdf3e}, + {0x9836e635, 0xffffd86affffdf3f}, + {0x9836e636, 0xffffd86affffdf40}, + {0x9836e637, 0xffffd86affffdf41}, + {0x9836e638, 0xffffd86affffdf42}, + {0x9836e639, 0xffffd86affffdf43}, + {0x9836e730, 0xffffd86affffdf44}, + {0x9836e731, 0xffffd86affffdf45}, + {0x9836e732, 0xffffd86affffdf46}, + {0x9836e733, 0xffffd86affffdf47}, + {0x9836e734, 0xffffd86affffdf48}, + {0x9836e735, 0xffffd86affffdf49}, + {0x9836e736, 0xffffd86affffdf4a}, + {0x9836e737, 0xffffd86affffdf4b}, + {0x9836e738, 0xffffd86affffdf4c}, + {0x9836e739, 0xffffd86affffdf4d}, + {0x9836e830, 0xffffd86affffdf4e}, + {0x9836e831, 0xffffd86affffdf4f}, + {0x9836e832, 0xffffd86affffdf50}, + {0x9836e833, 0xffffd86affffdf51}, + {0x9836e834, 0xffffd86affffdf52}, + {0x9836e835, 0xffffd86affffdf53}, + {0x9836e836, 0xffffd86affffdf54}, + {0x9836e837, 0xffffd86affffdf55}, + {0x9836e838, 0xffffd86affffdf56}, + {0x9836e839, 0xffffd86affffdf57}, + {0x9836e930, 0xffffd86affffdf58}, + {0x9836e931, 0xffffd86affffdf59}, + {0x9836e932, 0xffffd86affffdf5a}, + {0x9836e933, 0xffffd86affffdf5b}, + {0x9836e934, 0xffffd86affffdf5c}, + {0x9836e935, 0xffffd86affffdf5d}, + {0x9836e936, 0xffffd86affffdf5e}, + {0x9836e937, 0xffffd86affffdf5f}, + {0x9836e938, 0xffffd86affffdf60}, + {0x9836e939, 0xffffd86affffdf61}, + {0x9836ea30, 0xffffd86affffdf62}, + {0x9836ea31, 0xffffd86affffdf63}, + {0x9836ea32, 0xffffd86affffdf64}, + {0x9836ea33, 0xffffd86affffdf65}, + {0x9836ea34, 0xffffd86affffdf66}, + {0x9836ea35, 0xffffd86affffdf67}, + {0x9836ea36, 0xffffd86affffdf68}, + {0x9836ea37, 0xffffd86affffdf69}, + {0x9836ea38, 0xffffd86affffdf6a}, + {0x9836ea39, 0xffffd86affffdf6b}, + {0x9836eb30, 0xffffd86affffdf6c}, + {0x9836eb31, 0xffffd86affffdf6d}, + {0x9836eb32, 0xffffd86affffdf6e}, + {0x9836eb33, 0xffffd86affffdf6f}, + {0x9836eb34, 0xffffd86affffdf70}, + {0x9836eb35, 0xffffd86affffdf71}, + {0x9836eb36, 0xffffd86affffdf72}, + {0x9836eb37, 0xffffd86affffdf73}, + {0x9836eb38, 0xffffd86affffdf74}, + {0x9836eb39, 0xffffd86affffdf75}, + {0x9836ec30, 0xffffd86affffdf76}, + {0x9836ec31, 0xffffd86affffdf77}, + {0x9836ec32, 0xffffd86affffdf78}, + {0x9836ec33, 0xffffd86affffdf79}, + {0x9836ec34, 0xffffd86affffdf7a}, + {0x9836ec35, 0xffffd86affffdf7b}, + {0x9836ec36, 0xffffd86affffdf7c}, + {0x9836ec37, 0xffffd86affffdf7d}, + {0x9836ec38, 0xffffd86affffdf7e}, + {0x9836ec39, 0xffffd86affffdf7f}, + {0x9836ed30, 0xffffd86affffdf80}, + {0x9836ed31, 0xffffd86affffdf81}, + {0x9836ed32, 0xffffd86affffdf82}, + {0x9836ed33, 0xffffd86affffdf83}, + {0x9836ed34, 0xffffd86affffdf84}, + {0x9836ed35, 0xffffd86affffdf85}, + {0x9836ed36, 0xffffd86affffdf86}, + {0x9836ed37, 0xffffd86affffdf87}, + {0x9836ed38, 0xffffd86affffdf88}, + {0x9836ed39, 0xffffd86affffdf89}, + {0x9836ee30, 0xffffd86affffdf8a}, + {0x9836ee31, 0xffffd86affffdf8b}, + {0x9836ee32, 0xffffd86affffdf8c}, + {0x9836ee33, 0xffffd86affffdf8d}, + {0x9836ee34, 0xffffd86affffdf8e}, + {0x9836ee35, 0xffffd86affffdf8f}, + {0x9836ee36, 0xffffd86affffdf90}, + {0x9836ee37, 0xffffd86affffdf91}, + {0x9836ee38, 0xffffd86affffdf92}, + {0x9836ee39, 0xffffd86affffdf93}, + {0x9836ef30, 0xffffd86affffdf94}, + {0x9836ef31, 0xffffd86affffdf95}, + {0x9836ef32, 0xffffd86affffdf96}, + {0x9836ef33, 0xffffd86affffdf97}, + {0x9836ef34, 0xffffd86affffdf98}, + {0x9836ef35, 0xffffd86affffdf99}, + {0x9836ef36, 0xffffd86affffdf9a}, + {0x9836ef37, 0xffffd86affffdf9b}, + {0x9836ef38, 0xffffd86affffdf9c}, + {0x9836ef39, 0xffffd86affffdf9d}, + {0x9836f030, 0xffffd86affffdf9e}, + {0x9836f031, 0xffffd86affffdf9f}, + {0x9836f032, 0xffffd86affffdfa0}, + {0x9836f033, 0xffffd86affffdfa1}, + {0x9836f034, 0xffffd86affffdfa2}, + {0x9836f035, 0xffffd86affffdfa3}, + {0x9836f036, 0xffffd86affffdfa4}, + {0x9836f037, 0xffffd86affffdfa5}, + {0x9836f038, 0xffffd86affffdfa6}, + {0x9836f039, 0xffffd86affffdfa7}, + {0x9836f130, 0xffffd86affffdfa8}, + {0x9836f131, 0xffffd86affffdfa9}, + {0x9836f132, 0xffffd86affffdfaa}, + {0x9836f133, 0xffffd86affffdfab}, + {0x9836f134, 0xffffd86affffdfac}, + {0x9836f135, 0xffffd86affffdfad}, + {0x9836f136, 0xffffd86affffdfae}, + {0x9836f137, 0xffffd86affffdfaf}, + {0x9836f138, 0xffffd86affffdfb0}, + {0x9836f139, 0xffffd86affffdfb1}, + {0x9836f230, 0xffffd86affffdfb2}, + {0x9836f231, 0xffffd86affffdfb3}, + {0x9836f232, 0xffffd86affffdfb4}, + {0x9836f233, 0xffffd86affffdfb5}, + {0x9836f234, 0xffffd86affffdfb6}, + {0x9836f235, 0xffffd86affffdfb7}, + {0x9836f236, 0xffffd86affffdfb8}, + {0x9836f237, 0xffffd86affffdfb9}, + {0x9836f238, 0xffffd86affffdfba}, + {0x9836f239, 0xffffd86affffdfbb}, + {0x9836f330, 0xffffd86affffdfbc}, + {0x9836f331, 0xffffd86affffdfbd}, + {0x9836f332, 0xffffd86affffdfbe}, + {0x9836f333, 0xffffd86affffdfbf}, + {0x9836f334, 0xffffd86affffdfc0}, + {0x9836f335, 0xffffd86affffdfc1}, + {0x9836f336, 0xffffd86affffdfc2}, + {0x9836f337, 0xffffd86affffdfc3}, + {0x9836f338, 0xffffd86affffdfc4}, + {0x9836f339, 0xffffd86affffdfc5}, + {0x9836f430, 0xffffd86affffdfc6}, + {0x9836f431, 0xffffd86affffdfc7}, + {0x9836f432, 0xffffd86affffdfc8}, + {0x9836f433, 0xffffd86affffdfc9}, + {0x9836f434, 0xffffd86affffdfca}, + {0x9836f435, 0xffffd86affffdfcb}, + {0x9836f436, 0xffffd86affffdfcc}, + {0x9836f437, 0xffffd86affffdfcd}, + {0x9836f438, 0xffffd86affffdfce}, + {0x9836f439, 0xffffd86affffdfcf}, + {0x9836f530, 0xffffd86affffdfd0}, + {0x9836f531, 0xffffd86affffdfd1}, + {0x9836f532, 0xffffd86affffdfd2}, + {0x9836f533, 0xffffd86affffdfd3}, + {0x9836f534, 0xffffd86affffdfd4}, + {0x9836f535, 0xffffd86affffdfd5}, + {0x9836f536, 0xffffd86affffdfd6}, + {0x9836f537, 0xffffd86affffdfd7}, + {0x9836f538, 0xffffd86affffdfd8}, + {0x9836f539, 0xffffd86affffdfd9}, + {0x9836f630, 0xffffd86affffdfda}, + {0x9836f631, 0xffffd86affffdfdb}, + {0x9836f632, 0xffffd86affffdfdc}, + {0x9836f633, 0xffffd86affffdfdd}, + {0x9836f634, 0xffffd86affffdfde}, + {0x9836f635, 0xffffd86affffdfdf}, + {0x9836f636, 0xffffd86affffdfe0}, + {0x9836f637, 0xffffd86affffdfe1}, + {0x9836f638, 0xffffd86affffdfe2}, + {0x9836f639, 0xffffd86affffdfe3}, + {0x9836f730, 0xffffd86affffdfe4}, + {0x9836f731, 0xffffd86affffdfe5}, + {0x9836f732, 0xffffd86affffdfe6}, + {0x9836f733, 0xffffd86affffdfe7}, + {0x9836f734, 0xffffd86affffdfe8}, + {0x9836f735, 0xffffd86affffdfe9}, + {0x9836f736, 0xffffd86affffdfea}, + {0x9836f737, 0xffffd86affffdfeb}, + {0x9836f738, 0xffffd86affffdfec}, + {0x9836f739, 0xffffd86affffdfed}, + {0x9836f830, 0xffffd86affffdfee}, + {0x9836f831, 0xffffd86affffdfef}, + {0x9836f832, 0xffffd86affffdff0}, + {0x9836f833, 0xffffd86affffdff1}, + {0x9836f834, 0xffffd86affffdff2}, + {0x9836f835, 0xffffd86affffdff3}, + {0x9836f836, 0xffffd86affffdff4}, + {0x9836f837, 0xffffd86affffdff5}, + {0x9836f838, 0xffffd86affffdff6}, + {0x9836f839, 0xffffd86affffdff7}, + {0x9836f930, 0xffffd86affffdff8}, + {0x9836f931, 0xffffd86affffdff9}, + {0x9836f932, 0xffffd86affffdffa}, + {0x9836f933, 0xffffd86affffdffb}, + {0x9836f934, 0xffffd86affffdffc}, + {0x9836f935, 0xffffd86affffdffd}, + {0x9836f936, 0xffffd86affffdffe}, + {0x9836f937, 0xffffd86affffdfff}, + {0x9836f938, 0xffffd86bffffdc00}, + {0x9836f939, 0xffffd86bffffdc01}, + {0x9836fa30, 0xffffd86bffffdc02}, + {0x9836fa31, 0xffffd86bffffdc03}, + {0x9836fa32, 0xffffd86bffffdc04}, + {0x9836fa33, 0xffffd86bffffdc05}, + {0x9836fa34, 0xffffd86bffffdc06}, + {0x9836fa35, 0xffffd86bffffdc07}, + {0x9836fa36, 0xffffd86bffffdc08}, + {0x9836fa37, 0xffffd86bffffdc09}, + {0x9836fa38, 0xffffd86bffffdc0a}, + {0x9836fa39, 0xffffd86bffffdc0b}, + {0x9836fb30, 0xffffd86bffffdc0c}, + {0x9836fb31, 0xffffd86bffffdc0d}, + {0x9836fb32, 0xffffd86bffffdc0e}, + {0x9836fb33, 0xffffd86bffffdc0f}, + {0x9836fb34, 0xffffd86bffffdc10}, + {0x9836fb35, 0xffffd86bffffdc11}, + {0x9836fb36, 0xffffd86bffffdc12}, + {0x9836fb37, 0xffffd86bffffdc13}, + {0x9836fb38, 0xffffd86bffffdc14}, + {0x9836fb39, 0xffffd86bffffdc15}, + {0x9836fc30, 0xffffd86bffffdc16}, + {0x9836fc31, 0xffffd86bffffdc17}, + {0x9836fc32, 0xffffd86bffffdc18}, + {0x9836fc33, 0xffffd86bffffdc19}, + {0x9836fc34, 0xffffd86bffffdc1a}, + {0x9836fc35, 0xffffd86bffffdc1b}, + {0x9836fc36, 0xffffd86bffffdc1c}, + {0x9836fc37, 0xffffd86bffffdc1d}, + {0x9836fc38, 0xffffd86bffffdc1e}, + {0x9836fc39, 0xffffd86bffffdc1f}, + {0x9836fd30, 0xffffd86bffffdc20}, + {0x9836fd31, 0xffffd86bffffdc21}, + {0x9836fd32, 0xffffd86bffffdc22}, + {0x9836fd33, 0xffffd86bffffdc23}, + {0x9836fd34, 0xffffd86bffffdc24}, + {0x9836fd35, 0xffffd86bffffdc25}, + {0x9836fd36, 0xffffd86bffffdc26}, + {0x9836fd37, 0xffffd86bffffdc27}, + {0x9836fd38, 0xffffd86bffffdc28}, + {0x9836fd39, 0xffffd86bffffdc29}, + {0x9836fe30, 0xffffd86bffffdc2a}, + {0x9836fe31, 0xffffd86bffffdc2b}, + {0x9836fe32, 0xffffd86bffffdc2c}, + {0x9836fe33, 0xffffd86bffffdc2d}, + {0x9836fe34, 0xffffd86bffffdc2e}, + {0x9836fe35, 0xffffd86bffffdc2f}, + {0x9836fe36, 0xffffd86bffffdc30}, + {0x9836fe37, 0xffffd86bffffdc31}, + {0x9836fe38, 0xffffd86bffffdc32}, + {0x9836fe39, 0xffffd86bffffdc33}, + {0x98378130, 0xffffd86bffffdc34}, + {0x98378131, 0xffffd86bffffdc35}, + {0x98378132, 0xffffd86bffffdc36}, + {0x98378133, 0xffffd86bffffdc37}, + {0x98378134, 0xffffd86bffffdc38}, + {0x98378135, 0xffffd86bffffdc39}, + {0x98378136, 0xffffd86bffffdc3a}, + {0x98378137, 0xffffd86bffffdc3b}, + {0x98378138, 0xffffd86bffffdc3c}, + {0x98378139, 0xffffd86bffffdc3d}, + {0x98378230, 0xffffd86bffffdc3e}, + {0x98378231, 0xffffd86bffffdc3f}, + {0x98378232, 0xffffd86bffffdc40}, + {0x98378233, 0xffffd86bffffdc41}, + {0x98378234, 0xffffd86bffffdc42}, + {0x98378235, 0xffffd86bffffdc43}, + {0x98378236, 0xffffd86bffffdc44}, + {0x98378237, 0xffffd86bffffdc45}, + {0x98378238, 0xffffd86bffffdc46}, + {0x98378239, 0xffffd86bffffdc47}, + {0x98378330, 0xffffd86bffffdc48}, + {0x98378331, 0xffffd86bffffdc49}, + {0x98378332, 0xffffd86bffffdc4a}, + {0x98378333, 0xffffd86bffffdc4b}, + {0x98378334, 0xffffd86bffffdc4c}, + {0x98378335, 0xffffd86bffffdc4d}, + {0x98378336, 0xffffd86bffffdc4e}, + {0x98378337, 0xffffd86bffffdc4f}, + {0x98378338, 0xffffd86bffffdc50}, + {0x98378339, 0xffffd86bffffdc51}, + {0x98378430, 0xffffd86bffffdc52}, + {0x98378431, 0xffffd86bffffdc53}, + {0x98378432, 0xffffd86bffffdc54}, + {0x98378433, 0xffffd86bffffdc55}, + {0x98378434, 0xffffd86bffffdc56}, + {0x98378435, 0xffffd86bffffdc57}, + {0x98378436, 0xffffd86bffffdc58}, + {0x98378437, 0xffffd86bffffdc59}, + {0x98378438, 0xffffd86bffffdc5a}, + {0x98378439, 0xffffd86bffffdc5b}, + {0x98378530, 0xffffd86bffffdc5c}, + {0x98378531, 0xffffd86bffffdc5d}, + {0x98378532, 0xffffd86bffffdc5e}, + {0x98378533, 0xffffd86bffffdc5f}, + {0x98378534, 0xffffd86bffffdc60}, + {0x98378535, 0xffffd86bffffdc61}, + {0x98378536, 0xffffd86bffffdc62}, + {0x98378537, 0xffffd86bffffdc63}, + {0x98378538, 0xffffd86bffffdc64}, + {0x98378539, 0xffffd86bffffdc65}, + {0x98378630, 0xffffd86bffffdc66}, + {0x98378631, 0xffffd86bffffdc67}, + {0x98378632, 0xffffd86bffffdc68}, + {0x98378633, 0xffffd86bffffdc69}, + {0x98378634, 0xffffd86bffffdc6a}, + {0x98378635, 0xffffd86bffffdc6b}, + {0x98378636, 0xffffd86bffffdc6c}, + {0x98378637, 0xffffd86bffffdc6d}, + {0x98378638, 0xffffd86bffffdc6e}, + {0x98378639, 0xffffd86bffffdc6f}, + {0x98378730, 0xffffd86bffffdc70}, + {0x98378731, 0xffffd86bffffdc71}, + {0x98378732, 0xffffd86bffffdc72}, + {0x98378733, 0xffffd86bffffdc73}, + {0x98378734, 0xffffd86bffffdc74}, + {0x98378735, 0xffffd86bffffdc75}, + {0x98378736, 0xffffd86bffffdc76}, + {0x98378737, 0xffffd86bffffdc77}, + {0x98378738, 0xffffd86bffffdc78}, + {0x98378739, 0xffffd86bffffdc79}, + {0x98378830, 0xffffd86bffffdc7a}, + {0x98378831, 0xffffd86bffffdc7b}, + {0x98378832, 0xffffd86bffffdc7c}, + {0x98378833, 0xffffd86bffffdc7d}, + {0x98378834, 0xffffd86bffffdc7e}, + {0x98378835, 0xffffd86bffffdc7f}, + {0x98378836, 0xffffd86bffffdc80}, + {0x98378837, 0xffffd86bffffdc81}, + {0x98378838, 0xffffd86bffffdc82}, + {0x98378839, 0xffffd86bffffdc83}, + {0x98378930, 0xffffd86bffffdc84}, + {0x98378931, 0xffffd86bffffdc85}, + {0x98378932, 0xffffd86bffffdc86}, + {0x98378933, 0xffffd86bffffdc87}, + {0x98378934, 0xffffd86bffffdc88}, + {0x98378935, 0xffffd86bffffdc89}, + {0x98378936, 0xffffd86bffffdc8a}, + {0x98378937, 0xffffd86bffffdc8b}, + {0x98378938, 0xffffd86bffffdc8c}, + {0x98378939, 0xffffd86bffffdc8d}, + {0x98378a30, 0xffffd86bffffdc8e}, + {0x98378a31, 0xffffd86bffffdc8f}, + {0x98378a32, 0xffffd86bffffdc90}, + {0x98378a33, 0xffffd86bffffdc91}, + {0x98378a34, 0xffffd86bffffdc92}, + {0x98378a35, 0xffffd86bffffdc93}, + {0x98378a36, 0xffffd86bffffdc94}, + {0x98378a37, 0xffffd86bffffdc95}, + {0x98378a38, 0xffffd86bffffdc96}, + {0x98378a39, 0xffffd86bffffdc97}, + {0x98378b30, 0xffffd86bffffdc98}, + {0x98378b31, 0xffffd86bffffdc99}, + {0x98378b32, 0xffffd86bffffdc9a}, + {0x98378b33, 0xffffd86bffffdc9b}, + {0x98378b34, 0xffffd86bffffdc9c}, + {0x98378b35, 0xffffd86bffffdc9d}, + {0x98378b36, 0xffffd86bffffdc9e}, + {0x98378b37, 0xffffd86bffffdc9f}, + {0x98378b38, 0xffffd86bffffdca0}, + {0x98378b39, 0xffffd86bffffdca1}, + {0x98378c30, 0xffffd86bffffdca2}, + {0x98378c31, 0xffffd86bffffdca3}, + {0x98378c32, 0xffffd86bffffdca4}, + {0x98378c33, 0xffffd86bffffdca5}, + {0x98378c34, 0xffffd86bffffdca6}, + {0x98378c35, 0xffffd86bffffdca7}, + {0x98378c36, 0xffffd86bffffdca8}, + {0x98378c37, 0xffffd86bffffdca9}, + {0x98378c38, 0xffffd86bffffdcaa}, + {0x98378c39, 0xffffd86bffffdcab}, + {0x98378d30, 0xffffd86bffffdcac}, + {0x98378d31, 0xffffd86bffffdcad}, + {0x98378d32, 0xffffd86bffffdcae}, + {0x98378d33, 0xffffd86bffffdcaf}, + {0x98378d34, 0xffffd86bffffdcb0}, + {0x98378d35, 0xffffd86bffffdcb1}, + {0x98378d36, 0xffffd86bffffdcb2}, + {0x98378d37, 0xffffd86bffffdcb3}, + {0x98378d38, 0xffffd86bffffdcb4}, + {0x98378d39, 0xffffd86bffffdcb5}, + {0x98378e30, 0xffffd86bffffdcb6}, + {0x98378e31, 0xffffd86bffffdcb7}, + {0x98378e32, 0xffffd86bffffdcb8}, + {0x98378e33, 0xffffd86bffffdcb9}, + {0x98378e34, 0xffffd86bffffdcba}, + {0x98378e35, 0xffffd86bffffdcbb}, + {0x98378e36, 0xffffd86bffffdcbc}, + {0x98378e37, 0xffffd86bffffdcbd}, + {0x98378e38, 0xffffd86bffffdcbe}, + {0x98378e39, 0xffffd86bffffdcbf}, + {0x98378f30, 0xffffd86bffffdcc0}, + {0x98378f31, 0xffffd86bffffdcc1}, + {0x98378f32, 0xffffd86bffffdcc2}, + {0x98378f33, 0xffffd86bffffdcc3}, + {0x98378f34, 0xffffd86bffffdcc4}, + {0x98378f35, 0xffffd86bffffdcc5}, + {0x98378f36, 0xffffd86bffffdcc6}, + {0x98378f37, 0xffffd86bffffdcc7}, + {0x98378f38, 0xffffd86bffffdcc8}, + {0x98378f39, 0xffffd86bffffdcc9}, + {0x98379030, 0xffffd86bffffdcca}, + {0x98379031, 0xffffd86bffffdccb}, + {0x98379032, 0xffffd86bffffdccc}, + {0x98379033, 0xffffd86bffffdccd}, + {0x98379034, 0xffffd86bffffdcce}, + {0x98379035, 0xffffd86bffffdccf}, + {0x98379036, 0xffffd86bffffdcd0}, + {0x98379037, 0xffffd86bffffdcd1}, + {0x98379038, 0xffffd86bffffdcd2}, + {0x98379039, 0xffffd86bffffdcd3}, + {0x98379130, 0xffffd86bffffdcd4}, + {0x98379131, 0xffffd86bffffdcd5}, + {0x98379132, 0xffffd86bffffdcd6}, + {0x98379133, 0xffffd86bffffdcd7}, + {0x98379134, 0xffffd86bffffdcd8}, + {0x98379135, 0xffffd86bffffdcd9}, + {0x98379136, 0xffffd86bffffdcda}, + {0x98379137, 0xffffd86bffffdcdb}, + {0x98379138, 0xffffd86bffffdcdc}, + {0x98379139, 0xffffd86bffffdcdd}, + {0x98379230, 0xffffd86bffffdcde}, + {0x98379231, 0xffffd86bffffdcdf}, + {0x98379232, 0xffffd86bffffdce0}, + {0x98379233, 0xffffd86bffffdce1}, + {0x98379234, 0xffffd86bffffdce2}, + {0x98379235, 0xffffd86bffffdce3}, + {0x98379236, 0xffffd86bffffdce4}, + {0x98379237, 0xffffd86bffffdce5}, + {0x98379238, 0xffffd86bffffdce6}, + {0x98379239, 0xffffd86bffffdce7}, + {0x98379330, 0xffffd86bffffdce8}, + {0x98379331, 0xffffd86bffffdce9}, + {0x98379332, 0xffffd86bffffdcea}, + {0x98379333, 0xffffd86bffffdceb}, + {0x98379334, 0xffffd86bffffdcec}, + {0x98379335, 0xffffd86bffffdced}, + {0x98379336, 0xffffd86bffffdcee}, + {0x98379337, 0xffffd86bffffdcef}, + {0x98379338, 0xffffd86bffffdcf0}, + {0x98379339, 0xffffd86bffffdcf1}, + {0x98379430, 0xffffd86bffffdcf2}, + {0x98379431, 0xffffd86bffffdcf3}, + {0x98379432, 0xffffd86bffffdcf4}, + {0x98379433, 0xffffd86bffffdcf5}, + {0x98379434, 0xffffd86bffffdcf6}, + {0x98379435, 0xffffd86bffffdcf7}, + {0x98379436, 0xffffd86bffffdcf8}, + {0x98379437, 0xffffd86bffffdcf9}, + {0x98379438, 0xffffd86bffffdcfa}, + {0x98379439, 0xffffd86bffffdcfb}, + {0x98379530, 0xffffd86bffffdcfc}, + {0x98379531, 0xffffd86bffffdcfd}, + {0x98379532, 0xffffd86bffffdcfe}, + {0x98379533, 0xffffd86bffffdcff}, + {0x98379534, 0xffffd86bffffdd00}, + {0x98379535, 0xffffd86bffffdd01}, + {0x98379536, 0xffffd86bffffdd02}, + {0x98379537, 0xffffd86bffffdd03}, + {0x98379538, 0xffffd86bffffdd04}, + {0x98379539, 0xffffd86bffffdd05}, + {0x98379630, 0xffffd86bffffdd06}, + {0x98379631, 0xffffd86bffffdd07}, + {0x98379632, 0xffffd86bffffdd08}, + {0x98379633, 0xffffd86bffffdd09}, + {0x98379634, 0xffffd86bffffdd0a}, + {0x98379635, 0xffffd86bffffdd0b}, + {0x98379636, 0xffffd86bffffdd0c}, + {0x98379637, 0xffffd86bffffdd0d}, + {0x98379638, 0xffffd86bffffdd0e}, + {0x98379639, 0xffffd86bffffdd0f}, + {0x98379730, 0xffffd86bffffdd10}, + {0x98379731, 0xffffd86bffffdd11}, + {0x98379732, 0xffffd86bffffdd12}, + {0x98379733, 0xffffd86bffffdd13}, + {0x98379734, 0xffffd86bffffdd14}, + {0x98379735, 0xffffd86bffffdd15}, + {0x98379736, 0xffffd86bffffdd16}, + {0x98379737, 0xffffd86bffffdd17}, + {0x98379738, 0xffffd86bffffdd18}, + {0x98379739, 0xffffd86bffffdd19}, + {0x98379830, 0xffffd86bffffdd1a}, + {0x98379831, 0xffffd86bffffdd1b}, + {0x98379832, 0xffffd86bffffdd1c}, + {0x98379833, 0xffffd86bffffdd1d}, + {0x98379834, 0xffffd86bffffdd1e}, + {0x98379835, 0xffffd86bffffdd1f}, + {0x98379836, 0xffffd86bffffdd20}, + {0x98379837, 0xffffd86bffffdd21}, + {0x98379838, 0xffffd86bffffdd22}, + {0x98379839, 0xffffd86bffffdd23}, + {0x98379930, 0xffffd86bffffdd24}, + {0x98379931, 0xffffd86bffffdd25}, + {0x98379932, 0xffffd86bffffdd26}, + {0x98379933, 0xffffd86bffffdd27}, + {0x98379934, 0xffffd86bffffdd28}, + {0x98379935, 0xffffd86bffffdd29}, + {0x98379936, 0xffffd86bffffdd2a}, + {0x98379937, 0xffffd86bffffdd2b}, + {0x98379938, 0xffffd86bffffdd2c}, + {0x98379939, 0xffffd86bffffdd2d}, + {0x98379a30, 0xffffd86bffffdd2e}, + {0x98379a31, 0xffffd86bffffdd2f}, + {0x98379a32, 0xffffd86bffffdd30}, + {0x98379a33, 0xffffd86bffffdd31}, + {0x98379a34, 0xffffd86bffffdd32}, + {0x98379a35, 0xffffd86bffffdd33}, + {0x98379a36, 0xffffd86bffffdd34}, + {0x98379a37, 0xffffd86bffffdd35}, + {0x98379a38, 0xffffd86bffffdd36}, + {0x98379a39, 0xffffd86bffffdd37}, + {0x98379b30, 0xffffd86bffffdd38}, + {0x98379b31, 0xffffd86bffffdd39}, + {0x98379b32, 0xffffd86bffffdd3a}, + {0x98379b33, 0xffffd86bffffdd3b}, + {0x98379b34, 0xffffd86bffffdd3c}, + {0x98379b35, 0xffffd86bffffdd3d}, + {0x98379b36, 0xffffd86bffffdd3e}, + {0x98379b37, 0xffffd86bffffdd3f}, + {0x98379b38, 0xffffd86bffffdd40}, + {0x98379b39, 0xffffd86bffffdd41}, + {0x98379c30, 0xffffd86bffffdd42}, + {0x98379c31, 0xffffd86bffffdd43}, + {0x98379c32, 0xffffd86bffffdd44}, + {0x98379c33, 0xffffd86bffffdd45}, + {0x98379c34, 0xffffd86bffffdd46}, + {0x98379c35, 0xffffd86bffffdd47}, + {0x98379c36, 0xffffd86bffffdd48}, + {0x98379c37, 0xffffd86bffffdd49}, + {0x98379c38, 0xffffd86bffffdd4a}, + {0x98379c39, 0xffffd86bffffdd4b}, + {0x98379d30, 0xffffd86bffffdd4c}, + {0x98379d31, 0xffffd86bffffdd4d}, + {0x98379d32, 0xffffd86bffffdd4e}, + {0x98379d33, 0xffffd86bffffdd4f}, + {0x98379d34, 0xffffd86bffffdd50}, + {0x98379d35, 0xffffd86bffffdd51}, + {0x98379d36, 0xffffd86bffffdd52}, + {0x98379d37, 0xffffd86bffffdd53}, + {0x98379d38, 0xffffd86bffffdd54}, + {0x98379d39, 0xffffd86bffffdd55}, + {0x98379e30, 0xffffd86bffffdd56}, + {0x98379e31, 0xffffd86bffffdd57}, + {0x98379e32, 0xffffd86bffffdd58}, + {0x98379e33, 0xffffd86bffffdd59}, + {0x98379e34, 0xffffd86bffffdd5a}, + {0x98379e35, 0xffffd86bffffdd5b}, + {0x98379e36, 0xffffd86bffffdd5c}, + {0x98379e37, 0xffffd86bffffdd5d}, + {0x98379e38, 0xffffd86bffffdd5e}, + {0x98379e39, 0xffffd86bffffdd5f}, + {0x98379f30, 0xffffd86bffffdd60}, + {0x98379f31, 0xffffd86bffffdd61}, + {0x98379f32, 0xffffd86bffffdd62}, + {0x98379f33, 0xffffd86bffffdd63}, + {0x98379f34, 0xffffd86bffffdd64}, + {0x98379f35, 0xffffd86bffffdd65}, + {0x98379f36, 0xffffd86bffffdd66}, + {0x98379f37, 0xffffd86bffffdd67}, + {0x98379f38, 0xffffd86bffffdd68}, + {0x98379f39, 0xffffd86bffffdd69}, + {0x9837a030, 0xffffd86bffffdd6a}, + {0x9837a031, 0xffffd86bffffdd6b}, + {0x9837a032, 0xffffd86bffffdd6c}, + {0x9837a033, 0xffffd86bffffdd6d}, + {0x9837a034, 0xffffd86bffffdd6e}, + {0x9837a035, 0xffffd86bffffdd6f}, + {0x9837a036, 0xffffd86bffffdd70}, + {0x9837a037, 0xffffd86bffffdd71}, + {0x9837a038, 0xffffd86bffffdd72}, + {0x9837a039, 0xffffd86bffffdd73}, + {0x9837a130, 0xffffd86bffffdd74}, + {0x9837a131, 0xffffd86bffffdd75}, + {0x9837a132, 0xffffd86bffffdd76}, + {0x9837a133, 0xffffd86bffffdd77}, + {0x9837a134, 0xffffd86bffffdd78}, + {0x9837a135, 0xffffd86bffffdd79}, + {0x9837a136, 0xffffd86bffffdd7a}, + {0x9837a137, 0xffffd86bffffdd7b}, + {0x9837a138, 0xffffd86bffffdd7c}, + {0x9837a139, 0xffffd86bffffdd7d}, + {0x9837a230, 0xffffd86bffffdd7e}, + {0x9837a231, 0xffffd86bffffdd7f}, + {0x9837a232, 0xffffd86bffffdd80}, + {0x9837a233, 0xffffd86bffffdd81}, + {0x9837a234, 0xffffd86bffffdd82}, + {0x9837a235, 0xffffd86bffffdd83}, + {0x9837a236, 0xffffd86bffffdd84}, + {0x9837a237, 0xffffd86bffffdd85}, + {0x9837a238, 0xffffd86bffffdd86}, + {0x9837a239, 0xffffd86bffffdd87}, + {0x9837a330, 0xffffd86bffffdd88}, + {0x9837a331, 0xffffd86bffffdd89}, + {0x9837a332, 0xffffd86bffffdd8a}, + {0x9837a333, 0xffffd86bffffdd8b}, + {0x9837a334, 0xffffd86bffffdd8c}, + {0x9837a335, 0xffffd86bffffdd8d}, + {0x9837a336, 0xffffd86bffffdd8e}, + {0x9837a337, 0xffffd86bffffdd8f}, + {0x9837a338, 0xffffd86bffffdd90}, + {0x9837a339, 0xffffd86bffffdd91}, + {0x9837a430, 0xffffd86bffffdd92}, + {0x9837a431, 0xffffd86bffffdd93}, + {0x9837a432, 0xffffd86bffffdd94}, + {0x9837a433, 0xffffd86bffffdd95}, + {0x9837a434, 0xffffd86bffffdd96}, + {0x9837a435, 0xffffd86bffffdd97}, + {0x9837a436, 0xffffd86bffffdd98}, + {0x9837a437, 0xffffd86bffffdd99}, + {0x9837a438, 0xffffd86bffffdd9a}, + {0x9837a439, 0xffffd86bffffdd9b}, + {0x9837a530, 0xffffd86bffffdd9c}, + {0x9837a531, 0xffffd86bffffdd9d}, + {0x9837a532, 0xffffd86bffffdd9e}, + {0x9837a533, 0xffffd86bffffdd9f}, + {0x9837a534, 0xffffd86bffffdda0}, + {0x9837a535, 0xffffd86bffffdda1}, + {0x9837a536, 0xffffd86bffffdda2}, + {0x9837a537, 0xffffd86bffffdda3}, + {0x9837a538, 0xffffd86bffffdda4}, + {0x9837a539, 0xffffd86bffffdda5}, + {0x9837a630, 0xffffd86bffffdda6}, + {0x9837a631, 0xffffd86bffffdda7}, + {0x9837a632, 0xffffd86bffffdda8}, + {0x9837a633, 0xffffd86bffffdda9}, + {0x9837a634, 0xffffd86bffffddaa}, + {0x9837a635, 0xffffd86bffffddab}, + {0x9837a636, 0xffffd86bffffddac}, + {0x9837a637, 0xffffd86bffffddad}, + {0x9837a638, 0xffffd86bffffddae}, + {0x9837a639, 0xffffd86bffffddaf}, + {0x9837a730, 0xffffd86bffffddb0}, + {0x9837a731, 0xffffd86bffffddb1}, + {0x9837a732, 0xffffd86bffffddb2}, + {0x9837a733, 0xffffd86bffffddb3}, + {0x9837a734, 0xffffd86bffffddb4}, + {0x9837a735, 0xffffd86bffffddb5}, + {0x9837a736, 0xffffd86bffffddb6}, + {0x9837a737, 0xffffd86bffffddb7}, + {0x9837a738, 0xffffd86bffffddb8}, + {0x9837a739, 0xffffd86bffffddb9}, + {0x9837a830, 0xffffd86bffffddba}, + {0x9837a831, 0xffffd86bffffddbb}, + {0x9837a832, 0xffffd86bffffddbc}, + {0x9837a833, 0xffffd86bffffddbd}, + {0x9837a834, 0xffffd86bffffddbe}, + {0x9837a835, 0xffffd86bffffddbf}, + {0x9837a836, 0xffffd86bffffddc0}, + {0x9837a837, 0xffffd86bffffddc1}, + {0x9837a838, 0xffffd86bffffddc2}, + {0x9837a839, 0xffffd86bffffddc3}, + {0x9837a930, 0xffffd86bffffddc4}, + {0x9837a931, 0xffffd86bffffddc5}, + {0x9837a932, 0xffffd86bffffddc6}, + {0x9837a933, 0xffffd86bffffddc7}, + {0x9837a934, 0xffffd86bffffddc8}, + {0x9837a935, 0xffffd86bffffddc9}, + {0x9837a936, 0xffffd86bffffddca}, + {0x9837a937, 0xffffd86bffffddcb}, + {0x9837a938, 0xffffd86bffffddcc}, + {0x9837a939, 0xffffd86bffffddcd}, + {0x9837aa30, 0xffffd86bffffddce}, + {0x9837aa31, 0xffffd86bffffddcf}, + {0x9837aa32, 0xffffd86bffffddd0}, + {0x9837aa33, 0xffffd86bffffddd1}, + {0x9837aa34, 0xffffd86bffffddd2}, + {0x9837aa35, 0xffffd86bffffddd3}, + {0x9837aa36, 0xffffd86bffffddd4}, + {0x9837aa37, 0xffffd86bffffddd5}, + {0x9837aa38, 0xffffd86bffffddd6}, + {0x9837aa39, 0xffffd86bffffddd7}, + {0x9837ab30, 0xffffd86bffffddd8}, + {0x9837ab31, 0xffffd86bffffddd9}, + {0x9837ab32, 0xffffd86bffffddda}, + {0x9837ab33, 0xffffd86bffffdddb}, + {0x9837ab34, 0xffffd86bffffdddc}, + {0x9837ab35, 0xffffd86bffffdddd}, + {0x9837ab36, 0xffffd86bffffddde}, + {0x9837ab37, 0xffffd86bffffdddf}, + {0x9837ab38, 0xffffd86bffffdde0}, + {0x9837ab39, 0xffffd86bffffdde1}, + {0x9837ac30, 0xffffd86bffffdde2}, + {0x9837ac31, 0xffffd86bffffdde3}, + {0x9837ac32, 0xffffd86bffffdde4}, + {0x9837ac33, 0xffffd86bffffdde5}, + {0x9837ac34, 0xffffd86bffffdde6}, + {0x9837ac35, 0xffffd86bffffdde7}, + {0x9837ac36, 0xffffd86bffffdde8}, + {0x9837ac37, 0xffffd86bffffdde9}, + {0x9837ac38, 0xffffd86bffffddea}, + {0x9837ac39, 0xffffd86bffffddeb}, + {0x9837ad30, 0xffffd86bffffddec}, + {0x9837ad31, 0xffffd86bffffdded}, + {0x9837ad32, 0xffffd86bffffddee}, + {0x9837ad33, 0xffffd86bffffddef}, + {0x9837ad34, 0xffffd86bffffddf0}, + {0x9837ad35, 0xffffd86bffffddf1}, + {0x9837ad36, 0xffffd86bffffddf2}, + {0x9837ad37, 0xffffd86bffffddf3}, + {0x9837ad38, 0xffffd86bffffddf4}, + {0x9837ad39, 0xffffd86bffffddf5}, + {0x9837ae30, 0xffffd86bffffddf6}, + {0x9837ae31, 0xffffd86bffffddf7}, + {0x9837ae32, 0xffffd86bffffddf8}, + {0x9837ae33, 0xffffd86bffffddf9}, + {0x9837ae34, 0xffffd86bffffddfa}, + {0x9837ae35, 0xffffd86bffffddfb}, + {0x9837ae36, 0xffffd86bffffddfc}, + {0x9837ae37, 0xffffd86bffffddfd}, + {0x9837ae38, 0xffffd86bffffddfe}, + {0x9837ae39, 0xffffd86bffffddff}, + {0x9837af30, 0xffffd86bffffde00}, + {0x9837af31, 0xffffd86bffffde01}, + {0x9837af32, 0xffffd86bffffde02}, + {0x9837af33, 0xffffd86bffffde03}, + {0x9837af34, 0xffffd86bffffde04}, + {0x9837af35, 0xffffd86bffffde05}, + {0x9837af36, 0xffffd86bffffde06}, + {0x9837af37, 0xffffd86bffffde07}, + {0x9837af38, 0xffffd86bffffde08}, + {0x9837af39, 0xffffd86bffffde09}, + {0x9837b030, 0xffffd86bffffde0a}, + {0x9837b031, 0xffffd86bffffde0b}, + {0x9837b032, 0xffffd86bffffde0c}, + {0x9837b033, 0xffffd86bffffde0d}, + {0x9837b034, 0xffffd86bffffde0e}, + {0x9837b035, 0xffffd86bffffde0f}, + {0x9837b036, 0xffffd86bffffde10}, + {0x9837b037, 0xffffd86bffffde11}, + {0x9837b038, 0xffffd86bffffde12}, + {0x9837b039, 0xffffd86bffffde13}, + {0x9837b130, 0xffffd86bffffde14}, + {0x9837b131, 0xffffd86bffffde15}, + {0x9837b132, 0xffffd86bffffde16}, + {0x9837b133, 0xffffd86bffffde17}, + {0x9837b134, 0xffffd86bffffde18}, + {0x9837b135, 0xffffd86bffffde19}, + {0x9837b136, 0xffffd86bffffde1a}, + {0x9837b137, 0xffffd86bffffde1b}, + {0x9837b138, 0xffffd86bffffde1c}, + {0x9837b139, 0xffffd86bffffde1d}, + {0x9837b230, 0xffffd86bffffde1e}, + {0x9837b231, 0xffffd86bffffde1f}, + {0x9837b232, 0xffffd86bffffde20}, + {0x9837b233, 0xffffd86bffffde21}, + {0x9837b234, 0xffffd86bffffde22}, + {0x9837b235, 0xffffd86bffffde23}, + {0x9837b236, 0xffffd86bffffde24}, + {0x9837b237, 0xffffd86bffffde25}, + {0x9837b238, 0xffffd86bffffde26}, + {0x9837b239, 0xffffd86bffffde27}, + {0x9837b330, 0xffffd86bffffde28}, + {0x9837b331, 0xffffd86bffffde29}, + {0x9837b332, 0xffffd86bffffde2a}, + {0x9837b333, 0xffffd86bffffde2b}, + {0x9837b334, 0xffffd86bffffde2c}, + {0x9837b335, 0xffffd86bffffde2d}, + {0x9837b336, 0xffffd86bffffde2e}, + {0x9837b337, 0xffffd86bffffde2f}, + {0x9837b338, 0xffffd86bffffde30}, + {0x9837b339, 0xffffd86bffffde31}, + {0x9837b430, 0xffffd86bffffde32}, + {0x9837b431, 0xffffd86bffffde33}, + {0x9837b432, 0xffffd86bffffde34}, + {0x9837b433, 0xffffd86bffffde35}, + {0x9837b434, 0xffffd86bffffde36}, + {0x9837b435, 0xffffd86bffffde37}, + {0x9837b436, 0xffffd86bffffde38}, + {0x9837b437, 0xffffd86bffffde39}, + {0x9837b438, 0xffffd86bffffde3a}, + {0x9837b439, 0xffffd86bffffde3b}, + {0x9837b530, 0xffffd86bffffde3c}, + {0x9837b531, 0xffffd86bffffde3d}, + {0x9837b532, 0xffffd86bffffde3e}, + {0x9837b533, 0xffffd86bffffde3f}, + {0x9837b534, 0xffffd86bffffde40}, + {0x9837b535, 0xffffd86bffffde41}, + {0x9837b536, 0xffffd86bffffde42}, + {0x9837b537, 0xffffd86bffffde43}, + {0x9837b538, 0xffffd86bffffde44}, + {0x9837b539, 0xffffd86bffffde45}, + {0x9837b630, 0xffffd86bffffde46}, + {0x9837b631, 0xffffd86bffffde47}, + {0x9837b632, 0xffffd86bffffde48}, + {0x9837b633, 0xffffd86bffffde49}, + {0x9837b634, 0xffffd86bffffde4a}, + {0x9837b635, 0xffffd86bffffde4b}, + {0x9837b636, 0xffffd86bffffde4c}, + {0x9837b637, 0xffffd86bffffde4d}, + {0x9837b638, 0xffffd86bffffde4e}, + {0x9837b639, 0xffffd86bffffde4f}, + {0x9837b730, 0xffffd86bffffde50}, + {0x9837b731, 0xffffd86bffffde51}, + {0x9837b732, 0xffffd86bffffde52}, + {0x9837b733, 0xffffd86bffffde53}, + {0x9837b734, 0xffffd86bffffde54}, + {0x9837b735, 0xffffd86bffffde55}, + {0x9837b736, 0xffffd86bffffde56}, + {0x9837b737, 0xffffd86bffffde57}, + {0x9837b738, 0xffffd86bffffde58}, + {0x9837b739, 0xffffd86bffffde59}, + {0x9837b830, 0xffffd86bffffde5a}, + {0x9837b831, 0xffffd86bffffde5b}, + {0x9837b832, 0xffffd86bffffde5c}, + {0x9837b833, 0xffffd86bffffde5d}, + {0x9837b834, 0xffffd86bffffde5e}, + {0x9837b835, 0xffffd86bffffde5f}, + {0x9837b836, 0xffffd86bffffde60}, + {0x9837b837, 0xffffd86bffffde61}, + {0x9837b838, 0xffffd86bffffde62}, + {0x9837b839, 0xffffd86bffffde63}, + {0x9837b930, 0xffffd86bffffde64}, + {0x9837b931, 0xffffd86bffffde65}, + {0x9837b932, 0xffffd86bffffde66}, + {0x9837b933, 0xffffd86bffffde67}, + {0x9837b934, 0xffffd86bffffde68}, + {0x9837b935, 0xffffd86bffffde69}, + {0x9837b936, 0xffffd86bffffde6a}, + {0x9837b937, 0xffffd86bffffde6b}, + {0x9837b938, 0xffffd86bffffde6c}, + {0x9837b939, 0xffffd86bffffde6d}, + {0x9837ba30, 0xffffd86bffffde6e}, + {0x9837ba31, 0xffffd86bffffde6f}, + {0x9837ba32, 0xffffd86bffffde70}, + {0x9837ba33, 0xffffd86bffffde71}, + {0x9837ba34, 0xffffd86bffffde72}, + {0x9837ba35, 0xffffd86bffffde73}, + {0x9837ba36, 0xffffd86bffffde74}, + {0x9837ba37, 0xffffd86bffffde75}, + {0x9837ba38, 0xffffd86bffffde76}, + {0x9837ba39, 0xffffd86bffffde77}, + {0x9837bb30, 0xffffd86bffffde78}, + {0x9837bb31, 0xffffd86bffffde79}, + {0x9837bb32, 0xffffd86bffffde7a}, + {0x9837bb33, 0xffffd86bffffde7b}, + {0x9837bb34, 0xffffd86bffffde7c}, + {0x9837bb35, 0xffffd86bffffde7d}, + {0x9837bb36, 0xffffd86bffffde7e}, + {0x9837bb37, 0xffffd86bffffde7f}, + {0x9837bb38, 0xffffd86bffffde80}, + {0x9837bb39, 0xffffd86bffffde81}, + {0x9837bc30, 0xffffd86bffffde82}, + {0x9837bc31, 0xffffd86bffffde83}, + {0x9837bc32, 0xffffd86bffffde84}, + {0x9837bc33, 0xffffd86bffffde85}, + {0x9837bc34, 0xffffd86bffffde86}, + {0x9837bc35, 0xffffd86bffffde87}, + {0x9837bc36, 0xffffd86bffffde88}, + {0x9837bc37, 0xffffd86bffffde89}, + {0x9837bc38, 0xffffd86bffffde8a}, + {0x9837bc39, 0xffffd86bffffde8b}, + {0x9837bd30, 0xffffd86bffffde8c}, + {0x9837bd31, 0xffffd86bffffde8d}, + {0x9837bd32, 0xffffd86bffffde8e}, + {0x9837bd33, 0xffffd86bffffde8f}, + {0x9837bd34, 0xffffd86bffffde90}, + {0x9837bd35, 0xffffd86bffffde91}, + {0x9837bd36, 0xffffd86bffffde92}, + {0x9837bd37, 0xffffd86bffffde93}, + {0x9837bd38, 0xffffd86bffffde94}, + {0x9837bd39, 0xffffd86bffffde95}, + {0x9837be30, 0xffffd86bffffde96}, + {0x9837be31, 0xffffd86bffffde97}, + {0x9837be32, 0xffffd86bffffde98}, + {0x9837be33, 0xffffd86bffffde99}, + {0x9837be34, 0xffffd86bffffde9a}, + {0x9837be35, 0xffffd86bffffde9b}, + {0x9837be36, 0xffffd86bffffde9c}, + {0x9837be37, 0xffffd86bffffde9d}, + {0x9837be38, 0xffffd86bffffde9e}, + {0x9837be39, 0xffffd86bffffde9f}, + {0x9837bf30, 0xffffd86bffffdea0}, + {0x9837bf31, 0xffffd86bffffdea1}, + {0x9837bf32, 0xffffd86bffffdea2}, + {0x9837bf33, 0xffffd86bffffdea3}, + {0x9837bf34, 0xffffd86bffffdea4}, + {0x9837bf35, 0xffffd86bffffdea5}, + {0x9837bf36, 0xffffd86bffffdea6}, + {0x9837bf37, 0xffffd86bffffdea7}, + {0x9837bf38, 0xffffd86bffffdea8}, + {0x9837bf39, 0xffffd86bffffdea9}, + {0x9837c030, 0xffffd86bffffdeaa}, + {0x9837c031, 0xffffd86bffffdeab}, + {0x9837c032, 0xffffd86bffffdeac}, + {0x9837c033, 0xffffd86bffffdead}, + {0x9837c034, 0xffffd86bffffdeae}, + {0x9837c035, 0xffffd86bffffdeaf}, + {0x9837c036, 0xffffd86bffffdeb0}, + {0x9837c037, 0xffffd86bffffdeb1}, + {0x9837c038, 0xffffd86bffffdeb2}, + {0x9837c039, 0xffffd86bffffdeb3}, + {0x9837c130, 0xffffd86bffffdeb4}, + {0x9837c131, 0xffffd86bffffdeb5}, + {0x9837c132, 0xffffd86bffffdeb6}, + {0x9837c133, 0xffffd86bffffdeb7}, + {0x9837c134, 0xffffd86bffffdeb8}, + {0x9837c135, 0xffffd86bffffdeb9}, + {0x9837c136, 0xffffd86bffffdeba}, + {0x9837c137, 0xffffd86bffffdebb}, + {0x9837c138, 0xffffd86bffffdebc}, + {0x9837c139, 0xffffd86bffffdebd}, + {0x9837c230, 0xffffd86bffffdebe}, + {0x9837c231, 0xffffd86bffffdebf}, + {0x9837c232, 0xffffd86bffffdec0}, + {0x9837c233, 0xffffd86bffffdec1}, + {0x9837c234, 0xffffd86bffffdec2}, + {0x9837c235, 0xffffd86bffffdec3}, + {0x9837c236, 0xffffd86bffffdec4}, + {0x9837c237, 0xffffd86bffffdec5}, + {0x9837c238, 0xffffd86bffffdec6}, + {0x9837c239, 0xffffd86bffffdec7}, + {0x9837c330, 0xffffd86bffffdec8}, + {0x9837c331, 0xffffd86bffffdec9}, + {0x9837c332, 0xffffd86bffffdeca}, + {0x9837c333, 0xffffd86bffffdecb}, + {0x9837c334, 0xffffd86bffffdecc}, + {0x9837c335, 0xffffd86bffffdecd}, + {0x9837c336, 0xffffd86bffffdece}, + {0x9837c337, 0xffffd86bffffdecf}, + {0x9837c338, 0xffffd86bffffded0}, + {0x9837c339, 0xffffd86bffffded1}, + {0x9837c430, 0xffffd86bffffded2}, + {0x9837c431, 0xffffd86bffffded3}, + {0x9837c432, 0xffffd86bffffded4}, + {0x9837c433, 0xffffd86bffffded5}, + {0x9837c434, 0xffffd86bffffded6}, + {0x9837c435, 0xffffd86bffffded7}, + {0x9837c436, 0xffffd86bffffded8}, + {0x9837c437, 0xffffd86bffffded9}, + {0x9837c438, 0xffffd86bffffdeda}, + {0x9837c439, 0xffffd86bffffdedb}, + {0x9837c530, 0xffffd86bffffdedc}, + {0x9837c531, 0xffffd86bffffdedd}, + {0x9837c532, 0xffffd86bffffdede}, + {0x9837c533, 0xffffd86bffffdedf}, + {0x9837c534, 0xffffd86bffffdee0}, + {0x9837c535, 0xffffd86bffffdee1}, + {0x9837c536, 0xffffd86bffffdee2}, + {0x9837c537, 0xffffd86bffffdee3}, + {0x9837c538, 0xffffd86bffffdee4}, + {0x9837c539, 0xffffd86bffffdee5}, + {0x9837c630, 0xffffd86bffffdee6}, + {0x9837c631, 0xffffd86bffffdee7}, + {0x9837c632, 0xffffd86bffffdee8}, + {0x9837c633, 0xffffd86bffffdee9}, + {0x9837c634, 0xffffd86bffffdeea}, + {0x9837c635, 0xffffd86bffffdeeb}, + {0x9837c636, 0xffffd86bffffdeec}, + {0x9837c637, 0xffffd86bffffdeed}, + {0x9837c638, 0xffffd86bffffdeee}, + {0x9837c639, 0xffffd86bffffdeef}, + {0x9837c730, 0xffffd86bffffdef0}, + {0x9837c731, 0xffffd86bffffdef1}, + {0x9837c732, 0xffffd86bffffdef2}, + {0x9837c733, 0xffffd86bffffdef3}, + {0x9837c734, 0xffffd86bffffdef4}, + {0x9837c735, 0xffffd86bffffdef5}, + {0x9837c736, 0xffffd86bffffdef6}, + {0x9837c737, 0xffffd86bffffdef7}, + {0x9837c738, 0xffffd86bffffdef8}, + {0x9837c739, 0xffffd86bffffdef9}, + {0x9837c830, 0xffffd86bffffdefa}, + {0x9837c831, 0xffffd86bffffdefb}, + {0x9837c832, 0xffffd86bffffdefc}, + {0x9837c833, 0xffffd86bffffdefd}, + {0x9837c834, 0xffffd86bffffdefe}, + {0x9837c835, 0xffffd86bffffdeff}, + {0x9837c836, 0xffffd86bffffdf00}, + {0x9837c837, 0xffffd86bffffdf01}, + {0x9837c838, 0xffffd86bffffdf02}, + {0x9837c839, 0xffffd86bffffdf03}, + {0x9837c930, 0xffffd86bffffdf04}, + {0x9837c931, 0xffffd86bffffdf05}, + {0x9837c932, 0xffffd86bffffdf06}, + {0x9837c933, 0xffffd86bffffdf07}, + {0x9837c934, 0xffffd86bffffdf08}, + {0x9837c935, 0xffffd86bffffdf09}, + {0x9837c936, 0xffffd86bffffdf0a}, + {0x9837c937, 0xffffd86bffffdf0b}, + {0x9837c938, 0xffffd86bffffdf0c}, + {0x9837c939, 0xffffd86bffffdf0d}, + {0x9837ca30, 0xffffd86bffffdf0e}, + {0x9837ca31, 0xffffd86bffffdf0f}, + {0x9837ca32, 0xffffd86bffffdf10}, + {0x9837ca33, 0xffffd86bffffdf11}, + {0x9837ca34, 0xffffd86bffffdf12}, + {0x9837ca35, 0xffffd86bffffdf13}, + {0x9837ca36, 0xffffd86bffffdf14}, + {0x9837ca37, 0xffffd86bffffdf15}, + {0x9837ca38, 0xffffd86bffffdf16}, + {0x9837ca39, 0xffffd86bffffdf17}, + {0x9837cb30, 0xffffd86bffffdf18}, + {0x9837cb31, 0xffffd86bffffdf19}, + {0x9837cb32, 0xffffd86bffffdf1a}, + {0x9837cb33, 0xffffd86bffffdf1b}, + {0x9837cb34, 0xffffd86bffffdf1c}, + {0x9837cb35, 0xffffd86bffffdf1d}, + {0x9837cb36, 0xffffd86bffffdf1e}, + {0x9837cb37, 0xffffd86bffffdf1f}, + {0x9837cb38, 0xffffd86bffffdf20}, + {0x9837cb39, 0xffffd86bffffdf21}, + {0x9837cc30, 0xffffd86bffffdf22}, + {0x9837cc31, 0xffffd86bffffdf23}, + {0x9837cc32, 0xffffd86bffffdf24}, + {0x9837cc33, 0xffffd86bffffdf25}, + {0x9837cc34, 0xffffd86bffffdf26}, + {0x9837cc35, 0xffffd86bffffdf27}, + {0x9837cc36, 0xffffd86bffffdf28}, + {0x9837cc37, 0xffffd86bffffdf29}, + {0x9837cc38, 0xffffd86bffffdf2a}, + {0x9837cc39, 0xffffd86bffffdf2b}, + {0x9837cd30, 0xffffd86bffffdf2c}, + {0x9837cd31, 0xffffd86bffffdf2d}, + {0x9837cd32, 0xffffd86bffffdf2e}, + {0x9837cd33, 0xffffd86bffffdf2f}, + {0x9837cd34, 0xffffd86bffffdf30}, + {0x9837cd35, 0xffffd86bffffdf31}, + {0x9837cd36, 0xffffd86bffffdf32}, + {0x9837cd37, 0xffffd86bffffdf33}, + {0x9837cd38, 0xffffd86bffffdf34}, + {0x9837cd39, 0xffffd86bffffdf35}, + {0x9837ce30, 0xffffd86bffffdf36}, + {0x9837ce31, 0xffffd86bffffdf37}, + {0x9837ce32, 0xffffd86bffffdf38}, + {0x9837ce33, 0xffffd86bffffdf39}, + {0x9837ce34, 0xffffd86bffffdf3a}, + {0x9837ce35, 0xffffd86bffffdf3b}, + {0x9837ce36, 0xffffd86bffffdf3c}, + {0x9837ce37, 0xffffd86bffffdf3d}, + {0x9837ce38, 0xffffd86bffffdf3e}, + {0x9837ce39, 0xffffd86bffffdf3f}, + {0x9837cf30, 0xffffd86bffffdf40}, + {0x9837cf31, 0xffffd86bffffdf41}, + {0x9837cf32, 0xffffd86bffffdf42}, + {0x9837cf33, 0xffffd86bffffdf43}, + {0x9837cf34, 0xffffd86bffffdf44}, + {0x9837cf35, 0xffffd86bffffdf45}, + {0x9837cf36, 0xffffd86bffffdf46}, + {0x9837cf37, 0xffffd86bffffdf47}, + {0x9837cf38, 0xffffd86bffffdf48}, + {0x9837cf39, 0xffffd86bffffdf49}, + {0x9837d030, 0xffffd86bffffdf4a}, + {0x9837d031, 0xffffd86bffffdf4b}, + {0x9837d032, 0xffffd86bffffdf4c}, + {0x9837d033, 0xffffd86bffffdf4d}, + {0x9837d034, 0xffffd86bffffdf4e}, + {0x9837d035, 0xffffd86bffffdf4f}, + {0x9837d036, 0xffffd86bffffdf50}, + {0x9837d037, 0xffffd86bffffdf51}, + {0x9837d038, 0xffffd86bffffdf52}, + {0x9837d039, 0xffffd86bffffdf53}, + {0x9837d130, 0xffffd86bffffdf54}, + {0x9837d131, 0xffffd86bffffdf55}, + {0x9837d132, 0xffffd86bffffdf56}, + {0x9837d133, 0xffffd86bffffdf57}, + {0x9837d134, 0xffffd86bffffdf58}, + {0x9837d135, 0xffffd86bffffdf59}, + {0x9837d136, 0xffffd86bffffdf5a}, + {0x9837d137, 0xffffd86bffffdf5b}, + {0x9837d138, 0xffffd86bffffdf5c}, + {0x9837d139, 0xffffd86bffffdf5d}, + {0x9837d230, 0xffffd86bffffdf5e}, + {0x9837d231, 0xffffd86bffffdf5f}, + {0x9837d232, 0xffffd86bffffdf60}, + {0x9837d233, 0xffffd86bffffdf61}, + {0x9837d234, 0xffffd86bffffdf62}, + {0x9837d235, 0xffffd86bffffdf63}, + {0x9837d236, 0xffffd86bffffdf64}, + {0x9837d237, 0xffffd86bffffdf65}, + {0x9837d238, 0xffffd86bffffdf66}, + {0x9837d239, 0xffffd86bffffdf67}, + {0x9837d330, 0xffffd86bffffdf68}, + {0x9837d331, 0xffffd86bffffdf69}, + {0x9837d332, 0xffffd86bffffdf6a}, + {0x9837d333, 0xffffd86bffffdf6b}, + {0x9837d334, 0xffffd86bffffdf6c}, + {0x9837d335, 0xffffd86bffffdf6d}, + {0x9837d336, 0xffffd86bffffdf6e}, + {0x9837d337, 0xffffd86bffffdf6f}, + {0x9837d338, 0xffffd86bffffdf70}, + {0x9837d339, 0xffffd86bffffdf71}, + {0x9837d430, 0xffffd86bffffdf72}, + {0x9837d431, 0xffffd86bffffdf73}, + {0x9837d432, 0xffffd86bffffdf74}, + {0x9837d433, 0xffffd86bffffdf75}, + {0x9837d434, 0xffffd86bffffdf76}, + {0x9837d435, 0xffffd86bffffdf77}, + {0x9837d436, 0xffffd86bffffdf78}, + {0x9837d437, 0xffffd86bffffdf79}, + {0x9837d438, 0xffffd86bffffdf7a}, + {0x9837d439, 0xffffd86bffffdf7b}, + {0x9837d530, 0xffffd86bffffdf7c}, + {0x9837d531, 0xffffd86bffffdf7d}, + {0x9837d532, 0xffffd86bffffdf7e}, + {0x9837d533, 0xffffd86bffffdf7f}, + {0x9837d534, 0xffffd86bffffdf80}, + {0x9837d535, 0xffffd86bffffdf81}, + {0x9837d536, 0xffffd86bffffdf82}, + {0x9837d537, 0xffffd86bffffdf83}, + {0x9837d538, 0xffffd86bffffdf84}, + {0x9837d539, 0xffffd86bffffdf85}, + {0x9837d630, 0xffffd86bffffdf86}, + {0x9837d631, 0xffffd86bffffdf87}, + {0x9837d632, 0xffffd86bffffdf88}, + {0x9837d633, 0xffffd86bffffdf89}, + {0x9837d634, 0xffffd86bffffdf8a}, + {0x9837d635, 0xffffd86bffffdf8b}, + {0x9837d636, 0xffffd86bffffdf8c}, + {0x9837d637, 0xffffd86bffffdf8d}, + {0x9837d638, 0xffffd86bffffdf8e}, + {0x9837d639, 0xffffd86bffffdf8f}, + {0x9837d730, 0xffffd86bffffdf90}, + {0x9837d731, 0xffffd86bffffdf91}, + {0x9837d732, 0xffffd86bffffdf92}, + {0x9837d733, 0xffffd86bffffdf93}, + {0x9837d734, 0xffffd86bffffdf94}, + {0x9837d735, 0xffffd86bffffdf95}, + {0x9837d736, 0xffffd86bffffdf96}, + {0x9837d737, 0xffffd86bffffdf97}, + {0x9837d738, 0xffffd86bffffdf98}, + {0x9837d739, 0xffffd86bffffdf99}, + {0x9837d830, 0xffffd86bffffdf9a}, + {0x9837d831, 0xffffd86bffffdf9b}, + {0x9837d832, 0xffffd86bffffdf9c}, + {0x9837d833, 0xffffd86bffffdf9d}, + {0x9837d834, 0xffffd86bffffdf9e}, + {0x9837d835, 0xffffd86bffffdf9f}, + {0x9837d836, 0xffffd86bffffdfa0}, + {0x9837d837, 0xffffd86bffffdfa1}, + {0x9837d838, 0xffffd86bffffdfa2}, + {0x9837d839, 0xffffd86bffffdfa3}, + {0x9837d930, 0xffffd86bffffdfa4}, + {0x9837d931, 0xffffd86bffffdfa5}, + {0x9837d932, 0xffffd86bffffdfa6}, + {0x9837d933, 0xffffd86bffffdfa7}, + {0x9837d934, 0xffffd86bffffdfa8}, + {0x9837d935, 0xffffd86bffffdfa9}, + {0x9837d936, 0xffffd86bffffdfaa}, + {0x9837d937, 0xffffd86bffffdfab}, + {0x9837d938, 0xffffd86bffffdfac}, + {0x9837d939, 0xffffd86bffffdfad}, + {0x9837da30, 0xffffd86bffffdfae}, + {0x9837da31, 0xffffd86bffffdfaf}, + {0x9837da32, 0xffffd86bffffdfb0}, + {0x9837da33, 0xffffd86bffffdfb1}, + {0x9837da34, 0xffffd86bffffdfb2}, + {0x9837da35, 0xffffd86bffffdfb3}, + {0x9837da36, 0xffffd86bffffdfb4}, + {0x9837da37, 0xffffd86bffffdfb5}, + {0x9837da38, 0xffffd86bffffdfb6}, + {0x9837da39, 0xffffd86bffffdfb7}, + {0x9837db30, 0xffffd86bffffdfb8}, + {0x9837db31, 0xffffd86bffffdfb9}, + {0x9837db32, 0xffffd86bffffdfba}, + {0x9837db33, 0xffffd86bffffdfbb}, + {0x9837db34, 0xffffd86bffffdfbc}, + {0x9837db35, 0xffffd86bffffdfbd}, + {0x9837db36, 0xffffd86bffffdfbe}, + {0x9837db37, 0xffffd86bffffdfbf}, + {0x9837db38, 0xffffd86bffffdfc0}, + {0x9837db39, 0xffffd86bffffdfc1}, + {0x9837dc30, 0xffffd86bffffdfc2}, + {0x9837dc31, 0xffffd86bffffdfc3}, + {0x9837dc32, 0xffffd86bffffdfc4}, + {0x9837dc33, 0xffffd86bffffdfc5}, + {0x9837dc34, 0xffffd86bffffdfc6}, + {0x9837dc35, 0xffffd86bffffdfc7}, + {0x9837dc36, 0xffffd86bffffdfc8}, + {0x9837dc37, 0xffffd86bffffdfc9}, + {0x9837dc38, 0xffffd86bffffdfca}, + {0x9837dc39, 0xffffd86bffffdfcb}, + {0x9837dd30, 0xffffd86bffffdfcc}, + {0x9837dd31, 0xffffd86bffffdfcd}, + {0x9837dd32, 0xffffd86bffffdfce}, + {0x9837dd33, 0xffffd86bffffdfcf}, + {0x9837dd34, 0xffffd86bffffdfd0}, + {0x9837dd35, 0xffffd86bffffdfd1}, + {0x9837dd36, 0xffffd86bffffdfd2}, + {0x9837dd37, 0xffffd86bffffdfd3}, + {0x9837dd38, 0xffffd86bffffdfd4}, + {0x9837dd39, 0xffffd86bffffdfd5}, + {0x9837de30, 0xffffd86bffffdfd6}, + {0x9837de31, 0xffffd86bffffdfd7}, + {0x9837de32, 0xffffd86bffffdfd8}, + {0x9837de33, 0xffffd86bffffdfd9}, + {0x9837de34, 0xffffd86bffffdfda}, + {0x9837de35, 0xffffd86bffffdfdb}, + {0x9837de36, 0xffffd86bffffdfdc}, + {0x9837de37, 0xffffd86bffffdfdd}, + {0x9837de38, 0xffffd86bffffdfde}, + {0x9837de39, 0xffffd86bffffdfdf}, + {0x9837df30, 0xffffd86bffffdfe0}, + {0x9837df31, 0xffffd86bffffdfe1}, + {0x9837df32, 0xffffd86bffffdfe2}, + {0x9837df33, 0xffffd86bffffdfe3}, + {0x9837df34, 0xffffd86bffffdfe4}, + {0x9837df35, 0xffffd86bffffdfe5}, + {0x9837df36, 0xffffd86bffffdfe6}, + {0x9837df37, 0xffffd86bffffdfe7}, + {0x9837df38, 0xffffd86bffffdfe8}, + {0x9837df39, 0xffffd86bffffdfe9}, + {0x9837e030, 0xffffd86bffffdfea}, + {0x9837e031, 0xffffd86bffffdfeb}, + {0x9837e032, 0xffffd86bffffdfec}, + {0x9837e033, 0xffffd86bffffdfed}, + {0x9837e034, 0xffffd86bffffdfee}, + {0x9837e035, 0xffffd86bffffdfef}, + {0x9837e036, 0xffffd86bffffdff0}, + {0x9837e037, 0xffffd86bffffdff1}, + {0x9837e038, 0xffffd86bffffdff2}, + {0x9837e039, 0xffffd86bffffdff3}, + {0x9837e130, 0xffffd86bffffdff4}, + {0x9837e131, 0xffffd86bffffdff5}, + {0x9837e132, 0xffffd86bffffdff6}, + {0x9837e133, 0xffffd86bffffdff7}, + {0x9837e134, 0xffffd86bffffdff8}, + {0x9837e135, 0xffffd86bffffdff9}, + {0x9837e136, 0xffffd86bffffdffa}, + {0x9837e137, 0xffffd86bffffdffb}, + {0x9837e138, 0xffffd86bffffdffc}, + {0x9837e139, 0xffffd86bffffdffd}, + {0x9837e230, 0xffffd86bffffdffe}, + {0x9837e231, 0xffffd86bffffdfff}, + {0x9837e232, 0xffffd86cffffdc00}, + {0x9837e233, 0xffffd86cffffdc01}, + {0x9837e234, 0xffffd86cffffdc02}, + {0x9837e235, 0xffffd86cffffdc03}, + {0x9837e236, 0xffffd86cffffdc04}, + {0x9837e237, 0xffffd86cffffdc05}, + {0x9837e238, 0xffffd86cffffdc06}, + {0x9837e239, 0xffffd86cffffdc07}, + {0x9837e330, 0xffffd86cffffdc08}, + {0x9837e331, 0xffffd86cffffdc09}, + {0x9837e332, 0xffffd86cffffdc0a}, + {0x9837e333, 0xffffd86cffffdc0b}, + {0x9837e334, 0xffffd86cffffdc0c}, + {0x9837e335, 0xffffd86cffffdc0d}, + {0x9837e336, 0xffffd86cffffdc0e}, + {0x9837e337, 0xffffd86cffffdc0f}, + {0x9837e338, 0xffffd86cffffdc10}, + {0x9837e339, 0xffffd86cffffdc11}, + {0x9837e430, 0xffffd86cffffdc12}, + {0x9837e431, 0xffffd86cffffdc13}, + {0x9837e432, 0xffffd86cffffdc14}, + {0x9837e433, 0xffffd86cffffdc15}, + {0x9837e434, 0xffffd86cffffdc16}, + {0x9837e435, 0xffffd86cffffdc17}, + {0x9837e436, 0xffffd86cffffdc18}, + {0x9837e437, 0xffffd86cffffdc19}, + {0x9837e438, 0xffffd86cffffdc1a}, + {0x9837e439, 0xffffd86cffffdc1b}, + {0x9837e530, 0xffffd86cffffdc1c}, + {0x9837e531, 0xffffd86cffffdc1d}, + {0x9837e532, 0xffffd86cffffdc1e}, + {0x9837e533, 0xffffd86cffffdc1f}, + {0x9837e534, 0xffffd86cffffdc20}, + {0x9837e535, 0xffffd86cffffdc21}, + {0x9837e536, 0xffffd86cffffdc22}, + {0x9837e537, 0xffffd86cffffdc23}, + {0x9837e538, 0xffffd86cffffdc24}, + {0x9837e539, 0xffffd86cffffdc25}, + {0x9837e630, 0xffffd86cffffdc26}, + {0x9837e631, 0xffffd86cffffdc27}, + {0x9837e632, 0xffffd86cffffdc28}, + {0x9837e633, 0xffffd86cffffdc29}, + {0x9837e634, 0xffffd86cffffdc2a}, + {0x9837e635, 0xffffd86cffffdc2b}, + {0x9837e636, 0xffffd86cffffdc2c}, + {0x9837e637, 0xffffd86cffffdc2d}, + {0x9837e638, 0xffffd86cffffdc2e}, + {0x9837e639, 0xffffd86cffffdc2f}, + {0x9837e730, 0xffffd86cffffdc30}, + {0x9837e731, 0xffffd86cffffdc31}, + {0x9837e732, 0xffffd86cffffdc32}, + {0x9837e733, 0xffffd86cffffdc33}, + {0x9837e734, 0xffffd86cffffdc34}, + {0x9837e735, 0xffffd86cffffdc35}, + {0x9837e736, 0xffffd86cffffdc36}, + {0x9837e737, 0xffffd86cffffdc37}, + {0x9837e738, 0xffffd86cffffdc38}, + {0x9837e739, 0xffffd86cffffdc39}, + {0x9837e830, 0xffffd86cffffdc3a}, + {0x9837e831, 0xffffd86cffffdc3b}, + {0x9837e832, 0xffffd86cffffdc3c}, + {0x9837e833, 0xffffd86cffffdc3d}, + {0x9837e834, 0xffffd86cffffdc3e}, + {0x9837e835, 0xffffd86cffffdc3f}, + {0x9837e836, 0xffffd86cffffdc40}, + {0x9837e837, 0xffffd86cffffdc41}, + {0x9837e838, 0xffffd86cffffdc42}, + {0x9837e839, 0xffffd86cffffdc43}, + {0x9837e930, 0xffffd86cffffdc44}, + {0x9837e931, 0xffffd86cffffdc45}, + {0x9837e932, 0xffffd86cffffdc46}, + {0x9837e933, 0xffffd86cffffdc47}, + {0x9837e934, 0xffffd86cffffdc48}, + {0x9837e935, 0xffffd86cffffdc49}, + {0x9837e936, 0xffffd86cffffdc4a}, + {0x9837e937, 0xffffd86cffffdc4b}, + {0x9837e938, 0xffffd86cffffdc4c}, + {0x9837e939, 0xffffd86cffffdc4d}, + {0x9837ea30, 0xffffd86cffffdc4e}, + {0x9837ea31, 0xffffd86cffffdc4f}, + {0x9837ea32, 0xffffd86cffffdc50}, + {0x9837ea33, 0xffffd86cffffdc51}, + {0x9837ea34, 0xffffd86cffffdc52}, + {0x9837ea35, 0xffffd86cffffdc53}, + {0x9837ea36, 0xffffd86cffffdc54}, + {0x9837ea37, 0xffffd86cffffdc55}, + {0x9837ea38, 0xffffd86cffffdc56}, + {0x9837ea39, 0xffffd86cffffdc57}, + {0x9837eb30, 0xffffd86cffffdc58}, + {0x9837eb31, 0xffffd86cffffdc59}, + {0x9837eb32, 0xffffd86cffffdc5a}, + {0x9837eb33, 0xffffd86cffffdc5b}, + {0x9837eb34, 0xffffd86cffffdc5c}, + {0x9837eb35, 0xffffd86cffffdc5d}, + {0x9837eb36, 0xffffd86cffffdc5e}, + {0x9837eb37, 0xffffd86cffffdc5f}, + {0x9837eb38, 0xffffd86cffffdc60}, + {0x9837eb39, 0xffffd86cffffdc61}, + {0x9837ec30, 0xffffd86cffffdc62}, + {0x9837ec31, 0xffffd86cffffdc63}, + {0x9837ec32, 0xffffd86cffffdc64}, + {0x9837ec33, 0xffffd86cffffdc65}, + {0x9837ec34, 0xffffd86cffffdc66}, + {0x9837ec35, 0xffffd86cffffdc67}, + {0x9837ec36, 0xffffd86cffffdc68}, + {0x9837ec37, 0xffffd86cffffdc69}, + {0x9837ec38, 0xffffd86cffffdc6a}, + {0x9837ec39, 0xffffd86cffffdc6b}, + {0x9837ed30, 0xffffd86cffffdc6c}, + {0x9837ed31, 0xffffd86cffffdc6d}, + {0x9837ed32, 0xffffd86cffffdc6e}, + {0x9837ed33, 0xffffd86cffffdc6f}, + {0x9837ed34, 0xffffd86cffffdc70}, + {0x9837ed35, 0xffffd86cffffdc71}, + {0x9837ed36, 0xffffd86cffffdc72}, + {0x9837ed37, 0xffffd86cffffdc73}, + {0x9837ed38, 0xffffd86cffffdc74}, + {0x9837ed39, 0xffffd86cffffdc75}, + {0x9837ee30, 0xffffd86cffffdc76}, + {0x9837ee31, 0xffffd86cffffdc77}, + {0x9837ee32, 0xffffd86cffffdc78}, + {0x9837ee33, 0xffffd86cffffdc79}, + {0x9837ee34, 0xffffd86cffffdc7a}, + {0x9837ee35, 0xffffd86cffffdc7b}, + {0x9837ee36, 0xffffd86cffffdc7c}, + {0x9837ee37, 0xffffd86cffffdc7d}, + {0x9837ee38, 0xffffd86cffffdc7e}, + {0x9837ee39, 0xffffd86cffffdc7f}, + {0x9837ef30, 0xffffd86cffffdc80}, + {0x9837ef31, 0xffffd86cffffdc81}, + {0x9837ef32, 0xffffd86cffffdc82}, + {0x9837ef33, 0xffffd86cffffdc83}, + {0x9837ef34, 0xffffd86cffffdc84}, + {0x9837ef35, 0xffffd86cffffdc85}, + {0x9837ef36, 0xffffd86cffffdc86}, + {0x9837ef37, 0xffffd86cffffdc87}, + {0x9837ef38, 0xffffd86cffffdc88}, + {0x9837ef39, 0xffffd86cffffdc89}, + {0x9837f030, 0xffffd86cffffdc8a}, + {0x9837f031, 0xffffd86cffffdc8b}, + {0x9837f032, 0xffffd86cffffdc8c}, + {0x9837f033, 0xffffd86cffffdc8d}, + {0x9837f034, 0xffffd86cffffdc8e}, + {0x9837f035, 0xffffd86cffffdc8f}, + {0x9837f036, 0xffffd86cffffdc90}, + {0x9837f037, 0xffffd86cffffdc91}, + {0x9837f038, 0xffffd86cffffdc92}, + {0x9837f039, 0xffffd86cffffdc93}, + {0x9837f130, 0xffffd86cffffdc94}, + {0x9837f131, 0xffffd86cffffdc95}, + {0x9837f132, 0xffffd86cffffdc96}, + {0x9837f133, 0xffffd86cffffdc97}, + {0x9837f134, 0xffffd86cffffdc98}, + {0x9837f135, 0xffffd86cffffdc99}, + {0x9837f136, 0xffffd86cffffdc9a}, + {0x9837f137, 0xffffd86cffffdc9b}, + {0x9837f138, 0xffffd86cffffdc9c}, + {0x9837f139, 0xffffd86cffffdc9d}, + {0x9837f230, 0xffffd86cffffdc9e}, + {0x9837f231, 0xffffd86cffffdc9f}, + {0x9837f232, 0xffffd86cffffdca0}, + {0x9837f233, 0xffffd86cffffdca1}, + {0x9837f234, 0xffffd86cffffdca2}, + {0x9837f235, 0xffffd86cffffdca3}, + {0x9837f236, 0xffffd86cffffdca4}, + {0x9837f237, 0xffffd86cffffdca5}, + {0x9837f238, 0xffffd86cffffdca6}, + {0x9837f239, 0xffffd86cffffdca7}, + {0x9837f330, 0xffffd86cffffdca8}, + {0x9837f331, 0xffffd86cffffdca9}, + {0x9837f332, 0xffffd86cffffdcaa}, + {0x9837f333, 0xffffd86cffffdcab}, + {0x9837f334, 0xffffd86cffffdcac}, + {0x9837f335, 0xffffd86cffffdcad}, + {0x9837f336, 0xffffd86cffffdcae}, + {0x9837f337, 0xffffd86cffffdcaf}, + {0x9837f338, 0xffffd86cffffdcb0}, + {0x9837f339, 0xffffd86cffffdcb1}, + {0x9837f430, 0xffffd86cffffdcb2}, + {0x9837f431, 0xffffd86cffffdcb3}, + {0x9837f432, 0xffffd86cffffdcb4}, + {0x9837f433, 0xffffd86cffffdcb5}, + {0x9837f434, 0xffffd86cffffdcb6}, + {0x9837f435, 0xffffd86cffffdcb7}, + {0x9837f436, 0xffffd86cffffdcb8}, + {0x9837f437, 0xffffd86cffffdcb9}, + {0x9837f438, 0xffffd86cffffdcba}, + {0x9837f439, 0xffffd86cffffdcbb}, + {0x9837f530, 0xffffd86cffffdcbc}, + {0x9837f531, 0xffffd86cffffdcbd}, + {0x9837f532, 0xffffd86cffffdcbe}, + {0x9837f533, 0xffffd86cffffdcbf}, + {0x9837f534, 0xffffd86cffffdcc0}, + {0x9837f535, 0xffffd86cffffdcc1}, + {0x9837f536, 0xffffd86cffffdcc2}, + {0x9837f537, 0xffffd86cffffdcc3}, + {0x9837f538, 0xffffd86cffffdcc4}, + {0x9837f539, 0xffffd86cffffdcc5}, + {0x9837f630, 0xffffd86cffffdcc6}, + {0x9837f631, 0xffffd86cffffdcc7}, + {0x9837f632, 0xffffd86cffffdcc8}, + {0x9837f633, 0xffffd86cffffdcc9}, + {0x9837f634, 0xffffd86cffffdcca}, + {0x9837f635, 0xffffd86cffffdccb}, + {0x9837f636, 0xffffd86cffffdccc}, + {0x9837f637, 0xffffd86cffffdccd}, + {0x9837f638, 0xffffd86cffffdcce}, + {0x9837f639, 0xffffd86cffffdccf}, + {0x9837f730, 0xffffd86cffffdcd0}, + {0x9837f731, 0xffffd86cffffdcd1}, + {0x9837f732, 0xffffd86cffffdcd2}, + {0x9837f733, 0xffffd86cffffdcd3}, + {0x9837f734, 0xffffd86cffffdcd4}, + {0x9837f735, 0xffffd86cffffdcd5}, + {0x9837f736, 0xffffd86cffffdcd6}, + {0x9837f737, 0xffffd86cffffdcd7}, + {0x9837f738, 0xffffd86cffffdcd8}, + {0x9837f739, 0xffffd86cffffdcd9}, + {0x9837f830, 0xffffd86cffffdcda}, + {0x9837f831, 0xffffd86cffffdcdb}, + {0x9837f832, 0xffffd86cffffdcdc}, + {0x9837f833, 0xffffd86cffffdcdd}, + {0x9837f834, 0xffffd86cffffdcde}, + {0x9837f835, 0xffffd86cffffdcdf}, + {0x9837f836, 0xffffd86cffffdce0}, + {0x9837f837, 0xffffd86cffffdce1}, + {0x9837f838, 0xffffd86cffffdce2}, + {0x9837f839, 0xffffd86cffffdce3}, + {0x9837f930, 0xffffd86cffffdce4}, + {0x9837f931, 0xffffd86cffffdce5}, + {0x9837f932, 0xffffd86cffffdce6}, + {0x9837f933, 0xffffd86cffffdce7}, + {0x9837f934, 0xffffd86cffffdce8}, + {0x9837f935, 0xffffd86cffffdce9}, + {0x9837f936, 0xffffd86cffffdcea}, + {0x9837f937, 0xffffd86cffffdceb}, + {0x9837f938, 0xffffd86cffffdcec}, + {0x9837f939, 0xffffd86cffffdced}, + {0x9837fa30, 0xffffd86cffffdcee}, + {0x9837fa31, 0xffffd86cffffdcef}, + {0x9837fa32, 0xffffd86cffffdcf0}, + {0x9837fa33, 0xffffd86cffffdcf1}, + {0x9837fa34, 0xffffd86cffffdcf2}, + {0x9837fa35, 0xffffd86cffffdcf3}, + {0x9837fa36, 0xffffd86cffffdcf4}, + {0x9837fa37, 0xffffd86cffffdcf5}, + {0x9837fa38, 0xffffd86cffffdcf6}, + {0x9837fa39, 0xffffd86cffffdcf7}, + {0x9837fb30, 0xffffd86cffffdcf8}, + {0x9837fb31, 0xffffd86cffffdcf9}, + {0x9837fb32, 0xffffd86cffffdcfa}, + {0x9837fb33, 0xffffd86cffffdcfb}, + {0x9837fb34, 0xffffd86cffffdcfc}, + {0x9837fb35, 0xffffd86cffffdcfd}, + {0x9837fb36, 0xffffd86cffffdcfe}, + {0x9837fb37, 0xffffd86cffffdcff}, + {0x9837fb38, 0xffffd86cffffdd00}, + {0x9837fb39, 0xffffd86cffffdd01}, + {0x9837fc30, 0xffffd86cffffdd02}, + {0x9837fc31, 0xffffd86cffffdd03}, + {0x9837fc32, 0xffffd86cffffdd04}, + {0x9837fc33, 0xffffd86cffffdd05}, + {0x9837fc34, 0xffffd86cffffdd06}, + {0x9837fc35, 0xffffd86cffffdd07}, + {0x9837fc36, 0xffffd86cffffdd08}, + {0x9837fc37, 0xffffd86cffffdd09}, + {0x9837fc38, 0xffffd86cffffdd0a}, + {0x9837fc39, 0xffffd86cffffdd0b}, + {0x9837fd30, 0xffffd86cffffdd0c}, + {0x9837fd31, 0xffffd86cffffdd0d}, + {0x9837fd32, 0xffffd86cffffdd0e}, + {0x9837fd33, 0xffffd86cffffdd0f}, + {0x9837fd34, 0xffffd86cffffdd10}, + {0x9837fd35, 0xffffd86cffffdd11}, + {0x9837fd36, 0xffffd86cffffdd12}, + {0x9837fd37, 0xffffd86cffffdd13}, + {0x9837fd38, 0xffffd86cffffdd14}, + {0x9837fd39, 0xffffd86cffffdd15}, + {0x9837fe30, 0xffffd86cffffdd16}, + {0x9837fe31, 0xffffd86cffffdd17}, + {0x9837fe32, 0xffffd86cffffdd18}, + {0x9837fe33, 0xffffd86cffffdd19}, + {0x9837fe34, 0xffffd86cffffdd1a}, + {0x9837fe35, 0xffffd86cffffdd1b}, + {0x9837fe36, 0xffffd86cffffdd1c}, + {0x9837fe37, 0xffffd86cffffdd1d}, + {0x9837fe38, 0xffffd86cffffdd1e}, + {0x9837fe39, 0xffffd86cffffdd1f}, + {0x98388130, 0xffffd86cffffdd20}, + {0x98388131, 0xffffd86cffffdd21}, + {0x98388132, 0xffffd86cffffdd22}, + {0x98388133, 0xffffd86cffffdd23}, + {0x98388134, 0xffffd86cffffdd24}, + {0x98388135, 0xffffd86cffffdd25}, + {0x98388136, 0xffffd86cffffdd26}, + {0x98388137, 0xffffd86cffffdd27}, + {0x98388138, 0xffffd86cffffdd28}, + {0x98388139, 0xffffd86cffffdd29}, + {0x98388230, 0xffffd86cffffdd2a}, + {0x98388231, 0xffffd86cffffdd2b}, + {0x98388232, 0xffffd86cffffdd2c}, + {0x98388233, 0xffffd86cffffdd2d}, + {0x98388234, 0xffffd86cffffdd2e}, + {0x98388235, 0xffffd86cffffdd2f}, + {0x98388236, 0xffffd86cffffdd30}, + {0x98388237, 0xffffd86cffffdd31}, + {0x98388238, 0xffffd86cffffdd32}, + {0x98388239, 0xffffd86cffffdd33}, + {0x98388330, 0xffffd86cffffdd34}, + {0x98388331, 0xffffd86cffffdd35}, + {0x98388332, 0xffffd86cffffdd36}, + {0x98388333, 0xffffd86cffffdd37}, + {0x98388334, 0xffffd86cffffdd38}, + {0x98388335, 0xffffd86cffffdd39}, + {0x98388336, 0xffffd86cffffdd3a}, + {0x98388337, 0xffffd86cffffdd3b}, + {0x98388338, 0xffffd86cffffdd3c}, + {0x98388339, 0xffffd86cffffdd3d}, + {0x98388430, 0xffffd86cffffdd3e}, + {0x98388431, 0xffffd86cffffdd3f}, + {0x98388432, 0xffffd86cffffdd40}, + {0x98388433, 0xffffd86cffffdd41}, + {0x98388434, 0xffffd86cffffdd42}, + {0x98388435, 0xffffd86cffffdd43}, + {0x98388436, 0xffffd86cffffdd44}, + {0x98388437, 0xffffd86cffffdd45}, + {0x98388438, 0xffffd86cffffdd46}, + {0x98388439, 0xffffd86cffffdd47}, + {0x98388530, 0xffffd86cffffdd48}, + {0x98388531, 0xffffd86cffffdd49}, + {0x98388532, 0xffffd86cffffdd4a}, + {0x98388533, 0xffffd86cffffdd4b}, + {0x98388534, 0xffffd86cffffdd4c}, + {0x98388535, 0xffffd86cffffdd4d}, + {0x98388536, 0xffffd86cffffdd4e}, + {0x98388537, 0xffffd86cffffdd4f}, + {0x98388538, 0xffffd86cffffdd50}, + {0x98388539, 0xffffd86cffffdd51}, + {0x98388630, 0xffffd86cffffdd52}, + {0x98388631, 0xffffd86cffffdd53}, + {0x98388632, 0xffffd86cffffdd54}, + {0x98388633, 0xffffd86cffffdd55}, + {0x98388634, 0xffffd86cffffdd56}, + {0x98388635, 0xffffd86cffffdd57}, + {0x98388636, 0xffffd86cffffdd58}, + {0x98388637, 0xffffd86cffffdd59}, + {0x98388638, 0xffffd86cffffdd5a}, + {0x98388639, 0xffffd86cffffdd5b}, + {0x98388730, 0xffffd86cffffdd5c}, + {0x98388731, 0xffffd86cffffdd5d}, + {0x98388732, 0xffffd86cffffdd5e}, + {0x98388733, 0xffffd86cffffdd5f}, + {0x98388734, 0xffffd86cffffdd60}, + {0x98388735, 0xffffd86cffffdd61}, + {0x98388736, 0xffffd86cffffdd62}, + {0x98388737, 0xffffd86cffffdd63}, + {0x98388738, 0xffffd86cffffdd64}, + {0x98388739, 0xffffd86cffffdd65}, + {0x98388830, 0xffffd86cffffdd66}, + {0x98388831, 0xffffd86cffffdd67}, + {0x98388832, 0xffffd86cffffdd68}, + {0x98388833, 0xffffd86cffffdd69}, + {0x98388834, 0xffffd86cffffdd6a}, + {0x98388835, 0xffffd86cffffdd6b}, + {0x98388836, 0xffffd86cffffdd6c}, + {0x98388837, 0xffffd86cffffdd6d}, + {0x98388838, 0xffffd86cffffdd6e}, + {0x98388839, 0xffffd86cffffdd6f}, + {0x98388930, 0xffffd86cffffdd70}, + {0x98388931, 0xffffd86cffffdd71}, + {0x98388932, 0xffffd86cffffdd72}, + {0x98388933, 0xffffd86cffffdd73}, + {0x98388934, 0xffffd86cffffdd74}, + {0x98388935, 0xffffd86cffffdd75}, + {0x98388936, 0xffffd86cffffdd76}, + {0x98388937, 0xffffd86cffffdd77}, + {0x98388938, 0xffffd86cffffdd78}, + {0x98388939, 0xffffd86cffffdd79}, + {0x98388a30, 0xffffd86cffffdd7a}, + {0x98388a31, 0xffffd86cffffdd7b}, + {0x98388a32, 0xffffd86cffffdd7c}, + {0x98388a33, 0xffffd86cffffdd7d}, + {0x98388a34, 0xffffd86cffffdd7e}, + {0x98388a35, 0xffffd86cffffdd7f}, + {0x98388a36, 0xffffd86cffffdd80}, + {0x98388a37, 0xffffd86cffffdd81}, + {0x98388a38, 0xffffd86cffffdd82}, + {0x98388a39, 0xffffd86cffffdd83}, + {0x98388b30, 0xffffd86cffffdd84}, + {0x98388b31, 0xffffd86cffffdd85}, + {0x98388b32, 0xffffd86cffffdd86}, + {0x98388b33, 0xffffd86cffffdd87}, + {0x98388b34, 0xffffd86cffffdd88}, + {0x98388b35, 0xffffd86cffffdd89}, + {0x98388b36, 0xffffd86cffffdd8a}, + {0x98388b37, 0xffffd86cffffdd8b}, + {0x98388b38, 0xffffd86cffffdd8c}, + {0x98388b39, 0xffffd86cffffdd8d}, + {0x98388c30, 0xffffd86cffffdd8e}, + {0x98388c31, 0xffffd86cffffdd8f}, + {0x98388c32, 0xffffd86cffffdd90}, + {0x98388c33, 0xffffd86cffffdd91}, + {0x98388c34, 0xffffd86cffffdd92}, + {0x98388c35, 0xffffd86cffffdd93}, + {0x98388c36, 0xffffd86cffffdd94}, + {0x98388c37, 0xffffd86cffffdd95}, + {0x98388c38, 0xffffd86cffffdd96}, + {0x98388c39, 0xffffd86cffffdd97}, + {0x98388d30, 0xffffd86cffffdd98}, + {0x98388d31, 0xffffd86cffffdd99}, + {0x98388d32, 0xffffd86cffffdd9a}, + {0x98388d33, 0xffffd86cffffdd9b}, + {0x98388d34, 0xffffd86cffffdd9c}, + {0x98388d35, 0xffffd86cffffdd9d}, + {0x98388d36, 0xffffd86cffffdd9e}, + {0x98388d37, 0xffffd86cffffdd9f}, + {0x98388d38, 0xffffd86cffffdda0}, + {0x98388d39, 0xffffd86cffffdda1}, + {0x98388e30, 0xffffd86cffffdda2}, + {0x98388e31, 0xffffd86cffffdda3}, + {0x98388e32, 0xffffd86cffffdda4}, + {0x98388e33, 0xffffd86cffffdda5}, + {0x98388e34, 0xffffd86cffffdda6}, + {0x98388e35, 0xffffd86cffffdda7}, + {0x98388e36, 0xffffd86cffffdda8}, + {0x98388e37, 0xffffd86cffffdda9}, + {0x98388e38, 0xffffd86cffffddaa}, + {0x98388e39, 0xffffd86cffffddab}, + {0x98388f30, 0xffffd86cffffddac}, + {0x98388f31, 0xffffd86cffffddad}, + {0x98388f32, 0xffffd86cffffddae}, + {0x98388f33, 0xffffd86cffffddaf}, + {0x98388f34, 0xffffd86cffffddb0}, + {0x98388f35, 0xffffd86cffffddb1}, + {0x98388f36, 0xffffd86cffffddb2}, + {0x98388f37, 0xffffd86cffffddb3}, + {0x98388f38, 0xffffd86cffffddb4}, + {0x98388f39, 0xffffd86cffffddb5}, + {0x98389030, 0xffffd86cffffddb6}, + {0x98389031, 0xffffd86cffffddb7}, + {0x98389032, 0xffffd86cffffddb8}, + {0x98389033, 0xffffd86cffffddb9}, + {0x98389034, 0xffffd86cffffddba}, + {0x98389035, 0xffffd86cffffddbb}, + {0x98389036, 0xffffd86cffffddbc}, + {0x98389037, 0xffffd86cffffddbd}, + {0x98389038, 0xffffd86cffffddbe}, + {0x98389039, 0xffffd86cffffddbf}, + {0x98389130, 0xffffd86cffffddc0}, + {0x98389131, 0xffffd86cffffddc1}, + {0x98389132, 0xffffd86cffffddc2}, + {0x98389133, 0xffffd86cffffddc3}, + {0x98389134, 0xffffd86cffffddc4}, + {0x98389135, 0xffffd86cffffddc5}, + {0x98389136, 0xffffd86cffffddc6}, + {0x98389137, 0xffffd86cffffddc7}, + {0x98389138, 0xffffd86cffffddc8}, + {0x98389139, 0xffffd86cffffddc9}, + {0x98389230, 0xffffd86cffffddca}, + {0x98389231, 0xffffd86cffffddcb}, + {0x98389232, 0xffffd86cffffddcc}, + {0x98389233, 0xffffd86cffffddcd}, + {0x98389234, 0xffffd86cffffddce}, + {0x98389235, 0xffffd86cffffddcf}, + {0x98389236, 0xffffd86cffffddd0}, + {0x98389237, 0xffffd86cffffddd1}, + {0x98389238, 0xffffd86cffffddd2}, + {0x98389239, 0xffffd86cffffddd3}, + {0x98389330, 0xffffd86cffffddd4}, + {0x98389331, 0xffffd86cffffddd5}, + {0x98389332, 0xffffd86cffffddd6}, + {0x98389333, 0xffffd86cffffddd7}, + {0x98389334, 0xffffd86cffffddd8}, + {0x98389335, 0xffffd86cffffddd9}, + {0x98389336, 0xffffd86cffffddda}, + {0x98389337, 0xffffd86cffffdddb}, + {0x98389338, 0xffffd86cffffdddc}, + {0x98389339, 0xffffd86cffffdddd}, + {0x98389430, 0xffffd86cffffddde}, + {0x98389431, 0xffffd86cffffdddf}, + {0x98389432, 0xffffd86cffffdde0}, + {0x98389433, 0xffffd86cffffdde1}, + {0x98389434, 0xffffd86cffffdde2}, + {0x98389435, 0xffffd86cffffdde3}, + {0x98389436, 0xffffd86cffffdde4}, + {0x98389437, 0xffffd86cffffdde5}, + {0x98389438, 0xffffd86cffffdde6}, + {0x98389439, 0xffffd86cffffdde7}, + {0x98389530, 0xffffd86cffffdde8}, + {0x98389531, 0xffffd86cffffdde9}, + {0x98389532, 0xffffd86cffffddea}, + {0x98389533, 0xffffd86cffffddeb}, + {0x98389534, 0xffffd86cffffddec}, + {0x98389535, 0xffffd86cffffdded}, + {0x98389536, 0xffffd86cffffddee}, + {0x98389537, 0xffffd86cffffddef}, + {0x98389538, 0xffffd86cffffddf0}, + {0x98389539, 0xffffd86cffffddf1}, + {0x98389630, 0xffffd86cffffddf2}, + {0x98389631, 0xffffd86cffffddf3}, + {0x98389632, 0xffffd86cffffddf4}, + {0x98389633, 0xffffd86cffffddf5}, + {0x98389634, 0xffffd86cffffddf6}, + {0x98389635, 0xffffd86cffffddf7}, + {0x98389636, 0xffffd86cffffddf8}, + {0x98389637, 0xffffd86cffffddf9}, + {0x98389638, 0xffffd86cffffddfa}, + {0x98389639, 0xffffd86cffffddfb}, + {0x98389730, 0xffffd86cffffddfc}, + {0x98389731, 0xffffd86cffffddfd}, + {0x98389732, 0xffffd86cffffddfe}, + {0x98389733, 0xffffd86cffffddff}, + {0x98389734, 0xffffd86cffffde00}, + {0x98389735, 0xffffd86cffffde01}, + {0x98389736, 0xffffd86cffffde02}, + {0x98389737, 0xffffd86cffffde03}, + {0x98389738, 0xffffd86cffffde04}, + {0x98389739, 0xffffd86cffffde05}, + {0x98389830, 0xffffd86cffffde06}, + {0x98389831, 0xffffd86cffffde07}, + {0x98389832, 0xffffd86cffffde08}, + {0x98389833, 0xffffd86cffffde09}, + {0x98389834, 0xffffd86cffffde0a}, + {0x98389835, 0xffffd86cffffde0b}, + {0x98389836, 0xffffd86cffffde0c}, + {0x98389837, 0xffffd86cffffde0d}, + {0x98389838, 0xffffd86cffffde0e}, + {0x98389839, 0xffffd86cffffde0f}, + {0x98389930, 0xffffd86cffffde10}, + {0x98389931, 0xffffd86cffffde11}, + {0x98389932, 0xffffd86cffffde12}, + {0x98389933, 0xffffd86cffffde13}, + {0x98389934, 0xffffd86cffffde14}, + {0x98389935, 0xffffd86cffffde15}, + {0x98389936, 0xffffd86cffffde16}, + {0x98389937, 0xffffd86cffffde17}, + {0x98389938, 0xffffd86cffffde18}, + {0x98389939, 0xffffd86cffffde19}, + {0x98389a30, 0xffffd86cffffde1a}, + {0x98389a31, 0xffffd86cffffde1b}, + {0x98389a32, 0xffffd86cffffde1c}, + {0x98389a33, 0xffffd86cffffde1d}, + {0x98389a34, 0xffffd86cffffde1e}, + {0x98389a35, 0xffffd86cffffde1f}, + {0x98389a36, 0xffffd86cffffde20}, + {0x98389a37, 0xffffd86cffffde21}, + {0x98389a38, 0xffffd86cffffde22}, + {0x98389a39, 0xffffd86cffffde23}, + {0x98389b30, 0xffffd86cffffde24}, + {0x98389b31, 0xffffd86cffffde25}, + {0x98389b32, 0xffffd86cffffde26}, + {0x98389b33, 0xffffd86cffffde27}, + {0x98389b34, 0xffffd86cffffde28}, + {0x98389b35, 0xffffd86cffffde29}, + {0x98389b36, 0xffffd86cffffde2a}, + {0x98389b37, 0xffffd86cffffde2b}, + {0x98389b38, 0xffffd86cffffde2c}, + {0x98389b39, 0xffffd86cffffde2d}, + {0x98389c30, 0xffffd86cffffde2e}, + {0x98389c31, 0xffffd86cffffde2f}, + {0x98389c32, 0xffffd86cffffde30}, + {0x98389c33, 0xffffd86cffffde31}, + {0x98389c34, 0xffffd86cffffde32}, + {0x98389c35, 0xffffd86cffffde33}, + {0x98389c36, 0xffffd86cffffde34}, + {0x98389c37, 0xffffd86cffffde35}, + {0x98389c38, 0xffffd86cffffde36}, + {0x98389c39, 0xffffd86cffffde37}, + {0x98389d30, 0xffffd86cffffde38}, + {0x98389d31, 0xffffd86cffffde39}, + {0x98389d32, 0xffffd86cffffde3a}, + {0x98389d33, 0xffffd86cffffde3b}, + {0x98389d34, 0xffffd86cffffde3c}, + {0x98389d35, 0xffffd86cffffde3d}, + {0x98389d36, 0xffffd86cffffde3e}, + {0x98389d37, 0xffffd86cffffde3f}, + {0x98389d38, 0xffffd86cffffde40}, + {0x98389d39, 0xffffd86cffffde41}, + {0x98389e30, 0xffffd86cffffde42}, + {0x98389e31, 0xffffd86cffffde43}, + {0x98389e32, 0xffffd86cffffde44}, + {0x98389e33, 0xffffd86cffffde45}, + {0x98389e34, 0xffffd86cffffde46}, + {0x98389e35, 0xffffd86cffffde47}, + {0x98389e36, 0xffffd86cffffde48}, + {0x98389e37, 0xffffd86cffffde49}, + {0x98389e38, 0xffffd86cffffde4a}, + {0x98389e39, 0xffffd86cffffde4b}, + {0x98389f30, 0xffffd86cffffde4c}, + {0x98389f31, 0xffffd86cffffde4d}, + {0x98389f32, 0xffffd86cffffde4e}, + {0x98389f33, 0xffffd86cffffde4f}, + {0x98389f34, 0xffffd86cffffde50}, + {0x98389f35, 0xffffd86cffffde51}, + {0x98389f36, 0xffffd86cffffde52}, + {0x98389f37, 0xffffd86cffffde53}, + {0x98389f38, 0xffffd86cffffde54}, + {0x98389f39, 0xffffd86cffffde55}, + {0x9838a030, 0xffffd86cffffde56}, + {0x9838a031, 0xffffd86cffffde57}, + {0x9838a032, 0xffffd86cffffde58}, + {0x9838a033, 0xffffd86cffffde59}, + {0x9838a034, 0xffffd86cffffde5a}, + {0x9838a035, 0xffffd86cffffde5b}, + {0x9838a036, 0xffffd86cffffde5c}, + {0x9838a037, 0xffffd86cffffde5d}, + {0x9838a038, 0xffffd86cffffde5e}, + {0x9838a039, 0xffffd86cffffde5f}, + {0x9838a130, 0xffffd86cffffde60}, + {0x9838a131, 0xffffd86cffffde61}, + {0x9838a132, 0xffffd86cffffde62}, + {0x9838a133, 0xffffd86cffffde63}, + {0x9838a134, 0xffffd86cffffde64}, + {0x9838a135, 0xffffd86cffffde65}, + {0x9838a136, 0xffffd86cffffde66}, + {0x9838a137, 0xffffd86cffffde67}, + {0x9838a138, 0xffffd86cffffde68}, + {0x9838a139, 0xffffd86cffffde69}, + {0x9838a230, 0xffffd86cffffde6a}, + {0x9838a231, 0xffffd86cffffde6b}, + {0x9838a232, 0xffffd86cffffde6c}, + {0x9838a233, 0xffffd86cffffde6d}, + {0x9838a234, 0xffffd86cffffde6e}, + {0x9838a235, 0xffffd86cffffde6f}, + {0x9838a236, 0xffffd86cffffde70}, + {0x9838a237, 0xffffd86cffffde71}, + {0x9838a238, 0xffffd86cffffde72}, + {0x9838a239, 0xffffd86cffffde73}, + {0x9838a330, 0xffffd86cffffde74}, + {0x9838a331, 0xffffd86cffffde75}, + {0x9838a332, 0xffffd86cffffde76}, + {0x9838a333, 0xffffd86cffffde77}, + {0x9838a334, 0xffffd86cffffde78}, + {0x9838a335, 0xffffd86cffffde79}, + {0x9838a336, 0xffffd86cffffde7a}, + {0x9838a337, 0xffffd86cffffde7b}, + {0x9838a338, 0xffffd86cffffde7c}, + {0x9838a339, 0xffffd86cffffde7d}, + {0x9838a430, 0xffffd86cffffde7e}, + {0x9838a431, 0xffffd86cffffde7f}, + {0x9838a432, 0xffffd86cffffde80}, + {0x9838a433, 0xffffd86cffffde81}, + {0x9838a434, 0xffffd86cffffde82}, + {0x9838a435, 0xffffd86cffffde83}, + {0x9838a436, 0xffffd86cffffde84}, + {0x9838a437, 0xffffd86cffffde85}, + {0x9838a438, 0xffffd86cffffde86}, + {0x9838a439, 0xffffd86cffffde87}, + {0x9838a530, 0xffffd86cffffde88}, + {0x9838a531, 0xffffd86cffffde89}, + {0x9838a532, 0xffffd86cffffde8a}, + {0x9838a533, 0xffffd86cffffde8b}, + {0x9838a534, 0xffffd86cffffde8c}, + {0x9838a535, 0xffffd86cffffde8d}, + {0x9838a536, 0xffffd86cffffde8e}, + {0x9838a537, 0xffffd86cffffde8f}, + {0x9838a538, 0xffffd86cffffde90}, + {0x9838a539, 0xffffd86cffffde91}, + {0x9838a630, 0xffffd86cffffde92}, + {0x9838a631, 0xffffd86cffffde93}, + {0x9838a632, 0xffffd86cffffde94}, + {0x9838a633, 0xffffd86cffffde95}, + {0x9838a634, 0xffffd86cffffde96}, + {0x9838a635, 0xffffd86cffffde97}, + {0x9838a636, 0xffffd86cffffde98}, + {0x9838a637, 0xffffd86cffffde99}, + {0x9838a638, 0xffffd86cffffde9a}, + {0x9838a639, 0xffffd86cffffde9b}, + {0x9838a730, 0xffffd86cffffde9c}, + {0x9838a731, 0xffffd86cffffde9d}, + {0x9838a732, 0xffffd86cffffde9e}, + {0x9838a733, 0xffffd86cffffde9f}, + {0x9838a734, 0xffffd86cffffdea0}, + {0x9838a735, 0xffffd86cffffdea1}, + {0x9838a736, 0xffffd86cffffdea2}, + {0x9838a737, 0xffffd86cffffdea3}, + {0x9838a738, 0xffffd86cffffdea4}, + {0x9838a739, 0xffffd86cffffdea5}, + {0x9838a830, 0xffffd86cffffdea6}, + {0x9838a831, 0xffffd86cffffdea7}, + {0x9838a832, 0xffffd86cffffdea8}, + {0x9838a833, 0xffffd86cffffdea9}, + {0x9838a834, 0xffffd86cffffdeaa}, + {0x9838a835, 0xffffd86cffffdeab}, + {0x9838a836, 0xffffd86cffffdeac}, + {0x9838a837, 0xffffd86cffffdead}, + {0x9838a838, 0xffffd86cffffdeae}, + {0x9838a839, 0xffffd86cffffdeaf}, + {0x9838a930, 0xffffd86cffffdeb0}, + {0x9838a931, 0xffffd86cffffdeb1}, + {0x9838a932, 0xffffd86cffffdeb2}, + {0x9838a933, 0xffffd86cffffdeb3}, + {0x9838a934, 0xffffd86cffffdeb4}, + {0x9838a935, 0xffffd86cffffdeb5}, + {0x9838a936, 0xffffd86cffffdeb6}, + {0x9838a937, 0xffffd86cffffdeb7}, + {0x9838a938, 0xffffd86cffffdeb8}, + {0x9838a939, 0xffffd86cffffdeb9}, + {0x9838aa30, 0xffffd86cffffdeba}, + {0x9838aa31, 0xffffd86cffffdebb}, + {0x9838aa32, 0xffffd86cffffdebc}, + {0x9838aa33, 0xffffd86cffffdebd}, + {0x9838aa34, 0xffffd86cffffdebe}, + {0x9838aa35, 0xffffd86cffffdebf}, + {0x9838aa36, 0xffffd86cffffdec0}, + {0x9838aa37, 0xffffd86cffffdec1}, + {0x9838aa38, 0xffffd86cffffdec2}, + {0x9838aa39, 0xffffd86cffffdec3}, + {0x9838ab30, 0xffffd86cffffdec4}, + {0x9838ab31, 0xffffd86cffffdec5}, + {0x9838ab32, 0xffffd86cffffdec6}, + {0x9838ab33, 0xffffd86cffffdec7}, + {0x9838ab34, 0xffffd86cffffdec8}, + {0x9838ab35, 0xffffd86cffffdec9}, + {0x9838ab36, 0xffffd86cffffdeca}, + {0x9838ab37, 0xffffd86cffffdecb}, + {0x9838ab38, 0xffffd86cffffdecc}, + {0x9838ab39, 0xffffd86cffffdecd}, + {0x9838ac30, 0xffffd86cffffdece}, + {0x9838ac31, 0xffffd86cffffdecf}, + {0x9838ac32, 0xffffd86cffffded0}, + {0x9838ac33, 0xffffd86cffffded1}, + {0x9838ac34, 0xffffd86cffffded2}, + {0x9838ac35, 0xffffd86cffffded3}, + {0x9838ac36, 0xffffd86cffffded4}, + {0x9838ac37, 0xffffd86cffffded5}, + {0x9838ac38, 0xffffd86cffffded6}, + {0x9838ac39, 0xffffd86cffffded7}, + {0x9838ad30, 0xffffd86cffffded8}, + {0x9838ad31, 0xffffd86cffffded9}, + {0x9838ad32, 0xffffd86cffffdeda}, + {0x9838ad33, 0xffffd86cffffdedb}, + {0x9838ad34, 0xffffd86cffffdedc}, + {0x9838ad35, 0xffffd86cffffdedd}, + {0x9838ad36, 0xffffd86cffffdede}, + {0x9838ad37, 0xffffd86cffffdedf}, + {0x9838ad38, 0xffffd86cffffdee0}, + {0x9838ad39, 0xffffd86cffffdee1}, + {0x9838ae30, 0xffffd86cffffdee2}, + {0x9838ae31, 0xffffd86cffffdee3}, + {0x9838ae32, 0xffffd86cffffdee4}, + {0x9838ae33, 0xffffd86cffffdee5}, + {0x9838ae34, 0xffffd86cffffdee6}, + {0x9838ae35, 0xffffd86cffffdee7}, + {0x9838ae36, 0xffffd86cffffdee8}, + {0x9838ae37, 0xffffd86cffffdee9}, + {0x9838ae38, 0xffffd86cffffdeea}, + {0x9838ae39, 0xffffd86cffffdeeb}, + {0x9838af30, 0xffffd86cffffdeec}, + {0x9838af31, 0xffffd86cffffdeed}, + {0x9838af32, 0xffffd86cffffdeee}, + {0x9838af33, 0xffffd86cffffdeef}, + {0x9838af34, 0xffffd86cffffdef0}, + {0x9838af35, 0xffffd86cffffdef1}, + {0x9838af36, 0xffffd86cffffdef2}, + {0x9838af37, 0xffffd86cffffdef3}, + {0x9838af38, 0xffffd86cffffdef4}, + {0x9838af39, 0xffffd86cffffdef5}, + {0x9838b030, 0xffffd86cffffdef6}, + {0x9838b031, 0xffffd86cffffdef7}, + {0x9838b032, 0xffffd86cffffdef8}, + {0x9838b033, 0xffffd86cffffdef9}, + {0x9838b034, 0xffffd86cffffdefa}, + {0x9838b035, 0xffffd86cffffdefb}, + {0x9838b036, 0xffffd86cffffdefc}, + {0x9838b037, 0xffffd86cffffdefd}, + {0x9838b038, 0xffffd86cffffdefe}, + {0x9838b039, 0xffffd86cffffdeff}, + {0x9838b130, 0xffffd86cffffdf00}, + {0x9838b131, 0xffffd86cffffdf01}, + {0x9838b132, 0xffffd86cffffdf02}, + {0x9838b133, 0xffffd86cffffdf03}, + {0x9838b134, 0xffffd86cffffdf04}, + {0x9838b135, 0xffffd86cffffdf05}, + {0x9838b136, 0xffffd86cffffdf06}, + {0x9838b137, 0xffffd86cffffdf07}, + {0x9838b138, 0xffffd86cffffdf08}, + {0x9838b139, 0xffffd86cffffdf09}, + {0x9838b230, 0xffffd86cffffdf0a}, + {0x9838b231, 0xffffd86cffffdf0b}, + {0x9838b232, 0xffffd86cffffdf0c}, + {0x9838b233, 0xffffd86cffffdf0d}, + {0x9838b234, 0xffffd86cffffdf0e}, + {0x9838b235, 0xffffd86cffffdf0f}, + {0x9838b236, 0xffffd86cffffdf10}, + {0x9838b237, 0xffffd86cffffdf11}, + {0x9838b238, 0xffffd86cffffdf12}, + {0x9838b239, 0xffffd86cffffdf13}, + {0x9838b330, 0xffffd86cffffdf14}, + {0x9838b331, 0xffffd86cffffdf15}, + {0x9838b332, 0xffffd86cffffdf16}, + {0x9838b333, 0xffffd86cffffdf17}, + {0x9838b334, 0xffffd86cffffdf18}, + {0x9838b335, 0xffffd86cffffdf19}, + {0x9838b336, 0xffffd86cffffdf1a}, + {0x9838b337, 0xffffd86cffffdf1b}, + {0x9838b338, 0xffffd86cffffdf1c}, + {0x9838b339, 0xffffd86cffffdf1d}, + {0x9838b430, 0xffffd86cffffdf1e}, + {0x9838b431, 0xffffd86cffffdf1f}, + {0x9838b432, 0xffffd86cffffdf20}, + {0x9838b433, 0xffffd86cffffdf21}, + {0x9838b434, 0xffffd86cffffdf22}, + {0x9838b435, 0xffffd86cffffdf23}, + {0x9838b436, 0xffffd86cffffdf24}, + {0x9838b437, 0xffffd86cffffdf25}, + {0x9838b438, 0xffffd86cffffdf26}, + {0x9838b439, 0xffffd86cffffdf27}, + {0x9838b530, 0xffffd86cffffdf28}, + {0x9838b531, 0xffffd86cffffdf29}, + {0x9838b532, 0xffffd86cffffdf2a}, + {0x9838b533, 0xffffd86cffffdf2b}, + {0x9838b534, 0xffffd86cffffdf2c}, + {0x9838b535, 0xffffd86cffffdf2d}, + {0x9838b536, 0xffffd86cffffdf2e}, + {0x9838b537, 0xffffd86cffffdf2f}, + {0x9838b538, 0xffffd86cffffdf30}, + {0x9838b539, 0xffffd86cffffdf31}, + {0x9838b630, 0xffffd86cffffdf32}, + {0x9838b631, 0xffffd86cffffdf33}, + {0x9838b632, 0xffffd86cffffdf34}, + {0x9838b633, 0xffffd86cffffdf35}, + {0x9838b634, 0xffffd86cffffdf36}, + {0x9838b635, 0xffffd86cffffdf37}, + {0x9838b636, 0xffffd86cffffdf38}, + {0x9838b637, 0xffffd86cffffdf39}, + {0x9838b638, 0xffffd86cffffdf3a}, + {0x9838b639, 0xffffd86cffffdf3b}, + {0x9838b730, 0xffffd86cffffdf3c}, + {0x9838b731, 0xffffd86cffffdf3d}, + {0x9838b732, 0xffffd86cffffdf3e}, + {0x9838b733, 0xffffd86cffffdf3f}, + {0x9838b734, 0xffffd86cffffdf40}, + {0x9838b735, 0xffffd86cffffdf41}, + {0x9838b736, 0xffffd86cffffdf42}, + {0x9838b737, 0xffffd86cffffdf43}, + {0x9838b738, 0xffffd86cffffdf44}, + {0x9838b739, 0xffffd86cffffdf45}, + {0x9838b830, 0xffffd86cffffdf46}, + {0x9838b831, 0xffffd86cffffdf47}, + {0x9838b832, 0xffffd86cffffdf48}, + {0x9838b833, 0xffffd86cffffdf49}, + {0x9838b834, 0xffffd86cffffdf4a}, + {0x9838b835, 0xffffd86cffffdf4b}, + {0x9838b836, 0xffffd86cffffdf4c}, + {0x9838b837, 0xffffd86cffffdf4d}, + {0x9838b838, 0xffffd86cffffdf4e}, + {0x9838b839, 0xffffd86cffffdf4f}, + {0x9838b930, 0xffffd86cffffdf50}, + {0x9838b931, 0xffffd86cffffdf51}, + {0x9838b932, 0xffffd86cffffdf52}, + {0x9838b933, 0xffffd86cffffdf53}, + {0x9838b934, 0xffffd86cffffdf54}, + {0x9838b935, 0xffffd86cffffdf55}, + {0x9838b936, 0xffffd86cffffdf56}, + {0x9838b937, 0xffffd86cffffdf57}, + {0x9838b938, 0xffffd86cffffdf58}, + {0x9838b939, 0xffffd86cffffdf59}, + {0x9838ba30, 0xffffd86cffffdf5a}, + {0x9838ba31, 0xffffd86cffffdf5b}, + {0x9838ba32, 0xffffd86cffffdf5c}, + {0x9838ba33, 0xffffd86cffffdf5d}, + {0x9838ba34, 0xffffd86cffffdf5e}, + {0x9838ba35, 0xffffd86cffffdf5f}, + {0x9838ba36, 0xffffd86cffffdf60}, + {0x9838ba37, 0xffffd86cffffdf61}, + {0x9838ba38, 0xffffd86cffffdf62}, + {0x9838ba39, 0xffffd86cffffdf63}, + {0x9838bb30, 0xffffd86cffffdf64}, + {0x9838bb31, 0xffffd86cffffdf65}, + {0x9838bb32, 0xffffd86cffffdf66}, + {0x9838bb33, 0xffffd86cffffdf67}, + {0x9838bb34, 0xffffd86cffffdf68}, + {0x9838bb35, 0xffffd86cffffdf69}, + {0x9838bb36, 0xffffd86cffffdf6a}, + {0x9838bb37, 0xffffd86cffffdf6b}, + {0x9838bb38, 0xffffd86cffffdf6c}, + {0x9838bb39, 0xffffd86cffffdf6d}, + {0x9838bc30, 0xffffd86cffffdf6e}, + {0x9838bc31, 0xffffd86cffffdf6f}, + {0x9838bc32, 0xffffd86cffffdf70}, + {0x9838bc33, 0xffffd86cffffdf71}, + {0x9838bc34, 0xffffd86cffffdf72}, + {0x9838bc35, 0xffffd86cffffdf73}, + {0x9838bc36, 0xffffd86cffffdf74}, + {0x9838bc37, 0xffffd86cffffdf75}, + {0x9838bc38, 0xffffd86cffffdf76}, + {0x9838bc39, 0xffffd86cffffdf77}, + {0x9838bd30, 0xffffd86cffffdf78}, + {0x9838bd31, 0xffffd86cffffdf79}, + {0x9838bd32, 0xffffd86cffffdf7a}, + {0x9838bd33, 0xffffd86cffffdf7b}, + {0x9838bd34, 0xffffd86cffffdf7c}, + {0x9838bd35, 0xffffd86cffffdf7d}, + {0x9838bd36, 0xffffd86cffffdf7e}, + {0x9838bd37, 0xffffd86cffffdf7f}, + {0x9838bd38, 0xffffd86cffffdf80}, + {0x9838bd39, 0xffffd86cffffdf81}, + {0x9838be30, 0xffffd86cffffdf82}, + {0x9838be31, 0xffffd86cffffdf83}, + {0x9838be32, 0xffffd86cffffdf84}, + {0x9838be33, 0xffffd86cffffdf85}, + {0x9838be34, 0xffffd86cffffdf86}, + {0x9838be35, 0xffffd86cffffdf87}, + {0x9838be36, 0xffffd86cffffdf88}, + {0x9838be37, 0xffffd86cffffdf89}, + {0x9838be38, 0xffffd86cffffdf8a}, + {0x9838be39, 0xffffd86cffffdf8b}, + {0x9838bf30, 0xffffd86cffffdf8c}, + {0x9838bf31, 0xffffd86cffffdf8d}, + {0x9838bf32, 0xffffd86cffffdf8e}, + {0x9838bf33, 0xffffd86cffffdf8f}, + {0x9838bf34, 0xffffd86cffffdf90}, + {0x9838bf35, 0xffffd86cffffdf91}, + {0x9838bf36, 0xffffd86cffffdf92}, + {0x9838bf37, 0xffffd86cffffdf93}, + {0x9838bf38, 0xffffd86cffffdf94}, + {0x9838bf39, 0xffffd86cffffdf95}, + {0x9838c030, 0xffffd86cffffdf96}, + {0x9838c031, 0xffffd86cffffdf97}, + {0x9838c032, 0xffffd86cffffdf98}, + {0x9838c033, 0xffffd86cffffdf99}, + {0x9838c034, 0xffffd86cffffdf9a}, + {0x9838c035, 0xffffd86cffffdf9b}, + {0x9838c036, 0xffffd86cffffdf9c}, + {0x9838c037, 0xffffd86cffffdf9d}, + {0x9838c038, 0xffffd86cffffdf9e}, + {0x9838c039, 0xffffd86cffffdf9f}, + {0x9838c130, 0xffffd86cffffdfa0}, + {0x9838c131, 0xffffd86cffffdfa1}, + {0x9838c132, 0xffffd86cffffdfa2}, + {0x9838c133, 0xffffd86cffffdfa3}, + {0x9838c134, 0xffffd86cffffdfa4}, + {0x9838c135, 0xffffd86cffffdfa5}, + {0x9838c136, 0xffffd86cffffdfa6}, + {0x9838c137, 0xffffd86cffffdfa7}, + {0x9838c138, 0xffffd86cffffdfa8}, + {0x9838c139, 0xffffd86cffffdfa9}, + {0x9838c230, 0xffffd86cffffdfaa}, + {0x9838c231, 0xffffd86cffffdfab}, + {0x9838c232, 0xffffd86cffffdfac}, + {0x9838c233, 0xffffd86cffffdfad}, + {0x9838c234, 0xffffd86cffffdfae}, + {0x9838c235, 0xffffd86cffffdfaf}, + {0x9838c236, 0xffffd86cffffdfb0}, + {0x9838c237, 0xffffd86cffffdfb1}, + {0x9838c238, 0xffffd86cffffdfb2}, + {0x9838c239, 0xffffd86cffffdfb3}, + {0x9838c330, 0xffffd86cffffdfb4}, + {0x9838c331, 0xffffd86cffffdfb5}, + {0x9838c332, 0xffffd86cffffdfb6}, + {0x9838c333, 0xffffd86cffffdfb7}, + {0x9838c334, 0xffffd86cffffdfb8}, + {0x9838c335, 0xffffd86cffffdfb9}, + {0x9838c336, 0xffffd86cffffdfba}, + {0x9838c337, 0xffffd86cffffdfbb}, + {0x9838c338, 0xffffd86cffffdfbc}, + {0x9838c339, 0xffffd86cffffdfbd}, + {0x9838c430, 0xffffd86cffffdfbe}, + {0x9838c431, 0xffffd86cffffdfbf}, + {0x9838c432, 0xffffd86cffffdfc0}, + {0x9838c433, 0xffffd86cffffdfc1}, + {0x9838c434, 0xffffd86cffffdfc2}, + {0x9838c435, 0xffffd86cffffdfc3}, + {0x9838c436, 0xffffd86cffffdfc4}, + {0x9838c437, 0xffffd86cffffdfc5}, + {0x9838c438, 0xffffd86cffffdfc6}, + {0x9838c439, 0xffffd86cffffdfc7}, + {0x9838c530, 0xffffd86cffffdfc8}, + {0x9838c531, 0xffffd86cffffdfc9}, + {0x9838c532, 0xffffd86cffffdfca}, + {0x9838c533, 0xffffd86cffffdfcb}, + {0x9838c534, 0xffffd86cffffdfcc}, + {0x9838c535, 0xffffd86cffffdfcd}, + {0x9838c536, 0xffffd86cffffdfce}, + {0x9838c537, 0xffffd86cffffdfcf}, + {0x9838c538, 0xffffd86cffffdfd0}, + {0x9838c539, 0xffffd86cffffdfd1}, + {0x9838c630, 0xffffd86cffffdfd2}, + {0x9838c631, 0xffffd86cffffdfd3}, + {0x9838c632, 0xffffd86cffffdfd4}, + {0x9838c633, 0xffffd86cffffdfd5}, + {0x9838c634, 0xffffd86cffffdfd6}, + {0x9838c635, 0xffffd86cffffdfd7}, + {0x9838c636, 0xffffd86cffffdfd8}, + {0x9838c637, 0xffffd86cffffdfd9}, + {0x9838c638, 0xffffd86cffffdfda}, + {0x9838c639, 0xffffd86cffffdfdb}, + {0x9838c730, 0xffffd86cffffdfdc}, + {0x9838c731, 0xffffd86cffffdfdd}, + {0x9838c732, 0xffffd86cffffdfde}, + {0x9838c733, 0xffffd86cffffdfdf}, + {0x9838c734, 0xffffd86cffffdfe0}, + {0x9838c735, 0xffffd86cffffdfe1}, + {0x9838c736, 0xffffd86cffffdfe2}, + {0x9838c737, 0xffffd86cffffdfe3}, + {0x9838c738, 0xffffd86cffffdfe4}, + {0x9838c739, 0xffffd86cffffdfe5}, + {0x9838c830, 0xffffd86cffffdfe6}, + {0x9838c831, 0xffffd86cffffdfe7}, + {0x9838c832, 0xffffd86cffffdfe8}, + {0x9838c833, 0xffffd86cffffdfe9}, + {0x9838c834, 0xffffd86cffffdfea}, + {0x9838c835, 0xffffd86cffffdfeb}, + {0x9838c836, 0xffffd86cffffdfec}, + {0x9838c837, 0xffffd86cffffdfed}, + {0x9838c838, 0xffffd86cffffdfee}, + {0x9838c839, 0xffffd86cffffdfef}, + {0x9838c930, 0xffffd86cffffdff0}, + {0x9838c931, 0xffffd86cffffdff1}, + {0x9838c932, 0xffffd86cffffdff2}, + {0x9838c933, 0xffffd86cffffdff3}, + {0x9838c934, 0xffffd86cffffdff4}, + {0x9838c935, 0xffffd86cffffdff5}, + {0x9838c936, 0xffffd86cffffdff6}, + {0x9838c937, 0xffffd86cffffdff7}, + {0x9838c938, 0xffffd86cffffdff8}, + {0x9838c939, 0xffffd86cffffdff9}, + {0x9838ca30, 0xffffd86cffffdffa}, + {0x9838ca31, 0xffffd86cffffdffb}, + {0x9838ca32, 0xffffd86cffffdffc}, + {0x9838ca33, 0xffffd86cffffdffd}, + {0x9838ca34, 0xffffd86cffffdffe}, + {0x9838ca35, 0xffffd86cffffdfff}, + {0x9838ca36, 0xffffd86dffffdc00}, + {0x9838ca37, 0xffffd86dffffdc01}, + {0x9838ca38, 0xffffd86dffffdc02}, + {0x9838ca39, 0xffffd86dffffdc03}, + {0x9838cb30, 0xffffd86dffffdc04}, + {0x9838cb31, 0xffffd86dffffdc05}, + {0x9838cb32, 0xffffd86dffffdc06}, + {0x9838cb33, 0xffffd86dffffdc07}, + {0x9838cb34, 0xffffd86dffffdc08}, + {0x9838cb35, 0xffffd86dffffdc09}, + {0x9838cb36, 0xffffd86dffffdc0a}, + {0x9838cb37, 0xffffd86dffffdc0b}, + {0x9838cb38, 0xffffd86dffffdc0c}, + {0x9838cb39, 0xffffd86dffffdc0d}, + {0x9838cc30, 0xffffd86dffffdc0e}, + {0x9838cc31, 0xffffd86dffffdc0f}, + {0x9838cc32, 0xffffd86dffffdc10}, + {0x9838cc33, 0xffffd86dffffdc11}, + {0x9838cc34, 0xffffd86dffffdc12}, + {0x9838cc35, 0xffffd86dffffdc13}, + {0x9838cc36, 0xffffd86dffffdc14}, + {0x9838cc37, 0xffffd86dffffdc15}, + {0x9838cc38, 0xffffd86dffffdc16}, + {0x9838cc39, 0xffffd86dffffdc17}, + {0x9838cd30, 0xffffd86dffffdc18}, + {0x9838cd31, 0xffffd86dffffdc19}, + {0x9838cd32, 0xffffd86dffffdc1a}, + {0x9838cd33, 0xffffd86dffffdc1b}, + {0x9838cd34, 0xffffd86dffffdc1c}, + {0x9838cd35, 0xffffd86dffffdc1d}, + {0x9838cd36, 0xffffd86dffffdc1e}, + {0x9838cd37, 0xffffd86dffffdc1f}, + {0x9838cd38, 0xffffd86dffffdc20}, + {0x9838cd39, 0xffffd86dffffdc21}, + {0x9838ce30, 0xffffd86dffffdc22}, + {0x9838ce31, 0xffffd86dffffdc23}, + {0x9838ce32, 0xffffd86dffffdc24}, + {0x9838ce33, 0xffffd86dffffdc25}, + {0x9838ce34, 0xffffd86dffffdc26}, + {0x9838ce35, 0xffffd86dffffdc27}, + {0x9838ce36, 0xffffd86dffffdc28}, + {0x9838ce37, 0xffffd86dffffdc29}, + {0x9838ce38, 0xffffd86dffffdc2a}, + {0x9838ce39, 0xffffd86dffffdc2b}, + {0x9838cf30, 0xffffd86dffffdc2c}, + {0x9838cf31, 0xffffd86dffffdc2d}, + {0x9838cf32, 0xffffd86dffffdc2e}, + {0x9838cf33, 0xffffd86dffffdc2f}, + {0x9838cf34, 0xffffd86dffffdc30}, + {0x9838cf35, 0xffffd86dffffdc31}, + {0x9838cf36, 0xffffd86dffffdc32}, + {0x9838cf37, 0xffffd86dffffdc33}, + {0x9838cf38, 0xffffd86dffffdc34}, + {0x9838cf39, 0xffffd86dffffdc35}, + {0x9838d030, 0xffffd86dffffdc36}, + {0x9838d031, 0xffffd86dffffdc37}, + {0x9838d032, 0xffffd86dffffdc38}, + {0x9838d033, 0xffffd86dffffdc39}, + {0x9838d034, 0xffffd86dffffdc3a}, + {0x9838d035, 0xffffd86dffffdc3b}, + {0x9838d036, 0xffffd86dffffdc3c}, + {0x9838d037, 0xffffd86dffffdc3d}, + {0x9838d038, 0xffffd86dffffdc3e}, + {0x9838d039, 0xffffd86dffffdc3f}, + {0x9838d130, 0xffffd86dffffdc40}, + {0x9838d131, 0xffffd86dffffdc41}, + {0x9838d132, 0xffffd86dffffdc42}, + {0x9838d133, 0xffffd86dffffdc43}, + {0x9838d134, 0xffffd86dffffdc44}, + {0x9838d135, 0xffffd86dffffdc45}, + {0x9838d136, 0xffffd86dffffdc46}, + {0x9838d137, 0xffffd86dffffdc47}, + {0x9838d138, 0xffffd86dffffdc48}, + {0x9838d139, 0xffffd86dffffdc49}, + {0x9838d230, 0xffffd86dffffdc4a}, + {0x9838d231, 0xffffd86dffffdc4b}, + {0x9838d232, 0xffffd86dffffdc4c}, + {0x9838d233, 0xffffd86dffffdc4d}, + {0x9838d234, 0xffffd86dffffdc4e}, + {0x9838d235, 0xffffd86dffffdc4f}, + {0x9838d236, 0xffffd86dffffdc50}, + {0x9838d237, 0xffffd86dffffdc51}, + {0x9838d238, 0xffffd86dffffdc52}, + {0x9838d239, 0xffffd86dffffdc53}, + {0x9838d330, 0xffffd86dffffdc54}, + {0x9838d331, 0xffffd86dffffdc55}, + {0x9838d332, 0xffffd86dffffdc56}, + {0x9838d333, 0xffffd86dffffdc57}, + {0x9838d334, 0xffffd86dffffdc58}, + {0x9838d335, 0xffffd86dffffdc59}, + {0x9838d336, 0xffffd86dffffdc5a}, + {0x9838d337, 0xffffd86dffffdc5b}, + {0x9838d338, 0xffffd86dffffdc5c}, + {0x9838d339, 0xffffd86dffffdc5d}, + {0x9838d430, 0xffffd86dffffdc5e}, + {0x9838d431, 0xffffd86dffffdc5f}, + {0x9838d432, 0xffffd86dffffdc60}, + {0x9838d433, 0xffffd86dffffdc61}, + {0x9838d434, 0xffffd86dffffdc62}, + {0x9838d435, 0xffffd86dffffdc63}, + {0x9838d436, 0xffffd86dffffdc64}, + {0x9838d437, 0xffffd86dffffdc65}, + {0x9838d438, 0xffffd86dffffdc66}, + {0x9838d439, 0xffffd86dffffdc67}, + {0x9838d530, 0xffffd86dffffdc68}, + {0x9838d531, 0xffffd86dffffdc69}, + {0x9838d532, 0xffffd86dffffdc6a}, + {0x9838d533, 0xffffd86dffffdc6b}, + {0x9838d534, 0xffffd86dffffdc6c}, + {0x9838d535, 0xffffd86dffffdc6d}, + {0x9838d536, 0xffffd86dffffdc6e}, + {0x9838d537, 0xffffd86dffffdc6f}, + {0x9838d538, 0xffffd86dffffdc70}, + {0x9838d539, 0xffffd86dffffdc71}, + {0x9838d630, 0xffffd86dffffdc72}, + {0x9838d631, 0xffffd86dffffdc73}, + {0x9838d632, 0xffffd86dffffdc74}, + {0x9838d633, 0xffffd86dffffdc75}, + {0x9838d634, 0xffffd86dffffdc76}, + {0x9838d635, 0xffffd86dffffdc77}, + {0x9838d636, 0xffffd86dffffdc78}, + {0x9838d637, 0xffffd86dffffdc79}, + {0x9838d638, 0xffffd86dffffdc7a}, + {0x9838d639, 0xffffd86dffffdc7b}, + {0x9838d730, 0xffffd86dffffdc7c}, + {0x9838d731, 0xffffd86dffffdc7d}, + {0x9838d732, 0xffffd86dffffdc7e}, + {0x9838d733, 0xffffd86dffffdc7f}, + {0x9838d734, 0xffffd86dffffdc80}, + {0x9838d735, 0xffffd86dffffdc81}, + {0x9838d736, 0xffffd86dffffdc82}, + {0x9838d737, 0xffffd86dffffdc83}, + {0x9838d738, 0xffffd86dffffdc84}, + {0x9838d739, 0xffffd86dffffdc85}, + {0x9838d830, 0xffffd86dffffdc86}, + {0x9838d831, 0xffffd86dffffdc87}, + {0x9838d832, 0xffffd86dffffdc88}, + {0x9838d833, 0xffffd86dffffdc89}, + {0x9838d834, 0xffffd86dffffdc8a}, + {0x9838d835, 0xffffd86dffffdc8b}, + {0x9838d836, 0xffffd86dffffdc8c}, + {0x9838d837, 0xffffd86dffffdc8d}, + {0x9838d838, 0xffffd86dffffdc8e}, + {0x9838d839, 0xffffd86dffffdc8f}, + {0x9838d930, 0xffffd86dffffdc90}, + {0x9838d931, 0xffffd86dffffdc91}, + {0x9838d932, 0xffffd86dffffdc92}, + {0x9838d933, 0xffffd86dffffdc93}, + {0x9838d934, 0xffffd86dffffdc94}, + {0x9838d935, 0xffffd86dffffdc95}, + {0x9838d936, 0xffffd86dffffdc96}, + {0x9838d937, 0xffffd86dffffdc97}, + {0x9838d938, 0xffffd86dffffdc98}, + {0x9838d939, 0xffffd86dffffdc99}, + {0x9838da30, 0xffffd86dffffdc9a}, + {0x9838da31, 0xffffd86dffffdc9b}, + {0x9838da32, 0xffffd86dffffdc9c}, + {0x9838da33, 0xffffd86dffffdc9d}, + {0x9838da34, 0xffffd86dffffdc9e}, + {0x9838da35, 0xffffd86dffffdc9f}, + {0x9838da36, 0xffffd86dffffdca0}, + {0x9838da37, 0xffffd86dffffdca1}, + {0x9838da38, 0xffffd86dffffdca2}, + {0x9838da39, 0xffffd86dffffdca3}, + {0x9838db30, 0xffffd86dffffdca4}, + {0x9838db31, 0xffffd86dffffdca5}, + {0x9838db32, 0xffffd86dffffdca6}, + {0x9838db33, 0xffffd86dffffdca7}, + {0x9838db34, 0xffffd86dffffdca8}, + {0x9838db35, 0xffffd86dffffdca9}, + {0x9838db36, 0xffffd86dffffdcaa}, + {0x9838db37, 0xffffd86dffffdcab}, + {0x9838db38, 0xffffd86dffffdcac}, + {0x9838db39, 0xffffd86dffffdcad}, + {0x9838dc30, 0xffffd86dffffdcae}, + {0x9838dc31, 0xffffd86dffffdcaf}, + {0x9838dc32, 0xffffd86dffffdcb0}, + {0x9838dc33, 0xffffd86dffffdcb1}, + {0x9838dc34, 0xffffd86dffffdcb2}, + {0x9838dc35, 0xffffd86dffffdcb3}, + {0x9838dc36, 0xffffd86dffffdcb4}, + {0x9838dc37, 0xffffd86dffffdcb5}, + {0x9838dc38, 0xffffd86dffffdcb6}, + {0x9838dc39, 0xffffd86dffffdcb7}, + {0x9838dd30, 0xffffd86dffffdcb8}, + {0x9838dd31, 0xffffd86dffffdcb9}, + {0x9838dd32, 0xffffd86dffffdcba}, + {0x9838dd33, 0xffffd86dffffdcbb}, + {0x9838dd34, 0xffffd86dffffdcbc}, + {0x9838dd35, 0xffffd86dffffdcbd}, + {0x9838dd36, 0xffffd86dffffdcbe}, + {0x9838dd37, 0xffffd86dffffdcbf}, + {0x9838dd38, 0xffffd86dffffdcc0}, + {0x9838dd39, 0xffffd86dffffdcc1}, + {0x9838de30, 0xffffd86dffffdcc2}, + {0x9838de31, 0xffffd86dffffdcc3}, + {0x9838de32, 0xffffd86dffffdcc4}, + {0x9838de33, 0xffffd86dffffdcc5}, + {0x9838de34, 0xffffd86dffffdcc6}, + {0x9838de35, 0xffffd86dffffdcc7}, + {0x9838de36, 0xffffd86dffffdcc8}, + {0x9838de37, 0xffffd86dffffdcc9}, + {0x9838de38, 0xffffd86dffffdcca}, + {0x9838de39, 0xffffd86dffffdccb}, + {0x9838df30, 0xffffd86dffffdccc}, + {0x9838df31, 0xffffd86dffffdccd}, + {0x9838df32, 0xffffd86dffffdcce}, + {0x9838df33, 0xffffd86dffffdccf}, + {0x9838df34, 0xffffd86dffffdcd0}, + {0x9838df35, 0xffffd86dffffdcd1}, + {0x9838df36, 0xffffd86dffffdcd2}, + {0x9838df37, 0xffffd86dffffdcd3}, + {0x9838df38, 0xffffd86dffffdcd4}, + {0x9838df39, 0xffffd86dffffdcd5}, + {0x9838e030, 0xffffd86dffffdcd6}, + {0x9838e031, 0xffffd86dffffdcd7}, + {0x9838e032, 0xffffd86dffffdcd8}, + {0x9838e033, 0xffffd86dffffdcd9}, + {0x9838e034, 0xffffd86dffffdcda}, + {0x9838e035, 0xffffd86dffffdcdb}, + {0x9838e036, 0xffffd86dffffdcdc}, + {0x9838e037, 0xffffd86dffffdcdd}, + {0x9838e038, 0xffffd86dffffdcde}, + {0x9838e039, 0xffffd86dffffdcdf}, + {0x9838e130, 0xffffd86dffffdce0}, + {0x9838e131, 0xffffd86dffffdce1}, + {0x9838e132, 0xffffd86dffffdce2}, + {0x9838e133, 0xffffd86dffffdce3}, + {0x9838e134, 0xffffd86dffffdce4}, + {0x9838e135, 0xffffd86dffffdce5}, + {0x9838e136, 0xffffd86dffffdce6}, + {0x9838e137, 0xffffd86dffffdce7}, + {0x9838e138, 0xffffd86dffffdce8}, + {0x9838e139, 0xffffd86dffffdce9}, + {0x9838e230, 0xffffd86dffffdcea}, + {0x9838e231, 0xffffd86dffffdceb}, + {0x9838e232, 0xffffd86dffffdcec}, + {0x9838e233, 0xffffd86dffffdced}, + {0x9838e234, 0xffffd86dffffdcee}, + {0x9838e235, 0xffffd86dffffdcef}, + {0x9838e236, 0xffffd86dffffdcf0}, + {0x9838e237, 0xffffd86dffffdcf1}, + {0x9838e238, 0xffffd86dffffdcf2}, + {0x9838e239, 0xffffd86dffffdcf3}, + {0x9838e330, 0xffffd86dffffdcf4}, + {0x9838e331, 0xffffd86dffffdcf5}, + {0x9838e332, 0xffffd86dffffdcf6}, + {0x9838e333, 0xffffd86dffffdcf7}, + {0x9838e334, 0xffffd86dffffdcf8}, + {0x9838e335, 0xffffd86dffffdcf9}, + {0x9838e336, 0xffffd86dffffdcfa}, + {0x9838e337, 0xffffd86dffffdcfb}, + {0x9838e338, 0xffffd86dffffdcfc}, + {0x9838e339, 0xffffd86dffffdcfd}, + {0x9838e430, 0xffffd86dffffdcfe}, + {0x9838e431, 0xffffd86dffffdcff}, + {0x9838e432, 0xffffd86dffffdd00}, + {0x9838e433, 0xffffd86dffffdd01}, + {0x9838e434, 0xffffd86dffffdd02}, + {0x9838e435, 0xffffd86dffffdd03}, + {0x9838e436, 0xffffd86dffffdd04}, + {0x9838e437, 0xffffd86dffffdd05}, + {0x9838e438, 0xffffd86dffffdd06}, + {0x9838e439, 0xffffd86dffffdd07}, + {0x9838e530, 0xffffd86dffffdd08}, + {0x9838e531, 0xffffd86dffffdd09}, + {0x9838e532, 0xffffd86dffffdd0a}, + {0x9838e533, 0xffffd86dffffdd0b}, + {0x9838e534, 0xffffd86dffffdd0c}, + {0x9838e535, 0xffffd86dffffdd0d}, + {0x9838e536, 0xffffd86dffffdd0e}, + {0x9838e537, 0xffffd86dffffdd0f}, + {0x9838e538, 0xffffd86dffffdd10}, + {0x9838e539, 0xffffd86dffffdd11}, + {0x9838e630, 0xffffd86dffffdd12}, + {0x9838e631, 0xffffd86dffffdd13}, + {0x9838e632, 0xffffd86dffffdd14}, + {0x9838e633, 0xffffd86dffffdd15}, + {0x9838e634, 0xffffd86dffffdd16}, + {0x9838e635, 0xffffd86dffffdd17}, + {0x9838e636, 0xffffd86dffffdd18}, + {0x9838e637, 0xffffd86dffffdd19}, + {0x9838e638, 0xffffd86dffffdd1a}, + {0x9838e639, 0xffffd86dffffdd1b}, + {0x9838e730, 0xffffd86dffffdd1c}, + {0x9838e731, 0xffffd86dffffdd1d}, + {0x9838e732, 0xffffd86dffffdd1e}, + {0x9838e733, 0xffffd86dffffdd1f}, + {0x9838e734, 0xffffd86dffffdd20}, + {0x9838e735, 0xffffd86dffffdd21}, + {0x9838e736, 0xffffd86dffffdd22}, + {0x9838e737, 0xffffd86dffffdd23}, + {0x9838e738, 0xffffd86dffffdd24}, + {0x9838e739, 0xffffd86dffffdd25}, + {0x9838e830, 0xffffd86dffffdd26}, + {0x9838e831, 0xffffd86dffffdd27}, + {0x9838e832, 0xffffd86dffffdd28}, + {0x9838e833, 0xffffd86dffffdd29}, + {0x9838e834, 0xffffd86dffffdd2a}, + {0x9838e835, 0xffffd86dffffdd2b}, + {0x9838e836, 0xffffd86dffffdd2c}, + {0x9838e837, 0xffffd86dffffdd2d}, + {0x9838e838, 0xffffd86dffffdd2e}, + {0x9838e839, 0xffffd86dffffdd2f}, + {0x9838e930, 0xffffd86dffffdd30}, + {0x9838e931, 0xffffd86dffffdd31}, + {0x9838e932, 0xffffd86dffffdd32}, + {0x9838e933, 0xffffd86dffffdd33}, + {0x9838e934, 0xffffd86dffffdd34}, + {0x9838e935, 0xffffd86dffffdd35}, + {0x9838e936, 0xffffd86dffffdd36}, + {0x9838e937, 0xffffd86dffffdd37}, + {0x9838e938, 0xffffd86dffffdd38}, + {0x9838e939, 0xffffd86dffffdd39}, + {0x9838ea30, 0xffffd86dffffdd3a}, + {0x9838ea31, 0xffffd86dffffdd3b}, + {0x9838ea32, 0xffffd86dffffdd3c}, + {0x9838ea33, 0xffffd86dffffdd3d}, + {0x9838ea34, 0xffffd86dffffdd3e}, + {0x9838ea35, 0xffffd86dffffdd3f}, + {0x9838ea36, 0xffffd86dffffdd40}, + {0x9838ea37, 0xffffd86dffffdd41}, + {0x9838ea38, 0xffffd86dffffdd42}, + {0x9838ea39, 0xffffd86dffffdd43}, + {0x9838eb30, 0xffffd86dffffdd44}, + {0x9838eb31, 0xffffd86dffffdd45}, + {0x9838eb32, 0xffffd86dffffdd46}, + {0x9838eb33, 0xffffd86dffffdd47}, + {0x9838eb34, 0xffffd86dffffdd48}, + {0x9838eb35, 0xffffd86dffffdd49}, + {0x9838eb36, 0xffffd86dffffdd4a}, + {0x9838eb37, 0xffffd86dffffdd4b}, + {0x9838eb38, 0xffffd86dffffdd4c}, + {0x9838eb39, 0xffffd86dffffdd4d}, + {0x9838ec30, 0xffffd86dffffdd4e}, + {0x9838ec31, 0xffffd86dffffdd4f}, + {0x9838ec32, 0xffffd86dffffdd50}, + {0x9838ec33, 0xffffd86dffffdd51}, + {0x9838ec34, 0xffffd86dffffdd52}, + {0x9838ec35, 0xffffd86dffffdd53}, + {0x9838ec36, 0xffffd86dffffdd54}, + {0x9838ec37, 0xffffd86dffffdd55}, + {0x9838ec38, 0xffffd86dffffdd56}, + {0x9838ec39, 0xffffd86dffffdd57}, + {0x9838ed30, 0xffffd86dffffdd58}, + {0x9838ed31, 0xffffd86dffffdd59}, + {0x9838ed32, 0xffffd86dffffdd5a}, + {0x9838ed33, 0xffffd86dffffdd5b}, + {0x9838ed34, 0xffffd86dffffdd5c}, + {0x9838ed35, 0xffffd86dffffdd5d}, + {0x9838ed36, 0xffffd86dffffdd5e}, + {0x9838ed37, 0xffffd86dffffdd5f}, + {0x9838ed38, 0xffffd86dffffdd60}, + {0x9838ed39, 0xffffd86dffffdd61}, + {0x9838ee30, 0xffffd86dffffdd62}, + {0x9838ee31, 0xffffd86dffffdd63}, + {0x9838ee32, 0xffffd86dffffdd64}, + {0x9838ee33, 0xffffd86dffffdd65}, + {0x9838ee34, 0xffffd86dffffdd66}, + {0x9838ee35, 0xffffd86dffffdd67}, + {0x9838ee36, 0xffffd86dffffdd68}, + {0x9838ee37, 0xffffd86dffffdd69}, + {0x9838ee38, 0xffffd86dffffdd6a}, + {0x9838ee39, 0xffffd86dffffdd6b}, + {0x9838ef30, 0xffffd86dffffdd6c}, + {0x9838ef31, 0xffffd86dffffdd6d}, + {0x9838ef32, 0xffffd86dffffdd6e}, + {0x9838ef33, 0xffffd86dffffdd6f}, + {0x9838ef34, 0xffffd86dffffdd70}, + {0x9838ef35, 0xffffd86dffffdd71}, + {0x9838ef36, 0xffffd86dffffdd72}, + {0x9838ef37, 0xffffd86dffffdd73}, + {0x9838ef38, 0xffffd86dffffdd74}, + {0x9838ef39, 0xffffd86dffffdd75}, + {0x9838f030, 0xffffd86dffffdd76}, + {0x9838f031, 0xffffd86dffffdd77}, + {0x9838f032, 0xffffd86dffffdd78}, + {0x9838f033, 0xffffd86dffffdd79}, + {0x9838f034, 0xffffd86dffffdd7a}, + {0x9838f035, 0xffffd86dffffdd7b}, + {0x9838f036, 0xffffd86dffffdd7c}, + {0x9838f037, 0xffffd86dffffdd7d}, + {0x9838f038, 0xffffd86dffffdd7e}, + {0x9838f039, 0xffffd86dffffdd7f}, + {0x9838f130, 0xffffd86dffffdd80}, + {0x9838f131, 0xffffd86dffffdd81}, + {0x9838f132, 0xffffd86dffffdd82}, + {0x9838f133, 0xffffd86dffffdd83}, + {0x9838f134, 0xffffd86dffffdd84}, + {0x9838f135, 0xffffd86dffffdd85}, + {0x9838f136, 0xffffd86dffffdd86}, + {0x9838f137, 0xffffd86dffffdd87}, + {0x9838f138, 0xffffd86dffffdd88}, + {0x9838f139, 0xffffd86dffffdd89}, + {0x9838f230, 0xffffd86dffffdd8a}, + {0x9838f231, 0xffffd86dffffdd8b}, + {0x9838f232, 0xffffd86dffffdd8c}, + {0x9838f233, 0xffffd86dffffdd8d}, + {0x9838f234, 0xffffd86dffffdd8e}, + {0x9838f235, 0xffffd86dffffdd8f}, + {0x9838f236, 0xffffd86dffffdd90}, + {0x9838f237, 0xffffd86dffffdd91}, + {0x9838f238, 0xffffd86dffffdd92}, + {0x9838f239, 0xffffd86dffffdd93}, + {0x9838f330, 0xffffd86dffffdd94}, + {0x9838f331, 0xffffd86dffffdd95}, + {0x9838f332, 0xffffd86dffffdd96}, + {0x9838f333, 0xffffd86dffffdd97}, + {0x9838f334, 0xffffd86dffffdd98}, + {0x9838f335, 0xffffd86dffffdd99}, + {0x9838f336, 0xffffd86dffffdd9a}, + {0x9838f337, 0xffffd86dffffdd9b}, + {0x9838f338, 0xffffd86dffffdd9c}, + {0x9838f339, 0xffffd86dffffdd9d}, + {0x9838f430, 0xffffd86dffffdd9e}, + {0x9838f431, 0xffffd86dffffdd9f}, + {0x9838f432, 0xffffd86dffffdda0}, + {0x9838f433, 0xffffd86dffffdda1}, + {0x9838f434, 0xffffd86dffffdda2}, + {0x9838f435, 0xffffd86dffffdda3}, + {0x9838f436, 0xffffd86dffffdda4}, + {0x9838f437, 0xffffd86dffffdda5}, + {0x9838f438, 0xffffd86dffffdda6}, + {0x9838f439, 0xffffd86dffffdda7}, + {0x9838f530, 0xffffd86dffffdda8}, + {0x9838f531, 0xffffd86dffffdda9}, + {0x9838f532, 0xffffd86dffffddaa}, + {0x9838f533, 0xffffd86dffffddab}, + {0x9838f534, 0xffffd86dffffddac}, + {0x9838f535, 0xffffd86dffffddad}, + {0x9838f536, 0xffffd86dffffddae}, + {0x9838f537, 0xffffd86dffffddaf}, + {0x9838f538, 0xffffd86dffffddb0}, + {0x9838f539, 0xffffd86dffffddb1}, + {0x9838f630, 0xffffd86dffffddb2}, + {0x9838f631, 0xffffd86dffffddb3}, + {0x9838f632, 0xffffd86dffffddb4}, + {0x9838f633, 0xffffd86dffffddb5}, + {0x9838f634, 0xffffd86dffffddb6}, + {0x9838f635, 0xffffd86dffffddb7}, + {0x9838f636, 0xffffd86dffffddb8}, + {0x9838f637, 0xffffd86dffffddb9}, + {0x9838f638, 0xffffd86dffffddba}, + {0x9838f639, 0xffffd86dffffddbb}, + {0x9838f730, 0xffffd86dffffddbc}, + {0x9838f731, 0xffffd86dffffddbd}, + {0x9838f732, 0xffffd86dffffddbe}, + {0x9838f733, 0xffffd86dffffddbf}, + {0x9838f734, 0xffffd86dffffddc0}, + {0x9838f735, 0xffffd86dffffddc1}, + {0x9838f736, 0xffffd86dffffddc2}, + {0x9838f737, 0xffffd86dffffddc3}, + {0x9838f738, 0xffffd86dffffddc4}, + {0x9838f739, 0xffffd86dffffddc5}, + {0x9838f830, 0xffffd86dffffddc6}, + {0x9838f831, 0xffffd86dffffddc7}, + {0x9838f832, 0xffffd86dffffddc8}, + {0x9838f833, 0xffffd86dffffddc9}, + {0x9838f834, 0xffffd86dffffddca}, + {0x9838f835, 0xffffd86dffffddcb}, + {0x9838f836, 0xffffd86dffffddcc}, + {0x9838f837, 0xffffd86dffffddcd}, + {0x9838f838, 0xffffd86dffffddce}, + {0x9838f839, 0xffffd86dffffddcf}, + {0x9838f930, 0xffffd86dffffddd0}, + {0x9838f931, 0xffffd86dffffddd1}, + {0x9838f932, 0xffffd86dffffddd2}, + {0x9838f933, 0xffffd86dffffddd3}, + {0x9838f934, 0xffffd86dffffddd4}, + {0x9838f935, 0xffffd86dffffddd5}, + {0x9838f936, 0xffffd86dffffddd6}, + {0x9838f937, 0xffffd86dffffddd7}, + {0x9838f938, 0xffffd86dffffddd8}, + {0x9838f939, 0xffffd86dffffddd9}, + {0x9838fa30, 0xffffd86dffffddda}, + {0x9838fa31, 0xffffd86dffffdddb}, + {0x9838fa32, 0xffffd86dffffdddc}, + {0x9838fa33, 0xffffd86dffffdddd}, + {0x9838fa34, 0xffffd86dffffddde}, + {0x9838fa35, 0xffffd86dffffdddf}, + {0x9838fa36, 0xffffd86dffffdde0}, + {0x9838fa37, 0xffffd86dffffdde1}, + {0x9838fa38, 0xffffd86dffffdde2}, + {0x9838fa39, 0xffffd86dffffdde3}, + {0x9838fb30, 0xffffd86dffffdde4}, + {0x9838fb31, 0xffffd86dffffdde5}, + {0x9838fb32, 0xffffd86dffffdde6}, + {0x9838fb33, 0xffffd86dffffdde7}, + {0x9838fb34, 0xffffd86dffffdde8}, + {0x9838fb35, 0xffffd86dffffdde9}, + {0x9838fb36, 0xffffd86dffffddea}, + {0x9838fb37, 0xffffd86dffffddeb}, + {0x9838fb38, 0xffffd86dffffddec}, + {0x9838fb39, 0xffffd86dffffdded}, + {0x9838fc30, 0xffffd86dffffddee}, + {0x9838fc31, 0xffffd86dffffddef}, + {0x9838fc32, 0xffffd86dffffddf0}, + {0x9838fc33, 0xffffd86dffffddf1}, + {0x9838fc34, 0xffffd86dffffddf2}, + {0x9838fc35, 0xffffd86dffffddf3}, + {0x9838fc36, 0xffffd86dffffddf4}, + {0x9838fc37, 0xffffd86dffffddf5}, + {0x9838fc38, 0xffffd86dffffddf6}, + {0x9838fc39, 0xffffd86dffffddf7}, + {0x9838fd30, 0xffffd86dffffddf8}, + {0x9838fd31, 0xffffd86dffffddf9}, + {0x9838fd32, 0xffffd86dffffddfa}, + {0x9838fd33, 0xffffd86dffffddfb}, + {0x9838fd34, 0xffffd86dffffddfc}, + {0x9838fd35, 0xffffd86dffffddfd}, + {0x9838fd36, 0xffffd86dffffddfe}, + {0x9838fd37, 0xffffd86dffffddff}, + {0x9838fd38, 0xffffd86dffffde00}, + {0x9838fd39, 0xffffd86dffffde01}, + {0x9838fe30, 0xffffd86dffffde02}, + {0x9838fe31, 0xffffd86dffffde03}, + {0x9838fe32, 0xffffd86dffffde04}, + {0x9838fe33, 0xffffd86dffffde05}, + {0x9838fe34, 0xffffd86dffffde06}, + {0x9838fe35, 0xffffd86dffffde07}, + {0x9838fe36, 0xffffd86dffffde08}, + {0x9838fe37, 0xffffd86dffffde09}, + {0x9838fe38, 0xffffd86dffffde0a}, + {0x9838fe39, 0xffffd86dffffde0b}, + {0x98398130, 0xffffd86dffffde0c}, + {0x98398131, 0xffffd86dffffde0d}, + {0x98398132, 0xffffd86dffffde0e}, + {0x98398133, 0xffffd86dffffde0f}, + {0x98398134, 0xffffd86dffffde10}, + {0x98398135, 0xffffd86dffffde11}, + {0x98398136, 0xffffd86dffffde12}, + {0x98398137, 0xffffd86dffffde13}, + {0x98398138, 0xffffd86dffffde14}, + {0x98398139, 0xffffd86dffffde15}, + {0x98398230, 0xffffd86dffffde16}, + {0x98398231, 0xffffd86dffffde17}, + {0x98398232, 0xffffd86dffffde18}, + {0x98398233, 0xffffd86dffffde19}, + {0x98398234, 0xffffd86dffffde1a}, + {0x98398235, 0xffffd86dffffde1b}, + {0x98398236, 0xffffd86dffffde1c}, + {0x98398237, 0xffffd86dffffde1d}, + {0x98398238, 0xffffd86dffffde1e}, + {0x98398239, 0xffffd86dffffde1f}, + {0x98398330, 0xffffd86dffffde20}, + {0x98398331, 0xffffd86dffffde21}, + {0x98398332, 0xffffd86dffffde22}, + {0x98398333, 0xffffd86dffffde23}, + {0x98398334, 0xffffd86dffffde24}, + {0x98398335, 0xffffd86dffffde25}, + {0x98398336, 0xffffd86dffffde26}, + {0x98398337, 0xffffd86dffffde27}, + {0x98398338, 0xffffd86dffffde28}, + {0x98398339, 0xffffd86dffffde29}, + {0x98398430, 0xffffd86dffffde2a}, + {0x98398431, 0xffffd86dffffde2b}, + {0x98398432, 0xffffd86dffffde2c}, + {0x98398433, 0xffffd86dffffde2d}, + {0x98398434, 0xffffd86dffffde2e}, + {0x98398435, 0xffffd86dffffde2f}, + {0x98398436, 0xffffd86dffffde30}, + {0x98398437, 0xffffd86dffffde31}, + {0x98398438, 0xffffd86dffffde32}, + {0x98398439, 0xffffd86dffffde33}, + {0x98398530, 0xffffd86dffffde34}, + {0x98398531, 0xffffd86dffffde35}, + {0x98398532, 0xffffd86dffffde36}, + {0x98398533, 0xffffd86dffffde37}, + {0x98398534, 0xffffd86dffffde38}, + {0x98398535, 0xffffd86dffffde39}, + {0x98398536, 0xffffd86dffffde3a}, + {0x98398537, 0xffffd86dffffde3b}, + {0x98398538, 0xffffd86dffffde3c}, + {0x98398539, 0xffffd86dffffde3d}, + {0x98398630, 0xffffd86dffffde3e}, + {0x98398631, 0xffffd86dffffde3f}, + {0x98398632, 0xffffd86dffffde40}, + {0x98398633, 0xffffd86dffffde41}, + {0x98398634, 0xffffd86dffffde42}, + {0x98398635, 0xffffd86dffffde43}, + {0x98398636, 0xffffd86dffffde44}, + {0x98398637, 0xffffd86dffffde45}, + {0x98398638, 0xffffd86dffffde46}, + {0x98398639, 0xffffd86dffffde47}, + {0x98398730, 0xffffd86dffffde48}, + {0x98398731, 0xffffd86dffffde49}, + {0x98398732, 0xffffd86dffffde4a}, + {0x98398733, 0xffffd86dffffde4b}, + {0x98398734, 0xffffd86dffffde4c}, + {0x98398735, 0xffffd86dffffde4d}, + {0x98398736, 0xffffd86dffffde4e}, + {0x98398737, 0xffffd86dffffde4f}, + {0x98398738, 0xffffd86dffffde50}, + {0x98398739, 0xffffd86dffffde51}, + {0x98398830, 0xffffd86dffffde52}, + {0x98398831, 0xffffd86dffffde53}, + {0x98398832, 0xffffd86dffffde54}, + {0x98398833, 0xffffd86dffffde55}, + {0x98398834, 0xffffd86dffffde56}, + {0x98398835, 0xffffd86dffffde57}, + {0x98398836, 0xffffd86dffffde58}, + {0x98398837, 0xffffd86dffffde59}, + {0x98398838, 0xffffd86dffffde5a}, + {0x98398839, 0xffffd86dffffde5b}, + {0x98398930, 0xffffd86dffffde5c}, + {0x98398931, 0xffffd86dffffde5d}, + {0x98398932, 0xffffd86dffffde5e}, + {0x98398933, 0xffffd86dffffde5f}, + {0x98398934, 0xffffd86dffffde60}, + {0x98398935, 0xffffd86dffffde61}, + {0x98398936, 0xffffd86dffffde62}, + {0x98398937, 0xffffd86dffffde63}, + {0x98398938, 0xffffd86dffffde64}, + {0x98398939, 0xffffd86dffffde65}, + {0x98398a30, 0xffffd86dffffde66}, + {0x98398a31, 0xffffd86dffffde67}, + {0x98398a32, 0xffffd86dffffde68}, + {0x98398a33, 0xffffd86dffffde69}, + {0x98398a34, 0xffffd86dffffde6a}, + {0x98398a35, 0xffffd86dffffde6b}, + {0x98398a36, 0xffffd86dffffde6c}, + {0x98398a37, 0xffffd86dffffde6d}, + {0x98398a38, 0xffffd86dffffde6e}, + {0x98398a39, 0xffffd86dffffde6f}, + {0x98398b30, 0xffffd86dffffde70}, + {0x98398b31, 0xffffd86dffffde71}, + {0x98398b32, 0xffffd86dffffde72}, + {0x98398b33, 0xffffd86dffffde73}, + {0x98398b34, 0xffffd86dffffde74}, + {0x98398b35, 0xffffd86dffffde75}, + {0x98398b36, 0xffffd86dffffde76}, + {0x98398b37, 0xffffd86dffffde77}, + {0x98398b38, 0xffffd86dffffde78}, + {0x98398b39, 0xffffd86dffffde79}, + {0x98398c30, 0xffffd86dffffde7a}, + {0x98398c31, 0xffffd86dffffde7b}, + {0x98398c32, 0xffffd86dffffde7c}, + {0x98398c33, 0xffffd86dffffde7d}, + {0x98398c34, 0xffffd86dffffde7e}, + {0x98398c35, 0xffffd86dffffde7f}, + {0x98398c36, 0xffffd86dffffde80}, + {0x98398c37, 0xffffd86dffffde81}, + {0x98398c38, 0xffffd86dffffde82}, + {0x98398c39, 0xffffd86dffffde83}, + {0x98398d30, 0xffffd86dffffde84}, + {0x98398d31, 0xffffd86dffffde85}, + {0x98398d32, 0xffffd86dffffde86}, + {0x98398d33, 0xffffd86dffffde87}, + {0x98398d34, 0xffffd86dffffde88}, + {0x98398d35, 0xffffd86dffffde89}, + {0x98398d36, 0xffffd86dffffde8a}, + {0x98398d37, 0xffffd86dffffde8b}, + {0x98398d38, 0xffffd86dffffde8c}, + {0x98398d39, 0xffffd86dffffde8d}, + {0x98398e30, 0xffffd86dffffde8e}, + {0x98398e31, 0xffffd86dffffde8f}, + {0x98398e32, 0xffffd86dffffde90}, + {0x98398e33, 0xffffd86dffffde91}, + {0x98398e34, 0xffffd86dffffde92}, + {0x98398e35, 0xffffd86dffffde93}, + {0x98398e36, 0xffffd86dffffde94}, + {0x98398e37, 0xffffd86dffffde95}, + {0x98398e38, 0xffffd86dffffde96}, + {0x98398e39, 0xffffd86dffffde97}, + {0x98398f30, 0xffffd86dffffde98}, + {0x98398f31, 0xffffd86dffffde99}, + {0x98398f32, 0xffffd86dffffde9a}, + {0x98398f33, 0xffffd86dffffde9b}, + {0x98398f34, 0xffffd86dffffde9c}, + {0x98398f35, 0xffffd86dffffde9d}, + {0x98398f36, 0xffffd86dffffde9e}, + {0x98398f37, 0xffffd86dffffde9f}, + {0x98398f38, 0xffffd86dffffdea0}, + {0x98398f39, 0xffffd86dffffdea1}, + {0x98399030, 0xffffd86dffffdea2}, + {0x98399031, 0xffffd86dffffdea3}, + {0x98399032, 0xffffd86dffffdea4}, + {0x98399033, 0xffffd86dffffdea5}, + {0x98399034, 0xffffd86dffffdea6}, + {0x98399035, 0xffffd86dffffdea7}, + {0x98399036, 0xffffd86dffffdea8}, + {0x98399037, 0xffffd86dffffdea9}, + {0x98399038, 0xffffd86dffffdeaa}, + {0x98399039, 0xffffd86dffffdeab}, + {0x98399130, 0xffffd86dffffdeac}, + {0x98399131, 0xffffd86dffffdead}, + {0x98399132, 0xffffd86dffffdeae}, + {0x98399133, 0xffffd86dffffdeaf}, + {0x98399134, 0xffffd86dffffdeb0}, + {0x98399135, 0xffffd86dffffdeb1}, + {0x98399136, 0xffffd86dffffdeb2}, + {0x98399137, 0xffffd86dffffdeb3}, + {0x98399138, 0xffffd86dffffdeb4}, + {0x98399139, 0xffffd86dffffdeb5}, + {0x98399230, 0xffffd86dffffdeb6}, + {0x98399231, 0xffffd86dffffdeb7}, + {0x98399232, 0xffffd86dffffdeb8}, + {0x98399233, 0xffffd86dffffdeb9}, + {0x98399234, 0xffffd86dffffdeba}, + {0x98399235, 0xffffd86dffffdebb}, + {0x98399236, 0xffffd86dffffdebc}, + {0x98399237, 0xffffd86dffffdebd}, + {0x98399238, 0xffffd86dffffdebe}, + {0x98399239, 0xffffd86dffffdebf}, + {0x98399330, 0xffffd86dffffdec0}, + {0x98399331, 0xffffd86dffffdec1}, + {0x98399332, 0xffffd86dffffdec2}, + {0x98399333, 0xffffd86dffffdec3}, + {0x98399334, 0xffffd86dffffdec4}, + {0x98399335, 0xffffd86dffffdec5}, + {0x98399336, 0xffffd86dffffdec6}, + {0x98399337, 0xffffd86dffffdec7}, + {0x98399338, 0xffffd86dffffdec8}, + {0x98399339, 0xffffd86dffffdec9}, + {0x98399430, 0xffffd86dffffdeca}, + {0x98399431, 0xffffd86dffffdecb}, + {0x98399432, 0xffffd86dffffdecc}, + {0x98399433, 0xffffd86dffffdecd}, + {0x98399434, 0xffffd86dffffdece}, + {0x98399435, 0xffffd86dffffdecf}, + {0x98399436, 0xffffd86dffffded0}, + {0x98399437, 0xffffd86dffffded1}, + {0x98399438, 0xffffd86dffffded2}, + {0x98399439, 0xffffd86dffffded3}, + {0x98399530, 0xffffd86dffffded4}, + {0x98399531, 0xffffd86dffffded5}, + {0x98399532, 0xffffd86dffffded6}, + {0x98399533, 0xffffd86dffffded7}, + {0x98399534, 0xffffd86dffffded8}, + {0x98399535, 0xffffd86dffffded9}, + {0x98399536, 0xffffd86dffffdeda}, + {0x98399537, 0xffffd86dffffdedb}, + {0x98399538, 0xffffd86dffffdedc}, + {0x98399539, 0xffffd86dffffdedd}, + {0x98399630, 0xffffd86dffffdede}, + {0x98399631, 0xffffd86dffffdedf}, + {0x98399632, 0xffffd86dffffdee0}, + {0x98399633, 0xffffd86dffffdee1}, + {0x98399634, 0xffffd86dffffdee2}, + {0x98399635, 0xffffd86dffffdee3}, + {0x98399636, 0xffffd86dffffdee4}, + {0x98399637, 0xffffd86dffffdee5}, + {0x98399638, 0xffffd86dffffdee6}, + {0x98399639, 0xffffd86dffffdee7}, + {0x98399730, 0xffffd86dffffdee8}, + {0x98399731, 0xffffd86dffffdee9}, + {0x98399732, 0xffffd86dffffdeea}, + {0x98399733, 0xffffd86dffffdeeb}, + {0x98399734, 0xffffd86dffffdeec}, + {0x98399735, 0xffffd86dffffdeed}, + {0x98399736, 0xffffd86dffffdeee}, + {0x98399737, 0xffffd86dffffdeef}, + {0x98399738, 0xffffd86dffffdef0}, + {0x98399739, 0xffffd86dffffdef1}, + {0x98399830, 0xffffd86dffffdef2}, + {0x98399831, 0xffffd86dffffdef3}, + {0x98399832, 0xffffd86dffffdef4}, + {0x98399833, 0xffffd86dffffdef5}, + {0x98399834, 0xffffd86dffffdef6}, + {0x98399835, 0xffffd86dffffdef7}, + {0x98399836, 0xffffd86dffffdef8}, + {0x98399837, 0xffffd86dffffdef9}, + {0x98399838, 0xffffd86dffffdefa}, + {0x98399839, 0xffffd86dffffdefb}, + {0x98399930, 0xffffd86dffffdefc}, + {0x98399931, 0xffffd86dffffdefd}, + {0x98399932, 0xffffd86dffffdefe}, + {0x98399933, 0xffffd86dffffdeff}, + {0x98399934, 0xffffd86dffffdf00}, + {0x98399935, 0xffffd86dffffdf01}, + {0x98399936, 0xffffd86dffffdf02}, + {0x98399937, 0xffffd86dffffdf03}, + {0x98399938, 0xffffd86dffffdf04}, + {0x98399939, 0xffffd86dffffdf05}, + {0x98399a30, 0xffffd86dffffdf06}, + {0x98399a31, 0xffffd86dffffdf07}, + {0x98399a32, 0xffffd86dffffdf08}, + {0x98399a33, 0xffffd86dffffdf09}, + {0x98399a34, 0xffffd86dffffdf0a}, + {0x98399a35, 0xffffd86dffffdf0b}, + {0x98399a36, 0xffffd86dffffdf0c}, + {0x98399a37, 0xffffd86dffffdf0d}, + {0x98399a38, 0xffffd86dffffdf0e}, + {0x98399a39, 0xffffd86dffffdf0f}, + {0x98399b30, 0xffffd86dffffdf10}, + {0x98399b31, 0xffffd86dffffdf11}, + {0x98399b32, 0xffffd86dffffdf12}, + {0x98399b33, 0xffffd86dffffdf13}, + {0x98399b34, 0xffffd86dffffdf14}, + {0x98399b35, 0xffffd86dffffdf15}, + {0x98399b36, 0xffffd86dffffdf16}, + {0x98399b37, 0xffffd86dffffdf17}, + {0x98399b38, 0xffffd86dffffdf18}, + {0x98399b39, 0xffffd86dffffdf19}, + {0x98399c30, 0xffffd86dffffdf1a}, + {0x98399c31, 0xffffd86dffffdf1b}, + {0x98399c32, 0xffffd86dffffdf1c}, + {0x98399c33, 0xffffd86dffffdf1d}, + {0x98399c34, 0xffffd86dffffdf1e}, + {0x98399c35, 0xffffd86dffffdf1f}, + {0x98399c36, 0xffffd86dffffdf20}, + {0x98399c37, 0xffffd86dffffdf21}, + {0x98399c38, 0xffffd86dffffdf22}, + {0x98399c39, 0xffffd86dffffdf23}, + {0x98399d30, 0xffffd86dffffdf24}, + {0x98399d31, 0xffffd86dffffdf25}, + {0x98399d32, 0xffffd86dffffdf26}, + {0x98399d33, 0xffffd86dffffdf27}, + {0x98399d34, 0xffffd86dffffdf28}, + {0x98399d35, 0xffffd86dffffdf29}, + {0x98399d36, 0xffffd86dffffdf2a}, + {0x98399d37, 0xffffd86dffffdf2b}, + {0x98399d38, 0xffffd86dffffdf2c}, + {0x98399d39, 0xffffd86dffffdf2d}, + {0x98399e30, 0xffffd86dffffdf2e}, + {0x98399e31, 0xffffd86dffffdf2f}, + {0x98399e32, 0xffffd86dffffdf30}, + {0x98399e33, 0xffffd86dffffdf31}, + {0x98399e34, 0xffffd86dffffdf32}, + {0x98399e35, 0xffffd86dffffdf33}, + {0x98399e36, 0xffffd86dffffdf34}, + {0x98399e37, 0xffffd86dffffdf35}, + {0x98399e38, 0xffffd86dffffdf36}, + {0x98399e39, 0xffffd86dffffdf37}, + {0x98399f30, 0xffffd86dffffdf38}, + {0x98399f31, 0xffffd86dffffdf39}, + {0x98399f32, 0xffffd86dffffdf3a}, + {0x98399f33, 0xffffd86dffffdf3b}, + {0x98399f34, 0xffffd86dffffdf3c}, + {0x98399f35, 0xffffd86dffffdf3d}, + {0x98399f36, 0xffffd86dffffdf3e}, + {0x98399f37, 0xffffd86dffffdf3f}, + {0x98399f38, 0xffffd86dffffdf40}, + {0x98399f39, 0xffffd86dffffdf41}, + {0x9839a030, 0xffffd86dffffdf42}, + {0x9839a031, 0xffffd86dffffdf43}, + {0x9839a032, 0xffffd86dffffdf44}, + {0x9839a033, 0xffffd86dffffdf45}, + {0x9839a034, 0xffffd86dffffdf46}, + {0x9839a035, 0xffffd86dffffdf47}, + {0x9839a036, 0xffffd86dffffdf48}, + {0x9839a037, 0xffffd86dffffdf49}, + {0x9839a038, 0xffffd86dffffdf4a}, + {0x9839a039, 0xffffd86dffffdf4b}, + {0x9839a130, 0xffffd86dffffdf4c}, + {0x9839a131, 0xffffd86dffffdf4d}, + {0x9839a132, 0xffffd86dffffdf4e}, + {0x9839a133, 0xffffd86dffffdf4f}, + {0x9839a134, 0xffffd86dffffdf50}, + {0x9839a135, 0xffffd86dffffdf51}, + {0x9839a136, 0xffffd86dffffdf52}, + {0x9839a137, 0xffffd86dffffdf53}, + {0x9839a138, 0xffffd86dffffdf54}, + {0x9839a139, 0xffffd86dffffdf55}, + {0x9839a230, 0xffffd86dffffdf56}, + {0x9839a231, 0xffffd86dffffdf57}, + {0x9839a232, 0xffffd86dffffdf58}, + {0x9839a233, 0xffffd86dffffdf59}, + {0x9839a234, 0xffffd86dffffdf5a}, + {0x9839a235, 0xffffd86dffffdf5b}, + {0x9839a236, 0xffffd86dffffdf5c}, + {0x9839a237, 0xffffd86dffffdf5d}, + {0x9839a238, 0xffffd86dffffdf5e}, + {0x9839a239, 0xffffd86dffffdf5f}, + {0x9839a330, 0xffffd86dffffdf60}, + {0x9839a331, 0xffffd86dffffdf61}, + {0x9839a332, 0xffffd86dffffdf62}, + {0x9839a333, 0xffffd86dffffdf63}, + {0x9839a334, 0xffffd86dffffdf64}, + {0x9839a335, 0xffffd86dffffdf65}, + {0x9839a336, 0xffffd86dffffdf66}, + {0x9839a337, 0xffffd86dffffdf67}, + {0x9839a338, 0xffffd86dffffdf68}, + {0x9839a339, 0xffffd86dffffdf69}, + {0x9839a430, 0xffffd86dffffdf6a}, + {0x9839a431, 0xffffd86dffffdf6b}, + {0x9839a432, 0xffffd86dffffdf6c}, + {0x9839a433, 0xffffd86dffffdf6d}, + {0x9839a434, 0xffffd86dffffdf6e}, + {0x9839a435, 0xffffd86dffffdf6f}, + {0x9839a436, 0xffffd86dffffdf70}, + {0x9839a437, 0xffffd86dffffdf71}, + {0x9839a438, 0xffffd86dffffdf72}, + {0x9839a439, 0xffffd86dffffdf73}, + {0x9839a530, 0xffffd86dffffdf74}, + {0x9839a531, 0xffffd86dffffdf75}, + {0x9839a532, 0xffffd86dffffdf76}, + {0x9839a533, 0xffffd86dffffdf77}, + {0x9839a534, 0xffffd86dffffdf78}, + {0x9839a535, 0xffffd86dffffdf79}, + {0x9839a536, 0xffffd86dffffdf7a}, + {0x9839a537, 0xffffd86dffffdf7b}, + {0x9839a538, 0xffffd86dffffdf7c}, + {0x9839a539, 0xffffd86dffffdf7d}, + {0x9839a630, 0xffffd86dffffdf7e}, + {0x9839a631, 0xffffd86dffffdf7f}, + {0x9839a632, 0xffffd86dffffdf80}, + {0x9839a633, 0xffffd86dffffdf81}, + {0x9839a634, 0xffffd86dffffdf82}, + {0x9839a635, 0xffffd86dffffdf83}, + {0x9839a636, 0xffffd86dffffdf84}, + {0x9839a637, 0xffffd86dffffdf85}, + {0x9839a638, 0xffffd86dffffdf86}, + {0x9839a639, 0xffffd86dffffdf87}, + {0x9839a730, 0xffffd86dffffdf88}, + {0x9839a731, 0xffffd86dffffdf89}, + {0x9839a732, 0xffffd86dffffdf8a}, + {0x9839a733, 0xffffd86dffffdf8b}, + {0x9839a734, 0xffffd86dffffdf8c}, + {0x9839a735, 0xffffd86dffffdf8d}, + {0x9839a736, 0xffffd86dffffdf8e}, + {0x9839a737, 0xffffd86dffffdf8f}, + {0x9839a738, 0xffffd86dffffdf90}, + {0x9839a739, 0xffffd86dffffdf91}, + {0x9839a830, 0xffffd86dffffdf92}, + {0x9839a831, 0xffffd86dffffdf93}, + {0x9839a832, 0xffffd86dffffdf94}, + {0x9839a833, 0xffffd86dffffdf95}, + {0x9839a834, 0xffffd86dffffdf96}, + {0x9839a835, 0xffffd86dffffdf97}, + {0x9839a836, 0xffffd86dffffdf98}, + {0x9839a837, 0xffffd86dffffdf99}, + {0x9839a838, 0xffffd86dffffdf9a}, + {0x9839a839, 0xffffd86dffffdf9b}, + {0x9839a930, 0xffffd86dffffdf9c}, + {0x9839a931, 0xffffd86dffffdf9d}, + {0x9839a932, 0xffffd86dffffdf9e}, + {0x9839a933, 0xffffd86dffffdf9f}, + {0x9839a934, 0xffffd86dffffdfa0}, + {0x9839a935, 0xffffd86dffffdfa1}, + {0x9839a936, 0xffffd86dffffdfa2}, + {0x9839a937, 0xffffd86dffffdfa3}, + {0x9839a938, 0xffffd86dffffdfa4}, + {0x9839a939, 0xffffd86dffffdfa5}, + {0x9839aa30, 0xffffd86dffffdfa6}, + {0x9839aa31, 0xffffd86dffffdfa7}, + {0x9839aa32, 0xffffd86dffffdfa8}, + {0x9839aa33, 0xffffd86dffffdfa9}, + {0x9839aa34, 0xffffd86dffffdfaa}, + {0x9839aa35, 0xffffd86dffffdfab}, + {0x9839aa36, 0xffffd86dffffdfac}, + {0x9839aa37, 0xffffd86dffffdfad}, + {0x9839aa38, 0xffffd86dffffdfae}, + {0x9839aa39, 0xffffd86dffffdfaf}, + {0x9839ab30, 0xffffd86dffffdfb0}, + {0x9839ab31, 0xffffd86dffffdfb1}, + {0x9839ab32, 0xffffd86dffffdfb2}, + {0x9839ab33, 0xffffd86dffffdfb3}, + {0x9839ab34, 0xffffd86dffffdfb4}, + {0x9839ab35, 0xffffd86dffffdfb5}, + {0x9839ab36, 0xffffd86dffffdfb6}, + {0x9839ab37, 0xffffd86dffffdfb7}, + {0x9839ab38, 0xffffd86dffffdfb8}, + {0x9839ab39, 0xffffd86dffffdfb9}, + {0x9839ac30, 0xffffd86dffffdfba}, + {0x9839ac31, 0xffffd86dffffdfbb}, + {0x9839ac32, 0xffffd86dffffdfbc}, + {0x9839ac33, 0xffffd86dffffdfbd}, + {0x9839ac34, 0xffffd86dffffdfbe}, + {0x9839ac35, 0xffffd86dffffdfbf}, + {0x9839ac36, 0xffffd86dffffdfc0}, + {0x9839ac37, 0xffffd86dffffdfc1}, + {0x9839ac38, 0xffffd86dffffdfc2}, + {0x9839ac39, 0xffffd86dffffdfc3}, + {0x9839ad30, 0xffffd86dffffdfc4}, + {0x9839ad31, 0xffffd86dffffdfc5}, + {0x9839ad32, 0xffffd86dffffdfc6}, + {0x9839ad33, 0xffffd86dffffdfc7}, + {0x9839ad34, 0xffffd86dffffdfc8}, + {0x9839ad35, 0xffffd86dffffdfc9}, + {0x9839ad36, 0xffffd86dffffdfca}, + {0x9839ad37, 0xffffd86dffffdfcb}, + {0x9839ad38, 0xffffd86dffffdfcc}, + {0x9839ad39, 0xffffd86dffffdfcd}, + {0x9839ae30, 0xffffd86dffffdfce}, + {0x9839ae31, 0xffffd86dffffdfcf}, + {0x9839ae32, 0xffffd86dffffdfd0}, + {0x9839ae33, 0xffffd86dffffdfd1}, + {0x9839ae34, 0xffffd86dffffdfd2}, + {0x9839ae35, 0xffffd86dffffdfd3}, + {0x9839ae36, 0xffffd86dffffdfd4}, + {0x9839ae37, 0xffffd86dffffdfd5}, + {0x9839ae38, 0xffffd86dffffdfd6}, + {0x9839ae39, 0xffffd86dffffdfd7}, + {0x9839af30, 0xffffd86dffffdfd8}, + {0x9839af31, 0xffffd86dffffdfd9}, + {0x9839af32, 0xffffd86dffffdfda}, + {0x9839af33, 0xffffd86dffffdfdb}, + {0x9839af34, 0xffffd86dffffdfdc}, + {0x9839af35, 0xffffd86dffffdfdd}, + {0x9839af36, 0xffffd86dffffdfde}, + {0x9839af37, 0xffffd86dffffdfdf}, + {0x9839af38, 0xffffd86dffffdfe0}, + {0x9839af39, 0xffffd86dffffdfe1}, + {0x9839b030, 0xffffd86dffffdfe2}, + {0x9839b031, 0xffffd86dffffdfe3}, + {0x9839b032, 0xffffd86dffffdfe4}, + {0x9839b033, 0xffffd86dffffdfe5}, + {0x9839b034, 0xffffd86dffffdfe6}, + {0x9839b035, 0xffffd86dffffdfe7}, + {0x9839b036, 0xffffd86dffffdfe8}, + {0x9839b037, 0xffffd86dffffdfe9}, + {0x9839b038, 0xffffd86dffffdfea}, + {0x9839b039, 0xffffd86dffffdfeb}, + {0x9839b130, 0xffffd86dffffdfec}, + {0x9839b131, 0xffffd86dffffdfed}, + {0x9839b132, 0xffffd86dffffdfee}, + {0x9839b133, 0xffffd86dffffdfef}, + {0x9839b134, 0xffffd86dffffdff0}, + {0x9839b135, 0xffffd86dffffdff1}, + {0x9839b136, 0xffffd86dffffdff2}, + {0x9839b137, 0xffffd86dffffdff3}, + {0x9839b138, 0xffffd86dffffdff4}, + {0x9839b139, 0xffffd86dffffdff5}, + {0x9839b230, 0xffffd86dffffdff6}, + {0x9839b231, 0xffffd86dffffdff7}, + {0x9839b232, 0xffffd86dffffdff8}, + {0x9839b233, 0xffffd86dffffdff9}, + {0x9839b234, 0xffffd86dffffdffa}, + {0x9839b235, 0xffffd86dffffdffb}, + {0x9839b236, 0xffffd86dffffdffc}, + {0x9839b237, 0xffffd86dffffdffd}, + {0x9839b238, 0xffffd86dffffdffe}, + {0x9839b239, 0xffffd86dffffdfff}, + {0x9839b330, 0xffffd86effffdc00}, + {0x9839b331, 0xffffd86effffdc01}, + {0x9839b332, 0xffffd86effffdc02}, + {0x9839b333, 0xffffd86effffdc03}, + {0x9839b334, 0xffffd86effffdc04}, + {0x9839b335, 0xffffd86effffdc05}, + {0x9839b336, 0xffffd86effffdc06}, + {0x9839b337, 0xffffd86effffdc07}, + {0x9839b338, 0xffffd86effffdc08}, + {0x9839b339, 0xffffd86effffdc09}, + {0x9839b430, 0xffffd86effffdc0a}, + {0x9839b431, 0xffffd86effffdc0b}, + {0x9839b432, 0xffffd86effffdc0c}, + {0x9839b433, 0xffffd86effffdc0d}, + {0x9839b434, 0xffffd86effffdc0e}, + {0x9839b435, 0xffffd86effffdc0f}, + {0x9839b436, 0xffffd86effffdc10}, + {0x9839b437, 0xffffd86effffdc11}, + {0x9839b438, 0xffffd86effffdc12}, + {0x9839b439, 0xffffd86effffdc13}, + {0x9839b530, 0xffffd86effffdc14}, + {0x9839b531, 0xffffd86effffdc15}, + {0x9839b532, 0xffffd86effffdc16}, + {0x9839b533, 0xffffd86effffdc17}, + {0x9839b534, 0xffffd86effffdc18}, + {0x9839b535, 0xffffd86effffdc19}, + {0x9839b536, 0xffffd86effffdc1a}, + {0x9839b537, 0xffffd86effffdc1b}, + {0x9839b538, 0xffffd86effffdc1c}, + {0x9839b539, 0xffffd86effffdc1d}, + {0x9839b630, 0xffffd86effffdc1e}, + {0x9839b631, 0xffffd86effffdc1f}, + {0x9839b632, 0xffffd86effffdc20}, + {0x9839b633, 0xffffd86effffdc21}, + {0x9839b634, 0xffffd86effffdc22}, + {0x9839b635, 0xffffd86effffdc23}, + {0x9839b636, 0xffffd86effffdc24}, + {0x9839b637, 0xffffd86effffdc25}, + {0x9839b638, 0xffffd86effffdc26}, + {0x9839b639, 0xffffd86effffdc27}, + {0x9839b730, 0xffffd86effffdc28}, + {0x9839b731, 0xffffd86effffdc29}, + {0x9839b732, 0xffffd86effffdc2a}, + {0x9839b733, 0xffffd86effffdc2b}, + {0x9839b734, 0xffffd86effffdc2c}, + {0x9839b735, 0xffffd86effffdc2d}, + {0x9839b736, 0xffffd86effffdc2e}, + {0x9839b737, 0xffffd86effffdc2f}, + {0x9839b738, 0xffffd86effffdc30}, + {0x9839b739, 0xffffd86effffdc31}, + {0x9839b830, 0xffffd86effffdc32}, + {0x9839b831, 0xffffd86effffdc33}, + {0x9839b832, 0xffffd86effffdc34}, + {0x9839b833, 0xffffd86effffdc35}, + {0x9839b834, 0xffffd86effffdc36}, + {0x9839b835, 0xffffd86effffdc37}, + {0x9839b836, 0xffffd86effffdc38}, + {0x9839b837, 0xffffd86effffdc39}, + {0x9839b838, 0xffffd86effffdc3a}, + {0x9839b839, 0xffffd86effffdc3b}, + {0x9839b930, 0xffffd86effffdc3c}, + {0x9839b931, 0xffffd86effffdc3d}, + {0x9839b932, 0xffffd86effffdc3e}, + {0x9839b933, 0xffffd86effffdc3f}, + {0x9839b934, 0xffffd86effffdc40}, + {0x9839b935, 0xffffd86effffdc41}, + {0x9839b936, 0xffffd86effffdc42}, + {0x9839b937, 0xffffd86effffdc43}, + {0x9839b938, 0xffffd86effffdc44}, + {0x9839b939, 0xffffd86effffdc45}, + {0x9839ba30, 0xffffd86effffdc46}, + {0x9839ba31, 0xffffd86effffdc47}, + {0x9839ba32, 0xffffd86effffdc48}, + {0x9839ba33, 0xffffd86effffdc49}, + {0x9839ba34, 0xffffd86effffdc4a}, + {0x9839ba35, 0xffffd86effffdc4b}, + {0x9839ba36, 0xffffd86effffdc4c}, + {0x9839ba37, 0xffffd86effffdc4d}, + {0x9839ba38, 0xffffd86effffdc4e}, + {0x9839ba39, 0xffffd86effffdc4f}, + {0x9839bb30, 0xffffd86effffdc50}, + {0x9839bb31, 0xffffd86effffdc51}, + {0x9839bb32, 0xffffd86effffdc52}, + {0x9839bb33, 0xffffd86effffdc53}, + {0x9839bb34, 0xffffd86effffdc54}, + {0x9839bb35, 0xffffd86effffdc55}, + {0x9839bb36, 0xffffd86effffdc56}, + {0x9839bb37, 0xffffd86effffdc57}, + {0x9839bb38, 0xffffd86effffdc58}, + {0x9839bb39, 0xffffd86effffdc59}, + {0x9839bc30, 0xffffd86effffdc5a}, + {0x9839bc31, 0xffffd86effffdc5b}, + {0x9839bc32, 0xffffd86effffdc5c}, + {0x9839bc33, 0xffffd86effffdc5d}, + {0x9839bc34, 0xffffd86effffdc5e}, + {0x9839bc35, 0xffffd86effffdc5f}, + {0x9839bc36, 0xffffd86effffdc60}, + {0x9839bc37, 0xffffd86effffdc61}, + {0x9839bc38, 0xffffd86effffdc62}, + {0x9839bc39, 0xffffd86effffdc63}, + {0x9839bd30, 0xffffd86effffdc64}, + {0x9839bd31, 0xffffd86effffdc65}, + {0x9839bd32, 0xffffd86effffdc66}, + {0x9839bd33, 0xffffd86effffdc67}, + {0x9839bd34, 0xffffd86effffdc68}, + {0x9839bd35, 0xffffd86effffdc69}, + {0x9839bd36, 0xffffd86effffdc6a}, + {0x9839bd37, 0xffffd86effffdc6b}, + {0x9839bd38, 0xffffd86effffdc6c}, + {0x9839bd39, 0xffffd86effffdc6d}, + {0x9839be30, 0xffffd86effffdc6e}, + {0x9839be31, 0xffffd86effffdc6f}, + {0x9839be32, 0xffffd86effffdc70}, + {0x9839be33, 0xffffd86effffdc71}, + {0x9839be34, 0xffffd86effffdc72}, + {0x9839be35, 0xffffd86effffdc73}, + {0x9839be36, 0xffffd86effffdc74}, + {0x9839be37, 0xffffd86effffdc75}, + {0x9839be38, 0xffffd86effffdc76}, + {0x9839be39, 0xffffd86effffdc77}, + {0x9839bf30, 0xffffd86effffdc78}, + {0x9839bf31, 0xffffd86effffdc79}, + {0x9839bf32, 0xffffd86effffdc7a}, + {0x9839bf33, 0xffffd86effffdc7b}, + {0x9839bf34, 0xffffd86effffdc7c}, + {0x9839bf35, 0xffffd86effffdc7d}, + {0x9839bf36, 0xffffd86effffdc7e}, + {0x9839bf37, 0xffffd86effffdc7f}, + {0x9839bf38, 0xffffd86effffdc80}, + {0x9839bf39, 0xffffd86effffdc81}, + {0x9839c030, 0xffffd86effffdc82}, + {0x9839c031, 0xffffd86effffdc83}, + {0x9839c032, 0xffffd86effffdc84}, + {0x9839c033, 0xffffd86effffdc85}, + {0x9839c034, 0xffffd86effffdc86}, + {0x9839c035, 0xffffd86effffdc87}, + {0x9839c036, 0xffffd86effffdc88}, + {0x9839c037, 0xffffd86effffdc89}, + {0x9839c038, 0xffffd86effffdc8a}, + {0x9839c039, 0xffffd86effffdc8b}, + {0x9839c130, 0xffffd86effffdc8c}, + {0x9839c131, 0xffffd86effffdc8d}, + {0x9839c132, 0xffffd86effffdc8e}, + {0x9839c133, 0xffffd86effffdc8f}, + {0x9839c134, 0xffffd86effffdc90}, + {0x9839c135, 0xffffd86effffdc91}, + {0x9839c136, 0xffffd86effffdc92}, + {0x9839c137, 0xffffd86effffdc93}, + {0x9839c138, 0xffffd86effffdc94}, + {0x9839c139, 0xffffd86effffdc95}, + {0x9839c230, 0xffffd86effffdc96}, + {0x9839c231, 0xffffd86effffdc97}, + {0x9839c232, 0xffffd86effffdc98}, + {0x9839c233, 0xffffd86effffdc99}, + {0x9839c234, 0xffffd86effffdc9a}, + {0x9839c235, 0xffffd86effffdc9b}, + {0x9839c236, 0xffffd86effffdc9c}, + {0x9839c237, 0xffffd86effffdc9d}, + {0x9839c238, 0xffffd86effffdc9e}, + {0x9839c239, 0xffffd86effffdc9f}, + {0x9839c330, 0xffffd86effffdca0}, + {0x9839c331, 0xffffd86effffdca1}, + {0x9839c332, 0xffffd86effffdca2}, + {0x9839c333, 0xffffd86effffdca3}, + {0x9839c334, 0xffffd86effffdca4}, + {0x9839c335, 0xffffd86effffdca5}, + {0x9839c336, 0xffffd86effffdca6}, + {0x9839c337, 0xffffd86effffdca7}, + {0x9839c338, 0xffffd86effffdca8}, + {0x9839c339, 0xffffd86effffdca9}, + {0x9839c430, 0xffffd86effffdcaa}, + {0x9839c431, 0xffffd86effffdcab}, + {0x9839c432, 0xffffd86effffdcac}, + {0x9839c433, 0xffffd86effffdcad}, + {0x9839c434, 0xffffd86effffdcae}, + {0x9839c435, 0xffffd86effffdcaf}, + {0x9839c436, 0xffffd86effffdcb0}, + {0x9839c437, 0xffffd86effffdcb1}, + {0x9839c438, 0xffffd86effffdcb2}, + {0x9839c439, 0xffffd86effffdcb3}, + {0x9839c530, 0xffffd86effffdcb4}, + {0x9839c531, 0xffffd86effffdcb5}, + {0x9839c532, 0xffffd86effffdcb6}, + {0x9839c533, 0xffffd86effffdcb7}, + {0x9839c534, 0xffffd86effffdcb8}, + {0x9839c535, 0xffffd86effffdcb9}, + {0x9839c536, 0xffffd86effffdcba}, + {0x9839c537, 0xffffd86effffdcbb}, + {0x9839c538, 0xffffd86effffdcbc}, + {0x9839c539, 0xffffd86effffdcbd}, + {0x9839c630, 0xffffd86effffdcbe}, + {0x9839c631, 0xffffd86effffdcbf}, + {0x9839c632, 0xffffd86effffdcc0}, + {0x9839c633, 0xffffd86effffdcc1}, + {0x9839c634, 0xffffd86effffdcc2}, + {0x9839c635, 0xffffd86effffdcc3}, + {0x9839c636, 0xffffd86effffdcc4}, + {0x9839c637, 0xffffd86effffdcc5}, + {0x9839c638, 0xffffd86effffdcc6}, + {0x9839c639, 0xffffd86effffdcc7}, + {0x9839c730, 0xffffd86effffdcc8}, + {0x9839c731, 0xffffd86effffdcc9}, + {0x9839c732, 0xffffd86effffdcca}, + {0x9839c733, 0xffffd86effffdccb}, + {0x9839c734, 0xffffd86effffdccc}, + {0x9839c735, 0xffffd86effffdccd}, + {0x9839c736, 0xffffd86effffdcce}, + {0x9839c737, 0xffffd86effffdccf}, + {0x9839c738, 0xffffd86effffdcd0}, + {0x9839c739, 0xffffd86effffdcd1}, + {0x9839c830, 0xffffd86effffdcd2}, + {0x9839c831, 0xffffd86effffdcd3}, + {0x9839c832, 0xffffd86effffdcd4}, + {0x9839c833, 0xffffd86effffdcd5}, + {0x9839c834, 0xffffd86effffdcd6}, + {0x9839c835, 0xffffd86effffdcd7}, + {0x9839c836, 0xffffd86effffdcd8}, + {0x9839c837, 0xffffd86effffdcd9}, + {0x9839c838, 0xffffd86effffdcda}, + {0x9839c839, 0xffffd86effffdcdb}, + {0x9839c930, 0xffffd86effffdcdc}, + {0x9839c931, 0xffffd86effffdcdd}, + {0x9839c932, 0xffffd86effffdcde}, + {0x9839c933, 0xffffd86effffdcdf}, + {0x9839c934, 0xffffd86effffdce0}, + {0x9839c935, 0xffffd86effffdce1}, + {0x9839c936, 0xffffd86effffdce2}, + {0x9839c937, 0xffffd86effffdce3}, + {0x9839c938, 0xffffd86effffdce4}, + {0x9839c939, 0xffffd86effffdce5}, + {0x9839ca30, 0xffffd86effffdce6}, + {0x9839ca31, 0xffffd86effffdce7}, + {0x9839ca32, 0xffffd86effffdce8}, + {0x9839ca33, 0xffffd86effffdce9}, + {0x9839ca34, 0xffffd86effffdcea}, + {0x9839ca35, 0xffffd86effffdceb}, + {0x9839ca36, 0xffffd86effffdcec}, + {0x9839ca37, 0xffffd86effffdced}, + {0x9839ca38, 0xffffd86effffdcee}, + {0x9839ca39, 0xffffd86effffdcef}, + {0x9839cb30, 0xffffd86effffdcf0}, + {0x9839cb31, 0xffffd86effffdcf1}, + {0x9839cb32, 0xffffd86effffdcf2}, + {0x9839cb33, 0xffffd86effffdcf3}, + {0x9839cb34, 0xffffd86effffdcf4}, + {0x9839cb35, 0xffffd86effffdcf5}, + {0x9839cb36, 0xffffd86effffdcf6}, + {0x9839cb37, 0xffffd86effffdcf7}, + {0x9839cb38, 0xffffd86effffdcf8}, + {0x9839cb39, 0xffffd86effffdcf9}, + {0x9839cc30, 0xffffd86effffdcfa}, + {0x9839cc31, 0xffffd86effffdcfb}, + {0x9839cc32, 0xffffd86effffdcfc}, + {0x9839cc33, 0xffffd86effffdcfd}, + {0x9839cc34, 0xffffd86effffdcfe}, + {0x9839cc35, 0xffffd86effffdcff}, + {0x9839cc36, 0xffffd86effffdd00}, + {0x9839cc37, 0xffffd86effffdd01}, + {0x9839cc38, 0xffffd86effffdd02}, + {0x9839cc39, 0xffffd86effffdd03}, + {0x9839cd30, 0xffffd86effffdd04}, + {0x9839cd31, 0xffffd86effffdd05}, + {0x9839cd32, 0xffffd86effffdd06}, + {0x9839cd33, 0xffffd86effffdd07}, + {0x9839cd34, 0xffffd86effffdd08}, + {0x9839cd35, 0xffffd86effffdd09}, + {0x9839cd36, 0xffffd86effffdd0a}, + {0x9839cd37, 0xffffd86effffdd0b}, + {0x9839cd38, 0xffffd86effffdd0c}, + {0x9839cd39, 0xffffd86effffdd0d}, + {0x9839ce30, 0xffffd86effffdd0e}, + {0x9839ce31, 0xffffd86effffdd0f}, + {0x9839ce32, 0xffffd86effffdd10}, + {0x9839ce33, 0xffffd86effffdd11}, + {0x9839ce34, 0xffffd86effffdd12}, + {0x9839ce35, 0xffffd86effffdd13}, + {0x9839ce36, 0xffffd86effffdd14}, + {0x9839ce37, 0xffffd86effffdd15}, + {0x9839ce38, 0xffffd86effffdd16}, + {0x9839ce39, 0xffffd86effffdd17}, + {0x9839cf30, 0xffffd86effffdd18}, + {0x9839cf31, 0xffffd86effffdd19}, + {0x9839cf32, 0xffffd86effffdd1a}, + {0x9839cf33, 0xffffd86effffdd1b}, + {0x9839cf34, 0xffffd86effffdd1c}, + {0x9839cf35, 0xffffd86effffdd1d}, + {0x9839cf36, 0xffffd86effffdd1e}, + {0x9839cf37, 0xffffd86effffdd1f}, + {0x9839cf38, 0xffffd86effffdd20}, + {0x9839cf39, 0xffffd86effffdd21}, + {0x9839d030, 0xffffd86effffdd22}, + {0x9839d031, 0xffffd86effffdd23}, + {0x9839d032, 0xffffd86effffdd24}, + {0x9839d033, 0xffffd86effffdd25}, + {0x9839d034, 0xffffd86effffdd26}, + {0x9839d035, 0xffffd86effffdd27}, + {0x9839d036, 0xffffd86effffdd28}, + {0x9839d037, 0xffffd86effffdd29}, + {0x9839d038, 0xffffd86effffdd2a}, + {0x9839d039, 0xffffd86effffdd2b}, + {0x9839d130, 0xffffd86effffdd2c}, + {0x9839d131, 0xffffd86effffdd2d}, + {0x9839d132, 0xffffd86effffdd2e}, + {0x9839d133, 0xffffd86effffdd2f}, + {0x9839d134, 0xffffd86effffdd30}, + {0x9839d135, 0xffffd86effffdd31}, + {0x9839d136, 0xffffd86effffdd32}, + {0x9839d137, 0xffffd86effffdd33}, + {0x9839d138, 0xffffd86effffdd34}, + {0x9839d139, 0xffffd86effffdd35}, + {0x9839d230, 0xffffd86effffdd36}, + {0x9839d231, 0xffffd86effffdd37}, + {0x9839d232, 0xffffd86effffdd38}, + {0x9839d233, 0xffffd86effffdd39}, + {0x9839d234, 0xffffd86effffdd3a}, + {0x9839d235, 0xffffd86effffdd3b}, + {0x9839d236, 0xffffd86effffdd3c}, + {0x9839d237, 0xffffd86effffdd3d}, + {0x9839d238, 0xffffd86effffdd3e}, + {0x9839d239, 0xffffd86effffdd3f}, + {0x9839d330, 0xffffd86effffdd40}, + {0x9839d331, 0xffffd86effffdd41}, + {0x9839d332, 0xffffd86effffdd42}, + {0x9839d333, 0xffffd86effffdd43}, + {0x9839d334, 0xffffd86effffdd44}, + {0x9839d335, 0xffffd86effffdd45}, + {0x9839d336, 0xffffd86effffdd46}, + {0x9839d337, 0xffffd86effffdd47}, + {0x9839d338, 0xffffd86effffdd48}, + {0x9839d339, 0xffffd86effffdd49}, + {0x9839d430, 0xffffd86effffdd4a}, + {0x9839d431, 0xffffd86effffdd4b}, + {0x9839d432, 0xffffd86effffdd4c}, + {0x9839d433, 0xffffd86effffdd4d}, + {0x9839d434, 0xffffd86effffdd4e}, + {0x9839d435, 0xffffd86effffdd4f}, + {0x9839d436, 0xffffd86effffdd50}, + {0x9839d437, 0xffffd86effffdd51}, + {0x9839d438, 0xffffd86effffdd52}, + {0x9839d439, 0xffffd86effffdd53}, + {0x9839d530, 0xffffd86effffdd54}, + {0x9839d531, 0xffffd86effffdd55}, + {0x9839d532, 0xffffd86effffdd56}, + {0x9839d533, 0xffffd86effffdd57}, + {0x9839d534, 0xffffd86effffdd58}, + {0x9839d535, 0xffffd86effffdd59}, + {0x9839d536, 0xffffd86effffdd5a}, + {0x9839d537, 0xffffd86effffdd5b}, + {0x9839d538, 0xffffd86effffdd5c}, + {0x9839d539, 0xffffd86effffdd5d}, + {0x9839d630, 0xffffd86effffdd5e}, + {0x9839d631, 0xffffd86effffdd5f}, + {0x9839d632, 0xffffd86effffdd60}, + {0x9839d633, 0xffffd86effffdd61}, + {0x9839d634, 0xffffd86effffdd62}, + {0x9839d635, 0xffffd86effffdd63}, + {0x9839d636, 0xffffd86effffdd64}, + {0x9839d637, 0xffffd86effffdd65}, + {0x9839d638, 0xffffd86effffdd66}, + {0x9839d639, 0xffffd86effffdd67}, + {0x9839d730, 0xffffd86effffdd68}, + {0x9839d731, 0xffffd86effffdd69}, + {0x9839d732, 0xffffd86effffdd6a}, + {0x9839d733, 0xffffd86effffdd6b}, + {0x9839d734, 0xffffd86effffdd6c}, + {0x9839d735, 0xffffd86effffdd6d}, + {0x9839d736, 0xffffd86effffdd6e}, + {0x9839d737, 0xffffd86effffdd6f}, + {0x9839d738, 0xffffd86effffdd70}, + {0x9839d739, 0xffffd86effffdd71}, + {0x9839d830, 0xffffd86effffdd72}, + {0x9839d831, 0xffffd86effffdd73}, + {0x9839d832, 0xffffd86effffdd74}, + {0x9839d833, 0xffffd86effffdd75}, + {0x9839d834, 0xffffd86effffdd76}, + {0x9839d835, 0xffffd86effffdd77}, + {0x9839d836, 0xffffd86effffdd78}, + {0x9839d837, 0xffffd86effffdd79}, + {0x9839d838, 0xffffd86effffdd7a}, + {0x9839d839, 0xffffd86effffdd7b}, + {0x9839d930, 0xffffd86effffdd7c}, + {0x9839d931, 0xffffd86effffdd7d}, + {0x9839d932, 0xffffd86effffdd7e}, + {0x9839d933, 0xffffd86effffdd7f}, + {0x9839d934, 0xffffd86effffdd80}, + {0x9839d935, 0xffffd86effffdd81}, + {0x9839d936, 0xffffd86effffdd82}, + {0x9839d937, 0xffffd86effffdd83}, + {0x9839d938, 0xffffd86effffdd84}, + {0x9839d939, 0xffffd86effffdd85}, + {0x9839da30, 0xffffd86effffdd86}, + {0x9839da31, 0xffffd86effffdd87}, + {0x9839da32, 0xffffd86effffdd88}, + {0x9839da33, 0xffffd86effffdd89}, + {0x9839da34, 0xffffd86effffdd8a}, + {0x9839da35, 0xffffd86effffdd8b}, + {0x9839da36, 0xffffd86effffdd8c}, + {0x9839da37, 0xffffd86effffdd8d}, + {0x9839da38, 0xffffd86effffdd8e}, + {0x9839da39, 0xffffd86effffdd8f}, + {0x9839db30, 0xffffd86effffdd90}, + {0x9839db31, 0xffffd86effffdd91}, + {0x9839db32, 0xffffd86effffdd92}, + {0x9839db33, 0xffffd86effffdd93}, + {0x9839db34, 0xffffd86effffdd94}, + {0x9839db35, 0xffffd86effffdd95}, + {0x9839db36, 0xffffd86effffdd96}, + {0x9839db37, 0xffffd86effffdd97}, + {0x9839db38, 0xffffd86effffdd98}, + {0x9839db39, 0xffffd86effffdd99}, + {0x9839dc30, 0xffffd86effffdd9a}, + {0x9839dc31, 0xffffd86effffdd9b}, + {0x9839dc32, 0xffffd86effffdd9c}, + {0x9839dc33, 0xffffd86effffdd9d}, + {0x9839dc34, 0xffffd86effffdd9e}, + {0x9839dc35, 0xffffd86effffdd9f}, + {0x9839dc36, 0xffffd86effffdda0}, + {0x9839dc37, 0xffffd86effffdda1}, + {0x9839dc38, 0xffffd86effffdda2}, + {0x9839dc39, 0xffffd86effffdda3}, + {0x9839dd30, 0xffffd86effffdda4}, + {0x9839dd31, 0xffffd86effffdda5}, + {0x9839dd32, 0xffffd86effffdda6}, + {0x9839dd33, 0xffffd86effffdda7}, + {0x9839dd34, 0xffffd86effffdda8}, + {0x9839dd35, 0xffffd86effffdda9}, + {0x9839dd36, 0xffffd86effffddaa}, + {0x9839dd37, 0xffffd86effffddab}, + {0x9839dd38, 0xffffd86effffddac}, + {0x9839dd39, 0xffffd86effffddad}, + {0x9839de30, 0xffffd86effffddae}, + {0x9839de31, 0xffffd86effffddaf}, + {0x9839de32, 0xffffd86effffddb0}, + {0x9839de33, 0xffffd86effffddb1}, + {0x9839de34, 0xffffd86effffddb2}, + {0x9839de35, 0xffffd86effffddb3}, + {0x9839de36, 0xffffd86effffddb4}, + {0x9839de37, 0xffffd86effffddb5}, + {0x9839de38, 0xffffd86effffddb6}, + {0x9839de39, 0xffffd86effffddb7}, + {0x9839df30, 0xffffd86effffddb8}, + {0x9839df31, 0xffffd86effffddb9}, + {0x9839df32, 0xffffd86effffddba}, + {0x9839df33, 0xffffd86effffddbb}, + {0x9839df34, 0xffffd86effffddbc}, + {0x9839df35, 0xffffd86effffddbd}, + {0x9839df36, 0xffffd86effffddbe}, + {0x9839df37, 0xffffd86effffddbf}, + {0x9839df38, 0xffffd86effffddc0}, + {0x9839df39, 0xffffd86effffddc1}, + {0x9839e030, 0xffffd86effffddc2}, + {0x9839e031, 0xffffd86effffddc3}, + {0x9839e032, 0xffffd86effffddc4}, + {0x9839e033, 0xffffd86effffddc5}, + {0x9839e034, 0xffffd86effffddc6}, + {0x9839e035, 0xffffd86effffddc7}, + {0x9839e036, 0xffffd86effffddc8}, + {0x9839e037, 0xffffd86effffddc9}, + {0x9839e038, 0xffffd86effffddca}, + {0x9839e039, 0xffffd86effffddcb}, + {0x9839e130, 0xffffd86effffddcc}, + {0x9839e131, 0xffffd86effffddcd}, + {0x9839e132, 0xffffd86effffddce}, + {0x9839e133, 0xffffd86effffddcf}, + {0x9839e134, 0xffffd86effffddd0}, + {0x9839e135, 0xffffd86effffddd1}, + {0x9839e136, 0xffffd86effffddd2}, + {0x9839e137, 0xffffd86effffddd3}, + {0x9839e138, 0xffffd86effffddd4}, + {0x9839e139, 0xffffd86effffddd5}, + {0x9839e230, 0xffffd86effffddd6}, + {0x9839e231, 0xffffd86effffddd7}, + {0x9839e232, 0xffffd86effffddd8}, + {0x9839e233, 0xffffd86effffddd9}, + {0x9839e234, 0xffffd86effffddda}, + {0x9839e235, 0xffffd86effffdddb}, + {0x9839e236, 0xffffd86effffdddc}, + {0x9839e237, 0xffffd86effffdddd}, + {0x9839e238, 0xffffd86effffddde}, + {0x9839e239, 0xffffd86effffdddf}, + {0x9839e330, 0xffffd86effffdde0}, + {0x9839e331, 0xffffd86effffdde1}, + {0x9839e332, 0xffffd86effffdde2}, + {0x9839e333, 0xffffd86effffdde3}, + {0x9839e334, 0xffffd86effffdde4}, + {0x9839e335, 0xffffd86effffdde5}, + {0x9839e336, 0xffffd86effffdde6}, + {0x9839e337, 0xffffd86effffdde7}, + {0x9839e338, 0xffffd86effffdde8}, + {0x9839e339, 0xffffd86effffdde9}, + {0x9839e430, 0xffffd86effffddea}, + {0x9839e431, 0xffffd86effffddeb}, + {0x9839e432, 0xffffd86effffddec}, + {0x9839e433, 0xffffd86effffdded}, + {0x9839e434, 0xffffd86effffddee}, + {0x9839e435, 0xffffd86effffddef}, + {0x9839e436, 0xffffd86effffddf0}, + {0x9839e437, 0xffffd86effffddf1}, + {0x9839e438, 0xffffd86effffddf2}, + {0x9839e439, 0xffffd86effffddf3}, + {0x9839e530, 0xffffd86effffddf4}, + {0x9839e531, 0xffffd86effffddf5}, + {0x9839e532, 0xffffd86effffddf6}, + {0x9839e533, 0xffffd86effffddf7}, + {0x9839e534, 0xffffd86effffddf8}, + {0x9839e535, 0xffffd86effffddf9}, + {0x9839e536, 0xffffd86effffddfa}, + {0x9839e537, 0xffffd86effffddfb}, + {0x9839e538, 0xffffd86effffddfc}, + {0x9839e539, 0xffffd86effffddfd}, + {0x9839e630, 0xffffd86effffddfe}, + {0x9839e631, 0xffffd86effffddff}, + {0x9839e632, 0xffffd86effffde00}, + {0x9839e633, 0xffffd86effffde01}, + {0x9839e634, 0xffffd86effffde02}, + {0x9839e635, 0xffffd86effffde03}, + {0x9839e636, 0xffffd86effffde04}, + {0x9839e637, 0xffffd86effffde05}, + {0x9839e638, 0xffffd86effffde06}, + {0x9839e639, 0xffffd86effffde07}, + {0x9839e730, 0xffffd86effffde08}, + {0x9839e731, 0xffffd86effffde09}, + {0x9839e732, 0xffffd86effffde0a}, + {0x9839e733, 0xffffd86effffde0b}, + {0x9839e734, 0xffffd86effffde0c}, + {0x9839e735, 0xffffd86effffde0d}, + {0x9839e736, 0xffffd86effffde0e}, + {0x9839e737, 0xffffd86effffde0f}, + {0x9839e738, 0xffffd86effffde10}, + {0x9839e739, 0xffffd86effffde11}, + {0x9839e830, 0xffffd86effffde12}, + {0x9839e831, 0xffffd86effffde13}, + {0x9839e832, 0xffffd86effffde14}, + {0x9839e833, 0xffffd86effffde15}, + {0x9839e834, 0xffffd86effffde16}, + {0x9839e835, 0xffffd86effffde17}, + {0x9839e836, 0xffffd86effffde18}, + {0x9839e837, 0xffffd86effffde19}, + {0x9839e838, 0xffffd86effffde1a}, + {0x9839e839, 0xffffd86effffde1b}, + {0x9839e930, 0xffffd86effffde1c}, + {0x9839e931, 0xffffd86effffde1d}, + {0x9839e932, 0xffffd86effffde1e}, + {0x9839e933, 0xffffd86effffde1f}, + {0x9839e934, 0xffffd86effffde20}, + {0x9839e935, 0xffffd86effffde21}, + {0x9839e936, 0xffffd86effffde22}, + {0x9839e937, 0xffffd86effffde23}, + {0x9839e938, 0xffffd86effffde24}, + {0x9839e939, 0xffffd86effffde25}, + {0x9839ea30, 0xffffd86effffde26}, + {0x9839ea31, 0xffffd86effffde27}, + {0x9839ea32, 0xffffd86effffde28}, + {0x9839ea33, 0xffffd86effffde29}, + {0x9839ea34, 0xffffd86effffde2a}, + {0x9839ea35, 0xffffd86effffde2b}, + {0x9839ea36, 0xffffd86effffde2c}, + {0x9839ea37, 0xffffd86effffde2d}, + {0x9839ea38, 0xffffd86effffde2e}, + {0x9839ea39, 0xffffd86effffde2f}, + {0x9839eb30, 0xffffd86effffde30}, + {0x9839eb31, 0xffffd86effffde31}, + {0x9839eb32, 0xffffd86effffde32}, + {0x9839eb33, 0xffffd86effffde33}, + {0x9839eb34, 0xffffd86effffde34}, + {0x9839eb35, 0xffffd86effffde35}, + {0x9839eb36, 0xffffd86effffde36}, + {0x9839eb37, 0xffffd86effffde37}, + {0x9839eb38, 0xffffd86effffde38}, + {0x9839eb39, 0xffffd86effffde39}, + {0x9839ec30, 0xffffd86effffde3a}, + {0x9839ec31, 0xffffd86effffde3b}, + {0x9839ec32, 0xffffd86effffde3c}, + {0x9839ec33, 0xffffd86effffde3d}, + {0x9839ec34, 0xffffd86effffde3e}, + {0x9839ec35, 0xffffd86effffde3f}, + {0x9839ec36, 0xffffd86effffde40}, + {0x9839ec37, 0xffffd86effffde41}, + {0x9839ec38, 0xffffd86effffde42}, + {0x9839ec39, 0xffffd86effffde43}, + {0x9839ed30, 0xffffd86effffde44}, + {0x9839ed31, 0xffffd86effffde45}, + {0x9839ed32, 0xffffd86effffde46}, + {0x9839ed33, 0xffffd86effffde47}, + {0x9839ed34, 0xffffd86effffde48}, + {0x9839ed35, 0xffffd86effffde49}, + {0x9839ed36, 0xffffd86effffde4a}, + {0x9839ed37, 0xffffd86effffde4b}, + {0x9839ed38, 0xffffd86effffde4c}, + {0x9839ed39, 0xffffd86effffde4d}, + {0x9839ee30, 0xffffd86effffde4e}, + {0x9839ee31, 0xffffd86effffde4f}, + {0x9839ee32, 0xffffd86effffde50}, + {0x9839ee33, 0xffffd86effffde51}, + {0x9839ee34, 0xffffd86effffde52}, + {0x9839ee35, 0xffffd86effffde53}, + {0x9839ee36, 0xffffd86effffde54}, + {0x9839ee37, 0xffffd86effffde55}, + {0x9839ee38, 0xffffd86effffde56}, + {0x9839ee39, 0xffffd86effffde57}, + {0x9839ef30, 0xffffd86effffde58}, + {0x9839ef31, 0xffffd86effffde59}, + {0x9839ef32, 0xffffd86effffde5a}, + {0x9839ef33, 0xffffd86effffde5b}, + {0x9839ef34, 0xffffd86effffde5c}, + {0x9839ef35, 0xffffd86effffde5d}, + {0x9839ef36, 0xffffd86effffde5e}, + {0x9839ef37, 0xffffd86effffde5f}, + {0x9839ef38, 0xffffd86effffde60}, + {0x9839ef39, 0xffffd86effffde61}, + {0x9839f030, 0xffffd86effffde62}, + {0x9839f031, 0xffffd86effffde63}, + {0x9839f032, 0xffffd86effffde64}, + {0x9839f033, 0xffffd86effffde65}, + {0x9839f034, 0xffffd86effffde66}, + {0x9839f035, 0xffffd86effffde67}, + {0x9839f036, 0xffffd86effffde68}, + {0x9839f037, 0xffffd86effffde69}, + {0x9839f038, 0xffffd86effffde6a}, + {0x9839f039, 0xffffd86effffde6b}, + {0x9839f130, 0xffffd86effffde6c}, + {0x9839f131, 0xffffd86effffde6d}, + {0x9839f132, 0xffffd86effffde6e}, + {0x9839f133, 0xffffd86effffde6f}, + {0x9839f134, 0xffffd86effffde70}, + {0x9839f135, 0xffffd86effffde71}, + {0x9839f136, 0xffffd86effffde72}, + {0x9839f137, 0xffffd86effffde73}, + {0x9839f138, 0xffffd86effffde74}, + {0x9839f139, 0xffffd86effffde75}, + {0x9839f230, 0xffffd86effffde76}, + {0x9839f231, 0xffffd86effffde77}, + {0x9839f232, 0xffffd86effffde78}, + {0x9839f233, 0xffffd86effffde79}, + {0x9839f234, 0xffffd86effffde7a}, + {0x9839f235, 0xffffd86effffde7b}, + {0x9839f236, 0xffffd86effffde7c}, + {0x9839f237, 0xffffd86effffde7d}, + {0x9839f238, 0xffffd86effffde7e}, + {0x9839f239, 0xffffd86effffde7f}, + {0x9839f330, 0xffffd86effffde80}, + {0x9839f331, 0xffffd86effffde81}, + {0x9839f332, 0xffffd86effffde82}, + {0x9839f333, 0xffffd86effffde83}, + {0x9839f334, 0xffffd86effffde84}, + {0x9839f335, 0xffffd86effffde85}, + {0x9839f336, 0xffffd86effffde86}, + {0x9839f337, 0xffffd86effffde87}, + {0x9839f338, 0xffffd86effffde88}, + {0x9839f339, 0xffffd86effffde89}, + {0x9839f430, 0xffffd86effffde8a}, + {0x9839f431, 0xffffd86effffde8b}, + {0x9839f432, 0xffffd86effffde8c}, + {0x9839f433, 0xffffd86effffde8d}, + {0x9839f434, 0xffffd86effffde8e}, + {0x9839f435, 0xffffd86effffde8f}, + {0x9839f436, 0xffffd86effffde90}, + {0x9839f437, 0xffffd86effffde91}, + {0x9839f438, 0xffffd86effffde92}, + {0x9839f439, 0xffffd86effffde93}, + {0x9839f530, 0xffffd86effffde94}, + {0x9839f531, 0xffffd86effffde95}, + {0x9839f532, 0xffffd86effffde96}, + {0x9839f533, 0xffffd86effffde97}, + {0x9839f534, 0xffffd86effffde98}, + {0x9839f535, 0xffffd86effffde99}, + {0x9839f536, 0xffffd86effffde9a}, + {0x9839f537, 0xffffd86effffde9b}, + {0x9839f538, 0xffffd86effffde9c}, + {0x9839f539, 0xffffd86effffde9d}, + {0x9839f630, 0xffffd86effffde9e}, + {0x9839f631, 0xffffd86effffde9f}, + {0x9839f632, 0xffffd86effffdea0}, + {0x9839f633, 0xffffd86effffdea1}, + {0x9839f634, 0xffffd86effffdea2}, + {0x9839f635, 0xffffd86effffdea3}, + {0x9839f636, 0xffffd86effffdea4}, + {0x9839f637, 0xffffd86effffdea5}, + {0x9839f638, 0xffffd86effffdea6}, + {0x9839f639, 0xffffd86effffdea7}, + {0x9839f730, 0xffffd86effffdea8}, + {0x9839f731, 0xffffd86effffdea9}, + {0x9839f732, 0xffffd86effffdeaa}, + {0x9839f733, 0xffffd86effffdeab}, + {0x9839f734, 0xffffd86effffdeac}, + {0x9839f735, 0xffffd86effffdead}, + {0x9839f736, 0xffffd86effffdeae}, + {0x9839f737, 0xffffd86effffdeaf}, + {0x9839f738, 0xffffd86effffdeb0}, + {0x9839f739, 0xffffd86effffdeb1}, + {0x9839f830, 0xffffd86effffdeb2}, + {0x9839f831, 0xffffd86effffdeb3}, + {0x9839f832, 0xffffd86effffdeb4}, + {0x9839f833, 0xffffd86effffdeb5}, + {0x9839f834, 0xffffd86effffdeb6}, + {0x9839f835, 0xffffd86effffdeb7}, + {0x9839f836, 0xffffd86effffdeb8}, + {0x9839f837, 0xffffd86effffdeb9}, + {0x9839f838, 0xffffd86effffdeba}, + {0x9839f839, 0xffffd86effffdebb}, + {0x9839f930, 0xffffd86effffdebc}, + {0x9839f931, 0xffffd86effffdebd}, + {0x9839f932, 0xffffd86effffdebe}, + {0x9839f933, 0xffffd86effffdebf}, + {0x9839f934, 0xffffd86effffdec0}, + {0x9839f935, 0xffffd86effffdec1}, + {0x9839f936, 0xffffd86effffdec2}, + {0x9839f937, 0xffffd86effffdec3}, + {0x9839f938, 0xffffd86effffdec4}, + {0x9839f939, 0xffffd86effffdec5}, + {0x9839fa30, 0xffffd86effffdec6}, + {0x9839fa31, 0xffffd86effffdec7}, + {0x9839fa32, 0xffffd86effffdec8}, + {0x9839fa33, 0xffffd86effffdec9}, + {0x9839fa34, 0xffffd86effffdeca}, + {0x9839fa35, 0xffffd86effffdecb}, + {0x9839fa36, 0xffffd86effffdecc}, + {0x9839fa37, 0xffffd86effffdecd}, + {0x9839fa38, 0xffffd86effffdece}, + {0x9839fa39, 0xffffd86effffdecf}, + {0x9839fb30, 0xffffd86effffded0}, + {0x9839fb31, 0xffffd86effffded1}, + {0x9839fb32, 0xffffd86effffded2}, + {0x9839fb33, 0xffffd86effffded3}, + {0x9839fb34, 0xffffd86effffded4}, + {0x9839fb35, 0xffffd86effffded5}, + {0x9839fb36, 0xffffd86effffded6}, + {0x9839fb37, 0xffffd86effffded7}, + {0x9839fb38, 0xffffd86effffded8}, + {0x9839fb39, 0xffffd86effffded9}, + {0x9839fc30, 0xffffd86effffdeda}, + {0x9839fc31, 0xffffd86effffdedb}, + {0x9839fc32, 0xffffd86effffdedc}, + {0x9839fc33, 0xffffd86effffdedd}, + {0x9839fc34, 0xffffd86effffdede}, + {0x9839fc35, 0xffffd86effffdedf}, + {0x9839fc36, 0xffffd86effffdee0}, + {0x9839fc37, 0xffffd86effffdee1}, + {0x9839fc38, 0xffffd86effffdee2}, + {0x9839fc39, 0xffffd86effffdee3}, + {0x9839fd30, 0xffffd86effffdee4}, + {0x9839fd31, 0xffffd86effffdee5}, + {0x9839fd32, 0xffffd86effffdee6}, + {0x9839fd33, 0xffffd86effffdee7}, + {0x9839fd34, 0xffffd86effffdee8}, + {0x9839fd35, 0xffffd86effffdee9}, + {0x9839fd36, 0xffffd86effffdeea}, + {0x9839fd37, 0xffffd86effffdeeb}, + {0x9839fd38, 0xffffd86effffdeec}, + {0x9839fd39, 0xffffd86effffdeed}, + {0x9839fe30, 0xffffd86effffdeee}, + {0x9839fe31, 0xffffd86effffdeef}, + {0x9839fe32, 0xffffd86effffdef0}, + {0x9839fe33, 0xffffd86effffdef1}, + {0x9839fe34, 0xffffd86effffdef2}, + {0x9839fe35, 0xffffd86effffdef3}, + {0x9839fe36, 0xffffd86effffdef4}, + {0x9839fe37, 0xffffd86effffdef5}, + {0x9839fe38, 0xffffd86effffdef6}, + {0x9839fe39, 0xffffd86effffdef7}, + {0x99308130, 0xffffd86effffdef8}, + {0x99308131, 0xffffd86effffdef9}, + {0x99308132, 0xffffd86effffdefa}, + {0x99308133, 0xffffd86effffdefb}, + {0x99308134, 0xffffd86effffdefc}, + {0x99308135, 0xffffd86effffdefd}, + {0x99308136, 0xffffd86effffdefe}, + {0x99308137, 0xffffd86effffdeff}, + {0x99308138, 0xffffd86effffdf00}, + {0x99308139, 0xffffd86effffdf01}, + {0x99308230, 0xffffd86effffdf02}, + {0x99308231, 0xffffd86effffdf03}, + {0x99308232, 0xffffd86effffdf04}, + {0x99308233, 0xffffd86effffdf05}, + {0x99308234, 0xffffd86effffdf06}, + {0x99308235, 0xffffd86effffdf07}, + {0x99308236, 0xffffd86effffdf08}, + {0x99308237, 0xffffd86effffdf09}, + {0x99308238, 0xffffd86effffdf0a}, + {0x99308239, 0xffffd86effffdf0b}, + {0x99308330, 0xffffd86effffdf0c}, + {0x99308331, 0xffffd86effffdf0d}, + {0x99308332, 0xffffd86effffdf0e}, + {0x99308333, 0xffffd86effffdf0f}, + {0x99308334, 0xffffd86effffdf10}, + {0x99308335, 0xffffd86effffdf11}, + {0x99308336, 0xffffd86effffdf12}, + {0x99308337, 0xffffd86effffdf13}, + {0x99308338, 0xffffd86effffdf14}, + {0x99308339, 0xffffd86effffdf15}, + {0x99308430, 0xffffd86effffdf16}, + {0x99308431, 0xffffd86effffdf17}, + {0x99308432, 0xffffd86effffdf18}, + {0x99308433, 0xffffd86effffdf19}, + {0x99308434, 0xffffd86effffdf1a}, + {0x99308435, 0xffffd86effffdf1b}, + {0x99308436, 0xffffd86effffdf1c}, + {0x99308437, 0xffffd86effffdf1d}, + {0x99308438, 0xffffd86effffdf1e}, + {0x99308439, 0xffffd86effffdf1f}, + {0x99308530, 0xffffd86effffdf20}, + {0x99308531, 0xffffd86effffdf21}, + {0x99308532, 0xffffd86effffdf22}, + {0x99308533, 0xffffd86effffdf23}, + {0x99308534, 0xffffd86effffdf24}, + {0x99308535, 0xffffd86effffdf25}, + {0x99308536, 0xffffd86effffdf26}, + {0x99308537, 0xffffd86effffdf27}, + {0x99308538, 0xffffd86effffdf28}, + {0x99308539, 0xffffd86effffdf29}, + {0x99308630, 0xffffd86effffdf2a}, + {0x99308631, 0xffffd86effffdf2b}, + {0x99308632, 0xffffd86effffdf2c}, + {0x99308633, 0xffffd86effffdf2d}, + {0x99308634, 0xffffd86effffdf2e}, + {0x99308635, 0xffffd86effffdf2f}, + {0x99308636, 0xffffd86effffdf30}, + {0x99308637, 0xffffd86effffdf31}, + {0x99308638, 0xffffd86effffdf32}, + {0x99308639, 0xffffd86effffdf33}, + {0x99308730, 0xffffd86effffdf34}, + {0x99308731, 0xffffd86effffdf35}, + {0x99308732, 0xffffd86effffdf36}, + {0x99308733, 0xffffd86effffdf37}, + {0x99308734, 0xffffd86effffdf38}, + {0x99308735, 0xffffd86effffdf39}, + {0x99308736, 0xffffd86effffdf3a}, + {0x99308737, 0xffffd86effffdf3b}, + {0x99308738, 0xffffd86effffdf3c}, + {0x99308739, 0xffffd86effffdf3d}, + {0x99308830, 0xffffd86effffdf3e}, + {0x99308831, 0xffffd86effffdf3f}, + {0x99308832, 0xffffd86effffdf40}, + {0x99308833, 0xffffd86effffdf41}, + {0x99308834, 0xffffd86effffdf42}, + {0x99308835, 0xffffd86effffdf43}, + {0x99308836, 0xffffd86effffdf44}, + {0x99308837, 0xffffd86effffdf45}, + {0x99308838, 0xffffd86effffdf46}, + {0x99308839, 0xffffd86effffdf47}, + {0x99308930, 0xffffd86effffdf48}, + {0x99308931, 0xffffd86effffdf49}, + {0x99308932, 0xffffd86effffdf4a}, + {0x99308933, 0xffffd86effffdf4b}, + {0x99308934, 0xffffd86effffdf4c}, + {0x99308935, 0xffffd86effffdf4d}, + {0x99308936, 0xffffd86effffdf4e}, + {0x99308937, 0xffffd86effffdf4f}, + {0x99308938, 0xffffd86effffdf50}, + {0x99308939, 0xffffd86effffdf51}, + {0x99308a30, 0xffffd86effffdf52}, + {0x99308a31, 0xffffd86effffdf53}, + {0x99308a32, 0xffffd86effffdf54}, + {0x99308a33, 0xffffd86effffdf55}, + {0x99308a34, 0xffffd86effffdf56}, + {0x99308a35, 0xffffd86effffdf57}, + {0x99308a36, 0xffffd86effffdf58}, + {0x99308a37, 0xffffd86effffdf59}, + {0x99308a38, 0xffffd86effffdf5a}, + {0x99308a39, 0xffffd86effffdf5b}, + {0x99308b30, 0xffffd86effffdf5c}, + {0x99308b31, 0xffffd86effffdf5d}, + {0x99308b32, 0xffffd86effffdf5e}, + {0x99308b33, 0xffffd86effffdf5f}, + {0x99308b34, 0xffffd86effffdf60}, + {0x99308b35, 0xffffd86effffdf61}, + {0x99308b36, 0xffffd86effffdf62}, + {0x99308b37, 0xffffd86effffdf63}, + {0x99308b38, 0xffffd86effffdf64}, + {0x99308b39, 0xffffd86effffdf65}, + {0x99308c30, 0xffffd86effffdf66}, + {0x99308c31, 0xffffd86effffdf67}, + {0x99308c32, 0xffffd86effffdf68}, + {0x99308c33, 0xffffd86effffdf69}, + {0x99308c34, 0xffffd86effffdf6a}, + {0x99308c35, 0xffffd86effffdf6b}, + {0x99308c36, 0xffffd86effffdf6c}, + {0x99308c37, 0xffffd86effffdf6d}, + {0x99308c38, 0xffffd86effffdf6e}, + {0x99308c39, 0xffffd86effffdf6f}, + {0x99308d30, 0xffffd86effffdf70}, + {0x99308d31, 0xffffd86effffdf71}, + {0x99308d32, 0xffffd86effffdf72}, + {0x99308d33, 0xffffd86effffdf73}, + {0x99308d34, 0xffffd86effffdf74}, + {0x99308d35, 0xffffd86effffdf75}, + {0x99308d36, 0xffffd86effffdf76}, + {0x99308d37, 0xffffd86effffdf77}, + {0x99308d38, 0xffffd86effffdf78}, + {0x99308d39, 0xffffd86effffdf79}, + {0x99308e30, 0xffffd86effffdf7a}, + {0x99308e31, 0xffffd86effffdf7b}, + {0x99308e32, 0xffffd86effffdf7c}, + {0x99308e33, 0xffffd86effffdf7d}, + {0x99308e34, 0xffffd86effffdf7e}, + {0x99308e35, 0xffffd86effffdf7f}, + {0x99308e36, 0xffffd86effffdf80}, + {0x99308e37, 0xffffd86effffdf81}, + {0x99308e38, 0xffffd86effffdf82}, + {0x99308e39, 0xffffd86effffdf83}, + {0x99308f30, 0xffffd86effffdf84}, + {0x99308f31, 0xffffd86effffdf85}, + {0x99308f32, 0xffffd86effffdf86}, + {0x99308f33, 0xffffd86effffdf87}, + {0x99308f34, 0xffffd86effffdf88}, + {0x99308f35, 0xffffd86effffdf89}, + {0x99308f36, 0xffffd86effffdf8a}, + {0x99308f37, 0xffffd86effffdf8b}, + {0x99308f38, 0xffffd86effffdf8c}, + {0x99308f39, 0xffffd86effffdf8d}, + {0x99309030, 0xffffd86effffdf8e}, + {0x99309031, 0xffffd86effffdf8f}, + {0x99309032, 0xffffd86effffdf90}, + {0x99309033, 0xffffd86effffdf91}, + {0x99309034, 0xffffd86effffdf92}, + {0x99309035, 0xffffd86effffdf93}, + {0x99309036, 0xffffd86effffdf94}, + {0x99309037, 0xffffd86effffdf95}, + {0x99309038, 0xffffd86effffdf96}, + {0x99309039, 0xffffd86effffdf97}, + {0x99309130, 0xffffd86effffdf98}, + {0x99309131, 0xffffd86effffdf99}, + {0x99309132, 0xffffd86effffdf9a}, + {0x99309133, 0xffffd86effffdf9b}, + {0x99309134, 0xffffd86effffdf9c}, + {0x99309135, 0xffffd86effffdf9d}, + {0x99309136, 0xffffd86effffdf9e}, + {0x99309137, 0xffffd86effffdf9f}, + {0x99309138, 0xffffd86effffdfa0}, + {0x99309139, 0xffffd86effffdfa1}, + {0x99309230, 0xffffd86effffdfa2}, + {0x99309231, 0xffffd86effffdfa3}, + {0x99309232, 0xffffd86effffdfa4}, + {0x99309233, 0xffffd86effffdfa5}, + {0x99309234, 0xffffd86effffdfa6}, + {0x99309235, 0xffffd86effffdfa7}, + {0x99309236, 0xffffd86effffdfa8}, + {0x99309237, 0xffffd86effffdfa9}, + {0x99309238, 0xffffd86effffdfaa}, + {0x99309239, 0xffffd86effffdfab}, + {0x99309330, 0xffffd86effffdfac}, + {0x99309331, 0xffffd86effffdfad}, + {0x99309332, 0xffffd86effffdfae}, + {0x99309333, 0xffffd86effffdfaf}, + {0x99309334, 0xffffd86effffdfb0}, + {0x99309335, 0xffffd86effffdfb1}, + {0x99309336, 0xffffd86effffdfb2}, + {0x99309337, 0xffffd86effffdfb3}, + {0x99309338, 0xffffd86effffdfb4}, + {0x99309339, 0xffffd86effffdfb5}, + {0x99309430, 0xffffd86effffdfb6}, + {0x99309431, 0xffffd86effffdfb7}, + {0x99309432, 0xffffd86effffdfb8}, + {0x99309433, 0xffffd86effffdfb9}, + {0x99309434, 0xffffd86effffdfba}, + {0x99309435, 0xffffd86effffdfbb}, + {0x99309436, 0xffffd86effffdfbc}, + {0x99309437, 0xffffd86effffdfbd}, + {0x99309438, 0xffffd86effffdfbe}, + {0x99309439, 0xffffd86effffdfbf}, + {0x99309530, 0xffffd86effffdfc0}, + {0x99309531, 0xffffd86effffdfc1}, + {0x99309532, 0xffffd86effffdfc2}, + {0x99309533, 0xffffd86effffdfc3}, + {0x99309534, 0xffffd86effffdfc4}, + {0x99309535, 0xffffd86effffdfc5}, + {0x99309536, 0xffffd86effffdfc6}, + {0x99309537, 0xffffd86effffdfc7}, + {0x99309538, 0xffffd86effffdfc8}, + {0x99309539, 0xffffd86effffdfc9}, + {0x99309630, 0xffffd86effffdfca}, + {0x99309631, 0xffffd86effffdfcb}, + {0x99309632, 0xffffd86effffdfcc}, + {0x99309633, 0xffffd86effffdfcd}, + {0x99309634, 0xffffd86effffdfce}, + {0x99309635, 0xffffd86effffdfcf}, + {0x99309636, 0xffffd86effffdfd0}, + {0x99309637, 0xffffd86effffdfd1}, + {0x99309638, 0xffffd86effffdfd2}, + {0x99309639, 0xffffd86effffdfd3}, + {0x99309730, 0xffffd86effffdfd4}, + {0x99309731, 0xffffd86effffdfd5}, + {0x99309732, 0xffffd86effffdfd6}, + {0x99309733, 0xffffd86effffdfd7}, + {0x99309734, 0xffffd86effffdfd8}, + {0x99309735, 0xffffd86effffdfd9}, + {0x99309736, 0xffffd86effffdfda}, + {0x99309737, 0xffffd86effffdfdb}, + {0x99309738, 0xffffd86effffdfdc}, + {0x99309739, 0xffffd86effffdfdd}, + {0x99309830, 0xffffd86effffdfde}, + {0x99309831, 0xffffd86effffdfdf}, + {0x99309832, 0xffffd86effffdfe0}, + {0x99309833, 0xffffd86effffdfe1}, + {0x99309834, 0xffffd86effffdfe2}, + {0x99309835, 0xffffd86effffdfe3}, + {0x99309836, 0xffffd86effffdfe4}, + {0x99309837, 0xffffd86effffdfe5}, + {0x99309838, 0xffffd86effffdfe6}, + {0x99309839, 0xffffd86effffdfe7}, + {0x99309930, 0xffffd86effffdfe8}, + {0x99309931, 0xffffd86effffdfe9}, + {0x99309932, 0xffffd86effffdfea}, + {0x99309933, 0xffffd86effffdfeb}, + {0x99309934, 0xffffd86effffdfec}, + {0x99309935, 0xffffd86effffdfed}, + {0x99309936, 0xffffd86effffdfee}, + {0x99309937, 0xffffd86effffdfef}, + {0x99309938, 0xffffd86effffdff0}, + {0x99309939, 0xffffd86effffdff1}, + {0x99309a30, 0xffffd86effffdff2}, + {0x99309a31, 0xffffd86effffdff3}, + {0x99309a32, 0xffffd86effffdff4}, + {0x99309a33, 0xffffd86effffdff5}, + {0x99309a34, 0xffffd86effffdff6}, + {0x99309a35, 0xffffd86effffdff7}, + {0x99309a36, 0xffffd86effffdff8}, + {0x99309a37, 0xffffd86effffdff9}, + {0x99309a38, 0xffffd86effffdffa}, + {0x99309a39, 0xffffd86effffdffb}, + {0x99309b30, 0xffffd86effffdffc}, + {0x99309b31, 0xffffd86effffdffd}, + {0x99309b32, 0xffffd86effffdffe}, + {0x99309b33, 0xffffd86effffdfff}, + {0x99309b34, 0xffffd86fffffdc00}, + {0x99309b35, 0xffffd86fffffdc01}, + {0x99309b36, 0xffffd86fffffdc02}, + {0x99309b37, 0xffffd86fffffdc03}, + {0x99309b38, 0xffffd86fffffdc04}, + {0x99309b39, 0xffffd86fffffdc05}, + {0x99309c30, 0xffffd86fffffdc06}, + {0x99309c31, 0xffffd86fffffdc07}, + {0x99309c32, 0xffffd86fffffdc08}, + {0x99309c33, 0xffffd86fffffdc09}, + {0x99309c34, 0xffffd86fffffdc0a}, + {0x99309c35, 0xffffd86fffffdc0b}, + {0x99309c36, 0xffffd86fffffdc0c}, + {0x99309c37, 0xffffd86fffffdc0d}, + {0x99309c38, 0xffffd86fffffdc0e}, + {0x99309c39, 0xffffd86fffffdc0f}, + {0x99309d30, 0xffffd86fffffdc10}, + {0x99309d31, 0xffffd86fffffdc11}, + {0x99309d32, 0xffffd86fffffdc12}, + {0x99309d33, 0xffffd86fffffdc13}, + {0x99309d34, 0xffffd86fffffdc14}, + {0x99309d35, 0xffffd86fffffdc15}, + {0x99309d36, 0xffffd86fffffdc16}, + {0x99309d37, 0xffffd86fffffdc17}, + {0x99309d38, 0xffffd86fffffdc18}, + {0x99309d39, 0xffffd86fffffdc19}, + {0x99309e30, 0xffffd86fffffdc1a}, + {0x99309e31, 0xffffd86fffffdc1b}, + {0x99309e32, 0xffffd86fffffdc1c}, + {0x99309e33, 0xffffd86fffffdc1d}, + {0x99309e34, 0xffffd86fffffdc1e}, + {0x99309e35, 0xffffd86fffffdc1f}, + {0x99309e36, 0xffffd86fffffdc20}, + {0x99309e37, 0xffffd86fffffdc21}, + {0x99309e38, 0xffffd86fffffdc22}, + {0x99309e39, 0xffffd86fffffdc23}, + {0x99309f30, 0xffffd86fffffdc24}, + {0x99309f31, 0xffffd86fffffdc25}, + {0x99309f32, 0xffffd86fffffdc26}, + {0x99309f33, 0xffffd86fffffdc27}, + {0x99309f34, 0xffffd86fffffdc28}, + {0x99309f35, 0xffffd86fffffdc29}, + {0x99309f36, 0xffffd86fffffdc2a}, + {0x99309f37, 0xffffd86fffffdc2b}, + {0x99309f38, 0xffffd86fffffdc2c}, + {0x99309f39, 0xffffd86fffffdc2d}, + {0x9930a030, 0xffffd86fffffdc2e}, + {0x9930a031, 0xffffd86fffffdc2f}, + {0x9930a032, 0xffffd86fffffdc30}, + {0x9930a033, 0xffffd86fffffdc31}, + {0x9930a034, 0xffffd86fffffdc32}, + {0x9930a035, 0xffffd86fffffdc33}, + {0x9930a036, 0xffffd86fffffdc34}, + {0x9930a037, 0xffffd86fffffdc35}, + {0x9930a038, 0xffffd86fffffdc36}, + {0x9930a039, 0xffffd86fffffdc37}, + {0x9930a130, 0xffffd86fffffdc38}, + {0x9930a131, 0xffffd86fffffdc39}, + {0x9930a132, 0xffffd86fffffdc3a}, + {0x9930a133, 0xffffd86fffffdc3b}, + {0x9930a134, 0xffffd86fffffdc3c}, + {0x9930a135, 0xffffd86fffffdc3d}, + {0x9930a136, 0xffffd86fffffdc3e}, + {0x9930a137, 0xffffd86fffffdc3f}, + {0x9930a138, 0xffffd86fffffdc40}, + {0x9930a139, 0xffffd86fffffdc41}, + {0x9930a230, 0xffffd86fffffdc42}, + {0x9930a231, 0xffffd86fffffdc43}, + {0x9930a232, 0xffffd86fffffdc44}, + {0x9930a233, 0xffffd86fffffdc45}, + {0x9930a234, 0xffffd86fffffdc46}, + {0x9930a235, 0xffffd86fffffdc47}, + {0x9930a236, 0xffffd86fffffdc48}, + {0x9930a237, 0xffffd86fffffdc49}, + {0x9930a238, 0xffffd86fffffdc4a}, + {0x9930a239, 0xffffd86fffffdc4b}, + {0x9930a330, 0xffffd86fffffdc4c}, + {0x9930a331, 0xffffd86fffffdc4d}, + {0x9930a332, 0xffffd86fffffdc4e}, + {0x9930a333, 0xffffd86fffffdc4f}, + {0x9930a334, 0xffffd86fffffdc50}, + {0x9930a335, 0xffffd86fffffdc51}, + {0x9930a336, 0xffffd86fffffdc52}, + {0x9930a337, 0xffffd86fffffdc53}, + {0x9930a338, 0xffffd86fffffdc54}, + {0x9930a339, 0xffffd86fffffdc55}, + {0x9930a430, 0xffffd86fffffdc56}, + {0x9930a431, 0xffffd86fffffdc57}, + {0x9930a432, 0xffffd86fffffdc58}, + {0x9930a433, 0xffffd86fffffdc59}, + {0x9930a434, 0xffffd86fffffdc5a}, + {0x9930a435, 0xffffd86fffffdc5b}, + {0x9930a436, 0xffffd86fffffdc5c}, + {0x9930a437, 0xffffd86fffffdc5d}, + {0x9930a438, 0xffffd86fffffdc5e}, + {0x9930a439, 0xffffd86fffffdc5f}, + {0x9930a530, 0xffffd86fffffdc60}, + {0x9930a531, 0xffffd86fffffdc61}, + {0x9930a532, 0xffffd86fffffdc62}, + {0x9930a533, 0xffffd86fffffdc63}, + {0x9930a534, 0xffffd86fffffdc64}, + {0x9930a535, 0xffffd86fffffdc65}, + {0x9930a536, 0xffffd86fffffdc66}, + {0x9930a537, 0xffffd86fffffdc67}, + {0x9930a538, 0xffffd86fffffdc68}, + {0x9930a539, 0xffffd86fffffdc69}, + {0x9930a630, 0xffffd86fffffdc6a}, + {0x9930a631, 0xffffd86fffffdc6b}, + {0x9930a632, 0xffffd86fffffdc6c}, + {0x9930a633, 0xffffd86fffffdc6d}, + {0x9930a634, 0xffffd86fffffdc6e}, + {0x9930a635, 0xffffd86fffffdc6f}, + {0x9930a636, 0xffffd86fffffdc70}, + {0x9930a637, 0xffffd86fffffdc71}, + {0x9930a638, 0xffffd86fffffdc72}, + {0x9930a639, 0xffffd86fffffdc73}, + {0x9930a730, 0xffffd86fffffdc74}, + {0x9930a731, 0xffffd86fffffdc75}, + {0x9930a732, 0xffffd86fffffdc76}, + {0x9930a733, 0xffffd86fffffdc77}, + {0x9930a734, 0xffffd86fffffdc78}, + {0x9930a735, 0xffffd86fffffdc79}, + {0x9930a736, 0xffffd86fffffdc7a}, + {0x9930a737, 0xffffd86fffffdc7b}, + {0x9930a738, 0xffffd86fffffdc7c}, + {0x9930a739, 0xffffd86fffffdc7d}, + {0x9930a830, 0xffffd86fffffdc7e}, + {0x9930a831, 0xffffd86fffffdc7f}, + {0x9930a832, 0xffffd86fffffdc80}, + {0x9930a833, 0xffffd86fffffdc81}, + {0x9930a834, 0xffffd86fffffdc82}, + {0x9930a835, 0xffffd86fffffdc83}, + {0x9930a836, 0xffffd86fffffdc84}, + {0x9930a837, 0xffffd86fffffdc85}, + {0x9930a838, 0xffffd86fffffdc86}, + {0x9930a839, 0xffffd86fffffdc87}, + {0x9930a930, 0xffffd86fffffdc88}, + {0x9930a931, 0xffffd86fffffdc89}, + {0x9930a932, 0xffffd86fffffdc8a}, + {0x9930a933, 0xffffd86fffffdc8b}, + {0x9930a934, 0xffffd86fffffdc8c}, + {0x9930a935, 0xffffd86fffffdc8d}, + {0x9930a936, 0xffffd86fffffdc8e}, + {0x9930a937, 0xffffd86fffffdc8f}, + {0x9930a938, 0xffffd86fffffdc90}, + {0x9930a939, 0xffffd86fffffdc91}, + {0x9930aa30, 0xffffd86fffffdc92}, + {0x9930aa31, 0xffffd86fffffdc93}, + {0x9930aa32, 0xffffd86fffffdc94}, + {0x9930aa33, 0xffffd86fffffdc95}, + {0x9930aa34, 0xffffd86fffffdc96}, + {0x9930aa35, 0xffffd86fffffdc97}, + {0x9930aa36, 0xffffd86fffffdc98}, + {0x9930aa37, 0xffffd86fffffdc99}, + {0x9930aa38, 0xffffd86fffffdc9a}, + {0x9930aa39, 0xffffd86fffffdc9b}, + {0x9930ab30, 0xffffd86fffffdc9c}, + {0x9930ab31, 0xffffd86fffffdc9d}, + {0x9930ab32, 0xffffd86fffffdc9e}, + {0x9930ab33, 0xffffd86fffffdc9f}, + {0x9930ab34, 0xffffd86fffffdca0}, + {0x9930ab35, 0xffffd86fffffdca1}, + {0x9930ab36, 0xffffd86fffffdca2}, + {0x9930ab37, 0xffffd86fffffdca3}, + {0x9930ab38, 0xffffd86fffffdca4}, + {0x9930ab39, 0xffffd86fffffdca5}, + {0x9930ac30, 0xffffd86fffffdca6}, + {0x9930ac31, 0xffffd86fffffdca7}, + {0x9930ac32, 0xffffd86fffffdca8}, + {0x9930ac33, 0xffffd86fffffdca9}, + {0x9930ac34, 0xffffd86fffffdcaa}, + {0x9930ac35, 0xffffd86fffffdcab}, + {0x9930ac36, 0xffffd86fffffdcac}, + {0x9930ac37, 0xffffd86fffffdcad}, + {0x9930ac38, 0xffffd86fffffdcae}, + {0x9930ac39, 0xffffd86fffffdcaf}, + {0x9930ad30, 0xffffd86fffffdcb0}, + {0x9930ad31, 0xffffd86fffffdcb1}, + {0x9930ad32, 0xffffd86fffffdcb2}, + {0x9930ad33, 0xffffd86fffffdcb3}, + {0x9930ad34, 0xffffd86fffffdcb4}, + {0x9930ad35, 0xffffd86fffffdcb5}, + {0x9930ad36, 0xffffd86fffffdcb6}, + {0x9930ad37, 0xffffd86fffffdcb7}, + {0x9930ad38, 0xffffd86fffffdcb8}, + {0x9930ad39, 0xffffd86fffffdcb9}, + {0x9930ae30, 0xffffd86fffffdcba}, + {0x9930ae31, 0xffffd86fffffdcbb}, + {0x9930ae32, 0xffffd86fffffdcbc}, + {0x9930ae33, 0xffffd86fffffdcbd}, + {0x9930ae34, 0xffffd86fffffdcbe}, + {0x9930ae35, 0xffffd86fffffdcbf}, + {0x9930ae36, 0xffffd86fffffdcc0}, + {0x9930ae37, 0xffffd86fffffdcc1}, + {0x9930ae38, 0xffffd86fffffdcc2}, + {0x9930ae39, 0xffffd86fffffdcc3}, + {0x9930af30, 0xffffd86fffffdcc4}, + {0x9930af31, 0xffffd86fffffdcc5}, + {0x9930af32, 0xffffd86fffffdcc6}, + {0x9930af33, 0xffffd86fffffdcc7}, + {0x9930af34, 0xffffd86fffffdcc8}, + {0x9930af35, 0xffffd86fffffdcc9}, + {0x9930af36, 0xffffd86fffffdcca}, + {0x9930af37, 0xffffd86fffffdccb}, + {0x9930af38, 0xffffd86fffffdccc}, + {0x9930af39, 0xffffd86fffffdccd}, + {0x9930b030, 0xffffd86fffffdcce}, + {0x9930b031, 0xffffd86fffffdccf}, + {0x9930b032, 0xffffd86fffffdcd0}, + {0x9930b033, 0xffffd86fffffdcd1}, + {0x9930b034, 0xffffd86fffffdcd2}, + {0x9930b035, 0xffffd86fffffdcd3}, + {0x9930b036, 0xffffd86fffffdcd4}, + {0x9930b037, 0xffffd86fffffdcd5}, + {0x9930b038, 0xffffd86fffffdcd6}, + {0x9930b039, 0xffffd86fffffdcd7}, + {0x9930b130, 0xffffd86fffffdcd8}, + {0x9930b131, 0xffffd86fffffdcd9}, + {0x9930b132, 0xffffd86fffffdcda}, + {0x9930b133, 0xffffd86fffffdcdb}, + {0x9930b134, 0xffffd86fffffdcdc}, + {0x9930b135, 0xffffd86fffffdcdd}, + {0x9930b136, 0xffffd86fffffdcde}, + {0x9930b137, 0xffffd86fffffdcdf}, + {0x9930b138, 0xffffd86fffffdce0}, + {0x9930b139, 0xffffd86fffffdce1}, + {0x9930b230, 0xffffd86fffffdce2}, + {0x9930b231, 0xffffd86fffffdce3}, + {0x9930b232, 0xffffd86fffffdce4}, + {0x9930b233, 0xffffd86fffffdce5}, + {0x9930b234, 0xffffd86fffffdce6}, + {0x9930b235, 0xffffd86fffffdce7}, + {0x9930b236, 0xffffd86fffffdce8}, + {0x9930b237, 0xffffd86fffffdce9}, + {0x9930b238, 0xffffd86fffffdcea}, + {0x9930b239, 0xffffd86fffffdceb}, + {0x9930b330, 0xffffd86fffffdcec}, + {0x9930b331, 0xffffd86fffffdced}, + {0x9930b332, 0xffffd86fffffdcee}, + {0x9930b333, 0xffffd86fffffdcef}, + {0x9930b334, 0xffffd86fffffdcf0}, + {0x9930b335, 0xffffd86fffffdcf1}, + {0x9930b336, 0xffffd86fffffdcf2}, + {0x9930b337, 0xffffd86fffffdcf3}, + {0x9930b338, 0xffffd86fffffdcf4}, + {0x9930b339, 0xffffd86fffffdcf5}, + {0x9930b430, 0xffffd86fffffdcf6}, + {0x9930b431, 0xffffd86fffffdcf7}, + {0x9930b432, 0xffffd86fffffdcf8}, + {0x9930b433, 0xffffd86fffffdcf9}, + {0x9930b434, 0xffffd86fffffdcfa}, + {0x9930b435, 0xffffd86fffffdcfb}, + {0x9930b436, 0xffffd86fffffdcfc}, + {0x9930b437, 0xffffd86fffffdcfd}, + {0x9930b438, 0xffffd86fffffdcfe}, + {0x9930b439, 0xffffd86fffffdcff}, + {0x9930b530, 0xffffd86fffffdd00}, + {0x9930b531, 0xffffd86fffffdd01}, + {0x9930b532, 0xffffd86fffffdd02}, + {0x9930b533, 0xffffd86fffffdd03}, + {0x9930b534, 0xffffd86fffffdd04}, + {0x9930b535, 0xffffd86fffffdd05}, + {0x9930b536, 0xffffd86fffffdd06}, + {0x9930b537, 0xffffd86fffffdd07}, + {0x9930b538, 0xffffd86fffffdd08}, + {0x9930b539, 0xffffd86fffffdd09}, + {0x9930b630, 0xffffd86fffffdd0a}, + {0x9930b631, 0xffffd86fffffdd0b}, + {0x9930b632, 0xffffd86fffffdd0c}, + {0x9930b633, 0xffffd86fffffdd0d}, + {0x9930b634, 0xffffd86fffffdd0e}, + {0x9930b635, 0xffffd86fffffdd0f}, + {0x9930b636, 0xffffd86fffffdd10}, + {0x9930b637, 0xffffd86fffffdd11}, + {0x9930b638, 0xffffd86fffffdd12}, + {0x9930b639, 0xffffd86fffffdd13}, + {0x9930b730, 0xffffd86fffffdd14}, + {0x9930b731, 0xffffd86fffffdd15}, + {0x9930b732, 0xffffd86fffffdd16}, + {0x9930b733, 0xffffd86fffffdd17}, + {0x9930b734, 0xffffd86fffffdd18}, + {0x9930b735, 0xffffd86fffffdd19}, + {0x9930b736, 0xffffd86fffffdd1a}, + {0x9930b737, 0xffffd86fffffdd1b}, + {0x9930b738, 0xffffd86fffffdd1c}, + {0x9930b739, 0xffffd86fffffdd1d}, + {0x9930b830, 0xffffd86fffffdd1e}, + {0x9930b831, 0xffffd86fffffdd1f}, + {0x9930b832, 0xffffd86fffffdd20}, + {0x9930b833, 0xffffd86fffffdd21}, + {0x9930b834, 0xffffd86fffffdd22}, + {0x9930b835, 0xffffd86fffffdd23}, + {0x9930b836, 0xffffd86fffffdd24}, + {0x9930b837, 0xffffd86fffffdd25}, + {0x9930b838, 0xffffd86fffffdd26}, + {0x9930b839, 0xffffd86fffffdd27}, + {0x9930b930, 0xffffd86fffffdd28}, + {0x9930b931, 0xffffd86fffffdd29}, + {0x9930b932, 0xffffd86fffffdd2a}, + {0x9930b933, 0xffffd86fffffdd2b}, + {0x9930b934, 0xffffd86fffffdd2c}, + {0x9930b935, 0xffffd86fffffdd2d}, + {0x9930b936, 0xffffd86fffffdd2e}, + {0x9930b937, 0xffffd86fffffdd2f}, + {0x9930b938, 0xffffd86fffffdd30}, + {0x9930b939, 0xffffd86fffffdd31}, + {0x9930ba30, 0xffffd86fffffdd32}, + {0x9930ba31, 0xffffd86fffffdd33}, + {0x9930ba32, 0xffffd86fffffdd34}, + {0x9930ba33, 0xffffd86fffffdd35}, + {0x9930ba34, 0xffffd86fffffdd36}, + {0x9930ba35, 0xffffd86fffffdd37}, + {0x9930ba36, 0xffffd86fffffdd38}, + {0x9930ba37, 0xffffd86fffffdd39}, + {0x9930ba38, 0xffffd86fffffdd3a}, + {0x9930ba39, 0xffffd86fffffdd3b}, + {0x9930bb30, 0xffffd86fffffdd3c}, + {0x9930bb31, 0xffffd86fffffdd3d}, + {0x9930bb32, 0xffffd86fffffdd3e}, + {0x9930bb33, 0xffffd86fffffdd3f}, + {0x9930bb34, 0xffffd86fffffdd40}, + {0x9930bb35, 0xffffd86fffffdd41}, + {0x9930bb36, 0xffffd86fffffdd42}, + {0x9930bb37, 0xffffd86fffffdd43}, + {0x9930bb38, 0xffffd86fffffdd44}, + {0x9930bb39, 0xffffd86fffffdd45}, + {0x9930bc30, 0xffffd86fffffdd46}, + {0x9930bc31, 0xffffd86fffffdd47}, + {0x9930bc32, 0xffffd86fffffdd48}, + {0x9930bc33, 0xffffd86fffffdd49}, + {0x9930bc34, 0xffffd86fffffdd4a}, + {0x9930bc35, 0xffffd86fffffdd4b}, + {0x9930bc36, 0xffffd86fffffdd4c}, + {0x9930bc37, 0xffffd86fffffdd4d}, + {0x9930bc38, 0xffffd86fffffdd4e}, + {0x9930bc39, 0xffffd86fffffdd4f}, + {0x9930bd30, 0xffffd86fffffdd50}, + {0x9930bd31, 0xffffd86fffffdd51}, + {0x9930bd32, 0xffffd86fffffdd52}, + {0x9930bd33, 0xffffd86fffffdd53}, + {0x9930bd34, 0xffffd86fffffdd54}, + {0x9930bd35, 0xffffd86fffffdd55}, + {0x9930bd36, 0xffffd86fffffdd56}, + {0x9930bd37, 0xffffd86fffffdd57}, + {0x9930bd38, 0xffffd86fffffdd58}, + {0x9930bd39, 0xffffd86fffffdd59}, + {0x9930be30, 0xffffd86fffffdd5a}, + {0x9930be31, 0xffffd86fffffdd5b}, + {0x9930be32, 0xffffd86fffffdd5c}, + {0x9930be33, 0xffffd86fffffdd5d}, + {0x9930be34, 0xffffd86fffffdd5e}, + {0x9930be35, 0xffffd86fffffdd5f}, + {0x9930be36, 0xffffd86fffffdd60}, + {0x9930be37, 0xffffd86fffffdd61}, + {0x9930be38, 0xffffd86fffffdd62}, + {0x9930be39, 0xffffd86fffffdd63}, + {0x9930bf30, 0xffffd86fffffdd64}, + {0x9930bf31, 0xffffd86fffffdd65}, + {0x9930bf32, 0xffffd86fffffdd66}, + {0x9930bf33, 0xffffd86fffffdd67}, + {0x9930bf34, 0xffffd86fffffdd68}, + {0x9930bf35, 0xffffd86fffffdd69}, + {0x9930bf36, 0xffffd86fffffdd6a}, + {0x9930bf37, 0xffffd86fffffdd6b}, + {0x9930bf38, 0xffffd86fffffdd6c}, + {0x9930bf39, 0xffffd86fffffdd6d}, + {0x9930c030, 0xffffd86fffffdd6e}, + {0x9930c031, 0xffffd86fffffdd6f}, + {0x9930c032, 0xffffd86fffffdd70}, + {0x9930c033, 0xffffd86fffffdd71}, + {0x9930c034, 0xffffd86fffffdd72}, + {0x9930c035, 0xffffd86fffffdd73}, + {0x9930c036, 0xffffd86fffffdd74}, + {0x9930c037, 0xffffd86fffffdd75}, + {0x9930c038, 0xffffd86fffffdd76}, + {0x9930c039, 0xffffd86fffffdd77}, + {0x9930c130, 0xffffd86fffffdd78}, + {0x9930c131, 0xffffd86fffffdd79}, + {0x9930c132, 0xffffd86fffffdd7a}, + {0x9930c133, 0xffffd86fffffdd7b}, + {0x9930c134, 0xffffd86fffffdd7c}, + {0x9930c135, 0xffffd86fffffdd7d}, + {0x9930c136, 0xffffd86fffffdd7e}, + {0x9930c137, 0xffffd86fffffdd7f}, + {0x9930c138, 0xffffd86fffffdd80}, + {0x9930c139, 0xffffd86fffffdd81}, + {0x9930c230, 0xffffd86fffffdd82}, + {0x9930c231, 0xffffd86fffffdd83}, + {0x9930c232, 0xffffd86fffffdd84}, + {0x9930c233, 0xffffd86fffffdd85}, + {0x9930c234, 0xffffd86fffffdd86}, + {0x9930c235, 0xffffd86fffffdd87}, + {0x9930c236, 0xffffd86fffffdd88}, + {0x9930c237, 0xffffd86fffffdd89}, + {0x9930c238, 0xffffd86fffffdd8a}, + {0x9930c239, 0xffffd86fffffdd8b}, + {0x9930c330, 0xffffd86fffffdd8c}, + {0x9930c331, 0xffffd86fffffdd8d}, + {0x9930c332, 0xffffd86fffffdd8e}, + {0x9930c333, 0xffffd86fffffdd8f}, + {0x9930c334, 0xffffd86fffffdd90}, + {0x9930c335, 0xffffd86fffffdd91}, + {0x9930c336, 0xffffd86fffffdd92}, + {0x9930c337, 0xffffd86fffffdd93}, + {0x9930c338, 0xffffd86fffffdd94}, + {0x9930c339, 0xffffd86fffffdd95}, + {0x9930c430, 0xffffd86fffffdd96}, + {0x9930c431, 0xffffd86fffffdd97}, + {0x9930c432, 0xffffd86fffffdd98}, + {0x9930c433, 0xffffd86fffffdd99}, + {0x9930c434, 0xffffd86fffffdd9a}, + {0x9930c435, 0xffffd86fffffdd9b}, + {0x9930c436, 0xffffd86fffffdd9c}, + {0x9930c437, 0xffffd86fffffdd9d}, + {0x9930c438, 0xffffd86fffffdd9e}, + {0x9930c439, 0xffffd86fffffdd9f}, + {0x9930c530, 0xffffd86fffffdda0}, + {0x9930c531, 0xffffd86fffffdda1}, + {0x9930c532, 0xffffd86fffffdda2}, + {0x9930c533, 0xffffd86fffffdda3}, + {0x9930c534, 0xffffd86fffffdda4}, + {0x9930c535, 0xffffd86fffffdda5}, + {0x9930c536, 0xffffd86fffffdda6}, + {0x9930c537, 0xffffd86fffffdda7}, + {0x9930c538, 0xffffd86fffffdda8}, + {0x9930c539, 0xffffd86fffffdda9}, + {0x9930c630, 0xffffd86fffffddaa}, + {0x9930c631, 0xffffd86fffffddab}, + {0x9930c632, 0xffffd86fffffddac}, + {0x9930c633, 0xffffd86fffffddad}, + {0x9930c634, 0xffffd86fffffddae}, + {0x9930c635, 0xffffd86fffffddaf}, + {0x9930c636, 0xffffd86fffffddb0}, + {0x9930c637, 0xffffd86fffffddb1}, + {0x9930c638, 0xffffd86fffffddb2}, + {0x9930c639, 0xffffd86fffffddb3}, + {0x9930c730, 0xffffd86fffffddb4}, + {0x9930c731, 0xffffd86fffffddb5}, + {0x9930c732, 0xffffd86fffffddb6}, + {0x9930c733, 0xffffd86fffffddb7}, + {0x9930c734, 0xffffd86fffffddb8}, + {0x9930c735, 0xffffd86fffffddb9}, + {0x9930c736, 0xffffd86fffffddba}, + {0x9930c737, 0xffffd86fffffddbb}, + {0x9930c738, 0xffffd86fffffddbc}, + {0x9930c739, 0xffffd86fffffddbd}, + {0x9930c830, 0xffffd86fffffddbe}, + {0x9930c831, 0xffffd86fffffddbf}, + {0x9930c832, 0xffffd86fffffddc0}, + {0x9930c833, 0xffffd86fffffddc1}, + {0x9930c834, 0xffffd86fffffddc2}, + {0x9930c835, 0xffffd86fffffddc3}, + {0x9930c836, 0xffffd86fffffddc4}, + {0x9930c837, 0xffffd86fffffddc5}, + {0x9930c838, 0xffffd86fffffddc6}, + {0x9930c839, 0xffffd86fffffddc7}, + {0x9930c930, 0xffffd86fffffddc8}, + {0x9930c931, 0xffffd86fffffddc9}, + {0x9930c932, 0xffffd86fffffddca}, + {0x9930c933, 0xffffd86fffffddcb}, + {0x9930c934, 0xffffd86fffffddcc}, + {0x9930c935, 0xffffd86fffffddcd}, + {0x9930c936, 0xffffd86fffffddce}, + {0x9930c937, 0xffffd86fffffddcf}, + {0x9930c938, 0xffffd86fffffddd0}, + {0x9930c939, 0xffffd86fffffddd1}, + {0x9930ca30, 0xffffd86fffffddd2}, + {0x9930ca31, 0xffffd86fffffddd3}, + {0x9930ca32, 0xffffd86fffffddd4}, + {0x9930ca33, 0xffffd86fffffddd5}, + {0x9930ca34, 0xffffd86fffffddd6}, + {0x9930ca35, 0xffffd86fffffddd7}, + {0x9930ca36, 0xffffd86fffffddd8}, + {0x9930ca37, 0xffffd86fffffddd9}, + {0x9930ca38, 0xffffd86fffffddda}, + {0x9930ca39, 0xffffd86fffffdddb}, + {0x9930cb30, 0xffffd86fffffdddc}, + {0x9930cb31, 0xffffd86fffffdddd}, + {0x9930cb32, 0xffffd86fffffddde}, + {0x9930cb33, 0xffffd86fffffdddf}, + {0x9930cb34, 0xffffd86fffffdde0}, + {0x9930cb35, 0xffffd86fffffdde1}, + {0x9930cb36, 0xffffd86fffffdde2}, + {0x9930cb37, 0xffffd86fffffdde3}, + {0x9930cb38, 0xffffd86fffffdde4}, + {0x9930cb39, 0xffffd86fffffdde5}, + {0x9930cc30, 0xffffd86fffffdde6}, + {0x9930cc31, 0xffffd86fffffdde7}, + {0x9930cc32, 0xffffd86fffffdde8}, + {0x9930cc33, 0xffffd86fffffdde9}, + {0x9930cc34, 0xffffd86fffffddea}, + {0x9930cc35, 0xffffd86fffffddeb}, + {0x9930cc36, 0xffffd86fffffddec}, + {0x9930cc37, 0xffffd86fffffdded}, + {0x9930cc38, 0xffffd86fffffddee}, + {0x9930cc39, 0xffffd86fffffddef}, + {0x9930cd30, 0xffffd86fffffddf0}, + {0x9930cd31, 0xffffd86fffffddf1}, + {0x9930cd32, 0xffffd86fffffddf2}, + {0x9930cd33, 0xffffd86fffffddf3}, + {0x9930cd34, 0xffffd86fffffddf4}, + {0x9930cd35, 0xffffd86fffffddf5}, + {0x9930cd36, 0xffffd86fffffddf6}, + {0x9930cd37, 0xffffd86fffffddf7}, + {0x9930cd38, 0xffffd86fffffddf8}, + {0x9930cd39, 0xffffd86fffffddf9}, + {0x9930ce30, 0xffffd86fffffddfa}, + {0x9930ce31, 0xffffd86fffffddfb}, + {0x9930ce32, 0xffffd86fffffddfc}, + {0x9930ce33, 0xffffd86fffffddfd}, + {0x9930ce34, 0xffffd86fffffddfe}, + {0x9930ce35, 0xffffd86fffffddff}, + {0x9930ce36, 0xffffd86fffffde00}, + {0x9930ce37, 0xffffd86fffffde01}, + {0x9930ce38, 0xffffd86fffffde02}, + {0x9930ce39, 0xffffd86fffffde03}, + {0x9930cf30, 0xffffd86fffffde04}, + {0x9930cf31, 0xffffd86fffffde05}, + {0x9930cf32, 0xffffd86fffffde06}, + {0x9930cf33, 0xffffd86fffffde07}, + {0x9930cf34, 0xffffd86fffffde08}, + {0x9930cf35, 0xffffd86fffffde09}, + {0x9930cf36, 0xffffd86fffffde0a}, + {0x9930cf37, 0xffffd86fffffde0b}, + {0x9930cf38, 0xffffd86fffffde0c}, + {0x9930cf39, 0xffffd86fffffde0d}, + {0x9930d030, 0xffffd86fffffde0e}, + {0x9930d031, 0xffffd86fffffde0f}, + {0x9930d032, 0xffffd86fffffde10}, + {0x9930d033, 0xffffd86fffffde11}, + {0x9930d034, 0xffffd86fffffde12}, + {0x9930d035, 0xffffd86fffffde13}, + {0x9930d036, 0xffffd86fffffde14}, + {0x9930d037, 0xffffd86fffffde15}, + {0x9930d038, 0xffffd86fffffde16}, + {0x9930d039, 0xffffd86fffffde17}, + {0x9930d130, 0xffffd86fffffde18}, + {0x9930d131, 0xffffd86fffffde19}, + {0x9930d132, 0xffffd86fffffde1a}, + {0x9930d133, 0xffffd86fffffde1b}, + {0x9930d134, 0xffffd86fffffde1c}, + {0x9930d135, 0xffffd86fffffde1d}, + {0x9930d136, 0xffffd86fffffde1e}, + {0x9930d137, 0xffffd86fffffde1f}, + {0x9930d138, 0xffffd86fffffde20}, + {0x9930d139, 0xffffd86fffffde21}, + {0x9930d230, 0xffffd86fffffde22}, + {0x9930d231, 0xffffd86fffffde23}, + {0x9930d232, 0xffffd86fffffde24}, + {0x9930d233, 0xffffd86fffffde25}, + {0x9930d234, 0xffffd86fffffde26}, + {0x9930d235, 0xffffd86fffffde27}, + {0x9930d236, 0xffffd86fffffde28}, + {0x9930d237, 0xffffd86fffffde29}, + {0x9930d238, 0xffffd86fffffde2a}, + {0x9930d239, 0xffffd86fffffde2b}, + {0x9930d330, 0xffffd86fffffde2c}, + {0x9930d331, 0xffffd86fffffde2d}, + {0x9930d332, 0xffffd86fffffde2e}, + {0x9930d333, 0xffffd86fffffde2f}, + {0x9930d334, 0xffffd86fffffde30}, + {0x9930d335, 0xffffd86fffffde31}, + {0x9930d336, 0xffffd86fffffde32}, + {0x9930d337, 0xffffd86fffffde33}, + {0x9930d338, 0xffffd86fffffde34}, + {0x9930d339, 0xffffd86fffffde35}, + {0x9930d430, 0xffffd86fffffde36}, + {0x9930d431, 0xffffd86fffffde37}, + {0x9930d432, 0xffffd86fffffde38}, + {0x9930d433, 0xffffd86fffffde39}, + {0x9930d434, 0xffffd86fffffde3a}, + {0x9930d435, 0xffffd86fffffde3b}, + {0x9930d436, 0xffffd86fffffde3c}, + {0x9930d437, 0xffffd86fffffde3d}, + {0x9930d438, 0xffffd86fffffde3e}, + {0x9930d439, 0xffffd86fffffde3f}, + {0x9930d530, 0xffffd86fffffde40}, + {0x9930d531, 0xffffd86fffffde41}, + {0x9930d532, 0xffffd86fffffde42}, + {0x9930d533, 0xffffd86fffffde43}, + {0x9930d534, 0xffffd86fffffde44}, + {0x9930d535, 0xffffd86fffffde45}, + {0x9930d536, 0xffffd86fffffde46}, + {0x9930d537, 0xffffd86fffffde47}, + {0x9930d538, 0xffffd86fffffde48}, + {0x9930d539, 0xffffd86fffffde49}, + {0x9930d630, 0xffffd86fffffde4a}, + {0x9930d631, 0xffffd86fffffde4b}, + {0x9930d632, 0xffffd86fffffde4c}, + {0x9930d633, 0xffffd86fffffde4d}, + {0x9930d634, 0xffffd86fffffde4e}, + {0x9930d635, 0xffffd86fffffde4f}, + {0x9930d636, 0xffffd86fffffde50}, + {0x9930d637, 0xffffd86fffffde51}, + {0x9930d638, 0xffffd86fffffde52}, + {0x9930d639, 0xffffd86fffffde53}, + {0x9930d730, 0xffffd86fffffde54}, + {0x9930d731, 0xffffd86fffffde55}, + {0x9930d732, 0xffffd86fffffde56}, + {0x9930d733, 0xffffd86fffffde57}, + {0x9930d734, 0xffffd86fffffde58}, + {0x9930d735, 0xffffd86fffffde59}, + {0x9930d736, 0xffffd86fffffde5a}, + {0x9930d737, 0xffffd86fffffde5b}, + {0x9930d738, 0xffffd86fffffde5c}, + {0x9930d739, 0xffffd86fffffde5d}, + {0x9930d830, 0xffffd86fffffde5e}, + {0x9930d831, 0xffffd86fffffde5f}, + {0x9930d832, 0xffffd86fffffde60}, + {0x9930d833, 0xffffd86fffffde61}, + {0x9930d834, 0xffffd86fffffde62}, + {0x9930d835, 0xffffd86fffffde63}, + {0x9930d836, 0xffffd86fffffde64}, + {0x9930d837, 0xffffd86fffffde65}, + {0x9930d838, 0xffffd86fffffde66}, + {0x9930d839, 0xffffd86fffffde67}, + {0x9930d930, 0xffffd86fffffde68}, + {0x9930d931, 0xffffd86fffffde69}, + {0x9930d932, 0xffffd86fffffde6a}, + {0x9930d933, 0xffffd86fffffde6b}, + {0x9930d934, 0xffffd86fffffde6c}, + {0x9930d935, 0xffffd86fffffde6d}, + {0x9930d936, 0xffffd86fffffde6e}, + {0x9930d937, 0xffffd86fffffde6f}, + {0x9930d938, 0xffffd86fffffde70}, + {0x9930d939, 0xffffd86fffffde71}, + {0x9930da30, 0xffffd86fffffde72}, + {0x9930da31, 0xffffd86fffffde73}, + {0x9930da32, 0xffffd86fffffde74}, + {0x9930da33, 0xffffd86fffffde75}, + {0x9930da34, 0xffffd86fffffde76}, + {0x9930da35, 0xffffd86fffffde77}, + {0x9930da36, 0xffffd86fffffde78}, + {0x9930da37, 0xffffd86fffffde79}, + {0x9930da38, 0xffffd86fffffde7a}, + {0x9930da39, 0xffffd86fffffde7b}, + {0x9930db30, 0xffffd86fffffde7c}, + {0x9930db31, 0xffffd86fffffde7d}, + {0x9930db32, 0xffffd86fffffde7e}, + {0x9930db33, 0xffffd86fffffde7f}, + {0x9930db34, 0xffffd86fffffde80}, + {0x9930db35, 0xffffd86fffffde81}, + {0x9930db36, 0xffffd86fffffde82}, + {0x9930db37, 0xffffd86fffffde83}, + {0x9930db38, 0xffffd86fffffde84}, + {0x9930db39, 0xffffd86fffffde85}, + {0x9930dc30, 0xffffd86fffffde86}, + {0x9930dc31, 0xffffd86fffffde87}, + {0x9930dc32, 0xffffd86fffffde88}, + {0x9930dc33, 0xffffd86fffffde89}, + {0x9930dc34, 0xffffd86fffffde8a}, + {0x9930dc35, 0xffffd86fffffde8b}, + {0x9930dc36, 0xffffd86fffffde8c}, + {0x9930dc37, 0xffffd86fffffde8d}, + {0x9930dc38, 0xffffd86fffffde8e}, + {0x9930dc39, 0xffffd86fffffde8f}, + {0x9930dd30, 0xffffd86fffffde90}, + {0x9930dd31, 0xffffd86fffffde91}, + {0x9930dd32, 0xffffd86fffffde92}, + {0x9930dd33, 0xffffd86fffffde93}, + {0x9930dd34, 0xffffd86fffffde94}, + {0x9930dd35, 0xffffd86fffffde95}, + {0x9930dd36, 0xffffd86fffffde96}, + {0x9930dd37, 0xffffd86fffffde97}, + {0x9930dd38, 0xffffd86fffffde98}, + {0x9930dd39, 0xffffd86fffffde99}, + {0x9930de30, 0xffffd86fffffde9a}, + {0x9930de31, 0xffffd86fffffde9b}, + {0x9930de32, 0xffffd86fffffde9c}, + {0x9930de33, 0xffffd86fffffde9d}, + {0x9930de34, 0xffffd86fffffde9e}, + {0x9930de35, 0xffffd86fffffde9f}, + {0x9930de36, 0xffffd86fffffdea0}, + {0x9930de37, 0xffffd86fffffdea1}, + {0x9930de38, 0xffffd86fffffdea2}, + {0x9930de39, 0xffffd86fffffdea3}, + {0x9930df30, 0xffffd86fffffdea4}, + {0x9930df31, 0xffffd86fffffdea5}, + {0x9930df32, 0xffffd86fffffdea6}, + {0x9930df33, 0xffffd86fffffdea7}, + {0x9930df34, 0xffffd86fffffdea8}, + {0x9930df35, 0xffffd86fffffdea9}, + {0x9930df36, 0xffffd86fffffdeaa}, + {0x9930df37, 0xffffd86fffffdeab}, + {0x9930df38, 0xffffd86fffffdeac}, + {0x9930df39, 0xffffd86fffffdead}, + {0x9930e030, 0xffffd86fffffdeae}, + {0x9930e031, 0xffffd86fffffdeaf}, + {0x9930e032, 0xffffd86fffffdeb0}, + {0x9930e033, 0xffffd86fffffdeb1}, + {0x9930e034, 0xffffd86fffffdeb2}, + {0x9930e035, 0xffffd86fffffdeb3}, + {0x9930e036, 0xffffd86fffffdeb4}, + {0x9930e037, 0xffffd86fffffdeb5}, + {0x9930e038, 0xffffd86fffffdeb6}, + {0x9930e039, 0xffffd86fffffdeb7}, + {0x9930e130, 0xffffd86fffffdeb8}, + {0x9930e131, 0xffffd86fffffdeb9}, + {0x9930e132, 0xffffd86fffffdeba}, + {0x9930e133, 0xffffd86fffffdebb}, + {0x9930e134, 0xffffd86fffffdebc}, + {0x9930e135, 0xffffd86fffffdebd}, + {0x9930e136, 0xffffd86fffffdebe}, + {0x9930e137, 0xffffd86fffffdebf}, + {0x9930e138, 0xffffd86fffffdec0}, + {0x9930e139, 0xffffd86fffffdec1}, + {0x9930e230, 0xffffd86fffffdec2}, + {0x9930e231, 0xffffd86fffffdec3}, + {0x9930e232, 0xffffd86fffffdec4}, + {0x9930e233, 0xffffd86fffffdec5}, + {0x9930e234, 0xffffd86fffffdec6}, + {0x9930e235, 0xffffd86fffffdec7}, + {0x9930e236, 0xffffd86fffffdec8}, + {0x9930e237, 0xffffd86fffffdec9}, + {0x9930e238, 0xffffd86fffffdeca}, + {0x9930e239, 0xffffd86fffffdecb}, + {0x9930e330, 0xffffd86fffffdecc}, + {0x9930e331, 0xffffd86fffffdecd}, + {0x9930e332, 0xffffd86fffffdece}, + {0x9930e333, 0xffffd86fffffdecf}, + {0x9930e334, 0xffffd86fffffded0}, + {0x9930e335, 0xffffd86fffffded1}, + {0x9930e336, 0xffffd86fffffded2}, + {0x9930e337, 0xffffd86fffffded3}, + {0x9930e338, 0xffffd86fffffded4}, + {0x9930e339, 0xffffd86fffffded5}, + {0x9930e430, 0xffffd86fffffded6}, + {0x9930e431, 0xffffd86fffffded7}, + {0x9930e432, 0xffffd86fffffded8}, + {0x9930e433, 0xffffd86fffffded9}, + {0x9930e434, 0xffffd86fffffdeda}, + {0x9930e435, 0xffffd86fffffdedb}, + {0x9930e436, 0xffffd86fffffdedc}, + {0x9930e437, 0xffffd86fffffdedd}, + {0x9930e438, 0xffffd86fffffdede}, + {0x9930e439, 0xffffd86fffffdedf}, + {0x9930e530, 0xffffd86fffffdee0}, + {0x9930e531, 0xffffd86fffffdee1}, + {0x9930e532, 0xffffd86fffffdee2}, + {0x9930e533, 0xffffd86fffffdee3}, + {0x9930e534, 0xffffd86fffffdee4}, + {0x9930e535, 0xffffd86fffffdee5}, + {0x9930e536, 0xffffd86fffffdee6}, + {0x9930e537, 0xffffd86fffffdee7}, + {0x9930e538, 0xffffd86fffffdee8}, + {0x9930e539, 0xffffd86fffffdee9}, + {0x9930e630, 0xffffd86fffffdeea}, + {0x9930e631, 0xffffd86fffffdeeb}, + {0x9930e632, 0xffffd86fffffdeec}, + {0x9930e633, 0xffffd86fffffdeed}, + {0x9930e634, 0xffffd86fffffdeee}, + {0x9930e635, 0xffffd86fffffdeef}, + {0x9930e636, 0xffffd86fffffdef0}, + {0x9930e637, 0xffffd86fffffdef1}, + {0x9930e638, 0xffffd86fffffdef2}, + {0x9930e639, 0xffffd86fffffdef3}, + {0x9930e730, 0xffffd86fffffdef4}, + {0x9930e731, 0xffffd86fffffdef5}, + {0x9930e732, 0xffffd86fffffdef6}, + {0x9930e733, 0xffffd86fffffdef7}, + {0x9930e734, 0xffffd86fffffdef8}, + {0x9930e735, 0xffffd86fffffdef9}, + {0x9930e736, 0xffffd86fffffdefa}, + {0x9930e737, 0xffffd86fffffdefb}, + {0x9930e738, 0xffffd86fffffdefc}, + {0x9930e739, 0xffffd86fffffdefd}, + {0x9930e830, 0xffffd86fffffdefe}, + {0x9930e831, 0xffffd86fffffdeff}, + {0x9930e832, 0xffffd86fffffdf00}, + {0x9930e833, 0xffffd86fffffdf01}, + {0x9930e834, 0xffffd86fffffdf02}, + {0x9930e835, 0xffffd86fffffdf03}, + {0x9930e836, 0xffffd86fffffdf04}, + {0x9930e837, 0xffffd86fffffdf05}, + {0x9930e838, 0xffffd86fffffdf06}, + {0x9930e839, 0xffffd86fffffdf07}, + {0x9930e930, 0xffffd86fffffdf08}, + {0x9930e931, 0xffffd86fffffdf09}, + {0x9930e932, 0xffffd86fffffdf0a}, + {0x9930e933, 0xffffd86fffffdf0b}, + {0x9930e934, 0xffffd86fffffdf0c}, + {0x9930e935, 0xffffd86fffffdf0d}, + {0x9930e936, 0xffffd86fffffdf0e}, + {0x9930e937, 0xffffd86fffffdf0f}, + {0x9930e938, 0xffffd86fffffdf10}, + {0x9930e939, 0xffffd86fffffdf11}, + {0x9930ea30, 0xffffd86fffffdf12}, + {0x9930ea31, 0xffffd86fffffdf13}, + {0x9930ea32, 0xffffd86fffffdf14}, + {0x9930ea33, 0xffffd86fffffdf15}, + {0x9930ea34, 0xffffd86fffffdf16}, + {0x9930ea35, 0xffffd86fffffdf17}, + {0x9930ea36, 0xffffd86fffffdf18}, + {0x9930ea37, 0xffffd86fffffdf19}, + {0x9930ea38, 0xffffd86fffffdf1a}, + {0x9930ea39, 0xffffd86fffffdf1b}, + {0x9930eb30, 0xffffd86fffffdf1c}, + {0x9930eb31, 0xffffd86fffffdf1d}, + {0x9930eb32, 0xffffd86fffffdf1e}, + {0x9930eb33, 0xffffd86fffffdf1f}, + {0x9930eb34, 0xffffd86fffffdf20}, + {0x9930eb35, 0xffffd86fffffdf21}, + {0x9930eb36, 0xffffd86fffffdf22}, + {0x9930eb37, 0xffffd86fffffdf23}, + {0x9930eb38, 0xffffd86fffffdf24}, + {0x9930eb39, 0xffffd86fffffdf25}, + {0x9930ec30, 0xffffd86fffffdf26}, + {0x9930ec31, 0xffffd86fffffdf27}, + {0x9930ec32, 0xffffd86fffffdf28}, + {0x9930ec33, 0xffffd86fffffdf29}, + {0x9930ec34, 0xffffd86fffffdf2a}, + {0x9930ec35, 0xffffd86fffffdf2b}, + {0x9930ec36, 0xffffd86fffffdf2c}, + {0x9930ec37, 0xffffd86fffffdf2d}, + {0x9930ec38, 0xffffd86fffffdf2e}, + {0x9930ec39, 0xffffd86fffffdf2f}, + {0x9930ed30, 0xffffd86fffffdf30}, + {0x9930ed31, 0xffffd86fffffdf31}, + {0x9930ed32, 0xffffd86fffffdf32}, + {0x9930ed33, 0xffffd86fffffdf33}, + {0x9930ed34, 0xffffd86fffffdf34}, + {0x9930ed35, 0xffffd86fffffdf35}, + {0x9930ed36, 0xffffd86fffffdf36}, + {0x9930ed37, 0xffffd86fffffdf37}, + {0x9930ed38, 0xffffd86fffffdf38}, + {0x9930ed39, 0xffffd86fffffdf39}, + {0x9930ee30, 0xffffd86fffffdf3a}, + {0x9930ee31, 0xffffd86fffffdf3b}, + {0x9930ee32, 0xffffd86fffffdf3c}, + {0x9930ee33, 0xffffd86fffffdf3d}, + {0x9930ee34, 0xffffd86fffffdf3e}, + {0x9930ee35, 0xffffd86fffffdf3f}, + {0x9930ee36, 0xffffd86fffffdf40}, + {0x9930ee37, 0xffffd86fffffdf41}, + {0x9930ee38, 0xffffd86fffffdf42}, + {0x9930ee39, 0xffffd86fffffdf43}, + {0x9930ef30, 0xffffd86fffffdf44}, + {0x9930ef31, 0xffffd86fffffdf45}, + {0x9930ef32, 0xffffd86fffffdf46}, + {0x9930ef33, 0xffffd86fffffdf47}, + {0x9930ef34, 0xffffd86fffffdf48}, + {0x9930ef35, 0xffffd86fffffdf49}, + {0x9930ef36, 0xffffd86fffffdf4a}, + {0x9930ef37, 0xffffd86fffffdf4b}, + {0x9930ef38, 0xffffd86fffffdf4c}, + {0x9930ef39, 0xffffd86fffffdf4d}, + {0x9930f030, 0xffffd86fffffdf4e}, + {0x9930f031, 0xffffd86fffffdf4f}, + {0x9930f032, 0xffffd86fffffdf50}, + {0x9930f033, 0xffffd86fffffdf51}, + {0x9930f034, 0xffffd86fffffdf52}, + {0x9930f035, 0xffffd86fffffdf53}, + {0x9930f036, 0xffffd86fffffdf54}, + {0x9930f037, 0xffffd86fffffdf55}, + {0x9930f038, 0xffffd86fffffdf56}, + {0x9930f039, 0xffffd86fffffdf57}, + {0x9930f130, 0xffffd86fffffdf58}, + {0x9930f131, 0xffffd86fffffdf59}, + {0x9930f132, 0xffffd86fffffdf5a}, + {0x9930f133, 0xffffd86fffffdf5b}, + {0x9930f134, 0xffffd86fffffdf5c}, + {0x9930f135, 0xffffd86fffffdf5d}, + {0x9930f136, 0xffffd86fffffdf5e}, + {0x9930f137, 0xffffd86fffffdf5f}, + {0x9930f138, 0xffffd86fffffdf60}, + {0x9930f139, 0xffffd86fffffdf61}, + {0x9930f230, 0xffffd86fffffdf62}, + {0x9930f231, 0xffffd86fffffdf63}, + {0x9930f232, 0xffffd86fffffdf64}, + {0x9930f233, 0xffffd86fffffdf65}, + {0x9930f234, 0xffffd86fffffdf66}, + {0x9930f235, 0xffffd86fffffdf67}, + {0x9930f236, 0xffffd86fffffdf68}, + {0x9930f237, 0xffffd86fffffdf69}, + {0x9930f238, 0xffffd86fffffdf6a}, + {0x9930f239, 0xffffd86fffffdf6b}, + {0x9930f330, 0xffffd86fffffdf6c}, + {0x9930f331, 0xffffd86fffffdf6d}, + {0x9930f332, 0xffffd86fffffdf6e}, + {0x9930f333, 0xffffd86fffffdf6f}, + {0x9930f334, 0xffffd86fffffdf70}, + {0x9930f335, 0xffffd86fffffdf71}, + {0x9930f336, 0xffffd86fffffdf72}, + {0x9930f337, 0xffffd86fffffdf73}, + {0x9930f338, 0xffffd86fffffdf74}, + {0x9930f339, 0xffffd86fffffdf75}, + {0x9930f430, 0xffffd86fffffdf76}, + {0x9930f431, 0xffffd86fffffdf77}, + {0x9930f432, 0xffffd86fffffdf78}, + {0x9930f433, 0xffffd86fffffdf79}, + {0x9930f434, 0xffffd86fffffdf7a}, + {0x9930f435, 0xffffd86fffffdf7b}, + {0x9930f436, 0xffffd86fffffdf7c}, + {0x9930f437, 0xffffd86fffffdf7d}, + {0x9930f438, 0xffffd86fffffdf7e}, + {0x9930f439, 0xffffd86fffffdf7f}, + {0x9930f530, 0xffffd86fffffdf80}, + {0x9930f531, 0xffffd86fffffdf81}, + {0x9930f532, 0xffffd86fffffdf82}, + {0x9930f533, 0xffffd86fffffdf83}, + {0x9930f534, 0xffffd86fffffdf84}, + {0x9930f535, 0xffffd86fffffdf85}, + {0x9930f536, 0xffffd86fffffdf86}, + {0x9930f537, 0xffffd86fffffdf87}, + {0x9930f538, 0xffffd86fffffdf88}, + {0x9930f539, 0xffffd86fffffdf89}, + {0x9930f630, 0xffffd86fffffdf8a}, + {0x9930f631, 0xffffd86fffffdf8b}, + {0x9930f632, 0xffffd86fffffdf8c}, + {0x9930f633, 0xffffd86fffffdf8d}, + {0x9930f634, 0xffffd86fffffdf8e}, + {0x9930f635, 0xffffd86fffffdf8f}, + {0x9930f636, 0xffffd86fffffdf90}, + {0x9930f637, 0xffffd86fffffdf91}, + {0x9930f638, 0xffffd86fffffdf92}, + {0x9930f639, 0xffffd86fffffdf93}, + {0x9930f730, 0xffffd86fffffdf94}, + {0x9930f731, 0xffffd86fffffdf95}, + {0x9930f732, 0xffffd86fffffdf96}, + {0x9930f733, 0xffffd86fffffdf97}, + {0x9930f734, 0xffffd86fffffdf98}, + {0x9930f735, 0xffffd86fffffdf99}, + {0x9930f736, 0xffffd86fffffdf9a}, + {0x9930f737, 0xffffd86fffffdf9b}, + {0x9930f738, 0xffffd86fffffdf9c}, + {0x9930f739, 0xffffd86fffffdf9d}, + {0x9930f830, 0xffffd86fffffdf9e}, + {0x9930f831, 0xffffd86fffffdf9f}, + {0x9930f832, 0xffffd86fffffdfa0}, + {0x9930f833, 0xffffd86fffffdfa1}, + {0x9930f834, 0xffffd86fffffdfa2}, + {0x9930f835, 0xffffd86fffffdfa3}, + {0x9930f836, 0xffffd86fffffdfa4}, + {0x9930f837, 0xffffd86fffffdfa5}, + {0x9930f838, 0xffffd86fffffdfa6}, + {0x9930f839, 0xffffd86fffffdfa7}, + {0x9930f930, 0xffffd86fffffdfa8}, + {0x9930f931, 0xffffd86fffffdfa9}, + {0x9930f932, 0xffffd86fffffdfaa}, + {0x9930f933, 0xffffd86fffffdfab}, + {0x9930f934, 0xffffd86fffffdfac}, + {0x9930f935, 0xffffd86fffffdfad}, + {0x9930f936, 0xffffd86fffffdfae}, + {0x9930f937, 0xffffd86fffffdfaf}, + {0x9930f938, 0xffffd86fffffdfb0}, + {0x9930f939, 0xffffd86fffffdfb1}, + {0x9930fa30, 0xffffd86fffffdfb2}, + {0x9930fa31, 0xffffd86fffffdfb3}, + {0x9930fa32, 0xffffd86fffffdfb4}, + {0x9930fa33, 0xffffd86fffffdfb5}, + {0x9930fa34, 0xffffd86fffffdfb6}, + {0x9930fa35, 0xffffd86fffffdfb7}, + {0x9930fa36, 0xffffd86fffffdfb8}, + {0x9930fa37, 0xffffd86fffffdfb9}, + {0x9930fa38, 0xffffd86fffffdfba}, + {0x9930fa39, 0xffffd86fffffdfbb}, + {0x9930fb30, 0xffffd86fffffdfbc}, + {0x9930fb31, 0xffffd86fffffdfbd}, + {0x9930fb32, 0xffffd86fffffdfbe}, + {0x9930fb33, 0xffffd86fffffdfbf}, + {0x9930fb34, 0xffffd86fffffdfc0}, + {0x9930fb35, 0xffffd86fffffdfc1}, + {0x9930fb36, 0xffffd86fffffdfc2}, + {0x9930fb37, 0xffffd86fffffdfc3}, + {0x9930fb38, 0xffffd86fffffdfc4}, + {0x9930fb39, 0xffffd86fffffdfc5}, + {0x9930fc30, 0xffffd86fffffdfc6}, + {0x9930fc31, 0xffffd86fffffdfc7}, + {0x9930fc32, 0xffffd86fffffdfc8}, + {0x9930fc33, 0xffffd86fffffdfc9}, + {0x9930fc34, 0xffffd86fffffdfca}, + {0x9930fc35, 0xffffd86fffffdfcb}, + {0x9930fc36, 0xffffd86fffffdfcc}, + {0x9930fc37, 0xffffd86fffffdfcd}, + {0x9930fc38, 0xffffd86fffffdfce}, + {0x9930fc39, 0xffffd86fffffdfcf}, + {0x9930fd30, 0xffffd86fffffdfd0}, + {0x9930fd31, 0xffffd86fffffdfd1}, + {0x9930fd32, 0xffffd86fffffdfd2}, + {0x9930fd33, 0xffffd86fffffdfd3}, + {0x9930fd34, 0xffffd86fffffdfd4}, + {0x9930fd35, 0xffffd86fffffdfd5}, + {0x9930fd36, 0xffffd86fffffdfd6}, + {0x9930fd37, 0xffffd86fffffdfd7}, + {0x9930fd38, 0xffffd86fffffdfd8}, + {0x9930fd39, 0xffffd86fffffdfd9}, + {0x9930fe30, 0xffffd86fffffdfda}, + {0x9930fe31, 0xffffd86fffffdfdb}, + {0x9930fe32, 0xffffd86fffffdfdc}, + {0x9930fe33, 0xffffd86fffffdfdd}, + {0x9930fe34, 0xffffd86fffffdfde}, + {0x9930fe35, 0xffffd86fffffdfdf}, + {0x9930fe36, 0xffffd86fffffdfe0}, + {0x9930fe37, 0xffffd86fffffdfe1}, + {0x9930fe38, 0xffffd86fffffdfe2}, + {0x9930fe39, 0xffffd86fffffdfe3}, + {0x99318130, 0xffffd86fffffdfe4}, + {0x99318131, 0xffffd86fffffdfe5}, + {0x99318132, 0xffffd86fffffdfe6}, + {0x99318133, 0xffffd86fffffdfe7}, + {0x99318134, 0xffffd86fffffdfe8}, + {0x99318135, 0xffffd86fffffdfe9}, + {0x99318136, 0xffffd86fffffdfea}, + {0x99318137, 0xffffd86fffffdfeb}, + {0x99318138, 0xffffd86fffffdfec}, + {0x99318139, 0xffffd86fffffdfed}, + {0x99318230, 0xffffd86fffffdfee}, + {0x99318231, 0xffffd86fffffdfef}, + {0x99318232, 0xffffd86fffffdff0}, + {0x99318233, 0xffffd86fffffdff1}, + {0x99318234, 0xffffd86fffffdff2}, + {0x99318235, 0xffffd86fffffdff3}, + {0x99318236, 0xffffd86fffffdff4}, + {0x99318237, 0xffffd86fffffdff5}, + {0x99318238, 0xffffd86fffffdff6}, + {0x99318239, 0xffffd86fffffdff7}, + {0x99318330, 0xffffd86fffffdff8}, + {0x99318331, 0xffffd86fffffdff9}, + {0x99318332, 0xffffd86fffffdffa}, + {0x99318333, 0xffffd86fffffdffb}, + {0x99318334, 0xffffd86fffffdffc}, + {0x99318335, 0xffffd86fffffdffd}, + {0x99318336, 0xffffd86fffffdffe}, + {0x99318337, 0xffffd86fffffdfff}, + {0x99318338, 0xffffd870ffffdc00}, + {0x99318339, 0xffffd870ffffdc01}, + {0x99318430, 0xffffd870ffffdc02}, + {0x99318431, 0xffffd870ffffdc03}, + {0x99318432, 0xffffd870ffffdc04}, + {0x99318433, 0xffffd870ffffdc05}, + {0x99318434, 0xffffd870ffffdc06}, + {0x99318435, 0xffffd870ffffdc07}, + {0x99318436, 0xffffd870ffffdc08}, + {0x99318437, 0xffffd870ffffdc09}, + {0x99318438, 0xffffd870ffffdc0a}, + {0x99318439, 0xffffd870ffffdc0b}, + {0x99318530, 0xffffd870ffffdc0c}, + {0x99318531, 0xffffd870ffffdc0d}, + {0x99318532, 0xffffd870ffffdc0e}, + {0x99318533, 0xffffd870ffffdc0f}, + {0x99318534, 0xffffd870ffffdc10}, + {0x99318535, 0xffffd870ffffdc11}, + {0x99318536, 0xffffd870ffffdc12}, + {0x99318537, 0xffffd870ffffdc13}, + {0x99318538, 0xffffd870ffffdc14}, + {0x99318539, 0xffffd870ffffdc15}, + {0x99318630, 0xffffd870ffffdc16}, + {0x99318631, 0xffffd870ffffdc17}, + {0x99318632, 0xffffd870ffffdc18}, + {0x99318633, 0xffffd870ffffdc19}, + {0x99318634, 0xffffd870ffffdc1a}, + {0x99318635, 0xffffd870ffffdc1b}, + {0x99318636, 0xffffd870ffffdc1c}, + {0x99318637, 0xffffd870ffffdc1d}, + {0x99318638, 0xffffd870ffffdc1e}, + {0x99318639, 0xffffd870ffffdc1f}, + {0x99318730, 0xffffd870ffffdc20}, + {0x99318731, 0xffffd870ffffdc21}, + {0x99318732, 0xffffd870ffffdc22}, + {0x99318733, 0xffffd870ffffdc23}, + {0x99318734, 0xffffd870ffffdc24}, + {0x99318735, 0xffffd870ffffdc25}, + {0x99318736, 0xffffd870ffffdc26}, + {0x99318737, 0xffffd870ffffdc27}, + {0x99318738, 0xffffd870ffffdc28}, + {0x99318739, 0xffffd870ffffdc29}, + {0x99318830, 0xffffd870ffffdc2a}, + {0x99318831, 0xffffd870ffffdc2b}, + {0x99318832, 0xffffd870ffffdc2c}, + {0x99318833, 0xffffd870ffffdc2d}, + {0x99318834, 0xffffd870ffffdc2e}, + {0x99318835, 0xffffd870ffffdc2f}, + {0x99318836, 0xffffd870ffffdc30}, + {0x99318837, 0xffffd870ffffdc31}, + {0x99318838, 0xffffd870ffffdc32}, + {0x99318839, 0xffffd870ffffdc33}, + {0x99318930, 0xffffd870ffffdc34}, + {0x99318931, 0xffffd870ffffdc35}, + {0x99318932, 0xffffd870ffffdc36}, + {0x99318933, 0xffffd870ffffdc37}, + {0x99318934, 0xffffd870ffffdc38}, + {0x99318935, 0xffffd870ffffdc39}, + {0x99318936, 0xffffd870ffffdc3a}, + {0x99318937, 0xffffd870ffffdc3b}, + {0x99318938, 0xffffd870ffffdc3c}, + {0x99318939, 0xffffd870ffffdc3d}, + {0x99318a30, 0xffffd870ffffdc3e}, + {0x99318a31, 0xffffd870ffffdc3f}, + {0x99318a32, 0xffffd870ffffdc40}, + {0x99318a33, 0xffffd870ffffdc41}, + {0x99318a34, 0xffffd870ffffdc42}, + {0x99318a35, 0xffffd870ffffdc43}, + {0x99318a36, 0xffffd870ffffdc44}, + {0x99318a37, 0xffffd870ffffdc45}, + {0x99318a38, 0xffffd870ffffdc46}, + {0x99318a39, 0xffffd870ffffdc47}, + {0x99318b30, 0xffffd870ffffdc48}, + {0x99318b31, 0xffffd870ffffdc49}, + {0x99318b32, 0xffffd870ffffdc4a}, + {0x99318b33, 0xffffd870ffffdc4b}, + {0x99318b34, 0xffffd870ffffdc4c}, + {0x99318b35, 0xffffd870ffffdc4d}, + {0x99318b36, 0xffffd870ffffdc4e}, + {0x99318b37, 0xffffd870ffffdc4f}, + {0x99318b38, 0xffffd870ffffdc50}, + {0x99318b39, 0xffffd870ffffdc51}, + {0x99318c30, 0xffffd870ffffdc52}, + {0x99318c31, 0xffffd870ffffdc53}, + {0x99318c32, 0xffffd870ffffdc54}, + {0x99318c33, 0xffffd870ffffdc55}, + {0x99318c34, 0xffffd870ffffdc56}, + {0x99318c35, 0xffffd870ffffdc57}, + {0x99318c36, 0xffffd870ffffdc58}, + {0x99318c37, 0xffffd870ffffdc59}, + {0x99318c38, 0xffffd870ffffdc5a}, + {0x99318c39, 0xffffd870ffffdc5b}, + {0x99318d30, 0xffffd870ffffdc5c}, + {0x99318d31, 0xffffd870ffffdc5d}, + {0x99318d32, 0xffffd870ffffdc5e}, + {0x99318d33, 0xffffd870ffffdc5f}, + {0x99318d34, 0xffffd870ffffdc60}, + {0x99318d35, 0xffffd870ffffdc61}, + {0x99318d36, 0xffffd870ffffdc62}, + {0x99318d37, 0xffffd870ffffdc63}, + {0x99318d38, 0xffffd870ffffdc64}, + {0x99318d39, 0xffffd870ffffdc65}, + {0x99318e30, 0xffffd870ffffdc66}, + {0x99318e31, 0xffffd870ffffdc67}, + {0x99318e32, 0xffffd870ffffdc68}, + {0x99318e33, 0xffffd870ffffdc69}, + {0x99318e34, 0xffffd870ffffdc6a}, + {0x99318e35, 0xffffd870ffffdc6b}, + {0x99318e36, 0xffffd870ffffdc6c}, + {0x99318e37, 0xffffd870ffffdc6d}, + {0x99318e38, 0xffffd870ffffdc6e}, + {0x99318e39, 0xffffd870ffffdc6f}, + {0x99318f30, 0xffffd870ffffdc70}, + {0x99318f31, 0xffffd870ffffdc71}, + {0x99318f32, 0xffffd870ffffdc72}, + {0x99318f33, 0xffffd870ffffdc73}, + {0x99318f34, 0xffffd870ffffdc74}, + {0x99318f35, 0xffffd870ffffdc75}, + {0x99318f36, 0xffffd870ffffdc76}, + {0x99318f37, 0xffffd870ffffdc77}, + {0x99318f38, 0xffffd870ffffdc78}, + {0x99318f39, 0xffffd870ffffdc79}, + {0x99319030, 0xffffd870ffffdc7a}, + {0x99319031, 0xffffd870ffffdc7b}, + {0x99319032, 0xffffd870ffffdc7c}, + {0x99319033, 0xffffd870ffffdc7d}, + {0x99319034, 0xffffd870ffffdc7e}, + {0x99319035, 0xffffd870ffffdc7f}, + {0x99319036, 0xffffd870ffffdc80}, + {0x99319037, 0xffffd870ffffdc81}, + {0x99319038, 0xffffd870ffffdc82}, + {0x99319039, 0xffffd870ffffdc83}, + {0x99319130, 0xffffd870ffffdc84}, + {0x99319131, 0xffffd870ffffdc85}, + {0x99319132, 0xffffd870ffffdc86}, + {0x99319133, 0xffffd870ffffdc87}, + {0x99319134, 0xffffd870ffffdc88}, + {0x99319135, 0xffffd870ffffdc89}, + {0x99319136, 0xffffd870ffffdc8a}, + {0x99319137, 0xffffd870ffffdc8b}, + {0x99319138, 0xffffd870ffffdc8c}, + {0x99319139, 0xffffd870ffffdc8d}, + {0x99319230, 0xffffd870ffffdc8e}, + {0x99319231, 0xffffd870ffffdc8f}, + {0x99319232, 0xffffd870ffffdc90}, + {0x99319233, 0xffffd870ffffdc91}, + {0x99319234, 0xffffd870ffffdc92}, + {0x99319235, 0xffffd870ffffdc93}, + {0x99319236, 0xffffd870ffffdc94}, + {0x99319237, 0xffffd870ffffdc95}, + {0x99319238, 0xffffd870ffffdc96}, + {0x99319239, 0xffffd870ffffdc97}, + {0x99319330, 0xffffd870ffffdc98}, + {0x99319331, 0xffffd870ffffdc99}, + {0x99319332, 0xffffd870ffffdc9a}, + {0x99319333, 0xffffd870ffffdc9b}, + {0x99319334, 0xffffd870ffffdc9c}, + {0x99319335, 0xffffd870ffffdc9d}, + {0x99319336, 0xffffd870ffffdc9e}, + {0x99319337, 0xffffd870ffffdc9f}, + {0x99319338, 0xffffd870ffffdca0}, + {0x99319339, 0xffffd870ffffdca1}, + {0x99319430, 0xffffd870ffffdca2}, + {0x99319431, 0xffffd870ffffdca3}, + {0x99319432, 0xffffd870ffffdca4}, + {0x99319433, 0xffffd870ffffdca5}, + {0x99319434, 0xffffd870ffffdca6}, + {0x99319435, 0xffffd870ffffdca7}, + {0x99319436, 0xffffd870ffffdca8}, + {0x99319437, 0xffffd870ffffdca9}, + {0x99319438, 0xffffd870ffffdcaa}, + {0x99319439, 0xffffd870ffffdcab}, + {0x99319530, 0xffffd870ffffdcac}, + {0x99319531, 0xffffd870ffffdcad}, + {0x99319532, 0xffffd870ffffdcae}, + {0x99319533, 0xffffd870ffffdcaf}, + {0x99319534, 0xffffd870ffffdcb0}, + {0x99319535, 0xffffd870ffffdcb1}, + {0x99319536, 0xffffd870ffffdcb2}, + {0x99319537, 0xffffd870ffffdcb3}, + {0x99319538, 0xffffd870ffffdcb4}, + {0x99319539, 0xffffd870ffffdcb5}, + {0x99319630, 0xffffd870ffffdcb6}, + {0x99319631, 0xffffd870ffffdcb7}, + {0x99319632, 0xffffd870ffffdcb8}, + {0x99319633, 0xffffd870ffffdcb9}, + {0x99319634, 0xffffd870ffffdcba}, + {0x99319635, 0xffffd870ffffdcbb}, + {0x99319636, 0xffffd870ffffdcbc}, + {0x99319637, 0xffffd870ffffdcbd}, + {0x99319638, 0xffffd870ffffdcbe}, + {0x99319639, 0xffffd870ffffdcbf}, + {0x99319730, 0xffffd870ffffdcc0}, + {0x99319731, 0xffffd870ffffdcc1}, + {0x99319732, 0xffffd870ffffdcc2}, + {0x99319733, 0xffffd870ffffdcc3}, + {0x99319734, 0xffffd870ffffdcc4}, + {0x99319735, 0xffffd870ffffdcc5}, + {0x99319736, 0xffffd870ffffdcc6}, + {0x99319737, 0xffffd870ffffdcc7}, + {0x99319738, 0xffffd870ffffdcc8}, + {0x99319739, 0xffffd870ffffdcc9}, + {0x99319830, 0xffffd870ffffdcca}, + {0x99319831, 0xffffd870ffffdccb}, + {0x99319832, 0xffffd870ffffdccc}, + {0x99319833, 0xffffd870ffffdccd}, + {0x99319834, 0xffffd870ffffdcce}, + {0x99319835, 0xffffd870ffffdccf}, + {0x99319836, 0xffffd870ffffdcd0}, + {0x99319837, 0xffffd870ffffdcd1}, + {0x99319838, 0xffffd870ffffdcd2}, + {0x99319839, 0xffffd870ffffdcd3}, + {0x99319930, 0xffffd870ffffdcd4}, + {0x99319931, 0xffffd870ffffdcd5}, + {0x99319932, 0xffffd870ffffdcd6}, + {0x99319933, 0xffffd870ffffdcd7}, + {0x99319934, 0xffffd870ffffdcd8}, + {0x99319935, 0xffffd870ffffdcd9}, + {0x99319936, 0xffffd870ffffdcda}, + {0x99319937, 0xffffd870ffffdcdb}, + {0x99319938, 0xffffd870ffffdcdc}, + {0x99319939, 0xffffd870ffffdcdd}, + {0x99319a30, 0xffffd870ffffdcde}, + {0x99319a31, 0xffffd870ffffdcdf}, + {0x99319a32, 0xffffd870ffffdce0}, + {0x99319a33, 0xffffd870ffffdce1}, + {0x99319a34, 0xffffd870ffffdce2}, + {0x99319a35, 0xffffd870ffffdce3}, + {0x99319a36, 0xffffd870ffffdce4}, + {0x99319a37, 0xffffd870ffffdce5}, + {0x99319a38, 0xffffd870ffffdce6}, + {0x99319a39, 0xffffd870ffffdce7}, + {0x99319b30, 0xffffd870ffffdce8}, + {0x99319b31, 0xffffd870ffffdce9}, + {0x99319b32, 0xffffd870ffffdcea}, + {0x99319b33, 0xffffd870ffffdceb}, + {0x99319b34, 0xffffd870ffffdcec}, + {0x99319b35, 0xffffd870ffffdced}, + {0x99319b36, 0xffffd870ffffdcee}, + {0x99319b37, 0xffffd870ffffdcef}, + {0x99319b38, 0xffffd870ffffdcf0}, + {0x99319b39, 0xffffd870ffffdcf1}, + {0x99319c30, 0xffffd870ffffdcf2}, + {0x99319c31, 0xffffd870ffffdcf3}, + {0x99319c32, 0xffffd870ffffdcf4}, + {0x99319c33, 0xffffd870ffffdcf5}, + {0x99319c34, 0xffffd870ffffdcf6}, + {0x99319c35, 0xffffd870ffffdcf7}, + {0x99319c36, 0xffffd870ffffdcf8}, + {0x99319c37, 0xffffd870ffffdcf9}, + {0x99319c38, 0xffffd870ffffdcfa}, + {0x99319c39, 0xffffd870ffffdcfb}, + {0x99319d30, 0xffffd870ffffdcfc}, + {0x99319d31, 0xffffd870ffffdcfd}, + {0x99319d32, 0xffffd870ffffdcfe}, + {0x99319d33, 0xffffd870ffffdcff}, + {0x99319d34, 0xffffd870ffffdd00}, + {0x99319d35, 0xffffd870ffffdd01}, + {0x99319d36, 0xffffd870ffffdd02}, + {0x99319d37, 0xffffd870ffffdd03}, + {0x99319d38, 0xffffd870ffffdd04}, + {0x99319d39, 0xffffd870ffffdd05}, + {0x99319e30, 0xffffd870ffffdd06}, + {0x99319e31, 0xffffd870ffffdd07}, + {0x99319e32, 0xffffd870ffffdd08}, + {0x99319e33, 0xffffd870ffffdd09}, + {0x99319e34, 0xffffd870ffffdd0a}, + {0x99319e35, 0xffffd870ffffdd0b}, + {0x99319e36, 0xffffd870ffffdd0c}, + {0x99319e37, 0xffffd870ffffdd0d}, + {0x99319e38, 0xffffd870ffffdd0e}, + {0x99319e39, 0xffffd870ffffdd0f}, + {0x99319f30, 0xffffd870ffffdd10}, + {0x99319f31, 0xffffd870ffffdd11}, + {0x99319f32, 0xffffd870ffffdd12}, + {0x99319f33, 0xffffd870ffffdd13}, + {0x99319f34, 0xffffd870ffffdd14}, + {0x99319f35, 0xffffd870ffffdd15}, + {0x99319f36, 0xffffd870ffffdd16}, + {0x99319f37, 0xffffd870ffffdd17}, + {0x99319f38, 0xffffd870ffffdd18}, + {0x99319f39, 0xffffd870ffffdd19}, + {0x9931a030, 0xffffd870ffffdd1a}, + {0x9931a031, 0xffffd870ffffdd1b}, + {0x9931a032, 0xffffd870ffffdd1c}, + {0x9931a033, 0xffffd870ffffdd1d}, + {0x9931a034, 0xffffd870ffffdd1e}, + {0x9931a035, 0xffffd870ffffdd1f}, + {0x9931a036, 0xffffd870ffffdd20}, + {0x9931a037, 0xffffd870ffffdd21}, + {0x9931a038, 0xffffd870ffffdd22}, + {0x9931a039, 0xffffd870ffffdd23}, + {0x9931a130, 0xffffd870ffffdd24}, + {0x9931a131, 0xffffd870ffffdd25}, + {0x9931a132, 0xffffd870ffffdd26}, + {0x9931a133, 0xffffd870ffffdd27}, + {0x9931a134, 0xffffd870ffffdd28}, + {0x9931a135, 0xffffd870ffffdd29}, + {0x9931a136, 0xffffd870ffffdd2a}, + {0x9931a137, 0xffffd870ffffdd2b}, + {0x9931a138, 0xffffd870ffffdd2c}, + {0x9931a139, 0xffffd870ffffdd2d}, + {0x9931a230, 0xffffd870ffffdd2e}, + {0x9931a231, 0xffffd870ffffdd2f}, + {0x9931a232, 0xffffd870ffffdd30}, + {0x9931a233, 0xffffd870ffffdd31}, + {0x9931a234, 0xffffd870ffffdd32}, + {0x9931a235, 0xffffd870ffffdd33}, + {0x9931a236, 0xffffd870ffffdd34}, + {0x9931a237, 0xffffd870ffffdd35}, + {0x9931a238, 0xffffd870ffffdd36}, + {0x9931a239, 0xffffd870ffffdd37}, + {0x9931a330, 0xffffd870ffffdd38}, + {0x9931a331, 0xffffd870ffffdd39}, + {0x9931a332, 0xffffd870ffffdd3a}, + {0x9931a333, 0xffffd870ffffdd3b}, + {0x9931a334, 0xffffd870ffffdd3c}, + {0x9931a335, 0xffffd870ffffdd3d}, + {0x9931a336, 0xffffd870ffffdd3e}, + {0x9931a337, 0xffffd870ffffdd3f}, + {0x9931a338, 0xffffd870ffffdd40}, + {0x9931a339, 0xffffd870ffffdd41}, + {0x9931a430, 0xffffd870ffffdd42}, + {0x9931a431, 0xffffd870ffffdd43}, + {0x9931a432, 0xffffd870ffffdd44}, + {0x9931a433, 0xffffd870ffffdd45}, + {0x9931a434, 0xffffd870ffffdd46}, + {0x9931a435, 0xffffd870ffffdd47}, + {0x9931a436, 0xffffd870ffffdd48}, + {0x9931a437, 0xffffd870ffffdd49}, + {0x9931a438, 0xffffd870ffffdd4a}, + {0x9931a439, 0xffffd870ffffdd4b}, + {0x9931a530, 0xffffd870ffffdd4c}, + {0x9931a531, 0xffffd870ffffdd4d}, + {0x9931a532, 0xffffd870ffffdd4e}, + {0x9931a533, 0xffffd870ffffdd4f}, + {0x9931a534, 0xffffd870ffffdd50}, + {0x9931a535, 0xffffd870ffffdd51}, + {0x9931a536, 0xffffd870ffffdd52}, + {0x9931a537, 0xffffd870ffffdd53}, + {0x9931a538, 0xffffd870ffffdd54}, + {0x9931a539, 0xffffd870ffffdd55}, + {0x9931a630, 0xffffd870ffffdd56}, + {0x9931a631, 0xffffd870ffffdd57}, + {0x9931a632, 0xffffd870ffffdd58}, + {0x9931a633, 0xffffd870ffffdd59}, + {0x9931a634, 0xffffd870ffffdd5a}, + {0x9931a635, 0xffffd870ffffdd5b}, + {0x9931a636, 0xffffd870ffffdd5c}, + {0x9931a637, 0xffffd870ffffdd5d}, + {0x9931a638, 0xffffd870ffffdd5e}, + {0x9931a639, 0xffffd870ffffdd5f}, + {0x9931a730, 0xffffd870ffffdd60}, + {0x9931a731, 0xffffd870ffffdd61}, + {0x9931a732, 0xffffd870ffffdd62}, + {0x9931a733, 0xffffd870ffffdd63}, + {0x9931a734, 0xffffd870ffffdd64}, + {0x9931a735, 0xffffd870ffffdd65}, + {0x9931a736, 0xffffd870ffffdd66}, + {0x9931a737, 0xffffd870ffffdd67}, + {0x9931a738, 0xffffd870ffffdd68}, + {0x9931a739, 0xffffd870ffffdd69}, + {0x9931a830, 0xffffd870ffffdd6a}, + {0x9931a831, 0xffffd870ffffdd6b}, + {0x9931a832, 0xffffd870ffffdd6c}, + {0x9931a833, 0xffffd870ffffdd6d}, + {0x9931a834, 0xffffd870ffffdd6e}, + {0x9931a835, 0xffffd870ffffdd6f}, + {0x9931a836, 0xffffd870ffffdd70}, + {0x9931a837, 0xffffd870ffffdd71}, + {0x9931a838, 0xffffd870ffffdd72}, + {0x9931a839, 0xffffd870ffffdd73}, + {0x9931a930, 0xffffd870ffffdd74}, + {0x9931a931, 0xffffd870ffffdd75}, + {0x9931a932, 0xffffd870ffffdd76}, + {0x9931a933, 0xffffd870ffffdd77}, + {0x9931a934, 0xffffd870ffffdd78}, + {0x9931a935, 0xffffd870ffffdd79}, + {0x9931a936, 0xffffd870ffffdd7a}, + {0x9931a937, 0xffffd870ffffdd7b}, + {0x9931a938, 0xffffd870ffffdd7c}, + {0x9931a939, 0xffffd870ffffdd7d}, + {0x9931aa30, 0xffffd870ffffdd7e}, + {0x9931aa31, 0xffffd870ffffdd7f}, + {0x9931aa32, 0xffffd870ffffdd80}, + {0x9931aa33, 0xffffd870ffffdd81}, + {0x9931aa34, 0xffffd870ffffdd82}, + {0x9931aa35, 0xffffd870ffffdd83}, + {0x9931aa36, 0xffffd870ffffdd84}, + {0x9931aa37, 0xffffd870ffffdd85}, + {0x9931aa38, 0xffffd870ffffdd86}, + {0x9931aa39, 0xffffd870ffffdd87}, + {0x9931ab30, 0xffffd870ffffdd88}, + {0x9931ab31, 0xffffd870ffffdd89}, + {0x9931ab32, 0xffffd870ffffdd8a}, + {0x9931ab33, 0xffffd870ffffdd8b}, + {0x9931ab34, 0xffffd870ffffdd8c}, + {0x9931ab35, 0xffffd870ffffdd8d}, + {0x9931ab36, 0xffffd870ffffdd8e}, + {0x9931ab37, 0xffffd870ffffdd8f}, + {0x9931ab38, 0xffffd870ffffdd90}, + {0x9931ab39, 0xffffd870ffffdd91}, + {0x9931ac30, 0xffffd870ffffdd92}, + {0x9931ac31, 0xffffd870ffffdd93}, + {0x9931ac32, 0xffffd870ffffdd94}, + {0x9931ac33, 0xffffd870ffffdd95}, + {0x9931ac34, 0xffffd870ffffdd96}, + {0x9931ac35, 0xffffd870ffffdd97}, + {0x9931ac36, 0xffffd870ffffdd98}, + {0x9931ac37, 0xffffd870ffffdd99}, + {0x9931ac38, 0xffffd870ffffdd9a}, + {0x9931ac39, 0xffffd870ffffdd9b}, + {0x9931ad30, 0xffffd870ffffdd9c}, + {0x9931ad31, 0xffffd870ffffdd9d}, + {0x9931ad32, 0xffffd870ffffdd9e}, + {0x9931ad33, 0xffffd870ffffdd9f}, + {0x9931ad34, 0xffffd870ffffdda0}, + {0x9931ad35, 0xffffd870ffffdda1}, + {0x9931ad36, 0xffffd870ffffdda2}, + {0x9931ad37, 0xffffd870ffffdda3}, + {0x9931ad38, 0xffffd870ffffdda4}, + {0x9931ad39, 0xffffd870ffffdda5}, + {0x9931ae30, 0xffffd870ffffdda6}, + {0x9931ae31, 0xffffd870ffffdda7}, + {0x9931ae32, 0xffffd870ffffdda8}, + {0x9931ae33, 0xffffd870ffffdda9}, + {0x9931ae34, 0xffffd870ffffddaa}, + {0x9931ae35, 0xffffd870ffffddab}, + {0x9931ae36, 0xffffd870ffffddac}, + {0x9931ae37, 0xffffd870ffffddad}, + {0x9931ae38, 0xffffd870ffffddae}, + {0x9931ae39, 0xffffd870ffffddaf}, + {0x9931af30, 0xffffd870ffffddb0}, + {0x9931af31, 0xffffd870ffffddb1}, + {0x9931af32, 0xffffd870ffffddb2}, + {0x9931af33, 0xffffd870ffffddb3}, + {0x9931af34, 0xffffd870ffffddb4}, + {0x9931af35, 0xffffd870ffffddb5}, + {0x9931af36, 0xffffd870ffffddb6}, + {0x9931af37, 0xffffd870ffffddb7}, + {0x9931af38, 0xffffd870ffffddb8}, + {0x9931af39, 0xffffd870ffffddb9}, + {0x9931b030, 0xffffd870ffffddba}, + {0x9931b031, 0xffffd870ffffddbb}, + {0x9931b032, 0xffffd870ffffddbc}, + {0x9931b033, 0xffffd870ffffddbd}, + {0x9931b034, 0xffffd870ffffddbe}, + {0x9931b035, 0xffffd870ffffddbf}, + {0x9931b036, 0xffffd870ffffddc0}, + {0x9931b037, 0xffffd870ffffddc1}, + {0x9931b038, 0xffffd870ffffddc2}, + {0x9931b039, 0xffffd870ffffddc3}, + {0x9931b130, 0xffffd870ffffddc4}, + {0x9931b131, 0xffffd870ffffddc5}, + {0x9931b132, 0xffffd870ffffddc6}, + {0x9931b133, 0xffffd870ffffddc7}, + {0x9931b134, 0xffffd870ffffddc8}, + {0x9931b135, 0xffffd870ffffddc9}, + {0x9931b136, 0xffffd870ffffddca}, + {0x9931b137, 0xffffd870ffffddcb}, + {0x9931b138, 0xffffd870ffffddcc}, + {0x9931b139, 0xffffd870ffffddcd}, + {0x9931b230, 0xffffd870ffffddce}, + {0x9931b231, 0xffffd870ffffddcf}, + {0x9931b232, 0xffffd870ffffddd0}, + {0x9931b233, 0xffffd870ffffddd1}, + {0x9931b234, 0xffffd870ffffddd2}, + {0x9931b235, 0xffffd870ffffddd3}, + {0x9931b236, 0xffffd870ffffddd4}, + {0x9931b237, 0xffffd870ffffddd5}, + {0x9931b238, 0xffffd870ffffddd6}, + {0x9931b239, 0xffffd870ffffddd7}, + {0x9931b330, 0xffffd870ffffddd8}, + {0x9931b331, 0xffffd870ffffddd9}, + {0x9931b332, 0xffffd870ffffddda}, + {0x9931b333, 0xffffd870ffffdddb}, + {0x9931b334, 0xffffd870ffffdddc}, + {0x9931b335, 0xffffd870ffffdddd}, + {0x9931b336, 0xffffd870ffffddde}, + {0x9931b337, 0xffffd870ffffdddf}, + {0x9931b338, 0xffffd870ffffdde0}, + {0x9931b339, 0xffffd870ffffdde1}, + {0x9931b430, 0xffffd870ffffdde2}, + {0x9931b431, 0xffffd870ffffdde3}, + {0x9931b432, 0xffffd870ffffdde4}, + {0x9931b433, 0xffffd870ffffdde5}, + {0x9931b434, 0xffffd870ffffdde6}, + {0x9931b435, 0xffffd870ffffdde7}, + {0x9931b436, 0xffffd870ffffdde8}, + {0x9931b437, 0xffffd870ffffdde9}, + {0x9931b438, 0xffffd870ffffddea}, + {0x9931b439, 0xffffd870ffffddeb}, + {0x9931b530, 0xffffd870ffffddec}, + {0x9931b531, 0xffffd870ffffdded}, + {0x9931b532, 0xffffd870ffffddee}, + {0x9931b533, 0xffffd870ffffddef}, + {0x9931b534, 0xffffd870ffffddf0}, + {0x9931b535, 0xffffd870ffffddf1}, + {0x9931b536, 0xffffd870ffffddf2}, + {0x9931b537, 0xffffd870ffffddf3}, + {0x9931b538, 0xffffd870ffffddf4}, + {0x9931b539, 0xffffd870ffffddf5}, + {0x9931b630, 0xffffd870ffffddf6}, + {0x9931b631, 0xffffd870ffffddf7}, + {0x9931b632, 0xffffd870ffffddf8}, + {0x9931b633, 0xffffd870ffffddf9}, + {0x9931b634, 0xffffd870ffffddfa}, + {0x9931b635, 0xffffd870ffffddfb}, + {0x9931b636, 0xffffd870ffffddfc}, + {0x9931b637, 0xffffd870ffffddfd}, + {0x9931b638, 0xffffd870ffffddfe}, + {0x9931b639, 0xffffd870ffffddff}, + {0x9931b730, 0xffffd870ffffde00}, + {0x9931b731, 0xffffd870ffffde01}, + {0x9931b732, 0xffffd870ffffde02}, + {0x9931b733, 0xffffd870ffffde03}, + {0x9931b734, 0xffffd870ffffde04}, + {0x9931b735, 0xffffd870ffffde05}, + {0x9931b736, 0xffffd870ffffde06}, + {0x9931b737, 0xffffd870ffffde07}, + {0x9931b738, 0xffffd870ffffde08}, + {0x9931b739, 0xffffd870ffffde09}, + {0x9931b830, 0xffffd870ffffde0a}, + {0x9931b831, 0xffffd870ffffde0b}, + {0x9931b832, 0xffffd870ffffde0c}, + {0x9931b833, 0xffffd870ffffde0d}, + {0x9931b834, 0xffffd870ffffde0e}, + {0x9931b835, 0xffffd870ffffde0f}, + {0x9931b836, 0xffffd870ffffde10}, + {0x9931b837, 0xffffd870ffffde11}, + {0x9931b838, 0xffffd870ffffde12}, + {0x9931b839, 0xffffd870ffffde13}, + {0x9931b930, 0xffffd870ffffde14}, + {0x9931b931, 0xffffd870ffffde15}, + {0x9931b932, 0xffffd870ffffde16}, + {0x9931b933, 0xffffd870ffffde17}, + {0x9931b934, 0xffffd870ffffde18}, + {0x9931b935, 0xffffd870ffffde19}, + {0x9931b936, 0xffffd870ffffde1a}, + {0x9931b937, 0xffffd870ffffde1b}, + {0x9931b938, 0xffffd870ffffde1c}, + {0x9931b939, 0xffffd870ffffde1d}, + {0x9931ba30, 0xffffd870ffffde1e}, + {0x9931ba31, 0xffffd870ffffde1f}, + {0x9931ba32, 0xffffd870ffffde20}, + {0x9931ba33, 0xffffd870ffffde21}, + {0x9931ba34, 0xffffd870ffffde22}, + {0x9931ba35, 0xffffd870ffffde23}, + {0x9931ba36, 0xffffd870ffffde24}, + {0x9931ba37, 0xffffd870ffffde25}, + {0x9931ba38, 0xffffd870ffffde26}, + {0x9931ba39, 0xffffd870ffffde27}, + {0x9931bb30, 0xffffd870ffffde28}, + {0x9931bb31, 0xffffd870ffffde29}, + {0x9931bb32, 0xffffd870ffffde2a}, + {0x9931bb33, 0xffffd870ffffde2b}, + {0x9931bb34, 0xffffd870ffffde2c}, + {0x9931bb35, 0xffffd870ffffde2d}, + {0x9931bb36, 0xffffd870ffffde2e}, + {0x9931bb37, 0xffffd870ffffde2f}, + {0x9931bb38, 0xffffd870ffffde30}, + {0x9931bb39, 0xffffd870ffffde31}, + {0x9931bc30, 0xffffd870ffffde32}, + {0x9931bc31, 0xffffd870ffffde33}, + {0x9931bc32, 0xffffd870ffffde34}, + {0x9931bc33, 0xffffd870ffffde35}, + {0x9931bc34, 0xffffd870ffffde36}, + {0x9931bc35, 0xffffd870ffffde37}, + {0x9931bc36, 0xffffd870ffffde38}, + {0x9931bc37, 0xffffd870ffffde39}, + {0x9931bc38, 0xffffd870ffffde3a}, + {0x9931bc39, 0xffffd870ffffde3b}, + {0x9931bd30, 0xffffd870ffffde3c}, + {0x9931bd31, 0xffffd870ffffde3d}, + {0x9931bd32, 0xffffd870ffffde3e}, + {0x9931bd33, 0xffffd870ffffde3f}, + {0x9931bd34, 0xffffd870ffffde40}, + {0x9931bd35, 0xffffd870ffffde41}, + {0x9931bd36, 0xffffd870ffffde42}, + {0x9931bd37, 0xffffd870ffffde43}, + {0x9931bd38, 0xffffd870ffffde44}, + {0x9931bd39, 0xffffd870ffffde45}, + {0x9931be30, 0xffffd870ffffde46}, + {0x9931be31, 0xffffd870ffffde47}, + {0x9931be32, 0xffffd870ffffde48}, + {0x9931be33, 0xffffd870ffffde49}, + {0x9931be34, 0xffffd870ffffde4a}, + {0x9931be35, 0xffffd870ffffde4b}, + {0x9931be36, 0xffffd870ffffde4c}, + {0x9931be37, 0xffffd870ffffde4d}, + {0x9931be38, 0xffffd870ffffde4e}, + {0x9931be39, 0xffffd870ffffde4f}, + {0x9931bf30, 0xffffd870ffffde50}, + {0x9931bf31, 0xffffd870ffffde51}, + {0x9931bf32, 0xffffd870ffffde52}, + {0x9931bf33, 0xffffd870ffffde53}, + {0x9931bf34, 0xffffd870ffffde54}, + {0x9931bf35, 0xffffd870ffffde55}, + {0x9931bf36, 0xffffd870ffffde56}, + {0x9931bf37, 0xffffd870ffffde57}, + {0x9931bf38, 0xffffd870ffffde58}, + {0x9931bf39, 0xffffd870ffffde59}, + {0x9931c030, 0xffffd870ffffde5a}, + {0x9931c031, 0xffffd870ffffde5b}, + {0x9931c032, 0xffffd870ffffde5c}, + {0x9931c033, 0xffffd870ffffde5d}, + {0x9931c034, 0xffffd870ffffde5e}, + {0x9931c035, 0xffffd870ffffde5f}, + {0x9931c036, 0xffffd870ffffde60}, + {0x9931c037, 0xffffd870ffffde61}, + {0x9931c038, 0xffffd870ffffde62}, + {0x9931c039, 0xffffd870ffffde63}, + {0x9931c130, 0xffffd870ffffde64}, + {0x9931c131, 0xffffd870ffffde65}, + {0x9931c132, 0xffffd870ffffde66}, + {0x9931c133, 0xffffd870ffffde67}, + {0x9931c134, 0xffffd870ffffde68}, + {0x9931c135, 0xffffd870ffffde69}, + {0x9931c136, 0xffffd870ffffde6a}, + {0x9931c137, 0xffffd870ffffde6b}, + {0x9931c138, 0xffffd870ffffde6c}, + {0x9931c139, 0xffffd870ffffde6d}, + {0x9931c230, 0xffffd870ffffde6e}, + {0x9931c231, 0xffffd870ffffde6f}, + {0x9931c232, 0xffffd870ffffde70}, + {0x9931c233, 0xffffd870ffffde71}, + {0x9931c234, 0xffffd870ffffde72}, + {0x9931c235, 0xffffd870ffffde73}, + {0x9931c236, 0xffffd870ffffde74}, + {0x9931c237, 0xffffd870ffffde75}, + {0x9931c238, 0xffffd870ffffde76}, + {0x9931c239, 0xffffd870ffffde77}, + {0x9931c330, 0xffffd870ffffde78}, + {0x9931c331, 0xffffd870ffffde79}, + {0x9931c332, 0xffffd870ffffde7a}, + {0x9931c333, 0xffffd870ffffde7b}, + {0x9931c334, 0xffffd870ffffde7c}, + {0x9931c335, 0xffffd870ffffde7d}, + {0x9931c336, 0xffffd870ffffde7e}, + {0x9931c337, 0xffffd870ffffde7f}, + {0x9931c338, 0xffffd870ffffde80}, + {0x9931c339, 0xffffd870ffffde81}, + {0x9931c430, 0xffffd870ffffde82}, + {0x9931c431, 0xffffd870ffffde83}, + {0x9931c432, 0xffffd870ffffde84}, + {0x9931c433, 0xffffd870ffffde85}, + {0x9931c434, 0xffffd870ffffde86}, + {0x9931c435, 0xffffd870ffffde87}, + {0x9931c436, 0xffffd870ffffde88}, + {0x9931c437, 0xffffd870ffffde89}, + {0x9931c438, 0xffffd870ffffde8a}, + {0x9931c439, 0xffffd870ffffde8b}, + {0x9931c530, 0xffffd870ffffde8c}, + {0x9931c531, 0xffffd870ffffde8d}, + {0x9931c532, 0xffffd870ffffde8e}, + {0x9931c533, 0xffffd870ffffde8f}, + {0x9931c534, 0xffffd870ffffde90}, + {0x9931c535, 0xffffd870ffffde91}, + {0x9931c536, 0xffffd870ffffde92}, + {0x9931c537, 0xffffd870ffffde93}, + {0x9931c538, 0xffffd870ffffde94}, + {0x9931c539, 0xffffd870ffffde95}, + {0x9931c630, 0xffffd870ffffde96}, + {0x9931c631, 0xffffd870ffffde97}, + {0x9931c632, 0xffffd870ffffde98}, + {0x9931c633, 0xffffd870ffffde99}, + {0x9931c634, 0xffffd870ffffde9a}, + {0x9931c635, 0xffffd870ffffde9b}, + {0x9931c636, 0xffffd870ffffde9c}, + {0x9931c637, 0xffffd870ffffde9d}, + {0x9931c638, 0xffffd870ffffde9e}, + {0x9931c639, 0xffffd870ffffde9f}, + {0x9931c730, 0xffffd870ffffdea0}, + {0x9931c731, 0xffffd870ffffdea1}, + {0x9931c732, 0xffffd870ffffdea2}, + {0x9931c733, 0xffffd870ffffdea3}, + {0x9931c734, 0xffffd870ffffdea4}, + {0x9931c735, 0xffffd870ffffdea5}, + {0x9931c736, 0xffffd870ffffdea6}, + {0x9931c737, 0xffffd870ffffdea7}, + {0x9931c738, 0xffffd870ffffdea8}, + {0x9931c739, 0xffffd870ffffdea9}, + {0x9931c830, 0xffffd870ffffdeaa}, + {0x9931c831, 0xffffd870ffffdeab}, + {0x9931c832, 0xffffd870ffffdeac}, + {0x9931c833, 0xffffd870ffffdead}, + {0x9931c834, 0xffffd870ffffdeae}, + {0x9931c835, 0xffffd870ffffdeaf}, + {0x9931c836, 0xffffd870ffffdeb0}, + {0x9931c837, 0xffffd870ffffdeb1}, + {0x9931c838, 0xffffd870ffffdeb2}, + {0x9931c839, 0xffffd870ffffdeb3}, + {0x9931c930, 0xffffd870ffffdeb4}, + {0x9931c931, 0xffffd870ffffdeb5}, + {0x9931c932, 0xffffd870ffffdeb6}, + {0x9931c933, 0xffffd870ffffdeb7}, + {0x9931c934, 0xffffd870ffffdeb8}, + {0x9931c935, 0xffffd870ffffdeb9}, + {0x9931c936, 0xffffd870ffffdeba}, + {0x9931c937, 0xffffd870ffffdebb}, + {0x9931c938, 0xffffd870ffffdebc}, + {0x9931c939, 0xffffd870ffffdebd}, + {0x9931ca30, 0xffffd870ffffdebe}, + {0x9931ca31, 0xffffd870ffffdebf}, + {0x9931ca32, 0xffffd870ffffdec0}, + {0x9931ca33, 0xffffd870ffffdec1}, + {0x9931ca34, 0xffffd870ffffdec2}, + {0x9931ca35, 0xffffd870ffffdec3}, + {0x9931ca36, 0xffffd870ffffdec4}, + {0x9931ca37, 0xffffd870ffffdec5}, + {0x9931ca38, 0xffffd870ffffdec6}, + {0x9931ca39, 0xffffd870ffffdec7}, + {0x9931cb30, 0xffffd870ffffdec8}, + {0x9931cb31, 0xffffd870ffffdec9}, + {0x9931cb32, 0xffffd870ffffdeca}, + {0x9931cb33, 0xffffd870ffffdecb}, + {0x9931cb34, 0xffffd870ffffdecc}, + {0x9931cb35, 0xffffd870ffffdecd}, + {0x9931cb36, 0xffffd870ffffdece}, + {0x9931cb37, 0xffffd870ffffdecf}, + {0x9931cb38, 0xffffd870ffffded0}, + {0x9931cb39, 0xffffd870ffffded1}, + {0x9931cc30, 0xffffd870ffffded2}, + {0x9931cc31, 0xffffd870ffffded3}, + {0x9931cc32, 0xffffd870ffffded4}, + {0x9931cc33, 0xffffd870ffffded5}, + {0x9931cc34, 0xffffd870ffffded6}, + {0x9931cc35, 0xffffd870ffffded7}, + {0x9931cc36, 0xffffd870ffffded8}, + {0x9931cc37, 0xffffd870ffffded9}, + {0x9931cc38, 0xffffd870ffffdeda}, + {0x9931cc39, 0xffffd870ffffdedb}, + {0x9931cd30, 0xffffd870ffffdedc}, + {0x9931cd31, 0xffffd870ffffdedd}, + {0x9931cd32, 0xffffd870ffffdede}, + {0x9931cd33, 0xffffd870ffffdedf}, + {0x9931cd34, 0xffffd870ffffdee0}, + {0x9931cd35, 0xffffd870ffffdee1}, + {0x9931cd36, 0xffffd870ffffdee2}, + {0x9931cd37, 0xffffd870ffffdee3}, + {0x9931cd38, 0xffffd870ffffdee4}, + {0x9931cd39, 0xffffd870ffffdee5}, + {0x9931ce30, 0xffffd870ffffdee6}, + {0x9931ce31, 0xffffd870ffffdee7}, + {0x9931ce32, 0xffffd870ffffdee8}, + {0x9931ce33, 0xffffd870ffffdee9}, + {0x9931ce34, 0xffffd870ffffdeea}, + {0x9931ce35, 0xffffd870ffffdeeb}, + {0x9931ce36, 0xffffd870ffffdeec}, + {0x9931ce37, 0xffffd870ffffdeed}, + {0x9931ce38, 0xffffd870ffffdeee}, + {0x9931ce39, 0xffffd870ffffdeef}, + {0x9931cf30, 0xffffd870ffffdef0}, + {0x9931cf31, 0xffffd870ffffdef1}, + {0x9931cf32, 0xffffd870ffffdef2}, + {0x9931cf33, 0xffffd870ffffdef3}, + {0x9931cf34, 0xffffd870ffffdef4}, + {0x9931cf35, 0xffffd870ffffdef5}, + {0x9931cf36, 0xffffd870ffffdef6}, + {0x9931cf37, 0xffffd870ffffdef7}, + {0x9931cf38, 0xffffd870ffffdef8}, + {0x9931cf39, 0xffffd870ffffdef9}, + {0x9931d030, 0xffffd870ffffdefa}, + {0x9931d031, 0xffffd870ffffdefb}, + {0x9931d032, 0xffffd870ffffdefc}, + {0x9931d033, 0xffffd870ffffdefd}, + {0x9931d034, 0xffffd870ffffdefe}, + {0x9931d035, 0xffffd870ffffdeff}, + {0x9931d036, 0xffffd870ffffdf00}, + {0x9931d037, 0xffffd870ffffdf01}, + {0x9931d038, 0xffffd870ffffdf02}, + {0x9931d039, 0xffffd870ffffdf03}, + {0x9931d130, 0xffffd870ffffdf04}, + {0x9931d131, 0xffffd870ffffdf05}, + {0x9931d132, 0xffffd870ffffdf06}, + {0x9931d133, 0xffffd870ffffdf07}, + {0x9931d134, 0xffffd870ffffdf08}, + {0x9931d135, 0xffffd870ffffdf09}, + {0x9931d136, 0xffffd870ffffdf0a}, + {0x9931d137, 0xffffd870ffffdf0b}, + {0x9931d138, 0xffffd870ffffdf0c}, + {0x9931d139, 0xffffd870ffffdf0d}, + {0x9931d230, 0xffffd870ffffdf0e}, + {0x9931d231, 0xffffd870ffffdf0f}, + {0x9931d232, 0xffffd870ffffdf10}, + {0x9931d233, 0xffffd870ffffdf11}, + {0x9931d234, 0xffffd870ffffdf12}, + {0x9931d235, 0xffffd870ffffdf13}, + {0x9931d236, 0xffffd870ffffdf14}, + {0x9931d237, 0xffffd870ffffdf15}, + {0x9931d238, 0xffffd870ffffdf16}, + {0x9931d239, 0xffffd870ffffdf17}, + {0x9931d330, 0xffffd870ffffdf18}, + {0x9931d331, 0xffffd870ffffdf19}, + {0x9931d332, 0xffffd870ffffdf1a}, + {0x9931d333, 0xffffd870ffffdf1b}, + {0x9931d334, 0xffffd870ffffdf1c}, + {0x9931d335, 0xffffd870ffffdf1d}, + {0x9931d336, 0xffffd870ffffdf1e}, + {0x9931d337, 0xffffd870ffffdf1f}, + {0x9931d338, 0xffffd870ffffdf20}, + {0x9931d339, 0xffffd870ffffdf21}, + {0x9931d430, 0xffffd870ffffdf22}, + {0x9931d431, 0xffffd870ffffdf23}, + {0x9931d432, 0xffffd870ffffdf24}, + {0x9931d433, 0xffffd870ffffdf25}, + {0x9931d434, 0xffffd870ffffdf26}, + {0x9931d435, 0xffffd870ffffdf27}, + {0x9931d436, 0xffffd870ffffdf28}, + {0x9931d437, 0xffffd870ffffdf29}, + {0x9931d438, 0xffffd870ffffdf2a}, + {0x9931d439, 0xffffd870ffffdf2b}, + {0x9931d530, 0xffffd870ffffdf2c}, + {0x9931d531, 0xffffd870ffffdf2d}, + {0x9931d532, 0xffffd870ffffdf2e}, + {0x9931d533, 0xffffd870ffffdf2f}, + {0x9931d534, 0xffffd870ffffdf30}, + {0x9931d535, 0xffffd870ffffdf31}, + {0x9931d536, 0xffffd870ffffdf32}, + {0x9931d537, 0xffffd870ffffdf33}, + {0x9931d538, 0xffffd870ffffdf34}, + {0x9931d539, 0xffffd870ffffdf35}, + {0x9931d630, 0xffffd870ffffdf36}, + {0x9931d631, 0xffffd870ffffdf37}, + {0x9931d632, 0xffffd870ffffdf38}, + {0x9931d633, 0xffffd870ffffdf39}, + {0x9931d634, 0xffffd870ffffdf3a}, + {0x9931d635, 0xffffd870ffffdf3b}, + {0x9931d636, 0xffffd870ffffdf3c}, + {0x9931d637, 0xffffd870ffffdf3d}, + {0x9931d638, 0xffffd870ffffdf3e}, + {0x9931d639, 0xffffd870ffffdf3f}, + {0x9931d730, 0xffffd870ffffdf40}, + {0x9931d731, 0xffffd870ffffdf41}, + {0x9931d732, 0xffffd870ffffdf42}, + {0x9931d733, 0xffffd870ffffdf43}, + {0x9931d734, 0xffffd870ffffdf44}, + {0x9931d735, 0xffffd870ffffdf45}, + {0x9931d736, 0xffffd870ffffdf46}, + {0x9931d737, 0xffffd870ffffdf47}, + {0x9931d738, 0xffffd870ffffdf48}, + {0x9931d739, 0xffffd870ffffdf49}, + {0x9931d830, 0xffffd870ffffdf4a}, + {0x9931d831, 0xffffd870ffffdf4b}, + {0x9931d832, 0xffffd870ffffdf4c}, + {0x9931d833, 0xffffd870ffffdf4d}, + {0x9931d834, 0xffffd870ffffdf4e}, + {0x9931d835, 0xffffd870ffffdf4f}, + {0x9931d836, 0xffffd870ffffdf50}, + {0x9931d837, 0xffffd870ffffdf51}, + {0x9931d838, 0xffffd870ffffdf52}, + {0x9931d839, 0xffffd870ffffdf53}, + {0x9931d930, 0xffffd870ffffdf54}, + {0x9931d931, 0xffffd870ffffdf55}, + {0x9931d932, 0xffffd870ffffdf56}, + {0x9931d933, 0xffffd870ffffdf57}, + {0x9931d934, 0xffffd870ffffdf58}, + {0x9931d935, 0xffffd870ffffdf59}, + {0x9931d936, 0xffffd870ffffdf5a}, + {0x9931d937, 0xffffd870ffffdf5b}, + {0x9931d938, 0xffffd870ffffdf5c}, + {0x9931d939, 0xffffd870ffffdf5d}, + {0x9931da30, 0xffffd870ffffdf5e}, + {0x9931da31, 0xffffd870ffffdf5f}, + {0x9931da32, 0xffffd870ffffdf60}, + {0x9931da33, 0xffffd870ffffdf61}, + {0x9931da34, 0xffffd870ffffdf62}, + {0x9931da35, 0xffffd870ffffdf63}, + {0x9931da36, 0xffffd870ffffdf64}, + {0x9931da37, 0xffffd870ffffdf65}, + {0x9931da38, 0xffffd870ffffdf66}, + {0x9931da39, 0xffffd870ffffdf67}, + {0x9931db30, 0xffffd870ffffdf68}, + {0x9931db31, 0xffffd870ffffdf69}, + {0x9931db32, 0xffffd870ffffdf6a}, + {0x9931db33, 0xffffd870ffffdf6b}, + {0x9931db34, 0xffffd870ffffdf6c}, + {0x9931db35, 0xffffd870ffffdf6d}, + {0x9931db36, 0xffffd870ffffdf6e}, + {0x9931db37, 0xffffd870ffffdf6f}, + {0x9931db38, 0xffffd870ffffdf70}, + {0x9931db39, 0xffffd870ffffdf71}, + {0x9931dc30, 0xffffd870ffffdf72}, + {0x9931dc31, 0xffffd870ffffdf73}, + {0x9931dc32, 0xffffd870ffffdf74}, + {0x9931dc33, 0xffffd870ffffdf75}, + {0x9931dc34, 0xffffd870ffffdf76}, + {0x9931dc35, 0xffffd870ffffdf77}, + {0x9931dc36, 0xffffd870ffffdf78}, + {0x9931dc37, 0xffffd870ffffdf79}, + {0x9931dc38, 0xffffd870ffffdf7a}, + {0x9931dc39, 0xffffd870ffffdf7b}, + {0x9931dd30, 0xffffd870ffffdf7c}, + {0x9931dd31, 0xffffd870ffffdf7d}, + {0x9931dd32, 0xffffd870ffffdf7e}, + {0x9931dd33, 0xffffd870ffffdf7f}, + {0x9931dd34, 0xffffd870ffffdf80}, + {0x9931dd35, 0xffffd870ffffdf81}, + {0x9931dd36, 0xffffd870ffffdf82}, + {0x9931dd37, 0xffffd870ffffdf83}, + {0x9931dd38, 0xffffd870ffffdf84}, + {0x9931dd39, 0xffffd870ffffdf85}, + {0x9931de30, 0xffffd870ffffdf86}, + {0x9931de31, 0xffffd870ffffdf87}, + {0x9931de32, 0xffffd870ffffdf88}, + {0x9931de33, 0xffffd870ffffdf89}, + {0x9931de34, 0xffffd870ffffdf8a}, + {0x9931de35, 0xffffd870ffffdf8b}, + {0x9931de36, 0xffffd870ffffdf8c}, + {0x9931de37, 0xffffd870ffffdf8d}, + {0x9931de38, 0xffffd870ffffdf8e}, + {0x9931de39, 0xffffd870ffffdf8f}, + {0x9931df30, 0xffffd870ffffdf90}, + {0x9931df31, 0xffffd870ffffdf91}, + {0x9931df32, 0xffffd870ffffdf92}, + {0x9931df33, 0xffffd870ffffdf93}, + {0x9931df34, 0xffffd870ffffdf94}, + {0x9931df35, 0xffffd870ffffdf95}, + {0x9931df36, 0xffffd870ffffdf96}, + {0x9931df37, 0xffffd870ffffdf97}, + {0x9931df38, 0xffffd870ffffdf98}, + {0x9931df39, 0xffffd870ffffdf99}, + {0x9931e030, 0xffffd870ffffdf9a}, + {0x9931e031, 0xffffd870ffffdf9b}, + {0x9931e032, 0xffffd870ffffdf9c}, + {0x9931e033, 0xffffd870ffffdf9d}, + {0x9931e034, 0xffffd870ffffdf9e}, + {0x9931e035, 0xffffd870ffffdf9f}, + {0x9931e036, 0xffffd870ffffdfa0}, + {0x9931e037, 0xffffd870ffffdfa1}, + {0x9931e038, 0xffffd870ffffdfa2}, + {0x9931e039, 0xffffd870ffffdfa3}, + {0x9931e130, 0xffffd870ffffdfa4}, + {0x9931e131, 0xffffd870ffffdfa5}, + {0x9931e132, 0xffffd870ffffdfa6}, + {0x9931e133, 0xffffd870ffffdfa7}, + {0x9931e134, 0xffffd870ffffdfa8}, + {0x9931e135, 0xffffd870ffffdfa9}, + {0x9931e136, 0xffffd870ffffdfaa}, + {0x9931e137, 0xffffd870ffffdfab}, + {0x9931e138, 0xffffd870ffffdfac}, + {0x9931e139, 0xffffd870ffffdfad}, + {0x9931e230, 0xffffd870ffffdfae}, + {0x9931e231, 0xffffd870ffffdfaf}, + {0x9931e232, 0xffffd870ffffdfb0}, + {0x9931e233, 0xffffd870ffffdfb1}, + {0x9931e234, 0xffffd870ffffdfb2}, + {0x9931e235, 0xffffd870ffffdfb3}, + {0x9931e236, 0xffffd870ffffdfb4}, + {0x9931e237, 0xffffd870ffffdfb5}, + {0x9931e238, 0xffffd870ffffdfb6}, + {0x9931e239, 0xffffd870ffffdfb7}, + {0x9931e330, 0xffffd870ffffdfb8}, + {0x9931e331, 0xffffd870ffffdfb9}, + {0x9931e332, 0xffffd870ffffdfba}, + {0x9931e333, 0xffffd870ffffdfbb}, + {0x9931e334, 0xffffd870ffffdfbc}, + {0x9931e335, 0xffffd870ffffdfbd}, + {0x9931e336, 0xffffd870ffffdfbe}, + {0x9931e337, 0xffffd870ffffdfbf}, + {0x9931e338, 0xffffd870ffffdfc0}, + {0x9931e339, 0xffffd870ffffdfc1}, + {0x9931e430, 0xffffd870ffffdfc2}, + {0x9931e431, 0xffffd870ffffdfc3}, + {0x9931e432, 0xffffd870ffffdfc4}, + {0x9931e433, 0xffffd870ffffdfc5}, + {0x9931e434, 0xffffd870ffffdfc6}, + {0x9931e435, 0xffffd870ffffdfc7}, + {0x9931e436, 0xffffd870ffffdfc8}, + {0x9931e437, 0xffffd870ffffdfc9}, + {0x9931e438, 0xffffd870ffffdfca}, + {0x9931e439, 0xffffd870ffffdfcb}, + {0x9931e530, 0xffffd870ffffdfcc}, + {0x9931e531, 0xffffd870ffffdfcd}, + {0x9931e532, 0xffffd870ffffdfce}, + {0x9931e533, 0xffffd870ffffdfcf}, + {0x9931e534, 0xffffd870ffffdfd0}, + {0x9931e535, 0xffffd870ffffdfd1}, + {0x9931e536, 0xffffd870ffffdfd2}, + {0x9931e537, 0xffffd870ffffdfd3}, + {0x9931e538, 0xffffd870ffffdfd4}, + {0x9931e539, 0xffffd870ffffdfd5}, + {0x9931e630, 0xffffd870ffffdfd6}, + {0x9931e631, 0xffffd870ffffdfd7}, + {0x9931e632, 0xffffd870ffffdfd8}, + {0x9931e633, 0xffffd870ffffdfd9}, + {0x9931e634, 0xffffd870ffffdfda}, + {0x9931e635, 0xffffd870ffffdfdb}, + {0x9931e636, 0xffffd870ffffdfdc}, + {0x9931e637, 0xffffd870ffffdfdd}, + {0x9931e638, 0xffffd870ffffdfde}, + {0x9931e639, 0xffffd870ffffdfdf}, + {0x9931e730, 0xffffd870ffffdfe0}, + {0x9931e731, 0xffffd870ffffdfe1}, + {0x9931e732, 0xffffd870ffffdfe2}, + {0x9931e733, 0xffffd870ffffdfe3}, + {0x9931e734, 0xffffd870ffffdfe4}, + {0x9931e735, 0xffffd870ffffdfe5}, + {0x9931e736, 0xffffd870ffffdfe6}, + {0x9931e737, 0xffffd870ffffdfe7}, + {0x9931e738, 0xffffd870ffffdfe8}, + {0x9931e739, 0xffffd870ffffdfe9}, + {0x9931e830, 0xffffd870ffffdfea}, + {0x9931e831, 0xffffd870ffffdfeb}, + {0x9931e832, 0xffffd870ffffdfec}, + {0x9931e833, 0xffffd870ffffdfed}, + {0x9931e834, 0xffffd870ffffdfee}, + {0x9931e835, 0xffffd870ffffdfef}, + {0x9931e836, 0xffffd870ffffdff0}, + {0x9931e837, 0xffffd870ffffdff1}, + {0x9931e838, 0xffffd870ffffdff2}, + {0x9931e839, 0xffffd870ffffdff3}, + {0x9931e930, 0xffffd870ffffdff4}, + {0x9931e931, 0xffffd870ffffdff5}, + {0x9931e932, 0xffffd870ffffdff6}, + {0x9931e933, 0xffffd870ffffdff7}, + {0x9931e934, 0xffffd870ffffdff8}, + {0x9931e935, 0xffffd870ffffdff9}, + {0x9931e936, 0xffffd870ffffdffa}, + {0x9931e937, 0xffffd870ffffdffb}, + {0x9931e938, 0xffffd870ffffdffc}, + {0x9931e939, 0xffffd870ffffdffd}, + {0x9931ea30, 0xffffd870ffffdffe}, + {0x9931ea31, 0xffffd870ffffdfff}, + {0x9931ea32, 0xffffd871ffffdc00}, + {0x9931ea33, 0xffffd871ffffdc01}, + {0x9931ea34, 0xffffd871ffffdc02}, + {0x9931ea35, 0xffffd871ffffdc03}, + {0x9931ea36, 0xffffd871ffffdc04}, + {0x9931ea37, 0xffffd871ffffdc05}, + {0x9931ea38, 0xffffd871ffffdc06}, + {0x9931ea39, 0xffffd871ffffdc07}, + {0x9931eb30, 0xffffd871ffffdc08}, + {0x9931eb31, 0xffffd871ffffdc09}, + {0x9931eb32, 0xffffd871ffffdc0a}, + {0x9931eb33, 0xffffd871ffffdc0b}, + {0x9931eb34, 0xffffd871ffffdc0c}, + {0x9931eb35, 0xffffd871ffffdc0d}, + {0x9931eb36, 0xffffd871ffffdc0e}, + {0x9931eb37, 0xffffd871ffffdc0f}, + {0x9931eb38, 0xffffd871ffffdc10}, + {0x9931eb39, 0xffffd871ffffdc11}, + {0x9931ec30, 0xffffd871ffffdc12}, + {0x9931ec31, 0xffffd871ffffdc13}, + {0x9931ec32, 0xffffd871ffffdc14}, + {0x9931ec33, 0xffffd871ffffdc15}, + {0x9931ec34, 0xffffd871ffffdc16}, + {0x9931ec35, 0xffffd871ffffdc17}, + {0x9931ec36, 0xffffd871ffffdc18}, + {0x9931ec37, 0xffffd871ffffdc19}, + {0x9931ec38, 0xffffd871ffffdc1a}, + {0x9931ec39, 0xffffd871ffffdc1b}, + {0x9931ed30, 0xffffd871ffffdc1c}, + {0x9931ed31, 0xffffd871ffffdc1d}, + {0x9931ed32, 0xffffd871ffffdc1e}, + {0x9931ed33, 0xffffd871ffffdc1f}, + {0x9931ed34, 0xffffd871ffffdc20}, + {0x9931ed35, 0xffffd871ffffdc21}, + {0x9931ed36, 0xffffd871ffffdc22}, + {0x9931ed37, 0xffffd871ffffdc23}, + {0x9931ed38, 0xffffd871ffffdc24}, + {0x9931ed39, 0xffffd871ffffdc25}, + {0x9931ee30, 0xffffd871ffffdc26}, + {0x9931ee31, 0xffffd871ffffdc27}, + {0x9931ee32, 0xffffd871ffffdc28}, + {0x9931ee33, 0xffffd871ffffdc29}, + {0x9931ee34, 0xffffd871ffffdc2a}, + {0x9931ee35, 0xffffd871ffffdc2b}, + {0x9931ee36, 0xffffd871ffffdc2c}, + {0x9931ee37, 0xffffd871ffffdc2d}, + {0x9931ee38, 0xffffd871ffffdc2e}, + {0x9931ee39, 0xffffd871ffffdc2f}, + {0x9931ef30, 0xffffd871ffffdc30}, + {0x9931ef31, 0xffffd871ffffdc31}, + {0x9931ef32, 0xffffd871ffffdc32}, + {0x9931ef33, 0xffffd871ffffdc33}, + {0x9931ef34, 0xffffd871ffffdc34}, + {0x9931ef35, 0xffffd871ffffdc35}, + {0x9931ef36, 0xffffd871ffffdc36}, + {0x9931ef37, 0xffffd871ffffdc37}, + {0x9931ef38, 0xffffd871ffffdc38}, + {0x9931ef39, 0xffffd871ffffdc39}, + {0x9931f030, 0xffffd871ffffdc3a}, + {0x9931f031, 0xffffd871ffffdc3b}, + {0x9931f032, 0xffffd871ffffdc3c}, + {0x9931f033, 0xffffd871ffffdc3d}, + {0x9931f034, 0xffffd871ffffdc3e}, + {0x9931f035, 0xffffd871ffffdc3f}, + {0x9931f036, 0xffffd871ffffdc40}, + {0x9931f037, 0xffffd871ffffdc41}, + {0x9931f038, 0xffffd871ffffdc42}, + {0x9931f039, 0xffffd871ffffdc43}, + {0x9931f130, 0xffffd871ffffdc44}, + {0x9931f131, 0xffffd871ffffdc45}, + {0x9931f132, 0xffffd871ffffdc46}, + {0x9931f133, 0xffffd871ffffdc47}, + {0x9931f134, 0xffffd871ffffdc48}, + {0x9931f135, 0xffffd871ffffdc49}, + {0x9931f136, 0xffffd871ffffdc4a}, + {0x9931f137, 0xffffd871ffffdc4b}, + {0x9931f138, 0xffffd871ffffdc4c}, + {0x9931f139, 0xffffd871ffffdc4d}, + {0x9931f230, 0xffffd871ffffdc4e}, + {0x9931f231, 0xffffd871ffffdc4f}, + {0x9931f232, 0xffffd871ffffdc50}, + {0x9931f233, 0xffffd871ffffdc51}, + {0x9931f234, 0xffffd871ffffdc52}, + {0x9931f235, 0xffffd871ffffdc53}, + {0x9931f236, 0xffffd871ffffdc54}, + {0x9931f237, 0xffffd871ffffdc55}, + {0x9931f238, 0xffffd871ffffdc56}, + {0x9931f239, 0xffffd871ffffdc57}, + {0x9931f330, 0xffffd871ffffdc58}, + {0x9931f331, 0xffffd871ffffdc59}, + {0x9931f332, 0xffffd871ffffdc5a}, + {0x9931f333, 0xffffd871ffffdc5b}, + {0x9931f334, 0xffffd871ffffdc5c}, + {0x9931f335, 0xffffd871ffffdc5d}, + {0x9931f336, 0xffffd871ffffdc5e}, + {0x9931f337, 0xffffd871ffffdc5f}, + {0x9931f338, 0xffffd871ffffdc60}, + {0x9931f339, 0xffffd871ffffdc61}, + {0x9931f430, 0xffffd871ffffdc62}, + {0x9931f431, 0xffffd871ffffdc63}, + {0x9931f432, 0xffffd871ffffdc64}, + {0x9931f433, 0xffffd871ffffdc65}, + {0x9931f434, 0xffffd871ffffdc66}, + {0x9931f435, 0xffffd871ffffdc67}, + {0x9931f436, 0xffffd871ffffdc68}, + {0x9931f437, 0xffffd871ffffdc69}, + {0x9931f438, 0xffffd871ffffdc6a}, + {0x9931f439, 0xffffd871ffffdc6b}, + {0x9931f530, 0xffffd871ffffdc6c}, + {0x9931f531, 0xffffd871ffffdc6d}, + {0x9931f532, 0xffffd871ffffdc6e}, + {0x9931f533, 0xffffd871ffffdc6f}, + {0x9931f534, 0xffffd871ffffdc70}, + {0x9931f535, 0xffffd871ffffdc71}, + {0x9931f536, 0xffffd871ffffdc72}, + {0x9931f537, 0xffffd871ffffdc73}, + {0x9931f538, 0xffffd871ffffdc74}, + {0x9931f539, 0xffffd871ffffdc75}, + {0x9931f630, 0xffffd871ffffdc76}, + {0x9931f631, 0xffffd871ffffdc77}, + {0x9931f632, 0xffffd871ffffdc78}, + {0x9931f633, 0xffffd871ffffdc79}, + {0x9931f634, 0xffffd871ffffdc7a}, + {0x9931f635, 0xffffd871ffffdc7b}, + {0x9931f636, 0xffffd871ffffdc7c}, + {0x9931f637, 0xffffd871ffffdc7d}, + {0x9931f638, 0xffffd871ffffdc7e}, + {0x9931f639, 0xffffd871ffffdc7f}, + {0x9931f730, 0xffffd871ffffdc80}, + {0x9931f731, 0xffffd871ffffdc81}, + {0x9931f732, 0xffffd871ffffdc82}, + {0x9931f733, 0xffffd871ffffdc83}, + {0x9931f734, 0xffffd871ffffdc84}, + {0x9931f735, 0xffffd871ffffdc85}, + {0x9931f736, 0xffffd871ffffdc86}, + {0x9931f737, 0xffffd871ffffdc87}, + {0x9931f738, 0xffffd871ffffdc88}, + {0x9931f739, 0xffffd871ffffdc89}, + {0x9931f830, 0xffffd871ffffdc8a}, + {0x9931f831, 0xffffd871ffffdc8b}, + {0x9931f832, 0xffffd871ffffdc8c}, + {0x9931f833, 0xffffd871ffffdc8d}, + {0x9931f834, 0xffffd871ffffdc8e}, + {0x9931f835, 0xffffd871ffffdc8f}, + {0x9931f836, 0xffffd871ffffdc90}, + {0x9931f837, 0xffffd871ffffdc91}, + {0x9931f838, 0xffffd871ffffdc92}, + {0x9931f839, 0xffffd871ffffdc93}, + {0x9931f930, 0xffffd871ffffdc94}, + {0x9931f931, 0xffffd871ffffdc95}, + {0x9931f932, 0xffffd871ffffdc96}, + {0x9931f933, 0xffffd871ffffdc97}, + {0x9931f934, 0xffffd871ffffdc98}, + {0x9931f935, 0xffffd871ffffdc99}, + {0x9931f936, 0xffffd871ffffdc9a}, + {0x9931f937, 0xffffd871ffffdc9b}, + {0x9931f938, 0xffffd871ffffdc9c}, + {0x9931f939, 0xffffd871ffffdc9d}, + {0x9931fa30, 0xffffd871ffffdc9e}, + {0x9931fa31, 0xffffd871ffffdc9f}, + {0x9931fa32, 0xffffd871ffffdca0}, + {0x9931fa33, 0xffffd871ffffdca1}, + {0x9931fa34, 0xffffd871ffffdca2}, + {0x9931fa35, 0xffffd871ffffdca3}, + {0x9931fa36, 0xffffd871ffffdca4}, + {0x9931fa37, 0xffffd871ffffdca5}, + {0x9931fa38, 0xffffd871ffffdca6}, + {0x9931fa39, 0xffffd871ffffdca7}, + {0x9931fb30, 0xffffd871ffffdca8}, + {0x9931fb31, 0xffffd871ffffdca9}, + {0x9931fb32, 0xffffd871ffffdcaa}, + {0x9931fb33, 0xffffd871ffffdcab}, + {0x9931fb34, 0xffffd871ffffdcac}, + {0x9931fb35, 0xffffd871ffffdcad}, + {0x9931fb36, 0xffffd871ffffdcae}, + {0x9931fb37, 0xffffd871ffffdcaf}, + {0x9931fb38, 0xffffd871ffffdcb0}, + {0x9931fb39, 0xffffd871ffffdcb1}, + {0x9931fc30, 0xffffd871ffffdcb2}, + {0x9931fc31, 0xffffd871ffffdcb3}, + {0x9931fc32, 0xffffd871ffffdcb4}, + {0x9931fc33, 0xffffd871ffffdcb5}, + {0x9931fc34, 0xffffd871ffffdcb6}, + {0x9931fc35, 0xffffd871ffffdcb7}, + {0x9931fc36, 0xffffd871ffffdcb8}, + {0x9931fc37, 0xffffd871ffffdcb9}, + {0x9931fc38, 0xffffd871ffffdcba}, + {0x9931fc39, 0xffffd871ffffdcbb}, + {0x9931fd30, 0xffffd871ffffdcbc}, + {0x9931fd31, 0xffffd871ffffdcbd}, + {0x9931fd32, 0xffffd871ffffdcbe}, + {0x9931fd33, 0xffffd871ffffdcbf}, + {0x9931fd34, 0xffffd871ffffdcc0}, + {0x9931fd35, 0xffffd871ffffdcc1}, + {0x9931fd36, 0xffffd871ffffdcc2}, + {0x9931fd37, 0xffffd871ffffdcc3}, + {0x9931fd38, 0xffffd871ffffdcc4}, + {0x9931fd39, 0xffffd871ffffdcc5}, + {0x9931fe30, 0xffffd871ffffdcc6}, + {0x9931fe31, 0xffffd871ffffdcc7}, + {0x9931fe32, 0xffffd871ffffdcc8}, + {0x9931fe33, 0xffffd871ffffdcc9}, + {0x9931fe34, 0xffffd871ffffdcca}, + {0x9931fe35, 0xffffd871ffffdccb}, + {0x9931fe36, 0xffffd871ffffdccc}, + {0x9931fe37, 0xffffd871ffffdccd}, + {0x9931fe38, 0xffffd871ffffdcce}, + {0x9931fe39, 0xffffd871ffffdccf}, + {0x99328130, 0xffffd871ffffdcd0}, + {0x99328131, 0xffffd871ffffdcd1}, + {0x99328132, 0xffffd871ffffdcd2}, + {0x99328133, 0xffffd871ffffdcd3}, + {0x99328134, 0xffffd871ffffdcd4}, + {0x99328135, 0xffffd871ffffdcd5}, + {0x99328136, 0xffffd871ffffdcd6}, + {0x99328137, 0xffffd871ffffdcd7}, + {0x99328138, 0xffffd871ffffdcd8}, + {0x99328139, 0xffffd871ffffdcd9}, + {0x99328230, 0xffffd871ffffdcda}, + {0x99328231, 0xffffd871ffffdcdb}, + {0x99328232, 0xffffd871ffffdcdc}, + {0x99328233, 0xffffd871ffffdcdd}, + {0x99328234, 0xffffd871ffffdcde}, + {0x99328235, 0xffffd871ffffdcdf}, + {0x99328236, 0xffffd871ffffdce0}, + {0x99328237, 0xffffd871ffffdce1}, + {0x99328238, 0xffffd871ffffdce2}, + {0x99328239, 0xffffd871ffffdce3}, + {0x99328330, 0xffffd871ffffdce4}, + {0x99328331, 0xffffd871ffffdce5}, + {0x99328332, 0xffffd871ffffdce6}, + {0x99328333, 0xffffd871ffffdce7}, + {0x99328334, 0xffffd871ffffdce8}, + {0x99328335, 0xffffd871ffffdce9}, + {0x99328336, 0xffffd871ffffdcea}, + {0x99328337, 0xffffd871ffffdceb}, + {0x99328338, 0xffffd871ffffdcec}, + {0x99328339, 0xffffd871ffffdced}, + {0x99328430, 0xffffd871ffffdcee}, + {0x99328431, 0xffffd871ffffdcef}, + {0x99328432, 0xffffd871ffffdcf0}, + {0x99328433, 0xffffd871ffffdcf1}, + {0x99328434, 0xffffd871ffffdcf2}, + {0x99328435, 0xffffd871ffffdcf3}, + {0x99328436, 0xffffd871ffffdcf4}, + {0x99328437, 0xffffd871ffffdcf5}, + {0x99328438, 0xffffd871ffffdcf6}, + {0x99328439, 0xffffd871ffffdcf7}, + {0x99328530, 0xffffd871ffffdcf8}, + {0x99328531, 0xffffd871ffffdcf9}, + {0x99328532, 0xffffd871ffffdcfa}, + {0x99328533, 0xffffd871ffffdcfb}, + {0x99328534, 0xffffd871ffffdcfc}, + {0x99328535, 0xffffd871ffffdcfd}, + {0x99328536, 0xffffd871ffffdcfe}, + {0x99328537, 0xffffd871ffffdcff}, + {0x99328538, 0xffffd871ffffdd00}, + {0x99328539, 0xffffd871ffffdd01}, + {0x99328630, 0xffffd871ffffdd02}, + {0x99328631, 0xffffd871ffffdd03}, + {0x99328632, 0xffffd871ffffdd04}, + {0x99328633, 0xffffd871ffffdd05}, + {0x99328634, 0xffffd871ffffdd06}, + {0x99328635, 0xffffd871ffffdd07}, + {0x99328636, 0xffffd871ffffdd08}, + {0x99328637, 0xffffd871ffffdd09}, + {0x99328638, 0xffffd871ffffdd0a}, + {0x99328639, 0xffffd871ffffdd0b}, + {0x99328730, 0xffffd871ffffdd0c}, + {0x99328731, 0xffffd871ffffdd0d}, + {0x99328732, 0xffffd871ffffdd0e}, + {0x99328733, 0xffffd871ffffdd0f}, + {0x99328734, 0xffffd871ffffdd10}, + {0x99328735, 0xffffd871ffffdd11}, + {0x99328736, 0xffffd871ffffdd12}, + {0x99328737, 0xffffd871ffffdd13}, + {0x99328738, 0xffffd871ffffdd14}, + {0x99328739, 0xffffd871ffffdd15}, + {0x99328830, 0xffffd871ffffdd16}, + {0x99328831, 0xffffd871ffffdd17}, + {0x99328832, 0xffffd871ffffdd18}, + {0x99328833, 0xffffd871ffffdd19}, + {0x99328834, 0xffffd871ffffdd1a}, + {0x99328835, 0xffffd871ffffdd1b}, + {0x99328836, 0xffffd871ffffdd1c}, + {0x99328837, 0xffffd871ffffdd1d}, + {0x99328838, 0xffffd871ffffdd1e}, + {0x99328839, 0xffffd871ffffdd1f}, + {0x99328930, 0xffffd871ffffdd20}, + {0x99328931, 0xffffd871ffffdd21}, + {0x99328932, 0xffffd871ffffdd22}, + {0x99328933, 0xffffd871ffffdd23}, + {0x99328934, 0xffffd871ffffdd24}, + {0x99328935, 0xffffd871ffffdd25}, + {0x99328936, 0xffffd871ffffdd26}, + {0x99328937, 0xffffd871ffffdd27}, + {0x99328938, 0xffffd871ffffdd28}, + {0x99328939, 0xffffd871ffffdd29}, + {0x99328a30, 0xffffd871ffffdd2a}, + {0x99328a31, 0xffffd871ffffdd2b}, + {0x99328a32, 0xffffd871ffffdd2c}, + {0x99328a33, 0xffffd871ffffdd2d}, + {0x99328a34, 0xffffd871ffffdd2e}, + {0x99328a35, 0xffffd871ffffdd2f}, + {0x99328a36, 0xffffd871ffffdd30}, + {0x99328a37, 0xffffd871ffffdd31}, + {0x99328a38, 0xffffd871ffffdd32}, + {0x99328a39, 0xffffd871ffffdd33}, + {0x99328b30, 0xffffd871ffffdd34}, + {0x99328b31, 0xffffd871ffffdd35}, + {0x99328b32, 0xffffd871ffffdd36}, + {0x99328b33, 0xffffd871ffffdd37}, + {0x99328b34, 0xffffd871ffffdd38}, + {0x99328b35, 0xffffd871ffffdd39}, + {0x99328b36, 0xffffd871ffffdd3a}, + {0x99328b37, 0xffffd871ffffdd3b}, + {0x99328b38, 0xffffd871ffffdd3c}, + {0x99328b39, 0xffffd871ffffdd3d}, + {0x99328c30, 0xffffd871ffffdd3e}, + {0x99328c31, 0xffffd871ffffdd3f}, + {0x99328c32, 0xffffd871ffffdd40}, + {0x99328c33, 0xffffd871ffffdd41}, + {0x99328c34, 0xffffd871ffffdd42}, + {0x99328c35, 0xffffd871ffffdd43}, + {0x99328c36, 0xffffd871ffffdd44}, + {0x99328c37, 0xffffd871ffffdd45}, + {0x99328c38, 0xffffd871ffffdd46}, + {0x99328c39, 0xffffd871ffffdd47}, + {0x99328d30, 0xffffd871ffffdd48}, + {0x99328d31, 0xffffd871ffffdd49}, + {0x99328d32, 0xffffd871ffffdd4a}, + {0x99328d33, 0xffffd871ffffdd4b}, + {0x99328d34, 0xffffd871ffffdd4c}, + {0x99328d35, 0xffffd871ffffdd4d}, + {0x99328d36, 0xffffd871ffffdd4e}, + {0x99328d37, 0xffffd871ffffdd4f}, + {0x99328d38, 0xffffd871ffffdd50}, + {0x99328d39, 0xffffd871ffffdd51}, + {0x99328e30, 0xffffd871ffffdd52}, + {0x99328e31, 0xffffd871ffffdd53}, + {0x99328e32, 0xffffd871ffffdd54}, + {0x99328e33, 0xffffd871ffffdd55}, + {0x99328e34, 0xffffd871ffffdd56}, + {0x99328e35, 0xffffd871ffffdd57}, + {0x99328e36, 0xffffd871ffffdd58}, + {0x99328e37, 0xffffd871ffffdd59}, + {0x99328e38, 0xffffd871ffffdd5a}, + {0x99328e39, 0xffffd871ffffdd5b}, + {0x99328f30, 0xffffd871ffffdd5c}, + {0x99328f31, 0xffffd871ffffdd5d}, + {0x99328f32, 0xffffd871ffffdd5e}, + {0x99328f33, 0xffffd871ffffdd5f}, + {0x99328f34, 0xffffd871ffffdd60}, + {0x99328f35, 0xffffd871ffffdd61}, + {0x99328f36, 0xffffd871ffffdd62}, + {0x99328f37, 0xffffd871ffffdd63}, + {0x99328f38, 0xffffd871ffffdd64}, + {0x99328f39, 0xffffd871ffffdd65}, + {0x99329030, 0xffffd871ffffdd66}, + {0x99329031, 0xffffd871ffffdd67}, + {0x99329032, 0xffffd871ffffdd68}, + {0x99329033, 0xffffd871ffffdd69}, + {0x99329034, 0xffffd871ffffdd6a}, + {0x99329035, 0xffffd871ffffdd6b}, + {0x99329036, 0xffffd871ffffdd6c}, + {0x99329037, 0xffffd871ffffdd6d}, + {0x99329038, 0xffffd871ffffdd6e}, + {0x99329039, 0xffffd871ffffdd6f}, + {0x99329130, 0xffffd871ffffdd70}, + {0x99329131, 0xffffd871ffffdd71}, + {0x99329132, 0xffffd871ffffdd72}, + {0x99329133, 0xffffd871ffffdd73}, + {0x99329134, 0xffffd871ffffdd74}, + {0x99329135, 0xffffd871ffffdd75}, + {0x99329136, 0xffffd871ffffdd76}, + {0x99329137, 0xffffd871ffffdd77}, + {0x99329138, 0xffffd871ffffdd78}, + {0x99329139, 0xffffd871ffffdd79}, + {0x99329230, 0xffffd871ffffdd7a}, + {0x99329231, 0xffffd871ffffdd7b}, + {0x99329232, 0xffffd871ffffdd7c}, + {0x99329233, 0xffffd871ffffdd7d}, + {0x99329234, 0xffffd871ffffdd7e}, + {0x99329235, 0xffffd871ffffdd7f}, + {0x99329236, 0xffffd871ffffdd80}, + {0x99329237, 0xffffd871ffffdd81}, + {0x99329238, 0xffffd871ffffdd82}, + {0x99329239, 0xffffd871ffffdd83}, + {0x99329330, 0xffffd871ffffdd84}, + {0x99329331, 0xffffd871ffffdd85}, + {0x99329332, 0xffffd871ffffdd86}, + {0x99329333, 0xffffd871ffffdd87}, + {0x99329334, 0xffffd871ffffdd88}, + {0x99329335, 0xffffd871ffffdd89}, + {0x99329336, 0xffffd871ffffdd8a}, + {0x99329337, 0xffffd871ffffdd8b}, + {0x99329338, 0xffffd871ffffdd8c}, + {0x99329339, 0xffffd871ffffdd8d}, + {0x99329430, 0xffffd871ffffdd8e}, + {0x99329431, 0xffffd871ffffdd8f}, + {0x99329432, 0xffffd871ffffdd90}, + {0x99329433, 0xffffd871ffffdd91}, + {0x99329434, 0xffffd871ffffdd92}, + {0x99329435, 0xffffd871ffffdd93}, + {0x99329436, 0xffffd871ffffdd94}, + {0x99329437, 0xffffd871ffffdd95}, + {0x99329438, 0xffffd871ffffdd96}, + {0x99329439, 0xffffd871ffffdd97}, + {0x99329530, 0xffffd871ffffdd98}, + {0x99329531, 0xffffd871ffffdd99}, + {0x99329532, 0xffffd871ffffdd9a}, + {0x99329533, 0xffffd871ffffdd9b}, + {0x99329534, 0xffffd871ffffdd9c}, + {0x99329535, 0xffffd871ffffdd9d}, + {0x99329536, 0xffffd871ffffdd9e}, + {0x99329537, 0xffffd871ffffdd9f}, + {0x99329538, 0xffffd871ffffdda0}, + {0x99329539, 0xffffd871ffffdda1}, + {0x99329630, 0xffffd871ffffdda2}, + {0x99329631, 0xffffd871ffffdda3}, + {0x99329632, 0xffffd871ffffdda4}, + {0x99329633, 0xffffd871ffffdda5}, + {0x99329634, 0xffffd871ffffdda6}, + {0x99329635, 0xffffd871ffffdda7}, + {0x99329636, 0xffffd871ffffdda8}, + {0x99329637, 0xffffd871ffffdda9}, + {0x99329638, 0xffffd871ffffddaa}, + {0x99329639, 0xffffd871ffffddab}, + {0x99329730, 0xffffd871ffffddac}, + {0x99329731, 0xffffd871ffffddad}, + {0x99329732, 0xffffd871ffffddae}, + {0x99329733, 0xffffd871ffffddaf}, + {0x99329734, 0xffffd871ffffddb0}, + {0x99329735, 0xffffd871ffffddb1}, + {0x99329736, 0xffffd871ffffddb2}, + {0x99329737, 0xffffd871ffffddb3}, + {0x99329738, 0xffffd871ffffddb4}, + {0x99329739, 0xffffd871ffffddb5}, + {0x99329830, 0xffffd871ffffddb6}, + {0x99329831, 0xffffd871ffffddb7}, + {0x99329832, 0xffffd871ffffddb8}, + {0x99329833, 0xffffd871ffffddb9}, + {0x99329834, 0xffffd871ffffddba}, + {0x99329835, 0xffffd871ffffddbb}, + {0x99329836, 0xffffd871ffffddbc}, + {0x99329837, 0xffffd871ffffddbd}, + {0x99329838, 0xffffd871ffffddbe}, + {0x99329839, 0xffffd871ffffddbf}, + {0x99329930, 0xffffd871ffffddc0}, + {0x99329931, 0xffffd871ffffddc1}, + {0x99329932, 0xffffd871ffffddc2}, + {0x99329933, 0xffffd871ffffddc3}, + {0x99329934, 0xffffd871ffffddc4}, + {0x99329935, 0xffffd871ffffddc5}, + {0x99329936, 0xffffd871ffffddc6}, + {0x99329937, 0xffffd871ffffddc7}, + {0x99329938, 0xffffd871ffffddc8}, + {0x99329939, 0xffffd871ffffddc9}, + {0x99329a30, 0xffffd871ffffddca}, + {0x99329a31, 0xffffd871ffffddcb}, + {0x99329a32, 0xffffd871ffffddcc}, + {0x99329a33, 0xffffd871ffffddcd}, + {0x99329a34, 0xffffd871ffffddce}, + {0x99329a35, 0xffffd871ffffddcf}, + {0x99329a36, 0xffffd871ffffddd0}, + {0x99329a37, 0xffffd871ffffddd1}, + {0x99329a38, 0xffffd871ffffddd2}, + {0x99329a39, 0xffffd871ffffddd3}, + {0x99329b30, 0xffffd871ffffddd4}, + {0x99329b31, 0xffffd871ffffddd5}, + {0x99329b32, 0xffffd871ffffddd6}, + {0x99329b33, 0xffffd871ffffddd7}, + {0x99329b34, 0xffffd871ffffddd8}, + {0x99329b35, 0xffffd871ffffddd9}, + {0x99329b36, 0xffffd871ffffddda}, + {0x99329b37, 0xffffd871ffffdddb}, + {0x99329b38, 0xffffd871ffffdddc}, + {0x99329b39, 0xffffd871ffffdddd}, + {0x99329c30, 0xffffd871ffffddde}, + {0x99329c31, 0xffffd871ffffdddf}, + {0x99329c32, 0xffffd871ffffdde0}, + {0x99329c33, 0xffffd871ffffdde1}, + {0x99329c34, 0xffffd871ffffdde2}, + {0x99329c35, 0xffffd871ffffdde3}, + {0x99329c36, 0xffffd871ffffdde4}, + {0x99329c37, 0xffffd871ffffdde5}, + {0x99329c38, 0xffffd871ffffdde6}, + {0x99329c39, 0xffffd871ffffdde7}, + {0x99329d30, 0xffffd871ffffdde8}, + {0x99329d31, 0xffffd871ffffdde9}, + {0x99329d32, 0xffffd871ffffddea}, + {0x99329d33, 0xffffd871ffffddeb}, + {0x99329d34, 0xffffd871ffffddec}, + {0x99329d35, 0xffffd871ffffdded}, + {0x99329d36, 0xffffd871ffffddee}, + {0x99329d37, 0xffffd871ffffddef}, + {0x99329d38, 0xffffd871ffffddf0}, + {0x99329d39, 0xffffd871ffffddf1}, + {0x99329e30, 0xffffd871ffffddf2}, + {0x99329e31, 0xffffd871ffffddf3}, + {0x99329e32, 0xffffd871ffffddf4}, + {0x99329e33, 0xffffd871ffffddf5}, + {0x99329e34, 0xffffd871ffffddf6}, + {0x99329e35, 0xffffd871ffffddf7}, + {0x99329e36, 0xffffd871ffffddf8}, + {0x99329e37, 0xffffd871ffffddf9}, + {0x99329e38, 0xffffd871ffffddfa}, + {0x99329e39, 0xffffd871ffffddfb}, + {0x99329f30, 0xffffd871ffffddfc}, + {0x99329f31, 0xffffd871ffffddfd}, + {0x99329f32, 0xffffd871ffffddfe}, + {0x99329f33, 0xffffd871ffffddff}, + {0x99329f34, 0xffffd871ffffde00}, + {0x99329f35, 0xffffd871ffffde01}, + {0x99329f36, 0xffffd871ffffde02}, + {0x99329f37, 0xffffd871ffffde03}, + {0x99329f38, 0xffffd871ffffde04}, + {0x99329f39, 0xffffd871ffffde05}, + {0x9932a030, 0xffffd871ffffde06}, + {0x9932a031, 0xffffd871ffffde07}, + {0x9932a032, 0xffffd871ffffde08}, + {0x9932a033, 0xffffd871ffffde09}, + {0x9932a034, 0xffffd871ffffde0a}, + {0x9932a035, 0xffffd871ffffde0b}, + {0x9932a036, 0xffffd871ffffde0c}, + {0x9932a037, 0xffffd871ffffde0d}, + {0x9932a038, 0xffffd871ffffde0e}, + {0x9932a039, 0xffffd871ffffde0f}, + {0x9932a130, 0xffffd871ffffde10}, + {0x9932a131, 0xffffd871ffffde11}, + {0x9932a132, 0xffffd871ffffde12}, + {0x9932a133, 0xffffd871ffffde13}, + {0x9932a134, 0xffffd871ffffde14}, + {0x9932a135, 0xffffd871ffffde15}, + {0x9932a136, 0xffffd871ffffde16}, + {0x9932a137, 0xffffd871ffffde17}, + {0x9932a138, 0xffffd871ffffde18}, + {0x9932a139, 0xffffd871ffffde19}, + {0x9932a230, 0xffffd871ffffde1a}, + {0x9932a231, 0xffffd871ffffde1b}, + {0x9932a232, 0xffffd871ffffde1c}, + {0x9932a233, 0xffffd871ffffde1d}, + {0x9932a234, 0xffffd871ffffde1e}, + {0x9932a235, 0xffffd871ffffde1f}, + {0x9932a236, 0xffffd871ffffde20}, + {0x9932a237, 0xffffd871ffffde21}, + {0x9932a238, 0xffffd871ffffde22}, + {0x9932a239, 0xffffd871ffffde23}, + {0x9932a330, 0xffffd871ffffde24}, + {0x9932a331, 0xffffd871ffffde25}, + {0x9932a332, 0xffffd871ffffde26}, + {0x9932a333, 0xffffd871ffffde27}, + {0x9932a334, 0xffffd871ffffde28}, + {0x9932a335, 0xffffd871ffffde29}, + {0x9932a336, 0xffffd871ffffde2a}, + {0x9932a337, 0xffffd871ffffde2b}, + {0x9932a338, 0xffffd871ffffde2c}, + {0x9932a339, 0xffffd871ffffde2d}, + {0x9932a430, 0xffffd871ffffde2e}, + {0x9932a431, 0xffffd871ffffde2f}, + {0x9932a432, 0xffffd871ffffde30}, + {0x9932a433, 0xffffd871ffffde31}, + {0x9932a434, 0xffffd871ffffde32}, + {0x9932a435, 0xffffd871ffffde33}, + {0x9932a436, 0xffffd871ffffde34}, + {0x9932a437, 0xffffd871ffffde35}, + {0x9932a438, 0xffffd871ffffde36}, + {0x9932a439, 0xffffd871ffffde37}, + {0x9932a530, 0xffffd871ffffde38}, + {0x9932a531, 0xffffd871ffffde39}, + {0x9932a532, 0xffffd871ffffde3a}, + {0x9932a533, 0xffffd871ffffde3b}, + {0x9932a534, 0xffffd871ffffde3c}, + {0x9932a535, 0xffffd871ffffde3d}, + {0x9932a536, 0xffffd871ffffde3e}, + {0x9932a537, 0xffffd871ffffde3f}, + {0x9932a538, 0xffffd871ffffde40}, + {0x9932a539, 0xffffd871ffffde41}, + {0x9932a630, 0xffffd871ffffde42}, + {0x9932a631, 0xffffd871ffffde43}, + {0x9932a632, 0xffffd871ffffde44}, + {0x9932a633, 0xffffd871ffffde45}, + {0x9932a634, 0xffffd871ffffde46}, + {0x9932a635, 0xffffd871ffffde47}, + {0x9932a636, 0xffffd871ffffde48}, + {0x9932a637, 0xffffd871ffffde49}, + {0x9932a638, 0xffffd871ffffde4a}, + {0x9932a639, 0xffffd871ffffde4b}, + {0x9932a730, 0xffffd871ffffde4c}, + {0x9932a731, 0xffffd871ffffde4d}, + {0x9932a732, 0xffffd871ffffde4e}, + {0x9932a733, 0xffffd871ffffde4f}, + {0x9932a734, 0xffffd871ffffde50}, + {0x9932a735, 0xffffd871ffffde51}, + {0x9932a736, 0xffffd871ffffde52}, + {0x9932a737, 0xffffd871ffffde53}, + {0x9932a738, 0xffffd871ffffde54}, + {0x9932a739, 0xffffd871ffffde55}, + {0x9932a830, 0xffffd871ffffde56}, + {0x9932a831, 0xffffd871ffffde57}, + {0x9932a832, 0xffffd871ffffde58}, + {0x9932a833, 0xffffd871ffffde59}, + {0x9932a834, 0xffffd871ffffde5a}, + {0x9932a835, 0xffffd871ffffde5b}, + {0x9932a836, 0xffffd871ffffde5c}, + {0x9932a837, 0xffffd871ffffde5d}, + {0x9932a838, 0xffffd871ffffde5e}, + {0x9932a839, 0xffffd871ffffde5f}, + {0x9932a930, 0xffffd871ffffde60}, + {0x9932a931, 0xffffd871ffffde61}, + {0x9932a932, 0xffffd871ffffde62}, + {0x9932a933, 0xffffd871ffffde63}, + {0x9932a934, 0xffffd871ffffde64}, + {0x9932a935, 0xffffd871ffffde65}, + {0x9932a936, 0xffffd871ffffde66}, + {0x9932a937, 0xffffd871ffffde67}, + {0x9932a938, 0xffffd871ffffde68}, + {0x9932a939, 0xffffd871ffffde69}, + {0x9932aa30, 0xffffd871ffffde6a}, + {0x9932aa31, 0xffffd871ffffde6b}, + {0x9932aa32, 0xffffd871ffffde6c}, + {0x9932aa33, 0xffffd871ffffde6d}, + {0x9932aa34, 0xffffd871ffffde6e}, + {0x9932aa35, 0xffffd871ffffde6f}, + {0x9932aa36, 0xffffd871ffffde70}, + {0x9932aa37, 0xffffd871ffffde71}, + {0x9932aa38, 0xffffd871ffffde72}, + {0x9932aa39, 0xffffd871ffffde73}, + {0x9932ab30, 0xffffd871ffffde74}, + {0x9932ab31, 0xffffd871ffffde75}, + {0x9932ab32, 0xffffd871ffffde76}, + {0x9932ab33, 0xffffd871ffffde77}, + {0x9932ab34, 0xffffd871ffffde78}, + {0x9932ab35, 0xffffd871ffffde79}, + {0x9932ab36, 0xffffd871ffffde7a}, + {0x9932ab37, 0xffffd871ffffde7b}, + {0x9932ab38, 0xffffd871ffffde7c}, + {0x9932ab39, 0xffffd871ffffde7d}, + {0x9932ac30, 0xffffd871ffffde7e}, + {0x9932ac31, 0xffffd871ffffde7f}, + {0x9932ac32, 0xffffd871ffffde80}, + {0x9932ac33, 0xffffd871ffffde81}, + {0x9932ac34, 0xffffd871ffffde82}, + {0x9932ac35, 0xffffd871ffffde83}, + {0x9932ac36, 0xffffd871ffffde84}, + {0x9932ac37, 0xffffd871ffffde85}, + {0x9932ac38, 0xffffd871ffffde86}, + {0x9932ac39, 0xffffd871ffffde87}, + {0x9932ad30, 0xffffd871ffffde88}, + {0x9932ad31, 0xffffd871ffffde89}, + {0x9932ad32, 0xffffd871ffffde8a}, + {0x9932ad33, 0xffffd871ffffde8b}, + {0x9932ad34, 0xffffd871ffffde8c}, + {0x9932ad35, 0xffffd871ffffde8d}, + {0x9932ad36, 0xffffd871ffffde8e}, + {0x9932ad37, 0xffffd871ffffde8f}, + {0x9932ad38, 0xffffd871ffffde90}, + {0x9932ad39, 0xffffd871ffffde91}, + {0x9932ae30, 0xffffd871ffffde92}, + {0x9932ae31, 0xffffd871ffffde93}, + {0x9932ae32, 0xffffd871ffffde94}, + {0x9932ae33, 0xffffd871ffffde95}, + {0x9932ae34, 0xffffd871ffffde96}, + {0x9932ae35, 0xffffd871ffffde97}, + {0x9932ae36, 0xffffd871ffffde98}, + {0x9932ae37, 0xffffd871ffffde99}, + {0x9932ae38, 0xffffd871ffffde9a}, + {0x9932ae39, 0xffffd871ffffde9b}, + {0x9932af30, 0xffffd871ffffde9c}, + {0x9932af31, 0xffffd871ffffde9d}, + {0x9932af32, 0xffffd871ffffde9e}, + {0x9932af33, 0xffffd871ffffde9f}, + {0x9932af34, 0xffffd871ffffdea0}, + {0x9932af35, 0xffffd871ffffdea1}, + {0x9932af36, 0xffffd871ffffdea2}, + {0x9932af37, 0xffffd871ffffdea3}, + {0x9932af38, 0xffffd871ffffdea4}, + {0x9932af39, 0xffffd871ffffdea5}, + {0x9932b030, 0xffffd871ffffdea6}, + {0x9932b031, 0xffffd871ffffdea7}, + {0x9932b032, 0xffffd871ffffdea8}, + {0x9932b033, 0xffffd871ffffdea9}, + {0x9932b034, 0xffffd871ffffdeaa}, + {0x9932b035, 0xffffd871ffffdeab}, + {0x9932b036, 0xffffd871ffffdeac}, + {0x9932b037, 0xffffd871ffffdead}, + {0x9932b038, 0xffffd871ffffdeae}, + {0x9932b039, 0xffffd871ffffdeaf}, + {0x9932b130, 0xffffd871ffffdeb0}, + {0x9932b131, 0xffffd871ffffdeb1}, + {0x9932b132, 0xffffd871ffffdeb2}, + {0x9932b133, 0xffffd871ffffdeb3}, + {0x9932b134, 0xffffd871ffffdeb4}, + {0x9932b135, 0xffffd871ffffdeb5}, + {0x9932b136, 0xffffd871ffffdeb6}, + {0x9932b137, 0xffffd871ffffdeb7}, + {0x9932b138, 0xffffd871ffffdeb8}, + {0x9932b139, 0xffffd871ffffdeb9}, + {0x9932b230, 0xffffd871ffffdeba}, + {0x9932b231, 0xffffd871ffffdebb}, + {0x9932b232, 0xffffd871ffffdebc}, + {0x9932b233, 0xffffd871ffffdebd}, + {0x9932b234, 0xffffd871ffffdebe}, + {0x9932b235, 0xffffd871ffffdebf}, + {0x9932b236, 0xffffd871ffffdec0}, + {0x9932b237, 0xffffd871ffffdec1}, + {0x9932b238, 0xffffd871ffffdec2}, + {0x9932b239, 0xffffd871ffffdec3}, + {0x9932b330, 0xffffd871ffffdec4}, + {0x9932b331, 0xffffd871ffffdec5}, + {0x9932b332, 0xffffd871ffffdec6}, + {0x9932b333, 0xffffd871ffffdec7}, + {0x9932b334, 0xffffd871ffffdec8}, + {0x9932b335, 0xffffd871ffffdec9}, + {0x9932b336, 0xffffd871ffffdeca}, + {0x9932b337, 0xffffd871ffffdecb}, + {0x9932b338, 0xffffd871ffffdecc}, + {0x9932b339, 0xffffd871ffffdecd}, + {0x9932b430, 0xffffd871ffffdece}, + {0x9932b431, 0xffffd871ffffdecf}, + {0x9932b432, 0xffffd871ffffded0}, + {0x9932b433, 0xffffd871ffffded1}, + {0x9932b434, 0xffffd871ffffded2}, + {0x9932b435, 0xffffd871ffffded3}, + {0x9932b436, 0xffffd871ffffded4}, + {0x9932b437, 0xffffd871ffffded5}, + {0x9932b438, 0xffffd871ffffded6}, + {0x9932b439, 0xffffd871ffffded7}, + {0x9932b530, 0xffffd871ffffded8}, + {0x9932b531, 0xffffd871ffffded9}, + {0x9932b532, 0xffffd871ffffdeda}, + {0x9932b533, 0xffffd871ffffdedb}, + {0x9932b534, 0xffffd871ffffdedc}, + {0x9932b535, 0xffffd871ffffdedd}, + {0x9932b536, 0xffffd871ffffdede}, + {0x9932b537, 0xffffd871ffffdedf}, + {0x9932b538, 0xffffd871ffffdee0}, + {0x9932b539, 0xffffd871ffffdee1}, + {0x9932b630, 0xffffd871ffffdee2}, + {0x9932b631, 0xffffd871ffffdee3}, + {0x9932b632, 0xffffd871ffffdee4}, + {0x9932b633, 0xffffd871ffffdee5}, + {0x9932b634, 0xffffd871ffffdee6}, + {0x9932b635, 0xffffd871ffffdee7}, + {0x9932b636, 0xffffd871ffffdee8}, + {0x9932b637, 0xffffd871ffffdee9}, + {0x9932b638, 0xffffd871ffffdeea}, + {0x9932b639, 0xffffd871ffffdeeb}, + {0x9932b730, 0xffffd871ffffdeec}, + {0x9932b731, 0xffffd871ffffdeed}, + {0x9932b732, 0xffffd871ffffdeee}, + {0x9932b733, 0xffffd871ffffdeef}, + {0x9932b734, 0xffffd871ffffdef0}, + {0x9932b735, 0xffffd871ffffdef1}, + {0x9932b736, 0xffffd871ffffdef2}, + {0x9932b737, 0xffffd871ffffdef3}, + {0x9932b738, 0xffffd871ffffdef4}, + {0x9932b739, 0xffffd871ffffdef5}, + {0x9932b830, 0xffffd871ffffdef6}, + {0x9932b831, 0xffffd871ffffdef7}, + {0x9932b832, 0xffffd871ffffdef8}, + {0x9932b833, 0xffffd871ffffdef9}, + {0x9932b834, 0xffffd871ffffdefa}, + {0x9932b835, 0xffffd871ffffdefb}, + {0x9932b836, 0xffffd871ffffdefc}, + {0x9932b837, 0xffffd871ffffdefd}, + {0x9932b838, 0xffffd871ffffdefe}, + {0x9932b839, 0xffffd871ffffdeff}, + {0x9932b930, 0xffffd871ffffdf00}, + {0x9932b931, 0xffffd871ffffdf01}, + {0x9932b932, 0xffffd871ffffdf02}, + {0x9932b933, 0xffffd871ffffdf03}, + {0x9932b934, 0xffffd871ffffdf04}, + {0x9932b935, 0xffffd871ffffdf05}, + {0x9932b936, 0xffffd871ffffdf06}, + {0x9932b937, 0xffffd871ffffdf07}, + {0x9932b938, 0xffffd871ffffdf08}, + {0x9932b939, 0xffffd871ffffdf09}, + {0x9932ba30, 0xffffd871ffffdf0a}, + {0x9932ba31, 0xffffd871ffffdf0b}, + {0x9932ba32, 0xffffd871ffffdf0c}, + {0x9932ba33, 0xffffd871ffffdf0d}, + {0x9932ba34, 0xffffd871ffffdf0e}, + {0x9932ba35, 0xffffd871ffffdf0f}, + {0x9932ba36, 0xffffd871ffffdf10}, + {0x9932ba37, 0xffffd871ffffdf11}, + {0x9932ba38, 0xffffd871ffffdf12}, + {0x9932ba39, 0xffffd871ffffdf13}, + {0x9932bb30, 0xffffd871ffffdf14}, + {0x9932bb31, 0xffffd871ffffdf15}, + {0x9932bb32, 0xffffd871ffffdf16}, + {0x9932bb33, 0xffffd871ffffdf17}, + {0x9932bb34, 0xffffd871ffffdf18}, + {0x9932bb35, 0xffffd871ffffdf19}, + {0x9932bb36, 0xffffd871ffffdf1a}, + {0x9932bb37, 0xffffd871ffffdf1b}, + {0x9932bb38, 0xffffd871ffffdf1c}, + {0x9932bb39, 0xffffd871ffffdf1d}, + {0x9932bc30, 0xffffd871ffffdf1e}, + {0x9932bc31, 0xffffd871ffffdf1f}, + {0x9932bc32, 0xffffd871ffffdf20}, + {0x9932bc33, 0xffffd871ffffdf21}, + {0x9932bc34, 0xffffd871ffffdf22}, + {0x9932bc35, 0xffffd871ffffdf23}, + {0x9932bc36, 0xffffd871ffffdf24}, + {0x9932bc37, 0xffffd871ffffdf25}, + {0x9932bc38, 0xffffd871ffffdf26}, + {0x9932bc39, 0xffffd871ffffdf27}, + {0x9932bd30, 0xffffd871ffffdf28}, + {0x9932bd31, 0xffffd871ffffdf29}, + {0x9932bd32, 0xffffd871ffffdf2a}, + {0x9932bd33, 0xffffd871ffffdf2b}, + {0x9932bd34, 0xffffd871ffffdf2c}, + {0x9932bd35, 0xffffd871ffffdf2d}, + {0x9932bd36, 0xffffd871ffffdf2e}, + {0x9932bd37, 0xffffd871ffffdf2f}, + {0x9932bd38, 0xffffd871ffffdf30}, + {0x9932bd39, 0xffffd871ffffdf31}, + {0x9932be30, 0xffffd871ffffdf32}, + {0x9932be31, 0xffffd871ffffdf33}, + {0x9932be32, 0xffffd871ffffdf34}, + {0x9932be33, 0xffffd871ffffdf35}, + {0x9932be34, 0xffffd871ffffdf36}, + {0x9932be35, 0xffffd871ffffdf37}, + {0x9932be36, 0xffffd871ffffdf38}, + {0x9932be37, 0xffffd871ffffdf39}, + {0x9932be38, 0xffffd871ffffdf3a}, + {0x9932be39, 0xffffd871ffffdf3b}, + {0x9932bf30, 0xffffd871ffffdf3c}, + {0x9932bf31, 0xffffd871ffffdf3d}, + {0x9932bf32, 0xffffd871ffffdf3e}, + {0x9932bf33, 0xffffd871ffffdf3f}, + {0x9932bf34, 0xffffd871ffffdf40}, + {0x9932bf35, 0xffffd871ffffdf41}, + {0x9932bf36, 0xffffd871ffffdf42}, + {0x9932bf37, 0xffffd871ffffdf43}, + {0x9932bf38, 0xffffd871ffffdf44}, + {0x9932bf39, 0xffffd871ffffdf45}, + {0x9932c030, 0xffffd871ffffdf46}, + {0x9932c031, 0xffffd871ffffdf47}, + {0x9932c032, 0xffffd871ffffdf48}, + {0x9932c033, 0xffffd871ffffdf49}, + {0x9932c034, 0xffffd871ffffdf4a}, + {0x9932c035, 0xffffd871ffffdf4b}, + {0x9932c036, 0xffffd871ffffdf4c}, + {0x9932c037, 0xffffd871ffffdf4d}, + {0x9932c038, 0xffffd871ffffdf4e}, + {0x9932c039, 0xffffd871ffffdf4f}, + {0x9932c130, 0xffffd871ffffdf50}, + {0x9932c131, 0xffffd871ffffdf51}, + {0x9932c132, 0xffffd871ffffdf52}, + {0x9932c133, 0xffffd871ffffdf53}, + {0x9932c134, 0xffffd871ffffdf54}, + {0x9932c135, 0xffffd871ffffdf55}, + {0x9932c136, 0xffffd871ffffdf56}, + {0x9932c137, 0xffffd871ffffdf57}, + {0x9932c138, 0xffffd871ffffdf58}, + {0x9932c139, 0xffffd871ffffdf59}, + {0x9932c230, 0xffffd871ffffdf5a}, + {0x9932c231, 0xffffd871ffffdf5b}, + {0x9932c232, 0xffffd871ffffdf5c}, + {0x9932c233, 0xffffd871ffffdf5d}, + {0x9932c234, 0xffffd871ffffdf5e}, + {0x9932c235, 0xffffd871ffffdf5f}, + {0x9932c236, 0xffffd871ffffdf60}, + {0x9932c237, 0xffffd871ffffdf61}, + {0x9932c238, 0xffffd871ffffdf62}, + {0x9932c239, 0xffffd871ffffdf63}, + {0x9932c330, 0xffffd871ffffdf64}, + {0x9932c331, 0xffffd871ffffdf65}, + {0x9932c332, 0xffffd871ffffdf66}, + {0x9932c333, 0xffffd871ffffdf67}, + {0x9932c334, 0xffffd871ffffdf68}, + {0x9932c335, 0xffffd871ffffdf69}, + {0x9932c336, 0xffffd871ffffdf6a}, + {0x9932c337, 0xffffd871ffffdf6b}, + {0x9932c338, 0xffffd871ffffdf6c}, + {0x9932c339, 0xffffd871ffffdf6d}, + {0x9932c430, 0xffffd871ffffdf6e}, + {0x9932c431, 0xffffd871ffffdf6f}, + {0x9932c432, 0xffffd871ffffdf70}, + {0x9932c433, 0xffffd871ffffdf71}, + {0x9932c434, 0xffffd871ffffdf72}, + {0x9932c435, 0xffffd871ffffdf73}, + {0x9932c436, 0xffffd871ffffdf74}, + {0x9932c437, 0xffffd871ffffdf75}, + {0x9932c438, 0xffffd871ffffdf76}, + {0x9932c439, 0xffffd871ffffdf77}, + {0x9932c530, 0xffffd871ffffdf78}, + {0x9932c531, 0xffffd871ffffdf79}, + {0x9932c532, 0xffffd871ffffdf7a}, + {0x9932c533, 0xffffd871ffffdf7b}, + {0x9932c534, 0xffffd871ffffdf7c}, + {0x9932c535, 0xffffd871ffffdf7d}, + {0x9932c536, 0xffffd871ffffdf7e}, + {0x9932c537, 0xffffd871ffffdf7f}, + {0x9932c538, 0xffffd871ffffdf80}, + {0x9932c539, 0xffffd871ffffdf81}, + {0x9932c630, 0xffffd871ffffdf82}, + {0x9932c631, 0xffffd871ffffdf83}, + {0x9932c632, 0xffffd871ffffdf84}, + {0x9932c633, 0xffffd871ffffdf85}, + {0x9932c634, 0xffffd871ffffdf86}, + {0x9932c635, 0xffffd871ffffdf87}, + {0x9932c636, 0xffffd871ffffdf88}, + {0x9932c637, 0xffffd871ffffdf89}, + {0x9932c638, 0xffffd871ffffdf8a}, + {0x9932c639, 0xffffd871ffffdf8b}, + {0x9932c730, 0xffffd871ffffdf8c}, + {0x9932c731, 0xffffd871ffffdf8d}, + {0x9932c732, 0xffffd871ffffdf8e}, + {0x9932c733, 0xffffd871ffffdf8f}, + {0x9932c734, 0xffffd871ffffdf90}, + {0x9932c735, 0xffffd871ffffdf91}, + {0x9932c736, 0xffffd871ffffdf92}, + {0x9932c737, 0xffffd871ffffdf93}, + {0x9932c738, 0xffffd871ffffdf94}, + {0x9932c739, 0xffffd871ffffdf95}, + {0x9932c830, 0xffffd871ffffdf96}, + {0x9932c831, 0xffffd871ffffdf97}, + {0x9932c832, 0xffffd871ffffdf98}, + {0x9932c833, 0xffffd871ffffdf99}, + {0x9932c834, 0xffffd871ffffdf9a}, + {0x9932c835, 0xffffd871ffffdf9b}, + {0x9932c836, 0xffffd871ffffdf9c}, + {0x9932c837, 0xffffd871ffffdf9d}, + {0x9932c838, 0xffffd871ffffdf9e}, + {0x9932c839, 0xffffd871ffffdf9f}, + {0x9932c930, 0xffffd871ffffdfa0}, + {0x9932c931, 0xffffd871ffffdfa1}, + {0x9932c932, 0xffffd871ffffdfa2}, + {0x9932c933, 0xffffd871ffffdfa3}, + {0x9932c934, 0xffffd871ffffdfa4}, + {0x9932c935, 0xffffd871ffffdfa5}, + {0x9932c936, 0xffffd871ffffdfa6}, + {0x9932c937, 0xffffd871ffffdfa7}, + {0x9932c938, 0xffffd871ffffdfa8}, + {0x9932c939, 0xffffd871ffffdfa9}, + {0x9932ca30, 0xffffd871ffffdfaa}, + {0x9932ca31, 0xffffd871ffffdfab}, + {0x9932ca32, 0xffffd871ffffdfac}, + {0x9932ca33, 0xffffd871ffffdfad}, + {0x9932ca34, 0xffffd871ffffdfae}, + {0x9932ca35, 0xffffd871ffffdfaf}, + {0x9932ca36, 0xffffd871ffffdfb0}, + {0x9932ca37, 0xffffd871ffffdfb1}, + {0x9932ca38, 0xffffd871ffffdfb2}, + {0x9932ca39, 0xffffd871ffffdfb3}, + {0x9932cb30, 0xffffd871ffffdfb4}, + {0x9932cb31, 0xffffd871ffffdfb5}, + {0x9932cb32, 0xffffd871ffffdfb6}, + {0x9932cb33, 0xffffd871ffffdfb7}, + {0x9932cb34, 0xffffd871ffffdfb8}, + {0x9932cb35, 0xffffd871ffffdfb9}, + {0x9932cb36, 0xffffd871ffffdfba}, + {0x9932cb37, 0xffffd871ffffdfbb}, + {0x9932cb38, 0xffffd871ffffdfbc}, + {0x9932cb39, 0xffffd871ffffdfbd}, + {0x9932cc30, 0xffffd871ffffdfbe}, + {0x9932cc31, 0xffffd871ffffdfbf}, + {0x9932cc32, 0xffffd871ffffdfc0}, + {0x9932cc33, 0xffffd871ffffdfc1}, + {0x9932cc34, 0xffffd871ffffdfc2}, + {0x9932cc35, 0xffffd871ffffdfc3}, + {0x9932cc36, 0xffffd871ffffdfc4}, + {0x9932cc37, 0xffffd871ffffdfc5}, + {0x9932cc38, 0xffffd871ffffdfc6}, + {0x9932cc39, 0xffffd871ffffdfc7}, + {0x9932cd30, 0xffffd871ffffdfc8}, + {0x9932cd31, 0xffffd871ffffdfc9}, + {0x9932cd32, 0xffffd871ffffdfca}, + {0x9932cd33, 0xffffd871ffffdfcb}, + {0x9932cd34, 0xffffd871ffffdfcc}, + {0x9932cd35, 0xffffd871ffffdfcd}, + {0x9932cd36, 0xffffd871ffffdfce}, + {0x9932cd37, 0xffffd871ffffdfcf}, + {0x9932cd38, 0xffffd871ffffdfd0}, + {0x9932cd39, 0xffffd871ffffdfd1}, + {0x9932ce30, 0xffffd871ffffdfd2}, + {0x9932ce31, 0xffffd871ffffdfd3}, + {0x9932ce32, 0xffffd871ffffdfd4}, + {0x9932ce33, 0xffffd871ffffdfd5}, + {0x9932ce34, 0xffffd871ffffdfd6}, + {0x9932ce35, 0xffffd871ffffdfd7}, + {0x9932ce36, 0xffffd871ffffdfd8}, + {0x9932ce37, 0xffffd871ffffdfd9}, + {0x9932ce38, 0xffffd871ffffdfda}, + {0x9932ce39, 0xffffd871ffffdfdb}, + {0x9932cf30, 0xffffd871ffffdfdc}, + {0x9932cf31, 0xffffd871ffffdfdd}, + {0x9932cf32, 0xffffd871ffffdfde}, + {0x9932cf33, 0xffffd871ffffdfdf}, + {0x9932cf34, 0xffffd871ffffdfe0}, + {0x9932cf35, 0xffffd871ffffdfe1}, + {0x9932cf36, 0xffffd871ffffdfe2}, + {0x9932cf37, 0xffffd871ffffdfe3}, + {0x9932cf38, 0xffffd871ffffdfe4}, + {0x9932cf39, 0xffffd871ffffdfe5}, + {0x9932d030, 0xffffd871ffffdfe6}, + {0x9932d031, 0xffffd871ffffdfe7}, + {0x9932d032, 0xffffd871ffffdfe8}, + {0x9932d033, 0xffffd871ffffdfe9}, + {0x9932d034, 0xffffd871ffffdfea}, + {0x9932d035, 0xffffd871ffffdfeb}, + {0x9932d036, 0xffffd871ffffdfec}, + {0x9932d037, 0xffffd871ffffdfed}, + {0x9932d038, 0xffffd871ffffdfee}, + {0x9932d039, 0xffffd871ffffdfef}, + {0x9932d130, 0xffffd871ffffdff0}, + {0x9932d131, 0xffffd871ffffdff1}, + {0x9932d132, 0xffffd871ffffdff2}, + {0x9932d133, 0xffffd871ffffdff3}, + {0x9932d134, 0xffffd871ffffdff4}, + {0x9932d135, 0xffffd871ffffdff5}, + {0x9932d136, 0xffffd871ffffdff6}, + {0x9932d137, 0xffffd871ffffdff7}, + {0x9932d138, 0xffffd871ffffdff8}, + {0x9932d139, 0xffffd871ffffdff9}, + {0x9932d230, 0xffffd871ffffdffa}, + {0x9932d231, 0xffffd871ffffdffb}, + {0x9932d232, 0xffffd871ffffdffc}, + {0x9932d233, 0xffffd871ffffdffd}, + {0x9932d234, 0xffffd871ffffdffe}, + {0x9932d235, 0xffffd871ffffdfff}, + {0x9932d236, 0xffffd872ffffdc00}, + {0x9932d237, 0xffffd872ffffdc01}, + {0x9932d238, 0xffffd872ffffdc02}, + {0x9932d239, 0xffffd872ffffdc03}, + {0x9932d330, 0xffffd872ffffdc04}, + {0x9932d331, 0xffffd872ffffdc05}, + {0x9932d332, 0xffffd872ffffdc06}, + {0x9932d333, 0xffffd872ffffdc07}, + {0x9932d334, 0xffffd872ffffdc08}, + {0x9932d335, 0xffffd872ffffdc09}, + {0x9932d336, 0xffffd872ffffdc0a}, + {0x9932d337, 0xffffd872ffffdc0b}, + {0x9932d338, 0xffffd872ffffdc0c}, + {0x9932d339, 0xffffd872ffffdc0d}, + {0x9932d430, 0xffffd872ffffdc0e}, + {0x9932d431, 0xffffd872ffffdc0f}, + {0x9932d432, 0xffffd872ffffdc10}, + {0x9932d433, 0xffffd872ffffdc11}, + {0x9932d434, 0xffffd872ffffdc12}, + {0x9932d435, 0xffffd872ffffdc13}, + {0x9932d436, 0xffffd872ffffdc14}, + {0x9932d437, 0xffffd872ffffdc15}, + {0x9932d438, 0xffffd872ffffdc16}, + {0x9932d439, 0xffffd872ffffdc17}, + {0x9932d530, 0xffffd872ffffdc18}, + {0x9932d531, 0xffffd872ffffdc19}, + {0x9932d532, 0xffffd872ffffdc1a}, + {0x9932d533, 0xffffd872ffffdc1b}, + {0x9932d534, 0xffffd872ffffdc1c}, + {0x9932d535, 0xffffd872ffffdc1d}, + {0x9932d536, 0xffffd872ffffdc1e}, + {0x9932d537, 0xffffd872ffffdc1f}, + {0x9932d538, 0xffffd872ffffdc20}, + {0x9932d539, 0xffffd872ffffdc21}, + {0x9932d630, 0xffffd872ffffdc22}, + {0x9932d631, 0xffffd872ffffdc23}, + {0x9932d632, 0xffffd872ffffdc24}, + {0x9932d633, 0xffffd872ffffdc25}, + {0x9932d634, 0xffffd872ffffdc26}, + {0x9932d635, 0xffffd872ffffdc27}, + {0x9932d636, 0xffffd872ffffdc28}, + {0x9932d637, 0xffffd872ffffdc29}, + {0x9932d638, 0xffffd872ffffdc2a}, + {0x9932d639, 0xffffd872ffffdc2b}, + {0x9932d730, 0xffffd872ffffdc2c}, + {0x9932d731, 0xffffd872ffffdc2d}, + {0x9932d732, 0xffffd872ffffdc2e}, + {0x9932d733, 0xffffd872ffffdc2f}, + {0x9932d734, 0xffffd872ffffdc30}, + {0x9932d735, 0xffffd872ffffdc31}, + {0x9932d736, 0xffffd872ffffdc32}, + {0x9932d737, 0xffffd872ffffdc33}, + {0x9932d738, 0xffffd872ffffdc34}, + {0x9932d739, 0xffffd872ffffdc35}, + {0x9932d830, 0xffffd872ffffdc36}, + {0x9932d831, 0xffffd872ffffdc37}, + {0x9932d832, 0xffffd872ffffdc38}, + {0x9932d833, 0xffffd872ffffdc39}, + {0x9932d834, 0xffffd872ffffdc3a}, + {0x9932d835, 0xffffd872ffffdc3b}, + {0x9932d836, 0xffffd872ffffdc3c}, + {0x9932d837, 0xffffd872ffffdc3d}, + {0x9932d838, 0xffffd872ffffdc3e}, + {0x9932d839, 0xffffd872ffffdc3f}, + {0x9932d930, 0xffffd872ffffdc40}, + {0x9932d931, 0xffffd872ffffdc41}, + {0x9932d932, 0xffffd872ffffdc42}, + {0x9932d933, 0xffffd872ffffdc43}, + {0x9932d934, 0xffffd872ffffdc44}, + {0x9932d935, 0xffffd872ffffdc45}, + {0x9932d936, 0xffffd872ffffdc46}, + {0x9932d937, 0xffffd872ffffdc47}, + {0x9932d938, 0xffffd872ffffdc48}, + {0x9932d939, 0xffffd872ffffdc49}, + {0x9932da30, 0xffffd872ffffdc4a}, + {0x9932da31, 0xffffd872ffffdc4b}, + {0x9932da32, 0xffffd872ffffdc4c}, + {0x9932da33, 0xffffd872ffffdc4d}, + {0x9932da34, 0xffffd872ffffdc4e}, + {0x9932da35, 0xffffd872ffffdc4f}, + {0x9932da36, 0xffffd872ffffdc50}, + {0x9932da37, 0xffffd872ffffdc51}, + {0x9932da38, 0xffffd872ffffdc52}, + {0x9932da39, 0xffffd872ffffdc53}, + {0x9932db30, 0xffffd872ffffdc54}, + {0x9932db31, 0xffffd872ffffdc55}, + {0x9932db32, 0xffffd872ffffdc56}, + {0x9932db33, 0xffffd872ffffdc57}, + {0x9932db34, 0xffffd872ffffdc58}, + {0x9932db35, 0xffffd872ffffdc59}, + {0x9932db36, 0xffffd872ffffdc5a}, + {0x9932db37, 0xffffd872ffffdc5b}, + {0x9932db38, 0xffffd872ffffdc5c}, + {0x9932db39, 0xffffd872ffffdc5d}, + {0x9932dc30, 0xffffd872ffffdc5e}, + {0x9932dc31, 0xffffd872ffffdc5f}, + {0x9932dc32, 0xffffd872ffffdc60}, + {0x9932dc33, 0xffffd872ffffdc61}, + {0x9932dc34, 0xffffd872ffffdc62}, + {0x9932dc35, 0xffffd872ffffdc63}, + {0x9932dc36, 0xffffd872ffffdc64}, + {0x9932dc37, 0xffffd872ffffdc65}, + {0x9932dc38, 0xffffd872ffffdc66}, + {0x9932dc39, 0xffffd872ffffdc67}, + {0x9932dd30, 0xffffd872ffffdc68}, + {0x9932dd31, 0xffffd872ffffdc69}, + {0x9932dd32, 0xffffd872ffffdc6a}, + {0x9932dd33, 0xffffd872ffffdc6b}, + {0x9932dd34, 0xffffd872ffffdc6c}, + {0x9932dd35, 0xffffd872ffffdc6d}, + {0x9932dd36, 0xffffd872ffffdc6e}, + {0x9932dd37, 0xffffd872ffffdc6f}, + {0x9932dd38, 0xffffd872ffffdc70}, + {0x9932dd39, 0xffffd872ffffdc71}, + {0x9932de30, 0xffffd872ffffdc72}, + {0x9932de31, 0xffffd872ffffdc73}, + {0x9932de32, 0xffffd872ffffdc74}, + {0x9932de33, 0xffffd872ffffdc75}, + {0x9932de34, 0xffffd872ffffdc76}, + {0x9932de35, 0xffffd872ffffdc77}, + {0x9932de36, 0xffffd872ffffdc78}, + {0x9932de37, 0xffffd872ffffdc79}, + {0x9932de38, 0xffffd872ffffdc7a}, + {0x9932de39, 0xffffd872ffffdc7b}, + {0x9932df30, 0xffffd872ffffdc7c}, + {0x9932df31, 0xffffd872ffffdc7d}, + {0x9932df32, 0xffffd872ffffdc7e}, + {0x9932df33, 0xffffd872ffffdc7f}, + {0x9932df34, 0xffffd872ffffdc80}, + {0x9932df35, 0xffffd872ffffdc81}, + {0x9932df36, 0xffffd872ffffdc82}, + {0x9932df37, 0xffffd872ffffdc83}, + {0x9932df38, 0xffffd872ffffdc84}, + {0x9932df39, 0xffffd872ffffdc85}, + {0x9932e030, 0xffffd872ffffdc86}, + {0x9932e031, 0xffffd872ffffdc87}, + {0x9932e032, 0xffffd872ffffdc88}, + {0x9932e033, 0xffffd872ffffdc89}, + {0x9932e034, 0xffffd872ffffdc8a}, + {0x9932e035, 0xffffd872ffffdc8b}, + {0x9932e036, 0xffffd872ffffdc8c}, + {0x9932e037, 0xffffd872ffffdc8d}, + {0x9932e038, 0xffffd872ffffdc8e}, + {0x9932e039, 0xffffd872ffffdc8f}, + {0x9932e130, 0xffffd872ffffdc90}, + {0x9932e131, 0xffffd872ffffdc91}, + {0x9932e132, 0xffffd872ffffdc92}, + {0x9932e133, 0xffffd872ffffdc93}, + {0x9932e134, 0xffffd872ffffdc94}, + {0x9932e135, 0xffffd872ffffdc95}, + {0x9932e136, 0xffffd872ffffdc96}, + {0x9932e137, 0xffffd872ffffdc97}, + {0x9932e138, 0xffffd872ffffdc98}, + {0x9932e139, 0xffffd872ffffdc99}, + {0x9932e230, 0xffffd872ffffdc9a}, + {0x9932e231, 0xffffd872ffffdc9b}, + {0x9932e232, 0xffffd872ffffdc9c}, + {0x9932e233, 0xffffd872ffffdc9d}, + {0x9932e234, 0xffffd872ffffdc9e}, + {0x9932e235, 0xffffd872ffffdc9f}, + {0x9932e236, 0xffffd872ffffdca0}, + {0x9932e237, 0xffffd872ffffdca1}, + {0x9932e238, 0xffffd872ffffdca2}, + {0x9932e239, 0xffffd872ffffdca3}, + {0x9932e330, 0xffffd872ffffdca4}, + {0x9932e331, 0xffffd872ffffdca5}, + {0x9932e332, 0xffffd872ffffdca6}, + {0x9932e333, 0xffffd872ffffdca7}, + {0x9932e334, 0xffffd872ffffdca8}, + {0x9932e335, 0xffffd872ffffdca9}, + {0x9932e336, 0xffffd872ffffdcaa}, + {0x9932e337, 0xffffd872ffffdcab}, + {0x9932e338, 0xffffd872ffffdcac}, + {0x9932e339, 0xffffd872ffffdcad}, + {0x9932e430, 0xffffd872ffffdcae}, + {0x9932e431, 0xffffd872ffffdcaf}, + {0x9932e432, 0xffffd872ffffdcb0}, + {0x9932e433, 0xffffd872ffffdcb1}, + {0x9932e434, 0xffffd872ffffdcb2}, + {0x9932e435, 0xffffd872ffffdcb3}, + {0x9932e436, 0xffffd872ffffdcb4}, + {0x9932e437, 0xffffd872ffffdcb5}, + {0x9932e438, 0xffffd872ffffdcb6}, + {0x9932e439, 0xffffd872ffffdcb7}, + {0x9932e530, 0xffffd872ffffdcb8}, + {0x9932e531, 0xffffd872ffffdcb9}, + {0x9932e532, 0xffffd872ffffdcba}, + {0x9932e533, 0xffffd872ffffdcbb}, + {0x9932e534, 0xffffd872ffffdcbc}, + {0x9932e535, 0xffffd872ffffdcbd}, + {0x9932e536, 0xffffd872ffffdcbe}, + {0x9932e537, 0xffffd872ffffdcbf}, + {0x9932e538, 0xffffd872ffffdcc0}, + {0x9932e539, 0xffffd872ffffdcc1}, + {0x9932e630, 0xffffd872ffffdcc2}, + {0x9932e631, 0xffffd872ffffdcc3}, + {0x9932e632, 0xffffd872ffffdcc4}, + {0x9932e633, 0xffffd872ffffdcc5}, + {0x9932e634, 0xffffd872ffffdcc6}, + {0x9932e635, 0xffffd872ffffdcc7}, + {0x9932e636, 0xffffd872ffffdcc8}, + {0x9932e637, 0xffffd872ffffdcc9}, + {0x9932e638, 0xffffd872ffffdcca}, + {0x9932e639, 0xffffd872ffffdccb}, + {0x9932e730, 0xffffd872ffffdccc}, + {0x9932e731, 0xffffd872ffffdccd}, + {0x9932e732, 0xffffd872ffffdcce}, + {0x9932e733, 0xffffd872ffffdccf}, + {0x9932e734, 0xffffd872ffffdcd0}, + {0x9932e735, 0xffffd872ffffdcd1}, + {0x9932e736, 0xffffd872ffffdcd2}, + {0x9932e737, 0xffffd872ffffdcd3}, + {0x9932e738, 0xffffd872ffffdcd4}, + {0x9932e739, 0xffffd872ffffdcd5}, + {0x9932e830, 0xffffd872ffffdcd6}, + {0x9932e831, 0xffffd872ffffdcd7}, + {0x9932e832, 0xffffd872ffffdcd8}, + {0x9932e833, 0xffffd872ffffdcd9}, + {0x9932e834, 0xffffd872ffffdcda}, + {0x9932e835, 0xffffd872ffffdcdb}, + {0x9932e836, 0xffffd872ffffdcdc}, + {0x9932e837, 0xffffd872ffffdcdd}, + {0x9932e838, 0xffffd872ffffdcde}, + {0x9932e839, 0xffffd872ffffdcdf}, + {0x9932e930, 0xffffd872ffffdce0}, + {0x9932e931, 0xffffd872ffffdce1}, + {0x9932e932, 0xffffd872ffffdce2}, + {0x9932e933, 0xffffd872ffffdce3}, + {0x9932e934, 0xffffd872ffffdce4}, + {0x9932e935, 0xffffd872ffffdce5}, + {0x9932e936, 0xffffd872ffffdce6}, + {0x9932e937, 0xffffd872ffffdce7}, + {0x9932e938, 0xffffd872ffffdce8}, + {0x9932e939, 0xffffd872ffffdce9}, + {0x9932ea30, 0xffffd872ffffdcea}, + {0x9932ea31, 0xffffd872ffffdceb}, + {0x9932ea32, 0xffffd872ffffdcec}, + {0x9932ea33, 0xffffd872ffffdced}, + {0x9932ea34, 0xffffd872ffffdcee}, + {0x9932ea35, 0xffffd872ffffdcef}, + {0x9932ea36, 0xffffd872ffffdcf0}, + {0x9932ea37, 0xffffd872ffffdcf1}, + {0x9932ea38, 0xffffd872ffffdcf2}, + {0x9932ea39, 0xffffd872ffffdcf3}, + {0x9932eb30, 0xffffd872ffffdcf4}, + {0x9932eb31, 0xffffd872ffffdcf5}, + {0x9932eb32, 0xffffd872ffffdcf6}, + {0x9932eb33, 0xffffd872ffffdcf7}, + {0x9932eb34, 0xffffd872ffffdcf8}, + {0x9932eb35, 0xffffd872ffffdcf9}, + {0x9932eb36, 0xffffd872ffffdcfa}, + {0x9932eb37, 0xffffd872ffffdcfb}, + {0x9932eb38, 0xffffd872ffffdcfc}, + {0x9932eb39, 0xffffd872ffffdcfd}, + {0x9932ec30, 0xffffd872ffffdcfe}, + {0x9932ec31, 0xffffd872ffffdcff}, + {0x9932ec32, 0xffffd872ffffdd00}, + {0x9932ec33, 0xffffd872ffffdd01}, + {0x9932ec34, 0xffffd872ffffdd02}, + {0x9932ec35, 0xffffd872ffffdd03}, + {0x9932ec36, 0xffffd872ffffdd04}, + {0x9932ec37, 0xffffd872ffffdd05}, + {0x9932ec38, 0xffffd872ffffdd06}, + {0x9932ec39, 0xffffd872ffffdd07}, + {0x9932ed30, 0xffffd872ffffdd08}, + {0x9932ed31, 0xffffd872ffffdd09}, + {0x9932ed32, 0xffffd872ffffdd0a}, + {0x9932ed33, 0xffffd872ffffdd0b}, + {0x9932ed34, 0xffffd872ffffdd0c}, + {0x9932ed35, 0xffffd872ffffdd0d}, + {0x9932ed36, 0xffffd872ffffdd0e}, + {0x9932ed37, 0xffffd872ffffdd0f}, + {0x9932ed38, 0xffffd872ffffdd10}, + {0x9932ed39, 0xffffd872ffffdd11}, + {0x9932ee30, 0xffffd872ffffdd12}, + {0x9932ee31, 0xffffd872ffffdd13}, + {0x9932ee32, 0xffffd872ffffdd14}, + {0x9932ee33, 0xffffd872ffffdd15}, + {0x9932ee34, 0xffffd872ffffdd16}, + {0x9932ee35, 0xffffd872ffffdd17}, + {0x9932ee36, 0xffffd872ffffdd18}, + {0x9932ee37, 0xffffd872ffffdd19}, + {0x9932ee38, 0xffffd872ffffdd1a}, + {0x9932ee39, 0xffffd872ffffdd1b}, + {0x9932ef30, 0xffffd872ffffdd1c}, + {0x9932ef31, 0xffffd872ffffdd1d}, + {0x9932ef32, 0xffffd872ffffdd1e}, + {0x9932ef33, 0xffffd872ffffdd1f}, + {0x9932ef34, 0xffffd872ffffdd20}, + {0x9932ef35, 0xffffd872ffffdd21}, + {0x9932ef36, 0xffffd872ffffdd22}, + {0x9932ef37, 0xffffd872ffffdd23}, + {0x9932ef38, 0xffffd872ffffdd24}, + {0x9932ef39, 0xffffd872ffffdd25}, + {0x9932f030, 0xffffd872ffffdd26}, + {0x9932f031, 0xffffd872ffffdd27}, + {0x9932f032, 0xffffd872ffffdd28}, + {0x9932f033, 0xffffd872ffffdd29}, + {0x9932f034, 0xffffd872ffffdd2a}, + {0x9932f035, 0xffffd872ffffdd2b}, + {0x9932f036, 0xffffd872ffffdd2c}, + {0x9932f037, 0xffffd872ffffdd2d}, + {0x9932f038, 0xffffd872ffffdd2e}, + {0x9932f039, 0xffffd872ffffdd2f}, + {0x9932f130, 0xffffd872ffffdd30}, + {0x9932f131, 0xffffd872ffffdd31}, + {0x9932f132, 0xffffd872ffffdd32}, + {0x9932f133, 0xffffd872ffffdd33}, + {0x9932f134, 0xffffd872ffffdd34}, + {0x9932f135, 0xffffd872ffffdd35}, + {0x9932f136, 0xffffd872ffffdd36}, + {0x9932f137, 0xffffd872ffffdd37}, + {0x9932f138, 0xffffd872ffffdd38}, + {0x9932f139, 0xffffd872ffffdd39}, + {0x9932f230, 0xffffd872ffffdd3a}, + {0x9932f231, 0xffffd872ffffdd3b}, + {0x9932f232, 0xffffd872ffffdd3c}, + {0x9932f233, 0xffffd872ffffdd3d}, + {0x9932f234, 0xffffd872ffffdd3e}, + {0x9932f235, 0xffffd872ffffdd3f}, + {0x9932f236, 0xffffd872ffffdd40}, + {0x9932f237, 0xffffd872ffffdd41}, + {0x9932f238, 0xffffd872ffffdd42}, + {0x9932f239, 0xffffd872ffffdd43}, + {0x9932f330, 0xffffd872ffffdd44}, + {0x9932f331, 0xffffd872ffffdd45}, + {0x9932f332, 0xffffd872ffffdd46}, + {0x9932f333, 0xffffd872ffffdd47}, + {0x9932f334, 0xffffd872ffffdd48}, + {0x9932f335, 0xffffd872ffffdd49}, + {0x9932f336, 0xffffd872ffffdd4a}, + {0x9932f337, 0xffffd872ffffdd4b}, + {0x9932f338, 0xffffd872ffffdd4c}, + {0x9932f339, 0xffffd872ffffdd4d}, + {0x9932f430, 0xffffd872ffffdd4e}, + {0x9932f431, 0xffffd872ffffdd4f}, + {0x9932f432, 0xffffd872ffffdd50}, + {0x9932f433, 0xffffd872ffffdd51}, + {0x9932f434, 0xffffd872ffffdd52}, + {0x9932f435, 0xffffd872ffffdd53}, + {0x9932f436, 0xffffd872ffffdd54}, + {0x9932f437, 0xffffd872ffffdd55}, + {0x9932f438, 0xffffd872ffffdd56}, + {0x9932f439, 0xffffd872ffffdd57}, + {0x9932f530, 0xffffd872ffffdd58}, + {0x9932f531, 0xffffd872ffffdd59}, + {0x9932f532, 0xffffd872ffffdd5a}, + {0x9932f533, 0xffffd872ffffdd5b}, + {0x9932f534, 0xffffd872ffffdd5c}, + {0x9932f535, 0xffffd872ffffdd5d}, + {0x9932f536, 0xffffd872ffffdd5e}, + {0x9932f537, 0xffffd872ffffdd5f}, + {0x9932f538, 0xffffd872ffffdd60}, + {0x9932f539, 0xffffd872ffffdd61}, + {0x9932f630, 0xffffd872ffffdd62}, + {0x9932f631, 0xffffd872ffffdd63}, + {0x9932f632, 0xffffd872ffffdd64}, + {0x9932f633, 0xffffd872ffffdd65}, + {0x9932f634, 0xffffd872ffffdd66}, + {0x9932f635, 0xffffd872ffffdd67}, + {0x9932f636, 0xffffd872ffffdd68}, + {0x9932f637, 0xffffd872ffffdd69}, + {0x9932f638, 0xffffd872ffffdd6a}, + {0x9932f639, 0xffffd872ffffdd6b}, + {0x9932f730, 0xffffd872ffffdd6c}, + {0x9932f731, 0xffffd872ffffdd6d}, + {0x9932f732, 0xffffd872ffffdd6e}, + {0x9932f733, 0xffffd872ffffdd6f}, + {0x9932f734, 0xffffd872ffffdd70}, + {0x9932f735, 0xffffd872ffffdd71}, + {0x9932f736, 0xffffd872ffffdd72}, + {0x9932f737, 0xffffd872ffffdd73}, + {0x9932f738, 0xffffd872ffffdd74}, + {0x9932f739, 0xffffd872ffffdd75}, + {0x9932f830, 0xffffd872ffffdd76}, + {0x9932f831, 0xffffd872ffffdd77}, + {0x9932f832, 0xffffd872ffffdd78}, + {0x9932f833, 0xffffd872ffffdd79}, + {0x9932f834, 0xffffd872ffffdd7a}, + {0x9932f835, 0xffffd872ffffdd7b}, + {0x9932f836, 0xffffd872ffffdd7c}, + {0x9932f837, 0xffffd872ffffdd7d}, + {0x9932f838, 0xffffd872ffffdd7e}, + {0x9932f839, 0xffffd872ffffdd7f}, + {0x9932f930, 0xffffd872ffffdd80}, + {0x9932f931, 0xffffd872ffffdd81}, + {0x9932f932, 0xffffd872ffffdd82}, + {0x9932f933, 0xffffd872ffffdd83}, + {0x9932f934, 0xffffd872ffffdd84}, + {0x9932f935, 0xffffd872ffffdd85}, + {0x9932f936, 0xffffd872ffffdd86}, + {0x9932f937, 0xffffd872ffffdd87}, + {0x9932f938, 0xffffd872ffffdd88}, + {0x9932f939, 0xffffd872ffffdd89}, + {0x9932fa30, 0xffffd872ffffdd8a}, + {0x9932fa31, 0xffffd872ffffdd8b}, + {0x9932fa32, 0xffffd872ffffdd8c}, + {0x9932fa33, 0xffffd872ffffdd8d}, + {0x9932fa34, 0xffffd872ffffdd8e}, + {0x9932fa35, 0xffffd872ffffdd8f}, + {0x9932fa36, 0xffffd872ffffdd90}, + {0x9932fa37, 0xffffd872ffffdd91}, + {0x9932fa38, 0xffffd872ffffdd92}, + {0x9932fa39, 0xffffd872ffffdd93}, + {0x9932fb30, 0xffffd872ffffdd94}, + {0x9932fb31, 0xffffd872ffffdd95}, + {0x9932fb32, 0xffffd872ffffdd96}, + {0x9932fb33, 0xffffd872ffffdd97}, + {0x9932fb34, 0xffffd872ffffdd98}, + {0x9932fb35, 0xffffd872ffffdd99}, + {0x9932fb36, 0xffffd872ffffdd9a}, + {0x9932fb37, 0xffffd872ffffdd9b}, + {0x9932fb38, 0xffffd872ffffdd9c}, + {0x9932fb39, 0xffffd872ffffdd9d}, + {0x9932fc30, 0xffffd872ffffdd9e}, + {0x9932fc31, 0xffffd872ffffdd9f}, + {0x9932fc32, 0xffffd872ffffdda0}, + {0x9932fc33, 0xffffd872ffffdda1}, + {0x9932fc34, 0xffffd872ffffdda2}, + {0x9932fc35, 0xffffd872ffffdda3}, + {0x9932fc36, 0xffffd872ffffdda4}, + {0x9932fc37, 0xffffd872ffffdda5}, + {0x9932fc38, 0xffffd872ffffdda6}, + {0x9932fc39, 0xffffd872ffffdda7}, + {0x9932fd30, 0xffffd872ffffdda8}, + {0x9932fd31, 0xffffd872ffffdda9}, + {0x9932fd32, 0xffffd872ffffddaa}, + {0x9932fd33, 0xffffd872ffffddab}, + {0x9932fd34, 0xffffd872ffffddac}, + {0x9932fd35, 0xffffd872ffffddad}, + {0x9932fd36, 0xffffd872ffffddae}, + {0x9932fd37, 0xffffd872ffffddaf}, + {0x9932fd38, 0xffffd872ffffddb0}, + {0x9932fd39, 0xffffd872ffffddb1}, + {0x9932fe30, 0xffffd872ffffddb2}, + {0x9932fe31, 0xffffd872ffffddb3}, + {0x9932fe32, 0xffffd872ffffddb4}, + {0x9932fe33, 0xffffd872ffffddb5}, + {0x9932fe34, 0xffffd872ffffddb6}, + {0x9932fe35, 0xffffd872ffffddb7}, + {0x9932fe36, 0xffffd872ffffddb8}, + {0x9932fe37, 0xffffd872ffffddb9}, + {0x9932fe38, 0xffffd872ffffddba}, + {0x9932fe39, 0xffffd872ffffddbb}, + {0x99338130, 0xffffd872ffffddbc}, + {0x99338131, 0xffffd872ffffddbd}, + {0x99338132, 0xffffd872ffffddbe}, + {0x99338133, 0xffffd872ffffddbf}, + {0x99338134, 0xffffd872ffffddc0}, + {0x99338135, 0xffffd872ffffddc1}, + {0x99338136, 0xffffd872ffffddc2}, + {0x99338137, 0xffffd872ffffddc3}, + {0x99338138, 0xffffd872ffffddc4}, + {0x99338139, 0xffffd872ffffddc5}, + {0x99338230, 0xffffd872ffffddc6}, + {0x99338231, 0xffffd872ffffddc7}, + {0x99338232, 0xffffd872ffffddc8}, + {0x99338233, 0xffffd872ffffddc9}, + {0x99338234, 0xffffd872ffffddca}, + {0x99338235, 0xffffd872ffffddcb}, + {0x99338236, 0xffffd872ffffddcc}, + {0x99338237, 0xffffd872ffffddcd}, + {0x99338238, 0xffffd872ffffddce}, + {0x99338239, 0xffffd872ffffddcf}, + {0x99338330, 0xffffd872ffffddd0}, + {0x99338331, 0xffffd872ffffddd1}, + {0x99338332, 0xffffd872ffffddd2}, + {0x99338333, 0xffffd872ffffddd3}, + {0x99338334, 0xffffd872ffffddd4}, + {0x99338335, 0xffffd872ffffddd5}, + {0x99338336, 0xffffd872ffffddd6}, + {0x99338337, 0xffffd872ffffddd7}, + {0x99338338, 0xffffd872ffffddd8}, + {0x99338339, 0xffffd872ffffddd9}, + {0x99338430, 0xffffd872ffffddda}, + {0x99338431, 0xffffd872ffffdddb}, + {0x99338432, 0xffffd872ffffdddc}, + {0x99338433, 0xffffd872ffffdddd}, + {0x99338434, 0xffffd872ffffddde}, + {0x99338435, 0xffffd872ffffdddf}, + {0x99338436, 0xffffd872ffffdde0}, + {0x99338437, 0xffffd872ffffdde1}, + {0x99338438, 0xffffd872ffffdde2}, + {0x99338439, 0xffffd872ffffdde3}, + {0x99338530, 0xffffd872ffffdde4}, + {0x99338531, 0xffffd872ffffdde5}, + {0x99338532, 0xffffd872ffffdde6}, + {0x99338533, 0xffffd872ffffdde7}, + {0x99338534, 0xffffd872ffffdde8}, + {0x99338535, 0xffffd872ffffdde9}, + {0x99338536, 0xffffd872ffffddea}, + {0x99338537, 0xffffd872ffffddeb}, + {0x99338538, 0xffffd872ffffddec}, + {0x99338539, 0xffffd872ffffdded}, + {0x99338630, 0xffffd872ffffddee}, + {0x99338631, 0xffffd872ffffddef}, + {0x99338632, 0xffffd872ffffddf0}, + {0x99338633, 0xffffd872ffffddf1}, + {0x99338634, 0xffffd872ffffddf2}, + {0x99338635, 0xffffd872ffffddf3}, + {0x99338636, 0xffffd872ffffddf4}, + {0x99338637, 0xffffd872ffffddf5}, + {0x99338638, 0xffffd872ffffddf6}, + {0x99338639, 0xffffd872ffffddf7}, + {0x99338730, 0xffffd872ffffddf8}, + {0x99338731, 0xffffd872ffffddf9}, + {0x99338732, 0xffffd872ffffddfa}, + {0x99338733, 0xffffd872ffffddfb}, + {0x99338734, 0xffffd872ffffddfc}, + {0x99338735, 0xffffd872ffffddfd}, + {0x99338736, 0xffffd872ffffddfe}, + {0x99338737, 0xffffd872ffffddff}, + {0x99338738, 0xffffd872ffffde00}, + {0x99338739, 0xffffd872ffffde01}, + {0x99338830, 0xffffd872ffffde02}, + {0x99338831, 0xffffd872ffffde03}, + {0x99338832, 0xffffd872ffffde04}, + {0x99338833, 0xffffd872ffffde05}, + {0x99338834, 0xffffd872ffffde06}, + {0x99338835, 0xffffd872ffffde07}, + {0x99338836, 0xffffd872ffffde08}, + {0x99338837, 0xffffd872ffffde09}, + {0x99338838, 0xffffd872ffffde0a}, + {0x99338839, 0xffffd872ffffde0b}, + {0x99338930, 0xffffd872ffffde0c}, + {0x99338931, 0xffffd872ffffde0d}, + {0x99338932, 0xffffd872ffffde0e}, + {0x99338933, 0xffffd872ffffde0f}, + {0x99338934, 0xffffd872ffffde10}, + {0x99338935, 0xffffd872ffffde11}, + {0x99338936, 0xffffd872ffffde12}, + {0x99338937, 0xffffd872ffffde13}, + {0x99338938, 0xffffd872ffffde14}, + {0x99338939, 0xffffd872ffffde15}, + {0x99338a30, 0xffffd872ffffde16}, + {0x99338a31, 0xffffd872ffffde17}, + {0x99338a32, 0xffffd872ffffde18}, + {0x99338a33, 0xffffd872ffffde19}, + {0x99338a34, 0xffffd872ffffde1a}, + {0x99338a35, 0xffffd872ffffde1b}, + {0x99338a36, 0xffffd872ffffde1c}, + {0x99338a37, 0xffffd872ffffde1d}, + {0x99338a38, 0xffffd872ffffde1e}, + {0x99338a39, 0xffffd872ffffde1f}, + {0x99338b30, 0xffffd872ffffde20}, + {0x99338b31, 0xffffd872ffffde21}, + {0x99338b32, 0xffffd872ffffde22}, + {0x99338b33, 0xffffd872ffffde23}, + {0x99338b34, 0xffffd872ffffde24}, + {0x99338b35, 0xffffd872ffffde25}, + {0x99338b36, 0xffffd872ffffde26}, + {0x99338b37, 0xffffd872ffffde27}, + {0x99338b38, 0xffffd872ffffde28}, + {0x99338b39, 0xffffd872ffffde29}, + {0x99338c30, 0xffffd872ffffde2a}, + {0x99338c31, 0xffffd872ffffde2b}, + {0x99338c32, 0xffffd872ffffde2c}, + {0x99338c33, 0xffffd872ffffde2d}, + {0x99338c34, 0xffffd872ffffde2e}, + {0x99338c35, 0xffffd872ffffde2f}, + {0x99338c36, 0xffffd872ffffde30}, + {0x99338c37, 0xffffd872ffffde31}, + {0x99338c38, 0xffffd872ffffde32}, + {0x99338c39, 0xffffd872ffffde33}, + {0x99338d30, 0xffffd872ffffde34}, + {0x99338d31, 0xffffd872ffffde35}, + {0x99338d32, 0xffffd872ffffde36}, + {0x99338d33, 0xffffd872ffffde37}, + {0x99338d34, 0xffffd872ffffde38}, + {0x99338d35, 0xffffd872ffffde39}, + {0x99338d36, 0xffffd872ffffde3a}, + {0x99338d37, 0xffffd872ffffde3b}, + {0x99338d38, 0xffffd872ffffde3c}, + {0x99338d39, 0xffffd872ffffde3d}, + {0x99338e30, 0xffffd872ffffde3e}, + {0x99338e31, 0xffffd872ffffde3f}, + {0x99338e32, 0xffffd872ffffde40}, + {0x99338e33, 0xffffd872ffffde41}, + {0x99338e34, 0xffffd872ffffde42}, + {0x99338e35, 0xffffd872ffffde43}, + {0x99338e36, 0xffffd872ffffde44}, + {0x99338e37, 0xffffd872ffffde45}, + {0x99338e38, 0xffffd872ffffde46}, + {0x99338e39, 0xffffd872ffffde47}, + {0x99338f30, 0xffffd872ffffde48}, + {0x99338f31, 0xffffd872ffffde49}, + {0x99338f32, 0xffffd872ffffde4a}, + {0x99338f33, 0xffffd872ffffde4b}, + {0x99338f34, 0xffffd872ffffde4c}, + {0x99338f35, 0xffffd872ffffde4d}, + {0x99338f36, 0xffffd872ffffde4e}, + {0x99338f37, 0xffffd872ffffde4f}, + {0x99338f38, 0xffffd872ffffde50}, + {0x99338f39, 0xffffd872ffffde51}, + {0x99339030, 0xffffd872ffffde52}, + {0x99339031, 0xffffd872ffffde53}, + {0x99339032, 0xffffd872ffffde54}, + {0x99339033, 0xffffd872ffffde55}, + {0x99339034, 0xffffd872ffffde56}, + {0x99339035, 0xffffd872ffffde57}, + {0x99339036, 0xffffd872ffffde58}, + {0x99339037, 0xffffd872ffffde59}, + {0x99339038, 0xffffd872ffffde5a}, + {0x99339039, 0xffffd872ffffde5b}, + {0x99339130, 0xffffd872ffffde5c}, + {0x99339131, 0xffffd872ffffde5d}, + {0x99339132, 0xffffd872ffffde5e}, + {0x99339133, 0xffffd872ffffde5f}, + {0x99339134, 0xffffd872ffffde60}, + {0x99339135, 0xffffd872ffffde61}, + {0x99339136, 0xffffd872ffffde62}, + {0x99339137, 0xffffd872ffffde63}, + {0x99339138, 0xffffd872ffffde64}, + {0x99339139, 0xffffd872ffffde65}, + {0x99339230, 0xffffd872ffffde66}, + {0x99339231, 0xffffd872ffffde67}, + {0x99339232, 0xffffd872ffffde68}, + {0x99339233, 0xffffd872ffffde69}, + {0x99339234, 0xffffd872ffffde6a}, + {0x99339235, 0xffffd872ffffde6b}, + {0x99339236, 0xffffd872ffffde6c}, + {0x99339237, 0xffffd872ffffde6d}, + {0x99339238, 0xffffd872ffffde6e}, + {0x99339239, 0xffffd872ffffde6f}, + {0x99339330, 0xffffd872ffffde70}, + {0x99339331, 0xffffd872ffffde71}, + {0x99339332, 0xffffd872ffffde72}, + {0x99339333, 0xffffd872ffffde73}, + {0x99339334, 0xffffd872ffffde74}, + {0x99339335, 0xffffd872ffffde75}, + {0x99339336, 0xffffd872ffffde76}, + {0x99339337, 0xffffd872ffffde77}, + {0x99339338, 0xffffd872ffffde78}, + {0x99339339, 0xffffd872ffffde79}, + {0x99339430, 0xffffd872ffffde7a}, + {0x99339431, 0xffffd872ffffde7b}, + {0x99339432, 0xffffd872ffffde7c}, + {0x99339433, 0xffffd872ffffde7d}, + {0x99339434, 0xffffd872ffffde7e}, + {0x99339435, 0xffffd872ffffde7f}, + {0x99339436, 0xffffd872ffffde80}, + {0x99339437, 0xffffd872ffffde81}, + {0x99339438, 0xffffd872ffffde82}, + {0x99339439, 0xffffd872ffffde83}, + {0x99339530, 0xffffd872ffffde84}, + {0x99339531, 0xffffd872ffffde85}, + {0x99339532, 0xffffd872ffffde86}, + {0x99339533, 0xffffd872ffffde87}, + {0x99339534, 0xffffd872ffffde88}, + {0x99339535, 0xffffd872ffffde89}, + {0x99339536, 0xffffd872ffffde8a}, + {0x99339537, 0xffffd872ffffde8b}, + {0x99339538, 0xffffd872ffffde8c}, + {0x99339539, 0xffffd872ffffde8d}, + {0x99339630, 0xffffd872ffffde8e}, + {0x99339631, 0xffffd872ffffde8f}, + {0x99339632, 0xffffd872ffffde90}, + {0x99339633, 0xffffd872ffffde91}, + {0x99339634, 0xffffd872ffffde92}, + {0x99339635, 0xffffd872ffffde93}, + {0x99339636, 0xffffd872ffffde94}, + {0x99339637, 0xffffd872ffffde95}, + {0x99339638, 0xffffd872ffffde96}, + {0x99339639, 0xffffd872ffffde97}, + {0x99339730, 0xffffd872ffffde98}, + {0x99339731, 0xffffd872ffffde99}, + {0x99339732, 0xffffd872ffffde9a}, + {0x99339733, 0xffffd872ffffde9b}, + {0x99339734, 0xffffd872ffffde9c}, + {0x99339735, 0xffffd872ffffde9d}, + {0x99339736, 0xffffd872ffffde9e}, + {0x99339737, 0xffffd872ffffde9f}, + {0x99339738, 0xffffd872ffffdea0}, + {0x99339739, 0xffffd872ffffdea1}, + {0x99339830, 0xffffd872ffffdea2}, + {0x99339831, 0xffffd872ffffdea3}, + {0x99339832, 0xffffd872ffffdea4}, + {0x99339833, 0xffffd872ffffdea5}, + {0x99339834, 0xffffd872ffffdea6}, + {0x99339835, 0xffffd872ffffdea7}, + {0x99339836, 0xffffd872ffffdea8}, + {0x99339837, 0xffffd872ffffdea9}, + {0x99339838, 0xffffd872ffffdeaa}, + {0x99339839, 0xffffd872ffffdeab}, + {0x99339930, 0xffffd872ffffdeac}, + {0x99339931, 0xffffd872ffffdead}, + {0x99339932, 0xffffd872ffffdeae}, + {0x99339933, 0xffffd872ffffdeaf}, + {0x99339934, 0xffffd872ffffdeb0}, + {0x99339935, 0xffffd872ffffdeb1}, + {0x99339936, 0xffffd872ffffdeb2}, + {0x99339937, 0xffffd872ffffdeb3}, + {0x99339938, 0xffffd872ffffdeb4}, + {0x99339939, 0xffffd872ffffdeb5}, + {0x99339a30, 0xffffd872ffffdeb6}, + {0x99339a31, 0xffffd872ffffdeb7}, + {0x99339a32, 0xffffd872ffffdeb8}, + {0x99339a33, 0xffffd872ffffdeb9}, + {0x99339a34, 0xffffd872ffffdeba}, + {0x99339a35, 0xffffd872ffffdebb}, + {0x99339a36, 0xffffd872ffffdebc}, + {0x99339a37, 0xffffd872ffffdebd}, + {0x99339a38, 0xffffd872ffffdebe}, + {0x99339a39, 0xffffd872ffffdebf}, + {0x99339b30, 0xffffd872ffffdec0}, + {0x99339b31, 0xffffd872ffffdec1}, + {0x99339b32, 0xffffd872ffffdec2}, + {0x99339b33, 0xffffd872ffffdec3}, + {0x99339b34, 0xffffd872ffffdec4}, + {0x99339b35, 0xffffd872ffffdec5}, + {0x99339b36, 0xffffd872ffffdec6}, + {0x99339b37, 0xffffd872ffffdec7}, + {0x99339b38, 0xffffd872ffffdec8}, + {0x99339b39, 0xffffd872ffffdec9}, + {0x99339c30, 0xffffd872ffffdeca}, + {0x99339c31, 0xffffd872ffffdecb}, + {0x99339c32, 0xffffd872ffffdecc}, + {0x99339c33, 0xffffd872ffffdecd}, + {0x99339c34, 0xffffd872ffffdece}, + {0x99339c35, 0xffffd872ffffdecf}, + {0x99339c36, 0xffffd872ffffded0}, + {0x99339c37, 0xffffd872ffffded1}, + {0x99339c38, 0xffffd872ffffded2}, + {0x99339c39, 0xffffd872ffffded3}, + {0x99339d30, 0xffffd872ffffded4}, + {0x99339d31, 0xffffd872ffffded5}, + {0x99339d32, 0xffffd872ffffded6}, + {0x99339d33, 0xffffd872ffffded7}, + {0x99339d34, 0xffffd872ffffded8}, + {0x99339d35, 0xffffd872ffffded9}, + {0x99339d36, 0xffffd872ffffdeda}, + {0x99339d37, 0xffffd872ffffdedb}, + {0x99339d38, 0xffffd872ffffdedc}, + {0x99339d39, 0xffffd872ffffdedd}, + {0x99339e30, 0xffffd872ffffdede}, + {0x99339e31, 0xffffd872ffffdedf}, + {0x99339e32, 0xffffd872ffffdee0}, + {0x99339e33, 0xffffd872ffffdee1}, + {0x99339e34, 0xffffd872ffffdee2}, + {0x99339e35, 0xffffd872ffffdee3}, + {0x99339e36, 0xffffd872ffffdee4}, + {0x99339e37, 0xffffd872ffffdee5}, + {0x99339e38, 0xffffd872ffffdee6}, + {0x99339e39, 0xffffd872ffffdee7}, + {0x99339f30, 0xffffd872ffffdee8}, + {0x99339f31, 0xffffd872ffffdee9}, + {0x99339f32, 0xffffd872ffffdeea}, + {0x99339f33, 0xffffd872ffffdeeb}, + {0x99339f34, 0xffffd872ffffdeec}, + {0x99339f35, 0xffffd872ffffdeed}, + {0x99339f36, 0xffffd872ffffdeee}, + {0x99339f37, 0xffffd872ffffdeef}, + {0x99339f38, 0xffffd872ffffdef0}, + {0x99339f39, 0xffffd872ffffdef1}, + {0x9933a030, 0xffffd872ffffdef2}, + {0x9933a031, 0xffffd872ffffdef3}, + {0x9933a032, 0xffffd872ffffdef4}, + {0x9933a033, 0xffffd872ffffdef5}, + {0x9933a034, 0xffffd872ffffdef6}, + {0x9933a035, 0xffffd872ffffdef7}, + {0x9933a036, 0xffffd872ffffdef8}, + {0x9933a037, 0xffffd872ffffdef9}, + {0x9933a038, 0xffffd872ffffdefa}, + {0x9933a039, 0xffffd872ffffdefb}, + {0x9933a130, 0xffffd872ffffdefc}, + {0x9933a131, 0xffffd872ffffdefd}, + {0x9933a132, 0xffffd872ffffdefe}, + {0x9933a133, 0xffffd872ffffdeff}, + {0x9933a134, 0xffffd872ffffdf00}, + {0x9933a135, 0xffffd872ffffdf01}, + {0x9933a136, 0xffffd872ffffdf02}, + {0x9933a137, 0xffffd872ffffdf03}, + {0x9933a138, 0xffffd872ffffdf04}, + {0x9933a139, 0xffffd872ffffdf05}, + {0x9933a230, 0xffffd872ffffdf06}, + {0x9933a231, 0xffffd872ffffdf07}, + {0x9933a232, 0xffffd872ffffdf08}, + {0x9933a233, 0xffffd872ffffdf09}, + {0x9933a234, 0xffffd872ffffdf0a}, + {0x9933a235, 0xffffd872ffffdf0b}, + {0x9933a236, 0xffffd872ffffdf0c}, + {0x9933a237, 0xffffd872ffffdf0d}, + {0x9933a238, 0xffffd872ffffdf0e}, + {0x9933a239, 0xffffd872ffffdf0f}, + {0x9933a330, 0xffffd872ffffdf10}, + {0x9933a331, 0xffffd872ffffdf11}, + {0x9933a332, 0xffffd872ffffdf12}, + {0x9933a333, 0xffffd872ffffdf13}, + {0x9933a334, 0xffffd872ffffdf14}, + {0x9933a335, 0xffffd872ffffdf15}, + {0x9933a336, 0xffffd872ffffdf16}, + {0x9933a337, 0xffffd872ffffdf17}, + {0x9933a338, 0xffffd872ffffdf18}, + {0x9933a339, 0xffffd872ffffdf19}, + {0x9933a430, 0xffffd872ffffdf1a}, + {0x9933a431, 0xffffd872ffffdf1b}, + {0x9933a432, 0xffffd872ffffdf1c}, + {0x9933a433, 0xffffd872ffffdf1d}, + {0x9933a434, 0xffffd872ffffdf1e}, + {0x9933a435, 0xffffd872ffffdf1f}, + {0x9933a436, 0xffffd872ffffdf20}, + {0x9933a437, 0xffffd872ffffdf21}, + {0x9933a438, 0xffffd872ffffdf22}, + {0x9933a439, 0xffffd872ffffdf23}, + {0x9933a530, 0xffffd872ffffdf24}, + {0x9933a531, 0xffffd872ffffdf25}, + {0x9933a532, 0xffffd872ffffdf26}, + {0x9933a533, 0xffffd872ffffdf27}, + {0x9933a534, 0xffffd872ffffdf28}, + {0x9933a535, 0xffffd872ffffdf29}, + {0x9933a536, 0xffffd872ffffdf2a}, + {0x9933a537, 0xffffd872ffffdf2b}, + {0x9933a538, 0xffffd872ffffdf2c}, + {0x9933a539, 0xffffd872ffffdf2d}, + {0x9933a630, 0xffffd872ffffdf2e}, + {0x9933a631, 0xffffd872ffffdf2f}, + {0x9933a632, 0xffffd872ffffdf30}, + {0x9933a633, 0xffffd872ffffdf31}, + {0x9933a634, 0xffffd872ffffdf32}, + {0x9933a635, 0xffffd872ffffdf33}, + {0x9933a636, 0xffffd872ffffdf34}, + {0x9933a637, 0xffffd872ffffdf35}, + {0x9933a638, 0xffffd872ffffdf36}, + {0x9933a639, 0xffffd872ffffdf37}, + {0x9933a730, 0xffffd872ffffdf38}, + {0x9933a731, 0xffffd872ffffdf39}, + {0x9933a732, 0xffffd872ffffdf3a}, + {0x9933a733, 0xffffd872ffffdf3b}, + {0x9933a734, 0xffffd872ffffdf3c}, + {0x9933a735, 0xffffd872ffffdf3d}, + {0x9933a736, 0xffffd872ffffdf3e}, + {0x9933a737, 0xffffd872ffffdf3f}, + {0x9933a738, 0xffffd872ffffdf40}, + {0x9933a739, 0xffffd872ffffdf41}, + {0x9933a830, 0xffffd872ffffdf42}, + {0x9933a831, 0xffffd872ffffdf43}, + {0x9933a832, 0xffffd872ffffdf44}, + {0x9933a833, 0xffffd872ffffdf45}, + {0x9933a834, 0xffffd872ffffdf46}, + {0x9933a835, 0xffffd872ffffdf47}, + {0x9933a836, 0xffffd872ffffdf48}, + {0x9933a837, 0xffffd872ffffdf49}, + {0x9933a838, 0xffffd872ffffdf4a}, + {0x9933a839, 0xffffd872ffffdf4b}, + {0x9933a930, 0xffffd872ffffdf4c}, + {0x9933a931, 0xffffd872ffffdf4d}, + {0x9933a932, 0xffffd872ffffdf4e}, + {0x9933a933, 0xffffd872ffffdf4f}, + {0x9933a934, 0xffffd872ffffdf50}, + {0x9933a935, 0xffffd872ffffdf51}, + {0x9933a936, 0xffffd872ffffdf52}, + {0x9933a937, 0xffffd872ffffdf53}, + {0x9933a938, 0xffffd872ffffdf54}, + {0x9933a939, 0xffffd872ffffdf55}, + {0x9933aa30, 0xffffd872ffffdf56}, + {0x9933aa31, 0xffffd872ffffdf57}, + {0x9933aa32, 0xffffd872ffffdf58}, + {0x9933aa33, 0xffffd872ffffdf59}, + {0x9933aa34, 0xffffd872ffffdf5a}, + {0x9933aa35, 0xffffd872ffffdf5b}, + {0x9933aa36, 0xffffd872ffffdf5c}, + {0x9933aa37, 0xffffd872ffffdf5d}, + {0x9933aa38, 0xffffd872ffffdf5e}, + {0x9933aa39, 0xffffd872ffffdf5f}, + {0x9933ab30, 0xffffd872ffffdf60}, + {0x9933ab31, 0xffffd872ffffdf61}, + {0x9933ab32, 0xffffd872ffffdf62}, + {0x9933ab33, 0xffffd872ffffdf63}, + {0x9933ab34, 0xffffd872ffffdf64}, + {0x9933ab35, 0xffffd872ffffdf65}, + {0x9933ab36, 0xffffd872ffffdf66}, + {0x9933ab37, 0xffffd872ffffdf67}, + {0x9933ab38, 0xffffd872ffffdf68}, + {0x9933ab39, 0xffffd872ffffdf69}, + {0x9933ac30, 0xffffd872ffffdf6a}, + {0x9933ac31, 0xffffd872ffffdf6b}, + {0x9933ac32, 0xffffd872ffffdf6c}, + {0x9933ac33, 0xffffd872ffffdf6d}, + {0x9933ac34, 0xffffd872ffffdf6e}, + {0x9933ac35, 0xffffd872ffffdf6f}, + {0x9933ac36, 0xffffd872ffffdf70}, + {0x9933ac37, 0xffffd872ffffdf71}, + {0x9933ac38, 0xffffd872ffffdf72}, + {0x9933ac39, 0xffffd872ffffdf73}, + {0x9933ad30, 0xffffd872ffffdf74}, + {0x9933ad31, 0xffffd872ffffdf75}, + {0x9933ad32, 0xffffd872ffffdf76}, + {0x9933ad33, 0xffffd872ffffdf77}, + {0x9933ad34, 0xffffd872ffffdf78}, + {0x9933ad35, 0xffffd872ffffdf79}, + {0x9933ad36, 0xffffd872ffffdf7a}, + {0x9933ad37, 0xffffd872ffffdf7b}, + {0x9933ad38, 0xffffd872ffffdf7c}, + {0x9933ad39, 0xffffd872ffffdf7d}, + {0x9933ae30, 0xffffd872ffffdf7e}, + {0x9933ae31, 0xffffd872ffffdf7f}, + {0x9933ae32, 0xffffd872ffffdf80}, + {0x9933ae33, 0xffffd872ffffdf81}, + {0x9933ae34, 0xffffd872ffffdf82}, + {0x9933ae35, 0xffffd872ffffdf83}, + {0x9933ae36, 0xffffd872ffffdf84}, + {0x9933ae37, 0xffffd872ffffdf85}, + {0x9933ae38, 0xffffd872ffffdf86}, + {0x9933ae39, 0xffffd872ffffdf87}, + {0x9933af30, 0xffffd872ffffdf88}, + {0x9933af31, 0xffffd872ffffdf89}, + {0x9933af32, 0xffffd872ffffdf8a}, + {0x9933af33, 0xffffd872ffffdf8b}, + {0x9933af34, 0xffffd872ffffdf8c}, + {0x9933af35, 0xffffd872ffffdf8d}, + {0x9933af36, 0xffffd872ffffdf8e}, + {0x9933af37, 0xffffd872ffffdf8f}, + {0x9933af38, 0xffffd872ffffdf90}, + {0x9933af39, 0xffffd872ffffdf91}, + {0x9933b030, 0xffffd872ffffdf92}, + {0x9933b031, 0xffffd872ffffdf93}, + {0x9933b032, 0xffffd872ffffdf94}, + {0x9933b033, 0xffffd872ffffdf95}, + {0x9933b034, 0xffffd872ffffdf96}, + {0x9933b035, 0xffffd872ffffdf97}, + {0x9933b036, 0xffffd872ffffdf98}, + {0x9933b037, 0xffffd872ffffdf99}, + {0x9933b038, 0xffffd872ffffdf9a}, + {0x9933b039, 0xffffd872ffffdf9b}, + {0x9933b130, 0xffffd872ffffdf9c}, + {0x9933b131, 0xffffd872ffffdf9d}, + {0x9933b132, 0xffffd872ffffdf9e}, + {0x9933b133, 0xffffd872ffffdf9f}, + {0x9933b134, 0xffffd872ffffdfa0}, + {0x9933b135, 0xffffd872ffffdfa1}, + {0x9933b136, 0xffffd872ffffdfa2}, + {0x9933b137, 0xffffd872ffffdfa3}, + {0x9933b138, 0xffffd872ffffdfa4}, + {0x9933b139, 0xffffd872ffffdfa5}, + {0x9933b230, 0xffffd872ffffdfa6}, + {0x9933b231, 0xffffd872ffffdfa7}, + {0x9933b232, 0xffffd872ffffdfa8}, + {0x9933b233, 0xffffd872ffffdfa9}, + {0x9933b234, 0xffffd872ffffdfaa}, + {0x9933b235, 0xffffd872ffffdfab}, + {0x9933b236, 0xffffd872ffffdfac}, + {0x9933b237, 0xffffd872ffffdfad}, + {0x9933b238, 0xffffd872ffffdfae}, + {0x9933b239, 0xffffd872ffffdfaf}, + {0x9933b330, 0xffffd872ffffdfb0}, + {0x9933b331, 0xffffd872ffffdfb1}, + {0x9933b332, 0xffffd872ffffdfb2}, + {0x9933b333, 0xffffd872ffffdfb3}, + {0x9933b334, 0xffffd872ffffdfb4}, + {0x9933b335, 0xffffd872ffffdfb5}, + {0x9933b336, 0xffffd872ffffdfb6}, + {0x9933b337, 0xffffd872ffffdfb7}, + {0x9933b338, 0xffffd872ffffdfb8}, + {0x9933b339, 0xffffd872ffffdfb9}, + {0x9933b430, 0xffffd872ffffdfba}, + {0x9933b431, 0xffffd872ffffdfbb}, + {0x9933b432, 0xffffd872ffffdfbc}, + {0x9933b433, 0xffffd872ffffdfbd}, + {0x9933b434, 0xffffd872ffffdfbe}, + {0x9933b435, 0xffffd872ffffdfbf}, + {0x9933b436, 0xffffd872ffffdfc0}, + {0x9933b437, 0xffffd872ffffdfc1}, + {0x9933b438, 0xffffd872ffffdfc2}, + {0x9933b439, 0xffffd872ffffdfc3}, + {0x9933b530, 0xffffd872ffffdfc4}, + {0x9933b531, 0xffffd872ffffdfc5}, + {0x9933b532, 0xffffd872ffffdfc6}, + {0x9933b533, 0xffffd872ffffdfc7}, + {0x9933b534, 0xffffd872ffffdfc8}, + {0x9933b535, 0xffffd872ffffdfc9}, + {0x9933b536, 0xffffd872ffffdfca}, + {0x9933b537, 0xffffd872ffffdfcb}, + {0x9933b538, 0xffffd872ffffdfcc}, + {0x9933b539, 0xffffd872ffffdfcd}, + {0x9933b630, 0xffffd872ffffdfce}, + {0x9933b631, 0xffffd872ffffdfcf}, + {0x9933b632, 0xffffd872ffffdfd0}, + {0x9933b633, 0xffffd872ffffdfd1}, + {0x9933b634, 0xffffd872ffffdfd2}, + {0x9933b635, 0xffffd872ffffdfd3}, + {0x9933b636, 0xffffd872ffffdfd4}, + {0x9933b637, 0xffffd872ffffdfd5}, + {0x9933b638, 0xffffd872ffffdfd6}, + {0x9933b639, 0xffffd872ffffdfd7}, + {0x9933b730, 0xffffd872ffffdfd8}, + {0x9933b731, 0xffffd872ffffdfd9}, + {0x9933b732, 0xffffd872ffffdfda}, + {0x9933b733, 0xffffd872ffffdfdb}, + {0x9933b734, 0xffffd872ffffdfdc}, + {0x9933b735, 0xffffd872ffffdfdd}, + {0x9933b736, 0xffffd872ffffdfde}, + {0x9933b737, 0xffffd872ffffdfdf}, + {0x9933b738, 0xffffd872ffffdfe0}, + {0x9933b739, 0xffffd872ffffdfe1}, + {0x9933b830, 0xffffd872ffffdfe2}, + {0x9933b831, 0xffffd872ffffdfe3}, + {0x9933b832, 0xffffd872ffffdfe4}, + {0x9933b833, 0xffffd872ffffdfe5}, + {0x9933b834, 0xffffd872ffffdfe6}, + {0x9933b835, 0xffffd872ffffdfe7}, + {0x9933b836, 0xffffd872ffffdfe8}, + {0x9933b837, 0xffffd872ffffdfe9}, + {0x9933b838, 0xffffd872ffffdfea}, + {0x9933b839, 0xffffd872ffffdfeb}, + {0x9933b930, 0xffffd872ffffdfec}, + {0x9933b931, 0xffffd872ffffdfed}, + {0x9933b932, 0xffffd872ffffdfee}, + {0x9933b933, 0xffffd872ffffdfef}, + {0x9933b934, 0xffffd872ffffdff0}, + {0x9933b935, 0xffffd872ffffdff1}, + {0x9933b936, 0xffffd872ffffdff2}, + {0x9933b937, 0xffffd872ffffdff3}, + {0x9933b938, 0xffffd872ffffdff4}, + {0x9933b939, 0xffffd872ffffdff5}, + {0x9933ba30, 0xffffd872ffffdff6}, + {0x9933ba31, 0xffffd872ffffdff7}, + {0x9933ba32, 0xffffd872ffffdff8}, + {0x9933ba33, 0xffffd872ffffdff9}, + {0x9933ba34, 0xffffd872ffffdffa}, + {0x9933ba35, 0xffffd872ffffdffb}, + {0x9933ba36, 0xffffd872ffffdffc}, + {0x9933ba37, 0xffffd872ffffdffd}, + {0x9933ba38, 0xffffd872ffffdffe}, + {0x9933ba39, 0xffffd872ffffdfff}, + {0x9933bb30, 0xffffd873ffffdc00}, + {0x9933bb31, 0xffffd873ffffdc01}, + {0x9933bb32, 0xffffd873ffffdc02}, + {0x9933bb33, 0xffffd873ffffdc03}, + {0x9933bb34, 0xffffd873ffffdc04}, + {0x9933bb35, 0xffffd873ffffdc05}, + {0x9933bb36, 0xffffd873ffffdc06}, + {0x9933bb37, 0xffffd873ffffdc07}, + {0x9933bb38, 0xffffd873ffffdc08}, + {0x9933bb39, 0xffffd873ffffdc09}, + {0x9933bc30, 0xffffd873ffffdc0a}, + {0x9933bc31, 0xffffd873ffffdc0b}, + {0x9933bc32, 0xffffd873ffffdc0c}, + {0x9933bc33, 0xffffd873ffffdc0d}, + {0x9933bc34, 0xffffd873ffffdc0e}, + {0x9933bc35, 0xffffd873ffffdc0f}, + {0x9933bc36, 0xffffd873ffffdc10}, + {0x9933bc37, 0xffffd873ffffdc11}, + {0x9933bc38, 0xffffd873ffffdc12}, + {0x9933bc39, 0xffffd873ffffdc13}, + {0x9933bd30, 0xffffd873ffffdc14}, + {0x9933bd31, 0xffffd873ffffdc15}, + {0x9933bd32, 0xffffd873ffffdc16}, + {0x9933bd33, 0xffffd873ffffdc17}, + {0x9933bd34, 0xffffd873ffffdc18}, + {0x9933bd35, 0xffffd873ffffdc19}, + {0x9933bd36, 0xffffd873ffffdc1a}, + {0x9933bd37, 0xffffd873ffffdc1b}, + {0x9933bd38, 0xffffd873ffffdc1c}, + {0x9933bd39, 0xffffd873ffffdc1d}, + {0x9933be30, 0xffffd873ffffdc1e}, + {0x9933be31, 0xffffd873ffffdc1f}, + {0x9933be32, 0xffffd873ffffdc20}, + {0x9933be33, 0xffffd873ffffdc21}, + {0x9933be34, 0xffffd873ffffdc22}, + {0x9933be35, 0xffffd873ffffdc23}, + {0x9933be36, 0xffffd873ffffdc24}, + {0x9933be37, 0xffffd873ffffdc25}, + {0x9933be38, 0xffffd873ffffdc26}, + {0x9933be39, 0xffffd873ffffdc27}, + {0x9933bf30, 0xffffd873ffffdc28}, + {0x9933bf31, 0xffffd873ffffdc29}, + {0x9933bf32, 0xffffd873ffffdc2a}, + {0x9933bf33, 0xffffd873ffffdc2b}, + {0x9933bf34, 0xffffd873ffffdc2c}, + {0x9933bf35, 0xffffd873ffffdc2d}, + {0x9933bf36, 0xffffd873ffffdc2e}, + {0x9933bf37, 0xffffd873ffffdc2f}, + {0x9933bf38, 0xffffd873ffffdc30}, + {0x9933bf39, 0xffffd873ffffdc31}, + {0x9933c030, 0xffffd873ffffdc32}, + {0x9933c031, 0xffffd873ffffdc33}, + {0x9933c032, 0xffffd873ffffdc34}, + {0x9933c033, 0xffffd873ffffdc35}, + {0x9933c034, 0xffffd873ffffdc36}, + {0x9933c035, 0xffffd873ffffdc37}, + {0x9933c036, 0xffffd873ffffdc38}, + {0x9933c037, 0xffffd873ffffdc39}, + {0x9933c038, 0xffffd873ffffdc3a}, + {0x9933c039, 0xffffd873ffffdc3b}, + {0x9933c130, 0xffffd873ffffdc3c}, + {0x9933c131, 0xffffd873ffffdc3d}, + {0x9933c132, 0xffffd873ffffdc3e}, + {0x9933c133, 0xffffd873ffffdc3f}, + {0x9933c134, 0xffffd873ffffdc40}, + {0x9933c135, 0xffffd873ffffdc41}, + {0x9933c136, 0xffffd873ffffdc42}, + {0x9933c137, 0xffffd873ffffdc43}, + {0x9933c138, 0xffffd873ffffdc44}, + {0x9933c139, 0xffffd873ffffdc45}, + {0x9933c230, 0xffffd873ffffdc46}, + {0x9933c231, 0xffffd873ffffdc47}, + {0x9933c232, 0xffffd873ffffdc48}, + {0x9933c233, 0xffffd873ffffdc49}, + {0x9933c234, 0xffffd873ffffdc4a}, + {0x9933c235, 0xffffd873ffffdc4b}, + {0x9933c236, 0xffffd873ffffdc4c}, + {0x9933c237, 0xffffd873ffffdc4d}, + {0x9933c238, 0xffffd873ffffdc4e}, + {0x9933c239, 0xffffd873ffffdc4f}, + {0x9933c330, 0xffffd873ffffdc50}, + {0x9933c331, 0xffffd873ffffdc51}, + {0x9933c332, 0xffffd873ffffdc52}, + {0x9933c333, 0xffffd873ffffdc53}, + {0x9933c334, 0xffffd873ffffdc54}, + {0x9933c335, 0xffffd873ffffdc55}, + {0x9933c336, 0xffffd873ffffdc56}, + {0x9933c337, 0xffffd873ffffdc57}, + {0x9933c338, 0xffffd873ffffdc58}, + {0x9933c339, 0xffffd873ffffdc59}, + {0x9933c430, 0xffffd873ffffdc5a}, + {0x9933c431, 0xffffd873ffffdc5b}, + {0x9933c432, 0xffffd873ffffdc5c}, + {0x9933c433, 0xffffd873ffffdc5d}, + {0x9933c434, 0xffffd873ffffdc5e}, + {0x9933c435, 0xffffd873ffffdc5f}, + {0x9933c436, 0xffffd873ffffdc60}, + {0x9933c437, 0xffffd873ffffdc61}, + {0x9933c438, 0xffffd873ffffdc62}, + {0x9933c439, 0xffffd873ffffdc63}, + {0x9933c530, 0xffffd873ffffdc64}, + {0x9933c531, 0xffffd873ffffdc65}, + {0x9933c532, 0xffffd873ffffdc66}, + {0x9933c533, 0xffffd873ffffdc67}, + {0x9933c534, 0xffffd873ffffdc68}, + {0x9933c535, 0xffffd873ffffdc69}, + {0x9933c536, 0xffffd873ffffdc6a}, + {0x9933c537, 0xffffd873ffffdc6b}, + {0x9933c538, 0xffffd873ffffdc6c}, + {0x9933c539, 0xffffd873ffffdc6d}, + {0x9933c630, 0xffffd873ffffdc6e}, + {0x9933c631, 0xffffd873ffffdc6f}, + {0x9933c632, 0xffffd873ffffdc70}, + {0x9933c633, 0xffffd873ffffdc71}, + {0x9933c634, 0xffffd873ffffdc72}, + {0x9933c635, 0xffffd873ffffdc73}, + {0x9933c636, 0xffffd873ffffdc74}, + {0x9933c637, 0xffffd873ffffdc75}, + {0x9933c638, 0xffffd873ffffdc76}, + {0x9933c639, 0xffffd873ffffdc77}, + {0x9933c730, 0xffffd873ffffdc78}, + {0x9933c731, 0xffffd873ffffdc79}, + {0x9933c732, 0xffffd873ffffdc7a}, + {0x9933c733, 0xffffd873ffffdc7b}, + {0x9933c734, 0xffffd873ffffdc7c}, + {0x9933c735, 0xffffd873ffffdc7d}, + {0x9933c736, 0xffffd873ffffdc7e}, + {0x9933c737, 0xffffd873ffffdc7f}, + {0x9933c738, 0xffffd873ffffdc80}, + {0x9933c739, 0xffffd873ffffdc81}, + {0x9933c830, 0xffffd873ffffdc82}, + {0x9933c831, 0xffffd873ffffdc83}, + {0x9933c832, 0xffffd873ffffdc84}, + {0x9933c833, 0xffffd873ffffdc85}, + {0x9933c834, 0xffffd873ffffdc86}, + {0x9933c835, 0xffffd873ffffdc87}, + {0x9933c836, 0xffffd873ffffdc88}, + {0x9933c837, 0xffffd873ffffdc89}, + {0x9933c838, 0xffffd873ffffdc8a}, + {0x9933c839, 0xffffd873ffffdc8b}, + {0x9933c930, 0xffffd873ffffdc8c}, + {0x9933c931, 0xffffd873ffffdc8d}, + {0x9933c932, 0xffffd873ffffdc8e}, + {0x9933c933, 0xffffd873ffffdc8f}, + {0x9933c934, 0xffffd873ffffdc90}, + {0x9933c935, 0xffffd873ffffdc91}, + {0x9933c936, 0xffffd873ffffdc92}, + {0x9933c937, 0xffffd873ffffdc93}, + {0x9933c938, 0xffffd873ffffdc94}, + {0x9933c939, 0xffffd873ffffdc95}, + {0x9933ca30, 0xffffd873ffffdc96}, + {0x9933ca31, 0xffffd873ffffdc97}, + {0x9933ca32, 0xffffd873ffffdc98}, + {0x9933ca33, 0xffffd873ffffdc99}, + {0x9933ca34, 0xffffd873ffffdc9a}, + {0x9933ca35, 0xffffd873ffffdc9b}, + {0x9933ca36, 0xffffd873ffffdc9c}, + {0x9933ca37, 0xffffd873ffffdc9d}, + {0x9933ca38, 0xffffd873ffffdc9e}, + {0x9933ca39, 0xffffd873ffffdc9f}, + {0x9933cb30, 0xffffd873ffffdca0}, + {0x9933cb31, 0xffffd873ffffdca1}, + {0x9933cb32, 0xffffd873ffffdca2}, + {0x9933cb33, 0xffffd873ffffdca3}, + {0x9933cb34, 0xffffd873ffffdca4}, + {0x9933cb35, 0xffffd873ffffdca5}, + {0x9933cb36, 0xffffd873ffffdca6}, + {0x9933cb37, 0xffffd873ffffdca7}, + {0x9933cb38, 0xffffd873ffffdca8}, + {0x9933cb39, 0xffffd873ffffdca9}, + {0x9933cc30, 0xffffd873ffffdcaa}, + {0x9933cc31, 0xffffd873ffffdcab}, + {0x9933cc32, 0xffffd873ffffdcac}, + {0x9933cc33, 0xffffd873ffffdcad}, + {0x9933cc34, 0xffffd873ffffdcae}, + {0x9933cc35, 0xffffd873ffffdcaf}, + {0x9933cc36, 0xffffd873ffffdcb0}, + {0x9933cc37, 0xffffd873ffffdcb1}, + {0x9933cc38, 0xffffd873ffffdcb2}, + {0x9933cc39, 0xffffd873ffffdcb3}, + {0x9933cd30, 0xffffd873ffffdcb4}, + {0x9933cd31, 0xffffd873ffffdcb5}, + {0x9933cd32, 0xffffd873ffffdcb6}, + {0x9933cd33, 0xffffd873ffffdcb7}, + {0x9933cd34, 0xffffd873ffffdcb8}, + {0x9933cd35, 0xffffd873ffffdcb9}, + {0x9933cd36, 0xffffd873ffffdcba}, + {0x9933cd37, 0xffffd873ffffdcbb}, + {0x9933cd38, 0xffffd873ffffdcbc}, + {0x9933cd39, 0xffffd873ffffdcbd}, + {0x9933ce30, 0xffffd873ffffdcbe}, + {0x9933ce31, 0xffffd873ffffdcbf}, + {0x9933ce32, 0xffffd873ffffdcc0}, + {0x9933ce33, 0xffffd873ffffdcc1}, + {0x9933ce34, 0xffffd873ffffdcc2}, + {0x9933ce35, 0xffffd873ffffdcc3}, + {0x9933ce36, 0xffffd873ffffdcc4}, + {0x9933ce37, 0xffffd873ffffdcc5}, + {0x9933ce38, 0xffffd873ffffdcc6}, + {0x9933ce39, 0xffffd873ffffdcc7}, + {0x9933cf30, 0xffffd873ffffdcc8}, + {0x9933cf31, 0xffffd873ffffdcc9}, + {0x9933cf32, 0xffffd873ffffdcca}, + {0x9933cf33, 0xffffd873ffffdccb}, + {0x9933cf34, 0xffffd873ffffdccc}, + {0x9933cf35, 0xffffd873ffffdccd}, + {0x9933cf36, 0xffffd873ffffdcce}, + {0x9933cf37, 0xffffd873ffffdccf}, + {0x9933cf38, 0xffffd873ffffdcd0}, + {0x9933cf39, 0xffffd873ffffdcd1}, + {0x9933d030, 0xffffd873ffffdcd2}, + {0x9933d031, 0xffffd873ffffdcd3}, + {0x9933d032, 0xffffd873ffffdcd4}, + {0x9933d033, 0xffffd873ffffdcd5}, + {0x9933d034, 0xffffd873ffffdcd6}, + {0x9933d035, 0xffffd873ffffdcd7}, + {0x9933d036, 0xffffd873ffffdcd8}, + {0x9933d037, 0xffffd873ffffdcd9}, + {0x9933d038, 0xffffd873ffffdcda}, + {0x9933d039, 0xffffd873ffffdcdb}, + {0x9933d130, 0xffffd873ffffdcdc}, + {0x9933d131, 0xffffd873ffffdcdd}, + {0x9933d132, 0xffffd873ffffdcde}, + {0x9933d133, 0xffffd873ffffdcdf}, + {0x9933d134, 0xffffd873ffffdce0}, + {0x9933d135, 0xffffd873ffffdce1}, + {0x9933d136, 0xffffd873ffffdce2}, + {0x9933d137, 0xffffd873ffffdce3}, + {0x9933d138, 0xffffd873ffffdce4}, + {0x9933d139, 0xffffd873ffffdce5}, + {0x9933d230, 0xffffd873ffffdce6}, + {0x9933d231, 0xffffd873ffffdce7}, + {0x9933d232, 0xffffd873ffffdce8}, + {0x9933d233, 0xffffd873ffffdce9}, + {0x9933d234, 0xffffd873ffffdcea}, + {0x9933d235, 0xffffd873ffffdceb}, + {0x9933d236, 0xffffd873ffffdcec}, + {0x9933d237, 0xffffd873ffffdced}, + {0x9933d238, 0xffffd873ffffdcee}, + {0x9933d239, 0xffffd873ffffdcef}, + {0x9933d330, 0xffffd873ffffdcf0}, + {0x9933d331, 0xffffd873ffffdcf1}, + {0x9933d332, 0xffffd873ffffdcf2}, + {0x9933d333, 0xffffd873ffffdcf3}, + {0x9933d334, 0xffffd873ffffdcf4}, + {0x9933d335, 0xffffd873ffffdcf5}, + {0x9933d336, 0xffffd873ffffdcf6}, + {0x9933d337, 0xffffd873ffffdcf7}, + {0x9933d338, 0xffffd873ffffdcf8}, + {0x9933d339, 0xffffd873ffffdcf9}, + {0x9933d430, 0xffffd873ffffdcfa}, + {0x9933d431, 0xffffd873ffffdcfb}, + {0x9933d432, 0xffffd873ffffdcfc}, + {0x9933d433, 0xffffd873ffffdcfd}, + {0x9933d434, 0xffffd873ffffdcfe}, + {0x9933d435, 0xffffd873ffffdcff}, + {0x9933d436, 0xffffd873ffffdd00}, + {0x9933d437, 0xffffd873ffffdd01}, + {0x9933d438, 0xffffd873ffffdd02}, + {0x9933d439, 0xffffd873ffffdd03}, + {0x9933d530, 0xffffd873ffffdd04}, + {0x9933d531, 0xffffd873ffffdd05}, + {0x9933d532, 0xffffd873ffffdd06}, + {0x9933d533, 0xffffd873ffffdd07}, + {0x9933d534, 0xffffd873ffffdd08}, + {0x9933d535, 0xffffd873ffffdd09}, + {0x9933d536, 0xffffd873ffffdd0a}, + {0x9933d537, 0xffffd873ffffdd0b}, + {0x9933d538, 0xffffd873ffffdd0c}, + {0x9933d539, 0xffffd873ffffdd0d}, + {0x9933d630, 0xffffd873ffffdd0e}, + {0x9933d631, 0xffffd873ffffdd0f}, + {0x9933d632, 0xffffd873ffffdd10}, + {0x9933d633, 0xffffd873ffffdd11}, + {0x9933d634, 0xffffd873ffffdd12}, + {0x9933d635, 0xffffd873ffffdd13}, + {0x9933d636, 0xffffd873ffffdd14}, + {0x9933d637, 0xffffd873ffffdd15}, + {0x9933d638, 0xffffd873ffffdd16}, + {0x9933d639, 0xffffd873ffffdd17}, + {0x9933d730, 0xffffd873ffffdd18}, + {0x9933d731, 0xffffd873ffffdd19}, + {0x9933d732, 0xffffd873ffffdd1a}, + {0x9933d733, 0xffffd873ffffdd1b}, + {0x9933d734, 0xffffd873ffffdd1c}, + {0x9933d735, 0xffffd873ffffdd1d}, + {0x9933d736, 0xffffd873ffffdd1e}, + {0x9933d737, 0xffffd873ffffdd1f}, + {0x9933d738, 0xffffd873ffffdd20}, + {0x9933d739, 0xffffd873ffffdd21}, + {0x9933d830, 0xffffd873ffffdd22}, + {0x9933d831, 0xffffd873ffffdd23}, + {0x9933d832, 0xffffd873ffffdd24}, + {0x9933d833, 0xffffd873ffffdd25}, + {0x9933d834, 0xffffd873ffffdd26}, + {0x9933d835, 0xffffd873ffffdd27}, + {0x9933d836, 0xffffd873ffffdd28}, + {0x9933d837, 0xffffd873ffffdd29}, + {0x9933d838, 0xffffd873ffffdd2a}, + {0x9933d839, 0xffffd873ffffdd2b}, + {0x9933d930, 0xffffd873ffffdd2c}, + {0x9933d931, 0xffffd873ffffdd2d}, + {0x9933d932, 0xffffd873ffffdd2e}, + {0x9933d933, 0xffffd873ffffdd2f}, + {0x9933d934, 0xffffd873ffffdd30}, + {0x9933d935, 0xffffd873ffffdd31}, + {0x9933d936, 0xffffd873ffffdd32}, + {0x9933d937, 0xffffd873ffffdd33}, + {0x9933d938, 0xffffd873ffffdd34}, + {0x9933d939, 0xffffd873ffffdd35}, + {0x9933da30, 0xffffd873ffffdd36}, + {0x9933da31, 0xffffd873ffffdd37}, + {0x9933da32, 0xffffd873ffffdd38}, + {0x9933da33, 0xffffd873ffffdd39}, + {0x9933da34, 0xffffd873ffffdd3a}, + {0x9933da35, 0xffffd873ffffdd3b}, + {0x9933da36, 0xffffd873ffffdd3c}, + {0x9933da37, 0xffffd873ffffdd3d}, + {0x9933da38, 0xffffd873ffffdd3e}, + {0x9933da39, 0xffffd873ffffdd3f}, + {0x9933db30, 0xffffd873ffffdd40}, + {0x9933db31, 0xffffd873ffffdd41}, + {0x9933db32, 0xffffd873ffffdd42}, + {0x9933db33, 0xffffd873ffffdd43}, + {0x9933db34, 0xffffd873ffffdd44}, + {0x9933db35, 0xffffd873ffffdd45}, + {0x9933db36, 0xffffd873ffffdd46}, + {0x9933db37, 0xffffd873ffffdd47}, + {0x9933db38, 0xffffd873ffffdd48}, + {0x9933db39, 0xffffd873ffffdd49}, + {0x9933dc30, 0xffffd873ffffdd4a}, + {0x9933dc31, 0xffffd873ffffdd4b}, + {0x9933dc32, 0xffffd873ffffdd4c}, + {0x9933dc33, 0xffffd873ffffdd4d}, + {0x9933dc34, 0xffffd873ffffdd4e}, + {0x9933dc35, 0xffffd873ffffdd4f}, + {0x9933dc36, 0xffffd873ffffdd50}, + {0x9933dc37, 0xffffd873ffffdd51}, + {0x9933dc38, 0xffffd873ffffdd52}, + {0x9933dc39, 0xffffd873ffffdd53}, + {0x9933dd30, 0xffffd873ffffdd54}, + {0x9933dd31, 0xffffd873ffffdd55}, + {0x9933dd32, 0xffffd873ffffdd56}, + {0x9933dd33, 0xffffd873ffffdd57}, + {0x9933dd34, 0xffffd873ffffdd58}, + {0x9933dd35, 0xffffd873ffffdd59}, + {0x9933dd36, 0xffffd873ffffdd5a}, + {0x9933dd37, 0xffffd873ffffdd5b}, + {0x9933dd38, 0xffffd873ffffdd5c}, + {0x9933dd39, 0xffffd873ffffdd5d}, + {0x9933de30, 0xffffd873ffffdd5e}, + {0x9933de31, 0xffffd873ffffdd5f}, + {0x9933de32, 0xffffd873ffffdd60}, + {0x9933de33, 0xffffd873ffffdd61}, + {0x9933de34, 0xffffd873ffffdd62}, + {0x9933de35, 0xffffd873ffffdd63}, + {0x9933de36, 0xffffd873ffffdd64}, + {0x9933de37, 0xffffd873ffffdd65}, + {0x9933de38, 0xffffd873ffffdd66}, + {0x9933de39, 0xffffd873ffffdd67}, + {0x9933df30, 0xffffd873ffffdd68}, + {0x9933df31, 0xffffd873ffffdd69}, + {0x9933df32, 0xffffd873ffffdd6a}, + {0x9933df33, 0xffffd873ffffdd6b}, + {0x9933df34, 0xffffd873ffffdd6c}, + {0x9933df35, 0xffffd873ffffdd6d}, + {0x9933df36, 0xffffd873ffffdd6e}, + {0x9933df37, 0xffffd873ffffdd6f}, + {0x9933df38, 0xffffd873ffffdd70}, + {0x9933df39, 0xffffd873ffffdd71}, + {0x9933e030, 0xffffd873ffffdd72}, + {0x9933e031, 0xffffd873ffffdd73}, + {0x9933e032, 0xffffd873ffffdd74}, + {0x9933e033, 0xffffd873ffffdd75}, + {0x9933e034, 0xffffd873ffffdd76}, + {0x9933e035, 0xffffd873ffffdd77}, + {0x9933e036, 0xffffd873ffffdd78}, + {0x9933e037, 0xffffd873ffffdd79}, + {0x9933e038, 0xffffd873ffffdd7a}, + {0x9933e039, 0xffffd873ffffdd7b}, + {0x9933e130, 0xffffd873ffffdd7c}, + {0x9933e131, 0xffffd873ffffdd7d}, + {0x9933e132, 0xffffd873ffffdd7e}, + {0x9933e133, 0xffffd873ffffdd7f}, + {0x9933e134, 0xffffd873ffffdd80}, + {0x9933e135, 0xffffd873ffffdd81}, + {0x9933e136, 0xffffd873ffffdd82}, + {0x9933e137, 0xffffd873ffffdd83}, + {0x9933e138, 0xffffd873ffffdd84}, + {0x9933e139, 0xffffd873ffffdd85}, + {0x9933e230, 0xffffd873ffffdd86}, + {0x9933e231, 0xffffd873ffffdd87}, + {0x9933e232, 0xffffd873ffffdd88}, + {0x9933e233, 0xffffd873ffffdd89}, + {0x9933e234, 0xffffd873ffffdd8a}, + {0x9933e235, 0xffffd873ffffdd8b}, + {0x9933e236, 0xffffd873ffffdd8c}, + {0x9933e237, 0xffffd873ffffdd8d}, + {0x9933e238, 0xffffd873ffffdd8e}, + {0x9933e239, 0xffffd873ffffdd8f}, + {0x9933e330, 0xffffd873ffffdd90}, + {0x9933e331, 0xffffd873ffffdd91}, + {0x9933e332, 0xffffd873ffffdd92}, + {0x9933e333, 0xffffd873ffffdd93}, + {0x9933e334, 0xffffd873ffffdd94}, + {0x9933e335, 0xffffd873ffffdd95}, + {0x9933e336, 0xffffd873ffffdd96}, + {0x9933e337, 0xffffd873ffffdd97}, + {0x9933e338, 0xffffd873ffffdd98}, + {0x9933e339, 0xffffd873ffffdd99}, + {0x9933e430, 0xffffd873ffffdd9a}, + {0x9933e431, 0xffffd873ffffdd9b}, + {0x9933e432, 0xffffd873ffffdd9c}, + {0x9933e433, 0xffffd873ffffdd9d}, + {0x9933e434, 0xffffd873ffffdd9e}, + {0x9933e435, 0xffffd873ffffdd9f}, + {0x9933e436, 0xffffd873ffffdda0}, + {0x9933e437, 0xffffd873ffffdda1}, + {0x9933e438, 0xffffd873ffffdda2}, + {0x9933e439, 0xffffd873ffffdda3}, + {0x9933e530, 0xffffd873ffffdda4}, + {0x9933e531, 0xffffd873ffffdda5}, + {0x9933e532, 0xffffd873ffffdda6}, + {0x9933e533, 0xffffd873ffffdda7}, + {0x9933e534, 0xffffd873ffffdda8}, + {0x9933e535, 0xffffd873ffffdda9}, + {0x9933e536, 0xffffd873ffffddaa}, + {0x9933e537, 0xffffd873ffffddab}, + {0x9933e538, 0xffffd873ffffddac}, + {0x9933e539, 0xffffd873ffffddad}, + {0x9933e630, 0xffffd873ffffddae}, + {0x9933e631, 0xffffd873ffffddaf}, + {0x9933e632, 0xffffd873ffffddb0}, + {0x9933e633, 0xffffd873ffffddb1}, + {0x9933e634, 0xffffd873ffffddb2}, + {0x9933e635, 0xffffd873ffffddb3}, + {0x9933e636, 0xffffd873ffffddb4}, + {0x9933e637, 0xffffd873ffffddb5}, + {0x9933e638, 0xffffd873ffffddb6}, + {0x9933e639, 0xffffd873ffffddb7}, + {0x9933e730, 0xffffd873ffffddb8}, + {0x9933e731, 0xffffd873ffffddb9}, + {0x9933e732, 0xffffd873ffffddba}, + {0x9933e733, 0xffffd873ffffddbb}, + {0x9933e734, 0xffffd873ffffddbc}, + {0x9933e735, 0xffffd873ffffddbd}, + {0x9933e736, 0xffffd873ffffddbe}, + {0x9933e737, 0xffffd873ffffddbf}, + {0x9933e738, 0xffffd873ffffddc0}, + {0x9933e739, 0xffffd873ffffddc1}, + {0x9933e830, 0xffffd873ffffddc2}, + {0x9933e831, 0xffffd873ffffddc3}, + {0x9933e832, 0xffffd873ffffddc4}, + {0x9933e833, 0xffffd873ffffddc5}, + {0x9933e834, 0xffffd873ffffddc6}, + {0x9933e835, 0xffffd873ffffddc7}, + {0x9933e836, 0xffffd873ffffddc8}, + {0x9933e837, 0xffffd873ffffddc9}, + {0x9933e838, 0xffffd873ffffddca}, + {0x9933e839, 0xffffd873ffffddcb}, + {0x9933e930, 0xffffd873ffffddcc}, + {0x9933e931, 0xffffd873ffffddcd}, + {0x9933e932, 0xffffd873ffffddce}, + {0x9933e933, 0xffffd873ffffddcf}, + {0x9933e934, 0xffffd873ffffddd0}, + {0x9933e935, 0xffffd873ffffddd1}, + {0x9933e936, 0xffffd873ffffddd2}, + {0x9933e937, 0xffffd873ffffddd3}, + {0x9933e938, 0xffffd873ffffddd4}, + {0x9933e939, 0xffffd873ffffddd5}, + {0x9933ea30, 0xffffd873ffffddd6}, + {0x9933ea31, 0xffffd873ffffddd7}, + {0x9933ea32, 0xffffd873ffffddd8}, + {0x9933ea33, 0xffffd873ffffddd9}, + {0x9933ea34, 0xffffd873ffffddda}, + {0x9933ea35, 0xffffd873ffffdddb}, + {0x9933ea36, 0xffffd873ffffdddc}, + {0x9933ea37, 0xffffd873ffffdddd}, + {0x9933ea38, 0xffffd873ffffddde}, + {0x9933ea39, 0xffffd873ffffdddf}, + {0x9933eb30, 0xffffd873ffffdde0}, + {0x9933eb31, 0xffffd873ffffdde1}, + {0x9933eb32, 0xffffd873ffffdde2}, + {0x9933eb33, 0xffffd873ffffdde3}, + {0x9933eb34, 0xffffd873ffffdde4}, + {0x9933eb35, 0xffffd873ffffdde5}, + {0x9933eb36, 0xffffd873ffffdde6}, + {0x9933eb37, 0xffffd873ffffdde7}, + {0x9933eb38, 0xffffd873ffffdde8}, + {0x9933eb39, 0xffffd873ffffdde9}, + {0x9933ec30, 0xffffd873ffffddea}, + {0x9933ec31, 0xffffd873ffffddeb}, + {0x9933ec32, 0xffffd873ffffddec}, + {0x9933ec33, 0xffffd873ffffdded}, + {0x9933ec34, 0xffffd873ffffddee}, + {0x9933ec35, 0xffffd873ffffddef}, + {0x9933ec36, 0xffffd873ffffddf0}, + {0x9933ec37, 0xffffd873ffffddf1}, + {0x9933ec38, 0xffffd873ffffddf2}, + {0x9933ec39, 0xffffd873ffffddf3}, + {0x9933ed30, 0xffffd873ffffddf4}, + {0x9933ed31, 0xffffd873ffffddf5}, + {0x9933ed32, 0xffffd873ffffddf6}, + {0x9933ed33, 0xffffd873ffffddf7}, + {0x9933ed34, 0xffffd873ffffddf8}, + {0x9933ed35, 0xffffd873ffffddf9}, + {0x9933ed36, 0xffffd873ffffddfa}, + {0x9933ed37, 0xffffd873ffffddfb}, + {0x9933ed38, 0xffffd873ffffddfc}, + {0x9933ed39, 0xffffd873ffffddfd}, + {0x9933ee30, 0xffffd873ffffddfe}, + {0x9933ee31, 0xffffd873ffffddff}, + {0x9933ee32, 0xffffd873ffffde00}, + {0x9933ee33, 0xffffd873ffffde01}, + {0x9933ee34, 0xffffd873ffffde02}, + {0x9933ee35, 0xffffd873ffffde03}, + {0x9933ee36, 0xffffd873ffffde04}, + {0x9933ee37, 0xffffd873ffffde05}, + {0x9933ee38, 0xffffd873ffffde06}, + {0x9933ee39, 0xffffd873ffffde07}, + {0x9933ef30, 0xffffd873ffffde08}, + {0x9933ef31, 0xffffd873ffffde09}, + {0x9933ef32, 0xffffd873ffffde0a}, + {0x9933ef33, 0xffffd873ffffde0b}, + {0x9933ef34, 0xffffd873ffffde0c}, + {0x9933ef35, 0xffffd873ffffde0d}, + {0x9933ef36, 0xffffd873ffffde0e}, + {0x9933ef37, 0xffffd873ffffde0f}, + {0x9933ef38, 0xffffd873ffffde10}, + {0x9933ef39, 0xffffd873ffffde11}, + {0x9933f030, 0xffffd873ffffde12}, + {0x9933f031, 0xffffd873ffffde13}, + {0x9933f032, 0xffffd873ffffde14}, + {0x9933f033, 0xffffd873ffffde15}, + {0x9933f034, 0xffffd873ffffde16}, + {0x9933f035, 0xffffd873ffffde17}, + {0x9933f036, 0xffffd873ffffde18}, + {0x9933f037, 0xffffd873ffffde19}, + {0x9933f038, 0xffffd873ffffde1a}, + {0x9933f039, 0xffffd873ffffde1b}, + {0x9933f130, 0xffffd873ffffde1c}, + {0x9933f131, 0xffffd873ffffde1d}, + {0x9933f132, 0xffffd873ffffde1e}, + {0x9933f133, 0xffffd873ffffde1f}, + {0x9933f134, 0xffffd873ffffde20}, + {0x9933f135, 0xffffd873ffffde21}, + {0x9933f136, 0xffffd873ffffde22}, + {0x9933f137, 0xffffd873ffffde23}, + {0x9933f138, 0xffffd873ffffde24}, + {0x9933f139, 0xffffd873ffffde25}, + {0x9933f230, 0xffffd873ffffde26}, + {0x9933f231, 0xffffd873ffffde27}, + {0x9933f232, 0xffffd873ffffde28}, + {0x9933f233, 0xffffd873ffffde29}, + {0x9933f234, 0xffffd873ffffde2a}, + {0x9933f235, 0xffffd873ffffde2b}, + {0x9933f236, 0xffffd873ffffde2c}, + {0x9933f237, 0xffffd873ffffde2d}, + {0x9933f238, 0xffffd873ffffde2e}, + {0x9933f239, 0xffffd873ffffde2f}, + {0x9933f330, 0xffffd873ffffde30}, + {0x9933f331, 0xffffd873ffffde31}, + {0x9933f332, 0xffffd873ffffde32}, + {0x9933f333, 0xffffd873ffffde33}, + {0x9933f334, 0xffffd873ffffde34}, + {0x9933f335, 0xffffd873ffffde35}, + {0x9933f336, 0xffffd873ffffde36}, + {0x9933f337, 0xffffd873ffffde37}, + {0x9933f338, 0xffffd873ffffde38}, + {0x9933f339, 0xffffd873ffffde39}, + {0x9933f430, 0xffffd873ffffde3a}, + {0x9933f431, 0xffffd873ffffde3b}, + {0x9933f432, 0xffffd873ffffde3c}, + {0x9933f433, 0xffffd873ffffde3d}, + {0x9933f434, 0xffffd873ffffde3e}, + {0x9933f435, 0xffffd873ffffde3f}, + {0x9933f436, 0xffffd873ffffde40}, + {0x9933f437, 0xffffd873ffffde41}, + {0x9933f438, 0xffffd873ffffde42}, + {0x9933f439, 0xffffd873ffffde43}, + {0x9933f530, 0xffffd873ffffde44}, + {0x9933f531, 0xffffd873ffffde45}, + {0x9933f532, 0xffffd873ffffde46}, + {0x9933f533, 0xffffd873ffffde47}, + {0x9933f534, 0xffffd873ffffde48}, + {0x9933f535, 0xffffd873ffffde49}, + {0x9933f536, 0xffffd873ffffde4a}, + {0x9933f537, 0xffffd873ffffde4b}, + {0x9933f538, 0xffffd873ffffde4c}, + {0x9933f539, 0xffffd873ffffde4d}, + {0x9933f630, 0xffffd873ffffde4e}, + {0x9933f631, 0xffffd873ffffde4f}, + {0x9933f632, 0xffffd873ffffde50}, + {0x9933f633, 0xffffd873ffffde51}, + {0x9933f634, 0xffffd873ffffde52}, + {0x9933f635, 0xffffd873ffffde53}, + {0x9933f636, 0xffffd873ffffde54}, + {0x9933f637, 0xffffd873ffffde55}, + {0x9933f638, 0xffffd873ffffde56}, + {0x9933f639, 0xffffd873ffffde57}, + {0x9933f730, 0xffffd873ffffde58}, + {0x9933f731, 0xffffd873ffffde59}, + {0x9933f732, 0xffffd873ffffde5a}, + {0x9933f733, 0xffffd873ffffde5b}, + {0x9933f734, 0xffffd873ffffde5c}, + {0x9933f735, 0xffffd873ffffde5d}, + {0x9933f736, 0xffffd873ffffde5e}, + {0x9933f737, 0xffffd873ffffde5f}, + {0x9933f738, 0xffffd873ffffde60}, + {0x9933f739, 0xffffd873ffffde61}, + {0x9933f830, 0xffffd873ffffde62}, + {0x9933f831, 0xffffd873ffffde63}, + {0x9933f832, 0xffffd873ffffde64}, + {0x9933f833, 0xffffd873ffffde65}, + {0x9933f834, 0xffffd873ffffde66}, + {0x9933f835, 0xffffd873ffffde67}, + {0x9933f836, 0xffffd873ffffde68}, + {0x9933f837, 0xffffd873ffffde69}, + {0x9933f838, 0xffffd873ffffde6a}, + {0x9933f839, 0xffffd873ffffde6b}, + {0x9933f930, 0xffffd873ffffde6c}, + {0x9933f931, 0xffffd873ffffde6d}, + {0x9933f932, 0xffffd873ffffde6e}, + {0x9933f933, 0xffffd873ffffde6f}, + {0x9933f934, 0xffffd873ffffde70}, + {0x9933f935, 0xffffd873ffffde71}, + {0x9933f936, 0xffffd873ffffde72}, + {0x9933f937, 0xffffd873ffffde73}, + {0x9933f938, 0xffffd873ffffde74}, + {0x9933f939, 0xffffd873ffffde75}, + {0x9933fa30, 0xffffd873ffffde76}, + {0x9933fa31, 0xffffd873ffffde77}, + {0x9933fa32, 0xffffd873ffffde78}, + {0x9933fa33, 0xffffd873ffffde79}, + {0x9933fa34, 0xffffd873ffffde7a}, + {0x9933fa35, 0xffffd873ffffde7b}, + {0x9933fa36, 0xffffd873ffffde7c}, + {0x9933fa37, 0xffffd873ffffde7d}, + {0x9933fa38, 0xffffd873ffffde7e}, + {0x9933fa39, 0xffffd873ffffde7f}, + {0x9933fb30, 0xffffd873ffffde80}, + {0x9933fb31, 0xffffd873ffffde81}, + {0x9933fb32, 0xffffd873ffffde82}, + {0x9933fb33, 0xffffd873ffffde83}, + {0x9933fb34, 0xffffd873ffffde84}, + {0x9933fb35, 0xffffd873ffffde85}, + {0x9933fb36, 0xffffd873ffffde86}, + {0x9933fb37, 0xffffd873ffffde87}, + {0x9933fb38, 0xffffd873ffffde88}, + {0x9933fb39, 0xffffd873ffffde89}, + {0x9933fc30, 0xffffd873ffffde8a}, + {0x9933fc31, 0xffffd873ffffde8b}, + {0x9933fc32, 0xffffd873ffffde8c}, + {0x9933fc33, 0xffffd873ffffde8d}, + {0x9933fc34, 0xffffd873ffffde8e}, + {0x9933fc35, 0xffffd873ffffde8f}, + {0x9933fc36, 0xffffd873ffffde90}, + {0x9933fc37, 0xffffd873ffffde91}, + {0x9933fc38, 0xffffd873ffffde92}, + {0x9933fc39, 0xffffd873ffffde93}, + {0x9933fd30, 0xffffd873ffffde94}, + {0x9933fd31, 0xffffd873ffffde95}, + {0x9933fd32, 0xffffd873ffffde96}, + {0x9933fd33, 0xffffd873ffffde97}, + {0x9933fd34, 0xffffd873ffffde98}, + {0x9933fd35, 0xffffd873ffffde99}, + {0x9933fd36, 0xffffd873ffffde9a}, + {0x9933fd37, 0xffffd873ffffde9b}, + {0x9933fd38, 0xffffd873ffffde9c}, + {0x9933fd39, 0xffffd873ffffde9d}, + {0x9933fe30, 0xffffd873ffffde9e}, + {0x9933fe31, 0xffffd873ffffde9f}, + {0x9933fe32, 0xffffd873ffffdea0}, + {0x9933fe33, 0xffffd873ffffdea1}, + {0x9933fe34, 0xffffd873ffffdea2}, + {0x9933fe35, 0xffffd873ffffdea3}, + {0x9933fe36, 0xffffd873ffffdea4}, + {0x9933fe37, 0xffffd873ffffdea5}, + {0x9933fe38, 0xffffd873ffffdea6}, + {0x9933fe39, 0xffffd873ffffdea7}, + {0x99348130, 0xffffd873ffffdea8}, + {0x99348131, 0xffffd873ffffdea9}, + {0x99348132, 0xffffd873ffffdeaa}, + {0x99348133, 0xffffd873ffffdeab}, + {0x99348134, 0xffffd873ffffdeac}, + {0x99348135, 0xffffd873ffffdead}, + {0x99348136, 0xffffd873ffffdeae}, + {0x99348137, 0xffffd873ffffdeaf}, + {0x99348138, 0xffffd873ffffdeb0}, + {0x99348139, 0xffffd873ffffdeb1}, + {0x99348230, 0xffffd873ffffdeb2}, + {0x99348231, 0xffffd873ffffdeb3}, + {0x99348232, 0xffffd873ffffdeb4}, + {0x99348233, 0xffffd873ffffdeb5}, + {0x99348234, 0xffffd873ffffdeb6}, + {0x99348235, 0xffffd873ffffdeb7}, + {0x99348236, 0xffffd873ffffdeb8}, + {0x99348237, 0xffffd873ffffdeb9}, + {0x99348238, 0xffffd873ffffdeba}, + {0x99348239, 0xffffd873ffffdebb}, + {0x99348330, 0xffffd873ffffdebc}, + {0x99348331, 0xffffd873ffffdebd}, + {0x99348332, 0xffffd873ffffdebe}, + {0x99348333, 0xffffd873ffffdebf}, + {0x99348334, 0xffffd873ffffdec0}, + {0x99348335, 0xffffd873ffffdec1}, + {0x99348336, 0xffffd873ffffdec2}, + {0x99348337, 0xffffd873ffffdec3}, + {0x99348338, 0xffffd873ffffdec4}, + {0x99348339, 0xffffd873ffffdec5}, + {0x99348430, 0xffffd873ffffdec6}, + {0x99348431, 0xffffd873ffffdec7}, + {0x99348432, 0xffffd873ffffdec8}, + {0x99348433, 0xffffd873ffffdec9}, + {0x99348434, 0xffffd873ffffdeca}, + {0x99348435, 0xffffd873ffffdecb}, + {0x99348436, 0xffffd873ffffdecc}, + {0x99348437, 0xffffd873ffffdecd}, + {0x99348438, 0xffffd873ffffdece}, + {0x99348439, 0xffffd873ffffdecf}, + {0x99348530, 0xffffd873ffffded0}, + {0x99348531, 0xffffd873ffffded1}, + {0x99348532, 0xffffd873ffffded2}, + {0x99348533, 0xffffd873ffffded3}, + {0x99348534, 0xffffd873ffffded4}, + {0x99348535, 0xffffd873ffffded5}, + {0x99348536, 0xffffd873ffffded6}, + {0x99348537, 0xffffd873ffffded7}, + {0x99348538, 0xffffd873ffffded8}, + {0x99348539, 0xffffd873ffffded9}, + {0x99348630, 0xffffd873ffffdeda}, + {0x99348631, 0xffffd873ffffdedb}, + {0x99348632, 0xffffd873ffffdedc}, + {0x99348633, 0xffffd873ffffdedd}, + {0x99348634, 0xffffd873ffffdede}, + {0x99348635, 0xffffd873ffffdedf}, + {0x99348636, 0xffffd873ffffdee0}, + {0x99348637, 0xffffd873ffffdee1}, + {0x99348638, 0xffffd873ffffdee2}, + {0x99348639, 0xffffd873ffffdee3}, + {0x99348730, 0xffffd873ffffdee4}, + {0x99348731, 0xffffd873ffffdee5}, + {0x99348732, 0xffffd873ffffdee6}, + {0x99348733, 0xffffd873ffffdee7}, + {0x99348734, 0xffffd873ffffdee8}, + {0x99348735, 0xffffd873ffffdee9}, + {0x99348736, 0xffffd873ffffdeea}, + {0x99348737, 0xffffd873ffffdeeb}, + {0x99348738, 0xffffd873ffffdeec}, + {0x99348739, 0xffffd873ffffdeed}, + {0x99348830, 0xffffd873ffffdeee}, + {0x99348831, 0xffffd873ffffdeef}, + {0x99348832, 0xffffd873ffffdef0}, + {0x99348833, 0xffffd873ffffdef1}, + {0x99348834, 0xffffd873ffffdef2}, + {0x99348835, 0xffffd873ffffdef3}, + {0x99348836, 0xffffd873ffffdef4}, + {0x99348837, 0xffffd873ffffdef5}, + {0x99348838, 0xffffd873ffffdef6}, + {0x99348839, 0xffffd873ffffdef7}, + {0x99348930, 0xffffd873ffffdef8}, + {0x99348931, 0xffffd873ffffdef9}, + {0x99348932, 0xffffd873ffffdefa}, + {0x99348933, 0xffffd873ffffdefb}, + {0x99348934, 0xffffd873ffffdefc}, + {0x99348935, 0xffffd873ffffdefd}, + {0x99348936, 0xffffd873ffffdefe}, + {0x99348937, 0xffffd873ffffdeff}, + {0x99348938, 0xffffd873ffffdf00}, + {0x99348939, 0xffffd873ffffdf01}, + {0x99348a30, 0xffffd873ffffdf02}, + {0x99348a31, 0xffffd873ffffdf03}, + {0x99348a32, 0xffffd873ffffdf04}, + {0x99348a33, 0xffffd873ffffdf05}, + {0x99348a34, 0xffffd873ffffdf06}, + {0x99348a35, 0xffffd873ffffdf07}, + {0x99348a36, 0xffffd873ffffdf08}, + {0x99348a37, 0xffffd873ffffdf09}, + {0x99348a38, 0xffffd873ffffdf0a}, + {0x99348a39, 0xffffd873ffffdf0b}, + {0x99348b30, 0xffffd873ffffdf0c}, + {0x99348b31, 0xffffd873ffffdf0d}, + {0x99348b32, 0xffffd873ffffdf0e}, + {0x99348b33, 0xffffd873ffffdf0f}, + {0x99348b34, 0xffffd873ffffdf10}, + {0x99348b35, 0xffffd873ffffdf11}, + {0x99348b36, 0xffffd873ffffdf12}, + {0x99348b37, 0xffffd873ffffdf13}, + {0x99348b38, 0xffffd873ffffdf14}, + {0x99348b39, 0xffffd873ffffdf15}, + {0x99348c30, 0xffffd873ffffdf16}, + {0x99348c31, 0xffffd873ffffdf17}, + {0x99348c32, 0xffffd873ffffdf18}, + {0x99348c33, 0xffffd873ffffdf19}, + {0x99348c34, 0xffffd873ffffdf1a}, + {0x99348c35, 0xffffd873ffffdf1b}, + {0x99348c36, 0xffffd873ffffdf1c}, + {0x99348c37, 0xffffd873ffffdf1d}, + {0x99348c38, 0xffffd873ffffdf1e}, + {0x99348c39, 0xffffd873ffffdf1f}, + {0x99348d30, 0xffffd873ffffdf20}, + {0x99348d31, 0xffffd873ffffdf21}, + {0x99348d32, 0xffffd873ffffdf22}, + {0x99348d33, 0xffffd873ffffdf23}, + {0x99348d34, 0xffffd873ffffdf24}, + {0x99348d35, 0xffffd873ffffdf25}, + {0x99348d36, 0xffffd873ffffdf26}, + {0x99348d37, 0xffffd873ffffdf27}, + {0x99348d38, 0xffffd873ffffdf28}, + {0x99348d39, 0xffffd873ffffdf29}, + {0x99348e30, 0xffffd873ffffdf2a}, + {0x99348e31, 0xffffd873ffffdf2b}, + {0x99348e32, 0xffffd873ffffdf2c}, + {0x99348e33, 0xffffd873ffffdf2d}, + {0x99348e34, 0xffffd873ffffdf2e}, + {0x99348e35, 0xffffd873ffffdf2f}, + {0x99348e36, 0xffffd873ffffdf30}, + {0x99348e37, 0xffffd873ffffdf31}, + {0x99348e38, 0xffffd873ffffdf32}, + {0x99348e39, 0xffffd873ffffdf33}, + {0x99348f30, 0xffffd873ffffdf34}, + {0x99348f31, 0xffffd873ffffdf35}, + {0x99348f32, 0xffffd873ffffdf36}, + {0x99348f33, 0xffffd873ffffdf37}, + {0x99348f34, 0xffffd873ffffdf38}, + {0x99348f35, 0xffffd873ffffdf39}, + {0x99348f36, 0xffffd873ffffdf3a}, + {0x99348f37, 0xffffd873ffffdf3b}, + {0x99348f38, 0xffffd873ffffdf3c}, + {0x99348f39, 0xffffd873ffffdf3d}, + {0x99349030, 0xffffd873ffffdf3e}, + {0x99349031, 0xffffd873ffffdf3f}, + {0x99349032, 0xffffd873ffffdf40}, + {0x99349033, 0xffffd873ffffdf41}, + {0x99349034, 0xffffd873ffffdf42}, + {0x99349035, 0xffffd873ffffdf43}, + {0x99349036, 0xffffd873ffffdf44}, + {0x99349037, 0xffffd873ffffdf45}, + {0x99349038, 0xffffd873ffffdf46}, + {0x99349039, 0xffffd873ffffdf47}, + {0x99349130, 0xffffd873ffffdf48}, + {0x99349131, 0xffffd873ffffdf49}, + {0x99349132, 0xffffd873ffffdf4a}, + {0x99349133, 0xffffd873ffffdf4b}, + {0x99349134, 0xffffd873ffffdf4c}, + {0x99349135, 0xffffd873ffffdf4d}, + {0x99349136, 0xffffd873ffffdf4e}, + {0x99349137, 0xffffd873ffffdf4f}, + {0x99349138, 0xffffd873ffffdf50}, + {0x99349139, 0xffffd873ffffdf51}, + {0x99349230, 0xffffd873ffffdf52}, + {0x99349231, 0xffffd873ffffdf53}, + {0x99349232, 0xffffd873ffffdf54}, + {0x99349233, 0xffffd873ffffdf55}, + {0x99349234, 0xffffd873ffffdf56}, + {0x99349235, 0xffffd873ffffdf57}, + {0x99349236, 0xffffd873ffffdf58}, + {0x99349237, 0xffffd873ffffdf59}, + {0x99349238, 0xffffd873ffffdf5a}, + {0x99349239, 0xffffd873ffffdf5b}, + {0x99349330, 0xffffd873ffffdf5c}, + {0x99349331, 0xffffd873ffffdf5d}, + {0x99349332, 0xffffd873ffffdf5e}, + {0x99349333, 0xffffd873ffffdf5f}, + {0x99349334, 0xffffd873ffffdf60}, + {0x99349335, 0xffffd873ffffdf61}, + {0x99349336, 0xffffd873ffffdf62}, + {0x99349337, 0xffffd873ffffdf63}, + {0x99349338, 0xffffd873ffffdf64}, + {0x99349339, 0xffffd873ffffdf65}, + {0x99349430, 0xffffd873ffffdf66}, + {0x99349431, 0xffffd873ffffdf67}, + {0x99349432, 0xffffd873ffffdf68}, + {0x99349433, 0xffffd873ffffdf69}, + {0x99349434, 0xffffd873ffffdf6a}, + {0x99349435, 0xffffd873ffffdf6b}, + {0x99349436, 0xffffd873ffffdf6c}, + {0x99349437, 0xffffd873ffffdf6d}, + {0x99349438, 0xffffd873ffffdf6e}, + {0x99349439, 0xffffd873ffffdf6f}, + {0x99349530, 0xffffd873ffffdf70}, + {0x99349531, 0xffffd873ffffdf71}, + {0x99349532, 0xffffd873ffffdf72}, + {0x99349533, 0xffffd873ffffdf73}, + {0x99349534, 0xffffd873ffffdf74}, + {0x99349535, 0xffffd873ffffdf75}, + {0x99349536, 0xffffd873ffffdf76}, + {0x99349537, 0xffffd873ffffdf77}, + {0x99349538, 0xffffd873ffffdf78}, + {0x99349539, 0xffffd873ffffdf79}, + {0x99349630, 0xffffd873ffffdf7a}, + {0x99349631, 0xffffd873ffffdf7b}, + {0x99349632, 0xffffd873ffffdf7c}, + {0x99349633, 0xffffd873ffffdf7d}, + {0x99349634, 0xffffd873ffffdf7e}, + {0x99349635, 0xffffd873ffffdf7f}, + {0x99349636, 0xffffd873ffffdf80}, + {0x99349637, 0xffffd873ffffdf81}, + {0x99349638, 0xffffd873ffffdf82}, + {0x99349639, 0xffffd873ffffdf83}, + {0x99349730, 0xffffd873ffffdf84}, + {0x99349731, 0xffffd873ffffdf85}, + {0x99349732, 0xffffd873ffffdf86}, + {0x99349733, 0xffffd873ffffdf87}, + {0x99349734, 0xffffd873ffffdf88}, + {0x99349735, 0xffffd873ffffdf89}, + {0x99349736, 0xffffd873ffffdf8a}, + {0x99349737, 0xffffd873ffffdf8b}, + {0x99349738, 0xffffd873ffffdf8c}, + {0x99349739, 0xffffd873ffffdf8d}, + {0x99349830, 0xffffd873ffffdf8e}, + {0x99349831, 0xffffd873ffffdf8f}, + {0x99349832, 0xffffd873ffffdf90}, + {0x99349833, 0xffffd873ffffdf91}, + {0x99349834, 0xffffd873ffffdf92}, + {0x99349835, 0xffffd873ffffdf93}, + {0x99349836, 0xffffd873ffffdf94}, + {0x99349837, 0xffffd873ffffdf95}, + {0x99349838, 0xffffd873ffffdf96}, + {0x99349839, 0xffffd873ffffdf97}, + {0x99349930, 0xffffd873ffffdf98}, + {0x99349931, 0xffffd873ffffdf99}, + {0x99349932, 0xffffd873ffffdf9a}, + {0x99349933, 0xffffd873ffffdf9b}, + {0x99349934, 0xffffd873ffffdf9c}, + {0x99349935, 0xffffd873ffffdf9d}, + {0x99349936, 0xffffd873ffffdf9e}, + {0x99349937, 0xffffd873ffffdf9f}, + {0x99349938, 0xffffd873ffffdfa0}, + {0x99349939, 0xffffd873ffffdfa1}, + {0x99349a30, 0xffffd873ffffdfa2}, + {0x99349a31, 0xffffd873ffffdfa3}, + {0x99349a32, 0xffffd873ffffdfa4}, + {0x99349a33, 0xffffd873ffffdfa5}, + {0x99349a34, 0xffffd873ffffdfa6}, + {0x99349a35, 0xffffd873ffffdfa7}, + {0x99349a36, 0xffffd873ffffdfa8}, + {0x99349a37, 0xffffd873ffffdfa9}, + {0x99349a38, 0xffffd873ffffdfaa}, + {0x99349a39, 0xffffd873ffffdfab}, + {0x99349b30, 0xffffd873ffffdfac}, + {0x99349b31, 0xffffd873ffffdfad}, + {0x99349b32, 0xffffd873ffffdfae}, + {0x99349b33, 0xffffd873ffffdfaf}, + {0x99349b34, 0xffffd873ffffdfb0}, + {0x99349b35, 0xffffd873ffffdfb1}, + {0x99349b36, 0xffffd873ffffdfb2}, + {0x99349b37, 0xffffd873ffffdfb3}, + {0x99349b38, 0xffffd873ffffdfb4}, + {0x99349b39, 0xffffd873ffffdfb5}, + {0x99349c30, 0xffffd873ffffdfb6}, + {0x99349c31, 0xffffd873ffffdfb7}, + {0x99349c32, 0xffffd873ffffdfb8}, + {0x99349c33, 0xffffd873ffffdfb9}, + {0x99349c34, 0xffffd873ffffdfba}, + {0x99349c35, 0xffffd873ffffdfbb}, + {0x99349c36, 0xffffd873ffffdfbc}, + {0x99349c37, 0xffffd873ffffdfbd}, + {0x99349c38, 0xffffd873ffffdfbe}, + {0x99349c39, 0xffffd873ffffdfbf}, + {0x99349d30, 0xffffd873ffffdfc0}, + {0x99349d31, 0xffffd873ffffdfc1}, + {0x99349d32, 0xffffd873ffffdfc2}, + {0x99349d33, 0xffffd873ffffdfc3}, + {0x99349d34, 0xffffd873ffffdfc4}, + {0x99349d35, 0xffffd873ffffdfc5}, + {0x99349d36, 0xffffd873ffffdfc6}, + {0x99349d37, 0xffffd873ffffdfc7}, + {0x99349d38, 0xffffd873ffffdfc8}, + {0x99349d39, 0xffffd873ffffdfc9}, + {0x99349e30, 0xffffd873ffffdfca}, + {0x99349e31, 0xffffd873ffffdfcb}, + {0x99349e32, 0xffffd873ffffdfcc}, + {0x99349e33, 0xffffd873ffffdfcd}, + {0x99349e34, 0xffffd873ffffdfce}, + {0x99349e35, 0xffffd873ffffdfcf}, + {0x99349e36, 0xffffd873ffffdfd0}, + {0x99349e37, 0xffffd873ffffdfd1}, + {0x99349e38, 0xffffd873ffffdfd2}, + {0x99349e39, 0xffffd873ffffdfd3}, + {0x99349f30, 0xffffd873ffffdfd4}, + {0x99349f31, 0xffffd873ffffdfd5}, + {0x99349f32, 0xffffd873ffffdfd6}, + {0x99349f33, 0xffffd873ffffdfd7}, + {0x99349f34, 0xffffd873ffffdfd8}, + {0x99349f35, 0xffffd873ffffdfd9}, + {0x99349f36, 0xffffd873ffffdfda}, + {0x99349f37, 0xffffd873ffffdfdb}, + {0x99349f38, 0xffffd873ffffdfdc}, + {0x99349f39, 0xffffd873ffffdfdd}, + {0x9934a030, 0xffffd873ffffdfde}, + {0x9934a031, 0xffffd873ffffdfdf}, + {0x9934a032, 0xffffd873ffffdfe0}, + {0x9934a033, 0xffffd873ffffdfe1}, + {0x9934a034, 0xffffd873ffffdfe2}, + {0x9934a035, 0xffffd873ffffdfe3}, + {0x9934a036, 0xffffd873ffffdfe4}, + {0x9934a037, 0xffffd873ffffdfe5}, + {0x9934a038, 0xffffd873ffffdfe6}, + {0x9934a039, 0xffffd873ffffdfe7}, + {0x9934a130, 0xffffd873ffffdfe8}, + {0x9934a131, 0xffffd873ffffdfe9}, + {0x9934a132, 0xffffd873ffffdfea}, + {0x9934a133, 0xffffd873ffffdfeb}, + {0x9934a134, 0xffffd873ffffdfec}, + {0x9934a135, 0xffffd873ffffdfed}, + {0x9934a136, 0xffffd873ffffdfee}, + {0x9934a137, 0xffffd873ffffdfef}, + {0x9934a138, 0xffffd873ffffdff0}, + {0x9934a139, 0xffffd873ffffdff1}, + {0x9934a230, 0xffffd873ffffdff2}, + {0x9934a231, 0xffffd873ffffdff3}, + {0x9934a232, 0xffffd873ffffdff4}, + {0x9934a233, 0xffffd873ffffdff5}, + {0x9934a234, 0xffffd873ffffdff6}, + {0x9934a235, 0xffffd873ffffdff7}, + {0x9934a236, 0xffffd873ffffdff8}, + {0x9934a237, 0xffffd873ffffdff9}, + {0x9934a238, 0xffffd873ffffdffa}, + {0x9934a239, 0xffffd873ffffdffb}, + {0x9934a330, 0xffffd873ffffdffc}, + {0x9934a331, 0xffffd873ffffdffd}, + {0x9934a332, 0xffffd873ffffdffe}, + {0x9934a333, 0xffffd873ffffdfff}, + {0x9934a334, 0xffffd874ffffdc00}, + {0x9934a335, 0xffffd874ffffdc01}, + {0x9934a336, 0xffffd874ffffdc02}, + {0x9934a337, 0xffffd874ffffdc03}, + {0x9934a338, 0xffffd874ffffdc04}, + {0x9934a339, 0xffffd874ffffdc05}, + {0x9934a430, 0xffffd874ffffdc06}, + {0x9934a431, 0xffffd874ffffdc07}, + {0x9934a432, 0xffffd874ffffdc08}, + {0x9934a433, 0xffffd874ffffdc09}, + {0x9934a434, 0xffffd874ffffdc0a}, + {0x9934a435, 0xffffd874ffffdc0b}, + {0x9934a436, 0xffffd874ffffdc0c}, + {0x9934a437, 0xffffd874ffffdc0d}, + {0x9934a438, 0xffffd874ffffdc0e}, + {0x9934a439, 0xffffd874ffffdc0f}, + {0x9934a530, 0xffffd874ffffdc10}, + {0x9934a531, 0xffffd874ffffdc11}, + {0x9934a532, 0xffffd874ffffdc12}, + {0x9934a533, 0xffffd874ffffdc13}, + {0x9934a534, 0xffffd874ffffdc14}, + {0x9934a535, 0xffffd874ffffdc15}, + {0x9934a536, 0xffffd874ffffdc16}, + {0x9934a537, 0xffffd874ffffdc17}, + {0x9934a538, 0xffffd874ffffdc18}, + {0x9934a539, 0xffffd874ffffdc19}, + {0x9934a630, 0xffffd874ffffdc1a}, + {0x9934a631, 0xffffd874ffffdc1b}, + {0x9934a632, 0xffffd874ffffdc1c}, + {0x9934a633, 0xffffd874ffffdc1d}, + {0x9934a634, 0xffffd874ffffdc1e}, + {0x9934a635, 0xffffd874ffffdc1f}, + {0x9934a636, 0xffffd874ffffdc20}, + {0x9934a637, 0xffffd874ffffdc21}, + {0x9934a638, 0xffffd874ffffdc22}, + {0x9934a639, 0xffffd874ffffdc23}, + {0x9934a730, 0xffffd874ffffdc24}, + {0x9934a731, 0xffffd874ffffdc25}, + {0x9934a732, 0xffffd874ffffdc26}, + {0x9934a733, 0xffffd874ffffdc27}, + {0x9934a734, 0xffffd874ffffdc28}, + {0x9934a735, 0xffffd874ffffdc29}, + {0x9934a736, 0xffffd874ffffdc2a}, + {0x9934a737, 0xffffd874ffffdc2b}, + {0x9934a738, 0xffffd874ffffdc2c}, + {0x9934a739, 0xffffd874ffffdc2d}, + {0x9934a830, 0xffffd874ffffdc2e}, + {0x9934a831, 0xffffd874ffffdc2f}, + {0x9934a832, 0xffffd874ffffdc30}, + {0x9934a833, 0xffffd874ffffdc31}, + {0x9934a834, 0xffffd874ffffdc32}, + {0x9934a835, 0xffffd874ffffdc33}, + {0x9934a836, 0xffffd874ffffdc34}, + {0x9934a837, 0xffffd874ffffdc35}, + {0x9934a838, 0xffffd874ffffdc36}, + {0x9934a839, 0xffffd874ffffdc37}, + {0x9934a930, 0xffffd874ffffdc38}, + {0x9934a931, 0xffffd874ffffdc39}, + {0x9934a932, 0xffffd874ffffdc3a}, + {0x9934a933, 0xffffd874ffffdc3b}, + {0x9934a934, 0xffffd874ffffdc3c}, + {0x9934a935, 0xffffd874ffffdc3d}, + {0x9934a936, 0xffffd874ffffdc3e}, + {0x9934a937, 0xffffd874ffffdc3f}, + {0x9934a938, 0xffffd874ffffdc40}, + {0x9934a939, 0xffffd874ffffdc41}, + {0x9934aa30, 0xffffd874ffffdc42}, + {0x9934aa31, 0xffffd874ffffdc43}, + {0x9934aa32, 0xffffd874ffffdc44}, + {0x9934aa33, 0xffffd874ffffdc45}, + {0x9934aa34, 0xffffd874ffffdc46}, + {0x9934aa35, 0xffffd874ffffdc47}, + {0x9934aa36, 0xffffd874ffffdc48}, + {0x9934aa37, 0xffffd874ffffdc49}, + {0x9934aa38, 0xffffd874ffffdc4a}, + {0x9934aa39, 0xffffd874ffffdc4b}, + {0x9934ab30, 0xffffd874ffffdc4c}, + {0x9934ab31, 0xffffd874ffffdc4d}, + {0x9934ab32, 0xffffd874ffffdc4e}, + {0x9934ab33, 0xffffd874ffffdc4f}, + {0x9934ab34, 0xffffd874ffffdc50}, + {0x9934ab35, 0xffffd874ffffdc51}, + {0x9934ab36, 0xffffd874ffffdc52}, + {0x9934ab37, 0xffffd874ffffdc53}, + {0x9934ab38, 0xffffd874ffffdc54}, + {0x9934ab39, 0xffffd874ffffdc55}, + {0x9934ac30, 0xffffd874ffffdc56}, + {0x9934ac31, 0xffffd874ffffdc57}, + {0x9934ac32, 0xffffd874ffffdc58}, + {0x9934ac33, 0xffffd874ffffdc59}, + {0x9934ac34, 0xffffd874ffffdc5a}, + {0x9934ac35, 0xffffd874ffffdc5b}, + {0x9934ac36, 0xffffd874ffffdc5c}, + {0x9934ac37, 0xffffd874ffffdc5d}, + {0x9934ac38, 0xffffd874ffffdc5e}, + {0x9934ac39, 0xffffd874ffffdc5f}, + {0x9934ad30, 0xffffd874ffffdc60}, + {0x9934ad31, 0xffffd874ffffdc61}, + {0x9934ad32, 0xffffd874ffffdc62}, + {0x9934ad33, 0xffffd874ffffdc63}, + {0x9934ad34, 0xffffd874ffffdc64}, + {0x9934ad35, 0xffffd874ffffdc65}, + {0x9934ad36, 0xffffd874ffffdc66}, + {0x9934ad37, 0xffffd874ffffdc67}, + {0x9934ad38, 0xffffd874ffffdc68}, + {0x9934ad39, 0xffffd874ffffdc69}, + {0x9934ae30, 0xffffd874ffffdc6a}, + {0x9934ae31, 0xffffd874ffffdc6b}, + {0x9934ae32, 0xffffd874ffffdc6c}, + {0x9934ae33, 0xffffd874ffffdc6d}, + {0x9934ae34, 0xffffd874ffffdc6e}, + {0x9934ae35, 0xffffd874ffffdc6f}, + {0x9934ae36, 0xffffd874ffffdc70}, + {0x9934ae37, 0xffffd874ffffdc71}, + {0x9934ae38, 0xffffd874ffffdc72}, + {0x9934ae39, 0xffffd874ffffdc73}, + {0x9934af30, 0xffffd874ffffdc74}, + {0x9934af31, 0xffffd874ffffdc75}, + {0x9934af32, 0xffffd874ffffdc76}, + {0x9934af33, 0xffffd874ffffdc77}, + {0x9934af34, 0xffffd874ffffdc78}, + {0x9934af35, 0xffffd874ffffdc79}, + {0x9934af36, 0xffffd874ffffdc7a}, + {0x9934af37, 0xffffd874ffffdc7b}, + {0x9934af38, 0xffffd874ffffdc7c}, + {0x9934af39, 0xffffd874ffffdc7d}, + {0x9934b030, 0xffffd874ffffdc7e}, + {0x9934b031, 0xffffd874ffffdc7f}, + {0x9934b032, 0xffffd874ffffdc80}, + {0x9934b033, 0xffffd874ffffdc81}, + {0x9934b034, 0xffffd874ffffdc82}, + {0x9934b035, 0xffffd874ffffdc83}, + {0x9934b036, 0xffffd874ffffdc84}, + {0x9934b037, 0xffffd874ffffdc85}, + {0x9934b038, 0xffffd874ffffdc86}, + {0x9934b039, 0xffffd874ffffdc87}, + {0x9934b130, 0xffffd874ffffdc88}, + {0x9934b131, 0xffffd874ffffdc89}, + {0x9934b132, 0xffffd874ffffdc8a}, + {0x9934b133, 0xffffd874ffffdc8b}, + {0x9934b134, 0xffffd874ffffdc8c}, + {0x9934b135, 0xffffd874ffffdc8d}, + {0x9934b136, 0xffffd874ffffdc8e}, + {0x9934b137, 0xffffd874ffffdc8f}, + {0x9934b138, 0xffffd874ffffdc90}, + {0x9934b139, 0xffffd874ffffdc91}, + {0x9934b230, 0xffffd874ffffdc92}, + {0x9934b231, 0xffffd874ffffdc93}, + {0x9934b232, 0xffffd874ffffdc94}, + {0x9934b233, 0xffffd874ffffdc95}, + {0x9934b234, 0xffffd874ffffdc96}, + {0x9934b235, 0xffffd874ffffdc97}, + {0x9934b236, 0xffffd874ffffdc98}, + {0x9934b237, 0xffffd874ffffdc99}, + {0x9934b238, 0xffffd874ffffdc9a}, + {0x9934b239, 0xffffd874ffffdc9b}, + {0x9934b330, 0xffffd874ffffdc9c}, + {0x9934b331, 0xffffd874ffffdc9d}, + {0x9934b332, 0xffffd874ffffdc9e}, + {0x9934b333, 0xffffd874ffffdc9f}, + {0x9934b334, 0xffffd874ffffdca0}, + {0x9934b335, 0xffffd874ffffdca1}, + {0x9934b336, 0xffffd874ffffdca2}, + {0x9934b337, 0xffffd874ffffdca3}, + {0x9934b338, 0xffffd874ffffdca4}, + {0x9934b339, 0xffffd874ffffdca5}, + {0x9934b430, 0xffffd874ffffdca6}, + {0x9934b431, 0xffffd874ffffdca7}, + {0x9934b432, 0xffffd874ffffdca8}, + {0x9934b433, 0xffffd874ffffdca9}, + {0x9934b434, 0xffffd874ffffdcaa}, + {0x9934b435, 0xffffd874ffffdcab}, + {0x9934b436, 0xffffd874ffffdcac}, + {0x9934b437, 0xffffd874ffffdcad}, + {0x9934b438, 0xffffd874ffffdcae}, + {0x9934b439, 0xffffd874ffffdcaf}, + {0x9934b530, 0xffffd874ffffdcb0}, + {0x9934b531, 0xffffd874ffffdcb1}, + {0x9934b532, 0xffffd874ffffdcb2}, + {0x9934b533, 0xffffd874ffffdcb3}, + {0x9934b534, 0xffffd874ffffdcb4}, + {0x9934b535, 0xffffd874ffffdcb5}, + {0x9934b536, 0xffffd874ffffdcb6}, + {0x9934b537, 0xffffd874ffffdcb7}, + {0x9934b538, 0xffffd874ffffdcb8}, + {0x9934b539, 0xffffd874ffffdcb9}, + {0x9934b630, 0xffffd874ffffdcba}, + {0x9934b631, 0xffffd874ffffdcbb}, + {0x9934b632, 0xffffd874ffffdcbc}, + {0x9934b633, 0xffffd874ffffdcbd}, + {0x9934b634, 0xffffd874ffffdcbe}, + {0x9934b635, 0xffffd874ffffdcbf}, + {0x9934b636, 0xffffd874ffffdcc0}, + {0x9934b637, 0xffffd874ffffdcc1}, + {0x9934b638, 0xffffd874ffffdcc2}, + {0x9934b639, 0xffffd874ffffdcc3}, + {0x9934b730, 0xffffd874ffffdcc4}, + {0x9934b731, 0xffffd874ffffdcc5}, + {0x9934b732, 0xffffd874ffffdcc6}, + {0x9934b733, 0xffffd874ffffdcc7}, + {0x9934b734, 0xffffd874ffffdcc8}, + {0x9934b735, 0xffffd874ffffdcc9}, + {0x9934b736, 0xffffd874ffffdcca}, + {0x9934b737, 0xffffd874ffffdccb}, + {0x9934b738, 0xffffd874ffffdccc}, + {0x9934b739, 0xffffd874ffffdccd}, + {0x9934b830, 0xffffd874ffffdcce}, + {0x9934b831, 0xffffd874ffffdccf}, + {0x9934b832, 0xffffd874ffffdcd0}, + {0x9934b833, 0xffffd874ffffdcd1}, + {0x9934b834, 0xffffd874ffffdcd2}, + {0x9934b835, 0xffffd874ffffdcd3}, + {0x9934b836, 0xffffd874ffffdcd4}, + {0x9934b837, 0xffffd874ffffdcd5}, + {0x9934b838, 0xffffd874ffffdcd6}, + {0x9934b839, 0xffffd874ffffdcd7}, + {0x9934b930, 0xffffd874ffffdcd8}, + {0x9934b931, 0xffffd874ffffdcd9}, + {0x9934b932, 0xffffd874ffffdcda}, + {0x9934b933, 0xffffd874ffffdcdb}, + {0x9934b934, 0xffffd874ffffdcdc}, + {0x9934b935, 0xffffd874ffffdcdd}, + {0x9934b936, 0xffffd874ffffdcde}, + {0x9934b937, 0xffffd874ffffdcdf}, + {0x9934b938, 0xffffd874ffffdce0}, + {0x9934b939, 0xffffd874ffffdce1}, + {0x9934ba30, 0xffffd874ffffdce2}, + {0x9934ba31, 0xffffd874ffffdce3}, + {0x9934ba32, 0xffffd874ffffdce4}, + {0x9934ba33, 0xffffd874ffffdce5}, + {0x9934ba34, 0xffffd874ffffdce6}, + {0x9934ba35, 0xffffd874ffffdce7}, + {0x9934ba36, 0xffffd874ffffdce8}, + {0x9934ba37, 0xffffd874ffffdce9}, + {0x9934ba38, 0xffffd874ffffdcea}, + {0x9934ba39, 0xffffd874ffffdceb}, + {0x9934bb30, 0xffffd874ffffdcec}, + {0x9934bb31, 0xffffd874ffffdced}, + {0x9934bb32, 0xffffd874ffffdcee}, + {0x9934bb33, 0xffffd874ffffdcef}, + {0x9934bb34, 0xffffd874ffffdcf0}, + {0x9934bb35, 0xffffd874ffffdcf1}, + {0x9934bb36, 0xffffd874ffffdcf2}, + {0x9934bb37, 0xffffd874ffffdcf3}, + {0x9934bb38, 0xffffd874ffffdcf4}, + {0x9934bb39, 0xffffd874ffffdcf5}, + {0x9934bc30, 0xffffd874ffffdcf6}, + {0x9934bc31, 0xffffd874ffffdcf7}, + {0x9934bc32, 0xffffd874ffffdcf8}, + {0x9934bc33, 0xffffd874ffffdcf9}, + {0x9934bc34, 0xffffd874ffffdcfa}, + {0x9934bc35, 0xffffd874ffffdcfb}, + {0x9934bc36, 0xffffd874ffffdcfc}, + {0x9934bc37, 0xffffd874ffffdcfd}, + {0x9934bc38, 0xffffd874ffffdcfe}, + {0x9934bc39, 0xffffd874ffffdcff}, + {0x9934bd30, 0xffffd874ffffdd00}, + {0x9934bd31, 0xffffd874ffffdd01}, + {0x9934bd32, 0xffffd874ffffdd02}, + {0x9934bd33, 0xffffd874ffffdd03}, + {0x9934bd34, 0xffffd874ffffdd04}, + {0x9934bd35, 0xffffd874ffffdd05}, + {0x9934bd36, 0xffffd874ffffdd06}, + {0x9934bd37, 0xffffd874ffffdd07}, + {0x9934bd38, 0xffffd874ffffdd08}, + {0x9934bd39, 0xffffd874ffffdd09}, + {0x9934be30, 0xffffd874ffffdd0a}, + {0x9934be31, 0xffffd874ffffdd0b}, + {0x9934be32, 0xffffd874ffffdd0c}, + {0x9934be33, 0xffffd874ffffdd0d}, + {0x9934be34, 0xffffd874ffffdd0e}, + {0x9934be35, 0xffffd874ffffdd0f}, + {0x9934be36, 0xffffd874ffffdd10}, + {0x9934be37, 0xffffd874ffffdd11}, + {0x9934be38, 0xffffd874ffffdd12}, + {0x9934be39, 0xffffd874ffffdd13}, + {0x9934bf30, 0xffffd874ffffdd14}, + {0x9934bf31, 0xffffd874ffffdd15}, + {0x9934bf32, 0xffffd874ffffdd16}, + {0x9934bf33, 0xffffd874ffffdd17}, + {0x9934bf34, 0xffffd874ffffdd18}, + {0x9934bf35, 0xffffd874ffffdd19}, + {0x9934bf36, 0xffffd874ffffdd1a}, + {0x9934bf37, 0xffffd874ffffdd1b}, + {0x9934bf38, 0xffffd874ffffdd1c}, + {0x9934bf39, 0xffffd874ffffdd1d}, + {0x9934c030, 0xffffd874ffffdd1e}, + {0x9934c031, 0xffffd874ffffdd1f}, + {0x9934c032, 0xffffd874ffffdd20}, + {0x9934c033, 0xffffd874ffffdd21}, + {0x9934c034, 0xffffd874ffffdd22}, + {0x9934c035, 0xffffd874ffffdd23}, + {0x9934c036, 0xffffd874ffffdd24}, + {0x9934c037, 0xffffd874ffffdd25}, + {0x9934c038, 0xffffd874ffffdd26}, + {0x9934c039, 0xffffd874ffffdd27}, + {0x9934c130, 0xffffd874ffffdd28}, + {0x9934c131, 0xffffd874ffffdd29}, + {0x9934c132, 0xffffd874ffffdd2a}, + {0x9934c133, 0xffffd874ffffdd2b}, + {0x9934c134, 0xffffd874ffffdd2c}, + {0x9934c135, 0xffffd874ffffdd2d}, + {0x9934c136, 0xffffd874ffffdd2e}, + {0x9934c137, 0xffffd874ffffdd2f}, + {0x9934c138, 0xffffd874ffffdd30}, + {0x9934c139, 0xffffd874ffffdd31}, + {0x9934c230, 0xffffd874ffffdd32}, + {0x9934c231, 0xffffd874ffffdd33}, + {0x9934c232, 0xffffd874ffffdd34}, + {0x9934c233, 0xffffd874ffffdd35}, + {0x9934c234, 0xffffd874ffffdd36}, + {0x9934c235, 0xffffd874ffffdd37}, + {0x9934c236, 0xffffd874ffffdd38}, + {0x9934c237, 0xffffd874ffffdd39}, + {0x9934c238, 0xffffd874ffffdd3a}, + {0x9934c239, 0xffffd874ffffdd3b}, + {0x9934c330, 0xffffd874ffffdd3c}, + {0x9934c331, 0xffffd874ffffdd3d}, + {0x9934c332, 0xffffd874ffffdd3e}, + {0x9934c333, 0xffffd874ffffdd3f}, + {0x9934c334, 0xffffd874ffffdd40}, + {0x9934c335, 0xffffd874ffffdd41}, + {0x9934c336, 0xffffd874ffffdd42}, + {0x9934c337, 0xffffd874ffffdd43}, + {0x9934c338, 0xffffd874ffffdd44}, + {0x9934c339, 0xffffd874ffffdd45}, + {0x9934c430, 0xffffd874ffffdd46}, + {0x9934c431, 0xffffd874ffffdd47}, + {0x9934c432, 0xffffd874ffffdd48}, + {0x9934c433, 0xffffd874ffffdd49}, + {0x9934c434, 0xffffd874ffffdd4a}, + {0x9934c435, 0xffffd874ffffdd4b}, + {0x9934c436, 0xffffd874ffffdd4c}, + {0x9934c437, 0xffffd874ffffdd4d}, + {0x9934c438, 0xffffd874ffffdd4e}, + {0x9934c439, 0xffffd874ffffdd4f}, + {0x9934c530, 0xffffd874ffffdd50}, + {0x9934c531, 0xffffd874ffffdd51}, + {0x9934c532, 0xffffd874ffffdd52}, + {0x9934c533, 0xffffd874ffffdd53}, + {0x9934c534, 0xffffd874ffffdd54}, + {0x9934c535, 0xffffd874ffffdd55}, + {0x9934c536, 0xffffd874ffffdd56}, + {0x9934c537, 0xffffd874ffffdd57}, + {0x9934c538, 0xffffd874ffffdd58}, + {0x9934c539, 0xffffd874ffffdd59}, + {0x9934c630, 0xffffd874ffffdd5a}, + {0x9934c631, 0xffffd874ffffdd5b}, + {0x9934c632, 0xffffd874ffffdd5c}, + {0x9934c633, 0xffffd874ffffdd5d}, + {0x9934c634, 0xffffd874ffffdd5e}, + {0x9934c635, 0xffffd874ffffdd5f}, + {0x9934c636, 0xffffd874ffffdd60}, + {0x9934c637, 0xffffd874ffffdd61}, + {0x9934c638, 0xffffd874ffffdd62}, + {0x9934c639, 0xffffd874ffffdd63}, + {0x9934c730, 0xffffd874ffffdd64}, + {0x9934c731, 0xffffd874ffffdd65}, + {0x9934c732, 0xffffd874ffffdd66}, + {0x9934c733, 0xffffd874ffffdd67}, + {0x9934c734, 0xffffd874ffffdd68}, + {0x9934c735, 0xffffd874ffffdd69}, + {0x9934c736, 0xffffd874ffffdd6a}, + {0x9934c737, 0xffffd874ffffdd6b}, + {0x9934c738, 0xffffd874ffffdd6c}, + {0x9934c739, 0xffffd874ffffdd6d}, + {0x9934c830, 0xffffd874ffffdd6e}, + {0x9934c831, 0xffffd874ffffdd6f}, + {0x9934c832, 0xffffd874ffffdd70}, + {0x9934c833, 0xffffd874ffffdd71}, + {0x9934c834, 0xffffd874ffffdd72}, + {0x9934c835, 0xffffd874ffffdd73}, + {0x9934c836, 0xffffd874ffffdd74}, + {0x9934c837, 0xffffd874ffffdd75}, + {0x9934c838, 0xffffd874ffffdd76}, + {0x9934c839, 0xffffd874ffffdd77}, + {0x9934c930, 0xffffd874ffffdd78}, + {0x9934c931, 0xffffd874ffffdd79}, + {0x9934c932, 0xffffd874ffffdd7a}, + {0x9934c933, 0xffffd874ffffdd7b}, + {0x9934c934, 0xffffd874ffffdd7c}, + {0x9934c935, 0xffffd874ffffdd7d}, + {0x9934c936, 0xffffd874ffffdd7e}, + {0x9934c937, 0xffffd874ffffdd7f}, + {0x9934c938, 0xffffd874ffffdd80}, + {0x9934c939, 0xffffd874ffffdd81}, + {0x9934ca30, 0xffffd874ffffdd82}, + {0x9934ca31, 0xffffd874ffffdd83}, + {0x9934ca32, 0xffffd874ffffdd84}, + {0x9934ca33, 0xffffd874ffffdd85}, + {0x9934ca34, 0xffffd874ffffdd86}, + {0x9934ca35, 0xffffd874ffffdd87}, + {0x9934ca36, 0xffffd874ffffdd88}, + {0x9934ca37, 0xffffd874ffffdd89}, + {0x9934ca38, 0xffffd874ffffdd8a}, + {0x9934ca39, 0xffffd874ffffdd8b}, + {0x9934cb30, 0xffffd874ffffdd8c}, + {0x9934cb31, 0xffffd874ffffdd8d}, + {0x9934cb32, 0xffffd874ffffdd8e}, + {0x9934cb33, 0xffffd874ffffdd8f}, + {0x9934cb34, 0xffffd874ffffdd90}, + {0x9934cb35, 0xffffd874ffffdd91}, + {0x9934cb36, 0xffffd874ffffdd92}, + {0x9934cb37, 0xffffd874ffffdd93}, + {0x9934cb38, 0xffffd874ffffdd94}, + {0x9934cb39, 0xffffd874ffffdd95}, + {0x9934cc30, 0xffffd874ffffdd96}, + {0x9934cc31, 0xffffd874ffffdd97}, + {0x9934cc32, 0xffffd874ffffdd98}, + {0x9934cc33, 0xffffd874ffffdd99}, + {0x9934cc34, 0xffffd874ffffdd9a}, + {0x9934cc35, 0xffffd874ffffdd9b}, + {0x9934cc36, 0xffffd874ffffdd9c}, + {0x9934cc37, 0xffffd874ffffdd9d}, + {0x9934cc38, 0xffffd874ffffdd9e}, + {0x9934cc39, 0xffffd874ffffdd9f}, + {0x9934cd30, 0xffffd874ffffdda0}, + {0x9934cd31, 0xffffd874ffffdda1}, + {0x9934cd32, 0xffffd874ffffdda2}, + {0x9934cd33, 0xffffd874ffffdda3}, + {0x9934cd34, 0xffffd874ffffdda4}, + {0x9934cd35, 0xffffd874ffffdda5}, + {0x9934cd36, 0xffffd874ffffdda6}, + {0x9934cd37, 0xffffd874ffffdda7}, + {0x9934cd38, 0xffffd874ffffdda8}, + {0x9934cd39, 0xffffd874ffffdda9}, + {0x9934ce30, 0xffffd874ffffddaa}, + {0x9934ce31, 0xffffd874ffffddab}, + {0x9934ce32, 0xffffd874ffffddac}, + {0x9934ce33, 0xffffd874ffffddad}, + {0x9934ce34, 0xffffd874ffffddae}, + {0x9934ce35, 0xffffd874ffffddaf}, + {0x9934ce36, 0xffffd874ffffddb0}, + {0x9934ce37, 0xffffd874ffffddb1}, + {0x9934ce38, 0xffffd874ffffddb2}, + {0x9934ce39, 0xffffd874ffffddb3}, + {0x9934cf30, 0xffffd874ffffddb4}, + {0x9934cf31, 0xffffd874ffffddb5}, + {0x9934cf32, 0xffffd874ffffddb6}, + {0x9934cf33, 0xffffd874ffffddb7}, + {0x9934cf34, 0xffffd874ffffddb8}, + {0x9934cf35, 0xffffd874ffffddb9}, + {0x9934cf36, 0xffffd874ffffddba}, + {0x9934cf37, 0xffffd874ffffddbb}, + {0x9934cf38, 0xffffd874ffffddbc}, + {0x9934cf39, 0xffffd874ffffddbd}, + {0x9934d030, 0xffffd874ffffddbe}, + {0x9934d031, 0xffffd874ffffddbf}, + {0x9934d032, 0xffffd874ffffddc0}, + {0x9934d033, 0xffffd874ffffddc1}, + {0x9934d034, 0xffffd874ffffddc2}, + {0x9934d035, 0xffffd874ffffddc3}, + {0x9934d036, 0xffffd874ffffddc4}, + {0x9934d037, 0xffffd874ffffddc5}, + {0x9934d038, 0xffffd874ffffddc6}, + {0x9934d039, 0xffffd874ffffddc7}, + {0x9934d130, 0xffffd874ffffddc8}, + {0x9934d131, 0xffffd874ffffddc9}, + {0x9934d132, 0xffffd874ffffddca}, + {0x9934d133, 0xffffd874ffffddcb}, + {0x9934d134, 0xffffd874ffffddcc}, + {0x9934d135, 0xffffd874ffffddcd}, + {0x9934d136, 0xffffd874ffffddce}, + {0x9934d137, 0xffffd874ffffddcf}, + {0x9934d138, 0xffffd874ffffddd0}, + {0x9934d139, 0xffffd874ffffddd1}, + {0x9934d230, 0xffffd874ffffddd2}, + {0x9934d231, 0xffffd874ffffddd3}, + {0x9934d232, 0xffffd874ffffddd4}, + {0x9934d233, 0xffffd874ffffddd5}, + {0x9934d234, 0xffffd874ffffddd6}, + {0x9934d235, 0xffffd874ffffddd7}, + {0x9934d236, 0xffffd874ffffddd8}, + {0x9934d237, 0xffffd874ffffddd9}, + {0x9934d238, 0xffffd874ffffddda}, + {0x9934d239, 0xffffd874ffffdddb}, + {0x9934d330, 0xffffd874ffffdddc}, + {0x9934d331, 0xffffd874ffffdddd}, + {0x9934d332, 0xffffd874ffffddde}, + {0x9934d333, 0xffffd874ffffdddf}, + {0x9934d334, 0xffffd874ffffdde0}, + {0x9934d335, 0xffffd874ffffdde1}, + {0x9934d336, 0xffffd874ffffdde2}, + {0x9934d337, 0xffffd874ffffdde3}, + {0x9934d338, 0xffffd874ffffdde4}, + {0x9934d339, 0xffffd874ffffdde5}, + {0x9934d430, 0xffffd874ffffdde6}, + {0x9934d431, 0xffffd874ffffdde7}, + {0x9934d432, 0xffffd874ffffdde8}, + {0x9934d433, 0xffffd874ffffdde9}, + {0x9934d434, 0xffffd874ffffddea}, + {0x9934d435, 0xffffd874ffffddeb}, + {0x9934d436, 0xffffd874ffffddec}, + {0x9934d437, 0xffffd874ffffdded}, + {0x9934d438, 0xffffd874ffffddee}, + {0x9934d439, 0xffffd874ffffddef}, + {0x9934d530, 0xffffd874ffffddf0}, + {0x9934d531, 0xffffd874ffffddf1}, + {0x9934d532, 0xffffd874ffffddf2}, + {0x9934d533, 0xffffd874ffffddf3}, + {0x9934d534, 0xffffd874ffffddf4}, + {0x9934d535, 0xffffd874ffffddf5}, + {0x9934d536, 0xffffd874ffffddf6}, + {0x9934d537, 0xffffd874ffffddf7}, + {0x9934d538, 0xffffd874ffffddf8}, + {0x9934d539, 0xffffd874ffffddf9}, + {0x9934d630, 0xffffd874ffffddfa}, + {0x9934d631, 0xffffd874ffffddfb}, + {0x9934d632, 0xffffd874ffffddfc}, + {0x9934d633, 0xffffd874ffffddfd}, + {0x9934d634, 0xffffd874ffffddfe}, + {0x9934d635, 0xffffd874ffffddff}, + {0x9934d636, 0xffffd874ffffde00}, + {0x9934d637, 0xffffd874ffffde01}, + {0x9934d638, 0xffffd874ffffde02}, + {0x9934d639, 0xffffd874ffffde03}, + {0x9934d730, 0xffffd874ffffde04}, + {0x9934d731, 0xffffd874ffffde05}, + {0x9934d732, 0xffffd874ffffde06}, + {0x9934d733, 0xffffd874ffffde07}, + {0x9934d734, 0xffffd874ffffde08}, + {0x9934d735, 0xffffd874ffffde09}, + {0x9934d736, 0xffffd874ffffde0a}, + {0x9934d737, 0xffffd874ffffde0b}, + {0x9934d738, 0xffffd874ffffde0c}, + {0x9934d739, 0xffffd874ffffde0d}, + {0x9934d830, 0xffffd874ffffde0e}, + {0x9934d831, 0xffffd874ffffde0f}, + {0x9934d832, 0xffffd874ffffde10}, + {0x9934d833, 0xffffd874ffffde11}, + {0x9934d834, 0xffffd874ffffde12}, + {0x9934d835, 0xffffd874ffffde13}, + {0x9934d836, 0xffffd874ffffde14}, + {0x9934d837, 0xffffd874ffffde15}, + {0x9934d838, 0xffffd874ffffde16}, + {0x9934d839, 0xffffd874ffffde17}, + {0x9934d930, 0xffffd874ffffde18}, + {0x9934d931, 0xffffd874ffffde19}, + {0x9934d932, 0xffffd874ffffde1a}, + {0x9934d933, 0xffffd874ffffde1b}, + {0x9934d934, 0xffffd874ffffde1c}, + {0x9934d935, 0xffffd874ffffde1d}, + {0x9934d936, 0xffffd874ffffde1e}, + {0x9934d937, 0xffffd874ffffde1f}, + {0x9934d938, 0xffffd874ffffde20}, + {0x9934d939, 0xffffd874ffffde21}, + {0x9934da30, 0xffffd874ffffde22}, + {0x9934da31, 0xffffd874ffffde23}, + {0x9934da32, 0xffffd874ffffde24}, + {0x9934da33, 0xffffd874ffffde25}, + {0x9934da34, 0xffffd874ffffde26}, + {0x9934da35, 0xffffd874ffffde27}, + {0x9934da36, 0xffffd874ffffde28}, + {0x9934da37, 0xffffd874ffffde29}, + {0x9934da38, 0xffffd874ffffde2a}, + {0x9934da39, 0xffffd874ffffde2b}, + {0x9934db30, 0xffffd874ffffde2c}, + {0x9934db31, 0xffffd874ffffde2d}, + {0x9934db32, 0xffffd874ffffde2e}, + {0x9934db33, 0xffffd874ffffde2f}, + {0x9934db34, 0xffffd874ffffde30}, + {0x9934db35, 0xffffd874ffffde31}, + {0x9934db36, 0xffffd874ffffde32}, + {0x9934db37, 0xffffd874ffffde33}, + {0x9934db38, 0xffffd874ffffde34}, + {0x9934db39, 0xffffd874ffffde35}, + {0x9934dc30, 0xffffd874ffffde36}, + {0x9934dc31, 0xffffd874ffffde37}, + {0x9934dc32, 0xffffd874ffffde38}, + {0x9934dc33, 0xffffd874ffffde39}, + {0x9934dc34, 0xffffd874ffffde3a}, + {0x9934dc35, 0xffffd874ffffde3b}, + {0x9934dc36, 0xffffd874ffffde3c}, + {0x9934dc37, 0xffffd874ffffde3d}, + {0x9934dc38, 0xffffd874ffffde3e}, + {0x9934dc39, 0xffffd874ffffde3f}, + {0x9934dd30, 0xffffd874ffffde40}, + {0x9934dd31, 0xffffd874ffffde41}, + {0x9934dd32, 0xffffd874ffffde42}, + {0x9934dd33, 0xffffd874ffffde43}, + {0x9934dd34, 0xffffd874ffffde44}, + {0x9934dd35, 0xffffd874ffffde45}, + {0x9934dd36, 0xffffd874ffffde46}, + {0x9934dd37, 0xffffd874ffffde47}, + {0x9934dd38, 0xffffd874ffffde48}, + {0x9934dd39, 0xffffd874ffffde49}, + {0x9934de30, 0xffffd874ffffde4a}, + {0x9934de31, 0xffffd874ffffde4b}, + {0x9934de32, 0xffffd874ffffde4c}, + {0x9934de33, 0xffffd874ffffde4d}, + {0x9934de34, 0xffffd874ffffde4e}, + {0x9934de35, 0xffffd874ffffde4f}, + {0x9934de36, 0xffffd874ffffde50}, + {0x9934de37, 0xffffd874ffffde51}, + {0x9934de38, 0xffffd874ffffde52}, + {0x9934de39, 0xffffd874ffffde53}, + {0x9934df30, 0xffffd874ffffde54}, + {0x9934df31, 0xffffd874ffffde55}, + {0x9934df32, 0xffffd874ffffde56}, + {0x9934df33, 0xffffd874ffffde57}, + {0x9934df34, 0xffffd874ffffde58}, + {0x9934df35, 0xffffd874ffffde59}, + {0x9934df36, 0xffffd874ffffde5a}, + {0x9934df37, 0xffffd874ffffde5b}, + {0x9934df38, 0xffffd874ffffde5c}, + {0x9934df39, 0xffffd874ffffde5d}, + {0x9934e030, 0xffffd874ffffde5e}, + {0x9934e031, 0xffffd874ffffde5f}, + {0x9934e032, 0xffffd874ffffde60}, + {0x9934e033, 0xffffd874ffffde61}, + {0x9934e034, 0xffffd874ffffde62}, + {0x9934e035, 0xffffd874ffffde63}, + {0x9934e036, 0xffffd874ffffde64}, + {0x9934e037, 0xffffd874ffffde65}, + {0x9934e038, 0xffffd874ffffde66}, + {0x9934e039, 0xffffd874ffffde67}, + {0x9934e130, 0xffffd874ffffde68}, + {0x9934e131, 0xffffd874ffffde69}, + {0x9934e132, 0xffffd874ffffde6a}, + {0x9934e133, 0xffffd874ffffde6b}, + {0x9934e134, 0xffffd874ffffde6c}, + {0x9934e135, 0xffffd874ffffde6d}, + {0x9934e136, 0xffffd874ffffde6e}, + {0x9934e137, 0xffffd874ffffde6f}, + {0x9934e138, 0xffffd874ffffde70}, + {0x9934e139, 0xffffd874ffffde71}, + {0x9934e230, 0xffffd874ffffde72}, + {0x9934e231, 0xffffd874ffffde73}, + {0x9934e232, 0xffffd874ffffde74}, + {0x9934e233, 0xffffd874ffffde75}, + {0x9934e234, 0xffffd874ffffde76}, + {0x9934e235, 0xffffd874ffffde77}, + {0x9934e236, 0xffffd874ffffde78}, + {0x9934e237, 0xffffd874ffffde79}, + {0x9934e238, 0xffffd874ffffde7a}, + {0x9934e239, 0xffffd874ffffde7b}, + {0x9934e330, 0xffffd874ffffde7c}, + {0x9934e331, 0xffffd874ffffde7d}, + {0x9934e332, 0xffffd874ffffde7e}, + {0x9934e333, 0xffffd874ffffde7f}, + {0x9934e334, 0xffffd874ffffde80}, + {0x9934e335, 0xffffd874ffffde81}, + {0x9934e336, 0xffffd874ffffde82}, + {0x9934e337, 0xffffd874ffffde83}, + {0x9934e338, 0xffffd874ffffde84}, + {0x9934e339, 0xffffd874ffffde85}, + {0x9934e430, 0xffffd874ffffde86}, + {0x9934e431, 0xffffd874ffffde87}, + {0x9934e432, 0xffffd874ffffde88}, + {0x9934e433, 0xffffd874ffffde89}, + {0x9934e434, 0xffffd874ffffde8a}, + {0x9934e435, 0xffffd874ffffde8b}, + {0x9934e436, 0xffffd874ffffde8c}, + {0x9934e437, 0xffffd874ffffde8d}, + {0x9934e438, 0xffffd874ffffde8e}, + {0x9934e439, 0xffffd874ffffde8f}, + {0x9934e530, 0xffffd874ffffde90}, + {0x9934e531, 0xffffd874ffffde91}, + {0x9934e532, 0xffffd874ffffde92}, + {0x9934e533, 0xffffd874ffffde93}, + {0x9934e534, 0xffffd874ffffde94}, + {0x9934e535, 0xffffd874ffffde95}, + {0x9934e536, 0xffffd874ffffde96}, + {0x9934e537, 0xffffd874ffffde97}, + {0x9934e538, 0xffffd874ffffde98}, + {0x9934e539, 0xffffd874ffffde99}, + {0x9934e630, 0xffffd874ffffde9a}, + {0x9934e631, 0xffffd874ffffde9b}, + {0x9934e632, 0xffffd874ffffde9c}, + {0x9934e633, 0xffffd874ffffde9d}, + {0x9934e634, 0xffffd874ffffde9e}, + {0x9934e635, 0xffffd874ffffde9f}, + {0x9934e636, 0xffffd874ffffdea0}, + {0x9934e637, 0xffffd874ffffdea1}, + {0x9934e638, 0xffffd874ffffdea2}, + {0x9934e639, 0xffffd874ffffdea3}, + {0x9934e730, 0xffffd874ffffdea4}, + {0x9934e731, 0xffffd874ffffdea5}, + {0x9934e732, 0xffffd874ffffdea6}, + {0x9934e733, 0xffffd874ffffdea7}, + {0x9934e734, 0xffffd874ffffdea8}, + {0x9934e735, 0xffffd874ffffdea9}, + {0x9934e736, 0xffffd874ffffdeaa}, + {0x9934e737, 0xffffd874ffffdeab}, + {0x9934e738, 0xffffd874ffffdeac}, + {0x9934e739, 0xffffd874ffffdead}, + {0x9934e830, 0xffffd874ffffdeae}, + {0x9934e831, 0xffffd874ffffdeaf}, + {0x9934e832, 0xffffd874ffffdeb0}, + {0x9934e833, 0xffffd874ffffdeb1}, + {0x9934e834, 0xffffd874ffffdeb2}, + {0x9934e835, 0xffffd874ffffdeb3}, + {0x9934e836, 0xffffd874ffffdeb4}, + {0x9934e837, 0xffffd874ffffdeb5}, + {0x9934e838, 0xffffd874ffffdeb6}, + {0x9934e839, 0xffffd874ffffdeb7}, + {0x9934e930, 0xffffd874ffffdeb8}, + {0x9934e931, 0xffffd874ffffdeb9}, + {0x9934e932, 0xffffd874ffffdeba}, + {0x9934e933, 0xffffd874ffffdebb}, + {0x9934e934, 0xffffd874ffffdebc}, + {0x9934e935, 0xffffd874ffffdebd}, + {0x9934e936, 0xffffd874ffffdebe}, + {0x9934e937, 0xffffd874ffffdebf}, + {0x9934e938, 0xffffd874ffffdec0}, + {0x9934e939, 0xffffd874ffffdec1}, + {0x9934ea30, 0xffffd874ffffdec2}, + {0x9934ea31, 0xffffd874ffffdec3}, + {0x9934ea32, 0xffffd874ffffdec4}, + {0x9934ea33, 0xffffd874ffffdec5}, + {0x9934ea34, 0xffffd874ffffdec6}, + {0x9934ea35, 0xffffd874ffffdec7}, + {0x9934ea36, 0xffffd874ffffdec8}, + {0x9934ea37, 0xffffd874ffffdec9}, + {0x9934ea38, 0xffffd874ffffdeca}, + {0x9934ea39, 0xffffd874ffffdecb}, + {0x9934eb30, 0xffffd874ffffdecc}, + {0x9934eb31, 0xffffd874ffffdecd}, + {0x9934eb32, 0xffffd874ffffdece}, + {0x9934eb33, 0xffffd874ffffdecf}, + {0x9934eb34, 0xffffd874ffffded0}, + {0x9934eb35, 0xffffd874ffffded1}, + {0x9934eb36, 0xffffd874ffffded2}, + {0x9934eb37, 0xffffd874ffffded3}, + {0x9934eb38, 0xffffd874ffffded4}, + {0x9934eb39, 0xffffd874ffffded5}, + {0x9934ec30, 0xffffd874ffffded6}, + {0x9934ec31, 0xffffd874ffffded7}, + {0x9934ec32, 0xffffd874ffffded8}, + {0x9934ec33, 0xffffd874ffffded9}, + {0x9934ec34, 0xffffd874ffffdeda}, + {0x9934ec35, 0xffffd874ffffdedb}, + {0x9934ec36, 0xffffd874ffffdedc}, + {0x9934ec37, 0xffffd874ffffdedd}, + {0x9934ec38, 0xffffd874ffffdede}, + {0x9934ec39, 0xffffd874ffffdedf}, + {0x9934ed30, 0xffffd874ffffdee0}, + {0x9934ed31, 0xffffd874ffffdee1}, + {0x9934ed32, 0xffffd874ffffdee2}, + {0x9934ed33, 0xffffd874ffffdee3}, + {0x9934ed34, 0xffffd874ffffdee4}, + {0x9934ed35, 0xffffd874ffffdee5}, + {0x9934ed36, 0xffffd874ffffdee6}, + {0x9934ed37, 0xffffd874ffffdee7}, + {0x9934ed38, 0xffffd874ffffdee8}, + {0x9934ed39, 0xffffd874ffffdee9}, + {0x9934ee30, 0xffffd874ffffdeea}, + {0x9934ee31, 0xffffd874ffffdeeb}, + {0x9934ee32, 0xffffd874ffffdeec}, + {0x9934ee33, 0xffffd874ffffdeed}, + {0x9934ee34, 0xffffd874ffffdeee}, + {0x9934ee35, 0xffffd874ffffdeef}, + {0x9934ee36, 0xffffd874ffffdef0}, + {0x9934ee37, 0xffffd874ffffdef1}, + {0x9934ee38, 0xffffd874ffffdef2}, + {0x9934ee39, 0xffffd874ffffdef3}, + {0x9934ef30, 0xffffd874ffffdef4}, + {0x9934ef31, 0xffffd874ffffdef5}, + {0x9934ef32, 0xffffd874ffffdef6}, + {0x9934ef33, 0xffffd874ffffdef7}, + {0x9934ef34, 0xffffd874ffffdef8}, + {0x9934ef35, 0xffffd874ffffdef9}, + {0x9934ef36, 0xffffd874ffffdefa}, + {0x9934ef37, 0xffffd874ffffdefb}, + {0x9934ef38, 0xffffd874ffffdefc}, + {0x9934ef39, 0xffffd874ffffdefd}, + {0x9934f030, 0xffffd874ffffdefe}, + {0x9934f031, 0xffffd874ffffdeff}, + {0x9934f032, 0xffffd874ffffdf00}, + {0x9934f033, 0xffffd874ffffdf01}, + {0x9934f034, 0xffffd874ffffdf02}, + {0x9934f035, 0xffffd874ffffdf03}, + {0x9934f036, 0xffffd874ffffdf04}, + {0x9934f037, 0xffffd874ffffdf05}, + {0x9934f038, 0xffffd874ffffdf06}, + {0x9934f039, 0xffffd874ffffdf07}, + {0x9934f130, 0xffffd874ffffdf08}, + {0x9934f131, 0xffffd874ffffdf09}, + {0x9934f132, 0xffffd874ffffdf0a}, + {0x9934f133, 0xffffd874ffffdf0b}, + {0x9934f134, 0xffffd874ffffdf0c}, + {0x9934f135, 0xffffd874ffffdf0d}, + {0x9934f136, 0xffffd874ffffdf0e}, + {0x9934f137, 0xffffd874ffffdf0f}, + {0x9934f138, 0xffffd874ffffdf10}, + {0x9934f139, 0xffffd874ffffdf11}, + {0x9934f230, 0xffffd874ffffdf12}, + {0x9934f231, 0xffffd874ffffdf13}, + {0x9934f232, 0xffffd874ffffdf14}, + {0x9934f233, 0xffffd874ffffdf15}, + {0x9934f234, 0xffffd874ffffdf16}, + {0x9934f235, 0xffffd874ffffdf17}, + {0x9934f236, 0xffffd874ffffdf18}, + {0x9934f237, 0xffffd874ffffdf19}, + {0x9934f238, 0xffffd874ffffdf1a}, + {0x9934f239, 0xffffd874ffffdf1b}, + {0x9934f330, 0xffffd874ffffdf1c}, + {0x9934f331, 0xffffd874ffffdf1d}, + {0x9934f332, 0xffffd874ffffdf1e}, + {0x9934f333, 0xffffd874ffffdf1f}, + {0x9934f334, 0xffffd874ffffdf20}, + {0x9934f335, 0xffffd874ffffdf21}, + {0x9934f336, 0xffffd874ffffdf22}, + {0x9934f337, 0xffffd874ffffdf23}, + {0x9934f338, 0xffffd874ffffdf24}, + {0x9934f339, 0xffffd874ffffdf25}, + {0x9934f430, 0xffffd874ffffdf26}, + {0x9934f431, 0xffffd874ffffdf27}, + {0x9934f432, 0xffffd874ffffdf28}, + {0x9934f433, 0xffffd874ffffdf29}, + {0x9934f434, 0xffffd874ffffdf2a}, + {0x9934f435, 0xffffd874ffffdf2b}, + {0x9934f436, 0xffffd874ffffdf2c}, + {0x9934f437, 0xffffd874ffffdf2d}, + {0x9934f438, 0xffffd874ffffdf2e}, + {0x9934f439, 0xffffd874ffffdf2f}, + {0x9934f530, 0xffffd874ffffdf30}, + {0x9934f531, 0xffffd874ffffdf31}, + {0x9934f532, 0xffffd874ffffdf32}, + {0x9934f533, 0xffffd874ffffdf33}, + {0x9934f534, 0xffffd874ffffdf34}, + {0x9934f535, 0xffffd874ffffdf35}, + {0x9934f536, 0xffffd874ffffdf36}, + {0x9934f537, 0xffffd874ffffdf37}, + {0x9934f538, 0xffffd874ffffdf38}, + {0x9934f539, 0xffffd874ffffdf39}, + {0x9934f630, 0xffffd874ffffdf3a}, + {0x9934f631, 0xffffd874ffffdf3b}, + {0x9934f632, 0xffffd874ffffdf3c}, + {0x9934f633, 0xffffd874ffffdf3d}, + {0x9934f634, 0xffffd874ffffdf3e}, + {0x9934f635, 0xffffd874ffffdf3f}, + {0x9934f636, 0xffffd874ffffdf40}, + {0x9934f637, 0xffffd874ffffdf41}, + {0x9934f638, 0xffffd874ffffdf42}, + {0x9934f639, 0xffffd874ffffdf43}, + {0x9934f730, 0xffffd874ffffdf44}, + {0x9934f731, 0xffffd874ffffdf45}, + {0x9934f732, 0xffffd874ffffdf46}, + {0x9934f733, 0xffffd874ffffdf47}, + {0x9934f734, 0xffffd874ffffdf48}, + {0x9934f735, 0xffffd874ffffdf49}, + {0x9934f736, 0xffffd874ffffdf4a}, + {0x9934f737, 0xffffd874ffffdf4b}, + {0x9934f738, 0xffffd874ffffdf4c}, + {0x9934f739, 0xffffd874ffffdf4d}, + {0x9934f830, 0xffffd874ffffdf4e}, + {0x9934f831, 0xffffd874ffffdf4f}, + {0x9934f832, 0xffffd874ffffdf50}, + {0x9934f833, 0xffffd874ffffdf51}, + {0x9934f834, 0xffffd874ffffdf52}, + {0x9934f835, 0xffffd874ffffdf53}, + {0x9934f836, 0xffffd874ffffdf54}, + {0x9934f837, 0xffffd874ffffdf55}, + {0x9934f838, 0xffffd874ffffdf56}, + {0x9934f839, 0xffffd874ffffdf57}, + {0x9934f930, 0xffffd874ffffdf58}, + {0x9934f931, 0xffffd874ffffdf59}, + {0x9934f932, 0xffffd874ffffdf5a}, + {0x9934f933, 0xffffd874ffffdf5b}, + {0x9934f934, 0xffffd874ffffdf5c}, + {0x9934f935, 0xffffd874ffffdf5d}, + {0x9934f936, 0xffffd874ffffdf5e}, + {0x9934f937, 0xffffd874ffffdf5f}, + {0x9934f938, 0xffffd874ffffdf60}, + {0x9934f939, 0xffffd874ffffdf61}, + {0x9934fa30, 0xffffd874ffffdf62}, + {0x9934fa31, 0xffffd874ffffdf63}, + {0x9934fa32, 0xffffd874ffffdf64}, + {0x9934fa33, 0xffffd874ffffdf65}, + {0x9934fa34, 0xffffd874ffffdf66}, + {0x9934fa35, 0xffffd874ffffdf67}, + {0x9934fa36, 0xffffd874ffffdf68}, + {0x9934fa37, 0xffffd874ffffdf69}, + {0x9934fa38, 0xffffd874ffffdf6a}, + {0x9934fa39, 0xffffd874ffffdf6b}, + {0x9934fb30, 0xffffd874ffffdf6c}, + {0x9934fb31, 0xffffd874ffffdf6d}, + {0x9934fb32, 0xffffd874ffffdf6e}, + {0x9934fb33, 0xffffd874ffffdf6f}, + {0x9934fb34, 0xffffd874ffffdf70}, + {0x9934fb35, 0xffffd874ffffdf71}, + {0x9934fb36, 0xffffd874ffffdf72}, + {0x9934fb37, 0xffffd874ffffdf73}, + {0x9934fb38, 0xffffd874ffffdf74}, + {0x9934fb39, 0xffffd874ffffdf75}, + {0x9934fc30, 0xffffd874ffffdf76}, + {0x9934fc31, 0xffffd874ffffdf77}, + {0x9934fc32, 0xffffd874ffffdf78}, + {0x9934fc33, 0xffffd874ffffdf79}, + {0x9934fc34, 0xffffd874ffffdf7a}, + {0x9934fc35, 0xffffd874ffffdf7b}, + {0x9934fc36, 0xffffd874ffffdf7c}, + {0x9934fc37, 0xffffd874ffffdf7d}, + {0x9934fc38, 0xffffd874ffffdf7e}, + {0x9934fc39, 0xffffd874ffffdf7f}, + {0x9934fd30, 0xffffd874ffffdf80}, + {0x9934fd31, 0xffffd874ffffdf81}, + {0x9934fd32, 0xffffd874ffffdf82}, + {0x9934fd33, 0xffffd874ffffdf83}, + {0x9934fd34, 0xffffd874ffffdf84}, + {0x9934fd35, 0xffffd874ffffdf85}, + {0x9934fd36, 0xffffd874ffffdf86}, + {0x9934fd37, 0xffffd874ffffdf87}, + {0x9934fd38, 0xffffd874ffffdf88}, + {0x9934fd39, 0xffffd874ffffdf89}, + {0x9934fe30, 0xffffd874ffffdf8a}, + {0x9934fe31, 0xffffd874ffffdf8b}, + {0x9934fe32, 0xffffd874ffffdf8c}, + {0x9934fe33, 0xffffd874ffffdf8d}, + {0x9934fe34, 0xffffd874ffffdf8e}, + {0x9934fe35, 0xffffd874ffffdf8f}, + {0x9934fe36, 0xffffd874ffffdf90}, + {0x9934fe37, 0xffffd874ffffdf91}, + {0x9934fe38, 0xffffd874ffffdf92}, + {0x9934fe39, 0xffffd874ffffdf93}, + {0x99358130, 0xffffd874ffffdf94}, + {0x99358131, 0xffffd874ffffdf95}, + {0x99358132, 0xffffd874ffffdf96}, + {0x99358133, 0xffffd874ffffdf97}, + {0x99358134, 0xffffd874ffffdf98}, + {0x99358135, 0xffffd874ffffdf99}, + {0x99358136, 0xffffd874ffffdf9a}, + {0x99358137, 0xffffd874ffffdf9b}, + {0x99358138, 0xffffd874ffffdf9c}, + {0x99358139, 0xffffd874ffffdf9d}, + {0x99358230, 0xffffd874ffffdf9e}, + {0x99358231, 0xffffd874ffffdf9f}, + {0x99358232, 0xffffd874ffffdfa0}, + {0x99358233, 0xffffd874ffffdfa1}, + {0x99358234, 0xffffd874ffffdfa2}, + {0x99358235, 0xffffd874ffffdfa3}, + {0x99358236, 0xffffd874ffffdfa4}, + {0x99358237, 0xffffd874ffffdfa5}, + {0x99358238, 0xffffd874ffffdfa6}, + {0x99358239, 0xffffd874ffffdfa7}, + {0x99358330, 0xffffd874ffffdfa8}, + {0x99358331, 0xffffd874ffffdfa9}, + {0x99358332, 0xffffd874ffffdfaa}, + {0x99358333, 0xffffd874ffffdfab}, + {0x99358334, 0xffffd874ffffdfac}, + {0x99358335, 0xffffd874ffffdfad}, + {0x99358336, 0xffffd874ffffdfae}, + {0x99358337, 0xffffd874ffffdfaf}, + {0x99358338, 0xffffd874ffffdfb0}, + {0x99358339, 0xffffd874ffffdfb1}, + {0x99358430, 0xffffd874ffffdfb2}, + {0x99358431, 0xffffd874ffffdfb3}, + {0x99358432, 0xffffd874ffffdfb4}, + {0x99358433, 0xffffd874ffffdfb5}, + {0x99358434, 0xffffd874ffffdfb6}, + {0x99358435, 0xffffd874ffffdfb7}, + {0x99358436, 0xffffd874ffffdfb8}, + {0x99358437, 0xffffd874ffffdfb9}, + {0x99358438, 0xffffd874ffffdfba}, + {0x99358439, 0xffffd874ffffdfbb}, + {0x99358530, 0xffffd874ffffdfbc}, + {0x99358531, 0xffffd874ffffdfbd}, + {0x99358532, 0xffffd874ffffdfbe}, + {0x99358533, 0xffffd874ffffdfbf}, + {0x99358534, 0xffffd874ffffdfc0}, + {0x99358535, 0xffffd874ffffdfc1}, + {0x99358536, 0xffffd874ffffdfc2}, + {0x99358537, 0xffffd874ffffdfc3}, + {0x99358538, 0xffffd874ffffdfc4}, + {0x99358539, 0xffffd874ffffdfc5}, + {0x99358630, 0xffffd874ffffdfc6}, + {0x99358631, 0xffffd874ffffdfc7}, + {0x99358632, 0xffffd874ffffdfc8}, + {0x99358633, 0xffffd874ffffdfc9}, + {0x99358634, 0xffffd874ffffdfca}, + {0x99358635, 0xffffd874ffffdfcb}, + {0x99358636, 0xffffd874ffffdfcc}, + {0x99358637, 0xffffd874ffffdfcd}, + {0x99358638, 0xffffd874ffffdfce}, + {0x99358639, 0xffffd874ffffdfcf}, + {0x99358730, 0xffffd874ffffdfd0}, + {0x99358731, 0xffffd874ffffdfd1}, + {0x99358732, 0xffffd874ffffdfd2}, + {0x99358733, 0xffffd874ffffdfd3}, + {0x99358734, 0xffffd874ffffdfd4}, + {0x99358735, 0xffffd874ffffdfd5}, + {0x99358736, 0xffffd874ffffdfd6}, + {0x99358737, 0xffffd874ffffdfd7}, + {0x99358738, 0xffffd874ffffdfd8}, + {0x99358739, 0xffffd874ffffdfd9}, + {0x99358830, 0xffffd874ffffdfda}, + {0x99358831, 0xffffd874ffffdfdb}, + {0x99358832, 0xffffd874ffffdfdc}, + {0x99358833, 0xffffd874ffffdfdd}, + {0x99358834, 0xffffd874ffffdfde}, + {0x99358835, 0xffffd874ffffdfdf}, + {0x99358836, 0xffffd874ffffdfe0}, + {0x99358837, 0xffffd874ffffdfe1}, + {0x99358838, 0xffffd874ffffdfe2}, + {0x99358839, 0xffffd874ffffdfe3}, + {0x99358930, 0xffffd874ffffdfe4}, + {0x99358931, 0xffffd874ffffdfe5}, + {0x99358932, 0xffffd874ffffdfe6}, + {0x99358933, 0xffffd874ffffdfe7}, + {0x99358934, 0xffffd874ffffdfe8}, + {0x99358935, 0xffffd874ffffdfe9}, + {0x99358936, 0xffffd874ffffdfea}, + {0x99358937, 0xffffd874ffffdfeb}, + {0x99358938, 0xffffd874ffffdfec}, + {0x99358939, 0xffffd874ffffdfed}, + {0x99358a30, 0xffffd874ffffdfee}, + {0x99358a31, 0xffffd874ffffdfef}, + {0x99358a32, 0xffffd874ffffdff0}, + {0x99358a33, 0xffffd874ffffdff1}, + {0x99358a34, 0xffffd874ffffdff2}, + {0x99358a35, 0xffffd874ffffdff3}, + {0x99358a36, 0xffffd874ffffdff4}, + {0x99358a37, 0xffffd874ffffdff5}, + {0x99358a38, 0xffffd874ffffdff6}, + {0x99358a39, 0xffffd874ffffdff7}, + {0x99358b30, 0xffffd874ffffdff8}, + {0x99358b31, 0xffffd874ffffdff9}, + {0x99358b32, 0xffffd874ffffdffa}, + {0x99358b33, 0xffffd874ffffdffb}, + {0x99358b34, 0xffffd874ffffdffc}, + {0x99358b35, 0xffffd874ffffdffd}, + {0x99358b36, 0xffffd874ffffdffe}, + {0x99358b37, 0xffffd874ffffdfff}, + {0x99358b38, 0xffffd875ffffdc00}, + {0x99358b39, 0xffffd875ffffdc01}, + {0x99358c30, 0xffffd875ffffdc02}, + {0x99358c31, 0xffffd875ffffdc03}, + {0x99358c32, 0xffffd875ffffdc04}, + {0x99358c33, 0xffffd875ffffdc05}, + {0x99358c34, 0xffffd875ffffdc06}, + {0x99358c35, 0xffffd875ffffdc07}, + {0x99358c36, 0xffffd875ffffdc08}, + {0x99358c37, 0xffffd875ffffdc09}, + {0x99358c38, 0xffffd875ffffdc0a}, + {0x99358c39, 0xffffd875ffffdc0b}, + {0x99358d30, 0xffffd875ffffdc0c}, + {0x99358d31, 0xffffd875ffffdc0d}, + {0x99358d32, 0xffffd875ffffdc0e}, + {0x99358d33, 0xffffd875ffffdc0f}, + {0x99358d34, 0xffffd875ffffdc10}, + {0x99358d35, 0xffffd875ffffdc11}, + {0x99358d36, 0xffffd875ffffdc12}, + {0x99358d37, 0xffffd875ffffdc13}, + {0x99358d38, 0xffffd875ffffdc14}, + {0x99358d39, 0xffffd875ffffdc15}, + {0x99358e30, 0xffffd875ffffdc16}, + {0x99358e31, 0xffffd875ffffdc17}, + {0x99358e32, 0xffffd875ffffdc18}, + {0x99358e33, 0xffffd875ffffdc19}, + {0x99358e34, 0xffffd875ffffdc1a}, + {0x99358e35, 0xffffd875ffffdc1b}, + {0x99358e36, 0xffffd875ffffdc1c}, + {0x99358e37, 0xffffd875ffffdc1d}, + {0x99358e38, 0xffffd875ffffdc1e}, + {0x99358e39, 0xffffd875ffffdc1f}, + {0x99358f30, 0xffffd875ffffdc20}, + {0x99358f31, 0xffffd875ffffdc21}, + {0x99358f32, 0xffffd875ffffdc22}, + {0x99358f33, 0xffffd875ffffdc23}, + {0x99358f34, 0xffffd875ffffdc24}, + {0x99358f35, 0xffffd875ffffdc25}, + {0x99358f36, 0xffffd875ffffdc26}, + {0x99358f37, 0xffffd875ffffdc27}, + {0x99358f38, 0xffffd875ffffdc28}, + {0x99358f39, 0xffffd875ffffdc29}, + {0x99359030, 0xffffd875ffffdc2a}, + {0x99359031, 0xffffd875ffffdc2b}, + {0x99359032, 0xffffd875ffffdc2c}, + {0x99359033, 0xffffd875ffffdc2d}, + {0x99359034, 0xffffd875ffffdc2e}, + {0x99359035, 0xffffd875ffffdc2f}, + {0x99359036, 0xffffd875ffffdc30}, + {0x99359037, 0xffffd875ffffdc31}, + {0x99359038, 0xffffd875ffffdc32}, + {0x99359039, 0xffffd875ffffdc33}, + {0x99359130, 0xffffd875ffffdc34}, + {0x99359131, 0xffffd875ffffdc35}, + {0x99359132, 0xffffd875ffffdc36}, + {0x99359133, 0xffffd875ffffdc37}, + {0x99359134, 0xffffd875ffffdc38}, + {0x99359135, 0xffffd875ffffdc39}, + {0x99359136, 0xffffd875ffffdc3a}, + {0x99359137, 0xffffd875ffffdc3b}, + {0x99359138, 0xffffd875ffffdc3c}, + {0x99359139, 0xffffd875ffffdc3d}, + {0x99359230, 0xffffd875ffffdc3e}, + {0x99359231, 0xffffd875ffffdc3f}, + {0x99359232, 0xffffd875ffffdc40}, + {0x99359233, 0xffffd875ffffdc41}, + {0x99359234, 0xffffd875ffffdc42}, + {0x99359235, 0xffffd875ffffdc43}, + {0x99359236, 0xffffd875ffffdc44}, + {0x99359237, 0xffffd875ffffdc45}, + {0x99359238, 0xffffd875ffffdc46}, + {0x99359239, 0xffffd875ffffdc47}, + {0x99359330, 0xffffd875ffffdc48}, + {0x99359331, 0xffffd875ffffdc49}, + {0x99359332, 0xffffd875ffffdc4a}, + {0x99359333, 0xffffd875ffffdc4b}, + {0x99359334, 0xffffd875ffffdc4c}, + {0x99359335, 0xffffd875ffffdc4d}, + {0x99359336, 0xffffd875ffffdc4e}, + {0x99359337, 0xffffd875ffffdc4f}, + {0x99359338, 0xffffd875ffffdc50}, + {0x99359339, 0xffffd875ffffdc51}, + {0x99359430, 0xffffd875ffffdc52}, + {0x99359431, 0xffffd875ffffdc53}, + {0x99359432, 0xffffd875ffffdc54}, + {0x99359433, 0xffffd875ffffdc55}, + {0x99359434, 0xffffd875ffffdc56}, + {0x99359435, 0xffffd875ffffdc57}, + {0x99359436, 0xffffd875ffffdc58}, + {0x99359437, 0xffffd875ffffdc59}, + {0x99359438, 0xffffd875ffffdc5a}, + {0x99359439, 0xffffd875ffffdc5b}, + {0x99359530, 0xffffd875ffffdc5c}, + {0x99359531, 0xffffd875ffffdc5d}, + {0x99359532, 0xffffd875ffffdc5e}, + {0x99359533, 0xffffd875ffffdc5f}, + {0x99359534, 0xffffd875ffffdc60}, + {0x99359535, 0xffffd875ffffdc61}, + {0x99359536, 0xffffd875ffffdc62}, + {0x99359537, 0xffffd875ffffdc63}, + {0x99359538, 0xffffd875ffffdc64}, + {0x99359539, 0xffffd875ffffdc65}, + {0x99359630, 0xffffd875ffffdc66}, + {0x99359631, 0xffffd875ffffdc67}, + {0x99359632, 0xffffd875ffffdc68}, + {0x99359633, 0xffffd875ffffdc69}, + {0x99359634, 0xffffd875ffffdc6a}, + {0x99359635, 0xffffd875ffffdc6b}, + {0x99359636, 0xffffd875ffffdc6c}, + {0x99359637, 0xffffd875ffffdc6d}, + {0x99359638, 0xffffd875ffffdc6e}, + {0x99359639, 0xffffd875ffffdc6f}, + {0x99359730, 0xffffd875ffffdc70}, + {0x99359731, 0xffffd875ffffdc71}, + {0x99359732, 0xffffd875ffffdc72}, + {0x99359733, 0xffffd875ffffdc73}, + {0x99359734, 0xffffd875ffffdc74}, + {0x99359735, 0xffffd875ffffdc75}, + {0x99359736, 0xffffd875ffffdc76}, + {0x99359737, 0xffffd875ffffdc77}, + {0x99359738, 0xffffd875ffffdc78}, + {0x99359739, 0xffffd875ffffdc79}, + {0x99359830, 0xffffd875ffffdc7a}, + {0x99359831, 0xffffd875ffffdc7b}, + {0x99359832, 0xffffd875ffffdc7c}, + {0x99359833, 0xffffd875ffffdc7d}, + {0x99359834, 0xffffd875ffffdc7e}, + {0x99359835, 0xffffd875ffffdc7f}, + {0x99359836, 0xffffd875ffffdc80}, + {0x99359837, 0xffffd875ffffdc81}, + {0x99359838, 0xffffd875ffffdc82}, + {0x99359839, 0xffffd875ffffdc83}, + {0x99359930, 0xffffd875ffffdc84}, + {0x99359931, 0xffffd875ffffdc85}, + {0x99359932, 0xffffd875ffffdc86}, + {0x99359933, 0xffffd875ffffdc87}, + {0x99359934, 0xffffd875ffffdc88}, + {0x99359935, 0xffffd875ffffdc89}, + {0x99359936, 0xffffd875ffffdc8a}, + {0x99359937, 0xffffd875ffffdc8b}, + {0x99359938, 0xffffd875ffffdc8c}, + {0x99359939, 0xffffd875ffffdc8d}, + {0x99359a30, 0xffffd875ffffdc8e}, + {0x99359a31, 0xffffd875ffffdc8f}, + {0x99359a32, 0xffffd875ffffdc90}, + {0x99359a33, 0xffffd875ffffdc91}, + {0x99359a34, 0xffffd875ffffdc92}, + {0x99359a35, 0xffffd875ffffdc93}, + {0x99359a36, 0xffffd875ffffdc94}, + {0x99359a37, 0xffffd875ffffdc95}, + {0x99359a38, 0xffffd875ffffdc96}, + {0x99359a39, 0xffffd875ffffdc97}, + {0x99359b30, 0xffffd875ffffdc98}, + {0x99359b31, 0xffffd875ffffdc99}, + {0x99359b32, 0xffffd875ffffdc9a}, + {0x99359b33, 0xffffd875ffffdc9b}, + {0x99359b34, 0xffffd875ffffdc9c}, + {0x99359b35, 0xffffd875ffffdc9d}, + {0x99359b36, 0xffffd875ffffdc9e}, + {0x99359b37, 0xffffd875ffffdc9f}, + {0x99359b38, 0xffffd875ffffdca0}, + {0x99359b39, 0xffffd875ffffdca1}, + {0x99359c30, 0xffffd875ffffdca2}, + {0x99359c31, 0xffffd875ffffdca3}, + {0x99359c32, 0xffffd875ffffdca4}, + {0x99359c33, 0xffffd875ffffdca5}, + {0x99359c34, 0xffffd875ffffdca6}, + {0x99359c35, 0xffffd875ffffdca7}, + {0x99359c36, 0xffffd875ffffdca8}, + {0x99359c37, 0xffffd875ffffdca9}, + {0x99359c38, 0xffffd875ffffdcaa}, + {0x99359c39, 0xffffd875ffffdcab}, + {0x99359d30, 0xffffd875ffffdcac}, + {0x99359d31, 0xffffd875ffffdcad}, + {0x99359d32, 0xffffd875ffffdcae}, + {0x99359d33, 0xffffd875ffffdcaf}, + {0x99359d34, 0xffffd875ffffdcb0}, + {0x99359d35, 0xffffd875ffffdcb1}, + {0x99359d36, 0xffffd875ffffdcb2}, + {0x99359d37, 0xffffd875ffffdcb3}, + {0x99359d38, 0xffffd875ffffdcb4}, + {0x99359d39, 0xffffd875ffffdcb5}, + {0x99359e30, 0xffffd875ffffdcb6}, + {0x99359e31, 0xffffd875ffffdcb7}, + {0x99359e32, 0xffffd875ffffdcb8}, + {0x99359e33, 0xffffd875ffffdcb9}, + {0x99359e34, 0xffffd875ffffdcba}, + {0x99359e35, 0xffffd875ffffdcbb}, + {0x99359e36, 0xffffd875ffffdcbc}, + {0x99359e37, 0xffffd875ffffdcbd}, + {0x99359e38, 0xffffd875ffffdcbe}, + {0x99359e39, 0xffffd875ffffdcbf}, + {0x99359f30, 0xffffd875ffffdcc0}, + {0x99359f31, 0xffffd875ffffdcc1}, + {0x99359f32, 0xffffd875ffffdcc2}, + {0x99359f33, 0xffffd875ffffdcc3}, + {0x99359f34, 0xffffd875ffffdcc4}, + {0x99359f35, 0xffffd875ffffdcc5}, + {0x99359f36, 0xffffd875ffffdcc6}, + {0x99359f37, 0xffffd875ffffdcc7}, + {0x99359f38, 0xffffd875ffffdcc8}, + {0x99359f39, 0xffffd875ffffdcc9}, + {0x9935a030, 0xffffd875ffffdcca}, + {0x9935a031, 0xffffd875ffffdccb}, + {0x9935a032, 0xffffd875ffffdccc}, + {0x9935a033, 0xffffd875ffffdccd}, + {0x9935a034, 0xffffd875ffffdcce}, + {0x9935a035, 0xffffd875ffffdccf}, + {0x9935a036, 0xffffd875ffffdcd0}, + {0x9935a037, 0xffffd875ffffdcd1}, + {0x9935a038, 0xffffd875ffffdcd2}, + {0x9935a039, 0xffffd875ffffdcd3}, + {0x9935a130, 0xffffd875ffffdcd4}, + {0x9935a131, 0xffffd875ffffdcd5}, + {0x9935a132, 0xffffd875ffffdcd6}, + {0x9935a133, 0xffffd875ffffdcd7}, + {0x9935a134, 0xffffd875ffffdcd8}, + {0x9935a135, 0xffffd875ffffdcd9}, + {0x9935a136, 0xffffd875ffffdcda}, + {0x9935a137, 0xffffd875ffffdcdb}, + {0x9935a138, 0xffffd875ffffdcdc}, + {0x9935a139, 0xffffd875ffffdcdd}, + {0x9935a230, 0xffffd875ffffdcde}, + {0x9935a231, 0xffffd875ffffdcdf}, + {0x9935a232, 0xffffd875ffffdce0}, + {0x9935a233, 0xffffd875ffffdce1}, + {0x9935a234, 0xffffd875ffffdce2}, + {0x9935a235, 0xffffd875ffffdce3}, + {0x9935a236, 0xffffd875ffffdce4}, + {0x9935a237, 0xffffd875ffffdce5}, + {0x9935a238, 0xffffd875ffffdce6}, + {0x9935a239, 0xffffd875ffffdce7}, + {0x9935a330, 0xffffd875ffffdce8}, + {0x9935a331, 0xffffd875ffffdce9}, + {0x9935a332, 0xffffd875ffffdcea}, + {0x9935a333, 0xffffd875ffffdceb}, + {0x9935a334, 0xffffd875ffffdcec}, + {0x9935a335, 0xffffd875ffffdced}, + {0x9935a336, 0xffffd875ffffdcee}, + {0x9935a337, 0xffffd875ffffdcef}, + {0x9935a338, 0xffffd875ffffdcf0}, + {0x9935a339, 0xffffd875ffffdcf1}, + {0x9935a430, 0xffffd875ffffdcf2}, + {0x9935a431, 0xffffd875ffffdcf3}, + {0x9935a432, 0xffffd875ffffdcf4}, + {0x9935a433, 0xffffd875ffffdcf5}, + {0x9935a434, 0xffffd875ffffdcf6}, + {0x9935a435, 0xffffd875ffffdcf7}, + {0x9935a436, 0xffffd875ffffdcf8}, + {0x9935a437, 0xffffd875ffffdcf9}, + {0x9935a438, 0xffffd875ffffdcfa}, + {0x9935a439, 0xffffd875ffffdcfb}, + {0x9935a530, 0xffffd875ffffdcfc}, + {0x9935a531, 0xffffd875ffffdcfd}, + {0x9935a532, 0xffffd875ffffdcfe}, + {0x9935a533, 0xffffd875ffffdcff}, + {0x9935a534, 0xffffd875ffffdd00}, + {0x9935a535, 0xffffd875ffffdd01}, + {0x9935a536, 0xffffd875ffffdd02}, + {0x9935a537, 0xffffd875ffffdd03}, + {0x9935a538, 0xffffd875ffffdd04}, + {0x9935a539, 0xffffd875ffffdd05}, + {0x9935a630, 0xffffd875ffffdd06}, + {0x9935a631, 0xffffd875ffffdd07}, + {0x9935a632, 0xffffd875ffffdd08}, + {0x9935a633, 0xffffd875ffffdd09}, + {0x9935a634, 0xffffd875ffffdd0a}, + {0x9935a635, 0xffffd875ffffdd0b}, + {0x9935a636, 0xffffd875ffffdd0c}, + {0x9935a637, 0xffffd875ffffdd0d}, + {0x9935a638, 0xffffd875ffffdd0e}, + {0x9935a639, 0xffffd875ffffdd0f}, + {0x9935a730, 0xffffd875ffffdd10}, + {0x9935a731, 0xffffd875ffffdd11}, + {0x9935a732, 0xffffd875ffffdd12}, + {0x9935a733, 0xffffd875ffffdd13}, + {0x9935a734, 0xffffd875ffffdd14}, + {0x9935a735, 0xffffd875ffffdd15}, + {0x9935a736, 0xffffd875ffffdd16}, + {0x9935a737, 0xffffd875ffffdd17}, + {0x9935a738, 0xffffd875ffffdd18}, + {0x9935a739, 0xffffd875ffffdd19}, + {0x9935a830, 0xffffd875ffffdd1a}, + {0x9935a831, 0xffffd875ffffdd1b}, + {0x9935a832, 0xffffd875ffffdd1c}, + {0x9935a833, 0xffffd875ffffdd1d}, + {0x9935a834, 0xffffd875ffffdd1e}, + {0x9935a835, 0xffffd875ffffdd1f}, + {0x9935a836, 0xffffd875ffffdd20}, + {0x9935a837, 0xffffd875ffffdd21}, + {0x9935a838, 0xffffd875ffffdd22}, + {0x9935a839, 0xffffd875ffffdd23}, + {0x9935a930, 0xffffd875ffffdd24}, + {0x9935a931, 0xffffd875ffffdd25}, + {0x9935a932, 0xffffd875ffffdd26}, + {0x9935a933, 0xffffd875ffffdd27}, + {0x9935a934, 0xffffd875ffffdd28}, + {0x9935a935, 0xffffd875ffffdd29}, + {0x9935a936, 0xffffd875ffffdd2a}, + {0x9935a937, 0xffffd875ffffdd2b}, + {0x9935a938, 0xffffd875ffffdd2c}, + {0x9935a939, 0xffffd875ffffdd2d}, + {0x9935aa30, 0xffffd875ffffdd2e}, + {0x9935aa31, 0xffffd875ffffdd2f}, + {0x9935aa32, 0xffffd875ffffdd30}, + {0x9935aa33, 0xffffd875ffffdd31}, + {0x9935aa34, 0xffffd875ffffdd32}, + {0x9935aa35, 0xffffd875ffffdd33}, + {0x9935aa36, 0xffffd875ffffdd34}, + {0x9935aa37, 0xffffd875ffffdd35}, + {0x9935aa38, 0xffffd875ffffdd36}, + {0x9935aa39, 0xffffd875ffffdd37}, + {0x9935ab30, 0xffffd875ffffdd38}, + {0x9935ab31, 0xffffd875ffffdd39}, + {0x9935ab32, 0xffffd875ffffdd3a}, + {0x9935ab33, 0xffffd875ffffdd3b}, + {0x9935ab34, 0xffffd875ffffdd3c}, + {0x9935ab35, 0xffffd875ffffdd3d}, + {0x9935ab36, 0xffffd875ffffdd3e}, + {0x9935ab37, 0xffffd875ffffdd3f}, + {0x9935ab38, 0xffffd875ffffdd40}, + {0x9935ab39, 0xffffd875ffffdd41}, + {0x9935ac30, 0xffffd875ffffdd42}, + {0x9935ac31, 0xffffd875ffffdd43}, + {0x9935ac32, 0xffffd875ffffdd44}, + {0x9935ac33, 0xffffd875ffffdd45}, + {0x9935ac34, 0xffffd875ffffdd46}, + {0x9935ac35, 0xffffd875ffffdd47}, + {0x9935ac36, 0xffffd875ffffdd48}, + {0x9935ac37, 0xffffd875ffffdd49}, + {0x9935ac38, 0xffffd875ffffdd4a}, + {0x9935ac39, 0xffffd875ffffdd4b}, + {0x9935ad30, 0xffffd875ffffdd4c}, + {0x9935ad31, 0xffffd875ffffdd4d}, + {0x9935ad32, 0xffffd875ffffdd4e}, + {0x9935ad33, 0xffffd875ffffdd4f}, + {0x9935ad34, 0xffffd875ffffdd50}, + {0x9935ad35, 0xffffd875ffffdd51}, + {0x9935ad36, 0xffffd875ffffdd52}, + {0x9935ad37, 0xffffd875ffffdd53}, + {0x9935ad38, 0xffffd875ffffdd54}, + {0x9935ad39, 0xffffd875ffffdd55}, + {0x9935ae30, 0xffffd875ffffdd56}, + {0x9935ae31, 0xffffd875ffffdd57}, + {0x9935ae32, 0xffffd875ffffdd58}, + {0x9935ae33, 0xffffd875ffffdd59}, + {0x9935ae34, 0xffffd875ffffdd5a}, + {0x9935ae35, 0xffffd875ffffdd5b}, + {0x9935ae36, 0xffffd875ffffdd5c}, + {0x9935ae37, 0xffffd875ffffdd5d}, + {0x9935ae38, 0xffffd875ffffdd5e}, + {0x9935ae39, 0xffffd875ffffdd5f}, + {0x9935af30, 0xffffd875ffffdd60}, + {0x9935af31, 0xffffd875ffffdd61}, + {0x9935af32, 0xffffd875ffffdd62}, + {0x9935af33, 0xffffd875ffffdd63}, + {0x9935af34, 0xffffd875ffffdd64}, + {0x9935af35, 0xffffd875ffffdd65}, + {0x9935af36, 0xffffd875ffffdd66}, + {0x9935af37, 0xffffd875ffffdd67}, + {0x9935af38, 0xffffd875ffffdd68}, + {0x9935af39, 0xffffd875ffffdd69}, + {0x9935b030, 0xffffd875ffffdd6a}, + {0x9935b031, 0xffffd875ffffdd6b}, + {0x9935b032, 0xffffd875ffffdd6c}, + {0x9935b033, 0xffffd875ffffdd6d}, + {0x9935b034, 0xffffd875ffffdd6e}, + {0x9935b035, 0xffffd875ffffdd6f}, + {0x9935b036, 0xffffd875ffffdd70}, + {0x9935b037, 0xffffd875ffffdd71}, + {0x9935b038, 0xffffd875ffffdd72}, + {0x9935b039, 0xffffd875ffffdd73}, + {0x9935b130, 0xffffd875ffffdd74}, + {0x9935b131, 0xffffd875ffffdd75}, + {0x9935b132, 0xffffd875ffffdd76}, + {0x9935b133, 0xffffd875ffffdd77}, + {0x9935b134, 0xffffd875ffffdd78}, + {0x9935b135, 0xffffd875ffffdd79}, + {0x9935b136, 0xffffd875ffffdd7a}, + {0x9935b137, 0xffffd875ffffdd7b}, + {0x9935b138, 0xffffd875ffffdd7c}, + {0x9935b139, 0xffffd875ffffdd7d}, + {0x9935b230, 0xffffd875ffffdd7e}, + {0x9935b231, 0xffffd875ffffdd7f}, + {0x9935b232, 0xffffd875ffffdd80}, + {0x9935b233, 0xffffd875ffffdd81}, + {0x9935b234, 0xffffd875ffffdd82}, + {0x9935b235, 0xffffd875ffffdd83}, + {0x9935b236, 0xffffd875ffffdd84}, + {0x9935b237, 0xffffd875ffffdd85}, + {0x9935b238, 0xffffd875ffffdd86}, + {0x9935b239, 0xffffd875ffffdd87}, + {0x9935b330, 0xffffd875ffffdd88}, + {0x9935b331, 0xffffd875ffffdd89}, + {0x9935b332, 0xffffd875ffffdd8a}, + {0x9935b333, 0xffffd875ffffdd8b}, + {0x9935b334, 0xffffd875ffffdd8c}, + {0x9935b335, 0xffffd875ffffdd8d}, + {0x9935b336, 0xffffd875ffffdd8e}, + {0x9935b337, 0xffffd875ffffdd8f}, + {0x9935b338, 0xffffd875ffffdd90}, + {0x9935b339, 0xffffd875ffffdd91}, + {0x9935b430, 0xffffd875ffffdd92}, + {0x9935b431, 0xffffd875ffffdd93}, + {0x9935b432, 0xffffd875ffffdd94}, + {0x9935b433, 0xffffd875ffffdd95}, + {0x9935b434, 0xffffd875ffffdd96}, + {0x9935b435, 0xffffd875ffffdd97}, + {0x9935b436, 0xffffd875ffffdd98}, + {0x9935b437, 0xffffd875ffffdd99}, + {0x9935b438, 0xffffd875ffffdd9a}, + {0x9935b439, 0xffffd875ffffdd9b}, + {0x9935b530, 0xffffd875ffffdd9c}, + {0x9935b531, 0xffffd875ffffdd9d}, + {0x9935b532, 0xffffd875ffffdd9e}, + {0x9935b533, 0xffffd875ffffdd9f}, + {0x9935b534, 0xffffd875ffffdda0}, + {0x9935b535, 0xffffd875ffffdda1}, + {0x9935b536, 0xffffd875ffffdda2}, + {0x9935b537, 0xffffd875ffffdda3}, + {0x9935b538, 0xffffd875ffffdda4}, + {0x9935b539, 0xffffd875ffffdda5}, + {0x9935b630, 0xffffd875ffffdda6}, + {0x9935b631, 0xffffd875ffffdda7}, + {0x9935b632, 0xffffd875ffffdda8}, + {0x9935b633, 0xffffd875ffffdda9}, + {0x9935b634, 0xffffd875ffffddaa}, + {0x9935b635, 0xffffd875ffffddab}, + {0x9935b636, 0xffffd875ffffddac}, + {0x9935b637, 0xffffd875ffffddad}, + {0x9935b638, 0xffffd875ffffddae}, + {0x9935b639, 0xffffd875ffffddaf}, + {0x9935b730, 0xffffd875ffffddb0}, + {0x9935b731, 0xffffd875ffffddb1}, + {0x9935b732, 0xffffd875ffffddb2}, + {0x9935b733, 0xffffd875ffffddb3}, + {0x9935b734, 0xffffd875ffffddb4}, + {0x9935b735, 0xffffd875ffffddb5}, + {0x9935b736, 0xffffd875ffffddb6}, + {0x9935b737, 0xffffd875ffffddb7}, + {0x9935b738, 0xffffd875ffffddb8}, + {0x9935b739, 0xffffd875ffffddb9}, + {0x9935b830, 0xffffd875ffffddba}, + {0x9935b831, 0xffffd875ffffddbb}, + {0x9935b832, 0xffffd875ffffddbc}, + {0x9935b833, 0xffffd875ffffddbd}, + {0x9935b834, 0xffffd875ffffddbe}, + {0x9935b835, 0xffffd875ffffddbf}, + {0x9935b836, 0xffffd875ffffddc0}, + {0x9935b837, 0xffffd875ffffddc1}, + {0x9935b838, 0xffffd875ffffddc2}, + {0x9935b839, 0xffffd875ffffddc3}, + {0x9935b930, 0xffffd875ffffddc4}, + {0x9935b931, 0xffffd875ffffddc5}, + {0x9935b932, 0xffffd875ffffddc6}, + {0x9935b933, 0xffffd875ffffddc7}, + {0x9935b934, 0xffffd875ffffddc8}, + {0x9935b935, 0xffffd875ffffddc9}, + {0x9935b936, 0xffffd875ffffddca}, + {0x9935b937, 0xffffd875ffffddcb}, + {0x9935b938, 0xffffd875ffffddcc}, + {0x9935b939, 0xffffd875ffffddcd}, + {0x9935ba30, 0xffffd875ffffddce}, + {0x9935ba31, 0xffffd875ffffddcf}, + {0x9935ba32, 0xffffd875ffffddd0}, + {0x9935ba33, 0xffffd875ffffddd1}, + {0x9935ba34, 0xffffd875ffffddd2}, + {0x9935ba35, 0xffffd875ffffddd3}, + {0x9935ba36, 0xffffd875ffffddd4}, + {0x9935ba37, 0xffffd875ffffddd5}, + {0x9935ba38, 0xffffd875ffffddd6}, + {0x9935ba39, 0xffffd875ffffddd7}, + {0x9935bb30, 0xffffd875ffffddd8}, + {0x9935bb31, 0xffffd875ffffddd9}, + {0x9935bb32, 0xffffd875ffffddda}, + {0x9935bb33, 0xffffd875ffffdddb}, + {0x9935bb34, 0xffffd875ffffdddc}, + {0x9935bb35, 0xffffd875ffffdddd}, + {0x9935bb36, 0xffffd875ffffddde}, + {0x9935bb37, 0xffffd875ffffdddf}, + {0x9935bb38, 0xffffd875ffffdde0}, + {0x9935bb39, 0xffffd875ffffdde1}, + {0x9935bc30, 0xffffd875ffffdde2}, + {0x9935bc31, 0xffffd875ffffdde3}, + {0x9935bc32, 0xffffd875ffffdde4}, + {0x9935bc33, 0xffffd875ffffdde5}, + {0x9935bc34, 0xffffd875ffffdde6}, + {0x9935bc35, 0xffffd875ffffdde7}, + {0x9935bc36, 0xffffd875ffffdde8}, + {0x9935bc37, 0xffffd875ffffdde9}, + {0x9935bc38, 0xffffd875ffffddea}, + {0x9935bc39, 0xffffd875ffffddeb}, + {0x9935bd30, 0xffffd875ffffddec}, + {0x9935bd31, 0xffffd875ffffdded}, + {0x9935bd32, 0xffffd875ffffddee}, + {0x9935bd33, 0xffffd875ffffddef}, + {0x9935bd34, 0xffffd875ffffddf0}, + {0x9935bd35, 0xffffd875ffffddf1}, + {0x9935bd36, 0xffffd875ffffddf2}, + {0x9935bd37, 0xffffd875ffffddf3}, + {0x9935bd38, 0xffffd875ffffddf4}, + {0x9935bd39, 0xffffd875ffffddf5}, + {0x9935be30, 0xffffd875ffffddf6}, + {0x9935be31, 0xffffd875ffffddf7}, + {0x9935be32, 0xffffd875ffffddf8}, + {0x9935be33, 0xffffd875ffffddf9}, + {0x9935be34, 0xffffd875ffffddfa}, + {0x9935be35, 0xffffd875ffffddfb}, + {0x9935be36, 0xffffd875ffffddfc}, + {0x9935be37, 0xffffd875ffffddfd}, + {0x9935be38, 0xffffd875ffffddfe}, + {0x9935be39, 0xffffd875ffffddff}, + {0x9935bf30, 0xffffd875ffffde00}, + {0x9935bf31, 0xffffd875ffffde01}, + {0x9935bf32, 0xffffd875ffffde02}, + {0x9935bf33, 0xffffd875ffffde03}, + {0x9935bf34, 0xffffd875ffffde04}, + {0x9935bf35, 0xffffd875ffffde05}, + {0x9935bf36, 0xffffd875ffffde06}, + {0x9935bf37, 0xffffd875ffffde07}, + {0x9935bf38, 0xffffd875ffffde08}, + {0x9935bf39, 0xffffd875ffffde09}, + {0x9935c030, 0xffffd875ffffde0a}, + {0x9935c031, 0xffffd875ffffde0b}, + {0x9935c032, 0xffffd875ffffde0c}, + {0x9935c033, 0xffffd875ffffde0d}, + {0x9935c034, 0xffffd875ffffde0e}, + {0x9935c035, 0xffffd875ffffde0f}, + {0x9935c036, 0xffffd875ffffde10}, + {0x9935c037, 0xffffd875ffffde11}, + {0x9935c038, 0xffffd875ffffde12}, + {0x9935c039, 0xffffd875ffffde13}, + {0x9935c130, 0xffffd875ffffde14}, + {0x9935c131, 0xffffd875ffffde15}, + {0x9935c132, 0xffffd875ffffde16}, + {0x9935c133, 0xffffd875ffffde17}, + {0x9935c134, 0xffffd875ffffde18}, + {0x9935c135, 0xffffd875ffffde19}, + {0x9935c136, 0xffffd875ffffde1a}, + {0x9935c137, 0xffffd875ffffde1b}, + {0x9935c138, 0xffffd875ffffde1c}, + {0x9935c139, 0xffffd875ffffde1d}, + {0x9935c230, 0xffffd875ffffde1e}, + {0x9935c231, 0xffffd875ffffde1f}, + {0x9935c232, 0xffffd875ffffde20}, + {0x9935c233, 0xffffd875ffffde21}, + {0x9935c234, 0xffffd875ffffde22}, + {0x9935c235, 0xffffd875ffffde23}, + {0x9935c236, 0xffffd875ffffde24}, + {0x9935c237, 0xffffd875ffffde25}, + {0x9935c238, 0xffffd875ffffde26}, + {0x9935c239, 0xffffd875ffffde27}, + {0x9935c330, 0xffffd875ffffde28}, + {0x9935c331, 0xffffd875ffffde29}, + {0x9935c332, 0xffffd875ffffde2a}, + {0x9935c333, 0xffffd875ffffde2b}, + {0x9935c334, 0xffffd875ffffde2c}, + {0x9935c335, 0xffffd875ffffde2d}, + {0x9935c336, 0xffffd875ffffde2e}, + {0x9935c337, 0xffffd875ffffde2f}, + {0x9935c338, 0xffffd875ffffde30}, + {0x9935c339, 0xffffd875ffffde31}, + {0x9935c430, 0xffffd875ffffde32}, + {0x9935c431, 0xffffd875ffffde33}, + {0x9935c432, 0xffffd875ffffde34}, + {0x9935c433, 0xffffd875ffffde35}, + {0x9935c434, 0xffffd875ffffde36}, + {0x9935c435, 0xffffd875ffffde37}, + {0x9935c436, 0xffffd875ffffde38}, + {0x9935c437, 0xffffd875ffffde39}, + {0x9935c438, 0xffffd875ffffde3a}, + {0x9935c439, 0xffffd875ffffde3b}, + {0x9935c530, 0xffffd875ffffde3c}, + {0x9935c531, 0xffffd875ffffde3d}, + {0x9935c532, 0xffffd875ffffde3e}, + {0x9935c533, 0xffffd875ffffde3f}, + {0x9935c534, 0xffffd875ffffde40}, + {0x9935c535, 0xffffd875ffffde41}, + {0x9935c536, 0xffffd875ffffde42}, + {0x9935c537, 0xffffd875ffffde43}, + {0x9935c538, 0xffffd875ffffde44}, + {0x9935c539, 0xffffd875ffffde45}, + {0x9935c630, 0xffffd875ffffde46}, + {0x9935c631, 0xffffd875ffffde47}, + {0x9935c632, 0xffffd875ffffde48}, + {0x9935c633, 0xffffd875ffffde49}, + {0x9935c634, 0xffffd875ffffde4a}, + {0x9935c635, 0xffffd875ffffde4b}, + {0x9935c636, 0xffffd875ffffde4c}, + {0x9935c637, 0xffffd875ffffde4d}, + {0x9935c638, 0xffffd875ffffde4e}, + {0x9935c639, 0xffffd875ffffde4f}, + {0x9935c730, 0xffffd875ffffde50}, + {0x9935c731, 0xffffd875ffffde51}, + {0x9935c732, 0xffffd875ffffde52}, + {0x9935c733, 0xffffd875ffffde53}, + {0x9935c734, 0xffffd875ffffde54}, + {0x9935c735, 0xffffd875ffffde55}, + {0x9935c736, 0xffffd875ffffde56}, + {0x9935c737, 0xffffd875ffffde57}, + {0x9935c738, 0xffffd875ffffde58}, + {0x9935c739, 0xffffd875ffffde59}, + {0x9935c830, 0xffffd875ffffde5a}, + {0x9935c831, 0xffffd875ffffde5b}, + {0x9935c832, 0xffffd875ffffde5c}, + {0x9935c833, 0xffffd875ffffde5d}, + {0x9935c834, 0xffffd875ffffde5e}, + {0x9935c835, 0xffffd875ffffde5f}, + {0x9935c836, 0xffffd875ffffde60}, + {0x9935c837, 0xffffd875ffffde61}, + {0x9935c838, 0xffffd875ffffde62}, + {0x9935c839, 0xffffd875ffffde63}, + {0x9935c930, 0xffffd875ffffde64}, + {0x9935c931, 0xffffd875ffffde65}, + {0x9935c932, 0xffffd875ffffde66}, + {0x9935c933, 0xffffd875ffffde67}, + {0x9935c934, 0xffffd875ffffde68}, + {0x9935c935, 0xffffd875ffffde69}, + {0x9935c936, 0xffffd875ffffde6a}, + {0x9935c937, 0xffffd875ffffde6b}, + {0x9935c938, 0xffffd875ffffde6c}, + {0x9935c939, 0xffffd875ffffde6d}, + {0x9935ca30, 0xffffd875ffffde6e}, + {0x9935ca31, 0xffffd875ffffde6f}, + {0x9935ca32, 0xffffd875ffffde70}, + {0x9935ca33, 0xffffd875ffffde71}, + {0x9935ca34, 0xffffd875ffffde72}, + {0x9935ca35, 0xffffd875ffffde73}, + {0x9935ca36, 0xffffd875ffffde74}, + {0x9935ca37, 0xffffd875ffffde75}, + {0x9935ca38, 0xffffd875ffffde76}, + {0x9935ca39, 0xffffd875ffffde77}, + {0x9935cb30, 0xffffd875ffffde78}, + {0x9935cb31, 0xffffd875ffffde79}, + {0x9935cb32, 0xffffd875ffffde7a}, + {0x9935cb33, 0xffffd875ffffde7b}, + {0x9935cb34, 0xffffd875ffffde7c}, + {0x9935cb35, 0xffffd875ffffde7d}, + {0x9935cb36, 0xffffd875ffffde7e}, + {0x9935cb37, 0xffffd875ffffde7f}, + {0x9935cb38, 0xffffd875ffffde80}, + {0x9935cb39, 0xffffd875ffffde81}, + {0x9935cc30, 0xffffd875ffffde82}, + {0x9935cc31, 0xffffd875ffffde83}, + {0x9935cc32, 0xffffd875ffffde84}, + {0x9935cc33, 0xffffd875ffffde85}, + {0x9935cc34, 0xffffd875ffffde86}, + {0x9935cc35, 0xffffd875ffffde87}, + {0x9935cc36, 0xffffd875ffffde88}, + {0x9935cc37, 0xffffd875ffffde89}, + {0x9935cc38, 0xffffd875ffffde8a}, + {0x9935cc39, 0xffffd875ffffde8b}, + {0x9935cd30, 0xffffd875ffffde8c}, + {0x9935cd31, 0xffffd875ffffde8d}, + {0x9935cd32, 0xffffd875ffffde8e}, + {0x9935cd33, 0xffffd875ffffde8f}, + {0x9935cd34, 0xffffd875ffffde90}, + {0x9935cd35, 0xffffd875ffffde91}, + {0x9935cd36, 0xffffd875ffffde92}, + {0x9935cd37, 0xffffd875ffffde93}, + {0x9935cd38, 0xffffd875ffffde94}, + {0x9935cd39, 0xffffd875ffffde95}, + {0x9935ce30, 0xffffd875ffffde96}, + {0x9935ce31, 0xffffd875ffffde97}, + {0x9935ce32, 0xffffd875ffffde98}, + {0x9935ce33, 0xffffd875ffffde99}, + {0x9935ce34, 0xffffd875ffffde9a}, + {0x9935ce35, 0xffffd875ffffde9b}, + {0x9935ce36, 0xffffd875ffffde9c}, + {0x9935ce37, 0xffffd875ffffde9d}, + {0x9935ce38, 0xffffd875ffffde9e}, + {0x9935ce39, 0xffffd875ffffde9f}, + {0x9935cf30, 0xffffd875ffffdea0}, + {0x9935cf31, 0xffffd875ffffdea1}, + {0x9935cf32, 0xffffd875ffffdea2}, + {0x9935cf33, 0xffffd875ffffdea3}, + {0x9935cf34, 0xffffd875ffffdea4}, + {0x9935cf35, 0xffffd875ffffdea5}, + {0x9935cf36, 0xffffd875ffffdea6}, + {0x9935cf37, 0xffffd875ffffdea7}, + {0x9935cf38, 0xffffd875ffffdea8}, + {0x9935cf39, 0xffffd875ffffdea9}, + {0x9935d030, 0xffffd875ffffdeaa}, + {0x9935d031, 0xffffd875ffffdeab}, + {0x9935d032, 0xffffd875ffffdeac}, + {0x9935d033, 0xffffd875ffffdead}, + {0x9935d034, 0xffffd875ffffdeae}, + {0x9935d035, 0xffffd875ffffdeaf}, + {0x9935d036, 0xffffd875ffffdeb0}, + {0x9935d037, 0xffffd875ffffdeb1}, + {0x9935d038, 0xffffd875ffffdeb2}, + {0x9935d039, 0xffffd875ffffdeb3}, + {0x9935d130, 0xffffd875ffffdeb4}, + {0x9935d131, 0xffffd875ffffdeb5}, + {0x9935d132, 0xffffd875ffffdeb6}, + {0x9935d133, 0xffffd875ffffdeb7}, + {0x9935d134, 0xffffd875ffffdeb8}, + {0x9935d135, 0xffffd875ffffdeb9}, + {0x9935d136, 0xffffd875ffffdeba}, + {0x9935d137, 0xffffd875ffffdebb}, + {0x9935d138, 0xffffd875ffffdebc}, + {0x9935d139, 0xffffd875ffffdebd}, + {0x9935d230, 0xffffd875ffffdebe}, + {0x9935d231, 0xffffd875ffffdebf}, + {0x9935d232, 0xffffd875ffffdec0}, + {0x9935d233, 0xffffd875ffffdec1}, + {0x9935d234, 0xffffd875ffffdec2}, + {0x9935d235, 0xffffd875ffffdec3}, + {0x9935d236, 0xffffd875ffffdec4}, + {0x9935d237, 0xffffd875ffffdec5}, + {0x9935d238, 0xffffd875ffffdec6}, + {0x9935d239, 0xffffd875ffffdec7}, + {0x9935d330, 0xffffd875ffffdec8}, + {0x9935d331, 0xffffd875ffffdec9}, + {0x9935d332, 0xffffd875ffffdeca}, + {0x9935d333, 0xffffd875ffffdecb}, + {0x9935d334, 0xffffd875ffffdecc}, + {0x9935d335, 0xffffd875ffffdecd}, + {0x9935d336, 0xffffd875ffffdece}, + {0x9935d337, 0xffffd875ffffdecf}, + {0x9935d338, 0xffffd875ffffded0}, + {0x9935d339, 0xffffd875ffffded1}, + {0x9935d430, 0xffffd875ffffded2}, + {0x9935d431, 0xffffd875ffffded3}, + {0x9935d432, 0xffffd875ffffded4}, + {0x9935d433, 0xffffd875ffffded5}, + {0x9935d434, 0xffffd875ffffded6}, + {0x9935d435, 0xffffd875ffffded7}, + {0x9935d436, 0xffffd875ffffded8}, + {0x9935d437, 0xffffd875ffffded9}, + {0x9935d438, 0xffffd875ffffdeda}, + {0x9935d439, 0xffffd875ffffdedb}, + {0x9935d530, 0xffffd875ffffdedc}, + {0x9935d531, 0xffffd875ffffdedd}, + {0x9935d532, 0xffffd875ffffdede}, + {0x9935d533, 0xffffd875ffffdedf}, + {0x9935d534, 0xffffd875ffffdee0}, + {0x9935d535, 0xffffd875ffffdee1}, + {0x9935d536, 0xffffd875ffffdee2}, + {0x9935d537, 0xffffd875ffffdee3}, + {0x9935d538, 0xffffd875ffffdee4}, + {0x9935d539, 0xffffd875ffffdee5}, + {0x9935d630, 0xffffd875ffffdee6}, + {0x9935d631, 0xffffd875ffffdee7}, + {0x9935d632, 0xffffd875ffffdee8}, + {0x9935d633, 0xffffd875ffffdee9}, + {0x9935d634, 0xffffd875ffffdeea}, + {0x9935d635, 0xffffd875ffffdeeb}, + {0x9935d636, 0xffffd875ffffdeec}, + {0x9935d637, 0xffffd875ffffdeed}, + {0x9935d638, 0xffffd875ffffdeee}, + {0x9935d639, 0xffffd875ffffdeef}, + {0x9935d730, 0xffffd875ffffdef0}, + {0x9935d731, 0xffffd875ffffdef1}, + {0x9935d732, 0xffffd875ffffdef2}, + {0x9935d733, 0xffffd875ffffdef3}, + {0x9935d734, 0xffffd875ffffdef4}, + {0x9935d735, 0xffffd875ffffdef5}, + {0x9935d736, 0xffffd875ffffdef6}, + {0x9935d737, 0xffffd875ffffdef7}, + {0x9935d738, 0xffffd875ffffdef8}, + {0x9935d739, 0xffffd875ffffdef9}, + {0x9935d830, 0xffffd875ffffdefa}, + {0x9935d831, 0xffffd875ffffdefb}, + {0x9935d832, 0xffffd875ffffdefc}, + {0x9935d833, 0xffffd875ffffdefd}, + {0x9935d834, 0xffffd875ffffdefe}, + {0x9935d835, 0xffffd875ffffdeff}, + {0x9935d836, 0xffffd875ffffdf00}, + {0x9935d837, 0xffffd875ffffdf01}, + {0x9935d838, 0xffffd875ffffdf02}, + {0x9935d839, 0xffffd875ffffdf03}, + {0x9935d930, 0xffffd875ffffdf04}, + {0x9935d931, 0xffffd875ffffdf05}, + {0x9935d932, 0xffffd875ffffdf06}, + {0x9935d933, 0xffffd875ffffdf07}, + {0x9935d934, 0xffffd875ffffdf08}, + {0x9935d935, 0xffffd875ffffdf09}, + {0x9935d936, 0xffffd875ffffdf0a}, + {0x9935d937, 0xffffd875ffffdf0b}, + {0x9935d938, 0xffffd875ffffdf0c}, + {0x9935d939, 0xffffd875ffffdf0d}, + {0x9935da30, 0xffffd875ffffdf0e}, + {0x9935da31, 0xffffd875ffffdf0f}, + {0x9935da32, 0xffffd875ffffdf10}, + {0x9935da33, 0xffffd875ffffdf11}, + {0x9935da34, 0xffffd875ffffdf12}, + {0x9935da35, 0xffffd875ffffdf13}, + {0x9935da36, 0xffffd875ffffdf14}, + {0x9935da37, 0xffffd875ffffdf15}, + {0x9935da38, 0xffffd875ffffdf16}, + {0x9935da39, 0xffffd875ffffdf17}, + {0x9935db30, 0xffffd875ffffdf18}, + {0x9935db31, 0xffffd875ffffdf19}, + {0x9935db32, 0xffffd875ffffdf1a}, + {0x9935db33, 0xffffd875ffffdf1b}, + {0x9935db34, 0xffffd875ffffdf1c}, + {0x9935db35, 0xffffd875ffffdf1d}, + {0x9935db36, 0xffffd875ffffdf1e}, + {0x9935db37, 0xffffd875ffffdf1f}, + {0x9935db38, 0xffffd875ffffdf20}, + {0x9935db39, 0xffffd875ffffdf21}, + {0x9935dc30, 0xffffd875ffffdf22}, + {0x9935dc31, 0xffffd875ffffdf23}, + {0x9935dc32, 0xffffd875ffffdf24}, + {0x9935dc33, 0xffffd875ffffdf25}, + {0x9935dc34, 0xffffd875ffffdf26}, + {0x9935dc35, 0xffffd875ffffdf27}, + {0x9935dc36, 0xffffd875ffffdf28}, + {0x9935dc37, 0xffffd875ffffdf29}, + {0x9935dc38, 0xffffd875ffffdf2a}, + {0x9935dc39, 0xffffd875ffffdf2b}, + {0x9935dd30, 0xffffd875ffffdf2c}, + {0x9935dd31, 0xffffd875ffffdf2d}, + {0x9935dd32, 0xffffd875ffffdf2e}, + {0x9935dd33, 0xffffd875ffffdf2f}, + {0x9935dd34, 0xffffd875ffffdf30}, + {0x9935dd35, 0xffffd875ffffdf31}, + {0x9935dd36, 0xffffd875ffffdf32}, + {0x9935dd37, 0xffffd875ffffdf33}, + {0x9935dd38, 0xffffd875ffffdf34}, + {0x9935dd39, 0xffffd875ffffdf35}, + {0x9935de30, 0xffffd875ffffdf36}, + {0x9935de31, 0xffffd875ffffdf37}, + {0x9935de32, 0xffffd875ffffdf38}, + {0x9935de33, 0xffffd875ffffdf39}, + {0x9935de34, 0xffffd875ffffdf3a}, + {0x9935de35, 0xffffd875ffffdf3b}, + {0x9935de36, 0xffffd875ffffdf3c}, + {0x9935de37, 0xffffd875ffffdf3d}, + {0x9935de38, 0xffffd875ffffdf3e}, + {0x9935de39, 0xffffd875ffffdf3f}, + {0x9935df30, 0xffffd875ffffdf40}, + {0x9935df31, 0xffffd875ffffdf41}, + {0x9935df32, 0xffffd875ffffdf42}, + {0x9935df33, 0xffffd875ffffdf43}, + {0x9935df34, 0xffffd875ffffdf44}, + {0x9935df35, 0xffffd875ffffdf45}, + {0x9935df36, 0xffffd875ffffdf46}, + {0x9935df37, 0xffffd875ffffdf47}, + {0x9935df38, 0xffffd875ffffdf48}, + {0x9935df39, 0xffffd875ffffdf49}, + {0x9935e030, 0xffffd875ffffdf4a}, + {0x9935e031, 0xffffd875ffffdf4b}, + {0x9935e032, 0xffffd875ffffdf4c}, + {0x9935e033, 0xffffd875ffffdf4d}, + {0x9935e034, 0xffffd875ffffdf4e}, + {0x9935e035, 0xffffd875ffffdf4f}, + {0x9935e036, 0xffffd875ffffdf50}, + {0x9935e037, 0xffffd875ffffdf51}, + {0x9935e038, 0xffffd875ffffdf52}, + {0x9935e039, 0xffffd875ffffdf53}, + {0x9935e130, 0xffffd875ffffdf54}, + {0x9935e131, 0xffffd875ffffdf55}, + {0x9935e132, 0xffffd875ffffdf56}, + {0x9935e133, 0xffffd875ffffdf57}, + {0x9935e134, 0xffffd875ffffdf58}, + {0x9935e135, 0xffffd875ffffdf59}, + {0x9935e136, 0xffffd875ffffdf5a}, + {0x9935e137, 0xffffd875ffffdf5b}, + {0x9935e138, 0xffffd875ffffdf5c}, + {0x9935e139, 0xffffd875ffffdf5d}, + {0x9935e230, 0xffffd875ffffdf5e}, + {0x9935e231, 0xffffd875ffffdf5f}, + {0x9935e232, 0xffffd875ffffdf60}, + {0x9935e233, 0xffffd875ffffdf61}, + {0x9935e234, 0xffffd875ffffdf62}, + {0x9935e235, 0xffffd875ffffdf63}, + {0x9935e236, 0xffffd875ffffdf64}, + {0x9935e237, 0xffffd875ffffdf65}, + {0x9935e238, 0xffffd875ffffdf66}, + {0x9935e239, 0xffffd875ffffdf67}, + {0x9935e330, 0xffffd875ffffdf68}, + {0x9935e331, 0xffffd875ffffdf69}, + {0x9935e332, 0xffffd875ffffdf6a}, + {0x9935e333, 0xffffd875ffffdf6b}, + {0x9935e334, 0xffffd875ffffdf6c}, + {0x9935e335, 0xffffd875ffffdf6d}, + {0x9935e336, 0xffffd875ffffdf6e}, + {0x9935e337, 0xffffd875ffffdf6f}, + {0x9935e338, 0xffffd875ffffdf70}, + {0x9935e339, 0xffffd875ffffdf71}, + {0x9935e430, 0xffffd875ffffdf72}, + {0x9935e431, 0xffffd875ffffdf73}, + {0x9935e432, 0xffffd875ffffdf74}, + {0x9935e433, 0xffffd875ffffdf75}, + {0x9935e434, 0xffffd875ffffdf76}, + {0x9935e435, 0xffffd875ffffdf77}, + {0x9935e436, 0xffffd875ffffdf78}, + {0x9935e437, 0xffffd875ffffdf79}, + {0x9935e438, 0xffffd875ffffdf7a}, + {0x9935e439, 0xffffd875ffffdf7b}, + {0x9935e530, 0xffffd875ffffdf7c}, + {0x9935e531, 0xffffd875ffffdf7d}, + {0x9935e532, 0xffffd875ffffdf7e}, + {0x9935e533, 0xffffd875ffffdf7f}, + {0x9935e534, 0xffffd875ffffdf80}, + {0x9935e535, 0xffffd875ffffdf81}, + {0x9935e536, 0xffffd875ffffdf82}, + {0x9935e537, 0xffffd875ffffdf83}, + {0x9935e538, 0xffffd875ffffdf84}, + {0x9935e539, 0xffffd875ffffdf85}, + {0x9935e630, 0xffffd875ffffdf86}, + {0x9935e631, 0xffffd875ffffdf87}, + {0x9935e632, 0xffffd875ffffdf88}, + {0x9935e633, 0xffffd875ffffdf89}, + {0x9935e634, 0xffffd875ffffdf8a}, + {0x9935e635, 0xffffd875ffffdf8b}, + {0x9935e636, 0xffffd875ffffdf8c}, + {0x9935e637, 0xffffd875ffffdf8d}, + {0x9935e638, 0xffffd875ffffdf8e}, + {0x9935e639, 0xffffd875ffffdf8f}, + {0x9935e730, 0xffffd875ffffdf90}, + {0x9935e731, 0xffffd875ffffdf91}, + {0x9935e732, 0xffffd875ffffdf92}, + {0x9935e733, 0xffffd875ffffdf93}, + {0x9935e734, 0xffffd875ffffdf94}, + {0x9935e735, 0xffffd875ffffdf95}, + {0x9935e736, 0xffffd875ffffdf96}, + {0x9935e737, 0xffffd875ffffdf97}, + {0x9935e738, 0xffffd875ffffdf98}, + {0x9935e739, 0xffffd875ffffdf99}, + {0x9935e830, 0xffffd875ffffdf9a}, + {0x9935e831, 0xffffd875ffffdf9b}, + {0x9935e832, 0xffffd875ffffdf9c}, + {0x9935e833, 0xffffd875ffffdf9d}, + {0x9935e834, 0xffffd875ffffdf9e}, + {0x9935e835, 0xffffd875ffffdf9f}, + {0x9935e836, 0xffffd875ffffdfa0}, + {0x9935e837, 0xffffd875ffffdfa1}, + {0x9935e838, 0xffffd875ffffdfa2}, + {0x9935e839, 0xffffd875ffffdfa3}, + {0x9935e930, 0xffffd875ffffdfa4}, + {0x9935e931, 0xffffd875ffffdfa5}, + {0x9935e932, 0xffffd875ffffdfa6}, + {0x9935e933, 0xffffd875ffffdfa7}, + {0x9935e934, 0xffffd875ffffdfa8}, + {0x9935e935, 0xffffd875ffffdfa9}, + {0x9935e936, 0xffffd875ffffdfaa}, + {0x9935e937, 0xffffd875ffffdfab}, + {0x9935e938, 0xffffd875ffffdfac}, + {0x9935e939, 0xffffd875ffffdfad}, + {0x9935ea30, 0xffffd875ffffdfae}, + {0x9935ea31, 0xffffd875ffffdfaf}, + {0x9935ea32, 0xffffd875ffffdfb0}, + {0x9935ea33, 0xffffd875ffffdfb1}, + {0x9935ea34, 0xffffd875ffffdfb2}, + {0x9935ea35, 0xffffd875ffffdfb3}, + {0x9935ea36, 0xffffd875ffffdfb4}, + {0x9935ea37, 0xffffd875ffffdfb5}, + {0x9935ea38, 0xffffd875ffffdfb6}, + {0x9935ea39, 0xffffd875ffffdfb7}, + {0x9935eb30, 0xffffd875ffffdfb8}, + {0x9935eb31, 0xffffd875ffffdfb9}, + {0x9935eb32, 0xffffd875ffffdfba}, + {0x9935eb33, 0xffffd875ffffdfbb}, + {0x9935eb34, 0xffffd875ffffdfbc}, + {0x9935eb35, 0xffffd875ffffdfbd}, + {0x9935eb36, 0xffffd875ffffdfbe}, + {0x9935eb37, 0xffffd875ffffdfbf}, + {0x9935eb38, 0xffffd875ffffdfc0}, + {0x9935eb39, 0xffffd875ffffdfc1}, + {0x9935ec30, 0xffffd875ffffdfc2}, + {0x9935ec31, 0xffffd875ffffdfc3}, + {0x9935ec32, 0xffffd875ffffdfc4}, + {0x9935ec33, 0xffffd875ffffdfc5}, + {0x9935ec34, 0xffffd875ffffdfc6}, + {0x9935ec35, 0xffffd875ffffdfc7}, + {0x9935ec36, 0xffffd875ffffdfc8}, + {0x9935ec37, 0xffffd875ffffdfc9}, + {0x9935ec38, 0xffffd875ffffdfca}, + {0x9935ec39, 0xffffd875ffffdfcb}, + {0x9935ed30, 0xffffd875ffffdfcc}, + {0x9935ed31, 0xffffd875ffffdfcd}, + {0x9935ed32, 0xffffd875ffffdfce}, + {0x9935ed33, 0xffffd875ffffdfcf}, + {0x9935ed34, 0xffffd875ffffdfd0}, + {0x9935ed35, 0xffffd875ffffdfd1}, + {0x9935ed36, 0xffffd875ffffdfd2}, + {0x9935ed37, 0xffffd875ffffdfd3}, + {0x9935ed38, 0xffffd875ffffdfd4}, + {0x9935ed39, 0xffffd875ffffdfd5}, + {0x9935ee30, 0xffffd875ffffdfd6}, + {0x9935ee31, 0xffffd875ffffdfd7}, + {0x9935ee32, 0xffffd875ffffdfd8}, + {0x9935ee33, 0xffffd875ffffdfd9}, + {0x9935ee34, 0xffffd875ffffdfda}, + {0x9935ee35, 0xffffd875ffffdfdb}, + {0x9935ee36, 0xffffd875ffffdfdc}, + {0x9935ee37, 0xffffd875ffffdfdd}, + {0x9935ee38, 0xffffd875ffffdfde}, + {0x9935ee39, 0xffffd875ffffdfdf}, + {0x9935ef30, 0xffffd875ffffdfe0}, + {0x9935ef31, 0xffffd875ffffdfe1}, + {0x9935ef32, 0xffffd875ffffdfe2}, + {0x9935ef33, 0xffffd875ffffdfe3}, + {0x9935ef34, 0xffffd875ffffdfe4}, + {0x9935ef35, 0xffffd875ffffdfe5}, + {0x9935ef36, 0xffffd875ffffdfe6}, + {0x9935ef37, 0xffffd875ffffdfe7}, + {0x9935ef38, 0xffffd875ffffdfe8}, + {0x9935ef39, 0xffffd875ffffdfe9}, + {0x9935f030, 0xffffd875ffffdfea}, + {0x9935f031, 0xffffd875ffffdfeb}, + {0x9935f032, 0xffffd875ffffdfec}, + {0x9935f033, 0xffffd875ffffdfed}, + {0x9935f034, 0xffffd875ffffdfee}, + {0x9935f035, 0xffffd875ffffdfef}, + {0x9935f036, 0xffffd875ffffdff0}, + {0x9935f037, 0xffffd875ffffdff1}, + {0x9935f038, 0xffffd875ffffdff2}, + {0x9935f039, 0xffffd875ffffdff3}, + {0x9935f130, 0xffffd875ffffdff4}, + {0x9935f131, 0xffffd875ffffdff5}, + {0x9935f132, 0xffffd875ffffdff6}, + {0x9935f133, 0xffffd875ffffdff7}, + {0x9935f134, 0xffffd875ffffdff8}, + {0x9935f135, 0xffffd875ffffdff9}, + {0x9935f136, 0xffffd875ffffdffa}, + {0x9935f137, 0xffffd875ffffdffb}, + {0x9935f138, 0xffffd875ffffdffc}, + {0x9935f139, 0xffffd875ffffdffd}, + {0x9935f230, 0xffffd875ffffdffe}, + {0x9935f231, 0xffffd875ffffdfff}, + {0x9935f232, 0xffffd876ffffdc00}, + {0x9935f233, 0xffffd876ffffdc01}, + {0x9935f234, 0xffffd876ffffdc02}, + {0x9935f235, 0xffffd876ffffdc03}, + {0x9935f236, 0xffffd876ffffdc04}, + {0x9935f237, 0xffffd876ffffdc05}, + {0x9935f238, 0xffffd876ffffdc06}, + {0x9935f239, 0xffffd876ffffdc07}, + {0x9935f330, 0xffffd876ffffdc08}, + {0x9935f331, 0xffffd876ffffdc09}, + {0x9935f332, 0xffffd876ffffdc0a}, + {0x9935f333, 0xffffd876ffffdc0b}, + {0x9935f334, 0xffffd876ffffdc0c}, + {0x9935f335, 0xffffd876ffffdc0d}, + {0x9935f336, 0xffffd876ffffdc0e}, + {0x9935f337, 0xffffd876ffffdc0f}, + {0x9935f338, 0xffffd876ffffdc10}, + {0x9935f339, 0xffffd876ffffdc11}, + {0x9935f430, 0xffffd876ffffdc12}, + {0x9935f431, 0xffffd876ffffdc13}, + {0x9935f432, 0xffffd876ffffdc14}, + {0x9935f433, 0xffffd876ffffdc15}, + {0x9935f434, 0xffffd876ffffdc16}, + {0x9935f435, 0xffffd876ffffdc17}, + {0x9935f436, 0xffffd876ffffdc18}, + {0x9935f437, 0xffffd876ffffdc19}, + {0x9935f438, 0xffffd876ffffdc1a}, + {0x9935f439, 0xffffd876ffffdc1b}, + {0x9935f530, 0xffffd876ffffdc1c}, + {0x9935f531, 0xffffd876ffffdc1d}, + {0x9935f532, 0xffffd876ffffdc1e}, + {0x9935f533, 0xffffd876ffffdc1f}, + {0x9935f534, 0xffffd876ffffdc20}, + {0x9935f535, 0xffffd876ffffdc21}, + {0x9935f536, 0xffffd876ffffdc22}, + {0x9935f537, 0xffffd876ffffdc23}, + {0x9935f538, 0xffffd876ffffdc24}, + {0x9935f539, 0xffffd876ffffdc25}, + {0x9935f630, 0xffffd876ffffdc26}, + {0x9935f631, 0xffffd876ffffdc27}, + {0x9935f632, 0xffffd876ffffdc28}, + {0x9935f633, 0xffffd876ffffdc29}, + {0x9935f634, 0xffffd876ffffdc2a}, + {0x9935f635, 0xffffd876ffffdc2b}, + {0x9935f636, 0xffffd876ffffdc2c}, + {0x9935f637, 0xffffd876ffffdc2d}, + {0x9935f638, 0xffffd876ffffdc2e}, + {0x9935f639, 0xffffd876ffffdc2f}, + {0x9935f730, 0xffffd876ffffdc30}, + {0x9935f731, 0xffffd876ffffdc31}, + {0x9935f732, 0xffffd876ffffdc32}, + {0x9935f733, 0xffffd876ffffdc33}, + {0x9935f734, 0xffffd876ffffdc34}, + {0x9935f735, 0xffffd876ffffdc35}, + {0x9935f736, 0xffffd876ffffdc36}, + {0x9935f737, 0xffffd876ffffdc37}, + {0x9935f738, 0xffffd876ffffdc38}, + {0x9935f739, 0xffffd876ffffdc39}, + {0x9935f830, 0xffffd876ffffdc3a}, + {0x9935f831, 0xffffd876ffffdc3b}, + {0x9935f832, 0xffffd876ffffdc3c}, + {0x9935f833, 0xffffd876ffffdc3d}, + {0x9935f834, 0xffffd876ffffdc3e}, + {0x9935f835, 0xffffd876ffffdc3f}, + {0x9935f836, 0xffffd876ffffdc40}, + {0x9935f837, 0xffffd876ffffdc41}, + {0x9935f838, 0xffffd876ffffdc42}, + {0x9935f839, 0xffffd876ffffdc43}, + {0x9935f930, 0xffffd876ffffdc44}, + {0x9935f931, 0xffffd876ffffdc45}, + {0x9935f932, 0xffffd876ffffdc46}, + {0x9935f933, 0xffffd876ffffdc47}, + {0x9935f934, 0xffffd876ffffdc48}, + {0x9935f935, 0xffffd876ffffdc49}, + {0x9935f936, 0xffffd876ffffdc4a}, + {0x9935f937, 0xffffd876ffffdc4b}, + {0x9935f938, 0xffffd876ffffdc4c}, + {0x9935f939, 0xffffd876ffffdc4d}, + {0x9935fa30, 0xffffd876ffffdc4e}, + {0x9935fa31, 0xffffd876ffffdc4f}, + {0x9935fa32, 0xffffd876ffffdc50}, + {0x9935fa33, 0xffffd876ffffdc51}, + {0x9935fa34, 0xffffd876ffffdc52}, + {0x9935fa35, 0xffffd876ffffdc53}, + {0x9935fa36, 0xffffd876ffffdc54}, + {0x9935fa37, 0xffffd876ffffdc55}, + {0x9935fa38, 0xffffd876ffffdc56}, + {0x9935fa39, 0xffffd876ffffdc57}, + {0x9935fb30, 0xffffd876ffffdc58}, + {0x9935fb31, 0xffffd876ffffdc59}, + {0x9935fb32, 0xffffd876ffffdc5a}, + {0x9935fb33, 0xffffd876ffffdc5b}, + {0x9935fb34, 0xffffd876ffffdc5c}, + {0x9935fb35, 0xffffd876ffffdc5d}, + {0x9935fb36, 0xffffd876ffffdc5e}, + {0x9935fb37, 0xffffd876ffffdc5f}, + {0x9935fb38, 0xffffd876ffffdc60}, + {0x9935fb39, 0xffffd876ffffdc61}, + {0x9935fc30, 0xffffd876ffffdc62}, + {0x9935fc31, 0xffffd876ffffdc63}, + {0x9935fc32, 0xffffd876ffffdc64}, + {0x9935fc33, 0xffffd876ffffdc65}, + {0x9935fc34, 0xffffd876ffffdc66}, + {0x9935fc35, 0xffffd876ffffdc67}, + {0x9935fc36, 0xffffd876ffffdc68}, + {0x9935fc37, 0xffffd876ffffdc69}, + {0x9935fc38, 0xffffd876ffffdc6a}, + {0x9935fc39, 0xffffd876ffffdc6b}, + {0x9935fd30, 0xffffd876ffffdc6c}, + {0x9935fd31, 0xffffd876ffffdc6d}, + {0x9935fd32, 0xffffd876ffffdc6e}, + {0x9935fd33, 0xffffd876ffffdc6f}, + {0x9935fd34, 0xffffd876ffffdc70}, + {0x9935fd35, 0xffffd876ffffdc71}, + {0x9935fd36, 0xffffd876ffffdc72}, + {0x9935fd37, 0xffffd876ffffdc73}, + {0x9935fd38, 0xffffd876ffffdc74}, + {0x9935fd39, 0xffffd876ffffdc75}, + {0x9935fe30, 0xffffd876ffffdc76}, + {0x9935fe31, 0xffffd876ffffdc77}, + {0x9935fe32, 0xffffd876ffffdc78}, + {0x9935fe33, 0xffffd876ffffdc79}, + {0x9935fe34, 0xffffd876ffffdc7a}, + {0x9935fe35, 0xffffd876ffffdc7b}, + {0x9935fe36, 0xffffd876ffffdc7c}, + {0x9935fe37, 0xffffd876ffffdc7d}, + {0x9935fe38, 0xffffd876ffffdc7e}, + {0x9935fe39, 0xffffd876ffffdc7f}, + {0x99368130, 0xffffd876ffffdc80}, + {0x99368131, 0xffffd876ffffdc81}, + {0x99368132, 0xffffd876ffffdc82}, + {0x99368133, 0xffffd876ffffdc83}, + {0x99368134, 0xffffd876ffffdc84}, + {0x99368135, 0xffffd876ffffdc85}, + {0x99368136, 0xffffd876ffffdc86}, + {0x99368137, 0xffffd876ffffdc87}, + {0x99368138, 0xffffd876ffffdc88}, + {0x99368139, 0xffffd876ffffdc89}, + {0x99368230, 0xffffd876ffffdc8a}, + {0x99368231, 0xffffd876ffffdc8b}, + {0x99368232, 0xffffd876ffffdc8c}, + {0x99368233, 0xffffd876ffffdc8d}, + {0x99368234, 0xffffd876ffffdc8e}, + {0x99368235, 0xffffd876ffffdc8f}, + {0x99368236, 0xffffd876ffffdc90}, + {0x99368237, 0xffffd876ffffdc91}, + {0x99368238, 0xffffd876ffffdc92}, + {0x99368239, 0xffffd876ffffdc93}, + {0x99368330, 0xffffd876ffffdc94}, + {0x99368331, 0xffffd876ffffdc95}, + {0x99368332, 0xffffd876ffffdc96}, + {0x99368333, 0xffffd876ffffdc97}, + {0x99368334, 0xffffd876ffffdc98}, + {0x99368335, 0xffffd876ffffdc99}, + {0x99368336, 0xffffd876ffffdc9a}, + {0x99368337, 0xffffd876ffffdc9b}, + {0x99368338, 0xffffd876ffffdc9c}, + {0x99368339, 0xffffd876ffffdc9d}, + {0x99368430, 0xffffd876ffffdc9e}, + {0x99368431, 0xffffd876ffffdc9f}, + {0x99368432, 0xffffd876ffffdca0}, + {0x99368433, 0xffffd876ffffdca1}, + {0x99368434, 0xffffd876ffffdca2}, + {0x99368435, 0xffffd876ffffdca3}, + {0x99368436, 0xffffd876ffffdca4}, + {0x99368437, 0xffffd876ffffdca5}, + {0x99368438, 0xffffd876ffffdca6}, + {0x99368439, 0xffffd876ffffdca7}, + {0x99368530, 0xffffd876ffffdca8}, + {0x99368531, 0xffffd876ffffdca9}, + {0x99368532, 0xffffd876ffffdcaa}, + {0x99368533, 0xffffd876ffffdcab}, + {0x99368534, 0xffffd876ffffdcac}, + {0x99368535, 0xffffd876ffffdcad}, + {0x99368536, 0xffffd876ffffdcae}, + {0x99368537, 0xffffd876ffffdcaf}, + {0x99368538, 0xffffd876ffffdcb0}, + {0x99368539, 0xffffd876ffffdcb1}, + {0x99368630, 0xffffd876ffffdcb2}, + {0x99368631, 0xffffd876ffffdcb3}, + {0x99368632, 0xffffd876ffffdcb4}, + {0x99368633, 0xffffd876ffffdcb5}, + {0x99368634, 0xffffd876ffffdcb6}, + {0x99368635, 0xffffd876ffffdcb7}, + {0x99368636, 0xffffd876ffffdcb8}, + {0x99368637, 0xffffd876ffffdcb9}, + {0x99368638, 0xffffd876ffffdcba}, + {0x99368639, 0xffffd876ffffdcbb}, + {0x99368730, 0xffffd876ffffdcbc}, + {0x99368731, 0xffffd876ffffdcbd}, + {0x99368732, 0xffffd876ffffdcbe}, + {0x99368733, 0xffffd876ffffdcbf}, + {0x99368734, 0xffffd876ffffdcc0}, + {0x99368735, 0xffffd876ffffdcc1}, + {0x99368736, 0xffffd876ffffdcc2}, + {0x99368737, 0xffffd876ffffdcc3}, + {0x99368738, 0xffffd876ffffdcc4}, + {0x99368739, 0xffffd876ffffdcc5}, + {0x99368830, 0xffffd876ffffdcc6}, + {0x99368831, 0xffffd876ffffdcc7}, + {0x99368832, 0xffffd876ffffdcc8}, + {0x99368833, 0xffffd876ffffdcc9}, + {0x99368834, 0xffffd876ffffdcca}, + {0x99368835, 0xffffd876ffffdccb}, + {0x99368836, 0xffffd876ffffdccc}, + {0x99368837, 0xffffd876ffffdccd}, + {0x99368838, 0xffffd876ffffdcce}, + {0x99368839, 0xffffd876ffffdccf}, + {0x99368930, 0xffffd876ffffdcd0}, + {0x99368931, 0xffffd876ffffdcd1}, + {0x99368932, 0xffffd876ffffdcd2}, + {0x99368933, 0xffffd876ffffdcd3}, + {0x99368934, 0xffffd876ffffdcd4}, + {0x99368935, 0xffffd876ffffdcd5}, + {0x99368936, 0xffffd876ffffdcd6}, + {0x99368937, 0xffffd876ffffdcd7}, + {0x99368938, 0xffffd876ffffdcd8}, + {0x99368939, 0xffffd876ffffdcd9}, + {0x99368a30, 0xffffd876ffffdcda}, + {0x99368a31, 0xffffd876ffffdcdb}, + {0x99368a32, 0xffffd876ffffdcdc}, + {0x99368a33, 0xffffd876ffffdcdd}, + {0x99368a34, 0xffffd876ffffdcde}, + {0x99368a35, 0xffffd876ffffdcdf}, + {0x99368a36, 0xffffd876ffffdce0}, + {0x99368a37, 0xffffd876ffffdce1}, + {0x99368a38, 0xffffd876ffffdce2}, + {0x99368a39, 0xffffd876ffffdce3}, + {0x99368b30, 0xffffd876ffffdce4}, + {0x99368b31, 0xffffd876ffffdce5}, + {0x99368b32, 0xffffd876ffffdce6}, + {0x99368b33, 0xffffd876ffffdce7}, + {0x99368b34, 0xffffd876ffffdce8}, + {0x99368b35, 0xffffd876ffffdce9}, + {0x99368b36, 0xffffd876ffffdcea}, + {0x99368b37, 0xffffd876ffffdceb}, + {0x99368b38, 0xffffd876ffffdcec}, + {0x99368b39, 0xffffd876ffffdced}, + {0x99368c30, 0xffffd876ffffdcee}, + {0x99368c31, 0xffffd876ffffdcef}, + {0x99368c32, 0xffffd876ffffdcf0}, + {0x99368c33, 0xffffd876ffffdcf1}, + {0x99368c34, 0xffffd876ffffdcf2}, + {0x99368c35, 0xffffd876ffffdcf3}, + {0x99368c36, 0xffffd876ffffdcf4}, + {0x99368c37, 0xffffd876ffffdcf5}, + {0x99368c38, 0xffffd876ffffdcf6}, + {0x99368c39, 0xffffd876ffffdcf7}, + {0x99368d30, 0xffffd876ffffdcf8}, + {0x99368d31, 0xffffd876ffffdcf9}, + {0x99368d32, 0xffffd876ffffdcfa}, + {0x99368d33, 0xffffd876ffffdcfb}, + {0x99368d34, 0xffffd876ffffdcfc}, + {0x99368d35, 0xffffd876ffffdcfd}, + {0x99368d36, 0xffffd876ffffdcfe}, + {0x99368d37, 0xffffd876ffffdcff}, + {0x99368d38, 0xffffd876ffffdd00}, + {0x99368d39, 0xffffd876ffffdd01}, + {0x99368e30, 0xffffd876ffffdd02}, + {0x99368e31, 0xffffd876ffffdd03}, + {0x99368e32, 0xffffd876ffffdd04}, + {0x99368e33, 0xffffd876ffffdd05}, + {0x99368e34, 0xffffd876ffffdd06}, + {0x99368e35, 0xffffd876ffffdd07}, + {0x99368e36, 0xffffd876ffffdd08}, + {0x99368e37, 0xffffd876ffffdd09}, + {0x99368e38, 0xffffd876ffffdd0a}, + {0x99368e39, 0xffffd876ffffdd0b}, + {0x99368f30, 0xffffd876ffffdd0c}, + {0x99368f31, 0xffffd876ffffdd0d}, + {0x99368f32, 0xffffd876ffffdd0e}, + {0x99368f33, 0xffffd876ffffdd0f}, + {0x99368f34, 0xffffd876ffffdd10}, + {0x99368f35, 0xffffd876ffffdd11}, + {0x99368f36, 0xffffd876ffffdd12}, + {0x99368f37, 0xffffd876ffffdd13}, + {0x99368f38, 0xffffd876ffffdd14}, + {0x99368f39, 0xffffd876ffffdd15}, + {0x99369030, 0xffffd876ffffdd16}, + {0x99369031, 0xffffd876ffffdd17}, + {0x99369032, 0xffffd876ffffdd18}, + {0x99369033, 0xffffd876ffffdd19}, + {0x99369034, 0xffffd876ffffdd1a}, + {0x99369035, 0xffffd876ffffdd1b}, + {0x99369036, 0xffffd876ffffdd1c}, + {0x99369037, 0xffffd876ffffdd1d}, + {0x99369038, 0xffffd876ffffdd1e}, + {0x99369039, 0xffffd876ffffdd1f}, + {0x99369130, 0xffffd876ffffdd20}, + {0x99369131, 0xffffd876ffffdd21}, + {0x99369132, 0xffffd876ffffdd22}, + {0x99369133, 0xffffd876ffffdd23}, + {0x99369134, 0xffffd876ffffdd24}, + {0x99369135, 0xffffd876ffffdd25}, + {0x99369136, 0xffffd876ffffdd26}, + {0x99369137, 0xffffd876ffffdd27}, + {0x99369138, 0xffffd876ffffdd28}, + {0x99369139, 0xffffd876ffffdd29}, + {0x99369230, 0xffffd876ffffdd2a}, + {0x99369231, 0xffffd876ffffdd2b}, + {0x99369232, 0xffffd876ffffdd2c}, + {0x99369233, 0xffffd876ffffdd2d}, + {0x99369234, 0xffffd876ffffdd2e}, + {0x99369235, 0xffffd876ffffdd2f}, + {0x99369236, 0xffffd876ffffdd30}, + {0x99369237, 0xffffd876ffffdd31}, + {0x99369238, 0xffffd876ffffdd32}, + {0x99369239, 0xffffd876ffffdd33}, + {0x99369330, 0xffffd876ffffdd34}, + {0x99369331, 0xffffd876ffffdd35}, + {0x99369332, 0xffffd876ffffdd36}, + {0x99369333, 0xffffd876ffffdd37}, + {0x99369334, 0xffffd876ffffdd38}, + {0x99369335, 0xffffd876ffffdd39}, + {0x99369336, 0xffffd876ffffdd3a}, + {0x99369337, 0xffffd876ffffdd3b}, + {0x99369338, 0xffffd876ffffdd3c}, + {0x99369339, 0xffffd876ffffdd3d}, + {0x99369430, 0xffffd876ffffdd3e}, + {0x99369431, 0xffffd876ffffdd3f}, + {0x99369432, 0xffffd876ffffdd40}, + {0x99369433, 0xffffd876ffffdd41}, + {0x99369434, 0xffffd876ffffdd42}, + {0x99369435, 0xffffd876ffffdd43}, + {0x99369436, 0xffffd876ffffdd44}, + {0x99369437, 0xffffd876ffffdd45}, + {0x99369438, 0xffffd876ffffdd46}, + {0x99369439, 0xffffd876ffffdd47}, + {0x99369530, 0xffffd876ffffdd48}, + {0x99369531, 0xffffd876ffffdd49}, + {0x99369532, 0xffffd876ffffdd4a}, + {0x99369533, 0xffffd876ffffdd4b}, + {0x99369534, 0xffffd876ffffdd4c}, + {0x99369535, 0xffffd876ffffdd4d}, + {0x99369536, 0xffffd876ffffdd4e}, + {0x99369537, 0xffffd876ffffdd4f}, + {0x99369538, 0xffffd876ffffdd50}, + {0x99369539, 0xffffd876ffffdd51}, + {0x99369630, 0xffffd876ffffdd52}, + {0x99369631, 0xffffd876ffffdd53}, + {0x99369632, 0xffffd876ffffdd54}, + {0x99369633, 0xffffd876ffffdd55}, + {0x99369634, 0xffffd876ffffdd56}, + {0x99369635, 0xffffd876ffffdd57}, + {0x99369636, 0xffffd876ffffdd58}, + {0x99369637, 0xffffd876ffffdd59}, + {0x99369638, 0xffffd876ffffdd5a}, + {0x99369639, 0xffffd876ffffdd5b}, + {0x99369730, 0xffffd876ffffdd5c}, + {0x99369731, 0xffffd876ffffdd5d}, + {0x99369732, 0xffffd876ffffdd5e}, + {0x99369733, 0xffffd876ffffdd5f}, + {0x99369734, 0xffffd876ffffdd60}, + {0x99369735, 0xffffd876ffffdd61}, + {0x99369736, 0xffffd876ffffdd62}, + {0x99369737, 0xffffd876ffffdd63}, + {0x99369738, 0xffffd876ffffdd64}, + {0x99369739, 0xffffd876ffffdd65}, + {0x99369830, 0xffffd876ffffdd66}, + {0x99369831, 0xffffd876ffffdd67}, + {0x99369832, 0xffffd876ffffdd68}, + {0x99369833, 0xffffd876ffffdd69}, + {0x99369834, 0xffffd876ffffdd6a}, + {0x99369835, 0xffffd876ffffdd6b}, + {0x99369836, 0xffffd876ffffdd6c}, + {0x99369837, 0xffffd876ffffdd6d}, + {0x99369838, 0xffffd876ffffdd6e}, + {0x99369839, 0xffffd876ffffdd6f}, + {0x99369930, 0xffffd876ffffdd70}, + {0x99369931, 0xffffd876ffffdd71}, + {0x99369932, 0xffffd876ffffdd72}, + {0x99369933, 0xffffd876ffffdd73}, + {0x99369934, 0xffffd876ffffdd74}, + {0x99369935, 0xffffd876ffffdd75}, + {0x99369936, 0xffffd876ffffdd76}, + {0x99369937, 0xffffd876ffffdd77}, + {0x99369938, 0xffffd876ffffdd78}, + {0x99369939, 0xffffd876ffffdd79}, + {0x99369a30, 0xffffd876ffffdd7a}, + {0x99369a31, 0xffffd876ffffdd7b}, + {0x99369a32, 0xffffd876ffffdd7c}, + {0x99369a33, 0xffffd876ffffdd7d}, + {0x99369a34, 0xffffd876ffffdd7e}, + {0x99369a35, 0xffffd876ffffdd7f}, + {0x99369a36, 0xffffd876ffffdd80}, + {0x99369a37, 0xffffd876ffffdd81}, + {0x99369a38, 0xffffd876ffffdd82}, + {0x99369a39, 0xffffd876ffffdd83}, + {0x99369b30, 0xffffd876ffffdd84}, + {0x99369b31, 0xffffd876ffffdd85}, + {0x99369b32, 0xffffd876ffffdd86}, + {0x99369b33, 0xffffd876ffffdd87}, + {0x99369b34, 0xffffd876ffffdd88}, + {0x99369b35, 0xffffd876ffffdd89}, + {0x99369b36, 0xffffd876ffffdd8a}, + {0x99369b37, 0xffffd876ffffdd8b}, + {0x99369b38, 0xffffd876ffffdd8c}, + {0x99369b39, 0xffffd876ffffdd8d}, + {0x99369c30, 0xffffd876ffffdd8e}, + {0x99369c31, 0xffffd876ffffdd8f}, + {0x99369c32, 0xffffd876ffffdd90}, + {0x99369c33, 0xffffd876ffffdd91}, + {0x99369c34, 0xffffd876ffffdd92}, + {0x99369c35, 0xffffd876ffffdd93}, + {0x99369c36, 0xffffd876ffffdd94}, + {0x99369c37, 0xffffd876ffffdd95}, + {0x99369c38, 0xffffd876ffffdd96}, + {0x99369c39, 0xffffd876ffffdd97}, + {0x99369d30, 0xffffd876ffffdd98}, + {0x99369d31, 0xffffd876ffffdd99}, + {0x99369d32, 0xffffd876ffffdd9a}, + {0x99369d33, 0xffffd876ffffdd9b}, + {0x99369d34, 0xffffd876ffffdd9c}, + {0x99369d35, 0xffffd876ffffdd9d}, + {0x99369d36, 0xffffd876ffffdd9e}, + {0x99369d37, 0xffffd876ffffdd9f}, + {0x99369d38, 0xffffd876ffffdda0}, + {0x99369d39, 0xffffd876ffffdda1}, + {0x99369e30, 0xffffd876ffffdda2}, + {0x99369e31, 0xffffd876ffffdda3}, + {0x99369e32, 0xffffd876ffffdda4}, + {0x99369e33, 0xffffd876ffffdda5}, + {0x99369e34, 0xffffd876ffffdda6}, + {0x99369e35, 0xffffd876ffffdda7}, + {0x99369e36, 0xffffd876ffffdda8}, + {0x99369e37, 0xffffd876ffffdda9}, + {0x99369e38, 0xffffd876ffffddaa}, + {0x99369e39, 0xffffd876ffffddab}, + {0x99369f30, 0xffffd876ffffddac}, + {0x99369f31, 0xffffd876ffffddad}, + {0x99369f32, 0xffffd876ffffddae}, + {0x99369f33, 0xffffd876ffffddaf}, + {0x99369f34, 0xffffd876ffffddb0}, + {0x99369f35, 0xffffd876ffffddb1}, + {0x99369f36, 0xffffd876ffffddb2}, + {0x99369f37, 0xffffd876ffffddb3}, + {0x99369f38, 0xffffd876ffffddb4}, + {0x99369f39, 0xffffd876ffffddb5}, + {0x9936a030, 0xffffd876ffffddb6}, + {0x9936a031, 0xffffd876ffffddb7}, + {0x9936a032, 0xffffd876ffffddb8}, + {0x9936a033, 0xffffd876ffffddb9}, + {0x9936a034, 0xffffd876ffffddba}, + {0x9936a035, 0xffffd876ffffddbb}, + {0x9936a036, 0xffffd876ffffddbc}, + {0x9936a037, 0xffffd876ffffddbd}, + {0x9936a038, 0xffffd876ffffddbe}, + {0x9936a039, 0xffffd876ffffddbf}, + {0x9936a130, 0xffffd876ffffddc0}, + {0x9936a131, 0xffffd876ffffddc1}, + {0x9936a132, 0xffffd876ffffddc2}, + {0x9936a133, 0xffffd876ffffddc3}, + {0x9936a134, 0xffffd876ffffddc4}, + {0x9936a135, 0xffffd876ffffddc5}, + {0x9936a136, 0xffffd876ffffddc6}, + {0x9936a137, 0xffffd876ffffddc7}, + {0x9936a138, 0xffffd876ffffddc8}, + {0x9936a139, 0xffffd876ffffddc9}, + {0x9936a230, 0xffffd876ffffddca}, + {0x9936a231, 0xffffd876ffffddcb}, + {0x9936a232, 0xffffd876ffffddcc}, + {0x9936a233, 0xffffd876ffffddcd}, + {0x9936a234, 0xffffd876ffffddce}, + {0x9936a235, 0xffffd876ffffddcf}, + {0x9936a236, 0xffffd876ffffddd0}, + {0x9936a237, 0xffffd876ffffddd1}, + {0x9936a238, 0xffffd876ffffddd2}, + {0x9936a239, 0xffffd876ffffddd3}, + {0x9936a330, 0xffffd876ffffddd4}, + {0x9936a331, 0xffffd876ffffddd5}, + {0x9936a332, 0xffffd876ffffddd6}, + {0x9936a333, 0xffffd876ffffddd7}, + {0x9936a334, 0xffffd876ffffddd8}, + {0x9936a335, 0xffffd876ffffddd9}, + {0x9936a336, 0xffffd876ffffddda}, + {0x9936a337, 0xffffd876ffffdddb}, + {0x9936a338, 0xffffd876ffffdddc}, + {0x9936a339, 0xffffd876ffffdddd}, + {0x9936a430, 0xffffd876ffffddde}, + {0x9936a431, 0xffffd876ffffdddf}, + {0x9936a432, 0xffffd876ffffdde0}, + {0x9936a433, 0xffffd876ffffdde1}, + {0x9936a434, 0xffffd876ffffdde2}, + {0x9936a435, 0xffffd876ffffdde3}, + {0x9936a436, 0xffffd876ffffdde4}, + {0x9936a437, 0xffffd876ffffdde5}, + {0x9936a438, 0xffffd876ffffdde6}, + {0x9936a439, 0xffffd876ffffdde7}, + {0x9936a530, 0xffffd876ffffdde8}, + {0x9936a531, 0xffffd876ffffdde9}, + {0x9936a532, 0xffffd876ffffddea}, + {0x9936a533, 0xffffd876ffffddeb}, + {0x9936a534, 0xffffd876ffffddec}, + {0x9936a535, 0xffffd876ffffdded}, + {0x9936a536, 0xffffd876ffffddee}, + {0x9936a537, 0xffffd876ffffddef}, + {0x9936a538, 0xffffd876ffffddf0}, + {0x9936a539, 0xffffd876ffffddf1}, + {0x9936a630, 0xffffd876ffffddf2}, + {0x9936a631, 0xffffd876ffffddf3}, + {0x9936a632, 0xffffd876ffffddf4}, + {0x9936a633, 0xffffd876ffffddf5}, + {0x9936a634, 0xffffd876ffffddf6}, + {0x9936a635, 0xffffd876ffffddf7}, + {0x9936a636, 0xffffd876ffffddf8}, + {0x9936a637, 0xffffd876ffffddf9}, + {0x9936a638, 0xffffd876ffffddfa}, + {0x9936a639, 0xffffd876ffffddfb}, + {0x9936a730, 0xffffd876ffffddfc}, + {0x9936a731, 0xffffd876ffffddfd}, + {0x9936a732, 0xffffd876ffffddfe}, + {0x9936a733, 0xffffd876ffffddff}, + {0x9936a734, 0xffffd876ffffde00}, + {0x9936a735, 0xffffd876ffffde01}, + {0x9936a736, 0xffffd876ffffde02}, + {0x9936a737, 0xffffd876ffffde03}, + {0x9936a738, 0xffffd876ffffde04}, + {0x9936a739, 0xffffd876ffffde05}, + {0x9936a830, 0xffffd876ffffde06}, + {0x9936a831, 0xffffd876ffffde07}, + {0x9936a832, 0xffffd876ffffde08}, + {0x9936a833, 0xffffd876ffffde09}, + {0x9936a834, 0xffffd876ffffde0a}, + {0x9936a835, 0xffffd876ffffde0b}, + {0x9936a836, 0xffffd876ffffde0c}, + {0x9936a837, 0xffffd876ffffde0d}, + {0x9936a838, 0xffffd876ffffde0e}, + {0x9936a839, 0xffffd876ffffde0f}, + {0x9936a930, 0xffffd876ffffde10}, + {0x9936a931, 0xffffd876ffffde11}, + {0x9936a932, 0xffffd876ffffde12}, + {0x9936a933, 0xffffd876ffffde13}, + {0x9936a934, 0xffffd876ffffde14}, + {0x9936a935, 0xffffd876ffffde15}, + {0x9936a936, 0xffffd876ffffde16}, + {0x9936a937, 0xffffd876ffffde17}, + {0x9936a938, 0xffffd876ffffde18}, + {0x9936a939, 0xffffd876ffffde19}, + {0x9936aa30, 0xffffd876ffffde1a}, + {0x9936aa31, 0xffffd876ffffde1b}, + {0x9936aa32, 0xffffd876ffffde1c}, + {0x9936aa33, 0xffffd876ffffde1d}, + {0x9936aa34, 0xffffd876ffffde1e}, + {0x9936aa35, 0xffffd876ffffde1f}, + {0x9936aa36, 0xffffd876ffffde20}, + {0x9936aa37, 0xffffd876ffffde21}, + {0x9936aa38, 0xffffd876ffffde22}, + {0x9936aa39, 0xffffd876ffffde23}, + {0x9936ab30, 0xffffd876ffffde24}, + {0x9936ab31, 0xffffd876ffffde25}, + {0x9936ab32, 0xffffd876ffffde26}, + {0x9936ab33, 0xffffd876ffffde27}, + {0x9936ab34, 0xffffd876ffffde28}, + {0x9936ab35, 0xffffd876ffffde29}, + {0x9936ab36, 0xffffd876ffffde2a}, + {0x9936ab37, 0xffffd876ffffde2b}, + {0x9936ab38, 0xffffd876ffffde2c}, + {0x9936ab39, 0xffffd876ffffde2d}, + {0x9936ac30, 0xffffd876ffffde2e}, + {0x9936ac31, 0xffffd876ffffde2f}, + {0x9936ac32, 0xffffd876ffffde30}, + {0x9936ac33, 0xffffd876ffffde31}, + {0x9936ac34, 0xffffd876ffffde32}, + {0x9936ac35, 0xffffd876ffffde33}, + {0x9936ac36, 0xffffd876ffffde34}, + {0x9936ac37, 0xffffd876ffffde35}, + {0x9936ac38, 0xffffd876ffffde36}, + {0x9936ac39, 0xffffd876ffffde37}, + {0x9936ad30, 0xffffd876ffffde38}, + {0x9936ad31, 0xffffd876ffffde39}, + {0x9936ad32, 0xffffd876ffffde3a}, + {0x9936ad33, 0xffffd876ffffde3b}, + {0x9936ad34, 0xffffd876ffffde3c}, + {0x9936ad35, 0xffffd876ffffde3d}, + {0x9936ad36, 0xffffd876ffffde3e}, + {0x9936ad37, 0xffffd876ffffde3f}, + {0x9936ad38, 0xffffd876ffffde40}, + {0x9936ad39, 0xffffd876ffffde41}, + {0x9936ae30, 0xffffd876ffffde42}, + {0x9936ae31, 0xffffd876ffffde43}, + {0x9936ae32, 0xffffd876ffffde44}, + {0x9936ae33, 0xffffd876ffffde45}, + {0x9936ae34, 0xffffd876ffffde46}, + {0x9936ae35, 0xffffd876ffffde47}, + {0x9936ae36, 0xffffd876ffffde48}, + {0x9936ae37, 0xffffd876ffffde49}, + {0x9936ae38, 0xffffd876ffffde4a}, + {0x9936ae39, 0xffffd876ffffde4b}, + {0x9936af30, 0xffffd876ffffde4c}, + {0x9936af31, 0xffffd876ffffde4d}, + {0x9936af32, 0xffffd876ffffde4e}, + {0x9936af33, 0xffffd876ffffde4f}, + {0x9936af34, 0xffffd876ffffde50}, + {0x9936af35, 0xffffd876ffffde51}, + {0x9936af36, 0xffffd876ffffde52}, + {0x9936af37, 0xffffd876ffffde53}, + {0x9936af38, 0xffffd876ffffde54}, + {0x9936af39, 0xffffd876ffffde55}, + {0x9936b030, 0xffffd876ffffde56}, + {0x9936b031, 0xffffd876ffffde57}, + {0x9936b032, 0xffffd876ffffde58}, + {0x9936b033, 0xffffd876ffffde59}, + {0x9936b034, 0xffffd876ffffde5a}, + {0x9936b035, 0xffffd876ffffde5b}, + {0x9936b036, 0xffffd876ffffde5c}, + {0x9936b037, 0xffffd876ffffde5d}, + {0x9936b038, 0xffffd876ffffde5e}, + {0x9936b039, 0xffffd876ffffde5f}, + {0x9936b130, 0xffffd876ffffde60}, + {0x9936b131, 0xffffd876ffffde61}, + {0x9936b132, 0xffffd876ffffde62}, + {0x9936b133, 0xffffd876ffffde63}, + {0x9936b134, 0xffffd876ffffde64}, + {0x9936b135, 0xffffd876ffffde65}, + {0x9936b136, 0xffffd876ffffde66}, + {0x9936b137, 0xffffd876ffffde67}, + {0x9936b138, 0xffffd876ffffde68}, + {0x9936b139, 0xffffd876ffffde69}, + {0x9936b230, 0xffffd876ffffde6a}, + {0x9936b231, 0xffffd876ffffde6b}, + {0x9936b232, 0xffffd876ffffde6c}, + {0x9936b233, 0xffffd876ffffde6d}, + {0x9936b234, 0xffffd876ffffde6e}, + {0x9936b235, 0xffffd876ffffde6f}, + {0x9936b236, 0xffffd876ffffde70}, + {0x9936b237, 0xffffd876ffffde71}, + {0x9936b238, 0xffffd876ffffde72}, + {0x9936b239, 0xffffd876ffffde73}, + {0x9936b330, 0xffffd876ffffde74}, + {0x9936b331, 0xffffd876ffffde75}, + {0x9936b332, 0xffffd876ffffde76}, + {0x9936b333, 0xffffd876ffffde77}, + {0x9936b334, 0xffffd876ffffde78}, + {0x9936b335, 0xffffd876ffffde79}, + {0x9936b336, 0xffffd876ffffde7a}, + {0x9936b337, 0xffffd876ffffde7b}, + {0x9936b338, 0xffffd876ffffde7c}, + {0x9936b339, 0xffffd876ffffde7d}, + {0x9936b430, 0xffffd876ffffde7e}, + {0x9936b431, 0xffffd876ffffde7f}, + {0x9936b432, 0xffffd876ffffde80}, + {0x9936b433, 0xffffd876ffffde81}, + {0x9936b434, 0xffffd876ffffde82}, + {0x9936b435, 0xffffd876ffffde83}, + {0x9936b436, 0xffffd876ffffde84}, + {0x9936b437, 0xffffd876ffffde85}, + {0x9936b438, 0xffffd876ffffde86}, + {0x9936b439, 0xffffd876ffffde87}, + {0x9936b530, 0xffffd876ffffde88}, + {0x9936b531, 0xffffd876ffffde89}, + {0x9936b532, 0xffffd876ffffde8a}, + {0x9936b533, 0xffffd876ffffde8b}, + {0x9936b534, 0xffffd876ffffde8c}, + {0x9936b535, 0xffffd876ffffde8d}, + {0x9936b536, 0xffffd876ffffde8e}, + {0x9936b537, 0xffffd876ffffde8f}, + {0x9936b538, 0xffffd876ffffde90}, + {0x9936b539, 0xffffd876ffffde91}, + {0x9936b630, 0xffffd876ffffde92}, + {0x9936b631, 0xffffd876ffffde93}, + {0x9936b632, 0xffffd876ffffde94}, + {0x9936b633, 0xffffd876ffffde95}, + {0x9936b634, 0xffffd876ffffde96}, + {0x9936b635, 0xffffd876ffffde97}, + {0x9936b636, 0xffffd876ffffde98}, + {0x9936b637, 0xffffd876ffffde99}, + {0x9936b638, 0xffffd876ffffde9a}, + {0x9936b639, 0xffffd876ffffde9b}, + {0x9936b730, 0xffffd876ffffde9c}, + {0x9936b731, 0xffffd876ffffde9d}, + {0x9936b732, 0xffffd876ffffde9e}, + {0x9936b733, 0xffffd876ffffde9f}, + {0x9936b734, 0xffffd876ffffdea0}, + {0x9936b735, 0xffffd876ffffdea1}, + {0x9936b736, 0xffffd876ffffdea2}, + {0x9936b737, 0xffffd876ffffdea3}, + {0x9936b738, 0xffffd876ffffdea4}, + {0x9936b739, 0xffffd876ffffdea5}, + {0x9936b830, 0xffffd876ffffdea6}, + {0x9936b831, 0xffffd876ffffdea7}, + {0x9936b832, 0xffffd876ffffdea8}, + {0x9936b833, 0xffffd876ffffdea9}, + {0x9936b834, 0xffffd876ffffdeaa}, + {0x9936b835, 0xffffd876ffffdeab}, + {0x9936b836, 0xffffd876ffffdeac}, + {0x9936b837, 0xffffd876ffffdead}, + {0x9936b838, 0xffffd876ffffdeae}, + {0x9936b839, 0xffffd876ffffdeaf}, + {0x9936b930, 0xffffd876ffffdeb0}, + {0x9936b931, 0xffffd876ffffdeb1}, + {0x9936b932, 0xffffd876ffffdeb2}, + {0x9936b933, 0xffffd876ffffdeb3}, + {0x9936b934, 0xffffd876ffffdeb4}, + {0x9936b935, 0xffffd876ffffdeb5}, + {0x9936b936, 0xffffd876ffffdeb6}, + {0x9936b937, 0xffffd876ffffdeb7}, + {0x9936b938, 0xffffd876ffffdeb8}, + {0x9936b939, 0xffffd876ffffdeb9}, + {0x9936ba30, 0xffffd876ffffdeba}, + {0x9936ba31, 0xffffd876ffffdebb}, + {0x9936ba32, 0xffffd876ffffdebc}, + {0x9936ba33, 0xffffd876ffffdebd}, + {0x9936ba34, 0xffffd876ffffdebe}, + {0x9936ba35, 0xffffd876ffffdebf}, + {0x9936ba36, 0xffffd876ffffdec0}, + {0x9936ba37, 0xffffd876ffffdec1}, + {0x9936ba38, 0xffffd876ffffdec2}, + {0x9936ba39, 0xffffd876ffffdec3}, + {0x9936bb30, 0xffffd876ffffdec4}, + {0x9936bb31, 0xffffd876ffffdec5}, + {0x9936bb32, 0xffffd876ffffdec6}, + {0x9936bb33, 0xffffd876ffffdec7}, + {0x9936bb34, 0xffffd876ffffdec8}, + {0x9936bb35, 0xffffd876ffffdec9}, + {0x9936bb36, 0xffffd876ffffdeca}, + {0x9936bb37, 0xffffd876ffffdecb}, + {0x9936bb38, 0xffffd876ffffdecc}, + {0x9936bb39, 0xffffd876ffffdecd}, + {0x9936bc30, 0xffffd876ffffdece}, + {0x9936bc31, 0xffffd876ffffdecf}, + {0x9936bc32, 0xffffd876ffffded0}, + {0x9936bc33, 0xffffd876ffffded1}, + {0x9936bc34, 0xffffd876ffffded2}, + {0x9936bc35, 0xffffd876ffffded3}, + {0x9936bc36, 0xffffd876ffffded4}, + {0x9936bc37, 0xffffd876ffffded5}, + {0x9936bc38, 0xffffd876ffffded6}, + {0x9936bc39, 0xffffd876ffffded7}, + {0x9936bd30, 0xffffd876ffffded8}, + {0x9936bd31, 0xffffd876ffffded9}, + {0x9936bd32, 0xffffd876ffffdeda}, + {0x9936bd33, 0xffffd876ffffdedb}, + {0x9936bd34, 0xffffd876ffffdedc}, + {0x9936bd35, 0xffffd876ffffdedd}, + {0x9936bd36, 0xffffd876ffffdede}, + {0x9936bd37, 0xffffd876ffffdedf}, + {0x9936bd38, 0xffffd876ffffdee0}, + {0x9936bd39, 0xffffd876ffffdee1}, + {0x9936be30, 0xffffd876ffffdee2}, + {0x9936be31, 0xffffd876ffffdee3}, + {0x9936be32, 0xffffd876ffffdee4}, + {0x9936be33, 0xffffd876ffffdee5}, + {0x9936be34, 0xffffd876ffffdee6}, + {0x9936be35, 0xffffd876ffffdee7}, + {0x9936be36, 0xffffd876ffffdee8}, + {0x9936be37, 0xffffd876ffffdee9}, + {0x9936be38, 0xffffd876ffffdeea}, + {0x9936be39, 0xffffd876ffffdeeb}, + {0x9936bf30, 0xffffd876ffffdeec}, + {0x9936bf31, 0xffffd876ffffdeed}, + {0x9936bf32, 0xffffd876ffffdeee}, + {0x9936bf33, 0xffffd876ffffdeef}, + {0x9936bf34, 0xffffd876ffffdef0}, + {0x9936bf35, 0xffffd876ffffdef1}, + {0x9936bf36, 0xffffd876ffffdef2}, + {0x9936bf37, 0xffffd876ffffdef3}, + {0x9936bf38, 0xffffd876ffffdef4}, + {0x9936bf39, 0xffffd876ffffdef5}, + {0x9936c030, 0xffffd876ffffdef6}, + {0x9936c031, 0xffffd876ffffdef7}, + {0x9936c032, 0xffffd876ffffdef8}, + {0x9936c033, 0xffffd876ffffdef9}, + {0x9936c034, 0xffffd876ffffdefa}, + {0x9936c035, 0xffffd876ffffdefb}, + {0x9936c036, 0xffffd876ffffdefc}, + {0x9936c037, 0xffffd876ffffdefd}, + {0x9936c038, 0xffffd876ffffdefe}, + {0x9936c039, 0xffffd876ffffdeff}, + {0x9936c130, 0xffffd876ffffdf00}, + {0x9936c131, 0xffffd876ffffdf01}, + {0x9936c132, 0xffffd876ffffdf02}, + {0x9936c133, 0xffffd876ffffdf03}, + {0x9936c134, 0xffffd876ffffdf04}, + {0x9936c135, 0xffffd876ffffdf05}, + {0x9936c136, 0xffffd876ffffdf06}, + {0x9936c137, 0xffffd876ffffdf07}, + {0x9936c138, 0xffffd876ffffdf08}, + {0x9936c139, 0xffffd876ffffdf09}, + {0x9936c230, 0xffffd876ffffdf0a}, + {0x9936c231, 0xffffd876ffffdf0b}, + {0x9936c232, 0xffffd876ffffdf0c}, + {0x9936c233, 0xffffd876ffffdf0d}, + {0x9936c234, 0xffffd876ffffdf0e}, + {0x9936c235, 0xffffd876ffffdf0f}, + {0x9936c236, 0xffffd876ffffdf10}, + {0x9936c237, 0xffffd876ffffdf11}, + {0x9936c238, 0xffffd876ffffdf12}, + {0x9936c239, 0xffffd876ffffdf13}, + {0x9936c330, 0xffffd876ffffdf14}, + {0x9936c331, 0xffffd876ffffdf15}, + {0x9936c332, 0xffffd876ffffdf16}, + {0x9936c333, 0xffffd876ffffdf17}, + {0x9936c334, 0xffffd876ffffdf18}, + {0x9936c335, 0xffffd876ffffdf19}, + {0x9936c336, 0xffffd876ffffdf1a}, + {0x9936c337, 0xffffd876ffffdf1b}, + {0x9936c338, 0xffffd876ffffdf1c}, + {0x9936c339, 0xffffd876ffffdf1d}, + {0x9936c430, 0xffffd876ffffdf1e}, + {0x9936c431, 0xffffd876ffffdf1f}, + {0x9936c432, 0xffffd876ffffdf20}, + {0x9936c433, 0xffffd876ffffdf21}, + {0x9936c434, 0xffffd876ffffdf22}, + {0x9936c435, 0xffffd876ffffdf23}, + {0x9936c436, 0xffffd876ffffdf24}, + {0x9936c437, 0xffffd876ffffdf25}, + {0x9936c438, 0xffffd876ffffdf26}, + {0x9936c439, 0xffffd876ffffdf27}, + {0x9936c530, 0xffffd876ffffdf28}, + {0x9936c531, 0xffffd876ffffdf29}, + {0x9936c532, 0xffffd876ffffdf2a}, + {0x9936c533, 0xffffd876ffffdf2b}, + {0x9936c534, 0xffffd876ffffdf2c}, + {0x9936c535, 0xffffd876ffffdf2d}, + {0x9936c536, 0xffffd876ffffdf2e}, + {0x9936c537, 0xffffd876ffffdf2f}, + {0x9936c538, 0xffffd876ffffdf30}, + {0x9936c539, 0xffffd876ffffdf31}, + {0x9936c630, 0xffffd876ffffdf32}, + {0x9936c631, 0xffffd876ffffdf33}, + {0x9936c632, 0xffffd876ffffdf34}, + {0x9936c633, 0xffffd876ffffdf35}, + {0x9936c634, 0xffffd876ffffdf36}, + {0x9936c635, 0xffffd876ffffdf37}, + {0x9936c636, 0xffffd876ffffdf38}, + {0x9936c637, 0xffffd876ffffdf39}, + {0x9936c638, 0xffffd876ffffdf3a}, + {0x9936c639, 0xffffd876ffffdf3b}, + {0x9936c730, 0xffffd876ffffdf3c}, + {0x9936c731, 0xffffd876ffffdf3d}, + {0x9936c732, 0xffffd876ffffdf3e}, + {0x9936c733, 0xffffd876ffffdf3f}, + {0x9936c734, 0xffffd876ffffdf40}, + {0x9936c735, 0xffffd876ffffdf41}, + {0x9936c736, 0xffffd876ffffdf42}, + {0x9936c737, 0xffffd876ffffdf43}, + {0x9936c738, 0xffffd876ffffdf44}, + {0x9936c739, 0xffffd876ffffdf45}, + {0x9936c830, 0xffffd876ffffdf46}, + {0x9936c831, 0xffffd876ffffdf47}, + {0x9936c832, 0xffffd876ffffdf48}, + {0x9936c833, 0xffffd876ffffdf49}, + {0x9936c834, 0xffffd876ffffdf4a}, + {0x9936c835, 0xffffd876ffffdf4b}, + {0x9936c836, 0xffffd876ffffdf4c}, + {0x9936c837, 0xffffd876ffffdf4d}, + {0x9936c838, 0xffffd876ffffdf4e}, + {0x9936c839, 0xffffd876ffffdf4f}, + {0x9936c930, 0xffffd876ffffdf50}, + {0x9936c931, 0xffffd876ffffdf51}, + {0x9936c932, 0xffffd876ffffdf52}, + {0x9936c933, 0xffffd876ffffdf53}, + {0x9936c934, 0xffffd876ffffdf54}, + {0x9936c935, 0xffffd876ffffdf55}, + {0x9936c936, 0xffffd876ffffdf56}, + {0x9936c937, 0xffffd876ffffdf57}, + {0x9936c938, 0xffffd876ffffdf58}, + {0x9936c939, 0xffffd876ffffdf59}, + {0x9936ca30, 0xffffd876ffffdf5a}, + {0x9936ca31, 0xffffd876ffffdf5b}, + {0x9936ca32, 0xffffd876ffffdf5c}, + {0x9936ca33, 0xffffd876ffffdf5d}, + {0x9936ca34, 0xffffd876ffffdf5e}, + {0x9936ca35, 0xffffd876ffffdf5f}, + {0x9936ca36, 0xffffd876ffffdf60}, + {0x9936ca37, 0xffffd876ffffdf61}, + {0x9936ca38, 0xffffd876ffffdf62}, + {0x9936ca39, 0xffffd876ffffdf63}, + {0x9936cb30, 0xffffd876ffffdf64}, + {0x9936cb31, 0xffffd876ffffdf65}, + {0x9936cb32, 0xffffd876ffffdf66}, + {0x9936cb33, 0xffffd876ffffdf67}, + {0x9936cb34, 0xffffd876ffffdf68}, + {0x9936cb35, 0xffffd876ffffdf69}, + {0x9936cb36, 0xffffd876ffffdf6a}, + {0x9936cb37, 0xffffd876ffffdf6b}, + {0x9936cb38, 0xffffd876ffffdf6c}, + {0x9936cb39, 0xffffd876ffffdf6d}, + {0x9936cc30, 0xffffd876ffffdf6e}, + {0x9936cc31, 0xffffd876ffffdf6f}, + {0x9936cc32, 0xffffd876ffffdf70}, + {0x9936cc33, 0xffffd876ffffdf71}, + {0x9936cc34, 0xffffd876ffffdf72}, + {0x9936cc35, 0xffffd876ffffdf73}, + {0x9936cc36, 0xffffd876ffffdf74}, + {0x9936cc37, 0xffffd876ffffdf75}, + {0x9936cc38, 0xffffd876ffffdf76}, + {0x9936cc39, 0xffffd876ffffdf77}, + {0x9936cd30, 0xffffd876ffffdf78}, + {0x9936cd31, 0xffffd876ffffdf79}, + {0x9936cd32, 0xffffd876ffffdf7a}, + {0x9936cd33, 0xffffd876ffffdf7b}, + {0x9936cd34, 0xffffd876ffffdf7c}, + {0x9936cd35, 0xffffd876ffffdf7d}, + {0x9936cd36, 0xffffd876ffffdf7e}, + {0x9936cd37, 0xffffd876ffffdf7f}, + {0x9936cd38, 0xffffd876ffffdf80}, + {0x9936cd39, 0xffffd876ffffdf81}, + {0x9936ce30, 0xffffd876ffffdf82}, + {0x9936ce31, 0xffffd876ffffdf83}, + {0x9936ce32, 0xffffd876ffffdf84}, + {0x9936ce33, 0xffffd876ffffdf85}, + {0x9936ce34, 0xffffd876ffffdf86}, + {0x9936ce35, 0xffffd876ffffdf87}, + {0x9936ce36, 0xffffd876ffffdf88}, + {0x9936ce37, 0xffffd876ffffdf89}, + {0x9936ce38, 0xffffd876ffffdf8a}, + {0x9936ce39, 0xffffd876ffffdf8b}, + {0x9936cf30, 0xffffd876ffffdf8c}, + {0x9936cf31, 0xffffd876ffffdf8d}, + {0x9936cf32, 0xffffd876ffffdf8e}, + {0x9936cf33, 0xffffd876ffffdf8f}, + {0x9936cf34, 0xffffd876ffffdf90}, + {0x9936cf35, 0xffffd876ffffdf91}, + {0x9936cf36, 0xffffd876ffffdf92}, + {0x9936cf37, 0xffffd876ffffdf93}, + {0x9936cf38, 0xffffd876ffffdf94}, + {0x9936cf39, 0xffffd876ffffdf95}, + {0x9936d030, 0xffffd876ffffdf96}, + {0x9936d031, 0xffffd876ffffdf97}, + {0x9936d032, 0xffffd876ffffdf98}, + {0x9936d033, 0xffffd876ffffdf99}, + {0x9936d034, 0xffffd876ffffdf9a}, + {0x9936d035, 0xffffd876ffffdf9b}, + {0x9936d036, 0xffffd876ffffdf9c}, + {0x9936d037, 0xffffd876ffffdf9d}, + {0x9936d038, 0xffffd876ffffdf9e}, + {0x9936d039, 0xffffd876ffffdf9f}, + {0x9936d130, 0xffffd876ffffdfa0}, + {0x9936d131, 0xffffd876ffffdfa1}, + {0x9936d132, 0xffffd876ffffdfa2}, + {0x9936d133, 0xffffd876ffffdfa3}, + {0x9936d134, 0xffffd876ffffdfa4}, + {0x9936d135, 0xffffd876ffffdfa5}, + {0x9936d136, 0xffffd876ffffdfa6}, + {0x9936d137, 0xffffd876ffffdfa7}, + {0x9936d138, 0xffffd876ffffdfa8}, + {0x9936d139, 0xffffd876ffffdfa9}, + {0x9936d230, 0xffffd876ffffdfaa}, + {0x9936d231, 0xffffd876ffffdfab}, + {0x9936d232, 0xffffd876ffffdfac}, + {0x9936d233, 0xffffd876ffffdfad}, + {0x9936d234, 0xffffd876ffffdfae}, + {0x9936d235, 0xffffd876ffffdfaf}, + {0x9936d236, 0xffffd876ffffdfb0}, + {0x9936d237, 0xffffd876ffffdfb1}, + {0x9936d238, 0xffffd876ffffdfb2}, + {0x9936d239, 0xffffd876ffffdfb3}, + {0x9936d330, 0xffffd876ffffdfb4}, + {0x9936d331, 0xffffd876ffffdfb5}, + {0x9936d332, 0xffffd876ffffdfb6}, + {0x9936d333, 0xffffd876ffffdfb7}, + {0x9936d334, 0xffffd876ffffdfb8}, + {0x9936d335, 0xffffd876ffffdfb9}, + {0x9936d336, 0xffffd876ffffdfba}, + {0x9936d337, 0xffffd876ffffdfbb}, + {0x9936d338, 0xffffd876ffffdfbc}, + {0x9936d339, 0xffffd876ffffdfbd}, + {0x9936d430, 0xffffd876ffffdfbe}, + {0x9936d431, 0xffffd876ffffdfbf}, + {0x9936d432, 0xffffd876ffffdfc0}, + {0x9936d433, 0xffffd876ffffdfc1}, + {0x9936d434, 0xffffd876ffffdfc2}, + {0x9936d435, 0xffffd876ffffdfc3}, + {0x9936d436, 0xffffd876ffffdfc4}, + {0x9936d437, 0xffffd876ffffdfc5}, + {0x9936d438, 0xffffd876ffffdfc6}, + {0x9936d439, 0xffffd876ffffdfc7}, + {0x9936d530, 0xffffd876ffffdfc8}, + {0x9936d531, 0xffffd876ffffdfc9}, + {0x9936d532, 0xffffd876ffffdfca}, + {0x9936d533, 0xffffd876ffffdfcb}, + {0x9936d534, 0xffffd876ffffdfcc}, + {0x9936d535, 0xffffd876ffffdfcd}, + {0x9936d536, 0xffffd876ffffdfce}, + {0x9936d537, 0xffffd876ffffdfcf}, + {0x9936d538, 0xffffd876ffffdfd0}, + {0x9936d539, 0xffffd876ffffdfd1}, + {0x9936d630, 0xffffd876ffffdfd2}, + {0x9936d631, 0xffffd876ffffdfd3}, + {0x9936d632, 0xffffd876ffffdfd4}, + {0x9936d633, 0xffffd876ffffdfd5}, + {0x9936d634, 0xffffd876ffffdfd6}, + {0x9936d635, 0xffffd876ffffdfd7}, + {0x9936d636, 0xffffd876ffffdfd8}, + {0x9936d637, 0xffffd876ffffdfd9}, + {0x9936d638, 0xffffd876ffffdfda}, + {0x9936d639, 0xffffd876ffffdfdb}, + {0x9936d730, 0xffffd876ffffdfdc}, + {0x9936d731, 0xffffd876ffffdfdd}, + {0x9936d732, 0xffffd876ffffdfde}, + {0x9936d733, 0xffffd876ffffdfdf}, + {0x9936d734, 0xffffd876ffffdfe0}, + {0x9936d735, 0xffffd876ffffdfe1}, + {0x9936d736, 0xffffd876ffffdfe2}, + {0x9936d737, 0xffffd876ffffdfe3}, + {0x9936d738, 0xffffd876ffffdfe4}, + {0x9936d739, 0xffffd876ffffdfe5}, + {0x9936d830, 0xffffd876ffffdfe6}, + {0x9936d831, 0xffffd876ffffdfe7}, + {0x9936d832, 0xffffd876ffffdfe8}, + {0x9936d833, 0xffffd876ffffdfe9}, + {0x9936d834, 0xffffd876ffffdfea}, + {0x9936d835, 0xffffd876ffffdfeb}, + {0x9936d836, 0xffffd876ffffdfec}, + {0x9936d837, 0xffffd876ffffdfed}, + {0x9936d838, 0xffffd876ffffdfee}, + {0x9936d839, 0xffffd876ffffdfef}, + {0x9936d930, 0xffffd876ffffdff0}, + {0x9936d931, 0xffffd876ffffdff1}, + {0x9936d932, 0xffffd876ffffdff2}, + {0x9936d933, 0xffffd876ffffdff3}, + {0x9936d934, 0xffffd876ffffdff4}, + {0x9936d935, 0xffffd876ffffdff5}, + {0x9936d936, 0xffffd876ffffdff6}, + {0x9936d937, 0xffffd876ffffdff7}, + {0x9936d938, 0xffffd876ffffdff8}, + {0x9936d939, 0xffffd876ffffdff9}, + {0x9936da30, 0xffffd876ffffdffa}, + {0x9936da31, 0xffffd876ffffdffb}, + {0x9936da32, 0xffffd876ffffdffc}, + {0x9936da33, 0xffffd876ffffdffd}, + {0x9936da34, 0xffffd876ffffdffe}, + {0x9936da35, 0xffffd876ffffdfff}, + {0x9936da36, 0xffffd877ffffdc00}, + {0x9936da37, 0xffffd877ffffdc01}, + {0x9936da38, 0xffffd877ffffdc02}, + {0x9936da39, 0xffffd877ffffdc03}, + {0x9936db30, 0xffffd877ffffdc04}, + {0x9936db31, 0xffffd877ffffdc05}, + {0x9936db32, 0xffffd877ffffdc06}, + {0x9936db33, 0xffffd877ffffdc07}, + {0x9936db34, 0xffffd877ffffdc08}, + {0x9936db35, 0xffffd877ffffdc09}, + {0x9936db36, 0xffffd877ffffdc0a}, + {0x9936db37, 0xffffd877ffffdc0b}, + {0x9936db38, 0xffffd877ffffdc0c}, + {0x9936db39, 0xffffd877ffffdc0d}, + {0x9936dc30, 0xffffd877ffffdc0e}, + {0x9936dc31, 0xffffd877ffffdc0f}, + {0x9936dc32, 0xffffd877ffffdc10}, + {0x9936dc33, 0xffffd877ffffdc11}, + {0x9936dc34, 0xffffd877ffffdc12}, + {0x9936dc35, 0xffffd877ffffdc13}, + {0x9936dc36, 0xffffd877ffffdc14}, + {0x9936dc37, 0xffffd877ffffdc15}, + {0x9936dc38, 0xffffd877ffffdc16}, + {0x9936dc39, 0xffffd877ffffdc17}, + {0x9936dd30, 0xffffd877ffffdc18}, + {0x9936dd31, 0xffffd877ffffdc19}, + {0x9936dd32, 0xffffd877ffffdc1a}, + {0x9936dd33, 0xffffd877ffffdc1b}, + {0x9936dd34, 0xffffd877ffffdc1c}, + {0x9936dd35, 0xffffd877ffffdc1d}, + {0x9936dd36, 0xffffd877ffffdc1e}, + {0x9936dd37, 0xffffd877ffffdc1f}, + {0x9936dd38, 0xffffd877ffffdc20}, + {0x9936dd39, 0xffffd877ffffdc21}, + {0x9936de30, 0xffffd877ffffdc22}, + {0x9936de31, 0xffffd877ffffdc23}, + {0x9936de32, 0xffffd877ffffdc24}, + {0x9936de33, 0xffffd877ffffdc25}, + {0x9936de34, 0xffffd877ffffdc26}, + {0x9936de35, 0xffffd877ffffdc27}, + {0x9936de36, 0xffffd877ffffdc28}, + {0x9936de37, 0xffffd877ffffdc29}, + {0x9936de38, 0xffffd877ffffdc2a}, + {0x9936de39, 0xffffd877ffffdc2b}, + {0x9936df30, 0xffffd877ffffdc2c}, + {0x9936df31, 0xffffd877ffffdc2d}, + {0x9936df32, 0xffffd877ffffdc2e}, + {0x9936df33, 0xffffd877ffffdc2f}, + {0x9936df34, 0xffffd877ffffdc30}, + {0x9936df35, 0xffffd877ffffdc31}, + {0x9936df36, 0xffffd877ffffdc32}, + {0x9936df37, 0xffffd877ffffdc33}, + {0x9936df38, 0xffffd877ffffdc34}, + {0x9936df39, 0xffffd877ffffdc35}, + {0x9936e030, 0xffffd877ffffdc36}, + {0x9936e031, 0xffffd877ffffdc37}, + {0x9936e032, 0xffffd877ffffdc38}, + {0x9936e033, 0xffffd877ffffdc39}, + {0x9936e034, 0xffffd877ffffdc3a}, + {0x9936e035, 0xffffd877ffffdc3b}, + {0x9936e036, 0xffffd877ffffdc3c}, + {0x9936e037, 0xffffd877ffffdc3d}, + {0x9936e038, 0xffffd877ffffdc3e}, + {0x9936e039, 0xffffd877ffffdc3f}, + {0x9936e130, 0xffffd877ffffdc40}, + {0x9936e131, 0xffffd877ffffdc41}, + {0x9936e132, 0xffffd877ffffdc42}, + {0x9936e133, 0xffffd877ffffdc43}, + {0x9936e134, 0xffffd877ffffdc44}, + {0x9936e135, 0xffffd877ffffdc45}, + {0x9936e136, 0xffffd877ffffdc46}, + {0x9936e137, 0xffffd877ffffdc47}, + {0x9936e138, 0xffffd877ffffdc48}, + {0x9936e139, 0xffffd877ffffdc49}, + {0x9936e230, 0xffffd877ffffdc4a}, + {0x9936e231, 0xffffd877ffffdc4b}, + {0x9936e232, 0xffffd877ffffdc4c}, + {0x9936e233, 0xffffd877ffffdc4d}, + {0x9936e234, 0xffffd877ffffdc4e}, + {0x9936e235, 0xffffd877ffffdc4f}, + {0x9936e236, 0xffffd877ffffdc50}, + {0x9936e237, 0xffffd877ffffdc51}, + {0x9936e238, 0xffffd877ffffdc52}, + {0x9936e239, 0xffffd877ffffdc53}, + {0x9936e330, 0xffffd877ffffdc54}, + {0x9936e331, 0xffffd877ffffdc55}, + {0x9936e332, 0xffffd877ffffdc56}, + {0x9936e333, 0xffffd877ffffdc57}, + {0x9936e334, 0xffffd877ffffdc58}, + {0x9936e335, 0xffffd877ffffdc59}, + {0x9936e336, 0xffffd877ffffdc5a}, + {0x9936e337, 0xffffd877ffffdc5b}, + {0x9936e338, 0xffffd877ffffdc5c}, + {0x9936e339, 0xffffd877ffffdc5d}, + {0x9936e430, 0xffffd877ffffdc5e}, + {0x9936e431, 0xffffd877ffffdc5f}, + {0x9936e432, 0xffffd877ffffdc60}, + {0x9936e433, 0xffffd877ffffdc61}, + {0x9936e434, 0xffffd877ffffdc62}, + {0x9936e435, 0xffffd877ffffdc63}, + {0x9936e436, 0xffffd877ffffdc64}, + {0x9936e437, 0xffffd877ffffdc65}, + {0x9936e438, 0xffffd877ffffdc66}, + {0x9936e439, 0xffffd877ffffdc67}, + {0x9936e530, 0xffffd877ffffdc68}, + {0x9936e531, 0xffffd877ffffdc69}, + {0x9936e532, 0xffffd877ffffdc6a}, + {0x9936e533, 0xffffd877ffffdc6b}, + {0x9936e534, 0xffffd877ffffdc6c}, + {0x9936e535, 0xffffd877ffffdc6d}, + {0x9936e536, 0xffffd877ffffdc6e}, + {0x9936e537, 0xffffd877ffffdc6f}, + {0x9936e538, 0xffffd877ffffdc70}, + {0x9936e539, 0xffffd877ffffdc71}, + {0x9936e630, 0xffffd877ffffdc72}, + {0x9936e631, 0xffffd877ffffdc73}, + {0x9936e632, 0xffffd877ffffdc74}, + {0x9936e633, 0xffffd877ffffdc75}, + {0x9936e634, 0xffffd877ffffdc76}, + {0x9936e635, 0xffffd877ffffdc77}, + {0x9936e636, 0xffffd877ffffdc78}, + {0x9936e637, 0xffffd877ffffdc79}, + {0x9936e638, 0xffffd877ffffdc7a}, + {0x9936e639, 0xffffd877ffffdc7b}, + {0x9936e730, 0xffffd877ffffdc7c}, + {0x9936e731, 0xffffd877ffffdc7d}, + {0x9936e732, 0xffffd877ffffdc7e}, + {0x9936e733, 0xffffd877ffffdc7f}, + {0x9936e734, 0xffffd877ffffdc80}, + {0x9936e735, 0xffffd877ffffdc81}, + {0x9936e736, 0xffffd877ffffdc82}, + {0x9936e737, 0xffffd877ffffdc83}, + {0x9936e738, 0xffffd877ffffdc84}, + {0x9936e739, 0xffffd877ffffdc85}, + {0x9936e830, 0xffffd877ffffdc86}, + {0x9936e831, 0xffffd877ffffdc87}, + {0x9936e832, 0xffffd877ffffdc88}, + {0x9936e833, 0xffffd877ffffdc89}, + {0x9936e834, 0xffffd877ffffdc8a}, + {0x9936e835, 0xffffd877ffffdc8b}, + {0x9936e836, 0xffffd877ffffdc8c}, + {0x9936e837, 0xffffd877ffffdc8d}, + {0x9936e838, 0xffffd877ffffdc8e}, + {0x9936e839, 0xffffd877ffffdc8f}, + {0x9936e930, 0xffffd877ffffdc90}, + {0x9936e931, 0xffffd877ffffdc91}, + {0x9936e932, 0xffffd877ffffdc92}, + {0x9936e933, 0xffffd877ffffdc93}, + {0x9936e934, 0xffffd877ffffdc94}, + {0x9936e935, 0xffffd877ffffdc95}, + {0x9936e936, 0xffffd877ffffdc96}, + {0x9936e937, 0xffffd877ffffdc97}, + {0x9936e938, 0xffffd877ffffdc98}, + {0x9936e939, 0xffffd877ffffdc99}, + {0x9936ea30, 0xffffd877ffffdc9a}, + {0x9936ea31, 0xffffd877ffffdc9b}, + {0x9936ea32, 0xffffd877ffffdc9c}, + {0x9936ea33, 0xffffd877ffffdc9d}, + {0x9936ea34, 0xffffd877ffffdc9e}, + {0x9936ea35, 0xffffd877ffffdc9f}, + {0x9936ea36, 0xffffd877ffffdca0}, + {0x9936ea37, 0xffffd877ffffdca1}, + {0x9936ea38, 0xffffd877ffffdca2}, + {0x9936ea39, 0xffffd877ffffdca3}, + {0x9936eb30, 0xffffd877ffffdca4}, + {0x9936eb31, 0xffffd877ffffdca5}, + {0x9936eb32, 0xffffd877ffffdca6}, + {0x9936eb33, 0xffffd877ffffdca7}, + {0x9936eb34, 0xffffd877ffffdca8}, + {0x9936eb35, 0xffffd877ffffdca9}, + {0x9936eb36, 0xffffd877ffffdcaa}, + {0x9936eb37, 0xffffd877ffffdcab}, + {0x9936eb38, 0xffffd877ffffdcac}, + {0x9936eb39, 0xffffd877ffffdcad}, + {0x9936ec30, 0xffffd877ffffdcae}, + {0x9936ec31, 0xffffd877ffffdcaf}, + {0x9936ec32, 0xffffd877ffffdcb0}, + {0x9936ec33, 0xffffd877ffffdcb1}, + {0x9936ec34, 0xffffd877ffffdcb2}, + {0x9936ec35, 0xffffd877ffffdcb3}, + {0x9936ec36, 0xffffd877ffffdcb4}, + {0x9936ec37, 0xffffd877ffffdcb5}, + {0x9936ec38, 0xffffd877ffffdcb6}, + {0x9936ec39, 0xffffd877ffffdcb7}, + {0x9936ed30, 0xffffd877ffffdcb8}, + {0x9936ed31, 0xffffd877ffffdcb9}, + {0x9936ed32, 0xffffd877ffffdcba}, + {0x9936ed33, 0xffffd877ffffdcbb}, + {0x9936ed34, 0xffffd877ffffdcbc}, + {0x9936ed35, 0xffffd877ffffdcbd}, + {0x9936ed36, 0xffffd877ffffdcbe}, + {0x9936ed37, 0xffffd877ffffdcbf}, + {0x9936ed38, 0xffffd877ffffdcc0}, + {0x9936ed39, 0xffffd877ffffdcc1}, + {0x9936ee30, 0xffffd877ffffdcc2}, + {0x9936ee31, 0xffffd877ffffdcc3}, + {0x9936ee32, 0xffffd877ffffdcc4}, + {0x9936ee33, 0xffffd877ffffdcc5}, + {0x9936ee34, 0xffffd877ffffdcc6}, + {0x9936ee35, 0xffffd877ffffdcc7}, + {0x9936ee36, 0xffffd877ffffdcc8}, + {0x9936ee37, 0xffffd877ffffdcc9}, + {0x9936ee38, 0xffffd877ffffdcca}, + {0x9936ee39, 0xffffd877ffffdccb}, + {0x9936ef30, 0xffffd877ffffdccc}, + {0x9936ef31, 0xffffd877ffffdccd}, + {0x9936ef32, 0xffffd877ffffdcce}, + {0x9936ef33, 0xffffd877ffffdccf}, + {0x9936ef34, 0xffffd877ffffdcd0}, + {0x9936ef35, 0xffffd877ffffdcd1}, + {0x9936ef36, 0xffffd877ffffdcd2}, + {0x9936ef37, 0xffffd877ffffdcd3}, + {0x9936ef38, 0xffffd877ffffdcd4}, + {0x9936ef39, 0xffffd877ffffdcd5}, + {0x9936f030, 0xffffd877ffffdcd6}, + {0x9936f031, 0xffffd877ffffdcd7}, + {0x9936f032, 0xffffd877ffffdcd8}, + {0x9936f033, 0xffffd877ffffdcd9}, + {0x9936f034, 0xffffd877ffffdcda}, + {0x9936f035, 0xffffd877ffffdcdb}, + {0x9936f036, 0xffffd877ffffdcdc}, + {0x9936f037, 0xffffd877ffffdcdd}, + {0x9936f038, 0xffffd877ffffdcde}, + {0x9936f039, 0xffffd877ffffdcdf}, + {0x9936f130, 0xffffd877ffffdce0}, + {0x9936f131, 0xffffd877ffffdce1}, + {0x9936f132, 0xffffd877ffffdce2}, + {0x9936f133, 0xffffd877ffffdce3}, + {0x9936f134, 0xffffd877ffffdce4}, + {0x9936f135, 0xffffd877ffffdce5}, + {0x9936f136, 0xffffd877ffffdce6}, + {0x9936f137, 0xffffd877ffffdce7}, + {0x9936f138, 0xffffd877ffffdce8}, + {0x9936f139, 0xffffd877ffffdce9}, + {0x9936f230, 0xffffd877ffffdcea}, + {0x9936f231, 0xffffd877ffffdceb}, + {0x9936f232, 0xffffd877ffffdcec}, + {0x9936f233, 0xffffd877ffffdced}, + {0x9936f234, 0xffffd877ffffdcee}, + {0x9936f235, 0xffffd877ffffdcef}, + {0x9936f236, 0xffffd877ffffdcf0}, + {0x9936f237, 0xffffd877ffffdcf1}, + {0x9936f238, 0xffffd877ffffdcf2}, + {0x9936f239, 0xffffd877ffffdcf3}, + {0x9936f330, 0xffffd877ffffdcf4}, + {0x9936f331, 0xffffd877ffffdcf5}, + {0x9936f332, 0xffffd877ffffdcf6}, + {0x9936f333, 0xffffd877ffffdcf7}, + {0x9936f334, 0xffffd877ffffdcf8}, + {0x9936f335, 0xffffd877ffffdcf9}, + {0x9936f336, 0xffffd877ffffdcfa}, + {0x9936f337, 0xffffd877ffffdcfb}, + {0x9936f338, 0xffffd877ffffdcfc}, + {0x9936f339, 0xffffd877ffffdcfd}, + {0x9936f430, 0xffffd877ffffdcfe}, + {0x9936f431, 0xffffd877ffffdcff}, + {0x9936f432, 0xffffd877ffffdd00}, + {0x9936f433, 0xffffd877ffffdd01}, + {0x9936f434, 0xffffd877ffffdd02}, + {0x9936f435, 0xffffd877ffffdd03}, + {0x9936f436, 0xffffd877ffffdd04}, + {0x9936f437, 0xffffd877ffffdd05}, + {0x9936f438, 0xffffd877ffffdd06}, + {0x9936f439, 0xffffd877ffffdd07}, + {0x9936f530, 0xffffd877ffffdd08}, + {0x9936f531, 0xffffd877ffffdd09}, + {0x9936f532, 0xffffd877ffffdd0a}, + {0x9936f533, 0xffffd877ffffdd0b}, + {0x9936f534, 0xffffd877ffffdd0c}, + {0x9936f535, 0xffffd877ffffdd0d}, + {0x9936f536, 0xffffd877ffffdd0e}, + {0x9936f537, 0xffffd877ffffdd0f}, + {0x9936f538, 0xffffd877ffffdd10}, + {0x9936f539, 0xffffd877ffffdd11}, + {0x9936f630, 0xffffd877ffffdd12}, + {0x9936f631, 0xffffd877ffffdd13}, + {0x9936f632, 0xffffd877ffffdd14}, + {0x9936f633, 0xffffd877ffffdd15}, + {0x9936f634, 0xffffd877ffffdd16}, + {0x9936f635, 0xffffd877ffffdd17}, + {0x9936f636, 0xffffd877ffffdd18}, + {0x9936f637, 0xffffd877ffffdd19}, + {0x9936f638, 0xffffd877ffffdd1a}, + {0x9936f639, 0xffffd877ffffdd1b}, + {0x9936f730, 0xffffd877ffffdd1c}, + {0x9936f731, 0xffffd877ffffdd1d}, + {0x9936f732, 0xffffd877ffffdd1e}, + {0x9936f733, 0xffffd877ffffdd1f}, + {0x9936f734, 0xffffd877ffffdd20}, + {0x9936f735, 0xffffd877ffffdd21}, + {0x9936f736, 0xffffd877ffffdd22}, + {0x9936f737, 0xffffd877ffffdd23}, + {0x9936f738, 0xffffd877ffffdd24}, + {0x9936f739, 0xffffd877ffffdd25}, + {0x9936f830, 0xffffd877ffffdd26}, + {0x9936f831, 0xffffd877ffffdd27}, + {0x9936f832, 0xffffd877ffffdd28}, + {0x9936f833, 0xffffd877ffffdd29}, + {0x9936f834, 0xffffd877ffffdd2a}, + {0x9936f835, 0xffffd877ffffdd2b}, + {0x9936f836, 0xffffd877ffffdd2c}, + {0x9936f837, 0xffffd877ffffdd2d}, + {0x9936f838, 0xffffd877ffffdd2e}, + {0x9936f839, 0xffffd877ffffdd2f}, + {0x9936f930, 0xffffd877ffffdd30}, + {0x9936f931, 0xffffd877ffffdd31}, + {0x9936f932, 0xffffd877ffffdd32}, + {0x9936f933, 0xffffd877ffffdd33}, + {0x9936f934, 0xffffd877ffffdd34}, + {0x9936f935, 0xffffd877ffffdd35}, + {0x9936f936, 0xffffd877ffffdd36}, + {0x9936f937, 0xffffd877ffffdd37}, + {0x9936f938, 0xffffd877ffffdd38}, + {0x9936f939, 0xffffd877ffffdd39}, + {0x9936fa30, 0xffffd877ffffdd3a}, + {0x9936fa31, 0xffffd877ffffdd3b}, + {0x9936fa32, 0xffffd877ffffdd3c}, + {0x9936fa33, 0xffffd877ffffdd3d}, + {0x9936fa34, 0xffffd877ffffdd3e}, + {0x9936fa35, 0xffffd877ffffdd3f}, + {0x9936fa36, 0xffffd877ffffdd40}, + {0x9936fa37, 0xffffd877ffffdd41}, + {0x9936fa38, 0xffffd877ffffdd42}, + {0x9936fa39, 0xffffd877ffffdd43}, + {0x9936fb30, 0xffffd877ffffdd44}, + {0x9936fb31, 0xffffd877ffffdd45}, + {0x9936fb32, 0xffffd877ffffdd46}, + {0x9936fb33, 0xffffd877ffffdd47}, + {0x9936fb34, 0xffffd877ffffdd48}, + {0x9936fb35, 0xffffd877ffffdd49}, + {0x9936fb36, 0xffffd877ffffdd4a}, + {0x9936fb37, 0xffffd877ffffdd4b}, + {0x9936fb38, 0xffffd877ffffdd4c}, + {0x9936fb39, 0xffffd877ffffdd4d}, + {0x9936fc30, 0xffffd877ffffdd4e}, + {0x9936fc31, 0xffffd877ffffdd4f}, + {0x9936fc32, 0xffffd877ffffdd50}, + {0x9936fc33, 0xffffd877ffffdd51}, + {0x9936fc34, 0xffffd877ffffdd52}, + {0x9936fc35, 0xffffd877ffffdd53}, + {0x9936fc36, 0xffffd877ffffdd54}, + {0x9936fc37, 0xffffd877ffffdd55}, + {0x9936fc38, 0xffffd877ffffdd56}, + {0x9936fc39, 0xffffd877ffffdd57}, + {0x9936fd30, 0xffffd877ffffdd58}, + {0x9936fd31, 0xffffd877ffffdd59}, + {0x9936fd32, 0xffffd877ffffdd5a}, + {0x9936fd33, 0xffffd877ffffdd5b}, + {0x9936fd34, 0xffffd877ffffdd5c}, + {0x9936fd35, 0xffffd877ffffdd5d}, + {0x9936fd36, 0xffffd877ffffdd5e}, + {0x9936fd37, 0xffffd877ffffdd5f}, + {0x9936fd38, 0xffffd877ffffdd60}, + {0x9936fd39, 0xffffd877ffffdd61}, + {0x9936fe30, 0xffffd877ffffdd62}, + {0x9936fe31, 0xffffd877ffffdd63}, + {0x9936fe32, 0xffffd877ffffdd64}, + {0x9936fe33, 0xffffd877ffffdd65}, + {0x9936fe34, 0xffffd877ffffdd66}, + {0x9936fe35, 0xffffd877ffffdd67}, + {0x9936fe36, 0xffffd877ffffdd68}, + {0x9936fe37, 0xffffd877ffffdd69}, + {0x9936fe38, 0xffffd877ffffdd6a}, + {0x9936fe39, 0xffffd877ffffdd6b}, + {0x99378130, 0xffffd877ffffdd6c}, + {0x99378131, 0xffffd877ffffdd6d}, + {0x99378132, 0xffffd877ffffdd6e}, + {0x99378133, 0xffffd877ffffdd6f}, + {0x99378134, 0xffffd877ffffdd70}, + {0x99378135, 0xffffd877ffffdd71}, + {0x99378136, 0xffffd877ffffdd72}, + {0x99378137, 0xffffd877ffffdd73}, + {0x99378138, 0xffffd877ffffdd74}, + {0x99378139, 0xffffd877ffffdd75}, + {0x99378230, 0xffffd877ffffdd76}, + {0x99378231, 0xffffd877ffffdd77}, + {0x99378232, 0xffffd877ffffdd78}, + {0x99378233, 0xffffd877ffffdd79}, + {0x99378234, 0xffffd877ffffdd7a}, + {0x99378235, 0xffffd877ffffdd7b}, + {0x99378236, 0xffffd877ffffdd7c}, + {0x99378237, 0xffffd877ffffdd7d}, + {0x99378238, 0xffffd877ffffdd7e}, + {0x99378239, 0xffffd877ffffdd7f}, + {0x99378330, 0xffffd877ffffdd80}, + {0x99378331, 0xffffd877ffffdd81}, + {0x99378332, 0xffffd877ffffdd82}, + {0x99378333, 0xffffd877ffffdd83}, + {0x99378334, 0xffffd877ffffdd84}, + {0x99378335, 0xffffd877ffffdd85}, + {0x99378336, 0xffffd877ffffdd86}, + {0x99378337, 0xffffd877ffffdd87}, + {0x99378338, 0xffffd877ffffdd88}, + {0x99378339, 0xffffd877ffffdd89}, + {0x99378430, 0xffffd877ffffdd8a}, + {0x99378431, 0xffffd877ffffdd8b}, + {0x99378432, 0xffffd877ffffdd8c}, + {0x99378433, 0xffffd877ffffdd8d}, + {0x99378434, 0xffffd877ffffdd8e}, + {0x99378435, 0xffffd877ffffdd8f}, + {0x99378436, 0xffffd877ffffdd90}, + {0x99378437, 0xffffd877ffffdd91}, + {0x99378438, 0xffffd877ffffdd92}, + {0x99378439, 0xffffd877ffffdd93}, + {0x99378530, 0xffffd877ffffdd94}, + {0x99378531, 0xffffd877ffffdd95}, + {0x99378532, 0xffffd877ffffdd96}, + {0x99378533, 0xffffd877ffffdd97}, + {0x99378534, 0xffffd877ffffdd98}, + {0x99378535, 0xffffd877ffffdd99}, + {0x99378536, 0xffffd877ffffdd9a}, + {0x99378537, 0xffffd877ffffdd9b}, + {0x99378538, 0xffffd877ffffdd9c}, + {0x99378539, 0xffffd877ffffdd9d}, + {0x99378630, 0xffffd877ffffdd9e}, + {0x99378631, 0xffffd877ffffdd9f}, + {0x99378632, 0xffffd877ffffdda0}, + {0x99378633, 0xffffd877ffffdda1}, + {0x99378634, 0xffffd877ffffdda2}, + {0x99378635, 0xffffd877ffffdda3}, + {0x99378636, 0xffffd877ffffdda4}, + {0x99378637, 0xffffd877ffffdda5}, + {0x99378638, 0xffffd877ffffdda6}, + {0x99378639, 0xffffd877ffffdda7}, + {0x99378730, 0xffffd877ffffdda8}, + {0x99378731, 0xffffd877ffffdda9}, + {0x99378732, 0xffffd877ffffddaa}, + {0x99378733, 0xffffd877ffffddab}, + {0x99378734, 0xffffd877ffffddac}, + {0x99378735, 0xffffd877ffffddad}, + {0x99378736, 0xffffd877ffffddae}, + {0x99378737, 0xffffd877ffffddaf}, + {0x99378738, 0xffffd877ffffddb0}, + {0x99378739, 0xffffd877ffffddb1}, + {0x99378830, 0xffffd877ffffddb2}, + {0x99378831, 0xffffd877ffffddb3}, + {0x99378832, 0xffffd877ffffddb4}, + {0x99378833, 0xffffd877ffffddb5}, + {0x99378834, 0xffffd877ffffddb6}, + {0x99378835, 0xffffd877ffffddb7}, + {0x99378836, 0xffffd877ffffddb8}, + {0x99378837, 0xffffd877ffffddb9}, + {0x99378838, 0xffffd877ffffddba}, + {0x99378839, 0xffffd877ffffddbb}, + {0x99378930, 0xffffd877ffffddbc}, + {0x99378931, 0xffffd877ffffddbd}, + {0x99378932, 0xffffd877ffffddbe}, + {0x99378933, 0xffffd877ffffddbf}, + {0x99378934, 0xffffd877ffffddc0}, + {0x99378935, 0xffffd877ffffddc1}, + {0x99378936, 0xffffd877ffffddc2}, + {0x99378937, 0xffffd877ffffddc3}, + {0x99378938, 0xffffd877ffffddc4}, + {0x99378939, 0xffffd877ffffddc5}, + {0x99378a30, 0xffffd877ffffddc6}, + {0x99378a31, 0xffffd877ffffddc7}, + {0x99378a32, 0xffffd877ffffddc8}, + {0x99378a33, 0xffffd877ffffddc9}, + {0x99378a34, 0xffffd877ffffddca}, + {0x99378a35, 0xffffd877ffffddcb}, + {0x99378a36, 0xffffd877ffffddcc}, + {0x99378a37, 0xffffd877ffffddcd}, + {0x99378a38, 0xffffd877ffffddce}, + {0x99378a39, 0xffffd877ffffddcf}, + {0x99378b30, 0xffffd877ffffddd0}, + {0x99378b31, 0xffffd877ffffddd1}, + {0x99378b32, 0xffffd877ffffddd2}, + {0x99378b33, 0xffffd877ffffddd3}, + {0x99378b34, 0xffffd877ffffddd4}, + {0x99378b35, 0xffffd877ffffddd5}, + {0x99378b36, 0xffffd877ffffddd6}, + {0x99378b37, 0xffffd877ffffddd7}, + {0x99378b38, 0xffffd877ffffddd8}, + {0x99378b39, 0xffffd877ffffddd9}, + {0x99378c30, 0xffffd877ffffddda}, + {0x99378c31, 0xffffd877ffffdddb}, + {0x99378c32, 0xffffd877ffffdddc}, + {0x99378c33, 0xffffd877ffffdddd}, + {0x99378c34, 0xffffd877ffffddde}, + {0x99378c35, 0xffffd877ffffdddf}, + {0x99378c36, 0xffffd877ffffdde0}, + {0x99378c37, 0xffffd877ffffdde1}, + {0x99378c38, 0xffffd877ffffdde2}, + {0x99378c39, 0xffffd877ffffdde3}, + {0x99378d30, 0xffffd877ffffdde4}, + {0x99378d31, 0xffffd877ffffdde5}, + {0x99378d32, 0xffffd877ffffdde6}, + {0x99378d33, 0xffffd877ffffdde7}, + {0x99378d34, 0xffffd877ffffdde8}, + {0x99378d35, 0xffffd877ffffdde9}, + {0x99378d36, 0xffffd877ffffddea}, + {0x99378d37, 0xffffd877ffffddeb}, + {0x99378d38, 0xffffd877ffffddec}, + {0x99378d39, 0xffffd877ffffdded}, + {0x99378e30, 0xffffd877ffffddee}, + {0x99378e31, 0xffffd877ffffddef}, + {0x99378e32, 0xffffd877ffffddf0}, + {0x99378e33, 0xffffd877ffffddf1}, + {0x99378e34, 0xffffd877ffffddf2}, + {0x99378e35, 0xffffd877ffffddf3}, + {0x99378e36, 0xffffd877ffffddf4}, + {0x99378e37, 0xffffd877ffffddf5}, + {0x99378e38, 0xffffd877ffffddf6}, + {0x99378e39, 0xffffd877ffffddf7}, + {0x99378f30, 0xffffd877ffffddf8}, + {0x99378f31, 0xffffd877ffffddf9}, + {0x99378f32, 0xffffd877ffffddfa}, + {0x99378f33, 0xffffd877ffffddfb}, + {0x99378f34, 0xffffd877ffffddfc}, + {0x99378f35, 0xffffd877ffffddfd}, + {0x99378f36, 0xffffd877ffffddfe}, + {0x99378f37, 0xffffd877ffffddff}, + {0x99378f38, 0xffffd877ffffde00}, + {0x99378f39, 0xffffd877ffffde01}, + {0x99379030, 0xffffd877ffffde02}, + {0x99379031, 0xffffd877ffffde03}, + {0x99379032, 0xffffd877ffffde04}, + {0x99379033, 0xffffd877ffffde05}, + {0x99379034, 0xffffd877ffffde06}, + {0x99379035, 0xffffd877ffffde07}, + {0x99379036, 0xffffd877ffffde08}, + {0x99379037, 0xffffd877ffffde09}, + {0x99379038, 0xffffd877ffffde0a}, + {0x99379039, 0xffffd877ffffde0b}, + {0x99379130, 0xffffd877ffffde0c}, + {0x99379131, 0xffffd877ffffde0d}, + {0x99379132, 0xffffd877ffffde0e}, + {0x99379133, 0xffffd877ffffde0f}, + {0x99379134, 0xffffd877ffffde10}, + {0x99379135, 0xffffd877ffffde11}, + {0x99379136, 0xffffd877ffffde12}, + {0x99379137, 0xffffd877ffffde13}, + {0x99379138, 0xffffd877ffffde14}, + {0x99379139, 0xffffd877ffffde15}, + {0x99379230, 0xffffd877ffffde16}, + {0x99379231, 0xffffd877ffffde17}, + {0x99379232, 0xffffd877ffffde18}, + {0x99379233, 0xffffd877ffffde19}, + {0x99379234, 0xffffd877ffffde1a}, + {0x99379235, 0xffffd877ffffde1b}, + {0x99379236, 0xffffd877ffffde1c}, + {0x99379237, 0xffffd877ffffde1d}, + {0x99379238, 0xffffd877ffffde1e}, + {0x99379239, 0xffffd877ffffde1f}, + {0x99379330, 0xffffd877ffffde20}, + {0x99379331, 0xffffd877ffffde21}, + {0x99379332, 0xffffd877ffffde22}, + {0x99379333, 0xffffd877ffffde23}, + {0x99379334, 0xffffd877ffffde24}, + {0x99379335, 0xffffd877ffffde25}, + {0x99379336, 0xffffd877ffffde26}, + {0x99379337, 0xffffd877ffffde27}, + {0x99379338, 0xffffd877ffffde28}, + {0x99379339, 0xffffd877ffffde29}, + {0x99379430, 0xffffd877ffffde2a}, + {0x99379431, 0xffffd877ffffde2b}, + {0x99379432, 0xffffd877ffffde2c}, + {0x99379433, 0xffffd877ffffde2d}, + {0x99379434, 0xffffd877ffffde2e}, + {0x99379435, 0xffffd877ffffde2f}, + {0x99379436, 0xffffd877ffffde30}, + {0x99379437, 0xffffd877ffffde31}, + {0x99379438, 0xffffd877ffffde32}, + {0x99379439, 0xffffd877ffffde33}, + {0x99379530, 0xffffd877ffffde34}, + {0x99379531, 0xffffd877ffffde35}, + {0x99379532, 0xffffd877ffffde36}, + {0x99379533, 0xffffd877ffffde37}, + {0x99379534, 0xffffd877ffffde38}, + {0x99379535, 0xffffd877ffffde39}, + {0x99379536, 0xffffd877ffffde3a}, + {0x99379537, 0xffffd877ffffde3b}, + {0x99379538, 0xffffd877ffffde3c}, + {0x99379539, 0xffffd877ffffde3d}, + {0x99379630, 0xffffd877ffffde3e}, + {0x99379631, 0xffffd877ffffde3f}, + {0x99379632, 0xffffd877ffffde40}, + {0x99379633, 0xffffd877ffffde41}, + {0x99379634, 0xffffd877ffffde42}, + {0x99379635, 0xffffd877ffffde43}, + {0x99379636, 0xffffd877ffffde44}, + {0x99379637, 0xffffd877ffffde45}, + {0x99379638, 0xffffd877ffffde46}, + {0x99379639, 0xffffd877ffffde47}, + {0x99379730, 0xffffd877ffffde48}, + {0x99379731, 0xffffd877ffffde49}, + {0x99379732, 0xffffd877ffffde4a}, + {0x99379733, 0xffffd877ffffde4b}, + {0x99379734, 0xffffd877ffffde4c}, + {0x99379735, 0xffffd877ffffde4d}, + {0x99379736, 0xffffd877ffffde4e}, + {0x99379737, 0xffffd877ffffde4f}, + {0x99379738, 0xffffd877ffffde50}, + {0x99379739, 0xffffd877ffffde51}, + {0x99379830, 0xffffd877ffffde52}, + {0x99379831, 0xffffd877ffffde53}, + {0x99379832, 0xffffd877ffffde54}, + {0x99379833, 0xffffd877ffffde55}, + {0x99379834, 0xffffd877ffffde56}, + {0x99379835, 0xffffd877ffffde57}, + {0x99379836, 0xffffd877ffffde58}, + {0x99379837, 0xffffd877ffffde59}, + {0x99379838, 0xffffd877ffffde5a}, + {0x99379839, 0xffffd877ffffde5b}, + {0x99379930, 0xffffd877ffffde5c}, + {0x99379931, 0xffffd877ffffde5d}, + {0x99379932, 0xffffd877ffffde5e}, + {0x99379933, 0xffffd877ffffde5f}, + {0x99379934, 0xffffd877ffffde60}, + {0x99379935, 0xffffd877ffffde61}, + {0x99379936, 0xffffd877ffffde62}, + {0x99379937, 0xffffd877ffffde63}, + {0x99379938, 0xffffd877ffffde64}, + {0x99379939, 0xffffd877ffffde65}, + {0x99379a30, 0xffffd877ffffde66}, + {0x99379a31, 0xffffd877ffffde67}, + {0x99379a32, 0xffffd877ffffde68}, + {0x99379a33, 0xffffd877ffffde69}, + {0x99379a34, 0xffffd877ffffde6a}, + {0x99379a35, 0xffffd877ffffde6b}, + {0x99379a36, 0xffffd877ffffde6c}, + {0x99379a37, 0xffffd877ffffde6d}, + {0x99379a38, 0xffffd877ffffde6e}, + {0x99379a39, 0xffffd877ffffde6f}, + {0x99379b30, 0xffffd877ffffde70}, + {0x99379b31, 0xffffd877ffffde71}, + {0x99379b32, 0xffffd877ffffde72}, + {0x99379b33, 0xffffd877ffffde73}, + {0x99379b34, 0xffffd877ffffde74}, + {0x99379b35, 0xffffd877ffffde75}, + {0x99379b36, 0xffffd877ffffde76}, + {0x99379b37, 0xffffd877ffffde77}, + {0x99379b38, 0xffffd877ffffde78}, + {0x99379b39, 0xffffd877ffffde79}, + {0x99379c30, 0xffffd877ffffde7a}, + {0x99379c31, 0xffffd877ffffde7b}, + {0x99379c32, 0xffffd877ffffde7c}, + {0x99379c33, 0xffffd877ffffde7d}, + {0x99379c34, 0xffffd877ffffde7e}, + {0x99379c35, 0xffffd877ffffde7f}, + {0x99379c36, 0xffffd877ffffde80}, + {0x99379c37, 0xffffd877ffffde81}, + {0x99379c38, 0xffffd877ffffde82}, + {0x99379c39, 0xffffd877ffffde83}, + {0x99379d30, 0xffffd877ffffde84}, + {0x99379d31, 0xffffd877ffffde85}, + {0x99379d32, 0xffffd877ffffde86}, + {0x99379d33, 0xffffd877ffffde87}, + {0x99379d34, 0xffffd877ffffde88}, + {0x99379d35, 0xffffd877ffffde89}, + {0x99379d36, 0xffffd877ffffde8a}, + {0x99379d37, 0xffffd877ffffde8b}, + {0x99379d38, 0xffffd877ffffde8c}, + {0x99379d39, 0xffffd877ffffde8d}, + {0x99379e30, 0xffffd877ffffde8e}, + {0x99379e31, 0xffffd877ffffde8f}, + {0x99379e32, 0xffffd877ffffde90}, + {0x99379e33, 0xffffd877ffffde91}, + {0x99379e34, 0xffffd877ffffde92}, + {0x99379e35, 0xffffd877ffffde93}, + {0x99379e36, 0xffffd877ffffde94}, + {0x99379e37, 0xffffd877ffffde95}, + {0x99379e38, 0xffffd877ffffde96}, + {0x99379e39, 0xffffd877ffffde97}, + {0x99379f30, 0xffffd877ffffde98}, + {0x99379f31, 0xffffd877ffffde99}, + {0x99379f32, 0xffffd877ffffde9a}, + {0x99379f33, 0xffffd877ffffde9b}, + {0x99379f34, 0xffffd877ffffde9c}, + {0x99379f35, 0xffffd877ffffde9d}, + {0x99379f36, 0xffffd877ffffde9e}, + {0x99379f37, 0xffffd877ffffde9f}, + {0x99379f38, 0xffffd877ffffdea0}, + {0x99379f39, 0xffffd877ffffdea1}, + {0x9937a030, 0xffffd877ffffdea2}, + {0x9937a031, 0xffffd877ffffdea3}, + {0x9937a032, 0xffffd877ffffdea4}, + {0x9937a033, 0xffffd877ffffdea5}, + {0x9937a034, 0xffffd877ffffdea6}, + {0x9937a035, 0xffffd877ffffdea7}, + {0x9937a036, 0xffffd877ffffdea8}, + {0x9937a037, 0xffffd877ffffdea9}, + {0x9937a038, 0xffffd877ffffdeaa}, + {0x9937a039, 0xffffd877ffffdeab}, + {0x9937a130, 0xffffd877ffffdeac}, + {0x9937a131, 0xffffd877ffffdead}, + {0x9937a132, 0xffffd877ffffdeae}, + {0x9937a133, 0xffffd877ffffdeaf}, + {0x9937a134, 0xffffd877ffffdeb0}, + {0x9937a135, 0xffffd877ffffdeb1}, + {0x9937a136, 0xffffd877ffffdeb2}, + {0x9937a137, 0xffffd877ffffdeb3}, + {0x9937a138, 0xffffd877ffffdeb4}, + {0x9937a139, 0xffffd877ffffdeb5}, + {0x9937a230, 0xffffd877ffffdeb6}, + {0x9937a231, 0xffffd877ffffdeb7}, + {0x9937a232, 0xffffd877ffffdeb8}, + {0x9937a233, 0xffffd877ffffdeb9}, + {0x9937a234, 0xffffd877ffffdeba}, + {0x9937a235, 0xffffd877ffffdebb}, + {0x9937a236, 0xffffd877ffffdebc}, + {0x9937a237, 0xffffd877ffffdebd}, + {0x9937a238, 0xffffd877ffffdebe}, + {0x9937a239, 0xffffd877ffffdebf}, + {0x9937a330, 0xffffd877ffffdec0}, + {0x9937a331, 0xffffd877ffffdec1}, + {0x9937a332, 0xffffd877ffffdec2}, + {0x9937a333, 0xffffd877ffffdec3}, + {0x9937a334, 0xffffd877ffffdec4}, + {0x9937a335, 0xffffd877ffffdec5}, + {0x9937a336, 0xffffd877ffffdec6}, + {0x9937a337, 0xffffd877ffffdec7}, + {0x9937a338, 0xffffd877ffffdec8}, + {0x9937a339, 0xffffd877ffffdec9}, + {0x9937a430, 0xffffd877ffffdeca}, + {0x9937a431, 0xffffd877ffffdecb}, + {0x9937a432, 0xffffd877ffffdecc}, + {0x9937a433, 0xffffd877ffffdecd}, + {0x9937a434, 0xffffd877ffffdece}, + {0x9937a435, 0xffffd877ffffdecf}, + {0x9937a436, 0xffffd877ffffded0}, + {0x9937a437, 0xffffd877ffffded1}, + {0x9937a438, 0xffffd877ffffded2}, + {0x9937a439, 0xffffd877ffffded3}, + {0x9937a530, 0xffffd877ffffded4}, + {0x9937a531, 0xffffd877ffffded5}, + {0x9937a532, 0xffffd877ffffded6}, + {0x9937a533, 0xffffd877ffffded7}, + {0x9937a534, 0xffffd877ffffded8}, + {0x9937a535, 0xffffd877ffffded9}, + {0x9937a536, 0xffffd877ffffdeda}, + {0x9937a537, 0xffffd877ffffdedb}, + {0x9937a538, 0xffffd877ffffdedc}, + {0x9937a539, 0xffffd877ffffdedd}, + {0x9937a630, 0xffffd877ffffdede}, + {0x9937a631, 0xffffd877ffffdedf}, + {0x9937a632, 0xffffd877ffffdee0}, + {0x9937a633, 0xffffd877ffffdee1}, + {0x9937a634, 0xffffd877ffffdee2}, + {0x9937a635, 0xffffd877ffffdee3}, + {0x9937a636, 0xffffd877ffffdee4}, + {0x9937a637, 0xffffd877ffffdee5}, + {0x9937a638, 0xffffd877ffffdee6}, + {0x9937a639, 0xffffd877ffffdee7}, + {0x9937a730, 0xffffd877ffffdee8}, + {0x9937a731, 0xffffd877ffffdee9}, + {0x9937a732, 0xffffd877ffffdeea}, + {0x9937a733, 0xffffd877ffffdeeb}, + {0x9937a734, 0xffffd877ffffdeec}, + {0x9937a735, 0xffffd877ffffdeed}, + {0x9937a736, 0xffffd877ffffdeee}, + {0x9937a737, 0xffffd877ffffdeef}, + {0x9937a738, 0xffffd877ffffdef0}, + {0x9937a739, 0xffffd877ffffdef1}, + {0x9937a830, 0xffffd877ffffdef2}, + {0x9937a831, 0xffffd877ffffdef3}, + {0x9937a832, 0xffffd877ffffdef4}, + {0x9937a833, 0xffffd877ffffdef5}, + {0x9937a834, 0xffffd877ffffdef6}, + {0x9937a835, 0xffffd877ffffdef7}, + {0x9937a836, 0xffffd877ffffdef8}, + {0x9937a837, 0xffffd877ffffdef9}, + {0x9937a838, 0xffffd877ffffdefa}, + {0x9937a839, 0xffffd877ffffdefb}, + {0x9937a930, 0xffffd877ffffdefc}, + {0x9937a931, 0xffffd877ffffdefd}, + {0x9937a932, 0xffffd877ffffdefe}, + {0x9937a933, 0xffffd877ffffdeff}, + {0x9937a934, 0xffffd877ffffdf00}, + {0x9937a935, 0xffffd877ffffdf01}, + {0x9937a936, 0xffffd877ffffdf02}, + {0x9937a937, 0xffffd877ffffdf03}, + {0x9937a938, 0xffffd877ffffdf04}, + {0x9937a939, 0xffffd877ffffdf05}, + {0x9937aa30, 0xffffd877ffffdf06}, + {0x9937aa31, 0xffffd877ffffdf07}, + {0x9937aa32, 0xffffd877ffffdf08}, + {0x9937aa33, 0xffffd877ffffdf09}, + {0x9937aa34, 0xffffd877ffffdf0a}, + {0x9937aa35, 0xffffd877ffffdf0b}, + {0x9937aa36, 0xffffd877ffffdf0c}, + {0x9937aa37, 0xffffd877ffffdf0d}, + {0x9937aa38, 0xffffd877ffffdf0e}, + {0x9937aa39, 0xffffd877ffffdf0f}, + {0x9937ab30, 0xffffd877ffffdf10}, + {0x9937ab31, 0xffffd877ffffdf11}, + {0x9937ab32, 0xffffd877ffffdf12}, + {0x9937ab33, 0xffffd877ffffdf13}, + {0x9937ab34, 0xffffd877ffffdf14}, + {0x9937ab35, 0xffffd877ffffdf15}, + {0x9937ab36, 0xffffd877ffffdf16}, + {0x9937ab37, 0xffffd877ffffdf17}, + {0x9937ab38, 0xffffd877ffffdf18}, + {0x9937ab39, 0xffffd877ffffdf19}, + {0x9937ac30, 0xffffd877ffffdf1a}, + {0x9937ac31, 0xffffd877ffffdf1b}, + {0x9937ac32, 0xffffd877ffffdf1c}, + {0x9937ac33, 0xffffd877ffffdf1d}, + {0x9937ac34, 0xffffd877ffffdf1e}, + {0x9937ac35, 0xffffd877ffffdf1f}, + {0x9937ac36, 0xffffd877ffffdf20}, + {0x9937ac37, 0xffffd877ffffdf21}, + {0x9937ac38, 0xffffd877ffffdf22}, + {0x9937ac39, 0xffffd877ffffdf23}, + {0x9937ad30, 0xffffd877ffffdf24}, + {0x9937ad31, 0xffffd877ffffdf25}, + {0x9937ad32, 0xffffd877ffffdf26}, + {0x9937ad33, 0xffffd877ffffdf27}, + {0x9937ad34, 0xffffd877ffffdf28}, + {0x9937ad35, 0xffffd877ffffdf29}, + {0x9937ad36, 0xffffd877ffffdf2a}, + {0x9937ad37, 0xffffd877ffffdf2b}, + {0x9937ad38, 0xffffd877ffffdf2c}, + {0x9937ad39, 0xffffd877ffffdf2d}, + {0x9937ae30, 0xffffd877ffffdf2e}, + {0x9937ae31, 0xffffd877ffffdf2f}, + {0x9937ae32, 0xffffd877ffffdf30}, + {0x9937ae33, 0xffffd877ffffdf31}, + {0x9937ae34, 0xffffd877ffffdf32}, + {0x9937ae35, 0xffffd877ffffdf33}, + {0x9937ae36, 0xffffd877ffffdf34}, + {0x9937ae37, 0xffffd877ffffdf35}, + {0x9937ae38, 0xffffd877ffffdf36}, + {0x9937ae39, 0xffffd877ffffdf37}, + {0x9937af30, 0xffffd877ffffdf38}, + {0x9937af31, 0xffffd877ffffdf39}, + {0x9937af32, 0xffffd877ffffdf3a}, + {0x9937af33, 0xffffd877ffffdf3b}, + {0x9937af34, 0xffffd877ffffdf3c}, + {0x9937af35, 0xffffd877ffffdf3d}, + {0x9937af36, 0xffffd877ffffdf3e}, + {0x9937af37, 0xffffd877ffffdf3f}, + {0x9937af38, 0xffffd877ffffdf40}, + {0x9937af39, 0xffffd877ffffdf41}, + {0x9937b030, 0xffffd877ffffdf42}, + {0x9937b031, 0xffffd877ffffdf43}, + {0x9937b032, 0xffffd877ffffdf44}, + {0x9937b033, 0xffffd877ffffdf45}, + {0x9937b034, 0xffffd877ffffdf46}, + {0x9937b035, 0xffffd877ffffdf47}, + {0x9937b036, 0xffffd877ffffdf48}, + {0x9937b037, 0xffffd877ffffdf49}, + {0x9937b038, 0xffffd877ffffdf4a}, + {0x9937b039, 0xffffd877ffffdf4b}, + {0x9937b130, 0xffffd877ffffdf4c}, + {0x9937b131, 0xffffd877ffffdf4d}, + {0x9937b132, 0xffffd877ffffdf4e}, + {0x9937b133, 0xffffd877ffffdf4f}, + {0x9937b134, 0xffffd877ffffdf50}, + {0x9937b135, 0xffffd877ffffdf51}, + {0x9937b136, 0xffffd877ffffdf52}, + {0x9937b137, 0xffffd877ffffdf53}, + {0x9937b138, 0xffffd877ffffdf54}, + {0x9937b139, 0xffffd877ffffdf55}, + {0x9937b230, 0xffffd877ffffdf56}, + {0x9937b231, 0xffffd877ffffdf57}, + {0x9937b232, 0xffffd877ffffdf58}, + {0x9937b233, 0xffffd877ffffdf59}, + {0x9937b234, 0xffffd877ffffdf5a}, + {0x9937b235, 0xffffd877ffffdf5b}, + {0x9937b236, 0xffffd877ffffdf5c}, + {0x9937b237, 0xffffd877ffffdf5d}, + {0x9937b238, 0xffffd877ffffdf5e}, + {0x9937b239, 0xffffd877ffffdf5f}, + {0x9937b330, 0xffffd877ffffdf60}, + {0x9937b331, 0xffffd877ffffdf61}, + {0x9937b332, 0xffffd877ffffdf62}, + {0x9937b333, 0xffffd877ffffdf63}, + {0x9937b334, 0xffffd877ffffdf64}, + {0x9937b335, 0xffffd877ffffdf65}, + {0x9937b336, 0xffffd877ffffdf66}, + {0x9937b337, 0xffffd877ffffdf67}, + {0x9937b338, 0xffffd877ffffdf68}, + {0x9937b339, 0xffffd877ffffdf69}, + {0x9937b430, 0xffffd877ffffdf6a}, + {0x9937b431, 0xffffd877ffffdf6b}, + {0x9937b432, 0xffffd877ffffdf6c}, + {0x9937b433, 0xffffd877ffffdf6d}, + {0x9937b434, 0xffffd877ffffdf6e}, + {0x9937b435, 0xffffd877ffffdf6f}, + {0x9937b436, 0xffffd877ffffdf70}, + {0x9937b437, 0xffffd877ffffdf71}, + {0x9937b438, 0xffffd877ffffdf72}, + {0x9937b439, 0xffffd877ffffdf73}, + {0x9937b530, 0xffffd877ffffdf74}, + {0x9937b531, 0xffffd877ffffdf75}, + {0x9937b532, 0xffffd877ffffdf76}, + {0x9937b533, 0xffffd877ffffdf77}, + {0x9937b534, 0xffffd877ffffdf78}, + {0x9937b535, 0xffffd877ffffdf79}, + {0x9937b536, 0xffffd877ffffdf7a}, + {0x9937b537, 0xffffd877ffffdf7b}, + {0x9937b538, 0xffffd877ffffdf7c}, + {0x9937b539, 0xffffd877ffffdf7d}, + {0x9937b630, 0xffffd877ffffdf7e}, + {0x9937b631, 0xffffd877ffffdf7f}, + {0x9937b632, 0xffffd877ffffdf80}, + {0x9937b633, 0xffffd877ffffdf81}, + {0x9937b634, 0xffffd877ffffdf82}, + {0x9937b635, 0xffffd877ffffdf83}, + {0x9937b636, 0xffffd877ffffdf84}, + {0x9937b637, 0xffffd877ffffdf85}, + {0x9937b638, 0xffffd877ffffdf86}, + {0x9937b639, 0xffffd877ffffdf87}, + {0x9937b730, 0xffffd877ffffdf88}, + {0x9937b731, 0xffffd877ffffdf89}, + {0x9937b732, 0xffffd877ffffdf8a}, + {0x9937b733, 0xffffd877ffffdf8b}, + {0x9937b734, 0xffffd877ffffdf8c}, + {0x9937b735, 0xffffd877ffffdf8d}, + {0x9937b736, 0xffffd877ffffdf8e}, + {0x9937b737, 0xffffd877ffffdf8f}, + {0x9937b738, 0xffffd877ffffdf90}, + {0x9937b739, 0xffffd877ffffdf91}, + {0x9937b830, 0xffffd877ffffdf92}, + {0x9937b831, 0xffffd877ffffdf93}, + {0x9937b832, 0xffffd877ffffdf94}, + {0x9937b833, 0xffffd877ffffdf95}, + {0x9937b834, 0xffffd877ffffdf96}, + {0x9937b835, 0xffffd877ffffdf97}, + {0x9937b836, 0xffffd877ffffdf98}, + {0x9937b837, 0xffffd877ffffdf99}, + {0x9937b838, 0xffffd877ffffdf9a}, + {0x9937b839, 0xffffd877ffffdf9b}, + {0x9937b930, 0xffffd877ffffdf9c}, + {0x9937b931, 0xffffd877ffffdf9d}, + {0x9937b932, 0xffffd877ffffdf9e}, + {0x9937b933, 0xffffd877ffffdf9f}, + {0x9937b934, 0xffffd877ffffdfa0}, + {0x9937b935, 0xffffd877ffffdfa1}, + {0x9937b936, 0xffffd877ffffdfa2}, + {0x9937b937, 0xffffd877ffffdfa3}, + {0x9937b938, 0xffffd877ffffdfa4}, + {0x9937b939, 0xffffd877ffffdfa5}, + {0x9937ba30, 0xffffd877ffffdfa6}, + {0x9937ba31, 0xffffd877ffffdfa7}, + {0x9937ba32, 0xffffd877ffffdfa8}, + {0x9937ba33, 0xffffd877ffffdfa9}, + {0x9937ba34, 0xffffd877ffffdfaa}, + {0x9937ba35, 0xffffd877ffffdfab}, + {0x9937ba36, 0xffffd877ffffdfac}, + {0x9937ba37, 0xffffd877ffffdfad}, + {0x9937ba38, 0xffffd877ffffdfae}, + {0x9937ba39, 0xffffd877ffffdfaf}, + {0x9937bb30, 0xffffd877ffffdfb0}, + {0x9937bb31, 0xffffd877ffffdfb1}, + {0x9937bb32, 0xffffd877ffffdfb2}, + {0x9937bb33, 0xffffd877ffffdfb3}, + {0x9937bb34, 0xffffd877ffffdfb4}, + {0x9937bb35, 0xffffd877ffffdfb5}, + {0x9937bb36, 0xffffd877ffffdfb6}, + {0x9937bb37, 0xffffd877ffffdfb7}, + {0x9937bb38, 0xffffd877ffffdfb8}, + {0x9937bb39, 0xffffd877ffffdfb9}, + {0x9937bc30, 0xffffd877ffffdfba}, + {0x9937bc31, 0xffffd877ffffdfbb}, + {0x9937bc32, 0xffffd877ffffdfbc}, + {0x9937bc33, 0xffffd877ffffdfbd}, + {0x9937bc34, 0xffffd877ffffdfbe}, + {0x9937bc35, 0xffffd877ffffdfbf}, + {0x9937bc36, 0xffffd877ffffdfc0}, + {0x9937bc37, 0xffffd877ffffdfc1}, + {0x9937bc38, 0xffffd877ffffdfc2}, + {0x9937bc39, 0xffffd877ffffdfc3}, + {0x9937bd30, 0xffffd877ffffdfc4}, + {0x9937bd31, 0xffffd877ffffdfc5}, + {0x9937bd32, 0xffffd877ffffdfc6}, + {0x9937bd33, 0xffffd877ffffdfc7}, + {0x9937bd34, 0xffffd877ffffdfc8}, + {0x9937bd35, 0xffffd877ffffdfc9}, + {0x9937bd36, 0xffffd877ffffdfca}, + {0x9937bd37, 0xffffd877ffffdfcb}, + {0x9937bd38, 0xffffd877ffffdfcc}, + {0x9937bd39, 0xffffd877ffffdfcd}, + {0x9937be30, 0xffffd877ffffdfce}, + {0x9937be31, 0xffffd877ffffdfcf}, + {0x9937be32, 0xffffd877ffffdfd0}, + {0x9937be33, 0xffffd877ffffdfd1}, + {0x9937be34, 0xffffd877ffffdfd2}, + {0x9937be35, 0xffffd877ffffdfd3}, + {0x9937be36, 0xffffd877ffffdfd4}, + {0x9937be37, 0xffffd877ffffdfd5}, + {0x9937be38, 0xffffd877ffffdfd6}, + {0x9937be39, 0xffffd877ffffdfd7}, + {0x9937bf30, 0xffffd877ffffdfd8}, + {0x9937bf31, 0xffffd877ffffdfd9}, + {0x9937bf32, 0xffffd877ffffdfda}, + {0x9937bf33, 0xffffd877ffffdfdb}, + {0x9937bf34, 0xffffd877ffffdfdc}, + {0x9937bf35, 0xffffd877ffffdfdd}, + {0x9937bf36, 0xffffd877ffffdfde}, + {0x9937bf37, 0xffffd877ffffdfdf}, + {0x9937bf38, 0xffffd877ffffdfe0}, + {0x9937bf39, 0xffffd877ffffdfe1}, + {0x9937c030, 0xffffd877ffffdfe2}, + {0x9937c031, 0xffffd877ffffdfe3}, + {0x9937c032, 0xffffd877ffffdfe4}, + {0x9937c033, 0xffffd877ffffdfe5}, + {0x9937c034, 0xffffd877ffffdfe6}, + {0x9937c035, 0xffffd877ffffdfe7}, + {0x9937c036, 0xffffd877ffffdfe8}, + {0x9937c037, 0xffffd877ffffdfe9}, + {0x9937c038, 0xffffd877ffffdfea}, + {0x9937c039, 0xffffd877ffffdfeb}, + {0x9937c130, 0xffffd877ffffdfec}, + {0x9937c131, 0xffffd877ffffdfed}, + {0x9937c132, 0xffffd877ffffdfee}, + {0x9937c133, 0xffffd877ffffdfef}, + {0x9937c134, 0xffffd877ffffdff0}, + {0x9937c135, 0xffffd877ffffdff1}, + {0x9937c136, 0xffffd877ffffdff2}, + {0x9937c137, 0xffffd877ffffdff3}, + {0x9937c138, 0xffffd877ffffdff4}, + {0x9937c139, 0xffffd877ffffdff5}, + {0x9937c230, 0xffffd877ffffdff6}, + {0x9937c231, 0xffffd877ffffdff7}, + {0x9937c232, 0xffffd877ffffdff8}, + {0x9937c233, 0xffffd877ffffdff9}, + {0x9937c234, 0xffffd877ffffdffa}, + {0x9937c235, 0xffffd877ffffdffb}, + {0x9937c236, 0xffffd877ffffdffc}, + {0x9937c237, 0xffffd877ffffdffd}, + {0x9937c238, 0xffffd877ffffdffe}, + {0x9937c239, 0xffffd877ffffdfff}, + {0x9937c330, 0xffffd878ffffdc00}, + {0x9937c331, 0xffffd878ffffdc01}, + {0x9937c332, 0xffffd878ffffdc02}, + {0x9937c333, 0xffffd878ffffdc03}, + {0x9937c334, 0xffffd878ffffdc04}, + {0x9937c335, 0xffffd878ffffdc05}, + {0x9937c336, 0xffffd878ffffdc06}, + {0x9937c337, 0xffffd878ffffdc07}, + {0x9937c338, 0xffffd878ffffdc08}, + {0x9937c339, 0xffffd878ffffdc09}, + {0x9937c430, 0xffffd878ffffdc0a}, + {0x9937c431, 0xffffd878ffffdc0b}, + {0x9937c432, 0xffffd878ffffdc0c}, + {0x9937c433, 0xffffd878ffffdc0d}, + {0x9937c434, 0xffffd878ffffdc0e}, + {0x9937c435, 0xffffd878ffffdc0f}, + {0x9937c436, 0xffffd878ffffdc10}, + {0x9937c437, 0xffffd878ffffdc11}, + {0x9937c438, 0xffffd878ffffdc12}, + {0x9937c439, 0xffffd878ffffdc13}, + {0x9937c530, 0xffffd878ffffdc14}, + {0x9937c531, 0xffffd878ffffdc15}, + {0x9937c532, 0xffffd878ffffdc16}, + {0x9937c533, 0xffffd878ffffdc17}, + {0x9937c534, 0xffffd878ffffdc18}, + {0x9937c535, 0xffffd878ffffdc19}, + {0x9937c536, 0xffffd878ffffdc1a}, + {0x9937c537, 0xffffd878ffffdc1b}, + {0x9937c538, 0xffffd878ffffdc1c}, + {0x9937c539, 0xffffd878ffffdc1d}, + {0x9937c630, 0xffffd878ffffdc1e}, + {0x9937c631, 0xffffd878ffffdc1f}, + {0x9937c632, 0xffffd878ffffdc20}, + {0x9937c633, 0xffffd878ffffdc21}, + {0x9937c634, 0xffffd878ffffdc22}, + {0x9937c635, 0xffffd878ffffdc23}, + {0x9937c636, 0xffffd878ffffdc24}, + {0x9937c637, 0xffffd878ffffdc25}, + {0x9937c638, 0xffffd878ffffdc26}, + {0x9937c639, 0xffffd878ffffdc27}, + {0x9937c730, 0xffffd878ffffdc28}, + {0x9937c731, 0xffffd878ffffdc29}, + {0x9937c732, 0xffffd878ffffdc2a}, + {0x9937c733, 0xffffd878ffffdc2b}, + {0x9937c734, 0xffffd878ffffdc2c}, + {0x9937c735, 0xffffd878ffffdc2d}, + {0x9937c736, 0xffffd878ffffdc2e}, + {0x9937c737, 0xffffd878ffffdc2f}, + {0x9937c738, 0xffffd878ffffdc30}, + {0x9937c739, 0xffffd878ffffdc31}, + {0x9937c830, 0xffffd878ffffdc32}, + {0x9937c831, 0xffffd878ffffdc33}, + {0x9937c832, 0xffffd878ffffdc34}, + {0x9937c833, 0xffffd878ffffdc35}, + {0x9937c834, 0xffffd878ffffdc36}, + {0x9937c835, 0xffffd878ffffdc37}, + {0x9937c836, 0xffffd878ffffdc38}, + {0x9937c837, 0xffffd878ffffdc39}, + {0x9937c838, 0xffffd878ffffdc3a}, + {0x9937c839, 0xffffd878ffffdc3b}, + {0x9937c930, 0xffffd878ffffdc3c}, + {0x9937c931, 0xffffd878ffffdc3d}, + {0x9937c932, 0xffffd878ffffdc3e}, + {0x9937c933, 0xffffd878ffffdc3f}, + {0x9937c934, 0xffffd878ffffdc40}, + {0x9937c935, 0xffffd878ffffdc41}, + {0x9937c936, 0xffffd878ffffdc42}, + {0x9937c937, 0xffffd878ffffdc43}, + {0x9937c938, 0xffffd878ffffdc44}, + {0x9937c939, 0xffffd878ffffdc45}, + {0x9937ca30, 0xffffd878ffffdc46}, + {0x9937ca31, 0xffffd878ffffdc47}, + {0x9937ca32, 0xffffd878ffffdc48}, + {0x9937ca33, 0xffffd878ffffdc49}, + {0x9937ca34, 0xffffd878ffffdc4a}, + {0x9937ca35, 0xffffd878ffffdc4b}, + {0x9937ca36, 0xffffd878ffffdc4c}, + {0x9937ca37, 0xffffd878ffffdc4d}, + {0x9937ca38, 0xffffd878ffffdc4e}, + {0x9937ca39, 0xffffd878ffffdc4f}, + {0x9937cb30, 0xffffd878ffffdc50}, + {0x9937cb31, 0xffffd878ffffdc51}, + {0x9937cb32, 0xffffd878ffffdc52}, + {0x9937cb33, 0xffffd878ffffdc53}, + {0x9937cb34, 0xffffd878ffffdc54}, + {0x9937cb35, 0xffffd878ffffdc55}, + {0x9937cb36, 0xffffd878ffffdc56}, + {0x9937cb37, 0xffffd878ffffdc57}, + {0x9937cb38, 0xffffd878ffffdc58}, + {0x9937cb39, 0xffffd878ffffdc59}, + {0x9937cc30, 0xffffd878ffffdc5a}, + {0x9937cc31, 0xffffd878ffffdc5b}, + {0x9937cc32, 0xffffd878ffffdc5c}, + {0x9937cc33, 0xffffd878ffffdc5d}, + {0x9937cc34, 0xffffd878ffffdc5e}, + {0x9937cc35, 0xffffd878ffffdc5f}, + {0x9937cc36, 0xffffd878ffffdc60}, + {0x9937cc37, 0xffffd878ffffdc61}, + {0x9937cc38, 0xffffd878ffffdc62}, + {0x9937cc39, 0xffffd878ffffdc63}, + {0x9937cd30, 0xffffd878ffffdc64}, + {0x9937cd31, 0xffffd878ffffdc65}, + {0x9937cd32, 0xffffd878ffffdc66}, + {0x9937cd33, 0xffffd878ffffdc67}, + {0x9937cd34, 0xffffd878ffffdc68}, + {0x9937cd35, 0xffffd878ffffdc69}, + {0x9937cd36, 0xffffd878ffffdc6a}, + {0x9937cd37, 0xffffd878ffffdc6b}, + {0x9937cd38, 0xffffd878ffffdc6c}, + {0x9937cd39, 0xffffd878ffffdc6d}, + {0x9937ce30, 0xffffd878ffffdc6e}, + {0x9937ce31, 0xffffd878ffffdc6f}, + {0x9937ce32, 0xffffd878ffffdc70}, + {0x9937ce33, 0xffffd878ffffdc71}, + {0x9937ce34, 0xffffd878ffffdc72}, + {0x9937ce35, 0xffffd878ffffdc73}, + {0x9937ce36, 0xffffd878ffffdc74}, + {0x9937ce37, 0xffffd878ffffdc75}, + {0x9937ce38, 0xffffd878ffffdc76}, + {0x9937ce39, 0xffffd878ffffdc77}, + {0x9937cf30, 0xffffd878ffffdc78}, + {0x9937cf31, 0xffffd878ffffdc79}, + {0x9937cf32, 0xffffd878ffffdc7a}, + {0x9937cf33, 0xffffd878ffffdc7b}, + {0x9937cf34, 0xffffd878ffffdc7c}, + {0x9937cf35, 0xffffd878ffffdc7d}, + {0x9937cf36, 0xffffd878ffffdc7e}, + {0x9937cf37, 0xffffd878ffffdc7f}, + {0x9937cf38, 0xffffd878ffffdc80}, + {0x9937cf39, 0xffffd878ffffdc81}, + {0x9937d030, 0xffffd878ffffdc82}, + {0x9937d031, 0xffffd878ffffdc83}, + {0x9937d032, 0xffffd878ffffdc84}, + {0x9937d033, 0xffffd878ffffdc85}, + {0x9937d034, 0xffffd878ffffdc86}, + {0x9937d035, 0xffffd878ffffdc87}, + {0x9937d036, 0xffffd878ffffdc88}, + {0x9937d037, 0xffffd878ffffdc89}, + {0x9937d038, 0xffffd878ffffdc8a}, + {0x9937d039, 0xffffd878ffffdc8b}, + {0x9937d130, 0xffffd878ffffdc8c}, + {0x9937d131, 0xffffd878ffffdc8d}, + {0x9937d132, 0xffffd878ffffdc8e}, + {0x9937d133, 0xffffd878ffffdc8f}, + {0x9937d134, 0xffffd878ffffdc90}, + {0x9937d135, 0xffffd878ffffdc91}, + {0x9937d136, 0xffffd878ffffdc92}, + {0x9937d137, 0xffffd878ffffdc93}, + {0x9937d138, 0xffffd878ffffdc94}, + {0x9937d139, 0xffffd878ffffdc95}, + {0x9937d230, 0xffffd878ffffdc96}, + {0x9937d231, 0xffffd878ffffdc97}, + {0x9937d232, 0xffffd878ffffdc98}, + {0x9937d233, 0xffffd878ffffdc99}, + {0x9937d234, 0xffffd878ffffdc9a}, + {0x9937d235, 0xffffd878ffffdc9b}, + {0x9937d236, 0xffffd878ffffdc9c}, + {0x9937d237, 0xffffd878ffffdc9d}, + {0x9937d238, 0xffffd878ffffdc9e}, + {0x9937d239, 0xffffd878ffffdc9f}, + {0x9937d330, 0xffffd878ffffdca0}, + {0x9937d331, 0xffffd878ffffdca1}, + {0x9937d332, 0xffffd878ffffdca2}, + {0x9937d333, 0xffffd878ffffdca3}, + {0x9937d334, 0xffffd878ffffdca4}, + {0x9937d335, 0xffffd878ffffdca5}, + {0x9937d336, 0xffffd878ffffdca6}, + {0x9937d337, 0xffffd878ffffdca7}, + {0x9937d338, 0xffffd878ffffdca8}, + {0x9937d339, 0xffffd878ffffdca9}, + {0x9937d430, 0xffffd878ffffdcaa}, + {0x9937d431, 0xffffd878ffffdcab}, + {0x9937d432, 0xffffd878ffffdcac}, + {0x9937d433, 0xffffd878ffffdcad}, + {0x9937d434, 0xffffd878ffffdcae}, + {0x9937d435, 0xffffd878ffffdcaf}, + {0x9937d436, 0xffffd878ffffdcb0}, + {0x9937d437, 0xffffd878ffffdcb1}, + {0x9937d438, 0xffffd878ffffdcb2}, + {0x9937d439, 0xffffd878ffffdcb3}, + {0x9937d530, 0xffffd878ffffdcb4}, + {0x9937d531, 0xffffd878ffffdcb5}, + {0x9937d532, 0xffffd878ffffdcb6}, + {0x9937d533, 0xffffd878ffffdcb7}, + {0x9937d534, 0xffffd878ffffdcb8}, + {0x9937d535, 0xffffd878ffffdcb9}, + {0x9937d536, 0xffffd878ffffdcba}, + {0x9937d537, 0xffffd878ffffdcbb}, + {0x9937d538, 0xffffd878ffffdcbc}, + {0x9937d539, 0xffffd878ffffdcbd}, + {0x9937d630, 0xffffd878ffffdcbe}, + {0x9937d631, 0xffffd878ffffdcbf}, + {0x9937d632, 0xffffd878ffffdcc0}, + {0x9937d633, 0xffffd878ffffdcc1}, + {0x9937d634, 0xffffd878ffffdcc2}, + {0x9937d635, 0xffffd878ffffdcc3}, + {0x9937d636, 0xffffd878ffffdcc4}, + {0x9937d637, 0xffffd878ffffdcc5}, + {0x9937d638, 0xffffd878ffffdcc6}, + {0x9937d639, 0xffffd878ffffdcc7}, + {0x9937d730, 0xffffd878ffffdcc8}, + {0x9937d731, 0xffffd878ffffdcc9}, + {0x9937d732, 0xffffd878ffffdcca}, + {0x9937d733, 0xffffd878ffffdccb}, + {0x9937d734, 0xffffd878ffffdccc}, + {0x9937d735, 0xffffd878ffffdccd}, + {0x9937d736, 0xffffd878ffffdcce}, + {0x9937d737, 0xffffd878ffffdccf}, + {0x9937d738, 0xffffd878ffffdcd0}, + {0x9937d739, 0xffffd878ffffdcd1}, + {0x9937d830, 0xffffd878ffffdcd2}, + {0x9937d831, 0xffffd878ffffdcd3}, + {0x9937d832, 0xffffd878ffffdcd4}, + {0x9937d833, 0xffffd878ffffdcd5}, + {0x9937d834, 0xffffd878ffffdcd6}, + {0x9937d835, 0xffffd878ffffdcd7}, + {0x9937d836, 0xffffd878ffffdcd8}, + {0x9937d837, 0xffffd878ffffdcd9}, + {0x9937d838, 0xffffd878ffffdcda}, + {0x9937d839, 0xffffd878ffffdcdb}, + {0x9937d930, 0xffffd878ffffdcdc}, + {0x9937d931, 0xffffd878ffffdcdd}, + {0x9937d932, 0xffffd878ffffdcde}, + {0x9937d933, 0xffffd878ffffdcdf}, + {0x9937d934, 0xffffd878ffffdce0}, + {0x9937d935, 0xffffd878ffffdce1}, + {0x9937d936, 0xffffd878ffffdce2}, + {0x9937d937, 0xffffd878ffffdce3}, + {0x9937d938, 0xffffd878ffffdce4}, + {0x9937d939, 0xffffd878ffffdce5}, + {0x9937da30, 0xffffd878ffffdce6}, + {0x9937da31, 0xffffd878ffffdce7}, + {0x9937da32, 0xffffd878ffffdce8}, + {0x9937da33, 0xffffd878ffffdce9}, + {0x9937da34, 0xffffd878ffffdcea}, + {0x9937da35, 0xffffd878ffffdceb}, + {0x9937da36, 0xffffd878ffffdcec}, + {0x9937da37, 0xffffd878ffffdced}, + {0x9937da38, 0xffffd878ffffdcee}, + {0x9937da39, 0xffffd878ffffdcef}, + {0x9937db30, 0xffffd878ffffdcf0}, + {0x9937db31, 0xffffd878ffffdcf1}, + {0x9937db32, 0xffffd878ffffdcf2}, + {0x9937db33, 0xffffd878ffffdcf3}, + {0x9937db34, 0xffffd878ffffdcf4}, + {0x9937db35, 0xffffd878ffffdcf5}, + {0x9937db36, 0xffffd878ffffdcf6}, + {0x9937db37, 0xffffd878ffffdcf7}, + {0x9937db38, 0xffffd878ffffdcf8}, + {0x9937db39, 0xffffd878ffffdcf9}, + {0x9937dc30, 0xffffd878ffffdcfa}, + {0x9937dc31, 0xffffd878ffffdcfb}, + {0x9937dc32, 0xffffd878ffffdcfc}, + {0x9937dc33, 0xffffd878ffffdcfd}, + {0x9937dc34, 0xffffd878ffffdcfe}, + {0x9937dc35, 0xffffd878ffffdcff}, + {0x9937dc36, 0xffffd878ffffdd00}, + {0x9937dc37, 0xffffd878ffffdd01}, + {0x9937dc38, 0xffffd878ffffdd02}, + {0x9937dc39, 0xffffd878ffffdd03}, + {0x9937dd30, 0xffffd878ffffdd04}, + {0x9937dd31, 0xffffd878ffffdd05}, + {0x9937dd32, 0xffffd878ffffdd06}, + {0x9937dd33, 0xffffd878ffffdd07}, + {0x9937dd34, 0xffffd878ffffdd08}, + {0x9937dd35, 0xffffd878ffffdd09}, + {0x9937dd36, 0xffffd878ffffdd0a}, + {0x9937dd37, 0xffffd878ffffdd0b}, + {0x9937dd38, 0xffffd878ffffdd0c}, + {0x9937dd39, 0xffffd878ffffdd0d}, + {0x9937de30, 0xffffd878ffffdd0e}, + {0x9937de31, 0xffffd878ffffdd0f}, + {0x9937de32, 0xffffd878ffffdd10}, + {0x9937de33, 0xffffd878ffffdd11}, + {0x9937de34, 0xffffd878ffffdd12}, + {0x9937de35, 0xffffd878ffffdd13}, + {0x9937de36, 0xffffd878ffffdd14}, + {0x9937de37, 0xffffd878ffffdd15}, + {0x9937de38, 0xffffd878ffffdd16}, + {0x9937de39, 0xffffd878ffffdd17}, + {0x9937df30, 0xffffd878ffffdd18}, + {0x9937df31, 0xffffd878ffffdd19}, + {0x9937df32, 0xffffd878ffffdd1a}, + {0x9937df33, 0xffffd878ffffdd1b}, + {0x9937df34, 0xffffd878ffffdd1c}, + {0x9937df35, 0xffffd878ffffdd1d}, + {0x9937df36, 0xffffd878ffffdd1e}, + {0x9937df37, 0xffffd878ffffdd1f}, + {0x9937df38, 0xffffd878ffffdd20}, + {0x9937df39, 0xffffd878ffffdd21}, + {0x9937e030, 0xffffd878ffffdd22}, + {0x9937e031, 0xffffd878ffffdd23}, + {0x9937e032, 0xffffd878ffffdd24}, + {0x9937e033, 0xffffd878ffffdd25}, + {0x9937e034, 0xffffd878ffffdd26}, + {0x9937e035, 0xffffd878ffffdd27}, + {0x9937e036, 0xffffd878ffffdd28}, + {0x9937e037, 0xffffd878ffffdd29}, + {0x9937e038, 0xffffd878ffffdd2a}, + {0x9937e039, 0xffffd878ffffdd2b}, + {0x9937e130, 0xffffd878ffffdd2c}, + {0x9937e131, 0xffffd878ffffdd2d}, + {0x9937e132, 0xffffd878ffffdd2e}, + {0x9937e133, 0xffffd878ffffdd2f}, + {0x9937e134, 0xffffd878ffffdd30}, + {0x9937e135, 0xffffd878ffffdd31}, + {0x9937e136, 0xffffd878ffffdd32}, + {0x9937e137, 0xffffd878ffffdd33}, + {0x9937e138, 0xffffd878ffffdd34}, + {0x9937e139, 0xffffd878ffffdd35}, + {0x9937e230, 0xffffd878ffffdd36}, + {0x9937e231, 0xffffd878ffffdd37}, + {0x9937e232, 0xffffd878ffffdd38}, + {0x9937e233, 0xffffd878ffffdd39}, + {0x9937e234, 0xffffd878ffffdd3a}, + {0x9937e235, 0xffffd878ffffdd3b}, + {0x9937e236, 0xffffd878ffffdd3c}, + {0x9937e237, 0xffffd878ffffdd3d}, + {0x9937e238, 0xffffd878ffffdd3e}, + {0x9937e239, 0xffffd878ffffdd3f}, + {0x9937e330, 0xffffd878ffffdd40}, + {0x9937e331, 0xffffd878ffffdd41}, + {0x9937e332, 0xffffd878ffffdd42}, + {0x9937e333, 0xffffd878ffffdd43}, + {0x9937e334, 0xffffd878ffffdd44}, + {0x9937e335, 0xffffd878ffffdd45}, + {0x9937e336, 0xffffd878ffffdd46}, + {0x9937e337, 0xffffd878ffffdd47}, + {0x9937e338, 0xffffd878ffffdd48}, + {0x9937e339, 0xffffd878ffffdd49}, + {0x9937e430, 0xffffd878ffffdd4a}, + {0x9937e431, 0xffffd878ffffdd4b}, + {0x9937e432, 0xffffd878ffffdd4c}, + {0x9937e433, 0xffffd878ffffdd4d}, + {0x9937e434, 0xffffd878ffffdd4e}, + {0x9937e435, 0xffffd878ffffdd4f}, + {0x9937e436, 0xffffd878ffffdd50}, + {0x9937e437, 0xffffd878ffffdd51}, + {0x9937e438, 0xffffd878ffffdd52}, + {0x9937e439, 0xffffd878ffffdd53}, + {0x9937e530, 0xffffd878ffffdd54}, + {0x9937e531, 0xffffd878ffffdd55}, + {0x9937e532, 0xffffd878ffffdd56}, + {0x9937e533, 0xffffd878ffffdd57}, + {0x9937e534, 0xffffd878ffffdd58}, + {0x9937e535, 0xffffd878ffffdd59}, + {0x9937e536, 0xffffd878ffffdd5a}, + {0x9937e537, 0xffffd878ffffdd5b}, + {0x9937e538, 0xffffd878ffffdd5c}, + {0x9937e539, 0xffffd878ffffdd5d}, + {0x9937e630, 0xffffd878ffffdd5e}, + {0x9937e631, 0xffffd878ffffdd5f}, + {0x9937e632, 0xffffd878ffffdd60}, + {0x9937e633, 0xffffd878ffffdd61}, + {0x9937e634, 0xffffd878ffffdd62}, + {0x9937e635, 0xffffd878ffffdd63}, + {0x9937e636, 0xffffd878ffffdd64}, + {0x9937e637, 0xffffd878ffffdd65}, + {0x9937e638, 0xffffd878ffffdd66}, + {0x9937e639, 0xffffd878ffffdd67}, + {0x9937e730, 0xffffd878ffffdd68}, + {0x9937e731, 0xffffd878ffffdd69}, + {0x9937e732, 0xffffd878ffffdd6a}, + {0x9937e733, 0xffffd878ffffdd6b}, + {0x9937e734, 0xffffd878ffffdd6c}, + {0x9937e735, 0xffffd878ffffdd6d}, + {0x9937e736, 0xffffd878ffffdd6e}, + {0x9937e737, 0xffffd878ffffdd6f}, + {0x9937e738, 0xffffd878ffffdd70}, + {0x9937e739, 0xffffd878ffffdd71}, + {0x9937e830, 0xffffd878ffffdd72}, + {0x9937e831, 0xffffd878ffffdd73}, + {0x9937e832, 0xffffd878ffffdd74}, + {0x9937e833, 0xffffd878ffffdd75}, + {0x9937e834, 0xffffd878ffffdd76}, + {0x9937e835, 0xffffd878ffffdd77}, + {0x9937e836, 0xffffd878ffffdd78}, + {0x9937e837, 0xffffd878ffffdd79}, + {0x9937e838, 0xffffd878ffffdd7a}, + {0x9937e839, 0xffffd878ffffdd7b}, + {0x9937e930, 0xffffd878ffffdd7c}, + {0x9937e931, 0xffffd878ffffdd7d}, + {0x9937e932, 0xffffd878ffffdd7e}, + {0x9937e933, 0xffffd878ffffdd7f}, + {0x9937e934, 0xffffd878ffffdd80}, + {0x9937e935, 0xffffd878ffffdd81}, + {0x9937e936, 0xffffd878ffffdd82}, + {0x9937e937, 0xffffd878ffffdd83}, + {0x9937e938, 0xffffd878ffffdd84}, + {0x9937e939, 0xffffd878ffffdd85}, + {0x9937ea30, 0xffffd878ffffdd86}, + {0x9937ea31, 0xffffd878ffffdd87}, + {0x9937ea32, 0xffffd878ffffdd88}, + {0x9937ea33, 0xffffd878ffffdd89}, + {0x9937ea34, 0xffffd878ffffdd8a}, + {0x9937ea35, 0xffffd878ffffdd8b}, + {0x9937ea36, 0xffffd878ffffdd8c}, + {0x9937ea37, 0xffffd878ffffdd8d}, + {0x9937ea38, 0xffffd878ffffdd8e}, + {0x9937ea39, 0xffffd878ffffdd8f}, + {0x9937eb30, 0xffffd878ffffdd90}, + {0x9937eb31, 0xffffd878ffffdd91}, + {0x9937eb32, 0xffffd878ffffdd92}, + {0x9937eb33, 0xffffd878ffffdd93}, + {0x9937eb34, 0xffffd878ffffdd94}, + {0x9937eb35, 0xffffd878ffffdd95}, + {0x9937eb36, 0xffffd878ffffdd96}, + {0x9937eb37, 0xffffd878ffffdd97}, + {0x9937eb38, 0xffffd878ffffdd98}, + {0x9937eb39, 0xffffd878ffffdd99}, + {0x9937ec30, 0xffffd878ffffdd9a}, + {0x9937ec31, 0xffffd878ffffdd9b}, + {0x9937ec32, 0xffffd878ffffdd9c}, + {0x9937ec33, 0xffffd878ffffdd9d}, + {0x9937ec34, 0xffffd878ffffdd9e}, + {0x9937ec35, 0xffffd878ffffdd9f}, + {0x9937ec36, 0xffffd878ffffdda0}, + {0x9937ec37, 0xffffd878ffffdda1}, + {0x9937ec38, 0xffffd878ffffdda2}, + {0x9937ec39, 0xffffd878ffffdda3}, + {0x9937ed30, 0xffffd878ffffdda4}, + {0x9937ed31, 0xffffd878ffffdda5}, + {0x9937ed32, 0xffffd878ffffdda6}, + {0x9937ed33, 0xffffd878ffffdda7}, + {0x9937ed34, 0xffffd878ffffdda8}, + {0x9937ed35, 0xffffd878ffffdda9}, + {0x9937ed36, 0xffffd878ffffddaa}, + {0x9937ed37, 0xffffd878ffffddab}, + {0x9937ed38, 0xffffd878ffffddac}, + {0x9937ed39, 0xffffd878ffffddad}, + {0x9937ee30, 0xffffd878ffffddae}, + {0x9937ee31, 0xffffd878ffffddaf}, + {0x9937ee32, 0xffffd878ffffddb0}, + {0x9937ee33, 0xffffd878ffffddb1}, + {0x9937ee34, 0xffffd878ffffddb2}, + {0x9937ee35, 0xffffd878ffffddb3}, + {0x9937ee36, 0xffffd878ffffddb4}, + {0x9937ee37, 0xffffd878ffffddb5}, + {0x9937ee38, 0xffffd878ffffddb6}, + {0x9937ee39, 0xffffd878ffffddb7}, + {0x9937ef30, 0xffffd878ffffddb8}, + {0x9937ef31, 0xffffd878ffffddb9}, + {0x9937ef32, 0xffffd878ffffddba}, + {0x9937ef33, 0xffffd878ffffddbb}, + {0x9937ef34, 0xffffd878ffffddbc}, + {0x9937ef35, 0xffffd878ffffddbd}, + {0x9937ef36, 0xffffd878ffffddbe}, + {0x9937ef37, 0xffffd878ffffddbf}, + {0x9937ef38, 0xffffd878ffffddc0}, + {0x9937ef39, 0xffffd878ffffddc1}, + {0x9937f030, 0xffffd878ffffddc2}, + {0x9937f031, 0xffffd878ffffddc3}, + {0x9937f032, 0xffffd878ffffddc4}, + {0x9937f033, 0xffffd878ffffddc5}, + {0x9937f034, 0xffffd878ffffddc6}, + {0x9937f035, 0xffffd878ffffddc7}, + {0x9937f036, 0xffffd878ffffddc8}, + {0x9937f037, 0xffffd878ffffddc9}, + {0x9937f038, 0xffffd878ffffddca}, + {0x9937f039, 0xffffd878ffffddcb}, + {0x9937f130, 0xffffd878ffffddcc}, + {0x9937f131, 0xffffd878ffffddcd}, + {0x9937f132, 0xffffd878ffffddce}, + {0x9937f133, 0xffffd878ffffddcf}, + {0x9937f134, 0xffffd878ffffddd0}, + {0x9937f135, 0xffffd878ffffddd1}, + {0x9937f136, 0xffffd878ffffddd2}, + {0x9937f137, 0xffffd878ffffddd3}, + {0x9937f138, 0xffffd878ffffddd4}, + {0x9937f139, 0xffffd878ffffddd5}, + {0x9937f230, 0xffffd878ffffddd6}, + {0x9937f231, 0xffffd878ffffddd7}, + {0x9937f232, 0xffffd878ffffddd8}, + {0x9937f233, 0xffffd878ffffddd9}, + {0x9937f234, 0xffffd878ffffddda}, + {0x9937f235, 0xffffd878ffffdddb}, + {0x9937f236, 0xffffd878ffffdddc}, + {0x9937f237, 0xffffd878ffffdddd}, + {0x9937f238, 0xffffd878ffffddde}, + {0x9937f239, 0xffffd878ffffdddf}, + {0x9937f330, 0xffffd878ffffdde0}, + {0x9937f331, 0xffffd878ffffdde1}, + {0x9937f332, 0xffffd878ffffdde2}, + {0x9937f333, 0xffffd878ffffdde3}, + {0x9937f334, 0xffffd878ffffdde4}, + {0x9937f335, 0xffffd878ffffdde5}, + {0x9937f336, 0xffffd878ffffdde6}, + {0x9937f337, 0xffffd878ffffdde7}, + {0x9937f338, 0xffffd878ffffdde8}, + {0x9937f339, 0xffffd878ffffdde9}, + {0x9937f430, 0xffffd878ffffddea}, + {0x9937f431, 0xffffd878ffffddeb}, + {0x9937f432, 0xffffd878ffffddec}, + {0x9937f433, 0xffffd878ffffdded}, + {0x9937f434, 0xffffd878ffffddee}, + {0x9937f435, 0xffffd878ffffddef}, + {0x9937f436, 0xffffd878ffffddf0}, + {0x9937f437, 0xffffd878ffffddf1}, + {0x9937f438, 0xffffd878ffffddf2}, + {0x9937f439, 0xffffd878ffffddf3}, + {0x9937f530, 0xffffd878ffffddf4}, + {0x9937f531, 0xffffd878ffffddf5}, + {0x9937f532, 0xffffd878ffffddf6}, + {0x9937f533, 0xffffd878ffffddf7}, + {0x9937f534, 0xffffd878ffffddf8}, + {0x9937f535, 0xffffd878ffffddf9}, + {0x9937f536, 0xffffd878ffffddfa}, + {0x9937f537, 0xffffd878ffffddfb}, + {0x9937f538, 0xffffd878ffffddfc}, + {0x9937f539, 0xffffd878ffffddfd}, + {0x9937f630, 0xffffd878ffffddfe}, + {0x9937f631, 0xffffd878ffffddff}, + {0x9937f632, 0xffffd878ffffde00}, + {0x9937f633, 0xffffd878ffffde01}, + {0x9937f634, 0xffffd878ffffde02}, + {0x9937f635, 0xffffd878ffffde03}, + {0x9937f636, 0xffffd878ffffde04}, + {0x9937f637, 0xffffd878ffffde05}, + {0x9937f638, 0xffffd878ffffde06}, + {0x9937f639, 0xffffd878ffffde07}, + {0x9937f730, 0xffffd878ffffde08}, + {0x9937f731, 0xffffd878ffffde09}, + {0x9937f732, 0xffffd878ffffde0a}, + {0x9937f733, 0xffffd878ffffde0b}, + {0x9937f734, 0xffffd878ffffde0c}, + {0x9937f735, 0xffffd878ffffde0d}, + {0x9937f736, 0xffffd878ffffde0e}, + {0x9937f737, 0xffffd878ffffde0f}, + {0x9937f738, 0xffffd878ffffde10}, + {0x9937f739, 0xffffd878ffffde11}, + {0x9937f830, 0xffffd878ffffde12}, + {0x9937f831, 0xffffd878ffffde13}, + {0x9937f832, 0xffffd878ffffde14}, + {0x9937f833, 0xffffd878ffffde15}, + {0x9937f834, 0xffffd878ffffde16}, + {0x9937f835, 0xffffd878ffffde17}, + {0x9937f836, 0xffffd878ffffde18}, + {0x9937f837, 0xffffd878ffffde19}, + {0x9937f838, 0xffffd878ffffde1a}, + {0x9937f839, 0xffffd878ffffde1b}, + {0x9937f930, 0xffffd878ffffde1c}, + {0x9937f931, 0xffffd878ffffde1d}, + {0x9937f932, 0xffffd878ffffde1e}, + {0x9937f933, 0xffffd878ffffde1f}, + {0x9937f934, 0xffffd878ffffde20}, + {0x9937f935, 0xffffd878ffffde21}, + {0x9937f936, 0xffffd878ffffde22}, + {0x9937f937, 0xffffd878ffffde23}, + {0x9937f938, 0xffffd878ffffde24}, + {0x9937f939, 0xffffd878ffffde25}, + {0x9937fa30, 0xffffd878ffffde26}, + {0x9937fa31, 0xffffd878ffffde27}, + {0x9937fa32, 0xffffd878ffffde28}, + {0x9937fa33, 0xffffd878ffffde29}, + {0x9937fa34, 0xffffd878ffffde2a}, + {0x9937fa35, 0xffffd878ffffde2b}, + {0x9937fa36, 0xffffd878ffffde2c}, + {0x9937fa37, 0xffffd878ffffde2d}, + {0x9937fa38, 0xffffd878ffffde2e}, + {0x9937fa39, 0xffffd878ffffde2f}, + {0x9937fb30, 0xffffd878ffffde30}, + {0x9937fb31, 0xffffd878ffffde31}, + {0x9937fb32, 0xffffd878ffffde32}, + {0x9937fb33, 0xffffd878ffffde33}, + {0x9937fb34, 0xffffd878ffffde34}, + {0x9937fb35, 0xffffd878ffffde35}, + {0x9937fb36, 0xffffd878ffffde36}, + {0x9937fb37, 0xffffd878ffffde37}, + {0x9937fb38, 0xffffd878ffffde38}, + {0x9937fb39, 0xffffd878ffffde39}, + {0x9937fc30, 0xffffd878ffffde3a}, + {0x9937fc31, 0xffffd878ffffde3b}, + {0x9937fc32, 0xffffd878ffffde3c}, + {0x9937fc33, 0xffffd878ffffde3d}, + {0x9937fc34, 0xffffd878ffffde3e}, + {0x9937fc35, 0xffffd878ffffde3f}, + {0x9937fc36, 0xffffd878ffffde40}, + {0x9937fc37, 0xffffd878ffffde41}, + {0x9937fc38, 0xffffd878ffffde42}, + {0x9937fc39, 0xffffd878ffffde43}, + {0x9937fd30, 0xffffd878ffffde44}, + {0x9937fd31, 0xffffd878ffffde45}, + {0x9937fd32, 0xffffd878ffffde46}, + {0x9937fd33, 0xffffd878ffffde47}, + {0x9937fd34, 0xffffd878ffffde48}, + {0x9937fd35, 0xffffd878ffffde49}, + {0x9937fd36, 0xffffd878ffffde4a}, + {0x9937fd37, 0xffffd878ffffde4b}, + {0x9937fd38, 0xffffd878ffffde4c}, + {0x9937fd39, 0xffffd878ffffde4d}, + {0x9937fe30, 0xffffd878ffffde4e}, + {0x9937fe31, 0xffffd878ffffde4f}, + {0x9937fe32, 0xffffd878ffffde50}, + {0x9937fe33, 0xffffd878ffffde51}, + {0x9937fe34, 0xffffd878ffffde52}, + {0x9937fe35, 0xffffd878ffffde53}, + {0x9937fe36, 0xffffd878ffffde54}, + {0x9937fe37, 0xffffd878ffffde55}, + {0x9937fe38, 0xffffd878ffffde56}, + {0x9937fe39, 0xffffd878ffffde57}, + {0x99388130, 0xffffd878ffffde58}, + {0x99388131, 0xffffd878ffffde59}, + {0x99388132, 0xffffd878ffffde5a}, + {0x99388133, 0xffffd878ffffde5b}, + {0x99388134, 0xffffd878ffffde5c}, + {0x99388135, 0xffffd878ffffde5d}, + {0x99388136, 0xffffd878ffffde5e}, + {0x99388137, 0xffffd878ffffde5f}, + {0x99388138, 0xffffd878ffffde60}, + {0x99388139, 0xffffd878ffffde61}, + {0x99388230, 0xffffd878ffffde62}, + {0x99388231, 0xffffd878ffffde63}, + {0x99388232, 0xffffd878ffffde64}, + {0x99388233, 0xffffd878ffffde65}, + {0x99388234, 0xffffd878ffffde66}, + {0x99388235, 0xffffd878ffffde67}, + {0x99388236, 0xffffd878ffffde68}, + {0x99388237, 0xffffd878ffffde69}, + {0x99388238, 0xffffd878ffffde6a}, + {0x99388239, 0xffffd878ffffde6b}, + {0x99388330, 0xffffd878ffffde6c}, + {0x99388331, 0xffffd878ffffde6d}, + {0x99388332, 0xffffd878ffffde6e}, + {0x99388333, 0xffffd878ffffde6f}, + {0x99388334, 0xffffd878ffffde70}, + {0x99388335, 0xffffd878ffffde71}, + {0x99388336, 0xffffd878ffffde72}, + {0x99388337, 0xffffd878ffffde73}, + {0x99388338, 0xffffd878ffffde74}, + {0x99388339, 0xffffd878ffffde75}, + {0x99388430, 0xffffd878ffffde76}, + {0x99388431, 0xffffd878ffffde77}, + {0x99388432, 0xffffd878ffffde78}, + {0x99388433, 0xffffd878ffffde79}, + {0x99388434, 0xffffd878ffffde7a}, + {0x99388435, 0xffffd878ffffde7b}, + {0x99388436, 0xffffd878ffffde7c}, + {0x99388437, 0xffffd878ffffde7d}, + {0x99388438, 0xffffd878ffffde7e}, + {0x99388439, 0xffffd878ffffde7f}, + {0x99388530, 0xffffd878ffffde80}, + {0x99388531, 0xffffd878ffffde81}, + {0x99388532, 0xffffd878ffffde82}, + {0x99388533, 0xffffd878ffffde83}, + {0x99388534, 0xffffd878ffffde84}, + {0x99388535, 0xffffd878ffffde85}, + {0x99388536, 0xffffd878ffffde86}, + {0x99388537, 0xffffd878ffffde87}, + {0x99388538, 0xffffd878ffffde88}, + {0x99388539, 0xffffd878ffffde89}, + {0x99388630, 0xffffd878ffffde8a}, + {0x99388631, 0xffffd878ffffde8b}, + {0x99388632, 0xffffd878ffffde8c}, + {0x99388633, 0xffffd878ffffde8d}, + {0x99388634, 0xffffd878ffffde8e}, + {0x99388635, 0xffffd878ffffde8f}, + {0x99388636, 0xffffd878ffffde90}, + {0x99388637, 0xffffd878ffffde91}, + {0x99388638, 0xffffd878ffffde92}, + {0x99388639, 0xffffd878ffffde93}, + {0x99388730, 0xffffd878ffffde94}, + {0x99388731, 0xffffd878ffffde95}, + {0x99388732, 0xffffd878ffffde96}, + {0x99388733, 0xffffd878ffffde97}, + {0x99388734, 0xffffd878ffffde98}, + {0x99388735, 0xffffd878ffffde99}, + {0x99388736, 0xffffd878ffffde9a}, + {0x99388737, 0xffffd878ffffde9b}, + {0x99388738, 0xffffd878ffffde9c}, + {0x99388739, 0xffffd878ffffde9d}, + {0x99388830, 0xffffd878ffffde9e}, + {0x99388831, 0xffffd878ffffde9f}, + {0x99388832, 0xffffd878ffffdea0}, + {0x99388833, 0xffffd878ffffdea1}, + {0x99388834, 0xffffd878ffffdea2}, + {0x99388835, 0xffffd878ffffdea3}, + {0x99388836, 0xffffd878ffffdea4}, + {0x99388837, 0xffffd878ffffdea5}, + {0x99388838, 0xffffd878ffffdea6}, + {0x99388839, 0xffffd878ffffdea7}, + {0x99388930, 0xffffd878ffffdea8}, + {0x99388931, 0xffffd878ffffdea9}, + {0x99388932, 0xffffd878ffffdeaa}, + {0x99388933, 0xffffd878ffffdeab}, + {0x99388934, 0xffffd878ffffdeac}, + {0x99388935, 0xffffd878ffffdead}, + {0x99388936, 0xffffd878ffffdeae}, + {0x99388937, 0xffffd878ffffdeaf}, + {0x99388938, 0xffffd878ffffdeb0}, + {0x99388939, 0xffffd878ffffdeb1}, + {0x99388a30, 0xffffd878ffffdeb2}, + {0x99388a31, 0xffffd878ffffdeb3}, + {0x99388a32, 0xffffd878ffffdeb4}, + {0x99388a33, 0xffffd878ffffdeb5}, + {0x99388a34, 0xffffd878ffffdeb6}, + {0x99388a35, 0xffffd878ffffdeb7}, + {0x99388a36, 0xffffd878ffffdeb8}, + {0x99388a37, 0xffffd878ffffdeb9}, + {0x99388a38, 0xffffd878ffffdeba}, + {0x99388a39, 0xffffd878ffffdebb}, + {0x99388b30, 0xffffd878ffffdebc}, + {0x99388b31, 0xffffd878ffffdebd}, + {0x99388b32, 0xffffd878ffffdebe}, + {0x99388b33, 0xffffd878ffffdebf}, + {0x99388b34, 0xffffd878ffffdec0}, + {0x99388b35, 0xffffd878ffffdec1}, + {0x99388b36, 0xffffd878ffffdec2}, + {0x99388b37, 0xffffd878ffffdec3}, + {0x99388b38, 0xffffd878ffffdec4}, + {0x99388b39, 0xffffd878ffffdec5}, + {0x99388c30, 0xffffd878ffffdec6}, + {0x99388c31, 0xffffd878ffffdec7}, + {0x99388c32, 0xffffd878ffffdec8}, + {0x99388c33, 0xffffd878ffffdec9}, + {0x99388c34, 0xffffd878ffffdeca}, + {0x99388c35, 0xffffd878ffffdecb}, + {0x99388c36, 0xffffd878ffffdecc}, + {0x99388c37, 0xffffd878ffffdecd}, + {0x99388c38, 0xffffd878ffffdece}, + {0x99388c39, 0xffffd878ffffdecf}, + {0x99388d30, 0xffffd878ffffded0}, + {0x99388d31, 0xffffd878ffffded1}, + {0x99388d32, 0xffffd878ffffded2}, + {0x99388d33, 0xffffd878ffffded3}, + {0x99388d34, 0xffffd878ffffded4}, + {0x99388d35, 0xffffd878ffffded5}, + {0x99388d36, 0xffffd878ffffded6}, + {0x99388d37, 0xffffd878ffffded7}, + {0x99388d38, 0xffffd878ffffded8}, + {0x99388d39, 0xffffd878ffffded9}, + {0x99388e30, 0xffffd878ffffdeda}, + {0x99388e31, 0xffffd878ffffdedb}, + {0x99388e32, 0xffffd878ffffdedc}, + {0x99388e33, 0xffffd878ffffdedd}, + {0x99388e34, 0xffffd878ffffdede}, + {0x99388e35, 0xffffd878ffffdedf}, + {0x99388e36, 0xffffd878ffffdee0}, + {0x99388e37, 0xffffd878ffffdee1}, + {0x99388e38, 0xffffd878ffffdee2}, + {0x99388e39, 0xffffd878ffffdee3}, + {0x99388f30, 0xffffd878ffffdee4}, + {0x99388f31, 0xffffd878ffffdee5}, + {0x99388f32, 0xffffd878ffffdee6}, + {0x99388f33, 0xffffd878ffffdee7}, + {0x99388f34, 0xffffd878ffffdee8}, + {0x99388f35, 0xffffd878ffffdee9}, + {0x99388f36, 0xffffd878ffffdeea}, + {0x99388f37, 0xffffd878ffffdeeb}, + {0x99388f38, 0xffffd878ffffdeec}, + {0x99388f39, 0xffffd878ffffdeed}, + {0x99389030, 0xffffd878ffffdeee}, + {0x99389031, 0xffffd878ffffdeef}, + {0x99389032, 0xffffd878ffffdef0}, + {0x99389033, 0xffffd878ffffdef1}, + {0x99389034, 0xffffd878ffffdef2}, + {0x99389035, 0xffffd878ffffdef3}, + {0x99389036, 0xffffd878ffffdef4}, + {0x99389037, 0xffffd878ffffdef5}, + {0x99389038, 0xffffd878ffffdef6}, + {0x99389039, 0xffffd878ffffdef7}, + {0x99389130, 0xffffd878ffffdef8}, + {0x99389131, 0xffffd878ffffdef9}, + {0x99389132, 0xffffd878ffffdefa}, + {0x99389133, 0xffffd878ffffdefb}, + {0x99389134, 0xffffd878ffffdefc}, + {0x99389135, 0xffffd878ffffdefd}, + {0x99389136, 0xffffd878ffffdefe}, + {0x99389137, 0xffffd878ffffdeff}, + {0x99389138, 0xffffd878ffffdf00}, + {0x99389139, 0xffffd878ffffdf01}, + {0x99389230, 0xffffd878ffffdf02}, + {0x99389231, 0xffffd878ffffdf03}, + {0x99389232, 0xffffd878ffffdf04}, + {0x99389233, 0xffffd878ffffdf05}, + {0x99389234, 0xffffd878ffffdf06}, + {0x99389235, 0xffffd878ffffdf07}, + {0x99389236, 0xffffd878ffffdf08}, + {0x99389237, 0xffffd878ffffdf09}, + {0x99389238, 0xffffd878ffffdf0a}, + {0x99389239, 0xffffd878ffffdf0b}, + {0x99389330, 0xffffd878ffffdf0c}, + {0x99389331, 0xffffd878ffffdf0d}, + {0x99389332, 0xffffd878ffffdf0e}, + {0x99389333, 0xffffd878ffffdf0f}, + {0x99389334, 0xffffd878ffffdf10}, + {0x99389335, 0xffffd878ffffdf11}, + {0x99389336, 0xffffd878ffffdf12}, + {0x99389337, 0xffffd878ffffdf13}, + {0x99389338, 0xffffd878ffffdf14}, + {0x99389339, 0xffffd878ffffdf15}, + {0x99389430, 0xffffd878ffffdf16}, + {0x99389431, 0xffffd878ffffdf17}, + {0x99389432, 0xffffd878ffffdf18}, + {0x99389433, 0xffffd878ffffdf19}, + {0x99389434, 0xffffd878ffffdf1a}, + {0x99389435, 0xffffd878ffffdf1b}, + {0x99389436, 0xffffd878ffffdf1c}, + {0x99389437, 0xffffd878ffffdf1d}, + {0x99389438, 0xffffd878ffffdf1e}, + {0x99389439, 0xffffd878ffffdf1f}, + {0x99389530, 0xffffd878ffffdf20}, + {0x99389531, 0xffffd878ffffdf21}, + {0x99389532, 0xffffd878ffffdf22}, + {0x99389533, 0xffffd878ffffdf23}, + {0x99389534, 0xffffd878ffffdf24}, + {0x99389535, 0xffffd878ffffdf25}, + {0x99389536, 0xffffd878ffffdf26}, + {0x99389537, 0xffffd878ffffdf27}, + {0x99389538, 0xffffd878ffffdf28}, + {0x99389539, 0xffffd878ffffdf29}, + {0x99389630, 0xffffd878ffffdf2a}, + {0x99389631, 0xffffd878ffffdf2b}, + {0x99389632, 0xffffd878ffffdf2c}, + {0x99389633, 0xffffd878ffffdf2d}, + {0x99389634, 0xffffd878ffffdf2e}, + {0x99389635, 0xffffd878ffffdf2f}, + {0x99389636, 0xffffd878ffffdf30}, + {0x99389637, 0xffffd878ffffdf31}, + {0x99389638, 0xffffd878ffffdf32}, + {0x99389639, 0xffffd878ffffdf33}, + {0x99389730, 0xffffd878ffffdf34}, + {0x99389731, 0xffffd878ffffdf35}, + {0x99389732, 0xffffd878ffffdf36}, + {0x99389733, 0xffffd878ffffdf37}, + {0x99389734, 0xffffd878ffffdf38}, + {0x99389735, 0xffffd878ffffdf39}, + {0x99389736, 0xffffd878ffffdf3a}, + {0x99389737, 0xffffd878ffffdf3b}, + {0x99389738, 0xffffd878ffffdf3c}, + {0x99389739, 0xffffd878ffffdf3d}, + {0x99389830, 0xffffd878ffffdf3e}, + {0x99389831, 0xffffd878ffffdf3f}, + {0x99389832, 0xffffd878ffffdf40}, + {0x99389833, 0xffffd878ffffdf41}, + {0x99389834, 0xffffd878ffffdf42}, + {0x99389835, 0xffffd878ffffdf43}, + {0x99389836, 0xffffd878ffffdf44}, + {0x99389837, 0xffffd878ffffdf45}, + {0x99389838, 0xffffd878ffffdf46}, + {0x99389839, 0xffffd878ffffdf47}, + {0x99389930, 0xffffd878ffffdf48}, + {0x99389931, 0xffffd878ffffdf49}, + {0x99389932, 0xffffd878ffffdf4a}, + {0x99389933, 0xffffd878ffffdf4b}, + {0x99389934, 0xffffd878ffffdf4c}, + {0x99389935, 0xffffd878ffffdf4d}, + {0x99389936, 0xffffd878ffffdf4e}, + {0x99389937, 0xffffd878ffffdf4f}, + {0x99389938, 0xffffd878ffffdf50}, + {0x99389939, 0xffffd878ffffdf51}, + {0x99389a30, 0xffffd878ffffdf52}, + {0x99389a31, 0xffffd878ffffdf53}, + {0x99389a32, 0xffffd878ffffdf54}, + {0x99389a33, 0xffffd878ffffdf55}, + {0x99389a34, 0xffffd878ffffdf56}, + {0x99389a35, 0xffffd878ffffdf57}, + {0x99389a36, 0xffffd878ffffdf58}, + {0x99389a37, 0xffffd878ffffdf59}, + {0x99389a38, 0xffffd878ffffdf5a}, + {0x99389a39, 0xffffd878ffffdf5b}, + {0x99389b30, 0xffffd878ffffdf5c}, + {0x99389b31, 0xffffd878ffffdf5d}, + {0x99389b32, 0xffffd878ffffdf5e}, + {0x99389b33, 0xffffd878ffffdf5f}, + {0x99389b34, 0xffffd878ffffdf60}, + {0x99389b35, 0xffffd878ffffdf61}, + {0x99389b36, 0xffffd878ffffdf62}, + {0x99389b37, 0xffffd878ffffdf63}, + {0x99389b38, 0xffffd878ffffdf64}, + {0x99389b39, 0xffffd878ffffdf65}, + {0x99389c30, 0xffffd878ffffdf66}, + {0x99389c31, 0xffffd878ffffdf67}, + {0x99389c32, 0xffffd878ffffdf68}, + {0x99389c33, 0xffffd878ffffdf69}, + {0x99389c34, 0xffffd878ffffdf6a}, + {0x99389c35, 0xffffd878ffffdf6b}, + {0x99389c36, 0xffffd878ffffdf6c}, + {0x99389c37, 0xffffd878ffffdf6d}, + {0x99389c38, 0xffffd878ffffdf6e}, + {0x99389c39, 0xffffd878ffffdf6f}, + {0x99389d30, 0xffffd878ffffdf70}, + {0x99389d31, 0xffffd878ffffdf71}, + {0x99389d32, 0xffffd878ffffdf72}, + {0x99389d33, 0xffffd878ffffdf73}, + {0x99389d34, 0xffffd878ffffdf74}, + {0x99389d35, 0xffffd878ffffdf75}, + {0x99389d36, 0xffffd878ffffdf76}, + {0x99389d37, 0xffffd878ffffdf77}, + {0x99389d38, 0xffffd878ffffdf78}, + {0x99389d39, 0xffffd878ffffdf79}, + {0x99389e30, 0xffffd878ffffdf7a}, + {0x99389e31, 0xffffd878ffffdf7b}, + {0x99389e32, 0xffffd878ffffdf7c}, + {0x99389e33, 0xffffd878ffffdf7d}, + {0x99389e34, 0xffffd878ffffdf7e}, + {0x99389e35, 0xffffd878ffffdf7f}, + {0x99389e36, 0xffffd878ffffdf80}, + {0x99389e37, 0xffffd878ffffdf81}, + {0x99389e38, 0xffffd878ffffdf82}, + {0x99389e39, 0xffffd878ffffdf83}, + {0x99389f30, 0xffffd878ffffdf84}, + {0x99389f31, 0xffffd878ffffdf85}, + {0x99389f32, 0xffffd878ffffdf86}, + {0x99389f33, 0xffffd878ffffdf87}, + {0x99389f34, 0xffffd878ffffdf88}, + {0x99389f35, 0xffffd878ffffdf89}, + {0x99389f36, 0xffffd878ffffdf8a}, + {0x99389f37, 0xffffd878ffffdf8b}, + {0x99389f38, 0xffffd878ffffdf8c}, + {0x99389f39, 0xffffd878ffffdf8d}, + {0x9938a030, 0xffffd878ffffdf8e}, + {0x9938a031, 0xffffd878ffffdf8f}, + {0x9938a032, 0xffffd878ffffdf90}, + {0x9938a033, 0xffffd878ffffdf91}, + {0x9938a034, 0xffffd878ffffdf92}, + {0x9938a035, 0xffffd878ffffdf93}, + {0x9938a036, 0xffffd878ffffdf94}, + {0x9938a037, 0xffffd878ffffdf95}, + {0x9938a038, 0xffffd878ffffdf96}, + {0x9938a039, 0xffffd878ffffdf97}, + {0x9938a130, 0xffffd878ffffdf98}, + {0x9938a131, 0xffffd878ffffdf99}, + {0x9938a132, 0xffffd878ffffdf9a}, + {0x9938a133, 0xffffd878ffffdf9b}, + {0x9938a134, 0xffffd878ffffdf9c}, + {0x9938a135, 0xffffd878ffffdf9d}, + {0x9938a136, 0xffffd878ffffdf9e}, + {0x9938a137, 0xffffd878ffffdf9f}, + {0x9938a138, 0xffffd878ffffdfa0}, + {0x9938a139, 0xffffd878ffffdfa1}, + {0x9938a230, 0xffffd878ffffdfa2}, + {0x9938a231, 0xffffd878ffffdfa3}, + {0x9938a232, 0xffffd878ffffdfa4}, + {0x9938a233, 0xffffd878ffffdfa5}, + {0x9938a234, 0xffffd878ffffdfa6}, + {0x9938a235, 0xffffd878ffffdfa7}, + {0x9938a236, 0xffffd878ffffdfa8}, + {0x9938a237, 0xffffd878ffffdfa9}, + {0x9938a238, 0xffffd878ffffdfaa}, + {0x9938a239, 0xffffd878ffffdfab}, + {0x9938a330, 0xffffd878ffffdfac}, + {0x9938a331, 0xffffd878ffffdfad}, + {0x9938a332, 0xffffd878ffffdfae}, + {0x9938a333, 0xffffd878ffffdfaf}, + {0x9938a334, 0xffffd878ffffdfb0}, + {0x9938a335, 0xffffd878ffffdfb1}, + {0x9938a336, 0xffffd878ffffdfb2}, + {0x9938a337, 0xffffd878ffffdfb3}, + {0x9938a338, 0xffffd878ffffdfb4}, + {0x9938a339, 0xffffd878ffffdfb5}, + {0x9938a430, 0xffffd878ffffdfb6}, + {0x9938a431, 0xffffd878ffffdfb7}, + {0x9938a432, 0xffffd878ffffdfb8}, + {0x9938a433, 0xffffd878ffffdfb9}, + {0x9938a434, 0xffffd878ffffdfba}, + {0x9938a435, 0xffffd878ffffdfbb}, + {0x9938a436, 0xffffd878ffffdfbc}, + {0x9938a437, 0xffffd878ffffdfbd}, + {0x9938a438, 0xffffd878ffffdfbe}, + {0x9938a439, 0xffffd878ffffdfbf}, + {0x9938a530, 0xffffd878ffffdfc0}, + {0x9938a531, 0xffffd878ffffdfc1}, + {0x9938a532, 0xffffd878ffffdfc2}, + {0x9938a533, 0xffffd878ffffdfc3}, + {0x9938a534, 0xffffd878ffffdfc4}, + {0x9938a535, 0xffffd878ffffdfc5}, + {0x9938a536, 0xffffd878ffffdfc6}, + {0x9938a537, 0xffffd878ffffdfc7}, + {0x9938a538, 0xffffd878ffffdfc8}, + {0x9938a539, 0xffffd878ffffdfc9}, + {0x9938a630, 0xffffd878ffffdfca}, + {0x9938a631, 0xffffd878ffffdfcb}, + {0x9938a632, 0xffffd878ffffdfcc}, + {0x9938a633, 0xffffd878ffffdfcd}, + {0x9938a634, 0xffffd878ffffdfce}, + {0x9938a635, 0xffffd878ffffdfcf}, + {0x9938a636, 0xffffd878ffffdfd0}, + {0x9938a637, 0xffffd878ffffdfd1}, + {0x9938a638, 0xffffd878ffffdfd2}, + {0x9938a639, 0xffffd878ffffdfd3}, + {0x9938a730, 0xffffd878ffffdfd4}, + {0x9938a731, 0xffffd878ffffdfd5}, + {0x9938a732, 0xffffd878ffffdfd6}, + {0x9938a733, 0xffffd878ffffdfd7}, + {0x9938a734, 0xffffd878ffffdfd8}, + {0x9938a735, 0xffffd878ffffdfd9}, + {0x9938a736, 0xffffd878ffffdfda}, + {0x9938a737, 0xffffd878ffffdfdb}, + {0x9938a738, 0xffffd878ffffdfdc}, + {0x9938a739, 0xffffd878ffffdfdd}, + {0x9938a830, 0xffffd878ffffdfde}, + {0x9938a831, 0xffffd878ffffdfdf}, + {0x9938a832, 0xffffd878ffffdfe0}, + {0x9938a833, 0xffffd878ffffdfe1}, + {0x9938a834, 0xffffd878ffffdfe2}, + {0x9938a835, 0xffffd878ffffdfe3}, + {0x9938a836, 0xffffd878ffffdfe4}, + {0x9938a837, 0xffffd878ffffdfe5}, + {0x9938a838, 0xffffd878ffffdfe6}, + {0x9938a839, 0xffffd878ffffdfe7}, + {0x9938a930, 0xffffd878ffffdfe8}, + {0x9938a931, 0xffffd878ffffdfe9}, + {0x9938a932, 0xffffd878ffffdfea}, + {0x9938a933, 0xffffd878ffffdfeb}, + {0x9938a934, 0xffffd878ffffdfec}, + {0x9938a935, 0xffffd878ffffdfed}, + {0x9938a936, 0xffffd878ffffdfee}, + {0x9938a937, 0xffffd878ffffdfef}, + {0x9938a938, 0xffffd878ffffdff0}, + {0x9938a939, 0xffffd878ffffdff1}, + {0x9938aa30, 0xffffd878ffffdff2}, + {0x9938aa31, 0xffffd878ffffdff3}, + {0x9938aa32, 0xffffd878ffffdff4}, + {0x9938aa33, 0xffffd878ffffdff5}, + {0x9938aa34, 0xffffd878ffffdff6}, + {0x9938aa35, 0xffffd878ffffdff7}, + {0x9938aa36, 0xffffd878ffffdff8}, + {0x9938aa37, 0xffffd878ffffdff9}, + {0x9938aa38, 0xffffd878ffffdffa}, + {0x9938aa39, 0xffffd878ffffdffb}, + {0x9938ab30, 0xffffd878ffffdffc}, + {0x9938ab31, 0xffffd878ffffdffd}, + {0x9938ab32, 0xffffd878ffffdffe}, + {0x9938ab33, 0xffffd878ffffdfff}, + {0x9938ab34, 0xffffd879ffffdc00}, + {0x9938ab35, 0xffffd879ffffdc01}, + {0x9938ab36, 0xffffd879ffffdc02}, + {0x9938ab37, 0xffffd879ffffdc03}, + {0x9938ab38, 0xffffd879ffffdc04}, + {0x9938ab39, 0xffffd879ffffdc05}, + {0x9938ac30, 0xffffd879ffffdc06}, + {0x9938ac31, 0xffffd879ffffdc07}, + {0x9938ac32, 0xffffd879ffffdc08}, + {0x9938ac33, 0xffffd879ffffdc09}, + {0x9938ac34, 0xffffd879ffffdc0a}, + {0x9938ac35, 0xffffd879ffffdc0b}, + {0x9938ac36, 0xffffd879ffffdc0c}, + {0x9938ac37, 0xffffd879ffffdc0d}, + {0x9938ac38, 0xffffd879ffffdc0e}, + {0x9938ac39, 0xffffd879ffffdc0f}, + {0x9938ad30, 0xffffd879ffffdc10}, + {0x9938ad31, 0xffffd879ffffdc11}, + {0x9938ad32, 0xffffd879ffffdc12}, + {0x9938ad33, 0xffffd879ffffdc13}, + {0x9938ad34, 0xffffd879ffffdc14}, + {0x9938ad35, 0xffffd879ffffdc15}, + {0x9938ad36, 0xffffd879ffffdc16}, + {0x9938ad37, 0xffffd879ffffdc17}, + {0x9938ad38, 0xffffd879ffffdc18}, + {0x9938ad39, 0xffffd879ffffdc19}, + {0x9938ae30, 0xffffd879ffffdc1a}, + {0x9938ae31, 0xffffd879ffffdc1b}, + {0x9938ae32, 0xffffd879ffffdc1c}, + {0x9938ae33, 0xffffd879ffffdc1d}, + {0x9938ae34, 0xffffd879ffffdc1e}, + {0x9938ae35, 0xffffd879ffffdc1f}, + {0x9938ae36, 0xffffd879ffffdc20}, + {0x9938ae37, 0xffffd879ffffdc21}, + {0x9938ae38, 0xffffd879ffffdc22}, + {0x9938ae39, 0xffffd879ffffdc23}, + {0x9938af30, 0xffffd879ffffdc24}, + {0x9938af31, 0xffffd879ffffdc25}, + {0x9938af32, 0xffffd879ffffdc26}, + {0x9938af33, 0xffffd879ffffdc27}, + {0x9938af34, 0xffffd879ffffdc28}, + {0x9938af35, 0xffffd879ffffdc29}, + {0x9938af36, 0xffffd879ffffdc2a}, + {0x9938af37, 0xffffd879ffffdc2b}, + {0x9938af38, 0xffffd879ffffdc2c}, + {0x9938af39, 0xffffd879ffffdc2d}, + {0x9938b030, 0xffffd879ffffdc2e}, + {0x9938b031, 0xffffd879ffffdc2f}, + {0x9938b032, 0xffffd879ffffdc30}, + {0x9938b033, 0xffffd879ffffdc31}, + {0x9938b034, 0xffffd879ffffdc32}, + {0x9938b035, 0xffffd879ffffdc33}, + {0x9938b036, 0xffffd879ffffdc34}, + {0x9938b037, 0xffffd879ffffdc35}, + {0x9938b038, 0xffffd879ffffdc36}, + {0x9938b039, 0xffffd879ffffdc37}, + {0x9938b130, 0xffffd879ffffdc38}, + {0x9938b131, 0xffffd879ffffdc39}, + {0x9938b132, 0xffffd879ffffdc3a}, + {0x9938b133, 0xffffd879ffffdc3b}, + {0x9938b134, 0xffffd879ffffdc3c}, + {0x9938b135, 0xffffd879ffffdc3d}, + {0x9938b136, 0xffffd879ffffdc3e}, + {0x9938b137, 0xffffd879ffffdc3f}, + {0x9938b138, 0xffffd879ffffdc40}, + {0x9938b139, 0xffffd879ffffdc41}, + {0x9938b230, 0xffffd879ffffdc42}, + {0x9938b231, 0xffffd879ffffdc43}, + {0x9938b232, 0xffffd879ffffdc44}, + {0x9938b233, 0xffffd879ffffdc45}, + {0x9938b234, 0xffffd879ffffdc46}, + {0x9938b235, 0xffffd879ffffdc47}, + {0x9938b236, 0xffffd879ffffdc48}, + {0x9938b237, 0xffffd879ffffdc49}, + {0x9938b238, 0xffffd879ffffdc4a}, + {0x9938b239, 0xffffd879ffffdc4b}, + {0x9938b330, 0xffffd879ffffdc4c}, + {0x9938b331, 0xffffd879ffffdc4d}, + {0x9938b332, 0xffffd879ffffdc4e}, + {0x9938b333, 0xffffd879ffffdc4f}, + {0x9938b334, 0xffffd879ffffdc50}, + {0x9938b335, 0xffffd879ffffdc51}, + {0x9938b336, 0xffffd879ffffdc52}, + {0x9938b337, 0xffffd879ffffdc53}, + {0x9938b338, 0xffffd879ffffdc54}, + {0x9938b339, 0xffffd879ffffdc55}, + {0x9938b430, 0xffffd879ffffdc56}, + {0x9938b431, 0xffffd879ffffdc57}, + {0x9938b432, 0xffffd879ffffdc58}, + {0x9938b433, 0xffffd879ffffdc59}, + {0x9938b434, 0xffffd879ffffdc5a}, + {0x9938b435, 0xffffd879ffffdc5b}, + {0x9938b436, 0xffffd879ffffdc5c}, + {0x9938b437, 0xffffd879ffffdc5d}, + {0x9938b438, 0xffffd879ffffdc5e}, + {0x9938b439, 0xffffd879ffffdc5f}, + {0x9938b530, 0xffffd879ffffdc60}, + {0x9938b531, 0xffffd879ffffdc61}, + {0x9938b532, 0xffffd879ffffdc62}, + {0x9938b533, 0xffffd879ffffdc63}, + {0x9938b534, 0xffffd879ffffdc64}, + {0x9938b535, 0xffffd879ffffdc65}, + {0x9938b536, 0xffffd879ffffdc66}, + {0x9938b537, 0xffffd879ffffdc67}, + {0x9938b538, 0xffffd879ffffdc68}, + {0x9938b539, 0xffffd879ffffdc69}, + {0x9938b630, 0xffffd879ffffdc6a}, + {0x9938b631, 0xffffd879ffffdc6b}, + {0x9938b632, 0xffffd879ffffdc6c}, + {0x9938b633, 0xffffd879ffffdc6d}, + {0x9938b634, 0xffffd879ffffdc6e}, + {0x9938b635, 0xffffd879ffffdc6f}, + {0x9938b636, 0xffffd879ffffdc70}, + {0x9938b637, 0xffffd879ffffdc71}, + {0x9938b638, 0xffffd879ffffdc72}, + {0x9938b639, 0xffffd879ffffdc73}, + {0x9938b730, 0xffffd879ffffdc74}, + {0x9938b731, 0xffffd879ffffdc75}, + {0x9938b732, 0xffffd879ffffdc76}, + {0x9938b733, 0xffffd879ffffdc77}, + {0x9938b734, 0xffffd879ffffdc78}, + {0x9938b735, 0xffffd879ffffdc79}, + {0x9938b736, 0xffffd879ffffdc7a}, + {0x9938b737, 0xffffd879ffffdc7b}, + {0x9938b738, 0xffffd879ffffdc7c}, + {0x9938b739, 0xffffd879ffffdc7d}, + {0x9938b830, 0xffffd879ffffdc7e}, + {0x9938b831, 0xffffd879ffffdc7f}, + {0x9938b832, 0xffffd879ffffdc80}, + {0x9938b833, 0xffffd879ffffdc81}, + {0x9938b834, 0xffffd879ffffdc82}, + {0x9938b835, 0xffffd879ffffdc83}, + {0x9938b836, 0xffffd879ffffdc84}, + {0x9938b837, 0xffffd879ffffdc85}, + {0x9938b838, 0xffffd879ffffdc86}, + {0x9938b839, 0xffffd879ffffdc87}, + {0x9938b930, 0xffffd879ffffdc88}, + {0x9938b931, 0xffffd879ffffdc89}, + {0x9938b932, 0xffffd879ffffdc8a}, + {0x9938b933, 0xffffd879ffffdc8b}, + {0x9938b934, 0xffffd879ffffdc8c}, + {0x9938b935, 0xffffd879ffffdc8d}, + {0x9938b936, 0xffffd879ffffdc8e}, + {0x9938b937, 0xffffd879ffffdc8f}, + {0x9938b938, 0xffffd879ffffdc90}, + {0x9938b939, 0xffffd879ffffdc91}, + {0x9938ba30, 0xffffd879ffffdc92}, + {0x9938ba31, 0xffffd879ffffdc93}, + {0x9938ba32, 0xffffd879ffffdc94}, + {0x9938ba33, 0xffffd879ffffdc95}, + {0x9938ba34, 0xffffd879ffffdc96}, + {0x9938ba35, 0xffffd879ffffdc97}, + {0x9938ba36, 0xffffd879ffffdc98}, + {0x9938ba37, 0xffffd879ffffdc99}, + {0x9938ba38, 0xffffd879ffffdc9a}, + {0x9938ba39, 0xffffd879ffffdc9b}, + {0x9938bb30, 0xffffd879ffffdc9c}, + {0x9938bb31, 0xffffd879ffffdc9d}, + {0x9938bb32, 0xffffd879ffffdc9e}, + {0x9938bb33, 0xffffd879ffffdc9f}, + {0x9938bb34, 0xffffd879ffffdca0}, + {0x9938bb35, 0xffffd879ffffdca1}, + {0x9938bb36, 0xffffd879ffffdca2}, + {0x9938bb37, 0xffffd879ffffdca3}, + {0x9938bb38, 0xffffd879ffffdca4}, + {0x9938bb39, 0xffffd879ffffdca5}, + {0x9938bc30, 0xffffd879ffffdca6}, + {0x9938bc31, 0xffffd879ffffdca7}, + {0x9938bc32, 0xffffd879ffffdca8}, + {0x9938bc33, 0xffffd879ffffdca9}, + {0x9938bc34, 0xffffd879ffffdcaa}, + {0x9938bc35, 0xffffd879ffffdcab}, + {0x9938bc36, 0xffffd879ffffdcac}, + {0x9938bc37, 0xffffd879ffffdcad}, + {0x9938bc38, 0xffffd879ffffdcae}, + {0x9938bc39, 0xffffd879ffffdcaf}, + {0x9938bd30, 0xffffd879ffffdcb0}, + {0x9938bd31, 0xffffd879ffffdcb1}, + {0x9938bd32, 0xffffd879ffffdcb2}, + {0x9938bd33, 0xffffd879ffffdcb3}, + {0x9938bd34, 0xffffd879ffffdcb4}, + {0x9938bd35, 0xffffd879ffffdcb5}, + {0x9938bd36, 0xffffd879ffffdcb6}, + {0x9938bd37, 0xffffd879ffffdcb7}, + {0x9938bd38, 0xffffd879ffffdcb8}, + {0x9938bd39, 0xffffd879ffffdcb9}, + {0x9938be30, 0xffffd879ffffdcba}, + {0x9938be31, 0xffffd879ffffdcbb}, + {0x9938be32, 0xffffd879ffffdcbc}, + {0x9938be33, 0xffffd879ffffdcbd}, + {0x9938be34, 0xffffd879ffffdcbe}, + {0x9938be35, 0xffffd879ffffdcbf}, + {0x9938be36, 0xffffd879ffffdcc0}, + {0x9938be37, 0xffffd879ffffdcc1}, + {0x9938be38, 0xffffd879ffffdcc2}, + {0x9938be39, 0xffffd879ffffdcc3}, + {0x9938bf30, 0xffffd879ffffdcc4}, + {0x9938bf31, 0xffffd879ffffdcc5}, + {0x9938bf32, 0xffffd879ffffdcc6}, + {0x9938bf33, 0xffffd879ffffdcc7}, + {0x9938bf34, 0xffffd879ffffdcc8}, + {0x9938bf35, 0xffffd879ffffdcc9}, + {0x9938bf36, 0xffffd879ffffdcca}, + {0x9938bf37, 0xffffd879ffffdccb}, + {0x9938bf38, 0xffffd879ffffdccc}, + {0x9938bf39, 0xffffd879ffffdccd}, + {0x9938c030, 0xffffd879ffffdcce}, + {0x9938c031, 0xffffd879ffffdccf}, + {0x9938c032, 0xffffd879ffffdcd0}, + {0x9938c033, 0xffffd879ffffdcd1}, + {0x9938c034, 0xffffd879ffffdcd2}, + {0x9938c035, 0xffffd879ffffdcd3}, + {0x9938c036, 0xffffd879ffffdcd4}, + {0x9938c037, 0xffffd879ffffdcd5}, + {0x9938c038, 0xffffd879ffffdcd6}, + {0x9938c039, 0xffffd879ffffdcd7}, + {0x9938c130, 0xffffd879ffffdcd8}, + {0x9938c131, 0xffffd879ffffdcd9}, + {0x9938c132, 0xffffd879ffffdcda}, + {0x9938c133, 0xffffd879ffffdcdb}, + {0x9938c134, 0xffffd879ffffdcdc}, + {0x9938c135, 0xffffd879ffffdcdd}, + {0x9938c136, 0xffffd879ffffdcde}, + {0x9938c137, 0xffffd879ffffdcdf}, + {0x9938c138, 0xffffd879ffffdce0}, + {0x9938c139, 0xffffd879ffffdce1}, + {0x9938c230, 0xffffd879ffffdce2}, + {0x9938c231, 0xffffd879ffffdce3}, + {0x9938c232, 0xffffd879ffffdce4}, + {0x9938c233, 0xffffd879ffffdce5}, + {0x9938c234, 0xffffd879ffffdce6}, + {0x9938c235, 0xffffd879ffffdce7}, + {0x9938c236, 0xffffd879ffffdce8}, + {0x9938c237, 0xffffd879ffffdce9}, + {0x9938c238, 0xffffd879ffffdcea}, + {0x9938c239, 0xffffd879ffffdceb}, + {0x9938c330, 0xffffd879ffffdcec}, + {0x9938c331, 0xffffd879ffffdced}, + {0x9938c332, 0xffffd879ffffdcee}, + {0x9938c333, 0xffffd879ffffdcef}, + {0x9938c334, 0xffffd879ffffdcf0}, + {0x9938c335, 0xffffd879ffffdcf1}, + {0x9938c336, 0xffffd879ffffdcf2}, + {0x9938c337, 0xffffd879ffffdcf3}, + {0x9938c338, 0xffffd879ffffdcf4}, + {0x9938c339, 0xffffd879ffffdcf5}, + {0x9938c430, 0xffffd879ffffdcf6}, + {0x9938c431, 0xffffd879ffffdcf7}, + {0x9938c432, 0xffffd879ffffdcf8}, + {0x9938c433, 0xffffd879ffffdcf9}, + {0x9938c434, 0xffffd879ffffdcfa}, + {0x9938c435, 0xffffd879ffffdcfb}, + {0x9938c436, 0xffffd879ffffdcfc}, + {0x9938c437, 0xffffd879ffffdcfd}, + {0x9938c438, 0xffffd879ffffdcfe}, + {0x9938c439, 0xffffd879ffffdcff}, + {0x9938c530, 0xffffd879ffffdd00}, + {0x9938c531, 0xffffd879ffffdd01}, + {0x9938c532, 0xffffd879ffffdd02}, + {0x9938c533, 0xffffd879ffffdd03}, + {0x9938c534, 0xffffd879ffffdd04}, + {0x9938c535, 0xffffd879ffffdd05}, + {0x9938c536, 0xffffd879ffffdd06}, + {0x9938c537, 0xffffd879ffffdd07}, + {0x9938c538, 0xffffd879ffffdd08}, + {0x9938c539, 0xffffd879ffffdd09}, + {0x9938c630, 0xffffd879ffffdd0a}, + {0x9938c631, 0xffffd879ffffdd0b}, + {0x9938c632, 0xffffd879ffffdd0c}, + {0x9938c633, 0xffffd879ffffdd0d}, + {0x9938c634, 0xffffd879ffffdd0e}, + {0x9938c635, 0xffffd879ffffdd0f}, + {0x9938c636, 0xffffd879ffffdd10}, + {0x9938c637, 0xffffd879ffffdd11}, + {0x9938c638, 0xffffd879ffffdd12}, + {0x9938c639, 0xffffd879ffffdd13}, + {0x9938c730, 0xffffd879ffffdd14}, + {0x9938c731, 0xffffd879ffffdd15}, + {0x9938c732, 0xffffd879ffffdd16}, + {0x9938c733, 0xffffd879ffffdd17}, + {0x9938c734, 0xffffd879ffffdd18}, + {0x9938c735, 0xffffd879ffffdd19}, + {0x9938c736, 0xffffd879ffffdd1a}, + {0x9938c737, 0xffffd879ffffdd1b}, + {0x9938c738, 0xffffd879ffffdd1c}, + {0x9938c739, 0xffffd879ffffdd1d}, + {0x9938c830, 0xffffd879ffffdd1e}, + {0x9938c831, 0xffffd879ffffdd1f}, + {0x9938c832, 0xffffd879ffffdd20}, + {0x9938c833, 0xffffd879ffffdd21}, + {0x9938c834, 0xffffd879ffffdd22}, + {0x9938c835, 0xffffd879ffffdd23}, + {0x9938c836, 0xffffd879ffffdd24}, + {0x9938c837, 0xffffd879ffffdd25}, + {0x9938c838, 0xffffd879ffffdd26}, + {0x9938c839, 0xffffd879ffffdd27}, + {0x9938c930, 0xffffd879ffffdd28}, + {0x9938c931, 0xffffd879ffffdd29}, + {0x9938c932, 0xffffd879ffffdd2a}, + {0x9938c933, 0xffffd879ffffdd2b}, + {0x9938c934, 0xffffd879ffffdd2c}, + {0x9938c935, 0xffffd879ffffdd2d}, + {0x9938c936, 0xffffd879ffffdd2e}, + {0x9938c937, 0xffffd879ffffdd2f}, + {0x9938c938, 0xffffd879ffffdd30}, + {0x9938c939, 0xffffd879ffffdd31}, + {0x9938ca30, 0xffffd879ffffdd32}, + {0x9938ca31, 0xffffd879ffffdd33}, + {0x9938ca32, 0xffffd879ffffdd34}, + {0x9938ca33, 0xffffd879ffffdd35}, + {0x9938ca34, 0xffffd879ffffdd36}, + {0x9938ca35, 0xffffd879ffffdd37}, + {0x9938ca36, 0xffffd879ffffdd38}, + {0x9938ca37, 0xffffd879ffffdd39}, + {0x9938ca38, 0xffffd879ffffdd3a}, + {0x9938ca39, 0xffffd879ffffdd3b}, + {0x9938cb30, 0xffffd879ffffdd3c}, + {0x9938cb31, 0xffffd879ffffdd3d}, + {0x9938cb32, 0xffffd879ffffdd3e}, + {0x9938cb33, 0xffffd879ffffdd3f}, + {0x9938cb34, 0xffffd879ffffdd40}, + {0x9938cb35, 0xffffd879ffffdd41}, + {0x9938cb36, 0xffffd879ffffdd42}, + {0x9938cb37, 0xffffd879ffffdd43}, + {0x9938cb38, 0xffffd879ffffdd44}, + {0x9938cb39, 0xffffd879ffffdd45}, + {0x9938cc30, 0xffffd879ffffdd46}, + {0x9938cc31, 0xffffd879ffffdd47}, + {0x9938cc32, 0xffffd879ffffdd48}, + {0x9938cc33, 0xffffd879ffffdd49}, + {0x9938cc34, 0xffffd879ffffdd4a}, + {0x9938cc35, 0xffffd879ffffdd4b}, + {0x9938cc36, 0xffffd879ffffdd4c}, + {0x9938cc37, 0xffffd879ffffdd4d}, + {0x9938cc38, 0xffffd879ffffdd4e}, + {0x9938cc39, 0xffffd879ffffdd4f}, + {0x9938cd30, 0xffffd879ffffdd50}, + {0x9938cd31, 0xffffd879ffffdd51}, + {0x9938cd32, 0xffffd879ffffdd52}, + {0x9938cd33, 0xffffd879ffffdd53}, + {0x9938cd34, 0xffffd879ffffdd54}, + {0x9938cd35, 0xffffd879ffffdd55}, + {0x9938cd36, 0xffffd879ffffdd56}, + {0x9938cd37, 0xffffd879ffffdd57}, + {0x9938cd38, 0xffffd879ffffdd58}, + {0x9938cd39, 0xffffd879ffffdd59}, + {0x9938ce30, 0xffffd879ffffdd5a}, + {0x9938ce31, 0xffffd879ffffdd5b}, + {0x9938ce32, 0xffffd879ffffdd5c}, + {0x9938ce33, 0xffffd879ffffdd5d}, + {0x9938ce34, 0xffffd879ffffdd5e}, + {0x9938ce35, 0xffffd879ffffdd5f}, + {0x9938ce36, 0xffffd879ffffdd60}, + {0x9938ce37, 0xffffd879ffffdd61}, + {0x9938ce38, 0xffffd879ffffdd62}, + {0x9938ce39, 0xffffd879ffffdd63}, + {0x9938cf30, 0xffffd879ffffdd64}, + {0x9938cf31, 0xffffd879ffffdd65}, + {0x9938cf32, 0xffffd879ffffdd66}, + {0x9938cf33, 0xffffd879ffffdd67}, + {0x9938cf34, 0xffffd879ffffdd68}, + {0x9938cf35, 0xffffd879ffffdd69}, + {0x9938cf36, 0xffffd879ffffdd6a}, + {0x9938cf37, 0xffffd879ffffdd6b}, + {0x9938cf38, 0xffffd879ffffdd6c}, + {0x9938cf39, 0xffffd879ffffdd6d}, + {0x9938d030, 0xffffd879ffffdd6e}, + {0x9938d031, 0xffffd879ffffdd6f}, + {0x9938d032, 0xffffd879ffffdd70}, + {0x9938d033, 0xffffd879ffffdd71}, + {0x9938d034, 0xffffd879ffffdd72}, + {0x9938d035, 0xffffd879ffffdd73}, + {0x9938d036, 0xffffd879ffffdd74}, + {0x9938d037, 0xffffd879ffffdd75}, + {0x9938d038, 0xffffd879ffffdd76}, + {0x9938d039, 0xffffd879ffffdd77}, + {0x9938d130, 0xffffd879ffffdd78}, + {0x9938d131, 0xffffd879ffffdd79}, + {0x9938d132, 0xffffd879ffffdd7a}, + {0x9938d133, 0xffffd879ffffdd7b}, + {0x9938d134, 0xffffd879ffffdd7c}, + {0x9938d135, 0xffffd879ffffdd7d}, + {0x9938d136, 0xffffd879ffffdd7e}, + {0x9938d137, 0xffffd879ffffdd7f}, + {0x9938d138, 0xffffd879ffffdd80}, + {0x9938d139, 0xffffd879ffffdd81}, + {0x9938d230, 0xffffd879ffffdd82}, + {0x9938d231, 0xffffd879ffffdd83}, + {0x9938d232, 0xffffd879ffffdd84}, + {0x9938d233, 0xffffd879ffffdd85}, + {0x9938d234, 0xffffd879ffffdd86}, + {0x9938d235, 0xffffd879ffffdd87}, + {0x9938d236, 0xffffd879ffffdd88}, + {0x9938d237, 0xffffd879ffffdd89}, + {0x9938d238, 0xffffd879ffffdd8a}, + {0x9938d239, 0xffffd879ffffdd8b}, + {0x9938d330, 0xffffd879ffffdd8c}, + {0x9938d331, 0xffffd879ffffdd8d}, + {0x9938d332, 0xffffd879ffffdd8e}, + {0x9938d333, 0xffffd879ffffdd8f}, + {0x9938d334, 0xffffd879ffffdd90}, + {0x9938d335, 0xffffd879ffffdd91}, + {0x9938d336, 0xffffd879ffffdd92}, + {0x9938d337, 0xffffd879ffffdd93}, + {0x9938d338, 0xffffd879ffffdd94}, + {0x9938d339, 0xffffd879ffffdd95}, + {0x9938d430, 0xffffd879ffffdd96}, + {0x9938d431, 0xffffd879ffffdd97}, + {0x9938d432, 0xffffd879ffffdd98}, + {0x9938d433, 0xffffd879ffffdd99}, + {0x9938d434, 0xffffd879ffffdd9a}, + {0x9938d435, 0xffffd879ffffdd9b}, + {0x9938d436, 0xffffd879ffffdd9c}, + {0x9938d437, 0xffffd879ffffdd9d}, + {0x9938d438, 0xffffd879ffffdd9e}, + {0x9938d439, 0xffffd879ffffdd9f}, + {0x9938d530, 0xffffd879ffffdda0}, + {0x9938d531, 0xffffd879ffffdda1}, + {0x9938d532, 0xffffd879ffffdda2}, + {0x9938d533, 0xffffd879ffffdda3}, + {0x9938d534, 0xffffd879ffffdda4}, + {0x9938d535, 0xffffd879ffffdda5}, + {0x9938d536, 0xffffd879ffffdda6}, + {0x9938d537, 0xffffd879ffffdda7}, + {0x9938d538, 0xffffd879ffffdda8}, + {0x9938d539, 0xffffd879ffffdda9}, + {0x9938d630, 0xffffd879ffffddaa}, + {0x9938d631, 0xffffd879ffffddab}, + {0x9938d632, 0xffffd879ffffddac}, + {0x9938d633, 0xffffd879ffffddad}, + {0x9938d634, 0xffffd879ffffddae}, + {0x9938d635, 0xffffd879ffffddaf}, + {0x9938d636, 0xffffd879ffffddb0}, + {0x9938d637, 0xffffd879ffffddb1}, + {0x9938d638, 0xffffd879ffffddb2}, + {0x9938d639, 0xffffd879ffffddb3}, + {0x9938d730, 0xffffd879ffffddb4}, + {0x9938d731, 0xffffd879ffffddb5}, + {0x9938d732, 0xffffd879ffffddb6}, + {0x9938d733, 0xffffd879ffffddb7}, + {0x9938d734, 0xffffd879ffffddb8}, + {0x9938d735, 0xffffd879ffffddb9}, + {0x9938d736, 0xffffd879ffffddba}, + {0x9938d737, 0xffffd879ffffddbb}, + {0x9938d738, 0xffffd879ffffddbc}, + {0x9938d739, 0xffffd879ffffddbd}, + {0x9938d830, 0xffffd879ffffddbe}, + {0x9938d831, 0xffffd879ffffddbf}, + {0x9938d832, 0xffffd879ffffddc0}, + {0x9938d833, 0xffffd879ffffddc1}, + {0x9938d834, 0xffffd879ffffddc2}, + {0x9938d835, 0xffffd879ffffddc3}, + {0x9938d836, 0xffffd879ffffddc4}, + {0x9938d837, 0xffffd879ffffddc5}, + {0x9938d838, 0xffffd879ffffddc6}, + {0x9938d839, 0xffffd879ffffddc7}, + {0x9938d930, 0xffffd879ffffddc8}, + {0x9938d931, 0xffffd879ffffddc9}, + {0x9938d932, 0xffffd879ffffddca}, + {0x9938d933, 0xffffd879ffffddcb}, + {0x9938d934, 0xffffd879ffffddcc}, + {0x9938d935, 0xffffd879ffffddcd}, + {0x9938d936, 0xffffd879ffffddce}, + {0x9938d937, 0xffffd879ffffddcf}, + {0x9938d938, 0xffffd879ffffddd0}, + {0x9938d939, 0xffffd879ffffddd1}, + {0x9938da30, 0xffffd879ffffddd2}, + {0x9938da31, 0xffffd879ffffddd3}, + {0x9938da32, 0xffffd879ffffddd4}, + {0x9938da33, 0xffffd879ffffddd5}, + {0x9938da34, 0xffffd879ffffddd6}, + {0x9938da35, 0xffffd879ffffddd7}, + {0x9938da36, 0xffffd879ffffddd8}, + {0x9938da37, 0xffffd879ffffddd9}, + {0x9938da38, 0xffffd879ffffddda}, + {0x9938da39, 0xffffd879ffffdddb}, + {0x9938db30, 0xffffd879ffffdddc}, + {0x9938db31, 0xffffd879ffffdddd}, + {0x9938db32, 0xffffd879ffffddde}, + {0x9938db33, 0xffffd879ffffdddf}, + {0x9938db34, 0xffffd879ffffdde0}, + {0x9938db35, 0xffffd879ffffdde1}, + {0x9938db36, 0xffffd879ffffdde2}, + {0x9938db37, 0xffffd879ffffdde3}, + {0x9938db38, 0xffffd879ffffdde4}, + {0x9938db39, 0xffffd879ffffdde5}, + {0x9938dc30, 0xffffd879ffffdde6}, + {0x9938dc31, 0xffffd879ffffdde7}, + {0x9938dc32, 0xffffd879ffffdde8}, + {0x9938dc33, 0xffffd879ffffdde9}, + {0x9938dc34, 0xffffd879ffffddea}, + {0x9938dc35, 0xffffd879ffffddeb}, + {0x9938dc36, 0xffffd879ffffddec}, + {0x9938dc37, 0xffffd879ffffdded}, + {0x9938dc38, 0xffffd879ffffddee}, + {0x9938dc39, 0xffffd879ffffddef}, + {0x9938dd30, 0xffffd879ffffddf0}, + {0x9938dd31, 0xffffd879ffffddf1}, + {0x9938dd32, 0xffffd879ffffddf2}, + {0x9938dd33, 0xffffd879ffffddf3}, + {0x9938dd34, 0xffffd879ffffddf4}, + {0x9938dd35, 0xffffd879ffffddf5}, + {0x9938dd36, 0xffffd879ffffddf6}, + {0x9938dd37, 0xffffd879ffffddf7}, + {0x9938dd38, 0xffffd879ffffddf8}, + {0x9938dd39, 0xffffd879ffffddf9}, + {0x9938de30, 0xffffd879ffffddfa}, + {0x9938de31, 0xffffd879ffffddfb}, + {0x9938de32, 0xffffd879ffffddfc}, + {0x9938de33, 0xffffd879ffffddfd}, + {0x9938de34, 0xffffd879ffffddfe}, + {0x9938de35, 0xffffd879ffffddff}, + {0x9938de36, 0xffffd879ffffde00}, + {0x9938de37, 0xffffd879ffffde01}, + {0x9938de38, 0xffffd879ffffde02}, + {0x9938de39, 0xffffd879ffffde03}, + {0x9938df30, 0xffffd879ffffde04}, + {0x9938df31, 0xffffd879ffffde05}, + {0x9938df32, 0xffffd879ffffde06}, + {0x9938df33, 0xffffd879ffffde07}, + {0x9938df34, 0xffffd879ffffde08}, + {0x9938df35, 0xffffd879ffffde09}, + {0x9938df36, 0xffffd879ffffde0a}, + {0x9938df37, 0xffffd879ffffde0b}, + {0x9938df38, 0xffffd879ffffde0c}, + {0x9938df39, 0xffffd879ffffde0d}, + {0x9938e030, 0xffffd879ffffde0e}, + {0x9938e031, 0xffffd879ffffde0f}, + {0x9938e032, 0xffffd879ffffde10}, + {0x9938e033, 0xffffd879ffffde11}, + {0x9938e034, 0xffffd879ffffde12}, + {0x9938e035, 0xffffd879ffffde13}, + {0x9938e036, 0xffffd879ffffde14}, + {0x9938e037, 0xffffd879ffffde15}, + {0x9938e038, 0xffffd879ffffde16}, + {0x9938e039, 0xffffd879ffffde17}, + {0x9938e130, 0xffffd879ffffde18}, + {0x9938e131, 0xffffd879ffffde19}, + {0x9938e132, 0xffffd879ffffde1a}, + {0x9938e133, 0xffffd879ffffde1b}, + {0x9938e134, 0xffffd879ffffde1c}, + {0x9938e135, 0xffffd879ffffde1d}, + {0x9938e136, 0xffffd879ffffde1e}, + {0x9938e137, 0xffffd879ffffde1f}, + {0x9938e138, 0xffffd879ffffde20}, + {0x9938e139, 0xffffd879ffffde21}, + {0x9938e230, 0xffffd879ffffde22}, + {0x9938e231, 0xffffd879ffffde23}, + {0x9938e232, 0xffffd879ffffde24}, + {0x9938e233, 0xffffd879ffffde25}, + {0x9938e234, 0xffffd879ffffde26}, + {0x9938e235, 0xffffd879ffffde27}, + {0x9938e236, 0xffffd879ffffde28}, + {0x9938e237, 0xffffd879ffffde29}, + {0x9938e238, 0xffffd879ffffde2a}, + {0x9938e239, 0xffffd879ffffde2b}, + {0x9938e330, 0xffffd879ffffde2c}, + {0x9938e331, 0xffffd879ffffde2d}, + {0x9938e332, 0xffffd879ffffde2e}, + {0x9938e333, 0xffffd879ffffde2f}, + {0x9938e334, 0xffffd879ffffde30}, + {0x9938e335, 0xffffd879ffffde31}, + {0x9938e336, 0xffffd879ffffde32}, + {0x9938e337, 0xffffd879ffffde33}, + {0x9938e338, 0xffffd879ffffde34}, + {0x9938e339, 0xffffd879ffffde35}, + {0x9938e430, 0xffffd879ffffde36}, + {0x9938e431, 0xffffd879ffffde37}, + {0x9938e432, 0xffffd879ffffde38}, + {0x9938e433, 0xffffd879ffffde39}, + {0x9938e434, 0xffffd879ffffde3a}, + {0x9938e435, 0xffffd879ffffde3b}, + {0x9938e436, 0xffffd879ffffde3c}, + {0x9938e437, 0xffffd879ffffde3d}, + {0x9938e438, 0xffffd879ffffde3e}, + {0x9938e439, 0xffffd879ffffde3f}, + {0x9938e530, 0xffffd879ffffde40}, + {0x9938e531, 0xffffd879ffffde41}, + {0x9938e532, 0xffffd879ffffde42}, + {0x9938e533, 0xffffd879ffffde43}, + {0x9938e534, 0xffffd879ffffde44}, + {0x9938e535, 0xffffd879ffffde45}, + {0x9938e536, 0xffffd879ffffde46}, + {0x9938e537, 0xffffd879ffffde47}, + {0x9938e538, 0xffffd879ffffde48}, + {0x9938e539, 0xffffd879ffffde49}, + {0x9938e630, 0xffffd879ffffde4a}, + {0x9938e631, 0xffffd879ffffde4b}, + {0x9938e632, 0xffffd879ffffde4c}, + {0x9938e633, 0xffffd879ffffde4d}, + {0x9938e634, 0xffffd879ffffde4e}, + {0x9938e635, 0xffffd879ffffde4f}, + {0x9938e636, 0xffffd879ffffde50}, + {0x9938e637, 0xffffd879ffffde51}, + {0x9938e638, 0xffffd879ffffde52}, + {0x9938e639, 0xffffd879ffffde53}, + {0x9938e730, 0xffffd879ffffde54}, + {0x9938e731, 0xffffd879ffffde55}, + {0x9938e732, 0xffffd879ffffde56}, + {0x9938e733, 0xffffd879ffffde57}, + {0x9938e734, 0xffffd879ffffde58}, + {0x9938e735, 0xffffd879ffffde59}, + {0x9938e736, 0xffffd879ffffde5a}, + {0x9938e737, 0xffffd879ffffde5b}, + {0x9938e738, 0xffffd879ffffde5c}, + {0x9938e739, 0xffffd879ffffde5d}, + {0x9938e830, 0xffffd879ffffde5e}, + {0x9938e831, 0xffffd879ffffde5f}, + {0x9938e832, 0xffffd879ffffde60}, + {0x9938e833, 0xffffd879ffffde61}, + {0x9938e834, 0xffffd879ffffde62}, + {0x9938e835, 0xffffd879ffffde63}, + {0x9938e836, 0xffffd879ffffde64}, + {0x9938e837, 0xffffd879ffffde65}, + {0x9938e838, 0xffffd879ffffde66}, + {0x9938e839, 0xffffd879ffffde67}, + {0x9938e930, 0xffffd879ffffde68}, + {0x9938e931, 0xffffd879ffffde69}, + {0x9938e932, 0xffffd879ffffde6a}, + {0x9938e933, 0xffffd879ffffde6b}, + {0x9938e934, 0xffffd879ffffde6c}, + {0x9938e935, 0xffffd879ffffde6d}, + {0x9938e936, 0xffffd879ffffde6e}, + {0x9938e937, 0xffffd879ffffde6f}, + {0x9938e938, 0xffffd879ffffde70}, + {0x9938e939, 0xffffd879ffffde71}, + {0x9938ea30, 0xffffd879ffffde72}, + {0x9938ea31, 0xffffd879ffffde73}, + {0x9938ea32, 0xffffd879ffffde74}, + {0x9938ea33, 0xffffd879ffffde75}, + {0x9938ea34, 0xffffd879ffffde76}, + {0x9938ea35, 0xffffd879ffffde77}, + {0x9938ea36, 0xffffd879ffffde78}, + {0x9938ea37, 0xffffd879ffffde79}, + {0x9938ea38, 0xffffd879ffffde7a}, + {0x9938ea39, 0xffffd879ffffde7b}, + {0x9938eb30, 0xffffd879ffffde7c}, + {0x9938eb31, 0xffffd879ffffde7d}, + {0x9938eb32, 0xffffd879ffffde7e}, + {0x9938eb33, 0xffffd879ffffde7f}, + {0x9938eb34, 0xffffd879ffffde80}, + {0x9938eb35, 0xffffd879ffffde81}, + {0x9938eb36, 0xffffd879ffffde82}, + {0x9938eb37, 0xffffd879ffffde83}, + {0x9938eb38, 0xffffd879ffffde84}, + {0x9938eb39, 0xffffd879ffffde85}, + {0x9938ec30, 0xffffd879ffffde86}, + {0x9938ec31, 0xffffd879ffffde87}, + {0x9938ec32, 0xffffd879ffffde88}, + {0x9938ec33, 0xffffd879ffffde89}, + {0x9938ec34, 0xffffd879ffffde8a}, + {0x9938ec35, 0xffffd879ffffde8b}, + {0x9938ec36, 0xffffd879ffffde8c}, + {0x9938ec37, 0xffffd879ffffde8d}, + {0x9938ec38, 0xffffd879ffffde8e}, + {0x9938ec39, 0xffffd879ffffde8f}, + {0x9938ed30, 0xffffd879ffffde90}, + {0x9938ed31, 0xffffd879ffffde91}, + {0x9938ed32, 0xffffd879ffffde92}, + {0x9938ed33, 0xffffd879ffffde93}, + {0x9938ed34, 0xffffd879ffffde94}, + {0x9938ed35, 0xffffd879ffffde95}, + {0x9938ed36, 0xffffd879ffffde96}, + {0x9938ed37, 0xffffd879ffffde97}, + {0x9938ed38, 0xffffd879ffffde98}, + {0x9938ed39, 0xffffd879ffffde99}, + {0x9938ee30, 0xffffd879ffffde9a}, + {0x9938ee31, 0xffffd879ffffde9b}, + {0x9938ee32, 0xffffd879ffffde9c}, + {0x9938ee33, 0xffffd879ffffde9d}, + {0x9938ee34, 0xffffd879ffffde9e}, + {0x9938ee35, 0xffffd879ffffde9f}, + {0x9938ee36, 0xffffd879ffffdea0}, + {0x9938ee37, 0xffffd879ffffdea1}, + {0x9938ee38, 0xffffd879ffffdea2}, + {0x9938ee39, 0xffffd879ffffdea3}, + {0x9938ef30, 0xffffd879ffffdea4}, + {0x9938ef31, 0xffffd879ffffdea5}, + {0x9938ef32, 0xffffd879ffffdea6}, + {0x9938ef33, 0xffffd879ffffdea7}, + {0x9938ef34, 0xffffd879ffffdea8}, + {0x9938ef35, 0xffffd879ffffdea9}, + {0x9938ef36, 0xffffd879ffffdeaa}, + {0x9938ef37, 0xffffd879ffffdeab}, + {0x9938ef38, 0xffffd879ffffdeac}, + {0x9938ef39, 0xffffd879ffffdead}, + {0x9938f030, 0xffffd879ffffdeae}, + {0x9938f031, 0xffffd879ffffdeaf}, + {0x9938f032, 0xffffd879ffffdeb0}, + {0x9938f033, 0xffffd879ffffdeb1}, + {0x9938f034, 0xffffd879ffffdeb2}, + {0x9938f035, 0xffffd879ffffdeb3}, + {0x9938f036, 0xffffd879ffffdeb4}, + {0x9938f037, 0xffffd879ffffdeb5}, + {0x9938f038, 0xffffd879ffffdeb6}, + {0x9938f039, 0xffffd879ffffdeb7}, + {0x9938f130, 0xffffd879ffffdeb8}, + {0x9938f131, 0xffffd879ffffdeb9}, + {0x9938f132, 0xffffd879ffffdeba}, + {0x9938f133, 0xffffd879ffffdebb}, + {0x9938f134, 0xffffd879ffffdebc}, + {0x9938f135, 0xffffd879ffffdebd}, + {0x9938f136, 0xffffd879ffffdebe}, + {0x9938f137, 0xffffd879ffffdebf}, + {0x9938f138, 0xffffd879ffffdec0}, + {0x9938f139, 0xffffd879ffffdec1}, + {0x9938f230, 0xffffd879ffffdec2}, + {0x9938f231, 0xffffd879ffffdec3}, + {0x9938f232, 0xffffd879ffffdec4}, + {0x9938f233, 0xffffd879ffffdec5}, + {0x9938f234, 0xffffd879ffffdec6}, + {0x9938f235, 0xffffd879ffffdec7}, + {0x9938f236, 0xffffd879ffffdec8}, + {0x9938f237, 0xffffd879ffffdec9}, + {0x9938f238, 0xffffd879ffffdeca}, + {0x9938f239, 0xffffd879ffffdecb}, + {0x9938f330, 0xffffd879ffffdecc}, + {0x9938f331, 0xffffd879ffffdecd}, + {0x9938f332, 0xffffd879ffffdece}, + {0x9938f333, 0xffffd879ffffdecf}, + {0x9938f334, 0xffffd879ffffded0}, + {0x9938f335, 0xffffd879ffffded1}, + {0x9938f336, 0xffffd879ffffded2}, + {0x9938f337, 0xffffd879ffffded3}, + {0x9938f338, 0xffffd879ffffded4}, + {0x9938f339, 0xffffd879ffffded5}, + {0x9938f430, 0xffffd879ffffded6}, + {0x9938f431, 0xffffd879ffffded7}, + {0x9938f432, 0xffffd879ffffded8}, + {0x9938f433, 0xffffd879ffffded9}, + {0x9938f434, 0xffffd879ffffdeda}, + {0x9938f435, 0xffffd879ffffdedb}, + {0x9938f436, 0xffffd879ffffdedc}, + {0x9938f437, 0xffffd879ffffdedd}, + {0x9938f438, 0xffffd879ffffdede}, + {0x9938f439, 0xffffd879ffffdedf}, + {0x9938f530, 0xffffd879ffffdee0}, + {0x9938f531, 0xffffd879ffffdee1}, + {0x9938f532, 0xffffd879ffffdee2}, + {0x9938f533, 0xffffd879ffffdee3}, + {0x9938f534, 0xffffd879ffffdee4}, + {0x9938f535, 0xffffd879ffffdee5}, + {0x9938f536, 0xffffd879ffffdee6}, + {0x9938f537, 0xffffd879ffffdee7}, + {0x9938f538, 0xffffd879ffffdee8}, + {0x9938f539, 0xffffd879ffffdee9}, + {0x9938f630, 0xffffd879ffffdeea}, + {0x9938f631, 0xffffd879ffffdeeb}, + {0x9938f632, 0xffffd879ffffdeec}, + {0x9938f633, 0xffffd879ffffdeed}, + {0x9938f634, 0xffffd879ffffdeee}, + {0x9938f635, 0xffffd879ffffdeef}, + {0x9938f636, 0xffffd879ffffdef0}, + {0x9938f637, 0xffffd879ffffdef1}, + {0x9938f638, 0xffffd879ffffdef2}, + {0x9938f639, 0xffffd879ffffdef3}, + {0x9938f730, 0xffffd879ffffdef4}, + {0x9938f731, 0xffffd879ffffdef5}, + {0x9938f732, 0xffffd879ffffdef6}, + {0x9938f733, 0xffffd879ffffdef7}, + {0x9938f734, 0xffffd879ffffdef8}, + {0x9938f735, 0xffffd879ffffdef9}, + {0x9938f736, 0xffffd879ffffdefa}, + {0x9938f737, 0xffffd879ffffdefb}, + {0x9938f738, 0xffffd879ffffdefc}, + {0x9938f739, 0xffffd879ffffdefd}, + {0x9938f830, 0xffffd879ffffdefe}, + {0x9938f831, 0xffffd879ffffdeff}, + {0x9938f832, 0xffffd879ffffdf00}, + {0x9938f833, 0xffffd879ffffdf01}, + {0x9938f834, 0xffffd879ffffdf02}, + {0x9938f835, 0xffffd879ffffdf03}, + {0x9938f836, 0xffffd879ffffdf04}, + {0x9938f837, 0xffffd879ffffdf05}, + {0x9938f838, 0xffffd879ffffdf06}, + {0x9938f839, 0xffffd879ffffdf07}, + {0x9938f930, 0xffffd879ffffdf08}, + {0x9938f931, 0xffffd879ffffdf09}, + {0x9938f932, 0xffffd879ffffdf0a}, + {0x9938f933, 0xffffd879ffffdf0b}, + {0x9938f934, 0xffffd879ffffdf0c}, + {0x9938f935, 0xffffd879ffffdf0d}, + {0x9938f936, 0xffffd879ffffdf0e}, + {0x9938f937, 0xffffd879ffffdf0f}, + {0x9938f938, 0xffffd879ffffdf10}, + {0x9938f939, 0xffffd879ffffdf11}, + {0x9938fa30, 0xffffd879ffffdf12}, + {0x9938fa31, 0xffffd879ffffdf13}, + {0x9938fa32, 0xffffd879ffffdf14}, + {0x9938fa33, 0xffffd879ffffdf15}, + {0x9938fa34, 0xffffd879ffffdf16}, + {0x9938fa35, 0xffffd879ffffdf17}, + {0x9938fa36, 0xffffd879ffffdf18}, + {0x9938fa37, 0xffffd879ffffdf19}, + {0x9938fa38, 0xffffd879ffffdf1a}, + {0x9938fa39, 0xffffd879ffffdf1b}, + {0x9938fb30, 0xffffd879ffffdf1c}, + {0x9938fb31, 0xffffd879ffffdf1d}, + {0x9938fb32, 0xffffd879ffffdf1e}, + {0x9938fb33, 0xffffd879ffffdf1f}, + {0x9938fb34, 0xffffd879ffffdf20}, + {0x9938fb35, 0xffffd879ffffdf21}, + {0x9938fb36, 0xffffd879ffffdf22}, + {0x9938fb37, 0xffffd879ffffdf23}, + {0x9938fb38, 0xffffd879ffffdf24}, + {0x9938fb39, 0xffffd879ffffdf25}, + {0x9938fc30, 0xffffd879ffffdf26}, + {0x9938fc31, 0xffffd879ffffdf27}, + {0x9938fc32, 0xffffd879ffffdf28}, + {0x9938fc33, 0xffffd879ffffdf29}, + {0x9938fc34, 0xffffd879ffffdf2a}, + {0x9938fc35, 0xffffd879ffffdf2b}, + {0x9938fc36, 0xffffd879ffffdf2c}, + {0x9938fc37, 0xffffd879ffffdf2d}, + {0x9938fc38, 0xffffd879ffffdf2e}, + {0x9938fc39, 0xffffd879ffffdf2f}, + {0x9938fd30, 0xffffd879ffffdf30}, + {0x9938fd31, 0xffffd879ffffdf31}, + {0x9938fd32, 0xffffd879ffffdf32}, + {0x9938fd33, 0xffffd879ffffdf33}, + {0x9938fd34, 0xffffd879ffffdf34}, + {0x9938fd35, 0xffffd879ffffdf35}, + {0x9938fd36, 0xffffd879ffffdf36}, + {0x9938fd37, 0xffffd879ffffdf37}, + {0x9938fd38, 0xffffd879ffffdf38}, + {0x9938fd39, 0xffffd879ffffdf39}, + {0x9938fe30, 0xffffd879ffffdf3a}, + {0x9938fe31, 0xffffd879ffffdf3b}, + {0x9938fe32, 0xffffd879ffffdf3c}, + {0x9938fe33, 0xffffd879ffffdf3d}, + {0x9938fe34, 0xffffd879ffffdf3e}, + {0x9938fe35, 0xffffd879ffffdf3f}, + {0x9938fe36, 0xffffd879ffffdf40}, + {0x9938fe37, 0xffffd879ffffdf41}, + {0x9938fe38, 0xffffd879ffffdf42}, + {0x9938fe39, 0xffffd879ffffdf43}, + {0x99398130, 0xffffd879ffffdf44}, + {0x99398131, 0xffffd879ffffdf45}, + {0x99398132, 0xffffd879ffffdf46}, + {0x99398133, 0xffffd879ffffdf47}, + {0x99398134, 0xffffd879ffffdf48}, + {0x99398135, 0xffffd879ffffdf49}, + {0x99398136, 0xffffd879ffffdf4a}, + {0x99398137, 0xffffd879ffffdf4b}, + {0x99398138, 0xffffd879ffffdf4c}, + {0x99398139, 0xffffd879ffffdf4d}, + {0x99398230, 0xffffd879ffffdf4e}, + {0x99398231, 0xffffd879ffffdf4f}, + {0x99398232, 0xffffd879ffffdf50}, + {0x99398233, 0xffffd879ffffdf51}, + {0x99398234, 0xffffd879ffffdf52}, + {0x99398235, 0xffffd879ffffdf53}, + {0x99398236, 0xffffd879ffffdf54}, + {0x99398237, 0xffffd879ffffdf55}, + {0x99398238, 0xffffd879ffffdf56}, + {0x99398239, 0xffffd879ffffdf57}, + {0x99398330, 0xffffd879ffffdf58}, + {0x99398331, 0xffffd879ffffdf59}, + {0x99398332, 0xffffd879ffffdf5a}, + {0x99398333, 0xffffd879ffffdf5b}, + {0x99398334, 0xffffd879ffffdf5c}, + {0x99398335, 0xffffd879ffffdf5d}, + {0x99398336, 0xffffd879ffffdf5e}, + {0x99398337, 0xffffd879ffffdf5f}, + {0x99398338, 0xffffd879ffffdf60}, + {0x99398339, 0xffffd879ffffdf61}, + {0x99398430, 0xffffd879ffffdf62}, + {0x99398431, 0xffffd879ffffdf63}, + {0x99398432, 0xffffd879ffffdf64}, + {0x99398433, 0xffffd879ffffdf65}, + {0x99398434, 0xffffd879ffffdf66}, + {0x99398435, 0xffffd879ffffdf67}, + {0x99398436, 0xffffd879ffffdf68}, + {0x99398437, 0xffffd879ffffdf69}, + {0x99398438, 0xffffd879ffffdf6a}, + {0x99398439, 0xffffd879ffffdf6b}, + {0x99398530, 0xffffd879ffffdf6c}, + {0x99398531, 0xffffd879ffffdf6d}, + {0x99398532, 0xffffd879ffffdf6e}, + {0x99398533, 0xffffd879ffffdf6f}, + {0x99398534, 0xffffd879ffffdf70}, + {0x99398535, 0xffffd879ffffdf71}, + {0x99398536, 0xffffd879ffffdf72}, + {0x99398537, 0xffffd879ffffdf73}, + {0x99398538, 0xffffd879ffffdf74}, + {0x99398539, 0xffffd879ffffdf75}, + {0x99398630, 0xffffd879ffffdf76}, + {0x99398631, 0xffffd879ffffdf77}, + {0x99398632, 0xffffd879ffffdf78}, + {0x99398633, 0xffffd879ffffdf79}, + {0x99398634, 0xffffd879ffffdf7a}, + {0x99398635, 0xffffd879ffffdf7b}, + {0x99398636, 0xffffd879ffffdf7c}, + {0x99398637, 0xffffd879ffffdf7d}, + {0x99398638, 0xffffd879ffffdf7e}, + {0x99398639, 0xffffd879ffffdf7f}, + {0x99398730, 0xffffd879ffffdf80}, + {0x99398731, 0xffffd879ffffdf81}, + {0x99398732, 0xffffd879ffffdf82}, + {0x99398733, 0xffffd879ffffdf83}, + {0x99398734, 0xffffd879ffffdf84}, + {0x99398735, 0xffffd879ffffdf85}, + {0x99398736, 0xffffd879ffffdf86}, + {0x99398737, 0xffffd879ffffdf87}, + {0x99398738, 0xffffd879ffffdf88}, + {0x99398739, 0xffffd879ffffdf89}, + {0x99398830, 0xffffd879ffffdf8a}, + {0x99398831, 0xffffd879ffffdf8b}, + {0x99398832, 0xffffd879ffffdf8c}, + {0x99398833, 0xffffd879ffffdf8d}, + {0x99398834, 0xffffd879ffffdf8e}, + {0x99398835, 0xffffd879ffffdf8f}, + {0x99398836, 0xffffd879ffffdf90}, + {0x99398837, 0xffffd879ffffdf91}, + {0x99398838, 0xffffd879ffffdf92}, + {0x99398839, 0xffffd879ffffdf93}, + {0x99398930, 0xffffd879ffffdf94}, + {0x99398931, 0xffffd879ffffdf95}, + {0x99398932, 0xffffd879ffffdf96}, + {0x99398933, 0xffffd879ffffdf97}, + {0x99398934, 0xffffd879ffffdf98}, + {0x99398935, 0xffffd879ffffdf99}, + {0x99398936, 0xffffd879ffffdf9a}, + {0x99398937, 0xffffd879ffffdf9b}, + {0x99398938, 0xffffd879ffffdf9c}, + {0x99398939, 0xffffd879ffffdf9d}, + {0x99398a30, 0xffffd879ffffdf9e}, + {0x99398a31, 0xffffd879ffffdf9f}, + {0x99398a32, 0xffffd879ffffdfa0}, + {0x99398a33, 0xffffd879ffffdfa1}, + {0x99398a34, 0xffffd879ffffdfa2}, + {0x99398a35, 0xffffd879ffffdfa3}, + {0x99398a36, 0xffffd879ffffdfa4}, + {0x99398a37, 0xffffd879ffffdfa5}, + {0x99398a38, 0xffffd879ffffdfa6}, + {0x99398a39, 0xffffd879ffffdfa7}, + {0x99398b30, 0xffffd879ffffdfa8}, + {0x99398b31, 0xffffd879ffffdfa9}, + {0x99398b32, 0xffffd879ffffdfaa}, + {0x99398b33, 0xffffd879ffffdfab}, + {0x99398b34, 0xffffd879ffffdfac}, + {0x99398b35, 0xffffd879ffffdfad}, + {0x99398b36, 0xffffd879ffffdfae}, + {0x99398b37, 0xffffd879ffffdfaf}, + {0x99398b38, 0xffffd879ffffdfb0}, + {0x99398b39, 0xffffd879ffffdfb1}, + {0x99398c30, 0xffffd879ffffdfb2}, + {0x99398c31, 0xffffd879ffffdfb3}, + {0x99398c32, 0xffffd879ffffdfb4}, + {0x99398c33, 0xffffd879ffffdfb5}, + {0x99398c34, 0xffffd879ffffdfb6}, + {0x99398c35, 0xffffd879ffffdfb7}, + {0x99398c36, 0xffffd879ffffdfb8}, + {0x99398c37, 0xffffd879ffffdfb9}, + {0x99398c38, 0xffffd879ffffdfba}, + {0x99398c39, 0xffffd879ffffdfbb}, + {0x99398d30, 0xffffd879ffffdfbc}, + {0x99398d31, 0xffffd879ffffdfbd}, + {0x99398d32, 0xffffd879ffffdfbe}, + {0x99398d33, 0xffffd879ffffdfbf}, + {0x99398d34, 0xffffd879ffffdfc0}, + {0x99398d35, 0xffffd879ffffdfc1}, + {0x99398d36, 0xffffd879ffffdfc2}, + {0x99398d37, 0xffffd879ffffdfc3}, + {0x99398d38, 0xffffd879ffffdfc4}, + {0x99398d39, 0xffffd879ffffdfc5}, + {0x99398e30, 0xffffd879ffffdfc6}, + {0x99398e31, 0xffffd879ffffdfc7}, + {0x99398e32, 0xffffd879ffffdfc8}, + {0x99398e33, 0xffffd879ffffdfc9}, + {0x99398e34, 0xffffd879ffffdfca}, + {0x99398e35, 0xffffd879ffffdfcb}, + {0x99398e36, 0xffffd879ffffdfcc}, + {0x99398e37, 0xffffd879ffffdfcd}, + {0x99398e38, 0xffffd879ffffdfce}, + {0x99398e39, 0xffffd879ffffdfcf}, + {0x99398f30, 0xffffd879ffffdfd0}, + {0x99398f31, 0xffffd879ffffdfd1}, + {0x99398f32, 0xffffd879ffffdfd2}, + {0x99398f33, 0xffffd879ffffdfd3}, + {0x99398f34, 0xffffd879ffffdfd4}, + {0x99398f35, 0xffffd879ffffdfd5}, + {0x99398f36, 0xffffd879ffffdfd6}, + {0x99398f37, 0xffffd879ffffdfd7}, + {0x99398f38, 0xffffd879ffffdfd8}, + {0x99398f39, 0xffffd879ffffdfd9}, + {0x99399030, 0xffffd879ffffdfda}, + {0x99399031, 0xffffd879ffffdfdb}, + {0x99399032, 0xffffd879ffffdfdc}, + {0x99399033, 0xffffd879ffffdfdd}, + {0x99399034, 0xffffd879ffffdfde}, + {0x99399035, 0xffffd879ffffdfdf}, + {0x99399036, 0xffffd879ffffdfe0}, + {0x99399037, 0xffffd879ffffdfe1}, + {0x99399038, 0xffffd879ffffdfe2}, + {0x99399039, 0xffffd879ffffdfe3}, + {0x99399130, 0xffffd879ffffdfe4}, + {0x99399131, 0xffffd879ffffdfe5}, + {0x99399132, 0xffffd879ffffdfe6}, + {0x99399133, 0xffffd879ffffdfe7}, + {0x99399134, 0xffffd879ffffdfe8}, + {0x99399135, 0xffffd879ffffdfe9}, + {0x99399136, 0xffffd879ffffdfea}, + {0x99399137, 0xffffd879ffffdfeb}, + {0x99399138, 0xffffd879ffffdfec}, + {0x99399139, 0xffffd879ffffdfed}, + {0x99399230, 0xffffd879ffffdfee}, + {0x99399231, 0xffffd879ffffdfef}, + {0x99399232, 0xffffd879ffffdff0}, + {0x99399233, 0xffffd879ffffdff1}, + {0x99399234, 0xffffd879ffffdff2}, + {0x99399235, 0xffffd879ffffdff3}, + {0x99399236, 0xffffd879ffffdff4}, + {0x99399237, 0xffffd879ffffdff5}, + {0x99399238, 0xffffd879ffffdff6}, + {0x99399239, 0xffffd879ffffdff7}, + {0x99399330, 0xffffd879ffffdff8}, + {0x99399331, 0xffffd879ffffdff9}, + {0x99399332, 0xffffd879ffffdffa}, + {0x99399333, 0xffffd879ffffdffb}, + {0x99399334, 0xffffd879ffffdffc}, + {0x99399335, 0xffffd879ffffdffd}, + {0x99399336, 0xffffd879ffffdffe}, + {0x99399337, 0xffffd879ffffdfff}, + {0x99399338, 0xffffd87affffdc00}, + {0x99399339, 0xffffd87affffdc01}, + {0x99399430, 0xffffd87affffdc02}, + {0x99399431, 0xffffd87affffdc03}, + {0x99399432, 0xffffd87affffdc04}, + {0x99399433, 0xffffd87affffdc05}, + {0x99399434, 0xffffd87affffdc06}, + {0x99399435, 0xffffd87affffdc07}, + {0x99399436, 0xffffd87affffdc08}, + {0x99399437, 0xffffd87affffdc09}, + {0x99399438, 0xffffd87affffdc0a}, + {0x99399439, 0xffffd87affffdc0b}, + {0x99399530, 0xffffd87affffdc0c}, + {0x99399531, 0xffffd87affffdc0d}, + {0x99399532, 0xffffd87affffdc0e}, + {0x99399533, 0xffffd87affffdc0f}, + {0x99399534, 0xffffd87affffdc10}, + {0x99399535, 0xffffd87affffdc11}, + {0x99399536, 0xffffd87affffdc12}, + {0x99399537, 0xffffd87affffdc13}, + {0x99399538, 0xffffd87affffdc14}, + {0x99399539, 0xffffd87affffdc15}, + {0x99399630, 0xffffd87affffdc16}, + {0x99399631, 0xffffd87affffdc17}, + {0x99399632, 0xffffd87affffdc18}, + {0x99399633, 0xffffd87affffdc19}, + {0x99399634, 0xffffd87affffdc1a}, + {0x99399635, 0xffffd87affffdc1b}, + {0x99399636, 0xffffd87affffdc1c}, + {0x99399637, 0xffffd87affffdc1d}, + {0x99399638, 0xffffd87affffdc1e}, + {0x99399639, 0xffffd87affffdc1f}, + {0x99399730, 0xffffd87affffdc20}, + {0x99399731, 0xffffd87affffdc21}, + {0x99399732, 0xffffd87affffdc22}, + {0x99399733, 0xffffd87affffdc23}, + {0x99399734, 0xffffd87affffdc24}, + {0x99399735, 0xffffd87affffdc25}, + {0x99399736, 0xffffd87affffdc26}, + {0x99399737, 0xffffd87affffdc27}, + {0x99399738, 0xffffd87affffdc28}, + {0x99399739, 0xffffd87affffdc29}, + {0x99399830, 0xffffd87affffdc2a}, + {0x99399831, 0xffffd87affffdc2b}, + {0x99399832, 0xffffd87affffdc2c}, + {0x99399833, 0xffffd87affffdc2d}, + {0x99399834, 0xffffd87affffdc2e}, + {0x99399835, 0xffffd87affffdc2f}, + {0x99399836, 0xffffd87affffdc30}, + {0x99399837, 0xffffd87affffdc31}, + {0x99399838, 0xffffd87affffdc32}, + {0x99399839, 0xffffd87affffdc33}, + {0x99399930, 0xffffd87affffdc34}, + {0x99399931, 0xffffd87affffdc35}, + {0x99399932, 0xffffd87affffdc36}, + {0x99399933, 0xffffd87affffdc37}, + {0x99399934, 0xffffd87affffdc38}, + {0x99399935, 0xffffd87affffdc39}, + {0x99399936, 0xffffd87affffdc3a}, + {0x99399937, 0xffffd87affffdc3b}, + {0x99399938, 0xffffd87affffdc3c}, + {0x99399939, 0xffffd87affffdc3d}, + {0x99399a30, 0xffffd87affffdc3e}, + {0x99399a31, 0xffffd87affffdc3f}, + {0x99399a32, 0xffffd87affffdc40}, + {0x99399a33, 0xffffd87affffdc41}, + {0x99399a34, 0xffffd87affffdc42}, + {0x99399a35, 0xffffd87affffdc43}, + {0x99399a36, 0xffffd87affffdc44}, + {0x99399a37, 0xffffd87affffdc45}, + {0x99399a38, 0xffffd87affffdc46}, + {0x99399a39, 0xffffd87affffdc47}, + {0x99399b30, 0xffffd87affffdc48}, + {0x99399b31, 0xffffd87affffdc49}, + {0x99399b32, 0xffffd87affffdc4a}, + {0x99399b33, 0xffffd87affffdc4b}, + {0x99399b34, 0xffffd87affffdc4c}, + {0x99399b35, 0xffffd87affffdc4d}, + {0x99399b36, 0xffffd87affffdc4e}, + {0x99399b37, 0xffffd87affffdc4f}, + {0x99399b38, 0xffffd87affffdc50}, + {0x99399b39, 0xffffd87affffdc51}, + {0x99399c30, 0xffffd87affffdc52}, + {0x99399c31, 0xffffd87affffdc53}, + {0x99399c32, 0xffffd87affffdc54}, + {0x99399c33, 0xffffd87affffdc55}, + {0x99399c34, 0xffffd87affffdc56}, + {0x99399c35, 0xffffd87affffdc57}, + {0x99399c36, 0xffffd87affffdc58}, + {0x99399c37, 0xffffd87affffdc59}, + {0x99399c38, 0xffffd87affffdc5a}, + {0x99399c39, 0xffffd87affffdc5b}, + {0x99399d30, 0xffffd87affffdc5c}, + {0x99399d31, 0xffffd87affffdc5d}, + {0x99399d32, 0xffffd87affffdc5e}, + {0x99399d33, 0xffffd87affffdc5f}, + {0x99399d34, 0xffffd87affffdc60}, + {0x99399d35, 0xffffd87affffdc61}, + {0x99399d36, 0xffffd87affffdc62}, + {0x99399d37, 0xffffd87affffdc63}, + {0x99399d38, 0xffffd87affffdc64}, + {0x99399d39, 0xffffd87affffdc65}, + {0x99399e30, 0xffffd87affffdc66}, + {0x99399e31, 0xffffd87affffdc67}, + {0x99399e32, 0xffffd87affffdc68}, + {0x99399e33, 0xffffd87affffdc69}, + {0x99399e34, 0xffffd87affffdc6a}, + {0x99399e35, 0xffffd87affffdc6b}, + {0x99399e36, 0xffffd87affffdc6c}, + {0x99399e37, 0xffffd87affffdc6d}, + {0x99399e38, 0xffffd87affffdc6e}, + {0x99399e39, 0xffffd87affffdc6f}, + {0x99399f30, 0xffffd87affffdc70}, + {0x99399f31, 0xffffd87affffdc71}, + {0x99399f32, 0xffffd87affffdc72}, + {0x99399f33, 0xffffd87affffdc73}, + {0x99399f34, 0xffffd87affffdc74}, + {0x99399f35, 0xffffd87affffdc75}, + {0x99399f36, 0xffffd87affffdc76}, + {0x99399f37, 0xffffd87affffdc77}, + {0x99399f38, 0xffffd87affffdc78}, + {0x99399f39, 0xffffd87affffdc79}, + {0x9939a030, 0xffffd87affffdc7a}, + {0x9939a031, 0xffffd87affffdc7b}, + {0x9939a032, 0xffffd87affffdc7c}, + {0x9939a033, 0xffffd87affffdc7d}, + {0x9939a034, 0xffffd87affffdc7e}, + {0x9939a035, 0xffffd87affffdc7f}, + {0x9939a036, 0xffffd87affffdc80}, + {0x9939a037, 0xffffd87affffdc81}, + {0x9939a038, 0xffffd87affffdc82}, + {0x9939a039, 0xffffd87affffdc83}, + {0x9939a130, 0xffffd87affffdc84}, + {0x9939a131, 0xffffd87affffdc85}, + {0x9939a132, 0xffffd87affffdc86}, + {0x9939a133, 0xffffd87affffdc87}, + {0x9939a134, 0xffffd87affffdc88}, + {0x9939a135, 0xffffd87affffdc89}, + {0x9939a136, 0xffffd87affffdc8a}, + {0x9939a137, 0xffffd87affffdc8b}, + {0x9939a138, 0xffffd87affffdc8c}, + {0x9939a139, 0xffffd87affffdc8d}, + {0x9939a230, 0xffffd87affffdc8e}, + {0x9939a231, 0xffffd87affffdc8f}, + {0x9939a232, 0xffffd87affffdc90}, + {0x9939a233, 0xffffd87affffdc91}, + {0x9939a234, 0xffffd87affffdc92}, + {0x9939a235, 0xffffd87affffdc93}, + {0x9939a236, 0xffffd87affffdc94}, + {0x9939a237, 0xffffd87affffdc95}, + {0x9939a238, 0xffffd87affffdc96}, + {0x9939a239, 0xffffd87affffdc97}, + {0x9939a330, 0xffffd87affffdc98}, + {0x9939a331, 0xffffd87affffdc99}, + {0x9939a332, 0xffffd87affffdc9a}, + {0x9939a333, 0xffffd87affffdc9b}, + {0x9939a334, 0xffffd87affffdc9c}, + {0x9939a335, 0xffffd87affffdc9d}, + {0x9939a336, 0xffffd87affffdc9e}, + {0x9939a337, 0xffffd87affffdc9f}, + {0x9939a338, 0xffffd87affffdca0}, + {0x9939a339, 0xffffd87affffdca1}, + {0x9939a430, 0xffffd87affffdca2}, + {0x9939a431, 0xffffd87affffdca3}, + {0x9939a432, 0xffffd87affffdca4}, + {0x9939a433, 0xffffd87affffdca5}, + {0x9939a434, 0xffffd87affffdca6}, + {0x9939a435, 0xffffd87affffdca7}, + {0x9939a436, 0xffffd87affffdca8}, + {0x9939a437, 0xffffd87affffdca9}, + {0x9939a438, 0xffffd87affffdcaa}, + {0x9939a439, 0xffffd87affffdcab}, + {0x9939a530, 0xffffd87affffdcac}, + {0x9939a531, 0xffffd87affffdcad}, + {0x9939a532, 0xffffd87affffdcae}, + {0x9939a533, 0xffffd87affffdcaf}, + {0x9939a534, 0xffffd87affffdcb0}, + {0x9939a535, 0xffffd87affffdcb1}, + {0x9939a536, 0xffffd87affffdcb2}, + {0x9939a537, 0xffffd87affffdcb3}, + {0x9939a538, 0xffffd87affffdcb4}, + {0x9939a539, 0xffffd87affffdcb5}, + {0x9939a630, 0xffffd87affffdcb6}, + {0x9939a631, 0xffffd87affffdcb7}, + {0x9939a632, 0xffffd87affffdcb8}, + {0x9939a633, 0xffffd87affffdcb9}, + {0x9939a634, 0xffffd87affffdcba}, + {0x9939a635, 0xffffd87affffdcbb}, + {0x9939a636, 0xffffd87affffdcbc}, + {0x9939a637, 0xffffd87affffdcbd}, + {0x9939a638, 0xffffd87affffdcbe}, + {0x9939a639, 0xffffd87affffdcbf}, + {0x9939a730, 0xffffd87affffdcc0}, + {0x9939a731, 0xffffd87affffdcc1}, + {0x9939a732, 0xffffd87affffdcc2}, + {0x9939a733, 0xffffd87affffdcc3}, + {0x9939a734, 0xffffd87affffdcc4}, + {0x9939a735, 0xffffd87affffdcc5}, + {0x9939a736, 0xffffd87affffdcc6}, + {0x9939a737, 0xffffd87affffdcc7}, + {0x9939a738, 0xffffd87affffdcc8}, + {0x9939a739, 0xffffd87affffdcc9}, + {0x9939a830, 0xffffd87affffdcca}, + {0x9939a831, 0xffffd87affffdccb}, + {0x9939a832, 0xffffd87affffdccc}, + {0x9939a833, 0xffffd87affffdccd}, + {0x9939a834, 0xffffd87affffdcce}, + {0x9939a835, 0xffffd87affffdccf}, + {0x9939a836, 0xffffd87affffdcd0}, + {0x9939a837, 0xffffd87affffdcd1}, + {0x9939a838, 0xffffd87affffdcd2}, + {0x9939a839, 0xffffd87affffdcd3}, + {0x9939a930, 0xffffd87affffdcd4}, + {0x9939a931, 0xffffd87affffdcd5}, + {0x9939a932, 0xffffd87affffdcd6}, + {0x9939a933, 0xffffd87affffdcd7}, + {0x9939a934, 0xffffd87affffdcd8}, + {0x9939a935, 0xffffd87affffdcd9}, + {0x9939a936, 0xffffd87affffdcda}, + {0x9939a937, 0xffffd87affffdcdb}, + {0x9939a938, 0xffffd87affffdcdc}, + {0x9939a939, 0xffffd87affffdcdd}, + {0x9939aa30, 0xffffd87affffdcde}, + {0x9939aa31, 0xffffd87affffdcdf}, + {0x9939aa32, 0xffffd87affffdce0}, + {0x9939aa33, 0xffffd87affffdce1}, + {0x9939aa34, 0xffffd87affffdce2}, + {0x9939aa35, 0xffffd87affffdce3}, + {0x9939aa36, 0xffffd87affffdce4}, + {0x9939aa37, 0xffffd87affffdce5}, + {0x9939aa38, 0xffffd87affffdce6}, + {0x9939aa39, 0xffffd87affffdce7}, + {0x9939ab30, 0xffffd87affffdce8}, + {0x9939ab31, 0xffffd87affffdce9}, + {0x9939ab32, 0xffffd87affffdcea}, + {0x9939ab33, 0xffffd87affffdceb}, + {0x9939ab34, 0xffffd87affffdcec}, + {0x9939ab35, 0xffffd87affffdced}, + {0x9939ab36, 0xffffd87affffdcee}, + {0x9939ab37, 0xffffd87affffdcef}, + {0x9939ab38, 0xffffd87affffdcf0}, + {0x9939ab39, 0xffffd87affffdcf1}, + {0x9939ac30, 0xffffd87affffdcf2}, + {0x9939ac31, 0xffffd87affffdcf3}, + {0x9939ac32, 0xffffd87affffdcf4}, + {0x9939ac33, 0xffffd87affffdcf5}, + {0x9939ac34, 0xffffd87affffdcf6}, + {0x9939ac35, 0xffffd87affffdcf7}, + {0x9939ac36, 0xffffd87affffdcf8}, + {0x9939ac37, 0xffffd87affffdcf9}, + {0x9939ac38, 0xffffd87affffdcfa}, + {0x9939ac39, 0xffffd87affffdcfb}, + {0x9939ad30, 0xffffd87affffdcfc}, + {0x9939ad31, 0xffffd87affffdcfd}, + {0x9939ad32, 0xffffd87affffdcfe}, + {0x9939ad33, 0xffffd87affffdcff}, + {0x9939ad34, 0xffffd87affffdd00}, + {0x9939ad35, 0xffffd87affffdd01}, + {0x9939ad36, 0xffffd87affffdd02}, + {0x9939ad37, 0xffffd87affffdd03}, + {0x9939ad38, 0xffffd87affffdd04}, + {0x9939ad39, 0xffffd87affffdd05}, + {0x9939ae30, 0xffffd87affffdd06}, + {0x9939ae31, 0xffffd87affffdd07}, + {0x9939ae32, 0xffffd87affffdd08}, + {0x9939ae33, 0xffffd87affffdd09}, + {0x9939ae34, 0xffffd87affffdd0a}, + {0x9939ae35, 0xffffd87affffdd0b}, + {0x9939ae36, 0xffffd87affffdd0c}, + {0x9939ae37, 0xffffd87affffdd0d}, + {0x9939ae38, 0xffffd87affffdd0e}, + {0x9939ae39, 0xffffd87affffdd0f}, + {0x9939af30, 0xffffd87affffdd10}, + {0x9939af31, 0xffffd87affffdd11}, + {0x9939af32, 0xffffd87affffdd12}, + {0x9939af33, 0xffffd87affffdd13}, + {0x9939af34, 0xffffd87affffdd14}, + {0x9939af35, 0xffffd87affffdd15}, + {0x9939af36, 0xffffd87affffdd16}, + {0x9939af37, 0xffffd87affffdd17}, + {0x9939af38, 0xffffd87affffdd18}, + {0x9939af39, 0xffffd87affffdd19}, + {0x9939b030, 0xffffd87affffdd1a}, + {0x9939b031, 0xffffd87affffdd1b}, + {0x9939b032, 0xffffd87affffdd1c}, + {0x9939b033, 0xffffd87affffdd1d}, + {0x9939b034, 0xffffd87affffdd1e}, + {0x9939b035, 0xffffd87affffdd1f}, + {0x9939b036, 0xffffd87affffdd20}, + {0x9939b037, 0xffffd87affffdd21}, + {0x9939b038, 0xffffd87affffdd22}, + {0x9939b039, 0xffffd87affffdd23}, + {0x9939b130, 0xffffd87affffdd24}, + {0x9939b131, 0xffffd87affffdd25}, + {0x9939b132, 0xffffd87affffdd26}, + {0x9939b133, 0xffffd87affffdd27}, + {0x9939b134, 0xffffd87affffdd28}, + {0x9939b135, 0xffffd87affffdd29}, + {0x9939b136, 0xffffd87affffdd2a}, + {0x9939b137, 0xffffd87affffdd2b}, + {0x9939b138, 0xffffd87affffdd2c}, + {0x9939b139, 0xffffd87affffdd2d}, + {0x9939b230, 0xffffd87affffdd2e}, + {0x9939b231, 0xffffd87affffdd2f}, + {0x9939b232, 0xffffd87affffdd30}, + {0x9939b233, 0xffffd87affffdd31}, + {0x9939b234, 0xffffd87affffdd32}, + {0x9939b235, 0xffffd87affffdd33}, + {0x9939b236, 0xffffd87affffdd34}, + {0x9939b237, 0xffffd87affffdd35}, + {0x9939b238, 0xffffd87affffdd36}, + {0x9939b239, 0xffffd87affffdd37}, + {0x9939b330, 0xffffd87affffdd38}, + {0x9939b331, 0xffffd87affffdd39}, + {0x9939b332, 0xffffd87affffdd3a}, + {0x9939b333, 0xffffd87affffdd3b}, + {0x9939b334, 0xffffd87affffdd3c}, + {0x9939b335, 0xffffd87affffdd3d}, + {0x9939b336, 0xffffd87affffdd3e}, + {0x9939b337, 0xffffd87affffdd3f}, + {0x9939b338, 0xffffd87affffdd40}, + {0x9939b339, 0xffffd87affffdd41}, + {0x9939b430, 0xffffd87affffdd42}, + {0x9939b431, 0xffffd87affffdd43}, + {0x9939b432, 0xffffd87affffdd44}, + {0x9939b433, 0xffffd87affffdd45}, + {0x9939b434, 0xffffd87affffdd46}, + {0x9939b435, 0xffffd87affffdd47}, + {0x9939b436, 0xffffd87affffdd48}, + {0x9939b437, 0xffffd87affffdd49}, + {0x9939b438, 0xffffd87affffdd4a}, + {0x9939b439, 0xffffd87affffdd4b}, + {0x9939b530, 0xffffd87affffdd4c}, + {0x9939b531, 0xffffd87affffdd4d}, + {0x9939b532, 0xffffd87affffdd4e}, + {0x9939b533, 0xffffd87affffdd4f}, + {0x9939b534, 0xffffd87affffdd50}, + {0x9939b535, 0xffffd87affffdd51}, + {0x9939b536, 0xffffd87affffdd52}, + {0x9939b537, 0xffffd87affffdd53}, + {0x9939b538, 0xffffd87affffdd54}, + {0x9939b539, 0xffffd87affffdd55}, + {0x9939b630, 0xffffd87affffdd56}, + {0x9939b631, 0xffffd87affffdd57}, + {0x9939b632, 0xffffd87affffdd58}, + {0x9939b633, 0xffffd87affffdd59}, + {0x9939b634, 0xffffd87affffdd5a}, + {0x9939b635, 0xffffd87affffdd5b}, + {0x9939b636, 0xffffd87affffdd5c}, + {0x9939b637, 0xffffd87affffdd5d}, + {0x9939b638, 0xffffd87affffdd5e}, + {0x9939b639, 0xffffd87affffdd5f}, + {0x9939b730, 0xffffd87affffdd60}, + {0x9939b731, 0xffffd87affffdd61}, + {0x9939b732, 0xffffd87affffdd62}, + {0x9939b733, 0xffffd87affffdd63}, + {0x9939b734, 0xffffd87affffdd64}, + {0x9939b735, 0xffffd87affffdd65}, + {0x9939b736, 0xffffd87affffdd66}, + {0x9939b737, 0xffffd87affffdd67}, + {0x9939b738, 0xffffd87affffdd68}, + {0x9939b739, 0xffffd87affffdd69}, + {0x9939b830, 0xffffd87affffdd6a}, + {0x9939b831, 0xffffd87affffdd6b}, + {0x9939b832, 0xffffd87affffdd6c}, + {0x9939b833, 0xffffd87affffdd6d}, + {0x9939b834, 0xffffd87affffdd6e}, + {0x9939b835, 0xffffd87affffdd6f}, + {0x9939b836, 0xffffd87affffdd70}, + {0x9939b837, 0xffffd87affffdd71}, + {0x9939b838, 0xffffd87affffdd72}, + {0x9939b839, 0xffffd87affffdd73}, + {0x9939b930, 0xffffd87affffdd74}, + {0x9939b931, 0xffffd87affffdd75}, + {0x9939b932, 0xffffd87affffdd76}, + {0x9939b933, 0xffffd87affffdd77}, + {0x9939b934, 0xffffd87affffdd78}, + {0x9939b935, 0xffffd87affffdd79}, + {0x9939b936, 0xffffd87affffdd7a}, + {0x9939b937, 0xffffd87affffdd7b}, + {0x9939b938, 0xffffd87affffdd7c}, + {0x9939b939, 0xffffd87affffdd7d}, + {0x9939ba30, 0xffffd87affffdd7e}, + {0x9939ba31, 0xffffd87affffdd7f}, + {0x9939ba32, 0xffffd87affffdd80}, + {0x9939ba33, 0xffffd87affffdd81}, + {0x9939ba34, 0xffffd87affffdd82}, + {0x9939ba35, 0xffffd87affffdd83}, + {0x9939ba36, 0xffffd87affffdd84}, + {0x9939ba37, 0xffffd87affffdd85}, + {0x9939ba38, 0xffffd87affffdd86}, + {0x9939ba39, 0xffffd87affffdd87}, + {0x9939bb30, 0xffffd87affffdd88}, + {0x9939bb31, 0xffffd87affffdd89}, + {0x9939bb32, 0xffffd87affffdd8a}, + {0x9939bb33, 0xffffd87affffdd8b}, + {0x9939bb34, 0xffffd87affffdd8c}, + {0x9939bb35, 0xffffd87affffdd8d}, + {0x9939bb36, 0xffffd87affffdd8e}, + {0x9939bb37, 0xffffd87affffdd8f}, + {0x9939bb38, 0xffffd87affffdd90}, + {0x9939bb39, 0xffffd87affffdd91}, + {0x9939bc30, 0xffffd87affffdd92}, + {0x9939bc31, 0xffffd87affffdd93}, + {0x9939bc32, 0xffffd87affffdd94}, + {0x9939bc33, 0xffffd87affffdd95}, + {0x9939bc34, 0xffffd87affffdd96}, + {0x9939bc35, 0xffffd87affffdd97}, + {0x9939bc36, 0xffffd87affffdd98}, + {0x9939bc37, 0xffffd87affffdd99}, + {0x9939bc38, 0xffffd87affffdd9a}, + {0x9939bc39, 0xffffd87affffdd9b}, + {0x9939bd30, 0xffffd87affffdd9c}, + {0x9939bd31, 0xffffd87affffdd9d}, + {0x9939bd32, 0xffffd87affffdd9e}, + {0x9939bd33, 0xffffd87affffdd9f}, + {0x9939bd34, 0xffffd87affffdda0}, + {0x9939bd35, 0xffffd87affffdda1}, + {0x9939bd36, 0xffffd87affffdda2}, + {0x9939bd37, 0xffffd87affffdda3}, + {0x9939bd38, 0xffffd87affffdda4}, + {0x9939bd39, 0xffffd87affffdda5}, + {0x9939be30, 0xffffd87affffdda6}, + {0x9939be31, 0xffffd87affffdda7}, + {0x9939be32, 0xffffd87affffdda8}, + {0x9939be33, 0xffffd87affffdda9}, + {0x9939be34, 0xffffd87affffddaa}, + {0x9939be35, 0xffffd87affffddab}, + {0x9939be36, 0xffffd87affffddac}, + {0x9939be37, 0xffffd87affffddad}, + {0x9939be38, 0xffffd87affffddae}, + {0x9939be39, 0xffffd87affffddaf}, + {0x9939bf30, 0xffffd87affffddb0}, + {0x9939bf31, 0xffffd87affffddb1}, + {0x9939bf32, 0xffffd87affffddb2}, + {0x9939bf33, 0xffffd87affffddb3}, + {0x9939bf34, 0xffffd87affffddb4}, + {0x9939bf35, 0xffffd87affffddb5}, + {0x9939bf36, 0xffffd87affffddb6}, + {0x9939bf37, 0xffffd87affffddb7}, + {0x9939bf38, 0xffffd87affffddb8}, + {0x9939bf39, 0xffffd87affffddb9}, + {0x9939c030, 0xffffd87affffddba}, + {0x9939c031, 0xffffd87affffddbb}, + {0x9939c032, 0xffffd87affffddbc}, + {0x9939c033, 0xffffd87affffddbd}, + {0x9939c034, 0xffffd87affffddbe}, + {0x9939c035, 0xffffd87affffddbf}, + {0x9939c036, 0xffffd87affffddc0}, + {0x9939c037, 0xffffd87affffddc1}, + {0x9939c038, 0xffffd87affffddc2}, + {0x9939c039, 0xffffd87affffddc3}, + {0x9939c130, 0xffffd87affffddc4}, + {0x9939c131, 0xffffd87affffddc5}, + {0x9939c132, 0xffffd87affffddc6}, + {0x9939c133, 0xffffd87affffddc7}, + {0x9939c134, 0xffffd87affffddc8}, + {0x9939c135, 0xffffd87affffddc9}, + {0x9939c136, 0xffffd87affffddca}, + {0x9939c137, 0xffffd87affffddcb}, + {0x9939c138, 0xffffd87affffddcc}, + {0x9939c139, 0xffffd87affffddcd}, + {0x9939c230, 0xffffd87affffddce}, + {0x9939c231, 0xffffd87affffddcf}, + {0x9939c232, 0xffffd87affffddd0}, + {0x9939c233, 0xffffd87affffddd1}, + {0x9939c234, 0xffffd87affffddd2}, + {0x9939c235, 0xffffd87affffddd3}, + {0x9939c236, 0xffffd87affffddd4}, + {0x9939c237, 0xffffd87affffddd5}, + {0x9939c238, 0xffffd87affffddd6}, + {0x9939c239, 0xffffd87affffddd7}, + {0x9939c330, 0xffffd87affffddd8}, + {0x9939c331, 0xffffd87affffddd9}, + {0x9939c332, 0xffffd87affffddda}, + {0x9939c333, 0xffffd87affffdddb}, + {0x9939c334, 0xffffd87affffdddc}, + {0x9939c335, 0xffffd87affffdddd}, + {0x9939c336, 0xffffd87affffddde}, + {0x9939c337, 0xffffd87affffdddf}, + {0x9939c338, 0xffffd87affffdde0}, + {0x9939c339, 0xffffd87affffdde1}, + {0x9939c430, 0xffffd87affffdde2}, + {0x9939c431, 0xffffd87affffdde3}, + {0x9939c432, 0xffffd87affffdde4}, + {0x9939c433, 0xffffd87affffdde5}, + {0x9939c434, 0xffffd87affffdde6}, + {0x9939c435, 0xffffd87affffdde7}, + {0x9939c436, 0xffffd87affffdde8}, + {0x9939c437, 0xffffd87affffdde9}, + {0x9939c438, 0xffffd87affffddea}, + {0x9939c439, 0xffffd87affffddeb}, + {0x9939c530, 0xffffd87affffddec}, + {0x9939c531, 0xffffd87affffdded}, + {0x9939c532, 0xffffd87affffddee}, + {0x9939c533, 0xffffd87affffddef}, + {0x9939c534, 0xffffd87affffddf0}, + {0x9939c535, 0xffffd87affffddf1}, + {0x9939c536, 0xffffd87affffddf2}, + {0x9939c537, 0xffffd87affffddf3}, + {0x9939c538, 0xffffd87affffddf4}, + {0x9939c539, 0xffffd87affffddf5}, + {0x9939c630, 0xffffd87affffddf6}, + {0x9939c631, 0xffffd87affffddf7}, + {0x9939c632, 0xffffd87affffddf8}, + {0x9939c633, 0xffffd87affffddf9}, + {0x9939c634, 0xffffd87affffddfa}, + {0x9939c635, 0xffffd87affffddfb}, + {0x9939c636, 0xffffd87affffddfc}, + {0x9939c637, 0xffffd87affffddfd}, + {0x9939c638, 0xffffd87affffddfe}, + {0x9939c639, 0xffffd87affffddff}, + {0x9939c730, 0xffffd87affffde00}, + {0x9939c731, 0xffffd87affffde01}, + {0x9939c732, 0xffffd87affffde02}, + {0x9939c733, 0xffffd87affffde03}, + {0x9939c734, 0xffffd87affffde04}, + {0x9939c735, 0xffffd87affffde05}, + {0x9939c736, 0xffffd87affffde06}, + {0x9939c737, 0xffffd87affffde07}, + {0x9939c738, 0xffffd87affffde08}, + {0x9939c739, 0xffffd87affffde09}, + {0x9939c830, 0xffffd87affffde0a}, + {0x9939c831, 0xffffd87affffde0b}, + {0x9939c832, 0xffffd87affffde0c}, + {0x9939c833, 0xffffd87affffde0d}, + {0x9939c834, 0xffffd87affffde0e}, + {0x9939c835, 0xffffd87affffde0f}, + {0x9939c836, 0xffffd87affffde10}, + {0x9939c837, 0xffffd87affffde11}, + {0x9939c838, 0xffffd87affffde12}, + {0x9939c839, 0xffffd87affffde13}, + {0x9939c930, 0xffffd87affffde14}, + {0x9939c931, 0xffffd87affffde15}, + {0x9939c932, 0xffffd87affffde16}, + {0x9939c933, 0xffffd87affffde17}, + {0x9939c934, 0xffffd87affffde18}, + {0x9939c935, 0xffffd87affffde19}, + {0x9939c936, 0xffffd87affffde1a}, + {0x9939c937, 0xffffd87affffde1b}, + {0x9939c938, 0xffffd87affffde1c}, + {0x9939c939, 0xffffd87affffde1d}, + {0x9939ca30, 0xffffd87affffde1e}, + {0x9939ca31, 0xffffd87affffde1f}, + {0x9939ca32, 0xffffd87affffde20}, + {0x9939ca33, 0xffffd87affffde21}, + {0x9939ca34, 0xffffd87affffde22}, + {0x9939ca35, 0xffffd87affffde23}, + {0x9939ca36, 0xffffd87affffde24}, + {0x9939ca37, 0xffffd87affffde25}, + {0x9939ca38, 0xffffd87affffde26}, + {0x9939ca39, 0xffffd87affffde27}, + {0x9939cb30, 0xffffd87affffde28}, + {0x9939cb31, 0xffffd87affffde29}, + {0x9939cb32, 0xffffd87affffde2a}, + {0x9939cb33, 0xffffd87affffde2b}, + {0x9939cb34, 0xffffd87affffde2c}, + {0x9939cb35, 0xffffd87affffde2d}, + {0x9939cb36, 0xffffd87affffde2e}, + {0x9939cb37, 0xffffd87affffde2f}, + {0x9939cb38, 0xffffd87affffde30}, + {0x9939cb39, 0xffffd87affffde31}, + {0x9939cc30, 0xffffd87affffde32}, + {0x9939cc31, 0xffffd87affffde33}, + {0x9939cc32, 0xffffd87affffde34}, + {0x9939cc33, 0xffffd87affffde35}, + {0x9939cc34, 0xffffd87affffde36}, + {0x9939cc35, 0xffffd87affffde37}, + {0x9939cc36, 0xffffd87affffde38}, + {0x9939cc37, 0xffffd87affffde39}, + {0x9939cc38, 0xffffd87affffde3a}, + {0x9939cc39, 0xffffd87affffde3b}, + {0x9939cd30, 0xffffd87affffde3c}, + {0x9939cd31, 0xffffd87affffde3d}, + {0x9939cd32, 0xffffd87affffde3e}, + {0x9939cd33, 0xffffd87affffde3f}, + {0x9939cd34, 0xffffd87affffde40}, + {0x9939cd35, 0xffffd87affffde41}, + {0x9939cd36, 0xffffd87affffde42}, + {0x9939cd37, 0xffffd87affffde43}, + {0x9939cd38, 0xffffd87affffde44}, + {0x9939cd39, 0xffffd87affffde45}, + {0x9939ce30, 0xffffd87affffde46}, + {0x9939ce31, 0xffffd87affffde47}, + {0x9939ce32, 0xffffd87affffde48}, + {0x9939ce33, 0xffffd87affffde49}, + {0x9939ce34, 0xffffd87affffde4a}, + {0x9939ce35, 0xffffd87affffde4b}, + {0x9939ce36, 0xffffd87affffde4c}, + {0x9939ce37, 0xffffd87affffde4d}, + {0x9939ce38, 0xffffd87affffde4e}, + {0x9939ce39, 0xffffd87affffde4f}, + {0x9939cf30, 0xffffd87affffde50}, + {0x9939cf31, 0xffffd87affffde51}, + {0x9939cf32, 0xffffd87affffde52}, + {0x9939cf33, 0xffffd87affffde53}, + {0x9939cf34, 0xffffd87affffde54}, + {0x9939cf35, 0xffffd87affffde55}, + {0x9939cf36, 0xffffd87affffde56}, + {0x9939cf37, 0xffffd87affffde57}, + {0x9939cf38, 0xffffd87affffde58}, + {0x9939cf39, 0xffffd87affffde59}, + {0x9939d030, 0xffffd87affffde5a}, + {0x9939d031, 0xffffd87affffde5b}, + {0x9939d032, 0xffffd87affffde5c}, + {0x9939d033, 0xffffd87affffde5d}, + {0x9939d034, 0xffffd87affffde5e}, + {0x9939d035, 0xffffd87affffde5f}, + {0x9939d036, 0xffffd87affffde60}, + {0x9939d037, 0xffffd87affffde61}, + {0x9939d038, 0xffffd87affffde62}, + {0x9939d039, 0xffffd87affffde63}, + {0x9939d130, 0xffffd87affffde64}, + {0x9939d131, 0xffffd87affffde65}, + {0x9939d132, 0xffffd87affffde66}, + {0x9939d133, 0xffffd87affffde67}, + {0x9939d134, 0xffffd87affffde68}, + {0x9939d135, 0xffffd87affffde69}, + {0x9939d136, 0xffffd87affffde6a}, + {0x9939d137, 0xffffd87affffde6b}, + {0x9939d138, 0xffffd87affffde6c}, + {0x9939d139, 0xffffd87affffde6d}, + {0x9939d230, 0xffffd87affffde6e}, + {0x9939d231, 0xffffd87affffde6f}, + {0x9939d232, 0xffffd87affffde70}, + {0x9939d233, 0xffffd87affffde71}, + {0x9939d234, 0xffffd87affffde72}, + {0x9939d235, 0xffffd87affffde73}, + {0x9939d236, 0xffffd87affffde74}, + {0x9939d237, 0xffffd87affffde75}, + {0x9939d238, 0xffffd87affffde76}, + {0x9939d239, 0xffffd87affffde77}, + {0x9939d330, 0xffffd87affffde78}, + {0x9939d331, 0xffffd87affffde79}, + {0x9939d332, 0xffffd87affffde7a}, + {0x9939d333, 0xffffd87affffde7b}, + {0x9939d334, 0xffffd87affffde7c}, + {0x9939d335, 0xffffd87affffde7d}, + {0x9939d336, 0xffffd87affffde7e}, + {0x9939d337, 0xffffd87affffde7f}, + {0x9939d338, 0xffffd87affffde80}, + {0x9939d339, 0xffffd87affffde81}, + {0x9939d430, 0xffffd87affffde82}, + {0x9939d431, 0xffffd87affffde83}, + {0x9939d432, 0xffffd87affffde84}, + {0x9939d433, 0xffffd87affffde85}, + {0x9939d434, 0xffffd87affffde86}, + {0x9939d435, 0xffffd87affffde87}, + {0x9939d436, 0xffffd87affffde88}, + {0x9939d437, 0xffffd87affffde89}, + {0x9939d438, 0xffffd87affffde8a}, + {0x9939d439, 0xffffd87affffde8b}, + {0x9939d530, 0xffffd87affffde8c}, + {0x9939d531, 0xffffd87affffde8d}, + {0x9939d532, 0xffffd87affffde8e}, + {0x9939d533, 0xffffd87affffde8f}, + {0x9939d534, 0xffffd87affffde90}, + {0x9939d535, 0xffffd87affffde91}, + {0x9939d536, 0xffffd87affffde92}, + {0x9939d537, 0xffffd87affffde93}, + {0x9939d538, 0xffffd87affffde94}, + {0x9939d539, 0xffffd87affffde95}, + {0x9939d630, 0xffffd87affffde96}, + {0x9939d631, 0xffffd87affffde97}, + {0x9939d632, 0xffffd87affffde98}, + {0x9939d633, 0xffffd87affffde99}, + {0x9939d634, 0xffffd87affffde9a}, + {0x9939d635, 0xffffd87affffde9b}, + {0x9939d636, 0xffffd87affffde9c}, + {0x9939d637, 0xffffd87affffde9d}, + {0x9939d638, 0xffffd87affffde9e}, + {0x9939d639, 0xffffd87affffde9f}, + {0x9939d730, 0xffffd87affffdea0}, + {0x9939d731, 0xffffd87affffdea1}, + {0x9939d732, 0xffffd87affffdea2}, + {0x9939d733, 0xffffd87affffdea3}, + {0x9939d734, 0xffffd87affffdea4}, + {0x9939d735, 0xffffd87affffdea5}, + {0x9939d736, 0xffffd87affffdea6}, + {0x9939d737, 0xffffd87affffdea7}, + {0x9939d738, 0xffffd87affffdea8}, + {0x9939d739, 0xffffd87affffdea9}, + {0x9939d830, 0xffffd87affffdeaa}, + {0x9939d831, 0xffffd87affffdeab}, + {0x9939d832, 0xffffd87affffdeac}, + {0x9939d833, 0xffffd87affffdead}, + {0x9939d834, 0xffffd87affffdeae}, + {0x9939d835, 0xffffd87affffdeaf}, + {0x9939d836, 0xffffd87affffdeb0}, + {0x9939d837, 0xffffd87affffdeb1}, + {0x9939d838, 0xffffd87affffdeb2}, + {0x9939d839, 0xffffd87affffdeb3}, + {0x9939d930, 0xffffd87affffdeb4}, + {0x9939d931, 0xffffd87affffdeb5}, + {0x9939d932, 0xffffd87affffdeb6}, + {0x9939d933, 0xffffd87affffdeb7}, + {0x9939d934, 0xffffd87affffdeb8}, + {0x9939d935, 0xffffd87affffdeb9}, + {0x9939d936, 0xffffd87affffdeba}, + {0x9939d937, 0xffffd87affffdebb}, + {0x9939d938, 0xffffd87affffdebc}, + {0x9939d939, 0xffffd87affffdebd}, + {0x9939da30, 0xffffd87affffdebe}, + {0x9939da31, 0xffffd87affffdebf}, + {0x9939da32, 0xffffd87affffdec0}, + {0x9939da33, 0xffffd87affffdec1}, + {0x9939da34, 0xffffd87affffdec2}, + {0x9939da35, 0xffffd87affffdec3}, + {0x9939da36, 0xffffd87affffdec4}, + {0x9939da37, 0xffffd87affffdec5}, + {0x9939da38, 0xffffd87affffdec6}, + {0x9939da39, 0xffffd87affffdec7}, + {0x9939db30, 0xffffd87affffdec8}, + {0x9939db31, 0xffffd87affffdec9}, + {0x9939db32, 0xffffd87affffdeca}, + {0x9939db33, 0xffffd87affffdecb}, + {0x9939db34, 0xffffd87affffdecc}, + {0x9939db35, 0xffffd87affffdecd}, + {0x9939db36, 0xffffd87affffdece}, + {0x9939db37, 0xffffd87affffdecf}, + {0x9939db38, 0xffffd87affffded0}, + {0x9939db39, 0xffffd87affffded1}, + {0x9939dc30, 0xffffd87affffded2}, + {0x9939dc31, 0xffffd87affffded3}, + {0x9939dc32, 0xffffd87affffded4}, + {0x9939dc33, 0xffffd87affffded5}, + {0x9939dc34, 0xffffd87affffded6}, + {0x9939dc35, 0xffffd87affffded7}, + {0x9939dc36, 0xffffd87affffded8}, + {0x9939dc37, 0xffffd87affffded9}, + {0x9939dc38, 0xffffd87affffdeda}, + {0x9939dc39, 0xffffd87affffdedb}, + {0x9939dd30, 0xffffd87affffdedc}, + {0x9939dd31, 0xffffd87affffdedd}, + {0x9939dd32, 0xffffd87affffdede}, + {0x9939dd33, 0xffffd87affffdedf}, + {0x9939dd34, 0xffffd87affffdee0}, + {0x9939dd35, 0xffffd87affffdee1}, + {0x9939dd36, 0xffffd87affffdee2}, + {0x9939dd37, 0xffffd87affffdee3}, + {0x9939dd38, 0xffffd87affffdee4}, + {0x9939dd39, 0xffffd87affffdee5}, + {0x9939de30, 0xffffd87affffdee6}, + {0x9939de31, 0xffffd87affffdee7}, + {0x9939de32, 0xffffd87affffdee8}, + {0x9939de33, 0xffffd87affffdee9}, + {0x9939de34, 0xffffd87affffdeea}, + {0x9939de35, 0xffffd87affffdeeb}, + {0x9939de36, 0xffffd87affffdeec}, + {0x9939de37, 0xffffd87affffdeed}, + {0x9939de38, 0xffffd87affffdeee}, + {0x9939de39, 0xffffd87affffdeef}, + {0x9939df30, 0xffffd87affffdef0}, + {0x9939df31, 0xffffd87affffdef1}, + {0x9939df32, 0xffffd87affffdef2}, + {0x9939df33, 0xffffd87affffdef3}, + {0x9939df34, 0xffffd87affffdef4}, + {0x9939df35, 0xffffd87affffdef5}, + {0x9939df36, 0xffffd87affffdef6}, + {0x9939df37, 0xffffd87affffdef7}, + {0x9939df38, 0xffffd87affffdef8}, + {0x9939df39, 0xffffd87affffdef9}, + {0x9939e030, 0xffffd87affffdefa}, + {0x9939e031, 0xffffd87affffdefb}, + {0x9939e032, 0xffffd87affffdefc}, + {0x9939e033, 0xffffd87affffdefd}, + {0x9939e034, 0xffffd87affffdefe}, + {0x9939e035, 0xffffd87affffdeff}, + {0x9939e036, 0xffffd87affffdf00}, + {0x9939e037, 0xffffd87affffdf01}, + {0x9939e038, 0xffffd87affffdf02}, + {0x9939e039, 0xffffd87affffdf03}, + {0x9939e130, 0xffffd87affffdf04}, + {0x9939e131, 0xffffd87affffdf05}, + {0x9939e132, 0xffffd87affffdf06}, + {0x9939e133, 0xffffd87affffdf07}, + {0x9939e134, 0xffffd87affffdf08}, + {0x9939e135, 0xffffd87affffdf09}, + {0x9939e136, 0xffffd87affffdf0a}, + {0x9939e137, 0xffffd87affffdf0b}, + {0x9939e138, 0xffffd87affffdf0c}, + {0x9939e139, 0xffffd87affffdf0d}, + {0x9939e230, 0xffffd87affffdf0e}, + {0x9939e231, 0xffffd87affffdf0f}, + {0x9939e232, 0xffffd87affffdf10}, + {0x9939e233, 0xffffd87affffdf11}, + {0x9939e234, 0xffffd87affffdf12}, + {0x9939e235, 0xffffd87affffdf13}, + {0x9939e236, 0xffffd87affffdf14}, + {0x9939e237, 0xffffd87affffdf15}, + {0x9939e238, 0xffffd87affffdf16}, + {0x9939e239, 0xffffd87affffdf17}, + {0x9939e330, 0xffffd87affffdf18}, + {0x9939e331, 0xffffd87affffdf19}, + {0x9939e332, 0xffffd87affffdf1a}, + {0x9939e333, 0xffffd87affffdf1b}, + {0x9939e334, 0xffffd87affffdf1c}, + {0x9939e335, 0xffffd87affffdf1d}, + {0x9939e336, 0xffffd87affffdf1e}, + {0x9939e337, 0xffffd87affffdf1f}, + {0x9939e338, 0xffffd87affffdf20}, + {0x9939e339, 0xffffd87affffdf21}, + {0x9939e430, 0xffffd87affffdf22}, + {0x9939e431, 0xffffd87affffdf23}, + {0x9939e432, 0xffffd87affffdf24}, + {0x9939e433, 0xffffd87affffdf25}, + {0x9939e434, 0xffffd87affffdf26}, + {0x9939e435, 0xffffd87affffdf27}, + {0x9939e436, 0xffffd87affffdf28}, + {0x9939e437, 0xffffd87affffdf29}, + {0x9939e438, 0xffffd87affffdf2a}, + {0x9939e439, 0xffffd87affffdf2b}, + {0x9939e530, 0xffffd87affffdf2c}, + {0x9939e531, 0xffffd87affffdf2d}, + {0x9939e532, 0xffffd87affffdf2e}, + {0x9939e533, 0xffffd87affffdf2f}, + {0x9939e534, 0xffffd87affffdf30}, + {0x9939e535, 0xffffd87affffdf31}, + {0x9939e536, 0xffffd87affffdf32}, + {0x9939e537, 0xffffd87affffdf33}, + {0x9939e538, 0xffffd87affffdf34}, + {0x9939e539, 0xffffd87affffdf35}, + {0x9939e630, 0xffffd87affffdf36}, + {0x9939e631, 0xffffd87affffdf37}, + {0x9939e632, 0xffffd87affffdf38}, + {0x9939e633, 0xffffd87affffdf39}, + {0x9939e634, 0xffffd87affffdf3a}, + {0x9939e635, 0xffffd87affffdf3b}, + {0x9939e636, 0xffffd87affffdf3c}, + {0x9939e637, 0xffffd87affffdf3d}, + {0x9939e638, 0xffffd87affffdf3e}, + {0x9939e639, 0xffffd87affffdf3f}, + {0x9939e730, 0xffffd87affffdf40}, + {0x9939e731, 0xffffd87affffdf41}, + {0x9939e732, 0xffffd87affffdf42}, + {0x9939e733, 0xffffd87affffdf43}, + {0x9939e734, 0xffffd87affffdf44}, + {0x9939e735, 0xffffd87affffdf45}, + {0x9939e736, 0xffffd87affffdf46}, + {0x9939e737, 0xffffd87affffdf47}, + {0x9939e738, 0xffffd87affffdf48}, + {0x9939e739, 0xffffd87affffdf49}, + {0x9939e830, 0xffffd87affffdf4a}, + {0x9939e831, 0xffffd87affffdf4b}, + {0x9939e832, 0xffffd87affffdf4c}, + {0x9939e833, 0xffffd87affffdf4d}, + {0x9939e834, 0xffffd87affffdf4e}, + {0x9939e835, 0xffffd87affffdf4f}, + {0x9939e836, 0xffffd87affffdf50}, + {0x9939e837, 0xffffd87affffdf51}, + {0x9939e838, 0xffffd87affffdf52}, + {0x9939e839, 0xffffd87affffdf53}, + {0x9939e930, 0xffffd87affffdf54}, + {0x9939e931, 0xffffd87affffdf55}, + {0x9939e932, 0xffffd87affffdf56}, + {0x9939e933, 0xffffd87affffdf57}, + {0x9939e934, 0xffffd87affffdf58}, + {0x9939e935, 0xffffd87affffdf59}, + {0x9939e936, 0xffffd87affffdf5a}, + {0x9939e937, 0xffffd87affffdf5b}, + {0x9939e938, 0xffffd87affffdf5c}, + {0x9939e939, 0xffffd87affffdf5d}, + {0x9939ea30, 0xffffd87affffdf5e}, + {0x9939ea31, 0xffffd87affffdf5f}, + {0x9939ea32, 0xffffd87affffdf60}, + {0x9939ea33, 0xffffd87affffdf61}, + {0x9939ea34, 0xffffd87affffdf62}, + {0x9939ea35, 0xffffd87affffdf63}, + {0x9939ea36, 0xffffd87affffdf64}, + {0x9939ea37, 0xffffd87affffdf65}, + {0x9939ea38, 0xffffd87affffdf66}, + {0x9939ea39, 0xffffd87affffdf67}, + {0x9939eb30, 0xffffd87affffdf68}, + {0x9939eb31, 0xffffd87affffdf69}, + {0x9939eb32, 0xffffd87affffdf6a}, + {0x9939eb33, 0xffffd87affffdf6b}, + {0x9939eb34, 0xffffd87affffdf6c}, + {0x9939eb35, 0xffffd87affffdf6d}, + {0x9939eb36, 0xffffd87affffdf6e}, + {0x9939eb37, 0xffffd87affffdf6f}, + {0x9939eb38, 0xffffd87affffdf70}, + {0x9939eb39, 0xffffd87affffdf71}, + {0x9939ec30, 0xffffd87affffdf72}, + {0x9939ec31, 0xffffd87affffdf73}, + {0x9939ec32, 0xffffd87affffdf74}, + {0x9939ec33, 0xffffd87affffdf75}, + {0x9939ec34, 0xffffd87affffdf76}, + {0x9939ec35, 0xffffd87affffdf77}, + {0x9939ec36, 0xffffd87affffdf78}, + {0x9939ec37, 0xffffd87affffdf79}, + {0x9939ec38, 0xffffd87affffdf7a}, + {0x9939ec39, 0xffffd87affffdf7b}, + {0x9939ed30, 0xffffd87affffdf7c}, + {0x9939ed31, 0xffffd87affffdf7d}, + {0x9939ed32, 0xffffd87affffdf7e}, + {0x9939ed33, 0xffffd87affffdf7f}, + {0x9939ed34, 0xffffd87affffdf80}, + {0x9939ed35, 0xffffd87affffdf81}, + {0x9939ed36, 0xffffd87affffdf82}, + {0x9939ed37, 0xffffd87affffdf83}, + {0x9939ed38, 0xffffd87affffdf84}, + {0x9939ed39, 0xffffd87affffdf85}, + {0x9939ee30, 0xffffd87affffdf86}, + {0x9939ee31, 0xffffd87affffdf87}, + {0x9939ee32, 0xffffd87affffdf88}, + {0x9939ee33, 0xffffd87affffdf89}, + {0x9939ee34, 0xffffd87affffdf8a}, + {0x9939ee35, 0xffffd87affffdf8b}, + {0x9939ee36, 0xffffd87affffdf8c}, + {0x9939ee37, 0xffffd87affffdf8d}, + {0x9939ee38, 0xffffd87affffdf8e}, + {0x9939ee39, 0xffffd87affffdf8f}, + {0x9939ef30, 0xffffd87affffdf90}, + {0x9939ef31, 0xffffd87affffdf91}, + {0x9939ef32, 0xffffd87affffdf92}, + {0x9939ef33, 0xffffd87affffdf93}, + {0x9939ef34, 0xffffd87affffdf94}, + {0x9939ef35, 0xffffd87affffdf95}, + {0x9939ef36, 0xffffd87affffdf96}, + {0x9939ef37, 0xffffd87affffdf97}, + {0x9939ef38, 0xffffd87affffdf98}, + {0x9939ef39, 0xffffd87affffdf99}, + {0x9939f030, 0xffffd87affffdf9a}, + {0x9939f031, 0xffffd87affffdf9b}, + {0x9939f032, 0xffffd87affffdf9c}, + {0x9939f033, 0xffffd87affffdf9d}, + {0x9939f034, 0xffffd87affffdf9e}, + {0x9939f035, 0xffffd87affffdf9f}, + {0x9939f036, 0xffffd87affffdfa0}, + {0x9939f037, 0xffffd87affffdfa1}, + {0x9939f038, 0xffffd87affffdfa2}, + {0x9939f039, 0xffffd87affffdfa3}, + {0x9939f130, 0xffffd87affffdfa4}, + {0x9939f131, 0xffffd87affffdfa5}, + {0x9939f132, 0xffffd87affffdfa6}, + {0x9939f133, 0xffffd87affffdfa7}, + {0x9939f134, 0xffffd87affffdfa8}, + {0x9939f135, 0xffffd87affffdfa9}, + {0x9939f136, 0xffffd87affffdfaa}, + {0x9939f137, 0xffffd87affffdfab}, + {0x9939f138, 0xffffd87affffdfac}, + {0x9939f139, 0xffffd87affffdfad}, + {0x9939f230, 0xffffd87affffdfae}, + {0x9939f231, 0xffffd87affffdfaf}, + {0x9939f232, 0xffffd87affffdfb0}, + {0x9939f233, 0xffffd87affffdfb1}, + {0x9939f234, 0xffffd87affffdfb2}, + {0x9939f235, 0xffffd87affffdfb3}, + {0x9939f236, 0xffffd87affffdfb4}, + {0x9939f237, 0xffffd87affffdfb5}, + {0x9939f238, 0xffffd87affffdfb6}, + {0x9939f239, 0xffffd87affffdfb7}, + {0x9939f330, 0xffffd87affffdfb8}, + {0x9939f331, 0xffffd87affffdfb9}, + {0x9939f332, 0xffffd87affffdfba}, + {0x9939f333, 0xffffd87affffdfbb}, + {0x9939f334, 0xffffd87affffdfbc}, + {0x9939f335, 0xffffd87affffdfbd}, + {0x9939f336, 0xffffd87affffdfbe}, + {0x9939f337, 0xffffd87affffdfbf}, + {0x9939f338, 0xffffd87affffdfc0}, + {0x9939f339, 0xffffd87affffdfc1}, + {0x9939f430, 0xffffd87affffdfc2}, + {0x9939f431, 0xffffd87affffdfc3}, + {0x9939f432, 0xffffd87affffdfc4}, + {0x9939f433, 0xffffd87affffdfc5}, + {0x9939f434, 0xffffd87affffdfc6}, + {0x9939f435, 0xffffd87affffdfc7}, + {0x9939f436, 0xffffd87affffdfc8}, + {0x9939f437, 0xffffd87affffdfc9}, + {0x9939f438, 0xffffd87affffdfca}, + {0x9939f439, 0xffffd87affffdfcb}, + {0x9939f530, 0xffffd87affffdfcc}, + {0x9939f531, 0xffffd87affffdfcd}, + {0x9939f532, 0xffffd87affffdfce}, + {0x9939f533, 0xffffd87affffdfcf}, + {0x9939f534, 0xffffd87affffdfd0}, + {0x9939f535, 0xffffd87affffdfd1}, + {0x9939f536, 0xffffd87affffdfd2}, + {0x9939f537, 0xffffd87affffdfd3}, + {0x9939f538, 0xffffd87affffdfd4}, + {0x9939f539, 0xffffd87affffdfd5}, + {0x9939f630, 0xffffd87affffdfd6}, + {0x9939f631, 0xffffd87affffdfd7}, + {0x9939f632, 0xffffd87affffdfd8}, + {0x9939f633, 0xffffd87affffdfd9}, + {0x9939f634, 0xffffd87affffdfda}, + {0x9939f635, 0xffffd87affffdfdb}, + {0x9939f636, 0xffffd87affffdfdc}, + {0x9939f637, 0xffffd87affffdfdd}, + {0x9939f638, 0xffffd87affffdfde}, + {0x9939f639, 0xffffd87affffdfdf}, + {0x9939f730, 0xffffd87affffdfe0}, + {0x9939f731, 0xffffd87affffdfe1}, + {0x9939f732, 0xffffd87affffdfe2}, + {0x9939f733, 0xffffd87affffdfe3}, + {0x9939f734, 0xffffd87affffdfe4}, + {0x9939f735, 0xffffd87affffdfe5}, + {0x9939f736, 0xffffd87affffdfe6}, + {0x9939f737, 0xffffd87affffdfe7}, + {0x9939f738, 0xffffd87affffdfe8}, + {0x9939f739, 0xffffd87affffdfe9}, + {0x9939f830, 0xffffd87affffdfea}, + {0x9939f831, 0xffffd87affffdfeb}, + {0x9939f832, 0xffffd87affffdfec}, + {0x9939f833, 0xffffd87affffdfed}, + {0x9939f834, 0xffffd87affffdfee}, + {0x9939f835, 0xffffd87affffdfef}, + {0x9939f836, 0xffffd87affffdff0}, + {0x9939f837, 0xffffd87affffdff1}, + {0x9939f838, 0xffffd87affffdff2}, + {0x9939f839, 0xffffd87affffdff3}, + {0x9939f930, 0xffffd87affffdff4}, + {0x9939f931, 0xffffd87affffdff5}, + {0x9939f932, 0xffffd87affffdff6}, + {0x9939f933, 0xffffd87affffdff7}, + {0x9939f934, 0xffffd87affffdff8}, + {0x9939f935, 0xffffd87affffdff9}, + {0x9939f936, 0xffffd87affffdffa}, + {0x9939f937, 0xffffd87affffdffb}, + {0x9939f938, 0xffffd87affffdffc}, + {0x9939f939, 0xffffd87affffdffd}, + {0x9939fa30, 0xffffd87affffdffe}, + {0x9939fa31, 0xffffd87affffdfff}, + {0x9939fa32, 0xffffd87bffffdc00}, + {0x9939fa33, 0xffffd87bffffdc01}, + {0x9939fa34, 0xffffd87bffffdc02}, + {0x9939fa35, 0xffffd87bffffdc03}, + {0x9939fa36, 0xffffd87bffffdc04}, + {0x9939fa37, 0xffffd87bffffdc05}, + {0x9939fa38, 0xffffd87bffffdc06}, + {0x9939fa39, 0xffffd87bffffdc07}, + {0x9939fb30, 0xffffd87bffffdc08}, + {0x9939fb31, 0xffffd87bffffdc09}, + {0x9939fb32, 0xffffd87bffffdc0a}, + {0x9939fb33, 0xffffd87bffffdc0b}, + {0x9939fb34, 0xffffd87bffffdc0c}, + {0x9939fb35, 0xffffd87bffffdc0d}, + {0x9939fb36, 0xffffd87bffffdc0e}, + {0x9939fb37, 0xffffd87bffffdc0f}, + {0x9939fb38, 0xffffd87bffffdc10}, + {0x9939fb39, 0xffffd87bffffdc11}, + {0x9939fc30, 0xffffd87bffffdc12}, + {0x9939fc31, 0xffffd87bffffdc13}, + {0x9939fc32, 0xffffd87bffffdc14}, + {0x9939fc33, 0xffffd87bffffdc15}, + {0x9939fc34, 0xffffd87bffffdc16}, + {0x9939fc35, 0xffffd87bffffdc17}, + {0x9939fc36, 0xffffd87bffffdc18}, + {0x9939fc37, 0xffffd87bffffdc19}, + {0x9939fc38, 0xffffd87bffffdc1a}, + {0x9939fc39, 0xffffd87bffffdc1b}, + {0x9939fd30, 0xffffd87bffffdc1c}, + {0x9939fd31, 0xffffd87bffffdc1d}, + {0x9939fd32, 0xffffd87bffffdc1e}, + {0x9939fd33, 0xffffd87bffffdc1f}, + {0x9939fd34, 0xffffd87bffffdc20}, + {0x9939fd35, 0xffffd87bffffdc21}, + {0x9939fd36, 0xffffd87bffffdc22}, + {0x9939fd37, 0xffffd87bffffdc23}, + {0x9939fd38, 0xffffd87bffffdc24}, + {0x9939fd39, 0xffffd87bffffdc25}, + {0x9939fe30, 0xffffd87bffffdc26}, + {0x9939fe31, 0xffffd87bffffdc27}, + {0x9939fe32, 0xffffd87bffffdc28}, + {0x9939fe33, 0xffffd87bffffdc29}, + {0x9939fe34, 0xffffd87bffffdc2a}, + {0x9939fe35, 0xffffd87bffffdc2b}, + {0x9939fe36, 0xffffd87bffffdc2c}, + {0x9939fe37, 0xffffd87bffffdc2d}, + {0x9939fe38, 0xffffd87bffffdc2e}, + {0x9939fe39, 0xffffd87bffffdc2f}, + {0x9a308130, 0xffffd87bffffdc30}, + {0x9a308131, 0xffffd87bffffdc31}, + {0x9a308132, 0xffffd87bffffdc32}, + {0x9a308133, 0xffffd87bffffdc33}, + {0x9a308134, 0xffffd87bffffdc34}, + {0x9a308135, 0xffffd87bffffdc35}, + {0x9a308136, 0xffffd87bffffdc36}, + {0x9a308137, 0xffffd87bffffdc37}, + {0x9a308138, 0xffffd87bffffdc38}, + {0x9a308139, 0xffffd87bffffdc39}, + {0x9a308230, 0xffffd87bffffdc3a}, + {0x9a308231, 0xffffd87bffffdc3b}, + {0x9a308232, 0xffffd87bffffdc3c}, + {0x9a308233, 0xffffd87bffffdc3d}, + {0x9a308234, 0xffffd87bffffdc3e}, + {0x9a308235, 0xffffd87bffffdc3f}, + {0x9a308236, 0xffffd87bffffdc40}, + {0x9a308237, 0xffffd87bffffdc41}, + {0x9a308238, 0xffffd87bffffdc42}, + {0x9a308239, 0xffffd87bffffdc43}, + {0x9a308330, 0xffffd87bffffdc44}, + {0x9a308331, 0xffffd87bffffdc45}, + {0x9a308332, 0xffffd87bffffdc46}, + {0x9a308333, 0xffffd87bffffdc47}, + {0x9a308334, 0xffffd87bffffdc48}, + {0x9a308335, 0xffffd87bffffdc49}, + {0x9a308336, 0xffffd87bffffdc4a}, + {0x9a308337, 0xffffd87bffffdc4b}, + {0x9a308338, 0xffffd87bffffdc4c}, + {0x9a308339, 0xffffd87bffffdc4d}, + {0x9a308430, 0xffffd87bffffdc4e}, + {0x9a308431, 0xffffd87bffffdc4f}, + {0x9a308432, 0xffffd87bffffdc50}, + {0x9a308433, 0xffffd87bffffdc51}, + {0x9a308434, 0xffffd87bffffdc52}, + {0x9a308435, 0xffffd87bffffdc53}, + {0x9a308436, 0xffffd87bffffdc54}, + {0x9a308437, 0xffffd87bffffdc55}, + {0x9a308438, 0xffffd87bffffdc56}, + {0x9a308439, 0xffffd87bffffdc57}, + {0x9a308530, 0xffffd87bffffdc58}, + {0x9a308531, 0xffffd87bffffdc59}, + {0x9a308532, 0xffffd87bffffdc5a}, + {0x9a308533, 0xffffd87bffffdc5b}, + {0x9a308534, 0xffffd87bffffdc5c}, + {0x9a308535, 0xffffd87bffffdc5d}, + {0x9a308536, 0xffffd87bffffdc5e}, + {0x9a308537, 0xffffd87bffffdc5f}, + {0x9a308538, 0xffffd87bffffdc60}, + {0x9a308539, 0xffffd87bffffdc61}, + {0x9a308630, 0xffffd87bffffdc62}, + {0x9a308631, 0xffffd87bffffdc63}, + {0x9a308632, 0xffffd87bffffdc64}, + {0x9a308633, 0xffffd87bffffdc65}, + {0x9a308634, 0xffffd87bffffdc66}, + {0x9a308635, 0xffffd87bffffdc67}, + {0x9a308636, 0xffffd87bffffdc68}, + {0x9a308637, 0xffffd87bffffdc69}, + {0x9a308638, 0xffffd87bffffdc6a}, + {0x9a308639, 0xffffd87bffffdc6b}, + {0x9a308730, 0xffffd87bffffdc6c}, + {0x9a308731, 0xffffd87bffffdc6d}, + {0x9a308732, 0xffffd87bffffdc6e}, + {0x9a308733, 0xffffd87bffffdc6f}, + {0x9a308734, 0xffffd87bffffdc70}, + {0x9a308735, 0xffffd87bffffdc71}, + {0x9a308736, 0xffffd87bffffdc72}, + {0x9a308737, 0xffffd87bffffdc73}, + {0x9a308738, 0xffffd87bffffdc74}, + {0x9a308739, 0xffffd87bffffdc75}, + {0x9a308830, 0xffffd87bffffdc76}, + {0x9a308831, 0xffffd87bffffdc77}, + {0x9a308832, 0xffffd87bffffdc78}, + {0x9a308833, 0xffffd87bffffdc79}, + {0x9a308834, 0xffffd87bffffdc7a}, + {0x9a308835, 0xffffd87bffffdc7b}, + {0x9a308836, 0xffffd87bffffdc7c}, + {0x9a308837, 0xffffd87bffffdc7d}, + {0x9a308838, 0xffffd87bffffdc7e}, + {0x9a308839, 0xffffd87bffffdc7f}, + {0x9a308930, 0xffffd87bffffdc80}, + {0x9a308931, 0xffffd87bffffdc81}, + {0x9a308932, 0xffffd87bffffdc82}, + {0x9a308933, 0xffffd87bffffdc83}, + {0x9a308934, 0xffffd87bffffdc84}, + {0x9a308935, 0xffffd87bffffdc85}, + {0x9a308936, 0xffffd87bffffdc86}, + {0x9a308937, 0xffffd87bffffdc87}, + {0x9a308938, 0xffffd87bffffdc88}, + {0x9a308939, 0xffffd87bffffdc89}, + {0x9a308a30, 0xffffd87bffffdc8a}, + {0x9a308a31, 0xffffd87bffffdc8b}, + {0x9a308a32, 0xffffd87bffffdc8c}, + {0x9a308a33, 0xffffd87bffffdc8d}, + {0x9a308a34, 0xffffd87bffffdc8e}, + {0x9a308a35, 0xffffd87bffffdc8f}, + {0x9a308a36, 0xffffd87bffffdc90}, + {0x9a308a37, 0xffffd87bffffdc91}, + {0x9a308a38, 0xffffd87bffffdc92}, + {0x9a308a39, 0xffffd87bffffdc93}, + {0x9a308b30, 0xffffd87bffffdc94}, + {0x9a308b31, 0xffffd87bffffdc95}, + {0x9a308b32, 0xffffd87bffffdc96}, + {0x9a308b33, 0xffffd87bffffdc97}, + {0x9a308b34, 0xffffd87bffffdc98}, + {0x9a308b35, 0xffffd87bffffdc99}, + {0x9a308b36, 0xffffd87bffffdc9a}, + {0x9a308b37, 0xffffd87bffffdc9b}, + {0x9a308b38, 0xffffd87bffffdc9c}, + {0x9a308b39, 0xffffd87bffffdc9d}, + {0x9a308c30, 0xffffd87bffffdc9e}, + {0x9a308c31, 0xffffd87bffffdc9f}, + {0x9a308c32, 0xffffd87bffffdca0}, + {0x9a308c33, 0xffffd87bffffdca1}, + {0x9a308c34, 0xffffd87bffffdca2}, + {0x9a308c35, 0xffffd87bffffdca3}, + {0x9a308c36, 0xffffd87bffffdca4}, + {0x9a308c37, 0xffffd87bffffdca5}, + {0x9a308c38, 0xffffd87bffffdca6}, + {0x9a308c39, 0xffffd87bffffdca7}, + {0x9a308d30, 0xffffd87bffffdca8}, + {0x9a308d31, 0xffffd87bffffdca9}, + {0x9a308d32, 0xffffd87bffffdcaa}, + {0x9a308d33, 0xffffd87bffffdcab}, + {0x9a308d34, 0xffffd87bffffdcac}, + {0x9a308d35, 0xffffd87bffffdcad}, + {0x9a308d36, 0xffffd87bffffdcae}, + {0x9a308d37, 0xffffd87bffffdcaf}, + {0x9a308d38, 0xffffd87bffffdcb0}, + {0x9a308d39, 0xffffd87bffffdcb1}, + {0x9a308e30, 0xffffd87bffffdcb2}, + {0x9a308e31, 0xffffd87bffffdcb3}, + {0x9a308e32, 0xffffd87bffffdcb4}, + {0x9a308e33, 0xffffd87bffffdcb5}, + {0x9a308e34, 0xffffd87bffffdcb6}, + {0x9a308e35, 0xffffd87bffffdcb7}, + {0x9a308e36, 0xffffd87bffffdcb8}, + {0x9a308e37, 0xffffd87bffffdcb9}, + {0x9a308e38, 0xffffd87bffffdcba}, + {0x9a308e39, 0xffffd87bffffdcbb}, + {0x9a308f30, 0xffffd87bffffdcbc}, + {0x9a308f31, 0xffffd87bffffdcbd}, + {0x9a308f32, 0xffffd87bffffdcbe}, + {0x9a308f33, 0xffffd87bffffdcbf}, + {0x9a308f34, 0xffffd87bffffdcc0}, + {0x9a308f35, 0xffffd87bffffdcc1}, + {0x9a308f36, 0xffffd87bffffdcc2}, + {0x9a308f37, 0xffffd87bffffdcc3}, + {0x9a308f38, 0xffffd87bffffdcc4}, + {0x9a308f39, 0xffffd87bffffdcc5}, + {0x9a309030, 0xffffd87bffffdcc6}, + {0x9a309031, 0xffffd87bffffdcc7}, + {0x9a309032, 0xffffd87bffffdcc8}, + {0x9a309033, 0xffffd87bffffdcc9}, + {0x9a309034, 0xffffd87bffffdcca}, + {0x9a309035, 0xffffd87bffffdccb}, + {0x9a309036, 0xffffd87bffffdccc}, + {0x9a309037, 0xffffd87bffffdccd}, + {0x9a309038, 0xffffd87bffffdcce}, + {0x9a309039, 0xffffd87bffffdccf}, + {0x9a309130, 0xffffd87bffffdcd0}, + {0x9a309131, 0xffffd87bffffdcd1}, + {0x9a309132, 0xffffd87bffffdcd2}, + {0x9a309133, 0xffffd87bffffdcd3}, + {0x9a309134, 0xffffd87bffffdcd4}, + {0x9a309135, 0xffffd87bffffdcd5}, + {0x9a309136, 0xffffd87bffffdcd6}, + {0x9a309137, 0xffffd87bffffdcd7}, + {0x9a309138, 0xffffd87bffffdcd8}, + {0x9a309139, 0xffffd87bffffdcd9}, + {0x9a309230, 0xffffd87bffffdcda}, + {0x9a309231, 0xffffd87bffffdcdb}, + {0x9a309232, 0xffffd87bffffdcdc}, + {0x9a309233, 0xffffd87bffffdcdd}, + {0x9a309234, 0xffffd87bffffdcde}, + {0x9a309235, 0xffffd87bffffdcdf}, + {0x9a309236, 0xffffd87bffffdce0}, + {0x9a309237, 0xffffd87bffffdce1}, + {0x9a309238, 0xffffd87bffffdce2}, + {0x9a309239, 0xffffd87bffffdce3}, + {0x9a309330, 0xffffd87bffffdce4}, + {0x9a309331, 0xffffd87bffffdce5}, + {0x9a309332, 0xffffd87bffffdce6}, + {0x9a309333, 0xffffd87bffffdce7}, + {0x9a309334, 0xffffd87bffffdce8}, + {0x9a309335, 0xffffd87bffffdce9}, + {0x9a309336, 0xffffd87bffffdcea}, + {0x9a309337, 0xffffd87bffffdceb}, + {0x9a309338, 0xffffd87bffffdcec}, + {0x9a309339, 0xffffd87bffffdced}, + {0x9a309430, 0xffffd87bffffdcee}, + {0x9a309431, 0xffffd87bffffdcef}, + {0x9a309432, 0xffffd87bffffdcf0}, + {0x9a309433, 0xffffd87bffffdcf1}, + {0x9a309434, 0xffffd87bffffdcf2}, + {0x9a309435, 0xffffd87bffffdcf3}, + {0x9a309436, 0xffffd87bffffdcf4}, + {0x9a309437, 0xffffd87bffffdcf5}, + {0x9a309438, 0xffffd87bffffdcf6}, + {0x9a309439, 0xffffd87bffffdcf7}, + {0x9a309530, 0xffffd87bffffdcf8}, + {0x9a309531, 0xffffd87bffffdcf9}, + {0x9a309532, 0xffffd87bffffdcfa}, + {0x9a309533, 0xffffd87bffffdcfb}, + {0x9a309534, 0xffffd87bffffdcfc}, + {0x9a309535, 0xffffd87bffffdcfd}, + {0x9a309536, 0xffffd87bffffdcfe}, + {0x9a309537, 0xffffd87bffffdcff}, + {0x9a309538, 0xffffd87bffffdd00}, + {0x9a309539, 0xffffd87bffffdd01}, + {0x9a309630, 0xffffd87bffffdd02}, + {0x9a309631, 0xffffd87bffffdd03}, + {0x9a309632, 0xffffd87bffffdd04}, + {0x9a309633, 0xffffd87bffffdd05}, + {0x9a309634, 0xffffd87bffffdd06}, + {0x9a309635, 0xffffd87bffffdd07}, + {0x9a309636, 0xffffd87bffffdd08}, + {0x9a309637, 0xffffd87bffffdd09}, + {0x9a309638, 0xffffd87bffffdd0a}, + {0x9a309639, 0xffffd87bffffdd0b}, + {0x9a309730, 0xffffd87bffffdd0c}, + {0x9a309731, 0xffffd87bffffdd0d}, + {0x9a309732, 0xffffd87bffffdd0e}, + {0x9a309733, 0xffffd87bffffdd0f}, + {0x9a309734, 0xffffd87bffffdd10}, + {0x9a309735, 0xffffd87bffffdd11}, + {0x9a309736, 0xffffd87bffffdd12}, + {0x9a309737, 0xffffd87bffffdd13}, + {0x9a309738, 0xffffd87bffffdd14}, + {0x9a309739, 0xffffd87bffffdd15}, + {0x9a309830, 0xffffd87bffffdd16}, + {0x9a309831, 0xffffd87bffffdd17}, + {0x9a309832, 0xffffd87bffffdd18}, + {0x9a309833, 0xffffd87bffffdd19}, + {0x9a309834, 0xffffd87bffffdd1a}, + {0x9a309835, 0xffffd87bffffdd1b}, + {0x9a309836, 0xffffd87bffffdd1c}, + {0x9a309837, 0xffffd87bffffdd1d}, + {0x9a309838, 0xffffd87bffffdd1e}, + {0x9a309839, 0xffffd87bffffdd1f}, + {0x9a309930, 0xffffd87bffffdd20}, + {0x9a309931, 0xffffd87bffffdd21}, + {0x9a309932, 0xffffd87bffffdd22}, + {0x9a309933, 0xffffd87bffffdd23}, + {0x9a309934, 0xffffd87bffffdd24}, + {0x9a309935, 0xffffd87bffffdd25}, + {0x9a309936, 0xffffd87bffffdd26}, + {0x9a309937, 0xffffd87bffffdd27}, + {0x9a309938, 0xffffd87bffffdd28}, + {0x9a309939, 0xffffd87bffffdd29}, + {0x9a309a30, 0xffffd87bffffdd2a}, + {0x9a309a31, 0xffffd87bffffdd2b}, + {0x9a309a32, 0xffffd87bffffdd2c}, + {0x9a309a33, 0xffffd87bffffdd2d}, + {0x9a309a34, 0xffffd87bffffdd2e}, + {0x9a309a35, 0xffffd87bffffdd2f}, + {0x9a309a36, 0xffffd87bffffdd30}, + {0x9a309a37, 0xffffd87bffffdd31}, + {0x9a309a38, 0xffffd87bffffdd32}, + {0x9a309a39, 0xffffd87bffffdd33}, + {0x9a309b30, 0xffffd87bffffdd34}, + {0x9a309b31, 0xffffd87bffffdd35}, + {0x9a309b32, 0xffffd87bffffdd36}, + {0x9a309b33, 0xffffd87bffffdd37}, + {0x9a309b34, 0xffffd87bffffdd38}, + {0x9a309b35, 0xffffd87bffffdd39}, + {0x9a309b36, 0xffffd87bffffdd3a}, + {0x9a309b37, 0xffffd87bffffdd3b}, + {0x9a309b38, 0xffffd87bffffdd3c}, + {0x9a309b39, 0xffffd87bffffdd3d}, + {0x9a309c30, 0xffffd87bffffdd3e}, + {0x9a309c31, 0xffffd87bffffdd3f}, + {0x9a309c32, 0xffffd87bffffdd40}, + {0x9a309c33, 0xffffd87bffffdd41}, + {0x9a309c34, 0xffffd87bffffdd42}, + {0x9a309c35, 0xffffd87bffffdd43}, + {0x9a309c36, 0xffffd87bffffdd44}, + {0x9a309c37, 0xffffd87bffffdd45}, + {0x9a309c38, 0xffffd87bffffdd46}, + {0x9a309c39, 0xffffd87bffffdd47}, + {0x9a309d30, 0xffffd87bffffdd48}, + {0x9a309d31, 0xffffd87bffffdd49}, + {0x9a309d32, 0xffffd87bffffdd4a}, + {0x9a309d33, 0xffffd87bffffdd4b}, + {0x9a309d34, 0xffffd87bffffdd4c}, + {0x9a309d35, 0xffffd87bffffdd4d}, + {0x9a309d36, 0xffffd87bffffdd4e}, + {0x9a309d37, 0xffffd87bffffdd4f}, + {0x9a309d38, 0xffffd87bffffdd50}, + {0x9a309d39, 0xffffd87bffffdd51}, + {0x9a309e30, 0xffffd87bffffdd52}, + {0x9a309e31, 0xffffd87bffffdd53}, + {0x9a309e32, 0xffffd87bffffdd54}, + {0x9a309e33, 0xffffd87bffffdd55}, + {0x9a309e34, 0xffffd87bffffdd56}, + {0x9a309e35, 0xffffd87bffffdd57}, + {0x9a309e36, 0xffffd87bffffdd58}, + {0x9a309e37, 0xffffd87bffffdd59}, + {0x9a309e38, 0xffffd87bffffdd5a}, + {0x9a309e39, 0xffffd87bffffdd5b}, + {0x9a309f30, 0xffffd87bffffdd5c}, + {0x9a309f31, 0xffffd87bffffdd5d}, + {0x9a309f32, 0xffffd87bffffdd5e}, + {0x9a309f33, 0xffffd87bffffdd5f}, + {0x9a309f34, 0xffffd87bffffdd60}, + {0x9a309f35, 0xffffd87bffffdd61}, + {0x9a309f36, 0xffffd87bffffdd62}, + {0x9a309f37, 0xffffd87bffffdd63}, + {0x9a309f38, 0xffffd87bffffdd64}, + {0x9a309f39, 0xffffd87bffffdd65}, + {0x9a30a030, 0xffffd87bffffdd66}, + {0x9a30a031, 0xffffd87bffffdd67}, + {0x9a30a032, 0xffffd87bffffdd68}, + {0x9a30a033, 0xffffd87bffffdd69}, + {0x9a30a034, 0xffffd87bffffdd6a}, + {0x9a30a035, 0xffffd87bffffdd6b}, + {0x9a30a036, 0xffffd87bffffdd6c}, + {0x9a30a037, 0xffffd87bffffdd6d}, + {0x9a30a038, 0xffffd87bffffdd6e}, + {0x9a30a039, 0xffffd87bffffdd6f}, + {0x9a30a130, 0xffffd87bffffdd70}, + {0x9a30a131, 0xffffd87bffffdd71}, + {0x9a30a132, 0xffffd87bffffdd72}, + {0x9a30a133, 0xffffd87bffffdd73}, + {0x9a30a134, 0xffffd87bffffdd74}, + {0x9a30a135, 0xffffd87bffffdd75}, + {0x9a30a136, 0xffffd87bffffdd76}, + {0x9a30a137, 0xffffd87bffffdd77}, + {0x9a30a138, 0xffffd87bffffdd78}, + {0x9a30a139, 0xffffd87bffffdd79}, + {0x9a30a230, 0xffffd87bffffdd7a}, + {0x9a30a231, 0xffffd87bffffdd7b}, + {0x9a30a232, 0xffffd87bffffdd7c}, + {0x9a30a233, 0xffffd87bffffdd7d}, + {0x9a30a234, 0xffffd87bffffdd7e}, + {0x9a30a235, 0xffffd87bffffdd7f}, + {0x9a30a236, 0xffffd87bffffdd80}, + {0x9a30a237, 0xffffd87bffffdd81}, + {0x9a30a238, 0xffffd87bffffdd82}, + {0x9a30a239, 0xffffd87bffffdd83}, + {0x9a30a330, 0xffffd87bffffdd84}, + {0x9a30a331, 0xffffd87bffffdd85}, + {0x9a30a332, 0xffffd87bffffdd86}, + {0x9a30a333, 0xffffd87bffffdd87}, + {0x9a30a334, 0xffffd87bffffdd88}, + {0x9a30a335, 0xffffd87bffffdd89}, + {0x9a30a336, 0xffffd87bffffdd8a}, + {0x9a30a337, 0xffffd87bffffdd8b}, + {0x9a30a338, 0xffffd87bffffdd8c}, + {0x9a30a339, 0xffffd87bffffdd8d}, + {0x9a30a430, 0xffffd87bffffdd8e}, + {0x9a30a431, 0xffffd87bffffdd8f}, + {0x9a30a432, 0xffffd87bffffdd90}, + {0x9a30a433, 0xffffd87bffffdd91}, + {0x9a30a434, 0xffffd87bffffdd92}, + {0x9a30a435, 0xffffd87bffffdd93}, + {0x9a30a436, 0xffffd87bffffdd94}, + {0x9a30a437, 0xffffd87bffffdd95}, + {0x9a30a438, 0xffffd87bffffdd96}, + {0x9a30a439, 0xffffd87bffffdd97}, + {0x9a30a530, 0xffffd87bffffdd98}, + {0x9a30a531, 0xffffd87bffffdd99}, + {0x9a30a532, 0xffffd87bffffdd9a}, + {0x9a30a533, 0xffffd87bffffdd9b}, + {0x9a30a534, 0xffffd87bffffdd9c}, + {0x9a30a535, 0xffffd87bffffdd9d}, + {0x9a30a536, 0xffffd87bffffdd9e}, + {0x9a30a537, 0xffffd87bffffdd9f}, + {0x9a30a538, 0xffffd87bffffdda0}, + {0x9a30a539, 0xffffd87bffffdda1}, + {0x9a30a630, 0xffffd87bffffdda2}, + {0x9a30a631, 0xffffd87bffffdda3}, + {0x9a30a632, 0xffffd87bffffdda4}, + {0x9a30a633, 0xffffd87bffffdda5}, + {0x9a30a634, 0xffffd87bffffdda6}, + {0x9a30a635, 0xffffd87bffffdda7}, + {0x9a30a636, 0xffffd87bffffdda8}, + {0x9a30a637, 0xffffd87bffffdda9}, + {0x9a30a638, 0xffffd87bffffddaa}, + {0x9a30a639, 0xffffd87bffffddab}, + {0x9a30a730, 0xffffd87bffffddac}, + {0x9a30a731, 0xffffd87bffffddad}, + {0x9a30a732, 0xffffd87bffffddae}, + {0x9a30a733, 0xffffd87bffffddaf}, + {0x9a30a734, 0xffffd87bffffddb0}, + {0x9a30a735, 0xffffd87bffffddb1}, + {0x9a30a736, 0xffffd87bffffddb2}, + {0x9a30a737, 0xffffd87bffffddb3}, + {0x9a30a738, 0xffffd87bffffddb4}, + {0x9a30a739, 0xffffd87bffffddb5}, + {0x9a30a830, 0xffffd87bffffddb6}, + {0x9a30a831, 0xffffd87bffffddb7}, + {0x9a30a832, 0xffffd87bffffddb8}, + {0x9a30a833, 0xffffd87bffffddb9}, + {0x9a30a834, 0xffffd87bffffddba}, + {0x9a30a835, 0xffffd87bffffddbb}, + {0x9a30a836, 0xffffd87bffffddbc}, + {0x9a30a837, 0xffffd87bffffddbd}, + {0x9a30a838, 0xffffd87bffffddbe}, + {0x9a30a839, 0xffffd87bffffddbf}, + {0x9a30a930, 0xffffd87bffffddc0}, + {0x9a30a931, 0xffffd87bffffddc1}, + {0x9a30a932, 0xffffd87bffffddc2}, + {0x9a30a933, 0xffffd87bffffddc3}, + {0x9a30a934, 0xffffd87bffffddc4}, + {0x9a30a935, 0xffffd87bffffddc5}, + {0x9a30a936, 0xffffd87bffffddc6}, + {0x9a30a937, 0xffffd87bffffddc7}, + {0x9a30a938, 0xffffd87bffffddc8}, + {0x9a30a939, 0xffffd87bffffddc9}, + {0x9a30aa30, 0xffffd87bffffddca}, + {0x9a30aa31, 0xffffd87bffffddcb}, + {0x9a30aa32, 0xffffd87bffffddcc}, + {0x9a30aa33, 0xffffd87bffffddcd}, + {0x9a30aa34, 0xffffd87bffffddce}, + {0x9a30aa35, 0xffffd87bffffddcf}, + {0x9a30aa36, 0xffffd87bffffddd0}, + {0x9a30aa37, 0xffffd87bffffddd1}, + {0x9a30aa38, 0xffffd87bffffddd2}, + {0x9a30aa39, 0xffffd87bffffddd3}, + {0x9a30ab30, 0xffffd87bffffddd4}, + {0x9a30ab31, 0xffffd87bffffddd5}, + {0x9a30ab32, 0xffffd87bffffddd6}, + {0x9a30ab33, 0xffffd87bffffddd7}, + {0x9a30ab34, 0xffffd87bffffddd8}, + {0x9a30ab35, 0xffffd87bffffddd9}, + {0x9a30ab36, 0xffffd87bffffddda}, + {0x9a30ab37, 0xffffd87bffffdddb}, + {0x9a30ab38, 0xffffd87bffffdddc}, + {0x9a30ab39, 0xffffd87bffffdddd}, + {0x9a30ac30, 0xffffd87bffffddde}, + {0x9a30ac31, 0xffffd87bffffdddf}, + {0x9a30ac32, 0xffffd87bffffdde0}, + {0x9a30ac33, 0xffffd87bffffdde1}, + {0x9a30ac34, 0xffffd87bffffdde2}, + {0x9a30ac35, 0xffffd87bffffdde3}, + {0x9a30ac36, 0xffffd87bffffdde4}, + {0x9a30ac37, 0xffffd87bffffdde5}, + {0x9a30ac38, 0xffffd87bffffdde6}, + {0x9a30ac39, 0xffffd87bffffdde7}, + {0x9a30ad30, 0xffffd87bffffdde8}, + {0x9a30ad31, 0xffffd87bffffdde9}, + {0x9a30ad32, 0xffffd87bffffddea}, + {0x9a30ad33, 0xffffd87bffffddeb}, + {0x9a30ad34, 0xffffd87bffffddec}, + {0x9a30ad35, 0xffffd87bffffdded}, + {0x9a30ad36, 0xffffd87bffffddee}, + {0x9a30ad37, 0xffffd87bffffddef}, + {0x9a30ad38, 0xffffd87bffffddf0}, + {0x9a30ad39, 0xffffd87bffffddf1}, + {0x9a30ae30, 0xffffd87bffffddf2}, + {0x9a30ae31, 0xffffd87bffffddf3}, + {0x9a30ae32, 0xffffd87bffffddf4}, + {0x9a30ae33, 0xffffd87bffffddf5}, + {0x9a30ae34, 0xffffd87bffffddf6}, + {0x9a30ae35, 0xffffd87bffffddf7}, + {0x9a30ae36, 0xffffd87bffffddf8}, + {0x9a30ae37, 0xffffd87bffffddf9}, + {0x9a30ae38, 0xffffd87bffffddfa}, + {0x9a30ae39, 0xffffd87bffffddfb}, + {0x9a30af30, 0xffffd87bffffddfc}, + {0x9a30af31, 0xffffd87bffffddfd}, + {0x9a30af32, 0xffffd87bffffddfe}, + {0x9a30af33, 0xffffd87bffffddff}, + {0x9a30af34, 0xffffd87bffffde00}, + {0x9a30af35, 0xffffd87bffffde01}, + {0x9a30af36, 0xffffd87bffffde02}, + {0x9a30af37, 0xffffd87bffffde03}, + {0x9a30af38, 0xffffd87bffffde04}, + {0x9a30af39, 0xffffd87bffffde05}, + {0x9a30b030, 0xffffd87bffffde06}, + {0x9a30b031, 0xffffd87bffffde07}, + {0x9a30b032, 0xffffd87bffffde08}, + {0x9a30b033, 0xffffd87bffffde09}, + {0x9a30b034, 0xffffd87bffffde0a}, + {0x9a30b035, 0xffffd87bffffde0b}, + {0x9a30b036, 0xffffd87bffffde0c}, + {0x9a30b037, 0xffffd87bffffde0d}, + {0x9a30b038, 0xffffd87bffffde0e}, + {0x9a30b039, 0xffffd87bffffde0f}, + {0x9a30b130, 0xffffd87bffffde10}, + {0x9a30b131, 0xffffd87bffffde11}, + {0x9a30b132, 0xffffd87bffffde12}, + {0x9a30b133, 0xffffd87bffffde13}, + {0x9a30b134, 0xffffd87bffffde14}, + {0x9a30b135, 0xffffd87bffffde15}, + {0x9a30b136, 0xffffd87bffffde16}, + {0x9a30b137, 0xffffd87bffffde17}, + {0x9a30b138, 0xffffd87bffffde18}, + {0x9a30b139, 0xffffd87bffffde19}, + {0x9a30b230, 0xffffd87bffffde1a}, + {0x9a30b231, 0xffffd87bffffde1b}, + {0x9a30b232, 0xffffd87bffffde1c}, + {0x9a30b233, 0xffffd87bffffde1d}, + {0x9a30b234, 0xffffd87bffffde1e}, + {0x9a30b235, 0xffffd87bffffde1f}, + {0x9a30b236, 0xffffd87bffffde20}, + {0x9a30b237, 0xffffd87bffffde21}, + {0x9a30b238, 0xffffd87bffffde22}, + {0x9a30b239, 0xffffd87bffffde23}, + {0x9a30b330, 0xffffd87bffffde24}, + {0x9a30b331, 0xffffd87bffffde25}, + {0x9a30b332, 0xffffd87bffffde26}, + {0x9a30b333, 0xffffd87bffffde27}, + {0x9a30b334, 0xffffd87bffffde28}, + {0x9a30b335, 0xffffd87bffffde29}, + {0x9a30b336, 0xffffd87bffffde2a}, + {0x9a30b337, 0xffffd87bffffde2b}, + {0x9a30b338, 0xffffd87bffffde2c}, + {0x9a30b339, 0xffffd87bffffde2d}, + {0x9a30b430, 0xffffd87bffffde2e}, + {0x9a30b431, 0xffffd87bffffde2f}, + {0x9a30b432, 0xffffd87bffffde30}, + {0x9a30b433, 0xffffd87bffffde31}, + {0x9a30b434, 0xffffd87bffffde32}, + {0x9a30b435, 0xffffd87bffffde33}, + {0x9a30b436, 0xffffd87bffffde34}, + {0x9a30b437, 0xffffd87bffffde35}, + {0x9a30b438, 0xffffd87bffffde36}, + {0x9a30b439, 0xffffd87bffffde37}, + {0x9a30b530, 0xffffd87bffffde38}, + {0x9a30b531, 0xffffd87bffffde39}, + {0x9a30b532, 0xffffd87bffffde3a}, + {0x9a30b533, 0xffffd87bffffde3b}, + {0x9a30b534, 0xffffd87bffffde3c}, + {0x9a30b535, 0xffffd87bffffde3d}, + {0x9a30b536, 0xffffd87bffffde3e}, + {0x9a30b537, 0xffffd87bffffde3f}, + {0x9a30b538, 0xffffd87bffffde40}, + {0x9a30b539, 0xffffd87bffffde41}, + {0x9a30b630, 0xffffd87bffffde42}, + {0x9a30b631, 0xffffd87bffffde43}, + {0x9a30b632, 0xffffd87bffffde44}, + {0x9a30b633, 0xffffd87bffffde45}, + {0x9a30b634, 0xffffd87bffffde46}, + {0x9a30b635, 0xffffd87bffffde47}, + {0x9a30b636, 0xffffd87bffffde48}, + {0x9a30b637, 0xffffd87bffffde49}, + {0x9a30b638, 0xffffd87bffffde4a}, + {0x9a30b639, 0xffffd87bffffde4b}, + {0x9a30b730, 0xffffd87bffffde4c}, + {0x9a30b731, 0xffffd87bffffde4d}, + {0x9a30b732, 0xffffd87bffffde4e}, + {0x9a30b733, 0xffffd87bffffde4f}, + {0x9a30b734, 0xffffd87bffffde50}, + {0x9a30b735, 0xffffd87bffffde51}, + {0x9a30b736, 0xffffd87bffffde52}, + {0x9a30b737, 0xffffd87bffffde53}, + {0x9a30b738, 0xffffd87bffffde54}, + {0x9a30b739, 0xffffd87bffffde55}, + {0x9a30b830, 0xffffd87bffffde56}, + {0x9a30b831, 0xffffd87bffffde57}, + {0x9a30b832, 0xffffd87bffffde58}, + {0x9a30b833, 0xffffd87bffffde59}, + {0x9a30b834, 0xffffd87bffffde5a}, + {0x9a30b835, 0xffffd87bffffde5b}, + {0x9a30b836, 0xffffd87bffffde5c}, + {0x9a30b837, 0xffffd87bffffde5d}, + {0x9a30b838, 0xffffd87bffffde5e}, + {0x9a30b839, 0xffffd87bffffde5f}, + {0x9a30b930, 0xffffd87bffffde60}, + {0x9a30b931, 0xffffd87bffffde61}, + {0x9a30b932, 0xffffd87bffffde62}, + {0x9a30b933, 0xffffd87bffffde63}, + {0x9a30b934, 0xffffd87bffffde64}, + {0x9a30b935, 0xffffd87bffffde65}, + {0x9a30b936, 0xffffd87bffffde66}, + {0x9a30b937, 0xffffd87bffffde67}, + {0x9a30b938, 0xffffd87bffffde68}, + {0x9a30b939, 0xffffd87bffffde69}, + {0x9a30ba30, 0xffffd87bffffde6a}, + {0x9a30ba31, 0xffffd87bffffde6b}, + {0x9a30ba32, 0xffffd87bffffde6c}, + {0x9a30ba33, 0xffffd87bffffde6d}, + {0x9a30ba34, 0xffffd87bffffde6e}, + {0x9a30ba35, 0xffffd87bffffde6f}, + {0x9a30ba36, 0xffffd87bffffde70}, + {0x9a30ba37, 0xffffd87bffffde71}, + {0x9a30ba38, 0xffffd87bffffde72}, + {0x9a30ba39, 0xffffd87bffffde73}, + {0x9a30bb30, 0xffffd87bffffde74}, + {0x9a30bb31, 0xffffd87bffffde75}, + {0x9a30bb32, 0xffffd87bffffde76}, + {0x9a30bb33, 0xffffd87bffffde77}, + {0x9a30bb34, 0xffffd87bffffde78}, + {0x9a30bb35, 0xffffd87bffffde79}, + {0x9a30bb36, 0xffffd87bffffde7a}, + {0x9a30bb37, 0xffffd87bffffde7b}, + {0x9a30bb38, 0xffffd87bffffde7c}, + {0x9a30bb39, 0xffffd87bffffde7d}, + {0x9a30bc30, 0xffffd87bffffde7e}, + {0x9a30bc31, 0xffffd87bffffde7f}, + {0x9a30bc32, 0xffffd87bffffde80}, + {0x9a30bc33, 0xffffd87bffffde81}, + {0x9a30bc34, 0xffffd87bffffde82}, + {0x9a30bc35, 0xffffd87bffffde83}, + {0x9a30bc36, 0xffffd87bffffde84}, + {0x9a30bc37, 0xffffd87bffffde85}, + {0x9a30bc38, 0xffffd87bffffde86}, + {0x9a30bc39, 0xffffd87bffffde87}, + {0x9a30bd30, 0xffffd87bffffde88}, + {0x9a30bd31, 0xffffd87bffffde89}, + {0x9a30bd32, 0xffffd87bffffde8a}, + {0x9a30bd33, 0xffffd87bffffde8b}, + {0x9a30bd34, 0xffffd87bffffde8c}, + {0x9a30bd35, 0xffffd87bffffde8d}, + {0x9a30bd36, 0xffffd87bffffde8e}, + {0x9a30bd37, 0xffffd87bffffde8f}, + {0x9a30bd38, 0xffffd87bffffde90}, + {0x9a30bd39, 0xffffd87bffffde91}, + {0x9a30be30, 0xffffd87bffffde92}, + {0x9a30be31, 0xffffd87bffffde93}, + {0x9a30be32, 0xffffd87bffffde94}, + {0x9a30be33, 0xffffd87bffffde95}, + {0x9a30be34, 0xffffd87bffffde96}, + {0x9a30be35, 0xffffd87bffffde97}, + {0x9a30be36, 0xffffd87bffffde98}, + {0x9a30be37, 0xffffd87bffffde99}, + {0x9a30be38, 0xffffd87bffffde9a}, + {0x9a30be39, 0xffffd87bffffde9b}, + {0x9a30bf30, 0xffffd87bffffde9c}, + {0x9a30bf31, 0xffffd87bffffde9d}, + {0x9a30bf32, 0xffffd87bffffde9e}, + {0x9a30bf33, 0xffffd87bffffde9f}, + {0x9a30bf34, 0xffffd87bffffdea0}, + {0x9a30bf35, 0xffffd87bffffdea1}, + {0x9a30bf36, 0xffffd87bffffdea2}, + {0x9a30bf37, 0xffffd87bffffdea3}, + {0x9a30bf38, 0xffffd87bffffdea4}, + {0x9a30bf39, 0xffffd87bffffdea5}, + {0x9a30c030, 0xffffd87bffffdea6}, + {0x9a30c031, 0xffffd87bffffdea7}, + {0x9a30c032, 0xffffd87bffffdea8}, + {0x9a30c033, 0xffffd87bffffdea9}, + {0x9a30c034, 0xffffd87bffffdeaa}, + {0x9a30c035, 0xffffd87bffffdeab}, + {0x9a30c036, 0xffffd87bffffdeac}, + {0x9a30c037, 0xffffd87bffffdead}, + {0x9a30c038, 0xffffd87bffffdeae}, + {0x9a30c039, 0xffffd87bffffdeaf}, + {0x9a30c130, 0xffffd87bffffdeb0}, + {0x9a30c131, 0xffffd87bffffdeb1}, + {0x9a30c132, 0xffffd87bffffdeb2}, + {0x9a30c133, 0xffffd87bffffdeb3}, + {0x9a30c134, 0xffffd87bffffdeb4}, + {0x9a30c135, 0xffffd87bffffdeb5}, + {0x9a30c136, 0xffffd87bffffdeb6}, + {0x9a30c137, 0xffffd87bffffdeb7}, + {0x9a30c138, 0xffffd87bffffdeb8}, + {0x9a30c139, 0xffffd87bffffdeb9}, + {0x9a30c230, 0xffffd87bffffdeba}, + {0x9a30c231, 0xffffd87bffffdebb}, + {0x9a30c232, 0xffffd87bffffdebc}, + {0x9a30c233, 0xffffd87bffffdebd}, + {0x9a30c234, 0xffffd87bffffdebe}, + {0x9a30c235, 0xffffd87bffffdebf}, + {0x9a30c236, 0xffffd87bffffdec0}, + {0x9a30c237, 0xffffd87bffffdec1}, + {0x9a30c238, 0xffffd87bffffdec2}, + {0x9a30c239, 0xffffd87bffffdec3}, + {0x9a30c330, 0xffffd87bffffdec4}, + {0x9a30c331, 0xffffd87bffffdec5}, + {0x9a30c332, 0xffffd87bffffdec6}, + {0x9a30c333, 0xffffd87bffffdec7}, + {0x9a30c334, 0xffffd87bffffdec8}, + {0x9a30c335, 0xffffd87bffffdec9}, + {0x9a30c336, 0xffffd87bffffdeca}, + {0x9a30c337, 0xffffd87bffffdecb}, + {0x9a30c338, 0xffffd87bffffdecc}, + {0x9a30c339, 0xffffd87bffffdecd}, + {0x9a30c430, 0xffffd87bffffdece}, + {0x9a30c431, 0xffffd87bffffdecf}, + {0x9a30c432, 0xffffd87bffffded0}, + {0x9a30c433, 0xffffd87bffffded1}, + {0x9a30c434, 0xffffd87bffffded2}, + {0x9a30c435, 0xffffd87bffffded3}, + {0x9a30c436, 0xffffd87bffffded4}, + {0x9a30c437, 0xffffd87bffffded5}, + {0x9a30c438, 0xffffd87bffffded6}, + {0x9a30c439, 0xffffd87bffffded7}, + {0x9a30c530, 0xffffd87bffffded8}, + {0x9a30c531, 0xffffd87bffffded9}, + {0x9a30c532, 0xffffd87bffffdeda}, + {0x9a30c533, 0xffffd87bffffdedb}, + {0x9a30c534, 0xffffd87bffffdedc}, + {0x9a30c535, 0xffffd87bffffdedd}, + {0x9a30c536, 0xffffd87bffffdede}, + {0x9a30c537, 0xffffd87bffffdedf}, + {0x9a30c538, 0xffffd87bffffdee0}, + {0x9a30c539, 0xffffd87bffffdee1}, + {0x9a30c630, 0xffffd87bffffdee2}, + {0x9a30c631, 0xffffd87bffffdee3}, + {0x9a30c632, 0xffffd87bffffdee4}, + {0x9a30c633, 0xffffd87bffffdee5}, + {0x9a30c634, 0xffffd87bffffdee6}, + {0x9a30c635, 0xffffd87bffffdee7}, + {0x9a30c636, 0xffffd87bffffdee8}, + {0x9a30c637, 0xffffd87bffffdee9}, + {0x9a30c638, 0xffffd87bffffdeea}, + {0x9a30c639, 0xffffd87bffffdeeb}, + {0x9a30c730, 0xffffd87bffffdeec}, + {0x9a30c731, 0xffffd87bffffdeed}, + {0x9a30c732, 0xffffd87bffffdeee}, + {0x9a30c733, 0xffffd87bffffdeef}, + {0x9a30c734, 0xffffd87bffffdef0}, + {0x9a30c735, 0xffffd87bffffdef1}, + {0x9a30c736, 0xffffd87bffffdef2}, + {0x9a30c737, 0xffffd87bffffdef3}, + {0x9a30c738, 0xffffd87bffffdef4}, + {0x9a30c739, 0xffffd87bffffdef5}, + {0x9a30c830, 0xffffd87bffffdef6}, + {0x9a30c831, 0xffffd87bffffdef7}, + {0x9a30c832, 0xffffd87bffffdef8}, + {0x9a30c833, 0xffffd87bffffdef9}, + {0x9a30c834, 0xffffd87bffffdefa}, + {0x9a30c835, 0xffffd87bffffdefb}, + {0x9a30c836, 0xffffd87bffffdefc}, + {0x9a30c837, 0xffffd87bffffdefd}, + {0x9a30c838, 0xffffd87bffffdefe}, + {0x9a30c839, 0xffffd87bffffdeff}, + {0x9a30c930, 0xffffd87bffffdf00}, + {0x9a30c931, 0xffffd87bffffdf01}, + {0x9a30c932, 0xffffd87bffffdf02}, + {0x9a30c933, 0xffffd87bffffdf03}, + {0x9a30c934, 0xffffd87bffffdf04}, + {0x9a30c935, 0xffffd87bffffdf05}, + {0x9a30c936, 0xffffd87bffffdf06}, + {0x9a30c937, 0xffffd87bffffdf07}, + {0x9a30c938, 0xffffd87bffffdf08}, + {0x9a30c939, 0xffffd87bffffdf09}, + {0x9a30ca30, 0xffffd87bffffdf0a}, + {0x9a30ca31, 0xffffd87bffffdf0b}, + {0x9a30ca32, 0xffffd87bffffdf0c}, + {0x9a30ca33, 0xffffd87bffffdf0d}, + {0x9a30ca34, 0xffffd87bffffdf0e}, + {0x9a30ca35, 0xffffd87bffffdf0f}, + {0x9a30ca36, 0xffffd87bffffdf10}, + {0x9a30ca37, 0xffffd87bffffdf11}, + {0x9a30ca38, 0xffffd87bffffdf12}, + {0x9a30ca39, 0xffffd87bffffdf13}, + {0x9a30cb30, 0xffffd87bffffdf14}, + {0x9a30cb31, 0xffffd87bffffdf15}, + {0x9a30cb32, 0xffffd87bffffdf16}, + {0x9a30cb33, 0xffffd87bffffdf17}, + {0x9a30cb34, 0xffffd87bffffdf18}, + {0x9a30cb35, 0xffffd87bffffdf19}, + {0x9a30cb36, 0xffffd87bffffdf1a}, + {0x9a30cb37, 0xffffd87bffffdf1b}, + {0x9a30cb38, 0xffffd87bffffdf1c}, + {0x9a30cb39, 0xffffd87bffffdf1d}, + {0x9a30cc30, 0xffffd87bffffdf1e}, + {0x9a30cc31, 0xffffd87bffffdf1f}, + {0x9a30cc32, 0xffffd87bffffdf20}, + {0x9a30cc33, 0xffffd87bffffdf21}, + {0x9a30cc34, 0xffffd87bffffdf22}, + {0x9a30cc35, 0xffffd87bffffdf23}, + {0x9a30cc36, 0xffffd87bffffdf24}, + {0x9a30cc37, 0xffffd87bffffdf25}, + {0x9a30cc38, 0xffffd87bffffdf26}, + {0x9a30cc39, 0xffffd87bffffdf27}, + {0x9a30cd30, 0xffffd87bffffdf28}, + {0x9a30cd31, 0xffffd87bffffdf29}, + {0x9a30cd32, 0xffffd87bffffdf2a}, + {0x9a30cd33, 0xffffd87bffffdf2b}, + {0x9a30cd34, 0xffffd87bffffdf2c}, + {0x9a30cd35, 0xffffd87bffffdf2d}, + {0x9a30cd36, 0xffffd87bffffdf2e}, + {0x9a30cd37, 0xffffd87bffffdf2f}, + {0x9a30cd38, 0xffffd87bffffdf30}, + {0x9a30cd39, 0xffffd87bffffdf31}, + {0x9a30ce30, 0xffffd87bffffdf32}, + {0x9a30ce31, 0xffffd87bffffdf33}, + {0x9a30ce32, 0xffffd87bffffdf34}, + {0x9a30ce33, 0xffffd87bffffdf35}, + {0x9a30ce34, 0xffffd87bffffdf36}, + {0x9a30ce35, 0xffffd87bffffdf37}, + {0x9a30ce36, 0xffffd87bffffdf38}, + {0x9a30ce37, 0xffffd87bffffdf39}, + {0x9a30ce38, 0xffffd87bffffdf3a}, + {0x9a30ce39, 0xffffd87bffffdf3b}, + {0x9a30cf30, 0xffffd87bffffdf3c}, + {0x9a30cf31, 0xffffd87bffffdf3d}, + {0x9a30cf32, 0xffffd87bffffdf3e}, + {0x9a30cf33, 0xffffd87bffffdf3f}, + {0x9a30cf34, 0xffffd87bffffdf40}, + {0x9a30cf35, 0xffffd87bffffdf41}, + {0x9a30cf36, 0xffffd87bffffdf42}, + {0x9a30cf37, 0xffffd87bffffdf43}, + {0x9a30cf38, 0xffffd87bffffdf44}, + {0x9a30cf39, 0xffffd87bffffdf45}, + {0x9a30d030, 0xffffd87bffffdf46}, + {0x9a30d031, 0xffffd87bffffdf47}, + {0x9a30d032, 0xffffd87bffffdf48}, + {0x9a30d033, 0xffffd87bffffdf49}, + {0x9a30d034, 0xffffd87bffffdf4a}, + {0x9a30d035, 0xffffd87bffffdf4b}, + {0x9a30d036, 0xffffd87bffffdf4c}, + {0x9a30d037, 0xffffd87bffffdf4d}, + {0x9a30d038, 0xffffd87bffffdf4e}, + {0x9a30d039, 0xffffd87bffffdf4f}, + {0x9a30d130, 0xffffd87bffffdf50}, + {0x9a30d131, 0xffffd87bffffdf51}, + {0x9a30d132, 0xffffd87bffffdf52}, + {0x9a30d133, 0xffffd87bffffdf53}, + {0x9a30d134, 0xffffd87bffffdf54}, + {0x9a30d135, 0xffffd87bffffdf55}, + {0x9a30d136, 0xffffd87bffffdf56}, + {0x9a30d137, 0xffffd87bffffdf57}, + {0x9a30d138, 0xffffd87bffffdf58}, + {0x9a30d139, 0xffffd87bffffdf59}, + {0x9a30d230, 0xffffd87bffffdf5a}, + {0x9a30d231, 0xffffd87bffffdf5b}, + {0x9a30d232, 0xffffd87bffffdf5c}, + {0x9a30d233, 0xffffd87bffffdf5d}, + {0x9a30d234, 0xffffd87bffffdf5e}, + {0x9a30d235, 0xffffd87bffffdf5f}, + {0x9a30d236, 0xffffd87bffffdf60}, + {0x9a30d237, 0xffffd87bffffdf61}, + {0x9a30d238, 0xffffd87bffffdf62}, + {0x9a30d239, 0xffffd87bffffdf63}, + {0x9a30d330, 0xffffd87bffffdf64}, + {0x9a30d331, 0xffffd87bffffdf65}, + {0x9a30d332, 0xffffd87bffffdf66}, + {0x9a30d333, 0xffffd87bffffdf67}, + {0x9a30d334, 0xffffd87bffffdf68}, + {0x9a30d335, 0xffffd87bffffdf69}, + {0x9a30d336, 0xffffd87bffffdf6a}, + {0x9a30d337, 0xffffd87bffffdf6b}, + {0x9a30d338, 0xffffd87bffffdf6c}, + {0x9a30d339, 0xffffd87bffffdf6d}, + {0x9a30d430, 0xffffd87bffffdf6e}, + {0x9a30d431, 0xffffd87bffffdf6f}, + {0x9a30d432, 0xffffd87bffffdf70}, + {0x9a30d433, 0xffffd87bffffdf71}, + {0x9a30d434, 0xffffd87bffffdf72}, + {0x9a30d435, 0xffffd87bffffdf73}, + {0x9a30d436, 0xffffd87bffffdf74}, + {0x9a30d437, 0xffffd87bffffdf75}, + {0x9a30d438, 0xffffd87bffffdf76}, + {0x9a30d439, 0xffffd87bffffdf77}, + {0x9a30d530, 0xffffd87bffffdf78}, + {0x9a30d531, 0xffffd87bffffdf79}, + {0x9a30d532, 0xffffd87bffffdf7a}, + {0x9a30d533, 0xffffd87bffffdf7b}, + {0x9a30d534, 0xffffd87bffffdf7c}, + {0x9a30d535, 0xffffd87bffffdf7d}, + {0x9a30d536, 0xffffd87bffffdf7e}, + {0x9a30d537, 0xffffd87bffffdf7f}, + {0x9a30d538, 0xffffd87bffffdf80}, + {0x9a30d539, 0xffffd87bffffdf81}, + {0x9a30d630, 0xffffd87bffffdf82}, + {0x9a30d631, 0xffffd87bffffdf83}, + {0x9a30d632, 0xffffd87bffffdf84}, + {0x9a30d633, 0xffffd87bffffdf85}, + {0x9a30d634, 0xffffd87bffffdf86}, + {0x9a30d635, 0xffffd87bffffdf87}, + {0x9a30d636, 0xffffd87bffffdf88}, + {0x9a30d637, 0xffffd87bffffdf89}, + {0x9a30d638, 0xffffd87bffffdf8a}, + {0x9a30d639, 0xffffd87bffffdf8b}, + {0x9a30d730, 0xffffd87bffffdf8c}, + {0x9a30d731, 0xffffd87bffffdf8d}, + {0x9a30d732, 0xffffd87bffffdf8e}, + {0x9a30d733, 0xffffd87bffffdf8f}, + {0x9a30d734, 0xffffd87bffffdf90}, + {0x9a30d735, 0xffffd87bffffdf91}, + {0x9a30d736, 0xffffd87bffffdf92}, + {0x9a30d737, 0xffffd87bffffdf93}, + {0x9a30d738, 0xffffd87bffffdf94}, + {0x9a30d739, 0xffffd87bffffdf95}, + {0x9a30d830, 0xffffd87bffffdf96}, + {0x9a30d831, 0xffffd87bffffdf97}, + {0x9a30d832, 0xffffd87bffffdf98}, + {0x9a30d833, 0xffffd87bffffdf99}, + {0x9a30d834, 0xffffd87bffffdf9a}, + {0x9a30d835, 0xffffd87bffffdf9b}, + {0x9a30d836, 0xffffd87bffffdf9c}, + {0x9a30d837, 0xffffd87bffffdf9d}, + {0x9a30d838, 0xffffd87bffffdf9e}, + {0x9a30d839, 0xffffd87bffffdf9f}, + {0x9a30d930, 0xffffd87bffffdfa0}, + {0x9a30d931, 0xffffd87bffffdfa1}, + {0x9a30d932, 0xffffd87bffffdfa2}, + {0x9a30d933, 0xffffd87bffffdfa3}, + {0x9a30d934, 0xffffd87bffffdfa4}, + {0x9a30d935, 0xffffd87bffffdfa5}, + {0x9a30d936, 0xffffd87bffffdfa6}, + {0x9a30d937, 0xffffd87bffffdfa7}, + {0x9a30d938, 0xffffd87bffffdfa8}, + {0x9a30d939, 0xffffd87bffffdfa9}, + {0x9a30da30, 0xffffd87bffffdfaa}, + {0x9a30da31, 0xffffd87bffffdfab}, + {0x9a30da32, 0xffffd87bffffdfac}, + {0x9a30da33, 0xffffd87bffffdfad}, + {0x9a30da34, 0xffffd87bffffdfae}, + {0x9a30da35, 0xffffd87bffffdfaf}, + {0x9a30da36, 0xffffd87bffffdfb0}, + {0x9a30da37, 0xffffd87bffffdfb1}, + {0x9a30da38, 0xffffd87bffffdfb2}, + {0x9a30da39, 0xffffd87bffffdfb3}, + {0x9a30db30, 0xffffd87bffffdfb4}, + {0x9a30db31, 0xffffd87bffffdfb5}, + {0x9a30db32, 0xffffd87bffffdfb6}, + {0x9a30db33, 0xffffd87bffffdfb7}, + {0x9a30db34, 0xffffd87bffffdfb8}, + {0x9a30db35, 0xffffd87bffffdfb9}, + {0x9a30db36, 0xffffd87bffffdfba}, + {0x9a30db37, 0xffffd87bffffdfbb}, + {0x9a30db38, 0xffffd87bffffdfbc}, + {0x9a30db39, 0xffffd87bffffdfbd}, + {0x9a30dc30, 0xffffd87bffffdfbe}, + {0x9a30dc31, 0xffffd87bffffdfbf}, + {0x9a30dc32, 0xffffd87bffffdfc0}, + {0x9a30dc33, 0xffffd87bffffdfc1}, + {0x9a30dc34, 0xffffd87bffffdfc2}, + {0x9a30dc35, 0xffffd87bffffdfc3}, + {0x9a30dc36, 0xffffd87bffffdfc4}, + {0x9a30dc37, 0xffffd87bffffdfc5}, + {0x9a30dc38, 0xffffd87bffffdfc6}, + {0x9a30dc39, 0xffffd87bffffdfc7}, + {0x9a30dd30, 0xffffd87bffffdfc8}, + {0x9a30dd31, 0xffffd87bffffdfc9}, + {0x9a30dd32, 0xffffd87bffffdfca}, + {0x9a30dd33, 0xffffd87bffffdfcb}, + {0x9a30dd34, 0xffffd87bffffdfcc}, + {0x9a30dd35, 0xffffd87bffffdfcd}, + {0x9a30dd36, 0xffffd87bffffdfce}, + {0x9a30dd37, 0xffffd87bffffdfcf}, + {0x9a30dd38, 0xffffd87bffffdfd0}, + {0x9a30dd39, 0xffffd87bffffdfd1}, + {0x9a30de30, 0xffffd87bffffdfd2}, + {0x9a30de31, 0xffffd87bffffdfd3}, + {0x9a30de32, 0xffffd87bffffdfd4}, + {0x9a30de33, 0xffffd87bffffdfd5}, + {0x9a30de34, 0xffffd87bffffdfd6}, + {0x9a30de35, 0xffffd87bffffdfd7}, + {0x9a30de36, 0xffffd87bffffdfd8}, + {0x9a30de37, 0xffffd87bffffdfd9}, + {0x9a30de38, 0xffffd87bffffdfda}, + {0x9a30de39, 0xffffd87bffffdfdb}, + {0x9a30df30, 0xffffd87bffffdfdc}, + {0x9a30df31, 0xffffd87bffffdfdd}, + {0x9a30df32, 0xffffd87bffffdfde}, + {0x9a30df33, 0xffffd87bffffdfdf}, + {0x9a30df34, 0xffffd87bffffdfe0}, + {0x9a30df35, 0xffffd87bffffdfe1}, + {0x9a30df36, 0xffffd87bffffdfe2}, + {0x9a30df37, 0xffffd87bffffdfe3}, + {0x9a30df38, 0xffffd87bffffdfe4}, + {0x9a30df39, 0xffffd87bffffdfe5}, + {0x9a30e030, 0xffffd87bffffdfe6}, + {0x9a30e031, 0xffffd87bffffdfe7}, + {0x9a30e032, 0xffffd87bffffdfe8}, + {0x9a30e033, 0xffffd87bffffdfe9}, + {0x9a30e034, 0xffffd87bffffdfea}, + {0x9a30e035, 0xffffd87bffffdfeb}, + {0x9a30e036, 0xffffd87bffffdfec}, + {0x9a30e037, 0xffffd87bffffdfed}, + {0x9a30e038, 0xffffd87bffffdfee}, + {0x9a30e039, 0xffffd87bffffdfef}, + {0x9a30e130, 0xffffd87bffffdff0}, + {0x9a30e131, 0xffffd87bffffdff1}, + {0x9a30e132, 0xffffd87bffffdff2}, + {0x9a30e133, 0xffffd87bffffdff3}, + {0x9a30e134, 0xffffd87bffffdff4}, + {0x9a30e135, 0xffffd87bffffdff5}, + {0x9a30e136, 0xffffd87bffffdff6}, + {0x9a30e137, 0xffffd87bffffdff7}, + {0x9a30e138, 0xffffd87bffffdff8}, + {0x9a30e139, 0xffffd87bffffdff9}, + {0x9a30e230, 0xffffd87bffffdffa}, + {0x9a30e231, 0xffffd87bffffdffb}, + {0x9a30e232, 0xffffd87bffffdffc}, + {0x9a30e233, 0xffffd87bffffdffd}, + {0x9a30e234, 0xffffd87bffffdffe}, + {0x9a30e235, 0xffffd87bffffdfff}, + {0x9a30e236, 0xffffd87cffffdc00}, + {0x9a30e237, 0xffffd87cffffdc01}, + {0x9a30e238, 0xffffd87cffffdc02}, + {0x9a30e239, 0xffffd87cffffdc03}, + {0x9a30e330, 0xffffd87cffffdc04}, + {0x9a30e331, 0xffffd87cffffdc05}, + {0x9a30e332, 0xffffd87cffffdc06}, + {0x9a30e333, 0xffffd87cffffdc07}, + {0x9a30e334, 0xffffd87cffffdc08}, + {0x9a30e335, 0xffffd87cffffdc09}, + {0x9a30e336, 0xffffd87cffffdc0a}, + {0x9a30e337, 0xffffd87cffffdc0b}, + {0x9a30e338, 0xffffd87cffffdc0c}, + {0x9a30e339, 0xffffd87cffffdc0d}, + {0x9a30e430, 0xffffd87cffffdc0e}, + {0x9a30e431, 0xffffd87cffffdc0f}, + {0x9a30e432, 0xffffd87cffffdc10}, + {0x9a30e433, 0xffffd87cffffdc11}, + {0x9a30e434, 0xffffd87cffffdc12}, + {0x9a30e435, 0xffffd87cffffdc13}, + {0x9a30e436, 0xffffd87cffffdc14}, + {0x9a30e437, 0xffffd87cffffdc15}, + {0x9a30e438, 0xffffd87cffffdc16}, + {0x9a30e439, 0xffffd87cffffdc17}, + {0x9a30e530, 0xffffd87cffffdc18}, + {0x9a30e531, 0xffffd87cffffdc19}, + {0x9a30e532, 0xffffd87cffffdc1a}, + {0x9a30e533, 0xffffd87cffffdc1b}, + {0x9a30e534, 0xffffd87cffffdc1c}, + {0x9a30e535, 0xffffd87cffffdc1d}, + {0x9a30e536, 0xffffd87cffffdc1e}, + {0x9a30e537, 0xffffd87cffffdc1f}, + {0x9a30e538, 0xffffd87cffffdc20}, + {0x9a30e539, 0xffffd87cffffdc21}, + {0x9a30e630, 0xffffd87cffffdc22}, + {0x9a30e631, 0xffffd87cffffdc23}, + {0x9a30e632, 0xffffd87cffffdc24}, + {0x9a30e633, 0xffffd87cffffdc25}, + {0x9a30e634, 0xffffd87cffffdc26}, + {0x9a30e635, 0xffffd87cffffdc27}, + {0x9a30e636, 0xffffd87cffffdc28}, + {0x9a30e637, 0xffffd87cffffdc29}, + {0x9a30e638, 0xffffd87cffffdc2a}, + {0x9a30e639, 0xffffd87cffffdc2b}, + {0x9a30e730, 0xffffd87cffffdc2c}, + {0x9a30e731, 0xffffd87cffffdc2d}, + {0x9a30e732, 0xffffd87cffffdc2e}, + {0x9a30e733, 0xffffd87cffffdc2f}, + {0x9a30e734, 0xffffd87cffffdc30}, + {0x9a30e735, 0xffffd87cffffdc31}, + {0x9a30e736, 0xffffd87cffffdc32}, + {0x9a30e737, 0xffffd87cffffdc33}, + {0x9a30e738, 0xffffd87cffffdc34}, + {0x9a30e739, 0xffffd87cffffdc35}, + {0x9a30e830, 0xffffd87cffffdc36}, + {0x9a30e831, 0xffffd87cffffdc37}, + {0x9a30e832, 0xffffd87cffffdc38}, + {0x9a30e833, 0xffffd87cffffdc39}, + {0x9a30e834, 0xffffd87cffffdc3a}, + {0x9a30e835, 0xffffd87cffffdc3b}, + {0x9a30e836, 0xffffd87cffffdc3c}, + {0x9a30e837, 0xffffd87cffffdc3d}, + {0x9a30e838, 0xffffd87cffffdc3e}, + {0x9a30e839, 0xffffd87cffffdc3f}, + {0x9a30e930, 0xffffd87cffffdc40}, + {0x9a30e931, 0xffffd87cffffdc41}, + {0x9a30e932, 0xffffd87cffffdc42}, + {0x9a30e933, 0xffffd87cffffdc43}, + {0x9a30e934, 0xffffd87cffffdc44}, + {0x9a30e935, 0xffffd87cffffdc45}, + {0x9a30e936, 0xffffd87cffffdc46}, + {0x9a30e937, 0xffffd87cffffdc47}, + {0x9a30e938, 0xffffd87cffffdc48}, + {0x9a30e939, 0xffffd87cffffdc49}, + {0x9a30ea30, 0xffffd87cffffdc4a}, + {0x9a30ea31, 0xffffd87cffffdc4b}, + {0x9a30ea32, 0xffffd87cffffdc4c}, + {0x9a30ea33, 0xffffd87cffffdc4d}, + {0x9a30ea34, 0xffffd87cffffdc4e}, + {0x9a30ea35, 0xffffd87cffffdc4f}, + {0x9a30ea36, 0xffffd87cffffdc50}, + {0x9a30ea37, 0xffffd87cffffdc51}, + {0x9a30ea38, 0xffffd87cffffdc52}, + {0x9a30ea39, 0xffffd87cffffdc53}, + {0x9a30eb30, 0xffffd87cffffdc54}, + {0x9a30eb31, 0xffffd87cffffdc55}, + {0x9a30eb32, 0xffffd87cffffdc56}, + {0x9a30eb33, 0xffffd87cffffdc57}, + {0x9a30eb34, 0xffffd87cffffdc58}, + {0x9a30eb35, 0xffffd87cffffdc59}, + {0x9a30eb36, 0xffffd87cffffdc5a}, + {0x9a30eb37, 0xffffd87cffffdc5b}, + {0x9a30eb38, 0xffffd87cffffdc5c}, + {0x9a30eb39, 0xffffd87cffffdc5d}, + {0x9a30ec30, 0xffffd87cffffdc5e}, + {0x9a30ec31, 0xffffd87cffffdc5f}, + {0x9a30ec32, 0xffffd87cffffdc60}, + {0x9a30ec33, 0xffffd87cffffdc61}, + {0x9a30ec34, 0xffffd87cffffdc62}, + {0x9a30ec35, 0xffffd87cffffdc63}, + {0x9a30ec36, 0xffffd87cffffdc64}, + {0x9a30ec37, 0xffffd87cffffdc65}, + {0x9a30ec38, 0xffffd87cffffdc66}, + {0x9a30ec39, 0xffffd87cffffdc67}, + {0x9a30ed30, 0xffffd87cffffdc68}, + {0x9a30ed31, 0xffffd87cffffdc69}, + {0x9a30ed32, 0xffffd87cffffdc6a}, + {0x9a30ed33, 0xffffd87cffffdc6b}, + {0x9a30ed34, 0xffffd87cffffdc6c}, + {0x9a30ed35, 0xffffd87cffffdc6d}, + {0x9a30ed36, 0xffffd87cffffdc6e}, + {0x9a30ed37, 0xffffd87cffffdc6f}, + {0x9a30ed38, 0xffffd87cffffdc70}, + {0x9a30ed39, 0xffffd87cffffdc71}, + {0x9a30ee30, 0xffffd87cffffdc72}, + {0x9a30ee31, 0xffffd87cffffdc73}, + {0x9a30ee32, 0xffffd87cffffdc74}, + {0x9a30ee33, 0xffffd87cffffdc75}, + {0x9a30ee34, 0xffffd87cffffdc76}, + {0x9a30ee35, 0xffffd87cffffdc77}, + {0x9a30ee36, 0xffffd87cffffdc78}, + {0x9a30ee37, 0xffffd87cffffdc79}, + {0x9a30ee38, 0xffffd87cffffdc7a}, + {0x9a30ee39, 0xffffd87cffffdc7b}, + {0x9a30ef30, 0xffffd87cffffdc7c}, + {0x9a30ef31, 0xffffd87cffffdc7d}, + {0x9a30ef32, 0xffffd87cffffdc7e}, + {0x9a30ef33, 0xffffd87cffffdc7f}, + {0x9a30ef34, 0xffffd87cffffdc80}, + {0x9a30ef35, 0xffffd87cffffdc81}, + {0x9a30ef36, 0xffffd87cffffdc82}, + {0x9a30ef37, 0xffffd87cffffdc83}, + {0x9a30ef38, 0xffffd87cffffdc84}, + {0x9a30ef39, 0xffffd87cffffdc85}, + {0x9a30f030, 0xffffd87cffffdc86}, + {0x9a30f031, 0xffffd87cffffdc87}, + {0x9a30f032, 0xffffd87cffffdc88}, + {0x9a30f033, 0xffffd87cffffdc89}, + {0x9a30f034, 0xffffd87cffffdc8a}, + {0x9a30f035, 0xffffd87cffffdc8b}, + {0x9a30f036, 0xffffd87cffffdc8c}, + {0x9a30f037, 0xffffd87cffffdc8d}, + {0x9a30f038, 0xffffd87cffffdc8e}, + {0x9a30f039, 0xffffd87cffffdc8f}, + {0x9a30f130, 0xffffd87cffffdc90}, + {0x9a30f131, 0xffffd87cffffdc91}, + {0x9a30f132, 0xffffd87cffffdc92}, + {0x9a30f133, 0xffffd87cffffdc93}, + {0x9a30f134, 0xffffd87cffffdc94}, + {0x9a30f135, 0xffffd87cffffdc95}, + {0x9a30f136, 0xffffd87cffffdc96}, + {0x9a30f137, 0xffffd87cffffdc97}, + {0x9a30f138, 0xffffd87cffffdc98}, + {0x9a30f139, 0xffffd87cffffdc99}, + {0x9a30f230, 0xffffd87cffffdc9a}, + {0x9a30f231, 0xffffd87cffffdc9b}, + {0x9a30f232, 0xffffd87cffffdc9c}, + {0x9a30f233, 0xffffd87cffffdc9d}, + {0x9a30f234, 0xffffd87cffffdc9e}, + {0x9a30f235, 0xffffd87cffffdc9f}, + {0x9a30f236, 0xffffd87cffffdca0}, + {0x9a30f237, 0xffffd87cffffdca1}, + {0x9a30f238, 0xffffd87cffffdca2}, + {0x9a30f239, 0xffffd87cffffdca3}, + {0x9a30f330, 0xffffd87cffffdca4}, + {0x9a30f331, 0xffffd87cffffdca5}, + {0x9a30f332, 0xffffd87cffffdca6}, + {0x9a30f333, 0xffffd87cffffdca7}, + {0x9a30f334, 0xffffd87cffffdca8}, + {0x9a30f335, 0xffffd87cffffdca9}, + {0x9a30f336, 0xffffd87cffffdcaa}, + {0x9a30f337, 0xffffd87cffffdcab}, + {0x9a30f338, 0xffffd87cffffdcac}, + {0x9a30f339, 0xffffd87cffffdcad}, + {0x9a30f430, 0xffffd87cffffdcae}, + {0x9a30f431, 0xffffd87cffffdcaf}, + {0x9a30f432, 0xffffd87cffffdcb0}, + {0x9a30f433, 0xffffd87cffffdcb1}, + {0x9a30f434, 0xffffd87cffffdcb2}, + {0x9a30f435, 0xffffd87cffffdcb3}, + {0x9a30f436, 0xffffd87cffffdcb4}, + {0x9a30f437, 0xffffd87cffffdcb5}, + {0x9a30f438, 0xffffd87cffffdcb6}, + {0x9a30f439, 0xffffd87cffffdcb7}, + {0x9a30f530, 0xffffd87cffffdcb8}, + {0x9a30f531, 0xffffd87cffffdcb9}, + {0x9a30f532, 0xffffd87cffffdcba}, + {0x9a30f533, 0xffffd87cffffdcbb}, + {0x9a30f534, 0xffffd87cffffdcbc}, + {0x9a30f535, 0xffffd87cffffdcbd}, + {0x9a30f536, 0xffffd87cffffdcbe}, + {0x9a30f537, 0xffffd87cffffdcbf}, + {0x9a30f538, 0xffffd87cffffdcc0}, + {0x9a30f539, 0xffffd87cffffdcc1}, + {0x9a30f630, 0xffffd87cffffdcc2}, + {0x9a30f631, 0xffffd87cffffdcc3}, + {0x9a30f632, 0xffffd87cffffdcc4}, + {0x9a30f633, 0xffffd87cffffdcc5}, + {0x9a30f634, 0xffffd87cffffdcc6}, + {0x9a30f635, 0xffffd87cffffdcc7}, + {0x9a30f636, 0xffffd87cffffdcc8}, + {0x9a30f637, 0xffffd87cffffdcc9}, + {0x9a30f638, 0xffffd87cffffdcca}, + {0x9a30f639, 0xffffd87cffffdccb}, + {0x9a30f730, 0xffffd87cffffdccc}, + {0x9a30f731, 0xffffd87cffffdccd}, + {0x9a30f732, 0xffffd87cffffdcce}, + {0x9a30f733, 0xffffd87cffffdccf}, + {0x9a30f734, 0xffffd87cffffdcd0}, + {0x9a30f735, 0xffffd87cffffdcd1}, + {0x9a30f736, 0xffffd87cffffdcd2}, + {0x9a30f737, 0xffffd87cffffdcd3}, + {0x9a30f738, 0xffffd87cffffdcd4}, + {0x9a30f739, 0xffffd87cffffdcd5}, + {0x9a30f830, 0xffffd87cffffdcd6}, + {0x9a30f831, 0xffffd87cffffdcd7}, + {0x9a30f832, 0xffffd87cffffdcd8}, + {0x9a30f833, 0xffffd87cffffdcd9}, + {0x9a30f834, 0xffffd87cffffdcda}, + {0x9a30f835, 0xffffd87cffffdcdb}, + {0x9a30f836, 0xffffd87cffffdcdc}, + {0x9a30f837, 0xffffd87cffffdcdd}, + {0x9a30f838, 0xffffd87cffffdcde}, + {0x9a30f839, 0xffffd87cffffdcdf}, + {0x9a30f930, 0xffffd87cffffdce0}, + {0x9a30f931, 0xffffd87cffffdce1}, + {0x9a30f932, 0xffffd87cffffdce2}, + {0x9a30f933, 0xffffd87cffffdce3}, + {0x9a30f934, 0xffffd87cffffdce4}, + {0x9a30f935, 0xffffd87cffffdce5}, + {0x9a30f936, 0xffffd87cffffdce6}, + {0x9a30f937, 0xffffd87cffffdce7}, + {0x9a30f938, 0xffffd87cffffdce8}, + {0x9a30f939, 0xffffd87cffffdce9}, + {0x9a30fa30, 0xffffd87cffffdcea}, + {0x9a30fa31, 0xffffd87cffffdceb}, + {0x9a30fa32, 0xffffd87cffffdcec}, + {0x9a30fa33, 0xffffd87cffffdced}, + {0x9a30fa34, 0xffffd87cffffdcee}, + {0x9a30fa35, 0xffffd87cffffdcef}, + {0x9a30fa36, 0xffffd87cffffdcf0}, + {0x9a30fa37, 0xffffd87cffffdcf1}, + {0x9a30fa38, 0xffffd87cffffdcf2}, + {0x9a30fa39, 0xffffd87cffffdcf3}, + {0x9a30fb30, 0xffffd87cffffdcf4}, + {0x9a30fb31, 0xffffd87cffffdcf5}, + {0x9a30fb32, 0xffffd87cffffdcf6}, + {0x9a30fb33, 0xffffd87cffffdcf7}, + {0x9a30fb34, 0xffffd87cffffdcf8}, + {0x9a30fb35, 0xffffd87cffffdcf9}, + {0x9a30fb36, 0xffffd87cffffdcfa}, + {0x9a30fb37, 0xffffd87cffffdcfb}, + {0x9a30fb38, 0xffffd87cffffdcfc}, + {0x9a30fb39, 0xffffd87cffffdcfd}, + {0x9a30fc30, 0xffffd87cffffdcfe}, + {0x9a30fc31, 0xffffd87cffffdcff}, + {0x9a30fc32, 0xffffd87cffffdd00}, + {0x9a30fc33, 0xffffd87cffffdd01}, + {0x9a30fc34, 0xffffd87cffffdd02}, + {0x9a30fc35, 0xffffd87cffffdd03}, + {0x9a30fc36, 0xffffd87cffffdd04}, + {0x9a30fc37, 0xffffd87cffffdd05}, + {0x9a30fc38, 0xffffd87cffffdd06}, + {0x9a30fc39, 0xffffd87cffffdd07}, + {0x9a30fd30, 0xffffd87cffffdd08}, + {0x9a30fd31, 0xffffd87cffffdd09}, + {0x9a30fd32, 0xffffd87cffffdd0a}, + {0x9a30fd33, 0xffffd87cffffdd0b}, + {0x9a30fd34, 0xffffd87cffffdd0c}, + {0x9a30fd35, 0xffffd87cffffdd0d}, + {0x9a30fd36, 0xffffd87cffffdd0e}, + {0x9a30fd37, 0xffffd87cffffdd0f}, + {0x9a30fd38, 0xffffd87cffffdd10}, + {0x9a30fd39, 0xffffd87cffffdd11}, + {0x9a30fe30, 0xffffd87cffffdd12}, + {0x9a30fe31, 0xffffd87cffffdd13}, + {0x9a30fe32, 0xffffd87cffffdd14}, + {0x9a30fe33, 0xffffd87cffffdd15}, + {0x9a30fe34, 0xffffd87cffffdd16}, + {0x9a30fe35, 0xffffd87cffffdd17}, + {0x9a30fe36, 0xffffd87cffffdd18}, + {0x9a30fe37, 0xffffd87cffffdd19}, + {0x9a30fe38, 0xffffd87cffffdd1a}, + {0x9a30fe39, 0xffffd87cffffdd1b}, + {0x9a318130, 0xffffd87cffffdd1c}, + {0x9a318131, 0xffffd87cffffdd1d}, + {0x9a318132, 0xffffd87cffffdd1e}, + {0x9a318133, 0xffffd87cffffdd1f}, + {0x9a318134, 0xffffd87cffffdd20}, + {0x9a318135, 0xffffd87cffffdd21}, + {0x9a318136, 0xffffd87cffffdd22}, + {0x9a318137, 0xffffd87cffffdd23}, + {0x9a318138, 0xffffd87cffffdd24}, + {0x9a318139, 0xffffd87cffffdd25}, + {0x9a318230, 0xffffd87cffffdd26}, + {0x9a318231, 0xffffd87cffffdd27}, + {0x9a318232, 0xffffd87cffffdd28}, + {0x9a318233, 0xffffd87cffffdd29}, + {0x9a318234, 0xffffd87cffffdd2a}, + {0x9a318235, 0xffffd87cffffdd2b}, + {0x9a318236, 0xffffd87cffffdd2c}, + {0x9a318237, 0xffffd87cffffdd2d}, + {0x9a318238, 0xffffd87cffffdd2e}, + {0x9a318239, 0xffffd87cffffdd2f}, + {0x9a318330, 0xffffd87cffffdd30}, + {0x9a318331, 0xffffd87cffffdd31}, + {0x9a318332, 0xffffd87cffffdd32}, + {0x9a318333, 0xffffd87cffffdd33}, + {0x9a318334, 0xffffd87cffffdd34}, + {0x9a318335, 0xffffd87cffffdd35}, + {0x9a318336, 0xffffd87cffffdd36}, + {0x9a318337, 0xffffd87cffffdd37}, + {0x9a318338, 0xffffd87cffffdd38}, + {0x9a318339, 0xffffd87cffffdd39}, + {0x9a318430, 0xffffd87cffffdd3a}, + {0x9a318431, 0xffffd87cffffdd3b}, + {0x9a318432, 0xffffd87cffffdd3c}, + {0x9a318433, 0xffffd87cffffdd3d}, + {0x9a318434, 0xffffd87cffffdd3e}, + {0x9a318435, 0xffffd87cffffdd3f}, + {0x9a318436, 0xffffd87cffffdd40}, + {0x9a318437, 0xffffd87cffffdd41}, + {0x9a318438, 0xffffd87cffffdd42}, + {0x9a318439, 0xffffd87cffffdd43}, + {0x9a318530, 0xffffd87cffffdd44}, + {0x9a318531, 0xffffd87cffffdd45}, + {0x9a318532, 0xffffd87cffffdd46}, + {0x9a318533, 0xffffd87cffffdd47}, + {0x9a318534, 0xffffd87cffffdd48}, + {0x9a318535, 0xffffd87cffffdd49}, + {0x9a318536, 0xffffd87cffffdd4a}, + {0x9a318537, 0xffffd87cffffdd4b}, + {0x9a318538, 0xffffd87cffffdd4c}, + {0x9a318539, 0xffffd87cffffdd4d}, + {0x9a318630, 0xffffd87cffffdd4e}, + {0x9a318631, 0xffffd87cffffdd4f}, + {0x9a318632, 0xffffd87cffffdd50}, + {0x9a318633, 0xffffd87cffffdd51}, + {0x9a318634, 0xffffd87cffffdd52}, + {0x9a318635, 0xffffd87cffffdd53}, + {0x9a318636, 0xffffd87cffffdd54}, + {0x9a318637, 0xffffd87cffffdd55}, + {0x9a318638, 0xffffd87cffffdd56}, + {0x9a318639, 0xffffd87cffffdd57}, + {0x9a318730, 0xffffd87cffffdd58}, + {0x9a318731, 0xffffd87cffffdd59}, + {0x9a318732, 0xffffd87cffffdd5a}, + {0x9a318733, 0xffffd87cffffdd5b}, + {0x9a318734, 0xffffd87cffffdd5c}, + {0x9a318735, 0xffffd87cffffdd5d}, + {0x9a318736, 0xffffd87cffffdd5e}, + {0x9a318737, 0xffffd87cffffdd5f}, + {0x9a318738, 0xffffd87cffffdd60}, + {0x9a318739, 0xffffd87cffffdd61}, + {0x9a318830, 0xffffd87cffffdd62}, + {0x9a318831, 0xffffd87cffffdd63}, + {0x9a318832, 0xffffd87cffffdd64}, + {0x9a318833, 0xffffd87cffffdd65}, + {0x9a318834, 0xffffd87cffffdd66}, + {0x9a318835, 0xffffd87cffffdd67}, + {0x9a318836, 0xffffd87cffffdd68}, + {0x9a318837, 0xffffd87cffffdd69}, + {0x9a318838, 0xffffd87cffffdd6a}, + {0x9a318839, 0xffffd87cffffdd6b}, + {0x9a318930, 0xffffd87cffffdd6c}, + {0x9a318931, 0xffffd87cffffdd6d}, + {0x9a318932, 0xffffd87cffffdd6e}, + {0x9a318933, 0xffffd87cffffdd6f}, + {0x9a318934, 0xffffd87cffffdd70}, + {0x9a318935, 0xffffd87cffffdd71}, + {0x9a318936, 0xffffd87cffffdd72}, + {0x9a318937, 0xffffd87cffffdd73}, + {0x9a318938, 0xffffd87cffffdd74}, + {0x9a318939, 0xffffd87cffffdd75}, + {0x9a318a30, 0xffffd87cffffdd76}, + {0x9a318a31, 0xffffd87cffffdd77}, + {0x9a318a32, 0xffffd87cffffdd78}, + {0x9a318a33, 0xffffd87cffffdd79}, + {0x9a318a34, 0xffffd87cffffdd7a}, + {0x9a318a35, 0xffffd87cffffdd7b}, + {0x9a318a36, 0xffffd87cffffdd7c}, + {0x9a318a37, 0xffffd87cffffdd7d}, + {0x9a318a38, 0xffffd87cffffdd7e}, + {0x9a318a39, 0xffffd87cffffdd7f}, + {0x9a318b30, 0xffffd87cffffdd80}, + {0x9a318b31, 0xffffd87cffffdd81}, + {0x9a318b32, 0xffffd87cffffdd82}, + {0x9a318b33, 0xffffd87cffffdd83}, + {0x9a318b34, 0xffffd87cffffdd84}, + {0x9a318b35, 0xffffd87cffffdd85}, + {0x9a318b36, 0xffffd87cffffdd86}, + {0x9a318b37, 0xffffd87cffffdd87}, + {0x9a318b38, 0xffffd87cffffdd88}, + {0x9a318b39, 0xffffd87cffffdd89}, + {0x9a318c30, 0xffffd87cffffdd8a}, + {0x9a318c31, 0xffffd87cffffdd8b}, + {0x9a318c32, 0xffffd87cffffdd8c}, + {0x9a318c33, 0xffffd87cffffdd8d}, + {0x9a318c34, 0xffffd87cffffdd8e}, + {0x9a318c35, 0xffffd87cffffdd8f}, + {0x9a318c36, 0xffffd87cffffdd90}, + {0x9a318c37, 0xffffd87cffffdd91}, + {0x9a318c38, 0xffffd87cffffdd92}, + {0x9a318c39, 0xffffd87cffffdd93}, + {0x9a318d30, 0xffffd87cffffdd94}, + {0x9a318d31, 0xffffd87cffffdd95}, + {0x9a318d32, 0xffffd87cffffdd96}, + {0x9a318d33, 0xffffd87cffffdd97}, + {0x9a318d34, 0xffffd87cffffdd98}, + {0x9a318d35, 0xffffd87cffffdd99}, + {0x9a318d36, 0xffffd87cffffdd9a}, + {0x9a318d37, 0xffffd87cffffdd9b}, + {0x9a318d38, 0xffffd87cffffdd9c}, + {0x9a318d39, 0xffffd87cffffdd9d}, + {0x9a318e30, 0xffffd87cffffdd9e}, + {0x9a318e31, 0xffffd87cffffdd9f}, + {0x9a318e32, 0xffffd87cffffdda0}, + {0x9a318e33, 0xffffd87cffffdda1}, + {0x9a318e34, 0xffffd87cffffdda2}, + {0x9a318e35, 0xffffd87cffffdda3}, + {0x9a318e36, 0xffffd87cffffdda4}, + {0x9a318e37, 0xffffd87cffffdda5}, + {0x9a318e38, 0xffffd87cffffdda6}, + {0x9a318e39, 0xffffd87cffffdda7}, + {0x9a318f30, 0xffffd87cffffdda8}, + {0x9a318f31, 0xffffd87cffffdda9}, + {0x9a318f32, 0xffffd87cffffddaa}, + {0x9a318f33, 0xffffd87cffffddab}, + {0x9a318f34, 0xffffd87cffffddac}, + {0x9a318f35, 0xffffd87cffffddad}, + {0x9a318f36, 0xffffd87cffffddae}, + {0x9a318f37, 0xffffd87cffffddaf}, + {0x9a318f38, 0xffffd87cffffddb0}, + {0x9a318f39, 0xffffd87cffffddb1}, + {0x9a319030, 0xffffd87cffffddb2}, + {0x9a319031, 0xffffd87cffffddb3}, + {0x9a319032, 0xffffd87cffffddb4}, + {0x9a319033, 0xffffd87cffffddb5}, + {0x9a319034, 0xffffd87cffffddb6}, + {0x9a319035, 0xffffd87cffffddb7}, + {0x9a319036, 0xffffd87cffffddb8}, + {0x9a319037, 0xffffd87cffffddb9}, + {0x9a319038, 0xffffd87cffffddba}, + {0x9a319039, 0xffffd87cffffddbb}, + {0x9a319130, 0xffffd87cffffddbc}, + {0x9a319131, 0xffffd87cffffddbd}, + {0x9a319132, 0xffffd87cffffddbe}, + {0x9a319133, 0xffffd87cffffddbf}, + {0x9a319134, 0xffffd87cffffddc0}, + {0x9a319135, 0xffffd87cffffddc1}, + {0x9a319136, 0xffffd87cffffddc2}, + {0x9a319137, 0xffffd87cffffddc3}, + {0x9a319138, 0xffffd87cffffddc4}, + {0x9a319139, 0xffffd87cffffddc5}, + {0x9a319230, 0xffffd87cffffddc6}, + {0x9a319231, 0xffffd87cffffddc7}, + {0x9a319232, 0xffffd87cffffddc8}, + {0x9a319233, 0xffffd87cffffddc9}, + {0x9a319234, 0xffffd87cffffddca}, + {0x9a319235, 0xffffd87cffffddcb}, + {0x9a319236, 0xffffd87cffffddcc}, + {0x9a319237, 0xffffd87cffffddcd}, + {0x9a319238, 0xffffd87cffffddce}, + {0x9a319239, 0xffffd87cffffddcf}, + {0x9a319330, 0xffffd87cffffddd0}, + {0x9a319331, 0xffffd87cffffddd1}, + {0x9a319332, 0xffffd87cffffddd2}, + {0x9a319333, 0xffffd87cffffddd3}, + {0x9a319334, 0xffffd87cffffddd4}, + {0x9a319335, 0xffffd87cffffddd5}, + {0x9a319336, 0xffffd87cffffddd6}, + {0x9a319337, 0xffffd87cffffddd7}, + {0x9a319338, 0xffffd87cffffddd8}, + {0x9a319339, 0xffffd87cffffddd9}, + {0x9a319430, 0xffffd87cffffddda}, + {0x9a319431, 0xffffd87cffffdddb}, + {0x9a319432, 0xffffd87cffffdddc}, + {0x9a319433, 0xffffd87cffffdddd}, + {0x9a319434, 0xffffd87cffffddde}, + {0x9a319435, 0xffffd87cffffdddf}, + {0x9a319436, 0xffffd87cffffdde0}, + {0x9a319437, 0xffffd87cffffdde1}, + {0x9a319438, 0xffffd87cffffdde2}, + {0x9a319439, 0xffffd87cffffdde3}, + {0x9a319530, 0xffffd87cffffdde4}, + {0x9a319531, 0xffffd87cffffdde5}, + {0x9a319532, 0xffffd87cffffdde6}, + {0x9a319533, 0xffffd87cffffdde7}, + {0x9a319534, 0xffffd87cffffdde8}, + {0x9a319535, 0xffffd87cffffdde9}, + {0x9a319536, 0xffffd87cffffddea}, + {0x9a319537, 0xffffd87cffffddeb}, + {0x9a319538, 0xffffd87cffffddec}, + {0x9a319539, 0xffffd87cffffdded}, + {0x9a319630, 0xffffd87cffffddee}, + {0x9a319631, 0xffffd87cffffddef}, + {0x9a319632, 0xffffd87cffffddf0}, + {0x9a319633, 0xffffd87cffffddf1}, + {0x9a319634, 0xffffd87cffffddf2}, + {0x9a319635, 0xffffd87cffffddf3}, + {0x9a319636, 0xffffd87cffffddf4}, + {0x9a319637, 0xffffd87cffffddf5}, + {0x9a319638, 0xffffd87cffffddf6}, + {0x9a319639, 0xffffd87cffffddf7}, + {0x9a319730, 0xffffd87cffffddf8}, + {0x9a319731, 0xffffd87cffffddf9}, + {0x9a319732, 0xffffd87cffffddfa}, + {0x9a319733, 0xffffd87cffffddfb}, + {0x9a319734, 0xffffd87cffffddfc}, + {0x9a319735, 0xffffd87cffffddfd}, + {0x9a319736, 0xffffd87cffffddfe}, + {0x9a319737, 0xffffd87cffffddff}, + {0x9a319738, 0xffffd87cffffde00}, + {0x9a319739, 0xffffd87cffffde01}, + {0x9a319830, 0xffffd87cffffde02}, + {0x9a319831, 0xffffd87cffffde03}, + {0x9a319832, 0xffffd87cffffde04}, + {0x9a319833, 0xffffd87cffffde05}, + {0x9a319834, 0xffffd87cffffde06}, + {0x9a319835, 0xffffd87cffffde07}, + {0x9a319836, 0xffffd87cffffde08}, + {0x9a319837, 0xffffd87cffffde09}, + {0x9a319838, 0xffffd87cffffde0a}, + {0x9a319839, 0xffffd87cffffde0b}, + {0x9a319930, 0xffffd87cffffde0c}, + {0x9a319931, 0xffffd87cffffde0d}, + {0x9a319932, 0xffffd87cffffde0e}, + {0x9a319933, 0xffffd87cffffde0f}, + {0x9a319934, 0xffffd87cffffde10}, + {0x9a319935, 0xffffd87cffffde11}, + {0x9a319936, 0xffffd87cffffde12}, + {0x9a319937, 0xffffd87cffffde13}, + {0x9a319938, 0xffffd87cffffde14}, + {0x9a319939, 0xffffd87cffffde15}, + {0x9a319a30, 0xffffd87cffffde16}, + {0x9a319a31, 0xffffd87cffffde17}, + {0x9a319a32, 0xffffd87cffffde18}, + {0x9a319a33, 0xffffd87cffffde19}, + {0x9a319a34, 0xffffd87cffffde1a}, + {0x9a319a35, 0xffffd87cffffde1b}, + {0x9a319a36, 0xffffd87cffffde1c}, + {0x9a319a37, 0xffffd87cffffde1d}, + {0x9a319a38, 0xffffd87cffffde1e}, + {0x9a319a39, 0xffffd87cffffde1f}, + {0x9a319b30, 0xffffd87cffffde20}, + {0x9a319b31, 0xffffd87cffffde21}, + {0x9a319b32, 0xffffd87cffffde22}, + {0x9a319b33, 0xffffd87cffffde23}, + {0x9a319b34, 0xffffd87cffffde24}, + {0x9a319b35, 0xffffd87cffffde25}, + {0x9a319b36, 0xffffd87cffffde26}, + {0x9a319b37, 0xffffd87cffffde27}, + {0x9a319b38, 0xffffd87cffffde28}, + {0x9a319b39, 0xffffd87cffffde29}, + {0x9a319c30, 0xffffd87cffffde2a}, + {0x9a319c31, 0xffffd87cffffde2b}, + {0x9a319c32, 0xffffd87cffffde2c}, + {0x9a319c33, 0xffffd87cffffde2d}, + {0x9a319c34, 0xffffd87cffffde2e}, + {0x9a319c35, 0xffffd87cffffde2f}, + {0x9a319c36, 0xffffd87cffffde30}, + {0x9a319c37, 0xffffd87cffffde31}, + {0x9a319c38, 0xffffd87cffffde32}, + {0x9a319c39, 0xffffd87cffffde33}, + {0x9a319d30, 0xffffd87cffffde34}, + {0x9a319d31, 0xffffd87cffffde35}, + {0x9a319d32, 0xffffd87cffffde36}, + {0x9a319d33, 0xffffd87cffffde37}, + {0x9a319d34, 0xffffd87cffffde38}, + {0x9a319d35, 0xffffd87cffffde39}, + {0x9a319d36, 0xffffd87cffffde3a}, + {0x9a319d37, 0xffffd87cffffde3b}, + {0x9a319d38, 0xffffd87cffffde3c}, + {0x9a319d39, 0xffffd87cffffde3d}, + {0x9a319e30, 0xffffd87cffffde3e}, + {0x9a319e31, 0xffffd87cffffde3f}, + {0x9a319e32, 0xffffd87cffffde40}, + {0x9a319e33, 0xffffd87cffffde41}, + {0x9a319e34, 0xffffd87cffffde42}, + {0x9a319e35, 0xffffd87cffffde43}, + {0x9a319e36, 0xffffd87cffffde44}, + {0x9a319e37, 0xffffd87cffffde45}, + {0x9a319e38, 0xffffd87cffffde46}, + {0x9a319e39, 0xffffd87cffffde47}, + {0x9a319f30, 0xffffd87cffffde48}, + {0x9a319f31, 0xffffd87cffffde49}, + {0x9a319f32, 0xffffd87cffffde4a}, + {0x9a319f33, 0xffffd87cffffde4b}, + {0x9a319f34, 0xffffd87cffffde4c}, + {0x9a319f35, 0xffffd87cffffde4d}, + {0x9a319f36, 0xffffd87cffffde4e}, + {0x9a319f37, 0xffffd87cffffde4f}, + {0x9a319f38, 0xffffd87cffffde50}, + {0x9a319f39, 0xffffd87cffffde51}, + {0x9a31a030, 0xffffd87cffffde52}, + {0x9a31a031, 0xffffd87cffffde53}, + {0x9a31a032, 0xffffd87cffffde54}, + {0x9a31a033, 0xffffd87cffffde55}, + {0x9a31a034, 0xffffd87cffffde56}, + {0x9a31a035, 0xffffd87cffffde57}, + {0x9a31a036, 0xffffd87cffffde58}, + {0x9a31a037, 0xffffd87cffffde59}, + {0x9a31a038, 0xffffd87cffffde5a}, + {0x9a31a039, 0xffffd87cffffde5b}, + {0x9a31a130, 0xffffd87cffffde5c}, + {0x9a31a131, 0xffffd87cffffde5d}, + {0x9a31a132, 0xffffd87cffffde5e}, + {0x9a31a133, 0xffffd87cffffde5f}, + {0x9a31a134, 0xffffd87cffffde60}, + {0x9a31a135, 0xffffd87cffffde61}, + {0x9a31a136, 0xffffd87cffffde62}, + {0x9a31a137, 0xffffd87cffffde63}, + {0x9a31a138, 0xffffd87cffffde64}, + {0x9a31a139, 0xffffd87cffffde65}, + {0x9a31a230, 0xffffd87cffffde66}, + {0x9a31a231, 0xffffd87cffffde67}, + {0x9a31a232, 0xffffd87cffffde68}, + {0x9a31a233, 0xffffd87cffffde69}, + {0x9a31a234, 0xffffd87cffffde6a}, + {0x9a31a235, 0xffffd87cffffde6b}, + {0x9a31a236, 0xffffd87cffffde6c}, + {0x9a31a237, 0xffffd87cffffde6d}, + {0x9a31a238, 0xffffd87cffffde6e}, + {0x9a31a239, 0xffffd87cffffde6f}, + {0x9a31a330, 0xffffd87cffffde70}, + {0x9a31a331, 0xffffd87cffffde71}, + {0x9a31a332, 0xffffd87cffffde72}, + {0x9a31a333, 0xffffd87cffffde73}, + {0x9a31a334, 0xffffd87cffffde74}, + {0x9a31a335, 0xffffd87cffffde75}, + {0x9a31a336, 0xffffd87cffffde76}, + {0x9a31a337, 0xffffd87cffffde77}, + {0x9a31a338, 0xffffd87cffffde78}, + {0x9a31a339, 0xffffd87cffffde79}, + {0x9a31a430, 0xffffd87cffffde7a}, + {0x9a31a431, 0xffffd87cffffde7b}, + {0x9a31a432, 0xffffd87cffffde7c}, + {0x9a31a433, 0xffffd87cffffde7d}, + {0x9a31a434, 0xffffd87cffffde7e}, + {0x9a31a435, 0xffffd87cffffde7f}, + {0x9a31a436, 0xffffd87cffffde80}, + {0x9a31a437, 0xffffd87cffffde81}, + {0x9a31a438, 0xffffd87cffffde82}, + {0x9a31a439, 0xffffd87cffffde83}, + {0x9a31a530, 0xffffd87cffffde84}, + {0x9a31a531, 0xffffd87cffffde85}, + {0x9a31a532, 0xffffd87cffffde86}, + {0x9a31a533, 0xffffd87cffffde87}, + {0x9a31a534, 0xffffd87cffffde88}, + {0x9a31a535, 0xffffd87cffffde89}, + {0x9a31a536, 0xffffd87cffffde8a}, + {0x9a31a537, 0xffffd87cffffde8b}, + {0x9a31a538, 0xffffd87cffffde8c}, + {0x9a31a539, 0xffffd87cffffde8d}, + {0x9a31a630, 0xffffd87cffffde8e}, + {0x9a31a631, 0xffffd87cffffde8f}, + {0x9a31a632, 0xffffd87cffffde90}, + {0x9a31a633, 0xffffd87cffffde91}, + {0x9a31a634, 0xffffd87cffffde92}, + {0x9a31a635, 0xffffd87cffffde93}, + {0x9a31a636, 0xffffd87cffffde94}, + {0x9a31a637, 0xffffd87cffffde95}, + {0x9a31a638, 0xffffd87cffffde96}, + {0x9a31a639, 0xffffd87cffffde97}, + {0x9a31a730, 0xffffd87cffffde98}, + {0x9a31a731, 0xffffd87cffffde99}, + {0x9a31a732, 0xffffd87cffffde9a}, + {0x9a31a733, 0xffffd87cffffde9b}, + {0x9a31a734, 0xffffd87cffffde9c}, + {0x9a31a735, 0xffffd87cffffde9d}, + {0x9a31a736, 0xffffd87cffffde9e}, + {0x9a31a737, 0xffffd87cffffde9f}, + {0x9a31a738, 0xffffd87cffffdea0}, + {0x9a31a739, 0xffffd87cffffdea1}, + {0x9a31a830, 0xffffd87cffffdea2}, + {0x9a31a831, 0xffffd87cffffdea3}, + {0x9a31a832, 0xffffd87cffffdea4}, + {0x9a31a833, 0xffffd87cffffdea5}, + {0x9a31a834, 0xffffd87cffffdea6}, + {0x9a31a835, 0xffffd87cffffdea7}, + {0x9a31a836, 0xffffd87cffffdea8}, + {0x9a31a837, 0xffffd87cffffdea9}, + {0x9a31a838, 0xffffd87cffffdeaa}, + {0x9a31a839, 0xffffd87cffffdeab}, + {0x9a31a930, 0xffffd87cffffdeac}, + {0x9a31a931, 0xffffd87cffffdead}, + {0x9a31a932, 0xffffd87cffffdeae}, + {0x9a31a933, 0xffffd87cffffdeaf}, + {0x9a31a934, 0xffffd87cffffdeb0}, + {0x9a31a935, 0xffffd87cffffdeb1}, + {0x9a31a936, 0xffffd87cffffdeb2}, + {0x9a31a937, 0xffffd87cffffdeb3}, + {0x9a31a938, 0xffffd87cffffdeb4}, + {0x9a31a939, 0xffffd87cffffdeb5}, + {0x9a31aa30, 0xffffd87cffffdeb6}, + {0x9a31aa31, 0xffffd87cffffdeb7}, + {0x9a31aa32, 0xffffd87cffffdeb8}, + {0x9a31aa33, 0xffffd87cffffdeb9}, + {0x9a31aa34, 0xffffd87cffffdeba}, + {0x9a31aa35, 0xffffd87cffffdebb}, + {0x9a31aa36, 0xffffd87cffffdebc}, + {0x9a31aa37, 0xffffd87cffffdebd}, + {0x9a31aa38, 0xffffd87cffffdebe}, + {0x9a31aa39, 0xffffd87cffffdebf}, + {0x9a31ab30, 0xffffd87cffffdec0}, + {0x9a31ab31, 0xffffd87cffffdec1}, + {0x9a31ab32, 0xffffd87cffffdec2}, + {0x9a31ab33, 0xffffd87cffffdec3}, + {0x9a31ab34, 0xffffd87cffffdec4}, + {0x9a31ab35, 0xffffd87cffffdec5}, + {0x9a31ab36, 0xffffd87cffffdec6}, + {0x9a31ab37, 0xffffd87cffffdec7}, + {0x9a31ab38, 0xffffd87cffffdec8}, + {0x9a31ab39, 0xffffd87cffffdec9}, + {0x9a31ac30, 0xffffd87cffffdeca}, + {0x9a31ac31, 0xffffd87cffffdecb}, + {0x9a31ac32, 0xffffd87cffffdecc}, + {0x9a31ac33, 0xffffd87cffffdecd}, + {0x9a31ac34, 0xffffd87cffffdece}, + {0x9a31ac35, 0xffffd87cffffdecf}, + {0x9a31ac36, 0xffffd87cffffded0}, + {0x9a31ac37, 0xffffd87cffffded1}, + {0x9a31ac38, 0xffffd87cffffded2}, + {0x9a31ac39, 0xffffd87cffffded3}, + {0x9a31ad30, 0xffffd87cffffded4}, + {0x9a31ad31, 0xffffd87cffffded5}, + {0x9a31ad32, 0xffffd87cffffded6}, + {0x9a31ad33, 0xffffd87cffffded7}, + {0x9a31ad34, 0xffffd87cffffded8}, + {0x9a31ad35, 0xffffd87cffffded9}, + {0x9a31ad36, 0xffffd87cffffdeda}, + {0x9a31ad37, 0xffffd87cffffdedb}, + {0x9a31ad38, 0xffffd87cffffdedc}, + {0x9a31ad39, 0xffffd87cffffdedd}, + {0x9a31ae30, 0xffffd87cffffdede}, + {0x9a31ae31, 0xffffd87cffffdedf}, + {0x9a31ae32, 0xffffd87cffffdee0}, + {0x9a31ae33, 0xffffd87cffffdee1}, + {0x9a31ae34, 0xffffd87cffffdee2}, + {0x9a31ae35, 0xffffd87cffffdee3}, + {0x9a31ae36, 0xffffd87cffffdee4}, + {0x9a31ae37, 0xffffd87cffffdee5}, + {0x9a31ae38, 0xffffd87cffffdee6}, + {0x9a31ae39, 0xffffd87cffffdee7}, + {0x9a31af30, 0xffffd87cffffdee8}, + {0x9a31af31, 0xffffd87cffffdee9}, + {0x9a31af32, 0xffffd87cffffdeea}, + {0x9a31af33, 0xffffd87cffffdeeb}, + {0x9a31af34, 0xffffd87cffffdeec}, + {0x9a31af35, 0xffffd87cffffdeed}, + {0x9a31af36, 0xffffd87cffffdeee}, + {0x9a31af37, 0xffffd87cffffdeef}, + {0x9a31af38, 0xffffd87cffffdef0}, + {0x9a31af39, 0xffffd87cffffdef1}, + {0x9a31b030, 0xffffd87cffffdef2}, + {0x9a31b031, 0xffffd87cffffdef3}, + {0x9a31b032, 0xffffd87cffffdef4}, + {0x9a31b033, 0xffffd87cffffdef5}, + {0x9a31b034, 0xffffd87cffffdef6}, + {0x9a31b035, 0xffffd87cffffdef7}, + {0x9a31b036, 0xffffd87cffffdef8}, + {0x9a31b037, 0xffffd87cffffdef9}, + {0x9a31b038, 0xffffd87cffffdefa}, + {0x9a31b039, 0xffffd87cffffdefb}, + {0x9a31b130, 0xffffd87cffffdefc}, + {0x9a31b131, 0xffffd87cffffdefd}, + {0x9a31b132, 0xffffd87cffffdefe}, + {0x9a31b133, 0xffffd87cffffdeff}, + {0x9a31b134, 0xffffd87cffffdf00}, + {0x9a31b135, 0xffffd87cffffdf01}, + {0x9a31b136, 0xffffd87cffffdf02}, + {0x9a31b137, 0xffffd87cffffdf03}, + {0x9a31b138, 0xffffd87cffffdf04}, + {0x9a31b139, 0xffffd87cffffdf05}, + {0x9a31b230, 0xffffd87cffffdf06}, + {0x9a31b231, 0xffffd87cffffdf07}, + {0x9a31b232, 0xffffd87cffffdf08}, + {0x9a31b233, 0xffffd87cffffdf09}, + {0x9a31b234, 0xffffd87cffffdf0a}, + {0x9a31b235, 0xffffd87cffffdf0b}, + {0x9a31b236, 0xffffd87cffffdf0c}, + {0x9a31b237, 0xffffd87cffffdf0d}, + {0x9a31b238, 0xffffd87cffffdf0e}, + {0x9a31b239, 0xffffd87cffffdf0f}, + {0x9a31b330, 0xffffd87cffffdf10}, + {0x9a31b331, 0xffffd87cffffdf11}, + {0x9a31b332, 0xffffd87cffffdf12}, + {0x9a31b333, 0xffffd87cffffdf13}, + {0x9a31b334, 0xffffd87cffffdf14}, + {0x9a31b335, 0xffffd87cffffdf15}, + {0x9a31b336, 0xffffd87cffffdf16}, + {0x9a31b337, 0xffffd87cffffdf17}, + {0x9a31b338, 0xffffd87cffffdf18}, + {0x9a31b339, 0xffffd87cffffdf19}, + {0x9a31b430, 0xffffd87cffffdf1a}, + {0x9a31b431, 0xffffd87cffffdf1b}, + {0x9a31b432, 0xffffd87cffffdf1c}, + {0x9a31b433, 0xffffd87cffffdf1d}, + {0x9a31b434, 0xffffd87cffffdf1e}, + {0x9a31b435, 0xffffd87cffffdf1f}, + {0x9a31b436, 0xffffd87cffffdf20}, + {0x9a31b437, 0xffffd87cffffdf21}, + {0x9a31b438, 0xffffd87cffffdf22}, + {0x9a31b439, 0xffffd87cffffdf23}, + {0x9a31b530, 0xffffd87cffffdf24}, + {0x9a31b531, 0xffffd87cffffdf25}, + {0x9a31b532, 0xffffd87cffffdf26}, + {0x9a31b533, 0xffffd87cffffdf27}, + {0x9a31b534, 0xffffd87cffffdf28}, + {0x9a31b535, 0xffffd87cffffdf29}, + {0x9a31b536, 0xffffd87cffffdf2a}, + {0x9a31b537, 0xffffd87cffffdf2b}, + {0x9a31b538, 0xffffd87cffffdf2c}, + {0x9a31b539, 0xffffd87cffffdf2d}, + {0x9a31b630, 0xffffd87cffffdf2e}, + {0x9a31b631, 0xffffd87cffffdf2f}, + {0x9a31b632, 0xffffd87cffffdf30}, + {0x9a31b633, 0xffffd87cffffdf31}, + {0x9a31b634, 0xffffd87cffffdf32}, + {0x9a31b635, 0xffffd87cffffdf33}, + {0x9a31b636, 0xffffd87cffffdf34}, + {0x9a31b637, 0xffffd87cffffdf35}, + {0x9a31b638, 0xffffd87cffffdf36}, + {0x9a31b639, 0xffffd87cffffdf37}, + {0x9a31b730, 0xffffd87cffffdf38}, + {0x9a31b731, 0xffffd87cffffdf39}, + {0x9a31b732, 0xffffd87cffffdf3a}, + {0x9a31b733, 0xffffd87cffffdf3b}, + {0x9a31b734, 0xffffd87cffffdf3c}, + {0x9a31b735, 0xffffd87cffffdf3d}, + {0x9a31b736, 0xffffd87cffffdf3e}, + {0x9a31b737, 0xffffd87cffffdf3f}, + {0x9a31b738, 0xffffd87cffffdf40}, + {0x9a31b739, 0xffffd87cffffdf41}, + {0x9a31b830, 0xffffd87cffffdf42}, + {0x9a31b831, 0xffffd87cffffdf43}, + {0x9a31b832, 0xffffd87cffffdf44}, + {0x9a31b833, 0xffffd87cffffdf45}, + {0x9a31b834, 0xffffd87cffffdf46}, + {0x9a31b835, 0xffffd87cffffdf47}, + {0x9a31b836, 0xffffd87cffffdf48}, + {0x9a31b837, 0xffffd87cffffdf49}, + {0x9a31b838, 0xffffd87cffffdf4a}, + {0x9a31b839, 0xffffd87cffffdf4b}, + {0x9a31b930, 0xffffd87cffffdf4c}, + {0x9a31b931, 0xffffd87cffffdf4d}, + {0x9a31b932, 0xffffd87cffffdf4e}, + {0x9a31b933, 0xffffd87cffffdf4f}, + {0x9a31b934, 0xffffd87cffffdf50}, + {0x9a31b935, 0xffffd87cffffdf51}, + {0x9a31b936, 0xffffd87cffffdf52}, + {0x9a31b937, 0xffffd87cffffdf53}, + {0x9a31b938, 0xffffd87cffffdf54}, + {0x9a31b939, 0xffffd87cffffdf55}, + {0x9a31ba30, 0xffffd87cffffdf56}, + {0x9a31ba31, 0xffffd87cffffdf57}, + {0x9a31ba32, 0xffffd87cffffdf58}, + {0x9a31ba33, 0xffffd87cffffdf59}, + {0x9a31ba34, 0xffffd87cffffdf5a}, + {0x9a31ba35, 0xffffd87cffffdf5b}, + {0x9a31ba36, 0xffffd87cffffdf5c}, + {0x9a31ba37, 0xffffd87cffffdf5d}, + {0x9a31ba38, 0xffffd87cffffdf5e}, + {0x9a31ba39, 0xffffd87cffffdf5f}, + {0x9a31bb30, 0xffffd87cffffdf60}, + {0x9a31bb31, 0xffffd87cffffdf61}, + {0x9a31bb32, 0xffffd87cffffdf62}, + {0x9a31bb33, 0xffffd87cffffdf63}, + {0x9a31bb34, 0xffffd87cffffdf64}, + {0x9a31bb35, 0xffffd87cffffdf65}, + {0x9a31bb36, 0xffffd87cffffdf66}, + {0x9a31bb37, 0xffffd87cffffdf67}, + {0x9a31bb38, 0xffffd87cffffdf68}, + {0x9a31bb39, 0xffffd87cffffdf69}, + {0x9a31bc30, 0xffffd87cffffdf6a}, + {0x9a31bc31, 0xffffd87cffffdf6b}, + {0x9a31bc32, 0xffffd87cffffdf6c}, + {0x9a31bc33, 0xffffd87cffffdf6d}, + {0x9a31bc34, 0xffffd87cffffdf6e}, + {0x9a31bc35, 0xffffd87cffffdf6f}, + {0x9a31bc36, 0xffffd87cffffdf70}, + {0x9a31bc37, 0xffffd87cffffdf71}, + {0x9a31bc38, 0xffffd87cffffdf72}, + {0x9a31bc39, 0xffffd87cffffdf73}, + {0x9a31bd30, 0xffffd87cffffdf74}, + {0x9a31bd31, 0xffffd87cffffdf75}, + {0x9a31bd32, 0xffffd87cffffdf76}, + {0x9a31bd33, 0xffffd87cffffdf77}, + {0x9a31bd34, 0xffffd87cffffdf78}, + {0x9a31bd35, 0xffffd87cffffdf79}, + {0x9a31bd36, 0xffffd87cffffdf7a}, + {0x9a31bd37, 0xffffd87cffffdf7b}, + {0x9a31bd38, 0xffffd87cffffdf7c}, + {0x9a31bd39, 0xffffd87cffffdf7d}, + {0x9a31be30, 0xffffd87cffffdf7e}, + {0x9a31be31, 0xffffd87cffffdf7f}, + {0x9a31be32, 0xffffd87cffffdf80}, + {0x9a31be33, 0xffffd87cffffdf81}, + {0x9a31be34, 0xffffd87cffffdf82}, + {0x9a31be35, 0xffffd87cffffdf83}, + {0x9a31be36, 0xffffd87cffffdf84}, + {0x9a31be37, 0xffffd87cffffdf85}, + {0x9a31be38, 0xffffd87cffffdf86}, + {0x9a31be39, 0xffffd87cffffdf87}, + {0x9a31bf30, 0xffffd87cffffdf88}, + {0x9a31bf31, 0xffffd87cffffdf89}, + {0x9a31bf32, 0xffffd87cffffdf8a}, + {0x9a31bf33, 0xffffd87cffffdf8b}, + {0x9a31bf34, 0xffffd87cffffdf8c}, + {0x9a31bf35, 0xffffd87cffffdf8d}, + {0x9a31bf36, 0xffffd87cffffdf8e}, + {0x9a31bf37, 0xffffd87cffffdf8f}, + {0x9a31bf38, 0xffffd87cffffdf90}, + {0x9a31bf39, 0xffffd87cffffdf91}, + {0x9a31c030, 0xffffd87cffffdf92}, + {0x9a31c031, 0xffffd87cffffdf93}, + {0x9a31c032, 0xffffd87cffffdf94}, + {0x9a31c033, 0xffffd87cffffdf95}, + {0x9a31c034, 0xffffd87cffffdf96}, + {0x9a31c035, 0xffffd87cffffdf97}, + {0x9a31c036, 0xffffd87cffffdf98}, + {0x9a31c037, 0xffffd87cffffdf99}, + {0x9a31c038, 0xffffd87cffffdf9a}, + {0x9a31c039, 0xffffd87cffffdf9b}, + {0x9a31c130, 0xffffd87cffffdf9c}, + {0x9a31c131, 0xffffd87cffffdf9d}, + {0x9a31c132, 0xffffd87cffffdf9e}, + {0x9a31c133, 0xffffd87cffffdf9f}, + {0x9a31c134, 0xffffd87cffffdfa0}, + {0x9a31c135, 0xffffd87cffffdfa1}, + {0x9a31c136, 0xffffd87cffffdfa2}, + {0x9a31c137, 0xffffd87cffffdfa3}, + {0x9a31c138, 0xffffd87cffffdfa4}, + {0x9a31c139, 0xffffd87cffffdfa5}, + {0x9a31c230, 0xffffd87cffffdfa6}, + {0x9a31c231, 0xffffd87cffffdfa7}, + {0x9a31c232, 0xffffd87cffffdfa8}, + {0x9a31c233, 0xffffd87cffffdfa9}, + {0x9a31c234, 0xffffd87cffffdfaa}, + {0x9a31c235, 0xffffd87cffffdfab}, + {0x9a31c236, 0xffffd87cffffdfac}, + {0x9a31c237, 0xffffd87cffffdfad}, + {0x9a31c238, 0xffffd87cffffdfae}, + {0x9a31c239, 0xffffd87cffffdfaf}, + {0x9a31c330, 0xffffd87cffffdfb0}, + {0x9a31c331, 0xffffd87cffffdfb1}, + {0x9a31c332, 0xffffd87cffffdfb2}, + {0x9a31c333, 0xffffd87cffffdfb3}, + {0x9a31c334, 0xffffd87cffffdfb4}, + {0x9a31c335, 0xffffd87cffffdfb5}, + {0x9a31c336, 0xffffd87cffffdfb6}, + {0x9a31c337, 0xffffd87cffffdfb7}, + {0x9a31c338, 0xffffd87cffffdfb8}, + {0x9a31c339, 0xffffd87cffffdfb9}, + {0x9a31c430, 0xffffd87cffffdfba}, + {0x9a31c431, 0xffffd87cffffdfbb}, + {0x9a31c432, 0xffffd87cffffdfbc}, + {0x9a31c433, 0xffffd87cffffdfbd}, + {0x9a31c434, 0xffffd87cffffdfbe}, + {0x9a31c435, 0xffffd87cffffdfbf}, + {0x9a31c436, 0xffffd87cffffdfc0}, + {0x9a31c437, 0xffffd87cffffdfc1}, + {0x9a31c438, 0xffffd87cffffdfc2}, + {0x9a31c439, 0xffffd87cffffdfc3}, + {0x9a31c530, 0xffffd87cffffdfc4}, + {0x9a31c531, 0xffffd87cffffdfc5}, + {0x9a31c532, 0xffffd87cffffdfc6}, + {0x9a31c533, 0xffffd87cffffdfc7}, + {0x9a31c534, 0xffffd87cffffdfc8}, + {0x9a31c535, 0xffffd87cffffdfc9}, + {0x9a31c536, 0xffffd87cffffdfca}, + {0x9a31c537, 0xffffd87cffffdfcb}, + {0x9a31c538, 0xffffd87cffffdfcc}, + {0x9a31c539, 0xffffd87cffffdfcd}, + {0x9a31c630, 0xffffd87cffffdfce}, + {0x9a31c631, 0xffffd87cffffdfcf}, + {0x9a31c632, 0xffffd87cffffdfd0}, + {0x9a31c633, 0xffffd87cffffdfd1}, + {0x9a31c634, 0xffffd87cffffdfd2}, + {0x9a31c635, 0xffffd87cffffdfd3}, + {0x9a31c636, 0xffffd87cffffdfd4}, + {0x9a31c637, 0xffffd87cffffdfd5}, + {0x9a31c638, 0xffffd87cffffdfd6}, + {0x9a31c639, 0xffffd87cffffdfd7}, + {0x9a31c730, 0xffffd87cffffdfd8}, + {0x9a31c731, 0xffffd87cffffdfd9}, + {0x9a31c732, 0xffffd87cffffdfda}, + {0x9a31c733, 0xffffd87cffffdfdb}, + {0x9a31c734, 0xffffd87cffffdfdc}, + {0x9a31c735, 0xffffd87cffffdfdd}, + {0x9a31c736, 0xffffd87cffffdfde}, + {0x9a31c737, 0xffffd87cffffdfdf}, + {0x9a31c738, 0xffffd87cffffdfe0}, + {0x9a31c739, 0xffffd87cffffdfe1}, + {0x9a31c830, 0xffffd87cffffdfe2}, + {0x9a31c831, 0xffffd87cffffdfe3}, + {0x9a31c832, 0xffffd87cffffdfe4}, + {0x9a31c833, 0xffffd87cffffdfe5}, + {0x9a31c834, 0xffffd87cffffdfe6}, + {0x9a31c835, 0xffffd87cffffdfe7}, + {0x9a31c836, 0xffffd87cffffdfe8}, + {0x9a31c837, 0xffffd87cffffdfe9}, + {0x9a31c838, 0xffffd87cffffdfea}, + {0x9a31c839, 0xffffd87cffffdfeb}, + {0x9a31c930, 0xffffd87cffffdfec}, + {0x9a31c931, 0xffffd87cffffdfed}, + {0x9a31c932, 0xffffd87cffffdfee}, + {0x9a31c933, 0xffffd87cffffdfef}, + {0x9a31c934, 0xffffd87cffffdff0}, + {0x9a31c935, 0xffffd87cffffdff1}, + {0x9a31c936, 0xffffd87cffffdff2}, + {0x9a31c937, 0xffffd87cffffdff3}, + {0x9a31c938, 0xffffd87cffffdff4}, + {0x9a31c939, 0xffffd87cffffdff5}, + {0x9a31ca30, 0xffffd87cffffdff6}, + {0x9a31ca31, 0xffffd87cffffdff7}, + {0x9a31ca32, 0xffffd87cffffdff8}, + {0x9a31ca33, 0xffffd87cffffdff9}, + {0x9a31ca34, 0xffffd87cffffdffa}, + {0x9a31ca35, 0xffffd87cffffdffb}, + {0x9a31ca36, 0xffffd87cffffdffc}, + {0x9a31ca37, 0xffffd87cffffdffd}, + {0x9a31ca38, 0xffffd87cffffdffe}, + {0x9a31ca39, 0xffffd87cffffdfff}, + {0x9a31cb30, 0xffffd87dffffdc00}, + {0x9a31cb31, 0xffffd87dffffdc01}, + {0x9a31cb32, 0xffffd87dffffdc02}, + {0x9a31cb33, 0xffffd87dffffdc03}, + {0x9a31cb34, 0xffffd87dffffdc04}, + {0x9a31cb35, 0xffffd87dffffdc05}, + {0x9a31cb36, 0xffffd87dffffdc06}, + {0x9a31cb37, 0xffffd87dffffdc07}, + {0x9a31cb38, 0xffffd87dffffdc08}, + {0x9a31cb39, 0xffffd87dffffdc09}, + {0x9a31cc30, 0xffffd87dffffdc0a}, + {0x9a31cc31, 0xffffd87dffffdc0b}, + {0x9a31cc32, 0xffffd87dffffdc0c}, + {0x9a31cc33, 0xffffd87dffffdc0d}, + {0x9a31cc34, 0xffffd87dffffdc0e}, + {0x9a31cc35, 0xffffd87dffffdc0f}, + {0x9a31cc36, 0xffffd87dffffdc10}, + {0x9a31cc37, 0xffffd87dffffdc11}, + {0x9a31cc38, 0xffffd87dffffdc12}, + {0x9a31cc39, 0xffffd87dffffdc13}, + {0x9a31cd30, 0xffffd87dffffdc14}, + {0x9a31cd31, 0xffffd87dffffdc15}, + {0x9a31cd32, 0xffffd87dffffdc16}, + {0x9a31cd33, 0xffffd87dffffdc17}, + {0x9a31cd34, 0xffffd87dffffdc18}, + {0x9a31cd35, 0xffffd87dffffdc19}, + {0x9a31cd36, 0xffffd87dffffdc1a}, + {0x9a31cd37, 0xffffd87dffffdc1b}, + {0x9a31cd38, 0xffffd87dffffdc1c}, + {0x9a31cd39, 0xffffd87dffffdc1d}, + {0x9a31ce30, 0xffffd87dffffdc1e}, + {0x9a31ce31, 0xffffd87dffffdc1f}, + {0x9a31ce32, 0xffffd87dffffdc20}, + {0x9a31ce33, 0xffffd87dffffdc21}, + {0x9a31ce34, 0xffffd87dffffdc22}, + {0x9a31ce35, 0xffffd87dffffdc23}, + {0x9a31ce36, 0xffffd87dffffdc24}, + {0x9a31ce37, 0xffffd87dffffdc25}, + {0x9a31ce38, 0xffffd87dffffdc26}, + {0x9a31ce39, 0xffffd87dffffdc27}, + {0x9a31cf30, 0xffffd87dffffdc28}, + {0x9a31cf31, 0xffffd87dffffdc29}, + {0x9a31cf32, 0xffffd87dffffdc2a}, + {0x9a31cf33, 0xffffd87dffffdc2b}, + {0x9a31cf34, 0xffffd87dffffdc2c}, + {0x9a31cf35, 0xffffd87dffffdc2d}, + {0x9a31cf36, 0xffffd87dffffdc2e}, + {0x9a31cf37, 0xffffd87dffffdc2f}, + {0x9a31cf38, 0xffffd87dffffdc30}, + {0x9a31cf39, 0xffffd87dffffdc31}, + {0x9a31d030, 0xffffd87dffffdc32}, + {0x9a31d031, 0xffffd87dffffdc33}, + {0x9a31d032, 0xffffd87dffffdc34}, + {0x9a31d033, 0xffffd87dffffdc35}, + {0x9a31d034, 0xffffd87dffffdc36}, + {0x9a31d035, 0xffffd87dffffdc37}, + {0x9a31d036, 0xffffd87dffffdc38}, + {0x9a31d037, 0xffffd87dffffdc39}, + {0x9a31d038, 0xffffd87dffffdc3a}, + {0x9a31d039, 0xffffd87dffffdc3b}, + {0x9a31d130, 0xffffd87dffffdc3c}, + {0x9a31d131, 0xffffd87dffffdc3d}, + {0x9a31d132, 0xffffd87dffffdc3e}, + {0x9a31d133, 0xffffd87dffffdc3f}, + {0x9a31d134, 0xffffd87dffffdc40}, + {0x9a31d135, 0xffffd87dffffdc41}, + {0x9a31d136, 0xffffd87dffffdc42}, + {0x9a31d137, 0xffffd87dffffdc43}, + {0x9a31d138, 0xffffd87dffffdc44}, + {0x9a31d139, 0xffffd87dffffdc45}, + {0x9a31d230, 0xffffd87dffffdc46}, + {0x9a31d231, 0xffffd87dffffdc47}, + {0x9a31d232, 0xffffd87dffffdc48}, + {0x9a31d233, 0xffffd87dffffdc49}, + {0x9a31d234, 0xffffd87dffffdc4a}, + {0x9a31d235, 0xffffd87dffffdc4b}, + {0x9a31d236, 0xffffd87dffffdc4c}, + {0x9a31d237, 0xffffd87dffffdc4d}, + {0x9a31d238, 0xffffd87dffffdc4e}, + {0x9a31d239, 0xffffd87dffffdc4f}, + {0x9a31d330, 0xffffd87dffffdc50}, + {0x9a31d331, 0xffffd87dffffdc51}, + {0x9a31d332, 0xffffd87dffffdc52}, + {0x9a31d333, 0xffffd87dffffdc53}, + {0x9a31d334, 0xffffd87dffffdc54}, + {0x9a31d335, 0xffffd87dffffdc55}, + {0x9a31d336, 0xffffd87dffffdc56}, + {0x9a31d337, 0xffffd87dffffdc57}, + {0x9a31d338, 0xffffd87dffffdc58}, + {0x9a31d339, 0xffffd87dffffdc59}, + {0x9a31d430, 0xffffd87dffffdc5a}, + {0x9a31d431, 0xffffd87dffffdc5b}, + {0x9a31d432, 0xffffd87dffffdc5c}, + {0x9a31d433, 0xffffd87dffffdc5d}, + {0x9a31d434, 0xffffd87dffffdc5e}, + {0x9a31d435, 0xffffd87dffffdc5f}, + {0x9a31d436, 0xffffd87dffffdc60}, + {0x9a31d437, 0xffffd87dffffdc61}, + {0x9a31d438, 0xffffd87dffffdc62}, + {0x9a31d439, 0xffffd87dffffdc63}, + {0x9a31d530, 0xffffd87dffffdc64}, + {0x9a31d531, 0xffffd87dffffdc65}, + {0x9a31d532, 0xffffd87dffffdc66}, + {0x9a31d533, 0xffffd87dffffdc67}, + {0x9a31d534, 0xffffd87dffffdc68}, + {0x9a31d535, 0xffffd87dffffdc69}, + {0x9a31d536, 0xffffd87dffffdc6a}, + {0x9a31d537, 0xffffd87dffffdc6b}, + {0x9a31d538, 0xffffd87dffffdc6c}, + {0x9a31d539, 0xffffd87dffffdc6d}, + {0x9a31d630, 0xffffd87dffffdc6e}, + {0x9a31d631, 0xffffd87dffffdc6f}, + {0x9a31d632, 0xffffd87dffffdc70}, + {0x9a31d633, 0xffffd87dffffdc71}, + {0x9a31d634, 0xffffd87dffffdc72}, + {0x9a31d635, 0xffffd87dffffdc73}, + {0x9a31d636, 0xffffd87dffffdc74}, + {0x9a31d637, 0xffffd87dffffdc75}, + {0x9a31d638, 0xffffd87dffffdc76}, + {0x9a31d639, 0xffffd87dffffdc77}, + {0x9a31d730, 0xffffd87dffffdc78}, + {0x9a31d731, 0xffffd87dffffdc79}, + {0x9a31d732, 0xffffd87dffffdc7a}, + {0x9a31d733, 0xffffd87dffffdc7b}, + {0x9a31d734, 0xffffd87dffffdc7c}, + {0x9a31d735, 0xffffd87dffffdc7d}, + {0x9a31d736, 0xffffd87dffffdc7e}, + {0x9a31d737, 0xffffd87dffffdc7f}, + {0x9a31d738, 0xffffd87dffffdc80}, + {0x9a31d739, 0xffffd87dffffdc81}, + {0x9a31d830, 0xffffd87dffffdc82}, + {0x9a31d831, 0xffffd87dffffdc83}, + {0x9a31d832, 0xffffd87dffffdc84}, + {0x9a31d833, 0xffffd87dffffdc85}, + {0x9a31d834, 0xffffd87dffffdc86}, + {0x9a31d835, 0xffffd87dffffdc87}, + {0x9a31d836, 0xffffd87dffffdc88}, + {0x9a31d837, 0xffffd87dffffdc89}, + {0x9a31d838, 0xffffd87dffffdc8a}, + {0x9a31d839, 0xffffd87dffffdc8b}, + {0x9a31d930, 0xffffd87dffffdc8c}, + {0x9a31d931, 0xffffd87dffffdc8d}, + {0x9a31d932, 0xffffd87dffffdc8e}, + {0x9a31d933, 0xffffd87dffffdc8f}, + {0x9a31d934, 0xffffd87dffffdc90}, + {0x9a31d935, 0xffffd87dffffdc91}, + {0x9a31d936, 0xffffd87dffffdc92}, + {0x9a31d937, 0xffffd87dffffdc93}, + {0x9a31d938, 0xffffd87dffffdc94}, + {0x9a31d939, 0xffffd87dffffdc95}, + {0x9a31da30, 0xffffd87dffffdc96}, + {0x9a31da31, 0xffffd87dffffdc97}, + {0x9a31da32, 0xffffd87dffffdc98}, + {0x9a31da33, 0xffffd87dffffdc99}, + {0x9a31da34, 0xffffd87dffffdc9a}, + {0x9a31da35, 0xffffd87dffffdc9b}, + {0x9a31da36, 0xffffd87dffffdc9c}, + {0x9a31da37, 0xffffd87dffffdc9d}, + {0x9a31da38, 0xffffd87dffffdc9e}, + {0x9a31da39, 0xffffd87dffffdc9f}, + {0x9a31db30, 0xffffd87dffffdca0}, + {0x9a31db31, 0xffffd87dffffdca1}, + {0x9a31db32, 0xffffd87dffffdca2}, + {0x9a31db33, 0xffffd87dffffdca3}, + {0x9a31db34, 0xffffd87dffffdca4}, + {0x9a31db35, 0xffffd87dffffdca5}, + {0x9a31db36, 0xffffd87dffffdca6}, + {0x9a31db37, 0xffffd87dffffdca7}, + {0x9a31db38, 0xffffd87dffffdca8}, + {0x9a31db39, 0xffffd87dffffdca9}, + {0x9a31dc30, 0xffffd87dffffdcaa}, + {0x9a31dc31, 0xffffd87dffffdcab}, + {0x9a31dc32, 0xffffd87dffffdcac}, + {0x9a31dc33, 0xffffd87dffffdcad}, + {0x9a31dc34, 0xffffd87dffffdcae}, + {0x9a31dc35, 0xffffd87dffffdcaf}, + {0x9a31dc36, 0xffffd87dffffdcb0}, + {0x9a31dc37, 0xffffd87dffffdcb1}, + {0x9a31dc38, 0xffffd87dffffdcb2}, + {0x9a31dc39, 0xffffd87dffffdcb3}, + {0x9a31dd30, 0xffffd87dffffdcb4}, + {0x9a31dd31, 0xffffd87dffffdcb5}, + {0x9a31dd32, 0xffffd87dffffdcb6}, + {0x9a31dd33, 0xffffd87dffffdcb7}, + {0x9a31dd34, 0xffffd87dffffdcb8}, + {0x9a31dd35, 0xffffd87dffffdcb9}, + {0x9a31dd36, 0xffffd87dffffdcba}, + {0x9a31dd37, 0xffffd87dffffdcbb}, + {0x9a31dd38, 0xffffd87dffffdcbc}, + {0x9a31dd39, 0xffffd87dffffdcbd}, + {0x9a31de30, 0xffffd87dffffdcbe}, + {0x9a31de31, 0xffffd87dffffdcbf}, + {0x9a31de32, 0xffffd87dffffdcc0}, + {0x9a31de33, 0xffffd87dffffdcc1}, + {0x9a31de34, 0xffffd87dffffdcc2}, + {0x9a31de35, 0xffffd87dffffdcc3}, + {0x9a31de36, 0xffffd87dffffdcc4}, + {0x9a31de37, 0xffffd87dffffdcc5}, + {0x9a31de38, 0xffffd87dffffdcc6}, + {0x9a31de39, 0xffffd87dffffdcc7}, + {0x9a31df30, 0xffffd87dffffdcc8}, + {0x9a31df31, 0xffffd87dffffdcc9}, + {0x9a31df32, 0xffffd87dffffdcca}, + {0x9a31df33, 0xffffd87dffffdccb}, + {0x9a31df34, 0xffffd87dffffdccc}, + {0x9a31df35, 0xffffd87dffffdccd}, + {0x9a31df36, 0xffffd87dffffdcce}, + {0x9a31df37, 0xffffd87dffffdccf}, + {0x9a31df38, 0xffffd87dffffdcd0}, + {0x9a31df39, 0xffffd87dffffdcd1}, + {0x9a31e030, 0xffffd87dffffdcd2}, + {0x9a31e031, 0xffffd87dffffdcd3}, + {0x9a31e032, 0xffffd87dffffdcd4}, + {0x9a31e033, 0xffffd87dffffdcd5}, + {0x9a31e034, 0xffffd87dffffdcd6}, + {0x9a31e035, 0xffffd87dffffdcd7}, + {0x9a31e036, 0xffffd87dffffdcd8}, + {0x9a31e037, 0xffffd87dffffdcd9}, + {0x9a31e038, 0xffffd87dffffdcda}, + {0x9a31e039, 0xffffd87dffffdcdb}, + {0x9a31e130, 0xffffd87dffffdcdc}, + {0x9a31e131, 0xffffd87dffffdcdd}, + {0x9a31e132, 0xffffd87dffffdcde}, + {0x9a31e133, 0xffffd87dffffdcdf}, + {0x9a31e134, 0xffffd87dffffdce0}, + {0x9a31e135, 0xffffd87dffffdce1}, + {0x9a31e136, 0xffffd87dffffdce2}, + {0x9a31e137, 0xffffd87dffffdce3}, + {0x9a31e138, 0xffffd87dffffdce4}, + {0x9a31e139, 0xffffd87dffffdce5}, + {0x9a31e230, 0xffffd87dffffdce6}, + {0x9a31e231, 0xffffd87dffffdce7}, + {0x9a31e232, 0xffffd87dffffdce8}, + {0x9a31e233, 0xffffd87dffffdce9}, + {0x9a31e234, 0xffffd87dffffdcea}, + {0x9a31e235, 0xffffd87dffffdceb}, + {0x9a31e236, 0xffffd87dffffdcec}, + {0x9a31e237, 0xffffd87dffffdced}, + {0x9a31e238, 0xffffd87dffffdcee}, + {0x9a31e239, 0xffffd87dffffdcef}, + {0x9a31e330, 0xffffd87dffffdcf0}, + {0x9a31e331, 0xffffd87dffffdcf1}, + {0x9a31e332, 0xffffd87dffffdcf2}, + {0x9a31e333, 0xffffd87dffffdcf3}, + {0x9a31e334, 0xffffd87dffffdcf4}, + {0x9a31e335, 0xffffd87dffffdcf5}, + {0x9a31e336, 0xffffd87dffffdcf6}, + {0x9a31e337, 0xffffd87dffffdcf7}, + {0x9a31e338, 0xffffd87dffffdcf8}, + {0x9a31e339, 0xffffd87dffffdcf9}, + {0x9a31e430, 0xffffd87dffffdcfa}, + {0x9a31e431, 0xffffd87dffffdcfb}, + {0x9a31e432, 0xffffd87dffffdcfc}, + {0x9a31e433, 0xffffd87dffffdcfd}, + {0x9a31e434, 0xffffd87dffffdcfe}, + {0x9a31e435, 0xffffd87dffffdcff}, + {0x9a31e436, 0xffffd87dffffdd00}, + {0x9a31e437, 0xffffd87dffffdd01}, + {0x9a31e438, 0xffffd87dffffdd02}, + {0x9a31e439, 0xffffd87dffffdd03}, + {0x9a31e530, 0xffffd87dffffdd04}, + {0x9a31e531, 0xffffd87dffffdd05}, + {0x9a31e532, 0xffffd87dffffdd06}, + {0x9a31e533, 0xffffd87dffffdd07}, + {0x9a31e534, 0xffffd87dffffdd08}, + {0x9a31e535, 0xffffd87dffffdd09}, + {0x9a31e536, 0xffffd87dffffdd0a}, + {0x9a31e537, 0xffffd87dffffdd0b}, + {0x9a31e538, 0xffffd87dffffdd0c}, + {0x9a31e539, 0xffffd87dffffdd0d}, + {0x9a31e630, 0xffffd87dffffdd0e}, + {0x9a31e631, 0xffffd87dffffdd0f}, + {0x9a31e632, 0xffffd87dffffdd10}, + {0x9a31e633, 0xffffd87dffffdd11}, + {0x9a31e634, 0xffffd87dffffdd12}, + {0x9a31e635, 0xffffd87dffffdd13}, + {0x9a31e636, 0xffffd87dffffdd14}, + {0x9a31e637, 0xffffd87dffffdd15}, + {0x9a31e638, 0xffffd87dffffdd16}, + {0x9a31e639, 0xffffd87dffffdd17}, + {0x9a31e730, 0xffffd87dffffdd18}, + {0x9a31e731, 0xffffd87dffffdd19}, + {0x9a31e732, 0xffffd87dffffdd1a}, + {0x9a31e733, 0xffffd87dffffdd1b}, + {0x9a31e734, 0xffffd87dffffdd1c}, + {0x9a31e735, 0xffffd87dffffdd1d}, + {0x9a31e736, 0xffffd87dffffdd1e}, + {0x9a31e737, 0xffffd87dffffdd1f}, + {0x9a31e738, 0xffffd87dffffdd20}, + {0x9a31e739, 0xffffd87dffffdd21}, + {0x9a31e830, 0xffffd87dffffdd22}, + {0x9a31e831, 0xffffd87dffffdd23}, + {0x9a31e832, 0xffffd87dffffdd24}, + {0x9a31e833, 0xffffd87dffffdd25}, + {0x9a31e834, 0xffffd87dffffdd26}, + {0x9a31e835, 0xffffd87dffffdd27}, + {0x9a31e836, 0xffffd87dffffdd28}, + {0x9a31e837, 0xffffd87dffffdd29}, + {0x9a31e838, 0xffffd87dffffdd2a}, + {0x9a31e839, 0xffffd87dffffdd2b}, + {0x9a31e930, 0xffffd87dffffdd2c}, + {0x9a31e931, 0xffffd87dffffdd2d}, + {0x9a31e932, 0xffffd87dffffdd2e}, + {0x9a31e933, 0xffffd87dffffdd2f}, + {0x9a31e934, 0xffffd87dffffdd30}, + {0x9a31e935, 0xffffd87dffffdd31}, + {0x9a31e936, 0xffffd87dffffdd32}, + {0x9a31e937, 0xffffd87dffffdd33}, + {0x9a31e938, 0xffffd87dffffdd34}, + {0x9a31e939, 0xffffd87dffffdd35}, + {0x9a31ea30, 0xffffd87dffffdd36}, + {0x9a31ea31, 0xffffd87dffffdd37}, + {0x9a31ea32, 0xffffd87dffffdd38}, + {0x9a31ea33, 0xffffd87dffffdd39}, + {0x9a31ea34, 0xffffd87dffffdd3a}, + {0x9a31ea35, 0xffffd87dffffdd3b}, + {0x9a31ea36, 0xffffd87dffffdd3c}, + {0x9a31ea37, 0xffffd87dffffdd3d}, + {0x9a31ea38, 0xffffd87dffffdd3e}, + {0x9a31ea39, 0xffffd87dffffdd3f}, + {0x9a31eb30, 0xffffd87dffffdd40}, + {0x9a31eb31, 0xffffd87dffffdd41}, + {0x9a31eb32, 0xffffd87dffffdd42}, + {0x9a31eb33, 0xffffd87dffffdd43}, + {0x9a31eb34, 0xffffd87dffffdd44}, + {0x9a31eb35, 0xffffd87dffffdd45}, + {0x9a31eb36, 0xffffd87dffffdd46}, + {0x9a31eb37, 0xffffd87dffffdd47}, + {0x9a31eb38, 0xffffd87dffffdd48}, + {0x9a31eb39, 0xffffd87dffffdd49}, + {0x9a31ec30, 0xffffd87dffffdd4a}, + {0x9a31ec31, 0xffffd87dffffdd4b}, + {0x9a31ec32, 0xffffd87dffffdd4c}, + {0x9a31ec33, 0xffffd87dffffdd4d}, + {0x9a31ec34, 0xffffd87dffffdd4e}, + {0x9a31ec35, 0xffffd87dffffdd4f}, + {0x9a31ec36, 0xffffd87dffffdd50}, + {0x9a31ec37, 0xffffd87dffffdd51}, + {0x9a31ec38, 0xffffd87dffffdd52}, + {0x9a31ec39, 0xffffd87dffffdd53}, + {0x9a31ed30, 0xffffd87dffffdd54}, + {0x9a31ed31, 0xffffd87dffffdd55}, + {0x9a31ed32, 0xffffd87dffffdd56}, + {0x9a31ed33, 0xffffd87dffffdd57}, + {0x9a31ed34, 0xffffd87dffffdd58}, + {0x9a31ed35, 0xffffd87dffffdd59}, + {0x9a31ed36, 0xffffd87dffffdd5a}, + {0x9a31ed37, 0xffffd87dffffdd5b}, + {0x9a31ed38, 0xffffd87dffffdd5c}, + {0x9a31ed39, 0xffffd87dffffdd5d}, + {0x9a31ee30, 0xffffd87dffffdd5e}, + {0x9a31ee31, 0xffffd87dffffdd5f}, + {0x9a31ee32, 0xffffd87dffffdd60}, + {0x9a31ee33, 0xffffd87dffffdd61}, + {0x9a31ee34, 0xffffd87dffffdd62}, + {0x9a31ee35, 0xffffd87dffffdd63}, + {0x9a31ee36, 0xffffd87dffffdd64}, + {0x9a31ee37, 0xffffd87dffffdd65}, + {0x9a31ee38, 0xffffd87dffffdd66}, + {0x9a31ee39, 0xffffd87dffffdd67}, + {0x9a31ef30, 0xffffd87dffffdd68}, + {0x9a31ef31, 0xffffd87dffffdd69}, + {0x9a31ef32, 0xffffd87dffffdd6a}, + {0x9a31ef33, 0xffffd87dffffdd6b}, + {0x9a31ef34, 0xffffd87dffffdd6c}, + {0x9a31ef35, 0xffffd87dffffdd6d}, + {0x9a31ef36, 0xffffd87dffffdd6e}, + {0x9a31ef37, 0xffffd87dffffdd6f}, + {0x9a31ef38, 0xffffd87dffffdd70}, + {0x9a31ef39, 0xffffd87dffffdd71}, + {0x9a31f030, 0xffffd87dffffdd72}, + {0x9a31f031, 0xffffd87dffffdd73}, + {0x9a31f032, 0xffffd87dffffdd74}, + {0x9a31f033, 0xffffd87dffffdd75}, + {0x9a31f034, 0xffffd87dffffdd76}, + {0x9a31f035, 0xffffd87dffffdd77}, + {0x9a31f036, 0xffffd87dffffdd78}, + {0x9a31f037, 0xffffd87dffffdd79}, + {0x9a31f038, 0xffffd87dffffdd7a}, + {0x9a31f039, 0xffffd87dffffdd7b}, + {0x9a31f130, 0xffffd87dffffdd7c}, + {0x9a31f131, 0xffffd87dffffdd7d}, + {0x9a31f132, 0xffffd87dffffdd7e}, + {0x9a31f133, 0xffffd87dffffdd7f}, + {0x9a31f134, 0xffffd87dffffdd80}, + {0x9a31f135, 0xffffd87dffffdd81}, + {0x9a31f136, 0xffffd87dffffdd82}, + {0x9a31f137, 0xffffd87dffffdd83}, + {0x9a31f138, 0xffffd87dffffdd84}, + {0x9a31f139, 0xffffd87dffffdd85}, + {0x9a31f230, 0xffffd87dffffdd86}, + {0x9a31f231, 0xffffd87dffffdd87}, + {0x9a31f232, 0xffffd87dffffdd88}, + {0x9a31f233, 0xffffd87dffffdd89}, + {0x9a31f234, 0xffffd87dffffdd8a}, + {0x9a31f235, 0xffffd87dffffdd8b}, + {0x9a31f236, 0xffffd87dffffdd8c}, + {0x9a31f237, 0xffffd87dffffdd8d}, + {0x9a31f238, 0xffffd87dffffdd8e}, + {0x9a31f239, 0xffffd87dffffdd8f}, + {0x9a31f330, 0xffffd87dffffdd90}, + {0x9a31f331, 0xffffd87dffffdd91}, + {0x9a31f332, 0xffffd87dffffdd92}, + {0x9a31f333, 0xffffd87dffffdd93}, + {0x9a31f334, 0xffffd87dffffdd94}, + {0x9a31f335, 0xffffd87dffffdd95}, + {0x9a31f336, 0xffffd87dffffdd96}, + {0x9a31f337, 0xffffd87dffffdd97}, + {0x9a31f338, 0xffffd87dffffdd98}, + {0x9a31f339, 0xffffd87dffffdd99}, + {0x9a31f430, 0xffffd87dffffdd9a}, + {0x9a31f431, 0xffffd87dffffdd9b}, + {0x9a31f432, 0xffffd87dffffdd9c}, + {0x9a31f433, 0xffffd87dffffdd9d}, + {0x9a31f434, 0xffffd87dffffdd9e}, + {0x9a31f435, 0xffffd87dffffdd9f}, + {0x9a31f436, 0xffffd87dffffdda0}, + {0x9a31f437, 0xffffd87dffffdda1}, + {0x9a31f438, 0xffffd87dffffdda2}, + {0x9a31f439, 0xffffd87dffffdda3}, + {0x9a31f530, 0xffffd87dffffdda4}, + {0x9a31f531, 0xffffd87dffffdda5}, + {0x9a31f532, 0xffffd87dffffdda6}, + {0x9a31f533, 0xffffd87dffffdda7}, + {0x9a31f534, 0xffffd87dffffdda8}, + {0x9a31f535, 0xffffd87dffffdda9}, + {0x9a31f536, 0xffffd87dffffddaa}, + {0x9a31f537, 0xffffd87dffffddab}, + {0x9a31f538, 0xffffd87dffffddac}, + {0x9a31f539, 0xffffd87dffffddad}, + {0x9a31f630, 0xffffd87dffffddae}, + {0x9a31f631, 0xffffd87dffffddaf}, + {0x9a31f632, 0xffffd87dffffddb0}, + {0x9a31f633, 0xffffd87dffffddb1}, + {0x9a31f634, 0xffffd87dffffddb2}, + {0x9a31f635, 0xffffd87dffffddb3}, + {0x9a31f636, 0xffffd87dffffddb4}, + {0x9a31f637, 0xffffd87dffffddb5}, + {0x9a31f638, 0xffffd87dffffddb6}, + {0x9a31f639, 0xffffd87dffffddb7}, + {0x9a31f730, 0xffffd87dffffddb8}, + {0x9a31f731, 0xffffd87dffffddb9}, + {0x9a31f732, 0xffffd87dffffddba}, + {0x9a31f733, 0xffffd87dffffddbb}, + {0x9a31f734, 0xffffd87dffffddbc}, + {0x9a31f735, 0xffffd87dffffddbd}, + {0x9a31f736, 0xffffd87dffffddbe}, + {0x9a31f737, 0xffffd87dffffddbf}, + {0x9a31f738, 0xffffd87dffffddc0}, + {0x9a31f739, 0xffffd87dffffddc1}, + {0x9a31f830, 0xffffd87dffffddc2}, + {0x9a31f831, 0xffffd87dffffddc3}, + {0x9a31f832, 0xffffd87dffffddc4}, + {0x9a31f833, 0xffffd87dffffddc5}, + {0x9a31f834, 0xffffd87dffffddc6}, + {0x9a31f835, 0xffffd87dffffddc7}, + {0x9a31f836, 0xffffd87dffffddc8}, + {0x9a31f837, 0xffffd87dffffddc9}, + {0x9a31f838, 0xffffd87dffffddca}, + {0x9a31f839, 0xffffd87dffffddcb}, + {0x9a31f930, 0xffffd87dffffddcc}, + {0x9a31f931, 0xffffd87dffffddcd}, + {0x9a31f932, 0xffffd87dffffddce}, + {0x9a31f933, 0xffffd87dffffddcf}, + {0x9a31f934, 0xffffd87dffffddd0}, + {0x9a31f935, 0xffffd87dffffddd1}, + {0x9a31f936, 0xffffd87dffffddd2}, + {0x9a31f937, 0xffffd87dffffddd3}, + {0x9a31f938, 0xffffd87dffffddd4}, + {0x9a31f939, 0xffffd87dffffddd5}, + {0x9a31fa30, 0xffffd87dffffddd6}, + {0x9a31fa31, 0xffffd87dffffddd7}, + {0x9a31fa32, 0xffffd87dffffddd8}, + {0x9a31fa33, 0xffffd87dffffddd9}, + {0x9a31fa34, 0xffffd87dffffddda}, + {0x9a31fa35, 0xffffd87dffffdddb}, + {0x9a31fa36, 0xffffd87dffffdddc}, + {0x9a31fa37, 0xffffd87dffffdddd}, + {0x9a31fa38, 0xffffd87dffffddde}, + {0x9a31fa39, 0xffffd87dffffdddf}, + {0x9a31fb30, 0xffffd87dffffdde0}, + {0x9a31fb31, 0xffffd87dffffdde1}, + {0x9a31fb32, 0xffffd87dffffdde2}, + {0x9a31fb33, 0xffffd87dffffdde3}, + {0x9a31fb34, 0xffffd87dffffdde4}, + {0x9a31fb35, 0xffffd87dffffdde5}, + {0x9a31fb36, 0xffffd87dffffdde6}, + {0x9a31fb37, 0xffffd87dffffdde7}, + {0x9a31fb38, 0xffffd87dffffdde8}, + {0x9a31fb39, 0xffffd87dffffdde9}, + {0x9a31fc30, 0xffffd87dffffddea}, + {0x9a31fc31, 0xffffd87dffffddeb}, + {0x9a31fc32, 0xffffd87dffffddec}, + {0x9a31fc33, 0xffffd87dffffdded}, + {0x9a31fc34, 0xffffd87dffffddee}, + {0x9a31fc35, 0xffffd87dffffddef}, + {0x9a31fc36, 0xffffd87dffffddf0}, + {0x9a31fc37, 0xffffd87dffffddf1}, + {0x9a31fc38, 0xffffd87dffffddf2}, + {0x9a31fc39, 0xffffd87dffffddf3}, + {0x9a31fd30, 0xffffd87dffffddf4}, + {0x9a31fd31, 0xffffd87dffffddf5}, + {0x9a31fd32, 0xffffd87dffffddf6}, + {0x9a31fd33, 0xffffd87dffffddf7}, + {0x9a31fd34, 0xffffd87dffffddf8}, + {0x9a31fd35, 0xffffd87dffffddf9}, + {0x9a31fd36, 0xffffd87dffffddfa}, + {0x9a31fd37, 0xffffd87dffffddfb}, + {0x9a31fd38, 0xffffd87dffffddfc}, + {0x9a31fd39, 0xffffd87dffffddfd}, + {0x9a31fe30, 0xffffd87dffffddfe}, + {0x9a31fe31, 0xffffd87dffffddff}, + {0x9a31fe32, 0xffffd87dffffde00}, + {0x9a31fe33, 0xffffd87dffffde01}, + {0x9a31fe34, 0xffffd87dffffde02}, + {0x9a31fe35, 0xffffd87dffffde03}, + {0x9a31fe36, 0xffffd87dffffde04}, + {0x9a31fe37, 0xffffd87dffffde05}, + {0x9a31fe38, 0xffffd87dffffde06}, + {0x9a31fe39, 0xffffd87dffffde07}, + {0x9a328130, 0xffffd87dffffde08}, + {0x9a328131, 0xffffd87dffffde09}, + {0x9a328132, 0xffffd87dffffde0a}, + {0x9a328133, 0xffffd87dffffde0b}, + {0x9a328134, 0xffffd87dffffde0c}, + {0x9a328135, 0xffffd87dffffde0d}, + {0x9a328136, 0xffffd87dffffde0e}, + {0x9a328137, 0xffffd87dffffde0f}, + {0x9a328138, 0xffffd87dffffde10}, + {0x9a328139, 0xffffd87dffffde11}, + {0x9a328230, 0xffffd87dffffde12}, + {0x9a328231, 0xffffd87dffffde13}, + {0x9a328232, 0xffffd87dffffde14}, + {0x9a328233, 0xffffd87dffffde15}, + {0x9a328234, 0xffffd87dffffde16}, + {0x9a328235, 0xffffd87dffffde17}, + {0x9a328236, 0xffffd87dffffde18}, + {0x9a328237, 0xffffd87dffffde19}, + {0x9a328238, 0xffffd87dffffde1a}, + {0x9a328239, 0xffffd87dffffde1b}, + {0x9a328330, 0xffffd87dffffde1c}, + {0x9a328331, 0xffffd87dffffde1d}, + {0x9a328332, 0xffffd87dffffde1e}, + {0x9a328333, 0xffffd87dffffde1f}, + {0x9a328334, 0xffffd87dffffde20}, + {0x9a328335, 0xffffd87dffffde21}, + {0x9a328336, 0xffffd87dffffde22}, + {0x9a328337, 0xffffd87dffffde23}, + {0x9a328338, 0xffffd87dffffde24}, + {0x9a328339, 0xffffd87dffffde25}, + {0x9a328430, 0xffffd87dffffde26}, + {0x9a328431, 0xffffd87dffffde27}, + {0x9a328432, 0xffffd87dffffde28}, + {0x9a328433, 0xffffd87dffffde29}, + {0x9a328434, 0xffffd87dffffde2a}, + {0x9a328435, 0xffffd87dffffde2b}, + {0x9a328436, 0xffffd87dffffde2c}, + {0x9a328437, 0xffffd87dffffde2d}, + {0x9a328438, 0xffffd87dffffde2e}, + {0x9a328439, 0xffffd87dffffde2f}, + {0x9a328530, 0xffffd87dffffde30}, + {0x9a328531, 0xffffd87dffffde31}, + {0x9a328532, 0xffffd87dffffde32}, + {0x9a328533, 0xffffd87dffffde33}, + {0x9a328534, 0xffffd87dffffde34}, + {0x9a328535, 0xffffd87dffffde35}, + {0x9a328536, 0xffffd87dffffde36}, + {0x9a328537, 0xffffd87dffffde37}, + {0x9a328538, 0xffffd87dffffde38}, + {0x9a328539, 0xffffd87dffffde39}, + {0x9a328630, 0xffffd87dffffde3a}, + {0x9a328631, 0xffffd87dffffde3b}, + {0x9a328632, 0xffffd87dffffde3c}, + {0x9a328633, 0xffffd87dffffde3d}, + {0x9a328634, 0xffffd87dffffde3e}, + {0x9a328635, 0xffffd87dffffde3f}, + {0x9a328636, 0xffffd87dffffde40}, + {0x9a328637, 0xffffd87dffffde41}, + {0x9a328638, 0xffffd87dffffde42}, + {0x9a328639, 0xffffd87dffffde43}, + {0x9a328730, 0xffffd87dffffde44}, + {0x9a328731, 0xffffd87dffffde45}, + {0x9a328732, 0xffffd87dffffde46}, + {0x9a328733, 0xffffd87dffffde47}, + {0x9a328734, 0xffffd87dffffde48}, + {0x9a328735, 0xffffd87dffffde49}, + {0x9a328736, 0xffffd87dffffde4a}, + {0x9a328737, 0xffffd87dffffde4b}, + {0x9a328738, 0xffffd87dffffde4c}, + {0x9a328739, 0xffffd87dffffde4d}, + {0x9a328830, 0xffffd87dffffde4e}, + {0x9a328831, 0xffffd87dffffde4f}, + {0x9a328832, 0xffffd87dffffde50}, + {0x9a328833, 0xffffd87dffffde51}, + {0x9a328834, 0xffffd87dffffde52}, + {0x9a328835, 0xffffd87dffffde53}, + {0x9a328836, 0xffffd87dffffde54}, + {0x9a328837, 0xffffd87dffffde55}, + {0x9a328838, 0xffffd87dffffde56}, + {0x9a328839, 0xffffd87dffffde57}, + {0x9a328930, 0xffffd87dffffde58}, + {0x9a328931, 0xffffd87dffffde59}, + {0x9a328932, 0xffffd87dffffde5a}, + {0x9a328933, 0xffffd87dffffde5b}, + {0x9a328934, 0xffffd87dffffde5c}, + {0x9a328935, 0xffffd87dffffde5d}, + {0x9a328936, 0xffffd87dffffde5e}, + {0x9a328937, 0xffffd87dffffde5f}, + {0x9a328938, 0xffffd87dffffde60}, + {0x9a328939, 0xffffd87dffffde61}, + {0x9a328a30, 0xffffd87dffffde62}, + {0x9a328a31, 0xffffd87dffffde63}, + {0x9a328a32, 0xffffd87dffffde64}, + {0x9a328a33, 0xffffd87dffffde65}, + {0x9a328a34, 0xffffd87dffffde66}, + {0x9a328a35, 0xffffd87dffffde67}, + {0x9a328a36, 0xffffd87dffffde68}, + {0x9a328a37, 0xffffd87dffffde69}, + {0x9a328a38, 0xffffd87dffffde6a}, + {0x9a328a39, 0xffffd87dffffde6b}, + {0x9a328b30, 0xffffd87dffffde6c}, + {0x9a328b31, 0xffffd87dffffde6d}, + {0x9a328b32, 0xffffd87dffffde6e}, + {0x9a328b33, 0xffffd87dffffde6f}, + {0x9a328b34, 0xffffd87dffffde70}, + {0x9a328b35, 0xffffd87dffffde71}, + {0x9a328b36, 0xffffd87dffffde72}, + {0x9a328b37, 0xffffd87dffffde73}, + {0x9a328b38, 0xffffd87dffffde74}, + {0x9a328b39, 0xffffd87dffffde75}, + {0x9a328c30, 0xffffd87dffffde76}, + {0x9a328c31, 0xffffd87dffffde77}, + {0x9a328c32, 0xffffd87dffffde78}, + {0x9a328c33, 0xffffd87dffffde79}, + {0x9a328c34, 0xffffd87dffffde7a}, + {0x9a328c35, 0xffffd87dffffde7b}, + {0x9a328c36, 0xffffd87dffffde7c}, + {0x9a328c37, 0xffffd87dffffde7d}, + {0x9a328c38, 0xffffd87dffffde7e}, + {0x9a328c39, 0xffffd87dffffde7f}, + {0x9a328d30, 0xffffd87dffffde80}, + {0x9a328d31, 0xffffd87dffffde81}, + {0x9a328d32, 0xffffd87dffffde82}, + {0x9a328d33, 0xffffd87dffffde83}, + {0x9a328d34, 0xffffd87dffffde84}, + {0x9a328d35, 0xffffd87dffffde85}, + {0x9a328d36, 0xffffd87dffffde86}, + {0x9a328d37, 0xffffd87dffffde87}, + {0x9a328d38, 0xffffd87dffffde88}, + {0x9a328d39, 0xffffd87dffffde89}, + {0x9a328e30, 0xffffd87dffffde8a}, + {0x9a328e31, 0xffffd87dffffde8b}, + {0x9a328e32, 0xffffd87dffffde8c}, + {0x9a328e33, 0xffffd87dffffde8d}, + {0x9a328e34, 0xffffd87dffffde8e}, + {0x9a328e35, 0xffffd87dffffde8f}, + {0x9a328e36, 0xffffd87dffffde90}, + {0x9a328e37, 0xffffd87dffffde91}, + {0x9a328e38, 0xffffd87dffffde92}, + {0x9a328e39, 0xffffd87dffffde93}, + {0x9a328f30, 0xffffd87dffffde94}, + {0x9a328f31, 0xffffd87dffffde95}, + {0x9a328f32, 0xffffd87dffffde96}, + {0x9a328f33, 0xffffd87dffffde97}, + {0x9a328f34, 0xffffd87dffffde98}, + {0x9a328f35, 0xffffd87dffffde99}, + {0x9a328f36, 0xffffd87dffffde9a}, + {0x9a328f37, 0xffffd87dffffde9b}, + {0x9a328f38, 0xffffd87dffffde9c}, + {0x9a328f39, 0xffffd87dffffde9d}, + {0x9a329030, 0xffffd87dffffde9e}, + {0x9a329031, 0xffffd87dffffde9f}, + {0x9a329032, 0xffffd87dffffdea0}, + {0x9a329033, 0xffffd87dffffdea1}, + {0x9a329034, 0xffffd87dffffdea2}, + {0x9a329035, 0xffffd87dffffdea3}, + {0x9a329036, 0xffffd87dffffdea4}, + {0x9a329037, 0xffffd87dffffdea5}, + {0x9a329038, 0xffffd87dffffdea6}, + {0x9a329039, 0xffffd87dffffdea7}, + {0x9a329130, 0xffffd87dffffdea8}, + {0x9a329131, 0xffffd87dffffdea9}, + {0x9a329132, 0xffffd87dffffdeaa}, + {0x9a329133, 0xffffd87dffffdeab}, + {0x9a329134, 0xffffd87dffffdeac}, + {0x9a329135, 0xffffd87dffffdead}, + {0x9a329136, 0xffffd87dffffdeae}, + {0x9a329137, 0xffffd87dffffdeaf}, + {0x9a329138, 0xffffd87dffffdeb0}, + {0x9a329139, 0xffffd87dffffdeb1}, + {0x9a329230, 0xffffd87dffffdeb2}, + {0x9a329231, 0xffffd87dffffdeb3}, + {0x9a329232, 0xffffd87dffffdeb4}, + {0x9a329233, 0xffffd87dffffdeb5}, + {0x9a329234, 0xffffd87dffffdeb6}, + {0x9a329235, 0xffffd87dffffdeb7}, + {0x9a329236, 0xffffd87dffffdeb8}, + {0x9a329237, 0xffffd87dffffdeb9}, + {0x9a329238, 0xffffd87dffffdeba}, + {0x9a329239, 0xffffd87dffffdebb}, + {0x9a329330, 0xffffd87dffffdebc}, + {0x9a329331, 0xffffd87dffffdebd}, + {0x9a329332, 0xffffd87dffffdebe}, + {0x9a329333, 0xffffd87dffffdebf}, + {0x9a329334, 0xffffd87dffffdec0}, + {0x9a329335, 0xffffd87dffffdec1}, + {0x9a329336, 0xffffd87dffffdec2}, + {0x9a329337, 0xffffd87dffffdec3}, + {0x9a329338, 0xffffd87dffffdec4}, + {0x9a329339, 0xffffd87dffffdec5}, + {0x9a329430, 0xffffd87dffffdec6}, + {0x9a329431, 0xffffd87dffffdec7}, + {0x9a329432, 0xffffd87dffffdec8}, + {0x9a329433, 0xffffd87dffffdec9}, + {0x9a329434, 0xffffd87dffffdeca}, + {0x9a329435, 0xffffd87dffffdecb}, + {0x9a329436, 0xffffd87dffffdecc}, + {0x9a329437, 0xffffd87dffffdecd}, + {0x9a329438, 0xffffd87dffffdece}, + {0x9a329439, 0xffffd87dffffdecf}, + {0x9a329530, 0xffffd87dffffded0}, + {0x9a329531, 0xffffd87dffffded1}, + {0x9a329532, 0xffffd87dffffded2}, + {0x9a329533, 0xffffd87dffffded3}, + {0x9a329534, 0xffffd87dffffded4}, + {0x9a329535, 0xffffd87dffffded5}, + {0x9a329536, 0xffffd87dffffded6}, + {0x9a329537, 0xffffd87dffffded7}, + {0x9a329538, 0xffffd87dffffded8}, + {0x9a329539, 0xffffd87dffffded9}, + {0x9a329630, 0xffffd87dffffdeda}, + {0x9a329631, 0xffffd87dffffdedb}, + {0x9a329632, 0xffffd87dffffdedc}, + {0x9a329633, 0xffffd87dffffdedd}, + {0x9a329634, 0xffffd87dffffdede}, + {0x9a329635, 0xffffd87dffffdedf}, + {0x9a329636, 0xffffd87dffffdee0}, + {0x9a329637, 0xffffd87dffffdee1}, + {0x9a329638, 0xffffd87dffffdee2}, + {0x9a329639, 0xffffd87dffffdee3}, + {0x9a329730, 0xffffd87dffffdee4}, + {0x9a329731, 0xffffd87dffffdee5}, + {0x9a329732, 0xffffd87dffffdee6}, + {0x9a329733, 0xffffd87dffffdee7}, + {0x9a329734, 0xffffd87dffffdee8}, + {0x9a329735, 0xffffd87dffffdee9}, + {0x9a329736, 0xffffd87dffffdeea}, + {0x9a329737, 0xffffd87dffffdeeb}, + {0x9a329738, 0xffffd87dffffdeec}, + {0x9a329739, 0xffffd87dffffdeed}, + {0x9a329830, 0xffffd87dffffdeee}, + {0x9a329831, 0xffffd87dffffdeef}, + {0x9a329832, 0xffffd87dffffdef0}, + {0x9a329833, 0xffffd87dffffdef1}, + {0x9a329834, 0xffffd87dffffdef2}, + {0x9a329835, 0xffffd87dffffdef3}, + {0x9a329836, 0xffffd87dffffdef4}, + {0x9a329837, 0xffffd87dffffdef5}, + {0x9a329838, 0xffffd87dffffdef6}, + {0x9a329839, 0xffffd87dffffdef7}, + {0x9a329930, 0xffffd87dffffdef8}, + {0x9a329931, 0xffffd87dffffdef9}, + {0x9a329932, 0xffffd87dffffdefa}, + {0x9a329933, 0xffffd87dffffdefb}, + {0x9a329934, 0xffffd87dffffdefc}, + {0x9a329935, 0xffffd87dffffdefd}, + {0x9a329936, 0xffffd87dffffdefe}, + {0x9a329937, 0xffffd87dffffdeff}, + {0x9a329938, 0xffffd87dffffdf00}, + {0x9a329939, 0xffffd87dffffdf01}, + {0x9a329a30, 0xffffd87dffffdf02}, + {0x9a329a31, 0xffffd87dffffdf03}, + {0x9a329a32, 0xffffd87dffffdf04}, + {0x9a329a33, 0xffffd87dffffdf05}, + {0x9a329a34, 0xffffd87dffffdf06}, + {0x9a329a35, 0xffffd87dffffdf07}, + {0x9a329a36, 0xffffd87dffffdf08}, + {0x9a329a37, 0xffffd87dffffdf09}, + {0x9a329a38, 0xffffd87dffffdf0a}, + {0x9a329a39, 0xffffd87dffffdf0b}, + {0x9a329b30, 0xffffd87dffffdf0c}, + {0x9a329b31, 0xffffd87dffffdf0d}, + {0x9a329b32, 0xffffd87dffffdf0e}, + {0x9a329b33, 0xffffd87dffffdf0f}, + {0x9a329b34, 0xffffd87dffffdf10}, + {0x9a329b35, 0xffffd87dffffdf11}, + {0x9a329b36, 0xffffd87dffffdf12}, + {0x9a329b37, 0xffffd87dffffdf13}, + {0x9a329b38, 0xffffd87dffffdf14}, + {0x9a329b39, 0xffffd87dffffdf15}, + {0x9a329c30, 0xffffd87dffffdf16}, + {0x9a329c31, 0xffffd87dffffdf17}, + {0x9a329c32, 0xffffd87dffffdf18}, + {0x9a329c33, 0xffffd87dffffdf19}, + {0x9a329c34, 0xffffd87dffffdf1a}, + {0x9a329c35, 0xffffd87dffffdf1b}, + {0x9a329c36, 0xffffd87dffffdf1c}, + {0x9a329c37, 0xffffd87dffffdf1d}, + {0x9a329c38, 0xffffd87dffffdf1e}, + {0x9a329c39, 0xffffd87dffffdf1f}, + {0x9a329d30, 0xffffd87dffffdf20}, + {0x9a329d31, 0xffffd87dffffdf21}, + {0x9a329d32, 0xffffd87dffffdf22}, + {0x9a329d33, 0xffffd87dffffdf23}, + {0x9a329d34, 0xffffd87dffffdf24}, + {0x9a329d35, 0xffffd87dffffdf25}, + {0x9a329d36, 0xffffd87dffffdf26}, + {0x9a329d37, 0xffffd87dffffdf27}, + {0x9a329d38, 0xffffd87dffffdf28}, + {0x9a329d39, 0xffffd87dffffdf29}, + {0x9a329e30, 0xffffd87dffffdf2a}, + {0x9a329e31, 0xffffd87dffffdf2b}, + {0x9a329e32, 0xffffd87dffffdf2c}, + {0x9a329e33, 0xffffd87dffffdf2d}, + {0x9a329e34, 0xffffd87dffffdf2e}, + {0x9a329e35, 0xffffd87dffffdf2f}, + {0x9a329e36, 0xffffd87dffffdf30}, + {0x9a329e37, 0xffffd87dffffdf31}, + {0x9a329e38, 0xffffd87dffffdf32}, + {0x9a329e39, 0xffffd87dffffdf33}, + {0x9a329f30, 0xffffd87dffffdf34}, + {0x9a329f31, 0xffffd87dffffdf35}, + {0x9a329f32, 0xffffd87dffffdf36}, + {0x9a329f33, 0xffffd87dffffdf37}, + {0x9a329f34, 0xffffd87dffffdf38}, + {0x9a329f35, 0xffffd87dffffdf39}, + {0x9a329f36, 0xffffd87dffffdf3a}, + {0x9a329f37, 0xffffd87dffffdf3b}, + {0x9a329f38, 0xffffd87dffffdf3c}, + {0x9a329f39, 0xffffd87dffffdf3d}, + {0x9a32a030, 0xffffd87dffffdf3e}, + {0x9a32a031, 0xffffd87dffffdf3f}, + {0x9a32a032, 0xffffd87dffffdf40}, + {0x9a32a033, 0xffffd87dffffdf41}, + {0x9a32a034, 0xffffd87dffffdf42}, + {0x9a32a035, 0xffffd87dffffdf43}, + {0x9a32a036, 0xffffd87dffffdf44}, + {0x9a32a037, 0xffffd87dffffdf45}, + {0x9a32a038, 0xffffd87dffffdf46}, + {0x9a32a039, 0xffffd87dffffdf47}, + {0x9a32a130, 0xffffd87dffffdf48}, + {0x9a32a131, 0xffffd87dffffdf49}, + {0x9a32a132, 0xffffd87dffffdf4a}, + {0x9a32a133, 0xffffd87dffffdf4b}, + {0x9a32a134, 0xffffd87dffffdf4c}, + {0x9a32a135, 0xffffd87dffffdf4d}, + {0x9a32a136, 0xffffd87dffffdf4e}, + {0x9a32a137, 0xffffd87dffffdf4f}, + {0x9a32a138, 0xffffd87dffffdf50}, + {0x9a32a139, 0xffffd87dffffdf51}, + {0x9a32a230, 0xffffd87dffffdf52}, + {0x9a32a231, 0xffffd87dffffdf53}, + {0x9a32a232, 0xffffd87dffffdf54}, + {0x9a32a233, 0xffffd87dffffdf55}, + {0x9a32a234, 0xffffd87dffffdf56}, + {0x9a32a235, 0xffffd87dffffdf57}, + {0x9a32a236, 0xffffd87dffffdf58}, + {0x9a32a237, 0xffffd87dffffdf59}, + {0x9a32a238, 0xffffd87dffffdf5a}, + {0x9a32a239, 0xffffd87dffffdf5b}, + {0x9a32a330, 0xffffd87dffffdf5c}, + {0x9a32a331, 0xffffd87dffffdf5d}, + {0x9a32a332, 0xffffd87dffffdf5e}, + {0x9a32a333, 0xffffd87dffffdf5f}, + {0x9a32a334, 0xffffd87dffffdf60}, + {0x9a32a335, 0xffffd87dffffdf61}, + {0x9a32a336, 0xffffd87dffffdf62}, + {0x9a32a337, 0xffffd87dffffdf63}, + {0x9a32a338, 0xffffd87dffffdf64}, + {0x9a32a339, 0xffffd87dffffdf65}, + {0x9a32a430, 0xffffd87dffffdf66}, + {0x9a32a431, 0xffffd87dffffdf67}, + {0x9a32a432, 0xffffd87dffffdf68}, + {0x9a32a433, 0xffffd87dffffdf69}, + {0x9a32a434, 0xffffd87dffffdf6a}, + {0x9a32a435, 0xffffd87dffffdf6b}, + {0x9a32a436, 0xffffd87dffffdf6c}, + {0x9a32a437, 0xffffd87dffffdf6d}, + {0x9a32a438, 0xffffd87dffffdf6e}, + {0x9a32a439, 0xffffd87dffffdf6f}, + {0x9a32a530, 0xffffd87dffffdf70}, + {0x9a32a531, 0xffffd87dffffdf71}, + {0x9a32a532, 0xffffd87dffffdf72}, + {0x9a32a533, 0xffffd87dffffdf73}, + {0x9a32a534, 0xffffd87dffffdf74}, + {0x9a32a535, 0xffffd87dffffdf75}, + {0x9a32a536, 0xffffd87dffffdf76}, + {0x9a32a537, 0xffffd87dffffdf77}, + {0x9a32a538, 0xffffd87dffffdf78}, + {0x9a32a539, 0xffffd87dffffdf79}, + {0x9a32a630, 0xffffd87dffffdf7a}, + {0x9a32a631, 0xffffd87dffffdf7b}, + {0x9a32a632, 0xffffd87dffffdf7c}, + {0x9a32a633, 0xffffd87dffffdf7d}, + {0x9a32a634, 0xffffd87dffffdf7e}, + {0x9a32a635, 0xffffd87dffffdf7f}, + {0x9a32a636, 0xffffd87dffffdf80}, + {0x9a32a637, 0xffffd87dffffdf81}, + {0x9a32a638, 0xffffd87dffffdf82}, + {0x9a32a639, 0xffffd87dffffdf83}, + {0x9a32a730, 0xffffd87dffffdf84}, + {0x9a32a731, 0xffffd87dffffdf85}, + {0x9a32a732, 0xffffd87dffffdf86}, + {0x9a32a733, 0xffffd87dffffdf87}, + {0x9a32a734, 0xffffd87dffffdf88}, + {0x9a32a735, 0xffffd87dffffdf89}, + {0x9a32a736, 0xffffd87dffffdf8a}, + {0x9a32a737, 0xffffd87dffffdf8b}, + {0x9a32a738, 0xffffd87dffffdf8c}, + {0x9a32a739, 0xffffd87dffffdf8d}, + {0x9a32a830, 0xffffd87dffffdf8e}, + {0x9a32a831, 0xffffd87dffffdf8f}, + {0x9a32a832, 0xffffd87dffffdf90}, + {0x9a32a833, 0xffffd87dffffdf91}, + {0x9a32a834, 0xffffd87dffffdf92}, + {0x9a32a835, 0xffffd87dffffdf93}, + {0x9a32a836, 0xffffd87dffffdf94}, + {0x9a32a837, 0xffffd87dffffdf95}, + {0x9a32a838, 0xffffd87dffffdf96}, + {0x9a32a839, 0xffffd87dffffdf97}, + {0x9a32a930, 0xffffd87dffffdf98}, + {0x9a32a931, 0xffffd87dffffdf99}, + {0x9a32a932, 0xffffd87dffffdf9a}, + {0x9a32a933, 0xffffd87dffffdf9b}, + {0x9a32a934, 0xffffd87dffffdf9c}, + {0x9a32a935, 0xffffd87dffffdf9d}, + {0x9a32a936, 0xffffd87dffffdf9e}, + {0x9a32a937, 0xffffd87dffffdf9f}, + {0x9a32a938, 0xffffd87dffffdfa0}, + {0x9a32a939, 0xffffd87dffffdfa1}, + {0x9a32aa30, 0xffffd87dffffdfa2}, + {0x9a32aa31, 0xffffd87dffffdfa3}, + {0x9a32aa32, 0xffffd87dffffdfa4}, + {0x9a32aa33, 0xffffd87dffffdfa5}, + {0x9a32aa34, 0xffffd87dffffdfa6}, + {0x9a32aa35, 0xffffd87dffffdfa7}, + {0x9a32aa36, 0xffffd87dffffdfa8}, + {0x9a32aa37, 0xffffd87dffffdfa9}, + {0x9a32aa38, 0xffffd87dffffdfaa}, + {0x9a32aa39, 0xffffd87dffffdfab}, + {0x9a32ab30, 0xffffd87dffffdfac}, + {0x9a32ab31, 0xffffd87dffffdfad}, + {0x9a32ab32, 0xffffd87dffffdfae}, + {0x9a32ab33, 0xffffd87dffffdfaf}, + {0x9a32ab34, 0xffffd87dffffdfb0}, + {0x9a32ab35, 0xffffd87dffffdfb1}, + {0x9a32ab36, 0xffffd87dffffdfb2}, + {0x9a32ab37, 0xffffd87dffffdfb3}, + {0x9a32ab38, 0xffffd87dffffdfb4}, + {0x9a32ab39, 0xffffd87dffffdfb5}, + {0x9a32ac30, 0xffffd87dffffdfb6}, + {0x9a32ac31, 0xffffd87dffffdfb7}, + {0x9a32ac32, 0xffffd87dffffdfb8}, + {0x9a32ac33, 0xffffd87dffffdfb9}, + {0x9a32ac34, 0xffffd87dffffdfba}, + {0x9a32ac35, 0xffffd87dffffdfbb}, + {0x9a32ac36, 0xffffd87dffffdfbc}, + {0x9a32ac37, 0xffffd87dffffdfbd}, + {0x9a32ac38, 0xffffd87dffffdfbe}, + {0x9a32ac39, 0xffffd87dffffdfbf}, + {0x9a32ad30, 0xffffd87dffffdfc0}, + {0x9a32ad31, 0xffffd87dffffdfc1}, + {0x9a32ad32, 0xffffd87dffffdfc2}, + {0x9a32ad33, 0xffffd87dffffdfc3}, + {0x9a32ad34, 0xffffd87dffffdfc4}, + {0x9a32ad35, 0xffffd87dffffdfc5}, + {0x9a32ad36, 0xffffd87dffffdfc6}, + {0x9a32ad37, 0xffffd87dffffdfc7}, + {0x9a32ad38, 0xffffd87dffffdfc8}, + {0x9a32ad39, 0xffffd87dffffdfc9}, + {0x9a32ae30, 0xffffd87dffffdfca}, + {0x9a32ae31, 0xffffd87dffffdfcb}, + {0x9a32ae32, 0xffffd87dffffdfcc}, + {0x9a32ae33, 0xffffd87dffffdfcd}, + {0x9a32ae34, 0xffffd87dffffdfce}, + {0x9a32ae35, 0xffffd87dffffdfcf}, + {0x9a32ae36, 0xffffd87dffffdfd0}, + {0x9a32ae37, 0xffffd87dffffdfd1}, + {0x9a32ae38, 0xffffd87dffffdfd2}, + {0x9a32ae39, 0xffffd87dffffdfd3}, + {0x9a32af30, 0xffffd87dffffdfd4}, + {0x9a32af31, 0xffffd87dffffdfd5}, + {0x9a32af32, 0xffffd87dffffdfd6}, + {0x9a32af33, 0xffffd87dffffdfd7}, + {0x9a32af34, 0xffffd87dffffdfd8}, + {0x9a32af35, 0xffffd87dffffdfd9}, + {0x9a32af36, 0xffffd87dffffdfda}, + {0x9a32af37, 0xffffd87dffffdfdb}, + {0x9a32af38, 0xffffd87dffffdfdc}, + {0x9a32af39, 0xffffd87dffffdfdd}, + {0x9a32b030, 0xffffd87dffffdfde}, + {0x9a32b031, 0xffffd87dffffdfdf}, + {0x9a32b032, 0xffffd87dffffdfe0}, + {0x9a32b033, 0xffffd87dffffdfe1}, + {0x9a32b034, 0xffffd87dffffdfe2}, + {0x9a32b035, 0xffffd87dffffdfe3}, + {0x9a32b036, 0xffffd87dffffdfe4}, + {0x9a32b037, 0xffffd87dffffdfe5}, + {0x9a32b038, 0xffffd87dffffdfe6}, + {0x9a32b039, 0xffffd87dffffdfe7}, + {0x9a32b130, 0xffffd87dffffdfe8}, + {0x9a32b131, 0xffffd87dffffdfe9}, + {0x9a32b132, 0xffffd87dffffdfea}, + {0x9a32b133, 0xffffd87dffffdfeb}, + {0x9a32b134, 0xffffd87dffffdfec}, + {0x9a32b135, 0xffffd87dffffdfed}, + {0x9a32b136, 0xffffd87dffffdfee}, + {0x9a32b137, 0xffffd87dffffdfef}, + {0x9a32b138, 0xffffd87dffffdff0}, + {0x9a32b139, 0xffffd87dffffdff1}, + {0x9a32b230, 0xffffd87dffffdff2}, + {0x9a32b231, 0xffffd87dffffdff3}, + {0x9a32b232, 0xffffd87dffffdff4}, + {0x9a32b233, 0xffffd87dffffdff5}, + {0x9a32b234, 0xffffd87dffffdff6}, + {0x9a32b235, 0xffffd87dffffdff7}, + {0x9a32b236, 0xffffd87dffffdff8}, + {0x9a32b237, 0xffffd87dffffdff9}, + {0x9a32b238, 0xffffd87dffffdffa}, + {0x9a32b239, 0xffffd87dffffdffb}, + {0x9a32b330, 0xffffd87dffffdffc}, + {0x9a32b331, 0xffffd87dffffdffd}, + {0x9a32b332, 0xffffd87dffffdffe}, + {0x9a32b333, 0xffffd87dffffdfff}, + {0x9a32b334, 0xffffd87effffdc00}, + {0x9a32b335, 0xffffd87effffdc01}, + {0x9a32b336, 0xffffd87effffdc02}, + {0x9a32b337, 0xffffd87effffdc03}, + {0x9a32b338, 0xffffd87effffdc04}, + {0x9a32b339, 0xffffd87effffdc05}, + {0x9a32b430, 0xffffd87effffdc06}, + {0x9a32b431, 0xffffd87effffdc07}, + {0x9a32b432, 0xffffd87effffdc08}, + {0x9a32b433, 0xffffd87effffdc09}, + {0x9a32b434, 0xffffd87effffdc0a}, + {0x9a32b435, 0xffffd87effffdc0b}, + {0x9a32b436, 0xffffd87effffdc0c}, + {0x9a32b437, 0xffffd87effffdc0d}, + {0x9a32b438, 0xffffd87effffdc0e}, + {0x9a32b439, 0xffffd87effffdc0f}, + {0x9a32b530, 0xffffd87effffdc10}, + {0x9a32b531, 0xffffd87effffdc11}, + {0x9a32b532, 0xffffd87effffdc12}, + {0x9a32b533, 0xffffd87effffdc13}, + {0x9a32b534, 0xffffd87effffdc14}, + {0x9a32b535, 0xffffd87effffdc15}, + {0x9a32b536, 0xffffd87effffdc16}, + {0x9a32b537, 0xffffd87effffdc17}, + {0x9a32b538, 0xffffd87effffdc18}, + {0x9a32b539, 0xffffd87effffdc19}, + {0x9a32b630, 0xffffd87effffdc1a}, + {0x9a32b631, 0xffffd87effffdc1b}, + {0x9a32b632, 0xffffd87effffdc1c}, + {0x9a32b633, 0xffffd87effffdc1d}, + {0x9a32b634, 0xffffd87effffdc1e}, + {0x9a32b635, 0xffffd87effffdc1f}, + {0x9a32b636, 0xffffd87effffdc20}, + {0x9a32b637, 0xffffd87effffdc21}, + {0x9a32b638, 0xffffd87effffdc22}, + {0x9a32b639, 0xffffd87effffdc23}, + {0x9a32b730, 0xffffd87effffdc24}, + {0x9a32b731, 0xffffd87effffdc25}, + {0x9a32b732, 0xffffd87effffdc26}, + {0x9a32b733, 0xffffd87effffdc27}, + {0x9a32b734, 0xffffd87effffdc28}, + {0x9a32b735, 0xffffd87effffdc29}, + {0x9a32b736, 0xffffd87effffdc2a}, + {0x9a32b737, 0xffffd87effffdc2b}, + {0x9a32b738, 0xffffd87effffdc2c}, + {0x9a32b739, 0xffffd87effffdc2d}, + {0x9a32b830, 0xffffd87effffdc2e}, + {0x9a32b831, 0xffffd87effffdc2f}, + {0x9a32b832, 0xffffd87effffdc30}, + {0x9a32b833, 0xffffd87effffdc31}, + {0x9a32b834, 0xffffd87effffdc32}, + {0x9a32b835, 0xffffd87effffdc33}, + {0x9a32b836, 0xffffd87effffdc34}, + {0x9a32b837, 0xffffd87effffdc35}, + {0x9a32b838, 0xffffd87effffdc36}, + {0x9a32b839, 0xffffd87effffdc37}, + {0x9a32b930, 0xffffd87effffdc38}, + {0x9a32b931, 0xffffd87effffdc39}, + {0x9a32b932, 0xffffd87effffdc3a}, + {0x9a32b933, 0xffffd87effffdc3b}, + {0x9a32b934, 0xffffd87effffdc3c}, + {0x9a32b935, 0xffffd87effffdc3d}, + {0x9a32b936, 0xffffd87effffdc3e}, + {0x9a32b937, 0xffffd87effffdc3f}, + {0x9a32b938, 0xffffd87effffdc40}, + {0x9a32b939, 0xffffd87effffdc41}, + {0x9a32ba30, 0xffffd87effffdc42}, + {0x9a32ba31, 0xffffd87effffdc43}, + {0x9a32ba32, 0xffffd87effffdc44}, + {0x9a32ba33, 0xffffd87effffdc45}, + {0x9a32ba34, 0xffffd87effffdc46}, + {0x9a32ba35, 0xffffd87effffdc47}, + {0x9a32ba36, 0xffffd87effffdc48}, + {0x9a32ba37, 0xffffd87effffdc49}, + {0x9a32ba38, 0xffffd87effffdc4a}, + {0x9a32ba39, 0xffffd87effffdc4b}, + {0x9a32bb30, 0xffffd87effffdc4c}, + {0x9a32bb31, 0xffffd87effffdc4d}, + {0x9a32bb32, 0xffffd87effffdc4e}, + {0x9a32bb33, 0xffffd87effffdc4f}, + {0x9a32bb34, 0xffffd87effffdc50}, + {0x9a32bb35, 0xffffd87effffdc51}, + {0x9a32bb36, 0xffffd87effffdc52}, + {0x9a32bb37, 0xffffd87effffdc53}, + {0x9a32bb38, 0xffffd87effffdc54}, + {0x9a32bb39, 0xffffd87effffdc55}, + {0x9a32bc30, 0xffffd87effffdc56}, + {0x9a32bc31, 0xffffd87effffdc57}, + {0x9a32bc32, 0xffffd87effffdc58}, + {0x9a32bc33, 0xffffd87effffdc59}, + {0x9a32bc34, 0xffffd87effffdc5a}, + {0x9a32bc35, 0xffffd87effffdc5b}, + {0x9a32bc36, 0xffffd87effffdc5c}, + {0x9a32bc37, 0xffffd87effffdc5d}, + {0x9a32bc38, 0xffffd87effffdc5e}, + {0x9a32bc39, 0xffffd87effffdc5f}, + {0x9a32bd30, 0xffffd87effffdc60}, + {0x9a32bd31, 0xffffd87effffdc61}, + {0x9a32bd32, 0xffffd87effffdc62}, + {0x9a32bd33, 0xffffd87effffdc63}, + {0x9a32bd34, 0xffffd87effffdc64}, + {0x9a32bd35, 0xffffd87effffdc65}, + {0x9a32bd36, 0xffffd87effffdc66}, + {0x9a32bd37, 0xffffd87effffdc67}, + {0x9a32bd38, 0xffffd87effffdc68}, + {0x9a32bd39, 0xffffd87effffdc69}, + {0x9a32be30, 0xffffd87effffdc6a}, + {0x9a32be31, 0xffffd87effffdc6b}, + {0x9a32be32, 0xffffd87effffdc6c}, + {0x9a32be33, 0xffffd87effffdc6d}, + {0x9a32be34, 0xffffd87effffdc6e}, + {0x9a32be35, 0xffffd87effffdc6f}, + {0x9a32be36, 0xffffd87effffdc70}, + {0x9a32be37, 0xffffd87effffdc71}, + {0x9a32be38, 0xffffd87effffdc72}, + {0x9a32be39, 0xffffd87effffdc73}, + {0x9a32bf30, 0xffffd87effffdc74}, + {0x9a32bf31, 0xffffd87effffdc75}, + {0x9a32bf32, 0xffffd87effffdc76}, + {0x9a32bf33, 0xffffd87effffdc77}, + {0x9a32bf34, 0xffffd87effffdc78}, + {0x9a32bf35, 0xffffd87effffdc79}, + {0x9a32bf36, 0xffffd87effffdc7a}, + {0x9a32bf37, 0xffffd87effffdc7b}, + {0x9a32bf38, 0xffffd87effffdc7c}, + {0x9a32bf39, 0xffffd87effffdc7d}, + {0x9a32c030, 0xffffd87effffdc7e}, + {0x9a32c031, 0xffffd87effffdc7f}, + {0x9a32c032, 0xffffd87effffdc80}, + {0x9a32c033, 0xffffd87effffdc81}, + {0x9a32c034, 0xffffd87effffdc82}, + {0x9a32c035, 0xffffd87effffdc83}, + {0x9a32c036, 0xffffd87effffdc84}, + {0x9a32c037, 0xffffd87effffdc85}, + {0x9a32c038, 0xffffd87effffdc86}, + {0x9a32c039, 0xffffd87effffdc87}, + {0x9a32c130, 0xffffd87effffdc88}, + {0x9a32c131, 0xffffd87effffdc89}, + {0x9a32c132, 0xffffd87effffdc8a}, + {0x9a32c133, 0xffffd87effffdc8b}, + {0x9a32c134, 0xffffd87effffdc8c}, + {0x9a32c135, 0xffffd87effffdc8d}, + {0x9a32c136, 0xffffd87effffdc8e}, + {0x9a32c137, 0xffffd87effffdc8f}, + {0x9a32c138, 0xffffd87effffdc90}, + {0x9a32c139, 0xffffd87effffdc91}, + {0x9a32c230, 0xffffd87effffdc92}, + {0x9a32c231, 0xffffd87effffdc93}, + {0x9a32c232, 0xffffd87effffdc94}, + {0x9a32c233, 0xffffd87effffdc95}, + {0x9a32c234, 0xffffd87effffdc96}, + {0x9a32c235, 0xffffd87effffdc97}, + {0x9a32c236, 0xffffd87effffdc98}, + {0x9a32c237, 0xffffd87effffdc99}, + {0x9a32c238, 0xffffd87effffdc9a}, + {0x9a32c239, 0xffffd87effffdc9b}, + {0x9a32c330, 0xffffd87effffdc9c}, + {0x9a32c331, 0xffffd87effffdc9d}, + {0x9a32c332, 0xffffd87effffdc9e}, + {0x9a32c333, 0xffffd87effffdc9f}, + {0x9a32c334, 0xffffd87effffdca0}, + {0x9a32c335, 0xffffd87effffdca1}, + {0x9a32c336, 0xffffd87effffdca2}, + {0x9a32c337, 0xffffd87effffdca3}, + {0x9a32c338, 0xffffd87effffdca4}, + {0x9a32c339, 0xffffd87effffdca5}, + {0x9a32c430, 0xffffd87effffdca6}, + {0x9a32c431, 0xffffd87effffdca7}, + {0x9a32c432, 0xffffd87effffdca8}, + {0x9a32c433, 0xffffd87effffdca9}, + {0x9a32c434, 0xffffd87effffdcaa}, + {0x9a32c435, 0xffffd87effffdcab}, + {0x9a32c436, 0xffffd87effffdcac}, + {0x9a32c437, 0xffffd87effffdcad}, + {0x9a32c438, 0xffffd87effffdcae}, + {0x9a32c439, 0xffffd87effffdcaf}, + {0x9a32c530, 0xffffd87effffdcb0}, + {0x9a32c531, 0xffffd87effffdcb1}, + {0x9a32c532, 0xffffd87effffdcb2}, + {0x9a32c533, 0xffffd87effffdcb3}, + {0x9a32c534, 0xffffd87effffdcb4}, + {0x9a32c535, 0xffffd87effffdcb5}, + {0x9a32c536, 0xffffd87effffdcb6}, + {0x9a32c537, 0xffffd87effffdcb7}, + {0x9a32c538, 0xffffd87effffdcb8}, + {0x9a32c539, 0xffffd87effffdcb9}, + {0x9a32c630, 0xffffd87effffdcba}, + {0x9a32c631, 0xffffd87effffdcbb}, + {0x9a32c632, 0xffffd87effffdcbc}, + {0x9a32c633, 0xffffd87effffdcbd}, + {0x9a32c634, 0xffffd87effffdcbe}, + {0x9a32c635, 0xffffd87effffdcbf}, + {0x9a32c636, 0xffffd87effffdcc0}, + {0x9a32c637, 0xffffd87effffdcc1}, + {0x9a32c638, 0xffffd87effffdcc2}, + {0x9a32c639, 0xffffd87effffdcc3}, + {0x9a32c730, 0xffffd87effffdcc4}, + {0x9a32c731, 0xffffd87effffdcc5}, + {0x9a32c732, 0xffffd87effffdcc6}, + {0x9a32c733, 0xffffd87effffdcc7}, + {0x9a32c734, 0xffffd87effffdcc8}, + {0x9a32c735, 0xffffd87effffdcc9}, + {0x9a32c736, 0xffffd87effffdcca}, + {0x9a32c737, 0xffffd87effffdccb}, + {0x9a32c738, 0xffffd87effffdccc}, + {0x9a32c739, 0xffffd87effffdccd}, + {0x9a32c830, 0xffffd87effffdcce}, + {0x9a32c831, 0xffffd87effffdccf}, + {0x9a32c832, 0xffffd87effffdcd0}, + {0x9a32c833, 0xffffd87effffdcd1}, + {0x9a32c834, 0xffffd87effffdcd2}, + {0x9a32c835, 0xffffd87effffdcd3}, + {0x9a32c836, 0xffffd87effffdcd4}, + {0x9a32c837, 0xffffd87effffdcd5}, + {0x9a32c838, 0xffffd87effffdcd6}, + {0x9a32c839, 0xffffd87effffdcd7}, + {0x9a32c930, 0xffffd87effffdcd8}, + {0x9a32c931, 0xffffd87effffdcd9}, + {0x9a32c932, 0xffffd87effffdcda}, + {0x9a32c933, 0xffffd87effffdcdb}, + {0x9a32c934, 0xffffd87effffdcdc}, + {0x9a32c935, 0xffffd87effffdcdd}, + {0x9a32c936, 0xffffd87effffdcde}, + {0x9a32c937, 0xffffd87effffdcdf}, + {0x9a32c938, 0xffffd87effffdce0}, + {0x9a32c939, 0xffffd87effffdce1}, + {0x9a32ca30, 0xffffd87effffdce2}, + {0x9a32ca31, 0xffffd87effffdce3}, + {0x9a32ca32, 0xffffd87effffdce4}, + {0x9a32ca33, 0xffffd87effffdce5}, + {0x9a32ca34, 0xffffd87effffdce6}, + {0x9a32ca35, 0xffffd87effffdce7}, + {0x9a32ca36, 0xffffd87effffdce8}, + {0x9a32ca37, 0xffffd87effffdce9}, + {0x9a32ca38, 0xffffd87effffdcea}, + {0x9a32ca39, 0xffffd87effffdceb}, + {0x9a32cb30, 0xffffd87effffdcec}, + {0x9a32cb31, 0xffffd87effffdced}, + {0x9a32cb32, 0xffffd87effffdcee}, + {0x9a32cb33, 0xffffd87effffdcef}, + {0x9a32cb34, 0xffffd87effffdcf0}, + {0x9a32cb35, 0xffffd87effffdcf1}, + {0x9a32cb36, 0xffffd87effffdcf2}, + {0x9a32cb37, 0xffffd87effffdcf3}, + {0x9a32cb38, 0xffffd87effffdcf4}, + {0x9a32cb39, 0xffffd87effffdcf5}, + {0x9a32cc30, 0xffffd87effffdcf6}, + {0x9a32cc31, 0xffffd87effffdcf7}, + {0x9a32cc32, 0xffffd87effffdcf8}, + {0x9a32cc33, 0xffffd87effffdcf9}, + {0x9a32cc34, 0xffffd87effffdcfa}, + {0x9a32cc35, 0xffffd87effffdcfb}, + {0x9a32cc36, 0xffffd87effffdcfc}, + {0x9a32cc37, 0xffffd87effffdcfd}, + {0x9a32cc38, 0xffffd87effffdcfe}, + {0x9a32cc39, 0xffffd87effffdcff}, + {0x9a32cd30, 0xffffd87effffdd00}, + {0x9a32cd31, 0xffffd87effffdd01}, + {0x9a32cd32, 0xffffd87effffdd02}, + {0x9a32cd33, 0xffffd87effffdd03}, + {0x9a32cd34, 0xffffd87effffdd04}, + {0x9a32cd35, 0xffffd87effffdd05}, + {0x9a32cd36, 0xffffd87effffdd06}, + {0x9a32cd37, 0xffffd87effffdd07}, + {0x9a32cd38, 0xffffd87effffdd08}, + {0x9a32cd39, 0xffffd87effffdd09}, + {0x9a32ce30, 0xffffd87effffdd0a}, + {0x9a32ce31, 0xffffd87effffdd0b}, + {0x9a32ce32, 0xffffd87effffdd0c}, + {0x9a32ce33, 0xffffd87effffdd0d}, + {0x9a32ce34, 0xffffd87effffdd0e}, + {0x9a32ce35, 0xffffd87effffdd0f}, + {0x9a32ce36, 0xffffd87effffdd10}, + {0x9a32ce37, 0xffffd87effffdd11}, + {0x9a32ce38, 0xffffd87effffdd12}, + {0x9a32ce39, 0xffffd87effffdd13}, + {0x9a32cf30, 0xffffd87effffdd14}, + {0x9a32cf31, 0xffffd87effffdd15}, + {0x9a32cf32, 0xffffd87effffdd16}, + {0x9a32cf33, 0xffffd87effffdd17}, + {0x9a32cf34, 0xffffd87effffdd18}, + {0x9a32cf35, 0xffffd87effffdd19}, + {0x9a32cf36, 0xffffd87effffdd1a}, + {0x9a32cf37, 0xffffd87effffdd1b}, + {0x9a32cf38, 0xffffd87effffdd1c}, + {0x9a32cf39, 0xffffd87effffdd1d}, + {0x9a32d030, 0xffffd87effffdd1e}, + {0x9a32d031, 0xffffd87effffdd1f}, + {0x9a32d032, 0xffffd87effffdd20}, + {0x9a32d033, 0xffffd87effffdd21}, + {0x9a32d034, 0xffffd87effffdd22}, + {0x9a32d035, 0xffffd87effffdd23}, + {0x9a32d036, 0xffffd87effffdd24}, + {0x9a32d037, 0xffffd87effffdd25}, + {0x9a32d038, 0xffffd87effffdd26}, + {0x9a32d039, 0xffffd87effffdd27}, + {0x9a32d130, 0xffffd87effffdd28}, + {0x9a32d131, 0xffffd87effffdd29}, + {0x9a32d132, 0xffffd87effffdd2a}, + {0x9a32d133, 0xffffd87effffdd2b}, + {0x9a32d134, 0xffffd87effffdd2c}, + {0x9a32d135, 0xffffd87effffdd2d}, + {0x9a32d136, 0xffffd87effffdd2e}, + {0x9a32d137, 0xffffd87effffdd2f}, + {0x9a32d138, 0xffffd87effffdd30}, + {0x9a32d139, 0xffffd87effffdd31}, + {0x9a32d230, 0xffffd87effffdd32}, + {0x9a32d231, 0xffffd87effffdd33}, + {0x9a32d232, 0xffffd87effffdd34}, + {0x9a32d233, 0xffffd87effffdd35}, + {0x9a32d234, 0xffffd87effffdd36}, + {0x9a32d235, 0xffffd87effffdd37}, + {0x9a32d236, 0xffffd87effffdd38}, + {0x9a32d237, 0xffffd87effffdd39}, + {0x9a32d238, 0xffffd87effffdd3a}, + {0x9a32d239, 0xffffd87effffdd3b}, + {0x9a32d330, 0xffffd87effffdd3c}, + {0x9a32d331, 0xffffd87effffdd3d}, + {0x9a32d332, 0xffffd87effffdd3e}, + {0x9a32d333, 0xffffd87effffdd3f}, + {0x9a32d334, 0xffffd87effffdd40}, + {0x9a32d335, 0xffffd87effffdd41}, + {0x9a32d336, 0xffffd87effffdd42}, + {0x9a32d337, 0xffffd87effffdd43}, + {0x9a32d338, 0xffffd87effffdd44}, + {0x9a32d339, 0xffffd87effffdd45}, + {0x9a32d430, 0xffffd87effffdd46}, + {0x9a32d431, 0xffffd87effffdd47}, + {0x9a32d432, 0xffffd87effffdd48}, + {0x9a32d433, 0xffffd87effffdd49}, + {0x9a32d434, 0xffffd87effffdd4a}, + {0x9a32d435, 0xffffd87effffdd4b}, + {0x9a32d436, 0xffffd87effffdd4c}, + {0x9a32d437, 0xffffd87effffdd4d}, + {0x9a32d438, 0xffffd87effffdd4e}, + {0x9a32d439, 0xffffd87effffdd4f}, + {0x9a32d530, 0xffffd87effffdd50}, + {0x9a32d531, 0xffffd87effffdd51}, + {0x9a32d532, 0xffffd87effffdd52}, + {0x9a32d533, 0xffffd87effffdd53}, + {0x9a32d534, 0xffffd87effffdd54}, + {0x9a32d535, 0xffffd87effffdd55}, + {0x9a32d536, 0xffffd87effffdd56}, + {0x9a32d537, 0xffffd87effffdd57}, + {0x9a32d538, 0xffffd87effffdd58}, + {0x9a32d539, 0xffffd87effffdd59}, + {0x9a32d630, 0xffffd87effffdd5a}, + {0x9a32d631, 0xffffd87effffdd5b}, + {0x9a32d632, 0xffffd87effffdd5c}, + {0x9a32d633, 0xffffd87effffdd5d}, + {0x9a32d634, 0xffffd87effffdd5e}, + {0x9a32d635, 0xffffd87effffdd5f}, + {0x9a32d636, 0xffffd87effffdd60}, + {0x9a32d637, 0xffffd87effffdd61}, + {0x9a32d638, 0xffffd87effffdd62}, + {0x9a32d639, 0xffffd87effffdd63}, + {0x9a32d730, 0xffffd87effffdd64}, + {0x9a32d731, 0xffffd87effffdd65}, + {0x9a32d732, 0xffffd87effffdd66}, + {0x9a32d733, 0xffffd87effffdd67}, + {0x9a32d734, 0xffffd87effffdd68}, + {0x9a32d735, 0xffffd87effffdd69}, + {0x9a32d736, 0xffffd87effffdd6a}, + {0x9a32d737, 0xffffd87effffdd6b}, + {0x9a32d738, 0xffffd87effffdd6c}, + {0x9a32d739, 0xffffd87effffdd6d}, + {0x9a32d830, 0xffffd87effffdd6e}, + {0x9a32d831, 0xffffd87effffdd6f}, + {0x9a32d832, 0xffffd87effffdd70}, + {0x9a32d833, 0xffffd87effffdd71}, + {0x9a32d834, 0xffffd87effffdd72}, + {0x9a32d835, 0xffffd87effffdd73}, + {0x9a32d836, 0xffffd87effffdd74}, + {0x9a32d837, 0xffffd87effffdd75}, + {0x9a32d838, 0xffffd87effffdd76}, + {0x9a32d839, 0xffffd87effffdd77}, + {0x9a32d930, 0xffffd87effffdd78}, + {0x9a32d931, 0xffffd87effffdd79}, + {0x9a32d932, 0xffffd87effffdd7a}, + {0x9a32d933, 0xffffd87effffdd7b}, + {0x9a32d934, 0xffffd87effffdd7c}, + {0x9a32d935, 0xffffd87effffdd7d}, + {0x9a32d936, 0xffffd87effffdd7e}, + {0x9a32d937, 0xffffd87effffdd7f}, + {0x9a32d938, 0xffffd87effffdd80}, + {0x9a32d939, 0xffffd87effffdd81}, + {0x9a32da30, 0xffffd87effffdd82}, + {0x9a32da31, 0xffffd87effffdd83}, + {0x9a32da32, 0xffffd87effffdd84}, + {0x9a32da33, 0xffffd87effffdd85}, + {0x9a32da34, 0xffffd87effffdd86}, + {0x9a32da35, 0xffffd87effffdd87}, + {0x9a32da36, 0xffffd87effffdd88}, + {0x9a32da37, 0xffffd87effffdd89}, + {0x9a32da38, 0xffffd87effffdd8a}, + {0x9a32da39, 0xffffd87effffdd8b}, + {0x9a32db30, 0xffffd87effffdd8c}, + {0x9a32db31, 0xffffd87effffdd8d}, + {0x9a32db32, 0xffffd87effffdd8e}, + {0x9a32db33, 0xffffd87effffdd8f}, + {0x9a32db34, 0xffffd87effffdd90}, + {0x9a32db35, 0xffffd87effffdd91}, + {0x9a32db36, 0xffffd87effffdd92}, + {0x9a32db37, 0xffffd87effffdd93}, + {0x9a32db38, 0xffffd87effffdd94}, + {0x9a32db39, 0xffffd87effffdd95}, + {0x9a32dc30, 0xffffd87effffdd96}, + {0x9a32dc31, 0xffffd87effffdd97}, + {0x9a32dc32, 0xffffd87effffdd98}, + {0x9a32dc33, 0xffffd87effffdd99}, + {0x9a32dc34, 0xffffd87effffdd9a}, + {0x9a32dc35, 0xffffd87effffdd9b}, + {0x9a32dc36, 0xffffd87effffdd9c}, + {0x9a32dc37, 0xffffd87effffdd9d}, + {0x9a32dc38, 0xffffd87effffdd9e}, + {0x9a32dc39, 0xffffd87effffdd9f}, + {0x9a32dd30, 0xffffd87effffdda0}, + {0x9a32dd31, 0xffffd87effffdda1}, + {0x9a32dd32, 0xffffd87effffdda2}, + {0x9a32dd33, 0xffffd87effffdda3}, + {0x9a32dd34, 0xffffd87effffdda4}, + {0x9a32dd35, 0xffffd87effffdda5}, + {0x9a32dd36, 0xffffd87effffdda6}, + {0x9a32dd37, 0xffffd87effffdda7}, + {0x9a32dd38, 0xffffd87effffdda8}, + {0x9a32dd39, 0xffffd87effffdda9}, + {0x9a32de30, 0xffffd87effffddaa}, + {0x9a32de31, 0xffffd87effffddab}, + {0x9a32de32, 0xffffd87effffddac}, + {0x9a32de33, 0xffffd87effffddad}, + {0x9a32de34, 0xffffd87effffddae}, + {0x9a32de35, 0xffffd87effffddaf}, + {0x9a32de36, 0xffffd87effffddb0}, + {0x9a32de37, 0xffffd87effffddb1}, + {0x9a32de38, 0xffffd87effffddb2}, + {0x9a32de39, 0xffffd87effffddb3}, + {0x9a32df30, 0xffffd87effffddb4}, + {0x9a32df31, 0xffffd87effffddb5}, + {0x9a32df32, 0xffffd87effffddb6}, + {0x9a32df33, 0xffffd87effffddb7}, + {0x9a32df34, 0xffffd87effffddb8}, + {0x9a32df35, 0xffffd87effffddb9}, + {0x9a32df36, 0xffffd87effffddba}, + {0x9a32df37, 0xffffd87effffddbb}, + {0x9a32df38, 0xffffd87effffddbc}, + {0x9a32df39, 0xffffd87effffddbd}, + {0x9a32e030, 0xffffd87effffddbe}, + {0x9a32e031, 0xffffd87effffddbf}, + {0x9a32e032, 0xffffd87effffddc0}, + {0x9a32e033, 0xffffd87effffddc1}, + {0x9a32e034, 0xffffd87effffddc2}, + {0x9a32e035, 0xffffd87effffddc3}, + {0x9a32e036, 0xffffd87effffddc4}, + {0x9a32e037, 0xffffd87effffddc5}, + {0x9a32e038, 0xffffd87effffddc6}, + {0x9a32e039, 0xffffd87effffddc7}, + {0x9a32e130, 0xffffd87effffddc8}, + {0x9a32e131, 0xffffd87effffddc9}, + {0x9a32e132, 0xffffd87effffddca}, + {0x9a32e133, 0xffffd87effffddcb}, + {0x9a32e134, 0xffffd87effffddcc}, + {0x9a32e135, 0xffffd87effffddcd}, + {0x9a32e136, 0xffffd87effffddce}, + {0x9a32e137, 0xffffd87effffddcf}, + {0x9a32e138, 0xffffd87effffddd0}, + {0x9a32e139, 0xffffd87effffddd1}, + {0x9a32e230, 0xffffd87effffddd2}, + {0x9a32e231, 0xffffd87effffddd3}, + {0x9a32e232, 0xffffd87effffddd4}, + {0x9a32e233, 0xffffd87effffddd5}, + {0x9a32e234, 0xffffd87effffddd6}, + {0x9a32e235, 0xffffd87effffddd7}, + {0x9a32e236, 0xffffd87effffddd8}, + {0x9a32e237, 0xffffd87effffddd9}, + {0x9a32e238, 0xffffd87effffddda}, + {0x9a32e239, 0xffffd87effffdddb}, + {0x9a32e330, 0xffffd87effffdddc}, + {0x9a32e331, 0xffffd87effffdddd}, + {0x9a32e332, 0xffffd87effffddde}, + {0x9a32e333, 0xffffd87effffdddf}, + {0x9a32e334, 0xffffd87effffdde0}, + {0x9a32e335, 0xffffd87effffdde1}, + {0x9a32e336, 0xffffd87effffdde2}, + {0x9a32e337, 0xffffd87effffdde3}, + {0x9a32e338, 0xffffd87effffdde4}, + {0x9a32e339, 0xffffd87effffdde5}, + {0x9a32e430, 0xffffd87effffdde6}, + {0x9a32e431, 0xffffd87effffdde7}, + {0x9a32e432, 0xffffd87effffdde8}, + {0x9a32e433, 0xffffd87effffdde9}, + {0x9a32e434, 0xffffd87effffddea}, + {0x9a32e435, 0xffffd87effffddeb}, + {0x9a32e436, 0xffffd87effffddec}, + {0x9a32e437, 0xffffd87effffdded}, + {0x9a32e438, 0xffffd87effffddee}, + {0x9a32e439, 0xffffd87effffddef}, + {0x9a32e530, 0xffffd87effffddf0}, + {0x9a32e531, 0xffffd87effffddf1}, + {0x9a32e532, 0xffffd87effffddf2}, + {0x9a32e533, 0xffffd87effffddf3}, + {0x9a32e534, 0xffffd87effffddf4}, + {0x9a32e535, 0xffffd87effffddf5}, + {0x9a32e536, 0xffffd87effffddf6}, + {0x9a32e537, 0xffffd87effffddf7}, + {0x9a32e538, 0xffffd87effffddf8}, + {0x9a32e539, 0xffffd87effffddf9}, + {0x9a32e630, 0xffffd87effffddfa}, + {0x9a32e631, 0xffffd87effffddfb}, + {0x9a32e632, 0xffffd87effffddfc}, + {0x9a32e633, 0xffffd87effffddfd}, + {0x9a32e634, 0xffffd87effffddfe}, + {0x9a32e635, 0xffffd87effffddff}, + {0x9a32e636, 0xffffd87effffde00}, + {0x9a32e637, 0xffffd87effffde01}, + {0x9a32e638, 0xffffd87effffde02}, + {0x9a32e639, 0xffffd87effffde03}, + {0x9a32e730, 0xffffd87effffde04}, + {0x9a32e731, 0xffffd87effffde05}, + {0x9a32e732, 0xffffd87effffde06}, + {0x9a32e733, 0xffffd87effffde07}, + {0x9a32e734, 0xffffd87effffde08}, + {0x9a32e735, 0xffffd87effffde09}, + {0x9a32e736, 0xffffd87effffde0a}, + {0x9a32e737, 0xffffd87effffde0b}, + {0x9a32e738, 0xffffd87effffde0c}, + {0x9a32e739, 0xffffd87effffde0d}, + {0x9a32e830, 0xffffd87effffde0e}, + {0x9a32e831, 0xffffd87effffde0f}, + {0x9a32e832, 0xffffd87effffde10}, + {0x9a32e833, 0xffffd87effffde11}, + {0x9a32e834, 0xffffd87effffde12}, + {0x9a32e835, 0xffffd87effffde13}, + {0x9a32e836, 0xffffd87effffde14}, + {0x9a32e837, 0xffffd87effffde15}, + {0x9a32e838, 0xffffd87effffde16}, + {0x9a32e839, 0xffffd87effffde17}, + {0x9a32e930, 0xffffd87effffde18}, + {0x9a32e931, 0xffffd87effffde19}, + {0x9a32e932, 0xffffd87effffde1a}, + {0x9a32e933, 0xffffd87effffde1b}, + {0x9a32e934, 0xffffd87effffde1c}, + {0x9a32e935, 0xffffd87effffde1d}, + {0x9a32e936, 0xffffd87effffde1e}, + {0x9a32e937, 0xffffd87effffde1f}, + {0x9a32e938, 0xffffd87effffde20}, + {0x9a32e939, 0xffffd87effffde21}, + {0x9a32ea30, 0xffffd87effffde22}, + {0x9a32ea31, 0xffffd87effffde23}, + {0x9a32ea32, 0xffffd87effffde24}, + {0x9a32ea33, 0xffffd87effffde25}, + {0x9a32ea34, 0xffffd87effffde26}, + {0x9a32ea35, 0xffffd87effffde27}, + {0x9a32ea36, 0xffffd87effffde28}, + {0x9a32ea37, 0xffffd87effffde29}, + {0x9a32ea38, 0xffffd87effffde2a}, + {0x9a32ea39, 0xffffd87effffde2b}, + {0x9a32eb30, 0xffffd87effffde2c}, + {0x9a32eb31, 0xffffd87effffde2d}, + {0x9a32eb32, 0xffffd87effffde2e}, + {0x9a32eb33, 0xffffd87effffde2f}, + {0x9a32eb34, 0xffffd87effffde30}, + {0x9a32eb35, 0xffffd87effffde31}, + {0x9a32eb36, 0xffffd87effffde32}, + {0x9a32eb37, 0xffffd87effffde33}, + {0x9a32eb38, 0xffffd87effffde34}, + {0x9a32eb39, 0xffffd87effffde35}, + {0x9a32ec30, 0xffffd87effffde36}, + {0x9a32ec31, 0xffffd87effffde37}, + {0x9a32ec32, 0xffffd87effffde38}, + {0x9a32ec33, 0xffffd87effffde39}, + {0x9a32ec34, 0xffffd87effffde3a}, + {0x9a32ec35, 0xffffd87effffde3b}, + {0x9a32ec36, 0xffffd87effffde3c}, + {0x9a32ec37, 0xffffd87effffde3d}, + {0x9a32ec38, 0xffffd87effffde3e}, + {0x9a32ec39, 0xffffd87effffde3f}, + {0x9a32ed30, 0xffffd87effffde40}, + {0x9a32ed31, 0xffffd87effffde41}, + {0x9a32ed32, 0xffffd87effffde42}, + {0x9a32ed33, 0xffffd87effffde43}, + {0x9a32ed34, 0xffffd87effffde44}, + {0x9a32ed35, 0xffffd87effffde45}, + {0x9a32ed36, 0xffffd87effffde46}, + {0x9a32ed37, 0xffffd87effffde47}, + {0x9a32ed38, 0xffffd87effffde48}, + {0x9a32ed39, 0xffffd87effffde49}, + {0x9a32ee30, 0xffffd87effffde4a}, + {0x9a32ee31, 0xffffd87effffde4b}, + {0x9a32ee32, 0xffffd87effffde4c}, + {0x9a32ee33, 0xffffd87effffde4d}, + {0x9a32ee34, 0xffffd87effffde4e}, + {0x9a32ee35, 0xffffd87effffde4f}, + {0x9a32ee36, 0xffffd87effffde50}, + {0x9a32ee37, 0xffffd87effffde51}, + {0x9a32ee38, 0xffffd87effffde52}, + {0x9a32ee39, 0xffffd87effffde53}, + {0x9a32ef30, 0xffffd87effffde54}, + {0x9a32ef31, 0xffffd87effffde55}, + {0x9a32ef32, 0xffffd87effffde56}, + {0x9a32ef33, 0xffffd87effffde57}, + {0x9a32ef34, 0xffffd87effffde58}, + {0x9a32ef35, 0xffffd87effffde59}, + {0x9a32ef36, 0xffffd87effffde5a}, + {0x9a32ef37, 0xffffd87effffde5b}, + {0x9a32ef38, 0xffffd87effffde5c}, + {0x9a32ef39, 0xffffd87effffde5d}, + {0x9a32f030, 0xffffd87effffde5e}, + {0x9a32f031, 0xffffd87effffde5f}, + {0x9a32f032, 0xffffd87effffde60}, + {0x9a32f033, 0xffffd87effffde61}, + {0x9a32f034, 0xffffd87effffde62}, + {0x9a32f035, 0xffffd87effffde63}, + {0x9a32f036, 0xffffd87effffde64}, + {0x9a32f037, 0xffffd87effffde65}, + {0x9a32f038, 0xffffd87effffde66}, + {0x9a32f039, 0xffffd87effffde67}, + {0x9a32f130, 0xffffd87effffde68}, + {0x9a32f131, 0xffffd87effffde69}, + {0x9a32f132, 0xffffd87effffde6a}, + {0x9a32f133, 0xffffd87effffde6b}, + {0x9a32f134, 0xffffd87effffde6c}, + {0x9a32f135, 0xffffd87effffde6d}, + {0x9a32f136, 0xffffd87effffde6e}, + {0x9a32f137, 0xffffd87effffde6f}, + {0x9a32f138, 0xffffd87effffde70}, + {0x9a32f139, 0xffffd87effffde71}, + {0x9a32f230, 0xffffd87effffde72}, + {0x9a32f231, 0xffffd87effffde73}, + {0x9a32f232, 0xffffd87effffde74}, + {0x9a32f233, 0xffffd87effffde75}, + {0x9a32f234, 0xffffd87effffde76}, + {0x9a32f235, 0xffffd87effffde77}, + {0x9a32f236, 0xffffd87effffde78}, + {0x9a32f237, 0xffffd87effffde79}, + {0x9a32f238, 0xffffd87effffde7a}, + {0x9a32f239, 0xffffd87effffde7b}, + {0x9a32f330, 0xffffd87effffde7c}, + {0x9a32f331, 0xffffd87effffde7d}, + {0x9a32f332, 0xffffd87effffde7e}, + {0x9a32f333, 0xffffd87effffde7f}, + {0x9a32f334, 0xffffd87effffde80}, + {0x9a32f335, 0xffffd87effffde81}, + {0x9a32f336, 0xffffd87effffde82}, + {0x9a32f337, 0xffffd87effffde83}, + {0x9a32f338, 0xffffd87effffde84}, + {0x9a32f339, 0xffffd87effffde85}, + {0x9a32f430, 0xffffd87effffde86}, + {0x9a32f431, 0xffffd87effffde87}, + {0x9a32f432, 0xffffd87effffde88}, + {0x9a32f433, 0xffffd87effffde89}, + {0x9a32f434, 0xffffd87effffde8a}, + {0x9a32f435, 0xffffd87effffde8b}, + {0x9a32f436, 0xffffd87effffde8c}, + {0x9a32f437, 0xffffd87effffde8d}, + {0x9a32f438, 0xffffd87effffde8e}, + {0x9a32f439, 0xffffd87effffde8f}, + {0x9a32f530, 0xffffd87effffde90}, + {0x9a32f531, 0xffffd87effffde91}, + {0x9a32f532, 0xffffd87effffde92}, + {0x9a32f533, 0xffffd87effffde93}, + {0x9a32f534, 0xffffd87effffde94}, + {0x9a32f535, 0xffffd87effffde95}, + {0x9a32f536, 0xffffd87effffde96}, + {0x9a32f537, 0xffffd87effffde97}, + {0x9a32f538, 0xffffd87effffde98}, + {0x9a32f539, 0xffffd87effffde99}, + {0x9a32f630, 0xffffd87effffde9a}, + {0x9a32f631, 0xffffd87effffde9b}, + {0x9a32f632, 0xffffd87effffde9c}, + {0x9a32f633, 0xffffd87effffde9d}, + {0x9a32f634, 0xffffd87effffde9e}, + {0x9a32f635, 0xffffd87effffde9f}, + {0x9a32f636, 0xffffd87effffdea0}, + {0x9a32f637, 0xffffd87effffdea1}, + {0x9a32f638, 0xffffd87effffdea2}, + {0x9a32f639, 0xffffd87effffdea3}, + {0x9a32f730, 0xffffd87effffdea4}, + {0x9a32f731, 0xffffd87effffdea5}, + {0x9a32f732, 0xffffd87effffdea6}, + {0x9a32f733, 0xffffd87effffdea7}, + {0x9a32f734, 0xffffd87effffdea8}, + {0x9a32f735, 0xffffd87effffdea9}, + {0x9a32f736, 0xffffd87effffdeaa}, + {0x9a32f737, 0xffffd87effffdeab}, + {0x9a32f738, 0xffffd87effffdeac}, + {0x9a32f739, 0xffffd87effffdead}, + {0x9a32f830, 0xffffd87effffdeae}, + {0x9a32f831, 0xffffd87effffdeaf}, + {0x9a32f832, 0xffffd87effffdeb0}, + {0x9a32f833, 0xffffd87effffdeb1}, + {0x9a32f834, 0xffffd87effffdeb2}, + {0x9a32f835, 0xffffd87effffdeb3}, + {0x9a32f836, 0xffffd87effffdeb4}, + {0x9a32f837, 0xffffd87effffdeb5}, + {0x9a32f838, 0xffffd87effffdeb6}, + {0x9a32f839, 0xffffd87effffdeb7}, + {0x9a32f930, 0xffffd87effffdeb8}, + {0x9a32f931, 0xffffd87effffdeb9}, + {0x9a32f932, 0xffffd87effffdeba}, + {0x9a32f933, 0xffffd87effffdebb}, + {0x9a32f934, 0xffffd87effffdebc}, + {0x9a32f935, 0xffffd87effffdebd}, + {0x9a32f936, 0xffffd87effffdebe}, + {0x9a32f937, 0xffffd87effffdebf}, + {0x9a32f938, 0xffffd87effffdec0}, + {0x9a32f939, 0xffffd87effffdec1}, + {0x9a32fa30, 0xffffd87effffdec2}, + {0x9a32fa31, 0xffffd87effffdec3}, + {0x9a32fa32, 0xffffd87effffdec4}, + {0x9a32fa33, 0xffffd87effffdec5}, + {0x9a32fa34, 0xffffd87effffdec6}, + {0x9a32fa35, 0xffffd87effffdec7}, + {0x9a32fa36, 0xffffd87effffdec8}, + {0x9a32fa37, 0xffffd87effffdec9}, + {0x9a32fa38, 0xffffd87effffdeca}, + {0x9a32fa39, 0xffffd87effffdecb}, + {0x9a32fb30, 0xffffd87effffdecc}, + {0x9a32fb31, 0xffffd87effffdecd}, + {0x9a32fb32, 0xffffd87effffdece}, + {0x9a32fb33, 0xffffd87effffdecf}, + {0x9a32fb34, 0xffffd87effffded0}, + {0x9a32fb35, 0xffffd87effffded1}, + {0x9a32fb36, 0xffffd87effffded2}, + {0x9a32fb37, 0xffffd87effffded3}, + {0x9a32fb38, 0xffffd87effffded4}, + {0x9a32fb39, 0xffffd87effffded5}, + {0x9a32fc30, 0xffffd87effffded6}, + {0x9a32fc31, 0xffffd87effffded7}, + {0x9a32fc32, 0xffffd87effffded8}, + {0x9a32fc33, 0xffffd87effffded9}, + {0x9a32fc34, 0xffffd87effffdeda}, + {0x9a32fc35, 0xffffd87effffdedb}, + {0x9a32fc36, 0xffffd87effffdedc}, + {0x9a32fc37, 0xffffd87effffdedd}, + {0x9a32fc38, 0xffffd87effffdede}, + {0x9a32fc39, 0xffffd87effffdedf}, + {0x9a32fd30, 0xffffd87effffdee0}, + {0x9a32fd31, 0xffffd87effffdee1}, + {0x9a32fd32, 0xffffd87effffdee2}, + {0x9a32fd33, 0xffffd87effffdee3}, + {0x9a32fd34, 0xffffd87effffdee4}, + {0x9a32fd35, 0xffffd87effffdee5}, + {0x9a32fd36, 0xffffd87effffdee6}, + {0x9a32fd37, 0xffffd87effffdee7}, + {0x9a32fd38, 0xffffd87effffdee8}, + {0x9a32fd39, 0xffffd87effffdee9}, + {0x9a32fe30, 0xffffd87effffdeea}, + {0x9a32fe31, 0xffffd87effffdeeb}, + {0x9a32fe32, 0xffffd87effffdeec}, + {0x9a32fe33, 0xffffd87effffdeed}, + {0x9a32fe34, 0xffffd87effffdeee}, + {0x9a32fe35, 0xffffd87effffdeef}, + {0x9a32fe36, 0xffffd87effffdef0}, + {0x9a32fe37, 0xffffd87effffdef1}, + {0x9a32fe38, 0xffffd87effffdef2}, + {0x9a32fe39, 0xffffd87effffdef3}, + {0x9a338130, 0xffffd87effffdef4}, + {0x9a338131, 0xffffd87effffdef5}, + {0x9a338132, 0xffffd87effffdef6}, + {0x9a338133, 0xffffd87effffdef7}, + {0x9a338134, 0xffffd87effffdef8}, + {0x9a338135, 0xffffd87effffdef9}, + {0x9a338136, 0xffffd87effffdefa}, + {0x9a338137, 0xffffd87effffdefb}, + {0x9a338138, 0xffffd87effffdefc}, + {0x9a338139, 0xffffd87effffdefd}, + {0x9a338230, 0xffffd87effffdefe}, + {0x9a338231, 0xffffd87effffdeff}, + {0x9a338232, 0xffffd87effffdf00}, + {0x9a338233, 0xffffd87effffdf01}, + {0x9a338234, 0xffffd87effffdf02}, + {0x9a338235, 0xffffd87effffdf03}, + {0x9a338236, 0xffffd87effffdf04}, + {0x9a338237, 0xffffd87effffdf05}, + {0x9a338238, 0xffffd87effffdf06}, + {0x9a338239, 0xffffd87effffdf07}, + {0x9a338330, 0xffffd87effffdf08}, + {0x9a338331, 0xffffd87effffdf09}, + {0x9a338332, 0xffffd87effffdf0a}, + {0x9a338333, 0xffffd87effffdf0b}, + {0x9a338334, 0xffffd87effffdf0c}, + {0x9a338335, 0xffffd87effffdf0d}, + {0x9a338336, 0xffffd87effffdf0e}, + {0x9a338337, 0xffffd87effffdf0f}, + {0x9a338338, 0xffffd87effffdf10}, + {0x9a338339, 0xffffd87effffdf11}, + {0x9a338430, 0xffffd87effffdf12}, + {0x9a338431, 0xffffd87effffdf13}, + {0x9a338432, 0xffffd87effffdf14}, + {0x9a338433, 0xffffd87effffdf15}, + {0x9a338434, 0xffffd87effffdf16}, + {0x9a338435, 0xffffd87effffdf17}, + {0x9a338436, 0xffffd87effffdf18}, + {0x9a338437, 0xffffd87effffdf19}, + {0x9a338438, 0xffffd87effffdf1a}, + {0x9a338439, 0xffffd87effffdf1b}, + {0x9a338530, 0xffffd87effffdf1c}, + {0x9a338531, 0xffffd87effffdf1d}, + {0x9a338532, 0xffffd87effffdf1e}, + {0x9a338533, 0xffffd87effffdf1f}, + {0x9a338534, 0xffffd87effffdf20}, + {0x9a338535, 0xffffd87effffdf21}, + {0x9a338536, 0xffffd87effffdf22}, + {0x9a338537, 0xffffd87effffdf23}, + {0x9a338538, 0xffffd87effffdf24}, + {0x9a338539, 0xffffd87effffdf25}, + {0x9a338630, 0xffffd87effffdf26}, + {0x9a338631, 0xffffd87effffdf27}, + {0x9a338632, 0xffffd87effffdf28}, + {0x9a338633, 0xffffd87effffdf29}, + {0x9a338634, 0xffffd87effffdf2a}, + {0x9a338635, 0xffffd87effffdf2b}, + {0x9a338636, 0xffffd87effffdf2c}, + {0x9a338637, 0xffffd87effffdf2d}, + {0x9a338638, 0xffffd87effffdf2e}, + {0x9a338639, 0xffffd87effffdf2f}, + {0x9a338730, 0xffffd87effffdf30}, + {0x9a338731, 0xffffd87effffdf31}, + {0x9a338732, 0xffffd87effffdf32}, + {0x9a338733, 0xffffd87effffdf33}, + {0x9a338734, 0xffffd87effffdf34}, + {0x9a338735, 0xffffd87effffdf35}, + {0x9a338736, 0xffffd87effffdf36}, + {0x9a338737, 0xffffd87effffdf37}, + {0x9a338738, 0xffffd87effffdf38}, + {0x9a338739, 0xffffd87effffdf39}, + {0x9a338830, 0xffffd87effffdf3a}, + {0x9a338831, 0xffffd87effffdf3b}, + {0x9a338832, 0xffffd87effffdf3c}, + {0x9a338833, 0xffffd87effffdf3d}, + {0x9a338834, 0xffffd87effffdf3e}, + {0x9a338835, 0xffffd87effffdf3f}, + {0x9a338836, 0xffffd87effffdf40}, + {0x9a338837, 0xffffd87effffdf41}, + {0x9a338838, 0xffffd87effffdf42}, + {0x9a338839, 0xffffd87effffdf43}, + {0x9a338930, 0xffffd87effffdf44}, + {0x9a338931, 0xffffd87effffdf45}, + {0x9a338932, 0xffffd87effffdf46}, + {0x9a338933, 0xffffd87effffdf47}, + {0x9a338934, 0xffffd87effffdf48}, + {0x9a338935, 0xffffd87effffdf49}, + {0x9a338936, 0xffffd87effffdf4a}, + {0x9a338937, 0xffffd87effffdf4b}, + {0x9a338938, 0xffffd87effffdf4c}, + {0x9a338939, 0xffffd87effffdf4d}, + {0x9a338a30, 0xffffd87effffdf4e}, + {0x9a338a31, 0xffffd87effffdf4f}, + {0x9a338a32, 0xffffd87effffdf50}, + {0x9a338a33, 0xffffd87effffdf51}, + {0x9a338a34, 0xffffd87effffdf52}, + {0x9a338a35, 0xffffd87effffdf53}, + {0x9a338a36, 0xffffd87effffdf54}, + {0x9a338a37, 0xffffd87effffdf55}, + {0x9a338a38, 0xffffd87effffdf56}, + {0x9a338a39, 0xffffd87effffdf57}, + {0x9a338b30, 0xffffd87effffdf58}, + {0x9a338b31, 0xffffd87effffdf59}, + {0x9a338b32, 0xffffd87effffdf5a}, + {0x9a338b33, 0xffffd87effffdf5b}, + {0x9a338b34, 0xffffd87effffdf5c}, + {0x9a338b35, 0xffffd87effffdf5d}, + {0x9a338b36, 0xffffd87effffdf5e}, + {0x9a338b37, 0xffffd87effffdf5f}, + {0x9a338b38, 0xffffd87effffdf60}, + {0x9a338b39, 0xffffd87effffdf61}, + {0x9a338c30, 0xffffd87effffdf62}, + {0x9a338c31, 0xffffd87effffdf63}, + {0x9a338c32, 0xffffd87effffdf64}, + {0x9a338c33, 0xffffd87effffdf65}, + {0x9a338c34, 0xffffd87effffdf66}, + {0x9a338c35, 0xffffd87effffdf67}, + {0x9a338c36, 0xffffd87effffdf68}, + {0x9a338c37, 0xffffd87effffdf69}, + {0x9a338c38, 0xffffd87effffdf6a}, + {0x9a338c39, 0xffffd87effffdf6b}, + {0x9a338d30, 0xffffd87effffdf6c}, + {0x9a338d31, 0xffffd87effffdf6d}, + {0x9a338d32, 0xffffd87effffdf6e}, + {0x9a338d33, 0xffffd87effffdf6f}, + {0x9a338d34, 0xffffd87effffdf70}, + {0x9a338d35, 0xffffd87effffdf71}, + {0x9a338d36, 0xffffd87effffdf72}, + {0x9a338d37, 0xffffd87effffdf73}, + {0x9a338d38, 0xffffd87effffdf74}, + {0x9a338d39, 0xffffd87effffdf75}, + {0x9a338e30, 0xffffd87effffdf76}, + {0x9a338e31, 0xffffd87effffdf77}, + {0x9a338e32, 0xffffd87effffdf78}, + {0x9a338e33, 0xffffd87effffdf79}, + {0x9a338e34, 0xffffd87effffdf7a}, + {0x9a338e35, 0xffffd87effffdf7b}, + {0x9a338e36, 0xffffd87effffdf7c}, + {0x9a338e37, 0xffffd87effffdf7d}, + {0x9a338e38, 0xffffd87effffdf7e}, + {0x9a338e39, 0xffffd87effffdf7f}, + {0x9a338f30, 0xffffd87effffdf80}, + {0x9a338f31, 0xffffd87effffdf81}, + {0x9a338f32, 0xffffd87effffdf82}, + {0x9a338f33, 0xffffd87effffdf83}, + {0x9a338f34, 0xffffd87effffdf84}, + {0x9a338f35, 0xffffd87effffdf85}, + {0x9a338f36, 0xffffd87effffdf86}, + {0x9a338f37, 0xffffd87effffdf87}, + {0x9a338f38, 0xffffd87effffdf88}, + {0x9a338f39, 0xffffd87effffdf89}, + {0x9a339030, 0xffffd87effffdf8a}, + {0x9a339031, 0xffffd87effffdf8b}, + {0x9a339032, 0xffffd87effffdf8c}, + {0x9a339033, 0xffffd87effffdf8d}, + {0x9a339034, 0xffffd87effffdf8e}, + {0x9a339035, 0xffffd87effffdf8f}, + {0x9a339036, 0xffffd87effffdf90}, + {0x9a339037, 0xffffd87effffdf91}, + {0x9a339038, 0xffffd87effffdf92}, + {0x9a339039, 0xffffd87effffdf93}, + {0x9a339130, 0xffffd87effffdf94}, + {0x9a339131, 0xffffd87effffdf95}, + {0x9a339132, 0xffffd87effffdf96}, + {0x9a339133, 0xffffd87effffdf97}, + {0x9a339134, 0xffffd87effffdf98}, + {0x9a339135, 0xffffd87effffdf99}, + {0x9a339136, 0xffffd87effffdf9a}, + {0x9a339137, 0xffffd87effffdf9b}, + {0x9a339138, 0xffffd87effffdf9c}, + {0x9a339139, 0xffffd87effffdf9d}, + {0x9a339230, 0xffffd87effffdf9e}, + {0x9a339231, 0xffffd87effffdf9f}, + {0x9a339232, 0xffffd87effffdfa0}, + {0x9a339233, 0xffffd87effffdfa1}, + {0x9a339234, 0xffffd87effffdfa2}, + {0x9a339235, 0xffffd87effffdfa3}, + {0x9a339236, 0xffffd87effffdfa4}, + {0x9a339237, 0xffffd87effffdfa5}, + {0x9a339238, 0xffffd87effffdfa6}, + {0x9a339239, 0xffffd87effffdfa7}, + {0x9a339330, 0xffffd87effffdfa8}, + {0x9a339331, 0xffffd87effffdfa9}, + {0x9a339332, 0xffffd87effffdfaa}, + {0x9a339333, 0xffffd87effffdfab}, + {0x9a339334, 0xffffd87effffdfac}, + {0x9a339335, 0xffffd87effffdfad}, + {0x9a339336, 0xffffd87effffdfae}, + {0x9a339337, 0xffffd87effffdfaf}, + {0x9a339338, 0xffffd87effffdfb0}, + {0x9a339339, 0xffffd87effffdfb1}, + {0x9a339430, 0xffffd87effffdfb2}, + {0x9a339431, 0xffffd87effffdfb3}, + {0x9a339432, 0xffffd87effffdfb4}, + {0x9a339433, 0xffffd87effffdfb5}, + {0x9a339434, 0xffffd87effffdfb6}, + {0x9a339435, 0xffffd87effffdfb7}, + {0x9a339436, 0xffffd87effffdfb8}, + {0x9a339437, 0xffffd87effffdfb9}, + {0x9a339438, 0xffffd87effffdfba}, + {0x9a339439, 0xffffd87effffdfbb}, + {0x9a339530, 0xffffd87effffdfbc}, + {0x9a339531, 0xffffd87effffdfbd}, + {0x9a339532, 0xffffd87effffdfbe}, + {0x9a339533, 0xffffd87effffdfbf}, + {0x9a339534, 0xffffd87effffdfc0}, + {0x9a339535, 0xffffd87effffdfc1}, + {0x9a339536, 0xffffd87effffdfc2}, + {0x9a339537, 0xffffd87effffdfc3}, + {0x9a339538, 0xffffd87effffdfc4}, + {0x9a339539, 0xffffd87effffdfc5}, + {0x9a339630, 0xffffd87effffdfc6}, + {0x9a339631, 0xffffd87effffdfc7}, + {0x9a339632, 0xffffd87effffdfc8}, + {0x9a339633, 0xffffd87effffdfc9}, + {0x9a339634, 0xffffd87effffdfca}, + {0x9a339635, 0xffffd87effffdfcb}, + {0x9a339636, 0xffffd87effffdfcc}, + {0x9a339637, 0xffffd87effffdfcd}, + {0x9a339638, 0xffffd87effffdfce}, + {0x9a339639, 0xffffd87effffdfcf}, + {0x9a339730, 0xffffd87effffdfd0}, + {0x9a339731, 0xffffd87effffdfd1}, + {0x9a339732, 0xffffd87effffdfd2}, + {0x9a339733, 0xffffd87effffdfd3}, + {0x9a339734, 0xffffd87effffdfd4}, + {0x9a339735, 0xffffd87effffdfd5}, + {0x9a339736, 0xffffd87effffdfd6}, + {0x9a339737, 0xffffd87effffdfd7}, + {0x9a339738, 0xffffd87effffdfd8}, + {0x9a339739, 0xffffd87effffdfd9}, + {0x9a339830, 0xffffd87effffdfda}, + {0x9a339831, 0xffffd87effffdfdb}, + {0x9a339832, 0xffffd87effffdfdc}, + {0x9a339833, 0xffffd87effffdfdd}, + {0x9a339834, 0xffffd87effffdfde}, + {0x9a339835, 0xffffd87effffdfdf}, + {0x9a339836, 0xffffd87effffdfe0}, + {0x9a339837, 0xffffd87effffdfe1}, + {0x9a339838, 0xffffd87effffdfe2}, + {0x9a339839, 0xffffd87effffdfe3}, + {0x9a339930, 0xffffd87effffdfe4}, + {0x9a339931, 0xffffd87effffdfe5}, + {0x9a339932, 0xffffd87effffdfe6}, + {0x9a339933, 0xffffd87effffdfe7}, + {0x9a339934, 0xffffd87effffdfe8}, + {0x9a339935, 0xffffd87effffdfe9}, + {0x9a339936, 0xffffd87effffdfea}, + {0x9a339937, 0xffffd87effffdfeb}, + {0x9a339938, 0xffffd87effffdfec}, + {0x9a339939, 0xffffd87effffdfed}, + {0x9a339a30, 0xffffd87effffdfee}, + {0x9a339a31, 0xffffd87effffdfef}, + {0x9a339a32, 0xffffd87effffdff0}, + {0x9a339a33, 0xffffd87effffdff1}, + {0x9a339a34, 0xffffd87effffdff2}, + {0x9a339a35, 0xffffd87effffdff3}, + {0x9a339a36, 0xffffd87effffdff4}, + {0x9a339a37, 0xffffd87effffdff5}, + {0x9a339a38, 0xffffd87effffdff6}, + {0x9a339a39, 0xffffd87effffdff7}, + {0x9a339b30, 0xffffd87effffdff8}, + {0x9a339b31, 0xffffd87effffdff9}, + {0x9a339b32, 0xffffd87effffdffa}, + {0x9a339b33, 0xffffd87effffdffb}, + {0x9a339b34, 0xffffd87effffdffc}, + {0x9a339b35, 0xffffd87effffdffd}, + {0x9a339b36, 0xffffd87effffdffe}, + {0x9a339b37, 0xffffd87effffdfff}, + {0x9a339b38, 0xffffd87fffffdc00}, + {0x9a339b39, 0xffffd87fffffdc01}, + {0x9a339c30, 0xffffd87fffffdc02}, + {0x9a339c31, 0xffffd87fffffdc03}, + {0x9a339c32, 0xffffd87fffffdc04}, + {0x9a339c33, 0xffffd87fffffdc05}, + {0x9a339c34, 0xffffd87fffffdc06}, + {0x9a339c35, 0xffffd87fffffdc07}, + {0x9a339c36, 0xffffd87fffffdc08}, + {0x9a339c37, 0xffffd87fffffdc09}, + {0x9a339c38, 0xffffd87fffffdc0a}, + {0x9a339c39, 0xffffd87fffffdc0b}, + {0x9a339d30, 0xffffd87fffffdc0c}, + {0x9a339d31, 0xffffd87fffffdc0d}, + {0x9a339d32, 0xffffd87fffffdc0e}, + {0x9a339d33, 0xffffd87fffffdc0f}, + {0x9a339d34, 0xffffd87fffffdc10}, + {0x9a339d35, 0xffffd87fffffdc11}, + {0x9a339d36, 0xffffd87fffffdc12}, + {0x9a339d37, 0xffffd87fffffdc13}, + {0x9a339d38, 0xffffd87fffffdc14}, + {0x9a339d39, 0xffffd87fffffdc15}, + {0x9a339e30, 0xffffd87fffffdc16}, + {0x9a339e31, 0xffffd87fffffdc17}, + {0x9a339e32, 0xffffd87fffffdc18}, + {0x9a339e33, 0xffffd87fffffdc19}, + {0x9a339e34, 0xffffd87fffffdc1a}, + {0x9a339e35, 0xffffd87fffffdc1b}, + {0x9a339e36, 0xffffd87fffffdc1c}, + {0x9a339e37, 0xffffd87fffffdc1d}, + {0x9a339e38, 0xffffd87fffffdc1e}, + {0x9a339e39, 0xffffd87fffffdc1f}, + {0x9a339f30, 0xffffd87fffffdc20}, + {0x9a339f31, 0xffffd87fffffdc21}, + {0x9a339f32, 0xffffd87fffffdc22}, + {0x9a339f33, 0xffffd87fffffdc23}, + {0x9a339f34, 0xffffd87fffffdc24}, + {0x9a339f35, 0xffffd87fffffdc25}, + {0x9a339f36, 0xffffd87fffffdc26}, + {0x9a339f37, 0xffffd87fffffdc27}, + {0x9a339f38, 0xffffd87fffffdc28}, + {0x9a339f39, 0xffffd87fffffdc29}, + {0x9a33a030, 0xffffd87fffffdc2a}, + {0x9a33a031, 0xffffd87fffffdc2b}, + {0x9a33a032, 0xffffd87fffffdc2c}, + {0x9a33a033, 0xffffd87fffffdc2d}, + {0x9a33a034, 0xffffd87fffffdc2e}, + {0x9a33a035, 0xffffd87fffffdc2f}, + {0x9a33a036, 0xffffd87fffffdc30}, + {0x9a33a037, 0xffffd87fffffdc31}, + {0x9a33a038, 0xffffd87fffffdc32}, + {0x9a33a039, 0xffffd87fffffdc33}, + {0x9a33a130, 0xffffd87fffffdc34}, + {0x9a33a131, 0xffffd87fffffdc35}, + {0x9a33a132, 0xffffd87fffffdc36}, + {0x9a33a133, 0xffffd87fffffdc37}, + {0x9a33a134, 0xffffd87fffffdc38}, + {0x9a33a135, 0xffffd87fffffdc39}, + {0x9a33a136, 0xffffd87fffffdc3a}, + {0x9a33a137, 0xffffd87fffffdc3b}, + {0x9a33a138, 0xffffd87fffffdc3c}, + {0x9a33a139, 0xffffd87fffffdc3d}, + {0x9a33a230, 0xffffd87fffffdc3e}, + {0x9a33a231, 0xffffd87fffffdc3f}, + {0x9a33a232, 0xffffd87fffffdc40}, + {0x9a33a233, 0xffffd87fffffdc41}, + {0x9a33a234, 0xffffd87fffffdc42}, + {0x9a33a235, 0xffffd87fffffdc43}, + {0x9a33a236, 0xffffd87fffffdc44}, + {0x9a33a237, 0xffffd87fffffdc45}, + {0x9a33a238, 0xffffd87fffffdc46}, + {0x9a33a239, 0xffffd87fffffdc47}, + {0x9a33a330, 0xffffd87fffffdc48}, + {0x9a33a331, 0xffffd87fffffdc49}, + {0x9a33a332, 0xffffd87fffffdc4a}, + {0x9a33a333, 0xffffd87fffffdc4b}, + {0x9a33a334, 0xffffd87fffffdc4c}, + {0x9a33a335, 0xffffd87fffffdc4d}, + {0x9a33a336, 0xffffd87fffffdc4e}, + {0x9a33a337, 0xffffd87fffffdc4f}, + {0x9a33a338, 0xffffd87fffffdc50}, + {0x9a33a339, 0xffffd87fffffdc51}, + {0x9a33a430, 0xffffd87fffffdc52}, + {0x9a33a431, 0xffffd87fffffdc53}, + {0x9a33a432, 0xffffd87fffffdc54}, + {0x9a33a433, 0xffffd87fffffdc55}, + {0x9a33a434, 0xffffd87fffffdc56}, + {0x9a33a435, 0xffffd87fffffdc57}, + {0x9a33a436, 0xffffd87fffffdc58}, + {0x9a33a437, 0xffffd87fffffdc59}, + {0x9a33a438, 0xffffd87fffffdc5a}, + {0x9a33a439, 0xffffd87fffffdc5b}, + {0x9a33a530, 0xffffd87fffffdc5c}, + {0x9a33a531, 0xffffd87fffffdc5d}, + {0x9a33a532, 0xffffd87fffffdc5e}, + {0x9a33a533, 0xffffd87fffffdc5f}, + {0x9a33a534, 0xffffd87fffffdc60}, + {0x9a33a535, 0xffffd87fffffdc61}, + {0x9a33a536, 0xffffd87fffffdc62}, + {0x9a33a537, 0xffffd87fffffdc63}, + {0x9a33a538, 0xffffd87fffffdc64}, + {0x9a33a539, 0xffffd87fffffdc65}, + {0x9a33a630, 0xffffd87fffffdc66}, + {0x9a33a631, 0xffffd87fffffdc67}, + {0x9a33a632, 0xffffd87fffffdc68}, + {0x9a33a633, 0xffffd87fffffdc69}, + {0x9a33a634, 0xffffd87fffffdc6a}, + {0x9a33a635, 0xffffd87fffffdc6b}, + {0x9a33a636, 0xffffd87fffffdc6c}, + {0x9a33a637, 0xffffd87fffffdc6d}, + {0x9a33a638, 0xffffd87fffffdc6e}, + {0x9a33a639, 0xffffd87fffffdc6f}, + {0x9a33a730, 0xffffd87fffffdc70}, + {0x9a33a731, 0xffffd87fffffdc71}, + {0x9a33a732, 0xffffd87fffffdc72}, + {0x9a33a733, 0xffffd87fffffdc73}, + {0x9a33a734, 0xffffd87fffffdc74}, + {0x9a33a735, 0xffffd87fffffdc75}, + {0x9a33a736, 0xffffd87fffffdc76}, + {0x9a33a737, 0xffffd87fffffdc77}, + {0x9a33a738, 0xffffd87fffffdc78}, + {0x9a33a739, 0xffffd87fffffdc79}, + {0x9a33a830, 0xffffd87fffffdc7a}, + {0x9a33a831, 0xffffd87fffffdc7b}, + {0x9a33a832, 0xffffd87fffffdc7c}, + {0x9a33a833, 0xffffd87fffffdc7d}, + {0x9a33a834, 0xffffd87fffffdc7e}, + {0x9a33a835, 0xffffd87fffffdc7f}, + {0x9a33a836, 0xffffd87fffffdc80}, + {0x9a33a837, 0xffffd87fffffdc81}, + {0x9a33a838, 0xffffd87fffffdc82}, + {0x9a33a839, 0xffffd87fffffdc83}, + {0x9a33a930, 0xffffd87fffffdc84}, + {0x9a33a931, 0xffffd87fffffdc85}, + {0x9a33a932, 0xffffd87fffffdc86}, + {0x9a33a933, 0xffffd87fffffdc87}, + {0x9a33a934, 0xffffd87fffffdc88}, + {0x9a33a935, 0xffffd87fffffdc89}, + {0x9a33a936, 0xffffd87fffffdc8a}, + {0x9a33a937, 0xffffd87fffffdc8b}, + {0x9a33a938, 0xffffd87fffffdc8c}, + {0x9a33a939, 0xffffd87fffffdc8d}, + {0x9a33aa30, 0xffffd87fffffdc8e}, + {0x9a33aa31, 0xffffd87fffffdc8f}, + {0x9a33aa32, 0xffffd87fffffdc90}, + {0x9a33aa33, 0xffffd87fffffdc91}, + {0x9a33aa34, 0xffffd87fffffdc92}, + {0x9a33aa35, 0xffffd87fffffdc93}, + {0x9a33aa36, 0xffffd87fffffdc94}, + {0x9a33aa37, 0xffffd87fffffdc95}, + {0x9a33aa38, 0xffffd87fffffdc96}, + {0x9a33aa39, 0xffffd87fffffdc97}, + {0x9a33ab30, 0xffffd87fffffdc98}, + {0x9a33ab31, 0xffffd87fffffdc99}, + {0x9a33ab32, 0xffffd87fffffdc9a}, + {0x9a33ab33, 0xffffd87fffffdc9b}, + {0x9a33ab34, 0xffffd87fffffdc9c}, + {0x9a33ab35, 0xffffd87fffffdc9d}, + {0x9a33ab36, 0xffffd87fffffdc9e}, + {0x9a33ab37, 0xffffd87fffffdc9f}, + {0x9a33ab38, 0xffffd87fffffdca0}, + {0x9a33ab39, 0xffffd87fffffdca1}, + {0x9a33ac30, 0xffffd87fffffdca2}, + {0x9a33ac31, 0xffffd87fffffdca3}, + {0x9a33ac32, 0xffffd87fffffdca4}, + {0x9a33ac33, 0xffffd87fffffdca5}, + {0x9a33ac34, 0xffffd87fffffdca6}, + {0x9a33ac35, 0xffffd87fffffdca7}, + {0x9a33ac36, 0xffffd87fffffdca8}, + {0x9a33ac37, 0xffffd87fffffdca9}, + {0x9a33ac38, 0xffffd87fffffdcaa}, + {0x9a33ac39, 0xffffd87fffffdcab}, + {0x9a33ad30, 0xffffd87fffffdcac}, + {0x9a33ad31, 0xffffd87fffffdcad}, + {0x9a33ad32, 0xffffd87fffffdcae}, + {0x9a33ad33, 0xffffd87fffffdcaf}, + {0x9a33ad34, 0xffffd87fffffdcb0}, + {0x9a33ad35, 0xffffd87fffffdcb1}, + {0x9a33ad36, 0xffffd87fffffdcb2}, + {0x9a33ad37, 0xffffd87fffffdcb3}, + {0x9a33ad38, 0xffffd87fffffdcb4}, + {0x9a33ad39, 0xffffd87fffffdcb5}, + {0x9a33ae30, 0xffffd87fffffdcb6}, + {0x9a33ae31, 0xffffd87fffffdcb7}, + {0x9a33ae32, 0xffffd87fffffdcb8}, + {0x9a33ae33, 0xffffd87fffffdcb9}, + {0x9a33ae34, 0xffffd87fffffdcba}, + {0x9a33ae35, 0xffffd87fffffdcbb}, + {0x9a33ae36, 0xffffd87fffffdcbc}, + {0x9a33ae37, 0xffffd87fffffdcbd}, + {0x9a33ae38, 0xffffd87fffffdcbe}, + {0x9a33ae39, 0xffffd87fffffdcbf}, + {0x9a33af30, 0xffffd87fffffdcc0}, + {0x9a33af31, 0xffffd87fffffdcc1}, + {0x9a33af32, 0xffffd87fffffdcc2}, + {0x9a33af33, 0xffffd87fffffdcc3}, + {0x9a33af34, 0xffffd87fffffdcc4}, + {0x9a33af35, 0xffffd87fffffdcc5}, + {0x9a33af36, 0xffffd87fffffdcc6}, + {0x9a33af37, 0xffffd87fffffdcc7}, + {0x9a33af38, 0xffffd87fffffdcc8}, + {0x9a33af39, 0xffffd87fffffdcc9}, + {0x9a33b030, 0xffffd87fffffdcca}, + {0x9a33b031, 0xffffd87fffffdccb}, + {0x9a33b032, 0xffffd87fffffdccc}, + {0x9a33b033, 0xffffd87fffffdccd}, + {0x9a33b034, 0xffffd87fffffdcce}, + {0x9a33b035, 0xffffd87fffffdccf}, + {0x9a33b036, 0xffffd87fffffdcd0}, + {0x9a33b037, 0xffffd87fffffdcd1}, + {0x9a33b038, 0xffffd87fffffdcd2}, + {0x9a33b039, 0xffffd87fffffdcd3}, + {0x9a33b130, 0xffffd87fffffdcd4}, + {0x9a33b131, 0xffffd87fffffdcd5}, + {0x9a33b132, 0xffffd87fffffdcd6}, + {0x9a33b133, 0xffffd87fffffdcd7}, + {0x9a33b134, 0xffffd87fffffdcd8}, + {0x9a33b135, 0xffffd87fffffdcd9}, + {0x9a33b136, 0xffffd87fffffdcda}, + {0x9a33b137, 0xffffd87fffffdcdb}, + {0x9a33b138, 0xffffd87fffffdcdc}, + {0x9a33b139, 0xffffd87fffffdcdd}, + {0x9a33b230, 0xffffd87fffffdcde}, + {0x9a33b231, 0xffffd87fffffdcdf}, + {0x9a33b232, 0xffffd87fffffdce0}, + {0x9a33b233, 0xffffd87fffffdce1}, + {0x9a33b234, 0xffffd87fffffdce2}, + {0x9a33b235, 0xffffd87fffffdce3}, + {0x9a33b236, 0xffffd87fffffdce4}, + {0x9a33b237, 0xffffd87fffffdce5}, + {0x9a33b238, 0xffffd87fffffdce6}, + {0x9a33b239, 0xffffd87fffffdce7}, + {0x9a33b330, 0xffffd87fffffdce8}, + {0x9a33b331, 0xffffd87fffffdce9}, + {0x9a33b332, 0xffffd87fffffdcea}, + {0x9a33b333, 0xffffd87fffffdceb}, + {0x9a33b334, 0xffffd87fffffdcec}, + {0x9a33b335, 0xffffd87fffffdced}, + {0x9a33b336, 0xffffd87fffffdcee}, + {0x9a33b337, 0xffffd87fffffdcef}, + {0x9a33b338, 0xffffd87fffffdcf0}, + {0x9a33b339, 0xffffd87fffffdcf1}, + {0x9a33b430, 0xffffd87fffffdcf2}, + {0x9a33b431, 0xffffd87fffffdcf3}, + {0x9a33b432, 0xffffd87fffffdcf4}, + {0x9a33b433, 0xffffd87fffffdcf5}, + {0x9a33b434, 0xffffd87fffffdcf6}, + {0x9a33b435, 0xffffd87fffffdcf7}, + {0x9a33b436, 0xffffd87fffffdcf8}, + {0x9a33b437, 0xffffd87fffffdcf9}, + {0x9a33b438, 0xffffd87fffffdcfa}, + {0x9a33b439, 0xffffd87fffffdcfb}, + {0x9a33b530, 0xffffd87fffffdcfc}, + {0x9a33b531, 0xffffd87fffffdcfd}, + {0x9a33b532, 0xffffd87fffffdcfe}, + {0x9a33b533, 0xffffd87fffffdcff}, + {0x9a33b534, 0xffffd87fffffdd00}, + {0x9a33b535, 0xffffd87fffffdd01}, + {0x9a33b536, 0xffffd87fffffdd02}, + {0x9a33b537, 0xffffd87fffffdd03}, + {0x9a33b538, 0xffffd87fffffdd04}, + {0x9a33b539, 0xffffd87fffffdd05}, + {0x9a33b630, 0xffffd87fffffdd06}, + {0x9a33b631, 0xffffd87fffffdd07}, + {0x9a33b632, 0xffffd87fffffdd08}, + {0x9a33b633, 0xffffd87fffffdd09}, + {0x9a33b634, 0xffffd87fffffdd0a}, + {0x9a33b635, 0xffffd87fffffdd0b}, + {0x9a33b636, 0xffffd87fffffdd0c}, + {0x9a33b637, 0xffffd87fffffdd0d}, + {0x9a33b638, 0xffffd87fffffdd0e}, + {0x9a33b639, 0xffffd87fffffdd0f}, + {0x9a33b730, 0xffffd87fffffdd10}, + {0x9a33b731, 0xffffd87fffffdd11}, + {0x9a33b732, 0xffffd87fffffdd12}, + {0x9a33b733, 0xffffd87fffffdd13}, + {0x9a33b734, 0xffffd87fffffdd14}, + {0x9a33b735, 0xffffd87fffffdd15}, + {0x9a33b736, 0xffffd87fffffdd16}, + {0x9a33b737, 0xffffd87fffffdd17}, + {0x9a33b738, 0xffffd87fffffdd18}, + {0x9a33b739, 0xffffd87fffffdd19}, + {0x9a33b830, 0xffffd87fffffdd1a}, + {0x9a33b831, 0xffffd87fffffdd1b}, + {0x9a33b832, 0xffffd87fffffdd1c}, + {0x9a33b833, 0xffffd87fffffdd1d}, + {0x9a33b834, 0xffffd87fffffdd1e}, + {0x9a33b835, 0xffffd87fffffdd1f}, + {0x9a33b836, 0xffffd87fffffdd20}, + {0x9a33b837, 0xffffd87fffffdd21}, + {0x9a33b838, 0xffffd87fffffdd22}, + {0x9a33b839, 0xffffd87fffffdd23}, + {0x9a33b930, 0xffffd87fffffdd24}, + {0x9a33b931, 0xffffd87fffffdd25}, + {0x9a33b932, 0xffffd87fffffdd26}, + {0x9a33b933, 0xffffd87fffffdd27}, + {0x9a33b934, 0xffffd87fffffdd28}, + {0x9a33b935, 0xffffd87fffffdd29}, + {0x9a33b936, 0xffffd87fffffdd2a}, + {0x9a33b937, 0xffffd87fffffdd2b}, + {0x9a33b938, 0xffffd87fffffdd2c}, + {0x9a33b939, 0xffffd87fffffdd2d}, + {0x9a33ba30, 0xffffd87fffffdd2e}, + {0x9a33ba31, 0xffffd87fffffdd2f}, + {0x9a33ba32, 0xffffd87fffffdd30}, + {0x9a33ba33, 0xffffd87fffffdd31}, + {0x9a33ba34, 0xffffd87fffffdd32}, + {0x9a33ba35, 0xffffd87fffffdd33}, + {0x9a33ba36, 0xffffd87fffffdd34}, + {0x9a33ba37, 0xffffd87fffffdd35}, + {0x9a33ba38, 0xffffd87fffffdd36}, + {0x9a33ba39, 0xffffd87fffffdd37}, + {0x9a33bb30, 0xffffd87fffffdd38}, + {0x9a33bb31, 0xffffd87fffffdd39}, + {0x9a33bb32, 0xffffd87fffffdd3a}, + {0x9a33bb33, 0xffffd87fffffdd3b}, + {0x9a33bb34, 0xffffd87fffffdd3c}, + {0x9a33bb35, 0xffffd87fffffdd3d}, + {0x9a33bb36, 0xffffd87fffffdd3e}, + {0x9a33bb37, 0xffffd87fffffdd3f}, + {0x9a33bb38, 0xffffd87fffffdd40}, + {0x9a33bb39, 0xffffd87fffffdd41}, + {0x9a33bc30, 0xffffd87fffffdd42}, + {0x9a33bc31, 0xffffd87fffffdd43}, + {0x9a33bc32, 0xffffd87fffffdd44}, + {0x9a33bc33, 0xffffd87fffffdd45}, + {0x9a33bc34, 0xffffd87fffffdd46}, + {0x9a33bc35, 0xffffd87fffffdd47}, + {0x9a33bc36, 0xffffd87fffffdd48}, + {0x9a33bc37, 0xffffd87fffffdd49}, + {0x9a33bc38, 0xffffd87fffffdd4a}, + {0x9a33bc39, 0xffffd87fffffdd4b}, + {0x9a33bd30, 0xffffd87fffffdd4c}, + {0x9a33bd31, 0xffffd87fffffdd4d}, + {0x9a33bd32, 0xffffd87fffffdd4e}, + {0x9a33bd33, 0xffffd87fffffdd4f}, + {0x9a33bd34, 0xffffd87fffffdd50}, + {0x9a33bd35, 0xffffd87fffffdd51}, + {0x9a33bd36, 0xffffd87fffffdd52}, + {0x9a33bd37, 0xffffd87fffffdd53}, + {0x9a33bd38, 0xffffd87fffffdd54}, + {0x9a33bd39, 0xffffd87fffffdd55}, + {0x9a33be30, 0xffffd87fffffdd56}, + {0x9a33be31, 0xffffd87fffffdd57}, + {0x9a33be32, 0xffffd87fffffdd58}, + {0x9a33be33, 0xffffd87fffffdd59}, + {0x9a33be34, 0xffffd87fffffdd5a}, + {0x9a33be35, 0xffffd87fffffdd5b}, + {0x9a33be36, 0xffffd87fffffdd5c}, + {0x9a33be37, 0xffffd87fffffdd5d}, + {0x9a33be38, 0xffffd87fffffdd5e}, + {0x9a33be39, 0xffffd87fffffdd5f}, + {0x9a33bf30, 0xffffd87fffffdd60}, + {0x9a33bf31, 0xffffd87fffffdd61}, + {0x9a33bf32, 0xffffd87fffffdd62}, + {0x9a33bf33, 0xffffd87fffffdd63}, + {0x9a33bf34, 0xffffd87fffffdd64}, + {0x9a33bf35, 0xffffd87fffffdd65}, + {0x9a33bf36, 0xffffd87fffffdd66}, + {0x9a33bf37, 0xffffd87fffffdd67}, + {0x9a33bf38, 0xffffd87fffffdd68}, + {0x9a33bf39, 0xffffd87fffffdd69}, + {0x9a33c030, 0xffffd87fffffdd6a}, + {0x9a33c031, 0xffffd87fffffdd6b}, + {0x9a33c032, 0xffffd87fffffdd6c}, + {0x9a33c033, 0xffffd87fffffdd6d}, + {0x9a33c034, 0xffffd87fffffdd6e}, + {0x9a33c035, 0xffffd87fffffdd6f}, + {0x9a33c036, 0xffffd87fffffdd70}, + {0x9a33c037, 0xffffd87fffffdd71}, + {0x9a33c038, 0xffffd87fffffdd72}, + {0x9a33c039, 0xffffd87fffffdd73}, + {0x9a33c130, 0xffffd87fffffdd74}, + {0x9a33c131, 0xffffd87fffffdd75}, + {0x9a33c132, 0xffffd87fffffdd76}, + {0x9a33c133, 0xffffd87fffffdd77}, + {0x9a33c134, 0xffffd87fffffdd78}, + {0x9a33c135, 0xffffd87fffffdd79}, + {0x9a33c136, 0xffffd87fffffdd7a}, + {0x9a33c137, 0xffffd87fffffdd7b}, + {0x9a33c138, 0xffffd87fffffdd7c}, + {0x9a33c139, 0xffffd87fffffdd7d}, + {0x9a33c230, 0xffffd87fffffdd7e}, + {0x9a33c231, 0xffffd87fffffdd7f}, + {0x9a33c232, 0xffffd87fffffdd80}, + {0x9a33c233, 0xffffd87fffffdd81}, + {0x9a33c234, 0xffffd87fffffdd82}, + {0x9a33c235, 0xffffd87fffffdd83}, + {0x9a33c236, 0xffffd87fffffdd84}, + {0x9a33c237, 0xffffd87fffffdd85}, + {0x9a33c238, 0xffffd87fffffdd86}, + {0x9a33c239, 0xffffd87fffffdd87}, + {0x9a33c330, 0xffffd87fffffdd88}, + {0x9a33c331, 0xffffd87fffffdd89}, + {0x9a33c332, 0xffffd87fffffdd8a}, + {0x9a33c333, 0xffffd87fffffdd8b}, + {0x9a33c334, 0xffffd87fffffdd8c}, + {0x9a33c335, 0xffffd87fffffdd8d}, + {0x9a33c336, 0xffffd87fffffdd8e}, + {0x9a33c337, 0xffffd87fffffdd8f}, + {0x9a33c338, 0xffffd87fffffdd90}, + {0x9a33c339, 0xffffd87fffffdd91}, + {0x9a33c430, 0xffffd87fffffdd92}, + {0x9a33c431, 0xffffd87fffffdd93}, + {0x9a33c432, 0xffffd87fffffdd94}, + {0x9a33c433, 0xffffd87fffffdd95}, + {0x9a33c434, 0xffffd87fffffdd96}, + {0x9a33c435, 0xffffd87fffffdd97}, + {0x9a33c436, 0xffffd87fffffdd98}, + {0x9a33c437, 0xffffd87fffffdd99}, + {0x9a33c438, 0xffffd87fffffdd9a}, + {0x9a33c439, 0xffffd87fffffdd9b}, + {0x9a33c530, 0xffffd87fffffdd9c}, + {0x9a33c531, 0xffffd87fffffdd9d}, + {0x9a33c532, 0xffffd87fffffdd9e}, + {0x9a33c533, 0xffffd87fffffdd9f}, + {0x9a33c534, 0xffffd87fffffdda0}, + {0x9a33c535, 0xffffd87fffffdda1}, + {0x9a33c536, 0xffffd87fffffdda2}, + {0x9a33c537, 0xffffd87fffffdda3}, + {0x9a33c538, 0xffffd87fffffdda4}, + {0x9a33c539, 0xffffd87fffffdda5}, + {0x9a33c630, 0xffffd87fffffdda6}, + {0x9a33c631, 0xffffd87fffffdda7}, + {0x9a33c632, 0xffffd87fffffdda8}, + {0x9a33c633, 0xffffd87fffffdda9}, + {0x9a33c634, 0xffffd87fffffddaa}, + {0x9a33c635, 0xffffd87fffffddab}, + {0x9a33c636, 0xffffd87fffffddac}, + {0x9a33c637, 0xffffd87fffffddad}, + {0x9a33c638, 0xffffd87fffffddae}, + {0x9a33c639, 0xffffd87fffffddaf}, + {0x9a33c730, 0xffffd87fffffddb0}, + {0x9a33c731, 0xffffd87fffffddb1}, + {0x9a33c732, 0xffffd87fffffddb2}, + {0x9a33c733, 0xffffd87fffffddb3}, + {0x9a33c734, 0xffffd87fffffddb4}, + {0x9a33c735, 0xffffd87fffffddb5}, + {0x9a33c736, 0xffffd87fffffddb6}, + {0x9a33c737, 0xffffd87fffffddb7}, + {0x9a33c738, 0xffffd87fffffddb8}, + {0x9a33c739, 0xffffd87fffffddb9}, + {0x9a33c830, 0xffffd87fffffddba}, + {0x9a33c831, 0xffffd87fffffddbb}, + {0x9a33c832, 0xffffd87fffffddbc}, + {0x9a33c833, 0xffffd87fffffddbd}, + {0x9a33c834, 0xffffd87fffffddbe}, + {0x9a33c835, 0xffffd87fffffddbf}, + {0x9a33c836, 0xffffd87fffffddc0}, + {0x9a33c837, 0xffffd87fffffddc1}, + {0x9a33c838, 0xffffd87fffffddc2}, + {0x9a33c839, 0xffffd87fffffddc3}, + {0x9a33c930, 0xffffd87fffffddc4}, + {0x9a33c931, 0xffffd87fffffddc5}, + {0x9a33c932, 0xffffd87fffffddc6}, + {0x9a33c933, 0xffffd87fffffddc7}, + {0x9a33c934, 0xffffd87fffffddc8}, + {0x9a33c935, 0xffffd87fffffddc9}, + {0x9a33c936, 0xffffd87fffffddca}, + {0x9a33c937, 0xffffd87fffffddcb}, + {0x9a33c938, 0xffffd87fffffddcc}, + {0x9a33c939, 0xffffd87fffffddcd}, + {0x9a33ca30, 0xffffd87fffffddce}, + {0x9a33ca31, 0xffffd87fffffddcf}, + {0x9a33ca32, 0xffffd87fffffddd0}, + {0x9a33ca33, 0xffffd87fffffddd1}, + {0x9a33ca34, 0xffffd87fffffddd2}, + {0x9a33ca35, 0xffffd87fffffddd3}, + {0x9a33ca36, 0xffffd87fffffddd4}, + {0x9a33ca37, 0xffffd87fffffddd5}, + {0x9a33ca38, 0xffffd87fffffddd6}, + {0x9a33ca39, 0xffffd87fffffddd7}, + {0x9a33cb30, 0xffffd87fffffddd8}, + {0x9a33cb31, 0xffffd87fffffddd9}, + {0x9a33cb32, 0xffffd87fffffddda}, + {0x9a33cb33, 0xffffd87fffffdddb}, + {0x9a33cb34, 0xffffd87fffffdddc}, + {0x9a33cb35, 0xffffd87fffffdddd}, + {0x9a33cb36, 0xffffd87fffffddde}, + {0x9a33cb37, 0xffffd87fffffdddf}, + {0x9a33cb38, 0xffffd87fffffdde0}, + {0x9a33cb39, 0xffffd87fffffdde1}, + {0x9a33cc30, 0xffffd87fffffdde2}, + {0x9a33cc31, 0xffffd87fffffdde3}, + {0x9a33cc32, 0xffffd87fffffdde4}, + {0x9a33cc33, 0xffffd87fffffdde5}, + {0x9a33cc34, 0xffffd87fffffdde6}, + {0x9a33cc35, 0xffffd87fffffdde7}, + {0x9a33cc36, 0xffffd87fffffdde8}, + {0x9a33cc37, 0xffffd87fffffdde9}, + {0x9a33cc38, 0xffffd87fffffddea}, + {0x9a33cc39, 0xffffd87fffffddeb}, + {0x9a33cd30, 0xffffd87fffffddec}, + {0x9a33cd31, 0xffffd87fffffdded}, + {0x9a33cd32, 0xffffd87fffffddee}, + {0x9a33cd33, 0xffffd87fffffddef}, + {0x9a33cd34, 0xffffd87fffffddf0}, + {0x9a33cd35, 0xffffd87fffffddf1}, + {0x9a33cd36, 0xffffd87fffffddf2}, + {0x9a33cd37, 0xffffd87fffffddf3}, + {0x9a33cd38, 0xffffd87fffffddf4}, + {0x9a33cd39, 0xffffd87fffffddf5}, + {0x9a33ce30, 0xffffd87fffffddf6}, + {0x9a33ce31, 0xffffd87fffffddf7}, + {0x9a33ce32, 0xffffd87fffffddf8}, + {0x9a33ce33, 0xffffd87fffffddf9}, + {0x9a33ce34, 0xffffd87fffffddfa}, + {0x9a33ce35, 0xffffd87fffffddfb}, + {0x9a33ce36, 0xffffd87fffffddfc}, + {0x9a33ce37, 0xffffd87fffffddfd}, + {0x9a33ce38, 0xffffd87fffffddfe}, + {0x9a33ce39, 0xffffd87fffffddff}, + {0x9a33cf30, 0xffffd87fffffde00}, + {0x9a33cf31, 0xffffd87fffffde01}, + {0x9a33cf32, 0xffffd87fffffde02}, + {0x9a33cf33, 0xffffd87fffffde03}, + {0x9a33cf34, 0xffffd87fffffde04}, + {0x9a33cf35, 0xffffd87fffffde05}, + {0x9a33cf36, 0xffffd87fffffde06}, + {0x9a33cf37, 0xffffd87fffffde07}, + {0x9a33cf38, 0xffffd87fffffde08}, + {0x9a33cf39, 0xffffd87fffffde09}, + {0x9a33d030, 0xffffd87fffffde0a}, + {0x9a33d031, 0xffffd87fffffde0b}, + {0x9a33d032, 0xffffd87fffffde0c}, + {0x9a33d033, 0xffffd87fffffde0d}, + {0x9a33d034, 0xffffd87fffffde0e}, + {0x9a33d035, 0xffffd87fffffde0f}, + {0x9a33d036, 0xffffd87fffffde10}, + {0x9a33d037, 0xffffd87fffffde11}, + {0x9a33d038, 0xffffd87fffffde12}, + {0x9a33d039, 0xffffd87fffffde13}, + {0x9a33d130, 0xffffd87fffffde14}, + {0x9a33d131, 0xffffd87fffffde15}, + {0x9a33d132, 0xffffd87fffffde16}, + {0x9a33d133, 0xffffd87fffffde17}, + {0x9a33d134, 0xffffd87fffffde18}, + {0x9a33d135, 0xffffd87fffffde19}, + {0x9a33d136, 0xffffd87fffffde1a}, + {0x9a33d137, 0xffffd87fffffde1b}, + {0x9a33d138, 0xffffd87fffffde1c}, + {0x9a33d139, 0xffffd87fffffde1d}, + {0x9a33d230, 0xffffd87fffffde1e}, + {0x9a33d231, 0xffffd87fffffde1f}, + {0x9a33d232, 0xffffd87fffffde20}, + {0x9a33d233, 0xffffd87fffffde21}, + {0x9a33d234, 0xffffd87fffffde22}, + {0x9a33d235, 0xffffd87fffffde23}, + {0x9a33d236, 0xffffd87fffffde24}, + {0x9a33d237, 0xffffd87fffffde25}, + {0x9a33d238, 0xffffd87fffffde26}, + {0x9a33d239, 0xffffd87fffffde27}, + {0x9a33d330, 0xffffd87fffffde28}, + {0x9a33d331, 0xffffd87fffffde29}, + {0x9a33d332, 0xffffd87fffffde2a}, + {0x9a33d333, 0xffffd87fffffde2b}, + {0x9a33d334, 0xffffd87fffffde2c}, + {0x9a33d335, 0xffffd87fffffde2d}, + {0x9a33d336, 0xffffd87fffffde2e}, + {0x9a33d337, 0xffffd87fffffde2f}, + {0x9a33d338, 0xffffd87fffffde30}, + {0x9a33d339, 0xffffd87fffffde31}, + {0x9a33d430, 0xffffd87fffffde32}, + {0x9a33d431, 0xffffd87fffffde33}, + {0x9a33d432, 0xffffd87fffffde34}, + {0x9a33d433, 0xffffd87fffffde35}, + {0x9a33d434, 0xffffd87fffffde36}, + {0x9a33d435, 0xffffd87fffffde37}, + {0x9a33d436, 0xffffd87fffffde38}, + {0x9a33d437, 0xffffd87fffffde39}, + {0x9a33d438, 0xffffd87fffffde3a}, + {0x9a33d439, 0xffffd87fffffde3b}, + {0x9a33d530, 0xffffd87fffffde3c}, + {0x9a33d531, 0xffffd87fffffde3d}, + {0x9a33d532, 0xffffd87fffffde3e}, + {0x9a33d533, 0xffffd87fffffde3f}, + {0x9a33d534, 0xffffd87fffffde40}, + {0x9a33d535, 0xffffd87fffffde41}, + {0x9a33d536, 0xffffd87fffffde42}, + {0x9a33d537, 0xffffd87fffffde43}, + {0x9a33d538, 0xffffd87fffffde44}, + {0x9a33d539, 0xffffd87fffffde45}, + {0x9a33d630, 0xffffd87fffffde46}, + {0x9a33d631, 0xffffd87fffffde47}, + {0x9a33d632, 0xffffd87fffffde48}, + {0x9a33d633, 0xffffd87fffffde49}, + {0x9a33d634, 0xffffd87fffffde4a}, + {0x9a33d635, 0xffffd87fffffde4b}, + {0x9a33d636, 0xffffd87fffffde4c}, + {0x9a33d637, 0xffffd87fffffde4d}, + {0x9a33d638, 0xffffd87fffffde4e}, + {0x9a33d639, 0xffffd87fffffde4f}, + {0x9a33d730, 0xffffd87fffffde50}, + {0x9a33d731, 0xffffd87fffffde51}, + {0x9a33d732, 0xffffd87fffffde52}, + {0x9a33d733, 0xffffd87fffffde53}, + {0x9a33d734, 0xffffd87fffffde54}, + {0x9a33d735, 0xffffd87fffffde55}, + {0x9a33d736, 0xffffd87fffffde56}, + {0x9a33d737, 0xffffd87fffffde57}, + {0x9a33d738, 0xffffd87fffffde58}, + {0x9a33d739, 0xffffd87fffffde59}, + {0x9a33d830, 0xffffd87fffffde5a}, + {0x9a33d831, 0xffffd87fffffde5b}, + {0x9a33d832, 0xffffd87fffffde5c}, + {0x9a33d833, 0xffffd87fffffde5d}, + {0x9a33d834, 0xffffd87fffffde5e}, + {0x9a33d835, 0xffffd87fffffde5f}, + {0x9a33d836, 0xffffd87fffffde60}, + {0x9a33d837, 0xffffd87fffffde61}, + {0x9a33d838, 0xffffd87fffffde62}, + {0x9a33d839, 0xffffd87fffffde63}, + {0x9a33d930, 0xffffd87fffffde64}, + {0x9a33d931, 0xffffd87fffffde65}, + {0x9a33d932, 0xffffd87fffffde66}, + {0x9a33d933, 0xffffd87fffffde67}, + {0x9a33d934, 0xffffd87fffffde68}, + {0x9a33d935, 0xffffd87fffffde69}, + {0x9a33d936, 0xffffd87fffffde6a}, + {0x9a33d937, 0xffffd87fffffde6b}, + {0x9a33d938, 0xffffd87fffffde6c}, + {0x9a33d939, 0xffffd87fffffde6d}, + {0x9a33da30, 0xffffd87fffffde6e}, + {0x9a33da31, 0xffffd87fffffde6f}, + {0x9a33da32, 0xffffd87fffffde70}, + {0x9a33da33, 0xffffd87fffffde71}, + {0x9a33da34, 0xffffd87fffffde72}, + {0x9a33da35, 0xffffd87fffffde73}, + {0x9a33da36, 0xffffd87fffffde74}, + {0x9a33da37, 0xffffd87fffffde75}, + {0x9a33da38, 0xffffd87fffffde76}, + {0x9a33da39, 0xffffd87fffffde77}, + {0x9a33db30, 0xffffd87fffffde78}, + {0x9a33db31, 0xffffd87fffffde79}, + {0x9a33db32, 0xffffd87fffffde7a}, + {0x9a33db33, 0xffffd87fffffde7b}, + {0x9a33db34, 0xffffd87fffffde7c}, + {0x9a33db35, 0xffffd87fffffde7d}, + {0x9a33db36, 0xffffd87fffffde7e}, + {0x9a33db37, 0xffffd87fffffde7f}, + {0x9a33db38, 0xffffd87fffffde80}, + {0x9a33db39, 0xffffd87fffffde81}, + {0x9a33dc30, 0xffffd87fffffde82}, + {0x9a33dc31, 0xffffd87fffffde83}, + {0x9a33dc32, 0xffffd87fffffde84}, + {0x9a33dc33, 0xffffd87fffffde85}, + {0x9a33dc34, 0xffffd87fffffde86}, + {0x9a33dc35, 0xffffd87fffffde87}, + {0x9a33dc36, 0xffffd87fffffde88}, + {0x9a33dc37, 0xffffd87fffffde89}, + {0x9a33dc38, 0xffffd87fffffde8a}, + {0x9a33dc39, 0xffffd87fffffde8b}, + {0x9a33dd30, 0xffffd87fffffde8c}, + {0x9a33dd31, 0xffffd87fffffde8d}, + {0x9a33dd32, 0xffffd87fffffde8e}, + {0x9a33dd33, 0xffffd87fffffde8f}, + {0x9a33dd34, 0xffffd87fffffde90}, + {0x9a33dd35, 0xffffd87fffffde91}, + {0x9a33dd36, 0xffffd87fffffde92}, + {0x9a33dd37, 0xffffd87fffffde93}, + {0x9a33dd38, 0xffffd87fffffde94}, + {0x9a33dd39, 0xffffd87fffffde95}, + {0x9a33de30, 0xffffd87fffffde96}, + {0x9a33de31, 0xffffd87fffffde97}, + {0x9a33de32, 0xffffd87fffffde98}, + {0x9a33de33, 0xffffd87fffffde99}, + {0x9a33de34, 0xffffd87fffffde9a}, + {0x9a33de35, 0xffffd87fffffde9b}, + {0x9a33de36, 0xffffd87fffffde9c}, + {0x9a33de37, 0xffffd87fffffde9d}, + {0x9a33de38, 0xffffd87fffffde9e}, + {0x9a33de39, 0xffffd87fffffde9f}, + {0x9a33df30, 0xffffd87fffffdea0}, + {0x9a33df31, 0xffffd87fffffdea1}, + {0x9a33df32, 0xffffd87fffffdea2}, + {0x9a33df33, 0xffffd87fffffdea3}, + {0x9a33df34, 0xffffd87fffffdea4}, + {0x9a33df35, 0xffffd87fffffdea5}, + {0x9a33df36, 0xffffd87fffffdea6}, + {0x9a33df37, 0xffffd87fffffdea7}, + {0x9a33df38, 0xffffd87fffffdea8}, + {0x9a33df39, 0xffffd87fffffdea9}, + {0x9a33e030, 0xffffd87fffffdeaa}, + {0x9a33e031, 0xffffd87fffffdeab}, + {0x9a33e032, 0xffffd87fffffdeac}, + {0x9a33e033, 0xffffd87fffffdead}, + {0x9a33e034, 0xffffd87fffffdeae}, + {0x9a33e035, 0xffffd87fffffdeaf}, + {0x9a33e036, 0xffffd87fffffdeb0}, + {0x9a33e037, 0xffffd87fffffdeb1}, + {0x9a33e038, 0xffffd87fffffdeb2}, + {0x9a33e039, 0xffffd87fffffdeb3}, + {0x9a33e130, 0xffffd87fffffdeb4}, + {0x9a33e131, 0xffffd87fffffdeb5}, + {0x9a33e132, 0xffffd87fffffdeb6}, + {0x9a33e133, 0xffffd87fffffdeb7}, + {0x9a33e134, 0xffffd87fffffdeb8}, + {0x9a33e135, 0xffffd87fffffdeb9}, + {0x9a33e136, 0xffffd87fffffdeba}, + {0x9a33e137, 0xffffd87fffffdebb}, + {0x9a33e138, 0xffffd87fffffdebc}, + {0x9a33e139, 0xffffd87fffffdebd}, + {0x9a33e230, 0xffffd87fffffdebe}, + {0x9a33e231, 0xffffd87fffffdebf}, + {0x9a33e232, 0xffffd87fffffdec0}, + {0x9a33e233, 0xffffd87fffffdec1}, + {0x9a33e234, 0xffffd87fffffdec2}, + {0x9a33e235, 0xffffd87fffffdec3}, + {0x9a33e236, 0xffffd87fffffdec4}, + {0x9a33e237, 0xffffd87fffffdec5}, + {0x9a33e238, 0xffffd87fffffdec6}, + {0x9a33e239, 0xffffd87fffffdec7}, + {0x9a33e330, 0xffffd87fffffdec8}, + {0x9a33e331, 0xffffd87fffffdec9}, + {0x9a33e332, 0xffffd87fffffdeca}, + {0x9a33e333, 0xffffd87fffffdecb}, + {0x9a33e334, 0xffffd87fffffdecc}, + {0x9a33e335, 0xffffd87fffffdecd}, + {0x9a33e336, 0xffffd87fffffdece}, + {0x9a33e337, 0xffffd87fffffdecf}, + {0x9a33e338, 0xffffd87fffffded0}, + {0x9a33e339, 0xffffd87fffffded1}, + {0x9a33e430, 0xffffd87fffffded2}, + {0x9a33e431, 0xffffd87fffffded3}, + {0x9a33e432, 0xffffd87fffffded4}, + {0x9a33e433, 0xffffd87fffffded5}, + {0x9a33e434, 0xffffd87fffffded6}, + {0x9a33e435, 0xffffd87fffffded7}, + {0x9a33e436, 0xffffd87fffffded8}, + {0x9a33e437, 0xffffd87fffffded9}, + {0x9a33e438, 0xffffd87fffffdeda}, + {0x9a33e439, 0xffffd87fffffdedb}, + {0x9a33e530, 0xffffd87fffffdedc}, + {0x9a33e531, 0xffffd87fffffdedd}, + {0x9a33e532, 0xffffd87fffffdede}, + {0x9a33e533, 0xffffd87fffffdedf}, + {0x9a33e534, 0xffffd87fffffdee0}, + {0x9a33e535, 0xffffd87fffffdee1}, + {0x9a33e536, 0xffffd87fffffdee2}, + {0x9a33e537, 0xffffd87fffffdee3}, + {0x9a33e538, 0xffffd87fffffdee4}, + {0x9a33e539, 0xffffd87fffffdee5}, + {0x9a33e630, 0xffffd87fffffdee6}, + {0x9a33e631, 0xffffd87fffffdee7}, + {0x9a33e632, 0xffffd87fffffdee8}, + {0x9a33e633, 0xffffd87fffffdee9}, + {0x9a33e634, 0xffffd87fffffdeea}, + {0x9a33e635, 0xffffd87fffffdeeb}, + {0x9a33e636, 0xffffd87fffffdeec}, + {0x9a33e637, 0xffffd87fffffdeed}, + {0x9a33e638, 0xffffd87fffffdeee}, + {0x9a33e639, 0xffffd87fffffdeef}, + {0x9a33e730, 0xffffd87fffffdef0}, + {0x9a33e731, 0xffffd87fffffdef1}, + {0x9a33e732, 0xffffd87fffffdef2}, + {0x9a33e733, 0xffffd87fffffdef3}, + {0x9a33e734, 0xffffd87fffffdef4}, + {0x9a33e735, 0xffffd87fffffdef5}, + {0x9a33e736, 0xffffd87fffffdef6}, + {0x9a33e737, 0xffffd87fffffdef7}, + {0x9a33e738, 0xffffd87fffffdef8}, + {0x9a33e739, 0xffffd87fffffdef9}, + {0x9a33e830, 0xffffd87fffffdefa}, + {0x9a33e831, 0xffffd87fffffdefb}, + {0x9a33e832, 0xffffd87fffffdefc}, + {0x9a33e833, 0xffffd87fffffdefd}, + {0x9a33e834, 0xffffd87fffffdefe}, + {0x9a33e835, 0xffffd87fffffdeff}, + {0x9a33e836, 0xffffd87fffffdf00}, + {0x9a33e837, 0xffffd87fffffdf01}, + {0x9a33e838, 0xffffd87fffffdf02}, + {0x9a33e839, 0xffffd87fffffdf03}, + {0x9a33e930, 0xffffd87fffffdf04}, + {0x9a33e931, 0xffffd87fffffdf05}, + {0x9a33e932, 0xffffd87fffffdf06}, + {0x9a33e933, 0xffffd87fffffdf07}, + {0x9a33e934, 0xffffd87fffffdf08}, + {0x9a33e935, 0xffffd87fffffdf09}, + {0x9a33e936, 0xffffd87fffffdf0a}, + {0x9a33e937, 0xffffd87fffffdf0b}, + {0x9a33e938, 0xffffd87fffffdf0c}, + {0x9a33e939, 0xffffd87fffffdf0d}, + {0x9a33ea30, 0xffffd87fffffdf0e}, + {0x9a33ea31, 0xffffd87fffffdf0f}, + {0x9a33ea32, 0xffffd87fffffdf10}, + {0x9a33ea33, 0xffffd87fffffdf11}, + {0x9a33ea34, 0xffffd87fffffdf12}, + {0x9a33ea35, 0xffffd87fffffdf13}, + {0x9a33ea36, 0xffffd87fffffdf14}, + {0x9a33ea37, 0xffffd87fffffdf15}, + {0x9a33ea38, 0xffffd87fffffdf16}, + {0x9a33ea39, 0xffffd87fffffdf17}, + {0x9a33eb30, 0xffffd87fffffdf18}, + {0x9a33eb31, 0xffffd87fffffdf19}, + {0x9a33eb32, 0xffffd87fffffdf1a}, + {0x9a33eb33, 0xffffd87fffffdf1b}, + {0x9a33eb34, 0xffffd87fffffdf1c}, + {0x9a33eb35, 0xffffd87fffffdf1d}, + {0x9a33eb36, 0xffffd87fffffdf1e}, + {0x9a33eb37, 0xffffd87fffffdf1f}, + {0x9a33eb38, 0xffffd87fffffdf20}, + {0x9a33eb39, 0xffffd87fffffdf21}, + {0x9a33ec30, 0xffffd87fffffdf22}, + {0x9a33ec31, 0xffffd87fffffdf23}, + {0x9a33ec32, 0xffffd87fffffdf24}, + {0x9a33ec33, 0xffffd87fffffdf25}, + {0x9a33ec34, 0xffffd87fffffdf26}, + {0x9a33ec35, 0xffffd87fffffdf27}, + {0x9a33ec36, 0xffffd87fffffdf28}, + {0x9a33ec37, 0xffffd87fffffdf29}, + {0x9a33ec38, 0xffffd87fffffdf2a}, + {0x9a33ec39, 0xffffd87fffffdf2b}, + {0x9a33ed30, 0xffffd87fffffdf2c}, + {0x9a33ed31, 0xffffd87fffffdf2d}, + {0x9a33ed32, 0xffffd87fffffdf2e}, + {0x9a33ed33, 0xffffd87fffffdf2f}, + {0x9a33ed34, 0xffffd87fffffdf30}, + {0x9a33ed35, 0xffffd87fffffdf31}, + {0x9a33ed36, 0xffffd87fffffdf32}, + {0x9a33ed37, 0xffffd87fffffdf33}, + {0x9a33ed38, 0xffffd87fffffdf34}, + {0x9a33ed39, 0xffffd87fffffdf35}, + {0x9a33ee30, 0xffffd87fffffdf36}, + {0x9a33ee31, 0xffffd87fffffdf37}, + {0x9a33ee32, 0xffffd87fffffdf38}, + {0x9a33ee33, 0xffffd87fffffdf39}, + {0x9a33ee34, 0xffffd87fffffdf3a}, + {0x9a33ee35, 0xffffd87fffffdf3b}, + {0x9a33ee36, 0xffffd87fffffdf3c}, + {0x9a33ee37, 0xffffd87fffffdf3d}, + {0x9a33ee38, 0xffffd87fffffdf3e}, + {0x9a33ee39, 0xffffd87fffffdf3f}, + {0x9a33ef30, 0xffffd87fffffdf40}, + {0x9a33ef31, 0xffffd87fffffdf41}, + {0x9a33ef32, 0xffffd87fffffdf42}, + {0x9a33ef33, 0xffffd87fffffdf43}, + {0x9a33ef34, 0xffffd87fffffdf44}, + {0x9a33ef35, 0xffffd87fffffdf45}, + {0x9a33ef36, 0xffffd87fffffdf46}, + {0x9a33ef37, 0xffffd87fffffdf47}, + {0x9a33ef38, 0xffffd87fffffdf48}, + {0x9a33ef39, 0xffffd87fffffdf49}, + {0x9a33f030, 0xffffd87fffffdf4a}, + {0x9a33f031, 0xffffd87fffffdf4b}, + {0x9a33f032, 0xffffd87fffffdf4c}, + {0x9a33f033, 0xffffd87fffffdf4d}, + {0x9a33f034, 0xffffd87fffffdf4e}, + {0x9a33f035, 0xffffd87fffffdf4f}, + {0x9a33f036, 0xffffd87fffffdf50}, + {0x9a33f037, 0xffffd87fffffdf51}, + {0x9a33f038, 0xffffd87fffffdf52}, + {0x9a33f039, 0xffffd87fffffdf53}, + {0x9a33f130, 0xffffd87fffffdf54}, + {0x9a33f131, 0xffffd87fffffdf55}, + {0x9a33f132, 0xffffd87fffffdf56}, + {0x9a33f133, 0xffffd87fffffdf57}, + {0x9a33f134, 0xffffd87fffffdf58}, + {0x9a33f135, 0xffffd87fffffdf59}, + {0x9a33f136, 0xffffd87fffffdf5a}, + {0x9a33f137, 0xffffd87fffffdf5b}, + {0x9a33f138, 0xffffd87fffffdf5c}, + {0x9a33f139, 0xffffd87fffffdf5d}, + {0x9a33f230, 0xffffd87fffffdf5e}, + {0x9a33f231, 0xffffd87fffffdf5f}, + {0x9a33f232, 0xffffd87fffffdf60}, + {0x9a33f233, 0xffffd87fffffdf61}, + {0x9a33f234, 0xffffd87fffffdf62}, + {0x9a33f235, 0xffffd87fffffdf63}, + {0x9a33f236, 0xffffd87fffffdf64}, + {0x9a33f237, 0xffffd87fffffdf65}, + {0x9a33f238, 0xffffd87fffffdf66}, + {0x9a33f239, 0xffffd87fffffdf67}, + {0x9a33f330, 0xffffd87fffffdf68}, + {0x9a33f331, 0xffffd87fffffdf69}, + {0x9a33f332, 0xffffd87fffffdf6a}, + {0x9a33f333, 0xffffd87fffffdf6b}, + {0x9a33f334, 0xffffd87fffffdf6c}, + {0x9a33f335, 0xffffd87fffffdf6d}, + {0x9a33f336, 0xffffd87fffffdf6e}, + {0x9a33f337, 0xffffd87fffffdf6f}, + {0x9a33f338, 0xffffd87fffffdf70}, + {0x9a33f339, 0xffffd87fffffdf71}, + {0x9a33f430, 0xffffd87fffffdf72}, + {0x9a33f431, 0xffffd87fffffdf73}, + {0x9a33f432, 0xffffd87fffffdf74}, + {0x9a33f433, 0xffffd87fffffdf75}, + {0x9a33f434, 0xffffd87fffffdf76}, + {0x9a33f435, 0xffffd87fffffdf77}, + {0x9a33f436, 0xffffd87fffffdf78}, + {0x9a33f437, 0xffffd87fffffdf79}, + {0x9a33f438, 0xffffd87fffffdf7a}, + {0x9a33f439, 0xffffd87fffffdf7b}, + {0x9a33f530, 0xffffd87fffffdf7c}, + {0x9a33f531, 0xffffd87fffffdf7d}, + {0x9a33f532, 0xffffd87fffffdf7e}, + {0x9a33f533, 0xffffd87fffffdf7f}, + {0x9a33f534, 0xffffd87fffffdf80}, + {0x9a33f535, 0xffffd87fffffdf81}, + {0x9a33f536, 0xffffd87fffffdf82}, + {0x9a33f537, 0xffffd87fffffdf83}, + {0x9a33f538, 0xffffd87fffffdf84}, + {0x9a33f539, 0xffffd87fffffdf85}, + {0x9a33f630, 0xffffd87fffffdf86}, + {0x9a33f631, 0xffffd87fffffdf87}, + {0x9a33f632, 0xffffd87fffffdf88}, + {0x9a33f633, 0xffffd87fffffdf89}, + {0x9a33f634, 0xffffd87fffffdf8a}, + {0x9a33f635, 0xffffd87fffffdf8b}, + {0x9a33f636, 0xffffd87fffffdf8c}, + {0x9a33f637, 0xffffd87fffffdf8d}, + {0x9a33f638, 0xffffd87fffffdf8e}, + {0x9a33f639, 0xffffd87fffffdf8f}, + {0x9a33f730, 0xffffd87fffffdf90}, + {0x9a33f731, 0xffffd87fffffdf91}, + {0x9a33f732, 0xffffd87fffffdf92}, + {0x9a33f733, 0xffffd87fffffdf93}, + {0x9a33f734, 0xffffd87fffffdf94}, + {0x9a33f735, 0xffffd87fffffdf95}, + {0x9a33f736, 0xffffd87fffffdf96}, + {0x9a33f737, 0xffffd87fffffdf97}, + {0x9a33f738, 0xffffd87fffffdf98}, + {0x9a33f739, 0xffffd87fffffdf99}, + {0x9a33f830, 0xffffd87fffffdf9a}, + {0x9a33f831, 0xffffd87fffffdf9b}, + {0x9a33f832, 0xffffd87fffffdf9c}, + {0x9a33f833, 0xffffd87fffffdf9d}, + {0x9a33f834, 0xffffd87fffffdf9e}, + {0x9a33f835, 0xffffd87fffffdf9f}, + {0x9a33f836, 0xffffd87fffffdfa0}, + {0x9a33f837, 0xffffd87fffffdfa1}, + {0x9a33f838, 0xffffd87fffffdfa2}, + {0x9a33f839, 0xffffd87fffffdfa3}, + {0x9a33f930, 0xffffd87fffffdfa4}, + {0x9a33f931, 0xffffd87fffffdfa5}, + {0x9a33f932, 0xffffd87fffffdfa6}, + {0x9a33f933, 0xffffd87fffffdfa7}, + {0x9a33f934, 0xffffd87fffffdfa8}, + {0x9a33f935, 0xffffd87fffffdfa9}, + {0x9a33f936, 0xffffd87fffffdfaa}, + {0x9a33f937, 0xffffd87fffffdfab}, + {0x9a33f938, 0xffffd87fffffdfac}, + {0x9a33f939, 0xffffd87fffffdfad}, + {0x9a33fa30, 0xffffd87fffffdfae}, + {0x9a33fa31, 0xffffd87fffffdfaf}, + {0x9a33fa32, 0xffffd87fffffdfb0}, + {0x9a33fa33, 0xffffd87fffffdfb1}, + {0x9a33fa34, 0xffffd87fffffdfb2}, + {0x9a33fa35, 0xffffd87fffffdfb3}, + {0x9a33fa36, 0xffffd87fffffdfb4}, + {0x9a33fa37, 0xffffd87fffffdfb5}, + {0x9a33fa38, 0xffffd87fffffdfb6}, + {0x9a33fa39, 0xffffd87fffffdfb7}, + {0x9a33fb30, 0xffffd87fffffdfb8}, + {0x9a33fb31, 0xffffd87fffffdfb9}, + {0x9a33fb32, 0xffffd87fffffdfba}, + {0x9a33fb33, 0xffffd87fffffdfbb}, + {0x9a33fb34, 0xffffd87fffffdfbc}, + {0x9a33fb35, 0xffffd87fffffdfbd}, + {0x9a33fb36, 0xffffd87fffffdfbe}, + {0x9a33fb37, 0xffffd87fffffdfbf}, + {0x9a33fb38, 0xffffd87fffffdfc0}, + {0x9a33fb39, 0xffffd87fffffdfc1}, + {0x9a33fc30, 0xffffd87fffffdfc2}, + {0x9a33fc31, 0xffffd87fffffdfc3}, + {0x9a33fc32, 0xffffd87fffffdfc4}, + {0x9a33fc33, 0xffffd87fffffdfc5}, + {0x9a33fc34, 0xffffd87fffffdfc6}, + {0x9a33fc35, 0xffffd87fffffdfc7}, + {0x9a33fc36, 0xffffd87fffffdfc8}, + {0x9a33fc37, 0xffffd87fffffdfc9}, + {0x9a33fc38, 0xffffd87fffffdfca}, + {0x9a33fc39, 0xffffd87fffffdfcb}, + {0x9a33fd30, 0xffffd87fffffdfcc}, + {0x9a33fd31, 0xffffd87fffffdfcd}, + {0x9a33fd32, 0xffffd87fffffdfce}, + {0x9a33fd33, 0xffffd87fffffdfcf}, + {0x9a33fd34, 0xffffd87fffffdfd0}, + {0x9a33fd35, 0xffffd87fffffdfd1}, + {0x9a33fd36, 0xffffd87fffffdfd2}, + {0x9a33fd37, 0xffffd87fffffdfd3}, + {0x9a33fd38, 0xffffd87fffffdfd4}, + {0x9a33fd39, 0xffffd87fffffdfd5}, + {0x9a33fe30, 0xffffd87fffffdfd6}, + {0x9a33fe31, 0xffffd87fffffdfd7}, + {0x9a33fe32, 0xffffd87fffffdfd8}, + {0x9a33fe33, 0xffffd87fffffdfd9}, + {0x9a33fe34, 0xffffd87fffffdfda}, + {0x9a33fe35, 0xffffd87fffffdfdb}, + {0x9a33fe36, 0xffffd87fffffdfdc}, + {0x9a33fe37, 0xffffd87fffffdfdd}, + {0x9a33fe38, 0xffffd87fffffdfde}, + {0x9a33fe39, 0xffffd87fffffdfdf}, + {0x9a348130, 0xffffd87fffffdfe0}, + {0x9a348131, 0xffffd87fffffdfe1}, + {0x9a348132, 0xffffd87fffffdfe2}, + {0x9a348133, 0xffffd87fffffdfe3}, + {0x9a348134, 0xffffd87fffffdfe4}, + {0x9a348135, 0xffffd87fffffdfe5}, + {0x9a348136, 0xffffd87fffffdfe6}, + {0x9a348137, 0xffffd87fffffdfe7}, + {0x9a348138, 0xffffd87fffffdfe8}, + {0x9a348139, 0xffffd87fffffdfe9}, + {0x9a348230, 0xffffd87fffffdfea}, + {0x9a348231, 0xffffd87fffffdfeb}, + {0x9a348232, 0xffffd87fffffdfec}, + {0x9a348233, 0xffffd87fffffdfed}, + {0x9a348234, 0xffffd87fffffdfee}, + {0x9a348235, 0xffffd87fffffdfef}, + {0x9a348236, 0xffffd87fffffdff0}, + {0x9a348237, 0xffffd87fffffdff1}, + {0x9a348238, 0xffffd87fffffdff2}, + {0x9a348239, 0xffffd87fffffdff3}, + {0x9a348330, 0xffffd87fffffdff4}, + {0x9a348331, 0xffffd87fffffdff5}, + {0x9a348332, 0xffffd87fffffdff6}, + {0x9a348333, 0xffffd87fffffdff7}, + {0x9a348334, 0xffffd87fffffdff8}, + {0x9a348335, 0xffffd87fffffdff9}, + {0x9a348336, 0xffffd87fffffdffa}, + {0x9a348337, 0xffffd87fffffdffb}, + {0x9a348338, 0xffffd87fffffdffc}, + {0x9a348339, 0xffffd87fffffdffd}, + {0x9a348430, 0xffffd87fffffdffe}, + {0x9a348431, 0xffffd87fffffdfff}, + {0x9a348432, 0xffffd880ffffdc00}, + {0x9a348433, 0xffffd880ffffdc01}, + {0x9a348434, 0xffffd880ffffdc02}, + {0x9a348435, 0xffffd880ffffdc03}, + {0x9a348436, 0xffffd880ffffdc04}, + {0x9a348437, 0xffffd880ffffdc05}, + {0x9a348438, 0xffffd880ffffdc06}, + {0x9a348439, 0xffffd880ffffdc07} +}; \ No newline at end of file diff --git a/src/common/backend/utils/mb/nlssort/nlssort_pinyin_map1_simple.map b/src/common/backend/utils/mb/nlssort/nlssort_pinyin_map1_simple.map new file mode 100644 index 000000000..8923d8a0a --- /dev/null +++ b/src/common/backend/utils/mb/nlssort/nlssort_pinyin_map1_simple.map @@ -0,0 +1,63132 @@ +static nlssort_encode_simple PINYIN_map1_S[ 63130 ] = { + {0x00, 0xffff0000}, + {0x01, 0xffff0001}, + {0x02, 0xffff0002}, + {0x03, 0xffff0003}, + {0x04, 0xffff0004}, + {0x05, 0xffff0005}, + {0x06, 0xffff0006}, + {0x07, 0xffff0007}, + {0x08, 0xffff0008}, + {0x09, 0xffff0009}, + {0x0a, 0xffff000a}, + {0x0b, 0xffff000b}, + {0x0c, 0xffff000c}, + {0x0d, 0xffff000d}, + {0x0e, 0xffff000e}, + {0x0f, 0xffff000f}, + {0x10, 0xffff0010}, + {0x11, 0xffff0011}, + {0x12, 0xffff0012}, + {0x13, 0xffff0013}, + {0x14, 0xffff0014}, + {0x15, 0xffff0015}, + {0x16, 0xffff0016}, + {0x17, 0xffff0017}, + {0x18, 0xffff0018}, + {0x19, 0xffff0019}, + {0x1a, 0xffff001a}, + {0x1b, 0xffff001b}, + {0x1c, 0xffff001c}, + {0x1d, 0xffff001d}, + {0x1e, 0xffff001e}, + {0x1f, 0xffff001f}, + {0x24, 0x0087}, + {0x30, 0x0179}, + {0x31, 0x017a}, + {0x32, 0x017b}, + {0x33, 0x017c}, + {0x34, 0x017d}, + {0x35, 0x017e}, + {0x36, 0x017f}, + {0x37, 0x0180}, + {0x38, 0x0181}, + {0x39, 0x0182}, + {0x41, 0x01ea}, + {0x42, 0x01ef}, + {0x43, 0x01f4}, + {0x44, 0x01f7}, + {0x45, 0x01fe}, + {0x46, 0x0209}, + {0x47, 0x020b}, + {0x48, 0x0213}, + {0x49, 0x021b}, + {0x4a, 0x021f}, + {0x4b, 0x0223}, + {0x4c, 0x0226}, + {0x4d, 0x0230}, + {0x4e, 0x0232}, + {0x4f, 0x0238}, + {0x50, 0x023f}, + {0x51, 0x0242}, + {0x52, 0x0245}, + {0x53, 0x024f}, + {0x54, 0x0255}, + {0x55, 0x025b}, + {0x56, 0x0261}, + {0x57, 0x0264}, + {0x58, 0x0266}, + {0x59, 0x0267}, + {0x5a, 0x026a}, + {0x61, 0x01ea}, + {0x62, 0x01ef}, + {0x63, 0x01f4}, + {0x64, 0x01f7}, + {0x65, 0x01fe}, + {0x66, 0x0209}, + {0x67, 0x020b}, + {0x68, 0x0213}, + {0x69, 0x021b}, + {0x6a, 0x021f}, + {0x6b, 0x0223}, + {0x6c, 0x0226}, + {0x6d, 0x0230}, + {0x6e, 0x0232}, + {0x6f, 0x0238}, + {0x70, 0x023f}, + {0x71, 0x0242}, + {0x72, 0x0245}, + {0x73, 0x024f}, + {0x74, 0x0255}, + {0x75, 0x025b}, + {0x76, 0x0261}, + {0x77, 0x0264}, + {0x78, 0x0266}, + {0x79, 0x0267}, + {0x7a, 0x026a}, + {0x7f, 0xffff007f}, + {0x8140, 0x6f35}, + {0x8141, 0x94e5}, + {0x8142, 0xa7e2}, + {0x8143, 0x8221}, + {0x8144, 0x8008}, + {0x8145, 0x4839}, + {0x8146, 0x9706}, + {0x8147, 0x4fce}, + {0x8148, 0x8e9c}, + {0x8149, 0x7706}, + {0x814a, 0xb85d}, + {0x814b, 0x414a}, + {0x814c, 0x6b9c}, + {0x814d, 0x652a}, + {0x814e, 0x69e0}, + {0x814f, 0x5b34}, + {0x8150, 0x449a}, + {0x8151, 0xc55c}, + {0x8152, 0x5cb8}, + {0x8153, 0x6b04}, + {0x8154, 0x5604}, + {0x8155, 0xb359}, + {0x8156, 0xb41d}, + {0x8157, 0xa548}, + {0x8158, 0x6bc5}, + {0x8159, 0x5f02}, + {0x815a, 0xb5e8}, + {0x815b, 0x605c}, + {0x815c, 0x4680}, + {0x815d, 0xb596}, + {0x815e, 0xa1f8}, + {0x815f, 0x5772}, + {0x8160, 0x6bc6}, + {0x8161, 0x5ced}, + {0x8162, 0x5f04}, + {0x8163, 0x5044}, + {0x8164, 0x96ec}, + {0x8165, 0x82ba}, + {0x8166, 0x6ecc}, + {0x8167, 0x6ff8}, + {0x8168, 0x9fb0}, + {0x8169, 0x81aa}, + {0x816a, 0x857a}, + {0x816b, 0x42b8}, + {0x816c, 0xae41}, + {0x816d, 0xb03e}, + {0x816e, 0x8745}, + {0x816f, 0x93d9}, + {0x8170, 0x822e}, + {0x8171, 0x8bd6}, + {0x8172, 0x99b0}, + {0x8173, 0x52d6}, + {0x8174, 0x4b0d}, + {0x8175, 0x43b1}, + {0x8176, 0xc225}, + {0x8177, 0x5ba2}, + {0x8178, 0x57ae}, + {0x8179, 0x7b80}, + {0x817a, 0x7828}, + {0x817b, 0xb4e4}, + {0x817c, 0x6d89}, + {0x817d, 0x7c9c}, + {0x817e, 0x9711}, + {0x8180, 0xb8d1}, + {0x8181, 0x9968}, + {0x8182, 0x9af8}, + {0x8183, 0x594d}, + {0x8184, 0xaf71}, + {0x8185, 0x8a18}, + {0x8186, 0xaf75}, + {0x8187, 0x4bfc}, + {0x8188, 0xb276}, + {0x8189, 0xa992}, + {0x818a, 0x6ad4}, + {0x818b, 0xb2ad}, + {0x818c, 0xb8a8}, + {0x818d, 0x4c91}, + {0x818e, 0x765c}, + {0x818f, 0x51d1}, + {0x8190, 0xa3ae}, + {0x8191, 0x649d}, + {0x8192, 0x90b0}, + {0x8193, 0xa284}, + {0x8194, 0x3c85}, + {0x8195, 0x4119}, + {0x8196, 0x55aa}, + {0x8197, 0x9d56}, + {0x8198, 0x52d5}, + {0x8199, 0xa7fe}, + {0x819a, 0x519e}, + {0x819b, 0x5f1e}, + {0x819c, 0x57bc}, + {0x819d, 0x418c}, + {0x819e, 0x458a}, + {0x819f, 0x4504}, + {0x81a0, 0x94e8}, + {0x81a1, 0x914c}, + {0x81a2, 0x53cc}, + {0x81a3, 0x458c}, + {0x81a4, 0x8bd0}, + {0x81a5, 0xa4c6}, + {0x81a6, 0xb21e}, + {0x81a7, 0x552d}, + {0x81a8, 0x430e}, + {0x81a9, 0xa288}, + {0x81aa, 0x4dc4}, + {0x81ab, 0xc2c6}, + {0x81ac, 0x86a9}, + {0x81ad, 0xb8d8}, + {0x81ae, 0x4f18}, + {0x81af, 0x5172}, + {0x81b0, 0xa58e}, + {0x81b1, 0xb434}, + {0x81b2, 0xabb1}, + {0x81b3, 0x64a1}, + {0x81b4, 0x3b68}, + {0x81b5, 0x6a74}, + {0x81b6, 0x874c}, + {0x81b7, 0x4c82}, + {0x81b8, 0x55be}, + {0x81b9, 0x8512}, + {0x81ba, 0x4b2d}, + {0x81bb, 0xbbd4}, + {0x81bc, 0x4591}, + {0x81bd, 0x8c2c}, + {0x81be, 0xaefd}, + {0x81bf, 0xabb8}, + {0x81c0, 0xbd49}, + {0x81c1, 0xa85c}, + {0x81c2, 0x8519}, + {0x81c3, 0x8375}, + {0x81c4, 0xaafe}, + {0x81c5, 0xad2a}, + {0x81c6, 0xc369}, + {0x81c7, 0x8f31}, + {0x81c8, 0x3ea1}, + {0x81c9, 0x874d}, + {0x81ca, 0xb43c}, + {0x81cb, 0x9974}, + {0x81cc, 0xb3e8}, + {0x81cd, 0xc0b6}, + {0x81ce, 0x5cf1}, + {0x81cf, 0x7cfa}, + {0x81d0, 0xc420}, + {0x81d1, 0x424a}, + {0x81d2, 0x8f32}, + {0x81d3, 0x3ef8}, + {0x81d4, 0xbf40}, + {0x81d5, 0x4a31}, + {0x81d6, 0xb175}, + {0x81d7, 0xbecd}, + {0x81d8, 0x3f21}, + {0x81d9, 0xa805}, + {0x81da, 0x8f7c}, + {0x81db, 0x96a9}, + {0x81dc, 0x3da6}, + {0x81dd, 0x6294}, + {0x81de, 0x5e9d}, + {0x81df, 0xa981}, + {0x81e0, 0x58b1}, + {0x81e1, 0x535a}, + {0x81e2, 0x810a}, + {0x81e3, 0x414c}, + {0x81e4, 0x5ed5}, + {0x81e5, 0x6399}, + {0x81e6, 0x5bd6}, + {0x81e7, 0x8ffd}, + {0x81e8, 0x4a39}, + {0x81e9, 0xac06}, + {0x81ea, 0x957c}, + {0x81eb, 0xa13d}, + {0x81ec, 0x574d}, + {0x81ed, 0x726d}, + {0x81ee, 0xb36c}, + {0x81ef, 0x5b64}, + {0x81f0, 0xb59d}, + {0x81f1, 0x7f7d}, + {0x81f2, 0xad32}, + {0x81f3, 0x3ba4}, + {0x81f4, 0x7ac4}, + {0x81f5, 0x52dd}, + {0x81f6, 0x7b8a}, + {0x81f7, 0x43fe}, + {0x81f8, 0x46d4}, + {0x81f9, 0xaf01}, + {0x81fa, 0xc321}, + {0x81fb, 0x921e}, + {0x81fc, 0x6784}, + {0x81fd, 0x997d}, + {0x81fe, 0x4c12}, + {0x8240, 0x9baa}, + {0x8241, 0x84a9}, + {0x8242, 0x6a7e}, + {0x8243, 0x6b7d}, + {0x8244, 0x46c2}, + {0x8245, 0xc085}, + {0x8246, 0xc79d}, + {0x8247, 0x483d}, + {0x8248, 0x7c41}, + {0x8249, 0x6c5c}, + {0x824a, 0x983c}, + {0x824b, 0x9f98}, + {0x824c, 0x95e9}, + {0x824d, 0xa144}, + {0x824e, 0x419d}, + {0x824f, 0x8291}, + {0x8250, 0xa9d6}, + {0x8251, 0xa0f0}, + {0x8252, 0xb986}, + {0x8253, 0xa738}, + {0x8254, 0xad01}, + {0x8255, 0x5b86}, + {0x8256, 0x7068}, + {0x8257, 0xa55e}, + {0x8258, 0xb471}, + {0x8259, 0x56a8}, + {0x825a, 0x76f0}, + {0x825b, 0x6376}, + {0x825c, 0x6b2d}, + {0x825d, 0x8c2e}, + {0x825e, 0x9352}, + {0x825f, 0x86a8}, + {0x8260, 0xa5f5}, + {0x8261, 0x8010}, + {0x8262, 0xa7a0}, + {0x8263, 0xac66}, + {0x8264, 0x4e4a}, + {0x8265, 0x4594}, + {0x8266, 0xc1fd}, + {0x8267, 0x726e}, + {0x8268, 0x9922}, + {0x8269, 0x63b5}, + {0x826a, 0xaa6a}, + {0x826b, 0x6790}, + {0x826c, 0x40a8}, + {0x826d, 0x48b9}, + {0x826e, 0x548a}, + {0x826f, 0xaf7d}, + {0x8270, 0x3e40}, + {0x8271, 0xb9de}, + {0x8272, 0xab94}, + {0x8273, 0x4716}, + {0x8274, 0x44e6}, + {0x8275, 0xc146}, + {0x8276, 0x4151}, + {0x8277, 0x6be6}, + {0x8278, 0xb1d4}, + {0x8279, 0x4b32}, + {0x827a, 0x7645}, + {0x827b, 0xa231}, + {0x827c, 0x7271}, + {0x827d, 0x4315}, + {0x827e, 0xc6a8}, + {0x8280, 0x58fe}, + {0x8281, 0x9ec6}, + {0x8282, 0x97c5}, + {0x8283, 0x7ec1}, + {0x8284, 0x9c7d}, + {0x8285, 0x495a}, + {0x8286, 0xac2e}, + {0x8287, 0x86fc}, + {0x8288, 0x89d0}, + {0x8289, 0x57dd}, + {0x828a, 0x6b32}, + {0x828b, 0x9acc}, + {0x828c, 0x6979}, + {0x828d, 0x542d}, + {0x828e, 0xc178}, + {0x828f, 0xc64e}, + {0x8290, 0x7b8d}, + {0x8291, 0x99ba}, + {0x8292, 0x7495}, + {0x8293, 0x6378}, + {0x8294, 0x4fe4}, + {0x8295, 0xc639}, + {0x8296, 0x3e80}, + {0x8297, 0xa560}, + {0x8298, 0x6c22}, + {0x8299, 0x8271}, + {0x829a, 0x42a0}, + {0x829b, 0x6729}, + {0x829c, 0xb279}, + {0x829d, 0x9402}, + {0x829e, 0x8d56}, + {0x829f, 0xb68a}, + {0x82a0, 0x464c}, + {0x82a1, 0x8be4}, + {0x82a2, 0x927a}, + {0x82a3, 0xc312}, + {0x82a4, 0x49b6}, + {0x82a5, 0xa358}, + {0x82a6, 0xb994}, + {0x82a7, 0x4156}, + {0x82a8, 0x9e05}, + {0x82a9, 0xb0b5}, + {0x82aa, 0x5546}, + {0x82ab, 0x9d3d}, + {0x82ac, 0xa4ce}, + {0x82ad, 0x526d}, + {0x82ae, 0x459d}, + {0x82af, 0x963d}, + {0x82b0, 0x6ee0}, + {0x82b1, 0x4e52}, + {0x82b2, 0x43c2}, + {0x82b3, 0x3e4c}, + {0x82b4, 0xb2b9}, + {0x82b5, 0x61e1}, + {0x82b6, 0xb235}, + {0x82b7, 0xbed6}, + {0x82b8, 0x483e}, + {0x82b9, 0xafa4}, + {0x82ba, 0xb835}, + {0x82bb, 0xad15}, + {0x82bc, 0xbdd8}, + {0x82bd, 0x49f2}, + {0x82be, 0x56f0}, + {0x82bf, 0x3eda}, + {0x82c0, 0xc226}, + {0x82c1, 0x8016}, + {0x82c2, 0x64cc}, + {0x82c3, 0xb3fc}, + {0x82c4, 0xab1d}, + {0x82c5, 0xaed2}, + {0x82c6, 0x428c}, + {0x82c7, 0x50ec}, + {0x82c8, 0x436a}, + {0x82c9, 0xc012}, + {0x82ca, 0xa018}, + {0x82cb, 0x3e4d}, + {0x82cc, 0xbcb5}, + {0x82cd, 0x6981}, + {0x82ce, 0xa359}, + {0x82cf, 0x9a29}, + {0x82d0, 0xc241}, + {0x82d1, 0x9a6d}, + {0x82d2, 0xa78e}, + {0x82d3, 0xbb46}, + {0x82d4, 0x91ea}, + {0x82d5, 0x8521}, + {0x82d6, 0xbc34}, + {0x82d7, 0x6829}, + {0x82d8, 0x7cd0}, + {0x82d9, 0x4e90}, + {0x82da, 0x9cfe}, + {0x82db, 0x5e02}, + {0x82dc, 0x698e}, + {0x82dd, 0xa632}, + {0x82de, 0x9490}, + {0x82df, 0x8c35}, + {0x82e0, 0x6dc5}, + {0x82e1, 0x4318}, + {0x82e2, 0x48c8}, + {0x82e3, 0x933d}, + {0x82e4, 0x3e52}, + {0x82e5, 0xaa75}, + {0x82e6, 0xb7ca}, + {0x82e7, 0xb1de}, + {0x82e8, 0x9cd2}, + {0x82e9, 0x9b69}, + {0x82ea, 0xb184}, + {0x82eb, 0x534e}, + {0x82ec, 0x4158}, + {0x82ed, 0x6625}, + {0x82ee, 0xbca4}, + {0x82ef, 0x5a5d}, + {0x82f0, 0x42c5}, + {0x82f1, 0x743a}, + {0x82f2, 0xb77c}, + {0x82f3, 0xbd0c}, + {0x82f4, 0xc694}, + {0x82f5, 0x8708}, + {0x82f6, 0x99dd}, + {0x82f7, 0xc4ae}, + {0x82f8, 0xb9a5}, + {0x82f9, 0xbe5e}, + {0x82fa, 0xc6f4}, + {0x82fb, 0x94c9}, + {0x82fc, 0x4942}, + {0x82fd, 0x6b4e}, + {0x82fe, 0x5d72}, + {0x8340, 0xbefc}, + {0x8341, 0x8e0e}, + {0x8342, 0xafb2}, + {0x8343, 0x4e6e}, + {0x8344, 0xab36}, + {0x8345, 0x7a09}, + {0x8346, 0x3e54}, + {0x8347, 0x8862}, + {0x8348, 0x6a55}, + {0x8349, 0x76cd}, + {0x834a, 0x7aec}, + {0x834b, 0x7d4c}, + {0x834c, 0x8b98}, + {0x834d, 0xa826}, + {0x834e, 0x9cd6}, + {0x834f, 0xb6fe}, + {0x8350, 0x502e}, + {0x8351, 0xc4b1}, + {0x8352, 0x9498}, + {0x8353, 0x8cf4}, + {0x8354, 0x6b8e}, + {0x8355, 0xa0f8}, + {0x8356, 0xc76e}, + {0x8357, 0x8989}, + {0x8358, 0x73a2}, + {0x8359, 0x4539}, + {0x835a, 0x5b76}, + {0x835b, 0x89ed}, + {0x835c, 0x4db2}, + {0x835d, 0x4459}, + {0x835e, 0xa386}, + {0x835f, 0x6445}, + {0x8360, 0x417d}, + {0x8361, 0x62f6}, + {0x8362, 0x491a}, + {0x8363, 0x9f46}, + {0x8364, 0x4cc0}, + {0x8365, 0x68d6}, + {0x8366, 0x551c}, + {0x8367, 0xa928}, + {0x8368, 0x6c79}, + {0x8369, 0x529c}, + {0x836a, 0x782a}, + {0x836b, 0x41d2}, + {0x836c, 0x5aad}, + {0x836d, 0xa828}, + {0x836e, 0xa929}, + {0x836f, 0x80d9}, + {0x8370, 0xb2d0}, + {0x8371, 0x6aa8}, + {0x8372, 0x668e}, + {0x8373, 0x8d30}, + {0x8374, 0x555e}, + {0x8375, 0xc38d}, + {0x8376, 0x3b85}, + {0x8377, 0x9324}, + {0x8378, 0xb3b8}, + {0x8379, 0x6e71}, + {0x837a, 0x84de}, + {0x837b, 0x4461}, + {0x837c, 0xb515}, + {0x837d, 0x4ce5}, + {0x837e, 0x70b2}, + {0x8380, 0x6756}, + {0x8381, 0x48d6}, + {0x8382, 0x68de}, + {0x8383, 0x9400}, + {0x8384, 0xbca6}, + {0x8385, 0x4300}, + {0x8386, 0x40ee}, + {0x8387, 0x3bf9}, + {0x8388, 0x9c35}, + {0x8389, 0x4820}, + {0x838a, 0x4422}, + {0x838b, 0x72d1}, + {0x838c, 0x838a}, + {0x838d, 0x6ab0}, + {0x838e, 0x8c49}, + {0x838f, 0x7ee0}, + {0x8390, 0xa57a}, + {0x8391, 0x8491}, + {0x8392, 0x8e8c}, + {0x8393, 0x838c}, + {0x8394, 0x4525}, + {0x8395, 0x77cd}, + {0x8396, 0x7c5d}, + {0x8397, 0x70fa}, + {0x8398, 0x3e09}, + {0x8399, 0xba64}, + {0x839a, 0x407e}, + {0x839b, 0xbcbd}, + {0x839c, 0xc296}, + {0x839d, 0x99aa}, + {0x839e, 0xb800}, + {0x839f, 0x5dd6}, + {0x83a0, 0x8e58}, + {0x83a1, 0x4634}, + {0x83a2, 0x75f1}, + {0x83a3, 0x9dde}, + {0x83a4, 0xa3a1}, + {0x83a5, 0x79e8}, + {0x83a6, 0x48a1}, + {0x83a7, 0x4479}, + {0x83a8, 0x90e8}, + {0x83a9, 0x97f1}, + {0x83aa, 0x6335}, + {0x83ab, 0x761d}, + {0x83ac, 0x7bd0}, + {0x83ad, 0xbcc1}, + {0x83ae, 0x8538}, + {0x83af, 0x9d48}, + {0x83b0, 0xb08e}, + {0x83b1, 0x7459}, + {0x83b2, 0x82cd}, + {0x83b3, 0xbcaa}, + {0x83b4, 0xac46}, + {0x83b5, 0x5129}, + {0x83b6, 0x512a}, + {0x83b7, 0xa0a1}, + {0x83b8, 0x4505}, + {0x83b9, 0x52dc}, + {0x83ba, 0x52de}, + {0x83bb, 0x6a22}, + {0x83bc, 0xb046}, + {0x83bd, 0x96f5}, + {0x83be, 0x96e5}, + {0x83bf, 0x8bcd}, + {0x83c0, 0x5992}, + {0x83c1, 0x5de5}, + {0x83c2, 0x959c}, + {0x83c3, 0x503a}, + {0x83c4, 0x3d04}, + {0x83c5, 0x5994}, + {0x83c6, 0x623e}, + {0x83c7, 0xa285}, + {0x83c8, 0x832d}, + {0x83c9, 0x770a}, + {0x83ca, 0xb8f4}, + {0x83cb, 0x5cee}, + {0x83cc, 0x9e86}, + {0x83cd, 0x895a}, + {0x83ce, 0x659c}, + {0x83cf, 0xb4e5}, + {0x83d0, 0x7dde}, + {0x83d1, 0x90d1}, + {0x83d2, 0xafce}, + {0x83d3, 0x7dcc}, + {0x83d4, 0x435d}, + {0x83d5, 0x6b68}, + {0x83d6, 0x5ad1}, + {0x83d7, 0x6b76}, + {0x83d8, 0x7de5}, + {0x83d9, 0xc371}, + {0x83da, 0x59f2}, + {0x83db, 0xad10}, + {0x83dc, 0xb5e2}, + {0x83dd, 0x6ed9}, + {0x83de, 0xb362}, + {0x83df, 0x7f3c}, + {0x83e0, 0x9722}, + {0x83e1, 0x7ecc}, + {0x83e2, 0x6cde}, + {0x83e3, 0x702e}, + {0x83e4, 0x8096}, + {0x83e5, 0x56f1}, + {0x83e6, 0xaaf9}, + {0x83e7, 0x7fd2}, + {0x83e8, 0x9c42}, + {0x83e9, 0x57f4}, + {0x83ea, 0x6076}, + {0x83eb, 0x860e}, + {0x83ec, 0x560c}, + {0x83ed, 0x80be}, + {0x83ee, 0x8b51}, + {0x83ef, 0x669e}, + {0x83f0, 0x99f8}, + {0x83f1, 0x7e64}, + {0x83f2, 0xa060}, + {0x83f3, 0x5a96}, + {0x83f4, 0x6b34}, + {0x83f5, 0x8e4c}, + {0x83f6, 0x5020}, + {0x83f7, 0x57de}, + {0x83f8, 0xb5b1}, + {0x83f9, 0x3b44}, + {0x83fa, 0x75a9}, + {0x83fb, 0x4319}, + {0x83fc, 0x810e}, + {0x83fd, 0xc52a}, + {0x83fe, 0x4b11}, + {0x8440, 0x9939}, + {0x8441, 0x51b0}, + {0x8442, 0x6aa9}, + {0x8443, 0x782d}, + {0x8444, 0xa67e}, + {0x8445, 0x509c}, + {0x8446, 0x538c}, + {0x8447, 0x538d}, + {0x8448, 0x6c0e}, + {0x8449, 0x48aa}, + {0x844a, 0xc0b4}, + {0x844b, 0x552e}, + {0x844c, 0x81f4}, + {0x844d, 0xc1ae}, + {0x844e, 0x5531}, + {0x844f, 0x5536}, + {0x8450, 0x6ea9}, + {0x8451, 0x57b0}, + {0x8452, 0x88de}, + {0x8453, 0x709e}, + {0x8454, 0x5d0e}, + {0x8455, 0x9148}, + {0x8456, 0x4925}, + {0x8457, 0x6402}, + {0x8458, 0x8c29}, + {0x8459, 0x4b66}, + {0x845a, 0x6409}, + {0x845b, 0x4c84}, + {0x845c, 0xa211}, + {0x845d, 0x6d90}, + {0x845e, 0x749d}, + {0x845f, 0x560d}, + {0x8460, 0x8fd0}, + {0x8461, 0x4eed}, + {0x8462, 0x80c0}, + {0x8463, 0x7861}, + {0x8464, 0xc2c9}, + {0x8465, 0x40bd}, + {0x8466, 0x6962}, + {0x8467, 0x6964}, + {0x8468, 0x9430}, + {0x8469, 0x4498}, + {0x846a, 0x5919}, + {0x846b, 0x494c}, + {0x846c, 0x712a}, + {0x846d, 0x51d9}, + {0x846e, 0x5322}, + {0x846f, 0x6969}, + {0x8470, 0x4a3c}, + {0x8471, 0x6b10}, + {0x8472, 0x5035}, + {0x8473, 0x7be4}, + {0x8474, 0xbd55}, + {0x8475, 0xba9d}, + {0x8476, 0x4b95}, + {0x8477, 0x6fa1}, + {0x8478, 0x4402}, + {0x8479, 0x494d}, + {0x847a, 0x4b98}, + {0x847b, 0x74a2}, + {0x847c, 0x548c}, + {0x847d, 0x449d}, + {0x847e, 0x8a2a}, + {0x8480, 0x494e}, + {0x8481, 0xc63a}, + {0x8482, 0x5809}, + {0x8483, 0x3dac}, + {0x8484, 0x5195}, + {0x8485, 0x8e20}, + {0x8486, 0x507a}, + {0x8487, 0x6792}, + {0x8488, 0x6575}, + {0x8489, 0xaf9c}, + {0x848a, 0x63bd}, + {0x848b, 0x51a4}, + {0x848c, 0xa0b8}, + {0x848d, 0xa502}, + {0x848e, 0x5ad6}, + {0x848f, 0x964c}, + {0x8490, 0x679c}, + {0x8491, 0x4bd6}, + {0x8492, 0x6eaa}, + {0x8493, 0x4950}, + {0x8494, 0x48fc}, + {0x8495, 0x44a8}, + {0x8496, 0xa0b9}, + {0x8497, 0x7aed}, + {0x8498, 0x74c1}, + {0x8499, 0x8739}, + {0x849a, 0x9452}, + {0x849b, 0x701d}, + {0x849c, 0x5ac6}, + {0x849d, 0x6102}, + {0x849e, 0xbde5}, + {0x849f, 0xc582}, + {0x84a0, 0x7674}, + {0x84a1, 0x6d06}, + {0x84a2, 0x7929}, + {0x84a3, 0x5c1a}, + {0x84a4, 0x68e0}, + {0x84a5, 0x5c1c}, + {0x84a6, 0x67c1}, + {0x84a7, 0x67c2}, + {0x84a8, 0x9ce9}, + {0x84a9, 0x65c8}, + {0x84aa, 0x67d0}, + {0x84ab, 0x67d1}, + {0x84ac, 0xc298}, + {0x84ad, 0x447a}, + {0x84ae, 0xc715}, + {0x84af, 0x8141}, + {0x84b0, 0x751a}, + {0x84b1, 0xc3f2}, + {0x84b2, 0xaf69}, + {0x84b3, 0x6a75}, + {0x84b4, 0x6fdc}, + {0x84b5, 0xaa99}, + {0x84b6, 0xc1b0}, + {0x84b7, 0xb43e}, + {0x84b8, 0xc39d}, + {0x84b9, 0x814d}, + {0x84ba, 0x738e}, + {0x84bb, 0x6d59}, + {0x84bc, 0x7026}, + {0x84bd, 0xb140}, + {0x84be, 0xa1b1}, + {0x84bf, 0xaa66}, + {0x84c0, 0x81b1}, + {0x84c1, 0x70d9}, + {0x84c2, 0x696a}, + {0x84c3, 0x77a0}, + {0x84c4, 0x6fa2}, + {0x84c5, 0x6a81}, + {0x84c6, 0x5875}, + {0x84c7, 0x80c5}, + {0x84c8, 0x4770}, + {0x84c9, 0x733e}, + {0x84ca, 0xb7be}, + {0x84cb, 0x6fa4}, + {0x84cc, 0x6d5d}, + {0x84cd, 0x8e21}, + {0x84ce, 0x7acc}, + {0x84cf, 0x4259}, + {0x84d0, 0x4428}, + {0x84d1, 0x6ec4}, + {0x84d2, 0x8019}, + {0x84d3, 0x5024}, + {0x84d4, 0xad4c}, + {0x84d5, 0xa5a0}, + {0x84d6, 0xb4a4}, + {0x84d7, 0xae91}, + {0x84d8, 0xa48d}, + {0x84d9, 0x9650}, + {0x84da, 0x739c}, + {0x84db, 0x7aee}, + {0x84dc, 0x8864}, + {0x84dd, 0x9752}, + {0x84de, 0x643a}, + {0x84df, 0x682e}, + {0x84e0, 0x68ce}, + {0x84e1, 0x905a}, + {0x84e2, 0xa9c1}, + {0x84e3, 0xb4fa}, + {0x84e4, 0x6dd9}, + {0x84e5, 0x5371}, + {0x84e6, 0x6d39}, + {0x84e7, 0x9fe6}, + {0x84e8, 0x6d08}, + {0x84e9, 0x4c76}, + {0x84ea, 0x7d06}, + {0x84eb, 0xae98}, + {0x84ec, 0xae99}, + {0x84ed, 0x7c79}, + {0x84ee, 0x75dc}, + {0x84ef, 0x45c2}, + {0x84f0, 0x90e9}, + {0x84f1, 0x905d}, + {0x84f2, 0xbbd0}, + {0x84f3, 0x6b9d}, + {0x84f4, 0x3df0}, + {0x84f5, 0x7daa}, + {0x84f6, 0x3f19}, + {0x84f7, 0x5774}, + {0x84f8, 0x5775}, + {0x84f9, 0xb429}, + {0x84fa, 0x86d8}, + {0x84fb, 0x6c19}, + {0x84fc, 0x9d88}, + {0x84fd, 0x58b2}, + {0x84fe, 0x5264}, + {0x8540, 0x597a}, + {0x8541, 0x4bd8}, + {0x8542, 0x6bf4}, + {0x8543, 0x5988}, + {0x8544, 0x82fa}, + {0x8545, 0x6bd9}, + {0x8546, 0xb35d}, + {0x8547, 0x683e}, + {0x8548, 0x6f24}, + {0x8549, 0x5fd5}, + {0x854a, 0x8f34}, + {0x854b, 0x538e}, + {0x854c, 0x8d50}, + {0x854d, 0x4328}, + {0x854e, 0x70e0}, + {0x854f, 0x5fe8}, + {0x8550, 0xb995}, + {0x8551, 0x5bea}, + {0x8552, 0x62e5}, + {0x8553, 0x4c6d}, + {0x8554, 0x7194}, + {0x8555, 0x7669}, + {0x8556, 0x7675}, + {0x8557, 0x9abd}, + {0x8558, 0x509d}, + {0x8559, 0x6c06}, + {0x855a, 0x8fa9}, + {0x855b, 0xa724}, + {0x855c, 0x6f50}, + {0x855d, 0xb048}, + {0x855e, 0x8f54}, + {0x855f, 0xaef9}, + {0x8560, 0x83e4}, + {0x8561, 0xc6e6}, + {0x8562, 0x970c}, + {0x8563, 0xa725}, + {0x8564, 0xa261}, + {0x8565, 0xa262}, + {0x8566, 0xaaa0}, + {0x8567, 0x4c59}, + {0x8568, 0x64cd}, + {0x8569, 0x988a}, + {0x856a, 0x5b31}, + {0x856b, 0xa5e9}, + {0x856c, 0xab15}, + {0x856d, 0x695c}, + {0x856e, 0xb172}, + {0x856f, 0x8e62}, + {0x8570, 0x951e}, + {0x8571, 0x4742}, + {0x8572, 0xad34}, + {0x8573, 0x9066}, + {0x8574, 0x716e}, + {0x8575, 0x64b6}, + {0x8576, 0x526e}, + {0x8577, 0xa64c}, + {0x8578, 0x932a}, + {0x8579, 0xa33d}, + {0x857a, 0xbf92}, + {0x857b, 0x5d3a}, + {0x857c, 0xaf5a}, + {0x857d, 0x4e18}, + {0x857e, 0xbe0e}, + {0x8580, 0x8638}, + {0x8581, 0x3b31}, + {0x8582, 0x8d4c}, + {0x8583, 0xaf44}, + {0x8584, 0xc1f2}, + {0x8585, 0x7d7d}, + {0x8586, 0x9e00}, + {0x8587, 0x954c}, + {0x8588, 0x9f62}, + {0x8589, 0xc72e}, + {0x858a, 0x548d}, + {0x858b, 0x436c}, + {0x858c, 0xbae8}, + {0x858d, 0x75aa}, + {0x858e, 0x4e91}, + {0x858f, 0x6a56}, + {0x8590, 0x3c25}, + {0x8591, 0x5bf8}, + {0x8592, 0xb0ce}, + {0x8593, 0x75bd}, + {0x8594, 0x453a}, + {0x8595, 0x72cc}, + {0x8596, 0x75cc}, + {0x8597, 0xb010}, + {0x8598, 0xb084}, + {0x8599, 0xbb2a}, + {0x859a, 0x595d}, + {0x859b, 0x77e4}, + {0x859c, 0x91f2}, + {0x859d, 0x8fcd}, + {0x859e, 0x6ffa}, + {0x859f, 0x7430}, + {0x85a0, 0x50be}, + {0x85a1, 0xc489}, + {0x85a2, 0x42bc}, + {0x85a3, 0x42bd}, + {0x85a4, 0x42c1}, + {0x85a5, 0x3b7d}, + {0x85a6, 0x4c3c}, + {0x85a7, 0x9788}, + {0x85a8, 0x5af4}, + {0x85a9, 0x3caa}, + {0x85aa, 0x92cd}, + {0x85ab, 0x9712}, + {0x85ac, 0xc555}, + {0x85ad, 0x6669}, + {0x85ae, 0x9a26}, + {0x85af, 0x64b8}, + {0x85b0, 0xa3bc}, + {0x85b1, 0x92b9}, + {0x85b2, 0x4aa9}, + {0x85b3, 0x5ad2}, + {0x85b4, 0x8ecd}, + {0x85b5, 0x473d}, + {0x85b6, 0x5111}, + {0x85b7, 0x5f05}, + {0x85b8, 0x805d}, + {0x85b9, 0x7d72}, + {0x85ba, 0xad91}, + {0x85bb, 0xc60e}, + {0x85bc, 0x4b6a}, + {0x85bd, 0xb299}, + {0x85be, 0x859d}, + {0x85bf, 0x638c}, + {0x85c0, 0xb319}, + {0x85c1, 0x483a}, + {0x85c2, 0x8dea}, + {0x85c3, 0x69e5}, + {0x85c4, 0x424c}, + {0x85c5, 0x5210}, + {0x85c6, 0x5f25}, + {0x85c7, 0xa51a}, + {0x85c8, 0x8234}, + {0x85c9, 0xae6e}, + {0x85ca, 0x5034}, + {0x85cb, 0x5fb5}, + {0x85cc, 0x5872}, + {0x85cd, 0x6e50}, + {0x85ce, 0x7c3c}, + {0x85cf, 0x58b0}, + {0x85d0, 0x7e20}, + {0x85d1, 0x8abd}, + {0x85d2, 0xa51e}, + {0x85d3, 0x6902}, + {0x85d4, 0xbbd5}, + {0x85d5, 0x473e}, + {0x85d6, 0x9608}, + {0x85d7, 0xa109}, + {0x85d8, 0xa455}, + {0x85d9, 0x5256}, + {0x85da, 0x9664}, + {0x85db, 0x6d48}, + {0x85dc, 0x86d2}, + {0x85dd, 0xa459}, + {0x85de, 0x7c9a}, + {0x85df, 0x90b4}, + {0x85e0, 0x4e1e}, + {0x85e1, 0x971a}, + {0x85e2, 0xc36c}, + {0x85e3, 0x9f50}, + {0x85e4, 0xa72c}, + {0x85e5, 0xb455}, + {0x85e6, 0x8afc}, + {0x85e7, 0x88b1}, + {0x85e8, 0xc61c}, + {0x85e9, 0xad0c}, + {0x85ea, 0xb456}, + {0x85eb, 0xa9d4}, + {0x85ec, 0x4bc8}, + {0x85ed, 0x8fd1}, + {0x85ee, 0x5d0a}, + {0x85ef, 0xa13e}, + {0x85f0, 0x894e}, + {0x85f1, 0x40c0}, + {0x85f2, 0x5618}, + {0x85f3, 0xb11d}, + {0x85f4, 0x5e39}, + {0x85f5, 0x5cc0}, + {0x85f6, 0x4bad}, + {0x85f7, 0xa1d5}, + {0x85f8, 0xc7b4}, + {0x85f9, 0x4252}, + {0x85fa, 0x9bb1}, + {0x85fb, 0xa862}, + {0x85fc, 0x63b4}, + {0x85fd, 0x8b05}, + {0x85fe, 0x5325}, + {0x8640, 0x525d}, + {0x8641, 0xa739}, + {0x8642, 0xc372}, + {0x8643, 0x983d}, + {0x8644, 0xaa68}, + {0x8645, 0x708a}, + {0x8646, 0x6129}, + {0x8647, 0x9d8a}, + {0x8648, 0x525e}, + {0x8649, 0xad98}, + {0x864a, 0x5c5c}, + {0x864b, 0x73bd}, + {0x864c, 0x9fc6}, + {0x864d, 0xac52}, + {0x864e, 0xb894}, + {0x864f, 0x4f8d}, + {0x8650, 0x83c1}, + {0x8651, 0xac0c}, + {0x8652, 0x895c}, + {0x8653, 0x5df5}, + {0x8654, 0xbae1}, + {0x8655, 0x79f6}, + {0x8656, 0x8951}, + {0x8657, 0x7d85}, + {0x8658, 0xc6ed}, + {0x8659, 0x5e4e}, + {0x865a, 0xa902}, + {0x865b, 0x7395}, + {0x865c, 0x8926}, + {0x865d, 0x771e}, + {0x865e, 0x3c98}, + {0x865f, 0x8060}, + {0x8660, 0x7c66}, + {0x8661, 0x9acd}, + {0x8662, 0x5641}, + {0x8663, 0x5cf5}, + {0x8664, 0x98f2}, + {0x8665, 0xb8a0}, + {0x8666, 0x5a1c}, + {0x8667, 0x5a1d}, + {0x8668, 0x3d10}, + {0x8669, 0x5d14}, + {0x866a, 0xb48d}, + {0x866b, 0x6649}, + {0x866c, 0xa046}, + {0x866d, 0xa865}, + {0x866e, 0xa232}, + {0x866f, 0x749c}, + {0x8670, 0x8ef2}, + {0x8671, 0x4596}, + {0x8672, 0xbd31}, + {0x8673, 0xaf60}, + {0x8674, 0x5036}, + {0x8675, 0x8ac9}, + {0x8676, 0x4ded}, + {0x8677, 0x8df0}, + {0x8678, 0x7e16}, + {0x8679, 0x59a1}, + {0x867a, 0x9dee}, + {0x867b, 0x6ff9}, + {0x867c, 0x770d}, + {0x867d, 0x7388}, + {0x867e, 0x93dd}, + {0x8680, 0xc64a}, + {0x8681, 0xa4aa}, + {0x8682, 0xb605}, + {0x8683, 0x8b0e}, + {0x8684, 0x52ee}, + {0x8685, 0x8cb1}, + {0x8686, 0x3bd9}, + {0x8687, 0xbd5a}, + {0x8688, 0x4ec9}, + {0x8689, 0xb8c1}, + {0x868a, 0x9ecd}, + {0x868b, 0x7298}, + {0x868c, 0xa615}, + {0x868d, 0x3b40}, + {0x868e, 0x8502}, + {0x868f, 0xc568}, + {0x8690, 0x4e54}, + {0x8691, 0x5efe}, + {0x8692, 0xa9ee}, + {0x8693, 0xa95d}, + {0x8694, 0xa10d}, + {0x8695, 0xa562}, + {0x8696, 0xa471}, + {0x8697, 0x4f54}, + {0x8698, 0x5a5e}, + {0x8699, 0x8acd}, + {0x869a, 0x8ace}, + {0x869b, 0x4cad}, + {0x869c, 0xa1bd}, + {0x869d, 0xc626}, + {0x869e, 0x3f10}, + {0x869f, 0x4b3a}, + {0x86a0, 0x5e58}, + {0x86a1, 0xaf61}, + {0x86a2, 0x8ad0}, + {0x86a3, 0xbfac}, + {0x86a4, 0x7710}, + {0x86a5, 0xa87d}, + {0x86a6, 0xb692}, + {0x86a7, 0x5ad8}, + {0x86a8, 0xbd48}, + {0x86a9, 0x5c64}, + {0x86aa, 0x7bba}, + {0x86ab, 0x8345}, + {0x86ac, 0x4dd0}, + {0x86ad, 0x900a}, + {0x86ae, 0x9c65}, + {0x86af, 0x5955}, + {0x86b0, 0x9d00}, + {0x86b1, 0x3bd2}, + {0x86b2, 0x4cb5}, + {0x86b3, 0xba01}, + {0x86b4, 0xbfb5}, + {0x86b5, 0xc33c}, + {0x86b6, 0x441e}, + {0x86b7, 0xa1ec}, + {0x86b8, 0xb9ec}, + {0x86b9, 0xbcb6}, + {0x86ba, 0xb1b9}, + {0x86bb, 0x801a}, + {0x86bc, 0x601e}, + {0x86bd, 0xbc12}, + {0x86be, 0x61a6}, + {0x86bf, 0x61a8}, + {0x86c0, 0x642c}, + {0x86c1, 0xc2fa}, + {0x86c2, 0xa312}, + {0x86c3, 0x940a}, + {0x86c4, 0xad58}, + {0x86c5, 0x61e6}, + {0x86c6, 0x51a9}, + {0x86c7, 0x8432}, + {0x86c8, 0x7725}, + {0x86c9, 0xba02}, + {0x86ca, 0x936a}, + {0x86cb, 0x46e4}, + {0x86cc, 0x8cf1}, + {0x86cd, 0xb0bc}, + {0x86ce, 0x4c66}, + {0x86cf, 0x86d6}, + {0x86d0, 0x42c2}, + {0x86d1, 0xb76e}, + {0x86d2, 0xa2cc}, + {0x86d3, 0xb6f2}, + {0x86d4, 0x8746}, + {0x86d5, 0x3e29}, + {0x86d6, 0x5956}, + {0x86d7, 0xbd36}, + {0x86d8, 0x63c8}, + {0x86d9, 0x9e19}, + {0x86da, 0xb1ea}, + {0x86db, 0x5ea9}, + {0x86dc, 0x8c71}, + {0x86dd, 0x93a1}, + {0x86de, 0xb77d}, + {0x86df, 0x5f7e}, + {0x86e0, 0xaac6}, + {0x86e1, 0x7ce2}, + {0x86e2, 0x43c5}, + {0x86e3, 0x5ce4}, + {0x86e4, 0x925d}, + {0x86e5, 0xa1c0}, + {0x86e6, 0x643c}, + {0x86e7, 0x864e}, + {0x86e8, 0xa508}, + {0x86e9, 0x8c3a}, + {0x86ea, 0xc5ca}, + {0x86eb, 0x73da}, + {0x86ec, 0xa1e0}, + {0x86ed, 0x663d}, + {0x86ee, 0x9b90}, + {0x86ef, 0x4a50}, + {0x86f0, 0x931e}, + {0x86f1, 0x5958}, + {0x86f2, 0x8252}, + {0x86f3, 0x8c6a}, + {0x86f4, 0x3f74}, + {0x86f5, 0x3c2c}, + {0x86f6, 0x765d}, + {0x86f7, 0xc732}, + {0x86f8, 0xbfed}, + {0x86f9, 0x8178}, + {0x86fa, 0x9cc1}, + {0x86fb, 0x6915}, + {0x86fc, 0x47bc}, + {0x86fd, 0x6882}, + {0x86fe, 0x6ec5}, + {0x8740, 0x9cd9}, + {0x8741, 0x9456}, + {0x8742, 0x3b49}, + {0x8743, 0xaa7c}, + {0x8744, 0x7a10}, + {0x8745, 0xaa0a}, + {0x8746, 0x5ff9}, + {0x8747, 0x62f8}, + {0x8748, 0x5c71}, + {0x8749, 0x85a5}, + {0x874a, 0xa829}, + {0x874b, 0xbd69}, + {0x874c, 0x451a}, + {0x874d, 0x8909}, + {0x874e, 0x4d88}, + {0x874f, 0x7cd5}, + {0x8750, 0x6032}, + {0x8751, 0x573e}, + {0x8752, 0x9ce8}, + {0x8753, 0xb2a0}, + {0x8754, 0x9314}, + {0x8755, 0x6916}, + {0x8756, 0xaa7d}, + {0x8757, 0x60d2}, + {0x8758, 0x7cf4}, + {0x8759, 0x90c2}, + {0x875a, 0x73a5}, + {0x875b, 0xaa81}, + {0x875c, 0x644e}, + {0x875d, 0x7195}, + {0x875e, 0xaa15}, + {0x875f, 0x5dd2}, + {0x8760, 0x7c99}, + {0x8761, 0x8cf9}, + {0x8762, 0x48d8}, + {0x8763, 0x9c70}, + {0x8764, 0x4cc5}, + {0x8765, 0xaf19}, + {0x8766, 0x5244}, + {0x8767, 0xc771}, + {0x8768, 0x5374}, + {0x8769, 0x46f1}, + {0x876a, 0x627e}, + {0x876b, 0x42f1}, + {0x876c, 0x493d}, + {0x876d, 0x4ad8}, + {0x876e, 0x4cc1}, + {0x876f, 0xba44}, + {0x8770, 0x7215}, + {0x8771, 0xa671}, + {0x8772, 0x8b2a}, + {0x8773, 0x5dce}, + {0x8774, 0x7676}, + {0x8775, 0xace9}, + {0x8776, 0x6280}, + {0x8777, 0xb622}, + {0x8778, 0xaee8}, + {0x8779, 0x8441}, + {0x877a, 0x9946}, + {0x877b, 0xb078}, + {0x877c, 0xb6b8}, + {0x877d, 0x4bbd}, + {0x877e, 0xbe80}, + {0x8780, 0xc391}, + {0x8781, 0x84e2}, + {0x8782, 0x630c}, + {0x8783, 0xab42}, + {0x8784, 0x6921}, + {0x8785, 0xbb56}, + {0x8786, 0x3b5c}, + {0x8787, 0xb791}, + {0x8788, 0x70b6}, + {0x8789, 0xb9b5}, + {0x878a, 0x86c9}, + {0x878b, 0x4d66}, + {0x878c, 0xaba2}, + {0x878d, 0x5161}, + {0x878e, 0x4ce6}, + {0x878f, 0xaba4}, + {0x8790, 0x87e0}, + {0x8791, 0xb5d9}, + {0x8792, 0xc73d}, + {0x8793, 0x8494}, + {0x8794, 0x4e0c}, + {0x8795, 0x7330}, + {0x8796, 0x9bfa}, + {0x8797, 0x63d5}, + {0x8798, 0xa7f5}, + {0x8799, 0xb2f2}, + {0x879a, 0x519d}, + {0x879b, 0x87fe}, + {0x879c, 0xc349}, + {0x879d, 0x65d2}, + {0x879e, 0x6aba}, + {0x879f, 0x4526}, + {0x87a0, 0xae9e}, + {0x87a1, 0x7e19}, + {0x87a2, 0x9e79}, + {0x87a3, 0x7a4e}, + {0x87a4, 0x6325}, + {0x87a5, 0x41f6}, + {0x87a6, 0xb802}, + {0x87a7, 0x8454}, + {0x87a8, 0xb629}, + {0x87a9, 0x60a5}, + {0x87aa, 0x7e9a}, + {0x87ab, 0x5f1a}, + {0x87ac, 0xbfce}, + {0x87ad, 0x74f8}, + {0x87ae, 0x7941}, + {0x87af, 0x5cea}, + {0x87b0, 0x82bd}, + {0x87b1, 0x8120}, + {0x87b2, 0xb0f4}, + {0x87b3, 0x75fe}, + {0x87b4, 0x7a70}, + {0x87b5, 0x79b1}, + {0x87b6, 0x8139}, + {0x87b7, 0x4cd8}, + {0x87b8, 0x4635}, + {0x87b9, 0x8891}, + {0x87ba, 0x87e4}, + {0x87bb, 0xa9a6}, + {0x87bc, 0x7e1c}, + {0x87bd, 0xa77a}, + {0x87be, 0x51d6}, + {0x87bf, 0x707a}, + {0x87c0, 0xb01c}, + {0x87c1, 0x4481}, + {0x87c2, 0xb6cc}, + {0x87c3, 0x4f91}, + {0x87c4, 0x723e}, + {0x87c5, 0x9c09}, + {0x87c6, 0xaa3a}, + {0x87c7, 0x49e6}, + {0x87c8, 0x6139}, + {0x87c9, 0x63f2}, + {0x87ca, 0xc4be}, + {0x87cb, 0x8462}, + {0x87cc, 0xaa3c}, + {0x87cd, 0x4289}, + {0x87ce, 0x750c}, + {0x87cf, 0x44c6}, + {0x87d0, 0x442d}, + {0x87d1, 0x762a}, + {0x87d2, 0xb582}, + {0x87d3, 0x7bb6}, + {0x87d4, 0xbce1}, + {0x87d5, 0x9a4a}, + {0x87d6, 0x5f01}, + {0x87d7, 0xbdac}, + {0x87d8, 0x6716}, + {0x87d9, 0xbc7d}, + {0x87da, 0xc41c}, + {0x87db, 0x72f4}, + {0x87dc, 0x846e}, + {0x87dd, 0x90b2}, + {0x87de, 0x7988}, + {0x87df, 0x6290}, + {0x87e0, 0xb598}, + {0x87e1, 0x847a}, + {0x87e2, 0xa0b5}, + {0x87e3, 0x6f26}, + {0x87e4, 0xba99}, + {0x87e5, 0x6b78}, + {0x87e6, 0x8810}, + {0x87e7, 0xbbd6}, + {0x87e8, 0x4a55}, + {0x87e9, 0x6292}, + {0x87ea, 0x5211}, + {0x87eb, 0x5c7d}, + {0x87ec, 0x9fb1}, + {0x87ed, 0xa05c}, + {0x87ee, 0x5c7e}, + {0x87ef, 0x909c}, + {0x87f0, 0x9192}, + {0x87f1, 0x5c80}, + {0x87f2, 0x9c12}, + {0x87f3, 0x5c82}, + {0x87f4, 0xb5fa}, + {0x87f5, 0x6379}, + {0x87f6, 0x5d15}, + {0x87f7, 0x7b91}, + {0x87f8, 0x5c84}, + {0x87f9, 0x4906}, + {0x87fa, 0xa314}, + {0x87fb, 0xbaec}, + {0x87fc, 0x8ff1}, + {0x87fd, 0x7056}, + {0x87fe, 0x89ac}, + {0x8840, 0xbafc}, + {0x8841, 0xbafd}, + {0x8842, 0xaf90}, + {0x8843, 0xa0ce}, + {0x8844, 0xa080}, + {0x8845, 0xa081}, + {0x8846, 0xa0ba}, + {0x8847, 0x7c92}, + {0x8848, 0x6300}, + {0x8849, 0xb52e}, + {0x884a, 0x7b5d}, + {0x884b, 0x7b71}, + {0x884c, 0xaf6a}, + {0x884d, 0xa09a}, + {0x884e, 0x9f96}, + {0x884f, 0x897a}, + {0x8850, 0x7ac0}, + {0x8851, 0x70a0}, + {0x8852, 0x6c10}, + {0x8853, 0xb9c6}, + {0x8854, 0x8b69}, + {0x8855, 0x8b6a}, + {0x8856, 0xc550}, + {0x8857, 0x4d05}, + {0x8858, 0x8b4d}, + {0x8859, 0xa7e6}, + {0x885a, 0x942d}, + {0x885b, 0x841d}, + {0x885c, 0x814e}, + {0x885d, 0x6640}, + {0x885e, 0xc1b8}, + {0x885f, 0xae8c}, + {0x8860, 0xb441}, + {0x8861, 0x8dd5}, + {0x8862, 0x54d8}, + {0x8863, 0x6fde}, + {0x8864, 0xa131}, + {0x8865, 0x5511}, + {0x8866, 0x3f22}, + {0x8867, 0x6b09}, + {0x8868, 0x4e40}, + {0x8869, 0x6aca}, + {0x886a, 0x6559}, + {0x886b, 0x470a}, + {0x886c, 0x6acc}, + {0x886d, 0x860d}, + {0x886e, 0x9cf8}, + {0x886f, 0x8f3c}, + {0x8870, 0xc174}, + {0x8871, 0x5add}, + {0x8872, 0x9c20}, + {0x8873, 0x6b6a}, + {0x8874, 0xb176}, + {0x8875, 0x55ad}, + {0x8876, 0x7ac5}, + {0x8877, 0x8ea2}, + {0x8878, 0x59e8}, + {0x8879, 0xae42}, + {0x887a, 0x3cb0}, + {0x887b, 0x7866}, + {0x887c, 0xc42c}, + {0x887d, 0x56d6}, + {0x887e, 0x5fda}, + {0x8880, 0xc1f4}, + {0x8881, 0x3c1a}, + {0x8882, 0x4c14}, + {0x8883, 0x8665}, + {0x8884, 0x8086}, + {0x8885, 0x6569}, + {0x8886, 0x5e9e}, + {0x8887, 0x7c64}, + {0x8888, 0x49fc}, + {0x8889, 0x4746}, + {0x888a, 0xb5a1}, + {0x888b, 0x5fc0}, + {0x888c, 0x5114}, + {0x888d, 0xbf65}, + {0x888e, 0x562a}, + {0x888f, 0x5b6a}, + {0x8890, 0xb1cc}, + {0x8891, 0x51e4}, + {0x8892, 0x5bde}, + {0x8893, 0x43d8}, + {0x8894, 0xb146}, + {0x8895, 0xaaa5}, + {0x8896, 0x9790}, + {0x8897, 0x414e}, + {0x8898, 0x5f36}, + {0x8899, 0x4bcd}, + {0x889a, 0x6e8e}, + {0x889b, 0x4d09}, + {0x889c, 0x5daa}, + {0x889d, 0x3bd6}, + {0x889e, 0xabda}, + {0x889f, 0xa904}, + {0x88a0, 0x3d69}, + {0x88a1, 0x55b1}, + {0x88a2, 0x3cd4}, + {0x88a3, 0xb48e}, + {0x88a4, 0xb669}, + {0x88a5, 0x5d56}, + {0x88a6, 0xad42}, + {0x88a7, 0x495c}, + {0x88a8, 0x8da5}, + {0x88a9, 0x3eba}, + {0x88aa, 0x5419}, + {0x88ab, 0x9068}, + {0x88ac, 0xb7c1}, + {0x88ad, 0x6e58}, + {0x88ae, 0x6619}, + {0x88af, 0x4e4d}, + {0x88b0, 0x7380}, + {0x88b1, 0x6d4a}, + {0x88b2, 0x6a2e}, + {0x88b3, 0xbfa6}, + {0x88b4, 0x7799}, + {0x88b5, 0x60b6}, + {0x88b6, 0x425a}, + {0x88b7, 0x6b6d}, + {0x88b8, 0xb29c}, + {0x88b9, 0x4dd1}, + {0x88ba, 0xaf82}, + {0x88bb, 0x900c}, + {0x88bc, 0x9b02}, + {0x88bd, 0x8e06}, + {0x88be, 0xa238}, + {0x88bf, 0x6ce8}, + {0x88c0, 0x7bb0}, + {0x88c1, 0xc0be}, + {0x88c2, 0x7001}, + {0x88c3, 0x47e4}, + {0x88c4, 0x4fe6}, + {0x88c5, 0x9cce}, + {0x88c6, 0x42a4}, + {0x88c7, 0x48c0}, + {0x88c8, 0x3ebc}, + {0x88c9, 0x6ee1}, + {0x88ca, 0x51c1}, + {0x88cb, 0xb4a5}, + {0x88cc, 0xc180}, + {0x88cd, 0xc529}, + {0x88ce, 0x8a40}, + {0x88cf, 0x6ce9}, + {0x88d0, 0x8358}, + {0x88d1, 0x6fb1}, + {0x88d2, 0x71b6}, + {0x88d3, 0x83a4}, + {0x88d4, 0x66ad}, + {0x88d5, 0x580e}, + {0x88d6, 0xb9ee}, + {0x88d7, 0x5270}, + {0x88d8, 0x5a9c}, + {0x88d9, 0x7496}, + {0x88da, 0x540c}, + {0x88db, 0xaf4c}, + {0x88dc, 0x71b8}, + {0x88dd, 0x3bf4}, + {0x88de, 0x9596}, + {0x88df, 0x8301}, + {0x88e0, 0xa04c}, + {0x88e1, 0x469c}, + {0x88e2, 0x6155}, + {0x88e3, 0x3f64}, + {0x88e4, 0x76ce}, + {0x88e5, 0x5c65}, + {0x88e6, 0xc4ac}, + {0x88e7, 0x3dd5}, + {0x88e8, 0xb916}, + {0x88e9, 0x7dbc}, + {0x88ea, 0x6942}, + {0x88eb, 0x926c}, + {0x88ec, 0xb2c1}, + {0x88ed, 0x594e}, + {0x88ee, 0xc655}, + {0x88ef, 0xb918}, + {0x88f0, 0x61e8}, + {0x88f1, 0x5282}, + {0x88f2, 0xb1e0}, + {0x88f3, 0x3dfd}, + {0x88f4, 0x4a02}, + {0x88f5, 0x7e38}, + {0x88f6, 0x4535}, + {0x88f7, 0xa172}, + {0x88f8, 0x8956}, + {0x88f9, 0x5581}, + {0x88fa, 0xc315}, + {0x88fb, 0x6a01}, + {0x88fc, 0x6a35}, + {0x88fd, 0x5f00}, + {0x88fe, 0x5818}, + {0x8940, 0x4979}, + {0x8941, 0x6ee4}, + {0x8942, 0x88d0}, + {0x8943, 0x7438}, + {0x8944, 0xac38}, + {0x8945, 0x61d6}, + {0x8946, 0x50f8}, + {0x8947, 0xa200}, + {0x8948, 0xada1}, + {0x8949, 0xa74c}, + {0x894a, 0x64e1}, + {0x894b, 0x70ad}, + {0x894c, 0xb700}, + {0x894d, 0xb7d4}, + {0x894e, 0x6eae}, + {0x894f, 0x9a78}, + {0x8950, 0x96ca}, + {0x8951, 0x7fc1}, + {0x8952, 0xa490}, + {0x8953, 0x46aa}, + {0x8954, 0xa076}, + {0x8955, 0x9076}, + {0x8956, 0xc2fd}, + {0x8957, 0x75be}, + {0x8958, 0x8709}, + {0x8959, 0x3d94}, + {0x895a, 0xbd05}, + {0x895b, 0x5118}, + {0x895c, 0x9eae}, + {0x895d, 0xa568}, + {0x895e, 0xc0fd}, + {0x895f, 0xae92}, + {0x8960, 0xc095}, + {0x8961, 0x3b76}, + {0x8962, 0x597d}, + {0x8963, 0xb004}, + {0x8964, 0x6ee8}, + {0x8965, 0xa40e}, + {0x8966, 0xab38}, + {0x8967, 0x7976}, + {0x8968, 0x5cd5}, + {0x8969, 0x7376}, + {0x896a, 0x451c}, + {0x896b, 0x870a}, + {0x896c, 0x3ecd}, + {0x896d, 0x460a}, + {0x896e, 0x7b00}, + {0x896f, 0x7aa4}, + {0x8970, 0x8584}, + {0x8971, 0x8c42}, + {0x8972, 0x7e4c}, + {0x8973, 0x8179}, + {0x8974, 0xa0bc}, + {0x8975, 0x98b2}, + {0x8976, 0x7a31}, + {0x8977, 0x4069}, + {0x8978, 0x4381}, + {0x8979, 0xc265}, + {0x897a, 0xbf36}, + {0x897b, 0x6ef8}, + {0x897c, 0x4ed9}, + {0x897d, 0x461d}, + {0x897e, 0xc18c}, + {0x8980, 0x65b1}, + {0x8981, 0x5c6d}, + {0x8982, 0x8ca9}, + {0x8983, 0x6aa2}, + {0x8984, 0x4e78}, + {0x8985, 0x4b15}, + {0x8986, 0xb0d0}, + {0x8987, 0x9bc0}, + {0x8988, 0xbdb0}, + {0x8989, 0x8bf0}, + {0x898a, 0xa3d1}, + {0x898b, 0xc50d}, + {0x898c, 0x8ccc}, + {0x898d, 0x949c}, + {0x898e, 0x949d}, + {0x898f, 0x3cc6}, + {0x8990, 0x898d}, + {0x8991, 0x70b4}, + {0x8992, 0x5002}, + {0x8993, 0x5375}, + {0x8994, 0x9086}, + {0x8995, 0x515c}, + {0x8996, 0x4b5e}, + {0x8997, 0x4e79}, + {0x8998, 0x9656}, + {0x8999, 0x51f9}, + {0x899a, 0x51fd}, + {0x899b, 0x9c8d}, + {0x899c, 0x4db8}, + {0x899d, 0x81d1}, + {0x899e, 0x54f1}, + {0x899f, 0x61fd}, + {0x89a0, 0x9c8e}, + {0x89a1, 0x4bbe}, + {0x89a2, 0xb2c9}, + {0x89a3, 0xc466}, + {0x89a4, 0x67c4}, + {0x89a5, 0x3c74}, + {0x89a6, 0x8c96}, + {0x89a7, 0x8cd1}, + {0x89a8, 0x6fd4}, + {0x89a9, 0xb530}, + {0x89aa, 0x87bc}, + {0x89ab, 0x4edc}, + {0x89ac, 0x680c}, + {0x89ad, 0xb2a2}, + {0x89ae, 0x41ec}, + {0x89af, 0x9c96}, + {0x89b0, 0x7312}, + {0x89b1, 0x6d0e}, + {0x89b2, 0x612a}, + {0x89b3, 0x4d1d}, + {0x89b4, 0x90f6}, + {0x89b5, 0x8c51}, + {0x89b6, 0xaea0}, + {0x89b7, 0x7331}, + {0x89b8, 0xa715}, + {0x89b9, 0x3b88}, + {0x89ba, 0xaf39}, + {0x89bb, 0x4d50}, + {0x89bc, 0x9270}, + {0x89bd, 0x6abc}, + {0x89be, 0x7449}, + {0x89bf, 0x7119}, + {0x89c0, 0x7a71}, + {0x89c1, 0xb01d}, + {0x89c2, 0x9ca6}, + {0x89c3, 0xa3a8}, + {0x89c4, 0x612c}, + {0x89c5, 0x79ea}, + {0x89c6, 0x79ec}, + {0x89c7, 0x92bd}, + {0x89c8, 0x7600}, + {0x89c9, 0x7819}, + {0x89ca, 0x4482}, + {0x89cb, 0xaeae}, + {0x89cc, 0xb029}, + {0x89cd, 0x7425}, + {0x89ce, 0x3ce6}, + {0x89cf, 0xa20c}, + {0x89d0, 0x9329}, + {0x89d1, 0xc4da}, + {0x89d2, 0xb31a}, + {0x89d3, 0x7cfc}, + {0x89d4, 0xc435}, + {0x89d5, 0xc4de}, + {0x89d6, 0x6019}, + {0x89d7, 0x71ea}, + {0x89d8, 0x6020}, + {0x89d9, 0xad59}, + {0x89da, 0x71f2}, + {0x89db, 0x97a5}, + {0x89dc, 0x7da1}, + {0x89dd, 0x515d}, + {0x89de, 0x97a6}, + {0x89df, 0xb345}, + {0x89e0, 0x5a45}, + {0x89e1, 0x6841}, + {0x89e2, 0x557c}, + {0x89e3, 0xbe41}, + {0x89e4, 0x4031}, + {0x89e5, 0x9ac5}, + {0x89e6, 0x909a}, + {0x89e7, 0x7868}, + {0x89e8, 0x4b9a}, + {0x89e9, 0xac62}, + {0x89ea, 0xab65}, + {0x89eb, 0x82ec}, + {0x89ec, 0xa7f9}, + {0x89ed, 0xbb35}, + {0x89ee, 0x7dce}, + {0x89ef, 0x5190}, + {0x89f0, 0x8e1d}, + {0x89f1, 0x8579}, + {0x89f2, 0x59f5}, + {0x89f3, 0x8b14}, + {0x89f4, 0x7ed6}, + {0x89f5, 0x7f2e}, + {0x89f6, 0x461e}, + {0x89f7, 0xbd8d}, + {0x89f8, 0x5af2}, + {0x89f9, 0x5855}, + {0x89fa, 0x9d58}, + {0x89fb, 0x9c44}, + {0x89fc, 0xb03a}, + {0x89fd, 0x3ef5}, + {0x89fe, 0x63fd}, + {0x8a40, 0xbc06}, + {0x8a41, 0x6606}, + {0x8a42, 0x3c8e}, + {0x8a43, 0x52c4}, + {0x8a44, 0x4dc6}, + {0x8a45, 0x8679}, + {0x8a46, 0x6d58}, + {0x8a47, 0xaaae}, + {0x8a48, 0x4ea9}, + {0x8a49, 0xb178}, + {0x8a4a, 0x6192}, + {0x8a4b, 0x6e95}, + {0x8a4c, 0xbe2c}, + {0x8a4d, 0x3e8d}, + {0x8a4e, 0x6231}, + {0x8a4f, 0x546d}, + {0x8a50, 0x4ef8}, + {0x8a51, 0xaf0e}, + {0x8a52, 0x3ea5}, + {0x8a53, 0x3c65}, + {0x8a54, 0xa48e}, + {0x8a55, 0x8932}, + {0x8a56, 0xa5b8}, + {0x8a57, 0x3c69}, + {0x8a58, 0x682c}, + {0x8a59, 0x766a}, + {0x8a5a, 0x51ae}, + {0x8a5b, 0xbbc6}, + {0x8a5c, 0x6830}, + {0x8a5d, 0x976d}, + {0x8a5e, 0x5520}, + {0x8a5f, 0x63d6}, + {0x8a60, 0x3fcd}, + {0x8a61, 0x7b5e}, + {0x8a62, 0x45a5}, + {0x8a63, 0x4fa6}, + {0x8a64, 0x8b6c}, + {0x8a65, 0x6bc9}, + {0x8a66, 0x8524}, + {0x8a67, 0x43fa}, + {0x8a68, 0xa802}, + {0x8a69, 0x53d6}, + {0x8a6a, 0x652d}, + {0x8a6b, 0x5f21}, + {0x8a6c, 0x4c54}, + {0x8a6d, 0x55c4}, + {0x8a6e, 0x6b26}, + {0x8a6f, 0x5cb9}, + {0x8a70, 0xa46c}, + {0x8a71, 0xc2ca}, + {0x8a72, 0x85b1}, + {0x8a73, 0x5da2}, + {0x8a74, 0xc309}, + {0x8a75, 0xbbd8}, + {0x8a76, 0x55b6}, + {0x8a77, 0x46d1}, + {0x8a78, 0x6d95}, + {0x8a79, 0xc4c5}, + {0x8a7a, 0xb0a1}, + {0x8a7b, 0x8235}, + {0x8a7c, 0xab86}, + {0x8a7d, 0x54da}, + {0x8a7e, 0x5532}, + {0x8a80, 0xa264}, + {0x8a81, 0x50d6}, + {0x8a82, 0x3cb1}, + {0x8a83, 0xc556}, + {0x8a84, 0xbf42}, + {0x8a85, 0x826d}, + {0x8a86, 0xbb3a}, + {0x8a87, 0xa02c}, + {0x8a88, 0xa85e}, + {0x8a89, 0xb458}, + {0x8a8a, 0x5205}, + {0x8a8b, 0x8151}, + {0x8a8c, 0x3f2d}, + {0x8a8d, 0x957e}, + {0x8a8e, 0x5206}, + {0x8a8f, 0x5e3c}, + {0x8a90, 0xad0d}, + {0x8a91, 0x5341}, + {0x8a92, 0xc0b8}, + {0x8a93, 0x8088}, + {0x8a94, 0x3d55}, + {0x8a95, 0x55c6}, + {0x8a96, 0x7869}, + {0x8a97, 0xc611}, + {0x8a98, 0x90d6}, + {0x8a99, 0x9438}, + {0x8a9a, 0xb11e}, + {0x8a9b, 0x7d15}, + {0x8a9c, 0xc5b4}, + {0x8a9d, 0x6cc6}, + {0x8a9e, 0x9164}, + {0x8a9f, 0x5014}, + {0x8aa0, 0x64b9}, + {0x8aa1, 0x5754}, + {0x8aa2, 0xa9b2}, + {0x8aa3, 0x60c8}, + {0x8aa4, 0x6d2d}, + {0x8aa5, 0x59ee}, + {0x8aa6, 0x66a5}, + {0x8aa7, 0x66a6}, + {0x8aa8, 0x83e9}, + {0x8aa9, 0xc176}, + {0x8aaa, 0xc051}, + {0x8aab, 0xa8fc}, + {0x8aac, 0x5ee5}, + {0x8aad, 0x5b6c}, + {0x8aae, 0x6e31}, + {0x8aaf, 0x707d}, + {0x8ab0, 0xb0a5}, + {0x8ab1, 0x810c}, + {0x8ab2, 0x77a1}, + {0x8ab3, 0x86b2}, + {0x8ab4, 0x5261}, + {0x8ab5, 0xb896}, + {0x8ab6, 0xafe5}, + {0x8ab7, 0x9586}, + {0x8ab8, 0x96b4}, + {0x8ab9, 0x5be0}, + {0x8aba, 0x9000}, + {0x8abb, 0x99b8}, + {0x8abc, 0x5f38}, + {0x8abd, 0xa905}, + {0x8abe, 0x9524}, + {0x8abf, 0x4682}, + {0x8ac0, 0xab16}, + {0x8ac1, 0x7d86}, + {0x8ac2, 0x55d9}, + {0x8ac3, 0x81e4}, + {0x8ac4, 0x6fac}, + {0x8ac5, 0x49d0}, + {0x8ac6, 0x49d1}, + {0x8ac7, 0x9f99}, + {0x8ac8, 0xac12}, + {0x8ac9, 0x8295}, + {0x8aca, 0xb8fc}, + {0x8acb, 0x88f8}, + {0x8acc, 0x8322}, + {0x8acd, 0xc20e}, + {0x8ace, 0x5d16}, + {0x8acf, 0xc4ca}, + {0x8ad0, 0x88c4}, + {0x8ad1, 0xa0fd}, + {0x8ad2, 0xa906}, + {0x8ad3, 0xa526}, + {0x8ad4, 0xafe6}, + {0x8ad5, 0xa564}, + {0x8ad6, 0xa604}, + {0x8ad7, 0xafed}, + {0x8ad8, 0xb8fd}, + {0x8ad9, 0x9986}, + {0x8ada, 0x7585}, + {0x8adb, 0x6c30}, + {0x8adc, 0xc4fd}, + {0x8add, 0x89d9}, + {0x8ade, 0xa872}, + {0x8adf, 0xc569}, + {0x8ae0, 0x4fe8}, + {0x8ae1, 0x7ad5}, + {0x8ae2, 0x3b55}, + {0x8ae3, 0x5208}, + {0x8ae4, 0x7a01}, + {0x8ae5, 0x7fea}, + {0x8ae6, 0x4a91}, + {0x8ae7, 0x8954}, + {0x8ae8, 0x6c31}, + {0x8ae9, 0x42a5}, + {0x8aea, 0x788c}, + {0x8aeb, 0xa9f0}, + {0x8aec, 0x97fc}, + {0x8aed, 0x8ad1}, + {0x8aee, 0x6264}, + {0x8aef, 0x56f4}, + {0x8af0, 0xa4c0}, + {0x8af1, 0xa4c1}, + {0x8af2, 0x9c81}, + {0x8af3, 0x5440}, + {0x8af4, 0x5441}, + {0x8af5, 0x9e8c}, + {0x8af6, 0x8359}, + {0x8af7, 0x900d}, + {0x8af8, 0x6b2e}, + {0x8af9, 0x6adc}, + {0x8afa, 0x8b8c}, + {0x8afb, 0x4eca}, + {0x8afc, 0xac31}, + {0x8afd, 0x608e}, + {0x8afe, 0xa1fd}, + {0x8b40, 0x7279}, + {0x8b41, 0xb5bd}, + {0x8b42, 0xc332}, + {0x8b43, 0x830c}, + {0x8b44, 0x56f5}, + {0x8b45, 0x7b92}, + {0x8b46, 0x3bf5}, + {0x8b47, 0x71b9}, + {0x8b48, 0xb606}, + {0x8b49, 0xaf84}, + {0x8b4a, 0x6c32}, + {0x8b4b, 0x759c}, + {0x8b4c, 0x4eae}, + {0x8b4d, 0xa874}, + {0x8b4e, 0x60b8}, + {0x8b4f, 0x60f9}, + {0x8b50, 0x4d0e}, + {0x8b51, 0xb236}, + {0x8b52, 0x82b5}, + {0x8b53, 0x92d4}, + {0x8b54, 0x6672}, + {0x8b55, 0xa019}, + {0x8b56, 0xba05}, + {0x8b57, 0xa2cd}, + {0x8b58, 0x4e64}, + {0x8b59, 0x91f8}, + {0x8b5a, 0x7e6a}, + {0x8b5b, 0x4c68}, + {0x8b5c, 0x927e}, + {0x8b5d, 0x8d8c}, + {0x8b5e, 0x6266}, + {0x8b5f, 0xa4d2}, + {0x8b60, 0x8be9}, + {0x8b61, 0x497a}, + {0x8b62, 0x803a}, + {0x8b63, 0x56fd}, + {0x8b64, 0x69d9}, + {0x8b65, 0x50ee}, + {0x8b66, 0xb3a6}, + {0x8b67, 0xc316}, + {0x8b68, 0x61e9}, + {0x8b69, 0x7fed}, + {0x8b6a, 0x3bb4}, + {0x8b6b, 0xb695}, + {0x8b6c, 0xada2}, + {0x8b6d, 0x6944}, + {0x8b6e, 0xa2ce}, + {0x8b6f, 0xc0d9}, + {0x8b70, 0x8eaa}, + {0x8b71, 0x9e09}, + {0x8b72, 0xab29}, + {0x8b73, 0xa196}, + {0x8b74, 0x76d0}, + {0x8b75, 0x7dfe}, + {0x8b76, 0x90dd}, + {0x8b77, 0x9929}, + {0x8b78, 0x8814}, + {0x8b79, 0xa3ca}, + {0x8b7a, 0xa1be}, + {0x8b7b, 0x4acd}, + {0x8b7c, 0x6021}, + {0x8b7d, 0x6990}, + {0x8b7e, 0x3dd6}, + {0x8b80, 0xacd5}, + {0x8b81, 0xa01a}, + {0x8b82, 0x5bac}, + {0x8b83, 0xc6dc}, + {0x8b84, 0xb1ec}, + {0x8b85, 0xbb00}, + {0x8b86, 0x91ae}, + {0x8b87, 0x925e}, + {0x8b88, 0x791a}, + {0x8b89, 0x7e6e}, + {0x8b8a, 0x85f6}, + {0x8b8b, 0x3c59}, + {0x8b8c, 0x7c9e}, + {0x8b8d, 0x7186}, + {0x8b8e, 0x8dba}, + {0x8b8f, 0xc06d}, + {0x8b90, 0xbb01}, + {0x8b91, 0x6945}, + {0x8b92, 0x91b6}, + {0x8b93, 0x80f8}, + {0x8b94, 0xb6a2}, + {0x8b95, 0x9a7a}, + {0x8b96, 0x8400}, + {0x8b97, 0x9d6d}, + {0x8b98, 0x8641}, + {0x8b99, 0x734c}, + {0x8b9a, 0x8304}, + {0x8b9b, 0x3dbc}, + {0x8b9c, 0x87ee}, + {0x8b9d, 0xb4fc}, + {0x8b9e, 0xba34}, + {0x8b9f, 0xade4}, + {0x8ba0, 0x7d51}, + {0x8ba1, 0xb339}, + {0x8ba2, 0x6f0a}, + {0x8ba3, 0xb786}, + {0x8ba4, 0x83a8}, + {0x8ba5, 0x5bb1}, + {0x8ba6, 0x6a5a}, + {0x8ba7, 0xc490}, + {0x8ba8, 0xbd6a}, + {0x8ba9, 0x5cfd}, + {0x8baa, 0x73de}, + {0x8bab, 0xbf90}, + {0x8bac, 0x6098}, + {0x8bad, 0x6099}, + {0x8bae, 0x3c6a}, + {0x8baf, 0x9288}, + {0x8bb0, 0x7ca5}, + {0x8bb1, 0x8879}, + {0x8bb2, 0x5a35}, + {0x8bb3, 0xa574}, + {0x8bb4, 0x8cfa}, + {0x8bb5, 0xa19a}, + {0x8bb6, 0xbeb9}, + {0x8bb7, 0x8040}, + {0x8bb8, 0xa88c}, + {0x8bb9, 0xa88d}, + {0x8bba, 0x8188}, + {0x8bbb, 0x774a}, + {0x8bbc, 0x7646}, + {0x8bbd, 0x6106}, + {0x8bbe, 0x5bb6}, + {0x8bbf, 0x4d9c}, + {0x8bc0, 0xc190}, + {0x8bc1, 0xacea}, + {0x8bc2, 0xb341}, + {0x8bc3, 0x60fc}, + {0x8bc4, 0xa672}, + {0x8bc5, 0x7196}, + {0x8bc6, 0x9116}, + {0x8bc7, 0xb0d6}, + {0x8bc8, 0x4462}, + {0x8bc9, 0x6886}, + {0x8bca, 0x7e72}, + {0x8bcb, 0x53f4}, + {0x8bcc, 0x5376}, + {0x8bcd, 0xa831}, + {0x8bce, 0xb531}, + {0x8bcf, 0x5ece}, + {0x8bd0, 0x6922}, + {0x8bd1, 0x53f6}, + {0x8bd2, 0x9774}, + {0x8bd3, 0x9b19}, + {0x8bd4, 0x8c98}, + {0x8bd5, 0x76b4}, + {0x8bd6, 0xadbd}, + {0x8bd7, 0xaba5}, + {0x8bd8, 0x8405}, + {0x8bd9, 0x5004}, + {0x8bda, 0xb532}, + {0x8bdb, 0x42c9}, + {0x8bdc, 0x3b89}, + {0x8bdd, 0x83f0}, + {0x8bde, 0x8495}, + {0x8bdf, 0x7ca0}, + {0x8be0, 0x9f2a}, + {0x8be1, 0x4822}, + {0x8be2, 0x6abd}, + {0x8be3, 0x4a21}, + {0x8be4, 0xb956}, + {0x8be5, 0x888e}, + {0x8be6, 0x91dc}, + {0x8be7, 0x9235}, + {0x8be8, 0x8274}, + {0x8be9, 0xafc5}, + {0x8bea, 0x9c39}, + {0x8beb, 0xb6c0}, + {0x8bec, 0x8c52}, + {0x8bed, 0xbb9a}, + {0x8bee, 0x7ffa}, + {0x8bef, 0x3ef0}, + {0x8bf0, 0x95e0}, + {0x8bf1, 0xac40}, + {0x8bf2, 0x83b9}, + {0x8bf3, 0x50a0}, + {0x8bf4, 0x796d}, + {0x8bf5, 0xbac5}, + {0x8bf6, 0x7319}, + {0x8bf7, 0xb0f5}, + {0x8bf8, 0x78dc}, + {0x8bf9, 0x68f9}, + {0x8bfa, 0x83f1}, + {0x8bfb, 0x731e}, + {0x8bfc, 0xa846}, + {0x8bfd, 0xb6cd}, + {0x8bfe, 0x98a0}, + {0x8c40, 0x633d}, + {0x8c41, 0x9035}, + {0x8c42, 0x7f9a}, + {0x8c43, 0x7515}, + {0x8c44, 0x7b60}, + {0x8c45, 0xb02a}, + {0x8c46, 0xc3f4}, + {0x8c47, 0x7322}, + {0x8c48, 0x6d8a}, + {0x8c49, 0xc5aa}, + {0x8c4a, 0xabbc}, + {0x8c4b, 0x997e}, + {0x8c4c, 0x9c14}, + {0x8c4d, 0xb890}, + {0x8c4e, 0xc4a0}, + {0x8c4f, 0x9b40}, + {0x8c50, 0x8061}, + {0x8c51, 0x4a92}, + {0x8c52, 0x8b8d}, + {0x8c53, 0xaf30}, + {0x8c54, 0x8385}, + {0x8c55, 0xc5cd}, + {0x8c56, 0x74d4}, + {0x8c57, 0xae52}, + {0x8c58, 0x421c}, + {0x8c59, 0x8264}, + {0x8c5a, 0x845c}, + {0x8c5b, 0xb6ce}, + {0x8c5c, 0x7b61}, + {0x8c5d, 0x91e9}, + {0x8c5e, 0x8e5e}, + {0x8c5f, 0x6608}, + {0x8c60, 0x9218}, + {0x8c61, 0xb220}, + {0x8c62, 0xb364}, + {0x8c63, 0x6b0a}, + {0x8c64, 0xc51d}, + {0x8c65, 0xc404}, + {0x8c66, 0x5f2e}, + {0x8c67, 0x96b0}, + {0x8c68, 0xb388}, + {0x8c69, 0x9f20}, + {0x8c6a, 0x96f6}, + {0x8c6b, 0x4684}, + {0x8c6c, 0x90a2}, + {0x8c6d, 0x5972}, + {0x8c6e, 0xa9de}, + {0x8c6f, 0xbe31}, + {0x8c70, 0x4d3d}, + {0x8c71, 0x95cd}, + {0x8c72, 0x622d}, + {0x8c73, 0x7fad}, + {0x8c74, 0x7030}, + {0x8c75, 0x42a6}, + {0x8c76, 0xbcba}, + {0x8c77, 0xbaa6}, + {0x8c78, 0x8ea8}, + {0x8c79, 0x5ea4}, + {0x8c7a, 0xc019}, + {0x8c7b, 0x67a4}, + {0x8c7c, 0x848a}, + {0x8c7d, 0x4159}, + {0x8c7e, 0x6156}, + {0x8c80, 0x8dde}, + {0x8c81, 0x96c6}, + {0x8c82, 0x848c}, + {0x8c83, 0x6a95}, + {0x8c84, 0x84ad}, + {0x8c85, 0xc251}, + {0x8c86, 0xb9a6}, + {0x8c87, 0x3dd9}, + {0x8c88, 0x70c4}, + {0x8c89, 0x848e}, + {0x8c8a, 0x6cfe}, + {0x8c8b, 0x8de2}, + {0x8c8c, 0x5ffa}, + {0x8c8d, 0x96d1}, + {0x8c8e, 0x8490}, + {0x8c8f, 0x95d8}, + {0x8c90, 0xa391}, + {0x8c91, 0xaafa}, + {0x8c92, 0x70c5}, + {0x8c93, 0x6301}, + {0x8c94, 0x6e78}, + {0x8c95, 0xb54a}, + {0x8c96, 0xb3c8}, + {0x8c97, 0x3de9}, + {0x8c98, 0x8d9c}, + {0x8c99, 0x47e5}, + {0x8c9a, 0x3dec}, + {0x8c9b, 0x5570}, + {0x8c9c, 0x7c62}, + {0x8c9d, 0x512d}, + {0x8c9e, 0x8914}, + {0x8c9f, 0xc48a}, + {0x8ca0, 0x55da}, + {0x8ca1, 0x6fad}, + {0x8ca2, 0x684a}, + {0x8ca3, 0xc48d}, + {0x8ca4, 0xaed9}, + {0x8ca5, 0x9855}, + {0x8ca6, 0x513d}, + {0x8ca7, 0x4d4d}, + {0x8ca8, 0x695e}, + {0x8ca9, 0x5301}, + {0x8caa, 0x5302}, + {0x8cab, 0x97f9}, + {0x8cac, 0x94e9}, + {0x8cad, 0x8121}, + {0x8cae, 0x7790}, + {0x8caf, 0xa8ca}, + {0x8cb0, 0xa8cc}, + {0x8cb1, 0x71d1}, + {0x8cb2, 0xa27a}, + {0x8cb3, 0x7789}, + {0x8cb4, 0x7d78}, + {0x8cb5, 0xa281}, + {0x8cb6, 0xa27c}, + {0x8cb7, 0xa27d}, + {0x8cb8, 0xb1c8}, + {0x8cb9, 0x51e5}, + {0x8cba, 0x7181}, + {0x8cbb, 0xc2fc}, + {0x8cbc, 0x57b1}, + {0x8cbd, 0x5a66}, + {0x8cbe, 0xa0e2}, + {0x8cbf, 0x57b8}, + {0x8cc0, 0x57b9}, + {0x8cc1, 0xa728}, + {0x8cc2, 0x3ed9}, + {0x8cc3, 0x69ed}, + {0x8cc4, 0x9e99}, + {0x8cc5, 0x4f14}, + {0x8cc6, 0x966c}, + {0x8cc7, 0xc049}, + {0x8cc8, 0xab19}, + {0x8cc9, 0x8352}, + {0x8cca, 0xa605}, + {0x8ccb, 0xffff5c57}, + {0x8ccc, 0x7d36}, + {0x8ccd, 0x7a40}, + {0x8cce, 0x88c8}, + {0x8ccf, 0x9e59}, + {0x8cd0, 0x5491}, + {0x8cd1, 0xab2a}, + {0x8cd2, 0x7c52}, + {0x8cd3, 0x43a0}, + {0x8cd4, 0xab44}, + {0x8cd5, 0x6d18}, + {0x8cd6, 0x6d86}, + {0x8cd7, 0x7765}, + {0x8cd8, 0x6d88}, + {0x8cd9, 0xc419}, + {0x8cda, 0xab7d}, + {0x8cdb, 0x8398}, + {0x8cdc, 0xa1b0}, + {0x8cdd, 0xa800}, + {0x8cde, 0x7555}, + {0x8cdf, 0x5249}, + {0x8ce0, 0x4d2c}, + {0x8ce1, 0x62b9}, + {0x8ce2, 0x798c}, + {0x8ce3, 0x9151}, + {0x8ce4, 0xa590}, + {0x8ce5, 0x5d50}, + {0x8ce6, 0x9576}, + {0x8ce7, 0x4851}, + {0x8ce8, 0xb30e}, + {0x8ce9, 0xbb6a}, + {0x8cea, 0x3d3c}, + {0x8ceb, 0xb221}, + {0x8cec, 0x3c05}, + {0x8ced, 0xa592}, + {0x8cee, 0x6966}, + {0x8cef, 0x524d}, + {0x8cf0, 0x54dc}, + {0x8cf1, 0xa219}, + {0x8cf2, 0x8bd1}, + {0x8cf3, 0x8a12}, + {0x8cf4, 0x69e6}, + {0x8cf5, 0xc799}, + {0x8cf6, 0xc79a}, + {0x8cf7, 0xb179}, + {0x8cf8, 0x6cc8}, + {0x8cf9, 0x5801}, + {0x8cfa, 0xae45}, + {0x8cfb, 0x88f2}, + {0x8cfc, 0x7566}, + {0x8cfd, 0x9efd}, + {0x8cfe, 0x8f3e}, + {0x8d40, 0x5619}, + {0x8d41, 0xa15e}, + {0x8d42, 0x8792}, + {0x8d43, 0x3c62}, + {0x8d44, 0x7104}, + {0x8d45, 0x8f40}, + {0x8d46, 0x891c}, + {0x8d47, 0x9efe}, + {0x8d48, 0x786c}, + {0x8d49, 0x470e}, + {0x8d4a, 0x88b4}, + {0x8d4b, 0x43ae}, + {0x8d4c, 0x3d68}, + {0x8d4d, 0x9fc4}, + {0x8d4e, 0xae46}, + {0x8d4f, 0x402a}, + {0x8d50, 0x5e42}, + {0x8d51, 0x6fa6}, + {0x8d52, 0x7bfd}, + {0x8d53, 0x5262}, + {0x8d54, 0x56e0}, + {0x8d55, 0x4f45}, + {0x8d56, 0x7ac9}, + {0x8d57, 0x52ca}, + {0x8d58, 0x52e6}, + {0x8d59, 0x5755}, + {0x8d5a, 0x8fea}, + {0x8d5b, 0xb37d}, + {0x8d5c, 0x81dd}, + {0x8d5d, 0x96b5}, + {0x8d5e, 0x3ba6}, + {0x8d5f, 0xa304}, + {0x8d60, 0x614a}, + {0x8d61, 0x7faa}, + {0x8d62, 0x752e}, + {0x8d63, 0x656a}, + {0x8d64, 0x5016}, + {0x8d65, 0xa305}, + {0x8d66, 0xb899}, + {0x8d67, 0x5a51}, + {0x8d68, 0x77a2}, + {0x8d69, 0xb1ce}, + {0x8d6a, 0x686e}, + {0x8d6b, 0x5218}, + {0x8d6c, 0xaaa6}, + {0x8d6d, 0x4225}, + {0x8d6e, 0x909e}, + {0x8d6f, 0x5541}, + {0x8d70, 0x82d9}, + {0x8d71, 0x7532}, + {0x8d72, 0xb826}, + {0x8d73, 0xa908}, + {0x8d74, 0x91a6}, + {0x8d75, 0x4d3e}, + {0x8d76, 0x9591}, + {0x8d77, 0x4685}, + {0x8d78, 0xa061}, + {0x8d79, 0x593d}, + {0x8d7a, 0x5879}, + {0x8d7b, 0xa7aa}, + {0x8d7c, 0xb5fc}, + {0x8d7d, 0xb991}, + {0x8d7e, 0x7381}, + {0x8d80, 0x6ef5}, + {0x8d81, 0xa8be}, + {0x8d82, 0x9069}, + {0x8d83, 0x47d2}, + {0x8d84, 0x9bd8}, + {0x8d85, 0x77ec}, + {0x8d86, 0x60f5}, + {0x8d87, 0x6c34}, + {0x8d88, 0x727a}, + {0x8d89, 0x809c}, + {0x8d8a, 0x71ba}, + {0x8d8b, 0x71bc}, + {0x8d8c, 0xc6ee}, + {0x8d8d, 0x5a9d}, + {0x8d8e, 0xaf4d}, + {0x8d8f, 0x5821}, + {0x8d90, 0x7b94}, + {0x8d91, 0x7b95}, + {0x8d92, 0x788d}, + {0x8d93, 0x5198}, + {0x8d94, 0xc0cc}, + {0x8d95, 0xb609}, + {0x8d96, 0x5025}, + {0x8d97, 0x5d1c}, + {0x8d98, 0xc0cd}, + {0x8d99, 0xa35a}, + {0x8d9a, 0x87a4}, + {0x8d9b, 0x6984}, + {0x8d9c, 0xc6f0}, + {0x8d9d, 0x7055}, + {0x8d9e, 0x4fe9}, + {0x8d9f, 0xb60a}, + {0x8da0, 0xc5c1}, + {0x8da1, 0xbd98}, + {0x8da2, 0x61ea}, + {0x8da3, 0xb919}, + {0x8da4, 0xb152}, + {0x8da5, 0x554e}, + {0x8da6, 0x8f05}, + {0x8da7, 0xb154}, + {0x8da8, 0x9e0a}, + {0x8da9, 0xb3fd}, + {0x8daa, 0xc242}, + {0x8dab, 0x9746}, + {0x8dac, 0x5284}, + {0x8dad, 0xc454}, + {0x8dae, 0x6ed4}, + {0x8daf, 0x7c6c}, + {0x8db0, 0xb05c}, + {0x8db1, 0x7e6c}, + {0x8db2, 0x5d26}, + {0x8db3, 0x642d}, + {0x8db4, 0x61a9}, + {0x8db5, 0x9f82}, + {0x8db6, 0xa5ae}, + {0x8db7, 0xb91a}, + {0x8db8, 0xc656}, + {0x8db9, 0x72c4}, + {0x8dba, 0x6f96}, + {0x8dbb, 0xaffa}, + {0x8dbc, 0xaffc}, + {0x8dbd, 0xa369}, + {0x8dbe, 0xc658}, + {0x8dbf, 0x43e1}, + {0x8dc0, 0x9b06}, + {0x8dc1, 0x6f62}, + {0x8dc2, 0x8d8d}, + {0x8dc3, 0x8a54}, + {0x8dc4, 0xa078}, + {0x8dc5, 0x5119}, + {0x8dc6, 0xa64d}, + {0x8dc7, 0xa491}, + {0x8dc8, 0x431a}, + {0x8dc9, 0x9d09}, + {0x8dca, 0x91b8}, + {0x8dcb, 0x6996}, + {0x8dcc, 0x3b45}, + {0x8dcd, 0x791c}, + {0x8dce, 0xa5b9}, + {0x8dcf, 0x8cc0}, + {0x8dd0, 0x3eae}, + {0x8dd1, 0x4e92}, + {0x8dd2, 0x8c16}, + {0x8dd3, 0xb7d5}, + {0x8dd4, 0x843c}, + {0x8dd5, 0x4b7d}, + {0x8dd6, 0x96cc}, + {0x8dd7, 0x92d9}, + {0x8dd8, 0x99e0}, + {0x8dd9, 0xc666}, + {0x8dda, 0x6855}, + {0x8ddb, 0x7740}, + {0x8ddc, 0x6f0c}, + {0x8ddd, 0x44aa}, + {0x8dde, 0x4f6e}, + {0x8ddf, 0x4390}, + {0x8de0, 0x4fb0}, + {0x8de1, 0xa054}, + {0x8de2, 0x7a32}, + {0x8de3, 0xbeb1}, + {0x8de4, 0xbeb2}, + {0x8de5, 0x3c2d}, + {0x8de6, 0x4340}, + {0x8de7, 0x8f64}, + {0x8de8, 0x8c75}, + {0x8de9, 0x4b16}, + {0x8dea, 0xc73a}, + {0x8deb, 0x4d49}, + {0x8dec, 0x4d4a}, + {0x8ded, 0xa6d8}, + {0x8dee, 0xba35}, + {0x8def, 0x86c2}, + {0x8df0, 0x79a4}, + {0x8df1, 0xa9c4}, + {0x8df2, 0x43a1}, + {0x8df3, 0x4180}, + {0x8df4, 0x8d94}, + {0x8df5, 0x6888}, + {0x8df6, 0xafc0}, + {0x8df7, 0x73a6}, + {0x8df8, 0xbee6}, + {0x8df9, 0x774d}, + {0x8dfa, 0x774e}, + {0x8dfb, 0x6a3e}, + {0x8dfc, 0x51fa}, + {0x8dfd, 0xc761}, + {0x8dfe, 0x691e}, + {0x8e40, 0x6de4}, + {0x8e41, 0xb202}, + {0x8e42, 0x6889}, + {0x8e43, 0xb204}, + {0x8e44, 0x6de5}, + {0x8e45, 0xbe81}, + {0x8e46, 0xb534}, + {0x8e47, 0xae54}, + {0x8e48, 0x82e6}, + {0x8e49, 0xb2e8}, + {0x8e4a, 0xb2e9}, + {0x8e4b, 0xb3bd}, + {0x8e4c, 0x844a}, + {0x8e4d, 0xa8d6}, + {0x8e4e, 0x64f9}, + {0x8e4f, 0xab4c}, + {0x8e50, 0x6f8c}, + {0x8e51, 0x5bb8}, + {0x8e52, 0x4e86}, + {0x8e53, 0x3c75}, + {0x8e54, 0xc755}, + {0x8e55, 0xa2ea}, + {0x8e56, 0x91dd}, + {0x8e57, 0x4d51}, + {0x8e58, 0x78fe}, + {0x8e59, 0x69be}, + {0x8e5a, 0xb9b6}, + {0x8e5b, 0xbba1}, + {0x8e5c, 0xb656}, + {0x8e5d, 0x9219}, + {0x8e5e, 0x69c6}, + {0x8e5f, 0x75e6}, + {0x8e60, 0x5bc2}, + {0x8e61, 0x79b2}, + {0x8e62, 0x79b4}, + {0x8e63, 0xb722}, + {0x8e64, 0xa6b6}, + {0x8e65, 0x6c94}, + {0x8e66, 0x4484}, + {0x8e67, 0xb756}, + {0x8e68, 0x713c}, + {0x8e69, 0xb01e}, + {0x8e6a, 0x82f0}, + {0x8e6b, 0x9036}, + {0x8e6c, 0x4589}, + {0x8e6d, 0x4afc}, + {0x8e6e, 0x7b62}, + {0x8e6f, 0x4ea1}, + {0x8e70, 0x4ea2}, + {0x8e71, 0x8466}, + {0x8e72, 0xb02c}, + {0x8e73, 0xb02d}, + {0x8e74, 0xb096}, + {0x8e75, 0x716a}, + {0x8e76, 0xb02e}, + {0x8e77, 0x709d}, + {0x8e78, 0x61ca}, + {0x8e79, 0x6acd}, + {0x8e7a, 0x456c}, + {0x8e7b, 0x77c9}, + {0x8e7c, 0x6ff6}, + {0x8e7d, 0x895d}, + {0x8e7e, 0x895e}, + {0x8e80, 0x8f16}, + {0x8e81, 0xc12c}, + {0x8e82, 0xbf44}, + {0x8e83, 0xb389}, + {0x8e84, 0x6a50}, + {0x8e85, 0x9b61}, + {0x8e86, 0x9055}, + {0x8e87, 0x8742}, + {0x8e88, 0x5605}, + {0x8e89, 0xbc59}, + {0x8e8a, 0x4f99}, + {0x8e8b, 0x841a}, + {0x8e8c, 0x54b9}, + {0x8e8d, 0x85c5}, + {0x8e8e, 0xc1b9}, + {0x8e8f, 0x607a}, + {0x8e90, 0x4ca0}, + {0x8e91, 0x4c16}, + {0x8e92, 0x8152}, + {0x8e93, 0x561a}, + {0x8e94, 0x8161}, + {0x8e95, 0xb474}, + {0x8e96, 0xb475}, + {0x8e97, 0x88ba}, + {0x8e98, 0x8b52}, + {0x8e99, 0x6d49}, + {0x8e9a, 0x9220}, + {0x8e9b, 0x9886}, + {0x8e9c, 0x98cc}, + {0x8e9d, 0x8d24}, + {0x8e9e, 0xc006}, + {0x8e9f, 0x9671}, + {0x8ea0, 0x90a4}, + {0x8ea1, 0x4c25}, + {0x8ea2, 0x5b9c}, + {0x8ea3, 0x88c9}, + {0x8ea4, 0xbf2e}, + {0x8ea5, 0x6731}, + {0x8ea6, 0xa1fe}, + {0x8ea7, 0x4c29}, + {0x8ea8, 0x9408}, + {0x8ea9, 0x8a42}, + {0x8eaa, 0x50c4}, + {0x8eab, 0x5f99}, + {0x8eac, 0xc110}, + {0x8ead, 0xacd6}, + {0x8eae, 0xa316}, + {0x8eaf, 0xb4ca}, + {0x8eb0, 0x3d72}, + {0x8eb1, 0x88d1}, + {0x8eb2, 0x4f5c}, + {0x8eb3, 0x597e}, + {0x8eb4, 0x85f8}, + {0x8eb5, 0x9d6e}, + {0x8eb6, 0x7fc2}, + {0x8eb7, 0x668c}, + {0x8eb8, 0x9dce}, + {0x8eb9, 0x6279}, + {0x8eba, 0xc2e4}, + {0x8ebb, 0x9458}, + {0x8ebc, 0x406a}, + {0x8ebd, 0x5c8a}, + {0x8ebe, 0xbd6c}, + {0x8ebf, 0x820e}, + {0x8ec0, 0x3d75}, + {0x8ec1, 0x6b16}, + {0x8ec2, 0x44b2}, + {0x8ec3, 0xc274}, + {0x8ec4, 0x6000}, + {0x8ec5, 0x3f92}, + {0x8ec6, 0x3fa8}, + {0x8ec7, 0xbf1d}, + {0x8ec8, 0x7fd6}, + {0x8ec9, 0x8cd2}, + {0x8eca, 0x4444}, + {0x8ecb, 0x54f2}, + {0x8ecc, 0x7eed}, + {0x8ecd, 0x3d79}, + {0x8ece, 0x4824}, + {0x8ecf, 0x8071}, + {0x8ed0, 0x4884}, + {0x8ed1, 0x69b9}, + {0x8ed2, 0xa8e0}, + {0x8ed3, 0x72e4}, + {0x8ed4, 0x6696}, + {0x8ed5, 0x414d}, + {0x8ed6, 0x57e5}, + {0x8ed7, 0x653d}, + {0x8ed8, 0x9f5a}, + {0x8ed9, 0xbd90}, + {0x8eda, 0x5b7e}, + {0x8edb, 0x7e18}, + {0x8edc, 0x8d9e}, + {0x8edd, 0x5175}, + {0x8ede, 0xaf5c}, + {0x8edf, 0x3d09}, + {0x8ee0, 0x69e8}, + {0x8ee1, 0xc4c6}, + {0x8ee2, 0xaf25}, + {0x8ee3, 0x4a40}, + {0x8ee4, 0x9fc5}, + {0x8ee5, 0xb3f0}, + {0x8ee6, 0xc200}, + {0x8ee7, 0x9ef1}, + {0x8ee8, 0xc201}, + {0x8ee9, 0xa9e1}, + {0x8eea, 0xa062}, + {0x8eeb, 0x5be8}, + {0x8eec, 0x706a}, + {0x8eed, 0x7ecd}, + {0x8eee, 0xb868}, + {0x8eef, 0x4226}, + {0x8ef0, 0x4150}, + {0x8ef1, 0x46c9}, + {0x8ef2, 0x727c}, + {0x8ef3, 0x64ce}, + {0x8ef4, 0x99be}, + {0x8ef5, 0x984c}, + {0x8ef6, 0x8e3d}, + {0x8ef7, 0xba08}, + {0x8ef8, 0x8059}, + {0x8ef9, 0x99fe}, + {0x8efa, 0x4374}, + {0x8efb, 0xa961}, + {0x8efc, 0x5496}, + {0x8efd, 0x6bf1}, + {0x8efe, 0x5292}, + {0x8f40, 0xa36a}, + {0x8f41, 0x7978}, + {0x8f42, 0xa7f0}, + {0x8f43, 0x9a00}, + {0x8f44, 0xc252}, + {0x8f45, 0x426d}, + {0x8f46, 0x8e11}, + {0x8f47, 0x6bf9}, + {0x8f48, 0x6bf2}, + {0x8f49, 0x7a11}, + {0x8f4a, 0xb672}, + {0x8f4b, 0x4c39}, + {0x8f4c, 0x7b01}, + {0x8f4d, 0xb4fd}, + {0x8f4e, 0x487c}, + {0x8f4f, 0xa082}, + {0x8f50, 0x9948}, + {0x8f51, 0xab9e}, + {0x8f52, 0x805a}, + {0x8f53, 0x453d}, + {0x8f54, 0xa575}, + {0x8f55, 0x54a0}, + {0x8f56, 0x5b81}, + {0x8f57, 0x7018}, + {0x8f58, 0x70b8}, + {0x8f59, 0x3fb6}, + {0x8f5a, 0x8c99}, + {0x8f5b, 0x7830}, + {0x8f5c, 0x7766}, + {0x8f5d, 0x7a72}, + {0x8f5e, 0x65e6}, + {0x8f5f, 0xb758}, + {0x8f60, 0xa848}, + {0x8f61, 0x9f71}, + {0x8f62, 0xb7a5}, + {0x8f63, 0x7516}, + {0x8f64, 0x9f75}, + {0x8f65, 0xaeb5}, + {0x8f66, 0x4de4}, + {0x8f67, 0x891a}, + {0x8f68, 0x6295}, + {0x8f69, 0x826e}, + {0x8f6a, 0x6296}, + {0x8f6b, 0x5512}, + {0x8f6c, 0x6ca2}, + {0x8f6d, 0xb049}, + {0x8f6e, 0xbd02}, + {0x8f6f, 0xb311}, + {0x8f70, 0x531e}, + {0x8f71, 0x932d}, + {0x8f72, 0x5320}, + {0x8f73, 0x9755}, + {0x8f74, 0x4f16}, + {0x8f75, 0x6070}, + {0x8f76, 0xa4f0}, + {0x8f77, 0x4e3e}, + {0x8f78, 0x6842}, + {0x8f79, 0x3cd1}, + {0x8f7a, 0x95c4}, + {0x8f7b, 0xbef8}, + {0x8f7c, 0x9d5c}, + {0x8f7d, 0x56a4}, + {0x8f7e, 0x4e22}, + {0x8f80, 0x4555}, + {0x8f81, 0xc052}, + {0x8f82, 0xb37e}, + {0x8f83, 0x6d5a}, + {0x8f84, 0x94f1}, + {0x8f85, 0xbaa0}, + {0x8f86, 0x6b35}, + {0x8f87, 0x4ef9}, + {0x8f88, 0xbef9}, + {0x8f89, 0x684c}, + {0x8f8a, 0x8c8a}, + {0x8f8b, 0x8701}, + {0x8f8c, 0x3f65}, + {0x8f8d, 0x9559}, + {0x8f8e, 0x9c85}, + {0x8f8f, 0x6746}, + {0x8f90, 0x589e}, + {0x8f91, 0x5339}, + {0x8f92, 0x3f75}, + {0x8f93, 0x701e}, + {0x8f94, 0x6751}, + {0x8f95, 0x40d4}, + {0x8f96, 0xaa1d}, + {0x8f97, 0x4cc6}, + {0x8f98, 0x5c72}, + {0x8f99, 0x680d}, + {0x8f9a, 0x5f71}, + {0x8f9b, 0x7f54}, + {0x8f9c, 0x5c79}, + {0x8f9d, 0xa20a}, + {0x8f9e, 0x6e19}, + {0x8f9f, 0x654d}, + {0x8fa0, 0x7ac6}, + {0x8fa1, 0x62e6}, + {0x8fa2, 0x62e8}, + {0x8fa3, 0xb3be}, + {0x8fa4, 0xb3c0}, + {0x8fa5, 0xb3d1}, + {0x8fa6, 0xbb62}, + {0x8fa7, 0xbb64}, + {0x8fa8, 0xa429}, + {0x8fa9, 0xb0a6}, + {0x8faa, 0xb9e1}, + {0x8fab, 0x46d6}, + {0x8fac, 0x4efa}, + {0x8fad, 0xb7d6}, + {0x8fae, 0x883d}, + {0x8faf, 0x4702}, + {0x8fb0, 0xc551}, + {0x8fb1, 0xa190}, + {0x8fb2, 0x64a6}, + {0x8fb3, 0xc2cc}, + {0x8fb4, 0xa289}, + {0x8fb5, 0x4dc8}, + {0x8fb6, 0x786d}, + {0x8fb7, 0x561c}, + {0x8fb8, 0xa292}, + {0x8fb9, 0xa5f6}, + {0x8fba, 0xa1b5}, + {0x8fbb, 0x46c4}, + {0x8fbc, 0xc210}, + {0x8fbd, 0x6b36}, + {0x8fbe, 0x4a90}, + {0x8fbf, 0xc136}, + {0x8fc0, 0x4a94}, + {0x8fc1, 0xffff5f9a}, + {0x8fc2, 0x6586}, + {0x8fc3, 0xc228}, + {0x8fc4, 0x4a5e}, + {0x8fc5, 0xc334}, + {0x8fc6, 0x727d}, + {0x8fc7, 0xab1e}, + {0x8fc8, 0x6a00}, + {0x8fc9, 0x679d}, + {0x8fca, 0x9749}, + {0x8fcb, 0x6674}, + {0x8fcc, 0x403a}, + {0x8fcd, 0x5700}, + {0x8fce, 0xa36c}, + {0x8fcf, 0x3d95}, + {0x8fd0, 0xa64e}, + {0x8fd1, 0xc0dd}, + {0x8fd2, 0x8868}, + {0x8fd3, 0x9e25}, + {0x8fd4, 0x4d89}, + {0x8fd5, 0xc0e6}, + {0x8fd6, 0x40c6}, + {0x8fd7, 0x47be}, + {0x8fd8, 0x45ba}, + {0x8fd9, 0xb205}, + {0x8fda, 0x630d}, + {0x8fdb, 0x7e56}, + {0x8fdc, 0x79fc}, + {0x8fdd, 0xa974}, + {0x8fde, 0x3e0d}, + {0x8fdf, 0x8fac}, + {0x8fe0, 0x73ed}, + {0x8fe1, 0x9126}, + {0x8fe2, 0x4fb6}, + {0x8fe3, 0x576a}, + {0x8fe4, 0x9129}, + {0x8fe5, 0x5790}, + {0x8fe6, 0xb438}, + {0x8fe7, 0x970e}, + {0x8fe8, 0xa5de}, + {0x8fe9, 0x536c}, + {0x8fea, 0xb686}, + {0x8feb, 0x808a}, + {0x8fec, 0xa456}, + {0x8fed, 0xa596}, + {0x8fee, 0x64a8}, + {0x8fef, 0xa72d}, + {0x8ff0, 0x69e9}, + {0x8ff1, 0xa21a}, + {0x8ff2, 0x4a58}, + {0x8ff3, 0xb9ce}, + {0x8ff4, 0x8a14}, + {0x8ff5, 0x4b30}, + {0x8ff6, 0x9c46}, + {0x8ff7, 0xa119}, + {0x8ff8, 0x8bd2}, + {0x8ff9, 0x6360}, + {0x8ffa, 0xac4d}, + {0x8ffb, 0xa290}, + {0x8ffc, 0xa806}, + {0x8ffd, 0x6f02}, + {0x8ffe, 0x6cc9}, + {0x9040, 0xb45a}, + {0x9041, 0x3dc8}, + {0x9042, 0x808c}, + {0x9043, 0x868c}, + {0x9044, 0x702a}, + {0x9045, 0x3d56}, + {0x9046, 0x82d6}, + {0x9047, 0x9f39}, + {0x9048, 0x5a92}, + {0x9049, 0x6cd1}, + {0x904a, 0xb81a}, + {0x904b, 0x4e46}, + {0x904c, 0xa044}, + {0x904d, 0xb81e}, + {0x904e, 0x55ce}, + {0x904f, 0xa72e}, + {0x9050, 0x3f2e}, + {0x9051, 0xb7f2}, + {0x9052, 0xae05}, + {0x9053, 0x4a5c}, + {0x9054, 0x412a}, + {0x9055, 0x6228}, + {0x9056, 0xae71}, + {0x9057, 0x8758}, + {0x9058, 0x983e}, + {0x9059, 0xa5f8}, + {0x905a, 0x9c60}, + {0x905b, 0xb7b9}, + {0x905c, 0x8154}, + {0x905d, 0x6ffc}, + {0x905e, 0x9725}, + {0x905f, 0xa73a}, + {0x9060, 0x73c0}, + {0x9061, 0x5ee6}, + {0x9062, 0x70e2}, + {0x9063, 0x81b2}, + {0x9064, 0xc1c8}, + {0x9065, 0xaaa8}, + {0x9066, 0x9ef2}, + {0x9067, 0x4f46}, + {0x9068, 0x5df6}, + {0x9069, 0x5be1}, + {0x906a, 0x89cc}, + {0x906b, 0xaa69}, + {0x906c, 0x9925}, + {0x906d, 0x5fe4}, + {0x906e, 0x8ea4}, + {0x906f, 0x6298}, + {0x9070, 0x4771}, + {0x9071, 0xb380}, + {0x9072, 0xac54}, + {0x9073, 0x5af8}, + {0x9074, 0x7841}, + {0x9075, 0x474d}, + {0x9076, 0x94ec}, + {0x9077, 0x8fec}, + {0x9078, 0xbb75}, + {0x9079, 0x86de}, + {0x907a, 0x4d7e}, + {0x907b, 0x62cd}, + {0x907c, 0xa9e2}, + {0x907d, 0x7d7e}, + {0x907e, 0xb7c2}, + {0x9080, 0xbaa1}, + {0x9081, 0x8764}, + {0x9082, 0xbb78}, + {0x9083, 0xb9f0}, + {0x9084, 0xa065}, + {0x9085, 0x69fc}, + {0x9086, 0xbfad}, + {0x9087, 0x7842}, + {0x9088, 0x5df8}, + {0x9089, 0x8d58}, + {0x908a, 0x9e5a}, + {0x908b, 0x425c}, + {0x908c, 0x8c32}, + {0x908d, 0xa608}, + {0x908e, 0x7d16}, + {0x908f, 0xb4a8}, + {0x9090, 0x5ee0}, + {0x9091, 0x46c5}, + {0x9092, 0xa5a1}, + {0x9093, 0x74ac}, + {0x9094, 0x736d}, + {0x9095, 0x4a60}, + {0x9096, 0xb4a9}, + {0x9097, 0x7586}, + {0x9098, 0x82f8}, + {0x9099, 0x5271}, + {0x909a, 0xa5a4}, + {0x909b, 0x4a95}, + {0x909c, 0x4d84}, + {0x909d, 0x4549}, + {0x909e, 0x7eb6}, + {0x909f, 0x759d}, + {0x90a0, 0x5b40}, + {0x90a1, 0x5b38}, + {0x90a2, 0x89da}, + {0x90a3, 0x7004}, + {0x90a4, 0x9ece}, + {0x90a5, 0x7b96}, + {0x90a6, 0xa634}, + {0x90a7, 0x6ee2}, + {0x90a8, 0x5c32}, + {0x90a9, 0x83a5}, + {0x90aa, 0x5154}, + {0x90ab, 0x5c9c}, + {0x90ac, 0xbe70}, + {0x90ad, 0xbaae}, + {0x90ae, 0x6a32}, + {0x90af, 0x6594}, + {0x90b0, 0x77ed}, + {0x90b1, 0xb9f1}, + {0x90b2, 0x5e64}, + {0x90b3, 0x900e}, + {0x90b4, 0x9c82}, + {0x90b5, 0x9e60}, + {0x90b6, 0x842e}, + {0x90b7, 0x49d2}, + {0x90b8, 0x634d}, + {0x90b9, 0xab96}, + {0x90ba, 0x5242}, + {0x90bb, 0x9b8c}, + {0x90bc, 0xc68d}, + {0x90bd, 0x66ae}, + {0x90be, 0xb7cc}, + {0x90bf, 0x4d85}, + {0x90c0, 0x8302}, + {0x90c1, 0xbc35}, + {0x90c2, 0x4f5d}, + {0x90c3, 0x49bd}, + {0x90c4, 0x8e76}, + {0x90c5, 0x4375}, + {0x90c6, 0x4011}, + {0x90c7, 0x6354}, + {0x90c8, 0xc659}, + {0x90c9, 0x9e0c}, + {0x90ca, 0x3e60}, + {0x90cb, 0xada4}, + {0x90cc, 0xa2d0}, + {0x90cd, 0x58c2}, + {0x90ce, 0xa36d}, + {0x90cf, 0x3f68}, + {0x90d0, 0xada5}, + {0x90d1, 0x61aa}, + {0x90d2, 0x801c}, + {0x90d3, 0xb7cd}, + {0x90d4, 0x8b15}, + {0x90d5, 0x94c6}, + {0x90d6, 0xb5be}, + {0x90d7, 0x4602}, + {0x90d8, 0x7e06}, + {0x90d9, 0x8b5c}, + {0x90da, 0x6fba}, + {0x90db, 0x3b79}, + {0x90dc, 0x8d65}, + {0x90dd, 0xb05d}, + {0x90de, 0x9280}, + {0x90df, 0xc68e}, + {0x90e0, 0x930d}, + {0x90e1, 0xb696}, + {0x90e2, 0x9081}, + {0x90e3, 0x5980}, + {0x90e4, 0xbbf0}, + {0x90e5, 0x9a8c}, + {0x90e6, 0x8a61}, + {0x90e7, 0xb1ee}, + {0x90e8, 0x99de}, + {0x90e9, 0x6235}, + {0x90ea, 0x64e4}, + {0x90eb, 0x5a68}, + {0x90ec, 0x6d00}, + {0x90ed, 0x4951}, + {0x90ee, 0x83a9}, + {0x90ef, 0xaac8}, + {0x90f0, 0x6eb0}, + {0x90f1, 0xc100}, + {0x90f2, 0xb7d8}, + {0x90f3, 0x4354}, + {0x90f4, 0xaf16}, + {0x90f5, 0x95f8}, + {0x90f6, 0x41c4}, + {0x90f7, 0x6ec6}, + {0x90f8, 0xa752}, + {0x90f9, 0x6382}, + {0x90fa, 0xb7da}, + {0x90fb, 0xb188}, + {0x90fc, 0x75c0}, + {0x90fd, 0x936e}, + {0x90fe, 0x9d70}, + {0x9140, 0xb5ca}, + {0x9141, 0xad69}, + {0x9142, 0x9c58}, + {0x9143, 0xbc3a}, + {0x9144, 0x8111}, + {0x9145, 0x59b6}, + {0x9146, 0x4a9a}, + {0x9147, 0x8869}, + {0x9148, 0x8210}, + {0x9149, 0x5c8c}, + {0x914a, 0x4796}, + {0x914b, 0x42f0}, + {0x914c, 0x42e4}, + {0x914d, 0x42de}, + {0x914e, 0x4b18}, + {0x914f, 0x80da}, + {0x9150, 0xbf01}, + {0x9151, 0xa014}, + {0x9152, 0x3c6c}, + {0x9153, 0x98b4}, + {0x9154, 0x5b42}, + {0x9155, 0x9088}, + {0x9156, 0xbd38}, + {0x9157, 0x6c00}, + {0x9158, 0x7660}, + {0x9159, 0x85ad}, + {0x915a, 0x99e1}, + {0x915b, 0x6aa4}, + {0x915c, 0xb679}, + {0x915d, 0x7c75}, + {0x915e, 0x94cc}, + {0x915f, 0xa0bd}, + {0x9160, 0x7d1c}, + {0x9161, 0x8ba1}, + {0x9162, 0x9561}, + {0x9163, 0x8e55}, + {0x9164, 0x4e82}, + {0x9165, 0xc191}, + {0x9166, 0x7a12}, + {0x9167, 0x6d78}, + {0x9168, 0x89f8}, + {0x9169, 0x89f0}, + {0x916a, 0xba45}, + {0x916b, 0x88e0}, + {0x916c, 0x7742}, + {0x916d, 0x4ab1}, + {0x916e, 0xb7fe}, + {0x916f, 0x47c0}, + {0x9170, 0xc275}, + {0x9171, 0xa015}, + {0x9172, 0x4658}, + {0x9173, 0x8b2c}, + {0x9174, 0x8f60}, + {0x9175, 0x8719}, + {0x9176, 0x3e74}, + {0x9177, 0x8e8d}, + {0x9178, 0x688a}, + {0x9179, 0x4790}, + {0x917a, 0x7678}, + {0x917b, 0x88e5}, + {0x917c, 0x7198}, + {0x917d, 0x6304}, + {0x917e, 0x46b5}, + {0x9180, 0xb67d}, + {0x9181, 0xb67e}, + {0x9182, 0xa70c}, + {0x9183, 0xa70d}, + {0x9184, 0x4cc8}, + {0x9185, 0x9c90}, + {0x9186, 0x51fc}, + {0x9187, 0x5189}, + {0x9188, 0x9a95}, + {0x9189, 0x6df6}, + {0x918a, 0x4389}, + {0x918b, 0xaa16}, + {0x918c, 0x5379}, + {0x918d, 0x551d}, + {0x918e, 0x73a8}, + {0x918f, 0x73e0}, + {0x9190, 0xa88e}, + {0x9191, 0x80dc}, + {0x9192, 0x7750}, + {0x9193, 0xa576}, + {0x9194, 0x42f2}, + {0x9195, 0x6de6}, + {0x9196, 0x4ad9}, + {0x9197, 0xa936}, + {0x9198, 0x9cc2}, + {0x9199, 0x9634}, + {0x919a, 0x8785}, + {0x919b, 0xb535}, + {0x919c, 0xa832}, + {0x919d, 0x84e4}, + {0x919e, 0x4cca}, + {0x919f, 0x9cc5}, + {0x91a0, 0x6b1a}, + {0x91a1, 0x99ca}, + {0x91a2, 0x645e}, + {0x91a3, 0xa3de}, + {0x91a4, 0x6134}, + {0x91a5, 0x8dd1}, + {0x91a6, 0x8dc9}, + {0x91a7, 0x6d10}, + {0x91a8, 0x4355}, + {0x91a9, 0x6fd6}, + {0x91aa, 0xb6c1}, + {0x91ab, 0xb536}, + {0x91ac, 0x7832}, + {0x91ad, 0x93ad}, + {0x91ae, 0x6e79}, + {0x91af, 0x611a}, + {0x91b0, 0x3b8a}, + {0x91b1, 0xafc8}, + {0x91b2, 0x7222}, + {0x91b3, 0xa7f6}, + {0x91b4, 0x479e}, + {0x91b5, 0xb958}, + {0x91b6, 0xb682}, + {0x91b7, 0x4c04}, + {0x91b8, 0x7f30}, + {0x91b9, 0x3b8e}, + {0x91ba, 0x7eee}, + {0x91bb, 0x5149}, + {0x91bc, 0x8a8a}, + {0x91bd, 0x8148}, + {0x91be, 0x72d5}, + {0x91bf, 0x7ebe}, + {0x91c0, 0x4825}, + {0x91c1, 0xc299}, + {0x91c2, 0x8555}, + {0x91c3, 0x4881}, + {0x91c4, 0xb190}, + {0x91c5, 0x41f8}, + {0x91c6, 0xc2a5}, + {0x91c7, 0x711c}, + {0x91c8, 0x70fc}, + {0x91c9, 0xb804}, + {0x91ca, 0x5602}, + {0x91cb, 0x7942}, + {0x91cc, 0x8072}, + {0x91cd, 0x46c0}, + {0x91ce, 0x6326}, + {0x91cf, 0x44d5}, + {0x91d0, 0x731a}, + {0x91d1, 0x6120}, + {0x91d2, 0xadf1}, + {0x91d3, 0x9101}, + {0x91d4, 0x44da}, + {0x91d5, 0x65e8}, + {0x91d6, 0x6d26}, + {0x91d7, 0x613a}, + {0x91d8, 0x956c}, + {0x91d9, 0x76ea}, + {0x91da, 0x82b4}, + {0x91db, 0x7f69}, + {0x91dc, 0x9d49}, + {0x91dd, 0x6e1a}, + {0x91de, 0xc4e5}, + {0x91df, 0x582c}, + {0x91e0, 0xbb66}, + {0x91e1, 0x588a}, + {0x91e2, 0x66a0}, + {0x91e3, 0x5021}, + {0x91e4, 0x4f55}, + {0x91e5, 0x4298}, + {0x91e6, 0x6652}, + {0x91e7, 0xc155}, + {0x91e8, 0x7150}, + {0x91e9, 0xbee1}, + {0x91ea, 0x8c76}, + {0x91eb, 0x58a2}, + {0x91ec, 0x6752}, + {0x91ed, 0xba36}, + {0x91ee, 0xb074}, + {0x91ef, 0xa761}, + {0x91f0, 0xbeea}, + {0x91f1, 0xa76e}, + {0x91f2, 0xa772}, + {0x91f3, 0x8fae}, + {0x91f4, 0x6071}, + {0x91f5, 0x6074}, + {0x91f6, 0x524a}, + {0x91f7, 0x9714}, + {0x91f8, 0x9e4e}, + {0x91f9, 0x7dd1}, + {0x91fa, 0x4ec5}, + {0x91fb, 0x94de}, + {0x91fc, 0xb38a}, + {0x91fd, 0xb3f6}, + {0x91fe, 0xb05e}, + {0x9240, 0x8ed0}, + {0x9241, 0x73ee}, + {0x9242, 0x53c9}, + {0x9243, 0x9255}, + {0x9244, 0xbca1}, + {0x9245, 0xbf25}, + {0x9246, 0x4f11}, + {0x9247, 0xb8b5}, + {0x9248, 0x7041}, + {0x9249, 0x5d51}, + {0x924a, 0x9578}, + {0x924b, 0x43b4}, + {0x924c, 0xa138}, + {0x924d, 0x5a48}, + {0x924e, 0xa591}, + {0x924f, 0x4d90}, + {0x9250, 0x9152}, + {0x9251, 0x43b5}, + {0x9252, 0x8bd4}, + {0x9253, 0x6641}, + {0x9254, 0xb8de}, + {0x9255, 0x3c61}, + {0x9256, 0xa5e6}, + {0x9257, 0xc1ba}, + {0x9258, 0xc1ee}, + {0x9259, 0x4d91}, + {0x925a, 0xb03c}, + {0x925b, 0x70ed}, + {0x925c, 0x4020}, + {0x925d, 0x6c12}, + {0x925e, 0xa458}, + {0x925f, 0x600d}, + {0x9260, 0xbb6c}, + {0x9261, 0x8ded}, + {0x9262, 0x95c5}, + {0x9263, 0xc0f6}, + {0x9264, 0xbc08}, + {0x9265, 0xa21c}, + {0x9266, 0x8318}, + {0x9267, 0x8942}, + {0x9268, 0x8944}, + {0x9269, 0x3cad}, + {0x926a, 0x3c51}, + {0x926b, 0xbd4c}, + {0x926c, 0xbbd9}, + {0x926d, 0x412c}, + {0x926e, 0xc1c2}, + {0x926f, 0x828d}, + {0x9270, 0x8966}, + {0x9271, 0xb222}, + {0x9272, 0xc04e}, + {0x9273, 0xbdd2}, + {0x9274, 0xb120}, + {0x9275, 0x5e25}, + {0x9276, 0x837a}, + {0x9277, 0xb2ac}, + {0x9278, 0x476a}, + {0x9279, 0x875a}, + {0x927a, 0x6609}, + {0x927b, 0x7e7d}, + {0x927c, 0x8f41}, + {0x927d, 0x48b2}, + {0x927e, 0x660e}, + {0x9280, 0xbe9d}, + {0x9281, 0x865c}, + {0x9282, 0x8224}, + {0x9283, 0x8bd5}, + {0x9284, 0xa140}, + {0x9285, 0x3d0a}, + {0x9286, 0x4e25}, + {0x9287, 0x6cd2}, + {0x9288, 0x7201}, + {0x9289, 0x8b45}, + {0x928a, 0x8b81}, + {0x928b, 0x5ed0}, + {0x928c, 0x8480}, + {0x928d, 0x59a2}, + {0x928e, 0x4b64}, + {0x928f, 0x4748}, + {0x9290, 0xaaa9}, + {0x9291, 0x4364}, + {0x9292, 0x6255}, + {0x9293, 0x3ced}, + {0x9294, 0xc202}, + {0x9295, 0x7204}, + {0x9296, 0x51bd}, + {0x9297, 0x51be}, + {0x9298, 0x84f6}, + {0x9299, 0xc086}, + {0x929a, 0x58b4}, + {0x929b, 0x6905}, + {0x929c, 0x5019}, + {0x929d, 0x8228}, + {0x929e, 0x77a4}, + {0x929f, 0xbdd4}, + {0x92a0, 0x7a99}, + {0x92a1, 0x4f48}, + {0x92a2, 0x6da4}, + {0x92a3, 0x7798}, + {0x92a4, 0x6ca9}, + {0x92a5, 0xaf7a}, + {0x92a6, 0xa866}, + {0x92a7, 0xb989}, + {0x92a8, 0xa145}, + {0x92a9, 0x41a8}, + {0x92aa, 0x593e}, + {0x92ab, 0x9e45}, + {0x92ac, 0x468d}, + {0x92ad, 0x93de}, + {0x92ae, 0x6fe4}, + {0x92af, 0x7e66}, + {0x92b0, 0x84f8}, + {0x92b1, 0x6c24}, + {0x92b2, 0x86f9}, + {0x92b3, 0x672a}, + {0x92b4, 0x943e}, + {0x92b5, 0x92ca}, + {0x92b6, 0xaab0}, + {0x92b7, 0x43c0}, + {0x92b8, 0x557d}, + {0x92b9, 0x68ba}, + {0x92ba, 0x6c25}, + {0x92bb, 0x63b6}, + {0x92bc, 0xa066}, + {0x92bd, 0x8946}, + {0x92be, 0xbd96}, + {0x92bf, 0x99d8}, + {0x92c0, 0xb28a}, + {0x92c1, 0x6dad}, + {0x92c2, 0xa221}, + {0x92c3, 0x425d}, + {0x92c4, 0xc775}, + {0x92c5, 0xb2b2}, + {0x92c6, 0xbe45}, + {0x92c7, 0x7a9a}, + {0x92c8, 0x99f9}, + {0x92c9, 0xa146}, + {0x92ca, 0x3d6d}, + {0x92cb, 0xa352}, + {0x92cc, 0xa269}, + {0x92cd, 0x8dae}, + {0x92ce, 0x9544}, + {0x92cf, 0x809d}, + {0x92d0, 0x7ea8}, + {0x92d1, 0x56ae}, + {0x92d2, 0x4d36}, + {0x92d3, 0xa4c2}, + {0x92d4, 0x6d4c}, + {0x92d5, 0xbb84}, + {0x92d6, 0xc68c}, + {0x92d7, 0x9ed0}, + {0x92d8, 0xa049}, + {0x92d9, 0x3e95}, + {0x92da, 0x92cc}, + {0x92db, 0xc780}, + {0x92dc, 0xa4d0}, + {0x92dd, 0x89dd}, + {0x92de, 0x4692}, + {0x92df, 0x9384}, + {0x92e0, 0x7b82}, + {0x92e1, 0x8e4d}, + {0x92e2, 0x5810}, + {0x92e3, 0x4e2e}, + {0x92e4, 0x637a}, + {0x92e5, 0x8a44}, + {0x92e6, 0x97cc}, + {0x92e7, 0x8b91}, + {0x92e8, 0x788e}, + {0x92e9, 0xaf85}, + {0x92ea, 0xc0ce}, + {0x92eb, 0x7711}, + {0x92ec, 0x5ae1}, + {0x92ed, 0x8381}, + {0x92ee, 0x63be}, + {0x92ef, 0xb0b6}, + {0x92f0, 0xc0fa}, + {0x92f1, 0x42a9}, + {0x92f2, 0x4120}, + {0x92f3, 0x9e5d}, + {0x92f4, 0xc6bd}, + {0x92f5, 0x6fd8}, + {0x92f6, 0x85c0}, + {0x92f7, 0x6936}, + {0x92f8, 0x8115}, + {0x92f9, 0x5926}, + {0x92fa, 0x7ec2}, + {0x92fb, 0x936c}, + {0x92fc, 0x873c}, + {0x92fd, 0x8544}, + {0x92fe, 0x6739}, + {0x9340, 0xc0da}, + {0x9341, 0x6bb2}, + {0x9342, 0x673a}, + {0x9343, 0xb005}, + {0x9344, 0x82aa}, + {0x9345, 0x5f0e}, + {0x9346, 0x87ec}, + {0x9347, 0xa2d1}, + {0x9348, 0x930e}, + {0x9349, 0x8416}, + {0x934a, 0x974a}, + {0x934b, 0xc690}, + {0x934c, 0xc096}, + {0x934d, 0xaedc}, + {0x934e, 0x61ee}, + {0x934f, 0x403c}, + {0x9350, 0xb155}, + {0x9351, 0x61ac}, + {0x9352, 0xb060}, + {0x9353, 0xc72a}, + {0x9354, 0xacd8}, + {0x9355, 0x6f89}, + {0x9356, 0x64c2}, + {0x9357, 0x9e61}, + {0x9358, 0x7239}, + {0x9359, 0x724a}, + {0x935a, 0x4604}, + {0x935b, 0x6bb6}, + {0x935c, 0xa071}, + {0x935d, 0x6268}, + {0x935e, 0x5914}, + {0x935f, 0x47e9}, + {0x9360, 0xaa04}, + {0x9361, 0xab2c}, + {0x9362, 0x8be6}, + {0x9363, 0x43c8}, + {0x9364, 0x3e1a}, + {0x9365, 0xb1e1}, + {0x9366, 0xa2d2}, + {0x9367, 0x4d8e}, + {0x9368, 0xa475}, + {0x9369, 0xc691}, + {0x936a, 0x5915}, + {0x936b, 0x5a01}, + {0x936c, 0x8df5}, + {0x936d, 0x91b9}, + {0x936e, 0x9078}, + {0x936f, 0x47f2}, + {0x9370, 0x9b55}, + {0x9371, 0x9b42}, + {0x9372, 0x91b1}, + {0x9373, 0x870c}, + {0x9374, 0x6f6a}, + {0x9375, 0xb1f0}, + {0x9376, 0x4d44}, + {0x9377, 0xc15a}, + {0x9378, 0x8522}, + {0x9379, 0x7234}, + {0x937a, 0x8f29}, + {0x937b, 0xa8cd}, + {0x937c, 0x6a96}, + {0x937d, 0x8066}, + {0x937e, 0x5294}, + {0x9380, 0x4962}, + {0x9381, 0x9454}, + {0x9382, 0x9bde}, + {0x9383, 0xbe16}, + {0x9384, 0x85fa}, + {0x9385, 0x75c1}, + {0x9386, 0x9d71}, + {0x9387, 0x6022}, + {0x9388, 0xc254}, + {0x9389, 0xa1c4}, + {0x938a, 0xa7c2}, + {0x938b, 0xa476}, + {0x938c, 0x8ca6}, + {0x938d, 0x9eb1}, + {0x938e, 0xc01e}, + {0x938f, 0x5295}, + {0x9390, 0x8535}, + {0x9391, 0x901e}, + {0x9392, 0xbe3a}, + {0x9393, 0xa569}, + {0x9394, 0x955d}, + {0x9395, 0x6f1e}, + {0x9396, 0x91ba}, + {0x9397, 0x92f9}, + {0x9398, 0x44ac}, + {0x9399, 0x9b78}, + {0x939a, 0x6bba}, + {0x939b, 0x47bd}, + {0x939c, 0x4931}, + {0x939d, 0x5c8d}, + {0x939e, 0x5585}, + {0x939f, 0x4e7a}, + {0x93a0, 0x8b24}, + {0x93a1, 0x9a0d}, + {0x93a2, 0x76ad}, + {0x93a3, 0x4659}, + {0x93a4, 0x46ea}, + {0x93a5, 0x5b44}, + {0x93a6, 0x7b02}, + {0x93a7, 0x7a34}, + {0x93a8, 0xc698}, + {0x93a9, 0x577c}, + {0x93aa, 0x609a}, + {0x93ab, 0xbe3c}, + {0x93ac, 0x8caa}, + {0x93ad, 0x9d52}, + {0x93ae, 0x6104}, + {0x93af, 0x8262}, + {0x93b0, 0x6805}, + {0x93b1, 0x5bb2}, + {0x93b2, 0xb749}, + {0x93b3, 0x3c35}, + {0x93b4, 0xc276}, + {0x93b5, 0x8442}, + {0x93b6, 0x7d1d}, + {0x93b7, 0x44d2}, + {0x93b8, 0x7020}, + {0x93b9, 0x4859}, + {0x93ba, 0x9562}, + {0x93bb, 0xa0be}, + {0x93bc, 0x68d8}, + {0x93bd, 0x4440}, + {0x93be, 0x8ba4}, + {0x93bf, 0x40aa}, + {0x93c0, 0x6856}, + {0x93c1, 0xb1f8}, + {0x93c2, 0x5a0c}, + {0x93c3, 0x8ba5}, + {0x93c4, 0x6450}, + {0x93c5, 0x8870}, + {0x93c6, 0x738c}, + {0x93c7, 0x5162}, + {0x93c8, 0xa931}, + {0x93c9, 0x926e}, + {0x93ca, 0x5c1d}, + {0x93cb, 0xbcbc}, + {0x93cc, 0xb516}, + {0x93cd, 0xa890}, + {0x93ce, 0x465c}, + {0x93cf, 0x82e5}, + {0x93d0, 0x5f85}, + {0x93d1, 0x5b8c}, + {0x93d2, 0x4bc0}, + {0x93d3, 0x83d9}, + {0x93d4, 0x782e}, + {0x93d5, 0xc101}, + {0x93d6, 0x6281}, + {0x93d7, 0x68e1}, + {0x93d8, 0x6544}, + {0x93d9, 0x4335}, + {0x93da, 0x9cdd}, + {0x93db, 0x4c95}, + {0x93dc, 0x4181}, + {0x93dd, 0x45a2}, + {0x93de, 0x6d85}, + {0x93df, 0xaa18}, + {0x93e0, 0x3e9d}, + {0x93e1, 0x56c1}, + {0x93e2, 0xc57a}, + {0x93e3, 0xa19c}, + {0x93e4, 0x8972}, + {0x93e5, 0x8df8}, + {0x93e6, 0x515e}, + {0x93e7, 0x60d4}, + {0x93e8, 0x68e2}, + {0x93e9, 0x9bf0}, + {0x93ea, 0x8d35}, + {0x93eb, 0xa4b8}, + {0x93ec, 0x675a}, + {0x93ed, 0xb794}, + {0x93ee, 0x82c6}, + {0x93ef, 0x7aad}, + {0x93f0, 0xc57c}, + {0x93f1, 0xbd78}, + {0x93f2, 0x8975}, + {0x93f3, 0x49e2}, + {0x93f4, 0x646e}, + {0x93f5, 0x4cf8}, + {0x93f6, 0x93ae}, + {0x93f7, 0x8e31}, + {0x93f8, 0x6954}, + {0x93f9, 0x709c}, + {0x93fa, 0x4c79}, + {0x93fb, 0xaad8}, + {0x93fc, 0xb2dc}, + {0x93fd, 0x3c78}, + {0x93fe, 0x6d11}, + {0x9440, 0xb2dd}, + {0x9441, 0x52ac}, + {0x9442, 0x7ec4}, + {0x9443, 0x7f55}, + {0x9444, 0x6546}, + {0x9445, 0x9c3a}, + {0x9446, 0x4d52}, + {0x9447, 0x7318}, + {0x9448, 0x6cba}, + {0x9449, 0xb295}, + {0x944a, 0x9269}, + {0x944b, 0xb2fc}, + {0x944c, 0xb2f4}, + {0x944d, 0x838e}, + {0x944e, 0x63d8}, + {0x944f, 0x69c0}, + {0x9450, 0x410d}, + {0x9451, 0x8496}, + {0x9452, 0x58a9}, + {0x9453, 0xc29a}, + {0x9454, 0x69ba}, + {0x9455, 0x721c}, + {0x9456, 0x8136}, + {0x9457, 0x67e4}, + {0x9458, 0xaae8}, + {0x9459, 0x77d1}, + {0x945a, 0x9c75}, + {0x945b, 0x3d01}, + {0x945c, 0x9a32}, + {0x945d, 0x7a50}, + {0x945e, 0x7c98}, + {0x945f, 0x9118}, + {0x9460, 0xc29c}, + {0x9461, 0xb191}, + {0x9462, 0x747a}, + {0x9463, 0x4280}, + {0x9464, 0x97f2}, + {0x9465, 0x4af9}, + {0x9466, 0x83e0}, + {0x9467, 0xa8e1}, + {0x9468, 0x6e85}, + {0x9469, 0x7601}, + {0x946a, 0x7259}, + {0x946b, 0x6189}, + {0x946c, 0xb724}, + {0x946d, 0x7a74}, + {0x946e, 0x79ed}, + {0x946f, 0x8bb6}, + {0x9470, 0x8bb8}, + {0x9471, 0x8bc1}, + {0x9472, 0x72e5}, + {0x9473, 0xa849}, + {0x9474, 0xb6d0}, + {0x9475, 0x7e5a}, + {0x9476, 0x4446}, + {0x9477, 0xb725}, + {0x9478, 0x4af4}, + {0x9479, 0xaaee}, + {0x947a, 0x956d}, + {0x947b, 0x7bf4}, + {0x947c, 0x7e5e}, + {0x947d, 0x7f6a}, + {0x947e, 0x4700}, + {0x9480, 0xbcc4}, + {0x9481, 0x7b65}, + {0x9482, 0x9c76}, + {0x9483, 0x762c}, + {0x9484, 0x4ea4}, + {0x9485, 0xa1cd}, + {0x9486, 0x4cfd}, + {0x9487, 0x68fd}, + {0x9488, 0x7324}, + {0x9489, 0x7638}, + {0x948a, 0x5bfc}, + {0x948b, 0x5c05}, + {0x948c, 0x6430}, + {0x948d, 0xaeea}, + {0x948e, 0x6f36}, + {0x948f, 0xb3e9}, + {0x9490, 0x5795}, + {0x9491, 0x3d21}, + {0x9492, 0x891e}, + {0x9493, 0x4e8d}, + {0x9494, 0x702d}, + {0x9495, 0x80c6}, + {0x9496, 0xa59c}, + {0x9497, 0x5e50}, + {0x9498, 0x4368}, + {0x9499, 0x48ba}, + {0x949a, 0x58bc}, + {0x949b, 0xad4d}, + {0x949c, 0x690d}, + {0x949d, 0x45f9}, + {0x949e, 0xc014}, + {0x949f, 0x51a6}, + {0x94a0, 0xb999}, + {0x94a1, 0x3d11}, + {0x94a2, 0xad4e}, + {0x94a3, 0x51a8}, + {0x94a4, 0x8434}, + {0x94a5, 0x4eb0}, + {0x94a6, 0x5199}, + {0x94a7, 0xb4cc}, + {0x94a8, 0x6f98}, + {0x94a9, 0xb0be}, + {0x94aa, 0x6431}, + {0x94ab, 0xa032}, + {0x94ac, 0xaa76}, + {0x94ad, 0x51aa}, + {0x94ae, 0xb15a}, + {0x94af, 0xa791}, + {0x94b0, 0x80d4}, + {0x94b1, 0x3b4a}, + {0x94b2, 0x3b4c}, + {0x94b3, 0x4e04}, + {0x94b4, 0xc0a0}, + {0x94b5, 0x9866}, + {0x94b6, 0x7752}, + {0x94b7, 0x8f68}, + {0x94b8, 0xac64}, + {0x94b9, 0xb40d}, + {0x94ba, 0x68e5}, + {0x94bb, 0x94a6}, + {0x94bc, 0x68e6}, + {0x94bd, 0xc591}, + {0x94be, 0xb54c}, + {0x94bf, 0x76b5}, + {0x94c0, 0x3fc5}, + {0x94c1, 0x7504}, + {0x94c2, 0xaa89}, + {0x94c3, 0xaa8a}, + {0x94c4, 0xae40}, + {0x94c5, 0x8a1c}, + {0x94c6, 0x8a2c}, + {0x94c7, 0x6db5}, + {0x94c8, 0xbe48}, + {0x94c9, 0xffff658f}, + {0x94ca, 0x3d2a}, + {0x94cb, 0xb9bc}, + {0x94cc, 0x72ee}, + {0x94cd, 0xa3b0}, + {0x94ce, 0x960a}, + {0x94cf, 0x666d}, + {0x94d0, 0x6675}, + {0x94d1, 0xb99e}, + {0x94d2, 0x6918}, + {0x94d3, 0xa035}, + {0x94d4, 0x5071}, + {0x94d5, 0xb5f1}, + {0x94d6, 0x8c60}, + {0x94d7, 0x8f80}, + {0x94d8, 0xbea5}, + {0x94d9, 0xc56e}, + {0x94da, 0xc570}, + {0x94db, 0xc57d}, + {0x94dc, 0x8dc4}, + {0x94dd, 0x7804}, + {0x94de, 0xc592}, + {0x94df, 0x48dc}, + {0x94e0, 0x510c}, + {0x94e1, 0xc3f6}, + {0x94e2, 0x69f0}, + {0x94e3, 0x5da6}, + {0x94e4, 0x86b4}, + {0x94e5, 0xb820}, + {0x94e6, 0x8220}, + {0x94e7, 0x8a2d}, + {0x94e8, 0x876a}, + {0x94e9, 0x7914}, + {0x94ea, 0x55e0}, + {0x94eb, 0x542e}, + {0x94ec, 0x6ae0}, + {0x94ed, 0xbf6e}, + {0x94ee, 0xb3fe}, + {0x94ef, 0x94fc}, + {0x94f0, 0x67a5}, + {0x94f1, 0x52d8}, + {0x94f2, 0xc28a}, + {0x94f3, 0x537a}, + {0x94f4, 0x8844}, + {0x94f5, 0x537d}, + {0x94f6, 0xbe8d}, + {0x94f7, 0x70bc}, + {0x94f8, 0x9b31}, + {0x94f9, 0xb96d}, + {0x94fa, 0x654e}, + {0x94fb, 0x6589}, + {0x94fc, 0x63c4}, + {0x94fd, 0xaa9c}, + {0x94fe, 0x9eee}, + {0x9540, 0x9c1c}, + {0x9541, 0x4e42}, + {0x9542, 0xacbe}, + {0x9543, 0x4499}, + {0x9544, 0xb139}, + {0x9545, 0x96b1}, + {0x9546, 0x808d}, + {0x9547, 0x808e}, + {0x9548, 0xa10a}, + {0x9549, 0x4971}, + {0x954a, 0xa559}, + {0x954b, 0x3e38}, + {0x954c, 0x3d3d}, + {0x954d, 0x6968}, + {0x954e, 0x960c}, + {0x954f, 0x6084}, + {0x9550, 0x5428}, + {0x9551, 0x5c01}, + {0x9552, 0xad94}, + {0x9553, 0x54bd}, + {0x9554, 0x8dd6}, + {0x9555, 0x5fdd}, + {0x9556, 0xafdc}, + {0x9557, 0xbd95}, + {0x9558, 0x5429}, + {0x9559, 0x95ea}, + {0x955a, 0x6cd4}, + {0x955b, 0xb149}, + {0x955c, 0x4130}, + {0x955d, 0xae0a}, + {0x955e, 0x8920}, + {0x955f, 0xc054}, + {0x9560, 0x7874}, + {0x9561, 0x5df2}, + {0x9562, 0x8162}, + {0x9563, 0x4032}, + {0x9564, 0xad3e}, + {0x9565, 0x6348}, + {0x9566, 0xc6a5}, + {0x9567, 0x972a}, + {0x9568, 0x5485}, + {0x9569, 0x4f8e}, + {0x956a, 0xa40d}, + {0x956b, 0x4fe1}, + {0x956c, 0x3b52}, + {0x956d, 0x4131}, + {0x956e, 0x3c09}, + {0x956f, 0x7992}, + {0x9570, 0x7108}, + {0x9571, 0x9f21}, + {0x9572, 0x96c1}, + {0x9573, 0x6230}, + {0x9574, 0xad9a}, + {0x9575, 0x7140}, + {0x9576, 0x707e}, + {0x9577, 0x68bc}, + {0x9578, 0x6a88}, + {0x9579, 0xc212}, + {0x957a, 0x9fcc}, + {0x957b, 0x5f7c}, + {0x957c, 0x5759}, + {0x957d, 0xa998}, + {0x957e, 0x5d61}, + {0x9580, 0x6e62}, + {0x9581, 0xa910}, + {0x9582, 0x71bd}, + {0x9583, 0xc37d}, + {0x9584, 0xa619}, + {0x9585, 0x964a}, + {0x9586, 0xbfae}, + {0x9587, 0xbfb0}, + {0x9588, 0x5d62}, + {0x9589, 0x5dfe}, + {0x958a, 0xa23d}, + {0x958b, 0x9ed4}, + {0x958c, 0xc571}, + {0x958d, 0xc748}, + {0x958e, 0xc360}, + {0x958f, 0x9474}, + {0x9590, 0x8384}, + {0x9591, 0xa636}, + {0x9592, 0x8ad8}, + {0x9593, 0xc0fe}, + {0x9594, 0xb4cd}, + {0x9595, 0x3be0}, + {0x9596, 0xa246}, + {0x9597, 0x77f0}, + {0x9598, 0x44f0}, + {0x9599, 0xa2a0}, + {0x959a, 0xaa56}, + {0x959b, 0x5460}, + {0x959c, 0xadfa}, + {0x959d, 0xb3a8}, + {0x959e, 0xbc3c}, + {0x959f, 0x6270}, + {0x95a0, 0xad19}, + {0x95a1, 0x80a9}, + {0x95a2, 0xb27d}, + {0x95a3, 0xb760}, + {0x95a4, 0x9811}, + {0x95a5, 0xa378}, + {0x95a6, 0x8e2c}, + {0x95a7, 0x7e08}, + {0x95a8, 0x82a0}, + {0x95a9, 0x6748}, + {0x95aa, 0xb15c}, + {0x95ab, 0x497c}, + {0x95ac, 0xb1f9}, + {0x95ad, 0x9b91}, + {0x95ae, 0x89ae}, + {0x95af, 0x68d9}, + {0x95b0, 0x6eb4}, + {0x95b1, 0x5880}, + {0x95b2, 0xa496}, + {0x95b3, 0x454d}, + {0x95b4, 0x8b25}, + {0x95b5, 0x5e0a}, + {0x95b6, 0xb0d1}, + {0x95b7, 0x75cd}, + {0x95b8, 0x65c0}, + {0x95b9, 0x7eba}, + {0x95ba, 0xbcce}, + {0x95bb, 0xab45}, + {0x95bc, 0x5e0d}, + {0x95bd, 0x8182}, + {0x95be, 0x4a76}, + {0x95bf, 0x83ae}, + {0x95c0, 0xbf0a}, + {0x95c1, 0x6305}, + {0x95c2, 0x5d7e}, + {0x95c3, 0xade8}, + {0x95c4, 0x4910}, + {0x95c5, 0x7758}, + {0x95c6, 0x9cc6}, + {0x95c7, 0x6b1c}, + {0x95c8, 0x8871}, + {0x95c9, 0x7805}, + {0x95ca, 0xa70e}, + {0x95cb, 0xb538}, + {0x95cc, 0x65c9}, + {0x95cd, 0x6246}, + {0x95ce, 0x4c3d}, + {0x95cf, 0xb2d1}, + {0x95d0, 0xb2d2}, + {0x95d1, 0x75dd}, + {0x95d2, 0x9c98}, + {0x95d3, 0x9ff2}, + {0x95d4, 0xaa5c}, + {0x95d5, 0x54a4}, + {0x95d6, 0x95dd}, + {0x95d7, 0xbf85}, + {0x95d8, 0x5dd8}, + {0x95d9, 0xb54d}, + {0x95da, 0xa9c5}, + {0x95db, 0xabf2}, + {0x95dc, 0x9460}, + {0x95dd, 0x68e9}, + {0x95de, 0x3e0a}, + {0x95df, 0x6b5d}, + {0x95e0, 0xb0e8}, + {0x95e1, 0x3b90}, + {0x95e2, 0xb2f5}, + {0x95e3, 0x923c}, + {0x95e4, 0x7ef6}, + {0x95e5, 0x75f2}, + {0x95e6, 0x4615}, + {0x95e7, 0x711d}, + {0x95e8, 0x4f81}, + {0x95e9, 0xffff66e2}, + {0x95ea, 0xb26e}, + {0x95eb, 0x63f4}, + {0x95ec, 0x7c36}, + {0x95ed, 0x91e5}, + {0x95ee, 0x79bc}, + {0x95ef, 0x7bf6}, + {0x95f0, 0x7b66}, + {0x95f1, 0x9428}, + {0x95f2, 0x9d4a}, + {0x95f3, 0xb098}, + {0x95f4, 0xc3f8}, + {0x95f5, 0xbb5a}, + {0x95f6, 0xb445}, + {0x95f7, 0x5fde}, + {0x95f8, 0x97c6}, + {0x95f9, 0x433a}, + {0x95fa, 0x961a}, + {0x95fb, 0xbdad}, + {0x95fc, 0x42ed}, + {0x95fd, 0xad5c}, + {0x95fe, 0x62e9}, + {0x9640, 0xb64e}, + {0x9641, 0x8d6a}, + {0x9642, 0x54d2}, + {0x9643, 0x87c8}, + {0x9644, 0x3d22}, + {0x9645, 0x7875}, + {0x9646, 0x5466}, + {0x9647, 0xffff6711}, + {0x9648, 0x8565}, + {0x9649, 0x9f22}, + {0x964a, 0x7372}, + {0x964b, 0xc730}, + {0x964c, 0x80f0}, + {0x964d, 0x61d4}, + {0x964e, 0xa10e}, + {0x964f, 0x89e4}, + {0x9650, 0xb69c}, + {0x9651, 0xc660}, + {0x9652, 0xa2b9}, + {0x9653, 0x9ff4}, + {0x9654, 0x737e}, + {0x9655, 0x73a9}, + {0x9656, 0x79bd}, + {0x9657, 0x889a}, + {0x9658, 0x9831}, + {0x9659, 0x9df0}, + {0x965a, 0x9128}, + {0x965b, 0x3c8a}, + {0x965c, 0x51b8}, + {0x965d, 0x4d2e}, + {0x965e, 0x7559}, + {0x965f, 0x8ed5}, + {0x9660, 0x6ba1}, + {0x9661, 0x3ef6}, + {0x9662, 0x4675}, + {0x9663, 0x4a36}, + {0x9664, 0x9258}, + {0x9665, 0x8b75}, + {0x9666, 0xb8e0}, + {0x9667, 0xa4f9}, + {0x9668, 0xaebd}, + {0x9669, 0x5390}, + {0x966a, 0xc614}, + {0x966b, 0x9156}, + {0x966c, 0xa13c}, + {0x966d, 0x4e44}, + {0x966e, 0x7d79}, + {0x966f, 0x46d2}, + {0x9670, 0xb446}, + {0x9671, 0x5778}, + {0x9672, 0x5968}, + {0x9673, 0xb365}, + {0x9674, 0x6844}, + {0x9675, 0x9432}, + {0x9676, 0xa265}, + {0x9677, 0x6bcc}, + {0x9678, 0x7d7a}, + {0x9679, 0xa6f9}, + {0x967a, 0xbad8}, + {0x967b, 0x5480}, + {0x967c, 0x4fdd}, + {0x967d, 0xa80a}, + {0x967e, 0x4972}, + {0x9680, 0x97b8}, + {0x9681, 0x60ed}, + {0x9682, 0xab8d}, + {0x9683, 0x84c8}, + {0x9684, 0x483c}, + {0x9685, 0x99b4}, + {0x9686, 0xbb71}, + {0x9687, 0x6a80}, + {0x9688, 0x6416}, + {0x9689, 0x7db1}, + {0x968a, 0x3f30}, + {0x968b, 0x3c11}, + {0x968c, 0x54e0}, + {0x968d, 0xb45e}, + {0x968e, 0x55c8}, + {0x968f, 0x828e}, + {0x9690, 0x6085}, + {0x9691, 0xaf45}, + {0x9692, 0x5049}, + {0x9693, 0xabac}, + {0x9694, 0xb1b2}, + {0x9695, 0x523e}, + {0x9696, 0xbf62}, + {0x9697, 0xbc2a}, + {0x9698, 0xc741}, + {0x9699, 0x960d}, + {0x969a, 0x4e48}, + {0x969b, 0x7a56}, + {0x969c, 0x99b5}, + {0x969d, 0x8290}, + {0x969e, 0xa812}, + {0x969f, 0x9988}, + {0x96a0, 0xa6fa}, + {0x96a1, 0x5aee}, + {0x96a2, 0x562c}, + {0x96a3, 0x8164}, + {0x96a4, 0xb478}, + {0x96a5, 0xb2ae}, + {0x96a6, 0xb2b5}, + {0x96a7, 0x972c}, + {0x96a8, 0x8421}, + {0x96a9, 0x3f04}, + {0x96aa, 0xb381}, + {0x96ab, 0x837e}, + {0x96ac, 0x722e}, + {0x96ad, 0x5e45}, + {0x96ae, 0x85f2}, + {0x96af, 0x5391}, + {0x96b0, 0xc2d5}, + {0x96b1, 0x4c20}, + {0x96b2, 0x49fd}, + {0x96b3, 0xb199}, + {0x96b4, 0x55d0}, + {0x96b5, 0x97bd}, + {0x96b6, 0x9511}, + {0x96b7, 0x99b9}, + {0x96b8, 0x9588}, + {0x96b9, 0x8294}, + {0x96ba, 0xb7c4}, + {0x96bb, 0xc204}, + {0x96bc, 0xbdd5}, + {0x96bd, 0x4ca8}, + {0x96be, 0x5a18}, + {0x96bf, 0x8969}, + {0x96c0, 0x3c1c}, + {0x96c1, 0x562d}, + {0x96c2, 0x41a0}, + {0x96c3, 0x51e6}, + {0x96c4, 0x3eec}, + {0x96c5, 0xbe2d}, + {0x96c6, 0x9989}, + {0x96c7, 0xc438}, + {0x96c8, 0x868e}, + {0x96c9, 0x971c}, + {0x96ca, 0x5af0}, + {0x96cb, 0x43da}, + {0x96cc, 0xb22c}, + {0x96cd, 0x6be5}, + {0x96ce, 0x795e}, + {0x96cf, 0x7e29}, + {0x96d0, 0x7578}, + {0x96d1, 0x919c}, + {0x96d2, 0xbd1e}, + {0x96d3, 0x930a}, + {0x96d4, 0xb7c0}, + {0x96d5, 0xaecc}, + {0x96d6, 0x8b0a}, + {0x96d7, 0xc008}, + {0x96d8, 0xb38c}, + {0x96d9, 0xa986}, + {0x96da, 0xc08d}, + {0x96db, 0x7589}, + {0x96dc, 0x9395}, + {0x96dd, 0x6ece}, + {0x96de, 0x411e}, + {0x96df, 0x9139}, + {0x96e0, 0x3cf9}, + {0x96e1, 0x913a}, + {0x96e2, 0x4152}, + {0x96e3, 0xc5ba}, + {0x96e4, 0x4808}, + {0x96e5, 0xb492}, + {0x96e6, 0x4a42}, + {0x96e7, 0x6794}, + {0x96e8, 0xc742}, + {0x96e9, 0x52ec}, + {0x96ea, 0x530c}, + {0x96eb, 0xb9e2}, + {0x96ec, 0x534d}, + {0x96ed, 0x59a4}, + {0x96ee, 0xbe69}, + {0x96ef, 0x758a}, + {0x96f0, 0xb5ac}, + {0x96f1, 0xb494}, + {0x96f2, 0x9734}, + {0x96f3, 0x5642}, + {0x96f4, 0x9222}, + {0x96f5, 0xb38d}, + {0x96f6, 0x7051}, + {0x96f7, 0x8e6c}, + {0x96f8, 0x9358}, + {0x96f9, 0xae79}, + {0x96fa, 0x51e8}, + {0x96fb, 0x495d}, + {0x96fc, 0x81b6}, + {0x96fd, 0xbc61}, + {0x96fe, 0xffff685b}, + {0x9740, 0xb68c}, + {0x9741, 0x697c}, + {0x9742, 0x7960}, + {0x9743, 0xbed1}, + {0x9744, 0xaecd}, + {0x9745, 0x92e6}, + {0x9746, 0xc015}, + {0x9747, 0x3e18}, + {0x9748, 0x9f65}, + {0x9749, 0x7206}, + {0x974a, 0x6b3d}, + {0x974b, 0x41b6}, + {0x974c, 0x3e96}, + {0x974d, 0x9294}, + {0x974e, 0xa61a}, + {0x974f, 0x734e}, + {0x9750, 0x7962}, + {0x9751, 0x5548}, + {0x9752, 0x89de}, + {0x9753, 0xa45e}, + {0x9754, 0x6e39}, + {0x9755, 0x57c4}, + {0x9756, 0x9a66}, + {0x9757, 0x8efc}, + {0x9758, 0xb86c}, + {0x9759, 0x79f8}, + {0x975a, 0x86e6}, + {0x975b, 0xc4e0}, + {0x975c, 0x4e55}, + {0x975d, 0xad9d}, + {0x975e, 0xa06e}, + {0x975f, 0xbd35}, + {0x9760, 0xb8a5}, + {0x9761, 0x3f59}, + {0x9762, 0x4df2}, + {0x9763, 0x5d1e}, + {0x9764, 0xc151}, + {0x9765, 0x9170}, + {0x9766, 0x3e4e}, + {0x9767, 0x6732}, + {0x9768, 0x61a1}, + {0x9769, 0xa23e}, + {0x976a, 0x8532}, + {0x976b, 0x661e}, + {0x976c, 0x9f02}, + {0x976d, 0x658a}, + {0x976e, 0xa9f1}, + {0x976f, 0x7c45}, + {0x9770, 0x70ca}, + {0x9771, 0x4398}, + {0x9772, 0x54e8}, + {0x9773, 0x99c0}, + {0x9774, 0x9994}, + {0x9775, 0x505e}, + {0x9776, 0x8dd9}, + {0x9777, 0xb73e}, + {0x9778, 0x6c36}, + {0x9779, 0x71ec}, + {0x977a, 0xc56a}, + {0x977b, 0x4439}, + {0x977c, 0xa35c}, + {0x977d, 0x6b3e}, + {0x977e, 0x74ae}, + {0x9780, 0x4121}, + {0x9781, 0xa7ec}, + {0x9782, 0x55ae}, + {0x9783, 0x9d92}, + {0x9784, 0xc22a}, + {0x9785, 0x727e}, + {0x9786, 0x7654}, + {0x9787, 0xc53d}, + {0x9788, 0x74b6}, + {0x9789, 0x8b16}, + {0x978a, 0x413c}, + {0x978b, 0x7b9c}, + {0x978c, 0x4a64}, + {0x978d, 0x8c38}, + {0x978e, 0x8a55}, + {0x978f, 0x42b2}, + {0x9790, 0x4451}, + {0x9791, 0xbfb6}, + {0x9792, 0x5471}, + {0x9793, 0x85d1}, + {0x9794, 0x3d90}, + {0x9795, 0x6355}, + {0x9796, 0x469e}, + {0x9797, 0xbd22}, + {0x9798, 0x75ac}, + {0x9799, 0xba0a}, + {0x979a, 0xba0c}, + {0x979b, 0x5aa2}, + {0x979c, 0x5c50}, + {0x979d, 0x5029}, + {0x979e, 0x5814}, + {0x979f, 0xa2a1}, + {0x97a0, 0x4ba2}, + {0x97a1, 0x539d}, + {0x97a2, 0x4648}, + {0x97a3, 0xbeda}, + {0x97a4, 0x8ad9}, + {0x97a5, 0xbab2}, + {0x97a6, 0xb061}, + {0x97a7, 0xba0d}, + {0x97a8, 0x8ff2}, + {0x97a9, 0xb4ce}, + {0x97aa, 0x9140}, + {0x97ab, 0x89e6}, + {0x97ac, 0xc540}, + {0x97ad, 0x5662}, + {0x97ae, 0x7285}, + {0x97af, 0xc6c1}, + {0x97b0, 0xc6c2}, + {0x97b1, 0x54c6}, + {0x97b2, 0x45d0}, + {0x97b3, 0x8e28}, + {0x97b4, 0x8362}, + {0x97b5, 0xa248}, + {0x97b6, 0x7ae5}, + {0x97b7, 0x5dca}, + {0x97b8, 0x6948}, + {0x97b9, 0x480d}, + {0x97ba, 0x6cac}, + {0x97bb, 0x6c6c}, + {0x97bc, 0x46a0}, + {0x97bd, 0xc784}, + {0x97be, 0x8c6c}, + {0x97bf, 0xaf32}, + {0x97c0, 0x87a9}, + {0x97c1, 0xc572}, + {0x97c2, 0xc5d0}, + {0x97c3, 0x40e1}, + {0x97c4, 0x8705}, + {0x97c5, 0x4fc2}, + {0x97c6, 0x4895}, + {0x97c7, 0x44f1}, + {0x97c8, 0x7e9d}, + {0x97c9, 0x60b9}, + {0x97ca, 0x673c}, + {0x97cb, 0x5bad}, + {0x97cc, 0xa74d}, + {0x97cd, 0x4d60}, + {0x97ce, 0x5c0a}, + {0x97cf, 0x4eb1}, + {0x97d0, 0xc156}, + {0x97d1, 0x9058}, + {0x97d2, 0x8222}, + {0x97d3, 0x56b2}, + {0x97d4, 0x5929}, + {0x97d5, 0x873d}, + {0x97d6, 0x9492}, + {0x97d7, 0xb39d}, + {0x97d8, 0x959d}, + {0x97d9, 0x51c6}, + {0x97da, 0x5709}, + {0x97db, 0xa379}, + {0x97dc, 0xa2da}, + {0x97dd, 0x6676}, + {0x97de, 0xc661}, + {0x97df, 0x66ca}, + {0x97e0, 0xb3a9}, + {0x97e1, 0xa6d2}, + {0x97e2, 0xb0ca}, + {0x97e3, 0xb069}, + {0x97e4, 0x66cc}, + {0x97e5, 0xb9a8}, + {0x97e6, 0x5e6e}, + {0x97e7, 0xa4dc}, + {0x97e8, 0x8821}, + {0x97e9, 0x3f76}, + {0x97ea, 0xb1bc}, + {0x97eb, 0x5c68}, + {0x97ec, 0xacdd}, + {0x97ed, 0x92d8}, + {0x97ee, 0xb15d}, + {0x97ef, 0x724c}, + {0x97f0, 0xb006}, + {0x97f1, 0x3e90}, + {0x97f2, 0x6271}, + {0x97f3, 0x7152}, + {0x97f4, 0x6a02}, + {0x97f5, 0x7154}, + {0x97f6, 0x9931}, + {0x97f7, 0x5556}, + {0x97f8, 0xa199}, + {0x97f9, 0x64d0}, + {0x97fa, 0x8211}, + {0x97fb, 0x7e09}, + {0x97fc, 0x7065}, + {0x97fd, 0x6029}, + {0x97fe, 0x9f89}, + {0x9840, 0xb931}, + {0x9841, 0xb844}, + {0x9842, 0x4a68}, + {0x9843, 0xae1d}, + {0x9844, 0xb185}, + {0x9845, 0xc021}, + {0x9846, 0x8822}, + {0x9847, 0xb2ca}, + {0x9848, 0x6998}, + {0x9849, 0xb2cc}, + {0x984a, 0x98dd}, + {0x984b, 0xb920}, + {0x984c, 0xa2dc}, + {0x984d, 0x7e45}, + {0x984e, 0x9e64}, + {0x984f, 0x64da}, + {0x9850, 0x6999}, + {0x9851, 0x9212}, + {0x9852, 0x61f6}, + {0x9853, 0x73fa}, + {0x9854, 0x9020}, + {0x9855, 0xa969}, + {0x9856, 0x96fc}, + {0x9857, 0x9c88}, + {0x9858, 0xa412}, + {0x9859, 0x95bd}, + {0x985a, 0x484d}, + {0x985b, 0x8748}, + {0x985c, 0x667c}, + {0x985d, 0xb4fe}, + {0x985e, 0xbeb4}, + {0x985f, 0x5676}, + {0x9860, 0x8549}, + {0x9861, 0x7fc6}, + {0x9862, 0x5a79}, + {0x9863, 0x67ba}, + {0x9864, 0x9bb6}, + {0x9865, 0xb240}, + {0x9866, 0x93f1}, + {0x9867, 0xbb0a}, + {0x9868, 0xc62e}, + {0x9869, 0x8100}, + {0x986a, 0x9a8d}, + {0x986b, 0x668d}, + {0x986c, 0xb1fa}, + {0x986d, 0x69aa}, + {0x986e, 0x6244}, + {0x986f, 0x57e9}, + {0x9870, 0x8bf1}, + {0x9871, 0x7cd6}, + {0x9872, 0xbb0c}, + {0x9873, 0x91c4}, + {0x9874, 0x96d2}, + {0x9875, 0xc15e}, + {0x9876, 0xa41a}, + {0x9877, 0x9f8a}, + {0x9878, 0x91bc}, + {0x9879, 0x9d12}, + {0x987a, 0xbe4e}, + {0x987b, 0x993c}, + {0x987c, 0x9658}, + {0x987d, 0x6f72}, + {0x987e, 0xa662}, + {0x9880, 0x5a70}, + {0x9881, 0x89f1}, + {0x9882, 0x5861}, + {0x9883, 0x9b48}, + {0x9884, 0x85fc}, + {0x9885, 0x9d75}, + {0x9886, 0x58d5}, + {0x9887, 0x497e}, + {0x9888, 0xc02e}, + {0x9889, 0x8505}, + {0x988a, 0x64ee}, + {0x988b, 0x5a06}, + {0x988c, 0x8c78}, + {0x988d, 0x8c1a}, + {0x988e, 0x7e4d}, + {0x988f, 0xad72}, + {0x9890, 0x5829}, + {0x9891, 0xc546}, + {0x9892, 0xa17d}, + {0x9893, 0x8cf5}, + {0x9894, 0xb1a5}, + {0x9895, 0x4e95}, + {0x9896, 0x667d}, + {0x9897, 0xc266}, + {0x9898, 0x4d4c}, + {0x9899, 0x79a5}, + {0x989a, 0x935a}, + {0x989b, 0xa6de}, + {0x989c, 0x6451}, + {0x989d, 0x76ae}, + {0x989e, 0x6306}, + {0x989f, 0xb78a}, + {0x98a0, 0x8c4a}, + {0x98a1, 0x5ca5}, + {0x98a2, 0x5789}, + {0x98a3, 0x578a}, + {0x98a4, 0xa0c1}, + {0x98a5, 0x6108}, + {0x98a6, 0x93c9}, + {0x98a7, 0x4b1e}, + {0x98a8, 0x8715}, + {0x98a9, 0xb87c}, + {0x98aa, 0x6834}, + {0x98ab, 0x609e}, + {0x98ac, 0x61b8}, + {0x98ad, 0x5c1e}, + {0x98ae, 0x8444}, + {0x98af, 0xb518}, + {0x98b0, 0x5844}, + {0x98b1, 0x6f11}, + {0x98b2, 0x5bb9}, + {0x98b3, 0x5bba}, + {0x98b4, 0x7d24}, + {0x98b5, 0xbfc1}, + {0x98b6, 0xc4d5}, + {0x98b7, 0xbb96}, + {0x98b8, 0x737a}, + {0x98b9, 0x460c}, + {0x98ba, 0x4a78}, + {0x98bb, 0x74d5}, + {0x98bc, 0xac82}, + {0x98bd, 0x8e32}, + {0x98be, 0x98b5}, + {0x98bf, 0x9fb9}, + {0x98c0, 0x5b49}, + {0x98c1, 0xbd71}, + {0x98c2, 0x9a96}, + {0x98c3, 0x740e}, + {0x98c4, 0x7aa8}, + {0x98c5, 0x7702}, + {0x98c6, 0x7fd4}, + {0x98c7, 0x7a16}, + {0x98c8, 0x4574}, + {0x98c9, 0x9a98}, + {0x98ca, 0x6f79}, + {0x98cb, 0x4071}, + {0x98cc, 0x7b10}, + {0x98cd, 0x6bbc}, + {0x98ce, 0xbff0}, + {0x98cf, 0xbdea}, + {0x98d0, 0x97e9}, + {0x98d1, 0x7d25}, + {0x98d2, 0x8219}, + {0x98d3, 0xb1a8}, + {0x98d4, 0x9f0d}, + {0x98d5, 0x8716}, + {0x98d6, 0xc46c}, + {0x98d7, 0x93f4}, + {0x98d8, 0x902a}, + {0x98d9, 0x66da}, + {0x98da, 0x4a79}, + {0x98db, 0x6452}, + {0x98dc, 0xafb9}, + {0x98dd, 0xae62}, + {0x98de, 0x5332}, + {0x98df, 0xaeec}, + {0x98e0, 0xc195}, + {0x98e1, 0xc734}, + {0x98e2, 0x4aa6}, + {0x98e3, 0x89b5}, + {0x98e4, 0x986c}, + {0x98e5, 0x6105}, + {0x98e6, 0x71a0}, + {0x98e7, 0xc039}, + {0x98e8, 0x94a8}, + {0x98e9, 0xa681}, + {0x98ea, 0x4985}, + {0x98eb, 0x4edd}, + {0x98ec, 0x533c}, + {0x98ed, 0x8130}, + {0x98ee, 0xa57c}, + {0x98ef, 0x910a}, + {0x98f0, 0x7849}, + {0x98f1, 0x7934}, + {0x98f2, 0x8d02}, + {0x98f3, 0xa938}, + {0x98f4, 0x92c9}, + {0x98f5, 0x53a9}, + {0x98f6, 0xbebd}, + {0x98f7, 0x73ce}, + {0x98f8, 0xbbfd}, + {0x98f9, 0x98e9}, + {0x98fa, 0x5164}, + {0x98fb, 0x4661}, + {0x98fc, 0x9d25}, + {0x98fd, 0x7ee1}, + {0x98fe, 0x9aa8}, + {0x9940, 0x6df9}, + {0x9941, 0x9c99}, + {0x9942, 0x630e}, + {0x9943, 0x6460}, + {0x9944, 0x853d}, + {0x9945, 0xa19e}, + {0x9946, 0x84a5}, + {0x9947, 0x929e}, + {0x9948, 0x9ff5}, + {0x9949, 0xbdb6}, + {0x994a, 0x54f8}, + {0x994b, 0x8e8e}, + {0x994c, 0x90e5}, + {0x994d, 0x5ef2}, + {0x994e, 0x8bfa}, + {0x994f, 0x5a39}, + {0x9950, 0x796c}, + {0x9951, 0x73e2}, + {0x9952, 0x5845}, + {0x9953, 0xa710}, + {0x9954, 0x965a}, + {0x9955, 0xc630}, + {0x9956, 0x9346}, + {0x9957, 0x650a}, + {0x9958, 0x503e}, + {0x9959, 0x6af4}, + {0x995a, 0x67d2}, + {0x995b, 0x484e}, + {0x995c, 0x4bfe}, + {0x995d, 0x97ee}, + {0x995e, 0x6814}, + {0x995f, 0x7836}, + {0x9960, 0x82d2}, + {0x9961, 0xb652}, + {0x9962, 0x631a}, + {0x9963, 0x9461}, + {0x9964, 0xc756}, + {0x9965, 0xadee}, + {0x9966, 0x4666}, + {0x9967, 0x57ec}, + {0x9968, 0x6c89}, + {0x9969, 0xc75a}, + {0x996a, 0xb54e}, + {0x996b, 0x89b8}, + {0x996c, 0x5566}, + {0x996d, 0x62b2}, + {0x996e, 0x4d1e}, + {0x996f, 0x65d4}, + {0x9970, 0x9b24}, + {0x9971, 0x88e8}, + {0x9972, 0x46ba}, + {0x9973, 0x48a2}, + {0x9974, 0xc47e}, + {0x9975, 0x631c}, + {0x9976, 0x650c}, + {0x9977, 0x69de}, + {0x9978, 0x6680}, + {0x9979, 0x977a}, + {0x997a, 0x675c}, + {0x997b, 0x8c9c}, + {0x997c, 0x4d6a}, + {0x997d, 0xb412}, + {0x997e, 0x40a5}, + {0x9980, 0x99ce}, + {0x9981, 0x9538}, + {0x9982, 0x75e8}, + {0x9983, 0xb62a}, + {0x9984, 0x9da8}, + {0x9985, 0x9c3d}, + {0x9986, 0x7ffd}, + {0x9987, 0x8a90}, + {0x9988, 0xa0c6}, + {0x9989, 0x4125}, + {0x998a, 0x63de}, + {0x998b, 0x65dd}, + {0x998c, 0x8bb5}, + {0x998d, 0x8392}, + {0x998e, 0x849c}, + {0x998f, 0xb34d}, + {0x9990, 0x586d}, + {0x9991, 0x67e5}, + {0x9992, 0xb684}, + {0x9993, 0x850a}, + {0x9994, 0x8e48}, + {0x9995, 0xb080}, + {0x9996, 0x8a91}, + {0x9997, 0x7fe1}, + {0x9998, 0xbf89}, + {0x9999, 0x5c25}, + {0x999a, 0x4989}, + {0x999b, 0x6479}, + {0x999c, 0x715e}, + {0x999d, 0x8910}, + {0x999e, 0x4dbe}, + {0x999f, 0x4885}, + {0x99a0, 0x58ea}, + {0x99a1, 0x8000}, + {0x99a2, 0xb808}, + {0x99a3, 0xc2ae}, + {0x99a4, 0x623c}, + {0x99a5, 0x8bb9}, + {0x99a6, 0x744d}, + {0x99a7, 0x7419}, + {0x99a8, 0x9309}, + {0x99a9, 0x7ab5}, + {0x99aa, 0x75f4}, + {0x99ab, 0x4afa}, + {0x99ac, 0x7c7d}, + {0x99ad, 0x8076}, + {0x99ae, 0x6330}, + {0x99af, 0x8590}, + {0x99b0, 0x7c34}, + {0x99b1, 0xc29d}, + {0x99b2, 0x584d}, + {0x99b3, 0x50a2}, + {0x99b4, 0xbb22}, + {0x99b5, 0x7602}, + {0x99b6, 0x54ad}, + {0x99b7, 0xc596}, + {0x99b8, 0x9a35}, + {0x99b9, 0x7689}, + {0x99ba, 0x685e}, + {0x99bb, 0x488a}, + {0x99bc, 0x8e5d}, + {0x99bd, 0xc3cd}, + {0x99be, 0x7a7d}, + {0x99bf, 0xb021}, + {0x99c0, 0x7610}, + {0x99c1, 0xc3ce}, + {0x99c2, 0x4638}, + {0x99c3, 0x69c8}, + {0x99c4, 0x52b8}, + {0x99c5, 0x9a48}, + {0x99c6, 0x6122}, + {0x99c7, 0x845e}, + {0x99c8, 0xba78}, + {0x99c9, 0x79be}, + {0x99ca, 0x7261}, + {0x99cb, 0x68aa}, + {0x99cc, 0xa8e5}, + {0x99cd, 0x5bc8}, + {0x99ce, 0x6cbc}, + {0x99cf, 0xaa39}, + {0x99d0, 0x78e1}, + {0x99d1, 0xb6d5}, + {0x99d2, 0x6709}, + {0x99d3, 0xb65e}, + {0x99d4, 0xb856}, + {0x99d5, 0xb72d}, + {0x99d6, 0xa978}, + {0x99d7, 0x84f1}, + {0x99d8, 0x4209}, + {0x99d9, 0x4489}, + {0x99da, 0x72f0}, + {0x99db, 0x6cbe}, + {0x99dc, 0x98a2}, + {0x99dd, 0x9571}, + {0x99de, 0xc75e}, + {0x99df, 0x4aae}, + {0x99e0, 0x903a}, + {0x99e1, 0x8fb0}, + {0x99e2, 0x432e}, + {0x99e3, 0x6c0d}, + {0x99e4, 0xba82}, + {0x99e5, 0x7bda}, + {0x99e6, 0x7631}, + {0x99e7, 0x4afd}, + {0x99e8, 0x7b68}, + {0x99e9, 0x4d00}, + {0x99ea, 0x6e20}, + {0x99eb, 0xb030}, + {0x99ec, 0x7325}, + {0x99ed, 0x72f9}, + {0x99ee, 0xc3f9}, + {0x99ef, 0x742c}, + {0x99f0, 0x7550}, + {0x99f1, 0x3ce9}, + {0x99f2, 0x82c4}, + {0x99f3, 0xba8d}, + {0x99f4, 0x78ed}, + {0x99f5, 0x5b7c}, + {0x99f6, 0x6130}, + {0x99f7, 0x8b7a}, + {0x99f8, 0xacc5}, + {0x99f9, 0x4558}, + {0x99fa, 0x48b6}, + {0x99fb, 0x8b10}, + {0x99fc, 0x6ec1}, + {0x99fd, 0xb495}, + {0x99fe, 0x6dae}, + {0x9a40, 0xa742}, + {0x9a41, 0xad44}, + {0x9a42, 0x5e29}, + {0x9a43, 0x7184}, + {0x9a44, 0x7346}, + {0x9a45, 0x70cc}, + {0x9a46, 0x98fd}, + {0x9a47, 0x3b3a}, + {0x9a48, 0xacd9}, + {0x9a49, 0x4756}, + {0x9a4a, 0x8df4}, + {0x9a4b, 0x6ee5}, + {0x9a4c, 0x70ce}, + {0x9a4d, 0x6ee9}, + {0x9a4e, 0x490d}, + {0x9a4f, 0x5ac0}, + {0x9a50, 0xb5c4}, + {0x9a51, 0xb934}, + {0x9a52, 0xaa0c}, + {0x9a53, 0xb2d4}, + {0x9a54, 0xa50c}, + {0x9a55, 0x9cde}, + {0x9a56, 0x6aaa}, + {0x9a57, 0x8585}, + {0x9a58, 0x6001}, + {0x9a59, 0x9e6a}, + {0x9a5a, 0x6131}, + {0x9a5b, 0xacec}, + {0x9a5c, 0x86cc}, + {0x9a5d, 0xa711}, + {0x9a5e, 0xaa82}, + {0x9a5f, 0xacf1}, + {0x9a60, 0xffff6b5a}, + {0x9a61, 0x76b6}, + {0x9a62, 0x48dd}, + {0x9a63, 0xb550}, + {0x9a64, 0x52b5}, + {0x9a65, 0xb95e}, + {0x9a66, 0x49e5}, + {0x9a67, 0x613d}, + {0x9a68, 0x4255}, + {0x9a69, 0x4256}, + {0x9a6a, 0x6cd5}, + {0x9a6b, 0x8bdd}, + {0x9a6c, 0x4718}, + {0x9a6d, 0x939e}, + {0x9a6e, 0x4758}, + {0x9a6f, 0x93a5}, + {0x9a70, 0xc2fe}, + {0x9a71, 0x9b0c}, + {0x9a72, 0x9b0d}, + {0x9a73, 0x75ce}, + {0x9a74, 0xbd72}, + {0x9a75, 0xb948}, + {0x9a76, 0x75de}, + {0x9a77, 0x5bc4}, + {0x9a78, 0x524c}, + {0x9a79, 0xbf98}, + {0x9a7a, 0x8155}, + {0x9a7b, 0x8156}, + {0x9a7c, 0xb225}, + {0x9a7d, 0x9611}, + {0x9a7e, 0xad45}, + {0x9a80, 0x6db8}, + {0x9a81, 0x8b59}, + {0x9a82, 0x8efd}, + {0x9a83, 0x9a68}, + {0x9a84, 0x8e24}, + {0x9a85, 0xb4d0}, + {0x9a86, 0xa034}, + {0x9a87, 0xb2c2}, + {0x9a88, 0x42d9}, + {0x9a89, 0x6356}, + {0x9a8a, 0x4f6a}, + {0x9a8b, 0xc030}, + {0x9a8c, 0xbc19}, + {0x9a8d, 0xa414}, + {0x9a8e, 0x484c}, + {0x9a8f, 0x9e6c}, + {0x9a90, 0x6aac}, + {0x9a91, 0x94d1}, + {0x9a92, 0xb624}, + {0x9a93, 0x4f04}, + {0x9a94, 0x6c01}, + {0x9a95, 0x71a1}, + {0x9a96, 0x4b06}, + {0x9a97, 0x4c7a}, + {0x9a98, 0x50e5}, + {0x9a99, 0x6815}, + {0x9a9a, 0x76e2}, + {0x9a9b, 0x4110}, + {0x9a9c, 0x50a4}, + {0x9a9d, 0x66fe}, + {0x9a9e, 0x670a}, + {0x9a9f, 0xc439}, + {0x9aa0, 0x8e4e}, + {0x9aa1, 0xb4aa}, + {0x9aa2, 0x93e0}, + {0x9aa3, 0x6f88}, + {0x9aa4, 0x8d28}, + {0x9aa5, 0xb1e2}, + {0x9aa6, 0xaf11}, + {0x9aa7, 0x62ea}, + {0x9aa8, 0x9084}, + {0x9aa9, 0x6446}, + {0x9aaa, 0x8586}, + {0x9aab, 0x62b0}, + {0x9aac, 0x5108}, + {0x9aad, 0xb34e}, + {0x9aae, 0xaa42}, + {0x9aaf, 0x5b32}, + {0x9ab0, 0x7e61}, + {0x9ab1, 0x3b51}, + {0x9ab2, 0x69d8}, + {0x9ab3, 0x8799}, + {0x9ab4, 0x446e}, + {0x9ab5, 0xffff6bdc}, + {0x9ab6, 0xffff6bdd}, + {0x9ab7, 0x8795}, + {0x9ab8, 0x7796}, + {0x9ab9, 0x6614}, + {0x9aba, 0x930c}, + {0x9abb, 0x8200}, + {0x9abc, 0xa194}, + {0x9abd, 0xaece}, + {0x9abe, 0x530d}, + {0x9abf, 0x91a8}, + {0x9ac0, 0xa8c0}, + {0x9ac1, 0x6c60}, + {0x9ac2, 0x8efe}, + {0x9ac3, 0x5060}, + {0x9ac4, 0xffff6bee}, + {0x9ac5, 0x869a}, + {0x9ac6, 0x6c6d}, + {0x9ac7, 0x519a}, + {0x9ac8, 0x3edc}, + {0x9ac9, 0x9331}, + {0x9aca, 0x7e0a}, + {0x9acb, 0x9311}, + {0x9acc, 0x97e0}, + {0x9acd, 0xa1aa}, + {0x9ace, 0x5e70}, + {0x9acf, 0x9bea}, + {0x9ad0, 0x9334}, + {0x9ad1, 0x7c30}, + {0x9ad2, 0x81d0}, + {0x9ad3, 0x74e0}, + {0x9ad4, 0x9ff6}, + {0x9ad5, 0x91d2}, + {0x9ad6, 0xbe88}, + {0x9ad7, 0x938d}, + {0x9ad8, 0xbe89}, + {0x9ad9, 0x7efa}, + {0x9ada, 0x7ab6}, + {0x9adb, 0x4f8a}, + {0x9adc, 0x6d91}, + {0x9add, 0x8af0}, + {0x9ade, 0xb141}, + {0x9adf, 0x8331}, + {0x9ae0, 0x4106}, + {0x9ae1, 0x9589}, + {0x9ae2, 0x8b0c}, + {0x9ae3, 0xa609}, + {0x9ae4, 0x8e08}, + {0x9ae5, 0xaf8c}, + {0x9ae6, 0x4fee}, + {0x9ae7, 0xb189}, + {0x9ae8, 0xbbf6}, + {0x9ae9, 0xc0f4}, + {0x9aea, 0x411a}, + {0x9aeb, 0x4d02}, + {0x9aec, 0x98c6}, + {0x9aed, 0x73f0}, + {0x9aee, 0x8399}, + {0x9aef, 0x53d2}, + {0x9af0, 0x5bd0}, + {0x9af1, 0x40d6}, + {0x9af2, 0xbd91}, + {0x9af3, 0x8009}, + {0x9af4, 0x4eec}, + {0x9af5, 0xbb69}, + {0x9af6, 0x491c}, + {0x9af7, 0xa212}, + {0x9af8, 0x53d8}, + {0x9af9, 0x4c0e}, + {0x9afa, 0xa139}, + {0x9afb, 0x7d75}, + {0x9afc, 0x8ed6}, + {0x9afd, 0x889d}, + {0x9afe, 0x8b6e}, + {0x9b40, 0xa4f1}, + {0x9b41, 0xa4f2}, + {0x9b42, 0xa09d}, + {0x9b43, 0x6bca}, + {0x9b44, 0xc12d}, + {0x9b45, 0xc1bc}, + {0x9b46, 0x8b76}, + {0x9b47, 0x6b0c}, + {0x9b48, 0x6b0d}, + {0x9b49, 0x92a4}, + {0x9b4a, 0x6e30}, + {0x9b4b, 0x5f28}, + {0x9b4c, 0x9046}, + {0x9b4d, 0x4021}, + {0x9b4e, 0x57d8}, + {0x9b4f, 0xc2c8}, + {0x9b50, 0x8628}, + {0x9b51, 0x6d98}, + {0x9b52, 0x605d}, + {0x9b53, 0x84bc}, + {0x9b54, 0xad2d}, + {0x9b55, 0xad35}, + {0x9b56, 0xbbda}, + {0x9b57, 0xb03d}, + {0x9b58, 0x4ca2}, + {0x9b59, 0xb816}, + {0x9b5a, 0x607d}, + {0x9b5b, 0x63ae}, + {0x9b5c, 0x84c1}, + {0x9b5d, 0x7e21}, + {0x9b5e, 0x7fa2}, + {0x9b5f, 0x47ac}, + {0x9b60, 0x862a}, + {0x9b61, 0x3efc}, + {0x9b62, 0xc1bd}, + {0x9b63, 0x8611}, + {0x9b64, 0xc4f9}, + {0x9b65, 0xbc5c}, + {0x9b66, 0x790c}, + {0x9b67, 0xbd4d}, + {0x9b68, 0x5535}, + {0x9b69, 0x7e7e}, + {0x9b6a, 0xbc60}, + {0x9b6b, 0xa142}, + {0x9b6c, 0x756a}, + {0x9b6d, 0x7f7e}, + {0x9b6e, 0xb370}, + {0x9b6f, 0x5335}, + {0x9b70, 0x9e9a}, + {0x9b71, 0x9921}, + {0x9b72, 0x7105}, + {0x9b73, 0x6b79}, + {0x9b74, 0x6c1d}, + {0x9b75, 0xb460}, + {0x9b76, 0x6610}, + {0x9b77, 0xc2d1}, + {0x9b78, 0x62c0}, + {0x9b79, 0x3e7d}, + {0x9b7a, 0xbd50}, + {0x9b7b, 0xc3d6}, + {0x9b7c, 0xb7f4}, + {0x9b7d, 0x5a16}, + {0x9b7e, 0x5fe0}, + {0x9b80, 0x86dd}, + {0x9b81, 0x4a32}, + {0x9b82, 0x4710}, + {0x9b83, 0x9a52}, + {0x9b84, 0x4641}, + {0x9b85, 0x9978}, + {0x9b86, 0x6c5a}, + {0x9b87, 0xae72}, + {0x9b88, 0x960e}, + {0x9b89, 0x6d9d}, + {0x9b8a, 0x5621}, + {0x9b8b, 0x6530}, + {0x9b8c, 0x5b36}, + {0x9b8d, 0x4ca4}, + {0x9b8e, 0xb5f5}, + {0x9b8f, 0xc325}, + {0x9b90, 0xb2b0}, + {0x9b91, 0x6258}, + {0x9b92, 0xbca2}, + {0x9b93, 0x4686}, + {0x9b94, 0xa306}, + {0x9b95, 0x5fc2}, + {0x9b96, 0x6789}, + {0x9b97, 0x998d}, + {0x9b98, 0x52e8}, + {0x9b99, 0xac0e}, + {0x9b9a, 0x5630}, + {0x9b9b, 0x9394}, + {0x9b9c, 0xc1cc}, + {0x9b9d, 0xb666}, + {0x9b9e, 0xa528}, + {0x9b9f, 0x6f3a}, + {0x9ba0, 0xffff6d1c}, + {0x9ba1, 0x3bec}, + {0x9ba2, 0x9e52}, + {0x9ba3, 0x81b4}, + {0x9ba4, 0x7466}, + {0x9ba5, 0xb325}, + {0x9ba6, 0x7f82}, + {0x9ba7, 0x9002}, + {0x9ba8, 0x8921}, + {0x9ba9, 0xaa49}, + {0x9baa, 0xab0e}, + {0x9bab, 0x9a56}, + {0x9bac, 0x70e4}, + {0x9bad, 0x8d5a}, + {0x9bae, 0x6ccc}, + {0x9baf, 0x88bd}, + {0x9bb0, 0xac55}, + {0x9bb1, 0xc206}, + {0x9bb2, 0x5b6d}, + {0x9bb3, 0x80e9}, + {0x9bb4, 0xa4fc}, + {0x9bb5, 0x8f49}, + {0x9bb6, 0xb479}, + {0x9bb7, 0x6b30}, + {0x9bb8, 0x966e}, + {0x9bb9, 0x8741}, + {0x9bba, 0x449c}, + {0x9bbb, 0x6a82}, + {0x9bbc, 0x77ad}, + {0x9bbd, 0x8ef4}, + {0x9bbe, 0xa354}, + {0x9bbf, 0x5d18}, + {0x9bc0, 0x7d88}, + {0x9bc1, 0xb828}, + {0x9bc2, 0x41a9}, + {0x9bc3, 0x5056}, + {0x9bc4, 0x5f42}, + {0x9bc5, 0xb496}, + {0x9bc6, 0xb73c}, + {0x9bc7, 0x7306}, + {0x9bc8, 0x5d41}, + {0x9bc9, 0x7534}, + {0x9bca, 0x5922}, + {0x9bcb, 0x76c8}, + {0x9bcc, 0x4995}, + {0x9bcd, 0x557e}, + {0x9bce, 0xb498}, + {0x9bcf, 0x9fce}, + {0x9bd0, 0x7399}, + {0x9bd1, 0x661c}, + {0x9bd2, 0x47b5}, + {0x9bd3, 0x6b84}, + {0x9bd4, 0x9ace}, + {0x9bd5, 0x4649}, + {0x9bd6, 0x86b6}, + {0x9bd7, 0xa909}, + {0x9bd8, 0x95ee}, + {0x9bd9, 0x71fc}, + {0x9bda, 0x88a5}, + {0x9bdb, 0x5d5a}, + {0x9bdc, 0x6ad9}, + {0x9bdd, 0x83d0}, + {0x9bde, 0xa048}, + {0x9bdf, 0xaa70}, + {0x9be0, 0x9f9c}, + {0x9be1, 0x5219}, + {0x9be2, 0xa10c}, + {0x9be3, 0x758c}, + {0x9be4, 0x98cd}, + {0x9be5, 0x998e}, + {0x9be6, 0x7469}, + {0x9be7, 0x98ce}, + {0x9be8, 0x508a}, + {0x9be9, 0xbbe6}, + {0x9bea, 0x5ee1}, + {0x9beb, 0xac34}, + {0x9bec, 0x97a0}, + {0x9bed, 0x49d4}, + {0x9bee, 0xbf19}, + {0x9bef, 0x7005}, + {0x9bf0, 0xa240}, + {0x9bf1, 0xa14c}, + {0x9bf2, 0x4fea}, + {0x9bf3, 0xa4ac}, + {0x9bf4, 0x6c38}, + {0x9bf5, 0x9550}, + {0x9bf6, 0x76f4}, + {0x9bf7, 0x634e}, + {0x9bf8, 0x9bd9}, + {0x9bf9, 0x8d61}, + {0x9bfa, 0x4d81}, + {0x9bfb, 0x6d65}, + {0x9bfc, 0x5a60}, + {0x9bfd, 0x5c9d}, + {0x9bfe, 0x5d64}, + {0x9c40, 0xc335}, + {0x9c41, 0x8736}, + {0x9c42, 0x5e00}, + {0x9c43, 0x44e9}, + {0x9c44, 0x89e0}, + {0x9c45, 0x5409}, + {0x9c46, 0x471c}, + {0x9c47, 0x7ad6}, + {0x9c48, 0x6c65}, + {0x9c49, 0x746d}, + {0x9c4a, 0xbfec}, + {0x9c4b, 0x88ca}, + {0x9c4c, 0x9ed1}, + {0x9c4d, 0xb9f4}, + {0x9c4e, 0x835a}, + {0x9c4f, 0x7ad8}, + {0x9c50, 0x7fb2}, + {0x9c51, 0x6b40}, + {0x9c52, 0x7891}, + {0x9c53, 0x7b98}, + {0x9c54, 0x8f89}, + {0x9c55, 0xb9f5}, + {0x9c56, 0x83d2}, + {0x9c57, 0x4064}, + {0x9c58, 0x5ff1}, + {0x9c59, 0xbab0}, + {0x9c5a, 0x7280}, + {0x9c5b, 0x8e09}, + {0x9c5c, 0x8c14}, + {0x9c5d, 0xc1d2}, + {0x9c5e, 0xb644}, + {0x9c5f, 0x41b8}, + {0x9c60, 0x3e81}, + {0x9c61, 0xbaa8}, + {0x9c62, 0xa472}, + {0x9c63, 0x92d5}, + {0x9c64, 0x5442}, + {0x9c65, 0xbaa9}, + {0x9c66, 0x6f94}, + {0x9c67, 0x658c}, + {0x9c68, 0x9551}, + {0x9c69, 0x939a}, + {0x9c6a, 0x8a46}, + {0x9c6b, 0x87ea}, + {0x9c6c, 0xa61e}, + {0x9c6d, 0xbaac}, + {0x9c6e, 0x91fa}, + {0x9c6f, 0x61ad}, + {0x9c70, 0x673d}, + {0x9c71, 0x8525}, + {0x9c72, 0x8f08}, + {0x9c73, 0x9f84}, + {0x9c74, 0x5550}, + {0x9c75, 0xa4ad}, + {0x9c76, 0x9e0e}, + {0x9c77, 0xa2d4}, + {0x9c78, 0x922a}, + {0x9c79, 0x4376}, + {0x9c7a, 0x5e5a}, + {0x9c7b, 0xb062}, + {0x9c7c, 0x5f55}, + {0x9c7d, 0x7f8e}, + {0x9c7e, 0x7db8}, + {0x9c80, 0xb698}, + {0x9c81, 0xb064}, + {0x9c82, 0x5f10}, + {0x9c83, 0x9640}, + {0x9c84, 0x7e6d}, + {0x9c85, 0xbc8e}, + {0x9c86, 0x6365}, + {0x9c87, 0x827d}, + {0x9c88, 0x5bf0}, + {0x9c89, 0x4781}, + {0x9c8a, 0x5286}, + {0x9c8b, 0x76d1}, + {0x9c8c, 0x8b18}, + {0x9c8d, 0x8b19}, + {0x9c8e, 0x7e3d}, + {0x9c8f, 0x9ead}, + {0x9c90, 0x4ab5}, + {0x9c91, 0xa318}, + {0x9c92, 0x42c4}, + {0x9c93, 0x62da}, + {0x9c94, 0x41be}, + {0x9c95, 0xad18}, + {0x9c96, 0x64dd}, + {0x9c97, 0x6735}, + {0x9c98, 0x559c}, + {0x9c99, 0xb4d1}, + {0x9c9a, 0xb66e}, + {0x9c9b, 0x96c8}, + {0x9c9c, 0x6949}, + {0x9c9d, 0xc01a}, + {0x9c9e, 0x9cd4}, + {0x9c9f, 0xb921}, + {0x9ca0, 0x3f6a}, + {0x9ca1, 0x80ce}, + {0x9ca2, 0x9676}, + {0x9ca3, 0xa04d}, + {0x9ca4, 0x9620}, + {0x9ca5, 0xb7ce}, + {0x9ca6, 0x6c6e}, + {0x9ca7, 0x502a}, + {0x9ca8, 0xa0d4}, + {0x9ca9, 0x68d1}, + {0x9caa, 0x8f09}, + {0x9cab, 0x9ce6}, + {0x9cac, 0x79a0}, + {0x9cad, 0x63c5}, + {0x9cae, 0xbaee}, + {0x9caf, 0x82ac}, + {0x9cb0, 0x3d5d}, + {0x9cb1, 0xb874}, + {0x9cb2, 0x9016}, + {0x9cb3, 0xc4ce}, + {0x9cb4, 0x7728}, + {0x9cb5, 0x4452}, + {0x9cb6, 0xa87e}, + {0x9cb7, 0x499e}, + {0x9cb8, 0x5ea6}, + {0x9cb9, 0xc5d1}, + {0x9cba, 0x7d39}, + {0x9cbb, 0xb6fa}, + {0x9cbc, 0x7246}, + {0x9cbd, 0x5551}, + {0x9cbe, 0x7a05}, + {0x9cbf, 0xa319}, + {0x9cc0, 0xa7bd}, + {0x9cc1, 0xb6fc}, + {0x9cc2, 0x88fc}, + {0x9cc3, 0x6a98}, + {0x9cc4, 0x5c10}, + {0x9cc5, 0x9b92}, + {0x9cc6, 0xbb04}, + {0x9cc7, 0x7661}, + {0x9cc8, 0xb23c}, + {0x9cc9, 0x7ed8}, + {0x9cca, 0xc52c}, + {0x9ccb, 0x46ac}, + {0x9ccc, 0x9c56}, + {0x9ccd, 0x4bdd}, + {0x9cce, 0xa1c5}, + {0x9ccf, 0x59cd}, + {0x9cd0, 0x9371}, + {0x9cd1, 0xbddd}, + {0x9cd2, 0x96cd}, + {0x9cd3, 0x7bb1}, + {0x9cd4, 0x7cb9}, + {0x9cd5, 0xa2dd}, + {0x9cd6, 0xbc90}, + {0x9cd7, 0xa5ba}, + {0x9cd8, 0xa415}, + {0x9cd9, 0x8c6d}, + {0x9cda, 0xbd64}, + {0x9cdb, 0x967a}, + {0x9cdc, 0x3b46}, + {0x9cdd, 0xbbf2}, + {0x9cde, 0xb5c5}, + {0x9cdf, 0x9a7e}, + {0x9ce0, 0x9ba6}, + {0x9ce1, 0x967c}, + {0x9ce2, 0x3b3c}, + {0x9ce3, 0x861d}, + {0x9ce4, 0x48d1}, + {0x9ce5, 0xa492}, + {0x9ce6, 0x431c}, + {0x9ce7, 0x8068}, + {0x9ce8, 0x58d0}, + {0x9ce9, 0x5e05}, + {0x9cea, 0x6242}, + {0x9ceb, 0xa754}, + {0x9cec, 0x4df8}, + {0x9ced, 0xc255}, + {0x9cee, 0xb6aa}, + {0x9cef, 0x699a}, + {0x9cf0, 0x58a0}, + {0x9cf1, 0x9ad6}, + {0x9cf2, 0x6912}, + {0x9cf3, 0x62ed}, + {0x9cf4, 0xb616}, + {0x9cf5, 0x583d}, + {0x9cf6, 0x9898}, + {0x9cf7, 0x49a1}, + {0x9cf8, 0xaa79}, + {0x9cf9, 0xba20}, + {0x9cfa, 0xac9a}, + {0x9cfb, 0x609c}, + {0x9cfc, 0x3f79}, + {0x9cfd, 0x406c}, + {0x9cfe, 0xc268}, + {0x9d40, 0x6854}, + {0x9d41, 0x7036}, + {0x9d42, 0x95fe}, + {0x9d43, 0x94cd}, + {0x9d44, 0x7fc8}, + {0x9d45, 0x3c30}, + {0x9d46, 0x7aa5}, + {0x9d47, 0x6068}, + {0x9d48, 0xb7fd}, + {0x9d49, 0x44ad}, + {0x9d4a, 0x53f2}, + {0x9d4b, 0xb789}, + {0x9d4c, 0x5c3e}, + {0x9d4d, 0x7d3d}, + {0x9d4e, 0x8e44}, + {0x9d4f, 0xb93e}, + {0x9d50, 0x65b4}, + {0x9d51, 0xaf56}, + {0x9d52, 0x4571}, + {0x9d53, 0xa708}, + {0x9d54, 0x65b5}, + {0x9d55, 0x7a35}, + {0x9d56, 0x79a6}, + {0x9d57, 0x6a5d}, + {0x9d58, 0x5c8e}, + {0x9d59, 0x4a9c}, + {0x9d5a, 0xc192}, + {0x9d5b, 0x5788}, + {0x9d5c, 0x8c92}, + {0x9d5d, 0x6919}, + {0x9d5e, 0x4a6c}, + {0x9d5f, 0x49a6}, + {0x9d60, 0xa0c0}, + {0x9d61, 0x85ae}, + {0x9d62, 0x9dd2}, + {0x9d63, 0xb2a1}, + {0x9d64, 0xa6d9}, + {0x9d65, 0x7fc9}, + {0x9d66, 0x9d14}, + {0x9d67, 0x94ce}, + {0x9d68, 0x5d7c}, + {0x9d69, 0x7662}, + {0x9d6a, 0xa1c6}, + {0x9d6b, 0x472d}, + {0x9d6c, 0x57b5}, + {0x9d6d, 0x870d}, + {0x9d6e, 0xc648}, + {0x9d6f, 0x6f0e}, + {0x9d70, 0x86ee}, + {0x9d71, 0xbf1c}, + {0x9d72, 0x47d6}, + {0x9d73, 0xad74}, + {0x9d74, 0x63a9}, + {0x9d75, 0x67bd}, + {0x9d76, 0xafba}, + {0x9d77, 0x4944}, + {0x9d78, 0x7744}, + {0x9d79, 0x4b25}, + {0x9d7a, 0x9e26}, + {0x9d7b, 0x6809}, + {0x9d7c, 0x4a9d}, + {0x9d7d, 0xb74d}, + {0x9d7e, 0x5f69}, + {0x9d80, 0xabb2}, + {0x9d81, 0x9865}, + {0x9d82, 0x5b45}, + {0x9d83, 0x4a9e}, + {0x9d84, 0x71d2}, + {0x9d85, 0xad75}, + {0x9d86, 0xc269}, + {0x9d87, 0x87f5}, + {0x9d88, 0x6de8}, + {0x9d89, 0x6920}, + {0x9d8a, 0x8901}, + {0x9d8b, 0x4d15}, + {0x9d8c, 0x6308}, + {0x9d8d, 0x69b1}, + {0x9d8e, 0xa578}, + {0x9d8f, 0x85c4}, + {0x9d90, 0x64fa}, + {0x9d91, 0xa326}, + {0x9d92, 0x9aa0}, + {0x9d93, 0x8c1e}, + {0x9d94, 0xa762}, + {0x9d95, 0xa764}, + {0x9d96, 0x9b62}, + {0x9d97, 0x518a}, + {0x9d98, 0x80dd}, + {0x9d99, 0x92c8}, + {0x9d9a, 0x9a99}, + {0x9d9b, 0xc035}, + {0x9d9c, 0x4aa1}, + {0x9d9d, 0xb500}, + {0x9d9e, 0xc278}, + {0x9d9f, 0xa208}, + {0x9da0, 0x9c71}, + {0x9da1, 0xaee9}, + {0x9da2, 0x7199}, + {0x9da3, 0xb280}, + {0x9da4, 0xa084}, + {0x9da5, 0x92ed}, + {0x9da6, 0x5ecc}, + {0x9da7, 0x3fa9}, + {0x9da8, 0x4465}, + {0x9da9, 0x9819}, + {0x9daa, 0x89b1}, + {0x9dab, 0x7800}, + {0x9dac, 0xa328}, + {0x9dad, 0x93b8}, + {0x9dae, 0x93a9}, + {0x9daf, 0x46b6}, + {0x9db0, 0x6b94}, + {0x9db1, 0x6109}, + {0x9db2, 0x688c}, + {0x9db3, 0x73e1}, + {0x9db4, 0x4b60}, + {0x9db5, 0x5f86}, + {0x9db6, 0x5d30}, + {0x9db7, 0xbbf9}, + {0x9db8, 0x797a}, + {0x9db9, 0x5f88}, + {0x9dba, 0x5682}, + {0x9dbb, 0x5e0e}, + {0x9dbc, 0x5e71}, + {0x9dbd, 0xa891}, + {0x9dbe, 0x67c5}, + {0x9dbf, 0x945d}, + {0x9dc0, 0xa765}, + {0x9dc1, 0x3c70}, + {0x9dc2, 0x7aa9}, + {0x9dc3, 0x84b0}, + {0x9dc4, 0xb959}, + {0x9dc5, 0x7835}, + {0x9dc6, 0x9635}, + {0x9dc7, 0x4ce8}, + {0x9dc8, 0x61bd}, + {0x9dc9, 0xbd79}, + {0x9dca, 0xab50}, + {0x9dcb, 0xba54}, + {0x9dcc, 0x9775}, + {0x9dcd, 0xae55}, + {0x9dce, 0x78bd}, + {0x9dcf, 0x7d5c}, + {0x9dd0, 0xc5f1}, + {0x9dd1, 0xb795}, + {0x9dd2, 0x6310}, + {0x9dd3, 0x4305}, + {0x9dd4, 0x76e0}, + {0x9dd5, 0x4ede}, + {0x9dd6, 0xb2ea}, + {0x9dd7, 0x6165}, + {0x9dd8, 0xc03a}, + {0x9dd9, 0x7d61}, + {0x9dda, 0x4c96}, + {0x9ddb, 0xb53a}, + {0x9ddc, 0x9b1a}, + {0x9ddd, 0x87f9}, + {0x9dde, 0x6d12}, + {0x9ddf, 0x9bf1}, + {0x9de0, 0x8dcc}, + {0x9de1, 0xc58c}, + {0x9de2, 0x84e5}, + {0x9de3, 0x5c74}, + {0x9de4, 0x6ab2}, + {0x9de5, 0x86ca}, + {0x9de6, 0x93b0}, + {0x9de7, 0x64fc}, + {0x9de8, 0xa3e0}, + {0x9de9, 0x48a0}, + {0x9dea, 0x9bfe}, + {0x9deb, 0x99cc}, + {0x9dec, 0x9fae}, + {0x9ded, 0x93b1}, + {0x9dee, 0xc415}, + {0x9def, 0x7681}, + {0x9df0, 0x7f96}, + {0x9df1, 0x9691}, + {0x9df2, 0x986d}, + {0x9df3, 0x7fd8}, + {0x9df4, 0x84b4}, + {0x9df5, 0xb715}, + {0x9df6, 0xb716}, + {0x9df7, 0x7ef0}, + {0x9df8, 0x6abe}, + {0x9df9, 0x8a8c}, + {0x9dfa, 0x65d5}, + {0x9dfb, 0xc73e}, + {0x9dfc, 0xa4e4}, + {0x9dfd, 0x9d7e}, + {0x9dfe, 0xb658}, + {0x9e40, 0xb5da}, + {0x9e41, 0x5142}, + {0x9e42, 0x4a22}, + {0x9e43, 0x63d9}, + {0x9e44, 0x8e59}, + {0x9e45, 0x7332}, + {0x9e46, 0x6e7e}, + {0x9e47, 0x3b5d}, + {0x9e48, 0xa32c}, + {0x9e49, 0x40f2}, + {0x9e4a, 0x5a85}, + {0x9e4b, 0x8c04}, + {0x9e4c, 0xb718}, + {0x9e4d, 0x40f4}, + {0x9e4e, 0x721d}, + {0x9e4f, 0x54aa}, + {0x9e50, 0x4320}, + {0x9e51, 0x7e1a}, + {0x9e52, 0x67e6}, + {0x9e53, 0xa3a2}, + {0x9e54, 0x7c1d}, + {0x9e55, 0xbcd5}, + {0x9e56, 0x7b31}, + {0x9e57, 0x75e9}, + {0x9e58, 0xb805}, + {0x9e59, 0xb192}, + {0x9e5a, 0x7ab4}, + {0x9e5b, 0x99ad}, + {0x9e5c, 0xc28c}, + {0x9e5d, 0xb766}, + {0x9e5e, 0x50a1}, + {0x9e5f, 0xa2ad}, + {0x9e60, 0x628d}, + {0x9e61, 0xab66}, + {0x9e62, 0x8602}, + {0x9e63, 0x95e1}, + {0x9e64, 0x4081}, + {0x9e65, 0x4474}, + {0x9e66, 0x8074}, + {0x9e67, 0x7944}, + {0x9e68, 0x66f6}, + {0x9e69, 0x93ba}, + {0x9e6a, 0x46be}, + {0x9e6b, 0x5a89}, + {0x9e6c, 0x40fa}, + {0x9e6d, 0x63ea}, + {0x9e6e, 0xa944}, + {0x9e6f, 0x7a75}, + {0x9e70, 0x8df9}, + {0x9e71, 0x91e2}, + {0x9e72, 0x7604}, + {0x9e73, 0x6b61}, + {0x9e74, 0xaa34}, + {0x9e75, 0xb728}, + {0x9e76, 0x9af2}, + {0x9e77, 0xa3a9}, + {0x9e78, 0x6121}, + {0x9e79, 0xae89}, + {0x9e7a, 0xc3ca}, + {0x9e7b, 0x79b5}, + {0x9e7c, 0x72aa}, + {0x9e7d, 0x514a}, + {0x9e7e, 0x53fa}, + {0x9e80, 0x6054}, + {0x9e81, 0x72ac}, + {0x9e82, 0x97f5}, + {0x9e83, 0x78d8}, + {0x9e84, 0xb729}, + {0x9e85, 0x7f98}, + {0x9e86, 0x65f2}, + {0x9e87, 0x76e8}, + {0x9e88, 0x67ea}, + {0x9e89, 0xb6d1}, + {0x9e8a, 0x781a}, + {0x9e8b, 0xb575}, + {0x9e8c, 0x6705}, + {0x9e8d, 0x4485}, + {0x9e8e, 0x4c49}, + {0x9e8f, 0x90ea}, + {0x9e90, 0x6771}, + {0x9e91, 0x72e6}, + {0x9e92, 0x53bc}, + {0x9e93, 0x98be}, + {0x9e94, 0xbac8}, + {0x9e95, 0xc59e}, + {0x9e96, 0x5571}, + {0x9e97, 0x956e}, + {0x9e98, 0x7454}, + {0x9e99, 0x72e8}, + {0x9e9a, 0x4aac}, + {0x9e9b, 0x8fad}, + {0x9e9c, 0xb7a6}, + {0x9e9d, 0x8c06}, + {0x9e9e, 0x5361}, + {0x9e9f, 0x6e14}, + {0x9ea0, 0xb10d}, + {0x9ea1, 0xb732}, + {0x9ea2, 0x92ee}, + {0x9ea3, 0xbce2}, + {0x9ea4, 0x7b69}, + {0x9ea5, 0xb101}, + {0x9ea6, 0x750d}, + {0x9ea7, 0x7f9c}, + {0x9ea8, 0x94be}, + {0x9ea9, 0x9c78}, + {0x9eaa, 0x4cfe}, + {0x9eab, 0x68fe}, + {0x9eac, 0x44c9}, + {0x9ead, 0xb735}, + {0x9eae, 0x5e20}, + {0x9eaf, 0xc3f5}, + {0x9eb0, 0x7339}, + {0x9eb1, 0x72f5}, + {0x9eb2, 0x82cc}, + {0x9eb3, 0xa20d}, + {0x9eb4, 0x7b72}, + {0x9eb5, 0xaef8}, + {0x9eb6, 0xa8f0}, + {0x9eb7, 0xb112}, + {0x9eb8, 0x57f0}, + {0x9eb9, 0xb118}, + {0x9eba, 0xba95}, + {0x9ebb, 0x5b61}, + {0x9ebc, 0xa9d0}, + {0x9ebd, 0xa9d1}, + {0x9ebe, 0x624d}, + {0x9ebf, 0x5f06}, + {0x9ec0, 0xc4a8}, + {0x9ec1, 0xbe26}, + {0x9ec2, 0xab00}, + {0x9ec3, 0x4766}, + {0x9ec4, 0xbc81}, + {0x9ec5, 0x8afe}, + {0x9ec6, 0xc2d2}, + {0x9ec7, 0x54e1}, + {0x9ec8, 0x84c9}, + {0x9ec9, 0xa42d}, + {0x9eca, 0x8968}, + {0x9ecb, 0xb461}, + {0x9ecc, 0x875c}, + {0x9ecd, 0x6ebe}, + {0x9ece, 0x8614}, + {0x9ecf, 0x6ec0}, + {0x9ed0, 0x8656}, + {0x9ed1, 0x81f9}, + {0x9ed2, 0x778a}, + {0x9ed3, 0x5b65}, + {0x9ed4, 0xabbd}, + {0x9ed5, 0x5b66}, + {0x9ed6, 0x5b68}, + {0x9ed7, 0x4009}, + {0x9ed8, 0x4bce}, + {0x9ed9, 0xa7a4}, + {0x9eda, 0xc0c2}, + {0x9edb, 0xc3d9}, + {0x9edc, 0x6f92}, + {0x9edd, 0xbf48}, + {0x9ede, 0x5631}, + {0x9edf, 0x3cb5}, + {0x9ee0, 0xab10}, + {0x9ee1, 0xab11}, + {0x9ee2, 0x7904}, + {0x9ee3, 0xc536}, + {0x9ee4, 0x866a}, + {0x9ee5, 0x9c25}, + {0x9ee6, 0xb17c}, + {0x9ee7, 0x9fb2}, + {0x9ee8, 0x946e}, + {0x9ee9, 0xa308}, + {0x9eea, 0x622c}, + {0x9eeb, 0xc328}, + {0x9eec, 0x68bd}, + {0x9eed, 0xad46}, + {0x9eee, 0x5eea}, + {0x9eef, 0x904a}, + {0x9ef0, 0x619a}, + {0x9ef1, 0xac70}, + {0x9ef2, 0xac71}, + {0x9ef3, 0xa8c1}, + {0x9ef4, 0xb5f2}, + {0x9ef5, 0xa500}, + {0x9ef6, 0xc32c}, + {0x9ef7, 0xb1d5}, + {0x9ef8, 0x9735}, + {0x9ef9, 0xa2be}, + {0x9efa, 0x9fd0}, + {0x9efb, 0xae7a}, + {0x9efc, 0xbc8c}, + {0x9efd, 0x6ec2}, + {0x9efe, 0xa7ac}, + {0x9f40, 0xadf8}, + {0x9f41, 0xc0c6}, + {0x9f42, 0x8928}, + {0x9f43, 0x629d}, + {0x9f44, 0x5b71}, + {0x9f45, 0x45b0}, + {0x9f46, 0x625e}, + {0x9f47, 0x45f2}, + {0x9f48, 0xffff70ea}, + {0x9f49, 0x77b0}, + {0x9f4a, 0x5650}, + {0x9f4b, 0x6b85}, + {0x9f4c, 0x45b1}, + {0x9f4d, 0x89a9}, + {0x9f4e, 0x9f66}, + {0x9f4f, 0xc55e}, + {0x9f50, 0x9f9e}, + {0x9f51, 0x5cd4}, + {0x9f52, 0x7374}, + {0x9f53, 0x9444}, + {0x9f54, 0xad50}, + {0x9f55, 0x4779}, + {0x9f56, 0x91ac}, + {0x9f57, 0x601c}, + {0x9f58, 0xa621}, + {0x9f59, 0x97d0}, + {0x9f5a, 0x5ea5}, + {0x9f5b, 0xae90}, + {0x9f5c, 0x706d}, + {0x9f5d, 0x6db9}, + {0x9f5e, 0xa9f2}, + {0x9f5f, 0xa622}, + {0x9f60, 0xc4e1}, + {0x9f61, 0x6e64}, + {0x9f62, 0x4e56}, + {0x9f63, 0xab21}, + {0x9f64, 0x64d1}, + {0x9f65, 0xffff7111}, + {0x9f66, 0x7c46}, + {0x9f67, 0xb0b8}, + {0x9f68, 0x6c66}, + {0x9f69, 0x7845}, + {0x9f6a, 0x71c8}, + {0x9f6b, 0x637d}, + {0x9f6c, 0xa110}, + {0x9f6d, 0xa638}, + {0x9f6e, 0x4b42}, + {0x9f6f, 0xa532}, + {0x9f70, 0x5f11}, + {0x9f71, 0x6cf0}, + {0x9f72, 0x56b4}, + {0x9f73, 0xa4d8}, + {0x9f74, 0x4a65}, + {0x9f75, 0x559d}, + {0x9f76, 0x88d2}, + {0x9f77, 0x8e78}, + {0x9f78, 0x92d6}, + {0x9f79, 0xa639}, + {0x9f7a, 0x8e79}, + {0x9f7b, 0xabc9}, + {0x9f7c, 0xb4d2}, + {0x9f7d, 0x687d}, + {0x9f7e, 0xba0e}, + {0x9f80, 0x5826}, + {0x9f81, 0x87aa}, + {0x9f82, 0x5a69}, + {0x9f83, 0xa2a2}, + {0x9f84, 0x9621}, + {0x9f85, 0x5ac1}, + {0x9f86, 0x94f9}, + {0x9f87, 0xffff713d}, + {0x9f88, 0x8334}, + {0x9f89, 0x592a}, + {0x9f8a, 0xa2d5}, + {0x9f8b, 0x4608}, + {0x9f8c, 0x5eaa}, + {0x9f8d, 0x7174}, + {0x9f8e, 0xc300}, + {0x9f8f, 0xa792}, + {0x9f90, 0x6272}, + {0x9f91, 0x55a0}, + {0x9f92, 0x76d8}, + {0x9f93, 0xabe1}, + {0x9f94, 0x68d2}, + {0x9f95, 0x3f7a}, + {0x9f96, 0xb69d}, + {0x9f97, 0xc40e}, + {0x9f98, 0xa37a}, + {0x9f99, 0xa0ad}, + {0x9f9a, 0x9478}, + {0x9f9b, 0xa651}, + {0x9f9c, 0x8529}, + {0x9f9d, 0x852a}, + {0x9f9e, 0x4456}, + {0x9f9f, 0xafb4}, + {0x9fa0, 0x6b86}, + {0x9fa1, 0x6b90}, + {0x9fa2, 0x7e8e}, + {0x9fa3, 0xa3d0}, + {0x9fa4, 0xbe02}, + {0x9fa5, 0x6a92}, + {0x9fa6, 0x8e80}, + {0x9fa7, 0x9214}, + {0x9fa8, 0x61b0}, + {0x9fa9, 0x53a2}, + {0x9faa, 0x8f10}, + {0x9fab, 0x9b0e}, + {0x9fac, 0xb15e}, + {0x9fad, 0x77c2}, + {0x9fae, 0x694d}, + {0x9faf, 0xbd39}, + {0x9fb0, 0x5ac2}, + {0x9fb1, 0xbbc2}, + {0x9fb2, 0x82a2}, + {0x9fb3, 0x9756}, + {0x9fb4, 0x772c}, + {0x9fb5, 0x5a08}, + {0x9fb6, 0x9d15}, + {0x9fb7, 0x4586}, + {0x9fb8, 0x52c9}, + {0x9fb9, 0x41d4}, + {0x9fba, 0x6238}, + {0x9fbb, 0xaad1}, + {0x9fbc, 0xa75c}, + {0x9fbd, 0xa5be}, + {0x9fbe, 0xbbc5}, + {0x9fbf, 0x5e7c}, + {0x9fc0, 0x5eb0}, + {0x9fc1, 0xa665}, + {0x9fc2, 0xbbf8}, + {0x9fc3, 0x8260}, + {0x9fc4, 0x947a}, + {0x9fc5, 0x8e81}, + {0x9fc6, 0xb25d}, + {0x9fc7, 0x7fca}, + {0x9fc8, 0x766c}, + {0x9fc9, 0xb706}, + {0x9fca, 0xa56e}, + {0x9fcb, 0x59b8}, + {0x9fcc, 0xb0d2}, + {0x9fcd, 0x8cb2}, + {0x9fce, 0x3f95}, + {0x9fcf, 0x4072}, + {0x9fd0, 0x4a7a}, + {0x9fd1, 0x7b11}, + {0x9fd2, 0x66dc}, + {0x9fd3, 0x7a18}, + {0x9fd4, 0x8718}, + {0x9fd5, 0x9ad9}, + {0x9fd6, 0xb51c}, + {0x9fd7, 0x9fba}, + {0x9fd8, 0x6de9}, + {0x9fd9, 0xc66d}, + {0x9fda, 0x60a0}, + {0x9fdb, 0xb3b9}, + {0x9fdc, 0xc279}, + {0x9fdd, 0xa3d6}, + {0x9fde, 0x7968}, + {0x9fdf, 0x5d80}, + {0x9fe0, 0x8588}, + {0x9fe1, 0x9120}, + {0x9fe2, 0x6b92}, + {0x9fe3, 0x71d8}, + {0x9fe4, 0x4b02}, + {0x9fe5, 0xbdb8}, + {0x9fe6, 0x66e8}, + {0x9fe7, 0xa685}, + {0x9fe8, 0xa686}, + {0x9fe9, 0xb51d}, + {0x9fea, 0xaa84}, + {0x9feb, 0x479a}, + {0x9fec, 0x6204}, + {0x9fed, 0x44b8}, + {0x9fee, 0xb2d5}, + {0x9fef, 0xaeed}, + {0x9ff0, 0xb0e1}, + {0x9ff1, 0xaeee}, + {0x9ff2, 0x8cd5}, + {0x9ff3, 0x6e7d}, + {0x9ff4, 0x4da0}, + {0x9ff5, 0x518c}, + {0x9ff6, 0x95b0}, + {0x9ff7, 0x6891}, + {0x9ff8, 0x54f9}, + {0x9ff9, 0x9952}, + {0x9ffa, 0xba55}, + {0x9ffb, 0x7806}, + {0x9ffc, 0x6b95}, + {0x9ffd, 0x9505}, + {0x9ffe, 0x54fa}, + {0xa040, 0xaef0}, + {0xa041, 0x732d}, + {0xa042, 0x7e75}, + {0xa043, 0x9d55}, + {0xa044, 0xb53c}, + {0xa045, 0x6b96}, + {0xa046, 0x7ebc}, + {0xa047, 0x6b1d}, + {0xa048, 0xffff71de}, + {0xa049, 0xb711}, + {0xa04a, 0xb551}, + {0xa04b, 0xae56}, + {0xa04c, 0x72d6}, + {0xa04d, 0x9c59}, + {0xa04e, 0x4308}, + {0xa04f, 0xa695}, + {0xa050, 0x9090}, + {0xa051, 0xc69d}, + {0xa052, 0x768a}, + {0xa053, 0x62b4}, + {0xa054, 0xc3e8}, + {0xa055, 0x78ce}, + {0xa056, 0xa2ee}, + {0xa057, 0xb552}, + {0xa058, 0xaae4}, + {0xa059, 0xbf86}, + {0xa05a, 0x631d}, + {0xa05b, 0x4bea}, + {0xa05c, 0x84e8}, + {0xa05d, 0x4146}, + {0xa05e, 0x923d}, + {0xa05f, 0x5eba}, + {0xa060, 0xaea5}, + {0xa061, 0x6ac1}, + {0xa062, 0x4829}, + {0xa063, 0x4d6e}, + {0xa064, 0xb268}, + {0xa065, 0x5ebc}, + {0xa066, 0x7334}, + {0xa067, 0x4085}, + {0xa068, 0x91e0}, + {0xa069, 0x75f5}, + {0xa06a, 0x819d}, + {0xa06b, 0x92e0}, + {0xa06c, 0x7c7e}, + {0xa06d, 0x725a}, + {0xa06e, 0x3c21}, + {0xa06f, 0xaeb0}, + {0xa070, 0x711e}, + {0xa071, 0x990e}, + {0xa072, 0x7771}, + {0xa073, 0x7611}, + {0xa074, 0x7a7e}, + {0xa075, 0x6e05}, + {0xa076, 0x7784}, + {0xa077, 0xb0fc}, + {0xa078, 0xa6b9}, + {0xa079, 0xab6d}, + {0xa07a, 0x79c0}, + {0xa07b, 0xb2fd}, + {0xa07c, 0x430c}, + {0xa07d, 0x90fd}, + {0xa07e, 0xbbae}, + {0xa080, 0x7335}, + {0xa081, 0x4ab0}, + {0xa082, 0x47e1}, + {0xa083, 0x5b52}, + {0xa084, 0x6d2a}, + {0xa085, 0x45c8}, + {0xa086, 0x7f71}, + {0xa087, 0x9d4c}, + {0xa088, 0x733a}, + {0xa089, 0xc3fa}, + {0xa08a, 0x7326}, + {0xa08b, 0x78ee}, + {0xa08c, 0xba98}, + {0xa08d, 0xbf55}, + {0xa08e, 0xc0bc}, + {0xa08f, 0x866c}, + {0xa090, 0x4646}, + {0xa091, 0xa31a}, + {0xa092, 0x5cf0}, + {0xa093, 0x6dea}, + {0xa094, 0xb290}, + {0xa095, 0xc708}, + {0xa096, 0x5314}, + {0xa097, 0x493a}, + {0xa098, 0x6f58}, + {0xa099, 0xbcee}, + {0xa09a, 0x4f6c}, + {0xa09b, 0x8c79}, + {0xa09c, 0xb78c}, + {0xa09d, 0x8c9d}, + {0xa09e, 0x8616}, + {0xa09f, 0x4566}, + {0xa0a0, 0x66be}, + {0xa0a1, 0x492e}, + {0xa0a2, 0xb935}, + {0xa0a3, 0xbe04}, + {0xa0a4, 0x3ff5}, + {0xa0a5, 0x3d82}, + {0xa0a6, 0x41d5}, + {0xa0a7, 0x4934}, + {0xa0a8, 0xb87e}, + {0xa0a9, 0x50a5}, + {0xa0aa, 0x4652}, + {0xa0ab, 0x84b9}, + {0xa0ac, 0x6ba2}, + {0xa0ad, 0x9bae}, + {0xa0ae, 0x9158}, + {0xa0af, 0x7d70}, + {0xa0b0, 0x5405}, + {0xa0b1, 0x5802}, + {0xa0b2, 0xb0a4}, + {0xa0b3, 0x588d}, + {0xa0b4, 0x3e39}, + {0xa0b5, 0x998a}, + {0xa0b6, 0xb89a}, + {0xa0b7, 0x5891}, + {0xa0b8, 0x81de}, + {0xa0b9, 0x4e29}, + {0xa0ba, 0x9056}, + {0xa0bb, 0x9006}, + {0xa0bc, 0xc63d}, + {0xa0bd, 0x7d8c}, + {0xa0be, 0x6fe6}, + {0xa0bf, 0x8b8e}, + {0xa0c0, 0x74b8}, + {0xa0c1, 0x8958}, + {0xa0c2, 0x5815}, + {0xa0c3, 0x9dc1}, + {0xa0c4, 0x3e84}, + {0xa0c5, 0x9018}, + {0xa0c6, 0x49a0}, + {0xa0c7, 0x662c}, + {0xa0c8, 0x5558}, + {0xa0c9, 0x6f6c}, + {0xa0ca, 0x6c72}, + {0xa0cb, 0x4876}, + {0xa0cc, 0xa75d}, + {0xa0cd, 0x3e69}, + {0xa0ce, 0x7c12}, + {0xa0cf, 0x6a0a}, + {0xa0d0, 0x7ca9}, + {0xa0d1, 0x9335}, + {0xa0d2, 0xa3d8}, + {0xa0d3, 0x74e1}, + {0xa0d4, 0x5165}, + {0xa0d5, 0x9ff8}, + {0xa0d6, 0x8d04}, + {0xa0d7, 0xa696}, + {0xa0d8, 0x75f6}, + {0xa0d9, 0x50a6}, + {0xa0da, 0x77d6}, + {0xa0db, 0x85d9}, + {0xa0dc, 0x8849}, + {0xa0dd, 0x4202}, + {0xa0de, 0xa6ba}, + {0xa0df, 0x47fc}, + {0xa0e0, 0xa33a}, + {0xa0e1, 0x9110}, + {0xa0e2, 0x47fd}, + {0xa0e3, 0x3cac}, + {0xa0e4, 0x652e}, + {0xa0e5, 0x4415}, + {0xa0e6, 0xc552}, + {0xa0e7, 0x5888}, + {0xa0e8, 0x6f29}, + {0xa0e9, 0x4191}, + {0xa0ea, 0x5fb6}, + {0xa0eb, 0xaf72}, + {0xa0ec, 0xb5ec}, + {0xa0ed, 0x536d}, + {0xa0ee, 0xc4dd}, + {0xa0ef, 0x70f0}, + {0xa0f0, 0xc30a}, + {0xa0f1, 0x81f6}, + {0xa0f2, 0x875d}, + {0xa0f3, 0x6c5d}, + {0xa0f4, 0xb371}, + {0xa0f5, 0xabd8}, + {0xa0f6, 0xa161}, + {0xa0f7, 0x7870}, + {0xa0f8, 0x875e}, + {0xa0f9, 0x837c}, + {0xa0fa, 0xb226}, + {0xa0fb, 0xb891}, + {0xa0fc, 0xae74}, + {0xa0fd, 0x4c86}, + {0xa0fe, 0x4196}, + {0xa140, 0xffffe4c6}, + {0xa141, 0xffffe4c7}, + {0xa142, 0xffffe4c8}, + {0xa143, 0xffffe4c9}, + {0xa144, 0xffffe4ca}, + {0xa145, 0xffffe4cb}, + {0xa146, 0xffffe4cc}, + {0xa147, 0xffffe4cd}, + {0xa148, 0xffffe4ce}, + {0xa149, 0xffffe4cf}, + {0xa14a, 0xffffe4d0}, + {0xa14b, 0xffffe4d1}, + {0xa14c, 0xffffe4d2}, + {0xa14d, 0xffffe4d3}, + {0xa14e, 0xffffe4d4}, + {0xa14f, 0xffffe4d5}, + {0xa150, 0xffffe4d6}, + {0xa151, 0xffffe4d7}, + {0xa152, 0xffffe4d8}, + {0xa153, 0xffffe4d9}, + {0xa154, 0xffffe4da}, + {0xa155, 0xffffe4db}, + {0xa156, 0xffffe4dc}, + {0xa157, 0xffffe4dd}, + {0xa158, 0xffffe4de}, + {0xa159, 0xffffe4df}, + {0xa15a, 0xffffe4e0}, + {0xa15b, 0xffffe4e1}, + {0xa15c, 0xffffe4e2}, + {0xa15d, 0xffffe4e3}, + {0xa15e, 0xffffe4e4}, + {0xa15f, 0xffffe4e5}, + {0xa160, 0xffffe4e6}, + {0xa161, 0xffffe4e7}, + {0xa162, 0xffffe4e8}, + {0xa163, 0xffffe4e9}, + {0xa164, 0xffffe4ea}, + {0xa165, 0xffffe4eb}, + {0xa166, 0xffffe4ec}, + {0xa167, 0xffffe4ed}, + {0xa168, 0xffffe4ee}, + {0xa169, 0xffffe4ef}, + {0xa16a, 0xffffe4f0}, + {0xa16b, 0xffffe4f1}, + {0xa16c, 0xffffe4f2}, + {0xa16d, 0xffffe4f3}, + {0xa16e, 0xffffe4f4}, + {0xa16f, 0xffffe4f5}, + {0xa170, 0xffffe4f6}, + {0xa171, 0xffffe4f7}, + {0xa172, 0xffffe4f8}, + {0xa173, 0xffffe4f9}, + {0xa174, 0xffffe4fa}, + {0xa175, 0xffffe4fb}, + {0xa176, 0xffffe4fc}, + {0xa177, 0xffffe4fd}, + {0xa178, 0xffffe4fe}, + {0xa179, 0xffffe4ff}, + {0xa17a, 0xffffe500}, + {0xa17b, 0xffffe501}, + {0xa17c, 0xffffe502}, + {0xa17d, 0xffffe503}, + {0xa17e, 0xffffe504}, + {0xa180, 0xffffe505}, + {0xa181, 0xffffe506}, + {0xa182, 0xffffe507}, + {0xa183, 0xffffe508}, + {0xa184, 0xffffe509}, + {0xa185, 0xffffe50a}, + {0xa186, 0xffffe50b}, + {0xa187, 0xffffe50c}, + {0xa188, 0xffffe50d}, + {0xa189, 0xffffe50e}, + {0xa18a, 0xffffe50f}, + {0xa18b, 0xffffe510}, + {0xa18c, 0xffffe511}, + {0xa18d, 0xffffe512}, + {0xa18e, 0xffffe513}, + {0xa18f, 0xffffe514}, + {0xa190, 0xffffe515}, + {0xa191, 0xffffe516}, + {0xa192, 0xffffe517}, + {0xa193, 0xffffe518}, + {0xa194, 0xffffe519}, + {0xa195, 0xffffe51a}, + {0xa196, 0xffffe51b}, + {0xa197, 0xffffe51c}, + {0xa198, 0xffffe51d}, + {0xa199, 0xffffe51e}, + {0xa19a, 0xffffe51f}, + {0xa19b, 0xffffe520}, + {0xa19c, 0xffffe521}, + {0xa19d, 0xffffe522}, + {0xa19e, 0xffffe523}, + {0xa19f, 0xffffe524}, + {0xa1a0, 0xffffe525}, + {0xa1a1, 0xffff3000}, + {0xa1a2, 0xffff3001}, + {0xa1a3, 0xffff3002}, + {0xa1a5, 0xffff02c9}, + {0xa1a6, 0xffff02c7}, + {0xa1a8, 0xffff3003}, + {0xa1a9, 0xffff3005}, + {0xa1ab, 0xffffff5e}, + {0xa1b2, 0xffff3014}, + {0xa1b3, 0xffff3015}, + {0xa1b4, 0xffff3008}, + {0xa1b5, 0xffff3009}, + {0xa1b6, 0xffff300a}, + {0xa1b7, 0xffff300b}, + {0xa1b8, 0xffff300c}, + {0xa1b9, 0xffff300d}, + {0xa1ba, 0xffff300e}, + {0xa1bb, 0xffff300f}, + {0xa1bc, 0xffff3016}, + {0xa1bd, 0xffff3017}, + {0xa1be, 0xffff3010}, + {0xa1bf, 0xffff3011}, + {0xa1c3, 0xffff2236}, + {0xa1c4, 0xffff2227}, + {0xa1c5, 0xffff2228}, + {0xa1c6, 0xffff2211}, + {0xa1c7, 0xffff220f}, + {0xa1c8, 0xffff222a}, + {0xa1c9, 0xffff2229}, + {0xa1ca, 0xffff2208}, + {0xa1cb, 0xffff2237}, + {0xa1cc, 0xffff221a}, + {0xa1cd, 0xffff22a5}, + {0xa1ce, 0xffff2225}, + {0xa1cf, 0xffff2220}, + {0xa1d0, 0xffff2312}, + {0xa1d1, 0xffff2299}, + {0xa1d2, 0xffff222b}, + {0xa1d3, 0xffff222e}, + {0xa1d4, 0xffff2261}, + {0xa1d5, 0xffff224c}, + {0xa1d6, 0xffff2248}, + {0xa1d7, 0xffff223d}, + {0xa1d8, 0xffff221d}, + {0xa1dc, 0xffff2264}, + {0xa1dd, 0xffff2265}, + {0xa1de, 0xffff221e}, + {0xa1df, 0xffff2235}, + {0xa1e0, 0xffff2234}, + {0xa1e1, 0xffff2642}, + {0xa1e2, 0xffff2640}, + {0xa1e6, 0x01f4}, + {0xa1e7, 0x0088}, + {0xa1e8, 0x0084}, + {0xa1e9, 0x0086}, + {0xa1ea, 0x008b}, + {0xa1ed, 0x02320238}, + {0xa1ee, 0xffff2606}, + {0xa1ef, 0xffff2605}, + {0xa1f0, 0xffff25cb}, + {0xa1f1, 0xffff25cf}, + {0xa1f2, 0xffff25ce}, + {0xa1f3, 0xffff25c7}, + {0xa1f4, 0xffff25c6}, + {0xa1f5, 0xffff25a1}, + {0xa1f6, 0xffff25a0}, + {0xa1f7, 0xffff25b3}, + {0xa1f8, 0xffff25b2}, + {0xa1fa, 0xffff2192}, + {0xa1fb, 0xffff2190}, + {0xa1fc, 0xffff2191}, + {0xa1fd, 0xffff2193}, + {0xa1fe, 0xffff3013}, + {0xa240, 0xffffe526}, + {0xa241, 0xffffe527}, + {0xa242, 0xffffe528}, + {0xa243, 0xffffe529}, + {0xa244, 0xffffe52a}, + {0xa245, 0xffffe52b}, + {0xa246, 0xffffe52c}, + {0xa247, 0xffffe52d}, + {0xa248, 0xffffe52e}, + {0xa249, 0xffffe52f}, + {0xa24a, 0xffffe530}, + {0xa24b, 0xffffe531}, + {0xa24c, 0xffffe532}, + {0xa24d, 0xffffe533}, + {0xa24e, 0xffffe534}, + {0xa24f, 0xffffe535}, + {0xa250, 0xffffe536}, + {0xa251, 0xffffe537}, + {0xa252, 0xffffe538}, + {0xa253, 0xffffe539}, + {0xa254, 0xffffe53a}, + {0xa255, 0xffffe53b}, + {0xa256, 0xffffe53c}, + {0xa257, 0xffffe53d}, + {0xa258, 0xffffe53e}, + {0xa259, 0xffffe53f}, + {0xa25a, 0xffffe540}, + {0xa25b, 0xffffe541}, + {0xa25c, 0xffffe542}, + {0xa25d, 0xffffe543}, + {0xa25e, 0xffffe544}, + {0xa25f, 0xffffe545}, + {0xa260, 0xffffe546}, + {0xa261, 0xffffe547}, + {0xa262, 0xffffe548}, + {0xa263, 0xffffe549}, + {0xa264, 0xffffe54a}, + {0xa265, 0xffffe54b}, + {0xa266, 0xffffe54c}, + {0xa267, 0xffffe54d}, + {0xa268, 0xffffe54e}, + {0xa269, 0xffffe54f}, + {0xa26a, 0xffffe550}, + {0xa26b, 0xffffe551}, + {0xa26c, 0xffffe552}, + {0xa26d, 0xffffe553}, + {0xa26e, 0xffffe554}, + {0xa26f, 0xffffe555}, + {0xa270, 0xffffe556}, + {0xa271, 0xffffe557}, + {0xa272, 0xffffe558}, + {0xa273, 0xffffe559}, + {0xa274, 0xffffe55a}, + {0xa275, 0xffffe55b}, + {0xa276, 0xffffe55c}, + {0xa277, 0xffffe55d}, + {0xa278, 0xffffe55e}, + {0xa279, 0xffffe55f}, + {0xa27a, 0xffffe560}, + {0xa27b, 0xffffe561}, + {0xa27c, 0xffffe562}, + {0xa27d, 0xffffe563}, + {0xa27e, 0xffffe564}, + {0xa280, 0xffffe565}, + {0xa281, 0xffffe566}, + {0xa282, 0xffffe567}, + {0xa283, 0xffffe568}, + {0xa284, 0xffffe569}, + {0xa285, 0xffffe56a}, + {0xa286, 0xffffe56b}, + {0xa287, 0xffffe56c}, + {0xa288, 0xffffe56d}, + {0xa289, 0xffffe56e}, + {0xa28a, 0xffffe56f}, + {0xa28b, 0xffffe570}, + {0xa28c, 0xffffe571}, + {0xa28d, 0xffffe572}, + {0xa28e, 0xffffe573}, + {0xa28f, 0xffffe574}, + {0xa290, 0xffffe575}, + {0xa291, 0xffffe576}, + {0xa292, 0xffffe577}, + {0xa293, 0xffffe578}, + {0xa294, 0xffffe579}, + {0xa295, 0xffffe57a}, + {0xa296, 0xffffe57b}, + {0xa297, 0xffffe57c}, + {0xa298, 0xffffe57d}, + {0xa299, 0xffffe57e}, + {0xa29a, 0xffffe57f}, + {0xa29b, 0xffffe580}, + {0xa29c, 0xffffe581}, + {0xa29d, 0xffffe582}, + {0xa29e, 0xffffe583}, + {0xa29f, 0xffffe584}, + {0xa2a0, 0xffffe585}, + {0xa2a1, 0x021b}, + {0xa2a2, 0x021b021b}, + {0xa2a4, 0x021b0261}, + {0xa2a5, 0x0261}, + {0xa2a6, 0x0261021b}, + {0xa2a9, 0x021b0266}, + {0xa2aa, 0x0266}, + {0xa2ab, 0xffffe766}, + {0xa2ac, 0xffffe767}, + {0xa2ad, 0xffffe768}, + {0xa2ae, 0xffffe769}, + {0xa2af, 0xffffe76a}, + {0xa2b0, 0xffffe76b}, + {0xa2b1, 0x017a}, + {0xa2b2, 0x017b}, + {0xa2b3, 0x017c}, + {0xa2b4, 0x017d}, + {0xa2b5, 0x017e}, + {0xa2b6, 0x017f}, + {0xa2b7, 0x0180}, + {0xa2b8, 0x0181}, + {0xa2b9, 0x0182}, + {0xa2ba, 0xffff2491}, + {0xa2bb, 0xffff2492}, + {0xa2bc, 0xffff2493}, + {0xa2bd, 0xffff2494}, + {0xa2be, 0xffff2495}, + {0xa2bf, 0xffff2496}, + {0xa2c0, 0xffff2497}, + {0xa2c1, 0xffff2498}, + {0xa2c2, 0xffff2499}, + {0xa2c3, 0xffff249a}, + {0xa2c4, 0xffff249b}, + {0xa2c5, 0x017a}, + {0xa2c6, 0x017b}, + {0xa2c7, 0x017c}, + {0xa2c8, 0x017d}, + {0xa2c9, 0x017e}, + {0xa2ca, 0x017f}, + {0xa2cb, 0x0180}, + {0xa2cc, 0x0181}, + {0xa2cd, 0x0182}, + {0xa2ce, 0xffff247d}, + {0xa2cf, 0xffff247e}, + {0xa2d0, 0xffff247f}, + {0xa2d1, 0xffff2480}, + {0xa2d2, 0xffff2481}, + {0xa2d3, 0xffff2482}, + {0xa2d4, 0xffff2483}, + {0xa2d5, 0xffff2484}, + {0xa2d6, 0xffff2485}, + {0xa2d7, 0xffff2486}, + {0xa2d8, 0xffff2487}, + {0xa2d9, 0x017a}, + {0xa2da, 0x017b}, + {0xa2db, 0x017c}, + {0xa2dc, 0x017d}, + {0xa2dd, 0x017e}, + {0xa2de, 0x017f}, + {0xa2df, 0x0180}, + {0xa2e0, 0x0181}, + {0xa2e1, 0x0182}, + {0xa2e2, 0xffff2469}, + {0xa2e3, 0x009d}, + {0xa2e4, 0xffffe76d}, + {0xa2e5, 0xffff3220}, + {0xa2e6, 0xffff3221}, + {0xa2e7, 0xffff3222}, + {0xa2e8, 0xffff3223}, + {0xa2e9, 0xffff3224}, + {0xa2ea, 0xffff3225}, + {0xa2eb, 0xffff3226}, + {0xa2ec, 0xffff3227}, + {0xa2ed, 0xffff3228}, + {0xa2ee, 0xffff3229}, + {0xa2ef, 0xffffe76e}, + {0xa2f0, 0xffffe76f}, + {0xa2f1, 0x021b}, + {0xa2f2, 0x021b021b}, + {0xa2f4, 0x021b0261}, + {0xa2f5, 0x0261}, + {0xa2f6, 0x0261021b}, + {0xa2f9, 0x021b0266}, + {0xa2fa, 0x0266}, + {0xa2fb, 0x0266021b}, + {0xa2fd, 0xffffe770}, + {0xa2fe, 0xffffe771}, + {0xa340, 0xffffe586}, + {0xa341, 0xffffe587}, + {0xa342, 0xffffe588}, + {0xa343, 0xffffe589}, + {0xa344, 0xffffe58a}, + {0xa345, 0xffffe58b}, + {0xa346, 0xffffe58c}, + {0xa347, 0xffffe58d}, + {0xa348, 0xffffe58e}, + {0xa349, 0xffffe58f}, + {0xa34a, 0xffffe590}, + {0xa34b, 0xffffe591}, + {0xa34c, 0xffffe592}, + {0xa34d, 0xffffe593}, + {0xa34e, 0xffffe594}, + {0xa34f, 0xffffe595}, + {0xa350, 0xffffe596}, + {0xa351, 0xffffe597}, + {0xa352, 0xffffe598}, + {0xa353, 0xffffe599}, + {0xa354, 0xffffe59a}, + {0xa355, 0xffffe59b}, + {0xa356, 0xffffe59c}, + {0xa357, 0xffffe59d}, + {0xa358, 0xffffe59e}, + {0xa359, 0xffffe59f}, + {0xa35a, 0xffffe5a0}, + {0xa35b, 0xffffe5a1}, + {0xa35c, 0xffffe5a2}, + {0xa35d, 0xffffe5a3}, + {0xa35e, 0xffffe5a4}, + {0xa35f, 0xffffe5a5}, + {0xa360, 0xffffe5a6}, + {0xa361, 0xffffe5a7}, + {0xa362, 0xffffe5a8}, + {0xa363, 0xffffe5a9}, + {0xa364, 0xffffe5aa}, + {0xa365, 0xffffe5ab}, + {0xa366, 0xffffe5ac}, + {0xa367, 0xffffe5ad}, + {0xa368, 0xffffe5ae}, + {0xa369, 0xffffe5af}, + {0xa36a, 0xffffe5b0}, + {0xa36b, 0xffffe5b1}, + {0xa36c, 0xffffe5b2}, + {0xa36d, 0xffffe5b3}, + {0xa36e, 0xffffe5b4}, + {0xa36f, 0xffffe5b5}, + {0xa370, 0xffffe5b6}, + {0xa371, 0xffffe5b7}, + {0xa372, 0xffffe5b8}, + {0xa373, 0xffffe5b9}, + {0xa374, 0xffffe5ba}, + {0xa375, 0xffffe5bb}, + {0xa376, 0xffffe5bc}, + {0xa377, 0xffffe5bd}, + {0xa378, 0xffffe5be}, + {0xa379, 0xffffe5bf}, + {0xa37a, 0xffffe5c0}, + {0xa37b, 0xffffe5c1}, + {0xa37c, 0xffffe5c2}, + {0xa37d, 0xffffe5c3}, + {0xa37e, 0xffffe5c4}, + {0xa380, 0xffffe5c5}, + {0xa381, 0xffffe5c6}, + {0xa382, 0xffffe5c7}, + {0xa383, 0xffffe5c8}, + {0xa384, 0xffffe5c9}, + {0xa385, 0xffffe5ca}, + {0xa386, 0xffffe5cb}, + {0xa387, 0xffffe5cc}, + {0xa388, 0xffffe5cd}, + {0xa389, 0xffffe5ce}, + {0xa38a, 0xffffe5cf}, + {0xa38b, 0xffffe5d0}, + {0xa38c, 0xffffe5d1}, + {0xa38d, 0xffffe5d2}, + {0xa38e, 0xffffe5d3}, + {0xa38f, 0xffffe5d4}, + {0xa390, 0xffffe5d5}, + {0xa391, 0xffffe5d6}, + {0xa392, 0xffffe5d7}, + {0xa393, 0xffffe5d8}, + {0xa394, 0xffffe5d9}, + {0xa395, 0xffffe5da}, + {0xa396, 0xffffe5db}, + {0xa397, 0xffffe5dc}, + {0xa398, 0xffffe5dd}, + {0xa399, 0xffffe5de}, + {0xa39a, 0xffffe5df}, + {0xa39b, 0xffffe5e0}, + {0xa39c, 0xffffe5e1}, + {0xa39d, 0xffffe5e2}, + {0xa39e, 0xffffe5e3}, + {0xa39f, 0xffffe5e4}, + {0xa3a0, 0xffffe5e5}, + {0xa3a1, 0xffffff01}, + {0xa3a2, 0xffffff02}, + {0xa3a3, 0xffffff03}, + {0xa3a4, 0x008d}, + {0xa3a5, 0xffffff05}, + {0xa3a6, 0xffffff06}, + {0xa3a7, 0xffffff07}, + {0xa3a8, 0xffffff08}, + {0xa3a9, 0xffffff09}, + {0xa3aa, 0xffffff0a}, + {0xa3ab, 0xffffff0b}, + {0xa3ac, 0xffffff0c}, + {0xa3ad, 0xffffff0d}, + {0xa3ae, 0xffffff0e}, + {0xa3af, 0xffffff0f}, + {0xa3b0, 0x0179}, + {0xa3b1, 0x017a}, + {0xa3b2, 0x017b}, + {0xa3b3, 0x017c}, + {0xa3b4, 0x017d}, + {0xa3b5, 0x017e}, + {0xa3b6, 0x017f}, + {0xa3b7, 0x0180}, + {0xa3b8, 0x0181}, + {0xa3b9, 0x0182}, + {0xa3ba, 0xffffff1a}, + {0xa3bb, 0xffffff1b}, + {0xa3bc, 0xffffff1c}, + {0xa3bd, 0xffffff1d}, + {0xa3be, 0xffffff1e}, + {0xa3bf, 0xffffff1f}, + {0xa3c0, 0xffffff20}, + {0xa3c1, 0x01ea}, + {0xa3c2, 0x01ef}, + {0xa3c3, 0x01f4}, + {0xa3c4, 0x01f7}, + {0xa3c5, 0x01fe}, + {0xa3c6, 0x0209}, + {0xa3c7, 0x020b}, + {0xa3c8, 0x0213}, + {0xa3c9, 0x021b}, + {0xa3ca, 0x021f}, + {0xa3cb, 0x0223}, + {0xa3cc, 0x0226}, + {0xa3cd, 0x0230}, + {0xa3ce, 0x0232}, + {0xa3cf, 0x0238}, + {0xa3d0, 0x023f}, + {0xa3d1, 0x0242}, + {0xa3d2, 0x0245}, + {0xa3d3, 0x024f}, + {0xa3d4, 0x0255}, + {0xa3d5, 0x025b}, + {0xa3d6, 0x0261}, + {0xa3d7, 0x0264}, + {0xa3d8, 0x0266}, + {0xa3d9, 0x0267}, + {0xa3da, 0x026a}, + {0xa3db, 0xffffff3b}, + {0xa3dc, 0xffffff3c}, + {0xa3dd, 0xffffff3d}, + {0xa3de, 0xffffff3e}, + {0xa3df, 0xffffff3f}, + {0xa3e0, 0xffffff40}, + {0xa3e1, 0x01ea}, + {0xa3e2, 0x01ef}, + {0xa3e3, 0x01f4}, + {0xa3e4, 0x01f7}, + {0xa3e5, 0x01fe}, + {0xa3e6, 0x0209}, + {0xa3e7, 0x020b}, + {0xa3e8, 0x0213}, + {0xa3e9, 0x021b}, + {0xa3ea, 0x021f}, + {0xa3eb, 0x0223}, + {0xa3ec, 0x0226}, + {0xa3ed, 0x0230}, + {0xa3ee, 0x0232}, + {0xa3ef, 0x0238}, + {0xa3f0, 0x023f}, + {0xa3f1, 0x0242}, + {0xa3f2, 0x0245}, + {0xa3f3, 0x024f}, + {0xa3f4, 0x0255}, + {0xa3f5, 0x025b}, + {0xa3f6, 0x0261}, + {0xa3f7, 0x0264}, + {0xa3f8, 0x0266}, + {0xa3f9, 0x0267}, + {0xa3fa, 0x026a}, + {0xa3fb, 0xffffff5b}, + {0xa3fc, 0xffffff5c}, + {0xa3fd, 0xffffff5d}, + {0xa3fe, 0xffffffe3}, + {0xa440, 0xffffe5e6}, + {0xa441, 0xffffe5e7}, + {0xa442, 0xffffe5e8}, + {0xa443, 0xffffe5e9}, + {0xa444, 0xffffe5ea}, + {0xa445, 0xffffe5eb}, + {0xa446, 0xffffe5ec}, + {0xa447, 0xffffe5ed}, + {0xa448, 0xffffe5ee}, + {0xa449, 0xffffe5ef}, + {0xa44a, 0xffffe5f0}, + {0xa44b, 0xffffe5f1}, + {0xa44c, 0xffffe5f2}, + {0xa44d, 0xffffe5f3}, + {0xa44e, 0xffffe5f4}, + {0xa44f, 0xffffe5f5}, + {0xa450, 0xffffe5f6}, + {0xa451, 0xffffe5f7}, + {0xa452, 0xffffe5f8}, + {0xa453, 0xffffe5f9}, + {0xa454, 0xffffe5fa}, + {0xa455, 0xffffe5fb}, + {0xa456, 0xffffe5fc}, + {0xa457, 0xffffe5fd}, + {0xa458, 0xffffe5fe}, + {0xa459, 0xffffe5ff}, + {0xa45a, 0xffffe600}, + {0xa45b, 0xffffe601}, + {0xa45c, 0xffffe602}, + {0xa45d, 0xffffe603}, + {0xa45e, 0xffffe604}, + {0xa45f, 0xffffe605}, + {0xa460, 0xffffe606}, + {0xa461, 0xffffe607}, + {0xa462, 0xffffe608}, + {0xa463, 0xffffe609}, + {0xa464, 0xffffe60a}, + {0xa465, 0xffffe60b}, + {0xa466, 0xffffe60c}, + {0xa467, 0xffffe60d}, + {0xa468, 0xffffe60e}, + {0xa469, 0xffffe60f}, + {0xa46a, 0xffffe610}, + {0xa46b, 0xffffe611}, + {0xa46c, 0xffffe612}, + {0xa46d, 0xffffe613}, + {0xa46e, 0xffffe614}, + {0xa46f, 0xffffe615}, + {0xa470, 0xffffe616}, + {0xa471, 0xffffe617}, + {0xa472, 0xffffe618}, + {0xa473, 0xffffe619}, + {0xa474, 0xffffe61a}, + {0xa475, 0xffffe61b}, + {0xa476, 0xffffe61c}, + {0xa477, 0xffffe61d}, + {0xa478, 0xffffe61e}, + {0xa479, 0xffffe61f}, + {0xa47a, 0xffffe620}, + {0xa47b, 0xffffe621}, + {0xa47c, 0xffffe622}, + {0xa47d, 0xffffe623}, + {0xa47e, 0xffffe624}, + {0xa480, 0xffffe625}, + {0xa481, 0xffffe626}, + {0xa482, 0xffffe627}, + {0xa483, 0xffffe628}, + {0xa484, 0xffffe629}, + {0xa485, 0xffffe62a}, + {0xa486, 0xffffe62b}, + {0xa487, 0xffffe62c}, + {0xa488, 0xffffe62d}, + {0xa489, 0xffffe62e}, + {0xa48a, 0xffffe62f}, + {0xa48b, 0xffffe630}, + {0xa48c, 0xffffe631}, + {0xa48d, 0xffffe632}, + {0xa48e, 0xffffe633}, + {0xa48f, 0xffffe634}, + {0xa490, 0xffffe635}, + {0xa491, 0xffffe636}, + {0xa492, 0xffffe637}, + {0xa493, 0xffffe638}, + {0xa494, 0xffffe639}, + {0xa495, 0xffffe63a}, + {0xa496, 0xffffe63b}, + {0xa497, 0xffffe63c}, + {0xa498, 0xffffe63d}, + {0xa499, 0xffffe63e}, + {0xa49a, 0xffffe63f}, + {0xa49b, 0xffffe640}, + {0xa49c, 0xffffe641}, + {0xa49d, 0xffffe642}, + {0xa49e, 0xffffe643}, + {0xa49f, 0xffffe644}, + {0xa4a0, 0xffffe645}, + {0xa4a1, 0x36f9}, + {0xa4a2, 0x36fa}, + {0xa4a3, 0x36fb}, + {0xa4a4, 0x36fc}, + {0xa4a5, 0x36fd}, + {0xa4a6, 0x36fe}, + {0xa4a7, 0x36ff}, + {0xa4a8, 0x3700}, + {0xa4a9, 0x3701}, + {0xa4aa, 0x3702}, + {0xa4ab, 0x3704}, + {0xa4ac, 0x3704}, + {0xa4ad, 0x3705}, + {0xa4ae, 0x3705}, + {0xa4af, 0x3706}, + {0xa4b0, 0x3706}, + {0xa4b1, 0x3708}, + {0xa4b2, 0x3708}, + {0xa4b3, 0x3709}, + {0xa4b4, 0x3709}, + {0xa4b5, 0x370a}, + {0xa4b6, 0x370a}, + {0xa4b7, 0x370b}, + {0xa4b8, 0x370b}, + {0xa4b9, 0x370c}, + {0xa4ba, 0x370c}, + {0xa4bb, 0x370d}, + {0xa4bc, 0x370d}, + {0xa4bd, 0x370e}, + {0xa4be, 0x370e}, + {0xa4bf, 0x370f}, + {0xa4c0, 0x370f}, + {0xa4c1, 0x3710}, + {0xa4c2, 0x3710}, + {0xa4c3, 0x3711}, + {0xa4c4, 0x3712}, + {0xa4c5, 0x3712}, + {0xa4c6, 0x3713}, + {0xa4c7, 0x3713}, + {0xa4c8, 0x3714}, + {0xa4c9, 0x3714}, + {0xa4ca, 0x3715}, + {0xa4cb, 0x3716}, + {0xa4cc, 0x3717}, + {0xa4cd, 0x3718}, + {0xa4ce, 0x3719}, + {0xa4cf, 0x371a}, + {0xa4d0, 0x371a}, + {0xa4d1, 0x371a}, + {0xa4d2, 0x371b}, + {0xa4d3, 0x371b}, + {0xa4d4, 0x371b}, + {0xa4d5, 0x371c}, + {0xa4d6, 0x371c}, + {0xa4d7, 0x371c}, + {0xa4d8, 0x371d}, + {0xa4d9, 0x371d}, + {0xa4da, 0x371d}, + {0xa4db, 0x371e}, + {0xa4dc, 0x371e}, + {0xa4dd, 0x371e}, + {0xa4de, 0x371f}, + {0xa4df, 0x3720}, + {0xa4e0, 0x3721}, + {0xa4e1, 0x3722}, + {0xa4e2, 0x3723}, + {0xa4e3, 0x3724}, + {0xa4e4, 0x3725}, + {0xa4e5, 0x3726}, + {0xa4e6, 0x3727}, + {0xa4e7, 0x3728}, + {0xa4e8, 0x3729}, + {0xa4e9, 0x372a}, + {0xa4ea, 0x372b}, + {0xa4eb, 0x372c}, + {0xa4ec, 0x372d}, + {0xa4ed, 0x372e}, + {0xa4ee, 0x372f}, + {0xa4ef, 0x3730}, + {0xa4f0, 0x3731}, + {0xa4f1, 0x3732}, + {0xa4f2, 0x3733}, + {0xa4f3, 0x3734}, + {0xa4f4, 0xffffe772}, + {0xa4f5, 0xffffe773}, + {0xa4f6, 0xffffe774}, + {0xa4f7, 0xffffe775}, + {0xa4f8, 0xffffe776}, + {0xa4f9, 0xffffe777}, + {0xa4fa, 0xffffe778}, + {0xa4fb, 0xffffe779}, + {0xa4fc, 0xffffe77a}, + {0xa4fd, 0xffffe77b}, + {0xa4fe, 0xffffe77c}, + {0xa540, 0xffffe646}, + {0xa541, 0xffffe647}, + {0xa542, 0xffffe648}, + {0xa543, 0xffffe649}, + {0xa544, 0xffffe64a}, + {0xa545, 0xffffe64b}, + {0xa546, 0xffffe64c}, + {0xa547, 0xffffe64d}, + {0xa548, 0xffffe64e}, + {0xa549, 0xffffe64f}, + {0xa54a, 0xffffe650}, + {0xa54b, 0xffffe651}, + {0xa54c, 0xffffe652}, + {0xa54d, 0xffffe653}, + {0xa54e, 0xffffe654}, + {0xa54f, 0xffffe655}, + {0xa550, 0xffffe656}, + {0xa551, 0xffffe657}, + {0xa552, 0xffffe658}, + {0xa553, 0xffffe659}, + {0xa554, 0xffffe65a}, + {0xa555, 0xffffe65b}, + {0xa556, 0xffffe65c}, + {0xa557, 0xffffe65d}, + {0xa558, 0xffffe65e}, + {0xa559, 0xffffe65f}, + {0xa55a, 0xffffe660}, + {0xa55b, 0xffffe661}, + {0xa55c, 0xffffe662}, + {0xa55d, 0xffffe663}, + {0xa55e, 0xffffe664}, + {0xa55f, 0xffffe665}, + {0xa560, 0xffffe666}, + {0xa561, 0xffffe667}, + {0xa562, 0xffffe668}, + {0xa563, 0xffffe669}, + {0xa564, 0xffffe66a}, + {0xa565, 0xffffe66b}, + {0xa566, 0xffffe66c}, + {0xa567, 0xffffe66d}, + {0xa568, 0xffffe66e}, + {0xa569, 0xffffe66f}, + {0xa56a, 0xffffe670}, + {0xa56b, 0xffffe671}, + {0xa56c, 0xffffe672}, + {0xa56d, 0xffffe673}, + {0xa56e, 0xffffe674}, + {0xa56f, 0xffffe675}, + {0xa570, 0xffffe676}, + {0xa571, 0xffffe677}, + {0xa572, 0xffffe678}, + {0xa573, 0xffffe679}, + {0xa574, 0xffffe67a}, + {0xa575, 0xffffe67b}, + {0xa576, 0xffffe67c}, + {0xa577, 0xffffe67d}, + {0xa578, 0xffffe67e}, + {0xa579, 0xffffe67f}, + {0xa57a, 0xffffe680}, + {0xa57b, 0xffffe681}, + {0xa57c, 0xffffe682}, + {0xa57d, 0xffffe683}, + {0xa57e, 0xffffe684}, + {0xa580, 0xffffe685}, + {0xa581, 0xffffe686}, + {0xa582, 0xffffe687}, + {0xa583, 0xffffe688}, + {0xa584, 0xffffe689}, + {0xa585, 0xffffe68a}, + {0xa586, 0xffffe68b}, + {0xa587, 0xffffe68c}, + {0xa588, 0xffffe68d}, + {0xa589, 0xffffe68e}, + {0xa58a, 0xffffe68f}, + {0xa58b, 0xffffe690}, + {0xa58c, 0xffffe691}, + {0xa58d, 0xffffe692}, + {0xa58e, 0xffffe693}, + {0xa58f, 0xffffe694}, + {0xa590, 0xffffe695}, + {0xa591, 0xffffe696}, + {0xa592, 0xffffe697}, + {0xa593, 0xffffe698}, + {0xa594, 0xffffe699}, + {0xa595, 0xffffe69a}, + {0xa596, 0xffffe69b}, + {0xa597, 0xffffe69c}, + {0xa598, 0xffffe69d}, + {0xa599, 0xffffe69e}, + {0xa59a, 0xffffe69f}, + {0xa59b, 0xffffe6a0}, + {0xa59c, 0xffffe6a1}, + {0xa59d, 0xffffe6a2}, + {0xa59e, 0xffffe6a3}, + {0xa59f, 0xffffe6a4}, + {0xa5a0, 0xffffe6a5}, + {0xa5a1, 0x36f9}, + {0xa5a2, 0x36fa}, + {0xa5a3, 0x36fb}, + {0xa5a4, 0x36fc}, + {0xa5a5, 0x36fd}, + {0xa5a6, 0x36fe}, + {0xa5a7, 0x36ff}, + {0xa5a8, 0x3700}, + {0xa5a9, 0x3701}, + {0xa5aa, 0x3702}, + {0xa5ab, 0x3704}, + {0xa5ac, 0x3704}, + {0xa5ad, 0x3705}, + {0xa5ae, 0x3705}, + {0xa5af, 0x3706}, + {0xa5b0, 0x3706}, + {0xa5b1, 0x3708}, + {0xa5b2, 0x3708}, + {0xa5b3, 0x3709}, + {0xa5b4, 0x3709}, + {0xa5b5, 0x370a}, + {0xa5b6, 0x370a}, + {0xa5b7, 0x370b}, + {0xa5b8, 0x370b}, + {0xa5b9, 0x370c}, + {0xa5ba, 0x370c}, + {0xa5bb, 0x370d}, + {0xa5bc, 0x370d}, + {0xa5bd, 0x370e}, + {0xa5be, 0x370e}, + {0xa5bf, 0x370f}, + {0xa5c0, 0x370f}, + {0xa5c1, 0x3710}, + {0xa5c2, 0x3710}, + {0xa5c3, 0x3711}, + {0xa5c4, 0x3712}, + {0xa5c5, 0x3712}, + {0xa5c6, 0x3713}, + {0xa5c7, 0x3713}, + {0xa5c8, 0x3714}, + {0xa5c9, 0x3714}, + {0xa5ca, 0x3715}, + {0xa5cb, 0x3716}, + {0xa5cc, 0x3717}, + {0xa5cd, 0x3718}, + {0xa5ce, 0x3719}, + {0xa5cf, 0x371a}, + {0xa5d0, 0x371a}, + {0xa5d1, 0x371a}, + {0xa5d2, 0x371b}, + {0xa5d3, 0x371b}, + {0xa5d4, 0x371b}, + {0xa5d5, 0x371c}, + {0xa5d6, 0x371c}, + {0xa5d7, 0x371c}, + {0xa5d8, 0x371d}, + {0xa5d9, 0x371d}, + {0xa5da, 0x371d}, + {0xa5db, 0x371e}, + {0xa5dc, 0x371e}, + {0xa5dd, 0x371e}, + {0xa5de, 0x371f}, + {0xa5df, 0x3720}, + {0xa5e0, 0x3721}, + {0xa5e1, 0x3722}, + {0xa5e2, 0x3723}, + {0xa5e3, 0x3724}, + {0xa5e4, 0x3725}, + {0xa5e5, 0x3726}, + {0xa5e6, 0x3727}, + {0xa5e7, 0x3728}, + {0xa5e8, 0x3729}, + {0xa5e9, 0x372a}, + {0xa5ea, 0x372b}, + {0xa5eb, 0x372c}, + {0xa5ec, 0x372d}, + {0xa5ed, 0x372e}, + {0xa5ee, 0x372f}, + {0xa5ef, 0x3730}, + {0xa5f0, 0x3731}, + {0xa5f1, 0x3732}, + {0xa5f2, 0x3733}, + {0xa5f3, 0x3734}, + {0xa5f4, 0x36fe}, + {0xa5f5, 0x3703}, + {0xa5f6, 0x3707}, + {0xa5f7, 0xffffe77d}, + {0xa5f8, 0xffffe77e}, + {0xa5f9, 0xffffe77f}, + {0xa5fa, 0xffffe780}, + {0xa5fb, 0xffffe781}, + {0xa5fc, 0xffffe782}, + {0xa5fd, 0xffffe783}, + {0xa5fe, 0xffffe784}, + {0xa640, 0xffffe6a6}, + {0xa641, 0xffffe6a7}, + {0xa642, 0xffffe6a8}, + {0xa643, 0xffffe6a9}, + {0xa644, 0xffffe6aa}, + {0xa645, 0xffffe6ab}, + {0xa646, 0xffffe6ac}, + {0xa647, 0xffffe6ad}, + {0xa648, 0xffffe6ae}, + {0xa649, 0xffffe6af}, + {0xa64a, 0xffffe6b0}, + {0xa64b, 0xffffe6b1}, + {0xa64c, 0xffffe6b2}, + {0xa64d, 0xffffe6b3}, + {0xa64e, 0xffffe6b4}, + {0xa64f, 0xffffe6b5}, + {0xa650, 0xffffe6b6}, + {0xa651, 0xffffe6b7}, + {0xa652, 0xffffe6b8}, + {0xa653, 0xffffe6b9}, + {0xa654, 0xffffe6ba}, + {0xa655, 0xffffe6bb}, + {0xa656, 0xffffe6bc}, + {0xa657, 0xffffe6bd}, + {0xa658, 0xffffe6be}, + {0xa659, 0xffffe6bf}, + {0xa65a, 0xffffe6c0}, + {0xa65b, 0xffffe6c1}, + {0xa65c, 0xffffe6c2}, + {0xa65d, 0xffffe6c3}, + {0xa65e, 0xffffe6c4}, + {0xa65f, 0xffffe6c5}, + {0xa660, 0xffffe6c6}, + {0xa661, 0xffffe6c7}, + {0xa662, 0xffffe6c8}, + {0xa663, 0xffffe6c9}, + {0xa664, 0xffffe6ca}, + {0xa665, 0xffffe6cb}, + {0xa666, 0xffffe6cc}, + {0xa667, 0xffffe6cd}, + {0xa668, 0xffffe6ce}, + {0xa669, 0xffffe6cf}, + {0xa66a, 0xffffe6d0}, + {0xa66b, 0xffffe6d1}, + {0xa66c, 0xffffe6d2}, + {0xa66d, 0xffffe6d3}, + {0xa66e, 0xffffe6d4}, + {0xa66f, 0xffffe6d5}, + {0xa670, 0xffffe6d6}, + {0xa671, 0xffffe6d7}, + {0xa672, 0xffffe6d8}, + {0xa673, 0xffffe6d9}, + {0xa674, 0xffffe6da}, + {0xa675, 0xffffe6db}, + {0xa676, 0xffffe6dc}, + {0xa677, 0xffffe6dd}, + {0xa678, 0xffffe6de}, + {0xa679, 0xffffe6df}, + {0xa67a, 0xffffe6e0}, + {0xa67b, 0xffffe6e1}, + {0xa67c, 0xffffe6e2}, + {0xa67d, 0xffffe6e3}, + {0xa67e, 0xffffe6e4}, + {0xa680, 0xffffe6e5}, + {0xa681, 0xffffe6e6}, + {0xa682, 0xffffe6e7}, + {0xa683, 0xffffe6e8}, + {0xa684, 0xffffe6e9}, + {0xa685, 0xffffe6ea}, + {0xa686, 0xffffe6eb}, + {0xa687, 0xffffe6ec}, + {0xa688, 0xffffe6ed}, + {0xa689, 0xffffe6ee}, + {0xa68a, 0xffffe6ef}, + {0xa68b, 0xffffe6f0}, + {0xa68c, 0xffffe6f1}, + {0xa68d, 0xffffe6f2}, + {0xa68e, 0xffffe6f3}, + {0xa68f, 0xffffe6f4}, + {0xa690, 0xffffe6f5}, + {0xa691, 0xffffe6f6}, + {0xa692, 0xffffe6f7}, + {0xa693, 0xffffe6f8}, + {0xa694, 0xffffe6f9}, + {0xa695, 0xffffe6fa}, + {0xa696, 0xffffe6fb}, + {0xa697, 0xffffe6fc}, + {0xa698, 0xffffe6fd}, + {0xa699, 0xffffe6fe}, + {0xa69a, 0xffffe6ff}, + {0xa69b, 0xffffe700}, + {0xa69c, 0xffffe701}, + {0xa69d, 0xffffe702}, + {0xa69e, 0xffffe703}, + {0xa69f, 0xffffe704}, + {0xa6a0, 0xffffe705}, + {0xa6a1, 0x028b}, + {0xa6a2, 0x028c}, + {0xa6a3, 0x028d}, + {0xa6a4, 0x028e}, + {0xa6a5, 0x028f}, + {0xa6a6, 0x0292}, + {0xa6a7, 0x0293}, + {0xa6a8, 0x0294}, + {0xa6a9, 0x0295}, + {0xa6aa, 0x0297}, + {0xa6ab, 0x0298}, + {0xa6ac, 0x0299}, + {0xa6ad, 0x029a}, + {0xa6ae, 0x029b}, + {0xa6af, 0x029c}, + {0xa6b0, 0x029d}, + {0xa6b1, 0x029f}, + {0xa6b2, 0x02a0}, + {0xa6b3, 0x02a1}, + {0xa6b4, 0x02a2}, + {0xa6b5, 0x02a3}, + {0xa6b6, 0x02a4}, + {0xa6b7, 0x02a5}, + {0xa6b8, 0x02a6}, + {0xa6b9, 0xffffe785}, + {0xa6ba, 0xffffe786}, + {0xa6bb, 0xffffe787}, + {0xa6bc, 0xffffe788}, + {0xa6bd, 0xffffe789}, + {0xa6be, 0xffffe78a}, + {0xa6bf, 0xffffe78b}, + {0xa6c0, 0xffffe78c}, + {0xa6c1, 0x028b}, + {0xa6c2, 0x028c}, + {0xa6c3, 0x028d}, + {0xa6c4, 0x028e}, + {0xa6c5, 0x028f}, + {0xa6c6, 0x0292}, + {0xa6c7, 0x0293}, + {0xa6c8, 0x0294}, + {0xa6c9, 0x0295}, + {0xa6ca, 0x0297}, + {0xa6cb, 0x0298}, + {0xa6cc, 0x0299}, + {0xa6cd, 0x029a}, + {0xa6ce, 0x029b}, + {0xa6cf, 0x029c}, + {0xa6d0, 0x029d}, + {0xa6d1, 0x029f}, + {0xa6d2, 0x02a0}, + {0xa6d3, 0x02a1}, + {0xa6d4, 0x02a2}, + {0xa6d5, 0x02a3}, + {0xa6d6, 0x02a4}, + {0xa6d7, 0x02a5}, + {0xa6d8, 0x02a6}, + {0xa6d9, 0xffffe78d}, + {0xa6da, 0xffffe78e}, + {0xa6db, 0xffffe78f}, + {0xa6dc, 0xffffe790}, + {0xa6dd, 0xffffe791}, + {0xa6de, 0xffffe792}, + {0xa6df, 0xffffe793}, + {0xa6e0, 0xfffffe35}, + {0xa6e1, 0xfffffe36}, + {0xa6e2, 0xfffffe39}, + {0xa6e3, 0xfffffe3a}, + {0xa6e4, 0xfffffe3f}, + {0xa6e5, 0xfffffe40}, + {0xa6e6, 0xfffffe3d}, + {0xa6e7, 0xfffffe3e}, + {0xa6e8, 0xfffffe41}, + {0xa6e9, 0xfffffe42}, + {0xa6ea, 0xfffffe43}, + {0xa6eb, 0xfffffe44}, + {0xa6ec, 0xffffe794}, + {0xa6ed, 0xffffe795}, + {0xa6ee, 0xfffffe3b}, + {0xa6ef, 0xfffffe3c}, + {0xa6f0, 0xfffffe37}, + {0xa6f1, 0xfffffe38}, + {0xa6f2, 0xfffffe31}, + {0xa6f3, 0xffffe796}, + {0xa6f4, 0xfffffe33}, + {0xa6f5, 0xfffffe34}, + {0xa6f6, 0xffffe797}, + {0xa6f7, 0xffffe798}, + {0xa6f8, 0xffffe799}, + {0xa6f9, 0xffffe79a}, + {0xa6fa, 0xffffe79b}, + {0xa6fb, 0xffffe79c}, + {0xa6fc, 0xffffe79d}, + {0xa6fd, 0xffffe79e}, + {0xa6fe, 0xffffe79f}, + {0xa740, 0xffffe706}, + {0xa741, 0xffffe707}, + {0xa742, 0xffffe708}, + {0xa743, 0xffffe709}, + {0xa744, 0xffffe70a}, + {0xa745, 0xffffe70b}, + {0xa746, 0xffffe70c}, + {0xa747, 0xffffe70d}, + {0xa748, 0xffffe70e}, + {0xa749, 0xffffe70f}, + {0xa74a, 0xffffe710}, + {0xa74b, 0xffffe711}, + {0xa74c, 0xffffe712}, + {0xa74d, 0xffffe713}, + {0xa74e, 0xffffe714}, + {0xa74f, 0xffffe715}, + {0xa750, 0xffffe716}, + {0xa751, 0xffffe717}, + {0xa752, 0xffffe718}, + {0xa753, 0xffffe719}, + {0xa754, 0xffffe71a}, + {0xa755, 0xffffe71b}, + {0xa756, 0xffffe71c}, + {0xa757, 0xffffe71d}, + {0xa758, 0xffffe71e}, + {0xa759, 0xffffe71f}, + {0xa75a, 0xffffe720}, + {0xa75b, 0xffffe721}, + {0xa75c, 0xffffe722}, + {0xa75d, 0xffffe723}, + {0xa75e, 0xffffe724}, + {0xa75f, 0xffffe725}, + {0xa760, 0xffffe726}, + {0xa761, 0xffffe727}, + {0xa762, 0xffffe728}, + {0xa763, 0xffffe729}, + {0xa764, 0xffffe72a}, + {0xa765, 0xffffe72b}, + {0xa766, 0xffffe72c}, + {0xa767, 0xffffe72d}, + {0xa768, 0xffffe72e}, + {0xa769, 0xffffe72f}, + {0xa76a, 0xffffe730}, + {0xa76b, 0xffffe731}, + {0xa76c, 0xffffe732}, + {0xa76d, 0xffffe733}, + {0xa76e, 0xffffe734}, + {0xa76f, 0xffffe735}, + {0xa770, 0xffffe736}, + {0xa771, 0xffffe737}, + {0xa772, 0xffffe738}, + {0xa773, 0xffffe739}, + {0xa774, 0xffffe73a}, + {0xa775, 0xffffe73b}, + {0xa776, 0xffffe73c}, + {0xa777, 0xffffe73d}, + {0xa778, 0xffffe73e}, + {0xa779, 0xffffe73f}, + {0xa77a, 0xffffe740}, + {0xa77b, 0xffffe741}, + {0xa77c, 0xffffe742}, + {0xa77d, 0xffffe743}, + {0xa77e, 0xffffe744}, + {0xa780, 0xffffe745}, + {0xa781, 0xffffe746}, + {0xa782, 0xffffe747}, + {0xa783, 0xffffe748}, + {0xa784, 0xffffe749}, + {0xa785, 0xffffe74a}, + {0xa786, 0xffffe74b}, + {0xa787, 0xffffe74c}, + {0xa788, 0xffffe74d}, + {0xa789, 0xffffe74e}, + {0xa78a, 0xffffe74f}, + {0xa78b, 0xffffe750}, + {0xa78c, 0xffffe751}, + {0xa78d, 0xffffe752}, + {0xa78e, 0xffffe753}, + {0xa78f, 0xffffe754}, + {0xa790, 0xffffe755}, + {0xa791, 0xffffe756}, + {0xa792, 0xffffe757}, + {0xa793, 0xffffe758}, + {0xa794, 0xffffe759}, + {0xa795, 0xffffe75a}, + {0xa796, 0xffffe75b}, + {0xa797, 0xffffe75c}, + {0xa798, 0xffffe75d}, + {0xa799, 0xffffe75e}, + {0xa79a, 0xffffe75f}, + {0xa79b, 0xffffe760}, + {0xa79c, 0xffffe761}, + {0xa79d, 0xffffe762}, + {0xa79e, 0xffffe763}, + {0xa79f, 0xffffe764}, + {0xa7a0, 0xffffe765}, + {0xa7a1, 0x0313}, + {0xa7a2, 0x0319}, + {0xa7a3, 0x031a}, + {0xa7a4, 0x031b}, + {0xa7a5, 0x031e}, + {0xa7a6, 0x0322}, + {0xa7a7, 0x0322}, + {0xa7a8, 0x0325}, + {0xa7a9, 0x0328}, + {0xa7aa, 0x032c}, + {0xa7ab, 0x0330}, + {0xa7ac, 0x0332}, + {0xa7ad, 0x0338}, + {0xa7ae, 0x033a}, + {0xa7af, 0x033b}, + {0xa7b0, 0x0340}, + {0xa7b1, 0x0344}, + {0xa7b2, 0x0347}, + {0xa7b3, 0x0348}, + {0xa7b4, 0x034a}, + {0xa7b5, 0x034e}, + {0xa7b6, 0x0355}, + {0xa7b7, 0x0356}, + {0xa7b8, 0x035d}, + {0xa7b9, 0x035f}, + {0xa7ba, 0x0367}, + {0xa7bb, 0x0368}, + {0xa7bc, 0x0369}, + {0xa7bd, 0x036a}, + {0xa7be, 0x036c}, + {0xa7bf, 0x036e}, + {0xa7c0, 0x036f}, + {0xa7c1, 0x0370}, + {0xa7c2, 0xffffe7a0}, + {0xa7c3, 0xffffe7a1}, + {0xa7c4, 0xffffe7a2}, + {0xa7c5, 0xffffe7a3}, + {0xa7c6, 0xffffe7a4}, + {0xa7c7, 0xffffe7a5}, + {0xa7c8, 0xffffe7a6}, + {0xa7c9, 0xffffe7a7}, + {0xa7ca, 0xffffe7a8}, + {0xa7cb, 0xffffe7a9}, + {0xa7cc, 0xffffe7aa}, + {0xa7cd, 0xffffe7ab}, + {0xa7ce, 0xffffe7ac}, + {0xa7cf, 0xffffe7ad}, + {0xa7d0, 0xffffe7ae}, + {0xa7d1, 0x0313}, + {0xa7d2, 0x0319}, + {0xa7d3, 0x031a}, + {0xa7d4, 0x031b}, + {0xa7d5, 0x031e}, + {0xa7d6, 0x0322}, + {0xa7d7, 0x0322}, + {0xa7d8, 0x0325}, + {0xa7d9, 0x0328}, + {0xa7da, 0x032c}, + {0xa7db, 0x0330}, + {0xa7dc, 0x0332}, + {0xa7dd, 0x0338}, + {0xa7de, 0x033a}, + {0xa7df, 0x033b}, + {0xa7e0, 0x0340}, + {0xa7e1, 0x0344}, + {0xa7e2, 0x0347}, + {0xa7e3, 0x0348}, + {0xa7e4, 0x034a}, + {0xa7e5, 0x034e}, + {0xa7e6, 0x0355}, + {0xa7e7, 0x0356}, + {0xa7e8, 0x035d}, + {0xa7e9, 0x035f}, + {0xa7ea, 0x0367}, + {0xa7eb, 0x0368}, + {0xa7ec, 0x0369}, + {0xa7ed, 0x036a}, + {0xa7ee, 0x036c}, + {0xa7ef, 0x036e}, + {0xa7f0, 0x036f}, + {0xa7f1, 0x0370}, + {0xa7f2, 0xffffe7af}, + {0xa7f3, 0xffffe7b0}, + {0xa7f4, 0xffffe7b1}, + {0xa7f5, 0xffffe7b2}, + {0xa7f6, 0xffffe7b3}, + {0xa7f7, 0xffffe7b4}, + {0xa7f8, 0xffffe7b5}, + {0xa7f9, 0xffffe7b6}, + {0xa7fa, 0xffffe7b7}, + {0xa7fb, 0xffffe7b8}, + {0xa7fc, 0xffffe7b9}, + {0xa7fd, 0xffffe7ba}, + {0xa7fe, 0xffffe7bb}, + {0xa840, 0xffff02ca}, + {0xa841, 0xffff02cb}, + {0xa842, 0xffff02d9}, + {0xa847, 0x01f40238}, + {0xa848, 0x0209}, + {0xa849, 0xffff2196}, + {0xa84a, 0xffff2197}, + {0xa84b, 0xffff2198}, + {0xa84c, 0xffff2199}, + {0xa84d, 0xffff2215}, + {0xa84e, 0xffff221f}, + {0xa84f, 0x023e}, + {0xa850, 0xffff2252}, + {0xa851, 0xffff2266}, + {0xa852, 0xffff2267}, + {0xa853, 0xffff22bf}, + {0xa854, 0xffff2550}, + {0xa855, 0xffff2551}, + {0xa856, 0xffff2552}, + {0xa857, 0xffff2553}, + {0xa858, 0xffff2554}, + {0xa859, 0xffff2555}, + {0xa85a, 0xffff2556}, + {0xa85b, 0xffff2557}, + {0xa85c, 0xffff2558}, + {0xa85d, 0xffff2559}, + {0xa85e, 0xffff255a}, + {0xa85f, 0xffff255b}, + {0xa860, 0xffff255c}, + {0xa861, 0xffff255d}, + {0xa862, 0xffff255e}, + {0xa863, 0xffff255f}, + {0xa864, 0xffff2560}, + {0xa865, 0xffff2561}, + {0xa866, 0xffff2562}, + {0xa867, 0xffff2563}, + {0xa868, 0xffff2564}, + {0xa869, 0xffff2565}, + {0xa86a, 0xffff2566}, + {0xa86b, 0xffff2567}, + {0xa86c, 0xffff2568}, + {0xa86d, 0xffff2569}, + {0xa86e, 0xffff256a}, + {0xa86f, 0xffff256b}, + {0xa870, 0xffff256c}, + {0xa871, 0xffff256d}, + {0xa872, 0xffff256e}, + {0xa873, 0xffff256f}, + {0xa874, 0xffff2570}, + {0xa875, 0xffff2571}, + {0xa876, 0xffff2572}, + {0xa877, 0xffff2573}, + {0xa878, 0xffff2581}, + {0xa879, 0xffff2582}, + {0xa87a, 0xffff2583}, + {0xa87b, 0xffff2584}, + {0xa87c, 0xffff2585}, + {0xa87d, 0xffff2586}, + {0xa87e, 0xffff2587}, + {0xa880, 0xffff2588}, + {0xa881, 0xffff2589}, + {0xa882, 0xffff258a}, + {0xa883, 0xffff258b}, + {0xa884, 0xffff258c}, + {0xa885, 0xffff258d}, + {0xa886, 0xffff258e}, + {0xa887, 0xffff258f}, + {0xa888, 0xffff2593}, + {0xa889, 0xffff2594}, + {0xa88a, 0xffff2595}, + {0xa88b, 0xffff25bc}, + {0xa88c, 0xffff25bd}, + {0xa88d, 0xffff25e2}, + {0xa88e, 0xffff25e3}, + {0xa88f, 0xffff25e4}, + {0xa890, 0xffff25e5}, + {0xa891, 0xffff2609}, + {0xa892, 0xffff2295}, + {0xa893, 0xffff3012}, + {0xa894, 0xffff301d}, + {0xa895, 0xffff301e}, + {0xa896, 0xffffe7bc}, + {0xa897, 0xffffe7bd}, + {0xa898, 0xffffe7be}, + {0xa899, 0xffffe7bf}, + {0xa89a, 0xffffe7c0}, + {0xa89b, 0xffffe7c1}, + {0xa89c, 0xffffe7c2}, + {0xa89d, 0xffffe7c3}, + {0xa89e, 0xffffe7c4}, + {0xa89f, 0xffffe7c5}, + {0xa8a0, 0xffffe7c6}, + {0xa8a1, 0x01ea}, + {0xa8a2, 0x01ea}, + {0xa8a3, 0x01ea}, + {0xa8a4, 0x01ea}, + {0xa8a5, 0x01fe}, + {0xa8a6, 0x01fe}, + {0xa8a7, 0x01fe}, + {0xa8a8, 0x01fe}, + {0xa8a9, 0x021b}, + {0xa8aa, 0x021b}, + {0xa8ab, 0x021b}, + {0xa8ac, 0x021b}, + {0xa8ad, 0x0238}, + {0xa8ae, 0x0238}, + {0xa8af, 0x0238}, + {0xa8b0, 0x0238}, + {0xa8b1, 0x025b}, + {0xa8b2, 0x025b}, + {0xa8b3, 0x025b}, + {0xa8b4, 0x025b}, + {0xa8b5, 0x025b}, + {0xa8b6, 0x025b}, + {0xa8b7, 0x025b}, + {0xa8b8, 0x025b}, + {0xa8b9, 0x025b}, + {0xa8ba, 0x01fe}, + {0xa8bb, 0x01ed}, + {0xa8bc, 0xffffe7c7}, + {0xa8bd, 0x0232}, + {0xa8be, 0x0232}, + {0xa8bf, 0x0232}, + {0xa8c0, 0x0211}, + {0xa8c1, 0xffffe7c9}, + {0xa8c2, 0xffffe7ca}, + {0xa8c3, 0xffffe7cb}, + {0xa8c4, 0xffffe7cc}, + {0xa8c5, 0xffff3105}, + {0xa8c6, 0xffff3106}, + {0xa8c7, 0xffff3107}, + {0xa8c8, 0xffff3108}, + {0xa8c9, 0xffff3109}, + {0xa8ca, 0xffff310a}, + {0xa8cb, 0xffff310b}, + {0xa8cc, 0xffff310c}, + {0xa8cd, 0xffff310d}, + {0xa8ce, 0xffff310e}, + {0xa8cf, 0xffff310f}, + {0xa8d0, 0xffff3110}, + {0xa8d1, 0xffff3111}, + {0xa8d2, 0xffff3112}, + {0xa8d3, 0xffff3113}, + {0xa8d4, 0xffff3114}, + {0xa8d5, 0xffff3115}, + {0xa8d6, 0xffff3116}, + {0xa8d7, 0xffff3117}, + {0xa8d8, 0xffff3118}, + {0xa8d9, 0xffff3119}, + {0xa8da, 0xffff311a}, + {0xa8db, 0xffff311b}, + {0xa8dc, 0xffff311c}, + {0xa8dd, 0xffff311d}, + {0xa8de, 0xffff311e}, + {0xa8df, 0xffff311f}, + {0xa8e0, 0xffff3120}, + {0xa8e1, 0xffff3121}, + {0xa8e2, 0xffff3122}, + {0xa8e3, 0xffff3123}, + {0xa8e4, 0xffff3124}, + {0xa8e5, 0xffff3125}, + {0xa8e6, 0xffff3126}, + {0xa8e7, 0xffff3127}, + {0xa8e8, 0xffff3128}, + {0xa8e9, 0xffff3129}, + {0xa8ea, 0xffffe7cd}, + {0xa8eb, 0xffffe7ce}, + {0xa8ec, 0xffffe7cf}, + {0xa8ed, 0xffffe7d0}, + {0xa8ee, 0xffffe7d1}, + {0xa8ef, 0xffffe7d2}, + {0xa8f0, 0xffffe7d3}, + {0xa8f1, 0xffffe7d4}, + {0xa8f2, 0xffffe7d5}, + {0xa8f3, 0xffffe7d6}, + {0xa8f4, 0xffffe7d7}, + {0xa8f5, 0xffffe7d8}, + {0xa8f6, 0xffffe7d9}, + {0xa8f7, 0xffffe7da}, + {0xa8f8, 0xffffe7db}, + {0xa8f9, 0xffffe7dc}, + {0xa8fa, 0xffffe7dd}, + {0xa8fb, 0xffffe7de}, + {0xa8fc, 0xffffe7df}, + {0xa8fd, 0xffffe7e0}, + {0xa8fe, 0xffffe7e1}, + {0xa940, 0x017a}, + {0xa941, 0x017b}, + {0xa942, 0x017c}, + {0xa943, 0x017d}, + {0xa944, 0x017e}, + {0xa945, 0x017f}, + {0xa946, 0x0180}, + {0xa947, 0x0181}, + {0xa948, 0x0182}, + {0xa949, 0xffff32a3}, + {0xa94a, 0xffff338e}, + {0xa94b, 0xffff338f}, + {0xa94c, 0xffff339c}, + {0xa94d, 0xffff339d}, + {0xa94e, 0xffff339e}, + {0xa94f, 0xffff33a1}, + {0xa950, 0xffff33c4}, + {0xa951, 0xffff33ce}, + {0xa952, 0xffff33d1}, + {0xa953, 0xffff33d2}, + {0xa954, 0xffff33d5}, + {0xa955, 0xfffffe30}, + {0xa956, 0xffffffe2}, + {0xa957, 0xffffffe4}, + {0xa958, 0xffffe7e2}, + {0xa95a, 0xffff3231}, + {0xa95b, 0xffffe7e3}, + {0xa95d, 0xffffe7e4}, + {0xa95e, 0xffffe7e5}, + {0xa95f, 0xffffe7e6}, + {0xa960, 0x3740}, + {0xa961, 0x36f7}, + {0xa962, 0x36f8}, + {0xa963, 0x3738}, + {0xa964, 0x3738}, + {0xa965, 0xffff3006}, + {0xa966, 0x3738}, + {0xa967, 0x3738}, + {0xa968, 0xfffffe49}, + {0xa969, 0xfffffe4a}, + {0xa96a, 0xfffffe4b}, + {0xa96b, 0xfffffe4c}, + {0xa96c, 0xfffffe4d}, + {0xa96d, 0xfffffe4e}, + {0xa96e, 0xfffffe4f}, + {0xa96f, 0xfffffe50}, + {0xa970, 0xfffffe51}, + {0xa971, 0xfffffe52}, + {0xa972, 0xfffffe54}, + {0xa973, 0xfffffe55}, + {0xa974, 0xfffffe56}, + {0xa975, 0xfffffe57}, + {0xa976, 0xfffffe59}, + {0xa977, 0xfffffe5a}, + {0xa978, 0xfffffe5b}, + {0xa979, 0xfffffe5c}, + {0xa97a, 0xfffffe5d}, + {0xa97b, 0xfffffe5e}, + {0xa97c, 0xfffffe5f}, + {0xa97d, 0xfffffe60}, + {0xa97e, 0xfffffe61}, + {0xa980, 0xfffffe62}, + {0xa981, 0xfffffe63}, + {0xa982, 0xfffffe64}, + {0xa983, 0xfffffe65}, + {0xa984, 0xfffffe66}, + {0xa985, 0xfffffe68}, + {0xa986, 0x0089}, + {0xa987, 0xfffffe6a}, + {0xa988, 0xfffffe6b}, + {0xa989, 0xffff303e}, + {0xa98a, 0xffff2ff0}, + {0xa98b, 0xffff2ff1}, + {0xa98c, 0xffff2ff2}, + {0xa98d, 0xffff2ff3}, + {0xa98e, 0xffff2ff4}, + {0xa98f, 0xffff2ff5}, + {0xa990, 0xffff2ff6}, + {0xa991, 0xffff2ff7}, + {0xa992, 0xffff2ff8}, + {0xa993, 0xffff2ff9}, + {0xa994, 0xffff2ffa}, + {0xa995, 0xffff2ffb}, + {0xa996, 0x0179}, + {0xa997, 0xffffe7f4}, + {0xa998, 0xffffe7f5}, + {0xa999, 0xffffe7f6}, + {0xa99a, 0xffffe7f7}, + {0xa99b, 0xffffe7f8}, + {0xa99c, 0xffffe7f9}, + {0xa99d, 0xffffe7fa}, + {0xa99e, 0xffffe7fb}, + {0xa99f, 0xffffe7fc}, + {0xa9a0, 0xffffe7fd}, + {0xa9a1, 0xffffe7fe}, + {0xa9a2, 0xffffe7ff}, + {0xa9a3, 0xffffe800}, + {0xa9a4, 0xffff2500}, + {0xa9a5, 0xffff2501}, + {0xa9a6, 0xffff2502}, + {0xa9a7, 0xffff2503}, + {0xa9a8, 0xffff2504}, + {0xa9a9, 0xffff2505}, + {0xa9aa, 0xffff2506}, + {0xa9ab, 0xffff2507}, + {0xa9ac, 0xffff2508}, + {0xa9ad, 0xffff2509}, + {0xa9ae, 0xffff250a}, + {0xa9af, 0xffff250b}, + {0xa9b0, 0xffff250c}, + {0xa9b1, 0xffff250d}, + {0xa9b2, 0xffff250e}, + {0xa9b3, 0xffff250f}, + {0xa9b4, 0xffff2510}, + {0xa9b5, 0xffff2511}, + {0xa9b6, 0xffff2512}, + {0xa9b7, 0xffff2513}, + {0xa9b8, 0xffff2514}, + {0xa9b9, 0xffff2515}, + {0xa9ba, 0xffff2516}, + {0xa9bb, 0xffff2517}, + {0xa9bc, 0xffff2518}, + {0xa9bd, 0xffff2519}, + {0xa9be, 0xffff251a}, + {0xa9bf, 0xffff251b}, + {0xa9c0, 0xffff251c}, + {0xa9c1, 0xffff251d}, + {0xa9c2, 0xffff251e}, + {0xa9c3, 0xffff251f}, + {0xa9c4, 0xffff2520}, + {0xa9c5, 0xffff2521}, + {0xa9c6, 0xffff2522}, + {0xa9c7, 0xffff2523}, + {0xa9c8, 0xffff2524}, + {0xa9c9, 0xffff2525}, + {0xa9ca, 0xffff2526}, + {0xa9cb, 0xffff2527}, + {0xa9cc, 0xffff2528}, + {0xa9cd, 0xffff2529}, + {0xa9ce, 0xffff252a}, + {0xa9cf, 0xffff252b}, + {0xa9d0, 0xffff252c}, + {0xa9d1, 0xffff252d}, + {0xa9d2, 0xffff252e}, + {0xa9d3, 0xffff252f}, + {0xa9d4, 0xffff2530}, + {0xa9d5, 0xffff2531}, + {0xa9d6, 0xffff2532}, + {0xa9d7, 0xffff2533}, + {0xa9d8, 0xffff2534}, + {0xa9d9, 0xffff2535}, + {0xa9da, 0xffff2536}, + {0xa9db, 0xffff2537}, + {0xa9dc, 0xffff2538}, + {0xa9dd, 0xffff2539}, + {0xa9de, 0xffff253a}, + {0xa9df, 0xffff253b}, + {0xa9e0, 0xffff253c}, + {0xa9e1, 0xffff253d}, + {0xa9e2, 0xffff253e}, + {0xa9e3, 0xffff253f}, + {0xa9e4, 0xffff2540}, + {0xa9e5, 0xffff2541}, + {0xa9e6, 0xffff2542}, + {0xa9e7, 0xffff2543}, + {0xa9e8, 0xffff2544}, + {0xa9e9, 0xffff2545}, + {0xa9ea, 0xffff2546}, + {0xa9eb, 0xffff2547}, + {0xa9ec, 0xffff2548}, + {0xa9ed, 0xffff2549}, + {0xa9ee, 0xffff254a}, + {0xa9ef, 0xffff254b}, + {0xa9f0, 0xffffe801}, + {0xa9f1, 0xffffe802}, + {0xa9f2, 0xffffe803}, + {0xa9f3, 0xffffe804}, + {0xa9f4, 0xffffe805}, + {0xa9f5, 0xffffe806}, + {0xa9f6, 0xffffe807}, + {0xa9f7, 0xffffe808}, + {0xa9f8, 0xffffe809}, + {0xa9f9, 0xffffe80a}, + {0xa9fa, 0xffffe80b}, + {0xa9fb, 0xffffe80c}, + {0xa9fc, 0xffffe80d}, + {0xa9fd, 0xffffe80e}, + {0xa9fe, 0xffffe80f}, + {0xaa40, 0x7061}, + {0xaa41, 0xa8b5}, + {0xaa42, 0x614d}, + {0xaa43, 0x5e46}, + {0xaa44, 0xbf66}, + {0xaa45, 0x64bc}, + {0xaa46, 0xaf05}, + {0xaa47, 0x9440}, + {0xaa48, 0x9bce}, + {0xaa49, 0x9fc8}, + {0xaa4a, 0x7391}, + {0xaa4b, 0x7d89}, + {0xaa4c, 0xa60d}, + {0xaa4d, 0xa7ad}, + {0xaa4e, 0x3e44}, + {0xaa4f, 0xc215}, + {0xaa50, 0xafe8}, + {0xaa51, 0x93e1}, + {0xaa52, 0x5d5c}, + {0xaa53, 0x6ae1}, + {0xaa54, 0x85d0}, + {0xaa55, 0x5449}, + {0xaa56, 0xa9f4}, + {0xaa57, 0x3d12}, + {0xaa58, 0x8a48}, + {0xaa59, 0x4065}, + {0xaa5a, 0xb670}, + {0xaa5b, 0x7281}, + {0xaa5c, 0x66b0}, + {0xaa5d, 0x8c66}, + {0xaa5e, 0x71be}, + {0xaa5f, 0xb0c2}, + {0xaa60, 0xc6a9}, + {0xaa61, 0xc22c}, + {0xaa62, 0xc0d0}, + {0xaa63, 0xaf51}, + {0xaa64, 0x77ba}, + {0xaa65, 0x43b0}, + {0xaa66, 0xc65c}, + {0xaa67, 0x573a}, + {0xaa68, 0x5552}, + {0xaa69, 0xa4ae}, + {0xaa6a, 0xbaf0}, + {0xaa6b, 0x4908}, + {0xaa6c, 0xa0ac}, + {0xaa6d, 0xaf8d}, + {0xaa6e, 0xaabe}, + {0xaa6f, 0x6626}, + {0xaa70, 0x3fee}, + {0xaa71, 0xb83d}, + {0xaa72, 0xb1f2}, + {0xaa73, 0x9b44}, + {0xaa74, 0x41c6}, + {0xaa75, 0x80fa}, + {0xaa76, 0x9a04}, + {0xaa77, 0x7cba}, + {0xaa78, 0xbb06}, + {0xaa79, 0x4c02}, + {0xaa7a, 0xba39}, + {0xaa7b, 0x967d}, + {0xaa7c, 0x5dcd}, + {0xaa7d, 0x8c6e}, + {0xaa7e, 0xb4e9}, + {0xaa80, 0xc022}, + {0xaa81, 0x431d}, + {0xaa82, 0x5dd4}, + {0xaa83, 0x7d56}, + {0xaa84, 0x6835}, + {0xaa85, 0x81ce}, + {0xaa86, 0x445a}, + {0xaa87, 0x3c31}, + {0xaa88, 0x5864}, + {0xaa89, 0x4b1c}, + {0xaa8a, 0x3e9e}, + {0xaa8b, 0x3faa}, + {0xaa8c, 0x3f96}, + {0xaa8d, 0x6200}, + {0xaa8e, 0x4241}, + {0xaa8f, 0x7801}, + {0xaa90, 0xad82}, + {0xaa91, 0x9ff0}, + {0xaa92, 0xb261}, + {0xaa93, 0x990a}, + {0xaa94, 0xaa19}, + {0xaa95, 0x97ac}, + {0xaa96, 0x5160}, + {0xaa97, 0x6924}, + {0xaa98, 0x5905}, + {0xaa99, 0x6d7d}, + {0xaa9a, 0x5099}, + {0xaa9b, 0x6311}, + {0xaa9c, 0x70b9}, + {0xaa9d, 0xa8d8}, + {0xaa9e, 0xa8d9}, + {0xaa9f, 0x8498}, + {0xaaa0, 0x3ffc}, + {0xaaa1, 0xffffe000}, + {0xaaa2, 0xffffe001}, + {0xaaa3, 0xffffe002}, + {0xaaa4, 0xffffe003}, + {0xaaa5, 0xffffe004}, + {0xaaa6, 0xffffe005}, + {0xaaa7, 0xffffe006}, + {0xaaa8, 0xffffe007}, + {0xaaa9, 0xffffe008}, + {0xaaaa, 0xffffe009}, + {0xaaab, 0xffffe00a}, + {0xaaac, 0xffffe00b}, + {0xaaad, 0xffffe00c}, + {0xaaae, 0xffffe00d}, + {0xaaaf, 0xffffe00e}, + {0xaab0, 0xffffe00f}, + {0xaab1, 0xffffe010}, + {0xaab2, 0xffffe011}, + {0xaab3, 0xffffe012}, + {0xaab4, 0xffffe013}, + {0xaab5, 0xffffe014}, + {0xaab6, 0xffffe015}, + {0xaab7, 0xffffe016}, + {0xaab8, 0xffffe017}, + {0xaab9, 0xffffe018}, + {0xaaba, 0xffffe019}, + {0xaabb, 0xffffe01a}, + {0xaabc, 0xffffe01b}, + {0xaabd, 0xffffe01c}, + {0xaabe, 0xffffe01d}, + {0xaabf, 0xffffe01e}, + {0xaac0, 0xffffe01f}, + {0xaac1, 0xffffe020}, + {0xaac2, 0xffffe021}, + {0xaac3, 0xffffe022}, + {0xaac4, 0xffffe023}, + {0xaac5, 0xffffe024}, + {0xaac6, 0xffffe025}, + {0xaac7, 0xffffe026}, + {0xaac8, 0xffffe027}, + {0xaac9, 0xffffe028}, + {0xaaca, 0xffffe029}, + {0xaacb, 0xffffe02a}, + {0xaacc, 0xffffe02b}, + {0xaacd, 0xffffe02c}, + {0xaace, 0xffffe02d}, + {0xaacf, 0xffffe02e}, + {0xaad0, 0xffffe02f}, + {0xaad1, 0xffffe030}, + {0xaad2, 0xffffe031}, + {0xaad3, 0xffffe032}, + {0xaad4, 0xffffe033}, + {0xaad5, 0xffffe034}, + {0xaad6, 0xffffe035}, + {0xaad7, 0xffffe036}, + {0xaad8, 0xffffe037}, + {0xaad9, 0xffffe038}, + {0xaada, 0xffffe039}, + {0xaadb, 0xffffe03a}, + {0xaadc, 0xffffe03b}, + {0xaadd, 0xffffe03c}, + {0xaade, 0xffffe03d}, + {0xaadf, 0xffffe03e}, + {0xaae0, 0xffffe03f}, + {0xaae1, 0xffffe040}, + {0xaae2, 0xffffe041}, + {0xaae3, 0xffffe042}, + {0xaae4, 0xffffe043}, + {0xaae5, 0xffffe044}, + {0xaae6, 0xffffe045}, + {0xaae7, 0xffffe046}, + {0xaae8, 0xffffe047}, + {0xaae9, 0xffffe048}, + {0xaaea, 0xffffe049}, + {0xaaeb, 0xffffe04a}, + {0xaaec, 0xffffe04b}, + {0xaaed, 0xffffe04c}, + {0xaaee, 0xffffe04d}, + {0xaaef, 0xffffe04e}, + {0xaaf0, 0xffffe04f}, + {0xaaf1, 0xffffe050}, + {0xaaf2, 0xffffe051}, + {0xaaf3, 0xffffe052}, + {0xaaf4, 0xffffe053}, + {0xaaf5, 0xffffe054}, + {0xaaf6, 0xffffe055}, + {0xaaf7, 0xffffe056}, + {0xaaf8, 0xffffe057}, + {0xaaf9, 0xffffe058}, + {0xaafa, 0xffffe059}, + {0xaafb, 0xffffe05a}, + {0xaafc, 0xffffe05b}, + {0xaafd, 0xffffe05c}, + {0xaafe, 0xffffe05d}, + {0xab40, 0x63da}, + {0xab41, 0x8509}, + {0xab42, 0x7ef1}, + {0xab43, 0x77d2}, + {0xab44, 0x82e9}, + {0xab45, 0x5b82}, + {0xab46, 0x97ad}, + {0xab47, 0x7a76}, + {0xab48, 0x9bc8}, + {0xab49, 0xa948}, + {0xab4a, 0x7f64}, + {0xab4b, 0x90ec}, + {0xab4c, 0x82f1}, + {0xab4d, 0x7bd4}, + {0xab4e, 0xa8ea}, + {0xab4f, 0x8aad}, + {0xab50, 0x6e1d}, + {0xab51, 0x8056}, + {0xab52, 0xc5bc}, + {0xab53, 0x7a65}, + {0xab54, 0x9a4d}, + {0xab55, 0x8ed2}, + {0xab56, 0x5749}, + {0xab57, 0x73f2}, + {0xab58, 0x3c8c}, + {0xab59, 0x5f29}, + {0xab5a, 0x4e45}, + {0xab5b, 0x491e}, + {0xab5c, 0x5798}, + {0xab5d, 0xb8e2}, + {0xab5e, 0x8ac0}, + {0xab5f, 0xb8e4}, + {0xab60, 0x4542}, + {0xab61, 0x5f31}, + {0xab62, 0xa55c}, + {0xab63, 0x55c9}, + {0xab64, 0x69f1}, + {0xab65, 0xaf76}, + {0xab66, 0x7ea1}, + {0xab67, 0x3d86}, + {0xab68, 0xbb72}, + {0xab69, 0x6d9e}, + {0xab6a, 0xbc0a}, + {0xab6b, 0x6da0}, + {0xab6c, 0x66a1}, + {0xab6d, 0x4c88}, + {0xab6e, 0x8885}, + {0xab6f, 0x8c62}, + {0xab70, 0xb47a}, + {0xab71, 0x3bd1}, + {0xab72, 0x88be}, + {0xab73, 0x5632}, + {0xab74, 0xadd9}, + {0xab75, 0x49ed}, + {0xab76, 0x59dd}, + {0xab77, 0x666a}, + {0xab78, 0x9512}, + {0xab79, 0x49f8}, + {0xab7a, 0x90da}, + {0xab7b, 0x9614}, + {0xab7c, 0x958a}, + {0xab7d, 0x9c16}, + {0xab7e, 0xc709}, + {0xab80, 0x7961}, + {0xab81, 0x3f3a}, + {0xab82, 0xc001}, + {0xab83, 0x6a30}, + {0xab84, 0x6908}, + {0xab85, 0x6796}, + {0xab86, 0x758e}, + {0xab87, 0x5b72}, + {0xab88, 0xa815}, + {0xab89, 0xc32d}, + {0xab8a, 0xaf9e}, + {0xab8b, 0xaca1}, + {0xab8c, 0xb14e}, + {0xab8d, 0xad12}, + {0xab8e, 0x9a5a}, + {0xab8f, 0x8da6}, + {0xab90, 0xb5fe}, + {0xab91, 0xaed0}, + {0xab92, 0x3dd1}, + {0xab93, 0xa9b6}, + {0xab94, 0xa7ae}, + {0xab95, 0x5b9d}, + {0xab96, 0x47b6}, + {0xab97, 0xad48}, + {0xab98, 0x86b8}, + {0xab99, 0x73c4}, + {0xab9a, 0x4ce0}, + {0xab9b, 0xb68d}, + {0xab9c, 0xa435}, + {0xab9d, 0x521d}, + {0xab9e, 0x4694}, + {0xab9f, 0x9e06}, + {0xaba0, 0xa566}, + {0xaba1, 0xffffe05e}, + {0xaba2, 0xffffe05f}, + {0xaba3, 0xffffe060}, + {0xaba4, 0xffffe061}, + {0xaba5, 0xffffe062}, + {0xaba6, 0xffffe063}, + {0xaba7, 0xffffe064}, + {0xaba8, 0xffffe065}, + {0xaba9, 0xffffe066}, + {0xabaa, 0xffffe067}, + {0xabab, 0xffffe068}, + {0xabac, 0xffffe069}, + {0xabad, 0xffffe06a}, + {0xabae, 0xffffe06b}, + {0xabaf, 0xffffe06c}, + {0xabb0, 0xffffe06d}, + {0xabb1, 0xffffe06e}, + {0xabb2, 0xffffe06f}, + {0xabb3, 0xffffe070}, + {0xabb4, 0xffffe071}, + {0xabb5, 0xffffe072}, + {0xabb6, 0xffffe073}, + {0xabb7, 0xffffe074}, + {0xabb8, 0xffffe075}, + {0xabb9, 0xffffe076}, + {0xabba, 0xffffe077}, + {0xabbb, 0xffffe078}, + {0xabbc, 0xffffe079}, + {0xabbd, 0xffffe07a}, + {0xabbe, 0xffffe07b}, + {0xabbf, 0xffffe07c}, + {0xabc0, 0xffffe07d}, + {0xabc1, 0xffffe07e}, + {0xabc2, 0xffffe07f}, + {0xabc3, 0xffffe080}, + {0xabc4, 0xffffe081}, + {0xabc5, 0xffffe082}, + {0xabc6, 0xffffe083}, + {0xabc7, 0xffffe084}, + {0xabc8, 0xffffe085}, + {0xabc9, 0xffffe086}, + {0xabca, 0xffffe087}, + {0xabcb, 0xffffe088}, + {0xabcc, 0xffffe089}, + {0xabcd, 0xffffe08a}, + {0xabce, 0xffffe08b}, + {0xabcf, 0xffffe08c}, + {0xabd0, 0xffffe08d}, + {0xabd1, 0xffffe08e}, + {0xabd2, 0xffffe08f}, + {0xabd3, 0xffffe090}, + {0xabd4, 0xffffe091}, + {0xabd5, 0xffffe092}, + {0xabd6, 0xffffe093}, + {0xabd7, 0xffffe094}, + {0xabd8, 0xffffe095}, + {0xabd9, 0xffffe096}, + {0xabda, 0xffffe097}, + {0xabdb, 0xffffe098}, + {0xabdc, 0xffffe099}, + {0xabdd, 0xffffe09a}, + {0xabde, 0xffffe09b}, + {0xabdf, 0xffffe09c}, + {0xabe0, 0xffffe09d}, + {0xabe1, 0xffffe09e}, + {0xabe2, 0xffffe09f}, + {0xabe3, 0xffffe0a0}, + {0xabe4, 0xffffe0a1}, + {0xabe5, 0xffffe0a2}, + {0xabe6, 0xffffe0a3}, + {0xabe7, 0xffffe0a4}, + {0xabe8, 0xffffe0a5}, + {0xabe9, 0xffffe0a6}, + {0xabea, 0xffffe0a7}, + {0xabeb, 0xffffe0a8}, + {0xabec, 0xffffe0a9}, + {0xabed, 0xffffe0aa}, + {0xabee, 0xffffe0ab}, + {0xabef, 0xffffe0ac}, + {0xabf0, 0xffffe0ad}, + {0xabf1, 0xffffe0ae}, + {0xabf2, 0xffffe0af}, + {0xabf3, 0xffffe0b0}, + {0xabf4, 0xffffe0b1}, + {0xabf5, 0xffffe0b2}, + {0xabf6, 0xffffe0b3}, + {0xabf7, 0xffffe0b4}, + {0xabf8, 0xffffe0b5}, + {0xabf9, 0xffffe0b6}, + {0xabfa, 0xffffe0b7}, + {0xabfb, 0xffffe0b8}, + {0xabfc, 0xffffe0b9}, + {0xabfd, 0xffffe0ba}, + {0xabfe, 0xffffe0bb}, + {0xac40, 0xa530}, + {0xac41, 0x468e}, + {0xac42, 0x6e65}, + {0xac43, 0x7e32}, + {0xac44, 0x3e50}, + {0xac45, 0x9fa0}, + {0xac46, 0xa911}, + {0xac47, 0x48c1}, + {0xac48, 0x5d66}, + {0xac49, 0xade1}, + {0xac4a, 0xaff1}, + {0xac4b, 0xae15}, + {0xac4c, 0xaca5}, + {0xac4d, 0x5651}, + {0xac4e, 0xa624}, + {0xac4f, 0x7892}, + {0xac50, 0x759e}, + {0xac51, 0x6a34}, + {0xac52, 0x9b89}, + {0xac53, 0x554a}, + {0xac54, 0xa225}, + {0xac55, 0x4ed1}, + {0xac56, 0x8889}, + {0xac57, 0xbea8}, + {0xac58, 0x93a0}, + {0xac59, 0x80a5}, + {0xac5a, 0xba10}, + {0xac5b, 0x7286}, + {0xac5c, 0x80a6}, + {0xac5d, 0x9654}, + {0xac5e, 0xa31c}, + {0xac5f, 0x9ed5}, + {0xac60, 0x48c9}, + {0xac61, 0x3ebe}, + {0xac62, 0x464a}, + {0xac63, 0x5296}, + {0xac64, 0x44f2}, + {0xac65, 0x3ec0}, + {0xac66, 0x7ae6}, + {0xac67, 0x5b1d}, + {0xac68, 0x4efd}, + {0xac69, 0x3e58}, + {0xac6a, 0x8c68}, + {0xac6b, 0xc541}, + {0xac6c, 0x8db1}, + {0xac6d, 0x5365}, + {0xac6e, 0x6a36}, + {0xac6f, 0x50c6}, + {0xac70, 0x6a04}, + {0xac71, 0x6274}, + {0xac72, 0xb9a9}, + {0xac73, 0x7e48}, + {0xac74, 0x4980}, + {0xac75, 0xadae}, + {0xac76, 0x9e1a}, + {0xac77, 0xabe2}, + {0xac78, 0x4c35}, + {0xac79, 0x9200}, + {0xac7a, 0x80aa}, + {0xac7b, 0x66ce}, + {0xac7c, 0xa37c}, + {0xac7d, 0x9284}, + {0xac7e, 0x61b1}, + {0xac80, 0xaaca}, + {0xac81, 0x4900}, + {0xac82, 0x6749}, + {0xac83, 0xc4b0}, + {0xac84, 0x454c}, + {0xac85, 0x76d9}, + {0xac86, 0x9021}, + {0xac87, 0x5100}, + {0xac88, 0xaf52}, + {0xac89, 0x61f9}, + {0xac8a, 0x7926}, + {0xac8b, 0x9685}, + {0xac8c, 0x91c6}, + {0xac8d, 0x9b95}, + {0xac8e, 0xb1fc}, + {0xac8f, 0xa416}, + {0xac90, 0xa570}, + {0xac91, 0xc031}, + {0xac92, 0x6aa5}, + {0xac93, 0xb70c}, + {0xac94, 0x7cbd}, + {0xac95, 0x9d76}, + {0xac96, 0x792a}, + {0xac97, 0x75d0}, + {0xac98, 0x7355}, + {0xac99, 0x9eea}, + {0xac9a, 0x8c7a}, + {0xac9b, 0x4b70}, + {0xac9c, 0x6dda}, + {0xac9d, 0xbf5a}, + {0xac9e, 0x40e8}, + {0xac9f, 0x97e5}, + {0xaca0, 0x4521}, + {0xaca1, 0xffffe0bc}, + {0xaca2, 0xffffe0bd}, + {0xaca3, 0xffffe0be}, + {0xaca4, 0xffffe0bf}, + {0xaca5, 0xffffe0c0}, + {0xaca6, 0xffffe0c1}, + {0xaca7, 0xffffe0c2}, + {0xaca8, 0xffffe0c3}, + {0xaca9, 0xffffe0c4}, + {0xacaa, 0xffffe0c5}, + {0xacab, 0xffffe0c6}, + {0xacac, 0xffffe0c7}, + {0xacad, 0xffffe0c8}, + {0xacae, 0xffffe0c9}, + {0xacaf, 0xffffe0ca}, + {0xacb0, 0xffffe0cb}, + {0xacb1, 0xffffe0cc}, + {0xacb2, 0xffffe0cd}, + {0xacb3, 0xffffe0ce}, + {0xacb4, 0xffffe0cf}, + {0xacb5, 0xffffe0d0}, + {0xacb6, 0xffffe0d1}, + {0xacb7, 0xffffe0d2}, + {0xacb8, 0xffffe0d3}, + {0xacb9, 0xffffe0d4}, + {0xacba, 0xffffe0d5}, + {0xacbb, 0xffffe0d6}, + {0xacbc, 0xffffe0d7}, + {0xacbd, 0xffffe0d8}, + {0xacbe, 0xffffe0d9}, + {0xacbf, 0xffffe0da}, + {0xacc0, 0xffffe0db}, + {0xacc1, 0xffffe0dc}, + {0xacc2, 0xffffe0dd}, + {0xacc3, 0xffffe0de}, + {0xacc4, 0xffffe0df}, + {0xacc5, 0xffffe0e0}, + {0xacc6, 0xffffe0e1}, + {0xacc7, 0xffffe0e2}, + {0xacc8, 0xffffe0e3}, + {0xacc9, 0xffffe0e4}, + {0xacca, 0xffffe0e5}, + {0xaccb, 0xffffe0e6}, + {0xaccc, 0xffffe0e7}, + {0xaccd, 0xffffe0e8}, + {0xacce, 0xffffe0e9}, + {0xaccf, 0xffffe0ea}, + {0xacd0, 0xffffe0eb}, + {0xacd1, 0xffffe0ec}, + {0xacd2, 0xffffe0ed}, + {0xacd3, 0xffffe0ee}, + {0xacd4, 0xffffe0ef}, + {0xacd5, 0xffffe0f0}, + {0xacd6, 0xffffe0f1}, + {0xacd7, 0xffffe0f2}, + {0xacd8, 0xffffe0f3}, + {0xacd9, 0xffffe0f4}, + {0xacda, 0xffffe0f5}, + {0xacdb, 0xffffe0f6}, + {0xacdc, 0xffffe0f7}, + {0xacdd, 0xffffe0f8}, + {0xacde, 0xffffe0f9}, + {0xacdf, 0xffffe0fa}, + {0xace0, 0xffffe0fb}, + {0xace1, 0xffffe0fc}, + {0xace2, 0xffffe0fd}, + {0xace3, 0xffffe0fe}, + {0xace4, 0xffffe0ff}, + {0xace5, 0xffffe100}, + {0xace6, 0xffffe101}, + {0xace7, 0xffffe102}, + {0xace8, 0xffffe103}, + {0xace9, 0xffffe104}, + {0xacea, 0xffffe105}, + {0xaceb, 0xffffe106}, + {0xacec, 0xffffe107}, + {0xaced, 0xffffe108}, + {0xacee, 0xffffe109}, + {0xacef, 0xffffe10a}, + {0xacf0, 0xffffe10b}, + {0xacf1, 0xffffe10c}, + {0xacf2, 0xffffe10d}, + {0xacf3, 0xffffe10e}, + {0xacf4, 0xffffe10f}, + {0xacf5, 0xffffe110}, + {0xacf6, 0xffffe111}, + {0xacf7, 0xffffe112}, + {0xacf8, 0xffffe113}, + {0xacf9, 0xffffe114}, + {0xacfa, 0xffffe115}, + {0xacfb, 0xffffe116}, + {0xacfc, 0xffffe117}, + {0xacfd, 0xffffe118}, + {0xacfe, 0xffffe119}, + {0xad40, 0x71d9}, + {0xad41, 0xc491}, + {0xad42, 0x4a7c}, + {0xad43, 0xb346}, + {0xad44, 0x8a7d}, + {0xad45, 0x6b19}, + {0xad46, 0xbd24}, + {0xad47, 0x8f1c}, + {0xad48, 0x3c39}, + {0xad49, 0x76b0}, + {0xad4a, 0x7eaa}, + {0xad4b, 0xb625}, + {0xad4c, 0x60d6}, + {0xad4d, 0xa3e1}, + {0xad4e, 0xa53c}, + {0xad4f, 0x4da1}, + {0xad50, 0xacad}, + {0xad51, 0xbdb9}, + {0xad52, 0xaef1}, + {0xad53, 0x8f96}, + {0xad54, 0x4d20}, + {0xad55, 0x7808}, + {0xad56, 0x775a}, + {0xad57, 0x8e90}, + {0xad58, 0x9aa9}, + {0xad59, 0x5bbc}, + {0xad5a, 0x6b1e}, + {0xad5b, 0x53ac}, + {0xad5c, 0x6a40}, + {0xad5d, 0x7935}, + {0xad5e, 0x6462}, + {0xad5f, 0x6312}, + {0xad60, 0x6b20}, + {0xad61, 0x3b91}, + {0xad62, 0xbd28}, + {0xad63, 0x4cea}, + {0xad64, 0x68ea}, + {0xad65, 0x5c56}, + {0xad66, 0x9cc9}, + {0xad67, 0x631e}, + {0xad68, 0x616c}, + {0xad69, 0x93b9}, + {0xad6a, 0x9b26}, + {0xad6b, 0x9ebd}, + {0xad6c, 0x48a4}, + {0xad6d, 0xb960}, + {0xad6e, 0x6ac2}, + {0xad6f, 0x7a78}, + {0xad70, 0x40f9}, + {0xad71, 0x9808}, + {0xad72, 0xc740}, + {0xad73, 0x72dd}, + {0xad74, 0xa71c}, + {0xad75, 0x65de}, + {0xad76, 0xadf0}, + {0xad77, 0x9291}, + {0xad78, 0xa4e5}, + {0xad79, 0x578c}, + {0xad7a, 0x741a}, + {0xad7b, 0x50a8}, + {0xad7c, 0x7605}, + {0xad7d, 0xc2b0}, + {0xad7e, 0x920d}, + {0xad80, 0x7642}, + {0xad81, 0xbcd9}, + {0xad82, 0x8e92}, + {0xad83, 0x9e7a}, + {0xad84, 0x5bc9}, + {0xad85, 0x9aec}, + {0xad86, 0x7262}, + {0xad87, 0x79c1}, + {0xad88, 0x7a80}, + {0xad89, 0x7612}, + {0xad8a, 0x7336}, + {0xad8b, 0xb6d6}, + {0xad8c, 0x7f6c}, + {0xad8d, 0xa979}, + {0xad8e, 0x8e98}, + {0xad8f, 0x5b54}, + {0xad90, 0x4d75}, + {0xad91, 0xbce5}, + {0xad92, 0x617e}, + {0xad93, 0x4198}, + {0xad94, 0x41aa}, + {0xad95, 0xc18a}, + {0xad96, 0x7639}, + {0xad97, 0x96e6}, + {0xad98, 0xa980}, + {0xad99, 0x8bce}, + {0xad9a, 0x3d41}, + {0xad9b, 0x86cd}, + {0xad9c, 0x542a}, + {0xad9d, 0x4c89}, + {0xad9e, 0x54d6}, + {0xad9f, 0x8082}, + {0xada0, 0xa1d6}, + {0xada1, 0xffffe11a}, + {0xada2, 0xffffe11b}, + {0xada3, 0xffffe11c}, + {0xada4, 0xffffe11d}, + {0xada5, 0xffffe11e}, + {0xada6, 0xffffe11f}, + {0xada7, 0xffffe120}, + {0xada8, 0xffffe121}, + {0xada9, 0xffffe122}, + {0xadaa, 0xffffe123}, + {0xadab, 0xffffe124}, + {0xadac, 0xffffe125}, + {0xadad, 0xffffe126}, + {0xadae, 0xffffe127}, + {0xadaf, 0xffffe128}, + {0xadb0, 0xffffe129}, + {0xadb1, 0xffffe12a}, + {0xadb2, 0xffffe12b}, + {0xadb3, 0xffffe12c}, + {0xadb4, 0xffffe12d}, + {0xadb5, 0xffffe12e}, + {0xadb6, 0xffffe12f}, + {0xadb7, 0xffffe130}, + {0xadb8, 0xffffe131}, + {0xadb9, 0xffffe132}, + {0xadba, 0xffffe133}, + {0xadbb, 0xffffe134}, + {0xadbc, 0xffffe135}, + {0xadbd, 0xffffe136}, + {0xadbe, 0xffffe137}, + {0xadbf, 0xffffe138}, + {0xadc0, 0xffffe139}, + {0xadc1, 0xffffe13a}, + {0xadc2, 0xffffe13b}, + {0xadc3, 0xffffe13c}, + {0xadc4, 0xffffe13d}, + {0xadc5, 0xffffe13e}, + {0xadc6, 0xffffe13f}, + {0xadc7, 0xffffe140}, + {0xadc8, 0xffffe141}, + {0xadc9, 0xffffe142}, + {0xadca, 0xffffe143}, + {0xadcb, 0xffffe144}, + {0xadcc, 0xffffe145}, + {0xadcd, 0xffffe146}, + {0xadce, 0xffffe147}, + {0xadcf, 0xffffe148}, + {0xadd0, 0xffffe149}, + {0xadd1, 0xffffe14a}, + {0xadd2, 0xffffe14b}, + {0xadd3, 0xffffe14c}, + {0xadd4, 0xffffe14d}, + {0xadd5, 0xffffe14e}, + {0xadd6, 0xffffe14f}, + {0xadd7, 0xffffe150}, + {0xadd8, 0xffffe151}, + {0xadd9, 0xffffe152}, + {0xadda, 0xffffe153}, + {0xaddb, 0xffffe154}, + {0xaddc, 0xffffe155}, + {0xaddd, 0xffffe156}, + {0xadde, 0xffffe157}, + {0xaddf, 0xffffe158}, + {0xade0, 0xffffe159}, + {0xade1, 0xffffe15a}, + {0xade2, 0xffffe15b}, + {0xade3, 0xffffe15c}, + {0xade4, 0xffffe15d}, + {0xade5, 0xffffe15e}, + {0xade6, 0xffffe15f}, + {0xade7, 0xffffe160}, + {0xade8, 0xffffe161}, + {0xade9, 0xffffe162}, + {0xadea, 0xffffe163}, + {0xadeb, 0xffffe164}, + {0xadec, 0xffffe165}, + {0xaded, 0xffffe166}, + {0xadee, 0xffffe167}, + {0xadef, 0xffffe168}, + {0xadf0, 0xffffe169}, + {0xadf1, 0xffffe16a}, + {0xadf2, 0xffffe16b}, + {0xadf3, 0xffffe16c}, + {0xadf4, 0xffffe16d}, + {0xadf5, 0xffffe16e}, + {0xadf6, 0xffffe16f}, + {0xadf7, 0xffffe170}, + {0xadf8, 0xffffe171}, + {0xadf9, 0xffffe172}, + {0xadfa, 0xffffe173}, + {0xadfb, 0xffffe174}, + {0xadfc, 0xffffe175}, + {0xadfd, 0xffffe176}, + {0xadfe, 0xffffe177}, + {0xae40, 0x6011}, + {0xae41, 0xb382}, + {0xae42, 0x3d05}, + {0xae43, 0x6d66}, + {0xae44, 0x4512}, + {0xae45, 0x46dc}, + {0xae46, 0x7524}, + {0xae47, 0x4d10}, + {0xae48, 0x7f1c}, + {0xae49, 0xc504}, + {0xae4a, 0x88d4}, + {0xae4b, 0x3ff6}, + {0xae4c, 0xc386}, + {0xae4d, 0x7525}, + {0xae4e, 0x4a0e}, + {0xae4f, 0xb6ac}, + {0xae50, 0x8b26}, + {0xae51, 0xa889}, + {0xae52, 0x7a38}, + {0xae53, 0x4e84}, + {0xae54, 0x8589}, + {0xae55, 0xc492}, + {0xae56, 0x784a}, + {0xae57, 0xa57d}, + {0xae58, 0x4cd4}, + {0xae59, 0xa4a0}, + {0xae5a, 0xb6c5}, + {0xae5b, 0xb085}, + {0xae5c, 0x9ea6}, + {0xae5d, 0x5d2a}, + {0xae5e, 0x4515}, + {0xae5f, 0x8e1e}, + {0xae60, 0x9592}, + {0xae61, 0x44a1}, + {0xae62, 0x44a2}, + {0xae63, 0x9296}, + {0xae64, 0x9a3a}, + {0xae65, 0x95aa}, + {0xae66, 0x7ac1}, + {0xae67, 0x5599}, + {0xae68, 0xbdf8}, + {0xae69, 0x560a}, + {0xae6a, 0x88a2}, + {0xae6b, 0x4f9c}, + {0xae6c, 0x9048}, + {0xae6d, 0x7ec6}, + {0xae6e, 0x3f32}, + {0xae6f, 0x6be1}, + {0xae70, 0x9b4d}, + {0xae71, 0x790d}, + {0xae72, 0x81e0}, + {0xae73, 0xbbe0}, + {0xae74, 0x5634}, + {0xae75, 0x591d}, + {0xae76, 0x69f4}, + {0xae77, 0x5635}, + {0xae78, 0x9ea0}, + {0xae79, 0x81e1}, + {0xae7a, 0x9db6}, + {0xae7b, 0x6801}, + {0xae7c, 0xa1ba}, + {0xae7d, 0x5645}, + {0xae7e, 0x8296}, + {0xae80, 0x81e5}, + {0xae81, 0x81e6}, + {0xae82, 0x4369}, + {0xae83, 0x9ea5}, + {0xae84, 0x575d}, + {0xae85, 0x3f49}, + {0xae86, 0x4bb1}, + {0xae87, 0xc22d}, + {0xae88, 0x7c89}, + {0xae89, 0x85e9}, + {0xae8a, 0xb329}, + {0xae8b, 0x60fa}, + {0xae8c, 0xb922}, + {0xae8d, 0xb924}, + {0xae8e, 0x81e9}, + {0xae8f, 0x6e6c}, + {0xae90, 0xb4ac}, + {0xae91, 0x7916}, + {0xae92, 0x4f60}, + {0xae93, 0x60fd}, + {0xae94, 0x4ce4}, + {0xae95, 0xc506}, + {0xae96, 0x6851}, + {0xae97, 0x46b0}, + {0xae98, 0x454e}, + {0xae99, 0xa12e}, + {0xae9a, 0x7410}, + {0xae9b, 0x43d1}, + {0xae9c, 0x7936}, + {0xae9d, 0x4f78}, + {0xae9e, 0x784e}, + {0xae9f, 0x6819}, + {0xaea0, 0x482d}, + {0xaea1, 0xffffe178}, + {0xaea2, 0xffffe179}, + {0xaea3, 0xffffe17a}, + {0xaea4, 0xffffe17b}, + {0xaea5, 0xffffe17c}, + {0xaea6, 0xffffe17d}, + {0xaea7, 0xffffe17e}, + {0xaea8, 0xffffe17f}, + {0xaea9, 0xffffe180}, + {0xaeaa, 0xffffe181}, + {0xaeab, 0xffffe182}, + {0xaeac, 0xffffe183}, + {0xaead, 0xffffe184}, + {0xaeae, 0xffffe185}, + {0xaeaf, 0xffffe186}, + {0xaeb0, 0xffffe187}, + {0xaeb1, 0xffffe188}, + {0xaeb2, 0xffffe189}, + {0xaeb3, 0xffffe18a}, + {0xaeb4, 0xffffe18b}, + {0xaeb5, 0xffffe18c}, + {0xaeb6, 0xffffe18d}, + {0xaeb7, 0xffffe18e}, + {0xaeb8, 0xffffe18f}, + {0xaeb9, 0xffffe190}, + {0xaeba, 0xffffe191}, + {0xaebb, 0xffffe192}, + {0xaebc, 0xffffe193}, + {0xaebd, 0xffffe194}, + {0xaebe, 0xffffe195}, + {0xaebf, 0xffffe196}, + {0xaec0, 0xffffe197}, + {0xaec1, 0xffffe198}, + {0xaec2, 0xffffe199}, + {0xaec3, 0xffffe19a}, + {0xaec4, 0xffffe19b}, + {0xaec5, 0xffffe19c}, + {0xaec6, 0xffffe19d}, + {0xaec7, 0xffffe19e}, + {0xaec8, 0xffffe19f}, + {0xaec9, 0xffffe1a0}, + {0xaeca, 0xffffe1a1}, + {0xaecb, 0xffffe1a2}, + {0xaecc, 0xffffe1a3}, + {0xaecd, 0xffffe1a4}, + {0xaece, 0xffffe1a5}, + {0xaecf, 0xffffe1a6}, + {0xaed0, 0xffffe1a7}, + {0xaed1, 0xffffe1a8}, + {0xaed2, 0xffffe1a9}, + {0xaed3, 0xffffe1aa}, + {0xaed4, 0xffffe1ab}, + {0xaed5, 0xffffe1ac}, + {0xaed6, 0xffffe1ad}, + {0xaed7, 0xffffe1ae}, + {0xaed8, 0xffffe1af}, + {0xaed9, 0xffffe1b0}, + {0xaeda, 0xffffe1b1}, + {0xaedb, 0xffffe1b2}, + {0xaedc, 0xffffe1b3}, + {0xaedd, 0xffffe1b4}, + {0xaede, 0xffffe1b5}, + {0xaedf, 0xffffe1b6}, + {0xaee0, 0xffffe1b7}, + {0xaee1, 0xffffe1b8}, + {0xaee2, 0xffffe1b9}, + {0xaee3, 0xffffe1ba}, + {0xaee4, 0xffffe1bb}, + {0xaee5, 0xffffe1bc}, + {0xaee6, 0xffffe1bd}, + {0xaee7, 0xffffe1be}, + {0xaee8, 0xffffe1bf}, + {0xaee9, 0xffffe1c0}, + {0xaeea, 0xffffe1c1}, + {0xaeeb, 0xffffe1c2}, + {0xaeec, 0xffffe1c3}, + {0xaeed, 0xffffe1c4}, + {0xaeee, 0xffffe1c5}, + {0xaeef, 0xffffe1c6}, + {0xaef0, 0xffffe1c7}, + {0xaef1, 0xffffe1c8}, + {0xaef2, 0xffffe1c9}, + {0xaef3, 0xffffe1ca}, + {0xaef4, 0xffffe1cb}, + {0xaef5, 0xffffe1cc}, + {0xaef6, 0xffffe1cd}, + {0xaef7, 0xffffe1ce}, + {0xaef8, 0xffffe1cf}, + {0xaef9, 0xffffe1d0}, + {0xaefa, 0xffffe1d1}, + {0xaefb, 0xffffe1d2}, + {0xaefc, 0xffffe1d3}, + {0xaefd, 0xffffe1d4}, + {0xaefe, 0xffffe1d5}, + {0xaf40, 0x8808}, + {0xaf41, 0x4f82}, + {0xaf42, 0x4f85}, + {0xaf43, 0x696d}, + {0xaf44, 0x4ca9}, + {0xaf45, 0x97d6}, + {0xaf46, 0xc26a}, + {0xaf47, 0x826a}, + {0xaf48, 0x3efd}, + {0xaf49, 0x5804}, + {0xaf4a, 0xc35a}, + {0xaf4b, 0xa7e8}, + {0xaf4c, 0xacc1}, + {0xaf4d, 0x4628}, + {0xaf4e, 0xae78}, + {0xaf4f, 0x8a22}, + {0xaf50, 0xa788}, + {0xaf51, 0x4b31}, + {0xaf52, 0x3f3c}, + {0xaf53, 0xc6a6}, + {0xaf54, 0xae34}, + {0xaf55, 0xc148}, + {0xaf56, 0x5348}, + {0xaf57, 0xc1d4}, + {0xaf58, 0x548e}, + {0xaf59, 0x6c28}, + {0xaf5a, 0x9445}, + {0xaf5b, 0x83a1}, + {0xaf5c, 0x9dcc}, + {0xaf5d, 0x9fb5}, + {0xaf5e, 0x6938}, + {0xaf5f, 0xa35d}, + {0xaf60, 0x62a1}, + {0xaf61, 0x9c66}, + {0xaf62, 0x477a}, + {0xaf63, 0x7e8a}, + {0xaf64, 0x6b49}, + {0xaf65, 0xa9f8}, + {0xaf66, 0xa04e}, + {0xaf67, 0x7d91}, + {0xaf68, 0xa9f9}, + {0xaf69, 0x9ab9}, + {0xaf6a, 0x896d}, + {0xaf6b, 0x51ac}, + {0xaf6c, 0x97a2}, + {0xaf6d, 0xb4ea}, + {0xaf6e, 0x3eb0}, + {0xaf6f, 0xbf31}, + {0xaf70, 0x5b20}, + {0xaf71, 0x7ca4}, + {0xaf72, 0x77f4}, + {0xaf73, 0x659d}, + {0xaf74, 0x9ed9}, + {0xaf75, 0x3bb9}, + {0xaf76, 0x4786}, + {0xaf77, 0x3f7d}, + {0xaf78, 0x80ac}, + {0xaf79, 0x511a}, + {0xaf7a, 0x6f65}, + {0xaf7b, 0xaf66}, + {0xaf7c, 0x4ad0}, + {0xaf7d, 0x95fc}, + {0xaf7e, 0xc302}, + {0xaf80, 0xc26c}, + {0xaf81, 0xba3a}, + {0xaf82, 0x555c}, + {0xaf83, 0xb164}, + {0xaf84, 0x460d}, + {0xaf85, 0xa079}, + {0xaf86, 0x5c6e}, + {0xaf87, 0xa43e}, + {0xaf88, 0x61b5}, + {0xaf89, 0x7074}, + {0xaf8a, 0xb5cc}, + {0xaf8b, 0x6ded}, + {0xaf8c, 0xa675}, + {0xaf8d, 0x5b0c}, + {0xaf8e, 0xb51e}, + {0xaf8f, 0x4935}, + {0xaf90, 0x62f9}, + {0xaf91, 0x8574}, + {0xaf92, 0x4e96}, + {0xaf93, 0xbf3c}, + {0xaf94, 0x9602}, + {0xaf95, 0x4ade}, + {0xaf96, 0xb53d}, + {0xaf97, 0xc6b1}, + {0xaf98, 0x9a36}, + {0xaf99, 0x93b2}, + {0xaf9a, 0x4f32}, + {0xaf9b, 0x7a45}, + {0xaf9c, 0x7a46}, + {0xaf9d, 0x8dcd}, + {0xaf9e, 0x568e}, + {0xaf9f, 0x7760}, + {0xafa0, 0x8d06}, + {0xafa1, 0xffffe1d6}, + {0xafa2, 0xffffe1d7}, + {0xafa3, 0xffffe1d8}, + {0xafa4, 0xffffe1d9}, + {0xafa5, 0xffffe1da}, + {0xafa6, 0xffffe1db}, + {0xafa7, 0xffffe1dc}, + {0xafa8, 0xffffe1dd}, + {0xafa9, 0xffffe1de}, + {0xafaa, 0xffffe1df}, + {0xafab, 0xffffe1e0}, + {0xafac, 0xffffe1e1}, + {0xafad, 0xffffe1e2}, + {0xafae, 0xffffe1e3}, + {0xafaf, 0xffffe1e4}, + {0xafb0, 0xffffe1e5}, + {0xafb1, 0xffffe1e6}, + {0xafb2, 0xffffe1e7}, + {0xafb3, 0xffffe1e8}, + {0xafb4, 0xffffe1e9}, + {0xafb5, 0xffffe1ea}, + {0xafb6, 0xffffe1eb}, + {0xafb7, 0xffffe1ec}, + {0xafb8, 0xffffe1ed}, + {0xafb9, 0xffffe1ee}, + {0xafba, 0xffffe1ef}, + {0xafbb, 0xffffe1f0}, + {0xafbc, 0xffffe1f1}, + {0xafbd, 0xffffe1f2}, + {0xafbe, 0xffffe1f3}, + {0xafbf, 0xffffe1f4}, + {0xafc0, 0xffffe1f5}, + {0xafc1, 0xffffe1f6}, + {0xafc2, 0xffffe1f7}, + {0xafc3, 0xffffe1f8}, + {0xafc4, 0xffffe1f9}, + {0xafc5, 0xffffe1fa}, + {0xafc6, 0xffffe1fb}, + {0xafc7, 0xffffe1fc}, + {0xafc8, 0xffffe1fd}, + {0xafc9, 0xffffe1fe}, + {0xafca, 0xffffe1ff}, + {0xafcb, 0xffffe200}, + {0xafcc, 0xffffe201}, + {0xafcd, 0xffffe202}, + {0xafce, 0xffffe203}, + {0xafcf, 0xffffe204}, + {0xafd0, 0xffffe205}, + {0xafd1, 0xffffe206}, + {0xafd2, 0xffffe207}, + {0xafd3, 0xffffe208}, + {0xafd4, 0xffffe209}, + {0xafd5, 0xffffe20a}, + {0xafd6, 0xffffe20b}, + {0xafd7, 0xffffe20c}, + {0xafd8, 0xffffe20d}, + {0xafd9, 0xffffe20e}, + {0xafda, 0xffffe20f}, + {0xafdb, 0xffffe210}, + {0xafdc, 0xffffe211}, + {0xafdd, 0xffffe212}, + {0xafde, 0xffffe213}, + {0xafdf, 0xffffe214}, + {0xafe0, 0xffffe215}, + {0xafe1, 0xffffe216}, + {0xafe2, 0xffffe217}, + {0xafe3, 0xffffe218}, + {0xafe4, 0xffffe219}, + {0xafe5, 0xffffe21a}, + {0xafe6, 0xffffe21b}, + {0xafe7, 0xffffe21c}, + {0xafe8, 0xffffe21d}, + {0xafe9, 0xffffe21e}, + {0xafea, 0xffffe21f}, + {0xafeb, 0xffffe220}, + {0xafec, 0xffffe221}, + {0xafed, 0xffffe222}, + {0xafee, 0xffffe223}, + {0xafef, 0xffffe224}, + {0xaff0, 0xffffe225}, + {0xaff1, 0xffffe226}, + {0xaff2, 0xffffe227}, + {0xaff3, 0xffffe228}, + {0xaff4, 0xffffe229}, + {0xaff5, 0xffffe22a}, + {0xaff6, 0xffffe22b}, + {0xaff7, 0xffffe22c}, + {0xaff8, 0xffffe22d}, + {0xaff9, 0xffffe22e}, + {0xaffa, 0xffffe22f}, + {0xaffb, 0xffffe230}, + {0xaffc, 0xffffe231}, + {0xaffd, 0xffffe232}, + {0xaffe, 0xffffe233}, + {0xb040, 0x793a}, + {0xb041, 0x73ac}, + {0xb042, 0xa8a0}, + {0xb043, 0x54a5}, + {0xb044, 0x4c7d}, + {0xb045, 0xb67a}, + {0xb046, 0x5eb9}, + {0xb047, 0xa8a1}, + {0xb048, 0x5b0e}, + {0xb049, 0xa2f1}, + {0xb04a, 0x84f9}, + {0xb04b, 0xba6e}, + {0xb04c, 0xa334}, + {0xb04d, 0xb79e}, + {0xb04e, 0x744a}, + {0xb04f, 0x75ea}, + {0xb050, 0x9821}, + {0xb051, 0x4cd5}, + {0xb052, 0x7839}, + {0xb053, 0x783a}, + {0xb054, 0x40d0}, + {0xb055, 0x65e9}, + {0xb056, 0x46fc}, + {0xb057, 0xb195}, + {0xb058, 0x6956}, + {0xb059, 0xc0f2}, + {0xb05a, 0x7e1e}, + {0xb05b, 0x761e}, + {0xb05c, 0x63f6}, + {0xb05d, 0x72b2}, + {0xb05e, 0x648a}, + {0xb05f, 0xae02}, + {0xb060, 0xb75a}, + {0xb061, 0xb660}, + {0xb062, 0xb7ac}, + {0xb063, 0x9c79}, + {0xb064, 0x4ea5}, + {0xb065, 0x7bf8}, + {0xb066, 0x7b76}, + {0xb067, 0x7b78}, + {0xb068, 0x4161}, + {0xb069, 0xffff7677}, + {0xb06a, 0x3cb6}, + {0xb06b, 0x5336}, + {0xb06c, 0x5338}, + {0xb06d, 0x8d44}, + {0xb06e, 0x3ed8}, + {0xb06f, 0xbd2e}, + {0xb070, 0x7de2}, + {0xb071, 0x85b2}, + {0xb072, 0x4a34}, + {0xb073, 0x787d}, + {0xb074, 0x8165}, + {0xb075, 0x64bd}, + {0xb076, 0x8738}, + {0xb077, 0x5835}, + {0xb078, 0x5220}, + {0xb079, 0x5d6d}, + {0xb07a, 0x3f6c}, + {0xb07b, 0x4812}, + {0xb07c, 0x8c3c}, + {0xb07d, 0x3b4d}, + {0xb07e, 0xaa5a}, + {0xb080, 0x5e10}, + {0xb081, 0x6248}, + {0xb082, 0x5e11}, + {0xb083, 0xbd7a}, + {0xb084, 0x4b2a}, + {0xb085, 0x5e14}, + {0xb086, 0xaa60}, + {0xb087, 0xb2de}, + {0xb088, 0x5e18}, + {0xb089, 0x68ed}, + {0xb08a, 0x3b95}, + {0xb08b, 0xabf6}, + {0xb08c, 0x623d}, + {0xb08d, 0x7614}, + {0xb08e, 0x885e}, + {0xb08f, 0x5e99}, + {0xb090, 0x692e}, + {0xb091, 0x57bd}, + {0xb092, 0x867d}, + {0xb093, 0x8f0a}, + {0xb094, 0x9079}, + {0xb095, 0xbde6}, + {0xb096, 0x5a7a}, + {0xb097, 0x6e41}, + {0xb098, 0x6e42}, + {0xb099, 0xc38e}, + {0xb09a, 0xbded}, + {0xb09b, 0xffff76bc}, + {0xb09c, 0xbec4}, + {0xb09d, 0x50a9}, + {0xb09e, 0x8ac1}, + {0xb09f, 0xb6e9}, + {0xb0a0, 0x3e16}, + {0xb0a1, 0x3b2c}, + {0xb0a2, 0x3b2a}, + {0xb0a3, 0x3b36}, + {0xb0a4, 0x3b38}, + {0xb0a5, 0x3b32}, + {0xb0a6, 0x3b35}, + {0xb0a7, 0x3b34}, + {0xb0a8, 0x3b42}, + {0xb0a9, 0x3b4e}, + {0xb0aa, 0x3b59}, + {0xb0ab, 0x3b58}, + {0xb0ac, 0x3b66}, + {0xb0ad, 0x3b7a}, + {0xb0ae, 0x3b6d}, + {0xb0af, 0x3b72}, + {0xb0b0, 0x3bc1}, + {0xb0b1, 0x3baa}, + {0xb0b2, 0x3ba0}, + {0xb0b3, 0x3bd8}, + {0xb0b4, 0x3bea}, + {0xb0b5, 0x3bf6}, + {0xb0b6, 0x3be9}, + {0xb0b7, 0x3bf0}, + {0xb0b8, 0x3bee}, + {0xb0b9, 0x3c01}, + {0xb0ba, 0x3c06}, + {0xb0bb, 0x3c12}, + {0xb0bc, 0x3c15}, + {0xb0bd, 0x3c22}, + {0xb0be, 0x3c36}, + {0xb0bf, 0x3c3c}, + {0xb0c0, 0x3c55}, + {0xb0c1, 0x3c64}, + {0xb0c2, 0x3c66}, + {0xb0c3, 0x3c76}, + {0xb0c4, 0x3c79}, + {0xb0c5, 0x3c91}, + {0xb0c6, 0x3c99}, + {0xb0c7, 0x3c89}, + {0xb0c8, 0x3c88}, + {0xb0c9, 0x3c8d}, + {0xb0ca, 0x3c9a}, + {0xb0cb, 0x3c84}, + {0xb0cc, 0x3c96}, + {0xb0cd, 0x3c86}, + {0xb0ce, 0x3cb2}, + {0xb0cf, 0x3cbe}, + {0xb0d0, 0x3cce}, + {0xb0d1, 0x3cca}, + {0xb0d2, 0x85be}, + {0xb0d3, 0x3cd0}, + {0xb0d4, 0x3ce4}, + {0xb0d5, 0x3cd5}, + {0xb0d6, 0x3cd2}, + {0xb0d7, 0x3cf1}, + {0xb0d8, 0x3cf8}, + {0xb0d9, 0x3cf5}, + {0xb0da, 0x3d00}, + {0xb0db, 0x3cf6}, + {0xb0dc, 0x3d0c}, + {0xb0dd, 0x3d0d}, + {0xb0de, 0x3d14}, + {0xb0df, 0x3d28}, + {0xb0e0, 0x3d24}, + {0xb0e1, 0x3d29}, + {0xb0e2, 0x3d20}, + {0xb0e3, 0x3d25}, + {0xb0e4, 0x3d26}, + {0xb0e5, 0x3d3e}, + {0xb0e6, 0x3d40}, + {0xb0e7, 0x3d52}, + {0xb0e8, 0x3d58}, + {0xb0e9, 0x3d51}, + {0xb0ea, 0x3d64}, + {0xb0eb, 0x3d50}, + {0xb0ec, 0x3d4e}, + {0xb0ed, 0x3d59}, + {0xb0ee, 0x3d66}, + {0xb0ef, 0x3d6a}, + {0xb0f0, 0x3d6e}, + {0xb0f1, 0x3d81}, + {0xb0f2, 0x3d84}, + {0xb0f3, 0x3d7d}, + {0xb0f4, 0x3d8e}, + {0xb0f5, 0x3d9d}, + {0xb0f6, 0x3d89}, + {0xb0f7, 0x3d9e}, + {0xb0f8, 0x3d8d}, + {0xb0f9, 0x3d92}, + {0xb0fa, 0x3da9}, + {0xb0fb, 0x3daa}, + {0xb0fc, 0x3da5}, + {0xb0fd, 0x3db2}, + {0xb0fe, 0x4168}, + {0xb140, 0xbf49}, + {0xb141, 0x5e48}, + {0xb142, 0x5e52}, + {0xb143, 0x4169}, + {0xb144, 0xa235}, + {0xb145, 0xb8c4}, + {0xb146, 0x53e8}, + {0xb147, 0x56b5}, + {0xb148, 0x8f0c}, + {0xb149, 0x4d61}, + {0xb14a, 0x7af1}, + {0xb14b, 0xbeac}, + {0xb14c, 0x74d8}, + {0xb14d, 0x6a5e}, + {0xb14e, 0xad76}, + {0xb14f, 0x66d8}, + {0xb150, 0x85fd}, + {0xb151, 0x3bc2}, + {0xb152, 0x7a6d}, + {0xb153, 0xad24}, + {0xb154, 0xc34a}, + {0xb155, 0x4d21}, + {0xb156, 0x3bc9}, + {0xb157, 0x5a8a}, + {0xb158, 0x7615}, + {0xb159, 0x57d9}, + {0xb15a, 0xa2b6}, + {0xb15b, 0x8b00}, + {0xb15c, 0xbb2d}, + {0xb15d, 0x9ea1}, + {0xb15e, 0xab90}, + {0xb15f, 0xa73c}, + {0xb160, 0x553c}, + {0xb161, 0x8094}, + {0xb162, 0x80ea}, + {0xb163, 0x972e}, + {0xb164, 0xbbe1}, + {0xb165, 0x85e8}, + {0xb166, 0x542c}, + {0xb167, 0x7dec}, + {0xb168, 0xa8fe}, + {0xb169, 0x9736}, + {0xb16a, 0xb126}, + {0xb16b, 0xc0c8}, + {0xb16c, 0xb22e}, + {0xb16d, 0x9594}, + {0xb16e, 0x63b8}, + {0xb16f, 0x4bfd}, + {0xb170, 0xc05c}, + {0xb171, 0x710c}, + {0xb172, 0x6c29}, + {0xb173, 0x95f0}, + {0xb174, 0x7e86}, + {0xb175, 0x8166}, + {0xb176, 0xc440}, + {0xb177, 0xc00a}, + {0xb178, 0x9738}, + {0xb179, 0x4f50}, + {0xb17a, 0x83a2}, + {0xb17b, 0xc641}, + {0xb17c, 0x4582}, + {0xb17d, 0x4136}, + {0xb17e, 0x7f85}, + {0xb180, 0x7998}, + {0xb181, 0x9fd8}, + {0xb182, 0x4f90}, + {0xb183, 0x4e58}, + {0xb184, 0x8319}, + {0xb185, 0x80f1}, + {0xb186, 0xae16}, + {0xb187, 0xc090}, + {0xb188, 0xb150}, + {0xb189, 0x816e}, + {0xb18a, 0xc314}, + {0xb18b, 0x8168}, + {0xb18c, 0x7e40}, + {0xb18d, 0x8cf2}, + {0xb18e, 0x5d6e}, + {0xb18f, 0x6181}, + {0xb190, 0x46ca}, + {0xb191, 0x4b80}, + {0xb192, 0x6d6d}, + {0xb193, 0x5221}, + {0xb194, 0x7d3a}, + {0xb195, 0xa918}, + {0xb196, 0xa63c}, + {0xb197, 0x71fe}, + {0xb198, 0x9479}, + {0xb199, 0x9eda}, + {0xb19a, 0x5c51}, + {0xb19b, 0xa202}, + {0xb19c, 0x7499}, + {0xb19d, 0x9758}, + {0xb19e, 0x8e82}, + {0xb19f, 0x77c4}, + {0xb1a0, 0xc0de}, + {0xb1a1, 0x41ed}, + {0xb1a2, 0x3dbd}, + {0xb1a3, 0x3dca}, + {0xb1a4, 0x3dd4}, + {0xb1a5, 0x3dc9}, + {0xb1a6, 0x3dc6}, + {0xb1a7, 0x3df2}, + {0xb1a8, 0x3df1}, + {0xb1a9, 0x3e04}, + {0xb1aa, 0x3df6}, + {0xb1ab, 0x3e00}, + {0xb1ac, 0x3e0c}, + {0xb1ad, 0x3e15}, + {0xb1ae, 0x3e20}, + {0xb1af, 0x3e19}, + {0xb1b0, 0x3e14}, + {0xb1b1, 0x3e2a}, + {0xb1b2, 0x3e5a}, + {0xb1b3, 0x3e3c}, + {0xb1b4, 0x3e30}, + {0xb1b5, 0x3e3d}, + {0xb1b6, 0x3e41}, + {0xb1b7, 0x3e31}, + {0xb1b8, 0x3e36}, + {0xb1b9, 0x3e55}, + {0xb1ba, 0x3e56}, + {0xb1bb, 0x3e45}, + {0xb1bc, 0x3e7c}, + {0xb1bd, 0x3e8c}, + {0xb1be, 0x3e89}, + {0xb1bf, 0x3e98}, + {0xb1c0, 0x3ea6}, + {0xb1c1, 0x3ea8}, + {0xb1c2, 0x3eb8}, + {0xb1c3, 0x3ec8}, + {0xb1c4, 0x3ed4}, + {0xb1c5, 0x3ec9}, + {0xb1c6, 0x3edd}, + {0xb1c7, 0x3eee}, + {0xb1c8, 0x3ef2}, + {0xb1c9, 0x3f14}, + {0xb1ca, 0x3f0a}, + {0xb1cb, 0x3f00}, + {0xb1cc, 0x3f98}, + {0xb1cd, 0x3f80}, + {0xb1ce, 0x3f9e}, + {0xb1cf, 0x3f1d}, + {0xb1d0, 0x3f46}, + {0xb1d1, 0x3f39}, + {0xb1d2, 0x3f1a}, + {0xb1d3, 0x3f24}, + {0xb1d4, 0x3f7c}, + {0xb1d5, 0x3f1e}, + {0xb1d6, 0x3f58}, + {0xb1d7, 0x3f94}, + {0xb1d8, 0x3f1c}, + {0xb1d9, 0x3f86}, + {0xb1da, 0x3fb4}, + {0xb1db, 0x3fc8}, + {0xb1dc, 0x3fbe}, + {0xb1dd, 0x3f40}, + {0xb1de, 0x4002}, + {0xb1df, 0x3fea}, + {0xb1e0, 0x3ff0}, + {0xb1e1, 0x400a}, + {0xb1e2, 0x400c}, + {0xb1e3, 0x4030}, + {0xb1e4, 0x4029}, + {0xb1e5, 0x401c}, + {0xb1e6, 0x404c}, + {0xb1e7, 0x404d}, + {0xb1e8, 0x4050}, + {0xb1e9, 0x403e}, + {0xb1ea, 0x405a}, + {0xb1eb, 0x4062}, + {0xb1ec, 0x4074}, + {0xb1ed, 0x4099}, + {0xb1ee, 0x40b6}, + {0xb1ef, 0x40b4}, + {0xb1f0, 0x40be}, + {0xb1f1, 0x40ce}, + {0xb1f2, 0x40dd}, + {0xb1f3, 0x40e0}, + {0xb1f4, 0x40f0}, + {0xb1f5, 0x40e4}, + {0xb1f6, 0x40da}, + {0xb1f7, 0x4108}, + {0xb1f8, 0x411d}, + {0xb1f9, 0x411c}, + {0xb1fa, 0x4132}, + {0xb1fb, 0x4126}, + {0xb1fc, 0x412d}, + {0xb1fd, 0x4135}, + {0xb1fe, 0x4134}, + {0xb240, 0x74c4}, + {0xb241, 0x729d}, + {0xb242, 0x9b10}, + {0xb243, 0x6d74}, + {0xb244, 0x87f0}, + {0xb245, 0x635a}, + {0xb246, 0x7af2}, + {0xb247, 0x583e}, + {0xb248, 0xc361}, + {0xb249, 0xb940}, + {0xb24a, 0x635c}, + {0xb24b, 0x7cd2}, + {0xb24c, 0xa7f2}, + {0xb24d, 0xac20}, + {0xb24e, 0x627a}, + {0xb24f, 0x5c55}, + {0xb250, 0xbc91}, + {0xb251, 0x49c0}, + {0xb252, 0x66d0}, + {0xb253, 0x7e90}, + {0xb254, 0x5fa4}, + {0xb255, 0xadb2}, + {0xb256, 0x9eec}, + {0xb257, 0xad78}, + {0xb258, 0x5352}, + {0xb259, 0xa4e0}, + {0xb25a, 0x5c15}, + {0xb25b, 0x7f3a}, + {0xb25c, 0xa498}, + {0xb25d, 0x703a}, + {0xb25e, 0x4d19}, + {0xb25f, 0x45da}, + {0xb260, 0x8e89}, + {0xb261, 0x818a}, + {0xb262, 0x550d}, + {0xb263, 0xbd7c}, + {0xb264, 0xbf3e}, + {0xb265, 0xb53e}, + {0xb266, 0x4f06}, + {0xb267, 0x7021}, + {0xb268, 0x818c}, + {0xb269, 0x98ea}, + {0xb26a, 0x4a82}, + {0xb26b, 0x7a1c}, + {0xb26c, 0x46f2}, + {0xb26d, 0x7d29}, + {0xb26e, 0x5bbd}, + {0xb26f, 0x61be}, + {0xb270, 0x98ec}, + {0xb271, 0xa698}, + {0xb272, 0x8996}, + {0xb273, 0x95de}, + {0xb274, 0x7794}, + {0xb275, 0x45c4}, + {0xb276, 0x67d9}, + {0xb277, 0xb2e0}, + {0xb278, 0xad88}, + {0xb279, 0x81c1}, + {0xb27a, 0x5c21}, + {0xb27b, 0x67da}, + {0xb27c, 0xb2f6}, + {0xb27d, 0x3b96}, + {0xb27e, 0x6328}, + {0xb280, 0x6766}, + {0xb281, 0xbf8a}, + {0xb282, 0x7e59}, + {0xb283, 0x4842}, + {0xb284, 0x9390}, + {0xb285, 0x84a6}, + {0xb286, 0xaea9}, + {0xb287, 0xb26d}, + {0xb288, 0x63e4}, + {0xb289, 0x7efe}, + {0xb28a, 0x8001}, + {0xb28b, 0x8892}, + {0xb28c, 0x8002}, + {0xb28d, 0x744e}, + {0xb28e, 0x7120}, + {0xb28f, 0xadc8}, + {0xb290, 0x8004}, + {0xb291, 0x63f8}, + {0xb292, 0x7a84}, + {0xb293, 0x7f08}, + {0xb294, 0x79c5}, + {0xb295, 0x5b56}, + {0xb296, 0x7d45}, + {0xb297, 0xa720}, + {0xb298, 0x9d4e}, + {0xb299, 0x6f00}, + {0xb29a, 0xc41d}, + {0xb29b, 0x8da8}, + {0xb29c, 0xba11}, + {0xb29d, 0x9900}, + {0xb29e, 0xbd65}, + {0xb29f, 0x6e22}, + {0xb2a0, 0x95c9}, + {0xb2a1, 0x4154}, + {0xb2a2, 0x4148}, + {0xb2a3, 0x4166}, + {0xb2a4, 0x4176}, + {0xb2a5, 0x4182}, + {0xb2a6, 0x4162}, + {0xb2a7, 0x416e}, + {0xb2a8, 0x4164}, + {0xb2a9, 0x41bc}, + {0xb2aa, 0x419e}, + {0xb2ab, 0x41c5}, + {0xb2ac, 0x41ae}, + {0xb2ad, 0x41d6}, + {0xb2ae, 0x418e}, + {0xb2af, 0x4194}, + {0xb2b0, 0x41b9}, + {0xb2b1, 0x4175}, + {0xb2b2, 0x41d8}, + {0xb2b3, 0x41bd}, + {0xb2b4, 0x4195}, + {0xb2b5, 0x4192}, + {0xb2b6, 0x4238}, + {0xb2b7, 0x4232}, + {0xb2b8, 0x4236}, + {0xb2b9, 0x4235}, + {0xb2ba, 0x4264}, + {0xb2bb, 0x4248}, + {0xb2bc, 0x4249}, + {0xb2bd, 0x424d}, + {0xb2be, 0x427c}, + {0xb2bf, 0x4260}, + {0xb2c0, 0x4254}, + {0xb2c1, 0x427e}, + {0xb2c2, 0x428d}, + {0xb2c3, 0x4299}, + {0xb2c4, 0x4294}, + {0xb2c5, 0x4291}, + {0xb2c6, 0x4295}, + {0xb2c7, 0x42ac}, + {0xb2c8, 0x42b0}, + {0xb2c9, 0x429d}, + {0xb2ca, 0x42a8}, + {0xb2cb, 0x42b1}, + {0xb2cc, 0x42b4}, + {0xb2cd, 0x42ca}, + {0xb2ce, 0x42b9}, + {0xb2cf, 0x42d4}, + {0xb2d0, 0x42d2}, + {0xb2d1, 0x42d6}, + {0xb2d2, 0x42ec}, + {0xb2d3, 0x42fa}, + {0xb2d4, 0x4312}, + {0xb2d5, 0x4316}, + {0xb2d6, 0x430d}, + {0xb2d7, 0x4311}, + {0xb2d8, 0x432c}, + {0xb2d9, 0x4338}, + {0xb2da, 0x4339}, + {0xb2db, 0x4346}, + {0xb2dc, 0x433c}, + {0xb2dd, 0x4352}, + {0xb2de, 0x4361}, + {0xb2df, 0x4378}, + {0xb2e0, 0x4360}, + {0xb2e1, 0x435e}, + {0xb2e2, 0x4365}, + {0xb2e3, 0x439e}, + {0xb2e4, 0x43aa}, + {0xb2e5, 0x43c6}, + {0xb2e6, 0x43b2}, + {0xb2e7, 0x43dc}, + {0xb2e8, 0x43dd}, + {0xb2e9, 0x43d9}, + {0xb2ea, 0x43ee}, + {0xb2eb, 0x43e2}, + {0xb2ec, 0x43ed}, + {0xb2ed, 0x43fd}, + {0xb2ee, 0x4405}, + {0xb2ef, 0x4400}, + {0xb2f0, 0x440e}, + {0xb2f1, 0x4419}, + {0xb2f2, 0x441a}, + {0xb2f3, 0x443c}, + {0xb2f4, 0x443a}, + {0xb2f5, 0x445c}, + {0xb2f6, 0x4455}, + {0xb2f7, 0x444e}, + {0xb2f8, 0x4458}, + {0xb2f9, 0x44a4}, + {0xb2fa, 0x4496}, + {0xb2fb, 0x44a5}, + {0xb2fc, 0x44d8}, + {0xb2fd, 0x44e5}, + {0xb2fe, 0x44ea}, + {0xb340, 0x5f92}, + {0xb341, 0xb738}, + {0xb342, 0xc336}, + {0xb343, 0x68ec}, + {0xb344, 0xbdba}, + {0xb345, 0xbb61}, + {0xb346, 0x3ce2}, + {0xb347, 0x4fba}, + {0xb348, 0x8af9}, + {0xb349, 0xc615}, + {0xb34a, 0xa599}, + {0xb34b, 0xbf99}, + {0xb34c, 0x7048}, + {0xb34d, 0x5805}, + {0xb34e, 0x4c5c}, + {0xb34f, 0x6da6}, + {0xb350, 0x757c}, + {0xb351, 0x55d1}, + {0xb352, 0xa42e}, + {0xb353, 0x5240}, + {0xb354, 0x6f04}, + {0xb355, 0xc1cd}, + {0xb356, 0x69f6}, + {0xb357, 0x40d9}, + {0xb358, 0x5258}, + {0xb359, 0xbf9c}, + {0xb35a, 0x9afd}, + {0xb35b, 0xa1d8}, + {0xb35c, 0x6a29}, + {0xb35d, 0x8169}, + {0xb35e, 0x6c2a}, + {0xb35f, 0xb9e5}, + {0xb360, 0x7be6}, + {0xb361, 0xa16a}, + {0xb362, 0x5266}, + {0xb363, 0x81e8}, + {0xb364, 0xc408}, + {0xb365, 0x851d}, + {0xb366, 0x88a6}, + {0xb367, 0x787e}, + {0xb368, 0x867e}, + {0xb369, 0x73f8}, + {0xb36a, 0x416a}, + {0xb36b, 0x892a}, + {0xb36c, 0xb7e9}, + {0xb36d, 0x710d}, + {0xb36e, 0x6fe5}, + {0xb36f, 0x9011}, + {0xb370, 0xc3ad}, + {0xb371, 0x5b75}, + {0xb372, 0x5272}, + {0xb373, 0x8b5a}, + {0xb374, 0x7ada}, + {0xb375, 0xa35e}, + {0xb376, 0x3b70}, + {0xb377, 0xa912}, + {0xb378, 0xaff2}, + {0xb379, 0x86e9}, + {0xb37a, 0x73c5}, + {0xb37b, 0x5f4a}, + {0xb37c, 0x8e25}, + {0xb37d, 0xa3c0}, + {0xb37e, 0x8cee}, + {0xb380, 0x43ac}, + {0xb381, 0x6fe8}, + {0xb382, 0x906e}, + {0xb383, 0x44d0}, + {0xb384, 0x7356}, + {0xb385, 0x5f12}, + {0xb386, 0xb925}, + {0xb387, 0xa9fc}, + {0xb388, 0xa7be}, + {0xb389, 0x3d91}, + {0xb38a, 0x79f9}, + {0xb38b, 0xb7d0}, + {0xb38c, 0x4599}, + {0xb38d, 0x45b6}, + {0xb38e, 0xb0c4}, + {0xb38f, 0x93ec}, + {0xb390, 0x71ee}, + {0xb391, 0x5a6a}, + {0xb392, 0x43ad}, + {0xb393, 0x60ba}, + {0xb394, 0x7a9e}, + {0xb395, 0x461a}, + {0xb396, 0x8572}, + {0xb397, 0x99c5}, + {0xb398, 0xc576}, + {0xb399, 0x6fea}, + {0xb39a, 0xb06a}, + {0xb39b, 0xc508}, + {0xb39c, 0x7009}, + {0xb39d, 0x4695}, + {0xb39e, 0x8a62}, + {0xb39f, 0xc6aa}, + {0xb3a0, 0x8e51}, + {0xb3a1, 0x452e}, + {0xb3a2, 0x450c}, + {0xb3a3, 0x4510}, + {0xb3a4, 0x4502}, + {0xb3a5, 0x450e}, + {0xb3a6, 0x4506}, + {0xb3a7, 0x452d}, + {0xb3a8, 0x4536}, + {0xb3a9, 0x4544}, + {0xb3aa, 0x4548}, + {0xb3ab, 0x4545}, + {0xb3ac, 0x455e}, + {0xb3ad, 0x4554}, + {0xb3ae, 0x4559}, + {0xb3af, 0x456d}, + {0xb3b0, 0x4572}, + {0xb3b1, 0x4575}, + {0xb3b2, 0x456a}, + {0xb3b3, 0x457e}, + {0xb3b4, 0x4581}, + {0xb3b5, 0x4590}, + {0xb3b6, 0x459c}, + {0xb3b7, 0x45bc}, + {0xb3b8, 0x45b5}, + {0xb3b9, 0x45a8}, + {0xb3ba, 0x45bd}, + {0xb3bb, 0x45cc}, + {0xb3bc, 0x45e1}, + {0xb3bd, 0x45e8}, + {0xb3be, 0x45e0}, + {0xb3bf, 0x45fa}, + {0xb3c0, 0x45e5}, + {0xb3c1, 0x45e6}, + {0xb3c2, 0x45e9}, + {0xb3c3, 0x462c}, + {0xb3c4, 0x4626}, + {0xb3c5, 0x465d}, + {0xb3c6, 0x4629}, + {0xb3c7, 0x4681}, + {0xb3c8, 0x46b9}, + {0xb3c9, 0x4674}, + {0xb3ca, 0x4678}, + {0xb3cb, 0x468a}, + {0xb3cc, 0x46a1}, + {0xb3cd, 0x469d}, + {0xb3ce, 0x46b8}, + {0xb3cf, 0x467d}, + {0xb3d0, 0x467a}, + {0xb3d1, 0x46c6}, + {0xb3d2, 0x46c8}, + {0xb3d3, 0x46cd}, + {0xb3d4, 0x46ce}, + {0xb3d5, 0x46ec}, + {0xb3d6, 0x4712}, + {0xb3d7, 0x471a}, + {0xb3d8, 0x4706}, + {0xb3d9, 0x470c}, + {0xb3da, 0x4705}, + {0xb3db, 0x4708}, + {0xb3dc, 0x474e}, + {0xb3dd, 0x4744}, + {0xb3de, 0x4741}, + {0xb3df, 0x473c}, + {0xb3e0, 0x4768}, + {0xb3e1, 0x4775}, + {0xb3e2, 0x4765}, + {0xb3e3, 0x4772}, + {0xb3e4, 0x47a8}, + {0xb3e5, 0x47a9}, + {0xb3e6, 0x47cd}, + {0xb3e7, 0x47d1}, + {0xb3e8, 0x47e2}, + {0xb3e9, 0x47ed}, + {0xb3ea, 0x481a}, + {0xb3eb, 0x480e}, + {0xb3ec, 0x481d}, + {0xb3ed, 0x4814}, + {0xb3ee, 0x4811}, + {0xb3ef, 0x4815}, + {0xb3f0, 0x47fe}, + {0xb3f1, 0x480a}, + {0xb3f2, 0x4840}, + {0xb3f3, 0x4838}, + {0xb3f4, 0x4846}, + {0xb3f5, 0x4855}, + {0xb3f6, 0x4850}, + {0xb3f7, 0x4880}, + {0xb3f8, 0x4865}, + {0xb3f9, 0x4888}, + {0xb3fa, 0x486a}, + {0xb3fb, 0x4874}, + {0xb3fc, 0x4866}, + {0xb3fd, 0x4861}, + {0xb3fe, 0x489a}, + {0xb440, 0x77f5}, + {0xb441, 0x6e3e}, + {0xb442, 0x417a}, + {0xb443, 0x80ad}, + {0xb444, 0x66d1}, + {0xb445, 0x5eac}, + {0xb446, 0x907a}, + {0xb447, 0x748c}, + {0xb448, 0xb618}, + {0xb449, 0xa56a}, + {0xb44a, 0x8a64}, + {0xb44b, 0x7b9e}, + {0xb44c, 0x82e2}, + {0xb44d, 0x9289}, + {0xb44e, 0xb009}, + {0xb44f, 0x4fc8}, + {0xb450, 0xa178}, + {0xb451, 0xb6a4}, + {0xb452, 0x6fbe}, + {0xb453, 0xa388}, + {0xb454, 0x9909}, + {0xb455, 0xc032}, + {0xb456, 0x5104}, + {0xb457, 0xa7c9}, + {0xb458, 0x4d16}, + {0xb459, 0x9e20}, + {0xb45a, 0x8308}, + {0xb45b, 0x9eb5}, + {0xb45c, 0x8b28}, + {0xb45d, 0x5186}, + {0xb45e, 0x555d}, + {0xb45f, 0x9089}, + {0xb460, 0x8ccd}, + {0xb461, 0x7cbe}, + {0xb462, 0x5989}, + {0xb463, 0x9a9a}, + {0xb464, 0x5229}, + {0xb465, 0x792d}, + {0xb466, 0x994c}, + {0xb467, 0x9d1d}, + {0xb468, 0x60d8}, + {0xb469, 0x877a}, + {0xb46a, 0x7178}, + {0xb46b, 0x9eb9}, + {0xb46c, 0xa7cc}, + {0xb46d, 0x89fa}, + {0xb46e, 0x7679}, + {0xb46f, 0xa3d9}, + {0xb470, 0xbc20}, + {0xb471, 0x511c}, + {0xb472, 0x723a}, + {0xb473, 0x85e5}, + {0xb474, 0xb206}, + {0xb475, 0xc496}, + {0xb476, 0x4469}, + {0xb477, 0x8b31}, + {0xb478, 0x3c3a}, + {0xb479, 0x86f4}, + {0xb47a, 0x797c}, + {0xb47b, 0x7ab0}, + {0xb47c, 0x6efc}, + {0xb47d, 0x4946}, + {0xb47e, 0x4620}, + {0xb480, 0xb5ce}, + {0xb481, 0x7441}, + {0xb482, 0x8842}, + {0xb483, 0x8b32}, + {0xb484, 0x8b34}, + {0xb485, 0x4b20}, + {0xb486, 0xc676}, + {0xb487, 0x49e4}, + {0xb488, 0x7ba8}, + {0xb489, 0x6470}, + {0xb48a, 0x94ad}, + {0xb48b, 0x73ad}, + {0xb48c, 0xbdbc}, + {0xb48d, 0x67dc}, + {0xb48e, 0xa774}, + {0xb48f, 0x4fcc}, + {0xb490, 0x4ee1}, + {0xb491, 0x4185}, + {0xb492, 0xbc78}, + {0xb493, 0x8cd8}, + {0xb494, 0x4dde}, + {0xb495, 0x75ec}, + {0xb496, 0x67dd}, + {0xb497, 0xa699}, + {0xb498, 0xbf1e}, + {0xb499, 0x8d09}, + {0xb49a, 0x6768}, + {0xb49b, 0xba65}, + {0xb49c, 0xc518}, + {0xb49d, 0x5e8e}, + {0xb49e, 0x6fc6}, + {0xb49f, 0xbd80}, + {0xb4a0, 0x747c}, + {0xb4a1, 0x4892}, + {0xb4a2, 0x4896}, + {0xb4a3, 0x48e2}, + {0xb4a4, 0x48d0}, + {0xb4a5, 0x48d2}, + {0xb4a6, 0x48ac}, + {0xb4a7, 0x48ed}, + {0xb4a8, 0x48f8}, + {0xb4a9, 0x48fa}, + {0xb4aa, 0x490c}, + {0xb4ab, 0x4901}, + {0xb4ac, 0x4905}, + {0xb4ad, 0x4919}, + {0xb4ae, 0x491d}, + {0xb4af, 0x4929}, + {0xb4b0, 0x492d}, + {0xb4b1, 0xc4e2}, + {0xb4b2, 0x4939}, + {0xb4b3, 0x4625}, + {0xb4b4, 0x4949}, + {0xb4b5, 0x4954}, + {0xb4b6, 0x4955}, + {0xb4b7, 0x4960}, + {0xb4b8, 0x4968}, + {0xb4b9, 0x4959}, + {0xb4ba, 0x4975}, + {0xb4bb, 0x497d}, + {0xb4bc, 0x49a9}, + {0xb4bd, 0x4994}, + {0xb4be, 0x499a}, + {0xb4bf, 0x498e}, + {0xb4c0, 0x49c6}, + {0xb4c1, 0x49c9}, + {0xb4c2, 0x49d5}, + {0xb4c3, 0x49f0}, + {0xb4c4, 0x4a01}, + {0xb4c5, 0x4a14}, + {0xb4c6, 0x4a15}, + {0xb4c7, 0x4a10}, + {0xb4c8, 0x4a0d}, + {0xb4c9, 0x4a04}, + {0xb4ca, 0x49f6}, + {0xb4cb, 0x4a30}, + {0xb4cc, 0x4a3a}, + {0xb4cd, 0x4a48}, + {0xb4ce, 0x4a38}, + {0xb4cf, 0x4a81}, + {0xb4d0, 0x4a66}, + {0xb4d1, 0x4928}, + {0xb4d2, 0x4a52}, + {0xb4d3, 0x4a51}, + {0xb4d4, 0x4a8e}, + {0xb4d5, 0x4ab4}, + {0xb4d6, 0x4abc}, + {0xb4d7, 0x4adc}, + {0xb4d8, 0x4ae0}, + {0xb4d9, 0x4ac8}, + {0xb4da, 0x4af2}, + {0xb4db, 0x4b04}, + {0xb4dc, 0x4b00}, + {0xb4dd, 0x4b19}, + {0xb4de, 0x4b0e}, + {0xb4df, 0x4b10}, + {0xb4e0, 0x4b38}, + {0xb4e1, 0x4b45}, + {0xb4e2, 0x4b46}, + {0xb4e3, 0x4b3d}, + {0xb4e4, 0x4b49}, + {0xb4e5, 0x4b5a}, + {0xb4e6, 0x4b62}, + {0xb4e7, 0x4b69}, + {0xb4e8, 0x4b72}, + {0xb4e9, 0x4b74}, + {0xb4ea, 0x4b6e}, + {0xb4eb, 0x4ba0}, + {0xb4ec, 0x4b9c}, + {0xb4ed, 0x4ba6}, + {0xb4ee, 0x4bb5}, + {0xb4ef, 0x4bc4}, + {0xb4f0, 0x4bde}, + {0xb4f1, 0x4be4}, + {0xb4f2, 0x4bf9}, + {0xb4f3, 0x4bfa}, + {0xb4f4, 0x4c00}, + {0xb4f5, 0x4c05}, + {0xb4f6, 0x4c06}, + {0xb4f7, 0x4c42}, + {0xb4f8, 0x4c1c}, + {0xb4f9, 0x4c21}, + {0xb4fa, 0x4c0a}, + {0xb4fb, 0x4c24}, + {0xb4fc, 0x4c2d}, + {0xb4fd, 0x4c1d}, + {0xb4fe, 0x4c30}, + {0xb540, 0x69c1}, + {0xb541, 0x48a5}, + {0xb542, 0xb2fe}, + {0xb543, 0x9092}, + {0xb544, 0x4d22}, + {0xb545, 0xb414}, + {0xb546, 0x8786}, + {0xb547, 0x8788}, + {0xb548, 0xb968}, + {0xb549, 0x887e}, + {0xb54a, 0x8b3c}, + {0xb54b, 0x3b99}, + {0xb54c, 0x6f84}, + {0xb54d, 0x6700}, + {0xb54e, 0xba70}, + {0xb54f, 0x9292}, + {0xb550, 0x8686}, + {0xb551, 0x4a28}, + {0xb552, 0x41f9}, + {0xb553, 0xb196}, + {0xb554, 0x7cdd}, + {0xb555, 0xa8a8}, + {0xb556, 0x7121}, + {0xb557, 0x741d}, + {0xb558, 0x7452}, + {0xb559, 0xc2b6}, + {0xb55a, 0x7606}, + {0xb55b, 0x7616}, + {0xb55c, 0x53bd}, + {0xb55d, 0x9099}, + {0xb55e, 0x8688}, + {0xb55f, 0xb6d8}, + {0xb560, 0x7620}, + {0xb561, 0x79c6}, + {0xb562, 0x79c8}, + {0xb563, 0x81a6}, + {0xb564, 0x98a4}, + {0xb565, 0x5b58}, + {0xb566, 0x72f1}, + {0xb567, 0x4285}, + {0xb568, 0xb031}, + {0xb569, 0x9186}, + {0xb56a, 0xbb6d}, + {0xb56b, 0x9bb0}, + {0xb56c, 0x7cc9}, + {0xb56d, 0xab05}, + {0xb56e, 0xb1b4}, + {0xb56f, 0x8a1e}, + {0xb570, 0x3ea4}, + {0xb571, 0x5130}, + {0xb572, 0xc30d}, + {0xb573, 0xffff794d}, + {0xb574, 0xb31e}, + {0xb575, 0x96b9}, + {0xb576, 0xb89c}, + {0xb577, 0xc208}, + {0xb578, 0x9f01}, + {0xb579, 0x56e1}, + {0xb57a, 0x7fac}, + {0xb57b, 0x9abe}, + {0xb57c, 0x7e84}, + {0xb57d, 0x441c}, + {0xb57e, 0x7c48}, + {0xb580, 0xb992}, + {0xb581, 0xa531}, + {0xb582, 0xc441}, + {0xb583, 0x5be9}, + {0xb584, 0xa7b0}, + {0xb585, 0xc149}, + {0xb586, 0x587a}, + {0xb587, 0x587c}, + {0xb588, 0x98d0}, + {0xb589, 0x6a90}, + {0xb58a, 0x95f4}, + {0xb58b, 0x575e}, + {0xb58c, 0x71ed}, + {0xb58d, 0x4e59}, + {0xb58e, 0x9d99}, + {0xb58f, 0x5aa4}, + {0xb590, 0x5b41}, + {0xb591, 0xc74a}, + {0xb592, 0x78a4}, + {0xb593, 0x7ae8}, + {0xb594, 0x4d42}, + {0xb595, 0xc186}, + {0xb596, 0x3f6d}, + {0xb597, 0x4899}, + {0xb598, 0x6275}, + {0xb599, 0xb876}, + {0xb59a, 0xb5c6}, + {0xb59b, 0xc5da}, + {0xb59c, 0x63c6}, + {0xb59d, 0xc025}, + {0xb59e, 0xbb4c}, + {0xb59f, 0xa535}, + {0xb5a0, 0xa8ce}, + {0xb5a1, 0x4c1e}, + {0xb5a2, 0x4c5e}, + {0xb5a3, 0x4c58}, + {0xb5a4, 0x4c50}, + {0xb5a5, 0x4c56}, + {0xb5a6, 0x4c60}, + {0xb5a7, 0x4c90}, + {0xb5a8, 0x4c8a}, + {0xb5a9, 0x4c9d}, + {0xb5aa, 0x4cb6}, + {0xb5ab, 0x4c9e}, + {0xb5ac, 0x4cb0}, + {0xb5ad, 0x4cb1}, + {0xb5ae, 0x4ca5}, + {0xb5af, 0x4cae}, + {0xb5b0, 0x4cb4}, + {0xb5b1, 0x4cde}, + {0xb5b2, 0x4cf2}, + {0xb5b3, 0x4cf5}, + {0xb5b4, 0x4d0a}, + {0xb5b5, 0x4d0c}, + {0xb5b6, 0x4d28}, + {0xb5b7, 0x4d40}, + {0xb5b8, 0x4d54}, + {0xb5b9, 0x4d3c}, + {0xb5ba, 0x4d39}, + {0xb5bb, 0x4d41}, + {0xb5bc, 0x4d38}, + {0xb5bd, 0x4d59}, + {0xb5be, 0x4d68}, + {0xb5bf, 0x4d5a}, + {0xb5c0, 0x4d62}, + {0xb5c1, 0x4d5d}, + {0xb5c2, 0x4d8a}, + {0xb5c3, 0x4d80}, + {0xb5c4, 0x4d8d}, + {0xb5c5, 0x4da9}, + {0xb5c6, 0x4d94}, + {0xb5c7, 0x4d95}, + {0xb5c8, 0x4dae}, + {0xb5c9, 0x4dba}, + {0xb5ca, 0x4db4}, + {0xb5cb, 0x4db1}, + {0xb5cc, 0x4dd5}, + {0xb5cd, 0x4dc5}, + {0xb5ce, 0x4ddc}, + {0xb5cf, 0x4dec}, + {0xb5d0, 0x4dee}, + {0xb5d1, 0x4df4}, + {0xb5d2, 0x4de5}, + {0xb5d3, 0x4df0}, + {0xb5d4, 0xbe56}, + {0xb5d5, 0x4dfa}, + {0xb5d6, 0x4e24}, + {0xb5d7, 0x4e21}, + {0xb5d8, 0x4e3d}, + {0xb5d9, 0x4e69}, + {0xb5da, 0x4e5a}, + {0xb5db, 0x4e4c}, + {0xb5dc, 0x4e41}, + {0xb5dd, 0x4e50}, + {0xb5de, 0x4e68}, + {0xb5df, 0x4e98}, + {0xb5e0, 0x4e8e}, + {0xb5e1, 0x4e94}, + {0xb5e2, 0x4eb2}, + {0xb5e3, 0x4eaa}, + {0xb5e4, 0x4ea8}, + {0xb5e5, 0x4ee0}, + {0xb5e6, 0x4ec4}, + {0xb5e7, 0x4eba}, + {0xb5e8, 0x4ebd}, + {0xb5e9, 0x4ebe}, + {0xb5ea, 0x4ec2}, + {0xb5eb, 0x4ecc}, + {0xb5ec, 0x4ed0}, + {0xb5ed, 0x4ecd}, + {0xb5ee, 0x4ed2}, + {0xb5ef, 0x4f00}, + {0xb5f0, 0x4eea}, + {0xb5f1, 0x4f08}, + {0xb5f2, 0x4ef6}, + {0xb5f3, 0x4ee9}, + {0xb5f4, 0x4f21}, + {0xb5f5, 0x4f19}, + {0xb5f6, 0x4f1a}, + {0xb5f7, 0x4f20}, + {0xb5f8, 0x4f3a}, + {0xb5f9, 0x4f39}, + {0xb5fa, 0x4f70}, + {0xb5fb, 0x4f75}, + {0xb5fc, 0x4f41}, + {0xb5fd, 0x4f56}, + {0xb5fe, 0x4f69}, + {0xb640, 0xb160}, + {0xb641, 0xc15c}, + {0xb642, 0xb336}, + {0xb643, 0x7e49}, + {0xb644, 0x9932}, + {0xb645, 0x4e70}, + {0xb646, 0x3e62}, + {0xb647, 0xc034}, + {0xb648, 0xb7dd}, + {0xb649, 0x65b6}, + {0xb64a, 0x5881}, + {0xb64b, 0x9d18}, + {0xb64c, 0x993d}, + {0xb64d, 0x7cd8}, + {0xb64e, 0x9bec}, + {0xb64f, 0x5711}, + {0xb650, 0xadb8}, + {0xb651, 0x8a7e}, + {0xb652, 0xba66}, + {0xb653, 0x6464}, + {0xb654, 0x99a4}, + {0xb655, 0x446a}, + {0xb656, 0x4ccd}, + {0xb657, 0x5c22}, + {0xb658, 0x9b28}, + {0xb659, 0x7546}, + {0xb65a, 0x84e9}, + {0xb65b, 0x7f5d}, + {0xb65c, 0x4d55}, + {0xb65d, 0x75f8}, + {0xb65e, 0xbbb0}, + {0xb65f, 0xc16e}, + {0xb660, 0xbce6}, + {0xb661, 0x7484}, + {0xb662, 0x91f4}, + {0xb663, 0xab22}, + {0xb664, 0xa041}, + {0xb665, 0x912a}, + {0xb666, 0xc616}, + {0xb667, 0x43d6}, + {0xb668, 0xb462}, + {0xb669, 0xa80d}, + {0xb66a, 0x83c0}, + {0xb66b, 0x8ea6}, + {0xb66c, 0x5516}, + {0xb66d, 0x5df4}, + {0xb66e, 0xbbe2}, + {0xb66f, 0xc13a}, + {0xb670, 0x6ad5}, + {0xb671, 0xc13c}, + {0xb672, 0xb9da}, + {0xb673, 0x706c}, + {0xb674, 0x3d5c}, + {0xb675, 0x8765}, + {0xb676, 0x8354}, + {0xb677, 0x7592}, + {0xb678, 0xb829}, + {0xb679, 0x8766}, + {0xb67a, 0x41ac}, + {0xb67b, 0x7880}, + {0xb67c, 0x83c2}, + {0xb67d, 0xc77c}, + {0xb67e, 0xc14a}, + {0xb680, 0x6cd8}, + {0xb681, 0x639d}, + {0xb682, 0x9fd9}, + {0xb683, 0xc230}, + {0xb684, 0x639e}, + {0xb685, 0x5e5d}, + {0xb686, 0xb5b2}, + {0xb687, 0xc5c4}, + {0xb688, 0xc231}, + {0xb689, 0x913d}, + {0xb68a, 0x50da}, + {0xb68b, 0xc448}, + {0xb68c, 0x84dc}, + {0xb68d, 0x5701}, + {0xb68e, 0x585c}, + {0xb68f, 0xbd99}, + {0xb690, 0x98d1}, + {0xb691, 0x71f0}, + {0xb692, 0x57c6}, + {0xb693, 0x6ae6}, + {0xb694, 0x9e10}, + {0xb695, 0xa072}, + {0xb696, 0xaf91}, + {0xb697, 0x7bac}, + {0xb698, 0x7af5}, + {0xb699, 0x5aa9}, + {0xb69a, 0xc786}, + {0xb69b, 0xc530}, + {0xb69c, 0x3d96}, + {0xb69d, 0x643e}, + {0xb69e, 0xc256}, + {0xb69f, 0x71f4}, + {0xb6a0, 0x748d}, + {0xb6a1, 0x4f92}, + {0xb6a2, 0x4f9e}, + {0xb6a3, 0x4f98}, + {0xb6a4, 0x4fa0}, + {0xb6a5, 0x4fa8}, + {0xb6a6, 0x4fad}, + {0xb6a7, 0x4fc6}, + {0xb6a8, 0x4fbc}, + {0xb6a9, 0x4fb5}, + {0xb6aa, 0x4fd0}, + {0xb6ab, 0x4fd5}, + {0xb6ac, 0x4fd6}, + {0xb6ad, 0x5001}, + {0xb6ae, 0x5005}, + {0xb6af, 0x500c}, + {0xb6b0, 0x501a}, + {0xb6b1, 0x5010}, + {0xb6b2, 0x5018}, + {0xb6b3, 0x500d}, + {0xb6b4, 0x501c}, + {0xb6b5, 0x5039}, + {0xb6b6, 0x5048}, + {0xb6b7, 0x5042}, + {0xb6b8, 0x504c}, + {0xb6b9, 0x5051}, + {0xb6ba, 0x5059}, + {0xb6bb, 0x5065}, + {0xb6bc, 0x507c}, + {0xb6bd, 0x5081}, + {0xb6be, 0x5088}, + {0xb6bf, 0x5094}, + {0xb6c0, 0x50c0}, + {0xb6c1, 0x508c}, + {0xb6c2, 0x50c2}, + {0xb6c3, 0x50ca}, + {0xb6c4, 0x50c8}, + {0xb6c5, 0x50d4}, + {0xb6c6, 0x50e2}, + {0xb6c7, 0x50d5}, + {0xb6c8, 0x50d8}, + {0xb6c9, 0x50dd}, + {0xb6ca, 0x50d2}, + {0xb6cb, 0x50f0}, + {0xb6cc, 0x50f4}, + {0xb6cd, 0x5105}, + {0xb6ce, 0x50f5}, + {0xb6cf, 0x50f6}, + {0xb6d0, 0x50f9}, + {0xb6d1, 0x5116}, + {0xb6d2, 0x512c}, + {0xb6d3, 0x5126}, + {0xb6d4, 0x5128}, + {0xb6d5, 0x515a}, + {0xb6d6, 0x5152}, + {0xb6d7, 0x5169}, + {0xb6d8, 0x5156}, + {0xb6d9, 0x517e}, + {0xb6da, 0x5174}, + {0xb6db, 0x517d}, + {0xb6dc, 0x5179}, + {0xb6dd, 0x5181}, + {0xb6de, 0x51a5}, + {0xb6df, 0x5192}, + {0xb6e0, 0x518e}, + {0xb6e1, 0x51a0}, + {0xb6e2, 0x51bc}, + {0xb6e3, 0x51ca}, + {0xb6e4, 0x51b6}, + {0xb6e5, 0x51f4}, + {0xb6e6, 0x51ec}, + {0xb6e7, 0x51da}, + {0xb6e8, 0x51ed}, + {0xb6e9, 0x51ea}, + {0xb6ea, 0x5228}, + {0xb6eb, 0x5216}, + {0xb6ec, 0x5225}, + {0xb6ed, 0x5214}, + {0xb6ee, 0x522e}, + {0xb6ef, 0x520e}, + {0xb6f0, 0x5215}, + {0xb6f1, 0x5265}, + {0xb6f2, 0x5248}, + {0xb6f3, 0x5251}, + {0xb6f4, 0x528d}, + {0xb6f5, 0x5276}, + {0xb6f6, 0x5269}, + {0xb6f7, 0x52c6}, + {0xb6f8, 0x52da}, + {0xb6f9, 0x52d9}, + {0xb6fa, 0x5305}, + {0xb6fb, 0x5304}, + {0xb6fc, 0x530a}, + {0xb6fd, 0x5309}, + {0xb6fe, 0x531d}, + {0xb740, 0x8710}, + {0xb741, 0x7829}, + {0xb742, 0xc6f5}, + {0xb743, 0xba22}, + {0xb744, 0x7c91}, + {0xb745, 0xffff7a25}, + {0xb746, 0xb33c}, + {0xb747, 0xa75e}, + {0xb748, 0x4014}, + {0xb749, 0x65b8}, + {0xb74a, 0x5678}, + {0xb74b, 0x3f99}, + {0xb74c, 0x854a}, + {0xb74d, 0x6951}, + {0xb74e, 0xc304}, + {0xb74f, 0xc668}, + {0xb750, 0xace4}, + {0xb751, 0x4630}, + {0xb752, 0x4d64}, + {0xb753, 0x76dd}, + {0xb754, 0xc5e8}, + {0xb755, 0xba46}, + {0xb756, 0xad84}, + {0xb757, 0xc27a}, + {0xb758, 0x5866}, + {0xb759, 0x5a7e}, + {0xb75a, 0x91c8}, + {0xb75b, 0x9b1c}, + {0xb75c, 0x91f1}, + {0xb75d, 0x65ca}, + {0xb75e, 0x6f15}, + {0xb75f, 0x42f4}, + {0xb760, 0x7eac}, + {0xb761, 0xc29e}, + {0xb762, 0x65b9}, + {0xb763, 0x7b21}, + {0xb764, 0x9a40}, + {0xb765, 0x6465}, + {0xb766, 0xb751}, + {0xb767, 0xa468}, + {0xb768, 0x8eb9}, + {0xb769, 0x7228}, + {0xb76a, 0xb540}, + {0xb76b, 0x620e}, + {0xb76c, 0x8d75}, + {0xb76d, 0x6548}, + {0xb76e, 0xaa24}, + {0xb76f, 0x8998}, + {0xb770, 0x6895}, + {0xb771, 0xc549}, + {0xb772, 0x9ffd}, + {0xb773, 0xc75c}, + {0xb774, 0x7c5e}, + {0xb775, 0x9b2c}, + {0xb776, 0x84ec}, + {0xb777, 0x93bc}, + {0xb778, 0x6329}, + {0xb779, 0x90e6}, + {0xb77a, 0x8558}, + {0xb77b, 0xba71}, + {0xb77c, 0x8880}, + {0xb77d, 0x65ea}, + {0xb77e, 0xa0ea}, + {0xb780, 0xa469}, + {0xb781, 0x4669}, + {0xb782, 0x63e5}, + {0xb783, 0x7122}, + {0xb784, 0x7c61}, + {0xb785, 0x408a}, + {0xb786, 0x93c0}, + {0xb787, 0xc54c}, + {0xb788, 0x751d}, + {0xb789, 0x4afe}, + {0xb78a, 0xaf6d}, + {0xb78b, 0xb8ba}, + {0xb78c, 0x958c}, + {0xb78d, 0x6b11}, + {0xb78e, 0xb251}, + {0xb78f, 0x7392}, + {0xb790, 0xb230}, + {0xb791, 0x3db8}, + {0xb792, 0x4138}, + {0xb793, 0xa1bc}, + {0xb794, 0xc3de}, + {0xb795, 0x6909}, + {0xb796, 0x4f1d}, + {0xb797, 0xa504}, + {0xb798, 0x5ba5}, + {0xb799, 0x492c}, + {0xb79a, 0xb256}, + {0xb79b, 0xa9fd}, + {0xb79c, 0x4696}, + {0xb79d, 0x7034}, + {0xb79e, 0x4cbd}, + {0xb79f, 0xc578}, + {0xb7a0, 0xacde}, + {0xb7a1, 0x5326}, + {0xb7a2, 0x5334}, + {0xb7a3, 0x5349}, + {0xb7a4, 0x5350}, + {0xb7a5, 0x5340}, + {0xb7a6, 0x533e}, + {0xb7a7, 0x534c}, + {0xb7a8, 0x535c}, + {0xb7a9, 0x5362}, + {0xb7aa, 0x5380}, + {0xb7ab, 0x536a}, + {0xb7ac, 0x5370}, + {0xb7ad, 0x537e}, + {0xb7ae, 0x53a6}, + {0xb7af, 0x5392}, + {0xb7b0, 0x5395}, + {0xb7b1, 0x53b1}, + {0xb7b2, 0x538a}, + {0xb7b3, 0x5398}, + {0xb7b4, 0x53c8}, + {0xb7b5, 0x53cd}, + {0xb7b6, 0x53de}, + {0xb7b7, 0x53e0}, + {0xb7b8, 0x53d4}, + {0xb7b9, 0x53dd}, + {0xb7ba, 0x53dc}, + {0xb7bb, 0x5401}, + {0xb7bc, 0x5402}, + {0xb7bd, 0x53fe}, + {0xb7be, 0x5418}, + {0xb7bf, 0x5416}, + {0xb7c0, 0x5412}, + {0xb7c1, 0x5415}, + {0xb7c2, 0x541d}, + {0xb7c3, 0x541e}, + {0xb7c4, 0x5426}, + {0xb7c5, 0x5438}, + {0xb7c6, 0x5445}, + {0xb7c7, 0x543c}, + {0xb7c8, 0x543e}, + {0xb7c9, 0x5439}, + {0xb7ca, 0x545d}, + {0xb7cb, 0x5469}, + {0xb7cc, 0x546a}, + {0xb7cd, 0x547d}, + {0xb7ce, 0x5484}, + {0xb7cf, 0x547e}, + {0xb7d0, 0x5481}, + {0xb7d1, 0x5486}, + {0xb7d2, 0x54bc}, + {0xb7d3, 0x54ca}, + {0xb7d4, 0x54b8}, + {0xb7d5, 0x54be}, + {0xb7d6, 0x54b4}, + {0xb7d7, 0x54ba}, + {0xb7d8, 0x54d9}, + {0xb7d9, 0x54ec}, + {0xb7da, 0x54dd}, + {0xb7db, 0x550a}, + {0xb7dc, 0x5514}, + {0xb7dd, 0x5510}, + {0xb7de, 0x5515}, + {0xb7df, 0x5519}, + {0xb7e0, 0x551a}, + {0xb7e1, 0x5529}, + {0xb7e2, 0x5539}, + {0xb7e3, 0x5538}, + {0xb7e4, 0x5559}, + {0xb7e5, 0x5542}, + {0xb7e6, 0x5555}, + {0xb7e7, 0x552a}, + {0xb7e8, 0x553a}, + {0xb7e9, 0x5549}, + {0xb7ea, 0x5580}, + {0xb7eb, 0x5579}, + {0xb7ec, 0x5588}, + {0xb7ed, 0x5590}, + {0xb7ee, 0x5598}, + {0xb7ef, 0x5596}, + {0xb7f0, 0x55ac}, + {0xb7f1, 0x55b5}, + {0xb7f2, 0x55bd}, + {0xb7f3, 0x55f4}, + {0xb7f4, 0x55ca}, + {0xb7f5, 0x55f1}, + {0xb7f6, 0x5610}, + {0xb7f7, 0x561e}, + {0xb7f8, 0x5670}, + {0xb7f9, 0x5661}, + {0xb7fa, 0x562e}, + {0xb7fb, 0x5652}, + {0xb7fc, 0x5608}, + {0xb7fd, 0x5629}, + {0xb7fe, 0x5620}, + {0xb840, 0x9a3e}, + {0xb841, 0x5b09}, + {0xb842, 0xc544}, + {0xb843, 0xa4b5}, + {0xb844, 0xa1c8}, + {0xb845, 0xaf92}, + {0xb846, 0x8e8a}, + {0xb847, 0xb208}, + {0xb848, 0xb209}, + {0xb849, 0x9f29}, + {0xb84a, 0x4576}, + {0xb84b, 0x9eba}, + {0xb84c, 0x4f34}, + {0xb84d, 0x6d14}, + {0xb84e, 0x775c}, + {0xb84f, 0xa688}, + {0xb850, 0xa5c6}, + {0xb851, 0x7135}, + {0xb852, 0x4936}, + {0xb853, 0xbf51}, + {0xb854, 0x70d2}, + {0xb855, 0x70d4}, + {0xb856, 0x4668}, + {0xb857, 0x4b52}, + {0xb858, 0x7761}, + {0xb859, 0xbd41}, + {0xb85a, 0x4b09}, + {0xb85b, 0x8d39}, + {0xb85c, 0x8e94}, + {0xb85d, 0x5074}, + {0xb85e, 0xbd46}, + {0xb85f, 0x79ee}, + {0xb860, 0x8d7d}, + {0xb861, 0x48ae}, + {0xb862, 0x96ac}, + {0xb863, 0x56d8}, + {0xb864, 0x8b7c}, + {0xb865, 0x48b8}, + {0xb866, 0x5f3a}, + {0xb867, 0x8a24}, + {0xb868, 0x5dc6}, + {0xb869, 0x9615}, + {0xb86a, 0x54c1}, + {0xb86b, 0x8058}, + {0xb86c, 0x8fc1}, + {0xb86d, 0xc442}, + {0xb86e, 0x7881}, + {0xb86f, 0x799a}, + {0xb870, 0x4155}, + {0xb871, 0x3cfc}, + {0xb872, 0x9999}, + {0xb873, 0x5f56}, + {0xb874, 0x6b4a}, + {0xb875, 0x4f29}, + {0xb876, 0xb4ec}, + {0xb877, 0x985c}, + {0xb878, 0x6b42}, + {0xb879, 0x8fc6}, + {0xb87a, 0x88aa}, + {0xb87b, 0x74d9}, + {0xb87c, 0xc4a2}, + {0xb87d, 0x43a5}, + {0xb87e, 0x4da4}, + {0xb880, 0x4b61}, + {0xb881, 0xa1ee}, + {0xb882, 0x6b64}, + {0xb883, 0x6ef0}, + {0xb884, 0x6b65}, + {0xb885, 0x73f5}, + {0xb886, 0x86fa}, + {0xb887, 0x4714}, + {0xb888, 0x7d80}, + {0xb889, 0xc3da}, + {0xb88a, 0xa21e}, + {0xb88b, 0x68be}, + {0xb88c, 0x9ac0}, + {0xb88d, 0x8dd8}, + {0xb88e, 0xaf49}, + {0xb88f, 0xc4fc}, + {0xb890, 0xbae4}, + {0xb891, 0x5dae}, + {0xb892, 0x4396}, + {0xb893, 0x879c}, + {0xb894, 0xb3f8}, + {0xb895, 0x4fec}, + {0xb896, 0x944c}, + {0xb897, 0xa7b4}, + {0xb898, 0xc3e1}, + {0xb899, 0x8245}, + {0xb89a, 0x5a21}, + {0xb89b, 0x8d62}, + {0xb89c, 0x80cc}, + {0xb89d, 0x3dad}, + {0xb89e, 0x436d}, + {0xb89f, 0x86ba}, + {0xb8a0, 0x7894}, + {0xb8a1, 0x5644}, + {0xb8a2, 0x564e}, + {0xb8a3, 0x5669}, + {0xb8a4, 0x565d}, + {0xb8a5, 0x5606}, + {0xb8a6, 0x56a0}, + {0xb8a7, 0x569e}, + {0xb8a8, 0x56b1}, + {0xb8a9, 0x56aa}, + {0xb8aa, 0x56ac}, + {0xb8ab, 0x56a6}, + {0xb8ac, 0x56b0}, + {0xb8ad, 0x56b6}, + {0xb8ae, 0x56a2}, + {0xb8af, 0x56be}, + {0xb8b0, 0x56e5}, + {0xb8b1, 0x56f2}, + {0xb8b2, 0x5734}, + {0xb8b3, 0x5708}, + {0xb8b4, 0x56de}, + {0xb8b5, 0x56fc}, + {0xb8b6, 0x56cd}, + {0xb8b7, 0x56d9}, + {0xb8b8, 0x56ca}, + {0xb8b9, 0x570c}, + {0xb8ba, 0x56d0}, + {0xb8bb, 0x56fe}, + {0xb8bc, 0x56cc}, + {0xb8bd, 0x56d2}, + {0xb8be, 0x56ce}, + {0xb8bf, 0x570a}, + {0xb8c0, 0x56d5}, + {0xb8c1, 0x5745}, + {0xb8c2, 0x5744}, + {0xb8c3, 0x574e}, + {0xb8c4, 0x576c}, + {0xb8c5, 0x5784}, + {0xb8c6, 0x5779}, + {0xb8c7, 0x577a}, + {0xb8c8, 0x577d}, + {0xb8c9, 0x578d}, + {0xb8ca, 0x578e}, + {0xb8cb, 0x5796}, + {0xb8cc, 0x57a4}, + {0xb8cd, 0x57a5}, + {0xb8ce, 0x5799}, + {0xb8cf, 0x57c1}, + {0xb8d0, 0x57c8}, + {0xb8d1, 0x57be}, + {0xb8d2, 0x57c2}, + {0xb8d3, 0x57ed}, + {0xb8d4, 0x57f1}, + {0xb8d5, 0x57f5}, + {0xb8d6, 0x5808}, + {0xb8d7, 0x5806}, + {0xb8d8, 0x57fd}, + {0xb8d9, 0x57fc}, + {0xb8da, 0x57fa}, + {0xb8db, 0x5822}, + {0xb8dc, 0x5825}, + {0xb8dd, 0x5846}, + {0xb8de, 0x582e}, + {0xb8df, 0x5832}, + {0xb8e0, 0x5842}, + {0xb8e1, 0x5830}, + {0xb8e2, 0x5848}, + {0xb8e3, 0x585d}, + {0xb8e4, 0x5869}, + {0xb8e5, 0x5868}, + {0xb8e6, 0x5874}, + {0xb8e7, 0x5894}, + {0xb8e8, 0x58a4}, + {0xb8e9, 0x589a}, + {0xb8ea, 0x5885}, + {0xb8eb, 0x5898}, + {0xb8ec, 0x5895}, + {0xb8ed, 0x588e}, + {0xb8ee, 0x5899}, + {0xb8ef, 0x58b8}, + {0xb8f0, 0x58c5}, + {0xb8f1, 0x58bd}, + {0xb8f2, 0x58c8}, + {0xb8f3, 0x58b6}, + {0xb8f4, 0x58ca}, + {0xb8f5, 0x5901}, + {0xb8f6, 0x58f9}, + {0xb8f7, 0x58fa}, + {0xb8f8, 0x5906}, + {0xb8f9, 0x5909}, + {0xb8fa, 0x590a}, + {0xb8fb, 0x5924}, + {0xb8fc, 0x5918}, + {0xb8fd, 0x591a}, + {0xb8fe, 0x5935}, + {0xb940, 0x8516}, + {0xb941, 0x5654}, + {0xb942, 0x539a}, + {0xb943, 0x57c5}, + {0xb944, 0x53e9}, + {0xb945, 0x96fa}, + {0xb946, 0x7dda}, + {0xb947, 0x9741}, + {0xb948, 0x8e71}, + {0xb949, 0x80cd}, + {0xb94a, 0x7c0c}, + {0xb94b, 0x5c0c}, + {0xb94c, 0x8f58}, + {0xb94d, 0x4722}, + {0xb94e, 0xb5c0}, + {0xb94f, 0xb258}, + {0xb950, 0x3f12}, + {0xb951, 0x7208}, + {0xb952, 0x68ca}, + {0xb953, 0x9b52}, + {0xb954, 0x922c}, + {0xb955, 0x6434}, + {0xb956, 0x5db6}, + {0xb957, 0xc318}, + {0xb958, 0x7288}, + {0xb959, 0x4ce2}, + {0xb95a, 0x437c}, + {0xb95b, 0x55ed}, + {0xb95c, 0xa07a}, + {0xb95d, 0x74c5}, + {0xb95e, 0x735c}, + {0xb95f, 0x6cad}, + {0xb960, 0x5b21}, + {0xb961, 0x674a}, + {0xb962, 0x5d2c}, + {0xb963, 0xa00e}, + {0xb964, 0xa7c6}, + {0xb965, 0xc259}, + {0xb966, 0x46a2}, + {0xb967, 0x9ac1}, + {0xb968, 0xc45d}, + {0xb969, 0xc788}, + {0xb96a, 0x9f85}, + {0xb96b, 0x437d}, + {0xb96c, 0x587e}, + {0xb96d, 0x57b4}, + {0xb96e, 0x70e8}, + {0xb96f, 0xbbf4}, + {0xb970, 0x8575}, + {0xb971, 0xaa59}, + {0xb972, 0x894a}, + {0xb973, 0x728d}, + {0xb974, 0xc6c5}, + {0xb975, 0x85d4}, + {0xb976, 0x3f9c}, + {0xb977, 0x5902}, + {0xb978, 0x9c2e}, + {0xb979, 0x5af1}, + {0xb97a, 0xb8ca}, + {0xb97b, 0x66d9}, + {0xb97c, 0xbf7e}, + {0xb97d, 0x6069}, + {0xb97e, 0xc0e8}, + {0xb980, 0x9412}, + {0xb981, 0xc362}, + {0xb982, 0x7b05}, + {0xb983, 0x77f9}, + {0xb984, 0x6e72}, + {0xb985, 0x5679}, + {0xb986, 0xbde8}, + {0xb987, 0x5a34}, + {0xb988, 0x8ba6}, + {0xb989, 0x6e74}, + {0xb98a, 0x496a}, + {0xb98b, 0x4382}, + {0xb98c, 0xc6f8}, + {0xb98d, 0x4218}, + {0xb98e, 0xadb9}, + {0xb98f, 0x3ff8}, + {0xb990, 0x9b5c}, + {0xb991, 0xa8d4}, + {0xb992, 0x88e1}, + {0xb993, 0xabec}, + {0xb994, 0x6038}, + {0xb995, 0x968a}, + {0xb996, 0xbb60}, + {0xb997, 0x4981}, + {0xb998, 0x7c76}, + {0xb999, 0xa50e}, + {0xb99a, 0x5006}, + {0xb99b, 0x990c}, + {0xb99c, 0x64fe}, + {0xb99d, 0x699d}, + {0xb99e, 0xabed}, + {0xb99f, 0x7e94}, + {0xb9a0, 0x53f5}, + {0xb9a1, 0x593c}, + {0xb9a2, 0x5941}, + {0xb9a3, 0x5944}, + {0xb9a4, 0x5959}, + {0xb9a5, 0x5966}, + {0xb9a6, 0x5961}, + {0xb9a7, 0x5974}, + {0xb9a8, 0x5978}, + {0xb9a9, 0x596a}, + {0xb9aa, 0x5976}, + {0xb9ab, 0x595c}, + {0xb9ac, 0x5970}, + {0xb9ad, 0x595a}, + {0xb9ae, 0x5996}, + {0xb9af, 0x599a}, + {0xb9b0, 0x599d}, + {0xb9b1, 0x59ae}, + {0xb9b2, 0x59ad}, + {0xb9b3, 0x59c1}, + {0xb9b4, 0x59bd}, + {0xb9b5, 0x59c0}, + {0xb9b6, 0x59da}, + {0xb9b7, 0x59d9}, + {0xb9b8, 0x59ed}, + {0xb9b9, 0x59e9}, + {0xb9ba, 0x59ec}, + {0xb9bb, 0x59f4}, + {0xb9bc, 0x5a2c}, + {0xb9bd, 0x5a22}, + {0xb9be, 0x5a11}, + {0xb9bf, 0x5a32}, + {0xb9c0, 0x5a10}, + {0xb9c1, 0x5a15}, + {0xb9c2, 0x5a14}, + {0xb9c3, 0x5a12}, + {0xb9c4, 0x5a72}, + {0xb9c5, 0x5a46}, + {0xb9c6, 0x5a62}, + {0xb9c7, 0x5a54}, + {0xb9c8, 0x5a4d}, + {0xb9c9, 0x5a50}, + {0xb9ca, 0x5a94}, + {0xb9cb, 0x5a98}, + {0xb9cc, 0x5a91}, + {0xb9cd, 0x5aa5}, + {0xb9ce, 0x5ab6}, + {0xb9cf, 0x5ab4}, + {0xb9d0, 0x5ad5}, + {0xb9d1, 0x5ada}, + {0xb9d2, 0x5ae0}, + {0xb9d3, 0x5ae6}, + {0xb9d4, 0x5ae9}, + {0xb9d5, 0x5aed}, + {0xb9d6, 0x5af6}, + {0xb9d7, 0x5b06}, + {0xb9d8, 0x5afd}, + {0xb9d9, 0x5b00}, + {0xb9da, 0x5b01}, + {0xb9db, 0x5afe}, + {0xb9dc, 0x5b24}, + {0xb9dd, 0x5b1a}, + {0xb9de, 0x5b5a}, + {0xb9df, 0x5b39}, + {0xb9e0, 0x5b51}, + {0xb9e1, 0x5b35}, + {0xb9e2, 0x5b60}, + {0xb9e3, 0x5b7d}, + {0xb9e4, 0x5b88}, + {0xb9e5, 0x5bae}, + {0xb9e6, 0x5b92}, + {0xb9e7, 0x5b8e}, + {0xb9e8, 0x5ba4}, + {0xb9e9, 0x5b8d}, + {0xb9ea, 0x5b91}, + {0xb9eb, 0x5b98}, + {0xb9ec, 0x5bd1}, + {0xb9ed, 0x5be5}, + {0xb9ee, 0x5bd9}, + {0xb9ef, 0x5be2}, + {0xb9f0, 0x5c09}, + {0xb9f1, 0x5c02}, + {0xb9f2, 0x5c12}, + {0xb9f3, 0x5c06}, + {0xb9f4, 0x5bfe}, + {0xb9f5, 0x5c36}, + {0xb9f6, 0x5c39}, + {0xb9f7, 0x5c4e}, + {0xb9f8, 0x5c6c}, + {0xb9f9, 0x5c62}, + {0xb9fa, 0x5c81}, + {0xb9fb, 0x5c9a}, + {0xb9fc, 0x5caa}, + {0xb9fd, 0x5cb2}, + {0xb9fe, 0x5cbd}, + {0xba40, 0x4911}, + {0xba41, 0x5560}, + {0xba42, 0xc471}, + {0xba43, 0x5f6e}, + {0xba44, 0x8d71}, + {0xba45, 0x8eb4}, + {0xba46, 0x804d}, + {0xba47, 0x8c4c}, + {0xba48, 0x5a36}, + {0xba49, 0x96d9}, + {0xba4a, 0xbbfe}, + {0xba4b, 0x5e86}, + {0xba4c, 0x9d26}, + {0xba4d, 0xbb9d}, + {0xba4e, 0x47f8}, + {0xba4f, 0x92de}, + {0xba50, 0xc0ed}, + {0xba51, 0x844c}, + {0xba52, 0x8c50}, + {0xba53, 0xaa5d}, + {0xba54, 0x598a}, + {0xba55, 0x8644}, + {0xba56, 0x50d0}, + {0xba57, 0xc58d}, + {0xba58, 0x487d}, + {0xba59, 0x9420}, + {0xba5a, 0xc472}, + {0xba5b, 0x8c7e}, + {0xba5c, 0x79ae}, + {0xba5d, 0x66e9}, + {0xba5e, 0x4275}, + {0xba5f, 0x6320}, + {0xba60, 0x3fb9}, + {0xba61, 0x4e08}, + {0xba62, 0x4a85}, + {0xba63, 0xafc6}, + {0xba64, 0x93cc}, + {0xba65, 0x4b05}, + {0xba66, 0x87be}, + {0xba67, 0x885c}, + {0xba68, 0xba72}, + {0xba69, 0xa0c5}, + {0xba6a, 0xbd7d}, + {0xba6b, 0x9421}, + {0xba6c, 0x5c24}, + {0xba6d, 0xb3ca}, + {0xba6e, 0x60a2}, + {0xba6f, 0x44b9}, + {0xba70, 0x703d}, + {0xba71, 0x88e9}, + {0xba72, 0xbd3e}, + {0xba73, 0x6471}, + {0xba74, 0x7a3c}, + {0xba75, 0x438c}, + {0xba76, 0x83de}, + {0xba77, 0x9b7c}, + {0xba78, 0x4b08}, + {0xba79, 0x4f0c}, + {0xba7a, 0x9b80}, + {0xba7b, 0x73fd}, + {0xba7c, 0x76ed}, + {0xba7d, 0xaa25}, + {0xba7e, 0x41fa}, + {0xba80, 0x7fe2}, + {0xba81, 0x9422}, + {0xba82, 0x4d24}, + {0xba83, 0x7768}, + {0xba84, 0x4c80}, + {0xba85, 0x56c6}, + {0xba86, 0x6769}, + {0xba87, 0x80de}, + {0xba88, 0x71a8}, + {0xba89, 0x4c46}, + {0xba8a, 0x689c}, + {0xba8b, 0x9b5d}, + {0xba8c, 0x73ae}, + {0xba8d, 0xaa35}, + {0xba8e, 0x7b3a}, + {0xba8f, 0x9780}, + {0xba90, 0xbcb1}, + {0xba91, 0x8ae8}, + {0xba92, 0x85d6}, + {0xba93, 0x8a92}, + {0xba94, 0x87c4}, + {0xba95, 0x57d1}, + {0xba96, 0x6d21}, + {0xba97, 0x7b3c}, + {0xba98, 0x7b32}, + {0xba99, 0xb020}, + {0xba9a, 0x4cee}, + {0xba9b, 0x9326}, + {0xba9c, 0xc481}, + {0xba9d, 0x59d4}, + {0xba9e, 0x8bba}, + {0xba9f, 0x7699}, + {0xbaa0, 0x9781}, + {0xbaa1, 0x5ccd}, + {0xbaa2, 0x5cc9}, + {0xbaa3, 0x5cd1}, + {0xbaa4, 0x5ce1}, + {0xbaa5, 0x5cda}, + {0xbaa6, 0x5ce0}, + {0xbaa7, 0x5cde}, + {0xbaa8, 0x5cf8}, + {0xbaa9, 0x5d00}, + {0xbaaa, 0x5d08}, + {0xbaab, 0x5d28}, + {0xbaac, 0x5d06}, + {0xbaad, 0x5d20}, + {0xbaae, 0x5d25}, + {0xbaaf, 0x5d09}, + {0xbab0, 0x5d42}, + {0xbab1, 0x5d3c}, + {0xbab2, 0x5d86}, + {0xbab3, 0x5d85}, + {0xbab4, 0x5d59}, + {0xbab5, 0x5d55}, + {0xbab6, 0x5d84}, + {0xbab7, 0x5d58}, + {0xbab8, 0x5d65}, + {0xbab9, 0x5d52}, + {0xbaba, 0x5d4d}, + {0xbabb, 0x5d9d}, + {0xbabc, 0x5da8}, + {0xbabd, 0x5db0}, + {0xbabe, 0x5ddd}, + {0xbabf, 0x5ddc}, + {0xbac0, 0x5dd0}, + {0xbac1, 0x5dc9}, + {0xbac2, 0x5de8}, + {0xbac3, 0x5de6}, + {0xbac4, 0x5dfa}, + {0xbac5, 0x5de9}, + {0xbac6, 0x5df9}, + {0xbac7, 0x5e24}, + {0xbac8, 0x5e2a}, + {0xbac9, 0x5e55}, + {0xbaca, 0x5e5e}, + {0xbacb, 0x5e51}, + {0xbacc, 0x5e32}, + {0xbacd, 0x5e3a}, + {0xbace, 0x5e35}, + {0xbacf, 0x5e34}, + {0xbad0, 0x5e5c}, + {0xbad1, 0x5e75}, + {0xbad2, 0x5e4a}, + {0xbad3, 0x5e3d}, + {0xbad4, 0x5e59}, + {0xbad5, 0x5eb2}, + {0xbad6, 0x5eb1}, + {0xbad7, 0x5eb5}, + {0xbad8, 0x5ea0}, + {0xbad9, 0x5eca}, + {0xbada, 0x5ec8}, + {0xbadb, 0x5ed1}, + {0xbadc, 0x5ed6}, + {0xbadd, 0x5ed8}, + {0xbade, 0x5edc}, + {0xbadf, 0x5ede}, + {0xbae0, 0x5edd}, + {0xbae1, 0x5ef1}, + {0xbae2, 0x5ef4}, + {0xbae3, 0x5ee8}, + {0xbae4, 0x5f08}, + {0xbae5, 0x5f09}, + {0xbae6, 0x5f0c}, + {0xbae7, 0x5f3e}, + {0xbae8, 0x5f4e}, + {0xbae9, 0x5f39}, + {0xbaea, 0x5f26}, + {0xbaeb, 0x5f20}, + {0xbaec, 0x5f22}, + {0xbaed, 0x5f98}, + {0xbaee, 0x5f91}, + {0xbaef, 0x5f9a}, + {0xbaf0, 0x5fb4}, + {0xbaf1, 0x5fbe}, + {0xbaf2, 0x5fc5}, + {0xbaf3, 0x5fba}, + {0xbaf4, 0x5fd9}, + {0xbaf5, 0x5fd4}, + {0xbaf6, 0x5fdc}, + {0xbaf7, 0x602c}, + {0xbaf8, 0x6015}, + {0xbaf9, 0x6028}, + {0xbafa, 0x6012}, + {0xbafb, 0x603a}, + {0xbafc, 0x6010}, + {0xbafd, 0x6039}, + {0xbafe, 0x6024}, + {0xbb40, 0x72e9}, + {0xbb41, 0x71aa}, + {0xbb42, 0xb96e}, + {0xbb43, 0xbba8}, + {0xbb44, 0x5de1}, + {0xbb45, 0xc044}, + {0xbb46, 0x9c3e}, + {0xbb47, 0x9e7e}, + {0xbb48, 0x8460}, + {0xbb49, 0x482e}, + {0xbb4a, 0xb3d5}, + {0xbb4b, 0x8aa1}, + {0xbb4c, 0x9de4}, + {0xbb4d, 0xc4c0}, + {0xbb4e, 0xc398}, + {0xbb4f, 0x5386}, + {0xbb50, 0x9829}, + {0xbb51, 0xc396}, + {0xbb52, 0x8c08}, + {0xbb53, 0xc5a2}, + {0xbb54, 0x9de6}, + {0xbb55, 0x7b46}, + {0xbb56, 0x7a85}, + {0xbb57, 0x6711}, + {0xbb58, 0xa1ae}, + {0xbb59, 0xb734}, + {0xbb5a, 0xba88}, + {0xbb5b, 0x72b5}, + {0xbb5c, 0x79cd}, + {0xbb5d, 0x8d7e}, + {0xbb5e, 0x76a5}, + {0xbb5f, 0x72f6}, + {0xbb60, 0x8bca}, + {0xbb61, 0xbbb5}, + {0xbb62, 0xc2f4}, + {0xbb63, 0x8fb2}, + {0xbb64, 0x76a6}, + {0xbb65, 0x4008}, + {0xbb66, 0x5110}, + {0xbb67, 0xc726}, + {0xbb68, 0x751e}, + {0xbb69, 0x969d}, + {0xbb6a, 0x7bde}, + {0xbb6b, 0xb736}, + {0xbb6c, 0xbbbc}, + {0xbb6d, 0xc5a5}, + {0xbb6e, 0xba96}, + {0xbb6f, 0x5394}, + {0xbb70, 0x9580}, + {0xbb71, 0xbf9d}, + {0xbb72, 0x958d}, + {0xbb73, 0x855d}, + {0xbb74, 0x5e49}, + {0xbb75, 0x834e}, + {0xbb76, 0x4b6c}, + {0xbb77, 0xbf2d}, + {0xbb78, 0x8b84}, + {0xbb79, 0xbe42}, + {0xbb7a, 0x3f0c}, + {0xbb7b, 0x3d44}, + {0xbb7c, 0xa5a5}, + {0xbb7d, 0x93e2}, + {0xbb7e, 0x6f05}, + {0xbb80, 0x91f6}, + {0xbb81, 0x3f0d}, + {0xbb82, 0x9b00}, + {0xbb83, 0xb600}, + {0xbb84, 0xbfa8}, + {0xbb85, 0x7f86}, + {0xbb86, 0x9c4e}, + {0xbb87, 0x608d}, + {0xbb88, 0x57ad}, + {0xbb89, 0x6ce1}, + {0xbb8a, 0x8170}, + {0xbb8b, 0xc37e}, + {0xbb8c, 0x46e0}, + {0xbb8d, 0x9a69}, + {0xbb8e, 0x5f58}, + {0xbb8f, 0x9fdd}, + {0xbb90, 0x436e}, + {0xbb91, 0x77f2}, + {0xbb92, 0xc4d0}, + {0xbb93, 0x3cfd}, + {0xbb94, 0x738a}, + {0xbb95, 0x52f2}, + {0xbb96, 0x8f59}, + {0xbb97, 0x5e65}, + {0xbb98, 0xa921}, + {0xbb99, 0x566a}, + {0xbb9a, 0x753d}, + {0xbb9b, 0xbb90}, + {0xbb9c, 0x7b06}, + {0xbb9d, 0x6c7a}, + {0xbb9e, 0x8a70}, + {0xbb9f, 0x3d15}, + {0xbba0, 0xbf05}, + {0xbba1, 0x600e}, + {0xbba2, 0x605e}, + {0xbba3, 0x6061}, + {0xbba4, 0x607c}, + {0xbba5, 0x606e}, + {0xbba6, 0x607e}, + {0xbba7, 0x6072}, + {0xbba8, 0x60b2}, + {0xbba9, 0x60c6}, + {0xbbaa, 0x60c1}, + {0xbbab, 0x60ce}, + {0xbbac, 0x60cd}, + {0xbbad, 0x60ee}, + {0xbbae, 0x60ea}, + {0xbbaf, 0x60e8}, + {0xbbb0, 0x60f0}, + {0xbbb1, 0x6116}, + {0xbbb2, 0x6114}, + {0xbbb3, 0x6112}, + {0xbbb4, 0x6115}, + {0xbbb5, 0x6128}, + {0xbbb6, 0x612e}, + {0xbbb7, 0x6148}, + {0xbbb8, 0x6150}, + {0xbbb9, 0x6145}, + {0xbbba, 0x6182}, + {0xbbbb, 0x6196}, + {0xbbbc, 0x61a0}, + {0xbbbd, 0x6195}, + {0xbbbe, 0x61ae}, + {0xbbbf, 0x61b2}, + {0xbbc0, 0x61a2}, + {0xbbc1, 0x6199}, + {0xbbc2, 0x6194}, + {0xbbc3, 0x618c}, + {0xbbc4, 0x61d0}, + {0xbbc5, 0x61d8}, + {0xbbc6, 0x61e5}, + {0xbbc7, 0x620d}, + {0xbbc8, 0x6209}, + {0xbbc9, 0x6212}, + {0xbbca, 0x61de}, + {0xbbcb, 0x61e2}, + {0xbbcc, 0x61ed}, + {0xbbcd, 0x61f8}, + {0xbbce, 0x622e}, + {0xbbcf, 0x6234}, + {0xbbd0, 0x622a}, + {0xbbd1, 0x6232}, + {0xbbd2, 0x624c}, + {0xbbd3, 0x6256}, + {0xbbd4, 0x626a}, + {0xbbd5, 0x6288}, + {0xbbd6, 0x6254}, + {0xbbd7, 0x62a2}, + {0xbbd8, 0x6291}, + {0xbbd9, 0x62ec}, + {0xbbda, 0x62a9}, + {0xbbdb, 0x6302}, + {0xbbdc, 0x62b8}, + {0xbbdd, 0x62d9}, + {0xbbde, 0x62d5}, + {0xbbdf, 0x62d1}, + {0xbbe0, 0x62d6}, + {0xbbe1, 0x62bc}, + {0xbbe2, 0x62d0}, + {0xbbe3, 0x62ba}, + {0xbbe4, 0x62bd}, + {0xbbe5, 0x62c9}, + {0xbbe6, 0x62c5}, + {0xbbe7, 0x6349}, + {0xbbe8, 0x6346}, + {0xbbe9, 0x634c}, + {0xbbea, 0x6369}, + {0xbbeb, 0x6361}, + {0xbbec, 0x637c}, + {0xbbed, 0x6394}, + {0xbbee, 0x639a}, + {0xbbef, 0x63a4}, + {0xbbf0, 0x63a2}, + {0xbbf1, 0x63b9}, + {0xbbf2, 0x63b1}, + {0xbbf3, 0x63c2}, + {0xbbf4, 0x63dc}, + {0xbbf5, 0x63b2}, + {0xbbf6, 0x63c0}, + {0xbbf7, 0x6401}, + {0xbbf8, 0x640a}, + {0xbbf9, 0x6426}, + {0xbbfa, 0x640c}, + {0xbbfb, 0x643d}, + {0xbbfc, 0x6455}, + {0xbbfd, 0x6420}, + {0xbbfe, 0x6448}, + {0xbc40, 0x5ca6}, + {0xbc41, 0x60bc}, + {0xbc42, 0x9344}, + {0xbc43, 0x9d1e}, + {0xbc44, 0x4016}, + {0xbc45, 0x802e}, + {0xbc46, 0xc6b0}, + {0xbc47, 0x67c8}, + {0xbc48, 0x74e2}, + {0xbc49, 0xab52}, + {0xbc4a, 0x55fa}, + {0xbc4b, 0x8550}, + {0xbc4c, 0x3e75}, + {0xbc4d, 0x5a82}, + {0xbc4e, 0xac9d}, + {0xbc4f, 0x6635}, + {0xbc50, 0xc4d6}, + {0xbc51, 0x9d2c}, + {0xbc52, 0x9348}, + {0xbc53, 0x5524}, + {0xbc54, 0x6859}, + {0xbc55, 0x8132}, + {0xbc56, 0x934a}, + {0xbc57, 0x934c}, + {0xbc58, 0x8556}, + {0xbc59, 0x47a0}, + {0xbc5a, 0x7705}, + {0xbc5b, 0x70bd}, + {0xbc5c, 0x4220}, + {0xbc5d, 0x6174}, + {0xbc5e, 0x9826}, + {0xbc5f, 0x65ec}, + {0xbc60, 0xa949}, + {0xbc61, 0xa0ca}, + {0xbc62, 0x8468}, + {0xbc63, 0x7618}, + {0xbc64, 0xc7b2}, + {0xbc65, 0x4e11}, + {0xbc66, 0x8469}, + {0xbc67, 0x9f38}, + {0xbc68, 0x733c}, + {0xbc69, 0x991a}, + {0xbc6a, 0x6ba5}, + {0xbc6b, 0x596c}, + {0xbc6c, 0xc0f8}, + {0xbc6d, 0x6ba9}, + {0xbc6e, 0xb892}, + {0xbc6f, 0x6570}, + {0xbc70, 0x4406}, + {0xbc71, 0xc375}, + {0xbc72, 0xaec8}, + {0xbc73, 0xbb5d}, + {0xbc74, 0x5f3c}, + {0xbc75, 0xb8be}, + {0xbc76, 0x5892}, + {0xbc77, 0xa220}, + {0xbc78, 0x9165}, + {0xbc79, 0xa431}, + {0xbc7a, 0x8ef5}, + {0xbc7b, 0x823e}, + {0xbc7c, 0xc5bd}, + {0xbc7d, 0xa02e}, + {0xbc7e, 0x84cd}, + {0xbc80, 0x55b2}, + {0xbc81, 0x6576}, + {0xbc82, 0x97c9}, + {0xbc83, 0x4996}, + {0xbc84, 0x8768}, + {0xbc85, 0xc08e}, + {0xbc86, 0x93e4}, + {0xbc87, 0x5f44}, + {0xbc88, 0xc1d5}, + {0xbc89, 0x64c0}, + {0xbc8a, 0x54c4}, + {0xbc8b, 0xbbe8}, + {0xbc8c, 0x916a}, + {0xbc8d, 0x4c8e}, + {0xbc8e, 0x6a31}, + {0xbc8f, 0x5430}, + {0xbc90, 0x4b34}, + {0xbc91, 0x6bd4}, + {0xbc92, 0xbc62}, + {0xbc93, 0x3c9d}, + {0xbc94, 0x55e1}, + {0xbc95, 0xc234}, + {0xbc96, 0x89e9}, + {0xbc97, 0x47ee}, + {0xbc98, 0x5f4c}, + {0xbc99, 0xbc64}, + {0xbc9a, 0xa746}, + {0xbc9b, 0x5655}, + {0xbc9c, 0xab24}, + {0xbc9d, 0x9599}, + {0xbc9e, 0x4172}, + {0xbc9f, 0xc449}, + {0xbca0, 0x8fc4}, + {0xbca1, 0x640e}, + {0xbca2, 0x6405}, + {0xbca3, 0x6419}, + {0xbca4, 0x6461}, + {0xbca5, 0x6400}, + {0xbca6, 0x6414}, + {0xbca7, 0x641d}, + {0xbca8, 0x6428}, + {0xbca9, 0x6435}, + {0xbcaa, 0x64a4}, + {0xbcab, 0x64ae}, + {0xbcac, 0x64d9}, + {0xbcad, 0x64ea}, + {0xbcae, 0x651a}, + {0xbcaf, 0x64de}, + {0xbcb0, 0x649e}, + {0xbcb1, 0x64ba}, + {0xbcb2, 0x64c4}, + {0xbcb3, 0x64a9}, + {0xbcb4, 0x64ad}, + {0xbcb5, 0x64e2}, + {0xbcb6, 0x64aa}, + {0xbcb7, 0x6532}, + {0xbcb8, 0x6526}, + {0xbcb9, 0x6534}, + {0xbcba, 0x6528}, + {0xbcbb, 0x65a0}, + {0xbcbc, 0x655d}, + {0xbcbd, 0x65c6}, + {0xbcbe, 0x6565}, + {0xbcbf, 0x6555}, + {0xbcc0, 0x658d}, + {0xbcc1, 0x6564}, + {0xbcc2, 0x6588}, + {0xbcc3, 0x656e}, + {0xbcc4, 0x6585}, + {0xbcc5, 0x6584}, + {0xbcc6, 0x6550}, + {0xbcc7, 0x6551}, + {0xbcc8, 0x656c}, + {0xbcc9, 0x655c}, + {0xbcca, 0x6561}, + {0xbccb, 0x655a}, + {0xbccc, 0x6578}, + {0xbccd, 0x6556}, + {0xbcce, 0x6630}, + {0xbccf, 0x6612}, + {0xbcd0, 0x6605}, + {0xbcd1, 0x660d}, + {0xbcd2, 0x661a}, + {0xbcd3, 0x6604}, + {0xbcd4, 0x6646}, + {0xbcd5, 0x6655}, + {0xbcd6, 0x666e}, + {0xbcd7, 0x6668}, + {0xbcd8, 0x6670}, + {0xbcd9, 0x6686}, + {0xbcda, 0x6690}, + {0xbcdb, 0x6681}, + {0xbcdc, 0x6685}, + {0xbcdd, 0x6682}, + {0xbcde, 0x668a}, + {0xbcdf, 0x6699}, + {0xbce0, 0x66aa}, + {0xbce1, 0x6698}, + {0xbce2, 0x6695}, + {0xbce3, 0x66b1}, + {0xbce4, 0x669a}, + {0xbce5, 0x66cd}, + {0xbce6, 0x66a9}, + {0xbce7, 0x66a2}, + {0xbce8, 0x66a4}, + {0xbce9, 0x6694}, + {0xbcea, 0x66c1}, + {0xbceb, 0x6728}, + {0xbcec, 0x6734}, + {0xbced, 0x6726}, + {0xbcee, 0x6755}, + {0xbcef, 0x6740}, + {0xbcf0, 0x6721}, + {0xbcf1, 0x672c}, + {0xbcf2, 0x674c}, + {0xbcf3, 0x6725}, + {0xbcf4, 0x6730}, + {0xbcf5, 0x672e}, + {0xbcf6, 0x678c}, + {0xbcf7, 0x67bc}, + {0xbcf8, 0x67b4}, + {0xbcf9, 0x67b0}, + {0xbcfa, 0x678d}, + {0xbcfb, 0x6780}, + {0xbcfc, 0x67b5}, + {0xbcfd, 0x67c6}, + {0xbcfe, 0x6781}, + {0xbd40, 0x7895}, + {0xbd41, 0xc44a}, + {0xbd42, 0x9528}, + {0xbd43, 0x57e1}, + {0xbd44, 0xb182}, + {0xbd45, 0x5656}, + {0xbd46, 0xa170}, + {0xbd47, 0xc060}, + {0xbd48, 0x4c2a}, + {0xbd49, 0x48c2}, + {0xbd4a, 0x9672}, + {0xbd4b, 0xc2de}, + {0xbd4c, 0xa875}, + {0xbd4d, 0xc70c}, + {0xbd4e, 0x6b6e}, + {0xbd4f, 0x3d5e}, + {0xbd50, 0x8f8c}, + {0xbd51, 0x8171}, + {0xbd52, 0x984d}, + {0xbd53, 0xc745}, + {0xbd54, 0x7110}, + {0xbd55, 0x6ae2}, + {0xbd56, 0x9175}, + {0xbd57, 0x5db8}, + {0xbd58, 0xab2e}, + {0xbd59, 0x6991}, + {0xbd5a, 0xc3b4}, + {0xbd5b, 0x4810}, + {0xbd5c, 0x5ae4}, + {0xbd5d, 0x3cfe}, + {0xbd5e, 0x6dc8}, + {0xbd5f, 0x7111}, + {0xbd60, 0x6026}, + {0xbd61, 0x4a45}, + {0xbd62, 0x6158}, + {0xbd63, 0x592c}, + {0xbd64, 0x9d6a}, + {0xbd65, 0xaac0}, + {0xbd66, 0x7071}, + {0xbd67, 0x68cc}, + {0xbd68, 0x901a}, + {0xbd69, 0x576e}, + {0xbd6a, 0x7c0d}, + {0xbd6b, 0xae1c}, + {0xbd6c, 0x3eaa}, + {0xbd6d, 0xa919}, + {0xbd6e, 0x5664}, + {0xbd6f, 0x5908}, + {0xbd70, 0x9fde}, + {0xbd71, 0x91b2}, + {0xbd72, 0x9f30}, + {0xbd73, 0xb5c1}, + {0xbd74, 0x7439}, + {0xbd75, 0xab30}, + {0xbd76, 0x6d6e}, + {0xbd77, 0x5760}, + {0xbd78, 0x4f61}, + {0xbd79, 0xa00d}, + {0xbd7a, 0x992c}, + {0xbd7b, 0x684e}, + {0xbd7c, 0xa989}, + {0xbd7d, 0x62dc}, + {0xbd7e, 0x6dc9}, + {0xbd80, 0x674d}, + {0xbd81, 0x6d75}, + {0xbd82, 0x46ed}, + {0xbd83, 0xa478}, + {0xbd84, 0xc09a}, + {0xbd85, 0x7c4e}, + {0xbd86, 0x46a4}, + {0xbd87, 0x8f11}, + {0xbd88, 0x97e1}, + {0xbd89, 0x3d80}, + {0xbd8a, 0xa010}, + {0xbd8b, 0xaa05}, + {0xbd8c, 0x615a}, + {0xbd8d, 0x8d90}, + {0xbd8e, 0x5946}, + {0xbd8f, 0xac9c}, + {0xbd90, 0x9e1c}, + {0xbd91, 0xacac}, + {0xbd92, 0xaacc}, + {0xbd93, 0x5f61}, + {0xbd94, 0xa756}, + {0xbd95, 0x566c}, + {0xbd96, 0x9f68}, + {0xbd97, 0x9ae8}, + {0xbd98, 0x513c}, + {0xbd99, 0x71f5}, + {0xbd9a, 0x55ee}, + {0xbd9b, 0x6aed}, + {0xbd9c, 0x6092}, + {0xbd9d, 0xc15d}, + {0xbd9e, 0xaffe}, + {0xbd9f, 0x6b8d}, + {0xbda0, 0x5586}, + {0xbda1, 0x6791}, + {0xbda2, 0x6798}, + {0xbda3, 0x6788}, + {0xbda4, 0x6786}, + {0xbda5, 0x679e}, + {0xbda6, 0x67a9}, + {0xbda7, 0x6795}, + {0xbda8, 0x6785}, + {0xbda9, 0x6808}, + {0xbdaa, 0x67fa}, + {0xbdab, 0x67fc}, + {0xbdac, 0x6800}, + {0xbdad, 0x67f9}, + {0xbdae, 0x681e}, + {0xbdaf, 0x682a}, + {0xbdb0, 0x6828}, + {0xbdb1, 0x6825}, + {0xbdb2, 0x6824}, + {0xbdb3, 0x6840}, + {0xbdb4, 0x6852}, + {0xbdb5, 0x6845}, + {0xbdb6, 0x688e}, + {0xbdb7, 0x687a}, + {0xbdb8, 0x6894}, + {0xbdb9, 0x687c}, + {0xbdba, 0x6876}, + {0xbdbb, 0x6866}, + {0xbdbc, 0x6868}, + {0xbdbd, 0x6870}, + {0xbdbe, 0x6874}, + {0xbdbf, 0x686d}, + {0xbdc0, 0x6e0d}, + {0xbdc1, 0x68c8}, + {0xbdc2, 0x68c5}, + {0xbdc3, 0x68c2}, + {0xbdc4, 0x68b4}, + {0xbdc5, 0x68c4}, + {0xbdc6, 0x68b6}, + {0xbdc7, 0x68b1}, + {0xbdc8, 0x68b9}, + {0xbdc9, 0x68e8}, + {0xbdca, 0x68b8}, + {0xbdcb, 0x68cd}, + {0xbdcc, 0x690e}, + {0xbdcd, 0x691a}, + {0xbdce, 0x690a}, + {0xbdcf, 0x690c}, + {0xbdd0, 0x6901}, + {0xbdd1, 0x6910}, + {0xbdd2, 0x6946}, + {0xbdd3, 0x6935}, + {0xbdd4, 0x6934}, + {0xbdd5, 0x6939}, + {0xbdd6, 0x694c}, + {0xbdd7, 0x6931}, + {0xbdd8, 0x69a9}, + {0xbdd9, 0x6965}, + {0xbdda, 0x6960}, + {0xbddb, 0x6c5e}, + {0xbddc, 0x696c}, + {0xbddd, 0x6985}, + {0xbdde, 0x699c}, + {0xbddf, 0x69ad}, + {0xbde0, 0x6975}, + {0xbde1, 0x6976}, + {0xbde2, 0x69da}, + {0xbde3, 0x69d6}, + {0xbde4, 0x69ea}, + {0xbde5, 0x6a15}, + {0xbde6, 0x69ec}, + {0xbde7, 0x69f2}, + {0xbde8, 0x69fa}, + {0xbde9, 0x69e1}, + {0xbdea, 0x69f5}, + {0xbdeb, 0x69f9}, + {0xbdec, 0x69ee}, + {0xbded, 0x6a1a}, + {0xbdee, 0x6a38}, + {0xbdef, 0x6a1d}, + {0xbdf0, 0x6a24}, + {0xbdf1, 0x6a1c}, + {0xbdf2, 0x6a26}, + {0xbdf3, 0x6a49}, + {0xbdf4, 0x6a51}, + {0xbdf5, 0x6a59}, + {0xbdf6, 0x6a4c}, + {0xbdf7, 0x6a58}, + {0xbdf8, 0x6a7c}, + {0xbdf9, 0x6a9c}, + {0xbdfa, 0x6a89}, + {0xbdfb, 0x6a99}, + {0xbdfc, 0x6a7a}, + {0xbdfd, 0x6a8c}, + {0xbdfe, 0x6a8a}, + {0xbe40, 0x659e}, + {0xbe41, 0xad6c}, + {0xbe42, 0x9142}, + {0xbe43, 0xc669}, + {0xbe44, 0x45d9}, + {0xbe45, 0x51cd}, + {0xbe46, 0x75d1}, + {0xbe47, 0x7c71}, + {0xbe48, 0x76fd}, + {0xbe49, 0x481c}, + {0xbe4a, 0x9050}, + {0xbe4b, 0x952c}, + {0xbe4c, 0x8a71}, + {0xbe4d, 0xc52d}, + {0xbe4e, 0x8a74}, + {0xbe4f, 0xa251}, + {0xbe50, 0x8c45}, + {0xbe51, 0xa92a}, + {0xbe52, 0x97a9}, + {0xbe53, 0xa322}, + {0xbe54, 0x9d9c}, + {0xbe55, 0xa252}, + {0xbe56, 0x5819}, + {0xbe57, 0xa2a6}, + {0xbe58, 0x3eb2}, + {0xbe59, 0xc50e}, + {0xbe5a, 0x42ae}, + {0xbe5b, 0x5ca8}, + {0xbe5c, 0x4b48}, + {0xbe5d, 0x7ba2}, + {0xbe5e, 0x7966}, + {0xbe5f, 0x8ae2}, + {0xbe60, 0xbee4}, + {0xbe61, 0x3f9d}, + {0xbe62, 0x49dd}, + {0xbe63, 0x78b5}, + {0xbe64, 0x7ff2}, + {0xbe65, 0x89f4}, + {0xbe66, 0x8d6d}, + {0xbe67, 0x9eb6}, + {0xbe68, 0xc66a}, + {0xbe69, 0x5c40}, + {0xbe6a, 0xc6c6}, + {0xbe6b, 0xa668}, + {0xbe6c, 0xc5e9}, + {0xbe6d, 0xac3c}, + {0xbe6e, 0x7715}, + {0xbe6f, 0x6a60}, + {0xbe70, 0x544d}, + {0xbe71, 0x9298}, + {0xbe72, 0x80b4}, + {0xbe73, 0xba3c}, + {0xbe74, 0xc699}, + {0xbe75, 0x53a4}, + {0xbe76, 0x7c72}, + {0xbe77, 0xad79}, + {0xbe78, 0xb6ad}, + {0xbe79, 0x94ee}, + {0xbe7a, 0x8a75}, + {0xbe7b, 0xad7a}, + {0xbe7c, 0xa96e}, + {0xbe7d, 0x66dd}, + {0xbe7e, 0x6fc1}, + {0xbe80, 0xa932}, + {0xbe81, 0x928a}, + {0xbe82, 0x7ff4}, + {0xbe83, 0x6456}, + {0xbe84, 0x5106}, + {0xbe85, 0x47da}, + {0xbe86, 0x4e85}, + {0xbe87, 0x80b5}, + {0xbe88, 0x7dc2}, + {0xbe89, 0xbb10}, + {0xbe8a, 0xab46}, + {0xbe8b, 0x3de1}, + {0xbe8c, 0x994d}, + {0xbe8d, 0x8eb5}, + {0xbe8e, 0x3ff9}, + {0xbe8f, 0x6188}, + {0xbe90, 0x5930}, + {0xbe91, 0x4a7e}, + {0xbe92, 0x8025}, + {0xbe93, 0xa3da}, + {0xbe94, 0x571a}, + {0xbe95, 0xa392}, + {0xbe96, 0xa025}, + {0xbe97, 0x59d0}, + {0xbe98, 0x804e}, + {0xbe99, 0xaad9}, + {0xbe9a, 0x76de}, + {0xbe9b, 0xc66e}, + {0xbe9c, 0x4045}, + {0xbe9d, 0x5c44}, + {0xbe9e, 0xb5d0}, + {0xbe9f, 0x9e28}, + {0xbea0, 0x5ac8}, + {0xbea1, 0x6a76}, + {0xbea2, 0x6a78}, + {0xbea3, 0x6ad6}, + {0xbea4, 0x6aee}, + {0xbea5, 0x6ad2}, + {0xbea6, 0x6aea}, + {0xbea7, 0x6ae5}, + {0xbea8, 0x6af5}, + {0xbea9, 0x6ace}, + {0xbeaa, 0x6add}, + {0xbeab, 0x6af0}, + {0xbeac, 0x6aec}, + {0xbead, 0x6ad1}, + {0xbeae, 0x6b02}, + {0xbeaf, 0x6b25}, + {0xbeb0, 0x6b14}, + {0xbeb1, 0x6b12}, + {0xbeb2, 0x6b58}, + {0xbeb3, 0x6b52}, + {0xbeb4, 0x6b48}, + {0xbeb5, 0x6b5e}, + {0xbeb6, 0x6b2a}, + {0xbeb7, 0x6b38}, + {0xbeb8, 0x6b50}, + {0xbeb9, 0x6b41}, + {0xbeba, 0x6b39}, + {0xbebb, 0x6b28}, + {0xbebc, 0x6b7e}, + {0xbebd, 0x6b88}, + {0xbebe, 0x6bb4}, + {0xbebf, 0x6ba4}, + {0xbec0, 0x6b9e}, + {0xbec1, 0x6bce}, + {0xbec2, 0x6bd2}, + {0xbec3, 0x6bc4}, + {0xbec4, 0x6bcd}, + {0xbec5, 0x6bc2}, + {0xbec6, 0x6bd5}, + {0xbec7, 0x6be9}, + {0xbec8, 0x6bea}, + {0xbec9, 0x6bda}, + {0xbeca, 0x6bde}, + {0xbecb, 0x6bf5}, + {0xbecc, 0x6be0}, + {0xbecd, 0x6bf0}, + {0xbece, 0x6be2}, + {0xbecf, 0x6c54}, + {0xbed0, 0x6c1c}, + {0xbed1, 0x6c1e}, + {0xbed2, 0x6c26}, + {0xbed3, 0x6c1a}, + {0xbed4, 0x6c21}, + {0xbed5, 0x6c68}, + {0xbed6, 0x6c58}, + {0xbed7, 0x6ca1}, + {0xbed8, 0x6ca6}, + {0xbed9, 0x6ca5}, + {0xbeda, 0x6ca4}, + {0xbedb, 0x6d02}, + {0xbedc, 0x6cca}, + {0xbedd, 0x6cec}, + {0xbede, 0x6cc2}, + {0xbedf, 0x6cd0}, + {0xbee0, 0x6cee}, + {0xbee1, 0x6d0a}, + {0xbee2, 0x6cf9}, + {0xbee3, 0x6cdc}, + {0xbee4, 0x6cc4}, + {0xbee5, 0x6cea}, + {0xbee6, 0x6cd6}, + {0xbee7, 0x6ce0}, + {0xbee8, 0x6d30}, + {0xbee9, 0x6d36}, + {0xbeea, 0x6d2e}, + {0xbeeb, 0x6d5c}, + {0xbeec, 0x6d68}, + {0xbeed, 0x6d46}, + {0xbeee, 0x6d61}, + {0xbeef, 0x6d84}, + {0xbef0, 0x6e1c}, + {0xbef1, 0x6d96}, + {0xbef2, 0x6db4}, + {0xbef3, 0x6dac}, + {0xbef4, 0x6dfd}, + {0xbef5, 0x6daa}, + {0xbef6, 0x6d8e}, + {0xbef7, 0x6d92}, + {0xbef8, 0x6da8}, + {0xbef9, 0x6e2e}, + {0xbefa, 0x6e3c}, + {0xbefb, 0x6e35}, + {0xbefc, 0x6e2a}, + {0xbefd, 0x6e2d}, + {0xbefe, 0x6e59}, + {0xbf40, 0xc28d}, + {0xbf41, 0xbc44}, + {0xbf42, 0x465e}, + {0xbf43, 0x4468}, + {0xbf44, 0x4c3e}, + {0xbf45, 0xa7cd}, + {0xbf46, 0xbb11}, + {0xbf47, 0xc69a}, + {0xbf48, 0xaced}, + {0xbf49, 0x9631}, + {0xbf4a, 0xa2e5}, + {0xbf4b, 0x5931}, + {0xbf4c, 0x93d2}, + {0xbf4d, 0xb712}, + {0xbf4e, 0x6ab4}, + {0xbf4f, 0xb541}, + {0xbf50, 0xc511}, + {0xbf51, 0x83b4}, + {0xbf52, 0x3d78}, + {0xbf53, 0x5a80}, + {0xbf54, 0x8600}, + {0xbf55, 0xc392}, + {0xbf56, 0x66ea}, + {0xbf57, 0x49f4}, + {0xbf58, 0x902d}, + {0xbf59, 0x98b6}, + {0xbf5a, 0xbc48}, + {0xbf5b, 0xa7d0}, + {0xbf5c, 0x4b21}, + {0xbf5d, 0x65cc}, + {0xbf5e, 0x91c9}, + {0xbf5f, 0x9d7c}, + {0xbf60, 0x5724}, + {0xbf61, 0xbc00}, + {0xbf62, 0xc074}, + {0xbf63, 0x586a}, + {0xbf64, 0x9268}, + {0xbf65, 0x6042}, + {0xbf66, 0xbca8}, + {0xbf67, 0x9dd8}, + {0xbf68, 0xa939}, + {0xbf69, 0x9aa1}, + {0xbf6a, 0xc075}, + {0xbf6b, 0xc6b2}, + {0xbf6c, 0x9d7d}, + {0xbf6d, 0x6239}, + {0xbf6e, 0x42b5}, + {0xbf6f, 0x3fba}, + {0xbf70, 0x558c}, + {0xbf71, 0x4ae1}, + {0xbf72, 0x74ed}, + {0xbf73, 0x9b7d}, + {0xbf74, 0xb07c}, + {0xbf75, 0xa716}, + {0xbf76, 0xc6b5}, + {0xbf77, 0x7415}, + {0xbf78, 0xc4b8}, + {0xbf79, 0x8c54}, + {0xbf7a, 0x7d65}, + {0xbf7b, 0xc19a}, + {0xbf7c, 0x7c60}, + {0xbf7d, 0x8195}, + {0xbf7e, 0x8845}, + {0xbf80, 0x7682}, + {0xbf81, 0xae2c}, + {0xbf82, 0xc69e}, + {0xbf83, 0x6472}, + {0xbf84, 0x9462}, + {0xbf85, 0x9b2d}, + {0xbf86, 0x7c7a}, + {0xbf87, 0x3eb6}, + {0xbf88, 0xb34a}, + {0xbf89, 0x9376}, + {0xbf8a, 0x811c}, + {0xbf8b, 0x8cac}, + {0xbf8c, 0x636e}, + {0xbf8d, 0xa839}, + {0xbf8e, 0x65d6}, + {0xbf8f, 0x9401}, + {0xbf90, 0xacb5}, + {0xbf91, 0x90c9}, + {0xbf92, 0xae30}, + {0xbf93, 0x9b32}, + {0xbf94, 0x8cdc}, + {0xbf95, 0xbdc0}, + {0xbf96, 0xc791}, + {0xbf97, 0xc16a}, + {0xbf98, 0x94b2}, + {0xbf99, 0x934d}, + {0xbf9a, 0x7812}, + {0xbf9b, 0xba74}, + {0xbf9c, 0x53b5}, + {0xbf9d, 0x7769}, + {0xbf9e, 0x4564}, + {0xbf9f, 0xc765}, + {0xbfa0, 0x67e8}, + {0xbfa1, 0x6e54}, + {0xbfa2, 0x6e6d}, + {0xbfa3, 0x6e5c}, + {0xbfa4, 0x6e55}, + {0xbfa5, 0x6e5e}, + {0xbfa6, 0x6e89}, + {0xbfa7, 0x6e88}, + {0xbfa8, 0x6e8c}, + {0xbfa9, 0x7989}, + {0xbfaa, 0x6e94}, + {0xbfab, 0x6e98}, + {0xbfac, 0x6eb1}, + {0xbfad, 0x6ea1}, + {0xbfae, 0x6eac}, + {0xbfaf, 0x6ecd}, + {0xbfb0, 0x6ed2}, + {0xbfb1, 0x6ed0}, + {0xbfb2, 0x6eda}, + {0xbfb3, 0x6edd}, + {0xbfb4, 0x6ef2}, + {0xbfb5, 0x6f06}, + {0xbfb6, 0x6f0d}, + {0xbfb7, 0x6f18}, + {0xbfb8, 0x6f1d}, + {0xbfb9, 0x6f28}, + {0xbfba, 0x6f21}, + {0xbfbb, 0x6f2c}, + {0xbfbc, 0x6f38}, + {0xbfbd, 0x6f39}, + {0xbfbe, 0x6f3e}, + {0xbfbf, 0x6f4a}, + {0xbfc0, 0x6f51}, + {0xbfc1, 0x6f52}, + {0xbfc2, 0x6f56}, + {0xbfc3, 0x6f64}, + {0xbfc4, 0x6f7c}, + {0xbfc5, 0x6f75}, + {0xbfc6, 0x6f5a}, + {0xbfc7, 0x6f85}, + {0xbfc8, 0x6f86}, + {0xbfc9, 0x6f8d}, + {0xbfca, 0x6f99}, + {0xbfcb, 0x6f9c}, + {0xbfcc, 0x6f9e}, + {0xbfcd, 0x6fa5}, + {0xbfce, 0x6fae}, + {0xbfcf, 0x6fca}, + {0xbfd0, 0x6fd0}, + {0xbfd1, 0x6fcd}, + {0xbfd2, 0x6fce}, + {0xbfd3, 0x6fe0}, + {0xbfd4, 0x6fdd}, + {0xbfd5, 0x6ffd}, + {0xbfd6, 0x7012}, + {0xbfd7, 0x7010}, + {0xbfd8, 0x7014}, + {0xbfd9, 0x7019}, + {0xbfda, 0x7024}, + {0xbfdb, 0x7029}, + {0xbfdc, 0x7031}, + {0xbfdd, 0x704d}, + {0xbfde, 0x7050}, + {0xbfdf, 0x705a}, + {0xbfe0, 0x7062}, + {0xbfe1, 0x7075}, + {0xbfe2, 0x7066}, + {0xbfe3, 0x7072}, + {0xbfe4, 0x707c}, + {0xbfe5, 0x708c}, + {0xbfe6, 0x7090}, + {0xbfe7, 0x7092}, + {0xbfe8, 0x7091}, + {0xbfe9, 0x70a1}, + {0xbfea, 0x70ae}, + {0xbfeb, 0x70a4}, + {0xbfec, 0x70a2}, + {0xbfed, 0x70c2}, + {0xbfee, 0x70cd}, + {0xbfef, 0x70d8}, + {0xbff0, 0x70e6}, + {0xbff1, 0x70ee}, + {0xbff2, 0x710a}, + {0xbff3, 0x7106}, + {0xbff4, 0x710e}, + {0xbff5, 0x7102}, + {0xbff6, 0x7101}, + {0xbff7, 0x7129}, + {0xbff8, 0x712e}, + {0xbff9, 0x712c}, + {0xbffa, 0x7131}, + {0xbffb, 0x714d}, + {0xbffc, 0x713e}, + {0xbffd, 0x7155}, + {0xbffe, 0x7170}, + {0xc040, 0x911c}, + {0xc041, 0x44bd}, + {0xc042, 0x92a0}, + {0xc043, 0xacb6}, + {0xc044, 0x632a}, + {0xc045, 0x610e}, + {0xc046, 0xc71d}, + {0xc047, 0xa6a6}, + {0xc048, 0x8cae}, + {0xc049, 0xbc02}, + {0xc04a, 0x4bee}, + {0xc04b, 0x9636}, + {0xc04c, 0x6331}, + {0xc04d, 0x65ed}, + {0xc04e, 0x93be}, + {0xc04f, 0x676a}, + {0xc050, 0x6820}, + {0xc051, 0x6175}, + {0xc052, 0x8cde}, + {0xc053, 0x4a84}, + {0xc054, 0x6a18}, + {0xc055, 0x68f6}, + {0xc056, 0x3fd8}, + {0xc057, 0x447c}, + {0xc058, 0xb566}, + {0xc059, 0x84f2}, + {0xc05a, 0x9b34}, + {0xc05b, 0xb568}, + {0xc05c, 0x93fd}, + {0xc05d, 0x9240}, + {0xc05e, 0x65f4}, + {0xc05f, 0x40fd}, + {0xc060, 0x8c22}, + {0xc061, 0x72ea}, + {0xc062, 0x89a0}, + {0xc063, 0xaeb1}, + {0xc064, 0x8aa2}, + {0xc065, 0x872d}, + {0xc066, 0xb271}, + {0xc067, 0x81a8}, + {0xc068, 0x7481}, + {0xc069, 0xaaf0}, + {0xc06a, 0xc724}, + {0xc06b, 0x7125}, + {0xc06c, 0xb809}, + {0xc06d, 0xad8d}, + {0xc06e, 0x741e}, + {0xc06f, 0xa84c}, + {0xc070, 0x448a}, + {0xc071, 0x68fc}, + {0xc072, 0x7a86}, + {0xc073, 0x448d}, + {0xc074, 0xb6dd}, + {0xc075, 0x429c}, + {0xc076, 0x90fe}, + {0xc077, 0xa856}, + {0xc078, 0xc738}, + {0xc079, 0xc728}, + {0xc07a, 0x7c24}, + {0xc07b, 0xa721}, + {0xc07c, 0x7328}, + {0xc07d, 0x742d}, + {0xc07e, 0x76ec}, + {0xc080, 0x5f2a}, + {0xc081, 0x9159}, + {0xc082, 0xc424}, + {0xc083, 0xc07e}, + {0xc084, 0x4f49}, + {0xc085, 0xa744}, + {0xc086, 0xb699}, + {0xc087, 0x9d95}, + {0xc088, 0xbc38}, + {0xc089, 0xa91a}, + {0xc08a, 0x4b12}, + {0xc08b, 0xab08}, + {0xc08c, 0x55b8}, + {0xc08d, 0x55b9}, + {0xc08e, 0x89d5}, + {0xc08f, 0x4174}, + {0xc090, 0x88d5}, + {0xc091, 0xa9ba}, + {0xc092, 0xbf71}, + {0xc093, 0x581a}, + {0xc094, 0xb6b9}, + {0xc095, 0x5b4d}, + {0xc096, 0xc766}, + {0xc097, 0x9ca2}, + {0xc098, 0x4324}, + {0xc099, 0x8b3d}, + {0xc09a, 0xa4a1}, + {0xc09b, 0xb6d2}, + {0xc09c, 0x7420}, + {0xc09d, 0x9cae}, + {0xc09e, 0x7a88}, + {0xc09f, 0x996c}, + {0xc0a0, 0x57f2}, + {0xc0a1, 0x718d}, + {0xc0a2, 0x7189}, + {0xc0a3, 0x718a}, + {0xc0a4, 0x71b2}, + {0xc0a5, 0x71b4}, + {0xc0a6, 0x71e8}, + {0xc0a7, 0x71fa}, + {0xc0a8, 0x7202}, + {0xc0a9, 0x7200}, + {0xc0aa, 0x7214}, + {0xc0ab, 0x720d}, + {0xc0ac, 0x722c}, + {0xc0ad, 0x722d}, + {0xc0ae, 0x723c}, + {0xc0af, 0x724e}, + {0xc0b0, 0x7248}, + {0xc0b1, 0x7252}, + {0xc0b2, 0x7230}, + {0xc0b3, 0x7276}, + {0xc0b4, 0x726c}, + {0xc0b5, 0x729e}, + {0xc0b6, 0x72c9}, + {0xc0b7, 0x72c2}, + {0xc0b8, 0x72c0}, + {0xc0b9, 0x72be}, + {0xc0ba, 0x72d4}, + {0xc0bb, 0x72c6}, + {0xc0bc, 0x72b9}, + {0xc0bd, 0x72cd}, + {0xc0be, 0x72ca}, + {0xc0bf, 0x7309}, + {0xc0c0, 0x7305}, + {0xc0c1, 0x7314}, + {0xc0c2, 0x730a}, + {0xc0c3, 0x7329}, + {0xc0c4, 0x732c}, + {0xc0c5, 0x7350}, + {0xc0c6, 0x7354}, + {0xc0c7, 0x7348}, + {0xc0c8, 0x734d}, + {0xc0c9, 0x7340}, + {0xc0ca, 0x736e}, + {0xc0cb, 0x7382}, + {0xc0cc, 0x7389}, + {0xc0cd, 0x738d}, + {0xc0ce, 0x7390}, + {0xc0cf, 0x73b9}, + {0xc0d0, 0x73ba}, + {0xc0d1, 0x73be}, + {0xc0d2, 0x73dd}, + {0xc0d3, 0x73d9}, + {0xc0d4, 0x73d8}, + {0xc0d5, 0x73f9}, + {0xc0d6, 0x73ea}, + {0xc0d7, 0x7404}, + {0xc0d8, 0x7418}, + {0xc0d9, 0x7442}, + {0xc0da, 0x743e}, + {0xc0db, 0x746e}, + {0xc0dc, 0x7445}, + {0xc0dd, 0x7435}, + {0xc0de, 0x7476}, + {0xc0df, 0x7460}, + {0xc0e0, 0x7468}, + {0xc0e1, 0x7462}, + {0xc0e2, 0x7489}, + {0xc0e3, 0x748a}, + {0xc0e4, 0x7494}, + {0xc0e5, 0x749e}, + {0xc0e6, 0x74ad}, + {0xc0e7, 0x74b0}, + {0xc0e8, 0x74e9}, + {0xc0e9, 0x74ec}, + {0xc0ea, 0x74a4}, + {0xc0eb, 0x74a5}, + {0xc0ec, 0x74c2}, + {0xc0ed, 0x7538}, + {0xc0ee, 0x7528}, + {0xc0ef, 0x7529}, + {0xc0f0, 0x7544}, + {0xc0f1, 0x7526}, + {0xc0f2, 0x74a8}, + {0xc0f3, 0x757e}, + {0xc0f4, 0x7558}, + {0xc0f5, 0x7588}, + {0xc0f6, 0x755a}, + {0xc0f7, 0x7554}, + {0xc0f8, 0x755d}, + {0xc0f9, 0x7591}, + {0xc0fa, 0x7552}, + {0xc0fb, 0x755c}, + {0xc0fc, 0x75a8}, + {0xc0fd, 0x7565}, + {0xc0fe, 0x7575}, + {0xc140, 0x90b1}, + {0xc141, 0x9582}, + {0xc142, 0x5a1e}, + {0xc143, 0xc409}, + {0xc144, 0x6c2c}, + {0xc145, 0x7ece}, + {0xc146, 0x8098}, + {0xc147, 0x5ae2}, + {0xc148, 0x9e12}, + {0xc149, 0x6d70}, + {0xc14a, 0x5665}, + {0xc14b, 0x95a6}, + {0xc14c, 0x5ae5}, + {0xc14d, 0xc579}, + {0xc14e, 0xba24}, + {0xc14f, 0x3be4}, + {0xc150, 0x5354}, + {0xc151, 0x993e}, + {0xc152, 0x7cda}, + {0xc153, 0x7969}, + {0xc154, 0x3cdc}, + {0xc155, 0x5356}, + {0xc156, 0x4578}, + {0xc157, 0xa3e2}, + {0xc158, 0x3fac}, + {0xc159, 0x65d8}, + {0xc15a, 0x47c6}, + {0xc15b, 0x796e}, + {0xc15c, 0x6d80}, + {0xc15d, 0x7fe4}, + {0xc15e, 0xbf8c}, + {0xc15f, 0x7bcc}, + {0xc160, 0x87c6}, + {0xc161, 0x6491}, + {0xc162, 0x6499}, + {0xc163, 0x7b6a}, + {0xc164, 0x7f80}, + {0xc165, 0x4bd0}, + {0xc166, 0xb14c}, + {0xc167, 0xb869}, + {0xc168, 0xb866}, + {0xc169, 0x54e4}, + {0xc16a, 0x3c9e}, + {0xc16b, 0xb19e}, + {0xc16c, 0x5a58}, + {0xc16d, 0x8c64}, + {0xc16e, 0xbcf0}, + {0xc16f, 0x5831}, + {0xc170, 0xb4ad}, + {0xc171, 0xc44c}, + {0xc172, 0xb39e}, + {0xc173, 0x91b4}, + {0xc174, 0x90a8}, + {0xc175, 0x8ca8}, + {0xc176, 0x615c}, + {0xc177, 0xa922}, + {0xc178, 0xb4ee}, + {0xc179, 0xb18a}, + {0xc17a, 0x8c7c}, + {0xc17b, 0x8bf8}, + {0xc17c, 0xb949}, + {0xc17d, 0x5932}, + {0xc17e, 0xbb19}, + {0xc180, 0x53b6}, + {0xc181, 0x9466}, + {0xc182, 0x54fe}, + {0xc183, 0x9468}, + {0xc184, 0x76be}, + {0xc185, 0x84fd}, + {0xc186, 0x8cb4}, + {0xc187, 0x59b1}, + {0xc188, 0x47b8}, + {0xc189, 0x54c5}, + {0xc18a, 0x5f45}, + {0xc18b, 0x4774}, + {0xc18c, 0x4b35}, + {0xc18d, 0x5658}, + {0xc18e, 0xa7b5}, + {0xc18f, 0x86d4}, + {0xc190, 0x7231}, + {0xc191, 0x876c}, + {0xc192, 0x7975}, + {0xc193, 0xc235}, + {0xc194, 0x8f8d}, + {0xc195, 0xa6cd}, + {0xc196, 0xaac1}, + {0xc197, 0xa641}, + {0xc198, 0x6f8a}, + {0xc199, 0x62de}, + {0xc19a, 0x6269}, + {0xc19b, 0xa9fe}, + {0xc19c, 0x9410}, + {0xc19d, 0x5f62}, + {0xc19e, 0x6806}, + {0xc19f, 0x4d65}, + {0xc1a0, 0x9414}, + {0xc1a1, 0x75ad}, + {0xc1a2, 0x7556}, + {0xc1a3, 0x75a1}, + {0xc1a4, 0x7561}, + {0xc1a5, 0x756e}, + {0xc1a6, 0x7551}, + {0xc1a7, 0x74d6}, + {0xc1a8, 0x7530}, + {0xc1a9, 0x7644}, + {0xc1aa, 0x7656}, + {0xc1ab, 0x7650}, + {0xc1ac, 0x7649}, + {0xc1ad, 0x7696}, + {0xc1ae, 0x765e}, + {0xc1af, 0x764d}, + {0xc1b0, 0x764e}, + {0xc1b1, 0x764c}, + {0xc1b2, 0x76a8}, + {0xc1b3, 0x76aa}, + {0xc1b4, 0x76d4}, + {0xc1b5, 0x76c6}, + {0xc1b6, 0x76c5}, + {0xc1b7, 0x76c2}, + {0xc1b8, 0x76f9}, + {0xc1b9, 0x76f1}, + {0xc1ba, 0x76f2}, + {0xc1bb, 0x76fa}, + {0xc1bc, 0x76ee}, + {0xc1bd, 0x7709}, + {0xc1be, 0x7721}, + {0xc1bf, 0x7729}, + {0xc1c0, 0x7726}, + {0xc1c1, 0x771d}, + {0xc1c2, 0x7720}, + {0xc1c3, 0x7751}, + {0xc1c4, 0x773a}, + {0xc1c5, 0x773d}, + {0xc1c6, 0x7735}, + {0xc1c7, 0x7759}, + {0xc1c8, 0x773e}, + {0xc1c9, 0x7734}, + {0xc1ca, 0x73cd}, + {0xc1cb, 0x7786}, + {0xc1cc, 0x7792}, + {0xc1cd, 0x7762}, + {0xc1ce, 0x7741}, + {0xc1cf, 0x778d}, + {0xc1d0, 0x779c}, + {0xc1d1, 0x77c0}, + {0xc1d2, 0x77ae}, + {0xc1d3, 0x779d}, + {0xc1d4, 0x77b9}, + {0xc1d5, 0x77f1}, + {0xc1d6, 0x77e6}, + {0xc1d7, 0x7810}, + {0xc1d8, 0x780a}, + {0xc1d9, 0x77e8}, + {0xc1da, 0x77e5}, + {0xc1db, 0x781d}, + {0xc1dc, 0x77ee}, + {0xc1dd, 0x782c}, + {0xc1de, 0x7844}, + {0xc1df, 0x783e}, + {0xc1e0, 0x785d}, + {0xc1e1, 0x7878}, + {0xc1e2, 0x789d}, + {0xc1e3, 0x78b0}, + {0xc1e4, 0x78b1}, + {0xc1e5, 0x7882}, + {0xc1e6, 0x7860}, + {0xc1e7, 0x7898}, + {0xc1e8, 0x787c}, + {0xc1e9, 0x7862}, + {0xc1ea, 0x7884}, + {0xc1eb, 0x786a}, + {0xc1ec, 0x78fc}, + {0xc1ed, 0x7901}, + {0xc1ee, 0x7900}, + {0xc1ef, 0x7905}, + {0xc1f0, 0x7915}, + {0xc1f1, 0x7925}, + {0xc1f2, 0x7918}, + {0xc1f3, 0x7922}, + {0xc1f4, 0x7911}, + {0xc1f5, 0x7908}, + {0xc1f6, 0x792c}, + {0xc1f7, 0x7910}, + {0xc1f8, 0x795d}, + {0xc1f9, 0x7970}, + {0xc1fa, 0x798a}, + {0xc1fb, 0x799d}, + {0xc1fc, 0x798d}, + {0xc1fd, 0x799c}, + {0xc1fe, 0x79ad}, + {0xc240, 0x4791}, + {0xc241, 0xadba}, + {0xc242, 0x4799}, + {0xc243, 0xc670}, + {0xc244, 0xa26e}, + {0xc245, 0x6282}, + {0xc246, 0x5faa}, + {0xc247, 0x5eb6}, + {0xc248, 0x8846}, + {0xc249, 0x7684}, + {0xc24a, 0x8f9e}, + {0xc24b, 0x3c41}, + {0xc24c, 0x7814}, + {0xc24d, 0x86d5}, + {0xc24e, 0x8d3a}, + {0xc24f, 0x3c44}, + {0xc250, 0x6332}, + {0xc251, 0xadc9}, + {0xc252, 0x4d72}, + {0xc253, 0xffff8002}, + {0xc254, 0x59de}, + {0xc255, 0x59e4}, + {0xc256, 0x59e0}, + {0xc257, 0x4f51}, + {0xc258, 0x9276}, + {0xc259, 0x52e9}, + {0xc25a, 0x50ea}, + {0xc25b, 0x9f61}, + {0xc25c, 0x876d}, + {0xc25d, 0x471d}, + {0xc25e, 0x8fd9}, + {0xc25f, 0x6621}, + {0xc260, 0x6ce2}, + {0xc261, 0x486d}, + {0xc262, 0x7bad}, + {0xc263, 0x64f0}, + {0xc264, 0xbd7e}, + {0xc265, 0x7a1d}, + {0xc266, 0x647a}, + {0xc267, 0x73e4}, + {0xc268, 0x63ec}, + {0xc269, 0xb80a}, + {0xc26a, 0x6125}, + {0xc26b, 0xb448}, + {0xc26c, 0x8daa}, + {0xc26d, 0xbbea}, + {0xc26e, 0x4c5d}, + {0xc26f, 0x5f46}, + {0xc270, 0xc17a}, + {0xc271, 0xffff8041}, + {0xc272, 0xc061}, + {0xc273, 0x45b2}, + {0xc274, 0xc0d2}, + {0xc275, 0xb86d}, + {0xc276, 0xa1de}, + {0xc277, 0x9ef8}, + {0xc278, 0x52f4}, + {0xc279, 0xaf8e}, + {0xc27a, 0x9f3d}, + {0xc27b, 0xad60}, + {0xc27c, 0x5e06}, + {0xc27d, 0x9655}, + {0xc27e, 0x77c5}, + {0xc280, 0x6af1}, + {0xc281, 0x3f15}, + {0xc282, 0x4e36}, + {0xc283, 0x5c90}, + {0xc284, 0xa440}, + {0xc285, 0xad7c}, + {0xc286, 0x88d6}, + {0xc287, 0x4a6d}, + {0xc288, 0x4fc9}, + {0xc289, 0xffff8063}, + {0xc28a, 0x9f8e}, + {0xc28b, 0x6cb6}, + {0xc28c, 0x4a80}, + {0xc28d, 0x7134}, + {0xc28e, 0x767a}, + {0xc28f, 0x767c}, + {0xc290, 0xa499}, + {0xc291, 0x719d}, + {0xc292, 0x7685}, + {0xc293, 0x768c}, + {0xc294, 0x4a86}, + {0xc295, 0x9628}, + {0xc296, 0x99e2}, + {0xc297, 0x9f6e}, + {0xc298, 0x71a9}, + {0xc299, 0x8455}, + {0xc29a, 0xc19c}, + {0xc29b, 0x4c81}, + {0xc29c, 0x849e}, + {0xc29d, 0x8d48}, + {0xc29e, 0x67ee}, + {0xc29f, 0x9f70}, + {0xc2a0, 0x9f72}, + {0xc2a1, 0x799e}, + {0xc2a2, 0x79e0}, + {0xc2a3, 0x79e2}, + {0xc2a4, 0x79de}, + {0xc2a5, 0x7a0a}, + {0xc2a6, 0x79fe}, + {0xc2a7, 0x7a2e}, + {0xc2a8, 0x7a39}, + {0xc2a9, 0x7a41}, + {0xc2aa, 0x7a3e}, + {0xc2ab, 0x7a54}, + {0xc2ac, 0x7a51}, + {0xc2ad, 0x7a68}, + {0xc2ae, 0x7a52}, + {0xc2af, 0x7a59}, + {0xc2b0, 0x7a9c}, + {0xc2b1, 0x7a96}, + {0xc2b2, 0x7a98}, + {0xc2b3, 0x7aa0}, + {0xc2b4, 0x7b42}, + {0xc2b5, 0x7af4}, + {0xc2b6, 0x7a49}, + {0xc2b7, 0x7af8}, + {0xc2b8, 0x7acd}, + {0xc2b9, 0x7ade}, + {0xc2ba, 0x7b20}, + {0xc2bb, 0x7ae9}, + {0xc2bc, 0x7ac8}, + {0xc2bd, 0x7ac2}, + {0xc2be, 0x7b0e}, + {0xc2bf, 0x7c26}, + {0xc2c0, 0x7c3a}, + {0xc2c1, 0x7c4c}, + {0xc2c2, 0x7c3d}, + {0xc2c3, 0x7c44}, + {0xc2c4, 0x7c59}, + {0xc2c5, 0x7c4d}, + {0xc2c6, 0x7c50}, + {0xc2c7, 0x7c68}, + {0xc2c8, 0x7c6d}, + {0xc2c9, 0x7c65}, + {0xc2ca, 0x7c69}, + {0xc2cb, 0x7af0}, + {0xc2cc, 0x7c6a}, + {0xc2cd, 0x7b50}, + {0xc2ce, 0x7b51}, + {0xc2cf, 0x7b4e}, + {0xc2d0, 0x7b56}, + {0xc2d1, 0x7b7a}, + {0xc2d2, 0x7b7d}, + {0xc2d3, 0x7c84}, + {0xc2d4, 0x7c88}, + {0xc2d5, 0x7b81}, + {0xc2d6, 0x7b8c}, + {0xc2d7, 0x7b85}, + {0xc2d8, 0x7b84}, + {0xc2d9, 0x7b88}, + {0xc2da, 0x7b89}, + {0xc2db, 0x7bae}, + {0xc2dc, 0x7bbe}, + {0xc2dd, 0x7bc9}, + {0xc2de, 0x7bb8}, + {0xc2df, 0x7bc0}, + {0xc2e0, 0x7bc4}, + {0xc2e1, 0x7bc5}, + {0xc2e2, 0x7bc6}, + {0xc2e3, 0x7be9}, + {0xc2e4, 0x7c0e}, + {0xc2e5, 0x7bfe}, + {0xc2e6, 0x7c02}, + {0xc2e7, 0x7c00}, + {0xc2e8, 0x7c9d}, + {0xc2e9, 0x7ca2}, + {0xc2ea, 0x7cb2}, + {0xc2eb, 0x7cb4}, + {0xc2ec, 0x7cb5}, + {0xc2ed, 0x7cb0}, + {0xc2ee, 0x7ccc}, + {0xc2ef, 0x7ce4}, + {0xc2f0, 0x7ce1}, + {0xc2f1, 0x7ce5}, + {0xc2f2, 0x7cf0}, + {0xc2f3, 0x7cfd}, + {0xc2f4, 0x7cfe}, + {0xc2f5, 0x7cf9}, + {0xc2f6, 0x7d00}, + {0xc2f7, 0x7d26}, + {0xc2f8, 0x7d1e}, + {0xc2f9, 0x7d19}, + {0xc2fa, 0x7d3c}, + {0xc2fb, 0x7d5a}, + {0xc2fc, 0x7d46}, + {0xc2fd, 0x7d54}, + {0xc2fe, 0x7d55}, + {0xc340, 0x79ce}, + {0xc341, 0xbf6a}, + {0xc342, 0x9990}, + {0xc343, 0x9a80}, + {0xc344, 0xbf81}, + {0xc345, 0xb42a}, + {0xc346, 0x8ed8}, + {0xc347, 0x6fc9}, + {0xc348, 0x4358}, + {0xc349, 0x588c}, + {0xc34a, 0x4de6}, + {0xc34b, 0x6190}, + {0xc34c, 0x4740}, + {0xc34d, 0x915a}, + {0xc34e, 0x924e}, + {0xc34f, 0xbb38}, + {0xc350, 0x43b9}, + {0xc351, 0x5d0c}, + {0xc352, 0x54e2}, + {0xc353, 0x868d}, + {0xc354, 0x8629}, + {0xc355, 0xb81d}, + {0xc356, 0x90b5}, + {0xc357, 0xa45a}, + {0xc358, 0x8a21}, + {0xc359, 0x8796}, + {0xc35a, 0xa5f0}, + {0xc35b, 0xa5f1}, + {0xc35c, 0x6fcc}, + {0xc35d, 0x4f4a}, + {0xc35e, 0x3f3d}, + {0xc35f, 0x3cb8}, + {0xc360, 0x41a1}, + {0xc361, 0x8f82}, + {0xc362, 0x9ea2}, + {0xc363, 0xc618}, + {0xc364, 0x5468}, + {0xc365, 0xc13d}, + {0xc366, 0x839d}, + {0xc367, 0x86e0}, + {0xc368, 0xc645}, + {0xc369, 0x55d2}, + {0xc36a, 0xa869}, + {0xc36b, 0x81e2}, + {0xc36c, 0x8f4c}, + {0xc36d, 0x6f5c}, + {0xc36e, 0x4749}, + {0xc36f, 0xb125}, + {0xc370, 0x862c}, + {0xc371, 0x46d8}, + {0xc372, 0xac56}, + {0xc373, 0x52ed}, + {0xc374, 0x5eed}, + {0xc375, 0xc646}, + {0xc376, 0x5b9e}, + {0xc377, 0x4690}, + {0xc378, 0x9f24}, + {0xc379, 0x4b36}, + {0xc37a, 0x7e2d}, + {0xc37b, 0xaab1}, + {0xc37c, 0xaab2}, + {0xc37d, 0x7d01}, + {0xc37e, 0xaab4}, + {0xc380, 0x8479}, + {0xc381, 0xa474}, + {0xc382, 0xa460}, + {0xc383, 0xac78}, + {0xc384, 0x6b44}, + {0xc385, 0xb86e}, + {0xc386, 0x5ee2}, + {0xc387, 0x77bc}, + {0xc388, 0x9446}, + {0xc389, 0x9fa1}, + {0xc38a, 0x7e34}, + {0xc38b, 0x499c}, + {0xc38c, 0x95f5}, + {0xc38d, 0x6650}, + {0xc38e, 0x9dc0}, + {0xc38f, 0x6d32}, + {0xc390, 0x64d2}, + {0xc391, 0xac74}, + {0xc392, 0xabc4}, + {0xc393, 0xa14d}, + {0xc394, 0x4698}, + {0xc395, 0xa0f4}, + {0xc396, 0x5061}, + {0xc397, 0x82fc}, + {0xc398, 0x87d5}, + {0xc399, 0x5a61}, + {0xc39a, 0x75a4}, + {0xc39b, 0xbf30}, + {0xc39c, 0x9b08}, + {0xc39d, 0x694a}, + {0xc39e, 0x7712}, + {0xc39f, 0x98c1}, + {0xc3a0, 0x4066}, + {0xc3a1, 0x7d4d}, + {0xc3a2, 0x7d76}, + {0xc3a3, 0x7d81}, + {0xc3a4, 0x7d7c}, + {0xc3a5, 0x7ec5}, + {0xc3a6, 0x7d74}, + {0xc3a7, 0x7d9c}, + {0xc3a8, 0x7dac}, + {0xc3a9, 0x7db4}, + {0xc3aa, 0x7dc0}, + {0xc3ab, 0x7dae}, + {0xc3ac, 0x7db0}, + {0xc3ad, 0x7dd9}, + {0xc3ae, 0x7dcd}, + {0xc3af, 0x7de6}, + {0xc3b0, 0x7dea}, + {0xc3b1, 0x7e00}, + {0xc3b2, 0x7e10}, + {0xc3b3, 0x7ded}, + {0xc3b4, 0x7e1d}, + {0xc3b5, 0x7e26}, + {0xc3b6, 0x7e25}, + {0xc3b7, 0x7e31}, + {0xc3b8, 0x7e4e}, + {0xc3b9, 0x7e54}, + {0xc3ba, 0x7e46}, + {0xc3bb, 0x7e22}, + {0xc3bc, 0x7e2a}, + {0xc3bd, 0x7e39}, + {0xc3be, 0x7e71}, + {0xc3bf, 0x7e62}, + {0xc3c0, 0x7e65}, + {0xc3c1, 0x7e82}, + {0xc3c2, 0x7e89}, + {0xc3c3, 0x7e7c}, + {0xc3c4, 0x7e88}, + {0xc3c5, 0x7e9e}, + {0xc3c6, 0x7eb2}, + {0xc3c7, 0x7ec0}, + {0xc3c8, 0x7ed1}, + {0xc3c9, 0x7f1e}, + {0xc3ca, 0x7ef9}, + {0xc3cb, 0x7ed9}, + {0xc3cc, 0x7f20}, + {0xc3cd, 0x7f1a}, + {0xc3ce, 0x7f2d}, + {0xc3cf, 0x7f2a}, + {0xc3d0, 0x7f8a}, + {0xc3d1, 0x7f51}, + {0xc3d2, 0x7f5e}, + {0xc3d3, 0x7f56}, + {0xc3d4, 0x7f40}, + {0xc3d5, 0x7f46}, + {0xc3d6, 0x7f3d}, + {0xc3d7, 0x7f7a}, + {0xc3d8, 0x7fae}, + {0xc3d9, 0x7fa9}, + {0xc3da, 0x7fa8}, + {0xc3db, 0x7fcd}, + {0xc3dc, 0x7fb1}, + {0xc3dd, 0x7fba}, + {0xc3de, 0x7fee}, + {0xc3df, 0x7fe9}, + {0xc3e0, 0x7fec}, + {0xc3e1, 0x8018}, + {0xc3e2, 0x800c}, + {0xc3e3, 0x8011}, + {0xc3e4, 0x8015}, + {0xc3e5, 0x801e}, + {0xc3e6, 0x802a}, + {0xc3e7, 0x8036}, + {0xc3e8, 0x803c}, + {0xc3e9, 0x803d}, + {0xc3ea, 0x8050}, + {0xc3eb, 0x8048}, + {0xc3ec, 0x804a}, + {0xc3ed, 0x8055}, + {0xc3ee, 0x8054}, + {0xc3ef, 0x8069}, + {0xc3f0, 0x8062}, + {0xc3f1, 0x8084}, + {0xc3f2, 0x80c2}, + {0xc3f3, 0x80bd}, + {0xc3f4, 0x80ca}, + {0xc3f5, 0x80c9}, + {0xc3f6, 0x80c8}, + {0xc3f7, 0x80e6}, + {0xc3f8, 0x8105}, + {0xc3f9, 0x80e8}, + {0xc3fa, 0x80f2}, + {0xc3fb, 0x80e5}, + {0xc3fc, 0x8114}, + {0xc3fd, 0x8119}, + {0xc3fe, 0x811e}, + {0xc440, 0x7b9d}, + {0xc441, 0x8820}, + {0xc442, 0x5cb6}, + {0xc443, 0x901c}, + {0xc444, 0x4965}, + {0xc445, 0x4cb8}, + {0xc446, 0x8326}, + {0xc447, 0x825d}, + {0xc448, 0x9176}, + {0xc449, 0x95f6}, + {0xc44a, 0x49d9}, + {0xc44b, 0x6c3c}, + {0xc44c, 0x502c}, + {0xc44d, 0x87ae}, + {0xc44e, 0x5c88}, + {0xc44f, 0xa4dd}, + {0xc450, 0x7e4a}, + {0xc451, 0x9285}, + {0xc452, 0x5184}, + {0xc453, 0x4788}, + {0xc454, 0x7bc2}, + {0xc455, 0x85a2}, + {0xc456, 0x4e71}, + {0xc457, 0x3bba}, + {0xc458, 0x8306}, + {0xc459, 0x9894}, + {0xc45a, 0xbc3d}, + {0xc45b, 0xc301}, + {0xc45c, 0x9201}, + {0xc45d, 0xa07c}, + {0xc45e, 0xa37e}, + {0xc45f, 0x68d4}, + {0xc460, 0x662d}, + {0xc461, 0x5101}, + {0xc462, 0x3f7e}, + {0xc463, 0x4516}, + {0xc464, 0x8c1c}, + {0xc465, 0xa1e2}, + {0xc466, 0x97a4}, + {0xc467, 0x9d19}, + {0xc468, 0x9a8e}, + {0xc469, 0xc509}, + {0xc46a, 0xb502}, + {0xc46b, 0x7745}, + {0xc46c, 0x64f1}, + {0xc46d, 0x87b4}, + {0xc46e, 0xaad2}, + {0xc46f, 0x7c5a}, + {0xc470, 0x858a}, + {0xc471, 0x4522}, + {0xc472, 0x7b12}, + {0xc473, 0x5c92}, + {0xc474, 0x8632}, + {0xc475, 0x48ec}, + {0xc476, 0x6838}, + {0xc477, 0x55f5}, + {0xc478, 0xc494}, + {0xc479, 0x7b14}, + {0xc47a, 0x688d}, + {0xc47b, 0xb764}, + {0xc47c, 0x7c31}, + {0xc47d, 0xae64}, + {0xc47e, 0x4391}, + {0xc480, 0x9ff9}, + {0xc481, 0x83b8}, + {0xc482, 0x775d}, + {0xc483, 0x4b50}, + {0xc484, 0x5bbe}, + {0xc485, 0xaa1e}, + {0xc486, 0x9dc8}, + {0xc487, 0x53ad}, + {0xc488, 0xc196}, + {0xc489, 0x6892}, + {0xc48a, 0x6006}, + {0xc48b, 0x4b4d}, + {0xc48c, 0xb30d}, + {0xc48d, 0xa970}, + {0xc48e, 0x9af0}, + {0xc48f, 0x5521}, + {0xc490, 0xc480}, + {0xc491, 0x4c99}, + {0xc492, 0x70ba}, + {0xc493, 0x84ea}, + {0xc494, 0x6dfe}, + {0xc495, 0x48de}, + {0xc496, 0x6d54}, + {0xc497, 0x7256}, + {0xc498, 0x76b8}, + {0xc499, 0xa12a}, + {0xc49a, 0x8a94}, + {0xc49b, 0x4b56}, + {0xc49c, 0x4111}, + {0xc49d, 0xaea6}, + {0xc49e, 0x8311}, + {0xc49f, 0xa4e6}, + {0xc4a0, 0xbd09}, + {0xc4a1, 0x8126}, + {0xc4a2, 0x813a}, + {0xc4a3, 0x8128}, + {0xc4a4, 0x8129}, + {0xc4a5, 0x8131}, + {0xc4a6, 0x812d}, + {0xc4a7, 0x8140}, + {0xc4a8, 0x8146}, + {0xc4a9, 0x814c}, + {0xc4aa, 0x816d}, + {0xc4ab, 0x8186}, + {0xc4ac, 0x8196}, + {0xc4ad, 0x8159}, + {0xc4ae, 0x817c}, + {0xc4af, 0x817a}, + {0xc4b0, 0x815c}, + {0xc4b1, 0x81b9}, + {0xc4b2, 0x81ad}, + {0xc4b3, 0x81cc}, + {0xc4b4, 0x81dc}, + {0xc4b5, 0x81d8}, + {0xc4b6, 0x81d6}, + {0xc4b7, 0x81da}, + {0xc4b8, 0x81d4}, + {0xc4b9, 0x820c}, + {0xc4ba, 0x8218}, + {0xc4bb, 0x820d}, + {0xc4bc, 0x8208}, + {0xc4bd, 0x8216}, + {0xc4be, 0x81ee}, + {0xc4bf, 0x81f2}, + {0xc4c0, 0x8212}, + {0xc4c1, 0x81fa}, + {0xc4c2, 0x821d}, + {0xc4c3, 0x8226}, + {0xc4c4, 0x8230}, + {0xc4c5, 0x8316}, + {0xc4c6, 0x823c}, + {0xc4c7, 0x8232}, + {0xc4c8, 0x8239}, + {0xc4c9, 0x8236}, + {0xc4ca, 0x8269}, + {0xc4cb, 0x8265}, + {0xc4cc, 0x8266}, + {0xc4cd, 0x8278}, + {0xc4ce, 0x8275}, + {0xc4cf, 0x8292}, + {0xc4d0, 0x828c}, + {0xc4d1, 0x8299}, + {0xc4d2, 0x82be}, + {0xc4d3, 0x82d8}, + {0xc4d4, 0x82f9}, + {0xc4d5, 0x82f6}, + {0xc4d6, 0x830a}, + {0xc4d7, 0x830d}, + {0xc4d8, 0x8320}, + {0xc4d9, 0x8324}, + {0xc4da, 0x832e}, + {0xc4db, 0x8336}, + {0xc4dc, 0x8339}, + {0xc4dd, 0x8346}, + {0xc4de, 0x836d}, + {0xc4df, 0x8351}, + {0xc4e0, 0x834d}, + {0xc4e1, 0x8348}, + {0xc4e2, 0x8379}, + {0xc4e3, 0x8378}, + {0xc4e4, 0x83a0}, + {0xc4e5, 0x83ad}, + {0xc4e6, 0x839e}, + {0xc4e7, 0x83aa}, + {0xc4e8, 0xafbc}, + {0xc4e9, 0x83bc}, + {0xc4ea, 0x83bd}, + {0xc4eb, 0x83dc}, + {0xc4ec, 0x83da}, + {0xc4ed, 0x83d1}, + {0xc4ee, 0x83e8}, + {0xc4ef, 0x83ee}, + {0xc4f0, 0x83f2}, + {0xc4f1, 0x83f8}, + {0xc4f2, 0x8410}, + {0xc4f3, 0x8415}, + {0xc4f4, 0x8429}, + {0xc4f5, 0x845d}, + {0xc4f6, 0x842d}, + {0xc4f7, 0x8448}, + {0xc4f8, 0x8449}, + {0xc4f9, 0x8428}, + {0xc4fa, 0x847c}, + {0xc4fb, 0x8488}, + {0xc4fc, 0x8485}, + {0xc4fd, 0x8492}, + {0xc4fe, 0x8481}, + {0xc540, 0xa945}, + {0xc541, 0x4086}, + {0xc542, 0xac41}, + {0xc543, 0x71de}, + {0xc544, 0x725c}, + {0xc545, 0xafc9}, + {0xc546, 0x7a81}, + {0xc547, 0x63f5}, + {0xc548, 0xbc69}, + {0xc549, 0x7bf1}, + {0xc54a, 0x8fb4}, + {0xc54b, 0xbd0a}, + {0xc54c, 0x7b6d}, + {0xc54d, 0x8374}, + {0xc54e, 0xbc6c}, + {0xc54f, 0x8b7d}, + {0xc550, 0xa4cd}, + {0xc551, 0x5b8a}, + {0xc552, 0x7811}, + {0xc553, 0x5b84}, + {0xc554, 0x68b0}, + {0xc555, 0x6595}, + {0xc556, 0x5839}, + {0xc557, 0x4848}, + {0xc558, 0x7ff5}, + {0xc559, 0x844d}, + {0xc55a, 0x58c4}, + {0xc55b, 0x67ac}, + {0xc55c, 0x4f64}, + {0xc55d, 0xc158}, + {0xc55e, 0xac7a}, + {0xc55f, 0x9c30}, + {0xc560, 0xa8f8}, + {0xc561, 0x43bd}, + {0xc562, 0x9071}, + {0xc563, 0xb9ac}, + {0xc564, 0xabee}, + {0xc565, 0x6cb8}, + {0xc566, 0x6c04}, + {0xc567, 0xabd2}, + {0xc568, 0x954a}, + {0xc569, 0x6bd1}, + {0xc56a, 0x9c68}, + {0xc56b, 0x9764}, + {0xc56c, 0x9cdc}, + {0xc56d, 0x89be}, + {0xc56e, 0x89c0}, + {0xc56f, 0x5b26}, + {0xc570, 0x6110}, + {0xc571, 0x9eed}, + {0xc572, 0xa7c8}, + {0xc573, 0x4d31}, + {0xc574, 0x5396}, + {0xc575, 0x85b5}, + {0xc576, 0x9c50}, + {0xc577, 0x5399}, + {0xc578, 0x4904}, + {0xc579, 0x7a61}, + {0xc57a, 0x789c}, + {0xc57b, 0xa7b6}, + {0xc57c, 0x8e7c}, + {0xc57d, 0x863e}, + {0xc57e, 0x7082}, + {0xc580, 0x566d}, + {0xc581, 0xbd3a}, + {0xc582, 0x5589}, + {0xc583, 0x74c8}, + {0xc584, 0xb938}, + {0xc585, 0x735d}, + {0xc586, 0xffff8248}, + {0xc587, 0x41d9}, + {0xc588, 0x83ed}, + {0xc589, 0x6c46}, + {0xc58a, 0x6208}, + {0xc58b, 0xc671}, + {0xc58c, 0x4046}, + {0xc58d, 0x821a}, + {0xc58e, 0x4f74}, + {0xc58f, 0x5041}, + {0xc590, 0x3da0}, + {0xc591, 0x43d0}, + {0xc592, 0xb542}, + {0xc593, 0x4321}, + {0xc594, 0x7a1e}, + {0xc595, 0x4c44}, + {0xc596, 0xae65}, + {0xc597, 0xb269}, + {0xc598, 0x4da6}, + {0xc599, 0x4cf0}, + {0xc59a, 0x8ca0}, + {0xc59b, 0x7ab8}, + {0xc59c, 0xb416}, + {0xc59d, 0x6518}, + {0xc59e, 0x67f0}, + {0xc59f, 0x63ed}, + {0xc5a0, 0x8aa4}, + {0xc5a1, 0x8484}, + {0xc5a2, 0x84aa}, + {0xc5a3, 0x84b8}, + {0xc5a4, 0x84c0}, + {0xc5a5, 0x84cc}, + {0xc5a6, 0x84c4}, + {0xc5a7, 0x84da}, + {0xc5a8, 0x84d8}, + {0xc5a9, 0x84d4}, + {0xc5aa, 0x84f5}, + {0xc5ab, 0x8511}, + {0xc5ac, 0x851a}, + {0xc5ad, 0x8520}, + {0xc5ae, 0x855a}, + {0xc5af, 0x8528}, + {0xc5b0, 0x856e}, + {0xc5b1, 0x856d}, + {0xc5b2, 0x8531}, + {0xc5b3, 0x8554}, + {0xc5b4, 0x8559}, + {0xc5b5, 0x853e}, + {0xc5b6, 0x8578}, + {0xc5b7, 0x857e}, + {0xc5b8, 0x8582}, + {0xc5b9, 0x8580}, + {0xc5ba, 0x85a9}, + {0xc5bb, 0x859e}, + {0xc5bc, 0x85a0}, + {0xc5bd, 0x85ac}, + {0xc5be, 0x85b6}, + {0xc5bf, 0x85b4}, + {0xc5c0, 0x85bd}, + {0xc5c1, 0x85c6}, + {0xc5c2, 0x85c8}, + {0xc5c3, 0x85c1}, + {0xc5c4, 0x85ca}, + {0xc5c5, 0x85ce}, + {0xc5c6, 0x85d2}, + {0xc5c7, 0x85cd}, + {0xc5c8, 0x85e0}, + {0xc5c9, 0x85dc}, + {0xc5ca, 0x85f0}, + {0xc5cb, 0x85ec}, + {0xc5cc, 0x85f4}, + {0xc5cd, 0x85fe}, + {0xc5ce, 0x8618}, + {0xc5cf, 0x8619}, + {0xc5d0, 0x8610}, + {0xc5d1, 0x8615}, + {0xc5d2, 0x8626}, + {0xc5d3, 0x863a}, + {0xc5d4, 0x863d}, + {0xc5d5, 0x8651}, + {0xc5d6, 0x8658}, + {0xc5d7, 0x8659}, + {0xc5d8, 0x8664}, + {0xc5d9, 0x8661}, + {0xc5da, 0x8669}, + {0xc5db, 0x866d}, + {0xc5dc, 0x8678}, + {0xc5dd, 0x867a}, + {0xc5de, 0x868a}, + {0xc5df, 0x8690}, + {0xc5e0, 0x8699}, + {0xc5e1, 0x86a1}, + {0xc5e2, 0x869c}, + {0xc5e3, 0x8695}, + {0xc5e4, 0x86b9}, + {0xc5e5, 0x86ae}, + {0xc5e6, 0x86ad}, + {0xc5e7, 0x86c8}, + {0xc5e8, 0x86ce}, + {0xc5e9, 0x86e4}, + {0xc5ea, 0x86dc}, + {0xc5eb, 0x86e8}, + {0xc5ec, 0x871a}, + {0xc5ed, 0x8702}, + {0xc5ee, 0x8711}, + {0xc5ef, 0x8704}, + {0xc5f0, 0x870e}, + {0xc5f1, 0x871e}, + {0xc5f2, 0x8720}, + {0xc5f3, 0x86f8}, + {0xc5f4, 0x8712}, + {0xc5f5, 0x8735}, + {0xc5f6, 0x873e}, + {0xc5f7, 0x8756}, + {0xc5f8, 0x8762}, + {0xc5f9, 0x878c}, + {0xc5fa, 0x874e}, + {0xc5fb, 0x8759}, + {0xc5fc, 0x8779}, + {0xc5fd, 0x87ac}, + {0xc5fe, 0x8798}, + {0xc640, 0x7aba}, + {0xc641, 0x7a89}, + {0xc642, 0x4491}, + {0xc643, 0x98aa}, + {0xc644, 0x66f0}, + {0xc645, 0x88a8}, + {0xc646, 0xb0f6}, + {0xc647, 0xb10c}, + {0xc648, 0x4351}, + {0xc649, 0x73f1}, + {0xc64a, 0x9f5d}, + {0xc64b, 0x9efa}, + {0xc64c, 0x6864}, + {0xc64d, 0x86f6}, + {0xc64e, 0xb439}, + {0xc64f, 0x43b6}, + {0xc650, 0x7fe8}, + {0xc651, 0x5791}, + {0xc652, 0xb9ca}, + {0xc653, 0x6078}, + {0xc654, 0xc634}, + {0xc655, 0x62c6}, + {0xc656, 0x9ac8}, + {0xc657, 0xc1ea}, + {0xc658, 0xa11a}, + {0xc659, 0xa344}, + {0xc65a, 0x8afa}, + {0xc65b, 0xa42c}, + {0xc65c, 0x912c}, + {0xc65d, 0x5612}, + {0xc65e, 0xc425}, + {0xc65f, 0x60b4}, + {0xc660, 0x6d99}, + {0xc661, 0x6560}, + {0xc662, 0x3c52}, + {0xc663, 0x4862}, + {0xc664, 0x7de4}, + {0xc665, 0x9189}, + {0xc666, 0x5da4}, + {0xc667, 0xb5ed}, + {0xc668, 0xb860}, + {0xc669, 0xb449}, + {0xc66a, 0x8d41}, + {0xc66b, 0x87d1}, + {0xc66c, 0x4e49}, + {0xc66d, 0x4dea}, + {0xc66e, 0x756d}, + {0xc66f, 0xb7e6}, + {0xc670, 0x3e3a}, + {0xc671, 0xb3ee}, + {0xc672, 0xc430}, + {0xc673, 0x837d}, + {0xc674, 0x4199}, + {0xc675, 0x412e}, + {0xc676, 0xac96}, + {0xc677, 0xb228}, + {0xc678, 0xa80e}, + {0xc679, 0x5f32}, + {0xc67a, 0xbe10}, + {0xc67b, 0x4fde}, + {0xc67c, 0x4f40}, + {0xc67d, 0x8420}, + {0xc67e, 0x5fe1}, + {0xc680, 0x7e28}, + {0xc681, 0x9610}, + {0xc682, 0x5ab8}, + {0xc683, 0x3f34}, + {0xc684, 0xa3b6}, + {0xc685, 0x5626}, + {0xc686, 0xc5ad}, + {0xc687, 0xc1c5}, + {0xc688, 0x6566}, + {0xc689, 0x4a5a}, + {0xc68a, 0xffff8312}, + {0xc68b, 0xae48}, + {0xc68c, 0x58b5}, + {0xc68d, 0x757d}, + {0xc68e, 0x91a0}, + {0xc68f, 0x4424}, + {0xc690, 0x45f0}, + {0xc691, 0xb9dc}, + {0xc692, 0x5dbe}, + {0xc693, 0xc635}, + {0xc694, 0x77a6}, + {0xc695, 0xa52a}, + {0xc696, 0x5194}, + {0xc697, 0x5b96}, + {0xc698, 0x4a41}, + {0xc699, 0x59f0}, + {0xc69a, 0x5b6e}, + {0xc69b, 0x6872}, + {0xc69c, 0xb8f9}, + {0xc69d, 0xc5b6}, + {0xc69e, 0x534a}, + {0xc69f, 0x7d9e}, + {0xc6a0, 0xc30e}, + {0xc6a1, 0x87a1}, + {0xc6a2, 0x87ad}, + {0xc6a3, 0x879a}, + {0xc6a4, 0x878d}, + {0xc6a5, 0x87cc}, + {0xc6a6, 0x87d6}, + {0xc6a7, 0x87f8}, + {0xc6a8, 0x87e5}, + {0xc6a9, 0x8809}, + {0xc6aa, 0x8818}, + {0xc6ab, 0x8812}, + {0xc6ac, 0x880e}, + {0xc6ad, 0x8835}, + {0xc6ae, 0x8841}, + {0xc6af, 0x883e}, + {0xc6b0, 0x8850}, + {0xc6b1, 0x8861}, + {0xc6b2, 0x886e}, + {0xc6b3, 0x8872}, + {0xc6b4, 0x887c}, + {0xc6b5, 0x888c}, + {0xc6b6, 0x8886}, + {0xc6b7, 0x8898}, + {0xc6b8, 0x88a0}, + {0xc6b9, 0x88a1}, + {0xc6ba, 0x88b2}, + {0xc6bb, 0x88b5}, + {0xc6bc, 0x88cc}, + {0xc6bd, 0x88ad}, + {0xc6be, 0x88b0}, + {0xc6bf, 0x88c5}, + {0xc6c0, 0x88ae}, + {0xc6c1, 0x88b9}, + {0xc6c2, 0x88f1}, + {0xc6c3, 0x88f4}, + {0xc6c4, 0x88fa}, + {0xc6c5, 0x8905}, + {0xc6c6, 0x8929}, + {0xc6c7, 0x8938}, + {0xc6c8, 0x891d}, + {0xc6c9, 0x892e}, + {0xc6ca, 0x893e}, + {0xc6cb, 0x8965}, + {0xc6cc, 0x896e}, + {0xc6cd, 0x8960}, + {0xc6ce, 0x897e}, + {0xc6cf, 0x8982}, + {0xc6d0, 0x8980}, + {0xc6d1, 0x8985}, + {0xc6d2, 0x89a6}, + {0xc6d3, 0x89a4}, + {0xc6d4, 0x89a5}, + {0xc6d5, 0x89aa}, + {0xc6d6, 0x89a8}, + {0xc6d7, 0x89b0}, + {0xc6d8, 0x89c4}, + {0xc6d9, 0x89c2}, + {0xc6da, 0x89e5}, + {0xc6db, 0x89e8}, + {0xc6dc, 0x89d2}, + {0xc6dd, 0x89dc}, + {0xc6de, 0x89ca}, + {0xc6df, 0x89c5}, + {0xc6e0, 0x89d1}, + {0xc6e1, 0x89f2}, + {0xc6e2, 0x89cd}, + {0xc6e3, 0x89c8}, + {0xc6e4, 0x8a19}, + {0xc6e5, 0x8a56}, + {0xc6e6, 0x8a1a}, + {0xc6e7, 0x8a1d}, + {0xc6e8, 0x8a49}, + {0xc6e9, 0x8a41}, + {0xc6ea, 0x8a30}, + {0xc6eb, 0x8a0e}, + {0xc6ec, 0x8a6e}, + {0xc6ed, 0x8a20}, + {0xc6ee, 0x8a0d}, + {0xc6ef, 0x8a51}, + {0xc6f0, 0x8acc}, + {0xc6f1, 0x8ab9}, + {0xc6f2, 0x8ab2}, + {0xc6f3, 0x8ab6}, + {0xc6f4, 0x8abc}, + {0xc6f5, 0x8b06}, + {0xc6f6, 0x8b08}, + {0xc6f7, 0x8b2e}, + {0xc6f8, 0x8aea}, + {0xc6f9, 0x8af2}, + {0xc6fa, 0x8af6}, + {0xc6fb, 0x8af8}, + {0xc6fc, 0x8afd}, + {0xc6fd, 0x8aec}, + {0xc6fe, 0x8b41}, + {0xc740, 0x8b78}, + {0xc741, 0xc3dc}, + {0xc742, 0x614e}, + {0xc743, 0x55d4}, + {0xc744, 0x5756}, + {0xc745, 0x4bd1}, + {0xc746, 0x4918}, + {0xc747, 0x6ad8}, + {0xc748, 0x52ea}, + {0xc749, 0x3bed}, + {0xc74a, 0x8cea}, + {0xc74b, 0x4715}, + {0xc74c, 0x88c0}, + {0xc74d, 0x6a2a}, + {0xc74e, 0x73c1}, + {0xc74f, 0x9842}, + {0xc750, 0xc4c9}, + {0xc751, 0x4bd2}, + {0xc752, 0x4366}, + {0xc753, 0xb8fa}, + {0xc754, 0x50d9}, + {0xc755, 0xa355}, + {0xc756, 0x74a6}, + {0xc757, 0x5058}, + {0xc758, 0x55dc}, + {0xc759, 0x913c}, + {0xc75a, 0xb601}, + {0xc75b, 0x425e}, + {0xc75c, 0xbc0e}, + {0xc75d, 0x9ad1}, + {0xc75e, 0x4688}, + {0xc75f, 0x45f4}, + {0xc760, 0xa52c}, + {0xc761, 0x40c2}, + {0xc762, 0xa60e}, + {0xc763, 0x5942}, + {0xc764, 0xc444}, + {0xc765, 0x816c}, + {0xc766, 0xc4cd}, + {0xc767, 0xc77d}, + {0xc768, 0xa148}, + {0xc769, 0x8ef6}, + {0xc76a, 0x9b68}, + {0xc76b, 0x45f5}, + {0xc76c, 0x86fd}, + {0xc76d, 0x7ed0}, + {0xc76e, 0xac30}, + {0xc76f, 0x6ada}, + {0xc770, 0x4598}, + {0xc771, 0x6e36}, + {0xc772, 0xafea}, + {0xc773, 0x4b9d}, + {0xc774, 0x5d5d}, + {0xc775, 0x4b9e}, + {0xc776, 0x664c}, + {0xc777, 0xa28a}, + {0xc778, 0xb82c}, + {0xc779, 0x84ce}, + {0xc77a, 0x94f5}, + {0xc77b, 0xa90a}, + {0xc77c, 0xa470}, + {0xc77d, 0x697d}, + {0xc77e, 0x8298}, + {0xc780, 0x8201}, + {0xc781, 0xa0a6}, + {0xc782, 0x833e}, + {0xc783, 0x7d9d}, + {0xc784, 0x4a44}, + {0xc785, 0x4e5c}, + {0xc786, 0x8f84}, + {0xc787, 0x4fed}, + {0xc788, 0xc6be}, + {0xc789, 0x7232}, + {0xc78a, 0x7adc}, + {0xc78b, 0xa3c1}, + {0xc78c, 0x8430}, + {0xc78d, 0x71c0}, + {0xc78e, 0x8981}, + {0xc78f, 0xbc8d}, + {0xc790, 0x585a}, + {0xc791, 0x5ca0}, + {0xc792, 0x7b99}, + {0xc793, 0x480c}, + {0xc794, 0x4961}, + {0xc795, 0xbed9}, + {0xc796, 0x7ea9}, + {0xc797, 0x74b1}, + {0xc798, 0x3dfa}, + {0xc799, 0x8df1}, + {0xc79a, 0x6d4d}, + {0xc79b, 0x8dac}, + {0xc79c, 0x4e30}, + {0xc79d, 0x693a}, + {0xc79e, 0x6a54}, + {0xc79f, 0x8cf0}, + {0xc7a0, 0x9c26}, + {0xc7a1, 0x8b54}, + {0xc7a2, 0x8b55}, + {0xc7a3, 0x8b82}, + {0xc7a4, 0x8b6d}, + {0xc7a5, 0x8b7e}, + {0xc7a6, 0x8b89}, + {0xc7a7, 0x8b62}, + {0xc7a8, 0x8b71}, + {0xc7a9, 0x8b9a}, + {0xc7aa, 0x8b65}, + {0xc7ab, 0x8b92}, + {0xc7ac, 0x8be2}, + {0xc7ad, 0x8bfd}, + {0xc7ae, 0x8be0}, + {0xc7af, 0x8be1}, + {0xc7b0, 0x8bd8}, + {0xc7b1, 0x8bf6}, + {0xc7b2, 0x8c19}, + {0xc7b3, 0x8c0e}, + {0xc7b4, 0x8c20}, + {0xc7b5, 0x8c34}, + {0xc7b6, 0x8c36}, + {0xc7b7, 0x8c28}, + {0xc7b8, 0x8c44}, + {0xc7b9, 0x8c61}, + {0xc7ba, 0x8c5a}, + {0xc7bb, 0x8c70}, + {0xc7bc, 0x8c5c}, + {0xc7bd, 0x8c8d}, + {0xc7be, 0x8c90}, + {0xc7bf, 0x8c8c}, + {0xc7c0, 0x8ca2}, + {0xc7c1, 0x8cd4}, + {0xc7c2, 0x8cc9}, + {0xc7c3, 0x8cc6}, + {0xc7c4, 0x8cb8}, + {0xc7c5, 0x8ced}, + {0xc7c6, 0x8d08}, + {0xc7c7, 0x8ce6}, + {0xc7c8, 0x8ce8}, + {0xc7c9, 0x8d15}, + {0xc7ca, 0x8d36}, + {0xc7cb, 0x8d31}, + {0xc7cc, 0x8d29}, + {0xc7cd, 0x8d22}, + {0xc7ce, 0x8d1e}, + {0xc7cf, 0x8d25}, + {0xc7d0, 0x8d40}, + {0xc7d1, 0x8d46}, + {0xc7d2, 0x8d49}, + {0xc7d3, 0x8d4e}, + {0xc7d4, 0x8d51}, + {0xc7d5, 0x8d84}, + {0xc7d6, 0x8d82}, + {0xc7d7, 0x8d81}, + {0xc7d8, 0x8da9}, + {0xc7d9, 0x8db0}, + {0xc7da, 0x8db8}, + {0xc7db, 0x8da1}, + {0xc7dc, 0x8dc2}, + {0xc7dd, 0x8db2}, + {0xc7de, 0x8de1}, + {0xc7df, 0x8dee}, + {0xc7e0, 0x8dfd}, + {0xc7e1, 0x8e00}, + {0xc7e2, 0x8dfe}, + {0xc7e3, 0x8e01}, + {0xc7e4, 0x8e02}, + {0xc7e5, 0x8e0a}, + {0xc7e6, 0x8e35}, + {0xc7e7, 0x8e26}, + {0xc7e8, 0x8e29}, + {0xc7e9, 0x8e22}, + {0xc7ea, 0x8e3a}, + {0xc7eb, 0x8e3c}, + {0xc7ec, 0x8e4a}, + {0xc7ed, 0x8e7a}, + {0xc7ee, 0x8e65}, + {0xc7ef, 0x8ea5}, + {0xc7f0, 0x8e9a}, + {0xc7f1, 0x8e9d}, + {0xc7f2, 0x8f00}, + {0xc7f3, 0x8ed9}, + {0xc7f4, 0x8ece}, + {0xc7f5, 0x8ee9}, + {0xc7f6, 0x8edd}, + {0xc7f7, 0x8f5d}, + {0xc7f8, 0x8f2e}, + {0xc7f9, 0x8f55}, + {0xc7fa, 0x8f30}, + {0xc7fb, 0x8f56}, + {0xc7fc, 0x8f3d}, + {0xc7fd, 0x8f39}, + {0xc7fe, 0x8f8a}, + {0xc840, 0x5928}, + {0xc841, 0x60ca}, + {0xc842, 0x8d88}, + {0xc843, 0x3bb0}, + {0xc844, 0xa29c}, + {0xc845, 0x3ebd}, + {0xc846, 0xc35d}, + {0xc847, 0x66b4}, + {0xc848, 0x7826}, + {0xc849, 0x9cb9}, + {0xc84a, 0x9ea9}, + {0xc84b, 0x4d5e}, + {0xc84c, 0x6062}, + {0xc84d, 0x5e60}, + {0xc84e, 0x4978}, + {0xc84f, 0x4514}, + {0xc850, 0x6151}, + {0xc851, 0x5492}, + {0xc852, 0x7282}, + {0xc853, 0x9409}, + {0xc854, 0xb054}, + {0xc855, 0xb39a}, + {0xc856, 0x9514}, + {0xc857, 0x658e}, + {0xc858, 0x5b05}, + {0xc859, 0x4370}, + {0xc85a, 0xc062}, + {0xc85b, 0xa1a8}, + {0xc85c, 0x6bb0}, + {0xc85d, 0x3f5c}, + {0xc85e, 0xb4b1}, + {0xc85f, 0x7ed2}, + {0xc860, 0x3e11}, + {0xc861, 0x8680}, + {0xc862, 0x4fc1}, + {0xc863, 0x8eac}, + {0xc864, 0x6f66}, + {0xc865, 0xa9bc}, + {0xc866, 0xa26c}, + {0xc867, 0xb9a0}, + {0xc868, 0xb9a1}, + {0xc869, 0x5702}, + {0xc86a, 0x76d2}, + {0xc86b, 0xada9}, + {0xc86c, 0x82ad}, + {0xc86d, 0x4379}, + {0xc86e, 0xa4b0}, + {0xc86f, 0x49b9}, + {0xc870, 0xaa00}, + {0xc871, 0x3ff1}, + {0xc872, 0x8209}, + {0xc873, 0x3bb5}, + {0xc874, 0xb6fd}, + {0xc875, 0x7209}, + {0xc876, 0x720a}, + {0xc877, 0x6804}, + {0xc878, 0x8020}, + {0xc879, 0xc785}, + {0xc87a, 0xc7aa}, + {0xc87b, 0xc6e4}, + {0xc87c, 0x91fc}, + {0xc87d, 0xa702}, + {0xc87e, 0xb2c5}, + {0xc880, 0x3bb6}, + {0xc881, 0x8f90}, + {0xc882, 0x66c2}, + {0xc883, 0x5666}, + {0xc884, 0x7c6e}, + {0xc885, 0x66c4}, + {0xc886, 0x86d1}, + {0xc887, 0x5f59}, + {0xc888, 0x5f5a}, + {0xc889, 0x5f9c}, + {0xc88a, 0xb0c5}, + {0xc88b, 0xa050}, + {0xc88c, 0xc5d5}, + {0xc88d, 0x8e2a}, + {0xc88e, 0x7f90}, + {0xc88f, 0x61f1}, + {0xc890, 0x959e}, + {0xc891, 0x577e}, + {0xc892, 0xc382}, + {0xc893, 0x67ad}, + {0xc894, 0xa370}, + {0xc895, 0x41c0}, + {0xc896, 0xa2d6}, + {0xc897, 0x6596}, + {0xc898, 0x50fa}, + {0xc899, 0xb259}, + {0xc89a, 0x9ad4}, + {0xc89b, 0x901d}, + {0xc89c, 0xc01c}, + {0xc89d, 0x6358}, + {0xc89e, 0x9679}, + {0xc89f, 0x72c5}, + {0xc8a0, 0xc65e}, + {0xc8a1, 0x8fc0}, + {0xc8a2, 0x8fc2}, + {0xc8a3, 0x8fc9}, + {0xc8a4, 0x8fdd}, + {0xc8a5, 0x8fce}, + {0xc8a6, 0x8fee}, + {0xc8a7, 0x903e}, + {0xc8a8, 0x8ffc}, + {0xc8a9, 0x902e}, + {0xc8aa, 0x9001}, + {0xc8ab, 0x8ffa}, + {0xc8ac, 0x9010}, + {0xc8ad, 0x9005}, + {0xc8ae, 0x9045}, + {0xc8af, 0x9054}, + {0xc8b0, 0x9052}, + {0xc8b1, 0x9060}, + {0xc8b2, 0x905e}, + {0xc8b3, 0x9062}, + {0xc8b4, 0x9064}, + {0xc8b5, 0x907d}, + {0xc8b6, 0x9082}, + {0xc8b7, 0x9070}, + {0xc8b8, 0x906c}, + {0xc8b9, 0x90a6}, + {0xc8ba, 0x90a9}, + {0xc8bb, 0x90bd}, + {0xc8bc, 0x90c6}, + {0xc8bd, 0x90d2}, + {0xc8be, 0x90d9}, + {0xc8bf, 0x90f0}, + {0xc8c0, 0x90f9}, + {0xc8c1, 0x90fa}, + {0xc8c2, 0x90f8}, + {0xc8c3, 0x9100}, + {0xc8c4, 0x9106}, + {0xc8c5, 0x9111}, + {0xc8c6, 0x9119}, + {0xc8c7, 0x911d}, + {0xc8c8, 0x911e}, + {0xc8c9, 0x9125}, + {0xc8ca, 0x9124}, + {0xc8cb, 0x9121}, + {0xc8cc, 0x9136}, + {0xc8cd, 0x915d}, + {0xc8ce, 0x9150}, + {0xc8cf, 0x9149}, + {0xc8d0, 0x9146}, + {0xc8d1, 0x9155}, + {0xc8d2, 0x9154}, + {0xc8d3, 0x9181}, + {0xc8d4, 0x9182}, + {0xc8d5, 0x918e}, + {0xc8d6, 0x9198}, + {0xc8d7, 0x91a1}, + {0xc8d8, 0x91be}, + {0xc8d9, 0x91a2}, + {0xc8da, 0x91d4}, + {0xc8db, 0x91c5}, + {0xc8dc, 0x91bd}, + {0xc8dd, 0x91a5}, + {0xc8de, 0x919e}, + {0xc8df, 0x91e8}, + {0xc8e0, 0x91f9}, + {0xc8e1, 0x91f5}, + {0xc8e2, 0x9216}, + {0xc8e3, 0x9221}, + {0xc8e4, 0x9241}, + {0xc8e5, 0x9231}, + {0xc8e6, 0x9236}, + {0xc8e7, 0x921d}, + {0xc8e8, 0x9251}, + {0xc8e9, 0x9250}, + {0xc8ea, 0x924d}, + {0xc8eb, 0x9254}, + {0xc8ec, 0x9266}, + {0xc8ed, 0x9275}, + {0xc8ee, 0x9272}, + {0xc8ef, 0x929c}, + {0xc8f0, 0x92b2}, + {0xc8f1, 0x92b1}, + {0xc8f2, 0x92be}, + {0xc8f3, 0x92c0}, + {0xc8f4, 0x92ce}, + {0xc8f5, 0x92d1}, + {0xc8f6, 0x92e8}, + {0xc8f7, 0x92e9}, + {0xc8f8, 0x92f6}, + {0xc8f9, 0x9312}, + {0xc8fa, 0x9319}, + {0xc8fb, 0x9310}, + {0xc8fc, 0x9322}, + {0xc8fd, 0x932c}, + {0xc8fe, 0x932e}, + {0xc940, 0xb1ba}, + {0xc941, 0xbab1}, + {0xc942, 0x7e41}, + {0xc943, 0xbbc1}, + {0xc944, 0x984e}, + {0xc945, 0xc4ad}, + {0xc946, 0x5b08}, + {0xc947, 0x90de}, + {0xc948, 0xae35}, + {0xc949, 0xffff848a}, + {0xc94a, 0xa371}, + {0xc94b, 0xb875}, + {0xc94c, 0x9a05}, + {0xc94d, 0xb5c8}, + {0xc94e, 0x967e}, + {0xc94f, 0x49a2}, + {0xc950, 0x96ce}, + {0xc951, 0xbbc4}, + {0xc952, 0xc026}, + {0xc953, 0x922d}, + {0xc954, 0x75c4}, + {0xc955, 0x9061}, + {0xc956, 0xbb08}, + {0xc957, 0x75c5}, + {0xc958, 0x6cb4}, + {0xc959, 0xa654}, + {0xc95a, 0x4868}, + {0xc95b, 0xad05}, + {0xc95c, 0xa07d}, + {0xc95d, 0x791e}, + {0xc95e, 0x63c9}, + {0xc95f, 0x4eb4}, + {0xc960, 0x8c3d}, + {0xc961, 0xc6e5}, + {0xc962, 0x8935}, + {0xc963, 0x4b82}, + {0xc964, 0xbab4}, + {0xc965, 0x486e}, + {0xc966, 0xba25}, + {0xc967, 0x85f9}, + {0xc968, 0x8984}, + {0xc969, 0x8254}, + {0xc96a, 0xa6d4}, + {0xc96b, 0x54ed}, + {0xc96c, 0xbbf5}, + {0xc96d, 0x92da}, + {0xc96e, 0x431e}, + {0xc96f, 0x7f49}, + {0xc970, 0x9b45}, + {0xc971, 0x80fc}, + {0xc972, 0x9a06}, + {0xc973, 0x7920}, + {0xc974, 0xa6d5}, + {0xc975, 0x5a26}, + {0xc976, 0x7351}, + {0xc977, 0x5785}, + {0xc978, 0x4ba5}, + {0xc979, 0x9d0d}, + {0xc97a, 0x7be8}, + {0xc97b, 0xadb0}, + {0xc97c, 0xb23d}, + {0xc97d, 0x5c11}, + {0xc97e, 0xc695}, + {0xc980, 0x5c3a}, + {0xc981, 0xc7ac}, + {0xc982, 0x9f09}, + {0xc983, 0x437e}, + {0xc984, 0x86be}, + {0xc985, 0xffff84de}, + {0xc986, 0x95a8}, + {0xc987, 0x7378}, + {0xc988, 0x78aa}, + {0xc989, 0x4f2a}, + {0xc98a, 0x9f0a}, + {0xc98b, 0x7ddc}, + {0xc98c, 0x9fb8}, + {0xc98d, 0xc3e5}, + {0xc98e, 0x3bbd}, + {0xc98f, 0x7664}, + {0xc990, 0x4a6e}, + {0xc991, 0x88d8}, + {0xc992, 0x8eb0}, + {0xc993, 0x6a61}, + {0xc994, 0x49a8}, + {0xc995, 0x69ae}, + {0xc996, 0xa324}, + {0xc997, 0xa0d9}, + {0xc998, 0x4342}, + {0xc999, 0xba48}, + {0xc99a, 0xb504}, + {0xc99b, 0x6c7c}, + {0xc99c, 0x3f81}, + {0xc99d, 0x7aa6}, + {0xc99e, 0x426e}, + {0xc99f, 0xbf06}, + {0xc9a0, 0x740a}, + {0xc9a1, 0x9338}, + {0xc9a2, 0x933e}, + {0xc9a3, 0x9359}, + {0xc9a4, 0x935d}, + {0xc9a5, 0x9368}, + {0xc9a6, 0x9370}, + {0xc9a7, 0x9372}, + {0xc9a8, 0x9381}, + {0xc9a9, 0x9386}, + {0xc9aa, 0x93a2}, + {0xc9ab, 0x9392}, + {0xc9ac, 0x9396}, + {0xc9ad, 0x93c8}, + {0xc9ae, 0x93cd}, + {0xc9af, 0x93e5}, + {0xc9b0, 0x93dc}, + {0xc9b1, 0x93d4}, + {0xc9b2, 0x93da}, + {0xc9b3, 0x93d6}, + {0xc9b4, 0x93d8}, + {0xc9b5, 0x93fe}, + {0xc9b6, 0x9406}, + {0xc9b7, 0x940e}, + {0xc9b8, 0x941d}, + {0xc9b9, 0x9424}, + {0xc9ba, 0x9441}, + {0xc9bb, 0x9486}, + {0xc9bc, 0x9431}, + {0xc9bd, 0x9429}, + {0xc9be, 0x942e}, + {0xc9bf, 0x9459}, + {0xc9c0, 0x943a}, + {0xc9c1, 0x946a}, + {0xc9c2, 0x946d}, + {0xc9c3, 0x94a5}, + {0xc9c4, 0x94b0}, + {0xc9c5, 0x94a9}, + {0xc9c6, 0x9491}, + {0xc9c7, 0x9482}, + {0xc9c8, 0x948c}, + {0xc9c9, 0x949e}, + {0xc9ca, 0x94ca}, + {0xc9cb, 0x94c2}, + {0xc9cc, 0x94c5}, + {0xc9cd, 0x94e1}, + {0xc9ce, 0x94e0}, + {0xc9cf, 0x94e6}, + {0xc9d0, 0x94ea}, + {0xc9d1, 0x94dc}, + {0xc9d2, 0x94f6}, + {0xc9d3, 0x94f2}, + {0xc9d4, 0x94fa}, + {0xc9d5, 0x94f4}, + {0xc9d6, 0x950d}, + {0xc9d7, 0x950c}, + {0xc9d8, 0x9515}, + {0xc9d9, 0x9518}, + {0xc9da, 0x9522}, + {0xc9db, 0x9520}, + {0xc9dc, 0x9521}, + {0xc9dd, 0x952e}, + {0xc9de, 0x9531}, + {0xc9df, 0x953e}, + {0xc9e0, 0x9539}, + {0xc9e1, 0x9542}, + {0xc9e2, 0x9554}, + {0xc9e3, 0x955e}, + {0xc9e4, 0x954d}, + {0xc9e5, 0x955c}, + {0xc9e6, 0x954e}, + {0xc9e7, 0x9549}, + {0xc9e8, 0x9548}, + {0xc9e9, 0x9595}, + {0xc9ea, 0x9574}, + {0xc9eb, 0x957d}, + {0xc9ec, 0x9579}, + {0xc9ed, 0x957a}, + {0xc9ee, 0x9598}, + {0xc9ef, 0x9590}, + {0xc9f0, 0x9581}, + {0xc9f1, 0x95bc}, + {0xc9f2, 0x95c6}, + {0xc9f3, 0x95c8}, + {0xc9f4, 0x95d2}, + {0xc9f5, 0x95ec}, + {0xc9f6, 0x95e8}, + {0xc9f7, 0x95f9}, + {0xc9f8, 0x95f2}, + {0xc9f9, 0x9609}, + {0xc9fa, 0x9605}, + {0xc9fb, 0x9622}, + {0xc9fc, 0x9612}, + {0xc9fd, 0x9604}, + {0xc9fe, 0x962e}, + {0xca40, 0x8c94}, + {0xca41, 0x7d59}, + {0xca42, 0xb00a}, + {0xca43, 0x78b6}, + {0xca44, 0x6598}, + {0xca45, 0x406d}, + {0xca46, 0x5c41}, + {0xca47, 0x5d45}, + {0xca48, 0x4dfc}, + {0xca49, 0x7b08}, + {0xca4a, 0x9564}, + {0xca4b, 0x94d0}, + {0xca4c, 0x4dfd}, + {0xca4d, 0xae96}, + {0xca4e, 0x4224}, + {0xca4f, 0x4e7d}, + {0xca50, 0x4b88}, + {0xca51, 0x95ac}, + {0xca52, 0xae24}, + {0xca53, 0x6034}, + {0xca54, 0x3c32}, + {0xca55, 0x7f92}, + {0xca56, 0x7a14}, + {0xca57, 0xc2e5}, + {0xca58, 0x890a}, + {0xca59, 0x6831}, + {0xca5a, 0x7fcc}, + {0xca5b, 0x4a70}, + {0xca5c, 0x8402}, + {0xca5d, 0x62fa}, + {0xca5e, 0x6d79}, + {0xca5f, 0xb61c}, + {0xca60, 0x945a}, + {0xca61, 0xb5c9}, + {0xca62, 0x5c91}, + {0xca63, 0x4609}, + {0xca64, 0x609d}, + {0xca65, 0x93ee}, + {0xca66, 0x7038}, + {0xca67, 0x8c46}, + {0xca68, 0x7ca6}, + {0xca69, 0x4329}, + {0xca6a, 0xbd6e}, + {0xca6b, 0x74e4}, + {0xca6c, 0xa394}, + {0xca6d, 0x6500}, + {0xca6e, 0x8bf9}, + {0xca6f, 0x9659}, + {0xca70, 0x7ee4}, + {0xca71, 0x85a8}, + {0xca72, 0x44b4}, + {0xca73, 0x4eb5}, + {0xca74, 0x929d}, + {0xca75, 0x7440}, + {0xca76, 0xb94a}, + {0xca77, 0x8cfd}, + {0xca78, 0x4878}, + {0xca79, 0x60da}, + {0xca7a, 0x66de}, + {0xca7b, 0x7cf5}, + {0xca7c, 0xbbfa}, + {0xca7d, 0x3db1}, + {0xca7e, 0xb84e}, + {0xca80, 0x7b22}, + {0xca81, 0x9109}, + {0xca82, 0x52a4}, + {0xca83, 0x9e29}, + {0xca84, 0x5478}, + {0xca85, 0x6dee}, + {0xca86, 0x54a1}, + {0xca87, 0x9230}, + {0xca88, 0x54f4}, + {0xca89, 0x719e}, + {0xca8a, 0x98e6}, + {0xca8b, 0xaf68}, + {0xca8c, 0xacee}, + {0xca8d, 0x571c}, + {0xca8e, 0x4d1a}, + {0xca8f, 0xa539}, + {0xca90, 0x5008}, + {0xca91, 0x994e}, + {0xca92, 0xaa20}, + {0xca93, 0xa766}, + {0xca94, 0x79a8}, + {0xca95, 0xbc45}, + {0xca96, 0x9502}, + {0xca97, 0x66e0}, + {0xca98, 0x9b49}, + {0xca99, 0x78be}, + {0xca9a, 0xba58}, + {0xca9b, 0xa7ce}, + {0xca9c, 0x99a9}, + {0xca9d, 0x84e6}, + {0xca9e, 0xadbe}, + {0xca9f, 0xbc49}, + {0xcaa0, 0xba49}, + {0xcaa1, 0x963a}, + {0xcaa2, 0x964d}, + {0xcaa3, 0x964e}, + {0xcaa4, 0x9616}, + {0xcaa5, 0x9648}, + {0xcaa6, 0x9661}, + {0xcaa7, 0x9660}, + {0xcaa8, 0x9670}, + {0xcaa9, 0x966d}, + {0xcaaa, 0x9678}, + {0xcaab, 0x9666}, + {0xcaac, 0x965e}, + {0xcaad, 0x9665}, + {0xcaae, 0x96a0}, + {0xcaaf, 0x96a5}, + {0xcab0, 0x96b6}, + {0xcab1, 0x96aa}, + {0xcab2, 0x96a4}, + {0xcab3, 0x96bc}, + {0xcab4, 0x96ba}, + {0xcab5, 0x96ae}, + {0xcab6, 0x96ad}, + {0xcab7, 0x96e8}, + {0xcab8, 0x96e9}, + {0xcab9, 0x96f0}, + {0xcaba, 0x96f8}, + {0xcabb, 0x96f2}, + {0xcabc, 0x96f1}, + {0xcabd, 0x970d}, + {0xcabe, 0x970a}, + {0xcabf, 0x9700}, + {0xcac0, 0x9705}, + {0xcac1, 0x972d}, + {0xcac2, 0x9716}, + {0xcac3, 0x9728}, + {0xcac4, 0x9766}, + {0xcac5, 0x973c}, + {0xcac6, 0x9719}, + {0xcac7, 0x9729}, + {0xcac8, 0x9754}, + {0xcac9, 0x9772}, + {0xcaca, 0x9731}, + {0xcacb, 0x9708}, + {0xcacc, 0x9718}, + {0xcacd, 0x974e}, + {0xcace, 0x9720}, + {0xcacf, 0x9701}, + {0xcad0, 0x9709}, + {0xcad1, 0x9726}, + {0xcad2, 0x9724}, + {0xcad3, 0x971d}, + {0xcad4, 0x971e}, + {0xcad5, 0x9789}, + {0xcad6, 0x978c}, + {0xcad7, 0x9791}, + {0xcad8, 0x978e}, + {0xcad9, 0x9795}, + {0xcada, 0x979e}, + {0xcadb, 0x979d}, + {0xcadc, 0x9796}, + {0xcadd, 0x97a8}, + {0xcade, 0x979c}, + {0xcadf, 0x97ea}, + {0xcae0, 0x97b9}, + {0xcae1, 0x97cd}, + {0xcae2, 0x97c8}, + {0xcae3, 0x97b2}, + {0xcae4, 0x97e2}, + {0xcae5, 0x97b6}, + {0xcae6, 0x97d9}, + {0xcae7, 0x97ce}, + {0xcae8, 0x97d8}, + {0xcae9, 0x97b0}, + {0xcaea, 0x97fe}, + {0xcaeb, 0x97fd}, + {0xcaec, 0x9804}, + {0xcaed, 0x981c}, + {0xcaee, 0x9812}, + {0xcaef, 0x9820}, + {0xcaf0, 0x9815}, + {0xcaf1, 0x9816}, + {0xcaf2, 0x9814}, + {0xcaf3, 0x9818}, + {0xcaf4, 0x9810}, + {0xcaf5, 0x9832}, + {0xcaf6, 0x9839}, + {0xcaf7, 0x9840}, + {0xcaf8, 0x9836}, + {0xcaf9, 0x9834}, + {0xcafa, 0x9841}, + {0xcafb, 0x9862}, + {0xcafc, 0x984a}, + {0xcafd, 0x985a}, + {0xcafe, 0x9864}, + {0xcb40, 0xa6e2}, + {0xcb41, 0x5e15}, + {0xcb42, 0x3b8c}, + {0xcb43, 0x6314}, + {0xcb44, 0x6315}, + {0xcb45, 0x65cd}, + {0xcb46, 0x4a24}, + {0xcb47, 0xa96c}, + {0xcb48, 0xa271}, + {0xcb49, 0x806c}, + {0xcb4a, 0x7491}, + {0xcb4b, 0x6810}, + {0xcb4c, 0x4306}, + {0xcb4d, 0x95b1}, + {0xcb4e, 0x8c9a}, + {0xcb4f, 0x7686}, + {0xcb50, 0x6f74}, + {0xcb51, 0xbb1a}, + {0xcb52, 0x4be8}, + {0xcb53, 0x9e72}, + {0xcb54, 0x9ced}, + {0xcb55, 0xbe84}, + {0xcb56, 0x9b4c}, + {0xcb57, 0xa834}, + {0xcb58, 0x53ae}, + {0xcb59, 0x4fb2}, + {0xcb5a, 0xab54}, + {0xcb5b, 0x5a84}, + {0xcb5c, 0x981a}, + {0xcb5d, 0x67d4}, + {0xcb5e, 0x5dc4}, + {0xcb5f, 0x9306}, + {0xcb60, 0xae9a}, + {0xcb61, 0xb264}, + {0xcb62, 0x3d19}, + {0xcb63, 0x5144}, + {0xcb64, 0x8890}, + {0xcb65, 0xa39c}, + {0xcb66, 0x8499}, + {0xcb67, 0x4826}, + {0xcb68, 0x7ce9}, + {0xcb69, 0x8851}, + {0xcb6a, 0x8b36}, + {0xcb6b, 0xbd29}, + {0xcb6c, 0x4612}, + {0xcb6d, 0xc03d}, + {0xcb6e, 0x5319}, + {0xcb6f, 0x8390}, + {0xcb70, 0xb719}, + {0xcb71, 0x4aa8}, + {0xcb72, 0xaa26}, + {0xcb73, 0x8a8d}, + {0xcb74, 0x5358}, + {0xcb75, 0x675d}, + {0xcb76, 0xad86}, + {0xcb77, 0x7160}, + {0xcb78, 0x4019}, + {0xcb79, 0x4f36}, + {0xcb7a, 0x7fde}, + {0xcb7b, 0x72d8}, + {0xcb7c, 0x6ac0}, + {0xcb7d, 0x8e91}, + {0xcb7e, 0x8d76}, + {0xcb80, 0xffff85d4}, + {0xcb81, 0xa8a4}, + {0xcb82, 0x9aac}, + {0xcb83, 0x7c35}, + {0xcb84, 0xb55d}, + {0xcb85, 0xad89}, + {0xcb86, 0xaafc}, + {0xcb87, 0xb55e}, + {0xcb88, 0x723d}, + {0xcb89, 0x744c}, + {0xcb8a, 0x6925}, + {0xcb8b, 0x4e09}, + {0xcb8c, 0xc1e5}, + {0xcb8d, 0x3e24}, + {0xcb8e, 0xb26a}, + {0xcb8f, 0x8199}, + {0xcb90, 0x61c2}, + {0xcb91, 0x4082}, + {0xcb92, 0x9a34}, + {0xcb93, 0x9ca4}, + {0xcb94, 0xa0da}, + {0xcb95, 0x8e95}, + {0xcb96, 0x8d0c}, + {0xcb97, 0xa3f1}, + {0xcb98, 0x7945}, + {0xcb99, 0x6321}, + {0xcb9a, 0x8591}, + {0xcb9b, 0x586e}, + {0xcb9c, 0xbc52}, + {0xcb9d, 0x3de8}, + {0xcb9e, 0x7608}, + {0xcb9f, 0x9822}, + {0xcba0, 0xc3cc}, + {0xcba1, 0x9848}, + {0xcba2, 0x987a}, + {0xcba3, 0x987d}, + {0xcba4, 0x9882}, + {0xcba5, 0x9880}, + {0xcba6, 0x9884}, + {0xcba7, 0x9885}, + {0xcba8, 0x9890}, + {0xcba9, 0x988d}, + {0xcbaa, 0x9899}, + {0xcbab, 0x9895}, + {0xcbac, 0x98b0}, + {0xcbad, 0x98c0}, + {0xcbae, 0x98c5}, + {0xcbaf, 0x98d6}, + {0xcbb0, 0x98d2}, + {0xcbb1, 0x98dc}, + {0xcbb2, 0x98ed}, + {0xcbb3, 0x98de}, + {0xcbb4, 0x98e4}, + {0xcbb5, 0x98f1}, + {0xcbb6, 0x98fe}, + {0xcbb7, 0x98fa}, + {0xcbb8, 0x98f8}, + {0xcbb9, 0x992a}, + {0xcbba, 0x9949}, + {0xcbbb, 0x9945}, + {0xcbbc, 0x9924}, + {0xcbbd, 0x9919}, + {0xcbbe, 0x9916}, + {0xcbbf, 0x9915}, + {0xcbc0, 0x9965}, + {0xcbc1, 0x999d}, + {0xcbc2, 0x996e}, + {0xcbc3, 0x999c}, + {0xcbc4, 0x996a}, + {0xcbc5, 0x9972}, + {0xcbc6, 0x996d}, + {0xcbc7, 0x9981}, + {0xcbc8, 0x9966}, + {0xcbc9, 0x99b2}, + {0xcbca, 0x99d9}, + {0xcbcb, 0x99d5}, + {0xcbcc, 0x99ed}, + {0xcbcd, 0x99ea}, + {0xcbce, 0x99e8}, + {0xcbcf, 0x99e6}, + {0xcbd0, 0x99e9}, + {0xcbd1, 0x9a01}, + {0xcbd2, 0x9a14}, + {0xcbd3, 0x9a30}, + {0xcbd4, 0x9906}, + {0xcbd5, 0x9a38}, + {0xcbd6, 0x9a3c}, + {0xcbd7, 0x9a4c}, + {0xcbd8, 0x9a5c}, + {0xcbd9, 0x9a5d}, + {0xcbda, 0x9a6e}, + {0xcbdb, 0x9a8a}, + {0xcbdc, 0x9a79}, + {0xcbdd, 0x9a7d}, + {0xcbde, 0x9a65}, + {0xcbdf, 0x9a50}, + {0xcbe0, 0x9a54}, + {0xcbe1, 0x9abc}, + {0xcbe2, 0x9ac2}, + {0xcbe3, 0x9ac4}, + {0xcbe4, 0x9aca}, + {0xcbe5, 0x9ae2}, + {0xcbe6, 0x9ae4}, + {0xcbe7, 0x9ae1}, + {0xcbe8, 0x9af6}, + {0xcbe9, 0x9b11}, + {0xcbea, 0x9af9}, + {0xcbeb, 0x9b2a}, + {0xcbec, 0x9b09}, + {0xcbed, 0x9b15}, + {0xcbee, 0x9afe}, + {0xcbef, 0x9b3c}, + {0xcbf0, 0x9b4e}, + {0xcbf1, 0x9b50}, + {0xcbf2, 0x9b75}, + {0xcbf3, 0x9b6d}, + {0xcbf4, 0x9b65}, + {0xcbf5, 0x9b79}, + {0xcbf6, 0x9b88}, + {0xcbf7, 0x9b86}, + {0xcbf8, 0x9b8d}, + {0xcbf9, 0x9b82}, + {0xcbfa, 0x9bb5}, + {0xcbfb, 0x9bac}, + {0xcbfc, 0x9bad}, + {0xcbfd, 0x69d5}, + {0xcbfe, 0x9bbe}, + {0xcc40, 0x3b61}, + {0xcc41, 0x7852}, + {0xcc42, 0xadca}, + {0xcc43, 0x8dfa}, + {0xcc44, 0x72ae}, + {0xcc45, 0xa1ad}, + {0xcc46, 0xa5d1}, + {0xcc47, 0x92a1}, + {0xcc48, 0x92a2}, + {0xcc49, 0x8a9a}, + {0xcc4a, 0x7a79}, + {0xcc4b, 0x9a45}, + {0xcc4c, 0xa0ec}, + {0xcc4d, 0x7d99}, + {0xcc4e, 0xbc56}, + {0xcc4f, 0x88ec}, + {0xcc50, 0xb9c0}, + {0xcc51, 0xaeaa}, + {0xcc52, 0x65ee}, + {0xcc53, 0x6b74}, + {0xcc54, 0xadcc}, + {0xcc55, 0x8ec4}, + {0xcc56, 0x9a46}, + {0xcc57, 0x6b9a}, + {0xcc58, 0x55a8}, + {0xcc59, 0x4222}, + {0xcc5a, 0x90ed}, + {0xcc5b, 0xb576}, + {0xcc5c, 0xa8e6}, + {0xcc5d, 0xba7a}, + {0xcc5e, 0x6c95}, + {0xcc5f, 0x76c0}, + {0xcc60, 0x76c1}, + {0xcc61, 0xb65c}, + {0xcc62, 0x8ca1}, + {0xcc63, 0xb6d4}, + {0xcc64, 0x79b6}, + {0xcc65, 0xa039}, + {0xcc66, 0x60c0}, + {0xcc67, 0xbbaa}, + {0xcc68, 0x78dd}, + {0xcc69, 0xb219}, + {0xcc6a, 0x7e5c}, + {0xcc6b, 0x5d98}, + {0xcc6c, 0x713d}, + {0xcc6d, 0x72ec}, + {0xcc6e, 0x65f5}, + {0xcc6f, 0x4d25}, + {0xcc70, 0x7d6e}, + {0xcc71, 0x7482}, + {0xcc72, 0x7421}, + {0xcc73, 0x6111}, + {0xcc74, 0x5572}, + {0xcc75, 0xc16c}, + {0xcc76, 0xa3fc}, + {0xcc77, 0x7169}, + {0xcc78, 0x6126}, + {0xcc79, 0x750e}, + {0xcc7a, 0x65f9}, + {0xcc7b, 0x7456}, + {0xcc7c, 0x612d}, + {0xcc7d, 0x7bd5}, + {0xcc7e, 0x6492}, + {0xcc80, 0x716c}, + {0xcc81, 0x7b4a}, + {0xcc82, 0x6718}, + {0xcc83, 0x9328}, + {0xcc84, 0x9dea}, + {0xcc85, 0x7429}, + {0xcc86, 0x9051}, + {0xcc87, 0xaa46}, + {0xcc88, 0xb58e}, + {0xcc89, 0x7b74}, + {0xcc8a, 0x7eb1}, + {0xcc8b, 0x40ba}, + {0xcc8c, 0x9926}, + {0xcc8d, 0xa9e6}, + {0xcc8e, 0x48c4}, + {0xcc8f, 0x5ff2}, + {0xcc90, 0xacd0}, + {0xcc91, 0x4b7a}, + {0xcc92, 0x565c}, + {0xcc93, 0xacda}, + {0xcc94, 0x7aa2}, + {0xcc95, 0x6065}, + {0xcc96, 0x5e08}, + {0xcc97, 0x6884}, + {0xcc98, 0x6cf6}, + {0xcc99, 0x3e06}, + {0xcc9a, 0xb011}, + {0xcc9b, 0xbeec}, + {0xcc9c, 0xbeed}, + {0xcc9d, 0x7136}, + {0xcc9e, 0x40f5}, + {0xcc9f, 0xa775}, + {0xcca0, 0x9878}, + {0xcca1, 0x9bc4}, + {0xcca2, 0x9bcd}, + {0xcca3, 0x9c00}, + {0xcca4, 0x9bf4}, + {0xcca5, 0x9c18}, + {0xcca6, 0x9c22}, + {0xcca7, 0x9c21}, + {0xcca8, 0x9c1a}, + {0xcca9, 0x9c4d}, + {0xccaa, 0x9c51}, + {0xccab, 0x9c41}, + {0xccac, 0x9c49}, + {0xccad, 0x9c48}, + {0xccae, 0x9c5a}, + {0xccaf, 0x9c6c}, + {0xccb0, 0x9c5d}, + {0xccb1, 0x9c72}, + {0xccb2, 0x9c6d}, + {0xccb3, 0x9c7a}, + {0xccb4, 0x9c9d}, + {0xccb5, 0x9c89}, + {0xccb6, 0x9c91}, + {0xccb7, 0x9c8c}, + {0xccb8, 0x9c7e}, + {0xccb9, 0x9cb4}, + {0xccba, 0x9cbd}, + {0xccbb, 0x9cb6}, + {0xccbc, 0x9cda}, + {0xccbd, 0x9cd0}, + {0xccbe, 0x9ccc}, + {0xccbf, 0x9ccd}, + {0xccc0, 0x9ce2}, + {0xccc1, 0x9d08}, + {0xccc2, 0x9d0a}, + {0xccc3, 0x9cfa}, + {0xccc4, 0x9d01}, + {0xccc5, 0x9d20}, + {0xccc6, 0x9cf9}, + {0xccc7, 0x9d28}, + {0xccc8, 0x9d3c}, + {0xccc9, 0x9d44}, + {0xccca, 0x9d3e}, + {0xcccb, 0x9d54}, + {0xcccc, 0x9d51}, + {0xcccd, 0x9d66}, + {0xccce, 0x9d64}, + {0xcccf, 0x9d72}, + {0xccd0, 0x9d65}, + {0xccd1, 0x9d96}, + {0xccd2, 0x9d8e}, + {0xccd3, 0x9d8d}, + {0xccd4, 0x9d94}, + {0xccd5, 0x9d90}, + {0xccd6, 0x9dae}, + {0xccd7, 0x9db2}, + {0xccd8, 0x9dba}, + {0xccd9, 0x9de0}, + {0xccda, 0x9dd0}, + {0xccdb, 0x9dca}, + {0xccdc, 0x9dd1}, + {0xccdd, 0x9df2}, + {0xccde, 0x9df1}, + {0xccdf, 0x9df8}, + {0xcce0, 0x9df5}, + {0xcce1, 0x9e0d}, + {0xcce2, 0x9e2c}, + {0xcce3, 0x9e30}, + {0xcce4, 0x9e08}, + {0xcce5, 0x9e44}, + {0xcce6, 0x9e62}, + {0xcce7, 0x9e76}, + {0xcce8, 0x9e5c}, + {0xcce9, 0x9e56}, + {0xccea, 0x9e51}, + {0xcceb, 0x9e50}, + {0xccec, 0x9e85}, + {0xcced, 0x9e8d}, + {0xccee, 0x9eb0}, + {0xccef, 0x9e96}, + {0xccf0, 0x9ea8}, + {0xccf1, 0x9e9d}, + {0xccf2, 0x9edc}, + {0xccf3, 0x9ed6}, + {0xccf4, 0x9ef4}, + {0xccf5, 0x9efc}, + {0xccf6, 0x9f00}, + {0xccf7, 0x9f2c}, + {0xccf8, 0x9f34}, + {0xccf9, 0x9f3a}, + {0xccfa, 0x9f42}, + {0xccfb, 0x9f51}, + {0xccfc, 0x9f59}, + {0xccfd, 0x9f5e}, + {0xccfe, 0x9f64}, + {0xcd40, 0x4ef1}, + {0xcd41, 0x8ede}, + {0xcd42, 0x4642}, + {0xcd43, 0xffff8672}, + {0xcd44, 0x6da9}, + {0xcd45, 0xbf9e}, + {0xcd46, 0x953c}, + {0xcd47, 0xb8c0}, + {0xcd48, 0x5d10}, + {0xcd49, 0xc620}, + {0xcd4a, 0xa995}, + {0xcd4b, 0x540a}, + {0xcd4c, 0x5268}, + {0xcd4d, 0x3ca0}, + {0xcd4e, 0x4750}, + {0xcd4f, 0x8b86}, + {0xcd50, 0xa432}, + {0xcd51, 0xbb7a}, + {0xcd52, 0xbb7c}, + {0xcd53, 0x6e38}, + {0xcd54, 0x8a31}, + {0xcd55, 0x9fd2}, + {0xcd56, 0x8a32}, + {0xcd57, 0xbae5}, + {0xcd58, 0x6db0}, + {0xcd59, 0x629e}, + {0xcd5a, 0x8dad}, + {0xcd5b, 0x8a34}, + {0xcd5c, 0xc311}, + {0xcd5d, 0x8202}, + {0xcd5e, 0xa28c}, + {0xcd5f, 0x54e5}, + {0xcd60, 0x54e6}, + {0xcd61, 0x5db1}, + {0xcd62, 0x56ea}, + {0xcd63, 0x90b9}, + {0xcd64, 0x8670}, + {0xcd65, 0x835d}, + {0xcd66, 0x4c2c}, + {0xcd67, 0x88cd}, + {0xcd68, 0x471e}, + {0xcd69, 0x6ce4}, + {0xcd6a, 0x75a5}, + {0xcd6b, 0x56f6}, + {0xcd6c, 0xbe00}, + {0xcd6d, 0x59e5}, + {0xcd6e, 0x87a5}, + {0xcd6f, 0x4215}, + {0xcd70, 0xa878}, + {0xcd71, 0x4efc}, + {0xcd72, 0x40c4}, + {0xcd73, 0x413a}, + {0xcd74, 0xbe6d}, + {0xcd75, 0x9f44}, + {0xcd76, 0x5a64}, + {0xcd77, 0xb6f8}, + {0xcd78, 0x58c6}, + {0xcd79, 0x4a46}, + {0xcd7a, 0x62a4}, + {0xcd7b, 0x7d94}, + {0xcd7c, 0x5704}, + {0xcd7d, 0x77be}, + {0xcd7e, 0xb332}, + {0xcd80, 0xa881}, + {0xcd81, 0x75ae}, + {0xcd82, 0xb4d4}, + {0xcd83, 0x88d9}, + {0xcd84, 0x6992}, + {0xcd85, 0x9540}, + {0xcd86, 0xb3a0}, + {0xcd87, 0xa2a4}, + {0xcd88, 0x8174}, + {0xcd89, 0x8d66}, + {0xcd8a, 0x5bf1}, + {0xcd8b, 0x8e7e}, + {0xcd8c, 0x73c9}, + {0xcd8d, 0xabe5}, + {0xcd8e, 0x6a05}, + {0xcd8f, 0x8f12}, + {0xcd90, 0x6658}, + {0xcd91, 0xa102}, + {0xcd92, 0x459a}, + {0xcd93, 0x3e65}, + {0xcd94, 0x5d74}, + {0xcd95, 0xade2}, + {0xcd96, 0xc09c}, + {0xcd97, 0x56b9}, + {0xcd98, 0xa8d0}, + {0xcd99, 0x735e}, + {0xcd9a, 0x3f82}, + {0xcd9b, 0xbab5}, + {0xcd9c, 0xb878}, + {0xcd9d, 0x699e}, + {0xcd9e, 0x4cb9}, + {0xcd9f, 0x4ed4}, + {0xcda0, 0x62a5}, + {0xcda1, 0x9f5c}, + {0xcda2, 0x9f79}, + {0xcda3, 0x9f80}, + {0xcda4, 0x9f7c}, + {0xcda5, 0x9f7d}, + {0xcda6, 0x9f9a}, + {0xcda7, 0x9fa6}, + {0xcda8, 0x9fb4}, + {0xcda9, 0x9fcd}, + {0xcdaa, 0x9fe2}, + {0xcdab, 0x9ffc}, + {0xcdac, 0x9fbd}, + {0xcdad, 0x9fda}, + {0xcdae, 0x9fc0}, + {0xcdaf, 0x9fdc}, + {0xcdb0, 0xa00a}, + {0xcdb1, 0xa008}, + {0xcdb2, 0xa00c}, + {0xcdb3, 0xa005}, + {0xcdb4, 0xa012}, + {0xcdb5, 0xa016}, + {0xcdb6, 0xa020}, + {0xcdb7, 0xa01e}, + {0xcdb8, 0xa03a}, + {0xcdb9, 0xa040}, + {0xcdba, 0xa042}, + {0xcdbb, 0xa045}, + {0xcdbc, 0xa05d}, + {0xcdbd, 0xa064}, + {0xcdbe, 0xa06a}, + {0xcdbf, 0xa068}, + {0xcdc0, 0xa06d}, + {0xcdc1, 0xa099}, + {0xcdc2, 0xa09c}, + {0xcdc3, 0xa0a4}, + {0xcdc4, 0xa0aa}, + {0xcdc5, 0xa0b4}, + {0xcdc6, 0xa0d6}, + {0xcdc7, 0xa0e0}, + {0xcdc8, 0xa0f5}, + {0xcdc9, 0xa104}, + {0xcdca, 0xa105}, + {0xcdcb, 0xa0fc}, + {0xcdcc, 0xa108}, + {0xcdcd, 0xa116}, + {0xcdce, 0xa129}, + {0xcdcf, 0xa141}, + {0xcdd0, 0xa136}, + {0xcdd1, 0xa14e}, + {0xcdd2, 0xa16d}, + {0xcdd3, 0xa15a}, + {0xcdd4, 0xa158}, + {0xcdd5, 0xa164}, + {0xcdd6, 0xa198}, + {0xcdd7, 0xa191}, + {0xcdd8, 0xa1a4}, + {0xcdd9, 0xa1a6}, + {0xcdda, 0xa1b6}, + {0xcddb, 0xa1b2}, + {0xcddc, 0xa1c1}, + {0xcddd, 0xa1b8}, + {0xcdde, 0xa1b4}, + {0xcddf, 0xa1ce}, + {0xcde0, 0xa1da}, + {0xcde1, 0xa1e9}, + {0xcde2, 0xa1f2}, + {0xcde3, 0xa209}, + {0xcde4, 0xa1f9}, + {0xcde5, 0xa201}, + {0xcde6, 0xa21d}, + {0xcde7, 0xa222}, + {0xcde8, 0xa210}, + {0xcde9, 0xa224}, + {0xcdea, 0xa218}, + {0xcdeb, 0xa24e}, + {0xcdec, 0xa234}, + {0xcded, 0xa23c}, + {0xcdee, 0xa24a}, + {0xcdef, 0xa23a}, + {0xcdf0, 0xa22d}, + {0xcdf1, 0xa239}, + {0xcdf2, 0xa260}, + {0xcdf3, 0xa26a}, + {0xcdf4, 0xa27e}, + {0xcdf5, 0xa286}, + {0xcdf6, 0xa282}, + {0xcdf7, 0xa294}, + {0xcdf8, 0xa28e}, + {0xcdf9, 0xa291}, + {0xcdfa, 0xa2b5}, + {0xcdfb, 0xa2b8}, + {0xcdfc, 0xa2b2}, + {0xcdfd, 0xa2b0}, + {0xcdfe, 0xa2bd}, + {0xce40, 0x99c9}, + {0xce41, 0x6c48}, + {0xce42, 0x8a76}, + {0xce43, 0xba3d}, + {0xce44, 0x6e75}, + {0xce45, 0x9940}, + {0xce46, 0x7ba4}, + {0xce47, 0x75d2}, + {0xce48, 0x4f71}, + {0xce49, 0x9d9d}, + {0xce4a, 0x71d4}, + {0xce4b, 0x5d2e}, + {0xce4c, 0x5d7d}, + {0xce4d, 0x3d9a}, + {0xce4e, 0x5464}, + {0xce4f, 0xa389}, + {0xce50, 0x5159}, + {0xce51, 0xbabc}, + {0xce52, 0x9ba9}, + {0xce53, 0x8c1d}, + {0xce54, 0x92b4}, + {0xce55, 0x8368}, + {0xce56, 0xa38a}, + {0xce57, 0x7716}, + {0xce58, 0x4ff1}, + {0xce59, 0x529d}, + {0xce5a, 0x3d4a}, + {0xce5b, 0x4e7e}, + {0xce5c, 0xa2a8}, + {0xce5d, 0x42e0}, + {0xce5e, 0x7f91}, + {0xce5f, 0xffff874a}, + {0xce60, 0x7250}, + {0xce61, 0x64e8}, + {0xce62, 0x9f90}, + {0xce63, 0x7e12}, + {0xce64, 0xacf0}, + {0xce65, 0x7ff6}, + {0xce66, 0x6955}, + {0xce67, 0x96d4}, + {0xce68, 0xadbc}, + {0xce69, 0xb075}, + {0xce6a, 0x9205}, + {0xce6b, 0xa2e6}, + {0xce6c, 0x571d}, + {0xce6d, 0xbb12}, + {0xce6e, 0x7e95}, + {0xce6f, 0xa3dc}, + {0xce70, 0x928c}, + {0xce71, 0xaadc}, + {0xce72, 0xa796}, + {0xce73, 0xb6b1}, + {0xce74, 0x968c}, + {0xce75, 0x47dc}, + {0xce76, 0x9cec}, + {0xce77, 0xc3bd}, + {0xce78, 0xc672}, + {0xce79, 0x9e2a}, + {0xce7a, 0xbb14}, + {0xce7b, 0x7ee5}, + {0xce7c, 0x7255}, + {0xce7d, 0x5098}, + {0xce7e, 0x8eb6}, + {0xce80, 0xa6e0}, + {0xce81, 0xa4b9}, + {0xce82, 0xbbc8}, + {0xce83, 0x8fc8}, + {0xce84, 0xb70d}, + {0xce85, 0x680a}, + {0xce86, 0x3d31}, + {0xce87, 0x9954}, + {0xce88, 0x4a49}, + {0xce89, 0xa68c}, + {0xce8a, 0xa485}, + {0xce8b, 0x7688}, + {0xce8c, 0x3d34}, + {0xce8d, 0x91d5}, + {0xce8e, 0x650d}, + {0xce8f, 0xa510}, + {0xce90, 0xacb4}, + {0xce91, 0x5d88}, + {0xce92, 0xb3c1}, + {0xce93, 0x3ee4}, + {0xce94, 0x60dc}, + {0xce95, 0xb40e}, + {0xce96, 0x50e4}, + {0xce97, 0x8284}, + {0xce98, 0x5e89}, + {0xce99, 0x6044}, + {0xce9a, 0x62ad}, + {0xce9b, 0x7cc0}, + {0xce9c, 0xb545}, + {0xce9d, 0xa448}, + {0xce9e, 0xb714}, + {0xce9f, 0x9dd9}, + {0xcea0, 0xc2e8}, + {0xcea1, 0xa2f4}, + {0xcea2, 0xa2d9}, + {0xcea3, 0xa2bc}, + {0xcea4, 0xa2fa}, + {0xcea5, 0xa301}, + {0xcea6, 0xa30a}, + {0xcea7, 0xa2fd}, + {0xcea8, 0xa30d}, + {0xcea9, 0xa310}, + {0xceaa, 0xa2f9}, + {0xceab, 0xa321}, + {0xceac, 0xa311}, + {0xcead, 0xa345}, + {0xceae, 0xa360}, + {0xceaf, 0xa349}, + {0xceb0, 0xa33e}, + {0xceb1, 0xa340}, + {0xceb2, 0xa341}, + {0xceb3, 0xa342}, + {0xceb4, 0xa3b2}, + {0xceb5, 0xa3d2}, + {0xceb6, 0xa3b5}, + {0xceb7, 0xa3b9}, + {0xceb8, 0xa3ba}, + {0xceb9, 0xa3c9}, + {0xceba, 0xa3ee}, + {0xcebb, 0xa3b4}, + {0xcebc, 0xa3cc}, + {0xcebd, 0xa3c2}, + {0xcebe, 0xa3be}, + {0xcebf, 0xa3d5}, + {0xcec0, 0xa3b1}, + {0xcec1, 0xa41c}, + {0xcec2, 0xa410}, + {0xcec3, 0xa434}, + {0xcec4, 0xa428}, + {0xcec5, 0xa430}, + {0xcec6, 0xa42a}, + {0xcec7, 0xa454}, + {0xcec8, 0xa465}, + {0xcec9, 0xa45d}, + {0xceca, 0xa46a}, + {0xcecb, 0xa480}, + {0xcecc, 0xa47d}, + {0xcecd, 0xa49d}, + {0xcece, 0xa4a4}, + {0xcecf, 0xa4b6}, + {0xced0, 0xa4a6}, + {0xced1, 0xa4b2}, + {0xced2, 0xa4bc}, + {0xced3, 0xa4de}, + {0xced4, 0xa4cc}, + {0xced5, 0xa4d5}, + {0xced6, 0xa4c8}, + {0xced7, 0xa4f8}, + {0xced8, 0xa4f6}, + {0xced9, 0xa4fe}, + {0xceda, 0xa4ec}, + {0xcedb, 0xa4f4}, + {0xcedc, 0xa4fd}, + {0xcedd, 0xa4fa}, + {0xcede, 0xa518}, + {0xcedf, 0xa520}, + {0xcee0, 0xa52e}, + {0xcee1, 0xa51d}, + {0xcee2, 0xa51c}, + {0xcee3, 0xa519}, + {0xcee4, 0xa55a}, + {0xcee5, 0xa549}, + {0xcee6, 0xa561}, + {0xcee7, 0xa54a}, + {0xcee8, 0xa571}, + {0xcee9, 0xa54d}, + {0xceea, 0xa55d}, + {0xceeb, 0xa550}, + {0xceec, 0xa58c}, + {0xceed, 0xa5bc}, + {0xceee, 0xa5a9}, + {0xceef, 0xa598}, + {0xcef0, 0xa588}, + {0xcef1, 0xa58a}, + {0xcef2, 0xa5a2}, + {0xcef3, 0xa59d}, + {0xcef4, 0xa5ea}, + {0xcef5, 0xa666}, + {0xcef6, 0xa5ec}, + {0xcef7, 0xa5e1}, + {0xcef8, 0xa625}, + {0xcef9, 0xa5ed}, + {0xcefa, 0xa635}, + {0xcefb, 0xa670}, + {0xcefc, 0xa5dd}, + {0xcefd, 0xa655}, + {0xcefe, 0xa60c}, + {0xcf40, 0x4322}, + {0xcf41, 0x99ae}, + {0xcf42, 0x8a85}, + {0xcf43, 0x9f16}, + {0xcf44, 0x94d4}, + {0xcf45, 0x4e8a}, + {0xcf46, 0x7b2e}, + {0xcf47, 0xa3ea}, + {0xcf48, 0xc2a0}, + {0xcf49, 0x4610}, + {0xcf4a, 0x8f99}, + {0xcf4b, 0x87c0}, + {0xcf4c, 0xb961}, + {0xcf4d, 0x67de}, + {0xcf4e, 0x7a20}, + {0xcf4f, 0x8de5}, + {0xcf50, 0xb659}, + {0xcf51, 0x6816}, + {0xcf52, 0xa44c}, + {0xcf53, 0xaa28}, + {0xcf54, 0x7d66}, + {0xcf55, 0xbfcc}, + {0xcf56, 0xbff4}, + {0xcf57, 0x7cac}, + {0xcf58, 0x5c7a}, + {0xcf59, 0x793c}, + {0xcf5a, 0x4a88}, + {0xcf5b, 0x74f1}, + {0xcf5c, 0x7d41}, + {0xcf5d, 0xaa29}, + {0xcf5e, 0x4528}, + {0xcf5f, 0x819a}, + {0xcf60, 0xc736}, + {0xcf61, 0x9956}, + {0xcf62, 0x8ec0}, + {0xcf63, 0x9dc6}, + {0xcf64, 0xc19d}, + {0xcf65, 0x8729}, + {0xcf66, 0x68ee}, + {0xcf67, 0x8fa0}, + {0xcf68, 0x40ca}, + {0xcf69, 0x776a}, + {0xcf6a, 0x5bfa}, + {0xcf6b, 0xa719}, + {0xcf6c, 0x6549}, + {0xcf6d, 0xc499}, + {0xcf6e, 0x5465}, + {0xcf6f, 0x73b0}, + {0xcf70, 0x6e02}, + {0xcf71, 0x6e04}, + {0xcf72, 0xb62c}, + {0xcf73, 0x4475}, + {0xcf74, 0x689d}, + {0xcf75, 0x82ea}, + {0xcf76, 0xaa36}, + {0xcf77, 0x81c9}, + {0xcf78, 0x47dd}, + {0xcf79, 0xaef4}, + {0xcf7a, 0x9958}, + {0xcf7b, 0x4886}, + {0xcf7c, 0x466a}, + {0xcf7d, 0x4cf1}, + {0xcf7e, 0x7549}, + {0xcf80, 0x94b5}, + {0xcf81, 0xb418}, + {0xcf82, 0x6b22}, + {0xcf83, 0x4bf0}, + {0xcf84, 0x8b3e}, + {0xcf85, 0x4a29}, + {0xcf86, 0xa9a8}, + {0xcf87, 0x9566}, + {0xcf88, 0x8dd4}, + {0xcf89, 0xb72a}, + {0xcf8a, 0x442c}, + {0xcf8b, 0x75f9}, + {0xcf8c, 0xbda0}, + {0xcf8d, 0xadcd}, + {0xcf8e, 0xc3e9}, + {0xcf8f, 0xbd86}, + {0xcf90, 0xaa98}, + {0xcf91, 0x7da9}, + {0xcf92, 0xab70}, + {0xcf93, 0x8aa5}, + {0xcf94, 0x91e6}, + {0xcf95, 0x6772}, + {0xcf96, 0x5de2}, + {0xcf97, 0xc5a0}, + {0xcf98, 0x69ce}, + {0xcf99, 0x40fe}, + {0xcf9a, 0x5e31}, + {0xcf9b, 0x53c2}, + {0xcf9c, 0x7455}, + {0xcf9d, 0x69ca}, + {0xcf9e, 0x7268}, + {0xcf9f, 0x80e1}, + {0xcfa0, 0x7619}, + {0xcfa1, 0xa63d}, + {0xcfa2, 0xa606}, + {0xcfa3, 0xa5e5}, + {0xcfa4, 0xa616}, + {0xcfa5, 0xa676}, + {0xcfa6, 0xa5d6}, + {0xcfa7, 0xa618}, + {0xcfa8, 0xa664}, + {0xcfa9, 0xa620}, + {0xcfaa, 0xa650}, + {0xcfab, 0xa5e0}, + {0xcfac, 0xa63a}, + {0xcfad, 0xa6e6}, + {0xcfae, 0xa6ce}, + {0xcfaf, 0xa6cc}, + {0xcfb0, 0xa6c9}, + {0xcfb1, 0xa6d1}, + {0xcfb2, 0xa701}, + {0xcfb3, 0xa700}, + {0xcfb4, 0xa6fc}, + {0xcfb5, 0xa729}, + {0xcfb6, 0xa751}, + {0xcfb7, 0xa726}, + {0xcfb8, 0xa730}, + {0xcfb9, 0xa795}, + {0xcfba, 0xa789}, + {0xcfbb, 0xa79a}, + {0xcfbc, 0xa7d6}, + {0xcfbd, 0xa7ca}, + {0xcfbe, 0xa7c4}, + {0xcfbf, 0xa7a1}, + {0xcfc0, 0xa79d}, + {0xcfc1, 0xa7a5}, + {0xcfc2, 0xa7e4}, + {0xcfc3, 0xa7ed}, + {0xcfc4, 0xa7e9}, + {0xcfc5, 0xa7e5}, + {0xcfc6, 0xa81c}, + {0xcfc7, 0xa825}, + {0xcfc8, 0xa801}, + {0xcfc9, 0xa7fd}, + {0xcfca, 0xa82c}, + {0xcfcb, 0xa804}, + {0xcfcc, 0xa864}, + {0xcfcd, 0xa861}, + {0xcfce, 0xa879}, + {0xcfcf, 0xa876}, + {0xcfd0, 0xa85d}, + {0xcfd1, 0xa868}, + {0xcfd2, 0xa860}, + {0xcfd3, 0xa885}, + {0xcfd4, 0xa8b9}, + {0xcfd5, 0xa8ba}, + {0xcfd6, 0xa8f5}, + {0xcfd7, 0xa920}, + {0xcfd8, 0xa8f1}, + {0xcfd9, 0xa924}, + {0xcfda, 0xa914}, + {0xcfdb, 0xa91c}, + {0xcfdc, 0xa8fd}, + {0xcfdd, 0xa90c}, + {0xcfde, 0xa8f9}, + {0xcfdf, 0xa8f6}, + {0xcfe0, 0xa958}, + {0xcfe1, 0xa95c}, + {0xcfe2, 0xa97a}, + {0xcfe3, 0xa959}, + {0xcfe4, 0xa96d}, + {0xcfe5, 0xa971}, + {0xcfe6, 0xa962}, + {0xcfe7, 0xa954}, + {0xcfe8, 0xa98a}, + {0xcfe9, 0xa988}, + {0xcfea, 0xa982}, + {0xcfeb, 0xa99c}, + {0xcfec, 0xa994}, + {0xcfed, 0xa991}, + {0xcfee, 0xa9b5}, + {0xcfef, 0xa9b4}, + {0xcff0, 0xa9c6}, + {0xcff1, 0xa9c0}, + {0xcff2, 0xa9b1}, + {0xcff3, 0xa9b8}, + {0xcff4, 0xa9f5}, + {0xcff5, 0xa9fa}, + {0xcff6, 0xaa1c}, + {0xcff7, 0xa9d8}, + {0xcff8, 0xaa6c}, + {0xcff9, 0xaa30}, + {0xcffa, 0xaa01}, + {0xcffb, 0xa9e4}, + {0xcffc, 0xa9e0}, + {0xcffd, 0xaa4d}, + {0xcffe, 0xaa55}, + {0xd040, 0x8f26}, + {0xd041, 0x846a}, + {0xd042, 0x7a8a}, + {0xd043, 0x50e8}, + {0xd044, 0xaa40}, + {0xd045, 0xc3d4}, + {0xd046, 0x79d0}, + {0xd047, 0x7511}, + {0xd048, 0x79d1}, + {0xd049, 0x864d}, + {0xd04a, 0xb284}, + {0xd04b, 0x87ca}, + {0xd04c, 0x82c0}, + {0xd04d, 0x5a90}, + {0xd04e, 0xb6de}, + {0xd04f, 0x982a}, + {0xd050, 0xa6c2}, + {0xd051, 0x42e9}, + {0xd052, 0x8fb8}, + {0xd053, 0x903d}, + {0xd054, 0x42ea}, + {0xd055, 0x7d35}, + {0xd056, 0x69d4}, + {0xd057, 0xc3fd}, + {0xd058, 0xc54d}, + {0xd059, 0x61d1}, + {0xd05a, 0x8560}, + {0xd05b, 0x8691}, + {0xd05c, 0xc319}, + {0xd05d, 0x7d05}, + {0xd05e, 0x532c}, + {0xd05f, 0x6e99}, + {0xd060, 0x807c}, + {0xd061, 0xa784}, + {0xd062, 0x6ef4}, + {0xd063, 0xbb42}, + {0xd064, 0x8f85}, + {0xd065, 0x78a0}, + {0xd066, 0xae18}, + {0xd067, 0x9850}, + {0xd068, 0x9fe0}, + {0xd069, 0x79fa}, + {0xd06a, 0xa886}, + {0xd06b, 0x603c}, + {0xd06c, 0xa3dd}, + {0xd06d, 0x4d69}, + {0xd06e, 0x47c2}, + {0xd06f, 0xa3e4}, + {0xd070, 0x4d6c}, + {0xd071, 0xc526}, + {0xd072, 0x57c0}, + {0xd073, 0xb8ea}, + {0xd074, 0xb372}, + {0xd075, 0x55d5}, + {0xd076, 0x54c2}, + {0xd077, 0x696e}, + {0xd078, 0xc2d8}, + {0xd079, 0x4c8c}, + {0xd07a, 0xb47e}, + {0xd07b, 0xc310}, + {0xd07c, 0x69f8}, + {0xd07d, 0xc140}, + {0xd07e, 0xaab5}, + {0xd080, 0x90b6}, + {0xd081, 0xc141}, + {0xd082, 0x6e32}, + {0xd083, 0x4429}, + {0xd084, 0x625a}, + {0xd085, 0x90b8}, + {0xd086, 0xa16c}, + {0xd087, 0x78fa}, + {0xd088, 0x3dfc}, + {0xd089, 0xb255}, + {0xd08a, 0xc7a5}, + {0xd08b, 0x3f4a}, + {0xd08c, 0x9525}, + {0xd08d, 0x6ce5}, + {0xd08e, 0x5ea1}, + {0xd08f, 0xae4a}, + {0xd090, 0xc05d}, + {0xd091, 0xb391}, + {0xd092, 0x85c9}, + {0xd093, 0x416c}, + {0xd094, 0x4dcd}, + {0xd095, 0x56ec}, + {0xd096, 0x5c35}, + {0xd097, 0xc219}, + {0xd098, 0xc236}, + {0xd099, 0x90ba}, + {0xd09a, 0xb49a}, + {0xd09b, 0xa149}, + {0xd09c, 0x8240}, + {0xd09d, 0x59c5}, + {0xd09e, 0xae12}, + {0xd09f, 0xbfa9}, + {0xd0a0, 0x8f4d}, + {0xd0a1, 0xaa52}, + {0xd0a2, 0xaa64}, + {0xd0a3, 0xaa6e}, + {0xd0a4, 0xaa65}, + {0xd0a5, 0xaa74}, + {0xd0a6, 0xaa71}, + {0xd0a7, 0xaa6d}, + {0xd0a8, 0xaa92}, + {0xd0a9, 0xaa8d}, + {0xd0aa, 0xaa94}, + {0xd0ab, 0xaa96}, + {0xd0ac, 0xaadd}, + {0xd0ad, 0xaa9a}, + {0xd0ae, 0xaaaa}, + {0xd0af, 0xaac9}, + {0xd0b0, 0xaa9d}, + {0xd0b1, 0xaab9}, + {0xd0b2, 0xaaa1}, + {0xd0b3, 0xaaba}, + {0xd0b4, 0xaaf4}, + {0xd0b5, 0xab20}, + {0xd0b6, 0xab0d}, + {0xd0b7, 0xab6e}, + {0xd0b8, 0xab4e}, + {0xd0b9, 0xab02}, + {0xd0ba, 0xab04}, + {0xd0bb, 0xab31}, + {0xd0bc, 0xab18}, + {0xd0bd, 0xaba6}, + {0xd0be, 0xab89}, + {0xd0bf, 0xab9a}, + {0xd0c0, 0xab8e}, + {0xd0c1, 0xab8a}, + {0xd0c2, 0xab9c}, + {0xd0c3, 0xab88}, + {0xd0c4, 0xab82}, + {0xd0c5, 0xabc0}, + {0xd0c6, 0xabc5}, + {0xd0c7, 0xabd9}, + {0xd0c8, 0xabe4}, + {0xd0c9, 0xabde}, + {0xd0ca, 0xabdd}, + {0xd0cb, 0xabd5}, + {0xd0cc, 0xabfd}, + {0xd0cd, 0xac0d}, + {0xd0ce, 0xac01}, + {0xd0cf, 0xac00}, + {0xd0d0, 0xabfe}, + {0xd0d1, 0xac22}, + {0xd0d2, 0xac29}, + {0xd0d3, 0xac26}, + {0xd0d4, 0xac2a}, + {0xd0d5, 0xac28}, + {0xd0d6, 0xac44}, + {0xd0d7, 0xac42}, + {0xd0d8, 0xac58}, + {0xd0d9, 0xac48}, + {0xd0da, 0xac4e}, + {0xd0db, 0xac5c}, + {0xd0dc, 0xac5e}, + {0xd0dd, 0xac65}, + {0xd0de, 0xac6a}, + {0xd0df, 0xac72}, + {0xd0e0, 0xac99}, + {0xd0e1, 0xad68}, + {0xd0e2, 0xaca8}, + {0xd0e3, 0xac9e}, + {0xd0e4, 0xaca4}, + {0xd0e5, 0xaca2}, + {0xd0e6, 0xace2}, + {0xd0e7, 0xacbc}, + {0xd0e8, 0xace5}, + {0xd0e9, 0xacd1}, + {0xd0ea, 0xace1}, + {0xd0eb, 0xacc9}, + {0xd0ec, 0xad02}, + {0xd0ed, 0xad06}, + {0xd0ee, 0xad6d}, + {0xd0ef, 0xad54}, + {0xd0f0, 0xad3c}, + {0xd0f1, 0xad26}, + {0xd0f2, 0xad2c}, + {0xd0f3, 0xad49}, + {0xd0f4, 0xad3d}, + {0xd0f5, 0xad5e}, + {0xd0f6, 0xad5a}, + {0xd0f7, 0xad51}, + {0xd0f8, 0xad52}, + {0xd0f9, 0xad92}, + {0xd0fa, 0xada0}, + {0xd0fb, 0xad99}, + {0xd0fc, 0xadde}, + {0xd0fd, 0xade0}, + {0xd0fe, 0xadd5}, + {0xd140, 0xb9f6}, + {0xd141, 0x7f41}, + {0xd142, 0x416d}, + {0xd143, 0xffff88b0}, + {0xd144, 0x4759}, + {0xd145, 0x4752}, + {0xd146, 0x706e}, + {0xd147, 0x9171}, + {0xd148, 0x684d}, + {0xd149, 0x67a0}, + {0xd14a, 0x8172}, + {0xd14b, 0x6986}, + {0xd14c, 0x52f0}, + {0xd14d, 0x9226}, + {0xd14e, 0xc3ae}, + {0xd14f, 0x5ba6}, + {0xd150, 0xb5b4}, + {0xd151, 0x6e91}, + {0xd152, 0xac15}, + {0xd153, 0x93c6}, + {0xd154, 0x71c1}, + {0xd155, 0x8401}, + {0xd156, 0x9856}, + {0xd157, 0x6629}, + {0xd158, 0x71f1}, + {0xd159, 0x753e}, + {0xd15a, 0x6d35}, + {0xd15b, 0x95a0}, + {0xd15c, 0x58c9}, + {0xd15d, 0xc065}, + {0xd15e, 0x7919}, + {0xd15f, 0x65a1}, + {0xd160, 0xb4f2}, + {0xd161, 0x423c}, + {0xd162, 0xc4d4}, + {0xd163, 0x98d4}, + {0xd164, 0x90aa}, + {0xd165, 0x753a}, + {0xd166, 0xacae}, + {0xd167, 0x443e}, + {0xd168, 0x71cc}, + {0xd169, 0x9d9a}, + {0xd16a, 0xbb50}, + {0xd16b, 0x78ac}, + {0xd16c, 0x475a}, + {0xd16d, 0x44f5}, + {0xd16e, 0x4816}, + {0xd16f, 0x7714}, + {0xd170, 0x86a2}, + {0xd171, 0x544c}, + {0xd172, 0x5c3c}, + {0xd173, 0xb06d}, + {0xd174, 0x5095}, + {0xd175, 0xc26d}, + {0xd176, 0x8add}, + {0xd177, 0x8a65}, + {0xd178, 0x5ca4}, + {0xd179, 0x6fda}, + {0xd17a, 0x89ec}, + {0xd17b, 0x9e68}, + {0xd17c, 0x9765}, + {0xd17d, 0x567a}, + {0xd17e, 0x47d8}, + {0xd180, 0xab41}, + {0xd181, 0x4f72}, + {0xd182, 0x71d5}, + {0xd183, 0x50f1}, + {0xd184, 0xacb0}, + {0xd185, 0xacb1}, + {0xd186, 0xbb51}, + {0xd187, 0x5712}, + {0xd188, 0xb944}, + {0xd189, 0xa0d5}, + {0xd18a, 0xb071}, + {0xd18b, 0x627c}, + {0xd18c, 0x8675}, + {0xd18d, 0x4c70}, + {0xd18e, 0xbc1a}, + {0xd18f, 0x9bba}, + {0xd190, 0x59d1}, + {0xd191, 0x6118}, + {0xd192, 0x91cc}, + {0xd193, 0xbb54}, + {0xd194, 0x8282}, + {0xd195, 0x6b98}, + {0xd196, 0x43f0}, + {0xd197, 0x3d35}, + {0xd198, 0x9361}, + {0xd199, 0x8406}, + {0xd19a, 0xb6ba}, + {0xd19b, 0x6a10}, + {0xd19c, 0x611c}, + {0xd19d, 0x7078}, + {0xd19e, 0x767d}, + {0xd19f, 0x74e5}, + {0xd1a0, 0x968e}, + {0xd1a1, 0xadf6}, + {0xd1a2, 0xae01}, + {0xd1a3, 0xae11}, + {0xd1a4, 0xae0d}, + {0xd1a5, 0xae38}, + {0xd1a6, 0xae3a}, + {0xd1a7, 0xae44}, + {0xd1a8, 0xae3e}, + {0xd1a9, 0xae61}, + {0xd1aa, 0xae6c}, + {0xd1ab, 0xae8d}, + {0xd1ac, 0xae94}, + {0xd1ad, 0xaeda}, + {0xd1ae, 0xaeb9}, + {0xd1af, 0xaebe}, + {0xd1b0, 0xaeb6}, + {0xd1b1, 0xaeba}, + {0xd1b2, 0xaeb8}, + {0xd1b3, 0xaf09}, + {0xd1b4, 0xaefe}, + {0xd1b5, 0xaefa}, + {0xd1b6, 0xaefc}, + {0xd1b7, 0xaf08}, + {0xd1b8, 0xaf00}, + {0xd1b9, 0xaf21}, + {0xd1ba, 0xaf26}, + {0xd1bb, 0xaf28}, + {0xd1bc, 0xaf2d}, + {0xd1bd, 0xaf22}, + {0xd1be, 0xaf20}, + {0xd1bf, 0xaf42}, + {0xd1c0, 0xaf3d}, + {0xd1c1, 0xaf4a}, + {0xd1c2, 0xaf4e}, + {0xd1c3, 0xaf55}, + {0xd1c4, 0xaf50}, + {0xd1c5, 0xaf64}, + {0xd1c6, 0xaf5d}, + {0xd1c7, 0xaf6c}, + {0xd1c8, 0xaf70}, + {0xd1c9, 0xafa8}, + {0xd1ca, 0xaf98}, + {0xd1cb, 0xafaa}, + {0xd1cc, 0xaf9d}, + {0xd1cd, 0xafa6}, + {0xd1ce, 0xafee}, + {0xd1cf, 0xafd4}, + {0xd1d0, 0xafe9}, + {0xd1d1, 0xb000}, + {0xd1d2, 0xafda}, + {0xd1d3, 0xafd0}, + {0xd1d4, 0xafd8}, + {0xd1d5, 0xb00e}, + {0xd1d6, 0xaff6}, + {0xd1d7, 0xafde}, + {0xd1d8, 0xafdd}, + {0xd1d9, 0xb041}, + {0xd1da, 0xb051}, + {0xd1db, 0xb052}, + {0xd1dc, 0xb04a}, + {0xd1dd, 0xb070}, + {0xd1de, 0xb0ae}, + {0xd1df, 0xb0bd}, + {0xd1e0, 0xb0e2}, + {0xd1e1, 0xb0a0}, + {0xd1e2, 0xb0a9}, + {0xd1e3, 0xb0c6}, + {0xd1e4, 0xb0aa}, + {0xd1e5, 0xb0a8}, + {0xd1e6, 0xb0c0}, + {0xd1e7, 0xb0ac}, + {0xd1e8, 0xb0b9}, + {0xd1e9, 0xb0b1}, + {0xd1ea, 0xb124}, + {0xd1eb, 0xb11a}, + {0xd1ec, 0xb129}, + {0xd1ed, 0xb128}, + {0xd1ee, 0xb13a}, + {0xd1ef, 0xb134}, + {0xd1f0, 0xb13e}, + {0xd1f1, 0xb142}, + {0xd1f2, 0xb135}, + {0xd1f3, 0xb14a}, + {0xd1f4, 0xb138}, + {0xd1f5, 0xb17e}, + {0xd1f6, 0xb174}, + {0xd1f7, 0xb181}, + {0xd1f8, 0xb17a}, + {0xd1f9, 0xb19d}, + {0xd1fa, 0xb1a6}, + {0xd1fb, 0xb1c2}, + {0xd1fc, 0xb1bd}, + {0xd1fd, 0xb1b1}, + {0xd1fe, 0xb1fd}, + {0xd240, 0x7c5c}, + {0xd241, 0xb546}, + {0xd242, 0x4f3e}, + {0xd243, 0xab5d}, + {0xd244, 0xa83a}, + {0xd245, 0xa3ec}, + {0xd246, 0x40a2}, + {0xd247, 0x4349}, + {0xd248, 0x65ce}, + {0xd249, 0x93ca}, + {0xd24a, 0x3db5}, + {0xd24b, 0x3fad}, + {0xd24c, 0x5690}, + {0xd24d, 0x675e}, + {0xd24e, 0xc4b9}, + {0xd24f, 0x6760}, + {0xd250, 0x4b54}, + {0xd251, 0x6511}, + {0xd252, 0x4c7e}, + {0xd253, 0xbc79}, + {0xd254, 0x53b2}, + {0xd255, 0x41f2}, + {0xd256, 0xa9c8}, + {0xd257, 0xaef2}, + {0xd258, 0x40c9}, + {0xd259, 0x910c}, + {0xd25a, 0x7d40}, + {0xd25b, 0x72d9}, + {0xd25c, 0x3c5a}, + {0xd25d, 0xbd81}, + {0xd25e, 0x5c26}, + {0xd25f, 0x435a}, + {0xd260, 0x9b2e}, + {0xd261, 0x84ed}, + {0xd262, 0x4445}, + {0xd263, 0x76bc}, + {0xd264, 0x4ced}, + {0xd265, 0x9824}, + {0xd266, 0x9cca}, + {0xd267, 0x3fda}, + {0xd268, 0x72e0}, + {0xd269, 0x5698}, + {0xd26a, 0xc1e6}, + {0xd26b, 0x9c11}, + {0xd26c, 0x9828}, + {0xd26d, 0xa1e5}, + {0xd26e, 0x9782}, + {0xd26f, 0x3d02}, + {0xd270, 0xaaec}, + {0xd271, 0x420a}, + {0xd272, 0x4639}, + {0xd273, 0x72b4}, + {0xd274, 0x79c9}, + {0xd275, 0xa6f5}, + {0xd276, 0xa851}, + {0xd277, 0x72f2}, + {0xd278, 0xbfd9}, + {0xd279, 0x4c4c}, + {0xd27a, 0x6cc0}, + {0xd27b, 0xbce8}, + {0xd27c, 0x969a}, + {0xd27d, 0x677c}, + {0xd27e, 0xb58a}, + {0xd280, 0x72fd}, + {0xd281, 0xaf6e}, + {0xd282, 0xa5e2}, + {0xd283, 0x5591}, + {0xd284, 0x5705}, + {0xd285, 0x55a9}, + {0xd286, 0x3ce0}, + {0xd287, 0x5e95}, + {0xd288, 0x6495}, + {0xd289, 0x649c}, + {0xd28a, 0x6782}, + {0xd28b, 0x5b02}, + {0xd28c, 0x4035}, + {0xd28d, 0xb0b0}, + {0xd28e, 0x5ba8}, + {0xd28f, 0x6dba}, + {0xd290, 0x882e}, + {0xd291, 0x7dfa}, + {0xd292, 0x7fb4}, + {0xd293, 0x7fb5}, + {0xd294, 0x8065}, + {0xd295, 0x9742}, + {0xd296, 0x999a}, + {0xd297, 0x443d}, + {0xd298, 0xc066}, + {0xd299, 0x6dca}, + {0xd29a, 0x7fc4}, + {0xd29b, 0x9f31}, + {0xd29c, 0x766d}, + {0xd29d, 0xb25e}, + {0xd29e, 0xc26e}, + {0xd29f, 0x6e44}, + {0xd2a0, 0xa6da}, + {0xd2a1, 0xb1f1}, + {0xd2a2, 0xb1c6}, + {0xd2a3, 0xb1f5}, + {0xd2a4, 0xb1da}, + {0xd2a5, 0xb1e4}, + {0xd2a6, 0xb1cd}, + {0xd2a7, 0xb22a}, + {0xd2a8, 0xb232}, + {0xd2a9, 0xb252}, + {0xd2aa, 0xb254}, + {0xd2ab, 0xb270}, + {0xd2ac, 0xb27a}, + {0xd2ad, 0xb27e}, + {0xd2ae, 0xb286}, + {0xd2af, 0xb285}, + {0xd2b0, 0xb29d}, + {0xd2b1, 0xb29a}, + {0xd2b2, 0xb298}, + {0xd2b3, 0xb2a8}, + {0xd2b4, 0xb2ba}, + {0xd2b5, 0xb2a4}, + {0xd2b6, 0xb2a5}, + {0xd2b7, 0xb2a6}, + {0xd2b8, 0xb2c4}, + {0xd2b9, 0xb2aa}, + {0xd2ba, 0xb2bc}, + {0xd2bb, 0xb310}, + {0xd2bc, 0xb32e}, + {0xd2bd, 0xb318}, + {0xd2be, 0xb330}, + {0xd2bf, 0xb32c}, + {0xd2c0, 0xb31d}, + {0xd2c1, 0xb315}, + {0xd2c2, 0xb316}, + {0xd2c3, 0xb3ae}, + {0xd2c4, 0xb360}, + {0xd2c5, 0xb3a4}, + {0xd2c6, 0xb399}, + {0xd2c7, 0xb35c}, + {0xd2c8, 0xb390}, + {0xd2c9, 0xb3b4}, + {0xd2ca, 0xb366}, + {0xd2cb, 0xb36d}, + {0xd2cc, 0xb37c}, + {0xd2cd, 0xb3d0}, + {0xd2ce, 0xb400}, + {0xd2cf, 0xb3f2}, + {0xd2d0, 0xb3f5}, + {0xd2d1, 0xb3e0}, + {0xd2d2, 0xb3de}, + {0xd2d3, 0xb3ea}, + {0xd2d4, 0xb3e1}, + {0xd2d5, 0xb425}, + {0xd2d6, 0xb444}, + {0xd2d7, 0xb45d}, + {0xd2d8, 0xb44c}, + {0xd2d9, 0xb435}, + {0xd2da, 0xb420}, + {0xd2db, 0xb442}, + {0xd2dc, 0xb556}, + {0xd2dd, 0xb4b8}, + {0xd2de, 0xb4f0}, + {0xd2df, 0xb47c}, + {0xd2e0, 0xb432}, + {0xd2e1, 0xb4f1}, + {0xd2e2, 0xb4e6}, + {0xd2e3, 0xb519}, + {0xd2e4, 0xb424}, + {0xd2e5, 0xb41e}, + {0xd2e6, 0xb499}, + {0xd2e7, 0xb4e8}, + {0xd2e8, 0xb465}, + {0xd2e9, 0xb42c}, + {0xd2ea, 0xb49c}, + {0xd2eb, 0xb44a}, + {0xd2ec, 0xb436}, + {0xd2ed, 0xb555}, + {0xd2ee, 0xb4b0}, + {0xd2ef, 0xb464}, + {0xd2f0, 0xb5a5}, + {0xd2f1, 0xb5a6}, + {0xd2f2, 0xb599}, + {0xd2f3, 0xb5ad}, + {0xd2f4, 0xb5a8}, + {0xd2f5, 0xb59c}, + {0xd2f6, 0xb5a2}, + {0xd2f7, 0xb5ea}, + {0xd2f8, 0xb60e}, + {0xd2f9, 0xb60c}, + {0xd2fa, 0xb608}, + {0xd2fb, 0xb63e}, + {0xd2fc, 0xb636}, + {0xd2fd, 0xb638}, + {0xd2fe, 0xb642}, + {0xd340, 0x947d}, + {0xd341, 0xa2e8}, + {0xd342, 0xa768}, + {0xd343, 0x9ee0}, + {0xd344, 0xb95a}, + {0xd345, 0x7315}, + {0xd346, 0x52ad}, + {0xd347, 0x50cd}, + {0xd348, 0x8d95}, + {0xd349, 0x8652}, + {0xd34a, 0x65d9}, + {0xd34b, 0x8106}, + {0xd34c, 0xb71a}, + {0xd34d, 0x5a0d}, + {0xd34e, 0x8fe5}, + {0xd34f, 0xbeee}, + {0xd350, 0x6ac4}, + {0xd351, 0x5b10}, + {0xd352, 0x4da8}, + {0xd353, 0x67ec}, + {0xd354, 0x7bcd}, + {0xd355, 0x8fe6}, + {0xd356, 0x6701}, + {0xd357, 0xa338}, + {0xd358, 0x6e10}, + {0xd359, 0x8fe9}, + {0xd35a, 0x7bd1}, + {0xd35b, 0x7320}, + {0xd35c, 0x95e5}, + {0xd35d, 0x4e12}, + {0xd35e, 0x5b18}, + {0xd35f, 0xb0a2}, + {0xd360, 0x9ed8}, + {0xd361, 0x8ee5}, + {0xd362, 0x6a2d}, + {0xd363, 0x4abd}, + {0xd364, 0xc238}, + {0xd365, 0x458e}, + {0xd366, 0x64c5}, + {0xd367, 0x4cba}, + {0xd368, 0x4e32}, + {0xd369, 0x60fe}, + {0xd36a, 0x9022}, + {0xd36b, 0x58d1}, + {0xd36c, 0x975a}, + {0xd36d, 0x5bf2}, + {0xd36e, 0x69dc}, + {0xd36f, 0x6384}, + {0xd370, 0x8f18}, + {0xd371, 0xabe9}, + {0xd372, 0x8369}, + {0xd373, 0x6458}, + {0xd374, 0x7b15}, + {0xd375, 0xbdec}, + {0xd376, 0x3fbd}, + {0xd377, 0xabf4}, + {0xd378, 0x94d5}, + {0xd379, 0x598e}, + {0xd37a, 0xc2b1}, + {0xd37b, 0xae5d}, + {0xd37c, 0x48e1}, + {0xd37d, 0xa6ac}, + {0xd37e, 0xb3d6}, + {0xd380, 0x7b48}, + {0xd381, 0x6e16}, + {0xd382, 0xa6c0}, + {0xd383, 0xb104}, + {0xd384, 0xa6c6}, + {0xd385, 0xafd9}, + {0xd386, 0x4fbd}, + {0xd387, 0x56e2}, + {0xd388, 0x8ee6}, + {0xd389, 0x8ee8}, + {0xd38a, 0x6906}, + {0xd38b, 0x6571}, + {0xd38c, 0x53e4}, + {0xd38d, 0xaf0a}, + {0xd38e, 0x4f1e}, + {0xd38f, 0x5f81}, + {0xd390, 0x43c1}, + {0xd391, 0x9db4}, + {0xd392, 0xaccd}, + {0xd393, 0x697e}, + {0xd394, 0x4caa}, + {0xd395, 0x916c}, + {0xd396, 0xaf0c}, + {0xd397, 0xb602}, + {0xd398, 0x948d}, + {0xd399, 0x8b0d}, + {0xd39a, 0xa14a}, + {0xd39b, 0x657a}, + {0xd39c, 0xaf0d}, + {0xd39d, 0xb604}, + {0xd39e, 0x521e}, + {0xd39f, 0x54c8}, + {0xd3a0, 0xaf86}, + {0xd3a1, 0xb664}, + {0xd3a2, 0xb688}, + {0xd3a3, 0xb6b4}, + {0xd3a4, 0xb694}, + {0xd3a5, 0xb6c8}, + {0xd3a6, 0xb685}, + {0xd3a7, 0xb6ae}, + {0xd3a8, 0xb6f1}, + {0xd3a9, 0xb6f4}, + {0xd3aa, 0xb6f5}, + {0xd3ab, 0xb6f0}, + {0xd3ac, 0xb708}, + {0xd3ad, 0xb6ea}, + {0xd3ae, 0xb71d}, + {0xd3af, 0xb6ed}, + {0xd3b0, 0xb74c}, + {0xd3b1, 0xb748}, + {0xd3b2, 0xb761}, + {0xd3b3, 0xb75d}, + {0xd3b4, 0xb76c}, + {0xd3b5, 0xb771}, + {0xd3b6, 0xb770}, + {0xd3b7, 0xb79a}, + {0xd3b8, 0xb772}, + {0xd3b9, 0xb775}, + {0xd3ba, 0xb780}, + {0xd3bb, 0xb7dc}, + {0xd3bc, 0xb7d9}, + {0xd3bd, 0xb7b8}, + {0xd3be, 0xb7ba}, + {0xd3bf, 0xb7c5}, + {0xd3c0, 0xb7b5}, + {0xd3c1, 0xb7c9}, + {0xd3c2, 0xb7bd}, + {0xd3c3, 0xb7e4}, + {0xd3c4, 0xb7f5}, + {0xd3c5, 0xb7ec}, + {0xd3c6, 0xb7f6}, + {0xd3c7, 0xb7ee}, + {0xd3c8, 0xb80e}, + {0xd3c9, 0xb810}, + {0xd3ca, 0xb819}, + {0xd3cb, 0xb831}, + {0xd3cc, 0xb818}, + {0xd3cd, 0xb81c}, + {0xd3ce, 0xb83c}, + {0xd3cf, 0xb861}, + {0xd3d0, 0xb85c}, + {0xd3d1, 0xb85a}, + {0xd3d2, 0xb886}, + {0xd3d3, 0xb889}, + {0xd3d4, 0xb8aa}, + {0xd3d5, 0xb89d}, + {0xd3d6, 0xb884}, + {0xd3d7, 0xb888}, + {0xd3d8, 0xb8b8}, + {0xd3d9, 0xb8c2}, + {0xd3da, 0xb8d0}, + {0xd3db, 0xb8e8}, + {0xd3dc, 0xb932}, + {0xd3dd, 0xb939}, + {0xd3de, 0xb930}, + {0xd3df, 0xb942}, + {0xd3e0, 0xb8dc}, + {0xd3e1, 0xb8f2}, + {0xd3e2, 0xb928}, + {0xd3e3, 0xb8ec}, + {0xd3e4, 0xb91d}, + {0xd3e5, 0xb8c6}, + {0xd3e6, 0xb909}, + {0xd3e7, 0xb90e}, + {0xd3e8, 0xb8d2}, + {0xd3e9, 0xb8fe}, + {0xd3ea, 0xb984}, + {0xd3eb, 0xb979}, + {0xd3ec, 0xb97e}, + {0xd3ed, 0xb98a}, + {0xd3ee, 0xb97d}, + {0xd3ef, 0xb98c}, + {0xd3f0, 0xb980}, + {0xd3f1, 0xb9c2}, + {0xd3f2, 0xb9ed}, + {0xd3f3, 0xb9c9}, + {0xd3f4, 0xb9d4}, + {0xd3f5, 0xb9c5}, + {0xd3f6, 0xba14}, + {0xd3f7, 0xba04}, + {0xd3f8, 0xb9e0}, + {0xd3f9, 0xba09}, + {0xd3fa, 0xba1e}, + {0xd3fb, 0xb9f2}, + {0xd3fc, 0xb9d9}, + {0xd3fd, 0xb9d2}, + {0xd3fe, 0xba28}, + {0xd440, 0xb1b5}, + {0xd441, 0x99ee}, + {0xd442, 0x95d5}, + {0xd443, 0xb60d}, + {0xd444, 0xab98}, + {0xd445, 0x6dbd}, + {0xd446, 0xaa4e}, + {0xd447, 0x831a}, + {0xd448, 0x45fc}, + {0xd449, 0xb838}, + {0xd44a, 0xc1d6}, + {0xd44b, 0xac59}, + {0xd44c, 0x5432}, + {0xd44d, 0xabc6}, + {0xd44e, 0x455c}, + {0xd44f, 0x9552}, + {0xd450, 0xaff4}, + {0xd451, 0x92ea}, + {0xd452, 0xc52e}, + {0xd453, 0xad16}, + {0xd454, 0xb4b2}, + {0xd455, 0xb4b4}, + {0xd456, 0x9a70}, + {0xd457, 0x46e5}, + {0xd458, 0x5e2c}, + {0xd459, 0x95a1}, + {0xd45a, 0x5e66}, + {0xd45b, 0xad61}, + {0xd45c, 0xc068}, + {0xd45d, 0xc456}, + {0xd45e, 0xc111}, + {0xd45f, 0x59f8}, + {0xd460, 0xc62d}, + {0xd461, 0xbe71}, + {0xd462, 0x5a6c}, + {0xd463, 0x5706}, + {0xd464, 0x6742}, + {0xd465, 0x4f65}, + {0xd466, 0x78a5}, + {0xd467, 0x4e34}, + {0xd468, 0xb1a0}, + {0xd469, 0x82e1}, + {0xd46a, 0x861c}, + {0xd46b, 0xc384}, + {0xd46c, 0x57e2}, + {0xd46d, 0xb4d5}, + {0xd46e, 0x6ced}, + {0xd46f, 0xb25a}, + {0xd470, 0xbe39}, + {0xd471, 0xa174}, + {0xd472, 0xb3a1}, + {0xd473, 0x8fc5}, + {0xd474, 0xbf72}, + {0xd475, 0x88da}, + {0xd476, 0x3f70}, + {0xd477, 0xac61}, + {0xd478, 0x8f5c}, + {0xd479, 0x3cbd}, + {0xd47a, 0x4be0}, + {0xd47b, 0xc70e}, + {0xd47c, 0x9d6c}, + {0xd47d, 0xc411}, + {0xd47e, 0x4a0a}, + {0xd480, 0xbfb9}, + {0xd481, 0xb7d1}, + {0xd482, 0xad1a}, + {0xd483, 0xaedd}, + {0xd484, 0xb4f4}, + {0xd485, 0x6236}, + {0xd486, 0x5e72}, + {0xd487, 0x975c}, + {0xd488, 0x43e8}, + {0xd489, 0xaa7a}, + {0xd48a, 0x9681}, + {0xd48b, 0x5eda}, + {0xd48c, 0x440a}, + {0xd48d, 0x5a02}, + {0xd48e, 0x5bf4}, + {0xd48f, 0x9024}, + {0xd490, 0x62ee}, + {0xd491, 0x69a0}, + {0xd492, 0x6100}, + {0xd493, 0x5762}, + {0xd494, 0xa98e}, + {0xd495, 0xa2e0}, + {0xd496, 0x95a9}, + {0xd497, 0x4818}, + {0xd498, 0x5030}, + {0xd499, 0x7f4c}, + {0xd49a, 0x8116}, + {0xd49b, 0x5299}, + {0xd49c, 0x6276}, + {0xd49d, 0xb008}, + {0xd49e, 0xac5a}, + {0xd49f, 0x5ae8}, + {0xd4a0, 0x5330}, + {0xd4a1, 0xb9e4}, + {0xd4a2, 0xba06}, + {0xd4a3, 0xba12}, + {0xd4a4, 0xb9e8}, + {0xd4a5, 0xba4a}, + {0xd4a6, 0xb9c4}, + {0xd4a7, 0xbaa4}, + {0xd4a8, 0xbaaa}, + {0xd4a9, 0xba9e}, + {0xd4aa, 0xbace}, + {0xd4ab, 0xbada}, + {0xd4ac, 0xbae6}, + {0xd4ad, 0xbae0}, + {0xd4ae, 0xbaed}, + {0xd4af, 0xbb0d}, + {0xd4b0, 0xbad5}, + {0xd4b1, 0xbad4}, + {0xd4b2, 0xbae2}, + {0xd4b3, 0xbb05}, + {0xd4b4, 0xbb02}, + {0xd4b5, 0xbaf1}, + {0xd4b6, 0xbb2c}, + {0xd4b7, 0xbb3c}, + {0xd4b8, 0xbb4e}, + {0xd4b9, 0xbb3d}, + {0xd4ba, 0xbb3e}, + {0xd4bb, 0xbb59}, + {0xd4bc, 0xbb5c}, + {0xd4bd, 0xbb8c}, + {0xd4be, 0xbb86}, + {0xd4bf, 0xbb76}, + {0xd4c0, 0xbb70}, + {0xd4c1, 0xbb8a}, + {0xd4c2, 0xbb65}, + {0xd4c3, 0xbb79}, + {0xd4c4, 0xbb80}, + {0xd4c5, 0xbbe9}, + {0xd4c6, 0xbbce}, + {0xd4c7, 0xbbe4}, + {0xd4c8, 0xbbd1}, + {0xd4c9, 0xbc0d}, + {0xd4ca, 0xbc04}, + {0xd4cb, 0xbc28}, + {0xd4cc, 0xbc46}, + {0xd4cd, 0xbc31}, + {0xd4ce, 0xbc2e}, + {0xd4cf, 0xbc40}, + {0xd4d0, 0xbc25}, + {0xd4d1, 0xbc5a}, + {0xd4d2, 0xbc70}, + {0xd4d3, 0xbc6d}, + {0xd4d4, 0xbc8a}, + {0xd4d5, 0xbc89}, + {0xd4d6, 0xbc82}, + {0xd4d7, 0xbc94}, + {0xd4d8, 0xbc95}, + {0xd4d9, 0xbc9e}, + {0xd4da, 0xbca0}, + {0xd4db, 0xbcb4}, + {0xd4dc, 0xbcbe}, + {0xd4dd, 0xbcca}, + {0xd4de, 0xbcd1}, + {0xd4df, 0xbcf1}, + {0xd4e0, 0xbd04}, + {0xd4e1, 0xbd06}, + {0xd4e2, 0xbd0e}, + {0xd4e3, 0xbd11}, + {0xd4e4, 0xbd18}, + {0xd4e5, 0xbd2a}, + {0xd4e6, 0xbd1d}, + {0xd4e7, 0xbd1c}, + {0xd4e8, 0xbd26}, + {0xd4e9, 0xbd20}, + {0xd4ea, 0xbd45}, + {0xd4eb, 0xbd3d}, + {0xd4ec, 0xbd34}, + {0xd4ed, 0xbd30}, + {0xd4ee, 0xbd2d}, + {0xd4ef, 0xbd40}, + {0xd4f0, 0xbd52}, + {0xd4f1, 0xbd4e}, + {0xd4f2, 0xbd4a}, + {0xd4f3, 0xbd51}, + {0xd4f4, 0xbd9a}, + {0xd4f5, 0xbda5}, + {0xd4f6, 0xbdb2}, + {0xd4f7, 0xbdb4}, + {0xd4f8, 0xbdae}, + {0xd4f9, 0xbdc9}, + {0xd4fa, 0xbdf5}, + {0xd4fb, 0xbdd9}, + {0xd4fc, 0xbddc}, + {0xd4fd, 0xbdf6}, + {0xd4fe, 0xbdf9}, + {0xd540, 0x415c}, + {0xd541, 0x9f28}, + {0xd542, 0xb3aa}, + {0xd543, 0x743c}, + {0xd544, 0xc3b8}, + {0xd545, 0x70e9}, + {0xd546, 0x7085}, + {0xd547, 0xa509}, + {0xd548, 0x65ba}, + {0xd549, 0xc270}, + {0xd54a, 0x917e}, + {0xd54b, 0x4ad5}, + {0xd54c, 0x737c}, + {0xd54d, 0x522a}, + {0xd54e, 0x70f6}, + {0xd54f, 0xa66a}, + {0xd550, 0x9fa9}, + {0xd551, 0x4cbe}, + {0xd552, 0x3e6c}, + {0xd553, 0x445d}, + {0xd554, 0xb8ae}, + {0xd555, 0x6fec}, + {0xd556, 0x8d2c}, + {0xd557, 0x8d92}, + {0xd558, 0x987e}, + {0xd559, 0x3bbe}, + {0xd55a, 0xb9ad}, + {0xd55b, 0xaa7e}, + {0xd55c, 0x46ad}, + {0xd55d, 0x6a0c}, + {0xd55e, 0xa92c}, + {0xd55f, 0xa50d}, + {0xd560, 0xa5c0}, + {0xd561, 0x5882}, + {0xd562, 0x99f4}, + {0xd563, 0x422d}, + {0xd564, 0x62fc}, + {0xd565, 0x6b55}, + {0xd566, 0x98f4}, + {0xd567, 0xc0a1}, + {0xd568, 0x98f5}, + {0xd569, 0x5096}, + {0xd56a, 0x60bd}, + {0xd56b, 0x4550}, + {0xd56c, 0x98c2}, + {0xd56d, 0x69b4}, + {0xd56e, 0x6fc2}, + {0xd56f, 0x8f69}, + {0xd570, 0x4aa2}, + {0xd571, 0xaa51}, + {0xd572, 0x9b1d}, + {0xd573, 0xa2aa}, + {0xd574, 0xa892}, + {0xd575, 0x5479}, + {0xd576, 0x46f4}, + {0xd577, 0x9bf2}, + {0xd578, 0xb520}, + {0xd579, 0x822a}, + {0xd57a, 0xb626}, + {0xd57b, 0x4f30}, + {0xd57c, 0x87d9}, + {0xd57d, 0xc584}, + {0xd57e, 0x44b5}, + {0xd580, 0x45dc}, + {0xd581, 0xc525}, + {0xd582, 0x65c2}, + {0xd583, 0x89fc}, + {0xd584, 0x9c92}, + {0xd585, 0xc512}, + {0xd586, 0xa395}, + {0xd587, 0x6c4a}, + {0xd588, 0x8e45}, + {0xd589, 0x5009}, + {0xd58a, 0xc114}, + {0xd58b, 0xbd74}, + {0xd58c, 0xc6c8}, + {0xd58d, 0x8baa}, + {0xd58e, 0xc585}, + {0xd58f, 0x772e}, + {0xd590, 0x67c9}, + {0xd591, 0x48d9}, + {0xd592, 0xa7f4}, + {0xd593, 0x7bb2}, + {0xd594, 0x95d9}, + {0xd595, 0x40a0}, + {0xd596, 0x610a}, + {0xd597, 0x8828}, + {0xd598, 0xb94d}, + {0xd599, 0x4f79}, + {0xd59a, 0xacf2}, + {0xd59b, 0x8832}, + {0xd59c, 0x9776}, + {0xd59d, 0xadc0}, + {0xd59e, 0x9778}, + {0xd59f, 0x6388}, + {0xd5a0, 0x610c}, + {0xd5a1, 0xbe01}, + {0xd5a2, 0xbdfe}, + {0xd5a3, 0xbe11}, + {0xd5a4, 0xbe2e}, + {0xd5a5, 0xbe3d}, + {0xd5a6, 0xbdd1}, + {0xd5a7, 0xbe25}, + {0xd5a8, 0xbe30}, + {0xd5a9, 0xbe28}, + {0xd5aa, 0xbe4d}, + {0xd5ab, 0xbe46}, + {0xd5ac, 0xbe55}, + {0xd5ad, 0xbe58}, + {0xd5ae, 0xbe5c}, + {0xd5af, 0xbe60}, + {0xd5b0, 0xbe8a}, + {0xd5b1, 0xbe66}, + {0xd5b2, 0xbe75}, + {0xd5b3, 0xbe6c}, + {0xd5b4, 0xbe65}, + {0xd5b5, 0xbea2}, + {0xd5b6, 0xbe9e}, + {0xd5b7, 0xbeb5}, + {0xd5b8, 0xbea4}, + {0xd5b9, 0xbea1}, + {0xd5ba, 0xbef2}, + {0xd5bb, 0xbed0}, + {0xd5bc, 0xbecc}, + {0xd5bd, 0xbece}, + {0xd5be, 0xbed2}, + {0xd5bf, 0xbedc}, + {0xd5c0, 0xbed8}, + {0xd5c1, 0xbf0c}, + {0xd5c2, 0xbefa}, + {0xd5c3, 0xbf00}, + {0xd5c4, 0xbf02}, + {0xd5c5, 0xbef6}, + {0xd5c6, 0xbf1a}, + {0xd5c7, 0xbf18}, + {0xd5c8, 0xbf28}, + {0xd5c9, 0xbf22}, + {0xd5ca, 0xbf26}, + {0xd5cb, 0xbf2c}, + {0xd5cc, 0xbf24}, + {0xd5cd, 0xbf2a}, + {0xd5ce, 0xbf3d}, + {0xd5cf, 0xbf32}, + {0xd5d0, 0xbf45}, + {0xd5d1, 0xbf46}, + {0xd5d2, 0xbf56}, + {0xd5d3, 0xbf58}, + {0xd5d4, 0xbf68}, + {0xd5d5, 0xbf79}, + {0xd5d6, 0xbf7a}, + {0xd5d7, 0xbf5e}, + {0xd5d8, 0xbf80}, + {0xd5d9, 0xbf5d}, + {0xd5da, 0xbf91}, + {0xd5db, 0xbf95}, + {0xd5dc, 0xbfa5}, + {0xd5dd, 0xbfb8}, + {0xd5de, 0xbfc9}, + {0xd5df, 0xbfdd}, + {0xd5e0, 0xbfde}, + {0xd5e1, 0xbfee}, + {0xd5e2, 0xbfe4}, + {0xd5e3, 0xbfe8}, + {0xd5e4, 0xc000}, + {0xd5e5, 0xc020}, + {0xd5e6, 0xc00c}, + {0xd5e7, 0xc024}, + {0xd5e8, 0xc00d}, + {0xd5e9, 0xc03c}, + {0xd5ea, 0xbff9}, + {0xd5eb, 0xbffc}, + {0xd5ec, 0xbffd}, + {0xd5ed, 0xc050}, + {0xd5ee, 0xc05a}, + {0xd5ef, 0xc04c}, + {0xd5f0, 0xc0a9}, + {0xd5f1, 0xc08a}, + {0xd5f2, 0xc0a8}, + {0xd5f3, 0xc07d}, + {0xd5f4, 0xc0e0}, + {0xd5f5, 0xc0c1}, + {0xd5f6, 0xc0d1}, + {0xd5f7, 0xc0b9}, + {0xd5f8, 0xc0c4}, + {0xd5f9, 0xc0b5}, + {0xd5fa, 0xc0ba}, + {0xd5fb, 0xc102}, + {0xd5fc, 0xc0f9}, + {0xd5fd, 0xc104}, + {0xd5fe, 0xc10d}, + {0xd640, 0x52ae}, + {0xd641, 0xc31a}, + {0xd642, 0x4e88}, + {0xd643, 0xaae2}, + {0xd644, 0x5689}, + {0xd645, 0x89b2}, + {0xd646, 0x9f91}, + {0xd647, 0x67d5}, + {0xd648, 0x8ae6}, + {0xd649, 0xba59}, + {0xd64a, 0xc5f2}, + {0xd64b, 0xc498}, + {0xd64c, 0xa714}, + {0xd64d, 0x6316}, + {0xd64e, 0xb5d5}, + {0xd64f, 0x3bc4}, + {0xd650, 0xa899}, + {0xd651, 0x82a5}, + {0xd652, 0x4611}, + {0xd653, 0x5595}, + {0xd654, 0xc3c2}, + {0xd655, 0xb165}, + {0xd656, 0xb0e4}, + {0xd657, 0x6210}, + {0xd658, 0xadc1}, + {0xd659, 0x58e4}, + {0xd65a, 0x854d}, + {0xd65b, 0x89fe}, + {0xd65c, 0x81c0}, + {0xd65d, 0xb2ec}, + {0xd65e, 0xa3e5}, + {0xd65f, 0xabf0}, + {0xd660, 0x9ddc}, + {0xd661, 0xc34c}, + {0xd662, 0x94ae}, + {0xd663, 0x890e}, + {0xd664, 0x71a2}, + {0xd665, 0x623a}, + {0xd666, 0x63e0}, + {0xd667, 0x58aa}, + {0xd668, 0xb71c}, + {0xd669, 0x7f50}, + {0xd66a, 0xaa5e}, + {0xd66b, 0x7fe0}, + {0xd66c, 0xa718}, + {0xd66d, 0x8c9e}, + {0xd66e, 0x45de}, + {0xd66f, 0xae86}, + {0xd670, 0x9e32}, + {0xd671, 0x9aad}, + {0xd672, 0x3da1}, + {0xd673, 0x4736}, + {0xd674, 0x8bb1}, + {0xd675, 0x977d}, + {0xd676, 0x683c}, + {0xd677, 0xbb1d}, + {0xd678, 0xab5e}, + {0xd679, 0xaa2a}, + {0xd67a, 0x9d80}, + {0xd67b, 0xb210}, + {0xd67c, 0xb211}, + {0xd67d, 0xc168}, + {0xd67e, 0xb969}, + {0xd680, 0x4084}, + {0xd681, 0x4ab2}, + {0xd682, 0x74f2}, + {0xd683, 0x8134}, + {0xd684, 0x8135}, + {0xd685, 0x94d6}, + {0xd686, 0xbfd0}, + {0xd687, 0x811d}, + {0xd688, 0x676c}, + {0xd689, 0xbd82}, + {0xd68a, 0xc714}, + {0xd68b, 0x768e}, + {0xd68c, 0x7a22}, + {0xd68d, 0x430a}, + {0xd68e, 0x8592}, + {0xd68f, 0x5c58}, + {0xd690, 0xa6e8}, + {0xd691, 0xc598}, + {0xd692, 0x3c42}, + {0xd693, 0x3c7c}, + {0xd694, 0x6a6e}, + {0xd695, 0xbfd1}, + {0xd696, 0xb3d2}, + {0xd697, 0x600a}, + {0xd698, 0x6860}, + {0xd699, 0x7d6c}, + {0xd69a, 0x457c}, + {0xd69b, 0x5d92}, + {0xd69c, 0x60e0}, + {0xd69d, 0x44c1}, + {0xd69e, 0xacf5}, + {0xd69f, 0xbdc1}, + {0xd6a0, 0x93c4}, + {0xd6a1, 0xc10c}, + {0xd6a2, 0xc10e}, + {0xd6a3, 0xc109}, + {0xd6a4, 0xc106}, + {0xd6a5, 0xc129}, + {0xd6a6, 0xc130}, + {0xd6a7, 0xc125}, + {0xd6a8, 0xc12a}, + {0xd6a9, 0xc160}, + {0xd6aa, 0xc131}, + {0xd6ab, 0xc134}, + {0xd6ac, 0xc14c}, + {0xd6ad, 0xc128}, + {0xd6ae, 0xc122}, + {0xd6af, 0xc132}, + {0xd6b0, 0xc181}, + {0xd6b1, 0xc175}, + {0xd6b2, 0xc184}, + {0xd6b3, 0xc185}, + {0xd6b4, 0xc171}, + {0xd6b5, 0xc179}, + {0xd6b6, 0xc172}, + {0xd6b7, 0xc1b6}, + {0xd6b8, 0xc1c9}, + {0xd6b9, 0xc1a9}, + {0xd6ba, 0xc1d8}, + {0xd6bb, 0xc1aa}, + {0xd6bc, 0xc1b1}, + {0xd6bd, 0xc1be}, + {0xd6be, 0xc1ec}, + {0xd6bf, 0xc211}, + {0xd6c0, 0xc229}, + {0xd6c1, 0xc1e9}, + {0xd6c2, 0xc218}, + {0xd6c3, 0xc25a}, + {0xd6c4, 0xc1f6}, + {0xd6c5, 0xc1fe}, + {0xd6c6, 0xc1f1}, + {0xd6c7, 0xc245}, + {0xd6c8, 0xc216}, + {0xd6c9, 0xc258}, + {0xd6ca, 0xc1fa}, + {0xd6cb, 0xc1f9}, + {0xd6cc, 0xc22e}, + {0xd6cd, 0xc246}, + {0xd6ce, 0xc1f8}, + {0xd6cf, 0xc232}, + {0xd6d0, 0xc2c5}, + {0xd6d1, 0xc2d6}, + {0xd6d2, 0xc2d0}, + {0xd6d3, 0xc2d9}, + {0xd6d4, 0xc2dd}, + {0xd6d5, 0xc2d4}, + {0xd6d6, 0xc2f6}, + {0xd6d7, 0xc2f5}, + {0xd6d8, 0x47d0}, + {0xd6d9, 0xc306}, + {0xd6da, 0xc308}, + {0xd6db, 0xc31e}, + {0xd6dc, 0xc322}, + {0xd6dd, 0xc31d}, + {0xd6de, 0xc326}, + {0xd6df, 0xc320}, + {0xd6e0, 0xc33d}, + {0xd6e1, 0xc352}, + {0xd6e2, 0xc358}, + {0xd6e3, 0xc359}, + {0xd6e4, 0xc36d}, + {0xd6e5, 0xc379}, + {0xd6e6, 0xc36e}, + {0xd6e7, 0xc374}, + {0xd6e8, 0xc394}, + {0xd6e9, 0xc3a9}, + {0xd6ea, 0xc3a8}, + {0xd6eb, 0xc3b5}, + {0xd6ec, 0xc39c}, + {0xd6ed, 0xc3ac}, + {0xd6ee, 0xc3aa}, + {0xd6ef, 0xc3a0}, + {0xd6f0, 0xc3e0}, + {0xd6f1, 0xc3d5}, + {0xd6f2, 0xc3dd}, + {0xd6f3, 0xc410}, + {0xd6f4, 0xc405}, + {0xd6f5, 0xc418}, + {0xd6f6, 0xc414}, + {0xd6f7, 0xc402}, + {0xd6f8, 0xc44d}, + {0xd6f9, 0xc436}, + {0xd6fa, 0xc422}, + {0xd6fb, 0xc44e}, + {0xd6fc, 0xc431}, + {0xd6fd, 0xc45c}, + {0xd6fe, 0xc455}, + {0xd740, 0xa6ad}, + {0xd741, 0xbdee}, + {0xd742, 0x514c}, + {0xd743, 0xc11e}, + {0xd744, 0x82ed}, + {0xd745, 0x72e1}, + {0xd746, 0x523a}, + {0xd747, 0xb768}, + {0xd748, 0x6e06}, + {0xd749, 0x6482}, + {0xd74a, 0xc774}, + {0xd74b, 0x68f8}, + {0xd74c, 0x4221}, + {0xd74d, 0x6334}, + {0xd74e, 0xc4bc}, + {0xd74f, 0x813c}, + {0xd750, 0xbda9}, + {0xd751, 0xbe0c}, + {0xd752, 0x96e0}, + {0xd753, 0x8d0d}, + {0xd754, 0x9ca8}, + {0xd755, 0xbdaa}, + {0xd756, 0x89ba}, + {0xd757, 0x9638}, + {0xd758, 0xadd0}, + {0xd759, 0xbd42}, + {0xd75a, 0x9cad}, + {0xd75b, 0x4cf9}, + {0xd75c, 0x9b38}, + {0xd75d, 0xa84a}, + {0xd75e, 0x6486}, + {0xd75f, 0x692a}, + {0xd760, 0x769e}, + {0xd761, 0x84fe}, + {0xd762, 0xb352}, + {0xd763, 0x3b62}, + {0xd764, 0xbe90}, + {0xd765, 0x62b5}, + {0xd766, 0x6336}, + {0xd767, 0xb578}, + {0xd768, 0xb579}, + {0xd769, 0x94b6}, + {0xd76a, 0x9102}, + {0xd76b, 0x850e}, + {0xd76c, 0x8c24}, + {0xd76d, 0x514e}, + {0xd76e, 0x9c0e}, + {0xd76f, 0x60a8}, + {0xd770, 0xc350}, + {0xd771, 0x5de4}, + {0xd772, 0x3b9a}, + {0xd773, 0xb6d9}, + {0xd774, 0x670c}, + {0xd775, 0xba7c}, + {0xd776, 0x677a}, + {0xd777, 0x6342}, + {0xd778, 0x50b0}, + {0xd779, 0xbfd8}, + {0xd77a, 0xadd2}, + {0xd77b, 0xbce4}, + {0xd77c, 0x7458}, + {0xd77d, 0x95e6}, + {0xd77e, 0xa402}, + {0xd780, 0x44ca}, + {0xd781, 0x7632}, + {0xd782, 0xb3d9}, + {0xd783, 0x4055}, + {0xd784, 0xbfda}, + {0xd785, 0xb105}, + {0xd786, 0x52bd}, + {0xd787, 0x4832}, + {0xd788, 0xa406}, + {0xd789, 0x4834}, + {0xd78a, 0xb274}, + {0xd78b, 0x4492}, + {0xd78c, 0x9104}, + {0xd78d, 0xb661}, + {0xd78e, 0x72fa}, + {0xd78f, 0x463d}, + {0xd790, 0xaaf1}, + {0xd791, 0x8470}, + {0xd792, 0x6140}, + {0xd793, 0xbce9}, + {0xd794, 0xb592}, + {0xd795, 0x4d01}, + {0xd796, 0xbe9c}, + {0xd797, 0xb114}, + {0xd798, 0x50bd}, + {0xd799, 0xa135}, + {0xd79a, 0x914d}, + {0xd79b, 0xac4a}, + {0xd79c, 0xac60}, + {0xd79d, 0x3f25}, + {0xd79e, 0xc329}, + {0xd79f, 0x95d0}, + {0xd7a0, 0xacd2}, + {0xd7a1, 0xc421}, + {0xd7a2, 0xc42e}, + {0xd7a3, 0xc43c}, + {0xd7a4, 0xc434}, + {0xd7a5, 0xc47d}, + {0xd7a6, 0xc484}, + {0xd7a7, 0xc485}, + {0xd7a8, 0xc488}, + {0xd7a9, 0xc48c}, + {0xd7aa, 0xc49e}, + {0xd7ab, 0xc4b4}, + {0xd7ac, 0xc4b2}, + {0xd7ad, 0xc4b5}, + {0xd7ae, 0xc4cc}, + {0xd7af, 0xc4c4}, + {0xd7b0, 0xc4d1}, + {0xd7b1, 0xc4c2}, + {0xd7b2, 0xc4e4}, + {0xd7b3, 0xc4d9}, + {0xd7b4, 0xc4dc}, + {0xd7b5, 0xc4f0}, + {0xd7b6, 0xc4f1}, + {0xd7b7, 0xc4e8}, + {0xd7b8, 0xc510}, + {0xd7b9, 0xc4fa}, + {0xd7ba, 0xc4fe}, + {0xd7bb, 0xc522}, + {0xd7bc, 0xc528}, + {0xd7bd, 0xc53a}, + {0xd7be, 0xc535}, + {0xd7bf, 0xc534}, + {0xd7c0, 0xc53c}, + {0xd7c1, 0xc574}, + {0xd7c2, 0xc558}, + {0xd7c3, 0xc561}, + {0xd7c4, 0xc566}, + {0xd7c5, 0xc56c}, + {0xd7c6, 0xc554}, + {0xd7c7, 0xc55a}, + {0xd7c8, 0xc5b1}, + {0xd7c9, 0xc5b2}, + {0xd7ca, 0xc5c0}, + {0xd7cb, 0xc5b5}, + {0xd7cc, 0xc5d2}, + {0xd7cd, 0xc5c2}, + {0xd7ce, 0xc5ac}, + {0xd7cf, 0xc628}, + {0xd7d0, 0xc5a8}, + {0xd7d1, 0xc608}, + {0xd7d2, 0xc62a}, + {0xd7d3, 0xc609}, + {0xd7d4, 0xc632}, + {0xd7d5, 0xc640}, + {0xd7d6, 0xc631}, + {0xd7d7, 0xc680}, + {0xd7d8, 0xc65a}, + {0xd7d9, 0xc675}, + {0xd7da, 0xc64c}, + {0xd7db, 0xc650}, + {0xd7dc, 0xc689}, + {0xd7dd, 0xc6a4}, + {0xd7de, 0xc6b6}, + {0xd7df, 0xc6d4}, + {0xd7e0, 0xc6d9}, + {0xd7e1, 0xc6da}, + {0xd7e2, 0xc6e1}, + {0xd7e3, 0xc6e8}, + {0xd7e4, 0xc6ec}, + {0xd7e5, 0xc6f1}, + {0xd7e6, 0xc70a}, + {0xd7e7, 0xc702}, + {0xd7e8, 0xc704}, + {0xd7e9, 0xc705}, + {0xd7ea, 0xc729}, + {0xd7eb, 0xc722}, + {0xd7ec, 0xc73c}, + {0xd7ed, 0xc752}, + {0xd7ee, 0xc749}, + {0xd7ef, 0xc74d}, + {0xd7f0, 0xc760}, + {0xd7f1, 0xc762}, + {0xd7f2, 0xc77a}, + {0xd7f3, 0xc78d}, + {0xd7f4, 0xc78e}, + {0xd7f5, 0xc79e}, + {0xd7f6, 0xc7a9}, + {0xd7f7, 0xc794}, + {0xd7f8, 0xc795}, + {0xd7f9, 0xc7a4}, + {0xd7fa, 0xffffe810}, + {0xd7fb, 0xffffe811}, + {0xd7fc, 0xffffe812}, + {0xd7fd, 0xffffe813}, + {0xd7fe, 0xffffe814}, + {0xd840, 0x8b88}, + {0xd841, 0x5f4d}, + {0xd842, 0xa78d}, + {0xd843, 0x64d4}, + {0xd844, 0x5f64}, + {0xd845, 0x5cfe}, + {0xd846, 0x5f15}, + {0xd847, 0xa69c}, + {0xd848, 0xa69d}, + {0xd849, 0x776c}, + {0xd84a, 0x5d48}, + {0xd84b, 0x50b1}, + {0xd84c, 0x79d4}, + {0xd84d, 0x8aca}, + {0xd84e, 0x7540}, + {0xd84f, 0x4d96}, + {0xd850, 0x3ee2}, + {0xd851, 0x9869}, + {0xd852, 0xa93d}, + {0xd853, 0x5568}, + {0xd854, 0xc2b8}, + {0xd855, 0xc2c4}, + {0xd856, 0xb115}, + {0xd857, 0xb116}, + {0xd858, 0x48b5}, + {0xd859, 0x6261}, + {0xd85a, 0xa11e}, + {0xd85b, 0xb4b5}, + {0xd85c, 0xb4b6}, + {0xd85d, 0x66b5}, + {0xd85e, 0x3ca4}, + {0xd85f, 0x5fc9}, + {0xd860, 0x5289}, + {0xd861, 0x4869}, + {0xd862, 0x66d5}, + {0xd863, 0x6fd1}, + {0xd864, 0x5764}, + {0xd865, 0x6cf8}, + {0xd866, 0x55f2}, + {0xd867, 0xa66c}, + {0xd868, 0x40e9}, + {0xd869, 0xc3c4}, + {0xd86a, 0x6636}, + {0xd86b, 0x54fc}, + {0xd86c, 0xa69e}, + {0xd86d, 0x41f4}, + {0xd86e, 0xa41d}, + {0xd86f, 0x616d}, + {0xd870, 0x4e0e}, + {0xd871, 0xc67c}, + {0xd872, 0x5501}, + {0xd873, 0xb569}, + {0xd874, 0x3bf1}, + {0xd875, 0x87a6}, + {0xd876, 0x8246}, + {0xd877, 0x876e}, + {0xd878, 0x59e6}, + {0xd879, 0x824a}, + {0xd87a, 0xb8a9}, + {0xd87b, 0x8175}, + {0xd87c, 0x999e}, + {0xd87d, 0x615d}, + {0xd87e, 0x6fd2}, + {0xd880, 0x5e74}, + {0xd881, 0x3bf8}, + {0xd882, 0x74da}, + {0xd883, 0x836a}, + {0xd884, 0x3f16}, + {0xd885, 0xb9b8}, + {0xd886, 0x6638}, + {0xd887, 0xa0b1}, + {0xd888, 0x7dad}, + {0xd889, 0xa6a0}, + {0xd88a, 0xb558}, + {0xd88b, 0x6d1d}, + {0xd88c, 0x485c}, + {0xd88d, 0x9ca9}, + {0xd88e, 0x6141}, + {0xd88f, 0x6e25}, + {0xd890, 0x3e32}, + {0xd891, 0xc002}, + {0xd892, 0xbadd}, + {0xd893, 0x56e4}, + {0xd894, 0x4296}, + {0xd895, 0x59b2}, + {0xd896, 0x9dbc}, + {0xd897, 0xb49d}, + {0xd898, 0x5db5}, + {0xd899, 0xa226}, + {0xd89a, 0x8888}, + {0xd89b, 0x63c1}, + {0xd89c, 0x53ea}, + {0xd89d, 0x9c69}, + {0xd89e, 0x5b3d}, + {0xd89f, 0xbd61}, + {0xd8a0, 0xc239}, + {0xd8a1, 0x48a9}, + {0xd8a2, 0x63fe}, + {0xd8a3, 0xa586}, + {0xd8a4, 0x5771}, + {0xd8a5, 0x83e5}, + {0xd8a6, 0x92f0}, + {0xd8a7, 0x8749}, + {0xd8a8, 0x590e}, + {0xd8a9, 0x4672}, + {0xd8aa, 0x58be}, + {0xd8ab, 0x82d1}, + {0xd8ac, 0x52aa}, + {0xd8ad, 0x5c30}, + {0xd8ae, 0xb8f5}, + {0xd8af, 0x8874}, + {0xd8b0, 0x3ef1}, + {0xd8b1, 0xa134}, + {0xd8b2, 0xb1ae}, + {0xd8b3, 0xb1c5}, + {0xd8b4, 0xc126}, + {0xd8b5, 0x4e16}, + {0xd8b6, 0xabb9}, + {0xd8b7, 0xb668}, + {0xd8b8, 0x7145}, + {0xd8b9, 0xba38}, + {0xd8ba, 0x5841}, + {0xd8bb, 0x9dac}, + {0xd8bc, 0xc401}, + {0xd8bd, 0x64b2}, + {0xd8be, 0x8281}, + {0xd8bf, 0x805c}, + {0xd8c0, 0x6408}, + {0xd8c1, 0x8a0c}, + {0xd8c2, 0x7f7c}, + {0xd8c3, 0x4190}, + {0xd8c4, 0x9399}, + {0xd8c5, 0x5a78}, + {0xd8c6, 0xbd8e}, + {0xd8c7, 0x9546}, + {0xd8c8, 0x4b99}, + {0xd8c9, 0xb050}, + {0xd8ca, 0x6dc6}, + {0xd8cb, 0x993a}, + {0xd8cc, 0xb2e2}, + {0xd8cd, 0xb0e5}, + {0xd8ce, 0x53fd}, + {0xd8cf, 0x8912}, + {0xd8d0, 0x5bd8}, + {0xd8d1, 0x7182}, + {0xd8d2, 0x400e}, + {0xd8d3, 0xbd75}, + {0xd8d4, 0x5adc}, + {0xd8d5, 0xb85e}, + {0xd8d6, 0x4d29}, + {0xd8d7, 0xb422}, + {0xd8d8, 0xa452}, + {0xd8d9, 0x6b08}, + {0xd8da, 0x7046}, + {0xd8db, 0x5c00}, + {0xd8dc, 0x6ea2}, + {0xd8dd, 0x7240}, + {0xd8de, 0x641a}, + {0xd8df, 0x948a}, + {0xd8e0, 0xa1fa}, + {0xd8e1, 0x709a}, + {0xd8e2, 0x883c}, + {0xd8e3, 0x6dd8}, + {0xd8e4, 0x8cc5}, + {0xd8e5, 0x6391}, + {0xd8e6, 0xb52d}, + {0xd8e7, 0x6b66}, + {0xd8e8, 0xa295}, + {0xd8e9, 0x9122}, + {0xd8ea, 0x4f95}, + {0xd8eb, 0xbf16}, + {0xd8ec, 0x73e8}, + {0xd8ed, 0x92e5}, + {0xd8ee, 0xb428}, + {0xd8ef, 0x81f1}, + {0xd8f0, 0x914a}, + {0xd8f1, 0xb97c}, + {0xd8f2, 0x87ce}, + {0xd8f3, 0xaf3e}, + {0xd8f4, 0xa1d0}, + {0xd8f5, 0xa54c}, + {0xd8f6, 0x44e4}, + {0xd8f7, 0x4310}, + {0xd8f8, 0x6f22}, + {0xd8f9, 0xc41e}, + {0xd8fa, 0x84a8}, + {0xd8fb, 0x6e8d}, + {0xd8fc, 0xb7f0}, + {0xd8fd, 0xb43d}, + {0xd8fe, 0x59be}, + {0xd940, 0x532a}, + {0xd941, 0xc458}, + {0xd942, 0x974d}, + {0xd943, 0x3f71}, + {0xd944, 0xc5dd}, + {0xd945, 0x532d}, + {0xd946, 0x5c0d}, + {0xd947, 0x8831}, + {0xd948, 0x4010}, + {0xd949, 0x7cf2}, + {0xd94a, 0x4c32}, + {0xd94b, 0x9651}, + {0xd94c, 0x7112}, + {0xd94d, 0x5498}, + {0xd94e, 0x9f3e}, + {0xd94f, 0xb3a2}, + {0xd950, 0x4724}, + {0xd951, 0x7e01}, + {0xd952, 0x5ea8}, + {0xd953, 0x3e85}, + {0xd954, 0x7af6}, + {0xd955, 0x7846}, + {0xd956, 0x62f0}, + {0xd957, 0x5765}, + {0xd958, 0x8824}, + {0xd959, 0xc5de}, + {0xd95a, 0x6678}, + {0xd95b, 0xad6e}, + {0xd95c, 0xbd9c}, + {0xd95d, 0x68d5}, + {0xd95e, 0x5766}, + {0xd95f, 0xbcf5}, + {0xd960, 0x67b2}, + {0xd961, 0xb6b2}, + {0xd962, 0xaf18}, + {0xd963, 0xc0a2}, + {0xd964, 0x9535}, + {0xd965, 0x40ea}, + {0xd966, 0x40ec}, + {0xd967, 0x8f19}, + {0xd968, 0x9536}, + {0xd969, 0x4922}, + {0xd96a, 0xbcf8}, + {0xd96b, 0xc342}, + {0xd96c, 0x72a1}, + {0xd96d, 0xbcd0}, + {0xd96e, 0x4a4a}, + {0xd96f, 0x45dd}, + {0xd970, 0x94e2}, + {0xd971, 0x9ee1}, + {0xd972, 0x86a4}, + {0xd973, 0x5934}, + {0xd974, 0xa894}, + {0xd975, 0x7d08}, + {0xd976, 0x67ca}, + {0xd977, 0x9b1e}, + {0xd978, 0x5720}, + {0xd979, 0x9ce0}, + {0xd97a, 0x4aa4}, + {0xd97b, 0x4aa5}, + {0xd97c, 0xc27e}, + {0xd97d, 0x6459}, + {0xd97e, 0xbf3a}, + {0xd980, 0x50ce}, + {0xd981, 0x6ab5}, + {0xd982, 0x80b6}, + {0xd983, 0x49c1}, + {0xd984, 0xbc4a}, + {0xd985, 0x3de5}, + {0xd986, 0xbc92}, + {0xd987, 0x72a4}, + {0xd988, 0x55a6}, + {0xd989, 0x4334}, + {0xd98a, 0x6475}, + {0xd98b, 0x965c}, + {0xd98c, 0x3b92}, + {0xd98d, 0xc4ba}, + {0xd98e, 0x572a}, + {0xd98f, 0x5a0e}, + {0xd990, 0x9325}, + {0xd991, 0xbd84}, + {0xd992, 0x776d}, + {0xd993, 0xb560}, + {0xd994, 0x3d1c}, + {0xd995, 0x4624}, + {0xd996, 0xa275}, + {0xd997, 0xc2a6}, + {0xd998, 0xc519}, + {0xd999, 0x4088}, + {0xd99a, 0xbbcd}, + {0xd99b, 0xbdcc}, + {0xd99c, 0x4cd9}, + {0xd99d, 0xbcda}, + {0xd99e, 0xb0f8}, + {0xd99f, 0x899e}, + {0xd9a0, 0x94b8}, + {0xd9a1, 0x9fbe}, + {0xd9a2, 0xa159}, + {0xd9a3, 0x8376}, + {0xd9a4, 0x573d}, + {0xd9a5, 0x64b4}, + {0xd9a6, 0x5321}, + {0xd9a7, 0xb88e}, + {0xd9a8, 0x7088}, + {0xd9a9, 0x6edc}, + {0xd9aa, 0xc39e}, + {0xd9ab, 0xb454}, + {0xd9ac, 0x9ef0}, + {0xd9ad, 0x4416}, + {0xd9ae, 0x68b2}, + {0xd9af, 0x84d5}, + {0xd9b0, 0x81b0}, + {0xd9b1, 0x4802}, + {0xd9b2, 0xb045}, + {0xd9b3, 0x7576}, + {0xd9b4, 0x8ee4}, + {0xd9b5, 0x752d}, + {0xd9b6, 0xb988}, + {0xd9b7, 0x88a4}, + {0xd9b8, 0xb7bc}, + {0xd9b9, 0x9985}, + {0xd9ba, 0x559a}, + {0xd9bb, 0x8c31}, + {0xd9bc, 0x92d0}, + {0xd9bd, 0x85cc}, + {0xd9be, 0xc539}, + {0xd9bf, 0x97c4}, + {0xd9c0, 0x7be5}, + {0xd9c1, 0xa4a5}, + {0xd9c2, 0x3f09}, + {0xd9c3, 0x9e54}, + {0xd9c4, 0x5b04}, + {0xd9c5, 0x7000}, + {0xd9c6, 0x6cdd}, + {0xd9c7, 0x5518}, + {0xd9c8, 0xb04e}, + {0xd9c9, 0xaab8}, + {0xd9ca, 0x6582}, + {0xd9cb, 0xa2c1}, + {0xd9cc, 0xc68a}, + {0xd9cd, 0x7a00}, + {0xd9ce, 0x9d40}, + {0xd9cf, 0x40de}, + {0xd9d0, 0x8534}, + {0xd9d1, 0x4785}, + {0xd9d2, 0xa661}, + {0xd9d3, 0x6b15}, + {0xd9d4, 0x67b9}, + {0xd9d5, 0x6881}, + {0xd9d6, 0x6bf8}, + {0xd9d7, 0x9fe5}, + {0xd9d8, 0xadb6}, + {0xd9d9, 0x4c75}, + {0xd9da, 0x9fbc}, + {0xd9db, 0xa12c}, + {0xd9dc, 0x953a}, + {0xd9dd, 0x8b72}, + {0xd9de, 0xc706}, + {0xd9df, 0xbba2}, + {0xd9e0, 0x4aee}, + {0xd9e1, 0x4de9}, + {0xd9e2, 0xa5d9}, + {0xd9e3, 0xaf10}, + {0xd9e4, 0x5f75}, + {0xd9e5, 0x5c96}, + {0xd9e6, 0x44bc}, + {0xd9e7, 0x7168}, + {0xd9e8, 0x3da4}, + {0xd9e9, 0x897d}, + {0xd9ea, 0x5f0a}, + {0xd9eb, 0x564c}, + {0xd9ec, 0x5609}, + {0xd9ed, 0x9a4e}, + {0xd9ee, 0x9975}, + {0xd9ef, 0xa01d}, + {0xd9f0, 0xb040}, + {0xd9f1, 0x41a6}, + {0xd9f2, 0x5c31}, + {0xd9f3, 0x7df9}, + {0xd9f4, 0xab28}, + {0xd9f5, 0x7b55}, + {0xd9f6, 0x8949}, + {0xd9f7, 0x413d}, + {0xd9f8, 0xb710}, + {0xd9f9, 0x7bf0}, + {0xd9fa, 0x741c}, + {0xd9fb, 0x4118}, + {0xd9fc, 0x6075}, + {0xd9fd, 0x779e}, + {0xd9fe, 0xa8b4}, + {0xda40, 0xa279}, + {0xda41, 0xb72e}, + {0xda42, 0x6ac6}, + {0xda43, 0x59ba}, + {0xda44, 0xa8aa}, + {0xda45, 0xbcf9}, + {0xda46, 0x3fe4}, + {0xda47, 0x50b2}, + {0xda48, 0x9809}, + {0xda49, 0xb102}, + {0xda4a, 0xffff8d18}, + {0xda4b, 0xae32}, + {0xda4c, 0x79fd}, + {0xda4d, 0x57ee}, + {0xda4e, 0xbcfc}, + {0xda4f, 0xbad1}, + {0xda50, 0x3f72}, + {0xda51, 0xc33e}, + {0xda52, 0x55a1}, + {0xda53, 0xbbc9}, + {0xda54, 0xa628}, + {0xda55, 0x9fe1}, + {0xda56, 0xa758}, + {0xda57, 0x4654}, + {0xda58, 0x4664}, + {0xda59, 0xa7d1}, + {0xda5a, 0x9d2e}, + {0xda5b, 0xc6d2}, + {0xda5c, 0x7580}, + {0xda5d, 0x948e}, + {0xda5e, 0x8e74}, + {0xda5f, 0x8dda}, + {0xda60, 0xa8c6}, + {0xda61, 0xc5c8}, + {0xda62, 0x6dbe}, + {0xda63, 0x8ddc}, + {0xda64, 0x4720}, + {0xda65, 0x49f1}, + {0xda66, 0x462d}, + {0xda67, 0x4f66}, + {0xda68, 0x4dd6}, + {0xda69, 0xa750}, + {0xda6a, 0xbe72}, + {0xda6b, 0x6dcc}, + {0xda6c, 0x64e9}, + {0xda6d, 0x4728}, + {0xda6e, 0x4871}, + {0xda6f, 0x5ac5}, + {0xda70, 0xae84}, + {0xda71, 0x9f32}, + {0xda72, 0x51c8}, + {0xda73, 0x57ca}, + {0xda74, 0x9b7a}, + {0xda75, 0x4ad6}, + {0xda76, 0xa6dc}, + {0xda77, 0xbf82}, + {0xda78, 0x9a92}, + {0xda79, 0xb651}, + {0xda7a, 0x6c82}, + {0xda7b, 0x67cc}, + {0xda7c, 0x908a}, + {0xda7d, 0x49de}, + {0xda7e, 0x4b29}, + {0xda80, 0x7b16}, + {0xda81, 0x4d1c}, + {0xda82, 0x8eba}, + {0xda83, 0xc5f4}, + {0xda84, 0x9e2e}, + {0xda85, 0x8f70}, + {0xda86, 0x47a1}, + {0xda87, 0x6219}, + {0xda88, 0x8d0e}, + {0xda89, 0x8ce0}, + {0xda8a, 0x6926}, + {0xda8b, 0xbd44}, + {0xda8c, 0x9e82}, + {0xda8d, 0x531c}, + {0xda8e, 0xbcc6}, + {0xda8f, 0xa501}, + {0xda90, 0x6f60}, + {0xda91, 0x6dc0}, + {0xda92, 0x4619}, + {0xda93, 0x540d}, + {0xda94, 0xbb85}, + {0xda95, 0x3cd6}, + {0xda96, 0x8a4c}, + {0xda97, 0xa1a9}, + {0xda98, 0xb4d6}, + {0xda99, 0x67ae}, + {0xda9a, 0x78a6}, + {0xda9b, 0x7e8c}, + {0xda9c, 0x7058}, + {0xda9d, 0x4a35}, + {0xda9e, 0x8b48}, + {0xda9f, 0xc459}, + {0xdaa0, 0x6c3e}, + {0xdaa1, 0x99bc}, + {0xdaa2, 0x7f9e}, + {0xdaa3, 0xc2f8}, + {0xdaa4, 0x80ed}, + {0xdaa5, 0xafcd}, + {0xdaa6, 0x6961}, + {0xdaa7, 0x5f80}, + {0xdaa8, 0x9481}, + {0xdaa9, 0x857d}, + {0xdaaa, 0x6cc5}, + {0xdaab, 0x8314}, + {0xdaac, 0x5a4c}, + {0xdaad, 0x5e22}, + {0xdaae, 0x4e19}, + {0xdaaf, 0xbf61}, + {0xdab0, 0x8f36}, + {0xdab1, 0xb368}, + {0xdab2, 0x70da}, + {0xdab3, 0x7434}, + {0xdab4, 0x5ade}, + {0xdab5, 0x6970}, + {0xdab6, 0x6250}, + {0xdab7, 0x9584}, + {0xdab8, 0x59ea}, + {0xdab9, 0x8ffe}, + {0xdaba, 0xc108}, + {0xdabb, 0x6375}, + {0xdabc, 0xad0e}, + {0xdabd, 0x8d20}, + {0xdabe, 0x5876}, + {0xdabf, 0x70f1}, + {0xdac0, 0xa5f9}, + {0xdac1, 0xc6b9}, + {0xdac2, 0xc560}, + {0xdac3, 0xa356}, + {0xdac4, 0xb901}, + {0xdac5, 0x95ce}, + {0xdac6, 0x449e}, + {0xdac7, 0x9b01}, + {0xdac8, 0x45fd}, + {0xdac9, 0x67a1}, + {0xdaca, 0xae7e}, + {0xdacb, 0xb2bd}, + {0xdacc, 0x5274}, + {0xdacd, 0xb9f8}, + {0xdace, 0xad9e}, + {0xdacf, 0x3bb1}, + {0xdad0, 0x4e5d}, + {0xdad1, 0xc5c6}, + {0xdad2, 0x8830}, + {0xdad3, 0x8122}, + {0xdad4, 0x4cf6}, + {0xdad5, 0x9a71}, + {0xdad6, 0x974c}, + {0xdad7, 0x7fbc}, + {0xdad8, 0xbfbc}, + {0xdad9, 0x674e}, + {0xdada, 0xbda6}, + {0xdadb, 0x8cf6}, + {0xdadc, 0x6ddc}, + {0xdadd, 0xb0d8}, + {0xdade, 0xbe7d}, + {0xdadf, 0x4636}, + {0xdae0, 0x695a}, + {0xdae1, 0x6a4d}, + {0xdae2, 0x56c9}, + {0xdae3, 0xa58d}, + {0xdae4, 0x8b66}, + {0xdae5, 0x6b05}, + {0xdae6, 0x3d39}, + {0xdae7, 0x4ec0}, + {0xdae8, 0xc796}, + {0xdae9, 0x3e12}, + {0xdaea, 0xac02}, + {0xdaeb, 0x5751}, + {0xdaec, 0xc209}, + {0xdaed, 0x8422}, + {0xdaee, 0xc6bc}, + {0xdaef, 0x495e}, + {0xdaf0, 0x87a0}, + {0xdaf1, 0xa2c5}, + {0xdaf2, 0x61e4}, + {0xdaf3, 0xa361}, + {0xdaf4, 0xa6e4}, + {0xdaf5, 0x5d05}, + {0xdaf6, 0x8e64}, + {0xdaf7, 0x70fd}, + {0xdaf8, 0x7d71}, + {0xdaf9, 0xa4f5}, + {0xdafa, 0x5400}, + {0xdafb, 0x4128}, + {0xdafc, 0x8751}, + {0xdafd, 0x3e34}, + {0xdafe, 0xb2a9}, + {0xdb40, 0x9f40}, + {0xdb41, 0x85f5}, + {0xdb42, 0x6cf2}, + {0xdb43, 0x8364}, + {0xdb44, 0xb3ac}, + {0xdb45, 0x65a2}, + {0xdb46, 0x51f1}, + {0xdb47, 0x51f2}, + {0xdb48, 0xc3b9}, + {0xdb49, 0x9025}, + {0xdb4a, 0xc486}, + {0xdb4b, 0xa990}, + {0xdb4c, 0x4789}, + {0xdb4d, 0x3ecc}, + {0xdb4e, 0xc25c}, + {0xdb4f, 0x6659}, + {0xdb50, 0x42ad}, + {0xdb51, 0x4be2}, + {0xdb52, 0x6c7d}, + {0xdb53, 0x97e6}, + {0xdb54, 0xa085}, + {0xdb55, 0x48d4}, + {0xdb56, 0x6b56}, + {0xdb57, 0x843e}, + {0xdb58, 0xaa10}, + {0xdb59, 0x4272}, + {0xdb5a, 0x4b65}, + {0xdb5b, 0x81ec}, + {0xdb5c, 0x97e8}, + {0xdb5d, 0x68da}, + {0xdb5e, 0x8cc8}, + {0xdb5f, 0x7f38}, + {0xdb60, 0x67cd}, + {0xdb61, 0x8a81}, + {0xdb62, 0xa4ba}, + {0xdb63, 0xa396}, + {0xdb64, 0x69b5}, + {0xdb65, 0x6502}, + {0xdb66, 0x8445}, + {0xdb67, 0x6c4c}, + {0xdb68, 0x8446}, + {0xdb69, 0x7ba5}, + {0xdb6a, 0x7b18}, + {0xdb6b, 0x748e}, + {0xdb6c, 0xa258}, + {0xdb6d, 0x902c}, + {0xdb6e, 0xc6fa}, + {0xdb6f, 0x8d72}, + {0xdb70, 0x89fd}, + {0xdb71, 0x4ada}, + {0xdb72, 0xc674}, + {0xdb73, 0x8740}, + {0xdb74, 0xc0e1}, + {0xdb75, 0xb95c}, + {0xdb76, 0x518d}, + {0xdb77, 0x49c2}, + {0xdb78, 0xb7e1}, + {0xdb79, 0x4e89}, + {0xdb7a, 0xbe1d}, + {0xdb7b, 0x4621}, + {0xdb7c, 0xa180}, + {0xdb7d, 0x9d2a}, + {0xdb7e, 0x568a}, + {0xdb80, 0xc6fc}, + {0xdb81, 0x854e}, + {0xdb82, 0x43f5}, + {0xdb83, 0xa0f9}, + {0xdb84, 0x8c82}, + {0xdb85, 0xbebe}, + {0xdb86, 0x4e99}, + {0xdb87, 0x9e34}, + {0xdb88, 0x6512}, + {0xdb89, 0x797e}, + {0xdb8a, 0xbcd6}, + {0xdb8b, 0x3fc9}, + {0xdb8c, 0x47c9}, + {0xdb8d, 0x7b34}, + {0xdb8e, 0x776e}, + {0xdb8f, 0x9cf0}, + {0xdb90, 0x4c48}, + {0xdb91, 0x9ab0}, + {0xdb92, 0xa71a}, + {0xdb93, 0x717e}, + {0xdb94, 0x65e0}, + {0xdb95, 0xc19e}, + {0xdb96, 0x8c85}, + {0xdb97, 0xc1a0}, + {0xdb98, 0x8605}, + {0xdb99, 0xc67d}, + {0xdb9a, 0x7690}, + {0xdb9b, 0xbd15}, + {0xdb9c, 0x83e1}, + {0xdb9d, 0xa0ed}, + {0xdb9e, 0x6c91}, + {0xdb9f, 0xa842}, + {0xdba0, 0xc2f1}, + {0xdba1, 0x4e1a}, + {0xdba2, 0x9c1d}, + {0xdba3, 0x6645}, + {0xdba4, 0xc1fc}, + {0xdba5, 0xc3a1}, + {0xdba6, 0x70a5}, + {0xdba7, 0xa731}, + {0xdba8, 0x6149}, + {0xdba9, 0xbc2c}, + {0xdbaa, 0x7582}, + {0xdbab, 0xb739}, + {0xdbac, 0x5878}, + {0xdbad, 0xa5fa}, + {0xdbae, 0x563a}, + {0xdbaf, 0x879e}, + {0xdbb0, 0x9c80}, + {0xdbb1, 0xb055}, + {0xdbb2, 0x6d69}, + {0xdbb3, 0xafb5}, + {0xdbb4, 0xb619}, + {0xdbb5, 0xbefd}, + {0xdbb6, 0x890c}, + {0xdbb7, 0x9499}, + {0xdbb8, 0xc6c9}, + {0xdbb9, 0x78d9}, + {0xdbba, 0x556d}, + {0xdbbb, 0x4860}, + {0xdbbc, 0x618e}, + {0xdbbd, 0x7cf8}, + {0xdbbe, 0x8f7d}, + {0xdbbf, 0x951d}, + {0xdbc0, 0x5e38}, + {0xdbc1, 0x58f6}, + {0xdbc2, 0x7f18}, + {0xdbc3, 0xad4a}, + {0xdbc4, 0xaad5}, + {0xdbc5, 0x9a28}, + {0xdbc6, 0xab5c}, + {0xdbc7, 0x6e0e}, + {0xdbc8, 0xb635}, + {0xdbc9, 0x8c0a}, + {0xdbca, 0x4d04}, + {0xdbcb, 0x4546}, + {0xdbcc, 0x9912}, + {0xdbcd, 0x401d}, + {0xdbce, 0x3e8e}, + {0xdbcf, 0x8f06}, + {0xdbd0, 0x3e92}, + {0xdbd1, 0x5260}, + {0xdbd2, 0x5346}, + {0xdbd3, 0x9800}, + {0xdbd4, 0x645d}, + {0xdbd5, 0xb792}, + {0xdbd6, 0x5eb8}, + {0xdbd7, 0xa2fc}, + {0xdbd8, 0xa4ee}, + {0xdbd9, 0x5886}, + {0xdbda, 0xc07c}, + {0xdbdb, 0x70fe}, + {0xdbdc, 0x87d0}, + {0xdbdd, 0xb35e}, + {0xdbde, 0x7560}, + {0xdbdf, 0x8a10}, + {0xdbe0, 0x3d3a}, + {0xdbe1, 0x579d}, + {0xdbe2, 0x79e1}, + {0xdbe3, 0x4ec1}, + {0xdbe4, 0x7a55}, + {0xdbe5, 0x45a9}, + {0xdbe6, 0x4e20}, + {0xdbe7, 0xa15d}, + {0xdbe8, 0x834a}, + {0xdbe9, 0x81f8}, + {0xdbea, 0x3c19}, + {0xdbeb, 0xaf78}, + {0xdbec, 0x4f44}, + {0xdbed, 0x5012}, + {0xdbee, 0x6ea4}, + {0xdbef, 0x943d}, + {0xdbf0, 0x94dd}, + {0xdbf1, 0x82f5}, + {0xdbf2, 0x5752}, + {0xdbf3, 0xb5f4}, + {0xdbf4, 0x468c}, + {0xdbf5, 0x96c0}, + {0xdbf6, 0x5c61}, + {0xdbf7, 0xae8e}, + {0xdbf8, 0x77ac}, + {0xdbf9, 0xbb41}, + {0xdbfa, 0xc17e}, + {0xdbfb, 0x3bda}, + {0xdbfc, 0xb4a6}, + {0xdbfd, 0x87a2}, + {0xdbfe, 0x83ec}, + {0xdc40, 0x4186}, + {0xdc41, 0x4ae9}, + {0xdc42, 0x6e09}, + {0xdc43, 0x7854}, + {0xdc44, 0x9bbd}, + {0xdc45, 0x8ce1}, + {0xdc46, 0x8ce2}, + {0xdc47, 0x7732}, + {0xdc48, 0x516a}, + {0xdc49, 0x5b2c}, + {0xdc4a, 0x4bf2}, + {0xdc4b, 0x3fe0}, + {0xdc4c, 0x3fe1}, + {0xdc4d, 0x6d24}, + {0xdc4e, 0x8d3d}, + {0xdc4f, 0x5171}, + {0xdc50, 0x4830}, + {0xdc51, 0x648c}, + {0xdc52, 0xa585}, + {0xdc53, 0xbbb1}, + {0xdc54, 0x83e2}, + {0xdc55, 0xc1a4}, + {0xdc56, 0x762d}, + {0xdc57, 0xc2c0}, + {0xdc58, 0x4890}, + {0xdc59, 0x510e}, + {0xdc5a, 0xa404}, + {0xdc5b, 0x79d5}, + {0xdc5c, 0x7859}, + {0xdc5d, 0xa852}, + {0xdc5e, 0xa408}, + {0xdc5f, 0x72fc}, + {0xdc60, 0x90f4}, + {0xdc61, 0xab7a}, + {0xdc62, 0x8471}, + {0xdc63, 0x9c10}, + {0xdc64, 0x8fba}, + {0xdc65, 0x6522}, + {0xdc66, 0x4af5}, + {0xdc67, 0xc71a}, + {0xdc68, 0xa722}, + {0xdc69, 0x716d}, + {0xdc6a, 0x6e26}, + {0xdc6b, 0x785a}, + {0xdc6c, 0x4c62}, + {0xdc6d, 0x54c9}, + {0xdc6e, 0x9e46}, + {0xdc6f, 0x51c9}, + {0xdc70, 0x5982}, + {0xdc71, 0x7364}, + {0xdc72, 0x9144}, + {0xdc73, 0x7bea}, + {0xdc74, 0x3b5a}, + {0xdc75, 0x645a}, + {0xdc76, 0x6c84}, + {0xdc77, 0x700c}, + {0xdc78, 0xffff8ebc}, + {0xdc79, 0xb079}, + {0xdc7a, 0x7e76}, + {0xdc7b, 0x6f19}, + {0xdc7c, 0x8f72}, + {0xdc7d, 0x7a24}, + {0xdc7e, 0x73e5}, + {0xdc80, 0x51d4}, + {0xdc81, 0xc1a1}, + {0xdc82, 0xb0f9}, + {0xdc83, 0x9e4a}, + {0xdc84, 0x4d74}, + {0xdc85, 0xb6e1}, + {0xdc86, 0xba8e}, + {0xdc87, 0x4592}, + {0xdc88, 0xbdfd}, + {0xdc89, 0x5be4}, + {0xdc8a, 0x6e34}, + {0xdc8b, 0xbb7d}, + {0xdc8c, 0xabc2}, + {0xdc8d, 0x4c26}, + {0xdc8e, 0xad9c}, + {0xdc8f, 0x53e5}, + {0xdc90, 0x916d}, + {0xdc91, 0x9448}, + {0xdc92, 0x70f2}, + {0xdc93, 0x97d2}, + {0xdc94, 0xa121}, + {0xdc95, 0x45fe}, + {0xdc96, 0x4c2e}, + {0xdc97, 0x5275}, + {0xdc98, 0x8248}, + {0xdc99, 0x8a4d}, + {0xdc9a, 0x7db9}, + {0xdc9b, 0x927c}, + {0xdc9c, 0x70f4}, + {0xdc9d, 0x8be8}, + {0xdc9e, 0xc4a1}, + {0xdc9f, 0x5f0d}, + {0xdca0, 0x5ff5}, + {0xdca1, 0x8700}, + {0xdca2, 0xa0a5}, + {0xdca3, 0x9389}, + {0xdca4, 0x4c28}, + {0xdca5, 0x7054}, + {0xdca6, 0x4f5a}, + {0xdca7, 0xb5bc}, + {0xdca8, 0x7488}, + {0xdca9, 0x5fc8}, + {0xdcaa, 0x58ce}, + {0xdcab, 0xbafe}, + {0xdcac, 0x7d50}, + {0xdcad, 0xb785}, + {0xdcae, 0x76fc}, + {0xdcaf, 0x472c}, + {0xdcb0, 0xaba8}, + {0xdcb1, 0x87c9}, + {0xdcb2, 0xb588}, + {0xdcb3, 0x4350}, + {0xdcb4, 0x6862}, + {0xdcb5, 0x8268}, + {0xdcb6, 0x50d1}, + {0xdcb7, 0x8b70}, + {0xdcb8, 0x6410}, + {0xdcb9, 0xa215}, + {0xdcba, 0xac49}, + {0xdcbb, 0x8aba}, + {0xdcbc, 0xa955}, + {0xdcbd, 0x5611}, + {0xdcbe, 0xafd6}, + {0xdcbf, 0xbbdd}, + {0xdcc0, 0x5614}, + {0xdcc1, 0x655e}, + {0xdcc2, 0x7562}, + {0xdcc3, 0x5252}, + {0xdcc4, 0x6ccd}, + {0xdcc5, 0x8791}, + {0xdcc6, 0xc1c0}, + {0xdcc7, 0x92a5}, + {0xdcc8, 0xa8f4}, + {0xdcc9, 0x4508}, + {0xdcca, 0x4a56}, + {0xdccb, 0x8da0}, + {0xdccc, 0xa595}, + {0xdccd, 0x8c2d}, + {0xdcce, 0x8a15}, + {0xdccf, 0x9434}, + {0xdcd0, 0x4024}, + {0xdcd1, 0xc426}, + {0xdcd2, 0x701a}, + {0xdcd3, 0xb3ec}, + {0xdcd4, 0x815a}, + {0xdcd5, 0x57a0}, + {0xdcd6, 0x8875}, + {0xdcd7, 0x7990}, + {0xdcd8, 0x3cb4}, + {0xdcd9, 0x81fc}, + {0xdcda, 0x6c20}, + {0xdcdb, 0x90d8}, + {0xdcdc, 0x8e39}, + {0xdcdd, 0x4711}, + {0xdcde, 0x5625}, + {0xdcdf, 0x7871}, + {0xdce0, 0x83f9}, + {0xdce1, 0xb665}, + {0xdce2, 0x7dd6}, + {0xdce3, 0xb6ec}, + {0xdce4, 0x8e69}, + {0xdce5, 0x8091}, + {0xdce6, 0x950e}, + {0xdce7, 0x8c30}, + {0xdce8, 0xb384}, + {0xdce9, 0x9105}, + {0xdcea, 0x3f3e}, + {0xdceb, 0x4a00}, + {0xdcec, 0x6ca8}, + {0xdced, 0x9fc9}, + {0xdcee, 0x629a}, + {0xdcef, 0xc3a5}, + {0xdcf0, 0x9f7e}, + {0xdcf1, 0x8cec}, + {0xdcf2, 0x5639}, + {0xdcf3, 0x9138}, + {0xdcf4, 0xac2c}, + {0xdcf5, 0x9004}, + {0xdcf6, 0x62c8}, + {0xdcf7, 0xaec9}, + {0xdcf8, 0x80ec}, + {0xdcf9, 0x8b09}, + {0xdcfa, 0x6871}, + {0xdcfb, 0x47b2}, + {0xdcfc, 0x67fd}, + {0xdcfd, 0x7c01}, + {0xdcfe, 0xb6ee}, + {0xdd40, 0x8f91}, + {0xdd41, 0x7114}, + {0xdd42, 0x4e35}, + {0xdd43, 0x78a8}, + {0xdd44, 0x4c34}, + {0xdd45, 0x3c1d}, + {0xdd46, 0xc069}, + {0xdd47, 0x53ee}, + {0xdd48, 0x70ea}, + {0xdd49, 0xb186}, + {0xdd4a, 0x86ea}, + {0xdd4b, 0x3e59}, + {0xdd4c, 0x5a29}, + {0xdd4d, 0x5a2a}, + {0xdd4e, 0x8671}, + {0xdd4f, 0xc45a}, + {0xdd50, 0x91ed}, + {0xdd51, 0x528a}, + {0xdd52, 0x3cc0}, + {0xdd53, 0xc355}, + {0xdd54, 0xc1dc}, + {0xdd55, 0xb1e5}, + {0xdd56, 0x6f68}, + {0xdd57, 0xb4d8}, + {0xdd58, 0x8e0c}, + {0xdd59, 0x975d}, + {0xdd5a, 0x88dc}, + {0xdd5b, 0x52f5}, + {0xdd5c, 0x59a9}, + {0xdd5d, 0x6c74}, + {0xdd5e, 0x6914}, + {0xdd5f, 0x5b78}, + {0xdd60, 0x7af9}, + {0xdd61, 0x6eb2}, + {0xdd62, 0x9026}, + {0xdd63, 0xc340}, + {0xdd64, 0xbc99}, + {0xdd65, 0xc25d}, + {0xdd66, 0x9534}, + {0xdd67, 0x772d}, + {0xdd68, 0xba40}, + {0xdd69, 0x9501}, + {0xdd6a, 0xb84a}, + {0xdd6b, 0x6185}, + {0xdd6c, 0x90a1}, + {0xdd6d, 0xbfbe}, + {0xdd6e, 0xa254}, + {0xdd6f, 0x56c0}, + {0xdd70, 0x8e14}, + {0xdd71, 0xc344}, + {0xdd72, 0x836c}, + {0xdd73, 0x78b8}, + {0xdd74, 0xbfc4}, + {0xdd75, 0xbee8}, + {0xdd76, 0x7730}, + {0xdd77, 0xc5ee}, + {0xdd78, 0x6284}, + {0xdd79, 0xa2ac}, + {0xdd7a, 0x49e0}, + {0xdd7b, 0x5cac}, + {0xdd7c, 0x6eea}, + {0xdd7d, 0xb40a}, + {0xdd7e, 0x871c}, + {0xdd80, 0x8c4d}, + {0xdd81, 0x5c45}, + {0xdd82, 0x83dd}, + {0xdd83, 0x88e2}, + {0xdd84, 0x5b25}, + {0xdd85, 0x3e71}, + {0xdd86, 0x7ba6}, + {0xdd87, 0x85d5}, + {0xdd88, 0x7704}, + {0xdd89, 0x928e}, + {0xdd8a, 0x9208}, + {0xdd8b, 0x650e}, + {0xdd8c, 0xb166}, + {0xdd8d, 0xa89a}, + {0xdd8e, 0x4914}, + {0xdd8f, 0x4aba}, + {0xdd90, 0x4986}, + {0xdd91, 0x58e5}, + {0xdd92, 0xb852}, + {0xdd93, 0x5f19}, + {0xdd94, 0x97ed}, + {0xdd95, 0x5725}, + {0xdd96, 0xc5f5}, + {0xdd97, 0x568c}, + {0xdd98, 0xa41e}, + {0xdd99, 0x3ea0}, + {0xdd9a, 0xbec0}, + {0xdd9b, 0xb962}, + {0xdd9c, 0xa420}, + {0xdd9d, 0x6eed}, + {0xdd9e, 0x5a3d}, + {0xdd9f, 0xc040}, + {0xdda0, 0xa7d4}, + {0xdda1, 0x8bd9}, + {0xdda2, 0x5912}, + {0xdda3, 0x6a84}, + {0xdda4, 0x7cf1}, + {0xdda5, 0x9b3e}, + {0xdda6, 0x5f3d}, + {0xdda7, 0xc378}, + {0xdda8, 0x6ede}, + {0xdda9, 0x3eed}, + {0xddaa, 0x96c2}, + {0xddab, 0xa4a8}, + {0xddac, 0xb86a}, + {0xddad, 0x521a}, + {0xddae, 0x7e2e}, + {0xddaf, 0xb82a}, + {0xddb0, 0x7594}, + {0xddb1, 0xa069}, + {0xddb2, 0xa816}, + {0xddb3, 0x5648}, + {0xddb4, 0x9ad0}, + {0xddb5, 0xb82d}, + {0xddb6, 0x4df1}, + {0xddb7, 0xab95}, + {0xddb8, 0xa236}, + {0xddb9, 0x7349}, + {0xddba, 0xb68e}, + {0xddbb, 0x4998}, + {0xddbc, 0x6ae4}, + {0xddbd, 0x8a4a}, + {0xddbe, 0xa626}, + {0xddbf, 0x99c2}, + {0xddc0, 0x6a52}, + {0xddc1, 0x827a}, + {0xddc2, 0x89e1}, + {0xddc3, 0x3cba}, + {0xddc4, 0x97d1}, + {0xddc5, 0x44ec}, + {0xddc6, 0x9f3c}, + {0xddc7, 0xb90a}, + {0xddc8, 0x6152}, + {0xddc9, 0x3f5a}, + {0xddca, 0x565a}, + {0xddcb, 0xa0a8}, + {0xddcc, 0x4cb2}, + {0xddcd, 0x4b3e}, + {0xddce, 0xafa9}, + {0xddcf, 0xc6e2}, + {0xddd0, 0x4d0d}, + {0xddd1, 0x66b2}, + {0xddd2, 0xa244}, + {0xddd3, 0xb6f6}, + {0xddd4, 0x5a24}, + {0xddd5, 0x5d68}, + {0xddd6, 0x8b42}, + {0xddd7, 0x5554}, + {0xddd8, 0x9178}, + {0xddd9, 0xa965}, + {0xddda, 0xa2d8}, + {0xdddb, 0x44a6}, + {0xdddc, 0x6ead}, + {0xdddd, 0x8b1a}, + {0xddde, 0x718c}, + {0xdddf, 0xa704}, + {0xdde0, 0x5288}, + {0xdde1, 0x3dd8}, + {0xdde2, 0x85b8}, + {0xdde3, 0x9f86}, + {0xdde4, 0x7a06}, + {0xdde5, 0x85e1}, + {0xdde6, 0xada8}, + {0xdde7, 0x6628}, + {0xdde8, 0xc028}, + {0xdde9, 0x9680}, + {0xddea, 0x9262}, + {0xddeb, 0x817d}, + {0xddec, 0x52c8}, + {0xdded, 0x3e64}, + {0xddee, 0xa494}, + {0xddef, 0x5dc0}, + {0xddf0, 0x64e6}, + {0xddf1, 0x74c9}, + {0xddf2, 0x3d98}, + {0xddf3, 0x66d4}, + {0xddf4, 0x9904}, + {0xddf5, 0x7385}, + {0xddf6, 0xb704}, + {0xddf7, 0xba26}, + {0xddf8, 0x9a90}, + {0xddf9, 0x7ede}, + {0xddfa, 0x503d}, + {0xddfb, 0xa709}, + {0xddfc, 0x76b1}, + {0xddfd, 0x4ad4}, + {0xddfe, 0x7848}, + {0xde40, 0xbb1e}, + {0xde41, 0x7b35}, + {0xde42, 0x689e}, + {0xde43, 0x4579}, + {0xde44, 0xc4a5}, + {0xde45, 0xa3f2}, + {0xde46, 0x6370}, + {0xde47, 0xae66}, + {0xde48, 0xbfd4}, + {0xde49, 0x6928}, + {0xde4a, 0xbef1}, + {0xde4b, 0x4230}, + {0xde4c, 0x73d5}, + {0xde4d, 0x5502}, + {0xde4e, 0x5382}, + {0xde4f, 0x7818}, + {0xde50, 0x58f0}, + {0xde51, 0x93c1}, + {0xde52, 0x6ef1}, + {0xde53, 0x6176}, + {0xde54, 0xb41a}, + {0xde55, 0x651c}, + {0xde56, 0xc51a}, + {0xde57, 0x5300}, + {0xde58, 0xba7d}, + {0xde59, 0x67f2}, + {0xde5a, 0x5f1d}, + {0xde5b, 0x7424}, + {0xde5c, 0x86c5}, + {0xde5d, 0x762e}, + {0xde5e, 0x7634}, + {0xde5f, 0x7a8c}, + {0xde60, 0x785c}, + {0xde61, 0x4c10}, + {0xde62, 0xc32e}, + {0xde63, 0x76f8}, + {0xde64, 0xa418}, + {0xde65, 0x4a0c}, + {0xde66, 0xc74e}, + {0xde67, 0x4044}, + {0xde68, 0x7251}, + {0xde69, 0x4a1a}, + {0xde6a, 0xae3c}, + {0xde6b, 0x3d62}, + {0xde6c, 0x404a}, + {0xde6d, 0xffff8faa}, + {0xde6e, 0x3d38}, + {0xde6f, 0x4a2a}, + {0xde70, 0x4052}, + {0xde71, 0x4054}, + {0xde72, 0x84dd}, + {0xde73, 0x84e0}, + {0xde74, 0xc076}, + {0xde75, 0x49cc}, + {0xde76, 0xb312}, + {0xde77, 0x9184}, + {0xde78, 0x53ca}, + {0xde79, 0x96a6}, + {0xde7a, 0x9256}, + {0xde7b, 0x4431}, + {0xde7c, 0x5792}, + {0xde7d, 0xb8b9}, + {0xde7e, 0xb3e4}, + {0xde80, 0x89c6}, + {0xde81, 0xbdd0}, + {0xde82, 0xa2b4}, + {0xde83, 0xa0a2}, + {0xde84, 0xc51e}, + {0xde85, 0x4bc5}, + {0xde86, 0x5da5}, + {0xde87, 0x4bc6}, + {0xde88, 0x5212}, + {0xde89, 0xc2cd}, + {0xde8a, 0x45aa}, + {0xde8b, 0x839a}, + {0xde8c, 0x476c}, + {0xde8d, 0x45ec}, + {0xde8e, 0xc432}, + {0xde8f, 0x9d89}, + {0xde90, 0xa162}, + {0xde91, 0x8fd2}, + {0xde92, 0x629c}, + {0xde93, 0x501e}, + {0xde94, 0xb89e}, + {0xde95, 0x8270}, + {0xde96, 0xb386}, + {0xde97, 0x6978}, + {0xde98, 0x77a8}, + {0xde99, 0xaf06}, + {0xde9a, 0x517c}, + {0xde9b, 0x6b80}, + {0xde9c, 0xb82e}, + {0xde9d, 0x8ef8}, + {0xde9e, 0x4e51}, + {0xde9f, 0x6b3a}, + {0xdea0, 0xb3f9}, + {0xdea1, 0x8f95}, + {0xdea2, 0x7039}, + {0xdea3, 0xad90}, + {0xdea4, 0x7781}, + {0xdea5, 0x6309}, + {0xdea6, 0xaf1a}, + {0xdea7, 0x6df0}, + {0xdea8, 0x9299}, + {0xdea9, 0xc751}, + {0xdeaa, 0x6501}, + {0xdeab, 0x7ee2}, + {0xdeac, 0x53a8}, + {0xdead, 0x8a80}, + {0xdeae, 0x5f72}, + {0xdeaf, 0xab55}, + {0xdeb0, 0x5f18}, + {0xdeb1, 0xa2ec}, + {0xdeb2, 0xb544}, + {0xdeb3, 0xa49e}, + {0xdeb4, 0x9a31}, + {0xdeb5, 0x3fbc}, + {0xdeb6, 0x5dc2}, + {0xdeb7, 0x9c3c}, + {0xdeb8, 0x9239}, + {0xdeb9, 0xaea2}, + {0xdeba, 0xa8da}, + {0xdebb, 0x586c}, + {0xdebc, 0x74f9}, + {0xdebd, 0x63ee}, + {0xdebe, 0x8fa6}, + {0xdebf, 0x5efa}, + {0xdec0, 0x53be}, + {0xdec1, 0x8461}, + {0xdec2, 0x7f6d}, + {0xdec3, 0x5995}, + {0xdec4, 0xb476}, + {0xdec5, 0x70f9}, + {0xdec6, 0x7648}, + {0xdec7, 0x4bb0}, + {0xdec8, 0xb472}, + {0xdec9, 0xa602}, + {0xdeca, 0xbd01}, + {0xdecb, 0x866e}, + {0xdecc, 0xb80d}, + {0xdecd, 0x7788}, + {0xdece, 0x574a}, + {0xdecf, 0x57b2}, + {0xded0, 0x978a}, + {0xded1, 0x7ea0}, + {0xded2, 0xa0b6}, + {0xded3, 0x45c9}, + {0xded4, 0x56a5}, + {0xded5, 0x402c}, + {0xded6, 0x3c54}, + {0xded7, 0x6974}, + {0xded8, 0x68b5}, + {0xded9, 0xbc5e}, + {0xdeda, 0xb491}, + {0xdedb, 0x7bb4}, + {0xdedc, 0x6e5a}, + {0xdedd, 0x9ee8}, + {0xdede, 0xb28d}, + {0xdedf, 0x3b41}, + {0xdee0, 0x8244}, + {0xdee1, 0x6538}, + {0xdee2, 0x5c86}, + {0xdee3, 0x3cfa}, + {0xdee4, 0x6c35}, + {0xdee5, 0x8948}, + {0xdee6, 0x77b8}, + {0xdee7, 0x8be5}, + {0xdee8, 0x5b3a}, + {0xdee9, 0x4f5e}, + {0xdeea, 0xbdda}, + {0xdeeb, 0xaf8a}, + {0xdeec, 0x8df2}, + {0xdeed, 0xb91e}, + {0xdeee, 0x3bde}, + {0xdeef, 0xada6}, + {0xdef0, 0x415a}, + {0xdef1, 0x714c}, + {0xdef2, 0xbb49}, + {0xdef3, 0x97dd}, + {0xdef4, 0x52cd}, + {0xdef5, 0x48e9}, + {0xdef6, 0x66c9}, + {0xdef7, 0x9902}, + {0xdef8, 0xbeaa}, + {0xdef9, 0x8546}, + {0xdefa, 0x935e}, + {0xdefb, 0x7c10}, + {0xdefc, 0xb6a9}, + {0xdefd, 0xc18d}, + {0xdefe, 0x5d7a}, + {0xdf40, 0xbfe9}, + {0xdf41, 0xa5a6}, + {0xdf42, 0x7651}, + {0xdf43, 0x9ba5}, + {0xdf44, 0x62a0}, + {0xdf45, 0x5a59}, + {0xdf46, 0x7284}, + {0xdf47, 0x3e82}, + {0xdf48, 0x4ba1}, + {0xdf49, 0x6dc1}, + {0xdf4a, 0x3eca}, + {0xdf4b, 0xb839}, + {0xdf4c, 0xc338}, + {0xdf4d, 0x6a91}, + {0xdf4e, 0xb9f9}, + {0xdf4f, 0x49d6}, + {0xdf50, 0x9e5e}, + {0xdf51, 0x4bda}, + {0xdf52, 0xbb2e}, + {0xdf53, 0x8545}, + {0xdf54, 0x4d11}, + {0xdf55, 0x9ae5}, + {0xdf56, 0xb066}, + {0xdf57, 0x4725}, + {0xdf58, 0x9e14}, + {0xdf59, 0x96c9}, + {0xdf5a, 0xc01d}, + {0xdf5b, 0xb83e}, + {0xdf5c, 0xbc39}, + {0xdf5d, 0x528c}, + {0xdf5e, 0x5cb5}, + {0xdf5f, 0x4be1}, + {0xdf60, 0xa31d}, + {0xdf61, 0x829e}, + {0xdf62, 0xb1f4}, + {0xdf63, 0x4849}, + {0xdf64, 0xaf14}, + {0xdf65, 0x9be0}, + {0xdf66, 0x4e72}, + {0xdf67, 0x4729}, + {0xdf68, 0xbb32}, + {0xdf69, 0x9a81}, + {0xdf6a, 0x7cbc}, + {0xdf6b, 0x5b46}, + {0xdf6c, 0xbf08}, + {0xdf6d, 0x9768}, + {0xdf6e, 0x4286}, + {0xdf6f, 0x4792}, + {0xdf70, 0x9a94}, + {0xdf71, 0x5188}, + {0xdf72, 0x4e80}, + {0xdf73, 0x7a15}, + {0xdf74, 0x4730}, + {0xdf75, 0x4b71}, + {0xdf76, 0x911a}, + {0xdf77, 0x8bac}, + {0xdf78, 0xadfd}, + {0xdf79, 0xba4c}, + {0xdf7a, 0xb3ba}, + {0xdf7b, 0x52a5}, + {0xdf7c, 0x7756}, + {0xdf7d, 0x9779}, + {0xdf7e, 0x7d09}, + {0xdf80, 0x6168}, + {0xdf81, 0xbe85}, + {0xdf82, 0x9dd5}, + {0xdf83, 0x531a}, + {0xdf84, 0x3ffd}, + {0xdf85, 0x4001}, + {0xdf86, 0x74fa}, + {0xdf87, 0xbb24}, + {0xdf88, 0xb858}, + {0xdf89, 0x7bd6}, + {0xdf8a, 0x754d}, + {0xdf8b, 0x9f76}, + {0xdf8c, 0x8ab4}, + {0xdf8d, 0x942c}, + {0xdf8e, 0xb8d4}, + {0xdf8f, 0x921c}, + {0xdf90, 0xa22a}, + {0xdf91, 0x55c0}, + {0xdf92, 0x6f25}, + {0xdf93, 0x40d8}, + {0xdf94, 0xab85}, + {0xdf95, 0x95c2}, + {0xdf96, 0xbad2}, + {0xdf97, 0x4b59}, + {0xdf98, 0x63a5}, + {0xdf99, 0x3d71}, + {0xdf9a, 0x6cce}, + {0xdf9b, 0x3f26}, + {0xdf9c, 0xa1d1}, + {0xdf9d, 0x70dc}, + {0xdf9e, 0x5b94}, + {0xdf9f, 0x9668}, + {0xdfa0, 0x7049}, + {0xdfa1, 0xbfbd}, + {0xdfa2, 0xaad6}, + {0xdfa3, 0x7a4d}, + {0xdfa4, 0xc772}, + {0xdfa5, 0x4af0}, + {0xdfa6, 0x57ce}, + {0xdfa7, 0x61bc}, + {0xdfa8, 0x87dc}, + {0xdfa9, 0xac24}, + {0xdfaa, 0xc590}, + {0xdfab, 0x6396}, + {0xdfac, 0xc72d}, + {0xdfad, 0x82ca}, + {0xdfae, 0xb421}, + {0xdfaf, 0x9db9}, + {0xdfb0, 0x4c18}, + {0xdfb1, 0x9748}, + {0xdfb2, 0x4234}, + {0xdfb3, 0x4764}, + {0xdfb4, 0x6404}, + {0xdfb5, 0x7028}, + {0xdfb6, 0x4d2a}, + {0xdfb7, 0x73ec}, + {0xdfb8, 0xbdce}, + {0xdfb9, 0x3b29}, + {0xdfba, 0xb1b0}, + {0xdfbb, 0x55c2}, + {0xdfbc, 0x569d}, + {0xdfbd, 0xb440}, + {0xdfbe, 0x4c01}, + {0xdfbf, 0x755e}, + {0xdfc0, 0x5250}, + {0xdfc1, 0x3ef9}, + {0xdfc2, 0x3d08}, + {0xdfc3, 0x5c5a}, + {0xdfc4, 0x8dec}, + {0xdfc5, 0xb63d}, + {0xdfc6, 0xbc5d}, + {0xdfc7, 0x6e86}, + {0xdfc8, 0xa785}, + {0xdfc9, 0x5ad4}, + {0xdfca, 0x7902}, + {0xdfcb, 0x4fda}, + {0xdfcc, 0x8482}, + {0xdfcd, 0x5191}, + {0xdfce, 0x82d5}, + {0xdfcf, 0xb7f1}, + {0xdfd0, 0x9920}, + {0xdfd1, 0x70e1}, + {0xdfd2, 0x6418}, + {0xdfd3, 0x95ca}, + {0xdfd4, 0x6252}, + {0xdfd5, 0x4bae}, + {0xdfd6, 0x7795}, + {0xdfd7, 0xb37a}, + {0xdfd8, 0xa9d9}, + {0xdfd9, 0x3f38}, + {0xdfda, 0x49ec}, + {0xdfdb, 0x5b69}, + {0xdfdc, 0x62c2}, + {0xdfdd, 0xac6c}, + {0xdfde, 0xb324}, + {0xdfdf, 0x85da}, + {0xdfe0, 0x70a6}, + {0xdfe1, 0x51ba}, + {0xdfe2, 0x6568}, + {0xdfe3, 0x805e}, + {0xdfe4, 0x7f39}, + {0xdfe5, 0xbe2a}, + {0xdfe6, 0x84d6}, + {0xdfe7, 0x590c}, + {0xdfe8, 0x81ac}, + {0xdfe9, 0x7ccd}, + {0xdfea, 0x46d5}, + {0xdfeb, 0x7396}, + {0xdfec, 0x593a}, + {0xdfed, 0xa525}, + {0xdfee, 0xbdd6}, + {0xdfef, 0x9b85}, + {0xdff0, 0xbd32}, + {0xdff1, 0xa601}, + {0xdff2, 0xc7a2}, + {0xdff3, 0x641c}, + {0xdff4, 0x5594}, + {0xdff5, 0xbd5c}, + {0xdff6, 0x8542}, + {0xdff7, 0x8035}, + {0xdff8, 0x77ea}, + {0xdff9, 0xc4aa}, + {0xdffa, 0xbf4c}, + {0xdffb, 0x9d91}, + {0xdffc, 0x5fee}, + {0xdffd, 0x4b39}, + {0xdffe, 0x9405}, + {0xe040, 0x5750}, + {0xe041, 0x5e3e}, + {0xe042, 0x64b5}, + {0xe043, 0x5fbd}, + {0xe044, 0xac08}, + {0xe045, 0xa6ca}, + {0xe046, 0x5bb0}, + {0xe047, 0x8530}, + {0xe048, 0x7360}, + {0xe049, 0xafe0}, + {0xe04a, 0x467e}, + {0xe04b, 0x5052}, + {0xe04c, 0x7c3e}, + {0xe04d, 0x56a9}, + {0xe04e, 0xa521}, + {0xe04f, 0x7341}, + {0xe050, 0x6648}, + {0xe051, 0x5938}, + {0xe052, 0x41a2}, + {0xe053, 0xa73d}, + {0xe054, 0x8fd8}, + {0xe055, 0xaa4a}, + {0xe056, 0x89d6}, + {0xe057, 0x8e04}, + {0xe058, 0xc330}, + {0xe059, 0xc6ba}, + {0xe05a, 0x88b6}, + {0xe05b, 0x7278}, + {0xe05c, 0x8355}, + {0xe05d, 0xb830}, + {0xe05e, 0x4274}, + {0xe05f, 0xa95a}, + {0xe060, 0x6c69}, + {0xe061, 0xb796}, + {0xe062, 0x8cbc}, + {0xe063, 0xb32a}, + {0xe064, 0x7e35}, + {0xe065, 0x92d2}, + {0xe066, 0x3e51}, + {0xe067, 0x97d4}, + {0xe068, 0xb99a}, + {0xe069, 0xbc30}, + {0xe06a, 0x5fc6}, + {0xe06b, 0x7142}, + {0xe06c, 0xa95e}, + {0xe06d, 0xa960}, + {0xe06e, 0x99fc}, + {0xe06f, 0x9d02}, + {0xe070, 0x80f5}, + {0xe071, 0xa644}, + {0xe072, 0x9252}, + {0xe073, 0x48ca}, + {0xe074, 0xc5d8}, + {0xe075, 0xc6c4}, + {0xe076, 0xb2c6}, + {0xe077, 0xa506}, + {0xe078, 0xa966}, + {0xe079, 0xbbec}, + {0xe07a, 0x8cbd}, + {0xe07b, 0xb77e}, + {0xe07c, 0x7e02}, + {0xe07d, 0x456e}, + {0xe07e, 0x55f0}, + {0xe080, 0x7780}, + {0xe081, 0xc48e}, + {0xe082, 0x6094}, + {0xe083, 0x8cc2}, + {0xe084, 0x7d4e}, + {0xe085, 0x8cc4}, + {0xe086, 0xad1e}, + {0xe087, 0x4db5}, + {0xe088, 0x3fd0}, + {0xe089, 0xaee1}, + {0xe08a, 0x3fa0}, + {0xe08b, 0xbdb1}, + {0xe08c, 0xa325}, + {0xe08d, 0xc116}, + {0xe08e, 0x7e11}, + {0xe08f, 0x77fc}, + {0xe090, 0x4c71}, + {0xe091, 0x7ee6}, + {0xe092, 0xb2e1}, + {0xe093, 0x4359}, + {0xe094, 0x70b5}, + {0xe095, 0x5561}, + {0xe096, 0x7ee8}, + {0xe097, 0x7118}, + {0xe098, 0x76b9}, + {0xe099, 0xbcd4}, + {0xe09a, 0x4470}, + {0xe09b, 0xb801}, + {0xe09c, 0x6476}, + {0xe09d, 0xb0ee}, + {0xe09e, 0x447e}, + {0xe09f, 0xbcd8}, + {0xe0a0, 0x6138}, + {0xe0a1, 0xb76d}, + {0xe0a2, 0x4cac}, + {0xe0a3, 0x4171}, + {0xe0a4, 0x4fc0}, + {0xe0a5, 0x733d}, + {0xe0a6, 0x759a}, + {0xe0a7, 0x987c}, + {0xe0a8, 0x48f0}, + {0xe0a9, 0x4f59}, + {0xe0aa, 0x4bb4}, + {0xe0ab, 0x829d}, + {0xe0ac, 0x74b5}, + {0xe0ad, 0x714a}, + {0xe0ae, 0x6940}, + {0xe0af, 0xb7ae}, + {0xe0b0, 0x7185}, + {0xe0b1, 0x6bb1}, + {0xe0b2, 0x99fd}, + {0xe0b3, 0xb5ba}, + {0xe0b4, 0x4780}, + {0xe0b5, 0x6941}, + {0xe0b6, 0x7a04}, + {0xe0b7, 0x7070}, + {0xe0b8, 0xa4b1}, + {0xe0b9, 0x62d8}, + {0xe0ba, 0x8db9}, + {0xe0bb, 0x3c2a}, + {0xe0bc, 0x9a76}, + {0xe0bd, 0x5080}, + {0xe0be, 0x6fb9}, + {0xe0bf, 0x843a}, + {0xe0c0, 0x5e2d}, + {0xe0c1, 0x45d5}, + {0xe0c2, 0x9b72}, + {0xe0c3, 0x58cd}, + {0xe0c4, 0x3b30}, + {0xe0c5, 0x8340}, + {0xe0c6, 0x5dcc}, + {0xe0c7, 0x4e8c}, + {0xe0c8, 0x3b56}, + {0xe0c9, 0x3b75}, + {0xe0ca, 0x9901}, + {0xe0cb, 0x5cc6}, + {0xe0cc, 0x9fb6}, + {0xe0cd, 0x46e8}, + {0xe0ce, 0x86c0}, + {0xe0cf, 0x7485}, + {0xe0d0, 0x433e}, + {0xe0d1, 0x8865}, + {0xe0d2, 0x89ee}, + {0xe0d3, 0xb6a8}, + {0xe0d4, 0x3eb1}, + {0xe0d5, 0x9a2c}, + {0xe0d6, 0x4dda}, + {0xe0d7, 0x7fc5}, + {0xe0d8, 0x86f1}, + {0xe0d9, 0x6d82}, + {0xe0da, 0x7749}, + {0xe0db, 0x8971}, + {0xe0dc, 0x48f1}, + {0xe0dd, 0x691d}, + {0xe0de, 0x8576}, + {0xe0df, 0x8dc1}, + {0xe0e0, 0x7a4c}, + {0xe0e1, 0x439d}, + {0xe0e2, 0x4d9a}, + {0xe0e3, 0x5dc1}, + {0xe0e4, 0x6ab1}, + {0xe0e5, 0x6df5}, + {0xe0e6, 0xb344}, + {0xe0e7, 0x9318}, + {0xe0e8, 0x8780}, + {0xe0e9, 0x9234}, + {0xe0ea, 0x427d}, + {0xe0eb, 0x63e9}, + {0xe0ec, 0x82b9}, + {0xe0ed, 0xa2f8}, + {0xe0ee, 0x6720}, + {0xe0ef, 0x8289}, + {0xe0f0, 0x7b86}, + {0xe0f1, 0x600c}, + {0xe0f2, 0x7865}, + {0xe0f3, 0xb895}, + {0xe0f4, 0xb990}, + {0xe0f5, 0x8e05}, + {0xe0f6, 0xb996}, + {0xe0f7, 0xbb16}, + {0xe0f8, 0xa2fe}, + {0xe0f9, 0xc1f5}, + {0xe0fa, 0x86b0}, + {0xe0fb, 0x9d3a}, + {0xe0fc, 0x4806}, + {0xe0fd, 0xbd5d}, + {0xe0fe, 0x5c85}, + {0xe140, 0xa6bc}, + {0xe141, 0xbcde}, + {0xe142, 0x7621}, + {0xe143, 0xb902}, + {0xe144, 0xb056}, + {0xe145, 0xc746}, + {0xe146, 0x7dba}, + {0xe147, 0x4c64}, + {0xe148, 0x5062}, + {0xe149, 0xc016}, + {0xe14a, 0xbae9}, + {0xe14b, 0x55e4}, + {0xe14c, 0x9e8e}, + {0xe14d, 0x8b49}, + {0xe14e, 0x88fd}, + {0xe14f, 0x4819}, + {0xe150, 0xbca5}, + {0xe151, 0x49dc}, + {0xe152, 0xb8ad}, + {0xe153, 0xb676}, + {0xe154, 0x898a}, + {0xe155, 0xc750}, + {0xe156, 0x5cd6}, + {0xe157, 0xa329}, + {0xe158, 0x7b1a}, + {0xe159, 0x7311}, + {0xe15a, 0xafc1}, + {0xe15b, 0x9da1}, + {0xe15c, 0xbeba}, + {0xe15d, 0x9c94}, + {0xe15e, 0xc514}, + {0xe15f, 0xa89c}, + {0xe160, 0x5082}, + {0xe161, 0x9cc8}, + {0xe162, 0x8f20}, + {0xe163, 0x49ae}, + {0xe164, 0xbc4c}, + {0xe165, 0x533d}, + {0xe166, 0x6f80}, + {0xe167, 0x9a18}, + {0xe168, 0x4841}, + {0xe169, 0x4b76}, + {0xe16a, 0xbc4e}, + {0xe16b, 0xb7ea}, + {0xe16c, 0x3c14}, + {0xe16d, 0xbe40}, + {0xe16e, 0x685a}, + {0xe16f, 0x885d}, + {0xe170, 0x44be}, + {0xe171, 0xba75}, + {0xe172, 0x74f4}, + {0xe173, 0xbd16}, + {0xe174, 0xb350}, + {0xe175, 0x685d}, + {0xe176, 0x9caa}, + {0xe177, 0x8902}, + {0xe178, 0x84f0}, + {0xe179, 0xb57a}, + {0xe17a, 0xb0fd}, + {0xe17b, 0xb57c}, + {0xe17c, 0x83f4}, + {0xe17d, 0x9248}, + {0xe17e, 0x4831}, + {0xe180, 0xb106}, + {0xe181, 0x78e6}, + {0xe182, 0x7f72}, + {0xe183, 0x7f74}, + {0xe184, 0x83f5}, + {0xe185, 0xabd4}, + {0xe186, 0x6930}, + {0xe187, 0x969e}, + {0xe188, 0x7f79}, + {0xe189, 0xb10e}, + {0xe18a, 0x4025}, + {0xe18b, 0x9744}, + {0xe18c, 0x9784}, + {0xe18d, 0x74fc}, + {0xe18e, 0x6a25}, + {0xe18f, 0x5742}, + {0xe190, 0xb3f4}, + {0xe191, 0x777e}, + {0xe192, 0x4d32}, + {0xe193, 0xbf4a}, + {0xe194, 0x4fa4}, + {0xe195, 0x88f9}, + {0xe196, 0x8efa}, + {0xe197, 0x3cb9}, + {0xe198, 0xc010}, + {0xe199, 0xc17c}, + {0xe19a, 0x3ca1}, + {0xe19b, 0x7b7e}, + {0xe19c, 0x56ad}, + {0xe19d, 0x8272}, + {0xe19e, 0x4f22}, + {0xe19f, 0x944d}, + {0xe1a0, 0x8d19}, + {0xe1a1, 0xa30e}, + {0xe1a2, 0xa4d4}, + {0xe1a3, 0x7d52}, + {0xe1a4, 0xbf39}, + {0xe1a5, 0x5681}, + {0xe1a6, 0x5378}, + {0xe1a7, 0x64a5}, + {0xe1a8, 0x8ab8}, + {0xe1a9, 0x8b74}, + {0xe1aa, 0x8a11}, + {0xe1ab, 0x8f35}, + {0xe1ac, 0xaf41}, + {0xe1ad, 0xa8f2}, + {0xe1ae, 0x3c60}, + {0xe1af, 0x4394}, + {0xe1b0, 0x72bc}, + {0xe1b1, 0x3c90}, + {0xe1b2, 0x6080}, + {0xe1b3, 0x6f90}, + {0xe1b4, 0x4fdc}, + {0xe1b5, 0x6644}, + {0xe1b6, 0xaca0}, + {0xe1b7, 0x4c15}, + {0xe1b8, 0x59d8}, + {0xe1b9, 0x7dd4}, + {0xe1ba, 0x8089}, + {0xe1bb, 0xb459}, + {0xe1bc, 0x5015}, + {0xe1bd, 0x6904}, + {0xe1be, 0xaec2}, + {0xe1bf, 0xc0c0}, + {0xe1c0, 0x7398}, + {0xe1c1, 0x7272}, + {0xe1c2, 0x99bd}, + {0xe1c3, 0xafa5}, + {0xe1c4, 0x5a9e}, + {0xe1c5, 0xaa4c}, + {0xe1c6, 0x5c66}, + {0xe1c7, 0x7002}, + {0xe1c8, 0x6db2}, + {0xe1c9, 0x91b0}, + {0xe1ca, 0xb238}, + {0xe1cb, 0xa1f1}, + {0xe1cc, 0xbc98}, + {0xe1cd, 0xa315}, + {0xe1ce, 0xb91c}, + {0xe1cf, 0x4b7c}, + {0xe1d0, 0x7a2d}, + {0xe1d1, 0xc5ce}, + {0xe1d2, 0x7e3a}, + {0xe1d3, 0x9652}, + {0xe1d4, 0x99c4}, + {0xe1d5, 0x6540}, + {0xe1d6, 0xbf38}, + {0xe1d7, 0x77fe}, + {0xe1d8, 0x4db9}, + {0xe1d9, 0x40f6}, + {0xe1da, 0xb3c9}, + {0xe1db, 0x4e9a}, + {0xe1dc, 0x4762}, + {0xe1dd, 0x5425}, + {0xe1de, 0x4ac4}, + {0xe1df, 0xaf04}, + {0xe1e0, 0xb148}, + {0xe1e1, 0x5fc1}, + {0xe1e2, 0x7274}, + {0xe1e3, 0xa6fe}, + {0xe1e4, 0x4511}, + {0xe1e5, 0x61ec}, + {0xe1e6, 0xb1ed}, + {0xe1e7, 0xc0ea}, + {0xe1e8, 0x68e4}, + {0xe1e9, 0x8fb9}, + {0xe1ea, 0x942a}, + {0xe1eb, 0x9044}, + {0xe1ec, 0x8ed1}, + {0xe1ed, 0x3be6}, + {0xe1ee, 0x5b80}, + {0xe1ef, 0x7cb1}, + {0xe1f0, 0x84c2}, + {0xe1f1, 0xbc09}, + {0xe1f2, 0xa79e}, + {0xe1f3, 0x8668}, + {0xe1f4, 0x5482}, + {0xe1f5, 0x919d}, + {0xe1f6, 0x70a8}, + {0xe1f7, 0x9798}, + {0xe1f8, 0x9b3d}, + {0xe1f9, 0x3f48}, + {0xe1fa, 0x6d60}, + {0xe1fb, 0x758d}, + {0xe1fc, 0xb900}, + {0xe1fd, 0xa8c2}, + {0xe1fe, 0xb5fd}, + {0xe240, 0x7032}, + {0xe241, 0x4921}, + {0xe242, 0xc625}, + {0xe243, 0x539c}, + {0xe244, 0xb90c}, + {0xe245, 0xa505}, + {0xe246, 0x5d69}, + {0xe247, 0x5811}, + {0xe248, 0x8a4e}, + {0xe249, 0x7d8e}, + {0xe24a, 0x9194}, + {0xe24b, 0x4e5e}, + {0xe24c, 0x9998}, + {0xe24d, 0xa748}, + {0xe24e, 0xb4b9}, + {0xe24f, 0x4411}, + {0xe250, 0x9674}, + {0xe251, 0xa0a0}, + {0xe252, 0xa629}, + {0xe253, 0x855e}, + {0xe254, 0x8b90}, + {0xe255, 0x8f02}, + {0xe256, 0x67a2}, + {0xe257, 0x8770}, + {0xe258, 0xb291}, + {0xe259, 0xb645}, + {0xe25a, 0x3ccd}, + {0xe25b, 0x540e}, + {0xe25c, 0x4605}, + {0xe25d, 0xac18}, + {0xe25e, 0x5050}, + {0xe25f, 0xbb8d}, + {0xe260, 0x8b94}, + {0xe261, 0x55ea}, + {0xe262, 0x4269}, + {0xe263, 0x824c}, + {0xe264, 0xab99}, + {0xe265, 0x5222}, + {0xe266, 0x6dcd}, + {0xe267, 0x5182}, + {0xe268, 0x59c9}, + {0xe269, 0xb646}, + {0xe26a, 0x8bea}, + {0xe26b, 0x3d48}, + {0xe26c, 0x92f8}, + {0xe26d, 0x912e}, + {0xe26e, 0x4560}, + {0xe26f, 0x84d0}, + {0xe270, 0x54cc}, + {0xe271, 0xbc14}, + {0xe272, 0xb401}, + {0xe273, 0x8db4}, + {0xe274, 0x8771}, + {0xe275, 0x5c6a}, + {0xe276, 0x5f5c}, + {0xe277, 0xb611}, + {0xe278, 0x6e3d}, + {0xe279, 0x4f26}, + {0xe27a, 0xb4d9}, + {0xe27b, 0xc2e0}, + {0xe27c, 0xa705}, + {0xe27d, 0x5780}, + {0xe27e, 0x9195}, + {0xe280, 0x63a8}, + {0xe281, 0x9c54}, + {0xe282, 0x6f2e}, + {0xe283, 0xbaf2}, + {0xe284, 0x7a69}, + {0xe285, 0x8342}, + {0xe286, 0xa438}, + {0xe287, 0x51ad}, + {0xe288, 0xc5ea}, + {0xe289, 0x8366}, + {0xe28a, 0xa07e}, + {0xe28b, 0x975e}, + {0xe28c, 0x80ae}, + {0xe28d, 0x5a31}, + {0xe28e, 0x6f70}, + {0xe28f, 0x78ad}, + {0xe290, 0x413e}, + {0xe291, 0x4a11}, + {0xe292, 0x5a71}, + {0xe293, 0x41c8}, + {0xe294, 0x8772}, + {0xe295, 0xba29}, + {0xe296, 0x99a0}, + {0xe297, 0xc789}, + {0xe298, 0x422c}, + {0xe299, 0xb846}, + {0xe29a, 0x4ed5}, + {0xe29b, 0x6679}, + {0xe29c, 0xc029}, + {0xe29d, 0x96fd}, + {0xe29e, 0x9760}, + {0xe29f, 0x9f45}, + {0xe2a0, 0x6cf4}, + {0xe2a1, 0x9ab8}, + {0xe2a2, 0xb328}, + {0xe2a3, 0x5c9e}, + {0xe2a4, 0x7bbc}, + {0xe2a5, 0x835c}, + {0xe2a6, 0x9530}, + {0xe2a7, 0x4ac9}, + {0xe2a8, 0x7f45}, + {0xe2a9, 0x6025}, + {0xe2aa, 0x43e4}, + {0xe2ab, 0xa36e}, + {0xe2ac, 0xa3cd}, + {0xe2ad, 0x7e3e}, + {0xe2ae, 0x82de}, + {0xe2af, 0xbf04}, + {0xe2b0, 0x6b54}, + {0xe2b1, 0x6dec}, + {0xe2b2, 0x7754}, + {0xe2b3, 0xab51}, + {0xe2b4, 0xaea1}, + {0xe2b5, 0x613c}, + {0xe2b6, 0x4915}, + {0xe2b7, 0x63ac}, + {0xe2b8, 0x9b41}, + {0xe2b9, 0xb61a}, + {0xe2ba, 0xc1a8}, + {0xe2bb, 0x96a1}, + {0xe2bc, 0x9cf6}, + {0xe2bd, 0xa11c}, + {0xe2be, 0xa72a}, + {0xe2bf, 0x915e}, + {0xe2c0, 0xb9d0}, + {0xe2c1, 0x4769}, + {0xe2c2, 0xb375}, + {0xe2c3, 0xa996}, + {0xe2c4, 0x4170}, + {0xe2c5, 0xb904}, + {0xe2c6, 0x6364}, + {0xe2c7, 0x43c9}, + {0xe2c8, 0x9a08}, + {0xe2c9, 0x8125}, + {0xe2ca, 0xac7e}, + {0xe2cb, 0x6a62}, + {0xe2cc, 0x9345}, + {0xe2cd, 0xc4b6}, + {0xe2ce, 0x82c2}, + {0xe2cf, 0x87cd}, + {0xe2d0, 0xa552}, + {0xe2d1, 0x5bd2}, + {0xe2d2, 0x8666}, + {0xe2d3, 0xac6d}, + {0xe2d4, 0xa985}, + {0xe2d5, 0xa195}, + {0xe2d6, 0x3bae}, + {0xe2d7, 0xb998}, + {0xe2d8, 0x3f56}, + {0xe2d9, 0x592d}, + {0xe2da, 0x3c2e}, + {0xe2db, 0x6a5c}, + {0xe2dc, 0x4464}, + {0xe2dd, 0xab4d}, + {0xe2de, 0x7831}, + {0xe2df, 0xb6c2}, + {0xe2e0, 0xab80}, + {0xe2e1, 0x4d2d}, + {0xe2e2, 0x4b68}, + {0xe2e3, 0x44cd}, + {0xe2e4, 0xa555}, + {0xe2e5, 0xc1ed}, + {0xe2e6, 0x85aa}, + {0xe2e7, 0x47aa}, + {0xe2e8, 0xa554}, + {0xe2e9, 0x6ebd}, + {0xe2ea, 0x4541}, + {0xe2eb, 0x494a}, + {0xe2ec, 0x99b1}, + {0xe2ed, 0x401e}, + {0xe2ee, 0x84be}, + {0xe2ef, 0x6081}, + {0xe2f0, 0x48b1}, + {0xe2f1, 0x86da}, + {0xe2f2, 0x4bca}, + {0xe2f3, 0xb198}, + {0xe2f4, 0xc79c}, + {0xe2f5, 0x834c}, + {0xe2f6, 0x561d}, + {0xe2f7, 0x4556}, + {0xe2f8, 0xb45c}, + {0xe2f9, 0xb36e}, + {0xe2fa, 0xa011}, + {0xe2fb, 0xaf99}, + {0xe2fc, 0x4362}, + {0xe2fd, 0x6ea5}, + {0xe2fe, 0xaec4}, + {0xe340, 0x8bed}, + {0xe341, 0x9682}, + {0xe342, 0x9bb9}, + {0xe343, 0xae20}, + {0xe344, 0xbf4d}, + {0xe345, 0x3dfe}, + {0xe346, 0x5e76}, + {0xe347, 0x3f88}, + {0xe348, 0x9624}, + {0xe349, 0x4872}, + {0xe34a, 0x96d0}, + {0xe34b, 0x41c9}, + {0xe34c, 0xc45e}, + {0xe34d, 0x478a}, + {0xe34e, 0xbc66}, + {0xe34f, 0x8918}, + {0xe350, 0x9fe4}, + {0xe351, 0x8bee}, + {0xe352, 0x5671}, + {0xe353, 0xbe5a}, + {0xe354, 0x7ddd}, + {0xe355, 0x8b9c}, + {0xe356, 0x5672}, + {0xe357, 0x75c6}, + {0xe358, 0xbb91}, + {0xe359, 0x8774}, + {0xe35a, 0xb12a}, + {0xe35b, 0x3d60}, + {0xe35c, 0x417c}, + {0xe35d, 0x69a1}, + {0xe35e, 0x59ce}, + {0xe35f, 0x985e}, + {0xe360, 0xc0e2}, + {0xe361, 0x81ea}, + {0xe362, 0x8386}, + {0xe363, 0x843d}, + {0xe364, 0x4e74}, + {0xe365, 0x662e}, + {0xe366, 0x8214}, + {0xe367, 0x9cc0}, + {0xe368, 0x95be}, + {0xe369, 0xb402}, + {0xe36a, 0x9934}, + {0xe36b, 0x7115}, + {0xe36c, 0x6e92}, + {0xe36d, 0x3e2d}, + {0xe36e, 0x9fe8}, + {0xe36f, 0xac19}, + {0xe370, 0x5f6a}, + {0xe371, 0x68dc}, + {0xe372, 0x475d}, + {0xe373, 0x5315}, + {0xe374, 0x5904}, + {0xe375, 0x4140}, + {0xe376, 0x96d5}, + {0xe377, 0x81bc}, + {0xe378, 0x5cbc}, + {0xe379, 0xb61d}, + {0xe37a, 0x6e45}, + {0xe37b, 0xc341}, + {0xe37c, 0x47ec}, + {0xe37d, 0xa9a1}, + {0xe37e, 0x9fe9}, + {0xe380, 0x8184}, + {0xe381, 0x7471}, + {0xe382, 0x6449}, + {0xe383, 0xba41}, + {0xe384, 0xad7d}, + {0xe385, 0x9132}, + {0xe386, 0xc776}, + {0xe387, 0xc271}, + {0xe388, 0x9494}, + {0xe389, 0x4794}, + {0xe38a, 0xa70a}, + {0xe38b, 0xac1a}, + {0xe38c, 0x9029}, + {0xe38d, 0x8776}, + {0xe38e, 0x9f48}, + {0xe38f, 0xc3be}, + {0xe390, 0x5fa5}, + {0xe391, 0x8101}, + {0xe392, 0x708d}, + {0xe393, 0xb1fe}, + {0xe394, 0xa82a}, + {0xe395, 0xa88a}, + {0xe396, 0xac84}, + {0xe397, 0x6e46}, + {0xe398, 0x43cd}, + {0xe399, 0x73cc}, + {0xe39a, 0x64f2}, + {0xe39b, 0x87d8}, + {0xe39c, 0x922e}, + {0xe39d, 0x7f94}, + {0xe39e, 0xb33d}, + {0xe39f, 0xb5cd}, + {0xe3a0, 0x5b79}, + {0xe3a1, 0x6fa8}, + {0xe3a2, 0xbc2d}, + {0xe3a3, 0x3e42}, + {0xe3a4, 0x99d6}, + {0xe3a5, 0x8b85}, + {0xe3a6, 0x712d}, + {0xe3a7, 0x71e6}, + {0xe3a8, 0xb490}, + {0xe3a9, 0x9e55}, + {0xe3aa, 0x8fed}, + {0xe3ab, 0x8d60}, + {0xe3ac, 0xac32}, + {0xe3ad, 0x546e}, + {0xe3ae, 0x4534}, + {0xe3af, 0xa29a}, + {0xe3b0, 0x4809}, + {0xe3b1, 0x5ff0}, + {0xe3b2, 0x4b3c}, + {0xe3b3, 0xbc36}, + {0xe3b4, 0x7188}, + {0xe3b5, 0x5285}, + {0xe3b6, 0x7498}, + {0xe3b7, 0xc502}, + {0xe3b8, 0x8d1a}, + {0xe3b9, 0x3f69}, + {0xe3ba, 0x9a7c}, + {0xe3bb, 0x8c18}, + {0xe3bc, 0xb788}, + {0xe3bd, 0x6b18}, + {0xe3be, 0x8cfc}, + {0xe3bf, 0x47c1}, + {0xe3c0, 0x48da}, + {0xe3c1, 0x7834}, + {0xe3c2, 0x7f25}, + {0xe3c3, 0x9ec4}, + {0xe3c4, 0x6289}, + {0xe3c5, 0x988c}, + {0xe3c6, 0xafd1}, + {0xe3c7, 0xa302}, + {0xe3c8, 0x5f2c}, + {0xe3c9, 0x80c1}, + {0xe3ca, 0x6f2a}, + {0xe3cb, 0x9bd0}, + {0xe3cc, 0x7c29}, + {0xe3cd, 0x71e9}, + {0xe3ce, 0x6bae}, + {0xe3cf, 0x7370}, + {0xe3d0, 0xb9fa}, + {0xe3d1, 0x44ed}, + {0xe3d2, 0xa749}, + {0xe3d3, 0xa436}, + {0xe3d4, 0x6350}, + {0xe3d5, 0x5278}, + {0xe3d6, 0x8fda}, + {0xe3d7, 0x9072}, + {0xe3d8, 0x5e78}, + {0xe3d9, 0x9eb2}, + {0xe3da, 0x907c}, + {0xe3db, 0x6ef9}, + {0xe3dc, 0xc4d8}, + {0xe3dd, 0x85f1}, + {0xe3de, 0x8c5d}, + {0xe3df, 0x98c4}, + {0xe3e0, 0x8af1}, + {0xe3e1, 0x9970}, + {0xe3e2, 0x43fc}, + {0xe3e3, 0x5534}, + {0xe3e4, 0xbad6}, + {0xe3e5, 0x81f5}, + {0xe3e6, 0x800d}, + {0xe3e7, 0x5176}, + {0xe3e8, 0x7fa1}, + {0xe3e9, 0x5a4a}, + {0xe3ea, 0x4022}, + {0xe3eb, 0xa46d}, + {0xe3ec, 0x5dbc}, + {0xe3ed, 0xa300}, + {0xe3ee, 0x73f4}, + {0xe3ef, 0x579e}, + {0xe3f0, 0x9838}, + {0xe3f1, 0x798e}, + {0xe3f2, 0x7a58}, + {0xe3f3, 0xb121}, + {0xe3f4, 0x9980}, + {0xe3f5, 0x51dc}, + {0xe3f6, 0x786e}, + {0xe3f7, 0x7dd5}, + {0xe3f8, 0x7bfc}, + {0xe3f9, 0xae06}, + {0xe3fa, 0x8612}, + {0xe3fb, 0xa160}, + {0xe3fc, 0x5f30}, + {0xe3fd, 0x80c4}, + {0xe3fe, 0x6ad0}, + {0xe440, 0x3be5}, + {0xe441, 0x4fd4}, + {0xe442, 0xb87a}, + {0xe443, 0x93a6}, + {0xe444, 0x6f48}, + {0xe445, 0x8bf4}, + {0xe446, 0x9941}, + {0xe447, 0x8344}, + {0xe448, 0x4f2d}, + {0xe449, 0x5d81}, + {0xe44a, 0x92b6}, + {0xe44b, 0x976e}, + {0xe44c, 0x6fed}, + {0xe44d, 0x8f1e}, + {0xe44e, 0xaa1a}, + {0xe44f, 0xbfc5}, + {0xe450, 0xacb2}, + {0xe451, 0xbd08}, + {0xe452, 0x9df9}, + {0xe453, 0x4ba8}, + {0xe454, 0x5aca}, + {0xe455, 0x5f89}, + {0xe456, 0xb78d}, + {0xe457, 0x506d}, + {0xe458, 0x7c56}, + {0xe459, 0x7e52}, + {0xe45a, 0x7365}, + {0xe45b, 0xa270}, + {0xe45c, 0xaba0}, + {0xe45d, 0xbbfc}, + {0xe45e, 0x3e72}, + {0xe45f, 0x9a9c}, + {0xe460, 0xba4d}, + {0xe461, 0x445e}, + {0xe462, 0x9faa}, + {0xe463, 0x41e2}, + {0xe464, 0x5d82}, + {0xe465, 0x665d}, + {0xe466, 0x5f70}, + {0xe467, 0x6d3a}, + {0xe468, 0x5562}, + {0xe469, 0x4442}, + {0xe46a, 0xa259}, + {0xe46b, 0xc281}, + {0xe46c, 0x9950}, + {0xe46d, 0x6d3c}, + {0xe46e, 0x60dd}, + {0xe46f, 0xb9b1}, + {0xe470, 0x9f10}, + {0xe471, 0x7116}, + {0xe472, 0xc586}, + {0xe473, 0x7c94}, + {0xe474, 0xac1d}, + {0xe475, 0x8de4}, + {0xe476, 0x9601}, + {0xe477, 0x5d31}, + {0xe478, 0x7c95}, + {0xe479, 0xb292}, + {0xe47a, 0x487e}, + {0xe47b, 0xbdc6}, + {0xe47c, 0x6c4d}, + {0xe47d, 0xa934}, + {0xe47e, 0x522c}, + {0xe480, 0x7d95}, + {0xe481, 0x8974}, + {0xe482, 0x74e6}, + {0xe483, 0x8620}, + {0xe484, 0x92b8}, + {0xe485, 0x46b2}, + {0xe486, 0x5884}, + {0xe487, 0x7542}, + {0xe488, 0x9dc5}, + {0xe489, 0x4124}, + {0xe48a, 0xc46d}, + {0xe48b, 0xc0a6}, + {0xe48c, 0xa058}, + {0xe48d, 0x796a}, + {0xe48e, 0xc758}, + {0xe48f, 0x6d16}, + {0xe490, 0x4540}, + {0xe491, 0xbabe}, + {0xe492, 0x66ec}, + {0xe493, 0x581d}, + {0xe494, 0x4f35}, + {0xe495, 0x9da4}, + {0xe496, 0x4524}, + {0xe497, 0x7ba9}, + {0xe498, 0x6fc5}, + {0xe499, 0x78c0}, + {0xe49a, 0x8781}, + {0xe49b, 0x7b24}, + {0xe49c, 0x74f0}, + {0xe49d, 0x8c80}, + {0xe49e, 0x86a6}, + {0xe49f, 0x6d55}, + {0xe4a0, 0x80b8}, + {0xe4a1, 0x614c}, + {0xe4a2, 0xa34d}, + {0xe4a3, 0x77a5}, + {0xe4a4, 0x6615}, + {0xe4a5, 0xbffe}, + {0xe4a6, 0xb5a4}, + {0xe4a7, 0x6299}, + {0xe4a8, 0xc3a4}, + {0xe4a9, 0x656d}, + {0xe4aa, 0xad40}, + {0xe4ab, 0x62c4}, + {0xe4ac, 0x9d8c}, + {0xe4ad, 0xaec5}, + {0xe4ae, 0x6848}, + {0xe4af, 0x790e}, + {0xe4b0, 0x6060}, + {0xe4b1, 0xaec6}, + {0xe4b2, 0x9259}, + {0xe4b3, 0x9a59}, + {0xe4b4, 0xa529}, + {0xe4b5, 0x7275}, + {0xe4b6, 0xa30c}, + {0xe4b7, 0xc55d}, + {0xe4b8, 0x6d31}, + {0xe4b9, 0x4395}, + {0xe4ba, 0x3d70}, + {0xe4bb, 0xa60a}, + {0xe4bc, 0x7e68}, + {0xe4bd, 0x6198}, + {0xe4be, 0xc40d}, + {0xe4bf, 0x8a45}, + {0xe4c0, 0xa61d}, + {0xe4c1, 0x99c1}, + {0xe4c2, 0x508d}, + {0xe4c3, 0xc53e}, + {0xe4c4, 0x87e9}, + {0xe4c5, 0x962d}, + {0xe4c6, 0x57e0}, + {0xe4c7, 0x545e}, + {0xe4c8, 0x4a96}, + {0xe4c9, 0x95d4}, + {0xe4ca, 0x5b3c}, + {0xe4cb, 0x7ad9}, + {0xe4cc, 0x9891}, + {0xe4cd, 0xab2d}, + {0xe4ce, 0xafad}, + {0xe4cf, 0x801d}, + {0xe4d0, 0x68c9}, + {0xe4d1, 0x9a02}, + {0xe4d2, 0x61f0}, + {0xe4d3, 0xad5d}, + {0xe4d4, 0x86d0}, + {0xe4d5, 0x66bd}, + {0xe4d6, 0xae1a}, + {0xe4d7, 0xa4d6}, + {0xe4d8, 0x7e3c}, + {0xe4d9, 0xb0cc}, + {0xe4da, 0x8dbc}, + {0xe4db, 0x6fbc}, + {0xe4dc, 0x9560}, + {0xe4dd, 0x7da2}, + {0xe4de, 0xb702}, + {0xe4df, 0x89ad}, + {0xe4e0, 0x75c2}, + {0xe4e1, 0x9260}, + {0xe4e2, 0x9bb8}, + {0xe4e3, 0x6381}, + {0xe4e4, 0x3f78}, + {0xe4e5, 0xacaa}, + {0xe4e6, 0x56b8}, + {0xe4e7, 0x9d0c}, + {0xe4e8, 0x8631}, + {0xe4e9, 0x80f9}, + {0xe4ea, 0x61fe}, + {0xe4eb, 0xb705}, + {0xe4ec, 0xaa0d}, + {0xe4ed, 0x730e}, + {0xe4ee, 0x4341}, + {0xe4ef, 0x5ffc}, + {0xe4f0, 0x7c11}, + {0xe4f1, 0x61b4}, + {0xe4f2, 0x76dc}, + {0xe4f3, 0xc3bc}, + {0xe4f4, 0xb33a}, + {0xe4f5, 0x7b04}, + {0xe4f6, 0xade5}, + {0xe4f7, 0x57c9}, + {0xe4f8, 0x9868}, + {0xe4f9, 0x994a}, + {0xe4fa, 0x945c}, + {0xe4fb, 0x952d}, + {0xe4fc, 0x9fee}, + {0xe4fd, 0x4466}, + {0xe4fe, 0x72a2}, + {0xe540, 0xc759}, + {0xe541, 0x8721}, + {0xe542, 0x3bfa}, + {0xe543, 0x8782}, + {0xe544, 0xa93a}, + {0xe545, 0xaf36}, + {0xe546, 0xc4f2}, + {0xe547, 0x7478}, + {0xe548, 0x3b2e}, + {0xe549, 0x700d}, + {0xe54a, 0x9bfc}, + {0xe54b, 0x71dc}, + {0xe54c, 0x509a}, + {0xe54d, 0xa3e6}, + {0xe54e, 0x496c}, + {0xe54f, 0xc5f6}, + {0xe550, 0xc0e9}, + {0xe551, 0x3e88}, + {0xe552, 0x844e}, + {0xe553, 0xc6b4}, + {0xe554, 0x49b0}, + {0xe555, 0x9c9a}, + {0xe556, 0x4fca}, + {0xe557, 0x8a86}, + {0xe558, 0x8bfc}, + {0xe559, 0xc515}, + {0xe55a, 0x6466}, + {0xe55b, 0xba5a}, + {0xe55c, 0x6a6a}, + {0xe55d, 0x5b28}, + {0xe55e, 0x7dc8}, + {0xe55f, 0x44f9}, + {0xe560, 0x9ee2}, + {0xe561, 0xa68d}, + {0xe562, 0x76e1}, + {0xe563, 0x9da5}, + {0xe564, 0x5aae}, + {0xe565, 0x4ba9}, + {0xe566, 0x986e}, + {0xe567, 0xc03e}, + {0xe568, 0x7b25}, + {0xe569, 0x7f24}, + {0xe56a, 0x7b26}, + {0xe56b, 0x60be}, + {0xe56c, 0x40a4}, + {0xe56d, 0x5746}, + {0xe56e, 0x728e}, + {0xe56f, 0x6fd5}, + {0xe570, 0x5410}, + {0xe571, 0xa57e}, + {0xe572, 0x8285}, + {0xe573, 0xa272}, + {0xe574, 0x606a}, + {0xe575, 0x4d8c}, + {0xe576, 0xa835}, + {0xe577, 0xffff9342}, + {0xe578, 0x6392}, + {0xe579, 0x7731}, + {0xe57a, 0x5360}, + {0xe57b, 0x7ead}, + {0xe57c, 0x6eb8}, + {0xe57d, 0xb131}, + {0xe57e, 0x4de0}, + {0xe580, 0x76e4}, + {0xe581, 0x5c78}, + {0xe582, 0xa8dc}, + {0xe583, 0x50e6}, + {0xe584, 0xa090}, + {0xe585, 0xa32d}, + {0xe586, 0xa25e}, + {0xe587, 0x572c}, + {0xe588, 0x9209}, + {0xe589, 0x6514}, + {0xe58a, 0x52b2}, + {0xe58b, 0x6e4a}, + {0xe58c, 0xc041}, + {0xe58d, 0x9e35}, + {0xe58e, 0xbe08}, + {0xe58f, 0x60a4}, + {0xe590, 0xb168}, + {0xe591, 0x510a}, + {0xe592, 0xa7d5}, + {0xe593, 0xb964}, + {0xe594, 0x6ff2}, + {0xe595, 0x9629}, + {0xe596, 0x6215}, + {0xe597, 0xa3a4}, + {0xe598, 0x572d}, + {0xe599, 0xbf52}, + {0xe59a, 0x43d2}, + {0xe59b, 0x8d78}, + {0xe59c, 0x9692}, + {0xe59d, 0x5f1c}, + {0xe59e, 0x7161}, + {0xe59f, 0x8551}, + {0xe5a0, 0x8cd9}, + {0xe5a1, 0x9adc}, + {0xe5a2, 0x7545}, + {0xe5a3, 0x4ccc}, + {0xe5a4, 0xbe82}, + {0xe5a5, 0x7680}, + {0xe5a6, 0x9238}, + {0xe5a7, 0x8995}, + {0xe5a8, 0x3fc6}, + {0xe5a9, 0x5dde}, + {0xe5aa, 0xc594}, + {0xe5ab, 0x5d95}, + {0xe5ac, 0xab6c}, + {0xe5ad, 0xb726}, + {0xe5ae, 0xbba9}, + {0xe5af, 0x5526}, + {0xe5b0, 0x5e1a}, + {0xe5b1, 0x3ce8}, + {0xe5b2, 0x7fe6}, + {0xe5b3, 0x5bce}, + {0xe5b4, 0x4d06}, + {0xe5b5, 0x7fa6}, + {0xe5b6, 0xb898}, + {0xe5b7, 0x45f1}, + {0xe5b8, 0x84ac}, + {0xe5b9, 0x8b9d}, + {0xe5ba, 0x8ba2}, + {0xe5bb, 0xa5bd}, + {0xe5bc, 0x774c}, + {0xe5bd, 0x8bae}, + {0xe5be, 0x6164}, + {0xe5bf, 0x6762}, + {0xe5c0, 0x6761}, + {0xe5c1, 0x49ca}, + {0xe5c2, 0xaf74}, + {0xe5c3, 0xa556}, + {0xe5c4, 0x6b7a}, + {0xe5c5, 0xbd54}, + {0xe5c6, 0xb374}, + {0xe5c7, 0x5306}, + {0xe5c8, 0x6611}, + {0xe5c9, 0x6b2c}, + {0xe5ca, 0x4c1a}, + {0xe5cb, 0x5fc4}, + {0xe5cc, 0x863c}, + {0xe5cd, 0x4228}, + {0xe5ce, 0x7535}, + {0xe5cf, 0x8ef9}, + {0xe5d0, 0xa9e8}, + {0xe5d1, 0x9e58}, + {0xe5d2, 0x90a0}, + {0xe5d3, 0x7141}, + {0xe5d4, 0xa2c2}, + {0xe5d5, 0x61a4}, + {0xe5d6, 0x7add}, + {0xe5d7, 0x4909}, + {0xe5d8, 0x61f2}, + {0xe5d9, 0x8f0d}, + {0xe5da, 0xa7c0}, + {0xe5db, 0x3c34}, + {0xe5dc, 0x5a04}, + {0xe5dd, 0x9be1}, + {0xe5de, 0x7921}, + {0xe5df, 0xa82e}, + {0xe5e0, 0x7802}, + {0xe5e1, 0x6d15}, + {0xe5e2, 0xab56}, + {0xe5e3, 0x8051}, + {0xe5e4, 0x9b30}, + {0xe5e5, 0x7235}, + {0xe5e6, 0x654c}, + {0xe5e7, 0x62d4}, + {0xe5e8, 0xa0d2}, + {0xe5e9, 0xc244}, + {0xe5ea, 0x6f31}, + {0xe5eb, 0xc1c6}, + {0xe5ec, 0x641e}, + {0xe5ed, 0x5209}, + {0xe5ee, 0x4450}, + {0xe5ef, 0xa706}, + {0xe5f0, 0x6d09}, + {0xe5f1, 0x44dd}, + {0xe5f2, 0x6b29}, + {0xe5f3, 0x851c}, + {0xe5f4, 0x7f81}, + {0xe5f5, 0x5659}, + {0xe5f6, 0x3f66}, + {0xe5f7, 0xba85}, + {0xe5f8, 0x45a6}, + {0xe5f9, 0x98f6}, + {0xe5fa, 0x543a}, + {0xe5fb, 0xafd5}, + {0xe5fc, 0xa551}, + {0xe5fd, 0xb9cd}, + {0xe5fe, 0x3efa}, + {0xe640, 0x8cda}, + {0xe641, 0x5fad}, + {0xe642, 0xa01c}, + {0xe643, 0xc6a0}, + {0xe644, 0x616e}, + {0xe645, 0xb2f8}, + {0xe646, 0x80ba}, + {0xe647, 0x67e0}, + {0xe648, 0x50f2}, + {0xe649, 0x67d6}, + {0xe64a, 0x9955}, + {0xe64b, 0x7162}, + {0xe64c, 0x604e}, + {0xe64d, 0xadc4}, + {0xe64e, 0xbfe2}, + {0xe64f, 0x69c2}, + {0xe650, 0xc042}, + {0xe651, 0x3ffe}, + {0xe652, 0xc2ed}, + {0xe653, 0xc5fa}, + {0xe654, 0xac8d}, + {0xe655, 0xb294}, + {0xe656, 0x7e79}, + {0xe657, 0x85e4}, + {0xe658, 0x3b3e}, + {0xe659, 0x5770}, + {0xe65a, 0x8c00}, + {0xe65b, 0x7e58}, + {0xe65c, 0x43d4}, + {0xe65d, 0x4bf1}, + {0xe65e, 0x3da2}, + {0xe65f, 0xa7da}, + {0xe660, 0x7695}, + {0xe661, 0x9b9e}, + {0xe662, 0x6ec9}, + {0xe663, 0xb214}, + {0xe664, 0xb300}, + {0xe665, 0x850c}, + {0xe666, 0xa486}, + {0xe667, 0x91e1}, + {0xe668, 0x9d34}, + {0xe669, 0x9ba0}, + {0xe66a, 0x8c86}, + {0xe66b, 0x58ec}, + {0xe66c, 0x990d}, + {0xe66d, 0x496d}, + {0xe66e, 0x41fc}, + {0xe66f, 0x8606}, + {0xe670, 0x4bc1}, + {0xe671, 0x3ee8}, + {0xe672, 0x9365}, + {0xe673, 0x581e}, + {0xe674, 0xc5fc}, + {0xe675, 0xa515}, + {0xe676, 0xb6c6}, + {0xe677, 0x624a}, + {0xe678, 0x9f1c}, + {0xe679, 0x7948}, + {0xe67a, 0x6eb9}, + {0xe67b, 0x9b5e}, + {0xe67c, 0x93f9}, + {0xe67d, 0x9a1c}, + {0xe67e, 0xa276}, + {0xe680, 0x5870}, + {0xe681, 0xc0ae}, + {0xe682, 0xc0b0}, + {0xe683, 0x7368}, + {0xe684, 0xb561}, + {0xe685, 0xbb21}, + {0xe686, 0x9d46}, + {0xe687, 0x8456}, + {0xe688, 0xa6e9}, + {0xe689, 0x663a}, + {0xe68a, 0x58ad}, + {0xe68b, 0x7cc2}, + {0xe68c, 0x6d40}, + {0xe68d, 0x99f5}, + {0xe68e, 0xc712}, + {0xe68f, 0x9ba1}, + {0xe690, 0xffff93bc}, + {0xe691, 0x5569}, + {0xe692, 0xa421}, + {0xe693, 0x822d}, + {0xe694, 0x7ab9}, + {0xe695, 0x9ba2}, + {0xe696, 0x8594}, + {0xe697, 0xc701}, + {0xe698, 0xa0c8}, + {0xe699, 0xac91}, + {0xe69a, 0x5b50}, + {0xe69b, 0xae31}, + {0xe69c, 0x76e5}, + {0xe69d, 0x97ae}, + {0xe69e, 0x7d44}, + {0xe69f, 0x819c}, + {0xe6a0, 0x7bce}, + {0xe6a1, 0x6a79}, + {0xe6a2, 0xc612}, + {0xe6a3, 0x5b90}, + {0xe6a4, 0x84b5}, + {0xe6a5, 0xb8dd}, + {0xe6a6, 0x9976}, + {0xe6a7, 0x4bc9}, + {0xe6a8, 0xc351}, + {0xe6a9, 0x9439}, + {0xe6aa, 0x8d4d}, + {0xe6ab, 0xaf79}, + {0xe6ac, 0x9112}, + {0xe6ad, 0x97bc}, + {0xe6ae, 0x76c4}, + {0xe6af, 0x686c}, + {0xe6b0, 0x887a}, + {0xe6b1, 0x4404}, + {0xe6b2, 0x7531}, + {0xe6b3, 0x889e}, + {0xe6b4, 0xa1b9}, + {0xe6b5, 0xa86d}, + {0xe6b6, 0x9b66}, + {0xe6b7, 0x4e4e}, + {0xe6b8, 0xa351}, + {0xe6b9, 0x5241}, + {0xe6ba, 0x6b3c}, + {0xe6bb, 0x409a}, + {0xe6bc, 0x6982}, + {0xe6bd, 0x44e8}, + {0xe6be, 0x3f55}, + {0xe6bf, 0x444d}, + {0xe6c0, 0x851e}, + {0xe6c1, 0x3c58}, + {0xe6c2, 0xbb48}, + {0xe6c3, 0x9f81}, + {0xe6c4, 0xa5ad}, + {0xe6c5, 0x59fe}, + {0xe6c6, 0x8124}, + {0xe6c7, 0x87ed}, + {0xe6c8, 0x3b78}, + {0xe6c9, 0x888a}, + {0xe6ca, 0x46e9}, + {0xe6cb, 0x74d2}, + {0xe6cc, 0xafb8}, + {0xe6cd, 0x8c8e}, + {0xe6ce, 0x8866}, + {0xe6cf, 0x451d}, + {0xe6d0, 0x7408}, + {0xe6d1, 0xbefe}, + {0xe6d2, 0xa674}, + {0xe6d3, 0x94a4}, + {0xe6d4, 0x3fb5}, + {0xe6d5, 0x8409}, + {0xe6d6, 0x7ca1}, + {0xe6d7, 0x989d}, + {0xe6d8, 0x5748}, + {0xe6d9, 0x5741}, + {0xe6da, 0x560e}, + {0xe6db, 0x8514}, + {0xe6dc, 0xc5cc}, + {0xe6dd, 0x695d}, + {0xe6de, 0x6d8c}, + {0xe6df, 0x3da8}, + {0xe6e0, 0xbcfd}, + {0xe6e1, 0x9982}, + {0xe6e2, 0x56da}, + {0xe6e3, 0xc6b8}, + {0xe6e4, 0xb466}, + {0xe6e5, 0x8515}, + {0xe6e6, 0x9c15}, + {0xe6e7, 0xa9dc}, + {0xe6e8, 0x60c9}, + {0xe6e9, 0x881c}, + {0xe6ea, 0x74a9}, + {0xe6eb, 0x8a50}, + {0xe6ec, 0x6fb4}, + {0xe6ed, 0xc4ea}, + {0xe6ee, 0x42c0}, + {0xe6ef, 0xc24a}, + {0xe6f0, 0xa5b4}, + {0xe6f1, 0x3c6d}, + {0xe6f2, 0x7924}, + {0xe6f3, 0x9495}, + {0xe6f4, 0x4070}, + {0xe6f5, 0x4a71}, + {0xe6f6, 0xbee9}, + {0xe6f7, 0x65f0}, + {0xe6f8, 0xa975}, + {0xe6f9, 0x9914}, + {0xe6fa, 0xb8b6}, + {0xe6fb, 0xc365}, + {0xe6fc, 0x5889}, + {0xe6fd, 0xa214}, + {0xe6fe, 0x7100}, + {0xe740, 0x3fd1}, + {0xe741, 0xa3f5}, + {0xe742, 0x794c}, + {0xe743, 0x4de2}, + {0xe744, 0x934e}, + {0xe745, 0xc6a1}, + {0xe746, 0xb3d4}, + {0xe747, 0x7b3d}, + {0xe748, 0x6ff5}, + {0xe749, 0x8c88}, + {0xe74a, 0x4b22}, + {0xe74b, 0x8a09}, + {0xe74c, 0x452a}, + {0xe74d, 0x9cf1}, + {0xe74e, 0x7d6d}, + {0xe74f, 0xb7a2}, + {0xe750, 0x44c2}, + {0xe751, 0x556a}, + {0xe752, 0x6b62}, + {0xe753, 0x4089}, + {0xe754, 0x9874}, + {0xe755, 0x7a48}, + {0xe756, 0xacb8}, + {0xe757, 0x4a8a}, + {0xe758, 0x79b8}, + {0xe759, 0xbcdc}, + {0xe75a, 0x67ed}, + {0xe75b, 0x434e}, + {0xe75c, 0x7505}, + {0xe75d, 0xa7fa}, + {0xe75e, 0xa6b0}, + {0xe75f, 0x6f1a}, + {0xe760, 0x98b9}, + {0xe761, 0x3ed5}, + {0xe762, 0xbf11}, + {0xe763, 0x8bbc}, + {0xe764, 0x466d}, + {0xe765, 0x7b44}, + {0xe766, 0x60e1}, + {0xe767, 0x651d}, + {0xe768, 0x89a1}, + {0xe769, 0x6338}, + {0xe76a, 0x8c89}, + {0xe76b, 0x8904}, + {0xe76c, 0x781c}, + {0xe76d, 0x93c2}, + {0xe76e, 0xacb9}, + {0xe76f, 0xa94a}, + {0xe770, 0x466e}, + {0xe771, 0x71ac}, + {0xe772, 0x995e}, + {0xe773, 0x794e}, + {0xe774, 0x82ee}, + {0xe775, 0x621c}, + {0xe776, 0x8878}, + {0xe777, 0x9b39}, + {0xe778, 0x53c0}, + {0xe779, 0x8d10}, + {0xe77a, 0x8ff6}, + {0xe77b, 0xb16d}, + {0xe77c, 0x9cf2}, + {0xe77d, 0xa9cc}, + {0xe77e, 0x6e11}, + {0xe780, 0x68a2}, + {0xe781, 0xc769}, + {0xe782, 0x7774}, + {0xe783, 0x8d7c}, + {0xe784, 0x73b4}, + {0xe785, 0x514d}, + {0xe786, 0xabb0}, + {0xe787, 0xbcb2}, + {0xe788, 0x6488}, + {0xe789, 0x6774}, + {0xe78a, 0xc2f2}, + {0xe78b, 0x4dc0}, + {0xe78c, 0xaf3c}, + {0xe78d, 0xb759}, + {0xe78e, 0x5124}, + {0xe78f, 0x6e12}, + {0xe790, 0x850d}, + {0xe791, 0x9e80}, + {0xe792, 0x89bd}, + {0xe793, 0x9f4a}, + {0xe794, 0xffff9422}, + {0xe795, 0xbf21}, + {0xe796, 0x4fb4}, + {0xe797, 0x94b9}, + {0xe798, 0x6e9e}, + {0xe799, 0x6775}, + {0xe79a, 0x54ae}, + {0xe79b, 0x9b3a}, + {0xe79c, 0x7abc}, + {0xe79d, 0x6d42}, + {0xe79e, 0x633e}, + {0xe79f, 0xba7e}, + {0xe7a0, 0x76a1}, + {0xe7a1, 0xbbdc}, + {0xe7a2, 0x8750}, + {0xe7a3, 0x97b4}, + {0xe7a4, 0x57dc}, + {0xe7a5, 0xab06}, + {0xe7a6, 0x5622}, + {0xe7a7, 0xc370}, + {0xe7a8, 0x5624}, + {0xe7a9, 0x48b4}, + {0xe7aa, 0x4c19}, + {0xe7ab, 0x7069}, + {0xe7ac, 0x5dac}, + {0xe7ad, 0x6849}, + {0xe7ae, 0x5940}, + {0xe7af, 0xa9e5}, + {0xe7b0, 0x9e04}, + {0xe7b1, 0x7896}, + {0xe7b2, 0x8ad2}, + {0xe7b3, 0x5444}, + {0xe7b4, 0x94ed}, + {0xe7b5, 0x5c34}, + {0xe7b6, 0x51c2}, + {0xe7b7, 0x97a1}, + {0xe7b8, 0x7964}, + {0xe7b9, 0x904c}, + {0xe7ba, 0xa241}, + {0xe7bb, 0xc5c5}, + {0xe7bc, 0x6fb8}, + {0xe7bd, 0xa964}, + {0xe7be, 0x9e11}, + {0xe7bf, 0x804c}, + {0xe7c0, 0x62dd}, + {0xe7c1, 0x992d}, + {0xe7c2, 0x403d}, + {0xe7c3, 0x59c8}, + {0xe7c4, 0xc505}, + {0xe7c5, 0x80a8}, + {0xe7c6, 0x6a9a}, + {0xe7c7, 0xc06e}, + {0xe7c8, 0x9261}, + {0xe7c9, 0x585e}, + {0xe7ca, 0x74c6}, + {0xe7cb, 0xb4ed}, + {0xe7cc, 0x66d2}, + {0xe7cd, 0x40e5}, + {0xe7ce, 0x8840}, + {0xe7cf, 0x7d58}, + {0xe7d0, 0x7409}, + {0xe7d1, 0x811a}, + {0xe7d2, 0x9375}, + {0xe7d3, 0xaada}, + {0xe7d4, 0x7755}, + {0xe7d5, 0xbdb5}, + {0xe7d6, 0x680e}, + {0xe7d7, 0x8c21}, + {0xe7d8, 0x8cd6}, + {0xe7d9, 0x6166}, + {0xe7da, 0xc720}, + {0xe7db, 0xb1ad}, + {0xe7dc, 0x6454}, + {0xe7dd, 0x48f6}, + {0xe7de, 0xbc85}, + {0xe7df, 0xb774}, + {0xe7e0, 0x4f9a}, + {0xe7e1, 0x640d}, + {0xe7e2, 0xa34c}, + {0xe7e3, 0x54c0}, + {0xe7e4, 0x8090}, + {0xe7e5, 0x6da5}, + {0xe7e6, 0x6f59}, + {0xe7e7, 0x7995}, + {0xe7e8, 0x4ec6}, + {0xe7e9, 0x4c22}, + {0xe7ea, 0x8922}, + {0xe7eb, 0x8092}, + {0xe7ec, 0x6616}, + {0xe7ed, 0x530e}, + {0xe7ee, 0x59a5}, + {0xe7ef, 0xacce}, + {0xe7f0, 0xaf48}, + {0xe7f1, 0x5eec}, + {0xe7f2, 0xb1d6}, + {0xe7f3, 0x7c05}, + {0xe7f4, 0xa6fd}, + {0xe7f5, 0x6260}, + {0xe7f6, 0x76a9}, + {0xe7f7, 0x8a59}, + {0xe7f8, 0xb69e}, + {0xe7f9, 0x8a58}, + {0xe7fa, 0x6064}, + {0xe7fb, 0x71c9}, + {0xe7fc, 0xb065}, + {0xe7fd, 0x4a98}, + {0xe7fe, 0xa249}, + {0xe840, 0xc59a}, + {0xe841, 0x8ce4}, + {0xe842, 0x8bc4}, + {0xe843, 0xc5a1}, + {0xe844, 0x7422}, + {0xe845, 0x3fe5}, + {0xe846, 0x9f4c}, + {0xe847, 0x6178}, + {0xe848, 0xaaed}, + {0xe849, 0x51b5}, + {0xe84a, 0x5cb1}, + {0xe84b, 0x4671}, + {0xe84c, 0x6d28}, + {0xe84d, 0x5504}, + {0xe84e, 0x4bf4}, + {0xe84f, 0xb584}, + {0xe850, 0x3b9c}, + {0xe851, 0xc688}, + {0xe852, 0xaf1e}, + {0xe853, 0x4f38}, + {0xe854, 0xc47c}, + {0xe855, 0x5efd}, + {0xe856, 0xc51c}, + {0xe857, 0x6494}, + {0xe858, 0x8395}, + {0xe859, 0x5e9a}, + {0xe85a, 0x63f9}, + {0xe85b, 0x8e1c}, + {0xe85c, 0x4102}, + {0xe85d, 0xb6dc}, + {0xe85e, 0x71b1}, + {0xe85f, 0x84a1}, + {0xe860, 0xacfd}, + {0xe861, 0x67f4}, + {0xe862, 0x67f5}, + {0xe863, 0x8c26}, + {0xe864, 0x43f8}, + {0xe865, 0xc2c2}, + {0xe866, 0x807d}, + {0xe867, 0x751c}, + {0xe868, 0x7426}, + {0xe869, 0x6496}, + {0xe86a, 0xc718}, + {0xe86b, 0x7128}, + {0xe86c, 0x94e4}, + {0xe86d, 0x8734}, + {0xe86e, 0x7269}, + {0xe86f, 0x50b8}, + {0xe870, 0x9911}, + {0xe871, 0x49e9}, + {0xe872, 0x7c82}, + {0xe873, 0x4095}, + {0xe874, 0x3e10}, + {0xe875, 0x7abd}, + {0xe876, 0xa8ac}, + {0xe877, 0x70c8}, + {0xe878, 0x79d6}, + {0xe879, 0x52be}, + {0xe87a, 0x7a8d}, + {0xe87b, 0x67f6}, + {0xe87c, 0x72fe}, + {0xe87d, 0x4212}, + {0xe87e, 0x671c}, + {0xe880, 0xb275}, + {0xe881, 0x4494}, + {0xe882, 0xa97d}, + {0xe883, 0x67f8}, + {0xe884, 0xa6c8}, + {0xe885, 0x5b5c}, + {0xe886, 0x4330}, + {0xe887, 0x8472}, + {0xe888, 0x745d}, + {0xe889, 0x4af6}, + {0xe88a, 0x8fbd}, + {0xe88b, 0x8625}, + {0xe88c, 0x7be0}, + {0xe88d, 0xc71c}, + {0xe88e, 0x7b75}, + {0xe88f, 0xbd1a}, + {0xe890, 0x8478}, + {0xe891, 0x6e28}, + {0xe892, 0x9d50}, + {0xe893, 0xc400}, + {0xe894, 0x7301}, + {0xe895, 0x92f2}, + {0xe896, 0xb144}, + {0xe897, 0xac10}, + {0xe898, 0x3df9}, + {0xe899, 0xac16}, + {0xe89a, 0x7d90}, + {0xe89b, 0xaf31}, + {0xe89c, 0xc23a}, + {0xe89d, 0xa81d}, + {0xe89e, 0xb9a2}, + {0xe89f, 0x8a66}, + {0xe8a0, 0x44f6}, + {0xe8a1, 0x45d1}, + {0xe8a2, 0x6c3a}, + {0xe8a3, 0x7e0c}, + {0xe8a4, 0xb936}, + {0xe8a5, 0xbb4a}, + {0xe8a6, 0xa7c5}, + {0xe8a7, 0x8305}, + {0xe8a8, 0x3b80}, + {0xe8a9, 0x9d16}, + {0xe8aa, 0x6a68}, + {0xe8ab, 0x6205}, + {0xe8ac, 0xb6b5}, + {0xe8ad, 0x4b28}, + {0xe8ae, 0x4a7d}, + {0xe8af, 0xade9}, + {0xe8b0, 0xbf0d}, + {0xe8b1, 0x8991}, + {0xe8b2, 0x4309}, + {0xe8b3, 0x8f9d}, + {0xe8b4, 0x7b2c}, + {0xe8b5, 0x3fce}, + {0xe8b6, 0xbcdd}, + {0xe8b7, 0xa47c}, + {0xe8b8, 0xa381}, + {0xe8b9, 0xbc3e}, + {0xe8ba, 0x9d78}, + {0xe8bb, 0xa594}, + {0xe8bc, 0x4059}, + {0xe8bd, 0x8abe}, + {0xe8be, 0x43b8}, + {0xe8bf, 0x7cc8}, + {0xe8c0, 0x7569}, + {0xe8c1, 0x8794}, + {0xe8c2, 0x8045}, + {0xe8c3, 0xb224}, + {0xe8c4, 0x92a6}, + {0xe8c5, 0x6722}, + {0xe8c6, 0x4891}, + {0xe8c7, 0x467c}, + {0xe8c8, 0x4a59}, + {0xe8c9, 0xa9d5}, + {0xe8ca, 0x5404}, + {0xe8cb, 0x85bc}, + {0xe8cc, 0xc42d}, + {0xe8cd, 0x8276}, + {0xe8ce, 0xc205}, + {0xe8cf, 0xbfe6}, + {0xe8d0, 0x7994}, + {0xe8d1, 0x6be4}, + {0xe8d2, 0x88bc}, + {0xe8d3, 0x7a5d}, + {0xe8d4, 0xa7a2}, + {0xe8d5, 0xa9da}, + {0xe8d6, 0xb821}, + {0xe8d7, 0xc1ca}, + {0xe8d8, 0xa1a5}, + {0xe8d9, 0xc138}, + {0xe8da, 0x7876}, + {0xe8db, 0x59dc}, + {0xe8dc, 0x4e28}, + {0xe8dd, 0x7579}, + {0xe8de, 0xa166}, + {0xe8df, 0x4645}, + {0xe8e0, 0x6f3d}, + {0xe8e1, 0x73c2}, + {0xe8e2, 0xaf2c}, + {0xe8e3, 0x9108}, + {0xe8e4, 0xc214}, + {0xe8e5, 0xc009}, + {0xe8e6, 0x5b70}, + {0xe8e7, 0x89d4}, + {0xe8e8, 0x9f9d}, + {0xe8e9, 0x7205}, + {0xe8ea, 0x6be8}, + {0xe8eb, 0x60f6}, + {0xe8ec, 0x5ee9}, + {0xe8ed, 0x62ce}, + {0xe8ee, 0x697a}, + {0xe8ef, 0x7b52}, + {0xe8f0, 0x6d5e}, + {0xe8f1, 0x3ba9}, + {0xe8f2, 0xad11}, + {0xe8f3, 0x53e6}, + {0xe8f4, 0x5aa0}, + {0xe8f5, 0x564d}, + {0xe8f6, 0x6db6}, + {0xe8f7, 0xc624}, + {0xe8f8, 0x9b6c}, + {0xe8f9, 0x7890}, + {0xe8fa, 0x4898}, + {0xe8fb, 0x54ea}, + {0xe8fc, 0x5091}, + {0xe8fd, 0x8c39}, + {0xe8fe, 0xbf70}, + {0xe940, 0xc25e}, + {0xe941, 0xb6a5}, + {0xe942, 0x6201}, + {0xe943, 0xc5ec}, + {0xe944, 0x41e4}, + {0xe945, 0x9d45}, + {0xe946, 0x91cd}, + {0xe947, 0x3ed1}, + {0xe948, 0x7938}, + {0xe949, 0x6170}, + {0xe94a, 0x7264}, + {0xe94b, 0x4490}, + {0xe94c, 0x450a}, + {0xe94d, 0x4509}, + {0xe94e, 0x6bd6}, + {0xe94f, 0x3c56}, + {0xe950, 0x4f68}, + {0xe951, 0x6df1}, + {0xe952, 0x7782}, + {0xe953, 0x7f68}, + {0xe954, 0x7ea4}, + {0xe955, 0x7cca}, + {0xe956, 0x988e}, + {0xe957, 0x9471}, + {0xe958, 0x63ba}, + {0xe959, 0x7ea5}, + {0xe95a, 0xaff5}, + {0xe95b, 0x3f5d}, + {0xe95c, 0x5d6a}, + {0xe95d, 0x3f5e}, + {0xe95e, 0x944e}, + {0xe95f, 0x6e9c}, + {0xe960, 0x6f30}, + {0xe961, 0x3eac}, + {0xe962, 0x5f5d}, + {0xe963, 0x92c2}, + {0xe964, 0x9355}, + {0xe965, 0xa882}, + {0xe966, 0x67b1}, + {0xe967, 0x66c5}, + {0xe968, 0x80d0}, + {0xe969, 0xa790}, + {0xe96a, 0x98c9}, + {0xe96b, 0x5066}, + {0xe96c, 0xbe05}, + {0xe96d, 0x830e}, + {0xe96e, 0xbe76}, + {0xe96f, 0x86ec}, + {0xe970, 0xa7e1}, + {0xe971, 0x78ae}, + {0xe972, 0x4041}, + {0xe973, 0x3f89}, + {0xe974, 0x92c4}, + {0xe975, 0x5e7d}, + {0xe976, 0x5b0a}, + {0xe977, 0x58d8}, + {0xe978, 0x58a5}, + {0xe979, 0x5355}, + {0xe97a, 0x48d5}, + {0xe97b, 0x5f84}, + {0xe97c, 0x5bb4}, + {0xe97d, 0x80d8}, + {0xe97e, 0x93d1}, + {0xe980, 0x71f8}, + {0xe981, 0x737d}, + {0xe982, 0x7c2c}, + {0xe983, 0x9f8c}, + {0xe984, 0x9416}, + {0xe985, 0x6c7e}, + {0xe986, 0xbb98}, + {0xe987, 0xbb99}, + {0xe988, 0x44b6}, + {0xe989, 0x8fde}, + {0xe98a, 0x784d}, + {0xe98b, 0x44fa}, + {0xe98c, 0x93f8}, + {0xe98d, 0x71f9}, + {0xe98e, 0xafc4}, + {0xe98f, 0xa449}, + {0xe990, 0xb012}, + {0xe991, 0x52b0}, + {0xe992, 0x635e}, + {0xe993, 0xba5c}, + {0xe994, 0xa44a}, + {0xe995, 0x5f8d}, + {0xe996, 0x3db4}, + {0xe997, 0x5f8a}, + {0xe998, 0x8fe4}, + {0xe999, 0xb249}, + {0xe99a, 0xa44d}, + {0xe99b, 0x3d4d}, + {0xe99c, 0x3bc5}, + {0xe99d, 0xa32e}, + {0xe99e, 0xb5dc}, + {0xe99f, 0x721e}, + {0xe9a0, 0x9091}, + {0xe9a1, 0x7bc1}, + {0xe9a2, 0x4964}, + {0xe9a3, 0x76f6}, + {0xe9a4, 0x5ca2}, + {0xe9a5, 0x67a6}, + {0xe9a6, 0x4e65}, + {0xe9a7, 0x6c39}, + {0xe9a8, 0x4ab6}, + {0xe9a9, 0x95fa}, + {0xe9aa, 0x82a1}, + {0xe9ab, 0xbde0}, + {0xe9ac, 0x76d6}, + {0xe9ad, 0x730d}, + {0xe9ae, 0x64e5}, + {0xe9af, 0x8899}, + {0xe9b0, 0x6cb2}, + {0xe9b1, 0x8eae}, + {0xe9b2, 0x50fd}, + {0xe9b3, 0x4966}, + {0xe9b4, 0x462e}, + {0xe9b5, 0x7c2a}, + {0xe9b6, 0x43e6}, + {0xe9b7, 0x6cb1}, + {0xe9b8, 0xae1e}, + {0xe9b9, 0x7e44}, + {0xe9ba, 0xb701}, + {0xe9bb, 0xc02d}, + {0xe9bc, 0x5474}, + {0xe9bd, 0x9be9}, + {0xe9be, 0x9b58}, + {0xe9bf, 0xab40}, + {0xe9c0, 0x5840}, + {0xe9c1, 0x4b1a}, + {0xe9c2, 0x5862}, + {0xe9c3, 0x9908}, + {0xe9c4, 0x40e6}, + {0xe9c5, 0x91c2}, + {0xe9c6, 0xc3ba}, + {0xe9c7, 0xab3e}, + {0xe9c8, 0x6a66}, + {0xe9c9, 0x8c91}, + {0xe9ca, 0x89f9}, + {0xe9cb, 0x485a}, + {0xe9cc, 0x9d1c}, + {0xe9cd, 0xc3c1}, + {0xe9ce, 0x6036}, + {0xe9cf, 0x57cd}, + {0xe9d0, 0xbb9c}, + {0xe9d1, 0x8e36}, + {0xe9d2, 0xa185}, + {0xe9d3, 0x6df8}, + {0xe9d4, 0x8d01}, + {0xe9d5, 0x8dca}, + {0xe9d6, 0x7aae}, + {0xe9d7, 0xc764}, + {0xe9d8, 0xa680}, + {0xe9d9, 0x6c85}, + {0xe9da, 0xbb18}, + {0xe9db, 0x7414}, + {0xe9dc, 0xb015}, + {0xe9dd, 0x7838}, + {0xe9de, 0x421e}, + {0xe9df, 0x43f2}, + {0xe9e0, 0xb845}, + {0xe9e1, 0x3c38}, + {0xe9e2, 0x8158}, + {0xe9e3, 0x4ac5}, + {0xe9e4, 0x94c4}, + {0xe9e5, 0x9ec5}, + {0xe9e6, 0xbc10}, + {0xe9e7, 0x76c9}, + {0xe9e8, 0x8858}, + {0xe9e9, 0x4c69}, + {0xe9ea, 0x64dc}, + {0xe9eb, 0x4109}, + {0xe9ec, 0xb539}, + {0xe9ed, 0x915c}, + {0xe9ee, 0x5259}, + {0xe9ef, 0x5a19}, + {0xe9f0, 0x6f5d}, + {0xe9f1, 0x7a60}, + {0xe9f2, 0xc1ce}, + {0xe9f3, 0xb480}, + {0xe9f4, 0xc056}, + {0xe9f5, 0x5fe6}, + {0xe9f6, 0x7581}, + {0xe9f7, 0xb1d0}, + {0xe9f8, 0x973a}, + {0xe9f9, 0xc21c}, + {0xe9fa, 0x9008}, + {0xe9fb, 0x7ace}, + {0xe9fc, 0xbfb1}, + {0xe9fd, 0x83d5}, + {0xe9fe, 0xa2a5}, + {0xea40, 0x72dc}, + {0xea41, 0x5085}, + {0xea42, 0x9030}, + {0xea43, 0x8744}, + {0xea44, 0x9ebe}, + {0xea45, 0x8458}, + {0xea46, 0x9c02}, + {0xea47, 0x6eba}, + {0xea48, 0x5e90}, + {0xea49, 0x9094}, + {0xea4a, 0x4948}, + {0xea4b, 0x5b11}, + {0xea4c, 0x5072}, + {0xea4d, 0x8ae9}, + {0xea4e, 0x713a}, + {0xea4f, 0x9d36}, + {0xea50, 0x5b14}, + {0xea51, 0x8854}, + {0xea52, 0x6efe}, + {0xea53, 0xa77c}, + {0xea54, 0x6339}, + {0xea55, 0x44c4}, + {0xea56, 0x878a}, + {0xea57, 0x4d26}, + {0xea58, 0x6179}, + {0xea59, 0x9c0a}, + {0xea5a, 0xa450}, + {0xea5b, 0xffff95e7}, + {0xea5c, 0x5d54}, + {0xea5d, 0x6ea6}, + {0xea5e, 0x507e}, + {0xea5f, 0x62e0}, + {0xea60, 0x9be2}, + {0xea61, 0x6169}, + {0xea62, 0x73e9}, + {0xea63, 0xabb5}, + {0xea64, 0xb42d}, + {0xea65, 0xc1e8}, + {0xea66, 0xb59a}, + {0xea67, 0xb136}, + {0xea68, 0x5045}, + {0xea69, 0x524e}, + {0xea6a, 0x9606}, + {0xea6b, 0x8694}, + {0xea6c, 0x57f6}, + {0xea6d, 0xbc05}, + {0xea6e, 0xc1b2}, + {0xea6f, 0x878e}, + {0xea70, 0x463e}, + {0xea71, 0x5254}, + {0xea72, 0x8f38}, + {0xea73, 0x4e1c}, + {0xea74, 0x78f9}, + {0xea75, 0xa15c}, + {0xea76, 0x4129}, + {0xea77, 0x51dd}, + {0xea78, 0x97ba}, + {0xea79, 0x51de}, + {0xea7a, 0x52e0}, + {0xea7b, 0x5bda}, + {0xea7c, 0xb8bc}, + {0xea7d, 0x6e56}, + {0xea7e, 0x8d21}, + {0xea80, 0xac11}, + {0xea81, 0x4990}, + {0xea82, 0x56ed}, + {0xea83, 0xa7a6}, + {0xea84, 0x9470}, + {0xea85, 0x9618}, + {0xea86, 0x896a}, + {0xea87, 0xc088}, + {0xea88, 0xa900}, + {0xea89, 0x4d3a}, + {0xea8a, 0x8696}, + {0xea8b, 0xb49e}, + {0xea8c, 0x5136}, + {0xea8d, 0x7b8e}, + {0xea8e, 0xb5b0}, + {0xea8f, 0x6c2d}, + {0xea90, 0x45f6}, + {0xea91, 0x7ad0}, + {0xea92, 0x961c}, + {0xea93, 0xa8c5}, + {0xea94, 0xb5b6}, + {0xea95, 0xc40a}, + {0xea96, 0xb151}, + {0xea97, 0x918d}, + {0xea98, 0xa7b8}, + {0xea99, 0x47d4}, + {0xea9a, 0xb0ba}, + {0xea9b, 0xb5b8}, + {0xea9c, 0xb90d}, + {0xea9d, 0x4dd4}, + {0xea9e, 0xa2c4}, + {0xea9f, 0x8431}, + {0xeaa0, 0x5138}, + {0xeaa1, 0x49da}, + {0xeaa2, 0xc5d6}, + {0xeaa3, 0x4ab9}, + {0xeaa4, 0x7b19}, + {0xeaa5, 0x7809}, + {0xeaa6, 0xa3bd}, + {0xeaa7, 0x6692}, + {0xeaa8, 0x8c5e}, + {0xeaa9, 0x664e}, + {0xeaaa, 0x653e}, + {0xeaab, 0x64d8}, + {0xeaac, 0x6ed5}, + {0xeaad, 0x4db0}, + {0xeaae, 0x5782}, + {0xeaaf, 0x6754}, + {0xeab0, 0xbcf6}, + {0xeab1, 0x8581}, + {0xeab2, 0x7879}, + {0xeab3, 0x4268}, + {0xeab4, 0x3ed0}, + {0xeab5, 0xbdc8}, + {0xeab6, 0x8800}, + {0xeab7, 0x8961}, + {0xeab8, 0x573c}, + {0xeab9, 0x7236}, + {0xeaba, 0x57d6}, + {0xeabb, 0x5df0}, + {0xeabc, 0x9c7c}, + {0xeabd, 0x5859}, + {0xeabe, 0xbd94}, + {0xeabf, 0xab8c}, + {0xeac0, 0xbbde}, + {0xeac1, 0x5c04}, + {0xeac2, 0x5e44}, + {0xeac3, 0xbcb8}, + {0xeac4, 0x7dd8}, + {0xeac5, 0xb9d8}, + {0xeac6, 0x4532}, + {0xeac7, 0x839c}, + {0xeac8, 0x8a2e}, + {0xeac9, 0x9649}, + {0xeaca, 0xb2b4}, + {0xeacb, 0x4568}, + {0xeacc, 0xb0ad}, + {0xeacd, 0x625d}, + {0xeace, 0x422a}, + {0xeacf, 0x5d1d}, + {0xead0, 0x5bee}, + {0xead1, 0xadac}, + {0xead2, 0x7151}, + {0xead3, 0x3b7e}, + {0xead4, 0x80fe}, + {0xead5, 0xa112}, + {0xead6, 0xaea4}, + {0xead7, 0xb266}, + {0xead8, 0xa6b8}, + {0xead9, 0x82c8}, + {0xeada, 0x3e7e}, + {0xeadb, 0x9730}, + {0xeadc, 0x7109}, + {0xeadd, 0xb385}, + {0xeade, 0xc21a}, + {0xeadf, 0xc5be}, + {0xeae0, 0x575a}, + {0xeae1, 0x6a8d}, + {0xeae2, 0xc091}, + {0xeae3, 0x7299}, + {0xeae4, 0x8f01}, + {0xeae5, 0x6436}, + {0xeae6, 0x9cd5}, + {0xeae7, 0x5714}, + {0xeae8, 0x4435}, + {0xeae9, 0x6579}, + {0xeaea, 0xa6d0}, + {0xeaeb, 0x4df5}, + {0xeaec, 0xb93a}, + {0xeaed, 0x5a09}, + {0xeaee, 0x6aad}, + {0xeaef, 0x8fdc}, + {0xeaf0, 0x678a}, + {0xeaf1, 0x6858}, + {0xeaf2, 0x889c}, + {0xeaf3, 0x7db2}, + {0xeaf4, 0x5a52}, + {0xeaf5, 0xa565}, + {0xeaf6, 0x5aa1}, + {0xeaf7, 0x6432}, + {0xeaf8, 0x6cf1}, + {0xeaf9, 0x66c0}, + {0xeafa, 0x8815}, + {0xeafb, 0x6f46}, + {0xeafc, 0x8d59}, + {0xeafd, 0x9b6a}, + {0xeafe, 0x3cee}, + {0xeb40, 0x3bdd}, + {0xeb41, 0x693c}, + {0xeb42, 0x5761}, + {0xeb43, 0xb068}, + {0xeb44, 0x626c}, + {0xeb45, 0xbc15}, + {0xeb46, 0xa5b1}, + {0xeb47, 0x9d0e}, + {0xeb48, 0x65a4}, + {0xeb49, 0x4d45}, + {0xeb4a, 0x3c26}, + {0xeb4b, 0xa759}, + {0xeb4c, 0xb649}, + {0xeb4d, 0x92fa}, + {0xeb4e, 0x9115}, + {0xeb4f, 0x77fd}, + {0xeb50, 0xa0e1}, + {0xeb51, 0x4db6}, + {0xeb52, 0x87b8}, + {0xeb53, 0x9aea}, + {0xeb54, 0xba42}, + {0xeb55, 0xa8d5}, + {0xeb56, 0x54f0}, + {0xeb57, 0x838d}, + {0xeb58, 0x52f9}, + {0xeb59, 0x6468}, + {0xeb5a, 0x4d4e}, + {0xeb5b, 0xb655}, + {0xeb5c, 0xc28e}, + {0xeb5d, 0x79e9}, + {0xeb5e, 0xa6b1}, + {0xeb5f, 0x75e1}, + {0xeb60, 0x75ed}, + {0xeb61, 0x5ea2}, + {0xeb62, 0xc14d}, + {0xeb63, 0xb4ba}, + {0xeb64, 0x8db5}, + {0xeb65, 0x8b95}, + {0xeb66, 0x6159}, + {0xeb67, 0x5a05}, + {0xeb68, 0x6d71}, + {0xeb69, 0x5ffd}, + {0xeb6a, 0xbc76}, + {0xeb6b, 0xb94e}, + {0xeb6c, 0x4821}, + {0xeb6d, 0x9ade}, + {0xeb6e, 0x5d94}, + {0xeb6f, 0x63e1}, + {0xeb70, 0x989a}, + {0xeb71, 0x5b4e}, + {0xeb72, 0x4889}, + {0xeb73, 0xbc7a}, + {0xeb74, 0xb7a0}, + {0xeb75, 0x647c}, + {0xeb76, 0xa6a8}, + {0xeb77, 0x7981}, + {0xeb78, 0x74fd}, + {0xeb79, 0x82a6}, + {0xeb7a, 0xae5e}, + {0xeb7b, 0xbc7e}, + {0xeb7c, 0x6524}, + {0xeb7d, 0x6525}, + {0xeb7e, 0x8231}, + {0xeb80, 0x55ba}, + {0xeb81, 0x939d}, + {0xeb82, 0x820a}, + {0xeb83, 0x54cd}, + {0xeb84, 0x8630}, + {0xeb85, 0xbbed}, + {0xeb86, 0x478c}, + {0xeb87, 0xb12c}, + {0xeb88, 0x3bd4}, + {0xeb89, 0x7eda}, + {0xeb8a, 0x4ed6}, + {0xeb8b, 0x4d14}, + {0xeb8c, 0x5ff6}, + {0xeb8d, 0x4f2e}, + {0xeb8e, 0x821c}, + {0xeb8f, 0x460e}, + {0xeb90, 0xbe06}, + {0xeb91, 0x78b9}, + {0xeb92, 0x8a00}, + {0xeb93, 0xc346}, + {0xeb94, 0x5f74}, + {0xeb95, 0xbe86}, + {0xeb96, 0xb5d6}, + {0xeb97, 0xc474}, + {0xeb98, 0xa128}, + {0xeb99, 0x78c1}, + {0xeb9a, 0x5032}, + {0xeb9b, 0xb6bc}, + {0xeb9c, 0xa5ca}, + {0xeb9d, 0x78d0}, + {0xeb9e, 0x78d1}, + {0xeb9f, 0x5f76}, + {0xeba0, 0xb5dd}, + {0xeba1, 0x58d4}, + {0xeba2, 0x421d}, + {0xeba3, 0x7df2}, + {0xeba4, 0x81cd}, + {0xeba5, 0x4b41}, + {0xeba6, 0x67a8}, + {0xeba7, 0x9330}, + {0xeba8, 0x97de}, + {0xeba9, 0x453e}, + {0xebaa, 0x7b4d}, + {0xebab, 0x89b6}, + {0xebac, 0x8fb1}, + {0xebad, 0x886d}, + {0xebae, 0x4d30}, + {0xebaf, 0xa808}, + {0xebb0, 0x48f9}, + {0xebb1, 0x4fe2}, + {0xebb2, 0xaf7e}, + {0xebb3, 0xb5ae}, + {0xebb4, 0x6fb2}, + {0xebb5, 0xbbf1}, + {0xebb6, 0x8962}, + {0xebb7, 0x4778}, + {0xebb8, 0x68d0}, + {0xebb9, 0x5092}, + {0xebba, 0x4f6d}, + {0xebbb, 0xb87d}, + {0xebbc, 0xbadc}, + {0xebbd, 0x5c94}, + {0xebbe, 0xbb68}, + {0xebbf, 0xa4c9}, + {0xebc0, 0x919a}, + {0xebc1, 0x61cc}, + {0xebc2, 0x6b0e}, + {0xebc3, 0x9274}, + {0xebc4, 0x9c4a}, + {0xebc5, 0x596d}, + {0xebc6, 0xc520}, + {0xebc7, 0x8238}, + {0xebc8, 0xb1c9}, + {0xebc9, 0x8c10}, + {0xebca, 0x7996}, + {0xebcb, 0x501d}, + {0xebcc, 0x6e90}, + {0xebcd, 0x7a5e}, + {0xebce, 0x666c}, + {0xebcf, 0x95ed}, + {0xebd0, 0xc376}, + {0xebd1, 0xc7a1}, + {0xebd2, 0x5aba}, + {0xebd3, 0xc055}, + {0xebd4, 0x8f81}, + {0xebd5, 0xc13e}, + {0xebd6, 0x6b31}, + {0xebd7, 0x5b74}, + {0xebd8, 0x5022}, + {0xebd9, 0xafa0}, + {0xebda, 0x70aa}, + {0xebdb, 0x92f5}, + {0xebdc, 0x5cd2}, + {0xebdd, 0x881d}, + {0xebde, 0xc08c}, + {0xebdf, 0x7f88}, + {0xebe0, 0xa120}, + {0xebe1, 0x7bbd}, + {0xebe2, 0x4b92}, + {0xebe3, 0x865d}, + {0xebe4, 0xa242}, + {0xebe5, 0x8414}, + {0xebe6, 0x6ae8}, + {0xebe7, 0xafae}, + {0xebe8, 0x5461}, + {0xebe9, 0xb926}, + {0xebea, 0xc65d}, + {0xebeb, 0x4fc4}, + {0xebec, 0x67aa}, + {0xebed, 0x4ab8}, + {0xebee, 0x82ae}, + {0xebef, 0x8022}, + {0xebf0, 0xa1e1}, + {0xebf1, 0x5298}, + {0xebf2, 0x985d}, + {0xebf3, 0x46a9}, + {0xebf4, 0xb762}, + {0xebf5, 0x58d6}, + {0xebf6, 0x7c54}, + {0xebf7, 0x410a}, + {0xebf8, 0x9dd4}, + {0xebf9, 0xc27c}, + {0xebfa, 0xbe3e}, + {0xebfb, 0x5a86}, + {0xebfc, 0x7ef8}, + {0xebfd, 0x9378}, + {0xebfe, 0x9464}, + {0xec40, 0x7d0a}, + {0xec41, 0x7d0c}, + {0xec42, 0xbc21}, + {0xec43, 0x7980}, + {0xec44, 0x7f35}, + {0xec45, 0x40fc}, + {0xec46, 0xa5cd}, + {0xec47, 0xa3f6}, + {0xec48, 0x7224}, + {0xec49, 0xa6ec}, + {0xec4a, 0xb56a}, + {0xec4b, 0x4cda}, + {0xec4c, 0x9ded}, + {0xec4d, 0xba80}, + {0xec4e, 0x79b9}, + {0xec4f, 0x4c4a}, + {0xec50, 0x651e}, + {0xec51, 0x8635}, + {0xec52, 0xb170}, + {0xec53, 0xa33c}, + {0xec54, 0xffff973b}, + {0xec55, 0xa780}, + {0xec56, 0x65fa}, + {0xec57, 0x7f36}, + {0xec58, 0x7f0c}, + {0xec59, 0x7428}, + {0xec5a, 0x763a}, + {0xec5b, 0x63fa}, + {0xec5c, 0x3b65}, + {0xec5d, 0x54b2}, + {0xec5e, 0x4c4e}, + {0xec5f, 0x79d8}, + {0xec60, 0x78e8}, + {0xec61, 0x3b9e}, + {0xec62, 0x5575}, + {0xec63, 0x7640}, + {0xec64, 0x3ded}, + {0xec65, 0x5ec1}, + {0xec66, 0x5ec2}, + {0xec67, 0x5ec5}, + {0xec68, 0x4160}, + {0xec69, 0x8dfc}, + {0xec6a, 0x9e90}, + {0xec6b, 0xc02a}, + {0xec6c, 0x465a}, + {0xec6d, 0x8e54}, + {0xec6e, 0x6b5c}, + {0xec6f, 0x6b60}, + {0xec70, 0x9e95}, + {0xec71, 0x544a}, + {0xec72, 0x8029}, + {0xec73, 0x3e01}, + {0xec74, 0x9ee4}, + {0xec75, 0x6340}, + {0xec76, 0xb308}, + {0xec77, 0x4fa5}, + {0xec78, 0x43e5}, + {0xec79, 0x66c6}, + {0xec7a, 0x9179}, + {0xec7b, 0x4df6}, + {0xec7c, 0x50de}, + {0xec7d, 0xa5b2}, + {0xec7e, 0x917a}, + {0xec80, 0x8dbd}, + {0xec81, 0x84d1}, + {0xec82, 0xb64a}, + {0xec83, 0x92ec}, + {0xec84, 0x8255}, + {0xec85, 0x8185}, + {0xec86, 0xc711}, + {0xec87, 0x3d61}, + {0xec88, 0xb506}, + {0xec89, 0xb260}, + {0xec8a, 0x9d9e}, + {0xec8b, 0x3d16}, + {0xec8c, 0x6952}, + {0xec8d, 0x5f6c}, + {0xec8e, 0x8674}, + {0xec8f, 0x4141}, + {0xec90, 0xb5d1}, + {0xec91, 0x58dd}, + {0xec92, 0x9da2}, + {0xec93, 0x6504}, + {0xec94, 0x3bc0}, + {0xec95, 0x5ed4}, + {0xec96, 0x59aa}, + {0xec97, 0x8b4a}, + {0xec98, 0x9f6d}, + {0xec99, 0xb765}, + {0xec9a, 0x9add}, + {0xec9b, 0x9f11}, + {0xec9c, 0xae29}, + {0xec9d, 0x7016}, + {0xec9e, 0x3ec4}, + {0xec9f, 0x9c01}, + {0xeca0, 0xbf20}, + {0xeca1, 0x768d}, + {0xeca2, 0x784c}, + {0xeca3, 0xb8e1}, + {0xeca4, 0xa61c}, + {0xeca5, 0xb331}, + {0xeca6, 0x940d}, + {0xeca7, 0xab9d}, + {0xeca8, 0xa682}, + {0xeca9, 0x405c}, + {0xecaa, 0x92f4}, + {0xecab, 0x6cf5}, + {0xecac, 0x9a0c}, + {0xecad, 0x407a}, + {0xecae, 0x407c}, + {0xecaf, 0x97b1}, + {0xecb0, 0x5a00}, + {0xecb1, 0x5a30}, + {0xecb2, 0x604d}, + {0xecb3, 0x5470}, + {0xecb4, 0x645c}, + {0xecb5, 0x72d2}, + {0xecb6, 0xb8e6}, + {0xecb7, 0x86b5}, + {0xecb8, 0x7db5}, + {0xecb9, 0xbe68}, + {0xecba, 0x6ade}, + {0xecbb, 0x8382}, + {0xecbc, 0x791d}, + {0xecbd, 0xb408}, + {0xecbe, 0xb13c}, + {0xecbf, 0xa34a}, + {0xecc0, 0x5178}, + {0xecc1, 0x8cb0}, + {0xecc2, 0x96b8}, + {0xecc3, 0x5fe5}, + {0xecc4, 0xc43a}, + {0xecc5, 0xae0c}, + {0xecc6, 0x9c24}, + {0xecc7, 0xb2b6}, + {0xecc8, 0xb14d}, + {0xecc9, 0xa5aa}, + {0xecca, 0x5d21}, + {0xeccb, 0x7eb5}, + {0xeccc, 0x455d}, + {0xeccd, 0xb0c1}, + {0xecce, 0x602a}, + {0xeccf, 0xba21}, + {0xecd0, 0xa2de}, + {0xecd1, 0x50fe}, + {0xecd2, 0x3dae}, + {0xecd3, 0xadad}, + {0xecd4, 0x3ff4}, + {0xecd5, 0xa101}, + {0xecd6, 0x7906}, + {0xecd7, 0x7d5d}, + {0xecd8, 0x94d2}, + {0xecd9, 0xbc42}, + {0xecda, 0xb51a}, + {0xecdb, 0xba56}, + {0xecdc, 0x53aa}, + {0xecdd, 0x9b25}, + {0xecde, 0xa8dd}, + {0xecdf, 0x6e15}, + {0xece0, 0x4b0c}, + {0xece1, 0x4058}, + {0xece2, 0x4d5c}, + {0xece3, 0xad6a}, + {0xece4, 0xa684}, + {0xece5, 0x7568}, + {0xece6, 0x6082}, + {0xece7, 0x6b6c}, + {0xece8, 0x6090}, + {0xece9, 0x5448}, + {0xecea, 0x9702}, + {0xeceb, 0x9979}, + {0xecec, 0xa80c}, + {0xeced, 0xc1c4}, + {0xecee, 0x8f4a}, + {0xecef, 0x6088}, + {0xecf0, 0x5636}, + {0xecf1, 0xc7a0}, + {0xecf2, 0x7f3e}, + {0xecf3, 0xc139}, + {0xecf4, 0x49fe}, + {0xecf5, 0xc00e}, + {0xecf6, 0x9ef5}, + {0xecf7, 0x8a5a}, + {0xecf8, 0x4454}, + {0xecf9, 0xa755}, + {0xecfa, 0xc57e}, + {0xecfb, 0xa712}, + {0xecfc, 0x90ee}, + {0xecfd, 0x9db8}, + {0xecfe, 0x9cb1}, + {0xed40, 0x3fca}, + {0xed41, 0x7220}, + {0xed42, 0x726a}, + {0xed43, 0xab68}, + {0xed44, 0x3d7a}, + {0xed45, 0x52d4}, + {0xed46, 0x8ec1}, + {0xed47, 0x8ec2}, + {0xed48, 0x5e91}, + {0xed49, 0x8d3c}, + {0xed4a, 0x821e}, + {0xed4b, 0x66f1}, + {0xed4c, 0x4de1}, + {0xed4d, 0x857c}, + {0xed4e, 0x9d84}, + {0xed4f, 0x9c04}, + {0xed50, 0xaae9}, + {0xed51, 0x8608}, + {0xed52, 0x58f1}, + {0xed53, 0x3fdc}, + {0xed54, 0x7225}, + {0xed55, 0x9cf4}, + {0xed56, 0x7a28}, + {0xed57, 0x5c2c}, + {0xed58, 0x8d12}, + {0xed59, 0xae3d}, + {0xed5a, 0x648d}, + {0xed5b, 0x6712}, + {0xed5c, 0x6821}, + {0xed5d, 0x44e0}, + {0xed5e, 0x4bf5}, + {0xed5f, 0x60ad}, + {0xed60, 0xa8ed}, + {0xed61, 0x8bcc}, + {0xed62, 0x50b9}, + {0xed63, 0xa1e6}, + {0xed64, 0x671d}, + {0xed65, 0x7302}, + {0xed66, 0xa309}, + {0xed67, 0x917c}, + {0xed68, 0x567c}, + {0xed69, 0x7e91}, + {0xed6a, 0x905c}, + {0xed6b, 0x58de}, + {0xed6c, 0xa398}, + {0xed6d, 0x8d38}, + {0xed6e, 0x5d38}, + {0xed6f, 0x4552}, + {0xed70, 0x7221}, + {0xed71, 0x9215}, + {0xed72, 0xbc54}, + {0xed73, 0x9568}, + {0xed74, 0xa3aa}, + {0xed75, 0x58ed}, + {0xed76, 0x3d1d}, + {0xed77, 0x9d85}, + {0xed78, 0x59d6}, + {0xed79, 0xbc55}, + {0xed7a, 0x584e}, + {0xed7b, 0x3fdd}, + {0xed7c, 0xa3ad}, + {0xed7d, 0x6341}, + {0xed7e, 0x50b4}, + {0xed80, 0xa1e8}, + {0xed81, 0x50ba}, + {0xed82, 0x563c}, + {0xed83, 0x6bd8}, + {0xed84, 0xa830}, + {0xed85, 0xab58}, + {0xed86, 0xa83c}, + {0xed87, 0x6484}, + {0xed88, 0xbc75}, + {0xed89, 0x73fc}, + {0xed8a, 0x8722}, + {0xed8b, 0x621a}, + {0xed8c, 0xb6c4}, + {0xed8d, 0xbc58}, + {0xed8e, 0x872e}, + {0xed8f, 0x3bcd}, + {0xed90, 0xb5e1}, + {0xed91, 0xa9ac}, + {0xed92, 0x60ae}, + {0xed93, 0xb2b1}, + {0xed94, 0x4fa9}, + {0xed95, 0x8e3e}, + {0xed96, 0x7144}, + {0xed97, 0xa9bd}, + {0xed98, 0x98e5}, + {0xed99, 0x5cf9}, + {0xed9a, 0xacdc}, + {0xed9b, 0xb3ad}, + {0xed9c, 0xace0}, + {0xed9d, 0x5aac}, + {0xed9e, 0x99f1}, + {0xed9f, 0x7176}, + {0xeda0, 0x8a68}, + {0xeda1, 0x5131}, + {0xeda2, 0x664a}, + {0xeda3, 0x62cc}, + {0xeda4, 0x8564}, + {0xeda5, 0x9169}, + {0xeda6, 0xb19c}, + {0xeda7, 0xc63c}, + {0xeda8, 0x906a}, + {0xeda9, 0x8b99}, + {0xedaa, 0x80d2}, + {0xedab, 0x9dc4}, + {0xedac, 0x8b30}, + {0xedad, 0x5140}, + {0xedae, 0x7e15}, + {0xedaf, 0x7ebd}, + {0xedb0, 0x582a}, + {0xedb1, 0x8418}, + {0xedb2, 0xb9c8}, + {0xedb3, 0x4bcc}, + {0xedb4, 0xae49}, + {0xedb5, 0x8049}, + {0xedb6, 0x6412}, + {0xedb7, 0x57da}, + {0xedb8, 0x4d08}, + {0xedb9, 0xacc6}, + {0xedba, 0x4595}, + {0xedbb, 0x517a}, + {0xedbc, 0xaf7c}, + {0xedbd, 0xc559}, + {0xedbe, 0x3fec}, + {0xedbf, 0x553d}, + {0xedc0, 0x535d}, + {0xedc1, 0x3b6e}, + {0xedc2, 0x7590}, + {0xedc3, 0x7999}, + {0xedc4, 0xbe12}, + {0xedc5, 0x9fd1}, + {0xedc6, 0x4e2d}, + {0xedc7, 0x7238}, + {0xedc8, 0xa169}, + {0xedc9, 0x5646}, + {0xedca, 0xac14}, + {0xedcb, 0x7d8d}, + {0xedcc, 0xa7b2}, + {0xedcd, 0x8cba}, + {0xedce, 0xbe5d}, + {0xedcf, 0x5026}, + {0xedd0, 0x82dc}, + {0xedd1, 0x5900}, + {0xedd2, 0xa4d9}, + {0xedd3, 0x8b1e}, + {0xedd4, 0x513a}, + {0xedd5, 0x3e61}, + {0xedd6, 0x4fc5}, + {0xedd7, 0x461c}, + {0xedd8, 0xc356}, + {0xedd9, 0x69ac}, + {0xedda, 0x4e7c}, + {0xeddb, 0xae22}, + {0xeddc, 0x4012}, + {0xeddd, 0xbfc2}, + {0xedde, 0x5c42}, + {0xeddf, 0x9360}, + {0xede0, 0x8e56}, + {0xede1, 0x8f98}, + {0xede2, 0x5168}, + {0xede3, 0x4dbc}, + {0xede4, 0x681a}, + {0xede5, 0x4284}, + {0xede6, 0x7f00}, + {0xede7, 0x420e}, + {0xede8, 0x6ed1}, + {0xede9, 0xc1dd}, + {0xedea, 0x5692}, + {0xedeb, 0x56c8}, + {0xedec, 0xacc2}, + {0xeded, 0x8012}, + {0xedee, 0x701c}, + {0xedef, 0x516e}, + {0xedf0, 0x8046}, + {0xedf1, 0x4c5a}, + {0xedf2, 0x963c}, + {0xedf3, 0xbaa2}, + {0xedf4, 0xb38e}, + {0xedf5, 0x9ad2}, + {0xedf6, 0xc642}, + {0xedf7, 0x46dd}, + {0xedf8, 0x81b8}, + {0xedf9, 0x729c}, + {0xedfa, 0x673e}, + {0xedfb, 0x4e66}, + {0xedfc, 0x9b6e}, + {0xedfd, 0xaf54}, + {0xedfe, 0x83ac}, + {0xee40, 0x5db9}, + {0xee41, 0xba2a}, + {0xee42, 0xa229}, + {0xee43, 0x3d2c}, + {0xee44, 0x5185}, + {0xee45, 0x4dfe}, + {0xee46, 0x4c72}, + {0xee47, 0x861e}, + {0xee48, 0x8936}, + {0xee49, 0x78fd}, + {0xee4a, 0x45b8}, + {0xee4b, 0x6b59}, + {0xee4c, 0x7472}, + {0xee4d, 0x5e84}, + {0xee4e, 0x8cce}, + {0xee4f, 0x52a6}, + {0xee50, 0x522d}, + {0xee51, 0xa399}, + {0xee52, 0x69b6}, + {0xee53, 0x7216}, + {0xee54, 0x95da}, + {0xee55, 0xb3c2}, + {0xee56, 0xb3c4}, + {0xee57, 0x6f7e}, + {0xee58, 0x511e}, + {0xee59, 0x4048}, + {0xee5a, 0x88ac}, + {0xee5b, 0x7474}, + {0xee5c, 0x9f35}, + {0xee5d, 0x665e}, + {0xee5e, 0xa026}, + {0xee5f, 0x6318}, + {0xee60, 0x715c}, + {0xee61, 0x6661}, + {0xee62, 0x7bb5}, + {0xee63, 0x9fad}, + {0xee64, 0x4665}, + {0xee65, 0xb752}, + {0xee66, 0xbbca}, + {0xee67, 0x6046}, + {0xee68, 0x5d89}, + {0xee69, 0x6b21}, + {0xee6a, 0xa0e4}, + {0xee6b, 0xa0e5}, + {0xee6c, 0x888d}, + {0xee6d, 0x72a5}, + {0xee6e, 0xa0e6}, + {0xee6f, 0xc5fe}, + {0xee70, 0xc600}, + {0xee71, 0x496e}, + {0xee72, 0x4fcd}, + {0xee73, 0x72a6}, + {0xee74, 0x9c9e}, + {0xee75, 0x5d90}, + {0xee76, 0x8bb2}, + {0xee77, 0x6f81}, + {0xee78, 0x4b55}, + {0xee79, 0x6b99}, + {0xee7a, 0x8d98}, + {0xee7b, 0xb3cc}, + {0xee7c, 0x931a}, + {0xee7d, 0x9e39}, + {0xee7e, 0x5235}, + {0xee80, 0x52b6}, + {0xee81, 0xb016}, + {0xee82, 0xa47a}, + {0xee83, 0x6eee}, + {0xee84, 0xb7b2}, + {0xee85, 0xc49a}, + {0xee86, 0xb018}, + {0xee87, 0xa8de}, + {0xee88, 0xabd0}, + {0xee89, 0xb419}, + {0xee8a, 0xbb58}, + {0xee8b, 0x9366}, + {0xee8c, 0x4e9c}, + {0xee8d, 0x4e9d}, + {0xee8e, 0x683d}, + {0xee8f, 0x7138}, + {0xee90, 0x747e}, + {0xee91, 0x73b5}, + {0xee92, 0x8860}, + {0xee93, 0xa1f5}, + {0xee94, 0x7d12}, + {0xee95, 0x4aea}, + {0xee96, 0xb21a}, + {0xee97, 0x5e1c}, + {0xee98, 0x8d14}, + {0xee99, 0x5ab2}, + {0xee9a, 0xaf1c}, + {0xee9b, 0xb094}, + {0xee9c, 0x6344}, + {0xee9d, 0x44e1}, + {0xee9e, 0x924a}, + {0xee9f, 0x7f0e}, + {0xeea0, 0x4104}, + {0xeea1, 0x9ad8}, + {0xeea2, 0x87f1}, + {0xeea3, 0x92b5}, + {0xeea4, 0x9a2d}, + {0xeea5, 0x7158}, + {0xeea6, 0x7e0e}, + {0xeea7, 0x6f7a}, + {0xeea8, 0x8104}, + {0xeea9, 0x8859}, + {0xeeaa, 0x4662}, + {0xeeab, 0x6efa}, + {0xeeac, 0x780e}, + {0xeead, 0x5a8c}, + {0xeeae, 0x9f60}, + {0xeeaf, 0x3f31}, + {0xeeb0, 0x9049}, + {0xeeb1, 0x9e9e}, + {0xeeb2, 0x53e1}, + {0xeeb3, 0xc059}, + {0xeeb4, 0x9532}, + {0xeeb5, 0xa24d}, + {0xeeb6, 0xa0d0}, + {0xeeb7, 0x5638}, + {0xeeb8, 0x580a}, + {0xeeb9, 0x5a56}, + {0xeeba, 0x75b0}, + {0xeebb, 0xb06c}, + {0xeebc, 0x87b2}, + {0xeebd, 0x7310}, + {0xeebe, 0x74ee}, + {0xeebf, 0x6474}, + {0xeec0, 0xbdbd}, + {0xeec1, 0x5e54}, + {0xeec2, 0x5b4a}, + {0xeec3, 0x6d45}, + {0xeec4, 0x6a1e}, + {0xeec5, 0x5740}, + {0xeec6, 0xb3e5}, + {0xeec7, 0x88f0}, + {0xeec8, 0xbf41}, + {0xeec9, 0x777c}, + {0xeeca, 0xa09e}, + {0xeecb, 0x4920}, + {0xeecc, 0x943c}, + {0xeecd, 0x7ea2}, + {0xeece, 0x4410}, + {0xeecf, 0x855c}, + {0xeed0, 0x4258}, + {0xeed1, 0x9c4c}, + {0xeed2, 0x6cd9}, + {0xeed3, 0x3d42}, + {0xeed4, 0x8bda}, + {0xeed5, 0x5408}, + {0xeed6, 0x6f2d}, + {0xeed7, 0x504a}, + {0xeed8, 0x63a6}, + {0xeed9, 0x3ccc}, + {0xeeda, 0xb9e6}, + {0xeedb, 0xc0c9}, + {0xeedc, 0x5a5a}, + {0xeedd, 0x6f61}, + {0xeede, 0x8915}, + {0xeedf, 0x4229}, + {0xeee0, 0x41ad}, + {0xeee1, 0xbb7e}, + {0xeee2, 0x8204}, + {0xeee3, 0x9cb8}, + {0xeee4, 0x4ec8}, + {0xeee5, 0x98fc}, + {0xeee6, 0x973d}, + {0xeee7, 0xae14}, + {0xeee8, 0x9bb4}, + {0xeee9, 0x3f4c}, + {0xeeea, 0x8356}, + {0xeeeb, 0x8769}, + {0xeeec, 0x51a2}, + {0xeeed, 0x6f42}, + {0xeeee, 0x73c6}, + {0xeeef, 0x5310}, + {0xeef0, 0xb870}, + {0xeef1, 0x4699}, + {0xeef2, 0x6651}, + {0xeef3, 0x82dd}, + {0xeef4, 0xb28e}, + {0xeef5, 0x464e}, + {0xeef6, 0x4f24}, + {0xeef7, 0xb5b5}, + {0xeef8, 0x6ea8}, + {0xeef9, 0xc3b0}, + {0xeefa, 0x9fa4}, + {0xeefb, 0x4fd1}, + {0xeefc, 0x60cc}, + {0xeefd, 0x9012}, + {0xeefe, 0x5cba}, + {0xef40, 0xa8ee}, + {0xef41, 0x8896}, + {0xef42, 0x7a8e}, + {0xef43, 0x783d}, + {0xef44, 0x8475}, + {0xef45, 0x9042}, + {0xef46, 0x9fa8}, + {0xef47, 0x6b89}, + {0xef48, 0x8940}, + {0xef49, 0xb746}, + {0xef4a, 0xb7b0}, + {0xef4b, 0x747d}, + {0xef4c, 0x553e}, + {0xef4d, 0x4fd2}, + {0xef4e, 0x5ac4}, + {0xef4f, 0x5674}, + {0xef50, 0xa794}, + {0xef51, 0xbeb6}, + {0xef52, 0x406e}, + {0xef53, 0x9300}, + {0xef54, 0x3cc2}, + {0xef55, 0x9c31}, + {0xef56, 0x77ca}, + {0xef57, 0x5acc}, + {0xef58, 0xae2a}, + {0xef59, 0x9506}, + {0xef5a, 0x6d19}, + {0xef5b, 0x4080}, + {0xef5c, 0x9959}, + {0xef5d, 0xa3ac}, + {0xef5e, 0xb16c}, + {0xef5f, 0xb218}, + {0xef60, 0x9a21}, + {0xef61, 0x6ebc}, + {0xef62, 0x937a}, + {0xef63, 0x5384}, + {0xef64, 0x794d}, + {0xef65, 0xa6f1}, + {0xef66, 0x7982}, + {0xef67, 0x884a}, + {0xef68, 0x884c}, + {0xef69, 0x7954}, + {0xef6a, 0x408d}, + {0xef6b, 0x408e}, + {0xef6c, 0x4090}, + {0xef6d, 0x7776}, + {0xef6e, 0x4091}, + {0xef6f, 0x93c5}, + {0xef70, 0x5576}, + {0xef71, 0xac95}, + {0xef72, 0xb13d}, + {0xef73, 0xbea0}, + {0xef74, 0x9935}, + {0xef75, 0xb200}, + {0xef76, 0x7928}, + {0xef77, 0x543d}, + {0xef78, 0x5388}, + {0xef79, 0x545c}, + {0xef7a, 0x96b2}, + {0xef7b, 0x42be}, + {0xef7c, 0x6422}, + {0xef7d, 0x4fbe}, + {0xef7e, 0x9991}, + {0xef80, 0xa150}, + {0xef81, 0xbe6e}, + {0xef82, 0xa122}, + {0xef83, 0x917d}, + {0xef84, 0xba15}, + {0xef85, 0x6d76}, + {0xef86, 0x4782}, + {0xef87, 0xb64c}, + {0xef88, 0x53f0}, + {0xef89, 0x53f1}, + {0xef8a, 0x9b46}, + {0xef8b, 0xb648}, + {0xef8c, 0xc460}, + {0xef8d, 0xb3b0}, + {0xef8e, 0xc7ad}, + {0xef8f, 0x3f8a}, + {0xef90, 0x69dd}, + {0xef91, 0x9d79}, + {0xef92, 0x3dda}, + {0xef93, 0x4a1c}, + {0xef94, 0x9f52}, + {0xef95, 0x99a1}, + {0xef96, 0x3ddc}, + {0xef97, 0x9761}, + {0xef98, 0x51f5}, + {0xef99, 0x5ce5}, + {0xef9a, 0x9180}, + {0xef9b, 0x9edd}, + {0xef9c, 0x68dd}, + {0xef9d, 0x665c}, + {0xef9e, 0x4142}, + {0xef9f, 0xb201}, + {0xefa0, 0x9fea}, + {0xefa1, 0x93e9}, + {0xefa2, 0x9f2e}, + {0xefa3, 0xc0d4}, + {0xefa4, 0x939c}, + {0xefa5, 0x47e8}, + {0xefa6, 0x9ce5}, + {0xefa7, 0x3bdc}, + {0xefa8, 0x9228}, + {0xefa9, 0x739e}, + {0xefaa, 0x7289}, + {0xefab, 0x9dc2}, + {0xefac, 0x6fe9}, + {0xefad, 0xbdc5}, + {0xefae, 0x753c}, + {0xefaf, 0x587d}, + {0xefb0, 0x5224}, + {0xefb1, 0x4ba4}, + {0xefb2, 0x7c8c}, + {0xefb3, 0x7965}, + {0xefb4, 0x6e9a}, + {0xefb5, 0x6744}, + {0xefb6, 0x7359}, + {0xefb7, 0x8de0}, + {0xefb8, 0x6c40}, + {0xefb9, 0x3b2d}, + {0xefba, 0x8c74}, + {0xefbb, 0x8548}, + {0xefbc, 0x3e86}, + {0xefbd, 0x4d86}, + {0xefbe, 0x6fbd}, + {0xefbf, 0x71cd}, + {0xefc0, 0x5aaa}, + {0xefc1, 0x638e}, + {0xefc2, 0x869e}, + {0xefc3, 0x6d4e}, + {0xefc4, 0x9c8a}, + {0xefc5, 0xc5e1}, + {0xefc6, 0x8d6e}, + {0xefc7, 0x6eb5}, + {0xefc8, 0x9942}, + {0xefc9, 0x529e}, + {0xefca, 0x43ce}, + {0xefcb, 0x9a0e}, + {0xefcc, 0x6160}, + {0xefcd, 0x3b3d}, + {0xefce, 0x7a44}, + {0xefcf, 0x8c7d}, + {0xefd0, 0x549a}, + {0xefd1, 0x7e50}, + {0xefd2, 0x818d}, + {0xefd3, 0x58dc}, + {0xefd4, 0x6d3d}, + {0xefd5, 0x822c}, + {0xefd6, 0x792e}, + {0xefd7, 0xb521}, + {0xefd8, 0x6632}, + {0xefd9, 0x40ed}, + {0xefda, 0x4079}, + {0xefdb, 0x9cee}, + {0xefdc, 0x7d62}, + {0xefdd, 0x7bc8}, + {0xefde, 0xb798}, + {0xefdf, 0xc6fd}, + {0xefe0, 0xae28}, + {0xefe1, 0x4ddd}, + {0xefe2, 0x4471}, + {0xefe3, 0x6e00}, + {0xefe4, 0x8999}, + {0xefe5, 0x7ab2}, + {0xefe6, 0x5145}, + {0xefe7, 0x72da}, + {0xefe8, 0x89b9}, + {0xefe9, 0x4af1}, + {0xefea, 0x8c84}, + {0xefeb, 0x4dbd}, + {0xefec, 0x63e6}, + {0xefed, 0xc599}, + {0xefee, 0xb562}, + {0xefef, 0x43f6}, + {0xeff0, 0x408c}, + {0xeff1, 0xc2e6}, + {0xeff2, 0x95cc}, + {0xeff3, 0x4b81}, + {0xeff4, 0xc260}, + {0xeff5, 0x3f05}, + {0xeff6, 0xc61d}, + {0xeff7, 0x816a}, + {0xeff8, 0x97fa}, + {0xeff9, 0x7c4a}, + {0xeffa, 0x642e}, + {0xeffb, 0x55e8}, + {0xeffc, 0x7358}, + {0xeffd, 0x6f6d}, + {0xeffe, 0x9141}, + {0xf040, 0x4a1d}, + {0xf041, 0xa9a2}, + {0xf042, 0xb18c}, + {0xf043, 0x6d7a}, + {0xf044, 0x5316}, + {0xf045, 0x7402}, + {0xf046, 0xa66d}, + {0xf047, 0x4184}, + {0xf048, 0x8328}, + {0xf049, 0x52a9}, + {0xf04a, 0x422e}, + {0xf04b, 0x6e7a}, + {0xf04c, 0x506e}, + {0xf04d, 0x9a9d}, + {0xf04e, 0xb950}, + {0xf04f, 0xa678}, + {0xf050, 0xb20c}, + {0xf051, 0x636d}, + {0xf052, 0x5cad}, + {0xf053, 0x9770}, + {0xf054, 0x67d8}, + {0xf055, 0xc516}, + {0xf056, 0x4144}, + {0xf057, 0xa93c}, + {0xf058, 0x4276}, + {0xf059, 0xb2ed}, + {0xf05a, 0x4cce}, + {0xf05b, 0x5454}, + {0xf05c, 0xbf0e}, + {0xf05d, 0xa3e8}, + {0xf05e, 0x5b29}, + {0xf05f, 0x52b1}, + {0xf060, 0x852c}, + {0xf061, 0xbc50}, + {0xf062, 0x6050}, + {0xf063, 0x6216}, + {0xf064, 0x6322}, + {0xf065, 0x66f2}, + {0xf066, 0x5fae}, + {0xf067, 0x3b94}, + {0xf068, 0x9d31}, + {0xf069, 0x54d4}, + {0xf06a, 0xa3ed}, + {0xf06b, 0x5a88}, + {0xf06c, 0x43d5}, + {0xf06d, 0x99f6}, + {0xf06e, 0x9d35}, + {0xf06f, 0x41fd}, + {0xf070, 0x584c}, + {0xf071, 0xa776}, + {0xf072, 0x71a6}, + {0xf073, 0x7949}, + {0xf074, 0x9a1d}, + {0xf075, 0x9da9}, + {0xf076, 0xb301}, + {0xf077, 0xa422}, + {0xf078, 0x8138}, + {0xf079, 0x9d38}, + {0xf07a, 0x7d2e}, + {0xf07b, 0x3fd2}, + {0xf07c, 0xba79}, + {0xf07d, 0xac92}, + {0xf07e, 0x6a71}, + {0xf080, 0x9351}, + {0xf081, 0x71ad}, + {0xf082, 0xc4bd}, + {0xf083, 0x94ba}, + {0xf084, 0x47a2}, + {0xf085, 0x4cdc}, + {0xf086, 0xb57d}, + {0xf087, 0x6489}, + {0xf088, 0x910d}, + {0xf089, 0x4670}, + {0xf08a, 0xa3fe}, + {0xf08b, 0xa9ad}, + {0xf08c, 0xbe91}, + {0xf08d, 0x54d5}, + {0xf08e, 0x5cec}, + {0xf08f, 0x7f0d}, + {0xf090, 0xb108}, + {0xf091, 0x8144}, + {0xf092, 0x4495}, + {0xf093, 0xa9ae}, + {0xf094, 0x7be1}, + {0xf095, 0xbcea}, + {0xf096, 0x82c5}, + {0xf097, 0x4fb8}, + {0xf098, 0xa13a}, + {0xf099, 0x51e0}, + {0xf09a, 0x5e4c}, + {0xf09b, 0x7401}, + {0xf09c, 0xa5fc}, + {0xf09d, 0x505a}, + {0xf09e, 0x6e5d}, + {0xf09f, 0x5ca1}, + {0xf0a0, 0x5a6d}, + {0xf0a1, 0xc071}, + {0xf0a2, 0x65c1}, + {0xf0a3, 0x93b4}, + {0xf0a4, 0x83cc}, + {0xf0a5, 0x5735}, + {0xf0a6, 0x90f1}, + {0xf0a7, 0x5b95}, + {0xf0a8, 0x68c1}, + {0xf0a9, 0x5e04}, + {0xf0aa, 0xa652}, + {0xf0ab, 0x890d}, + {0xf0ac, 0x4f4e}, + {0xf0ad, 0x6091}, + {0xf0ae, 0xb7b6}, + {0xf0af, 0x6ba6}, + {0xf0b0, 0xba9c}, + {0xf0b1, 0x3dcc}, + {0xf0b2, 0xc089}, + {0xf0b3, 0x5a20}, + {0xf0b4, 0x4fe5}, + {0xf0b5, 0x7a62}, + {0xf0b6, 0x8f86}, + {0xf0b7, 0x46da}, + {0xf0b8, 0x9928}, + {0xf0b9, 0x52f1}, + {0xf0ba, 0xc23c}, + {0xf0bb, 0x5abe}, + {0xf0bc, 0xac79}, + {0xf0bd, 0x7b54}, + {0xf0be, 0x41c1}, + {0xf0bf, 0x74b9}, + {0xf0c0, 0x5a6e}, + {0xf0c1, 0xba18}, + {0xf0c2, 0xa884}, + {0xf0c3, 0x9e15}, + {0xf0c4, 0xa56c}, + {0xf0c5, 0x803e}, + {0xf0c6, 0x3bbc}, + {0xf0c7, 0x3e21}, + {0xf0c8, 0x49a4}, + {0xf0c9, 0x6035}, + {0xf0ca, 0x52a0}, + {0xf0cb, 0x4a16}, + {0xf0cc, 0x7e51}, + {0xf0cd, 0xa5c1}, + {0xf0ce, 0xb262}, + {0xf0cf, 0x66e4}, + {0xf0d0, 0xb6be}, + {0xf0d1, 0xbff1}, + {0xf0d2, 0x797d}, + {0xf0d3, 0x7764}, + {0xf0d4, 0x6899}, + {0xf0d5, 0x6c05}, + {0xf0d6, 0xba69}, + {0xf0d7, 0x60a6}, + {0xf0d8, 0x7b38}, + {0xf0d9, 0x5b59}, + {0xf0da, 0x8312}, + {0xf0db, 0x4f9d}, + {0xf0dc, 0x6932}, + {0xf0dd, 0x756c}, + {0xf0de, 0x9485}, + {0xf0df, 0x757a}, + {0xf0e0, 0xb822}, + {0xf0e1, 0x57a8}, + {0xf0e2, 0x6f5e}, + {0xf0e3, 0x4c8d}, + {0xf0e4, 0xbe32}, + {0xf0e5, 0x867c}, + {0xf0e6, 0xc43e}, + {0xf0e7, 0xaddd}, + {0xf0e8, 0x661d}, + {0xf0e9, 0xaf62}, + {0xf0ea, 0xb398}, + {0xf0eb, 0xc248}, + {0xf0ec, 0x739d}, + {0xf0ed, 0xa5b0}, + {0xf0ee, 0x4b7e}, + {0xf0ef, 0xa880}, + {0xf0f0, 0x93ea}, + {0xf0f1, 0xc3e4}, + {0xf0f2, 0x5499}, + {0xf0f3, 0x5aa8}, + {0xf0f4, 0xa37d}, + {0xf0f5, 0xb9aa}, + {0xf0f6, 0xb8c8}, + {0xf0f7, 0x4c6c}, + {0xf0f8, 0x724d}, + {0xf0f9, 0xb501}, + {0xf0fa, 0x5fa2}, + {0xf0fb, 0x442a}, + {0xf0fc, 0x7a42}, + {0xf0fd, 0x667e}, + {0xf0fe, 0x938c}, + {0xf140, 0xb2cd}, + {0xf141, 0x41ca}, + {0xf142, 0x54ee}, + {0xf143, 0x41da}, + {0xf144, 0x8388}, + {0xf145, 0x3fa1}, + {0xf146, 0x41ee}, + {0xf147, 0xa08e}, + {0xf148, 0x5d01}, + {0xf149, 0x5455}, + {0xf14a, 0x66f4}, + {0xf14b, 0x3bc6}, + {0xf14c, 0x3b98}, + {0xf14d, 0xa844}, + {0xf14e, 0xbbcc}, + {0xf14f, 0x5506}, + {0xf150, 0x8882}, + {0xf151, 0xabaa}, + {0xf152, 0x7cb6}, + {0xf153, 0xba16}, + {0xf154, 0x5582}, + {0xf155, 0x5d76}, + {0xf156, 0x4e75}, + {0xf157, 0xa179}, + {0xf158, 0xa151}, + {0xf159, 0x472a}, + {0xf15a, 0xaede}, + {0xf15b, 0xc461}, + {0xf15c, 0xc161}, + {0xf15d, 0x86c1}, + {0xf15e, 0xabcc}, + {0xf15f, 0x9196}, + {0xf160, 0x92fc}, + {0xf161, 0xbc1c}, + {0xf162, 0xa441}, + {0xf163, 0xc18e}, + {0xf164, 0x4c92}, + {0xf165, 0x7c2d}, + {0xf166, 0xb84c}, + {0xf167, 0x41dc}, + {0xf168, 0x3dde}, + {0xf169, 0x6ddd}, + {0xf16a, 0xa17e}, + {0xf16b, 0xb508}, + {0xf16c, 0x8f65}, + {0xf16d, 0x8970}, + {0xf16e, 0x8f6a}, + {0xf16f, 0x6b70}, + {0xf170, 0x8919}, + {0xf171, 0xbf50}, + {0xf172, 0xbabd}, + {0xf173, 0x86f2}, + {0xf174, 0xc390}, + {0xf175, 0x6d04}, + {0xf176, 0xc46e}, + {0xf177, 0x8518}, + {0xf178, 0x6c4e}, + {0xf179, 0x877c}, + {0xf17a, 0xbcfe}, + {0xf17b, 0x6691}, + {0xf17c, 0x78ba}, + {0xf17d, 0xc072}, + {0xf17e, 0x9c19}, + {0xf180, 0x5721}, + {0xf181, 0xb18d}, + {0xf182, 0x96fe}, + {0xf183, 0x3fae}, + {0xf184, 0xa181}, + {0xf185, 0xa182}, + {0xf186, 0x99a5}, + {0xf187, 0x7930}, + {0xf188, 0x7cdc}, + {0xf189, 0x882c}, + {0xf18a, 0x9da6}, + {0xf18b, 0xc290}, + {0xf18c, 0x91d6}, + {0xf18d, 0x9dda}, + {0xf18e, 0x5031}, + {0xf18f, 0xae9c}, + {0xf190, 0x8ff4}, + {0xf191, 0x95b2}, + {0xf192, 0x6b71}, + {0xf193, 0x5318}, + {0xf194, 0x5ce8}, + {0xf195, 0x41f0}, + {0xf196, 0xc3c5}, + {0xf197, 0xb5d8}, + {0xf198, 0x7c16}, + {0xf199, 0xc348}, + {0xf19a, 0x4cd0}, + {0xf19b, 0x5ce9}, + {0xf19c, 0x793d}, + {0xf19d, 0x6c8a}, + {0xf19e, 0x99e4}, + {0xf19f, 0x8d99}, + {0xf1a0, 0x7d96}, + {0xf1a1, 0x4798}, + {0xf1a2, 0x8189}, + {0xf1a3, 0x3d30}, + {0xf1a4, 0x64fd}, + {0xf1a5, 0x620c}, + {0xf1a6, 0x4078}, + {0xf1a7, 0x7bec}, + {0xf1a8, 0xb750}, + {0xf1a9, 0xbe62}, + {0xf1aa, 0x79ac}, + {0xf1ab, 0xb654}, + {0xf1ac, 0x47f6}, + {0xf1ad, 0x3d36}, + {0xf1ae, 0x72a8}, + {0xf1af, 0xb55c}, + {0xf1b0, 0x4ee2}, + {0xf1b1, 0x87e1}, + {0xf1b2, 0x4ea0}, + {0xf1b3, 0x8fb6}, + {0xf1b4, 0xb4ae}, + {0xf1b5, 0x99da}, + {0xf1b6, 0xa5ee}, + {0xf1b7, 0x8e68}, + {0xf1b8, 0xc521}, + {0xf1b9, 0x400d}, + {0xf1ba, 0xb231}, + {0xf1bb, 0x9f25}, + {0xf1bc, 0x5069}, + {0xf1bd, 0x6f6e}, + {0xf1be, 0xb941}, + {0xf1bf, 0xae95}, + {0xf1c0, 0x6d01}, + {0xf1c1, 0xb9b0}, + {0xf1c2, 0xb314}, + {0xf1c3, 0x43f4}, + {0xf1c4, 0x823a}, + {0xf1c5, 0x9166}, + {0xf1c6, 0x6a2c}, + {0xf1c7, 0x7e85}, + {0xf1c8, 0x861a}, + {0xf1c9, 0x4ce1}, + {0xf1ca, 0x6624}, + {0xf1cb, 0x5896}, + {0xf1cc, 0x6fd9}, + {0xf1cd, 0x7658}, + {0xf1ce, 0x46a5}, + {0xf1cf, 0x76ac}, + {0xf1d0, 0x6741}, + {0xf1d1, 0x409c}, + {0xf1d2, 0x489c}, + {0xf1d3, 0x9e65}, + {0xf1d4, 0x3f84}, + {0xf1d5, 0x6c42}, + {0xf1d6, 0x519c}, + {0xf1d7, 0x4bb9}, + {0xf1d8, 0x3e6a}, + {0xf1d9, 0x3ddd}, + {0xf1da, 0x7c55}, + {0xf1db, 0x4015}, + {0xf1dc, 0x72ce}, + {0xf1dd, 0x475e}, + {0xf1de, 0xbfe1}, + {0xf1df, 0x8cad}, + {0xf1e0, 0x923e}, + {0xf1e1, 0x8624}, + {0xf1e2, 0xaf59}, + {0xf1e3, 0xacc8}, + {0xf1e4, 0x6e3a}, + {0xf1e5, 0x4b5c}, + {0xf1e6, 0x6a28}, + {0xf1e7, 0x7431}, + {0xf1e8, 0xc61e}, + {0xf1e9, 0x458d}, + {0xf1ea, 0x9996}, + {0xf1eb, 0x638d}, + {0xf1ec, 0x73dc}, + {0xf1ed, 0x9d42}, + {0xf1ee, 0x85a6}, + {0xf1ef, 0x7a19}, + {0xf1f0, 0x6836}, + {0xf1f1, 0x8508}, + {0xf1f2, 0x81a9}, + {0xf1f3, 0x4f62}, + {0xf1f4, 0x4fa1}, + {0xf1f5, 0x4c61}, + {0xf1f6, 0x789a}, + {0xf1f7, 0x8489}, + {0xf1f8, 0x5c69}, + {0xf1f9, 0x719c}, + {0xf1fa, 0x3c3d}, + {0xf1fb, 0x9c86}, + {0xf1fc, 0x5cf2}, + {0xf1fd, 0x8a35}, + {0xf1fe, 0x5db2}, + {0xf240, 0x7369}, + {0xf241, 0x5d91}, + {0xf242, 0xa091}, + {0xf243, 0xadc5}, + {0xf244, 0xa106}, + {0xf245, 0x6e80}, + {0xf246, 0x5245}, + {0xf247, 0x46cc}, + {0xf248, 0xabf5}, + {0xf249, 0x99ac}, + {0xf24a, 0x7b36}, + {0xf24b, 0xc4f5}, + {0xf24c, 0xc34e}, + {0xf24d, 0x9569}, + {0xf24e, 0x882d}, + {0xf24f, 0x71e0}, + {0xf250, 0x9daa}, + {0xf251, 0x7290}, + {0xf252, 0xc67e}, + {0xf253, 0x6fc8}, + {0xf254, 0x8a95}, + {0xf255, 0x8a96}, + {0xf256, 0xb0f0}, + {0xf257, 0x5456}, + {0xf258, 0x937c}, + {0xf259, 0xb0f1}, + {0xf25a, 0x58f2}, + {0xf25b, 0xb24a}, + {0xf25c, 0xa5d2}, + {0xf25d, 0x8839}, + {0xf25e, 0x4a8c}, + {0xf25f, 0x883a}, + {0xf260, 0x8c05}, + {0xf261, 0x5458}, + {0xf262, 0x621d}, + {0xf263, 0x8c02}, + {0xf264, 0x6398}, + {0xf265, 0xb970}, + {0xf266, 0x9e3d}, + {0xf267, 0x8ff5}, + {0xf268, 0xa7dd}, + {0xf269, 0xc681}, + {0xf26a, 0x7164}, + {0xf26b, 0x920e}, + {0xf26c, 0x995d}, + {0xf26d, 0x5ad0}, + {0xf26e, 0xa18a}, + {0xf26f, 0x5bc6}, + {0xf270, 0x9a24}, + {0xf271, 0x8bc2}, + {0xf272, 0x46c1}, + {0xf273, 0xc2b2}, + {0xf274, 0x7950}, + {0xf275, 0x8731}, + {0xf276, 0x9de2}, + {0xf277, 0xa6f2}, + {0xf278, 0x4356}, + {0xf279, 0x50aa}, + {0xf27a, 0xb0fe}, + {0xf27b, 0xbb26}, + {0xf27c, 0xc6ce}, + {0xf27d, 0x937d}, + {0xf27e, 0x94bc}, + {0xf280, 0x8aa8}, + {0xf281, 0xc2b9}, + {0xf282, 0x98a1}, + {0xf283, 0x7b45}, + {0xf284, 0xa6f4}, + {0xf285, 0x7bd2}, + {0xf286, 0xbf12}, + {0xf287, 0x81a2}, + {0xf288, 0x3c82}, + {0xf289, 0x42d0}, + {0xf28a, 0x4092}, + {0xf28b, 0x4a8d}, + {0xf28c, 0x8f78}, + {0xf28d, 0x3fe2}, + {0xf28e, 0xc2ba}, + {0xf28f, 0xba84}, + {0xf290, 0xacfc}, + {0xf291, 0x60e4}, + {0xf292, 0x4188}, + {0xf293, 0x9ab4}, + {0xf294, 0xaa41}, + {0xf295, 0x781e}, + {0xf296, 0xbef4}, + {0xf297, 0x516d}, + {0xf298, 0x7958}, + {0xf299, 0xa18d}, + {0xf29a, 0x43a8}, + {0xf29b, 0x4ee8}, + {0xf29c, 0x68a6}, + {0xf29d, 0x9f4e}, + {0xf29e, 0xb109}, + {0xf29f, 0x7bdc}, + {0xf2a0, 0xbe94}, + {0xf2a1, 0x6994}, + {0xf2a2, 0x5e68}, + {0xf2a3, 0xb744}, + {0xf2a4, 0x6f69}, + {0xf2a5, 0x5d75}, + {0xf2a6, 0x52a8}, + {0xf2a7, 0xc495}, + {0xf2a8, 0x8450}, + {0xf2a9, 0x7d11}, + {0xf2aa, 0x9362}, + {0xf2ab, 0x5e19}, + {0xf2ac, 0x9242}, + {0xf2ad, 0x8895}, + {0xf2ae, 0x5fd6}, + {0xf2af, 0x8bde}, + {0xf2b0, 0x8eda}, + {0xf2b1, 0x6531}, + {0xf2b2, 0x4426}, + {0xf2b3, 0x6259}, + {0xf2b4, 0x58fd}, + {0xf2b5, 0x7ec9}, + {0xf2b6, 0x5649}, + {0xf2b7, 0x879d}, + {0xf2b8, 0x92a9}, + {0xf2b9, 0xa8c4}, + {0xf2ba, 0x5dc8}, + {0xf2bb, 0x69fd}, + {0xf2bc, 0x5975}, + {0xf2bd, 0x504d}, + {0xf2be, 0xb641}, + {0xf2bf, 0x46d9}, + {0xf2c0, 0x5cf6}, + {0xf2c1, 0x5a25}, + {0xf2c2, 0x5e61}, + {0xf2c3, 0x75a6}, + {0xf2c4, 0xb836}, + {0xf2c5, 0x90bc}, + {0xf2c6, 0xbe35}, + {0xf2c7, 0x8ea9}, + {0xf2c8, 0x789e}, + {0xf2c9, 0x464d}, + {0xf2ca, 0xb8a6}, + {0xf2cb, 0x8e7d}, + {0xf2cc, 0x6654}, + {0xf2cd, 0x82e0}, + {0xf2ce, 0xc249}, + {0xf2cf, 0x992e}, + {0xf2d0, 0x8f5a}, + {0xf2d1, 0x9f88}, + {0xf2d2, 0x720c}, + {0xf2d3, 0x8a5c}, + {0xf2d4, 0x687e}, + {0xf2d5, 0xb156}, + {0xf2d6, 0x7dbd}, + {0xf2d7, 0x95fd}, + {0xf2d8, 0xbf8e}, + {0xf2d9, 0x9500}, + {0xf2da, 0xa536}, + {0xf2db, 0x74ca}, + {0xf2dc, 0x4870}, + {0xf2dd, 0x566e}, + {0xf2de, 0x8c72}, + {0xf2df, 0x8e12}, + {0xf2e0, 0x8a78}, + {0xf2e1, 0xa669}, + {0xf2e2, 0xba3e}, + {0xf2e3, 0x544e}, + {0xf2e4, 0x5ca9}, + {0xf2e5, 0x5c75}, + {0xf2e6, 0xb505}, + {0xf2e7, 0x87b5}, + {0xf2e8, 0x9f0e}, + {0xf2e9, 0x9028}, + {0xf2ea, 0xa205}, + {0xf2eb, 0x7362}, + {0xf2ec, 0x7f22}, + {0xf2ed, 0x4982}, + {0xf2ee, 0x91ca}, + {0xf2ef, 0x82b2}, + {0xf2f0, 0x5684}, + {0xf2f1, 0x7159}, + {0xf2f2, 0x6f7d}, + {0xf2f3, 0x571e}, + {0xf2f4, 0x9a15}, + {0xf2f5, 0xb94c}, + {0xf2f6, 0xb850}, + {0xf2f7, 0x7a1a}, + {0xf2f8, 0x8f1d}, + {0xf2f9, 0x3ffa}, + {0xf2fa, 0x7dc5}, + {0xf2fb, 0x8dce}, + {0xf2fc, 0x3c3e}, + {0xf2fd, 0x7d3e}, + {0xf2fe, 0x7da8}, + {0xf340, 0x6afe}, + {0xf341, 0xb58c}, + {0xf342, 0xb309}, + {0xf343, 0xa156}, + {0xf344, 0x8884}, + {0xf345, 0xc39a}, + {0xf346, 0xb110}, + {0xf347, 0x79dc}, + {0xf348, 0x7c39}, + {0xf349, 0x9dec}, + {0xf34a, 0xa97e}, + {0xf34b, 0x6601}, + {0xf34c, 0x98ad}, + {0xf34d, 0x6c9d}, + {0xf34e, 0xa6f8}, + {0xf34f, 0x6142}, + {0xf350, 0x7520}, + {0xf351, 0x4098}, + {0xf352, 0x9191}, + {0xf353, 0xb5a9}, + {0xf354, 0x405d}, + {0xf355, 0xabdc}, + {0xf356, 0x8d86}, + {0xf357, 0xc651}, + {0xf358, 0x9a6a}, + {0xf359, 0x714e}, + {0xf35a, 0x989e}, + {0xf35b, 0xa362}, + {0xf35c, 0xa372}, + {0xf35d, 0xa374}, + {0xf35e, 0xb929}, + {0xf35f, 0x57e4}, + {0xf360, 0xb4da}, + {0xf361, 0x3c02}, + {0xf362, 0x3e02}, + {0xf363, 0x3e6d}, + {0xf364, 0x49f5}, + {0xf365, 0x9e48}, + {0xf366, 0x8cd0}, + {0xf367, 0x7095}, + {0xf368, 0xa0fa}, + {0xf369, 0x594a}, + {0xf36a, 0x8829}, + {0xf36b, 0xb96a}, + {0xf36c, 0x9af5}, + {0xf36d, 0x4204}, + {0xf36e, 0xaa38}, + {0xf36f, 0x8654}, + {0xf370, 0x4205}, + {0xf371, 0x4b78}, + {0xf372, 0x813e}, + {0xf373, 0x7775}, + {0xf374, 0x7a29}, + {0xf375, 0xaa3d}, + {0xf376, 0xbcfa}, + {0xf377, 0x9e4d}, + {0xf378, 0x4115}, + {0xf379, 0x70c9}, + {0xf37a, 0x7a90}, + {0xf37b, 0x5836}, + {0xf37c, 0x8d2d}, + {0xf37d, 0x6f34}, + {0xf37e, 0x8d1d}, + {0xf380, 0x73b6}, + {0xf381, 0x9391}, + {0xf382, 0x71ca}, + {0xf383, 0x4df9}, + {0xf384, 0x5434}, + {0xf385, 0xac85}, + {0xf386, 0x90be}, + {0xf387, 0x4cc2}, + {0xf388, 0x71d6}, + {0xf389, 0x410c}, + {0xf38a, 0x533a}, + {0xf38b, 0x877d}, + {0xf38c, 0x5366}, + {0xf38d, 0x9e6d}, + {0xf38e, 0x3e05}, + {0xf38f, 0x3fb0}, + {0xf390, 0x7dc6}, + {0xf391, 0x5685}, + {0xf392, 0x52fa}, + {0xf393, 0x91d8}, + {0xf394, 0x8f6d}, + {0xf395, 0x598c}, + {0xf396, 0x7219}, + {0xf397, 0x8725}, + {0xf398, 0xc482}, + {0xf399, 0x9509}, + {0xf39a, 0x9b7e}, + {0xf39b, 0x9e78}, + {0xf39c, 0x75ee}, + {0xf39d, 0x410e}, + {0xf39e, 0x9e7c}, + {0xf39f, 0x872c}, + {0xf3a0, 0x99d0}, + {0xf3a1, 0x7caa}, + {0xf3a2, 0xbb1c}, + {0xf3a3, 0xa68a}, + {0xf3a4, 0x46f5}, + {0xf3a5, 0x9d29}, + {0xf3a6, 0x8645}, + {0xf3a7, 0x977c}, + {0xf3a8, 0x6214}, + {0xf3a9, 0x434d}, + {0xf3aa, 0x8848}, + {0xf3ab, 0x9d2d}, + {0xf3ac, 0xa69a}, + {0xf3ad, 0xa9c9}, + {0xf3ae, 0xc2ec}, + {0xf3af, 0xbf10}, + {0xf3b0, 0x9889}, + {0xf3b1, 0x7dc9}, + {0xf3b2, 0x872a}, + {0xf3b3, 0x632c}, + {0xf3b4, 0x8604}, + {0xf3b5, 0x94b4}, + {0xf3b6, 0x63f0}, + {0xf3b7, 0x7f26}, + {0xf3b8, 0x447d}, + {0xf3b9, 0x769a}, + {0xf3ba, 0x807a}, + {0xf3bb, 0x7510}, + {0xf3bc, 0x50e9}, + {0xf3bd, 0x8fbc}, + {0xf3be, 0x55b4}, + {0xf3bf, 0xb6b0}, + {0xf3c0, 0x8e5a}, + {0xf3c1, 0xa7f8}, + {0xf3c2, 0x9739}, + {0xf3c3, 0xc3d8}, + {0xf3c4, 0xb8f6}, + {0xf3c5, 0x64be}, + {0xf3c6, 0x50c1}, + {0xf3c7, 0x6421}, + {0xf3c8, 0x672d}, + {0xf3c9, 0xbf69}, + {0xf3ca, 0xc621}, + {0xf3cb, 0x608c}, + {0xf3cc, 0x8e72}, + {0xf3cd, 0x8916}, + {0xf3ce, 0x4bd9}, + {0xf3cf, 0x961d}, + {0xf3d0, 0xbd5e}, + {0xf3d1, 0x59e2}, + {0xf3d2, 0x75a0}, + {0xf3d3, 0x9995}, + {0xf3d4, 0x9f05}, + {0xf3d5, 0x6620}, + {0xf3d6, 0x3fed}, + {0xf3d7, 0x46de}, + {0xf3d8, 0x7035}, + {0xf3d9, 0x3f6e}, + {0xf3da, 0xa8c8}, + {0xf3db, 0xaffd}, + {0xf3dc, 0x9019}, + {0xf3dd, 0xc0dc}, + {0xf3de, 0x6e40}, + {0xf3df, 0x9759}, + {0xf3e0, 0x5828}, + {0xf3e1, 0x85c2}, + {0xf3e2, 0x94fd}, + {0xf3e3, 0xaa58}, + {0xf3e4, 0x8e52}, + {0xf3e5, 0xbd6d}, + {0xf3e6, 0x8d6c}, + {0xf3e7, 0xc468}, + {0xf3e8, 0x92dd}, + {0xf3e9, 0x8bf2}, + {0xf3ea, 0xa1ac}, + {0xf3eb, 0x3f9a}, + {0xf3ec, 0x4c6e}, + {0xf3ed, 0x700a}, + {0xf3ee, 0xbab8}, + {0xf3ef, 0xaa0e}, + {0xf3f0, 0xc036}, + {0xf3f1, 0x719a}, + {0xf3f2, 0x6206}, + {0xf3f3, 0x5fa8}, + {0xf3f4, 0x59d2}, + {0xf3f5, 0x547a}, + {0xf3f6, 0x75e0}, + {0xf3f7, 0x3fb8}, + {0xf3f8, 0x4732}, + {0xf3f9, 0x9aaa}, + {0xf3fa, 0x8075}, + {0xf3fb, 0x5040}, + {0xf3fc, 0x7b2d}, + {0xf3fd, 0x5109}, + {0xf3fe, 0x5bf9}, + {0xf440, 0xc0ee}, + {0xf441, 0xc682}, + {0xf442, 0x98ee}, + {0xf443, 0x676d}, + {0xf444, 0x51d5}, + {0xf445, 0x6055}, + {0xf446, 0x725d}, + {0xf447, 0x8aa6}, + {0xf448, 0x76a0}, + {0xf449, 0xc078}, + {0xf44a, 0x8732}, + {0xf44b, 0x7cde}, + {0xf44c, 0x9336}, + {0xf44d, 0x7d31}, + {0xf44e, 0x7d32}, + {0xf44f, 0x93d0}, + {0xf450, 0xacfe}, + {0xf451, 0x77de}, + {0xf452, 0x8bc6}, + {0xf453, 0x8bc8}, + {0xf454, 0x82c1}, + {0xf455, 0x7226}, + {0xf456, 0x84a2}, + {0xf457, 0x4116}, + {0xf458, 0x90f5}, + {0xf459, 0x505c}, + {0xf45a, 0x506c}, + {0xf45b, 0x8310}, + {0xf45c, 0x5f8c}, + {0xf45d, 0xa778}, + {0xf45e, 0x5075}, + {0xf45f, 0x5d4a}, + {0xf460, 0x5078}, + {0xf461, 0x5076}, + {0xf462, 0x6bc1}, + {0xf463, 0xba90}, + {0xf464, 0xba92}, + {0xf465, 0xb0e6}, + {0xf466, 0x56c4}, + {0xf467, 0xabae}, + {0xf468, 0x5bc5}, + {0xf469, 0xc684}, + {0xf46a, 0x7984}, + {0xf46b, 0x5bca}, + {0xf46c, 0x94d8}, + {0xf46d, 0x7e8d}, + {0xf46e, 0x8a69}, + {0xf46f, 0x8a6a}, + {0xf470, 0x574c}, + {0xf471, 0xace6}, + {0xf472, 0xba68}, + {0xf473, 0xa0e9}, + {0xf474, 0x8a05}, + {0xf475, 0x771c}, + {0xf476, 0x57ba}, + {0xf477, 0x884d}, + {0xf478, 0x3fde}, + {0xf479, 0x8aa9}, + {0xf47a, 0xacfa}, + {0xf47b, 0x4845}, + {0xf47c, 0xb099}, + {0xf47d, 0xbe95}, + {0xf47e, 0xb911}, + {0xf480, 0x4d35}, + {0xf481, 0x9131}, + {0xf482, 0x69a2}, + {0xf483, 0x3ca6}, + {0xf484, 0x5f6d}, + {0xf485, 0xa152}, + {0xf486, 0x4e00}, + {0xf487, 0x6542}, + {0xf488, 0xb951}, + {0xf489, 0x5230}, + {0xf48a, 0x8d70}, + {0xf48b, 0x93f5}, + {0xf48c, 0x5da0}, + {0xf48d, 0xa125}, + {0xf48e, 0x818e}, + {0xf48f, 0x6a11}, + {0xf490, 0x95dc}, + {0xf491, 0x3d4c}, + {0xf492, 0xbb15}, + {0xf493, 0x87b9}, + {0xf494, 0x7aaa}, + {0xf495, 0xa442}, + {0xf496, 0x603d}, + {0xf497, 0x7a6c}, + {0xf498, 0xbc68}, + {0xf499, 0x541c}, + {0xf49a, 0x54f5}, + {0xf49b, 0x8258}, + {0xf49c, 0xb851}, + {0xf49d, 0x8836}, + {0xf49e, 0x812e}, + {0xf49f, 0x5e8a}, + {0xf4a0, 0xa7d2}, + {0xf4a1, 0x4ee4}, + {0xf4a2, 0xbcb0}, + {0xf4a3, 0x4da5}, + {0xf4a4, 0x4219}, + {0xf4a5, 0x72ad}, + {0xf4a6, 0xc395}, + {0xf4a7, 0xb8e9}, + {0xf4a8, 0xb8f8}, + {0xf4a9, 0x47ba}, + {0xf4aa, 0xa74e}, + {0xf4ab, 0x842a}, + {0xf4ac, 0x8566}, + {0xf4ad, 0x4902}, + {0xf4ae, 0x9442}, + {0xf4af, 0xb3f1}, + {0xf4b0, 0x3f0e}, + {0xf4b1, 0xc2dc}, + {0xf4b2, 0x3d45}, + {0xf4b3, 0x5431}, + {0xf4b4, 0x58f8}, + {0xf4b5, 0x7a66}, + {0xf4b6, 0xc3e2}, + {0xf4b7, 0xbd60}, + {0xf4b8, 0xa642}, + {0xf4b9, 0x94fe}, + {0xf4ba, 0xa380}, + {0xf4bb, 0x7f21}, + {0xf4bc, 0x9792}, + {0xf4bd, 0x434c}, + {0xf4be, 0x47c8}, + {0xf4bf, 0x7f04}, + {0xf4c0, 0x8d85}, + {0xf4c1, 0x83fc}, + {0xf4c2, 0x6622}, + {0xf4c3, 0x8f14}, + {0xf4c4, 0x93f0}, + {0xf4c5, 0x3fd9}, + {0xf4c6, 0x4dd2}, + {0xf4c7, 0x8ca5}, + {0xf4c8, 0x9b74}, + {0xf4c9, 0x69b2}, + {0xf4ca, 0x9cea}, + {0xf4cb, 0xa689}, + {0xf4cc, 0xa814}, + {0xf4cd, 0x7f84}, + {0xf4ce, 0x3c9c}, + {0xf4cf, 0x75a2}, + {0xf4d0, 0x9f2d}, + {0xf4d1, 0xa63e}, + {0xf4d2, 0xc5d4}, + {0xf4d3, 0x42fd}, + {0xf4d4, 0x77fa}, + {0xf4d5, 0xc6ad}, + {0xf4d6, 0x9342}, + {0xf4d7, 0x5fa9}, + {0xf4d8, 0xbcac}, + {0xf4d9, 0x4a19}, + {0xf4da, 0xad21}, + {0xf4db, 0x9204}, + {0xf4dc, 0x8f2a}, + {0xf4dd, 0x685c}, + {0xf4de, 0x5910}, + {0xf4df, 0x65b2}, + {0xf4e0, 0xb47d}, + {0xf4e1, 0x7899}, + {0xf4e2, 0xa640}, + {0xf4e3, 0xc469}, + {0xf4e4, 0x5475}, + {0xf4e5, 0x6758}, + {0xf4e6, 0x8819}, + {0xf4e7, 0x5e88}, + {0xf4e8, 0xb554}, + {0xf4e9, 0x7fa0}, + {0xf4ea, 0xc188}, + {0xf4eb, 0x8a72}, + {0xf4ec, 0x8ae1}, + {0xf4ed, 0xb20e}, + {0xf4ee, 0x4d76}, + {0xf4ef, 0x55e5}, + {0xf4f0, 0x8f74}, + {0xf4f1, 0x6bac}, + {0xf4f2, 0x6c3d}, + {0xf4f3, 0x77c6}, + {0xf4f4, 0xc5e0}, + {0xf4f5, 0xbcc5}, + {0xf4f6, 0x82a9}, + {0xf4f7, 0xbfe0}, + {0xf4f8, 0x6802}, + {0xf4f9, 0x4754}, + {0xf4fa, 0x4fa2}, + {0xf4fb, 0x57a9}, + {0xf4fc, 0xc37a}, + {0xf4fd, 0xb392}, + {0xf4fe, 0x5a2d}, + {0xf540, 0x8f6e}, + {0xf541, 0x5d02}, + {0xf542, 0x8784}, + {0xf543, 0x78c2}, + {0xf544, 0xa186}, + {0xf545, 0x3cdd}, + {0xf546, 0x8f21}, + {0xf547, 0x88e6}, + {0xf548, 0x568d}, + {0xf549, 0x3fc0}, + {0xf54a, 0x65da}, + {0xf54b, 0xa3e9}, + {0xf54c, 0x6c50}, + {0xf54d, 0x4f09}, + {0xf54e, 0x41f1}, + {0xf54f, 0xb854}, + {0xf550, 0x5c49}, + {0xf551, 0x87bd}, + {0xf552, 0x83c8}, + {0xf553, 0xabf1}, + {0xf554, 0x9c36}, + {0xf555, 0x3e08}, + {0xf556, 0x5726}, + {0xf557, 0xbe20}, + {0xf558, 0x6d0c}, + {0xf559, 0x5a3a}, + {0xf55a, 0x96dd}, + {0xf55b, 0x4ff5}, + {0xf55c, 0x4c40}, + {0xf55d, 0x9bc5}, + {0xf55e, 0x69c4}, + {0xf55f, 0x97f0}, + {0xf560, 0x5fd1}, + {0xf561, 0xa9a9}, + {0xf562, 0x52fc}, + {0xf563, 0x3bc8}, + {0xf564, 0xa330}, + {0xf565, 0xbf88}, + {0xf566, 0xc3c6}, + {0xf567, 0xb680}, + {0xf568, 0x77ce}, + {0xf569, 0x7c18}, + {0xf56a, 0x9ffe}, + {0xf56b, 0xb3cd}, + {0xf56c, 0xb559}, + {0xf56d, 0x415e}, + {0xf56e, 0xa3a5}, + {0xf56f, 0x6896}, + {0xf570, 0x705e}, + {0xf571, 0x5bc1}, + {0xf572, 0xa83d}, + {0xf573, 0x58e9}, + {0xf574, 0x62a6}, + {0xf575, 0x73d1}, + {0xf576, 0x5691}, + {0xf577, 0x6f4c}, + {0xf578, 0xac8e}, + {0xf579, 0x51b4}, + {0xf57a, 0x6e4c}, + {0xf57b, 0x9e3a}, + {0xf57c, 0x8028}, + {0xf57d, 0x950a}, + {0xf57e, 0xbe22}, + {0xf580, 0x9b81}, + {0xf581, 0x8d9a}, + {0xf582, 0xb96c}, + {0xf583, 0x8329}, + {0xf584, 0xbfd2}, + {0xf585, 0x5c4d}, + {0xf586, 0x594c}, + {0xf587, 0x9a42}, + {0xf588, 0xa541}, + {0xf589, 0x8f24}, + {0xf58a, 0x9465}, + {0xf58b, 0x8978}, + {0xf58c, 0x61c4}, + {0xf58d, 0x9f18}, + {0xf58e, 0x7548}, + {0xf58f, 0x93fa}, + {0xf590, 0x93fc}, + {0xf591, 0x6f4d}, + {0xf592, 0x7f01}, + {0xf593, 0x46bd}, + {0xf594, 0x74fe}, + {0xf595, 0xc6d5}, + {0xf596, 0xa6a9}, + {0xf597, 0xb7e2}, + {0xf598, 0x95b5}, + {0xf599, 0xc601}, + {0xf59a, 0x8a9c}, + {0xf59b, 0x8e1a}, + {0xf59c, 0xa9aa}, + {0xf59d, 0x832a}, + {0xf59e, 0x49b2}, + {0xf59f, 0x65f1}, + {0xf5a0, 0x4f0e}, + {0xf5a1, 0x4ace}, + {0xf5a2, 0xa176}, + {0xf5a3, 0xa824}, + {0xf5a4, 0x8112}, + {0xf5a5, 0xc1e0}, + {0xf5a6, 0xb0d4}, + {0xf5a7, 0x9686}, + {0xf5a8, 0x46b1}, + {0xf5a9, 0xa086}, + {0xf5aa, 0x7470}, + {0xf5ab, 0x71da}, + {0xf5ac, 0x8692}, + {0xf5ad, 0x6045}, + {0xf5ae, 0x9e31}, + {0xf5af, 0xad22}, + {0xf5b0, 0x5cd8}, + {0xf5b1, 0x9d30}, + {0xf5b2, 0x73b1}, + {0xf5b3, 0x4231}, + {0xf5b4, 0x6929}, + {0xf5b5, 0xa6ae}, + {0xf5b6, 0x6d25}, + {0xf5b7, 0x754a}, + {0xf5b8, 0xaeb2}, + {0xf5b9, 0x96ed}, + {0xf5ba, 0x4b8a}, + {0xf5bb, 0x5170}, + {0xf5bc, 0x8e60}, + {0xf5bd, 0xae51}, + {0xf5be, 0x4ae5}, + {0xf5bf, 0x40cd}, + {0xf5c0, 0x3df8}, + {0xf5c1, 0x9bb2}, + {0xf5c2, 0x6736}, + {0xf5c3, 0x55e2}, + {0xf5c4, 0x8c69}, + {0xf5c5, 0xc189}, + {0xf5c6, 0x55e9}, + {0xf5c7, 0x9451}, + {0xf5c8, 0x75b1}, + {0xf5c9, 0xa175}, + {0xf5ca, 0x662a}, + {0xf5cb, 0x4216}, + {0xf5cc, 0x9c28}, + {0xf5cd, 0x7175}, + {0xf5ce, 0x8cc1}, + {0xf5cf, 0x3f85}, + {0xf5d0, 0xa8d1}, + {0xf5d1, 0xa822}, + {0xf5d2, 0x6440}, + {0xf5d3, 0x6880}, + {0xf5d4, 0x76fe}, + {0xf5d5, 0x65bc}, + {0xf5d6, 0x49c8}, + {0xf5d7, 0x6119}, + {0xf5d8, 0x472e}, + {0xf5d9, 0xc280}, + {0xf5da, 0x4eb6}, + {0xf5db, 0x41e1}, + {0xf5dc, 0xc194}, + {0xf5dd, 0x67ce}, + {0xf5de, 0x4f7a}, + {0xf5df, 0x48f4}, + {0xf5e0, 0xc305}, + {0xf5e1, 0x6cb9}, + {0xf5e2, 0x51b1}, + {0xf5e3, 0x4b75}, + {0xf5e4, 0x882a}, + {0xf5e5, 0x9206}, + {0xf5e6, 0x8451}, + {0xf5e7, 0x8601}, + {0xf5e8, 0x8a04}, + {0xf5e9, 0x488c}, + {0xf5ea, 0x6e08}, + {0xf5eb, 0x89bc}, + {0xf5ec, 0x53b9}, + {0xf5ed, 0x4ae8}, + {0xf5ee, 0xc3ed}, + {0xf5ef, 0x7856}, + {0xf5f0, 0x448e}, + {0xf5f1, 0x77dd}, + {0xf5f2, 0xc716}, + {0xf5f3, 0xab7e}, + {0xf5f4, 0xc1f0}, + {0xf5f5, 0x4efe}, + {0xf5f6, 0x817e}, + {0xf5f7, 0xac7d}, + {0xf5f8, 0x8198}, + {0xf5f9, 0x87c1}, + {0xf5fa, 0x601a}, + {0xf5fb, 0x6dbc}, + {0xf5fc, 0x94c8}, + {0xf5fd, 0x5a28}, + {0xf5fe, 0xc5dc}, + {0xf640, 0x8d7a}, + {0xf641, 0x5ab1}, + {0xf642, 0xc364}, + {0xf643, 0x4ff9}, + {0xf644, 0x7291}, + {0xf645, 0x5459}, + {0xf646, 0x8370}, + {0xf647, 0xb56c}, + {0xf648, 0x71e1}, + {0xf649, 0x7b3e}, + {0xf64a, 0x6c08}, + {0xf64b, 0x44fe}, + {0xf64c, 0x6af8}, + {0xf64d, 0x7baa}, + {0xf64e, 0x78da}, + {0xf64f, 0xc6cc}, + {0xf650, 0x7506}, + {0xf651, 0x7f28}, + {0xf652, 0xc685}, + {0xf653, 0xc2b4}, + {0xf654, 0x83cd}, + {0xf655, 0x606c}, + {0xf656, 0xb971}, + {0xf657, 0x4e3a}, + {0xf658, 0x9694}, + {0xf659, 0x95b8}, + {0xf65a, 0x61c5}, + {0xf65b, 0x9e40}, + {0xf65c, 0x5fb2}, + {0xf65d, 0xabfa}, + {0xf65e, 0xc3d0}, + {0xf65f, 0x7265}, + {0xf660, 0xc686}, + {0xf661, 0x65e1}, + {0xf662, 0x4004}, + {0xf663, 0x4005}, + {0xf664, 0x61c6}, + {0xf665, 0x9038}, + {0xf666, 0xbda1}, + {0xf667, 0xa2f5}, + {0xf668, 0xa2f6}, + {0xf669, 0xb972}, + {0xf66a, 0x498a}, + {0xf66b, 0x9210}, + {0xf66c, 0x4f84}, + {0xf66d, 0x6221}, + {0xf66e, 0x76e9}, + {0xf66f, 0xb086}, + {0xf670, 0x8ec5}, + {0xf671, 0x8ec6}, + {0xf672, 0x676e}, + {0xf673, 0x3eea}, + {0xf674, 0x52b9}, + {0xf675, 0xb16e}, + {0xf676, 0x5739}, + {0xf677, 0x931d}, + {0xf678, 0x6706}, + {0xf679, 0xa799}, + {0xf67a, 0xa1a2}, + {0xf67b, 0x6056}, + {0xf67c, 0x9785}, + {0xf67d, 0x92e1}, + {0xf67e, 0xadd1}, + {0xf680, 0xa425}, + {0xf681, 0x670d}, + {0xf682, 0x5e1d}, + {0xf683, 0xa516}, + {0xf684, 0x864c}, + {0xf685, 0x937e}, + {0xf686, 0x7955}, + {0xf687, 0x7cc4}, + {0xf688, 0x96e2}, + {0xf689, 0x9698}, + {0xf68a, 0x5b16}, + {0xf68b, 0xc605}, + {0xf68c, 0x9de5}, + {0xf68d, 0x9bc9}, + {0xf68e, 0xb21c}, + {0xf68f, 0x58f5}, + {0xf690, 0xb7b4}, + {0xf691, 0x8c09}, + {0xf692, 0x8aaa}, + {0xf693, 0xa426}, + {0xf694, 0x92e2}, + {0xf695, 0x95c1}, + {0xf696, 0x76a2}, + {0xf697, 0x3c4a}, + {0xf698, 0x7400}, + {0xf699, 0x628e}, + {0xf69a, 0x80e4}, + {0xf69b, 0x65fc}, + {0xf69c, 0x9f1e}, + {0xf69d, 0x8f79}, + {0xf69e, 0x6714}, + {0xf69f, 0x95b9}, + {0xf6a0, 0x7d34}, + {0xf6a1, 0x5981}, + {0xf6a2, 0x9a91}, + {0xf6a3, 0xc27d}, + {0xf6a4, 0xc62c}, + {0xf6a5, 0x8e49}, + {0xf6a6, 0x6b4c}, + {0xf6a7, 0xb910}, + {0xf6a8, 0x75b2}, + {0xf6a9, 0xa439}, + {0xf6aa, 0x9f8d}, + {0xf6ab, 0x65bd}, + {0xf6ac, 0x86c4}, + {0xf6ad, 0x5450}, + {0xf6ae, 0x941a}, + {0xf6af, 0xb62d}, + {0xf6b0, 0x3b64}, + {0xf6b1, 0xa94c}, + {0xf6b2, 0x7cee}, + {0xf6b3, 0x462a}, + {0xf6b4, 0x6cb5}, + {0xf6b5, 0x3db0}, + {0xf6b6, 0x9f0c}, + {0xf6b7, 0xc5ed}, + {0xf6b8, 0xb61e}, + {0xf6b9, 0xb9b2}, + {0xf6ba, 0x49e1}, + {0xf6bb, 0xa4e8}, + {0xf6bc, 0x800e}, + {0xf6bd, 0xbaf4}, + {0xf6be, 0xa18c}, + {0xf6bf, 0xc4e6}, + {0xf6c0, 0x9b51}, + {0xf6c1, 0x6d62}, + {0xf6c2, 0x6c44}, + {0xf6c3, 0x7c14}, + {0xf6c4, 0x6d1c}, + {0xf6c5, 0x482a}, + {0xf6c6, 0x8e61}, + {0xf6c7, 0x7b58}, + {0xf6c8, 0xa5c5}, + {0xf6c9, 0xbcd2}, + {0xf6ca, 0x81c2}, + {0xf6cb, 0x3c7d}, + {0xf6cc, 0x7946}, + {0xf6cd, 0x3e7a}, + {0xf6ce, 0xaba9}, + {0xf6cf, 0xb840}, + {0xf6d0, 0x541a}, + {0xf6d1, 0x3cda}, + {0xf6d2, 0x88dd}, + {0xf6d3, 0x83c6}, + {0xf6d4, 0x7a6a}, + {0xf6d5, 0x9a3d}, + {0xf6d6, 0x570d}, + {0xf6d7, 0x5fcc}, + {0xf6d8, 0x9c2d}, + {0xf6d9, 0x5bb5}, + {0xf6da, 0x69b0}, + {0xf6db, 0xa38c}, + {0xf6dc, 0x52f8}, + {0xf6dd, 0x65be}, + {0xf6de, 0x6885}, + {0xf6df, 0xa9a4}, + {0xf6e0, 0xaee2}, + {0xf6e1, 0x5949}, + {0xf6e2, 0x74e8}, + {0xf6e3, 0x767e}, + {0xf6e4, 0x66e1}, + {0xf6e5, 0x96da}, + {0xf6e6, 0x9f14}, + {0xf6e7, 0x5c46}, + {0xf6e8, 0x93f6}, + {0xf6e9, 0x61b9}, + {0xf6ea, 0x65c4}, + {0xf6eb, 0x8e18}, + {0xf6ec, 0x78c4}, + {0xf6ed, 0xc6ca}, + {0xf6ee, 0x5451}, + {0xf6ef, 0x71dd}, + {0xf6f0, 0x44fc}, + {0xf6f1, 0x5ab0}, + {0xf6f2, 0x836e}, + {0xf6f3, 0x83c9}, + {0xf6f4, 0x4f0a}, + {0xf6f5, 0x9690}, + {0xf6f6, 0xc5f9}, + {0xf6f7, 0x5525}, + {0xf6f8, 0x4f7c}, + {0xf6f9, 0x52b4}, + {0xf6fa, 0x8ebe}, + {0xf6fb, 0x572e}, + {0xf6fc, 0x6218}, + {0xf6fd, 0x4000}, + {0xf6fe, 0x9379}, + {0xf740, 0xa6f6}, + {0xf741, 0x8f28}, + {0xf742, 0x40ae}, + {0xf743, 0x65fd}, + {0xf744, 0x65f6}, + {0xf745, 0xc3ee}, + {0xf746, 0x6822}, + {0xf747, 0x8ec9}, + {0xf748, 0xc49c}, + {0xf749, 0xb7a9}, + {0xf74a, 0xbf14}, + {0xf74b, 0x6f1c}, + {0xf74c, 0xae6a}, + {0xf74d, 0x40b8}, + {0xf74e, 0xba89}, + {0xf74f, 0x8f7a}, + {0xf750, 0xa9ce}, + {0xf751, 0x4189}, + {0xf752, 0x6900}, + {0xf753, 0xaef5}, + {0xf754, 0x9ab5}, + {0xf755, 0x6225}, + {0xf756, 0xc76c}, + {0xf757, 0x94c0}, + {0xf758, 0x94c1}, + {0xf759, 0x5389}, + {0xf75a, 0x5c2d}, + {0xf75b, 0x7820}, + {0xf75c, 0xaef6}, + {0xf75d, 0x8044}, + {0xf75e, 0xa71e}, + {0xf75f, 0xbdc2}, + {0xf760, 0xa97c}, + {0xf761, 0x5528}, + {0xf762, 0x5b19}, + {0xf763, 0x5fd2}, + {0xf764, 0x70c1}, + {0xf765, 0xbda2}, + {0xf766, 0x9380}, + {0xf767, 0xbe96}, + {0xf768, 0x57d5}, + {0xf769, 0x5c2e}, + {0xf76a, 0x9639}, + {0xf76b, 0x754e}, + {0xf76c, 0x452c}, + {0xf76d, 0x742a}, + {0xf76e, 0x982c}, + {0xf76f, 0x3b9d}, + {0xf770, 0x924c}, + {0xf771, 0x6600}, + {0xf772, 0xad8e}, + {0xf773, 0x60b0}, + {0xf774, 0x982d}, + {0xf775, 0x763c}, + {0xf776, 0x77e2}, + {0xf777, 0x7c25}, + {0xf778, 0x8081}, + {0xf779, 0xc048}, + {0xf77a, 0xa9b0}, + {0xf77b, 0x52c2}, + {0xf77c, 0x7a92}, + {0xf77d, 0x5b5d}, + {0xf77e, 0x7521}, + {0xf780, 0xa859}, + {0xf781, 0x4d34}, + {0xf782, 0x6539}, + {0xf783, 0xa124}, + {0xf784, 0x3ca5}, + {0xf785, 0x5e79}, + {0xf786, 0xb848}, + {0xf787, 0xbe18}, + {0xf788, 0x41cc}, + {0xf789, 0x87b0}, + {0xf78a, 0x6f49}, + {0xf78b, 0x9fec}, + {0xf78c, 0xbd9d}, + {0xf78d, 0x5fce}, + {0xf78e, 0x70b0}, + {0xf78f, 0xbe1a}, + {0xf790, 0x6e48}, + {0xf791, 0xb7de}, + {0xf792, 0x8a88}, + {0xf793, 0x95b4}, + {0xf794, 0x3ee6}, + {0xf795, 0x4529}, + {0xf796, 0x9e36}, + {0xf797, 0xa424}, + {0xf798, 0xa2f0}, + {0xf799, 0x9031}, + {0xf79a, 0x6818}, + {0xf79b, 0x8648}, + {0xf79c, 0x66f9}, + {0xf79d, 0xa3f8}, + {0xf79e, 0xa6ed}, + {0xf79f, 0x60aa}, + {0xf7a0, 0x57d2}, + {0xf7a1, 0x3c45}, + {0xf7a2, 0x8a98}, + {0xf7a3, 0x9bc6}, + {0xf7a4, 0x5b12}, + {0xf7a5, 0xb215}, + {0xf7a6, 0x73fe}, + {0xf7a7, 0x40ad}, + {0xf7a8, 0xae69}, + {0xf7a9, 0x7d30}, + {0xf7aa, 0x80e0}, + {0xf7ab, 0xb7a4}, + {0xf7ac, 0x5c2a}, + {0xf7ad, 0x94bd}, + {0xf7ae, 0xc76a}, + {0xf7af, 0x754c}, + {0xf7b0, 0x4be5}, + {0xf7b1, 0xb12d}, + {0xf7b2, 0x4be9}, + {0xf7b3, 0x8cfe}, + {0xf7b4, 0x7d2a}, + {0xf7b5, 0x66f8}, + {0xf7b6, 0x6c55}, + {0xf7b7, 0x920a}, + {0xf7b8, 0x59d5}, + {0xf7b9, 0x3e78}, + {0xf7ba, 0x6a06}, + {0xf7bb, 0xa024}, + {0xf7bc, 0x705c}, + {0xf7bd, 0x5a40}, + {0xf7be, 0x4e38}, + {0xf7bf, 0x5fac}, + {0xf7c0, 0x58e0}, + {0xf7c1, 0x6f82}, + {0xf7c2, 0x3fcc}, + {0xf7c3, 0x7a25}, + {0xf7c4, 0x8b61}, + {0xf7c5, 0x70c6}, + {0xf7c6, 0x4112}, + {0xf7c7, 0x50b5}, + {0xf7c8, 0x7e92}, + {0xf7c9, 0x3cc4}, + {0xf7ca, 0xb076}, + {0xf7cb, 0x7719}, + {0xf7cc, 0xaa21}, + {0xf7cd, 0xa2ae}, + {0xf7ce, 0x46fd}, + {0xf7cf, 0xa99a}, + {0xf7d0, 0xb0d9}, + {0xf7d1, 0x9f56}, + {0xf7d2, 0x9d86}, + {0xf7d3, 0xb7a8}, + {0xf7d4, 0x4060}, + {0xf7d5, 0x71ce}, + {0xf7d6, 0x7dc4}, + {0xf7d7, 0x90c4}, + {0xf7d8, 0x9f12}, + {0xf7d9, 0x65d0}, + {0xf7da, 0xc5f8}, + {0xf7db, 0xac8a}, + {0xf7dc, 0x9032}, + {0xf7dd, 0x6bbe}, + {0xf7de, 0x4114}, + {0xf7df, 0x617a}, + {0xf7e0, 0x77e1}, + {0xf7e1, 0x812c}, + {0xf7e2, 0x6285}, + {0xf7e3, 0x7f58}, + {0xf7e4, 0x6541}, + {0xf7e5, 0x6e49}, + {0xf7e6, 0xc416}, + {0xf7e7, 0x7f5a}, + {0xf7e8, 0x8aa0}, + {0xf7e9, 0x3c46}, + {0xf7ea, 0x9570}, + {0xf7eb, 0x7821}, + {0xf7ec, 0x4c45}, + {0xf7ed, 0x48e0}, + {0xf7ee, 0xb882}, + {0xf7ef, 0xa7dc}, + {0xf7f0, 0xb351}, + {0xf7f1, 0x8f75}, + {0xf7f2, 0x50ac}, + {0xf7f3, 0x7509}, + {0xf7f4, 0x8e38}, + {0xf7f5, 0x42f8}, + {0xf7f6, 0x3bfe}, + {0xf7f7, 0x54fd}, + {0xf7f8, 0xb8b2}, + {0xf7f9, 0xa544}, + {0xf7fa, 0xb09a}, + {0xf7fb, 0xa6c1}, + {0xf7fc, 0x8f22}, + {0xf7fd, 0x5d04}, + {0xf7fe, 0xbdf1}, + {0xf840, 0xbe92}, + {0xf841, 0x5b2e}, + {0xf842, 0x83fd}, + {0xf843, 0xb404}, + {0xf844, 0x5675}, + {0xf845, 0x75c8}, + {0xf846, 0x6bb8}, + {0xf847, 0x4240}, + {0xf848, 0xb0cd}, + {0xf849, 0x563d}, + {0xf84a, 0x4f01}, + {0xf84b, 0x6441}, + {0xf84c, 0x55a2}, + {0xf84d, 0x9264}, + {0xf84e, 0x57b6}, + {0xf84f, 0x9688}, + {0xf850, 0x55a4}, + {0xf851, 0x8102}, + {0xf852, 0x3de0}, + {0xf853, 0xbab9}, + {0xf854, 0xc166}, + {0xf855, 0x60a1}, + {0xf856, 0x8dc5}, + {0xf857, 0x55f6}, + {0xf858, 0x54f6}, + {0xf859, 0xa444}, + {0xf85a, 0x66e2}, + {0xf85b, 0x968d}, + {0xf85c, 0xba4e}, + {0xf85d, 0x55bc}, + {0xf85e, 0xb1c1}, + {0xf85f, 0x6df2}, + {0xf860, 0x6df4}, + {0xf861, 0x87da}, + {0xf862, 0x6132}, + {0xf863, 0xc0aa}, + {0xf864, 0x3de2}, + {0xf865, 0xb0da}, + {0xf866, 0xaf35}, + {0xf867, 0xc11c}, + {0xf868, 0x5411}, + {0xf869, 0x55a5}, + {0xf86a, 0xa445}, + {0xf86b, 0x858c}, + {0xf86c, 0x4c41}, + {0xf86d, 0x58a6}, + {0xf86e, 0x9232}, + {0xf86f, 0x78c5}, + {0xf870, 0x806d}, + {0xf871, 0x5686}, + {0xf872, 0xa188}, + {0xf873, 0x80b9}, + {0xf874, 0x75e2}, + {0xf875, 0x4018}, + {0xf876, 0xc291}, + {0xf877, 0x58a8}, + {0xf878, 0xbac0}, + {0xf879, 0x4a26}, + {0xf87a, 0x8f9a}, + {0xf87b, 0xaa22}, + {0xf87c, 0x46f6}, + {0xf87d, 0x4cd1}, + {0xf87e, 0x6c51}, + {0xf880, 0xb248}, + {0xf881, 0x5a3c}, + {0xf882, 0xc2e9}, + {0xf883, 0xba5d}, + {0xf884, 0xb132}, + {0xf885, 0xba5e}, + {0xf886, 0xaf38}, + {0xf887, 0x9f49}, + {0xf888, 0xba60}, + {0xf889, 0x9ebc}, + {0xf88a, 0xb6bd}, + {0xf88b, 0x5121}, + {0xf88c, 0xa512}, + {0xf88d, 0x52fd}, + {0xf88e, 0x5ace}, + {0xf88f, 0x3b8d}, + {0xf890, 0xc169}, + {0xf891, 0xb0e9}, + {0xf892, 0x5ef5}, + {0xf893, 0xaa2c}, + {0xf894, 0x6664}, + {0xf895, 0x77d0}, + {0xf896, 0xc3c8}, + {0xf897, 0xb169}, + {0xf898, 0x9e38}, + {0xf899, 0x5f78}, + {0xf89a, 0x7b30}, + {0xf89b, 0x923a}, + {0xf89c, 0x81c4}, + {0xf89d, 0x58ac}, + {0xf89e, 0x9134}, + {0xf89f, 0x6898}, + {0xf8a0, 0xac90}, + {0xf8a1, 0xffffe234}, + {0xf8a2, 0xffffe235}, + {0xf8a3, 0xffffe236}, + {0xf8a4, 0xffffe237}, + {0xf8a5, 0xffffe238}, + {0xf8a6, 0xffffe239}, + {0xf8a7, 0xffffe23a}, + {0xf8a8, 0xffffe23b}, + {0xf8a9, 0xffffe23c}, + {0xf8aa, 0xffffe23d}, + {0xf8ab, 0xffffe23e}, + {0xf8ac, 0xffffe23f}, + {0xf8ad, 0xffffe240}, + {0xf8ae, 0xffffe241}, + {0xf8af, 0xffffe242}, + {0xf8b0, 0xffffe243}, + {0xf8b1, 0xffffe244}, + {0xf8b2, 0xffffe245}, + {0xf8b3, 0xffffe246}, + {0xf8b4, 0xffffe247}, + {0xf8b5, 0xffffe248}, + {0xf8b6, 0xffffe249}, + {0xf8b7, 0xffffe24a}, + {0xf8b8, 0xffffe24b}, + {0xf8b9, 0xffffe24c}, + {0xf8ba, 0xffffe24d}, + {0xf8bb, 0xffffe24e}, + {0xf8bc, 0xffffe24f}, + {0xf8bd, 0xffffe250}, + {0xf8be, 0xffffe251}, + {0xf8bf, 0xffffe252}, + {0xf8c0, 0xffffe253}, + {0xf8c1, 0xffffe254}, + {0xf8c2, 0xffffe255}, + {0xf8c3, 0xffffe256}, + {0xf8c4, 0xffffe257}, + {0xf8c5, 0xffffe258}, + {0xf8c6, 0xffffe259}, + {0xf8c7, 0xffffe25a}, + {0xf8c8, 0xffffe25b}, + {0xf8c9, 0xffffe25c}, + {0xf8ca, 0xffffe25d}, + {0xf8cb, 0xffffe25e}, + {0xf8cc, 0xffffe25f}, + {0xf8cd, 0xffffe260}, + {0xf8ce, 0xffffe261}, + {0xf8cf, 0xffffe262}, + {0xf8d0, 0xffffe263}, + {0xf8d1, 0xffffe264}, + {0xf8d2, 0xffffe265}, + {0xf8d3, 0xffffe266}, + {0xf8d4, 0xffffe267}, + {0xf8d5, 0xffffe268}, + {0xf8d6, 0xffffe269}, + {0xf8d7, 0xffffe26a}, + {0xf8d8, 0xffffe26b}, + {0xf8d9, 0xffffe26c}, + {0xf8da, 0xffffe26d}, + {0xf8db, 0xffffe26e}, + {0xf8dc, 0xffffe26f}, + {0xf8dd, 0xffffe270}, + {0xf8de, 0xffffe271}, + {0xf8df, 0xffffe272}, + {0xf8e0, 0xffffe273}, + {0xf8e1, 0xffffe274}, + {0xf8e2, 0xffffe275}, + {0xf8e3, 0xffffe276}, + {0xf8e4, 0xffffe277}, + {0xf8e5, 0xffffe278}, + {0xf8e6, 0xffffe279}, + {0xf8e7, 0xffffe27a}, + {0xf8e8, 0xffffe27b}, + {0xf8e9, 0xffffe27c}, + {0xf8ea, 0xffffe27d}, + {0xf8eb, 0xffffe27e}, + {0xf8ec, 0xffffe27f}, + {0xf8ed, 0xffffe280}, + {0xf8ee, 0xffffe281}, + {0xf8ef, 0xffffe282}, + {0xf8f0, 0xffffe283}, + {0xf8f1, 0xffffe284}, + {0xf8f2, 0xffffe285}, + {0xf8f3, 0xffffe286}, + {0xf8f4, 0xffffe287}, + {0xf8f5, 0xffffe288}, + {0xf8f6, 0xffffe289}, + {0xf8f7, 0xffffe28a}, + {0xf8f8, 0xffffe28b}, + {0xf8f9, 0xffffe28c}, + {0xf8fa, 0xffffe28d}, + {0xf8fb, 0xffffe28e}, + {0xf8fc, 0xffffe28f}, + {0xf8fd, 0xffffe290}, + {0xf8fe, 0xffffe291}, + {0xf940, 0xc34d}, + {0xf941, 0x46f8}, + {0xf942, 0x7c19}, + {0xf943, 0x5ef6}, + {0xf944, 0x83ca}, + {0xf945, 0x5246}, + {0xf946, 0x7b59}, + {0xf947, 0x6665}, + {0xf948, 0x65e2}, + {0xf949, 0xa094}, + {0xf94a, 0x6136}, + {0xf94b, 0xa1a1}, + {0xf94c, 0x4244}, + {0xf94d, 0xa542}, + {0xf94e, 0x6d41}, + {0xf94f, 0xba76}, + {0xf950, 0x41fe}, + {0xf951, 0x6e81}, + {0xf952, 0x6e82}, + {0xf953, 0x3ee5}, + {0xf954, 0xa6aa}, + {0xf955, 0x6e84}, + {0xf956, 0x6c8c}, + {0xf957, 0xa059}, + {0xf958, 0x6af6}, + {0xf959, 0x9e3c}, + {0xf95a, 0x5236}, + {0xf95b, 0x5238}, + {0xf95c, 0x70f8}, + {0xf95d, 0x5a8d}, + {0xf95e, 0xa582}, + {0xf95f, 0x95b6}, + {0xf960, 0x72a9}, + {0xf961, 0x68f0}, + {0xf962, 0x8621}, + {0xf963, 0x7b40}, + {0xf964, 0x87c2}, + {0xf965, 0x97f6}, + {0xf966, 0x5699}, + {0xf967, 0x3bcc}, + {0xf968, 0xc59c}, + {0xf969, 0x8730}, + {0xf96a, 0x8f25}, + {0xf96b, 0x8bbd}, + {0xf96c, 0x3e25}, + {0xf96d, 0x4f10}, + {0xf96e, 0x7b41}, + {0xf96f, 0x9095}, + {0xf970, 0x6702}, + {0xf971, 0x6c92}, + {0xf972, 0xa0a9}, + {0xf973, 0xaf3a}, + {0xf974, 0xbac6}, + {0xf975, 0x8a9d}, + {0xf976, 0x7508}, + {0xf977, 0xb302}, + {0xf978, 0xc4f6}, + {0xf979, 0x700e}, + {0xf97a, 0x5200}, + {0xf97b, 0x71e2}, + {0xf97c, 0x962c}, + {0xf97d, 0x8a9e}, + {0xf97e, 0x6af9}, + {0xf980, 0xb56d}, + {0xf981, 0xb56e}, + {0xf982, 0x6afa}, + {0xf983, 0xc602}, + {0xf984, 0x7292}, + {0xf985, 0x4ffa}, + {0xf986, 0x8a0a}, + {0xf987, 0x49b4}, + {0xf988, 0x5936}, + {0xf989, 0x6c56}, + {0xf98a, 0x6e0a}, + {0xf98b, 0xb570}, + {0xf98c, 0xc768}, + {0xf98d, 0x6485}, + {0xf98e, 0x9875}, + {0xf98f, 0xffff9d91}, + {0xf990, 0x47a4}, + {0xf991, 0x8042}, + {0xf992, 0x9211}, + {0xf993, 0x3bce}, + {0xf994, 0x8ec8}, + {0xf995, 0x9e41}, + {0xf996, 0x6058}, + {0xf997, 0x9e42}, + {0xf998, 0x52ba}, + {0xf999, 0x6958}, + {0xf99a, 0x7dca}, + {0xf99b, 0x569a}, + {0xf99c, 0x498c}, + {0xf99d, 0xa095}, + {0xf99e, 0xb088}, + {0xf99f, 0x5e98}, + {0xf9a0, 0xbb28}, + {0xf9a1, 0xffffe292}, + {0xf9a2, 0xffffe293}, + {0xf9a3, 0xffffe294}, + {0xf9a4, 0xffffe295}, + {0xf9a5, 0xffffe296}, + {0xf9a6, 0xffffe297}, + {0xf9a7, 0xffffe298}, + {0xf9a8, 0xffffe299}, + {0xf9a9, 0xffffe29a}, + {0xf9aa, 0xffffe29b}, + {0xf9ab, 0xffffe29c}, + {0xf9ac, 0xffffe29d}, + {0xf9ad, 0xffffe29e}, + {0xf9ae, 0xffffe29f}, + {0xf9af, 0xffffe2a0}, + {0xf9b0, 0xffffe2a1}, + {0xf9b1, 0xffffe2a2}, + {0xf9b2, 0xffffe2a3}, + {0xf9b3, 0xffffe2a4}, + {0xf9b4, 0xffffe2a5}, + {0xf9b5, 0xffffe2a6}, + {0xf9b6, 0xffffe2a7}, + {0xf9b7, 0xffffe2a8}, + {0xf9b8, 0xffffe2a9}, + {0xf9b9, 0xffffe2aa}, + {0xf9ba, 0xffffe2ab}, + {0xf9bb, 0xffffe2ac}, + {0xf9bc, 0xffffe2ad}, + {0xf9bd, 0xffffe2ae}, + {0xf9be, 0xffffe2af}, + {0xf9bf, 0xffffe2b0}, + {0xf9c0, 0xffffe2b1}, + {0xf9c1, 0xffffe2b2}, + {0xf9c2, 0xffffe2b3}, + {0xf9c3, 0xffffe2b4}, + {0xf9c4, 0xffffe2b5}, + {0xf9c5, 0xffffe2b6}, + {0xf9c6, 0xffffe2b7}, + {0xf9c7, 0xffffe2b8}, + {0xf9c8, 0xffffe2b9}, + {0xf9c9, 0xffffe2ba}, + {0xf9ca, 0xffffe2bb}, + {0xf9cb, 0xffffe2bc}, + {0xf9cc, 0xffffe2bd}, + {0xf9cd, 0xffffe2be}, + {0xf9ce, 0xffffe2bf}, + {0xf9cf, 0xffffe2c0}, + {0xf9d0, 0xffffe2c1}, + {0xf9d1, 0xffffe2c2}, + {0xf9d2, 0xffffe2c3}, + {0xf9d3, 0xffffe2c4}, + {0xf9d4, 0xffffe2c5}, + {0xf9d5, 0xffffe2c6}, + {0xf9d6, 0xffffe2c7}, + {0xf9d7, 0xffffe2c8}, + {0xf9d8, 0xffffe2c9}, + {0xf9d9, 0xffffe2ca}, + {0xf9da, 0xffffe2cb}, + {0xf9db, 0xffffe2cc}, + {0xf9dc, 0xffffe2cd}, + {0xf9dd, 0xffffe2ce}, + {0xf9de, 0xffffe2cf}, + {0xf9df, 0xffffe2d0}, + {0xf9e0, 0xffffe2d1}, + {0xf9e1, 0xffffe2d2}, + {0xf9e2, 0xffffe2d3}, + {0xf9e3, 0xffffe2d4}, + {0xf9e4, 0xffffe2d5}, + {0xf9e5, 0xffffe2d6}, + {0xf9e6, 0xffffe2d7}, + {0xf9e7, 0xffffe2d8}, + {0xf9e8, 0xffffe2d9}, + {0xf9e9, 0xffffe2da}, + {0xf9ea, 0xffffe2db}, + {0xf9eb, 0xffffe2dc}, + {0xf9ec, 0xffffe2dd}, + {0xf9ed, 0xffffe2de}, + {0xf9ee, 0xffffe2df}, + {0xf9ef, 0xffffe2e0}, + {0xf9f0, 0xffffe2e1}, + {0xf9f1, 0xffffe2e2}, + {0xf9f2, 0xffffe2e3}, + {0xf9f3, 0xffffe2e4}, + {0xf9f4, 0xffffe2e5}, + {0xf9f5, 0xffffe2e6}, + {0xf9f6, 0xffffe2e7}, + {0xf9f7, 0xffffe2e8}, + {0xf9f8, 0xffffe2e9}, + {0xf9f9, 0xffffe2ea}, + {0xf9fa, 0xffffe2eb}, + {0xf9fb, 0xffffe2ec}, + {0xf9fc, 0xffffe2ed}, + {0xf9fd, 0xffffe2ee}, + {0xf9fe, 0xffffe2ef}, + {0xfa40, 0x881a}, + {0xfa41, 0x71e4}, + {0xfa42, 0x7e5d}, + {0xfa43, 0x6059}, + {0xfa44, 0xb6ca}, + {0xfa45, 0x4924}, + {0xfa46, 0xa5d4}, + {0xfa47, 0x6c96}, + {0xfa48, 0x4ffc}, + {0xfa49, 0x4325}, + {0xfa4a, 0x5436}, + {0xfa4b, 0x605a}, + {0xfa4c, 0xb6da}, + {0xfa4d, 0xbb29}, + {0xfa4e, 0xa84d}, + {0xfa4f, 0xa48a}, + {0xfa50, 0x9699}, + {0xfa51, 0x5ebd}, + {0xfa52, 0x488e}, + {0xfa53, 0x9d39}, + {0xfa54, 0xa7de}, + {0xfa55, 0x92e4}, + {0xfa56, 0x7956}, + {0xfa57, 0x6520}, + {0xfa58, 0x5a44}, + {0xfa59, 0x670e}, + {0xfa5a, 0x9b60}, + {0xfa5b, 0x5d99}, + {0xfa5c, 0x4a2c}, + {0xfa5d, 0x4a2d}, + {0xfa5e, 0xb585}, + {0xfa5f, 0xb272}, + {0xfa60, 0xb100}, + {0xfa61, 0x648e}, + {0xfa62, 0x7622}, + {0xfa63, 0x9ec0}, + {0xfa64, 0x703e}, + {0xfa65, 0x9dfd}, + {0xfa66, 0x9dfe}, + {0xfa67, 0xb586}, + {0xfa68, 0xa096}, + {0xfa69, 0x7cc5}, + {0xfa6a, 0xaa3e}, + {0xfa6b, 0x5851}, + {0xfa6c, 0x9ec1}, + {0xfa6d, 0x4618}, + {0xfa6e, 0x6521}, + {0xfa6f, 0xa0cc}, + {0xfa70, 0xbff8}, + {0xfa71, 0x3c4c}, + {0xfa72, 0xb24d}, + {0xfa73, 0xb356}, + {0xfa74, 0x8599}, + {0xfa75, 0x47a6}, + {0xfa76, 0xc2c1}, + {0xfa77, 0x7986}, + {0xfa78, 0xb7aa}, + {0xfa79, 0x7c38}, + {0xfa7a, 0x3fe6}, + {0xfa7b, 0x98a5}, + {0xfa7c, 0xc5a4}, + {0xfa7d, 0xb976}, + {0xfa7e, 0xa545}, + {0xfa80, 0x6e1e}, + {0xfa81, 0xb634}, + {0xfa82, 0x9cb0}, + {0xfa83, 0x9962}, + {0xfa84, 0x68a8}, + {0xfa85, 0xb58d}, + {0xfa86, 0x60e5}, + {0xfa87, 0x3fe8}, + {0xfa88, 0xb6e0}, + {0xfa89, 0x9ab6}, + {0xfa8a, 0x6226}, + {0xfa8b, 0x53c5}, + {0xfa8c, 0x68a9}, + {0xfa8d, 0x7778}, + {0xfa8e, 0xb10a}, + {0xfa8f, 0x5854}, + {0xfa90, 0x6c0c}, + {0xfa91, 0xa8ad}, + {0xfa92, 0xa8ae}, + {0xfa93, 0xa098}, + {0xfa94, 0x7cf6}, + {0xfa95, 0xc76d}, + {0xfa96, 0xba8a}, + {0xfa97, 0xb6e2}, + {0xfa98, 0x7b4c}, + {0xfa99, 0xa0cd}, + {0xfa9a, 0xa8b0}, + {0xfa9b, 0xae60}, + {0xfa9c, 0xb590}, + {0xfa9d, 0x880c}, + {0xfa9e, 0x982e}, + {0xfa9f, 0x7bdd}, + {0xfaa0, 0xa6c4}, + {0xfaa1, 0xffffe2f0}, + {0xfaa2, 0xffffe2f1}, + {0xfaa3, 0xffffe2f2}, + {0xfaa4, 0xffffe2f3}, + {0xfaa5, 0xffffe2f4}, + {0xfaa6, 0xffffe2f5}, + {0xfaa7, 0xffffe2f6}, + {0xfaa8, 0xffffe2f7}, + {0xfaa9, 0xffffe2f8}, + {0xfaaa, 0xffffe2f9}, + {0xfaab, 0xffffe2fa}, + {0xfaac, 0xffffe2fb}, + {0xfaad, 0xffffe2fc}, + {0xfaae, 0xffffe2fd}, + {0xfaaf, 0xffffe2fe}, + {0xfab0, 0xffffe2ff}, + {0xfab1, 0xffffe300}, + {0xfab2, 0xffffe301}, + {0xfab3, 0xffffe302}, + {0xfab4, 0xffffe303}, + {0xfab5, 0xffffe304}, + {0xfab6, 0xffffe305}, + {0xfab7, 0xffffe306}, + {0xfab8, 0xffffe307}, + {0xfab9, 0xffffe308}, + {0xfaba, 0xffffe309}, + {0xfabb, 0xffffe30a}, + {0xfabc, 0xffffe30b}, + {0xfabd, 0xffffe30c}, + {0xfabe, 0xffffe30d}, + {0xfabf, 0xffffe30e}, + {0xfac0, 0xffffe30f}, + {0xfac1, 0xffffe310}, + {0xfac2, 0xffffe311}, + {0xfac3, 0xffffe312}, + {0xfac4, 0xffffe313}, + {0xfac5, 0xffffe314}, + {0xfac6, 0xffffe315}, + {0xfac7, 0xffffe316}, + {0xfac8, 0xffffe317}, + {0xfac9, 0xffffe318}, + {0xfaca, 0xffffe319}, + {0xfacb, 0xffffe31a}, + {0xfacc, 0xffffe31b}, + {0xfacd, 0xffffe31c}, + {0xface, 0xffffe31d}, + {0xfacf, 0xffffe31e}, + {0xfad0, 0xffffe31f}, + {0xfad1, 0xffffe320}, + {0xfad2, 0xffffe321}, + {0xfad3, 0xffffe322}, + {0xfad4, 0xffffe323}, + {0xfad5, 0xffffe324}, + {0xfad6, 0xffffe325}, + {0xfad7, 0xffffe326}, + {0xfad8, 0xffffe327}, + {0xfad9, 0xffffe328}, + {0xfada, 0xffffe329}, + {0xfadb, 0xffffe32a}, + {0xfadc, 0xffffe32b}, + {0xfadd, 0xffffe32c}, + {0xfade, 0xffffe32d}, + {0xfadf, 0xffffe32e}, + {0xfae0, 0xffffe32f}, + {0xfae1, 0xffffe330}, + {0xfae2, 0xffffe331}, + {0xfae3, 0xffffe332}, + {0xfae4, 0xffffe333}, + {0xfae5, 0xffffe334}, + {0xfae6, 0xffffe335}, + {0xfae7, 0xffffe336}, + {0xfae8, 0xffffe337}, + {0xfae9, 0xffffe338}, + {0xfaea, 0xffffe339}, + {0xfaeb, 0xffffe33a}, + {0xfaec, 0xffffe33b}, + {0xfaed, 0xffffe33c}, + {0xfaee, 0xffffe33d}, + {0xfaef, 0xffffe33e}, + {0xfaf0, 0xffffe33f}, + {0xfaf1, 0xffffe340}, + {0xfaf2, 0xffffe341}, + {0xfaf3, 0xffffe342}, + {0xfaf4, 0xffffe343}, + {0xfaf5, 0xffffe344}, + {0xfaf6, 0xffffe345}, + {0xfaf7, 0xffffe346}, + {0xfaf8, 0xffffe347}, + {0xfaf9, 0xffffe348}, + {0xfafa, 0xffffe349}, + {0xfafb, 0xffffe34a}, + {0xfafc, 0xffffe34b}, + {0xfafd, 0xffffe34c}, + {0xfafe, 0xffffe34d}, + {0xfb40, 0xb3dd}, + {0xfb41, 0x649a}, + {0xfb42, 0xbd8a}, + {0xfb43, 0xb978}, + {0xfb44, 0xbe98}, + {0xfb45, 0xb30a}, + {0xfb46, 0xb171}, + {0xfb47, 0x880d}, + {0xfb48, 0x84a4}, + {0xfb49, 0x60b1}, + {0xfb4a, 0x7f78}, + {0xfb4b, 0xb6e6}, + {0xfb4c, 0x7f15}, + {0xfb4d, 0x4e15}, + {0xfb4e, 0xbbba}, + {0xfb4f, 0xba8c}, + {0xfb50, 0x745e}, + {0xfb51, 0x4246}, + {0xfb52, 0x7a94}, + {0xfb53, 0x5ec4}, + {0xfb54, 0x79dd}, + {0xfb55, 0x98ae}, + {0xfb56, 0xbbbe}, + {0xfb57, 0xb6e8}, + {0xfb58, 0x5b5e}, + {0xfb59, 0x8fbe}, + {0xfb5a, 0x7522}, + {0xfb5b, 0x7b79}, + {0xfb5c, 0x9669}, + {0xfb5d, 0x4314}, + {0xfb5e, 0xa9e9}, + {0xfb5f, 0x7885}, + {0xfb60, 0xae4c}, + {0xfb61, 0x5eee}, + {0xfb62, 0xc339}, + {0xfb63, 0xa534}, + {0xfb64, 0x71d0}, + {0xfb65, 0x8b9e}, + {0xfb66, 0x592e}, + {0xfb67, 0xbab6}, + {0xfb68, 0x9a82}, + {0xfb69, 0x5e7e}, + {0xfb6a, 0x8eb1}, + {0xfb6b, 0xb522}, + {0xfb6c, 0xa482}, + {0xfb6d, 0x7931}, + {0xfb6e, 0x6505}, + {0xfb6f, 0xb524}, + {0xfb70, 0xb348}, + {0xfb71, 0x6171}, + {0xfb72, 0xbe8c}, + {0xfb73, 0x7f02}, + {0xfb74, 0x98a6}, + {0xfb75, 0x7a9d}, + {0xfb76, 0x6a41}, + {0xfb77, 0x78c6}, + {0xfb78, 0x6770}, + {0xfb79, 0xa8a9}, + {0xfb7a, 0x4b90}, + {0xfb7b, 0x6779}, + {0xfb7c, 0x677d}, + {0xfb7d, 0xb032}, + {0xfb7e, 0xb7fc}, + {0xfb80, 0x4abe}, + {0xfb81, 0x4075}, + {0xfb82, 0x4ac0}, + {0xfb83, 0x8676}, + {0xfb84, 0xc475}, + {0xfb85, 0x66f5}, + {0xfb86, 0x7f59}, + {0xfb87, 0xb9bd}, + {0xfb88, 0x794a}, + {0xfb89, 0x4614}, + {0xfb8a, 0x6e4d}, + {0xfb8b, 0x7815}, + {0xfb8c, 0x8371}, + {0xfb8d, 0x6c09}, + {0xfb8e, 0x6e4e}, + {0xfb8f, 0x6afc}, + {0xfb90, 0x7609}, + {0xfb91, 0xa976}, + {0xfb92, 0xb022}, + {0xfb93, 0x663c}, + {0xfb94, 0x7f65}, + {0xfb95, 0x7624}, + {0xfb96, 0xbf15}, + {0xfb97, 0x6b01}, + {0xfb98, 0x8ab1}, + {0xfb99, 0x78f0}, + {0xfb9a, 0xb035}, + {0xfb9b, 0x4ac1}, + {0xfb9c, 0x7d04}, + {0xfb9d, 0x5e80}, + {0xfb9e, 0x4588}, + {0xfb9f, 0x55f8}, + {0xfba0, 0x8030}, + {0xfba1, 0xffffe34e}, + {0xfba2, 0xffffe34f}, + {0xfba3, 0xffffe350}, + {0xfba4, 0xffffe351}, + {0xfba5, 0xffffe352}, + {0xfba6, 0xffffe353}, + {0xfba7, 0xffffe354}, + {0xfba8, 0xffffe355}, + {0xfba9, 0xffffe356}, + {0xfbaa, 0xffffe357}, + {0xfbab, 0xffffe358}, + {0xfbac, 0xffffe359}, + {0xfbad, 0xffffe35a}, + {0xfbae, 0xffffe35b}, + {0xfbaf, 0xffffe35c}, + {0xfbb0, 0xffffe35d}, + {0xfbb1, 0xffffe35e}, + {0xfbb2, 0xffffe35f}, + {0xfbb3, 0xffffe360}, + {0xfbb4, 0xffffe361}, + {0xfbb5, 0xffffe362}, + {0xfbb6, 0xffffe363}, + {0xfbb7, 0xffffe364}, + {0xfbb8, 0xffffe365}, + {0xfbb9, 0xffffe366}, + {0xfbba, 0xffffe367}, + {0xfbbb, 0xffffe368}, + {0xfbbc, 0xffffe369}, + {0xfbbd, 0xffffe36a}, + {0xfbbe, 0xffffe36b}, + {0xfbbf, 0xffffe36c}, + {0xfbc0, 0xffffe36d}, + {0xfbc1, 0xffffe36e}, + {0xfbc2, 0xffffe36f}, + {0xfbc3, 0xffffe370}, + {0xfbc4, 0xffffe371}, + {0xfbc5, 0xffffe372}, + {0xfbc6, 0xffffe373}, + {0xfbc7, 0xffffe374}, + {0xfbc8, 0xffffe375}, + {0xfbc9, 0xffffe376}, + {0xfbca, 0xffffe377}, + {0xfbcb, 0xffffe378}, + {0xfbcc, 0xffffe379}, + {0xfbcd, 0xffffe37a}, + {0xfbce, 0xffffe37b}, + {0xfbcf, 0xffffe37c}, + {0xfbd0, 0xffffe37d}, + {0xfbd1, 0xffffe37e}, + {0xfbd2, 0xffffe37f}, + {0xfbd3, 0xffffe380}, + {0xfbd4, 0xffffe381}, + {0xfbd5, 0xffffe382}, + {0xfbd6, 0xffffe383}, + {0xfbd7, 0xffffe384}, + {0xfbd8, 0xffffe385}, + {0xfbd9, 0xffffe386}, + {0xfbda, 0xffffe387}, + {0xfbdb, 0xffffe388}, + {0xfbdc, 0xffffe389}, + {0xfbdd, 0xffffe38a}, + {0xfbde, 0xffffe38b}, + {0xfbdf, 0xffffe38c}, + {0xfbe0, 0xffffe38d}, + {0xfbe1, 0xffffe38e}, + {0xfbe2, 0xffffe38f}, + {0xfbe3, 0xffffe390}, + {0xfbe4, 0xffffe391}, + {0xfbe5, 0xffffe392}, + {0xfbe6, 0xffffe393}, + {0xfbe7, 0xffffe394}, + {0xfbe8, 0xffffe395}, + {0xfbe9, 0xffffe396}, + {0xfbea, 0xffffe397}, + {0xfbeb, 0xffffe398}, + {0xfbec, 0xffffe399}, + {0xfbed, 0xffffe39a}, + {0xfbee, 0xffffe39b}, + {0xfbef, 0xffffe39c}, + {0xfbf0, 0xffffe39d}, + {0xfbf1, 0xffffe39e}, + {0xfbf2, 0xffffe39f}, + {0xfbf3, 0xffffe3a0}, + {0xfbf4, 0xffffe3a1}, + {0xfbf5, 0xffffe3a2}, + {0xfbf6, 0xffffe3a3}, + {0xfbf7, 0xffffe3a4}, + {0xfbf8, 0xffffe3a5}, + {0xfbf9, 0xffffe3a6}, + {0xfbfa, 0xffffe3a7}, + {0xfbfb, 0xffffe3a8}, + {0xfbfc, 0xffffe3a9}, + {0xfbfd, 0xffffe3aa}, + {0xfbfe, 0xffffe3ab}, + {0xfc40, 0x8031}, + {0xfc41, 0x55fc}, + {0xfc42, 0x8682}, + {0xfc43, 0x8fe2}, + {0xfc44, 0x8f71}, + {0xfc45, 0x81c5}, + {0xfc46, 0x5601}, + {0xfc47, 0xa941}, + {0xfc48, 0x7294}, + {0xfc49, 0x8034}, + {0xfc4a, 0x4701}, + {0xfc4b, 0x5578}, + {0xfc4c, 0x8f6c}, + {0xfc4d, 0x8032}, + {0xfc4e, 0x812a}, + {0xfc4f, 0x8149}, + {0xfc50, 0xc6cd}, + {0xfc51, 0x852d}, + {0xfc52, 0x5509}, + {0xfc53, 0x61f4}, + {0xfc54, 0x6a42}, + {0xfc55, 0x5b7a}, + {0xfc56, 0x9e92}, + {0xfc57, 0xa036}, + {0xfc58, 0x610d}, + {0xfc59, 0x711a}, + {0xfc5a, 0x5f79}, + {0xfc5b, 0x4704}, + {0xfc5c, 0x5ec6}, + {0xfc5d, 0xb525}, + {0xfc5e, 0x4c98}, + {0xfc5f, 0xa770}, + {0xfc60, 0xa114}, + {0xfc61, 0x8190}, + {0xfc62, 0x8c01}, + {0xfc63, 0x4eb9}, + {0xfc64, 0xb081}, + {0xfc65, 0x7e7a}, + {0xfc66, 0xb089}, + {0xfc67, 0xbbac}, + {0xfc68, 0x4cfa}, + {0xfc69, 0xafcc}, + {0xfc6a, 0xb090}, + {0xfc6b, 0xb091}, + {0xfc6c, 0xc0b2}, + {0xfc6d, 0xc07a}, + {0xfc6e, 0x4c4d}, + {0xfc6f, 0x42f9}, + {0xfc70, 0xb358}, + {0xfc71, 0x7e60}, + {0xfc72, 0xbeca}, + {0xfc73, 0xb09e}, + {0xfc74, 0x50bc}, + {0xfc75, 0x7a95}, + {0xfc76, 0x550e}, + {0xfc77, 0x80d5}, + {0xfc78, 0xbb20}, + {0xfc79, 0x4ae6}, + {0xfc7a, 0x8fe8}, + {0xfc7b, 0x457a}, + {0xfc7c, 0xa1cc}, + {0xfc7d, 0xc3d1}, + {0xfc7e, 0xc16d}, + {0xfc80, 0x7f29}, + {0xfc81, 0x3c4d}, + {0xfc82, 0x40b9}, + {0xfc83, 0xa18e}, + {0xfc84, 0x3fe9}, + {0xfc85, 0x4570}, + {0xfc86, 0x7fce}, + {0xfc87, 0x4fb1}, + {0xfc88, 0xc5f0}, + {0xfc89, 0x5a74}, + {0xfc8a, 0x4ff8}, + {0xfc8b, 0x5500}, + {0xfc8c, 0xbac9}, + {0xfc8d, 0x4501}, + {0xfc8e, 0x5852}, + {0xfc8f, 0x435c}, + {0xfc90, 0xbacc}, + {0xfc91, 0x9cf5}, + {0xfc92, 0x9dc9}, + {0xfc93, 0x980a}, + {0xfc94, 0x54a6}, + {0xfc95, 0xa44e}, + {0xfc96, 0x3cc8}, + {0xfc97, 0x4f0d}, + {0xfc98, 0xa189}, + {0xfc99, 0xc2ee}, + {0xfc9a, 0x8fa5}, + {0xfc9b, 0x962a}, + {0xfc9c, 0x96de}, + {0xfc9d, 0x96e1}, + {0xfc9e, 0x9f95}, + {0xfc9f, 0x6c98}, + {0xfca0, 0x6afd}, + {0xfca1, 0xffffe3ac}, + {0xfca2, 0xffffe3ad}, + {0xfca3, 0xffffe3ae}, + {0xfca4, 0xffffe3af}, + {0xfca5, 0xffffe3b0}, + {0xfca6, 0xffffe3b1}, + {0xfca7, 0xffffe3b2}, + {0xfca8, 0xffffe3b3}, + {0xfca9, 0xffffe3b4}, + {0xfcaa, 0xffffe3b5}, + {0xfcab, 0xffffe3b6}, + {0xfcac, 0xffffe3b7}, + {0xfcad, 0xffffe3b8}, + {0xfcae, 0xffffe3b9}, + {0xfcaf, 0xffffe3ba}, + {0xfcb0, 0xffffe3bb}, + {0xfcb1, 0xffffe3bc}, + {0xfcb2, 0xffffe3bd}, + {0xfcb3, 0xffffe3be}, + {0xfcb4, 0xffffe3bf}, + {0xfcb5, 0xffffe3c0}, + {0xfcb6, 0xffffe3c1}, + {0xfcb7, 0xffffe3c2}, + {0xfcb8, 0xffffe3c3}, + {0xfcb9, 0xffffe3c4}, + {0xfcba, 0xffffe3c5}, + {0xfcbb, 0xffffe3c6}, + {0xfcbc, 0xffffe3c7}, + {0xfcbd, 0xffffe3c8}, + {0xfcbe, 0xffffe3c9}, + {0xfcbf, 0xffffe3ca}, + {0xfcc0, 0xffffe3cb}, + {0xfcc1, 0xffffe3cc}, + {0xfcc2, 0xffffe3cd}, + {0xfcc3, 0xffffe3ce}, + {0xfcc4, 0xffffe3cf}, + {0xfcc5, 0xffffe3d0}, + {0xfcc6, 0xffffe3d1}, + {0xfcc7, 0xffffe3d2}, + {0xfcc8, 0xffffe3d3}, + {0xfcc9, 0xffffe3d4}, + {0xfcca, 0xffffe3d5}, + {0xfccb, 0xffffe3d6}, + {0xfccc, 0xffffe3d7}, + {0xfccd, 0xffffe3d8}, + {0xfcce, 0xffffe3d9}, + {0xfccf, 0xffffe3da}, + {0xfcd0, 0xffffe3db}, + {0xfcd1, 0xffffe3dc}, + {0xfcd2, 0xffffe3dd}, + {0xfcd3, 0xffffe3de}, + {0xfcd4, 0xffffe3df}, + {0xfcd5, 0xffffe3e0}, + {0xfcd6, 0xffffe3e1}, + {0xfcd7, 0xffffe3e2}, + {0xfcd8, 0xffffe3e3}, + {0xfcd9, 0xffffe3e4}, + {0xfcda, 0xffffe3e5}, + {0xfcdb, 0xffffe3e6}, + {0xfcdc, 0xffffe3e7}, + {0xfcdd, 0xffffe3e8}, + {0xfcde, 0xffffe3e9}, + {0xfcdf, 0xffffe3ea}, + {0xfce0, 0xffffe3eb}, + {0xfce1, 0xffffe3ec}, + {0xfce2, 0xffffe3ed}, + {0xfce3, 0xffffe3ee}, + {0xfce4, 0xffffe3ef}, + {0xfce5, 0xffffe3f0}, + {0xfce6, 0xffffe3f1}, + {0xfce7, 0xffffe3f2}, + {0xfce8, 0xffffe3f3}, + {0xfce9, 0xffffe3f4}, + {0xfcea, 0xffffe3f5}, + {0xfceb, 0xffffe3f6}, + {0xfcec, 0xffffe3f7}, + {0xfced, 0xffffe3f8}, + {0xfcee, 0xffffe3f9}, + {0xfcef, 0xffffe3fa}, + {0xfcf0, 0xffffe3fb}, + {0xfcf1, 0xffffe3fc}, + {0xfcf2, 0xffffe3fd}, + {0xfcf3, 0xffffe3fe}, + {0xfcf4, 0xffffe3ff}, + {0xfcf5, 0xffffe400}, + {0xfcf6, 0xffffe401}, + {0xfcf7, 0xffffe402}, + {0xfcf8, 0xffffe403}, + {0xfcf9, 0xffffe404}, + {0xfcfa, 0xffffe405}, + {0xfcfb, 0xffffe406}, + {0xfcfc, 0xffffe407}, + {0xfcfd, 0xffffe408}, + {0xfcfe, 0xffffe409}, + {0xfd40, 0x6374}, + {0xfd41, 0x6c9c}, + {0xfd42, 0xb095}, + {0xfd43, 0xa05a}, + {0xfd44, 0x9964}, + {0xfd45, 0xa951}, + {0xfd46, 0x742e}, + {0xfd47, 0xb265}, + {0xfd48, 0xa5cc}, + {0xfd49, 0xa5ce}, + {0xfd4a, 0x5f8e}, + {0xfd4b, 0xab78}, + {0xfd4c, 0x5ec0}, + {0xfd4d, 0xacba}, + {0xfd4e, 0xa4a2}, + {0xfd4f, 0xbdf2}, + {0xfd50, 0x84fa}, + {0xfd51, 0x82d0}, + {0xfd52, 0x8a79}, + {0xfd53, 0xbe51}, + {0xfd54, 0x65e4}, + {0xfd55, 0xc604}, + {0xfd56, 0x6490}, + {0xfd57, 0x6498}, + {0xfd58, 0x4760}, + {0xfd59, 0x4631}, + {0xfd5a, 0x4632}, + {0xfd5b, 0x5e92}, + {0xfd5c, 0xaf58}, + {0xfd5d, 0xb62e}, + {0xfd5e, 0xab71}, + {0xfd5f, 0x3db6}, + {0xfd60, 0xbd88}, + {0xfd61, 0x9786}, + {0xfd62, 0xc606}, + {0xfd63, 0x46fe}, + {0xfd64, 0xb08a}, + {0xfd65, 0x6cbd}, + {0xfd66, 0x9f1d}, + {0xfd67, 0x78de}, + {0xfd68, 0x78d2}, + {0xfd69, 0x485e}, + {0xfd6a, 0x903c}, + {0xfd6b, 0xab76}, + {0xfd6c, 0xb631}, + {0xfd6d, 0x8464}, + {0xfd6e, 0x6c0a}, + {0xfd6f, 0xb24c}, + {0xfd70, 0x49e8}, + {0xfd71, 0xbc22}, + {0xfd72, 0xb9c1}, + {0xfd73, 0x48a6}, + {0xfd74, 0xb41c}, + {0xfd75, 0x8372}, + {0xfd76, 0xbd89}, + {0xfd77, 0x49ea}, + {0xfd78, 0x8fcc}, + {0xfd79, 0xbc24}, + {0xfd7a, 0xb09d}, + {0xfd7b, 0x859c}, + {0xfd7c, 0x52c0}, + {0xfd7d, 0xa4ea}, + {0xfd7e, 0xb594}, + {0xfd80, 0x4b91}, + {0xfd81, 0xc6d0}, + {0xfd82, 0x4ea6}, + {0xfd83, 0x48a8}, + {0xfd84, 0x6ac9}, + {0xfd85, 0xaf96}, + {0xfd86, 0x5e62}, + {0xfd87, 0xb612}, + {0xfd88, 0x79b0}, + {0xfd89, 0x8649}, + {0xfd8a, 0x5990}, + {0xfd8b, 0x864a}, + {0xfd8c, 0xb08c}, + {0xfd8d, 0x79ca}, + {0xfd8e, 0x79d2}, + {0xfd8f, 0x5991}, + {0xfd90, 0x6ed6}, + {0xfd91, 0x4bf6}, + {0xfd92, 0x78f6}, + {0xfd93, 0x4bf8}, + {0xfd94, 0x5bc0}, + {0xfd95, 0x8eca}, + {0xfd96, 0x40bc}, + {0xfd97, 0x4956}, + {0xfd98, 0x5e9c}, + {0xfd99, 0x6e24}, + {0xfd9a, 0xaaf2}, + {0xfd9b, 0xbbbd}, + {0xfd9c, 0xfffff92c}, + {0xfd9d, 0xfffff979}, + {0xfd9e, 0xfffff995}, + {0xfd9f, 0xfffff9e7}, + {0xfda0, 0xfffff9f1}, + {0xfda1, 0xffffe40a}, + {0xfda2, 0xffffe40b}, + {0xfda3, 0xffffe40c}, + {0xfda4, 0xffffe40d}, + {0xfda5, 0xffffe40e}, + {0xfda6, 0xffffe40f}, + {0xfda7, 0xffffe410}, + {0xfda8, 0xffffe411}, + {0xfda9, 0xffffe412}, + {0xfdaa, 0xffffe413}, + {0xfdab, 0xffffe414}, + {0xfdac, 0xffffe415}, + {0xfdad, 0xffffe416}, + {0xfdae, 0xffffe417}, + {0xfdaf, 0xffffe418}, + {0xfdb0, 0xffffe419}, + {0xfdb1, 0xffffe41a}, + {0xfdb2, 0xffffe41b}, + {0xfdb3, 0xffffe41c}, + {0xfdb4, 0xffffe41d}, + {0xfdb5, 0xffffe41e}, + {0xfdb6, 0xffffe41f}, + {0xfdb7, 0xffffe420}, + {0xfdb8, 0xffffe421}, + {0xfdb9, 0xffffe422}, + {0xfdba, 0xffffe423}, + {0xfdbb, 0xffffe424}, + {0xfdbc, 0xffffe425}, + {0xfdbd, 0xffffe426}, + {0xfdbe, 0xffffe427}, + {0xfdbf, 0xffffe428}, + {0xfdc0, 0xffffe429}, + {0xfdc1, 0xffffe42a}, + {0xfdc2, 0xffffe42b}, + {0xfdc3, 0xffffe42c}, + {0xfdc4, 0xffffe42d}, + {0xfdc5, 0xffffe42e}, + {0xfdc6, 0xffffe42f}, + {0xfdc7, 0xffffe430}, + {0xfdc8, 0xffffe431}, + {0xfdc9, 0xffffe432}, + {0xfdca, 0xffffe433}, + {0xfdcb, 0xffffe434}, + {0xfdcc, 0xffffe435}, + {0xfdcd, 0xffffe436}, + {0xfdce, 0xffffe437}, + {0xfdcf, 0xffffe438}, + {0xfdd0, 0xffffe439}, + {0xfdd1, 0xffffe43a}, + {0xfdd2, 0xffffe43b}, + {0xfdd3, 0xffffe43c}, + {0xfdd4, 0xffffe43d}, + {0xfdd5, 0xffffe43e}, + {0xfdd6, 0xffffe43f}, + {0xfdd7, 0xffffe440}, + {0xfdd8, 0xffffe441}, + {0xfdd9, 0xffffe442}, + {0xfdda, 0xffffe443}, + {0xfddb, 0xffffe444}, + {0xfddc, 0xffffe445}, + {0xfddd, 0xffffe446}, + {0xfdde, 0xffffe447}, + {0xfddf, 0xffffe448}, + {0xfde0, 0xffffe449}, + {0xfde1, 0xffffe44a}, + {0xfde2, 0xffffe44b}, + {0xfde3, 0xffffe44c}, + {0xfde4, 0xffffe44d}, + {0xfde5, 0xffffe44e}, + {0xfde6, 0xffffe44f}, + {0xfde7, 0xffffe450}, + {0xfde8, 0xffffe451}, + {0xfde9, 0xffffe452}, + {0xfdea, 0xffffe453}, + {0xfdeb, 0xffffe454}, + {0xfdec, 0xffffe455}, + {0xfded, 0xffffe456}, + {0xfdee, 0xffffe457}, + {0xfdef, 0xffffe458}, + {0xfdf0, 0xffffe459}, + {0xfdf1, 0xffffe45a}, + {0xfdf2, 0xffffe45b}, + {0xfdf3, 0xffffe45c}, + {0xfdf4, 0xffffe45d}, + {0xfdf5, 0xffffe45e}, + {0xfdf6, 0xffffe45f}, + {0xfdf7, 0xffffe460}, + {0xfdf8, 0xffffe461}, + {0xfdf9, 0xffffe462}, + {0xfdfa, 0xffffe463}, + {0xfdfb, 0xffffe464}, + {0xfdfc, 0xffffe465}, + {0xfdfd, 0xffffe466}, + {0xfdfe, 0xffffe467}, + {0xfe40, 0xfffffa0c}, + {0xfe41, 0xfffffa0d}, + {0xfe42, 0xfffffa0e}, + {0xfe43, 0xfffffa0f}, + {0xfe44, 0xfffffa11}, + {0xfe45, 0xfffffa13}, + {0xfe46, 0xfffffa14}, + {0xfe47, 0xfffffa18}, + {0xfe48, 0xfffffa1f}, + {0xfe49, 0xfffffa20}, + {0xfe4a, 0xfffffa21}, + {0xfe4b, 0xfffffa23}, + {0xfe4c, 0xfffffa24}, + {0xfe4d, 0xfffffa27}, + {0xfe4e, 0xfffffa28}, + {0xfe4f, 0xfffffa29}, + {0xfe50, 0xffff2e81}, + {0xfe51, 0xffffe816}, + {0xfe52, 0xffffe817}, + {0xfe53, 0xffffe818}, + {0xfe54, 0xffff2e84}, + {0xfe55, 0xc380}, + {0xfe56, 0xc366}, + {0xfe57, 0xffff2e88}, + {0xfe58, 0xffff2e8b}, + {0xfe59, 0xffffe81e}, + {0xfe5a, 0xa1ea}, + {0xfe5b, 0x5d4c}, + {0xfe5c, 0x5d46}, + {0xfe5d, 0xffff2e8c}, + {0xfe5e, 0xffff2e97}, + {0xfe5f, 0xc385}, + {0xfe60, 0xc36a}, + {0xfe61, 0xffffe826}, + {0xfe62, 0x57f8}, + {0xfe63, 0x7096}, + {0xfe64, 0x99e5}, + {0xfe65, 0x99d4}, + {0xfe66, 0xffffe82b}, + {0xfe67, 0xffffe82c}, + {0xfe68, 0x57fe}, + {0xfe69, 0x718e}, + {0xfe6a, 0x9bcc}, + {0xfe6b, 0xffff2ea7}, + {0xfe6c, 0xffffe831}, + {0xfe6d, 0xffffe832}, + {0xfe6e, 0xffff2eaa}, + {0xfe6f, 0x7a0e}, + {0xfe70, 0x42ee}, + {0xfe71, 0xffff2eae}, + {0xfe72, 0x4800}, + {0xfe73, 0xffff2eb3}, + {0xfe74, 0xffff2eb6}, + {0xfe75, 0xffff2eb7}, + {0xfe76, 0xffffe83b}, + {0xfe77, 0x3e26}, + {0xfe78, 0x3e22}, + {0xfe79, 0xffff2ebb}, + {0xfe7a, 0xc49d}, + {0xfe7b, 0x8e6d}, + {0xfe7c, 0x71a5}, + {0xfe7d, 0x7192}, + {0xfe7e, 0xffffe843}, + {0xfe80, 0xab84}, + {0xfe81, 0xb0ea}, + {0xfe82, 0x6b5a}, + {0xfe83, 0x6b46}, + {0xfe84, 0xffff2eca}, + {0xfe85, 0x94b1}, + {0xfe86, 0xb289}, + {0xfe87, 0x88f6}, + {0xfe88, 0x949a}, + {0xfe89, 0xc589}, + {0xfe8a, 0x94ac}, + {0xfe8b, 0x6e21}, + {0xfe8c, 0xa466}, + {0xfe8d, 0xc115}, + {0xfe8e, 0xa45c}, + {0xfe8f, 0xc10a}, + {0xfe90, 0xffffe854}, + {0xfe91, 0xffffe855}, + {0xfe92, 0xb966}, + {0xfe93, 0xb671}, + {0xfe94, 0x4988}, + {0xfe95, 0x8ebd}, + {0xfe96, 0xb974}, + {0xfe97, 0x9ddd}, + {0xfe98, 0x966a}, + {0xfe99, 0x6878}, + {0xfe9a, 0x77b6}, + {0xfe9b, 0x6ae9}, + {0xfe9c, 0x6c78}, + {0xfe9d, 0x9df6}, + {0xfe9e, 0x8805}, + {0xfe9f, 0xb044}, + {0xfea0, 0xffffe864}, + {0xfea1, 0xffffe468}, + {0xfea2, 0xffffe469}, + {0xfea3, 0xffffe46a}, + {0xfea4, 0xffffe46b}, + {0xfea5, 0xffffe46c}, + {0xfea6, 0xffffe46d}, + {0xfea7, 0xffffe46e}, + {0xfea8, 0xffffe46f}, + {0xfea9, 0xffffe470}, + {0xfeaa, 0xffffe471}, + {0xfeab, 0xffffe472}, + {0xfeac, 0xffffe473}, + {0xfead, 0xffffe474}, + {0xfeae, 0xffffe475}, + {0xfeaf, 0xffffe476}, + {0xfeb0, 0xffffe477}, + {0xfeb1, 0xffffe478}, + {0xfeb2, 0xffffe479}, + {0xfeb3, 0xffffe47a}, + {0xfeb4, 0xffffe47b}, + {0xfeb5, 0xffffe47c}, + {0xfeb6, 0xffffe47d}, + {0xfeb7, 0xffffe47e}, + {0xfeb8, 0xffffe47f}, + {0xfeb9, 0xffffe480}, + {0xfeba, 0xffffe481}, + {0xfebb, 0xffffe482}, + {0xfebc, 0xffffe483}, + {0xfebd, 0xffffe484}, + {0xfebe, 0xffffe485}, + {0xfebf, 0xffffe486}, + {0xfec0, 0xffffe487}, + {0xfec1, 0xffffe488}, + {0xfec2, 0xffffe489}, + {0xfec3, 0xffffe48a}, + {0xfec4, 0xffffe48b}, + {0xfec5, 0xffffe48c}, + {0xfec6, 0xffffe48d}, + {0xfec7, 0xffffe48e}, + {0xfec8, 0xffffe48f}, + {0xfec9, 0xffffe490}, + {0xfeca, 0xffffe491}, + {0xfecb, 0xffffe492}, + {0xfecc, 0xffffe493}, + {0xfecd, 0xffffe494}, + {0xfece, 0xffffe495}, + {0xfecf, 0xffffe496}, + {0xfed0, 0xffffe497}, + {0xfed1, 0xffffe498}, + {0xfed2, 0xffffe499}, + {0xfed3, 0xffffe49a}, + {0xfed4, 0xffffe49b}, + {0xfed5, 0xffffe49c}, + {0xfed6, 0xffffe49d}, + {0xfed7, 0xffffe49e}, + {0xfed8, 0xffffe49f}, + {0xfed9, 0xffffe4a0}, + {0xfeda, 0xffffe4a1}, + {0xfedb, 0xffffe4a2}, + {0xfedc, 0xffffe4a3}, + {0xfedd, 0xffffe4a4}, + {0xfede, 0xffffe4a5}, + {0xfedf, 0xffffe4a6}, + {0xfee0, 0xffffe4a7}, + {0xfee1, 0xffffe4a8}, + {0xfee2, 0xffffe4a9}, + {0xfee3, 0xffffe4aa}, + {0xfee4, 0xffffe4ab}, + {0xfee5, 0xffffe4ac}, + {0xfee6, 0xffffe4ad}, + {0xfee7, 0xffffe4ae}, + {0xfee8, 0xffffe4af}, + {0xfee9, 0xffffe4b0}, + {0xfeea, 0xffffe4b1}, + {0xfeeb, 0xffffe4b2}, + {0xfeec, 0xffffe4b3}, + {0xfeed, 0xffffe4b4}, + {0xfeee, 0xffffe4b5}, + {0xfeef, 0xffffe4b6}, + {0xfef0, 0xffffe4b7}, + {0xfef1, 0xffffe4b8}, + {0xfef2, 0xffffe4b9}, + {0xfef3, 0xffffe4ba}, + {0xfef4, 0xffffe4bb}, + {0xfef5, 0xffffe4bc}, + {0xfef6, 0xffffe4bd}, + {0xfef7, 0xffffe4be}, + {0xfef8, 0xffffe4bf}, + {0xfef9, 0xffffe4c0}, + {0xfefa, 0xffffe4c1}, + {0xfefb, 0xffffe4c2}, + {0xfefc, 0xffffe4c3}, + {0xfefd, 0xffffe4c4}, + {0xfefe, 0xffffe4c5}, + {0x81308130, 0xffff0080}, + {0x81308131, 0xffff0081}, + {0x81308132, 0xffff0082}, + {0x81308133, 0xffff0083}, + {0x81308134, 0x0279}, + {0x81308135, 0x0279}, + {0x81308136, 0xffff0086}, + {0x81308137, 0xffff0087}, + {0x81308138, 0xffff0088}, + {0x81308139, 0xffff0089}, + {0x81308230, 0xffff008a}, + {0x81308231, 0xffff008b}, + {0x81308232, 0xffff008c}, + {0x81308233, 0xffff008d}, + {0x81308234, 0xffff008e}, + {0x81308235, 0xffff008f}, + {0x81308236, 0xffff0090}, + {0x81308237, 0xffff0091}, + {0x81308238, 0xffff0092}, + {0x81308239, 0xffff0093}, + {0x81308330, 0xffff0094}, + {0x81308331, 0xffff0095}, + {0x81308332, 0xffff0096}, + {0x81308333, 0xffff0097}, + {0x81308334, 0xffff0098}, + {0x81308335, 0xffff0099}, + {0x81308336, 0xffff009a}, + {0x81308337, 0xffff009b}, + {0x81308338, 0xffff009c}, + {0x81308339, 0xffff009d}, + {0x81308430, 0xffff009e}, + {0x81308431, 0xffff009f}, + {0x81308434, 0x0085}, + {0x81308435, 0x008a}, + {0x81308436, 0x008c}, + {0x81308439, 0xffff00aa}, + {0x81308535, 0x017b}, + {0x81308536, 0x017c}, + {0x81308538, 0x0299}, + {0x81308631, 0x017a}, + {0x81308632, 0x0238}, + {0x81308634, 0x0183}, + {0x81308635, 0x0184}, + {0x81308636, 0x0185}, + {0x81308638, 0x01ea}, + {0x81308639, 0x01ea}, + {0x81308730, 0x01ea}, + {0x81308731, 0x01ea}, + {0x81308732, 0x01ea}, + {0x81308733, 0x01ea}, + {0x81308734, 0x01eb}, + {0x81308735, 0x01f4}, + {0x81308736, 0x01fe}, + {0x81308737, 0x01fe}, + {0x81308738, 0x01fe}, + {0x81308739, 0x01fe}, + {0x81308830, 0x021b}, + {0x81308831, 0x021b}, + {0x81308832, 0x021b}, + {0x81308833, 0x021b}, + {0x81308834, 0x01fc}, + {0x81308835, 0x0232}, + {0x81308836, 0x0238}, + {0x81308837, 0x0238}, + {0x81308838, 0x0238}, + {0x81308839, 0x0238}, + {0x81308930, 0x0238}, + {0x81308931, 0x023a}, + {0x81308932, 0x025b}, + {0x81308933, 0x025b}, + {0x81308934, 0x025b}, + {0x81308935, 0x025b}, + {0x81308936, 0x0267}, + {0x81308937, 0x0274}, + {0x81308938, 0x024f024f}, + {0x81308939, 0x01ea}, + {0x81308a30, 0x01ea}, + {0x81308a31, 0x01ea}, + {0x81308a32, 0x01ea}, + {0x81308a33, 0x01eb}, + {0x81308a34, 0x01f4}, + {0x81308a35, 0x01fe}, + {0x81308a36, 0x021b}, + {0x81308a37, 0x021b}, + {0x81308a38, 0x01fc}, + {0x81308a39, 0x0232}, + {0x81308b30, 0x0238}, + {0x81308b31, 0x0238}, + {0x81308b32, 0x0238}, + {0x81308b33, 0x023a}, + {0x81308b34, 0x025b}, + {0x81308b35, 0x0267}, + {0x81308b36, 0x0274}, + {0x81308b37, 0x0267}, + {0x81308b38, 0x01ea}, + {0x81308b39, 0x01ea}, + {0x81308c30, 0x01ea}, + {0x81308c31, 0x01ea}, + {0x81308c32, 0x01ea}, + {0x81308c33, 0x01f4}, + {0x81308c34, 0x01f4}, + {0x81308c35, 0x01f4}, + {0x81308c36, 0x01f4}, + {0x81308c37, 0x01f4}, + {0x81308c38, 0x01f4}, + {0x81308c39, 0x01f4}, + {0x81308d30, 0x01f4}, + {0x81308d31, 0x01f7}, + {0x81308d32, 0x01f7}, + {0x81308d33, 0x01f8}, + {0x81308d34, 0x01f8}, + {0x81308d35, 0x01fe}, + {0x81308d36, 0x01fe}, + {0x81308d37, 0x01fe}, + {0x81308d38, 0x01fe}, + {0x81308d39, 0x01fe}, + {0x81308e30, 0x01fe}, + {0x81308e31, 0x01fe}, + {0x81308e32, 0x01fe}, + {0x81308e33, 0x020b}, + {0x81308e34, 0x020b}, + {0x81308e35, 0x020b}, + {0x81308e36, 0x020b}, + {0x81308e37, 0x020b}, + {0x81308e38, 0x020b}, + {0x81308e39, 0x020b}, + {0x81308f30, 0x020b}, + {0x81308f31, 0x0213}, + {0x81308f32, 0x0213}, + {0x81308f33, 0x0216}, + {0x81308f34, 0x0216}, + {0x81308f35, 0x021b}, + {0x81308f36, 0x021b}, + {0x81308f37, 0x021b}, + {0x81308f38, 0x021b}, + {0x81308f39, 0x021b}, + {0x81309030, 0x021b}, + {0x81309031, 0x021b}, + {0x81309032, 0x021b}, + {0x81309033, 0x021b}, + {0x81309034, 0x021b021f}, + {0x81309035, 0x021b021f}, + {0x81309036, 0x021f}, + {0x81309037, 0x021f}, + {0x81309038, 0x0223}, + {0x81309039, 0x0223}, + {0x81309130, 0x0244}, + {0x81309131, 0x0226}, + {0x81309132, 0x0226}, + {0x81309133, 0x0226}, + {0x81309134, 0x0226}, + {0x81309135, 0x0226}, + {0x81309136, 0x0226}, + {0x81309137, 0x0226}, + {0x81309138, 0x0226}, + {0x81309139, 0x0228}, + {0x81309230, 0x0228}, + {0x81309231, 0x0232}, + {0x81309232, 0x0232}, + {0x81309233, 0x0232}, + {0x81309234, 0x0232}, + {0x81309235, 0xffff0149}, + {0x81309236, 0x0237}, + {0x81309237, 0x0237}, + {0x81309238, 0x0238}, + {0x81309239, 0x0238}, + {0x81309330, 0x0238}, + {0x81309331, 0x0238}, + {0x81309332, 0x0238}, + {0x81309333, 0x023801fe}, + {0x81309334, 0x023801fe}, + {0x81309335, 0x0245}, + {0x81309336, 0x0245}, + {0x81309337, 0x0245}, + {0x81309338, 0x0245}, + {0x81309339, 0x0245}, + {0x81309430, 0x0245}, + {0x81309431, 0x024f}, + {0x81309432, 0x024f}, + {0x81309433, 0x024f}, + {0x81309434, 0x024f}, + {0x81309435, 0x024f}, + {0x81309436, 0x024f}, + {0x81309437, 0x024f}, + {0x81309438, 0x024f}, + {0x81309439, 0x0255}, + {0x81309530, 0x0255}, + {0x81309531, 0x0255}, + {0x81309532, 0x0255}, + {0x81309533, 0x0256}, + {0x81309534, 0x0256}, + {0x81309535, 0x025b}, + {0x81309536, 0x025b}, + {0x81309537, 0x025b}, + {0x81309538, 0x025b}, + {0x81309539, 0x025b}, + {0x81309630, 0x025b}, + {0x81309631, 0x025b}, + {0x81309632, 0x025b}, + {0x81309633, 0x025b}, + {0x81309634, 0x025b}, + {0x81309635, 0x025b}, + {0x81309636, 0x0264}, + {0x81309637, 0x0264}, + {0x81309638, 0x0267}, + {0x81309639, 0x0267}, + {0x81309730, 0x0267}, + {0x81309731, 0x026a}, + {0x81309732, 0x026a}, + {0x81309733, 0x026a}, + {0x81309734, 0x026a}, + {0x81309735, 0x026a}, + {0x81309736, 0x026a}, + {0x81309737, 0x024f}, + {0x81309738, 0x01f1}, + {0x81309739, 0x01f2}, + {0x81309830, 0x01f3}, + {0x81309831, 0x01f3}, + {0x81309832, 0xffff0184}, + {0x81309833, 0xffff0185}, + {0x81309834, 0x023b}, + {0x81309835, 0x01f5}, + {0x81309836, 0x01f5}, + {0x81309837, 0x01f9}, + {0x81309838, 0x01fa}, + {0x81309839, 0x01fb}, + {0x81309930, 0x01fb}, + {0x81309931, 0x01fd}, + {0x81309932, 0x01ff}, + {0x81309933, 0x0200}, + {0x81309934, 0x0201}, + {0x81309935, 0x020a}, + {0x81309936, 0x020a}, + {0x81309937, 0x020e}, + {0x81309938, 0x0210}, + {0x81309939, 0x0215}, + {0x81309a30, 0x021e}, + {0x81309a31, 0x021d}, + {0x81309a32, 0x0224}, + {0x81309a33, 0x0224}, + {0x81309a34, 0x0229}, + {0x81309a35, 0x022e}, + {0x81309a36, 0x025e}, + {0x81309a37, 0x0234}, + {0x81309a38, 0x0235}, + {0x81309a39, 0x023c}, + {0x81309b30, 0x0238}, + {0x81309b31, 0x0238}, + {0x81309b32, 0x0212}, + {0x81309b33, 0x0212}, + {0x81309b34, 0x0240}, + {0x81309b35, 0x0240}, + {0x81309b36, 0x0246}, + {0x81309b37, 0x0277}, + {0x81309b38, 0x0277}, + {0x81309b39, 0x0251}, + {0x81309c30, 0x0252}, + {0x81309c31, 0x0257}, + {0x81309c32, 0x0258}, + {0x81309c33, 0x0258}, + {0x81309c34, 0x0259}, + {0x81309c35, 0x025b}, + {0x81309c36, 0x025b}, + {0x81309c37, 0x0260}, + {0x81309c38, 0x0262}, + {0x81309c39, 0x0269}, + {0x81309d30, 0x0269}, + {0x81309d31, 0x026b}, + {0x81309d32, 0x026b}, + {0x81309d33, 0x026f}, + {0x81309d34, 0x0270}, + {0x81309d35, 0x0270}, + {0x81309d36, 0x0271}, + {0x81309d37, 0x0276}, + {0x81309d38, 0x0278}, + {0x81309d39, 0x0278}, + {0x81309e30, 0x0281}, + {0x81309e31, 0x0275}, + {0x81309e32, 0x0285}, + {0x81309e33, 0x0286}, + {0x81309e34, 0x0287}, + {0x81309e35, 0x0288}, + {0x81309e36, 0xffff01c4}, + {0x81309e37, 0xffff01c5}, + {0x81309e38, 0xffff01c6}, + {0x81309e39, 0x0226021f}, + {0x81309f30, 0x0226021f}, + {0x81309f31, 0x0226021f}, + {0x81309f32, 0x0232021f}, + {0x81309f33, 0x0232021f}, + {0x81309f34, 0x0232021f}, + {0x81309f35, 0x01ea}, + {0x81309f36, 0x021b}, + {0x81309f37, 0x0238}, + {0x81309f38, 0x025b}, + {0x81309f39, 0x025b}, + {0x8130a030, 0x025b}, + {0x8130a031, 0x025b}, + {0x8130a032, 0x025b}, + {0x8130a033, 0x01ff}, + {0x8130a034, 0x01ea}, + {0x8130a035, 0x01ea}, + {0x8130a036, 0x01ea}, + {0x8130a037, 0x01ea}, + {0x8130a038, 0x01eb}, + {0x8130a039, 0x01eb}, + {0x8130a130, 0x020d}, + {0x8130a131, 0x020d}, + {0x8130a132, 0x020b}, + {0x8130a133, 0x020b}, + {0x8130a134, 0x0223}, + {0x8130a135, 0x0223}, + {0x8130a136, 0x0238}, + {0x8130a137, 0x0238}, + {0x8130a138, 0x0238}, + {0x8130a139, 0x0238}, + {0x8130a230, 0x026f}, + {0x8130a231, 0x026f}, + {0x8130a232, 0x021f}, + {0x8130a233, 0x01f7026a}, + {0x8130a234, 0x01f7026a}, + {0x8130a235, 0x01f7026a}, + {0x8130a236, 0x020b}, + {0x8130a237, 0x020b}, + {0x8130a238, 0x0215}, + {0x8130a239, 0x0275}, + {0x8130a330, 0x0232}, + {0x8130a331, 0x01ea}, + {0x8130a332, 0x01ea}, + {0x8130a333, 0x01eb}, + {0x8130a334, 0x01eb}, + {0x8130a335, 0x023a}, + {0x8130a336, 0x023a}, + {0x8130a337, 0x01ea}, + {0x8130a338, 0x01ea}, + {0x8130a339, 0x01ea}, + {0x8130a430, 0x01ea}, + {0x8130a431, 0x01fe}, + {0x8130a432, 0x01fe}, + {0x8130a433, 0x01fe}, + {0x8130a434, 0x01fe}, + {0x8130a435, 0x021b}, + {0x8130a436, 0x021b}, + {0x8130a437, 0x021b}, + {0x8130a438, 0x021b}, + {0x8130a439, 0x0238}, + {0x8130a530, 0x0238}, + {0x8130a531, 0x0238}, + {0x8130a532, 0x0238}, + {0x8130a533, 0x0245}, + {0x8130a534, 0x0245}, + {0x8130a535, 0x0245}, + {0x8130a536, 0x0266}, + {0x8130a537, 0x025b}, + {0x8130a538, 0x025b}, + {0x8130a539, 0x025b}, + {0x8130a630, 0x025b}, + {0x8130a631, 0x024f}, + {0x8130a632, 0x024f}, + {0x8130a633, 0x0255}, + {0x8130a634, 0x0255}, + {0x8130a635, 0x0273}, + {0x8130a636, 0x0273}, + {0x8130a637, 0x0213}, + {0x8130a638, 0x0213}, + {0x8130a639, 0xffff0220}, + {0x8130a730, 0xffff0221}, + {0x8130a731, 0xffff0222}, + {0x8130a732, 0xffff0223}, + {0x8130a733, 0x026c}, + {0x8130a734, 0x026c}, + {0x8130a735, 0x01ea}, + {0x8130a736, 0x01ea}, + {0x8130a737, 0x01fe}, + {0x8130a738, 0x01fe}, + {0x8130a739, 0x0238}, + {0x8130a830, 0x0238}, + {0x8130a831, 0x0238}, + {0x8130a832, 0x0238}, + {0x8130a833, 0x0238}, + {0x8130a834, 0x0238}, + {0x8130a835, 0x0238}, + {0x8130a836, 0x0238}, + {0x8130a837, 0x0267}, + {0x8130a838, 0x0267}, + {0x8130a839, 0xffff0234}, + {0x8130a930, 0xffff0235}, + {0x8130a931, 0xffff0236}, + {0x8130a932, 0xffff0237}, + {0x8130a933, 0xffff0238}, + {0x8130a934, 0xffff0239}, + {0x8130a935, 0xffff023a}, + {0x8130a936, 0xffff023b}, + {0x8130a937, 0xffff023c}, + {0x8130a938, 0xffff023d}, + {0x8130a939, 0xffff023e}, + {0x8130aa30, 0xffff023f}, + {0x8130aa31, 0xffff0240}, + {0x8130aa32, 0xffff0241}, + {0x8130aa33, 0xffff0242}, + {0x8130aa34, 0xffff0243}, + {0x8130aa35, 0xffff0244}, + {0x8130aa36, 0xffff0245}, + {0x8130aa37, 0xffff0246}, + {0x8130aa38, 0xffff0247}, + {0x8130aa39, 0xffff0248}, + {0x8130ab30, 0xffff0249}, + {0x8130ab31, 0xffff024a}, + {0x8130ab32, 0xffff024b}, + {0x8130ab33, 0xffff024c}, + {0x8130ab34, 0xffff024d}, + {0x8130ab35, 0xffff024e}, + {0x8130ab36, 0xffff024f}, + {0x8130ab37, 0x01ec}, + {0x8130ab38, 0x01ee}, + {0x8130ab39, 0x01f2}, + {0x8130ac30, 0x023b}, + {0x8130ac31, 0x01f6}, + {0x8130ac32, 0x01f9}, + {0x8130ac33, 0x01fa}, + {0x8130ac34, 0x0202}, + {0x8130ac35, 0x0200}, + {0x8130ac36, 0x0203}, + {0x8130ac37, 0x0201}, + {0x8130ac38, 0x0204}, + {0x8130ac39, 0x0205}, + {0x8130ad30, 0x0206}, + {0x8130ad31, 0x0221}, + {0x8130ad32, 0x020e}, + {0x8130ad33, 0x020c}, + {0x8130ad34, 0x0210}, + {0x8130ad35, 0x0208}, + {0x8130ad36, 0x025d}, + {0x8130ad37, 0x0217}, + {0x8130ad38, 0x0218}, + {0x8130ad39, 0x021d}, + {0x8130ae30, 0x021e}, + {0x8130ae31, 0x021c}, + {0x8130ae32, 0x022a}, + {0x8130ae33, 0x022b}, + {0x8130ae34, 0x022c}, + {0x8130ae35, 0x022d}, + {0x8130ae36, 0x025e}, + {0x8130ae37, 0x025f}, + {0x8130ae38, 0x0231}, + {0x8130ae39, 0x0234}, + {0x8130af30, 0x0236}, + {0x8130af31, 0x0233}, + {0x8130af32, 0x023c}, + {0x8130af33, 0x0239}, + {0x8130af34, 0x023d}, + {0x8130af35, 0x0241}, + {0x8130af36, 0x0247}, + {0x8130af37, 0x0248}, + {0x8130af38, 0x0249}, + {0x8130af39, 0x024a}, + {0x8130b030, 0x024b}, + {0x8130b031, 0x024c}, + {0x8130b032, 0x024d}, + {0x8130b033, 0x0246}, + {0x8130b034, 0x024e}, + {0x8130b035, 0x0250}, + {0x8130b036, 0x0251}, + {0x8130b037, 0x0222}, + {0x8130b038, 0x0253}, + {0x8130b039, 0x0254}, + {0x8130b130, 0x025a}, + {0x8130b131, 0x0259}, + {0x8130b132, 0x025c}, + {0x8130b133, 0x0260}, + {0x8130b134, 0x0262}, + {0x8130b135, 0x0263}, + {0x8130b136, 0x0265}, + {0x8130b137, 0x022f}, + {0x8130b138, 0x0268}, + {0x8130b139, 0x026d}, + {0x8130b230, 0x026e}, + {0x8130b231, 0x026f}, + {0x8130b232, 0x0272}, + {0x8130b233, 0x027a}, + {0x8130b234, 0x027e}, + {0x8130b235, 0x0284}, + {0x8130b236, 0x0289}, + {0x8130b237, 0x028a}, + {0x8130b238, 0x01f0}, + {0x8130b239, 0x0207}, + {0x8130b330, 0x020f}, + {0x8130b331, 0x0214}, + {0x8130b332, 0x0220}, + {0x8130b333, 0x0225}, + {0x8130b334, 0x0227}, + {0x8130b335, 0x0243}, + {0x8130b336, 0x0282}, + {0x8130b337, 0x0283}, + {0x8130b339, 0x01f7026f}, + {0x8130b430, 0x01f7026e}, + {0x8130b431, 0x0255024f}, + {0x8130b432, 0x02550251}, + {0x8130b433, 0x025501f6}, + {0x8130b434, 0xffff02a9}, + {0x8130b435, 0xffff02aa}, + {0x8130b436, 0xffff02ab}, + {0x8130b437, 0xffff02ac}, + {0x8130b438, 0xffff02ad}, + {0x8130b439, 0xffff02ae}, + {0x8130b530, 0xffff02af}, + {0x8130b531, 0x0213}, + {0x8130b532, 0x0217}, + {0x8130b533, 0x021f}, + {0x8130b534, 0x0245}, + {0x8130b535, 0x0247}, + {0x8130b536, 0x0249}, + {0x8130b537, 0x024e}, + {0x8130b538, 0x0264}, + {0x8130b539, 0x0267}, + {0x8130b630, 0xffff02b9}, + {0x8130b631, 0xffff02ba}, + {0x8130b632, 0x0219}, + {0x8130b633, 0x027c}, + {0x8130b634, 0x021a}, + {0x8130b635, 0x027d}, + {0x8130b636, 0x027f}, + {0x8130b637, 0x027b}, + {0x8130b638, 0x0280}, + {0x8130b639, 0xffff02c2}, + {0x8130b730, 0xffff02c3}, + {0x8130b731, 0xffff02c4}, + {0x8130b732, 0xffff02c5}, + {0x8130b733, 0xffff02c6}, + {0x8130b734, 0xffff02c8}, + {0x8130b735, 0xffff02cc}, + {0x8130b736, 0xffff02cd}, + {0x8130b737, 0xffff02ce}, + {0x8130b738, 0xffff02cf}, + {0x8130b739, 0xffff02d0}, + {0x8130b830, 0xffff02d1}, + {0x8130b831, 0xffff02d2}, + {0x8130b832, 0xffff02d3}, + {0x8130b833, 0xffff02d4}, + {0x8130b834, 0xffff02d5}, + {0x8130b835, 0xffff02d6}, + {0x8130b836, 0xffff02d7}, + {0x8130b837, 0xffff02d8}, + {0x8130b838, 0xffff02da}, + {0x8130b839, 0xffff02db}, + {0x8130b930, 0xffff02dc}, + {0x8130b931, 0xffff02dd}, + {0x8130b932, 0xffff02de}, + {0x8130b933, 0xffff02df}, + {0x8130b934, 0x0210}, + {0x8130b935, 0x0226}, + {0x8130b936, 0x024f}, + {0x8130b937, 0xffff02e3}, + {0x8130b938, 0x027e}, + {0x8130b939, 0xffff02e5}, + {0x8130ba30, 0xffff02e6}, + {0x8130ba31, 0xffff02e7}, + {0x8130ba32, 0xffff02e8}, + {0x8130ba33, 0xffff02e9}, + {0x8130ba34, 0xffff02ea}, + {0x8130ba35, 0xffff02eb}, + {0x8130ba36, 0xffff02ec}, + {0x8130ba37, 0xffff02ed}, + {0x8130ba38, 0xffff02ee}, + {0x8130ba39, 0xffff02ef}, + {0x8130bb30, 0xffff02f0}, + {0x8130bb31, 0xffff02f1}, + {0x8130bb32, 0xffff02f2}, + {0x8130bb33, 0xffff02f3}, + {0x8130bb34, 0xffff02f4}, + {0x8130bb35, 0xffff02f5}, + {0x8130bb36, 0xffff02f6}, + {0x8130bb37, 0xffff02f7}, + {0x8130bb38, 0xffff02f8}, + {0x8130bb39, 0xffff02f9}, + {0x8130bc30, 0xffff02fa}, + {0x8130bc31, 0xffff02fb}, + {0x8130bc32, 0xffff02fc}, + {0x8130bc33, 0xffff02fd}, + {0x8130bc34, 0xffff02fe}, + {0x8130bc35, 0xffff02ff}, + {0x8130c336, 0xffff0346}, + {0x8130c337, 0xffff0347}, + {0x8130c338, 0xffff0348}, + {0x8130c339, 0xffff0349}, + {0x8130c430, 0xffff034a}, + {0x8130c431, 0xffff034b}, + {0x8130c432, 0xffff034c}, + {0x8130c433, 0xffff034d}, + {0x8130c434, 0xffff034e}, + {0x8130c435, 0xffff034f}, + {0x8130c436, 0xffff0350}, + {0x8130c437, 0xffff0351}, + {0x8130c438, 0xffff0352}, + {0x8130c439, 0xffff0353}, + {0x8130c530, 0xffff0354}, + {0x8130c531, 0xffff0355}, + {0x8130c532, 0xffff0356}, + {0x8130c533, 0xffff0357}, + {0x8130c534, 0xffff0358}, + {0x8130c535, 0xffff0359}, + {0x8130c536, 0xffff035a}, + {0x8130c537, 0xffff035b}, + {0x8130c538, 0xffff035c}, + {0x8130c539, 0xffff035d}, + {0x8130c630, 0xffff035e}, + {0x8130c631, 0xffff035f}, + {0x8130c634, 0xffff0362}, + {0x8130c635, 0xffff0363}, + {0x8130c636, 0xffff0364}, + {0x8130c637, 0xffff0365}, + {0x8130c638, 0xffff0366}, + {0x8130c639, 0xffff0367}, + {0x8130c730, 0xffff0368}, + {0x8130c731, 0xffff0369}, + {0x8130c732, 0xffff036a}, + {0x8130c733, 0xffff036b}, + {0x8130c734, 0xffff036c}, + {0x8130c735, 0xffff036d}, + {0x8130c736, 0xffff036e}, + {0x8130c737, 0xffff036f}, + {0x8130c738, 0xffff0370}, + {0x8130c739, 0xffff0371}, + {0x8130c830, 0xffff0372}, + {0x8130c831, 0xffff0373}, + {0x8130c832, 0xffff0374}, + {0x8130c833, 0xffff0375}, + {0x8130c834, 0xffff0376}, + {0x8130c835, 0xffff0377}, + {0x8130c836, 0xffff0378}, + {0x8130c837, 0xffff0379}, + {0x8130c838, 0xffff037a}, + {0x8130c839, 0xffff037b}, + {0x8130c930, 0xffff037c}, + {0x8130c931, 0xffff037d}, + {0x8130c932, 0xffff037e}, + {0x8130c933, 0xffff037f}, + {0x8130c934, 0xffff0380}, + {0x8130c935, 0xffff0381}, + {0x8130c936, 0xffff0382}, + {0x8130c937, 0xffff0383}, + {0x8130c938, 0xffff0384}, + {0x8130ca30, 0x028b}, + {0x8130ca31, 0xffff0387}, + {0x8130ca32, 0x028f}, + {0x8130ca33, 0x0293}, + {0x8130ca34, 0x0295}, + {0x8130ca35, 0xffff038b}, + {0x8130ca36, 0x029c}, + {0x8130ca37, 0xffff038d}, + {0x8130ca38, 0x02a2}, + {0x8130ca39, 0x02a6}, + {0x8130cb30, 0x0295}, + {0x8130cb31, 0xffff03a2}, + {0x8130cb32, 0x0295}, + {0x8130cb33, 0x02a2}, + {0x8130cb34, 0x028b}, + {0x8130cb35, 0x028f}, + {0x8130cb36, 0x0293}, + {0x8130cb37, 0x0295}, + {0x8130cb38, 0x02a2}, + {0x8130cb39, 0x02a0}, + {0x8130cc30, 0x0295}, + {0x8130cc31, 0x02a2}, + {0x8130cc32, 0x029c}, + {0x8130cc33, 0x02a2}, + {0x8130cc34, 0x02a6}, + {0x8130cc35, 0xffff03cf}, + {0x8130cc36, 0x028c}, + {0x8130cc37, 0x0294}, + {0x8130cc38, 0x02a2}, + {0x8130cc39, 0x02a2}, + {0x8130cd30, 0x02a2}, + {0x8130cd31, 0x02a3}, + {0x8130cd32, 0x029d}, + {0x8130cd33, 0xffff03d7}, + {0x8130cd34, 0xffff03d8}, + {0x8130cd35, 0xffff03d9}, + {0x8130cd36, 0x0291}, + {0x8130cd37, 0x0291}, + {0x8130cd38, 0x0290}, + {0x8130cd39, 0x0290}, + {0x8130ce30, 0x029e}, + {0x8130ce31, 0x029e}, + {0x8130ce32, 0x02a7}, + {0x8130ce33, 0x02a7}, + {0x8130ce34, 0x02da}, + {0x8130ce35, 0x02da}, + {0x8130ce36, 0x02db}, + {0x8130ce37, 0x02db}, + {0x8130ce38, 0x02dc}, + {0x8130ce39, 0x02dc}, + {0x8130cf30, 0x02dd}, + {0x8130cf31, 0x02dd}, + {0x8130cf32, 0x02de}, + {0x8130cf33, 0x02de}, + {0x8130cf34, 0x02df}, + {0x8130cf35, 0x02df}, + {0x8130cf36, 0x02e0}, + {0x8130cf37, 0x02e0}, + {0x8130cf38, 0x0297}, + {0x8130cf39, 0x029f}, + {0x8130d030, 0x02a0}, + {0x8130d031, 0x0296}, + {0x8130d032, 0xffff03f4}, + {0x8130d033, 0xffff03f5}, + {0x8130d034, 0xffff03f6}, + {0x8130d035, 0xffff03f7}, + {0x8130d036, 0xffff03f8}, + {0x8130d037, 0xffff03f9}, + {0x8130d038, 0xffff03fa}, + {0x8130d039, 0xffff03fb}, + {0x8130d130, 0xffff03fc}, + {0x8130d131, 0xffff03fd}, + {0x8130d132, 0xffff03fe}, + {0x8130d133, 0xffff03ff}, + {0x8130d134, 0x0322}, + {0x8130d135, 0x031f}, + {0x8130d136, 0x0320}, + {0x8130d137, 0x0324}, + {0x8130d138, 0x032a}, + {0x8130d139, 0x032e}, + {0x8130d230, 0x032f}, + {0x8130d231, 0x0331}, + {0x8130d232, 0x0339}, + {0x8130d233, 0x033f}, + {0x8130d234, 0x034c}, + {0x8130d235, 0x034d}, + {0x8130d236, 0x032c}, + {0x8130d237, 0x034f}, + {0x8130d238, 0x0366}, + {0x8130d239, 0x0322}, + {0x8130d330, 0x031f}, + {0x8130d331, 0x0320}, + {0x8130d332, 0x0324}, + {0x8130d333, 0x032a}, + {0x8130d334, 0x032e}, + {0x8130d335, 0x032f}, + {0x8130d336, 0x0331}, + {0x8130d337, 0x0339}, + {0x8130d338, 0x033f}, + {0x8130d339, 0x034c}, + {0x8130d430, 0x034d}, + {0x8130d431, 0x032c}, + {0x8130d432, 0x034f}, + {0x8130d433, 0x0366}, + {0x8130d434, 0x0359}, + {0x8130d435, 0x0359}, + {0x8130d436, 0x036d}, + {0x8130d437, 0x036d}, + {0x8130d438, 0x0371}, + {0x8130d439, 0x0371}, + {0x8130d530, 0x0372}, + {0x8130d531, 0x0372}, + {0x8130d532, 0x0374}, + {0x8130d533, 0x0374}, + {0x8130d534, 0x0373}, + {0x8130d535, 0x0373}, + {0x8130d536, 0x0375}, + {0x8130d537, 0x0375}, + {0x8130d538, 0x0376}, + {0x8130d539, 0x0376}, + {0x8130d630, 0x0377}, + {0x8130d631, 0x0377}, + {0x8130d632, 0x0378}, + {0x8130d633, 0x0378}, + {0x8130d634, 0x0379}, + {0x8130d635, 0x0379}, + {0x8130d636, 0x037a}, + {0x8130d637, 0x037a}, + {0x8130d638, 0x0354}, + {0x8130d639, 0x0354}, + {0x8130d730, 0x035c}, + {0x8130d731, 0x035c}, + {0x8130d732, 0x035b}, + {0x8130d733, 0x035b}, + {0x8130d734, 0x035a}, + {0x8130d735, 0x035a}, + {0x8130d736, 0x0346}, + {0x8130d737, 0x0346}, + {0x8130d738, 0xffff0482}, + {0x8130d833, 0xffff0487}, + {0x8130d834, 0xffff0488}, + {0x8130d835, 0xffff0489}, + {0x8130d836, 0xffff048a}, + {0x8130d837, 0xffff048b}, + {0x8130d838, 0xffff048c}, + {0x8130d839, 0xffff048d}, + {0x8130d930, 0xffff048e}, + {0x8130d931, 0xffff048f}, + {0x8130d932, 0x031b}, + {0x8130d933, 0x031b}, + {0x8130d934, 0x031c}, + {0x8130d935, 0x031c}, + {0x8130d936, 0x031d}, + {0x8130d937, 0x031d}, + {0x8130d938, 0x0327}, + {0x8130d939, 0x0327}, + {0x8130da30, 0x0321}, + {0x8130da31, 0x0321}, + {0x8130da32, 0x0333}, + {0x8130da33, 0x0333}, + {0x8130da34, 0x0337}, + {0x8130da35, 0x0337}, + {0x8130da36, 0x0336}, + {0x8130da37, 0x0336}, + {0x8130da38, 0x0335}, + {0x8130da39, 0x0335}, + {0x8130db30, 0x033c}, + {0x8130db31, 0x033c}, + {0x8130db32, 0x033e}, + {0x8130db33, 0x033e}, + {0x8130db34, 0x0345}, + {0x8130db35, 0x0345}, + {0x8130db36, 0x037b}, + {0x8130db37, 0x037b}, + {0x8130db38, 0x0349}, + {0x8130db39, 0x0349}, + {0x8130dc30, 0x034b}, + {0x8130dc31, 0x034b}, + {0x8130dc32, 0x0352}, + {0x8130dc33, 0x0352}, + {0x8130dc34, 0x0353}, + {0x8130dc35, 0x0353}, + {0x8130dc36, 0x0357}, + {0x8130dc37, 0x0357}, + {0x8130dc38, 0x035e}, + {0x8130dc39, 0x035e}, + {0x8130dd30, 0x0361}, + {0x8130dd31, 0x0361}, + {0x8130dd32, 0x0363}, + {0x8130dd33, 0x0363}, + {0x8130dd34, 0x0358}, + {0x8130dd35, 0x0358}, + {0x8130dd36, 0x0364}, + {0x8130dd37, 0x0364}, + {0x8130dd38, 0x0365}, + {0x8130dd39, 0x0365}, + {0x8130de30, 0x037c}, + {0x8130de31, 0x0325}, + {0x8130de32, 0x0325}, + {0x8130de33, 0x0334}, + {0x8130de34, 0x0334}, + {0x8130de35, 0xffff04c5}, + {0x8130de36, 0xffff04c6}, + {0x8130de37, 0x033d}, + {0x8130de38, 0x033d}, + {0x8130de39, 0xffff04c9}, + {0x8130df30, 0xffff04ca}, + {0x8130df31, 0x0362}, + {0x8130df32, 0x0362}, + {0x8130df33, 0xffff04cd}, + {0x8130df34, 0xffff04ce}, + {0x8130df35, 0xffff04cf}, + {0x8130df36, 0x0314}, + {0x8130df37, 0x0314}, + {0x8130df38, 0x0315}, + {0x8130df39, 0x0315}, + {0x8130e030, 0x0318}, + {0x8130e031, 0x0318}, + {0x8130e032, 0x0323}, + {0x8130e033, 0x0323}, + {0x8130e034, 0x0316}, + {0x8130e035, 0x0316}, + {0x8130e036, 0x0317}, + {0x8130e037, 0x0317}, + {0x8130e038, 0x0326}, + {0x8130e039, 0x0326}, + {0x8130e130, 0x0329}, + {0x8130e131, 0x0329}, + {0x8130e132, 0x032b}, + {0x8130e133, 0x032b}, + {0x8130e134, 0x032c}, + {0x8130e135, 0x032c}, + {0x8130e136, 0x032d}, + {0x8130e137, 0x032d}, + {0x8130e138, 0x0341}, + {0x8130e139, 0x0341}, + {0x8130e230, 0x0342}, + {0x8130e231, 0x0342}, + {0x8130e232, 0x0343}, + {0x8130e233, 0x0343}, + {0x8130e234, 0x036e}, + {0x8130e235, 0x036e}, + {0x8130e236, 0x034e}, + {0x8130e237, 0x034e}, + {0x8130e238, 0x0350}, + {0x8130e239, 0x0350}, + {0x8130e330, 0x0351}, + {0x8130e331, 0x0351}, + {0x8130e332, 0x0360}, + {0x8130e333, 0x0360}, + {0x8130e334, 0xffff04f6}, + {0x8130e335, 0xffff04f7}, + {0x8130e336, 0x036b}, + {0x8130e337, 0x036b}, + {0x8130e338, 0xffff04fa}, + {0x8130e339, 0xffff04fb}, + {0x8130e430, 0xffff04fc}, + {0x8130e431, 0xffff04fd}, + {0x8130e432, 0xffff04fe}, + {0x8130e433, 0xffff04ff}, + {0x8130e434, 0xffff0500}, + {0x8130e435, 0xffff0501}, + {0x8130e436, 0xffff0502}, + {0x8130e437, 0xffff0503}, + {0x8130e438, 0xffff0504}, + {0x8130e439, 0xffff0505}, + {0x8130e530, 0xffff0506}, + {0x8130e531, 0xffff0507}, + {0x8130e532, 0xffff0508}, + {0x8130e533, 0xffff0509}, + {0x8130e534, 0xffff050a}, + {0x8130e535, 0xffff050b}, + {0x8130e536, 0xffff050c}, + {0x8130e537, 0xffff050d}, + {0x8130e538, 0xffff050e}, + {0x8130e539, 0xffff050f}, + {0x8130e630, 0xffff0510}, + {0x8130e631, 0xffff0511}, + {0x8130e632, 0xffff0512}, + {0x8130e633, 0xffff0513}, + {0x8130e634, 0xffff0514}, + {0x8130e635, 0xffff0515}, + {0x8130e636, 0xffff0516}, + {0x8130e637, 0xffff0517}, + {0x8130e638, 0xffff0518}, + {0x8130e639, 0xffff0519}, + {0x8130e730, 0xffff051a}, + {0x8130e731, 0xffff051b}, + {0x8130e732, 0xffff051c}, + {0x8130e733, 0xffff051d}, + {0x8130e734, 0xffff051e}, + {0x8130e735, 0xffff051f}, + {0x8130e736, 0xffff0520}, + {0x8130e737, 0xffff0521}, + {0x8130e738, 0xffff0522}, + {0x8130e739, 0xffff0523}, + {0x8130e830, 0xffff0524}, + {0x8130e831, 0xffff0525}, + {0x8130e832, 0xffff0526}, + {0x8130e833, 0xffff0527}, + {0x8130e834, 0xffff0528}, + {0x8130e835, 0xffff0529}, + {0x8130e836, 0xffff052a}, + {0x8130e837, 0xffff052b}, + {0x8130e838, 0xffff052c}, + {0x8130e839, 0xffff052d}, + {0x8130e930, 0xffff052e}, + {0x8130e931, 0xffff052f}, + {0x8130e932, 0xffff0530}, + {0x8130e933, 0x0408}, + {0x8130e934, 0x0409}, + {0x8130e935, 0x040a}, + {0x8130e936, 0x040b}, + {0x8130e937, 0x040c}, + {0x8130e938, 0x040d}, + {0x8130e939, 0x040e}, + {0x8130ea30, 0x040f}, + {0x8130ea31, 0x0410}, + {0x8130ea32, 0x0411}, + {0x8130ea33, 0x0412}, + {0x8130ea34, 0x0413}, + {0x8130ea35, 0x0414}, + {0x8130ea36, 0x0415}, + {0x8130ea37, 0x0416}, + {0x8130ea38, 0x0417}, + {0x8130ea39, 0x0418}, + {0x8130eb30, 0x0419}, + {0x8130eb31, 0x041a}, + {0x8130eb32, 0x041b}, + {0x8130eb33, 0x041c}, + {0x8130eb34, 0x041d}, + {0x8130eb35, 0x041e}, + {0x8130eb36, 0x041f}, + {0x8130eb37, 0x0420}, + {0x8130eb38, 0x0421}, + {0x8130eb39, 0x0422}, + {0x8130ec30, 0x0423}, + {0x8130ec31, 0x0424}, + {0x8130ec32, 0x0425}, + {0x8130ec33, 0x0426}, + {0x8130ec34, 0x0427}, + {0x8130ec35, 0x0428}, + {0x8130ec36, 0x0429}, + {0x8130ec37, 0x042a}, + {0x8130ec38, 0x042b}, + {0x8130ec39, 0x042c}, + {0x8130ed30, 0x042d}, + {0x8130ed31, 0xffff0557}, + {0x8130ed32, 0xffff0558}, + {0x8130ed33, 0x042e}, + {0x8130ed34, 0xffff055a}, + {0x8130ed35, 0xffff055b}, + {0x8130ed36, 0xffff055c}, + {0x8130ed37, 0xffff055d}, + {0x8130ed38, 0xffff055e}, + {0x8130ed39, 0xffff055f}, + {0x8130ee30, 0xffff0560}, + {0x8130ee31, 0x0408}, + {0x8130ee32, 0x0409}, + {0x8130ee33, 0x040a}, + {0x8130ee34, 0x040b}, + {0x8130ee35, 0x040c}, + {0x8130ee36, 0x040d}, + {0x8130ee37, 0x040e}, + {0x8130ee38, 0x040f}, + {0x8130ee39, 0x0410}, + {0x8130ef30, 0x0411}, + {0x8130ef31, 0x0412}, + {0x8130ef32, 0x0413}, + {0x8130ef33, 0x0414}, + {0x8130ef34, 0x0415}, + {0x8130ef35, 0x0416}, + {0x8130ef36, 0x0417}, + {0x8130ef37, 0x0418}, + {0x8130ef38, 0x0419}, + {0x8130ef39, 0x041a}, + {0x8130f030, 0x041b}, + {0x8130f031, 0x041c}, + {0x8130f032, 0x041d}, + {0x8130f033, 0x041e}, + {0x8130f034, 0x041f}, + {0x8130f035, 0x0420}, + {0x8130f036, 0x0421}, + {0x8130f037, 0x0422}, + {0x8130f038, 0x0423}, + {0x8130f039, 0x0424}, + {0x8130f130, 0x0425}, + {0x8130f131, 0x0426}, + {0x8130f132, 0x0427}, + {0x8130f133, 0x0428}, + {0x8130f134, 0x0429}, + {0x8130f135, 0x042a}, + {0x8130f136, 0x042b}, + {0x8130f137, 0x042c}, + {0x8130f138, 0x042d}, + {0x8130f139, 0x040c0429}, + {0x8130f230, 0xffff0588}, + {0x8130f231, 0xffff0589}, + {0x8130f232, 0xffff058a}, + {0x8130f233, 0xffff058b}, + {0x8130f234, 0xffff058c}, + {0x8130f235, 0xffff058d}, + {0x8130f236, 0xffff058e}, + {0x8130f237, 0xffff058f}, + {0x8130f238, 0xffff0590}, + {0x8130f239, 0xffff0591}, + {0x8130f330, 0xffff0592}, + {0x8130f331, 0xffff0593}, + {0x8130f332, 0xffff0594}, + {0x8130f333, 0xffff0595}, + {0x8130f334, 0xffff0596}, + {0x8130f335, 0xffff0597}, + {0x8130f336, 0xffff0598}, + {0x8130f337, 0xffff0599}, + {0x8130f338, 0xffff059a}, + {0x8130f339, 0xffff059b}, + {0x8130f430, 0xffff059c}, + {0x8130f431, 0xffff059d}, + {0x8130f432, 0xffff059e}, + {0x8130f433, 0xffff059f}, + {0x8130f434, 0xffff05a0}, + {0x8130f435, 0xffff05a1}, + {0x8130f436, 0xffff05a2}, + {0x8130f437, 0xffff05a3}, + {0x8130f438, 0xffff05a4}, + {0x8130f439, 0xffff05a5}, + {0x8130f530, 0xffff05a6}, + {0x8130f531, 0xffff05a7}, + {0x8130f532, 0xffff05a8}, + {0x8130f533, 0xffff05a9}, + {0x8130f534, 0xffff05aa}, + {0x8130f535, 0xffff05ab}, + {0x8130f536, 0xffff05ac}, + {0x8130f537, 0xffff05ad}, + {0x8130f538, 0xffff05ae}, + {0x8130f539, 0xffff05af}, + {0x8130f730, 0xffff05ba}, + {0x8130f733, 0xffff05bd}, + {0x8130f734, 0xffff05be}, + {0x8130f736, 0xffff05c0}, + {0x8130f739, 0xffff05c3}, + {0x8130f830, 0xffff05c4}, + {0x8130f831, 0xffff05c5}, + {0x8130f832, 0xffff05c6}, + {0x8130f833, 0xffff05c7}, + {0x8130f834, 0xffff05c8}, + {0x8130f835, 0xffff05c9}, + {0x8130f836, 0xffff05ca}, + {0x8130f837, 0xffff05cb}, + {0x8130f838, 0xffff05cc}, + {0x8130f839, 0xffff05cd}, + {0x8130f930, 0xffff05ce}, + {0x8130f931, 0xffff05cf}, + {0x8130f932, 0xffff05d0}, + {0x8130f933, 0xffff05d1}, + {0x8130f934, 0xffff05d2}, + {0x8130f935, 0xffff05d3}, + {0x8130f936, 0xffff05d4}, + {0x8130f937, 0xffff05d5}, + {0x8130f938, 0xffff05d6}, + {0x8130f939, 0xffff05d7}, + {0x8130fa30, 0xffff05d8}, + {0x8130fa31, 0xffff05d9}, + {0x8130fa32, 0xffff05da}, + {0x8130fa33, 0xffff05db}, + {0x8130fa34, 0xffff05dc}, + {0x8130fa35, 0xffff05dd}, + {0x8130fa36, 0xffff05de}, + {0x8130fa37, 0xffff05df}, + {0x8130fa38, 0xffff05e0}, + {0x8130fa39, 0xffff05e1}, + {0x8130fb30, 0xffff05e2}, + {0x8130fb31, 0xffff05e3}, + {0x8130fb32, 0xffff05e4}, + {0x8130fb33, 0xffff05e5}, + {0x8130fb34, 0xffff05e6}, + {0x8130fb35, 0xffff05e7}, + {0x8130fb36, 0xffff05e8}, + {0x8130fb37, 0xffff05e9}, + {0x8130fb38, 0xffff05ea}, + {0x8130fb39, 0xffff05eb}, + {0x8130fc30, 0xffff05ec}, + {0x8130fc31, 0xffff05ed}, + {0x8130fc32, 0xffff05ee}, + {0x8130fc33, 0xffff05ef}, + {0x8130fc34, 0xffff05f0}, + {0x8130fc35, 0xffff05f1}, + {0x8130fc36, 0xffff05f2}, + {0x8130fc37, 0xffff05f3}, + {0x8130fc38, 0xffff05f4}, + {0x8130fc39, 0xffff05f5}, + {0x8130fd30, 0xffff05f6}, + {0x8130fd31, 0xffff05f7}, + {0x8130fd32, 0xffff05f8}, + {0x8130fd33, 0xffff05f9}, + {0x8130fd34, 0xffff05fa}, + {0x8130fd35, 0xffff05fb}, + {0x8130fd36, 0xffff05fc}, + {0x8130fd37, 0xffff05fd}, + {0x8130fd38, 0xffff05fe}, + {0x8130fd39, 0xffff05ff}, + {0x8130fe30, 0xffff0600}, + {0x8130fe31, 0xffff0601}, + {0x8130fe32, 0xffff0602}, + {0x8130fe33, 0xffff0603}, + {0x8130fe34, 0xffff0604}, + {0x8130fe35, 0xffff0605}, + {0x8130fe36, 0xffff0606}, + {0x8130fe37, 0xffff0607}, + {0x8130fe38, 0xffff0608}, + {0x8130fe39, 0xffff0609}, + {0x81318130, 0xffff060a}, + {0x81318131, 0xffff060b}, + {0x81318132, 0xffff060c}, + {0x81318133, 0xffff060d}, + {0x81318134, 0xffff060e}, + {0x81318135, 0xffff060f}, + {0x81318136, 0xffff0610}, + {0x81318137, 0xffff0611}, + {0x81318138, 0xffff0612}, + {0x81318139, 0xffff0613}, + {0x81318230, 0xffff0614}, + {0x81318231, 0xffff0615}, + {0x81318232, 0xffff0616}, + {0x81318233, 0xffff0617}, + {0x81318234, 0xffff0618}, + {0x81318235, 0xffff0619}, + {0x81318236, 0xffff061a}, + {0x81318237, 0xffff061b}, + {0x81318238, 0xffff061c}, + {0x81318239, 0xffff061d}, + {0x81318330, 0xffff061e}, + {0x81318331, 0xffff061f}, + {0x81318332, 0xffff0620}, + {0x81318333, 0xffff0621}, + {0x81318339, 0xffff0627}, + {0x81318430, 0xffff0628}, + {0x81318431, 0xffff0629}, + {0x81318432, 0xffff062a}, + {0x81318433, 0xffff062b}, + {0x81318434, 0xffff062c}, + {0x81318435, 0xffff062d}, + {0x81318436, 0xffff062e}, + {0x81318437, 0xffff062f}, + {0x81318438, 0xffff0630}, + {0x81318439, 0xffff0631}, + {0x81318530, 0xffff0632}, + {0x81318531, 0xffff0633}, + {0x81318532, 0xffff0634}, + {0x81318533, 0xffff0635}, + {0x81318534, 0xffff0636}, + {0x81318535, 0xffff0637}, + {0x81318536, 0xffff0638}, + {0x81318537, 0xffff0639}, + {0x81318538, 0xffff063a}, + {0x81318539, 0xffff063b}, + {0x81318630, 0xffff063c}, + {0x81318631, 0xffff063d}, + {0x81318632, 0xffff063e}, + {0x81318633, 0xffff063f}, + {0x81318634, 0xffff0640}, + {0x81318635, 0xffff0641}, + {0x81318636, 0xffff0642}, + {0x81318637, 0xffff0643}, + {0x81318638, 0xffff0644}, + {0x81318639, 0xffff0645}, + {0x81318730, 0xffff0646}, + {0x81318731, 0xffff0647}, + {0x81318732, 0xffff0648}, + {0x81318733, 0xffff0649}, + {0x81318734, 0xffff064a}, + {0x81318833, 0xffff0653}, + {0x81318834, 0xffff0654}, + {0x81318835, 0xffff0655}, + {0x81318836, 0xffff0656}, + {0x81318837, 0xffff0657}, + {0x81318838, 0xffff0658}, + {0x81318839, 0xffff0659}, + {0x81318930, 0xffff065a}, + {0x81318931, 0xffff065b}, + {0x81318932, 0xffff065c}, + {0x81318933, 0xffff065d}, + {0x81318934, 0xffff065e}, + {0x81318935, 0xffff065f}, + {0x81318936, 0x0179}, + {0x81318937, 0x017a}, + {0x81318938, 0x017b}, + {0x81318939, 0x017c}, + {0x81318a30, 0x017d}, + {0x81318a31, 0x017e}, + {0x81318a32, 0x017f}, + {0x81318a33, 0x0180}, + {0x81318a34, 0x0181}, + {0x81318a35, 0x0182}, + {0x81318a36, 0xffff066a}, + {0x81318a37, 0xffff066b}, + {0x81318a38, 0xffff066c}, + {0x81318a39, 0xffff066d}, + {0x81318b30, 0xffff066e}, + {0x81318b31, 0xffff066f}, + {0x81318b33, 0xffff0671}, + {0x81318b34, 0xffff0672}, + {0x81318b35, 0xffff0673}, + {0x81318b36, 0xffff0674}, + {0x81318b37, 0xffff0675}, + {0x81318b38, 0xffff0676}, + {0x81318b39, 0xffff0677}, + {0x81318c30, 0xffff0678}, + {0x81318c31, 0xffff0679}, + {0x81318c32, 0xffff067a}, + {0x81318c33, 0xffff067b}, + {0x81318c34, 0xffff067c}, + {0x81318c35, 0xffff067d}, + {0x81318c36, 0xffff067e}, + {0x81318c37, 0xffff067f}, + {0x81318c38, 0xffff0680}, + {0x81318c39, 0xffff0681}, + {0x81318d30, 0xffff0682}, + {0x81318d31, 0xffff0683}, + {0x81318d32, 0xffff0684}, + {0x81318d33, 0xffff0685}, + {0x81318d34, 0xffff0686}, + {0x81318d35, 0xffff0687}, + {0x81318d36, 0xffff0688}, + {0x81318d37, 0xffff0689}, + {0x81318d38, 0xffff068a}, + {0x81318d39, 0xffff068b}, + {0x81318e30, 0xffff068c}, + {0x81318e31, 0xffff068d}, + {0x81318e32, 0xffff068e}, + {0x81318e33, 0xffff068f}, + {0x81318e34, 0xffff0690}, + {0x81318e35, 0xffff0691}, + {0x81318e36, 0xffff0692}, + {0x81318e37, 0xffff0693}, + {0x81318e38, 0xffff0694}, + {0x81318e39, 0xffff0695}, + {0x81318f30, 0xffff0696}, + {0x81318f31, 0xffff0697}, + {0x81318f32, 0xffff0698}, + {0x81318f33, 0xffff0699}, + {0x81318f34, 0xffff069a}, + {0x81318f35, 0xffff069b}, + {0x81318f36, 0xffff069c}, + {0x81318f37, 0xffff069d}, + {0x81318f38, 0xffff069e}, + {0x81318f39, 0xffff069f}, + {0x81319030, 0xffff06a0}, + {0x81319031, 0xffff06a1}, + {0x81319032, 0xffff06a2}, + {0x81319033, 0xffff06a3}, + {0x81319034, 0xffff06a4}, + {0x81319035, 0xffff06a5}, + {0x81319036, 0xffff06a6}, + {0x81319037, 0xffff06a7}, + {0x81319038, 0xffff06a8}, + {0x81319039, 0xffff06a9}, + {0x81319130, 0xffff06aa}, + {0x81319131, 0xffff06ab}, + {0x81319132, 0xffff06ac}, + {0x81319133, 0xffff06ad}, + {0x81319134, 0xffff06ae}, + {0x81319135, 0xffff06af}, + {0x81319136, 0xffff06b0}, + {0x81319137, 0xffff06b1}, + {0x81319138, 0xffff06b2}, + {0x81319139, 0xffff06b3}, + {0x81319230, 0xffff06b4}, + {0x81319231, 0xffff06b5}, + {0x81319232, 0xffff06b6}, + {0x81319233, 0xffff06b7}, + {0x81319234, 0xffff06b8}, + {0x81319235, 0xffff06b9}, + {0x81319236, 0xffff06ba}, + {0x81319237, 0xffff06bb}, + {0x81319238, 0xffff06bc}, + {0x81319239, 0xffff06bd}, + {0x81319330, 0xffff06be}, + {0x81319331, 0xffff06bf}, + {0x81319333, 0xffff06c1}, + {0x81319335, 0xffff06c3}, + {0x81319336, 0xffff06c4}, + {0x81319337, 0xffff06c5}, + {0x81319338, 0xffff06c6}, + {0x81319339, 0xffff06c7}, + {0x81319430, 0xffff06c8}, + {0x81319431, 0xffff06c9}, + {0x81319432, 0xffff06ca}, + {0x81319433, 0xffff06cb}, + {0x81319434, 0xffff06cc}, + {0x81319435, 0xffff06cd}, + {0x81319436, 0xffff06ce}, + {0x81319437, 0xffff06cf}, + {0x81319438, 0xffff06d0}, + {0x81319439, 0xffff06d1}, + {0x81319530, 0xffff06d2}, + {0x81319532, 0xffff06d4}, + {0x81319533, 0xffff06d5}, + {0x81319631, 0xffff06dd}, + {0x81319632, 0xffff06de}, + {0x81319633, 0xffff06df}, + {0x81319634, 0xffff06e0}, + {0x81319639, 0xffff06e5}, + {0x81319730, 0xffff06e6}, + {0x81319733, 0xffff06e9}, + {0x81319734, 0xffff06ea}, + {0x81319735, 0xffff06eb}, + {0x81319736, 0xffff06ec}, + {0x81319738, 0xffff06ee}, + {0x81319739, 0xffff06ef}, + {0x81319830, 0x0179}, + {0x81319831, 0x017a}, + {0x81319832, 0x017b}, + {0x81319833, 0x017c}, + {0x81319834, 0x017d}, + {0x81319835, 0x017e}, + {0x81319836, 0x017f}, + {0x81319837, 0x0180}, + {0x81319838, 0x0181}, + {0x81319839, 0x0182}, + {0x81319930, 0xffff06fa}, + {0x81319931, 0xffff06fb}, + {0x81319932, 0xffff06fc}, + {0x81319933, 0xffff06fd}, + {0x81319934, 0xffff06fe}, + {0x81319935, 0xffff06ff}, + {0x81319936, 0xffff0700}, + {0x81319937, 0xffff0701}, + {0x81319938, 0xffff0702}, + {0x81319939, 0xffff0703}, + {0x81319a30, 0xffff0704}, + {0x81319a31, 0xffff0705}, + {0x81319a32, 0xffff0706}, + {0x81319a33, 0xffff0707}, + {0x81319a34, 0xffff0708}, + {0x81319a35, 0xffff0709}, + {0x81319a36, 0xffff070a}, + {0x81319a37, 0xffff070b}, + {0x81319a38, 0xffff070c}, + {0x81319a39, 0xffff070d}, + {0x81319b30, 0xffff070e}, + {0x81319b31, 0xffff070f}, + {0x81319b32, 0xffff0710}, + {0x81319b33, 0xffff0711}, + {0x81319b34, 0xffff0712}, + {0x81319b35, 0xffff0713}, + {0x81319b36, 0xffff0714}, + {0x81319b37, 0xffff0715}, + {0x81319b38, 0xffff0716}, + {0x81319b39, 0xffff0717}, + {0x81319c30, 0xffff0718}, + {0x81319c31, 0xffff0719}, + {0x81319c32, 0xffff071a}, + {0x81319c33, 0xffff071b}, + {0x81319c34, 0xffff071c}, + {0x81319c35, 0xffff071d}, + {0x81319c36, 0xffff071e}, + {0x81319c37, 0xffff071f}, + {0x81319c38, 0xffff0720}, + {0x81319c39, 0xffff0721}, + {0x81319d30, 0xffff0722}, + {0x81319d31, 0xffff0723}, + {0x81319d32, 0xffff0724}, + {0x81319d33, 0xffff0725}, + {0x81319d34, 0xffff0726}, + {0x81319d35, 0xffff0727}, + {0x81319d36, 0xffff0728}, + {0x81319d37, 0xffff0729}, + {0x81319d38, 0xffff072a}, + {0x81319d39, 0xffff072b}, + {0x81319e30, 0xffff072c}, + {0x81319e31, 0xffff072d}, + {0x81319e32, 0xffff072e}, + {0x81319e33, 0xffff072f}, + {0x81319e34, 0xffff0730}, + {0x81319e35, 0xffff0731}, + {0x81319e36, 0xffff0732}, + {0x81319e37, 0xffff0733}, + {0x81319e38, 0xffff0734}, + {0x81319e39, 0xffff0735}, + {0x81319f30, 0xffff0736}, + {0x81319f31, 0xffff0737}, + {0x81319f32, 0xffff0738}, + {0x81319f33, 0xffff0739}, + {0x81319f34, 0xffff073a}, + {0x81319f35, 0xffff073b}, + {0x81319f36, 0xffff073c}, + {0x81319f37, 0xffff073d}, + {0x81319f38, 0xffff073e}, + {0x81319f39, 0xffff073f}, + {0x8131a030, 0xffff0740}, + {0x8131a031, 0xffff0741}, + {0x8131a032, 0xffff0742}, + {0x8131a033, 0xffff0743}, + {0x8131a034, 0xffff0744}, + {0x8131a035, 0xffff0745}, + {0x8131a036, 0xffff0746}, + {0x8131a037, 0xffff0747}, + {0x8131a038, 0xffff0748}, + {0x8131a039, 0xffff0749}, + {0x8131a130, 0xffff074a}, + {0x8131a131, 0xffff074b}, + {0x8131a132, 0xffff074c}, + {0x8131a133, 0xffff074d}, + {0x8131a134, 0xffff074e}, + {0x8131a135, 0xffff074f}, + {0x8131a136, 0xffff0750}, + {0x8131a137, 0xffff0751}, + {0x8131a138, 0xffff0752}, + {0x8131a139, 0xffff0753}, + {0x8131a230, 0xffff0754}, + {0x8131a231, 0xffff0755}, + {0x8131a232, 0xffff0756}, + {0x8131a233, 0xffff0757}, + {0x8131a234, 0xffff0758}, + {0x8131a235, 0xffff0759}, + {0x8131a236, 0xffff075a}, + {0x8131a237, 0xffff075b}, + {0x8131a238, 0xffff075c}, + {0x8131a239, 0xffff075d}, + {0x8131a330, 0xffff075e}, + {0x8131a331, 0xffff075f}, + {0x8131a332, 0xffff0760}, + {0x8131a333, 0xffff0761}, + {0x8131a334, 0xffff0762}, + {0x8131a335, 0xffff0763}, + {0x8131a336, 0xffff0764}, + {0x8131a337, 0xffff0765}, + {0x8131a338, 0xffff0766}, + {0x8131a339, 0xffff0767}, + {0x8131a430, 0xffff0768}, + {0x8131a431, 0xffff0769}, + {0x8131a432, 0xffff076a}, + {0x8131a433, 0xffff076b}, + {0x8131a434, 0xffff076c}, + {0x8131a435, 0xffff076d}, + {0x8131a436, 0xffff076e}, + {0x8131a437, 0xffff076f}, + {0x8131a438, 0xffff0770}, + {0x8131a439, 0xffff0771}, + {0x8131a530, 0xffff0772}, + {0x8131a531, 0xffff0773}, + {0x8131a532, 0xffff0774}, + {0x8131a533, 0xffff0775}, + {0x8131a534, 0xffff0776}, + {0x8131a535, 0xffff0777}, + {0x8131a536, 0xffff0778}, + {0x8131a537, 0xffff0779}, + {0x8131a538, 0xffff077a}, + {0x8131a539, 0xffff077b}, + {0x8131a630, 0xffff077c}, + {0x8131a631, 0xffff077d}, + {0x8131a632, 0xffff077e}, + {0x8131a633, 0xffff077f}, + {0x8131a634, 0xffff0780}, + {0x8131a635, 0xffff0781}, + {0x8131a636, 0xffff0782}, + {0x8131a637, 0xffff0783}, + {0x8131a638, 0xffff0784}, + {0x8131a639, 0xffff0785}, + {0x8131a730, 0xffff0786}, + {0x8131a731, 0xffff0787}, + {0x8131a732, 0xffff0788}, + {0x8131a733, 0xffff0789}, + {0x8131a734, 0xffff078a}, + {0x8131a735, 0xffff078b}, + {0x8131a736, 0xffff078c}, + {0x8131a737, 0xffff078d}, + {0x8131a738, 0xffff078e}, + {0x8131a739, 0xffff078f}, + {0x8131a830, 0xffff0790}, + {0x8131a831, 0xffff0791}, + {0x8131a832, 0xffff0792}, + {0x8131a833, 0xffff0793}, + {0x8131a834, 0xffff0794}, + {0x8131a835, 0xffff0795}, + {0x8131a836, 0xffff0796}, + {0x8131a837, 0xffff0797}, + {0x8131a838, 0xffff0798}, + {0x8131a839, 0xffff0799}, + {0x8131a930, 0xffff079a}, + {0x8131a931, 0xffff079b}, + {0x8131a932, 0xffff079c}, + {0x8131a933, 0xffff079d}, + {0x8131a934, 0xffff079e}, + {0x8131a935, 0xffff079f}, + {0x8131a936, 0xffff07a0}, + {0x8131a937, 0xffff07a1}, + {0x8131a938, 0xffff07a2}, + {0x8131a939, 0xffff07a3}, + {0x8131aa30, 0xffff07a4}, + {0x8131aa31, 0xffff07a5}, + {0x8131aa32, 0xffff07a6}, + {0x8131aa33, 0xffff07a7}, + {0x8131aa34, 0xffff07a8}, + {0x8131aa35, 0xffff07a9}, + {0x8131aa36, 0xffff07aa}, + {0x8131aa37, 0xffff07ab}, + {0x8131aa38, 0xffff07ac}, + {0x8131aa39, 0xffff07ad}, + {0x8131ab30, 0xffff07ae}, + {0x8131ab31, 0xffff07af}, + {0x8131ab32, 0xffff07b0}, + {0x8131ab33, 0xffff07b1}, + {0x8131ab34, 0xffff07b2}, + {0x8131ab35, 0xffff07b3}, + {0x8131ab36, 0xffff07b4}, + {0x8131ab37, 0xffff07b5}, + {0x8131ab38, 0xffff07b6}, + {0x8131ab39, 0xffff07b7}, + {0x8131ac30, 0xffff07b8}, + {0x8131ac31, 0xffff07b9}, + {0x8131ac32, 0xffff07ba}, + {0x8131ac33, 0xffff07bb}, + {0x8131ac34, 0xffff07bc}, + {0x8131ac35, 0xffff07bd}, + {0x8131ac36, 0xffff07be}, + {0x8131ac37, 0xffff07bf}, + {0x8131ac38, 0xffff07c0}, + {0x8131ac39, 0xffff07c1}, + {0x8131ad30, 0xffff07c2}, + {0x8131ad31, 0xffff07c3}, + {0x8131ad32, 0xffff07c4}, + {0x8131ad33, 0xffff07c5}, + {0x8131ad34, 0xffff07c6}, + {0x8131ad35, 0xffff07c7}, + {0x8131ad36, 0xffff07c8}, + {0x8131ad37, 0xffff07c9}, + {0x8131ad38, 0xffff07ca}, + {0x8131ad39, 0xffff07cb}, + {0x8131ae30, 0xffff07cc}, + {0x8131ae31, 0xffff07cd}, + {0x8131ae32, 0xffff07ce}, + {0x8131ae33, 0xffff07cf}, + {0x8131ae34, 0xffff07d0}, + {0x8131ae35, 0xffff07d1}, + {0x8131ae36, 0xffff07d2}, + {0x8131ae37, 0xffff07d3}, + {0x8131ae38, 0xffff07d4}, + {0x8131ae39, 0xffff07d5}, + {0x8131af30, 0xffff07d6}, + {0x8131af31, 0xffff07d7}, + {0x8131af32, 0xffff07d8}, + {0x8131af33, 0xffff07d9}, + {0x8131af34, 0xffff07da}, + {0x8131af35, 0xffff07db}, + {0x8131af36, 0xffff07dc}, + {0x8131af37, 0xffff07dd}, + {0x8131af38, 0xffff07de}, + {0x8131af39, 0xffff07df}, + {0x8131b030, 0xffff07e0}, + {0x8131b031, 0xffff07e1}, + {0x8131b032, 0xffff07e2}, + {0x8131b033, 0xffff07e3}, + {0x8131b034, 0xffff07e4}, + {0x8131b035, 0xffff07e5}, + {0x8131b036, 0xffff07e6}, + {0x8131b037, 0xffff07e7}, + {0x8131b038, 0xffff07e8}, + {0x8131b039, 0xffff07e9}, + {0x8131b130, 0xffff07ea}, + {0x8131b131, 0xffff07eb}, + {0x8131b132, 0xffff07ec}, + {0x8131b133, 0xffff07ed}, + {0x8131b134, 0xffff07ee}, + {0x8131b135, 0xffff07ef}, + {0x8131b136, 0xffff07f0}, + {0x8131b137, 0xffff07f1}, + {0x8131b138, 0xffff07f2}, + {0x8131b139, 0xffff07f3}, + {0x8131b230, 0xffff07f4}, + {0x8131b231, 0xffff07f5}, + {0x8131b232, 0xffff07f6}, + {0x8131b233, 0xffff07f7}, + {0x8131b234, 0xffff07f8}, + {0x8131b235, 0xffff07f9}, + {0x8131b236, 0xffff07fa}, + {0x8131b237, 0xffff07fb}, + {0x8131b238, 0xffff07fc}, + {0x8131b239, 0xffff07fd}, + {0x8131b330, 0xffff07fe}, + {0x8131b331, 0xffff07ff}, + {0x8131b332, 0xffff0800}, + {0x8131b333, 0xffff0801}, + {0x8131b334, 0xffff0802}, + {0x8131b335, 0xffff0803}, + {0x8131b336, 0xffff0804}, + {0x8131b337, 0xffff0805}, + {0x8131b338, 0xffff0806}, + {0x8131b339, 0xffff0807}, + {0x8131b430, 0xffff0808}, + {0x8131b431, 0xffff0809}, + {0x8131b432, 0xffff080a}, + {0x8131b433, 0xffff080b}, + {0x8131b434, 0xffff080c}, + {0x8131b435, 0xffff080d}, + {0x8131b436, 0xffff080e}, + {0x8131b437, 0xffff080f}, + {0x8131b438, 0xffff0810}, + {0x8131b439, 0xffff0811}, + {0x8131b530, 0xffff0812}, + {0x8131b531, 0xffff0813}, + {0x8131b532, 0xffff0814}, + {0x8131b533, 0xffff0815}, + {0x8131b534, 0xffff0816}, + {0x8131b535, 0xffff0817}, + {0x8131b536, 0xffff0818}, + {0x8131b537, 0xffff0819}, + {0x8131b538, 0xffff081a}, + {0x8131b539, 0xffff081b}, + {0x8131b630, 0xffff081c}, + {0x8131b631, 0xffff081d}, + {0x8131b632, 0xffff081e}, + {0x8131b633, 0xffff081f}, + {0x8131b634, 0xffff0820}, + {0x8131b635, 0xffff0821}, + {0x8131b636, 0xffff0822}, + {0x8131b637, 0xffff0823}, + {0x8131b638, 0xffff0824}, + {0x8131b639, 0xffff0825}, + {0x8131b730, 0xffff0826}, + {0x8131b731, 0xffff0827}, + {0x8131b732, 0xffff0828}, + {0x8131b733, 0xffff0829}, + {0x8131b734, 0xffff082a}, + {0x8131b735, 0xffff082b}, + {0x8131b736, 0xffff082c}, + {0x8131b737, 0xffff082d}, + {0x8131b738, 0xffff082e}, + {0x8131b739, 0xffff082f}, + {0x8131b830, 0xffff0830}, + {0x8131b831, 0xffff0831}, + {0x8131b832, 0xffff0832}, + {0x8131b833, 0xffff0833}, + {0x8131b834, 0xffff0834}, + {0x8131b835, 0xffff0835}, + {0x8131b836, 0xffff0836}, + {0x8131b837, 0xffff0837}, + {0x8131b838, 0xffff0838}, + {0x8131b839, 0xffff0839}, + {0x8131b930, 0xffff083a}, + {0x8131b931, 0xffff083b}, + {0x8131b932, 0xffff083c}, + {0x8131b933, 0xffff083d}, + {0x8131b934, 0xffff083e}, + {0x8131b935, 0xffff083f}, + {0x8131b936, 0xffff0840}, + {0x8131b937, 0xffff0841}, + {0x8131b938, 0xffff0842}, + {0x8131b939, 0xffff0843}, + {0x8131ba30, 0xffff0844}, + {0x8131ba31, 0xffff0845}, + {0x8131ba32, 0xffff0846}, + {0x8131ba33, 0xffff0847}, + {0x8131ba34, 0xffff0848}, + {0x8131ba35, 0xffff0849}, + {0x8131ba36, 0xffff084a}, + {0x8131ba37, 0xffff084b}, + {0x8131ba38, 0xffff084c}, + {0x8131ba39, 0xffff084d}, + {0x8131bb30, 0xffff084e}, + {0x8131bb31, 0xffff084f}, + {0x8131bb32, 0xffff0850}, + {0x8131bb33, 0xffff0851}, + {0x8131bb34, 0xffff0852}, + {0x8131bb35, 0xffff0853}, + {0x8131bb36, 0xffff0854}, + {0x8131bb37, 0xffff0855}, + {0x8131bb38, 0xffff0856}, + {0x8131bb39, 0xffff0857}, + {0x8131bc30, 0xffff0858}, + {0x8131bc31, 0xffff0859}, + {0x8131bc32, 0xffff085a}, + {0x8131bc33, 0xffff085b}, + {0x8131bc34, 0xffff085c}, + {0x8131bc35, 0xffff085d}, + {0x8131bc36, 0xffff085e}, + {0x8131bc37, 0xffff085f}, + {0x8131bc38, 0xffff0860}, + {0x8131bc39, 0xffff0861}, + {0x8131bd30, 0xffff0862}, + {0x8131bd31, 0xffff0863}, + {0x8131bd32, 0xffff0864}, + {0x8131bd33, 0xffff0865}, + {0x8131bd34, 0xffff0866}, + {0x8131bd35, 0xffff0867}, + {0x8131bd36, 0xffff0868}, + {0x8131bd37, 0xffff0869}, + {0x8131bd38, 0xffff086a}, + {0x8131bd39, 0xffff086b}, + {0x8131be30, 0xffff086c}, + {0x8131be31, 0xffff086d}, + {0x8131be32, 0xffff086e}, + {0x8131be33, 0xffff086f}, + {0x8131be34, 0xffff0870}, + {0x8131be35, 0xffff0871}, + {0x8131be36, 0xffff0872}, + {0x8131be37, 0xffff0873}, + {0x8131be38, 0xffff0874}, + {0x8131be39, 0xffff0875}, + {0x8131bf30, 0xffff0876}, + {0x8131bf31, 0xffff0877}, + {0x8131bf32, 0xffff0878}, + {0x8131bf33, 0xffff0879}, + {0x8131bf34, 0xffff087a}, + {0x8131bf35, 0xffff087b}, + {0x8131bf36, 0xffff087c}, + {0x8131bf37, 0xffff087d}, + {0x8131bf38, 0xffff087e}, + {0x8131bf39, 0xffff087f}, + {0x8131c030, 0xffff0880}, + {0x8131c031, 0xffff0881}, + {0x8131c032, 0xffff0882}, + {0x8131c033, 0xffff0883}, + {0x8131c034, 0xffff0884}, + {0x8131c035, 0xffff0885}, + {0x8131c036, 0xffff0886}, + {0x8131c037, 0xffff0887}, + {0x8131c038, 0xffff0888}, + {0x8131c039, 0xffff0889}, + {0x8131c130, 0xffff088a}, + {0x8131c131, 0xffff088b}, + {0x8131c132, 0xffff088c}, + {0x8131c133, 0xffff088d}, + {0x8131c134, 0xffff088e}, + {0x8131c135, 0xffff088f}, + {0x8131c136, 0xffff0890}, + {0x8131c137, 0xffff0891}, + {0x8131c138, 0xffff0892}, + {0x8131c139, 0xffff0893}, + {0x8131c230, 0xffff0894}, + {0x8131c231, 0xffff0895}, + {0x8131c232, 0xffff0896}, + {0x8131c233, 0xffff0897}, + {0x8131c234, 0xffff0898}, + {0x8131c235, 0xffff0899}, + {0x8131c236, 0xffff089a}, + {0x8131c237, 0xffff089b}, + {0x8131c238, 0xffff089c}, + {0x8131c239, 0xffff089d}, + {0x8131c330, 0xffff089e}, + {0x8131c331, 0xffff089f}, + {0x8131c332, 0xffff08a0}, + {0x8131c333, 0xffff08a1}, + {0x8131c334, 0xffff08a2}, + {0x8131c335, 0xffff08a3}, + {0x8131c336, 0xffff08a4}, + {0x8131c337, 0xffff08a5}, + {0x8131c338, 0xffff08a6}, + {0x8131c339, 0xffff08a7}, + {0x8131c430, 0xffff08a8}, + {0x8131c431, 0xffff08a9}, + {0x8131c432, 0xffff08aa}, + {0x8131c433, 0xffff08ab}, + {0x8131c434, 0xffff08ac}, + {0x8131c435, 0xffff08ad}, + {0x8131c436, 0xffff08ae}, + {0x8131c437, 0xffff08af}, + {0x8131c438, 0xffff08b0}, + {0x8131c439, 0xffff08b1}, + {0x8131c530, 0xffff08b2}, + {0x8131c531, 0xffff08b3}, + {0x8131c532, 0xffff08b4}, + {0x8131c533, 0xffff08b5}, + {0x8131c534, 0xffff08b6}, + {0x8131c535, 0xffff08b7}, + {0x8131c536, 0xffff08b8}, + {0x8131c537, 0xffff08b9}, + {0x8131c538, 0xffff08ba}, + {0x8131c539, 0xffff08bb}, + {0x8131c630, 0xffff08bc}, + {0x8131c631, 0xffff08bd}, + {0x8131c632, 0xffff08be}, + {0x8131c633, 0xffff08bf}, + {0x8131c634, 0xffff08c0}, + {0x8131c635, 0xffff08c1}, + {0x8131c636, 0xffff08c2}, + {0x8131c637, 0xffff08c3}, + {0x8131c638, 0xffff08c4}, + {0x8131c639, 0xffff08c5}, + {0x8131c730, 0xffff08c6}, + {0x8131c731, 0xffff08c7}, + {0x8131c732, 0xffff08c8}, + {0x8131c733, 0xffff08c9}, + {0x8131c734, 0xffff08ca}, + {0x8131c735, 0xffff08cb}, + {0x8131c736, 0xffff08cc}, + {0x8131c737, 0xffff08cd}, + {0x8131c738, 0xffff08ce}, + {0x8131c739, 0xffff08cf}, + {0x8131c830, 0xffff08d0}, + {0x8131c831, 0xffff08d1}, + {0x8131c832, 0xffff08d2}, + {0x8131c833, 0xffff08d3}, + {0x8131c834, 0xffff08d4}, + {0x8131c835, 0xffff08d5}, + {0x8131c836, 0xffff08d6}, + {0x8131c837, 0xffff08d7}, + {0x8131c838, 0xffff08d8}, + {0x8131c839, 0xffff08d9}, + {0x8131c930, 0xffff08da}, + {0x8131c931, 0xffff08db}, + {0x8131c932, 0xffff08dc}, + {0x8131c933, 0xffff08dd}, + {0x8131c934, 0xffff08de}, + {0x8131c935, 0xffff08df}, + {0x8131c936, 0xffff08e0}, + {0x8131c937, 0xffff08e1}, + {0x8131c938, 0xffff08e2}, + {0x8131c939, 0xffff08e3}, + {0x8131ca30, 0xffff08e4}, + {0x8131ca31, 0xffff08e5}, + {0x8131ca32, 0xffff08e6}, + {0x8131ca33, 0xffff08e7}, + {0x8131ca34, 0xffff08e8}, + {0x8131ca35, 0xffff08e9}, + {0x8131ca36, 0xffff08ea}, + {0x8131ca37, 0xffff08eb}, + {0x8131ca38, 0xffff08ec}, + {0x8131ca39, 0xffff08ed}, + {0x8131cb30, 0xffff08ee}, + {0x8131cb31, 0xffff08ef}, + {0x8131cb32, 0xffff08f0}, + {0x8131cb33, 0xffff08f1}, + {0x8131cb34, 0xffff08f2}, + {0x8131cb35, 0xffff08f3}, + {0x8131cb36, 0xffff08f4}, + {0x8131cb37, 0xffff08f5}, + {0x8131cb38, 0xffff08f6}, + {0x8131cb39, 0xffff08f7}, + {0x8131cc30, 0xffff08f8}, + {0x8131cc31, 0xffff08f9}, + {0x8131cc32, 0xffff08fa}, + {0x8131cc33, 0xffff08fb}, + {0x8131cc34, 0xffff08fc}, + {0x8131cc35, 0xffff08fd}, + {0x8131cc36, 0xffff08fe}, + {0x8131cc37, 0xffff08ff}, + {0x8131cc38, 0xffff0900}, + {0x8131cd32, 0xffff0904}, + {0x8131cd33, 0xffff0905}, + {0x8131cd34, 0xffff0906}, + {0x8131cd35, 0xffff0907}, + {0x8131cd36, 0xffff0908}, + {0x8131cd37, 0xffff0909}, + {0x8131cd38, 0xffff090a}, + {0x8131cd39, 0xffff090b}, + {0x8131ce30, 0xffff090c}, + {0x8131ce31, 0xffff090d}, + {0x8131ce32, 0xffff090e}, + {0x8131ce33, 0xffff090f}, + {0x8131ce34, 0xffff0910}, + {0x8131ce35, 0xffff0911}, + {0x8131ce36, 0xffff0912}, + {0x8131ce37, 0xffff0913}, + {0x8131ce38, 0xffff0914}, + {0x8131ce39, 0xffff0915}, + {0x8131cf30, 0xffff0916}, + {0x8131cf31, 0xffff0917}, + {0x8131cf32, 0xffff0918}, + {0x8131cf33, 0xffff0919}, + {0x8131cf34, 0xffff091a}, + {0x8131cf35, 0xffff091b}, + {0x8131cf36, 0xffff091c}, + {0x8131cf37, 0xffff091d}, + {0x8131cf38, 0xffff091e}, + {0x8131cf39, 0xffff091f}, + {0x8131d030, 0xffff0920}, + {0x8131d031, 0xffff0921}, + {0x8131d032, 0xffff0922}, + {0x8131d033, 0xffff0923}, + {0x8131d034, 0xffff0924}, + {0x8131d035, 0xffff0925}, + {0x8131d036, 0xffff0926}, + {0x8131d037, 0xffff0927}, + {0x8131d038, 0xffff0928}, + {0x8131d039, 0xffff0928}, + {0x8131d130, 0xffff092a}, + {0x8131d131, 0xffff092b}, + {0x8131d132, 0xffff092c}, + {0x8131d133, 0xffff092d}, + {0x8131d134, 0xffff092e}, + {0x8131d135, 0xffff092f}, + {0x8131d136, 0xffff0930}, + {0x8131d137, 0xffff0930}, + {0x8131d138, 0xffff0932}, + {0x8131d139, 0xffff0933}, + {0x8131d230, 0xffff0933}, + {0x8131d231, 0xffff0935}, + {0x8131d232, 0xffff0936}, + {0x8131d233, 0xffff0937}, + {0x8131d234, 0xffff0938}, + {0x8131d235, 0xffff0939}, + {0x8131d236, 0xffff093a}, + {0x8131d237, 0xffff093b}, + {0x8131d239, 0xffff093d}, + {0x8131d330, 0xffff093e}, + {0x8131d331, 0xffff093f}, + {0x8131d332, 0xffff0940}, + {0x8131d333, 0xffff0941}, + {0x8131d334, 0xffff0942}, + {0x8131d335, 0xffff0943}, + {0x8131d336, 0xffff0944}, + {0x8131d337, 0xffff0945}, + {0x8131d338, 0xffff0946}, + {0x8131d339, 0xffff0947}, + {0x8131d430, 0xffff0948}, + {0x8131d431, 0xffff0949}, + {0x8131d432, 0xffff094a}, + {0x8131d433, 0xffff094b}, + {0x8131d434, 0xffff094c}, + {0x8131d435, 0xffff094d}, + {0x8131d436, 0xffff094e}, + {0x8131d437, 0xffff094f}, + {0x8131d438, 0xffff0950}, + {0x8131d533, 0xffff0955}, + {0x8131d534, 0xffff0956}, + {0x8131d535, 0xffff0957}, + {0x8131d536, 0xffff0958}, + {0x8131d537, 0xffff0959}, + {0x8131d538, 0xffff095a}, + {0x8131d539, 0xffff095b}, + {0x8131d630, 0xffff095c}, + {0x8131d631, 0xffff095d}, + {0x8131d632, 0xffff095e}, + {0x8131d633, 0xffff095f}, + {0x8131d634, 0xffff0960}, + {0x8131d635, 0xffff0961}, + {0x8131d636, 0xffff0962}, + {0x8131d637, 0xffff0963}, + {0x8131d638, 0xffff0964}, + {0x8131d639, 0xffff0965}, + {0x8131d730, 0xffff0966}, + {0x8131d731, 0xffff0967}, + {0x8131d732, 0xffff0968}, + {0x8131d733, 0xffff0969}, + {0x8131d734, 0xffff096a}, + {0x8131d735, 0xffff096b}, + {0x8131d736, 0xffff096c}, + {0x8131d737, 0xffff096d}, + {0x8131d738, 0xffff096e}, + {0x8131d739, 0xffff096f}, + {0x8131d830, 0xffff0970}, + {0x8131d831, 0xffff0971}, + {0x8131d832, 0xffff0972}, + {0x8131d833, 0xffff0973}, + {0x8131d834, 0xffff0974}, + {0x8131d835, 0xffff0975}, + {0x8131d836, 0xffff0976}, + {0x8131d837, 0xffff0977}, + {0x8131d838, 0xffff0978}, + {0x8131d839, 0xffff0979}, + {0x8131d930, 0xffff097a}, + {0x8131d931, 0xffff097b}, + {0x8131d932, 0xffff097c}, + {0x8131d933, 0xffff097d}, + {0x8131d934, 0xffff097e}, + {0x8131d935, 0xffff097f}, + {0x8131d936, 0xffff0980}, + {0x8131da30, 0xffff0984}, + {0x8131da31, 0xffff0985}, + {0x8131da32, 0xffff0986}, + {0x8131da33, 0xffff0987}, + {0x8131da34, 0xffff0988}, + {0x8131da35, 0xffff0989}, + {0x8131da36, 0xffff098a}, + {0x8131da37, 0xffff098b}, + {0x8131da38, 0xffff098c}, + {0x8131da39, 0xffff098d}, + {0x8131db30, 0xffff098e}, + {0x8131db31, 0xffff098f}, + {0x8131db32, 0xffff0990}, + {0x8131db33, 0xffff0991}, + {0x8131db34, 0xffff0992}, + {0x8131db35, 0xffff0993}, + {0x8131db36, 0xffff0994}, + {0x8131db37, 0xffff0995}, + {0x8131db38, 0xffff0996}, + {0x8131db39, 0xffff0997}, + {0x8131dc30, 0xffff0998}, + {0x8131dc31, 0xffff0999}, + {0x8131dc32, 0xffff099a}, + {0x8131dc33, 0xffff099b}, + {0x8131dc34, 0xffff099c}, + {0x8131dc35, 0xffff099d}, + {0x8131dc36, 0xffff099e}, + {0x8131dc37, 0xffff099f}, + {0x8131dc38, 0xffff09a0}, + {0x8131dc39, 0xffff09a1}, + {0x8131dd30, 0xffff09a2}, + {0x8131dd31, 0xffff09a3}, + {0x8131dd32, 0xffff09a4}, + {0x8131dd33, 0xffff09a5}, + {0x8131dd34, 0xffff09a6}, + {0x8131dd35, 0xffff09a7}, + {0x8131dd36, 0xffff09a8}, + {0x8131dd37, 0xffff09a9}, + {0x8131dd38, 0xffff09aa}, + {0x8131dd39, 0xffff09ab}, + {0x8131de30, 0xffff09ac}, + {0x8131de31, 0xffff09ad}, + {0x8131de32, 0xffff09ae}, + {0x8131de33, 0xffff09af}, + {0x8131de34, 0xffff09b0}, + {0x8131de35, 0xffff09b1}, + {0x8131de36, 0xffff09b2}, + {0x8131de37, 0xffff09b3}, + {0x8131de38, 0xffff09b4}, + {0x8131de39, 0xffff09b5}, + {0x8131df30, 0xffff09b6}, + {0x8131df31, 0xffff09b7}, + {0x8131df32, 0xffff09b8}, + {0x8131df33, 0xffff09b9}, + {0x8131df34, 0xffff09ba}, + {0x8131df35, 0xffff09bb}, + {0x8131df37, 0xffff09bd}, + {0x8131df38, 0xffff09be}, + {0x8131df39, 0xffff09bf}, + {0x8131e030, 0xffff09c0}, + {0x8131e031, 0xffff09c1}, + {0x8131e032, 0xffff09c2}, + {0x8131e033, 0xffff09c3}, + {0x8131e034, 0xffff09c4}, + {0x8131e035, 0xffff09c5}, + {0x8131e036, 0xffff09c6}, + {0x8131e037, 0xffff09c7}, + {0x8131e038, 0xffff09c8}, + {0x8131e039, 0xffff09c9}, + {0x8131e130, 0xffff09ca}, + {0x8131e133, 0xffff09cd}, + {0x8131e134, 0xffff09ce}, + {0x8131e135, 0xffff09cf}, + {0x8131e136, 0xffff09d0}, + {0x8131e137, 0xffff09d1}, + {0x8131e138, 0xffff09d2}, + {0x8131e139, 0xffff09d3}, + {0x8131e230, 0xffff09d4}, + {0x8131e231, 0xffff09d5}, + {0x8131e232, 0xffff09d6}, + {0x8131e233, 0xffff09d7}, + {0x8131e234, 0xffff09d8}, + {0x8131e235, 0xffff09d9}, + {0x8131e236, 0xffff09da}, + {0x8131e237, 0xffff09db}, + {0x8131e238, 0xffff09dc}, + {0x8131e239, 0xffff09dd}, + {0x8131e330, 0xffff09de}, + {0x8131e331, 0xffff09df}, + {0x8131e332, 0xffff09e0}, + {0x8131e333, 0xffff09e1}, + {0x8131e334, 0xffff09e2}, + {0x8131e335, 0xffff09e3}, + {0x8131e336, 0xffff09e4}, + {0x8131e337, 0xffff09e5}, + {0x8131e338, 0xffff09e6}, + {0x8131e339, 0xffff09e7}, + {0x8131e430, 0xffff09e8}, + {0x8131e431, 0xffff09e9}, + {0x8131e432, 0xffff09ea}, + {0x8131e433, 0xffff09eb}, + {0x8131e434, 0xffff09ec}, + {0x8131e435, 0xffff09ed}, + {0x8131e436, 0xffff09ee}, + {0x8131e437, 0xffff09ef}, + {0x8131e438, 0xffff09f0}, + {0x8131e439, 0xffff09f1}, + {0x8131e530, 0x008e}, + {0x8131e531, 0x008f}, + {0x8131e532, 0xffff09f4}, + {0x8131e533, 0xffff09f5}, + {0x8131e534, 0xffff09f6}, + {0x8131e535, 0xffff09f7}, + {0x8131e536, 0xffff09f8}, + {0x8131e537, 0xffff09f9}, + {0x8131e538, 0xffff09fa}, + {0x8131e539, 0xffff09fb}, + {0x8131e630, 0xffff09fc}, + {0x8131e631, 0xffff09fd}, + {0x8131e632, 0xffff09fe}, + {0x8131e633, 0xffff09ff}, + {0x8131e634, 0xffff0a00}, + {0x8131e635, 0xffff0a01}, + {0x8131e637, 0xffff0a03}, + {0x8131e638, 0xffff0a04}, + {0x8131e639, 0xffff0a05}, + {0x8131e730, 0xffff0a06}, + {0x8131e731, 0xffff0a07}, + {0x8131e732, 0xffff0a08}, + {0x8131e733, 0xffff0a09}, + {0x8131e734, 0xffff0a0a}, + {0x8131e735, 0xffff0a0b}, + {0x8131e736, 0xffff0a0c}, + {0x8131e737, 0xffff0a0d}, + {0x8131e738, 0xffff0a0e}, + {0x8131e739, 0xffff0a0f}, + {0x8131e830, 0xffff0a10}, + {0x8131e831, 0xffff0a11}, + {0x8131e832, 0xffff0a12}, + {0x8131e833, 0xffff0a13}, + {0x8131e834, 0xffff0a14}, + {0x8131e835, 0xffff0a15}, + {0x8131e836, 0xffff0a16}, + {0x8131e837, 0xffff0a17}, + {0x8131e838, 0xffff0a18}, + {0x8131e839, 0xffff0a19}, + {0x8131e930, 0xffff0a1a}, + {0x8131e931, 0xffff0a1b}, + {0x8131e932, 0xffff0a1c}, + {0x8131e933, 0xffff0a1d}, + {0x8131e934, 0xffff0a1e}, + {0x8131e935, 0xffff0a1f}, + {0x8131e936, 0xffff0a20}, + {0x8131e937, 0xffff0a21}, + {0x8131e938, 0xffff0a22}, + {0x8131e939, 0xffff0a23}, + {0x8131ea30, 0xffff0a24}, + {0x8131ea31, 0xffff0a25}, + {0x8131ea32, 0xffff0a26}, + {0x8131ea33, 0xffff0a27}, + {0x8131ea34, 0xffff0a28}, + {0x8131ea35, 0xffff0a29}, + {0x8131ea36, 0xffff0a2a}, + {0x8131ea37, 0xffff0a2b}, + {0x8131ea38, 0xffff0a2c}, + {0x8131ea39, 0xffff0a2d}, + {0x8131eb30, 0xffff0a2e}, + {0x8131eb31, 0xffff0a2f}, + {0x8131eb32, 0xffff0a30}, + {0x8131eb33, 0xffff0a31}, + {0x8131eb34, 0xffff0a32}, + {0x8131eb35, 0xffff0a33}, + {0x8131eb36, 0xffff0a34}, + {0x8131eb37, 0xffff0a35}, + {0x8131eb38, 0xffff0a36}, + {0x8131eb39, 0xffff0a37}, + {0x8131ec30, 0xffff0a38}, + {0x8131ec31, 0xffff0a39}, + {0x8131ec32, 0xffff0a3a}, + {0x8131ec33, 0xffff0a3b}, + {0x8131ec35, 0xffff0a3d}, + {0x8131ec36, 0xffff0a3e}, + {0x8131ec37, 0xffff0a3f}, + {0x8131ec38, 0xffff0a40}, + {0x8131ec39, 0xffff0a41}, + {0x8131ed30, 0xffff0a42}, + {0x8131ed31, 0xffff0a43}, + {0x8131ed32, 0xffff0a44}, + {0x8131ed33, 0xffff0a45}, + {0x8131ed34, 0xffff0a46}, + {0x8131ed35, 0xffff0a47}, + {0x8131ed36, 0xffff0a48}, + {0x8131ed37, 0xffff0a49}, + {0x8131ed38, 0xffff0a4a}, + {0x8131ed39, 0xffff0a4b}, + {0x8131ee30, 0xffff0a4c}, + {0x8131ee31, 0xffff0a4d}, + {0x8131ee32, 0xffff0a4e}, + {0x8131ee33, 0xffff0a4f}, + {0x8131ee34, 0xffff0a50}, + {0x8131ee35, 0xffff0a51}, + {0x8131ee36, 0xffff0a52}, + {0x8131ee37, 0xffff0a53}, + {0x8131ee38, 0xffff0a54}, + {0x8131ee39, 0xffff0a55}, + {0x8131ef30, 0xffff0a56}, + {0x8131ef31, 0xffff0a57}, + {0x8131ef32, 0xffff0a58}, + {0x8131ef33, 0xffff0a59}, + {0x8131ef34, 0xffff0a5a}, + {0x8131ef35, 0xffff0a5b}, + {0x8131ef36, 0xffff0a5c}, + {0x8131ef37, 0xffff0a5d}, + {0x8131ef38, 0xffff0a5e}, + {0x8131ef39, 0xffff0a5f}, + {0x8131f030, 0xffff0a60}, + {0x8131f031, 0xffff0a61}, + {0x8131f032, 0xffff0a62}, + {0x8131f033, 0xffff0a63}, + {0x8131f034, 0xffff0a64}, + {0x8131f035, 0xffff0a65}, + {0x8131f036, 0xffff0a66}, + {0x8131f037, 0xffff0a67}, + {0x8131f038, 0xffff0a68}, + {0x8131f039, 0xffff0a69}, + {0x8131f130, 0xffff0a6a}, + {0x8131f131, 0xffff0a6b}, + {0x8131f132, 0xffff0a6c}, + {0x8131f133, 0xffff0a6d}, + {0x8131f134, 0xffff0a6e}, + {0x8131f135, 0xffff0a6f}, + {0x8131f138, 0xffff0a72}, + {0x8131f139, 0xffff0a73}, + {0x8131f230, 0xffff0a74}, + {0x8131f231, 0xffff0a75}, + {0x8131f232, 0xffff0a76}, + {0x8131f233, 0xffff0a77}, + {0x8131f234, 0xffff0a78}, + {0x8131f235, 0xffff0a79}, + {0x8131f236, 0xffff0a7a}, + {0x8131f237, 0xffff0a7b}, + {0x8131f238, 0xffff0a7c}, + {0x8131f239, 0xffff0a7d}, + {0x8131f330, 0xffff0a7e}, + {0x8131f331, 0xffff0a7f}, + {0x8131f332, 0xffff0a80}, + {0x8131f336, 0xffff0a84}, + {0x8131f337, 0xffff0a85}, + {0x8131f338, 0xffff0a86}, + {0x8131f339, 0xffff0a87}, + {0x8131f430, 0xffff0a88}, + {0x8131f431, 0xffff0a89}, + {0x8131f432, 0xffff0a8a}, + {0x8131f433, 0xffff0a8b}, + {0x8131f434, 0xffff0a8c}, + {0x8131f435, 0xffff0a8d}, + {0x8131f436, 0xffff0a8e}, + {0x8131f437, 0xffff0a8f}, + {0x8131f438, 0xffff0a90}, + {0x8131f439, 0xffff0a91}, + {0x8131f530, 0xffff0a92}, + {0x8131f531, 0xffff0a93}, + {0x8131f532, 0xffff0a94}, + {0x8131f533, 0xffff0a95}, + {0x8131f534, 0xffff0a96}, + {0x8131f535, 0xffff0a97}, + {0x8131f536, 0xffff0a98}, + {0x8131f537, 0xffff0a99}, + {0x8131f538, 0xffff0a9a}, + {0x8131f539, 0xffff0a9b}, + {0x8131f630, 0xffff0a9c}, + {0x8131f631, 0xffff0a9d}, + {0x8131f632, 0xffff0a9e}, + {0x8131f633, 0xffff0a9f}, + {0x8131f634, 0xffff0aa0}, + {0x8131f635, 0xffff0aa1}, + {0x8131f636, 0xffff0aa2}, + {0x8131f637, 0xffff0aa3}, + {0x8131f638, 0xffff0aa4}, + {0x8131f639, 0xffff0aa5}, + {0x8131f730, 0xffff0aa6}, + {0x8131f731, 0xffff0aa7}, + {0x8131f732, 0xffff0aa8}, + {0x8131f733, 0xffff0aa9}, + {0x8131f734, 0xffff0aaa}, + {0x8131f735, 0xffff0aab}, + {0x8131f736, 0xffff0aac}, + {0x8131f737, 0xffff0aad}, + {0x8131f738, 0xffff0aae}, + {0x8131f739, 0xffff0aaf}, + {0x8131f830, 0xffff0ab0}, + {0x8131f831, 0xffff0ab1}, + {0x8131f832, 0xffff0ab2}, + {0x8131f833, 0xffff0ab3}, + {0x8131f834, 0xffff0ab4}, + {0x8131f835, 0xffff0ab5}, + {0x8131f836, 0xffff0ab6}, + {0x8131f837, 0xffff0ab7}, + {0x8131f838, 0xffff0ab8}, + {0x8131f839, 0xffff0ab9}, + {0x8131f930, 0xffff0aba}, + {0x8131f931, 0xffff0abb}, + {0x8131f933, 0xffff0abd}, + {0x8131f934, 0xffff0abe}, + {0x8131f935, 0xffff0abf}, + {0x8131f936, 0xffff0ac0}, + {0x8131f937, 0xffff0ac1}, + {0x8131f938, 0xffff0ac2}, + {0x8131f939, 0xffff0ac3}, + {0x8131fa30, 0xffff0ac4}, + {0x8131fa31, 0xffff0ac5}, + {0x8131fa32, 0xffff0ac6}, + {0x8131fa33, 0xffff0ac7}, + {0x8131fa34, 0xffff0ac8}, + {0x8131fa35, 0xffff0ac9}, + {0x8131fa36, 0xffff0aca}, + {0x8131fa37, 0xffff0acb}, + {0x8131fa38, 0xffff0acc}, + {0x8131fa39, 0xffff0acd}, + {0x8131fb30, 0xffff0ace}, + {0x8131fb31, 0xffff0acf}, + {0x8131fb32, 0xffff0ad0}, + {0x8131fb33, 0xffff0ad1}, + {0x8131fb34, 0xffff0ad2}, + {0x8131fb35, 0xffff0ad3}, + {0x8131fb36, 0xffff0ad4}, + {0x8131fb37, 0xffff0ad5}, + {0x8131fb38, 0xffff0ad6}, + {0x8131fb39, 0xffff0ad7}, + {0x8131fc30, 0xffff0ad8}, + {0x8131fc31, 0xffff0ad9}, + {0x8131fc32, 0xffff0ada}, + {0x8131fc33, 0xffff0adb}, + {0x8131fc34, 0xffff0adc}, + {0x8131fc35, 0xffff0add}, + {0x8131fc36, 0xffff0ade}, + {0x8131fc37, 0xffff0adf}, + {0x8131fc38, 0xffff0ae0}, + {0x8131fc39, 0xffff0ae1}, + {0x8131fd30, 0xffff0ae2}, + {0x8131fd31, 0xffff0ae3}, + {0x8131fd32, 0xffff0ae4}, + {0x8131fd33, 0xffff0ae5}, + {0x8131fd34, 0xffff0ae6}, + {0x8131fd35, 0xffff0ae7}, + {0x8131fd36, 0xffff0ae8}, + {0x8131fd37, 0xffff0ae9}, + {0x8131fd38, 0xffff0aea}, + {0x8131fd39, 0xffff0aeb}, + {0x8131fe30, 0xffff0aec}, + {0x8131fe31, 0xffff0aed}, + {0x8131fe32, 0xffff0aee}, + {0x8131fe33, 0xffff0aef}, + {0x8131fe34, 0xffff0af0}, + {0x8131fe35, 0xffff0af1}, + {0x8131fe36, 0xffff0af2}, + {0x8131fe37, 0xffff0af3}, + {0x8131fe38, 0xffff0af4}, + {0x8131fe39, 0xffff0af5}, + {0x81328130, 0xffff0af6}, + {0x81328131, 0xffff0af7}, + {0x81328132, 0xffff0af8}, + {0x81328133, 0xffff0af9}, + {0x81328134, 0xffff0afa}, + {0x81328135, 0xffff0afb}, + {0x81328136, 0xffff0afc}, + {0x81328137, 0xffff0afd}, + {0x81328138, 0xffff0afe}, + {0x81328139, 0xffff0aff}, + {0x81328230, 0xffff0b00}, + {0x81328234, 0xffff0b04}, + {0x81328235, 0xffff0b05}, + {0x81328236, 0xffff0b06}, + {0x81328237, 0xffff0b07}, + {0x81328238, 0xffff0b08}, + {0x81328239, 0xffff0b09}, + {0x81328330, 0xffff0b0a}, + {0x81328331, 0xffff0b0b}, + {0x81328332, 0xffff0b0c}, + {0x81328333, 0xffff0b0d}, + {0x81328334, 0xffff0b0e}, + {0x81328335, 0xffff0b0f}, + {0x81328336, 0xffff0b10}, + {0x81328337, 0xffff0b11}, + {0x81328338, 0xffff0b12}, + {0x81328339, 0xffff0b13}, + {0x81328430, 0xffff0b14}, + {0x81328431, 0xffff0b15}, + {0x81328432, 0xffff0b16}, + {0x81328433, 0xffff0b17}, + {0x81328434, 0xffff0b18}, + {0x81328435, 0xffff0b19}, + {0x81328436, 0xffff0b1a}, + {0x81328437, 0xffff0b1b}, + {0x81328438, 0xffff0b1c}, + {0x81328439, 0xffff0b1d}, + {0x81328530, 0xffff0b1e}, + {0x81328531, 0xffff0b1f}, + {0x81328532, 0xffff0b20}, + {0x81328533, 0xffff0b21}, + {0x81328534, 0xffff0b22}, + {0x81328535, 0xffff0b23}, + {0x81328536, 0xffff0b24}, + {0x81328537, 0xffff0b25}, + {0x81328538, 0xffff0b26}, + {0x81328539, 0xffff0b27}, + {0x81328630, 0xffff0b28}, + {0x81328631, 0xffff0b29}, + {0x81328632, 0xffff0b2a}, + {0x81328633, 0xffff0b2b}, + {0x81328634, 0xffff0b2c}, + {0x81328635, 0xffff0b2d}, + {0x81328636, 0xffff0b2e}, + {0x81328637, 0xffff0b2f}, + {0x81328638, 0xffff0b30}, + {0x81328639, 0xffff0b31}, + {0x81328730, 0xffff0b32}, + {0x81328731, 0xffff0b33}, + {0x81328732, 0xffff0b34}, + {0x81328733, 0xffff0b35}, + {0x81328734, 0xffff0b36}, + {0x81328735, 0xffff0b37}, + {0x81328736, 0xffff0b38}, + {0x81328737, 0xffff0b39}, + {0x81328738, 0xffff0b3a}, + {0x81328739, 0xffff0b3b}, + {0x81328831, 0xffff0b3d}, + {0x81328832, 0xffff0b3e}, + {0x81328833, 0xffff0b3f}, + {0x81328834, 0xffff0b40}, + {0x81328835, 0xffff0b41}, + {0x81328836, 0xffff0b42}, + {0x81328837, 0xffff0b43}, + {0x81328838, 0xffff0b44}, + {0x81328839, 0xffff0b45}, + {0x81328930, 0xffff0b46}, + {0x81328931, 0xffff0b47}, + {0x81328933, 0xffff0b49}, + {0x81328934, 0xffff0b4a}, + {0x81328937, 0xffff0b4d}, + {0x81328938, 0xffff0b4e}, + {0x81328939, 0xffff0b4f}, + {0x81328a30, 0xffff0b50}, + {0x81328a31, 0xffff0b51}, + {0x81328a32, 0xffff0b52}, + {0x81328a33, 0xffff0b53}, + {0x81328a34, 0xffff0b54}, + {0x81328a35, 0xffff0b55}, + {0x81328a36, 0xffff0b56}, + {0x81328a37, 0xffff0b57}, + {0x81328a38, 0xffff0b58}, + {0x81328a39, 0xffff0b59}, + {0x81328b30, 0xffff0b5a}, + {0x81328b31, 0xffff0b5b}, + {0x81328b32, 0xffff0b5c}, + {0x81328b33, 0xffff0b5d}, + {0x81328b34, 0xffff0b5e}, + {0x81328b35, 0xffff0b5f}, + {0x81328b36, 0xffff0b60}, + {0x81328b37, 0xffff0b61}, + {0x81328b38, 0xffff0b62}, + {0x81328b39, 0xffff0b63}, + {0x81328c30, 0xffff0b64}, + {0x81328c31, 0xffff0b65}, + {0x81328c32, 0xffff0b66}, + {0x81328c33, 0xffff0b67}, + {0x81328c34, 0xffff0b68}, + {0x81328c35, 0xffff0b69}, + {0x81328c36, 0xffff0b6a}, + {0x81328c37, 0xffff0b6b}, + {0x81328c38, 0xffff0b6c}, + {0x81328c39, 0xffff0b6d}, + {0x81328d30, 0xffff0b6e}, + {0x81328d31, 0xffff0b6f}, + {0x81328d32, 0xffff0b70}, + {0x81328d33, 0xffff0b71}, + {0x81328d34, 0xffff0b72}, + {0x81328d35, 0xffff0b73}, + {0x81328d36, 0xffff0b74}, + {0x81328d37, 0xffff0b75}, + {0x81328d38, 0xffff0b76}, + {0x81328d39, 0xffff0b77}, + {0x81328e30, 0xffff0b78}, + {0x81328e31, 0xffff0b79}, + {0x81328e32, 0xffff0b7a}, + {0x81328e33, 0xffff0b7b}, + {0x81328e34, 0xffff0b7c}, + {0x81328e35, 0xffff0b7d}, + {0x81328e36, 0xffff0b7e}, + {0x81328e37, 0xffff0b7f}, + {0x81328e38, 0xffff0b80}, + {0x81328e39, 0xffff0b81}, + {0x81328f32, 0xffff0b84}, + {0x81328f33, 0xffff0b85}, + {0x81328f34, 0xffff0b86}, + {0x81328f35, 0xffff0b87}, + {0x81328f36, 0xffff0b88}, + {0x81328f37, 0xffff0b89}, + {0x81328f38, 0xffff0b8a}, + {0x81328f39, 0xffff0b8b}, + {0x81329030, 0xffff0b8c}, + {0x81329031, 0xffff0b8d}, + {0x81329032, 0xffff0b8e}, + {0x81329033, 0xffff0b8f}, + {0x81329034, 0xffff0b90}, + {0x81329035, 0xffff0b91}, + {0x81329036, 0xffff0b92}, + {0x81329037, 0xffff0b93}, + {0x81329039, 0xffff0b95}, + {0x81329130, 0xffff0b96}, + {0x81329131, 0xffff0b97}, + {0x81329132, 0xffff0b98}, + {0x81329133, 0xffff0b99}, + {0x81329134, 0xffff0b9a}, + {0x81329135, 0xffff0b9b}, + {0x81329136, 0xffff0b9c}, + {0x81329137, 0xffff0b9d}, + {0x81329138, 0xffff0b9e}, + {0x81329139, 0xffff0b9f}, + {0x81329230, 0xffff0ba0}, + {0x81329231, 0xffff0ba1}, + {0x81329232, 0xffff0ba2}, + {0x81329233, 0xffff0ba3}, + {0x81329234, 0xffff0ba4}, + {0x81329235, 0xffff0ba5}, + {0x81329236, 0xffff0ba6}, + {0x81329237, 0xffff0ba7}, + {0x81329238, 0xffff0ba8}, + {0x81329239, 0xffff0ba9}, + {0x81329330, 0xffff0baa}, + {0x81329331, 0xffff0bab}, + {0x81329332, 0xffff0bac}, + {0x81329333, 0xffff0bad}, + {0x81329334, 0xffff0bae}, + {0x81329335, 0xffff0baf}, + {0x81329336, 0xffff0bb0}, + {0x81329337, 0xffff0bb1}, + {0x81329338, 0xffff0bb2}, + {0x81329339, 0xffff0bb3}, + {0x81329430, 0xffff0bb4}, + {0x81329431, 0xffff0bb5}, + {0x81329432, 0xffff0bb6}, + {0x81329433, 0xffff0bb7}, + {0x81329434, 0xffff0bb8}, + {0x81329435, 0xffff0bb9}, + {0x81329436, 0xffff0bba}, + {0x81329437, 0xffff0bbb}, + {0x81329438, 0xffff0bbc}, + {0x81329439, 0xffff0bbd}, + {0x81329530, 0xffff0bbe}, + {0x81329531, 0xffff0bbf}, + {0x81329532, 0xffff0bc0}, + {0x81329533, 0xffff0bc1}, + {0x81329534, 0xffff0bc2}, + {0x81329535, 0xffff0bc3}, + {0x81329536, 0xffff0bc4}, + {0x81329537, 0xffff0bc5}, + {0x81329538, 0xffff0bc6}, + {0x81329539, 0xffff0bc7}, + {0x81329630, 0xffff0bc8}, + {0x81329631, 0xffff0bc9}, + {0x81329635, 0xffff0bcd}, + {0x81329636, 0xffff0bce}, + {0x81329637, 0xffff0bcf}, + {0x81329638, 0xffff0bd0}, + {0x81329639, 0xffff0bd1}, + {0x81329730, 0xffff0bd2}, + {0x81329731, 0xffff0bd3}, + {0x81329732, 0xffff0bd4}, + {0x81329733, 0xffff0bd5}, + {0x81329734, 0xffff0bd6}, + {0x81329735, 0xffff0bd7}, + {0x81329736, 0xffff0bd8}, + {0x81329737, 0xffff0bd9}, + {0x81329738, 0xffff0bda}, + {0x81329739, 0xffff0bdb}, + {0x81329830, 0xffff0bdc}, + {0x81329831, 0xffff0bdd}, + {0x81329832, 0xffff0bde}, + {0x81329833, 0xffff0bdf}, + {0x81329834, 0xffff0be0}, + {0x81329835, 0xffff0be1}, + {0x81329836, 0xffff0be2}, + {0x81329837, 0xffff0be3}, + {0x81329838, 0xffff0be4}, + {0x81329839, 0xffff0be5}, + {0x81329930, 0xffff0be6}, + {0x81329931, 0xffff0be7}, + {0x81329932, 0xffff0be8}, + {0x81329933, 0xffff0be9}, + {0x81329934, 0xffff0bea}, + {0x81329935, 0xffff0beb}, + {0x81329936, 0xffff0bec}, + {0x81329937, 0xffff0bed}, + {0x81329938, 0xffff0bee}, + {0x81329939, 0xffff0bef}, + {0x81329a30, 0xffff0bf0}, + {0x81329a31, 0xffff0bf1}, + {0x81329a32, 0xffff0bf2}, + {0x81329a33, 0xffff0bf3}, + {0x81329a34, 0xffff0bf4}, + {0x81329a35, 0xffff0bf5}, + {0x81329a36, 0xffff0bf6}, + {0x81329a37, 0xffff0bf7}, + {0x81329a38, 0xffff0bf8}, + {0x81329a39, 0xffff0bf9}, + {0x81329b30, 0xffff0bfa}, + {0x81329b31, 0xffff0bfb}, + {0x81329b32, 0xffff0bfc}, + {0x81329b33, 0xffff0bfd}, + {0x81329b34, 0xffff0bfe}, + {0x81329b35, 0xffff0bff}, + {0x81329b36, 0xffff0c00}, + {0x81329c30, 0xffff0c04}, + {0x81329c31, 0xffff0c05}, + {0x81329c32, 0xffff0c06}, + {0x81329c33, 0xffff0c07}, + {0x81329c34, 0xffff0c08}, + {0x81329c35, 0xffff0c09}, + {0x81329c36, 0xffff0c0a}, + {0x81329c37, 0xffff0c0b}, + {0x81329c38, 0xffff0c0c}, + {0x81329c39, 0xffff0c0d}, + {0x81329d30, 0xffff0c0e}, + {0x81329d31, 0xffff0c0f}, + {0x81329d32, 0xffff0c10}, + {0x81329d33, 0xffff0c11}, + {0x81329d34, 0xffff0c12}, + {0x81329d35, 0xffff0c13}, + {0x81329d36, 0xffff0c14}, + {0x81329d37, 0xffff0c15}, + {0x81329d38, 0xffff0c16}, + {0x81329d39, 0xffff0c17}, + {0x81329e30, 0xffff0c18}, + {0x81329e31, 0xffff0c19}, + {0x81329e32, 0xffff0c1a}, + {0x81329e33, 0xffff0c1b}, + {0x81329e34, 0xffff0c1c}, + {0x81329e35, 0xffff0c1d}, + {0x81329e36, 0xffff0c1e}, + {0x81329e37, 0xffff0c1f}, + {0x81329e38, 0xffff0c20}, + {0x81329e39, 0xffff0c21}, + {0x81329f30, 0xffff0c22}, + {0x81329f31, 0xffff0c23}, + {0x81329f32, 0xffff0c24}, + {0x81329f33, 0xffff0c25}, + {0x81329f34, 0xffff0c26}, + {0x81329f35, 0xffff0c27}, + {0x81329f36, 0xffff0c28}, + {0x81329f37, 0xffff0c29}, + {0x81329f38, 0xffff0c2a}, + {0x81329f39, 0xffff0c2b}, + {0x8132a030, 0xffff0c2c}, + {0x8132a031, 0xffff0c2d}, + {0x8132a032, 0xffff0c2e}, + {0x8132a033, 0xffff0c2f}, + {0x8132a034, 0xffff0c30}, + {0x8132a035, 0xffff0c31}, + {0x8132a036, 0xffff0c32}, + {0x8132a037, 0xffff0c33}, + {0x8132a038, 0xffff0c34}, + {0x8132a039, 0xffff0c35}, + {0x8132a130, 0xffff0c36}, + {0x8132a131, 0xffff0c37}, + {0x8132a132, 0xffff0c38}, + {0x8132a133, 0xffff0c39}, + {0x8132a134, 0xffff0c3a}, + {0x8132a135, 0xffff0c3b}, + {0x8132a136, 0xffff0c3c}, + {0x8132a137, 0xffff0c3d}, + {0x8132a138, 0xffff0c3e}, + {0x8132a139, 0xffff0c3f}, + {0x8132a230, 0xffff0c40}, + {0x8132a231, 0xffff0c41}, + {0x8132a232, 0xffff0c42}, + {0x8132a233, 0xffff0c43}, + {0x8132a234, 0xffff0c44}, + {0x8132a235, 0xffff0c45}, + {0x8132a236, 0xffff0c46}, + {0x8132a237, 0xffff0c47}, + {0x8132a239, 0xffff0c49}, + {0x8132a330, 0xffff0c4a}, + {0x8132a331, 0xffff0c4b}, + {0x8132a332, 0xffff0c4c}, + {0x8132a333, 0xffff0c4d}, + {0x8132a334, 0xffff0c4e}, + {0x8132a335, 0xffff0c4f}, + {0x8132a336, 0xffff0c50}, + {0x8132a337, 0xffff0c51}, + {0x8132a338, 0xffff0c52}, + {0x8132a339, 0xffff0c53}, + {0x8132a430, 0xffff0c54}, + {0x8132a431, 0xffff0c55}, + {0x8132a432, 0xffff0c56}, + {0x8132a433, 0xffff0c57}, + {0x8132a434, 0xffff0c58}, + {0x8132a435, 0xffff0c59}, + {0x8132a436, 0xffff0c5a}, + {0x8132a437, 0xffff0c5b}, + {0x8132a438, 0xffff0c5c}, + {0x8132a439, 0xffff0c5d}, + {0x8132a530, 0xffff0c5e}, + {0x8132a531, 0xffff0c5f}, + {0x8132a532, 0xffff0c60}, + {0x8132a533, 0xffff0c61}, + {0x8132a534, 0xffff0c62}, + {0x8132a535, 0xffff0c63}, + {0x8132a536, 0xffff0c64}, + {0x8132a537, 0xffff0c65}, + {0x8132a538, 0xffff0c66}, + {0x8132a539, 0xffff0c67}, + {0x8132a630, 0xffff0c68}, + {0x8132a631, 0xffff0c69}, + {0x8132a632, 0xffff0c6a}, + {0x8132a633, 0xffff0c6b}, + {0x8132a634, 0xffff0c6c}, + {0x8132a635, 0xffff0c6d}, + {0x8132a636, 0xffff0c6e}, + {0x8132a637, 0xffff0c6f}, + {0x8132a638, 0xffff0c70}, + {0x8132a639, 0xffff0c71}, + {0x8132a730, 0xffff0c72}, + {0x8132a731, 0xffff0c73}, + {0x8132a732, 0xffff0c74}, + {0x8132a733, 0xffff0c75}, + {0x8132a734, 0xffff0c76}, + {0x8132a735, 0xffff0c77}, + {0x8132a736, 0xffff0c78}, + {0x8132a737, 0xffff0c79}, + {0x8132a738, 0xffff0c7a}, + {0x8132a739, 0xffff0c7b}, + {0x8132a830, 0xffff0c7c}, + {0x8132a831, 0xffff0c7d}, + {0x8132a832, 0xffff0c7e}, + {0x8132a833, 0xffff0c7f}, + {0x8132a834, 0xffff0c80}, + {0x8132a835, 0xffff0c81}, + {0x8132a838, 0xffff0c84}, + {0x8132a839, 0xffff0c85}, + {0x8132a930, 0xffff0c86}, + {0x8132a931, 0xffff0c87}, + {0x8132a932, 0xffff0c88}, + {0x8132a933, 0xffff0c89}, + {0x8132a934, 0xffff0c8a}, + {0x8132a935, 0xffff0c8b}, + {0x8132a936, 0xffff0c8c}, + {0x8132a937, 0xffff0c8d}, + {0x8132a938, 0xffff0c8e}, + {0x8132a939, 0xffff0c8f}, + {0x8132aa30, 0xffff0c90}, + {0x8132aa31, 0xffff0c91}, + {0x8132aa32, 0xffff0c92}, + {0x8132aa33, 0xffff0c93}, + {0x8132aa34, 0xffff0c94}, + {0x8132aa35, 0xffff0c95}, + {0x8132aa36, 0xffff0c96}, + {0x8132aa37, 0xffff0c97}, + {0x8132aa38, 0xffff0c98}, + {0x8132aa39, 0xffff0c99}, + {0x8132ab30, 0xffff0c9a}, + {0x8132ab31, 0xffff0c9b}, + {0x8132ab32, 0xffff0c9c}, + {0x8132ab33, 0xffff0c9d}, + {0x8132ab34, 0xffff0c9e}, + {0x8132ab35, 0xffff0c9f}, + {0x8132ab36, 0xffff0ca0}, + {0x8132ab37, 0xffff0ca1}, + {0x8132ab38, 0xffff0ca2}, + {0x8132ab39, 0xffff0ca3}, + {0x8132ac30, 0xffff0ca4}, + {0x8132ac31, 0xffff0ca5}, + {0x8132ac32, 0xffff0ca6}, + {0x8132ac33, 0xffff0ca7}, + {0x8132ac34, 0xffff0ca8}, + {0x8132ac35, 0xffff0ca9}, + {0x8132ac36, 0xffff0caa}, + {0x8132ac37, 0xffff0cab}, + {0x8132ac38, 0xffff0cac}, + {0x8132ac39, 0xffff0cad}, + {0x8132ad30, 0xffff0cae}, + {0x8132ad31, 0xffff0caf}, + {0x8132ad32, 0xffff0cb0}, + {0x8132ad33, 0xffff0cb1}, + {0x8132ad34, 0xffff0cb2}, + {0x8132ad35, 0xffff0cb3}, + {0x8132ad36, 0xffff0cb4}, + {0x8132ad37, 0xffff0cb5}, + {0x8132ad38, 0xffff0cb6}, + {0x8132ad39, 0xffff0cb7}, + {0x8132ae30, 0xffff0cb8}, + {0x8132ae31, 0xffff0cb9}, + {0x8132ae32, 0xffff0cba}, + {0x8132ae33, 0xffff0cbb}, + {0x8132ae34, 0xffff0cbc}, + {0x8132ae35, 0xffff0cbd}, + {0x8132ae36, 0xffff0cbe}, + {0x8132ae37, 0xffff0cbf}, + {0x8132ae39, 0xffff0cc1}, + {0x8132af30, 0xffff0cc2}, + {0x8132af31, 0xffff0cc3}, + {0x8132af32, 0xffff0cc4}, + {0x8132af33, 0xffff0cc5}, + {0x8132af34, 0xffff0cc6}, + {0x8132af37, 0xffff0cc9}, + {0x8132b030, 0xffff0ccc}, + {0x8132b031, 0xffff0ccd}, + {0x8132b032, 0xffff0cce}, + {0x8132b033, 0xffff0ccf}, + {0x8132b034, 0xffff0cd0}, + {0x8132b035, 0xffff0cd1}, + {0x8132b036, 0xffff0cd2}, + {0x8132b037, 0xffff0cd3}, + {0x8132b038, 0xffff0cd4}, + {0x8132b039, 0xffff0cd5}, + {0x8132b130, 0xffff0cd6}, + {0x8132b131, 0xffff0cd7}, + {0x8132b132, 0xffff0cd8}, + {0x8132b133, 0xffff0cd9}, + {0x8132b134, 0xffff0cda}, + {0x8132b135, 0xffff0cdb}, + {0x8132b136, 0xffff0cdc}, + {0x8132b137, 0xffff0cdd}, + {0x8132b138, 0xffff0cde}, + {0x8132b139, 0xffff0cdf}, + {0x8132b230, 0xffff0ce0}, + {0x8132b231, 0xffff0ce1}, + {0x8132b232, 0xffff0ce2}, + {0x8132b233, 0xffff0ce3}, + {0x8132b234, 0xffff0ce4}, + {0x8132b235, 0xffff0ce5}, + {0x8132b236, 0xffff0ce6}, + {0x8132b237, 0xffff0ce7}, + {0x8132b238, 0xffff0ce8}, + {0x8132b239, 0xffff0ce9}, + {0x8132b330, 0xffff0cea}, + {0x8132b331, 0xffff0ceb}, + {0x8132b332, 0xffff0cec}, + {0x8132b333, 0xffff0ced}, + {0x8132b334, 0xffff0cee}, + {0x8132b335, 0xffff0cef}, + {0x8132b336, 0xffff0cf0}, + {0x8132b337, 0xffff0cf1}, + {0x8132b338, 0xffff0cf2}, + {0x8132b339, 0xffff0cf3}, + {0x8132b430, 0xffff0cf4}, + {0x8132b431, 0xffff0cf5}, + {0x8132b432, 0xffff0cf6}, + {0x8132b433, 0xffff0cf7}, + {0x8132b434, 0xffff0cf8}, + {0x8132b435, 0xffff0cf9}, + {0x8132b436, 0xffff0cfa}, + {0x8132b437, 0xffff0cfb}, + {0x8132b438, 0xffff0cfc}, + {0x8132b439, 0xffff0cfd}, + {0x8132b530, 0xffff0cfe}, + {0x8132b531, 0xffff0cff}, + {0x8132b532, 0xffff0d00}, + {0x8132b533, 0xffff0d01}, + {0x8132b536, 0xffff0d04}, + {0x8132b537, 0xffff0d05}, + {0x8132b538, 0xffff0d06}, + {0x8132b539, 0xffff0d07}, + {0x8132b630, 0xffff0d08}, + {0x8132b631, 0xffff0d09}, + {0x8132b632, 0xffff0d0a}, + {0x8132b633, 0xffff0d0b}, + {0x8132b634, 0xffff0d0c}, + {0x8132b635, 0xffff0d0d}, + {0x8132b636, 0xffff0d0e}, + {0x8132b637, 0xffff0d0f}, + {0x8132b638, 0xffff0d10}, + {0x8132b639, 0xffff0d11}, + {0x8132b730, 0xffff0d12}, + {0x8132b731, 0xffff0d13}, + {0x8132b732, 0xffff0d14}, + {0x8132b733, 0xffff0d15}, + {0x8132b734, 0xffff0d16}, + {0x8132b735, 0xffff0d17}, + {0x8132b736, 0xffff0d18}, + {0x8132b737, 0xffff0d19}, + {0x8132b738, 0xffff0d1a}, + {0x8132b739, 0xffff0d1b}, + {0x8132b830, 0xffff0d1c}, + {0x8132b831, 0xffff0d1d}, + {0x8132b832, 0xffff0d1e}, + {0x8132b833, 0xffff0d1f}, + {0x8132b834, 0xffff0d20}, + {0x8132b835, 0xffff0d21}, + {0x8132b836, 0xffff0d22}, + {0x8132b837, 0xffff0d23}, + {0x8132b838, 0xffff0d24}, + {0x8132b839, 0xffff0d25}, + {0x8132b930, 0xffff0d26}, + {0x8132b931, 0xffff0d27}, + {0x8132b932, 0xffff0d28}, + {0x8132b933, 0xffff0d29}, + {0x8132b934, 0xffff0d2a}, + {0x8132b935, 0xffff0d2b}, + {0x8132b936, 0xffff0d2c}, + {0x8132b937, 0xffff0d2d}, + {0x8132b938, 0xffff0d2e}, + {0x8132b939, 0xffff0d2f}, + {0x8132ba30, 0xffff0d30}, + {0x8132ba31, 0xffff0d31}, + {0x8132ba32, 0xffff0d32}, + {0x8132ba33, 0xffff0d33}, + {0x8132ba34, 0xffff0d34}, + {0x8132ba35, 0xffff0d35}, + {0x8132ba36, 0xffff0d36}, + {0x8132ba37, 0xffff0d37}, + {0x8132ba38, 0xffff0d38}, + {0x8132ba39, 0xffff0d39}, + {0x8132bb30, 0xffff0d3a}, + {0x8132bb31, 0xffff0d3b}, + {0x8132bb32, 0xffff0d3c}, + {0x8132bb33, 0xffff0d3d}, + {0x8132bb34, 0xffff0d3e}, + {0x8132bb35, 0xffff0d3f}, + {0x8132bb36, 0xffff0d40}, + {0x8132bb37, 0xffff0d41}, + {0x8132bb38, 0xffff0d42}, + {0x8132bb39, 0xffff0d43}, + {0x8132bc30, 0xffff0d44}, + {0x8132bc31, 0xffff0d45}, + {0x8132bc32, 0xffff0d46}, + {0x8132bc33, 0xffff0d47}, + {0x8132bc34, 0xffff0d48}, + {0x8132bc35, 0xffff0d49}, + {0x8132bc39, 0xffff0d4d}, + {0x8132bd30, 0xffff0d4e}, + {0x8132bd31, 0xffff0d4f}, + {0x8132bd32, 0xffff0d50}, + {0x8132bd33, 0xffff0d51}, + {0x8132bd34, 0xffff0d52}, + {0x8132bd35, 0xffff0d53}, + {0x8132bd36, 0xffff0d54}, + {0x8132bd37, 0xffff0d55}, + {0x8132bd38, 0xffff0d56}, + {0x8132bd39, 0xffff0d57}, + {0x8132be30, 0xffff0d58}, + {0x8132be31, 0xffff0d59}, + {0x8132be32, 0xffff0d5a}, + {0x8132be33, 0xffff0d5b}, + {0x8132be34, 0xffff0d5c}, + {0x8132be35, 0xffff0d5d}, + {0x8132be36, 0xffff0d5e}, + {0x8132be37, 0xffff0d5f}, + {0x8132be38, 0xffff0d60}, + {0x8132be39, 0xffff0d61}, + {0x8132bf30, 0xffff0d62}, + {0x8132bf31, 0xffff0d63}, + {0x8132bf32, 0xffff0d64}, + {0x8132bf33, 0xffff0d65}, + {0x8132bf34, 0xffff0d66}, + {0x8132bf35, 0xffff0d67}, + {0x8132bf36, 0xffff0d68}, + {0x8132bf37, 0xffff0d69}, + {0x8132bf38, 0xffff0d6a}, + {0x8132bf39, 0xffff0d6b}, + {0x8132c030, 0xffff0d6c}, + {0x8132c031, 0xffff0d6d}, + {0x8132c032, 0xffff0d6e}, + {0x8132c033, 0xffff0d6f}, + {0x8132c034, 0xffff0d70}, + {0x8132c035, 0xffff0d71}, + {0x8132c036, 0xffff0d72}, + {0x8132c037, 0xffff0d73}, + {0x8132c038, 0xffff0d74}, + {0x8132c039, 0xffff0d75}, + {0x8132c130, 0xffff0d76}, + {0x8132c131, 0xffff0d77}, + {0x8132c132, 0xffff0d78}, + {0x8132c133, 0xffff0d79}, + {0x8132c134, 0xffff0d7a}, + {0x8132c135, 0xffff0d7b}, + {0x8132c136, 0xffff0d7c}, + {0x8132c137, 0xffff0d7d}, + {0x8132c138, 0xffff0d7e}, + {0x8132c139, 0xffff0d7f}, + {0x8132c230, 0xffff0d80}, + {0x8132c231, 0xffff0d81}, + {0x8132c232, 0xffff0d82}, + {0x8132c233, 0xffff0d83}, + {0x8132c234, 0xffff0d84}, + {0x8132c235, 0xffff0d85}, + {0x8132c236, 0xffff0d86}, + {0x8132c237, 0xffff0d87}, + {0x8132c238, 0xffff0d88}, + {0x8132c239, 0xffff0d89}, + {0x8132c330, 0xffff0d8a}, + {0x8132c331, 0xffff0d8b}, + {0x8132c332, 0xffff0d8c}, + {0x8132c333, 0xffff0d8d}, + {0x8132c334, 0xffff0d8e}, + {0x8132c335, 0xffff0d8f}, + {0x8132c336, 0xffff0d90}, + {0x8132c337, 0xffff0d91}, + {0x8132c338, 0xffff0d92}, + {0x8132c339, 0xffff0d93}, + {0x8132c430, 0xffff0d94}, + {0x8132c431, 0xffff0d95}, + {0x8132c432, 0xffff0d96}, + {0x8132c433, 0xffff0d97}, + {0x8132c434, 0xffff0d98}, + {0x8132c435, 0xffff0d99}, + {0x8132c436, 0xffff0d9a}, + {0x8132c437, 0xffff0d9b}, + {0x8132c438, 0xffff0d9c}, + {0x8132c439, 0xffff0d9d}, + {0x8132c530, 0xffff0d9e}, + {0x8132c531, 0xffff0d9f}, + {0x8132c532, 0xffff0da0}, + {0x8132c533, 0xffff0da1}, + {0x8132c534, 0xffff0da2}, + {0x8132c535, 0xffff0da3}, + {0x8132c536, 0xffff0da4}, + {0x8132c537, 0xffff0da5}, + {0x8132c538, 0xffff0da6}, + {0x8132c539, 0xffff0da7}, + {0x8132c630, 0xffff0da8}, + {0x8132c631, 0xffff0da9}, + {0x8132c632, 0xffff0daa}, + {0x8132c633, 0xffff0dab}, + {0x8132c634, 0xffff0dac}, + {0x8132c635, 0xffff0dad}, + {0x8132c636, 0xffff0dae}, + {0x8132c637, 0xffff0daf}, + {0x8132c638, 0xffff0db0}, + {0x8132c639, 0xffff0db1}, + {0x8132c730, 0xffff0db2}, + {0x8132c731, 0xffff0db3}, + {0x8132c732, 0xffff0db4}, + {0x8132c733, 0xffff0db5}, + {0x8132c734, 0xffff0db6}, + {0x8132c735, 0xffff0db7}, + {0x8132c736, 0xffff0db8}, + {0x8132c737, 0xffff0db9}, + {0x8132c738, 0xffff0dba}, + {0x8132c739, 0xffff0dbb}, + {0x8132c830, 0xffff0dbc}, + {0x8132c831, 0xffff0dbd}, + {0x8132c832, 0xffff0dbe}, + {0x8132c833, 0xffff0dbf}, + {0x8132c834, 0xffff0dc0}, + {0x8132c835, 0xffff0dc1}, + {0x8132c836, 0xffff0dc2}, + {0x8132c837, 0xffff0dc3}, + {0x8132c838, 0xffff0dc4}, + {0x8132c839, 0xffff0dc5}, + {0x8132c930, 0xffff0dc6}, + {0x8132c931, 0xffff0dc7}, + {0x8132c932, 0xffff0dc8}, + {0x8132c933, 0xffff0dc9}, + {0x8132c934, 0xffff0dca}, + {0x8132c935, 0xffff0dcb}, + {0x8132c936, 0xffff0dcc}, + {0x8132c937, 0xffff0dcd}, + {0x8132c938, 0xffff0dce}, + {0x8132c939, 0xffff0dcf}, + {0x8132ca30, 0xffff0dd0}, + {0x8132ca31, 0xffff0dd1}, + {0x8132ca32, 0xffff0dd2}, + {0x8132ca33, 0xffff0dd3}, + {0x8132ca34, 0xffff0dd4}, + {0x8132ca35, 0xffff0dd5}, + {0x8132ca36, 0xffff0dd6}, + {0x8132ca37, 0xffff0dd7}, + {0x8132ca38, 0xffff0dd8}, + {0x8132ca39, 0xffff0dd9}, + {0x8132cb31, 0xffff0ddb}, + {0x8132cb35, 0xffff0ddf}, + {0x8132cb36, 0xffff0de0}, + {0x8132cb37, 0xffff0de1}, + {0x8132cb38, 0xffff0de2}, + {0x8132cb39, 0xffff0de3}, + {0x8132cc30, 0xffff0de4}, + {0x8132cc31, 0xffff0de5}, + {0x8132cc32, 0xffff0de6}, + {0x8132cc33, 0xffff0de7}, + {0x8132cc34, 0xffff0de8}, + {0x8132cc35, 0xffff0de9}, + {0x8132cc36, 0xffff0dea}, + {0x8132cc37, 0xffff0deb}, + {0x8132cc38, 0xffff0dec}, + {0x8132cc39, 0xffff0ded}, + {0x8132cd30, 0xffff0dee}, + {0x8132cd31, 0xffff0def}, + {0x8132cd32, 0xffff0df0}, + {0x8132cd33, 0xffff0df1}, + {0x8132cd34, 0xffff0df2}, + {0x8132cd35, 0xffff0df3}, + {0x8132cd36, 0xffff0df4}, + {0x8132cd37, 0xffff0df5}, + {0x8132cd38, 0xffff0df6}, + {0x8132cd39, 0xffff0df7}, + {0x8132ce30, 0xffff0df8}, + {0x8132ce31, 0xffff0df9}, + {0x8132ce32, 0xffff0dfa}, + {0x8132ce33, 0xffff0dfb}, + {0x8132ce34, 0xffff0dfc}, + {0x8132ce35, 0xffff0dfd}, + {0x8132ce36, 0xffff0dfe}, + {0x8132ce37, 0xffff0dff}, + {0x8132ce38, 0xffff0e00}, + {0x8132ce39, 0xffff0e01}, + {0x8132cf30, 0xffff0e02}, + {0x8132cf31, 0xffff0e03}, + {0x8132cf32, 0xffff0e04}, + {0x8132cf33, 0xffff0e05}, + {0x8132cf34, 0xffff0e06}, + {0x8132cf35, 0xffff0e07}, + {0x8132cf36, 0xffff0e08}, + {0x8132cf37, 0xffff0e09}, + {0x8132cf38, 0xffff0e0a}, + {0x8132cf39, 0xffff0e0b}, + {0x8132d030, 0xffff0e0c}, + {0x8132d031, 0xffff0e0d}, + {0x8132d032, 0xffff0e0e}, + {0x8132d033, 0xffff0e0f}, + {0x8132d034, 0xffff0e10}, + {0x8132d035, 0xffff0e11}, + {0x8132d036, 0xffff0e12}, + {0x8132d037, 0xffff0e13}, + {0x8132d038, 0xffff0e14}, + {0x8132d039, 0xffff0e15}, + {0x8132d130, 0xffff0e16}, + {0x8132d131, 0xffff0e17}, + {0x8132d132, 0xffff0e18}, + {0x8132d133, 0xffff0e19}, + {0x8132d134, 0xffff0e1a}, + {0x8132d135, 0xffff0e1b}, + {0x8132d136, 0xffff0e1c}, + {0x8132d137, 0xffff0e1d}, + {0x8132d138, 0xffff0e1e}, + {0x8132d139, 0xffff0e1f}, + {0x8132d230, 0xffff0e20}, + {0x8132d231, 0xffff0e21}, + {0x8132d232, 0xffff0e22}, + {0x8132d233, 0xffff0e23}, + {0x8132d234, 0xffff0e24}, + {0x8132d235, 0xffff0e25}, + {0x8132d236, 0xffff0e26}, + {0x8132d237, 0xffff0e27}, + {0x8132d238, 0xffff0e28}, + {0x8132d239, 0xffff0e29}, + {0x8132d330, 0xffff0e2a}, + {0x8132d331, 0xffff0e2b}, + {0x8132d332, 0xffff0e2c}, + {0x8132d333, 0xffff0e2d}, + {0x8132d334, 0xffff0e2e}, + {0x8132d335, 0xffff0e2f}, + {0x8132d336, 0xffff0e30}, + {0x8132d337, 0xffff0e31}, + {0x8132d338, 0xffff0e32}, + {0x8132d339, 0xffff0e33}, + {0x8132d430, 0xffff0e34}, + {0x8132d431, 0xffff0e35}, + {0x8132d432, 0xffff0e36}, + {0x8132d433, 0xffff0e37}, + {0x8132d434, 0xffff0e38}, + {0x8132d435, 0xffff0e39}, + {0x8132d436, 0xffff0e3a}, + {0x8132d437, 0xffff0e3b}, + {0x8132d438, 0xffff0e3c}, + {0x8132d439, 0xffff0e3d}, + {0x8132d530, 0xffff0e3e}, + {0x8132d531, 0x0090}, + {0x8132d532, 0xffff0e40}, + {0x8132d533, 0xffff0e41}, + {0x8132d534, 0xffff0e42}, + {0x8132d535, 0xffff0e43}, + {0x8132d536, 0xffff0e44}, + {0x8132d537, 0xffff0e45}, + {0x8132d538, 0xffff0e46}, + {0x8132d539, 0xffff0e47}, + {0x8132d634, 0xffff0e4c}, + {0x8132d635, 0xffff0e4d}, + {0x8132d636, 0xffff0e4e}, + {0x8132d637, 0xffff0e4f}, + {0x8132d638, 0xffff0e50}, + {0x8132d639, 0xffff0e51}, + {0x8132d730, 0xffff0e52}, + {0x8132d731, 0xffff0e53}, + {0x8132d732, 0xffff0e54}, + {0x8132d733, 0xffff0e55}, + {0x8132d734, 0xffff0e56}, + {0x8132d735, 0xffff0e57}, + {0x8132d736, 0xffff0e58}, + {0x8132d737, 0xffff0e59}, + {0x8132d738, 0xffff0e5a}, + {0x8132d739, 0xffff0e5b}, + {0x8132d830, 0xffff0e5c}, + {0x8132d831, 0xffff0e5d}, + {0x8132d832, 0xffff0e5e}, + {0x8132d833, 0xffff0e5f}, + {0x8132d834, 0xffff0e60}, + {0x8132d835, 0xffff0e61}, + {0x8132d836, 0xffff0e62}, + {0x8132d837, 0xffff0e63}, + {0x8132d838, 0xffff0e64}, + {0x8132d839, 0xffff0e65}, + {0x8132d930, 0xffff0e66}, + {0x8132d931, 0xffff0e67}, + {0x8132d932, 0xffff0e68}, + {0x8132d933, 0xffff0e69}, + {0x8132d934, 0xffff0e6a}, + {0x8132d935, 0xffff0e6b}, + {0x8132d936, 0xffff0e6c}, + {0x8132d937, 0xffff0e6d}, + {0x8132d938, 0xffff0e6e}, + {0x8132d939, 0xffff0e6f}, + {0x8132da30, 0xffff0e70}, + {0x8132da31, 0xffff0e71}, + {0x8132da32, 0xffff0e72}, + {0x8132da33, 0xffff0e73}, + {0x8132da34, 0xffff0e74}, + {0x8132da35, 0xffff0e75}, + {0x8132da36, 0xffff0e76}, + {0x8132da37, 0xffff0e77}, + {0x8132da38, 0xffff0e78}, + {0x8132da39, 0xffff0e79}, + {0x8132db30, 0xffff0e7a}, + {0x8132db31, 0xffff0e7b}, + {0x8132db32, 0xffff0e7c}, + {0x8132db33, 0xffff0e7d}, + {0x8132db34, 0xffff0e7e}, + {0x8132db35, 0xffff0e7f}, + {0x8132db36, 0xffff0e80}, + {0x8132db37, 0xffff0e81}, + {0x8132db38, 0xffff0e82}, + {0x8132db39, 0xffff0e83}, + {0x8132dc30, 0xffff0e84}, + {0x8132dc31, 0xffff0e85}, + {0x8132dc32, 0xffff0e86}, + {0x8132dc33, 0xffff0e87}, + {0x8132dc34, 0xffff0e88}, + {0x8132dc35, 0xffff0e89}, + {0x8132dc36, 0xffff0e8a}, + {0x8132dc37, 0xffff0e8b}, + {0x8132dc38, 0xffff0e8c}, + {0x8132dc39, 0xffff0e8d}, + {0x8132dd30, 0xffff0e8e}, + {0x8132dd31, 0xffff0e8f}, + {0x8132dd32, 0xffff0e90}, + {0x8132dd33, 0xffff0e91}, + {0x8132dd34, 0xffff0e92}, + {0x8132dd35, 0xffff0e93}, + {0x8132dd36, 0xffff0e94}, + {0x8132dd37, 0xffff0e95}, + {0x8132dd38, 0xffff0e96}, + {0x8132dd39, 0xffff0e97}, + {0x8132de30, 0xffff0e98}, + {0x8132de31, 0xffff0e99}, + {0x8132de32, 0xffff0e9a}, + {0x8132de33, 0xffff0e9b}, + {0x8132de34, 0xffff0e9c}, + {0x8132de35, 0xffff0e9d}, + {0x8132de36, 0xffff0e9e}, + {0x8132de37, 0xffff0e9f}, + {0x8132de38, 0xffff0ea0}, + {0x8132de39, 0xffff0ea1}, + {0x8132df30, 0xffff0ea2}, + {0x8132df31, 0xffff0ea3}, + {0x8132df32, 0xffff0ea4}, + {0x8132df33, 0xffff0ea5}, + {0x8132df34, 0xffff0ea6}, + {0x8132df35, 0xffff0ea7}, + {0x8132df36, 0xffff0ea8}, + {0x8132df37, 0xffff0ea9}, + {0x8132df38, 0xffff0eaa}, + {0x8132df39, 0xffff0eab}, + {0x8132e030, 0xffff0eac}, + {0x8132e031, 0xffff0ead}, + {0x8132e032, 0xffff0eae}, + {0x8132e033, 0xffff0eaf}, + {0x8132e034, 0xffff0eb0}, + {0x8132e035, 0xffff0eb1}, + {0x8132e036, 0xffff0eb2}, + {0x8132e037, 0xffff0eb3}, + {0x8132e038, 0xffff0eb4}, + {0x8132e039, 0xffff0eb5}, + {0x8132e130, 0xffff0eb6}, + {0x8132e131, 0xffff0eb7}, + {0x8132e132, 0xffff0eb8}, + {0x8132e133, 0xffff0eb9}, + {0x8132e134, 0xffff0eba}, + {0x8132e135, 0xffff0ebb}, + {0x8132e136, 0xffff0ebc}, + {0x8132e137, 0xffff0ebd}, + {0x8132e138, 0xffff0ebe}, + {0x8132e139, 0xffff0ebf}, + {0x8132e230, 0xffff0ec0}, + {0x8132e231, 0xffff0ec1}, + {0x8132e232, 0xffff0ec2}, + {0x8132e233, 0xffff0ec3}, + {0x8132e234, 0xffff0ec4}, + {0x8132e235, 0xffff0ec5}, + {0x8132e236, 0xffff0ec6}, + {0x8132e237, 0xffff0ec7}, + {0x8132e332, 0xffff0ecc}, + {0x8132e333, 0xffff0ecd}, + {0x8132e334, 0xffff0ece}, + {0x8132e335, 0xffff0ecf}, + {0x8132e336, 0xffff0ed0}, + {0x8132e337, 0xffff0ed1}, + {0x8132e338, 0xffff0ed2}, + {0x8132e339, 0xffff0ed3}, + {0x8132e430, 0xffff0ed4}, + {0x8132e431, 0xffff0ed5}, + {0x8132e432, 0xffff0ed6}, + {0x8132e433, 0xffff0ed7}, + {0x8132e434, 0xffff0ed8}, + {0x8132e435, 0xffff0ed9}, + {0x8132e436, 0xffff0eda}, + {0x8132e437, 0xffff0edb}, + {0x8132e438, 0xffff0edc}, + {0x8132e439, 0xffff0edd}, + {0x8132e530, 0xffff0ede}, + {0x8132e531, 0xffff0edf}, + {0x8132e532, 0xffff0ee0}, + {0x8132e533, 0xffff0ee1}, + {0x8132e534, 0xffff0ee2}, + {0x8132e535, 0xffff0ee3}, + {0x8132e536, 0xffff0ee4}, + {0x8132e537, 0xffff0ee5}, + {0x8132e538, 0xffff0ee6}, + {0x8132e539, 0xffff0ee7}, + {0x8132e630, 0xffff0ee8}, + {0x8132e631, 0xffff0ee9}, + {0x8132e632, 0xffff0eea}, + {0x8132e633, 0xffff0eeb}, + {0x8132e634, 0xffff0eec}, + {0x8132e635, 0xffff0eed}, + {0x8132e636, 0xffff0eee}, + {0x8132e637, 0xffff0eef}, + {0x8132e638, 0xffff0ef0}, + {0x8132e639, 0xffff0ef1}, + {0x8132e730, 0xffff0ef2}, + {0x8132e731, 0xffff0ef3}, + {0x8132e732, 0xffff0ef4}, + {0x8132e733, 0xffff0ef5}, + {0x8132e734, 0xffff0ef6}, + {0x8132e735, 0xffff0ef7}, + {0x8132e736, 0xffff0ef8}, + {0x8132e737, 0xffff0ef9}, + {0x8132e738, 0xffff0efa}, + {0x8132e739, 0xffff0efb}, + {0x8132e830, 0xffff0efc}, + {0x8132e831, 0xffff0efd}, + {0x8132e832, 0xffff0efe}, + {0x8132e833, 0xffff0eff}, + {0x8132e834, 0xffff0f00}, + {0x8132e835, 0xffff0f01}, + {0x8132e836, 0xffff0f02}, + {0x8132e837, 0xffff0f03}, + {0x8132e838, 0xffff0f04}, + {0x8132e839, 0xffff0f05}, + {0x8132e930, 0xffff0f06}, + {0x8132e931, 0xffff0f07}, + {0x8132e932, 0xffff0f08}, + {0x8132e933, 0xffff0f09}, + {0x8132e934, 0xffff0f0a}, + {0x8132e935, 0xffff0f0b}, + {0x8132e936, 0xffff0f0c}, + {0x8132e937, 0xffff0f0d}, + {0x8132e938, 0xffff0f0e}, + {0x8132e939, 0xffff0f0f}, + {0x8132ea30, 0xffff0f10}, + {0x8132ea31, 0xffff0f11}, + {0x8132ea32, 0xffff0f12}, + {0x8132ea33, 0xffff0f13}, + {0x8132ea34, 0xffff0f14}, + {0x8132ea35, 0xffff0f15}, + {0x8132ea36, 0xffff0f16}, + {0x8132ea37, 0xffff0f17}, + {0x8132ea38, 0xffff0f18}, + {0x8132ea39, 0xffff0f19}, + {0x8132eb30, 0xffff0f1a}, + {0x8132eb31, 0xffff0f1b}, + {0x8132eb32, 0xffff0f1c}, + {0x8132eb33, 0xffff0f1d}, + {0x8132eb34, 0xffff0f1e}, + {0x8132eb35, 0xffff0f1f}, + {0x8132eb36, 0xffff0f20}, + {0x8132eb37, 0xffff0f21}, + {0x8132eb38, 0xffff0f22}, + {0x8132eb39, 0xffff0f23}, + {0x8132ec30, 0xffff0f24}, + {0x8132ec31, 0xffff0f25}, + {0x8132ec32, 0xffff0f26}, + {0x8132ec33, 0xffff0f27}, + {0x8132ec34, 0xffff0f28}, + {0x8132ec35, 0xffff0f29}, + {0x8132ec36, 0xffff0f2a}, + {0x8132ec37, 0xffff0f2b}, + {0x8132ec38, 0xffff0f2c}, + {0x8132ec39, 0xffff0f2d}, + {0x8132ed30, 0xffff0f2e}, + {0x8132ed31, 0xffff0f2f}, + {0x8132ed32, 0xffff0f30}, + {0x8132ed33, 0xffff0f31}, + {0x8132ed34, 0xffff0f32}, + {0x8132ed35, 0xffff0f33}, + {0x8132ed36, 0xffff0f34}, + {0x8132ed37, 0xffff0f35}, + {0x8132ed38, 0xffff0f36}, + {0x8132ed39, 0xffff0f37}, + {0x8132ee30, 0xffff0f38}, + {0x8132ee32, 0xffff0f3a}, + {0x8132ee33, 0xffff0f3b}, + {0x8132ee34, 0xffff0f3c}, + {0x8132ee35, 0xffff0f3d}, + {0x8132ee36, 0xffff0f3e}, + {0x8132ee37, 0xffff0f3f}, + {0x8132ee38, 0xffff0f40}, + {0x8132ee39, 0xffff0f41}, + {0x8132ef30, 0xffff0f42}, + {0x8132ef31, 0xffff0f43}, + {0x8132ef32, 0xffff0f44}, + {0x8132ef33, 0xffff0f45}, + {0x8132ef34, 0xffff0f46}, + {0x8132ef35, 0xffff0f47}, + {0x8132ef36, 0xffff0f48}, + {0x8132ef37, 0xffff0f49}, + {0x8132ef38, 0xffff0f4a}, + {0x8132ef39, 0xffff0f4b}, + {0x8132f030, 0xffff0f4c}, + {0x8132f031, 0xffff0f4d}, + {0x8132f032, 0xffff0f4e}, + {0x8132f033, 0xffff0f4f}, + {0x8132f034, 0xffff0f50}, + {0x8132f035, 0xffff0f51}, + {0x8132f036, 0xffff0f52}, + {0x8132f037, 0xffff0f53}, + {0x8132f038, 0xffff0f54}, + {0x8132f039, 0xffff0f55}, + {0x8132f130, 0xffff0f56}, + {0x8132f131, 0xffff0f57}, + {0x8132f132, 0xffff0f58}, + {0x8132f133, 0xffff0f59}, + {0x8132f134, 0xffff0f5a}, + {0x8132f135, 0xffff0f5b}, + {0x8132f136, 0xffff0f5c}, + {0x8132f137, 0xffff0f5d}, + {0x8132f138, 0xffff0f5e}, + {0x8132f139, 0xffff0f5f}, + {0x8132f230, 0xffff0f60}, + {0x8132f231, 0xffff0f61}, + {0x8132f232, 0xffff0f62}, + {0x8132f233, 0xffff0f63}, + {0x8132f234, 0xffff0f64}, + {0x8132f235, 0xffff0f65}, + {0x8132f236, 0xffff0f66}, + {0x8132f237, 0xffff0f67}, + {0x8132f238, 0xffff0f68}, + {0x8132f239, 0xffff0f69}, + {0x8132f330, 0xffff0f6a}, + {0x8132f331, 0xffff0f6b}, + {0x8132f332, 0xffff0f6c}, + {0x8132f333, 0xffff0f6d}, + {0x8132f334, 0xffff0f6e}, + {0x8132f335, 0xffff0f6f}, + {0x8132f336, 0xffff0f70}, + {0x8132f337, 0xffff0f71}, + {0x8132f338, 0xffff0f72}, + {0x8132f430, 0xffff0f74}, + {0x8132f432, 0xffff0f76}, + {0x8132f433, 0xffff0f77}, + {0x8132f434, 0xffff0f78}, + {0x8132f435, 0xffff0f79}, + {0x8132f436, 0xffff0f7a}, + {0x8132f437, 0xffff0f7b}, + {0x8132f438, 0xffff0f7c}, + {0x8132f439, 0xffff0f7d}, + {0x8132f530, 0xffff0f7e}, + {0x8132f531, 0xffff0f7f}, + {0x8132f532, 0xffff0f80}, + {0x8132f534, 0xffff0f82}, + {0x8132f535, 0xffff0f83}, + {0x8132f536, 0xffff0f84}, + {0x8132f537, 0xffff0f85}, + {0x8132f538, 0xffff0f86}, + {0x8132f539, 0xffff0f87}, + {0x8132f630, 0xffff0f88}, + {0x8132f631, 0xffff0f89}, + {0x8132f632, 0xffff0f8a}, + {0x8132f633, 0xffff0f8b}, + {0x8132f634, 0xffff0f8c}, + {0x8132f635, 0xffff0f8d}, + {0x8132f636, 0xffff0f8e}, + {0x8132f637, 0xffff0f8f}, + {0x8132f638, 0xffff0f90}, + {0x8132f639, 0xffff0f91}, + {0x8132f730, 0xffff0f92}, + {0x8132f731, 0xffff0f93}, + {0x8132f732, 0xffff0f94}, + {0x8132f733, 0xffff0f95}, + {0x8132f734, 0xffff0f96}, + {0x8132f735, 0xffff0f97}, + {0x8132f736, 0xffff0f98}, + {0x8132f737, 0xffff0f99}, + {0x8132f738, 0xffff0f9a}, + {0x8132f739, 0xffff0f9b}, + {0x8132f830, 0xffff0f9c}, + {0x8132f831, 0xffff0f9d}, + {0x8132f832, 0xffff0f9e}, + {0x8132f833, 0xffff0f9f}, + {0x8132f834, 0xffff0fa0}, + {0x8132f835, 0xffff0fa1}, + {0x8132f836, 0xffff0fa2}, + {0x8132f837, 0xffff0fa3}, + {0x8132f838, 0xffff0fa4}, + {0x8132f839, 0xffff0fa5}, + {0x8132f930, 0xffff0fa6}, + {0x8132f931, 0xffff0fa7}, + {0x8132f932, 0xffff0fa8}, + {0x8132f933, 0xffff0fa9}, + {0x8132f934, 0xffff0faa}, + {0x8132f935, 0xffff0fab}, + {0x8132f936, 0xffff0fac}, + {0x8132f937, 0xffff0fad}, + {0x8132f938, 0xffff0fae}, + {0x8132f939, 0xffff0faf}, + {0x8132fa30, 0xffff0fb0}, + {0x8132fa31, 0xffff0fb1}, + {0x8132fa32, 0xffff0fb2}, + {0x8132fa33, 0xffff0fb3}, + {0x8132fa34, 0xffff0fb4}, + {0x8132fa35, 0xffff0fb5}, + {0x8132fa36, 0xffff0fb6}, + {0x8132fa37, 0xffff0fb7}, + {0x8132fa38, 0xffff0fb8}, + {0x8132fa39, 0xffff0fb9}, + {0x8132fb30, 0xffff0fba}, + {0x8132fb31, 0xffff0fbb}, + {0x8132fb32, 0xffff0fbc}, + {0x8132fb33, 0xffff0fbd}, + {0x8132fb34, 0xffff0fbe}, + {0x8132fb35, 0xffff0fbf}, + {0x8132fb36, 0xffff0fc0}, + {0x8132fb37, 0xffff0fc1}, + {0x8132fb38, 0xffff0fc2}, + {0x8132fb39, 0xffff0fc3}, + {0x8132fc30, 0xffff0fc4}, + {0x8132fc31, 0xffff0fc5}, + {0x8132fc32, 0xffff0fc6}, + {0x8132fc33, 0xffff0fc7}, + {0x8132fc34, 0xffff0fc8}, + {0x8132fc35, 0xffff0fc9}, + {0x8132fc36, 0xffff0fca}, + {0x8132fc37, 0xffff0fcb}, + {0x8132fc38, 0xffff0fcc}, + {0x8132fc39, 0xffff0fcd}, + {0x8132fd30, 0xffff0fce}, + {0x8132fd31, 0xffff0fcf}, + {0x8132fd32, 0xffff0fd0}, + {0x8132fd33, 0xffff0fd1}, + {0x8132fd34, 0xffff0fd2}, + {0x8132fd35, 0xffff0fd3}, + {0x8132fd36, 0xffff0fd4}, + {0x8132fd37, 0xffff0fd5}, + {0x8132fd38, 0xffff0fd6}, + {0x8132fd39, 0xffff0fd7}, + {0x8132fe30, 0xffff0fd8}, + {0x8132fe31, 0xffff0fd9}, + {0x8132fe32, 0xffff0fda}, + {0x8132fe33, 0xffff0fdb}, + {0x8132fe34, 0xffff0fdc}, + {0x8132fe35, 0xffff0fdd}, + {0x8132fe36, 0xffff0fde}, + {0x8132fe37, 0xffff0fdf}, + {0x8132fe38, 0xffff0fe0}, + {0x8132fe39, 0xffff0fe1}, + {0x81338130, 0xffff0fe2}, + {0x81338131, 0xffff0fe3}, + {0x81338132, 0xffff0fe4}, + {0x81338133, 0xffff0fe5}, + {0x81338134, 0xffff0fe6}, + {0x81338135, 0xffff0fe7}, + {0x81338136, 0xffff0fe8}, + {0x81338137, 0xffff0fe9}, + {0x81338138, 0xffff0fea}, + {0x81338139, 0xffff0feb}, + {0x81338230, 0xffff0fec}, + {0x81338231, 0xffff0fed}, + {0x81338232, 0xffff0fee}, + {0x81338233, 0xffff0fef}, + {0x81338234, 0xffff0ff0}, + {0x81338235, 0xffff0ff1}, + {0x81338236, 0xffff0ff2}, + {0x81338237, 0xffff0ff3}, + {0x81338238, 0xffff0ff4}, + {0x81338239, 0xffff0ff5}, + {0x81338330, 0xffff0ff6}, + {0x81338331, 0xffff0ff7}, + {0x81338332, 0xffff0ff8}, + {0x81338333, 0xffff0ff9}, + {0x81338334, 0xffff0ffa}, + {0x81338335, 0xffff0ffb}, + {0x81338336, 0xffff0ffc}, + {0x81338337, 0xffff0ffd}, + {0x81338338, 0xffff0ffe}, + {0x81338339, 0xffff0fff}, + {0x81338430, 0xffff1000}, + {0x81338431, 0xffff1001}, + {0x81338432, 0xffff1002}, + {0x81338433, 0xffff1003}, + {0x81338434, 0xffff1004}, + {0x81338435, 0xffff1005}, + {0x81338436, 0xffff1006}, + {0x81338437, 0xffff1007}, + {0x81338438, 0xffff1008}, + {0x81338439, 0xffff1009}, + {0x81338530, 0xffff100a}, + {0x81338531, 0xffff100b}, + {0x81338532, 0xffff100c}, + {0x81338533, 0xffff100d}, + {0x81338534, 0xffff100e}, + {0x81338535, 0xffff100f}, + {0x81338536, 0xffff1010}, + {0x81338537, 0xffff1011}, + {0x81338538, 0xffff1012}, + {0x81338539, 0xffff1013}, + {0x81338630, 0xffff1014}, + {0x81338631, 0xffff1015}, + {0x81338632, 0xffff1016}, + {0x81338633, 0xffff1017}, + {0x81338634, 0xffff1018}, + {0x81338635, 0xffff1019}, + {0x81338636, 0xffff101a}, + {0x81338637, 0xffff101b}, + {0x81338638, 0xffff101c}, + {0x81338639, 0xffff101d}, + {0x81338730, 0xffff101e}, + {0x81338731, 0xffff101f}, + {0x81338732, 0xffff1020}, + {0x81338733, 0xffff1021}, + {0x81338734, 0xffff1022}, + {0x81338735, 0xffff1023}, + {0x81338736, 0xffff1024}, + {0x81338737, 0xffff1025}, + {0x81338739, 0xffff1027}, + {0x81338830, 0xffff1028}, + {0x81338831, 0xffff1029}, + {0x81338832, 0xffff102a}, + {0x81338833, 0xffff102b}, + {0x81338834, 0xffff102c}, + {0x81338835, 0xffff102d}, + {0x81338836, 0xffff102e}, + {0x81338837, 0xffff102f}, + {0x81338838, 0xffff1030}, + {0x81338839, 0xffff1031}, + {0x81338930, 0xffff1032}, + {0x81338931, 0xffff1033}, + {0x81338932, 0xffff1034}, + {0x81338933, 0xffff1035}, + {0x81338934, 0xffff1036}, + {0x81338935, 0xffff1037}, + {0x81338936, 0xffff1038}, + {0x81338937, 0xffff1039}, + {0x81338938, 0xffff103a}, + {0x81338939, 0xffff103b}, + {0x81338a30, 0xffff103c}, + {0x81338a31, 0xffff103d}, + {0x81338a32, 0xffff103e}, + {0x81338a33, 0xffff103f}, + {0x81338a34, 0xffff1040}, + {0x81338a35, 0xffff1041}, + {0x81338a36, 0xffff1042}, + {0x81338a37, 0xffff1043}, + {0x81338a38, 0xffff1044}, + {0x81338a39, 0xffff1045}, + {0x81338b30, 0xffff1046}, + {0x81338b31, 0xffff1047}, + {0x81338b32, 0xffff1048}, + {0x81338b33, 0xffff1049}, + {0x81338b34, 0xffff104a}, + {0x81338b35, 0xffff104b}, + {0x81338b36, 0xffff104c}, + {0x81338b37, 0xffff104d}, + {0x81338b38, 0xffff104e}, + {0x81338b39, 0xffff104f}, + {0x81338c30, 0xffff1050}, + {0x81338c31, 0xffff1051}, + {0x81338c32, 0xffff1052}, + {0x81338c33, 0xffff1053}, + {0x81338c34, 0xffff1054}, + {0x81338c35, 0xffff1055}, + {0x81338c36, 0xffff1056}, + {0x81338c37, 0xffff1057}, + {0x81338c38, 0xffff1058}, + {0x81338c39, 0xffff1059}, + {0x81338d30, 0xffff105a}, + {0x81338d31, 0xffff105b}, + {0x81338d32, 0xffff105c}, + {0x81338d33, 0xffff105d}, + {0x81338d34, 0xffff105e}, + {0x81338d35, 0xffff105f}, + {0x81338d36, 0xffff1060}, + {0x81338d37, 0xffff1061}, + {0x81338d38, 0xffff1062}, + {0x81338d39, 0xffff1063}, + {0x81338e30, 0xffff1064}, + {0x81338e31, 0xffff1065}, + {0x81338e32, 0xffff1066}, + {0x81338e33, 0xffff1067}, + {0x81338e34, 0xffff1068}, + {0x81338e35, 0xffff1069}, + {0x81338e36, 0xffff106a}, + {0x81338e37, 0xffff106b}, + {0x81338e38, 0xffff106c}, + {0x81338e39, 0xffff106d}, + {0x81338f30, 0xffff106e}, + {0x81338f31, 0xffff106f}, + {0x81338f32, 0xffff1070}, + {0x81338f33, 0xffff1071}, + {0x81338f34, 0xffff1072}, + {0x81338f35, 0xffff1073}, + {0x81338f36, 0xffff1074}, + {0x81338f37, 0xffff1075}, + {0x81338f38, 0xffff1076}, + {0x81338f39, 0xffff1077}, + {0x81339030, 0xffff1078}, + {0x81339031, 0xffff1079}, + {0x81339032, 0xffff107a}, + {0x81339033, 0xffff107b}, + {0x81339034, 0xffff107c}, + {0x81339035, 0xffff107d}, + {0x81339036, 0xffff107e}, + {0x81339037, 0xffff107f}, + {0x81339038, 0xffff1080}, + {0x81339039, 0xffff1081}, + {0x81339130, 0xffff1082}, + {0x81339131, 0xffff1083}, + {0x81339132, 0xffff1084}, + {0x81339133, 0xffff1085}, + {0x81339134, 0xffff1086}, + {0x81339135, 0xffff1087}, + {0x81339136, 0xffff1088}, + {0x81339137, 0xffff1089}, + {0x81339138, 0xffff108a}, + {0x81339139, 0xffff108b}, + {0x81339230, 0xffff108c}, + {0x81339231, 0xffff108d}, + {0x81339232, 0xffff108e}, + {0x81339233, 0xffff108f}, + {0x81339234, 0xffff1090}, + {0x81339235, 0xffff1091}, + {0x81339236, 0xffff1092}, + {0x81339237, 0xffff1093}, + {0x81339238, 0xffff1094}, + {0x81339239, 0xffff1095}, + {0x81339330, 0xffff1096}, + {0x81339331, 0xffff1097}, + {0x81339332, 0xffff1098}, + {0x81339333, 0xffff1099}, + {0x81339334, 0xffff109a}, + {0x81339335, 0xffff109b}, + {0x81339336, 0xffff109c}, + {0x81339337, 0xffff109d}, + {0x81339338, 0xffff109e}, + {0x81339339, 0xffff109f}, + {0x81339430, 0x03af}, + {0x81339431, 0x03b0}, + {0x81339432, 0x03b1}, + {0x81339433, 0x03b2}, + {0x81339434, 0x03b3}, + {0x81339435, 0x03b4}, + {0x81339436, 0x03b5}, + {0x81339437, 0x03b7}, + {0x81339438, 0x03b8}, + {0x81339439, 0x03b9}, + {0x81339530, 0x03ba}, + {0x81339531, 0x03bb}, + {0x81339532, 0x03bc}, + {0x81339533, 0x03be}, + {0x81339534, 0x03bf}, + {0x81339535, 0x03c0}, + {0x81339536, 0x03c1}, + {0x81339537, 0x03c2}, + {0x81339538, 0x03c3}, + {0x81339539, 0x03c5}, + {0x81339630, 0x03c6}, + {0x81339631, 0x03c7}, + {0x81339632, 0x03c8}, + {0x81339633, 0x03c9}, + {0x81339634, 0x03ca}, + {0x81339635, 0x03cb}, + {0x81339636, 0x03cc}, + {0x81339637, 0x03cd}, + {0x81339638, 0x03ce}, + {0x81339639, 0x03cf}, + {0x81339730, 0x03d0}, + {0x81339731, 0x03d2}, + {0x81339732, 0x03d3}, + {0x81339733, 0x03b6}, + {0x81339734, 0x03bd}, + {0x81339735, 0x03c4}, + {0x81339736, 0x03d1}, + {0x81339737, 0x03d4}, + {0x81339738, 0xffff10c6}, + {0x81339739, 0xffff10c7}, + {0x81339830, 0xffff10c8}, + {0x81339831, 0xffff10c9}, + {0x81339832, 0xffff10ca}, + {0x81339833, 0xffff10cb}, + {0x81339834, 0xffff10cc}, + {0x81339835, 0xffff10cd}, + {0x81339836, 0xffff10ce}, + {0x81339837, 0xffff10cf}, + {0x81339838, 0x03af}, + {0x81339839, 0x03b0}, + {0x81339930, 0x03b1}, + {0x81339931, 0x03b2}, + {0x81339932, 0x03b3}, + {0x81339933, 0x03b4}, + {0x81339934, 0x03b5}, + {0x81339935, 0x03b7}, + {0x81339936, 0x03b8}, + {0x81339937, 0x03b9}, + {0x81339938, 0x03ba}, + {0x81339939, 0x03bb}, + {0x81339a30, 0x03bc}, + {0x81339a31, 0x03be}, + {0x81339a32, 0x03bf}, + {0x81339a33, 0x03c0}, + {0x81339a34, 0x03c1}, + {0x81339a35, 0x03c2}, + {0x81339a36, 0x03c3}, + {0x81339a37, 0x03c5}, + {0x81339a38, 0x03c6}, + {0x81339a39, 0x03c7}, + {0x81339b30, 0x03c8}, + {0x81339b31, 0x03c9}, + {0x81339b32, 0x03ca}, + {0x81339b33, 0x03cb}, + {0x81339b34, 0x03cc}, + {0x81339b35, 0x03cd}, + {0x81339b36, 0x03ce}, + {0x81339b37, 0x03cf}, + {0x81339b38, 0x03d0}, + {0x81339b39, 0x03d2}, + {0x81339c30, 0x03d3}, + {0x81339c31, 0x03b6}, + {0x81339c32, 0x03bd}, + {0x81339c33, 0x03c4}, + {0x81339c34, 0x03d1}, + {0x81339c35, 0x03d4}, + {0x81339c36, 0x03d5}, + {0x81339c37, 0xffff10f7}, + {0x81339c38, 0xffff10f8}, + {0x81339c39, 0xffff10f9}, + {0x81339d30, 0xffff10fa}, + {0x81339d31, 0xffff10fb}, + {0x81339d32, 0xffff10fc}, + {0x81339d33, 0xffff10fd}, + {0x81339d34, 0xffff10fe}, + {0x81339d35, 0xffff10ff}, + {0x81339d36, 0xffff1100}, + {0x81339d37, 0xffff1101}, + {0x81339d38, 0xffff1102}, + {0x81339d39, 0xffff1103}, + {0x81339e30, 0xffff1104}, + {0x81339e31, 0xffff1105}, + {0x81339e32, 0xffff1106}, + {0x81339e33, 0xffff1107}, + {0x81339e34, 0xffff1108}, + {0x81339e35, 0xffff1109}, + {0x81339e36, 0xffff110a}, + {0x81339e37, 0xffff110b}, + {0x81339e38, 0xffff110c}, + {0x81339e39, 0xffff110d}, + {0x81339f30, 0xffff110e}, + {0x81339f31, 0xffff110f}, + {0x81339f32, 0xffff1110}, + {0x81339f33, 0xffff1111}, + {0x81339f34, 0xffff1112}, + {0x81339f35, 0xffff1113}, + {0x81339f36, 0xffff1114}, + {0x81339f37, 0xffff1115}, + {0x81339f38, 0xffff1116}, + {0x81339f39, 0xffff1117}, + {0x8133a030, 0xffff1118}, + {0x8133a031, 0xffff1119}, + {0x8133a032, 0xffff111a}, + {0x8133a033, 0xffff111b}, + {0x8133a034, 0xffff111c}, + {0x8133a035, 0xffff111d}, + {0x8133a036, 0xffff111e}, + {0x8133a037, 0xffff111f}, + {0x8133a038, 0xffff1120}, + {0x8133a039, 0xffff1121}, + {0x8133a130, 0xffff1122}, + {0x8133a131, 0xffff1123}, + {0x8133a132, 0xffff1124}, + {0x8133a133, 0xffff1125}, + {0x8133a134, 0xffff1126}, + {0x8133a135, 0xffff1127}, + {0x8133a136, 0xffff1128}, + {0x8133a137, 0xffff1129}, + {0x8133a138, 0xffff112a}, + {0x8133a139, 0xffff112b}, + {0x8133a230, 0xffff112c}, + {0x8133a231, 0xffff112d}, + {0x8133a232, 0xffff112e}, + {0x8133a233, 0xffff112f}, + {0x8133a234, 0xffff1130}, + {0x8133a235, 0xffff1131}, + {0x8133a236, 0xffff1132}, + {0x8133a237, 0xffff1133}, + {0x8133a238, 0xffff1134}, + {0x8133a239, 0xffff1135}, + {0x8133a330, 0xffff1136}, + {0x8133a331, 0xffff1137}, + {0x8133a332, 0xffff1138}, + {0x8133a333, 0xffff1139}, + {0x8133a334, 0xffff113a}, + {0x8133a335, 0xffff113b}, + {0x8133a336, 0xffff113c}, + {0x8133a337, 0xffff113d}, + {0x8133a338, 0xffff113e}, + {0x8133a339, 0xffff113f}, + {0x8133a430, 0xffff1140}, + {0x8133a431, 0xffff1141}, + {0x8133a432, 0xffff1142}, + {0x8133a433, 0xffff1143}, + {0x8133a434, 0xffff1144}, + {0x8133a435, 0xffff1145}, + {0x8133a436, 0xffff1146}, + {0x8133a437, 0xffff1147}, + {0x8133a438, 0xffff1148}, + {0x8133a439, 0xffff1149}, + {0x8133a530, 0xffff114a}, + {0x8133a531, 0xffff114b}, + {0x8133a532, 0xffff114c}, + {0x8133a533, 0xffff114d}, + {0x8133a534, 0xffff114e}, + {0x8133a535, 0xffff114f}, + {0x8133a536, 0xffff1150}, + {0x8133a537, 0xffff1151}, + {0x8133a538, 0xffff1152}, + {0x8133a539, 0xffff1153}, + {0x8133a630, 0xffff1154}, + {0x8133a631, 0xffff1155}, + {0x8133a632, 0xffff1156}, + {0x8133a633, 0xffff1157}, + {0x8133a634, 0xffff1158}, + {0x8133a635, 0xffff1159}, + {0x8133a636, 0xffff115a}, + {0x8133a637, 0xffff115b}, + {0x8133a638, 0xffff115c}, + {0x8133a639, 0xffff115d}, + {0x8133a730, 0xffff115e}, + {0x8133a731, 0xffff115f}, + {0x8133a732, 0xffff1160}, + {0x8133a733, 0xffff1161}, + {0x8133a734, 0xffff1162}, + {0x8133a735, 0xffff1163}, + {0x8133a736, 0xffff1164}, + {0x8133a737, 0xffff1165}, + {0x8133a738, 0xffff1166}, + {0x8133a739, 0xffff1167}, + {0x8133a830, 0xffff1168}, + {0x8133a831, 0xffff1169}, + {0x8133a832, 0xffff116a}, + {0x8133a833, 0xffff116b}, + {0x8133a834, 0xffff116c}, + {0x8133a835, 0xffff116d}, + {0x8133a836, 0xffff116e}, + {0x8133a837, 0xffff116f}, + {0x8133a838, 0xffff1170}, + {0x8133a839, 0xffff1171}, + {0x8133a930, 0xffff1172}, + {0x8133a931, 0xffff1173}, + {0x8133a932, 0xffff1174}, + {0x8133a933, 0xffff1175}, + {0x8133a934, 0xffff1176}, + {0x8133a935, 0xffff1177}, + {0x8133a936, 0xffff1178}, + {0x8133a937, 0xffff1179}, + {0x8133a938, 0xffff117a}, + {0x8133a939, 0xffff117b}, + {0x8133aa30, 0xffff117c}, + {0x8133aa31, 0xffff117d}, + {0x8133aa32, 0xffff117e}, + {0x8133aa33, 0xffff117f}, + {0x8133aa34, 0xffff1180}, + {0x8133aa35, 0xffff1181}, + {0x8133aa36, 0xffff1182}, + {0x8133aa37, 0xffff1183}, + {0x8133aa38, 0xffff1184}, + {0x8133aa39, 0xffff1185}, + {0x8133ab30, 0xffff1186}, + {0x8133ab31, 0xffff1187}, + {0x8133ab32, 0xffff1188}, + {0x8133ab33, 0xffff1189}, + {0x8133ab34, 0xffff118a}, + {0x8133ab35, 0xffff118b}, + {0x8133ab36, 0xffff118c}, + {0x8133ab37, 0xffff118d}, + {0x8133ab38, 0xffff118e}, + {0x8133ab39, 0xffff118f}, + {0x8133ac30, 0xffff1190}, + {0x8133ac31, 0xffff1191}, + {0x8133ac32, 0xffff1192}, + {0x8133ac33, 0xffff1193}, + {0x8133ac34, 0xffff1194}, + {0x8133ac35, 0xffff1195}, + {0x8133ac36, 0xffff1196}, + {0x8133ac37, 0xffff1197}, + {0x8133ac38, 0xffff1198}, + {0x8133ac39, 0xffff1199}, + {0x8133ad30, 0xffff119a}, + {0x8133ad31, 0xffff119b}, + {0x8133ad32, 0xffff119c}, + {0x8133ad33, 0xffff119d}, + {0x8133ad34, 0xffff119e}, + {0x8133ad35, 0xffff119f}, + {0x8133ad36, 0xffff11a0}, + {0x8133ad37, 0xffff11a1}, + {0x8133ad38, 0xffff11a2}, + {0x8133ad39, 0xffff11a3}, + {0x8133ae30, 0xffff11a4}, + {0x8133ae31, 0xffff11a5}, + {0x8133ae32, 0xffff11a6}, + {0x8133ae33, 0xffff11a7}, + {0x8133ae34, 0xffff11a8}, + {0x8133ae35, 0xffff11a9}, + {0x8133ae36, 0xffff11aa}, + {0x8133ae37, 0xffff11ab}, + {0x8133ae38, 0xffff11ac}, + {0x8133ae39, 0xffff11ad}, + {0x8133af30, 0xffff11ae}, + {0x8133af31, 0xffff11af}, + {0x8133af32, 0xffff11b0}, + {0x8133af33, 0xffff11b1}, + {0x8133af34, 0xffff11b2}, + {0x8133af35, 0xffff11b3}, + {0x8133af36, 0xffff11b4}, + {0x8133af37, 0xffff11b5}, + {0x8133af38, 0xffff11b6}, + {0x8133af39, 0xffff11b7}, + {0x8133b030, 0xffff11b8}, + {0x8133b031, 0xffff11b9}, + {0x8133b032, 0xffff11ba}, + {0x8133b033, 0xffff11bb}, + {0x8133b034, 0xffff11bc}, + {0x8133b035, 0xffff11bd}, + {0x8133b036, 0xffff11be}, + {0x8133b037, 0xffff11bf}, + {0x8133b038, 0xffff11c0}, + {0x8133b039, 0xffff11c1}, + {0x8133b130, 0xffff11c2}, + {0x8133b131, 0xffff11c3}, + {0x8133b132, 0xffff11c4}, + {0x8133b133, 0xffff11c5}, + {0x8133b134, 0xffff11c6}, + {0x8133b135, 0xffff11c7}, + {0x8133b136, 0xffff11c8}, + {0x8133b137, 0xffff11c9}, + {0x8133b138, 0xffff11ca}, + {0x8133b139, 0xffff11cb}, + {0x8133b230, 0xffff11cc}, + {0x8133b231, 0xffff11cd}, + {0x8133b232, 0xffff11ce}, + {0x8133b233, 0xffff11cf}, + {0x8133b234, 0xffff11d0}, + {0x8133b235, 0xffff11d1}, + {0x8133b236, 0xffff11d2}, + {0x8133b237, 0xffff11d3}, + {0x8133b238, 0xffff11d4}, + {0x8133b239, 0xffff11d5}, + {0x8133b330, 0xffff11d6}, + {0x8133b331, 0xffff11d7}, + {0x8133b332, 0xffff11d8}, + {0x8133b333, 0xffff11d9}, + {0x8133b334, 0xffff11da}, + {0x8133b335, 0xffff11db}, + {0x8133b336, 0xffff11dc}, + {0x8133b337, 0xffff11dd}, + {0x8133b338, 0xffff11de}, + {0x8133b339, 0xffff11df}, + {0x8133b430, 0xffff11e0}, + {0x8133b431, 0xffff11e1}, + {0x8133b432, 0xffff11e2}, + {0x8133b433, 0xffff11e3}, + {0x8133b434, 0xffff11e4}, + {0x8133b435, 0xffff11e5}, + {0x8133b436, 0xffff11e6}, + {0x8133b437, 0xffff11e7}, + {0x8133b438, 0xffff11e8}, + {0x8133b439, 0xffff11e9}, + {0x8133b530, 0xffff11ea}, + {0x8133b531, 0xffff11eb}, + {0x8133b532, 0xffff11ec}, + {0x8133b533, 0xffff11ed}, + {0x8133b534, 0xffff11ee}, + {0x8133b535, 0xffff11ef}, + {0x8133b536, 0xffff11f0}, + {0x8133b537, 0xffff11f1}, + {0x8133b538, 0xffff11f2}, + {0x8133b539, 0xffff11f3}, + {0x8133b630, 0xffff11f4}, + {0x8133b631, 0xffff11f5}, + {0x8133b632, 0xffff11f6}, + {0x8133b633, 0xffff11f7}, + {0x8133b634, 0xffff11f8}, + {0x8133b635, 0xffff11f9}, + {0x8133b636, 0xffff11fa}, + {0x8133b637, 0xffff11fb}, + {0x8133b638, 0xffff11fc}, + {0x8133b639, 0xffff11fd}, + {0x8133b730, 0xffff11fe}, + {0x8133b731, 0xffff11ff}, + {0x8133b732, 0xffff1200}, + {0x8133b733, 0xffff1201}, + {0x8133b734, 0xffff1202}, + {0x8133b735, 0xffff1203}, + {0x8133b736, 0xffff1204}, + {0x8133b737, 0xffff1205}, + {0x8133b738, 0xffff1206}, + {0x8133b739, 0xffff1207}, + {0x8133b830, 0xffff1208}, + {0x8133b831, 0xffff1209}, + {0x8133b832, 0xffff120a}, + {0x8133b833, 0xffff120b}, + {0x8133b834, 0xffff120c}, + {0x8133b835, 0xffff120d}, + {0x8133b836, 0xffff120e}, + {0x8133b837, 0xffff120f}, + {0x8133b838, 0xffff1210}, + {0x8133b839, 0xffff1211}, + {0x8133b930, 0xffff1212}, + {0x8133b931, 0xffff1213}, + {0x8133b932, 0xffff1214}, + {0x8133b933, 0xffff1215}, + {0x8133b934, 0xffff1216}, + {0x8133b935, 0xffff1217}, + {0x8133b936, 0xffff1218}, + {0x8133b937, 0xffff1219}, + {0x8133b938, 0xffff121a}, + {0x8133b939, 0xffff121b}, + {0x8133ba30, 0xffff121c}, + {0x8133ba31, 0xffff121d}, + {0x8133ba32, 0xffff121e}, + {0x8133ba33, 0xffff121f}, + {0x8133ba34, 0xffff1220}, + {0x8133ba35, 0xffff1221}, + {0x8133ba36, 0xffff1222}, + {0x8133ba37, 0xffff1223}, + {0x8133ba38, 0xffff1224}, + {0x8133ba39, 0xffff1225}, + {0x8133bb30, 0xffff1226}, + {0x8133bb31, 0xffff1227}, + {0x8133bb32, 0xffff1228}, + {0x8133bb33, 0xffff1229}, + {0x8133bb34, 0xffff122a}, + {0x8133bb35, 0xffff122b}, + {0x8133bb36, 0xffff122c}, + {0x8133bb37, 0xffff122d}, + {0x8133bb38, 0xffff122e}, + {0x8133bb39, 0xffff122f}, + {0x8133bc30, 0xffff1230}, + {0x8133bc31, 0xffff1231}, + {0x8133bc32, 0xffff1232}, + {0x8133bc33, 0xffff1233}, + {0x8133bc34, 0xffff1234}, + {0x8133bc35, 0xffff1235}, + {0x8133bc36, 0xffff1236}, + {0x8133bc37, 0xffff1237}, + {0x8133bc38, 0xffff1238}, + {0x8133bc39, 0xffff1239}, + {0x8133bd30, 0xffff123a}, + {0x8133bd31, 0xffff123b}, + {0x8133bd32, 0xffff123c}, + {0x8133bd33, 0xffff123d}, + {0x8133bd34, 0xffff123e}, + {0x8133bd35, 0xffff123f}, + {0x8133bd36, 0xffff1240}, + {0x8133bd37, 0xffff1241}, + {0x8133bd38, 0xffff1242}, + {0x8133bd39, 0xffff1243}, + {0x8133be30, 0xffff1244}, + {0x8133be31, 0xffff1245}, + {0x8133be32, 0xffff1246}, + {0x8133be33, 0xffff1247}, + {0x8133be34, 0xffff1248}, + {0x8133be35, 0xffff1249}, + {0x8133be36, 0xffff124a}, + {0x8133be37, 0xffff124b}, + {0x8133be38, 0xffff124c}, + {0x8133be39, 0xffff124d}, + {0x8133bf30, 0xffff124e}, + {0x8133bf31, 0xffff124f}, + {0x8133bf32, 0xffff1250}, + {0x8133bf33, 0xffff1251}, + {0x8133bf34, 0xffff1252}, + {0x8133bf35, 0xffff1253}, + {0x8133bf36, 0xffff1254}, + {0x8133bf37, 0xffff1255}, + {0x8133bf38, 0xffff1256}, + {0x8133bf39, 0xffff1257}, + {0x8133c030, 0xffff1258}, + {0x8133c031, 0xffff1259}, + {0x8133c032, 0xffff125a}, + {0x8133c033, 0xffff125b}, + {0x8133c034, 0xffff125c}, + {0x8133c035, 0xffff125d}, + {0x8133c036, 0xffff125e}, + {0x8133c037, 0xffff125f}, + {0x8133c038, 0xffff1260}, + {0x8133c039, 0xffff1261}, + {0x8133c130, 0xffff1262}, + {0x8133c131, 0xffff1263}, + {0x8133c132, 0xffff1264}, + {0x8133c133, 0xffff1265}, + {0x8133c134, 0xffff1266}, + {0x8133c135, 0xffff1267}, + {0x8133c136, 0xffff1268}, + {0x8133c137, 0xffff1269}, + {0x8133c138, 0xffff126a}, + {0x8133c139, 0xffff126b}, + {0x8133c230, 0xffff126c}, + {0x8133c231, 0xffff126d}, + {0x8133c232, 0xffff126e}, + {0x8133c233, 0xffff126f}, + {0x8133c234, 0xffff1270}, + {0x8133c235, 0xffff1271}, + {0x8133c236, 0xffff1272}, + {0x8133c237, 0xffff1273}, + {0x8133c238, 0xffff1274}, + {0x8133c239, 0xffff1275}, + {0x8133c330, 0xffff1276}, + {0x8133c331, 0xffff1277}, + {0x8133c332, 0xffff1278}, + {0x8133c333, 0xffff1279}, + {0x8133c334, 0xffff127a}, + {0x8133c335, 0xffff127b}, + {0x8133c336, 0xffff127c}, + {0x8133c337, 0xffff127d}, + {0x8133c338, 0xffff127e}, + {0x8133c339, 0xffff127f}, + {0x8133c430, 0xffff1280}, + {0x8133c431, 0xffff1281}, + {0x8133c432, 0xffff1282}, + {0x8133c433, 0xffff1283}, + {0x8133c434, 0xffff1284}, + {0x8133c435, 0xffff1285}, + {0x8133c436, 0xffff1286}, + {0x8133c437, 0xffff1287}, + {0x8133c438, 0xffff1288}, + {0x8133c439, 0xffff1289}, + {0x8133c530, 0xffff128a}, + {0x8133c531, 0xffff128b}, + {0x8133c532, 0xffff128c}, + {0x8133c533, 0xffff128d}, + {0x8133c534, 0xffff128e}, + {0x8133c535, 0xffff128f}, + {0x8133c536, 0xffff1290}, + {0x8133c537, 0xffff1291}, + {0x8133c538, 0xffff1292}, + {0x8133c539, 0xffff1293}, + {0x8133c630, 0xffff1294}, + {0x8133c631, 0xffff1295}, + {0x8133c632, 0xffff1296}, + {0x8133c633, 0xffff1297}, + {0x8133c634, 0xffff1298}, + {0x8133c635, 0xffff1299}, + {0x8133c636, 0xffff129a}, + {0x8133c637, 0xffff129b}, + {0x8133c638, 0xffff129c}, + {0x8133c639, 0xffff129d}, + {0x8133c730, 0xffff129e}, + {0x8133c731, 0xffff129f}, + {0x8133c732, 0xffff12a0}, + {0x8133c733, 0xffff12a1}, + {0x8133c734, 0xffff12a2}, + {0x8133c735, 0xffff12a3}, + {0x8133c736, 0xffff12a4}, + {0x8133c737, 0xffff12a5}, + {0x8133c738, 0xffff12a6}, + {0x8133c739, 0xffff12a7}, + {0x8133c830, 0xffff12a8}, + {0x8133c831, 0xffff12a9}, + {0x8133c832, 0xffff12aa}, + {0x8133c833, 0xffff12ab}, + {0x8133c834, 0xffff12ac}, + {0x8133c835, 0xffff12ad}, + {0x8133c836, 0xffff12ae}, + {0x8133c837, 0xffff12af}, + {0x8133c838, 0xffff12b0}, + {0x8133c839, 0xffff12b1}, + {0x8133c930, 0xffff12b2}, + {0x8133c931, 0xffff12b3}, + {0x8133c932, 0xffff12b4}, + {0x8133c933, 0xffff12b5}, + {0x8133c934, 0xffff12b6}, + {0x8133c935, 0xffff12b7}, + {0x8133c936, 0xffff12b8}, + {0x8133c937, 0xffff12b9}, + {0x8133c938, 0xffff12ba}, + {0x8133c939, 0xffff12bb}, + {0x8133ca30, 0xffff12bc}, + {0x8133ca31, 0xffff12bd}, + {0x8133ca32, 0xffff12be}, + {0x8133ca33, 0xffff12bf}, + {0x8133ca34, 0xffff12c0}, + {0x8133ca35, 0xffff12c1}, + {0x8133ca36, 0xffff12c2}, + {0x8133ca37, 0xffff12c3}, + {0x8133ca38, 0xffff12c4}, + {0x8133ca39, 0xffff12c5}, + {0x8133cb30, 0xffff12c6}, + {0x8133cb31, 0xffff12c7}, + {0x8133cb32, 0xffff12c8}, + {0x8133cb33, 0xffff12c9}, + {0x8133cb34, 0xffff12ca}, + {0x8133cb35, 0xffff12cb}, + {0x8133cb36, 0xffff12cc}, + {0x8133cb37, 0xffff12cd}, + {0x8133cb38, 0xffff12ce}, + {0x8133cb39, 0xffff12cf}, + {0x8133cc30, 0xffff12d0}, + {0x8133cc31, 0xffff12d1}, + {0x8133cc32, 0xffff12d2}, + {0x8133cc33, 0xffff12d3}, + {0x8133cc34, 0xffff12d4}, + {0x8133cc35, 0xffff12d5}, + {0x8133cc36, 0xffff12d6}, + {0x8133cc37, 0xffff12d7}, + {0x8133cc38, 0xffff12d8}, + {0x8133cc39, 0xffff12d9}, + {0x8133cd30, 0xffff12da}, + {0x8133cd31, 0xffff12db}, + {0x8133cd32, 0xffff12dc}, + {0x8133cd33, 0xffff12dd}, + {0x8133cd34, 0xffff12de}, + {0x8133cd35, 0xffff12df}, + {0x8133cd36, 0xffff12e0}, + {0x8133cd37, 0xffff12e1}, + {0x8133cd38, 0xffff12e2}, + {0x8133cd39, 0xffff12e3}, + {0x8133ce30, 0xffff12e4}, + {0x8133ce31, 0xffff12e5}, + {0x8133ce32, 0xffff12e6}, + {0x8133ce33, 0xffff12e7}, + {0x8133ce34, 0xffff12e8}, + {0x8133ce35, 0xffff12e9}, + {0x8133ce36, 0xffff12ea}, + {0x8133ce37, 0xffff12eb}, + {0x8133ce38, 0xffff12ec}, + {0x8133ce39, 0xffff12ed}, + {0x8133cf30, 0xffff12ee}, + {0x8133cf31, 0xffff12ef}, + {0x8133cf32, 0xffff12f0}, + {0x8133cf33, 0xffff12f1}, + {0x8133cf34, 0xffff12f2}, + {0x8133cf35, 0xffff12f3}, + {0x8133cf36, 0xffff12f4}, + {0x8133cf37, 0xffff12f5}, + {0x8133cf38, 0xffff12f6}, + {0x8133cf39, 0xffff12f7}, + {0x8133d030, 0xffff12f8}, + {0x8133d031, 0xffff12f9}, + {0x8133d032, 0xffff12fa}, + {0x8133d033, 0xffff12fb}, + {0x8133d034, 0xffff12fc}, + {0x8133d035, 0xffff12fd}, + {0x8133d036, 0xffff12fe}, + {0x8133d037, 0xffff12ff}, + {0x8133d038, 0xffff1300}, + {0x8133d039, 0xffff1301}, + {0x8133d130, 0xffff1302}, + {0x8133d131, 0xffff1303}, + {0x8133d132, 0xffff1304}, + {0x8133d133, 0xffff1305}, + {0x8133d134, 0xffff1306}, + {0x8133d135, 0xffff1307}, + {0x8133d136, 0xffff1308}, + {0x8133d137, 0xffff1309}, + {0x8133d138, 0xffff130a}, + {0x8133d139, 0xffff130b}, + {0x8133d230, 0xffff130c}, + {0x8133d231, 0xffff130d}, + {0x8133d232, 0xffff130e}, + {0x8133d233, 0xffff130f}, + {0x8133d234, 0xffff1310}, + {0x8133d235, 0xffff1311}, + {0x8133d236, 0xffff1312}, + {0x8133d237, 0xffff1313}, + {0x8133d238, 0xffff1314}, + {0x8133d239, 0xffff1315}, + {0x8133d330, 0xffff1316}, + {0x8133d331, 0xffff1317}, + {0x8133d332, 0xffff1318}, + {0x8133d333, 0xffff1319}, + {0x8133d334, 0xffff131a}, + {0x8133d335, 0xffff131b}, + {0x8133d336, 0xffff131c}, + {0x8133d337, 0xffff131d}, + {0x8133d338, 0xffff131e}, + {0x8133d339, 0xffff131f}, + {0x8133d430, 0xffff1320}, + {0x8133d431, 0xffff1321}, + {0x8133d432, 0xffff1322}, + {0x8133d433, 0xffff1323}, + {0x8133d434, 0xffff1324}, + {0x8133d435, 0xffff1325}, + {0x8133d436, 0xffff1326}, + {0x8133d437, 0xffff1327}, + {0x8133d438, 0xffff1328}, + {0x8133d439, 0xffff1329}, + {0x8133d530, 0xffff132a}, + {0x8133d531, 0xffff132b}, + {0x8133d532, 0xffff132c}, + {0x8133d533, 0xffff132d}, + {0x8133d534, 0xffff132e}, + {0x8133d535, 0xffff132f}, + {0x8133d536, 0xffff1330}, + {0x8133d537, 0xffff1331}, + {0x8133d538, 0xffff1332}, + {0x8133d539, 0xffff1333}, + {0x8133d630, 0xffff1334}, + {0x8133d631, 0xffff1335}, + {0x8133d632, 0xffff1336}, + {0x8133d633, 0xffff1337}, + {0x8133d634, 0xffff1338}, + {0x8133d635, 0xffff1339}, + {0x8133d636, 0xffff133a}, + {0x8133d637, 0xffff133b}, + {0x8133d638, 0xffff133c}, + {0x8133d639, 0xffff133d}, + {0x8133d730, 0xffff133e}, + {0x8133d731, 0xffff133f}, + {0x8133d732, 0xffff1340}, + {0x8133d733, 0xffff1341}, + {0x8133d734, 0xffff1342}, + {0x8133d735, 0xffff1343}, + {0x8133d736, 0xffff1344}, + {0x8133d737, 0xffff1345}, + {0x8133d738, 0xffff1346}, + {0x8133d739, 0xffff1347}, + {0x8133d830, 0xffff1348}, + {0x8133d831, 0xffff1349}, + {0x8133d832, 0xffff134a}, + {0x8133d833, 0xffff134b}, + {0x8133d834, 0xffff134c}, + {0x8133d835, 0xffff134d}, + {0x8133d836, 0xffff134e}, + {0x8133d837, 0xffff134f}, + {0x8133d838, 0xffff1350}, + {0x8133d839, 0xffff1351}, + {0x8133d930, 0xffff1352}, + {0x8133d931, 0xffff1353}, + {0x8133d932, 0xffff1354}, + {0x8133d933, 0xffff1355}, + {0x8133d934, 0xffff1356}, + {0x8133d935, 0xffff1357}, + {0x8133d936, 0xffff1358}, + {0x8133d937, 0xffff1359}, + {0x8133d938, 0xffff135a}, + {0x8133d939, 0xffff135b}, + {0x8133da30, 0xffff135c}, + {0x8133da31, 0xffff135d}, + {0x8133da32, 0xffff135e}, + {0x8133da33, 0xffff135f}, + {0x8133da34, 0xffff1360}, + {0x8133da35, 0xffff1361}, + {0x8133da36, 0xffff1362}, + {0x8133da37, 0xffff1363}, + {0x8133da38, 0xffff1364}, + {0x8133da39, 0xffff1365}, + {0x8133db30, 0xffff1366}, + {0x8133db31, 0xffff1367}, + {0x8133db32, 0xffff1368}, + {0x8133db33, 0xffff1369}, + {0x8133db34, 0xffff136a}, + {0x8133db35, 0xffff136b}, + {0x8133db36, 0xffff136c}, + {0x8133db37, 0xffff136d}, + {0x8133db38, 0xffff136e}, + {0x8133db39, 0xffff136f}, + {0x8133dc30, 0xffff1370}, + {0x8133dc31, 0xffff1371}, + {0x8133dc32, 0xffff1372}, + {0x8133dc33, 0xffff1373}, + {0x8133dc34, 0xffff1374}, + {0x8133dc35, 0xffff1375}, + {0x8133dc36, 0xffff1376}, + {0x8133dc37, 0xffff1377}, + {0x8133dc38, 0xffff1378}, + {0x8133dc39, 0xffff1379}, + {0x8133dd30, 0xffff137a}, + {0x8133dd31, 0xffff137b}, + {0x8133dd32, 0xffff137c}, + {0x8133dd33, 0xffff137d}, + {0x8133dd34, 0xffff137e}, + {0x8133dd35, 0xffff137f}, + {0x8133dd36, 0xffff1380}, + {0x8133dd37, 0xffff1381}, + {0x8133dd38, 0xffff1382}, + {0x8133dd39, 0xffff1383}, + {0x8133de30, 0xffff1384}, + {0x8133de31, 0xffff1385}, + {0x8133de32, 0xffff1386}, + {0x8133de33, 0xffff1387}, + {0x8133de34, 0xffff1388}, + {0x8133de35, 0xffff1389}, + {0x8133de36, 0xffff138a}, + {0x8133de37, 0xffff138b}, + {0x8133de38, 0xffff138c}, + {0x8133de39, 0xffff138d}, + {0x8133df30, 0xffff138e}, + {0x8133df31, 0xffff138f}, + {0x8133df32, 0xffff1390}, + {0x8133df33, 0xffff1391}, + {0x8133df34, 0xffff1392}, + {0x8133df35, 0xffff1393}, + {0x8133df36, 0xffff1394}, + {0x8133df37, 0xffff1395}, + {0x8133df38, 0xffff1396}, + {0x8133df39, 0xffff1397}, + {0x8133e030, 0xffff1398}, + {0x8133e031, 0xffff1399}, + {0x8133e032, 0xffff139a}, + {0x8133e033, 0xffff139b}, + {0x8133e034, 0xffff139c}, + {0x8133e035, 0xffff139d}, + {0x8133e036, 0xffff139e}, + {0x8133e037, 0xffff139f}, + {0x8133e038, 0xffff13a0}, + {0x8133e039, 0xffff13a1}, + {0x8133e130, 0xffff13a2}, + {0x8133e131, 0xffff13a3}, + {0x8133e132, 0xffff13a4}, + {0x8133e133, 0xffff13a5}, + {0x8133e134, 0xffff13a6}, + {0x8133e135, 0xffff13a7}, + {0x8133e136, 0xffff13a8}, + {0x8133e137, 0xffff13a9}, + {0x8133e138, 0xffff13aa}, + {0x8133e139, 0xffff13ab}, + {0x8133e230, 0xffff13ac}, + {0x8133e231, 0xffff13ad}, + {0x8133e232, 0xffff13ae}, + {0x8133e233, 0xffff13af}, + {0x8133e234, 0xffff13b0}, + {0x8133e235, 0xffff13b1}, + {0x8133e236, 0xffff13b2}, + {0x8133e237, 0xffff13b3}, + {0x8133e238, 0xffff13b4}, + {0x8133e239, 0xffff13b5}, + {0x8133e330, 0xffff13b6}, + {0x8133e331, 0xffff13b7}, + {0x8133e332, 0xffff13b8}, + {0x8133e333, 0xffff13b9}, + {0x8133e334, 0xffff13ba}, + {0x8133e335, 0xffff13bb}, + {0x8133e336, 0xffff13bc}, + {0x8133e337, 0xffff13bd}, + {0x8133e338, 0xffff13be}, + {0x8133e339, 0xffff13bf}, + {0x8133e430, 0xffff13c0}, + {0x8133e431, 0xffff13c1}, + {0x8133e432, 0xffff13c2}, + {0x8133e433, 0xffff13c3}, + {0x8133e434, 0xffff13c4}, + {0x8133e435, 0xffff13c5}, + {0x8133e436, 0xffff13c6}, + {0x8133e437, 0xffff13c7}, + {0x8133e438, 0xffff13c8}, + {0x8133e439, 0xffff13c9}, + {0x8133e530, 0xffff13ca}, + {0x8133e531, 0xffff13cb}, + {0x8133e532, 0xffff13cc}, + {0x8133e533, 0xffff13cd}, + {0x8133e534, 0xffff13ce}, + {0x8133e535, 0xffff13cf}, + {0x8133e536, 0xffff13d0}, + {0x8133e537, 0xffff13d1}, + {0x8133e538, 0xffff13d2}, + {0x8133e539, 0xffff13d3}, + {0x8133e630, 0xffff13d4}, + {0x8133e631, 0xffff13d5}, + {0x8133e632, 0xffff13d6}, + {0x8133e633, 0xffff13d7}, + {0x8133e634, 0xffff13d8}, + {0x8133e635, 0xffff13d9}, + {0x8133e636, 0xffff13da}, + {0x8133e637, 0xffff13db}, + {0x8133e638, 0xffff13dc}, + {0x8133e639, 0xffff13dd}, + {0x8133e730, 0xffff13de}, + {0x8133e731, 0xffff13df}, + {0x8133e732, 0xffff13e0}, + {0x8133e733, 0xffff13e1}, + {0x8133e734, 0xffff13e2}, + {0x8133e735, 0xffff13e3}, + {0x8133e736, 0xffff13e4}, + {0x8133e737, 0xffff13e5}, + {0x8133e738, 0xffff13e6}, + {0x8133e739, 0xffff13e7}, + {0x8133e830, 0xffff13e8}, + {0x8133e831, 0xffff13e9}, + {0x8133e832, 0xffff13ea}, + {0x8133e833, 0xffff13eb}, + {0x8133e834, 0xffff13ec}, + {0x8133e835, 0xffff13ed}, + {0x8133e836, 0xffff13ee}, + {0x8133e837, 0xffff13ef}, + {0x8133e838, 0xffff13f0}, + {0x8133e839, 0xffff13f1}, + {0x8133e930, 0xffff13f2}, + {0x8133e931, 0xffff13f3}, + {0x8133e932, 0xffff13f4}, + {0x8133e933, 0xffff13f5}, + {0x8133e934, 0xffff13f6}, + {0x8133e935, 0xffff13f7}, + {0x8133e936, 0xffff13f8}, + {0x8133e937, 0xffff13f9}, + {0x8133e938, 0xffff13fa}, + {0x8133e939, 0xffff13fb}, + {0x8133ea30, 0xffff13fc}, + {0x8133ea31, 0xffff13fd}, + {0x8133ea32, 0xffff13fe}, + {0x8133ea33, 0xffff13ff}, + {0x8133ea34, 0xffff1400}, + {0x8133ea35, 0xffff1401}, + {0x8133ea36, 0xffff1402}, + {0x8133ea37, 0xffff1403}, + {0x8133ea38, 0xffff1404}, + {0x8133ea39, 0xffff1405}, + {0x8133eb30, 0xffff1406}, + {0x8133eb31, 0xffff1407}, + {0x8133eb32, 0xffff1408}, + {0x8133eb33, 0xffff1409}, + {0x8133eb34, 0xffff140a}, + {0x8133eb35, 0xffff140b}, + {0x8133eb36, 0xffff140c}, + {0x8133eb37, 0xffff140d}, + {0x8133eb38, 0xffff140e}, + {0x8133eb39, 0xffff140f}, + {0x8133ec30, 0xffff1410}, + {0x8133ec31, 0xffff1411}, + {0x8133ec32, 0xffff1412}, + {0x8133ec33, 0xffff1413}, + {0x8133ec34, 0xffff1414}, + {0x8133ec35, 0xffff1415}, + {0x8133ec36, 0xffff1416}, + {0x8133ec37, 0xffff1417}, + {0x8133ec38, 0xffff1418}, + {0x8133ec39, 0xffff1419}, + {0x8133ed30, 0xffff141a}, + {0x8133ed31, 0xffff141b}, + {0x8133ed32, 0xffff141c}, + {0x8133ed33, 0xffff141d}, + {0x8133ed34, 0xffff141e}, + {0x8133ed35, 0xffff141f}, + {0x8133ed36, 0xffff1420}, + {0x8133ed37, 0xffff1421}, + {0x8133ed38, 0xffff1422}, + {0x8133ed39, 0xffff1423}, + {0x8133ee30, 0xffff1424}, + {0x8133ee31, 0xffff1425}, + {0x8133ee32, 0xffff1426}, + {0x8133ee33, 0xffff1427}, + {0x8133ee34, 0xffff1428}, + {0x8133ee35, 0xffff1429}, + {0x8133ee36, 0xffff142a}, + {0x8133ee37, 0xffff142b}, + {0x8133ee38, 0xffff142c}, + {0x8133ee39, 0xffff142d}, + {0x8133ef30, 0xffff142e}, + {0x8133ef31, 0xffff142f}, + {0x8133ef32, 0xffff1430}, + {0x8133ef33, 0xffff1431}, + {0x8133ef34, 0xffff1432}, + {0x8133ef35, 0xffff1433}, + {0x8133ef36, 0xffff1434}, + {0x8133ef37, 0xffff1435}, + {0x8133ef38, 0xffff1436}, + {0x8133ef39, 0xffff1437}, + {0x8133f030, 0xffff1438}, + {0x8133f031, 0xffff1439}, + {0x8133f032, 0xffff143a}, + {0x8133f033, 0xffff143b}, + {0x8133f034, 0xffff143c}, + {0x8133f035, 0xffff143d}, + {0x8133f036, 0xffff143e}, + {0x8133f037, 0xffff143f}, + {0x8133f038, 0xffff1440}, + {0x8133f039, 0xffff1441}, + {0x8133f130, 0xffff1442}, + {0x8133f131, 0xffff1443}, + {0x8133f132, 0xffff1444}, + {0x8133f133, 0xffff1445}, + {0x8133f134, 0xffff1446}, + {0x8133f135, 0xffff1447}, + {0x8133f136, 0xffff1448}, + {0x8133f137, 0xffff1449}, + {0x8133f138, 0xffff144a}, + {0x8133f139, 0xffff144b}, + {0x8133f230, 0xffff144c}, + {0x8133f231, 0xffff144d}, + {0x8133f232, 0xffff144e}, + {0x8133f233, 0xffff144f}, + {0x8133f234, 0xffff1450}, + {0x8133f235, 0xffff1451}, + {0x8133f236, 0xffff1452}, + {0x8133f237, 0xffff1453}, + {0x8133f238, 0xffff1454}, + {0x8133f239, 0xffff1455}, + {0x8133f330, 0xffff1456}, + {0x8133f331, 0xffff1457}, + {0x8133f332, 0xffff1458}, + {0x8133f333, 0xffff1459}, + {0x8133f334, 0xffff145a}, + {0x8133f335, 0xffff145b}, + {0x8133f336, 0xffff145c}, + {0x8133f337, 0xffff145d}, + {0x8133f338, 0xffff145e}, + {0x8133f339, 0xffff145f}, + {0x8133f430, 0xffff1460}, + {0x8133f431, 0xffff1461}, + {0x8133f432, 0xffff1462}, + {0x8133f433, 0xffff1463}, + {0x8133f434, 0xffff1464}, + {0x8133f435, 0xffff1465}, + {0x8133f436, 0xffff1466}, + {0x8133f437, 0xffff1467}, + {0x8133f438, 0xffff1468}, + {0x8133f439, 0xffff1469}, + {0x8133f530, 0xffff146a}, + {0x8133f531, 0xffff146b}, + {0x8133f532, 0xffff146c}, + {0x8133f533, 0xffff146d}, + {0x8133f534, 0xffff146e}, + {0x8133f535, 0xffff146f}, + {0x8133f536, 0xffff1470}, + {0x8133f537, 0xffff1471}, + {0x8133f538, 0xffff1472}, + {0x8133f539, 0xffff1473}, + {0x8133f630, 0xffff1474}, + {0x8133f631, 0xffff1475}, + {0x8133f632, 0xffff1476}, + {0x8133f633, 0xffff1477}, + {0x8133f634, 0xffff1478}, + {0x8133f635, 0xffff1479}, + {0x8133f636, 0xffff147a}, + {0x8133f637, 0xffff147b}, + {0x8133f638, 0xffff147c}, + {0x8133f639, 0xffff147d}, + {0x8133f730, 0xffff147e}, + {0x8133f731, 0xffff147f}, + {0x8133f732, 0xffff1480}, + {0x8133f733, 0xffff1481}, + {0x8133f734, 0xffff1482}, + {0x8133f735, 0xffff1483}, + {0x8133f736, 0xffff1484}, + {0x8133f737, 0xffff1485}, + {0x8133f738, 0xffff1486}, + {0x8133f739, 0xffff1487}, + {0x8133f830, 0xffff1488}, + {0x8133f831, 0xffff1489}, + {0x8133f832, 0xffff148a}, + {0x8133f833, 0xffff148b}, + {0x8133f834, 0xffff148c}, + {0x8133f835, 0xffff148d}, + {0x8133f836, 0xffff148e}, + {0x8133f837, 0xffff148f}, + {0x8133f838, 0xffff1490}, + {0x8133f839, 0xffff1491}, + {0x8133f930, 0xffff1492}, + {0x8133f931, 0xffff1493}, + {0x8133f932, 0xffff1494}, + {0x8133f933, 0xffff1495}, + {0x8133f934, 0xffff1496}, + {0x8133f935, 0xffff1497}, + {0x8133f936, 0xffff1498}, + {0x8133f937, 0xffff1499}, + {0x8133f938, 0xffff149a}, + {0x8133f939, 0xffff149b}, + {0x8133fa30, 0xffff149c}, + {0x8133fa31, 0xffff149d}, + {0x8133fa32, 0xffff149e}, + {0x8133fa33, 0xffff149f}, + {0x8133fa34, 0xffff14a0}, + {0x8133fa35, 0xffff14a1}, + {0x8133fa36, 0xffff14a2}, + {0x8133fa37, 0xffff14a3}, + {0x8133fa38, 0xffff14a4}, + {0x8133fa39, 0xffff14a5}, + {0x8133fb30, 0xffff14a6}, + {0x8133fb31, 0xffff14a7}, + {0x8133fb32, 0xffff14a8}, + {0x8133fb33, 0xffff14a9}, + {0x8133fb34, 0xffff14aa}, + {0x8133fb35, 0xffff14ab}, + {0x8133fb36, 0xffff14ac}, + {0x8133fb37, 0xffff14ad}, + {0x8133fb38, 0xffff14ae}, + {0x8133fb39, 0xffff14af}, + {0x8133fc30, 0xffff14b0}, + {0x8133fc31, 0xffff14b1}, + {0x8133fc32, 0xffff14b2}, + {0x8133fc33, 0xffff14b3}, + {0x8133fc34, 0xffff14b4}, + {0x8133fc35, 0xffff14b5}, + {0x8133fc36, 0xffff14b6}, + {0x8133fc37, 0xffff14b7}, + {0x8133fc38, 0xffff14b8}, + {0x8133fc39, 0xffff14b9}, + {0x8133fd30, 0xffff14ba}, + {0x8133fd31, 0xffff14bb}, + {0x8133fd32, 0xffff14bc}, + {0x8133fd33, 0xffff14bd}, + {0x8133fd34, 0xffff14be}, + {0x8133fd35, 0xffff14bf}, + {0x8133fd36, 0xffff14c0}, + {0x8133fd37, 0xffff14c1}, + {0x8133fd38, 0xffff14c2}, + {0x8133fd39, 0xffff14c3}, + {0x8133fe30, 0xffff14c4}, + {0x8133fe31, 0xffff14c5}, + {0x8133fe32, 0xffff14c6}, + {0x8133fe33, 0xffff14c7}, + {0x8133fe34, 0xffff14c8}, + {0x8133fe35, 0xffff14c9}, + {0x8133fe36, 0xffff14ca}, + {0x8133fe37, 0xffff14cb}, + {0x8133fe38, 0xffff14cc}, + {0x8133fe39, 0xffff14cd}, + {0x81348130, 0xffff14ce}, + {0x81348131, 0xffff14cf}, + {0x81348132, 0xffff14d0}, + {0x81348133, 0xffff14d1}, + {0x81348134, 0xffff14d2}, + {0x81348135, 0xffff14d3}, + {0x81348136, 0xffff14d4}, + {0x81348137, 0xffff14d5}, + {0x81348138, 0xffff14d6}, + {0x81348139, 0xffff14d7}, + {0x81348230, 0xffff14d8}, + {0x81348231, 0xffff14d9}, + {0x81348232, 0xffff14da}, + {0x81348233, 0xffff14db}, + {0x81348234, 0xffff14dc}, + {0x81348235, 0xffff14dd}, + {0x81348236, 0xffff14de}, + {0x81348237, 0xffff14df}, + {0x81348238, 0xffff14e0}, + {0x81348239, 0xffff14e1}, + {0x81348330, 0xffff14e2}, + {0x81348331, 0xffff14e3}, + {0x81348332, 0xffff14e4}, + {0x81348333, 0xffff14e5}, + {0x81348334, 0xffff14e6}, + {0x81348335, 0xffff14e7}, + {0x81348336, 0xffff14e8}, + {0x81348337, 0xffff14e9}, + {0x81348338, 0xffff14ea}, + {0x81348339, 0xffff14eb}, + {0x81348430, 0xffff14ec}, + {0x81348431, 0xffff14ed}, + {0x81348432, 0xffff14ee}, + {0x81348433, 0xffff14ef}, + {0x81348434, 0xffff14f0}, + {0x81348435, 0xffff14f1}, + {0x81348436, 0xffff14f2}, + {0x81348437, 0xffff14f3}, + {0x81348438, 0xffff14f4}, + {0x81348439, 0xffff14f5}, + {0x81348530, 0xffff14f6}, + {0x81348531, 0xffff14f7}, + {0x81348532, 0xffff14f8}, + {0x81348533, 0xffff14f9}, + {0x81348534, 0xffff14fa}, + {0x81348535, 0xffff14fb}, + {0x81348536, 0xffff14fc}, + {0x81348537, 0xffff14fd}, + {0x81348538, 0xffff14fe}, + {0x81348539, 0xffff14ff}, + {0x81348630, 0xffff1500}, + {0x81348631, 0xffff1501}, + {0x81348632, 0xffff1502}, + {0x81348633, 0xffff1503}, + {0x81348634, 0xffff1504}, + {0x81348635, 0xffff1505}, + {0x81348636, 0xffff1506}, + {0x81348637, 0xffff1507}, + {0x81348638, 0xffff1508}, + {0x81348639, 0xffff1509}, + {0x81348730, 0xffff150a}, + {0x81348731, 0xffff150b}, + {0x81348732, 0xffff150c}, + {0x81348733, 0xffff150d}, + {0x81348734, 0xffff150e}, + {0x81348735, 0xffff150f}, + {0x81348736, 0xffff1510}, + {0x81348737, 0xffff1511}, + {0x81348738, 0xffff1512}, + {0x81348739, 0xffff1513}, + {0x81348830, 0xffff1514}, + {0x81348831, 0xffff1515}, + {0x81348832, 0xffff1516}, + {0x81348833, 0xffff1517}, + {0x81348834, 0xffff1518}, + {0x81348835, 0xffff1519}, + {0x81348836, 0xffff151a}, + {0x81348837, 0xffff151b}, + {0x81348838, 0xffff151c}, + {0x81348839, 0xffff151d}, + {0x81348930, 0xffff151e}, + {0x81348931, 0xffff151f}, + {0x81348932, 0xffff1520}, + {0x81348933, 0xffff1521}, + {0x81348934, 0xffff1522}, + {0x81348935, 0xffff1523}, + {0x81348936, 0xffff1524}, + {0x81348937, 0xffff1525}, + {0x81348938, 0xffff1526}, + {0x81348939, 0xffff1527}, + {0x81348a30, 0xffff1528}, + {0x81348a31, 0xffff1529}, + {0x81348a32, 0xffff152a}, + {0x81348a33, 0xffff152b}, + {0x81348a34, 0xffff152c}, + {0x81348a35, 0xffff152d}, + {0x81348a36, 0xffff152e}, + {0x81348a37, 0xffff152f}, + {0x81348a38, 0xffff1530}, + {0x81348a39, 0xffff1531}, + {0x81348b30, 0xffff1532}, + {0x81348b31, 0xffff1533}, + {0x81348b32, 0xffff1534}, + {0x81348b33, 0xffff1535}, + {0x81348b34, 0xffff1536}, + {0x81348b35, 0xffff1537}, + {0x81348b36, 0xffff1538}, + {0x81348b37, 0xffff1539}, + {0x81348b38, 0xffff153a}, + {0x81348b39, 0xffff153b}, + {0x81348c30, 0xffff153c}, + {0x81348c31, 0xffff153d}, + {0x81348c32, 0xffff153e}, + {0x81348c33, 0xffff153f}, + {0x81348c34, 0xffff1540}, + {0x81348c35, 0xffff1541}, + {0x81348c36, 0xffff1542}, + {0x81348c37, 0xffff1543}, + {0x81348c38, 0xffff1544}, + {0x81348c39, 0xffff1545}, + {0x81348d30, 0xffff1546}, + {0x81348d31, 0xffff1547}, + {0x81348d32, 0xffff1548}, + {0x81348d33, 0xffff1549}, + {0x81348d34, 0xffff154a}, + {0x81348d35, 0xffff154b}, + {0x81348d36, 0xffff154c}, + {0x81348d37, 0xffff154d}, + {0x81348d38, 0xffff154e}, + {0x81348d39, 0xffff154f}, + {0x81348e30, 0xffff1550}, + {0x81348e31, 0xffff1551}, + {0x81348e32, 0xffff1552}, + {0x81348e33, 0xffff1553}, + {0x81348e34, 0xffff1554}, + {0x81348e35, 0xffff1555}, + {0x81348e36, 0xffff1556}, + {0x81348e37, 0xffff1557}, + {0x81348e38, 0xffff1558}, + {0x81348e39, 0xffff1559}, + {0x81348f30, 0xffff155a}, + {0x81348f31, 0xffff155b}, + {0x81348f32, 0xffff155c}, + {0x81348f33, 0xffff155d}, + {0x81348f34, 0xffff155e}, + {0x81348f35, 0xffff155f}, + {0x81348f36, 0xffff1560}, + {0x81348f37, 0xffff1561}, + {0x81348f38, 0xffff1562}, + {0x81348f39, 0xffff1563}, + {0x81349030, 0xffff1564}, + {0x81349031, 0xffff1565}, + {0x81349032, 0xffff1566}, + {0x81349033, 0xffff1567}, + {0x81349034, 0xffff1568}, + {0x81349035, 0xffff1569}, + {0x81349036, 0xffff156a}, + {0x81349037, 0xffff156b}, + {0x81349038, 0xffff156c}, + {0x81349039, 0xffff156d}, + {0x81349130, 0xffff156e}, + {0x81349131, 0xffff156f}, + {0x81349132, 0xffff1570}, + {0x81349133, 0xffff1571}, + {0x81349134, 0xffff1572}, + {0x81349135, 0xffff1573}, + {0x81349136, 0xffff1574}, + {0x81349137, 0xffff1575}, + {0x81349138, 0xffff1576}, + {0x81349139, 0xffff1577}, + {0x81349230, 0xffff1578}, + {0x81349231, 0xffff1579}, + {0x81349232, 0xffff157a}, + {0x81349233, 0xffff157b}, + {0x81349234, 0xffff157c}, + {0x81349235, 0xffff157d}, + {0x81349236, 0xffff157e}, + {0x81349237, 0xffff157f}, + {0x81349238, 0xffff1580}, + {0x81349239, 0xffff1581}, + {0x81349330, 0xffff1582}, + {0x81349331, 0xffff1583}, + {0x81349332, 0xffff1584}, + {0x81349333, 0xffff1585}, + {0x81349334, 0xffff1586}, + {0x81349335, 0xffff1587}, + {0x81349336, 0xffff1588}, + {0x81349337, 0xffff1589}, + {0x81349338, 0xffff158a}, + {0x81349339, 0xffff158b}, + {0x81349430, 0xffff158c}, + {0x81349431, 0xffff158d}, + {0x81349432, 0xffff158e}, + {0x81349433, 0xffff158f}, + {0x81349434, 0xffff1590}, + {0x81349435, 0xffff1591}, + {0x81349436, 0xffff1592}, + {0x81349437, 0xffff1593}, + {0x81349438, 0xffff1594}, + {0x81349439, 0xffff1595}, + {0x81349530, 0xffff1596}, + {0x81349531, 0xffff1597}, + {0x81349532, 0xffff1598}, + {0x81349533, 0xffff1599}, + {0x81349534, 0xffff159a}, + {0x81349535, 0xffff159b}, + {0x81349536, 0xffff159c}, + {0x81349537, 0xffff159d}, + {0x81349538, 0xffff159e}, + {0x81349539, 0xffff159f}, + {0x81349630, 0xffff15a0}, + {0x81349631, 0xffff15a1}, + {0x81349632, 0xffff15a2}, + {0x81349633, 0xffff15a3}, + {0x81349634, 0xffff15a4}, + {0x81349635, 0xffff15a5}, + {0x81349636, 0xffff15a6}, + {0x81349637, 0xffff15a7}, + {0x81349638, 0xffff15a8}, + {0x81349639, 0xffff15a9}, + {0x81349730, 0xffff15aa}, + {0x81349731, 0xffff15ab}, + {0x81349732, 0xffff15ac}, + {0x81349733, 0xffff15ad}, + {0x81349734, 0xffff15ae}, + {0x81349735, 0xffff15af}, + {0x81349736, 0xffff15b0}, + {0x81349737, 0xffff15b1}, + {0x81349738, 0xffff15b2}, + {0x81349739, 0xffff15b3}, + {0x81349830, 0xffff15b4}, + {0x81349831, 0xffff15b5}, + {0x81349832, 0xffff15b6}, + {0x81349833, 0xffff15b7}, + {0x81349834, 0xffff15b8}, + {0x81349835, 0xffff15b9}, + {0x81349836, 0xffff15ba}, + {0x81349837, 0xffff15bb}, + {0x81349838, 0xffff15bc}, + {0x81349839, 0xffff15bd}, + {0x81349930, 0xffff15be}, + {0x81349931, 0xffff15bf}, + {0x81349932, 0xffff15c0}, + {0x81349933, 0xffff15c1}, + {0x81349934, 0xffff15c2}, + {0x81349935, 0xffff15c3}, + {0x81349936, 0xffff15c4}, + {0x81349937, 0xffff15c5}, + {0x81349938, 0xffff15c6}, + {0x81349939, 0xffff15c7}, + {0x81349a30, 0xffff15c8}, + {0x81349a31, 0xffff15c9}, + {0x81349a32, 0xffff15ca}, + {0x81349a33, 0xffff15cb}, + {0x81349a34, 0xffff15cc}, + {0x81349a35, 0xffff15cd}, + {0x81349a36, 0xffff15ce}, + {0x81349a37, 0xffff15cf}, + {0x81349a38, 0xffff15d0}, + {0x81349a39, 0xffff15d1}, + {0x81349b30, 0xffff15d2}, + {0x81349b31, 0xffff15d3}, + {0x81349b32, 0xffff15d4}, + {0x81349b33, 0xffff15d5}, + {0x81349b34, 0xffff15d6}, + {0x81349b35, 0xffff15d7}, + {0x81349b36, 0xffff15d8}, + {0x81349b37, 0xffff15d9}, + {0x81349b38, 0xffff15da}, + {0x81349b39, 0xffff15db}, + {0x81349c30, 0xffff15dc}, + {0x81349c31, 0xffff15dd}, + {0x81349c32, 0xffff15de}, + {0x81349c33, 0xffff15df}, + {0x81349c34, 0xffff15e0}, + {0x81349c35, 0xffff15e1}, + {0x81349c36, 0xffff15e2}, + {0x81349c37, 0xffff15e3}, + {0x81349c38, 0xffff15e4}, + {0x81349c39, 0xffff15e5}, + {0x81349d30, 0xffff15e6}, + {0x81349d31, 0xffff15e7}, + {0x81349d32, 0xffff15e8}, + {0x81349d33, 0xffff15e9}, + {0x81349d34, 0xffff15ea}, + {0x81349d35, 0xffff15eb}, + {0x81349d36, 0xffff15ec}, + {0x81349d37, 0xffff15ed}, + {0x81349d38, 0xffff15ee}, + {0x81349d39, 0xffff15ef}, + {0x81349e30, 0xffff15f0}, + {0x81349e31, 0xffff15f1}, + {0x81349e32, 0xffff15f2}, + {0x81349e33, 0xffff15f3}, + {0x81349e34, 0xffff15f4}, + {0x81349e35, 0xffff15f5}, + {0x81349e36, 0xffff15f6}, + {0x81349e37, 0xffff15f7}, + {0x81349e38, 0xffff15f8}, + {0x81349e39, 0xffff15f9}, + {0x81349f30, 0xffff15fa}, + {0x81349f31, 0xffff15fb}, + {0x81349f32, 0xffff15fc}, + {0x81349f33, 0xffff15fd}, + {0x81349f34, 0xffff15fe}, + {0x81349f35, 0xffff15ff}, + {0x81349f36, 0xffff1600}, + {0x81349f37, 0xffff1601}, + {0x81349f38, 0xffff1602}, + {0x81349f39, 0xffff1603}, + {0x8134a030, 0xffff1604}, + {0x8134a031, 0xffff1605}, + {0x8134a032, 0xffff1606}, + {0x8134a033, 0xffff1607}, + {0x8134a034, 0xffff1608}, + {0x8134a035, 0xffff1609}, + {0x8134a036, 0xffff160a}, + {0x8134a037, 0xffff160b}, + {0x8134a038, 0xffff160c}, + {0x8134a039, 0xffff160d}, + {0x8134a130, 0xffff160e}, + {0x8134a131, 0xffff160f}, + {0x8134a132, 0xffff1610}, + {0x8134a133, 0xffff1611}, + {0x8134a134, 0xffff1612}, + {0x8134a135, 0xffff1613}, + {0x8134a136, 0xffff1614}, + {0x8134a137, 0xffff1615}, + {0x8134a138, 0xffff1616}, + {0x8134a139, 0xffff1617}, + {0x8134a230, 0xffff1618}, + {0x8134a231, 0xffff1619}, + {0x8134a232, 0xffff161a}, + {0x8134a233, 0xffff161b}, + {0x8134a234, 0xffff161c}, + {0x8134a235, 0xffff161d}, + {0x8134a236, 0xffff161e}, + {0x8134a237, 0xffff161f}, + {0x8134a238, 0xffff1620}, + {0x8134a239, 0xffff1621}, + {0x8134a330, 0xffff1622}, + {0x8134a331, 0xffff1623}, + {0x8134a332, 0xffff1624}, + {0x8134a333, 0xffff1625}, + {0x8134a334, 0xffff1626}, + {0x8134a335, 0xffff1627}, + {0x8134a336, 0xffff1628}, + {0x8134a337, 0xffff1629}, + {0x8134a338, 0xffff162a}, + {0x8134a339, 0xffff162b}, + {0x8134a430, 0xffff162c}, + {0x8134a431, 0xffff162d}, + {0x8134a432, 0xffff162e}, + {0x8134a433, 0xffff162f}, + {0x8134a434, 0xffff1630}, + {0x8134a435, 0xffff1631}, + {0x8134a436, 0xffff1632}, + {0x8134a437, 0xffff1633}, + {0x8134a438, 0xffff1634}, + {0x8134a439, 0xffff1635}, + {0x8134a530, 0xffff1636}, + {0x8134a531, 0xffff1637}, + {0x8134a532, 0xffff1638}, + {0x8134a533, 0xffff1639}, + {0x8134a534, 0xffff163a}, + {0x8134a535, 0xffff163b}, + {0x8134a536, 0xffff163c}, + {0x8134a537, 0xffff163d}, + {0x8134a538, 0xffff163e}, + {0x8134a539, 0xffff163f}, + {0x8134a630, 0xffff1640}, + {0x8134a631, 0xffff1641}, + {0x8134a632, 0xffff1642}, + {0x8134a633, 0xffff1643}, + {0x8134a634, 0xffff1644}, + {0x8134a635, 0xffff1645}, + {0x8134a636, 0xffff1646}, + {0x8134a637, 0xffff1647}, + {0x8134a638, 0xffff1648}, + {0x8134a639, 0xffff1649}, + {0x8134a730, 0xffff164a}, + {0x8134a731, 0xffff164b}, + {0x8134a732, 0xffff164c}, + {0x8134a733, 0xffff164d}, + {0x8134a734, 0xffff164e}, + {0x8134a735, 0xffff164f}, + {0x8134a736, 0xffff1650}, + {0x8134a737, 0xffff1651}, + {0x8134a738, 0xffff1652}, + {0x8134a739, 0xffff1653}, + {0x8134a830, 0xffff1654}, + {0x8134a831, 0xffff1655}, + {0x8134a832, 0xffff1656}, + {0x8134a833, 0xffff1657}, + {0x8134a834, 0xffff1658}, + {0x8134a835, 0xffff1659}, + {0x8134a836, 0xffff165a}, + {0x8134a837, 0xffff165b}, + {0x8134a838, 0xffff165c}, + {0x8134a839, 0xffff165d}, + {0x8134a930, 0xffff165e}, + {0x8134a931, 0xffff165f}, + {0x8134a932, 0xffff1660}, + {0x8134a933, 0xffff1661}, + {0x8134a934, 0xffff1662}, + {0x8134a935, 0xffff1663}, + {0x8134a936, 0xffff1664}, + {0x8134a937, 0xffff1665}, + {0x8134a938, 0xffff1666}, + {0x8134a939, 0xffff1667}, + {0x8134aa30, 0xffff1668}, + {0x8134aa31, 0xffff1669}, + {0x8134aa32, 0xffff166a}, + {0x8134aa33, 0xffff166b}, + {0x8134aa34, 0xffff166c}, + {0x8134aa35, 0xffff166d}, + {0x8134aa36, 0xffff166e}, + {0x8134aa37, 0xffff166f}, + {0x8134aa38, 0xffff1670}, + {0x8134aa39, 0xffff1671}, + {0x8134ab30, 0xffff1672}, + {0x8134ab31, 0xffff1673}, + {0x8134ab32, 0xffff1674}, + {0x8134ab33, 0xffff1675}, + {0x8134ab34, 0xffff1676}, + {0x8134ab35, 0xffff1677}, + {0x8134ab36, 0xffff1678}, + {0x8134ab37, 0xffff1679}, + {0x8134ab38, 0xffff167a}, + {0x8134ab39, 0xffff167b}, + {0x8134ac30, 0xffff167c}, + {0x8134ac31, 0xffff167d}, + {0x8134ac32, 0xffff167e}, + {0x8134ac33, 0xffff167f}, + {0x8134ac34, 0xffff1680}, + {0x8134ac35, 0xffff1681}, + {0x8134ac36, 0xffff1682}, + {0x8134ac37, 0xffff1683}, + {0x8134ac38, 0xffff1684}, + {0x8134ac39, 0xffff1685}, + {0x8134ad30, 0xffff1686}, + {0x8134ad31, 0xffff1687}, + {0x8134ad32, 0xffff1688}, + {0x8134ad33, 0xffff1689}, + {0x8134ad34, 0xffff168a}, + {0x8134ad35, 0xffff168b}, + {0x8134ad36, 0xffff168c}, + {0x8134ad37, 0xffff168d}, + {0x8134ad38, 0xffff168e}, + {0x8134ad39, 0xffff168f}, + {0x8134ae30, 0xffff1690}, + {0x8134ae31, 0xffff1691}, + {0x8134ae32, 0xffff1692}, + {0x8134ae33, 0xffff1693}, + {0x8134ae34, 0xffff1694}, + {0x8134ae35, 0xffff1695}, + {0x8134ae36, 0xffff1696}, + {0x8134ae37, 0xffff1697}, + {0x8134ae38, 0xffff1698}, + {0x8134ae39, 0xffff1699}, + {0x8134af30, 0xffff169a}, + {0x8134af31, 0xffff169b}, + {0x8134af32, 0xffff169c}, + {0x8134af33, 0xffff169d}, + {0x8134af34, 0xffff169e}, + {0x8134af35, 0xffff169f}, + {0x8134af36, 0xffff16a0}, + {0x8134af37, 0xffff16a1}, + {0x8134af38, 0xffff16a2}, + {0x8134af39, 0xffff16a3}, + {0x8134b030, 0xffff16a4}, + {0x8134b031, 0xffff16a5}, + {0x8134b032, 0xffff16a6}, + {0x8134b033, 0xffff16a7}, + {0x8134b034, 0xffff16a8}, + {0x8134b035, 0xffff16a9}, + {0x8134b036, 0xffff16aa}, + {0x8134b037, 0xffff16ab}, + {0x8134b038, 0xffff16ac}, + {0x8134b039, 0xffff16ad}, + {0x8134b130, 0xffff16ae}, + {0x8134b131, 0xffff16af}, + {0x8134b132, 0xffff16b0}, + {0x8134b133, 0xffff16b1}, + {0x8134b134, 0xffff16b2}, + {0x8134b135, 0xffff16b3}, + {0x8134b136, 0xffff16b4}, + {0x8134b137, 0xffff16b5}, + {0x8134b138, 0xffff16b6}, + {0x8134b139, 0xffff16b7}, + {0x8134b230, 0xffff16b8}, + {0x8134b231, 0xffff16b9}, + {0x8134b232, 0xffff16ba}, + {0x8134b233, 0xffff16bb}, + {0x8134b234, 0xffff16bc}, + {0x8134b235, 0xffff16bd}, + {0x8134b236, 0xffff16be}, + {0x8134b237, 0xffff16bf}, + {0x8134b238, 0xffff16c0}, + {0x8134b239, 0xffff16c1}, + {0x8134b330, 0xffff16c2}, + {0x8134b331, 0xffff16c3}, + {0x8134b332, 0xffff16c4}, + {0x8134b333, 0xffff16c5}, + {0x8134b334, 0xffff16c6}, + {0x8134b335, 0xffff16c7}, + {0x8134b336, 0xffff16c8}, + {0x8134b337, 0xffff16c9}, + {0x8134b338, 0xffff16ca}, + {0x8134b339, 0xffff16cb}, + {0x8134b430, 0xffff16cc}, + {0x8134b431, 0xffff16cd}, + {0x8134b432, 0xffff16ce}, + {0x8134b433, 0xffff16cf}, + {0x8134b434, 0xffff16d0}, + {0x8134b435, 0xffff16d1}, + {0x8134b436, 0xffff16d2}, + {0x8134b437, 0xffff16d3}, + {0x8134b438, 0xffff16d4}, + {0x8134b439, 0xffff16d5}, + {0x8134b530, 0xffff16d6}, + {0x8134b531, 0xffff16d7}, + {0x8134b532, 0xffff16d8}, + {0x8134b533, 0xffff16d9}, + {0x8134b534, 0xffff16da}, + {0x8134b535, 0xffff16db}, + {0x8134b536, 0xffff16dc}, + {0x8134b537, 0xffff16dd}, + {0x8134b538, 0xffff16de}, + {0x8134b539, 0xffff16df}, + {0x8134b630, 0xffff16e0}, + {0x8134b631, 0xffff16e1}, + {0x8134b632, 0xffff16e2}, + {0x8134b633, 0xffff16e3}, + {0x8134b634, 0xffff16e4}, + {0x8134b635, 0xffff16e5}, + {0x8134b636, 0xffff16e6}, + {0x8134b637, 0xffff16e7}, + {0x8134b638, 0xffff16e8}, + {0x8134b639, 0xffff16e9}, + {0x8134b730, 0xffff16ea}, + {0x8134b731, 0xffff16eb}, + {0x8134b732, 0xffff16ec}, + {0x8134b733, 0xffff16ed}, + {0x8134b734, 0xffff16ee}, + {0x8134b735, 0xffff16ef}, + {0x8134b736, 0xffff16f0}, + {0x8134b737, 0xffff16f1}, + {0x8134b738, 0xffff16f2}, + {0x8134b739, 0xffff16f3}, + {0x8134b830, 0xffff16f4}, + {0x8134b831, 0xffff16f5}, + {0x8134b832, 0xffff16f6}, + {0x8134b833, 0xffff16f7}, + {0x8134b834, 0xffff16f8}, + {0x8134b835, 0xffff16f9}, + {0x8134b836, 0xffff16fa}, + {0x8134b837, 0xffff16fb}, + {0x8134b838, 0xffff16fc}, + {0x8134b839, 0xffff16fd}, + {0x8134b930, 0xffff16fe}, + {0x8134b931, 0xffff16ff}, + {0x8134b932, 0xffff1700}, + {0x8134b933, 0xffff1701}, + {0x8134b934, 0xffff1702}, + {0x8134b935, 0xffff1703}, + {0x8134b936, 0xffff1704}, + {0x8134b937, 0xffff1705}, + {0x8134b938, 0xffff1706}, + {0x8134b939, 0xffff1707}, + {0x8134ba30, 0xffff1708}, + {0x8134ba31, 0xffff1709}, + {0x8134ba32, 0xffff170a}, + {0x8134ba33, 0xffff170b}, + {0x8134ba34, 0xffff170c}, + {0x8134ba35, 0xffff170d}, + {0x8134ba36, 0xffff170e}, + {0x8134ba37, 0xffff170f}, + {0x8134ba38, 0xffff1710}, + {0x8134ba39, 0xffff1711}, + {0x8134bb30, 0xffff1712}, + {0x8134bb31, 0xffff1713}, + {0x8134bb32, 0xffff1714}, + {0x8134bb33, 0xffff1715}, + {0x8134bb34, 0xffff1716}, + {0x8134bb35, 0xffff1717}, + {0x8134bb36, 0xffff1718}, + {0x8134bb37, 0xffff1719}, + {0x8134bb38, 0xffff171a}, + {0x8134bb39, 0xffff171b}, + {0x8134bc30, 0xffff171c}, + {0x8134bc31, 0xffff171d}, + {0x8134bc32, 0xffff171e}, + {0x8134bc33, 0xffff171f}, + {0x8134bc34, 0xffff1720}, + {0x8134bc35, 0xffff1721}, + {0x8134bc36, 0xffff1722}, + {0x8134bc37, 0xffff1723}, + {0x8134bc38, 0xffff1724}, + {0x8134bc39, 0xffff1725}, + {0x8134bd30, 0xffff1726}, + {0x8134bd31, 0xffff1727}, + {0x8134bd32, 0xffff1728}, + {0x8134bd33, 0xffff1729}, + {0x8134bd34, 0xffff172a}, + {0x8134bd35, 0xffff172b}, + {0x8134bd36, 0xffff172c}, + {0x8134bd37, 0xffff172d}, + {0x8134bd38, 0xffff172e}, + {0x8134bd39, 0xffff172f}, + {0x8134be30, 0xffff1730}, + {0x8134be31, 0xffff1731}, + {0x8134be32, 0xffff1732}, + {0x8134be33, 0xffff1733}, + {0x8134be34, 0xffff1734}, + {0x8134be35, 0xffff1735}, + {0x8134be36, 0xffff1736}, + {0x8134be37, 0xffff1737}, + {0x8134be38, 0xffff1738}, + {0x8134be39, 0xffff1739}, + {0x8134bf30, 0xffff173a}, + {0x8134bf31, 0xffff173b}, + {0x8134bf32, 0xffff173c}, + {0x8134bf33, 0xffff173d}, + {0x8134bf34, 0xffff173e}, + {0x8134bf35, 0xffff173f}, + {0x8134bf36, 0xffff1740}, + {0x8134bf37, 0xffff1741}, + {0x8134bf38, 0xffff1742}, + {0x8134bf39, 0xffff1743}, + {0x8134c030, 0xffff1744}, + {0x8134c031, 0xffff1745}, + {0x8134c032, 0xffff1746}, + {0x8134c033, 0xffff1747}, + {0x8134c034, 0xffff1748}, + {0x8134c035, 0xffff1749}, + {0x8134c036, 0xffff174a}, + {0x8134c037, 0xffff174b}, + {0x8134c038, 0xffff174c}, + {0x8134c039, 0xffff174d}, + {0x8134c130, 0xffff174e}, + {0x8134c131, 0xffff174f}, + {0x8134c132, 0xffff1750}, + {0x8134c133, 0xffff1751}, + {0x8134c134, 0xffff1752}, + {0x8134c135, 0xffff1753}, + {0x8134c136, 0xffff1754}, + {0x8134c137, 0xffff1755}, + {0x8134c138, 0xffff1756}, + {0x8134c139, 0xffff1757}, + {0x8134c230, 0xffff1758}, + {0x8134c231, 0xffff1759}, + {0x8134c232, 0xffff175a}, + {0x8134c233, 0xffff175b}, + {0x8134c234, 0xffff175c}, + {0x8134c235, 0xffff175d}, + {0x8134c236, 0xffff175e}, + {0x8134c237, 0xffff175f}, + {0x8134c238, 0xffff1760}, + {0x8134c239, 0xffff1761}, + {0x8134c330, 0xffff1762}, + {0x8134c331, 0xffff1763}, + {0x8134c332, 0xffff1764}, + {0x8134c333, 0xffff1765}, + {0x8134c334, 0xffff1766}, + {0x8134c335, 0xffff1767}, + {0x8134c336, 0xffff1768}, + {0x8134c337, 0xffff1769}, + {0x8134c338, 0xffff176a}, + {0x8134c339, 0xffff176b}, + {0x8134c430, 0xffff176c}, + {0x8134c431, 0xffff176d}, + {0x8134c432, 0xffff176e}, + {0x8134c433, 0xffff176f}, + {0x8134c434, 0xffff1770}, + {0x8134c435, 0xffff1771}, + {0x8134c436, 0xffff1772}, + {0x8134c437, 0xffff1773}, + {0x8134c438, 0xffff1774}, + {0x8134c439, 0xffff1775}, + {0x8134c530, 0xffff1776}, + {0x8134c531, 0xffff1777}, + {0x8134c532, 0xffff1778}, + {0x8134c533, 0xffff1779}, + {0x8134c534, 0xffff177a}, + {0x8134c535, 0xffff177b}, + {0x8134c536, 0xffff177c}, + {0x8134c537, 0xffff177d}, + {0x8134c538, 0xffff177e}, + {0x8134c539, 0xffff177f}, + {0x8134c630, 0xffff1780}, + {0x8134c631, 0xffff1781}, + {0x8134c632, 0xffff1782}, + {0x8134c633, 0xffff1783}, + {0x8134c634, 0xffff1784}, + {0x8134c635, 0xffff1785}, + {0x8134c636, 0xffff1786}, + {0x8134c637, 0xffff1787}, + {0x8134c638, 0xffff1788}, + {0x8134c639, 0xffff1789}, + {0x8134c730, 0xffff178a}, + {0x8134c731, 0xffff178b}, + {0x8134c732, 0xffff178c}, + {0x8134c733, 0xffff178d}, + {0x8134c734, 0xffff178e}, + {0x8134c735, 0xffff178f}, + {0x8134c736, 0xffff1790}, + {0x8134c737, 0xffff1791}, + {0x8134c738, 0xffff1792}, + {0x8134c739, 0xffff1793}, + {0x8134c830, 0xffff1794}, + {0x8134c831, 0xffff1795}, + {0x8134c832, 0xffff1796}, + {0x8134c833, 0xffff1797}, + {0x8134c834, 0xffff1798}, + {0x8134c835, 0xffff1799}, + {0x8134c836, 0xffff179a}, + {0x8134c837, 0xffff179b}, + {0x8134c838, 0xffff179c}, + {0x8134c839, 0xffff179d}, + {0x8134c930, 0xffff179e}, + {0x8134c931, 0xffff179f}, + {0x8134c932, 0xffff17a0}, + {0x8134c933, 0xffff17a1}, + {0x8134c934, 0xffff17a2}, + {0x8134c935, 0xffff17a3}, + {0x8134c936, 0xffff17a4}, + {0x8134c937, 0xffff17a5}, + {0x8134c938, 0xffff17a6}, + {0x8134c939, 0xffff17a7}, + {0x8134ca30, 0xffff17a8}, + {0x8134ca31, 0xffff17a9}, + {0x8134ca32, 0xffff17aa}, + {0x8134ca33, 0xffff17ab}, + {0x8134ca34, 0xffff17ac}, + {0x8134ca35, 0xffff17ad}, + {0x8134ca36, 0xffff17ae}, + {0x8134ca37, 0xffff17af}, + {0x8134ca38, 0xffff17b0}, + {0x8134ca39, 0xffff17b1}, + {0x8134cb30, 0xffff17b2}, + {0x8134cb31, 0xffff17b3}, + {0x8134cb32, 0xffff17b4}, + {0x8134cb33, 0xffff17b5}, + {0x8134cb34, 0xffff17b6}, + {0x8134cb35, 0xffff17b7}, + {0x8134cb36, 0xffff17b8}, + {0x8134cb37, 0xffff17b9}, + {0x8134cb38, 0xffff17ba}, + {0x8134cb39, 0xffff17bb}, + {0x8134cc30, 0xffff17bc}, + {0x8134cc31, 0xffff17bd}, + {0x8134cc32, 0xffff17be}, + {0x8134cc33, 0xffff17bf}, + {0x8134cc34, 0xffff17c0}, + {0x8134cc35, 0xffff17c1}, + {0x8134cc36, 0xffff17c2}, + {0x8134cc37, 0xffff17c3}, + {0x8134cc38, 0xffff17c4}, + {0x8134cc39, 0xffff17c5}, + {0x8134cd30, 0xffff17c6}, + {0x8134cd31, 0xffff17c7}, + {0x8134cd32, 0xffff17c8}, + {0x8134cd33, 0xffff17c9}, + {0x8134cd34, 0xffff17ca}, + {0x8134cd35, 0xffff17cb}, + {0x8134cd36, 0xffff17cc}, + {0x8134cd37, 0xffff17cd}, + {0x8134cd38, 0xffff17ce}, + {0x8134cd39, 0xffff17cf}, + {0x8134ce30, 0xffff17d0}, + {0x8134ce31, 0xffff17d1}, + {0x8134ce32, 0xffff17d2}, + {0x8134ce33, 0xffff17d3}, + {0x8134ce34, 0xffff17d4}, + {0x8134ce35, 0xffff17d5}, + {0x8134ce36, 0xffff17d6}, + {0x8134ce37, 0xffff17d7}, + {0x8134ce38, 0xffff17d8}, + {0x8134ce39, 0xffff17d9}, + {0x8134cf30, 0xffff17da}, + {0x8134cf31, 0xffff17db}, + {0x8134cf32, 0xffff17dc}, + {0x8134cf33, 0xffff17dd}, + {0x8134cf34, 0xffff17de}, + {0x8134cf35, 0xffff17df}, + {0x8134cf36, 0xffff17e0}, + {0x8134cf37, 0xffff17e1}, + {0x8134cf38, 0xffff17e2}, + {0x8134cf39, 0xffff17e3}, + {0x8134d030, 0xffff17e4}, + {0x8134d031, 0xffff17e5}, + {0x8134d032, 0xffff17e6}, + {0x8134d033, 0xffff17e7}, + {0x8134d034, 0xffff17e8}, + {0x8134d035, 0xffff17e9}, + {0x8134d036, 0xffff17ea}, + {0x8134d037, 0xffff17eb}, + {0x8134d038, 0xffff17ec}, + {0x8134d039, 0xffff17ed}, + {0x8134d130, 0xffff17ee}, + {0x8134d131, 0xffff17ef}, + {0x8134d132, 0xffff17f0}, + {0x8134d133, 0xffff17f1}, + {0x8134d134, 0xffff17f2}, + {0x8134d135, 0xffff17f3}, + {0x8134d136, 0xffff17f4}, + {0x8134d137, 0xffff17f5}, + {0x8134d138, 0xffff17f6}, + {0x8134d139, 0xffff17f7}, + {0x8134d230, 0xffff17f8}, + {0x8134d231, 0xffff17f9}, + {0x8134d232, 0xffff17fa}, + {0x8134d233, 0xffff17fb}, + {0x8134d234, 0xffff17fc}, + {0x8134d235, 0xffff17fd}, + {0x8134d236, 0xffff17fe}, + {0x8134d237, 0xffff17ff}, + {0x8134d238, 0xffff1800}, + {0x8134d239, 0xffff1801}, + {0x8134d330, 0xffff1802}, + {0x8134d331, 0xffff1803}, + {0x8134d332, 0xffff1804}, + {0x8134d333, 0xffff1805}, + {0x8134d334, 0xffff1806}, + {0x8134d335, 0xffff1807}, + {0x8134d336, 0xffff1808}, + {0x8134d337, 0xffff1809}, + {0x8134d338, 0xffff180a}, + {0x8134d339, 0xffff180b}, + {0x8134d430, 0xffff180c}, + {0x8134d431, 0xffff180d}, + {0x8134d432, 0xffff180e}, + {0x8134d433, 0xffff180f}, + {0x8134d434, 0xffff1810}, + {0x8134d435, 0xffff1811}, + {0x8134d436, 0xffff1812}, + {0x8134d437, 0xffff1813}, + {0x8134d438, 0xffff1814}, + {0x8134d439, 0xffff1815}, + {0x8134d530, 0xffff1816}, + {0x8134d531, 0xffff1817}, + {0x8134d532, 0xffff1818}, + {0x8134d533, 0xffff1819}, + {0x8134d534, 0xffff181a}, + {0x8134d535, 0xffff181b}, + {0x8134d536, 0xffff181c}, + {0x8134d537, 0xffff181d}, + {0x8134d538, 0xffff181e}, + {0x8134d539, 0xffff181f}, + {0x8134d630, 0xffff1820}, + {0x8134d631, 0xffff1821}, + {0x8134d632, 0xffff1822}, + {0x8134d633, 0xffff1823}, + {0x8134d634, 0xffff1824}, + {0x8134d635, 0xffff1825}, + {0x8134d636, 0xffff1826}, + {0x8134d637, 0xffff1827}, + {0x8134d638, 0xffff1828}, + {0x8134d639, 0xffff1829}, + {0x8134d730, 0xffff182a}, + {0x8134d731, 0xffff182b}, + {0x8134d732, 0xffff182c}, + {0x8134d733, 0xffff182d}, + {0x8134d734, 0xffff182e}, + {0x8134d735, 0xffff182f}, + {0x8134d736, 0xffff1830}, + {0x8134d737, 0xffff1831}, + {0x8134d738, 0xffff1832}, + {0x8134d739, 0xffff1833}, + {0x8134d830, 0xffff1834}, + {0x8134d831, 0xffff1835}, + {0x8134d832, 0xffff1836}, + {0x8134d833, 0xffff1837}, + {0x8134d834, 0xffff1838}, + {0x8134d835, 0xffff1839}, + {0x8134d836, 0xffff183a}, + {0x8134d837, 0xffff183b}, + {0x8134d838, 0xffff183c}, + {0x8134d839, 0xffff183d}, + {0x8134d930, 0xffff183e}, + {0x8134d931, 0xffff183f}, + {0x8134d932, 0xffff1840}, + {0x8134d933, 0xffff1841}, + {0x8134d934, 0xffff1842}, + {0x8134d935, 0xffff1843}, + {0x8134d936, 0xffff1844}, + {0x8134d937, 0xffff1845}, + {0x8134d938, 0xffff1846}, + {0x8134d939, 0xffff1847}, + {0x8134da30, 0xffff1848}, + {0x8134da31, 0xffff1849}, + {0x8134da32, 0xffff184a}, + {0x8134da33, 0xffff184b}, + {0x8134da34, 0xffff184c}, + {0x8134da35, 0xffff184d}, + {0x8134da36, 0xffff184e}, + {0x8134da37, 0xffff184f}, + {0x8134da38, 0xffff1850}, + {0x8134da39, 0xffff1851}, + {0x8134db30, 0xffff1852}, + {0x8134db31, 0xffff1853}, + {0x8134db32, 0xffff1854}, + {0x8134db33, 0xffff1855}, + {0x8134db34, 0xffff1856}, + {0x8134db35, 0xffff1857}, + {0x8134db36, 0xffff1858}, + {0x8134db37, 0xffff1859}, + {0x8134db38, 0xffff185a}, + {0x8134db39, 0xffff185b}, + {0x8134dc30, 0xffff185c}, + {0x8134dc31, 0xffff185d}, + {0x8134dc32, 0xffff185e}, + {0x8134dc33, 0xffff185f}, + {0x8134dc34, 0xffff1860}, + {0x8134dc35, 0xffff1861}, + {0x8134dc36, 0xffff1862}, + {0x8134dc37, 0xffff1863}, + {0x8134dc38, 0xffff1864}, + {0x8134dc39, 0xffff1865}, + {0x8134dd30, 0xffff1866}, + {0x8134dd31, 0xffff1867}, + {0x8134dd32, 0xffff1868}, + {0x8134dd33, 0xffff1869}, + {0x8134dd34, 0xffff186a}, + {0x8134dd35, 0xffff186b}, + {0x8134dd36, 0xffff186c}, + {0x8134dd37, 0xffff186d}, + {0x8134dd38, 0xffff186e}, + {0x8134dd39, 0xffff186f}, + {0x8134de30, 0xffff1870}, + {0x8134de31, 0xffff1871}, + {0x8134de32, 0xffff1872}, + {0x8134de33, 0xffff1873}, + {0x8134de34, 0xffff1874}, + {0x8134de35, 0xffff1875}, + {0x8134de36, 0xffff1876}, + {0x8134de37, 0xffff1877}, + {0x8134de38, 0xffff1878}, + {0x8134de39, 0xffff1879}, + {0x8134df30, 0xffff187a}, + {0x8134df31, 0xffff187b}, + {0x8134df32, 0xffff187c}, + {0x8134df33, 0xffff187d}, + {0x8134df34, 0xffff187e}, + {0x8134df35, 0xffff187f}, + {0x8134df36, 0xffff1880}, + {0x8134df37, 0xffff1881}, + {0x8134df38, 0xffff1882}, + {0x8134df39, 0xffff1883}, + {0x8134e030, 0xffff1884}, + {0x8134e031, 0xffff1885}, + {0x8134e032, 0xffff1886}, + {0x8134e033, 0xffff1887}, + {0x8134e034, 0xffff1888}, + {0x8134e035, 0xffff1889}, + {0x8134e036, 0xffff188a}, + {0x8134e037, 0xffff188b}, + {0x8134e038, 0xffff188c}, + {0x8134e039, 0xffff188d}, + {0x8134e130, 0xffff188e}, + {0x8134e131, 0xffff188f}, + {0x8134e132, 0xffff1890}, + {0x8134e133, 0xffff1891}, + {0x8134e134, 0xffff1892}, + {0x8134e135, 0xffff1893}, + {0x8134e136, 0xffff1894}, + {0x8134e137, 0xffff1895}, + {0x8134e138, 0xffff1896}, + {0x8134e139, 0xffff1897}, + {0x8134e230, 0xffff1898}, + {0x8134e231, 0xffff1899}, + {0x8134e232, 0xffff189a}, + {0x8134e233, 0xffff189b}, + {0x8134e234, 0xffff189c}, + {0x8134e235, 0xffff189d}, + {0x8134e236, 0xffff189e}, + {0x8134e237, 0xffff189f}, + {0x8134e238, 0xffff18a0}, + {0x8134e239, 0xffff18a1}, + {0x8134e330, 0xffff18a2}, + {0x8134e331, 0xffff18a3}, + {0x8134e332, 0xffff18a4}, + {0x8134e333, 0xffff18a5}, + {0x8134e334, 0xffff18a6}, + {0x8134e335, 0xffff18a7}, + {0x8134e336, 0xffff18a8}, + {0x8134e337, 0xffff18a9}, + {0x8134e338, 0xffff18aa}, + {0x8134e339, 0xffff18ab}, + {0x8134e430, 0xffff18ac}, + {0x8134e431, 0xffff18ad}, + {0x8134e432, 0xffff18ae}, + {0x8134e433, 0xffff18af}, + {0x8134e434, 0xffff18b0}, + {0x8134e435, 0xffff18b1}, + {0x8134e436, 0xffff18b2}, + {0x8134e437, 0xffff18b3}, + {0x8134e438, 0xffff18b4}, + {0x8134e439, 0xffff18b5}, + {0x8134e530, 0xffff18b6}, + {0x8134e531, 0xffff18b7}, + {0x8134e532, 0xffff18b8}, + {0x8134e533, 0xffff18b9}, + {0x8134e534, 0xffff18ba}, + {0x8134e535, 0xffff18bb}, + {0x8134e536, 0xffff18bc}, + {0x8134e537, 0xffff18bd}, + {0x8134e538, 0xffff18be}, + {0x8134e539, 0xffff18bf}, + {0x8134e630, 0xffff18c0}, + {0x8134e631, 0xffff18c1}, + {0x8134e632, 0xffff18c2}, + {0x8134e633, 0xffff18c3}, + {0x8134e634, 0xffff18c4}, + {0x8134e635, 0xffff18c5}, + {0x8134e636, 0xffff18c6}, + {0x8134e637, 0xffff18c7}, + {0x8134e638, 0xffff18c8}, + {0x8134e639, 0xffff18c9}, + {0x8134e730, 0xffff18ca}, + {0x8134e731, 0xffff18cb}, + {0x8134e732, 0xffff18cc}, + {0x8134e733, 0xffff18cd}, + {0x8134e734, 0xffff18ce}, + {0x8134e735, 0xffff18cf}, + {0x8134e736, 0xffff18d0}, + {0x8134e737, 0xffff18d1}, + {0x8134e738, 0xffff18d2}, + {0x8134e739, 0xffff18d3}, + {0x8134e830, 0xffff18d4}, + {0x8134e831, 0xffff18d5}, + {0x8134e832, 0xffff18d6}, + {0x8134e833, 0xffff18d7}, + {0x8134e834, 0xffff18d8}, + {0x8134e835, 0xffff18d9}, + {0x8134e836, 0xffff18da}, + {0x8134e837, 0xffff18db}, + {0x8134e838, 0xffff18dc}, + {0x8134e839, 0xffff18dd}, + {0x8134e930, 0xffff18de}, + {0x8134e931, 0xffff18df}, + {0x8134e932, 0xffff18e0}, + {0x8134e933, 0xffff18e1}, + {0x8134e934, 0xffff18e2}, + {0x8134e935, 0xffff18e3}, + {0x8134e936, 0xffff18e4}, + {0x8134e937, 0xffff18e5}, + {0x8134e938, 0xffff18e6}, + {0x8134e939, 0xffff18e7}, + {0x8134ea30, 0xffff18e8}, + {0x8134ea31, 0xffff18e9}, + {0x8134ea32, 0xffff18ea}, + {0x8134ea33, 0xffff18eb}, + {0x8134ea34, 0xffff18ec}, + {0x8134ea35, 0xffff18ed}, + {0x8134ea36, 0xffff18ee}, + {0x8134ea37, 0xffff18ef}, + {0x8134ea38, 0xffff18f0}, + {0x8134ea39, 0xffff18f1}, + {0x8134eb30, 0xffff18f2}, + {0x8134eb31, 0xffff18f3}, + {0x8134eb32, 0xffff18f4}, + {0x8134eb33, 0xffff18f5}, + {0x8134eb34, 0xffff18f6}, + {0x8134eb35, 0xffff18f7}, + {0x8134eb36, 0xffff18f8}, + {0x8134eb37, 0xffff18f9}, + {0x8134eb38, 0xffff18fa}, + {0x8134eb39, 0xffff18fb}, + {0x8134ec30, 0xffff18fc}, + {0x8134ec31, 0xffff18fd}, + {0x8134ec32, 0xffff18fe}, + {0x8134ec33, 0xffff18ff}, + {0x8134ec34, 0xffff1900}, + {0x8134ec35, 0xffff1901}, + {0x8134ec36, 0xffff1902}, + {0x8134ec37, 0xffff1903}, + {0x8134ec38, 0xffff1904}, + {0x8134ec39, 0xffff1905}, + {0x8134ed30, 0xffff1906}, + {0x8134ed31, 0xffff1907}, + {0x8134ed32, 0xffff1908}, + {0x8134ed33, 0xffff1909}, + {0x8134ed34, 0xffff190a}, + {0x8134ed35, 0xffff190b}, + {0x8134ed36, 0xffff190c}, + {0x8134ed37, 0xffff190d}, + {0x8134ed38, 0xffff190e}, + {0x8134ed39, 0xffff190f}, + {0x8134ee30, 0xffff1910}, + {0x8134ee31, 0xffff1911}, + {0x8134ee32, 0xffff1912}, + {0x8134ee33, 0xffff1913}, + {0x8134ee34, 0xffff1914}, + {0x8134ee35, 0xffff1915}, + {0x8134ee36, 0xffff1916}, + {0x8134ee37, 0xffff1917}, + {0x8134ee38, 0xffff1918}, + {0x8134ee39, 0xffff1919}, + {0x8134ef30, 0xffff191a}, + {0x8134ef31, 0xffff191b}, + {0x8134ef32, 0xffff191c}, + {0x8134ef33, 0xffff191d}, + {0x8134ef34, 0xffff191e}, + {0x8134ef35, 0xffff191f}, + {0x8134ef36, 0xffff1920}, + {0x8134ef37, 0xffff1921}, + {0x8134ef38, 0xffff1922}, + {0x8134ef39, 0xffff1923}, + {0x8134f030, 0xffff1924}, + {0x8134f031, 0xffff1925}, + {0x8134f032, 0xffff1926}, + {0x8134f033, 0xffff1927}, + {0x8134f034, 0xffff1928}, + {0x8134f035, 0xffff1929}, + {0x8134f036, 0xffff192a}, + {0x8134f037, 0xffff192b}, + {0x8134f038, 0xffff192c}, + {0x8134f039, 0xffff192d}, + {0x8134f130, 0xffff192e}, + {0x8134f131, 0xffff192f}, + {0x8134f132, 0xffff1930}, + {0x8134f133, 0xffff1931}, + {0x8134f134, 0xffff1932}, + {0x8134f135, 0xffff1933}, + {0x8134f136, 0xffff1934}, + {0x8134f137, 0xffff1935}, + {0x8134f138, 0xffff1936}, + {0x8134f139, 0xffff1937}, + {0x8134f230, 0xffff1938}, + {0x8134f231, 0xffff1939}, + {0x8134f232, 0xffff193a}, + {0x8134f233, 0xffff193b}, + {0x8134f234, 0xffff193c}, + {0x8134f235, 0xffff193d}, + {0x8134f236, 0xffff193e}, + {0x8134f237, 0xffff193f}, + {0x8134f238, 0xffff1940}, + {0x8134f239, 0xffff1941}, + {0x8134f330, 0xffff1942}, + {0x8134f331, 0xffff1943}, + {0x8134f332, 0xffff1944}, + {0x8134f333, 0xffff1945}, + {0x8134f334, 0xffff1946}, + {0x8134f335, 0xffff1947}, + {0x8134f336, 0xffff1948}, + {0x8134f337, 0xffff1949}, + {0x8134f338, 0xffff194a}, + {0x8134f339, 0xffff194b}, + {0x8134f430, 0xffff194c}, + {0x8134f431, 0xffff194d}, + {0x8134f432, 0xffff194e}, + {0x8134f433, 0xffff194f}, + {0x8134f434, 0xffff1950}, + {0x8134f435, 0xffff1951}, + {0x8134f436, 0xffff1952}, + {0x8134f437, 0xffff1953}, + {0x8134f438, 0xffff1954}, + {0x8134f439, 0xffff1955}, + {0x8134f530, 0xffff1956}, + {0x8134f531, 0xffff1957}, + {0x8134f532, 0xffff1958}, + {0x8134f533, 0xffff1959}, + {0x8134f534, 0xffff195a}, + {0x8134f535, 0xffff195b}, + {0x8134f536, 0xffff195c}, + {0x8134f537, 0xffff195d}, + {0x8134f538, 0xffff195e}, + {0x8134f539, 0xffff195f}, + {0x8134f630, 0xffff1960}, + {0x8134f631, 0xffff1961}, + {0x8134f632, 0xffff1962}, + {0x8134f633, 0xffff1963}, + {0x8134f634, 0xffff1964}, + {0x8134f635, 0xffff1965}, + {0x8134f636, 0xffff1966}, + {0x8134f637, 0xffff1967}, + {0x8134f638, 0xffff1968}, + {0x8134f639, 0xffff1969}, + {0x8134f730, 0xffff196a}, + {0x8134f731, 0xffff196b}, + {0x8134f732, 0xffff196c}, + {0x8134f733, 0xffff196d}, + {0x8134f734, 0xffff196e}, + {0x8134f735, 0xffff196f}, + {0x8134f736, 0xffff1970}, + {0x8134f737, 0xffff1971}, + {0x8134f738, 0xffff1972}, + {0x8134f739, 0xffff1973}, + {0x8134f830, 0xffff1974}, + {0x8134f831, 0xffff1975}, + {0x8134f832, 0xffff1976}, + {0x8134f833, 0xffff1977}, + {0x8134f834, 0xffff1978}, + {0x8134f835, 0xffff1979}, + {0x8134f836, 0xffff197a}, + {0x8134f837, 0xffff197b}, + {0x8134f838, 0xffff197c}, + {0x8134f839, 0xffff197d}, + {0x8134f930, 0xffff197e}, + {0x8134f931, 0xffff197f}, + {0x8134f932, 0xffff1980}, + {0x8134f933, 0xffff1981}, + {0x8134f934, 0xffff1982}, + {0x8134f935, 0xffff1983}, + {0x8134f936, 0xffff1984}, + {0x8134f937, 0xffff1985}, + {0x8134f938, 0xffff1986}, + {0x8134f939, 0xffff1987}, + {0x8134fa30, 0xffff1988}, + {0x8134fa31, 0xffff1989}, + {0x8134fa32, 0xffff198a}, + {0x8134fa33, 0xffff198b}, + {0x8134fa34, 0xffff198c}, + {0x8134fa35, 0xffff198d}, + {0x8134fa36, 0xffff198e}, + {0x8134fa37, 0xffff198f}, + {0x8134fa38, 0xffff1990}, + {0x8134fa39, 0xffff1991}, + {0x8134fb30, 0xffff1992}, + {0x8134fb31, 0xffff1993}, + {0x8134fb32, 0xffff1994}, + {0x8134fb33, 0xffff1995}, + {0x8134fb34, 0xffff1996}, + {0x8134fb35, 0xffff1997}, + {0x8134fb36, 0xffff1998}, + {0x8134fb37, 0xffff1999}, + {0x8134fb38, 0xffff199a}, + {0x8134fb39, 0xffff199b}, + {0x8134fc30, 0xffff199c}, + {0x8134fc31, 0xffff199d}, + {0x8134fc32, 0xffff199e}, + {0x8134fc33, 0xffff199f}, + {0x8134fc34, 0xffff19a0}, + {0x8134fc35, 0xffff19a1}, + {0x8134fc36, 0xffff19a2}, + {0x8134fc37, 0xffff19a3}, + {0x8134fc38, 0xffff19a4}, + {0x8134fc39, 0xffff19a5}, + {0x8134fd30, 0xffff19a6}, + {0x8134fd31, 0xffff19a7}, + {0x8134fd32, 0xffff19a8}, + {0x8134fd33, 0xffff19a9}, + {0x8134fd34, 0xffff19aa}, + {0x8134fd35, 0xffff19ab}, + {0x8134fd36, 0xffff19ac}, + {0x8134fd37, 0xffff19ad}, + {0x8134fd38, 0xffff19ae}, + {0x8134fd39, 0xffff19af}, + {0x8134fe30, 0xffff19b0}, + {0x8134fe31, 0xffff19b1}, + {0x8134fe32, 0xffff19b2}, + {0x8134fe33, 0xffff19b3}, + {0x8134fe34, 0xffff19b4}, + {0x8134fe35, 0xffff19b5}, + {0x8134fe36, 0xffff19b6}, + {0x8134fe37, 0xffff19b7}, + {0x8134fe38, 0xffff19b8}, + {0x8134fe39, 0xffff19b9}, + {0x81358130, 0xffff19ba}, + {0x81358131, 0xffff19bb}, + {0x81358132, 0xffff19bc}, + {0x81358133, 0xffff19bd}, + {0x81358134, 0xffff19be}, + {0x81358135, 0xffff19bf}, + {0x81358136, 0xffff19c0}, + {0x81358137, 0xffff19c1}, + {0x81358138, 0xffff19c2}, + {0x81358139, 0xffff19c3}, + {0x81358230, 0xffff19c4}, + {0x81358231, 0xffff19c5}, + {0x81358232, 0xffff19c6}, + {0x81358233, 0xffff19c7}, + {0x81358234, 0xffff19c8}, + {0x81358235, 0xffff19c9}, + {0x81358236, 0xffff19ca}, + {0x81358237, 0xffff19cb}, + {0x81358238, 0xffff19cc}, + {0x81358239, 0xffff19cd}, + {0x81358330, 0xffff19ce}, + {0x81358331, 0xffff19cf}, + {0x81358332, 0xffff19d0}, + {0x81358333, 0xffff19d1}, + {0x81358334, 0xffff19d2}, + {0x81358335, 0xffff19d3}, + {0x81358336, 0xffff19d4}, + {0x81358337, 0xffff19d5}, + {0x81358338, 0xffff19d6}, + {0x81358339, 0xffff19d7}, + {0x81358430, 0xffff19d8}, + {0x81358431, 0xffff19d9}, + {0x81358432, 0xffff19da}, + {0x81358433, 0xffff19db}, + {0x81358434, 0xffff19dc}, + {0x81358435, 0xffff19dd}, + {0x81358436, 0xffff19de}, + {0x81358437, 0xffff19df}, + {0x81358438, 0xffff19e0}, + {0x81358439, 0xffff19e1}, + {0x81358530, 0xffff19e2}, + {0x81358531, 0xffff19e3}, + {0x81358532, 0xffff19e4}, + {0x81358533, 0xffff19e5}, + {0x81358534, 0xffff19e6}, + {0x81358535, 0xffff19e7}, + {0x81358536, 0xffff19e8}, + {0x81358537, 0xffff19e9}, + {0x81358538, 0xffff19ea}, + {0x81358539, 0xffff19eb}, + {0x81358630, 0xffff19ec}, + {0x81358631, 0xffff19ed}, + {0x81358632, 0xffff19ee}, + {0x81358633, 0xffff19ef}, + {0x81358634, 0xffff19f0}, + {0x81358635, 0xffff19f1}, + {0x81358636, 0xffff19f2}, + {0x81358637, 0xffff19f3}, + {0x81358638, 0xffff19f4}, + {0x81358639, 0xffff19f5}, + {0x81358730, 0xffff19f6}, + {0x81358731, 0xffff19f7}, + {0x81358732, 0xffff19f8}, + {0x81358733, 0xffff19f9}, + {0x81358734, 0xffff19fa}, + {0x81358735, 0xffff19fb}, + {0x81358736, 0xffff19fc}, + {0x81358737, 0xffff19fd}, + {0x81358738, 0xffff19fe}, + {0x81358739, 0xffff19ff}, + {0x81358830, 0xffff1a00}, + {0x81358831, 0xffff1a01}, + {0x81358832, 0xffff1a02}, + {0x81358833, 0xffff1a03}, + {0x81358834, 0xffff1a04}, + {0x81358835, 0xffff1a05}, + {0x81358836, 0xffff1a06}, + {0x81358837, 0xffff1a07}, + {0x81358838, 0xffff1a08}, + {0x81358839, 0xffff1a09}, + {0x81358930, 0xffff1a0a}, + {0x81358931, 0xffff1a0b}, + {0x81358932, 0xffff1a0c}, + {0x81358933, 0xffff1a0d}, + {0x81358934, 0xffff1a0e}, + {0x81358935, 0xffff1a0f}, + {0x81358936, 0xffff1a10}, + {0x81358937, 0xffff1a11}, + {0x81358938, 0xffff1a12}, + {0x81358939, 0xffff1a13}, + {0x81358a30, 0xffff1a14}, + {0x81358a31, 0xffff1a15}, + {0x81358a32, 0xffff1a16}, + {0x81358a33, 0xffff1a17}, + {0x81358a34, 0xffff1a18}, + {0x81358a35, 0xffff1a19}, + {0x81358a36, 0xffff1a1a}, + {0x81358a37, 0xffff1a1b}, + {0x81358a38, 0xffff1a1c}, + {0x81358a39, 0xffff1a1d}, + {0x81358b30, 0xffff1a1e}, + {0x81358b31, 0xffff1a1f}, + {0x81358b32, 0xffff1a20}, + {0x81358b33, 0xffff1a21}, + {0x81358b34, 0xffff1a22}, + {0x81358b35, 0xffff1a23}, + {0x81358b36, 0xffff1a24}, + {0x81358b37, 0xffff1a25}, + {0x81358b38, 0xffff1a26}, + {0x81358b39, 0xffff1a27}, + {0x81358c30, 0xffff1a28}, + {0x81358c31, 0xffff1a29}, + {0x81358c32, 0xffff1a2a}, + {0x81358c33, 0xffff1a2b}, + {0x81358c34, 0xffff1a2c}, + {0x81358c35, 0xffff1a2d}, + {0x81358c36, 0xffff1a2e}, + {0x81358c37, 0xffff1a2f}, + {0x81358c38, 0xffff1a30}, + {0x81358c39, 0xffff1a31}, + {0x81358d30, 0xffff1a32}, + {0x81358d31, 0xffff1a33}, + {0x81358d32, 0xffff1a34}, + {0x81358d33, 0xffff1a35}, + {0x81358d34, 0xffff1a36}, + {0x81358d35, 0xffff1a37}, + {0x81358d36, 0xffff1a38}, + {0x81358d37, 0xffff1a39}, + {0x81358d38, 0xffff1a3a}, + {0x81358d39, 0xffff1a3b}, + {0x81358e30, 0xffff1a3c}, + {0x81358e31, 0xffff1a3d}, + {0x81358e32, 0xffff1a3e}, + {0x81358e33, 0xffff1a3f}, + {0x81358e34, 0xffff1a40}, + {0x81358e35, 0xffff1a41}, + {0x81358e36, 0xffff1a42}, + {0x81358e37, 0xffff1a43}, + {0x81358e38, 0xffff1a44}, + {0x81358e39, 0xffff1a45}, + {0x81358f30, 0xffff1a46}, + {0x81358f31, 0xffff1a47}, + {0x81358f32, 0xffff1a48}, + {0x81358f33, 0xffff1a49}, + {0x81358f34, 0xffff1a4a}, + {0x81358f35, 0xffff1a4b}, + {0x81358f36, 0xffff1a4c}, + {0x81358f37, 0xffff1a4d}, + {0x81358f38, 0xffff1a4e}, + {0x81358f39, 0xffff1a4f}, + {0x81359030, 0xffff1a50}, + {0x81359031, 0xffff1a51}, + {0x81359032, 0xffff1a52}, + {0x81359033, 0xffff1a53}, + {0x81359034, 0xffff1a54}, + {0x81359035, 0xffff1a55}, + {0x81359036, 0xffff1a56}, + {0x81359037, 0xffff1a57}, + {0x81359038, 0xffff1a58}, + {0x81359039, 0xffff1a59}, + {0x81359130, 0xffff1a5a}, + {0x81359131, 0xffff1a5b}, + {0x81359132, 0xffff1a5c}, + {0x81359133, 0xffff1a5d}, + {0x81359134, 0xffff1a5e}, + {0x81359135, 0xffff1a5f}, + {0x81359136, 0xffff1a60}, + {0x81359137, 0xffff1a61}, + {0x81359138, 0xffff1a62}, + {0x81359139, 0xffff1a63}, + {0x81359230, 0xffff1a64}, + {0x81359231, 0xffff1a65}, + {0x81359232, 0xffff1a66}, + {0x81359233, 0xffff1a67}, + {0x81359234, 0xffff1a68}, + {0x81359235, 0xffff1a69}, + {0x81359236, 0xffff1a6a}, + {0x81359237, 0xffff1a6b}, + {0x81359238, 0xffff1a6c}, + {0x81359239, 0xffff1a6d}, + {0x81359330, 0xffff1a6e}, + {0x81359331, 0xffff1a6f}, + {0x81359332, 0xffff1a70}, + {0x81359333, 0xffff1a71}, + {0x81359334, 0xffff1a72}, + {0x81359335, 0xffff1a73}, + {0x81359336, 0xffff1a74}, + {0x81359337, 0xffff1a75}, + {0x81359338, 0xffff1a76}, + {0x81359339, 0xffff1a77}, + {0x81359430, 0xffff1a78}, + {0x81359431, 0xffff1a79}, + {0x81359432, 0xffff1a7a}, + {0x81359433, 0xffff1a7b}, + {0x81359434, 0xffff1a7c}, + {0x81359435, 0xffff1a7d}, + {0x81359436, 0xffff1a7e}, + {0x81359437, 0xffff1a7f}, + {0x81359438, 0xffff1a80}, + {0x81359439, 0xffff1a81}, + {0x81359530, 0xffff1a82}, + {0x81359531, 0xffff1a83}, + {0x81359532, 0xffff1a84}, + {0x81359533, 0xffff1a85}, + {0x81359534, 0xffff1a86}, + {0x81359535, 0xffff1a87}, + {0x81359536, 0xffff1a88}, + {0x81359537, 0xffff1a89}, + {0x81359538, 0xffff1a8a}, + {0x81359539, 0xffff1a8b}, + {0x81359630, 0xffff1a8c}, + {0x81359631, 0xffff1a8d}, + {0x81359632, 0xffff1a8e}, + {0x81359633, 0xffff1a8f}, + {0x81359634, 0xffff1a90}, + {0x81359635, 0xffff1a91}, + {0x81359636, 0xffff1a92}, + {0x81359637, 0xffff1a93}, + {0x81359638, 0xffff1a94}, + {0x81359639, 0xffff1a95}, + {0x81359730, 0xffff1a96}, + {0x81359731, 0xffff1a97}, + {0x81359732, 0xffff1a98}, + {0x81359733, 0xffff1a99}, + {0x81359734, 0xffff1a9a}, + {0x81359735, 0xffff1a9b}, + {0x81359736, 0xffff1a9c}, + {0x81359737, 0xffff1a9d}, + {0x81359738, 0xffff1a9e}, + {0x81359739, 0xffff1a9f}, + {0x81359830, 0xffff1aa0}, + {0x81359831, 0xffff1aa1}, + {0x81359832, 0xffff1aa2}, + {0x81359833, 0xffff1aa3}, + {0x81359834, 0xffff1aa4}, + {0x81359835, 0xffff1aa5}, + {0x81359836, 0xffff1aa6}, + {0x81359837, 0xffff1aa7}, + {0x81359838, 0xffff1aa8}, + {0x81359839, 0xffff1aa9}, + {0x81359930, 0xffff1aaa}, + {0x81359931, 0xffff1aab}, + {0x81359932, 0xffff1aac}, + {0x81359933, 0xffff1aad}, + {0x81359934, 0xffff1aae}, + {0x81359935, 0xffff1aaf}, + {0x81359936, 0xffff1ab0}, + {0x81359937, 0xffff1ab1}, + {0x81359938, 0xffff1ab2}, + {0x81359939, 0xffff1ab3}, + {0x81359a30, 0xffff1ab4}, + {0x81359a31, 0xffff1ab5}, + {0x81359a32, 0xffff1ab6}, + {0x81359a33, 0xffff1ab7}, + {0x81359a34, 0xffff1ab8}, + {0x81359a35, 0xffff1ab9}, + {0x81359a36, 0xffff1aba}, + {0x81359a37, 0xffff1abb}, + {0x81359a38, 0xffff1abc}, + {0x81359a39, 0xffff1abd}, + {0x81359b30, 0xffff1abe}, + {0x81359b31, 0xffff1abf}, + {0x81359b32, 0xffff1ac0}, + {0x81359b33, 0xffff1ac1}, + {0x81359b34, 0xffff1ac2}, + {0x81359b35, 0xffff1ac3}, + {0x81359b36, 0xffff1ac4}, + {0x81359b37, 0xffff1ac5}, + {0x81359b38, 0xffff1ac6}, + {0x81359b39, 0xffff1ac7}, + {0x81359c30, 0xffff1ac8}, + {0x81359c31, 0xffff1ac9}, + {0x81359c32, 0xffff1aca}, + {0x81359c33, 0xffff1acb}, + {0x81359c34, 0xffff1acc}, + {0x81359c35, 0xffff1acd}, + {0x81359c36, 0xffff1ace}, + {0x81359c37, 0xffff1acf}, + {0x81359c38, 0xffff1ad0}, + {0x81359c39, 0xffff1ad1}, + {0x81359d30, 0xffff1ad2}, + {0x81359d31, 0xffff1ad3}, + {0x81359d32, 0xffff1ad4}, + {0x81359d33, 0xffff1ad5}, + {0x81359d34, 0xffff1ad6}, + {0x81359d35, 0xffff1ad7}, + {0x81359d36, 0xffff1ad8}, + {0x81359d37, 0xffff1ad9}, + {0x81359d38, 0xffff1ada}, + {0x81359d39, 0xffff1adb}, + {0x81359e30, 0xffff1adc}, + {0x81359e31, 0xffff1add}, + {0x81359e32, 0xffff1ade}, + {0x81359e33, 0xffff1adf}, + {0x81359e34, 0xffff1ae0}, + {0x81359e35, 0xffff1ae1}, + {0x81359e36, 0xffff1ae2}, + {0x81359e37, 0xffff1ae3}, + {0x81359e38, 0xffff1ae4}, + {0x81359e39, 0xffff1ae5}, + {0x81359f30, 0xffff1ae6}, + {0x81359f31, 0xffff1ae7}, + {0x81359f32, 0xffff1ae8}, + {0x81359f33, 0xffff1ae9}, + {0x81359f34, 0xffff1aea}, + {0x81359f35, 0xffff1aeb}, + {0x81359f36, 0xffff1aec}, + {0x81359f37, 0xffff1aed}, + {0x81359f38, 0xffff1aee}, + {0x81359f39, 0xffff1aef}, + {0x8135a030, 0xffff1af0}, + {0x8135a031, 0xffff1af1}, + {0x8135a032, 0xffff1af2}, + {0x8135a033, 0xffff1af3}, + {0x8135a034, 0xffff1af4}, + {0x8135a035, 0xffff1af5}, + {0x8135a036, 0xffff1af6}, + {0x8135a037, 0xffff1af7}, + {0x8135a038, 0xffff1af8}, + {0x8135a039, 0xffff1af9}, + {0x8135a130, 0xffff1afa}, + {0x8135a131, 0xffff1afb}, + {0x8135a132, 0xffff1afc}, + {0x8135a133, 0xffff1afd}, + {0x8135a134, 0xffff1afe}, + {0x8135a135, 0xffff1aff}, + {0x8135a136, 0xffff1b00}, + {0x8135a137, 0xffff1b01}, + {0x8135a138, 0xffff1b02}, + {0x8135a139, 0xffff1b03}, + {0x8135a230, 0xffff1b04}, + {0x8135a231, 0xffff1b05}, + {0x8135a233, 0xffff1b07}, + {0x8135a235, 0xffff1b09}, + {0x8135a237, 0xffff1b0b}, + {0x8135a239, 0xffff1b0d}, + {0x8135a331, 0xffff1b0f}, + {0x8135a332, 0xffff1b10}, + {0x8135a333, 0xffff1b11}, + {0x8135a335, 0xffff1b13}, + {0x8135a336, 0xffff1b14}, + {0x8135a337, 0xffff1b15}, + {0x8135a338, 0xffff1b16}, + {0x8135a339, 0xffff1b17}, + {0x8135a430, 0xffff1b18}, + {0x8135a431, 0xffff1b19}, + {0x8135a432, 0xffff1b1a}, + {0x8135a433, 0xffff1b1b}, + {0x8135a434, 0xffff1b1c}, + {0x8135a435, 0xffff1b1d}, + {0x8135a436, 0xffff1b1e}, + {0x8135a437, 0xffff1b1f}, + {0x8135a438, 0xffff1b20}, + {0x8135a439, 0xffff1b21}, + {0x8135a530, 0xffff1b22}, + {0x8135a531, 0xffff1b23}, + {0x8135a532, 0xffff1b24}, + {0x8135a533, 0xffff1b25}, + {0x8135a534, 0xffff1b26}, + {0x8135a535, 0xffff1b27}, + {0x8135a536, 0xffff1b28}, + {0x8135a537, 0xffff1b29}, + {0x8135a538, 0xffff1b2a}, + {0x8135a539, 0xffff1b2b}, + {0x8135a630, 0xffff1b2c}, + {0x8135a631, 0xffff1b2d}, + {0x8135a632, 0xffff1b2e}, + {0x8135a633, 0xffff1b2f}, + {0x8135a634, 0xffff1b30}, + {0x8135a635, 0xffff1b31}, + {0x8135a636, 0xffff1b32}, + {0x8135a637, 0xffff1b33}, + {0x8135a638, 0xffff1b34}, + {0x8135a639, 0xffff1b35}, + {0x8135a730, 0xffff1b36}, + {0x8135a731, 0xffff1b37}, + {0x8135a732, 0xffff1b38}, + {0x8135a733, 0xffff1b39}, + {0x8135a734, 0xffff1b3a}, + {0x8135a736, 0xffff1b3c}, + {0x8135a738, 0xffff1b3e}, + {0x8135a739, 0xffff1b3f}, + {0x8135a832, 0xffff1b42}, + {0x8135a834, 0xffff1b44}, + {0x8135a835, 0xffff1b45}, + {0x8135a836, 0xffff1b46}, + {0x8135a837, 0xffff1b47}, + {0x8135a838, 0xffff1b48}, + {0x8135a839, 0xffff1b49}, + {0x8135a930, 0xffff1b4a}, + {0x8135a931, 0xffff1b4b}, + {0x8135a932, 0xffff1b4c}, + {0x8135a933, 0xffff1b4d}, + {0x8135a934, 0xffff1b4e}, + {0x8135a935, 0xffff1b4f}, + {0x8135a936, 0xffff1b50}, + {0x8135a937, 0xffff1b51}, + {0x8135a938, 0xffff1b52}, + {0x8135a939, 0xffff1b53}, + {0x8135aa30, 0xffff1b54}, + {0x8135aa31, 0xffff1b55}, + {0x8135aa32, 0xffff1b56}, + {0x8135aa33, 0xffff1b57}, + {0x8135aa34, 0xffff1b58}, + {0x8135aa35, 0xffff1b59}, + {0x8135aa36, 0xffff1b5a}, + {0x8135aa37, 0xffff1b5b}, + {0x8135aa38, 0xffff1b5c}, + {0x8135aa39, 0xffff1b5d}, + {0x8135ab30, 0xffff1b5e}, + {0x8135ab31, 0xffff1b5f}, + {0x8135ab32, 0xffff1b60}, + {0x8135ab33, 0xffff1b61}, + {0x8135ab34, 0xffff1b62}, + {0x8135ab35, 0xffff1b63}, + {0x8135ab36, 0xffff1b64}, + {0x8135ab37, 0xffff1b65}, + {0x8135ab38, 0xffff1b66}, + {0x8135ab39, 0xffff1b67}, + {0x8135ac30, 0xffff1b68}, + {0x8135ac31, 0xffff1b69}, + {0x8135ac32, 0xffff1b6a}, + {0x8135ac33, 0xffff1b6b}, + {0x8135ac34, 0xffff1b6c}, + {0x8135ac35, 0xffff1b6d}, + {0x8135ac36, 0xffff1b6e}, + {0x8135ac37, 0xffff1b6f}, + {0x8135ac38, 0xffff1b70}, + {0x8135ac39, 0xffff1b71}, + {0x8135ad30, 0xffff1b72}, + {0x8135ad31, 0xffff1b73}, + {0x8135ad32, 0xffff1b74}, + {0x8135ad33, 0xffff1b75}, + {0x8135ad34, 0xffff1b76}, + {0x8135ad35, 0xffff1b77}, + {0x8135ad36, 0xffff1b78}, + {0x8135ad37, 0xffff1b79}, + {0x8135ad38, 0xffff1b7a}, + {0x8135ad39, 0xffff1b7b}, + {0x8135ae30, 0xffff1b7c}, + {0x8135ae31, 0xffff1b7d}, + {0x8135ae32, 0xffff1b7e}, + {0x8135ae33, 0xffff1b7f}, + {0x8135ae34, 0xffff1b80}, + {0x8135ae35, 0xffff1b81}, + {0x8135ae36, 0xffff1b82}, + {0x8135ae37, 0xffff1b83}, + {0x8135ae38, 0xffff1b84}, + {0x8135ae39, 0xffff1b85}, + {0x8135af30, 0xffff1b86}, + {0x8135af31, 0xffff1b87}, + {0x8135af32, 0xffff1b88}, + {0x8135af33, 0xffff1b89}, + {0x8135af34, 0xffff1b8a}, + {0x8135af35, 0xffff1b8b}, + {0x8135af36, 0xffff1b8c}, + {0x8135af37, 0xffff1b8d}, + {0x8135af38, 0xffff1b8e}, + {0x8135af39, 0xffff1b8f}, + {0x8135b030, 0xffff1b90}, + {0x8135b031, 0xffff1b91}, + {0x8135b032, 0xffff1b92}, + {0x8135b033, 0xffff1b93}, + {0x8135b034, 0xffff1b94}, + {0x8135b035, 0xffff1b95}, + {0x8135b036, 0xffff1b96}, + {0x8135b037, 0xffff1b97}, + {0x8135b038, 0xffff1b98}, + {0x8135b039, 0xffff1b99}, + {0x8135b130, 0xffff1b9a}, + {0x8135b131, 0xffff1b9b}, + {0x8135b132, 0xffff1b9c}, + {0x8135b133, 0xffff1b9d}, + {0x8135b134, 0xffff1b9e}, + {0x8135b135, 0xffff1b9f}, + {0x8135b136, 0xffff1ba0}, + {0x8135b137, 0xffff1ba1}, + {0x8135b138, 0xffff1ba2}, + {0x8135b139, 0xffff1ba3}, + {0x8135b230, 0xffff1ba4}, + {0x8135b231, 0xffff1ba5}, + {0x8135b232, 0xffff1ba6}, + {0x8135b233, 0xffff1ba7}, + {0x8135b234, 0xffff1ba8}, + {0x8135b235, 0xffff1ba9}, + {0x8135b236, 0xffff1baa}, + {0x8135b237, 0xffff1bab}, + {0x8135b238, 0xffff1bac}, + {0x8135b239, 0xffff1bad}, + {0x8135b330, 0xffff1bae}, + {0x8135b331, 0xffff1baf}, + {0x8135b332, 0xffff1bb0}, + {0x8135b333, 0xffff1bb1}, + {0x8135b334, 0xffff1bb2}, + {0x8135b335, 0xffff1bb3}, + {0x8135b336, 0xffff1bb4}, + {0x8135b337, 0xffff1bb5}, + {0x8135b338, 0xffff1bb6}, + {0x8135b339, 0xffff1bb7}, + {0x8135b430, 0xffff1bb8}, + {0x8135b431, 0xffff1bb9}, + {0x8135b432, 0xffff1bba}, + {0x8135b433, 0xffff1bbb}, + {0x8135b434, 0xffff1bbc}, + {0x8135b435, 0xffff1bbd}, + {0x8135b436, 0xffff1bbe}, + {0x8135b437, 0xffff1bbf}, + {0x8135b438, 0xffff1bc0}, + {0x8135b439, 0xffff1bc1}, + {0x8135b530, 0xffff1bc2}, + {0x8135b531, 0xffff1bc3}, + {0x8135b532, 0xffff1bc4}, + {0x8135b533, 0xffff1bc5}, + {0x8135b534, 0xffff1bc6}, + {0x8135b535, 0xffff1bc7}, + {0x8135b536, 0xffff1bc8}, + {0x8135b537, 0xffff1bc9}, + {0x8135b538, 0xffff1bca}, + {0x8135b539, 0xffff1bcb}, + {0x8135b630, 0xffff1bcc}, + {0x8135b631, 0xffff1bcd}, + {0x8135b632, 0xffff1bce}, + {0x8135b633, 0xffff1bcf}, + {0x8135b634, 0xffff1bd0}, + {0x8135b635, 0xffff1bd1}, + {0x8135b636, 0xffff1bd2}, + {0x8135b637, 0xffff1bd3}, + {0x8135b638, 0xffff1bd4}, + {0x8135b639, 0xffff1bd5}, + {0x8135b730, 0xffff1bd6}, + {0x8135b731, 0xffff1bd7}, + {0x8135b732, 0xffff1bd8}, + {0x8135b733, 0xffff1bd9}, + {0x8135b734, 0xffff1bda}, + {0x8135b735, 0xffff1bdb}, + {0x8135b736, 0xffff1bdc}, + {0x8135b737, 0xffff1bdd}, + {0x8135b738, 0xffff1bde}, + {0x8135b739, 0xffff1bdf}, + {0x8135b830, 0xffff1be0}, + {0x8135b831, 0xffff1be1}, + {0x8135b832, 0xffff1be2}, + {0x8135b833, 0xffff1be3}, + {0x8135b834, 0xffff1be4}, + {0x8135b835, 0xffff1be5}, + {0x8135b836, 0xffff1be6}, + {0x8135b837, 0xffff1be7}, + {0x8135b838, 0xffff1be8}, + {0x8135b839, 0xffff1be9}, + {0x8135b930, 0xffff1bea}, + {0x8135b931, 0xffff1beb}, + {0x8135b932, 0xffff1bec}, + {0x8135b933, 0xffff1bed}, + {0x8135b934, 0xffff1bee}, + {0x8135b935, 0xffff1bef}, + {0x8135b936, 0xffff1bf0}, + {0x8135b937, 0xffff1bf1}, + {0x8135b938, 0xffff1bf2}, + {0x8135b939, 0xffff1bf3}, + {0x8135ba30, 0xffff1bf4}, + {0x8135ba31, 0xffff1bf5}, + {0x8135ba32, 0xffff1bf6}, + {0x8135ba33, 0xffff1bf7}, + {0x8135ba34, 0xffff1bf8}, + {0x8135ba35, 0xffff1bf9}, + {0x8135ba36, 0xffff1bfa}, + {0x8135ba37, 0xffff1bfb}, + {0x8135ba38, 0xffff1bfc}, + {0x8135ba39, 0xffff1bfd}, + {0x8135bb30, 0xffff1bfe}, + {0x8135bb31, 0xffff1bff}, + {0x8135bb32, 0xffff1c00}, + {0x8135bb33, 0xffff1c01}, + {0x8135bb34, 0xffff1c02}, + {0x8135bb35, 0xffff1c03}, + {0x8135bb36, 0xffff1c04}, + {0x8135bb37, 0xffff1c05}, + {0x8135bb38, 0xffff1c06}, + {0x8135bb39, 0xffff1c07}, + {0x8135bc30, 0xffff1c08}, + {0x8135bc31, 0xffff1c09}, + {0x8135bc32, 0xffff1c0a}, + {0x8135bc33, 0xffff1c0b}, + {0x8135bc34, 0xffff1c0c}, + {0x8135bc35, 0xffff1c0d}, + {0x8135bc36, 0xffff1c0e}, + {0x8135bc37, 0xffff1c0f}, + {0x8135bc38, 0xffff1c10}, + {0x8135bc39, 0xffff1c11}, + {0x8135bd30, 0xffff1c12}, + {0x8135bd31, 0xffff1c13}, + {0x8135bd32, 0xffff1c14}, + {0x8135bd33, 0xffff1c15}, + {0x8135bd34, 0xffff1c16}, + {0x8135bd35, 0xffff1c17}, + {0x8135bd36, 0xffff1c18}, + {0x8135bd37, 0xffff1c19}, + {0x8135bd38, 0xffff1c1a}, + {0x8135bd39, 0xffff1c1b}, + {0x8135be30, 0xffff1c1c}, + {0x8135be31, 0xffff1c1d}, + {0x8135be32, 0xffff1c1e}, + {0x8135be33, 0xffff1c1f}, + {0x8135be34, 0xffff1c20}, + {0x8135be35, 0xffff1c21}, + {0x8135be36, 0xffff1c22}, + {0x8135be37, 0xffff1c23}, + {0x8135be38, 0xffff1c24}, + {0x8135be39, 0xffff1c25}, + {0x8135bf30, 0xffff1c26}, + {0x8135bf31, 0xffff1c27}, + {0x8135bf32, 0xffff1c28}, + {0x8135bf33, 0xffff1c29}, + {0x8135bf34, 0xffff1c2a}, + {0x8135bf35, 0xffff1c2b}, + {0x8135bf36, 0xffff1c2c}, + {0x8135bf37, 0xffff1c2d}, + {0x8135bf38, 0xffff1c2e}, + {0x8135bf39, 0xffff1c2f}, + {0x8135c030, 0xffff1c30}, + {0x8135c031, 0xffff1c31}, + {0x8135c032, 0xffff1c32}, + {0x8135c033, 0xffff1c33}, + {0x8135c034, 0xffff1c34}, + {0x8135c035, 0xffff1c35}, + {0x8135c036, 0xffff1c36}, + {0x8135c037, 0xffff1c37}, + {0x8135c038, 0xffff1c38}, + {0x8135c039, 0xffff1c39}, + {0x8135c130, 0xffff1c3a}, + {0x8135c131, 0xffff1c3b}, + {0x8135c132, 0xffff1c3c}, + {0x8135c133, 0xffff1c3d}, + {0x8135c134, 0xffff1c3e}, + {0x8135c135, 0xffff1c3f}, + {0x8135c136, 0xffff1c40}, + {0x8135c137, 0xffff1c41}, + {0x8135c138, 0xffff1c42}, + {0x8135c139, 0xffff1c43}, + {0x8135c230, 0xffff1c44}, + {0x8135c231, 0xffff1c45}, + {0x8135c232, 0xffff1c46}, + {0x8135c233, 0xffff1c47}, + {0x8135c234, 0xffff1c48}, + {0x8135c235, 0xffff1c49}, + {0x8135c236, 0xffff1c4a}, + {0x8135c237, 0xffff1c4b}, + {0x8135c238, 0xffff1c4c}, + {0x8135c239, 0xffff1c4d}, + {0x8135c330, 0xffff1c4e}, + {0x8135c331, 0xffff1c4f}, + {0x8135c332, 0xffff1c50}, + {0x8135c333, 0xffff1c51}, + {0x8135c334, 0xffff1c52}, + {0x8135c335, 0xffff1c53}, + {0x8135c336, 0xffff1c54}, + {0x8135c337, 0xffff1c55}, + {0x8135c338, 0xffff1c56}, + {0x8135c339, 0xffff1c57}, + {0x8135c430, 0xffff1c58}, + {0x8135c431, 0xffff1c59}, + {0x8135c432, 0xffff1c5a}, + {0x8135c433, 0xffff1c5b}, + {0x8135c434, 0xffff1c5c}, + {0x8135c435, 0xffff1c5d}, + {0x8135c436, 0xffff1c5e}, + {0x8135c437, 0xffff1c5f}, + {0x8135c438, 0xffff1c60}, + {0x8135c439, 0xffff1c61}, + {0x8135c530, 0xffff1c62}, + {0x8135c531, 0xffff1c63}, + {0x8135c532, 0xffff1c64}, + {0x8135c533, 0xffff1c65}, + {0x8135c534, 0xffff1c66}, + {0x8135c535, 0xffff1c67}, + {0x8135c536, 0xffff1c68}, + {0x8135c537, 0xffff1c69}, + {0x8135c538, 0xffff1c6a}, + {0x8135c539, 0xffff1c6b}, + {0x8135c630, 0xffff1c6c}, + {0x8135c631, 0xffff1c6d}, + {0x8135c632, 0xffff1c6e}, + {0x8135c633, 0xffff1c6f}, + {0x8135c634, 0xffff1c70}, + {0x8135c635, 0xffff1c71}, + {0x8135c636, 0xffff1c72}, + {0x8135c637, 0xffff1c73}, + {0x8135c638, 0xffff1c74}, + {0x8135c639, 0xffff1c75}, + {0x8135c730, 0xffff1c76}, + {0x8135c731, 0xffff1c77}, + {0x8135c732, 0xffff1c78}, + {0x8135c733, 0xffff1c79}, + {0x8135c734, 0xffff1c7a}, + {0x8135c735, 0xffff1c7b}, + {0x8135c736, 0xffff1c7c}, + {0x8135c737, 0xffff1c7d}, + {0x8135c738, 0xffff1c7e}, + {0x8135c739, 0xffff1c7f}, + {0x8135c830, 0xffff1c80}, + {0x8135c831, 0xffff1c81}, + {0x8135c832, 0xffff1c82}, + {0x8135c833, 0xffff1c83}, + {0x8135c834, 0xffff1c84}, + {0x8135c835, 0xffff1c85}, + {0x8135c836, 0xffff1c86}, + {0x8135c837, 0xffff1c87}, + {0x8135c838, 0xffff1c88}, + {0x8135c839, 0xffff1c89}, + {0x8135c930, 0xffff1c8a}, + {0x8135c931, 0xffff1c8b}, + {0x8135c932, 0xffff1c8c}, + {0x8135c933, 0xffff1c8d}, + {0x8135c934, 0xffff1c8e}, + {0x8135c935, 0xffff1c8f}, + {0x8135c936, 0xffff1c90}, + {0x8135c937, 0xffff1c91}, + {0x8135c938, 0xffff1c92}, + {0x8135c939, 0xffff1c93}, + {0x8135ca30, 0xffff1c94}, + {0x8135ca31, 0xffff1c95}, + {0x8135ca32, 0xffff1c96}, + {0x8135ca33, 0xffff1c97}, + {0x8135ca34, 0xffff1c98}, + {0x8135ca35, 0xffff1c99}, + {0x8135ca36, 0xffff1c9a}, + {0x8135ca37, 0xffff1c9b}, + {0x8135ca38, 0xffff1c9c}, + {0x8135ca39, 0xffff1c9d}, + {0x8135cb30, 0xffff1c9e}, + {0x8135cb31, 0xffff1c9f}, + {0x8135cb32, 0xffff1ca0}, + {0x8135cb33, 0xffff1ca1}, + {0x8135cb34, 0xffff1ca2}, + {0x8135cb35, 0xffff1ca3}, + {0x8135cb36, 0xffff1ca4}, + {0x8135cb37, 0xffff1ca5}, + {0x8135cb38, 0xffff1ca6}, + {0x8135cb39, 0xffff1ca7}, + {0x8135cc30, 0xffff1ca8}, + {0x8135cc31, 0xffff1ca9}, + {0x8135cc32, 0xffff1caa}, + {0x8135cc33, 0xffff1cab}, + {0x8135cc34, 0xffff1cac}, + {0x8135cc35, 0xffff1cad}, + {0x8135cc36, 0xffff1cae}, + {0x8135cc37, 0xffff1caf}, + {0x8135cc38, 0xffff1cb0}, + {0x8135cc39, 0xffff1cb1}, + {0x8135cd30, 0xffff1cb2}, + {0x8135cd31, 0xffff1cb3}, + {0x8135cd32, 0xffff1cb4}, + {0x8135cd33, 0xffff1cb5}, + {0x8135cd34, 0xffff1cb6}, + {0x8135cd35, 0xffff1cb7}, + {0x8135cd36, 0xffff1cb8}, + {0x8135cd37, 0xffff1cb9}, + {0x8135cd38, 0xffff1cba}, + {0x8135cd39, 0xffff1cbb}, + {0x8135ce30, 0xffff1cbc}, + {0x8135ce31, 0xffff1cbd}, + {0x8135ce32, 0xffff1cbe}, + {0x8135ce33, 0xffff1cbf}, + {0x8135ce34, 0xffff1cc0}, + {0x8135ce35, 0xffff1cc1}, + {0x8135ce36, 0xffff1cc2}, + {0x8135ce37, 0xffff1cc3}, + {0x8135ce38, 0xffff1cc4}, + {0x8135ce39, 0xffff1cc5}, + {0x8135cf30, 0xffff1cc6}, + {0x8135cf31, 0xffff1cc7}, + {0x8135cf32, 0xffff1cc8}, + {0x8135cf33, 0xffff1cc9}, + {0x8135cf34, 0xffff1cca}, + {0x8135cf35, 0xffff1ccb}, + {0x8135cf36, 0xffff1ccc}, + {0x8135cf37, 0xffff1ccd}, + {0x8135cf38, 0xffff1cce}, + {0x8135cf39, 0xffff1ccf}, + {0x8135d030, 0xffff1cd0}, + {0x8135d031, 0xffff1cd1}, + {0x8135d032, 0xffff1cd2}, + {0x8135d033, 0xffff1cd3}, + {0x8135d034, 0xffff1cd4}, + {0x8135d035, 0xffff1cd5}, + {0x8135d036, 0xffff1cd6}, + {0x8135d037, 0xffff1cd7}, + {0x8135d038, 0xffff1cd8}, + {0x8135d039, 0xffff1cd9}, + {0x8135d130, 0xffff1cda}, + {0x8135d131, 0xffff1cdb}, + {0x8135d132, 0xffff1cdc}, + {0x8135d133, 0xffff1cdd}, + {0x8135d134, 0xffff1cde}, + {0x8135d135, 0xffff1cdf}, + {0x8135d136, 0xffff1ce0}, + {0x8135d137, 0xffff1ce1}, + {0x8135d138, 0xffff1ce2}, + {0x8135d139, 0xffff1ce3}, + {0x8135d230, 0xffff1ce4}, + {0x8135d231, 0xffff1ce5}, + {0x8135d232, 0xffff1ce6}, + {0x8135d233, 0xffff1ce7}, + {0x8135d234, 0xffff1ce8}, + {0x8135d235, 0xffff1ce9}, + {0x8135d236, 0xffff1cea}, + {0x8135d237, 0xffff1ceb}, + {0x8135d238, 0xffff1cec}, + {0x8135d239, 0xffff1ced}, + {0x8135d330, 0xffff1cee}, + {0x8135d331, 0xffff1cef}, + {0x8135d332, 0xffff1cf0}, + {0x8135d333, 0xffff1cf1}, + {0x8135d334, 0xffff1cf2}, + {0x8135d335, 0xffff1cf3}, + {0x8135d336, 0xffff1cf4}, + {0x8135d337, 0xffff1cf5}, + {0x8135d338, 0xffff1cf6}, + {0x8135d339, 0xffff1cf7}, + {0x8135d430, 0xffff1cf8}, + {0x8135d431, 0xffff1cf9}, + {0x8135d432, 0xffff1cfa}, + {0x8135d433, 0xffff1cfb}, + {0x8135d434, 0xffff1cfc}, + {0x8135d435, 0xffff1cfd}, + {0x8135d436, 0xffff1cfe}, + {0x8135d437, 0xffff1cff}, + {0x8135d438, 0xffff1d00}, + {0x8135d439, 0xffff1d01}, + {0x8135d530, 0xffff1d02}, + {0x8135d531, 0xffff1d03}, + {0x8135d532, 0xffff1d04}, + {0x8135d533, 0xffff1d05}, + {0x8135d534, 0xffff1d06}, + {0x8135d535, 0xffff1d07}, + {0x8135d536, 0xffff1d08}, + {0x8135d537, 0xffff1d09}, + {0x8135d538, 0xffff1d0a}, + {0x8135d539, 0xffff1d0b}, + {0x8135d630, 0xffff1d0c}, + {0x8135d631, 0xffff1d0d}, + {0x8135d632, 0xffff1d0e}, + {0x8135d633, 0xffff1d0f}, + {0x8135d634, 0xffff1d10}, + {0x8135d635, 0xffff1d11}, + {0x8135d636, 0xffff1d12}, + {0x8135d637, 0xffff1d13}, + {0x8135d638, 0xffff1d14}, + {0x8135d639, 0xffff1d15}, + {0x8135d730, 0xffff1d16}, + {0x8135d731, 0xffff1d17}, + {0x8135d732, 0xffff1d18}, + {0x8135d733, 0xffff1d19}, + {0x8135d734, 0xffff1d1a}, + {0x8135d735, 0xffff1d1b}, + {0x8135d736, 0xffff1d1c}, + {0x8135d737, 0xffff1d1d}, + {0x8135d738, 0xffff1d1e}, + {0x8135d739, 0xffff1d1f}, + {0x8135d830, 0xffff1d20}, + {0x8135d831, 0xffff1d21}, + {0x8135d832, 0xffff1d22}, + {0x8135d833, 0xffff1d23}, + {0x8135d834, 0xffff1d24}, + {0x8135d835, 0xffff1d25}, + {0x8135d836, 0xffff1d26}, + {0x8135d837, 0xffff1d27}, + {0x8135d838, 0xffff1d28}, + {0x8135d839, 0xffff1d29}, + {0x8135d930, 0xffff1d2a}, + {0x8135d931, 0xffff1d2b}, + {0x8135d932, 0xffff1d2c}, + {0x8135d933, 0xffff1d2d}, + {0x8135d934, 0xffff1d2e}, + {0x8135d935, 0xffff1d2f}, + {0x8135d936, 0xffff1d30}, + {0x8135d937, 0xffff1d31}, + {0x8135d938, 0xffff1d32}, + {0x8135d939, 0xffff1d33}, + {0x8135da30, 0xffff1d34}, + {0x8135da31, 0xffff1d35}, + {0x8135da32, 0xffff1d36}, + {0x8135da33, 0xffff1d37}, + {0x8135da34, 0xffff1d38}, + {0x8135da35, 0xffff1d39}, + {0x8135da36, 0xffff1d3a}, + {0x8135da37, 0xffff1d3b}, + {0x8135da38, 0xffff1d3c}, + {0x8135da39, 0xffff1d3d}, + {0x8135db30, 0xffff1d3e}, + {0x8135db31, 0xffff1d3f}, + {0x8135db32, 0xffff1d40}, + {0x8135db33, 0xffff1d41}, + {0x8135db34, 0xffff1d42}, + {0x8135db35, 0xffff1d43}, + {0x8135db36, 0xffff1d44}, + {0x8135db37, 0xffff1d45}, + {0x8135db38, 0xffff1d46}, + {0x8135db39, 0xffff1d47}, + {0x8135dc30, 0xffff1d48}, + {0x8135dc31, 0xffff1d49}, + {0x8135dc32, 0xffff1d4a}, + {0x8135dc33, 0xffff1d4b}, + {0x8135dc34, 0xffff1d4c}, + {0x8135dc35, 0xffff1d4d}, + {0x8135dc36, 0xffff1d4e}, + {0x8135dc37, 0xffff1d4f}, + {0x8135dc38, 0xffff1d50}, + {0x8135dc39, 0xffff1d51}, + {0x8135dd30, 0xffff1d52}, + {0x8135dd31, 0xffff1d53}, + {0x8135dd32, 0xffff1d54}, + {0x8135dd33, 0xffff1d55}, + {0x8135dd34, 0xffff1d56}, + {0x8135dd35, 0xffff1d57}, + {0x8135dd36, 0xffff1d58}, + {0x8135dd37, 0xffff1d59}, + {0x8135dd38, 0xffff1d5a}, + {0x8135dd39, 0xffff1d5b}, + {0x8135de30, 0xffff1d5c}, + {0x8135de31, 0xffff1d5d}, + {0x8135de32, 0xffff1d5e}, + {0x8135de33, 0xffff1d5f}, + {0x8135de34, 0xffff1d60}, + {0x8135de35, 0xffff1d61}, + {0x8135de36, 0xffff1d62}, + {0x8135de37, 0xffff1d63}, + {0x8135de38, 0xffff1d64}, + {0x8135de39, 0xffff1d65}, + {0x8135df30, 0xffff1d66}, + {0x8135df31, 0xffff1d67}, + {0x8135df32, 0xffff1d68}, + {0x8135df33, 0xffff1d69}, + {0x8135df34, 0xffff1d6a}, + {0x8135df35, 0xffff1d6b}, + {0x8135df36, 0xffff1d6c}, + {0x8135df37, 0xffff1d6d}, + {0x8135df38, 0xffff1d6e}, + {0x8135df39, 0xffff1d6f}, + {0x8135e030, 0xffff1d70}, + {0x8135e031, 0xffff1d71}, + {0x8135e032, 0xffff1d72}, + {0x8135e033, 0xffff1d73}, + {0x8135e034, 0xffff1d74}, + {0x8135e035, 0xffff1d75}, + {0x8135e036, 0xffff1d76}, + {0x8135e037, 0xffff1d77}, + {0x8135e038, 0xffff1d78}, + {0x8135e039, 0xffff1d79}, + {0x8135e130, 0xffff1d7a}, + {0x8135e131, 0xffff1d7b}, + {0x8135e132, 0xffff1d7c}, + {0x8135e133, 0xffff1d7d}, + {0x8135e134, 0xffff1d7e}, + {0x8135e135, 0xffff1d7f}, + {0x8135e136, 0xffff1d80}, + {0x8135e137, 0xffff1d81}, + {0x8135e138, 0xffff1d82}, + {0x8135e139, 0xffff1d83}, + {0x8135e230, 0xffff1d84}, + {0x8135e231, 0xffff1d85}, + {0x8135e232, 0xffff1d86}, + {0x8135e233, 0xffff1d87}, + {0x8135e234, 0xffff1d88}, + {0x8135e235, 0xffff1d89}, + {0x8135e236, 0xffff1d8a}, + {0x8135e237, 0xffff1d8b}, + {0x8135e238, 0xffff1d8c}, + {0x8135e239, 0xffff1d8d}, + {0x8135e330, 0xffff1d8e}, + {0x8135e331, 0xffff1d8f}, + {0x8135e332, 0xffff1d90}, + {0x8135e333, 0xffff1d91}, + {0x8135e334, 0xffff1d92}, + {0x8135e335, 0xffff1d93}, + {0x8135e336, 0xffff1d94}, + {0x8135e337, 0xffff1d95}, + {0x8135e338, 0xffff1d96}, + {0x8135e339, 0xffff1d97}, + {0x8135e430, 0xffff1d98}, + {0x8135e431, 0xffff1d99}, + {0x8135e432, 0xffff1d9a}, + {0x8135e433, 0xffff1d9b}, + {0x8135e434, 0xffff1d9c}, + {0x8135e435, 0xffff1d9d}, + {0x8135e436, 0xffff1d9e}, + {0x8135e437, 0xffff1d9f}, + {0x8135e438, 0xffff1da0}, + {0x8135e439, 0xffff1da1}, + {0x8135e530, 0xffff1da2}, + {0x8135e531, 0xffff1da3}, + {0x8135e532, 0xffff1da4}, + {0x8135e533, 0xffff1da5}, + {0x8135e534, 0xffff1da6}, + {0x8135e535, 0xffff1da7}, + {0x8135e536, 0xffff1da8}, + {0x8135e537, 0xffff1da9}, + {0x8135e538, 0xffff1daa}, + {0x8135e539, 0xffff1dab}, + {0x8135e630, 0xffff1dac}, + {0x8135e631, 0xffff1dad}, + {0x8135e632, 0xffff1dae}, + {0x8135e633, 0xffff1daf}, + {0x8135e634, 0xffff1db0}, + {0x8135e635, 0xffff1db1}, + {0x8135e636, 0xffff1db2}, + {0x8135e637, 0xffff1db3}, + {0x8135e638, 0xffff1db4}, + {0x8135e639, 0xffff1db5}, + {0x8135e730, 0xffff1db6}, + {0x8135e731, 0xffff1db7}, + {0x8135e732, 0xffff1db8}, + {0x8135e733, 0xffff1db9}, + {0x8135e734, 0xffff1dba}, + {0x8135e735, 0xffff1dbb}, + {0x8135e736, 0xffff1dbc}, + {0x8135e737, 0xffff1dbd}, + {0x8135e738, 0xffff1dbe}, + {0x8135e739, 0xffff1dbf}, + {0x8135e830, 0xffff1dc0}, + {0x8135e831, 0xffff1dc1}, + {0x8135e832, 0xffff1dc2}, + {0x8135e833, 0xffff1dc3}, + {0x8135e834, 0xffff1dc4}, + {0x8135e835, 0xffff1dc5}, + {0x8135e836, 0xffff1dc6}, + {0x8135e837, 0xffff1dc7}, + {0x8135e838, 0xffff1dc8}, + {0x8135e839, 0xffff1dc9}, + {0x8135e930, 0xffff1dca}, + {0x8135e931, 0xffff1dcb}, + {0x8135e932, 0xffff1dcc}, + {0x8135e933, 0xffff1dcd}, + {0x8135e934, 0xffff1dce}, + {0x8135e935, 0xffff1dcf}, + {0x8135e936, 0xffff1dd0}, + {0x8135e937, 0xffff1dd1}, + {0x8135e938, 0xffff1dd2}, + {0x8135e939, 0xffff1dd3}, + {0x8135ea30, 0xffff1dd4}, + {0x8135ea31, 0xffff1dd5}, + {0x8135ea32, 0xffff1dd6}, + {0x8135ea33, 0xffff1dd7}, + {0x8135ea34, 0xffff1dd8}, + {0x8135ea35, 0xffff1dd9}, + {0x8135ea36, 0xffff1dda}, + {0x8135ea37, 0xffff1ddb}, + {0x8135ea38, 0xffff1ddc}, + {0x8135ea39, 0xffff1ddd}, + {0x8135eb30, 0xffff1dde}, + {0x8135eb31, 0xffff1ddf}, + {0x8135eb32, 0xffff1de0}, + {0x8135eb33, 0xffff1de1}, + {0x8135eb34, 0xffff1de2}, + {0x8135eb35, 0xffff1de3}, + {0x8135eb36, 0xffff1de4}, + {0x8135eb37, 0xffff1de5}, + {0x8135eb38, 0xffff1de6}, + {0x8135eb39, 0xffff1de7}, + {0x8135ec30, 0xffff1de8}, + {0x8135ec31, 0xffff1de9}, + {0x8135ec32, 0xffff1dea}, + {0x8135ec33, 0xffff1deb}, + {0x8135ec34, 0xffff1dec}, + {0x8135ec35, 0xffff1ded}, + {0x8135ec36, 0xffff1dee}, + {0x8135ec37, 0xffff1def}, + {0x8135ec38, 0xffff1df0}, + {0x8135ec39, 0xffff1df1}, + {0x8135ed30, 0xffff1df2}, + {0x8135ed31, 0xffff1df3}, + {0x8135ed32, 0xffff1df4}, + {0x8135ed33, 0xffff1df5}, + {0x8135ed34, 0xffff1df6}, + {0x8135ed35, 0xffff1df7}, + {0x8135ed36, 0xffff1df8}, + {0x8135ed37, 0xffff1df9}, + {0x8135ed38, 0xffff1dfa}, + {0x8135ed39, 0xffff1dfb}, + {0x8135ee30, 0xffff1dfc}, + {0x8135ee31, 0xffff1dfd}, + {0x8135ee32, 0xffff1dfe}, + {0x8135ee33, 0xffff1dff}, + {0x8135ee34, 0x01ea}, + {0x8135ee35, 0x01ea}, + {0x8135ee36, 0x01ef}, + {0x8135ee37, 0x01ef}, + {0x8135ee38, 0x01ef}, + {0x8135ee39, 0x01ef}, + {0x8135ef30, 0x01ef}, + {0x8135ef31, 0x01ef}, + {0x8135ef32, 0x01f4}, + {0x8135ef33, 0x01f4}, + {0x8135ef34, 0x01f7}, + {0x8135ef35, 0x01f7}, + {0x8135ef36, 0x01f7}, + {0x8135ef37, 0x01f7}, + {0x8135ef38, 0x01f7}, + {0x8135ef39, 0x01f7}, + {0x8135f030, 0x01f7}, + {0x8135f031, 0x01f7}, + {0x8135f032, 0x01f7}, + {0x8135f033, 0x01f7}, + {0x8135f034, 0x01fe}, + {0x8135f035, 0x01fe}, + {0x8135f036, 0x01fe}, + {0x8135f037, 0x01fe}, + {0x8135f038, 0x01fe}, + {0x8135f039, 0x01fe}, + {0x8135f130, 0x01fe}, + {0x8135f131, 0x01fe}, + {0x8135f132, 0x01fe}, + {0x8135f133, 0x01fe}, + {0x8135f134, 0x0209}, + {0x8135f135, 0x0209}, + {0x8135f136, 0x020b}, + {0x8135f137, 0x020b}, + {0x8135f138, 0x0213}, + {0x8135f139, 0x0213}, + {0x8135f230, 0x0213}, + {0x8135f231, 0x0213}, + {0x8135f232, 0x0213}, + {0x8135f233, 0x0213}, + {0x8135f234, 0x0213}, + {0x8135f235, 0x0213}, + {0x8135f236, 0x0213}, + {0x8135f237, 0x0213}, + {0x8135f238, 0x021b}, + {0x8135f239, 0x021b}, + {0x8135f330, 0x021b}, + {0x8135f331, 0x021b}, + {0x8135f332, 0x0223}, + {0x8135f333, 0x0223}, + {0x8135f334, 0x0223}, + {0x8135f335, 0x0223}, + {0x8135f336, 0x0223}, + {0x8135f337, 0x0223}, + {0x8135f338, 0x0226}, + {0x8135f339, 0x0226}, + {0x8135f430, 0x0226}, + {0x8135f431, 0x0226}, + {0x8135f432, 0x0226}, + {0x8135f433, 0x0226}, + {0x8135f434, 0x0226}, + {0x8135f435, 0x0226}, + {0x8135f436, 0x0230}, + {0x8135f437, 0x0230}, + {0x8135f438, 0x0230}, + {0x8135f439, 0x0230}, + {0x8135f530, 0x0230}, + {0x8135f531, 0x0230}, + {0x8135f532, 0x0232}, + {0x8135f533, 0x0232}, + {0x8135f534, 0x0232}, + {0x8135f535, 0x0232}, + {0x8135f536, 0x0232}, + {0x8135f537, 0x0232}, + {0x8135f538, 0x0232}, + {0x8135f539, 0x0232}, + {0x8135f630, 0x0238}, + {0x8135f631, 0x0238}, + {0x8135f632, 0x0238}, + {0x8135f633, 0x0238}, + {0x8135f634, 0x0238}, + {0x8135f635, 0x0238}, + {0x8135f636, 0x0238}, + {0x8135f637, 0x0238}, + {0x8135f638, 0x023f}, + {0x8135f639, 0x023f}, + {0x8135f730, 0x023f}, + {0x8135f731, 0x023f}, + {0x8135f732, 0x0245}, + {0x8135f733, 0x0245}, + {0x8135f734, 0x0245}, + {0x8135f735, 0x0245}, + {0x8135f736, 0x0245}, + {0x8135f737, 0x0245}, + {0x8135f738, 0x0245}, + {0x8135f739, 0x0245}, + {0x8135f830, 0x024f}, + {0x8135f831, 0x024f}, + {0x8135f832, 0x024f}, + {0x8135f833, 0x024f}, + {0x8135f834, 0x024f}, + {0x8135f835, 0x024f}, + {0x8135f836, 0x024f}, + {0x8135f837, 0x024f}, + {0x8135f838, 0x024f}, + {0x8135f839, 0x024f}, + {0x8135f930, 0x0255}, + {0x8135f931, 0x0255}, + {0x8135f932, 0x0255}, + {0x8135f933, 0x0255}, + {0x8135f934, 0x0255}, + {0x8135f935, 0x0255}, + {0x8135f936, 0x0255}, + {0x8135f937, 0x0255}, + {0x8135f938, 0x025b}, + {0x8135f939, 0x025b}, + {0x8135fa30, 0x025b}, + {0x8135fa31, 0x025b}, + {0x8135fa32, 0x025b}, + {0x8135fa33, 0x025b}, + {0x8135fa34, 0x025b}, + {0x8135fa35, 0x025b}, + {0x8135fa36, 0x025b}, + {0x8135fa37, 0x025b}, + {0x8135fa38, 0x0261}, + {0x8135fa39, 0x0261}, + {0x8135fb30, 0x0261}, + {0x8135fb31, 0x0261}, + {0x8135fb32, 0x0264}, + {0x8135fb33, 0x0264}, + {0x8135fb34, 0x0264}, + {0x8135fb35, 0x0264}, + {0x8135fb36, 0x0264}, + {0x8135fb37, 0x0264}, + {0x8135fb38, 0x0264}, + {0x8135fb39, 0x0264}, + {0x8135fc30, 0x0264}, + {0x8135fc31, 0x0264}, + {0x8135fc32, 0x0266}, + {0x8135fc33, 0x0266}, + {0x8135fc34, 0x0266}, + {0x8135fc35, 0x0266}, + {0x8135fc36, 0x0267}, + {0x8135fc37, 0x0267}, + {0x8135fc38, 0x026a}, + {0x8135fc39, 0x026a}, + {0x8135fd30, 0x026a}, + {0x8135fd31, 0x026a}, + {0x8135fd32, 0x026a}, + {0x8135fd33, 0x026a}, + {0x8135fd34, 0x0213}, + {0x8135fd35, 0x0255}, + {0x8135fd36, 0x0264}, + {0x8135fd37, 0x0267}, + {0x8135fd38, 0x01ea027d}, + {0x8135fd39, 0x024f}, + {0x8135fe30, 0xffff1e9c}, + {0x8135fe31, 0xffff1e9d}, + {0x8135fe32, 0xffff1e9e}, + {0x8135fe33, 0xffff1e9f}, + {0x8135fe34, 0x01ea}, + {0x8135fe35, 0x01ea}, + {0x8135fe36, 0x01ea}, + {0x8135fe37, 0x01ea}, + {0x8135fe38, 0x01ea}, + {0x8135fe39, 0x01ea}, + {0x81368130, 0x01ea}, + {0x81368131, 0x01ea}, + {0x81368132, 0x01ea}, + {0x81368133, 0x01ea}, + {0x81368134, 0x01ea}, + {0x81368135, 0x01ea}, + {0x81368136, 0x01ea}, + {0x81368137, 0x01ea}, + {0x81368138, 0x01ea}, + {0x81368139, 0x01ea}, + {0x81368230, 0x01ea}, + {0x81368231, 0x01ea}, + {0x81368232, 0x01ea}, + {0x81368233, 0x01ea}, + {0x81368234, 0x01ea}, + {0x81368235, 0x01ea}, + {0x81368236, 0x01ea}, + {0x81368237, 0x01ea}, + {0x81368238, 0x01fe}, + {0x81368239, 0x01fe}, + {0x81368330, 0x01fe}, + {0x81368331, 0x01fe}, + {0x81368332, 0x01fe}, + {0x81368333, 0x01fe}, + {0x81368334, 0x01fe}, + {0x81368335, 0x01fe}, + {0x81368336, 0x01fe}, + {0x81368337, 0x01fe}, + {0x81368338, 0x01fe}, + {0x81368339, 0x01fe}, + {0x81368430, 0x01fe}, + {0x81368431, 0x01fe}, + {0x81368432, 0x01fe}, + {0x81368433, 0x01fe}, + {0x81368434, 0x021b}, + {0x81368435, 0x021b}, + {0x81368436, 0x021b}, + {0x81368437, 0x021b}, + {0x81368438, 0x0238}, + {0x81368439, 0x0238}, + {0x81368530, 0x0238}, + {0x81368531, 0x0238}, + {0x81368532, 0x0238}, + {0x81368533, 0x0238}, + {0x81368534, 0x0238}, + {0x81368535, 0x0238}, + {0x81368536, 0x0238}, + {0x81368537, 0x0238}, + {0x81368538, 0x0238}, + {0x81368539, 0x0238}, + {0x81368630, 0x0238}, + {0x81368631, 0x0238}, + {0x81368632, 0x0238}, + {0x81368633, 0x0238}, + {0x81368634, 0x0238}, + {0x81368635, 0x0238}, + {0x81368636, 0x0238}, + {0x81368637, 0x0238}, + {0x81368638, 0x0238}, + {0x81368639, 0x0238}, + {0x81368730, 0x0238}, + {0x81368731, 0x0238}, + {0x81368732, 0x025b}, + {0x81368733, 0x025b}, + {0x81368734, 0x025b}, + {0x81368735, 0x025b}, + {0x81368736, 0x025b}, + {0x81368737, 0x025b}, + {0x81368738, 0x025b}, + {0x81368739, 0x025b}, + {0x81368830, 0x025b}, + {0x81368831, 0x025b}, + {0x81368832, 0x025b}, + {0x81368833, 0x025b}, + {0x81368834, 0x025b}, + {0x81368835, 0x025b}, + {0x81368836, 0x0267}, + {0x81368837, 0x0267}, + {0x81368838, 0x0267}, + {0x81368839, 0x0267}, + {0x81368930, 0x0267}, + {0x81368931, 0x0267}, + {0x81368932, 0x0267}, + {0x81368933, 0x0267}, + {0x81368934, 0xffff1efa}, + {0x81368935, 0xffff1efb}, + {0x81368936, 0xffff1efc}, + {0x81368937, 0xffff1efd}, + {0x81368938, 0xffff1efe}, + {0x81368939, 0xffff1eff}, + {0x81368a30, 0x028b}, + {0x81368a31, 0x028b}, + {0x81368a32, 0x028b}, + {0x81368a33, 0x028b}, + {0x81368a34, 0x028b}, + {0x81368a35, 0x028b}, + {0x81368a36, 0x028b}, + {0x81368a37, 0x028b}, + {0x81368a38, 0x028b}, + {0x81368a39, 0x028b}, + {0x81368b30, 0x028b}, + {0x81368b31, 0x028b}, + {0x81368b32, 0x028b}, + {0x81368b33, 0x028b}, + {0x81368b34, 0x028b}, + {0x81368b35, 0x028b}, + {0x81368b36, 0x028f}, + {0x81368b37, 0x028f}, + {0x81368b38, 0x028f}, + {0x81368b39, 0x028f}, + {0x81368c30, 0x028f}, + {0x81368c31, 0x028f}, + {0x81368c32, 0xffff1f16}, + {0x81368c33, 0xffff1f17}, + {0x81368c34, 0x028f}, + {0x81368c35, 0x028f}, + {0x81368c36, 0x028f}, + {0x81368c37, 0x028f}, + {0x81368c38, 0x028f}, + {0x81368c39, 0x028f}, + {0x81368d30, 0xffff1f1e}, + {0x81368d31, 0xffff1f1f}, + {0x81368d32, 0x0293}, + {0x81368d33, 0x0293}, + {0x81368d34, 0x0293}, + {0x81368d35, 0x0293}, + {0x81368d36, 0x0293}, + {0x81368d37, 0x0293}, + {0x81368d38, 0x0293}, + {0x81368d39, 0x0293}, + {0x81368e30, 0x0293}, + {0x81368e31, 0x0293}, + {0x81368e32, 0x0293}, + {0x81368e33, 0x0293}, + {0x81368e34, 0x0293}, + {0x81368e35, 0x0293}, + {0x81368e36, 0x0293}, + {0x81368e37, 0x0293}, + {0x81368e38, 0x0295}, + {0x81368e39, 0x0295}, + {0x81368f30, 0x0295}, + {0x81368f31, 0x0295}, + {0x81368f32, 0x0295}, + {0x81368f33, 0x0295}, + {0x81368f34, 0x0295}, + {0x81368f35, 0x0295}, + {0x81368f36, 0x0295}, + {0x81368f37, 0x0295}, + {0x81368f38, 0x0295}, + {0x81368f39, 0x0295}, + {0x81369030, 0x0295}, + {0x81369031, 0x0295}, + {0x81369032, 0x0295}, + {0x81369033, 0x0295}, + {0x81369034, 0x029c}, + {0x81369035, 0x029c}, + {0x81369036, 0x029c}, + {0x81369037, 0x029c}, + {0x81369038, 0x029c}, + {0x81369039, 0x029c}, + {0x81369130, 0xffff1f46}, + {0x81369131, 0xffff1f47}, + {0x81369132, 0x029c}, + {0x81369133, 0x029c}, + {0x81369134, 0x029c}, + {0x81369135, 0x029c}, + {0x81369136, 0x029c}, + {0x81369137, 0x029c}, + {0x81369138, 0xffff1f4e}, + {0x81369139, 0xffff1f4f}, + {0x81369230, 0x02a2}, + {0x81369231, 0x02a2}, + {0x81369232, 0x02a2}, + {0x81369233, 0x02a2}, + {0x81369234, 0x02a2}, + {0x81369235, 0x02a2}, + {0x81369236, 0x02a2}, + {0x81369237, 0x02a2}, + {0x81369238, 0xffff1f58}, + {0x81369239, 0x02a2}, + {0x81369330, 0xffff1f5a}, + {0x81369331, 0x02a2}, + {0x81369332, 0xffff1f5c}, + {0x81369333, 0x02a2}, + {0x81369334, 0xffff1f5e}, + {0x81369335, 0x02a2}, + {0x81369336, 0x02a6}, + {0x81369337, 0x02a6}, + {0x81369338, 0x02a6}, + {0x81369339, 0x02a6}, + {0x81369430, 0x02a6}, + {0x81369431, 0x02a6}, + {0x81369432, 0x02a6}, + {0x81369433, 0x02a6}, + {0x81369434, 0x02a6}, + {0x81369435, 0x02a6}, + {0x81369436, 0x02a6}, + {0x81369437, 0x02a6}, + {0x81369438, 0x02a6}, + {0x81369439, 0x02a6}, + {0x81369530, 0x02a6}, + {0x81369531, 0x02a6}, + {0x81369532, 0x028b}, + {0x81369533, 0xffff1f71}, + {0x81369534, 0x028f}, + {0x81369535, 0xffff1f73}, + {0x81369536, 0x0293}, + {0x81369537, 0xffff1f75}, + {0x81369538, 0x0295}, + {0x81369539, 0xffff1f77}, + {0x81369630, 0x029c}, + {0x81369631, 0xffff1f79}, + {0x81369632, 0x02a2}, + {0x81369633, 0xffff1f7b}, + {0x81369634, 0x02a6}, + {0x81369635, 0xffff1f7d}, + {0x81369636, 0xffff1f7e}, + {0x81369637, 0xffff1f7f}, + {0x81369638, 0x028b}, + {0x81369639, 0x028b}, + {0x81369730, 0x028b}, + {0x81369731, 0x028b}, + {0x81369732, 0x028b}, + {0x81369733, 0x028b}, + {0x81369734, 0x028b}, + {0x81369735, 0x028b}, + {0x81369736, 0x028b}, + {0x81369737, 0x028b}, + {0x81369738, 0x028b}, + {0x81369739, 0x028b}, + {0x81369830, 0x028b}, + {0x81369831, 0x028b}, + {0x81369832, 0x028b}, + {0x81369833, 0x028b}, + {0x81369834, 0x0293}, + {0x81369835, 0x0293}, + {0x81369836, 0x0293}, + {0x81369837, 0x0293}, + {0x81369838, 0x0293}, + {0x81369839, 0x0293}, + {0x81369930, 0x0293}, + {0x81369931, 0x0293}, + {0x81369932, 0x0293}, + {0x81369933, 0x0293}, + {0x81369934, 0x0293}, + {0x81369935, 0x0293}, + {0x81369936, 0x0293}, + {0x81369937, 0x0293}, + {0x81369938, 0x0293}, + {0x81369939, 0x0293}, + {0x81369a30, 0x02a6}, + {0x81369a31, 0x02a6}, + {0x81369a32, 0x02a6}, + {0x81369a33, 0x02a6}, + {0x81369a34, 0x02a6}, + {0x81369a35, 0x02a6}, + {0x81369a36, 0x02a6}, + {0x81369a37, 0x02a6}, + {0x81369a38, 0x02a6}, + {0x81369a39, 0x02a6}, + {0x81369b30, 0x02a6}, + {0x81369b31, 0x02a6}, + {0x81369b32, 0x02a6}, + {0x81369b33, 0x02a6}, + {0x81369b34, 0x02a6}, + {0x81369b35, 0x02a6}, + {0x81369b36, 0x028b}, + {0x81369b37, 0x028b}, + {0x81369b38, 0x028b}, + {0x81369b39, 0x028b}, + {0x81369c30, 0x028b}, + {0x81369c31, 0xffff1fb5}, + {0x81369c32, 0x028b}, + {0x81369c33, 0x028b}, + {0x81369c34, 0x028b}, + {0x81369c35, 0x028b}, + {0x81369c36, 0x028b}, + {0x81369c37, 0xffff1fbb}, + {0x81369c38, 0x028b}, + {0x81369c39, 0xffff1fbd}, + {0x81369d30, 0x0295}, + {0x81369d31, 0xffff1fbf}, + {0x81369d32, 0xffff1fc0}, + {0x81369d34, 0x0293}, + {0x81369d35, 0x0293}, + {0x81369d36, 0x0293}, + {0x81369d37, 0xffff1fc5}, + {0x81369d38, 0x0293}, + {0x81369d39, 0x0293}, + {0x81369e30, 0x028f}, + {0x81369e31, 0xffff1fc9}, + {0x81369e32, 0x0293}, + {0x81369e33, 0xffff1fcb}, + {0x81369e34, 0x0293}, + {0x81369e35, 0xffff1fbf}, + {0x81369e36, 0xffff1fbf}, + {0x81369e37, 0xffff1fbf}, + {0x81369e38, 0x0295}, + {0x81369e39, 0x0295}, + {0x81369f30, 0x0295}, + {0x81369f31, 0xffff1fd3}, + {0x81369f32, 0xffff1fd4}, + {0x81369f33, 0xffff1fd5}, + {0x81369f34, 0x0295}, + {0x81369f35, 0x0295}, + {0x81369f36, 0x0295}, + {0x81369f37, 0x0295}, + {0x81369f38, 0x0295}, + {0x81369f39, 0xffff1fdb}, + {0x8136a030, 0xffff1fdc}, + {0x8136a031, 0xffff1ffe}, + {0x8136a032, 0xffff1ffe}, + {0x8136a033, 0xffff1ffe}, + {0x8136a034, 0x02a2}, + {0x8136a035, 0x02a2}, + {0x8136a036, 0x02a2}, + {0x8136a037, 0xffff1fe3}, + {0x8136a038, 0x029f}, + {0x8136a039, 0x029f}, + {0x8136a130, 0x02a2}, + {0x8136a131, 0x02a2}, + {0x8136a132, 0x02a2}, + {0x8136a133, 0x02a2}, + {0x8136a134, 0x02a2}, + {0x8136a135, 0xffff1feb}, + {0x8136a136, 0x029f}, + {0x8136a138, 0xffff1fee}, + {0x8136a139, 0xffff1fef}, + {0x8136a230, 0xffff1ff0}, + {0x8136a231, 0xffff1ff1}, + {0x8136a232, 0x02a6}, + {0x8136a233, 0x02a6}, + {0x8136a234, 0x02a6}, + {0x8136a235, 0xffff1ff5}, + {0x8136a236, 0x02a6}, + {0x8136a237, 0x02a6}, + {0x8136a238, 0x029c}, + {0x8136a239, 0xffff1ff9}, + {0x8136a330, 0x02a6}, + {0x8136a331, 0xffff1ffb}, + {0x8136a332, 0x02a6}, + {0x8136a333, 0xffff1ffd}, + {0x8136a334, 0xffff1ffe}, + {0x8136a335, 0xffff1fff}, + {0x8136a336, 0xffff2000}, + {0x8136a337, 0xffff2001}, + {0x8136a338, 0xffff2002}, + {0x8136a339, 0xffff2003}, + {0x8136a430, 0xffff2004}, + {0x8136a431, 0xffff2005}, + {0x8136a432, 0xffff2006}, + {0x8136a433, 0xffff2007}, + {0x8136a434, 0xffff2008}, + {0x8136a435, 0xffff2009}, + {0x8136a436, 0xffff200a}, + {0x8136a437, 0xffff200b}, + {0x8136a438, 0xffff200c}, + {0x8136a439, 0xffff200d}, + {0x8136a530, 0xffff200e}, + {0x8136a531, 0xffff200f}, + {0x8136a637, 0xffff202a}, + {0x8136a638, 0xffff202b}, + {0x8136a639, 0xffff202c}, + {0x8136a730, 0xffff202d}, + {0x8136a731, 0xffff202e}, + {0x8136a732, 0xffff202f}, + {0x8136a931, 0xffff2047}, + {0x8136a932, 0xffff2048}, + {0x8136a933, 0xffff2049}, + {0x8136a934, 0xffff204a}, + {0x8136a935, 0xffff204b}, + {0x8136a936, 0xffff204c}, + {0x8136a937, 0xffff204d}, + {0x8136a938, 0xffff204e}, + {0x8136a939, 0xffff204f}, + {0x8136aa30, 0xffff2050}, + {0x8136aa31, 0xffff2051}, + {0x8136aa32, 0xffff2052}, + {0x8136aa33, 0xffff2053}, + {0x8136aa34, 0xffff2054}, + {0x8136aa35, 0xffff2055}, + {0x8136aa36, 0xffff2056}, + {0x8136aa37, 0xffff2057}, + {0x8136aa38, 0xffff2058}, + {0x8136aa39, 0xffff2059}, + {0x8136ab30, 0xffff205a}, + {0x8136ab31, 0xffff205b}, + {0x8136ab32, 0xffff205c}, + {0x8136ab33, 0xffff205d}, + {0x8136ab34, 0xffff205e}, + {0x8136ab35, 0xffff205f}, + {0x8136ab36, 0xffff2060}, + {0x8136ab37, 0xffff2061}, + {0x8136ab38, 0xffff2062}, + {0x8136ab39, 0xffff2063}, + {0x8136ac30, 0xffff2064}, + {0x8136ac31, 0xffff2065}, + {0x8136ac32, 0xffff2066}, + {0x8136ac33, 0xffff2067}, + {0x8136ac34, 0xffff2068}, + {0x8136ac35, 0xffff2069}, + {0x8136ac36, 0xffff206a}, + {0x8136ac37, 0xffff206b}, + {0x8136ac38, 0xffff206c}, + {0x8136ac39, 0xffff206d}, + {0x8136ad30, 0xffff206e}, + {0x8136ad31, 0xffff206f}, + {0x8136ad32, 0x0179}, + {0x8136ad33, 0xffff2071}, + {0x8136ad34, 0xffff2072}, + {0x8136ad35, 0xffff2073}, + {0x8136ad36, 0x017d}, + {0x8136ad37, 0x017e}, + {0x8136ad38, 0x017f}, + {0x8136ad39, 0x0180}, + {0x8136ae30, 0x0181}, + {0x8136ae31, 0x0182}, + {0x8136ae32, 0xffff207a}, + {0x8136ae33, 0xffff207b}, + {0x8136ae34, 0xffff207c}, + {0x8136ae35, 0xffff207d}, + {0x8136ae36, 0xffff207e}, + {0x8136ae37, 0x0232}, + {0x8136ae38, 0x0179}, + {0x8136ae39, 0x017a}, + {0x8136af30, 0x017b}, + {0x8136af31, 0x017c}, + {0x8136af32, 0x017d}, + {0x8136af33, 0x017e}, + {0x8136af34, 0x017f}, + {0x8136af35, 0x0180}, + {0x8136af36, 0x0181}, + {0x8136af37, 0x0182}, + {0x8136af38, 0xffff208a}, + {0x8136af39, 0xffff208b}, + {0x8136b030, 0xffff208c}, + {0x8136b031, 0xffff208d}, + {0x8136b032, 0xffff208e}, + {0x8136b033, 0xffff208f}, + {0x8136b034, 0xffff2090}, + {0x8136b035, 0xffff2091}, + {0x8136b036, 0xffff2092}, + {0x8136b037, 0xffff2093}, + {0x8136b038, 0xffff2094}, + {0x8136b039, 0xffff2095}, + {0x8136b130, 0xffff2096}, + {0x8136b131, 0xffff2097}, + {0x8136b132, 0xffff2098}, + {0x8136b133, 0xffff2099}, + {0x8136b134, 0xffff209a}, + {0x8136b135, 0xffff209b}, + {0x8136b136, 0xffff209c}, + {0x8136b137, 0xffff209d}, + {0x8136b138, 0xffff209e}, + {0x8136b139, 0xffff209f}, + {0x8136b230, 0x0091}, + {0x8136b231, 0x0092}, + {0x8136b232, 0x0093}, + {0x8136b233, 0x0094}, + {0x8136b234, 0x0095}, + {0x8136b235, 0x0096}, + {0x8136b236, 0x0097}, + {0x8136b237, 0x0098}, + {0x8136b238, 0xffff20a8}, + {0x8136b239, 0x0099}, + {0x8136b330, 0x009b}, + {0x8136b331, 0x009c}, + {0x8136b332, 0xffff20ad}, + {0x8136b333, 0xffff20ae}, + {0x8136b334, 0xffff20af}, + {0x8136b335, 0xffff20b0}, + {0x8136b336, 0xffff20b1}, + {0x8136b337, 0xffff20b2}, + {0x8136b338, 0xffff20b3}, + {0x8136b339, 0xffff20b4}, + {0x8136b430, 0xffff20b5}, + {0x8136b431, 0xffff20b6}, + {0x8136b432, 0xffff20b7}, + {0x8136b433, 0xffff20b8}, + {0x8136b434, 0xffff20b9}, + {0x8136b435, 0xffff20ba}, + {0x8136b436, 0xffff20bb}, + {0x8136b437, 0xffff20bc}, + {0x8136b438, 0xffff20bd}, + {0x8136b439, 0xffff20be}, + {0x8136b530, 0xffff20bf}, + {0x8136b531, 0xffff20c0}, + {0x8136b532, 0xffff20c1}, + {0x8136b533, 0xffff20c2}, + {0x8136b534, 0xffff20c3}, + {0x8136b535, 0xffff20c4}, + {0x8136b536, 0xffff20c5}, + {0x8136b537, 0xffff20c6}, + {0x8136b538, 0xffff20c7}, + {0x8136b539, 0xffff20c8}, + {0x8136b630, 0xffff20c9}, + {0x8136b631, 0xffff20ca}, + {0x8136b632, 0xffff20cb}, + {0x8136b633, 0xffff20cc}, + {0x8136b634, 0xffff20cd}, + {0x8136b635, 0xffff20ce}, + {0x8136b636, 0xffff20cf}, + {0x8136b835, 0xffff20e2}, + {0x8136b836, 0xffff20e3}, + {0x8136b837, 0xffff20e4}, + {0x8136b838, 0xffff20e5}, + {0x8136b839, 0xffff20e6}, + {0x8136b930, 0xffff20e7}, + {0x8136b931, 0xffff20e8}, + {0x8136b932, 0xffff20e9}, + {0x8136b933, 0xffff20ea}, + {0x8136b934, 0xffff20eb}, + {0x8136b935, 0xffff20ec}, + {0x8136b936, 0xffff20ed}, + {0x8136b937, 0xffff20ee}, + {0x8136b938, 0xffff20ef}, + {0x8136b939, 0xffff20f0}, + {0x8136ba30, 0xffff20f1}, + {0x8136ba31, 0xffff20f2}, + {0x8136ba32, 0xffff20f3}, + {0x8136ba33, 0xffff20f4}, + {0x8136ba34, 0xffff20f5}, + {0x8136ba35, 0xffff20f6}, + {0x8136ba36, 0xffff20f7}, + {0x8136ba37, 0xffff20f8}, + {0x8136ba38, 0xffff20f9}, + {0x8136ba39, 0xffff20fa}, + {0x8136bb30, 0xffff20fb}, + {0x8136bb31, 0xffff20fc}, + {0x8136bb32, 0xffff20fd}, + {0x8136bb33, 0xffff20fe}, + {0x8136bb34, 0xffff20ff}, + {0x8136bb35, 0xffff2100}, + {0x8136bb36, 0xffff2101}, + {0x8136bb37, 0x01f4}, + {0x8136bb38, 0x009e}, + {0x8136bb39, 0xffff2106}, + {0x8136bc30, 0xffff2107}, + {0x8136bc31, 0x009f}, + {0x8136bc32, 0x020b}, + {0x8136bc33, 0x0213}, + {0x8136bc34, 0x0213}, + {0x8136bc35, 0x0213}, + {0x8136bc36, 0x0213}, + {0x8136bc37, 0x0216}, + {0x8136bc38, 0x021b}, + {0x8136bc39, 0x021b}, + {0x8136bd30, 0x0226}, + {0x8136bd31, 0x0226}, + {0x8136bd32, 0x00a0}, + {0x8136bd33, 0x0232}, + {0x8136bd34, 0x00a1}, + {0x8136bd35, 0x00a2}, + {0x8136bd36, 0x023f}, + {0x8136bd37, 0x0242}, + {0x8136bd38, 0x0245}, + {0x8136bd39, 0x0245}, + {0x8136be30, 0x0245}, + {0x8136be31, 0x00a3}, + {0x8136be32, 0x00a4}, + {0x8136be33, 0x024f0230}, + {0x8136be34, 0x02550230}, + {0x8136be35, 0x00a5}, + {0x8136be36, 0x026a}, + {0x8136be37, 0x00a6}, + {0x8136be38, 0x02a6}, + {0x8136be39, 0x00a7}, + {0x8136bf30, 0x026a}, + {0x8136bf31, 0x00a8}, + {0x8136bf32, 0x0223}, + {0x8136bf33, 0xffff212b}, + {0x8136bf34, 0x01ef}, + {0x8136bf35, 0xffff212d}, + {0x8136bf36, 0x00a9}, + {0x8136bf37, 0x01fe}, + {0x8136bf38, 0x01fe}, + {0x8136bf39, 0x0209}, + {0x8136c030, 0x00aa}, + {0x8136c031, 0x0230}, + {0x8136c032, 0x0238}, + {0x8136c033, 0xffff2135}, + {0x8136c034, 0xffff2136}, + {0x8136c035, 0xffff2137}, + {0x8136c036, 0xffff2138}, + {0x8136c037, 0xffff2139}, + {0x8136c038, 0xffff213a}, + {0x8136c039, 0xffff213b}, + {0x8136c130, 0xffff213c}, + {0x8136c131, 0xffff213d}, + {0x8136c132, 0xffff213e}, + {0x8136c133, 0xffff213f}, + {0x8136c134, 0xffff2140}, + {0x8136c135, 0xffff2141}, + {0x8136c136, 0xffff2142}, + {0x8136c137, 0xffff2143}, + {0x8136c138, 0xffff2144}, + {0x8136c139, 0xffff2145}, + {0x8136c230, 0xffff2146}, + {0x8136c231, 0xffff2147}, + {0x8136c232, 0xffff2148}, + {0x8136c233, 0xffff2149}, + {0x8136c234, 0xffff214a}, + {0x8136c235, 0xffff214b}, + {0x8136c236, 0xffff214c}, + {0x8136c237, 0xffff214d}, + {0x8136c238, 0xffff214e}, + {0x8136c239, 0xffff214f}, + {0x8136c330, 0xffff2150}, + {0x8136c331, 0xffff2151}, + {0x8136c332, 0xffff2152}, + {0x8136c333, 0xffff2153}, + {0x8136c334, 0xffff2154}, + {0x8136c335, 0xffff2155}, + {0x8136c336, 0xffff2156}, + {0x8136c337, 0xffff2157}, + {0x8136c338, 0xffff2158}, + {0x8136c339, 0xffff2159}, + {0x8136c430, 0xffff215a}, + {0x8136c431, 0xffff215b}, + {0x8136c432, 0xffff215c}, + {0x8136c433, 0xffff215d}, + {0x8136c434, 0xffff215e}, + {0x8136c435, 0x017a}, + {0x8136c436, 0x0226}, + {0x8136c437, 0x01f4}, + {0x8136c438, 0x01f7}, + {0x8136c439, 0x0230}, + {0x8136c530, 0x0266021b}, + {0x8136c532, 0x0226}, + {0x8136c533, 0x01f4}, + {0x8136c534, 0x01f7}, + {0x8136c535, 0x0230}, + {0x8136c536, 0x00ab}, + {0x8136c537, 0x00ac}, + {0x8136c538, 0x00ad}, + {0x8136c539, 0xffff2183}, + {0x8136c630, 0xffff2184}, + {0x8136c631, 0xffff2185}, + {0x8136c632, 0xffff2186}, + {0x8136c633, 0xffff2187}, + {0x8136c634, 0xffff2188}, + {0x8136c635, 0xffff2189}, + {0x8136c636, 0xffff218a}, + {0x8136c637, 0xffff218b}, + {0x8136c638, 0xffff218c}, + {0x8136c639, 0xffff218d}, + {0x8136c730, 0xffff218e}, + {0x8136c731, 0xffff218f}, + {0x8136c732, 0xffff2194}, + {0x8136c733, 0xffff2195}, + {0x8136c734, 0xffff2190}, + {0x8136c735, 0xffff2192}, + {0x8136c736, 0xffff219c}, + {0x8136c737, 0xffff219d}, + {0x8136c738, 0xffff219e}, + {0x8136c739, 0xffff219f}, + {0x8136c830, 0xffff21a0}, + {0x8136c831, 0xffff21a1}, + {0x8136c832, 0xffff21a2}, + {0x8136c833, 0xffff21a3}, + {0x8136c834, 0xffff21a4}, + {0x8136c835, 0xffff21a5}, + {0x8136c836, 0xffff21a6}, + {0x8136c837, 0xffff21a7}, + {0x8136c838, 0xffff21a8}, + {0x8136c839, 0xffff21a9}, + {0x8136c930, 0xffff21aa}, + {0x8136c931, 0xffff21ab}, + {0x8136c932, 0xffff21ac}, + {0x8136c933, 0xffff21ad}, + {0x8136c934, 0xffff2194}, + {0x8136c935, 0xffff21af}, + {0x8136c936, 0xffff21b0}, + {0x8136c937, 0xffff21b1}, + {0x8136c938, 0xffff21b2}, + {0x8136c939, 0xffff21b3}, + {0x8136ca30, 0xffff21b4}, + {0x8136ca31, 0xffff21b5}, + {0x8136ca32, 0xffff21b6}, + {0x8136ca33, 0xffff21b7}, + {0x8136ca34, 0xffff21b8}, + {0x8136ca35, 0xffff21b9}, + {0x8136ca36, 0xffff21ba}, + {0x8136ca37, 0xffff21bb}, + {0x8136ca38, 0xffff21bc}, + {0x8136ca39, 0xffff21bd}, + {0x8136cb30, 0xffff21be}, + {0x8136cb31, 0xffff21bf}, + {0x8136cb32, 0xffff21c0}, + {0x8136cb33, 0xffff21c1}, + {0x8136cb34, 0xffff21c2}, + {0x8136cb35, 0xffff21c3}, + {0x8136cb36, 0xffff21c4}, + {0x8136cb37, 0xffff21c5}, + {0x8136cb38, 0xffff21c6}, + {0x8136cb39, 0xffff21c7}, + {0x8136cc30, 0xffff21c8}, + {0x8136cc31, 0xffff21c9}, + {0x8136cc32, 0xffff21ca}, + {0x8136cc33, 0xffff21cb}, + {0x8136cc34, 0xffff21cc}, + {0x8136cc35, 0xffff21d0}, + {0x8136cc36, 0xffff21d4}, + {0x8136cc37, 0xffff21d2}, + {0x8136cc38, 0xffff21d0}, + {0x8136cc39, 0xffff21d1}, + {0x8136cd30, 0xffff21d2}, + {0x8136cd31, 0xffff21d3}, + {0x8136cd32, 0xffff21d4}, + {0x8136cd33, 0xffff21d5}, + {0x8136cd34, 0xffff21d6}, + {0x8136cd35, 0xffff21d7}, + {0x8136cd36, 0xffff21d8}, + {0x8136cd37, 0xffff21d9}, + {0x8136cd38, 0xffff21da}, + {0x8136cd39, 0xffff21db}, + {0x8136ce30, 0xffff21dc}, + {0x8136ce31, 0xffff21dd}, + {0x8136ce32, 0xffff21de}, + {0x8136ce33, 0xffff21df}, + {0x8136ce34, 0xffff21e0}, + {0x8136ce35, 0xffff21e1}, + {0x8136ce36, 0xffff21e2}, + {0x8136ce37, 0xffff21e3}, + {0x8136ce38, 0xffff21e4}, + {0x8136ce39, 0xffff21e5}, + {0x8136cf30, 0xffff21e6}, + {0x8136cf31, 0xffff21e7}, + {0x8136cf32, 0xffff21e8}, + {0x8136cf33, 0xffff21e9}, + {0x8136cf34, 0xffff21ea}, + {0x8136cf35, 0xffff21eb}, + {0x8136cf36, 0xffff21ec}, + {0x8136cf37, 0xffff21ed}, + {0x8136cf38, 0xffff21ee}, + {0x8136cf39, 0xffff21ef}, + {0x8136d030, 0xffff21f0}, + {0x8136d031, 0xffff21f1}, + {0x8136d032, 0xffff21f2}, + {0x8136d033, 0xffff21f3}, + {0x8136d034, 0xffff21f4}, + {0x8136d035, 0xffff21f5}, + {0x8136d036, 0xffff21f6}, + {0x8136d037, 0xffff21f7}, + {0x8136d038, 0xffff21f8}, + {0x8136d039, 0xffff21f9}, + {0x8136d130, 0xffff21fa}, + {0x8136d131, 0xffff21fb}, + {0x8136d132, 0xffff21fc}, + {0x8136d133, 0xffff21fd}, + {0x8136d134, 0xffff21fe}, + {0x8136d135, 0xffff21ff}, + {0x8136d136, 0xffff2200}, + {0x8136d137, 0xffff2201}, + {0x8136d138, 0xffff2202}, + {0x8136d139, 0xffff2203}, + {0x8136d230, 0xffff2203}, + {0x8136d231, 0xffff2205}, + {0x8136d232, 0xffff2206}, + {0x8136d233, 0xffff2207}, + {0x8136d234, 0xffff2208}, + {0x8136d235, 0xffff220a}, + {0x8136d236, 0xffff220b}, + {0x8136d237, 0xffff220b}, + {0x8136d238, 0xffff220d}, + {0x8136d239, 0xffff220e}, + {0x8136d330, 0xffff2210}, + {0x8136d332, 0xffff2213}, + {0x8136d333, 0xffff2214}, + {0x8136d334, 0xffff2216}, + {0x8136d335, 0xffff2217}, + {0x8136d336, 0xffff2218}, + {0x8136d337, 0xffff2219}, + {0x8136d338, 0xffff221b}, + {0x8136d339, 0xffff221c}, + {0x8136d430, 0xffff2221}, + {0x8136d431, 0x023e}, + {0x8136d432, 0x023e}, + {0x8136d433, 0xffff2225}, + {0x8136d434, 0xffff222c}, + {0x8136d435, 0xffff222d}, + {0x8136d436, 0xffff222f}, + {0x8136d437, 0xffff2230}, + {0x8136d438, 0xffff2231}, + {0x8136d439, 0xffff2232}, + {0x8136d530, 0xffff2233}, + {0x8136d531, 0xffff2238}, + {0x8136d532, 0xffff2239}, + {0x8136d533, 0xffff223a}, + {0x8136d534, 0xffff223b}, + {0x8136d535, 0xffff223c}, + {0x8136d536, 0xffff223e}, + {0x8136d537, 0xffff223f}, + {0x8136d538, 0xffff2240}, + {0x8136d539, 0xffff223c}, + {0x8136d630, 0xffff2242}, + {0x8136d631, 0xffff2243}, + {0x8136d632, 0xffff2243}, + {0x8136d633, 0xffff2245}, + {0x8136d634, 0xffff2246}, + {0x8136d635, 0xffff2245}, + {0x8136d636, 0xffff2248}, + {0x8136d637, 0xffff224a}, + {0x8136d638, 0xffff224b}, + {0x8136d639, 0xffff224d}, + {0x8136d730, 0xffff224e}, + {0x8136d731, 0xffff224f}, + {0x8136d732, 0xffff2250}, + {0x8136d733, 0xffff2251}, + {0x8136d734, 0xffff2253}, + {0x8136d735, 0xffff2254}, + {0x8136d736, 0xffff2255}, + {0x8136d737, 0xffff2256}, + {0x8136d738, 0xffff2257}, + {0x8136d739, 0xffff2258}, + {0x8136d830, 0xffff2259}, + {0x8136d831, 0xffff225a}, + {0x8136d832, 0xffff225b}, + {0x8136d833, 0xffff225c}, + {0x8136d834, 0xffff225d}, + {0x8136d835, 0xffff225e}, + {0x8136d836, 0xffff225f}, + {0x8136d837, 0xffff2261}, + {0x8136d838, 0xffff2263}, + {0x8136d839, 0xffff2268}, + {0x8136d930, 0xffff2269}, + {0x8136d931, 0xffff226a}, + {0x8136d932, 0xffff226b}, + {0x8136d933, 0xffff226c}, + {0x8136d934, 0xffff224d}, + {0x8136d935, 0xffff2264}, + {0x8136d936, 0xffff2265}, + {0x8136d937, 0xffff2272}, + {0x8136d938, 0xffff2273}, + {0x8136d939, 0xffff2272}, + {0x8136da30, 0xffff2273}, + {0x8136da31, 0xffff2276}, + {0x8136da32, 0xffff2277}, + {0x8136da33, 0xffff2276}, + {0x8136da34, 0xffff2277}, + {0x8136da35, 0xffff227a}, + {0x8136da36, 0xffff227b}, + {0x8136da37, 0xffff227c}, + {0x8136da38, 0xffff227d}, + {0x8136da39, 0xffff227e}, + {0x8136db30, 0xffff227f}, + {0x8136db31, 0xffff227a}, + {0x8136db32, 0xffff227b}, + {0x8136db33, 0xffff2282}, + {0x8136db34, 0xffff2283}, + {0x8136db35, 0xffff2282}, + {0x8136db36, 0xffff2283}, + {0x8136db37, 0xffff2286}, + {0x8136db38, 0xffff2287}, + {0x8136db39, 0xffff2286}, + {0x8136dc30, 0xffff2287}, + {0x8136dc31, 0xffff228a}, + {0x8136dc32, 0xffff228b}, + {0x8136dc33, 0xffff228c}, + {0x8136dc34, 0xffff228d}, + {0x8136dc35, 0xffff228e}, + {0x8136dc36, 0xffff228f}, + {0x8136dc37, 0xffff2290}, + {0x8136dc38, 0xffff2291}, + {0x8136dc39, 0xffff2292}, + {0x8136dd30, 0xffff2293}, + {0x8136dd31, 0xffff2294}, + {0x8136dd32, 0xffff2296}, + {0x8136dd33, 0xffff2297}, + {0x8136dd34, 0xffff2298}, + {0x8136dd35, 0xffff229a}, + {0x8136dd36, 0xffff229b}, + {0x8136dd37, 0xffff229c}, + {0x8136dd38, 0xffff229d}, + {0x8136dd39, 0xffff229e}, + {0x8136de30, 0xffff229f}, + {0x8136de31, 0xffff22a0}, + {0x8136de32, 0xffff22a1}, + {0x8136de33, 0xffff22a2}, + {0x8136de34, 0xffff22a3}, + {0x8136de35, 0xffff22a4}, + {0x8136de36, 0xffff22a6}, + {0x8136de37, 0xffff22a7}, + {0x8136de38, 0xffff22a8}, + {0x8136de39, 0xffff22a9}, + {0x8136df30, 0xffff22aa}, + {0x8136df31, 0xffff22ab}, + {0x8136df32, 0xffff22a2}, + {0x8136df33, 0xffff22a8}, + {0x8136df34, 0xffff22a9}, + {0x8136df35, 0xffff22ab}, + {0x8136df36, 0xffff22b0}, + {0x8136df37, 0xffff22b1}, + {0x8136df38, 0xffff22b2}, + {0x8136df39, 0xffff22b3}, + {0x8136e030, 0xffff22b4}, + {0x8136e031, 0xffff22b5}, + {0x8136e032, 0xffff22b6}, + {0x8136e033, 0xffff22b7}, + {0x8136e034, 0xffff22b8}, + {0x8136e035, 0xffff22b9}, + {0x8136e036, 0xffff22ba}, + {0x8136e037, 0xffff22bb}, + {0x8136e038, 0xffff22bc}, + {0x8136e039, 0xffff22bd}, + {0x8136e130, 0xffff22be}, + {0x8136e131, 0xffff22c0}, + {0x8136e132, 0xffff22c1}, + {0x8136e133, 0xffff22c2}, + {0x8136e134, 0xffff22c3}, + {0x8136e135, 0xffff22c4}, + {0x8136e136, 0xffff22c5}, + {0x8136e137, 0xffff22c6}, + {0x8136e138, 0xffff22c7}, + {0x8136e139, 0xffff22c8}, + {0x8136e230, 0xffff22c9}, + {0x8136e231, 0xffff22ca}, + {0x8136e232, 0xffff22cb}, + {0x8136e233, 0xffff22cc}, + {0x8136e234, 0xffff22cd}, + {0x8136e235, 0xffff22ce}, + {0x8136e236, 0xffff22cf}, + {0x8136e237, 0xffff22d0}, + {0x8136e238, 0xffff22d1}, + {0x8136e239, 0xffff22d2}, + {0x8136e330, 0xffff22d3}, + {0x8136e331, 0xffff22d4}, + {0x8136e332, 0xffff22d5}, + {0x8136e333, 0xffff22d6}, + {0x8136e334, 0xffff22d7}, + {0x8136e335, 0xffff22d8}, + {0x8136e336, 0xffff22d9}, + {0x8136e337, 0xffff22da}, + {0x8136e338, 0xffff22db}, + {0x8136e339, 0xffff22dc}, + {0x8136e430, 0xffff22dd}, + {0x8136e431, 0xffff22de}, + {0x8136e432, 0xffff22df}, + {0x8136e433, 0xffff227c}, + {0x8136e434, 0xffff227d}, + {0x8136e435, 0xffff2291}, + {0x8136e436, 0xffff2292}, + {0x8136e437, 0xffff22e4}, + {0x8136e438, 0xffff22e5}, + {0x8136e439, 0xffff22e6}, + {0x8136e530, 0xffff22e7}, + {0x8136e531, 0xffff22e8}, + {0x8136e532, 0xffff22e9}, + {0x8136e533, 0xffff22b2}, + {0x8136e534, 0xffff22b3}, + {0x8136e535, 0xffff22b4}, + {0x8136e536, 0xffff22b5}, + {0x8136e537, 0xffff22ee}, + {0x8136e538, 0xffff22ef}, + {0x8136e539, 0xffff22f0}, + {0x8136e630, 0xffff22f1}, + {0x8136e631, 0xffff22f2}, + {0x8136e632, 0xffff22f3}, + {0x8136e633, 0xffff22f4}, + {0x8136e634, 0xffff22f5}, + {0x8136e635, 0xffff22f6}, + {0x8136e636, 0xffff22f7}, + {0x8136e637, 0xffff22f8}, + {0x8136e638, 0xffff22f9}, + {0x8136e639, 0xffff22fa}, + {0x8136e730, 0xffff22fb}, + {0x8136e731, 0xffff22fc}, + {0x8136e732, 0xffff22fd}, + {0x8136e733, 0xffff22fe}, + {0x8136e734, 0xffff22ff}, + {0x8136e735, 0xffff2300}, + {0x8136e736, 0xffff2301}, + {0x8136e737, 0xffff2302}, + {0x8136e738, 0xffff2303}, + {0x8136e739, 0xffff2304}, + {0x8136e830, 0xffff2305}, + {0x8136e831, 0xffff2306}, + {0x8136e832, 0xffff2307}, + {0x8136e833, 0xffff2308}, + {0x8136e834, 0xffff2309}, + {0x8136e835, 0xffff230a}, + {0x8136e836, 0xffff230b}, + {0x8136e837, 0xffff230c}, + {0x8136e838, 0xffff230d}, + {0x8136e839, 0xffff230e}, + {0x8136e930, 0xffff230f}, + {0x8136e931, 0xffff2310}, + {0x8136e932, 0xffff2311}, + {0x8136e933, 0xffff2313}, + {0x8136e934, 0xffff2314}, + {0x8136e935, 0xffff2315}, + {0x8136e936, 0xffff2316}, + {0x8136e937, 0xffff2317}, + {0x8136e938, 0xffff2318}, + {0x8136e939, 0xffff2319}, + {0x8136ea30, 0xffff231a}, + {0x8136ea31, 0xffff231b}, + {0x8136ea32, 0xffff231c}, + {0x8136ea33, 0xffff231d}, + {0x8136ea34, 0xffff231e}, + {0x8136ea35, 0xffff231f}, + {0x8136ea36, 0xffff2320}, + {0x8136ea37, 0xffff2321}, + {0x8136ea38, 0xffff2322}, + {0x8136ea39, 0xffff2323}, + {0x8136eb30, 0xffff2324}, + {0x8136eb31, 0xffff2325}, + {0x8136eb32, 0xffff2326}, + {0x8136eb33, 0xffff2327}, + {0x8136eb34, 0xffff2328}, + {0x8136eb35, 0xffff2329}, + {0x8136eb36, 0xffff232a}, + {0x8136eb37, 0xffff232b}, + {0x8136eb38, 0xffff232c}, + {0x8136eb39, 0xffff232d}, + {0x8136ec30, 0xffff232e}, + {0x8136ec31, 0xffff232f}, + {0x8136ec32, 0xffff2330}, + {0x8136ec33, 0xffff2331}, + {0x8136ec34, 0xffff2332}, + {0x8136ec35, 0xffff2333}, + {0x8136ec36, 0xffff2334}, + {0x8136ec37, 0xffff2335}, + {0x8136ec38, 0xffff2336}, + {0x8136ec39, 0xffff2337}, + {0x8136ed30, 0xffff2338}, + {0x8136ed31, 0xffff2339}, + {0x8136ed32, 0xffff233a}, + {0x8136ed33, 0xffff233b}, + {0x8136ed34, 0xffff233c}, + {0x8136ed35, 0xffff233d}, + {0x8136ed36, 0xffff233e}, + {0x8136ed37, 0xffff233f}, + {0x8136ed38, 0xffff2340}, + {0x8136ed39, 0xffff2341}, + {0x8136ee30, 0xffff2342}, + {0x8136ee31, 0xffff2343}, + {0x8136ee32, 0xffff2344}, + {0x8136ee33, 0xffff2345}, + {0x8136ee34, 0xffff2346}, + {0x8136ee35, 0xffff2347}, + {0x8136ee36, 0xffff2348}, + {0x8136ee37, 0xffff2349}, + {0x8136ee38, 0xffff234a}, + {0x8136ee39, 0xffff234b}, + {0x8136ef30, 0xffff234c}, + {0x8136ef31, 0xffff234d}, + {0x8136ef32, 0xffff234e}, + {0x8136ef33, 0xffff234f}, + {0x8136ef34, 0xffff2350}, + {0x8136ef35, 0xffff2351}, + {0x8136ef36, 0xffff2352}, + {0x8136ef37, 0xffff2353}, + {0x8136ef38, 0xffff2354}, + {0x8136ef39, 0xffff2355}, + {0x8136f030, 0xffff2356}, + {0x8136f031, 0xffff2357}, + {0x8136f032, 0xffff2358}, + {0x8136f033, 0xffff2359}, + {0x8136f034, 0xffff235a}, + {0x8136f035, 0xffff235b}, + {0x8136f036, 0xffff235c}, + {0x8136f037, 0xffff235d}, + {0x8136f038, 0xffff235e}, + {0x8136f039, 0xffff235f}, + {0x8136f130, 0xffff2360}, + {0x8136f131, 0xffff2361}, + {0x8136f132, 0xffff2362}, + {0x8136f133, 0xffff2363}, + {0x8136f134, 0xffff2364}, + {0x8136f135, 0xffff2365}, + {0x8136f136, 0xffff2366}, + {0x8136f137, 0xffff2367}, + {0x8136f138, 0xffff2368}, + {0x8136f139, 0xffff2369}, + {0x8136f230, 0xffff236a}, + {0x8136f231, 0xffff236b}, + {0x8136f232, 0xffff236c}, + {0x8136f233, 0xffff236d}, + {0x8136f234, 0xffff236e}, + {0x8136f235, 0xffff236f}, + {0x8136f236, 0xffff2370}, + {0x8136f237, 0xffff2371}, + {0x8136f238, 0xffff2372}, + {0x8136f239, 0xffff2373}, + {0x8136f330, 0xffff2374}, + {0x8136f331, 0xffff2375}, + {0x8136f332, 0xffff2376}, + {0x8136f333, 0xffff2377}, + {0x8136f334, 0xffff2378}, + {0x8136f335, 0xffff2379}, + {0x8136f336, 0xffff237a}, + {0x8136f337, 0xffff237b}, + {0x8136f338, 0xffff237c}, + {0x8136f339, 0xffff237d}, + {0x8136f430, 0xffff237e}, + {0x8136f431, 0xffff237f}, + {0x8136f432, 0xffff2380}, + {0x8136f433, 0xffff2381}, + {0x8136f434, 0xffff2382}, + {0x8136f435, 0xffff2383}, + {0x8136f436, 0xffff2384}, + {0x8136f437, 0xffff2385}, + {0x8136f438, 0xffff2386}, + {0x8136f439, 0xffff2387}, + {0x8136f530, 0xffff2388}, + {0x8136f531, 0xffff2389}, + {0x8136f532, 0xffff238a}, + {0x8136f533, 0xffff238b}, + {0x8136f534, 0xffff238c}, + {0x8136f535, 0xffff238d}, + {0x8136f536, 0xffff238e}, + {0x8136f537, 0xffff238f}, + {0x8136f538, 0xffff2390}, + {0x8136f539, 0xffff2391}, + {0x8136f630, 0xffff2392}, + {0x8136f631, 0xffff2393}, + {0x8136f632, 0xffff2394}, + {0x8136f633, 0xffff2395}, + {0x8136f634, 0xffff2396}, + {0x8136f635, 0xffff2397}, + {0x8136f636, 0xffff2398}, + {0x8136f637, 0xffff2399}, + {0x8136f638, 0xffff239a}, + {0x8136f639, 0xffff239b}, + {0x8136f730, 0xffff239c}, + {0x8136f731, 0xffff239d}, + {0x8136f732, 0xffff239e}, + {0x8136f733, 0xffff239f}, + {0x8136f734, 0xffff23a0}, + {0x8136f735, 0xffff23a1}, + {0x8136f736, 0xffff23a2}, + {0x8136f737, 0xffff23a3}, + {0x8136f738, 0xffff23a4}, + {0x8136f739, 0xffff23a5}, + {0x8136f830, 0xffff23a6}, + {0x8136f831, 0xffff23a7}, + {0x8136f832, 0xffff23a8}, + {0x8136f833, 0xffff23a9}, + {0x8136f834, 0xffff23aa}, + {0x8136f835, 0xffff23ab}, + {0x8136f836, 0xffff23ac}, + {0x8136f837, 0xffff23ad}, + {0x8136f838, 0xffff23ae}, + {0x8136f839, 0xffff23af}, + {0x8136f930, 0xffff23b0}, + {0x8136f931, 0xffff23b1}, + {0x8136f932, 0xffff23b2}, + {0x8136f933, 0xffff23b3}, + {0x8136f934, 0xffff23b4}, + {0x8136f935, 0xffff23b5}, + {0x8136f936, 0xffff23b6}, + {0x8136f937, 0xffff23b7}, + {0x8136f938, 0xffff23b8}, + {0x8136f939, 0xffff23b9}, + {0x8136fa30, 0xffff23ba}, + {0x8136fa31, 0xffff23bb}, + {0x8136fa32, 0xffff23bc}, + {0x8136fa33, 0xffff23bd}, + {0x8136fa34, 0xffff23be}, + {0x8136fa35, 0xffff23bf}, + {0x8136fa36, 0xffff23c0}, + {0x8136fa37, 0xffff23c1}, + {0x8136fa38, 0xffff23c2}, + {0x8136fa39, 0xffff23c3}, + {0x8136fb30, 0xffff23c4}, + {0x8136fb31, 0xffff23c5}, + {0x8136fb32, 0xffff23c6}, + {0x8136fb33, 0xffff23c7}, + {0x8136fb34, 0xffff23c8}, + {0x8136fb35, 0xffff23c9}, + {0x8136fb36, 0xffff23ca}, + {0x8136fb37, 0xffff23cb}, + {0x8136fb38, 0xffff23cc}, + {0x8136fb39, 0xffff23cd}, + {0x8136fc30, 0xffff23ce}, + {0x8136fc31, 0xffff23cf}, + {0x8136fc32, 0xffff23d0}, + {0x8136fc33, 0xffff23d1}, + {0x8136fc34, 0xffff23d2}, + {0x8136fc35, 0xffff23d3}, + {0x8136fc36, 0xffff23d4}, + {0x8136fc37, 0xffff23d5}, + {0x8136fc38, 0xffff23d6}, + {0x8136fc39, 0xffff23d7}, + {0x8136fd30, 0xffff23d8}, + {0x8136fd31, 0xffff23d9}, + {0x8136fd32, 0xffff23da}, + {0x8136fd33, 0xffff23db}, + {0x8136fd34, 0xffff23dc}, + {0x8136fd35, 0xffff23dd}, + {0x8136fd36, 0xffff23de}, + {0x8136fd37, 0xffff23df}, + {0x8136fd38, 0xffff23e0}, + {0x8136fd39, 0xffff23e1}, + {0x8136fe30, 0xffff23e2}, + {0x8136fe31, 0xffff23e3}, + {0x8136fe32, 0xffff23e4}, + {0x8136fe33, 0xffff23e5}, + {0x8136fe34, 0xffff23e6}, + {0x8136fe35, 0xffff23e7}, + {0x8136fe36, 0xffff23e8}, + {0x8136fe37, 0xffff23e9}, + {0x8136fe38, 0xffff23ea}, + {0x8136fe39, 0xffff23eb}, + {0x81378130, 0xffff23ec}, + {0x81378131, 0xffff23ed}, + {0x81378132, 0xffff23ee}, + {0x81378133, 0xffff23ef}, + {0x81378134, 0xffff23f0}, + {0x81378135, 0xffff23f1}, + {0x81378136, 0xffff23f2}, + {0x81378137, 0xffff23f3}, + {0x81378138, 0xffff23f4}, + {0x81378139, 0xffff23f5}, + {0x81378230, 0xffff23f6}, + {0x81378231, 0xffff23f7}, + {0x81378232, 0xffff23f8}, + {0x81378233, 0xffff23f9}, + {0x81378234, 0xffff23fa}, + {0x81378235, 0xffff23fb}, + {0x81378236, 0xffff23fc}, + {0x81378237, 0xffff23fd}, + {0x81378238, 0xffff23fe}, + {0x81378239, 0xffff23ff}, + {0x81378330, 0xffff2400}, + {0x81378331, 0xffff2401}, + {0x81378332, 0xffff2402}, + {0x81378333, 0xffff2403}, + {0x81378334, 0xffff2404}, + {0x81378335, 0xffff2405}, + {0x81378336, 0xffff2406}, + {0x81378337, 0xffff2407}, + {0x81378338, 0xffff2408}, + {0x81378339, 0xffff2409}, + {0x81378430, 0xffff240a}, + {0x81378431, 0xffff240b}, + {0x81378432, 0xffff240c}, + {0x81378433, 0xffff240d}, + {0x81378434, 0xffff240e}, + {0x81378435, 0xffff240f}, + {0x81378436, 0xffff2410}, + {0x81378437, 0xffff2411}, + {0x81378438, 0xffff2412}, + {0x81378439, 0xffff2413}, + {0x81378530, 0xffff2414}, + {0x81378531, 0xffff2415}, + {0x81378532, 0xffff2416}, + {0x81378533, 0xffff2417}, + {0x81378534, 0xffff2418}, + {0x81378535, 0xffff2419}, + {0x81378536, 0xffff241a}, + {0x81378537, 0xffff241b}, + {0x81378538, 0xffff241c}, + {0x81378539, 0xffff241d}, + {0x81378630, 0xffff241e}, + {0x81378631, 0xffff241f}, + {0x81378632, 0xffff2420}, + {0x81378633, 0xffff2421}, + {0x81378634, 0xffff2422}, + {0x81378635, 0xffff2423}, + {0x81378636, 0xffff2424}, + {0x81378637, 0xffff2425}, + {0x81378638, 0xffff2426}, + {0x81378639, 0xffff2427}, + {0x81378730, 0xffff2428}, + {0x81378731, 0xffff2429}, + {0x81378732, 0xffff242a}, + {0x81378733, 0xffff242b}, + {0x81378734, 0xffff242c}, + {0x81378735, 0xffff242d}, + {0x81378736, 0xffff242e}, + {0x81378737, 0xffff242f}, + {0x81378738, 0xffff2430}, + {0x81378739, 0xffff2431}, + {0x81378830, 0xffff2432}, + {0x81378831, 0xffff2433}, + {0x81378832, 0xffff2434}, + {0x81378833, 0xffff2435}, + {0x81378834, 0xffff2436}, + {0x81378835, 0xffff2437}, + {0x81378836, 0xffff2438}, + {0x81378837, 0xffff2439}, + {0x81378838, 0xffff243a}, + {0x81378839, 0xffff243b}, + {0x81378930, 0xffff243c}, + {0x81378931, 0xffff243d}, + {0x81378932, 0xffff243e}, + {0x81378933, 0xffff243f}, + {0x81378934, 0xffff2440}, + {0x81378935, 0xffff2441}, + {0x81378936, 0xffff2442}, + {0x81378937, 0xffff2443}, + {0x81378938, 0xffff2444}, + {0x81378939, 0xffff2445}, + {0x81378a30, 0xffff2446}, + {0x81378a31, 0xffff2447}, + {0x81378a32, 0xffff2448}, + {0x81378a33, 0xffff2449}, + {0x81378a34, 0xffff244a}, + {0x81378a35, 0xffff244b}, + {0x81378a36, 0xffff244c}, + {0x81378a37, 0xffff244d}, + {0x81378a38, 0xffff244e}, + {0x81378a39, 0xffff244f}, + {0x81378b30, 0xffff2450}, + {0x81378b31, 0xffff2451}, + {0x81378b32, 0xffff2452}, + {0x81378b33, 0xffff2453}, + {0x81378b34, 0xffff2454}, + {0x81378b35, 0xffff2455}, + {0x81378b36, 0xffff2456}, + {0x81378b37, 0xffff2457}, + {0x81378b38, 0xffff2458}, + {0x81378b39, 0xffff2459}, + {0x81378c30, 0xffff245a}, + {0x81378c31, 0xffff245b}, + {0x81378c32, 0xffff245c}, + {0x81378c33, 0xffff245d}, + {0x81378c34, 0xffff245e}, + {0x81378c35, 0xffff245f}, + {0x81378c36, 0xffff246a}, + {0x81378c37, 0xffff246b}, + {0x81378c38, 0xffff246c}, + {0x81378c39, 0xffff246d}, + {0x81378d30, 0xffff246e}, + {0x81378d31, 0xffff246f}, + {0x81378d32, 0xffff2470}, + {0x81378d33, 0xffff2471}, + {0x81378d34, 0xffff2472}, + {0x81378d35, 0xffff2473}, + {0x81378d36, 0x01ea}, + {0x81378d37, 0x01ef}, + {0x81378d38, 0x01f4}, + {0x81378d39, 0x01f7}, + {0x81378e30, 0x01fe}, + {0x81378e31, 0x0209}, + {0x81378e32, 0x020b}, + {0x81378e33, 0x0213}, + {0x81378e34, 0x021b}, + {0x81378e35, 0x021f}, + {0x81378e36, 0x0223}, + {0x81378e37, 0x0226}, + {0x81378e38, 0x0230}, + {0x81378e39, 0x0232}, + {0x81378f30, 0x0238}, + {0x81378f31, 0x023f}, + {0x81378f32, 0x0242}, + {0x81378f33, 0x0245}, + {0x81378f34, 0x024f}, + {0x81378f35, 0x0255}, + {0x81378f36, 0x025b}, + {0x81378f37, 0x0261}, + {0x81378f38, 0x0264}, + {0x81378f39, 0x0266}, + {0x81379030, 0x0267}, + {0x81379031, 0x026a}, + {0x81379032, 0x01ea}, + {0x81379033, 0x01ef}, + {0x81379034, 0x01f4}, + {0x81379035, 0x01f7}, + {0x81379036, 0x01fe}, + {0x81379037, 0x0209}, + {0x81379038, 0x020b}, + {0x81379039, 0x0213}, + {0x81379130, 0x021b}, + {0x81379131, 0x021f}, + {0x81379132, 0x0223}, + {0x81379133, 0x0226}, + {0x81379134, 0x0230}, + {0x81379135, 0x0232}, + {0x81379136, 0x0238}, + {0x81379137, 0x023f}, + {0x81379138, 0x0242}, + {0x81379139, 0x0245}, + {0x81379230, 0x024f}, + {0x81379231, 0x0255}, + {0x81379232, 0x025b}, + {0x81379233, 0x0261}, + {0x81379234, 0x0264}, + {0x81379235, 0x0266}, + {0x81379236, 0x0267}, + {0x81379237, 0x026a}, + {0x81379238, 0x01ea}, + {0x81379239, 0x01ef}, + {0x81379330, 0x01f4}, + {0x81379331, 0x01f7}, + {0x81379332, 0x01fe}, + {0x81379333, 0x0209}, + {0x81379334, 0x020b}, + {0x81379335, 0x0213}, + {0x81379336, 0x021b}, + {0x81379337, 0x021f}, + {0x81379338, 0x0223}, + {0x81379339, 0x0226}, + {0x81379430, 0x0230}, + {0x81379431, 0x0232}, + {0x81379432, 0x0238}, + {0x81379433, 0x023f}, + {0x81379434, 0x0242}, + {0x81379435, 0x0245}, + {0x81379436, 0x024f}, + {0x81379437, 0x0255}, + {0x81379438, 0x025b}, + {0x81379439, 0x0261}, + {0x81379530, 0x0264}, + {0x81379531, 0x0266}, + {0x81379532, 0x0267}, + {0x81379533, 0x026a}, + {0x81379534, 0x0179}, + {0x81379535, 0xffff24eb}, + {0x81379536, 0xffff24ec}, + {0x81379537, 0xffff24ed}, + {0x81379538, 0xffff24ee}, + {0x81379539, 0xffff24ef}, + {0x81379630, 0xffff24f0}, + {0x81379631, 0xffff24f1}, + {0x81379632, 0xffff24f2}, + {0x81379633, 0xffff24f3}, + {0x81379634, 0xffff24f4}, + {0x81379635, 0xffff24f5}, + {0x81379636, 0xffff24f6}, + {0x81379637, 0xffff24f7}, + {0x81379638, 0xffff24f8}, + {0x81379639, 0xffff24f9}, + {0x81379730, 0xffff24fa}, + {0x81379731, 0xffff24fb}, + {0x81379732, 0xffff24fc}, + {0x81379733, 0xffff24fd}, + {0x81379734, 0xffff24fe}, + {0x81379735, 0xffff24ff}, + {0x81379736, 0xffff254c}, + {0x81379737, 0xffff254d}, + {0x81379738, 0xffff254e}, + {0x81379739, 0xffff254f}, + {0x81379830, 0xffff2574}, + {0x81379831, 0xffff2575}, + {0x81379832, 0xffff2576}, + {0x81379833, 0xffff2577}, + {0x81379834, 0xffff2578}, + {0x81379835, 0xffff2579}, + {0x81379836, 0xffff257a}, + {0x81379837, 0xffff257b}, + {0x81379838, 0xffff257c}, + {0x81379839, 0xffff257d}, + {0x81379930, 0xffff257e}, + {0x81379931, 0xffff257f}, + {0x81379932, 0xffff2580}, + {0x81379933, 0xffff2590}, + {0x81379934, 0xffff2591}, + {0x81379935, 0xffff2592}, + {0x81379936, 0xffff2596}, + {0x81379937, 0xffff2597}, + {0x81379938, 0xffff2598}, + {0x81379939, 0xffff2599}, + {0x81379a30, 0xffff259a}, + {0x81379a31, 0xffff259b}, + {0x81379a32, 0xffff259c}, + {0x81379a33, 0xffff259d}, + {0x81379a34, 0xffff259e}, + {0x81379a35, 0xffff259f}, + {0x81379a36, 0xffff25a2}, + {0x81379a37, 0xffff25a3}, + {0x81379a38, 0xffff25a4}, + {0x81379a39, 0xffff25a5}, + {0x81379b30, 0xffff25a6}, + {0x81379b31, 0xffff25a7}, + {0x81379b32, 0xffff25a8}, + {0x81379b33, 0xffff25a9}, + {0x81379b34, 0xffff25aa}, + {0x81379b35, 0xffff25ab}, + {0x81379b36, 0xffff25ac}, + {0x81379b37, 0xffff25ad}, + {0x81379b38, 0xffff25ae}, + {0x81379b39, 0xffff25af}, + {0x81379c30, 0xffff25b0}, + {0x81379c31, 0xffff25b1}, + {0x81379c32, 0xffff25b4}, + {0x81379c33, 0xffff25b5}, + {0x81379c34, 0xffff25b6}, + {0x81379c35, 0xffff25b7}, + {0x81379c36, 0xffff25b8}, + {0x81379c37, 0xffff25b9}, + {0x81379c38, 0xffff25ba}, + {0x81379c39, 0xffff25bb}, + {0x81379d30, 0xffff25be}, + {0x81379d31, 0xffff25bf}, + {0x81379d32, 0xffff25c0}, + {0x81379d33, 0xffff25c1}, + {0x81379d34, 0xffff25c2}, + {0x81379d35, 0xffff25c3}, + {0x81379d36, 0xffff25c4}, + {0x81379d37, 0xffff25c5}, + {0x81379d38, 0xffff25c8}, + {0x81379d39, 0xffff25c9}, + {0x81379e30, 0xffff25ca}, + {0x81379e31, 0xffff25cc}, + {0x81379e32, 0xffff25cd}, + {0x81379e33, 0xffff25d0}, + {0x81379e34, 0xffff25d1}, + {0x81379e35, 0xffff25d2}, + {0x81379e36, 0xffff25d3}, + {0x81379e37, 0xffff25d4}, + {0x81379e38, 0xffff25d5}, + {0x81379e39, 0xffff25d6}, + {0x81379f30, 0xffff25d7}, + {0x81379f31, 0xffff25d8}, + {0x81379f32, 0xffff25d9}, + {0x81379f33, 0xffff25da}, + {0x81379f34, 0xffff25db}, + {0x81379f35, 0xffff25dc}, + {0x81379f36, 0xffff25dd}, + {0x81379f37, 0xffff25de}, + {0x81379f38, 0xffff25df}, + {0x81379f39, 0xffff25e0}, + {0x8137a030, 0xffff25e1}, + {0x8137a031, 0xffff25e6}, + {0x8137a032, 0xffff25e7}, + {0x8137a033, 0xffff25e8}, + {0x8137a034, 0xffff25e9}, + {0x8137a035, 0xffff25ea}, + {0x8137a036, 0xffff25eb}, + {0x8137a037, 0xffff25ec}, + {0x8137a038, 0xffff25ed}, + {0x8137a039, 0xffff25ee}, + {0x8137a130, 0xffff25ef}, + {0x8137a131, 0xffff25f0}, + {0x8137a132, 0xffff25f1}, + {0x8137a133, 0xffff25f2}, + {0x8137a134, 0xffff25f3}, + {0x8137a135, 0xffff25f4}, + {0x8137a136, 0xffff25f5}, + {0x8137a137, 0xffff25f6}, + {0x8137a138, 0xffff25f7}, + {0x8137a139, 0xffff25f8}, + {0x8137a230, 0xffff25f9}, + {0x8137a231, 0xffff25fa}, + {0x8137a232, 0xffff25fb}, + {0x8137a233, 0xffff25fc}, + {0x8137a234, 0xffff25fd}, + {0x8137a235, 0xffff25fe}, + {0x8137a236, 0xffff25ff}, + {0x8137a237, 0xffff2600}, + {0x8137a238, 0xffff2601}, + {0x8137a239, 0xffff2602}, + {0x8137a330, 0xffff2603}, + {0x8137a331, 0xffff2604}, + {0x8137a332, 0xffff2607}, + {0x8137a333, 0xffff2608}, + {0x8137a334, 0xffff260a}, + {0x8137a335, 0xffff260b}, + {0x8137a336, 0xffff260c}, + {0x8137a337, 0xffff260d}, + {0x8137a338, 0xffff260e}, + {0x8137a339, 0xffff260f}, + {0x8137a430, 0xffff2610}, + {0x8137a431, 0xffff2611}, + {0x8137a432, 0xffff2612}, + {0x8137a433, 0xffff2613}, + {0x8137a434, 0xffff2614}, + {0x8137a435, 0xffff2615}, + {0x8137a436, 0xffff2616}, + {0x8137a437, 0xffff2617}, + {0x8137a438, 0xffff2618}, + {0x8137a439, 0xffff2619}, + {0x8137a530, 0xffff261a}, + {0x8137a531, 0xffff261b}, + {0x8137a532, 0xffff261c}, + {0x8137a533, 0xffff261d}, + {0x8137a534, 0xffff261e}, + {0x8137a535, 0xffff261f}, + {0x8137a536, 0xffff2620}, + {0x8137a537, 0xffff2621}, + {0x8137a538, 0xffff2622}, + {0x8137a539, 0xffff2623}, + {0x8137a630, 0xffff2624}, + {0x8137a631, 0xffff2625}, + {0x8137a632, 0xffff2626}, + {0x8137a633, 0xffff2627}, + {0x8137a634, 0xffff2628}, + {0x8137a635, 0xffff2629}, + {0x8137a636, 0xffff262a}, + {0x8137a637, 0xffff262b}, + {0x8137a638, 0xffff262c}, + {0x8137a639, 0xffff262d}, + {0x8137a730, 0xffff262e}, + {0x8137a731, 0xffff262f}, + {0x8137a732, 0xffff2630}, + {0x8137a733, 0xffff2631}, + {0x8137a734, 0xffff2632}, + {0x8137a735, 0xffff2633}, + {0x8137a736, 0xffff2634}, + {0x8137a737, 0xffff2635}, + {0x8137a738, 0xffff2636}, + {0x8137a739, 0xffff2637}, + {0x8137a830, 0xffff2638}, + {0x8137a831, 0xffff2639}, + {0x8137a832, 0xffff263a}, + {0x8137a833, 0xffff263b}, + {0x8137a834, 0xffff263c}, + {0x8137a835, 0xffff263d}, + {0x8137a836, 0xffff263e}, + {0x8137a837, 0xffff263f}, + {0x8137a838, 0xffff2641}, + {0x8137a839, 0xffff2643}, + {0x8137a930, 0xffff2644}, + {0x8137a931, 0xffff2645}, + {0x8137a932, 0xffff2646}, + {0x8137a933, 0xffff2647}, + {0x8137a934, 0xffff2648}, + {0x8137a935, 0xffff2649}, + {0x8137a936, 0xffff264a}, + {0x8137a937, 0xffff264b}, + {0x8137a938, 0xffff264c}, + {0x8137a939, 0xffff264d}, + {0x8137aa30, 0xffff264e}, + {0x8137aa31, 0xffff264f}, + {0x8137aa32, 0xffff2650}, + {0x8137aa33, 0xffff2651}, + {0x8137aa34, 0xffff2652}, + {0x8137aa35, 0xffff2653}, + {0x8137aa36, 0xffff2654}, + {0x8137aa37, 0xffff2655}, + {0x8137aa38, 0xffff2656}, + {0x8137aa39, 0xffff2657}, + {0x8137ab30, 0xffff2658}, + {0x8137ab31, 0xffff2659}, + {0x8137ab32, 0xffff265a}, + {0x8137ab33, 0xffff265b}, + {0x8137ab34, 0xffff265c}, + {0x8137ab35, 0xffff265d}, + {0x8137ab36, 0xffff265e}, + {0x8137ab37, 0xffff265f}, + {0x8137ab38, 0xffff2660}, + {0x8137ab39, 0xffff2661}, + {0x8137ac30, 0xffff2662}, + {0x8137ac31, 0xffff2663}, + {0x8137ac32, 0xffff2664}, + {0x8137ac33, 0xffff2665}, + {0x8137ac34, 0xffff2666}, + {0x8137ac35, 0xffff2667}, + {0x8137ac36, 0xffff2668}, + {0x8137ac37, 0xffff2669}, + {0x8137ac38, 0xffff266a}, + {0x8137ac39, 0xffff266b}, + {0x8137ad30, 0xffff266c}, + {0x8137ad31, 0x00ae}, + {0x8137ad32, 0x00af}, + {0x8137ad33, 0x00b0}, + {0x8137ad34, 0xffff2670}, + {0x8137ad35, 0xffff2671}, + {0x8137ad36, 0xffff2672}, + {0x8137ad37, 0xffff2673}, + {0x8137ad38, 0xffff2674}, + {0x8137ad39, 0xffff2675}, + {0x8137ae30, 0xffff2676}, + {0x8137ae31, 0xffff2677}, + {0x8137ae32, 0xffff2678}, + {0x8137ae33, 0xffff2679}, + {0x8137ae34, 0xffff267a}, + {0x8137ae35, 0xffff267b}, + {0x8137ae36, 0xffff267c}, + {0x8137ae37, 0xffff267d}, + {0x8137ae38, 0xffff267e}, + {0x8137ae39, 0xffff267f}, + {0x8137af30, 0xffff2680}, + {0x8137af31, 0xffff2681}, + {0x8137af32, 0xffff2682}, + {0x8137af33, 0xffff2683}, + {0x8137af34, 0xffff2684}, + {0x8137af35, 0xffff2685}, + {0x8137af36, 0xffff2686}, + {0x8137af37, 0xffff2687}, + {0x8137af38, 0xffff2688}, + {0x8137af39, 0xffff2689}, + {0x8137b030, 0xffff268a}, + {0x8137b031, 0xffff268b}, + {0x8137b032, 0xffff268c}, + {0x8137b033, 0xffff268d}, + {0x8137b034, 0xffff268e}, + {0x8137b035, 0xffff268f}, + {0x8137b036, 0xffff2690}, + {0x8137b037, 0xffff2691}, + {0x8137b038, 0xffff2692}, + {0x8137b039, 0xffff2693}, + {0x8137b130, 0xffff2694}, + {0x8137b131, 0xffff2695}, + {0x8137b132, 0xffff2696}, + {0x8137b133, 0xffff2697}, + {0x8137b134, 0xffff2698}, + {0x8137b135, 0xffff2699}, + {0x8137b136, 0xffff269a}, + {0x8137b137, 0xffff269b}, + {0x8137b138, 0xffff269c}, + {0x8137b139, 0xffff269d}, + {0x8137b230, 0xffff269e}, + {0x8137b231, 0xffff269f}, + {0x8137b232, 0xffff26a0}, + {0x8137b233, 0xffff26a1}, + {0x8137b234, 0xffff26a2}, + {0x8137b235, 0xffff26a3}, + {0x8137b236, 0xffff26a4}, + {0x8137b237, 0xffff26a5}, + {0x8137b238, 0xffff26a6}, + {0x8137b239, 0xffff26a7}, + {0x8137b330, 0xffff26a8}, + {0x8137b331, 0xffff26a9}, + {0x8137b332, 0xffff26aa}, + {0x8137b333, 0xffff26ab}, + {0x8137b334, 0xffff26ac}, + {0x8137b335, 0xffff26ad}, + {0x8137b336, 0xffff26ae}, + {0x8137b337, 0xffff26af}, + {0x8137b338, 0xffff26b0}, + {0x8137b339, 0xffff26b1}, + {0x8137b430, 0xffff26b2}, + {0x8137b431, 0xffff26b3}, + {0x8137b432, 0xffff26b4}, + {0x8137b433, 0xffff26b5}, + {0x8137b434, 0xffff26b6}, + {0x8137b435, 0xffff26b7}, + {0x8137b436, 0xffff26b8}, + {0x8137b437, 0xffff26b9}, + {0x8137b438, 0xffff26ba}, + {0x8137b439, 0xffff26bb}, + {0x8137b530, 0xffff26bc}, + {0x8137b531, 0xffff26bd}, + {0x8137b532, 0xffff26be}, + {0x8137b533, 0xffff26bf}, + {0x8137b534, 0xffff26c0}, + {0x8137b535, 0xffff26c1}, + {0x8137b536, 0xffff26c2}, + {0x8137b537, 0xffff26c3}, + {0x8137b538, 0xffff26c4}, + {0x8137b539, 0xffff26c5}, + {0x8137b630, 0xffff26c6}, + {0x8137b631, 0xffff26c7}, + {0x8137b632, 0xffff26c8}, + {0x8137b633, 0xffff26c9}, + {0x8137b634, 0xffff26ca}, + {0x8137b635, 0xffff26cb}, + {0x8137b636, 0xffff26cc}, + {0x8137b637, 0xffff26cd}, + {0x8137b638, 0xffff26ce}, + {0x8137b639, 0xffff26cf}, + {0x8137b730, 0xffff26d0}, + {0x8137b731, 0xffff26d1}, + {0x8137b732, 0xffff26d2}, + {0x8137b733, 0xffff26d3}, + {0x8137b734, 0xffff26d4}, + {0x8137b735, 0xffff26d5}, + {0x8137b736, 0xffff26d6}, + {0x8137b737, 0xffff26d7}, + {0x8137b738, 0xffff26d8}, + {0x8137b739, 0xffff26d9}, + {0x8137b830, 0xffff26da}, + {0x8137b831, 0xffff26db}, + {0x8137b832, 0xffff26dc}, + {0x8137b833, 0xffff26dd}, + {0x8137b834, 0xffff26de}, + {0x8137b835, 0xffff26df}, + {0x8137b836, 0xffff26e0}, + {0x8137b837, 0xffff26e1}, + {0x8137b838, 0xffff26e2}, + {0x8137b839, 0xffff26e3}, + {0x8137b930, 0xffff26e4}, + {0x8137b931, 0xffff26e5}, + {0x8137b932, 0xffff26e6}, + {0x8137b933, 0xffff26e7}, + {0x8137b934, 0xffff26e8}, + {0x8137b935, 0xffff26e9}, + {0x8137b936, 0xffff26ea}, + {0x8137b937, 0xffff26eb}, + {0x8137b938, 0xffff26ec}, + {0x8137b939, 0xffff26ed}, + {0x8137ba30, 0xffff26ee}, + {0x8137ba31, 0xffff26ef}, + {0x8137ba32, 0xffff26f0}, + {0x8137ba33, 0xffff26f1}, + {0x8137ba34, 0xffff26f2}, + {0x8137ba35, 0xffff26f3}, + {0x8137ba36, 0xffff26f4}, + {0x8137ba37, 0xffff26f5}, + {0x8137ba38, 0xffff26f6}, + {0x8137ba39, 0xffff26f7}, + {0x8137bb30, 0xffff26f8}, + {0x8137bb31, 0xffff26f9}, + {0x8137bb32, 0xffff26fa}, + {0x8137bb33, 0xffff26fb}, + {0x8137bb34, 0xffff26fc}, + {0x8137bb35, 0xffff26fd}, + {0x8137bb36, 0xffff26fe}, + {0x8137bb37, 0xffff26ff}, + {0x8137bb38, 0xffff2700}, + {0x8137bb39, 0xffff2701}, + {0x8137bc30, 0xffff2702}, + {0x8137bc31, 0xffff2703}, + {0x8137bc32, 0xffff2704}, + {0x8137bc33, 0xffff2705}, + {0x8137bc34, 0xffff2706}, + {0x8137bc35, 0xffff2707}, + {0x8137bc36, 0xffff2708}, + {0x8137bc37, 0xffff2709}, + {0x8137bc38, 0xffff270a}, + {0x8137bc39, 0xffff270b}, + {0x8137bd30, 0xffff270c}, + {0x8137bd31, 0xffff270d}, + {0x8137bd32, 0xffff270e}, + {0x8137bd33, 0xffff270f}, + {0x8137bd34, 0xffff2710}, + {0x8137bd35, 0xffff2711}, + {0x8137bd36, 0xffff2712}, + {0x8137bd37, 0xffff2713}, + {0x8137bd38, 0xffff2714}, + {0x8137bd39, 0xffff2715}, + {0x8137be30, 0xffff2716}, + {0x8137be31, 0xffff2717}, + {0x8137be32, 0xffff2718}, + {0x8137be33, 0xffff2719}, + {0x8137be34, 0xffff271a}, + {0x8137be35, 0xffff271b}, + {0x8137be36, 0xffff271c}, + {0x8137be37, 0xffff271d}, + {0x8137be38, 0xffff271e}, + {0x8137be39, 0xffff271f}, + {0x8137bf30, 0xffff2720}, + {0x8137bf31, 0xffff2721}, + {0x8137bf32, 0xffff2722}, + {0x8137bf33, 0xffff2723}, + {0x8137bf34, 0xffff2724}, + {0x8137bf35, 0xffff2725}, + {0x8137bf36, 0xffff2726}, + {0x8137bf37, 0xffff2727}, + {0x8137bf38, 0xffff2728}, + {0x8137bf39, 0xffff2729}, + {0x8137c030, 0xffff272a}, + {0x8137c031, 0xffff272b}, + {0x8137c032, 0xffff272c}, + {0x8137c033, 0xffff272d}, + {0x8137c034, 0xffff272e}, + {0x8137c035, 0xffff272f}, + {0x8137c036, 0xffff2730}, + {0x8137c037, 0xffff2731}, + {0x8137c038, 0xffff2732}, + {0x8137c039, 0xffff2733}, + {0x8137c130, 0xffff2734}, + {0x8137c131, 0xffff2735}, + {0x8137c132, 0xffff2736}, + {0x8137c133, 0xffff2737}, + {0x8137c134, 0xffff2738}, + {0x8137c135, 0xffff2739}, + {0x8137c136, 0xffff273a}, + {0x8137c137, 0xffff273b}, + {0x8137c138, 0xffff273c}, + {0x8137c139, 0xffff273d}, + {0x8137c230, 0xffff273e}, + {0x8137c231, 0xffff273f}, + {0x8137c232, 0xffff2740}, + {0x8137c233, 0xffff2741}, + {0x8137c234, 0xffff2742}, + {0x8137c235, 0xffff2743}, + {0x8137c236, 0xffff2744}, + {0x8137c237, 0xffff2745}, + {0x8137c238, 0xffff2746}, + {0x8137c239, 0xffff2747}, + {0x8137c330, 0xffff2748}, + {0x8137c331, 0xffff2749}, + {0x8137c332, 0xffff274a}, + {0x8137c333, 0xffff274b}, + {0x8137c334, 0xffff274c}, + {0x8137c335, 0xffff274d}, + {0x8137c336, 0xffff274e}, + {0x8137c337, 0xffff274f}, + {0x8137c338, 0xffff2750}, + {0x8137c339, 0xffff2751}, + {0x8137c430, 0xffff2752}, + {0x8137c431, 0xffff2753}, + {0x8137c432, 0xffff2754}, + {0x8137c433, 0xffff2755}, + {0x8137c434, 0xffff2756}, + {0x8137c435, 0xffff2757}, + {0x8137c436, 0xffff2758}, + {0x8137c437, 0xffff2759}, + {0x8137c438, 0xffff275a}, + {0x8137c439, 0xffff275b}, + {0x8137c530, 0xffff275c}, + {0x8137c531, 0xffff275d}, + {0x8137c532, 0xffff275e}, + {0x8137c533, 0xffff275f}, + {0x8137c534, 0xffff2760}, + {0x8137c535, 0xffff2761}, + {0x8137c536, 0xffff2762}, + {0x8137c537, 0xffff2763}, + {0x8137c538, 0xffff2764}, + {0x8137c539, 0xffff2765}, + {0x8137c630, 0xffff2766}, + {0x8137c631, 0xffff2767}, + {0x8137c632, 0xffff2768}, + {0x8137c633, 0xffff2769}, + {0x8137c634, 0xffff276a}, + {0x8137c635, 0xffff276b}, + {0x8137c636, 0xffff276c}, + {0x8137c637, 0xffff276d}, + {0x8137c638, 0xffff276e}, + {0x8137c639, 0xffff276f}, + {0x8137c730, 0xffff2770}, + {0x8137c731, 0xffff2771}, + {0x8137c732, 0xffff2772}, + {0x8137c733, 0xffff2773}, + {0x8137c734, 0xffff2774}, + {0x8137c735, 0xffff2775}, + {0x8137c736, 0xffff2776}, + {0x8137c737, 0xffff2777}, + {0x8137c738, 0xffff2778}, + {0x8137c739, 0xffff2779}, + {0x8137c830, 0xffff277a}, + {0x8137c831, 0xffff277b}, + {0x8137c832, 0xffff277c}, + {0x8137c833, 0x0181}, + {0x8137c834, 0x0182}, + {0x8137c835, 0xffff277f}, + {0x8137c836, 0xffff2780}, + {0x8137c837, 0xffff2781}, + {0x8137c838, 0xffff2782}, + {0x8137c839, 0xffff2783}, + {0x8137c930, 0xffff2784}, + {0x8137c931, 0xffff2785}, + {0x8137c932, 0xffff2786}, + {0x8137c933, 0x0181}, + {0x8137c934, 0x0182}, + {0x8137c935, 0xffff2789}, + {0x8137c936, 0xffff278a}, + {0x8137c937, 0xffff278b}, + {0x8137c938, 0xffff278c}, + {0x8137c939, 0xffff278d}, + {0x8137ca30, 0xffff278e}, + {0x8137ca31, 0xffff278f}, + {0x8137ca32, 0xffff2790}, + {0x8137ca33, 0x0181}, + {0x8137ca34, 0x0182}, + {0x8137ca35, 0xffff2793}, + {0x8137ca36, 0xffff2794}, + {0x8137ca37, 0xffff2795}, + {0x8137ca38, 0xffff2796}, + {0x8137ca39, 0xffff2797}, + {0x8137cb30, 0xffff2798}, + {0x8137cb31, 0xffff2799}, + {0x8137cb32, 0xffff279a}, + {0x8137cb33, 0xffff279b}, + {0x8137cb34, 0xffff279c}, + {0x8137cb35, 0xffff279d}, + {0x8137cb36, 0xffff279e}, + {0x8137cb37, 0xffff279f}, + {0x8137cb38, 0xffff27a0}, + {0x8137cb39, 0xffff27a1}, + {0x8137cc30, 0xffff27a2}, + {0x8137cc31, 0xffff27a3}, + {0x8137cc32, 0xffff27a4}, + {0x8137cc33, 0xffff27a5}, + {0x8137cc34, 0xffff27a6}, + {0x8137cc35, 0xffff27a7}, + {0x8137cc36, 0xffff27a8}, + {0x8137cc37, 0xffff27a9}, + {0x8137cc38, 0xffff27aa}, + {0x8137cc39, 0xffff27ab}, + {0x8137cd30, 0xffff27ac}, + {0x8137cd31, 0xffff27ad}, + {0x8137cd32, 0xffff27ae}, + {0x8137cd33, 0xffff27af}, + {0x8137cd34, 0xffff27b0}, + {0x8137cd35, 0xffff27b1}, + {0x8137cd36, 0xffff27b2}, + {0x8137cd37, 0xffff27b3}, + {0x8137cd38, 0xffff27b4}, + {0x8137cd39, 0xffff27b5}, + {0x8137ce30, 0xffff27b6}, + {0x8137ce31, 0xffff27b7}, + {0x8137ce32, 0xffff27b8}, + {0x8137ce33, 0xffff27b9}, + {0x8137ce34, 0xffff27ba}, + {0x8137ce35, 0xffff27bb}, + {0x8137ce36, 0xffff27bc}, + {0x8137ce37, 0xffff27bd}, + {0x8137ce38, 0xffff27be}, + {0x8137ce39, 0xffff27bf}, + {0x8137cf30, 0xffff27c0}, + {0x8137cf31, 0xffff27c1}, + {0x8137cf32, 0xffff27c2}, + {0x8137cf33, 0xffff27c3}, + {0x8137cf34, 0xffff27c4}, + {0x8137cf35, 0xffff27c5}, + {0x8137cf36, 0xffff27c6}, + {0x8137cf37, 0xffff27c7}, + {0x8137cf38, 0xffff27c8}, + {0x8137cf39, 0xffff27c9}, + {0x8137d030, 0xffff27ca}, + {0x8137d031, 0xffff27cb}, + {0x8137d032, 0xffff27cc}, + {0x8137d033, 0xffff27cd}, + {0x8137d034, 0xffff27ce}, + {0x8137d035, 0xffff27cf}, + {0x8137d036, 0xffff27d0}, + {0x8137d037, 0xffff27d1}, + {0x8137d038, 0xffff27d2}, + {0x8137d039, 0xffff27d3}, + {0x8137d130, 0xffff27d4}, + {0x8137d131, 0xffff27d5}, + {0x8137d132, 0xffff27d6}, + {0x8137d133, 0xffff27d7}, + {0x8137d134, 0xffff27d8}, + {0x8137d135, 0xffff27d9}, + {0x8137d136, 0xffff27da}, + {0x8137d137, 0xffff27db}, + {0x8137d138, 0xffff27dc}, + {0x8137d139, 0xffff27dd}, + {0x8137d230, 0xffff27de}, + {0x8137d231, 0xffff27df}, + {0x8137d232, 0xffff27e0}, + {0x8137d233, 0xffff27e1}, + {0x8137d234, 0xffff27e2}, + {0x8137d235, 0xffff27e3}, + {0x8137d236, 0xffff27e4}, + {0x8137d237, 0xffff27e5}, + {0x8137d238, 0xffff27e6}, + {0x8137d239, 0xffff27e7}, + {0x8137d330, 0xffff27e8}, + {0x8137d331, 0xffff27e9}, + {0x8137d332, 0xffff27ea}, + {0x8137d333, 0xffff27eb}, + {0x8137d334, 0xffff27ec}, + {0x8137d335, 0xffff27ed}, + {0x8137d336, 0xffff27ee}, + {0x8137d337, 0xffff27ef}, + {0x8137d338, 0xffff27f0}, + {0x8137d339, 0xffff27f1}, + {0x8137d430, 0xffff27f2}, + {0x8137d431, 0xffff27f3}, + {0x8137d432, 0xffff27f4}, + {0x8137d433, 0xffff27f5}, + {0x8137d434, 0xffff27f6}, + {0x8137d435, 0xffff27f7}, + {0x8137d436, 0xffff27f8}, + {0x8137d437, 0xffff27f9}, + {0x8137d438, 0xffff27fa}, + {0x8137d439, 0xffff27fb}, + {0x8137d530, 0xffff27fc}, + {0x8137d531, 0xffff27fd}, + {0x8137d532, 0xffff27fe}, + {0x8137d533, 0xffff27ff}, + {0x8137d534, 0xffff2800}, + {0x8137d535, 0xffff2801}, + {0x8137d536, 0xffff2802}, + {0x8137d537, 0xffff2803}, + {0x8137d538, 0xffff2804}, + {0x8137d539, 0xffff2805}, + {0x8137d630, 0xffff2806}, + {0x8137d631, 0xffff2807}, + {0x8137d632, 0xffff2808}, + {0x8137d633, 0xffff2809}, + {0x8137d634, 0xffff280a}, + {0x8137d635, 0xffff280b}, + {0x8137d636, 0xffff280c}, + {0x8137d637, 0xffff280d}, + {0x8137d638, 0xffff280e}, + {0x8137d639, 0xffff280f}, + {0x8137d730, 0xffff2810}, + {0x8137d731, 0xffff2811}, + {0x8137d732, 0xffff2812}, + {0x8137d733, 0xffff2813}, + {0x8137d734, 0xffff2814}, + {0x8137d735, 0xffff2815}, + {0x8137d736, 0xffff2816}, + {0x8137d737, 0xffff2817}, + {0x8137d738, 0xffff2818}, + {0x8137d739, 0xffff2819}, + {0x8137d830, 0xffff281a}, + {0x8137d831, 0xffff281b}, + {0x8137d832, 0xffff281c}, + {0x8137d833, 0xffff281d}, + {0x8137d834, 0xffff281e}, + {0x8137d835, 0xffff281f}, + {0x8137d836, 0xffff2820}, + {0x8137d837, 0xffff2821}, + {0x8137d838, 0xffff2822}, + {0x8137d839, 0xffff2823}, + {0x8137d930, 0xffff2824}, + {0x8137d931, 0xffff2825}, + {0x8137d932, 0xffff2826}, + {0x8137d933, 0xffff2827}, + {0x8137d934, 0xffff2828}, + {0x8137d935, 0xffff2829}, + {0x8137d936, 0xffff282a}, + {0x8137d937, 0xffff282b}, + {0x8137d938, 0xffff282c}, + {0x8137d939, 0xffff282d}, + {0x8137da30, 0xffff282e}, + {0x8137da31, 0xffff282f}, + {0x8137da32, 0xffff2830}, + {0x8137da33, 0xffff2831}, + {0x8137da34, 0xffff2832}, + {0x8137da35, 0xffff2833}, + {0x8137da36, 0xffff2834}, + {0x8137da37, 0xffff2835}, + {0x8137da38, 0xffff2836}, + {0x8137da39, 0xffff2837}, + {0x8137db30, 0xffff2838}, + {0x8137db31, 0xffff2839}, + {0x8137db32, 0xffff283a}, + {0x8137db33, 0xffff283b}, + {0x8137db34, 0xffff283c}, + {0x8137db35, 0xffff283d}, + {0x8137db36, 0xffff283e}, + {0x8137db37, 0xffff283f}, + {0x8137db38, 0xffff2840}, + {0x8137db39, 0xffff2841}, + {0x8137dc30, 0xffff2842}, + {0x8137dc31, 0xffff2843}, + {0x8137dc32, 0xffff2844}, + {0x8137dc33, 0xffff2845}, + {0x8137dc34, 0xffff2846}, + {0x8137dc35, 0xffff2847}, + {0x8137dc36, 0xffff2848}, + {0x8137dc37, 0xffff2849}, + {0x8137dc38, 0xffff284a}, + {0x8137dc39, 0xffff284b}, + {0x8137dd30, 0xffff284c}, + {0x8137dd31, 0xffff284d}, + {0x8137dd32, 0xffff284e}, + {0x8137dd33, 0xffff284f}, + {0x8137dd34, 0xffff2850}, + {0x8137dd35, 0xffff2851}, + {0x8137dd36, 0xffff2852}, + {0x8137dd37, 0xffff2853}, + {0x8137dd38, 0xffff2854}, + {0x8137dd39, 0xffff2855}, + {0x8137de30, 0xffff2856}, + {0x8137de31, 0xffff2857}, + {0x8137de32, 0xffff2858}, + {0x8137de33, 0xffff2859}, + {0x8137de34, 0xffff285a}, + {0x8137de35, 0xffff285b}, + {0x8137de36, 0xffff285c}, + {0x8137de37, 0xffff285d}, + {0x8137de38, 0xffff285e}, + {0x8137de39, 0xffff285f}, + {0x8137df30, 0xffff2860}, + {0x8137df31, 0xffff2861}, + {0x8137df32, 0xffff2862}, + {0x8137df33, 0xffff2863}, + {0x8137df34, 0xffff2864}, + {0x8137df35, 0xffff2865}, + {0x8137df36, 0xffff2866}, + {0x8137df37, 0xffff2867}, + {0x8137df38, 0xffff2868}, + {0x8137df39, 0xffff2869}, + {0x8137e030, 0xffff286a}, + {0x8137e031, 0xffff286b}, + {0x8137e032, 0xffff286c}, + {0x8137e033, 0xffff286d}, + {0x8137e034, 0xffff286e}, + {0x8137e035, 0xffff286f}, + {0x8137e036, 0xffff2870}, + {0x8137e037, 0xffff2871}, + {0x8137e038, 0xffff2872}, + {0x8137e039, 0xffff2873}, + {0x8137e130, 0xffff2874}, + {0x8137e131, 0xffff2875}, + {0x8137e132, 0xffff2876}, + {0x8137e133, 0xffff2877}, + {0x8137e134, 0xffff2878}, + {0x8137e135, 0xffff2879}, + {0x8137e136, 0xffff287a}, + {0x8137e137, 0xffff287b}, + {0x8137e138, 0xffff287c}, + {0x8137e139, 0xffff287d}, + {0x8137e230, 0xffff287e}, + {0x8137e231, 0xffff287f}, + {0x8137e232, 0xffff2880}, + {0x8137e233, 0xffff2881}, + {0x8137e234, 0xffff2882}, + {0x8137e235, 0xffff2883}, + {0x8137e236, 0xffff2884}, + {0x8137e237, 0xffff2885}, + {0x8137e238, 0xffff2886}, + {0x8137e239, 0xffff2887}, + {0x8137e330, 0xffff2888}, + {0x8137e331, 0xffff2889}, + {0x8137e332, 0xffff288a}, + {0x8137e333, 0xffff288b}, + {0x8137e334, 0xffff288c}, + {0x8137e335, 0xffff288d}, + {0x8137e336, 0xffff288e}, + {0x8137e337, 0xffff288f}, + {0x8137e338, 0xffff2890}, + {0x8137e339, 0xffff2891}, + {0x8137e430, 0xffff2892}, + {0x8137e431, 0xffff2893}, + {0x8137e432, 0xffff2894}, + {0x8137e433, 0xffff2895}, + {0x8137e434, 0xffff2896}, + {0x8137e435, 0xffff2897}, + {0x8137e436, 0xffff2898}, + {0x8137e437, 0xffff2899}, + {0x8137e438, 0xffff289a}, + {0x8137e439, 0xffff289b}, + {0x8137e530, 0xffff289c}, + {0x8137e531, 0xffff289d}, + {0x8137e532, 0xffff289e}, + {0x8137e533, 0xffff289f}, + {0x8137e534, 0xffff28a0}, + {0x8137e535, 0xffff28a1}, + {0x8137e536, 0xffff28a2}, + {0x8137e537, 0xffff28a3}, + {0x8137e538, 0xffff28a4}, + {0x8137e539, 0xffff28a5}, + {0x8137e630, 0xffff28a6}, + {0x8137e631, 0xffff28a7}, + {0x8137e632, 0xffff28a8}, + {0x8137e633, 0xffff28a9}, + {0x8137e634, 0xffff28aa}, + {0x8137e635, 0xffff28ab}, + {0x8137e636, 0xffff28ac}, + {0x8137e637, 0xffff28ad}, + {0x8137e638, 0xffff28ae}, + {0x8137e639, 0xffff28af}, + {0x8137e730, 0xffff28b0}, + {0x8137e731, 0xffff28b1}, + {0x8137e732, 0xffff28b2}, + {0x8137e733, 0xffff28b3}, + {0x8137e734, 0xffff28b4}, + {0x8137e735, 0xffff28b5}, + {0x8137e736, 0xffff28b6}, + {0x8137e737, 0xffff28b7}, + {0x8137e738, 0xffff28b8}, + {0x8137e739, 0xffff28b9}, + {0x8137e830, 0xffff28ba}, + {0x8137e831, 0xffff28bb}, + {0x8137e832, 0xffff28bc}, + {0x8137e833, 0xffff28bd}, + {0x8137e834, 0xffff28be}, + {0x8137e835, 0xffff28bf}, + {0x8137e836, 0xffff28c0}, + {0x8137e837, 0xffff28c1}, + {0x8137e838, 0xffff28c2}, + {0x8137e839, 0xffff28c3}, + {0x8137e930, 0xffff28c4}, + {0x8137e931, 0xffff28c5}, + {0x8137e932, 0xffff28c6}, + {0x8137e933, 0xffff28c7}, + {0x8137e934, 0xffff28c8}, + {0x8137e935, 0xffff28c9}, + {0x8137e936, 0xffff28ca}, + {0x8137e937, 0xffff28cb}, + {0x8137e938, 0xffff28cc}, + {0x8137e939, 0xffff28cd}, + {0x8137ea30, 0xffff28ce}, + {0x8137ea31, 0xffff28cf}, + {0x8137ea32, 0xffff28d0}, + {0x8137ea33, 0xffff28d1}, + {0x8137ea34, 0xffff28d2}, + {0x8137ea35, 0xffff28d3}, + {0x8137ea36, 0xffff28d4}, + {0x8137ea37, 0xffff28d5}, + {0x8137ea38, 0xffff28d6}, + {0x8137ea39, 0xffff28d7}, + {0x8137eb30, 0xffff28d8}, + {0x8137eb31, 0xffff28d9}, + {0x8137eb32, 0xffff28da}, + {0x8137eb33, 0xffff28db}, + {0x8137eb34, 0xffff28dc}, + {0x8137eb35, 0xffff28dd}, + {0x8137eb36, 0xffff28de}, + {0x8137eb37, 0xffff28df}, + {0x8137eb38, 0xffff28e0}, + {0x8137eb39, 0xffff28e1}, + {0x8137ec30, 0xffff28e2}, + {0x8137ec31, 0xffff28e3}, + {0x8137ec32, 0xffff28e4}, + {0x8137ec33, 0xffff28e5}, + {0x8137ec34, 0xffff28e6}, + {0x8137ec35, 0xffff28e7}, + {0x8137ec36, 0xffff28e8}, + {0x8137ec37, 0xffff28e9}, + {0x8137ec38, 0xffff28ea}, + {0x8137ec39, 0xffff28eb}, + {0x8137ed30, 0xffff28ec}, + {0x8137ed31, 0xffff28ed}, + {0x8137ed32, 0xffff28ee}, + {0x8137ed33, 0xffff28ef}, + {0x8137ed34, 0xffff28f0}, + {0x8137ed35, 0xffff28f1}, + {0x8137ed36, 0xffff28f2}, + {0x8137ed37, 0xffff28f3}, + {0x8137ed38, 0xffff28f4}, + {0x8137ed39, 0xffff28f5}, + {0x8137ee30, 0xffff28f6}, + {0x8137ee31, 0xffff28f7}, + {0x8137ee32, 0xffff28f8}, + {0x8137ee33, 0xffff28f9}, + {0x8137ee34, 0xffff28fa}, + {0x8137ee35, 0xffff28fb}, + {0x8137ee36, 0xffff28fc}, + {0x8137ee37, 0xffff28fd}, + {0x8137ee38, 0xffff28fe}, + {0x8137ee39, 0xffff28ff}, + {0x8137ef30, 0xffff2900}, + {0x8137ef31, 0xffff2901}, + {0x8137ef32, 0xffff2902}, + {0x8137ef33, 0xffff2903}, + {0x8137ef34, 0xffff2904}, + {0x8137ef35, 0xffff2905}, + {0x8137ef36, 0xffff2906}, + {0x8137ef37, 0xffff2907}, + {0x8137ef38, 0xffff2908}, + {0x8137ef39, 0xffff2909}, + {0x8137f030, 0xffff290a}, + {0x8137f031, 0xffff290b}, + {0x8137f032, 0xffff290c}, + {0x8137f033, 0xffff290d}, + {0x8137f034, 0xffff290e}, + {0x8137f035, 0xffff290f}, + {0x8137f036, 0xffff2910}, + {0x8137f037, 0xffff2911}, + {0x8137f038, 0xffff2912}, + {0x8137f039, 0xffff2913}, + {0x8137f130, 0xffff2914}, + {0x8137f131, 0xffff2915}, + {0x8137f132, 0xffff2916}, + {0x8137f133, 0xffff2917}, + {0x8137f134, 0xffff2918}, + {0x8137f135, 0xffff2919}, + {0x8137f136, 0xffff291a}, + {0x8137f137, 0xffff291b}, + {0x8137f138, 0xffff291c}, + {0x8137f139, 0xffff291d}, + {0x8137f230, 0xffff291e}, + {0x8137f231, 0xffff291f}, + {0x8137f232, 0xffff2920}, + {0x8137f233, 0xffff2921}, + {0x8137f234, 0xffff2922}, + {0x8137f235, 0xffff2923}, + {0x8137f236, 0xffff2924}, + {0x8137f237, 0xffff2925}, + {0x8137f238, 0xffff2926}, + {0x8137f239, 0xffff2927}, + {0x8137f330, 0xffff2928}, + {0x8137f331, 0xffff2929}, + {0x8137f332, 0xffff292a}, + {0x8137f333, 0xffff292b}, + {0x8137f334, 0xffff292c}, + {0x8137f335, 0xffff292d}, + {0x8137f336, 0xffff292e}, + {0x8137f337, 0xffff292f}, + {0x8137f338, 0xffff2930}, + {0x8137f339, 0xffff2931}, + {0x8137f430, 0xffff2932}, + {0x8137f431, 0xffff2933}, + {0x8137f432, 0xffff2934}, + {0x8137f433, 0xffff2935}, + {0x8137f434, 0xffff2936}, + {0x8137f435, 0xffff2937}, + {0x8137f436, 0xffff2938}, + {0x8137f437, 0xffff2939}, + {0x8137f438, 0xffff293a}, + {0x8137f439, 0xffff293b}, + {0x8137f530, 0xffff293c}, + {0x8137f531, 0xffff293d}, + {0x8137f532, 0xffff293e}, + {0x8137f533, 0xffff293f}, + {0x8137f534, 0xffff2940}, + {0x8137f535, 0xffff2941}, + {0x8137f536, 0xffff2942}, + {0x8137f537, 0xffff2943}, + {0x8137f538, 0xffff2944}, + {0x8137f539, 0xffff2945}, + {0x8137f630, 0xffff2946}, + {0x8137f631, 0xffff2947}, + {0x8137f632, 0xffff2948}, + {0x8137f633, 0xffff2949}, + {0x8137f634, 0xffff294a}, + {0x8137f635, 0xffff294b}, + {0x8137f636, 0xffff294c}, + {0x8137f637, 0xffff294d}, + {0x8137f638, 0xffff294e}, + {0x8137f639, 0xffff294f}, + {0x8137f730, 0xffff2950}, + {0x8137f731, 0xffff2951}, + {0x8137f732, 0xffff2952}, + {0x8137f733, 0xffff2953}, + {0x8137f734, 0xffff2954}, + {0x8137f735, 0xffff2955}, + {0x8137f736, 0xffff2956}, + {0x8137f737, 0xffff2957}, + {0x8137f738, 0xffff2958}, + {0x8137f739, 0xffff2959}, + {0x8137f830, 0xffff295a}, + {0x8137f831, 0xffff295b}, + {0x8137f832, 0xffff295c}, + {0x8137f833, 0xffff295d}, + {0x8137f834, 0xffff295e}, + {0x8137f835, 0xffff295f}, + {0x8137f836, 0xffff2960}, + {0x8137f837, 0xffff2961}, + {0x8137f838, 0xffff2962}, + {0x8137f839, 0xffff2963}, + {0x8137f930, 0xffff2964}, + {0x8137f931, 0xffff2965}, + {0x8137f932, 0xffff2966}, + {0x8137f933, 0xffff2967}, + {0x8137f934, 0xffff2968}, + {0x8137f935, 0xffff2969}, + {0x8137f936, 0xffff296a}, + {0x8137f937, 0xffff296b}, + {0x8137f938, 0xffff296c}, + {0x8137f939, 0xffff296d}, + {0x8137fa30, 0xffff296e}, + {0x8137fa31, 0xffff296f}, + {0x8137fa32, 0xffff2970}, + {0x8137fa33, 0xffff2971}, + {0x8137fa34, 0xffff2972}, + {0x8137fa35, 0xffff2973}, + {0x8137fa36, 0xffff2974}, + {0x8137fa37, 0xffff2975}, + {0x8137fa38, 0xffff2976}, + {0x8137fa39, 0xffff2977}, + {0x8137fb30, 0xffff2978}, + {0x8137fb31, 0xffff2979}, + {0x8137fb32, 0xffff297a}, + {0x8137fb33, 0xffff297b}, + {0x8137fb34, 0xffff297c}, + {0x8137fb35, 0xffff297d}, + {0x8137fb36, 0xffff297e}, + {0x8137fb37, 0xffff297f}, + {0x8137fb38, 0xffff2980}, + {0x8137fb39, 0xffff2981}, + {0x8137fc30, 0xffff2982}, + {0x8137fc31, 0xffff2983}, + {0x8137fc32, 0xffff2984}, + {0x8137fc33, 0xffff2985}, + {0x8137fc34, 0xffff2986}, + {0x8137fc35, 0xffff2987}, + {0x8137fc36, 0xffff2988}, + {0x8137fc37, 0xffff2989}, + {0x8137fc38, 0xffff298a}, + {0x8137fc39, 0xffff298b}, + {0x8137fd30, 0xffff298c}, + {0x8137fd31, 0xffff298d}, + {0x8137fd32, 0xffff298e}, + {0x8137fd33, 0xffff298f}, + {0x8137fd34, 0xffff2990}, + {0x8137fd35, 0xffff2991}, + {0x8137fd36, 0xffff2992}, + {0x8137fd37, 0xffff2993}, + {0x8137fd38, 0xffff2994}, + {0x8137fd39, 0xffff2995}, + {0x8137fe30, 0xffff2996}, + {0x8137fe31, 0xffff2997}, + {0x8137fe32, 0xffff2998}, + {0x8137fe33, 0xffff2999}, + {0x8137fe34, 0xffff299a}, + {0x8137fe35, 0xffff299b}, + {0x8137fe36, 0xffff299c}, + {0x8137fe37, 0xffff299d}, + {0x8137fe38, 0xffff299e}, + {0x8137fe39, 0xffff299f}, + {0x81388130, 0xffff29a0}, + {0x81388131, 0xffff29a1}, + {0x81388132, 0xffff29a2}, + {0x81388133, 0xffff29a3}, + {0x81388134, 0xffff29a4}, + {0x81388135, 0xffff29a5}, + {0x81388136, 0xffff29a6}, + {0x81388137, 0xffff29a7}, + {0x81388138, 0xffff29a8}, + {0x81388139, 0xffff29a9}, + {0x81388230, 0xffff29aa}, + {0x81388231, 0xffff29ab}, + {0x81388232, 0xffff29ac}, + {0x81388233, 0xffff29ad}, + {0x81388234, 0xffff29ae}, + {0x81388235, 0xffff29af}, + {0x81388236, 0xffff29b0}, + {0x81388237, 0xffff29b1}, + {0x81388238, 0xffff29b2}, + {0x81388239, 0xffff29b3}, + {0x81388330, 0xffff29b4}, + {0x81388331, 0xffff29b5}, + {0x81388332, 0xffff29b6}, + {0x81388333, 0xffff29b7}, + {0x81388334, 0xffff29b8}, + {0x81388335, 0xffff29b9}, + {0x81388336, 0xffff29ba}, + {0x81388337, 0xffff29bb}, + {0x81388338, 0xffff29bc}, + {0x81388339, 0xffff29bd}, + {0x81388430, 0xffff29be}, + {0x81388431, 0xffff29bf}, + {0x81388432, 0xffff29c0}, + {0x81388433, 0xffff29c1}, + {0x81388434, 0xffff29c2}, + {0x81388435, 0xffff29c3}, + {0x81388436, 0xffff29c4}, + {0x81388437, 0xffff29c5}, + {0x81388438, 0xffff29c6}, + {0x81388439, 0xffff29c7}, + {0x81388530, 0xffff29c8}, + {0x81388531, 0xffff29c9}, + {0x81388532, 0xffff29ca}, + {0x81388533, 0xffff29cb}, + {0x81388534, 0xffff29cc}, + {0x81388535, 0xffff29cd}, + {0x81388536, 0xffff29ce}, + {0x81388537, 0xffff29cf}, + {0x81388538, 0xffff29d0}, + {0x81388539, 0xffff29d1}, + {0x81388630, 0xffff29d2}, + {0x81388631, 0xffff29d3}, + {0x81388632, 0xffff29d4}, + {0x81388633, 0xffff29d5}, + {0x81388634, 0xffff29d6}, + {0x81388635, 0xffff29d7}, + {0x81388636, 0xffff29d8}, + {0x81388637, 0xffff29d9}, + {0x81388638, 0xffff29da}, + {0x81388639, 0xffff29db}, + {0x81388730, 0xffff29dc}, + {0x81388731, 0xffff29dd}, + {0x81388732, 0xffff29de}, + {0x81388733, 0xffff29df}, + {0x81388734, 0xffff29e0}, + {0x81388735, 0xffff29e1}, + {0x81388736, 0xffff29e2}, + {0x81388737, 0xffff29e3}, + {0x81388738, 0xffff29e4}, + {0x81388739, 0xffff29e5}, + {0x81388830, 0xffff29e6}, + {0x81388831, 0xffff29e7}, + {0x81388832, 0xffff29e8}, + {0x81388833, 0xffff29e9}, + {0x81388834, 0xffff29ea}, + {0x81388835, 0xffff29eb}, + {0x81388836, 0xffff29ec}, + {0x81388837, 0xffff29ed}, + {0x81388838, 0xffff29ee}, + {0x81388839, 0xffff29ef}, + {0x81388930, 0xffff29f0}, + {0x81388931, 0xffff29f1}, + {0x81388932, 0xffff29f2}, + {0x81388933, 0xffff29f3}, + {0x81388934, 0xffff29f4}, + {0x81388935, 0xffff29f5}, + {0x81388936, 0xffff29f6}, + {0x81388937, 0xffff29f7}, + {0x81388938, 0xffff29f8}, + {0x81388939, 0xffff29f9}, + {0x81388a30, 0xffff29fa}, + {0x81388a31, 0xffff29fb}, + {0x81388a32, 0xffff29fc}, + {0x81388a33, 0xffff29fd}, + {0x81388a34, 0xffff29fe}, + {0x81388a35, 0xffff29ff}, + {0x81388a36, 0xffff2a00}, + {0x81388a37, 0xffff2a01}, + {0x81388a38, 0xffff2a02}, + {0x81388a39, 0xffff2a03}, + {0x81388b30, 0xffff2a04}, + {0x81388b31, 0xffff2a05}, + {0x81388b32, 0xffff2a06}, + {0x81388b33, 0xffff2a07}, + {0x81388b34, 0xffff2a08}, + {0x81388b35, 0xffff2a09}, + {0x81388b36, 0xffff2a0a}, + {0x81388b37, 0xffff2a0b}, + {0x81388b38, 0xffff2a0c}, + {0x81388b39, 0xffff2a0d}, + {0x81388c30, 0xffff2a0e}, + {0x81388c31, 0xffff2a0f}, + {0x81388c32, 0xffff2a10}, + {0x81388c33, 0xffff2a11}, + {0x81388c34, 0xffff2a12}, + {0x81388c35, 0xffff2a13}, + {0x81388c36, 0xffff2a14}, + {0x81388c37, 0xffff2a15}, + {0x81388c38, 0xffff2a16}, + {0x81388c39, 0xffff2a17}, + {0x81388d30, 0xffff2a18}, + {0x81388d31, 0xffff2a19}, + {0x81388d32, 0xffff2a1a}, + {0x81388d33, 0xffff2a1b}, + {0x81388d34, 0xffff2a1c}, + {0x81388d35, 0xffff2a1d}, + {0x81388d36, 0xffff2a1e}, + {0x81388d37, 0xffff2a1f}, + {0x81388d38, 0xffff2a20}, + {0x81388d39, 0xffff2a21}, + {0x81388e30, 0xffff2a22}, + {0x81388e31, 0xffff2a23}, + {0x81388e32, 0xffff2a24}, + {0x81388e33, 0xffff2a25}, + {0x81388e34, 0xffff2a26}, + {0x81388e35, 0xffff2a27}, + {0x81388e36, 0xffff2a28}, + {0x81388e37, 0xffff2a29}, + {0x81388e38, 0xffff2a2a}, + {0x81388e39, 0xffff2a2b}, + {0x81388f30, 0xffff2a2c}, + {0x81388f31, 0xffff2a2d}, + {0x81388f32, 0xffff2a2e}, + {0x81388f33, 0xffff2a2f}, + {0x81388f34, 0xffff2a30}, + {0x81388f35, 0xffff2a31}, + {0x81388f36, 0xffff2a32}, + {0x81388f37, 0xffff2a33}, + {0x81388f38, 0xffff2a34}, + {0x81388f39, 0xffff2a35}, + {0x81389030, 0xffff2a36}, + {0x81389031, 0xffff2a37}, + {0x81389032, 0xffff2a38}, + {0x81389033, 0xffff2a39}, + {0x81389034, 0xffff2a3a}, + {0x81389035, 0xffff2a3b}, + {0x81389036, 0xffff2a3c}, + {0x81389037, 0xffff2a3d}, + {0x81389038, 0xffff2a3e}, + {0x81389039, 0xffff2a3f}, + {0x81389130, 0xffff2a40}, + {0x81389131, 0xffff2a41}, + {0x81389132, 0xffff2a42}, + {0x81389133, 0xffff2a43}, + {0x81389134, 0xffff2a44}, + {0x81389135, 0xffff2a45}, + {0x81389136, 0xffff2a46}, + {0x81389137, 0xffff2a47}, + {0x81389138, 0xffff2a48}, + {0x81389139, 0xffff2a49}, + {0x81389230, 0xffff2a4a}, + {0x81389231, 0xffff2a4b}, + {0x81389232, 0xffff2a4c}, + {0x81389233, 0xffff2a4d}, + {0x81389234, 0xffff2a4e}, + {0x81389235, 0xffff2a4f}, + {0x81389236, 0xffff2a50}, + {0x81389237, 0xffff2a51}, + {0x81389238, 0xffff2a52}, + {0x81389239, 0xffff2a53}, + {0x81389330, 0xffff2a54}, + {0x81389331, 0xffff2a55}, + {0x81389332, 0xffff2a56}, + {0x81389333, 0xffff2a57}, + {0x81389334, 0xffff2a58}, + {0x81389335, 0xffff2a59}, + {0x81389336, 0xffff2a5a}, + {0x81389337, 0xffff2a5b}, + {0x81389338, 0xffff2a5c}, + {0x81389339, 0xffff2a5d}, + {0x81389430, 0xffff2a5e}, + {0x81389431, 0xffff2a5f}, + {0x81389432, 0xffff2a60}, + {0x81389433, 0xffff2a61}, + {0x81389434, 0xffff2a62}, + {0x81389435, 0xffff2a63}, + {0x81389436, 0xffff2a64}, + {0x81389437, 0xffff2a65}, + {0x81389438, 0xffff2a66}, + {0x81389439, 0xffff2a67}, + {0x81389530, 0xffff2a68}, + {0x81389531, 0xffff2a69}, + {0x81389532, 0xffff2a6a}, + {0x81389533, 0xffff2a6b}, + {0x81389534, 0xffff2a6c}, + {0x81389535, 0xffff2a6d}, + {0x81389536, 0xffff2a6e}, + {0x81389537, 0xffff2a6f}, + {0x81389538, 0xffff2a70}, + {0x81389539, 0xffff2a71}, + {0x81389630, 0xffff2a72}, + {0x81389631, 0xffff2a73}, + {0x81389632, 0xffff2a74}, + {0x81389633, 0xffff2a75}, + {0x81389634, 0xffff2a76}, + {0x81389635, 0xffff2a77}, + {0x81389636, 0xffff2a78}, + {0x81389637, 0xffff2a79}, + {0x81389638, 0xffff2a7a}, + {0x81389639, 0xffff2a7b}, + {0x81389730, 0xffff2a7c}, + {0x81389731, 0xffff2a7d}, + {0x81389732, 0xffff2a7e}, + {0x81389733, 0xffff2a7f}, + {0x81389734, 0xffff2a80}, + {0x81389735, 0xffff2a81}, + {0x81389736, 0xffff2a82}, + {0x81389737, 0xffff2a83}, + {0x81389738, 0xffff2a84}, + {0x81389739, 0xffff2a85}, + {0x81389830, 0xffff2a86}, + {0x81389831, 0xffff2a87}, + {0x81389832, 0xffff2a88}, + {0x81389833, 0xffff2a89}, + {0x81389834, 0xffff2a8a}, + {0x81389835, 0xffff2a8b}, + {0x81389836, 0xffff2a8c}, + {0x81389837, 0xffff2a8d}, + {0x81389838, 0xffff2a8e}, + {0x81389839, 0xffff2a8f}, + {0x81389930, 0xffff2a90}, + {0x81389931, 0xffff2a91}, + {0x81389932, 0xffff2a92}, + {0x81389933, 0xffff2a93}, + {0x81389934, 0xffff2a94}, + {0x81389935, 0xffff2a95}, + {0x81389936, 0xffff2a96}, + {0x81389937, 0xffff2a97}, + {0x81389938, 0xffff2a98}, + {0x81389939, 0xffff2a99}, + {0x81389a30, 0xffff2a9a}, + {0x81389a31, 0xffff2a9b}, + {0x81389a32, 0xffff2a9c}, + {0x81389a33, 0xffff2a9d}, + {0x81389a34, 0xffff2a9e}, + {0x81389a35, 0xffff2a9f}, + {0x81389a36, 0xffff2aa0}, + {0x81389a37, 0xffff2aa1}, + {0x81389a38, 0xffff2aa2}, + {0x81389a39, 0xffff2aa3}, + {0x81389b30, 0xffff2aa4}, + {0x81389b31, 0xffff2aa5}, + {0x81389b32, 0xffff2aa6}, + {0x81389b33, 0xffff2aa7}, + {0x81389b34, 0xffff2aa8}, + {0x81389b35, 0xffff2aa9}, + {0x81389b36, 0xffff2aaa}, + {0x81389b37, 0xffff2aab}, + {0x81389b38, 0xffff2aac}, + {0x81389b39, 0xffff2aad}, + {0x81389c30, 0xffff2aae}, + {0x81389c31, 0xffff2aaf}, + {0x81389c32, 0xffff2ab0}, + {0x81389c33, 0xffff2ab1}, + {0x81389c34, 0xffff2ab2}, + {0x81389c35, 0xffff2ab3}, + {0x81389c36, 0xffff2ab4}, + {0x81389c37, 0xffff2ab5}, + {0x81389c38, 0xffff2ab6}, + {0x81389c39, 0xffff2ab7}, + {0x81389d30, 0xffff2ab8}, + {0x81389d31, 0xffff2ab9}, + {0x81389d32, 0xffff2aba}, + {0x81389d33, 0xffff2abb}, + {0x81389d34, 0xffff2abc}, + {0x81389d35, 0xffff2abd}, + {0x81389d36, 0xffff2abe}, + {0x81389d37, 0xffff2abf}, + {0x81389d38, 0xffff2ac0}, + {0x81389d39, 0xffff2ac1}, + {0x81389e30, 0xffff2ac2}, + {0x81389e31, 0xffff2ac3}, + {0x81389e32, 0xffff2ac4}, + {0x81389e33, 0xffff2ac5}, + {0x81389e34, 0xffff2ac6}, + {0x81389e35, 0xffff2ac7}, + {0x81389e36, 0xffff2ac8}, + {0x81389e37, 0xffff2ac9}, + {0x81389e38, 0xffff2aca}, + {0x81389e39, 0xffff2acb}, + {0x81389f30, 0xffff2acc}, + {0x81389f31, 0xffff2acd}, + {0x81389f32, 0xffff2ace}, + {0x81389f33, 0xffff2acf}, + {0x81389f34, 0xffff2ad0}, + {0x81389f35, 0xffff2ad1}, + {0x81389f36, 0xffff2ad2}, + {0x81389f37, 0xffff2ad3}, + {0x81389f38, 0xffff2ad4}, + {0x81389f39, 0xffff2ad5}, + {0x8138a030, 0xffff2ad6}, + {0x8138a031, 0xffff2ad7}, + {0x8138a032, 0xffff2ad8}, + {0x8138a033, 0xffff2ad9}, + {0x8138a034, 0xffff2ada}, + {0x8138a035, 0xffff2adb}, + {0x8138a036, 0xffff2adc}, + {0x8138a037, 0xffff2add}, + {0x8138a038, 0xffff2ade}, + {0x8138a039, 0xffff2adf}, + {0x8138a130, 0xffff2ae0}, + {0x8138a131, 0xffff2ae1}, + {0x8138a132, 0xffff2ae2}, + {0x8138a133, 0xffff2ae3}, + {0x8138a134, 0xffff2ae4}, + {0x8138a135, 0xffff2ae5}, + {0x8138a136, 0xffff2ae6}, + {0x8138a137, 0xffff2ae7}, + {0x8138a138, 0xffff2ae8}, + {0x8138a139, 0xffff2ae9}, + {0x8138a230, 0xffff2aea}, + {0x8138a231, 0xffff2aeb}, + {0x8138a232, 0xffff2aec}, + {0x8138a233, 0xffff2aed}, + {0x8138a234, 0xffff2aee}, + {0x8138a235, 0xffff2aef}, + {0x8138a236, 0xffff2af0}, + {0x8138a237, 0xffff2af1}, + {0x8138a238, 0xffff2af2}, + {0x8138a239, 0xffff2af3}, + {0x8138a330, 0xffff2af4}, + {0x8138a331, 0xffff2af5}, + {0x8138a332, 0xffff2af6}, + {0x8138a333, 0xffff2af7}, + {0x8138a334, 0xffff2af8}, + {0x8138a335, 0xffff2af9}, + {0x8138a336, 0xffff2afa}, + {0x8138a337, 0xffff2afb}, + {0x8138a338, 0xffff2afc}, + {0x8138a339, 0xffff2afd}, + {0x8138a430, 0xffff2afe}, + {0x8138a431, 0xffff2aff}, + {0x8138a432, 0xffff2b00}, + {0x8138a433, 0xffff2b01}, + {0x8138a434, 0xffff2b02}, + {0x8138a435, 0xffff2b03}, + {0x8138a436, 0xffff2b04}, + {0x8138a437, 0xffff2b05}, + {0x8138a438, 0xffff2b06}, + {0x8138a439, 0xffff2b07}, + {0x8138a530, 0xffff2b08}, + {0x8138a531, 0xffff2b09}, + {0x8138a532, 0xffff2b0a}, + {0x8138a533, 0xffff2b0b}, + {0x8138a534, 0xffff2b0c}, + {0x8138a535, 0xffff2b0d}, + {0x8138a536, 0xffff2b0e}, + {0x8138a537, 0xffff2b0f}, + {0x8138a538, 0xffff2b10}, + {0x8138a539, 0xffff2b11}, + {0x8138a630, 0xffff2b12}, + {0x8138a631, 0xffff2b13}, + {0x8138a632, 0xffff2b14}, + {0x8138a633, 0xffff2b15}, + {0x8138a634, 0xffff2b16}, + {0x8138a635, 0xffff2b17}, + {0x8138a636, 0xffff2b18}, + {0x8138a637, 0xffff2b19}, + {0x8138a638, 0xffff2b1a}, + {0x8138a639, 0xffff2b1b}, + {0x8138a730, 0xffff2b1c}, + {0x8138a731, 0xffff2b1d}, + {0x8138a732, 0xffff2b1e}, + {0x8138a733, 0xffff2b1f}, + {0x8138a734, 0xffff2b20}, + {0x8138a735, 0xffff2b21}, + {0x8138a736, 0xffff2b22}, + {0x8138a737, 0xffff2b23}, + {0x8138a738, 0xffff2b24}, + {0x8138a739, 0xffff2b25}, + {0x8138a830, 0xffff2b26}, + {0x8138a831, 0xffff2b27}, + {0x8138a832, 0xffff2b28}, + {0x8138a833, 0xffff2b29}, + {0x8138a834, 0xffff2b2a}, + {0x8138a835, 0xffff2b2b}, + {0x8138a836, 0xffff2b2c}, + {0x8138a837, 0xffff2b2d}, + {0x8138a838, 0xffff2b2e}, + {0x8138a839, 0xffff2b2f}, + {0x8138a930, 0xffff2b30}, + {0x8138a931, 0xffff2b31}, + {0x8138a932, 0xffff2b32}, + {0x8138a933, 0xffff2b33}, + {0x8138a934, 0xffff2b34}, + {0x8138a935, 0xffff2b35}, + {0x8138a936, 0xffff2b36}, + {0x8138a937, 0xffff2b37}, + {0x8138a938, 0xffff2b38}, + {0x8138a939, 0xffff2b39}, + {0x8138aa30, 0xffff2b3a}, + {0x8138aa31, 0xffff2b3b}, + {0x8138aa32, 0xffff2b3c}, + {0x8138aa33, 0xffff2b3d}, + {0x8138aa34, 0xffff2b3e}, + {0x8138aa35, 0xffff2b3f}, + {0x8138aa36, 0xffff2b40}, + {0x8138aa37, 0xffff2b41}, + {0x8138aa38, 0xffff2b42}, + {0x8138aa39, 0xffff2b43}, + {0x8138ab30, 0xffff2b44}, + {0x8138ab31, 0xffff2b45}, + {0x8138ab32, 0xffff2b46}, + {0x8138ab33, 0xffff2b47}, + {0x8138ab34, 0xffff2b48}, + {0x8138ab35, 0xffff2b49}, + {0x8138ab36, 0xffff2b4a}, + {0x8138ab37, 0xffff2b4b}, + {0x8138ab38, 0xffff2b4c}, + {0x8138ab39, 0xffff2b4d}, + {0x8138ac30, 0xffff2b4e}, + {0x8138ac31, 0xffff2b4f}, + {0x8138ac32, 0xffff2b50}, + {0x8138ac33, 0xffff2b51}, + {0x8138ac34, 0xffff2b52}, + {0x8138ac35, 0xffff2b53}, + {0x8138ac36, 0xffff2b54}, + {0x8138ac37, 0xffff2b55}, + {0x8138ac38, 0xffff2b56}, + {0x8138ac39, 0xffff2b57}, + {0x8138ad30, 0xffff2b58}, + {0x8138ad31, 0xffff2b59}, + {0x8138ad32, 0xffff2b5a}, + {0x8138ad33, 0xffff2b5b}, + {0x8138ad34, 0xffff2b5c}, + {0x8138ad35, 0xffff2b5d}, + {0x8138ad36, 0xffff2b5e}, + {0x8138ad37, 0xffff2b5f}, + {0x8138ad38, 0xffff2b60}, + {0x8138ad39, 0xffff2b61}, + {0x8138ae30, 0xffff2b62}, + {0x8138ae31, 0xffff2b63}, + {0x8138ae32, 0xffff2b64}, + {0x8138ae33, 0xffff2b65}, + {0x8138ae34, 0xffff2b66}, + {0x8138ae35, 0xffff2b67}, + {0x8138ae36, 0xffff2b68}, + {0x8138ae37, 0xffff2b69}, + {0x8138ae38, 0xffff2b6a}, + {0x8138ae39, 0xffff2b6b}, + {0x8138af30, 0xffff2b6c}, + {0x8138af31, 0xffff2b6d}, + {0x8138af32, 0xffff2b6e}, + {0x8138af33, 0xffff2b6f}, + {0x8138af34, 0xffff2b70}, + {0x8138af35, 0xffff2b71}, + {0x8138af36, 0xffff2b72}, + {0x8138af37, 0xffff2b73}, + {0x8138af38, 0xffff2b74}, + {0x8138af39, 0xffff2b75}, + {0x8138b030, 0xffff2b76}, + {0x8138b031, 0xffff2b77}, + {0x8138b032, 0xffff2b78}, + {0x8138b033, 0xffff2b79}, + {0x8138b034, 0xffff2b7a}, + {0x8138b035, 0xffff2b7b}, + {0x8138b036, 0xffff2b7c}, + {0x8138b037, 0xffff2b7d}, + {0x8138b038, 0xffff2b7e}, + {0x8138b039, 0xffff2b7f}, + {0x8138b130, 0xffff2b80}, + {0x8138b131, 0xffff2b81}, + {0x8138b132, 0xffff2b82}, + {0x8138b133, 0xffff2b83}, + {0x8138b134, 0xffff2b84}, + {0x8138b135, 0xffff2b85}, + {0x8138b136, 0xffff2b86}, + {0x8138b137, 0xffff2b87}, + {0x8138b138, 0xffff2b88}, + {0x8138b139, 0xffff2b89}, + {0x8138b230, 0xffff2b8a}, + {0x8138b231, 0xffff2b8b}, + {0x8138b232, 0xffff2b8c}, + {0x8138b233, 0xffff2b8d}, + {0x8138b234, 0xffff2b8e}, + {0x8138b235, 0xffff2b8f}, + {0x8138b236, 0xffff2b90}, + {0x8138b237, 0xffff2b91}, + {0x8138b238, 0xffff2b92}, + {0x8138b239, 0xffff2b93}, + {0x8138b330, 0xffff2b94}, + {0x8138b331, 0xffff2b95}, + {0x8138b332, 0xffff2b96}, + {0x8138b333, 0xffff2b97}, + {0x8138b334, 0xffff2b98}, + {0x8138b335, 0xffff2b99}, + {0x8138b336, 0xffff2b9a}, + {0x8138b337, 0xffff2b9b}, + {0x8138b338, 0xffff2b9c}, + {0x8138b339, 0xffff2b9d}, + {0x8138b430, 0xffff2b9e}, + {0x8138b431, 0xffff2b9f}, + {0x8138b432, 0xffff2ba0}, + {0x8138b433, 0xffff2ba1}, + {0x8138b434, 0xffff2ba2}, + {0x8138b435, 0xffff2ba3}, + {0x8138b436, 0xffff2ba4}, + {0x8138b437, 0xffff2ba5}, + {0x8138b438, 0xffff2ba6}, + {0x8138b439, 0xffff2ba7}, + {0x8138b530, 0xffff2ba8}, + {0x8138b531, 0xffff2ba9}, + {0x8138b532, 0xffff2baa}, + {0x8138b533, 0xffff2bab}, + {0x8138b534, 0xffff2bac}, + {0x8138b535, 0xffff2bad}, + {0x8138b536, 0xffff2bae}, + {0x8138b537, 0xffff2baf}, + {0x8138b538, 0xffff2bb0}, + {0x8138b539, 0xffff2bb1}, + {0x8138b630, 0xffff2bb2}, + {0x8138b631, 0xffff2bb3}, + {0x8138b632, 0xffff2bb4}, + {0x8138b633, 0xffff2bb5}, + {0x8138b634, 0xffff2bb6}, + {0x8138b635, 0xffff2bb7}, + {0x8138b636, 0xffff2bb8}, + {0x8138b637, 0xffff2bb9}, + {0x8138b638, 0xffff2bba}, + {0x8138b639, 0xffff2bbb}, + {0x8138b730, 0xffff2bbc}, + {0x8138b731, 0xffff2bbd}, + {0x8138b732, 0xffff2bbe}, + {0x8138b733, 0xffff2bbf}, + {0x8138b734, 0xffff2bc0}, + {0x8138b735, 0xffff2bc1}, + {0x8138b736, 0xffff2bc2}, + {0x8138b737, 0xffff2bc3}, + {0x8138b738, 0xffff2bc4}, + {0x8138b739, 0xffff2bc5}, + {0x8138b830, 0xffff2bc6}, + {0x8138b831, 0xffff2bc7}, + {0x8138b832, 0xffff2bc8}, + {0x8138b833, 0xffff2bc9}, + {0x8138b834, 0xffff2bca}, + {0x8138b835, 0xffff2bcb}, + {0x8138b836, 0xffff2bcc}, + {0x8138b837, 0xffff2bcd}, + {0x8138b838, 0xffff2bce}, + {0x8138b839, 0xffff2bcf}, + {0x8138b930, 0xffff2bd0}, + {0x8138b931, 0xffff2bd1}, + {0x8138b932, 0xffff2bd2}, + {0x8138b933, 0xffff2bd3}, + {0x8138b934, 0xffff2bd4}, + {0x8138b935, 0xffff2bd5}, + {0x8138b936, 0xffff2bd6}, + {0x8138b937, 0xffff2bd7}, + {0x8138b938, 0xffff2bd8}, + {0x8138b939, 0xffff2bd9}, + {0x8138ba30, 0xffff2bda}, + {0x8138ba31, 0xffff2bdb}, + {0x8138ba32, 0xffff2bdc}, + {0x8138ba33, 0xffff2bdd}, + {0x8138ba34, 0xffff2bde}, + {0x8138ba35, 0xffff2bdf}, + {0x8138ba36, 0xffff2be0}, + {0x8138ba37, 0xffff2be1}, + {0x8138ba38, 0xffff2be2}, + {0x8138ba39, 0xffff2be3}, + {0x8138bb30, 0xffff2be4}, + {0x8138bb31, 0xffff2be5}, + {0x8138bb32, 0xffff2be6}, + {0x8138bb33, 0xffff2be7}, + {0x8138bb34, 0xffff2be8}, + {0x8138bb35, 0xffff2be9}, + {0x8138bb36, 0xffff2bea}, + {0x8138bb37, 0xffff2beb}, + {0x8138bb38, 0xffff2bec}, + {0x8138bb39, 0xffff2bed}, + {0x8138bc30, 0xffff2bee}, + {0x8138bc31, 0xffff2bef}, + {0x8138bc32, 0xffff2bf0}, + {0x8138bc33, 0xffff2bf1}, + {0x8138bc34, 0xffff2bf2}, + {0x8138bc35, 0xffff2bf3}, + {0x8138bc36, 0xffff2bf4}, + {0x8138bc37, 0xffff2bf5}, + {0x8138bc38, 0xffff2bf6}, + {0x8138bc39, 0xffff2bf7}, + {0x8138bd30, 0xffff2bf8}, + {0x8138bd31, 0xffff2bf9}, + {0x8138bd32, 0xffff2bfa}, + {0x8138bd33, 0xffff2bfb}, + {0x8138bd34, 0xffff2bfc}, + {0x8138bd35, 0xffff2bfd}, + {0x8138bd36, 0xffff2bfe}, + {0x8138bd37, 0xffff2bff}, + {0x8138bd38, 0xffff2c00}, + {0x8138bd39, 0xffff2c01}, + {0x8138be30, 0xffff2c02}, + {0x8138be31, 0xffff2c03}, + {0x8138be32, 0xffff2c04}, + {0x8138be33, 0xffff2c05}, + {0x8138be34, 0xffff2c06}, + {0x8138be35, 0xffff2c07}, + {0x8138be36, 0xffff2c08}, + {0x8138be37, 0xffff2c09}, + {0x8138be38, 0xffff2c0a}, + {0x8138be39, 0xffff2c0b}, + {0x8138bf30, 0xffff2c0c}, + {0x8138bf31, 0xffff2c0d}, + {0x8138bf32, 0xffff2c0e}, + {0x8138bf33, 0xffff2c0f}, + {0x8138bf34, 0xffff2c10}, + {0x8138bf35, 0xffff2c11}, + {0x8138bf36, 0xffff2c12}, + {0x8138bf37, 0xffff2c13}, + {0x8138bf38, 0xffff2c14}, + {0x8138bf39, 0xffff2c15}, + {0x8138c030, 0xffff2c16}, + {0x8138c031, 0xffff2c17}, + {0x8138c032, 0xffff2c18}, + {0x8138c033, 0xffff2c19}, + {0x8138c034, 0xffff2c1a}, + {0x8138c035, 0xffff2c1b}, + {0x8138c036, 0xffff2c1c}, + {0x8138c037, 0xffff2c1d}, + {0x8138c038, 0xffff2c1e}, + {0x8138c039, 0xffff2c1f}, + {0x8138c130, 0xffff2c20}, + {0x8138c131, 0xffff2c21}, + {0x8138c132, 0xffff2c22}, + {0x8138c133, 0xffff2c23}, + {0x8138c134, 0xffff2c24}, + {0x8138c135, 0xffff2c25}, + {0x8138c136, 0xffff2c26}, + {0x8138c137, 0xffff2c27}, + {0x8138c138, 0xffff2c28}, + {0x8138c139, 0xffff2c29}, + {0x8138c230, 0xffff2c2a}, + {0x8138c231, 0xffff2c2b}, + {0x8138c232, 0xffff2c2c}, + {0x8138c233, 0xffff2c2d}, + {0x8138c234, 0xffff2c2e}, + {0x8138c235, 0xffff2c2f}, + {0x8138c236, 0xffff2c30}, + {0x8138c237, 0xffff2c31}, + {0x8138c238, 0xffff2c32}, + {0x8138c239, 0xffff2c33}, + {0x8138c330, 0xffff2c34}, + {0x8138c331, 0xffff2c35}, + {0x8138c332, 0xffff2c36}, + {0x8138c333, 0xffff2c37}, + {0x8138c334, 0xffff2c38}, + {0x8138c335, 0xffff2c39}, + {0x8138c336, 0xffff2c3a}, + {0x8138c337, 0xffff2c3b}, + {0x8138c338, 0xffff2c3c}, + {0x8138c339, 0xffff2c3d}, + {0x8138c430, 0xffff2c3e}, + {0x8138c431, 0xffff2c3f}, + {0x8138c432, 0xffff2c40}, + {0x8138c433, 0xffff2c41}, + {0x8138c434, 0xffff2c42}, + {0x8138c435, 0xffff2c43}, + {0x8138c436, 0xffff2c44}, + {0x8138c437, 0xffff2c45}, + {0x8138c438, 0xffff2c46}, + {0x8138c439, 0xffff2c47}, + {0x8138c530, 0xffff2c48}, + {0x8138c531, 0xffff2c49}, + {0x8138c532, 0xffff2c4a}, + {0x8138c533, 0xffff2c4b}, + {0x8138c534, 0xffff2c4c}, + {0x8138c535, 0xffff2c4d}, + {0x8138c536, 0xffff2c4e}, + {0x8138c537, 0xffff2c4f}, + {0x8138c538, 0xffff2c50}, + {0x8138c539, 0xffff2c51}, + {0x8138c630, 0xffff2c52}, + {0x8138c631, 0xffff2c53}, + {0x8138c632, 0xffff2c54}, + {0x8138c633, 0xffff2c55}, + {0x8138c634, 0xffff2c56}, + {0x8138c635, 0xffff2c57}, + {0x8138c636, 0xffff2c58}, + {0x8138c637, 0xffff2c59}, + {0x8138c638, 0xffff2c5a}, + {0x8138c639, 0xffff2c5b}, + {0x8138c730, 0xffff2c5c}, + {0x8138c731, 0xffff2c5d}, + {0x8138c732, 0xffff2c5e}, + {0x8138c733, 0xffff2c5f}, + {0x8138c734, 0xffff2c60}, + {0x8138c735, 0xffff2c61}, + {0x8138c736, 0xffff2c62}, + {0x8138c737, 0xffff2c63}, + {0x8138c738, 0xffff2c64}, + {0x8138c739, 0xffff2c65}, + {0x8138c830, 0xffff2c66}, + {0x8138c831, 0xffff2c67}, + {0x8138c832, 0xffff2c68}, + {0x8138c833, 0xffff2c69}, + {0x8138c834, 0xffff2c6a}, + {0x8138c835, 0xffff2c6b}, + {0x8138c836, 0xffff2c6c}, + {0x8138c837, 0xffff2c6d}, + {0x8138c838, 0xffff2c6e}, + {0x8138c839, 0xffff2c6f}, + {0x8138c930, 0xffff2c70}, + {0x8138c931, 0xffff2c71}, + {0x8138c932, 0xffff2c72}, + {0x8138c933, 0xffff2c73}, + {0x8138c934, 0xffff2c74}, + {0x8138c935, 0xffff2c75}, + {0x8138c936, 0xffff2c76}, + {0x8138c937, 0xffff2c77}, + {0x8138c938, 0xffff2c78}, + {0x8138c939, 0xffff2c79}, + {0x8138ca30, 0xffff2c7a}, + {0x8138ca31, 0xffff2c7b}, + {0x8138ca32, 0xffff2c7c}, + {0x8138ca33, 0xffff2c7d}, + {0x8138ca34, 0xffff2c7e}, + {0x8138ca35, 0xffff2c7f}, + {0x8138ca36, 0xffff2c80}, + {0x8138ca37, 0xffff2c81}, + {0x8138ca38, 0xffff2c82}, + {0x8138ca39, 0xffff2c83}, + {0x8138cb30, 0xffff2c84}, + {0x8138cb31, 0xffff2c85}, + {0x8138cb32, 0xffff2c86}, + {0x8138cb33, 0xffff2c87}, + {0x8138cb34, 0xffff2c88}, + {0x8138cb35, 0xffff2c89}, + {0x8138cb36, 0xffff2c8a}, + {0x8138cb37, 0xffff2c8b}, + {0x8138cb38, 0xffff2c8c}, + {0x8138cb39, 0xffff2c8d}, + {0x8138cc30, 0xffff2c8e}, + {0x8138cc31, 0xffff2c8f}, + {0x8138cc32, 0xffff2c90}, + {0x8138cc33, 0xffff2c91}, + {0x8138cc34, 0xffff2c92}, + {0x8138cc35, 0xffff2c93}, + {0x8138cc36, 0xffff2c94}, + {0x8138cc37, 0xffff2c95}, + {0x8138cc38, 0xffff2c96}, + {0x8138cc39, 0xffff2c97}, + {0x8138cd30, 0xffff2c98}, + {0x8138cd31, 0xffff2c99}, + {0x8138cd32, 0xffff2c9a}, + {0x8138cd33, 0xffff2c9b}, + {0x8138cd34, 0xffff2c9c}, + {0x8138cd35, 0xffff2c9d}, + {0x8138cd36, 0xffff2c9e}, + {0x8138cd37, 0xffff2c9f}, + {0x8138cd38, 0xffff2ca0}, + {0x8138cd39, 0xffff2ca1}, + {0x8138ce30, 0xffff2ca2}, + {0x8138ce31, 0xffff2ca3}, + {0x8138ce32, 0xffff2ca4}, + {0x8138ce33, 0xffff2ca5}, + {0x8138ce34, 0xffff2ca6}, + {0x8138ce35, 0xffff2ca7}, + {0x8138ce36, 0xffff2ca8}, + {0x8138ce37, 0xffff2ca9}, + {0x8138ce38, 0xffff2caa}, + {0x8138ce39, 0xffff2cab}, + {0x8138cf30, 0xffff2cac}, + {0x8138cf31, 0xffff2cad}, + {0x8138cf32, 0xffff2cae}, + {0x8138cf33, 0xffff2caf}, + {0x8138cf34, 0xffff2cb0}, + {0x8138cf35, 0xffff2cb1}, + {0x8138cf36, 0xffff2cb2}, + {0x8138cf37, 0xffff2cb3}, + {0x8138cf38, 0xffff2cb4}, + {0x8138cf39, 0xffff2cb5}, + {0x8138d030, 0xffff2cb6}, + {0x8138d031, 0xffff2cb7}, + {0x8138d032, 0xffff2cb8}, + {0x8138d033, 0xffff2cb9}, + {0x8138d034, 0xffff2cba}, + {0x8138d035, 0xffff2cbb}, + {0x8138d036, 0xffff2cbc}, + {0x8138d037, 0xffff2cbd}, + {0x8138d038, 0xffff2cbe}, + {0x8138d039, 0xffff2cbf}, + {0x8138d130, 0xffff2cc0}, + {0x8138d131, 0xffff2cc1}, + {0x8138d132, 0xffff2cc2}, + {0x8138d133, 0xffff2cc3}, + {0x8138d134, 0xffff2cc4}, + {0x8138d135, 0xffff2cc5}, + {0x8138d136, 0xffff2cc6}, + {0x8138d137, 0xffff2cc7}, + {0x8138d138, 0xffff2cc8}, + {0x8138d139, 0xffff2cc9}, + {0x8138d230, 0xffff2cca}, + {0x8138d231, 0xffff2ccb}, + {0x8138d232, 0xffff2ccc}, + {0x8138d233, 0xffff2ccd}, + {0x8138d234, 0xffff2cce}, + {0x8138d235, 0xffff2ccf}, + {0x8138d236, 0xffff2cd0}, + {0x8138d237, 0xffff2cd1}, + {0x8138d238, 0xffff2cd2}, + {0x8138d239, 0xffff2cd3}, + {0x8138d330, 0xffff2cd4}, + {0x8138d331, 0xffff2cd5}, + {0x8138d332, 0xffff2cd6}, + {0x8138d333, 0xffff2cd7}, + {0x8138d334, 0xffff2cd8}, + {0x8138d335, 0xffff2cd9}, + {0x8138d336, 0xffff2cda}, + {0x8138d337, 0xffff2cdb}, + {0x8138d338, 0xffff2cdc}, + {0x8138d339, 0xffff2cdd}, + {0x8138d430, 0xffff2cde}, + {0x8138d431, 0xffff2cdf}, + {0x8138d432, 0xffff2ce0}, + {0x8138d433, 0xffff2ce1}, + {0x8138d434, 0xffff2ce2}, + {0x8138d435, 0xffff2ce3}, + {0x8138d436, 0xffff2ce4}, + {0x8138d437, 0xffff2ce5}, + {0x8138d438, 0xffff2ce6}, + {0x8138d439, 0xffff2ce7}, + {0x8138d530, 0xffff2ce8}, + {0x8138d531, 0xffff2ce9}, + {0x8138d532, 0xffff2cea}, + {0x8138d533, 0xffff2ceb}, + {0x8138d534, 0xffff2cec}, + {0x8138d535, 0xffff2ced}, + {0x8138d536, 0xffff2cee}, + {0x8138d537, 0xffff2cef}, + {0x8138d538, 0xffff2cf0}, + {0x8138d539, 0xffff2cf1}, + {0x8138d630, 0xffff2cf2}, + {0x8138d631, 0xffff2cf3}, + {0x8138d632, 0xffff2cf4}, + {0x8138d633, 0xffff2cf5}, + {0x8138d634, 0xffff2cf6}, + {0x8138d635, 0xffff2cf7}, + {0x8138d636, 0xffff2cf8}, + {0x8138d637, 0xffff2cf9}, + {0x8138d638, 0xffff2cfa}, + {0x8138d639, 0xffff2cfb}, + {0x8138d730, 0xffff2cfc}, + {0x8138d731, 0xffff2cfd}, + {0x8138d732, 0xffff2cfe}, + {0x8138d733, 0xffff2cff}, + {0x8138d734, 0xffff2d00}, + {0x8138d735, 0xffff2d01}, + {0x8138d736, 0xffff2d02}, + {0x8138d737, 0xffff2d03}, + {0x8138d738, 0xffff2d04}, + {0x8138d739, 0xffff2d05}, + {0x8138d830, 0xffff2d06}, + {0x8138d831, 0xffff2d07}, + {0x8138d832, 0xffff2d08}, + {0x8138d833, 0xffff2d09}, + {0x8138d834, 0xffff2d0a}, + {0x8138d835, 0xffff2d0b}, + {0x8138d836, 0xffff2d0c}, + {0x8138d837, 0xffff2d0d}, + {0x8138d838, 0xffff2d0e}, + {0x8138d839, 0xffff2d0f}, + {0x8138d930, 0xffff2d10}, + {0x8138d931, 0xffff2d11}, + {0x8138d932, 0xffff2d12}, + {0x8138d933, 0xffff2d13}, + {0x8138d934, 0xffff2d14}, + {0x8138d935, 0xffff2d15}, + {0x8138d936, 0xffff2d16}, + {0x8138d937, 0xffff2d17}, + {0x8138d938, 0xffff2d18}, + {0x8138d939, 0xffff2d19}, + {0x8138da30, 0xffff2d1a}, + {0x8138da31, 0xffff2d1b}, + {0x8138da32, 0xffff2d1c}, + {0x8138da33, 0xffff2d1d}, + {0x8138da34, 0xffff2d1e}, + {0x8138da35, 0xffff2d1f}, + {0x8138da36, 0xffff2d20}, + {0x8138da37, 0xffff2d21}, + {0x8138da38, 0xffff2d22}, + {0x8138da39, 0xffff2d23}, + {0x8138db30, 0xffff2d24}, + {0x8138db31, 0xffff2d25}, + {0x8138db32, 0xffff2d26}, + {0x8138db33, 0xffff2d27}, + {0x8138db34, 0xffff2d28}, + {0x8138db35, 0xffff2d29}, + {0x8138db36, 0xffff2d2a}, + {0x8138db37, 0xffff2d2b}, + {0x8138db38, 0xffff2d2c}, + {0x8138db39, 0xffff2d2d}, + {0x8138dc30, 0xffff2d2e}, + {0x8138dc31, 0xffff2d2f}, + {0x8138dc32, 0xffff2d30}, + {0x8138dc33, 0xffff2d31}, + {0x8138dc34, 0xffff2d32}, + {0x8138dc35, 0xffff2d33}, + {0x8138dc36, 0xffff2d34}, + {0x8138dc37, 0xffff2d35}, + {0x8138dc38, 0xffff2d36}, + {0x8138dc39, 0xffff2d37}, + {0x8138dd30, 0xffff2d38}, + {0x8138dd31, 0xffff2d39}, + {0x8138dd32, 0xffff2d3a}, + {0x8138dd33, 0xffff2d3b}, + {0x8138dd34, 0xffff2d3c}, + {0x8138dd35, 0xffff2d3d}, + {0x8138dd36, 0xffff2d3e}, + {0x8138dd37, 0xffff2d3f}, + {0x8138dd38, 0xffff2d40}, + {0x8138dd39, 0xffff2d41}, + {0x8138de30, 0xffff2d42}, + {0x8138de31, 0xffff2d43}, + {0x8138de32, 0xffff2d44}, + {0x8138de33, 0xffff2d45}, + {0x8138de34, 0xffff2d46}, + {0x8138de35, 0xffff2d47}, + {0x8138de36, 0xffff2d48}, + {0x8138de37, 0xffff2d49}, + {0x8138de38, 0xffff2d4a}, + {0x8138de39, 0xffff2d4b}, + {0x8138df30, 0xffff2d4c}, + {0x8138df31, 0xffff2d4d}, + {0x8138df32, 0xffff2d4e}, + {0x8138df33, 0xffff2d4f}, + {0x8138df34, 0xffff2d50}, + {0x8138df35, 0xffff2d51}, + {0x8138df36, 0xffff2d52}, + {0x8138df37, 0xffff2d53}, + {0x8138df38, 0xffff2d54}, + {0x8138df39, 0xffff2d55}, + {0x8138e030, 0xffff2d56}, + {0x8138e031, 0xffff2d57}, + {0x8138e032, 0xffff2d58}, + {0x8138e033, 0xffff2d59}, + {0x8138e034, 0xffff2d5a}, + {0x8138e035, 0xffff2d5b}, + {0x8138e036, 0xffff2d5c}, + {0x8138e037, 0xffff2d5d}, + {0x8138e038, 0xffff2d5e}, + {0x8138e039, 0xffff2d5f}, + {0x8138e130, 0xffff2d60}, + {0x8138e131, 0xffff2d61}, + {0x8138e132, 0xffff2d62}, + {0x8138e133, 0xffff2d63}, + {0x8138e134, 0xffff2d64}, + {0x8138e135, 0xffff2d65}, + {0x8138e136, 0xffff2d66}, + {0x8138e137, 0xffff2d67}, + {0x8138e138, 0xffff2d68}, + {0x8138e139, 0xffff2d69}, + {0x8138e230, 0xffff2d6a}, + {0x8138e231, 0xffff2d6b}, + {0x8138e232, 0xffff2d6c}, + {0x8138e233, 0xffff2d6d}, + {0x8138e234, 0xffff2d6e}, + {0x8138e235, 0xffff2d6f}, + {0x8138e236, 0xffff2d70}, + {0x8138e237, 0xffff2d71}, + {0x8138e238, 0xffff2d72}, + {0x8138e239, 0xffff2d73}, + {0x8138e330, 0xffff2d74}, + {0x8138e331, 0xffff2d75}, + {0x8138e332, 0xffff2d76}, + {0x8138e333, 0xffff2d77}, + {0x8138e334, 0xffff2d78}, + {0x8138e335, 0xffff2d79}, + {0x8138e336, 0xffff2d7a}, + {0x8138e337, 0xffff2d7b}, + {0x8138e338, 0xffff2d7c}, + {0x8138e339, 0xffff2d7d}, + {0x8138e430, 0xffff2d7e}, + {0x8138e431, 0xffff2d7f}, + {0x8138e432, 0xffff2d80}, + {0x8138e433, 0xffff2d81}, + {0x8138e434, 0xffff2d82}, + {0x8138e435, 0xffff2d83}, + {0x8138e436, 0xffff2d84}, + {0x8138e437, 0xffff2d85}, + {0x8138e438, 0xffff2d86}, + {0x8138e439, 0xffff2d87}, + {0x8138e530, 0xffff2d88}, + {0x8138e531, 0xffff2d89}, + {0x8138e532, 0xffff2d8a}, + {0x8138e533, 0xffff2d8b}, + {0x8138e534, 0xffff2d8c}, + {0x8138e535, 0xffff2d8d}, + {0x8138e536, 0xffff2d8e}, + {0x8138e537, 0xffff2d8f}, + {0x8138e538, 0xffff2d90}, + {0x8138e539, 0xffff2d91}, + {0x8138e630, 0xffff2d92}, + {0x8138e631, 0xffff2d93}, + {0x8138e632, 0xffff2d94}, + {0x8138e633, 0xffff2d95}, + {0x8138e634, 0xffff2d96}, + {0x8138e635, 0xffff2d97}, + {0x8138e636, 0xffff2d98}, + {0x8138e637, 0xffff2d99}, + {0x8138e638, 0xffff2d9a}, + {0x8138e639, 0xffff2d9b}, + {0x8138e730, 0xffff2d9c}, + {0x8138e731, 0xffff2d9d}, + {0x8138e732, 0xffff2d9e}, + {0x8138e733, 0xffff2d9f}, + {0x8138e734, 0xffff2da0}, + {0x8138e735, 0xffff2da1}, + {0x8138e736, 0xffff2da2}, + {0x8138e737, 0xffff2da3}, + {0x8138e738, 0xffff2da4}, + {0x8138e739, 0xffff2da5}, + {0x8138e830, 0xffff2da6}, + {0x8138e831, 0xffff2da7}, + {0x8138e832, 0xffff2da8}, + {0x8138e833, 0xffff2da9}, + {0x8138e834, 0xffff2daa}, + {0x8138e835, 0xffff2dab}, + {0x8138e836, 0xffff2dac}, + {0x8138e837, 0xffff2dad}, + {0x8138e838, 0xffff2dae}, + {0x8138e839, 0xffff2daf}, + {0x8138e930, 0xffff2db0}, + {0x8138e931, 0xffff2db1}, + {0x8138e932, 0xffff2db2}, + {0x8138e933, 0xffff2db3}, + {0x8138e934, 0xffff2db4}, + {0x8138e935, 0xffff2db5}, + {0x8138e936, 0xffff2db6}, + {0x8138e937, 0xffff2db7}, + {0x8138e938, 0xffff2db8}, + {0x8138e939, 0xffff2db9}, + {0x8138ea30, 0xffff2dba}, + {0x8138ea31, 0xffff2dbb}, + {0x8138ea32, 0xffff2dbc}, + {0x8138ea33, 0xffff2dbd}, + {0x8138ea34, 0xffff2dbe}, + {0x8138ea35, 0xffff2dbf}, + {0x8138ea36, 0xffff2dc0}, + {0x8138ea37, 0xffff2dc1}, + {0x8138ea38, 0xffff2dc2}, + {0x8138ea39, 0xffff2dc3}, + {0x8138eb30, 0xffff2dc4}, + {0x8138eb31, 0xffff2dc5}, + {0x8138eb32, 0xffff2dc6}, + {0x8138eb33, 0xffff2dc7}, + {0x8138eb34, 0xffff2dc8}, + {0x8138eb35, 0xffff2dc9}, + {0x8138eb36, 0xffff2dca}, + {0x8138eb37, 0xffff2dcb}, + {0x8138eb38, 0xffff2dcc}, + {0x8138eb39, 0xffff2dcd}, + {0x8138ec30, 0xffff2dce}, + {0x8138ec31, 0xffff2dcf}, + {0x8138ec32, 0xffff2dd0}, + {0x8138ec33, 0xffff2dd1}, + {0x8138ec34, 0xffff2dd2}, + {0x8138ec35, 0xffff2dd3}, + {0x8138ec36, 0xffff2dd4}, + {0x8138ec37, 0xffff2dd5}, + {0x8138ec38, 0xffff2dd6}, + {0x8138ec39, 0xffff2dd7}, + {0x8138ed30, 0xffff2dd8}, + {0x8138ed31, 0xffff2dd9}, + {0x8138ed32, 0xffff2dda}, + {0x8138ed33, 0xffff2ddb}, + {0x8138ed34, 0xffff2ddc}, + {0x8138ed35, 0xffff2ddd}, + {0x8138ed36, 0xffff2dde}, + {0x8138ed37, 0xffff2ddf}, + {0x8138ed38, 0xffff2de0}, + {0x8138ed39, 0xffff2de1}, + {0x8138ee30, 0xffff2de2}, + {0x8138ee31, 0xffff2de3}, + {0x8138ee32, 0xffff2de4}, + {0x8138ee33, 0xffff2de5}, + {0x8138ee34, 0xffff2de6}, + {0x8138ee35, 0xffff2de7}, + {0x8138ee36, 0xffff2de8}, + {0x8138ee37, 0xffff2de9}, + {0x8138ee38, 0xffff2dea}, + {0x8138ee39, 0xffff2deb}, + {0x8138ef30, 0xffff2dec}, + {0x8138ef31, 0xffff2ded}, + {0x8138ef32, 0xffff2dee}, + {0x8138ef33, 0xffff2def}, + {0x8138ef34, 0xffff2df0}, + {0x8138ef35, 0xffff2df1}, + {0x8138ef36, 0xffff2df2}, + {0x8138ef37, 0xffff2df3}, + {0x8138ef38, 0xffff2df4}, + {0x8138ef39, 0xffff2df5}, + {0x8138f030, 0xffff2df6}, + {0x8138f031, 0xffff2df7}, + {0x8138f032, 0xffff2df8}, + {0x8138f033, 0xffff2df9}, + {0x8138f034, 0xffff2dfa}, + {0x8138f035, 0xffff2dfb}, + {0x8138f036, 0xffff2dfc}, + {0x8138f037, 0xffff2dfd}, + {0x8138f038, 0xffff2dfe}, + {0x8138f039, 0xffff2dff}, + {0x8138f130, 0xffff2e00}, + {0x8138f131, 0xffff2e01}, + {0x8138f132, 0xffff2e02}, + {0x8138f133, 0xffff2e03}, + {0x8138f134, 0xffff2e04}, + {0x8138f135, 0xffff2e05}, + {0x8138f136, 0xffff2e06}, + {0x8138f137, 0xffff2e07}, + {0x8138f138, 0xffff2e08}, + {0x8138f139, 0xffff2e09}, + {0x8138f230, 0xffff2e0a}, + {0x8138f231, 0xffff2e0b}, + {0x8138f232, 0xffff2e0c}, + {0x8138f233, 0xffff2e0d}, + {0x8138f234, 0xffff2e0e}, + {0x8138f235, 0xffff2e0f}, + {0x8138f236, 0xffff2e10}, + {0x8138f237, 0xffff2e11}, + {0x8138f238, 0xffff2e12}, + {0x8138f239, 0xffff2e13}, + {0x8138f330, 0xffff2e14}, + {0x8138f331, 0xffff2e15}, + {0x8138f332, 0xffff2e16}, + {0x8138f333, 0xffff2e17}, + {0x8138f334, 0xffff2e18}, + {0x8138f335, 0xffff2e19}, + {0x8138f336, 0xffff2e1a}, + {0x8138f337, 0xffff2e1b}, + {0x8138f338, 0xffff2e1c}, + {0x8138f339, 0xffff2e1d}, + {0x8138f430, 0xffff2e1e}, + {0x8138f431, 0xffff2e1f}, + {0x8138f432, 0xffff2e20}, + {0x8138f433, 0xffff2e21}, + {0x8138f434, 0xffff2e22}, + {0x8138f435, 0xffff2e23}, + {0x8138f436, 0xffff2e24}, + {0x8138f437, 0xffff2e25}, + {0x8138f438, 0xffff2e26}, + {0x8138f439, 0xffff2e27}, + {0x8138f530, 0xffff2e28}, + {0x8138f531, 0xffff2e29}, + {0x8138f532, 0xffff2e2a}, + {0x8138f533, 0xffff2e2b}, + {0x8138f534, 0xffff2e2c}, + {0x8138f535, 0xffff2e2d}, + {0x8138f536, 0xffff2e2e}, + {0x8138f537, 0xffff2e2f}, + {0x8138f538, 0xffff2e30}, + {0x8138f539, 0xffff2e31}, + {0x8138f630, 0xffff2e32}, + {0x8138f631, 0xffff2e33}, + {0x8138f632, 0xffff2e34}, + {0x8138f633, 0xffff2e35}, + {0x8138f634, 0xffff2e36}, + {0x8138f635, 0xffff2e37}, + {0x8138f636, 0xffff2e38}, + {0x8138f637, 0xffff2e39}, + {0x8138f638, 0xffff2e3a}, + {0x8138f639, 0xffff2e3b}, + {0x8138f730, 0xffff2e3c}, + {0x8138f731, 0xffff2e3d}, + {0x8138f732, 0xffff2e3e}, + {0x8138f733, 0xffff2e3f}, + {0x8138f734, 0xffff2e40}, + {0x8138f735, 0xffff2e41}, + {0x8138f736, 0xffff2e42}, + {0x8138f737, 0xffff2e43}, + {0x8138f738, 0xffff2e44}, + {0x8138f739, 0xffff2e45}, + {0x8138f830, 0xffff2e46}, + {0x8138f831, 0xffff2e47}, + {0x8138f832, 0xffff2e48}, + {0x8138f833, 0xffff2e49}, + {0x8138f834, 0xffff2e4a}, + {0x8138f835, 0xffff2e4b}, + {0x8138f836, 0xffff2e4c}, + {0x8138f837, 0xffff2e4d}, + {0x8138f838, 0xffff2e4e}, + {0x8138f839, 0xffff2e4f}, + {0x8138f930, 0xffff2e50}, + {0x8138f931, 0xffff2e51}, + {0x8138f932, 0xffff2e52}, + {0x8138f933, 0xffff2e53}, + {0x8138f934, 0xffff2e54}, + {0x8138f935, 0xffff2e55}, + {0x8138f936, 0xffff2e56}, + {0x8138f937, 0xffff2e57}, + {0x8138f938, 0xffff2e58}, + {0x8138f939, 0xffff2e59}, + {0x8138fa30, 0xffff2e5a}, + {0x8138fa31, 0xffff2e5b}, + {0x8138fa32, 0xffff2e5c}, + {0x8138fa33, 0xffff2e5d}, + {0x8138fa34, 0xffff2e5e}, + {0x8138fa35, 0xffff2e5f}, + {0x8138fa36, 0xffff2e60}, + {0x8138fa37, 0xffff2e61}, + {0x8138fa38, 0xffff2e62}, + {0x8138fa39, 0xffff2e63}, + {0x8138fb30, 0xffff2e64}, + {0x8138fb31, 0xffff2e65}, + {0x8138fb32, 0xffff2e66}, + {0x8138fb33, 0xffff2e67}, + {0x8138fb34, 0xffff2e68}, + {0x8138fb35, 0xffff2e69}, + {0x8138fb36, 0xffff2e6a}, + {0x8138fb37, 0xffff2e6b}, + {0x8138fb38, 0xffff2e6c}, + {0x8138fb39, 0xffff2e6d}, + {0x8138fc30, 0xffff2e6e}, + {0x8138fc31, 0xffff2e6f}, + {0x8138fc32, 0xffff2e70}, + {0x8138fc33, 0xffff2e71}, + {0x8138fc34, 0xffff2e72}, + {0x8138fc35, 0xffff2e73}, + {0x8138fc36, 0xffff2e74}, + {0x8138fc37, 0xffff2e75}, + {0x8138fc38, 0xffff2e76}, + {0x8138fc39, 0xffff2e77}, + {0x8138fd30, 0xffff2e78}, + {0x8138fd31, 0xffff2e79}, + {0x8138fd32, 0xffff2e7a}, + {0x8138fd33, 0xffff2e7b}, + {0x8138fd34, 0xffff2e7c}, + {0x8138fd35, 0xffff2e7d}, + {0x8138fd36, 0xffff2e7e}, + {0x8138fd37, 0xffff2e7f}, + {0x8138fd38, 0xffff2e80}, + {0x8138fd39, 0xffff2e82}, + {0x8138fe30, 0xffff2e83}, + {0x8138fe31, 0xffff2e85}, + {0x8138fe32, 0xffff2e86}, + {0x8138fe33, 0xffff2e87}, + {0x8138fe34, 0xffff2e89}, + {0x8138fe35, 0xffff2e8a}, + {0x8138fe36, 0xffff2e8d}, + {0x8138fe37, 0xffff2e8e}, + {0x8138fe38, 0xffff2e8f}, + {0x8138fe39, 0xffff2e90}, + {0x81398130, 0xffff2e91}, + {0x81398131, 0xffff2e92}, + {0x81398132, 0xffff2e93}, + {0x81398133, 0xffff2e94}, + {0x81398134, 0xffff2e95}, + {0x81398135, 0xffff2e96}, + {0x81398136, 0xffff2e98}, + {0x81398137, 0xffff2e99}, + {0x81398138, 0xffff2e9a}, + {0x81398139, 0xffff2e9b}, + {0x81398230, 0xffff2e9c}, + {0x81398231, 0xffff2e9d}, + {0x81398232, 0xffff2e9e}, + {0x81398233, 0xffff2e9f}, + {0x81398234, 0xffff2ea0}, + {0x81398235, 0xffff2ea1}, + {0x81398236, 0xffff2ea2}, + {0x81398237, 0xffff2ea3}, + {0x81398238, 0xffff2ea4}, + {0x81398239, 0xffff2ea5}, + {0x81398330, 0xffff2ea6}, + {0x81398331, 0xffff2ea8}, + {0x81398332, 0xffff2ea9}, + {0x81398333, 0xffff2eab}, + {0x81398334, 0xffff2eac}, + {0x81398335, 0xffff2ead}, + {0x81398336, 0xffff2eaf}, + {0x81398337, 0xffff2eb0}, + {0x81398338, 0xffff2eb1}, + {0x81398339, 0xffff2eb2}, + {0x81398430, 0xffff2eb4}, + {0x81398431, 0xffff2eb5}, + {0x81398432, 0xffff2eb8}, + {0x81398433, 0xffff2eb9}, + {0x81398434, 0xffff2eba}, + {0x81398435, 0xffff2ebc}, + {0x81398436, 0xffff2ebd}, + {0x81398437, 0xffff2ebe}, + {0x81398438, 0xffff2ebf}, + {0x81398439, 0xffff2ec0}, + {0x81398530, 0xffff2ec1}, + {0x81398531, 0xffff2ec2}, + {0x81398532, 0xffff2ec3}, + {0x81398533, 0xffff2ec4}, + {0x81398534, 0xffff2ec5}, + {0x81398535, 0xffff2ec6}, + {0x81398536, 0xffff2ec7}, + {0x81398537, 0xffff2ec8}, + {0x81398538, 0xffff2ec9}, + {0x81398539, 0xffff2ecb}, + {0x81398630, 0xffff2ecc}, + {0x81398631, 0xffff2ecd}, + {0x81398632, 0xffff2ece}, + {0x81398633, 0xffff2ecf}, + {0x81398634, 0xffff2ed0}, + {0x81398635, 0xffff2ed1}, + {0x81398636, 0xffff2ed2}, + {0x81398637, 0xffff2ed3}, + {0x81398638, 0xffff2ed4}, + {0x81398639, 0xffff2ed5}, + {0x81398730, 0xffff2ed6}, + {0x81398731, 0xffff2ed7}, + {0x81398732, 0xffff2ed8}, + {0x81398733, 0xffff2ed9}, + {0x81398734, 0xffff2eda}, + {0x81398735, 0xffff2edb}, + {0x81398736, 0xffff2edc}, + {0x81398737, 0xffff2edd}, + {0x81398738, 0xffff2ede}, + {0x81398739, 0xffff2edf}, + {0x81398830, 0xffff2ee0}, + {0x81398831, 0xffff2ee1}, + {0x81398832, 0xffff2ee2}, + {0x81398833, 0xffff2ee3}, + {0x81398834, 0xffff2ee4}, + {0x81398835, 0xffff2ee5}, + {0x81398836, 0xffff2ee6}, + {0x81398837, 0xffff2ee7}, + {0x81398838, 0xffff2ee8}, + {0x81398839, 0xffff2ee9}, + {0x81398930, 0xffff2eea}, + {0x81398931, 0xffff2eeb}, + {0x81398932, 0xffff2eec}, + {0x81398933, 0xffff2eed}, + {0x81398934, 0xffff2eee}, + {0x81398935, 0xffff2eef}, + {0x81398936, 0xffff2ef0}, + {0x81398937, 0xffff2ef1}, + {0x81398938, 0xffff2ef2}, + {0x81398939, 0xffff2ef3}, + {0x81398a30, 0xffff2ef4}, + {0x81398a31, 0xffff2ef5}, + {0x81398a32, 0xffff2ef6}, + {0x81398a33, 0xffff2ef7}, + {0x81398a34, 0xffff2ef8}, + {0x81398a35, 0xffff2ef9}, + {0x81398a36, 0xffff2efa}, + {0x81398a37, 0xffff2efb}, + {0x81398a38, 0xffff2efc}, + {0x81398a39, 0xffff2efd}, + {0x81398b30, 0xffff2efe}, + {0x81398b31, 0xffff2eff}, + {0x81398b32, 0xffff2f00}, + {0x81398b33, 0xffff2f01}, + {0x81398b34, 0xffff2f02}, + {0x81398b35, 0xffff2f03}, + {0x81398b36, 0xffff2f04}, + {0x81398b37, 0xffff2f05}, + {0x81398b38, 0xffff2f06}, + {0x81398b39, 0xffff2f07}, + {0x81398c30, 0xffff2f08}, + {0x81398c31, 0xffff2f09}, + {0x81398c32, 0xffff2f0a}, + {0x81398c33, 0xffff2f0b}, + {0x81398c34, 0xffff2f0c}, + {0x81398c35, 0xffff2f0d}, + {0x81398c36, 0xffff2f0e}, + {0x81398c37, 0xffff2f0f}, + {0x81398c38, 0xffff2f10}, + {0x81398c39, 0xffff2f11}, + {0x81398d30, 0xffff2f12}, + {0x81398d31, 0xffff2f13}, + {0x81398d32, 0xffff2f14}, + {0x81398d33, 0xffff2f15}, + {0x81398d34, 0xffff2f16}, + {0x81398d35, 0xffff2f17}, + {0x81398d36, 0xffff2f18}, + {0x81398d37, 0xffff2f19}, + {0x81398d38, 0xffff2f1a}, + {0x81398d39, 0xffff2f1b}, + {0x81398e30, 0xffff2f1c}, + {0x81398e31, 0xffff2f1d}, + {0x81398e32, 0xffff2f1e}, + {0x81398e33, 0xffff2f1f}, + {0x81398e34, 0xffff2f20}, + {0x81398e35, 0xffff2f21}, + {0x81398e36, 0xffff2f22}, + {0x81398e37, 0xffff2f23}, + {0x81398e38, 0xffff2f24}, + {0x81398e39, 0xffff2f25}, + {0x81398f30, 0xffff2f26}, + {0x81398f31, 0xffff2f27}, + {0x81398f32, 0xffff2f28}, + {0x81398f33, 0xffff2f29}, + {0x81398f34, 0xffff2f2a}, + {0x81398f35, 0xffff2f2b}, + {0x81398f36, 0xffff2f2c}, + {0x81398f37, 0xffff2f2d}, + {0x81398f38, 0xffff2f2e}, + {0x81398f39, 0xffff2f2f}, + {0x81399030, 0xffff2f30}, + {0x81399031, 0xffff2f31}, + {0x81399032, 0xffff2f32}, + {0x81399033, 0xffff2f33}, + {0x81399034, 0xffff2f34}, + {0x81399035, 0xffff2f35}, + {0x81399036, 0xffff2f36}, + {0x81399037, 0xffff2f37}, + {0x81399038, 0xffff2f38}, + {0x81399039, 0xffff2f39}, + {0x81399130, 0xffff2f3a}, + {0x81399131, 0xffff2f3b}, + {0x81399132, 0xffff2f3c}, + {0x81399133, 0xffff2f3d}, + {0x81399134, 0xffff2f3e}, + {0x81399135, 0xffff2f3f}, + {0x81399136, 0xffff2f40}, + {0x81399137, 0xffff2f41}, + {0x81399138, 0xffff2f42}, + {0x81399139, 0xffff2f43}, + {0x81399230, 0xffff2f44}, + {0x81399231, 0xffff2f45}, + {0x81399232, 0xffff2f46}, + {0x81399233, 0xffff2f47}, + {0x81399234, 0xffff2f48}, + {0x81399235, 0xffff2f49}, + {0x81399236, 0xffff2f4a}, + {0x81399237, 0xffff2f4b}, + {0x81399238, 0xffff2f4c}, + {0x81399239, 0xffff2f4d}, + {0x81399330, 0xffff2f4e}, + {0x81399331, 0xffff2f4f}, + {0x81399332, 0xffff2f50}, + {0x81399333, 0xffff2f51}, + {0x81399334, 0xffff2f52}, + {0x81399335, 0xffff2f53}, + {0x81399336, 0xffff2f54}, + {0x81399337, 0xffff2f55}, + {0x81399338, 0xffff2f56}, + {0x81399339, 0xffff2f57}, + {0x81399430, 0xffff2f58}, + {0x81399431, 0xffff2f59}, + {0x81399432, 0xffff2f5a}, + {0x81399433, 0xffff2f5b}, + {0x81399434, 0xffff2f5c}, + {0x81399435, 0xffff2f5d}, + {0x81399436, 0xffff2f5e}, + {0x81399437, 0xffff2f5f}, + {0x81399438, 0xffff2f60}, + {0x81399439, 0xffff2f61}, + {0x81399530, 0xffff2f62}, + {0x81399531, 0xffff2f63}, + {0x81399532, 0xffff2f64}, + {0x81399533, 0xffff2f65}, + {0x81399534, 0xffff2f66}, + {0x81399535, 0xffff2f67}, + {0x81399536, 0xffff2f68}, + {0x81399537, 0xffff2f69}, + {0x81399538, 0xffff2f6a}, + {0x81399539, 0xffff2f6b}, + {0x81399630, 0xffff2f6c}, + {0x81399631, 0xffff2f6d}, + {0x81399632, 0xffff2f6e}, + {0x81399633, 0xffff2f6f}, + {0x81399634, 0xffff2f70}, + {0x81399635, 0xffff2f71}, + {0x81399636, 0xffff2f72}, + {0x81399637, 0xffff2f73}, + {0x81399638, 0xffff2f74}, + {0x81399639, 0xffff2f75}, + {0x81399730, 0xffff2f76}, + {0x81399731, 0xffff2f77}, + {0x81399732, 0xffff2f78}, + {0x81399733, 0xffff2f79}, + {0x81399734, 0xffff2f7a}, + {0x81399735, 0xffff2f7b}, + {0x81399736, 0xffff2f7c}, + {0x81399737, 0xffff2f7d}, + {0x81399738, 0xffff2f7e}, + {0x81399739, 0xffff2f7f}, + {0x81399830, 0xffff2f80}, + {0x81399831, 0xffff2f81}, + {0x81399832, 0xffff2f82}, + {0x81399833, 0xffff2f83}, + {0x81399834, 0xffff2f84}, + {0x81399835, 0xffff2f85}, + {0x81399836, 0xffff2f86}, + {0x81399837, 0xffff2f87}, + {0x81399838, 0xffff2f88}, + {0x81399839, 0xffff2f89}, + {0x81399930, 0xffff2f8a}, + {0x81399931, 0xffff2f8b}, + {0x81399932, 0xffff2f8c}, + {0x81399933, 0xffff2f8d}, + {0x81399934, 0xffff2f8e}, + {0x81399935, 0xffff2f8f}, + {0x81399936, 0xffff2f90}, + {0x81399937, 0xffff2f91}, + {0x81399938, 0xffff2f92}, + {0x81399939, 0xffff2f93}, + {0x81399a30, 0xffff2f94}, + {0x81399a31, 0xffff2f95}, + {0x81399a32, 0xffff2f96}, + {0x81399a33, 0xffff2f97}, + {0x81399a34, 0xffff2f98}, + {0x81399a35, 0xffff2f99}, + {0x81399a36, 0xffff2f9a}, + {0x81399a37, 0xffff2f9b}, + {0x81399a38, 0xffff2f9c}, + {0x81399a39, 0xffff2f9d}, + {0x81399b30, 0xffff2f9e}, + {0x81399b31, 0xffff2f9f}, + {0x81399b32, 0xffff2fa0}, + {0x81399b33, 0xffff2fa1}, + {0x81399b34, 0xffff2fa2}, + {0x81399b35, 0xffff2fa3}, + {0x81399b36, 0xffff2fa4}, + {0x81399b37, 0xffff2fa5}, + {0x81399b38, 0xffff2fa6}, + {0x81399b39, 0xffff2fa7}, + {0x81399c30, 0xffff2fa8}, + {0x81399c31, 0xffff2fa9}, + {0x81399c32, 0xffff2faa}, + {0x81399c33, 0xffff2fab}, + {0x81399c34, 0xffff2fac}, + {0x81399c35, 0xffff2fad}, + {0x81399c36, 0xffff2fae}, + {0x81399c37, 0xffff2faf}, + {0x81399c38, 0xffff2fb0}, + {0x81399c39, 0xffff2fb1}, + {0x81399d30, 0xffff2fb2}, + {0x81399d31, 0xffff2fb3}, + {0x81399d32, 0xffff2fb4}, + {0x81399d33, 0xffff2fb5}, + {0x81399d34, 0xffff2fb6}, + {0x81399d35, 0xffff2fb7}, + {0x81399d36, 0xffff2fb8}, + {0x81399d37, 0xffff2fb9}, + {0x81399d38, 0xffff2fba}, + {0x81399d39, 0xffff2fbb}, + {0x81399e30, 0xffff2fbc}, + {0x81399e31, 0xffff2fbd}, + {0x81399e32, 0xffff2fbe}, + {0x81399e33, 0xffff2fbf}, + {0x81399e34, 0xffff2fc0}, + {0x81399e35, 0xffff2fc1}, + {0x81399e36, 0xffff2fc2}, + {0x81399e37, 0xffff2fc3}, + {0x81399e38, 0xffff2fc4}, + {0x81399e39, 0xffff2fc5}, + {0x81399f30, 0xffff2fc6}, + {0x81399f31, 0xffff2fc7}, + {0x81399f32, 0xffff2fc8}, + {0x81399f33, 0xffff2fc9}, + {0x81399f34, 0xffff2fca}, + {0x81399f35, 0xffff2fcb}, + {0x81399f36, 0xffff2fcc}, + {0x81399f37, 0xffff2fcd}, + {0x81399f38, 0xffff2fce}, + {0x81399f39, 0xffff2fcf}, + {0x8139a030, 0xffff2fd0}, + {0x8139a031, 0xffff2fd1}, + {0x8139a032, 0xffff2fd2}, + {0x8139a033, 0xffff2fd3}, + {0x8139a034, 0xffff2fd4}, + {0x8139a035, 0xffff2fd5}, + {0x8139a036, 0xffff2fd6}, + {0x8139a037, 0xffff2fd7}, + {0x8139a038, 0xffff2fd8}, + {0x8139a039, 0xffff2fd9}, + {0x8139a130, 0xffff2fda}, + {0x8139a131, 0xffff2fdb}, + {0x8139a132, 0xffff2fdc}, + {0x8139a133, 0xffff2fdd}, + {0x8139a134, 0xffff2fde}, + {0x8139a135, 0xffff2fdf}, + {0x8139a136, 0xffff2fe0}, + {0x8139a137, 0xffff2fe1}, + {0x8139a138, 0xffff2fe2}, + {0x8139a139, 0xffff2fe3}, + {0x8139a230, 0xffff2fe4}, + {0x8139a231, 0xffff2fe5}, + {0x8139a232, 0xffff2fe6}, + {0x8139a233, 0xffff2fe7}, + {0x8139a234, 0xffff2fe8}, + {0x8139a235, 0xffff2fe9}, + {0x8139a236, 0xffff2fea}, + {0x8139a237, 0xffff2feb}, + {0x8139a238, 0xffff2fec}, + {0x8139a239, 0xffff2fed}, + {0x8139a330, 0xffff2fee}, + {0x8139a331, 0xffff2fef}, + {0x8139a332, 0xffff2ffc}, + {0x8139a333, 0xffff2ffd}, + {0x8139a334, 0xffff2ffe}, + {0x8139a335, 0xffff2fff}, + {0x8139a336, 0xffff3004}, + {0x8139a337, 0xffff3018}, + {0x8139a338, 0xffff3019}, + {0x8139a339, 0xffff301a}, + {0x8139a430, 0xffff301b}, + {0x8139a431, 0xffff301c}, + {0x8139a432, 0xffff301f}, + {0x8139a433, 0xffff3020}, + {0x8139a530, 0xffff3030}, + {0x8139a531, 0xffff3031}, + {0x8139a532, 0xffff3032}, + {0x8139a533, 0x373d}, + {0x8139a534, 0x373d}, + {0x8139a535, 0x373f}, + {0x8139a536, 0xffff3036}, + {0x8139a537, 0xffff3037}, + {0x8139a538, 0xffff3038}, + {0x8139a539, 0xffff3039}, + {0x8139a630, 0xffff303a}, + {0x8139a631, 0xffff303b}, + {0x8139a632, 0xffff303c}, + {0x8139a633, 0xffff303d}, + {0x8139a634, 0xffff303f}, + {0x8139a635, 0xffff3040}, + {0x8139a636, 0x36fe}, + {0x8139a637, 0xffff3095}, + {0x8139a638, 0xffff3096}, + {0x8139a639, 0xffff3097}, + {0x8139a730, 0xffff3098}, + {0x8139a733, 0xffff309f}, + {0x8139a734, 0xffff30a0}, + {0x8139a735, 0x3730}, + {0x8139a736, 0x3731}, + {0x8139a737, 0x3732}, + {0x8139a738, 0x3733}, + {0x8139a739, 0xffff30fb}, + {0x8139a830, 0xffff30ff}, + {0x8139a831, 0xffff3100}, + {0x8139a832, 0xffff3101}, + {0x8139a833, 0xffff3102}, + {0x8139a834, 0xffff3103}, + {0x8139a835, 0xffff3104}, + {0x8139a836, 0xffff312a}, + {0x8139a837, 0xffff312b}, + {0x8139a838, 0xffff312c}, + {0x8139a839, 0xffff312d}, + {0x8139a930, 0xffff312e}, + {0x8139a931, 0xffff312f}, + {0x8139a932, 0xffff3130}, + {0x8139a933, 0xffff3131}, + {0x8139a934, 0xffff3132}, + {0x8139a935, 0xffff3133}, + {0x8139a936, 0xffff3134}, + {0x8139a937, 0xffff3135}, + {0x8139a938, 0xffff3136}, + {0x8139a939, 0xffff3137}, + {0x8139aa30, 0xffff3138}, + {0x8139aa31, 0xffff3139}, + {0x8139aa32, 0xffff313a}, + {0x8139aa33, 0xffff313b}, + {0x8139aa34, 0xffff313c}, + {0x8139aa35, 0xffff313d}, + {0x8139aa36, 0xffff313e}, + {0x8139aa37, 0xffff313f}, + {0x8139aa38, 0xffff3140}, + {0x8139aa39, 0xffff3141}, + {0x8139ab30, 0xffff3142}, + {0x8139ab31, 0xffff3143}, + {0x8139ab32, 0xffff3144}, + {0x8139ab33, 0xffff3145}, + {0x8139ab34, 0xffff3146}, + {0x8139ab35, 0xffff3147}, + {0x8139ab36, 0xffff3148}, + {0x8139ab37, 0xffff3149}, + {0x8139ab38, 0xffff314a}, + {0x8139ab39, 0xffff314b}, + {0x8139ac30, 0xffff314c}, + {0x8139ac31, 0xffff314d}, + {0x8139ac32, 0xffff314e}, + {0x8139ac33, 0xffff314f}, + {0x8139ac34, 0xffff3150}, + {0x8139ac35, 0xffff3151}, + {0x8139ac36, 0xffff3152}, + {0x8139ac37, 0xffff3153}, + {0x8139ac38, 0xffff3154}, + {0x8139ac39, 0xffff3155}, + {0x8139ad30, 0xffff3156}, + {0x8139ad31, 0xffff3157}, + {0x8139ad32, 0xffff3158}, + {0x8139ad33, 0xffff3159}, + {0x8139ad34, 0xffff315a}, + {0x8139ad35, 0xffff315b}, + {0x8139ad36, 0xffff315c}, + {0x8139ad37, 0xffff315d}, + {0x8139ad38, 0xffff315e}, + {0x8139ad39, 0xffff315f}, + {0x8139ae30, 0xffff3160}, + {0x8139ae31, 0xffff3161}, + {0x8139ae32, 0xffff3162}, + {0x8139ae33, 0xffff3163}, + {0x8139ae34, 0xffff3164}, + {0x8139ae35, 0xffff3165}, + {0x8139ae36, 0xffff3166}, + {0x8139ae37, 0xffff3167}, + {0x8139ae38, 0xffff3168}, + {0x8139ae39, 0xffff3169}, + {0x8139af30, 0xffff316a}, + {0x8139af31, 0xffff316b}, + {0x8139af32, 0xffff316c}, + {0x8139af33, 0xffff316d}, + {0x8139af34, 0xffff316e}, + {0x8139af35, 0xffff316f}, + {0x8139af36, 0xffff3170}, + {0x8139af37, 0xffff3171}, + {0x8139af38, 0xffff3172}, + {0x8139af39, 0xffff3173}, + {0x8139b030, 0xffff3174}, + {0x8139b031, 0xffff3175}, + {0x8139b032, 0xffff3176}, + {0x8139b033, 0xffff3177}, + {0x8139b034, 0xffff3178}, + {0x8139b035, 0xffff3179}, + {0x8139b036, 0xffff317a}, + {0x8139b037, 0xffff317b}, + {0x8139b038, 0xffff317c}, + {0x8139b039, 0xffff317d}, + {0x8139b130, 0xffff317e}, + {0x8139b131, 0xffff317f}, + {0x8139b132, 0xffff3180}, + {0x8139b133, 0xffff3181}, + {0x8139b134, 0xffff3182}, + {0x8139b135, 0xffff3183}, + {0x8139b136, 0xffff3184}, + {0x8139b137, 0xffff3185}, + {0x8139b138, 0xffff3186}, + {0x8139b139, 0xffff3187}, + {0x8139b230, 0xffff3188}, + {0x8139b231, 0xffff3189}, + {0x8139b232, 0xffff318a}, + {0x8139b233, 0xffff318b}, + {0x8139b234, 0xffff318c}, + {0x8139b235, 0xffff318d}, + {0x8139b236, 0xffff318e}, + {0x8139b237, 0xffff318f}, + {0x8139b238, 0xffff3190}, + {0x8139b239, 0xffff3191}, + {0x8139b330, 0xffff3192}, + {0x8139b331, 0xffff3193}, + {0x8139b332, 0xffff3194}, + {0x8139b333, 0xffff3195}, + {0x8139b334, 0xffff3196}, + {0x8139b335, 0xffff3197}, + {0x8139b336, 0xffff3198}, + {0x8139b337, 0xffff3199}, + {0x8139b338, 0xffff319a}, + {0x8139b339, 0xffff319b}, + {0x8139b430, 0xffff319c}, + {0x8139b431, 0xffff319d}, + {0x8139b432, 0xffff319e}, + {0x8139b433, 0xffff319f}, + {0x8139b434, 0xffff31a0}, + {0x8139b435, 0xffff31a1}, + {0x8139b436, 0xffff31a2}, + {0x8139b437, 0xffff31a3}, + {0x8139b438, 0xffff31a4}, + {0x8139b439, 0xffff31a5}, + {0x8139b530, 0xffff31a6}, + {0x8139b531, 0xffff31a7}, + {0x8139b532, 0xffff31a8}, + {0x8139b533, 0xffff31a9}, + {0x8139b534, 0xffff31aa}, + {0x8139b535, 0xffff31ab}, + {0x8139b536, 0xffff31ac}, + {0x8139b537, 0xffff31ad}, + {0x8139b538, 0xffff31ae}, + {0x8139b539, 0xffff31af}, + {0x8139b630, 0xffff31b0}, + {0x8139b631, 0xffff31b1}, + {0x8139b632, 0xffff31b2}, + {0x8139b633, 0xffff31b3}, + {0x8139b634, 0xffff31b4}, + {0x8139b635, 0xffff31b5}, + {0x8139b636, 0xffff31b6}, + {0x8139b637, 0xffff31b7}, + {0x8139b638, 0xffff31b8}, + {0x8139b639, 0xffff31b9}, + {0x8139b730, 0xffff31ba}, + {0x8139b731, 0xffff31bb}, + {0x8139b732, 0xffff31bc}, + {0x8139b733, 0xffff31bd}, + {0x8139b734, 0xffff31be}, + {0x8139b735, 0xffff31bf}, + {0x8139b736, 0xffff31c0}, + {0x8139b737, 0xffff31c1}, + {0x8139b738, 0xffff31c2}, + {0x8139b739, 0xffff31c3}, + {0x8139b830, 0xffff31c4}, + {0x8139b831, 0xffff31c5}, + {0x8139b832, 0xffff31c6}, + {0x8139b833, 0xffff31c7}, + {0x8139b834, 0xffff31c8}, + {0x8139b835, 0xffff31c9}, + {0x8139b836, 0xffff31ca}, + {0x8139b837, 0xffff31cb}, + {0x8139b838, 0xffff31cc}, + {0x8139b839, 0xffff31cd}, + {0x8139b930, 0xffff31ce}, + {0x8139b931, 0xffff31cf}, + {0x8139b932, 0xffff31d0}, + {0x8139b933, 0xffff31d1}, + {0x8139b934, 0xffff31d2}, + {0x8139b935, 0xffff31d3}, + {0x8139b936, 0xffff31d4}, + {0x8139b937, 0xffff31d5}, + {0x8139b938, 0xffff31d6}, + {0x8139b939, 0xffff31d7}, + {0x8139ba30, 0xffff31d8}, + {0x8139ba31, 0xffff31d9}, + {0x8139ba32, 0xffff31da}, + {0x8139ba33, 0xffff31db}, + {0x8139ba34, 0xffff31dc}, + {0x8139ba35, 0xffff31dd}, + {0x8139ba36, 0xffff31de}, + {0x8139ba37, 0xffff31df}, + {0x8139ba38, 0xffff31e0}, + {0x8139ba39, 0xffff31e1}, + {0x8139bb30, 0xffff31e2}, + {0x8139bb31, 0xffff31e3}, + {0x8139bb32, 0xffff31e4}, + {0x8139bb33, 0xffff31e5}, + {0x8139bb34, 0xffff31e6}, + {0x8139bb35, 0xffff31e7}, + {0x8139bb36, 0xffff31e8}, + {0x8139bb37, 0xffff31e9}, + {0x8139bb38, 0xffff31ea}, + {0x8139bb39, 0xffff31eb}, + {0x8139bc30, 0xffff31ec}, + {0x8139bc31, 0xffff31ed}, + {0x8139bc32, 0xffff31ee}, + {0x8139bc33, 0xffff31ef}, + {0x8139bc34, 0xffff31f0}, + {0x8139bc35, 0xffff31f1}, + {0x8139bc36, 0xffff31f2}, + {0x8139bc37, 0xffff31f3}, + {0x8139bc38, 0xffff31f4}, + {0x8139bc39, 0xffff31f5}, + {0x8139bd30, 0xffff31f6}, + {0x8139bd31, 0xffff31f7}, + {0x8139bd32, 0xffff31f8}, + {0x8139bd33, 0xffff31f9}, + {0x8139bd34, 0xffff31fa}, + {0x8139bd35, 0xffff31fb}, + {0x8139bd36, 0xffff31fc}, + {0x8139bd37, 0xffff31fd}, + {0x8139bd38, 0xffff31fe}, + {0x8139bd39, 0xffff31ff}, + {0x8139be30, 0xffff3200}, + {0x8139be31, 0xffff3201}, + {0x8139be32, 0xffff3202}, + {0x8139be33, 0xffff3203}, + {0x8139be34, 0xffff3204}, + {0x8139be35, 0xffff3205}, + {0x8139be36, 0xffff3206}, + {0x8139be37, 0xffff3207}, + {0x8139be38, 0xffff3208}, + {0x8139be39, 0xffff3209}, + {0x8139bf30, 0xffff320a}, + {0x8139bf31, 0xffff320b}, + {0x8139bf32, 0xffff320c}, + {0x8139bf33, 0xffff320d}, + {0x8139bf34, 0xffff320e}, + {0x8139bf35, 0xffff320f}, + {0x8139bf36, 0xffff3210}, + {0x8139bf37, 0xffff3211}, + {0x8139bf38, 0xffff3212}, + {0x8139bf39, 0xffff3213}, + {0x8139c030, 0xffff3214}, + {0x8139c031, 0xffff3215}, + {0x8139c032, 0xffff3216}, + {0x8139c033, 0xffff3217}, + {0x8139c034, 0xffff3218}, + {0x8139c035, 0xffff3219}, + {0x8139c036, 0xffff321a}, + {0x8139c037, 0xffff321b}, + {0x8139c038, 0xffff321c}, + {0x8139c039, 0xffff321d}, + {0x8139c130, 0xffff321e}, + {0x8139c131, 0xffff321f}, + {0x8139c132, 0xffff322a}, + {0x8139c133, 0xffff322b}, + {0x8139c134, 0xffff322c}, + {0x8139c135, 0xffff322d}, + {0x8139c136, 0xffff322e}, + {0x8139c137, 0xffff322f}, + {0x8139c138, 0xffff3230}, + {0x8139c139, 0xffff3232}, + {0x8139c230, 0xffff3233}, + {0x8139c231, 0xffff3234}, + {0x8139c232, 0xffff3235}, + {0x8139c233, 0xffff3236}, + {0x8139c234, 0xffff3237}, + {0x8139c235, 0xffff3238}, + {0x8139c236, 0xffff3239}, + {0x8139c237, 0xffff323a}, + {0x8139c238, 0xffff323b}, + {0x8139c239, 0xffff323c}, + {0x8139c330, 0xffff323d}, + {0x8139c331, 0xffff323e}, + {0x8139c332, 0xffff323f}, + {0x8139c333, 0xffff3240}, + {0x8139c334, 0xffff3241}, + {0x8139c335, 0xffff3242}, + {0x8139c336, 0xffff3243}, + {0x8139c337, 0xffff3244}, + {0x8139c338, 0xffff3245}, + {0x8139c339, 0xffff3246}, + {0x8139c430, 0xffff3247}, + {0x8139c431, 0xffff3248}, + {0x8139c432, 0xffff3249}, + {0x8139c433, 0xffff324a}, + {0x8139c434, 0xffff324b}, + {0x8139c435, 0xffff324c}, + {0x8139c436, 0xffff324d}, + {0x8139c437, 0xffff324e}, + {0x8139c438, 0xffff324f}, + {0x8139c439, 0xffff3250}, + {0x8139c530, 0xffff3251}, + {0x8139c531, 0xffff3252}, + {0x8139c532, 0xffff3253}, + {0x8139c533, 0xffff3254}, + {0x8139c534, 0xffff3255}, + {0x8139c535, 0xffff3256}, + {0x8139c536, 0xffff3257}, + {0x8139c537, 0xffff3258}, + {0x8139c538, 0xffff3259}, + {0x8139c539, 0xffff325a}, + {0x8139c630, 0xffff325b}, + {0x8139c631, 0xffff325c}, + {0x8139c632, 0xffff325d}, + {0x8139c633, 0xffff325e}, + {0x8139c634, 0xffff325f}, + {0x8139c635, 0xffff3260}, + {0x8139c636, 0xffff3261}, + {0x8139c637, 0xffff3262}, + {0x8139c638, 0xffff3263}, + {0x8139c639, 0xffff3264}, + {0x8139c730, 0xffff3265}, + {0x8139c731, 0xffff3266}, + {0x8139c732, 0xffff3267}, + {0x8139c733, 0xffff3268}, + {0x8139c734, 0xffff3269}, + {0x8139c735, 0xffff326a}, + {0x8139c736, 0xffff326b}, + {0x8139c737, 0xffff326c}, + {0x8139c738, 0xffff326d}, + {0x8139c739, 0xffff326e}, + {0x8139c830, 0xffff326f}, + {0x8139c831, 0xffff3270}, + {0x8139c832, 0xffff3271}, + {0x8139c833, 0xffff3272}, + {0x8139c834, 0xffff3273}, + {0x8139c835, 0xffff3274}, + {0x8139c836, 0xffff3275}, + {0x8139c837, 0xffff3276}, + {0x8139c838, 0xffff3277}, + {0x8139c839, 0xffff3278}, + {0x8139c930, 0xffff3279}, + {0x8139c931, 0xffff327a}, + {0x8139c932, 0xffff327b}, + {0x8139c933, 0xffff327c}, + {0x8139c934, 0xffff327d}, + {0x8139c935, 0xffff327e}, + {0x8139c936, 0xffff327f}, + {0x8139c937, 0xffff3280}, + {0x8139c938, 0xffff3281}, + {0x8139c939, 0xffff3282}, + {0x8139ca30, 0xffff3283}, + {0x8139ca31, 0xffff3284}, + {0x8139ca32, 0xffff3285}, + {0x8139ca33, 0xffff3286}, + {0x8139ca34, 0xffff3287}, + {0x8139ca35, 0xffff3288}, + {0x8139ca36, 0xffff3289}, + {0x8139ca37, 0xffff328a}, + {0x8139ca38, 0xffff328b}, + {0x8139ca39, 0xffff328c}, + {0x8139cb30, 0xffff328d}, + {0x8139cb31, 0xffff328e}, + {0x8139cb32, 0xffff328f}, + {0x8139cb33, 0xffff3290}, + {0x8139cb34, 0xffff3291}, + {0x8139cb35, 0xffff3292}, + {0x8139cb36, 0xffff3293}, + {0x8139cb37, 0xffff3294}, + {0x8139cb38, 0xffff3295}, + {0x8139cb39, 0xffff3296}, + {0x8139cc30, 0xffff3297}, + {0x8139cc31, 0xffff3298}, + {0x8139cc32, 0xffff3299}, + {0x8139cc33, 0xffff329a}, + {0x8139cc34, 0xffff329b}, + {0x8139cc35, 0xffff329c}, + {0x8139cc36, 0xffff329d}, + {0x8139cc37, 0xffff329e}, + {0x8139cc38, 0xffff329f}, + {0x8139cc39, 0xffff32a0}, + {0x8139cd30, 0xffff32a1}, + {0x8139cd31, 0xffff32a2}, + {0x8139cd32, 0xffff32a4}, + {0x8139cd33, 0xffff32a5}, + {0x8139cd34, 0xffff32a6}, + {0x8139cd35, 0xffff32a7}, + {0x8139cd36, 0xffff32a8}, + {0x8139cd37, 0xffff32a9}, + {0x8139cd38, 0xffff32aa}, + {0x8139cd39, 0xffff32ab}, + {0x8139ce30, 0xffff32ac}, + {0x8139ce31, 0xffff32ad}, + {0x8139ce32, 0xffff32ae}, + {0x8139ce33, 0xffff32af}, + {0x8139ce34, 0xffff32b0}, + {0x8139ce35, 0xffff32b1}, + {0x8139ce36, 0xffff32b2}, + {0x8139ce37, 0xffff32b3}, + {0x8139ce38, 0xffff32b4}, + {0x8139ce39, 0xffff32b5}, + {0x8139cf30, 0xffff32b6}, + {0x8139cf31, 0xffff32b7}, + {0x8139cf32, 0xffff32b8}, + {0x8139cf33, 0xffff32b9}, + {0x8139cf34, 0xffff32ba}, + {0x8139cf35, 0xffff32bb}, + {0x8139cf36, 0xffff32bc}, + {0x8139cf37, 0xffff32bd}, + {0x8139cf38, 0xffff32be}, + {0x8139cf39, 0xffff32bf}, + {0x8139d030, 0xffff32c0}, + {0x8139d031, 0xffff32c1}, + {0x8139d032, 0xffff32c2}, + {0x8139d033, 0xffff32c3}, + {0x8139d034, 0xffff32c4}, + {0x8139d035, 0xffff32c5}, + {0x8139d036, 0xffff32c6}, + {0x8139d037, 0xffff32c7}, + {0x8139d038, 0xffff32c8}, + {0x8139d039, 0xffff32c9}, + {0x8139d130, 0xffff32ca}, + {0x8139d131, 0xffff32cb}, + {0x8139d132, 0xffff32cc}, + {0x8139d133, 0xffff32cd}, + {0x8139d134, 0xffff32ce}, + {0x8139d135, 0xffff32cf}, + {0x8139d136, 0xffff32d0}, + {0x8139d137, 0xffff32d1}, + {0x8139d138, 0xffff32d2}, + {0x8139d139, 0xffff32d3}, + {0x8139d230, 0xffff32d4}, + {0x8139d231, 0xffff32d5}, + {0x8139d232, 0xffff32d6}, + {0x8139d233, 0xffff32d7}, + {0x8139d234, 0xffff32d8}, + {0x8139d235, 0xffff32d9}, + {0x8139d236, 0xffff32da}, + {0x8139d237, 0xffff32db}, + {0x8139d238, 0xffff32dc}, + {0x8139d239, 0xffff32dd}, + {0x8139d330, 0xffff32de}, + {0x8139d331, 0xffff32df}, + {0x8139d332, 0xffff32e0}, + {0x8139d333, 0xffff32e1}, + {0x8139d334, 0xffff32e2}, + {0x8139d335, 0xffff32e3}, + {0x8139d336, 0xffff32e4}, + {0x8139d337, 0xffff32e5}, + {0x8139d338, 0xffff32e6}, + {0x8139d339, 0xffff32e7}, + {0x8139d430, 0xffff32e8}, + {0x8139d431, 0xffff32e9}, + {0x8139d432, 0xffff32ea}, + {0x8139d433, 0xffff32eb}, + {0x8139d434, 0xffff32ec}, + {0x8139d435, 0xffff32ed}, + {0x8139d436, 0xffff32ee}, + {0x8139d437, 0xffff32ef}, + {0x8139d438, 0xffff32f0}, + {0x8139d439, 0xffff32f1}, + {0x8139d530, 0xffff32f2}, + {0x8139d531, 0xffff32f3}, + {0x8139d532, 0xffff32f4}, + {0x8139d533, 0xffff32f5}, + {0x8139d534, 0xffff32f6}, + {0x8139d535, 0xffff32f7}, + {0x8139d536, 0xffff32f8}, + {0x8139d537, 0xffff32f9}, + {0x8139d538, 0xffff32fa}, + {0x8139d539, 0xffff32fb}, + {0x8139d630, 0xffff32fc}, + {0x8139d631, 0xffff32fd}, + {0x8139d632, 0xffff32fe}, + {0x8139d633, 0xffff32ff}, + {0x8139d634, 0xffff3300}, + {0x8139d635, 0xffff3301}, + {0x8139d636, 0xffff3302}, + {0x8139d637, 0xffff3303}, + {0x8139d638, 0xffff3304}, + {0x8139d639, 0xffff3305}, + {0x8139d730, 0xffff3306}, + {0x8139d731, 0xffff3307}, + {0x8139d732, 0xffff3308}, + {0x8139d733, 0xffff3309}, + {0x8139d734, 0xffff330a}, + {0x8139d735, 0xffff330b}, + {0x8139d736, 0xffff330c}, + {0x8139d737, 0xffff330d}, + {0x8139d738, 0xffff330e}, + {0x8139d739, 0xffff330f}, + {0x8139d830, 0xffff3310}, + {0x8139d831, 0xffff3311}, + {0x8139d832, 0xffff3312}, + {0x8139d833, 0xffff3313}, + {0x8139d834, 0xffff3314}, + {0x8139d835, 0xffff3315}, + {0x8139d836, 0xffff3316}, + {0x8139d837, 0xffff3317}, + {0x8139d838, 0xffff3318}, + {0x8139d839, 0xffff3319}, + {0x8139d930, 0xffff331a}, + {0x8139d931, 0xffff331b}, + {0x8139d932, 0xffff331c}, + {0x8139d933, 0xffff331d}, + {0x8139d934, 0xffff331e}, + {0x8139d935, 0xffff331f}, + {0x8139d936, 0xffff3320}, + {0x8139d937, 0xffff3321}, + {0x8139d938, 0xffff3322}, + {0x8139d939, 0xffff3323}, + {0x8139da30, 0xffff3324}, + {0x8139da31, 0xffff3325}, + {0x8139da32, 0xffff3326}, + {0x8139da33, 0xffff3327}, + {0x8139da34, 0xffff3328}, + {0x8139da35, 0xffff3329}, + {0x8139da36, 0xffff332a}, + {0x8139da37, 0xffff332b}, + {0x8139da38, 0xffff332c}, + {0x8139da39, 0xffff332d}, + {0x8139db30, 0xffff332e}, + {0x8139db31, 0xffff332f}, + {0x8139db32, 0xffff3330}, + {0x8139db33, 0xffff3331}, + {0x8139db34, 0xffff3332}, + {0x8139db35, 0xffff3333}, + {0x8139db36, 0xffff3334}, + {0x8139db37, 0xffff3335}, + {0x8139db38, 0xffff3336}, + {0x8139db39, 0xffff3337}, + {0x8139dc30, 0xffff3338}, + {0x8139dc31, 0xffff3339}, + {0x8139dc32, 0xffff333a}, + {0x8139dc33, 0xffff333b}, + {0x8139dc34, 0xffff333c}, + {0x8139dc35, 0xffff333d}, + {0x8139dc36, 0xffff333e}, + {0x8139dc37, 0xffff333f}, + {0x8139dc38, 0xffff3340}, + {0x8139dc39, 0xffff3341}, + {0x8139dd30, 0xffff3342}, + {0x8139dd31, 0xffff3343}, + {0x8139dd32, 0xffff3344}, + {0x8139dd33, 0xffff3345}, + {0x8139dd34, 0xffff3346}, + {0x8139dd35, 0xffff3347}, + {0x8139dd36, 0xffff3348}, + {0x8139dd37, 0xffff3349}, + {0x8139dd38, 0xffff334a}, + {0x8139dd39, 0xffff334b}, + {0x8139de30, 0xffff334c}, + {0x8139de31, 0xffff334d}, + {0x8139de32, 0xffff334e}, + {0x8139de33, 0xffff334f}, + {0x8139de34, 0xffff3350}, + {0x8139de35, 0xffff3351}, + {0x8139de36, 0xffff3352}, + {0x8139de37, 0xffff3353}, + {0x8139de38, 0xffff3354}, + {0x8139de39, 0xffff3355}, + {0x8139df30, 0xffff3356}, + {0x8139df31, 0xffff3357}, + {0x8139df32, 0xffff3358}, + {0x8139df33, 0xffff3359}, + {0x8139df34, 0xffff335a}, + {0x8139df35, 0xffff335b}, + {0x8139df36, 0xffff335c}, + {0x8139df37, 0xffff335d}, + {0x8139df38, 0xffff335e}, + {0x8139df39, 0xffff335f}, + {0x8139e030, 0xffff3360}, + {0x8139e031, 0xffff3361}, + {0x8139e032, 0xffff3362}, + {0x8139e033, 0xffff3363}, + {0x8139e034, 0xffff3364}, + {0x8139e035, 0xffff3365}, + {0x8139e036, 0xffff3366}, + {0x8139e037, 0xffff3367}, + {0x8139e038, 0xffff3368}, + {0x8139e039, 0xffff3369}, + {0x8139e130, 0xffff336a}, + {0x8139e131, 0xffff336b}, + {0x8139e132, 0xffff336c}, + {0x8139e133, 0xffff336d}, + {0x8139e134, 0xffff336e}, + {0x8139e135, 0xffff336f}, + {0x8139e136, 0xffff3370}, + {0x8139e137, 0xffff3371}, + {0x8139e138, 0xffff3372}, + {0x8139e139, 0xffff3373}, + {0x8139e230, 0xffff3374}, + {0x8139e231, 0xffff3375}, + {0x8139e232, 0xffff3376}, + {0x8139e233, 0xffff3377}, + {0x8139e234, 0xffff3378}, + {0x8139e235, 0xffff3379}, + {0x8139e236, 0xffff337a}, + {0x8139e237, 0xffff337b}, + {0x8139e238, 0xffff337c}, + {0x8139e239, 0xffff337d}, + {0x8139e330, 0xffff337e}, + {0x8139e331, 0xffff337f}, + {0x8139e332, 0xffff3380}, + {0x8139e333, 0xffff3381}, + {0x8139e334, 0xffff3382}, + {0x8139e335, 0xffff3383}, + {0x8139e336, 0xffff3384}, + {0x8139e337, 0xffff3385}, + {0x8139e338, 0xffff3386}, + {0x8139e339, 0xffff3387}, + {0x8139e430, 0xffff3388}, + {0x8139e431, 0xffff3389}, + {0x8139e432, 0xffff338a}, + {0x8139e433, 0xffff338b}, + {0x8139e434, 0xffff338c}, + {0x8139e435, 0xffff338d}, + {0x8139e436, 0xffff3390}, + {0x8139e437, 0xffff3391}, + {0x8139e438, 0xffff3392}, + {0x8139e439, 0xffff3393}, + {0x8139e530, 0xffff3394}, + {0x8139e531, 0xffff3395}, + {0x8139e532, 0xffff3396}, + {0x8139e533, 0xffff3397}, + {0x8139e534, 0xffff3398}, + {0x8139e535, 0xffff3399}, + {0x8139e536, 0xffff339a}, + {0x8139e537, 0xffff339b}, + {0x8139e538, 0xffff339f}, + {0x8139e539, 0xffff33a0}, + {0x8139e630, 0xffff33a2}, + {0x8139e631, 0xffff33a3}, + {0x8139e632, 0xffff33a4}, + {0x8139e633, 0xffff33a5}, + {0x8139e634, 0xffff33a6}, + {0x8139e635, 0xffff33a7}, + {0x8139e636, 0xffff33a8}, + {0x8139e637, 0xffff33a9}, + {0x8139e638, 0xffff33aa}, + {0x8139e639, 0xffff33ab}, + {0x8139e730, 0xffff33ac}, + {0x8139e731, 0xffff33ad}, + {0x8139e732, 0xffff33ae}, + {0x8139e733, 0xffff33af}, + {0x8139e734, 0xffff33b0}, + {0x8139e735, 0xffff33b1}, + {0x8139e736, 0xffff33b2}, + {0x8139e737, 0xffff33b3}, + {0x8139e738, 0xffff33b4}, + {0x8139e739, 0xffff33b5}, + {0x8139e830, 0xffff33b6}, + {0x8139e831, 0xffff33b7}, + {0x8139e832, 0xffff33b8}, + {0x8139e833, 0xffff33b9}, + {0x8139e834, 0xffff33ba}, + {0x8139e835, 0xffff33bb}, + {0x8139e836, 0xffff33bc}, + {0x8139e837, 0xffff33bd}, + {0x8139e838, 0xffff33be}, + {0x8139e839, 0xffff33bf}, + {0x8139e930, 0xffff33c0}, + {0x8139e931, 0xffff33c1}, + {0x8139e932, 0xffff33c2}, + {0x8139e933, 0xffff33c3}, + {0x8139e934, 0xffff33c5}, + {0x8139e935, 0xffff33c6}, + {0x8139e936, 0xffff33c7}, + {0x8139e937, 0xffff33c8}, + {0x8139e938, 0xffff33c9}, + {0x8139e939, 0xffff33ca}, + {0x8139ea30, 0xffff33cb}, + {0x8139ea31, 0xffff33cc}, + {0x8139ea32, 0xffff33cd}, + {0x8139ea33, 0xffff33cf}, + {0x8139ea34, 0xffff33d0}, + {0x8139ea35, 0xffff33d3}, + {0x8139ea36, 0xffff33d4}, + {0x8139ea37, 0xffff33d6}, + {0x8139ea38, 0xffff33d7}, + {0x8139ea39, 0xffff33d8}, + {0x8139eb30, 0xffff33d9}, + {0x8139eb31, 0xffff33da}, + {0x8139eb32, 0xffff33db}, + {0x8139eb33, 0xffff33dc}, + {0x8139eb34, 0xffff33dd}, + {0x8139eb35, 0xffff33de}, + {0x8139eb36, 0xffff33df}, + {0x8139eb37, 0xffff33e0}, + {0x8139eb38, 0xffff33e1}, + {0x8139eb39, 0xffff33e2}, + {0x8139ec30, 0xffff33e3}, + {0x8139ec31, 0xffff33e4}, + {0x8139ec32, 0xffff33e5}, + {0x8139ec33, 0xffff33e6}, + {0x8139ec34, 0xffff33e7}, + {0x8139ec35, 0xffff33e8}, + {0x8139ec36, 0xffff33e9}, + {0x8139ec37, 0xffff33ea}, + {0x8139ec38, 0xffff33eb}, + {0x8139ec39, 0xffff33ec}, + {0x8139ed30, 0xffff33ed}, + {0x8139ed31, 0xffff33ee}, + {0x8139ed32, 0xffff33ef}, + {0x8139ed33, 0xffff33f0}, + {0x8139ed34, 0xffff33f1}, + {0x8139ed35, 0xffff33f2}, + {0x8139ed36, 0xffff33f3}, + {0x8139ed37, 0xffff33f4}, + {0x8139ed38, 0xffff33f5}, + {0x8139ed39, 0xffff33f6}, + {0x8139ee30, 0xffff33f7}, + {0x8139ee31, 0xffff33f8}, + {0x8139ee32, 0xffff33f9}, + {0x8139ee33, 0xffff33fa}, + {0x8139ee34, 0xffff33fb}, + {0x8139ee35, 0xffff33fc}, + {0x8139ee36, 0xffff33fd}, + {0x8139ee37, 0xffff33fe}, + {0x8139ee38, 0xffff33ff}, + {0x8139ee39, 0x8e99}, + {0x8139ef30, 0x9ee5}, + {0x8139ef31, 0xffff3402}, + {0x8139ef32, 0xffff3403}, + {0x8139ef33, 0x708e}, + {0x8139ef34, 0xa546}, + {0x8139ef35, 0xb639}, + {0x8139ef36, 0xffff3407}, + {0x8139ef37, 0xffff3408}, + {0x8139ef38, 0xffff3409}, + {0x8139ef39, 0xffff340a}, + {0x8139f030, 0xffff340b}, + {0x8139f031, 0xb35a}, + {0x8139f032, 0xffff340d}, + {0x8139f033, 0xffff340e}, + {0x8139f034, 0xffff340f}, + {0x8139f035, 0xffff3410}, + {0x8139f036, 0xffff3411}, + {0x8139f037, 0xffff3412}, + {0x8139f038, 0xffff3413}, + {0x8139f039, 0xffff3414}, + {0x8139f130, 0xffff3415}, + {0x8139f131, 0xaa9e}, + {0x8139f132, 0xffff3417}, + {0x8139f133, 0xffff3418}, + {0x8139f134, 0xffff3419}, + {0x8139f135, 0xffff341a}, + {0x8139f136, 0xffff341b}, + {0x8139f137, 0x4801}, + {0x8139f138, 0xffff341d}, + {0x8139f139, 0xffff341e}, + {0x8139f230, 0xffff341f}, + {0x8139f231, 0xffff3420}, + {0x8139f232, 0x8540}, + {0x8139f233, 0xffff3422}, + {0x8139f234, 0xffff3423}, + {0x8139f235, 0x4c65}, + {0x8139f236, 0xffff3425}, + {0x8139f237, 0xffff3426}, + {0x8139f238, 0xffff3427}, + {0x8139f239, 0xad2e}, + {0x8139f330, 0xac04}, + {0x8139f331, 0x5cd9}, + {0x8139f332, 0xac45}, + {0x8139f333, 0x7909}, + {0x8139f334, 0x7824}, + {0x8139f335, 0xa968}, + {0x8139f336, 0xb799}, + {0x8139f337, 0xabb4}, + {0x8139f338, 0xc04a}, + {0x8139f339, 0x4c09}, + {0x8139f430, 0xa589}, + {0x8139f431, 0x85e6}, + {0x8139f432, 0x921a}, + {0x8139f433, 0x9969}, + {0x8139f434, 0x7cc6}, + {0x8139f435, 0x8c2a}, + {0x8139f436, 0xb42e}, + {0x8139f437, 0xb5e5}, + {0x8139f438, 0x8330}, + {0x8139f439, 0xc0f5}, + {0x8139f530, 0x552c}, + {0x8139f531, 0xbad0}, + {0x8139f532, 0xffff343f}, + {0x8139f533, 0x9c45}, + {0x8139f534, 0xc531}, + {0x8139f535, 0x5420}, + {0x8139f536, 0x3c4e}, + {0x8139f537, 0xa54e}, + {0x8139f538, 0xc792}, + {0x8139f539, 0xffff3446}, + {0x8139f630, 0x4fd8}, + {0x8139f631, 0x9a51}, + {0x8139f632, 0xb44d}, + {0x8139f633, 0x8e66}, + {0x8139f634, 0xa280}, + {0x8139f635, 0x7461}, + {0x8139f636, 0x82f4}, + {0x8139f637, 0xc428}, + {0x8139f638, 0x97b5}, + {0x8139f639, 0xffff3451}, + {0x8139f730, 0xffff3452}, + {0x8139f731, 0x6e51}, + {0x8139f732, 0xad0a}, + {0x8139f733, 0xffff3455}, + {0x8139f734, 0xffff3456}, + {0x8139f735, 0x9585}, + {0x8139f736, 0x6684}, + {0x8139f737, 0x4f42}, + {0x8139f738, 0x852e}, + {0x8139f739, 0x9a55}, + {0x8139f830, 0xb468}, + {0x8139f831, 0x79f1}, + {0x8139f832, 0xb75c}, + {0x8139f833, 0x3eb9}, + {0x8139f834, 0x983a}, + {0x8139f835, 0xffff3461}, + {0x8139f836, 0x6da1}, + {0x8139f837, 0x72c1}, + {0x8139f838, 0x8038}, + {0x8139f839, 0xb481}, + {0x8139f930, 0x7584}, + {0x8139f931, 0x6572}, + {0x8139f932, 0x5f94}, + {0x8139f933, 0x7bb9}, + {0x8139f934, 0x4418}, + {0x8139f935, 0x8ac8}, + {0x8139f936, 0xffff346c}, + {0x8139f937, 0x3f06}, + {0x8139f938, 0x6362}, + {0x8139f939, 0xad14}, + {0x8139fa30, 0x62d2}, + {0x8139fa31, 0x9114}, + {0x8139fa32, 0x3e46}, + {0x8139fa33, 0x8d89}, + {0x8139fa34, 0x64d5}, + {0x8139fa35, 0xa74a}, + {0x8139fa36, 0x9c52}, + {0x8139fa37, 0xb1dc}, + {0x8139fa38, 0xffff3479}, + {0x8139fa39, 0x6e66}, + {0x8139fb30, 0x7cd1}, + {0x8139fb31, 0x7c8d}, + {0x8139fb32, 0x9d04}, + {0x8139fb33, 0xb1e6}, + {0x8139fb34, 0xbf74}, + {0x8139fb35, 0xbe4a}, + {0x8139fb36, 0xb9a4}, + {0x8139fb37, 0xc575}, + {0x8139fb38, 0x5331}, + {0x8139fb39, 0x90e2}, + {0x8139fc30, 0x8ade}, + {0x8139fc31, 0xa656}, + {0x8139fc32, 0xa56d}, + {0x8139fc33, 0x5d70}, + {0x8139fc34, 0x4538}, + {0x8139fc35, 0x93aa}, + {0x8139fc36, 0x9936}, + {0x8139fc37, 0x8e84}, + {0x8139fc38, 0x7405}, + {0x8139fc39, 0x92fd}, + {0x8139fd30, 0xffff348f}, + {0x8139fd31, 0xffff3490}, + {0x8139fd32, 0x7179}, + {0x8139fd33, 0x898c}, + {0x8139fd34, 0x9be4}, + {0x8139fd35, 0x9801}, + {0x8139fd36, 0xb12e}, + {0x8139fd37, 0x85a4}, + {0x8139fd38, 0xffff3497}, + {0x8139fd39, 0xffff3498}, + {0x8139fe30, 0x7ff8}, + {0x8139fe31, 0xb67c}, + {0x8139fe32, 0x4f31}, + {0x8139fe33, 0xb9ae}, + {0x8139fe34, 0x806a}, + {0x8139fe35, 0x6319}, + {0x8139fe36, 0x840a}, + {0x8139fe37, 0xab60}, + {0x8139fe38, 0xb855}, + {0x8139fe39, 0xffff34a2}, + {0x82308130, 0xffff34a3}, + {0x82308131, 0x45c6}, + {0x82308132, 0x556c}, + {0x82308133, 0x7450}, + {0x82308134, 0x760a}, + {0x82308135, 0xa84e}, + {0x82308136, 0x7bf5}, + {0x82308137, 0xa6c5}, + {0x82308138, 0x6552}, + {0x82308139, 0xffff34ac}, + {0x82308230, 0x71b5}, + {0x82308231, 0xffff34ae}, + {0x82308232, 0xffff34af}, + {0x82308233, 0x8ff9}, + {0x82308234, 0xffff34b1}, + {0x82308235, 0x4292}, + {0x82308236, 0x7708}, + {0x82308237, 0x5a49}, + {0x82308238, 0x7de0}, + {0x82308239, 0x5964}, + {0x82308330, 0xabd6}, + {0x82308331, 0x9afc}, + {0x82308332, 0x4e9e}, + {0x82308333, 0xffff34ba}, + {0x82308334, 0x7df4}, + {0x82308335, 0x7d18}, + {0x82308336, 0x8ff0}, + {0x82308337, 0x9750}, + {0x82308338, 0x7512}, + {0x82308339, 0xffff34c0}, + {0x82308430, 0xffff34c1}, + {0x82308431, 0x702c}, + {0x82308432, 0x50dc}, + {0x82308433, 0xc0a4}, + {0x82308434, 0x9f58}, + {0x82308435, 0xffff34c6}, + {0x82308436, 0xffff34c7}, + {0x82308437, 0x4149}, + {0x82308438, 0x62be}, + {0x82308439, 0x500e}, + {0x82308530, 0x59b0}, + {0x82308531, 0x4640}, + {0x82308532, 0xffff34cd}, + {0x82308533, 0x8d80}, + {0x82308534, 0x6b7c}, + {0x82308535, 0x7aca}, + {0x82308536, 0xac2d}, + {0x82308537, 0xffff34d2}, + {0x82308538, 0x829a}, + {0x82308539, 0xab25}, + {0x82308630, 0x8064}, + {0x82308631, 0x3f60}, + {0x82308632, 0x69a4}, + {0x82308633, 0x9a5e}, + {0x82308634, 0xffff34d9}, + {0x82308635, 0x595e}, + {0x82308636, 0x5960}, + {0x82308637, 0xb885}, + {0x82308638, 0xabfc}, + {0x82308639, 0x8b4c}, + {0x82308730, 0x8790}, + {0x82308731, 0x4ebc}, + {0x82308732, 0x56a1}, + {0x82308733, 0x7bf9}, + {0x82308734, 0x8b4e}, + {0x82308735, 0x8b50}, + {0x82308736, 0x9ce4}, + {0x82308737, 0x3cec}, + {0x82308738, 0x57a1}, + {0x82308739, 0x4a3d}, + {0x82308830, 0xad95}, + {0x82308831, 0x736c}, + {0x82308832, 0xffff34eb}, + {0x82308833, 0x704e}, + {0x82308834, 0x953d}, + {0x82308835, 0x4ef4}, + {0x82308836, 0x74a0}, + {0x82308837, 0x60f1}, + {0x82308838, 0xa021}, + {0x82308839, 0x8811}, + {0x82308930, 0x4dce}, + {0x82308931, 0x9279}, + {0x82308932, 0x526a}, + {0x82308933, 0x8d5c}, + {0x82308934, 0xb4bc}, + {0x82308935, 0xc542}, + {0x82308936, 0x92ad}, + {0x82308937, 0x66b6}, + {0x82308938, 0x5812}, + {0x82308939, 0x4784}, + {0x82308a30, 0x47d5}, + {0x82308a31, 0xa658}, + {0x82308a32, 0xffff34ff}, + {0x82308a33, 0x8e2d}, + {0x82308a34, 0x4d98}, + {0x82308a35, 0x77f6}, + {0x82308a36, 0x6dd4}, + {0x82308a37, 0x9a84}, + {0x82308a38, 0xaa80}, + {0x82308a39, 0xbccc}, + {0x82308b30, 0x88fe}, + {0x82308b31, 0xffff3508}, + {0x82308b32, 0xc3e6}, + {0x82308b33, 0xbeb8}, + {0x82308b34, 0x66e5}, + {0x82308b35, 0xc6dd}, + {0x82308b36, 0x48e4}, + {0x82308b37, 0xab61}, + {0x82308b38, 0x75e4}, + {0x82308b39, 0x8bb4}, + {0x82308c30, 0x479c}, + {0x82308c31, 0xa6ee}, + {0x82308c32, 0x671e}, + {0x82308c33, 0xffff3514}, + {0x82308c34, 0x64a2}, + {0x82308c35, 0xffff3516}, + {0x82308c36, 0x547c}, + {0x82308c37, 0x48ad}, + {0x82308c38, 0x3ea2}, + {0x82308c39, 0x7025}, + {0x82308d30, 0xffff351b}, + {0x82308d31, 0x419a}, + {0x82308d32, 0x770c}, + {0x82308d33, 0x70a9}, + {0x82308d34, 0xffff351f}, + {0x82308d35, 0xa78a}, + {0x82308d36, 0x40b0}, + {0x82308d37, 0x6dd5}, + {0x82308d38, 0x7412}, + {0x82308d39, 0xabce}, + {0x82308e30, 0x3d1a}, + {0x82308e31, 0xb18e}, + {0x82308e32, 0x7c7c}, + {0x82308e33, 0x3e48}, + {0x82308e34, 0x5279}, + {0x82308e35, 0x7aa1}, + {0x82308e36, 0xffff352b}, + {0x82308e37, 0xc532}, + {0x82308e38, 0x4719}, + {0x82308e39, 0x8536}, + {0x82308f30, 0xadd6}, + {0x82308f31, 0x5ee4}, + {0x82308f32, 0xb98d}, + {0x82308f33, 0xffff3532}, + {0x82308f34, 0x5bec}, + {0x82308f35, 0xb4dc}, + {0x82308f36, 0xadfc}, + {0x82308f37, 0x59bc}, + {0x82308f38, 0x7a3d}, + {0x82308f39, 0x9df4}, + {0x82309030, 0x73e6}, + {0x82309031, 0x9704}, + {0x82309032, 0x874a}, + {0x82309033, 0x9b54}, + {0x82309034, 0xb862}, + {0x82309035, 0xa7fc}, + {0x82309036, 0xc6d6}, + {0x82309037, 0xffff3540}, + {0x82309038, 0x9065}, + {0x82309039, 0xb5e6}, + {0x82309130, 0xa5da}, + {0x82309131, 0xc1ac}, + {0x82309132, 0x663e}, + {0x82309133, 0x6079}, + {0x82309134, 0x7229}, + {0x82309135, 0xb3ed}, + {0x82309136, 0x6f9d}, + {0x82309137, 0x55cc}, + {0x82309138, 0x8da4}, + {0x82309139, 0x3b6c}, + {0x82309230, 0x5115}, + {0x82309231, 0x6fb5}, + {0x82309232, 0x486c}, + {0x82309233, 0xaaf8}, + {0x82309234, 0x4875}, + {0x82309235, 0xa2e2}, + {0x82309236, 0x446c}, + {0x82309237, 0x9f74}, + {0x82309238, 0x618a}, + {0x82309239, 0x9a58}, + {0x82309330, 0xb8a1}, + {0x82309331, 0x42ba}, + {0x82309332, 0x6e76}, + {0x82309333, 0xbf54}, + {0x82309334, 0xb859}, + {0x82309335, 0x96ea}, + {0x82309336, 0xffff355d}, + {0x82309337, 0x9879}, + {0x82309338, 0x7180}, + {0x82309339, 0x9896}, + {0x82309430, 0x5ead}, + {0x82309431, 0x5786}, + {0x82309432, 0xb036}, + {0x82309433, 0x8ecc}, + {0x82309434, 0x9572}, + {0x82309435, 0x60e9}, + {0x82309436, 0xa5dc}, + {0x82309437, 0x53d5}, + {0x82309438, 0x8655}, + {0x82309439, 0x4c85}, + {0x82309530, 0x5421}, + {0x82309531, 0x5965}, + {0x82309532, 0x3c16}, + {0x82309533, 0x569c}, + {0x82309534, 0x8315}, + {0x82309535, 0xae6d}, + {0x82309536, 0xb812}, + {0x82309537, 0x60c2}, + {0x82309538, 0xac4c}, + {0x82309539, 0x45e2}, + {0x82309630, 0x5c7c}, + {0x82309631, 0x8341}, + {0x82309632, 0x60ec}, + {0x82309633, 0x7564}, + {0x82309634, 0x5342}, + {0x82309635, 0xa9d2}, + {0x82309636, 0x894d}, + {0x82309637, 0xac50}, + {0x82309638, 0x9971}, + {0x82309639, 0xffff357e}, + {0x82309730, 0xffff357f}, + {0x82309731, 0x73f6}, + {0x82309732, 0x7840}, + {0x82309733, 0xb469}, + {0x82309734, 0x5fb8}, + {0x82309735, 0xc324}, + {0x82309736, 0xad36}, + {0x82309737, 0x8f7e}, + {0x82309738, 0x52e1}, + {0x82309739, 0xffff3588}, + {0x82309830, 0x8ac4}, + {0x82309831, 0xaec0}, + {0x82309832, 0xffff358b}, + {0x82309833, 0xffff358c}, + {0x82309834, 0xffff358d}, + {0x82309835, 0xffff358e}, + {0x82309836, 0x8424}, + {0x82309837, 0xa34e}, + {0x82309838, 0xab12}, + {0x82309839, 0x9e01}, + {0x82309930, 0x5f40}, + {0x82309931, 0xa12d}, + {0x82309932, 0x8425}, + {0x82309933, 0x8950}, + {0x82309934, 0xb5f6}, + {0x82309935, 0xc004}, + {0x82309936, 0xffff3599}, + {0x82309937, 0xffff359a}, + {0x82309938, 0xffff359b}, + {0x82309939, 0xffff359c}, + {0x82309a30, 0xffff359d}, + {0x82309a31, 0x9799}, + {0x82309a32, 0x8541}, + {0x82309a33, 0xb2b8}, + {0x82309a34, 0x8a52}, + {0x82309a35, 0x8952}, + {0x82309a36, 0x5d19}, + {0x82309a37, 0x6e60}, + {0x82309a38, 0x4ffe}, + {0x82309a39, 0x634a}, + {0x82309b30, 0x7ad1}, + {0x82309b31, 0x6c2e}, + {0x82309b32, 0x63bc}, + {0x82309b33, 0x7886}, + {0x82309b34, 0xffff35ac}, + {0x82309b35, 0x9ec8}, + {0x82309b36, 0x7b90}, + {0x82309b37, 0xffff35af}, + {0x82309b38, 0xffff35b0}, + {0x82309b39, 0xffff35b1}, + {0x82309c30, 0xffff35b2}, + {0x82309c31, 0xffff35b3}, + {0x82309c32, 0xffff35b4}, + {0x82309c33, 0x58c0}, + {0x82309c34, 0xafac}, + {0x82309c35, 0x96c5}, + {0x82309c36, 0xae4e}, + {0x82309c37, 0x86c6}, + {0x82309c38, 0x49b8}, + {0x82309c39, 0x84bd}, + {0x82309d30, 0x81ba}, + {0x82309d31, 0xbd62}, + {0x82309d32, 0x527a}, + {0x82309d33, 0xaab6}, + {0x82309d34, 0xb7f8}, + {0x82309d35, 0x527c}, + {0x82309d36, 0x963e}, + {0x82309d37, 0xa461}, + {0x82309d38, 0x7d48}, + {0x82309d39, 0x601d}, + {0x82309e30, 0x58c1}, + {0x82309e31, 0xa7b9}, + {0x82309e32, 0x7d49}, + {0x82309e33, 0x7c8a}, + {0x82309e34, 0x64d6}, + {0x82309e35, 0x5f95}, + {0x82309e36, 0xc23d}, + {0x82309e37, 0xbe49}, + {0x82309e38, 0x6688}, + {0x82309e39, 0xa1ed}, + {0x82309f30, 0x6fb6}, + {0x82309f31, 0x3d1e}, + {0x82309f32, 0x3b71}, + {0x82309f33, 0xc4ec}, + {0x82309f34, 0x8b96}, + {0x82309f35, 0x59f9}, + {0x82309f36, 0x4cbc}, + {0x82309f37, 0x3e1c}, + {0x82309f38, 0x41c2}, + {0x82309f39, 0x4858}, + {0x8230a030, 0x75b4}, + {0x8230a031, 0xaa78}, + {0x8230a032, 0xaca9}, + {0x8230a033, 0xffff35dd}, + {0x8230a034, 0x8934}, + {0x8230a035, 0xffff35df}, + {0x8230a036, 0xffff35e0}, + {0x8230a037, 0xffff35e1}, + {0x8230a038, 0x5f65}, + {0x8230a039, 0x9e66}, + {0x8230a130, 0x4ad1}, + {0x8230a131, 0x720e}, + {0x8230a132, 0x73a0}, + {0x8230a133, 0xc261}, + {0x8230a134, 0xaa95}, + {0x8230a135, 0xa659}, + {0x8230a136, 0x8778}, + {0x8230a137, 0x8d69}, + {0x8230a138, 0xbde1}, + {0x8230a139, 0xa65a}, + {0x8230a230, 0xffff35ee}, + {0x8230a231, 0xffff35ef}, + {0x8230a232, 0x4a99}, + {0x8230a233, 0x64f4}, + {0x8230a234, 0x63cc}, + {0x8230a235, 0x9bc1}, + {0x8230a236, 0xb00c}, + {0x8230a237, 0xad7e}, + {0x8230a238, 0x8900}, + {0x8230a239, 0xffff35f7}, + {0x8230a330, 0xffff35f8}, + {0x8230a331, 0xffff35f9}, + {0x8230a332, 0x9301}, + {0x8230a333, 0x5c70}, + {0x8230a334, 0xb2e4}, + {0x8230a335, 0xa99d}, + {0x8230a336, 0xae39}, + {0x8230a337, 0x5e85}, + {0x8230a338, 0xc7b1}, + {0x8230a339, 0xb526}, + {0x8230a430, 0x4a1e}, + {0x8230a431, 0x854c}, + {0x8230a432, 0x7486}, + {0x8230a433, 0xa89d}, + {0x8230a434, 0x9c40}, + {0x8230a435, 0x91d9}, + {0x8230a436, 0xb548}, + {0x8230a437, 0xc282}, + {0x8230a438, 0xa6a1}, + {0x8230a439, 0xa8a2}, + {0x8230a530, 0x6d1a}, + {0x8230a531, 0x6515}, + {0x8230a532, 0xffff360f}, + {0x8230a533, 0x8684}, + {0x8230a534, 0x75fa}, + {0x8230a535, 0xffff3612}, + {0x8230a536, 0x72e2}, + {0x8230a537, 0x9321}, + {0x8230a538, 0x5d49}, + {0x8230a539, 0xb024}, + {0x8230a630, 0x8f76}, + {0x8230a631, 0xffff3618}, + {0x8230a632, 0xb028}, + {0x8230a633, 0x6ed8}, + {0x8230a634, 0x4836}, + {0x8230a635, 0x8419}, + {0x8230a636, 0x63ad}, + {0x8230a637, 0x4926}, + {0x8230a638, 0x3f28}, + {0x8230a639, 0xa79c}, + {0x8230a730, 0xa48c}, + {0x8230a731, 0xadda}, + {0x8230a732, 0xa206}, + {0x8230a733, 0x523c}, + {0x8230a734, 0x8d9d}, + {0x8230a735, 0xad28}, + {0x8230a736, 0x841c}, + {0x8230a737, 0x3f20}, + {0x8230a738, 0x5dea}, + {0x8230a739, 0x6b06}, + {0x8230a830, 0x3c5e}, + {0x8230a831, 0x3c18}, + {0x8230a832, 0xffff362e}, + {0x8230a833, 0x4530}, + {0x8230a834, 0xbffa}, + {0x8230a835, 0x9c5c}, + {0x8230a836, 0x6c59}, + {0x8230a837, 0x8e9e}, + {0x8230a838, 0xc798}, + {0x8230a839, 0x424e}, + {0x8230a930, 0x6971}, + {0x8230a931, 0x3b69}, + {0x8230a932, 0xbd00}, + {0x8230a933, 0x49f9}, + {0x8230a934, 0x5344}, + {0x8230a935, 0xb59e}, + {0x8230a936, 0xffff363c}, + {0x8230a937, 0xbc86}, + {0x8230a938, 0xffff363e}, + {0x8230a939, 0x8426}, + {0x8230aa30, 0x7974}, + {0x8230aa31, 0x7e2c}, + {0x8230aa32, 0x5132}, + {0x8230aa33, 0x3d6c}, + {0x8230aa34, 0x3f41}, + {0x8230aa35, 0x3dcd}, + {0x8230aa36, 0xffff3646}, + {0x8230aa37, 0x48bc}, + {0x8230aa38, 0xa7ea}, + {0x8230aa39, 0x9ec9}, + {0x8230ab30, 0x450d}, + {0x8230ab31, 0xffff364b}, + {0x8230ab32, 0x9a60}, + {0x8230ab33, 0x5196}, + {0x8230ab34, 0xa2c6}, + {0x8230ab35, 0x56f8}, + {0x8230ab36, 0x51c4}, + {0x8230ab37, 0xb99c}, + {0x8230ab38, 0xb29e}, + {0x8230ab39, 0x7146}, + {0x8230ac30, 0xa364}, + {0x8230ac31, 0x70ac}, + {0x8230ac32, 0xffff3656}, + {0x8230ac33, 0xa2c8}, + {0x8230ac34, 0xb1b6}, + {0x8230ac35, 0x79e5}, + {0x8230ac36, 0xabe0}, + {0x8230ac37, 0x423d}, + {0x8230ac38, 0xffff365c}, + {0x8230ac39, 0xaac2}, + {0x8230ad30, 0x8435}, + {0x8230ad31, 0x7375}, + {0x8230ad32, 0xb338}, + {0x8230ad33, 0xc662}, + {0x8230ad34, 0x7d1a}, + {0x8230ad35, 0xbf34}, + {0x8230ad36, 0xa7f1}, + {0x8230ad37, 0x5c52}, + {0x8230ad38, 0xaacd}, + {0x8230ad39, 0x7979}, + {0x8230ae30, 0x644a}, + {0x8230ae31, 0x7746}, + {0x8230ae32, 0xb509}, + {0x8230ae33, 0x64f5}, + {0x8230ae34, 0xb620}, + {0x8230ae35, 0xffff366d}, + {0x8230ae36, 0x4bba}, + {0x8230ae37, 0xb50a}, + {0x8230ae38, 0xab48}, + {0x8230ae39, 0x5e12}, + {0x8230af30, 0xb78e}, + {0x8230af31, 0x6eec}, + {0x8230af32, 0x44d4}, + {0x8230af33, 0x9c34}, + {0x8230af34, 0x9d21}, + {0x8230af35, 0xc198}, + {0x8230af36, 0x8992}, + {0x8230af37, 0x7ee9}, + {0x8230af38, 0x715d}, + {0x8230af39, 0x4472}, + {0x8230b030, 0x7446}, + {0x8230b031, 0xffff367d}, + {0x8230b032, 0xae59}, + {0x8230b033, 0xffff367f}, + {0x8230b034, 0xa6b2}, + {0x8230b035, 0x8d3e}, + {0x8230b036, 0x82ce}, + {0x8230b037, 0xbbc0}, + {0x8230b038, 0xffff3684}, + {0x8230b039, 0x7991}, + {0x8230b130, 0x56dc}, + {0x8230b131, 0xc64d}, + {0x8230b132, 0xffff3688}, + {0x8230b133, 0x5a4e}, + {0x8230b134, 0x6e96}, + {0x8230b135, 0x4f02}, + {0x8230b136, 0x63aa}, + {0x8230b137, 0x717c}, + {0x8230b138, 0xffff368e}, + {0x8230b139, 0x5856}, + {0x8230b230, 0x9db0}, + {0x8230b231, 0xffff3691}, + {0x8230b232, 0x946c}, + {0x8230b233, 0x7295}, + {0x8230b234, 0x841e}, + {0x8230b235, 0x5615}, + {0x8230b236, 0x5858}, + {0x8230b237, 0x8d45}, + {0x8230b238, 0x3d54}, + {0x8230b239, 0x660a}, + {0x8230b330, 0x6ffe}, + {0x8230b331, 0xa732}, + {0x8230b332, 0xb9e9}, + {0x8230b333, 0xc4e9}, + {0x8230b334, 0x95d1}, + {0x8230b335, 0x49d8}, + {0x8230b336, 0xaa02}, + {0x8230b337, 0x6545}, + {0x8230b338, 0x8510}, + {0x8230b339, 0x6865}, + {0x8230b430, 0xb430}, + {0x8230b431, 0xb8d5}, + {0x8230b432, 0x6406}, + {0x8230b433, 0xb038}, + {0x8230b434, 0x9575}, + {0x8230b435, 0x90d4}, + {0x8230b436, 0x5dec}, + {0x8230b437, 0x92f1}, + {0x8230b438, 0x6e2c}, + {0x8230b439, 0xb814}, + {0x8230b530, 0x4c51}, + {0x8230b531, 0xaebc}, + {0x8230b532, 0x8689}, + {0x8230b533, 0x8ea0}, + {0x8230b534, 0x4432}, + {0x8230b535, 0x5204}, + {0x8230b536, 0x4250}, + {0x8230b537, 0x4fd9}, + {0x8230b538, 0x997a}, + {0x8230b539, 0x826c}, + {0x8230b630, 0x991d}, + {0x8230b631, 0x7dd2}, + {0x8230b632, 0xbc29}, + {0x8230b633, 0x6415}, + {0x8230b634, 0x84b6}, + {0x8230b635, 0x8d16}, + {0x8230b636, 0xac51}, + {0x8230b637, 0x8662}, + {0x8230b638, 0xc6d8}, + {0x8230b639, 0x86d9}, + {0x8230b730, 0x853a}, + {0x8230b731, 0x6972}, + {0x8230b732, 0xb320}, + {0x8230b733, 0x5324}, + {0x8230b734, 0x51e1}, + {0x8230b735, 0xffff36c7}, + {0x8230b736, 0xffff36c8}, + {0x8230b737, 0xffff36c9}, + {0x8230b738, 0x51e2}, + {0x8230b739, 0xffff36cb}, + {0x8230b830, 0xffff36cc}, + {0x8230b831, 0x8d52}, + {0x8230b832, 0x7c40}, + {0x8230b833, 0x8eea}, + {0x8230b834, 0x9382}, + {0x8230b835, 0x42fc}, + {0x8230b836, 0x5054}, + {0x8230b837, 0xa5fd}, + {0x8230b838, 0x5540}, + {0x8230b839, 0xb482}, + {0x8230b930, 0x9b64}, + {0x8230b931, 0x8d42}, + {0x8230b932, 0x8924}, + {0x8230b933, 0xab91}, + {0x8230b934, 0xa006}, + {0x8230b935, 0x958e}, + {0x8230b936, 0xb824}, + {0x8230b937, 0x3e3e}, + {0x8230b938, 0x79f2}, + {0x8230b939, 0xffff36df}, + {0x8230ba30, 0xa86a}, + {0x8230ba31, 0xffff36e1}, + {0x8230ba32, 0xffff36e2}, + {0x8230ba33, 0xbbe5}, + {0x8230ba34, 0x74a1}, + {0x8230ba35, 0x9bd2}, + {0x8230ba36, 0x7308}, + {0x8230ba37, 0x7d38}, + {0x8230ba38, 0x8ca4}, + {0x8230ba39, 0xc354}, + {0x8230bb30, 0xb0b2}, + {0x8230bb31, 0xa610}, + {0x8230bb32, 0x7ad2}, + {0x8230bb33, 0xa611}, + {0x8230bb34, 0x9385}, + {0x8230bb35, 0x53ec}, + {0x8230bb36, 0x6351}, + {0x8230bb37, 0xa365}, + {0x8230bb38, 0x5364}, + {0x8230bb39, 0x4e60}, + {0x8230bc30, 0x82fd}, + {0x8230bc31, 0x4650}, + {0x8230bc32, 0x9cd1}, + {0x8230bc33, 0x6429}, + {0x8230bc34, 0x9851}, + {0x8230bc35, 0x881e}, + {0x8230bc36, 0x3bb2}, + {0x8230bc37, 0x7081}, + {0x8230bc38, 0x43c4}, + {0x8230bc39, 0x9450}, + {0x8230bd30, 0xa87a}, + {0x8230bd31, 0xc23e}, + {0x8230bd32, 0xffff3700}, + {0x8230bd33, 0xffff3701}, + {0x8230bd34, 0x554c}, + {0x8230bd35, 0x76ca}, + {0x8230bd36, 0xaed4}, + {0x8230bd37, 0xad62}, + {0x8230bd38, 0x7fb6}, + {0x8230bd39, 0x62e1}, + {0x8230be30, 0xa5b5}, + {0x8230be31, 0xb776}, + {0x8230be32, 0xbea9}, + {0x8230be33, 0xb4dd}, + {0x8230be34, 0x8504}, + {0x8230be35, 0x9d05}, + {0x8230be36, 0xa645}, + {0x8230be37, 0xbbee}, + {0x8230be38, 0x9858}, + {0x8230be39, 0x8908}, + {0x8230bf30, 0xb4bd}, + {0x8230bf31, 0x4bdc}, + {0x8230bf32, 0xffff3714}, + {0x8230bf33, 0x7659}, + {0x8230bf34, 0x433d}, + {0x8230bf35, 0x42c6}, + {0x8230bf36, 0x6cfa}, + {0x8230bf37, 0x7afa}, + {0x8230bf38, 0x9a85}, + {0x8230bf39, 0x9286}, + {0x8230c030, 0x3c68}, + {0x8230c031, 0x3be2}, + {0x8230c032, 0x8c3e}, + {0x8230c033, 0xffff371f}, + {0x8230c034, 0x4b14}, + {0x8230c035, 0x4a69}, + {0x8230c036, 0x7c51}, + {0x8230c037, 0x90c0}, + {0x8230c038, 0x83d8}, + {0x8230c039, 0x7ce6}, + {0x8230c130, 0xabad}, + {0x8230c131, 0xbb5e}, + {0x8230c132, 0x8261}, + {0x8230c133, 0x3c71}, + {0x8230c134, 0x95ae}, + {0x8230c135, 0x7e74}, + {0x8230c136, 0xffff372c}, + {0x8230c137, 0xffff372d}, + {0x8230c138, 0x732e}, + {0x8230c139, 0xa68e}, + {0x8230c230, 0xbba4}, + {0x8230c231, 0xc2a1}, + {0x8230c232, 0xb71e}, + {0x8230c233, 0x611e}, + {0x8230c234, 0x7f32}, + {0x8230c235, 0x840c}, + {0x8230c236, 0x53f9}, + {0x8230c237, 0x7f60}, + {0x8230c238, 0x8459}, + {0x8230c239, 0x8faa}, + {0x8230c330, 0xbce0}, + {0x8230c331, 0x7b6e}, + {0x8230c332, 0xc1a6}, + {0x8230c333, 0xc60c}, + {0x8230c334, 0x5cc8}, + {0x8230c335, 0xad29}, + {0x8230c336, 0x5ded}, + {0x8230c337, 0xad96}, + {0x8230c338, 0xc20a}, + {0x8230c339, 0x8014}, + {0x8230c430, 0x499d}, + {0x8230c431, 0x59fa}, + {0x8230c432, 0xffff3746}, + {0x8230c433, 0x49aa}, + {0x8230c434, 0x7b6c}, + {0x8230c435, 0x3dc5}, + {0x8230c436, 0x978d}, + {0x8230c437, 0x7779}, + {0x8230c438, 0x6bdc}, + {0x8230c439, 0xaaf5}, + {0x8230c530, 0x4fb9}, + {0x8230c531, 0x69e2}, + {0x8230c532, 0x9199}, + {0x8230c533, 0x8636}, + {0x8230c534, 0x6c14}, + {0x8230c535, 0x6fa0}, + {0x8230c536, 0xb229}, + {0x8230c537, 0x8486}, + {0x8230c538, 0xb376}, + {0x8230c539, 0x7342}, + {0x8230c630, 0xb7ad}, + {0x8230c631, 0xb5f8}, + {0x8230c632, 0xafe1}, + {0x8230c633, 0x9a61}, + {0x8230c634, 0xa612}, + {0x8230c635, 0x77e9}, + {0x8230c636, 0xaf2e}, + {0x8230c637, 0x7df5}, + {0x8230c638, 0x80ee}, + {0x8230c639, 0xc744}, + {0x8230c730, 0xb99d}, + {0x8230c731, 0xb4be}, + {0x8230c732, 0x59fc}, + {0x8230c733, 0x7f4a}, + {0x8230c734, 0x6e6e}, + {0x8230c735, 0xa464}, + {0x8230c736, 0xbaf5}, + {0x8230c737, 0x6f09}, + {0x8230c738, 0x4ed8}, + {0x8230c739, 0x79a1}, + {0x8230c830, 0x56ba}, + {0x8230c831, 0xac21}, + {0x8230c832, 0x4b4a}, + {0x8230c833, 0x8cf8}, + {0x8230c834, 0x7ffc}, + {0x8230c835, 0x7f05}, + {0x8230c836, 0x8de6}, + {0x8230c837, 0xffff3773}, + {0x8230c838, 0xa216}, + {0x8230c839, 0x4d78}, + {0x8230c930, 0x4d79}, + {0x8230c931, 0xaed5}, + {0x8230c932, 0x4034}, + {0x8230c933, 0x84fc}, + {0x8230c934, 0x7665}, + {0x8230c935, 0x6a64}, + {0x8230c936, 0xb8b4}, + {0x8230c937, 0x98c8}, + {0x8230c938, 0xc790}, + {0x8230c939, 0x4214}, + {0x8230ca30, 0x6251}, + {0x8230ca31, 0xb250}, + {0x8230ca32, 0xa0f1}, + {0x8230ca33, 0x657c}, + {0x8230ca34, 0x3bac}, + {0x8230ca35, 0x7c06}, + {0x8230ca36, 0x6535}, + {0x8230ca37, 0xa366}, + {0x8230ca38, 0x4178}, + {0x8230ca39, 0xbc65}, + {0x8230cb30, 0xad64}, + {0x8230cb31, 0x83ce}, + {0x8230cb32, 0xbc26}, + {0x8230cb33, 0xffff378d}, + {0x8230cb34, 0x3cc9}, + {0x8230cb35, 0xbf94}, + {0x8230cb36, 0x6c15}, + {0x8230cb37, 0xa346}, + {0x8230cb38, 0xab09}, + {0x8230cb39, 0x8b01}, + {0x8230cc30, 0xb378}, + {0x8230cc31, 0xab0a}, + {0x8230cc32, 0x49fa}, + {0x8230cc33, 0x8eec}, + {0x8230cc34, 0x507d}, + {0x8230cc35, 0x8412}, + {0x8230cc36, 0x8b11}, + {0x8230cc37, 0x653a}, + {0x8230cc38, 0xa0d8}, + {0x8230cc39, 0xffff379d}, + {0x8230cd30, 0x99d2}, + {0x8230cd31, 0x4eda}, + {0x8230cd32, 0x7748}, + {0x8230cd33, 0xbec5}, + {0x8230cd34, 0xc124}, + {0x8230cd35, 0x54b5}, + {0x8230cd36, 0xb5e4}, + {0x8230cd37, 0x4392}, + {0x8230cd38, 0x652c}, + {0x8230cd39, 0x62b6}, + {0x8230ce30, 0xc60d}, + {0x8230ce31, 0x72ba}, + {0x8230ce32, 0x82d4}, + {0x8230ce33, 0xc6d1}, + {0x8230ce34, 0x8de8}, + {0x8230ce35, 0x4c0c}, + {0x8230ce36, 0xffff37ae}, + {0x8230ce37, 0x8ab5}, + {0x8230ce38, 0xad08}, + {0x8230ce39, 0x4a54}, + {0x8230cf30, 0xb7e5}, + {0x8230cf31, 0x5046}, + {0x8230cf32, 0x4709}, + {0x8230cf33, 0x9d59}, + {0x8230cf34, 0x8085}, + {0x8230cf35, 0x61dd}, + {0x8230cf36, 0x9afa}, + {0x8230cf37, 0x6f8e}, + {0x8230cf38, 0xc6e9}, + {0x8230cf39, 0x5dee}, + {0x8230d030, 0x4679}, + {0x8230d031, 0xae70}, + {0x8230d032, 0x8349}, + {0x8230d033, 0x8a16}, + {0x8230d034, 0x764a}, + {0x8230d035, 0x3be8}, + {0x8230d036, 0x81d9}, + {0x8230d037, 0x991e}, + {0x8230d038, 0xa984}, + {0x8230d039, 0xb145}, + {0x8230d130, 0x60c5}, + {0x8230d131, 0x4b96}, + {0x8230d132, 0x8eed}, + {0x8230d133, 0x7394}, + {0x8230d134, 0x563e}, + {0x8230d135, 0x5134}, + {0x8230d136, 0x7d82}, + {0x8230d137, 0x7344}, + {0x8230d138, 0xa192}, + {0x8230d139, 0x5d11}, + {0x8230d230, 0x7d9a}, + {0x8230d231, 0x41a4}, + {0x8230d232, 0x909d}, + {0x8230d233, 0x8a25}, + {0x8230d234, 0x5d12}, + {0x8230d235, 0xffff37d5}, + {0x8230d236, 0x79f4}, + {0x8230d237, 0x40dc}, + {0x8230d238, 0x9f04}, + {0x8230d239, 0xbd56}, + {0x8230d330, 0x8a36}, + {0x8230d331, 0xbcc8}, + {0x8230d332, 0x7f42}, + {0x8230d333, 0x8698}, + {0x8230d334, 0xbed4}, + {0x8230d335, 0xa9b9}, + {0x8230d336, 0x580c}, + {0x8230d337, 0xffff37e1}, + {0x8230d338, 0x8a38}, + {0x8230d339, 0xffff37e3}, + {0x8230d430, 0x7ad4}, + {0x8230d431, 0x438d}, + {0x8230d432, 0xbc32}, + {0x8230d433, 0x527d}, + {0x8230d434, 0x50ed}, + {0x8230d435, 0x809e}, + {0x8230d436, 0xa2c9}, + {0x8230d437, 0x9014}, + {0x8230d438, 0x9a2a}, + {0x8230d439, 0x80a0}, + {0x8230d530, 0xa04a}, + {0x8230d531, 0x527e}, + {0x8230d532, 0x8110}, + {0x8230d533, 0xb239}, + {0x8230d534, 0xbaf6}, + {0x8230d535, 0x75b5}, + {0x8230d536, 0x7171}, + {0x8230d537, 0x5816}, + {0x8230d538, 0xbaf8}, + {0x8230d539, 0x4bb2}, + {0x8230d630, 0x583a}, + {0x8230d631, 0x73a1}, + {0x8230d632, 0x7a30}, + {0x8230d633, 0x8c40}, + {0x8230d634, 0x3c28}, + {0x8230d635, 0x409d}, + {0x8230d636, 0xb781}, + {0x8230d637, 0x7da0}, + {0x8230d638, 0x4d46}, + {0x8230d639, 0x438e}, + {0x8230d730, 0x3c29}, + {0x8230d731, 0xffff3803}, + {0x8230d732, 0xa6d6}, + {0x8230d733, 0x567d}, + {0x8230d734, 0x4c74}, + {0x8230d735, 0x6bfa}, + {0x8230d736, 0x92c5}, + {0x8230d737, 0x9fed}, + {0x8230d738, 0x8f61}, + {0x8230d739, 0x52a1}, + {0x8230d830, 0x89f5}, + {0x8230d831, 0x64f6}, + {0x8230d832, 0x64f8}, + {0x8230d833, 0x60d0}, + {0x8230d834, 0x691c}, + {0x8230d835, 0xc754}, + {0x8230d836, 0x40a1}, + {0x8230d837, 0x7eea}, + {0x8230d838, 0x3d18}, + {0x8230d839, 0xa382}, + {0x8230d930, 0xb40c}, + {0x8230d931, 0x3c72}, + {0x8230d932, 0xb9b4}, + {0x8230d933, 0x5dd9}, + {0x8230d934, 0x5141}, + {0x8230d935, 0xa4e1}, + {0x8230d936, 0xb3c5}, + {0x8230d937, 0x4af8}, + {0x8230d938, 0xffff381e}, + {0x8230d939, 0x74f5}, + {0x8230da30, 0x7a6e}, + {0x8230da31, 0x840d}, + {0x8230da32, 0x611d}, + {0x8230da33, 0x75fc}, + {0x8230da34, 0xffff3824}, + {0x8230da35, 0x7c80}, + {0x8230da36, 0x556e}, + {0x8230da37, 0x7f99}, + {0x8230da38, 0xba91}, + {0x8230da39, 0x61c8}, + {0x8230db30, 0x6cc1}, + {0x8230db31, 0xffff382b}, + {0x8230db32, 0xffff382c}, + {0x8230db33, 0xbea6}, + {0x8230db34, 0x86f0}, + {0x8230db35, 0xb3e2}, + {0x8230db36, 0xffff3830}, + {0x8230db37, 0x657d}, + {0x8230db38, 0x3ef4}, + {0x8230db39, 0xffff3833}, + {0x8230dc30, 0x914e}, + {0x8230dc31, 0x61c9}, + {0x8230dc32, 0x5369}, + {0x8230dc33, 0x58ae}, + {0x8230dc34, 0x55c1}, + {0x8230dc35, 0x69e4}, + {0x8230dc36, 0x93d5}, + {0x8230dc37, 0xa5e4}, + {0x8230dc38, 0x991c}, + {0x8230dc39, 0x9fc1}, + {0x8230dd30, 0xba9a}, + {0x8230dd31, 0xc5ae}, + {0x8230dd32, 0x3f29}, + {0x8230dd33, 0x7089}, + {0x8230dd34, 0x7570}, + {0x8230dd35, 0x61cd}, + {0x8230dd36, 0xaec1}, + {0x8230dd37, 0x853c}, + {0x8230dd38, 0x61ce}, + {0x8230dd39, 0xbfa0}, + {0x8230de30, 0xa46e}, + {0x8230de31, 0xa86e}, + {0x8230de32, 0x8b56}, + {0x8230de33, 0xb28c}, + {0x8230de34, 0x7df6}, + {0x8230de35, 0xffff384d}, + {0x8230de36, 0x9449}, + {0x8230de37, 0x97d5}, + {0x8230de38, 0x66b8}, + {0x8230de39, 0x68c6}, + {0x8230df30, 0xc524}, + {0x8230df31, 0x71c2}, + {0x8230df32, 0xa5ac}, + {0x8230df33, 0xb690}, + {0x8230df34, 0x493c}, + {0x8230df35, 0x9e16}, + {0x8230df36, 0x765a}, + {0x8230df37, 0x3ede}, + {0x8230df38, 0x59ca}, + {0x8230df39, 0x61d5}, + {0x8230e030, 0xab39}, + {0x8230e031, 0x559e}, + {0x8230e032, 0x7a0c}, + {0x8230e033, 0xbd0d}, + {0x8230e034, 0xc118}, + {0x8230e035, 0x4879}, + {0x8230e036, 0x7d5e}, + {0x8230e037, 0x79a9}, + {0x8230e038, 0xffff3864}, + {0x8230e039, 0xb681}, + {0x8230e130, 0x887d}, + {0x8230e131, 0xc120}, + {0x8230e132, 0x6704}, + {0x8230e133, 0x7b5c}, + {0x8230e134, 0x8321}, + {0x8230e135, 0xb4c0}, + {0x8230e136, 0xffff386c}, + {0x8230e137, 0x65a5}, + {0x8230e138, 0x6506}, + {0x8230e139, 0xbe54}, + {0x8230e230, 0xb97a}, + {0x8230e231, 0x6bc8}, + {0x8230e232, 0x6144}, + {0x8230e233, 0xc1b4}, + {0x8230e234, 0x722a}, + {0x8230e235, 0x7864}, + {0x8230e236, 0xc1c1}, + {0x8230e237, 0x3e8a}, + {0x8230e238, 0xbe29}, + {0x8230e239, 0x6c16}, + {0x8230e330, 0x4ca1}, + {0x8230e331, 0x7736}, + {0x8230e332, 0xb985}, + {0x8230e333, 0xbf64}, + {0x8230e334, 0xa8fa}, + {0x8230e335, 0x476d}, + {0x8230e336, 0x4a3e}, + {0x8230e337, 0x4745}, + {0x8230e338, 0xb042}, + {0x8230e339, 0x7345}, + {0x8230e430, 0x5055}, + {0x8230e431, 0x79e4}, + {0x8230e432, 0x444a}, + {0x8230e433, 0xffff3887}, + {0x8230e434, 0xa0dc}, + {0x8230e435, 0x43de}, + {0x8230e436, 0x3b54}, + {0x8230e437, 0x4751}, + {0x8230e438, 0xffff388c}, + {0x8230e439, 0xb73d}, + {0x8230e530, 0xbfb2}, + {0x8230e531, 0xa022}, + {0x8230e532, 0x520a}, + {0x8230e533, 0xa0de}, + {0x8230e534, 0x43e9}, + {0x8230e535, 0xbf35}, + {0x8230e536, 0xc696}, + {0x8230e537, 0xb782}, + {0x8230e538, 0x85ea}, + {0x8230e539, 0x8d2e}, + {0x8230e630, 0x766e}, + {0x8230e631, 0x6a69}, + {0x8230e632, 0x7aac}, + {0x8230e633, 0xb0dc}, + {0x8230e634, 0x6f12}, + {0x8230e635, 0x9a44}, + {0x8230e636, 0xb571}, + {0x8230e637, 0x4430}, + {0x8230e638, 0x6b75}, + {0x8230e639, 0x682d}, + {0x8230e730, 0x3fa2}, + {0x8230e731, 0x8e30}, + {0x8230e732, 0xbc80}, + {0x8230e733, 0x5011}, + {0x8230e734, 0x589c}, + {0x8230e735, 0x6d56}, + {0x8230e736, 0x5d4e}, + {0x8230e737, 0x4e3c}, + {0x8230e738, 0xa4ed}, + {0x8230e739, 0xffff38ab}, + {0x8230e830, 0x5f24}, + {0x8230e831, 0x9d5a}, + {0x8230e832, 0x470d}, + {0x8230e833, 0x4eee}, + {0x8230e834, 0x3f2a}, + {0x8230e835, 0xffff38b1}, + {0x8230e836, 0xaf02}, + {0x8230e837, 0x7a5a}, + {0x8230e838, 0xa5f2}, + {0x8230e839, 0xaaa2}, + {0x8230e930, 0x3f35}, + {0x8230e931, 0xffff38b7}, + {0x8230e932, 0x3f42}, + {0x8230e933, 0xffff38b9}, + {0x8230e934, 0xa870}, + {0x8230e935, 0x92aa}, + {0x8230e936, 0x40d2}, + {0x8230e937, 0x5311}, + {0x8230e938, 0x6d6a}, + {0x8230e939, 0xffff38bf}, + {0x8230ea30, 0xc098}, + {0x8230ea31, 0x3e5c}, + {0x8230ea32, 0x528e}, + {0x8230ea33, 0xba2c}, + {0x8230ea34, 0x8f92}, + {0x8230ea35, 0xbccd}, + {0x8230ea36, 0x7f66}, + {0x8230ea37, 0xb44e}, + {0x8230ea38, 0x99a6}, + {0x8230ea39, 0x5962}, + {0x8230eb30, 0xffff38ca}, + {0x8230eb31, 0x4c55}, + {0x8230eb32, 0x9484}, + {0x8230eb33, 0x9c1e}, + {0x8230eb34, 0x8205}, + {0x8230eb35, 0x6b45}, + {0x8230eb36, 0x4036}, + {0x8230eb37, 0x91c0}, + {0x8230eb38, 0x43a9}, + {0x8230eb39, 0x4301}, + {0x8230ec30, 0x4f96}, + {0x8230ec31, 0xffff38d5}, + {0x8230ec32, 0xffff38d6}, + {0x8230ec33, 0xffff38d7}, + {0x8230ec34, 0x6c18}, + {0x8230ec35, 0x4de8}, + {0x8230ec36, 0xa004}, + {0x8230ec37, 0x9bca}, + {0x8230ec38, 0xac09}, + {0x8230ec39, 0x99b6}, + {0x8230ed30, 0x51a1}, + {0x8230ed31, 0xa734}, + {0x8230ed32, 0x9d5d}, + {0x8230ed33, 0xffff38e1}, + {0x8230ed34, 0x9e02}, + {0x8230ed35, 0x9488}, + {0x8230ed36, 0x6799}, + {0x8230ed37, 0xc21d}, + {0x8230ed38, 0xa2c0}, + {0x8230ed39, 0xb66a}, + {0x8230ee30, 0xffff38e8}, + {0x8230ee31, 0xffff38e9}, + {0x8230ee32, 0x6180}, + {0x8230ee33, 0xc2f9}, + {0x8230ee34, 0x8b12}, + {0x8230ee35, 0xc652}, + {0x8230ee36, 0xffff38ee}, + {0x8230ee37, 0xab32}, + {0x8230ee38, 0xab3a}, + {0x8230ee39, 0xbd66}, + {0x8230ef30, 0xa2e1}, + {0x8230ef31, 0xffff38f3}, + {0x8230ef32, 0xffff38f4}, + {0x8230ef33, 0x9bed}, + {0x8230ef34, 0xbe7e}, + {0x8230ef35, 0x84b2}, + {0x8230ef36, 0xffff38f8}, + {0x8230ef37, 0xffff38f9}, + {0x8230ef38, 0xab81}, + {0x8230ef39, 0xb431}, + {0x8230f030, 0x9135}, + {0x8230f031, 0x9835}, + {0x8230f032, 0x43f9}, + {0x8230f033, 0xc54e}, + {0x8230f034, 0xa2b1}, + {0x8230f035, 0x9ec2}, + {0x8230f036, 0x64ac}, + {0x8230f037, 0x5414}, + {0x8230f038, 0x86aa}, + {0x8230f039, 0x3b6a}, + {0x8230f130, 0x53d9}, + {0x8230f131, 0x3c50}, + {0x8230f132, 0x8de9}, + {0x8230f133, 0x8b40}, + {0x8230f134, 0xaa62}, + {0x8230f135, 0x54b6}, + {0x8230f136, 0x579a}, + {0x8230f137, 0x8cb6}, + {0x8230f138, 0x5890}, + {0x8230f139, 0x9fc2}, + {0x8230f230, 0x4434}, + {0x8230f231, 0xb88a}, + {0x8230f232, 0x582d}, + {0x8230f233, 0x3e94}, + {0x8230f234, 0x56d4}, + {0x8230f235, 0x48b0}, + {0x8230f236, 0xc429}, + {0x8230f237, 0xffff3917}, + {0x8230f238, 0x52c5}, + {0x8230f239, 0x5da9}, + {0x8230f330, 0x9162}, + {0x8230f331, 0xae75}, + {0x8230f332, 0x47ad}, + {0x8230f333, 0x4401}, + {0x8230f334, 0x7011}, + {0x8230f335, 0x77a9}, + {0x8230f336, 0x7571}, + {0x8230f337, 0xb9d5}, + {0x8230f338, 0x86e1}, + {0x8230f339, 0xb46a}, + {0x8230f430, 0x5cdc}, + {0x8230f431, 0x7572}, + {0x8230f432, 0x5f90}, + {0x8230f433, 0x599c}, + {0x8230f434, 0x6fa9}, + {0x8230f435, 0xbb40}, + {0x8230f436, 0x4d7a}, + {0x8230f437, 0x62c1}, + {0x8230f438, 0x6869}, + {0x8230f439, 0x5b89}, + {0x8230f530, 0x6b81}, + {0x8230f531, 0xc7a6}, + {0x8230f532, 0x56e6}, + {0x8230f533, 0x8d5d}, + {0x8230f534, 0x3e2c}, + {0x8230f535, 0x45ac}, + {0x8230f536, 0x4a05}, + {0x8230f537, 0x7d84}, + {0x8230f538, 0x5cf4}, + {0x8230f539, 0xa73e}, + {0x8230f630, 0x8eee}, + {0x8230f631, 0x6229}, + {0x8230f632, 0x7b7c}, + {0x8230f633, 0xaaac}, + {0x8230f634, 0x4804}, + {0x8230f635, 0x9354}, + {0x8230f636, 0xafa1}, + {0x8230f637, 0xc17d}, + {0x8230f638, 0x4d82}, + {0x8230f639, 0x9dbd}, + {0x8230f730, 0x7eb4}, + {0x8230f731, 0x7888}, + {0x8230f732, 0x979a}, + {0x8230f733, 0xa0fe}, + {0x8230f734, 0x42d5}, + {0x8230f735, 0x4f58}, + {0x8230f736, 0x4776}, + {0x8230f737, 0x86fe}, + {0x8230f738, 0xb32d}, + {0x8230f739, 0x6c61}, + {0x8230f830, 0x657e}, + {0x8230f831, 0x74b2}, + {0x8230f832, 0x9eca}, + {0x8230f833, 0xbb45}, + {0x8230f834, 0xb7f9}, + {0x8230f835, 0x42a1}, + {0x8230f836, 0x89d8}, + {0x8230f837, 0xb9ea}, + {0x8230f838, 0x7655}, + {0x8230f839, 0x4a61}, + {0x8230f930, 0xffff3957}, + {0x8230f931, 0xffff3958}, + {0x8230f932, 0xffff3959}, + {0x8230f933, 0xb905}, + {0x8230f934, 0x64c6}, + {0x8230f935, 0xa3c4}, + {0x8230f936, 0x7f8c}, + {0x8230f937, 0x9b04}, + {0x8230f938, 0xaabc}, + {0x8230f939, 0xacd4}, + {0x8230fa30, 0x477c}, + {0x8230fa31, 0x8f04}, + {0x8230fa32, 0x62e2}, + {0x8230fa33, 0x6a39}, + {0x8230fa34, 0xb912}, + {0x8230fa35, 0x8d68}, + {0x8230fa36, 0x98e1}, + {0x8230fa37, 0x98d5}, + {0x8230fa38, 0x51c0}, + {0x8230fa39, 0x7a02}, + {0x8230fb30, 0x5155}, + {0x8230fb31, 0x8640}, + {0x8230fb32, 0x9c55}, + {0x8230fb33, 0xb64d}, + {0x8230fb34, 0x936d}, + {0x8230fb35, 0x5472}, + {0x8230fb36, 0x45d6}, + {0x8230fb37, 0xbaf9}, + {0x8230fb38, 0xb3a5}, + {0x8230fb39, 0x637e}, + {0x8230fc30, 0x93a4}, + {0x8230fc31, 0xb4f5}, + {0x8230fc32, 0x80d6}, + {0x8230fc33, 0x550c}, + {0x8230fc34, 0x5e69}, + {0x8230fc35, 0xffff397b}, + {0x8230fc36, 0xb674}, + {0x8230fc37, 0x4380}, + {0x8230fc38, 0x83a6}, + {0x8230fc39, 0x3c6e}, + {0x8230fd30, 0x5584}, + {0x8230fd31, 0x7666}, + {0x8230fd32, 0x451e}, + {0x8230fd33, 0x44a9}, + {0x8230fd34, 0x7ca8}, + {0x8230fd35, 0x4f3c}, + {0x8230fd36, 0x5ff8}, + {0x8230fd37, 0x7afc}, + {0x8230fd38, 0x3b7c}, + {0x8230fd39, 0xb50c}, + {0x8230fe30, 0x60d1}, + {0x8230fe31, 0xbde2}, + {0x8230fe32, 0x6002}, + {0x8230fe33, 0x52a2}, + {0x8230fe34, 0x63cd}, + {0x8230fe35, 0x9b59}, + {0x8230fe36, 0x83b0}, + {0x8230fe37, 0xa925}, + {0x8230fe38, 0x74dc}, + {0x8230fe39, 0xa92d}, + {0x82318130, 0xafc2}, + {0x82318131, 0x79a2}, + {0x82318132, 0x7eb8}, + {0x82318133, 0x6a44}, + {0x82318134, 0x6469}, + {0x82318135, 0xffff3999}, + {0x82318136, 0x4051}, + {0x82318137, 0xb9b9}, + {0x82318138, 0x63d1}, + {0x82318139, 0x8052}, + {0x82318230, 0x4828}, + {0x82318231, 0x7cea}, + {0x82318232, 0xffff39a0}, + {0x82318233, 0xbba5}, + {0x82318234, 0x69b8}, + {0x82318235, 0xa3f9}, + {0x82318236, 0xb572}, + {0x82318237, 0xadc6}, + {0x82318238, 0xa779}, + {0x82318239, 0x42f6}, + {0x82318330, 0x731c}, + {0x82318331, 0xb65a}, + {0x82318332, 0xab72}, + {0x82318333, 0xbc6a}, + {0x82318334, 0x7bf2}, + {0x82318335, 0x78e9}, + {0x82318336, 0xffff39ae}, + {0x82318337, 0xb9cc}, + {0x82318338, 0x669c}, + {0x82318339, 0xa4bd}, + {0x82318430, 0xbc84}, + {0x82318431, 0xbc88}, + {0x82318432, 0x58b9}, + {0x82318433, 0xc3a6}, + {0x82318434, 0x4f4c}, + {0x82318435, 0xb7c6}, + {0x82318436, 0x653c}, + {0x82318437, 0xb158}, + {0x82318438, 0x9265}, + {0x82318439, 0xa6dd}, + {0x82318530, 0x98bc}, + {0x82318531, 0xba61}, + {0x82318532, 0xb361}, + {0x82318533, 0x8c0d}, + {0x82318534, 0x64b0}, + {0x82318535, 0x8fd4}, + {0x82318536, 0x9e9c}, + {0x82318537, 0x8964}, + {0x82318538, 0x8c0c}, + {0x82318539, 0x81f0}, + {0x82318630, 0x6a20}, + {0x82318631, 0x7dd0}, + {0x82318632, 0xb63a}, + {0x82318633, 0x5776}, + {0x82318634, 0x88ee}, + {0x82318635, 0xadf5}, + {0x82318636, 0x7de1}, + {0x82318637, 0x5422}, + {0x82318638, 0xaf40}, + {0x82318639, 0x624e}, + {0x82318730, 0xb9d1}, + {0x82318731, 0x5ab5}, + {0x82318732, 0x5af5}, + {0x82318733, 0x795c}, + {0x82318734, 0x5255}, + {0x82318735, 0xc619}, + {0x82318736, 0xc636}, + {0x82318737, 0x3f2c}, + {0x82318738, 0xa1d2}, + {0x82318739, 0x7304}, + {0x82318830, 0xffff39dc}, + {0x82318831, 0x8b46}, + {0x82318832, 0x3cae}, + {0x82318833, 0xffff39e0}, + {0x82318834, 0x5cdd}, + {0x82318835, 0xb5a0}, + {0x82318836, 0xc3a2}, + {0x82318837, 0x47e6}, + {0x82318838, 0xa8b6}, + {0x82318839, 0xae08}, + {0x82318930, 0x97be}, + {0x82318931, 0x8ee0}, + {0x82318932, 0x86b1}, + {0x82318933, 0x5bdc}, + {0x82318934, 0x52e2}, + {0x82318935, 0x599e}, + {0x82318936, 0x8e6a}, + {0x82318937, 0x5fe2}, + {0x82318938, 0x73bc}, + {0x82318939, 0x7bfa}, + {0x82318a30, 0x8225}, + {0x82318a31, 0x9339}, + {0x82318a32, 0xc5a6}, + {0x82318a33, 0xa4be}, + {0x82318a34, 0x8945}, + {0x82318a35, 0x6fe2}, + {0x82318a36, 0xa132}, + {0x82318a37, 0x86e2}, + {0x82318a38, 0x9dbe}, + {0x82318a39, 0x9bd4}, + {0x82318b30, 0xc562}, + {0x82318b31, 0x40a9}, + {0x82318b32, 0x5a99}, + {0x82318b33, 0x5fe9}, + {0x82318b34, 0x492a}, + {0x82318b35, 0x4139}, + {0x82318b36, 0xc21e}, + {0x82318b37, 0x5000}, + {0x82318b38, 0x5125}, + {0x82318b39, 0xbf6c}, + {0x82318c30, 0x8332}, + {0x82318c31, 0x7825}, + {0x82318c32, 0x8906}, + {0x82318c33, 0x6536}, + {0x82318c34, 0x80a1}, + {0x82318c35, 0xa368}, + {0x82318c36, 0x459e}, + {0x82318c37, 0x59fd}, + {0x82318c38, 0x3d74}, + {0x82318c39, 0x925c}, + {0x82318d30, 0x9c6a}, + {0x82318d31, 0x4239}, + {0x82318d32, 0xc654}, + {0x82318d33, 0x7130}, + {0x82318d34, 0x739a}, + {0x82318d35, 0x5d6c}, + {0x82318d36, 0xb6f9}, + {0x82318d37, 0xc24c}, + {0x82318d38, 0x6988}, + {0x82318d39, 0xac1e}, + {0x82318e30, 0xaac4}, + {0x82318e31, 0xaed6}, + {0x82318e32, 0x9475}, + {0x82318e33, 0x8bec}, + {0x82318e34, 0xaa90}, + {0x82318e35, 0x9a72}, + {0x82318e36, 0x5cc5}, + {0x82318e37, 0x7fbd}, + {0x82318e38, 0x6366}, + {0x82318e39, 0x8706}, + {0x82318f30, 0xb778}, + {0x82318f31, 0x7099}, + {0x82318f32, 0x824d}, + {0x82318f33, 0x99dc}, + {0x82318f34, 0x3e99}, + {0x82318f35, 0x47f1}, + {0x82318f36, 0x6989}, + {0x82318f37, 0x6241}, + {0x82318f38, 0x730c}, + {0x82318f39, 0xbafa}, + {0x82319030, 0x6095}, + {0x82319031, 0x503c}, + {0x82319032, 0x7210}, + {0x82319033, 0x5c3d}, + {0x82319034, 0xb1f6}, + {0x82319035, 0x437a}, + {0x82319036, 0x5bf5}, + {0x82319037, 0x67b6}, + {0x82319038, 0x6750}, + {0x82319039, 0x4d48}, + {0x82319130, 0x6a9d}, + {0x82319131, 0x7cd4}, + {0x82319132, 0x62f1}, + {0x82319133, 0x8024}, + {0x82319134, 0x42e1}, + {0x82319135, 0x7c85}, + {0x82319136, 0x87f2}, + {0x82319137, 0xb1a2}, + {0x82319138, 0x6cfc}, + {0x82319139, 0x6cfd}, + {0x82319230, 0x907e}, + {0x82319231, 0xffff3a42}, + {0x82319232, 0x8ba8}, + {0x82319233, 0x941e}, + {0x82319234, 0x47f5}, + {0x82319235, 0x6bfc}, + {0x82319236, 0x62fd}, + {0x82319237, 0xbc1d}, + {0x82319238, 0x4be6}, + {0x82319239, 0xadb4}, + {0x82319330, 0x9a9e}, + {0x82319331, 0x549c}, + {0x82319332, 0x4384}, + {0x82319333, 0xb2d6}, + {0x82319334, 0x5ec9}, + {0x82319335, 0x4d92}, + {0x82319336, 0xffff3a51}, + {0x82319337, 0x8dc6}, + {0x82319338, 0x62b1}, + {0x82319339, 0xa126}, + {0x82319430, 0x785e}, + {0x82319431, 0x8c95}, + {0x82319432, 0xaade}, + {0x82319433, 0x8389}, + {0x82319434, 0x9315}, + {0x82319435, 0x7eec}, + {0x82319436, 0xa0c2}, + {0x82319437, 0x7316}, + {0x82319438, 0x5dda}, + {0x82319439, 0x438a}, + {0x82319530, 0xbe64}, + {0x82319531, 0x3c1e}, + {0x82319532, 0x7bed}, + {0x82319533, 0x806e}, + {0x82319534, 0x628a}, + {0x82319535, 0x55fd}, + {0x82319536, 0xa83e}, + {0x82319537, 0xaae5}, + {0x82319538, 0x41f5}, + {0x82319539, 0x6324}, + {0x82319630, 0x8e46}, + {0x82319631, 0xaae6}, + {0x82319632, 0xc2a2}, + {0x82319633, 0xa6a2}, + {0x82319634, 0x68f1}, + {0x82319635, 0x8bbe}, + {0x82319636, 0x8911}, + {0x82319637, 0x68f2}, + {0x82319638, 0x6e0c}, + {0x82319639, 0x9034}, + {0x82319730, 0x6c99}, + {0x82319731, 0x52bc}, + {0x82319732, 0x846c}, + {0x82319733, 0x8bc9}, + {0x82319734, 0x4f86}, + {0x82319735, 0x4f88}, + {0x82319736, 0x8752}, + {0x82319737, 0x89ce}, + {0x82319738, 0xc142}, + {0x82319739, 0x8a39}, + {0x82319830, 0xc4ed}, + {0x82319831, 0x7042}, + {0x82319832, 0xb8d9}, + {0x82319833, 0x8da2}, + {0x82319834, 0x7045}, + {0x82319835, 0x5e40}, + {0x82319836, 0x5628}, + {0x82319837, 0x591c}, + {0x82319838, 0x4e26}, + {0x82319839, 0xa901}, + {0x82319930, 0x5c08}, + {0x82319931, 0x5e4d}, + {0x82319932, 0x90a5}, + {0x82319933, 0x5d5e}, + {0x82319934, 0xa009}, + {0x82319935, 0x41b0}, + {0x82319936, 0x9472}, + {0x82319937, 0x3f11}, + {0x82319938, 0x7ae0}, + {0x82319939, 0xb2be}, + {0x82319a30, 0x835e}, + {0x82319a31, 0x48ea}, + {0x82319a32, 0x933a}, + {0x82319a33, 0x4f25}, + {0x82319a34, 0x7ae1}, + {0x82319a35, 0xa031}, + {0x82319a36, 0xffff3a98}, + {0x82319a37, 0x6f95}, + {0x82319a38, 0x933c}, + {0x82319a39, 0xc06a}, + {0x82319b30, 0x48ee}, + {0x82319b31, 0x76d5}, + {0x82319b32, 0x7e04}, + {0x82319b33, 0x5158}, + {0x82319b34, 0x8ba0}, + {0x82319b35, 0x6ec8}, + {0x82319b36, 0x951a}, + {0x82319b37, 0xaa06}, + {0x82319b38, 0x3f8c}, + {0x82319b39, 0xbde9}, + {0x82319c30, 0xb678}, + {0x82319c31, 0xa679}, + {0x82319c32, 0x94a0}, + {0x82319c33, 0x9aa2}, + {0x82319c34, 0x9302}, + {0x82319c35, 0x92ba}, + {0x82319c36, 0x47f9}, + {0x82319c37, 0x7a7a}, + {0x82319c38, 0x78e0}, + {0x82319c39, 0x6ca0}, + {0x82319d30, 0xbe44}, + {0x82319d31, 0x619c}, + {0x82319d32, 0xffff3ab2}, + {0x82319d33, 0xffff3ab3}, + {0x82319d34, 0x6642}, + {0x82319d35, 0x3d5a}, + {0x82319d36, 0x6014}, + {0x82319d37, 0x504e}, + {0x82319d38, 0xc018}, + {0x82319d39, 0x7a36}, + {0x82319e30, 0x6c52}, + {0x82319e31, 0x6d81}, + {0x82319e32, 0x6f91}, + {0x82319e33, 0x9b84}, + {0x82319e34, 0x7c04}, + {0x82319e35, 0xbfa1}, + {0x82319e36, 0x4faa}, + {0x82319e37, 0x5102}, + {0x82319e38, 0xc46a}, + {0x82319e39, 0xb039}, + {0x82319f30, 0x8639}, + {0x82319f31, 0x8a26}, + {0x82319f32, 0xffff3ac6}, + {0x82319f33, 0xffff3ac7}, + {0x82319f34, 0xffff3ac8}, + {0x82319f35, 0x8380}, + {0x82319f36, 0xb3fa}, + {0x82319f37, 0xbe6a}, + {0x82319f38, 0xffff3acc}, + {0x82319f39, 0xb841}, + {0x8231a030, 0x627d}, + {0x8231a031, 0xb241}, + {0x8231a032, 0xb21d}, + {0x8231a033, 0xc1ad}, + {0x8231a034, 0x5998}, + {0x8231a035, 0x8af4}, + {0x8231a036, 0x5911}, + {0x8231a037, 0x5b62}, + {0x8231a038, 0xc1b5}, + {0x8231a039, 0x5fbc}, + {0x8231a130, 0x7fa4}, + {0x8231a131, 0x5616}, + {0x8231a132, 0x5fd8}, + {0x8231a133, 0x5b85}, + {0x8231a134, 0x9cb5}, + {0x8231a135, 0x4dc9}, + {0x8231a136, 0x9d5e}, + {0x8231a137, 0xafe2}, + {0x8231a138, 0xffff3ae0}, + {0x8231a139, 0x4fe0}, + {0x8231a230, 0x8fd5}, + {0x8231a231, 0xffff3ae3}, + {0x8231a232, 0x4531}, + {0x8231a233, 0x810d}, + {0x8231a234, 0x9d61}, + {0x8231a235, 0x3df5}, + {0x8231a236, 0x3ba8}, + {0x8231a237, 0x4974}, + {0x8231a238, 0x47b4}, + {0x8231a239, 0xa8bc}, + {0x8231a330, 0xad41}, + {0x8231a331, 0xffff3aed}, + {0x8231a332, 0xffff3aee}, + {0x8231a333, 0x7df8}, + {0x8231a334, 0x7371}, + {0x8231a335, 0x82a8}, + {0x8231a336, 0x3e49}, + {0x8231a337, 0x45f8}, + {0x8231a338, 0xaa72}, + {0x8231a339, 0x5446}, + {0x8231a430, 0xc35e}, + {0x8231a431, 0x642a}, + {0x8231a432, 0x693d}, + {0x8231a433, 0x9852}, + {0x8231a434, 0xa62a}, + {0x8231a435, 0x71fd}, + {0x8231a436, 0xbfb4}, + {0x8231a437, 0x7ae2}, + {0x8231a438, 0xffff3afe}, + {0x8231a439, 0xffff3aff}, + {0x8231a530, 0xffff3b00}, + {0x8231a531, 0x43ca}, + {0x8231a532, 0xb92a}, + {0x8231a533, 0x9c29}, + {0x8231a534, 0x44d1}, + {0x8231a535, 0x7d4a}, + {0x8231a536, 0x80d1}, + {0x8231a537, 0x619d}, + {0x8231a538, 0xa411}, + {0x8231a539, 0x8526}, + {0x8231a630, 0x6184}, + {0x8231a631, 0x5f9d}, + {0x8231a632, 0x6b4d}, + {0x8231a633, 0x41cd}, + {0x8231a634, 0xa8d2}, + {0x8231a635, 0x75c9}, + {0x8231a636, 0x6a9e}, + {0x8231a637, 0x63ca}, + {0x8231a638, 0x7da4}, + {0x8231a639, 0x886a}, + {0x8231a730, 0x5dd1}, + {0x8231a731, 0xb161}, + {0x8231a732, 0xffff3b16}, + {0x8231a733, 0xa935}, + {0x8231a734, 0x9aa4}, + {0x8231a735, 0xa39a}, + {0x8231a736, 0x45be}, + {0x8231a737, 0xa67a}, + {0x8231a738, 0x6aae}, + {0x8231a739, 0x43a2}, + {0x8231a830, 0xb281}, + {0x8231a831, 0x54d1}, + {0x8231a832, 0x9425}, + {0x8231a833, 0x78c8}, + {0x8231a834, 0xa690}, + {0x8231a835, 0x5146}, + {0x8231a836, 0x8a06}, + {0x8231a837, 0x89c1}, + {0x8231a838, 0xbb9e}, + {0x8231a839, 0xffff3b27}, + {0x8231a930, 0xffff3b28}, + {0x8231a931, 0x632d}, + {0x8231a932, 0x4f7d}, + {0x8231a933, 0xb0fa}, + {0x8231a934, 0x6d29}, + {0x8231a935, 0x692c}, + {0x8231a936, 0x82b8}, + {0x8231a937, 0x6a19}, + {0x8231a938, 0xb8d6}, + {0x8231a939, 0x9e6e}, + {0x8231aa30, 0x9e94}, + {0x8231aa31, 0xa558}, + {0x8231aa32, 0x5f7a}, + {0x8231aa33, 0x6875}, + {0x8231aa34, 0x5dfc}, + {0x8231aa35, 0x6e61}, + {0x8231aa36, 0x9ef6}, + {0x8231aa37, 0xc0c5}, + {0x8231aa38, 0x9dcd}, + {0x8231aa39, 0x61d9}, + {0x8231ab30, 0x5715}, + {0x8231ab31, 0xffff3b3d}, + {0x8231ab32, 0xffff3b3e}, + {0x8231ab33, 0xa111}, + {0x8231ab34, 0xffff3b40}, + {0x8231ab35, 0x9185}, + {0x8231ab36, 0x68ac}, + {0x8231ab37, 0x57f9}, + {0x8231ab38, 0xabba}, + {0x8231ab39, 0xffff3b45}, + {0x8231ac30, 0xffff3b46}, + {0x8231ac31, 0xbb39}, + {0x8231ac32, 0x6d9a}, + {0x8231ac33, 0x60c4}, + {0x8231ac34, 0xa5e8}, + {0x8231ac35, 0x3d85}, + {0x8231ac36, 0x81ae}, + {0x8231ac37, 0x89c9}, + {0x8231ac38, 0xa348}, + {0x8231ac39, 0xffff3b50}, + {0x8231ad30, 0xa3b8}, + {0x8231ad31, 0x9984}, + {0x8231ad32, 0x402d}, + {0x8231ad33, 0x7a5c}, + {0x8231ad34, 0x8f42}, + {0x8231ad35, 0xffff3b56}, + {0x8231ad36, 0xffff3b57}, + {0x8231ad37, 0x58ba}, + {0x8231ad38, 0xbfa2}, + {0x8231ad39, 0x7c42}, + {0x8231ae30, 0x85dd}, + {0x8231ae31, 0x91a4}, + {0x8231ae32, 0x8ef0}, + {0x8231ae33, 0x77aa}, + {0x8231ae34, 0x6f3c}, + {0x8231ae35, 0xa8bd}, + {0x8231ae36, 0xa740}, + {0x8231ae37, 0xab92}, + {0x8231ae38, 0xffff3b63}, + {0x8231ae39, 0x83fa}, + {0x8231af30, 0xffff3b65}, + {0x8231af31, 0x43be}, + {0x8231af32, 0xffff3b67}, + {0x8231af33, 0xb278}, + {0x8231af34, 0x77b1}, + {0x8231af35, 0x55dd}, + {0x8231af36, 0x4b79}, + {0x8231af37, 0xc564}, + {0x8231af38, 0x3ca2}, + {0x8231af39, 0xc7a8}, + {0x8231b030, 0xbfaa}, + {0x8231b031, 0xc739}, + {0x8231b032, 0xa7b1}, + {0x8231b033, 0x64c8}, + {0x8231b034, 0xffff3b73}, + {0x8231b035, 0x66ac}, + {0x8231b036, 0xffff3b75}, + {0x8231b037, 0x5afa}, + {0x8231b038, 0xffff3b77}, + {0x8231b039, 0xa070}, + {0x8231b130, 0xa87c}, + {0x8231b131, 0xb058}, + {0x8231b132, 0x9cfc}, + {0x8231b133, 0x9bda}, + {0x8231b134, 0x4e31}, + {0x8231b135, 0x6dc2}, + {0x8231b136, 0x3c0a}, + {0x8231b137, 0x5d22}, + {0x8231b138, 0xaa50}, + {0x8231b139, 0x6c6a}, + {0x8231b230, 0xa2ca}, + {0x8231b231, 0x3d7e}, + {0x8231b232, 0xc4ee}, + {0x8231b233, 0x421a}, + {0x8231b234, 0x9ee9}, + {0x8231b235, 0x827c}, + {0x8231b236, 0xffff3b89}, + {0x8231b237, 0xffff3b8a}, + {0x8231b238, 0xb9fc}, + {0x8231b239, 0x7ff0}, + {0x8231b330, 0xbedd}, + {0x8231b331, 0x3e1d}, + {0x8231b332, 0x827e}, + {0x8231b333, 0x9641}, + {0x8231b334, 0x43cc}, + {0x8231b335, 0xafb0}, + {0x8231b336, 0x5916}, + {0x8231b337, 0x47ea}, + {0x8231b338, 0x9281}, + {0x8231b339, 0x6656}, + {0x8231b430, 0x8db6}, + {0x8231b431, 0x7e05}, + {0x8231b432, 0x5290}, + {0x8231b433, 0x75b6}, + {0x8231b434, 0x4726}, + {0x8231b435, 0xbcf4}, + {0x8231b436, 0x5e6a}, + {0x8231b437, 0x6995}, + {0x8231b438, 0x83d6}, + {0x8231b439, 0xffff3ba0}, + {0x8231b530, 0x9015}, + {0x8231b531, 0x5f9e}, + {0x8231b532, 0x5781}, + {0x8231b533, 0x99c6}, + {0x8231b534, 0x3e9c}, + {0x8231b535, 0x9b94}, + {0x8231b536, 0xa50a}, + {0x8231b537, 0x65a6}, + {0x8231b538, 0xa65c}, + {0x8231b539, 0x8e85}, + {0x8231b630, 0x5e7a}, + {0x8231b631, 0xa481}, + {0x8231b632, 0xa888}, + {0x8231b633, 0x69a5}, + {0x8231b634, 0x636a}, + {0x8231b635, 0x87b1}, + {0x8231b636, 0x95a2}, + {0x8231b637, 0x47f4}, + {0x8231b638, 0xc09d}, + {0x8231b639, 0x9a09}, + {0x8231b730, 0xbe78}, + {0x8231b731, 0x9905}, + {0x8231b732, 0x6442}, + {0x8231b733, 0x99f0}, + {0x8231b734, 0xc1e1}, + {0x8231b735, 0x3e91}, + {0x8231b736, 0x9374}, + {0x8231b737, 0xffff3bbc}, + {0x8231b738, 0xffff3bbd}, + {0x8231b739, 0x7379}, + {0x8231b830, 0x3f8d}, + {0x8231b831, 0xae25}, + {0x8231b832, 0x86a0}, + {0x8231b833, 0x4c3a}, + {0x8231b834, 0x89f6}, + {0x8231b835, 0xc162}, + {0x8231b836, 0x87b6}, + {0x8231b837, 0x44ae}, + {0x8231b838, 0x3fa4}, + {0x8231b839, 0x9a86}, + {0x8231b930, 0x63ce}, + {0x8231b931, 0x5ed2}, + {0x8231b932, 0x6b91}, + {0x8231b933, 0x490e}, + {0x8231b934, 0x6832}, + {0x8231b935, 0x8338}, + {0x8231b936, 0x5a7c}, + {0x8231b937, 0xa19d}, + {0x8231b938, 0xffff3bd1}, + {0x8231b939, 0xffff3bd2}, + {0x8231ba30, 0x9bf5}, + {0x8231ba31, 0x4b4e}, + {0x8231ba32, 0xa67c}, + {0x8231ba33, 0xbfc6}, + {0x8231ba34, 0xa895}, + {0x8231ba35, 0x70d1}, + {0x8231ba36, 0xbfc8}, + {0x8231ba37, 0x9bbc}, + {0x8231ba38, 0x603e}, + {0x8231ba39, 0x4b4c}, + {0x8231bb30, 0x7b28}, + {0x8231bb31, 0x6d7e}, + {0x8231bb32, 0x7b1c}, + {0x8231bb33, 0x8c48}, + {0x8231bb34, 0x8681}, + {0x8231bb35, 0xc0ac}, + {0x8231bb36, 0x54d0}, + {0x8231bb37, 0x75d6}, + {0x8231bb38, 0x4348}, + {0x8231bb39, 0x8a82}, + {0x8231bc30, 0xffff3be7}, + {0x8231bc31, 0xffff3be8}, + {0x8231bc32, 0x9e70}, + {0x8231bc33, 0x78c9}, + {0x8231bc34, 0x8f9c}, + {0x8231bc35, 0x76b2}, + {0x8231bc36, 0x7ab1}, + {0x8231bc37, 0x9806}, + {0x8231bc38, 0x59b9}, + {0x8231bc39, 0xc199}, + {0x8231bd30, 0x8660}, + {0x8231bd31, 0x6ab6}, + {0x8231bd32, 0x8e34}, + {0x8231bd33, 0xffff3bf4}, + {0x8231bd34, 0xffff3bf5}, + {0x8231bd35, 0xc678}, + {0x8231bd36, 0x899a}, + {0x8231bd37, 0x6a6d}, + {0x8231bd38, 0x40a6}, + {0x8231bd39, 0x67e1}, + {0x8231be30, 0x5c4c}, + {0x8231be31, 0xffff3bfc}, + {0x8231be32, 0x40f8}, + {0x8231be33, 0xbd12}, + {0x8231be34, 0x77d4}, + {0x8231be35, 0x7500}, + {0x8231be36, 0x7bee}, + {0x8231be37, 0x95e2}, + {0x8231be38, 0x7ffe}, + {0x8231be39, 0x66fa}, + {0x8231bf30, 0x4e0d}, + {0x8231bf31, 0x3e76}, + {0x8231bf32, 0x66fc}, + {0x8231bf33, 0x76ba}, + {0x8231bf34, 0xc045}, + {0x8231bf35, 0xa8a6}, + {0x8231bf36, 0x8894}, + {0x8231bf37, 0x9096}, + {0x8231bf38, 0x79ba}, + {0x8231bf39, 0xc75d}, + {0x8231c030, 0x5850}, + {0x8231c031, 0xa1a0}, + {0x8231c032, 0x9469}, + {0x8231c033, 0xae5c}, + {0x8231c034, 0xffff3c13}, + {0x8231c035, 0xab74}, + {0x8231c036, 0xa6b4}, + {0x8231c037, 0x731d}, + {0x8231c038, 0x8aac}, + {0x8231c039, 0xb3d8}, + {0x8231c130, 0x8539}, + {0x8231c131, 0x7514}, + {0x8231c132, 0xbbb2}, + {0x8231c133, 0xffff3c1c}, + {0x8231c134, 0xb3e6}, + {0x8231c135, 0x46d0}, + {0x8231c136, 0x6562}, + {0x8231c137, 0x5d9e}, + {0x8231c138, 0xab01}, + {0x8231c139, 0x6fe1}, + {0x8231c230, 0xc5b8}, + {0x8231c231, 0x5e26}, + {0x8231c232, 0xa735}, + {0x8231c233, 0x8fd6}, + {0x8231c234, 0x5cc1}, + {0x8231c235, 0xa786}, + {0x8231c236, 0x5cc2}, + {0x8231c237, 0x5b99}, + {0x8231c238, 0x4436}, + {0x8231c239, 0xaeca}, + {0x8231c330, 0xacca}, + {0x8231c331, 0x95f1}, + {0x8231c332, 0xa03c}, + {0x8231c333, 0xa78c}, + {0x8231c334, 0x9404}, + {0x8231c335, 0xb8c5}, + {0x8231c336, 0xaf88}, + {0x8231c337, 0x8955}, + {0x8231c338, 0xc6f2}, + {0x8231c339, 0xb871}, + {0x8231c430, 0xc638}, + {0x8231c431, 0xffff3c38}, + {0x8231c432, 0xa820}, + {0x8231c433, 0xa7ee}, + {0x8231c434, 0xb405}, + {0x8231c435, 0x940c}, + {0x8231c436, 0xb0c8}, + {0x8231c437, 0x6911}, + {0x8231c438, 0xa65d}, + {0x8231c439, 0x475c}, + {0x8231c530, 0x9762}, + {0x8231c531, 0x6f10}, + {0x8231c532, 0xb650}, + {0x8231c533, 0x5ecd}, + {0x8231c534, 0xb528}, + {0x8231c535, 0xa691}, + {0x8231c536, 0x93b5}, + {0x8231c537, 0x6ab8}, + {0x8231c538, 0xb2ee}, + {0x8231c539, 0xb806}, + {0x8231c630, 0x9098}, + {0x8231c631, 0xb296}, + {0x8231c632, 0x7b64}, + {0x8231c633, 0x71e5}, + {0x8231c634, 0xc105}, + {0x8231c635, 0xffff3c50}, + {0x8231c636, 0xffff3c51}, + {0x8231c637, 0x5e28}, + {0x8231c638, 0xffff3c53}, + {0x8231c639, 0xaa8e}, + {0x8231c730, 0x5ba9}, + {0x8231c731, 0x4b40}, + {0x8231c732, 0xac80}, + {0x8231c733, 0xb07d}, + {0x8231c734, 0xac98}, + {0x8231c735, 0x42d1}, + {0x8231c736, 0x4916}, + {0x8231c737, 0xbdfa}, + {0x8231c738, 0xffff3c5d}, + {0x8231c739, 0xb46c}, + {0x8231c830, 0x8760}, + {0x8231c831, 0x704a}, + {0x8231c832, 0x9619}, + {0x8231c833, 0x734a}, + {0x8231c834, 0xa0f2}, + {0x8231c835, 0xa62c}, + {0x8231c836, 0x78a1}, + {0x8231c837, 0x89e2}, + {0x8231c838, 0xa4d1}, + {0x8231c839, 0x76cc}, + {0x8231c930, 0x508e}, + {0x8231c931, 0x6359}, + {0x8231c932, 0x732a}, + {0x8231c933, 0xa375}, + {0x8231c934, 0x50fc}, + {0x8231c935, 0x3b48}, + {0x8231c936, 0xbc9a}, + {0x8231c937, 0x7190}, + {0x8231c938, 0xb4f6}, + {0x8231c939, 0x8180}, + {0x8231ca30, 0xc649}, + {0x8231ca31, 0x551e}, + {0x8231ca32, 0x871d}, + {0x8231ca33, 0xffff3c77}, + {0x8231ca34, 0x3fc1}, + {0x8231ca35, 0x760c}, + {0x8231ca36, 0x7a7c}, + {0x8231ca37, 0x7c1e}, + {0x8231ca38, 0x5cbe}, + {0x8231ca39, 0xc04d}, + {0x8231cb30, 0x5758}, + {0x8231cb31, 0x90ae}, + {0x8231cb32, 0xc011}, + {0x8231cb33, 0x7006}, + {0x8231cb34, 0x469a}, + {0x8231cb35, 0x6bec}, + {0x8231cb36, 0x7059}, + {0x8231cb37, 0x65a8}, + {0x8231cb38, 0x78bc}, + {0x8231cb39, 0x4ff2}, + {0x8231cc30, 0x9516}, + {0x8231cc31, 0x908d}, + {0x8231cc32, 0x92bc}, + {0x8231cc33, 0x49cd}, + {0x8231cc34, 0x833d}, + {0x8231cc35, 0xc12e}, + {0x8231cc36, 0x7c28}, + {0x8231cc37, 0x865a}, + {0x8231cc38, 0xffff3c90}, + {0x8231cc39, 0xffff3c91}, + {0x8231cd30, 0x3df4}, + {0x8231cd31, 0x9844}, + {0x8231cd32, 0xa818}, + {0x8231cd33, 0x746a}, + {0x8231cd34, 0xa9ea}, + {0x8231cd35, 0x55de}, + {0x8231cd36, 0x8f88}, + {0x8231cd37, 0x99fa}, + {0x8231cd38, 0x93e6}, + {0x8231cd39, 0xc1d9}, + {0x8231ce30, 0x9cba}, + {0x8231ce31, 0x91ec}, + {0x8231ce32, 0x9a39}, + {0x8231ce33, 0xb740}, + {0x8231ce34, 0x74ba}, + {0x8231ce35, 0x8280}, + {0x8231ce36, 0x4040}, + {0x8231ce37, 0x9a0a}, + {0x8231ce38, 0x9881}, + {0x8231ce39, 0x9d10}, + {0x8231cf30, 0x82b6}, + {0x8231cf31, 0x938a}, + {0x8231cf32, 0x91b5}, + {0x8231cf33, 0x9be5}, + {0x8231cf34, 0x4d9d}, + {0x8231cf35, 0x898e}, + {0x8231cf36, 0x6890}, + {0x8231cf37, 0x9cc4}, + {0x8231cf38, 0xffff3cae}, + {0x8231cf39, 0x90c8}, + {0x8231d030, 0x849a}, + {0x8231d031, 0x77d5}, + {0x8231d032, 0x4f89}, + {0x8231d033, 0x4f4d}, + {0x8231d034, 0xc30c}, + {0x8231d035, 0xa9ec}, + {0x8231d036, 0x7c74}, + {0x8231d037, 0x4cc9}, + {0x8231d038, 0xa5d8}, + {0x8231d039, 0x5bcd}, + {0x8231d130, 0x64a0}, + {0x8231d131, 0x8396}, + {0x8231d132, 0xb426}, + {0x8231d133, 0x83e6}, + {0x8231d134, 0xb981}, + {0x8231d135, 0xa28d}, + {0x8231d136, 0x5cb4}, + {0x8231d137, 0xbd92}, + {0x8231d138, 0xafd2}, + {0x8231d139, 0x4b2e}, + {0x8231d230, 0xa85a}, + {0x8231d231, 0x790a}, + {0x8231d232, 0xa02a}, + {0x8231d233, 0x56d1}, + {0x8231d234, 0x86ac}, + {0x8231d235, 0xffff3cc9}, + {0x8231d236, 0xb7ed}, + {0x8231d237, 0x8ea1}, + {0x8231d238, 0xaf24}, + {0x8231d239, 0x4251}, + {0x8231d330, 0x4026}, + {0x8231d331, 0x9715}, + {0x8231d332, 0xbdfc}, + {0x8231d333, 0xb450}, + {0x8231d334, 0x5359}, + {0x8231d335, 0xb88c}, + {0x8231d336, 0x512e}, + {0x8231d337, 0x72bd}, + {0x8231d338, 0xb321}, + {0x8231d339, 0x4425}, + {0x8231d430, 0x47ae}, + {0x8231d431, 0x6d2c}, + {0x8231d432, 0xad38}, + {0x8231d433, 0xb8ed}, + {0x8231d434, 0xac68}, + {0x8231d435, 0x70dd}, + {0x8231d436, 0x47b0}, + {0x8231d437, 0xffff3cdf}, + {0x8231d438, 0x5c5d}, + {0x8231d439, 0x8ce9}, + {0x8231d530, 0xffff3ce3}, + {0x8231d531, 0x97c0}, + {0x8231d532, 0x79f5}, + {0x8231d533, 0xab14}, + {0x8231d534, 0x45ad}, + {0x8231d535, 0xbc6e}, + {0x8231d536, 0x9c61}, + {0x8231d537, 0x87e8}, + {0x8231d538, 0xbcb9}, + {0x8231d539, 0xaddc}, + {0x8231d630, 0xa86c}, + {0x8231d631, 0x8411}, + {0x8231d632, 0xffff3cef}, + {0x8231d633, 0x59c2}, + {0x8231d634, 0xffff3cf1}, + {0x8231d635, 0xffff3cf2}, + {0x8231d636, 0x6faa}, + {0x8231d637, 0x7fb0}, + {0x8231d638, 0x6580}, + {0x8231d639, 0x8501}, + {0x8231d730, 0x5fea}, + {0x8231d731, 0x60b5}, + {0x8231d732, 0xa299}, + {0x8231d733, 0xb832}, + {0x8231d734, 0xbd58}, + {0x8231d735, 0x3f61}, + {0x8231d736, 0x7f89}, + {0x8231d737, 0x8c65}, + {0x8231d738, 0xab1a}, + {0x8231d739, 0x536e}, + {0x8231d830, 0xb4a0}, + {0x8231d831, 0x9c64}, + {0x8231d832, 0x746c}, + {0x8231d833, 0xb7c8}, + {0x8231d834, 0xa9f6}, + {0x8231d835, 0x6a8e}, + {0x8231d836, 0x9555}, + {0x8231d837, 0xb66c}, + {0x8231d838, 0x6581}, + {0x8231d839, 0xbaa5}, + {0x8231d930, 0x9a62}, + {0x8231d931, 0xffff3d0c}, + {0x8231d932, 0xffff3d0d}, + {0x8231d933, 0x8279}, + {0x8231d934, 0xa29d}, + {0x8231d935, 0x802c}, + {0x8231d936, 0x9a6c}, + {0x8231d937, 0xb4c1}, + {0x8231d938, 0x941c}, + {0x8231d939, 0xa62d}, + {0x8231da30, 0x7e30}, + {0x8231da31, 0x7c09}, + {0x8231da32, 0xb7fa}, + {0x8231da33, 0x7dfc}, + {0x8231da34, 0xbe14}, + {0x8231da35, 0x9b05}, + {0x8231da36, 0xc24d}, + {0x8231da37, 0x4038}, + {0x8231da38, 0x74bc}, + {0x8231da39, 0x9d68}, + {0x8231db30, 0xffff3d1f}, + {0x8231db31, 0x5d24}, + {0x8231db32, 0xffff3d21}, + {0x8231db33, 0xffff3d22}, + {0x8231db34, 0xffff3d23}, + {0x8231db35, 0xffff3d24}, + {0x8231db36, 0x8d2a}, + {0x8231db37, 0x5b3e}, + {0x8231db38, 0xa646}, + {0x8231db39, 0xc099}, + {0x8231dc30, 0xb779}, + {0x8231dc31, 0x8436}, + {0x8231dc32, 0x6e68}, + {0x8231dc33, 0xab34}, + {0x8231dc34, 0xb23a}, + {0x8231dc35, 0xab35}, + {0x8231dc36, 0xc159}, + {0x8231dc37, 0x833c}, + {0x8231dc38, 0x95a4}, + {0x8231dc39, 0x9930}, + {0x8231dd30, 0x79e6}, + {0x8231dd31, 0xbede}, + {0x8231dd32, 0x7fbe}, + {0x8231dd33, 0x9074}, + {0x8231dd34, 0x4c6a}, + {0x8231dd35, 0x9476}, + {0x8231dd36, 0x7f48}, + {0x8231dd37, 0xffff3d3a}, + {0x8231dd38, 0xffff3d3b}, + {0x8231dd39, 0x9a88}, + {0x8231de30, 0xab3c}, + {0x8231de31, 0x41ce}, + {0x8231de32, 0x4fae}, + {0x8231de33, 0xc6f6}, + {0x8231de34, 0x61da}, + {0x8231de35, 0x9860}, + {0x8231de36, 0x9541}, + {0x8231de37, 0x5d78}, + {0x8231de38, 0x9c6e}, + {0x8231de39, 0x5860}, + {0x8231df30, 0xffff3d47}, + {0x8231df31, 0xffff3d48}, + {0x8231df32, 0xffff3d49}, + {0x8231df33, 0x8256}, + {0x8231df34, 0x7fd0}, + {0x8231df35, 0xaee4}, + {0x8231df36, 0x7eb9}, + {0x8231df37, 0x67be}, + {0x8231df38, 0x4b24}, + {0x8231df39, 0x6dde}, + {0x8231e030, 0x5eb4}, + {0x8231e031, 0x549d}, + {0x8231e032, 0x96d6}, + {0x8231e033, 0x45a1}, + {0x8231e034, 0x9600}, + {0x8231e035, 0x8569}, + {0x8231e036, 0x88e4}, + {0x8231e037, 0x7d60}, + {0x8231e038, 0x8e15}, + {0x8231e039, 0xffff3d5a}, + {0x8231e130, 0xffff3d5b}, + {0x8231e131, 0xffff3d5c}, + {0x8231e132, 0xb529}, + {0x8231e133, 0x481e}, + {0x8231e134, 0xa2e9}, + {0x8231e135, 0x705d}, + {0x8231e136, 0x3dc1}, + {0x8231e137, 0x7411}, + {0x8231e138, 0x6f9a}, + {0x8231e139, 0x9418}, + {0x8231e230, 0x7fd5}, + {0x8231e231, 0x9aee}, + {0x8231e232, 0x58d9}, + {0x8231e233, 0x87fa}, + {0x8231e234, 0xb50d}, + {0x8231e235, 0xa896}, + {0x8231e236, 0x83b5}, + {0x8231e237, 0xb70e}, + {0x8231e238, 0xc412}, + {0x8231e239, 0x49ac}, + {0x8231e330, 0x558d}, + {0x8231e331, 0xad85}, + {0x8231e332, 0x885a}, + {0x8231e333, 0xa580}, + {0x8231e334, 0x775e}, + {0x8231e335, 0x432a}, + {0x8231e336, 0xc6de}, + {0x8231e337, 0xc778}, + {0x8231e338, 0x404e}, + {0x8231e339, 0xbba0}, + {0x8231e430, 0x6161}, + {0x8231e431, 0x85e2}, + {0x8231e432, 0xac86}, + {0x8231e433, 0xffff3d7c}, + {0x8231e434, 0x7448}, + {0x8231e435, 0x8e5c}, + {0x8231e436, 0xaa85}, + {0x8231e437, 0x689a}, + {0x8231e438, 0x5c98}, + {0x8231e439, 0xffff3d82}, + {0x8231e530, 0xffff3d83}, + {0x8231e531, 0xb019}, + {0x8231e532, 0xae5a}, + {0x8231e533, 0xc3c9}, + {0x8231e534, 0x5ef8}, + {0x8231e535, 0xb720}, + {0x8231e536, 0xa6a4}, + {0x8231e537, 0xffff3d8a}, + {0x8231e538, 0xffff3d8b}, + {0x8231e539, 0x769c}, + {0x8231e630, 0xa8e2}, + {0x8231e631, 0x6172}, + {0x8231e632, 0xb5e0}, + {0x8231e633, 0xffff3d90}, + {0x8231e634, 0x76e6}, + {0x8231e635, 0x9480}, + {0x8231e636, 0x432d}, + {0x8231e637, 0x3e79}, + {0x8231e638, 0x6776}, + {0x8231e639, 0x9876}, + {0x8231e730, 0x53fc}, + {0x8231e731, 0x4ee6}, + {0x8231e732, 0xffff3d99}, + {0x8231e733, 0x3ce5}, + {0x8231e734, 0xb975}, + {0x8231e735, 0xbaca}, + {0x8231e736, 0xffff3d9d}, + {0x8231e737, 0x82c9}, + {0x8231e738, 0x745a}, + {0x8231e739, 0xb595}, + {0x8231e830, 0x4c0d}, + {0x8231e831, 0xffff3da2}, + {0x8231e832, 0x4449}, + {0x8231e833, 0x457d}, + {0x8231e834, 0x5794}, + {0x8231e835, 0x6a7d}, + {0x8231e836, 0x8335}, + {0x8231e837, 0x8754}, + {0x8231e838, 0xffff3da9}, + {0x8231e839, 0x8755}, + {0x8231e930, 0x7738}, + {0x8231e931, 0x815d}, + {0x8231e932, 0xb864}, + {0x8231e933, 0x94f0}, + {0x8231e934, 0x7971}, + {0x8231e935, 0x5d0d}, + {0x8231e936, 0xffff3db1}, + {0x8231e937, 0xb7e8}, + {0x8231e938, 0x6a85}, + {0x8231e939, 0x474a}, + {0x8231ea30, 0x9168}, + {0x8231ea31, 0x84d9}, + {0x8231ea32, 0xaccc}, + {0x8231ea33, 0xaaad}, + {0x8231ea34, 0x5f82}, + {0x8231ea35, 0x9ee6}, + {0x8231ea36, 0x5544}, + {0x8231ea37, 0x3b39}, + {0x8231ea38, 0xffff3dbd}, + {0x8231ea39, 0x4061}, + {0x8231eb30, 0x41b1}, + {0x8231eb31, 0x8e6e}, + {0x8231eb32, 0xffff3dc1}, + {0x8231eb33, 0x9854}, + {0x8231eb34, 0x4970}, + {0x8231eb35, 0x62aa}, + {0x8231eb36, 0x4584}, + {0x8231eb37, 0x56f9}, + {0x8231eb38, 0x6265}, + {0x8231eb39, 0x5280}, + {0x8231ec30, 0xa3c5}, + {0x8231ec31, 0x54e9}, + {0x8231ec32, 0x9c84}, + {0x8231ec33, 0xffff3dcc}, + {0x8231ec34, 0x7b9a}, + {0x8231ec35, 0xb27c}, + {0x8231ec36, 0xb7d2}, + {0x8231ec37, 0xbf75}, + {0x8231ec38, 0xafb1}, + {0x8231ec39, 0xb92c}, + {0x8231ed30, 0x597c}, + {0x8231ed31, 0xb0c9}, + {0x8231ed32, 0x8f0e}, + {0x8231ed33, 0xbf76}, + {0x8231ed34, 0x6b8a}, + {0x8231ed35, 0x9c2a}, + {0x8231ed36, 0x66c8}, + {0x8231ed37, 0xffff3dda}, + {0x8231ed38, 0xffff3ddb}, + {0x8231ed39, 0xffff3ddc}, + {0x8231ee30, 0xffff3ddd}, + {0x8231ee31, 0xffff3dde}, + {0x8231ee32, 0xa100}, + {0x8231ee33, 0x77f8}, + {0x8231ee34, 0x6b8c}, + {0x8231ee35, 0xbe15}, + {0x8231ee36, 0xabe6}, + {0x8231ee37, 0x602d}, + {0x8231ee38, 0xc0e4}, + {0x8231ee39, 0xad70}, + {0x8231ef30, 0xffff3de7}, + {0x8231ef31, 0xffff3de8}, + {0x8231ef32, 0xa65e}, + {0x8231ef33, 0x6d50}, + {0x8231ef34, 0x8e42}, + {0x8231ef35, 0x8181}, + {0x8231ef36, 0x555a}, + {0x8231ef37, 0xbd10}, + {0x8231ef38, 0x3ece}, + {0x8231ef39, 0x46ee}, + {0x8231f030, 0xffff3df1}, + {0x8231f031, 0xffff3df2}, + {0x8231f032, 0xb0dd}, + {0x8231f033, 0x75d8}, + {0x8231f034, 0x8191}, + {0x8231f035, 0x3fb1}, + {0x8231f036, 0x6d52}, + {0x8231f037, 0xb2d8}, + {0x8231f038, 0xbf84}, + {0x8231f039, 0xffff3dfa}, + {0x8231f130, 0xa53a}, + {0x8231f131, 0xffff3dfc}, + {0x8231f132, 0xffff3dfd}, + {0x8231f133, 0x6dfa}, + {0x8231f134, 0xa836}, + {0x8231f135, 0x9c38}, + {0x8231f136, 0x5d8a}, + {0x8231f137, 0x9b20}, + {0x8231f138, 0x4eb8}, + {0x8231f139, 0x65dc}, + {0x8231f230, 0x69bc}, + {0x8231f231, 0x6f40}, + {0x8231f232, 0xc71e}, + {0x8231f233, 0x68a0}, + {0x8231f234, 0xab69}, + {0x8231f235, 0x72b0}, + {0x8231f236, 0x53ba}, + {0x8231f237, 0x63f1}, + {0x8231f238, 0xa77d}, + {0x8231f239, 0x8465}, + {0x8231f330, 0x7f6e}, + {0x8231f331, 0x90cc}, + {0x8231f332, 0x4b0a}, + {0x8231f333, 0xb5ee}, + {0x8231f334, 0x7fa5}, + {0x8231f335, 0xffff3e14}, + {0x8231f336, 0x6dd6}, + {0x8231f337, 0x8f44}, + {0x8231f338, 0x9fca}, + {0x8231f339, 0xa266}, + {0x8231f430, 0xbf8d}, + {0x8231f431, 0x752a}, + {0x8231f432, 0x9510}, + {0x8231f433, 0x7015}, + {0x8231f434, 0xa809}, + {0x8231f435, 0xbf96}, + {0x8231f436, 0xc144}, + {0x8231f437, 0x4f1c}, + {0x8231f438, 0x97c1}, + {0x8231f439, 0x3e66}, + {0x8231f530, 0xb2f0}, + {0x8231f531, 0x8838}, + {0x8231f532, 0x44dc}, + {0x8231f533, 0x606d}, + {0x8231f534, 0x8c11}, + {0x8231f535, 0x6ba0}, + {0x8231f536, 0x3ba1}, + {0x8231f537, 0x498d}, + {0x8231f538, 0x669d}, + {0x8231f539, 0x3e35}, + {0x8231f630, 0x3c92}, + {0x8231f631, 0x54de}, + {0x8231f632, 0x6f4e}, + {0x8231f633, 0x6f54}, + {0x8231f634, 0x6f55}, + {0x8231f635, 0xc779}, + {0x8231f636, 0x7872}, + {0x8231f637, 0xffff3e34}, + {0x8231f638, 0x5be6}, + {0x8231f639, 0xaf9a}, + {0x8231f730, 0x9732}, + {0x8231f731, 0x5fb9}, + {0x8231f732, 0x77b2}, + {0x8231f733, 0x93e8}, + {0x8231f734, 0x9992}, + {0x8231f735, 0x5545}, + {0x8231f736, 0x3e4a}, + {0x8231f737, 0x916e}, + {0x8231f738, 0xffff3e3f}, + {0x8231f739, 0x41b2}, + {0x8231f830, 0x76f5}, + {0x8231f831, 0x8c15}, + {0x8231f832, 0x5494}, + {0x8231f833, 0x65a9}, + {0x8231f834, 0xc692}, + {0x8231f835, 0x626d}, + {0x8231f836, 0x5e6c}, + {0x8231f837, 0xffff3e48}, + {0x8231f838, 0xbb09}, + {0x8231f839, 0xbb92}, + {0x8231f930, 0xac7c}, + {0x8231f931, 0x44b0}, + {0x8231f932, 0x4e01}, + {0x8231f933, 0x740c}, + {0x8231f934, 0x6a65}, + {0x8231f935, 0x47d9}, + {0x8231f936, 0x99a8}, + {0x8231f937, 0x89b4}, + {0x8231f938, 0xb245}, + {0x8231f939, 0x6811}, + {0x8231fa30, 0x6135}, + {0x8231fa31, 0x61c0}, + {0x8231fa32, 0x9d81}, + {0x8231fa33, 0x926a}, + {0x8231fa34, 0xa49a}, + {0x8231fa35, 0xa49c}, + {0x8231fa36, 0x910e}, + {0x8231fa37, 0xb5f0}, + {0x8231fa38, 0x9710}, + {0x8231fa39, 0xb5e9}, + {0x8231fb30, 0x6d94}, + {0x8231fb31, 0xa118}, + {0x8231fb32, 0xadd8}, + {0x8231fb33, 0x660c}, + {0x8231fb34, 0xc2ce}, + {0x8231fb35, 0x8d4a}, + {0x8231fb36, 0xc42a}, + {0x8231fb37, 0x4ef0}, + {0x8231fb38, 0xb11c}, + {0x8231fb39, 0xb88d}, + {0x8231fc30, 0xffff3e69}, + {0x8231fc31, 0x9435}, + {0x8231fc32, 0xb379}, + {0x8231fc33, 0x96f4}, + {0x8231fc34, 0xb46d}, + {0x8231fc35, 0x815e}, + {0x8231fc36, 0xac69}, + {0x8231fc37, 0xffff3e70}, + {0x8231fc38, 0x3dce}, + {0x8231fc39, 0xa9dd}, + {0x8231fd30, 0xa522}, + {0x8231fd31, 0x591e}, + {0x8231fd32, 0xb73a}, + {0x8231fd33, 0x9f7a}, + {0x8231fd34, 0xa614}, + {0x8231fd35, 0x7dee}, + {0x8231fd36, 0x5925}, + {0x8231fd37, 0x9bd5}, + {0x8231fd38, 0xa4a9}, + {0x8231fd39, 0x6c62}, + {0x8231fe30, 0x44a0}, + {0x8231fe31, 0x8856}, + {0x8231fe32, 0xc565}, + {0x8231fe33, 0x82da}, + {0x8231fe34, 0x82fe}, + {0x8231fe35, 0xaff8}, + {0x8231fe36, 0x59e1}, + {0x8231fe37, 0xb914}, + {0x8231fe38, 0x5f96}, + {0x8231fe39, 0xffff3e86}, + {0x82328130, 0x9938}, + {0x82328131, 0x46e6}, + {0x82328132, 0x6096}, + {0x82328133, 0xb1a1}, + {0x82328134, 0xa47e}, + {0x82328135, 0xa91d}, + {0x82328136, 0x3ff2}, + {0x82328137, 0xb784}, + {0x82328138, 0x7a0d}, + {0x82328139, 0x73ca}, + {0x82328230, 0x9455}, + {0x82328231, 0xaa08}, + {0x82328232, 0xbd68}, + {0x82328233, 0x5ce6}, + {0x82328234, 0x53a5}, + {0x82328235, 0x5d44}, + {0x82328236, 0x4441}, + {0x82328237, 0xbee5}, + {0x82328238, 0xffff3e99}, + {0x82328239, 0x9bc2}, + {0x82328330, 0xc470}, + {0x82328331, 0x84e1}, + {0x82328332, 0x5d8c}, + {0x82328333, 0xb952}, + {0x82328334, 0xc58e}, + {0x82328335, 0xb8b1}, + {0x82328336, 0x75fd}, + {0x82328337, 0x6395}, + {0x82328338, 0xa6b5}, + {0x82328339, 0xa845}, + {0x82328430, 0x4480}, + {0x82328431, 0x769d}, + {0x82328432, 0xaa44}, + {0x82328433, 0x9918}, + {0x82328434, 0x6bdd}, + {0x82328435, 0x897c}, + {0x82328436, 0x8ed4}, + {0x82328437, 0x5999}, + {0x82328438, 0xc610}, + {0x82328439, 0xb8da}, + {0x82328530, 0xffff3eaf}, + {0x82328531, 0x9662}, + {0x82328532, 0x918a}, + {0x82328533, 0x84c5}, + {0x82328534, 0x7e24}, + {0x82328535, 0x3c94}, + {0x82328536, 0x6bd0}, + {0x82328537, 0xffff3eb6}, + {0x82328538, 0xad39}, + {0x82328539, 0x88b8}, + {0x82328630, 0x402e}, + {0x82328631, 0x7de8}, + {0x82328632, 0xffff3ebb}, + {0x82328633, 0xffff3ebc}, + {0x82328634, 0x8761}, + {0x82328635, 0xffff3ebe}, + {0x82328636, 0xb394}, + {0x82328637, 0xb484}, + {0x82328638, 0x5b9a}, + {0x82328639, 0x88c1}, + {0x82328730, 0x8f4e}, + {0x82328731, 0x3dd0}, + {0x82328732, 0x62ca}, + {0x82328733, 0xae0e}, + {0x82328734, 0xffff3ec7}, + {0x82328735, 0x59f1}, + {0x82328736, 0x4261}, + {0x82328737, 0x7ea6}, + {0x82328738, 0x7241}, + {0x82328739, 0xa06c}, + {0x82328830, 0xa52d}, + {0x82328831, 0x9398}, + {0x82328832, 0xffff3ecf}, + {0x82328833, 0xffff3ed0}, + {0x82328834, 0x6590}, + {0x82328835, 0x6e69}, + {0x82328836, 0xc6c0}, + {0x82328837, 0x51c5}, + {0x82328838, 0x6dc4}, + {0x82328839, 0x4c31}, + {0x82328930, 0x3e5d}, + {0x82328931, 0xffff3ed8}, + {0x82328932, 0xffff3ed9}, + {0x82328933, 0xffff3eda}, + {0x82328934, 0x454a}, + {0x82328935, 0xffff3edc}, + {0x82328936, 0x7249}, + {0x82328937, 0x40e2}, + {0x82328938, 0x9ae6}, + {0x82328939, 0xa074}, + {0x82328a30, 0xae36}, + {0x82328a31, 0xffff3ee2}, + {0x82328a32, 0xffff3ee3}, + {0x82328a33, 0xffff3ee4}, + {0x82328a34, 0xffff3ee5}, + {0x82328a35, 0xffff3ee6}, + {0x82328a36, 0x51f6}, + {0x82328a37, 0xa26d}, + {0x82328a38, 0x7668}, + {0x82328a39, 0x9b12}, + {0x82328b30, 0x3f8e}, + {0x82328b31, 0xa055}, + {0x82328b32, 0x93a8}, + {0x82328b33, 0x42fe}, + {0x82328b34, 0xa056}, + {0x82328b35, 0xa3d4}, + {0x82328b36, 0x6aa0}, + {0x82328b37, 0x7c58}, + {0x82328b38, 0xffff3ef3}, + {0x82328b39, 0xffff3ef4}, + {0x82328c30, 0xbe9a}, + {0x82328c31, 0x3f18}, + {0x82328c32, 0x6508}, + {0x82328c33, 0xbda4}, + {0x82328c34, 0xadc2}, + {0x82328c35, 0x75e5}, + {0x82328c36, 0xffff3efb}, + {0x82328c37, 0xffff3efc}, + {0x82328c38, 0x9b21}, + {0x82328c39, 0xb79c}, + {0x82328d30, 0x981d}, + {0x82328d31, 0xffff3f00}, + {0x82328d32, 0xb410}, + {0x82328d33, 0xa479}, + {0x82328d34, 0xffff3f03}, + {0x82328d35, 0x647d}, + {0x82328d36, 0xffff3f05}, + {0x82328d37, 0xffff3f06}, + {0x82328d38, 0x8e96}, + {0x82328d39, 0x7bd8}, + {0x82328e30, 0xc081}, + {0x82328e31, 0xa11d}, + {0x82328e32, 0x5a1a}, + {0x82328e33, 0xb98e}, + {0x82328e34, 0x7436}, + {0x82328e35, 0x41b4}, + {0x82328e36, 0x8325}, + {0x82328e37, 0x8825}, + {0x82328e38, 0x76da}, + {0x82328e39, 0x9d41}, + {0x82328f30, 0x7670}, + {0x82328f31, 0xa419}, + {0x82328f32, 0x4cec}, + {0x82328f33, 0x763d}, + {0x82328f34, 0x9f78}, + {0x82328f35, 0xa1d4}, + {0x82328f36, 0xc368}, + {0x82328f37, 0x5800}, + {0x82328f38, 0xac05}, + {0x82328f39, 0x3ec6}, + {0x82329030, 0xa22e}, + {0x82329031, 0x873a}, + {0x82329032, 0x419c}, + {0x82329033, 0xa165}, + {0x82329034, 0x97c2}, + {0x82329035, 0xb395}, + {0x82329036, 0x41a5}, + {0x82329037, 0x8d54}, + {0x82329038, 0xa02d}, + {0x82329039, 0x59a0}, + {0x82329130, 0x9fd4}, + {0x82329131, 0x5d1a}, + {0x82329132, 0x4689}, + {0x82329133, 0x6980}, + {0x82329134, 0x61a5}, + {0x82329135, 0xac35}, + {0x82329136, 0x4ece}, + {0x82329137, 0x4412}, + {0x82329138, 0x5028}, + {0x82329139, 0x87a8}, + {0x82329230, 0x9282}, + {0x82329231, 0x77c1}, + {0x82329232, 0x9642}, + {0x82329233, 0x85a1}, + {0x82329234, 0x4e6a}, + {0x82329235, 0xb92d}, + {0x82329236, 0x490a}, + {0x82329237, 0x91c1}, + {0x82329238, 0x6f08}, + {0x82329239, 0x9d11}, + {0x82329330, 0x4aa0}, + {0x82329331, 0x884e}, + {0x82329332, 0x4945}, + {0x82329333, 0x7b09}, + {0x82329334, 0x9ff1}, + {0x82329335, 0xc11a}, + {0x82329336, 0x58e1}, + {0x82329337, 0x9304}, + {0x82329338, 0x85ed}, + {0x82329339, 0x9951}, + {0x82329430, 0x4d9e}, + {0x82329431, 0x4ce9}, + {0x82329432, 0x6048}, + {0x82329433, 0xb55a}, + {0x82329434, 0xa93e}, + {0x82329435, 0xab75}, + {0x82329436, 0x7bd9}, + {0x82329437, 0x7985}, + {0x82329438, 0x57a2}, + {0x82329439, 0x6689}, + {0x82329530, 0x57e6}, + {0x82329531, 0x9eb8}, + {0x82329532, 0x9c9c}, + {0x82329533, 0x961e}, + {0x82329534, 0xffff3f53}, + {0x82329535, 0xffff3f54}, + {0x82329536, 0xb815}, + {0x82329537, 0x828a}, + {0x82329538, 0x81d5}, + {0x82329539, 0x5820}, + {0x82329630, 0x6e52}, + {0x82329631, 0x476e}, + {0x82329632, 0x59c4}, + {0x82329633, 0xa230}, + {0x82329634, 0x7595}, + {0x82329635, 0x7912}, + {0x82329636, 0x77bd}, + {0x82329637, 0xa7ba}, + {0x82329638, 0x3e1e}, + {0x82329639, 0x3be1}, + {0x82329730, 0xba19}, + {0x82329731, 0x6c70}, + {0x82329732, 0x9202}, + {0x82329733, 0xaee5}, + {0x82329734, 0xc5e2}, + {0x82329735, 0x4b85}, + {0x82329736, 0x4302}, + {0x82329737, 0xbdc4}, + {0x82329738, 0xb79d}, + {0x82329739, 0x5730}, + {0x82329830, 0x9271}, + {0x82329831, 0xabf9}, + {0x82329832, 0x8aae}, + {0x82329833, 0x97da}, + {0x82329834, 0x68ad}, + {0x82329835, 0x68ae}, + {0x82329836, 0xacc0}, + {0x82329837, 0xbf29}, + {0x82329838, 0xc4c8}, + {0x82329839, 0xffff3f76}, + {0x82329930, 0x98ca}, + {0x82329931, 0x45ed}, + {0x82329932, 0x53ce}, + {0x82329933, 0x64b1}, + {0x82329934, 0xc135}, + {0x82329935, 0xffff3f7c}, + {0x82329936, 0x5a95}, + {0x82329937, 0xa59e}, + {0x82329938, 0x5c5e}, + {0x82329939, 0x8d55}, + {0x82329a30, 0x9845}, + {0x82329a31, 0x5cc4}, + {0x82329a32, 0xa168}, + {0x82329a33, 0x5089}, + {0x82329a34, 0xc61a}, + {0x82329a35, 0x4438}, + {0x82329a36, 0x81fd}, + {0x82329a37, 0x56e8}, + {0x82329a38, 0x787a}, + {0x82329a39, 0x64c9}, + {0x82329b30, 0xac75}, + {0x82329b31, 0xadf9}, + {0x82329b32, 0x825a}, + {0x82329b33, 0xaf29}, + {0x82329b34, 0x69fe}, + {0x82329b35, 0x7596}, + {0x82329b36, 0x4bd4}, + {0x82329b37, 0x9224}, + {0x82329b38, 0xbaad}, + {0x82329b39, 0x7c49}, + {0x82329c30, 0x95d6}, + {0x82329c31, 0x7539}, + {0x82329c32, 0x7722}, + {0x82329c33, 0x5945}, + {0x82329c34, 0xabc8}, + {0x82329c35, 0xaa91}, + {0x82329c36, 0x8ddd}, + {0x82329c37, 0x8d64}, + {0x82329c38, 0x45b4}, + {0x82329c39, 0xb83a}, + {0x82329d30, 0x4265}, + {0x82329d31, 0x70f5}, + {0x82329d32, 0x906d}, + {0x82329d33, 0x3b74}, + {0x82329d34, 0x8d8e}, + {0x82329d35, 0x8e0d}, + {0x82329d36, 0x48cc}, + {0x82329d37, 0x86bd}, + {0x82329d38, 0x7211}, + {0x82329d39, 0xb334}, + {0x82329e30, 0x5aea}, + {0x82329e31, 0x9644}, + {0x82329e32, 0x8816}, + {0x82329e33, 0x694e}, + {0x82329e34, 0xc388}, + {0x82329e35, 0x61fa}, + {0x82329e36, 0x6278}, + {0x82329e37, 0x602e}, + {0x82329e38, 0xffff3fb1}, + {0x82329e39, 0xffff3fb2}, + {0x82329f30, 0xffff3fb3}, + {0x82329f31, 0xbde4}, + {0x82329f32, 0x65aa}, + {0x82329f33, 0x5a75}, + {0x82329f34, 0xa66e}, + {0x82329f35, 0x5865}, + {0x82329f36, 0x4420}, + {0x82329f37, 0x7cd9}, + {0x82329f38, 0xc462}, + {0x82329f39, 0xa0f6}, + {0x8232a030, 0xc50a}, + {0x8232a031, 0xa82d}, + {0x8232a032, 0x735a}, + {0x8232a033, 0x3d2d}, + {0x8232a034, 0xaa11}, + {0x8232a035, 0xc0ec}, + {0x8232a036, 0xc284}, + {0x8232a037, 0x3b86}, + {0x8232a038, 0xadfe}, + {0x8232a039, 0x5c76}, + {0x8232a130, 0xa6e1}, + {0x8232a131, 0xb790}, + {0x8232a132, 0xa0e8}, + {0x8232a133, 0x42f5}, + {0x8232a134, 0x938e}, + {0x8232a135, 0xa840}, + {0x8232a136, 0x6a16}, + {0x8232a137, 0x5522}, + {0x8232a138, 0x90ad}, + {0x8232a139, 0xffff3fd0}, + {0x8232a230, 0xb26c}, + {0x8232a231, 0x4d56}, + {0x8232a232, 0x6666}, + {0x8232a233, 0x7451}, + {0x8232a234, 0xb08d}, + {0x8232a235, 0x7a82}, + {0x8232a236, 0xa0ee}, + {0x8232a237, 0xb730}, + {0x8232a238, 0x880a}, + {0x8232a239, 0x7c20}, + {0x8232a330, 0x7635}, + {0x8232a331, 0x40d1}, + {0x8232a332, 0xa956}, + {0x8232a333, 0x7de9}, + {0x8232a334, 0x3cf2}, + {0x8232a335, 0x6240}, + {0x8232a336, 0x5038}, + {0x8232a337, 0xb25c}, + {0x8232a338, 0x5e2e}, + {0x8232a339, 0x49be}, + {0x8232a430, 0x5e81}, + {0x8232a431, 0x84b1}, + {0x8232a432, 0x482c}, + {0x8232a433, 0x761a}, + {0x8232a434, 0x9d4d}, + {0x8232a435, 0x6146}, + {0x8232a436, 0x3f36}, + {0x8232a437, 0x3c95}, + {0x8232a438, 0x45ae}, + {0x8232a439, 0xb19a}, + {0x8232a530, 0x4bd5}, + {0x8232a531, 0x3c24}, + {0x8232a532, 0xae50}, + {0x8232a533, 0xb335}, + {0x8232a534, 0xc5e4}, + {0x8232a535, 0x4bb8}, + {0x8232a536, 0x90e4}, + {0x8232a537, 0x3d76}, + {0x8232a538, 0x4b86}, + {0x8232a539, 0xa25a}, + {0x8232a630, 0x9bfd}, + {0x8232a631, 0x3dc2}, + {0x8232a632, 0x579c}, + {0x8232a633, 0xafe4}, + {0x8232a634, 0xa5f4}, + {0x8232a635, 0xc43d}, + {0x8232a636, 0xaf5e}, + {0x8232a637, 0x53e2}, + {0x8232a638, 0xb8a2}, + {0x8232a639, 0x3bad}, + {0x8232a730, 0xa0dd}, + {0x8232a731, 0x7ed5}, + {0x8232a732, 0x9556}, + {0x8232a733, 0x6aa1}, + {0x8232a734, 0x5a81}, + {0x8232a735, 0x65ac}, + {0x8232a736, 0x8d05}, + {0x8232a737, 0x68f4}, + {0x8232a738, 0xb025}, + {0x8232a739, 0xa781}, + {0x8232a830, 0x6f01}, + {0x8232a831, 0x800a}, + {0x8232a832, 0xae04}, + {0x8232a833, 0x9436}, + {0x8232a834, 0xa4ca}, + {0x8232a835, 0x8b79}, + {0x8232a836, 0x6191}, + {0x8232a837, 0x9160}, + {0x8232a838, 0xc082}, + {0x8232a839, 0x9e88}, + {0x8232a930, 0x6da2}, + {0x8232a931, 0xaaa4}, + {0x8232a932, 0x8b02}, + {0x8232a933, 0x3c08}, + {0x8232a934, 0x7e80}, + {0x8232a935, 0x7e81}, + {0x8232a936, 0xffff401d}, + {0x8232a937, 0x9d60}, + {0x8232a938, 0x5488}, + {0x8232a939, 0x6cda}, + {0x8232aa30, 0x44ce}, + {0x8232aa31, 0x98e0}, + {0x8232aa32, 0x3f44}, + {0x8232aa33, 0x7df0}, + {0x8232aa34, 0x98f9}, + {0x8232aa35, 0x5a55}, + {0x8232aa36, 0x5f7d}, + {0x8232aa37, 0x60f8}, + {0x8232aa38, 0x7c08}, + {0x8232aa39, 0x5db4}, + {0x8232ab30, 0x664d}, + {0x8232ab31, 0x9009}, + {0x8232ab32, 0x575c}, + {0x8232ab33, 0x61d2}, + {0x8232ab34, 0x423a}, + {0x8232ab35, 0x5a65}, + {0x8232ab36, 0x554d}, + {0x8232ab37, 0x8206}, + {0x8232ab38, 0x7244}, + {0x8232ab39, 0xb741}, + {0x8232ac30, 0x98e2}, + {0x8232ac31, 0x7724}, + {0x8232ac32, 0x698a}, + {0x8232ac33, 0x477d}, + {0x8232ac34, 0x698c}, + {0x8232ac35, 0x47f0}, + {0x8232ac36, 0x88ed}, + {0x8232ac37, 0x45cd}, + {0x8232ac38, 0xaff0}, + {0x8232ac39, 0x50c5}, + {0x8232ad30, 0x477e}, + {0x8232ad31, 0x4fac}, + {0x8232ad32, 0x772a}, + {0x8232ad33, 0xa91e}, + {0x8232ad34, 0x4068}, + {0x8232ad35, 0xac39}, + {0x8232ad36, 0x7f1d}, + {0x8232ad37, 0xb2c8}, + {0x8232ad38, 0x7fc0}, + {0x8232ad39, 0x8b1c}, + {0x8232ae30, 0x8b1d}, + {0x8232ae31, 0xa4da}, + {0x8232ae32, 0xab3d}, + {0x8232ae33, 0xba2d}, + {0x8232ae34, 0x8b5d}, + {0x8232ae35, 0x46ae}, + {0x8232ae36, 0xb23e}, + {0x8232ae37, 0xb6a0}, + {0x8232ae38, 0xb162}, + {0x8232ae39, 0x64ec}, + {0x8232af30, 0xc664}, + {0x8232af31, 0xadb1}, + {0x8232af32, 0x80b0}, + {0x8232af33, 0x6eb6}, + {0x8232af34, 0xb242}, + {0x8232af35, 0xb072}, + {0x8232af36, 0x9b5a}, + {0x8232af37, 0x5c14}, + {0x8232af38, 0x6245}, + {0x8232af39, 0xb709}, + {0x8232b030, 0x9645}, + {0x8232b031, 0x43ea}, + {0x8232b032, 0x7671}, + {0x8232b033, 0x947c}, + {0x8232b034, 0xadea}, + {0x8232b035, 0x4912}, + {0x8232b036, 0x45c0}, + {0x8232b037, 0x83b1}, + {0x8232b038, 0x8fe0}, + {0x8232b039, 0x8041}, + {0x8232b130, 0x63d0}, + {0x8232b131, 0xb954}, + {0x8232b132, 0xbebc}, + {0x8232b133, 0x6049}, + {0x8232b134, 0x43a4}, + {0x8232b135, 0x407d}, + {0x8232b136, 0x8bfe}, + {0x8232b137, 0xa692}, + {0x8232b138, 0xa9a5}, + {0x8232b139, 0x7022}, + {0x8232b230, 0x7ce8}, + {0x8232b231, 0x7da5}, + {0x8232b232, 0xbec1}, + {0x8232b233, 0x401a}, + {0x8232b234, 0x6478}, + {0x8232b235, 0x6e01}, + {0x8232b236, 0x82bc}, + {0x8232b237, 0x8801}, + {0x8232b238, 0x977e}, + {0x8232b239, 0x9910}, + {0x8232b330, 0x819e}, + {0x8232b331, 0x77d8}, + {0x8232b332, 0x8078}, + {0x8232b333, 0x81a4}, + {0x8232b334, 0xa6bd}, + {0x8232b335, 0x448c}, + {0x8232b336, 0x8fb5}, + {0x8232b337, 0x692d}, + {0x8232b338, 0x63fc}, + {0x8232b339, 0xa858}, + {0x8232b430, 0xad30}, + {0x8232b431, 0x84ca}, + {0x8232b432, 0x9fd5}, + {0x8232b433, 0x5fa0}, + {0x8232b434, 0xba50}, + {0x8232b435, 0xffff408b}, + {0x8232b436, 0x47c4}, + {0x8232b437, 0x4206}, + {0x8232b438, 0xc725}, + {0x8232b439, 0x4ef5}, + {0x8232b530, 0xc538}, + {0x8232b531, 0x6424}, + {0x8232b532, 0x8b58}, + {0x8232b533, 0x5baa}, + {0x8232b534, 0xac3a}, + {0x8232b535, 0x62f2}, + {0x8232b536, 0x96a8}, + {0x8232b537, 0x7044}, + {0x8232b538, 0x440d}, + {0x8232b539, 0x5112}, + {0x8232b630, 0xb1ca}, + {0x8232b631, 0xb8ee}, + {0x8232b632, 0x3d88}, + {0x8232b633, 0xbf9a}, + {0x8232b634, 0xbfe5}, + {0x8232b635, 0x6618}, + {0x8232b636, 0x96f9}, + {0x8232b637, 0x4e2a}, + {0x8232b638, 0x4ffd}, + {0x8232b639, 0x4a06}, + {0x8232b730, 0x56e9}, + {0x8232b731, 0x8095}, + {0x8232b732, 0xc005}, + {0x8232b733, 0xc058}, + {0x8232b734, 0xffff40a8}, + {0x8232b735, 0xb0b4}, + {0x8232b736, 0x8d18}, + {0x8232b737, 0x5f48}, + {0x8232b738, 0x59a6}, + {0x8232b739, 0x8cb9}, + {0x8232b830, 0x7c86}, + {0x8232b831, 0x5afc}, + {0x8232b832, 0x7245}, + {0x8232b833, 0x92ae}, + {0x8232b834, 0x535e}, + {0x8232b835, 0x4b94}, + {0x8232b836, 0xaff9}, + {0x8232b837, 0x5979}, + {0x8232b838, 0x698d}, + {0x8232b839, 0x5aec}, + {0x8232b930, 0x5c89}, + {0x8232b931, 0x9b8e}, + {0x8232b932, 0xa4c4}, + {0x8232b933, 0xc112}, + {0x8232b934, 0x8438}, + {0x8232b935, 0x4f28}, + {0x8232b936, 0x7296}, + {0x8232b937, 0x9bdc}, + {0x8232b938, 0x4b44}, + {0x8232b939, 0xaf34}, + {0x8232ba30, 0x5c38}, + {0x8232ba31, 0xffff40c3}, + {0x8232ba32, 0xffff40c4}, + {0x8232ba33, 0x4dd8}, + {0x8232ba34, 0x8a5d}, + {0x8232ba35, 0x7ff1}, + {0x8232ba36, 0x6950}, + {0x8232ba37, 0x80b1}, + {0x8232ba38, 0x6cae}, + {0x8232ba39, 0xb93c}, + {0x8232bb30, 0xc02c}, + {0x8232bb31, 0xc50c}, + {0x8232bb32, 0xbe19}, + {0x8232bb33, 0xabe8}, + {0x8232bb34, 0xffff40d0}, + {0x8232bb35, 0x3d2e}, + {0x8232bb36, 0x5e82}, + {0x8232bb37, 0x5a0a}, + {0x8232bb38, 0x5f66}, + {0x8232bb39, 0x73a4}, + {0x8232bc30, 0xa5c2}, + {0x8232bc31, 0x417e}, + {0x8232bc32, 0x6fee}, + {0x8232bc33, 0x7b1d}, + {0x8232bc34, 0x4add}, + {0x8232bc35, 0x7672}, + {0x8232bc36, 0xb342}, + {0x8232bc37, 0x8d32}, + {0x8232bc38, 0x9805}, + {0x8232bc39, 0xffff40df}, + {0x8232bd30, 0xae26}, + {0x8232bd31, 0x6a45}, + {0x8232bd32, 0x8d96}, + {0x8232bd33, 0x62ac}, + {0x8232bd34, 0x9aae}, + {0x8232bd35, 0x493e}, + {0x8232bd36, 0x5166}, + {0x8232bd37, 0x79aa}, + {0x8232bd38, 0xffff40e8}, + {0x8232bd39, 0x82e8}, + {0x8232be30, 0x9ca0}, + {0x8232be31, 0x4c9a}, + {0x8232be32, 0xa39d}, + {0x8232be33, 0x57d0}, + {0x8232be34, 0x4bec}, + {0x8232be35, 0xffff40ef}, + {0x8232be36, 0x4281}, + {0x8232be37, 0xa946}, + {0x8232be38, 0x8609}, + {0x8232be39, 0x725e}, + {0x8232bf30, 0xc3d2}, + {0x8232bf31, 0x840e}, + {0x8232bf32, 0x6124}, + {0x8232bf33, 0xb731}, + {0x8232bf34, 0xa94e}, + {0x8232bf35, 0x7338}, + {0x8232bf36, 0x8142}, + {0x8232bf37, 0x3cea}, + {0x8232bf38, 0x4852}, + {0x8232bf39, 0x5bd4}, + {0x8232c030, 0x3efe}, + {0x8232c031, 0x55c5}, + {0x8232c032, 0x63b0}, + {0x8232c033, 0xb46e}, + {0x8232c034, 0x7972}, + {0x8232c035, 0xb122}, + {0x8232c036, 0xb5aa}, + {0x8232c037, 0x6d64}, + {0x8232c038, 0x639c}, + {0x8232c039, 0x4691}, + {0x8232c130, 0x505d}, + {0x8232c131, 0x521c}, + {0x8232c132, 0xffff410a}, + {0x8232c133, 0xb059}, + {0x8232c134, 0xc500}, + {0x8232c135, 0xbe36}, + {0x8232c136, 0x8ad4}, + {0x8232c137, 0xa819}, + {0x8232c138, 0x9059}, + {0x8232c139, 0x63a0}, + {0x8232c230, 0x913e}, + {0x8232c231, 0x61f5}, + {0x8232c232, 0x6cb0}, + {0x8232c233, 0x955a}, + {0x8232c234, 0xffff4116}, + {0x8232c235, 0xbb4d}, + {0x8232c236, 0x8714}, + {0x8232c237, 0x80fd}, + {0x8232c238, 0x4344}, + {0x8232c239, 0x7c2e}, + {0x8232c330, 0x74cc}, + {0x8232c331, 0x4932}, + {0x8232c332, 0xffff411e}, + {0x8232c333, 0x4b51}, + {0x8232c334, 0x446d}, + {0x8232c335, 0x4c7c}, + {0x8232c336, 0xbe52}, + {0x8232c337, 0xffff4123}, + {0x8232c338, 0x72b1}, + {0x8232c339, 0x78ec}, + {0x8232c430, 0x777a}, + {0x8232c431, 0x9188}, + {0x8232c432, 0xb8e5}, + {0x8232c433, 0xb451}, + {0x8232c434, 0x4f12}, + {0x8232c435, 0x8ac2}, + {0x8232c436, 0xb369}, + {0x8232c437, 0x83be}, + {0x8232c438, 0x55cd}, + {0x8232c439, 0x6724}, + {0x8232c530, 0xaf46}, + {0x8232c531, 0x5406}, + {0x8232c532, 0x92a8}, + {0x8232c533, 0xa810}, + {0x8232c534, 0xffff4134}, + {0x8232c535, 0xffff4135}, + {0x8232c536, 0x3f45}, + {0x8232c537, 0x96bd}, + {0x8232c538, 0x8925}, + {0x8232c539, 0xffff4139}, + {0x8232c630, 0xc220}, + {0x8232c631, 0x4569}, + {0x8232c632, 0x9ecc}, + {0x8232c633, 0xa81a}, + {0x8232c634, 0x925a}, + {0x8232c635, 0xb4a1}, + {0x8232c636, 0x77b4}, + {0x8232c637, 0x3bf2}, + {0x8232c638, 0x5e56}, + {0x8232c639, 0x8e70}, + {0x8232c730, 0x7598}, + {0x8232c731, 0x5ba0}, + {0x8232c732, 0xc63e}, + {0x8232c733, 0x9a64}, + {0x8232c734, 0xbb44}, + {0x8232c735, 0xaf80}, + {0x8232c736, 0x43e0}, + {0x8232c737, 0xa245}, + {0x8232c738, 0x6d34}, + {0x8232c739, 0x9fa2}, + {0x8232c830, 0xb872}, + {0x8232c831, 0xa3c6}, + {0x8232c832, 0x6738}, + {0x8232c833, 0x9295}, + {0x8232c834, 0x7d8a}, + {0x8232c835, 0x6caa}, + {0x8232c836, 0xc5d9}, + {0x8232c837, 0x6c41}, + {0x8232c838, 0x3bb8}, + {0x8232c839, 0x9b0a}, + {0x8232c930, 0x728a}, + {0x8232c931, 0x6380}, + {0x8232c932, 0x904d}, + {0x8232c933, 0x44f4}, + {0x8232c934, 0x51ee}, + {0x8232c935, 0x7008}, + {0x8232c936, 0x831c}, + {0x8232c937, 0x9e1d}, + {0x8232c938, 0xad1c}, + {0x8232c939, 0x6bf6}, + {0x8232ca30, 0x61fc}, + {0x8232ca31, 0x8b20}, + {0x8232ca32, 0x69a6}, + {0x8232ca33, 0x7dbe}, + {0x8232ca34, 0xafb6}, + {0x8232ca35, 0xa96a}, + {0x8232ca36, 0xc1e2}, + {0x8232ca37, 0xffff416a}, + {0x8232ca38, 0xffff416b}, + {0x8232ca39, 0x3b81}, + {0x8232cb30, 0x8642}, + {0x8232cb31, 0x4332}, + {0x8232cb32, 0x9d1a}, + {0x8232cb33, 0x52cc}, + {0x8232cb34, 0x52d0}, + {0x8232cb35, 0x8a7a}, + {0x8232cb36, 0x487a}, + {0x8232cb37, 0x9b96}, + {0x8232cb38, 0xc580}, + {0x8232cb39, 0x8506}, + {0x8232cc30, 0xa088}, + {0x8232cc31, 0x95ad}, + {0x8232cc32, 0x7a3a}, + {0x8232cc33, 0x4076}, + {0x8232cc34, 0x74dd}, + {0x8232cc35, 0x7d28}, + {0x8232cc36, 0xaba1}, + {0x8232cc37, 0x439a}, + {0x8232cc38, 0x60d9}, + {0x8232cc39, 0x7e78}, + {0x8232cd30, 0x584a}, + {0x8232cd31, 0x7691}, + {0x8232cd32, 0x4d6d}, + {0x8232cd33, 0xbec2}, + {0x8232cd34, 0xc5fd}, + {0x8232cd35, 0xffff4186}, + {0x8232cd36, 0xffff4187}, + {0x8232cd37, 0xc2b5}, + {0x8232cd38, 0x3ce1}, + {0x8232cd39, 0x4b58}, + {0x8232ce30, 0xffff418b}, + {0x8232ce31, 0xffff418c}, + {0x8232ce32, 0x79c2}, + {0x8232ce33, 0xa850}, + {0x8232ce34, 0x54b1}, + {0x8232ce35, 0x5c99}, + {0x8232ce36, 0x4676}, + {0x8232ce37, 0x6ba8}, + {0x8232ce38, 0x525a}, + {0x8232ce39, 0x47b1}, + {0x8232cf30, 0xbb74}, + {0x8232cf31, 0x5f34}, + {0x8232cf32, 0xb22d}, + {0x8232cf33, 0xaf2a}, + {0x8232cf34, 0xb1d1}, + {0x8232cf35, 0x9fd6}, + {0x8232cf36, 0xbe34}, + {0x8232cf37, 0xb8a4}, + {0x8232cf38, 0xae7c}, + {0x8232cf39, 0xb234}, + {0x8232d030, 0x6fb0}, + {0x8232d031, 0x619e}, + {0x8232d032, 0x7352}, + {0x8232d033, 0xbb88}, + {0x8232d034, 0x4600}, + {0x8232d035, 0x48fd}, + {0x8232d036, 0x48fe}, + {0x8232d037, 0x95a5}, + {0x8232d038, 0xa4b4}, + {0x8232d039, 0x848d}, + {0x8232d130, 0x80f6}, + {0x8232d131, 0x5f14}, + {0x8232d132, 0x4930}, + {0x8232d133, 0xbc1e}, + {0x8232d134, 0xadb5}, + {0x8232d135, 0x6aa6}, + {0x8232d136, 0xc588}, + {0x8232d137, 0xb8cd}, + {0x8232d138, 0x9c74}, + {0x8232d139, 0x6f14}, + {0x8232d230, 0x9b16}, + {0x8232d231, 0xffff41b4}, + {0x8232d232, 0x46bc}, + {0x8232d233, 0x6bbd}, + {0x8232d234, 0xae88}, + {0x8232d235, 0xc0f0}, + {0x8232d236, 0x47c5}, + {0x8232d237, 0x85ee}, + {0x8232d238, 0x8d34}, + {0x8232d239, 0x6fc4}, + {0x8232d330, 0x8fa1}, + {0x8232d331, 0x72de}, + {0x8232d332, 0xb564}, + {0x8232d333, 0x91e4}, + {0x8232d334, 0x9960}, + {0x8232d335, 0x8b68}, + {0x8232d336, 0x997c}, + {0x8232d337, 0xffff41c4}, + {0x8232d338, 0x5345}, + {0x8232d339, 0xffff41c6}, + {0x8232d430, 0x7eca}, + {0x8232d431, 0x60f2}, + {0x8232d432, 0xffff41c9}, + {0x8232d433, 0xffff41ca}, + {0x8232d434, 0x5ce2}, + {0x8232d435, 0x8d26}, + {0x8232d436, 0x48c5}, + {0x8232d437, 0x9075}, + {0x8232d438, 0x5139}, + {0x8232d439, 0x75b8}, + {0x8232d530, 0x3cd8}, + {0x8232d531, 0x6a08}, + {0x8232d532, 0xacf4}, + {0x8232d533, 0x7c1a}, + {0x8232d534, 0xacf6}, + {0x8232d535, 0xbc0c}, + {0x8232d536, 0xc2da}, + {0x8232d537, 0x6089}, + {0x8232d538, 0xb640}, + {0x8232d539, 0x896c}, + {0x8232d630, 0xc1d0}, + {0x8232d631, 0x8c12}, + {0x8232d632, 0x66a8}, + {0x8232d633, 0x57aa}, + {0x8232d634, 0x679a}, + {0x8232d635, 0xc445}, + {0x8232d636, 0xc446}, + {0x8232d637, 0x7064}, + {0x8232d638, 0x842c}, + {0x8232d639, 0x92ac}, + {0x8232d730, 0xbd59}, + {0x8232d731, 0x3c0e}, + {0x8232d732, 0xc240}, + {0x8232d733, 0x59b4}, + {0x8232d734, 0xb4c2}, + {0x8232d735, 0x46e1}, + {0x8232d736, 0x6438}, + {0x8232d737, 0xc3b1}, + {0x8232d738, 0x73c8}, + {0x8232d739, 0x9172}, + {0x8232d830, 0x91ad}, + {0x8232d831, 0xc0d5}, + {0x8232d832, 0x8249}, + {0x8232d833, 0x4371}, + {0x8232d834, 0xffff41f3}, + {0x8232d835, 0xffff41f4}, + {0x8232d836, 0xb614}, + {0x8232d837, 0x6dce}, + {0x8232d838, 0x40c5}, + {0x8232d839, 0x46a6}, + {0x8232d930, 0x6e70}, + {0x8232d931, 0x5068}, + {0x8232d932, 0xa376}, + {0x8232d933, 0xb4de}, + {0x8232d934, 0xc24e}, + {0x8232d935, 0xb001}, + {0x8232d936, 0xffff41ff}, + {0x8232d937, 0x9332}, + {0x8232d938, 0x7ba0}, + {0x8232d939, 0x88ce}, + {0x8232da30, 0xbf5c}, + {0x8232da31, 0x5d2d}, + {0x8232da32, 0xbb94}, + {0x8232da33, 0x4c36}, + {0x8232da34, 0xbf7c}, + {0x8232da35, 0x5462}, + {0x8232da36, 0x9411}, + {0x8232da37, 0x78b2}, + {0x8232da38, 0x9be6}, + {0x8232da39, 0x8f62}, + {0x8232db30, 0x7edc}, + {0x8232db31, 0xb2d9}, + {0x8232db32, 0x3dc0}, + {0x8232db33, 0x5c16}, + {0x8232db34, 0x5ad9}, + {0x8232db35, 0x82b0}, + {0x8232db36, 0x58da}, + {0x8232db37, 0x6631}, + {0x8232db38, 0x96d8}, + {0x8232db39, 0x6f76}, + {0x8232dc30, 0x9b98}, + {0x8232dc31, 0x4a18}, + {0x8232dc32, 0xc38c}, + {0x8232dc33, 0x9c32}, + {0x8232dc34, 0x70b1}, + {0x8232dc35, 0x8df6}, + {0x8232dc36, 0xace8}, + {0x8232dc37, 0x50cc}, + {0x8232dc38, 0x4385}, + {0x8232dc39, 0x6186}, + {0x8232dd30, 0x4a72}, + {0x8232dd31, 0x9320}, + {0x8232dd32, 0xc119}, + {0x8232dd33, 0x8bf5}, + {0x8232dd34, 0x6a3d}, + {0x8232dd35, 0xc66c}, + {0x8232dd36, 0xa38d}, + {0x8232dd37, 0xffff4228}, + {0x8232dd38, 0xffff4229}, + {0x8232dd39, 0xa769}, + {0x8232de30, 0x8259}, + {0x8232de31, 0x8990}, + {0x8232de32, 0x9a10}, + {0x8232de33, 0x6d0d}, + {0x8232de34, 0xc038}, + {0x8232de35, 0x9504}, + {0x8232de36, 0x9d7a}, + {0x8232de37, 0x3d32}, + {0x8232de38, 0x9bf6}, + {0x8232de39, 0x8c4e}, + {0x8232df30, 0xa484}, + {0x8232df31, 0x91ce}, + {0x8232df32, 0x7c15}, + {0x8232df33, 0x604a}, + {0x8232df34, 0x981e}, + {0x8232df35, 0xc2ea}, + {0x8232df36, 0x8994}, + {0x8232df37, 0x8070}, + {0x8232df38, 0x6a46}, + {0x8232df39, 0x9508}, + {0x8232e030, 0x7fd9}, + {0x8232e031, 0x9870}, + {0x8232e032, 0x78ca}, + {0x8232e033, 0x7444}, + {0x8232e034, 0x6839}, + {0x8232e035, 0x7490}, + {0x8232e036, 0xc292}, + {0x8232e037, 0x4f15}, + {0x8232e038, 0xffff4247}, + {0x8232e039, 0x9349}, + {0x8232e130, 0x5a3e}, + {0x8232e131, 0x53f8}, + {0x8232e132, 0x7e98}, + {0x8232e133, 0x9b29}, + {0x8232e134, 0x6764}, + {0x8232e135, 0x9d32}, + {0x8232e136, 0xab6a}, + {0x8232e137, 0x7060}, + {0x8232e138, 0xa540}, + {0x8232e139, 0x537c}, + {0x8232e230, 0x7c1c}, + {0x8232e231, 0x42cc}, + {0x8232e232, 0x43a6}, + {0x8232e233, 0x78d4}, + {0x8232e234, 0xb34c}, + {0x8232e235, 0x98bd}, + {0x8232e236, 0xbc01}, + {0x8232e237, 0x7ef2}, + {0x8232e238, 0xba6a}, + {0x8232e239, 0xc2a8}, + {0x8232e330, 0xb415}, + {0x8232e331, 0x4c9c}, + {0x8232e332, 0x63e8}, + {0x8232e333, 0xa335}, + {0x8232e334, 0x9ca5}, + {0x8232e335, 0x93bd}, + {0x8232e336, 0xab62}, + {0x8232e337, 0x9825}, + {0x8232e338, 0x99d1}, + {0x8232e339, 0x8bc0}, + {0x8232e430, 0x7951}, + {0x8232e431, 0xb57e}, + {0x8232e432, 0x8595}, + {0x8232e433, 0x7480}, + {0x8232e434, 0x750a}, + {0x8232e435, 0x54b0}, + {0x8232e436, 0x77d9}, + {0x8232e437, 0x7858}, + {0x8232e438, 0xa94d}, + {0x8232e439, 0xaa8c}, + {0x8232e530, 0x8596}, + {0x8232e531, 0x7f70}, + {0x8232e532, 0xa854}, + {0x8232e533, 0x90f2}, + {0x8232e534, 0xc4c1}, + {0x8232e535, 0x98a9}, + {0x8232e536, 0xb034}, + {0x8232e537, 0x4056}, + {0x8232e538, 0x78f1}, + {0x8232e539, 0x5f35}, + {0x8232e630, 0x8a28}, + {0x8232e631, 0x778c}, + {0x8232e632, 0x3d46}, + {0x8232e633, 0x3f4d}, + {0x8232e634, 0x6016}, + {0x8232e635, 0x83c4}, + {0x8232e636, 0x959a}, + {0x8232e637, 0x4372}, + {0x8232e638, 0x86bc}, + {0x8232e639, 0x8e75}, + {0x8232e730, 0x80f4}, + {0x8232e731, 0x6bed}, + {0x8232e732, 0x426a}, + {0x8232e733, 0x7e42}, + {0x8232e734, 0x9340}, + {0x8232e735, 0xa3ce}, + {0x8232e736, 0xc4d2}, + {0x8232e737, 0xffff428c}, + {0x8232e738, 0x74cd}, + {0x8232e739, 0x904e}, + {0x8232e830, 0x9341}, + {0x8232e831, 0x636c}, + {0x8232e832, 0xa99e}, + {0x8232e833, 0x8e10}, + {0x8232e834, 0x9769}, + {0x8232e835, 0xb6a6}, + {0x8232e836, 0xbe79}, + {0x8232e837, 0x82b1}, + {0x8232e838, 0x6202}, + {0x8232e839, 0x6bfd}, + {0x8232e930, 0xafbd}, + {0x8232e931, 0x511d}, + {0x8232e932, 0x9305}, + {0x8232e933, 0xa0c4}, + {0x8232e934, 0xab59}, + {0x8232e935, 0xbfca}, + {0x8232e936, 0x7eae}, + {0x8232e937, 0xa760}, + {0x8232e938, 0x7d2c}, + {0x8232e939, 0x6812}, + {0x8232ea30, 0x6211}, + {0x8232ea31, 0x9ca1}, + {0x8232ea32, 0xaa88}, + {0x8232ea33, 0xb2f9}, + {0x8232ea34, 0x8802}, + {0x8232ea35, 0x7bca}, + {0x8232ea36, 0x53b4}, + {0x8232ea37, 0x75f0}, + {0x8232ea38, 0x4b2c}, + {0x8232ea39, 0x48e5}, + {0x8232eb30, 0x4d70}, + {0x8232eb31, 0x4e10}, + {0x8232eb32, 0x7124}, + {0x8232eb33, 0x488d}, + {0x8232eb34, 0xa855}, + {0x8232eb35, 0x44e2}, + {0x8232eb36, 0x7f75}, + {0x8232eb37, 0x8c59}, + {0x8232eb38, 0x8edc}, + {0x8232eb39, 0xc084}, + {0x8232ec30, 0xc5b0}, + {0x8232ec31, 0xb8bd}, + {0x8232ec32, 0xa811}, + {0x8232ec33, 0x608a}, + {0x8232ec34, 0x57a6}, + {0x8232ec35, 0x474c}, + {0x8232ec36, 0x5af9}, + {0x8232ec37, 0x81fe}, + {0x8232ec38, 0x55d6}, + {0x8232ec39, 0x60f4}, + {0x8232ed30, 0x5939}, + {0x8232ed31, 0xb1d2}, + {0x8232ed32, 0x7df1}, + {0x8232ed33, 0xa298}, + {0x8232ed34, 0xffff42c5}, + {0x8232ed35, 0x7a4a}, + {0x8232ed36, 0xffff42c7}, + {0x8232ed37, 0x9225}, + {0x8232ed38, 0xae4d}, + {0x8232ed39, 0xc0ca}, + {0x8232ee30, 0x8099}, + {0x8232ee31, 0x6826}, + {0x8232ee32, 0x520c}, + {0x8232ee33, 0xbed5}, + {0x8232ee34, 0xc77e}, + {0x8232ee35, 0xbb81}, + {0x8232ee36, 0x77b5}, + {0x8232ee37, 0x97ca}, + {0x8232ee38, 0xc37c}, + {0x8232ee39, 0x3f4e}, + {0x8232ef30, 0x9174}, + {0x8232ef31, 0xb9fd}, + {0x8232ef32, 0x66b9}, + {0x8232ef33, 0xc501}, + {0x8232ef34, 0x5312}, + {0x8232ef35, 0xb4c4}, + {0x8232ef36, 0x7f8d}, + {0x8232ef37, 0x8ad5}, + {0x8232ef38, 0xb69a}, + {0x8232ef39, 0xa29e}, + {0x8232f030, 0x6599}, + {0x8232f031, 0x423e}, + {0x8232f032, 0x97dc}, + {0x8232f033, 0x40b2}, + {0x8232f034, 0x539e}, + {0x8232f035, 0xbb8e}, + {0x8232f036, 0x74bd}, + {0x8232f037, 0x53a0}, + {0x8232f038, 0x8f94}, + {0x8232f039, 0x56bc}, + {0x8232f130, 0x52f6}, + {0x8232f131, 0x520d}, + {0x8232f132, 0xc0d6}, + {0x8232f133, 0x9e91}, + {0x8232f134, 0xba2e}, + {0x8232f135, 0x6a3c}, + {0x8232f136, 0x8ae0}, + {0x8232f137, 0x6c75}, + {0x8232f138, 0x728c}, + {0x8232f139, 0x9630}, + {0x8232f230, 0x3e2e}, + {0x8232f231, 0x84d2}, + {0x8232f232, 0xb50e}, + {0x8232f233, 0xad20}, + {0x8232f234, 0x81bd}, + {0x8232f235, 0xaee6}, + {0x8232f236, 0x567e}, + {0x8232f237, 0x8eb2}, + {0x8232f238, 0x847e}, + {0x8232f239, 0x9f69}, + {0x8232f330, 0x3ec1}, + {0x8232f331, 0xbe1c}, + {0x8232f332, 0xa2e4}, + {0x8232f333, 0x6f78}, + {0x8232f334, 0xb1c0}, + {0x8232f335, 0x85b0}, + {0x8232f336, 0xaa12}, + {0x8232f337, 0x5948}, + {0x8232f338, 0x9d22}, + {0x8232f339, 0x5c18}, + {0x8232f430, 0x9b99}, + {0x8232f431, 0x9bf8}, + {0x8232f432, 0x581c}, + {0x8232f433, 0xb20a}, + {0x8232f434, 0x4bbc}, + {0x8232f435, 0x8d74}, + {0x8232f436, 0x6a6c}, + {0x8232f437, 0x7c96}, + {0x8232f438, 0x7fda}, + {0x8232f439, 0x7fdc}, + {0x8232f530, 0x66ed}, + {0x8232f531, 0x7b29}, + {0x8232f532, 0x53b0}, + {0x8232f533, 0x858e}, + {0x8232f534, 0x7f52}, + {0x8232f535, 0x69c5}, + {0x8232f536, 0x56c5}, + {0x8232f537, 0x40d5}, + {0x8232f538, 0x6249}, + {0x8232f539, 0x9a41}, + {0x8232f630, 0xb212}, + {0x8232f631, 0x845a}, + {0x8232f632, 0x6a4a}, + {0x8232f633, 0x76bd}, + {0x8232f634, 0x4200}, + {0x8232f635, 0x66fd}, + {0x8232f636, 0x9e49}, + {0x8232f637, 0x78d6}, + {0x8232f638, 0xc721}, + {0x8232f639, 0x9695}, + {0x8232f730, 0xb65d}, + {0x8232f731, 0x4d71}, + {0x8232f732, 0x47fa}, + {0x8232f733, 0x4282}, + {0x8232f734, 0x8079}, + {0x8232f735, 0xb092}, + {0x8232f736, 0x7321}, + {0x8232f737, 0x47e0}, + {0x8232f738, 0x68a4}, + {0x8232f739, 0x98a8}, + {0x8232f830, 0x8ff8}, + {0x8232f831, 0x846d}, + {0x8232f832, 0x7c21}, + {0x8232f833, 0xaeb4}, + {0x8232f834, 0x969c}, + {0x8232f835, 0x7c22}, + {0x8232f836, 0xc3fc}, + {0x8232f837, 0xc5a9}, + {0x8232f838, 0xc4a6}, + {0x8232f839, 0x6b69}, + {0x8232f930, 0x5308}, + {0x8232f931, 0xb470}, + {0x8232f932, 0x5135}, + {0x8232f933, 0x42a2}, + {0x8232f934, 0x847d}, + {0x8232f935, 0x565e}, + {0x8232f936, 0x72c8}, + {0x8232f937, 0x9b18}, + {0x8232f938, 0xb8f0}, + {0x8232f939, 0xb825}, + {0x8232fa30, 0x4eac}, + {0x8232fa31, 0x7889}, + {0x8232fa32, 0xc40c}, + {0x8232fa33, 0x9bd1}, + {0x8232fa34, 0x88c6}, + {0x8232fa35, 0xbe59}, + {0x8232fa36, 0x6879}, + {0x8232fa37, 0x4969}, + {0x8232fa38, 0x4270}, + {0x8232fa39, 0x703c}, + {0x8232fb30, 0x4b6d}, + {0x8232fb31, 0xffff434f}, + {0x8232fb32, 0x5d3d}, + {0x8232fb33, 0x5d3e}, + {0x8232fb34, 0x81ca}, + {0x8232fb35, 0x6086}, + {0x8232fb36, 0x596e}, + {0x8232fb37, 0x4dca}, + {0x8232fb38, 0x5640}, + {0x8232fb39, 0xae10}, + {0x8232fc30, 0x7f44}, + {0x8232fc31, 0x7e36}, + {0x8232fc32, 0x7384}, + {0x8232fc33, 0x5aa6}, + {0x8232fc34, 0xbf78}, + {0x8232fc35, 0x9bdd}, + {0x8232fc36, 0xba30}, + {0x8232fc37, 0xc6ac}, + {0x8232fc38, 0x74de}, + {0x8232fc39, 0x7b1e}, + {0x8232fd30, 0xa581}, + {0x8232fd31, 0x7416}, + {0x8232fd32, 0x654a}, + {0x8232fd33, 0x761c}, + {0x8232fd34, 0x7518}, + {0x8232fd35, 0xbced}, + {0x8232fd36, 0x88f5}, + {0x8232fd37, 0xb17d}, + {0x8232fd38, 0xa1dc}, + {0x8232fd39, 0xa16e}, + {0x8232fe30, 0x86e5}, + {0x8232fe31, 0xbcf2}, + {0x8232fe32, 0xbf6d}, + {0x8232fe33, 0x5bed}, + {0x8232fe34, 0xb1b8}, + {0x8232fe35, 0xad04}, + {0x8232fe36, 0x825e}, + {0x8232fe37, 0x9080}, + {0x8232fe38, 0xa384}, + {0x8232fe39, 0xc0d8}, + {0x82338130, 0x4ff0}, + {0x82338131, 0xa38e}, + {0x82338132, 0x41e5}, + {0x82338133, 0x945e}, + {0x82338134, 0x61c1}, + {0x82338135, 0xae2d}, + {0x82338136, 0xbcae}, + {0x82338137, 0x7625}, + {0x82338138, 0xb04c}, + {0x82338139, 0x61e0}, + {0x82338230, 0xae7d}, + {0x82338231, 0x6018}, + {0x82338232, 0x3dd2}, + {0x82338233, 0x90dc}, + {0x82338234, 0xa9ed}, + {0x82338235, 0x892c}, + {0x82338236, 0x778e}, + {0x82338237, 0xc33a}, + {0x82338238, 0xb4c5}, + {0x82338239, 0xad55}, + {0x82338330, 0x7c0a}, + {0x82338331, 0x6f44}, + {0x82338332, 0x48cd}, + {0x82338333, 0x55ec}, + {0x82338334, 0x824e}, + {0x82338335, 0x5d29}, + {0x82338336, 0x4585}, + {0x82338337, 0x7afd}, + {0x82338338, 0xbead}, + {0x82338339, 0x9be8}, + {0x82338430, 0x55f9}, + {0x82338431, 0x5f16}, + {0x82338432, 0xbdbe}, + {0x82338433, 0x8d0a}, + {0x82338434, 0x9ab1}, + {0x82338435, 0x8881}, + {0x82338436, 0x633a}, + {0x82338437, 0xffff439b}, + {0x82338438, 0x6352}, + {0x82338439, 0xc450}, + {0x82338530, 0xffff439e}, + {0x82338531, 0x52e4}, + {0x82338532, 0x52e5}, + {0x82338533, 0x9278}, + {0x82338534, 0x8ac5}, + {0x82338535, 0x998c}, + {0x82338536, 0x6c71}, + {0x82338537, 0xffff43a5}, + {0x82338538, 0xb06e}, + {0x82338539, 0x3d99}, + {0x82338630, 0xb2ce}, + {0x82338631, 0xc5e5}, + {0x82338632, 0x831d}, + {0x82338633, 0x4952}, + {0x82338634, 0x4336}, + {0x82338635, 0x9e74}, + {0x82338636, 0x5d8d}, + {0x82338637, 0xc78c}, + {0x82338638, 0xb43a}, + {0x82338639, 0xa1d9}, + {0x82338730, 0x5920}, + {0x82338731, 0x3f50}, + {0x82338732, 0x5329}, + {0x82338733, 0xc451}, + {0x82338734, 0xa5b6}, + {0x82338735, 0xa43a}, + {0x82338736, 0xc262}, + {0x82338737, 0xc389}, + {0x82338738, 0x7afe}, + {0x82338739, 0xa43c}, + {0x82338830, 0x5c54}, + {0x82338831, 0x8f1a}, + {0x82338832, 0x7254}, + {0x82338833, 0xbc9c}, + {0x82338834, 0x9a2e}, + {0x82338835, 0x7ff9}, + {0x82338836, 0x4e39}, + {0x82338837, 0x8b35}, + {0x82338838, 0x434a}, + {0x82338839, 0x886c}, + {0x82338930, 0x7692}, + {0x82338931, 0x9696}, + {0x82338932, 0x79cc}, + {0x82338933, 0x9a74}, + {0x82338934, 0x8aed}, + {0x82338935, 0xbb36}, + {0x82338936, 0x557a}, + {0x82338937, 0xacbd}, + {0x82338938, 0x6d9c}, + {0x82338939, 0xc20c}, + {0x82338a30, 0x8834}, + {0x82338a31, 0xa22c}, + {0x82338a32, 0x84c6}, + {0x82338a33, 0x9161}, + {0x82338a34, 0xc080}, + {0x82338a35, 0x5bfd}, + {0x82338a36, 0x87e6}, + {0x82338a37, 0x9cb2}, + {0x82338a38, 0x4580}, + {0x82338a39, 0x49b5}, + {0x82338b30, 0x5e21}, + {0x82338b31, 0x8160}, + {0x82338b32, 0x40c1}, + {0x82338b33, 0x8b04}, + {0x82338b34, 0x9721}, + {0x82338b35, 0x3f01}, + {0x82338b36, 0x8f45}, + {0x82338b37, 0xabbe}, + {0x82338b38, 0x9c5e}, + {0x82338b39, 0x5abc}, + {0x82338c30, 0x823d}, + {0x82338c31, 0x62a8}, + {0x82338c32, 0xa5fe}, + {0x82338c33, 0x5328}, + {0x82338c34, 0xac6e}, + {0x82338c35, 0x81b5}, + {0x82338c36, 0xffff43ed}, + {0x82338c37, 0xffff43ee}, + {0x82338c38, 0xc221}, + {0x82338c39, 0x92c1}, + {0x82338d30, 0x6c64}, + {0x82338d31, 0x4f52}, + {0x82338d32, 0xbfea}, + {0x82338d33, 0x9526}, + {0x82338d34, 0x7f19}, + {0x82338d35, 0x3f51}, + {0x82338d36, 0x5d60}, + {0x82338d37, 0xb906}, + {0x82338d38, 0xa90d}, + {0x82338d39, 0x862d}, + {0x82338e30, 0x833a}, + {0x82338e31, 0x42d8}, + {0x82338e32, 0x4266}, + {0x82338e33, 0x862e}, + {0x82338e34, 0x8ad6}, + {0x82338e35, 0x6591}, + {0x82338e36, 0xc56d}, + {0x82338e37, 0x7ae4}, + {0x82338e38, 0x6e6a}, + {0x82338e39, 0xa915}, + {0x82338f30, 0xa62e}, + {0x82338f31, 0x42aa}, + {0x82338f32, 0xa462}, + {0x82338f33, 0xc182}, + {0x82338f34, 0xc644}, + {0x82338f35, 0x71c4}, + {0x82338f36, 0x4a62}, + {0x82338f37, 0x9ed2}, + {0x82338f38, 0x48ce}, + {0x82338f39, 0x4dd9}, + {0x82339030, 0x49ba}, + {0x82339031, 0x8ead}, + {0x82339032, 0xbfba}, + {0x82339033, 0xbdde}, + {0x82339034, 0x91fd}, + {0x82339035, 0x4105}, + {0x82339036, 0x64e0}, + {0x82339037, 0xa648}, + {0x82339038, 0xc3b2}, + {0x82339039, 0x6dd0}, + {0x82339130, 0x58cc}, + {0x82339131, 0x6425}, + {0x82339132, 0x4bb6}, + {0x82339133, 0x45d8}, + {0x82339134, 0x9ba8}, + {0x82339135, 0x92dc}, + {0x82339136, 0xa9a0}, + {0x82339137, 0x61dc}, + {0x82339138, 0x8a84}, + {0x82339139, 0xc464}, + {0x82339230, 0x9b56}, + {0x82339231, 0x4414}, + {0x82339232, 0xa495}, + {0x82339233, 0x6f71}, + {0x82339234, 0x6f45}, + {0x82339235, 0x5a76}, + {0x82339236, 0x5768}, + {0x82339237, 0x6d51}, + {0x82339238, 0x4a74}, + {0x82339239, 0x4345}, + {0x82339330, 0xc272}, + {0x82339331, 0x44b1}, + {0x82339332, 0x740d}, + {0x82339333, 0xac81}, + {0x82339334, 0xbe61}, + {0x82339335, 0xbfc0}, + {0x82339336, 0xb945}, + {0x82339337, 0x5c0e}, + {0x82339338, 0x5984}, + {0x82339339, 0xbcad}, + {0x82339430, 0x4c78}, + {0x82339431, 0x63d2}, + {0x82339432, 0x9a19}, + {0x82339433, 0x9ce1}, + {0x82339434, 0x5a38}, + {0x82339435, 0xa76a}, + {0x82339436, 0x7d20}, + {0x82339437, 0x51b2}, + {0x82339438, 0x3c7a}, + {0x82339439, 0x87fc}, + {0x82339530, 0xa5c8}, + {0x82339531, 0x3b5e}, + {0x82339532, 0x7ef4}, + {0x82339533, 0x8804}, + {0x82339534, 0x7ef5}, + {0x82339535, 0xb194}, + {0x82339536, 0xc2a9}, + {0x82339537, 0x4201}, + {0x82339538, 0xb72c}, + {0x82339539, 0xa336}, + {0x82339630, 0x90fc}, + {0x82339631, 0x72ed}, + {0x82339632, 0xafca}, + {0x82339633, 0x44c5}, + {0x82339634, 0x9039}, + {0x82339635, 0xc05e}, + {0x82339636, 0x899c}, + {0x82339637, 0xffff4452}, + {0x82339638, 0x9c2c}, + {0x82339639, 0x5489}, + {0x82339730, 0x980d}, + {0x82339731, 0xffff4456}, + {0x82339732, 0x4d18}, + {0x82339733, 0x4b89}, + {0x82339734, 0x9c62}, + {0x82339735, 0x9ea4}, + {0x82339736, 0x973e}, + {0x82339737, 0x9bee}, + {0x82339738, 0x667a}, + {0x82339739, 0x98e8}, + {0x82339830, 0x6222}, + {0x82339831, 0x777d}, + {0x82339832, 0x43ba}, + {0x82339833, 0xa59a}, + {0x82339834, 0x45ca}, + {0x82339835, 0x6a86}, + {0x82339836, 0x525c}, + {0x82339837, 0x59c6}, + {0x82339838, 0x4262}, + {0x82339839, 0x51e9}, + {0x82339930, 0x5a5c}, + {0x82339931, 0x5281}, + {0x82339932, 0x3ea9}, + {0x82339933, 0x9d69}, + {0x82339934, 0x4e61}, + {0x82339935, 0xffff446e}, + {0x82339936, 0x4e6c}, + {0x82339937, 0x426c}, + {0x82339938, 0xa250}, + {0x82339939, 0xbf7d}, + {0x82339a30, 0x7ba1}, + {0x82339a31, 0x8a6c}, + {0x82339a32, 0x8215}, + {0x82339a33, 0x8c41}, + {0x82339a34, 0xffff4477}, + {0x82339a35, 0xc665}, + {0x82339a36, 0x9a11}, + {0x82339a37, 0x5372}, + {0x82339a38, 0xb84d}, + {0x82339a39, 0xc345}, + {0x82339b30, 0x9bf9}, + {0x82339b31, 0xffff447e}, + {0x82339b32, 0x9aa5}, + {0x82339b33, 0x4278}, + {0x82339b34, 0xa6e5}, + {0x82339b35, 0x683a}, + {0x82339b36, 0xbd3c}, + {0x82339b37, 0x5728}, + {0x82339b38, 0x9dd6}, + {0x82339b39, 0x45c5}, + {0x82339c30, 0x5731}, + {0x82339c31, 0x54a8}, + {0x82339c32, 0xa584}, + {0x82339c33, 0xa600}, + {0x82339c34, 0xb180}, + {0x82339c35, 0x8118}, + {0x82339c36, 0x8650}, + {0x82339c37, 0x7da6}, + {0x82339c38, 0x93ce}, + {0x82339c39, 0x7f09}, + {0x82339d30, 0xffff4491}, + {0x82339d31, 0x9ef9}, + {0x82339d32, 0x6ea0}, + {0x82339d33, 0x3d06}, + {0x82339d34, 0xaa54}, + {0x82339d35, 0xabb6}, + {0x82339d36, 0x8aee}, + {0x82339d37, 0x9ac6}, + {0x82339d38, 0x4326}, + {0x82339d39, 0x9519}, + {0x82339e30, 0x618d}, + {0x82339e31, 0x84ba}, + {0x82339e32, 0xaa48}, + {0x82339e33, 0x45e4}, + {0x82339e34, 0x4c52}, + {0x82339e35, 0x5530}, + {0x82339e36, 0xb63c}, + {0x82339e37, 0x3c04}, + {0x82339e38, 0x90d5}, + {0x82339e39, 0x9190}, + {0x82339f30, 0x7d14}, + {0x82339f31, 0x53da}, + {0x82339f32, 0x8f3a}, + {0x82339f33, 0x96ee}, + {0x82339f34, 0x5e36}, + {0x82339f35, 0x4028}, + {0x82339f36, 0x4c11}, + {0x82339f37, 0x8150}, + {0x82339f38, 0x4dac}, + {0x82339f39, 0xffff44ae}, + {0x8233a030, 0xffff44af}, + {0x8233a031, 0x70de}, + {0x8233a032, 0xc0bd}, + {0x8233a033, 0x43bc}, + {0x8233a034, 0x51b9}, + {0x8233a035, 0xb865}, + {0x8233a036, 0x5df1}, + {0x8233a037, 0x9e89}, + {0x8233a038, 0x5ab9}, + {0x8233a039, 0xae76}, + {0x8233a130, 0x7464}, + {0x8233a131, 0x6a4e}, + {0x8233a132, 0x8ac6}, + {0x8233a133, 0x8f46}, + {0x8233a134, 0xa296}, + {0x8233a135, 0xb322}, + {0x8233a136, 0x7739}, + {0x8233a137, 0xffff44c0}, + {0x8233a138, 0x4dad}, + {0x8233a139, 0xafec}, + {0x8233a230, 0xb485}, + {0x8233a231, 0xb5f9}, + {0x8233a232, 0x8a29}, + {0x8233a233, 0xbfa4}, + {0x8233a234, 0xa741}, + {0x8233a235, 0xb486}, + {0x8233a236, 0xb288}, + {0x8233a237, 0xa524}, + {0x8233a238, 0xc145}, + {0x8233a239, 0xc20d}, + {0x8233a330, 0x5d40}, + {0x8233a331, 0x49ce}, + {0x8233a332, 0x55d8}, + {0x8233a333, 0x4991}, + {0x8233a334, 0x88c2}, + {0x8233a335, 0x7098}, + {0x8233a336, 0x4805}, + {0x8233a337, 0xffff44d4}, + {0x8233a338, 0xa350}, + {0x8233a339, 0x4a5d}, + {0x8233a430, 0x5834}, + {0x8233a431, 0x7080}, + {0x8233a432, 0x8f50}, + {0x8233a433, 0x8f51}, + {0x8233a434, 0xc14e}, + {0x8233a435, 0x7f2c}, + {0x8233a436, 0x7599}, + {0x8233a437, 0xc331}, + {0x8233a438, 0x9bd6}, + {0x8233a439, 0xc150}, + {0x8233a530, 0x5a9a}, + {0x8233a531, 0x770e}, + {0x8233a532, 0x5fec}, + {0x8233a533, 0x7242}, + {0x8233a534, 0x4ead}, + {0x8233a535, 0x64ca}, + {0x8233a536, 0xb691}, + {0x8233a537, 0xffff44e9}, + {0x8233a538, 0xffff44ea}, + {0x8233a539, 0x8a3a}, + {0x8233a630, 0xffff44ec}, + {0x8233a631, 0x4409}, + {0x8233a632, 0x7dfd}, + {0x8233a633, 0x5090}, + {0x8233a634, 0xb5b9}, + {0x8233a635, 0x441d}, + {0x8233a636, 0x92b0}, + {0x8233a637, 0x5ed9}, + {0x8233a638, 0x927d}, + {0x8233a639, 0x55e6}, + {0x8233a730, 0x729a}, + {0x8233a731, 0xac36}, + {0x8233a732, 0x66ba}, + {0x8233a733, 0xb4c6}, + {0x8233a734, 0x7e69}, + {0x8233a735, 0xffff44fb}, + {0x8233a736, 0x7d92}, + {0x8233a737, 0x659a}, + {0x8233a738, 0x9b70}, + {0x8233a739, 0x5d71}, + {0x8233a830, 0x9ad5}, + {0x8233a831, 0x75b9}, + {0x8233a832, 0xc629}, + {0x8233a833, 0xc70d}, + {0x8233a834, 0xb1e8}, + {0x8233a835, 0x589d}, + {0x8233a836, 0x74be}, + {0x8233a837, 0x8ada}, + {0x8233a838, 0x59b5}, + {0x8233a839, 0x75ba}, + {0x8233a930, 0x4122}, + {0x8233a931, 0x9b71}, + {0x8233a932, 0x583c}, + {0x8233a933, 0x50c9}, + {0x8233a934, 0x9a75}, + {0x8233a935, 0x484a}, + {0x8233a936, 0x66d6}, + {0x8233a937, 0xaace}, + {0x8233a938, 0x3e5e}, + {0x8233a939, 0xad1d}, + {0x8233aa30, 0x6b51}, + {0x8233aa31, 0x8986}, + {0x8233aa32, 0x78a9}, + {0x8233aa33, 0xa98c}, + {0x8233aa34, 0xc7ae}, + {0x8233aa35, 0x4f2c}, + {0x8233aa36, 0x49a5}, + {0x8233aa37, 0x8e41}, + {0x8233aa38, 0x82a4}, + {0x8233aa39, 0xbe50}, + {0x8233ab30, 0x7c70}, + {0x8233ab31, 0xb3b1}, + {0x8233ab32, 0x951c}, + {0x8233ab33, 0xb93d}, + {0x8233ab34, 0x60d5}, + {0x8233ab35, 0x74ce}, + {0x8233ab36, 0x85b9}, + {0x8233ab37, 0xaa09}, + {0x8233ab38, 0xffff4526}, + {0x8233ab39, 0x74d0}, + {0x8233ac30, 0xffff4528}, + {0x8233ac31, 0x9a89}, + {0x8233ac32, 0x98b1}, + {0x8233ac33, 0xffff452b}, + {0x8233ac34, 0xb4f8}, + {0x8233ac35, 0x84ae}, + {0x8233ac36, 0x9944}, + {0x8233ac37, 0x7076}, + {0x8233ac38, 0x5716}, + {0x8233ac39, 0xb33e}, + {0x8233ad30, 0x4d99}, + {0x8233ad31, 0x90c1}, + {0x8233ad32, 0x4386}, + {0x8233ad33, 0x67c0}, + {0x8233ad34, 0x9e21}, + {0x8233ad35, 0x8dbe}, + {0x8233ad36, 0x409e}, + {0x8233ad37, 0x9b14}, + {0x8233ad38, 0xa31e}, + {0x8233ad39, 0x5079}, + {0x8233ae30, 0x93b6}, + {0x8233ae31, 0x3b82}, + {0x8233ae32, 0x8b29}, + {0x8233ae33, 0xc770}, + {0x8233ae34, 0x70d0}, + {0x8233ae35, 0x5476}, + {0x8233ae36, 0xffff4542}, + {0x8233ae37, 0xffff4543}, + {0x8233ae38, 0xc0e5}, + {0x8233ae39, 0x9388}, + {0x8233af30, 0x5070}, + {0x8233af31, 0x62fe}, + {0x8233af32, 0xab49}, + {0x8233af33, 0xbd76}, + {0x8233af34, 0x9c95}, + {0x8233af35, 0x9d24}, + {0x8233af36, 0xc285}, + {0x8233af37, 0xb52a}, + {0x8233af38, 0x5688}, + {0x8233af39, 0x5231}, + {0x8233b030, 0xffff4550}, + {0x8233b031, 0x9ada}, + {0x8233b032, 0x6639}, + {0x8233b033, 0x43f1}, + {0x8233b034, 0xa89e}, + {0x8233b035, 0x7d64}, + {0x8233b036, 0x9b4a}, + {0x8233b037, 0x3fc2}, + {0x8233b038, 0x78cc}, + {0x8233b039, 0x69bd}, + {0x8233b130, 0x71a4}, + {0x8233b131, 0x6662}, + {0x8233b132, 0xffff455c}, + {0x8233b133, 0x4660}, + {0x8233b134, 0x7386}, + {0x8233b135, 0xabf8}, + {0x8233b136, 0x54a9}, + {0x8233b137, 0x7c32}, + {0x8233b138, 0xbe21}, + {0x8233b139, 0x5e8c}, + {0x8233b230, 0x646a}, + {0x8233b231, 0x8391}, + {0x8233b232, 0xb721}, + {0x8233b233, 0xaa86}, + {0x8233b234, 0x9de1}, + {0x8233b235, 0x73d2}, + {0x8233b236, 0xbd85}, + {0x8233b237, 0x7165}, + {0x8233b238, 0x681c}, + {0x8233b239, 0xa8a5}, + {0x8233b330, 0x6c8d}, + {0x8233b331, 0x8852}, + {0x8233b332, 0x53b8}, + {0x8233b333, 0xa028}, + {0x8233b334, 0x783c}, + {0x8233b335, 0x7f61}, + {0x8233b336, 0xc59d}, + {0x8233b337, 0xaaea}, + {0x8233b338, 0xffff4576}, + {0x8233b339, 0x7f62}, + {0x8233b430, 0x6959}, + {0x8233b431, 0xbc7c}, + {0x8233b432, 0x4aaa}, + {0x8233b433, 0x7626}, + {0x8233b434, 0x90ca}, + {0x8233b435, 0xc3f1}, + {0x8233b436, 0xb632}, + {0x8233b437, 0x5d9c}, + {0x8233b438, 0xaa45}, + {0x8233b439, 0xb591}, + {0x8233b530, 0x7b70}, + {0x8233b531, 0xbbb6}, + {0x8233b532, 0x90d0}, + {0x8233b533, 0x78ea}, + {0x8233b534, 0x83f6}, + {0x8233b535, 0xba94}, + {0x8233b536, 0x856c}, + {0x8233b537, 0xacc4}, + {0x8233b538, 0xb488}, + {0x8233b539, 0x8570}, + {0x8233b630, 0xb489}, + {0x8233b631, 0x8bdc}, + {0x8233b632, 0xa7a8}, + {0x8233b633, 0x4894}, + {0x8233b634, 0xb610}, + {0x8233b635, 0x7fb8}, + {0x8233b636, 0xa649}, + {0x8233b637, 0x8250}, + {0x8233b638, 0x6ee6}, + {0x8233b639, 0xc710}, + {0x8233b730, 0xa7c1}, + {0x8233b731, 0xb00d}, + {0x8233b732, 0xa08a}, + {0x8233b733, 0x9dfc}, + {0x8233b734, 0xa514}, + {0x8233b735, 0x9b9d}, + {0x8233b736, 0xb630}, + {0x8233b737, 0x47ce}, + {0x8233b738, 0xc35c}, + {0x8233b739, 0x7ec8}, + {0x8233b830, 0xbad9}, + {0x8233b831, 0x8561}, + {0x8233b832, 0x8039}, + {0x8233b833, 0xbd21}, + {0x8233b834, 0xa1fc}, + {0x8233b835, 0x7db6}, + {0x8233b836, 0x8f52}, + {0x8233b837, 0x8241}, + {0x8233b838, 0x96c4}, + {0x8233b839, 0x3f52}, + {0x8233b930, 0xc5c9}, + {0x8233b931, 0x3d8a}, + {0x8233b932, 0x6671}, + {0x8233b933, 0x6d6c}, + {0x8233b934, 0xa999}, + {0x8233b935, 0x7148}, + {0x8233b936, 0x85de}, + {0x8233b937, 0x70e5}, + {0x8233b938, 0xaed8}, + {0x8233b939, 0xbe38}, + {0x8233ba30, 0xb1dd}, + {0x8233ba31, 0x71c5}, + {0x8233ba32, 0x626e}, + {0x8233ba33, 0xa64a}, + {0x8233ba34, 0x5226}, + {0x8233ba35, 0xb159}, + {0x8233ba36, 0x9f06}, + {0x8233ba37, 0xb842}, + {0x8233ba38, 0x6dd1}, + {0x8233ba39, 0x74c0}, + {0x8233bb30, 0xffff45be}, + {0x8233bb31, 0x74d1}, + {0x8233bb32, 0x4655}, + {0x8233bb33, 0x65ad}, + {0x8233bb34, 0x6066}, + {0x8233bb35, 0xbee2}, + {0x8233bb36, 0x56bd}, + {0x8233bb37, 0x4518}, + {0x8233bb38, 0x5b22}, + {0x8233bb39, 0x6c76}, + {0x8233bc30, 0x7edd}, + {0x8233bc31, 0x44f8}, + {0x8233bc32, 0x9cd8}, + {0x8233bc33, 0x81be}, + {0x8233bc34, 0xabea}, + {0x8233bc35, 0x7541}, + {0x8233bc36, 0xafbe}, + {0x8233bc37, 0x9a12}, + {0x8233bc38, 0x9689}, + {0x8233bc39, 0xb510}, + {0x8233bd30, 0x415d}, + {0x8233bd31, 0x4a75}, + {0x8233bd32, 0x5fa6}, + {0x8233bd33, 0xa204}, + {0x8233bd34, 0x4e81}, + {0x8233bd35, 0x8bad}, + {0x8233bd36, 0x58e2}, + {0x8233bd37, 0x5d32}, + {0x8233bd38, 0x41e6}, + {0x8233bd39, 0xac88}, + {0x8233be30, 0x7932}, + {0x8233be31, 0x42e2}, + {0x8233be32, 0x42e5}, + {0x8233be33, 0xb549}, + {0x8233be34, 0xaded}, + {0x8233be35, 0xb014}, + {0x8233be36, 0xbd25}, + {0x8233be37, 0x5d8e}, + {0x8233be38, 0xb7b1}, + {0x8233be39, 0xc679}, + {0x8233bf30, 0x5564}, + {0x8233bf31, 0x6f16}, + {0x8233bf32, 0xb95d}, + {0x8233bf33, 0x8a01}, + {0x8233bf34, 0xbff2}, + {0x8233bf35, 0x7cad}, + {0x8233bf36, 0x5565}, + {0x8233bf37, 0xffff45ed}, + {0x8233bf38, 0x98b8}, + {0x8233bf39, 0x6ab9}, + {0x8233c030, 0x5b4c}, + {0x8233c031, 0x899d}, + {0x8233c032, 0x7850}, + {0x8233c033, 0xffff45f3}, + {0x8233c034, 0x9f94}, + {0x8233c035, 0x681d}, + {0x8233c036, 0x7258}, + {0x8233c037, 0xb565}, + {0x8233c038, 0xb7a1}, + {0x8233c039, 0x4a4e}, + {0x8233c130, 0xb07e}, + {0x8233c131, 0x69c9}, + {0x8233c132, 0xaeac}, + {0x8233c133, 0xa3fa}, + {0x8233c134, 0xa8e4}, + {0x8233c135, 0x849d}, + {0x8233c136, 0x5736}, + {0x8233c137, 0x69cc}, + {0x8233c138, 0x6708}, + {0x8233c139, 0x81a5}, + {0x8233c230, 0xc479}, + {0x8233c231, 0x8288}, + {0x8233c232, 0xa8e8}, + {0x8233c233, 0xa451}, + {0x8233c234, 0x7628}, + {0x8233c235, 0x42e6}, + {0x8233c236, 0x807e}, + {0x8233c237, 0x6715}, + {0x8233c238, 0x83ba}, + {0x8233c239, 0x442e}, + {0x8233c330, 0xa20e}, + {0x8233c331, 0xad31}, + {0x8233c332, 0x8562}, + {0x8233c333, 0x7d02}, + {0x8233c334, 0xc731}, + {0x8233c335, 0x6ef6}, + {0x8233c336, 0x6e8a}, + {0x8233c337, 0x5dad}, + {0x8233c338, 0xb9fe}, + {0x8233c339, 0x6286}, + {0x8233c430, 0xba51}, + {0x8233c431, 0xa3f4}, + {0x8233c432, 0xc6ea}, + {0x8233c433, 0x6411}, + {0x8233c434, 0x6a21}, + {0x8233c435, 0xb452}, + {0x8233c436, 0xffff461e}, + {0x8233c437, 0x4ef2}, + {0x8233c438, 0x4165}, + {0x8233c439, 0x3f08}, + {0x8233c530, 0xc406}, + {0x8233c531, 0xc622}, + {0x8233c532, 0x9846}, + {0x8233c533, 0xa7a9}, + {0x8233c534, 0x8350}, + {0x8233c535, 0xffff4627}, + {0x8233c536, 0x68c0}, + {0x8233c537, 0xaed1}, + {0x8233c538, 0x47b9}, + {0x8233c539, 0x9229}, + {0x8233c630, 0x91a9}, + {0x8233c631, 0xc222}, + {0x8233c632, 0x9369}, + {0x8233c633, 0x94f8}, + {0x8233c634, 0x944a}, + {0x8233c635, 0xba1a}, + {0x8233c636, 0x8d8a}, + {0x8233c637, 0x6a3a}, + {0x8233c638, 0xc2e1}, + {0x8233c639, 0x7aea}, + {0x8233c730, 0x5cfa}, + {0x8233c731, 0x40b1}, + {0x8233c732, 0xb4e0}, + {0x8233c733, 0xc74c}, + {0x8233c734, 0xbee0}, + {0x8233c735, 0xba1c}, + {0x8233c736, 0xa24c}, + {0x8233c737, 0x8365}, + {0x8233c738, 0x5b1e}, + {0x8233c739, 0x6dd2}, + {0x8233c830, 0x3ead}, + {0x8233c831, 0x42da}, + {0x8233c832, 0xc2e2}, + {0x8233c833, 0x51f8}, + {0x8233c834, 0x8b21}, + {0x8233c835, 0xb1be}, + {0x8233c836, 0x7191}, + {0x8233c837, 0x926d}, + {0x8233c838, 0x5fa1}, + {0x8233c839, 0xaee0}, + {0x8233c930, 0xffff464a}, + {0x8233c931, 0xffff464b}, + {0x8233c932, 0xffff464d}, + {0x8233c933, 0xaad4}, + {0x8233c934, 0x41dd}, + {0x8233c935, 0x6fc0}, + {0x8233c936, 0x4b1d}, + {0x8233c937, 0xad80}, + {0x8233c938, 0xffff4653}, + {0x8233c939, 0x858d}, + {0x8233ca30, 0xc69c}, + {0x8233ca31, 0x3eb4}, + {0x8233ca32, 0x9e71}, + {0x8233ca33, 0x489e}, + {0x8233ca34, 0x4734}, + {0x8233ca35, 0x8408}, + {0x8233ca36, 0x5c48}, + {0x8233ca37, 0x558a}, + {0x8233ca38, 0xab5a}, + {0x8233ca39, 0x4da2}, + {0x8233cb30, 0xa32a}, + {0x8233cb31, 0x6dfc}, + {0x8233cb32, 0xbdca}, + {0x8233cb33, 0x9308}, + {0x8233cb34, 0x51d0}, + {0x8233cb35, 0x78d5}, + {0x8233cb36, 0x7efc}, + {0x8233cb37, 0xaea8}, + {0x8233cb38, 0x5cae}, + {0x8233cb39, 0x7efd}, + {0x8233cc30, 0x8622}, + {0x8233cc31, 0xffff466b}, + {0x8233cc32, 0xb769}, + {0x8233cc33, 0x8bc5}, + {0x8233cc34, 0x5b55}, + {0x8233cc35, 0x4aed}, + {0x8233cc36, 0x7519}, + {0x8233cc37, 0x9830}, + {0x8233cc38, 0x8b80}, + {0x8233cc39, 0x405e}, + {0x8233cd30, 0x8b8a}, + {0x8233cd31, 0xa630}, + {0x8233cd32, 0xffff4676}, + {0x8233cd33, 0x4d7c}, + {0x8233cd34, 0x4d7d}, + {0x8233cd35, 0xa90e}, + {0x8233cd36, 0x7652}, + {0x8233cd37, 0x49ee}, + {0x8233cd38, 0x9529}, + {0x8233cd39, 0xaabd}, + {0x8233ce30, 0x9675}, + {0x8233ce31, 0xa3c8}, + {0x8233ce32, 0x45d2}, + {0x8233ce33, 0x45d4}, + {0x8233ce34, 0x5eae}, + {0x8233ce35, 0xb849}, + {0x8233ce36, 0x7b0a}, + {0x8233ce37, 0x72a0}, + {0x8233ce38, 0xb74a}, + {0x8233ce39, 0x9646}, + {0x8233cf30, 0x6d7c}, + {0x8233cf31, 0x8b2d}, + {0x8233cf32, 0x66ee}, + {0x8233cf33, 0xbc4d}, + {0x8233cf34, 0x5849}, + {0x8233cf35, 0x8b38}, + {0x8233cf36, 0x4938}, + {0x8233cf37, 0x7851}, + {0x8233cf38, 0x6519}, + {0x8233cf39, 0x7ced}, + {0x8233d030, 0x4940}, + {0x8233d031, 0x95e4}, + {0x8233d032, 0x4100}, + {0x8233d033, 0x763e}, + {0x8233d034, 0x78f2}, + {0x8233d035, 0x580d}, + {0x8233d036, 0x46a8}, + {0x8233d037, 0xadaa}, + {0x8233d038, 0xa8c9}, + {0x8233d039, 0x6030}, + {0x8233d130, 0x3ee1}, + {0x8233d131, 0xc6f9}, + {0x8233d132, 0x4c08}, + {0x8233d133, 0x4c94}, + {0x8233d134, 0x6385}, + {0x8233d135, 0x9316}, + {0x8233d136, 0x45c1}, + {0x8233d137, 0x9e2d}, + {0x8233d138, 0xffff46a4}, + {0x8233d139, 0x8552}, + {0x8233d230, 0xc294}, + {0x8233d231, 0x793e}, + {0x8233d232, 0x54ac}, + {0x8233d233, 0x68f5}, + {0x8233d234, 0x5b15}, + {0x8233d235, 0xa6f0}, + {0x8233d236, 0x7816}, + {0x8233d237, 0xadd4}, + {0x8233d238, 0x918c}, + {0x8233d239, 0x9db1}, + {0x8233d330, 0x87d2}, + {0x8233d331, 0xabc1}, + {0x8233d332, 0x9489}, + {0x8233d333, 0xc224}, + {0x8233d334, 0xa1dd}, + {0x8233d335, 0xa030}, + {0x8233d336, 0x9e8a}, + {0x8233d337, 0xb326}, + {0x8233d338, 0xab1c}, + {0x8233d339, 0x87d4}, + {0x8233d430, 0xb1d8}, + {0x8233d431, 0xb1d9}, + {0x8233d432, 0x8568}, + {0x8233d433, 0x5dfd}, + {0x8233d434, 0x912d}, + {0x8233d435, 0xb66d}, + {0x8233d436, 0x53d0}, + {0x8233d437, 0x829c}, + {0x8233d438, 0xb396}, + {0x8233d439, 0xa268}, + {0x8233d530, 0xbb30}, + {0x8233d531, 0xa7bc}, + {0x8233d532, 0xc381}, + {0x8233d533, 0xbb31}, + {0x8233d534, 0x9745}, + {0x8233d535, 0x802d}, + {0x8233d536, 0xa631}, + {0x8233d537, 0x6592}, + {0x8233d538, 0x9d98}, + {0x8233d539, 0x5495}, + {0x8233d630, 0xae80}, + {0x8233d631, 0x8360}, + {0x8233d632, 0x4a08}, + {0x8233d633, 0x7fb9}, + {0x8233d634, 0x4039}, + {0x8233d635, 0x66bc}, + {0x8233d636, 0x8229}, + {0x8233d637, 0xb92e}, + {0x8233d638, 0xb4e1}, + {0x8233d639, 0xc1de}, + {0x8233d730, 0x9130}, + {0x8233d731, 0xad65}, + {0x8233d732, 0x7c8e}, + {0x8233d733, 0x62e4}, + {0x8233d734, 0xaf12}, + {0x8233d735, 0x82e4}, + {0x8233d736, 0x5d79}, + {0x8233d737, 0x665a}, + {0x8233d738, 0x506a}, + {0x8233d739, 0x6101}, + {0x8233d830, 0xa051}, + {0x8233d831, 0x88a9}, + {0x8233d832, 0x4ad2}, + {0x8233d833, 0xa660}, + {0x8233d834, 0x99f2}, + {0x8233d835, 0x7f4d}, + {0x8233d836, 0xabca}, + {0x8233d837, 0xa5c4}, + {0x8233d838, 0x8e86}, + {0x8233d839, 0xbf09}, + {0x8233d930, 0x9da0}, + {0x8233d931, 0xac3d}, + {0x8233d932, 0x6bfe}, + {0x8233d933, 0x6d05}, + {0x8233d934, 0x6386}, + {0x8233d935, 0x9e22}, + {0x8233d936, 0x7d21}, + {0x8233d937, 0xb0d5}, + {0x8233d938, 0x644c}, + {0x8233d939, 0x97aa}, + {0x8233da30, 0x743d}, + {0x8233da31, 0xa255}, + {0x8233da32, 0xbe7c}, + {0x8233da33, 0x4304}, + {0x8233da34, 0x6a12}, + {0x8233da35, 0xb8b0}, + {0x8233da36, 0x62ae}, + {0x8233da37, 0xbe1e}, + {0x8233da38, 0x9aa6}, + {0x8233da39, 0x58e6}, + {0x8233db30, 0x8309}, + {0x8233db31, 0xa76c}, + {0x8233db32, 0x5e16}, + {0x8233db33, 0x5122}, + {0x8233db34, 0x4739}, + {0x8233db35, 0xa331}, + {0x8233db36, 0xbfcd}, + {0x8233db37, 0x5c4a}, + {0x8233db38, 0x4562}, + {0x8233db39, 0x46f9}, + {0x8233dc30, 0xbd14}, + {0x8233dc31, 0x632e}, + {0x8233dc32, 0x7b5a}, + {0x8233dc33, 0x7770}, + {0x8233dc34, 0x73b2}, + {0x8233dc35, 0xa155}, + {0x8233dc36, 0x628c}, + {0x8233dc37, 0xa5d0}, + {0x8233dc38, 0x3c7e}, + {0x8233dc39, 0x956a}, + {0x8233dd30, 0x9aed}, + {0x8233dd31, 0x7d0d}, + {0x8233dd32, 0x9cac}, + {0x8233dd33, 0xabd1}, + {0x8233dd34, 0x6b24}, + {0x8233dd35, 0x3bd5}, + {0x8233dd36, 0x9c06}, + {0x8233dd37, 0x4486}, + {0x8233dd38, 0xa3fd}, + {0x8233dd39, 0xa0d1}, + {0x8233de30, 0x65f8}, + {0x8233de31, 0x463a}, + {0x8233de32, 0xc2bc}, + {0x8233de33, 0xba81}, + {0x8233de34, 0xa8ec}, + {0x8233de35, 0xffff4724}, + {0x8233de36, 0x4ca6}, + {0x8233de37, 0xffff4726}, + {0x8233de38, 0x8300}, + {0x8233de39, 0xffff4728}, + {0x8233df30, 0x8ee1}, + {0x8233df31, 0x67fe}, + {0x8233df32, 0xaca6}, + {0x8233df33, 0xb05a}, + {0x8233df34, 0x773c}, + {0x8233df35, 0x6c80}, + {0x8233df36, 0x5dc5}, + {0x8233df37, 0x7d42}, + {0x8233df38, 0x77da}, + {0x8233df39, 0xffff4733}, + {0x8233e030, 0x48bd}, + {0x8233e031, 0x4755}, + {0x8233e032, 0xa98d}, + {0x8233e033, 0x8d91}, + {0x8233e034, 0x7e70}, + {0x8233e035, 0x9861}, + {0x8233e036, 0x4388}, + {0x8233e037, 0x4761}, + {0x8233e038, 0x5a41}, + {0x8233e039, 0xb955}, + {0x8233e130, 0xb5d2}, + {0x8233e131, 0xffff473f}, + {0x8233e132, 0x7939}, + {0x8233e133, 0x73aa}, + {0x8233e134, 0x9871}, + {0x8233e135, 0xbfd5}, + {0x8233e136, 0x98ac}, + {0x8233e137, 0x625c}, + {0x8233e138, 0x5fed}, + {0x8233e139, 0x6262}, + {0x8233e230, 0x526c}, + {0x8233e231, 0xffff4749}, + {0x8233e232, 0x9415}, + {0x8233e233, 0xc6ae}, + {0x8233e234, 0x6de0}, + {0x8233e235, 0x6e7c}, + {0x8233e236, 0xa0b0}, + {0x8233e237, 0x7a21}, + {0x8233e238, 0xa332}, + {0x8233e239, 0x47ca}, + {0x8233e330, 0xc47a}, + {0x8233e331, 0x77dc}, + {0x8233e332, 0x613e}, + {0x8233e333, 0xbfdc}, + {0x8233e334, 0xbf59}, + {0x8233e335, 0xac76}, + {0x8233e336, 0xb4a2}, + {0x8233e337, 0x4856}, + {0x8233e338, 0x8361}, + {0x8233e339, 0x4179}, + {0x8233e430, 0x9aba}, + {0x8233e431, 0xb340}, + {0x8233e432, 0x5e0c}, + {0x8233e433, 0xaf94}, + {0x8233e434, 0x616a}, + {0x8233e435, 0x7d68}, + {0x8233e436, 0x7d69}, + {0x8233e437, 0x8fa2}, + {0x8233e438, 0x73d4}, + {0x8233e439, 0x5de0}, + {0x8233e530, 0xc2f0}, + {0x8233e531, 0x809a}, + {0x8233e532, 0xa871}, + {0x8233e533, 0xc092}, + {0x8233e534, 0x980e}, + {0x8233e535, 0xc781}, + {0x8233e536, 0xc452}, + {0x8233e537, 0x59f6}, + {0x8233e538, 0xae19}, + {0x8233e539, 0xb4c8}, + {0x8233e630, 0xc250}, + {0x8233e631, 0xaac5}, + {0x8233e632, 0x6a94}, + {0x8233e633, 0x42dc}, + {0x8233e634, 0x6444}, + {0x8233e635, 0x4271}, + {0x8233e636, 0x7700}, + {0x8233e637, 0xc164}, + {0x8233e638, 0x65ae}, + {0x8233e639, 0xa256}, + {0x8233e730, 0x5b48}, + {0x8233e731, 0x6c49}, + {0x8233e732, 0x3b84}, + {0x8233e733, 0x5718}, + {0x8233e734, 0x5c19}, + {0x8233e735, 0x5fd0}, + {0x8233e736, 0xb0de}, + {0x8233e737, 0x928d}, + {0x8233e738, 0xc295}, + {0x8233e739, 0x40ac}, + {0x8233e830, 0xb3c6}, + {0x8233e831, 0x9b9a}, + {0x8233e832, 0xffff4787}, + {0x8233e833, 0x5c28}, + {0x8233e834, 0x965d}, + {0x8233e835, 0xaf1d}, + {0x8233e836, 0x463c}, + {0x8233e837, 0x96be}, + {0x8233e838, 0xffff478e}, + {0x8233e839, 0xffff478f}, + {0x8233e930, 0x49bc}, + {0x8233e931, 0x5f41}, + {0x8233e932, 0x502d}, + {0x8233e933, 0x4656}, + {0x8233e934, 0xa385}, + {0x8233e935, 0x9244}, + {0x8233e936, 0x980c}, + {0x8233e937, 0x428a}, + {0x8233e938, 0x64c1}, + {0x8233e939, 0xbc71}, + {0x8233ea30, 0x8a3c}, + {0x8233ea31, 0xafa2}, + {0x8233ea32, 0x56ee}, + {0x8233ea33, 0xba00}, + {0x8233ea34, 0x5660}, + {0x8233ea35, 0x8930}, + {0x8233ea36, 0xc152}, + {0x8233ea37, 0x9cbc}, + {0x8233ea38, 0xc782}, + {0x8233ea39, 0x45a0}, + {0x8233eb30, 0x8f8e}, + {0x8233eb31, 0xb8ac}, + {0x8233eb32, 0x5e6d}, + {0x8233eb33, 0x5fca}, + {0x8233eb34, 0x7172}, + {0x8233eb35, 0x5291}, + {0x8233eb36, 0x6850}, + {0x8233eb37, 0xbc18}, + {0x8233eb38, 0xa03e}, + {0x8233eb39, 0x4b5d}, + {0x8233ec30, 0xa052}, + {0x8233ec31, 0x570e}, + {0x8233ec32, 0xc78a}, + {0x8233ec33, 0x6031}, + {0x8233ec34, 0xffff47b2}, + {0x8233ec35, 0x41de}, + {0x8233ec36, 0xbf4e}, + {0x8233ec37, 0x6e29}, + {0x8233ec38, 0x9e69}, + {0x8233ec39, 0x6de1}, + {0x8233ed30, 0x5719}, + {0x8233ed31, 0x620a}, + {0x8233ed32, 0x4984}, + {0x8233ed33, 0xb7e0}, + {0x8233ed34, 0x4b01}, + {0x8233ed35, 0x9b9c}, + {0x8233ed36, 0x4735}, + {0x8233ed37, 0x8bb0}, + {0x8233ed38, 0x428e}, + {0x8233ed39, 0xaa2d}, + {0x8233ee30, 0x7d2d}, + {0x8233ee31, 0x42cd}, + {0x8233ee32, 0x8b39}, + {0x8233ee33, 0x67e2}, + {0x8233ee34, 0x3fc4}, + {0x8233ee35, 0x647e}, + {0x8233ee36, 0xc1a2}, + {0x8233ee37, 0xc3ea}, + {0x8233ee38, 0x8fa8}, + {0x8233ee39, 0xbec6}, + {0x8233ef30, 0x69d0}, + {0x8233ef31, 0x4006}, + {0x8233ef32, 0xbcc2}, + {0x8233ef33, 0x7629}, + {0x8233ef34, 0x7630}, + {0x8233ef35, 0xbbb8}, + {0x8233ef36, 0x9040}, + {0x8233ef37, 0x4644}, + {0x8233ef38, 0x56dd}, + {0x8233ef39, 0x4408}, + {0x8233f030, 0xc1d1}, + {0x8233f031, 0x9740}, + {0x8233f032, 0x5dbd}, + {0x8233f033, 0x8d5e}, + {0x8233f034, 0x8a3d}, + {0x8233f035, 0x41b5}, + {0x8233f036, 0x8242}, + {0x8233f037, 0xa03d}, + {0x8233f038, 0x4864}, + {0x8233f039, 0x4aca}, + {0x8233f130, 0xbb89}, + {0x8233f131, 0x4e62}, + {0x8233f132, 0x83d4}, + {0x8233f133, 0x48c6}, + {0x8233f134, 0x3f62}, + {0x8233f135, 0x7ed4}, + {0x8233f136, 0x3cbc}, + {0x8233f137, 0x9eaa}, + {0x8233f138, 0x80a2}, + {0x8233f139, 0x779a}, + {0x8233f230, 0x5592}, + {0x8233f231, 0x4651}, + {0x8233f232, 0x8f2c}, + {0x8233f233, 0x9f08}, + {0x8233f234, 0x5668}, + {0x8233f235, 0x7212}, + {0x8233f236, 0x6745}, + {0x8233f237, 0x6439}, + {0x8233f238, 0xffff47f2}, + {0x8233f239, 0xffff47f3}, + {0x8233f330, 0xc09e}, + {0x8233f331, 0x8f15}, + {0x8233f332, 0xc7b0}, + {0x8233f333, 0x478d}, + {0x8233f334, 0x7156}, + {0x8233f335, 0x77c8}, + {0x8233f336, 0x3e68}, + {0x8233f337, 0x50e0}, + {0x8233f338, 0xa572}, + {0x8233f339, 0x97e4}, + {0x8233f430, 0xc581}, + {0x8233f431, 0x7b0c}, + {0x8233f432, 0x453c}, + {0x8233f433, 0x644d}, + {0x8233f434, 0x489d}, + {0x8233f435, 0x7718}, + {0x8233f436, 0x9ede}, + {0x8233f437, 0x71f6}, + {0x8233f438, 0x4520}, + {0x8233f439, 0x6de2}, + {0x8233f530, 0xa089}, + {0x8233f531, 0x61b6}, + {0x8233f532, 0x549e}, + {0x8233f533, 0x3fa5}, + {0x8233f534, 0xffff480c}, + {0x8233f535, 0xa798}, + {0x8233f536, 0xa4e2}, + {0x8233f537, 0x65c5}, + {0x8233f538, 0x8fe1}, + {0x8233f539, 0x717a}, + {0x8233f630, 0x6040}, + {0x8233f631, 0x8eb8}, + {0x8233f632, 0x9b22}, + {0x8233f633, 0x4290}, + {0x8233f634, 0xffff4816}, + {0x8233f635, 0x8f2d}, + {0x8233f636, 0x87fd}, + {0x8233f637, 0x8646}, + {0x8233f638, 0xa1e4}, + {0x8233f639, 0xb20d}, + {0x8233f730, 0x91d0}, + {0x8233f731, 0xae9d}, + {0x8233f732, 0x4ae2}, + {0x8233f733, 0x4f7e}, + {0x8233f734, 0x479d}, + {0x8233f735, 0x4b8c}, + {0x8233f736, 0x7f31}, + {0x8233f737, 0xae00}, + {0x8233f738, 0x51d2}, + {0x8233f739, 0x40cc}, + {0x8233f830, 0xc2aa}, + {0x8233f831, 0x4882}, + {0x8233f832, 0x44d9}, + {0x8233f833, 0x5c29}, + {0x8233f834, 0x510d}, + {0x8233f835, 0xc6e0}, + {0x8233f836, 0x4dc1}, + {0x8233f837, 0x72b6}, + {0x8233f838, 0x9de8}, + {0x8233f839, 0xbbb9}, + {0x8233f930, 0x9041}, + {0x8233f931, 0xc3fe}, + {0x8233f932, 0x78a2}, + {0x8233f933, 0x45ce}, + {0x8233f934, 0xc064}, + {0x8233f935, 0x56fa}, + {0x8233f936, 0x9558}, + {0x8233f937, 0x9f26}, + {0x8233f938, 0x7084}, + {0x8233f939, 0x5cca}, + {0x8233fa30, 0xffff483a}, + {0x8233fa31, 0x8e88}, + {0x8233fa32, 0x986a}, + {0x8233fa33, 0x5cce}, + {0x8233fa34, 0x947e}, + {0x8233fa35, 0xa1f4}, + {0x8233fa36, 0xbec8}, + {0x8233fa37, 0x79f0}, + {0x8233fa38, 0x6baa}, + {0x8233fa39, 0x7574}, + {0x8233fb30, 0x5bdd}, + {0x8233fb31, 0x4976}, + {0x8233fb32, 0x91aa}, + {0x8233fb33, 0xbb82}, + {0x8233fb34, 0x6db1}, + {0x8233fb35, 0x6f20}, + {0x8233fb36, 0x53d1}, + {0x8233fb37, 0x8a3e}, + {0x8233fb38, 0x5f49}, + {0x8233fb39, 0x564a}, + {0x8233fc30, 0x7a64}, + {0x8233fc31, 0x5f50}, + {0x8233fc32, 0xa171}, + {0x8233fc33, 0x80a4}, + {0x8233fc34, 0x9eac}, + {0x8233fc35, 0x6d72}, + {0x8233fc36, 0x8adc}, + {0x8233fc37, 0xc0fc}, + {0x8233fc38, 0x8e50}, + {0x8233fc39, 0x59a8}, + {0x8233fd30, 0x9eb4}, + {0x8233fd31, 0x7361}, + {0x8233fd32, 0x7e0d}, + {0x8233fd33, 0xb675}, + {0x8233fd34, 0x7b0d}, + {0x8233fd35, 0xbaba}, + {0x8233fd36, 0x6c81}, + {0x8233fd37, 0x87f6}, + {0x8233fd38, 0x6ff0}, + {0x8233fd39, 0xaae0}, + {0x8233fe30, 0x4049}, + {0x8233fe31, 0x635d}, + {0x8233fe32, 0xc3c0}, + {0x8233fe33, 0x91da}, + {0x8233fe34, 0x9364}, + {0x8233fe35, 0xa511}, + {0x8233fe36, 0x4421}, + {0x8233fe37, 0x6ff1}, + {0x8233fe38, 0x94aa}, + {0x8233fe39, 0x8724}, + {0x82348130, 0x7d6a}, + {0x82348131, 0xac8c}, + {0x82348132, 0xc67a}, + {0x82348133, 0x4a89}, + {0x82348134, 0x6ff4}, + {0x82348135, 0xc4a4}, + {0x82348136, 0x4476}, + {0x82348137, 0x995a}, + {0x82348138, 0x47cc}, + {0x82348139, 0x9b35}, + {0x82348230, 0x8806}, + {0x82348231, 0x6eca}, + {0x82348232, 0xffff4878}, + {0x82348233, 0xc2bd}, + {0x82348234, 0xa400}, + {0x82348235, 0x80bc}, + {0x82348236, 0x78e2}, + {0x82348237, 0xc719}, + {0x82348238, 0x8474}, + {0x82348239, 0x78f4}, + {0x82348330, 0x8af5}, + {0x82348331, 0xbb6e}, + {0x82348332, 0xffff4882}, + {0x82348333, 0xb511}, + {0x82348334, 0xa71d}, + {0x82348335, 0x4606}, + {0x82348336, 0x91ee}, + {0x82348337, 0x91f0}, + {0x82348338, 0x4616}, + {0x82348339, 0x84ee}, + {0x82348430, 0xb811}, + {0x82348431, 0x6554}, + {0x82348432, 0x418d}, + {0x82348433, 0x5424}, + {0x82348434, 0x6558}, + {0x82348435, 0xffff488f}, + {0x82348436, 0x4ac2}, + {0x82348437, 0x4e1d}, + {0x82348438, 0x686a}, + {0x82348439, 0xb8f1}, + {0x82348530, 0x5e41}, + {0x82348531, 0xad3a}, + {0x82348532, 0xb9d6}, + {0x82348533, 0x8f48}, + {0x82348534, 0xffff4898}, + {0x82348535, 0x3d0e}, + {0x82348536, 0x5921}, + {0x82348537, 0x6b82}, + {0x82348538, 0x5ba1}, + {0x82348539, 0xaf81}, + {0x82348630, 0x9849}, + {0x82348631, 0xb834}, + {0x82348632, 0x99ec}, + {0x82348633, 0xb2c0}, + {0x82348634, 0x4331}, + {0x82348635, 0xb1e9}, + {0x82348636, 0x9859}, + {0x82348637, 0xb002}, + {0x82348638, 0x9888}, + {0x82348639, 0x7791}, + {0x82348730, 0x4a6a}, + {0x82348731, 0xba31}, + {0x82348732, 0x8cca}, + {0x82348733, 0x9ae9}, + {0x82348734, 0x8ba9}, + {0x82348735, 0xb0e0}, + {0x82348736, 0x7475}, + {0x82348737, 0x780c}, + {0x82348738, 0x9dfa}, + {0x82348739, 0x509e}, + {0x82348830, 0xbbb4}, + {0x82348831, 0x6529}, + {0x82348832, 0x8b64}, + {0x82348833, 0xbbd2}, + {0x82348834, 0x3d65}, + {0x82348835, 0xffff48b7}, + {0x82348836, 0x6c11}, + {0x82348837, 0x6c9e}, + {0x82348838, 0x4854}, + {0x82348839, 0x45ea}, + {0x82348930, 0x5969}, + {0x82348931, 0xa9be}, + {0x82348932, 0xa8b2}, + {0x82348933, 0x3ba2}, + {0x82348934, 0x5bd5}, + {0x82348935, 0xb982}, + {0x82348936, 0x7432}, + {0x82348937, 0xab0c}, + {0x82348938, 0xa05e}, + {0x82348939, 0x45ee}, + {0x82348a30, 0xac0a}, + {0x82348a31, 0x8ee2}, + {0x82348a32, 0xa9c2}, + {0x82348a33, 0xffff48c9}, + {0x82348a34, 0x4cf4}, + {0x82348a35, 0x429e}, + {0x82348a36, 0x4e2c}, + {0x82348a37, 0xb04d}, + {0x82348a38, 0xc5b9}, + {0x82348a39, 0x5971}, + {0x82348b30, 0xb689}, + {0x82348b31, 0x444c}, + {0x82348b32, 0xffff48d2}, + {0x82348b33, 0x74b4}, + {0x82348b34, 0x9b8a}, + {0x82348b35, 0x7cb8}, + {0x82348b36, 0x7cc1}, + {0x82348b37, 0x5838}, + {0x82348b38, 0x9d06}, + {0x82348b39, 0x869d}, + {0x82348c30, 0x7a08}, + {0x82348c31, 0x89ea}, + {0x82348c32, 0x4b84}, + {0x82348c33, 0xa075}, + {0x82348c34, 0x529a}, + {0x82348c35, 0x42dd}, + {0x82348c36, 0x69a8}, + {0x82348c37, 0xb3b5}, + {0x82348c38, 0x6509}, + {0x82348c39, 0x4cfc}, + {0x82348d30, 0x6e18}, + {0x82348d31, 0x3f02}, + {0x82348d32, 0x7465}, + {0x82348d33, 0xb48a}, + {0x82348d34, 0x4992}, + {0x82348d35, 0x4999}, + {0x82348d36, 0x892d}, + {0x82348d37, 0x74aa}, + {0x82348d38, 0xbc96}, + {0x82348d39, 0xffff48ed}, + {0x82348e30, 0x8931}, + {0x82348e31, 0x4ac6}, + {0x82348e32, 0x6ce6}, + {0x82348e33, 0xad56}, + {0x82348e34, 0x53ed}, + {0x82348e35, 0x4acc}, + {0x82348e36, 0xad66}, + {0x82348e37, 0x532e}, + {0x82348e38, 0x63a1}, + {0x82348e39, 0xc3b6}, + {0x82348f30, 0x90e0}, + {0x82348f31, 0x5351}, + {0x82348f32, 0x6d38}, + {0x82348f33, 0x5cfc}, + {0x82348f34, 0x7701}, + {0x82348f35, 0xc165}, + {0x82348f36, 0x7fd1}, + {0x82348f37, 0xb8cc}, + {0x82348f38, 0xffff4900}, + {0x82348f39, 0x4399}, + {0x82349030, 0x7e55}, + {0x82349031, 0xb5d4}, + {0x82349032, 0x8026}, + {0x82349033, 0xa08c}, + {0x82349034, 0x715a}, + {0x82349035, 0x9a16}, + {0x82349036, 0xa67d}, + {0x82349037, 0x7fdd}, + {0x82349038, 0x91d1}, + {0x82349039, 0xba62}, + {0x82349130, 0x8c81}, + {0x82349131, 0x7f5c}, + {0x82349132, 0x6c8e}, + {0x82349133, 0x87e2}, + {0x82349134, 0x6a70}, + {0x82349135, 0xa2ba}, + {0x82349136, 0x65e5}, + {0x82349137, 0x7f06}, + {0x82349138, 0x67f1}, + {0x82349139, 0xae8a}, + {0x82349230, 0x3e0e}, + {0x82349231, 0x57d4}, + {0x82349232, 0x44cc}, + {0x82349233, 0x7641}, + {0x82349234, 0x7536}, + {0x82349235, 0x8ef1}, + {0x82349236, 0x5180}, + {0x82349237, 0xb75e}, + {0x82349238, 0xbc11}, + {0x82349239, 0x4601}, + {0x82349330, 0xc1da}, + {0x82349331, 0x90e1}, + {0x82349332, 0x3cc1}, + {0x82349333, 0x7c90}, + {0x82349334, 0x6e9d}, + {0x82349335, 0x5bf6}, + {0x82349336, 0xbb95}, + {0x82349337, 0x62f4}, + {0x82349338, 0x87f4}, + {0x82349339, 0x43ec}, + {0x82349430, 0x51cc}, + {0x82349431, 0x4460}, + {0x82349432, 0x93f2}, + {0x82349433, 0x976a}, + {0x82349434, 0x9565}, + {0x82349435, 0xac1c}, + {0x82349436, 0xb70a}, + {0x82349437, 0x976c}, + {0x82349438, 0x4795}, + {0x82349439, 0xb2e5}, + {0x82349530, 0x5d34}, + {0x82349531, 0x54a2}, + {0x82349532, 0xb2e6}, + {0x82349533, 0xb07a}, + {0x82349534, 0xc72c}, + {0x82349535, 0x9a1a}, + {0x82349536, 0x6a48}, + {0x82349537, 0x51fe}, + {0x82349538, 0xffff493c}, + {0x82349539, 0x5b0d}, + {0x82349630, 0x9d82}, + {0x82349631, 0x8d79}, + {0x82349632, 0x44ba}, + {0x82349633, 0x5d39}, + {0x82349634, 0x7f34}, + {0x82349635, 0xbba6}, + {0x82349636, 0x4ae4}, + {0x82349637, 0x8dd0}, + {0x82349638, 0x8dd2}, + {0x82349639, 0x81ed}, + {0x82349730, 0xbac2}, + {0x82349731, 0x8e19}, + {0x82349732, 0x86f5}, + {0x82349733, 0xc11d}, + {0x82349734, 0xc2ac}, + {0x82349735, 0x49b1}, + {0x82349736, 0xb9be}, + {0x82349737, 0x81c6}, + {0x82349738, 0xa278}, + {0x82349739, 0x6861}, + {0x82349830, 0x8a08}, + {0x82349831, 0x9ab2}, + {0x82349832, 0x8876}, + {0x82349833, 0x4ee5}, + {0x82349834, 0x70d5}, + {0x82349835, 0x4bac}, + {0x82349836, 0x9b36}, + {0x82349837, 0x485d}, + {0x82349838, 0x69cd}, + {0x82349839, 0xffff495c}, + {0x82349930, 0x3c48}, + {0x82349931, 0x68fa}, + {0x82349932, 0xb304}, + {0x82349933, 0xc046}, + {0x82349934, 0xb306}, + {0x82349935, 0x79c4}, + {0x82349936, 0xbd19}, + {0x82349937, 0x3dc4}, + {0x82349938, 0x76a4}, + {0x82349939, 0x5201}, + {0x82349a30, 0xadf2}, + {0x82349a31, 0x7c81}, + {0x82349a32, 0xa339}, + {0x82349a33, 0xa8e9}, + {0x82349a34, 0x9f4d}, + {0x82349a35, 0x420c}, + {0x82349a36, 0xc121}, + {0x82349a37, 0xc3f0}, + {0x82349a38, 0x3e28}, + {0x82349a39, 0x7f10}, + {0x82349b30, 0xaafd}, + {0x82349b31, 0x859a}, + {0x82349b32, 0xb80c}, + {0x82349b33, 0x6d44}, + {0x82349b34, 0xaa61}, + {0x82349b35, 0x7636}, + {0x82349b36, 0xbe0d}, + {0x82349b37, 0x7f76}, + {0x82349b38, 0xffff4979}, + {0x82349b39, 0xffff497b}, + {0x82349c30, 0xffff497c}, + {0x82349c31, 0xaaf6}, + {0x82349c32, 0xffff497f}, + {0x82349c33, 0xb908}, + {0x82349c34, 0xffff4981}, + {0x82349c35, 0xffff4984}, + {0x82349c36, 0x6574}, + {0x82349c37, 0x693e}, + {0x82349c38, 0xffff4989}, + {0x82349c39, 0x83fe}, + {0x82349d30, 0x3c40}, + {0x82349d31, 0x48be}, + {0x82349d32, 0xa5a8}, + {0x82349d33, 0x5b1c}, + {0x82349d34, 0xab26}, + {0x82349d35, 0x9fa5}, + {0x82349d36, 0xae81}, + {0x82349d37, 0x4d12}, + {0x82349d38, 0xbe74}, + {0x82349d39, 0x9cbe}, + {0x82349e30, 0x86ed}, + {0x82349e31, 0xaad0}, + {0x82349e32, 0xad71}, + {0x82349e33, 0xa926}, + {0x82349e34, 0x99a2}, + {0x82349e35, 0x7094}, + {0x82349e36, 0xa538}, + {0x82349e37, 0x6390}, + {0x82349e38, 0x92c6}, + {0x82349e39, 0x5084}, + {0x82349f30, 0x6162}, + {0x82349f31, 0x7218}, + {0x82349f32, 0x5722}, + {0x82349f33, 0x48f2}, + {0x82349f34, 0xa898}, + {0x82349f35, 0x8dc8}, + {0x82349f36, 0xa76d}, + {0x82349f37, 0x72d0}, + {0x82349f38, 0xa446}, + {0x82349f39, 0xaf95}, + {0x8234a030, 0xb6b6}, + {0x8234a031, 0x908e}, + {0x8234a032, 0x5da1}, + {0x8234a033, 0x49c4}, + {0x8234a034, 0xc2a4}, + {0x8234a035, 0xffff49b0}, + {0x8234a036, 0xa39e}, + {0x8234a037, 0xb026}, + {0x8234a038, 0xa9ca}, + {0x8234a039, 0xb580}, + {0x8234a130, 0x8394}, + {0x8234a131, 0xffff49b8}, + {0x8234a132, 0x96a2}, + {0x8234a133, 0x4f94}, + {0x8234a134, 0xc60a}, + {0x8234a135, 0x6d8d}, + {0x8234a136, 0xad25}, + {0x8234a137, 0xbade}, + {0x8234a138, 0xffff49bf}, + {0x8234a139, 0xffff49c0}, + {0x8234a230, 0xad09}, + {0x8234a231, 0xbf60}, + {0x8234a232, 0x9e98}, + {0x8234a233, 0x58fc}, + {0x8234a234, 0xb36a}, + {0x8234a235, 0x5f2d}, + {0x8234a236, 0xb31c}, + {0x8234a237, 0xffff49c8}, + {0x8234a238, 0x752c}, + {0x8234a239, 0x704c}, + {0x8234a330, 0xa8b8}, + {0x8234a331, 0x9ac9}, + {0x8234a332, 0xa736}, + {0x8234a333, 0xae09}, + {0x8234a334, 0x6846}, + {0x8234a335, 0x5c60}, + {0x8234a336, 0x4dcc}, + {0x8234a337, 0x7270}, + {0x8234a338, 0xc32a}, + {0x8234a339, 0x83ea}, + {0x8234a430, 0xb9dd}, + {0x8234a431, 0x678e}, + {0x8234a432, 0x3f54}, + {0x8234a433, 0xc4a9}, + {0x8234a434, 0x788a}, + {0x8234a435, 0x5e01}, + {0x8234a436, 0x3d8c}, + {0x8234a437, 0x9cfd}, + {0x8234a438, 0x46e2}, + {0x8234a439, 0x7cce}, + {0x8234a530, 0xa916}, + {0x8234a531, 0x9892}, + {0x8234a532, 0xb77a}, + {0x8234a533, 0x8f5e}, + {0x8234a534, 0xb5c2}, + {0x8234a535, 0x8988}, + {0x8234a536, 0x62f5}, + {0x8234a537, 0xa320}, + {0x8234a538, 0xb409}, + {0x8234a539, 0xb2da}, + {0x8234a630, 0xffff49e9}, + {0x8234a631, 0x45b9}, + {0x8234a632, 0x5dd5}, + {0x8234a633, 0x40f1}, + {0x8234a634, 0xffff49ed}, + {0x8234a635, 0xa940}, + {0x8234a636, 0x4478}, + {0x8234a637, 0x638a}, + {0x8234a638, 0x6bad}, + {0x8234a639, 0x57ac}, + {0x8234a730, 0x4a09}, + {0x8234a731, 0xc154}, + {0x8234a732, 0xc094}, + {0x8234a733, 0x7149}, + {0x8234a734, 0x91fe}, + {0x8234a735, 0x5a2e}, + {0x8234a736, 0xb6a1}, + {0x8234a737, 0xac5d}, + {0x8234a738, 0x58a1}, + {0x8234a739, 0x5a7d}, + {0x8234a830, 0x4b26}, + {0x8234a831, 0x97ec}, + {0x8234a832, 0x908c}, + {0x8234a833, 0x4e05}, + {0x8234a834, 0xa5c9}, + {0x8234a835, 0x8ebc}, + {0x8234a836, 0xb0ec}, + {0x8234a837, 0x3bca}, + {0x8234a838, 0x7772}, + {0x8234a839, 0x3fd4}, + {0x8234a930, 0x989c}, + {0x8234a931, 0x4101}, + {0x8234a932, 0xb6e4}, + {0x8234a933, 0xbacd}, + {0x8234a934, 0x8571}, + {0x8234a935, 0x3db9}, + {0x8234a936, 0xb742}, + {0x8234a937, 0x5f5e}, + {0x8234a938, 0x4a12}, + {0x8234a939, 0x8b5e}, + {0x8234aa30, 0x9e1e}, + {0x8234aa31, 0xba32}, + {0x8234aa32, 0x7406}, + {0x8234aa33, 0x3dbe}, + {0x8234aa34, 0xb8c9}, + {0x8234aa35, 0x65b0}, + {0x8234aa36, 0x5680}, + {0x8234aa37, 0xa92e}, + {0x8234aa38, 0xb621}, + {0x8234aa39, 0x6004}, + {0x8234ab30, 0x93ac}, + {0x8234ab31, 0x3eb5}, + {0x8234ab32, 0x8e16}, + {0x8234ab33, 0xb9ba}, + {0x8234ab34, 0xa1c9}, + {0x8234ab35, 0x3b60}, + {0x8234ab36, 0x5d35}, + {0x8234ab37, 0x4cd2}, + {0x8234ab38, 0x58e8}, + {0x8234ab39, 0x4e06}, + {0x8234ac30, 0x63e2}, + {0x8234ac31, 0x8634}, + {0x8234ac32, 0xb5de}, + {0x8234ac33, 0xc4f4}, + {0x8234ac34, 0x78cd}, + {0x8234ac35, 0x7cec}, + {0x8234ac36, 0x7d0e}, + {0x8234ac37, 0x7698}, + {0x8234ac38, 0xaa31}, + {0x8234ac39, 0xae68}, + {0x8234ad30, 0xc0ad}, + {0x8234ad31, 0x893d}, + {0x8234ad32, 0x5738}, + {0x8234ad33, 0x8500}, + {0x8234ad34, 0xa77e}, + {0x8234ad35, 0x5150}, + {0x8234ad36, 0x4cdd}, + {0x8234ad37, 0xffff4a36}, + {0x8234ad38, 0xa952}, + {0x8234ad39, 0xb662}, + {0x8234ae30, 0x97f8}, + {0x8234ae31, 0x5151}, + {0x8234ae32, 0x3ed6}, + {0x8234ae33, 0x60a9}, + {0x8234ae34, 0x546c}, + {0x8234ae35, 0x5490}, + {0x8234ae36, 0xbc72}, + {0x8234ae37, 0x3e6e}, + {0x8234ae38, 0x545a}, + {0x8234ae39, 0xa821}, + {0x8234af30, 0x9751}, + {0x8234af31, 0x8021}, + {0x8234af32, 0xbeae}, + {0x8234af33, 0xbeb0}, + {0x8234af34, 0xbe7a}, + {0x8234af35, 0x630a}, + {0x8234af36, 0x56c2}, + {0x8234af37, 0xa25d}, + {0x8234af38, 0x814a}, + {0x8234af39, 0x8d11}, + {0x8234b030, 0x7785}, + {0x8234b031, 0xffff4a4e}, + {0x8234b032, 0x8080}, + {0x8234b033, 0x5ff4}, + {0x8234b034, 0x5f51}, + {0x8234b035, 0xb915}, + {0x8234b036, 0x8a5e}, + {0x8234b037, 0x51f0}, + {0x8234b038, 0x3c0c}, + {0x8234b039, 0x93ed}, + {0x8234b130, 0x3cd9}, + {0x8234b131, 0x4e6d}, + {0x8234b132, 0xae21}, + {0x8234b133, 0x4e76}, + {0x8234b134, 0x3f90}, + {0x8234b135, 0xc38a}, + {0x8234b136, 0x8672}, + {0x8234b137, 0x9f41}, + {0x8234b138, 0xb3b6}, + {0x8234b139, 0x9f6a}, + {0x8234b230, 0x6660}, + {0x8234b231, 0xc286}, + {0x8234b232, 0xa08d}, + {0x8234b233, 0xaae1}, + {0x8234b234, 0x4cc4}, + {0x8234b235, 0x9f15}, + {0x8234b236, 0xab4a}, + {0x8234b237, 0x4551}, + {0x8234b238, 0xbb34}, + {0x8234b239, 0x5b2a}, + {0x8234b330, 0x771a}, + {0x8234b331, 0x3ec2}, + {0x8234b332, 0x646c}, + {0x8234b333, 0x7b2a}, + {0x8234b334, 0x6510}, + {0x8234b335, 0xae2e}, + {0x8234b336, 0x9872}, + {0x8234b337, 0x5086}, + {0x8234b338, 0x9a1e}, + {0x8234b339, 0x6051}, + {0x8234b430, 0xbc51}, + {0x8234b431, 0x44c0}, + {0x8234b432, 0x3d7c}, + {0x8234b433, 0x91de}, + {0x8234b434, 0x5239}, + {0x8234b435, 0xa488}, + {0x8234b436, 0x3cde}, + {0x8234b437, 0x558e}, + {0x8234b438, 0xb8ce}, + {0x8234b439, 0xbff5}, + {0x8234b530, 0x5505}, + {0x8234b531, 0x5b2d}, + {0x8234b532, 0x4245}, + {0x8234b533, 0x58f4}, + {0x8234b534, 0x516c}, + {0x8234b535, 0x621e}, + {0x8234b536, 0x50ad}, + {0x8234b537, 0x9e4c}, + {0x8234b538, 0x4210}, + {0x8234b539, 0x8c56}, + {0x8234b630, 0x77e0}, + {0x8234b631, 0x79d9}, + {0x8234b632, 0xa409}, + {0x8234b633, 0xbef5}, + {0x8234b634, 0x7300}, + {0x8234b635, 0x9ae0}, + {0x8234b636, 0x8251}, + {0x8234b637, 0x3f91}, + {0x8234b638, 0xa17a}, + {0x8234b639, 0xc465}, + {0x8234b730, 0x4f3d}, + {0x8234b731, 0x4242}, + {0x8234b732, 0x6c86}, + {0x8234b733, 0x893a}, + {0x8234b734, 0xa7d8}, + {0x8234b735, 0xa3a6}, + {0x8234b736, 0x893c}, + {0x8234b737, 0x4bc2}, + {0x8234b738, 0x5385}, + {0x8234b739, 0x4448}, + {0x8234b830, 0x60ac}, + {0x8234b831, 0xbc74}, + {0x8234b832, 0xffff4a9f}, + {0x8234b833, 0x646d}, + {0x8234b834, 0x6480}, + {0x8234b835, 0x6481}, + {0x8234b836, 0xffff4aa3}, + {0x8234b837, 0x53c1}, + {0x8234b838, 0xab79}, + {0x8234b839, 0x5f52}, + {0x8234b930, 0x4721}, + {0x8234b931, 0x3dba}, + {0x8234b932, 0xb615}, + {0x8234b933, 0xffff4aaa}, + {0x8234b934, 0x6af2}, + {0x8234b935, 0x41e8}, + {0x8234b936, 0x9290}, + {0x8234b937, 0x4844}, + {0x8234b938, 0xb6c9}, + {0x8234b939, 0xb355}, + {0x8234ba30, 0x576d}, + {0x8234ba31, 0x71c6}, + {0x8234ba32, 0xbc16}, + {0x8234ba33, 0xc06c}, + {0x8234ba34, 0xaf65}, + {0x8234ba35, 0x6c45}, + {0x8234ba36, 0x5fcd}, + {0x8234ba37, 0x80b2}, + {0x8234ba38, 0x3cf0}, + {0x8234ba39, 0x58d2}, + {0x8234bb30, 0x4042}, + {0x8234bb31, 0xc545}, + {0x8234bb32, 0x5e09}, + {0x8234bb33, 0xc070}, + {0x8234bb34, 0xabcd}, + {0x8234bb35, 0x590d}, + {0x8234bb36, 0x3fa6}, + {0x8234bb37, 0x51ce}, + {0x8234bb38, 0x49ad}, + {0x8234bb39, 0x48e8}, + {0x8234bc30, 0x9356}, + {0x8234bc31, 0x46b4}, + {0x8234bc32, 0x90c5}, + {0x8234bc33, 0xbda8}, + {0x8234bc34, 0x7e14}, + {0x8234bc35, 0x86a5}, + {0x8234bc36, 0xa2ed}, + {0x8234bc37, 0x87dd}, + {0x8234bc38, 0x9f36}, + {0x8234bc39, 0xc548}, + {0x8234bd30, 0x8a02}, + {0x8234bd31, 0x780d}, + {0x8234bd32, 0xb349}, + {0x8234bd33, 0x7eb0}, + {0x8234bd34, 0xa53d}, + {0x8234bd35, 0x8b3a}, + {0x8234bd36, 0x4f80}, + {0x8234bd37, 0x4622}, + {0x8234bd38, 0xa7d9}, + {0x8234bd39, 0x5e8d}, + {0x8234be30, 0xffff4ad9}, + {0x8234be31, 0x5acd}, + {0x8234be32, 0x5fb0}, + {0x8234be33, 0x3c20}, + {0x8234be34, 0x5732}, + {0x8234be35, 0x8cdd}, + {0x8234be36, 0x6389}, + {0x8234be37, 0x8789}, + {0x8234be38, 0xb01a}, + {0x8234be39, 0x995c}, + {0x8234bf30, 0xa6ea}, + {0x8234bf31, 0x8108}, + {0x8234bf32, 0x717d}, + {0x8234bf33, 0x58ee}, + {0x8234bf34, 0x5871}, + {0x8234bf35, 0x3c80}, + {0x8234bf36, 0x9350}, + {0x8234bf37, 0x98ba}, + {0x8234bf38, 0x7a26}, + {0x8234bf39, 0xc079}, + {0x8234c030, 0x633c}, + {0x8234c031, 0x4488}, + {0x8234c032, 0xb354}, + {0x8234c033, 0x7855}, + {0x8234c034, 0x9245}, + {0x8234c035, 0x5d9a}, + {0x8234c036, 0x50ae}, + {0x8234c037, 0x6ac8}, + {0x8234c038, 0x8005}, + {0x8234c039, 0x53c6}, + {0x8234c130, 0x52c1}, + {0x8234c131, 0x455a}, + {0x8234c132, 0x5f54}, + {0x8234c133, 0x5f60}, + {0x8234c134, 0xba1d}, + {0x8234c135, 0xae82}, + {0x8234c136, 0x865e}, + {0x8234c137, 0x3ee0}, + {0x8234c138, 0x4561}, + {0x8234c139, 0xb879}, + {0x8234c230, 0xb3b2}, + {0x8234c231, 0xae85}, + {0x8234c232, 0x92fe}, + {0x8234c233, 0xad81}, + {0x8234c234, 0x75d4}, + {0x8234c235, 0x75d9}, + {0x8234c236, 0xbb55}, + {0x8234c237, 0x513e}, + {0x8234c238, 0x63d4}, + {0x8234c239, 0x9419}, + {0x8234c330, 0x7492}, + {0x8234c331, 0x8941}, + {0x8234c332, 0x6008}, + {0x8234c333, 0x5c95}, + {0x8234c334, 0x4279}, + {0x8234c335, 0x929a}, + {0x8234c336, 0xa3f0}, + {0x8234c337, 0x9a20}, + {0x8234c338, 0x3bfc}, + {0x8234c339, 0xb965}, + {0x8234c430, 0xa972}, + {0x8234c431, 0x5ef9}, + {0x8234c432, 0xb16a}, + {0x8234c433, 0xaa32}, + {0x8234c434, 0xb216}, + {0x8234c435, 0x5381}, + {0x8234c436, 0x3fd5}, + {0x8234c437, 0x46fa}, + {0x8234c438, 0x5efc}, + {0x8234c439, 0x9dad}, + {0x8234c530, 0x795a}, + {0x8234c531, 0x5452}, + {0x8234c532, 0xc476}, + {0x8234c533, 0x9d62}, + {0x8234c534, 0xa745}, + {0x8234c535, 0xbcc9}, + {0x8234c536, 0xb4c9}, + {0x8234c537, 0x5064}, + {0x8234c538, 0xbaea}, + {0x8234c539, 0x6bee}, + {0x8234c630, 0xbe4c}, + {0x8234c631, 0x41ba}, + {0x8234c632, 0x9e18}, + {0x8234c633, 0xb745}, + {0x8234c634, 0x9d74}, + {0x8234c635, 0xb39c}, + {0x8234c636, 0x83c5}, + {0x8234c637, 0x952a}, + {0x8234c638, 0x3e9a}, + {0x8234c639, 0x59cc}, + {0x8234c730, 0x3d49}, + {0x8234c731, 0x8176}, + {0x8234c732, 0x5769}, + {0x8234c733, 0x52ce}, + {0x8234c734, 0x9545}, + {0x8234c735, 0x42c8}, + {0x8234c736, 0xc264}, + {0x8234c737, 0xb1a4}, + {0x8234c738, 0x67b8}, + {0x8234c739, 0xbb52}, + {0x8234c830, 0x98d8}, + {0x8234c831, 0x9e24}, + {0x8234c832, 0xa390}, + {0x8234c833, 0xaf15}, + {0x8234c834, 0xc288}, + {0x8234c835, 0xb512}, + {0x8234c836, 0x9145}, + {0x8234c837, 0x9771}, + {0x8234c838, 0x6041}, + {0x8234c839, 0x831e}, + {0x8234c930, 0xb282}, + {0x8234c931, 0x66e6}, + {0x8234c932, 0x9af1}, + {0x8234c933, 0xb74e}, + {0x8234c934, 0x3de6}, + {0x8234c935, 0x6052}, + {0x8234c936, 0x604c}, + {0x8234c937, 0xb2f1}, + {0x8234c938, 0xffff4b4f}, + {0x8234c939, 0xb1a9}, + {0x8234ca30, 0x7694}, + {0x8234ca31, 0xa6a5}, + {0x8234ca32, 0x52d1}, + {0x8234ca33, 0x5120}, + {0x8234ca34, 0xbcc0}, + {0x8234ca35, 0xc478}, + {0x8234ca36, 0xb754}, + {0x8234ca37, 0xb755}, + {0x8234ca38, 0x6a72}, + {0x8234ca39, 0x4941}, + {0x8234cb30, 0x4cd6}, + {0x8234cb31, 0xffff4b5c}, + {0x8234cb32, 0x70be}, + {0x8234cb33, 0xb581}, + {0x8234cb34, 0xb305}, + {0x8234cb35, 0x6778}, + {0x8234cb36, 0x52d2}, + {0x8234cb37, 0x84a0}, + {0x8234cb38, 0x4a2e}, + {0x8234cb39, 0x8c25}, + {0x8234cc30, 0xb1ac}, + {0x8234cc31, 0x418a}, + {0x8234cc32, 0x7f9d}, + {0x8234cc33, 0x98da}, + {0x8234cc34, 0x8145}, + {0x8234cc35, 0xffff4b6a}, + {0x8234cc36, 0x8ae4}, + {0x8234cc37, 0x8ae5}, + {0x8234cc38, 0x9794}, + {0x8234cc39, 0x5696}, + {0x8234cd30, 0x41d0}, + {0x8234cd31, 0x3ed2}, + {0x8234cd32, 0x40c8}, + {0x8234cd33, 0xb411}, + {0x8234cd34, 0xa40c}, + {0x8234cd35, 0x6154}, + {0x8234cd36, 0x53a1}, + {0x8234cd37, 0x8a60}, + {0x8234cd38, 0x7dc1}, + {0x8234cd39, 0x5710}, + {0x8234ce30, 0x3c0d}, + {0x8234ce31, 0x3c10}, + {0x8234ce32, 0x54ce}, + {0x8234ce33, 0x8a6d}, + {0x8234ce34, 0x90ac}, + {0x8234ce35, 0xa17c}, + {0x8234ce36, 0xb514}, + {0x8234ce37, 0x41e0}, + {0x8234ce38, 0x8826}, + {0x8234ce39, 0x3cc5}, + {0x8234cf30, 0x8f66}, + {0x8234cf31, 0xade6}, + {0x8234cf32, 0xffff4b85}, + {0x8234cf33, 0x877e}, + {0x8234cf34, 0xba52}, + {0x8234cf35, 0x4731}, + {0x8234cf36, 0x7c78}, + {0x8234cf37, 0xb3bc}, + {0x8234cf38, 0x77cc}, + {0x8234cf39, 0xac89}, + {0x8234d030, 0x8404}, + {0x8234d031, 0xa771}, + {0x8234d032, 0xa53e}, + {0x8234d033, 0x6b72}, + {0x8234d034, 0x7479}, + {0x8234d035, 0x8976}, + {0x8234d036, 0xc54a}, + {0x8234d037, 0xc735}, + {0x8234d038, 0xc595}, + {0x8234d039, 0x44fd}, + {0x8234d130, 0x3bfd}, + {0x8234d131, 0x52fe}, + {0x8234d132, 0xba6c}, + {0x8234d133, 0x749a}, + {0x8234d134, 0x5729}, + {0x8234d135, 0xbe09}, + {0x8234d136, 0x6372}, + {0x8234d137, 0x49c5}, + {0x8234d138, 0x9a22}, + {0x8234d139, 0x3ee9}, + {0x8234d230, 0x3fd6}, + {0x8234d231, 0xbe0a}, + {0x8234d232, 0x935c}, + {0x8234d233, 0x5e96}, + {0x8234d234, 0x760d}, + {0x8234d235, 0x68a1}, + {0x8234d236, 0x5d96}, + {0x8234d237, 0xbc9d}, + {0x8234d238, 0x5a42}, + {0x8234d239, 0x466c}, + {0x8234d330, 0x7a2a}, + {0x8234d331, 0x81a0}, + {0x8234d332, 0x7fe5}, + {0x8234d333, 0x7d10}, + {0x8234d334, 0x3c81}, + {0x8234d335, 0xbfd6}, + {0x8234d336, 0xc3ec}, + {0x8234d337, 0x6224}, + {0x8234d338, 0x53c4}, + {0x8234d339, 0x4dc2}, + {0x8234d430, 0xa000}, + {0x8234d431, 0x4094}, + {0x8234d432, 0x50b6}, + {0x8234d433, 0xa4e9}, + {0x8234d434, 0xa405}, + {0x8234d435, 0x65fe}, + {0x8234d436, 0x4d58}, + {0x8234d437, 0x7822}, + {0x8234d438, 0x4096}, + {0x8234d439, 0x79da}, + {0x8234d530, 0x677e}, + {0x8234d531, 0x8476}, + {0x8234d532, 0x7be2}, + {0x8234d533, 0x95ba}, + {0x8234d534, 0x3ba5}, + {0x8234d535, 0x5abd}, + {0x8234d536, 0x8439}, + {0x8234d537, 0xb48c}, + {0x8234d538, 0x7052}, + {0x8234d539, 0xa228}, + {0x8234d630, 0xa1c2}, + {0x8234d631, 0x8b60}, + {0x8234d632, 0x41d1}, + {0x8234d633, 0x6f32}, + {0x8234d634, 0x78b4}, + {0x8234d635, 0x57e8}, + {0x8234d636, 0x5ac9}, + {0x8234d637, 0x5ccc}, + {0x8234d638, 0x70ec}, + {0x8234d639, 0x5ef0}, + {0x8234d730, 0x7132}, + {0x8234d731, 0xbd70}, + {0x8234d732, 0x9f6c}, + {0x8234d733, 0x7366}, + {0x8234d734, 0x3fb2}, + {0x8234d735, 0x61ba}, + {0x8234d736, 0x8939}, + {0x8234d737, 0xb246}, + {0x8234d738, 0xa274}, + {0x8234d739, 0x9e75}, + {0x8234d830, 0x9af4}, + {0x8234d831, 0x7086}, + {0x8234d832, 0x5148}, + {0x8234d833, 0x3c5c}, + {0x8234d834, 0x67e9}, + {0x8234d835, 0x813d}, + {0x8234d836, 0x71ae}, + {0x8234d837, 0x70c0}, + {0x8234d838, 0x3c00}, + {0x8234d839, 0x7ce0}, + {0x8234d930, 0x8e40}, + {0x8234d931, 0x8cbe}, + {0x8234d932, 0xffff4be9}, + {0x8234d933, 0x6f41}, + {0x8234d934, 0x5e1e}, + {0x8234d935, 0x51d8}, + {0x8234d936, 0xa81e}, + {0x8234d937, 0x825c}, + {0x8234d938, 0x9b76}, + {0x8234d939, 0x6a09}, + {0x8234da30, 0x8775}, + {0x8234da31, 0x85ba}, + {0x8234da32, 0x99c8}, + {0x8234da33, 0x4519}, + {0x8234da34, 0x8440}, + {0x8234da35, 0x7d22}, + {0x8234da36, 0x99cd}, + {0x8234da37, 0x4a4c}, + {0x8234da38, 0xa838}, + {0x8234da39, 0x721a}, + {0x8234db30, 0xffff4bfb}, + {0x8234db31, 0x4e0a}, + {0x8234db32, 0x894c}, + {0x8234db33, 0x9f19}, + {0x8234db34, 0xc6fe}, + {0x8234db35, 0xa4c5}, + {0x8234db36, 0x55b0}, + {0x8234db37, 0x42b6}, + {0x8234db38, 0x8726}, + {0x8234db39, 0x931c}, + {0x8234dc30, 0xacf8}, + {0x8234dc31, 0x920c}, + {0x8234dc32, 0x8a8e}, + {0x8234dc33, 0x4b8d}, + {0x8234dc34, 0x860a}, + {0x8234dc35, 0x4208}, + {0x8234dc36, 0x5368}, + {0x8234dc37, 0xc6a2}, + {0x8234dc38, 0xac94}, + {0x8234dc39, 0x71b0}, + {0x8234dd30, 0x69d1}, + {0x8234dd31, 0x72f8}, + {0x8234dd32, 0xad00}, + {0x8234dd33, 0x7f11}, + {0x8234dd34, 0x8006}, + {0x8234dd35, 0x860c}, + {0x8234dd36, 0x7a91}, + {0x8234dd37, 0xbcec}, + {0x8234dd38, 0x6bc0}, + {0x8234dd39, 0x7952}, + {0x8234de30, 0xb406}, + {0x8234de31, 0xa43d}, + {0x8234de32, 0x75ca}, + {0x8234de33, 0x75da}, + {0x8234de34, 0xbdcd}, + {0x8234de35, 0xc41a}, + {0x8234de36, 0x6368}, + {0x8234de37, 0x95c0}, + {0x8234de38, 0x478e}, + {0x8234de39, 0xac3e}, + {0x8234df30, 0xa2a9}, + {0x8234df31, 0x4ff6}, + {0x8234df32, 0x63dd}, + {0x8234df33, 0x87de}, + {0x8234df34, 0x6009}, + {0x8234df35, 0x7e99}, + {0x8234df36, 0x45a4}, + {0x8234df37, 0x7e9c}, + {0x8234df38, 0x4565}, + {0x8234df39, 0x6c9a}, + {0x8234e030, 0x9246}, + {0x8234e031, 0xffff4c2e}, + {0x8234e032, 0xb589}, + {0x8234e033, 0x9249}, + {0x8234e034, 0x78f5}, + {0x8234e035, 0xaf89}, + {0x8234e036, 0xffff4c33}, + {0x8234e037, 0x8b22}, + {0x8234e038, 0xc5e6}, + {0x8234e039, 0xffff4c36}, + {0x8234e130, 0x3d9c}, + {0x8234e131, 0x5985}, + {0x8234e132, 0xbd9e}, + {0x8234e133, 0x6a0d}, + {0x8234e134, 0xb946}, + {0x8234e135, 0x8dc0}, + {0x8234e136, 0x3e70}, + {0x8234e137, 0x3ca8}, + {0x8234e138, 0xa184}, + {0x8234e139, 0xb130}, + {0x8234e230, 0x8d00}, + {0x8234e231, 0xb880}, + {0x8234e232, 0xc289}, + {0x8234e233, 0x6a14}, + {0x8234e234, 0x8192}, + {0x8234e235, 0x9632}, + {0x8234e236, 0x94a1}, + {0x8234e237, 0xb52c}, + {0x8234e238, 0x94a2}, + {0x8234e239, 0x7f95}, + {0x8234e330, 0x59ac}, + {0x8234e331, 0xb3ce}, + {0x8234e332, 0x5950}, + {0x8234e333, 0x5951}, + {0x8234e334, 0xa038}, + {0x8234e335, 0x55fe}, + {0x8234e336, 0xae58}, + {0x8234e337, 0xb2fa}, + {0x8234e338, 0x9f92}, + {0x8234e339, 0x9f1a}, + {0x8234e430, 0x81c8}, + {0x8234e431, 0x7940}, + {0x8234e432, 0x42ce}, + {0x8234e433, 0x74f6}, + {0x8234e434, 0x97f4}, + {0x8234e435, 0x7b39}, + {0x8234e436, 0xad8a}, + {0x8234e437, 0x4baa}, + {0x8234e438, 0x85d8}, + {0x8234e439, 0x8286}, + {0x8234e530, 0x6d1e}, + {0x8234e531, 0xbef0}, + {0x8234e532, 0x6c90}, + {0x8234e533, 0xc0f1}, + {0x8234e534, 0xc700}, + {0x8234e535, 0xa942}, + {0x8234e536, 0xc2ad}, + {0x8234e537, 0xffff4c66}, + {0x8234e538, 0xb082}, + {0x8234e539, 0xffff4c68}, + {0x8234e630, 0xffff4c69}, + {0x8234e631, 0xffff4c6a}, + {0x8234e632, 0x7260}, + {0x8234e633, 0xacf9}, + {0x8234e634, 0x5952}, + {0x8234e635, 0x523d}, + {0x8234e636, 0x81d2}, + {0x8234e637, 0xc31c}, + {0x8234e638, 0x9e3e}, + {0x8234e639, 0xbb25}, + {0x8234e730, 0xbe8e}, + {0x8234e731, 0x5954}, + {0x8234e732, 0xa489}, + {0x8234e733, 0x736a}, + {0x8234e734, 0x9a25}, + {0x8234e735, 0xbe24}, + {0x8234e736, 0x5cd0}, + {0x8234e737, 0x60e2}, + {0x8234e738, 0xbec9}, + {0x8234e739, 0x4500}, + {0x8234e830, 0x7a2c}, + {0x8234e831, 0x44de}, + {0x8234e832, 0xc2be}, + {0x8234e833, 0xa401}, + {0x8234e834, 0xadf4}, + {0x8234e835, 0xbd2c}, + {0x8234e836, 0x80e2}, + {0x8234e837, 0x5bcc}, + {0x8234e838, 0x9a49}, + {0x8234e839, 0xffff4c87}, + {0x8234e930, 0xffff4c88}, + {0x8234e931, 0x9961}, + {0x8234e932, 0x5202}, + {0x8234e933, 0x439c}, + {0x8234e934, 0x70d6}, + {0x8234e935, 0x9de9}, + {0x8234e936, 0x832c}, + {0x8234e937, 0x73b8}, + {0x8234e938, 0x7abe}, + {0x8234e939, 0xb3da}, + {0x8234ea30, 0xab7c}, + {0x8234ea31, 0xb09c}, + {0x8234ea32, 0x6b00}, + {0x8234ea33, 0x8979}, + {0x8234ea34, 0x4835}, + {0x8234ea35, 0xa8b1}, + {0x8234ea36, 0x5b30}, + {0x8234ea37, 0x69d2}, + {0x8234ea38, 0x72b8}, + {0x8234ea39, 0x7f16}, + {0x8234eb30, 0xb30c}, + {0x8234eb31, 0x44ee}, + {0x8234eb32, 0x75bc}, + {0x8234eb33, 0xffff4ca4}, + {0x8234eb34, 0x6bb5}, + {0x8234eb35, 0x4c38}, + {0x8234eb36, 0x50e1}, + {0x8234eb37, 0x5f68}, + {0x8234eb38, 0x9684}, + {0x8234eb39, 0xa75a}, + {0x8234ec30, 0x6bb9}, + {0x8234ec31, 0x8a7c}, + {0x8234ec32, 0x46f0}, + {0x8234ec33, 0xbb0e}, + {0x8234ec34, 0x64ed}, + {0x8234ec35, 0xbc41}, + {0x8234ec36, 0x5435}, + {0x8234ec37, 0x5986}, + {0x8234ec38, 0x5dba}, + {0x8234ec39, 0xc0a5}, + {0x8234ed30, 0x9085}, + {0x8234ed31, 0xffff4cb6}, + {0x8234ed32, 0xaa14}, + {0x8234ed33, 0x6a0e}, + {0x8234ed34, 0x87ba}, + {0x8234ed35, 0x57ea}, + {0x8234ed36, 0xadec}, + {0x8234ed37, 0x9625}, + {0x8234ed38, 0x96dc}, + {0x8234ed39, 0x8d1c}, + {0x8234ee30, 0x4a20}, + {0x8234ee31, 0x4f76}, + {0x8234ee32, 0x41e9}, + {0x8234ee33, 0x4f05}, + {0x8234ee34, 0xa25c}, + {0x8234ee35, 0x4a25}, + {0x8234ee36, 0xc1e4}, + {0x8234ee37, 0x3cf4}, + {0x8234ee38, 0xa579}, + {0x8234ee39, 0x3de4}, + {0x8234ef30, 0x4ff4}, + {0x8234ef31, 0x41ea}, + {0x8234ef32, 0x9ffa}, + {0x8234ef33, 0x6d3e}, + {0x8234ef34, 0x598d}, + {0x8234ef35, 0x6c02}, + {0x8234ef36, 0x5c20}, + {0x8234ef37, 0x4a4d}, + {0x8234ef38, 0xb881}, + {0x8234ef39, 0xbac1}, + {0x8234f030, 0x73d0}, + {0x8234f031, 0x6c88}, + {0x8234f032, 0x5694}, + {0x8234f033, 0x8452}, + {0x8234f034, 0x5232}, + {0x8234f035, 0x5234}, + {0x8234f036, 0xac25}, + {0x8234f037, 0x6efd}, + {0x8234f038, 0xb0ed}, + {0x8234f039, 0xa092}, + {0x8234f130, 0x8959}, + {0x8234f131, 0x3ec5}, + {0x8234f132, 0x8109}, + {0x8234f133, 0x98d9}, + {0x8234f134, 0xb0f2}, + {0x8234f135, 0x8a99}, + {0x8234f136, 0xbac4}, + {0x8234f137, 0x40b5}, + {0x8234f138, 0xffff4ce5}, + {0x8234f139, 0xadce}, + {0x8234f230, 0x5fb1}, + {0x8234f231, 0x6220}, + {0x8234f232, 0xb1c4}, + {0x8234f233, 0xa0c9}, + {0x8234f234, 0x7166}, + {0x8234f235, 0xb574}, + {0x8234f236, 0x6516}, + {0x8234f237, 0x81a1}, + {0x8234f238, 0x47de}, + {0x8234f239, 0x3dea}, + {0x8234f330, 0xa5d5}, + {0x8234f331, 0xc0b1}, + {0x8234f332, 0xad8c}, + {0x8234f333, 0x9c0c}, + {0x8234f334, 0x47a5}, + {0x8234f335, 0xa6be}, + {0x8234f336, 0x4aad}, + {0x8234f337, 0x7cae}, + {0x8234f338, 0x7040}, + {0x8234f339, 0x3bd0}, + {0x8234f430, 0x42e8}, + {0x8234f431, 0x8598}, + {0x8234f432, 0x5ebe}, + {0x8234f433, 0x4daa}, + {0x8234f434, 0x90cd}, + {0x8234f435, 0xa001}, + {0x8234f436, 0xba86}, + {0x8234f437, 0xa9cd}, + {0x8234f438, 0x82f2}, + {0x8234f439, 0x98f0}, + {0x8234f530, 0x5508}, + {0x8234f531, 0x89a2}, + {0x8234f532, 0x78e4}, + {0x8234f533, 0x3c5d}, + {0x8234f534, 0x617c}, + {0x8234f535, 0xb3dc}, + {0x8234f536, 0x617d}, + {0x8234f537, 0x7f12}, + {0x8234f538, 0xb6e5}, + {0x8234f539, 0x745c}, + {0x8234f630, 0xb111}, + {0x8234f631, 0x3dee}, + {0x8234f632, 0x4f8c}, + {0x8234f633, 0x78f8}, + {0x8234f634, 0x5824}, + {0x8234f635, 0xaa2e}, + {0x8234f636, 0xa1f0}, + {0x8234f637, 0x48f5}, + {0x8234f638, 0x4e14}, + {0x8234f639, 0x615e}, + {0x8234f730, 0xb244}, + {0x8234f731, 0x75d5}, + {0x8234f732, 0x7f4e}, + {0x8234f733, 0x6005}, + {0x8234f734, 0x9626}, + {0x8234f735, 0x6634}, + {0x8234f736, 0xb628}, + {0x8234f737, 0xa2f2}, + {0x8234f738, 0xffff4d28}, + {0x8234f739, 0x8855}, + {0x8234f830, 0x7b49}, + {0x8234f831, 0x78e5}, + {0x8234f832, 0xb4f9}, + {0x8234f833, 0x429a}, + {0x8234f834, 0x9496}, + {0x8234f835, 0x5ffe}, + {0x8234f836, 0x9802}, + {0x8234f837, 0xa154}, + {0x8234f838, 0x8194}, + {0x8234f839, 0x60de}, + {0x8234f930, 0x9f54}, + {0x8234f931, 0x4145}, + {0x8234f932, 0x8728}, + {0x8234f933, 0x6371}, + {0x8234f934, 0x5600}, + {0x8234f935, 0x5cb0}, + {0x8234f936, 0x427a}, + {0x8234f937, 0x7501}, + {0x8234f938, 0x44d6}, + {0x8234f939, 0x87c5}, + {0x8234fa30, 0x4b8e}, + {0x8234fa31, 0x7f0a}, + {0x8234fa32, 0x9ba4}, + {0x8234fa33, 0x8cb5}, + {0x8234fa34, 0xc1a5}, + {0x8234fa35, 0x7126}, + {0x8234fa36, 0x5574}, + {0x8234fa37, 0x3c49}, + {0x8234fa38, 0x7f14}, + {0x8234fa39, 0xa930}, + {0x8234fb30, 0x7079}, + {0x8234fb31, 0xa029}, + {0x8234fb32, 0xa0ae}, + {0x8234fb33, 0xa3a0}, + {0x8234fb34, 0xa841}, + {0x8234fb35, 0xa115}, + {0x8234fb36, 0xa0b2}, + {0x8234fb37, 0x73d6}, + {0x8234fb38, 0x44c8}, + {0x8234fb39, 0x83b2}, + {0x8234fc30, 0x83b6}, + {0x8234fc31, 0x74ea}, + {0x8234fc32, 0x500a}, + {0x8234fc33, 0x6d22}, + {0x8234fc34, 0x8c55}, + {0x8234fc35, 0x420d}, + {0x8234fc36, 0x9426}, + {0x8234fc37, 0xbdf0}, + {0x8234fc38, 0x9db5}, + {0x8234fc39, 0x8c58}, + {0x8234fd30, 0x84f4}, + {0x8234fd31, 0xb4e2}, + {0x8234fd32, 0x8e2e}, + {0x8234fd33, 0x57cc}, + {0x8234fd34, 0x4e02}, + {0x8234fd35, 0x6759}, + {0x8234fd36, 0x7e96}, + {0x8234fd37, 0x4bed}, + {0x8234fd38, 0x6765}, + {0x8234fd39, 0xba6d}, + {0x8234fe30, 0xab64}, + {0x8234fe31, 0xbca9}, + {0x8234fe32, 0x7d98}, + {0x8234fe33, 0x7502}, + {0x8234fe34, 0x5c59}, + {0x8234fe35, 0xaead}, + {0x8234fe36, 0x9c08}, + {0x8234fe37, 0xbff6}, + {0x8234fe38, 0xb1aa}, + {0x8234fe39, 0xa130}, + {0x82358130, 0x94d9}, + {0x82358131, 0xa782}, + {0x82358132, 0x8ce5}, + {0x82358133, 0xa40a}, + {0x82358134, 0xb76a}, + {0x82358135, 0x48e6}, + {0x82358136, 0x8fa4}, + {0x82358137, 0xa1ca}, + {0x82358138, 0x4aec}, + {0x82358139, 0xc170}, + {0x82358230, 0x9fac}, + {0x82358231, 0x6345}, + {0x82358232, 0x94da}, + {0x82358233, 0x4288}, + {0x82358234, 0x5695}, + {0x82358235, 0x9f55}, + {0x82358236, 0x9c05}, + {0x82358237, 0x9c0d}, + {0x82358238, 0xc58a}, + {0x82358239, 0x5d36}, + {0x82358330, 0x88ea}, + {0x82358331, 0x5e94}, + {0x82358332, 0xc4f8}, + {0x82358333, 0xc399}, + {0x82358334, 0x4211}, + {0x82358335, 0x7959}, + {0x82358336, 0x856a}, + {0x82358337, 0xa694}, + {0x82358338, 0x8685}, + {0x82358339, 0x9e7d}, + {0x82358430, 0x5e30}, + {0x82358431, 0x9e81}, + {0x82358432, 0xa1f6}, + {0x82358433, 0x9e84}, + {0x82358434, 0x8a89}, + {0x82358435, 0x65d1}, + {0x82358436, 0x4738}, + {0x82358437, 0x3ca9}, + {0x82358438, 0x6ac5}, + {0x82358439, 0x8b44}, + {0x82358530, 0x760e}, + {0x82358531, 0x6d20}, + {0x82358532, 0x8fca}, + {0x82358533, 0x7266}, + {0x82358534, 0x5a8e}, + {0x82358535, 0xa7e0}, + {0x82358536, 0x8ab0}, + {0x82358537, 0xa950}, + {0x82358538, 0x6719}, + {0x82358539, 0x96e4}, + {0x82358630, 0x671a}, + {0x82358631, 0x3b50}, + {0x82358632, 0x60e6}, + {0x82358633, 0xbdf4}, + {0x82358634, 0xbd8c}, + {0x82358635, 0xb24e}, + {0x82358636, 0xbe99}, + {0x82358637, 0x6602}, + {0x82358638, 0x440c}, + {0x82358639, 0xb119}, + {0x82358730, 0x6710}, + {0x82358731, 0xffff4dad}, + {0x82358732, 0x7139}, + {0x82358733, 0x68a5}, + {0x82358734, 0xa002}, + {0x82358735, 0x90ce}, + {0x82358736, 0xbbad}, + {0x82358737, 0x4958}, + {0x82358738, 0x473a}, + {0x82358739, 0xffff4db6}, + {0x82358830, 0xffff4db7}, + {0x82358831, 0xffff4db8}, + {0x82358832, 0xffff4db9}, + {0x82358833, 0xffff4dba}, + {0x82358834, 0xffff4dbb}, + {0x82358835, 0xffff4dbc}, + {0x82358836, 0xffff4dbd}, + {0x82358837, 0xffff4dbe}, + {0x82358838, 0xffff4dbf}, + {0x82358839, 0xffff4dc0}, + {0x82358930, 0xffff4dc1}, + {0x82358931, 0xffff4dc2}, + {0x82358932, 0xffff4dc3}, + {0x82358933, 0xffff4dc4}, + {0x82358934, 0xffff4dc5}, + {0x82358935, 0xffff4dc6}, + {0x82358936, 0xffff4dc7}, + {0x82358937, 0xffff4dc8}, + {0x82358938, 0xffff4dc9}, + {0x82358939, 0xffff4dca}, + {0x82358a30, 0xffff4dcb}, + {0x82358a31, 0xffff4dcc}, + {0x82358a32, 0xffff4dcd}, + {0x82358a33, 0xffff4dce}, + {0x82358a34, 0xffff4dcf}, + {0x82358a35, 0xffff4dd0}, + {0x82358a36, 0xffff4dd1}, + {0x82358a37, 0xffff4dd2}, + {0x82358a38, 0xffff4dd3}, + {0x82358a39, 0xffff4dd4}, + {0x82358b30, 0xffff4dd5}, + {0x82358b31, 0xffff4dd6}, + {0x82358b32, 0xffff4dd7}, + {0x82358b33, 0xffff4dd8}, + {0x82358b34, 0xffff4dd9}, + {0x82358b35, 0xffff4dda}, + {0x82358b36, 0xffff4ddb}, + {0x82358b37, 0xffff4ddc}, + {0x82358b38, 0xffff4ddd}, + {0x82358b39, 0xffff4dde}, + {0x82358c30, 0xffff4ddf}, + {0x82358c31, 0xffff4de0}, + {0x82358c32, 0xffff4de1}, + {0x82358c33, 0xffff4de2}, + {0x82358c34, 0xffff4de3}, + {0x82358c35, 0xffff4de4}, + {0x82358c36, 0xffff4de5}, + {0x82358c37, 0xffff4de6}, + {0x82358c38, 0xffff4de7}, + {0x82358c39, 0xffff4de8}, + {0x82358d30, 0xffff4de9}, + {0x82358d31, 0xffff4dea}, + {0x82358d32, 0xffff4deb}, + {0x82358d33, 0xffff4dec}, + {0x82358d34, 0xffff4ded}, + {0x82358d35, 0xffff4dee}, + {0x82358d36, 0xffff4def}, + {0x82358d37, 0xffff4df0}, + {0x82358d38, 0xffff4df1}, + {0x82358d39, 0xffff4df2}, + {0x82358e30, 0xffff4df3}, + {0x82358e31, 0xffff4df4}, + {0x82358e32, 0xffff4df5}, + {0x82358e33, 0xffff4df6}, + {0x82358e34, 0xffff4df7}, + {0x82358e35, 0xffff4df8}, + {0x82358e36, 0xffff4df9}, + {0x82358e37, 0xffff4dfa}, + {0x82358e38, 0xffff4dfb}, + {0x82358e39, 0xffff4dfc}, + {0x82358f30, 0xffff4dfd}, + {0x82358f31, 0xffff4dfe}, + {0x82358f32, 0xffff4dff}, + {0x82358f33, 0xffff9fa6}, + {0x82358f34, 0xffff9fa7}, + {0x82358f35, 0xffff9fa8}, + {0x82358f36, 0xffff9fa9}, + {0x82358f37, 0xffff9faa}, + {0x82358f38, 0xffff9fab}, + {0x82358f39, 0xffff9fac}, + {0x82359030, 0xffff9fad}, + {0x82359031, 0xffff9fae}, + {0x82359032, 0xffff9faf}, + {0x82359033, 0xffff9fb0}, + {0x82359034, 0xffff9fb1}, + {0x82359035, 0xffff9fb2}, + {0x82359036, 0xffff9fb3}, + {0x82359037, 0xffff9fb4}, + {0x82359038, 0xffff9fb5}, + {0x82359039, 0xffff9fb6}, + {0x82359130, 0xffff9fb7}, + {0x82359131, 0xffff9fb8}, + {0x82359132, 0xffff9fb9}, + {0x82359133, 0xffff9fba}, + {0x82359134, 0xffff9fbb}, + {0x82359135, 0xffff9fbc}, + {0x82359136, 0xffff9fbd}, + {0x82359137, 0xffff9fbe}, + {0x82359138, 0xffff9fbf}, + {0x82359139, 0xffff9fc0}, + {0x82359230, 0xffff9fc1}, + {0x82359231, 0xffff9fc2}, + {0x82359232, 0xffff9fc3}, + {0x82359233, 0xffff9fc4}, + {0x82359234, 0xffff9fc5}, + {0x82359235, 0xffff9fc6}, + {0x82359236, 0xffff9fc7}, + {0x82359237, 0xffff9fc8}, + {0x82359238, 0xffff9fc9}, + {0x82359239, 0xffff9fca}, + {0x82359330, 0xffff9fcb}, + {0x82359331, 0xffff9fcc}, + {0x82359332, 0xffff9fcd}, + {0x82359333, 0xffff9fce}, + {0x82359334, 0xffff9fcf}, + {0x82359335, 0xffff9fd0}, + {0x82359336, 0xffff9fd1}, + {0x82359337, 0xffff9fd2}, + {0x82359338, 0xffff9fd3}, + {0x82359339, 0xffff9fd4}, + {0x82359430, 0xffff9fd5}, + {0x82359431, 0xffff9fd6}, + {0x82359432, 0xffff9fd7}, + {0x82359433, 0xffff9fd8}, + {0x82359434, 0xffff9fd9}, + {0x82359435, 0xffff9fda}, + {0x82359436, 0xffff9fdb}, + {0x82359437, 0xffff9fdc}, + {0x82359438, 0xffff9fdd}, + {0x82359439, 0xffff9fde}, + {0x82359530, 0xffff9fdf}, + {0x82359531, 0xffff9fe0}, + {0x82359532, 0xffff9fe1}, + {0x82359533, 0xffff9fe2}, + {0x82359534, 0xffff9fe3}, + {0x82359535, 0xffff9fe4}, + {0x82359536, 0xffff9fe5}, + {0x82359537, 0xffff9fe6}, + {0x82359538, 0xffff9fe7}, + {0x82359539, 0xffff9fe8}, + {0x82359630, 0xffff9fe9}, + {0x82359631, 0xffff9fea}, + {0x82359632, 0xffff9feb}, + {0x82359633, 0xffff9fec}, + {0x82359634, 0xffff9fed}, + {0x82359635, 0xffff9fee}, + {0x82359636, 0xffff9fef}, + {0x82359637, 0xffff9ff0}, + {0x82359638, 0xffff9ff1}, + {0x82359639, 0xffff9ff2}, + {0x82359730, 0xffff9ff3}, + {0x82359731, 0xffff9ff4}, + {0x82359732, 0xffff9ff5}, + {0x82359733, 0xffff9ff6}, + {0x82359734, 0xffff9ff7}, + {0x82359735, 0xffff9ff8}, + {0x82359736, 0xffff9ff9}, + {0x82359737, 0xffff9ffa}, + {0x82359738, 0xffff9ffb}, + {0x82359739, 0xffff9ffc}, + {0x82359830, 0xffff9ffd}, + {0x82359831, 0xffff9ffe}, + {0x82359832, 0xffff9fff}, + {0x82359833, 0xffffa000}, + {0x82359834, 0xffffa001}, + {0x82359835, 0xffffa002}, + {0x82359836, 0xffffa003}, + {0x82359837, 0xffffa004}, + {0x82359838, 0xffffa005}, + {0x82359839, 0xffffa006}, + {0x82359930, 0xffffa007}, + {0x82359931, 0xffffa008}, + {0x82359932, 0xffffa009}, + {0x82359933, 0xffffa00a}, + {0x82359934, 0xffffa00b}, + {0x82359935, 0xffffa00c}, + {0x82359936, 0xffffa00d}, + {0x82359937, 0xffffa00e}, + {0x82359938, 0xffffa00f}, + {0x82359939, 0xffffa010}, + {0x82359a30, 0xffffa011}, + {0x82359a31, 0xffffa012}, + {0x82359a32, 0xffffa013}, + {0x82359a33, 0xffffa014}, + {0x82359a34, 0xffffa015}, + {0x82359a35, 0xffffa016}, + {0x82359a36, 0xffffa017}, + {0x82359a37, 0xffffa018}, + {0x82359a38, 0xffffa019}, + {0x82359a39, 0xffffa01a}, + {0x82359b30, 0xffffa01b}, + {0x82359b31, 0xffffa01c}, + {0x82359b32, 0xffffa01d}, + {0x82359b33, 0xffffa01e}, + {0x82359b34, 0xffffa01f}, + {0x82359b35, 0xffffa020}, + {0x82359b36, 0xffffa021}, + {0x82359b37, 0xffffa022}, + {0x82359b38, 0xffffa023}, + {0x82359b39, 0xffffa024}, + {0x82359c30, 0xffffa025}, + {0x82359c31, 0xffffa026}, + {0x82359c32, 0xffffa027}, + {0x82359c33, 0xffffa028}, + {0x82359c34, 0xffffa029}, + {0x82359c35, 0xffffa02a}, + {0x82359c36, 0xffffa02b}, + {0x82359c37, 0xffffa02c}, + {0x82359c38, 0xffffa02d}, + {0x82359c39, 0xffffa02e}, + {0x82359d30, 0xffffa02f}, + {0x82359d31, 0xffffa030}, + {0x82359d32, 0xffffa031}, + {0x82359d33, 0xffffa032}, + {0x82359d34, 0xffffa033}, + {0x82359d35, 0xffffa034}, + {0x82359d36, 0xffffa035}, + {0x82359d37, 0xffffa036}, + {0x82359d38, 0xffffa037}, + {0x82359d39, 0xffffa038}, + {0x82359e30, 0xffffa039}, + {0x82359e31, 0xffffa03a}, + {0x82359e32, 0xffffa03b}, + {0x82359e33, 0xffffa03c}, + {0x82359e34, 0xffffa03d}, + {0x82359e35, 0xffffa03e}, + {0x82359e36, 0xffffa03f}, + {0x82359e37, 0xffffa040}, + {0x82359e38, 0xffffa041}, + {0x82359e39, 0xffffa042}, + {0x82359f30, 0xffffa043}, + {0x82359f31, 0xffffa044}, + {0x82359f32, 0xffffa045}, + {0x82359f33, 0xffffa046}, + {0x82359f34, 0xffffa047}, + {0x82359f35, 0xffffa048}, + {0x82359f36, 0xffffa049}, + {0x82359f37, 0xffffa04a}, + {0x82359f38, 0xffffa04b}, + {0x82359f39, 0xffffa04c}, + {0x8235a030, 0xffffa04d}, + {0x8235a031, 0xffffa04e}, + {0x8235a032, 0xffffa04f}, + {0x8235a033, 0xffffa050}, + {0x8235a034, 0xffffa051}, + {0x8235a035, 0xffffa052}, + {0x8235a036, 0xffffa053}, + {0x8235a037, 0xffffa054}, + {0x8235a038, 0xffffa055}, + {0x8235a039, 0xffffa056}, + {0x8235a130, 0xffffa057}, + {0x8235a131, 0xffffa058}, + {0x8235a132, 0xffffa059}, + {0x8235a133, 0xffffa05a}, + {0x8235a134, 0xffffa05b}, + {0x8235a135, 0xffffa05c}, + {0x8235a136, 0xffffa05d}, + {0x8235a137, 0xffffa05e}, + {0x8235a138, 0xffffa05f}, + {0x8235a139, 0xffffa060}, + {0x8235a230, 0xffffa061}, + {0x8235a231, 0xffffa062}, + {0x8235a232, 0xffffa063}, + {0x8235a233, 0xffffa064}, + {0x8235a234, 0xffffa065}, + {0x8235a235, 0xffffa066}, + {0x8235a236, 0xffffa067}, + {0x8235a237, 0xffffa068}, + {0x8235a238, 0xffffa069}, + {0x8235a239, 0xffffa06a}, + {0x8235a330, 0xffffa06b}, + {0x8235a331, 0xffffa06c}, + {0x8235a332, 0xffffa06d}, + {0x8235a333, 0xffffa06e}, + {0x8235a334, 0xffffa06f}, + {0x8235a335, 0xffffa070}, + {0x8235a336, 0xffffa071}, + {0x8235a337, 0xffffa072}, + {0x8235a338, 0xffffa073}, + {0x8235a339, 0xffffa074}, + {0x8235a430, 0xffffa075}, + {0x8235a431, 0xffffa076}, + {0x8235a432, 0xffffa077}, + {0x8235a433, 0xffffa078}, + {0x8235a434, 0xffffa079}, + {0x8235a435, 0xffffa07a}, + {0x8235a436, 0xffffa07b}, + {0x8235a437, 0xffffa07c}, + {0x8235a438, 0xffffa07d}, + {0x8235a439, 0xffffa07e}, + {0x8235a530, 0xffffa07f}, + {0x8235a531, 0xffffa080}, + {0x8235a532, 0xffffa081}, + {0x8235a533, 0xffffa082}, + {0x8235a534, 0xffffa083}, + {0x8235a535, 0xffffa084}, + {0x8235a536, 0xffffa085}, + {0x8235a537, 0xffffa086}, + {0x8235a538, 0xffffa087}, + {0x8235a539, 0xffffa088}, + {0x8235a630, 0xffffa089}, + {0x8235a631, 0xffffa08a}, + {0x8235a632, 0xffffa08b}, + {0x8235a633, 0xffffa08c}, + {0x8235a634, 0xffffa08d}, + {0x8235a635, 0xffffa08e}, + {0x8235a636, 0xffffa08f}, + {0x8235a637, 0xffffa090}, + {0x8235a638, 0xffffa091}, + {0x8235a639, 0xffffa092}, + {0x8235a730, 0xffffa093}, + {0x8235a731, 0xffffa094}, + {0x8235a732, 0xffffa095}, + {0x8235a733, 0xffffa096}, + {0x8235a734, 0xffffa097}, + {0x8235a735, 0xffffa098}, + {0x8235a736, 0xffffa099}, + {0x8235a737, 0xffffa09a}, + {0x8235a738, 0xffffa09b}, + {0x8235a739, 0xffffa09c}, + {0x8235a830, 0xffffa09d}, + {0x8235a831, 0xffffa09e}, + {0x8235a832, 0xffffa09f}, + {0x8235a833, 0xffffa0a0}, + {0x8235a834, 0xffffa0a1}, + {0x8235a835, 0xffffa0a2}, + {0x8235a836, 0xffffa0a3}, + {0x8235a837, 0xffffa0a4}, + {0x8235a838, 0xffffa0a5}, + {0x8235a839, 0xffffa0a6}, + {0x8235a930, 0xffffa0a7}, + {0x8235a931, 0xffffa0a8}, + {0x8235a932, 0xffffa0a9}, + {0x8235a933, 0xffffa0aa}, + {0x8235a934, 0xffffa0ab}, + {0x8235a935, 0xffffa0ac}, + {0x8235a936, 0xffffa0ad}, + {0x8235a937, 0xffffa0ae}, + {0x8235a938, 0xffffa0af}, + {0x8235a939, 0xffffa0b0}, + {0x8235aa30, 0xffffa0b1}, + {0x8235aa31, 0xffffa0b2}, + {0x8235aa32, 0xffffa0b3}, + {0x8235aa33, 0xffffa0b4}, + {0x8235aa34, 0xffffa0b5}, + {0x8235aa35, 0xffffa0b6}, + {0x8235aa36, 0xffffa0b7}, + {0x8235aa37, 0xffffa0b8}, + {0x8235aa38, 0xffffa0b9}, + {0x8235aa39, 0xffffa0ba}, + {0x8235ab30, 0xffffa0bb}, + {0x8235ab31, 0xffffa0bc}, + {0x8235ab32, 0xffffa0bd}, + {0x8235ab33, 0xffffa0be}, + {0x8235ab34, 0xffffa0bf}, + {0x8235ab35, 0xffffa0c0}, + {0x8235ab36, 0xffffa0c1}, + {0x8235ab37, 0xffffa0c2}, + {0x8235ab38, 0xffffa0c3}, + {0x8235ab39, 0xffffa0c4}, + {0x8235ac30, 0xffffa0c5}, + {0x8235ac31, 0xffffa0c6}, + {0x8235ac32, 0xffffa0c7}, + {0x8235ac33, 0xffffa0c8}, + {0x8235ac34, 0xffffa0c9}, + {0x8235ac35, 0xffffa0ca}, + {0x8235ac36, 0xffffa0cb}, + {0x8235ac37, 0xffffa0cc}, + {0x8235ac38, 0xffffa0cd}, + {0x8235ac39, 0xffffa0ce}, + {0x8235ad30, 0xffffa0cf}, + {0x8235ad31, 0xffffa0d0}, + {0x8235ad32, 0xffffa0d1}, + {0x8235ad33, 0xffffa0d2}, + {0x8235ad34, 0xffffa0d3}, + {0x8235ad35, 0xffffa0d4}, + {0x8235ad36, 0xffffa0d5}, + {0x8235ad37, 0xffffa0d6}, + {0x8235ad38, 0xffffa0d7}, + {0x8235ad39, 0xffffa0d8}, + {0x8235ae30, 0xffffa0d9}, + {0x8235ae31, 0xffffa0da}, + {0x8235ae32, 0xffffa0db}, + {0x8235ae33, 0xffffa0dc}, + {0x8235ae34, 0xffffa0dd}, + {0x8235ae35, 0xffffa0de}, + {0x8235ae36, 0xffffa0df}, + {0x8235ae37, 0xffffa0e0}, + {0x8235ae38, 0xffffa0e1}, + {0x8235ae39, 0xffffa0e2}, + {0x8235af30, 0xffffa0e3}, + {0x8235af31, 0xffffa0e4}, + {0x8235af32, 0xffffa0e5}, + {0x8235af33, 0xffffa0e6}, + {0x8235af34, 0xffffa0e7}, + {0x8235af35, 0xffffa0e8}, + {0x8235af36, 0xffffa0e9}, + {0x8235af37, 0xffffa0ea}, + {0x8235af38, 0xffffa0eb}, + {0x8235af39, 0xffffa0ec}, + {0x8235b030, 0xffffa0ed}, + {0x8235b031, 0xffffa0ee}, + {0x8235b032, 0xffffa0ef}, + {0x8235b033, 0xffffa0f0}, + {0x8235b034, 0xffffa0f1}, + {0x8235b035, 0xffffa0f2}, + {0x8235b036, 0xffffa0f3}, + {0x8235b037, 0xffffa0f4}, + {0x8235b038, 0xffffa0f5}, + {0x8235b039, 0xffffa0f6}, + {0x8235b130, 0xffffa0f7}, + {0x8235b131, 0xffffa0f8}, + {0x8235b132, 0xffffa0f9}, + {0x8235b133, 0xffffa0fa}, + {0x8235b134, 0xffffa0fb}, + {0x8235b135, 0xffffa0fc}, + {0x8235b136, 0xffffa0fd}, + {0x8235b137, 0xffffa0fe}, + {0x8235b138, 0xffffa0ff}, + {0x8235b139, 0xffffa100}, + {0x8235b230, 0xffffa101}, + {0x8235b231, 0xffffa102}, + {0x8235b232, 0xffffa103}, + {0x8235b233, 0xffffa104}, + {0x8235b234, 0xffffa105}, + {0x8235b235, 0xffffa106}, + {0x8235b236, 0xffffa107}, + {0x8235b237, 0xffffa108}, + {0x8235b238, 0xffffa109}, + {0x8235b239, 0xffffa10a}, + {0x8235b330, 0xffffa10b}, + {0x8235b331, 0xffffa10c}, + {0x8235b332, 0xffffa10d}, + {0x8235b333, 0xffffa10e}, + {0x8235b334, 0xffffa10f}, + {0x8235b335, 0xffffa110}, + {0x8235b336, 0xffffa111}, + {0x8235b337, 0xffffa112}, + {0x8235b338, 0xffffa113}, + {0x8235b339, 0xffffa114}, + {0x8235b430, 0xffffa115}, + {0x8235b431, 0xffffa116}, + {0x8235b432, 0xffffa117}, + {0x8235b433, 0xffffa118}, + {0x8235b434, 0xffffa119}, + {0x8235b435, 0xffffa11a}, + {0x8235b436, 0xffffa11b}, + {0x8235b437, 0xffffa11c}, + {0x8235b438, 0xffffa11d}, + {0x8235b439, 0xffffa11e}, + {0x8235b530, 0xffffa11f}, + {0x8235b531, 0xffffa120}, + {0x8235b532, 0xffffa121}, + {0x8235b533, 0xffffa122}, + {0x8235b534, 0xffffa123}, + {0x8235b535, 0xffffa124}, + {0x8235b536, 0xffffa125}, + {0x8235b537, 0xffffa126}, + {0x8235b538, 0xffffa127}, + {0x8235b539, 0xffffa128}, + {0x8235b630, 0xffffa129}, + {0x8235b631, 0xffffa12a}, + {0x8235b632, 0xffffa12b}, + {0x8235b633, 0xffffa12c}, + {0x8235b634, 0xffffa12d}, + {0x8235b635, 0xffffa12e}, + {0x8235b636, 0xffffa12f}, + {0x8235b637, 0xffffa130}, + {0x8235b638, 0xffffa131}, + {0x8235b639, 0xffffa132}, + {0x8235b730, 0xffffa133}, + {0x8235b731, 0xffffa134}, + {0x8235b732, 0xffffa135}, + {0x8235b733, 0xffffa136}, + {0x8235b734, 0xffffa137}, + {0x8235b735, 0xffffa138}, + {0x8235b736, 0xffffa139}, + {0x8235b737, 0xffffa13a}, + {0x8235b738, 0xffffa13b}, + {0x8235b739, 0xffffa13c}, + {0x8235b830, 0xffffa13d}, + {0x8235b831, 0xffffa13e}, + {0x8235b832, 0xffffa13f}, + {0x8235b833, 0xffffa140}, + {0x8235b834, 0xffffa141}, + {0x8235b835, 0xffffa142}, + {0x8235b836, 0xffffa143}, + {0x8235b837, 0xffffa144}, + {0x8235b838, 0xffffa145}, + {0x8235b839, 0xffffa146}, + {0x8235b930, 0xffffa147}, + {0x8235b931, 0xffffa148}, + {0x8235b932, 0xffffa149}, + {0x8235b933, 0xffffa14a}, + {0x8235b934, 0xffffa14b}, + {0x8235b935, 0xffffa14c}, + {0x8235b936, 0xffffa14d}, + {0x8235b937, 0xffffa14e}, + {0x8235b938, 0xffffa14f}, + {0x8235b939, 0xffffa150}, + {0x8235ba30, 0xffffa151}, + {0x8235ba31, 0xffffa152}, + {0x8235ba32, 0xffffa153}, + {0x8235ba33, 0xffffa154}, + {0x8235ba34, 0xffffa155}, + {0x8235ba35, 0xffffa156}, + {0x8235ba36, 0xffffa157}, + {0x8235ba37, 0xffffa158}, + {0x8235ba38, 0xffffa159}, + {0x8235ba39, 0xffffa15a}, + {0x8235bb30, 0xffffa15b}, + {0x8235bb31, 0xffffa15c}, + {0x8235bb32, 0xffffa15d}, + {0x8235bb33, 0xffffa15e}, + {0x8235bb34, 0xffffa15f}, + {0x8235bb35, 0xffffa160}, + {0x8235bb36, 0xffffa161}, + {0x8235bb37, 0xffffa162}, + {0x8235bb38, 0xffffa163}, + {0x8235bb39, 0xffffa164}, + {0x8235bc30, 0xffffa165}, + {0x8235bc31, 0xffffa166}, + {0x8235bc32, 0xffffa167}, + {0x8235bc33, 0xffffa168}, + {0x8235bc34, 0xffffa169}, + {0x8235bc35, 0xffffa16a}, + {0x8235bc36, 0xffffa16b}, + {0x8235bc37, 0xffffa16c}, + {0x8235bc38, 0xffffa16d}, + {0x8235bc39, 0xffffa16e}, + {0x8235bd30, 0xffffa16f}, + {0x8235bd31, 0xffffa170}, + {0x8235bd32, 0xffffa171}, + {0x8235bd33, 0xffffa172}, + {0x8235bd34, 0xffffa173}, + {0x8235bd35, 0xffffa174}, + {0x8235bd36, 0xffffa175}, + {0x8235bd37, 0xffffa176}, + {0x8235bd38, 0xffffa177}, + {0x8235bd39, 0xffffa178}, + {0x8235be30, 0xffffa179}, + {0x8235be31, 0xffffa17a}, + {0x8235be32, 0xffffa17b}, + {0x8235be33, 0xffffa17c}, + {0x8235be34, 0xffffa17d}, + {0x8235be35, 0xffffa17e}, + {0x8235be36, 0xffffa17f}, + {0x8235be37, 0xffffa180}, + {0x8235be38, 0xffffa181}, + {0x8235be39, 0xffffa182}, + {0x8235bf30, 0xffffa183}, + {0x8235bf31, 0xffffa184}, + {0x8235bf32, 0xffffa185}, + {0x8235bf33, 0xffffa186}, + {0x8235bf34, 0xffffa187}, + {0x8235bf35, 0xffffa188}, + {0x8235bf36, 0xffffa189}, + {0x8235bf37, 0xffffa18a}, + {0x8235bf38, 0xffffa18b}, + {0x8235bf39, 0xffffa18c}, + {0x8235c030, 0xffffa18d}, + {0x8235c031, 0xffffa18e}, + {0x8235c032, 0xffffa18f}, + {0x8235c033, 0xffffa190}, + {0x8235c034, 0xffffa191}, + {0x8235c035, 0xffffa192}, + {0x8235c036, 0xffffa193}, + {0x8235c037, 0xffffa194}, + {0x8235c038, 0xffffa195}, + {0x8235c039, 0xffffa196}, + {0x8235c130, 0xffffa197}, + {0x8235c131, 0xffffa198}, + {0x8235c132, 0xffffa199}, + {0x8235c133, 0xffffa19a}, + {0x8235c134, 0xffffa19b}, + {0x8235c135, 0xffffa19c}, + {0x8235c136, 0xffffa19d}, + {0x8235c137, 0xffffa19e}, + {0x8235c138, 0xffffa19f}, + {0x8235c139, 0xffffa1a0}, + {0x8235c230, 0xffffa1a1}, + {0x8235c231, 0xffffa1a2}, + {0x8235c232, 0xffffa1a3}, + {0x8235c233, 0xffffa1a4}, + {0x8235c234, 0xffffa1a5}, + {0x8235c235, 0xffffa1a6}, + {0x8235c236, 0xffffa1a7}, + {0x8235c237, 0xffffa1a8}, + {0x8235c238, 0xffffa1a9}, + {0x8235c239, 0xffffa1aa}, + {0x8235c330, 0xffffa1ab}, + {0x8235c331, 0xffffa1ac}, + {0x8235c332, 0xffffa1ad}, + {0x8235c333, 0xffffa1ae}, + {0x8235c334, 0xffffa1af}, + {0x8235c335, 0xffffa1b0}, + {0x8235c336, 0xffffa1b1}, + {0x8235c337, 0xffffa1b2}, + {0x8235c338, 0xffffa1b3}, + {0x8235c339, 0xffffa1b4}, + {0x8235c430, 0xffffa1b5}, + {0x8235c431, 0xffffa1b6}, + {0x8235c432, 0xffffa1b7}, + {0x8235c433, 0xffffa1b8}, + {0x8235c434, 0xffffa1b9}, + {0x8235c435, 0xffffa1ba}, + {0x8235c436, 0xffffa1bb}, + {0x8235c437, 0xffffa1bc}, + {0x8235c438, 0xffffa1bd}, + {0x8235c439, 0xffffa1be}, + {0x8235c530, 0xffffa1bf}, + {0x8235c531, 0xffffa1c0}, + {0x8235c532, 0xffffa1c1}, + {0x8235c533, 0xffffa1c2}, + {0x8235c534, 0xffffa1c3}, + {0x8235c535, 0xffffa1c4}, + {0x8235c536, 0xffffa1c5}, + {0x8235c537, 0xffffa1c6}, + {0x8235c538, 0xffffa1c7}, + {0x8235c539, 0xffffa1c8}, + {0x8235c630, 0xffffa1c9}, + {0x8235c631, 0xffffa1ca}, + {0x8235c632, 0xffffa1cb}, + {0x8235c633, 0xffffa1cc}, + {0x8235c634, 0xffffa1cd}, + {0x8235c635, 0xffffa1ce}, + {0x8235c636, 0xffffa1cf}, + {0x8235c637, 0xffffa1d0}, + {0x8235c638, 0xffffa1d1}, + {0x8235c639, 0xffffa1d2}, + {0x8235c730, 0xffffa1d3}, + {0x8235c731, 0xffffa1d4}, + {0x8235c732, 0xffffa1d5}, + {0x8235c733, 0xffffa1d6}, + {0x8235c734, 0xffffa1d7}, + {0x8235c735, 0xffffa1d8}, + {0x8235c736, 0xffffa1d9}, + {0x8235c737, 0xffffa1da}, + {0x8235c738, 0xffffa1db}, + {0x8235c739, 0xffffa1dc}, + {0x8235c830, 0xffffa1dd}, + {0x8235c831, 0xffffa1de}, + {0x8235c832, 0xffffa1df}, + {0x8235c833, 0xffffa1e0}, + {0x8235c834, 0xffffa1e1}, + {0x8235c835, 0xffffa1e2}, + {0x8235c836, 0xffffa1e3}, + {0x8235c837, 0xffffa1e4}, + {0x8235c838, 0xffffa1e5}, + {0x8235c839, 0xffffa1e6}, + {0x8235c930, 0xffffa1e7}, + {0x8235c931, 0xffffa1e8}, + {0x8235c932, 0xffffa1e9}, + {0x8235c933, 0xffffa1ea}, + {0x8235c934, 0xffffa1eb}, + {0x8235c935, 0xffffa1ec}, + {0x8235c936, 0xffffa1ed}, + {0x8235c937, 0xffffa1ee}, + {0x8235c938, 0xffffa1ef}, + {0x8235c939, 0xffffa1f0}, + {0x8235ca30, 0xffffa1f1}, + {0x8235ca31, 0xffffa1f2}, + {0x8235ca32, 0xffffa1f3}, + {0x8235ca33, 0xffffa1f4}, + {0x8235ca34, 0xffffa1f5}, + {0x8235ca35, 0xffffa1f6}, + {0x8235ca36, 0xffffa1f7}, + {0x8235ca37, 0xffffa1f8}, + {0x8235ca38, 0xffffa1f9}, + {0x8235ca39, 0xffffa1fa}, + {0x8235cb30, 0xffffa1fb}, + {0x8235cb31, 0xffffa1fc}, + {0x8235cb32, 0xffffa1fd}, + {0x8235cb33, 0xffffa1fe}, + {0x8235cb34, 0xffffa1ff}, + {0x8235cb35, 0xffffa200}, + {0x8235cb36, 0xffffa201}, + {0x8235cb37, 0xffffa202}, + {0x8235cb38, 0xffffa203}, + {0x8235cb39, 0xffffa204}, + {0x8235cc30, 0xffffa205}, + {0x8235cc31, 0xffffa206}, + {0x8235cc32, 0xffffa207}, + {0x8235cc33, 0xffffa208}, + {0x8235cc34, 0xffffa209}, + {0x8235cc35, 0xffffa20a}, + {0x8235cc36, 0xffffa20b}, + {0x8235cc37, 0xffffa20c}, + {0x8235cc38, 0xffffa20d}, + {0x8235cc39, 0xffffa20e}, + {0x8235cd30, 0xffffa20f}, + {0x8235cd31, 0xffffa210}, + {0x8235cd32, 0xffffa211}, + {0x8235cd33, 0xffffa212}, + {0x8235cd34, 0xffffa213}, + {0x8235cd35, 0xffffa214}, + {0x8235cd36, 0xffffa215}, + {0x8235cd37, 0xffffa216}, + {0x8235cd38, 0xffffa217}, + {0x8235cd39, 0xffffa218}, + {0x8235ce30, 0xffffa219}, + {0x8235ce31, 0xffffa21a}, + {0x8235ce32, 0xffffa21b}, + {0x8235ce33, 0xffffa21c}, + {0x8235ce34, 0xffffa21d}, + {0x8235ce35, 0xffffa21e}, + {0x8235ce36, 0xffffa21f}, + {0x8235ce37, 0xffffa220}, + {0x8235ce38, 0xffffa221}, + {0x8235ce39, 0xffffa222}, + {0x8235cf30, 0xffffa223}, + {0x8235cf31, 0xffffa224}, + {0x8235cf32, 0xffffa225}, + {0x8235cf33, 0xffffa226}, + {0x8235cf34, 0xffffa227}, + {0x8235cf35, 0xffffa228}, + {0x8235cf36, 0xffffa229}, + {0x8235cf37, 0xffffa22a}, + {0x8235cf38, 0xffffa22b}, + {0x8235cf39, 0xffffa22c}, + {0x8235d030, 0xffffa22d}, + {0x8235d031, 0xffffa22e}, + {0x8235d032, 0xffffa22f}, + {0x8235d033, 0xffffa230}, + {0x8235d034, 0xffffa231}, + {0x8235d035, 0xffffa232}, + {0x8235d036, 0xffffa233}, + {0x8235d037, 0xffffa234}, + {0x8235d038, 0xffffa235}, + {0x8235d039, 0xffffa236}, + {0x8235d130, 0xffffa237}, + {0x8235d131, 0xffffa238}, + {0x8235d132, 0xffffa239}, + {0x8235d133, 0xffffa23a}, + {0x8235d134, 0xffffa23b}, + {0x8235d135, 0xffffa23c}, + {0x8235d136, 0xffffa23d}, + {0x8235d137, 0xffffa23e}, + {0x8235d138, 0xffffa23f}, + {0x8235d139, 0xffffa240}, + {0x8235d230, 0xffffa241}, + {0x8235d231, 0xffffa242}, + {0x8235d232, 0xffffa243}, + {0x8235d233, 0xffffa244}, + {0x8235d234, 0xffffa245}, + {0x8235d235, 0xffffa246}, + {0x8235d236, 0xffffa247}, + {0x8235d237, 0xffffa248}, + {0x8235d238, 0xffffa249}, + {0x8235d239, 0xffffa24a}, + {0x8235d330, 0xffffa24b}, + {0x8235d331, 0xffffa24c}, + {0x8235d332, 0xffffa24d}, + {0x8235d333, 0xffffa24e}, + {0x8235d334, 0xffffa24f}, + {0x8235d335, 0xffffa250}, + {0x8235d336, 0xffffa251}, + {0x8235d337, 0xffffa252}, + {0x8235d338, 0xffffa253}, + {0x8235d339, 0xffffa254}, + {0x8235d430, 0xffffa255}, + {0x8235d431, 0xffffa256}, + {0x8235d432, 0xffffa257}, + {0x8235d433, 0xffffa258}, + {0x8235d434, 0xffffa259}, + {0x8235d435, 0xffffa25a}, + {0x8235d436, 0xffffa25b}, + {0x8235d437, 0xffffa25c}, + {0x8235d438, 0xffffa25d}, + {0x8235d439, 0xffffa25e}, + {0x8235d530, 0xffffa25f}, + {0x8235d531, 0xffffa260}, + {0x8235d532, 0xffffa261}, + {0x8235d533, 0xffffa262}, + {0x8235d534, 0xffffa263}, + {0x8235d535, 0xffffa264}, + {0x8235d536, 0xffffa265}, + {0x8235d537, 0xffffa266}, + {0x8235d538, 0xffffa267}, + {0x8235d539, 0xffffa268}, + {0x8235d630, 0xffffa269}, + {0x8235d631, 0xffffa26a}, + {0x8235d632, 0xffffa26b}, + {0x8235d633, 0xffffa26c}, + {0x8235d634, 0xffffa26d}, + {0x8235d635, 0xffffa26e}, + {0x8235d636, 0xffffa26f}, + {0x8235d637, 0xffffa270}, + {0x8235d638, 0xffffa271}, + {0x8235d639, 0xffffa272}, + {0x8235d730, 0xffffa273}, + {0x8235d731, 0xffffa274}, + {0x8235d732, 0xffffa275}, + {0x8235d733, 0xffffa276}, + {0x8235d734, 0xffffa277}, + {0x8235d735, 0xffffa278}, + {0x8235d736, 0xffffa279}, + {0x8235d737, 0xffffa27a}, + {0x8235d738, 0xffffa27b}, + {0x8235d739, 0xffffa27c}, + {0x8235d830, 0xffffa27d}, + {0x8235d831, 0xffffa27e}, + {0x8235d832, 0xffffa27f}, + {0x8235d833, 0xffffa280}, + {0x8235d834, 0xffffa281}, + {0x8235d835, 0xffffa282}, + {0x8235d836, 0xffffa283}, + {0x8235d837, 0xffffa284}, + {0x8235d838, 0xffffa285}, + {0x8235d839, 0xffffa286}, + {0x8235d930, 0xffffa287}, + {0x8235d931, 0xffffa288}, + {0x8235d932, 0xffffa289}, + {0x8235d933, 0xffffa28a}, + {0x8235d934, 0xffffa28b}, + {0x8235d935, 0xffffa28c}, + {0x8235d936, 0xffffa28d}, + {0x8235d937, 0xffffa28e}, + {0x8235d938, 0xffffa28f}, + {0x8235d939, 0xffffa290}, + {0x8235da30, 0xffffa291}, + {0x8235da31, 0xffffa292}, + {0x8235da32, 0xffffa293}, + {0x8235da33, 0xffffa294}, + {0x8235da34, 0xffffa295}, + {0x8235da35, 0xffffa296}, + {0x8235da36, 0xffffa297}, + {0x8235da37, 0xffffa298}, + {0x8235da38, 0xffffa299}, + {0x8235da39, 0xffffa29a}, + {0x8235db30, 0xffffa29b}, + {0x8235db31, 0xffffa29c}, + {0x8235db32, 0xffffa29d}, + {0x8235db33, 0xffffa29e}, + {0x8235db34, 0xffffa29f}, + {0x8235db35, 0xffffa2a0}, + {0x8235db36, 0xffffa2a1}, + {0x8235db37, 0xffffa2a2}, + {0x8235db38, 0xffffa2a3}, + {0x8235db39, 0xffffa2a4}, + {0x8235dc30, 0xffffa2a5}, + {0x8235dc31, 0xffffa2a6}, + {0x8235dc32, 0xffffa2a7}, + {0x8235dc33, 0xffffa2a8}, + {0x8235dc34, 0xffffa2a9}, + {0x8235dc35, 0xffffa2aa}, + {0x8235dc36, 0xffffa2ab}, + {0x8235dc37, 0xffffa2ac}, + {0x8235dc38, 0xffffa2ad}, + {0x8235dc39, 0xffffa2ae}, + {0x8235dd30, 0xffffa2af}, + {0x8235dd31, 0xffffa2b0}, + {0x8235dd32, 0xffffa2b1}, + {0x8235dd33, 0xffffa2b2}, + {0x8235dd34, 0xffffa2b3}, + {0x8235dd35, 0xffffa2b4}, + {0x8235dd36, 0xffffa2b5}, + {0x8235dd37, 0xffffa2b6}, + {0x8235dd38, 0xffffa2b7}, + {0x8235dd39, 0xffffa2b8}, + {0x8235de30, 0xffffa2b9}, + {0x8235de31, 0xffffa2ba}, + {0x8235de32, 0xffffa2bb}, + {0x8235de33, 0xffffa2bc}, + {0x8235de34, 0xffffa2bd}, + {0x8235de35, 0xffffa2be}, + {0x8235de36, 0xffffa2bf}, + {0x8235de37, 0xffffa2c0}, + {0x8235de38, 0xffffa2c1}, + {0x8235de39, 0xffffa2c2}, + {0x8235df30, 0xffffa2c3}, + {0x8235df31, 0xffffa2c4}, + {0x8235df32, 0xffffa2c5}, + {0x8235df33, 0xffffa2c6}, + {0x8235df34, 0xffffa2c7}, + {0x8235df35, 0xffffa2c8}, + {0x8235df36, 0xffffa2c9}, + {0x8235df37, 0xffffa2ca}, + {0x8235df38, 0xffffa2cb}, + {0x8235df39, 0xffffa2cc}, + {0x8235e030, 0xffffa2cd}, + {0x8235e031, 0xffffa2ce}, + {0x8235e032, 0xffffa2cf}, + {0x8235e033, 0xffffa2d0}, + {0x8235e034, 0xffffa2d1}, + {0x8235e035, 0xffffa2d2}, + {0x8235e036, 0xffffa2d3}, + {0x8235e037, 0xffffa2d4}, + {0x8235e038, 0xffffa2d5}, + {0x8235e039, 0xffffa2d6}, + {0x8235e130, 0xffffa2d7}, + {0x8235e131, 0xffffa2d8}, + {0x8235e132, 0xffffa2d9}, + {0x8235e133, 0xffffa2da}, + {0x8235e134, 0xffffa2db}, + {0x8235e135, 0xffffa2dc}, + {0x8235e136, 0xffffa2dd}, + {0x8235e137, 0xffffa2de}, + {0x8235e138, 0xffffa2df}, + {0x8235e139, 0xffffa2e0}, + {0x8235e230, 0xffffa2e1}, + {0x8235e231, 0xffffa2e2}, + {0x8235e232, 0xffffa2e3}, + {0x8235e233, 0xffffa2e4}, + {0x8235e234, 0xffffa2e5}, + {0x8235e235, 0xffffa2e6}, + {0x8235e236, 0xffffa2e7}, + {0x8235e237, 0xffffa2e8}, + {0x8235e238, 0xffffa2e9}, + {0x8235e239, 0xffffa2ea}, + {0x8235e330, 0xffffa2eb}, + {0x8235e331, 0xffffa2ec}, + {0x8235e332, 0xffffa2ed}, + {0x8235e333, 0xffffa2ee}, + {0x8235e334, 0xffffa2ef}, + {0x8235e335, 0xffffa2f0}, + {0x8235e336, 0xffffa2f1}, + {0x8235e337, 0xffffa2f2}, + {0x8235e338, 0xffffa2f3}, + {0x8235e339, 0xffffa2f4}, + {0x8235e430, 0xffffa2f5}, + {0x8235e431, 0xffffa2f6}, + {0x8235e432, 0xffffa2f7}, + {0x8235e433, 0xffffa2f8}, + {0x8235e434, 0xffffa2f9}, + {0x8235e435, 0xffffa2fa}, + {0x8235e436, 0xffffa2fb}, + {0x8235e437, 0xffffa2fc}, + {0x8235e438, 0xffffa2fd}, + {0x8235e439, 0xffffa2fe}, + {0x8235e530, 0xffffa2ff}, + {0x8235e531, 0xffffa300}, + {0x8235e532, 0xffffa301}, + {0x8235e533, 0xffffa302}, + {0x8235e534, 0xffffa303}, + {0x8235e535, 0xffffa304}, + {0x8235e536, 0xffffa305}, + {0x8235e537, 0xffffa306}, + {0x8235e538, 0xffffa307}, + {0x8235e539, 0xffffa308}, + {0x8235e630, 0xffffa309}, + {0x8235e631, 0xffffa30a}, + {0x8235e632, 0xffffa30b}, + {0x8235e633, 0xffffa30c}, + {0x8235e634, 0xffffa30d}, + {0x8235e635, 0xffffa30e}, + {0x8235e636, 0xffffa30f}, + {0x8235e637, 0xffffa310}, + {0x8235e638, 0xffffa311}, + {0x8235e639, 0xffffa312}, + {0x8235e730, 0xffffa313}, + {0x8235e731, 0xffffa314}, + {0x8235e732, 0xffffa315}, + {0x8235e733, 0xffffa316}, + {0x8235e734, 0xffffa317}, + {0x8235e735, 0xffffa318}, + {0x8235e736, 0xffffa319}, + {0x8235e737, 0xffffa31a}, + {0x8235e738, 0xffffa31b}, + {0x8235e739, 0xffffa31c}, + {0x8235e830, 0xffffa31d}, + {0x8235e831, 0xffffa31e}, + {0x8235e832, 0xffffa31f}, + {0x8235e833, 0xffffa320}, + {0x8235e834, 0xffffa321}, + {0x8235e835, 0xffffa322}, + {0x8235e836, 0xffffa323}, + {0x8235e837, 0xffffa324}, + {0x8235e838, 0xffffa325}, + {0x8235e839, 0xffffa326}, + {0x8235e930, 0xffffa327}, + {0x8235e931, 0xffffa328}, + {0x8235e932, 0xffffa329}, + {0x8235e933, 0xffffa32a}, + {0x8235e934, 0xffffa32b}, + {0x8235e935, 0xffffa32c}, + {0x8235e936, 0xffffa32d}, + {0x8235e937, 0xffffa32e}, + {0x8235e938, 0xffffa32f}, + {0x8235e939, 0xffffa330}, + {0x8235ea30, 0xffffa331}, + {0x8235ea31, 0xffffa332}, + {0x8235ea32, 0xffffa333}, + {0x8235ea33, 0xffffa334}, + {0x8235ea34, 0xffffa335}, + {0x8235ea35, 0xffffa336}, + {0x8235ea36, 0xffffa337}, + {0x8235ea37, 0xffffa338}, + {0x8235ea38, 0xffffa339}, + {0x8235ea39, 0xffffa33a}, + {0x8235eb30, 0xffffa33b}, + {0x8235eb31, 0xffffa33c}, + {0x8235eb32, 0xffffa33d}, + {0x8235eb33, 0xffffa33e}, + {0x8235eb34, 0xffffa33f}, + {0x8235eb35, 0xffffa340}, + {0x8235eb36, 0xffffa341}, + {0x8235eb37, 0xffffa342}, + {0x8235eb38, 0xffffa343}, + {0x8235eb39, 0xffffa344}, + {0x8235ec30, 0xffffa345}, + {0x8235ec31, 0xffffa346}, + {0x8235ec32, 0xffffa347}, + {0x8235ec33, 0xffffa348}, + {0x8235ec34, 0xffffa349}, + {0x8235ec35, 0xffffa34a}, + {0x8235ec36, 0xffffa34b}, + {0x8235ec37, 0xffffa34c}, + {0x8235ec38, 0xffffa34d}, + {0x8235ec39, 0xffffa34e}, + {0x8235ed30, 0xffffa34f}, + {0x8235ed31, 0xffffa350}, + {0x8235ed32, 0xffffa351}, + {0x8235ed33, 0xffffa352}, + {0x8235ed34, 0xffffa353}, + {0x8235ed35, 0xffffa354}, + {0x8235ed36, 0xffffa355}, + {0x8235ed37, 0xffffa356}, + {0x8235ed38, 0xffffa357}, + {0x8235ed39, 0xffffa358}, + {0x8235ee30, 0xffffa359}, + {0x8235ee31, 0xffffa35a}, + {0x8235ee32, 0xffffa35b}, + {0x8235ee33, 0xffffa35c}, + {0x8235ee34, 0xffffa35d}, + {0x8235ee35, 0xffffa35e}, + {0x8235ee36, 0xffffa35f}, + {0x8235ee37, 0xffffa360}, + {0x8235ee38, 0xffffa361}, + {0x8235ee39, 0xffffa362}, + {0x8235ef30, 0xffffa363}, + {0x8235ef31, 0xffffa364}, + {0x8235ef32, 0xffffa365}, + {0x8235ef33, 0xffffa366}, + {0x8235ef34, 0xffffa367}, + {0x8235ef35, 0xffffa368}, + {0x8235ef36, 0xffffa369}, + {0x8235ef37, 0xffffa36a}, + {0x8235ef38, 0xffffa36b}, + {0x8235ef39, 0xffffa36c}, + {0x8235f030, 0xffffa36d}, + {0x8235f031, 0xffffa36e}, + {0x8235f032, 0xffffa36f}, + {0x8235f033, 0xffffa370}, + {0x8235f034, 0xffffa371}, + {0x8235f035, 0xffffa372}, + {0x8235f036, 0xffffa373}, + {0x8235f037, 0xffffa374}, + {0x8235f038, 0xffffa375}, + {0x8235f039, 0xffffa376}, + {0x8235f130, 0xffffa377}, + {0x8235f131, 0xffffa378}, + {0x8235f132, 0xffffa379}, + {0x8235f133, 0xffffa37a}, + {0x8235f134, 0xffffa37b}, + {0x8235f135, 0xffffa37c}, + {0x8235f136, 0xffffa37d}, + {0x8235f137, 0xffffa37e}, + {0x8235f138, 0xffffa37f}, + {0x8235f139, 0xffffa380}, + {0x8235f230, 0xffffa381}, + {0x8235f231, 0xffffa382}, + {0x8235f232, 0xffffa383}, + {0x8235f233, 0xffffa384}, + {0x8235f234, 0xffffa385}, + {0x8235f235, 0xffffa386}, + {0x8235f236, 0xffffa387}, + {0x8235f237, 0xffffa388}, + {0x8235f238, 0xffffa389}, + {0x8235f239, 0xffffa38a}, + {0x8235f330, 0xffffa38b}, + {0x8235f331, 0xffffa38c}, + {0x8235f332, 0xffffa38d}, + {0x8235f333, 0xffffa38e}, + {0x8235f334, 0xffffa38f}, + {0x8235f335, 0xffffa390}, + {0x8235f336, 0xffffa391}, + {0x8235f337, 0xffffa392}, + {0x8235f338, 0xffffa393}, + {0x8235f339, 0xffffa394}, + {0x8235f430, 0xffffa395}, + {0x8235f431, 0xffffa396}, + {0x8235f432, 0xffffa397}, + {0x8235f433, 0xffffa398}, + {0x8235f434, 0xffffa399}, + {0x8235f435, 0xffffa39a}, + {0x8235f436, 0xffffa39b}, + {0x8235f437, 0xffffa39c}, + {0x8235f438, 0xffffa39d}, + {0x8235f439, 0xffffa39e}, + {0x8235f530, 0xffffa39f}, + {0x8235f531, 0xffffa3a0}, + {0x8235f532, 0xffffa3a1}, + {0x8235f533, 0xffffa3a2}, + {0x8235f534, 0xffffa3a3}, + {0x8235f535, 0xffffa3a4}, + {0x8235f536, 0xffffa3a5}, + {0x8235f537, 0xffffa3a6}, + {0x8235f538, 0xffffa3a7}, + {0x8235f539, 0xffffa3a8}, + {0x8235f630, 0xffffa3a9}, + {0x8235f631, 0xffffa3aa}, + {0x8235f632, 0xffffa3ab}, + {0x8235f633, 0xffffa3ac}, + {0x8235f634, 0xffffa3ad}, + {0x8235f635, 0xffffa3ae}, + {0x8235f636, 0xffffa3af}, + {0x8235f637, 0xffffa3b0}, + {0x8235f638, 0xffffa3b1}, + {0x8235f639, 0xffffa3b2}, + {0x8235f730, 0xffffa3b3}, + {0x8235f731, 0xffffa3b4}, + {0x8235f732, 0xffffa3b5}, + {0x8235f733, 0xffffa3b6}, + {0x8235f734, 0xffffa3b7}, + {0x8235f735, 0xffffa3b8}, + {0x8235f736, 0xffffa3b9}, + {0x8235f737, 0xffffa3ba}, + {0x8235f738, 0xffffa3bb}, + {0x8235f739, 0xffffa3bc}, + {0x8235f830, 0xffffa3bd}, + {0x8235f831, 0xffffa3be}, + {0x8235f832, 0xffffa3bf}, + {0x8235f833, 0xffffa3c0}, + {0x8235f834, 0xffffa3c1}, + {0x8235f835, 0xffffa3c2}, + {0x8235f836, 0xffffa3c3}, + {0x8235f837, 0xffffa3c4}, + {0x8235f838, 0xffffa3c5}, + {0x8235f839, 0xffffa3c6}, + {0x8235f930, 0xffffa3c7}, + {0x8235f931, 0xffffa3c8}, + {0x8235f932, 0xffffa3c9}, + {0x8235f933, 0xffffa3ca}, + {0x8235f934, 0xffffa3cb}, + {0x8235f935, 0xffffa3cc}, + {0x8235f936, 0xffffa3cd}, + {0x8235f937, 0xffffa3ce}, + {0x8235f938, 0xffffa3cf}, + {0x8235f939, 0xffffa3d0}, + {0x8235fa30, 0xffffa3d1}, + {0x8235fa31, 0xffffa3d2}, + {0x8235fa32, 0xffffa3d3}, + {0x8235fa33, 0xffffa3d4}, + {0x8235fa34, 0xffffa3d5}, + {0x8235fa35, 0xffffa3d6}, + {0x8235fa36, 0xffffa3d7}, + {0x8235fa37, 0xffffa3d8}, + {0x8235fa38, 0xffffa3d9}, + {0x8235fa39, 0xffffa3da}, + {0x8235fb30, 0xffffa3db}, + {0x8235fb31, 0xffffa3dc}, + {0x8235fb32, 0xffffa3dd}, + {0x8235fb33, 0xffffa3de}, + {0x8235fb34, 0xffffa3df}, + {0x8235fb35, 0xffffa3e0}, + {0x8235fb36, 0xffffa3e1}, + {0x8235fb37, 0xffffa3e2}, + {0x8235fb38, 0xffffa3e3}, + {0x8235fb39, 0xffffa3e4}, + {0x8235fc30, 0xffffa3e5}, + {0x8235fc31, 0xffffa3e6}, + {0x8235fc32, 0xffffa3e7}, + {0x8235fc33, 0xffffa3e8}, + {0x8235fc34, 0xffffa3e9}, + {0x8235fc35, 0xffffa3ea}, + {0x8235fc36, 0xffffa3eb}, + {0x8235fc37, 0xffffa3ec}, + {0x8235fc38, 0xffffa3ed}, + {0x8235fc39, 0xffffa3ee}, + {0x8235fd30, 0xffffa3ef}, + {0x8235fd31, 0xffffa3f0}, + {0x8235fd32, 0xffffa3f1}, + {0x8235fd33, 0xffffa3f2}, + {0x8235fd34, 0xffffa3f3}, + {0x8235fd35, 0xffffa3f4}, + {0x8235fd36, 0xffffa3f5}, + {0x8235fd37, 0xffffa3f6}, + {0x8235fd38, 0xffffa3f7}, + {0x8235fd39, 0xffffa3f8}, + {0x8235fe30, 0xffffa3f9}, + {0x8235fe31, 0xffffa3fa}, + {0x8235fe32, 0xffffa3fb}, + {0x8235fe33, 0xffffa3fc}, + {0x8235fe34, 0xffffa3fd}, + {0x8235fe35, 0xffffa3fe}, + {0x8235fe36, 0xffffa3ff}, + {0x8235fe37, 0xffffa400}, + {0x8235fe38, 0xffffa401}, + {0x8235fe39, 0xffffa402}, + {0x82368130, 0xffffa403}, + {0x82368131, 0xffffa404}, + {0x82368132, 0xffffa405}, + {0x82368133, 0xffffa406}, + {0x82368134, 0xffffa407}, + {0x82368135, 0xffffa408}, + {0x82368136, 0xffffa409}, + {0x82368137, 0xffffa40a}, + {0x82368138, 0xffffa40b}, + {0x82368139, 0xffffa40c}, + {0x82368230, 0xffffa40d}, + {0x82368231, 0xffffa40e}, + {0x82368232, 0xffffa40f}, + {0x82368233, 0xffffa410}, + {0x82368234, 0xffffa411}, + {0x82368235, 0xffffa412}, + {0x82368236, 0xffffa413}, + {0x82368237, 0xffffa414}, + {0x82368238, 0xffffa415}, + {0x82368239, 0xffffa416}, + {0x82368330, 0xffffa417}, + {0x82368331, 0xffffa418}, + {0x82368332, 0xffffa419}, + {0x82368333, 0xffffa41a}, + {0x82368334, 0xffffa41b}, + {0x82368335, 0xffffa41c}, + {0x82368336, 0xffffa41d}, + {0x82368337, 0xffffa41e}, + {0x82368338, 0xffffa41f}, + {0x82368339, 0xffffa420}, + {0x82368430, 0xffffa421}, + {0x82368431, 0xffffa422}, + {0x82368432, 0xffffa423}, + {0x82368433, 0xffffa424}, + {0x82368434, 0xffffa425}, + {0x82368435, 0xffffa426}, + {0x82368436, 0xffffa427}, + {0x82368437, 0xffffa428}, + {0x82368438, 0xffffa429}, + {0x82368439, 0xffffa42a}, + {0x82368530, 0xffffa42b}, + {0x82368531, 0xffffa42c}, + {0x82368532, 0xffffa42d}, + {0x82368533, 0xffffa42e}, + {0x82368534, 0xffffa42f}, + {0x82368535, 0xffffa430}, + {0x82368536, 0xffffa431}, + {0x82368537, 0xffffa432}, + {0x82368538, 0xffffa433}, + {0x82368539, 0xffffa434}, + {0x82368630, 0xffffa435}, + {0x82368631, 0xffffa436}, + {0x82368632, 0xffffa437}, + {0x82368633, 0xffffa438}, + {0x82368634, 0xffffa439}, + {0x82368635, 0xffffa43a}, + {0x82368636, 0xffffa43b}, + {0x82368637, 0xffffa43c}, + {0x82368638, 0xffffa43d}, + {0x82368639, 0xffffa43e}, + {0x82368730, 0xffffa43f}, + {0x82368731, 0xffffa440}, + {0x82368732, 0xffffa441}, + {0x82368733, 0xffffa442}, + {0x82368734, 0xffffa443}, + {0x82368735, 0xffffa444}, + {0x82368736, 0xffffa445}, + {0x82368737, 0xffffa446}, + {0x82368738, 0xffffa447}, + {0x82368739, 0xffffa448}, + {0x82368830, 0xffffa449}, + {0x82368831, 0xffffa44a}, + {0x82368832, 0xffffa44b}, + {0x82368833, 0xffffa44c}, + {0x82368834, 0xffffa44d}, + {0x82368835, 0xffffa44e}, + {0x82368836, 0xffffa44f}, + {0x82368837, 0xffffa450}, + {0x82368838, 0xffffa451}, + {0x82368839, 0xffffa452}, + {0x82368930, 0xffffa453}, + {0x82368931, 0xffffa454}, + {0x82368932, 0xffffa455}, + {0x82368933, 0xffffa456}, + {0x82368934, 0xffffa457}, + {0x82368935, 0xffffa458}, + {0x82368936, 0xffffa459}, + {0x82368937, 0xffffa45a}, + {0x82368938, 0xffffa45b}, + {0x82368939, 0xffffa45c}, + {0x82368a30, 0xffffa45d}, + {0x82368a31, 0xffffa45e}, + {0x82368a32, 0xffffa45f}, + {0x82368a33, 0xffffa460}, + {0x82368a34, 0xffffa461}, + {0x82368a35, 0xffffa462}, + {0x82368a36, 0xffffa463}, + {0x82368a37, 0xffffa464}, + {0x82368a38, 0xffffa465}, + {0x82368a39, 0xffffa466}, + {0x82368b30, 0xffffa467}, + {0x82368b31, 0xffffa468}, + {0x82368b32, 0xffffa469}, + {0x82368b33, 0xffffa46a}, + {0x82368b34, 0xffffa46b}, + {0x82368b35, 0xffffa46c}, + {0x82368b36, 0xffffa46d}, + {0x82368b37, 0xffffa46e}, + {0x82368b38, 0xffffa46f}, + {0x82368b39, 0xffffa470}, + {0x82368c30, 0xffffa471}, + {0x82368c31, 0xffffa472}, + {0x82368c32, 0xffffa473}, + {0x82368c33, 0xffffa474}, + {0x82368c34, 0xffffa475}, + {0x82368c35, 0xffffa476}, + {0x82368c36, 0xffffa477}, + {0x82368c37, 0xffffa478}, + {0x82368c38, 0xffffa479}, + {0x82368c39, 0xffffa47a}, + {0x82368d30, 0xffffa47b}, + {0x82368d31, 0xffffa47c}, + {0x82368d32, 0xffffa47d}, + {0x82368d33, 0xffffa47e}, + {0x82368d34, 0xffffa47f}, + {0x82368d35, 0xffffa480}, + {0x82368d36, 0xffffa481}, + {0x82368d37, 0xffffa482}, + {0x82368d38, 0xffffa483}, + {0x82368d39, 0xffffa484}, + {0x82368e30, 0xffffa485}, + {0x82368e31, 0xffffa486}, + {0x82368e32, 0xffffa487}, + {0x82368e33, 0xffffa488}, + {0x82368e34, 0xffffa489}, + {0x82368e35, 0xffffa48a}, + {0x82368e36, 0xffffa48b}, + {0x82368e37, 0xffffa48c}, + {0x82368e38, 0xffffa48d}, + {0x82368e39, 0xffffa48e}, + {0x82368f30, 0xffffa48f}, + {0x82368f31, 0xffffa490}, + {0x82368f32, 0xffffa491}, + {0x82368f33, 0xffffa492}, + {0x82368f34, 0xffffa493}, + {0x82368f35, 0xffffa494}, + {0x82368f36, 0xffffa495}, + {0x82368f37, 0xffffa496}, + {0x82368f38, 0xffffa497}, + {0x82368f39, 0xffffa498}, + {0x82369030, 0xffffa499}, + {0x82369031, 0xffffa49a}, + {0x82369032, 0xffffa49b}, + {0x82369033, 0xffffa49c}, + {0x82369034, 0xffffa49d}, + {0x82369035, 0xffffa49e}, + {0x82369036, 0xffffa49f}, + {0x82369037, 0xffffa4a0}, + {0x82369038, 0xffffa4a1}, + {0x82369039, 0xffffa4a2}, + {0x82369130, 0xffffa4a3}, + {0x82369131, 0xffffa4a4}, + {0x82369132, 0xffffa4a5}, + {0x82369133, 0xffffa4a6}, + {0x82369134, 0xffffa4a7}, + {0x82369135, 0xffffa4a8}, + {0x82369136, 0xffffa4a9}, + {0x82369137, 0xffffa4aa}, + {0x82369138, 0xffffa4ab}, + {0x82369139, 0xffffa4ac}, + {0x82369230, 0xffffa4ad}, + {0x82369231, 0xffffa4ae}, + {0x82369232, 0xffffa4af}, + {0x82369233, 0xffffa4b0}, + {0x82369234, 0xffffa4b1}, + {0x82369235, 0xffffa4b2}, + {0x82369236, 0xffffa4b3}, + {0x82369237, 0xffffa4b4}, + {0x82369238, 0xffffa4b5}, + {0x82369239, 0xffffa4b6}, + {0x82369330, 0xffffa4b7}, + {0x82369331, 0xffffa4b8}, + {0x82369332, 0xffffa4b9}, + {0x82369333, 0xffffa4ba}, + {0x82369334, 0xffffa4bb}, + {0x82369335, 0xffffa4bc}, + {0x82369336, 0xffffa4bd}, + {0x82369337, 0xffffa4be}, + {0x82369338, 0xffffa4bf}, + {0x82369339, 0xffffa4c0}, + {0x82369430, 0xffffa4c1}, + {0x82369431, 0xffffa4c2}, + {0x82369432, 0xffffa4c3}, + {0x82369433, 0xffffa4c4}, + {0x82369434, 0xffffa4c5}, + {0x82369435, 0xffffa4c6}, + {0x82369436, 0xffffa4c7}, + {0x82369437, 0xffffa4c8}, + {0x82369438, 0xffffa4c9}, + {0x82369439, 0xffffa4ca}, + {0x82369530, 0xffffa4cb}, + {0x82369531, 0xffffa4cc}, + {0x82369532, 0xffffa4cd}, + {0x82369533, 0xffffa4ce}, + {0x82369534, 0xffffa4cf}, + {0x82369535, 0xffffa4d0}, + {0x82369536, 0xffffa4d1}, + {0x82369537, 0xffffa4d2}, + {0x82369538, 0xffffa4d3}, + {0x82369539, 0xffffa4d4}, + {0x82369630, 0xffffa4d5}, + {0x82369631, 0xffffa4d6}, + {0x82369632, 0xffffa4d7}, + {0x82369633, 0xffffa4d8}, + {0x82369634, 0xffffa4d9}, + {0x82369635, 0xffffa4da}, + {0x82369636, 0xffffa4db}, + {0x82369637, 0xffffa4dc}, + {0x82369638, 0xffffa4dd}, + {0x82369639, 0xffffa4de}, + {0x82369730, 0xffffa4df}, + {0x82369731, 0xffffa4e0}, + {0x82369732, 0xffffa4e1}, + {0x82369733, 0xffffa4e2}, + {0x82369734, 0xffffa4e3}, + {0x82369735, 0xffffa4e4}, + {0x82369736, 0xffffa4e5}, + {0x82369737, 0xffffa4e6}, + {0x82369738, 0xffffa4e7}, + {0x82369739, 0xffffa4e8}, + {0x82369830, 0xffffa4e9}, + {0x82369831, 0xffffa4ea}, + {0x82369832, 0xffffa4eb}, + {0x82369833, 0xffffa4ec}, + {0x82369834, 0xffffa4ed}, + {0x82369835, 0xffffa4ee}, + {0x82369836, 0xffffa4ef}, + {0x82369837, 0xffffa4f0}, + {0x82369838, 0xffffa4f1}, + {0x82369839, 0xffffa4f2}, + {0x82369930, 0xffffa4f3}, + {0x82369931, 0xffffa4f4}, + {0x82369932, 0xffffa4f5}, + {0x82369933, 0xffffa4f6}, + {0x82369934, 0xffffa4f7}, + {0x82369935, 0xffffa4f8}, + {0x82369936, 0xffffa4f9}, + {0x82369937, 0xffffa4fa}, + {0x82369938, 0xffffa4fb}, + {0x82369939, 0xffffa4fc}, + {0x82369a30, 0xffffa4fd}, + {0x82369a31, 0xffffa4fe}, + {0x82369a32, 0xffffa4ff}, + {0x82369a33, 0xffffa500}, + {0x82369a34, 0xffffa501}, + {0x82369a35, 0xffffa502}, + {0x82369a36, 0xffffa503}, + {0x82369a37, 0xffffa504}, + {0x82369a38, 0xffffa505}, + {0x82369a39, 0xffffa506}, + {0x82369b30, 0xffffa507}, + {0x82369b31, 0xffffa508}, + {0x82369b32, 0xffffa509}, + {0x82369b33, 0xffffa50a}, + {0x82369b34, 0xffffa50b}, + {0x82369b35, 0xffffa50c}, + {0x82369b36, 0xffffa50d}, + {0x82369b37, 0xffffa50e}, + {0x82369b38, 0xffffa50f}, + {0x82369b39, 0xffffa510}, + {0x82369c30, 0xffffa511}, + {0x82369c31, 0xffffa512}, + {0x82369c32, 0xffffa513}, + {0x82369c33, 0xffffa514}, + {0x82369c34, 0xffffa515}, + {0x82369c35, 0xffffa516}, + {0x82369c36, 0xffffa517}, + {0x82369c37, 0xffffa518}, + {0x82369c38, 0xffffa519}, + {0x82369c39, 0xffffa51a}, + {0x82369d30, 0xffffa51b}, + {0x82369d31, 0xffffa51c}, + {0x82369d32, 0xffffa51d}, + {0x82369d33, 0xffffa51e}, + {0x82369d34, 0xffffa51f}, + {0x82369d35, 0xffffa520}, + {0x82369d36, 0xffffa521}, + {0x82369d37, 0xffffa522}, + {0x82369d38, 0xffffa523}, + {0x82369d39, 0xffffa524}, + {0x82369e30, 0xffffa525}, + {0x82369e31, 0xffffa526}, + {0x82369e32, 0xffffa527}, + {0x82369e33, 0xffffa528}, + {0x82369e34, 0xffffa529}, + {0x82369e35, 0xffffa52a}, + {0x82369e36, 0xffffa52b}, + {0x82369e37, 0xffffa52c}, + {0x82369e38, 0xffffa52d}, + {0x82369e39, 0xffffa52e}, + {0x82369f30, 0xffffa52f}, + {0x82369f31, 0xffffa530}, + {0x82369f32, 0xffffa531}, + {0x82369f33, 0xffffa532}, + {0x82369f34, 0xffffa533}, + {0x82369f35, 0xffffa534}, + {0x82369f36, 0xffffa535}, + {0x82369f37, 0xffffa536}, + {0x82369f38, 0xffffa537}, + {0x82369f39, 0xffffa538}, + {0x8236a030, 0xffffa539}, + {0x8236a031, 0xffffa53a}, + {0x8236a032, 0xffffa53b}, + {0x8236a033, 0xffffa53c}, + {0x8236a034, 0xffffa53d}, + {0x8236a035, 0xffffa53e}, + {0x8236a036, 0xffffa53f}, + {0x8236a037, 0xffffa540}, + {0x8236a038, 0xffffa541}, + {0x8236a039, 0xffffa542}, + {0x8236a130, 0xffffa543}, + {0x8236a131, 0xffffa544}, + {0x8236a132, 0xffffa545}, + {0x8236a133, 0xffffa546}, + {0x8236a134, 0xffffa547}, + {0x8236a135, 0xffffa548}, + {0x8236a136, 0xffffa549}, + {0x8236a137, 0xffffa54a}, + {0x8236a138, 0xffffa54b}, + {0x8236a139, 0xffffa54c}, + {0x8236a230, 0xffffa54d}, + {0x8236a231, 0xffffa54e}, + {0x8236a232, 0xffffa54f}, + {0x8236a233, 0xffffa550}, + {0x8236a234, 0xffffa551}, + {0x8236a235, 0xffffa552}, + {0x8236a236, 0xffffa553}, + {0x8236a237, 0xffffa554}, + {0x8236a238, 0xffffa555}, + {0x8236a239, 0xffffa556}, + {0x8236a330, 0xffffa557}, + {0x8236a331, 0xffffa558}, + {0x8236a332, 0xffffa559}, + {0x8236a333, 0xffffa55a}, + {0x8236a334, 0xffffa55b}, + {0x8236a335, 0xffffa55c}, + {0x8236a336, 0xffffa55d}, + {0x8236a337, 0xffffa55e}, + {0x8236a338, 0xffffa55f}, + {0x8236a339, 0xffffa560}, + {0x8236a430, 0xffffa561}, + {0x8236a431, 0xffffa562}, + {0x8236a432, 0xffffa563}, + {0x8236a433, 0xffffa564}, + {0x8236a434, 0xffffa565}, + {0x8236a435, 0xffffa566}, + {0x8236a436, 0xffffa567}, + {0x8236a437, 0xffffa568}, + {0x8236a438, 0xffffa569}, + {0x8236a439, 0xffffa56a}, + {0x8236a530, 0xffffa56b}, + {0x8236a531, 0xffffa56c}, + {0x8236a532, 0xffffa56d}, + {0x8236a533, 0xffffa56e}, + {0x8236a534, 0xffffa56f}, + {0x8236a535, 0xffffa570}, + {0x8236a536, 0xffffa571}, + {0x8236a537, 0xffffa572}, + {0x8236a538, 0xffffa573}, + {0x8236a539, 0xffffa574}, + {0x8236a630, 0xffffa575}, + {0x8236a631, 0xffffa576}, + {0x8236a632, 0xffffa577}, + {0x8236a633, 0xffffa578}, + {0x8236a634, 0xffffa579}, + {0x8236a635, 0xffffa57a}, + {0x8236a636, 0xffffa57b}, + {0x8236a637, 0xffffa57c}, + {0x8236a638, 0xffffa57d}, + {0x8236a639, 0xffffa57e}, + {0x8236a730, 0xffffa57f}, + {0x8236a731, 0xffffa580}, + {0x8236a732, 0xffffa581}, + {0x8236a733, 0xffffa582}, + {0x8236a734, 0xffffa583}, + {0x8236a735, 0xffffa584}, + {0x8236a736, 0xffffa585}, + {0x8236a737, 0xffffa586}, + {0x8236a738, 0xffffa587}, + {0x8236a739, 0xffffa588}, + {0x8236a830, 0xffffa589}, + {0x8236a831, 0xffffa58a}, + {0x8236a832, 0xffffa58b}, + {0x8236a833, 0xffffa58c}, + {0x8236a834, 0xffffa58d}, + {0x8236a835, 0xffffa58e}, + {0x8236a836, 0xffffa58f}, + {0x8236a837, 0xffffa590}, + {0x8236a838, 0xffffa591}, + {0x8236a839, 0xffffa592}, + {0x8236a930, 0xffffa593}, + {0x8236a931, 0xffffa594}, + {0x8236a932, 0xffffa595}, + {0x8236a933, 0xffffa596}, + {0x8236a934, 0xffffa597}, + {0x8236a935, 0xffffa598}, + {0x8236a936, 0xffffa599}, + {0x8236a937, 0xffffa59a}, + {0x8236a938, 0xffffa59b}, + {0x8236a939, 0xffffa59c}, + {0x8236aa30, 0xffffa59d}, + {0x8236aa31, 0xffffa59e}, + {0x8236aa32, 0xffffa59f}, + {0x8236aa33, 0xffffa5a0}, + {0x8236aa34, 0xffffa5a1}, + {0x8236aa35, 0xffffa5a2}, + {0x8236aa36, 0xffffa5a3}, + {0x8236aa37, 0xffffa5a4}, + {0x8236aa38, 0xffffa5a5}, + {0x8236aa39, 0xffffa5a6}, + {0x8236ab30, 0xffffa5a7}, + {0x8236ab31, 0xffffa5a8}, + {0x8236ab32, 0xffffa5a9}, + {0x8236ab33, 0xffffa5aa}, + {0x8236ab34, 0xffffa5ab}, + {0x8236ab35, 0xffffa5ac}, + {0x8236ab36, 0xffffa5ad}, + {0x8236ab37, 0xffffa5ae}, + {0x8236ab38, 0xffffa5af}, + {0x8236ab39, 0xffffa5b0}, + {0x8236ac30, 0xffffa5b1}, + {0x8236ac31, 0xffffa5b2}, + {0x8236ac32, 0xffffa5b3}, + {0x8236ac33, 0xffffa5b4}, + {0x8236ac34, 0xffffa5b5}, + {0x8236ac35, 0xffffa5b6}, + {0x8236ac36, 0xffffa5b7}, + {0x8236ac37, 0xffffa5b8}, + {0x8236ac38, 0xffffa5b9}, + {0x8236ac39, 0xffffa5ba}, + {0x8236ad30, 0xffffa5bb}, + {0x8236ad31, 0xffffa5bc}, + {0x8236ad32, 0xffffa5bd}, + {0x8236ad33, 0xffffa5be}, + {0x8236ad34, 0xffffa5bf}, + {0x8236ad35, 0xffffa5c0}, + {0x8236ad36, 0xffffa5c1}, + {0x8236ad37, 0xffffa5c2}, + {0x8236ad38, 0xffffa5c3}, + {0x8236ad39, 0xffffa5c4}, + {0x8236ae30, 0xffffa5c5}, + {0x8236ae31, 0xffffa5c6}, + {0x8236ae32, 0xffffa5c7}, + {0x8236ae33, 0xffffa5c8}, + {0x8236ae34, 0xffffa5c9}, + {0x8236ae35, 0xffffa5ca}, + {0x8236ae36, 0xffffa5cb}, + {0x8236ae37, 0xffffa5cc}, + {0x8236ae38, 0xffffa5cd}, + {0x8236ae39, 0xffffa5ce}, + {0x8236af30, 0xffffa5cf}, + {0x8236af31, 0xffffa5d0}, + {0x8236af32, 0xffffa5d1}, + {0x8236af33, 0xffffa5d2}, + {0x8236af34, 0xffffa5d3}, + {0x8236af35, 0xffffa5d4}, + {0x8236af36, 0xffffa5d5}, + {0x8236af37, 0xffffa5d6}, + {0x8236af38, 0xffffa5d7}, + {0x8236af39, 0xffffa5d8}, + {0x8236b030, 0xffffa5d9}, + {0x8236b031, 0xffffa5da}, + {0x8236b032, 0xffffa5db}, + {0x8236b033, 0xffffa5dc}, + {0x8236b034, 0xffffa5dd}, + {0x8236b035, 0xffffa5de}, + {0x8236b036, 0xffffa5df}, + {0x8236b037, 0xffffa5e0}, + {0x8236b038, 0xffffa5e1}, + {0x8236b039, 0xffffa5e2}, + {0x8236b130, 0xffffa5e3}, + {0x8236b131, 0xffffa5e4}, + {0x8236b132, 0xffffa5e5}, + {0x8236b133, 0xffffa5e6}, + {0x8236b134, 0xffffa5e7}, + {0x8236b135, 0xffffa5e8}, + {0x8236b136, 0xffffa5e9}, + {0x8236b137, 0xffffa5ea}, + {0x8236b138, 0xffffa5eb}, + {0x8236b139, 0xffffa5ec}, + {0x8236b230, 0xffffa5ed}, + {0x8236b231, 0xffffa5ee}, + {0x8236b232, 0xffffa5ef}, + {0x8236b233, 0xffffa5f0}, + {0x8236b234, 0xffffa5f1}, + {0x8236b235, 0xffffa5f2}, + {0x8236b236, 0xffffa5f3}, + {0x8236b237, 0xffffa5f4}, + {0x8236b238, 0xffffa5f5}, + {0x8236b239, 0xffffa5f6}, + {0x8236b330, 0xffffa5f7}, + {0x8236b331, 0xffffa5f8}, + {0x8236b332, 0xffffa5f9}, + {0x8236b333, 0xffffa5fa}, + {0x8236b334, 0xffffa5fb}, + {0x8236b335, 0xffffa5fc}, + {0x8236b336, 0xffffa5fd}, + {0x8236b337, 0xffffa5fe}, + {0x8236b338, 0xffffa5ff}, + {0x8236b339, 0xffffa600}, + {0x8236b430, 0xffffa601}, + {0x8236b431, 0xffffa602}, + {0x8236b432, 0xffffa603}, + {0x8236b433, 0xffffa604}, + {0x8236b434, 0xffffa605}, + {0x8236b435, 0xffffa606}, + {0x8236b436, 0xffffa607}, + {0x8236b437, 0xffffa608}, + {0x8236b438, 0xffffa609}, + {0x8236b439, 0xffffa60a}, + {0x8236b530, 0xffffa60b}, + {0x8236b531, 0xffffa60c}, + {0x8236b532, 0xffffa60d}, + {0x8236b533, 0xffffa60e}, + {0x8236b534, 0xffffa60f}, + {0x8236b535, 0xffffa610}, + {0x8236b536, 0xffffa611}, + {0x8236b537, 0xffffa612}, + {0x8236b538, 0xffffa613}, + {0x8236b539, 0xffffa614}, + {0x8236b630, 0xffffa615}, + {0x8236b631, 0xffffa616}, + {0x8236b632, 0xffffa617}, + {0x8236b633, 0xffffa618}, + {0x8236b634, 0xffffa619}, + {0x8236b635, 0xffffa61a}, + {0x8236b636, 0xffffa61b}, + {0x8236b637, 0xffffa61c}, + {0x8236b638, 0xffffa61d}, + {0x8236b639, 0xffffa61e}, + {0x8236b730, 0xffffa61f}, + {0x8236b731, 0xffffa620}, + {0x8236b732, 0xffffa621}, + {0x8236b733, 0xffffa622}, + {0x8236b734, 0xffffa623}, + {0x8236b735, 0xffffa624}, + {0x8236b736, 0xffffa625}, + {0x8236b737, 0xffffa626}, + {0x8236b738, 0xffffa627}, + {0x8236b739, 0xffffa628}, + {0x8236b830, 0xffffa629}, + {0x8236b831, 0xffffa62a}, + {0x8236b832, 0xffffa62b}, + {0x8236b833, 0xffffa62c}, + {0x8236b834, 0xffffa62d}, + {0x8236b835, 0xffffa62e}, + {0x8236b836, 0xffffa62f}, + {0x8236b837, 0xffffa630}, + {0x8236b838, 0xffffa631}, + {0x8236b839, 0xffffa632}, + {0x8236b930, 0xffffa633}, + {0x8236b931, 0xffffa634}, + {0x8236b932, 0xffffa635}, + {0x8236b933, 0xffffa636}, + {0x8236b934, 0xffffa637}, + {0x8236b935, 0xffffa638}, + {0x8236b936, 0xffffa639}, + {0x8236b937, 0xffffa63a}, + {0x8236b938, 0xffffa63b}, + {0x8236b939, 0xffffa63c}, + {0x8236ba30, 0xffffa63d}, + {0x8236ba31, 0xffffa63e}, + {0x8236ba32, 0xffffa63f}, + {0x8236ba33, 0xffffa640}, + {0x8236ba34, 0xffffa641}, + {0x8236ba35, 0xffffa642}, + {0x8236ba36, 0xffffa643}, + {0x8236ba37, 0xffffa644}, + {0x8236ba38, 0xffffa645}, + {0x8236ba39, 0xffffa646}, + {0x8236bb30, 0xffffa647}, + {0x8236bb31, 0xffffa648}, + {0x8236bb32, 0xffffa649}, + {0x8236bb33, 0xffffa64a}, + {0x8236bb34, 0xffffa64b}, + {0x8236bb35, 0xffffa64c}, + {0x8236bb36, 0xffffa64d}, + {0x8236bb37, 0xffffa64e}, + {0x8236bb38, 0xffffa64f}, + {0x8236bb39, 0xffffa650}, + {0x8236bc30, 0xffffa651}, + {0x8236bc31, 0xffffa652}, + {0x8236bc32, 0xffffa653}, + {0x8236bc33, 0xffffa654}, + {0x8236bc34, 0xffffa655}, + {0x8236bc35, 0xffffa656}, + {0x8236bc36, 0xffffa657}, + {0x8236bc37, 0xffffa658}, + {0x8236bc38, 0xffffa659}, + {0x8236bc39, 0xffffa65a}, + {0x8236bd30, 0xffffa65b}, + {0x8236bd31, 0xffffa65c}, + {0x8236bd32, 0xffffa65d}, + {0x8236bd33, 0xffffa65e}, + {0x8236bd34, 0xffffa65f}, + {0x8236bd35, 0xffffa660}, + {0x8236bd36, 0xffffa661}, + {0x8236bd37, 0xffffa662}, + {0x8236bd38, 0xffffa663}, + {0x8236bd39, 0xffffa664}, + {0x8236be30, 0xffffa665}, + {0x8236be31, 0xffffa666}, + {0x8236be32, 0xffffa667}, + {0x8236be33, 0xffffa668}, + {0x8236be34, 0xffffa669}, + {0x8236be35, 0xffffa66a}, + {0x8236be36, 0xffffa66b}, + {0x8236be37, 0xffffa66c}, + {0x8236be38, 0xffffa66d}, + {0x8236be39, 0xffffa66e}, + {0x8236bf30, 0xffffa66f}, + {0x8236bf31, 0xffffa670}, + {0x8236bf32, 0xffffa671}, + {0x8236bf33, 0xffffa672}, + {0x8236bf34, 0xffffa673}, + {0x8236bf35, 0xffffa674}, + {0x8236bf36, 0xffffa675}, + {0x8236bf37, 0xffffa676}, + {0x8236bf38, 0xffffa677}, + {0x8236bf39, 0xffffa678}, + {0x8236c030, 0xffffa679}, + {0x8236c031, 0xffffa67a}, + {0x8236c032, 0xffffa67b}, + {0x8236c033, 0xffffa67c}, + {0x8236c034, 0xffffa67d}, + {0x8236c035, 0xffffa67e}, + {0x8236c036, 0xffffa67f}, + {0x8236c037, 0xffffa680}, + {0x8236c038, 0xffffa681}, + {0x8236c039, 0xffffa682}, + {0x8236c130, 0xffffa683}, + {0x8236c131, 0xffffa684}, + {0x8236c132, 0xffffa685}, + {0x8236c133, 0xffffa686}, + {0x8236c134, 0xffffa687}, + {0x8236c135, 0xffffa688}, + {0x8236c136, 0xffffa689}, + {0x8236c137, 0xffffa68a}, + {0x8236c138, 0xffffa68b}, + {0x8236c139, 0xffffa68c}, + {0x8236c230, 0xffffa68d}, + {0x8236c231, 0xffffa68e}, + {0x8236c232, 0xffffa68f}, + {0x8236c233, 0xffffa690}, + {0x8236c234, 0xffffa691}, + {0x8236c235, 0xffffa692}, + {0x8236c236, 0xffffa693}, + {0x8236c237, 0xffffa694}, + {0x8236c238, 0xffffa695}, + {0x8236c239, 0xffffa696}, + {0x8236c330, 0xffffa697}, + {0x8236c331, 0xffffa698}, + {0x8236c332, 0xffffa699}, + {0x8236c333, 0xffffa69a}, + {0x8236c334, 0xffffa69b}, + {0x8236c335, 0xffffa69c}, + {0x8236c336, 0xffffa69d}, + {0x8236c337, 0xffffa69e}, + {0x8236c338, 0xffffa69f}, + {0x8236c339, 0xffffa6a0}, + {0x8236c430, 0xffffa6a1}, + {0x8236c431, 0xffffa6a2}, + {0x8236c432, 0xffffa6a3}, + {0x8236c433, 0xffffa6a4}, + {0x8236c434, 0xffffa6a5}, + {0x8236c435, 0xffffa6a6}, + {0x8236c436, 0xffffa6a7}, + {0x8236c437, 0xffffa6a8}, + {0x8236c438, 0xffffa6a9}, + {0x8236c439, 0xffffa6aa}, + {0x8236c530, 0xffffa6ab}, + {0x8236c531, 0xffffa6ac}, + {0x8236c532, 0xffffa6ad}, + {0x8236c533, 0xffffa6ae}, + {0x8236c534, 0xffffa6af}, + {0x8236c535, 0xffffa6b0}, + {0x8236c536, 0xffffa6b1}, + {0x8236c537, 0xffffa6b2}, + {0x8236c538, 0xffffa6b3}, + {0x8236c539, 0xffffa6b4}, + {0x8236c630, 0xffffa6b5}, + {0x8236c631, 0xffffa6b6}, + {0x8236c632, 0xffffa6b7}, + {0x8236c633, 0xffffa6b8}, + {0x8236c634, 0xffffa6b9}, + {0x8236c635, 0xffffa6ba}, + {0x8236c636, 0xffffa6bb}, + {0x8236c637, 0xffffa6bc}, + {0x8236c638, 0xffffa6bd}, + {0x8236c639, 0xffffa6be}, + {0x8236c730, 0xffffa6bf}, + {0x8236c731, 0xffffa6c0}, + {0x8236c732, 0xffffa6c1}, + {0x8236c733, 0xffffa6c2}, + {0x8236c734, 0xffffa6c3}, + {0x8236c735, 0xffffa6c4}, + {0x8236c736, 0xffffa6c5}, + {0x8236c737, 0xffffa6c6}, + {0x8236c738, 0xffffa6c7}, + {0x8236c739, 0xffffa6c8}, + {0x8236c830, 0xffffa6c9}, + {0x8236c831, 0xffffa6ca}, + {0x8236c832, 0xffffa6cb}, + {0x8236c833, 0xffffa6cc}, + {0x8236c834, 0xffffa6cd}, + {0x8236c835, 0xffffa6ce}, + {0x8236c836, 0xffffa6cf}, + {0x8236c837, 0xffffa6d0}, + {0x8236c838, 0xffffa6d1}, + {0x8236c839, 0xffffa6d2}, + {0x8236c930, 0xffffa6d3}, + {0x8236c931, 0xffffa6d4}, + {0x8236c932, 0xffffa6d5}, + {0x8236c933, 0xffffa6d6}, + {0x8236c934, 0xffffa6d7}, + {0x8236c935, 0xffffa6d8}, + {0x8236c936, 0xffffa6d9}, + {0x8236c937, 0xffffa6da}, + {0x8236c938, 0xffffa6db}, + {0x8236c939, 0xffffa6dc}, + {0x8236ca30, 0xffffa6dd}, + {0x8236ca31, 0xffffa6de}, + {0x8236ca32, 0xffffa6df}, + {0x8236ca33, 0xffffa6e0}, + {0x8236ca34, 0xffffa6e1}, + {0x8236ca35, 0xffffa6e2}, + {0x8236ca36, 0xffffa6e3}, + {0x8236ca37, 0xffffa6e4}, + {0x8236ca38, 0xffffa6e5}, + {0x8236ca39, 0xffffa6e6}, + {0x8236cb30, 0xffffa6e7}, + {0x8236cb31, 0xffffa6e8}, + {0x8236cb32, 0xffffa6e9}, + {0x8236cb33, 0xffffa6ea}, + {0x8236cb34, 0xffffa6eb}, + {0x8236cb35, 0xffffa6ec}, + {0x8236cb36, 0xffffa6ed}, + {0x8236cb37, 0xffffa6ee}, + {0x8236cb38, 0xffffa6ef}, + {0x8236cb39, 0xffffa6f0}, + {0x8236cc30, 0xffffa6f1}, + {0x8236cc31, 0xffffa6f2}, + {0x8236cc32, 0xffffa6f3}, + {0x8236cc33, 0xffffa6f4}, + {0x8236cc34, 0xffffa6f5}, + {0x8236cc35, 0xffffa6f6}, + {0x8236cc36, 0xffffa6f7}, + {0x8236cc37, 0xffffa6f8}, + {0x8236cc38, 0xffffa6f9}, + {0x8236cc39, 0xffffa6fa}, + {0x8236cd30, 0xffffa6fb}, + {0x8236cd31, 0xffffa6fc}, + {0x8236cd32, 0xffffa6fd}, + {0x8236cd33, 0xffffa6fe}, + {0x8236cd34, 0xffffa6ff}, + {0x8236cd35, 0xffffa700}, + {0x8236cd36, 0xffffa701}, + {0x8236cd37, 0xffffa702}, + {0x8236cd38, 0xffffa703}, + {0x8236cd39, 0xffffa704}, + {0x8236ce30, 0xffffa705}, + {0x8236ce31, 0xffffa706}, + {0x8236ce32, 0xffffa707}, + {0x8236ce33, 0xffffa708}, + {0x8236ce34, 0xffffa709}, + {0x8236ce35, 0xffffa70a}, + {0x8236ce36, 0xffffa70b}, + {0x8236ce37, 0xffffa70c}, + {0x8236ce38, 0xffffa70d}, + {0x8236ce39, 0xffffa70e}, + {0x8236cf30, 0xffffa70f}, + {0x8236cf31, 0xffffa710}, + {0x8236cf32, 0xffffa711}, + {0x8236cf33, 0xffffa712}, + {0x8236cf34, 0xffffa713}, + {0x8236cf35, 0xffffa714}, + {0x8236cf36, 0xffffa715}, + {0x8236cf37, 0xffffa716}, + {0x8236cf38, 0xffffa717}, + {0x8236cf39, 0xffffa718}, + {0x8236d030, 0xffffa719}, + {0x8236d031, 0xffffa71a}, + {0x8236d032, 0xffffa71b}, + {0x8236d033, 0xffffa71c}, + {0x8236d034, 0xffffa71d}, + {0x8236d035, 0xffffa71e}, + {0x8236d036, 0xffffa71f}, + {0x8236d037, 0xffffa720}, + {0x8236d038, 0xffffa721}, + {0x8236d039, 0xffffa722}, + {0x8236d130, 0xffffa723}, + {0x8236d131, 0xffffa724}, + {0x8236d132, 0xffffa725}, + {0x8236d133, 0xffffa726}, + {0x8236d134, 0xffffa727}, + {0x8236d135, 0xffffa728}, + {0x8236d136, 0xffffa729}, + {0x8236d137, 0xffffa72a}, + {0x8236d138, 0xffffa72b}, + {0x8236d139, 0xffffa72c}, + {0x8236d230, 0xffffa72d}, + {0x8236d231, 0xffffa72e}, + {0x8236d232, 0xffffa72f}, + {0x8236d233, 0xffffa730}, + {0x8236d234, 0xffffa731}, + {0x8236d235, 0xffffa732}, + {0x8236d236, 0xffffa733}, + {0x8236d237, 0xffffa734}, + {0x8236d238, 0xffffa735}, + {0x8236d239, 0xffffa736}, + {0x8236d330, 0xffffa737}, + {0x8236d331, 0xffffa738}, + {0x8236d332, 0xffffa739}, + {0x8236d333, 0xffffa73a}, + {0x8236d334, 0xffffa73b}, + {0x8236d335, 0xffffa73c}, + {0x8236d336, 0xffffa73d}, + {0x8236d337, 0xffffa73e}, + {0x8236d338, 0xffffa73f}, + {0x8236d339, 0xffffa740}, + {0x8236d430, 0xffffa741}, + {0x8236d431, 0xffffa742}, + {0x8236d432, 0xffffa743}, + {0x8236d433, 0xffffa744}, + {0x8236d434, 0xffffa745}, + {0x8236d435, 0xffffa746}, + {0x8236d436, 0xffffa747}, + {0x8236d437, 0xffffa748}, + {0x8236d438, 0xffffa749}, + {0x8236d439, 0xffffa74a}, + {0x8236d530, 0xffffa74b}, + {0x8236d531, 0xffffa74c}, + {0x8236d532, 0xffffa74d}, + {0x8236d533, 0xffffa74e}, + {0x8236d534, 0xffffa74f}, + {0x8236d535, 0xffffa750}, + {0x8236d536, 0xffffa751}, + {0x8236d537, 0xffffa752}, + {0x8236d538, 0xffffa753}, + {0x8236d539, 0xffffa754}, + {0x8236d630, 0xffffa755}, + {0x8236d631, 0xffffa756}, + {0x8236d632, 0xffffa757}, + {0x8236d633, 0xffffa758}, + {0x8236d634, 0xffffa759}, + {0x8236d635, 0xffffa75a}, + {0x8236d636, 0xffffa75b}, + {0x8236d637, 0xffffa75c}, + {0x8236d638, 0xffffa75d}, + {0x8236d639, 0xffffa75e}, + {0x8236d730, 0xffffa75f}, + {0x8236d731, 0xffffa760}, + {0x8236d732, 0xffffa761}, + {0x8236d733, 0xffffa762}, + {0x8236d734, 0xffffa763}, + {0x8236d735, 0xffffa764}, + {0x8236d736, 0xffffa765}, + {0x8236d737, 0xffffa766}, + {0x8236d738, 0xffffa767}, + {0x8236d739, 0xffffa768}, + {0x8236d830, 0xffffa769}, + {0x8236d831, 0xffffa76a}, + {0x8236d832, 0xffffa76b}, + {0x8236d833, 0xffffa76c}, + {0x8236d834, 0xffffa76d}, + {0x8236d835, 0xffffa76e}, + {0x8236d836, 0xffffa76f}, + {0x8236d837, 0xffffa770}, + {0x8236d838, 0xffffa771}, + {0x8236d839, 0xffffa772}, + {0x8236d930, 0xffffa773}, + {0x8236d931, 0xffffa774}, + {0x8236d932, 0xffffa775}, + {0x8236d933, 0xffffa776}, + {0x8236d934, 0xffffa777}, + {0x8236d935, 0xffffa778}, + {0x8236d936, 0xffffa779}, + {0x8236d937, 0xffffa77a}, + {0x8236d938, 0xffffa77b}, + {0x8236d939, 0xffffa77c}, + {0x8236da30, 0xffffa77d}, + {0x8236da31, 0xffffa77e}, + {0x8236da32, 0xffffa77f}, + {0x8236da33, 0xffffa780}, + {0x8236da34, 0xffffa781}, + {0x8236da35, 0xffffa782}, + {0x8236da36, 0xffffa783}, + {0x8236da37, 0xffffa784}, + {0x8236da38, 0xffffa785}, + {0x8236da39, 0xffffa786}, + {0x8236db30, 0xffffa787}, + {0x8236db31, 0xffffa788}, + {0x8236db32, 0xffffa789}, + {0x8236db33, 0xffffa78a}, + {0x8236db34, 0xffffa78b}, + {0x8236db35, 0xffffa78c}, + {0x8236db36, 0xffffa78d}, + {0x8236db37, 0xffffa78e}, + {0x8236db38, 0xffffa78f}, + {0x8236db39, 0xffffa790}, + {0x8236dc30, 0xffffa791}, + {0x8236dc31, 0xffffa792}, + {0x8236dc32, 0xffffa793}, + {0x8236dc33, 0xffffa794}, + {0x8236dc34, 0xffffa795}, + {0x8236dc35, 0xffffa796}, + {0x8236dc36, 0xffffa797}, + {0x8236dc37, 0xffffa798}, + {0x8236dc38, 0xffffa799}, + {0x8236dc39, 0xffffa79a}, + {0x8236dd30, 0xffffa79b}, + {0x8236dd31, 0xffffa79c}, + {0x8236dd32, 0xffffa79d}, + {0x8236dd33, 0xffffa79e}, + {0x8236dd34, 0xffffa79f}, + {0x8236dd35, 0xffffa7a0}, + {0x8236dd36, 0xffffa7a1}, + {0x8236dd37, 0xffffa7a2}, + {0x8236dd38, 0xffffa7a3}, + {0x8236dd39, 0xffffa7a4}, + {0x8236de30, 0xffffa7a5}, + {0x8236de31, 0xffffa7a6}, + {0x8236de32, 0xffffa7a7}, + {0x8236de33, 0xffffa7a8}, + {0x8236de34, 0xffffa7a9}, + {0x8236de35, 0xffffa7aa}, + {0x8236de36, 0xffffa7ab}, + {0x8236de37, 0xffffa7ac}, + {0x8236de38, 0xffffa7ad}, + {0x8236de39, 0xffffa7ae}, + {0x8236df30, 0xffffa7af}, + {0x8236df31, 0xffffa7b0}, + {0x8236df32, 0xffffa7b1}, + {0x8236df33, 0xffffa7b2}, + {0x8236df34, 0xffffa7b3}, + {0x8236df35, 0xffffa7b4}, + {0x8236df36, 0xffffa7b5}, + {0x8236df37, 0xffffa7b6}, + {0x8236df38, 0xffffa7b7}, + {0x8236df39, 0xffffa7b8}, + {0x8236e030, 0xffffa7b9}, + {0x8236e031, 0xffffa7ba}, + {0x8236e032, 0xffffa7bb}, + {0x8236e033, 0xffffa7bc}, + {0x8236e034, 0xffffa7bd}, + {0x8236e035, 0xffffa7be}, + {0x8236e036, 0xffffa7bf}, + {0x8236e037, 0xffffa7c0}, + {0x8236e038, 0xffffa7c1}, + {0x8236e039, 0xffffa7c2}, + {0x8236e130, 0xffffa7c3}, + {0x8236e131, 0xffffa7c4}, + {0x8236e132, 0xffffa7c5}, + {0x8236e133, 0xffffa7c6}, + {0x8236e134, 0xffffa7c7}, + {0x8236e135, 0xffffa7c8}, + {0x8236e136, 0xffffa7c9}, + {0x8236e137, 0xffffa7ca}, + {0x8236e138, 0xffffa7cb}, + {0x8236e139, 0xffffa7cc}, + {0x8236e230, 0xffffa7cd}, + {0x8236e231, 0xffffa7ce}, + {0x8236e232, 0xffffa7cf}, + {0x8236e233, 0xffffa7d0}, + {0x8236e234, 0xffffa7d1}, + {0x8236e235, 0xffffa7d2}, + {0x8236e236, 0xffffa7d3}, + {0x8236e237, 0xffffa7d4}, + {0x8236e238, 0xffffa7d5}, + {0x8236e239, 0xffffa7d6}, + {0x8236e330, 0xffffa7d7}, + {0x8236e331, 0xffffa7d8}, + {0x8236e332, 0xffffa7d9}, + {0x8236e333, 0xffffa7da}, + {0x8236e334, 0xffffa7db}, + {0x8236e335, 0xffffa7dc}, + {0x8236e336, 0xffffa7dd}, + {0x8236e337, 0xffffa7de}, + {0x8236e338, 0xffffa7df}, + {0x8236e339, 0xffffa7e0}, + {0x8236e430, 0xffffa7e1}, + {0x8236e431, 0xffffa7e2}, + {0x8236e432, 0xffffa7e3}, + {0x8236e433, 0xffffa7e4}, + {0x8236e434, 0xffffa7e5}, + {0x8236e435, 0xffffa7e6}, + {0x8236e436, 0xffffa7e7}, + {0x8236e437, 0xffffa7e8}, + {0x8236e438, 0xffffa7e9}, + {0x8236e439, 0xffffa7ea}, + {0x8236e530, 0xffffa7eb}, + {0x8236e531, 0xffffa7ec}, + {0x8236e532, 0xffffa7ed}, + {0x8236e533, 0xffffa7ee}, + {0x8236e534, 0xffffa7ef}, + {0x8236e535, 0xffffa7f0}, + {0x8236e536, 0xffffa7f1}, + {0x8236e537, 0xffffa7f2}, + {0x8236e538, 0xffffa7f3}, + {0x8236e539, 0xffffa7f4}, + {0x8236e630, 0xffffa7f5}, + {0x8236e631, 0xffffa7f6}, + {0x8236e632, 0xffffa7f7}, + {0x8236e633, 0xffffa7f8}, + {0x8236e634, 0xffffa7f9}, + {0x8236e635, 0xffffa7fa}, + {0x8236e636, 0xffffa7fb}, + {0x8236e637, 0xffffa7fc}, + {0x8236e638, 0xffffa7fd}, + {0x8236e639, 0xffffa7fe}, + {0x8236e730, 0xffffa7ff}, + {0x8236e731, 0xffffa800}, + {0x8236e732, 0xffffa801}, + {0x8236e733, 0xffffa802}, + {0x8236e734, 0xffffa803}, + {0x8236e735, 0xffffa804}, + {0x8236e736, 0xffffa805}, + {0x8236e737, 0xffffa806}, + {0x8236e738, 0xffffa807}, + {0x8236e739, 0xffffa808}, + {0x8236e830, 0xffffa809}, + {0x8236e831, 0xffffa80a}, + {0x8236e832, 0xffffa80b}, + {0x8236e833, 0xffffa80c}, + {0x8236e834, 0xffffa80d}, + {0x8236e835, 0xffffa80e}, + {0x8236e836, 0xffffa80f}, + {0x8236e837, 0xffffa810}, + {0x8236e838, 0xffffa811}, + {0x8236e839, 0xffffa812}, + {0x8236e930, 0xffffa813}, + {0x8236e931, 0xffffa814}, + {0x8236e932, 0xffffa815}, + {0x8236e933, 0xffffa816}, + {0x8236e934, 0xffffa817}, + {0x8236e935, 0xffffa818}, + {0x8236e936, 0xffffa819}, + {0x8236e937, 0xffffa81a}, + {0x8236e938, 0xffffa81b}, + {0x8236e939, 0xffffa81c}, + {0x8236ea30, 0xffffa81d}, + {0x8236ea31, 0xffffa81e}, + {0x8236ea32, 0xffffa81f}, + {0x8236ea33, 0xffffa820}, + {0x8236ea34, 0xffffa821}, + {0x8236ea35, 0xffffa822}, + {0x8236ea36, 0xffffa823}, + {0x8236ea37, 0xffffa824}, + {0x8236ea38, 0xffffa825}, + {0x8236ea39, 0xffffa826}, + {0x8236eb30, 0xffffa827}, + {0x8236eb31, 0xffffa828}, + {0x8236eb32, 0xffffa829}, + {0x8236eb33, 0xffffa82a}, + {0x8236eb34, 0xffffa82b}, + {0x8236eb35, 0xffffa82c}, + {0x8236eb36, 0xffffa82d}, + {0x8236eb37, 0xffffa82e}, + {0x8236eb38, 0xffffa82f}, + {0x8236eb39, 0xffffa830}, + {0x8236ec30, 0xffffa831}, + {0x8236ec31, 0xffffa832}, + {0x8236ec32, 0xffffa833}, + {0x8236ec33, 0xffffa834}, + {0x8236ec34, 0xffffa835}, + {0x8236ec35, 0xffffa836}, + {0x8236ec36, 0xffffa837}, + {0x8236ec37, 0xffffa838}, + {0x8236ec38, 0xffffa839}, + {0x8236ec39, 0xffffa83a}, + {0x8236ed30, 0xffffa83b}, + {0x8236ed31, 0xffffa83c}, + {0x8236ed32, 0xffffa83d}, + {0x8236ed33, 0xffffa83e}, + {0x8236ed34, 0xffffa83f}, + {0x8236ed35, 0xffffa840}, + {0x8236ed36, 0xffffa841}, + {0x8236ed37, 0xffffa842}, + {0x8236ed38, 0xffffa843}, + {0x8236ed39, 0xffffa844}, + {0x8236ee30, 0xffffa845}, + {0x8236ee31, 0xffffa846}, + {0x8236ee32, 0xffffa847}, + {0x8236ee33, 0xffffa848}, + {0x8236ee34, 0xffffa849}, + {0x8236ee35, 0xffffa84a}, + {0x8236ee36, 0xffffa84b}, + {0x8236ee37, 0xffffa84c}, + {0x8236ee38, 0xffffa84d}, + {0x8236ee39, 0xffffa84e}, + {0x8236ef30, 0xffffa84f}, + {0x8236ef31, 0xffffa850}, + {0x8236ef32, 0xffffa851}, + {0x8236ef33, 0xffffa852}, + {0x8236ef34, 0xffffa853}, + {0x8236ef35, 0xffffa854}, + {0x8236ef36, 0xffffa855}, + {0x8236ef37, 0xffffa856}, + {0x8236ef38, 0xffffa857}, + {0x8236ef39, 0xffffa858}, + {0x8236f030, 0xffffa859}, + {0x8236f031, 0xffffa85a}, + {0x8236f032, 0xffffa85b}, + {0x8236f033, 0xffffa85c}, + {0x8236f034, 0xffffa85d}, + {0x8236f035, 0xffffa85e}, + {0x8236f036, 0xffffa85f}, + {0x8236f037, 0xffffa860}, + {0x8236f038, 0xffffa861}, + {0x8236f039, 0xffffa862}, + {0x8236f130, 0xffffa863}, + {0x8236f131, 0xffffa864}, + {0x8236f132, 0xffffa865}, + {0x8236f133, 0xffffa866}, + {0x8236f134, 0xffffa867}, + {0x8236f135, 0xffffa868}, + {0x8236f136, 0xffffa869}, + {0x8236f137, 0xffffa86a}, + {0x8236f138, 0xffffa86b}, + {0x8236f139, 0xffffa86c}, + {0x8236f230, 0xffffa86d}, + {0x8236f231, 0xffffa86e}, + {0x8236f232, 0xffffa86f}, + {0x8236f233, 0xffffa870}, + {0x8236f234, 0xffffa871}, + {0x8236f235, 0xffffa872}, + {0x8236f236, 0xffffa873}, + {0x8236f237, 0xffffa874}, + {0x8236f238, 0xffffa875}, + {0x8236f239, 0xffffa876}, + {0x8236f330, 0xffffa877}, + {0x8236f331, 0xffffa878}, + {0x8236f332, 0xffffa879}, + {0x8236f333, 0xffffa87a}, + {0x8236f334, 0xffffa87b}, + {0x8236f335, 0xffffa87c}, + {0x8236f336, 0xffffa87d}, + {0x8236f337, 0xffffa87e}, + {0x8236f338, 0xffffa87f}, + {0x8236f339, 0xffffa880}, + {0x8236f430, 0xffffa881}, + {0x8236f431, 0xffffa882}, + {0x8236f432, 0xffffa883}, + {0x8236f433, 0xffffa884}, + {0x8236f434, 0xffffa885}, + {0x8236f435, 0xffffa886}, + {0x8236f436, 0xffffa887}, + {0x8236f437, 0xffffa888}, + {0x8236f438, 0xffffa889}, + {0x8236f439, 0xffffa88a}, + {0x8236f530, 0xffffa88b}, + {0x8236f531, 0xffffa88c}, + {0x8236f532, 0xffffa88d}, + {0x8236f533, 0xffffa88e}, + {0x8236f534, 0xffffa88f}, + {0x8236f535, 0xffffa890}, + {0x8236f536, 0xffffa891}, + {0x8236f537, 0xffffa892}, + {0x8236f538, 0xffffa893}, + {0x8236f539, 0xffffa894}, + {0x8236f630, 0xffffa895}, + {0x8236f631, 0xffffa896}, + {0x8236f632, 0xffffa897}, + {0x8236f633, 0xffffa898}, + {0x8236f634, 0xffffa899}, + {0x8236f635, 0xffffa89a}, + {0x8236f636, 0xffffa89b}, + {0x8236f637, 0xffffa89c}, + {0x8236f638, 0xffffa89d}, + {0x8236f639, 0xffffa89e}, + {0x8236f730, 0xffffa89f}, + {0x8236f731, 0xffffa8a0}, + {0x8236f732, 0xffffa8a1}, + {0x8236f733, 0xffffa8a2}, + {0x8236f734, 0xffffa8a3}, + {0x8236f735, 0xffffa8a4}, + {0x8236f736, 0xffffa8a5}, + {0x8236f737, 0xffffa8a6}, + {0x8236f738, 0xffffa8a7}, + {0x8236f739, 0xffffa8a8}, + {0x8236f830, 0xffffa8a9}, + {0x8236f831, 0xffffa8aa}, + {0x8236f832, 0xffffa8ab}, + {0x8236f833, 0xffffa8ac}, + {0x8236f834, 0xffffa8ad}, + {0x8236f835, 0xffffa8ae}, + {0x8236f836, 0xffffa8af}, + {0x8236f837, 0xffffa8b0}, + {0x8236f838, 0xffffa8b1}, + {0x8236f839, 0xffffa8b2}, + {0x8236f930, 0xffffa8b3}, + {0x8236f931, 0xffffa8b4}, + {0x8236f932, 0xffffa8b5}, + {0x8236f933, 0xffffa8b6}, + {0x8236f934, 0xffffa8b7}, + {0x8236f935, 0xffffa8b8}, + {0x8236f936, 0xffffa8b9}, + {0x8236f937, 0xffffa8ba}, + {0x8236f938, 0xffffa8bb}, + {0x8236f939, 0xffffa8bc}, + {0x8236fa30, 0xffffa8bd}, + {0x8236fa31, 0xffffa8be}, + {0x8236fa32, 0xffffa8bf}, + {0x8236fa33, 0xffffa8c0}, + {0x8236fa34, 0xffffa8c1}, + {0x8236fa35, 0xffffa8c2}, + {0x8236fa36, 0xffffa8c3}, + {0x8236fa37, 0xffffa8c4}, + {0x8236fa38, 0xffffa8c5}, + {0x8236fa39, 0xffffa8c6}, + {0x8236fb30, 0xffffa8c7}, + {0x8236fb31, 0xffffa8c8}, + {0x8236fb32, 0xffffa8c9}, + {0x8236fb33, 0xffffa8ca}, + {0x8236fb34, 0xffffa8cb}, + {0x8236fb35, 0xffffa8cc}, + {0x8236fb36, 0xffffa8cd}, + {0x8236fb37, 0xffffa8ce}, + {0x8236fb38, 0xffffa8cf}, + {0x8236fb39, 0xffffa8d0}, + {0x8236fc30, 0xffffa8d1}, + {0x8236fc31, 0xffffa8d2}, + {0x8236fc32, 0xffffa8d3}, + {0x8236fc33, 0xffffa8d4}, + {0x8236fc34, 0xffffa8d5}, + {0x8236fc35, 0xffffa8d6}, + {0x8236fc36, 0xffffa8d7}, + {0x8236fc37, 0xffffa8d8}, + {0x8236fc38, 0xffffa8d9}, + {0x8236fc39, 0xffffa8da}, + {0x8236fd30, 0xffffa8db}, + {0x8236fd31, 0xffffa8dc}, + {0x8236fd32, 0xffffa8dd}, + {0x8236fd33, 0xffffa8de}, + {0x8236fd34, 0xffffa8df}, + {0x8236fd35, 0xffffa8e0}, + {0x8236fd36, 0xffffa8e1}, + {0x8236fd37, 0xffffa8e2}, + {0x8236fd38, 0xffffa8e3}, + {0x8236fd39, 0xffffa8e4}, + {0x8236fe30, 0xffffa8e5}, + {0x8236fe31, 0xffffa8e6}, + {0x8236fe32, 0xffffa8e7}, + {0x8236fe33, 0xffffa8e8}, + {0x8236fe34, 0xffffa8e9}, + {0x8236fe35, 0xffffa8ea}, + {0x8236fe36, 0xffffa8eb}, + {0x8236fe37, 0xffffa8ec}, + {0x8236fe38, 0xffffa8ed}, + {0x8236fe39, 0xffffa8ee}, + {0x82378130, 0xffffa8ef}, + {0x82378131, 0xffffa8f0}, + {0x82378132, 0xffffa8f1}, + {0x82378133, 0xffffa8f2}, + {0x82378134, 0xffffa8f3}, + {0x82378135, 0xffffa8f4}, + {0x82378136, 0xffffa8f5}, + {0x82378137, 0xffffa8f6}, + {0x82378138, 0xffffa8f7}, + {0x82378139, 0xffffa8f8}, + {0x82378230, 0xffffa8f9}, + {0x82378231, 0xffffa8fa}, + {0x82378232, 0xffffa8fb}, + {0x82378233, 0xffffa8fc}, + {0x82378234, 0xffffa8fd}, + {0x82378235, 0xffffa8fe}, + {0x82378236, 0xffffa8ff}, + {0x82378237, 0xffffa900}, + {0x82378238, 0xffffa901}, + {0x82378239, 0xffffa902}, + {0x82378330, 0xffffa903}, + {0x82378331, 0xffffa904}, + {0x82378332, 0xffffa905}, + {0x82378333, 0xffffa906}, + {0x82378334, 0xffffa907}, + {0x82378335, 0xffffa908}, + {0x82378336, 0xffffa909}, + {0x82378337, 0xffffa90a}, + {0x82378338, 0xffffa90b}, + {0x82378339, 0xffffa90c}, + {0x82378430, 0xffffa90d}, + {0x82378431, 0xffffa90e}, + {0x82378432, 0xffffa90f}, + {0x82378433, 0xffffa910}, + {0x82378434, 0xffffa911}, + {0x82378435, 0xffffa912}, + {0x82378436, 0xffffa913}, + {0x82378437, 0xffffa914}, + {0x82378438, 0xffffa915}, + {0x82378439, 0xffffa916}, + {0x82378530, 0xffffa917}, + {0x82378531, 0xffffa918}, + {0x82378532, 0xffffa919}, + {0x82378533, 0xffffa91a}, + {0x82378534, 0xffffa91b}, + {0x82378535, 0xffffa91c}, + {0x82378536, 0xffffa91d}, + {0x82378537, 0xffffa91e}, + {0x82378538, 0xffffa91f}, + {0x82378539, 0xffffa920}, + {0x82378630, 0xffffa921}, + {0x82378631, 0xffffa922}, + {0x82378632, 0xffffa923}, + {0x82378633, 0xffffa924}, + {0x82378634, 0xffffa925}, + {0x82378635, 0xffffa926}, + {0x82378636, 0xffffa927}, + {0x82378637, 0xffffa928}, + {0x82378638, 0xffffa929}, + {0x82378639, 0xffffa92a}, + {0x82378730, 0xffffa92b}, + {0x82378731, 0xffffa92c}, + {0x82378732, 0xffffa92d}, + {0x82378733, 0xffffa92e}, + {0x82378734, 0xffffa92f}, + {0x82378735, 0xffffa930}, + {0x82378736, 0xffffa931}, + {0x82378737, 0xffffa932}, + {0x82378738, 0xffffa933}, + {0x82378739, 0xffffa934}, + {0x82378830, 0xffffa935}, + {0x82378831, 0xffffa936}, + {0x82378832, 0xffffa937}, + {0x82378833, 0xffffa938}, + {0x82378834, 0xffffa939}, + {0x82378835, 0xffffa93a}, + {0x82378836, 0xffffa93b}, + {0x82378837, 0xffffa93c}, + {0x82378838, 0xffffa93d}, + {0x82378839, 0xffffa93e}, + {0x82378930, 0xffffa93f}, + {0x82378931, 0xffffa940}, + {0x82378932, 0xffffa941}, + {0x82378933, 0xffffa942}, + {0x82378934, 0xffffa943}, + {0x82378935, 0xffffa944}, + {0x82378936, 0xffffa945}, + {0x82378937, 0xffffa946}, + {0x82378938, 0xffffa947}, + {0x82378939, 0xffffa948}, + {0x82378a30, 0xffffa949}, + {0x82378a31, 0xffffa94a}, + {0x82378a32, 0xffffa94b}, + {0x82378a33, 0xffffa94c}, + {0x82378a34, 0xffffa94d}, + {0x82378a35, 0xffffa94e}, + {0x82378a36, 0xffffa94f}, + {0x82378a37, 0xffffa950}, + {0x82378a38, 0xffffa951}, + {0x82378a39, 0xffffa952}, + {0x82378b30, 0xffffa953}, + {0x82378b31, 0xffffa954}, + {0x82378b32, 0xffffa955}, + {0x82378b33, 0xffffa956}, + {0x82378b34, 0xffffa957}, + {0x82378b35, 0xffffa958}, + {0x82378b36, 0xffffa959}, + {0x82378b37, 0xffffa95a}, + {0x82378b38, 0xffffa95b}, + {0x82378b39, 0xffffa95c}, + {0x82378c30, 0xffffa95d}, + {0x82378c31, 0xffffa95e}, + {0x82378c32, 0xffffa95f}, + {0x82378c33, 0xffffa960}, + {0x82378c34, 0xffffa961}, + {0x82378c35, 0xffffa962}, + {0x82378c36, 0xffffa963}, + {0x82378c37, 0xffffa964}, + {0x82378c38, 0xffffa965}, + {0x82378c39, 0xffffa966}, + {0x82378d30, 0xffffa967}, + {0x82378d31, 0xffffa968}, + {0x82378d32, 0xffffa969}, + {0x82378d33, 0xffffa96a}, + {0x82378d34, 0xffffa96b}, + {0x82378d35, 0xffffa96c}, + {0x82378d36, 0xffffa96d}, + {0x82378d37, 0xffffa96e}, + {0x82378d38, 0xffffa96f}, + {0x82378d39, 0xffffa970}, + {0x82378e30, 0xffffa971}, + {0x82378e31, 0xffffa972}, + {0x82378e32, 0xffffa973}, + {0x82378e33, 0xffffa974}, + {0x82378e34, 0xffffa975}, + {0x82378e35, 0xffffa976}, + {0x82378e36, 0xffffa977}, + {0x82378e37, 0xffffa978}, + {0x82378e38, 0xffffa979}, + {0x82378e39, 0xffffa97a}, + {0x82378f30, 0xffffa97b}, + {0x82378f31, 0xffffa97c}, + {0x82378f32, 0xffffa97d}, + {0x82378f33, 0xffffa97e}, + {0x82378f34, 0xffffa97f}, + {0x82378f35, 0xffffa980}, + {0x82378f36, 0xffffa981}, + {0x82378f37, 0xffffa982}, + {0x82378f38, 0xffffa983}, + {0x82378f39, 0xffffa984}, + {0x82379030, 0xffffa985}, + {0x82379031, 0xffffa986}, + {0x82379032, 0xffffa987}, + {0x82379033, 0xffffa988}, + {0x82379034, 0xffffa989}, + {0x82379035, 0xffffa98a}, + {0x82379036, 0xffffa98b}, + {0x82379037, 0xffffa98c}, + {0x82379038, 0xffffa98d}, + {0x82379039, 0xffffa98e}, + {0x82379130, 0xffffa98f}, + {0x82379131, 0xffffa990}, + {0x82379132, 0xffffa991}, + {0x82379133, 0xffffa992}, + {0x82379134, 0xffffa993}, + {0x82379135, 0xffffa994}, + {0x82379136, 0xffffa995}, + {0x82379137, 0xffffa996}, + {0x82379138, 0xffffa997}, + {0x82379139, 0xffffa998}, + {0x82379230, 0xffffa999}, + {0x82379231, 0xffffa99a}, + {0x82379232, 0xffffa99b}, + {0x82379233, 0xffffa99c}, + {0x82379234, 0xffffa99d}, + {0x82379235, 0xffffa99e}, + {0x82379236, 0xffffa99f}, + {0x82379237, 0xffffa9a0}, + {0x82379238, 0xffffa9a1}, + {0x82379239, 0xffffa9a2}, + {0x82379330, 0xffffa9a3}, + {0x82379331, 0xffffa9a4}, + {0x82379332, 0xffffa9a5}, + {0x82379333, 0xffffa9a6}, + {0x82379334, 0xffffa9a7}, + {0x82379335, 0xffffa9a8}, + {0x82379336, 0xffffa9a9}, + {0x82379337, 0xffffa9aa}, + {0x82379338, 0xffffa9ab}, + {0x82379339, 0xffffa9ac}, + {0x82379430, 0xffffa9ad}, + {0x82379431, 0xffffa9ae}, + {0x82379432, 0xffffa9af}, + {0x82379433, 0xffffa9b0}, + {0x82379434, 0xffffa9b1}, + {0x82379435, 0xffffa9b2}, + {0x82379436, 0xffffa9b3}, + {0x82379437, 0xffffa9b4}, + {0x82379438, 0xffffa9b5}, + {0x82379439, 0xffffa9b6}, + {0x82379530, 0xffffa9b7}, + {0x82379531, 0xffffa9b8}, + {0x82379532, 0xffffa9b9}, + {0x82379533, 0xffffa9ba}, + {0x82379534, 0xffffa9bb}, + {0x82379535, 0xffffa9bc}, + {0x82379536, 0xffffa9bd}, + {0x82379537, 0xffffa9be}, + {0x82379538, 0xffffa9bf}, + {0x82379539, 0xffffa9c0}, + {0x82379630, 0xffffa9c1}, + {0x82379631, 0xffffa9c2}, + {0x82379632, 0xffffa9c3}, + {0x82379633, 0xffffa9c4}, + {0x82379634, 0xffffa9c5}, + {0x82379635, 0xffffa9c6}, + {0x82379636, 0xffffa9c7}, + {0x82379637, 0xffffa9c8}, + {0x82379638, 0xffffa9c9}, + {0x82379639, 0xffffa9ca}, + {0x82379730, 0xffffa9cb}, + {0x82379731, 0xffffa9cc}, + {0x82379732, 0xffffa9cd}, + {0x82379733, 0xffffa9ce}, + {0x82379734, 0xffffa9cf}, + {0x82379735, 0xffffa9d0}, + {0x82379736, 0xffffa9d1}, + {0x82379737, 0xffffa9d2}, + {0x82379738, 0xffffa9d3}, + {0x82379739, 0xffffa9d4}, + {0x82379830, 0xffffa9d5}, + {0x82379831, 0xffffa9d6}, + {0x82379832, 0xffffa9d7}, + {0x82379833, 0xffffa9d8}, + {0x82379834, 0xffffa9d9}, + {0x82379835, 0xffffa9da}, + {0x82379836, 0xffffa9db}, + {0x82379837, 0xffffa9dc}, + {0x82379838, 0xffffa9dd}, + {0x82379839, 0xffffa9de}, + {0x82379930, 0xffffa9df}, + {0x82379931, 0xffffa9e0}, + {0x82379932, 0xffffa9e1}, + {0x82379933, 0xffffa9e2}, + {0x82379934, 0xffffa9e3}, + {0x82379935, 0xffffa9e4}, + {0x82379936, 0xffffa9e5}, + {0x82379937, 0xffffa9e6}, + {0x82379938, 0xffffa9e7}, + {0x82379939, 0xffffa9e8}, + {0x82379a30, 0xffffa9e9}, + {0x82379a31, 0xffffa9ea}, + {0x82379a32, 0xffffa9eb}, + {0x82379a33, 0xffffa9ec}, + {0x82379a34, 0xffffa9ed}, + {0x82379a35, 0xffffa9ee}, + {0x82379a36, 0xffffa9ef}, + {0x82379a37, 0xffffa9f0}, + {0x82379a38, 0xffffa9f1}, + {0x82379a39, 0xffffa9f2}, + {0x82379b30, 0xffffa9f3}, + {0x82379b31, 0xffffa9f4}, + {0x82379b32, 0xffffa9f5}, + {0x82379b33, 0xffffa9f6}, + {0x82379b34, 0xffffa9f7}, + {0x82379b35, 0xffffa9f8}, + {0x82379b36, 0xffffa9f9}, + {0x82379b37, 0xffffa9fa}, + {0x82379b38, 0xffffa9fb}, + {0x82379b39, 0xffffa9fc}, + {0x82379c30, 0xffffa9fd}, + {0x82379c31, 0xffffa9fe}, + {0x82379c32, 0xffffa9ff}, + {0x82379c33, 0xffffaa00}, + {0x82379c34, 0xffffaa01}, + {0x82379c35, 0xffffaa02}, + {0x82379c36, 0xffffaa03}, + {0x82379c37, 0xffffaa04}, + {0x82379c38, 0xffffaa05}, + {0x82379c39, 0xffffaa06}, + {0x82379d30, 0xffffaa07}, + {0x82379d31, 0xffffaa08}, + {0x82379d32, 0xffffaa09}, + {0x82379d33, 0xffffaa0a}, + {0x82379d34, 0xffffaa0b}, + {0x82379d35, 0xffffaa0c}, + {0x82379d36, 0xffffaa0d}, + {0x82379d37, 0xffffaa0e}, + {0x82379d38, 0xffffaa0f}, + {0x82379d39, 0xffffaa10}, + {0x82379e30, 0xffffaa11}, + {0x82379e31, 0xffffaa12}, + {0x82379e32, 0xffffaa13}, + {0x82379e33, 0xffffaa14}, + {0x82379e34, 0xffffaa15}, + {0x82379e35, 0xffffaa16}, + {0x82379e36, 0xffffaa17}, + {0x82379e37, 0xffffaa18}, + {0x82379e38, 0xffffaa19}, + {0x82379e39, 0xffffaa1a}, + {0x82379f30, 0xffffaa1b}, + {0x82379f31, 0xffffaa1c}, + {0x82379f32, 0xffffaa1d}, + {0x82379f33, 0xffffaa1e}, + {0x82379f34, 0xffffaa1f}, + {0x82379f35, 0xffffaa20}, + {0x82379f36, 0xffffaa21}, + {0x82379f37, 0xffffaa22}, + {0x82379f38, 0xffffaa23}, + {0x82379f39, 0xffffaa24}, + {0x8237a030, 0xffffaa25}, + {0x8237a031, 0xffffaa26}, + {0x8237a032, 0xffffaa27}, + {0x8237a033, 0xffffaa28}, + {0x8237a034, 0xffffaa29}, + {0x8237a035, 0xffffaa2a}, + {0x8237a036, 0xffffaa2b}, + {0x8237a037, 0xffffaa2c}, + {0x8237a038, 0xffffaa2d}, + {0x8237a039, 0xffffaa2e}, + {0x8237a130, 0xffffaa2f}, + {0x8237a131, 0xffffaa30}, + {0x8237a132, 0xffffaa31}, + {0x8237a133, 0xffffaa32}, + {0x8237a134, 0xffffaa33}, + {0x8237a135, 0xffffaa34}, + {0x8237a136, 0xffffaa35}, + {0x8237a137, 0xffffaa36}, + {0x8237a138, 0xffffaa37}, + {0x8237a139, 0xffffaa38}, + {0x8237a230, 0xffffaa39}, + {0x8237a231, 0xffffaa3a}, + {0x8237a232, 0xffffaa3b}, + {0x8237a233, 0xffffaa3c}, + {0x8237a234, 0xffffaa3d}, + {0x8237a235, 0xffffaa3e}, + {0x8237a236, 0xffffaa3f}, + {0x8237a237, 0xffffaa40}, + {0x8237a238, 0xffffaa41}, + {0x8237a239, 0xffffaa42}, + {0x8237a330, 0xffffaa43}, + {0x8237a331, 0xffffaa44}, + {0x8237a332, 0xffffaa45}, + {0x8237a333, 0xffffaa46}, + {0x8237a334, 0xffffaa47}, + {0x8237a335, 0xffffaa48}, + {0x8237a336, 0xffffaa49}, + {0x8237a337, 0xffffaa4a}, + {0x8237a338, 0xffffaa4b}, + {0x8237a339, 0xffffaa4c}, + {0x8237a430, 0xffffaa4d}, + {0x8237a431, 0xffffaa4e}, + {0x8237a432, 0xffffaa4f}, + {0x8237a433, 0xffffaa50}, + {0x8237a434, 0xffffaa51}, + {0x8237a435, 0xffffaa52}, + {0x8237a436, 0xffffaa53}, + {0x8237a437, 0xffffaa54}, + {0x8237a438, 0xffffaa55}, + {0x8237a439, 0xffffaa56}, + {0x8237a530, 0xffffaa57}, + {0x8237a531, 0xffffaa58}, + {0x8237a532, 0xffffaa59}, + {0x8237a533, 0xffffaa5a}, + {0x8237a534, 0xffffaa5b}, + {0x8237a535, 0xffffaa5c}, + {0x8237a536, 0xffffaa5d}, + {0x8237a537, 0xffffaa5e}, + {0x8237a538, 0xffffaa5f}, + {0x8237a539, 0xffffaa60}, + {0x8237a630, 0xffffaa61}, + {0x8237a631, 0xffffaa62}, + {0x8237a632, 0xffffaa63}, + {0x8237a633, 0xffffaa64}, + {0x8237a634, 0xffffaa65}, + {0x8237a635, 0xffffaa66}, + {0x8237a636, 0xffffaa67}, + {0x8237a637, 0xffffaa68}, + {0x8237a638, 0xffffaa69}, + {0x8237a639, 0xffffaa6a}, + {0x8237a730, 0xffffaa6b}, + {0x8237a731, 0xffffaa6c}, + {0x8237a732, 0xffffaa6d}, + {0x8237a733, 0xffffaa6e}, + {0x8237a734, 0xffffaa6f}, + {0x8237a735, 0xffffaa70}, + {0x8237a736, 0xffffaa71}, + {0x8237a737, 0xffffaa72}, + {0x8237a738, 0xffffaa73}, + {0x8237a739, 0xffffaa74}, + {0x8237a830, 0xffffaa75}, + {0x8237a831, 0xffffaa76}, + {0x8237a832, 0xffffaa77}, + {0x8237a833, 0xffffaa78}, + {0x8237a834, 0xffffaa79}, + {0x8237a835, 0xffffaa7a}, + {0x8237a836, 0xffffaa7b}, + {0x8237a837, 0xffffaa7c}, + {0x8237a838, 0xffffaa7d}, + {0x8237a839, 0xffffaa7e}, + {0x8237a930, 0xffffaa7f}, + {0x8237a931, 0xffffaa80}, + {0x8237a932, 0xffffaa81}, + {0x8237a933, 0xffffaa82}, + {0x8237a934, 0xffffaa83}, + {0x8237a935, 0xffffaa84}, + {0x8237a936, 0xffffaa85}, + {0x8237a937, 0xffffaa86}, + {0x8237a938, 0xffffaa87}, + {0x8237a939, 0xffffaa88}, + {0x8237aa30, 0xffffaa89}, + {0x8237aa31, 0xffffaa8a}, + {0x8237aa32, 0xffffaa8b}, + {0x8237aa33, 0xffffaa8c}, + {0x8237aa34, 0xffffaa8d}, + {0x8237aa35, 0xffffaa8e}, + {0x8237aa36, 0xffffaa8f}, + {0x8237aa37, 0xffffaa90}, + {0x8237aa38, 0xffffaa91}, + {0x8237aa39, 0xffffaa92}, + {0x8237ab30, 0xffffaa93}, + {0x8237ab31, 0xffffaa94}, + {0x8237ab32, 0xffffaa95}, + {0x8237ab33, 0xffffaa96}, + {0x8237ab34, 0xffffaa97}, + {0x8237ab35, 0xffffaa98}, + {0x8237ab36, 0xffffaa99}, + {0x8237ab37, 0xffffaa9a}, + {0x8237ab38, 0xffffaa9b}, + {0x8237ab39, 0xffffaa9c}, + {0x8237ac30, 0xffffaa9d}, + {0x8237ac31, 0xffffaa9e}, + {0x8237ac32, 0xffffaa9f}, + {0x8237ac33, 0xffffaaa0}, + {0x8237ac34, 0xffffaaa1}, + {0x8237ac35, 0xffffaaa2}, + {0x8237ac36, 0xffffaaa3}, + {0x8237ac37, 0xffffaaa4}, + {0x8237ac38, 0xffffaaa5}, + {0x8237ac39, 0xffffaaa6}, + {0x8237ad30, 0xffffaaa7}, + {0x8237ad31, 0xffffaaa8}, + {0x8237ad32, 0xffffaaa9}, + {0x8237ad33, 0xffffaaaa}, + {0x8237ad34, 0xffffaaab}, + {0x8237ad35, 0xffffaaac}, + {0x8237ad36, 0xffffaaad}, + {0x8237ad37, 0xffffaaae}, + {0x8237ad38, 0xffffaaaf}, + {0x8237ad39, 0xffffaab0}, + {0x8237ae30, 0xffffaab1}, + {0x8237ae31, 0xffffaab2}, + {0x8237ae32, 0xffffaab3}, + {0x8237ae33, 0xffffaab4}, + {0x8237ae34, 0xffffaab5}, + {0x8237ae35, 0xffffaab6}, + {0x8237ae36, 0xffffaab7}, + {0x8237ae37, 0xffffaab8}, + {0x8237ae38, 0xffffaab9}, + {0x8237ae39, 0xffffaaba}, + {0x8237af30, 0xffffaabb}, + {0x8237af31, 0xffffaabc}, + {0x8237af32, 0xffffaabd}, + {0x8237af33, 0xffffaabe}, + {0x8237af34, 0xffffaabf}, + {0x8237af35, 0xffffaac0}, + {0x8237af36, 0xffffaac1}, + {0x8237af37, 0xffffaac2}, + {0x8237af38, 0xffffaac3}, + {0x8237af39, 0xffffaac4}, + {0x8237b030, 0xffffaac5}, + {0x8237b031, 0xffffaac6}, + {0x8237b032, 0xffffaac7}, + {0x8237b033, 0xffffaac8}, + {0x8237b034, 0xffffaac9}, + {0x8237b035, 0xffffaaca}, + {0x8237b036, 0xffffaacb}, + {0x8237b037, 0xffffaacc}, + {0x8237b038, 0xffffaacd}, + {0x8237b039, 0xffffaace}, + {0x8237b130, 0xffffaacf}, + {0x8237b131, 0xffffaad0}, + {0x8237b132, 0xffffaad1}, + {0x8237b133, 0xffffaad2}, + {0x8237b134, 0xffffaad3}, + {0x8237b135, 0xffffaad4}, + {0x8237b136, 0xffffaad5}, + {0x8237b137, 0xffffaad6}, + {0x8237b138, 0xffffaad7}, + {0x8237b139, 0xffffaad8}, + {0x8237b230, 0xffffaad9}, + {0x8237b231, 0xffffaada}, + {0x8237b232, 0xffffaadb}, + {0x8237b233, 0xffffaadc}, + {0x8237b234, 0xffffaadd}, + {0x8237b235, 0xffffaade}, + {0x8237b236, 0xffffaadf}, + {0x8237b237, 0xffffaae0}, + {0x8237b238, 0xffffaae1}, + {0x8237b239, 0xffffaae2}, + {0x8237b330, 0xffffaae3}, + {0x8237b331, 0xffffaae4}, + {0x8237b332, 0xffffaae5}, + {0x8237b333, 0xffffaae6}, + {0x8237b334, 0xffffaae7}, + {0x8237b335, 0xffffaae8}, + {0x8237b336, 0xffffaae9}, + {0x8237b337, 0xffffaaea}, + {0x8237b338, 0xffffaaeb}, + {0x8237b339, 0xffffaaec}, + {0x8237b430, 0xffffaaed}, + {0x8237b431, 0xffffaaee}, + {0x8237b432, 0xffffaaef}, + {0x8237b433, 0xffffaaf0}, + {0x8237b434, 0xffffaaf1}, + {0x8237b435, 0xffffaaf2}, + {0x8237b436, 0xffffaaf3}, + {0x8237b437, 0xffffaaf4}, + {0x8237b438, 0xffffaaf5}, + {0x8237b439, 0xffffaaf6}, + {0x8237b530, 0xffffaaf7}, + {0x8237b531, 0xffffaaf8}, + {0x8237b532, 0xffffaaf9}, + {0x8237b533, 0xffffaafa}, + {0x8237b534, 0xffffaafb}, + {0x8237b535, 0xffffaafc}, + {0x8237b536, 0xffffaafd}, + {0x8237b537, 0xffffaafe}, + {0x8237b538, 0xffffaaff}, + {0x8237b539, 0xffffab00}, + {0x8237b630, 0xffffab01}, + {0x8237b631, 0xffffab02}, + {0x8237b632, 0xffffab03}, + {0x8237b633, 0xffffab04}, + {0x8237b634, 0xffffab05}, + {0x8237b635, 0xffffab06}, + {0x8237b636, 0xffffab07}, + {0x8237b637, 0xffffab08}, + {0x8237b638, 0xffffab09}, + {0x8237b639, 0xffffab0a}, + {0x8237b730, 0xffffab0b}, + {0x8237b731, 0xffffab0c}, + {0x8237b732, 0xffffab0d}, + {0x8237b733, 0xffffab0e}, + {0x8237b734, 0xffffab0f}, + {0x8237b735, 0xffffab10}, + {0x8237b736, 0xffffab11}, + {0x8237b737, 0xffffab12}, + {0x8237b738, 0xffffab13}, + {0x8237b739, 0xffffab14}, + {0x8237b830, 0xffffab15}, + {0x8237b831, 0xffffab16}, + {0x8237b832, 0xffffab17}, + {0x8237b833, 0xffffab18}, + {0x8237b834, 0xffffab19}, + {0x8237b835, 0xffffab1a}, + {0x8237b836, 0xffffab1b}, + {0x8237b837, 0xffffab1c}, + {0x8237b838, 0xffffab1d}, + {0x8237b839, 0xffffab1e}, + {0x8237b930, 0xffffab1f}, + {0x8237b931, 0xffffab20}, + {0x8237b932, 0xffffab21}, + {0x8237b933, 0xffffab22}, + {0x8237b934, 0xffffab23}, + {0x8237b935, 0xffffab24}, + {0x8237b936, 0xffffab25}, + {0x8237b937, 0xffffab26}, + {0x8237b938, 0xffffab27}, + {0x8237b939, 0xffffab28}, + {0x8237ba30, 0xffffab29}, + {0x8237ba31, 0xffffab2a}, + {0x8237ba32, 0xffffab2b}, + {0x8237ba33, 0xffffab2c}, + {0x8237ba34, 0xffffab2d}, + {0x8237ba35, 0xffffab2e}, + {0x8237ba36, 0xffffab2f}, + {0x8237ba37, 0xffffab30}, + {0x8237ba38, 0xffffab31}, + {0x8237ba39, 0xffffab32}, + {0x8237bb30, 0xffffab33}, + {0x8237bb31, 0xffffab34}, + {0x8237bb32, 0xffffab35}, + {0x8237bb33, 0xffffab36}, + {0x8237bb34, 0xffffab37}, + {0x8237bb35, 0xffffab38}, + {0x8237bb36, 0xffffab39}, + {0x8237bb37, 0xffffab3a}, + {0x8237bb38, 0xffffab3b}, + {0x8237bb39, 0xffffab3c}, + {0x8237bc30, 0xffffab3d}, + {0x8237bc31, 0xffffab3e}, + {0x8237bc32, 0xffffab3f}, + {0x8237bc33, 0xffffab40}, + {0x8237bc34, 0xffffab41}, + {0x8237bc35, 0xffffab42}, + {0x8237bc36, 0xffffab43}, + {0x8237bc37, 0xffffab44}, + {0x8237bc38, 0xffffab45}, + {0x8237bc39, 0xffffab46}, + {0x8237bd30, 0xffffab47}, + {0x8237bd31, 0xffffab48}, + {0x8237bd32, 0xffffab49}, + {0x8237bd33, 0xffffab4a}, + {0x8237bd34, 0xffffab4b}, + {0x8237bd35, 0xffffab4c}, + {0x8237bd36, 0xffffab4d}, + {0x8237bd37, 0xffffab4e}, + {0x8237bd38, 0xffffab4f}, + {0x8237bd39, 0xffffab50}, + {0x8237be30, 0xffffab51}, + {0x8237be31, 0xffffab52}, + {0x8237be32, 0xffffab53}, + {0x8237be33, 0xffffab54}, + {0x8237be34, 0xffffab55}, + {0x8237be35, 0xffffab56}, + {0x8237be36, 0xffffab57}, + {0x8237be37, 0xffffab58}, + {0x8237be38, 0xffffab59}, + {0x8237be39, 0xffffab5a}, + {0x8237bf30, 0xffffab5b}, + {0x8237bf31, 0xffffab5c}, + {0x8237bf32, 0xffffab5d}, + {0x8237bf33, 0xffffab5e}, + {0x8237bf34, 0xffffab5f}, + {0x8237bf35, 0xffffab60}, + {0x8237bf36, 0xffffab61}, + {0x8237bf37, 0xffffab62}, + {0x8237bf38, 0xffffab63}, + {0x8237bf39, 0xffffab64}, + {0x8237c030, 0xffffab65}, + {0x8237c031, 0xffffab66}, + {0x8237c032, 0xffffab67}, + {0x8237c033, 0xffffab68}, + {0x8237c034, 0xffffab69}, + {0x8237c035, 0xffffab6a}, + {0x8237c036, 0xffffab6b}, + {0x8237c037, 0xffffab6c}, + {0x8237c038, 0xffffab6d}, + {0x8237c039, 0xffffab6e}, + {0x8237c130, 0xffffab6f}, + {0x8237c131, 0xffffab70}, + {0x8237c132, 0xffffab71}, + {0x8237c133, 0xffffab72}, + {0x8237c134, 0xffffab73}, + {0x8237c135, 0xffffab74}, + {0x8237c136, 0xffffab75}, + {0x8237c137, 0xffffab76}, + {0x8237c138, 0xffffab77}, + {0x8237c139, 0xffffab78}, + {0x8237c230, 0xffffab79}, + {0x8237c231, 0xffffab7a}, + {0x8237c232, 0xffffab7b}, + {0x8237c233, 0xffffab7c}, + {0x8237c234, 0xffffab7d}, + {0x8237c235, 0xffffab7e}, + {0x8237c236, 0xffffab7f}, + {0x8237c237, 0xffffab80}, + {0x8237c238, 0xffffab81}, + {0x8237c239, 0xffffab82}, + {0x8237c330, 0xffffab83}, + {0x8237c331, 0xffffab84}, + {0x8237c332, 0xffffab85}, + {0x8237c333, 0xffffab86}, + {0x8237c334, 0xffffab87}, + {0x8237c335, 0xffffab88}, + {0x8237c336, 0xffffab89}, + {0x8237c337, 0xffffab8a}, + {0x8237c338, 0xffffab8b}, + {0x8237c339, 0xffffab8c}, + {0x8237c430, 0xffffab8d}, + {0x8237c431, 0xffffab8e}, + {0x8237c432, 0xffffab8f}, + {0x8237c433, 0xffffab90}, + {0x8237c434, 0xffffab91}, + {0x8237c435, 0xffffab92}, + {0x8237c436, 0xffffab93}, + {0x8237c437, 0xffffab94}, + {0x8237c438, 0xffffab95}, + {0x8237c439, 0xffffab96}, + {0x8237c530, 0xffffab97}, + {0x8237c531, 0xffffab98}, + {0x8237c532, 0xffffab99}, + {0x8237c533, 0xffffab9a}, + {0x8237c534, 0xffffab9b}, + {0x8237c535, 0xffffab9c}, + {0x8237c536, 0xffffab9d}, + {0x8237c537, 0xffffab9e}, + {0x8237c538, 0xffffab9f}, + {0x8237c539, 0xffffaba0}, + {0x8237c630, 0xffffaba1}, + {0x8237c631, 0xffffaba2}, + {0x8237c632, 0xffffaba3}, + {0x8237c633, 0xffffaba4}, + {0x8237c634, 0xffffaba5}, + {0x8237c635, 0xffffaba6}, + {0x8237c636, 0xffffaba7}, + {0x8237c637, 0xffffaba8}, + {0x8237c638, 0xffffaba9}, + {0x8237c639, 0xffffabaa}, + {0x8237c730, 0xffffabab}, + {0x8237c731, 0xffffabac}, + {0x8237c732, 0xffffabad}, + {0x8237c733, 0xffffabae}, + {0x8237c734, 0xffffabaf}, + {0x8237c735, 0xffffabb0}, + {0x8237c736, 0xffffabb1}, + {0x8237c737, 0xffffabb2}, + {0x8237c738, 0xffffabb3}, + {0x8237c739, 0xffffabb4}, + {0x8237c830, 0xffffabb5}, + {0x8237c831, 0xffffabb6}, + {0x8237c832, 0xffffabb7}, + {0x8237c833, 0xffffabb8}, + {0x8237c834, 0xffffabb9}, + {0x8237c835, 0xffffabba}, + {0x8237c836, 0xffffabbb}, + {0x8237c837, 0xffffabbc}, + {0x8237c838, 0xffffabbd}, + {0x8237c839, 0xffffabbe}, + {0x8237c930, 0xffffabbf}, + {0x8237c931, 0xffffabc0}, + {0x8237c932, 0xffffabc1}, + {0x8237c933, 0xffffabc2}, + {0x8237c934, 0xffffabc3}, + {0x8237c935, 0xffffabc4}, + {0x8237c936, 0xffffabc5}, + {0x8237c937, 0xffffabc6}, + {0x8237c938, 0xffffabc7}, + {0x8237c939, 0xffffabc8}, + {0x8237ca30, 0xffffabc9}, + {0x8237ca31, 0xffffabca}, + {0x8237ca32, 0xffffabcb}, + {0x8237ca33, 0xffffabcc}, + {0x8237ca34, 0xffffabcd}, + {0x8237ca35, 0xffffabce}, + {0x8237ca36, 0xffffabcf}, + {0x8237ca37, 0xffffabd0}, + {0x8237ca38, 0xffffabd1}, + {0x8237ca39, 0xffffabd2}, + {0x8237cb30, 0xffffabd3}, + {0x8237cb31, 0xffffabd4}, + {0x8237cb32, 0xffffabd5}, + {0x8237cb33, 0xffffabd6}, + {0x8237cb34, 0xffffabd7}, + {0x8237cb35, 0xffffabd8}, + {0x8237cb36, 0xffffabd9}, + {0x8237cb37, 0xffffabda}, + {0x8237cb38, 0xffffabdb}, + {0x8237cb39, 0xffffabdc}, + {0x8237cc30, 0xffffabdd}, + {0x8237cc31, 0xffffabde}, + {0x8237cc32, 0xffffabdf}, + {0x8237cc33, 0xffffabe0}, + {0x8237cc34, 0xffffabe1}, + {0x8237cc35, 0xffffabe2}, + {0x8237cc36, 0xffffabe3}, + {0x8237cc37, 0xffffabe4}, + {0x8237cc38, 0xffffabe5}, + {0x8237cc39, 0xffffabe6}, + {0x8237cd30, 0xffffabe7}, + {0x8237cd31, 0xffffabe8}, + {0x8237cd32, 0xffffabe9}, + {0x8237cd33, 0xffffabea}, + {0x8237cd34, 0xffffabeb}, + {0x8237cd35, 0xffffabec}, + {0x8237cd36, 0xffffabed}, + {0x8237cd37, 0xffffabee}, + {0x8237cd38, 0xffffabef}, + {0x8237cd39, 0xffffabf0}, + {0x8237ce30, 0xffffabf1}, + {0x8237ce31, 0xffffabf2}, + {0x8237ce32, 0xffffabf3}, + {0x8237ce33, 0xffffabf4}, + {0x8237ce34, 0xffffabf5}, + {0x8237ce35, 0xffffabf6}, + {0x8237ce36, 0xffffabf7}, + {0x8237ce37, 0xffffabf8}, + {0x8237ce38, 0xffffabf9}, + {0x8237ce39, 0xffffabfa}, + {0x8237cf30, 0xffffabfb}, + {0x8237cf31, 0xffffabfc}, + {0x8237cf32, 0xffffabfd}, + {0x8237cf33, 0xffffabfe}, + {0x8237cf34, 0xffffabff}, + {0x8237cf35, 0xffffac00}, + {0x8237cf36, 0xffffac01}, + {0x8237cf37, 0xffffac02}, + {0x8237cf38, 0xffffac03}, + {0x8237cf39, 0xffffac04}, + {0x8237d030, 0xffffac05}, + {0x8237d031, 0xffffac06}, + {0x8237d032, 0xffffac07}, + {0x8237d033, 0xffffac08}, + {0x8237d034, 0xffffac09}, + {0x8237d035, 0xffffac0a}, + {0x8237d036, 0xffffac0b}, + {0x8237d037, 0xffffac0c}, + {0x8237d038, 0xffffac0d}, + {0x8237d039, 0xffffac0e}, + {0x8237d130, 0xffffac0f}, + {0x8237d131, 0xffffac10}, + {0x8237d132, 0xffffac11}, + {0x8237d133, 0xffffac12}, + {0x8237d134, 0xffffac13}, + {0x8237d135, 0xffffac14}, + {0x8237d136, 0xffffac15}, + {0x8237d137, 0xffffac16}, + {0x8237d138, 0xffffac17}, + {0x8237d139, 0xffffac18}, + {0x8237d230, 0xffffac19}, + {0x8237d231, 0xffffac1a}, + {0x8237d232, 0xffffac1b}, + {0x8237d233, 0xffffac1c}, + {0x8237d234, 0xffffac1d}, + {0x8237d235, 0xffffac1e}, + {0x8237d236, 0xffffac1f}, + {0x8237d237, 0xffffac20}, + {0x8237d238, 0xffffac21}, + {0x8237d239, 0xffffac22}, + {0x8237d330, 0xffffac23}, + {0x8237d331, 0xffffac24}, + {0x8237d332, 0xffffac25}, + {0x8237d333, 0xffffac26}, + {0x8237d334, 0xffffac27}, + {0x8237d335, 0xffffac28}, + {0x8237d336, 0xffffac29}, + {0x8237d337, 0xffffac2a}, + {0x8237d338, 0xffffac2b}, + {0x8237d339, 0xffffac2c}, + {0x8237d430, 0xffffac2d}, + {0x8237d431, 0xffffac2e}, + {0x8237d432, 0xffffac2f}, + {0x8237d433, 0xffffac30}, + {0x8237d434, 0xffffac31}, + {0x8237d435, 0xffffac32}, + {0x8237d436, 0xffffac33}, + {0x8237d437, 0xffffac34}, + {0x8237d438, 0xffffac35}, + {0x8237d439, 0xffffac36}, + {0x8237d530, 0xffffac37}, + {0x8237d531, 0xffffac38}, + {0x8237d532, 0xffffac39}, + {0x8237d533, 0xffffac3a}, + {0x8237d534, 0xffffac3b}, + {0x8237d535, 0xffffac3c}, + {0x8237d536, 0xffffac3d}, + {0x8237d537, 0xffffac3e}, + {0x8237d538, 0xffffac3f}, + {0x8237d539, 0xffffac40}, + {0x8237d630, 0xffffac41}, + {0x8237d631, 0xffffac42}, + {0x8237d632, 0xffffac43}, + {0x8237d633, 0xffffac44}, + {0x8237d634, 0xffffac45}, + {0x8237d635, 0xffffac46}, + {0x8237d636, 0xffffac47}, + {0x8237d637, 0xffffac48}, + {0x8237d638, 0xffffac49}, + {0x8237d639, 0xffffac4a}, + {0x8237d730, 0xffffac4b}, + {0x8237d731, 0xffffac4c}, + {0x8237d732, 0xffffac4d}, + {0x8237d733, 0xffffac4e}, + {0x8237d734, 0xffffac4f}, + {0x8237d735, 0xffffac50}, + {0x8237d736, 0xffffac51}, + {0x8237d737, 0xffffac52}, + {0x8237d738, 0xffffac53}, + {0x8237d739, 0xffffac54}, + {0x8237d830, 0xffffac55}, + {0x8237d831, 0xffffac56}, + {0x8237d832, 0xffffac57}, + {0x8237d833, 0xffffac58}, + {0x8237d834, 0xffffac59}, + {0x8237d835, 0xffffac5a}, + {0x8237d836, 0xffffac5b}, + {0x8237d837, 0xffffac5c}, + {0x8237d838, 0xffffac5d}, + {0x8237d839, 0xffffac5e}, + {0x8237d930, 0xffffac5f}, + {0x8237d931, 0xffffac60}, + {0x8237d932, 0xffffac61}, + {0x8237d933, 0xffffac62}, + {0x8237d934, 0xffffac63}, + {0x8237d935, 0xffffac64}, + {0x8237d936, 0xffffac65}, + {0x8237d937, 0xffffac66}, + {0x8237d938, 0xffffac67}, + {0x8237d939, 0xffffac68}, + {0x8237da30, 0xffffac69}, + {0x8237da31, 0xffffac6a}, + {0x8237da32, 0xffffac6b}, + {0x8237da33, 0xffffac6c}, + {0x8237da34, 0xffffac6d}, + {0x8237da35, 0xffffac6e}, + {0x8237da36, 0xffffac6f}, + {0x8237da37, 0xffffac70}, + {0x8237da38, 0xffffac71}, + {0x8237da39, 0xffffac72}, + {0x8237db30, 0xffffac73}, + {0x8237db31, 0xffffac74}, + {0x8237db32, 0xffffac75}, + {0x8237db33, 0xffffac76}, + {0x8237db34, 0xffffac77}, + {0x8237db35, 0xffffac78}, + {0x8237db36, 0xffffac79}, + {0x8237db37, 0xffffac7a}, + {0x8237db38, 0xffffac7b}, + {0x8237db39, 0xffffac7c}, + {0x8237dc30, 0xffffac7d}, + {0x8237dc31, 0xffffac7e}, + {0x8237dc32, 0xffffac7f}, + {0x8237dc33, 0xffffac80}, + {0x8237dc34, 0xffffac81}, + {0x8237dc35, 0xffffac82}, + {0x8237dc36, 0xffffac83}, + {0x8237dc37, 0xffffac84}, + {0x8237dc38, 0xffffac85}, + {0x8237dc39, 0xffffac86}, + {0x8237dd30, 0xffffac87}, + {0x8237dd31, 0xffffac88}, + {0x8237dd32, 0xffffac89}, + {0x8237dd33, 0xffffac8a}, + {0x8237dd34, 0xffffac8b}, + {0x8237dd35, 0xffffac8c}, + {0x8237dd36, 0xffffac8d}, + {0x8237dd37, 0xffffac8e}, + {0x8237dd38, 0xffffac8f}, + {0x8237dd39, 0xffffac90}, + {0x8237de30, 0xffffac91}, + {0x8237de31, 0xffffac92}, + {0x8237de32, 0xffffac93}, + {0x8237de33, 0xffffac94}, + {0x8237de34, 0xffffac95}, + {0x8237de35, 0xffffac96}, + {0x8237de36, 0xffffac97}, + {0x8237de37, 0xffffac98}, + {0x8237de38, 0xffffac99}, + {0x8237de39, 0xffffac9a}, + {0x8237df30, 0xffffac9b}, + {0x8237df31, 0xffffac9c}, + {0x8237df32, 0xffffac9d}, + {0x8237df33, 0xffffac9e}, + {0x8237df34, 0xffffac9f}, + {0x8237df35, 0xffffaca0}, + {0x8237df36, 0xffffaca1}, + {0x8237df37, 0xffffaca2}, + {0x8237df38, 0xffffaca3}, + {0x8237df39, 0xffffaca4}, + {0x8237e030, 0xffffaca5}, + {0x8237e031, 0xffffaca6}, + {0x8237e032, 0xffffaca7}, + {0x8237e033, 0xffffaca8}, + {0x8237e034, 0xffffaca9}, + {0x8237e035, 0xffffacaa}, + {0x8237e036, 0xffffacab}, + {0x8237e037, 0xffffacac}, + {0x8237e038, 0xffffacad}, + {0x8237e039, 0xffffacae}, + {0x8237e130, 0xffffacaf}, + {0x8237e131, 0xffffacb0}, + {0x8237e132, 0xffffacb1}, + {0x8237e133, 0xffffacb2}, + {0x8237e134, 0xffffacb3}, + {0x8237e135, 0xffffacb4}, + {0x8237e136, 0xffffacb5}, + {0x8237e137, 0xffffacb6}, + {0x8237e138, 0xffffacb7}, + {0x8237e139, 0xffffacb8}, + {0x8237e230, 0xffffacb9}, + {0x8237e231, 0xffffacba}, + {0x8237e232, 0xffffacbb}, + {0x8237e233, 0xffffacbc}, + {0x8237e234, 0xffffacbd}, + {0x8237e235, 0xffffacbe}, + {0x8237e236, 0xffffacbf}, + {0x8237e237, 0xffffacc0}, + {0x8237e238, 0xffffacc1}, + {0x8237e239, 0xffffacc2}, + {0x8237e330, 0xffffacc3}, + {0x8237e331, 0xffffacc4}, + {0x8237e332, 0xffffacc5}, + {0x8237e333, 0xffffacc6}, + {0x8237e334, 0xffffacc7}, + {0x8237e335, 0xffffacc8}, + {0x8237e336, 0xffffacc9}, + {0x8237e337, 0xffffacca}, + {0x8237e338, 0xffffaccb}, + {0x8237e339, 0xffffaccc}, + {0x8237e430, 0xffffaccd}, + {0x8237e431, 0xffffacce}, + {0x8237e432, 0xffffaccf}, + {0x8237e433, 0xffffacd0}, + {0x8237e434, 0xffffacd1}, + {0x8237e435, 0xffffacd2}, + {0x8237e436, 0xffffacd3}, + {0x8237e437, 0xffffacd4}, + {0x8237e438, 0xffffacd5}, + {0x8237e439, 0xffffacd6}, + {0x8237e530, 0xffffacd7}, + {0x8237e531, 0xffffacd8}, + {0x8237e532, 0xffffacd9}, + {0x8237e533, 0xffffacda}, + {0x8237e534, 0xffffacdb}, + {0x8237e535, 0xffffacdc}, + {0x8237e536, 0xffffacdd}, + {0x8237e537, 0xffffacde}, + {0x8237e538, 0xffffacdf}, + {0x8237e539, 0xfffface0}, + {0x8237e630, 0xfffface1}, + {0x8237e631, 0xfffface2}, + {0x8237e632, 0xfffface3}, + {0x8237e633, 0xfffface4}, + {0x8237e634, 0xfffface5}, + {0x8237e635, 0xfffface6}, + {0x8237e636, 0xfffface7}, + {0x8237e637, 0xfffface8}, + {0x8237e638, 0xfffface9}, + {0x8237e639, 0xffffacea}, + {0x8237e730, 0xffffaceb}, + {0x8237e731, 0xffffacec}, + {0x8237e732, 0xffffaced}, + {0x8237e733, 0xffffacee}, + {0x8237e734, 0xffffacef}, + {0x8237e735, 0xffffacf0}, + {0x8237e736, 0xffffacf1}, + {0x8237e737, 0xffffacf2}, + {0x8237e738, 0xffffacf3}, + {0x8237e739, 0xffffacf4}, + {0x8237e830, 0xffffacf5}, + {0x8237e831, 0xffffacf6}, + {0x8237e832, 0xffffacf7}, + {0x8237e833, 0xffffacf8}, + {0x8237e834, 0xffffacf9}, + {0x8237e835, 0xffffacfa}, + {0x8237e836, 0xffffacfb}, + {0x8237e837, 0xffffacfc}, + {0x8237e838, 0xffffacfd}, + {0x8237e839, 0xffffacfe}, + {0x8237e930, 0xffffacff}, + {0x8237e931, 0xffffad00}, + {0x8237e932, 0xffffad01}, + {0x8237e933, 0xffffad02}, + {0x8237e934, 0xffffad03}, + {0x8237e935, 0xffffad04}, + {0x8237e936, 0xffffad05}, + {0x8237e937, 0xffffad06}, + {0x8237e938, 0xffffad07}, + {0x8237e939, 0xffffad08}, + {0x8237ea30, 0xffffad09}, + {0x8237ea31, 0xffffad0a}, + {0x8237ea32, 0xffffad0b}, + {0x8237ea33, 0xffffad0c}, + {0x8237ea34, 0xffffad0d}, + {0x8237ea35, 0xffffad0e}, + {0x8237ea36, 0xffffad0f}, + {0x8237ea37, 0xffffad10}, + {0x8237ea38, 0xffffad11}, + {0x8237ea39, 0xffffad12}, + {0x8237eb30, 0xffffad13}, + {0x8237eb31, 0xffffad14}, + {0x8237eb32, 0xffffad15}, + {0x8237eb33, 0xffffad16}, + {0x8237eb34, 0xffffad17}, + {0x8237eb35, 0xffffad18}, + {0x8237eb36, 0xffffad19}, + {0x8237eb37, 0xffffad1a}, + {0x8237eb38, 0xffffad1b}, + {0x8237eb39, 0xffffad1c}, + {0x8237ec30, 0xffffad1d}, + {0x8237ec31, 0xffffad1e}, + {0x8237ec32, 0xffffad1f}, + {0x8237ec33, 0xffffad20}, + {0x8237ec34, 0xffffad21}, + {0x8237ec35, 0xffffad22}, + {0x8237ec36, 0xffffad23}, + {0x8237ec37, 0xffffad24}, + {0x8237ec38, 0xffffad25}, + {0x8237ec39, 0xffffad26}, + {0x8237ed30, 0xffffad27}, + {0x8237ed31, 0xffffad28}, + {0x8237ed32, 0xffffad29}, + {0x8237ed33, 0xffffad2a}, + {0x8237ed34, 0xffffad2b}, + {0x8237ed35, 0xffffad2c}, + {0x8237ed36, 0xffffad2d}, + {0x8237ed37, 0xffffad2e}, + {0x8237ed38, 0xffffad2f}, + {0x8237ed39, 0xffffad30}, + {0x8237ee30, 0xffffad31}, + {0x8237ee31, 0xffffad32}, + {0x8237ee32, 0xffffad33}, + {0x8237ee33, 0xffffad34}, + {0x8237ee34, 0xffffad35}, + {0x8237ee35, 0xffffad36}, + {0x8237ee36, 0xffffad37}, + {0x8237ee37, 0xffffad38}, + {0x8237ee38, 0xffffad39}, + {0x8237ee39, 0xffffad3a}, + {0x8237ef30, 0xffffad3b}, + {0x8237ef31, 0xffffad3c}, + {0x8237ef32, 0xffffad3d}, + {0x8237ef33, 0xffffad3e}, + {0x8237ef34, 0xffffad3f}, + {0x8237ef35, 0xffffad40}, + {0x8237ef36, 0xffffad41}, + {0x8237ef37, 0xffffad42}, + {0x8237ef38, 0xffffad43}, + {0x8237ef39, 0xffffad44}, + {0x8237f030, 0xffffad45}, + {0x8237f031, 0xffffad46}, + {0x8237f032, 0xffffad47}, + {0x8237f033, 0xffffad48}, + {0x8237f034, 0xffffad49}, + {0x8237f035, 0xffffad4a}, + {0x8237f036, 0xffffad4b}, + {0x8237f037, 0xffffad4c}, + {0x8237f038, 0xffffad4d}, + {0x8237f039, 0xffffad4e}, + {0x8237f130, 0xffffad4f}, + {0x8237f131, 0xffffad50}, + {0x8237f132, 0xffffad51}, + {0x8237f133, 0xffffad52}, + {0x8237f134, 0xffffad53}, + {0x8237f135, 0xffffad54}, + {0x8237f136, 0xffffad55}, + {0x8237f137, 0xffffad56}, + {0x8237f138, 0xffffad57}, + {0x8237f139, 0xffffad58}, + {0x8237f230, 0xffffad59}, + {0x8237f231, 0xffffad5a}, + {0x8237f232, 0xffffad5b}, + {0x8237f233, 0xffffad5c}, + {0x8237f234, 0xffffad5d}, + {0x8237f235, 0xffffad5e}, + {0x8237f236, 0xffffad5f}, + {0x8237f237, 0xffffad60}, + {0x8237f238, 0xffffad61}, + {0x8237f239, 0xffffad62}, + {0x8237f330, 0xffffad63}, + {0x8237f331, 0xffffad64}, + {0x8237f332, 0xffffad65}, + {0x8237f333, 0xffffad66}, + {0x8237f334, 0xffffad67}, + {0x8237f335, 0xffffad68}, + {0x8237f336, 0xffffad69}, + {0x8237f337, 0xffffad6a}, + {0x8237f338, 0xffffad6b}, + {0x8237f339, 0xffffad6c}, + {0x8237f430, 0xffffad6d}, + {0x8237f431, 0xffffad6e}, + {0x8237f432, 0xffffad6f}, + {0x8237f433, 0xffffad70}, + {0x8237f434, 0xffffad71}, + {0x8237f435, 0xffffad72}, + {0x8237f436, 0xffffad73}, + {0x8237f437, 0xffffad74}, + {0x8237f438, 0xffffad75}, + {0x8237f439, 0xffffad76}, + {0x8237f530, 0xffffad77}, + {0x8237f531, 0xffffad78}, + {0x8237f532, 0xffffad79}, + {0x8237f533, 0xffffad7a}, + {0x8237f534, 0xffffad7b}, + {0x8237f535, 0xffffad7c}, + {0x8237f536, 0xffffad7d}, + {0x8237f537, 0xffffad7e}, + {0x8237f538, 0xffffad7f}, + {0x8237f539, 0xffffad80}, + {0x8237f630, 0xffffad81}, + {0x8237f631, 0xffffad82}, + {0x8237f632, 0xffffad83}, + {0x8237f633, 0xffffad84}, + {0x8237f634, 0xffffad85}, + {0x8237f635, 0xffffad86}, + {0x8237f636, 0xffffad87}, + {0x8237f637, 0xffffad88}, + {0x8237f638, 0xffffad89}, + {0x8237f639, 0xffffad8a}, + {0x8237f730, 0xffffad8b}, + {0x8237f731, 0xffffad8c}, + {0x8237f732, 0xffffad8d}, + {0x8237f733, 0xffffad8e}, + {0x8237f734, 0xffffad8f}, + {0x8237f735, 0xffffad90}, + {0x8237f736, 0xffffad91}, + {0x8237f737, 0xffffad92}, + {0x8237f738, 0xffffad93}, + {0x8237f739, 0xffffad94}, + {0x8237f830, 0xffffad95}, + {0x8237f831, 0xffffad96}, + {0x8237f832, 0xffffad97}, + {0x8237f833, 0xffffad98}, + {0x8237f834, 0xffffad99}, + {0x8237f835, 0xffffad9a}, + {0x8237f836, 0xffffad9b}, + {0x8237f837, 0xffffad9c}, + {0x8237f838, 0xffffad9d}, + {0x8237f839, 0xffffad9e}, + {0x8237f930, 0xffffad9f}, + {0x8237f931, 0xffffada0}, + {0x8237f932, 0xffffada1}, + {0x8237f933, 0xffffada2}, + {0x8237f934, 0xffffada3}, + {0x8237f935, 0xffffada4}, + {0x8237f936, 0xffffada5}, + {0x8237f937, 0xffffada6}, + {0x8237f938, 0xffffada7}, + {0x8237f939, 0xffffada8}, + {0x8237fa30, 0xffffada9}, + {0x8237fa31, 0xffffadaa}, + {0x8237fa32, 0xffffadab}, + {0x8237fa33, 0xffffadac}, + {0x8237fa34, 0xffffadad}, + {0x8237fa35, 0xffffadae}, + {0x8237fa36, 0xffffadaf}, + {0x8237fa37, 0xffffadb0}, + {0x8237fa38, 0xffffadb1}, + {0x8237fa39, 0xffffadb2}, + {0x8237fb30, 0xffffadb3}, + {0x8237fb31, 0xffffadb4}, + {0x8237fb32, 0xffffadb5}, + {0x8237fb33, 0xffffadb6}, + {0x8237fb34, 0xffffadb7}, + {0x8237fb35, 0xffffadb8}, + {0x8237fb36, 0xffffadb9}, + {0x8237fb37, 0xffffadba}, + {0x8237fb38, 0xffffadbb}, + {0x8237fb39, 0xffffadbc}, + {0x8237fc30, 0xffffadbd}, + {0x8237fc31, 0xffffadbe}, + {0x8237fc32, 0xffffadbf}, + {0x8237fc33, 0xffffadc0}, + {0x8237fc34, 0xffffadc1}, + {0x8237fc35, 0xffffadc2}, + {0x8237fc36, 0xffffadc3}, + {0x8237fc37, 0xffffadc4}, + {0x8237fc38, 0xffffadc5}, + {0x8237fc39, 0xffffadc6}, + {0x8237fd30, 0xffffadc7}, + {0x8237fd31, 0xffffadc8}, + {0x8237fd32, 0xffffadc9}, + {0x8237fd33, 0xffffadca}, + {0x8237fd34, 0xffffadcb}, + {0x8237fd35, 0xffffadcc}, + {0x8237fd36, 0xffffadcd}, + {0x8237fd37, 0xffffadce}, + {0x8237fd38, 0xffffadcf}, + {0x8237fd39, 0xffffadd0}, + {0x8237fe30, 0xffffadd1}, + {0x8237fe31, 0xffffadd2}, + {0x8237fe32, 0xffffadd3}, + {0x8237fe33, 0xffffadd4}, + {0x8237fe34, 0xffffadd5}, + {0x8237fe35, 0xffffadd6}, + {0x8237fe36, 0xffffadd7}, + {0x8237fe37, 0xffffadd8}, + {0x8237fe38, 0xffffadd9}, + {0x8237fe39, 0xffffadda}, + {0x82388130, 0xffffaddb}, + {0x82388131, 0xffffaddc}, + {0x82388132, 0xffffaddd}, + {0x82388133, 0xffffadde}, + {0x82388134, 0xffffaddf}, + {0x82388135, 0xffffade0}, + {0x82388136, 0xffffade1}, + {0x82388137, 0xffffade2}, + {0x82388138, 0xffffade3}, + {0x82388139, 0xffffade4}, + {0x82388230, 0xffffade5}, + {0x82388231, 0xffffade6}, + {0x82388232, 0xffffade7}, + {0x82388233, 0xffffade8}, + {0x82388234, 0xffffade9}, + {0x82388235, 0xffffadea}, + {0x82388236, 0xffffadeb}, + {0x82388237, 0xffffadec}, + {0x82388238, 0xffffaded}, + {0x82388239, 0xffffadee}, + {0x82388330, 0xffffadef}, + {0x82388331, 0xffffadf0}, + {0x82388332, 0xffffadf1}, + {0x82388333, 0xffffadf2}, + {0x82388334, 0xffffadf3}, + {0x82388335, 0xffffadf4}, + {0x82388336, 0xffffadf5}, + {0x82388337, 0xffffadf6}, + {0x82388338, 0xffffadf7}, + {0x82388339, 0xffffadf8}, + {0x82388430, 0xffffadf9}, + {0x82388431, 0xffffadfa}, + {0x82388432, 0xffffadfb}, + {0x82388433, 0xffffadfc}, + {0x82388434, 0xffffadfd}, + {0x82388435, 0xffffadfe}, + {0x82388436, 0xffffadff}, + {0x82388437, 0xffffae00}, + {0x82388438, 0xffffae01}, + {0x82388439, 0xffffae02}, + {0x82388530, 0xffffae03}, + {0x82388531, 0xffffae04}, + {0x82388532, 0xffffae05}, + {0x82388533, 0xffffae06}, + {0x82388534, 0xffffae07}, + {0x82388535, 0xffffae08}, + {0x82388536, 0xffffae09}, + {0x82388537, 0xffffae0a}, + {0x82388538, 0xffffae0b}, + {0x82388539, 0xffffae0c}, + {0x82388630, 0xffffae0d}, + {0x82388631, 0xffffae0e}, + {0x82388632, 0xffffae0f}, + {0x82388633, 0xffffae10}, + {0x82388634, 0xffffae11}, + {0x82388635, 0xffffae12}, + {0x82388636, 0xffffae13}, + {0x82388637, 0xffffae14}, + {0x82388638, 0xffffae15}, + {0x82388639, 0xffffae16}, + {0x82388730, 0xffffae17}, + {0x82388731, 0xffffae18}, + {0x82388732, 0xffffae19}, + {0x82388733, 0xffffae1a}, + {0x82388734, 0xffffae1b}, + {0x82388735, 0xffffae1c}, + {0x82388736, 0xffffae1d}, + {0x82388737, 0xffffae1e}, + {0x82388738, 0xffffae1f}, + {0x82388739, 0xffffae20}, + {0x82388830, 0xffffae21}, + {0x82388831, 0xffffae22}, + {0x82388832, 0xffffae23}, + {0x82388833, 0xffffae24}, + {0x82388834, 0xffffae25}, + {0x82388835, 0xffffae26}, + {0x82388836, 0xffffae27}, + {0x82388837, 0xffffae28}, + {0x82388838, 0xffffae29}, + {0x82388839, 0xffffae2a}, + {0x82388930, 0xffffae2b}, + {0x82388931, 0xffffae2c}, + {0x82388932, 0xffffae2d}, + {0x82388933, 0xffffae2e}, + {0x82388934, 0xffffae2f}, + {0x82388935, 0xffffae30}, + {0x82388936, 0xffffae31}, + {0x82388937, 0xffffae32}, + {0x82388938, 0xffffae33}, + {0x82388939, 0xffffae34}, + {0x82388a30, 0xffffae35}, + {0x82388a31, 0xffffae36}, + {0x82388a32, 0xffffae37}, + {0x82388a33, 0xffffae38}, + {0x82388a34, 0xffffae39}, + {0x82388a35, 0xffffae3a}, + {0x82388a36, 0xffffae3b}, + {0x82388a37, 0xffffae3c}, + {0x82388a38, 0xffffae3d}, + {0x82388a39, 0xffffae3e}, + {0x82388b30, 0xffffae3f}, + {0x82388b31, 0xffffae40}, + {0x82388b32, 0xffffae41}, + {0x82388b33, 0xffffae42}, + {0x82388b34, 0xffffae43}, + {0x82388b35, 0xffffae44}, + {0x82388b36, 0xffffae45}, + {0x82388b37, 0xffffae46}, + {0x82388b38, 0xffffae47}, + {0x82388b39, 0xffffae48}, + {0x82388c30, 0xffffae49}, + {0x82388c31, 0xffffae4a}, + {0x82388c32, 0xffffae4b}, + {0x82388c33, 0xffffae4c}, + {0x82388c34, 0xffffae4d}, + {0x82388c35, 0xffffae4e}, + {0x82388c36, 0xffffae4f}, + {0x82388c37, 0xffffae50}, + {0x82388c38, 0xffffae51}, + {0x82388c39, 0xffffae52}, + {0x82388d30, 0xffffae53}, + {0x82388d31, 0xffffae54}, + {0x82388d32, 0xffffae55}, + {0x82388d33, 0xffffae56}, + {0x82388d34, 0xffffae57}, + {0x82388d35, 0xffffae58}, + {0x82388d36, 0xffffae59}, + {0x82388d37, 0xffffae5a}, + {0x82388d38, 0xffffae5b}, + {0x82388d39, 0xffffae5c}, + {0x82388e30, 0xffffae5d}, + {0x82388e31, 0xffffae5e}, + {0x82388e32, 0xffffae5f}, + {0x82388e33, 0xffffae60}, + {0x82388e34, 0xffffae61}, + {0x82388e35, 0xffffae62}, + {0x82388e36, 0xffffae63}, + {0x82388e37, 0xffffae64}, + {0x82388e38, 0xffffae65}, + {0x82388e39, 0xffffae66}, + {0x82388f30, 0xffffae67}, + {0x82388f31, 0xffffae68}, + {0x82388f32, 0xffffae69}, + {0x82388f33, 0xffffae6a}, + {0x82388f34, 0xffffae6b}, + {0x82388f35, 0xffffae6c}, + {0x82388f36, 0xffffae6d}, + {0x82388f37, 0xffffae6e}, + {0x82388f38, 0xffffae6f}, + {0x82388f39, 0xffffae70}, + {0x82389030, 0xffffae71}, + {0x82389031, 0xffffae72}, + {0x82389032, 0xffffae73}, + {0x82389033, 0xffffae74}, + {0x82389034, 0xffffae75}, + {0x82389035, 0xffffae76}, + {0x82389036, 0xffffae77}, + {0x82389037, 0xffffae78}, + {0x82389038, 0xffffae79}, + {0x82389039, 0xffffae7a}, + {0x82389130, 0xffffae7b}, + {0x82389131, 0xffffae7c}, + {0x82389132, 0xffffae7d}, + {0x82389133, 0xffffae7e}, + {0x82389134, 0xffffae7f}, + {0x82389135, 0xffffae80}, + {0x82389136, 0xffffae81}, + {0x82389137, 0xffffae82}, + {0x82389138, 0xffffae83}, + {0x82389139, 0xffffae84}, + {0x82389230, 0xffffae85}, + {0x82389231, 0xffffae86}, + {0x82389232, 0xffffae87}, + {0x82389233, 0xffffae88}, + {0x82389234, 0xffffae89}, + {0x82389235, 0xffffae8a}, + {0x82389236, 0xffffae8b}, + {0x82389237, 0xffffae8c}, + {0x82389238, 0xffffae8d}, + {0x82389239, 0xffffae8e}, + {0x82389330, 0xffffae8f}, + {0x82389331, 0xffffae90}, + {0x82389332, 0xffffae91}, + {0x82389333, 0xffffae92}, + {0x82389334, 0xffffae93}, + {0x82389335, 0xffffae94}, + {0x82389336, 0xffffae95}, + {0x82389337, 0xffffae96}, + {0x82389338, 0xffffae97}, + {0x82389339, 0xffffae98}, + {0x82389430, 0xffffae99}, + {0x82389431, 0xffffae9a}, + {0x82389432, 0xffffae9b}, + {0x82389433, 0xffffae9c}, + {0x82389434, 0xffffae9d}, + {0x82389435, 0xffffae9e}, + {0x82389436, 0xffffae9f}, + {0x82389437, 0xffffaea0}, + {0x82389438, 0xffffaea1}, + {0x82389439, 0xffffaea2}, + {0x82389530, 0xffffaea3}, + {0x82389531, 0xffffaea4}, + {0x82389532, 0xffffaea5}, + {0x82389533, 0xffffaea6}, + {0x82389534, 0xffffaea7}, + {0x82389535, 0xffffaea8}, + {0x82389536, 0xffffaea9}, + {0x82389537, 0xffffaeaa}, + {0x82389538, 0xffffaeab}, + {0x82389539, 0xffffaeac}, + {0x82389630, 0xffffaead}, + {0x82389631, 0xffffaeae}, + {0x82389632, 0xffffaeaf}, + {0x82389633, 0xffffaeb0}, + {0x82389634, 0xffffaeb1}, + {0x82389635, 0xffffaeb2}, + {0x82389636, 0xffffaeb3}, + {0x82389637, 0xffffaeb4}, + {0x82389638, 0xffffaeb5}, + {0x82389639, 0xffffaeb6}, + {0x82389730, 0xffffaeb7}, + {0x82389731, 0xffffaeb8}, + {0x82389732, 0xffffaeb9}, + {0x82389733, 0xffffaeba}, + {0x82389734, 0xffffaebb}, + {0x82389735, 0xffffaebc}, + {0x82389736, 0xffffaebd}, + {0x82389737, 0xffffaebe}, + {0x82389738, 0xffffaebf}, + {0x82389739, 0xffffaec0}, + {0x82389830, 0xffffaec1}, + {0x82389831, 0xffffaec2}, + {0x82389832, 0xffffaec3}, + {0x82389833, 0xffffaec4}, + {0x82389834, 0xffffaec5}, + {0x82389835, 0xffffaec6}, + {0x82389836, 0xffffaec7}, + {0x82389837, 0xffffaec8}, + {0x82389838, 0xffffaec9}, + {0x82389839, 0xffffaeca}, + {0x82389930, 0xffffaecb}, + {0x82389931, 0xffffaecc}, + {0x82389932, 0xffffaecd}, + {0x82389933, 0xffffaece}, + {0x82389934, 0xffffaecf}, + {0x82389935, 0xffffaed0}, + {0x82389936, 0xffffaed1}, + {0x82389937, 0xffffaed2}, + {0x82389938, 0xffffaed3}, + {0x82389939, 0xffffaed4}, + {0x82389a30, 0xffffaed5}, + {0x82389a31, 0xffffaed6}, + {0x82389a32, 0xffffaed7}, + {0x82389a33, 0xffffaed8}, + {0x82389a34, 0xffffaed9}, + {0x82389a35, 0xffffaeda}, + {0x82389a36, 0xffffaedb}, + {0x82389a37, 0xffffaedc}, + {0x82389a38, 0xffffaedd}, + {0x82389a39, 0xffffaede}, + {0x82389b30, 0xffffaedf}, + {0x82389b31, 0xffffaee0}, + {0x82389b32, 0xffffaee1}, + {0x82389b33, 0xffffaee2}, + {0x82389b34, 0xffffaee3}, + {0x82389b35, 0xffffaee4}, + {0x82389b36, 0xffffaee5}, + {0x82389b37, 0xffffaee6}, + {0x82389b38, 0xffffaee7}, + {0x82389b39, 0xffffaee8}, + {0x82389c30, 0xffffaee9}, + {0x82389c31, 0xffffaeea}, + {0x82389c32, 0xffffaeeb}, + {0x82389c33, 0xffffaeec}, + {0x82389c34, 0xffffaeed}, + {0x82389c35, 0xffffaeee}, + {0x82389c36, 0xffffaeef}, + {0x82389c37, 0xffffaef0}, + {0x82389c38, 0xffffaef1}, + {0x82389c39, 0xffffaef2}, + {0x82389d30, 0xffffaef3}, + {0x82389d31, 0xffffaef4}, + {0x82389d32, 0xffffaef5}, + {0x82389d33, 0xffffaef6}, + {0x82389d34, 0xffffaef7}, + {0x82389d35, 0xffffaef8}, + {0x82389d36, 0xffffaef9}, + {0x82389d37, 0xffffaefa}, + {0x82389d38, 0xffffaefb}, + {0x82389d39, 0xffffaefc}, + {0x82389e30, 0xffffaefd}, + {0x82389e31, 0xffffaefe}, + {0x82389e32, 0xffffaeff}, + {0x82389e33, 0xffffaf00}, + {0x82389e34, 0xffffaf01}, + {0x82389e35, 0xffffaf02}, + {0x82389e36, 0xffffaf03}, + {0x82389e37, 0xffffaf04}, + {0x82389e38, 0xffffaf05}, + {0x82389e39, 0xffffaf06}, + {0x82389f30, 0xffffaf07}, + {0x82389f31, 0xffffaf08}, + {0x82389f32, 0xffffaf09}, + {0x82389f33, 0xffffaf0a}, + {0x82389f34, 0xffffaf0b}, + {0x82389f35, 0xffffaf0c}, + {0x82389f36, 0xffffaf0d}, + {0x82389f37, 0xffffaf0e}, + {0x82389f38, 0xffffaf0f}, + {0x82389f39, 0xffffaf10}, + {0x8238a030, 0xffffaf11}, + {0x8238a031, 0xffffaf12}, + {0x8238a032, 0xffffaf13}, + {0x8238a033, 0xffffaf14}, + {0x8238a034, 0xffffaf15}, + {0x8238a035, 0xffffaf16}, + {0x8238a036, 0xffffaf17}, + {0x8238a037, 0xffffaf18}, + {0x8238a038, 0xffffaf19}, + {0x8238a039, 0xffffaf1a}, + {0x8238a130, 0xffffaf1b}, + {0x8238a131, 0xffffaf1c}, + {0x8238a132, 0xffffaf1d}, + {0x8238a133, 0xffffaf1e}, + {0x8238a134, 0xffffaf1f}, + {0x8238a135, 0xffffaf20}, + {0x8238a136, 0xffffaf21}, + {0x8238a137, 0xffffaf22}, + {0x8238a138, 0xffffaf23}, + {0x8238a139, 0xffffaf24}, + {0x8238a230, 0xffffaf25}, + {0x8238a231, 0xffffaf26}, + {0x8238a232, 0xffffaf27}, + {0x8238a233, 0xffffaf28}, + {0x8238a234, 0xffffaf29}, + {0x8238a235, 0xffffaf2a}, + {0x8238a236, 0xffffaf2b}, + {0x8238a237, 0xffffaf2c}, + {0x8238a238, 0xffffaf2d}, + {0x8238a239, 0xffffaf2e}, + {0x8238a330, 0xffffaf2f}, + {0x8238a331, 0xffffaf30}, + {0x8238a332, 0xffffaf31}, + {0x8238a333, 0xffffaf32}, + {0x8238a334, 0xffffaf33}, + {0x8238a335, 0xffffaf34}, + {0x8238a336, 0xffffaf35}, + {0x8238a337, 0xffffaf36}, + {0x8238a338, 0xffffaf37}, + {0x8238a339, 0xffffaf38}, + {0x8238a430, 0xffffaf39}, + {0x8238a431, 0xffffaf3a}, + {0x8238a432, 0xffffaf3b}, + {0x8238a433, 0xffffaf3c}, + {0x8238a434, 0xffffaf3d}, + {0x8238a435, 0xffffaf3e}, + {0x8238a436, 0xffffaf3f}, + {0x8238a437, 0xffffaf40}, + {0x8238a438, 0xffffaf41}, + {0x8238a439, 0xffffaf42}, + {0x8238a530, 0xffffaf43}, + {0x8238a531, 0xffffaf44}, + {0x8238a532, 0xffffaf45}, + {0x8238a533, 0xffffaf46}, + {0x8238a534, 0xffffaf47}, + {0x8238a535, 0xffffaf48}, + {0x8238a536, 0xffffaf49}, + {0x8238a537, 0xffffaf4a}, + {0x8238a538, 0xffffaf4b}, + {0x8238a539, 0xffffaf4c}, + {0x8238a630, 0xffffaf4d}, + {0x8238a631, 0xffffaf4e}, + {0x8238a632, 0xffffaf4f}, + {0x8238a633, 0xffffaf50}, + {0x8238a634, 0xffffaf51}, + {0x8238a635, 0xffffaf52}, + {0x8238a636, 0xffffaf53}, + {0x8238a637, 0xffffaf54}, + {0x8238a638, 0xffffaf55}, + {0x8238a639, 0xffffaf56}, + {0x8238a730, 0xffffaf57}, + {0x8238a731, 0xffffaf58}, + {0x8238a732, 0xffffaf59}, + {0x8238a733, 0xffffaf5a}, + {0x8238a734, 0xffffaf5b}, + {0x8238a735, 0xffffaf5c}, + {0x8238a736, 0xffffaf5d}, + {0x8238a737, 0xffffaf5e}, + {0x8238a738, 0xffffaf5f}, + {0x8238a739, 0xffffaf60}, + {0x8238a830, 0xffffaf61}, + {0x8238a831, 0xffffaf62}, + {0x8238a832, 0xffffaf63}, + {0x8238a833, 0xffffaf64}, + {0x8238a834, 0xffffaf65}, + {0x8238a835, 0xffffaf66}, + {0x8238a836, 0xffffaf67}, + {0x8238a837, 0xffffaf68}, + {0x8238a838, 0xffffaf69}, + {0x8238a839, 0xffffaf6a}, + {0x8238a930, 0xffffaf6b}, + {0x8238a931, 0xffffaf6c}, + {0x8238a932, 0xffffaf6d}, + {0x8238a933, 0xffffaf6e}, + {0x8238a934, 0xffffaf6f}, + {0x8238a935, 0xffffaf70}, + {0x8238a936, 0xffffaf71}, + {0x8238a937, 0xffffaf72}, + {0x8238a938, 0xffffaf73}, + {0x8238a939, 0xffffaf74}, + {0x8238aa30, 0xffffaf75}, + {0x8238aa31, 0xffffaf76}, + {0x8238aa32, 0xffffaf77}, + {0x8238aa33, 0xffffaf78}, + {0x8238aa34, 0xffffaf79}, + {0x8238aa35, 0xffffaf7a}, + {0x8238aa36, 0xffffaf7b}, + {0x8238aa37, 0xffffaf7c}, + {0x8238aa38, 0xffffaf7d}, + {0x8238aa39, 0xffffaf7e}, + {0x8238ab30, 0xffffaf7f}, + {0x8238ab31, 0xffffaf80}, + {0x8238ab32, 0xffffaf81}, + {0x8238ab33, 0xffffaf82}, + {0x8238ab34, 0xffffaf83}, + {0x8238ab35, 0xffffaf84}, + {0x8238ab36, 0xffffaf85}, + {0x8238ab37, 0xffffaf86}, + {0x8238ab38, 0xffffaf87}, + {0x8238ab39, 0xffffaf88}, + {0x8238ac30, 0xffffaf89}, + {0x8238ac31, 0xffffaf8a}, + {0x8238ac32, 0xffffaf8b}, + {0x8238ac33, 0xffffaf8c}, + {0x8238ac34, 0xffffaf8d}, + {0x8238ac35, 0xffffaf8e}, + {0x8238ac36, 0xffffaf8f}, + {0x8238ac37, 0xffffaf90}, + {0x8238ac38, 0xffffaf91}, + {0x8238ac39, 0xffffaf92}, + {0x8238ad30, 0xffffaf93}, + {0x8238ad31, 0xffffaf94}, + {0x8238ad32, 0xffffaf95}, + {0x8238ad33, 0xffffaf96}, + {0x8238ad34, 0xffffaf97}, + {0x8238ad35, 0xffffaf98}, + {0x8238ad36, 0xffffaf99}, + {0x8238ad37, 0xffffaf9a}, + {0x8238ad38, 0xffffaf9b}, + {0x8238ad39, 0xffffaf9c}, + {0x8238ae30, 0xffffaf9d}, + {0x8238ae31, 0xffffaf9e}, + {0x8238ae32, 0xffffaf9f}, + {0x8238ae33, 0xffffafa0}, + {0x8238ae34, 0xffffafa1}, + {0x8238ae35, 0xffffafa2}, + {0x8238ae36, 0xffffafa3}, + {0x8238ae37, 0xffffafa4}, + {0x8238ae38, 0xffffafa5}, + {0x8238ae39, 0xffffafa6}, + {0x8238af30, 0xffffafa7}, + {0x8238af31, 0xffffafa8}, + {0x8238af32, 0xffffafa9}, + {0x8238af33, 0xffffafaa}, + {0x8238af34, 0xffffafab}, + {0x8238af35, 0xffffafac}, + {0x8238af36, 0xffffafad}, + {0x8238af37, 0xffffafae}, + {0x8238af38, 0xffffafaf}, + {0x8238af39, 0xffffafb0}, + {0x8238b030, 0xffffafb1}, + {0x8238b031, 0xffffafb2}, + {0x8238b032, 0xffffafb3}, + {0x8238b033, 0xffffafb4}, + {0x8238b034, 0xffffafb5}, + {0x8238b035, 0xffffafb6}, + {0x8238b036, 0xffffafb7}, + {0x8238b037, 0xffffafb8}, + {0x8238b038, 0xffffafb9}, + {0x8238b039, 0xffffafba}, + {0x8238b130, 0xffffafbb}, + {0x8238b131, 0xffffafbc}, + {0x8238b132, 0xffffafbd}, + {0x8238b133, 0xffffafbe}, + {0x8238b134, 0xffffafbf}, + {0x8238b135, 0xffffafc0}, + {0x8238b136, 0xffffafc1}, + {0x8238b137, 0xffffafc2}, + {0x8238b138, 0xffffafc3}, + {0x8238b139, 0xffffafc4}, + {0x8238b230, 0xffffafc5}, + {0x8238b231, 0xffffafc6}, + {0x8238b232, 0xffffafc7}, + {0x8238b233, 0xffffafc8}, + {0x8238b234, 0xffffafc9}, + {0x8238b235, 0xffffafca}, + {0x8238b236, 0xffffafcb}, + {0x8238b237, 0xffffafcc}, + {0x8238b238, 0xffffafcd}, + {0x8238b239, 0xffffafce}, + {0x8238b330, 0xffffafcf}, + {0x8238b331, 0xffffafd0}, + {0x8238b332, 0xffffafd1}, + {0x8238b333, 0xffffafd2}, + {0x8238b334, 0xffffafd3}, + {0x8238b335, 0xffffafd4}, + {0x8238b336, 0xffffafd5}, + {0x8238b337, 0xffffafd6}, + {0x8238b338, 0xffffafd7}, + {0x8238b339, 0xffffafd8}, + {0x8238b430, 0xffffafd9}, + {0x8238b431, 0xffffafda}, + {0x8238b432, 0xffffafdb}, + {0x8238b433, 0xffffafdc}, + {0x8238b434, 0xffffafdd}, + {0x8238b435, 0xffffafde}, + {0x8238b436, 0xffffafdf}, + {0x8238b437, 0xffffafe0}, + {0x8238b438, 0xffffafe1}, + {0x8238b439, 0xffffafe2}, + {0x8238b530, 0xffffafe3}, + {0x8238b531, 0xffffafe4}, + {0x8238b532, 0xffffafe5}, + {0x8238b533, 0xffffafe6}, + {0x8238b534, 0xffffafe7}, + {0x8238b535, 0xffffafe8}, + {0x8238b536, 0xffffafe9}, + {0x8238b537, 0xffffafea}, + {0x8238b538, 0xffffafeb}, + {0x8238b539, 0xffffafec}, + {0x8238b630, 0xffffafed}, + {0x8238b631, 0xffffafee}, + {0x8238b632, 0xffffafef}, + {0x8238b633, 0xffffaff0}, + {0x8238b634, 0xffffaff1}, + {0x8238b635, 0xffffaff2}, + {0x8238b636, 0xffffaff3}, + {0x8238b637, 0xffffaff4}, + {0x8238b638, 0xffffaff5}, + {0x8238b639, 0xffffaff6}, + {0x8238b730, 0xffffaff7}, + {0x8238b731, 0xffffaff8}, + {0x8238b732, 0xffffaff9}, + {0x8238b733, 0xffffaffa}, + {0x8238b734, 0xffffaffb}, + {0x8238b735, 0xffffaffc}, + {0x8238b736, 0xffffaffd}, + {0x8238b737, 0xffffaffe}, + {0x8238b738, 0xffffafff}, + {0x8238b739, 0xffffb000}, + {0x8238b830, 0xffffb001}, + {0x8238b831, 0xffffb002}, + {0x8238b832, 0xffffb003}, + {0x8238b833, 0xffffb004}, + {0x8238b834, 0xffffb005}, + {0x8238b835, 0xffffb006}, + {0x8238b836, 0xffffb007}, + {0x8238b837, 0xffffb008}, + {0x8238b838, 0xffffb009}, + {0x8238b839, 0xffffb00a}, + {0x8238b930, 0xffffb00b}, + {0x8238b931, 0xffffb00c}, + {0x8238b932, 0xffffb00d}, + {0x8238b933, 0xffffb00e}, + {0x8238b934, 0xffffb00f}, + {0x8238b935, 0xffffb010}, + {0x8238b936, 0xffffb011}, + {0x8238b937, 0xffffb012}, + {0x8238b938, 0xffffb013}, + {0x8238b939, 0xffffb014}, + {0x8238ba30, 0xffffb015}, + {0x8238ba31, 0xffffb016}, + {0x8238ba32, 0xffffb017}, + {0x8238ba33, 0xffffb018}, + {0x8238ba34, 0xffffb019}, + {0x8238ba35, 0xffffb01a}, + {0x8238ba36, 0xffffb01b}, + {0x8238ba37, 0xffffb01c}, + {0x8238ba38, 0xffffb01d}, + {0x8238ba39, 0xffffb01e}, + {0x8238bb30, 0xffffb01f}, + {0x8238bb31, 0xffffb020}, + {0x8238bb32, 0xffffb021}, + {0x8238bb33, 0xffffb022}, + {0x8238bb34, 0xffffb023}, + {0x8238bb35, 0xffffb024}, + {0x8238bb36, 0xffffb025}, + {0x8238bb37, 0xffffb026}, + {0x8238bb38, 0xffffb027}, + {0x8238bb39, 0xffffb028}, + {0x8238bc30, 0xffffb029}, + {0x8238bc31, 0xffffb02a}, + {0x8238bc32, 0xffffb02b}, + {0x8238bc33, 0xffffb02c}, + {0x8238bc34, 0xffffb02d}, + {0x8238bc35, 0xffffb02e}, + {0x8238bc36, 0xffffb02f}, + {0x8238bc37, 0xffffb030}, + {0x8238bc38, 0xffffb031}, + {0x8238bc39, 0xffffb032}, + {0x8238bd30, 0xffffb033}, + {0x8238bd31, 0xffffb034}, + {0x8238bd32, 0xffffb035}, + {0x8238bd33, 0xffffb036}, + {0x8238bd34, 0xffffb037}, + {0x8238bd35, 0xffffb038}, + {0x8238bd36, 0xffffb039}, + {0x8238bd37, 0xffffb03a}, + {0x8238bd38, 0xffffb03b}, + {0x8238bd39, 0xffffb03c}, + {0x8238be30, 0xffffb03d}, + {0x8238be31, 0xffffb03e}, + {0x8238be32, 0xffffb03f}, + {0x8238be33, 0xffffb040}, + {0x8238be34, 0xffffb041}, + {0x8238be35, 0xffffb042}, + {0x8238be36, 0xffffb043}, + {0x8238be37, 0xffffb044}, + {0x8238be38, 0xffffb045}, + {0x8238be39, 0xffffb046}, + {0x8238bf30, 0xffffb047}, + {0x8238bf31, 0xffffb048}, + {0x8238bf32, 0xffffb049}, + {0x8238bf33, 0xffffb04a}, + {0x8238bf34, 0xffffb04b}, + {0x8238bf35, 0xffffb04c}, + {0x8238bf36, 0xffffb04d}, + {0x8238bf37, 0xffffb04e}, + {0x8238bf38, 0xffffb04f}, + {0x8238bf39, 0xffffb050}, + {0x8238c030, 0xffffb051}, + {0x8238c031, 0xffffb052}, + {0x8238c032, 0xffffb053}, + {0x8238c033, 0xffffb054}, + {0x8238c034, 0xffffb055}, + {0x8238c035, 0xffffb056}, + {0x8238c036, 0xffffb057}, + {0x8238c037, 0xffffb058}, + {0x8238c038, 0xffffb059}, + {0x8238c039, 0xffffb05a}, + {0x8238c130, 0xffffb05b}, + {0x8238c131, 0xffffb05c}, + {0x8238c132, 0xffffb05d}, + {0x8238c133, 0xffffb05e}, + {0x8238c134, 0xffffb05f}, + {0x8238c135, 0xffffb060}, + {0x8238c136, 0xffffb061}, + {0x8238c137, 0xffffb062}, + {0x8238c138, 0xffffb063}, + {0x8238c139, 0xffffb064}, + {0x8238c230, 0xffffb065}, + {0x8238c231, 0xffffb066}, + {0x8238c232, 0xffffb067}, + {0x8238c233, 0xffffb068}, + {0x8238c234, 0xffffb069}, + {0x8238c235, 0xffffb06a}, + {0x8238c236, 0xffffb06b}, + {0x8238c237, 0xffffb06c}, + {0x8238c238, 0xffffb06d}, + {0x8238c239, 0xffffb06e}, + {0x8238c330, 0xffffb06f}, + {0x8238c331, 0xffffb070}, + {0x8238c332, 0xffffb071}, + {0x8238c333, 0xffffb072}, + {0x8238c334, 0xffffb073}, + {0x8238c335, 0xffffb074}, + {0x8238c336, 0xffffb075}, + {0x8238c337, 0xffffb076}, + {0x8238c338, 0xffffb077}, + {0x8238c339, 0xffffb078}, + {0x8238c430, 0xffffb079}, + {0x8238c431, 0xffffb07a}, + {0x8238c432, 0xffffb07b}, + {0x8238c433, 0xffffb07c}, + {0x8238c434, 0xffffb07d}, + {0x8238c435, 0xffffb07e}, + {0x8238c436, 0xffffb07f}, + {0x8238c437, 0xffffb080}, + {0x8238c438, 0xffffb081}, + {0x8238c439, 0xffffb082}, + {0x8238c530, 0xffffb083}, + {0x8238c531, 0xffffb084}, + {0x8238c532, 0xffffb085}, + {0x8238c533, 0xffffb086}, + {0x8238c534, 0xffffb087}, + {0x8238c535, 0xffffb088}, + {0x8238c536, 0xffffb089}, + {0x8238c537, 0xffffb08a}, + {0x8238c538, 0xffffb08b}, + {0x8238c539, 0xffffb08c}, + {0x8238c630, 0xffffb08d}, + {0x8238c631, 0xffffb08e}, + {0x8238c632, 0xffffb08f}, + {0x8238c633, 0xffffb090}, + {0x8238c634, 0xffffb091}, + {0x8238c635, 0xffffb092}, + {0x8238c636, 0xffffb093}, + {0x8238c637, 0xffffb094}, + {0x8238c638, 0xffffb095}, + {0x8238c639, 0xffffb096}, + {0x8238c730, 0xffffb097}, + {0x8238c731, 0xffffb098}, + {0x8238c732, 0xffffb099}, + {0x8238c733, 0xffffb09a}, + {0x8238c734, 0xffffb09b}, + {0x8238c735, 0xffffb09c}, + {0x8238c736, 0xffffb09d}, + {0x8238c737, 0xffffb09e}, + {0x8238c738, 0xffffb09f}, + {0x8238c739, 0xffffb0a0}, + {0x8238c830, 0xffffb0a1}, + {0x8238c831, 0xffffb0a2}, + {0x8238c832, 0xffffb0a3}, + {0x8238c833, 0xffffb0a4}, + {0x8238c834, 0xffffb0a5}, + {0x8238c835, 0xffffb0a6}, + {0x8238c836, 0xffffb0a7}, + {0x8238c837, 0xffffb0a8}, + {0x8238c838, 0xffffb0a9}, + {0x8238c839, 0xffffb0aa}, + {0x8238c930, 0xffffb0ab}, + {0x8238c931, 0xffffb0ac}, + {0x8238c932, 0xffffb0ad}, + {0x8238c933, 0xffffb0ae}, + {0x8238c934, 0xffffb0af}, + {0x8238c935, 0xffffb0b0}, + {0x8238c936, 0xffffb0b1}, + {0x8238c937, 0xffffb0b2}, + {0x8238c938, 0xffffb0b3}, + {0x8238c939, 0xffffb0b4}, + {0x8238ca30, 0xffffb0b5}, + {0x8238ca31, 0xffffb0b6}, + {0x8238ca32, 0xffffb0b7}, + {0x8238ca33, 0xffffb0b8}, + {0x8238ca34, 0xffffb0b9}, + {0x8238ca35, 0xffffb0ba}, + {0x8238ca36, 0xffffb0bb}, + {0x8238ca37, 0xffffb0bc}, + {0x8238ca38, 0xffffb0bd}, + {0x8238ca39, 0xffffb0be}, + {0x8238cb30, 0xffffb0bf}, + {0x8238cb31, 0xffffb0c0}, + {0x8238cb32, 0xffffb0c1}, + {0x8238cb33, 0xffffb0c2}, + {0x8238cb34, 0xffffb0c3}, + {0x8238cb35, 0xffffb0c4}, + {0x8238cb36, 0xffffb0c5}, + {0x8238cb37, 0xffffb0c6}, + {0x8238cb38, 0xffffb0c7}, + {0x8238cb39, 0xffffb0c8}, + {0x8238cc30, 0xffffb0c9}, + {0x8238cc31, 0xffffb0ca}, + {0x8238cc32, 0xffffb0cb}, + {0x8238cc33, 0xffffb0cc}, + {0x8238cc34, 0xffffb0cd}, + {0x8238cc35, 0xffffb0ce}, + {0x8238cc36, 0xffffb0cf}, + {0x8238cc37, 0xffffb0d0}, + {0x8238cc38, 0xffffb0d1}, + {0x8238cc39, 0xffffb0d2}, + {0x8238cd30, 0xffffb0d3}, + {0x8238cd31, 0xffffb0d4}, + {0x8238cd32, 0xffffb0d5}, + {0x8238cd33, 0xffffb0d6}, + {0x8238cd34, 0xffffb0d7}, + {0x8238cd35, 0xffffb0d8}, + {0x8238cd36, 0xffffb0d9}, + {0x8238cd37, 0xffffb0da}, + {0x8238cd38, 0xffffb0db}, + {0x8238cd39, 0xffffb0dc}, + {0x8238ce30, 0xffffb0dd}, + {0x8238ce31, 0xffffb0de}, + {0x8238ce32, 0xffffb0df}, + {0x8238ce33, 0xffffb0e0}, + {0x8238ce34, 0xffffb0e1}, + {0x8238ce35, 0xffffb0e2}, + {0x8238ce36, 0xffffb0e3}, + {0x8238ce37, 0xffffb0e4}, + {0x8238ce38, 0xffffb0e5}, + {0x8238ce39, 0xffffb0e6}, + {0x8238cf30, 0xffffb0e7}, + {0x8238cf31, 0xffffb0e8}, + {0x8238cf32, 0xffffb0e9}, + {0x8238cf33, 0xffffb0ea}, + {0x8238cf34, 0xffffb0eb}, + {0x8238cf35, 0xffffb0ec}, + {0x8238cf36, 0xffffb0ed}, + {0x8238cf37, 0xffffb0ee}, + {0x8238cf38, 0xffffb0ef}, + {0x8238cf39, 0xffffb0f0}, + {0x8238d030, 0xffffb0f1}, + {0x8238d031, 0xffffb0f2}, + {0x8238d032, 0xffffb0f3}, + {0x8238d033, 0xffffb0f4}, + {0x8238d034, 0xffffb0f5}, + {0x8238d035, 0xffffb0f6}, + {0x8238d036, 0xffffb0f7}, + {0x8238d037, 0xffffb0f8}, + {0x8238d038, 0xffffb0f9}, + {0x8238d039, 0xffffb0fa}, + {0x8238d130, 0xffffb0fb}, + {0x8238d131, 0xffffb0fc}, + {0x8238d132, 0xffffb0fd}, + {0x8238d133, 0xffffb0fe}, + {0x8238d134, 0xffffb0ff}, + {0x8238d135, 0xffffb100}, + {0x8238d136, 0xffffb101}, + {0x8238d137, 0xffffb102}, + {0x8238d138, 0xffffb103}, + {0x8238d139, 0xffffb104}, + {0x8238d230, 0xffffb105}, + {0x8238d231, 0xffffb106}, + {0x8238d232, 0xffffb107}, + {0x8238d233, 0xffffb108}, + {0x8238d234, 0xffffb109}, + {0x8238d235, 0xffffb10a}, + {0x8238d236, 0xffffb10b}, + {0x8238d237, 0xffffb10c}, + {0x8238d238, 0xffffb10d}, + {0x8238d239, 0xffffb10e}, + {0x8238d330, 0xffffb10f}, + {0x8238d331, 0xffffb110}, + {0x8238d332, 0xffffb111}, + {0x8238d333, 0xffffb112}, + {0x8238d334, 0xffffb113}, + {0x8238d335, 0xffffb114}, + {0x8238d336, 0xffffb115}, + {0x8238d337, 0xffffb116}, + {0x8238d338, 0xffffb117}, + {0x8238d339, 0xffffb118}, + {0x8238d430, 0xffffb119}, + {0x8238d431, 0xffffb11a}, + {0x8238d432, 0xffffb11b}, + {0x8238d433, 0xffffb11c}, + {0x8238d434, 0xffffb11d}, + {0x8238d435, 0xffffb11e}, + {0x8238d436, 0xffffb11f}, + {0x8238d437, 0xffffb120}, + {0x8238d438, 0xffffb121}, + {0x8238d439, 0xffffb122}, + {0x8238d530, 0xffffb123}, + {0x8238d531, 0xffffb124}, + {0x8238d532, 0xffffb125}, + {0x8238d533, 0xffffb126}, + {0x8238d534, 0xffffb127}, + {0x8238d535, 0xffffb128}, + {0x8238d536, 0xffffb129}, + {0x8238d537, 0xffffb12a}, + {0x8238d538, 0xffffb12b}, + {0x8238d539, 0xffffb12c}, + {0x8238d630, 0xffffb12d}, + {0x8238d631, 0xffffb12e}, + {0x8238d632, 0xffffb12f}, + {0x8238d633, 0xffffb130}, + {0x8238d634, 0xffffb131}, + {0x8238d635, 0xffffb132}, + {0x8238d636, 0xffffb133}, + {0x8238d637, 0xffffb134}, + {0x8238d638, 0xffffb135}, + {0x8238d639, 0xffffb136}, + {0x8238d730, 0xffffb137}, + {0x8238d731, 0xffffb138}, + {0x8238d732, 0xffffb139}, + {0x8238d733, 0xffffb13a}, + {0x8238d734, 0xffffb13b}, + {0x8238d735, 0xffffb13c}, + {0x8238d736, 0xffffb13d}, + {0x8238d737, 0xffffb13e}, + {0x8238d738, 0xffffb13f}, + {0x8238d739, 0xffffb140}, + {0x8238d830, 0xffffb141}, + {0x8238d831, 0xffffb142}, + {0x8238d832, 0xffffb143}, + {0x8238d833, 0xffffb144}, + {0x8238d834, 0xffffb145}, + {0x8238d835, 0xffffb146}, + {0x8238d836, 0xffffb147}, + {0x8238d837, 0xffffb148}, + {0x8238d838, 0xffffb149}, + {0x8238d839, 0xffffb14a}, + {0x8238d930, 0xffffb14b}, + {0x8238d931, 0xffffb14c}, + {0x8238d932, 0xffffb14d}, + {0x8238d933, 0xffffb14e}, + {0x8238d934, 0xffffb14f}, + {0x8238d935, 0xffffb150}, + {0x8238d936, 0xffffb151}, + {0x8238d937, 0xffffb152}, + {0x8238d938, 0xffffb153}, + {0x8238d939, 0xffffb154}, + {0x8238da30, 0xffffb155}, + {0x8238da31, 0xffffb156}, + {0x8238da32, 0xffffb157}, + {0x8238da33, 0xffffb158}, + {0x8238da34, 0xffffb159}, + {0x8238da35, 0xffffb15a}, + {0x8238da36, 0xffffb15b}, + {0x8238da37, 0xffffb15c}, + {0x8238da38, 0xffffb15d}, + {0x8238da39, 0xffffb15e}, + {0x8238db30, 0xffffb15f}, + {0x8238db31, 0xffffb160}, + {0x8238db32, 0xffffb161}, + {0x8238db33, 0xffffb162}, + {0x8238db34, 0xffffb163}, + {0x8238db35, 0xffffb164}, + {0x8238db36, 0xffffb165}, + {0x8238db37, 0xffffb166}, + {0x8238db38, 0xffffb167}, + {0x8238db39, 0xffffb168}, + {0x8238dc30, 0xffffb169}, + {0x8238dc31, 0xffffb16a}, + {0x8238dc32, 0xffffb16b}, + {0x8238dc33, 0xffffb16c}, + {0x8238dc34, 0xffffb16d}, + {0x8238dc35, 0xffffb16e}, + {0x8238dc36, 0xffffb16f}, + {0x8238dc37, 0xffffb170}, + {0x8238dc38, 0xffffb171}, + {0x8238dc39, 0xffffb172}, + {0x8238dd30, 0xffffb173}, + {0x8238dd31, 0xffffb174}, + {0x8238dd32, 0xffffb175}, + {0x8238dd33, 0xffffb176}, + {0x8238dd34, 0xffffb177}, + {0x8238dd35, 0xffffb178}, + {0x8238dd36, 0xffffb179}, + {0x8238dd37, 0xffffb17a}, + {0x8238dd38, 0xffffb17b}, + {0x8238dd39, 0xffffb17c}, + {0x8238de30, 0xffffb17d}, + {0x8238de31, 0xffffb17e}, + {0x8238de32, 0xffffb17f}, + {0x8238de33, 0xffffb180}, + {0x8238de34, 0xffffb181}, + {0x8238de35, 0xffffb182}, + {0x8238de36, 0xffffb183}, + {0x8238de37, 0xffffb184}, + {0x8238de38, 0xffffb185}, + {0x8238de39, 0xffffb186}, + {0x8238df30, 0xffffb187}, + {0x8238df31, 0xffffb188}, + {0x8238df32, 0xffffb189}, + {0x8238df33, 0xffffb18a}, + {0x8238df34, 0xffffb18b}, + {0x8238df35, 0xffffb18c}, + {0x8238df36, 0xffffb18d}, + {0x8238df37, 0xffffb18e}, + {0x8238df38, 0xffffb18f}, + {0x8238df39, 0xffffb190}, + {0x8238e030, 0xffffb191}, + {0x8238e031, 0xffffb192}, + {0x8238e032, 0xffffb193}, + {0x8238e033, 0xffffb194}, + {0x8238e034, 0xffffb195}, + {0x8238e035, 0xffffb196}, + {0x8238e036, 0xffffb197}, + {0x8238e037, 0xffffb198}, + {0x8238e038, 0xffffb199}, + {0x8238e039, 0xffffb19a}, + {0x8238e130, 0xffffb19b}, + {0x8238e131, 0xffffb19c}, + {0x8238e132, 0xffffb19d}, + {0x8238e133, 0xffffb19e}, + {0x8238e134, 0xffffb19f}, + {0x8238e135, 0xffffb1a0}, + {0x8238e136, 0xffffb1a1}, + {0x8238e137, 0xffffb1a2}, + {0x8238e138, 0xffffb1a3}, + {0x8238e139, 0xffffb1a4}, + {0x8238e230, 0xffffb1a5}, + {0x8238e231, 0xffffb1a6}, + {0x8238e232, 0xffffb1a7}, + {0x8238e233, 0xffffb1a8}, + {0x8238e234, 0xffffb1a9}, + {0x8238e235, 0xffffb1aa}, + {0x8238e236, 0xffffb1ab}, + {0x8238e237, 0xffffb1ac}, + {0x8238e238, 0xffffb1ad}, + {0x8238e239, 0xffffb1ae}, + {0x8238e330, 0xffffb1af}, + {0x8238e331, 0xffffb1b0}, + {0x8238e332, 0xffffb1b1}, + {0x8238e333, 0xffffb1b2}, + {0x8238e334, 0xffffb1b3}, + {0x8238e335, 0xffffb1b4}, + {0x8238e336, 0xffffb1b5}, + {0x8238e337, 0xffffb1b6}, + {0x8238e338, 0xffffb1b7}, + {0x8238e339, 0xffffb1b8}, + {0x8238e430, 0xffffb1b9}, + {0x8238e431, 0xffffb1ba}, + {0x8238e432, 0xffffb1bb}, + {0x8238e433, 0xffffb1bc}, + {0x8238e434, 0xffffb1bd}, + {0x8238e435, 0xffffb1be}, + {0x8238e436, 0xffffb1bf}, + {0x8238e437, 0xffffb1c0}, + {0x8238e438, 0xffffb1c1}, + {0x8238e439, 0xffffb1c2}, + {0x8238e530, 0xffffb1c3}, + {0x8238e531, 0xffffb1c4}, + {0x8238e532, 0xffffb1c5}, + {0x8238e533, 0xffffb1c6}, + {0x8238e534, 0xffffb1c7}, + {0x8238e535, 0xffffb1c8}, + {0x8238e536, 0xffffb1c9}, + {0x8238e537, 0xffffb1ca}, + {0x8238e538, 0xffffb1cb}, + {0x8238e539, 0xffffb1cc}, + {0x8238e630, 0xffffb1cd}, + {0x8238e631, 0xffffb1ce}, + {0x8238e632, 0xffffb1cf}, + {0x8238e633, 0xffffb1d0}, + {0x8238e634, 0xffffb1d1}, + {0x8238e635, 0xffffb1d2}, + {0x8238e636, 0xffffb1d3}, + {0x8238e637, 0xffffb1d4}, + {0x8238e638, 0xffffb1d5}, + {0x8238e639, 0xffffb1d6}, + {0x8238e730, 0xffffb1d7}, + {0x8238e731, 0xffffb1d8}, + {0x8238e732, 0xffffb1d9}, + {0x8238e733, 0xffffb1da}, + {0x8238e734, 0xffffb1db}, + {0x8238e735, 0xffffb1dc}, + {0x8238e736, 0xffffb1dd}, + {0x8238e737, 0xffffb1de}, + {0x8238e738, 0xffffb1df}, + {0x8238e739, 0xffffb1e0}, + {0x8238e830, 0xffffb1e1}, + {0x8238e831, 0xffffb1e2}, + {0x8238e832, 0xffffb1e3}, + {0x8238e833, 0xffffb1e4}, + {0x8238e834, 0xffffb1e5}, + {0x8238e835, 0xffffb1e6}, + {0x8238e836, 0xffffb1e7}, + {0x8238e837, 0xffffb1e8}, + {0x8238e838, 0xffffb1e9}, + {0x8238e839, 0xffffb1ea}, + {0x8238e930, 0xffffb1eb}, + {0x8238e931, 0xffffb1ec}, + {0x8238e932, 0xffffb1ed}, + {0x8238e933, 0xffffb1ee}, + {0x8238e934, 0xffffb1ef}, + {0x8238e935, 0xffffb1f0}, + {0x8238e936, 0xffffb1f1}, + {0x8238e937, 0xffffb1f2}, + {0x8238e938, 0xffffb1f3}, + {0x8238e939, 0xffffb1f4}, + {0x8238ea30, 0xffffb1f5}, + {0x8238ea31, 0xffffb1f6}, + {0x8238ea32, 0xffffb1f7}, + {0x8238ea33, 0xffffb1f8}, + {0x8238ea34, 0xffffb1f9}, + {0x8238ea35, 0xffffb1fa}, + {0x8238ea36, 0xffffb1fb}, + {0x8238ea37, 0xffffb1fc}, + {0x8238ea38, 0xffffb1fd}, + {0x8238ea39, 0xffffb1fe}, + {0x8238eb30, 0xffffb1ff}, + {0x8238eb31, 0xffffb200}, + {0x8238eb32, 0xffffb201}, + {0x8238eb33, 0xffffb202}, + {0x8238eb34, 0xffffb203}, + {0x8238eb35, 0xffffb204}, + {0x8238eb36, 0xffffb205}, + {0x8238eb37, 0xffffb206}, + {0x8238eb38, 0xffffb207}, + {0x8238eb39, 0xffffb208}, + {0x8238ec30, 0xffffb209}, + {0x8238ec31, 0xffffb20a}, + {0x8238ec32, 0xffffb20b}, + {0x8238ec33, 0xffffb20c}, + {0x8238ec34, 0xffffb20d}, + {0x8238ec35, 0xffffb20e}, + {0x8238ec36, 0xffffb20f}, + {0x8238ec37, 0xffffb210}, + {0x8238ec38, 0xffffb211}, + {0x8238ec39, 0xffffb212}, + {0x8238ed30, 0xffffb213}, + {0x8238ed31, 0xffffb214}, + {0x8238ed32, 0xffffb215}, + {0x8238ed33, 0xffffb216}, + {0x8238ed34, 0xffffb217}, + {0x8238ed35, 0xffffb218}, + {0x8238ed36, 0xffffb219}, + {0x8238ed37, 0xffffb21a}, + {0x8238ed38, 0xffffb21b}, + {0x8238ed39, 0xffffb21c}, + {0x8238ee30, 0xffffb21d}, + {0x8238ee31, 0xffffb21e}, + {0x8238ee32, 0xffffb21f}, + {0x8238ee33, 0xffffb220}, + {0x8238ee34, 0xffffb221}, + {0x8238ee35, 0xffffb222}, + {0x8238ee36, 0xffffb223}, + {0x8238ee37, 0xffffb224}, + {0x8238ee38, 0xffffb225}, + {0x8238ee39, 0xffffb226}, + {0x8238ef30, 0xffffb227}, + {0x8238ef31, 0xffffb228}, + {0x8238ef32, 0xffffb229}, + {0x8238ef33, 0xffffb22a}, + {0x8238ef34, 0xffffb22b}, + {0x8238ef35, 0xffffb22c}, + {0x8238ef36, 0xffffb22d}, + {0x8238ef37, 0xffffb22e}, + {0x8238ef38, 0xffffb22f}, + {0x8238ef39, 0xffffb230}, + {0x8238f030, 0xffffb231}, + {0x8238f031, 0xffffb232}, + {0x8238f032, 0xffffb233}, + {0x8238f033, 0xffffb234}, + {0x8238f034, 0xffffb235}, + {0x8238f035, 0xffffb236}, + {0x8238f036, 0xffffb237}, + {0x8238f037, 0xffffb238}, + {0x8238f038, 0xffffb239}, + {0x8238f039, 0xffffb23a}, + {0x8238f130, 0xffffb23b}, + {0x8238f131, 0xffffb23c}, + {0x8238f132, 0xffffb23d}, + {0x8238f133, 0xffffb23e}, + {0x8238f134, 0xffffb23f}, + {0x8238f135, 0xffffb240}, + {0x8238f136, 0xffffb241}, + {0x8238f137, 0xffffb242}, + {0x8238f138, 0xffffb243}, + {0x8238f139, 0xffffb244}, + {0x8238f230, 0xffffb245}, + {0x8238f231, 0xffffb246}, + {0x8238f232, 0xffffb247}, + {0x8238f233, 0xffffb248}, + {0x8238f234, 0xffffb249}, + {0x8238f235, 0xffffb24a}, + {0x8238f236, 0xffffb24b}, + {0x8238f237, 0xffffb24c}, + {0x8238f238, 0xffffb24d}, + {0x8238f239, 0xffffb24e}, + {0x8238f330, 0xffffb24f}, + {0x8238f331, 0xffffb250}, + {0x8238f332, 0xffffb251}, + {0x8238f333, 0xffffb252}, + {0x8238f334, 0xffffb253}, + {0x8238f335, 0xffffb254}, + {0x8238f336, 0xffffb255}, + {0x8238f337, 0xffffb256}, + {0x8238f338, 0xffffb257}, + {0x8238f339, 0xffffb258}, + {0x8238f430, 0xffffb259}, + {0x8238f431, 0xffffb25a}, + {0x8238f432, 0xffffb25b}, + {0x8238f433, 0xffffb25c}, + {0x8238f434, 0xffffb25d}, + {0x8238f435, 0xffffb25e}, + {0x8238f436, 0xffffb25f}, + {0x8238f437, 0xffffb260}, + {0x8238f438, 0xffffb261}, + {0x8238f439, 0xffffb262}, + {0x8238f530, 0xffffb263}, + {0x8238f531, 0xffffb264}, + {0x8238f532, 0xffffb265}, + {0x8238f533, 0xffffb266}, + {0x8238f534, 0xffffb267}, + {0x8238f535, 0xffffb268}, + {0x8238f536, 0xffffb269}, + {0x8238f537, 0xffffb26a}, + {0x8238f538, 0xffffb26b}, + {0x8238f539, 0xffffb26c}, + {0x8238f630, 0xffffb26d}, + {0x8238f631, 0xffffb26e}, + {0x8238f632, 0xffffb26f}, + {0x8238f633, 0xffffb270}, + {0x8238f634, 0xffffb271}, + {0x8238f635, 0xffffb272}, + {0x8238f636, 0xffffb273}, + {0x8238f637, 0xffffb274}, + {0x8238f638, 0xffffb275}, + {0x8238f639, 0xffffb276}, + {0x8238f730, 0xffffb277}, + {0x8238f731, 0xffffb278}, + {0x8238f732, 0xffffb279}, + {0x8238f733, 0xffffb27a}, + {0x8238f734, 0xffffb27b}, + {0x8238f735, 0xffffb27c}, + {0x8238f736, 0xffffb27d}, + {0x8238f737, 0xffffb27e}, + {0x8238f738, 0xffffb27f}, + {0x8238f739, 0xffffb280}, + {0x8238f830, 0xffffb281}, + {0x8238f831, 0xffffb282}, + {0x8238f832, 0xffffb283}, + {0x8238f833, 0xffffb284}, + {0x8238f834, 0xffffb285}, + {0x8238f835, 0xffffb286}, + {0x8238f836, 0xffffb287}, + {0x8238f837, 0xffffb288}, + {0x8238f838, 0xffffb289}, + {0x8238f839, 0xffffb28a}, + {0x8238f930, 0xffffb28b}, + {0x8238f931, 0xffffb28c}, + {0x8238f932, 0xffffb28d}, + {0x8238f933, 0xffffb28e}, + {0x8238f934, 0xffffb28f}, + {0x8238f935, 0xffffb290}, + {0x8238f936, 0xffffb291}, + {0x8238f937, 0xffffb292}, + {0x8238f938, 0xffffb293}, + {0x8238f939, 0xffffb294}, + {0x8238fa30, 0xffffb295}, + {0x8238fa31, 0xffffb296}, + {0x8238fa32, 0xffffb297}, + {0x8238fa33, 0xffffb298}, + {0x8238fa34, 0xffffb299}, + {0x8238fa35, 0xffffb29a}, + {0x8238fa36, 0xffffb29b}, + {0x8238fa37, 0xffffb29c}, + {0x8238fa38, 0xffffb29d}, + {0x8238fa39, 0xffffb29e}, + {0x8238fb30, 0xffffb29f}, + {0x8238fb31, 0xffffb2a0}, + {0x8238fb32, 0xffffb2a1}, + {0x8238fb33, 0xffffb2a2}, + {0x8238fb34, 0xffffb2a3}, + {0x8238fb35, 0xffffb2a4}, + {0x8238fb36, 0xffffb2a5}, + {0x8238fb37, 0xffffb2a6}, + {0x8238fb38, 0xffffb2a7}, + {0x8238fb39, 0xffffb2a8}, + {0x8238fc30, 0xffffb2a9}, + {0x8238fc31, 0xffffb2aa}, + {0x8238fc32, 0xffffb2ab}, + {0x8238fc33, 0xffffb2ac}, + {0x8238fc34, 0xffffb2ad}, + {0x8238fc35, 0xffffb2ae}, + {0x8238fc36, 0xffffb2af}, + {0x8238fc37, 0xffffb2b0}, + {0x8238fc38, 0xffffb2b1}, + {0x8238fc39, 0xffffb2b2}, + {0x8238fd30, 0xffffb2b3}, + {0x8238fd31, 0xffffb2b4}, + {0x8238fd32, 0xffffb2b5}, + {0x8238fd33, 0xffffb2b6}, + {0x8238fd34, 0xffffb2b7}, + {0x8238fd35, 0xffffb2b8}, + {0x8238fd36, 0xffffb2b9}, + {0x8238fd37, 0xffffb2ba}, + {0x8238fd38, 0xffffb2bb}, + {0x8238fd39, 0xffffb2bc}, + {0x8238fe30, 0xffffb2bd}, + {0x8238fe31, 0xffffb2be}, + {0x8238fe32, 0xffffb2bf}, + {0x8238fe33, 0xffffb2c0}, + {0x8238fe34, 0xffffb2c1}, + {0x8238fe35, 0xffffb2c2}, + {0x8238fe36, 0xffffb2c3}, + {0x8238fe37, 0xffffb2c4}, + {0x8238fe38, 0xffffb2c5}, + {0x8238fe39, 0xffffb2c6}, + {0x82398130, 0xffffb2c7}, + {0x82398131, 0xffffb2c8}, + {0x82398132, 0xffffb2c9}, + {0x82398133, 0xffffb2ca}, + {0x82398134, 0xffffb2cb}, + {0x82398135, 0xffffb2cc}, + {0x82398136, 0xffffb2cd}, + {0x82398137, 0xffffb2ce}, + {0x82398138, 0xffffb2cf}, + {0x82398139, 0xffffb2d0}, + {0x82398230, 0xffffb2d1}, + {0x82398231, 0xffffb2d2}, + {0x82398232, 0xffffb2d3}, + {0x82398233, 0xffffb2d4}, + {0x82398234, 0xffffb2d5}, + {0x82398235, 0xffffb2d6}, + {0x82398236, 0xffffb2d7}, + {0x82398237, 0xffffb2d8}, + {0x82398238, 0xffffb2d9}, + {0x82398239, 0xffffb2da}, + {0x82398330, 0xffffb2db}, + {0x82398331, 0xffffb2dc}, + {0x82398332, 0xffffb2dd}, + {0x82398333, 0xffffb2de}, + {0x82398334, 0xffffb2df}, + {0x82398335, 0xffffb2e0}, + {0x82398336, 0xffffb2e1}, + {0x82398337, 0xffffb2e2}, + {0x82398338, 0xffffb2e3}, + {0x82398339, 0xffffb2e4}, + {0x82398430, 0xffffb2e5}, + {0x82398431, 0xffffb2e6}, + {0x82398432, 0xffffb2e7}, + {0x82398433, 0xffffb2e8}, + {0x82398434, 0xffffb2e9}, + {0x82398435, 0xffffb2ea}, + {0x82398436, 0xffffb2eb}, + {0x82398437, 0xffffb2ec}, + {0x82398438, 0xffffb2ed}, + {0x82398439, 0xffffb2ee}, + {0x82398530, 0xffffb2ef}, + {0x82398531, 0xffffb2f0}, + {0x82398532, 0xffffb2f1}, + {0x82398533, 0xffffb2f2}, + {0x82398534, 0xffffb2f3}, + {0x82398535, 0xffffb2f4}, + {0x82398536, 0xffffb2f5}, + {0x82398537, 0xffffb2f6}, + {0x82398538, 0xffffb2f7}, + {0x82398539, 0xffffb2f8}, + {0x82398630, 0xffffb2f9}, + {0x82398631, 0xffffb2fa}, + {0x82398632, 0xffffb2fb}, + {0x82398633, 0xffffb2fc}, + {0x82398634, 0xffffb2fd}, + {0x82398635, 0xffffb2fe}, + {0x82398636, 0xffffb2ff}, + {0x82398637, 0xffffb300}, + {0x82398638, 0xffffb301}, + {0x82398639, 0xffffb302}, + {0x82398730, 0xffffb303}, + {0x82398731, 0xffffb304}, + {0x82398732, 0xffffb305}, + {0x82398733, 0xffffb306}, + {0x82398734, 0xffffb307}, + {0x82398735, 0xffffb308}, + {0x82398736, 0xffffb309}, + {0x82398737, 0xffffb30a}, + {0x82398738, 0xffffb30b}, + {0x82398739, 0xffffb30c}, + {0x82398830, 0xffffb30d}, + {0x82398831, 0xffffb30e}, + {0x82398832, 0xffffb30f}, + {0x82398833, 0xffffb310}, + {0x82398834, 0xffffb311}, + {0x82398835, 0xffffb312}, + {0x82398836, 0xffffb313}, + {0x82398837, 0xffffb314}, + {0x82398838, 0xffffb315}, + {0x82398839, 0xffffb316}, + {0x82398930, 0xffffb317}, + {0x82398931, 0xffffb318}, + {0x82398932, 0xffffb319}, + {0x82398933, 0xffffb31a}, + {0x82398934, 0xffffb31b}, + {0x82398935, 0xffffb31c}, + {0x82398936, 0xffffb31d}, + {0x82398937, 0xffffb31e}, + {0x82398938, 0xffffb31f}, + {0x82398939, 0xffffb320}, + {0x82398a30, 0xffffb321}, + {0x82398a31, 0xffffb322}, + {0x82398a32, 0xffffb323}, + {0x82398a33, 0xffffb324}, + {0x82398a34, 0xffffb325}, + {0x82398a35, 0xffffb326}, + {0x82398a36, 0xffffb327}, + {0x82398a37, 0xffffb328}, + {0x82398a38, 0xffffb329}, + {0x82398a39, 0xffffb32a}, + {0x82398b30, 0xffffb32b}, + {0x82398b31, 0xffffb32c}, + {0x82398b32, 0xffffb32d}, + {0x82398b33, 0xffffb32e}, + {0x82398b34, 0xffffb32f}, + {0x82398b35, 0xffffb330}, + {0x82398b36, 0xffffb331}, + {0x82398b37, 0xffffb332}, + {0x82398b38, 0xffffb333}, + {0x82398b39, 0xffffb334}, + {0x82398c30, 0xffffb335}, + {0x82398c31, 0xffffb336}, + {0x82398c32, 0xffffb337}, + {0x82398c33, 0xffffb338}, + {0x82398c34, 0xffffb339}, + {0x82398c35, 0xffffb33a}, + {0x82398c36, 0xffffb33b}, + {0x82398c37, 0xffffb33c}, + {0x82398c38, 0xffffb33d}, + {0x82398c39, 0xffffb33e}, + {0x82398d30, 0xffffb33f}, + {0x82398d31, 0xffffb340}, + {0x82398d32, 0xffffb341}, + {0x82398d33, 0xffffb342}, + {0x82398d34, 0xffffb343}, + {0x82398d35, 0xffffb344}, + {0x82398d36, 0xffffb345}, + {0x82398d37, 0xffffb346}, + {0x82398d38, 0xffffb347}, + {0x82398d39, 0xffffb348}, + {0x82398e30, 0xffffb349}, + {0x82398e31, 0xffffb34a}, + {0x82398e32, 0xffffb34b}, + {0x82398e33, 0xffffb34c}, + {0x82398e34, 0xffffb34d}, + {0x82398e35, 0xffffb34e}, + {0x82398e36, 0xffffb34f}, + {0x82398e37, 0xffffb350}, + {0x82398e38, 0xffffb351}, + {0x82398e39, 0xffffb352}, + {0x82398f30, 0xffffb353}, + {0x82398f31, 0xffffb354}, + {0x82398f32, 0xffffb355}, + {0x82398f33, 0xffffb356}, + {0x82398f34, 0xffffb357}, + {0x82398f35, 0xffffb358}, + {0x82398f36, 0xffffb359}, + {0x82398f37, 0xffffb35a}, + {0x82398f38, 0xffffb35b}, + {0x82398f39, 0xffffb35c}, + {0x82399030, 0xffffb35d}, + {0x82399031, 0xffffb35e}, + {0x82399032, 0xffffb35f}, + {0x82399033, 0xffffb360}, + {0x82399034, 0xffffb361}, + {0x82399035, 0xffffb362}, + {0x82399036, 0xffffb363}, + {0x82399037, 0xffffb364}, + {0x82399038, 0xffffb365}, + {0x82399039, 0xffffb366}, + {0x82399130, 0xffffb367}, + {0x82399131, 0xffffb368}, + {0x82399132, 0xffffb369}, + {0x82399133, 0xffffb36a}, + {0x82399134, 0xffffb36b}, + {0x82399135, 0xffffb36c}, + {0x82399136, 0xffffb36d}, + {0x82399137, 0xffffb36e}, + {0x82399138, 0xffffb36f}, + {0x82399139, 0xffffb370}, + {0x82399230, 0xffffb371}, + {0x82399231, 0xffffb372}, + {0x82399232, 0xffffb373}, + {0x82399233, 0xffffb374}, + {0x82399234, 0xffffb375}, + {0x82399235, 0xffffb376}, + {0x82399236, 0xffffb377}, + {0x82399237, 0xffffb378}, + {0x82399238, 0xffffb379}, + {0x82399239, 0xffffb37a}, + {0x82399330, 0xffffb37b}, + {0x82399331, 0xffffb37c}, + {0x82399332, 0xffffb37d}, + {0x82399333, 0xffffb37e}, + {0x82399334, 0xffffb37f}, + {0x82399335, 0xffffb380}, + {0x82399336, 0xffffb381}, + {0x82399337, 0xffffb382}, + {0x82399338, 0xffffb383}, + {0x82399339, 0xffffb384}, + {0x82399430, 0xffffb385}, + {0x82399431, 0xffffb386}, + {0x82399432, 0xffffb387}, + {0x82399433, 0xffffb388}, + {0x82399434, 0xffffb389}, + {0x82399435, 0xffffb38a}, + {0x82399436, 0xffffb38b}, + {0x82399437, 0xffffb38c}, + {0x82399438, 0xffffb38d}, + {0x82399439, 0xffffb38e}, + {0x82399530, 0xffffb38f}, + {0x82399531, 0xffffb390}, + {0x82399532, 0xffffb391}, + {0x82399533, 0xffffb392}, + {0x82399534, 0xffffb393}, + {0x82399535, 0xffffb394}, + {0x82399536, 0xffffb395}, + {0x82399537, 0xffffb396}, + {0x82399538, 0xffffb397}, + {0x82399539, 0xffffb398}, + {0x82399630, 0xffffb399}, + {0x82399631, 0xffffb39a}, + {0x82399632, 0xffffb39b}, + {0x82399633, 0xffffb39c}, + {0x82399634, 0xffffb39d}, + {0x82399635, 0xffffb39e}, + {0x82399636, 0xffffb39f}, + {0x82399637, 0xffffb3a0}, + {0x82399638, 0xffffb3a1}, + {0x82399639, 0xffffb3a2}, + {0x82399730, 0xffffb3a3}, + {0x82399731, 0xffffb3a4}, + {0x82399732, 0xffffb3a5}, + {0x82399733, 0xffffb3a6}, + {0x82399734, 0xffffb3a7}, + {0x82399735, 0xffffb3a8}, + {0x82399736, 0xffffb3a9}, + {0x82399737, 0xffffb3aa}, + {0x82399738, 0xffffb3ab}, + {0x82399739, 0xffffb3ac}, + {0x82399830, 0xffffb3ad}, + {0x82399831, 0xffffb3ae}, + {0x82399832, 0xffffb3af}, + {0x82399833, 0xffffb3b0}, + {0x82399834, 0xffffb3b1}, + {0x82399835, 0xffffb3b2}, + {0x82399836, 0xffffb3b3}, + {0x82399837, 0xffffb3b4}, + {0x82399838, 0xffffb3b5}, + {0x82399839, 0xffffb3b6}, + {0x82399930, 0xffffb3b7}, + {0x82399931, 0xffffb3b8}, + {0x82399932, 0xffffb3b9}, + {0x82399933, 0xffffb3ba}, + {0x82399934, 0xffffb3bb}, + {0x82399935, 0xffffb3bc}, + {0x82399936, 0xffffb3bd}, + {0x82399937, 0xffffb3be}, + {0x82399938, 0xffffb3bf}, + {0x82399939, 0xffffb3c0}, + {0x82399a30, 0xffffb3c1}, + {0x82399a31, 0xffffb3c2}, + {0x82399a32, 0xffffb3c3}, + {0x82399a33, 0xffffb3c4}, + {0x82399a34, 0xffffb3c5}, + {0x82399a35, 0xffffb3c6}, + {0x82399a36, 0xffffb3c7}, + {0x82399a37, 0xffffb3c8}, + {0x82399a38, 0xffffb3c9}, + {0x82399a39, 0xffffb3ca}, + {0x82399b30, 0xffffb3cb}, + {0x82399b31, 0xffffb3cc}, + {0x82399b32, 0xffffb3cd}, + {0x82399b33, 0xffffb3ce}, + {0x82399b34, 0xffffb3cf}, + {0x82399b35, 0xffffb3d0}, + {0x82399b36, 0xffffb3d1}, + {0x82399b37, 0xffffb3d2}, + {0x82399b38, 0xffffb3d3}, + {0x82399b39, 0xffffb3d4}, + {0x82399c30, 0xffffb3d5}, + {0x82399c31, 0xffffb3d6}, + {0x82399c32, 0xffffb3d7}, + {0x82399c33, 0xffffb3d8}, + {0x82399c34, 0xffffb3d9}, + {0x82399c35, 0xffffb3da}, + {0x82399c36, 0xffffb3db}, + {0x82399c37, 0xffffb3dc}, + {0x82399c38, 0xffffb3dd}, + {0x82399c39, 0xffffb3de}, + {0x82399d30, 0xffffb3df}, + {0x82399d31, 0xffffb3e0}, + {0x82399d32, 0xffffb3e1}, + {0x82399d33, 0xffffb3e2}, + {0x82399d34, 0xffffb3e3}, + {0x82399d35, 0xffffb3e4}, + {0x82399d36, 0xffffb3e5}, + {0x82399d37, 0xffffb3e6}, + {0x82399d38, 0xffffb3e7}, + {0x82399d39, 0xffffb3e8}, + {0x82399e30, 0xffffb3e9}, + {0x82399e31, 0xffffb3ea}, + {0x82399e32, 0xffffb3eb}, + {0x82399e33, 0xffffb3ec}, + {0x82399e34, 0xffffb3ed}, + {0x82399e35, 0xffffb3ee}, + {0x82399e36, 0xffffb3ef}, + {0x82399e37, 0xffffb3f0}, + {0x82399e38, 0xffffb3f1}, + {0x82399e39, 0xffffb3f2}, + {0x82399f30, 0xffffb3f3}, + {0x82399f31, 0xffffb3f4}, + {0x82399f32, 0xffffb3f5}, + {0x82399f33, 0xffffb3f6}, + {0x82399f34, 0xffffb3f7}, + {0x82399f35, 0xffffb3f8}, + {0x82399f36, 0xffffb3f9}, + {0x82399f37, 0xffffb3fa}, + {0x82399f38, 0xffffb3fb}, + {0x82399f39, 0xffffb3fc}, + {0x8239a030, 0xffffb3fd}, + {0x8239a031, 0xffffb3fe}, + {0x8239a032, 0xffffb3ff}, + {0x8239a033, 0xffffb400}, + {0x8239a034, 0xffffb401}, + {0x8239a035, 0xffffb402}, + {0x8239a036, 0xffffb403}, + {0x8239a037, 0xffffb404}, + {0x8239a038, 0xffffb405}, + {0x8239a039, 0xffffb406}, + {0x8239a130, 0xffffb407}, + {0x8239a131, 0xffffb408}, + {0x8239a132, 0xffffb409}, + {0x8239a133, 0xffffb40a}, + {0x8239a134, 0xffffb40b}, + {0x8239a135, 0xffffb40c}, + {0x8239a136, 0xffffb40d}, + {0x8239a137, 0xffffb40e}, + {0x8239a138, 0xffffb40f}, + {0x8239a139, 0xffffb410}, + {0x8239a230, 0xffffb411}, + {0x8239a231, 0xffffb412}, + {0x8239a232, 0xffffb413}, + {0x8239a233, 0xffffb414}, + {0x8239a234, 0xffffb415}, + {0x8239a235, 0xffffb416}, + {0x8239a236, 0xffffb417}, + {0x8239a237, 0xffffb418}, + {0x8239a238, 0xffffb419}, + {0x8239a239, 0xffffb41a}, + {0x8239a330, 0xffffb41b}, + {0x8239a331, 0xffffb41c}, + {0x8239a332, 0xffffb41d}, + {0x8239a333, 0xffffb41e}, + {0x8239a334, 0xffffb41f}, + {0x8239a335, 0xffffb420}, + {0x8239a336, 0xffffb421}, + {0x8239a337, 0xffffb422}, + {0x8239a338, 0xffffb423}, + {0x8239a339, 0xffffb424}, + {0x8239a430, 0xffffb425}, + {0x8239a431, 0xffffb426}, + {0x8239a432, 0xffffb427}, + {0x8239a433, 0xffffb428}, + {0x8239a434, 0xffffb429}, + {0x8239a435, 0xffffb42a}, + {0x8239a436, 0xffffb42b}, + {0x8239a437, 0xffffb42c}, + {0x8239a438, 0xffffb42d}, + {0x8239a439, 0xffffb42e}, + {0x8239a530, 0xffffb42f}, + {0x8239a531, 0xffffb430}, + {0x8239a532, 0xffffb431}, + {0x8239a533, 0xffffb432}, + {0x8239a534, 0xffffb433}, + {0x8239a535, 0xffffb434}, + {0x8239a536, 0xffffb435}, + {0x8239a537, 0xffffb436}, + {0x8239a538, 0xffffb437}, + {0x8239a539, 0xffffb438}, + {0x8239a630, 0xffffb439}, + {0x8239a631, 0xffffb43a}, + {0x8239a632, 0xffffb43b}, + {0x8239a633, 0xffffb43c}, + {0x8239a634, 0xffffb43d}, + {0x8239a635, 0xffffb43e}, + {0x8239a636, 0xffffb43f}, + {0x8239a637, 0xffffb440}, + {0x8239a638, 0xffffb441}, + {0x8239a639, 0xffffb442}, + {0x8239a730, 0xffffb443}, + {0x8239a731, 0xffffb444}, + {0x8239a732, 0xffffb445}, + {0x8239a733, 0xffffb446}, + {0x8239a734, 0xffffb447}, + {0x8239a735, 0xffffb448}, + {0x8239a736, 0xffffb449}, + {0x8239a737, 0xffffb44a}, + {0x8239a738, 0xffffb44b}, + {0x8239a739, 0xffffb44c}, + {0x8239a830, 0xffffb44d}, + {0x8239a831, 0xffffb44e}, + {0x8239a832, 0xffffb44f}, + {0x8239a833, 0xffffb450}, + {0x8239a834, 0xffffb451}, + {0x8239a835, 0xffffb452}, + {0x8239a836, 0xffffb453}, + {0x8239a837, 0xffffb454}, + {0x8239a838, 0xffffb455}, + {0x8239a839, 0xffffb456}, + {0x8239a930, 0xffffb457}, + {0x8239a931, 0xffffb458}, + {0x8239a932, 0xffffb459}, + {0x8239a933, 0xffffb45a}, + {0x8239a934, 0xffffb45b}, + {0x8239a935, 0xffffb45c}, + {0x8239a936, 0xffffb45d}, + {0x8239a937, 0xffffb45e}, + {0x8239a938, 0xffffb45f}, + {0x8239a939, 0xffffb460}, + {0x8239aa30, 0xffffb461}, + {0x8239aa31, 0xffffb462}, + {0x8239aa32, 0xffffb463}, + {0x8239aa33, 0xffffb464}, + {0x8239aa34, 0xffffb465}, + {0x8239aa35, 0xffffb466}, + {0x8239aa36, 0xffffb467}, + {0x8239aa37, 0xffffb468}, + {0x8239aa38, 0xffffb469}, + {0x8239aa39, 0xffffb46a}, + {0x8239ab30, 0xffffb46b}, + {0x8239ab31, 0xffffb46c}, + {0x8239ab32, 0xffffb46d}, + {0x8239ab33, 0xffffb46e}, + {0x8239ab34, 0xffffb46f}, + {0x8239ab35, 0xffffb470}, + {0x8239ab36, 0xffffb471}, + {0x8239ab37, 0xffffb472}, + {0x8239ab38, 0xffffb473}, + {0x8239ab39, 0xffffb474}, + {0x8239ac30, 0xffffb475}, + {0x8239ac31, 0xffffb476}, + {0x8239ac32, 0xffffb477}, + {0x8239ac33, 0xffffb478}, + {0x8239ac34, 0xffffb479}, + {0x8239ac35, 0xffffb47a}, + {0x8239ac36, 0xffffb47b}, + {0x8239ac37, 0xffffb47c}, + {0x8239ac38, 0xffffb47d}, + {0x8239ac39, 0xffffb47e}, + {0x8239ad30, 0xffffb47f}, + {0x8239ad31, 0xffffb480}, + {0x8239ad32, 0xffffb481}, + {0x8239ad33, 0xffffb482}, + {0x8239ad34, 0xffffb483}, + {0x8239ad35, 0xffffb484}, + {0x8239ad36, 0xffffb485}, + {0x8239ad37, 0xffffb486}, + {0x8239ad38, 0xffffb487}, + {0x8239ad39, 0xffffb488}, + {0x8239ae30, 0xffffb489}, + {0x8239ae31, 0xffffb48a}, + {0x8239ae32, 0xffffb48b}, + {0x8239ae33, 0xffffb48c}, + {0x8239ae34, 0xffffb48d}, + {0x8239ae35, 0xffffb48e}, + {0x8239ae36, 0xffffb48f}, + {0x8239ae37, 0xffffb490}, + {0x8239ae38, 0xffffb491}, + {0x8239ae39, 0xffffb492}, + {0x8239af30, 0xffffb493}, + {0x8239af31, 0xffffb494}, + {0x8239af32, 0xffffb495}, + {0x8239af33, 0xffffb496}, + {0x8239af34, 0xffffb497}, + {0x8239af35, 0xffffb498}, + {0x8239af36, 0xffffb499}, + {0x8239af37, 0xffffb49a}, + {0x8239af38, 0xffffb49b}, + {0x8239af39, 0xffffb49c}, + {0x8239b030, 0xffffb49d}, + {0x8239b031, 0xffffb49e}, + {0x8239b032, 0xffffb49f}, + {0x8239b033, 0xffffb4a0}, + {0x8239b034, 0xffffb4a1}, + {0x8239b035, 0xffffb4a2}, + {0x8239b036, 0xffffb4a3}, + {0x8239b037, 0xffffb4a4}, + {0x8239b038, 0xffffb4a5}, + {0x8239b039, 0xffffb4a6}, + {0x8239b130, 0xffffb4a7}, + {0x8239b131, 0xffffb4a8}, + {0x8239b132, 0xffffb4a9}, + {0x8239b133, 0xffffb4aa}, + {0x8239b134, 0xffffb4ab}, + {0x8239b135, 0xffffb4ac}, + {0x8239b136, 0xffffb4ad}, + {0x8239b137, 0xffffb4ae}, + {0x8239b138, 0xffffb4af}, + {0x8239b139, 0xffffb4b0}, + {0x8239b230, 0xffffb4b1}, + {0x8239b231, 0xffffb4b2}, + {0x8239b232, 0xffffb4b3}, + {0x8239b233, 0xffffb4b4}, + {0x8239b234, 0xffffb4b5}, + {0x8239b235, 0xffffb4b6}, + {0x8239b236, 0xffffb4b7}, + {0x8239b237, 0xffffb4b8}, + {0x8239b238, 0xffffb4b9}, + {0x8239b239, 0xffffb4ba}, + {0x8239b330, 0xffffb4bb}, + {0x8239b331, 0xffffb4bc}, + {0x8239b332, 0xffffb4bd}, + {0x8239b333, 0xffffb4be}, + {0x8239b334, 0xffffb4bf}, + {0x8239b335, 0xffffb4c0}, + {0x8239b336, 0xffffb4c1}, + {0x8239b337, 0xffffb4c2}, + {0x8239b338, 0xffffb4c3}, + {0x8239b339, 0xffffb4c4}, + {0x8239b430, 0xffffb4c5}, + {0x8239b431, 0xffffb4c6}, + {0x8239b432, 0xffffb4c7}, + {0x8239b433, 0xffffb4c8}, + {0x8239b434, 0xffffb4c9}, + {0x8239b435, 0xffffb4ca}, + {0x8239b436, 0xffffb4cb}, + {0x8239b437, 0xffffb4cc}, + {0x8239b438, 0xffffb4cd}, + {0x8239b439, 0xffffb4ce}, + {0x8239b530, 0xffffb4cf}, + {0x8239b531, 0xffffb4d0}, + {0x8239b532, 0xffffb4d1}, + {0x8239b533, 0xffffb4d2}, + {0x8239b534, 0xffffb4d3}, + {0x8239b535, 0xffffb4d4}, + {0x8239b536, 0xffffb4d5}, + {0x8239b537, 0xffffb4d6}, + {0x8239b538, 0xffffb4d7}, + {0x8239b539, 0xffffb4d8}, + {0x8239b630, 0xffffb4d9}, + {0x8239b631, 0xffffb4da}, + {0x8239b632, 0xffffb4db}, + {0x8239b633, 0xffffb4dc}, + {0x8239b634, 0xffffb4dd}, + {0x8239b635, 0xffffb4de}, + {0x8239b636, 0xffffb4df}, + {0x8239b637, 0xffffb4e0}, + {0x8239b638, 0xffffb4e1}, + {0x8239b639, 0xffffb4e2}, + {0x8239b730, 0xffffb4e3}, + {0x8239b731, 0xffffb4e4}, + {0x8239b732, 0xffffb4e5}, + {0x8239b733, 0xffffb4e6}, + {0x8239b734, 0xffffb4e7}, + {0x8239b735, 0xffffb4e8}, + {0x8239b736, 0xffffb4e9}, + {0x8239b737, 0xffffb4ea}, + {0x8239b738, 0xffffb4eb}, + {0x8239b739, 0xffffb4ec}, + {0x8239b830, 0xffffb4ed}, + {0x8239b831, 0xffffb4ee}, + {0x8239b832, 0xffffb4ef}, + {0x8239b833, 0xffffb4f0}, + {0x8239b834, 0xffffb4f1}, + {0x8239b835, 0xffffb4f2}, + {0x8239b836, 0xffffb4f3}, + {0x8239b837, 0xffffb4f4}, + {0x8239b838, 0xffffb4f5}, + {0x8239b839, 0xffffb4f6}, + {0x8239b930, 0xffffb4f7}, + {0x8239b931, 0xffffb4f8}, + {0x8239b932, 0xffffb4f9}, + {0x8239b933, 0xffffb4fa}, + {0x8239b934, 0xffffb4fb}, + {0x8239b935, 0xffffb4fc}, + {0x8239b936, 0xffffb4fd}, + {0x8239b937, 0xffffb4fe}, + {0x8239b938, 0xffffb4ff}, + {0x8239b939, 0xffffb500}, + {0x8239ba30, 0xffffb501}, + {0x8239ba31, 0xffffb502}, + {0x8239ba32, 0xffffb503}, + {0x8239ba33, 0xffffb504}, + {0x8239ba34, 0xffffb505}, + {0x8239ba35, 0xffffb506}, + {0x8239ba36, 0xffffb507}, + {0x8239ba37, 0xffffb508}, + {0x8239ba38, 0xffffb509}, + {0x8239ba39, 0xffffb50a}, + {0x8239bb30, 0xffffb50b}, + {0x8239bb31, 0xffffb50c}, + {0x8239bb32, 0xffffb50d}, + {0x8239bb33, 0xffffb50e}, + {0x8239bb34, 0xffffb50f}, + {0x8239bb35, 0xffffb510}, + {0x8239bb36, 0xffffb511}, + {0x8239bb37, 0xffffb512}, + {0x8239bb38, 0xffffb513}, + {0x8239bb39, 0xffffb514}, + {0x8239bc30, 0xffffb515}, + {0x8239bc31, 0xffffb516}, + {0x8239bc32, 0xffffb517}, + {0x8239bc33, 0xffffb518}, + {0x8239bc34, 0xffffb519}, + {0x8239bc35, 0xffffb51a}, + {0x8239bc36, 0xffffb51b}, + {0x8239bc37, 0xffffb51c}, + {0x8239bc38, 0xffffb51d}, + {0x8239bc39, 0xffffb51e}, + {0x8239bd30, 0xffffb51f}, + {0x8239bd31, 0xffffb520}, + {0x8239bd32, 0xffffb521}, + {0x8239bd33, 0xffffb522}, + {0x8239bd34, 0xffffb523}, + {0x8239bd35, 0xffffb524}, + {0x8239bd36, 0xffffb525}, + {0x8239bd37, 0xffffb526}, + {0x8239bd38, 0xffffb527}, + {0x8239bd39, 0xffffb528}, + {0x8239be30, 0xffffb529}, + {0x8239be31, 0xffffb52a}, + {0x8239be32, 0xffffb52b}, + {0x8239be33, 0xffffb52c}, + {0x8239be34, 0xffffb52d}, + {0x8239be35, 0xffffb52e}, + {0x8239be36, 0xffffb52f}, + {0x8239be37, 0xffffb530}, + {0x8239be38, 0xffffb531}, + {0x8239be39, 0xffffb532}, + {0x8239bf30, 0xffffb533}, + {0x8239bf31, 0xffffb534}, + {0x8239bf32, 0xffffb535}, + {0x8239bf33, 0xffffb536}, + {0x8239bf34, 0xffffb537}, + {0x8239bf35, 0xffffb538}, + {0x8239bf36, 0xffffb539}, + {0x8239bf37, 0xffffb53a}, + {0x8239bf38, 0xffffb53b}, + {0x8239bf39, 0xffffb53c}, + {0x8239c030, 0xffffb53d}, + {0x8239c031, 0xffffb53e}, + {0x8239c032, 0xffffb53f}, + {0x8239c033, 0xffffb540}, + {0x8239c034, 0xffffb541}, + {0x8239c035, 0xffffb542}, + {0x8239c036, 0xffffb543}, + {0x8239c037, 0xffffb544}, + {0x8239c038, 0xffffb545}, + {0x8239c039, 0xffffb546}, + {0x8239c130, 0xffffb547}, + {0x8239c131, 0xffffb548}, + {0x8239c132, 0xffffb549}, + {0x8239c133, 0xffffb54a}, + {0x8239c134, 0xffffb54b}, + {0x8239c135, 0xffffb54c}, + {0x8239c136, 0xffffb54d}, + {0x8239c137, 0xffffb54e}, + {0x8239c138, 0xffffb54f}, + {0x8239c139, 0xffffb550}, + {0x8239c230, 0xffffb551}, + {0x8239c231, 0xffffb552}, + {0x8239c232, 0xffffb553}, + {0x8239c233, 0xffffb554}, + {0x8239c234, 0xffffb555}, + {0x8239c235, 0xffffb556}, + {0x8239c236, 0xffffb557}, + {0x8239c237, 0xffffb558}, + {0x8239c238, 0xffffb559}, + {0x8239c239, 0xffffb55a}, + {0x8239c330, 0xffffb55b}, + {0x8239c331, 0xffffb55c}, + {0x8239c332, 0xffffb55d}, + {0x8239c333, 0xffffb55e}, + {0x8239c334, 0xffffb55f}, + {0x8239c335, 0xffffb560}, + {0x8239c336, 0xffffb561}, + {0x8239c337, 0xffffb562}, + {0x8239c338, 0xffffb563}, + {0x8239c339, 0xffffb564}, + {0x8239c430, 0xffffb565}, + {0x8239c431, 0xffffb566}, + {0x8239c432, 0xffffb567}, + {0x8239c433, 0xffffb568}, + {0x8239c434, 0xffffb569}, + {0x8239c435, 0xffffb56a}, + {0x8239c436, 0xffffb56b}, + {0x8239c437, 0xffffb56c}, + {0x8239c438, 0xffffb56d}, + {0x8239c439, 0xffffb56e}, + {0x8239c530, 0xffffb56f}, + {0x8239c531, 0xffffb570}, + {0x8239c532, 0xffffb571}, + {0x8239c533, 0xffffb572}, + {0x8239c534, 0xffffb573}, + {0x8239c535, 0xffffb574}, + {0x8239c536, 0xffffb575}, + {0x8239c537, 0xffffb576}, + {0x8239c538, 0xffffb577}, + {0x8239c539, 0xffffb578}, + {0x8239c630, 0xffffb579}, + {0x8239c631, 0xffffb57a}, + {0x8239c632, 0xffffb57b}, + {0x8239c633, 0xffffb57c}, + {0x8239c634, 0xffffb57d}, + {0x8239c635, 0xffffb57e}, + {0x8239c636, 0xffffb57f}, + {0x8239c637, 0xffffb580}, + {0x8239c638, 0xffffb581}, + {0x8239c639, 0xffffb582}, + {0x8239c730, 0xffffb583}, + {0x8239c731, 0xffffb584}, + {0x8239c732, 0xffffb585}, + {0x8239c733, 0xffffb586}, + {0x8239c734, 0xffffb587}, + {0x8239c735, 0xffffb588}, + {0x8239c736, 0xffffb589}, + {0x8239c737, 0xffffb58a}, + {0x8239c738, 0xffffb58b}, + {0x8239c739, 0xffffb58c}, + {0x8239c830, 0xffffb58d}, + {0x8239c831, 0xffffb58e}, + {0x8239c832, 0xffffb58f}, + {0x8239c833, 0xffffb590}, + {0x8239c834, 0xffffb591}, + {0x8239c835, 0xffffb592}, + {0x8239c836, 0xffffb593}, + {0x8239c837, 0xffffb594}, + {0x8239c838, 0xffffb595}, + {0x8239c839, 0xffffb596}, + {0x8239c930, 0xffffb597}, + {0x8239c931, 0xffffb598}, + {0x8239c932, 0xffffb599}, + {0x8239c933, 0xffffb59a}, + {0x8239c934, 0xffffb59b}, + {0x8239c935, 0xffffb59c}, + {0x8239c936, 0xffffb59d}, + {0x8239c937, 0xffffb59e}, + {0x8239c938, 0xffffb59f}, + {0x8239c939, 0xffffb5a0}, + {0x8239ca30, 0xffffb5a1}, + {0x8239ca31, 0xffffb5a2}, + {0x8239ca32, 0xffffb5a3}, + {0x8239ca33, 0xffffb5a4}, + {0x8239ca34, 0xffffb5a5}, + {0x8239ca35, 0xffffb5a6}, + {0x8239ca36, 0xffffb5a7}, + {0x8239ca37, 0xffffb5a8}, + {0x8239ca38, 0xffffb5a9}, + {0x8239ca39, 0xffffb5aa}, + {0x8239cb30, 0xffffb5ab}, + {0x8239cb31, 0xffffb5ac}, + {0x8239cb32, 0xffffb5ad}, + {0x8239cb33, 0xffffb5ae}, + {0x8239cb34, 0xffffb5af}, + {0x8239cb35, 0xffffb5b0}, + {0x8239cb36, 0xffffb5b1}, + {0x8239cb37, 0xffffb5b2}, + {0x8239cb38, 0xffffb5b3}, + {0x8239cb39, 0xffffb5b4}, + {0x8239cc30, 0xffffb5b5}, + {0x8239cc31, 0xffffb5b6}, + {0x8239cc32, 0xffffb5b7}, + {0x8239cc33, 0xffffb5b8}, + {0x8239cc34, 0xffffb5b9}, + {0x8239cc35, 0xffffb5ba}, + {0x8239cc36, 0xffffb5bb}, + {0x8239cc37, 0xffffb5bc}, + {0x8239cc38, 0xffffb5bd}, + {0x8239cc39, 0xffffb5be}, + {0x8239cd30, 0xffffb5bf}, + {0x8239cd31, 0xffffb5c0}, + {0x8239cd32, 0xffffb5c1}, + {0x8239cd33, 0xffffb5c2}, + {0x8239cd34, 0xffffb5c3}, + {0x8239cd35, 0xffffb5c4}, + {0x8239cd36, 0xffffb5c5}, + {0x8239cd37, 0xffffb5c6}, + {0x8239cd38, 0xffffb5c7}, + {0x8239cd39, 0xffffb5c8}, + {0x8239ce30, 0xffffb5c9}, + {0x8239ce31, 0xffffb5ca}, + {0x8239ce32, 0xffffb5cb}, + {0x8239ce33, 0xffffb5cc}, + {0x8239ce34, 0xffffb5cd}, + {0x8239ce35, 0xffffb5ce}, + {0x8239ce36, 0xffffb5cf}, + {0x8239ce37, 0xffffb5d0}, + {0x8239ce38, 0xffffb5d1}, + {0x8239ce39, 0xffffb5d2}, + {0x8239cf30, 0xffffb5d3}, + {0x8239cf31, 0xffffb5d4}, + {0x8239cf32, 0xffffb5d5}, + {0x8239cf33, 0xffffb5d6}, + {0x8239cf34, 0xffffb5d7}, + {0x8239cf35, 0xffffb5d8}, + {0x8239cf36, 0xffffb5d9}, + {0x8239cf37, 0xffffb5da}, + {0x8239cf38, 0xffffb5db}, + {0x8239cf39, 0xffffb5dc}, + {0x8239d030, 0xffffb5dd}, + {0x8239d031, 0xffffb5de}, + {0x8239d032, 0xffffb5df}, + {0x8239d033, 0xffffb5e0}, + {0x8239d034, 0xffffb5e1}, + {0x8239d035, 0xffffb5e2}, + {0x8239d036, 0xffffb5e3}, + {0x8239d037, 0xffffb5e4}, + {0x8239d038, 0xffffb5e5}, + {0x8239d039, 0xffffb5e6}, + {0x8239d130, 0xffffb5e7}, + {0x8239d131, 0xffffb5e8}, + {0x8239d132, 0xffffb5e9}, + {0x8239d133, 0xffffb5ea}, + {0x8239d134, 0xffffb5eb}, + {0x8239d135, 0xffffb5ec}, + {0x8239d136, 0xffffb5ed}, + {0x8239d137, 0xffffb5ee}, + {0x8239d138, 0xffffb5ef}, + {0x8239d139, 0xffffb5f0}, + {0x8239d230, 0xffffb5f1}, + {0x8239d231, 0xffffb5f2}, + {0x8239d232, 0xffffb5f3}, + {0x8239d233, 0xffffb5f4}, + {0x8239d234, 0xffffb5f5}, + {0x8239d235, 0xffffb5f6}, + {0x8239d236, 0xffffb5f7}, + {0x8239d237, 0xffffb5f8}, + {0x8239d238, 0xffffb5f9}, + {0x8239d239, 0xffffb5fa}, + {0x8239d330, 0xffffb5fb}, + {0x8239d331, 0xffffb5fc}, + {0x8239d332, 0xffffb5fd}, + {0x8239d333, 0xffffb5fe}, + {0x8239d334, 0xffffb5ff}, + {0x8239d335, 0xffffb600}, + {0x8239d336, 0xffffb601}, + {0x8239d337, 0xffffb602}, + {0x8239d338, 0xffffb603}, + {0x8239d339, 0xffffb604}, + {0x8239d430, 0xffffb605}, + {0x8239d431, 0xffffb606}, + {0x8239d432, 0xffffb607}, + {0x8239d433, 0xffffb608}, + {0x8239d434, 0xffffb609}, + {0x8239d435, 0xffffb60a}, + {0x8239d436, 0xffffb60b}, + {0x8239d437, 0xffffb60c}, + {0x8239d438, 0xffffb60d}, + {0x8239d439, 0xffffb60e}, + {0x8239d530, 0xffffb60f}, + {0x8239d531, 0xffffb610}, + {0x8239d532, 0xffffb611}, + {0x8239d533, 0xffffb612}, + {0x8239d534, 0xffffb613}, + {0x8239d535, 0xffffb614}, + {0x8239d536, 0xffffb615}, + {0x8239d537, 0xffffb616}, + {0x8239d538, 0xffffb617}, + {0x8239d539, 0xffffb618}, + {0x8239d630, 0xffffb619}, + {0x8239d631, 0xffffb61a}, + {0x8239d632, 0xffffb61b}, + {0x8239d633, 0xffffb61c}, + {0x8239d634, 0xffffb61d}, + {0x8239d635, 0xffffb61e}, + {0x8239d636, 0xffffb61f}, + {0x8239d637, 0xffffb620}, + {0x8239d638, 0xffffb621}, + {0x8239d639, 0xffffb622}, + {0x8239d730, 0xffffb623}, + {0x8239d731, 0xffffb624}, + {0x8239d732, 0xffffb625}, + {0x8239d733, 0xffffb626}, + {0x8239d734, 0xffffb627}, + {0x8239d735, 0xffffb628}, + {0x8239d736, 0xffffb629}, + {0x8239d737, 0xffffb62a}, + {0x8239d738, 0xffffb62b}, + {0x8239d739, 0xffffb62c}, + {0x8239d830, 0xffffb62d}, + {0x8239d831, 0xffffb62e}, + {0x8239d832, 0xffffb62f}, + {0x8239d833, 0xffffb630}, + {0x8239d834, 0xffffb631}, + {0x8239d835, 0xffffb632}, + {0x8239d836, 0xffffb633}, + {0x8239d837, 0xffffb634}, + {0x8239d838, 0xffffb635}, + {0x8239d839, 0xffffb636}, + {0x8239d930, 0xffffb637}, + {0x8239d931, 0xffffb638}, + {0x8239d932, 0xffffb639}, + {0x8239d933, 0xffffb63a}, + {0x8239d934, 0xffffb63b}, + {0x8239d935, 0xffffb63c}, + {0x8239d936, 0xffffb63d}, + {0x8239d937, 0xffffb63e}, + {0x8239d938, 0xffffb63f}, + {0x8239d939, 0xffffb640}, + {0x8239da30, 0xffffb641}, + {0x8239da31, 0xffffb642}, + {0x8239da32, 0xffffb643}, + {0x8239da33, 0xffffb644}, + {0x8239da34, 0xffffb645}, + {0x8239da35, 0xffffb646}, + {0x8239da36, 0xffffb647}, + {0x8239da37, 0xffffb648}, + {0x8239da38, 0xffffb649}, + {0x8239da39, 0xffffb64a}, + {0x8239db30, 0xffffb64b}, + {0x8239db31, 0xffffb64c}, + {0x8239db32, 0xffffb64d}, + {0x8239db33, 0xffffb64e}, + {0x8239db34, 0xffffb64f}, + {0x8239db35, 0xffffb650}, + {0x8239db36, 0xffffb651}, + {0x8239db37, 0xffffb652}, + {0x8239db38, 0xffffb653}, + {0x8239db39, 0xffffb654}, + {0x8239dc30, 0xffffb655}, + {0x8239dc31, 0xffffb656}, + {0x8239dc32, 0xffffb657}, + {0x8239dc33, 0xffffb658}, + {0x8239dc34, 0xffffb659}, + {0x8239dc35, 0xffffb65a}, + {0x8239dc36, 0xffffb65b}, + {0x8239dc37, 0xffffb65c}, + {0x8239dc38, 0xffffb65d}, + {0x8239dc39, 0xffffb65e}, + {0x8239dd30, 0xffffb65f}, + {0x8239dd31, 0xffffb660}, + {0x8239dd32, 0xffffb661}, + {0x8239dd33, 0xffffb662}, + {0x8239dd34, 0xffffb663}, + {0x8239dd35, 0xffffb664}, + {0x8239dd36, 0xffffb665}, + {0x8239dd37, 0xffffb666}, + {0x8239dd38, 0xffffb667}, + {0x8239dd39, 0xffffb668}, + {0x8239de30, 0xffffb669}, + {0x8239de31, 0xffffb66a}, + {0x8239de32, 0xffffb66b}, + {0x8239de33, 0xffffb66c}, + {0x8239de34, 0xffffb66d}, + {0x8239de35, 0xffffb66e}, + {0x8239de36, 0xffffb66f}, + {0x8239de37, 0xffffb670}, + {0x8239de38, 0xffffb671}, + {0x8239de39, 0xffffb672}, + {0x8239df30, 0xffffb673}, + {0x8239df31, 0xffffb674}, + {0x8239df32, 0xffffb675}, + {0x8239df33, 0xffffb676}, + {0x8239df34, 0xffffb677}, + {0x8239df35, 0xffffb678}, + {0x8239df36, 0xffffb679}, + {0x8239df37, 0xffffb67a}, + {0x8239df38, 0xffffb67b}, + {0x8239df39, 0xffffb67c}, + {0x8239e030, 0xffffb67d}, + {0x8239e031, 0xffffb67e}, + {0x8239e032, 0xffffb67f}, + {0x8239e033, 0xffffb680}, + {0x8239e034, 0xffffb681}, + {0x8239e035, 0xffffb682}, + {0x8239e036, 0xffffb683}, + {0x8239e037, 0xffffb684}, + {0x8239e038, 0xffffb685}, + {0x8239e039, 0xffffb686}, + {0x8239e130, 0xffffb687}, + {0x8239e131, 0xffffb688}, + {0x8239e132, 0xffffb689}, + {0x8239e133, 0xffffb68a}, + {0x8239e134, 0xffffb68b}, + {0x8239e135, 0xffffb68c}, + {0x8239e136, 0xffffb68d}, + {0x8239e137, 0xffffb68e}, + {0x8239e138, 0xffffb68f}, + {0x8239e139, 0xffffb690}, + {0x8239e230, 0xffffb691}, + {0x8239e231, 0xffffb692}, + {0x8239e232, 0xffffb693}, + {0x8239e233, 0xffffb694}, + {0x8239e234, 0xffffb695}, + {0x8239e235, 0xffffb696}, + {0x8239e236, 0xffffb697}, + {0x8239e237, 0xffffb698}, + {0x8239e238, 0xffffb699}, + {0x8239e239, 0xffffb69a}, + {0x8239e330, 0xffffb69b}, + {0x8239e331, 0xffffb69c}, + {0x8239e332, 0xffffb69d}, + {0x8239e333, 0xffffb69e}, + {0x8239e334, 0xffffb69f}, + {0x8239e335, 0xffffb6a0}, + {0x8239e336, 0xffffb6a1}, + {0x8239e337, 0xffffb6a2}, + {0x8239e338, 0xffffb6a3}, + {0x8239e339, 0xffffb6a4}, + {0x8239e430, 0xffffb6a5}, + {0x8239e431, 0xffffb6a6}, + {0x8239e432, 0xffffb6a7}, + {0x8239e433, 0xffffb6a8}, + {0x8239e434, 0xffffb6a9}, + {0x8239e435, 0xffffb6aa}, + {0x8239e436, 0xffffb6ab}, + {0x8239e437, 0xffffb6ac}, + {0x8239e438, 0xffffb6ad}, + {0x8239e439, 0xffffb6ae}, + {0x8239e530, 0xffffb6af}, + {0x8239e531, 0xffffb6b0}, + {0x8239e532, 0xffffb6b1}, + {0x8239e533, 0xffffb6b2}, + {0x8239e534, 0xffffb6b3}, + {0x8239e535, 0xffffb6b4}, + {0x8239e536, 0xffffb6b5}, + {0x8239e537, 0xffffb6b6}, + {0x8239e538, 0xffffb6b7}, + {0x8239e539, 0xffffb6b8}, + {0x8239e630, 0xffffb6b9}, + {0x8239e631, 0xffffb6ba}, + {0x8239e632, 0xffffb6bb}, + {0x8239e633, 0xffffb6bc}, + {0x8239e634, 0xffffb6bd}, + {0x8239e635, 0xffffb6be}, + {0x8239e636, 0xffffb6bf}, + {0x8239e637, 0xffffb6c0}, + {0x8239e638, 0xffffb6c1}, + {0x8239e639, 0xffffb6c2}, + {0x8239e730, 0xffffb6c3}, + {0x8239e731, 0xffffb6c4}, + {0x8239e732, 0xffffb6c5}, + {0x8239e733, 0xffffb6c6}, + {0x8239e734, 0xffffb6c7}, + {0x8239e735, 0xffffb6c8}, + {0x8239e736, 0xffffb6c9}, + {0x8239e737, 0xffffb6ca}, + {0x8239e738, 0xffffb6cb}, + {0x8239e739, 0xffffb6cc}, + {0x8239e830, 0xffffb6cd}, + {0x8239e831, 0xffffb6ce}, + {0x8239e832, 0xffffb6cf}, + {0x8239e833, 0xffffb6d0}, + {0x8239e834, 0xffffb6d1}, + {0x8239e835, 0xffffb6d2}, + {0x8239e836, 0xffffb6d3}, + {0x8239e837, 0xffffb6d4}, + {0x8239e838, 0xffffb6d5}, + {0x8239e839, 0xffffb6d6}, + {0x8239e930, 0xffffb6d7}, + {0x8239e931, 0xffffb6d8}, + {0x8239e932, 0xffffb6d9}, + {0x8239e933, 0xffffb6da}, + {0x8239e934, 0xffffb6db}, + {0x8239e935, 0xffffb6dc}, + {0x8239e936, 0xffffb6dd}, + {0x8239e937, 0xffffb6de}, + {0x8239e938, 0xffffb6df}, + {0x8239e939, 0xffffb6e0}, + {0x8239ea30, 0xffffb6e1}, + {0x8239ea31, 0xffffb6e2}, + {0x8239ea32, 0xffffb6e3}, + {0x8239ea33, 0xffffb6e4}, + {0x8239ea34, 0xffffb6e5}, + {0x8239ea35, 0xffffb6e6}, + {0x8239ea36, 0xffffb6e7}, + {0x8239ea37, 0xffffb6e8}, + {0x8239ea38, 0xffffb6e9}, + {0x8239ea39, 0xffffb6ea}, + {0x8239eb30, 0xffffb6eb}, + {0x8239eb31, 0xffffb6ec}, + {0x8239eb32, 0xffffb6ed}, + {0x8239eb33, 0xffffb6ee}, + {0x8239eb34, 0xffffb6ef}, + {0x8239eb35, 0xffffb6f0}, + {0x8239eb36, 0xffffb6f1}, + {0x8239eb37, 0xffffb6f2}, + {0x8239eb38, 0xffffb6f3}, + {0x8239eb39, 0xffffb6f4}, + {0x8239ec30, 0xffffb6f5}, + {0x8239ec31, 0xffffb6f6}, + {0x8239ec32, 0xffffb6f7}, + {0x8239ec33, 0xffffb6f8}, + {0x8239ec34, 0xffffb6f9}, + {0x8239ec35, 0xffffb6fa}, + {0x8239ec36, 0xffffb6fb}, + {0x8239ec37, 0xffffb6fc}, + {0x8239ec38, 0xffffb6fd}, + {0x8239ec39, 0xffffb6fe}, + {0x8239ed30, 0xffffb6ff}, + {0x8239ed31, 0xffffb700}, + {0x8239ed32, 0xffffb701}, + {0x8239ed33, 0xffffb702}, + {0x8239ed34, 0xffffb703}, + {0x8239ed35, 0xffffb704}, + {0x8239ed36, 0xffffb705}, + {0x8239ed37, 0xffffb706}, + {0x8239ed38, 0xffffb707}, + {0x8239ed39, 0xffffb708}, + {0x8239ee30, 0xffffb709}, + {0x8239ee31, 0xffffb70a}, + {0x8239ee32, 0xffffb70b}, + {0x8239ee33, 0xffffb70c}, + {0x8239ee34, 0xffffb70d}, + {0x8239ee35, 0xffffb70e}, + {0x8239ee36, 0xffffb70f}, + {0x8239ee37, 0xffffb710}, + {0x8239ee38, 0xffffb711}, + {0x8239ee39, 0xffffb712}, + {0x8239ef30, 0xffffb713}, + {0x8239ef31, 0xffffb714}, + {0x8239ef32, 0xffffb715}, + {0x8239ef33, 0xffffb716}, + {0x8239ef34, 0xffffb717}, + {0x8239ef35, 0xffffb718}, + {0x8239ef36, 0xffffb719}, + {0x8239ef37, 0xffffb71a}, + {0x8239ef38, 0xffffb71b}, + {0x8239ef39, 0xffffb71c}, + {0x8239f030, 0xffffb71d}, + {0x8239f031, 0xffffb71e}, + {0x8239f032, 0xffffb71f}, + {0x8239f033, 0xffffb720}, + {0x8239f034, 0xffffb721}, + {0x8239f035, 0xffffb722}, + {0x8239f036, 0xffffb723}, + {0x8239f037, 0xffffb724}, + {0x8239f038, 0xffffb725}, + {0x8239f039, 0xffffb726}, + {0x8239f130, 0xffffb727}, + {0x8239f131, 0xffffb728}, + {0x8239f132, 0xffffb729}, + {0x8239f133, 0xffffb72a}, + {0x8239f134, 0xffffb72b}, + {0x8239f135, 0xffffb72c}, + {0x8239f136, 0xffffb72d}, + {0x8239f137, 0xffffb72e}, + {0x8239f138, 0xffffb72f}, + {0x8239f139, 0xffffb730}, + {0x8239f230, 0xffffb731}, + {0x8239f231, 0xffffb732}, + {0x8239f232, 0xffffb733}, + {0x8239f233, 0xffffb734}, + {0x8239f234, 0xffffb735}, + {0x8239f235, 0xffffb736}, + {0x8239f236, 0xffffb737}, + {0x8239f237, 0xffffb738}, + {0x8239f238, 0xffffb739}, + {0x8239f239, 0xffffb73a}, + {0x8239f330, 0xffffb73b}, + {0x8239f331, 0xffffb73c}, + {0x8239f332, 0xffffb73d}, + {0x8239f333, 0xffffb73e}, + {0x8239f334, 0xffffb73f}, + {0x8239f335, 0xffffb740}, + {0x8239f336, 0xffffb741}, + {0x8239f337, 0xffffb742}, + {0x8239f338, 0xffffb743}, + {0x8239f339, 0xffffb744}, + {0x8239f430, 0xffffb745}, + {0x8239f431, 0xffffb746}, + {0x8239f432, 0xffffb747}, + {0x8239f433, 0xffffb748}, + {0x8239f434, 0xffffb749}, + {0x8239f435, 0xffffb74a}, + {0x8239f436, 0xffffb74b}, + {0x8239f437, 0xffffb74c}, + {0x8239f438, 0xffffb74d}, + {0x8239f439, 0xffffb74e}, + {0x8239f530, 0xffffb74f}, + {0x8239f531, 0xffffb750}, + {0x8239f532, 0xffffb751}, + {0x8239f533, 0xffffb752}, + {0x8239f534, 0xffffb753}, + {0x8239f535, 0xffffb754}, + {0x8239f536, 0xffffb755}, + {0x8239f537, 0xffffb756}, + {0x8239f538, 0xffffb757}, + {0x8239f539, 0xffffb758}, + {0x8239f630, 0xffffb759}, + {0x8239f631, 0xffffb75a}, + {0x8239f632, 0xffffb75b}, + {0x8239f633, 0xffffb75c}, + {0x8239f634, 0xffffb75d}, + {0x8239f635, 0xffffb75e}, + {0x8239f636, 0xffffb75f}, + {0x8239f637, 0xffffb760}, + {0x8239f638, 0xffffb761}, + {0x8239f639, 0xffffb762}, + {0x8239f730, 0xffffb763}, + {0x8239f731, 0xffffb764}, + {0x8239f732, 0xffffb765}, + {0x8239f733, 0xffffb766}, + {0x8239f734, 0xffffb767}, + {0x8239f735, 0xffffb768}, + {0x8239f736, 0xffffb769}, + {0x8239f737, 0xffffb76a}, + {0x8239f738, 0xffffb76b}, + {0x8239f739, 0xffffb76c}, + {0x8239f830, 0xffffb76d}, + {0x8239f831, 0xffffb76e}, + {0x8239f832, 0xffffb76f}, + {0x8239f833, 0xffffb770}, + {0x8239f834, 0xffffb771}, + {0x8239f835, 0xffffb772}, + {0x8239f836, 0xffffb773}, + {0x8239f837, 0xffffb774}, + {0x8239f838, 0xffffb775}, + {0x8239f839, 0xffffb776}, + {0x8239f930, 0xffffb777}, + {0x8239f931, 0xffffb778}, + {0x8239f932, 0xffffb779}, + {0x8239f933, 0xffffb77a}, + {0x8239f934, 0xffffb77b}, + {0x8239f935, 0xffffb77c}, + {0x8239f936, 0xffffb77d}, + {0x8239f937, 0xffffb77e}, + {0x8239f938, 0xffffb77f}, + {0x8239f939, 0xffffb780}, + {0x8239fa30, 0xffffb781}, + {0x8239fa31, 0xffffb782}, + {0x8239fa32, 0xffffb783}, + {0x8239fa33, 0xffffb784}, + {0x8239fa34, 0xffffb785}, + {0x8239fa35, 0xffffb786}, + {0x8239fa36, 0xffffb787}, + {0x8239fa37, 0xffffb788}, + {0x8239fa38, 0xffffb789}, + {0x8239fa39, 0xffffb78a}, + {0x8239fb30, 0xffffb78b}, + {0x8239fb31, 0xffffb78c}, + {0x8239fb32, 0xffffb78d}, + {0x8239fb33, 0xffffb78e}, + {0x8239fb34, 0xffffb78f}, + {0x8239fb35, 0xffffb790}, + {0x8239fb36, 0xffffb791}, + {0x8239fb37, 0xffffb792}, + {0x8239fb38, 0xffffb793}, + {0x8239fb39, 0xffffb794}, + {0x8239fc30, 0xffffb795}, + {0x8239fc31, 0xffffb796}, + {0x8239fc32, 0xffffb797}, + {0x8239fc33, 0xffffb798}, + {0x8239fc34, 0xffffb799}, + {0x8239fc35, 0xffffb79a}, + {0x8239fc36, 0xffffb79b}, + {0x8239fc37, 0xffffb79c}, + {0x8239fc38, 0xffffb79d}, + {0x8239fc39, 0xffffb79e}, + {0x8239fd30, 0xffffb79f}, + {0x8239fd31, 0xffffb7a0}, + {0x8239fd32, 0xffffb7a1}, + {0x8239fd33, 0xffffb7a2}, + {0x8239fd34, 0xffffb7a3}, + {0x8239fd35, 0xffffb7a4}, + {0x8239fd36, 0xffffb7a5}, + {0x8239fd37, 0xffffb7a6}, + {0x8239fd38, 0xffffb7a7}, + {0x8239fd39, 0xffffb7a8}, + {0x8239fe30, 0xffffb7a9}, + {0x8239fe31, 0xffffb7aa}, + {0x8239fe32, 0xffffb7ab}, + {0x8239fe33, 0xffffb7ac}, + {0x8239fe34, 0xffffb7ad}, + {0x8239fe35, 0xffffb7ae}, + {0x8239fe36, 0xffffb7af}, + {0x8239fe37, 0xffffb7b0}, + {0x8239fe38, 0xffffb7b1}, + {0x8239fe39, 0xffffb7b2}, + {0x83308130, 0xffffb7b3}, + {0x83308131, 0xffffb7b4}, + {0x83308132, 0xffffb7b5}, + {0x83308133, 0xffffb7b6}, + {0x83308134, 0xffffb7b7}, + {0x83308135, 0xffffb7b8}, + {0x83308136, 0xffffb7b9}, + {0x83308137, 0xffffb7ba}, + {0x83308138, 0xffffb7bb}, + {0x83308139, 0xffffb7bc}, + {0x83308230, 0xffffb7bd}, + {0x83308231, 0xffffb7be}, + {0x83308232, 0xffffb7bf}, + {0x83308233, 0xffffb7c0}, + {0x83308234, 0xffffb7c1}, + {0x83308235, 0xffffb7c2}, + {0x83308236, 0xffffb7c3}, + {0x83308237, 0xffffb7c4}, + {0x83308238, 0xffffb7c5}, + {0x83308239, 0xffffb7c6}, + {0x83308330, 0xffffb7c7}, + {0x83308331, 0xffffb7c8}, + {0x83308332, 0xffffb7c9}, + {0x83308333, 0xffffb7ca}, + {0x83308334, 0xffffb7cb}, + {0x83308335, 0xffffb7cc}, + {0x83308336, 0xffffb7cd}, + {0x83308337, 0xffffb7ce}, + {0x83308338, 0xffffb7cf}, + {0x83308339, 0xffffb7d0}, + {0x83308430, 0xffffb7d1}, + {0x83308431, 0xffffb7d2}, + {0x83308432, 0xffffb7d3}, + {0x83308433, 0xffffb7d4}, + {0x83308434, 0xffffb7d5}, + {0x83308435, 0xffffb7d6}, + {0x83308436, 0xffffb7d7}, + {0x83308437, 0xffffb7d8}, + {0x83308438, 0xffffb7d9}, + {0x83308439, 0xffffb7da}, + {0x83308530, 0xffffb7db}, + {0x83308531, 0xffffb7dc}, + {0x83308532, 0xffffb7dd}, + {0x83308533, 0xffffb7de}, + {0x83308534, 0xffffb7df}, + {0x83308535, 0xffffb7e0}, + {0x83308536, 0xffffb7e1}, + {0x83308537, 0xffffb7e2}, + {0x83308538, 0xffffb7e3}, + {0x83308539, 0xffffb7e4}, + {0x83308630, 0xffffb7e5}, + {0x83308631, 0xffffb7e6}, + {0x83308632, 0xffffb7e7}, + {0x83308633, 0xffffb7e8}, + {0x83308634, 0xffffb7e9}, + {0x83308635, 0xffffb7ea}, + {0x83308636, 0xffffb7eb}, + {0x83308637, 0xffffb7ec}, + {0x83308638, 0xffffb7ed}, + {0x83308639, 0xffffb7ee}, + {0x83308730, 0xffffb7ef}, + {0x83308731, 0xffffb7f0}, + {0x83308732, 0xffffb7f1}, + {0x83308733, 0xffffb7f2}, + {0x83308734, 0xffffb7f3}, + {0x83308735, 0xffffb7f4}, + {0x83308736, 0xffffb7f5}, + {0x83308737, 0xffffb7f6}, + {0x83308738, 0xffffb7f7}, + {0x83308739, 0xffffb7f8}, + {0x83308830, 0xffffb7f9}, + {0x83308831, 0xffffb7fa}, + {0x83308832, 0xffffb7fb}, + {0x83308833, 0xffffb7fc}, + {0x83308834, 0xffffb7fd}, + {0x83308835, 0xffffb7fe}, + {0x83308836, 0xffffb7ff}, + {0x83308837, 0xffffb800}, + {0x83308838, 0xffffb801}, + {0x83308839, 0xffffb802}, + {0x83308930, 0xffffb803}, + {0x83308931, 0xffffb804}, + {0x83308932, 0xffffb805}, + {0x83308933, 0xffffb806}, + {0x83308934, 0xffffb807}, + {0x83308935, 0xffffb808}, + {0x83308936, 0xffffb809}, + {0x83308937, 0xffffb80a}, + {0x83308938, 0xffffb80b}, + {0x83308939, 0xffffb80c}, + {0x83308a30, 0xffffb80d}, + {0x83308a31, 0xffffb80e}, + {0x83308a32, 0xffffb80f}, + {0x83308a33, 0xffffb810}, + {0x83308a34, 0xffffb811}, + {0x83308a35, 0xffffb812}, + {0x83308a36, 0xffffb813}, + {0x83308a37, 0xffffb814}, + {0x83308a38, 0xffffb815}, + {0x83308a39, 0xffffb816}, + {0x83308b30, 0xffffb817}, + {0x83308b31, 0xffffb818}, + {0x83308b32, 0xffffb819}, + {0x83308b33, 0xffffb81a}, + {0x83308b34, 0xffffb81b}, + {0x83308b35, 0xffffb81c}, + {0x83308b36, 0xffffb81d}, + {0x83308b37, 0xffffb81e}, + {0x83308b38, 0xffffb81f}, + {0x83308b39, 0xffffb820}, + {0x83308c30, 0xffffb821}, + {0x83308c31, 0xffffb822}, + {0x83308c32, 0xffffb823}, + {0x83308c33, 0xffffb824}, + {0x83308c34, 0xffffb825}, + {0x83308c35, 0xffffb826}, + {0x83308c36, 0xffffb827}, + {0x83308c37, 0xffffb828}, + {0x83308c38, 0xffffb829}, + {0x83308c39, 0xffffb82a}, + {0x83308d30, 0xffffb82b}, + {0x83308d31, 0xffffb82c}, + {0x83308d32, 0xffffb82d}, + {0x83308d33, 0xffffb82e}, + {0x83308d34, 0xffffb82f}, + {0x83308d35, 0xffffb830}, + {0x83308d36, 0xffffb831}, + {0x83308d37, 0xffffb832}, + {0x83308d38, 0xffffb833}, + {0x83308d39, 0xffffb834}, + {0x83308e30, 0xffffb835}, + {0x83308e31, 0xffffb836}, + {0x83308e32, 0xffffb837}, + {0x83308e33, 0xffffb838}, + {0x83308e34, 0xffffb839}, + {0x83308e35, 0xffffb83a}, + {0x83308e36, 0xffffb83b}, + {0x83308e37, 0xffffb83c}, + {0x83308e38, 0xffffb83d}, + {0x83308e39, 0xffffb83e}, + {0x83308f30, 0xffffb83f}, + {0x83308f31, 0xffffb840}, + {0x83308f32, 0xffffb841}, + {0x83308f33, 0xffffb842}, + {0x83308f34, 0xffffb843}, + {0x83308f35, 0xffffb844}, + {0x83308f36, 0xffffb845}, + {0x83308f37, 0xffffb846}, + {0x83308f38, 0xffffb847}, + {0x83308f39, 0xffffb848}, + {0x83309030, 0xffffb849}, + {0x83309031, 0xffffb84a}, + {0x83309032, 0xffffb84b}, + {0x83309033, 0xffffb84c}, + {0x83309034, 0xffffb84d}, + {0x83309035, 0xffffb84e}, + {0x83309036, 0xffffb84f}, + {0x83309037, 0xffffb850}, + {0x83309038, 0xffffb851}, + {0x83309039, 0xffffb852}, + {0x83309130, 0xffffb853}, + {0x83309131, 0xffffb854}, + {0x83309132, 0xffffb855}, + {0x83309133, 0xffffb856}, + {0x83309134, 0xffffb857}, + {0x83309135, 0xffffb858}, + {0x83309136, 0xffffb859}, + {0x83309137, 0xffffb85a}, + {0x83309138, 0xffffb85b}, + {0x83309139, 0xffffb85c}, + {0x83309230, 0xffffb85d}, + {0x83309231, 0xffffb85e}, + {0x83309232, 0xffffb85f}, + {0x83309233, 0xffffb860}, + {0x83309234, 0xffffb861}, + {0x83309235, 0xffffb862}, + {0x83309236, 0xffffb863}, + {0x83309237, 0xffffb864}, + {0x83309238, 0xffffb865}, + {0x83309239, 0xffffb866}, + {0x83309330, 0xffffb867}, + {0x83309331, 0xffffb868}, + {0x83309332, 0xffffb869}, + {0x83309333, 0xffffb86a}, + {0x83309334, 0xffffb86b}, + {0x83309335, 0xffffb86c}, + {0x83309336, 0xffffb86d}, + {0x83309337, 0xffffb86e}, + {0x83309338, 0xffffb86f}, + {0x83309339, 0xffffb870}, + {0x83309430, 0xffffb871}, + {0x83309431, 0xffffb872}, + {0x83309432, 0xffffb873}, + {0x83309433, 0xffffb874}, + {0x83309434, 0xffffb875}, + {0x83309435, 0xffffb876}, + {0x83309436, 0xffffb877}, + {0x83309437, 0xffffb878}, + {0x83309438, 0xffffb879}, + {0x83309439, 0xffffb87a}, + {0x83309530, 0xffffb87b}, + {0x83309531, 0xffffb87c}, + {0x83309532, 0xffffb87d}, + {0x83309533, 0xffffb87e}, + {0x83309534, 0xffffb87f}, + {0x83309535, 0xffffb880}, + {0x83309536, 0xffffb881}, + {0x83309537, 0xffffb882}, + {0x83309538, 0xffffb883}, + {0x83309539, 0xffffb884}, + {0x83309630, 0xffffb885}, + {0x83309631, 0xffffb886}, + {0x83309632, 0xffffb887}, + {0x83309633, 0xffffb888}, + {0x83309634, 0xffffb889}, + {0x83309635, 0xffffb88a}, + {0x83309636, 0xffffb88b}, + {0x83309637, 0xffffb88c}, + {0x83309638, 0xffffb88d}, + {0x83309639, 0xffffb88e}, + {0x83309730, 0xffffb88f}, + {0x83309731, 0xffffb890}, + {0x83309732, 0xffffb891}, + {0x83309733, 0xffffb892}, + {0x83309734, 0xffffb893}, + {0x83309735, 0xffffb894}, + {0x83309736, 0xffffb895}, + {0x83309737, 0xffffb896}, + {0x83309738, 0xffffb897}, + {0x83309739, 0xffffb898}, + {0x83309830, 0xffffb899}, + {0x83309831, 0xffffb89a}, + {0x83309832, 0xffffb89b}, + {0x83309833, 0xffffb89c}, + {0x83309834, 0xffffb89d}, + {0x83309835, 0xffffb89e}, + {0x83309836, 0xffffb89f}, + {0x83309837, 0xffffb8a0}, + {0x83309838, 0xffffb8a1}, + {0x83309839, 0xffffb8a2}, + {0x83309930, 0xffffb8a3}, + {0x83309931, 0xffffb8a4}, + {0x83309932, 0xffffb8a5}, + {0x83309933, 0xffffb8a6}, + {0x83309934, 0xffffb8a7}, + {0x83309935, 0xffffb8a8}, + {0x83309936, 0xffffb8a9}, + {0x83309937, 0xffffb8aa}, + {0x83309938, 0xffffb8ab}, + {0x83309939, 0xffffb8ac}, + {0x83309a30, 0xffffb8ad}, + {0x83309a31, 0xffffb8ae}, + {0x83309a32, 0xffffb8af}, + {0x83309a33, 0xffffb8b0}, + {0x83309a34, 0xffffb8b1}, + {0x83309a35, 0xffffb8b2}, + {0x83309a36, 0xffffb8b3}, + {0x83309a37, 0xffffb8b4}, + {0x83309a38, 0xffffb8b5}, + {0x83309a39, 0xffffb8b6}, + {0x83309b30, 0xffffb8b7}, + {0x83309b31, 0xffffb8b8}, + {0x83309b32, 0xffffb8b9}, + {0x83309b33, 0xffffb8ba}, + {0x83309b34, 0xffffb8bb}, + {0x83309b35, 0xffffb8bc}, + {0x83309b36, 0xffffb8bd}, + {0x83309b37, 0xffffb8be}, + {0x83309b38, 0xffffb8bf}, + {0x83309b39, 0xffffb8c0}, + {0x83309c30, 0xffffb8c1}, + {0x83309c31, 0xffffb8c2}, + {0x83309c32, 0xffffb8c3}, + {0x83309c33, 0xffffb8c4}, + {0x83309c34, 0xffffb8c5}, + {0x83309c35, 0xffffb8c6}, + {0x83309c36, 0xffffb8c7}, + {0x83309c37, 0xffffb8c8}, + {0x83309c38, 0xffffb8c9}, + {0x83309c39, 0xffffb8ca}, + {0x83309d30, 0xffffb8cb}, + {0x83309d31, 0xffffb8cc}, + {0x83309d32, 0xffffb8cd}, + {0x83309d33, 0xffffb8ce}, + {0x83309d34, 0xffffb8cf}, + {0x83309d35, 0xffffb8d0}, + {0x83309d36, 0xffffb8d1}, + {0x83309d37, 0xffffb8d2}, + {0x83309d38, 0xffffb8d3}, + {0x83309d39, 0xffffb8d4}, + {0x83309e30, 0xffffb8d5}, + {0x83309e31, 0xffffb8d6}, + {0x83309e32, 0xffffb8d7}, + {0x83309e33, 0xffffb8d8}, + {0x83309e34, 0xffffb8d9}, + {0x83309e35, 0xffffb8da}, + {0x83309e36, 0xffffb8db}, + {0x83309e37, 0xffffb8dc}, + {0x83309e38, 0xffffb8dd}, + {0x83309e39, 0xffffb8de}, + {0x83309f30, 0xffffb8df}, + {0x83309f31, 0xffffb8e0}, + {0x83309f32, 0xffffb8e1}, + {0x83309f33, 0xffffb8e2}, + {0x83309f34, 0xffffb8e3}, + {0x83309f35, 0xffffb8e4}, + {0x83309f36, 0xffffb8e5}, + {0x83309f37, 0xffffb8e6}, + {0x83309f38, 0xffffb8e7}, + {0x83309f39, 0xffffb8e8}, + {0x8330a030, 0xffffb8e9}, + {0x8330a031, 0xffffb8ea}, + {0x8330a032, 0xffffb8eb}, + {0x8330a033, 0xffffb8ec}, + {0x8330a034, 0xffffb8ed}, + {0x8330a035, 0xffffb8ee}, + {0x8330a036, 0xffffb8ef}, + {0x8330a037, 0xffffb8f0}, + {0x8330a038, 0xffffb8f1}, + {0x8330a039, 0xffffb8f2}, + {0x8330a130, 0xffffb8f3}, + {0x8330a131, 0xffffb8f4}, + {0x8330a132, 0xffffb8f5}, + {0x8330a133, 0xffffb8f6}, + {0x8330a134, 0xffffb8f7}, + {0x8330a135, 0xffffb8f8}, + {0x8330a136, 0xffffb8f9}, + {0x8330a137, 0xffffb8fa}, + {0x8330a138, 0xffffb8fb}, + {0x8330a139, 0xffffb8fc}, + {0x8330a230, 0xffffb8fd}, + {0x8330a231, 0xffffb8fe}, + {0x8330a232, 0xffffb8ff}, + {0x8330a233, 0xffffb900}, + {0x8330a234, 0xffffb901}, + {0x8330a235, 0xffffb902}, + {0x8330a236, 0xffffb903}, + {0x8330a237, 0xffffb904}, + {0x8330a238, 0xffffb905}, + {0x8330a239, 0xffffb906}, + {0x8330a330, 0xffffb907}, + {0x8330a331, 0xffffb908}, + {0x8330a332, 0xffffb909}, + {0x8330a333, 0xffffb90a}, + {0x8330a334, 0xffffb90b}, + {0x8330a335, 0xffffb90c}, + {0x8330a336, 0xffffb90d}, + {0x8330a337, 0xffffb90e}, + {0x8330a338, 0xffffb90f}, + {0x8330a339, 0xffffb910}, + {0x8330a430, 0xffffb911}, + {0x8330a431, 0xffffb912}, + {0x8330a432, 0xffffb913}, + {0x8330a433, 0xffffb914}, + {0x8330a434, 0xffffb915}, + {0x8330a435, 0xffffb916}, + {0x8330a436, 0xffffb917}, + {0x8330a437, 0xffffb918}, + {0x8330a438, 0xffffb919}, + {0x8330a439, 0xffffb91a}, + {0x8330a530, 0xffffb91b}, + {0x8330a531, 0xffffb91c}, + {0x8330a532, 0xffffb91d}, + {0x8330a533, 0xffffb91e}, + {0x8330a534, 0xffffb91f}, + {0x8330a535, 0xffffb920}, + {0x8330a536, 0xffffb921}, + {0x8330a537, 0xffffb922}, + {0x8330a538, 0xffffb923}, + {0x8330a539, 0xffffb924}, + {0x8330a630, 0xffffb925}, + {0x8330a631, 0xffffb926}, + {0x8330a632, 0xffffb927}, + {0x8330a633, 0xffffb928}, + {0x8330a634, 0xffffb929}, + {0x8330a635, 0xffffb92a}, + {0x8330a636, 0xffffb92b}, + {0x8330a637, 0xffffb92c}, + {0x8330a638, 0xffffb92d}, + {0x8330a639, 0xffffb92e}, + {0x8330a730, 0xffffb92f}, + {0x8330a731, 0xffffb930}, + {0x8330a732, 0xffffb931}, + {0x8330a733, 0xffffb932}, + {0x8330a734, 0xffffb933}, + {0x8330a735, 0xffffb934}, + {0x8330a736, 0xffffb935}, + {0x8330a737, 0xffffb936}, + {0x8330a738, 0xffffb937}, + {0x8330a739, 0xffffb938}, + {0x8330a830, 0xffffb939}, + {0x8330a831, 0xffffb93a}, + {0x8330a832, 0xffffb93b}, + {0x8330a833, 0xffffb93c}, + {0x8330a834, 0xffffb93d}, + {0x8330a835, 0xffffb93e}, + {0x8330a836, 0xffffb93f}, + {0x8330a837, 0xffffb940}, + {0x8330a838, 0xffffb941}, + {0x8330a839, 0xffffb942}, + {0x8330a930, 0xffffb943}, + {0x8330a931, 0xffffb944}, + {0x8330a932, 0xffffb945}, + {0x8330a933, 0xffffb946}, + {0x8330a934, 0xffffb947}, + {0x8330a935, 0xffffb948}, + {0x8330a936, 0xffffb949}, + {0x8330a937, 0xffffb94a}, + {0x8330a938, 0xffffb94b}, + {0x8330a939, 0xffffb94c}, + {0x8330aa30, 0xffffb94d}, + {0x8330aa31, 0xffffb94e}, + {0x8330aa32, 0xffffb94f}, + {0x8330aa33, 0xffffb950}, + {0x8330aa34, 0xffffb951}, + {0x8330aa35, 0xffffb952}, + {0x8330aa36, 0xffffb953}, + {0x8330aa37, 0xffffb954}, + {0x8330aa38, 0xffffb955}, + {0x8330aa39, 0xffffb956}, + {0x8330ab30, 0xffffb957}, + {0x8330ab31, 0xffffb958}, + {0x8330ab32, 0xffffb959}, + {0x8330ab33, 0xffffb95a}, + {0x8330ab34, 0xffffb95b}, + {0x8330ab35, 0xffffb95c}, + {0x8330ab36, 0xffffb95d}, + {0x8330ab37, 0xffffb95e}, + {0x8330ab38, 0xffffb95f}, + {0x8330ab39, 0xffffb960}, + {0x8330ac30, 0xffffb961}, + {0x8330ac31, 0xffffb962}, + {0x8330ac32, 0xffffb963}, + {0x8330ac33, 0xffffb964}, + {0x8330ac34, 0xffffb965}, + {0x8330ac35, 0xffffb966}, + {0x8330ac36, 0xffffb967}, + {0x8330ac37, 0xffffb968}, + {0x8330ac38, 0xffffb969}, + {0x8330ac39, 0xffffb96a}, + {0x8330ad30, 0xffffb96b}, + {0x8330ad31, 0xffffb96c}, + {0x8330ad32, 0xffffb96d}, + {0x8330ad33, 0xffffb96e}, + {0x8330ad34, 0xffffb96f}, + {0x8330ad35, 0xffffb970}, + {0x8330ad36, 0xffffb971}, + {0x8330ad37, 0xffffb972}, + {0x8330ad38, 0xffffb973}, + {0x8330ad39, 0xffffb974}, + {0x8330ae30, 0xffffb975}, + {0x8330ae31, 0xffffb976}, + {0x8330ae32, 0xffffb977}, + {0x8330ae33, 0xffffb978}, + {0x8330ae34, 0xffffb979}, + {0x8330ae35, 0xffffb97a}, + {0x8330ae36, 0xffffb97b}, + {0x8330ae37, 0xffffb97c}, + {0x8330ae38, 0xffffb97d}, + {0x8330ae39, 0xffffb97e}, + {0x8330af30, 0xffffb97f}, + {0x8330af31, 0xffffb980}, + {0x8330af32, 0xffffb981}, + {0x8330af33, 0xffffb982}, + {0x8330af34, 0xffffb983}, + {0x8330af35, 0xffffb984}, + {0x8330af36, 0xffffb985}, + {0x8330af37, 0xffffb986}, + {0x8330af38, 0xffffb987}, + {0x8330af39, 0xffffb988}, + {0x8330b030, 0xffffb989}, + {0x8330b031, 0xffffb98a}, + {0x8330b032, 0xffffb98b}, + {0x8330b033, 0xffffb98c}, + {0x8330b034, 0xffffb98d}, + {0x8330b035, 0xffffb98e}, + {0x8330b036, 0xffffb98f}, + {0x8330b037, 0xffffb990}, + {0x8330b038, 0xffffb991}, + {0x8330b039, 0xffffb992}, + {0x8330b130, 0xffffb993}, + {0x8330b131, 0xffffb994}, + {0x8330b132, 0xffffb995}, + {0x8330b133, 0xffffb996}, + {0x8330b134, 0xffffb997}, + {0x8330b135, 0xffffb998}, + {0x8330b136, 0xffffb999}, + {0x8330b137, 0xffffb99a}, + {0x8330b138, 0xffffb99b}, + {0x8330b139, 0xffffb99c}, + {0x8330b230, 0xffffb99d}, + {0x8330b231, 0xffffb99e}, + {0x8330b232, 0xffffb99f}, + {0x8330b233, 0xffffb9a0}, + {0x8330b234, 0xffffb9a1}, + {0x8330b235, 0xffffb9a2}, + {0x8330b236, 0xffffb9a3}, + {0x8330b237, 0xffffb9a4}, + {0x8330b238, 0xffffb9a5}, + {0x8330b239, 0xffffb9a6}, + {0x8330b330, 0xffffb9a7}, + {0x8330b331, 0xffffb9a8}, + {0x8330b332, 0xffffb9a9}, + {0x8330b333, 0xffffb9aa}, + {0x8330b334, 0xffffb9ab}, + {0x8330b335, 0xffffb9ac}, + {0x8330b336, 0xffffb9ad}, + {0x8330b337, 0xffffb9ae}, + {0x8330b338, 0xffffb9af}, + {0x8330b339, 0xffffb9b0}, + {0x8330b430, 0xffffb9b1}, + {0x8330b431, 0xffffb9b2}, + {0x8330b432, 0xffffb9b3}, + {0x8330b433, 0xffffb9b4}, + {0x8330b434, 0xffffb9b5}, + {0x8330b435, 0xffffb9b6}, + {0x8330b436, 0xffffb9b7}, + {0x8330b437, 0xffffb9b8}, + {0x8330b438, 0xffffb9b9}, + {0x8330b439, 0xffffb9ba}, + {0x8330b530, 0xffffb9bb}, + {0x8330b531, 0xffffb9bc}, + {0x8330b532, 0xffffb9bd}, + {0x8330b533, 0xffffb9be}, + {0x8330b534, 0xffffb9bf}, + {0x8330b535, 0xffffb9c0}, + {0x8330b536, 0xffffb9c1}, + {0x8330b537, 0xffffb9c2}, + {0x8330b538, 0xffffb9c3}, + {0x8330b539, 0xffffb9c4}, + {0x8330b630, 0xffffb9c5}, + {0x8330b631, 0xffffb9c6}, + {0x8330b632, 0xffffb9c7}, + {0x8330b633, 0xffffb9c8}, + {0x8330b634, 0xffffb9c9}, + {0x8330b635, 0xffffb9ca}, + {0x8330b636, 0xffffb9cb}, + {0x8330b637, 0xffffb9cc}, + {0x8330b638, 0xffffb9cd}, + {0x8330b639, 0xffffb9ce}, + {0x8330b730, 0xffffb9cf}, + {0x8330b731, 0xffffb9d0}, + {0x8330b732, 0xffffb9d1}, + {0x8330b733, 0xffffb9d2}, + {0x8330b734, 0xffffb9d3}, + {0x8330b735, 0xffffb9d4}, + {0x8330b736, 0xffffb9d5}, + {0x8330b737, 0xffffb9d6}, + {0x8330b738, 0xffffb9d7}, + {0x8330b739, 0xffffb9d8}, + {0x8330b830, 0xffffb9d9}, + {0x8330b831, 0xffffb9da}, + {0x8330b832, 0xffffb9db}, + {0x8330b833, 0xffffb9dc}, + {0x8330b834, 0xffffb9dd}, + {0x8330b835, 0xffffb9de}, + {0x8330b836, 0xffffb9df}, + {0x8330b837, 0xffffb9e0}, + {0x8330b838, 0xffffb9e1}, + {0x8330b839, 0xffffb9e2}, + {0x8330b930, 0xffffb9e3}, + {0x8330b931, 0xffffb9e4}, + {0x8330b932, 0xffffb9e5}, + {0x8330b933, 0xffffb9e6}, + {0x8330b934, 0xffffb9e7}, + {0x8330b935, 0xffffb9e8}, + {0x8330b936, 0xffffb9e9}, + {0x8330b937, 0xffffb9ea}, + {0x8330b938, 0xffffb9eb}, + {0x8330b939, 0xffffb9ec}, + {0x8330ba30, 0xffffb9ed}, + {0x8330ba31, 0xffffb9ee}, + {0x8330ba32, 0xffffb9ef}, + {0x8330ba33, 0xffffb9f0}, + {0x8330ba34, 0xffffb9f1}, + {0x8330ba35, 0xffffb9f2}, + {0x8330ba36, 0xffffb9f3}, + {0x8330ba37, 0xffffb9f4}, + {0x8330ba38, 0xffffb9f5}, + {0x8330ba39, 0xffffb9f6}, + {0x8330bb30, 0xffffb9f7}, + {0x8330bb31, 0xffffb9f8}, + {0x8330bb32, 0xffffb9f9}, + {0x8330bb33, 0xffffb9fa}, + {0x8330bb34, 0xffffb9fb}, + {0x8330bb35, 0xffffb9fc}, + {0x8330bb36, 0xffffb9fd}, + {0x8330bb37, 0xffffb9fe}, + {0x8330bb38, 0xffffb9ff}, + {0x8330bb39, 0xffffba00}, + {0x8330bc30, 0xffffba01}, + {0x8330bc31, 0xffffba02}, + {0x8330bc32, 0xffffba03}, + {0x8330bc33, 0xffffba04}, + {0x8330bc34, 0xffffba05}, + {0x8330bc35, 0xffffba06}, + {0x8330bc36, 0xffffba07}, + {0x8330bc37, 0xffffba08}, + {0x8330bc38, 0xffffba09}, + {0x8330bc39, 0xffffba0a}, + {0x8330bd30, 0xffffba0b}, + {0x8330bd31, 0xffffba0c}, + {0x8330bd32, 0xffffba0d}, + {0x8330bd33, 0xffffba0e}, + {0x8330bd34, 0xffffba0f}, + {0x8330bd35, 0xffffba10}, + {0x8330bd36, 0xffffba11}, + {0x8330bd37, 0xffffba12}, + {0x8330bd38, 0xffffba13}, + {0x8330bd39, 0xffffba14}, + {0x8330be30, 0xffffba15}, + {0x8330be31, 0xffffba16}, + {0x8330be32, 0xffffba17}, + {0x8330be33, 0xffffba18}, + {0x8330be34, 0xffffba19}, + {0x8330be35, 0xffffba1a}, + {0x8330be36, 0xffffba1b}, + {0x8330be37, 0xffffba1c}, + {0x8330be38, 0xffffba1d}, + {0x8330be39, 0xffffba1e}, + {0x8330bf30, 0xffffba1f}, + {0x8330bf31, 0xffffba20}, + {0x8330bf32, 0xffffba21}, + {0x8330bf33, 0xffffba22}, + {0x8330bf34, 0xffffba23}, + {0x8330bf35, 0xffffba24}, + {0x8330bf36, 0xffffba25}, + {0x8330bf37, 0xffffba26}, + {0x8330bf38, 0xffffba27}, + {0x8330bf39, 0xffffba28}, + {0x8330c030, 0xffffba29}, + {0x8330c031, 0xffffba2a}, + {0x8330c032, 0xffffba2b}, + {0x8330c033, 0xffffba2c}, + {0x8330c034, 0xffffba2d}, + {0x8330c035, 0xffffba2e}, + {0x8330c036, 0xffffba2f}, + {0x8330c037, 0xffffba30}, + {0x8330c038, 0xffffba31}, + {0x8330c039, 0xffffba32}, + {0x8330c130, 0xffffba33}, + {0x8330c131, 0xffffba34}, + {0x8330c132, 0xffffba35}, + {0x8330c133, 0xffffba36}, + {0x8330c134, 0xffffba37}, + {0x8330c135, 0xffffba38}, + {0x8330c136, 0xffffba39}, + {0x8330c137, 0xffffba3a}, + {0x8330c138, 0xffffba3b}, + {0x8330c139, 0xffffba3c}, + {0x8330c230, 0xffffba3d}, + {0x8330c231, 0xffffba3e}, + {0x8330c232, 0xffffba3f}, + {0x8330c233, 0xffffba40}, + {0x8330c234, 0xffffba41}, + {0x8330c235, 0xffffba42}, + {0x8330c236, 0xffffba43}, + {0x8330c237, 0xffffba44}, + {0x8330c238, 0xffffba45}, + {0x8330c239, 0xffffba46}, + {0x8330c330, 0xffffba47}, + {0x8330c331, 0xffffba48}, + {0x8330c332, 0xffffba49}, + {0x8330c333, 0xffffba4a}, + {0x8330c334, 0xffffba4b}, + {0x8330c335, 0xffffba4c}, + {0x8330c336, 0xffffba4d}, + {0x8330c337, 0xffffba4e}, + {0x8330c338, 0xffffba4f}, + {0x8330c339, 0xffffba50}, + {0x8330c430, 0xffffba51}, + {0x8330c431, 0xffffba52}, + {0x8330c432, 0xffffba53}, + {0x8330c433, 0xffffba54}, + {0x8330c434, 0xffffba55}, + {0x8330c435, 0xffffba56}, + {0x8330c436, 0xffffba57}, + {0x8330c437, 0xffffba58}, + {0x8330c438, 0xffffba59}, + {0x8330c439, 0xffffba5a}, + {0x8330c530, 0xffffba5b}, + {0x8330c531, 0xffffba5c}, + {0x8330c532, 0xffffba5d}, + {0x8330c533, 0xffffba5e}, + {0x8330c534, 0xffffba5f}, + {0x8330c535, 0xffffba60}, + {0x8330c536, 0xffffba61}, + {0x8330c537, 0xffffba62}, + {0x8330c538, 0xffffba63}, + {0x8330c539, 0xffffba64}, + {0x8330c630, 0xffffba65}, + {0x8330c631, 0xffffba66}, + {0x8330c632, 0xffffba67}, + {0x8330c633, 0xffffba68}, + {0x8330c634, 0xffffba69}, + {0x8330c635, 0xffffba6a}, + {0x8330c636, 0xffffba6b}, + {0x8330c637, 0xffffba6c}, + {0x8330c638, 0xffffba6d}, + {0x8330c639, 0xffffba6e}, + {0x8330c730, 0xffffba6f}, + {0x8330c731, 0xffffba70}, + {0x8330c732, 0xffffba71}, + {0x8330c733, 0xffffba72}, + {0x8330c734, 0xffffba73}, + {0x8330c735, 0xffffba74}, + {0x8330c736, 0xffffba75}, + {0x8330c737, 0xffffba76}, + {0x8330c738, 0xffffba77}, + {0x8330c739, 0xffffba78}, + {0x8330c830, 0xffffba79}, + {0x8330c831, 0xffffba7a}, + {0x8330c832, 0xffffba7b}, + {0x8330c833, 0xffffba7c}, + {0x8330c834, 0xffffba7d}, + {0x8330c835, 0xffffba7e}, + {0x8330c836, 0xffffba7f}, + {0x8330c837, 0xffffba80}, + {0x8330c838, 0xffffba81}, + {0x8330c839, 0xffffba82}, + {0x8330c930, 0xffffba83}, + {0x8330c931, 0xffffba84}, + {0x8330c932, 0xffffba85}, + {0x8330c933, 0xffffba86}, + {0x8330c934, 0xffffba87}, + {0x8330c935, 0xffffba88}, + {0x8330c936, 0xffffba89}, + {0x8330c937, 0xffffba8a}, + {0x8330c938, 0xffffba8b}, + {0x8330c939, 0xffffba8c}, + {0x8330ca30, 0xffffba8d}, + {0x8330ca31, 0xffffba8e}, + {0x8330ca32, 0xffffba8f}, + {0x8330ca33, 0xffffba90}, + {0x8330ca34, 0xffffba91}, + {0x8330ca35, 0xffffba92}, + {0x8330ca36, 0xffffba93}, + {0x8330ca37, 0xffffba94}, + {0x8330ca38, 0xffffba95}, + {0x8330ca39, 0xffffba96}, + {0x8330cb30, 0xffffba97}, + {0x8330cb31, 0xffffba98}, + {0x8330cb32, 0xffffba99}, + {0x8330cb33, 0xffffba9a}, + {0x8330cb34, 0xffffba9b}, + {0x8330cb35, 0xffffba9c}, + {0x8330cb36, 0xffffba9d}, + {0x8330cb37, 0xffffba9e}, + {0x8330cb38, 0xffffba9f}, + {0x8330cb39, 0xffffbaa0}, + {0x8330cc30, 0xffffbaa1}, + {0x8330cc31, 0xffffbaa2}, + {0x8330cc32, 0xffffbaa3}, + {0x8330cc33, 0xffffbaa4}, + {0x8330cc34, 0xffffbaa5}, + {0x8330cc35, 0xffffbaa6}, + {0x8330cc36, 0xffffbaa7}, + {0x8330cc37, 0xffffbaa8}, + {0x8330cc38, 0xffffbaa9}, + {0x8330cc39, 0xffffbaaa}, + {0x8330cd30, 0xffffbaab}, + {0x8330cd31, 0xffffbaac}, + {0x8330cd32, 0xffffbaad}, + {0x8330cd33, 0xffffbaae}, + {0x8330cd34, 0xffffbaaf}, + {0x8330cd35, 0xffffbab0}, + {0x8330cd36, 0xffffbab1}, + {0x8330cd37, 0xffffbab2}, + {0x8330cd38, 0xffffbab3}, + {0x8330cd39, 0xffffbab4}, + {0x8330ce30, 0xffffbab5}, + {0x8330ce31, 0xffffbab6}, + {0x8330ce32, 0xffffbab7}, + {0x8330ce33, 0xffffbab8}, + {0x8330ce34, 0xffffbab9}, + {0x8330ce35, 0xffffbaba}, + {0x8330ce36, 0xffffbabb}, + {0x8330ce37, 0xffffbabc}, + {0x8330ce38, 0xffffbabd}, + {0x8330ce39, 0xffffbabe}, + {0x8330cf30, 0xffffbabf}, + {0x8330cf31, 0xffffbac0}, + {0x8330cf32, 0xffffbac1}, + {0x8330cf33, 0xffffbac2}, + {0x8330cf34, 0xffffbac3}, + {0x8330cf35, 0xffffbac4}, + {0x8330cf36, 0xffffbac5}, + {0x8330cf37, 0xffffbac6}, + {0x8330cf38, 0xffffbac7}, + {0x8330cf39, 0xffffbac8}, + {0x8330d030, 0xffffbac9}, + {0x8330d031, 0xffffbaca}, + {0x8330d032, 0xffffbacb}, + {0x8330d033, 0xffffbacc}, + {0x8330d034, 0xffffbacd}, + {0x8330d035, 0xffffbace}, + {0x8330d036, 0xffffbacf}, + {0x8330d037, 0xffffbad0}, + {0x8330d038, 0xffffbad1}, + {0x8330d039, 0xffffbad2}, + {0x8330d130, 0xffffbad3}, + {0x8330d131, 0xffffbad4}, + {0x8330d132, 0xffffbad5}, + {0x8330d133, 0xffffbad6}, + {0x8330d134, 0xffffbad7}, + {0x8330d135, 0xffffbad8}, + {0x8330d136, 0xffffbad9}, + {0x8330d137, 0xffffbada}, + {0x8330d138, 0xffffbadb}, + {0x8330d139, 0xffffbadc}, + {0x8330d230, 0xffffbadd}, + {0x8330d231, 0xffffbade}, + {0x8330d232, 0xffffbadf}, + {0x8330d233, 0xffffbae0}, + {0x8330d234, 0xffffbae1}, + {0x8330d235, 0xffffbae2}, + {0x8330d236, 0xffffbae3}, + {0x8330d237, 0xffffbae4}, + {0x8330d238, 0xffffbae5}, + {0x8330d239, 0xffffbae6}, + {0x8330d330, 0xffffbae7}, + {0x8330d331, 0xffffbae8}, + {0x8330d332, 0xffffbae9}, + {0x8330d333, 0xffffbaea}, + {0x8330d334, 0xffffbaeb}, + {0x8330d335, 0xffffbaec}, + {0x8330d336, 0xffffbaed}, + {0x8330d337, 0xffffbaee}, + {0x8330d338, 0xffffbaef}, + {0x8330d339, 0xffffbaf0}, + {0x8330d430, 0xffffbaf1}, + {0x8330d431, 0xffffbaf2}, + {0x8330d432, 0xffffbaf3}, + {0x8330d433, 0xffffbaf4}, + {0x8330d434, 0xffffbaf5}, + {0x8330d435, 0xffffbaf6}, + {0x8330d436, 0xffffbaf7}, + {0x8330d437, 0xffffbaf8}, + {0x8330d438, 0xffffbaf9}, + {0x8330d439, 0xffffbafa}, + {0x8330d530, 0xffffbafb}, + {0x8330d531, 0xffffbafc}, + {0x8330d532, 0xffffbafd}, + {0x8330d533, 0xffffbafe}, + {0x8330d534, 0xffffbaff}, + {0x8330d535, 0xffffbb00}, + {0x8330d536, 0xffffbb01}, + {0x8330d537, 0xffffbb02}, + {0x8330d538, 0xffffbb03}, + {0x8330d539, 0xffffbb04}, + {0x8330d630, 0xffffbb05}, + {0x8330d631, 0xffffbb06}, + {0x8330d632, 0xffffbb07}, + {0x8330d633, 0xffffbb08}, + {0x8330d634, 0xffffbb09}, + {0x8330d635, 0xffffbb0a}, + {0x8330d636, 0xffffbb0b}, + {0x8330d637, 0xffffbb0c}, + {0x8330d638, 0xffffbb0d}, + {0x8330d639, 0xffffbb0e}, + {0x8330d730, 0xffffbb0f}, + {0x8330d731, 0xffffbb10}, + {0x8330d732, 0xffffbb11}, + {0x8330d733, 0xffffbb12}, + {0x8330d734, 0xffffbb13}, + {0x8330d735, 0xffffbb14}, + {0x8330d736, 0xffffbb15}, + {0x8330d737, 0xffffbb16}, + {0x8330d738, 0xffffbb17}, + {0x8330d739, 0xffffbb18}, + {0x8330d830, 0xffffbb19}, + {0x8330d831, 0xffffbb1a}, + {0x8330d832, 0xffffbb1b}, + {0x8330d833, 0xffffbb1c}, + {0x8330d834, 0xffffbb1d}, + {0x8330d835, 0xffffbb1e}, + {0x8330d836, 0xffffbb1f}, + {0x8330d837, 0xffffbb20}, + {0x8330d838, 0xffffbb21}, + {0x8330d839, 0xffffbb22}, + {0x8330d930, 0xffffbb23}, + {0x8330d931, 0xffffbb24}, + {0x8330d932, 0xffffbb25}, + {0x8330d933, 0xffffbb26}, + {0x8330d934, 0xffffbb27}, + {0x8330d935, 0xffffbb28}, + {0x8330d936, 0xffffbb29}, + {0x8330d937, 0xffffbb2a}, + {0x8330d938, 0xffffbb2b}, + {0x8330d939, 0xffffbb2c}, + {0x8330da30, 0xffffbb2d}, + {0x8330da31, 0xffffbb2e}, + {0x8330da32, 0xffffbb2f}, + {0x8330da33, 0xffffbb30}, + {0x8330da34, 0xffffbb31}, + {0x8330da35, 0xffffbb32}, + {0x8330da36, 0xffffbb33}, + {0x8330da37, 0xffffbb34}, + {0x8330da38, 0xffffbb35}, + {0x8330da39, 0xffffbb36}, + {0x8330db30, 0xffffbb37}, + {0x8330db31, 0xffffbb38}, + {0x8330db32, 0xffffbb39}, + {0x8330db33, 0xffffbb3a}, + {0x8330db34, 0xffffbb3b}, + {0x8330db35, 0xffffbb3c}, + {0x8330db36, 0xffffbb3d}, + {0x8330db37, 0xffffbb3e}, + {0x8330db38, 0xffffbb3f}, + {0x8330db39, 0xffffbb40}, + {0x8330dc30, 0xffffbb41}, + {0x8330dc31, 0xffffbb42}, + {0x8330dc32, 0xffffbb43}, + {0x8330dc33, 0xffffbb44}, + {0x8330dc34, 0xffffbb45}, + {0x8330dc35, 0xffffbb46}, + {0x8330dc36, 0xffffbb47}, + {0x8330dc37, 0xffffbb48}, + {0x8330dc38, 0xffffbb49}, + {0x8330dc39, 0xffffbb4a}, + {0x8330dd30, 0xffffbb4b}, + {0x8330dd31, 0xffffbb4c}, + {0x8330dd32, 0xffffbb4d}, + {0x8330dd33, 0xffffbb4e}, + {0x8330dd34, 0xffffbb4f}, + {0x8330dd35, 0xffffbb50}, + {0x8330dd36, 0xffffbb51}, + {0x8330dd37, 0xffffbb52}, + {0x8330dd38, 0xffffbb53}, + {0x8330dd39, 0xffffbb54}, + {0x8330de30, 0xffffbb55}, + {0x8330de31, 0xffffbb56}, + {0x8330de32, 0xffffbb57}, + {0x8330de33, 0xffffbb58}, + {0x8330de34, 0xffffbb59}, + {0x8330de35, 0xffffbb5a}, + {0x8330de36, 0xffffbb5b}, + {0x8330de37, 0xffffbb5c}, + {0x8330de38, 0xffffbb5d}, + {0x8330de39, 0xffffbb5e}, + {0x8330df30, 0xffffbb5f}, + {0x8330df31, 0xffffbb60}, + {0x8330df32, 0xffffbb61}, + {0x8330df33, 0xffffbb62}, + {0x8330df34, 0xffffbb63}, + {0x8330df35, 0xffffbb64}, + {0x8330df36, 0xffffbb65}, + {0x8330df37, 0xffffbb66}, + {0x8330df38, 0xffffbb67}, + {0x8330df39, 0xffffbb68}, + {0x8330e030, 0xffffbb69}, + {0x8330e031, 0xffffbb6a}, + {0x8330e032, 0xffffbb6b}, + {0x8330e033, 0xffffbb6c}, + {0x8330e034, 0xffffbb6d}, + {0x8330e035, 0xffffbb6e}, + {0x8330e036, 0xffffbb6f}, + {0x8330e037, 0xffffbb70}, + {0x8330e038, 0xffffbb71}, + {0x8330e039, 0xffffbb72}, + {0x8330e130, 0xffffbb73}, + {0x8330e131, 0xffffbb74}, + {0x8330e132, 0xffffbb75}, + {0x8330e133, 0xffffbb76}, + {0x8330e134, 0xffffbb77}, + {0x8330e135, 0xffffbb78}, + {0x8330e136, 0xffffbb79}, + {0x8330e137, 0xffffbb7a}, + {0x8330e138, 0xffffbb7b}, + {0x8330e139, 0xffffbb7c}, + {0x8330e230, 0xffffbb7d}, + {0x8330e231, 0xffffbb7e}, + {0x8330e232, 0xffffbb7f}, + {0x8330e233, 0xffffbb80}, + {0x8330e234, 0xffffbb81}, + {0x8330e235, 0xffffbb82}, + {0x8330e236, 0xffffbb83}, + {0x8330e237, 0xffffbb84}, + {0x8330e238, 0xffffbb85}, + {0x8330e239, 0xffffbb86}, + {0x8330e330, 0xffffbb87}, + {0x8330e331, 0xffffbb88}, + {0x8330e332, 0xffffbb89}, + {0x8330e333, 0xffffbb8a}, + {0x8330e334, 0xffffbb8b}, + {0x8330e335, 0xffffbb8c}, + {0x8330e336, 0xffffbb8d}, + {0x8330e337, 0xffffbb8e}, + {0x8330e338, 0xffffbb8f}, + {0x8330e339, 0xffffbb90}, + {0x8330e430, 0xffffbb91}, + {0x8330e431, 0xffffbb92}, + {0x8330e432, 0xffffbb93}, + {0x8330e433, 0xffffbb94}, + {0x8330e434, 0xffffbb95}, + {0x8330e435, 0xffffbb96}, + {0x8330e436, 0xffffbb97}, + {0x8330e437, 0xffffbb98}, + {0x8330e438, 0xffffbb99}, + {0x8330e439, 0xffffbb9a}, + {0x8330e530, 0xffffbb9b}, + {0x8330e531, 0xffffbb9c}, + {0x8330e532, 0xffffbb9d}, + {0x8330e533, 0xffffbb9e}, + {0x8330e534, 0xffffbb9f}, + {0x8330e535, 0xffffbba0}, + {0x8330e536, 0xffffbba1}, + {0x8330e537, 0xffffbba2}, + {0x8330e538, 0xffffbba3}, + {0x8330e539, 0xffffbba4}, + {0x8330e630, 0xffffbba5}, + {0x8330e631, 0xffffbba6}, + {0x8330e632, 0xffffbba7}, + {0x8330e633, 0xffffbba8}, + {0x8330e634, 0xffffbba9}, + {0x8330e635, 0xffffbbaa}, + {0x8330e636, 0xffffbbab}, + {0x8330e637, 0xffffbbac}, + {0x8330e638, 0xffffbbad}, + {0x8330e639, 0xffffbbae}, + {0x8330e730, 0xffffbbaf}, + {0x8330e731, 0xffffbbb0}, + {0x8330e732, 0xffffbbb1}, + {0x8330e733, 0xffffbbb2}, + {0x8330e734, 0xffffbbb3}, + {0x8330e735, 0xffffbbb4}, + {0x8330e736, 0xffffbbb5}, + {0x8330e737, 0xffffbbb6}, + {0x8330e738, 0xffffbbb7}, + {0x8330e739, 0xffffbbb8}, + {0x8330e830, 0xffffbbb9}, + {0x8330e831, 0xffffbbba}, + {0x8330e832, 0xffffbbbb}, + {0x8330e833, 0xffffbbbc}, + {0x8330e834, 0xffffbbbd}, + {0x8330e835, 0xffffbbbe}, + {0x8330e836, 0xffffbbbf}, + {0x8330e837, 0xffffbbc0}, + {0x8330e838, 0xffffbbc1}, + {0x8330e839, 0xffffbbc2}, + {0x8330e930, 0xffffbbc3}, + {0x8330e931, 0xffffbbc4}, + {0x8330e932, 0xffffbbc5}, + {0x8330e933, 0xffffbbc6}, + {0x8330e934, 0xffffbbc7}, + {0x8330e935, 0xffffbbc8}, + {0x8330e936, 0xffffbbc9}, + {0x8330e937, 0xffffbbca}, + {0x8330e938, 0xffffbbcb}, + {0x8330e939, 0xffffbbcc}, + {0x8330ea30, 0xffffbbcd}, + {0x8330ea31, 0xffffbbce}, + {0x8330ea32, 0xffffbbcf}, + {0x8330ea33, 0xffffbbd0}, + {0x8330ea34, 0xffffbbd1}, + {0x8330ea35, 0xffffbbd2}, + {0x8330ea36, 0xffffbbd3}, + {0x8330ea37, 0xffffbbd4}, + {0x8330ea38, 0xffffbbd5}, + {0x8330ea39, 0xffffbbd6}, + {0x8330eb30, 0xffffbbd7}, + {0x8330eb31, 0xffffbbd8}, + {0x8330eb32, 0xffffbbd9}, + {0x8330eb33, 0xffffbbda}, + {0x8330eb34, 0xffffbbdb}, + {0x8330eb35, 0xffffbbdc}, + {0x8330eb36, 0xffffbbdd}, + {0x8330eb37, 0xffffbbde}, + {0x8330eb38, 0xffffbbdf}, + {0x8330eb39, 0xffffbbe0}, + {0x8330ec30, 0xffffbbe1}, + {0x8330ec31, 0xffffbbe2}, + {0x8330ec32, 0xffffbbe3}, + {0x8330ec33, 0xffffbbe4}, + {0x8330ec34, 0xffffbbe5}, + {0x8330ec35, 0xffffbbe6}, + {0x8330ec36, 0xffffbbe7}, + {0x8330ec37, 0xffffbbe8}, + {0x8330ec38, 0xffffbbe9}, + {0x8330ec39, 0xffffbbea}, + {0x8330ed30, 0xffffbbeb}, + {0x8330ed31, 0xffffbbec}, + {0x8330ed32, 0xffffbbed}, + {0x8330ed33, 0xffffbbee}, + {0x8330ed34, 0xffffbbef}, + {0x8330ed35, 0xffffbbf0}, + {0x8330ed36, 0xffffbbf1}, + {0x8330ed37, 0xffffbbf2}, + {0x8330ed38, 0xffffbbf3}, + {0x8330ed39, 0xffffbbf4}, + {0x8330ee30, 0xffffbbf5}, + {0x8330ee31, 0xffffbbf6}, + {0x8330ee32, 0xffffbbf7}, + {0x8330ee33, 0xffffbbf8}, + {0x8330ee34, 0xffffbbf9}, + {0x8330ee35, 0xffffbbfa}, + {0x8330ee36, 0xffffbbfb}, + {0x8330ee37, 0xffffbbfc}, + {0x8330ee38, 0xffffbbfd}, + {0x8330ee39, 0xffffbbfe}, + {0x8330ef30, 0xffffbbff}, + {0x8330ef31, 0xffffbc00}, + {0x8330ef32, 0xffffbc01}, + {0x8330ef33, 0xffffbc02}, + {0x8330ef34, 0xffffbc03}, + {0x8330ef35, 0xffffbc04}, + {0x8330ef36, 0xffffbc05}, + {0x8330ef37, 0xffffbc06}, + {0x8330ef38, 0xffffbc07}, + {0x8330ef39, 0xffffbc08}, + {0x8330f030, 0xffffbc09}, + {0x8330f031, 0xffffbc0a}, + {0x8330f032, 0xffffbc0b}, + {0x8330f033, 0xffffbc0c}, + {0x8330f034, 0xffffbc0d}, + {0x8330f035, 0xffffbc0e}, + {0x8330f036, 0xffffbc0f}, + {0x8330f037, 0xffffbc10}, + {0x8330f038, 0xffffbc11}, + {0x8330f039, 0xffffbc12}, + {0x8330f130, 0xffffbc13}, + {0x8330f131, 0xffffbc14}, + {0x8330f132, 0xffffbc15}, + {0x8330f133, 0xffffbc16}, + {0x8330f134, 0xffffbc17}, + {0x8330f135, 0xffffbc18}, + {0x8330f136, 0xffffbc19}, + {0x8330f137, 0xffffbc1a}, + {0x8330f138, 0xffffbc1b}, + {0x8330f139, 0xffffbc1c}, + {0x8330f230, 0xffffbc1d}, + {0x8330f231, 0xffffbc1e}, + {0x8330f232, 0xffffbc1f}, + {0x8330f233, 0xffffbc20}, + {0x8330f234, 0xffffbc21}, + {0x8330f235, 0xffffbc22}, + {0x8330f236, 0xffffbc23}, + {0x8330f237, 0xffffbc24}, + {0x8330f238, 0xffffbc25}, + {0x8330f239, 0xffffbc26}, + {0x8330f330, 0xffffbc27}, + {0x8330f331, 0xffffbc28}, + {0x8330f332, 0xffffbc29}, + {0x8330f333, 0xffffbc2a}, + {0x8330f334, 0xffffbc2b}, + {0x8330f335, 0xffffbc2c}, + {0x8330f336, 0xffffbc2d}, + {0x8330f337, 0xffffbc2e}, + {0x8330f338, 0xffffbc2f}, + {0x8330f339, 0xffffbc30}, + {0x8330f430, 0xffffbc31}, + {0x8330f431, 0xffffbc32}, + {0x8330f432, 0xffffbc33}, + {0x8330f433, 0xffffbc34}, + {0x8330f434, 0xffffbc35}, + {0x8330f435, 0xffffbc36}, + {0x8330f436, 0xffffbc37}, + {0x8330f437, 0xffffbc38}, + {0x8330f438, 0xffffbc39}, + {0x8330f439, 0xffffbc3a}, + {0x8330f530, 0xffffbc3b}, + {0x8330f531, 0xffffbc3c}, + {0x8330f532, 0xffffbc3d}, + {0x8330f533, 0xffffbc3e}, + {0x8330f534, 0xffffbc3f}, + {0x8330f535, 0xffffbc40}, + {0x8330f536, 0xffffbc41}, + {0x8330f537, 0xffffbc42}, + {0x8330f538, 0xffffbc43}, + {0x8330f539, 0xffffbc44}, + {0x8330f630, 0xffffbc45}, + {0x8330f631, 0xffffbc46}, + {0x8330f632, 0xffffbc47}, + {0x8330f633, 0xffffbc48}, + {0x8330f634, 0xffffbc49}, + {0x8330f635, 0xffffbc4a}, + {0x8330f636, 0xffffbc4b}, + {0x8330f637, 0xffffbc4c}, + {0x8330f638, 0xffffbc4d}, + {0x8330f639, 0xffffbc4e}, + {0x8330f730, 0xffffbc4f}, + {0x8330f731, 0xffffbc50}, + {0x8330f732, 0xffffbc51}, + {0x8330f733, 0xffffbc52}, + {0x8330f734, 0xffffbc53}, + {0x8330f735, 0xffffbc54}, + {0x8330f736, 0xffffbc55}, + {0x8330f737, 0xffffbc56}, + {0x8330f738, 0xffffbc57}, + {0x8330f739, 0xffffbc58}, + {0x8330f830, 0xffffbc59}, + {0x8330f831, 0xffffbc5a}, + {0x8330f832, 0xffffbc5b}, + {0x8330f833, 0xffffbc5c}, + {0x8330f834, 0xffffbc5d}, + {0x8330f835, 0xffffbc5e}, + {0x8330f836, 0xffffbc5f}, + {0x8330f837, 0xffffbc60}, + {0x8330f838, 0xffffbc61}, + {0x8330f839, 0xffffbc62}, + {0x8330f930, 0xffffbc63}, + {0x8330f931, 0xffffbc64}, + {0x8330f932, 0xffffbc65}, + {0x8330f933, 0xffffbc66}, + {0x8330f934, 0xffffbc67}, + {0x8330f935, 0xffffbc68}, + {0x8330f936, 0xffffbc69}, + {0x8330f937, 0xffffbc6a}, + {0x8330f938, 0xffffbc6b}, + {0x8330f939, 0xffffbc6c}, + {0x8330fa30, 0xffffbc6d}, + {0x8330fa31, 0xffffbc6e}, + {0x8330fa32, 0xffffbc6f}, + {0x8330fa33, 0xffffbc70}, + {0x8330fa34, 0xffffbc71}, + {0x8330fa35, 0xffffbc72}, + {0x8330fa36, 0xffffbc73}, + {0x8330fa37, 0xffffbc74}, + {0x8330fa38, 0xffffbc75}, + {0x8330fa39, 0xffffbc76}, + {0x8330fb30, 0xffffbc77}, + {0x8330fb31, 0xffffbc78}, + {0x8330fb32, 0xffffbc79}, + {0x8330fb33, 0xffffbc7a}, + {0x8330fb34, 0xffffbc7b}, + {0x8330fb35, 0xffffbc7c}, + {0x8330fb36, 0xffffbc7d}, + {0x8330fb37, 0xffffbc7e}, + {0x8330fb38, 0xffffbc7f}, + {0x8330fb39, 0xffffbc80}, + {0x8330fc30, 0xffffbc81}, + {0x8330fc31, 0xffffbc82}, + {0x8330fc32, 0xffffbc83}, + {0x8330fc33, 0xffffbc84}, + {0x8330fc34, 0xffffbc85}, + {0x8330fc35, 0xffffbc86}, + {0x8330fc36, 0xffffbc87}, + {0x8330fc37, 0xffffbc88}, + {0x8330fc38, 0xffffbc89}, + {0x8330fc39, 0xffffbc8a}, + {0x8330fd30, 0xffffbc8b}, + {0x8330fd31, 0xffffbc8c}, + {0x8330fd32, 0xffffbc8d}, + {0x8330fd33, 0xffffbc8e}, + {0x8330fd34, 0xffffbc8f}, + {0x8330fd35, 0xffffbc90}, + {0x8330fd36, 0xffffbc91}, + {0x8330fd37, 0xffffbc92}, + {0x8330fd38, 0xffffbc93}, + {0x8330fd39, 0xffffbc94}, + {0x8330fe30, 0xffffbc95}, + {0x8330fe31, 0xffffbc96}, + {0x8330fe32, 0xffffbc97}, + {0x8330fe33, 0xffffbc98}, + {0x8330fe34, 0xffffbc99}, + {0x8330fe35, 0xffffbc9a}, + {0x8330fe36, 0xffffbc9b}, + {0x8330fe37, 0xffffbc9c}, + {0x8330fe38, 0xffffbc9d}, + {0x8330fe39, 0xffffbc9e}, + {0x83318130, 0xffffbc9f}, + {0x83318131, 0xffffbca0}, + {0x83318132, 0xffffbca1}, + {0x83318133, 0xffffbca2}, + {0x83318134, 0xffffbca3}, + {0x83318135, 0xffffbca4}, + {0x83318136, 0xffffbca5}, + {0x83318137, 0xffffbca6}, + {0x83318138, 0xffffbca7}, + {0x83318139, 0xffffbca8}, + {0x83318230, 0xffffbca9}, + {0x83318231, 0xffffbcaa}, + {0x83318232, 0xffffbcab}, + {0x83318233, 0xffffbcac}, + {0x83318234, 0xffffbcad}, + {0x83318235, 0xffffbcae}, + {0x83318236, 0xffffbcaf}, + {0x83318237, 0xffffbcb0}, + {0x83318238, 0xffffbcb1}, + {0x83318239, 0xffffbcb2}, + {0x83318330, 0xffffbcb3}, + {0x83318331, 0xffffbcb4}, + {0x83318332, 0xffffbcb5}, + {0x83318333, 0xffffbcb6}, + {0x83318334, 0xffffbcb7}, + {0x83318335, 0xffffbcb8}, + {0x83318336, 0xffffbcb9}, + {0x83318337, 0xffffbcba}, + {0x83318338, 0xffffbcbb}, + {0x83318339, 0xffffbcbc}, + {0x83318430, 0xffffbcbd}, + {0x83318431, 0xffffbcbe}, + {0x83318432, 0xffffbcbf}, + {0x83318433, 0xffffbcc0}, + {0x83318434, 0xffffbcc1}, + {0x83318435, 0xffffbcc2}, + {0x83318436, 0xffffbcc3}, + {0x83318437, 0xffffbcc4}, + {0x83318438, 0xffffbcc5}, + {0x83318439, 0xffffbcc6}, + {0x83318530, 0xffffbcc7}, + {0x83318531, 0xffffbcc8}, + {0x83318532, 0xffffbcc9}, + {0x83318533, 0xffffbcca}, + {0x83318534, 0xffffbccb}, + {0x83318535, 0xffffbccc}, + {0x83318536, 0xffffbccd}, + {0x83318537, 0xffffbcce}, + {0x83318538, 0xffffbccf}, + {0x83318539, 0xffffbcd0}, + {0x83318630, 0xffffbcd1}, + {0x83318631, 0xffffbcd2}, + {0x83318632, 0xffffbcd3}, + {0x83318633, 0xffffbcd4}, + {0x83318634, 0xffffbcd5}, + {0x83318635, 0xffffbcd6}, + {0x83318636, 0xffffbcd7}, + {0x83318637, 0xffffbcd8}, + {0x83318638, 0xffffbcd9}, + {0x83318639, 0xffffbcda}, + {0x83318730, 0xffffbcdb}, + {0x83318731, 0xffffbcdc}, + {0x83318732, 0xffffbcdd}, + {0x83318733, 0xffffbcde}, + {0x83318734, 0xffffbcdf}, + {0x83318735, 0xffffbce0}, + {0x83318736, 0xffffbce1}, + {0x83318737, 0xffffbce2}, + {0x83318738, 0xffffbce3}, + {0x83318739, 0xffffbce4}, + {0x83318830, 0xffffbce5}, + {0x83318831, 0xffffbce6}, + {0x83318832, 0xffffbce7}, + {0x83318833, 0xffffbce8}, + {0x83318834, 0xffffbce9}, + {0x83318835, 0xffffbcea}, + {0x83318836, 0xffffbceb}, + {0x83318837, 0xffffbcec}, + {0x83318838, 0xffffbced}, + {0x83318839, 0xffffbcee}, + {0x83318930, 0xffffbcef}, + {0x83318931, 0xffffbcf0}, + {0x83318932, 0xffffbcf1}, + {0x83318933, 0xffffbcf2}, + {0x83318934, 0xffffbcf3}, + {0x83318935, 0xffffbcf4}, + {0x83318936, 0xffffbcf5}, + {0x83318937, 0xffffbcf6}, + {0x83318938, 0xffffbcf7}, + {0x83318939, 0xffffbcf8}, + {0x83318a30, 0xffffbcf9}, + {0x83318a31, 0xffffbcfa}, + {0x83318a32, 0xffffbcfb}, + {0x83318a33, 0xffffbcfc}, + {0x83318a34, 0xffffbcfd}, + {0x83318a35, 0xffffbcfe}, + {0x83318a36, 0xffffbcff}, + {0x83318a37, 0xffffbd00}, + {0x83318a38, 0xffffbd01}, + {0x83318a39, 0xffffbd02}, + {0x83318b30, 0xffffbd03}, + {0x83318b31, 0xffffbd04}, + {0x83318b32, 0xffffbd05}, + {0x83318b33, 0xffffbd06}, + {0x83318b34, 0xffffbd07}, + {0x83318b35, 0xffffbd08}, + {0x83318b36, 0xffffbd09}, + {0x83318b37, 0xffffbd0a}, + {0x83318b38, 0xffffbd0b}, + {0x83318b39, 0xffffbd0c}, + {0x83318c30, 0xffffbd0d}, + {0x83318c31, 0xffffbd0e}, + {0x83318c32, 0xffffbd0f}, + {0x83318c33, 0xffffbd10}, + {0x83318c34, 0xffffbd11}, + {0x83318c35, 0xffffbd12}, + {0x83318c36, 0xffffbd13}, + {0x83318c37, 0xffffbd14}, + {0x83318c38, 0xffffbd15}, + {0x83318c39, 0xffffbd16}, + {0x83318d30, 0xffffbd17}, + {0x83318d31, 0xffffbd18}, + {0x83318d32, 0xffffbd19}, + {0x83318d33, 0xffffbd1a}, + {0x83318d34, 0xffffbd1b}, + {0x83318d35, 0xffffbd1c}, + {0x83318d36, 0xffffbd1d}, + {0x83318d37, 0xffffbd1e}, + {0x83318d38, 0xffffbd1f}, + {0x83318d39, 0xffffbd20}, + {0x83318e30, 0xffffbd21}, + {0x83318e31, 0xffffbd22}, + {0x83318e32, 0xffffbd23}, + {0x83318e33, 0xffffbd24}, + {0x83318e34, 0xffffbd25}, + {0x83318e35, 0xffffbd26}, + {0x83318e36, 0xffffbd27}, + {0x83318e37, 0xffffbd28}, + {0x83318e38, 0xffffbd29}, + {0x83318e39, 0xffffbd2a}, + {0x83318f30, 0xffffbd2b}, + {0x83318f31, 0xffffbd2c}, + {0x83318f32, 0xffffbd2d}, + {0x83318f33, 0xffffbd2e}, + {0x83318f34, 0xffffbd2f}, + {0x83318f35, 0xffffbd30}, + {0x83318f36, 0xffffbd31}, + {0x83318f37, 0xffffbd32}, + {0x83318f38, 0xffffbd33}, + {0x83318f39, 0xffffbd34}, + {0x83319030, 0xffffbd35}, + {0x83319031, 0xffffbd36}, + {0x83319032, 0xffffbd37}, + {0x83319033, 0xffffbd38}, + {0x83319034, 0xffffbd39}, + {0x83319035, 0xffffbd3a}, + {0x83319036, 0xffffbd3b}, + {0x83319037, 0xffffbd3c}, + {0x83319038, 0xffffbd3d}, + {0x83319039, 0xffffbd3e}, + {0x83319130, 0xffffbd3f}, + {0x83319131, 0xffffbd40}, + {0x83319132, 0xffffbd41}, + {0x83319133, 0xffffbd42}, + {0x83319134, 0xffffbd43}, + {0x83319135, 0xffffbd44}, + {0x83319136, 0xffffbd45}, + {0x83319137, 0xffffbd46}, + {0x83319138, 0xffffbd47}, + {0x83319139, 0xffffbd48}, + {0x83319230, 0xffffbd49}, + {0x83319231, 0xffffbd4a}, + {0x83319232, 0xffffbd4b}, + {0x83319233, 0xffffbd4c}, + {0x83319234, 0xffffbd4d}, + {0x83319235, 0xffffbd4e}, + {0x83319236, 0xffffbd4f}, + {0x83319237, 0xffffbd50}, + {0x83319238, 0xffffbd51}, + {0x83319239, 0xffffbd52}, + {0x83319330, 0xffffbd53}, + {0x83319331, 0xffffbd54}, + {0x83319332, 0xffffbd55}, + {0x83319333, 0xffffbd56}, + {0x83319334, 0xffffbd57}, + {0x83319335, 0xffffbd58}, + {0x83319336, 0xffffbd59}, + {0x83319337, 0xffffbd5a}, + {0x83319338, 0xffffbd5b}, + {0x83319339, 0xffffbd5c}, + {0x83319430, 0xffffbd5d}, + {0x83319431, 0xffffbd5e}, + {0x83319432, 0xffffbd5f}, + {0x83319433, 0xffffbd60}, + {0x83319434, 0xffffbd61}, + {0x83319435, 0xffffbd62}, + {0x83319436, 0xffffbd63}, + {0x83319437, 0xffffbd64}, + {0x83319438, 0xffffbd65}, + {0x83319439, 0xffffbd66}, + {0x83319530, 0xffffbd67}, + {0x83319531, 0xffffbd68}, + {0x83319532, 0xffffbd69}, + {0x83319533, 0xffffbd6a}, + {0x83319534, 0xffffbd6b}, + {0x83319535, 0xffffbd6c}, + {0x83319536, 0xffffbd6d}, + {0x83319537, 0xffffbd6e}, + {0x83319538, 0xffffbd6f}, + {0x83319539, 0xffffbd70}, + {0x83319630, 0xffffbd71}, + {0x83319631, 0xffffbd72}, + {0x83319632, 0xffffbd73}, + {0x83319633, 0xffffbd74}, + {0x83319634, 0xffffbd75}, + {0x83319635, 0xffffbd76}, + {0x83319636, 0xffffbd77}, + {0x83319637, 0xffffbd78}, + {0x83319638, 0xffffbd79}, + {0x83319639, 0xffffbd7a}, + {0x83319730, 0xffffbd7b}, + {0x83319731, 0xffffbd7c}, + {0x83319732, 0xffffbd7d}, + {0x83319733, 0xffffbd7e}, + {0x83319734, 0xffffbd7f}, + {0x83319735, 0xffffbd80}, + {0x83319736, 0xffffbd81}, + {0x83319737, 0xffffbd82}, + {0x83319738, 0xffffbd83}, + {0x83319739, 0xffffbd84}, + {0x83319830, 0xffffbd85}, + {0x83319831, 0xffffbd86}, + {0x83319832, 0xffffbd87}, + {0x83319833, 0xffffbd88}, + {0x83319834, 0xffffbd89}, + {0x83319835, 0xffffbd8a}, + {0x83319836, 0xffffbd8b}, + {0x83319837, 0xffffbd8c}, + {0x83319838, 0xffffbd8d}, + {0x83319839, 0xffffbd8e}, + {0x83319930, 0xffffbd8f}, + {0x83319931, 0xffffbd90}, + {0x83319932, 0xffffbd91}, + {0x83319933, 0xffffbd92}, + {0x83319934, 0xffffbd93}, + {0x83319935, 0xffffbd94}, + {0x83319936, 0xffffbd95}, + {0x83319937, 0xffffbd96}, + {0x83319938, 0xffffbd97}, + {0x83319939, 0xffffbd98}, + {0x83319a30, 0xffffbd99}, + {0x83319a31, 0xffffbd9a}, + {0x83319a32, 0xffffbd9b}, + {0x83319a33, 0xffffbd9c}, + {0x83319a34, 0xffffbd9d}, + {0x83319a35, 0xffffbd9e}, + {0x83319a36, 0xffffbd9f}, + {0x83319a37, 0xffffbda0}, + {0x83319a38, 0xffffbda1}, + {0x83319a39, 0xffffbda2}, + {0x83319b30, 0xffffbda3}, + {0x83319b31, 0xffffbda4}, + {0x83319b32, 0xffffbda5}, + {0x83319b33, 0xffffbda6}, + {0x83319b34, 0xffffbda7}, + {0x83319b35, 0xffffbda8}, + {0x83319b36, 0xffffbda9}, + {0x83319b37, 0xffffbdaa}, + {0x83319b38, 0xffffbdab}, + {0x83319b39, 0xffffbdac}, + {0x83319c30, 0xffffbdad}, + {0x83319c31, 0xffffbdae}, + {0x83319c32, 0xffffbdaf}, + {0x83319c33, 0xffffbdb0}, + {0x83319c34, 0xffffbdb1}, + {0x83319c35, 0xffffbdb2}, + {0x83319c36, 0xffffbdb3}, + {0x83319c37, 0xffffbdb4}, + {0x83319c38, 0xffffbdb5}, + {0x83319c39, 0xffffbdb6}, + {0x83319d30, 0xffffbdb7}, + {0x83319d31, 0xffffbdb8}, + {0x83319d32, 0xffffbdb9}, + {0x83319d33, 0xffffbdba}, + {0x83319d34, 0xffffbdbb}, + {0x83319d35, 0xffffbdbc}, + {0x83319d36, 0xffffbdbd}, + {0x83319d37, 0xffffbdbe}, + {0x83319d38, 0xffffbdbf}, + {0x83319d39, 0xffffbdc0}, + {0x83319e30, 0xffffbdc1}, + {0x83319e31, 0xffffbdc2}, + {0x83319e32, 0xffffbdc3}, + {0x83319e33, 0xffffbdc4}, + {0x83319e34, 0xffffbdc5}, + {0x83319e35, 0xffffbdc6}, + {0x83319e36, 0xffffbdc7}, + {0x83319e37, 0xffffbdc8}, + {0x83319e38, 0xffffbdc9}, + {0x83319e39, 0xffffbdca}, + {0x83319f30, 0xffffbdcb}, + {0x83319f31, 0xffffbdcc}, + {0x83319f32, 0xffffbdcd}, + {0x83319f33, 0xffffbdce}, + {0x83319f34, 0xffffbdcf}, + {0x83319f35, 0xffffbdd0}, + {0x83319f36, 0xffffbdd1}, + {0x83319f37, 0xffffbdd2}, + {0x83319f38, 0xffffbdd3}, + {0x83319f39, 0xffffbdd4}, + {0x8331a030, 0xffffbdd5}, + {0x8331a031, 0xffffbdd6}, + {0x8331a032, 0xffffbdd7}, + {0x8331a033, 0xffffbdd8}, + {0x8331a034, 0xffffbdd9}, + {0x8331a035, 0xffffbdda}, + {0x8331a036, 0xffffbddb}, + {0x8331a037, 0xffffbddc}, + {0x8331a038, 0xffffbddd}, + {0x8331a039, 0xffffbdde}, + {0x8331a130, 0xffffbddf}, + {0x8331a131, 0xffffbde0}, + {0x8331a132, 0xffffbde1}, + {0x8331a133, 0xffffbde2}, + {0x8331a134, 0xffffbde3}, + {0x8331a135, 0xffffbde4}, + {0x8331a136, 0xffffbde5}, + {0x8331a137, 0xffffbde6}, + {0x8331a138, 0xffffbde7}, + {0x8331a139, 0xffffbde8}, + {0x8331a230, 0xffffbde9}, + {0x8331a231, 0xffffbdea}, + {0x8331a232, 0xffffbdeb}, + {0x8331a233, 0xffffbdec}, + {0x8331a234, 0xffffbded}, + {0x8331a235, 0xffffbdee}, + {0x8331a236, 0xffffbdef}, + {0x8331a237, 0xffffbdf0}, + {0x8331a238, 0xffffbdf1}, + {0x8331a239, 0xffffbdf2}, + {0x8331a330, 0xffffbdf3}, + {0x8331a331, 0xffffbdf4}, + {0x8331a332, 0xffffbdf5}, + {0x8331a333, 0xffffbdf6}, + {0x8331a334, 0xffffbdf7}, + {0x8331a335, 0xffffbdf8}, + {0x8331a336, 0xffffbdf9}, + {0x8331a337, 0xffffbdfa}, + {0x8331a338, 0xffffbdfb}, + {0x8331a339, 0xffffbdfc}, + {0x8331a430, 0xffffbdfd}, + {0x8331a431, 0xffffbdfe}, + {0x8331a432, 0xffffbdff}, + {0x8331a433, 0xffffbe00}, + {0x8331a434, 0xffffbe01}, + {0x8331a435, 0xffffbe02}, + {0x8331a436, 0xffffbe03}, + {0x8331a437, 0xffffbe04}, + {0x8331a438, 0xffffbe05}, + {0x8331a439, 0xffffbe06}, + {0x8331a530, 0xffffbe07}, + {0x8331a531, 0xffffbe08}, + {0x8331a532, 0xffffbe09}, + {0x8331a533, 0xffffbe0a}, + {0x8331a534, 0xffffbe0b}, + {0x8331a535, 0xffffbe0c}, + {0x8331a536, 0xffffbe0d}, + {0x8331a537, 0xffffbe0e}, + {0x8331a538, 0xffffbe0f}, + {0x8331a539, 0xffffbe10}, + {0x8331a630, 0xffffbe11}, + {0x8331a631, 0xffffbe12}, + {0x8331a632, 0xffffbe13}, + {0x8331a633, 0xffffbe14}, + {0x8331a634, 0xffffbe15}, + {0x8331a635, 0xffffbe16}, + {0x8331a636, 0xffffbe17}, + {0x8331a637, 0xffffbe18}, + {0x8331a638, 0xffffbe19}, + {0x8331a639, 0xffffbe1a}, + {0x8331a730, 0xffffbe1b}, + {0x8331a731, 0xffffbe1c}, + {0x8331a732, 0xffffbe1d}, + {0x8331a733, 0xffffbe1e}, + {0x8331a734, 0xffffbe1f}, + {0x8331a735, 0xffffbe20}, + {0x8331a736, 0xffffbe21}, + {0x8331a737, 0xffffbe22}, + {0x8331a738, 0xffffbe23}, + {0x8331a739, 0xffffbe24}, + {0x8331a830, 0xffffbe25}, + {0x8331a831, 0xffffbe26}, + {0x8331a832, 0xffffbe27}, + {0x8331a833, 0xffffbe28}, + {0x8331a834, 0xffffbe29}, + {0x8331a835, 0xffffbe2a}, + {0x8331a836, 0xffffbe2b}, + {0x8331a837, 0xffffbe2c}, + {0x8331a838, 0xffffbe2d}, + {0x8331a839, 0xffffbe2e}, + {0x8331a930, 0xffffbe2f}, + {0x8331a931, 0xffffbe30}, + {0x8331a932, 0xffffbe31}, + {0x8331a933, 0xffffbe32}, + {0x8331a934, 0xffffbe33}, + {0x8331a935, 0xffffbe34}, + {0x8331a936, 0xffffbe35}, + {0x8331a937, 0xffffbe36}, + {0x8331a938, 0xffffbe37}, + {0x8331a939, 0xffffbe38}, + {0x8331aa30, 0xffffbe39}, + {0x8331aa31, 0xffffbe3a}, + {0x8331aa32, 0xffffbe3b}, + {0x8331aa33, 0xffffbe3c}, + {0x8331aa34, 0xffffbe3d}, + {0x8331aa35, 0xffffbe3e}, + {0x8331aa36, 0xffffbe3f}, + {0x8331aa37, 0xffffbe40}, + {0x8331aa38, 0xffffbe41}, + {0x8331aa39, 0xffffbe42}, + {0x8331ab30, 0xffffbe43}, + {0x8331ab31, 0xffffbe44}, + {0x8331ab32, 0xffffbe45}, + {0x8331ab33, 0xffffbe46}, + {0x8331ab34, 0xffffbe47}, + {0x8331ab35, 0xffffbe48}, + {0x8331ab36, 0xffffbe49}, + {0x8331ab37, 0xffffbe4a}, + {0x8331ab38, 0xffffbe4b}, + {0x8331ab39, 0xffffbe4c}, + {0x8331ac30, 0xffffbe4d}, + {0x8331ac31, 0xffffbe4e}, + {0x8331ac32, 0xffffbe4f}, + {0x8331ac33, 0xffffbe50}, + {0x8331ac34, 0xffffbe51}, + {0x8331ac35, 0xffffbe52}, + {0x8331ac36, 0xffffbe53}, + {0x8331ac37, 0xffffbe54}, + {0x8331ac38, 0xffffbe55}, + {0x8331ac39, 0xffffbe56}, + {0x8331ad30, 0xffffbe57}, + {0x8331ad31, 0xffffbe58}, + {0x8331ad32, 0xffffbe59}, + {0x8331ad33, 0xffffbe5a}, + {0x8331ad34, 0xffffbe5b}, + {0x8331ad35, 0xffffbe5c}, + {0x8331ad36, 0xffffbe5d}, + {0x8331ad37, 0xffffbe5e}, + {0x8331ad38, 0xffffbe5f}, + {0x8331ad39, 0xffffbe60}, + {0x8331ae30, 0xffffbe61}, + {0x8331ae31, 0xffffbe62}, + {0x8331ae32, 0xffffbe63}, + {0x8331ae33, 0xffffbe64}, + {0x8331ae34, 0xffffbe65}, + {0x8331ae35, 0xffffbe66}, + {0x8331ae36, 0xffffbe67}, + {0x8331ae37, 0xffffbe68}, + {0x8331ae38, 0xffffbe69}, + {0x8331ae39, 0xffffbe6a}, + {0x8331af30, 0xffffbe6b}, + {0x8331af31, 0xffffbe6c}, + {0x8331af32, 0xffffbe6d}, + {0x8331af33, 0xffffbe6e}, + {0x8331af34, 0xffffbe6f}, + {0x8331af35, 0xffffbe70}, + {0x8331af36, 0xffffbe71}, + {0x8331af37, 0xffffbe72}, + {0x8331af38, 0xffffbe73}, + {0x8331af39, 0xffffbe74}, + {0x8331b030, 0xffffbe75}, + {0x8331b031, 0xffffbe76}, + {0x8331b032, 0xffffbe77}, + {0x8331b033, 0xffffbe78}, + {0x8331b034, 0xffffbe79}, + {0x8331b035, 0xffffbe7a}, + {0x8331b036, 0xffffbe7b}, + {0x8331b037, 0xffffbe7c}, + {0x8331b038, 0xffffbe7d}, + {0x8331b039, 0xffffbe7e}, + {0x8331b130, 0xffffbe7f}, + {0x8331b131, 0xffffbe80}, + {0x8331b132, 0xffffbe81}, + {0x8331b133, 0xffffbe82}, + {0x8331b134, 0xffffbe83}, + {0x8331b135, 0xffffbe84}, + {0x8331b136, 0xffffbe85}, + {0x8331b137, 0xffffbe86}, + {0x8331b138, 0xffffbe87}, + {0x8331b139, 0xffffbe88}, + {0x8331b230, 0xffffbe89}, + {0x8331b231, 0xffffbe8a}, + {0x8331b232, 0xffffbe8b}, + {0x8331b233, 0xffffbe8c}, + {0x8331b234, 0xffffbe8d}, + {0x8331b235, 0xffffbe8e}, + {0x8331b236, 0xffffbe8f}, + {0x8331b237, 0xffffbe90}, + {0x8331b238, 0xffffbe91}, + {0x8331b239, 0xffffbe92}, + {0x8331b330, 0xffffbe93}, + {0x8331b331, 0xffffbe94}, + {0x8331b332, 0xffffbe95}, + {0x8331b333, 0xffffbe96}, + {0x8331b334, 0xffffbe97}, + {0x8331b335, 0xffffbe98}, + {0x8331b336, 0xffffbe99}, + {0x8331b337, 0xffffbe9a}, + {0x8331b338, 0xffffbe9b}, + {0x8331b339, 0xffffbe9c}, + {0x8331b430, 0xffffbe9d}, + {0x8331b431, 0xffffbe9e}, + {0x8331b432, 0xffffbe9f}, + {0x8331b433, 0xffffbea0}, + {0x8331b434, 0xffffbea1}, + {0x8331b435, 0xffffbea2}, + {0x8331b436, 0xffffbea3}, + {0x8331b437, 0xffffbea4}, + {0x8331b438, 0xffffbea5}, + {0x8331b439, 0xffffbea6}, + {0x8331b530, 0xffffbea7}, + {0x8331b531, 0xffffbea8}, + {0x8331b532, 0xffffbea9}, + {0x8331b533, 0xffffbeaa}, + {0x8331b534, 0xffffbeab}, + {0x8331b535, 0xffffbeac}, + {0x8331b536, 0xffffbead}, + {0x8331b537, 0xffffbeae}, + {0x8331b538, 0xffffbeaf}, + {0x8331b539, 0xffffbeb0}, + {0x8331b630, 0xffffbeb1}, + {0x8331b631, 0xffffbeb2}, + {0x8331b632, 0xffffbeb3}, + {0x8331b633, 0xffffbeb4}, + {0x8331b634, 0xffffbeb5}, + {0x8331b635, 0xffffbeb6}, + {0x8331b636, 0xffffbeb7}, + {0x8331b637, 0xffffbeb8}, + {0x8331b638, 0xffffbeb9}, + {0x8331b639, 0xffffbeba}, + {0x8331b730, 0xffffbebb}, + {0x8331b731, 0xffffbebc}, + {0x8331b732, 0xffffbebd}, + {0x8331b733, 0xffffbebe}, + {0x8331b734, 0xffffbebf}, + {0x8331b735, 0xffffbec0}, + {0x8331b736, 0xffffbec1}, + {0x8331b737, 0xffffbec2}, + {0x8331b738, 0xffffbec3}, + {0x8331b739, 0xffffbec4}, + {0x8331b830, 0xffffbec5}, + {0x8331b831, 0xffffbec6}, + {0x8331b832, 0xffffbec7}, + {0x8331b833, 0xffffbec8}, + {0x8331b834, 0xffffbec9}, + {0x8331b835, 0xffffbeca}, + {0x8331b836, 0xffffbecb}, + {0x8331b837, 0xffffbecc}, + {0x8331b838, 0xffffbecd}, + {0x8331b839, 0xffffbece}, + {0x8331b930, 0xffffbecf}, + {0x8331b931, 0xffffbed0}, + {0x8331b932, 0xffffbed1}, + {0x8331b933, 0xffffbed2}, + {0x8331b934, 0xffffbed3}, + {0x8331b935, 0xffffbed4}, + {0x8331b936, 0xffffbed5}, + {0x8331b937, 0xffffbed6}, + {0x8331b938, 0xffffbed7}, + {0x8331b939, 0xffffbed8}, + {0x8331ba30, 0xffffbed9}, + {0x8331ba31, 0xffffbeda}, + {0x8331ba32, 0xffffbedb}, + {0x8331ba33, 0xffffbedc}, + {0x8331ba34, 0xffffbedd}, + {0x8331ba35, 0xffffbede}, + {0x8331ba36, 0xffffbedf}, + {0x8331ba37, 0xffffbee0}, + {0x8331ba38, 0xffffbee1}, + {0x8331ba39, 0xffffbee2}, + {0x8331bb30, 0xffffbee3}, + {0x8331bb31, 0xffffbee4}, + {0x8331bb32, 0xffffbee5}, + {0x8331bb33, 0xffffbee6}, + {0x8331bb34, 0xffffbee7}, + {0x8331bb35, 0xffffbee8}, + {0x8331bb36, 0xffffbee9}, + {0x8331bb37, 0xffffbeea}, + {0x8331bb38, 0xffffbeeb}, + {0x8331bb39, 0xffffbeec}, + {0x8331bc30, 0xffffbeed}, + {0x8331bc31, 0xffffbeee}, + {0x8331bc32, 0xffffbeef}, + {0x8331bc33, 0xffffbef0}, + {0x8331bc34, 0xffffbef1}, + {0x8331bc35, 0xffffbef2}, + {0x8331bc36, 0xffffbef3}, + {0x8331bc37, 0xffffbef4}, + {0x8331bc38, 0xffffbef5}, + {0x8331bc39, 0xffffbef6}, + {0x8331bd30, 0xffffbef7}, + {0x8331bd31, 0xffffbef8}, + {0x8331bd32, 0xffffbef9}, + {0x8331bd33, 0xffffbefa}, + {0x8331bd34, 0xffffbefb}, + {0x8331bd35, 0xffffbefc}, + {0x8331bd36, 0xffffbefd}, + {0x8331bd37, 0xffffbefe}, + {0x8331bd38, 0xffffbeff}, + {0x8331bd39, 0xffffbf00}, + {0x8331be30, 0xffffbf01}, + {0x8331be31, 0xffffbf02}, + {0x8331be32, 0xffffbf03}, + {0x8331be33, 0xffffbf04}, + {0x8331be34, 0xffffbf05}, + {0x8331be35, 0xffffbf06}, + {0x8331be36, 0xffffbf07}, + {0x8331be37, 0xffffbf08}, + {0x8331be38, 0xffffbf09}, + {0x8331be39, 0xffffbf0a}, + {0x8331bf30, 0xffffbf0b}, + {0x8331bf31, 0xffffbf0c}, + {0x8331bf32, 0xffffbf0d}, + {0x8331bf33, 0xffffbf0e}, + {0x8331bf34, 0xffffbf0f}, + {0x8331bf35, 0xffffbf10}, + {0x8331bf36, 0xffffbf11}, + {0x8331bf37, 0xffffbf12}, + {0x8331bf38, 0xffffbf13}, + {0x8331bf39, 0xffffbf14}, + {0x8331c030, 0xffffbf15}, + {0x8331c031, 0xffffbf16}, + {0x8331c032, 0xffffbf17}, + {0x8331c033, 0xffffbf18}, + {0x8331c034, 0xffffbf19}, + {0x8331c035, 0xffffbf1a}, + {0x8331c036, 0xffffbf1b}, + {0x8331c037, 0xffffbf1c}, + {0x8331c038, 0xffffbf1d}, + {0x8331c039, 0xffffbf1e}, + {0x8331c130, 0xffffbf1f}, + {0x8331c131, 0xffffbf20}, + {0x8331c132, 0xffffbf21}, + {0x8331c133, 0xffffbf22}, + {0x8331c134, 0xffffbf23}, + {0x8331c135, 0xffffbf24}, + {0x8331c136, 0xffffbf25}, + {0x8331c137, 0xffffbf26}, + {0x8331c138, 0xffffbf27}, + {0x8331c139, 0xffffbf28}, + {0x8331c230, 0xffffbf29}, + {0x8331c231, 0xffffbf2a}, + {0x8331c232, 0xffffbf2b}, + {0x8331c233, 0xffffbf2c}, + {0x8331c234, 0xffffbf2d}, + {0x8331c235, 0xffffbf2e}, + {0x8331c236, 0xffffbf2f}, + {0x8331c237, 0xffffbf30}, + {0x8331c238, 0xffffbf31}, + {0x8331c239, 0xffffbf32}, + {0x8331c330, 0xffffbf33}, + {0x8331c331, 0xffffbf34}, + {0x8331c332, 0xffffbf35}, + {0x8331c333, 0xffffbf36}, + {0x8331c334, 0xffffbf37}, + {0x8331c335, 0xffffbf38}, + {0x8331c336, 0xffffbf39}, + {0x8331c337, 0xffffbf3a}, + {0x8331c338, 0xffffbf3b}, + {0x8331c339, 0xffffbf3c}, + {0x8331c430, 0xffffbf3d}, + {0x8331c431, 0xffffbf3e}, + {0x8331c432, 0xffffbf3f}, + {0x8331c433, 0xffffbf40}, + {0x8331c434, 0xffffbf41}, + {0x8331c435, 0xffffbf42}, + {0x8331c436, 0xffffbf43}, + {0x8331c437, 0xffffbf44}, + {0x8331c438, 0xffffbf45}, + {0x8331c439, 0xffffbf46}, + {0x8331c530, 0xffffbf47}, + {0x8331c531, 0xffffbf48}, + {0x8331c532, 0xffffbf49}, + {0x8331c533, 0xffffbf4a}, + {0x8331c534, 0xffffbf4b}, + {0x8331c535, 0xffffbf4c}, + {0x8331c536, 0xffffbf4d}, + {0x8331c537, 0xffffbf4e}, + {0x8331c538, 0xffffbf4f}, + {0x8331c539, 0xffffbf50}, + {0x8331c630, 0xffffbf51}, + {0x8331c631, 0xffffbf52}, + {0x8331c632, 0xffffbf53}, + {0x8331c633, 0xffffbf54}, + {0x8331c634, 0xffffbf55}, + {0x8331c635, 0xffffbf56}, + {0x8331c636, 0xffffbf57}, + {0x8331c637, 0xffffbf58}, + {0x8331c638, 0xffffbf59}, + {0x8331c639, 0xffffbf5a}, + {0x8331c730, 0xffffbf5b}, + {0x8331c731, 0xffffbf5c}, + {0x8331c732, 0xffffbf5d}, + {0x8331c733, 0xffffbf5e}, + {0x8331c734, 0xffffbf5f}, + {0x8331c735, 0xffffbf60}, + {0x8331c736, 0xffffbf61}, + {0x8331c737, 0xffffbf62}, + {0x8331c738, 0xffffbf63}, + {0x8331c739, 0xffffbf64}, + {0x8331c830, 0xffffbf65}, + {0x8331c831, 0xffffbf66}, + {0x8331c832, 0xffffbf67}, + {0x8331c833, 0xffffbf68}, + {0x8331c834, 0xffffbf69}, + {0x8331c835, 0xffffbf6a}, + {0x8331c836, 0xffffbf6b}, + {0x8331c837, 0xffffbf6c}, + {0x8331c838, 0xffffbf6d}, + {0x8331c839, 0xffffbf6e}, + {0x8331c930, 0xffffbf6f}, + {0x8331c931, 0xffffbf70}, + {0x8331c932, 0xffffbf71}, + {0x8331c933, 0xffffbf72}, + {0x8331c934, 0xffffbf73}, + {0x8331c935, 0xffffbf74}, + {0x8331c936, 0xffffbf75}, + {0x8331c937, 0xffffbf76}, + {0x8331c938, 0xffffbf77}, + {0x8331c939, 0xffffbf78}, + {0x8331ca30, 0xffffbf79}, + {0x8331ca31, 0xffffbf7a}, + {0x8331ca32, 0xffffbf7b}, + {0x8331ca33, 0xffffbf7c}, + {0x8331ca34, 0xffffbf7d}, + {0x8331ca35, 0xffffbf7e}, + {0x8331ca36, 0xffffbf7f}, + {0x8331ca37, 0xffffbf80}, + {0x8331ca38, 0xffffbf81}, + {0x8331ca39, 0xffffbf82}, + {0x8331cb30, 0xffffbf83}, + {0x8331cb31, 0xffffbf84}, + {0x8331cb32, 0xffffbf85}, + {0x8331cb33, 0xffffbf86}, + {0x8331cb34, 0xffffbf87}, + {0x8331cb35, 0xffffbf88}, + {0x8331cb36, 0xffffbf89}, + {0x8331cb37, 0xffffbf8a}, + {0x8331cb38, 0xffffbf8b}, + {0x8331cb39, 0xffffbf8c}, + {0x8331cc30, 0xffffbf8d}, + {0x8331cc31, 0xffffbf8e}, + {0x8331cc32, 0xffffbf8f}, + {0x8331cc33, 0xffffbf90}, + {0x8331cc34, 0xffffbf91}, + {0x8331cc35, 0xffffbf92}, + {0x8331cc36, 0xffffbf93}, + {0x8331cc37, 0xffffbf94}, + {0x8331cc38, 0xffffbf95}, + {0x8331cc39, 0xffffbf96}, + {0x8331cd30, 0xffffbf97}, + {0x8331cd31, 0xffffbf98}, + {0x8331cd32, 0xffffbf99}, + {0x8331cd33, 0xffffbf9a}, + {0x8331cd34, 0xffffbf9b}, + {0x8331cd35, 0xffffbf9c}, + {0x8331cd36, 0xffffbf9d}, + {0x8331cd37, 0xffffbf9e}, + {0x8331cd38, 0xffffbf9f}, + {0x8331cd39, 0xffffbfa0}, + {0x8331ce30, 0xffffbfa1}, + {0x8331ce31, 0xffffbfa2}, + {0x8331ce32, 0xffffbfa3}, + {0x8331ce33, 0xffffbfa4}, + {0x8331ce34, 0xffffbfa5}, + {0x8331ce35, 0xffffbfa6}, + {0x8331ce36, 0xffffbfa7}, + {0x8331ce37, 0xffffbfa8}, + {0x8331ce38, 0xffffbfa9}, + {0x8331ce39, 0xffffbfaa}, + {0x8331cf30, 0xffffbfab}, + {0x8331cf31, 0xffffbfac}, + {0x8331cf32, 0xffffbfad}, + {0x8331cf33, 0xffffbfae}, + {0x8331cf34, 0xffffbfaf}, + {0x8331cf35, 0xffffbfb0}, + {0x8331cf36, 0xffffbfb1}, + {0x8331cf37, 0xffffbfb2}, + {0x8331cf38, 0xffffbfb3}, + {0x8331cf39, 0xffffbfb4}, + {0x8331d030, 0xffffbfb5}, + {0x8331d031, 0xffffbfb6}, + {0x8331d032, 0xffffbfb7}, + {0x8331d033, 0xffffbfb8}, + {0x8331d034, 0xffffbfb9}, + {0x8331d035, 0xffffbfba}, + {0x8331d036, 0xffffbfbb}, + {0x8331d037, 0xffffbfbc}, + {0x8331d038, 0xffffbfbd}, + {0x8331d039, 0xffffbfbe}, + {0x8331d130, 0xffffbfbf}, + {0x8331d131, 0xffffbfc0}, + {0x8331d132, 0xffffbfc1}, + {0x8331d133, 0xffffbfc2}, + {0x8331d134, 0xffffbfc3}, + {0x8331d135, 0xffffbfc4}, + {0x8331d136, 0xffffbfc5}, + {0x8331d137, 0xffffbfc6}, + {0x8331d138, 0xffffbfc7}, + {0x8331d139, 0xffffbfc8}, + {0x8331d230, 0xffffbfc9}, + {0x8331d231, 0xffffbfca}, + {0x8331d232, 0xffffbfcb}, + {0x8331d233, 0xffffbfcc}, + {0x8331d234, 0xffffbfcd}, + {0x8331d235, 0xffffbfce}, + {0x8331d236, 0xffffbfcf}, + {0x8331d237, 0xffffbfd0}, + {0x8331d238, 0xffffbfd1}, + {0x8331d239, 0xffffbfd2}, + {0x8331d330, 0xffffbfd3}, + {0x8331d331, 0xffffbfd4}, + {0x8331d332, 0xffffbfd5}, + {0x8331d333, 0xffffbfd6}, + {0x8331d334, 0xffffbfd7}, + {0x8331d335, 0xffffbfd8}, + {0x8331d336, 0xffffbfd9}, + {0x8331d337, 0xffffbfda}, + {0x8331d338, 0xffffbfdb}, + {0x8331d339, 0xffffbfdc}, + {0x8331d430, 0xffffbfdd}, + {0x8331d431, 0xffffbfde}, + {0x8331d432, 0xffffbfdf}, + {0x8331d433, 0xffffbfe0}, + {0x8331d434, 0xffffbfe1}, + {0x8331d435, 0xffffbfe2}, + {0x8331d436, 0xffffbfe3}, + {0x8331d437, 0xffffbfe4}, + {0x8331d438, 0xffffbfe5}, + {0x8331d439, 0xffffbfe6}, + {0x8331d530, 0xffffbfe7}, + {0x8331d531, 0xffffbfe8}, + {0x8331d532, 0xffffbfe9}, + {0x8331d533, 0xffffbfea}, + {0x8331d534, 0xffffbfeb}, + {0x8331d535, 0xffffbfec}, + {0x8331d536, 0xffffbfed}, + {0x8331d537, 0xffffbfee}, + {0x8331d538, 0xffffbfef}, + {0x8331d539, 0xffffbff0}, + {0x8331d630, 0xffffbff1}, + {0x8331d631, 0xffffbff2}, + {0x8331d632, 0xffffbff3}, + {0x8331d633, 0xffffbff4}, + {0x8331d634, 0xffffbff5}, + {0x8331d635, 0xffffbff6}, + {0x8331d636, 0xffffbff7}, + {0x8331d637, 0xffffbff8}, + {0x8331d638, 0xffffbff9}, + {0x8331d639, 0xffffbffa}, + {0x8331d730, 0xffffbffb}, + {0x8331d731, 0xffffbffc}, + {0x8331d732, 0xffffbffd}, + {0x8331d733, 0xffffbffe}, + {0x8331d734, 0xffffbfff}, + {0x8331d735, 0xffffc000}, + {0x8331d736, 0xffffc001}, + {0x8331d737, 0xffffc002}, + {0x8331d738, 0xffffc003}, + {0x8331d739, 0xffffc004}, + {0x8331d830, 0xffffc005}, + {0x8331d831, 0xffffc006}, + {0x8331d832, 0xffffc007}, + {0x8331d833, 0xffffc008}, + {0x8331d834, 0xffffc009}, + {0x8331d835, 0xffffc00a}, + {0x8331d836, 0xffffc00b}, + {0x8331d837, 0xffffc00c}, + {0x8331d838, 0xffffc00d}, + {0x8331d839, 0xffffc00e}, + {0x8331d930, 0xffffc00f}, + {0x8331d931, 0xffffc010}, + {0x8331d932, 0xffffc011}, + {0x8331d933, 0xffffc012}, + {0x8331d934, 0xffffc013}, + {0x8331d935, 0xffffc014}, + {0x8331d936, 0xffffc015}, + {0x8331d937, 0xffffc016}, + {0x8331d938, 0xffffc017}, + {0x8331d939, 0xffffc018}, + {0x8331da30, 0xffffc019}, + {0x8331da31, 0xffffc01a}, + {0x8331da32, 0xffffc01b}, + {0x8331da33, 0xffffc01c}, + {0x8331da34, 0xffffc01d}, + {0x8331da35, 0xffffc01e}, + {0x8331da36, 0xffffc01f}, + {0x8331da37, 0xffffc020}, + {0x8331da38, 0xffffc021}, + {0x8331da39, 0xffffc022}, + {0x8331db30, 0xffffc023}, + {0x8331db31, 0xffffc024}, + {0x8331db32, 0xffffc025}, + {0x8331db33, 0xffffc026}, + {0x8331db34, 0xffffc027}, + {0x8331db35, 0xffffc028}, + {0x8331db36, 0xffffc029}, + {0x8331db37, 0xffffc02a}, + {0x8331db38, 0xffffc02b}, + {0x8331db39, 0xffffc02c}, + {0x8331dc30, 0xffffc02d}, + {0x8331dc31, 0xffffc02e}, + {0x8331dc32, 0xffffc02f}, + {0x8331dc33, 0xffffc030}, + {0x8331dc34, 0xffffc031}, + {0x8331dc35, 0xffffc032}, + {0x8331dc36, 0xffffc033}, + {0x8331dc37, 0xffffc034}, + {0x8331dc38, 0xffffc035}, + {0x8331dc39, 0xffffc036}, + {0x8331dd30, 0xffffc037}, + {0x8331dd31, 0xffffc038}, + {0x8331dd32, 0xffffc039}, + {0x8331dd33, 0xffffc03a}, + {0x8331dd34, 0xffffc03b}, + {0x8331dd35, 0xffffc03c}, + {0x8331dd36, 0xffffc03d}, + {0x8331dd37, 0xffffc03e}, + {0x8331dd38, 0xffffc03f}, + {0x8331dd39, 0xffffc040}, + {0x8331de30, 0xffffc041}, + {0x8331de31, 0xffffc042}, + {0x8331de32, 0xffffc043}, + {0x8331de33, 0xffffc044}, + {0x8331de34, 0xffffc045}, + {0x8331de35, 0xffffc046}, + {0x8331de36, 0xffffc047}, + {0x8331de37, 0xffffc048}, + {0x8331de38, 0xffffc049}, + {0x8331de39, 0xffffc04a}, + {0x8331df30, 0xffffc04b}, + {0x8331df31, 0xffffc04c}, + {0x8331df32, 0xffffc04d}, + {0x8331df33, 0xffffc04e}, + {0x8331df34, 0xffffc04f}, + {0x8331df35, 0xffffc050}, + {0x8331df36, 0xffffc051}, + {0x8331df37, 0xffffc052}, + {0x8331df38, 0xffffc053}, + {0x8331df39, 0xffffc054}, + {0x8331e030, 0xffffc055}, + {0x8331e031, 0xffffc056}, + {0x8331e032, 0xffffc057}, + {0x8331e033, 0xffffc058}, + {0x8331e034, 0xffffc059}, + {0x8331e035, 0xffffc05a}, + {0x8331e036, 0xffffc05b}, + {0x8331e037, 0xffffc05c}, + {0x8331e038, 0xffffc05d}, + {0x8331e039, 0xffffc05e}, + {0x8331e130, 0xffffc05f}, + {0x8331e131, 0xffffc060}, + {0x8331e132, 0xffffc061}, + {0x8331e133, 0xffffc062}, + {0x8331e134, 0xffffc063}, + {0x8331e135, 0xffffc064}, + {0x8331e136, 0xffffc065}, + {0x8331e137, 0xffffc066}, + {0x8331e138, 0xffffc067}, + {0x8331e139, 0xffffc068}, + {0x8331e230, 0xffffc069}, + {0x8331e231, 0xffffc06a}, + {0x8331e232, 0xffffc06b}, + {0x8331e233, 0xffffc06c}, + {0x8331e234, 0xffffc06d}, + {0x8331e235, 0xffffc06e}, + {0x8331e236, 0xffffc06f}, + {0x8331e237, 0xffffc070}, + {0x8331e238, 0xffffc071}, + {0x8331e239, 0xffffc072}, + {0x8331e330, 0xffffc073}, + {0x8331e331, 0xffffc074}, + {0x8331e332, 0xffffc075}, + {0x8331e333, 0xffffc076}, + {0x8331e334, 0xffffc077}, + {0x8331e335, 0xffffc078}, + {0x8331e336, 0xffffc079}, + {0x8331e337, 0xffffc07a}, + {0x8331e338, 0xffffc07b}, + {0x8331e339, 0xffffc07c}, + {0x8331e430, 0xffffc07d}, + {0x8331e431, 0xffffc07e}, + {0x8331e432, 0xffffc07f}, + {0x8331e433, 0xffffc080}, + {0x8331e434, 0xffffc081}, + {0x8331e435, 0xffffc082}, + {0x8331e436, 0xffffc083}, + {0x8331e437, 0xffffc084}, + {0x8331e438, 0xffffc085}, + {0x8331e439, 0xffffc086}, + {0x8331e530, 0xffffc087}, + {0x8331e531, 0xffffc088}, + {0x8331e532, 0xffffc089}, + {0x8331e533, 0xffffc08a}, + {0x8331e534, 0xffffc08b}, + {0x8331e535, 0xffffc08c}, + {0x8331e536, 0xffffc08d}, + {0x8331e537, 0xffffc08e}, + {0x8331e538, 0xffffc08f}, + {0x8331e539, 0xffffc090}, + {0x8331e630, 0xffffc091}, + {0x8331e631, 0xffffc092}, + {0x8331e632, 0xffffc093}, + {0x8331e633, 0xffffc094}, + {0x8331e634, 0xffffc095}, + {0x8331e635, 0xffffc096}, + {0x8331e636, 0xffffc097}, + {0x8331e637, 0xffffc098}, + {0x8331e638, 0xffffc099}, + {0x8331e639, 0xffffc09a}, + {0x8331e730, 0xffffc09b}, + {0x8331e731, 0xffffc09c}, + {0x8331e732, 0xffffc09d}, + {0x8331e733, 0xffffc09e}, + {0x8331e734, 0xffffc09f}, + {0x8331e735, 0xffffc0a0}, + {0x8331e736, 0xffffc0a1}, + {0x8331e737, 0xffffc0a2}, + {0x8331e738, 0xffffc0a3}, + {0x8331e739, 0xffffc0a4}, + {0x8331e830, 0xffffc0a5}, + {0x8331e831, 0xffffc0a6}, + {0x8331e832, 0xffffc0a7}, + {0x8331e833, 0xffffc0a8}, + {0x8331e834, 0xffffc0a9}, + {0x8331e835, 0xffffc0aa}, + {0x8331e836, 0xffffc0ab}, + {0x8331e837, 0xffffc0ac}, + {0x8331e838, 0xffffc0ad}, + {0x8331e839, 0xffffc0ae}, + {0x8331e930, 0xffffc0af}, + {0x8331e931, 0xffffc0b0}, + {0x8331e932, 0xffffc0b1}, + {0x8331e933, 0xffffc0b2}, + {0x8331e934, 0xffffc0b3}, + {0x8331e935, 0xffffc0b4}, + {0x8331e936, 0xffffc0b5}, + {0x8331e937, 0xffffc0b6}, + {0x8331e938, 0xffffc0b7}, + {0x8331e939, 0xffffc0b8}, + {0x8331ea30, 0xffffc0b9}, + {0x8331ea31, 0xffffc0ba}, + {0x8331ea32, 0xffffc0bb}, + {0x8331ea33, 0xffffc0bc}, + {0x8331ea34, 0xffffc0bd}, + {0x8331ea35, 0xffffc0be}, + {0x8331ea36, 0xffffc0bf}, + {0x8331ea37, 0xffffc0c0}, + {0x8331ea38, 0xffffc0c1}, + {0x8331ea39, 0xffffc0c2}, + {0x8331eb30, 0xffffc0c3}, + {0x8331eb31, 0xffffc0c4}, + {0x8331eb32, 0xffffc0c5}, + {0x8331eb33, 0xffffc0c6}, + {0x8331eb34, 0xffffc0c7}, + {0x8331eb35, 0xffffc0c8}, + {0x8331eb36, 0xffffc0c9}, + {0x8331eb37, 0xffffc0ca}, + {0x8331eb38, 0xffffc0cb}, + {0x8331eb39, 0xffffc0cc}, + {0x8331ec30, 0xffffc0cd}, + {0x8331ec31, 0xffffc0ce}, + {0x8331ec32, 0xffffc0cf}, + {0x8331ec33, 0xffffc0d0}, + {0x8331ec34, 0xffffc0d1}, + {0x8331ec35, 0xffffc0d2}, + {0x8331ec36, 0xffffc0d3}, + {0x8331ec37, 0xffffc0d4}, + {0x8331ec38, 0xffffc0d5}, + {0x8331ec39, 0xffffc0d6}, + {0x8331ed30, 0xffffc0d7}, + {0x8331ed31, 0xffffc0d8}, + {0x8331ed32, 0xffffc0d9}, + {0x8331ed33, 0xffffc0da}, + {0x8331ed34, 0xffffc0db}, + {0x8331ed35, 0xffffc0dc}, + {0x8331ed36, 0xffffc0dd}, + {0x8331ed37, 0xffffc0de}, + {0x8331ed38, 0xffffc0df}, + {0x8331ed39, 0xffffc0e0}, + {0x8331ee30, 0xffffc0e1}, + {0x8331ee31, 0xffffc0e2}, + {0x8331ee32, 0xffffc0e3}, + {0x8331ee33, 0xffffc0e4}, + {0x8331ee34, 0xffffc0e5}, + {0x8331ee35, 0xffffc0e6}, + {0x8331ee36, 0xffffc0e7}, + {0x8331ee37, 0xffffc0e8}, + {0x8331ee38, 0xffffc0e9}, + {0x8331ee39, 0xffffc0ea}, + {0x8331ef30, 0xffffc0eb}, + {0x8331ef31, 0xffffc0ec}, + {0x8331ef32, 0xffffc0ed}, + {0x8331ef33, 0xffffc0ee}, + {0x8331ef34, 0xffffc0ef}, + {0x8331ef35, 0xffffc0f0}, + {0x8331ef36, 0xffffc0f1}, + {0x8331ef37, 0xffffc0f2}, + {0x8331ef38, 0xffffc0f3}, + {0x8331ef39, 0xffffc0f4}, + {0x8331f030, 0xffffc0f5}, + {0x8331f031, 0xffffc0f6}, + {0x8331f032, 0xffffc0f7}, + {0x8331f033, 0xffffc0f8}, + {0x8331f034, 0xffffc0f9}, + {0x8331f035, 0xffffc0fa}, + {0x8331f036, 0xffffc0fb}, + {0x8331f037, 0xffffc0fc}, + {0x8331f038, 0xffffc0fd}, + {0x8331f039, 0xffffc0fe}, + {0x8331f130, 0xffffc0ff}, + {0x8331f131, 0xffffc100}, + {0x8331f132, 0xffffc101}, + {0x8331f133, 0xffffc102}, + {0x8331f134, 0xffffc103}, + {0x8331f135, 0xffffc104}, + {0x8331f136, 0xffffc105}, + {0x8331f137, 0xffffc106}, + {0x8331f138, 0xffffc107}, + {0x8331f139, 0xffffc108}, + {0x8331f230, 0xffffc109}, + {0x8331f231, 0xffffc10a}, + {0x8331f232, 0xffffc10b}, + {0x8331f233, 0xffffc10c}, + {0x8331f234, 0xffffc10d}, + {0x8331f235, 0xffffc10e}, + {0x8331f236, 0xffffc10f}, + {0x8331f237, 0xffffc110}, + {0x8331f238, 0xffffc111}, + {0x8331f239, 0xffffc112}, + {0x8331f330, 0xffffc113}, + {0x8331f331, 0xffffc114}, + {0x8331f332, 0xffffc115}, + {0x8331f333, 0xffffc116}, + {0x8331f334, 0xffffc117}, + {0x8331f335, 0xffffc118}, + {0x8331f336, 0xffffc119}, + {0x8331f337, 0xffffc11a}, + {0x8331f338, 0xffffc11b}, + {0x8331f339, 0xffffc11c}, + {0x8331f430, 0xffffc11d}, + {0x8331f431, 0xffffc11e}, + {0x8331f432, 0xffffc11f}, + {0x8331f433, 0xffffc120}, + {0x8331f434, 0xffffc121}, + {0x8331f435, 0xffffc122}, + {0x8331f436, 0xffffc123}, + {0x8331f437, 0xffffc124}, + {0x8331f438, 0xffffc125}, + {0x8331f439, 0xffffc126}, + {0x8331f530, 0xffffc127}, + {0x8331f531, 0xffffc128}, + {0x8331f532, 0xffffc129}, + {0x8331f533, 0xffffc12a}, + {0x8331f534, 0xffffc12b}, + {0x8331f535, 0xffffc12c}, + {0x8331f536, 0xffffc12d}, + {0x8331f537, 0xffffc12e}, + {0x8331f538, 0xffffc12f}, + {0x8331f539, 0xffffc130}, + {0x8331f630, 0xffffc131}, + {0x8331f631, 0xffffc132}, + {0x8331f632, 0xffffc133}, + {0x8331f633, 0xffffc134}, + {0x8331f634, 0xffffc135}, + {0x8331f635, 0xffffc136}, + {0x8331f636, 0xffffc137}, + {0x8331f637, 0xffffc138}, + {0x8331f638, 0xffffc139}, + {0x8331f639, 0xffffc13a}, + {0x8331f730, 0xffffc13b}, + {0x8331f731, 0xffffc13c}, + {0x8331f732, 0xffffc13d}, + {0x8331f733, 0xffffc13e}, + {0x8331f734, 0xffffc13f}, + {0x8331f735, 0xffffc140}, + {0x8331f736, 0xffffc141}, + {0x8331f737, 0xffffc142}, + {0x8331f738, 0xffffc143}, + {0x8331f739, 0xffffc144}, + {0x8331f830, 0xffffc145}, + {0x8331f831, 0xffffc146}, + {0x8331f832, 0xffffc147}, + {0x8331f833, 0xffffc148}, + {0x8331f834, 0xffffc149}, + {0x8331f835, 0xffffc14a}, + {0x8331f836, 0xffffc14b}, + {0x8331f837, 0xffffc14c}, + {0x8331f838, 0xffffc14d}, + {0x8331f839, 0xffffc14e}, + {0x8331f930, 0xffffc14f}, + {0x8331f931, 0xffffc150}, + {0x8331f932, 0xffffc151}, + {0x8331f933, 0xffffc152}, + {0x8331f934, 0xffffc153}, + {0x8331f935, 0xffffc154}, + {0x8331f936, 0xffffc155}, + {0x8331f937, 0xffffc156}, + {0x8331f938, 0xffffc157}, + {0x8331f939, 0xffffc158}, + {0x8331fa30, 0xffffc159}, + {0x8331fa31, 0xffffc15a}, + {0x8331fa32, 0xffffc15b}, + {0x8331fa33, 0xffffc15c}, + {0x8331fa34, 0xffffc15d}, + {0x8331fa35, 0xffffc15e}, + {0x8331fa36, 0xffffc15f}, + {0x8331fa37, 0xffffc160}, + {0x8331fa38, 0xffffc161}, + {0x8331fa39, 0xffffc162}, + {0x8331fb30, 0xffffc163}, + {0x8331fb31, 0xffffc164}, + {0x8331fb32, 0xffffc165}, + {0x8331fb33, 0xffffc166}, + {0x8331fb34, 0xffffc167}, + {0x8331fb35, 0xffffc168}, + {0x8331fb36, 0xffffc169}, + {0x8331fb37, 0xffffc16a}, + {0x8331fb38, 0xffffc16b}, + {0x8331fb39, 0xffffc16c}, + {0x8331fc30, 0xffffc16d}, + {0x8331fc31, 0xffffc16e}, + {0x8331fc32, 0xffffc16f}, + {0x8331fc33, 0xffffc170}, + {0x8331fc34, 0xffffc171}, + {0x8331fc35, 0xffffc172}, + {0x8331fc36, 0xffffc173}, + {0x8331fc37, 0xffffc174}, + {0x8331fc38, 0xffffc175}, + {0x8331fc39, 0xffffc176}, + {0x8331fd30, 0xffffc177}, + {0x8331fd31, 0xffffc178}, + {0x8331fd32, 0xffffc179}, + {0x8331fd33, 0xffffc17a}, + {0x8331fd34, 0xffffc17b}, + {0x8331fd35, 0xffffc17c}, + {0x8331fd36, 0xffffc17d}, + {0x8331fd37, 0xffffc17e}, + {0x8331fd38, 0xffffc17f}, + {0x8331fd39, 0xffffc180}, + {0x8331fe30, 0xffffc181}, + {0x8331fe31, 0xffffc182}, + {0x8331fe32, 0xffffc183}, + {0x8331fe33, 0xffffc184}, + {0x8331fe34, 0xffffc185}, + {0x8331fe35, 0xffffc186}, + {0x8331fe36, 0xffffc187}, + {0x8331fe37, 0xffffc188}, + {0x8331fe38, 0xffffc189}, + {0x8331fe39, 0xffffc18a}, + {0x83328130, 0xffffc18b}, + {0x83328131, 0xffffc18c}, + {0x83328132, 0xffffc18d}, + {0x83328133, 0xffffc18e}, + {0x83328134, 0xffffc18f}, + {0x83328135, 0xffffc190}, + {0x83328136, 0xffffc191}, + {0x83328137, 0xffffc192}, + {0x83328138, 0xffffc193}, + {0x83328139, 0xffffc194}, + {0x83328230, 0xffffc195}, + {0x83328231, 0xffffc196}, + {0x83328232, 0xffffc197}, + {0x83328233, 0xffffc198}, + {0x83328234, 0xffffc199}, + {0x83328235, 0xffffc19a}, + {0x83328236, 0xffffc19b}, + {0x83328237, 0xffffc19c}, + {0x83328238, 0xffffc19d}, + {0x83328239, 0xffffc19e}, + {0x83328330, 0xffffc19f}, + {0x83328331, 0xffffc1a0}, + {0x83328332, 0xffffc1a1}, + {0x83328333, 0xffffc1a2}, + {0x83328334, 0xffffc1a3}, + {0x83328335, 0xffffc1a4}, + {0x83328336, 0xffffc1a5}, + {0x83328337, 0xffffc1a6}, + {0x83328338, 0xffffc1a7}, + {0x83328339, 0xffffc1a8}, + {0x83328430, 0xffffc1a9}, + {0x83328431, 0xffffc1aa}, + {0x83328432, 0xffffc1ab}, + {0x83328433, 0xffffc1ac}, + {0x83328434, 0xffffc1ad}, + {0x83328435, 0xffffc1ae}, + {0x83328436, 0xffffc1af}, + {0x83328437, 0xffffc1b0}, + {0x83328438, 0xffffc1b1}, + {0x83328439, 0xffffc1b2}, + {0x83328530, 0xffffc1b3}, + {0x83328531, 0xffffc1b4}, + {0x83328532, 0xffffc1b5}, + {0x83328533, 0xffffc1b6}, + {0x83328534, 0xffffc1b7}, + {0x83328535, 0xffffc1b8}, + {0x83328536, 0xffffc1b9}, + {0x83328537, 0xffffc1ba}, + {0x83328538, 0xffffc1bb}, + {0x83328539, 0xffffc1bc}, + {0x83328630, 0xffffc1bd}, + {0x83328631, 0xffffc1be}, + {0x83328632, 0xffffc1bf}, + {0x83328633, 0xffffc1c0}, + {0x83328634, 0xffffc1c1}, + {0x83328635, 0xffffc1c2}, + {0x83328636, 0xffffc1c3}, + {0x83328637, 0xffffc1c4}, + {0x83328638, 0xffffc1c5}, + {0x83328639, 0xffffc1c6}, + {0x83328730, 0xffffc1c7}, + {0x83328731, 0xffffc1c8}, + {0x83328732, 0xffffc1c9}, + {0x83328733, 0xffffc1ca}, + {0x83328734, 0xffffc1cb}, + {0x83328735, 0xffffc1cc}, + {0x83328736, 0xffffc1cd}, + {0x83328737, 0xffffc1ce}, + {0x83328738, 0xffffc1cf}, + {0x83328739, 0xffffc1d0}, + {0x83328830, 0xffffc1d1}, + {0x83328831, 0xffffc1d2}, + {0x83328832, 0xffffc1d3}, + {0x83328833, 0xffffc1d4}, + {0x83328834, 0xffffc1d5}, + {0x83328835, 0xffffc1d6}, + {0x83328836, 0xffffc1d7}, + {0x83328837, 0xffffc1d8}, + {0x83328838, 0xffffc1d9}, + {0x83328839, 0xffffc1da}, + {0x83328930, 0xffffc1db}, + {0x83328931, 0xffffc1dc}, + {0x83328932, 0xffffc1dd}, + {0x83328933, 0xffffc1de}, + {0x83328934, 0xffffc1df}, + {0x83328935, 0xffffc1e0}, + {0x83328936, 0xffffc1e1}, + {0x83328937, 0xffffc1e2}, + {0x83328938, 0xffffc1e3}, + {0x83328939, 0xffffc1e4}, + {0x83328a30, 0xffffc1e5}, + {0x83328a31, 0xffffc1e6}, + {0x83328a32, 0xffffc1e7}, + {0x83328a33, 0xffffc1e8}, + {0x83328a34, 0xffffc1e9}, + {0x83328a35, 0xffffc1ea}, + {0x83328a36, 0xffffc1eb}, + {0x83328a37, 0xffffc1ec}, + {0x83328a38, 0xffffc1ed}, + {0x83328a39, 0xffffc1ee}, + {0x83328b30, 0xffffc1ef}, + {0x83328b31, 0xffffc1f0}, + {0x83328b32, 0xffffc1f1}, + {0x83328b33, 0xffffc1f2}, + {0x83328b34, 0xffffc1f3}, + {0x83328b35, 0xffffc1f4}, + {0x83328b36, 0xffffc1f5}, + {0x83328b37, 0xffffc1f6}, + {0x83328b38, 0xffffc1f7}, + {0x83328b39, 0xffffc1f8}, + {0x83328c30, 0xffffc1f9}, + {0x83328c31, 0xffffc1fa}, + {0x83328c32, 0xffffc1fb}, + {0x83328c33, 0xffffc1fc}, + {0x83328c34, 0xffffc1fd}, + {0x83328c35, 0xffffc1fe}, + {0x83328c36, 0xffffc1ff}, + {0x83328c37, 0xffffc200}, + {0x83328c38, 0xffffc201}, + {0x83328c39, 0xffffc202}, + {0x83328d30, 0xffffc203}, + {0x83328d31, 0xffffc204}, + {0x83328d32, 0xffffc205}, + {0x83328d33, 0xffffc206}, + {0x83328d34, 0xffffc207}, + {0x83328d35, 0xffffc208}, + {0x83328d36, 0xffffc209}, + {0x83328d37, 0xffffc20a}, + {0x83328d38, 0xffffc20b}, + {0x83328d39, 0xffffc20c}, + {0x83328e30, 0xffffc20d}, + {0x83328e31, 0xffffc20e}, + {0x83328e32, 0xffffc20f}, + {0x83328e33, 0xffffc210}, + {0x83328e34, 0xffffc211}, + {0x83328e35, 0xffffc212}, + {0x83328e36, 0xffffc213}, + {0x83328e37, 0xffffc214}, + {0x83328e38, 0xffffc215}, + {0x83328e39, 0xffffc216}, + {0x83328f30, 0xffffc217}, + {0x83328f31, 0xffffc218}, + {0x83328f32, 0xffffc219}, + {0x83328f33, 0xffffc21a}, + {0x83328f34, 0xffffc21b}, + {0x83328f35, 0xffffc21c}, + {0x83328f36, 0xffffc21d}, + {0x83328f37, 0xffffc21e}, + {0x83328f38, 0xffffc21f}, + {0x83328f39, 0xffffc220}, + {0x83329030, 0xffffc221}, + {0x83329031, 0xffffc222}, + {0x83329032, 0xffffc223}, + {0x83329033, 0xffffc224}, + {0x83329034, 0xffffc225}, + {0x83329035, 0xffffc226}, + {0x83329036, 0xffffc227}, + {0x83329037, 0xffffc228}, + {0x83329038, 0xffffc229}, + {0x83329039, 0xffffc22a}, + {0x83329130, 0xffffc22b}, + {0x83329131, 0xffffc22c}, + {0x83329132, 0xffffc22d}, + {0x83329133, 0xffffc22e}, + {0x83329134, 0xffffc22f}, + {0x83329135, 0xffffc230}, + {0x83329136, 0xffffc231}, + {0x83329137, 0xffffc232}, + {0x83329138, 0xffffc233}, + {0x83329139, 0xffffc234}, + {0x83329230, 0xffffc235}, + {0x83329231, 0xffffc236}, + {0x83329232, 0xffffc237}, + {0x83329233, 0xffffc238}, + {0x83329234, 0xffffc239}, + {0x83329235, 0xffffc23a}, + {0x83329236, 0xffffc23b}, + {0x83329237, 0xffffc23c}, + {0x83329238, 0xffffc23d}, + {0x83329239, 0xffffc23e}, + {0x83329330, 0xffffc23f}, + {0x83329331, 0xffffc240}, + {0x83329332, 0xffffc241}, + {0x83329333, 0xffffc242}, + {0x83329334, 0xffffc243}, + {0x83329335, 0xffffc244}, + {0x83329336, 0xffffc245}, + {0x83329337, 0xffffc246}, + {0x83329338, 0xffffc247}, + {0x83329339, 0xffffc248}, + {0x83329430, 0xffffc249}, + {0x83329431, 0xffffc24a}, + {0x83329432, 0xffffc24b}, + {0x83329433, 0xffffc24c}, + {0x83329434, 0xffffc24d}, + {0x83329435, 0xffffc24e}, + {0x83329436, 0xffffc24f}, + {0x83329437, 0xffffc250}, + {0x83329438, 0xffffc251}, + {0x83329439, 0xffffc252}, + {0x83329530, 0xffffc253}, + {0x83329531, 0xffffc254}, + {0x83329532, 0xffffc255}, + {0x83329533, 0xffffc256}, + {0x83329534, 0xffffc257}, + {0x83329535, 0xffffc258}, + {0x83329536, 0xffffc259}, + {0x83329537, 0xffffc25a}, + {0x83329538, 0xffffc25b}, + {0x83329539, 0xffffc25c}, + {0x83329630, 0xffffc25d}, + {0x83329631, 0xffffc25e}, + {0x83329632, 0xffffc25f}, + {0x83329633, 0xffffc260}, + {0x83329634, 0xffffc261}, + {0x83329635, 0xffffc262}, + {0x83329636, 0xffffc263}, + {0x83329637, 0xffffc264}, + {0x83329638, 0xffffc265}, + {0x83329639, 0xffffc266}, + {0x83329730, 0xffffc267}, + {0x83329731, 0xffffc268}, + {0x83329732, 0xffffc269}, + {0x83329733, 0xffffc26a}, + {0x83329734, 0xffffc26b}, + {0x83329735, 0xffffc26c}, + {0x83329736, 0xffffc26d}, + {0x83329737, 0xffffc26e}, + {0x83329738, 0xffffc26f}, + {0x83329739, 0xffffc270}, + {0x83329830, 0xffffc271}, + {0x83329831, 0xffffc272}, + {0x83329832, 0xffffc273}, + {0x83329833, 0xffffc274}, + {0x83329834, 0xffffc275}, + {0x83329835, 0xffffc276}, + {0x83329836, 0xffffc277}, + {0x83329837, 0xffffc278}, + {0x83329838, 0xffffc279}, + {0x83329839, 0xffffc27a}, + {0x83329930, 0xffffc27b}, + {0x83329931, 0xffffc27c}, + {0x83329932, 0xffffc27d}, + {0x83329933, 0xffffc27e}, + {0x83329934, 0xffffc27f}, + {0x83329935, 0xffffc280}, + {0x83329936, 0xffffc281}, + {0x83329937, 0xffffc282}, + {0x83329938, 0xffffc283}, + {0x83329939, 0xffffc284}, + {0x83329a30, 0xffffc285}, + {0x83329a31, 0xffffc286}, + {0x83329a32, 0xffffc287}, + {0x83329a33, 0xffffc288}, + {0x83329a34, 0xffffc289}, + {0x83329a35, 0xffffc28a}, + {0x83329a36, 0xffffc28b}, + {0x83329a37, 0xffffc28c}, + {0x83329a38, 0xffffc28d}, + {0x83329a39, 0xffffc28e}, + {0x83329b30, 0xffffc28f}, + {0x83329b31, 0xffffc290}, + {0x83329b32, 0xffffc291}, + {0x83329b33, 0xffffc292}, + {0x83329b34, 0xffffc293}, + {0x83329b35, 0xffffc294}, + {0x83329b36, 0xffffc295}, + {0x83329b37, 0xffffc296}, + {0x83329b38, 0xffffc297}, + {0x83329b39, 0xffffc298}, + {0x83329c30, 0xffffc299}, + {0x83329c31, 0xffffc29a}, + {0x83329c32, 0xffffc29b}, + {0x83329c33, 0xffffc29c}, + {0x83329c34, 0xffffc29d}, + {0x83329c35, 0xffffc29e}, + {0x83329c36, 0xffffc29f}, + {0x83329c37, 0xffffc2a0}, + {0x83329c38, 0xffffc2a1}, + {0x83329c39, 0xffffc2a2}, + {0x83329d30, 0xffffc2a3}, + {0x83329d31, 0xffffc2a4}, + {0x83329d32, 0xffffc2a5}, + {0x83329d33, 0xffffc2a6}, + {0x83329d34, 0xffffc2a7}, + {0x83329d35, 0xffffc2a8}, + {0x83329d36, 0xffffc2a9}, + {0x83329d37, 0xffffc2aa}, + {0x83329d38, 0xffffc2ab}, + {0x83329d39, 0xffffc2ac}, + {0x83329e30, 0xffffc2ad}, + {0x83329e31, 0xffffc2ae}, + {0x83329e32, 0xffffc2af}, + {0x83329e33, 0xffffc2b0}, + {0x83329e34, 0xffffc2b1}, + {0x83329e35, 0xffffc2b2}, + {0x83329e36, 0xffffc2b3}, + {0x83329e37, 0xffffc2b4}, + {0x83329e38, 0xffffc2b5}, + {0x83329e39, 0xffffc2b6}, + {0x83329f30, 0xffffc2b7}, + {0x83329f31, 0xffffc2b8}, + {0x83329f32, 0xffffc2b9}, + {0x83329f33, 0xffffc2ba}, + {0x83329f34, 0xffffc2bb}, + {0x83329f35, 0xffffc2bc}, + {0x83329f36, 0xffffc2bd}, + {0x83329f37, 0xffffc2be}, + {0x83329f38, 0xffffc2bf}, + {0x83329f39, 0xffffc2c0}, + {0x8332a030, 0xffffc2c1}, + {0x8332a031, 0xffffc2c2}, + {0x8332a032, 0xffffc2c3}, + {0x8332a033, 0xffffc2c4}, + {0x8332a034, 0xffffc2c5}, + {0x8332a035, 0xffffc2c6}, + {0x8332a036, 0xffffc2c7}, + {0x8332a037, 0xffffc2c8}, + {0x8332a038, 0xffffc2c9}, + {0x8332a039, 0xffffc2ca}, + {0x8332a130, 0xffffc2cb}, + {0x8332a131, 0xffffc2cc}, + {0x8332a132, 0xffffc2cd}, + {0x8332a133, 0xffffc2ce}, + {0x8332a134, 0xffffc2cf}, + {0x8332a135, 0xffffc2d0}, + {0x8332a136, 0xffffc2d1}, + {0x8332a137, 0xffffc2d2}, + {0x8332a138, 0xffffc2d3}, + {0x8332a139, 0xffffc2d4}, + {0x8332a230, 0xffffc2d5}, + {0x8332a231, 0xffffc2d6}, + {0x8332a232, 0xffffc2d7}, + {0x8332a233, 0xffffc2d8}, + {0x8332a234, 0xffffc2d9}, + {0x8332a235, 0xffffc2da}, + {0x8332a236, 0xffffc2db}, + {0x8332a237, 0xffffc2dc}, + {0x8332a238, 0xffffc2dd}, + {0x8332a239, 0xffffc2de}, + {0x8332a330, 0xffffc2df}, + {0x8332a331, 0xffffc2e0}, + {0x8332a332, 0xffffc2e1}, + {0x8332a333, 0xffffc2e2}, + {0x8332a334, 0xffffc2e3}, + {0x8332a335, 0xffffc2e4}, + {0x8332a336, 0xffffc2e5}, + {0x8332a337, 0xffffc2e6}, + {0x8332a338, 0xffffc2e7}, + {0x8332a339, 0xffffc2e8}, + {0x8332a430, 0xffffc2e9}, + {0x8332a431, 0xffffc2ea}, + {0x8332a432, 0xffffc2eb}, + {0x8332a433, 0xffffc2ec}, + {0x8332a434, 0xffffc2ed}, + {0x8332a435, 0xffffc2ee}, + {0x8332a436, 0xffffc2ef}, + {0x8332a437, 0xffffc2f0}, + {0x8332a438, 0xffffc2f1}, + {0x8332a439, 0xffffc2f2}, + {0x8332a530, 0xffffc2f3}, + {0x8332a531, 0xffffc2f4}, + {0x8332a532, 0xffffc2f5}, + {0x8332a533, 0xffffc2f6}, + {0x8332a534, 0xffffc2f7}, + {0x8332a535, 0xffffc2f8}, + {0x8332a536, 0xffffc2f9}, + {0x8332a537, 0xffffc2fa}, + {0x8332a538, 0xffffc2fb}, + {0x8332a539, 0xffffc2fc}, + {0x8332a630, 0xffffc2fd}, + {0x8332a631, 0xffffc2fe}, + {0x8332a632, 0xffffc2ff}, + {0x8332a633, 0xffffc300}, + {0x8332a634, 0xffffc301}, + {0x8332a635, 0xffffc302}, + {0x8332a636, 0xffffc303}, + {0x8332a637, 0xffffc304}, + {0x8332a638, 0xffffc305}, + {0x8332a639, 0xffffc306}, + {0x8332a730, 0xffffc307}, + {0x8332a731, 0xffffc308}, + {0x8332a732, 0xffffc309}, + {0x8332a733, 0xffffc30a}, + {0x8332a734, 0xffffc30b}, + {0x8332a735, 0xffffc30c}, + {0x8332a736, 0xffffc30d}, + {0x8332a737, 0xffffc30e}, + {0x8332a738, 0xffffc30f}, + {0x8332a739, 0xffffc310}, + {0x8332a830, 0xffffc311}, + {0x8332a831, 0xffffc312}, + {0x8332a832, 0xffffc313}, + {0x8332a833, 0xffffc314}, + {0x8332a834, 0xffffc315}, + {0x8332a835, 0xffffc316}, + {0x8332a836, 0xffffc317}, + {0x8332a837, 0xffffc318}, + {0x8332a838, 0xffffc319}, + {0x8332a839, 0xffffc31a}, + {0x8332a930, 0xffffc31b}, + {0x8332a931, 0xffffc31c}, + {0x8332a932, 0xffffc31d}, + {0x8332a933, 0xffffc31e}, + {0x8332a934, 0xffffc31f}, + {0x8332a935, 0xffffc320}, + {0x8332a936, 0xffffc321}, + {0x8332a937, 0xffffc322}, + {0x8332a938, 0xffffc323}, + {0x8332a939, 0xffffc324}, + {0x8332aa30, 0xffffc325}, + {0x8332aa31, 0xffffc326}, + {0x8332aa32, 0xffffc327}, + {0x8332aa33, 0xffffc328}, + {0x8332aa34, 0xffffc329}, + {0x8332aa35, 0xffffc32a}, + {0x8332aa36, 0xffffc32b}, + {0x8332aa37, 0xffffc32c}, + {0x8332aa38, 0xffffc32d}, + {0x8332aa39, 0xffffc32e}, + {0x8332ab30, 0xffffc32f}, + {0x8332ab31, 0xffffc330}, + {0x8332ab32, 0xffffc331}, + {0x8332ab33, 0xffffc332}, + {0x8332ab34, 0xffffc333}, + {0x8332ab35, 0xffffc334}, + {0x8332ab36, 0xffffc335}, + {0x8332ab37, 0xffffc336}, + {0x8332ab38, 0xffffc337}, + {0x8332ab39, 0xffffc338}, + {0x8332ac30, 0xffffc339}, + {0x8332ac31, 0xffffc33a}, + {0x8332ac32, 0xffffc33b}, + {0x8332ac33, 0xffffc33c}, + {0x8332ac34, 0xffffc33d}, + {0x8332ac35, 0xffffc33e}, + {0x8332ac36, 0xffffc33f}, + {0x8332ac37, 0xffffc340}, + {0x8332ac38, 0xffffc341}, + {0x8332ac39, 0xffffc342}, + {0x8332ad30, 0xffffc343}, + {0x8332ad31, 0xffffc344}, + {0x8332ad32, 0xffffc345}, + {0x8332ad33, 0xffffc346}, + {0x8332ad34, 0xffffc347}, + {0x8332ad35, 0xffffc348}, + {0x8332ad36, 0xffffc349}, + {0x8332ad37, 0xffffc34a}, + {0x8332ad38, 0xffffc34b}, + {0x8332ad39, 0xffffc34c}, + {0x8332ae30, 0xffffc34d}, + {0x8332ae31, 0xffffc34e}, + {0x8332ae32, 0xffffc34f}, + {0x8332ae33, 0xffffc350}, + {0x8332ae34, 0xffffc351}, + {0x8332ae35, 0xffffc352}, + {0x8332ae36, 0xffffc353}, + {0x8332ae37, 0xffffc354}, + {0x8332ae38, 0xffffc355}, + {0x8332ae39, 0xffffc356}, + {0x8332af30, 0xffffc357}, + {0x8332af31, 0xffffc358}, + {0x8332af32, 0xffffc359}, + {0x8332af33, 0xffffc35a}, + {0x8332af34, 0xffffc35b}, + {0x8332af35, 0xffffc35c}, + {0x8332af36, 0xffffc35d}, + {0x8332af37, 0xffffc35e}, + {0x8332af38, 0xffffc35f}, + {0x8332af39, 0xffffc360}, + {0x8332b030, 0xffffc361}, + {0x8332b031, 0xffffc362}, + {0x8332b032, 0xffffc363}, + {0x8332b033, 0xffffc364}, + {0x8332b034, 0xffffc365}, + {0x8332b035, 0xffffc366}, + {0x8332b036, 0xffffc367}, + {0x8332b037, 0xffffc368}, + {0x8332b038, 0xffffc369}, + {0x8332b039, 0xffffc36a}, + {0x8332b130, 0xffffc36b}, + {0x8332b131, 0xffffc36c}, + {0x8332b132, 0xffffc36d}, + {0x8332b133, 0xffffc36e}, + {0x8332b134, 0xffffc36f}, + {0x8332b135, 0xffffc370}, + {0x8332b136, 0xffffc371}, + {0x8332b137, 0xffffc372}, + {0x8332b138, 0xffffc373}, + {0x8332b139, 0xffffc374}, + {0x8332b230, 0xffffc375}, + {0x8332b231, 0xffffc376}, + {0x8332b232, 0xffffc377}, + {0x8332b233, 0xffffc378}, + {0x8332b234, 0xffffc379}, + {0x8332b235, 0xffffc37a}, + {0x8332b236, 0xffffc37b}, + {0x8332b237, 0xffffc37c}, + {0x8332b238, 0xffffc37d}, + {0x8332b239, 0xffffc37e}, + {0x8332b330, 0xffffc37f}, + {0x8332b331, 0xffffc380}, + {0x8332b332, 0xffffc381}, + {0x8332b333, 0xffffc382}, + {0x8332b334, 0xffffc383}, + {0x8332b335, 0xffffc384}, + {0x8332b336, 0xffffc385}, + {0x8332b337, 0xffffc386}, + {0x8332b338, 0xffffc387}, + {0x8332b339, 0xffffc388}, + {0x8332b430, 0xffffc389}, + {0x8332b431, 0xffffc38a}, + {0x8332b432, 0xffffc38b}, + {0x8332b433, 0xffffc38c}, + {0x8332b434, 0xffffc38d}, + {0x8332b435, 0xffffc38e}, + {0x8332b436, 0xffffc38f}, + {0x8332b437, 0xffffc390}, + {0x8332b438, 0xffffc391}, + {0x8332b439, 0xffffc392}, + {0x8332b530, 0xffffc393}, + {0x8332b531, 0xffffc394}, + {0x8332b532, 0xffffc395}, + {0x8332b533, 0xffffc396}, + {0x8332b534, 0xffffc397}, + {0x8332b535, 0xffffc398}, + {0x8332b536, 0xffffc399}, + {0x8332b537, 0xffffc39a}, + {0x8332b538, 0xffffc39b}, + {0x8332b539, 0xffffc39c}, + {0x8332b630, 0xffffc39d}, + {0x8332b631, 0xffffc39e}, + {0x8332b632, 0xffffc39f}, + {0x8332b633, 0xffffc3a0}, + {0x8332b634, 0xffffc3a1}, + {0x8332b635, 0xffffc3a2}, + {0x8332b636, 0xffffc3a3}, + {0x8332b637, 0xffffc3a4}, + {0x8332b638, 0xffffc3a5}, + {0x8332b639, 0xffffc3a6}, + {0x8332b730, 0xffffc3a7}, + {0x8332b731, 0xffffc3a8}, + {0x8332b732, 0xffffc3a9}, + {0x8332b733, 0xffffc3aa}, + {0x8332b734, 0xffffc3ab}, + {0x8332b735, 0xffffc3ac}, + {0x8332b736, 0xffffc3ad}, + {0x8332b737, 0xffffc3ae}, + {0x8332b738, 0xffffc3af}, + {0x8332b739, 0xffffc3b0}, + {0x8332b830, 0xffffc3b1}, + {0x8332b831, 0xffffc3b2}, + {0x8332b832, 0xffffc3b3}, + {0x8332b833, 0xffffc3b4}, + {0x8332b834, 0xffffc3b5}, + {0x8332b835, 0xffffc3b6}, + {0x8332b836, 0xffffc3b7}, + {0x8332b837, 0xffffc3b8}, + {0x8332b838, 0xffffc3b9}, + {0x8332b839, 0xffffc3ba}, + {0x8332b930, 0xffffc3bb}, + {0x8332b931, 0xffffc3bc}, + {0x8332b932, 0xffffc3bd}, + {0x8332b933, 0xffffc3be}, + {0x8332b934, 0xffffc3bf}, + {0x8332b935, 0xffffc3c0}, + {0x8332b936, 0xffffc3c1}, + {0x8332b937, 0xffffc3c2}, + {0x8332b938, 0xffffc3c3}, + {0x8332b939, 0xffffc3c4}, + {0x8332ba30, 0xffffc3c5}, + {0x8332ba31, 0xffffc3c6}, + {0x8332ba32, 0xffffc3c7}, + {0x8332ba33, 0xffffc3c8}, + {0x8332ba34, 0xffffc3c9}, + {0x8332ba35, 0xffffc3ca}, + {0x8332ba36, 0xffffc3cb}, + {0x8332ba37, 0xffffc3cc}, + {0x8332ba38, 0xffffc3cd}, + {0x8332ba39, 0xffffc3ce}, + {0x8332bb30, 0xffffc3cf}, + {0x8332bb31, 0xffffc3d0}, + {0x8332bb32, 0xffffc3d1}, + {0x8332bb33, 0xffffc3d2}, + {0x8332bb34, 0xffffc3d3}, + {0x8332bb35, 0xffffc3d4}, + {0x8332bb36, 0xffffc3d5}, + {0x8332bb37, 0xffffc3d6}, + {0x8332bb38, 0xffffc3d7}, + {0x8332bb39, 0xffffc3d8}, + {0x8332bc30, 0xffffc3d9}, + {0x8332bc31, 0xffffc3da}, + {0x8332bc32, 0xffffc3db}, + {0x8332bc33, 0xffffc3dc}, + {0x8332bc34, 0xffffc3dd}, + {0x8332bc35, 0xffffc3de}, + {0x8332bc36, 0xffffc3df}, + {0x8332bc37, 0xffffc3e0}, + {0x8332bc38, 0xffffc3e1}, + {0x8332bc39, 0xffffc3e2}, + {0x8332bd30, 0xffffc3e3}, + {0x8332bd31, 0xffffc3e4}, + {0x8332bd32, 0xffffc3e5}, + {0x8332bd33, 0xffffc3e6}, + {0x8332bd34, 0xffffc3e7}, + {0x8332bd35, 0xffffc3e8}, + {0x8332bd36, 0xffffc3e9}, + {0x8332bd37, 0xffffc3ea}, + {0x8332bd38, 0xffffc3eb}, + {0x8332bd39, 0xffffc3ec}, + {0x8332be30, 0xffffc3ed}, + {0x8332be31, 0xffffc3ee}, + {0x8332be32, 0xffffc3ef}, + {0x8332be33, 0xffffc3f0}, + {0x8332be34, 0xffffc3f1}, + {0x8332be35, 0xffffc3f2}, + {0x8332be36, 0xffffc3f3}, + {0x8332be37, 0xffffc3f4}, + {0x8332be38, 0xffffc3f5}, + {0x8332be39, 0xffffc3f6}, + {0x8332bf30, 0xffffc3f7}, + {0x8332bf31, 0xffffc3f8}, + {0x8332bf32, 0xffffc3f9}, + {0x8332bf33, 0xffffc3fa}, + {0x8332bf34, 0xffffc3fb}, + {0x8332bf35, 0xffffc3fc}, + {0x8332bf36, 0xffffc3fd}, + {0x8332bf37, 0xffffc3fe}, + {0x8332bf38, 0xffffc3ff}, + {0x8332bf39, 0xffffc400}, + {0x8332c030, 0xffffc401}, + {0x8332c031, 0xffffc402}, + {0x8332c032, 0xffffc403}, + {0x8332c033, 0xffffc404}, + {0x8332c034, 0xffffc405}, + {0x8332c035, 0xffffc406}, + {0x8332c036, 0xffffc407}, + {0x8332c037, 0xffffc408}, + {0x8332c038, 0xffffc409}, + {0x8332c039, 0xffffc40a}, + {0x8332c130, 0xffffc40b}, + {0x8332c131, 0xffffc40c}, + {0x8332c132, 0xffffc40d}, + {0x8332c133, 0xffffc40e}, + {0x8332c134, 0xffffc40f}, + {0x8332c135, 0xffffc410}, + {0x8332c136, 0xffffc411}, + {0x8332c137, 0xffffc412}, + {0x8332c138, 0xffffc413}, + {0x8332c139, 0xffffc414}, + {0x8332c230, 0xffffc415}, + {0x8332c231, 0xffffc416}, + {0x8332c232, 0xffffc417}, + {0x8332c233, 0xffffc418}, + {0x8332c234, 0xffffc419}, + {0x8332c235, 0xffffc41a}, + {0x8332c236, 0xffffc41b}, + {0x8332c237, 0xffffc41c}, + {0x8332c238, 0xffffc41d}, + {0x8332c239, 0xffffc41e}, + {0x8332c330, 0xffffc41f}, + {0x8332c331, 0xffffc420}, + {0x8332c332, 0xffffc421}, + {0x8332c333, 0xffffc422}, + {0x8332c334, 0xffffc423}, + {0x8332c335, 0xffffc424}, + {0x8332c336, 0xffffc425}, + {0x8332c337, 0xffffc426}, + {0x8332c338, 0xffffc427}, + {0x8332c339, 0xffffc428}, + {0x8332c430, 0xffffc429}, + {0x8332c431, 0xffffc42a}, + {0x8332c432, 0xffffc42b}, + {0x8332c433, 0xffffc42c}, + {0x8332c434, 0xffffc42d}, + {0x8332c435, 0xffffc42e}, + {0x8332c436, 0xffffc42f}, + {0x8332c437, 0xffffc430}, + {0x8332c438, 0xffffc431}, + {0x8332c439, 0xffffc432}, + {0x8332c530, 0xffffc433}, + {0x8332c531, 0xffffc434}, + {0x8332c532, 0xffffc435}, + {0x8332c533, 0xffffc436}, + {0x8332c534, 0xffffc437}, + {0x8332c535, 0xffffc438}, + {0x8332c536, 0xffffc439}, + {0x8332c537, 0xffffc43a}, + {0x8332c538, 0xffffc43b}, + {0x8332c539, 0xffffc43c}, + {0x8332c630, 0xffffc43d}, + {0x8332c631, 0xffffc43e}, + {0x8332c632, 0xffffc43f}, + {0x8332c633, 0xffffc440}, + {0x8332c634, 0xffffc441}, + {0x8332c635, 0xffffc442}, + {0x8332c636, 0xffffc443}, + {0x8332c637, 0xffffc444}, + {0x8332c638, 0xffffc445}, + {0x8332c639, 0xffffc446}, + {0x8332c730, 0xffffc447}, + {0x8332c731, 0xffffc448}, + {0x8332c732, 0xffffc449}, + {0x8332c733, 0xffffc44a}, + {0x8332c734, 0xffffc44b}, + {0x8332c735, 0xffffc44c}, + {0x8332c736, 0xffffc44d}, + {0x8332c737, 0xffffc44e}, + {0x8332c738, 0xffffc44f}, + {0x8332c739, 0xffffc450}, + {0x8332c830, 0xffffc451}, + {0x8332c831, 0xffffc452}, + {0x8332c832, 0xffffc453}, + {0x8332c833, 0xffffc454}, + {0x8332c834, 0xffffc455}, + {0x8332c835, 0xffffc456}, + {0x8332c836, 0xffffc457}, + {0x8332c837, 0xffffc458}, + {0x8332c838, 0xffffc459}, + {0x8332c839, 0xffffc45a}, + {0x8332c930, 0xffffc45b}, + {0x8332c931, 0xffffc45c}, + {0x8332c932, 0xffffc45d}, + {0x8332c933, 0xffffc45e}, + {0x8332c934, 0xffffc45f}, + {0x8332c935, 0xffffc460}, + {0x8332c936, 0xffffc461}, + {0x8332c937, 0xffffc462}, + {0x8332c938, 0xffffc463}, + {0x8332c939, 0xffffc464}, + {0x8332ca30, 0xffffc465}, + {0x8332ca31, 0xffffc466}, + {0x8332ca32, 0xffffc467}, + {0x8332ca33, 0xffffc468}, + {0x8332ca34, 0xffffc469}, + {0x8332ca35, 0xffffc46a}, + {0x8332ca36, 0xffffc46b}, + {0x8332ca37, 0xffffc46c}, + {0x8332ca38, 0xffffc46d}, + {0x8332ca39, 0xffffc46e}, + {0x8332cb30, 0xffffc46f}, + {0x8332cb31, 0xffffc470}, + {0x8332cb32, 0xffffc471}, + {0x8332cb33, 0xffffc472}, + {0x8332cb34, 0xffffc473}, + {0x8332cb35, 0xffffc474}, + {0x8332cb36, 0xffffc475}, + {0x8332cb37, 0xffffc476}, + {0x8332cb38, 0xffffc477}, + {0x8332cb39, 0xffffc478}, + {0x8332cc30, 0xffffc479}, + {0x8332cc31, 0xffffc47a}, + {0x8332cc32, 0xffffc47b}, + {0x8332cc33, 0xffffc47c}, + {0x8332cc34, 0xffffc47d}, + {0x8332cc35, 0xffffc47e}, + {0x8332cc36, 0xffffc47f}, + {0x8332cc37, 0xffffc480}, + {0x8332cc38, 0xffffc481}, + {0x8332cc39, 0xffffc482}, + {0x8332cd30, 0xffffc483}, + {0x8332cd31, 0xffffc484}, + {0x8332cd32, 0xffffc485}, + {0x8332cd33, 0xffffc486}, + {0x8332cd34, 0xffffc487}, + {0x8332cd35, 0xffffc488}, + {0x8332cd36, 0xffffc489}, + {0x8332cd37, 0xffffc48a}, + {0x8332cd38, 0xffffc48b}, + {0x8332cd39, 0xffffc48c}, + {0x8332ce30, 0xffffc48d}, + {0x8332ce31, 0xffffc48e}, + {0x8332ce32, 0xffffc48f}, + {0x8332ce33, 0xffffc490}, + {0x8332ce34, 0xffffc491}, + {0x8332ce35, 0xffffc492}, + {0x8332ce36, 0xffffc493}, + {0x8332ce37, 0xffffc494}, + {0x8332ce38, 0xffffc495}, + {0x8332ce39, 0xffffc496}, + {0x8332cf30, 0xffffc497}, + {0x8332cf31, 0xffffc498}, + {0x8332cf32, 0xffffc499}, + {0x8332cf33, 0xffffc49a}, + {0x8332cf34, 0xffffc49b}, + {0x8332cf35, 0xffffc49c}, + {0x8332cf36, 0xffffc49d}, + {0x8332cf37, 0xffffc49e}, + {0x8332cf38, 0xffffc49f}, + {0x8332cf39, 0xffffc4a0}, + {0x8332d030, 0xffffc4a1}, + {0x8332d031, 0xffffc4a2}, + {0x8332d032, 0xffffc4a3}, + {0x8332d033, 0xffffc4a4}, + {0x8332d034, 0xffffc4a5}, + {0x8332d035, 0xffffc4a6}, + {0x8332d036, 0xffffc4a7}, + {0x8332d037, 0xffffc4a8}, + {0x8332d038, 0xffffc4a9}, + {0x8332d039, 0xffffc4aa}, + {0x8332d130, 0xffffc4ab}, + {0x8332d131, 0xffffc4ac}, + {0x8332d132, 0xffffc4ad}, + {0x8332d133, 0xffffc4ae}, + {0x8332d134, 0xffffc4af}, + {0x8332d135, 0xffffc4b0}, + {0x8332d136, 0xffffc4b1}, + {0x8332d137, 0xffffc4b2}, + {0x8332d138, 0xffffc4b3}, + {0x8332d139, 0xffffc4b4}, + {0x8332d230, 0xffffc4b5}, + {0x8332d231, 0xffffc4b6}, + {0x8332d232, 0xffffc4b7}, + {0x8332d233, 0xffffc4b8}, + {0x8332d234, 0xffffc4b9}, + {0x8332d235, 0xffffc4ba}, + {0x8332d236, 0xffffc4bb}, + {0x8332d237, 0xffffc4bc}, + {0x8332d238, 0xffffc4bd}, + {0x8332d239, 0xffffc4be}, + {0x8332d330, 0xffffc4bf}, + {0x8332d331, 0xffffc4c0}, + {0x8332d332, 0xffffc4c1}, + {0x8332d333, 0xffffc4c2}, + {0x8332d334, 0xffffc4c3}, + {0x8332d335, 0xffffc4c4}, + {0x8332d336, 0xffffc4c5}, + {0x8332d337, 0xffffc4c6}, + {0x8332d338, 0xffffc4c7}, + {0x8332d339, 0xffffc4c8}, + {0x8332d430, 0xffffc4c9}, + {0x8332d431, 0xffffc4ca}, + {0x8332d432, 0xffffc4cb}, + {0x8332d433, 0xffffc4cc}, + {0x8332d434, 0xffffc4cd}, + {0x8332d435, 0xffffc4ce}, + {0x8332d436, 0xffffc4cf}, + {0x8332d437, 0xffffc4d0}, + {0x8332d438, 0xffffc4d1}, + {0x8332d439, 0xffffc4d2}, + {0x8332d530, 0xffffc4d3}, + {0x8332d531, 0xffffc4d4}, + {0x8332d532, 0xffffc4d5}, + {0x8332d533, 0xffffc4d6}, + {0x8332d534, 0xffffc4d7}, + {0x8332d535, 0xffffc4d8}, + {0x8332d536, 0xffffc4d9}, + {0x8332d537, 0xffffc4da}, + {0x8332d538, 0xffffc4db}, + {0x8332d539, 0xffffc4dc}, + {0x8332d630, 0xffffc4dd}, + {0x8332d631, 0xffffc4de}, + {0x8332d632, 0xffffc4df}, + {0x8332d633, 0xffffc4e0}, + {0x8332d634, 0xffffc4e1}, + {0x8332d635, 0xffffc4e2}, + {0x8332d636, 0xffffc4e3}, + {0x8332d637, 0xffffc4e4}, + {0x8332d638, 0xffffc4e5}, + {0x8332d639, 0xffffc4e6}, + {0x8332d730, 0xffffc4e7}, + {0x8332d731, 0xffffc4e8}, + {0x8332d732, 0xffffc4e9}, + {0x8332d733, 0xffffc4ea}, + {0x8332d734, 0xffffc4eb}, + {0x8332d735, 0xffffc4ec}, + {0x8332d736, 0xffffc4ed}, + {0x8332d737, 0xffffc4ee}, + {0x8332d738, 0xffffc4ef}, + {0x8332d739, 0xffffc4f0}, + {0x8332d830, 0xffffc4f1}, + {0x8332d831, 0xffffc4f2}, + {0x8332d832, 0xffffc4f3}, + {0x8332d833, 0xffffc4f4}, + {0x8332d834, 0xffffc4f5}, + {0x8332d835, 0xffffc4f6}, + {0x8332d836, 0xffffc4f7}, + {0x8332d837, 0xffffc4f8}, + {0x8332d838, 0xffffc4f9}, + {0x8332d839, 0xffffc4fa}, + {0x8332d930, 0xffffc4fb}, + {0x8332d931, 0xffffc4fc}, + {0x8332d932, 0xffffc4fd}, + {0x8332d933, 0xffffc4fe}, + {0x8332d934, 0xffffc4ff}, + {0x8332d935, 0xffffc500}, + {0x8332d936, 0xffffc501}, + {0x8332d937, 0xffffc502}, + {0x8332d938, 0xffffc503}, + {0x8332d939, 0xffffc504}, + {0x8332da30, 0xffffc505}, + {0x8332da31, 0xffffc506}, + {0x8332da32, 0xffffc507}, + {0x8332da33, 0xffffc508}, + {0x8332da34, 0xffffc509}, + {0x8332da35, 0xffffc50a}, + {0x8332da36, 0xffffc50b}, + {0x8332da37, 0xffffc50c}, + {0x8332da38, 0xffffc50d}, + {0x8332da39, 0xffffc50e}, + {0x8332db30, 0xffffc50f}, + {0x8332db31, 0xffffc510}, + {0x8332db32, 0xffffc511}, + {0x8332db33, 0xffffc512}, + {0x8332db34, 0xffffc513}, + {0x8332db35, 0xffffc514}, + {0x8332db36, 0xffffc515}, + {0x8332db37, 0xffffc516}, + {0x8332db38, 0xffffc517}, + {0x8332db39, 0xffffc518}, + {0x8332dc30, 0xffffc519}, + {0x8332dc31, 0xffffc51a}, + {0x8332dc32, 0xffffc51b}, + {0x8332dc33, 0xffffc51c}, + {0x8332dc34, 0xffffc51d}, + {0x8332dc35, 0xffffc51e}, + {0x8332dc36, 0xffffc51f}, + {0x8332dc37, 0xffffc520}, + {0x8332dc38, 0xffffc521}, + {0x8332dc39, 0xffffc522}, + {0x8332dd30, 0xffffc523}, + {0x8332dd31, 0xffffc524}, + {0x8332dd32, 0xffffc525}, + {0x8332dd33, 0xffffc526}, + {0x8332dd34, 0xffffc527}, + {0x8332dd35, 0xffffc528}, + {0x8332dd36, 0xffffc529}, + {0x8332dd37, 0xffffc52a}, + {0x8332dd38, 0xffffc52b}, + {0x8332dd39, 0xffffc52c}, + {0x8332de30, 0xffffc52d}, + {0x8332de31, 0xffffc52e}, + {0x8332de32, 0xffffc52f}, + {0x8332de33, 0xffffc530}, + {0x8332de34, 0xffffc531}, + {0x8332de35, 0xffffc532}, + {0x8332de36, 0xffffc533}, + {0x8332de37, 0xffffc534}, + {0x8332de38, 0xffffc535}, + {0x8332de39, 0xffffc536}, + {0x8332df30, 0xffffc537}, + {0x8332df31, 0xffffc538}, + {0x8332df32, 0xffffc539}, + {0x8332df33, 0xffffc53a}, + {0x8332df34, 0xffffc53b}, + {0x8332df35, 0xffffc53c}, + {0x8332df36, 0xffffc53d}, + {0x8332df37, 0xffffc53e}, + {0x8332df38, 0xffffc53f}, + {0x8332df39, 0xffffc540}, + {0x8332e030, 0xffffc541}, + {0x8332e031, 0xffffc542}, + {0x8332e032, 0xffffc543}, + {0x8332e033, 0xffffc544}, + {0x8332e034, 0xffffc545}, + {0x8332e035, 0xffffc546}, + {0x8332e036, 0xffffc547}, + {0x8332e037, 0xffffc548}, + {0x8332e038, 0xffffc549}, + {0x8332e039, 0xffffc54a}, + {0x8332e130, 0xffffc54b}, + {0x8332e131, 0xffffc54c}, + {0x8332e132, 0xffffc54d}, + {0x8332e133, 0xffffc54e}, + {0x8332e134, 0xffffc54f}, + {0x8332e135, 0xffffc550}, + {0x8332e136, 0xffffc551}, + {0x8332e137, 0xffffc552}, + {0x8332e138, 0xffffc553}, + {0x8332e139, 0xffffc554}, + {0x8332e230, 0xffffc555}, + {0x8332e231, 0xffffc556}, + {0x8332e232, 0xffffc557}, + {0x8332e233, 0xffffc558}, + {0x8332e234, 0xffffc559}, + {0x8332e235, 0xffffc55a}, + {0x8332e236, 0xffffc55b}, + {0x8332e237, 0xffffc55c}, + {0x8332e238, 0xffffc55d}, + {0x8332e239, 0xffffc55e}, + {0x8332e330, 0xffffc55f}, + {0x8332e331, 0xffffc560}, + {0x8332e332, 0xffffc561}, + {0x8332e333, 0xffffc562}, + {0x8332e334, 0xffffc563}, + {0x8332e335, 0xffffc564}, + {0x8332e336, 0xffffc565}, + {0x8332e337, 0xffffc566}, + {0x8332e338, 0xffffc567}, + {0x8332e339, 0xffffc568}, + {0x8332e430, 0xffffc569}, + {0x8332e431, 0xffffc56a}, + {0x8332e432, 0xffffc56b}, + {0x8332e433, 0xffffc56c}, + {0x8332e434, 0xffffc56d}, + {0x8332e435, 0xffffc56e}, + {0x8332e436, 0xffffc56f}, + {0x8332e437, 0xffffc570}, + {0x8332e438, 0xffffc571}, + {0x8332e439, 0xffffc572}, + {0x8332e530, 0xffffc573}, + {0x8332e531, 0xffffc574}, + {0x8332e532, 0xffffc575}, + {0x8332e533, 0xffffc576}, + {0x8332e534, 0xffffc577}, + {0x8332e535, 0xffffc578}, + {0x8332e536, 0xffffc579}, + {0x8332e537, 0xffffc57a}, + {0x8332e538, 0xffffc57b}, + {0x8332e539, 0xffffc57c}, + {0x8332e630, 0xffffc57d}, + {0x8332e631, 0xffffc57e}, + {0x8332e632, 0xffffc57f}, + {0x8332e633, 0xffffc580}, + {0x8332e634, 0xffffc581}, + {0x8332e635, 0xffffc582}, + {0x8332e636, 0xffffc583}, + {0x8332e637, 0xffffc584}, + {0x8332e638, 0xffffc585}, + {0x8332e639, 0xffffc586}, + {0x8332e730, 0xffffc587}, + {0x8332e731, 0xffffc588}, + {0x8332e732, 0xffffc589}, + {0x8332e733, 0xffffc58a}, + {0x8332e734, 0xffffc58b}, + {0x8332e735, 0xffffc58c}, + {0x8332e736, 0xffffc58d}, + {0x8332e737, 0xffffc58e}, + {0x8332e738, 0xffffc58f}, + {0x8332e739, 0xffffc590}, + {0x8332e830, 0xffffc591}, + {0x8332e831, 0xffffc592}, + {0x8332e832, 0xffffc593}, + {0x8332e833, 0xffffc594}, + {0x8332e834, 0xffffc595}, + {0x8332e835, 0xffffc596}, + {0x8332e836, 0xffffc597}, + {0x8332e837, 0xffffc598}, + {0x8332e838, 0xffffc599}, + {0x8332e839, 0xffffc59a}, + {0x8332e930, 0xffffc59b}, + {0x8332e931, 0xffffc59c}, + {0x8332e932, 0xffffc59d}, + {0x8332e933, 0xffffc59e}, + {0x8332e934, 0xffffc59f}, + {0x8332e935, 0xffffc5a0}, + {0x8332e936, 0xffffc5a1}, + {0x8332e937, 0xffffc5a2}, + {0x8332e938, 0xffffc5a3}, + {0x8332e939, 0xffffc5a4}, + {0x8332ea30, 0xffffc5a5}, + {0x8332ea31, 0xffffc5a6}, + {0x8332ea32, 0xffffc5a7}, + {0x8332ea33, 0xffffc5a8}, + {0x8332ea34, 0xffffc5a9}, + {0x8332ea35, 0xffffc5aa}, + {0x8332ea36, 0xffffc5ab}, + {0x8332ea37, 0xffffc5ac}, + {0x8332ea38, 0xffffc5ad}, + {0x8332ea39, 0xffffc5ae}, + {0x8332eb30, 0xffffc5af}, + {0x8332eb31, 0xffffc5b0}, + {0x8332eb32, 0xffffc5b1}, + {0x8332eb33, 0xffffc5b2}, + {0x8332eb34, 0xffffc5b3}, + {0x8332eb35, 0xffffc5b4}, + {0x8332eb36, 0xffffc5b5}, + {0x8332eb37, 0xffffc5b6}, + {0x8332eb38, 0xffffc5b7}, + {0x8332eb39, 0xffffc5b8}, + {0x8332ec30, 0xffffc5b9}, + {0x8332ec31, 0xffffc5ba}, + {0x8332ec32, 0xffffc5bb}, + {0x8332ec33, 0xffffc5bc}, + {0x8332ec34, 0xffffc5bd}, + {0x8332ec35, 0xffffc5be}, + {0x8332ec36, 0xffffc5bf}, + {0x8332ec37, 0xffffc5c0}, + {0x8332ec38, 0xffffc5c1}, + {0x8332ec39, 0xffffc5c2}, + {0x8332ed30, 0xffffc5c3}, + {0x8332ed31, 0xffffc5c4}, + {0x8332ed32, 0xffffc5c5}, + {0x8332ed33, 0xffffc5c6}, + {0x8332ed34, 0xffffc5c7}, + {0x8332ed35, 0xffffc5c8}, + {0x8332ed36, 0xffffc5c9}, + {0x8332ed37, 0xffffc5ca}, + {0x8332ed38, 0xffffc5cb}, + {0x8332ed39, 0xffffc5cc}, + {0x8332ee30, 0xffffc5cd}, + {0x8332ee31, 0xffffc5ce}, + {0x8332ee32, 0xffffc5cf}, + {0x8332ee33, 0xffffc5d0}, + {0x8332ee34, 0xffffc5d1}, + {0x8332ee35, 0xffffc5d2}, + {0x8332ee36, 0xffffc5d3}, + {0x8332ee37, 0xffffc5d4}, + {0x8332ee38, 0xffffc5d5}, + {0x8332ee39, 0xffffc5d6}, + {0x8332ef30, 0xffffc5d7}, + {0x8332ef31, 0xffffc5d8}, + {0x8332ef32, 0xffffc5d9}, + {0x8332ef33, 0xffffc5da}, + {0x8332ef34, 0xffffc5db}, + {0x8332ef35, 0xffffc5dc}, + {0x8332ef36, 0xffffc5dd}, + {0x8332ef37, 0xffffc5de}, + {0x8332ef38, 0xffffc5df}, + {0x8332ef39, 0xffffc5e0}, + {0x8332f030, 0xffffc5e1}, + {0x8332f031, 0xffffc5e2}, + {0x8332f032, 0xffffc5e3}, + {0x8332f033, 0xffffc5e4}, + {0x8332f034, 0xffffc5e5}, + {0x8332f035, 0xffffc5e6}, + {0x8332f036, 0xffffc5e7}, + {0x8332f037, 0xffffc5e8}, + {0x8332f038, 0xffffc5e9}, + {0x8332f039, 0xffffc5ea}, + {0x8332f130, 0xffffc5eb}, + {0x8332f131, 0xffffc5ec}, + {0x8332f132, 0xffffc5ed}, + {0x8332f133, 0xffffc5ee}, + {0x8332f134, 0xffffc5ef}, + {0x8332f135, 0xffffc5f0}, + {0x8332f136, 0xffffc5f1}, + {0x8332f137, 0xffffc5f2}, + {0x8332f138, 0xffffc5f3}, + {0x8332f139, 0xffffc5f4}, + {0x8332f230, 0xffffc5f5}, + {0x8332f231, 0xffffc5f6}, + {0x8332f232, 0xffffc5f7}, + {0x8332f233, 0xffffc5f8}, + {0x8332f234, 0xffffc5f9}, + {0x8332f235, 0xffffc5fa}, + {0x8332f236, 0xffffc5fb}, + {0x8332f237, 0xffffc5fc}, + {0x8332f238, 0xffffc5fd}, + {0x8332f239, 0xffffc5fe}, + {0x8332f330, 0xffffc5ff}, + {0x8332f331, 0xffffc600}, + {0x8332f332, 0xffffc601}, + {0x8332f333, 0xffffc602}, + {0x8332f334, 0xffffc603}, + {0x8332f335, 0xffffc604}, + {0x8332f336, 0xffffc605}, + {0x8332f337, 0xffffc606}, + {0x8332f338, 0xffffc607}, + {0x8332f339, 0xffffc608}, + {0x8332f430, 0xffffc609}, + {0x8332f431, 0xffffc60a}, + {0x8332f432, 0xffffc60b}, + {0x8332f433, 0xffffc60c}, + {0x8332f434, 0xffffc60d}, + {0x8332f435, 0xffffc60e}, + {0x8332f436, 0xffffc60f}, + {0x8332f437, 0xffffc610}, + {0x8332f438, 0xffffc611}, + {0x8332f439, 0xffffc612}, + {0x8332f530, 0xffffc613}, + {0x8332f531, 0xffffc614}, + {0x8332f532, 0xffffc615}, + {0x8332f533, 0xffffc616}, + {0x8332f534, 0xffffc617}, + {0x8332f535, 0xffffc618}, + {0x8332f536, 0xffffc619}, + {0x8332f537, 0xffffc61a}, + {0x8332f538, 0xffffc61b}, + {0x8332f539, 0xffffc61c}, + {0x8332f630, 0xffffc61d}, + {0x8332f631, 0xffffc61e}, + {0x8332f632, 0xffffc61f}, + {0x8332f633, 0xffffc620}, + {0x8332f634, 0xffffc621}, + {0x8332f635, 0xffffc622}, + {0x8332f636, 0xffffc623}, + {0x8332f637, 0xffffc624}, + {0x8332f638, 0xffffc625}, + {0x8332f639, 0xffffc626}, + {0x8332f730, 0xffffc627}, + {0x8332f731, 0xffffc628}, + {0x8332f732, 0xffffc629}, + {0x8332f733, 0xffffc62a}, + {0x8332f734, 0xffffc62b}, + {0x8332f735, 0xffffc62c}, + {0x8332f736, 0xffffc62d}, + {0x8332f737, 0xffffc62e}, + {0x8332f738, 0xffffc62f}, + {0x8332f739, 0xffffc630}, + {0x8332f830, 0xffffc631}, + {0x8332f831, 0xffffc632}, + {0x8332f832, 0xffffc633}, + {0x8332f833, 0xffffc634}, + {0x8332f834, 0xffffc635}, + {0x8332f835, 0xffffc636}, + {0x8332f836, 0xffffc637}, + {0x8332f837, 0xffffc638}, + {0x8332f838, 0xffffc639}, + {0x8332f839, 0xffffc63a}, + {0x8332f930, 0xffffc63b}, + {0x8332f931, 0xffffc63c}, + {0x8332f932, 0xffffc63d}, + {0x8332f933, 0xffffc63e}, + {0x8332f934, 0xffffc63f}, + {0x8332f935, 0xffffc640}, + {0x8332f936, 0xffffc641}, + {0x8332f937, 0xffffc642}, + {0x8332f938, 0xffffc643}, + {0x8332f939, 0xffffc644}, + {0x8332fa30, 0xffffc645}, + {0x8332fa31, 0xffffc646}, + {0x8332fa32, 0xffffc647}, + {0x8332fa33, 0xffffc648}, + {0x8332fa34, 0xffffc649}, + {0x8332fa35, 0xffffc64a}, + {0x8332fa36, 0xffffc64b}, + {0x8332fa37, 0xffffc64c}, + {0x8332fa38, 0xffffc64d}, + {0x8332fa39, 0xffffc64e}, + {0x8332fb30, 0xffffc64f}, + {0x8332fb31, 0xffffc650}, + {0x8332fb32, 0xffffc651}, + {0x8332fb33, 0xffffc652}, + {0x8332fb34, 0xffffc653}, + {0x8332fb35, 0xffffc654}, + {0x8332fb36, 0xffffc655}, + {0x8332fb37, 0xffffc656}, + {0x8332fb38, 0xffffc657}, + {0x8332fb39, 0xffffc658}, + {0x8332fc30, 0xffffc659}, + {0x8332fc31, 0xffffc65a}, + {0x8332fc32, 0xffffc65b}, + {0x8332fc33, 0xffffc65c}, + {0x8332fc34, 0xffffc65d}, + {0x8332fc35, 0xffffc65e}, + {0x8332fc36, 0xffffc65f}, + {0x8332fc37, 0xffffc660}, + {0x8332fc38, 0xffffc661}, + {0x8332fc39, 0xffffc662}, + {0x8332fd30, 0xffffc663}, + {0x8332fd31, 0xffffc664}, + {0x8332fd32, 0xffffc665}, + {0x8332fd33, 0xffffc666}, + {0x8332fd34, 0xffffc667}, + {0x8332fd35, 0xffffc668}, + {0x8332fd36, 0xffffc669}, + {0x8332fd37, 0xffffc66a}, + {0x8332fd38, 0xffffc66b}, + {0x8332fd39, 0xffffc66c}, + {0x8332fe30, 0xffffc66d}, + {0x8332fe31, 0xffffc66e}, + {0x8332fe32, 0xffffc66f}, + {0x8332fe33, 0xffffc670}, + {0x8332fe34, 0xffffc671}, + {0x8332fe35, 0xffffc672}, + {0x8332fe36, 0xffffc673}, + {0x8332fe37, 0xffffc674}, + {0x8332fe38, 0xffffc675}, + {0x8332fe39, 0xffffc676}, + {0x83338130, 0xffffc677}, + {0x83338131, 0xffffc678}, + {0x83338132, 0xffffc679}, + {0x83338133, 0xffffc67a}, + {0x83338134, 0xffffc67b}, + {0x83338135, 0xffffc67c}, + {0x83338136, 0xffffc67d}, + {0x83338137, 0xffffc67e}, + {0x83338138, 0xffffc67f}, + {0x83338139, 0xffffc680}, + {0x83338230, 0xffffc681}, + {0x83338231, 0xffffc682}, + {0x83338232, 0xffffc683}, + {0x83338233, 0xffffc684}, + {0x83338234, 0xffffc685}, + {0x83338235, 0xffffc686}, + {0x83338236, 0xffffc687}, + {0x83338237, 0xffffc688}, + {0x83338238, 0xffffc689}, + {0x83338239, 0xffffc68a}, + {0x83338330, 0xffffc68b}, + {0x83338331, 0xffffc68c}, + {0x83338332, 0xffffc68d}, + {0x83338333, 0xffffc68e}, + {0x83338334, 0xffffc68f}, + {0x83338335, 0xffffc690}, + {0x83338336, 0xffffc691}, + {0x83338337, 0xffffc692}, + {0x83338338, 0xffffc693}, + {0x83338339, 0xffffc694}, + {0x83338430, 0xffffc695}, + {0x83338431, 0xffffc696}, + {0x83338432, 0xffffc697}, + {0x83338433, 0xffffc698}, + {0x83338434, 0xffffc699}, + {0x83338435, 0xffffc69a}, + {0x83338436, 0xffffc69b}, + {0x83338437, 0xffffc69c}, + {0x83338438, 0xffffc69d}, + {0x83338439, 0xffffc69e}, + {0x83338530, 0xffffc69f}, + {0x83338531, 0xffffc6a0}, + {0x83338532, 0xffffc6a1}, + {0x83338533, 0xffffc6a2}, + {0x83338534, 0xffffc6a3}, + {0x83338535, 0xffffc6a4}, + {0x83338536, 0xffffc6a5}, + {0x83338537, 0xffffc6a6}, + {0x83338538, 0xffffc6a7}, + {0x83338539, 0xffffc6a8}, + {0x83338630, 0xffffc6a9}, + {0x83338631, 0xffffc6aa}, + {0x83338632, 0xffffc6ab}, + {0x83338633, 0xffffc6ac}, + {0x83338634, 0xffffc6ad}, + {0x83338635, 0xffffc6ae}, + {0x83338636, 0xffffc6af}, + {0x83338637, 0xffffc6b0}, + {0x83338638, 0xffffc6b1}, + {0x83338639, 0xffffc6b2}, + {0x83338730, 0xffffc6b3}, + {0x83338731, 0xffffc6b4}, + {0x83338732, 0xffffc6b5}, + {0x83338733, 0xffffc6b6}, + {0x83338734, 0xffffc6b7}, + {0x83338735, 0xffffc6b8}, + {0x83338736, 0xffffc6b9}, + {0x83338737, 0xffffc6ba}, + {0x83338738, 0xffffc6bb}, + {0x83338739, 0xffffc6bc}, + {0x83338830, 0xffffc6bd}, + {0x83338831, 0xffffc6be}, + {0x83338832, 0xffffc6bf}, + {0x83338833, 0xffffc6c0}, + {0x83338834, 0xffffc6c1}, + {0x83338835, 0xffffc6c2}, + {0x83338836, 0xffffc6c3}, + {0x83338837, 0xffffc6c4}, + {0x83338838, 0xffffc6c5}, + {0x83338839, 0xffffc6c6}, + {0x83338930, 0xffffc6c7}, + {0x83338931, 0xffffc6c8}, + {0x83338932, 0xffffc6c9}, + {0x83338933, 0xffffc6ca}, + {0x83338934, 0xffffc6cb}, + {0x83338935, 0xffffc6cc}, + {0x83338936, 0xffffc6cd}, + {0x83338937, 0xffffc6ce}, + {0x83338938, 0xffffc6cf}, + {0x83338939, 0xffffc6d0}, + {0x83338a30, 0xffffc6d1}, + {0x83338a31, 0xffffc6d2}, + {0x83338a32, 0xffffc6d3}, + {0x83338a33, 0xffffc6d4}, + {0x83338a34, 0xffffc6d5}, + {0x83338a35, 0xffffc6d6}, + {0x83338a36, 0xffffc6d7}, + {0x83338a37, 0xffffc6d8}, + {0x83338a38, 0xffffc6d9}, + {0x83338a39, 0xffffc6da}, + {0x83338b30, 0xffffc6db}, + {0x83338b31, 0xffffc6dc}, + {0x83338b32, 0xffffc6dd}, + {0x83338b33, 0xffffc6de}, + {0x83338b34, 0xffffc6df}, + {0x83338b35, 0xffffc6e0}, + {0x83338b36, 0xffffc6e1}, + {0x83338b37, 0xffffc6e2}, + {0x83338b38, 0xffffc6e3}, + {0x83338b39, 0xffffc6e4}, + {0x83338c30, 0xffffc6e5}, + {0x83338c31, 0xffffc6e6}, + {0x83338c32, 0xffffc6e7}, + {0x83338c33, 0xffffc6e8}, + {0x83338c34, 0xffffc6e9}, + {0x83338c35, 0xffffc6ea}, + {0x83338c36, 0xffffc6eb}, + {0x83338c37, 0xffffc6ec}, + {0x83338c38, 0xffffc6ed}, + {0x83338c39, 0xffffc6ee}, + {0x83338d30, 0xffffc6ef}, + {0x83338d31, 0xffffc6f0}, + {0x83338d32, 0xffffc6f1}, + {0x83338d33, 0xffffc6f2}, + {0x83338d34, 0xffffc6f3}, + {0x83338d35, 0xffffc6f4}, + {0x83338d36, 0xffffc6f5}, + {0x83338d37, 0xffffc6f6}, + {0x83338d38, 0xffffc6f7}, + {0x83338d39, 0xffffc6f8}, + {0x83338e30, 0xffffc6f9}, + {0x83338e31, 0xffffc6fa}, + {0x83338e32, 0xffffc6fb}, + {0x83338e33, 0xffffc6fc}, + {0x83338e34, 0xffffc6fd}, + {0x83338e35, 0xffffc6fe}, + {0x83338e36, 0xffffc6ff}, + {0x83338e37, 0xffffc700}, + {0x83338e38, 0xffffc701}, + {0x83338e39, 0xffffc702}, + {0x83338f30, 0xffffc703}, + {0x83338f31, 0xffffc704}, + {0x83338f32, 0xffffc705}, + {0x83338f33, 0xffffc706}, + {0x83338f34, 0xffffc707}, + {0x83338f35, 0xffffc708}, + {0x83338f36, 0xffffc709}, + {0x83338f37, 0xffffc70a}, + {0x83338f38, 0xffffc70b}, + {0x83338f39, 0xffffc70c}, + {0x83339030, 0xffffc70d}, + {0x83339031, 0xffffc70e}, + {0x83339032, 0xffffc70f}, + {0x83339033, 0xffffc710}, + {0x83339034, 0xffffc711}, + {0x83339035, 0xffffc712}, + {0x83339036, 0xffffc713}, + {0x83339037, 0xffffc714}, + {0x83339038, 0xffffc715}, + {0x83339039, 0xffffc716}, + {0x83339130, 0xffffc717}, + {0x83339131, 0xffffc718}, + {0x83339132, 0xffffc719}, + {0x83339133, 0xffffc71a}, + {0x83339134, 0xffffc71b}, + {0x83339135, 0xffffc71c}, + {0x83339136, 0xffffc71d}, + {0x83339137, 0xffffc71e}, + {0x83339138, 0xffffc71f}, + {0x83339139, 0xffffc720}, + {0x83339230, 0xffffc721}, + {0x83339231, 0xffffc722}, + {0x83339232, 0xffffc723}, + {0x83339233, 0xffffc724}, + {0x83339234, 0xffffc725}, + {0x83339235, 0xffffc726}, + {0x83339236, 0xffffc727}, + {0x83339237, 0xffffc728}, + {0x83339238, 0xffffc729}, + {0x83339239, 0xffffc72a}, + {0x83339330, 0xffffc72b}, + {0x83339331, 0xffffc72c}, + {0x83339332, 0xffffc72d}, + {0x83339333, 0xffffc72e}, + {0x83339334, 0xffffc72f}, + {0x83339335, 0xffffc730}, + {0x83339336, 0xffffc731}, + {0x83339337, 0xffffc732}, + {0x83339338, 0xffffc733}, + {0x83339339, 0xffffc734}, + {0x83339430, 0xffffc735}, + {0x83339431, 0xffffc736}, + {0x83339432, 0xffffc737}, + {0x83339433, 0xffffc738}, + {0x83339434, 0xffffc739}, + {0x83339435, 0xffffc73a}, + {0x83339436, 0xffffc73b}, + {0x83339437, 0xffffc73c}, + {0x83339438, 0xffffc73d}, + {0x83339439, 0xffffc73e}, + {0x83339530, 0xffffc73f}, + {0x83339531, 0xffffc740}, + {0x83339532, 0xffffc741}, + {0x83339533, 0xffffc742}, + {0x83339534, 0xffffc743}, + {0x83339535, 0xffffc744}, + {0x83339536, 0xffffc745}, + {0x83339537, 0xffffc746}, + {0x83339538, 0xffffc747}, + {0x83339539, 0xffffc748}, + {0x83339630, 0xffffc749}, + {0x83339631, 0xffffc74a}, + {0x83339632, 0xffffc74b}, + {0x83339633, 0xffffc74c}, + {0x83339634, 0xffffc74d}, + {0x83339635, 0xffffc74e}, + {0x83339636, 0xffffc74f}, + {0x83339637, 0xffffc750}, + {0x83339638, 0xffffc751}, + {0x83339639, 0xffffc752}, + {0x83339730, 0xffffc753}, + {0x83339731, 0xffffc754}, + {0x83339732, 0xffffc755}, + {0x83339733, 0xffffc756}, + {0x83339734, 0xffffc757}, + {0x83339735, 0xffffc758}, + {0x83339736, 0xffffc759}, + {0x83339737, 0xffffc75a}, + {0x83339738, 0xffffc75b}, + {0x83339739, 0xffffc75c}, + {0x83339830, 0xffffc75d}, + {0x83339831, 0xffffc75e}, + {0x83339832, 0xffffc75f}, + {0x83339833, 0xffffc760}, + {0x83339834, 0xffffc761}, + {0x83339835, 0xffffc762}, + {0x83339836, 0xffffc763}, + {0x83339837, 0xffffc764}, + {0x83339838, 0xffffc765}, + {0x83339839, 0xffffc766}, + {0x83339930, 0xffffc767}, + {0x83339931, 0xffffc768}, + {0x83339932, 0xffffc769}, + {0x83339933, 0xffffc76a}, + {0x83339934, 0xffffc76b}, + {0x83339935, 0xffffc76c}, + {0x83339936, 0xffffc76d}, + {0x83339937, 0xffffc76e}, + {0x83339938, 0xffffc76f}, + {0x83339939, 0xffffc770}, + {0x83339a30, 0xffffc771}, + {0x83339a31, 0xffffc772}, + {0x83339a32, 0xffffc773}, + {0x83339a33, 0xffffc774}, + {0x83339a34, 0xffffc775}, + {0x83339a35, 0xffffc776}, + {0x83339a36, 0xffffc777}, + {0x83339a37, 0xffffc778}, + {0x83339a38, 0xffffc779}, + {0x83339a39, 0xffffc77a}, + {0x83339b30, 0xffffc77b}, + {0x83339b31, 0xffffc77c}, + {0x83339b32, 0xffffc77d}, + {0x83339b33, 0xffffc77e}, + {0x83339b34, 0xffffc77f}, + {0x83339b35, 0xffffc780}, + {0x83339b36, 0xffffc781}, + {0x83339b37, 0xffffc782}, + {0x83339b38, 0xffffc783}, + {0x83339b39, 0xffffc784}, + {0x83339c30, 0xffffc785}, + {0x83339c31, 0xffffc786}, + {0x83339c32, 0xffffc787}, + {0x83339c33, 0xffffc788}, + {0x83339c34, 0xffffc789}, + {0x83339c35, 0xffffc78a}, + {0x83339c36, 0xffffc78b}, + {0x83339c37, 0xffffc78c}, + {0x83339c38, 0xffffc78d}, + {0x83339c39, 0xffffc78e}, + {0x83339d30, 0xffffc78f}, + {0x83339d31, 0xffffc790}, + {0x83339d32, 0xffffc791}, + {0x83339d33, 0xffffc792}, + {0x83339d34, 0xffffc793}, + {0x83339d35, 0xffffc794}, + {0x83339d36, 0xffffc795}, + {0x83339d37, 0xffffc796}, + {0x83339d38, 0xffffc797}, + {0x83339d39, 0xffffc798}, + {0x83339e30, 0xffffc799}, + {0x83339e31, 0xffffc79a}, + {0x83339e32, 0xffffc79b}, + {0x83339e33, 0xffffc79c}, + {0x83339e34, 0xffffc79d}, + {0x83339e35, 0xffffc79e}, + {0x83339e36, 0xffffc79f}, + {0x83339e37, 0xffffc7a0}, + {0x83339e38, 0xffffc7a1}, + {0x83339e39, 0xffffc7a2}, + {0x83339f30, 0xffffc7a3}, + {0x83339f31, 0xffffc7a4}, + {0x83339f32, 0xffffc7a5}, + {0x83339f33, 0xffffc7a6}, + {0x83339f34, 0xffffc7a7}, + {0x83339f35, 0xffffc7a8}, + {0x83339f36, 0xffffc7a9}, + {0x83339f37, 0xffffc7aa}, + {0x83339f38, 0xffffc7ab}, + {0x83339f39, 0xffffc7ac}, + {0x8333a030, 0xffffc7ad}, + {0x8333a031, 0xffffc7ae}, + {0x8333a032, 0xffffc7af}, + {0x8333a033, 0xffffc7b0}, + {0x8333a034, 0xffffc7b1}, + {0x8333a035, 0xffffc7b2}, + {0x8333a036, 0xffffc7b3}, + {0x8333a037, 0xffffc7b4}, + {0x8333a038, 0xffffc7b5}, + {0x8333a039, 0xffffc7b6}, + {0x8333a130, 0xffffc7b7}, + {0x8333a131, 0xffffc7b8}, + {0x8333a132, 0xffffc7b9}, + {0x8333a133, 0xffffc7ba}, + {0x8333a134, 0xffffc7bb}, + {0x8333a135, 0xffffc7bc}, + {0x8333a136, 0xffffc7bd}, + {0x8333a137, 0xffffc7be}, + {0x8333a138, 0xffffc7bf}, + {0x8333a139, 0xffffc7c0}, + {0x8333a230, 0xffffc7c1}, + {0x8333a231, 0xffffc7c2}, + {0x8333a232, 0xffffc7c3}, + {0x8333a233, 0xffffc7c4}, + {0x8333a234, 0xffffc7c5}, + {0x8333a235, 0xffffc7c6}, + {0x8333a236, 0xffffc7c7}, + {0x8333a237, 0xffffc7c8}, + {0x8333a238, 0xffffc7c9}, + {0x8333a239, 0xffffc7ca}, + {0x8333a330, 0xffffc7cb}, + {0x8333a331, 0xffffc7cc}, + {0x8333a332, 0xffffc7cd}, + {0x8333a333, 0xffffc7ce}, + {0x8333a334, 0xffffc7cf}, + {0x8333a335, 0xffffc7d0}, + {0x8333a336, 0xffffc7d1}, + {0x8333a337, 0xffffc7d2}, + {0x8333a338, 0xffffc7d3}, + {0x8333a339, 0xffffc7d4}, + {0x8333a430, 0xffffc7d5}, + {0x8333a431, 0xffffc7d6}, + {0x8333a432, 0xffffc7d7}, + {0x8333a433, 0xffffc7d8}, + {0x8333a434, 0xffffc7d9}, + {0x8333a435, 0xffffc7da}, + {0x8333a436, 0xffffc7db}, + {0x8333a437, 0xffffc7dc}, + {0x8333a438, 0xffffc7dd}, + {0x8333a439, 0xffffc7de}, + {0x8333a530, 0xffffc7df}, + {0x8333a531, 0xffffc7e0}, + {0x8333a532, 0xffffc7e1}, + {0x8333a533, 0xffffc7e2}, + {0x8333a534, 0xffffc7e3}, + {0x8333a535, 0xffffc7e4}, + {0x8333a536, 0xffffc7e5}, + {0x8333a537, 0xffffc7e6}, + {0x8333a538, 0xffffc7e7}, + {0x8333a539, 0xffffc7e8}, + {0x8333a630, 0xffffc7e9}, + {0x8333a631, 0xffffc7ea}, + {0x8333a632, 0xffffc7eb}, + {0x8333a633, 0xffffc7ec}, + {0x8333a634, 0xffffc7ed}, + {0x8333a635, 0xffffc7ee}, + {0x8333a636, 0xffffc7ef}, + {0x8333a637, 0xffffc7f0}, + {0x8333a638, 0xffffc7f1}, + {0x8333a639, 0xffffc7f2}, + {0x8333a730, 0xffffc7f3}, + {0x8333a731, 0xffffc7f4}, + {0x8333a732, 0xffffc7f5}, + {0x8333a733, 0xffffc7f6}, + {0x8333a734, 0xffffc7f7}, + {0x8333a735, 0xffffc7f8}, + {0x8333a736, 0xffffc7f9}, + {0x8333a737, 0xffffc7fa}, + {0x8333a738, 0xffffc7fb}, + {0x8333a739, 0xffffc7fc}, + {0x8333a830, 0xffffc7fd}, + {0x8333a831, 0xffffc7fe}, + {0x8333a832, 0xffffc7ff}, + {0x8333a833, 0xffffc800}, + {0x8333a834, 0xffffc801}, + {0x8333a835, 0xffffc802}, + {0x8333a836, 0xffffc803}, + {0x8333a837, 0xffffc804}, + {0x8333a838, 0xffffc805}, + {0x8333a839, 0xffffc806}, + {0x8333a930, 0xffffc807}, + {0x8333a931, 0xffffc808}, + {0x8333a932, 0xffffc809}, + {0x8333a933, 0xffffc80a}, + {0x8333a934, 0xffffc80b}, + {0x8333a935, 0xffffc80c}, + {0x8333a936, 0xffffc80d}, + {0x8333a937, 0xffffc80e}, + {0x8333a938, 0xffffc80f}, + {0x8333a939, 0xffffc810}, + {0x8333aa30, 0xffffc811}, + {0x8333aa31, 0xffffc812}, + {0x8333aa32, 0xffffc813}, + {0x8333aa33, 0xffffc814}, + {0x8333aa34, 0xffffc815}, + {0x8333aa35, 0xffffc816}, + {0x8333aa36, 0xffffc817}, + {0x8333aa37, 0xffffc818}, + {0x8333aa38, 0xffffc819}, + {0x8333aa39, 0xffffc81a}, + {0x8333ab30, 0xffffc81b}, + {0x8333ab31, 0xffffc81c}, + {0x8333ab32, 0xffffc81d}, + {0x8333ab33, 0xffffc81e}, + {0x8333ab34, 0xffffc81f}, + {0x8333ab35, 0xffffc820}, + {0x8333ab36, 0xffffc821}, + {0x8333ab37, 0xffffc822}, + {0x8333ab38, 0xffffc823}, + {0x8333ab39, 0xffffc824}, + {0x8333ac30, 0xffffc825}, + {0x8333ac31, 0xffffc826}, + {0x8333ac32, 0xffffc827}, + {0x8333ac33, 0xffffc828}, + {0x8333ac34, 0xffffc829}, + {0x8333ac35, 0xffffc82a}, + {0x8333ac36, 0xffffc82b}, + {0x8333ac37, 0xffffc82c}, + {0x8333ac38, 0xffffc82d}, + {0x8333ac39, 0xffffc82e}, + {0x8333ad30, 0xffffc82f}, + {0x8333ad31, 0xffffc830}, + {0x8333ad32, 0xffffc831}, + {0x8333ad33, 0xffffc832}, + {0x8333ad34, 0xffffc833}, + {0x8333ad35, 0xffffc834}, + {0x8333ad36, 0xffffc835}, + {0x8333ad37, 0xffffc836}, + {0x8333ad38, 0xffffc837}, + {0x8333ad39, 0xffffc838}, + {0x8333ae30, 0xffffc839}, + {0x8333ae31, 0xffffc83a}, + {0x8333ae32, 0xffffc83b}, + {0x8333ae33, 0xffffc83c}, + {0x8333ae34, 0xffffc83d}, + {0x8333ae35, 0xffffc83e}, + {0x8333ae36, 0xffffc83f}, + {0x8333ae37, 0xffffc840}, + {0x8333ae38, 0xffffc841}, + {0x8333ae39, 0xffffc842}, + {0x8333af30, 0xffffc843}, + {0x8333af31, 0xffffc844}, + {0x8333af32, 0xffffc845}, + {0x8333af33, 0xffffc846}, + {0x8333af34, 0xffffc847}, + {0x8333af35, 0xffffc848}, + {0x8333af36, 0xffffc849}, + {0x8333af37, 0xffffc84a}, + {0x8333af38, 0xffffc84b}, + {0x8333af39, 0xffffc84c}, + {0x8333b030, 0xffffc84d}, + {0x8333b031, 0xffffc84e}, + {0x8333b032, 0xffffc84f}, + {0x8333b033, 0xffffc850}, + {0x8333b034, 0xffffc851}, + {0x8333b035, 0xffffc852}, + {0x8333b036, 0xffffc853}, + {0x8333b037, 0xffffc854}, + {0x8333b038, 0xffffc855}, + {0x8333b039, 0xffffc856}, + {0x8333b130, 0xffffc857}, + {0x8333b131, 0xffffc858}, + {0x8333b132, 0xffffc859}, + {0x8333b133, 0xffffc85a}, + {0x8333b134, 0xffffc85b}, + {0x8333b135, 0xffffc85c}, + {0x8333b136, 0xffffc85d}, + {0x8333b137, 0xffffc85e}, + {0x8333b138, 0xffffc85f}, + {0x8333b139, 0xffffc860}, + {0x8333b230, 0xffffc861}, + {0x8333b231, 0xffffc862}, + {0x8333b232, 0xffffc863}, + {0x8333b233, 0xffffc864}, + {0x8333b234, 0xffffc865}, + {0x8333b235, 0xffffc866}, + {0x8333b236, 0xffffc867}, + {0x8333b237, 0xffffc868}, + {0x8333b238, 0xffffc869}, + {0x8333b239, 0xffffc86a}, + {0x8333b330, 0xffffc86b}, + {0x8333b331, 0xffffc86c}, + {0x8333b332, 0xffffc86d}, + {0x8333b333, 0xffffc86e}, + {0x8333b334, 0xffffc86f}, + {0x8333b335, 0xffffc870}, + {0x8333b336, 0xffffc871}, + {0x8333b337, 0xffffc872}, + {0x8333b338, 0xffffc873}, + {0x8333b339, 0xffffc874}, + {0x8333b430, 0xffffc875}, + {0x8333b431, 0xffffc876}, + {0x8333b432, 0xffffc877}, + {0x8333b433, 0xffffc878}, + {0x8333b434, 0xffffc879}, + {0x8333b435, 0xffffc87a}, + {0x8333b436, 0xffffc87b}, + {0x8333b437, 0xffffc87c}, + {0x8333b438, 0xffffc87d}, + {0x8333b439, 0xffffc87e}, + {0x8333b530, 0xffffc87f}, + {0x8333b531, 0xffffc880}, + {0x8333b532, 0xffffc881}, + {0x8333b533, 0xffffc882}, + {0x8333b534, 0xffffc883}, + {0x8333b535, 0xffffc884}, + {0x8333b536, 0xffffc885}, + {0x8333b537, 0xffffc886}, + {0x8333b538, 0xffffc887}, + {0x8333b539, 0xffffc888}, + {0x8333b630, 0xffffc889}, + {0x8333b631, 0xffffc88a}, + {0x8333b632, 0xffffc88b}, + {0x8333b633, 0xffffc88c}, + {0x8333b634, 0xffffc88d}, + {0x8333b635, 0xffffc88e}, + {0x8333b636, 0xffffc88f}, + {0x8333b637, 0xffffc890}, + {0x8333b638, 0xffffc891}, + {0x8333b639, 0xffffc892}, + {0x8333b730, 0xffffc893}, + {0x8333b731, 0xffffc894}, + {0x8333b732, 0xffffc895}, + {0x8333b733, 0xffffc896}, + {0x8333b734, 0xffffc897}, + {0x8333b735, 0xffffc898}, + {0x8333b736, 0xffffc899}, + {0x8333b737, 0xffffc89a}, + {0x8333b738, 0xffffc89b}, + {0x8333b739, 0xffffc89c}, + {0x8333b830, 0xffffc89d}, + {0x8333b831, 0xffffc89e}, + {0x8333b832, 0xffffc89f}, + {0x8333b833, 0xffffc8a0}, + {0x8333b834, 0xffffc8a1}, + {0x8333b835, 0xffffc8a2}, + {0x8333b836, 0xffffc8a3}, + {0x8333b837, 0xffffc8a4}, + {0x8333b838, 0xffffc8a5}, + {0x8333b839, 0xffffc8a6}, + {0x8333b930, 0xffffc8a7}, + {0x8333b931, 0xffffc8a8}, + {0x8333b932, 0xffffc8a9}, + {0x8333b933, 0xffffc8aa}, + {0x8333b934, 0xffffc8ab}, + {0x8333b935, 0xffffc8ac}, + {0x8333b936, 0xffffc8ad}, + {0x8333b937, 0xffffc8ae}, + {0x8333b938, 0xffffc8af}, + {0x8333b939, 0xffffc8b0}, + {0x8333ba30, 0xffffc8b1}, + {0x8333ba31, 0xffffc8b2}, + {0x8333ba32, 0xffffc8b3}, + {0x8333ba33, 0xffffc8b4}, + {0x8333ba34, 0xffffc8b5}, + {0x8333ba35, 0xffffc8b6}, + {0x8333ba36, 0xffffc8b7}, + {0x8333ba37, 0xffffc8b8}, + {0x8333ba38, 0xffffc8b9}, + {0x8333ba39, 0xffffc8ba}, + {0x8333bb30, 0xffffc8bb}, + {0x8333bb31, 0xffffc8bc}, + {0x8333bb32, 0xffffc8bd}, + {0x8333bb33, 0xffffc8be}, + {0x8333bb34, 0xffffc8bf}, + {0x8333bb35, 0xffffc8c0}, + {0x8333bb36, 0xffffc8c1}, + {0x8333bb37, 0xffffc8c2}, + {0x8333bb38, 0xffffc8c3}, + {0x8333bb39, 0xffffc8c4}, + {0x8333bc30, 0xffffc8c5}, + {0x8333bc31, 0xffffc8c6}, + {0x8333bc32, 0xffffc8c7}, + {0x8333bc33, 0xffffc8c8}, + {0x8333bc34, 0xffffc8c9}, + {0x8333bc35, 0xffffc8ca}, + {0x8333bc36, 0xffffc8cb}, + {0x8333bc37, 0xffffc8cc}, + {0x8333bc38, 0xffffc8cd}, + {0x8333bc39, 0xffffc8ce}, + {0x8333bd30, 0xffffc8cf}, + {0x8333bd31, 0xffffc8d0}, + {0x8333bd32, 0xffffc8d1}, + {0x8333bd33, 0xffffc8d2}, + {0x8333bd34, 0xffffc8d3}, + {0x8333bd35, 0xffffc8d4}, + {0x8333bd36, 0xffffc8d5}, + {0x8333bd37, 0xffffc8d6}, + {0x8333bd38, 0xffffc8d7}, + {0x8333bd39, 0xffffc8d8}, + {0x8333be30, 0xffffc8d9}, + {0x8333be31, 0xffffc8da}, + {0x8333be32, 0xffffc8db}, + {0x8333be33, 0xffffc8dc}, + {0x8333be34, 0xffffc8dd}, + {0x8333be35, 0xffffc8de}, + {0x8333be36, 0xffffc8df}, + {0x8333be37, 0xffffc8e0}, + {0x8333be38, 0xffffc8e1}, + {0x8333be39, 0xffffc8e2}, + {0x8333bf30, 0xffffc8e3}, + {0x8333bf31, 0xffffc8e4}, + {0x8333bf32, 0xffffc8e5}, + {0x8333bf33, 0xffffc8e6}, + {0x8333bf34, 0xffffc8e7}, + {0x8333bf35, 0xffffc8e8}, + {0x8333bf36, 0xffffc8e9}, + {0x8333bf37, 0xffffc8ea}, + {0x8333bf38, 0xffffc8eb}, + {0x8333bf39, 0xffffc8ec}, + {0x8333c030, 0xffffc8ed}, + {0x8333c031, 0xffffc8ee}, + {0x8333c032, 0xffffc8ef}, + {0x8333c033, 0xffffc8f0}, + {0x8333c034, 0xffffc8f1}, + {0x8333c035, 0xffffc8f2}, + {0x8333c036, 0xffffc8f3}, + {0x8333c037, 0xffffc8f4}, + {0x8333c038, 0xffffc8f5}, + {0x8333c039, 0xffffc8f6}, + {0x8333c130, 0xffffc8f7}, + {0x8333c131, 0xffffc8f8}, + {0x8333c132, 0xffffc8f9}, + {0x8333c133, 0xffffc8fa}, + {0x8333c134, 0xffffc8fb}, + {0x8333c135, 0xffffc8fc}, + {0x8333c136, 0xffffc8fd}, + {0x8333c137, 0xffffc8fe}, + {0x8333c138, 0xffffc8ff}, + {0x8333c139, 0xffffc900}, + {0x8333c230, 0xffffc901}, + {0x8333c231, 0xffffc902}, + {0x8333c232, 0xffffc903}, + {0x8333c233, 0xffffc904}, + {0x8333c234, 0xffffc905}, + {0x8333c235, 0xffffc906}, + {0x8333c236, 0xffffc907}, + {0x8333c237, 0xffffc908}, + {0x8333c238, 0xffffc909}, + {0x8333c239, 0xffffc90a}, + {0x8333c330, 0xffffc90b}, + {0x8333c331, 0xffffc90c}, + {0x8333c332, 0xffffc90d}, + {0x8333c333, 0xffffc90e}, + {0x8333c334, 0xffffc90f}, + {0x8333c335, 0xffffc910}, + {0x8333c336, 0xffffc911}, + {0x8333c337, 0xffffc912}, + {0x8333c338, 0xffffc913}, + {0x8333c339, 0xffffc914}, + {0x8333c430, 0xffffc915}, + {0x8333c431, 0xffffc916}, + {0x8333c432, 0xffffc917}, + {0x8333c433, 0xffffc918}, + {0x8333c434, 0xffffc919}, + {0x8333c435, 0xffffc91a}, + {0x8333c436, 0xffffc91b}, + {0x8333c437, 0xffffc91c}, + {0x8333c438, 0xffffc91d}, + {0x8333c439, 0xffffc91e}, + {0x8333c530, 0xffffc91f}, + {0x8333c531, 0xffffc920}, + {0x8333c532, 0xffffc921}, + {0x8333c533, 0xffffc922}, + {0x8333c534, 0xffffc923}, + {0x8333c535, 0xffffc924}, + {0x8333c536, 0xffffc925}, + {0x8333c537, 0xffffc926}, + {0x8333c538, 0xffffc927}, + {0x8333c539, 0xffffc928}, + {0x8333c630, 0xffffc929}, + {0x8333c631, 0xffffc92a}, + {0x8333c632, 0xffffc92b}, + {0x8333c633, 0xffffc92c}, + {0x8333c634, 0xffffc92d}, + {0x8333c635, 0xffffc92e}, + {0x8333c636, 0xffffc92f}, + {0x8333c637, 0xffffc930}, + {0x8333c638, 0xffffc931}, + {0x8333c639, 0xffffc932}, + {0x8333c730, 0xffffc933}, + {0x8333c731, 0xffffc934}, + {0x8333c732, 0xffffc935}, + {0x8333c733, 0xffffc936}, + {0x8333c734, 0xffffc937}, + {0x8333c735, 0xffffc938}, + {0x8333c736, 0xffffc939}, + {0x8333c737, 0xffffc93a}, + {0x8333c738, 0xffffc93b}, + {0x8333c739, 0xffffc93c}, + {0x8333c830, 0xffffc93d}, + {0x8333c831, 0xffffc93e}, + {0x8333c832, 0xffffc93f}, + {0x8333c833, 0xffffc940}, + {0x8333c834, 0xffffc941}, + {0x8333c835, 0xffffc942}, + {0x8333c836, 0xffffc943}, + {0x8333c837, 0xffffc944}, + {0x8333c838, 0xffffc945}, + {0x8333c839, 0xffffc946}, + {0x8333c930, 0xffffc947}, + {0x8333c931, 0xffffc948}, + {0x8333c932, 0xffffc949}, + {0x8333c933, 0xffffc94a}, + {0x8333c934, 0xffffc94b}, + {0x8333c935, 0xffffc94c}, + {0x8333c936, 0xffffc94d}, + {0x8333c937, 0xffffc94e}, + {0x8333c938, 0xffffc94f}, + {0x8333c939, 0xffffc950}, + {0x8333ca30, 0xffffc951}, + {0x8333ca31, 0xffffc952}, + {0x8333ca32, 0xffffc953}, + {0x8333ca33, 0xffffc954}, + {0x8333ca34, 0xffffc955}, + {0x8333ca35, 0xffffc956}, + {0x8333ca36, 0xffffc957}, + {0x8333ca37, 0xffffc958}, + {0x8333ca38, 0xffffc959}, + {0x8333ca39, 0xffffc95a}, + {0x8333cb30, 0xffffc95b}, + {0x8333cb31, 0xffffc95c}, + {0x8333cb32, 0xffffc95d}, + {0x8333cb33, 0xffffc95e}, + {0x8333cb34, 0xffffc95f}, + {0x8333cb35, 0xffffc960}, + {0x8333cb36, 0xffffc961}, + {0x8333cb37, 0xffffc962}, + {0x8333cb38, 0xffffc963}, + {0x8333cb39, 0xffffc964}, + {0x8333cc30, 0xffffc965}, + {0x8333cc31, 0xffffc966}, + {0x8333cc32, 0xffffc967}, + {0x8333cc33, 0xffffc968}, + {0x8333cc34, 0xffffc969}, + {0x8333cc35, 0xffffc96a}, + {0x8333cc36, 0xffffc96b}, + {0x8333cc37, 0xffffc96c}, + {0x8333cc38, 0xffffc96d}, + {0x8333cc39, 0xffffc96e}, + {0x8333cd30, 0xffffc96f}, + {0x8333cd31, 0xffffc970}, + {0x8333cd32, 0xffffc971}, + {0x8333cd33, 0xffffc972}, + {0x8333cd34, 0xffffc973}, + {0x8333cd35, 0xffffc974}, + {0x8333cd36, 0xffffc975}, + {0x8333cd37, 0xffffc976}, + {0x8333cd38, 0xffffc977}, + {0x8333cd39, 0xffffc978}, + {0x8333ce30, 0xffffc979}, + {0x8333ce31, 0xffffc97a}, + {0x8333ce32, 0xffffc97b}, + {0x8333ce33, 0xffffc97c}, + {0x8333ce34, 0xffffc97d}, + {0x8333ce35, 0xffffc97e}, + {0x8333ce36, 0xffffc97f}, + {0x8333ce37, 0xffffc980}, + {0x8333ce38, 0xffffc981}, + {0x8333ce39, 0xffffc982}, + {0x8333cf30, 0xffffc983}, + {0x8333cf31, 0xffffc984}, + {0x8333cf32, 0xffffc985}, + {0x8333cf33, 0xffffc986}, + {0x8333cf34, 0xffffc987}, + {0x8333cf35, 0xffffc988}, + {0x8333cf36, 0xffffc989}, + {0x8333cf37, 0xffffc98a}, + {0x8333cf38, 0xffffc98b}, + {0x8333cf39, 0xffffc98c}, + {0x8333d030, 0xffffc98d}, + {0x8333d031, 0xffffc98e}, + {0x8333d032, 0xffffc98f}, + {0x8333d033, 0xffffc990}, + {0x8333d034, 0xffffc991}, + {0x8333d035, 0xffffc992}, + {0x8333d036, 0xffffc993}, + {0x8333d037, 0xffffc994}, + {0x8333d038, 0xffffc995}, + {0x8333d039, 0xffffc996}, + {0x8333d130, 0xffffc997}, + {0x8333d131, 0xffffc998}, + {0x8333d132, 0xffffc999}, + {0x8333d133, 0xffffc99a}, + {0x8333d134, 0xffffc99b}, + {0x8333d135, 0xffffc99c}, + {0x8333d136, 0xffffc99d}, + {0x8333d137, 0xffffc99e}, + {0x8333d138, 0xffffc99f}, + {0x8333d139, 0xffffc9a0}, + {0x8333d230, 0xffffc9a1}, + {0x8333d231, 0xffffc9a2}, + {0x8333d232, 0xffffc9a3}, + {0x8333d233, 0xffffc9a4}, + {0x8333d234, 0xffffc9a5}, + {0x8333d235, 0xffffc9a6}, + {0x8333d236, 0xffffc9a7}, + {0x8333d237, 0xffffc9a8}, + {0x8333d238, 0xffffc9a9}, + {0x8333d239, 0xffffc9aa}, + {0x8333d330, 0xffffc9ab}, + {0x8333d331, 0xffffc9ac}, + {0x8333d332, 0xffffc9ad}, + {0x8333d333, 0xffffc9ae}, + {0x8333d334, 0xffffc9af}, + {0x8333d335, 0xffffc9b0}, + {0x8333d336, 0xffffc9b1}, + {0x8333d337, 0xffffc9b2}, + {0x8333d338, 0xffffc9b3}, + {0x8333d339, 0xffffc9b4}, + {0x8333d430, 0xffffc9b5}, + {0x8333d431, 0xffffc9b6}, + {0x8333d432, 0xffffc9b7}, + {0x8333d433, 0xffffc9b8}, + {0x8333d434, 0xffffc9b9}, + {0x8333d435, 0xffffc9ba}, + {0x8333d436, 0xffffc9bb}, + {0x8333d437, 0xffffc9bc}, + {0x8333d438, 0xffffc9bd}, + {0x8333d439, 0xffffc9be}, + {0x8333d530, 0xffffc9bf}, + {0x8333d531, 0xffffc9c0}, + {0x8333d532, 0xffffc9c1}, + {0x8333d533, 0xffffc9c2}, + {0x8333d534, 0xffffc9c3}, + {0x8333d535, 0xffffc9c4}, + {0x8333d536, 0xffffc9c5}, + {0x8333d537, 0xffffc9c6}, + {0x8333d538, 0xffffc9c7}, + {0x8333d539, 0xffffc9c8}, + {0x8333d630, 0xffffc9c9}, + {0x8333d631, 0xffffc9ca}, + {0x8333d632, 0xffffc9cb}, + {0x8333d633, 0xffffc9cc}, + {0x8333d634, 0xffffc9cd}, + {0x8333d635, 0xffffc9ce}, + {0x8333d636, 0xffffc9cf}, + {0x8333d637, 0xffffc9d0}, + {0x8333d638, 0xffffc9d1}, + {0x8333d639, 0xffffc9d2}, + {0x8333d730, 0xffffc9d3}, + {0x8333d731, 0xffffc9d4}, + {0x8333d732, 0xffffc9d5}, + {0x8333d733, 0xffffc9d6}, + {0x8333d734, 0xffffc9d7}, + {0x8333d735, 0xffffc9d8}, + {0x8333d736, 0xffffc9d9}, + {0x8333d737, 0xffffc9da}, + {0x8333d738, 0xffffc9db}, + {0x8333d739, 0xffffc9dc}, + {0x8333d830, 0xffffc9dd}, + {0x8333d831, 0xffffc9de}, + {0x8333d832, 0xffffc9df}, + {0x8333d833, 0xffffc9e0}, + {0x8333d834, 0xffffc9e1}, + {0x8333d835, 0xffffc9e2}, + {0x8333d836, 0xffffc9e3}, + {0x8333d837, 0xffffc9e4}, + {0x8333d838, 0xffffc9e5}, + {0x8333d839, 0xffffc9e6}, + {0x8333d930, 0xffffc9e7}, + {0x8333d931, 0xffffc9e8}, + {0x8333d932, 0xffffc9e9}, + {0x8333d933, 0xffffc9ea}, + {0x8333d934, 0xffffc9eb}, + {0x8333d935, 0xffffc9ec}, + {0x8333d936, 0xffffc9ed}, + {0x8333d937, 0xffffc9ee}, + {0x8333d938, 0xffffc9ef}, + {0x8333d939, 0xffffc9f0}, + {0x8333da30, 0xffffc9f1}, + {0x8333da31, 0xffffc9f2}, + {0x8333da32, 0xffffc9f3}, + {0x8333da33, 0xffffc9f4}, + {0x8333da34, 0xffffc9f5}, + {0x8333da35, 0xffffc9f6}, + {0x8333da36, 0xffffc9f7}, + {0x8333da37, 0xffffc9f8}, + {0x8333da38, 0xffffc9f9}, + {0x8333da39, 0xffffc9fa}, + {0x8333db30, 0xffffc9fb}, + {0x8333db31, 0xffffc9fc}, + {0x8333db32, 0xffffc9fd}, + {0x8333db33, 0xffffc9fe}, + {0x8333db34, 0xffffc9ff}, + {0x8333db35, 0xffffca00}, + {0x8333db36, 0xffffca01}, + {0x8333db37, 0xffffca02}, + {0x8333db38, 0xffffca03}, + {0x8333db39, 0xffffca04}, + {0x8333dc30, 0xffffca05}, + {0x8333dc31, 0xffffca06}, + {0x8333dc32, 0xffffca07}, + {0x8333dc33, 0xffffca08}, + {0x8333dc34, 0xffffca09}, + {0x8333dc35, 0xffffca0a}, + {0x8333dc36, 0xffffca0b}, + {0x8333dc37, 0xffffca0c}, + {0x8333dc38, 0xffffca0d}, + {0x8333dc39, 0xffffca0e}, + {0x8333dd30, 0xffffca0f}, + {0x8333dd31, 0xffffca10}, + {0x8333dd32, 0xffffca11}, + {0x8333dd33, 0xffffca12}, + {0x8333dd34, 0xffffca13}, + {0x8333dd35, 0xffffca14}, + {0x8333dd36, 0xffffca15}, + {0x8333dd37, 0xffffca16}, + {0x8333dd38, 0xffffca17}, + {0x8333dd39, 0xffffca18}, + {0x8333de30, 0xffffca19}, + {0x8333de31, 0xffffca1a}, + {0x8333de32, 0xffffca1b}, + {0x8333de33, 0xffffca1c}, + {0x8333de34, 0xffffca1d}, + {0x8333de35, 0xffffca1e}, + {0x8333de36, 0xffffca1f}, + {0x8333de37, 0xffffca20}, + {0x8333de38, 0xffffca21}, + {0x8333de39, 0xffffca22}, + {0x8333df30, 0xffffca23}, + {0x8333df31, 0xffffca24}, + {0x8333df32, 0xffffca25}, + {0x8333df33, 0xffffca26}, + {0x8333df34, 0xffffca27}, + {0x8333df35, 0xffffca28}, + {0x8333df36, 0xffffca29}, + {0x8333df37, 0xffffca2a}, + {0x8333df38, 0xffffca2b}, + {0x8333df39, 0xffffca2c}, + {0x8333e030, 0xffffca2d}, + {0x8333e031, 0xffffca2e}, + {0x8333e032, 0xffffca2f}, + {0x8333e033, 0xffffca30}, + {0x8333e034, 0xffffca31}, + {0x8333e035, 0xffffca32}, + {0x8333e036, 0xffffca33}, + {0x8333e037, 0xffffca34}, + {0x8333e038, 0xffffca35}, + {0x8333e039, 0xffffca36}, + {0x8333e130, 0xffffca37}, + {0x8333e131, 0xffffca38}, + {0x8333e132, 0xffffca39}, + {0x8333e133, 0xffffca3a}, + {0x8333e134, 0xffffca3b}, + {0x8333e135, 0xffffca3c}, + {0x8333e136, 0xffffca3d}, + {0x8333e137, 0xffffca3e}, + {0x8333e138, 0xffffca3f}, + {0x8333e139, 0xffffca40}, + {0x8333e230, 0xffffca41}, + {0x8333e231, 0xffffca42}, + {0x8333e232, 0xffffca43}, + {0x8333e233, 0xffffca44}, + {0x8333e234, 0xffffca45}, + {0x8333e235, 0xffffca46}, + {0x8333e236, 0xffffca47}, + {0x8333e237, 0xffffca48}, + {0x8333e238, 0xffffca49}, + {0x8333e239, 0xffffca4a}, + {0x8333e330, 0xffffca4b}, + {0x8333e331, 0xffffca4c}, + {0x8333e332, 0xffffca4d}, + {0x8333e333, 0xffffca4e}, + {0x8333e334, 0xffffca4f}, + {0x8333e335, 0xffffca50}, + {0x8333e336, 0xffffca51}, + {0x8333e337, 0xffffca52}, + {0x8333e338, 0xffffca53}, + {0x8333e339, 0xffffca54}, + {0x8333e430, 0xffffca55}, + {0x8333e431, 0xffffca56}, + {0x8333e432, 0xffffca57}, + {0x8333e433, 0xffffca58}, + {0x8333e434, 0xffffca59}, + {0x8333e435, 0xffffca5a}, + {0x8333e436, 0xffffca5b}, + {0x8333e437, 0xffffca5c}, + {0x8333e438, 0xffffca5d}, + {0x8333e439, 0xffffca5e}, + {0x8333e530, 0xffffca5f}, + {0x8333e531, 0xffffca60}, + {0x8333e532, 0xffffca61}, + {0x8333e533, 0xffffca62}, + {0x8333e534, 0xffffca63}, + {0x8333e535, 0xffffca64}, + {0x8333e536, 0xffffca65}, + {0x8333e537, 0xffffca66}, + {0x8333e538, 0xffffca67}, + {0x8333e539, 0xffffca68}, + {0x8333e630, 0xffffca69}, + {0x8333e631, 0xffffca6a}, + {0x8333e632, 0xffffca6b}, + {0x8333e633, 0xffffca6c}, + {0x8333e634, 0xffffca6d}, + {0x8333e635, 0xffffca6e}, + {0x8333e636, 0xffffca6f}, + {0x8333e637, 0xffffca70}, + {0x8333e638, 0xffffca71}, + {0x8333e639, 0xffffca72}, + {0x8333e730, 0xffffca73}, + {0x8333e731, 0xffffca74}, + {0x8333e732, 0xffffca75}, + {0x8333e733, 0xffffca76}, + {0x8333e734, 0xffffca77}, + {0x8333e735, 0xffffca78}, + {0x8333e736, 0xffffca79}, + {0x8333e737, 0xffffca7a}, + {0x8333e738, 0xffffca7b}, + {0x8333e739, 0xffffca7c}, + {0x8333e830, 0xffffca7d}, + {0x8333e831, 0xffffca7e}, + {0x8333e832, 0xffffca7f}, + {0x8333e833, 0xffffca80}, + {0x8333e834, 0xffffca81}, + {0x8333e835, 0xffffca82}, + {0x8333e836, 0xffffca83}, + {0x8333e837, 0xffffca84}, + {0x8333e838, 0xffffca85}, + {0x8333e839, 0xffffca86}, + {0x8333e930, 0xffffca87}, + {0x8333e931, 0xffffca88}, + {0x8333e932, 0xffffca89}, + {0x8333e933, 0xffffca8a}, + {0x8333e934, 0xffffca8b}, + {0x8333e935, 0xffffca8c}, + {0x8333e936, 0xffffca8d}, + {0x8333e937, 0xffffca8e}, + {0x8333e938, 0xffffca8f}, + {0x8333e939, 0xffffca90}, + {0x8333ea30, 0xffffca91}, + {0x8333ea31, 0xffffca92}, + {0x8333ea32, 0xffffca93}, + {0x8333ea33, 0xffffca94}, + {0x8333ea34, 0xffffca95}, + {0x8333ea35, 0xffffca96}, + {0x8333ea36, 0xffffca97}, + {0x8333ea37, 0xffffca98}, + {0x8333ea38, 0xffffca99}, + {0x8333ea39, 0xffffca9a}, + {0x8333eb30, 0xffffca9b}, + {0x8333eb31, 0xffffca9c}, + {0x8333eb32, 0xffffca9d}, + {0x8333eb33, 0xffffca9e}, + {0x8333eb34, 0xffffca9f}, + {0x8333eb35, 0xffffcaa0}, + {0x8333eb36, 0xffffcaa1}, + {0x8333eb37, 0xffffcaa2}, + {0x8333eb38, 0xffffcaa3}, + {0x8333eb39, 0xffffcaa4}, + {0x8333ec30, 0xffffcaa5}, + {0x8333ec31, 0xffffcaa6}, + {0x8333ec32, 0xffffcaa7}, + {0x8333ec33, 0xffffcaa8}, + {0x8333ec34, 0xffffcaa9}, + {0x8333ec35, 0xffffcaaa}, + {0x8333ec36, 0xffffcaab}, + {0x8333ec37, 0xffffcaac}, + {0x8333ec38, 0xffffcaad}, + {0x8333ec39, 0xffffcaae}, + {0x8333ed30, 0xffffcaaf}, + {0x8333ed31, 0xffffcab0}, + {0x8333ed32, 0xffffcab1}, + {0x8333ed33, 0xffffcab2}, + {0x8333ed34, 0xffffcab3}, + {0x8333ed35, 0xffffcab4}, + {0x8333ed36, 0xffffcab5}, + {0x8333ed37, 0xffffcab6}, + {0x8333ed38, 0xffffcab7}, + {0x8333ed39, 0xffffcab8}, + {0x8333ee30, 0xffffcab9}, + {0x8333ee31, 0xffffcaba}, + {0x8333ee32, 0xffffcabb}, + {0x8333ee33, 0xffffcabc}, + {0x8333ee34, 0xffffcabd}, + {0x8333ee35, 0xffffcabe}, + {0x8333ee36, 0xffffcabf}, + {0x8333ee37, 0xffffcac0}, + {0x8333ee38, 0xffffcac1}, + {0x8333ee39, 0xffffcac2}, + {0x8333ef30, 0xffffcac3}, + {0x8333ef31, 0xffffcac4}, + {0x8333ef32, 0xffffcac5}, + {0x8333ef33, 0xffffcac6}, + {0x8333ef34, 0xffffcac7}, + {0x8333ef35, 0xffffcac8}, + {0x8333ef36, 0xffffcac9}, + {0x8333ef37, 0xffffcaca}, + {0x8333ef38, 0xffffcacb}, + {0x8333ef39, 0xffffcacc}, + {0x8333f030, 0xffffcacd}, + {0x8333f031, 0xffffcace}, + {0x8333f032, 0xffffcacf}, + {0x8333f033, 0xffffcad0}, + {0x8333f034, 0xffffcad1}, + {0x8333f035, 0xffffcad2}, + {0x8333f036, 0xffffcad3}, + {0x8333f037, 0xffffcad4}, + {0x8333f038, 0xffffcad5}, + {0x8333f039, 0xffffcad6}, + {0x8333f130, 0xffffcad7}, + {0x8333f131, 0xffffcad8}, + {0x8333f132, 0xffffcad9}, + {0x8333f133, 0xffffcada}, + {0x8333f134, 0xffffcadb}, + {0x8333f135, 0xffffcadc}, + {0x8333f136, 0xffffcadd}, + {0x8333f137, 0xffffcade}, + {0x8333f138, 0xffffcadf}, + {0x8333f139, 0xffffcae0}, + {0x8333f230, 0xffffcae1}, + {0x8333f231, 0xffffcae2}, + {0x8333f232, 0xffffcae3}, + {0x8333f233, 0xffffcae4}, + {0x8333f234, 0xffffcae5}, + {0x8333f235, 0xffffcae6}, + {0x8333f236, 0xffffcae7}, + {0x8333f237, 0xffffcae8}, + {0x8333f238, 0xffffcae9}, + {0x8333f239, 0xffffcaea}, + {0x8333f330, 0xffffcaeb}, + {0x8333f331, 0xffffcaec}, + {0x8333f332, 0xffffcaed}, + {0x8333f333, 0xffffcaee}, + {0x8333f334, 0xffffcaef}, + {0x8333f335, 0xffffcaf0}, + {0x8333f336, 0xffffcaf1}, + {0x8333f337, 0xffffcaf2}, + {0x8333f338, 0xffffcaf3}, + {0x8333f339, 0xffffcaf4}, + {0x8333f430, 0xffffcaf5}, + {0x8333f431, 0xffffcaf6}, + {0x8333f432, 0xffffcaf7}, + {0x8333f433, 0xffffcaf8}, + {0x8333f434, 0xffffcaf9}, + {0x8333f435, 0xffffcafa}, + {0x8333f436, 0xffffcafb}, + {0x8333f437, 0xffffcafc}, + {0x8333f438, 0xffffcafd}, + {0x8333f439, 0xffffcafe}, + {0x8333f530, 0xffffcaff}, + {0x8333f531, 0xffffcb00}, + {0x8333f532, 0xffffcb01}, + {0x8333f533, 0xffffcb02}, + {0x8333f534, 0xffffcb03}, + {0x8333f535, 0xffffcb04}, + {0x8333f536, 0xffffcb05}, + {0x8333f537, 0xffffcb06}, + {0x8333f538, 0xffffcb07}, + {0x8333f539, 0xffffcb08}, + {0x8333f630, 0xffffcb09}, + {0x8333f631, 0xffffcb0a}, + {0x8333f632, 0xffffcb0b}, + {0x8333f633, 0xffffcb0c}, + {0x8333f634, 0xffffcb0d}, + {0x8333f635, 0xffffcb0e}, + {0x8333f636, 0xffffcb0f}, + {0x8333f637, 0xffffcb10}, + {0x8333f638, 0xffffcb11}, + {0x8333f639, 0xffffcb12}, + {0x8333f730, 0xffffcb13}, + {0x8333f731, 0xffffcb14}, + {0x8333f732, 0xffffcb15}, + {0x8333f733, 0xffffcb16}, + {0x8333f734, 0xffffcb17}, + {0x8333f735, 0xffffcb18}, + {0x8333f736, 0xffffcb19}, + {0x8333f737, 0xffffcb1a}, + {0x8333f738, 0xffffcb1b}, + {0x8333f739, 0xffffcb1c}, + {0x8333f830, 0xffffcb1d}, + {0x8333f831, 0xffffcb1e}, + {0x8333f832, 0xffffcb1f}, + {0x8333f833, 0xffffcb20}, + {0x8333f834, 0xffffcb21}, + {0x8333f835, 0xffffcb22}, + {0x8333f836, 0xffffcb23}, + {0x8333f837, 0xffffcb24}, + {0x8333f838, 0xffffcb25}, + {0x8333f839, 0xffffcb26}, + {0x8333f930, 0xffffcb27}, + {0x8333f931, 0xffffcb28}, + {0x8333f932, 0xffffcb29}, + {0x8333f933, 0xffffcb2a}, + {0x8333f934, 0xffffcb2b}, + {0x8333f935, 0xffffcb2c}, + {0x8333f936, 0xffffcb2d}, + {0x8333f937, 0xffffcb2e}, + {0x8333f938, 0xffffcb2f}, + {0x8333f939, 0xffffcb30}, + {0x8333fa30, 0xffffcb31}, + {0x8333fa31, 0xffffcb32}, + {0x8333fa32, 0xffffcb33}, + {0x8333fa33, 0xffffcb34}, + {0x8333fa34, 0xffffcb35}, + {0x8333fa35, 0xffffcb36}, + {0x8333fa36, 0xffffcb37}, + {0x8333fa37, 0xffffcb38}, + {0x8333fa38, 0xffffcb39}, + {0x8333fa39, 0xffffcb3a}, + {0x8333fb30, 0xffffcb3b}, + {0x8333fb31, 0xffffcb3c}, + {0x8333fb32, 0xffffcb3d}, + {0x8333fb33, 0xffffcb3e}, + {0x8333fb34, 0xffffcb3f}, + {0x8333fb35, 0xffffcb40}, + {0x8333fb36, 0xffffcb41}, + {0x8333fb37, 0xffffcb42}, + {0x8333fb38, 0xffffcb43}, + {0x8333fb39, 0xffffcb44}, + {0x8333fc30, 0xffffcb45}, + {0x8333fc31, 0xffffcb46}, + {0x8333fc32, 0xffffcb47}, + {0x8333fc33, 0xffffcb48}, + {0x8333fc34, 0xffffcb49}, + {0x8333fc35, 0xffffcb4a}, + {0x8333fc36, 0xffffcb4b}, + {0x8333fc37, 0xffffcb4c}, + {0x8333fc38, 0xffffcb4d}, + {0x8333fc39, 0xffffcb4e}, + {0x8333fd30, 0xffffcb4f}, + {0x8333fd31, 0xffffcb50}, + {0x8333fd32, 0xffffcb51}, + {0x8333fd33, 0xffffcb52}, + {0x8333fd34, 0xffffcb53}, + {0x8333fd35, 0xffffcb54}, + {0x8333fd36, 0xffffcb55}, + {0x8333fd37, 0xffffcb56}, + {0x8333fd38, 0xffffcb57}, + {0x8333fd39, 0xffffcb58}, + {0x8333fe30, 0xffffcb59}, + {0x8333fe31, 0xffffcb5a}, + {0x8333fe32, 0xffffcb5b}, + {0x8333fe33, 0xffffcb5c}, + {0x8333fe34, 0xffffcb5d}, + {0x8333fe35, 0xffffcb5e}, + {0x8333fe36, 0xffffcb5f}, + {0x8333fe37, 0xffffcb60}, + {0x8333fe38, 0xffffcb61}, + {0x8333fe39, 0xffffcb62}, + {0x83348130, 0xffffcb63}, + {0x83348131, 0xffffcb64}, + {0x83348132, 0xffffcb65}, + {0x83348133, 0xffffcb66}, + {0x83348134, 0xffffcb67}, + {0x83348135, 0xffffcb68}, + {0x83348136, 0xffffcb69}, + {0x83348137, 0xffffcb6a}, + {0x83348138, 0xffffcb6b}, + {0x83348139, 0xffffcb6c}, + {0x83348230, 0xffffcb6d}, + {0x83348231, 0xffffcb6e}, + {0x83348232, 0xffffcb6f}, + {0x83348233, 0xffffcb70}, + {0x83348234, 0xffffcb71}, + {0x83348235, 0xffffcb72}, + {0x83348236, 0xffffcb73}, + {0x83348237, 0xffffcb74}, + {0x83348238, 0xffffcb75}, + {0x83348239, 0xffffcb76}, + {0x83348330, 0xffffcb77}, + {0x83348331, 0xffffcb78}, + {0x83348332, 0xffffcb79}, + {0x83348333, 0xffffcb7a}, + {0x83348334, 0xffffcb7b}, + {0x83348335, 0xffffcb7c}, + {0x83348336, 0xffffcb7d}, + {0x83348337, 0xffffcb7e}, + {0x83348338, 0xffffcb7f}, + {0x83348339, 0xffffcb80}, + {0x83348430, 0xffffcb81}, + {0x83348431, 0xffffcb82}, + {0x83348432, 0xffffcb83}, + {0x83348433, 0xffffcb84}, + {0x83348434, 0xffffcb85}, + {0x83348435, 0xffffcb86}, + {0x83348436, 0xffffcb87}, + {0x83348437, 0xffffcb88}, + {0x83348438, 0xffffcb89}, + {0x83348439, 0xffffcb8a}, + {0x83348530, 0xffffcb8b}, + {0x83348531, 0xffffcb8c}, + {0x83348532, 0xffffcb8d}, + {0x83348533, 0xffffcb8e}, + {0x83348534, 0xffffcb8f}, + {0x83348535, 0xffffcb90}, + {0x83348536, 0xffffcb91}, + {0x83348537, 0xffffcb92}, + {0x83348538, 0xffffcb93}, + {0x83348539, 0xffffcb94}, + {0x83348630, 0xffffcb95}, + {0x83348631, 0xffffcb96}, + {0x83348632, 0xffffcb97}, + {0x83348633, 0xffffcb98}, + {0x83348634, 0xffffcb99}, + {0x83348635, 0xffffcb9a}, + {0x83348636, 0xffffcb9b}, + {0x83348637, 0xffffcb9c}, + {0x83348638, 0xffffcb9d}, + {0x83348639, 0xffffcb9e}, + {0x83348730, 0xffffcb9f}, + {0x83348731, 0xffffcba0}, + {0x83348732, 0xffffcba1}, + {0x83348733, 0xffffcba2}, + {0x83348734, 0xffffcba3}, + {0x83348735, 0xffffcba4}, + {0x83348736, 0xffffcba5}, + {0x83348737, 0xffffcba6}, + {0x83348738, 0xffffcba7}, + {0x83348739, 0xffffcba8}, + {0x83348830, 0xffffcba9}, + {0x83348831, 0xffffcbaa}, + {0x83348832, 0xffffcbab}, + {0x83348833, 0xffffcbac}, + {0x83348834, 0xffffcbad}, + {0x83348835, 0xffffcbae}, + {0x83348836, 0xffffcbaf}, + {0x83348837, 0xffffcbb0}, + {0x83348838, 0xffffcbb1}, + {0x83348839, 0xffffcbb2}, + {0x83348930, 0xffffcbb3}, + {0x83348931, 0xffffcbb4}, + {0x83348932, 0xffffcbb5}, + {0x83348933, 0xffffcbb6}, + {0x83348934, 0xffffcbb7}, + {0x83348935, 0xffffcbb8}, + {0x83348936, 0xffffcbb9}, + {0x83348937, 0xffffcbba}, + {0x83348938, 0xffffcbbb}, + {0x83348939, 0xffffcbbc}, + {0x83348a30, 0xffffcbbd}, + {0x83348a31, 0xffffcbbe}, + {0x83348a32, 0xffffcbbf}, + {0x83348a33, 0xffffcbc0}, + {0x83348a34, 0xffffcbc1}, + {0x83348a35, 0xffffcbc2}, + {0x83348a36, 0xffffcbc3}, + {0x83348a37, 0xffffcbc4}, + {0x83348a38, 0xffffcbc5}, + {0x83348a39, 0xffffcbc6}, + {0x83348b30, 0xffffcbc7}, + {0x83348b31, 0xffffcbc8}, + {0x83348b32, 0xffffcbc9}, + {0x83348b33, 0xffffcbca}, + {0x83348b34, 0xffffcbcb}, + {0x83348b35, 0xffffcbcc}, + {0x83348b36, 0xffffcbcd}, + {0x83348b37, 0xffffcbce}, + {0x83348b38, 0xffffcbcf}, + {0x83348b39, 0xffffcbd0}, + {0x83348c30, 0xffffcbd1}, + {0x83348c31, 0xffffcbd2}, + {0x83348c32, 0xffffcbd3}, + {0x83348c33, 0xffffcbd4}, + {0x83348c34, 0xffffcbd5}, + {0x83348c35, 0xffffcbd6}, + {0x83348c36, 0xffffcbd7}, + {0x83348c37, 0xffffcbd8}, + {0x83348c38, 0xffffcbd9}, + {0x83348c39, 0xffffcbda}, + {0x83348d30, 0xffffcbdb}, + {0x83348d31, 0xffffcbdc}, + {0x83348d32, 0xffffcbdd}, + {0x83348d33, 0xffffcbde}, + {0x83348d34, 0xffffcbdf}, + {0x83348d35, 0xffffcbe0}, + {0x83348d36, 0xffffcbe1}, + {0x83348d37, 0xffffcbe2}, + {0x83348d38, 0xffffcbe3}, + {0x83348d39, 0xffffcbe4}, + {0x83348e30, 0xffffcbe5}, + {0x83348e31, 0xffffcbe6}, + {0x83348e32, 0xffffcbe7}, + {0x83348e33, 0xffffcbe8}, + {0x83348e34, 0xffffcbe9}, + {0x83348e35, 0xffffcbea}, + {0x83348e36, 0xffffcbeb}, + {0x83348e37, 0xffffcbec}, + {0x83348e38, 0xffffcbed}, + {0x83348e39, 0xffffcbee}, + {0x83348f30, 0xffffcbef}, + {0x83348f31, 0xffffcbf0}, + {0x83348f32, 0xffffcbf1}, + {0x83348f33, 0xffffcbf2}, + {0x83348f34, 0xffffcbf3}, + {0x83348f35, 0xffffcbf4}, + {0x83348f36, 0xffffcbf5}, + {0x83348f37, 0xffffcbf6}, + {0x83348f38, 0xffffcbf7}, + {0x83348f39, 0xffffcbf8}, + {0x83349030, 0xffffcbf9}, + {0x83349031, 0xffffcbfa}, + {0x83349032, 0xffffcbfb}, + {0x83349033, 0xffffcbfc}, + {0x83349034, 0xffffcbfd}, + {0x83349035, 0xffffcbfe}, + {0x83349036, 0xffffcbff}, + {0x83349037, 0xffffcc00}, + {0x83349038, 0xffffcc01}, + {0x83349039, 0xffffcc02}, + {0x83349130, 0xffffcc03}, + {0x83349131, 0xffffcc04}, + {0x83349132, 0xffffcc05}, + {0x83349133, 0xffffcc06}, + {0x83349134, 0xffffcc07}, + {0x83349135, 0xffffcc08}, + {0x83349136, 0xffffcc09}, + {0x83349137, 0xffffcc0a}, + {0x83349138, 0xffffcc0b}, + {0x83349139, 0xffffcc0c}, + {0x83349230, 0xffffcc0d}, + {0x83349231, 0xffffcc0e}, + {0x83349232, 0xffffcc0f}, + {0x83349233, 0xffffcc10}, + {0x83349234, 0xffffcc11}, + {0x83349235, 0xffffcc12}, + {0x83349236, 0xffffcc13}, + {0x83349237, 0xffffcc14}, + {0x83349238, 0xffffcc15}, + {0x83349239, 0xffffcc16}, + {0x83349330, 0xffffcc17}, + {0x83349331, 0xffffcc18}, + {0x83349332, 0xffffcc19}, + {0x83349333, 0xffffcc1a}, + {0x83349334, 0xffffcc1b}, + {0x83349335, 0xffffcc1c}, + {0x83349336, 0xffffcc1d}, + {0x83349337, 0xffffcc1e}, + {0x83349338, 0xffffcc1f}, + {0x83349339, 0xffffcc20}, + {0x83349430, 0xffffcc21}, + {0x83349431, 0xffffcc22}, + {0x83349432, 0xffffcc23}, + {0x83349433, 0xffffcc24}, + {0x83349434, 0xffffcc25}, + {0x83349435, 0xffffcc26}, + {0x83349436, 0xffffcc27}, + {0x83349437, 0xffffcc28}, + {0x83349438, 0xffffcc29}, + {0x83349439, 0xffffcc2a}, + {0x83349530, 0xffffcc2b}, + {0x83349531, 0xffffcc2c}, + {0x83349532, 0xffffcc2d}, + {0x83349533, 0xffffcc2e}, + {0x83349534, 0xffffcc2f}, + {0x83349535, 0xffffcc30}, + {0x83349536, 0xffffcc31}, + {0x83349537, 0xffffcc32}, + {0x83349538, 0xffffcc33}, + {0x83349539, 0xffffcc34}, + {0x83349630, 0xffffcc35}, + {0x83349631, 0xffffcc36}, + {0x83349632, 0xffffcc37}, + {0x83349633, 0xffffcc38}, + {0x83349634, 0xffffcc39}, + {0x83349635, 0xffffcc3a}, + {0x83349636, 0xffffcc3b}, + {0x83349637, 0xffffcc3c}, + {0x83349638, 0xffffcc3d}, + {0x83349639, 0xffffcc3e}, + {0x83349730, 0xffffcc3f}, + {0x83349731, 0xffffcc40}, + {0x83349732, 0xffffcc41}, + {0x83349733, 0xffffcc42}, + {0x83349734, 0xffffcc43}, + {0x83349735, 0xffffcc44}, + {0x83349736, 0xffffcc45}, + {0x83349737, 0xffffcc46}, + {0x83349738, 0xffffcc47}, + {0x83349739, 0xffffcc48}, + {0x83349830, 0xffffcc49}, + {0x83349831, 0xffffcc4a}, + {0x83349832, 0xffffcc4b}, + {0x83349833, 0xffffcc4c}, + {0x83349834, 0xffffcc4d}, + {0x83349835, 0xffffcc4e}, + {0x83349836, 0xffffcc4f}, + {0x83349837, 0xffffcc50}, + {0x83349838, 0xffffcc51}, + {0x83349839, 0xffffcc52}, + {0x83349930, 0xffffcc53}, + {0x83349931, 0xffffcc54}, + {0x83349932, 0xffffcc55}, + {0x83349933, 0xffffcc56}, + {0x83349934, 0xffffcc57}, + {0x83349935, 0xffffcc58}, + {0x83349936, 0xffffcc59}, + {0x83349937, 0xffffcc5a}, + {0x83349938, 0xffffcc5b}, + {0x83349939, 0xffffcc5c}, + {0x83349a30, 0xffffcc5d}, + {0x83349a31, 0xffffcc5e}, + {0x83349a32, 0xffffcc5f}, + {0x83349a33, 0xffffcc60}, + {0x83349a34, 0xffffcc61}, + {0x83349a35, 0xffffcc62}, + {0x83349a36, 0xffffcc63}, + {0x83349a37, 0xffffcc64}, + {0x83349a38, 0xffffcc65}, + {0x83349a39, 0xffffcc66}, + {0x83349b30, 0xffffcc67}, + {0x83349b31, 0xffffcc68}, + {0x83349b32, 0xffffcc69}, + {0x83349b33, 0xffffcc6a}, + {0x83349b34, 0xffffcc6b}, + {0x83349b35, 0xffffcc6c}, + {0x83349b36, 0xffffcc6d}, + {0x83349b37, 0xffffcc6e}, + {0x83349b38, 0xffffcc6f}, + {0x83349b39, 0xffffcc70}, + {0x83349c30, 0xffffcc71}, + {0x83349c31, 0xffffcc72}, + {0x83349c32, 0xffffcc73}, + {0x83349c33, 0xffffcc74}, + {0x83349c34, 0xffffcc75}, + {0x83349c35, 0xffffcc76}, + {0x83349c36, 0xffffcc77}, + {0x83349c37, 0xffffcc78}, + {0x83349c38, 0xffffcc79}, + {0x83349c39, 0xffffcc7a}, + {0x83349d30, 0xffffcc7b}, + {0x83349d31, 0xffffcc7c}, + {0x83349d32, 0xffffcc7d}, + {0x83349d33, 0xffffcc7e}, + {0x83349d34, 0xffffcc7f}, + {0x83349d35, 0xffffcc80}, + {0x83349d36, 0xffffcc81}, + {0x83349d37, 0xffffcc82}, + {0x83349d38, 0xffffcc83}, + {0x83349d39, 0xffffcc84}, + {0x83349e30, 0xffffcc85}, + {0x83349e31, 0xffffcc86}, + {0x83349e32, 0xffffcc87}, + {0x83349e33, 0xffffcc88}, + {0x83349e34, 0xffffcc89}, + {0x83349e35, 0xffffcc8a}, + {0x83349e36, 0xffffcc8b}, + {0x83349e37, 0xffffcc8c}, + {0x83349e38, 0xffffcc8d}, + {0x83349e39, 0xffffcc8e}, + {0x83349f30, 0xffffcc8f}, + {0x83349f31, 0xffffcc90}, + {0x83349f32, 0xffffcc91}, + {0x83349f33, 0xffffcc92}, + {0x83349f34, 0xffffcc93}, + {0x83349f35, 0xffffcc94}, + {0x83349f36, 0xffffcc95}, + {0x83349f37, 0xffffcc96}, + {0x83349f38, 0xffffcc97}, + {0x83349f39, 0xffffcc98}, + {0x8334a030, 0xffffcc99}, + {0x8334a031, 0xffffcc9a}, + {0x8334a032, 0xffffcc9b}, + {0x8334a033, 0xffffcc9c}, + {0x8334a034, 0xffffcc9d}, + {0x8334a035, 0xffffcc9e}, + {0x8334a036, 0xffffcc9f}, + {0x8334a037, 0xffffcca0}, + {0x8334a038, 0xffffcca1}, + {0x8334a039, 0xffffcca2}, + {0x8334a130, 0xffffcca3}, + {0x8334a131, 0xffffcca4}, + {0x8334a132, 0xffffcca5}, + {0x8334a133, 0xffffcca6}, + {0x8334a134, 0xffffcca7}, + {0x8334a135, 0xffffcca8}, + {0x8334a136, 0xffffcca9}, + {0x8334a137, 0xffffccaa}, + {0x8334a138, 0xffffccab}, + {0x8334a139, 0xffffccac}, + {0x8334a230, 0xffffccad}, + {0x8334a231, 0xffffccae}, + {0x8334a232, 0xffffccaf}, + {0x8334a233, 0xffffccb0}, + {0x8334a234, 0xffffccb1}, + {0x8334a235, 0xffffccb2}, + {0x8334a236, 0xffffccb3}, + {0x8334a237, 0xffffccb4}, + {0x8334a238, 0xffffccb5}, + {0x8334a239, 0xffffccb6}, + {0x8334a330, 0xffffccb7}, + {0x8334a331, 0xffffccb8}, + {0x8334a332, 0xffffccb9}, + {0x8334a333, 0xffffccba}, + {0x8334a334, 0xffffccbb}, + {0x8334a335, 0xffffccbc}, + {0x8334a336, 0xffffccbd}, + {0x8334a337, 0xffffccbe}, + {0x8334a338, 0xffffccbf}, + {0x8334a339, 0xffffccc0}, + {0x8334a430, 0xffffccc1}, + {0x8334a431, 0xffffccc2}, + {0x8334a432, 0xffffccc3}, + {0x8334a433, 0xffffccc4}, + {0x8334a434, 0xffffccc5}, + {0x8334a435, 0xffffccc6}, + {0x8334a436, 0xffffccc7}, + {0x8334a437, 0xffffccc8}, + {0x8334a438, 0xffffccc9}, + {0x8334a439, 0xffffccca}, + {0x8334a530, 0xffffcccb}, + {0x8334a531, 0xffffcccc}, + {0x8334a532, 0xffffcccd}, + {0x8334a533, 0xffffccce}, + {0x8334a534, 0xffffcccf}, + {0x8334a535, 0xffffccd0}, + {0x8334a536, 0xffffccd1}, + {0x8334a537, 0xffffccd2}, + {0x8334a538, 0xffffccd3}, + {0x8334a539, 0xffffccd4}, + {0x8334a630, 0xffffccd5}, + {0x8334a631, 0xffffccd6}, + {0x8334a632, 0xffffccd7}, + {0x8334a633, 0xffffccd8}, + {0x8334a634, 0xffffccd9}, + {0x8334a635, 0xffffccda}, + {0x8334a636, 0xffffccdb}, + {0x8334a637, 0xffffccdc}, + {0x8334a638, 0xffffccdd}, + {0x8334a639, 0xffffccde}, + {0x8334a730, 0xffffccdf}, + {0x8334a731, 0xffffcce0}, + {0x8334a732, 0xffffcce1}, + {0x8334a733, 0xffffcce2}, + {0x8334a734, 0xffffcce3}, + {0x8334a735, 0xffffcce4}, + {0x8334a736, 0xffffcce5}, + {0x8334a737, 0xffffcce6}, + {0x8334a738, 0xffffcce7}, + {0x8334a739, 0xffffcce8}, + {0x8334a830, 0xffffcce9}, + {0x8334a831, 0xffffccea}, + {0x8334a832, 0xffffcceb}, + {0x8334a833, 0xffffccec}, + {0x8334a834, 0xffffcced}, + {0x8334a835, 0xffffccee}, + {0x8334a836, 0xffffccef}, + {0x8334a837, 0xffffccf0}, + {0x8334a838, 0xffffccf1}, + {0x8334a839, 0xffffccf2}, + {0x8334a930, 0xffffccf3}, + {0x8334a931, 0xffffccf4}, + {0x8334a932, 0xffffccf5}, + {0x8334a933, 0xffffccf6}, + {0x8334a934, 0xffffccf7}, + {0x8334a935, 0xffffccf8}, + {0x8334a936, 0xffffccf9}, + {0x8334a937, 0xffffccfa}, + {0x8334a938, 0xffffccfb}, + {0x8334a939, 0xffffccfc}, + {0x8334aa30, 0xffffccfd}, + {0x8334aa31, 0xffffccfe}, + {0x8334aa32, 0xffffccff}, + {0x8334aa33, 0xffffcd00}, + {0x8334aa34, 0xffffcd01}, + {0x8334aa35, 0xffffcd02}, + {0x8334aa36, 0xffffcd03}, + {0x8334aa37, 0xffffcd04}, + {0x8334aa38, 0xffffcd05}, + {0x8334aa39, 0xffffcd06}, + {0x8334ab30, 0xffffcd07}, + {0x8334ab31, 0xffffcd08}, + {0x8334ab32, 0xffffcd09}, + {0x8334ab33, 0xffffcd0a}, + {0x8334ab34, 0xffffcd0b}, + {0x8334ab35, 0xffffcd0c}, + {0x8334ab36, 0xffffcd0d}, + {0x8334ab37, 0xffffcd0e}, + {0x8334ab38, 0xffffcd0f}, + {0x8334ab39, 0xffffcd10}, + {0x8334ac30, 0xffffcd11}, + {0x8334ac31, 0xffffcd12}, + {0x8334ac32, 0xffffcd13}, + {0x8334ac33, 0xffffcd14}, + {0x8334ac34, 0xffffcd15}, + {0x8334ac35, 0xffffcd16}, + {0x8334ac36, 0xffffcd17}, + {0x8334ac37, 0xffffcd18}, + {0x8334ac38, 0xffffcd19}, + {0x8334ac39, 0xffffcd1a}, + {0x8334ad30, 0xffffcd1b}, + {0x8334ad31, 0xffffcd1c}, + {0x8334ad32, 0xffffcd1d}, + {0x8334ad33, 0xffffcd1e}, + {0x8334ad34, 0xffffcd1f}, + {0x8334ad35, 0xffffcd20}, + {0x8334ad36, 0xffffcd21}, + {0x8334ad37, 0xffffcd22}, + {0x8334ad38, 0xffffcd23}, + {0x8334ad39, 0xffffcd24}, + {0x8334ae30, 0xffffcd25}, + {0x8334ae31, 0xffffcd26}, + {0x8334ae32, 0xffffcd27}, + {0x8334ae33, 0xffffcd28}, + {0x8334ae34, 0xffffcd29}, + {0x8334ae35, 0xffffcd2a}, + {0x8334ae36, 0xffffcd2b}, + {0x8334ae37, 0xffffcd2c}, + {0x8334ae38, 0xffffcd2d}, + {0x8334ae39, 0xffffcd2e}, + {0x8334af30, 0xffffcd2f}, + {0x8334af31, 0xffffcd30}, + {0x8334af32, 0xffffcd31}, + {0x8334af33, 0xffffcd32}, + {0x8334af34, 0xffffcd33}, + {0x8334af35, 0xffffcd34}, + {0x8334af36, 0xffffcd35}, + {0x8334af37, 0xffffcd36}, + {0x8334af38, 0xffffcd37}, + {0x8334af39, 0xffffcd38}, + {0x8334b030, 0xffffcd39}, + {0x8334b031, 0xffffcd3a}, + {0x8334b032, 0xffffcd3b}, + {0x8334b033, 0xffffcd3c}, + {0x8334b034, 0xffffcd3d}, + {0x8334b035, 0xffffcd3e}, + {0x8334b036, 0xffffcd3f}, + {0x8334b037, 0xffffcd40}, + {0x8334b038, 0xffffcd41}, + {0x8334b039, 0xffffcd42}, + {0x8334b130, 0xffffcd43}, + {0x8334b131, 0xffffcd44}, + {0x8334b132, 0xffffcd45}, + {0x8334b133, 0xffffcd46}, + {0x8334b134, 0xffffcd47}, + {0x8334b135, 0xffffcd48}, + {0x8334b136, 0xffffcd49}, + {0x8334b137, 0xffffcd4a}, + {0x8334b138, 0xffffcd4b}, + {0x8334b139, 0xffffcd4c}, + {0x8334b230, 0xffffcd4d}, + {0x8334b231, 0xffffcd4e}, + {0x8334b232, 0xffffcd4f}, + {0x8334b233, 0xffffcd50}, + {0x8334b234, 0xffffcd51}, + {0x8334b235, 0xffffcd52}, + {0x8334b236, 0xffffcd53}, + {0x8334b237, 0xffffcd54}, + {0x8334b238, 0xffffcd55}, + {0x8334b239, 0xffffcd56}, + {0x8334b330, 0xffffcd57}, + {0x8334b331, 0xffffcd58}, + {0x8334b332, 0xffffcd59}, + {0x8334b333, 0xffffcd5a}, + {0x8334b334, 0xffffcd5b}, + {0x8334b335, 0xffffcd5c}, + {0x8334b336, 0xffffcd5d}, + {0x8334b337, 0xffffcd5e}, + {0x8334b338, 0xffffcd5f}, + {0x8334b339, 0xffffcd60}, + {0x8334b430, 0xffffcd61}, + {0x8334b431, 0xffffcd62}, + {0x8334b432, 0xffffcd63}, + {0x8334b433, 0xffffcd64}, + {0x8334b434, 0xffffcd65}, + {0x8334b435, 0xffffcd66}, + {0x8334b436, 0xffffcd67}, + {0x8334b437, 0xffffcd68}, + {0x8334b438, 0xffffcd69}, + {0x8334b439, 0xffffcd6a}, + {0x8334b530, 0xffffcd6b}, + {0x8334b531, 0xffffcd6c}, + {0x8334b532, 0xffffcd6d}, + {0x8334b533, 0xffffcd6e}, + {0x8334b534, 0xffffcd6f}, + {0x8334b535, 0xffffcd70}, + {0x8334b536, 0xffffcd71}, + {0x8334b537, 0xffffcd72}, + {0x8334b538, 0xffffcd73}, + {0x8334b539, 0xffffcd74}, + {0x8334b630, 0xffffcd75}, + {0x8334b631, 0xffffcd76}, + {0x8334b632, 0xffffcd77}, + {0x8334b633, 0xffffcd78}, + {0x8334b634, 0xffffcd79}, + {0x8334b635, 0xffffcd7a}, + {0x8334b636, 0xffffcd7b}, + {0x8334b637, 0xffffcd7c}, + {0x8334b638, 0xffffcd7d}, + {0x8334b639, 0xffffcd7e}, + {0x8334b730, 0xffffcd7f}, + {0x8334b731, 0xffffcd80}, + {0x8334b732, 0xffffcd81}, + {0x8334b733, 0xffffcd82}, + {0x8334b734, 0xffffcd83}, + {0x8334b735, 0xffffcd84}, + {0x8334b736, 0xffffcd85}, + {0x8334b737, 0xffffcd86}, + {0x8334b738, 0xffffcd87}, + {0x8334b739, 0xffffcd88}, + {0x8334b830, 0xffffcd89}, + {0x8334b831, 0xffffcd8a}, + {0x8334b832, 0xffffcd8b}, + {0x8334b833, 0xffffcd8c}, + {0x8334b834, 0xffffcd8d}, + {0x8334b835, 0xffffcd8e}, + {0x8334b836, 0xffffcd8f}, + {0x8334b837, 0xffffcd90}, + {0x8334b838, 0xffffcd91}, + {0x8334b839, 0xffffcd92}, + {0x8334b930, 0xffffcd93}, + {0x8334b931, 0xffffcd94}, + {0x8334b932, 0xffffcd95}, + {0x8334b933, 0xffffcd96}, + {0x8334b934, 0xffffcd97}, + {0x8334b935, 0xffffcd98}, + {0x8334b936, 0xffffcd99}, + {0x8334b937, 0xffffcd9a}, + {0x8334b938, 0xffffcd9b}, + {0x8334b939, 0xffffcd9c}, + {0x8334ba30, 0xffffcd9d}, + {0x8334ba31, 0xffffcd9e}, + {0x8334ba32, 0xffffcd9f}, + {0x8334ba33, 0xffffcda0}, + {0x8334ba34, 0xffffcda1}, + {0x8334ba35, 0xffffcda2}, + {0x8334ba36, 0xffffcda3}, + {0x8334ba37, 0xffffcda4}, + {0x8334ba38, 0xffffcda5}, + {0x8334ba39, 0xffffcda6}, + {0x8334bb30, 0xffffcda7}, + {0x8334bb31, 0xffffcda8}, + {0x8334bb32, 0xffffcda9}, + {0x8334bb33, 0xffffcdaa}, + {0x8334bb34, 0xffffcdab}, + {0x8334bb35, 0xffffcdac}, + {0x8334bb36, 0xffffcdad}, + {0x8334bb37, 0xffffcdae}, + {0x8334bb38, 0xffffcdaf}, + {0x8334bb39, 0xffffcdb0}, + {0x8334bc30, 0xffffcdb1}, + {0x8334bc31, 0xffffcdb2}, + {0x8334bc32, 0xffffcdb3}, + {0x8334bc33, 0xffffcdb4}, + {0x8334bc34, 0xffffcdb5}, + {0x8334bc35, 0xffffcdb6}, + {0x8334bc36, 0xffffcdb7}, + {0x8334bc37, 0xffffcdb8}, + {0x8334bc38, 0xffffcdb9}, + {0x8334bc39, 0xffffcdba}, + {0x8334bd30, 0xffffcdbb}, + {0x8334bd31, 0xffffcdbc}, + {0x8334bd32, 0xffffcdbd}, + {0x8334bd33, 0xffffcdbe}, + {0x8334bd34, 0xffffcdbf}, + {0x8334bd35, 0xffffcdc0}, + {0x8334bd36, 0xffffcdc1}, + {0x8334bd37, 0xffffcdc2}, + {0x8334bd38, 0xffffcdc3}, + {0x8334bd39, 0xffffcdc4}, + {0x8334be30, 0xffffcdc5}, + {0x8334be31, 0xffffcdc6}, + {0x8334be32, 0xffffcdc7}, + {0x8334be33, 0xffffcdc8}, + {0x8334be34, 0xffffcdc9}, + {0x8334be35, 0xffffcdca}, + {0x8334be36, 0xffffcdcb}, + {0x8334be37, 0xffffcdcc}, + {0x8334be38, 0xffffcdcd}, + {0x8334be39, 0xffffcdce}, + {0x8334bf30, 0xffffcdcf}, + {0x8334bf31, 0xffffcdd0}, + {0x8334bf32, 0xffffcdd1}, + {0x8334bf33, 0xffffcdd2}, + {0x8334bf34, 0xffffcdd3}, + {0x8334bf35, 0xffffcdd4}, + {0x8334bf36, 0xffffcdd5}, + {0x8334bf37, 0xffffcdd6}, + {0x8334bf38, 0xffffcdd7}, + {0x8334bf39, 0xffffcdd8}, + {0x8334c030, 0xffffcdd9}, + {0x8334c031, 0xffffcdda}, + {0x8334c032, 0xffffcddb}, + {0x8334c033, 0xffffcddc}, + {0x8334c034, 0xffffcddd}, + {0x8334c035, 0xffffcdde}, + {0x8334c036, 0xffffcddf}, + {0x8334c037, 0xffffcde0}, + {0x8334c038, 0xffffcde1}, + {0x8334c039, 0xffffcde2}, + {0x8334c130, 0xffffcde3}, + {0x8334c131, 0xffffcde4}, + {0x8334c132, 0xffffcde5}, + {0x8334c133, 0xffffcde6}, + {0x8334c134, 0xffffcde7}, + {0x8334c135, 0xffffcde8}, + {0x8334c136, 0xffffcde9}, + {0x8334c137, 0xffffcdea}, + {0x8334c138, 0xffffcdeb}, + {0x8334c139, 0xffffcdec}, + {0x8334c230, 0xffffcded}, + {0x8334c231, 0xffffcdee}, + {0x8334c232, 0xffffcdef}, + {0x8334c233, 0xffffcdf0}, + {0x8334c234, 0xffffcdf1}, + {0x8334c235, 0xffffcdf2}, + {0x8334c236, 0xffffcdf3}, + {0x8334c237, 0xffffcdf4}, + {0x8334c238, 0xffffcdf5}, + {0x8334c239, 0xffffcdf6}, + {0x8334c330, 0xffffcdf7}, + {0x8334c331, 0xffffcdf8}, + {0x8334c332, 0xffffcdf9}, + {0x8334c333, 0xffffcdfa}, + {0x8334c334, 0xffffcdfb}, + {0x8334c335, 0xffffcdfc}, + {0x8334c336, 0xffffcdfd}, + {0x8334c337, 0xffffcdfe}, + {0x8334c338, 0xffffcdff}, + {0x8334c339, 0xffffce00}, + {0x8334c430, 0xffffce01}, + {0x8334c431, 0xffffce02}, + {0x8334c432, 0xffffce03}, + {0x8334c433, 0xffffce04}, + {0x8334c434, 0xffffce05}, + {0x8334c435, 0xffffce06}, + {0x8334c436, 0xffffce07}, + {0x8334c437, 0xffffce08}, + {0x8334c438, 0xffffce09}, + {0x8334c439, 0xffffce0a}, + {0x8334c530, 0xffffce0b}, + {0x8334c531, 0xffffce0c}, + {0x8334c532, 0xffffce0d}, + {0x8334c533, 0xffffce0e}, + {0x8334c534, 0xffffce0f}, + {0x8334c535, 0xffffce10}, + {0x8334c536, 0xffffce11}, + {0x8334c537, 0xffffce12}, + {0x8334c538, 0xffffce13}, + {0x8334c539, 0xffffce14}, + {0x8334c630, 0xffffce15}, + {0x8334c631, 0xffffce16}, + {0x8334c632, 0xffffce17}, + {0x8334c633, 0xffffce18}, + {0x8334c634, 0xffffce19}, + {0x8334c635, 0xffffce1a}, + {0x8334c636, 0xffffce1b}, + {0x8334c637, 0xffffce1c}, + {0x8334c638, 0xffffce1d}, + {0x8334c639, 0xffffce1e}, + {0x8334c730, 0xffffce1f}, + {0x8334c731, 0xffffce20}, + {0x8334c732, 0xffffce21}, + {0x8334c733, 0xffffce22}, + {0x8334c734, 0xffffce23}, + {0x8334c735, 0xffffce24}, + {0x8334c736, 0xffffce25}, + {0x8334c737, 0xffffce26}, + {0x8334c738, 0xffffce27}, + {0x8334c739, 0xffffce28}, + {0x8334c830, 0xffffce29}, + {0x8334c831, 0xffffce2a}, + {0x8334c832, 0xffffce2b}, + {0x8334c833, 0xffffce2c}, + {0x8334c834, 0xffffce2d}, + {0x8334c835, 0xffffce2e}, + {0x8334c836, 0xffffce2f}, + {0x8334c837, 0xffffce30}, + {0x8334c838, 0xffffce31}, + {0x8334c839, 0xffffce32}, + {0x8334c930, 0xffffce33}, + {0x8334c931, 0xffffce34}, + {0x8334c932, 0xffffce35}, + {0x8334c933, 0xffffce36}, + {0x8334c934, 0xffffce37}, + {0x8334c935, 0xffffce38}, + {0x8334c936, 0xffffce39}, + {0x8334c937, 0xffffce3a}, + {0x8334c938, 0xffffce3b}, + {0x8334c939, 0xffffce3c}, + {0x8334ca30, 0xffffce3d}, + {0x8334ca31, 0xffffce3e}, + {0x8334ca32, 0xffffce3f}, + {0x8334ca33, 0xffffce40}, + {0x8334ca34, 0xffffce41}, + {0x8334ca35, 0xffffce42}, + {0x8334ca36, 0xffffce43}, + {0x8334ca37, 0xffffce44}, + {0x8334ca38, 0xffffce45}, + {0x8334ca39, 0xffffce46}, + {0x8334cb30, 0xffffce47}, + {0x8334cb31, 0xffffce48}, + {0x8334cb32, 0xffffce49}, + {0x8334cb33, 0xffffce4a}, + {0x8334cb34, 0xffffce4b}, + {0x8334cb35, 0xffffce4c}, + {0x8334cb36, 0xffffce4d}, + {0x8334cb37, 0xffffce4e}, + {0x8334cb38, 0xffffce4f}, + {0x8334cb39, 0xffffce50}, + {0x8334cc30, 0xffffce51}, + {0x8334cc31, 0xffffce52}, + {0x8334cc32, 0xffffce53}, + {0x8334cc33, 0xffffce54}, + {0x8334cc34, 0xffffce55}, + {0x8334cc35, 0xffffce56}, + {0x8334cc36, 0xffffce57}, + {0x8334cc37, 0xffffce58}, + {0x8334cc38, 0xffffce59}, + {0x8334cc39, 0xffffce5a}, + {0x8334cd30, 0xffffce5b}, + {0x8334cd31, 0xffffce5c}, + {0x8334cd32, 0xffffce5d}, + {0x8334cd33, 0xffffce5e}, + {0x8334cd34, 0xffffce5f}, + {0x8334cd35, 0xffffce60}, + {0x8334cd36, 0xffffce61}, + {0x8334cd37, 0xffffce62}, + {0x8334cd38, 0xffffce63}, + {0x8334cd39, 0xffffce64}, + {0x8334ce30, 0xffffce65}, + {0x8334ce31, 0xffffce66}, + {0x8334ce32, 0xffffce67}, + {0x8334ce33, 0xffffce68}, + {0x8334ce34, 0xffffce69}, + {0x8334ce35, 0xffffce6a}, + {0x8334ce36, 0xffffce6b}, + {0x8334ce37, 0xffffce6c}, + {0x8334ce38, 0xffffce6d}, + {0x8334ce39, 0xffffce6e}, + {0x8334cf30, 0xffffce6f}, + {0x8334cf31, 0xffffce70}, + {0x8334cf32, 0xffffce71}, + {0x8334cf33, 0xffffce72}, + {0x8334cf34, 0xffffce73}, + {0x8334cf35, 0xffffce74}, + {0x8334cf36, 0xffffce75}, + {0x8334cf37, 0xffffce76}, + {0x8334cf38, 0xffffce77}, + {0x8334cf39, 0xffffce78}, + {0x8334d030, 0xffffce79}, + {0x8334d031, 0xffffce7a}, + {0x8334d032, 0xffffce7b}, + {0x8334d033, 0xffffce7c}, + {0x8334d034, 0xffffce7d}, + {0x8334d035, 0xffffce7e}, + {0x8334d036, 0xffffce7f}, + {0x8334d037, 0xffffce80}, + {0x8334d038, 0xffffce81}, + {0x8334d039, 0xffffce82}, + {0x8334d130, 0xffffce83}, + {0x8334d131, 0xffffce84}, + {0x8334d132, 0xffffce85}, + {0x8334d133, 0xffffce86}, + {0x8334d134, 0xffffce87}, + {0x8334d135, 0xffffce88}, + {0x8334d136, 0xffffce89}, + {0x8334d137, 0xffffce8a}, + {0x8334d138, 0xffffce8b}, + {0x8334d139, 0xffffce8c}, + {0x8334d230, 0xffffce8d}, + {0x8334d231, 0xffffce8e}, + {0x8334d232, 0xffffce8f}, + {0x8334d233, 0xffffce90}, + {0x8334d234, 0xffffce91}, + {0x8334d235, 0xffffce92}, + {0x8334d236, 0xffffce93}, + {0x8334d237, 0xffffce94}, + {0x8334d238, 0xffffce95}, + {0x8334d239, 0xffffce96}, + {0x8334d330, 0xffffce97}, + {0x8334d331, 0xffffce98}, + {0x8334d332, 0xffffce99}, + {0x8334d333, 0xffffce9a}, + {0x8334d334, 0xffffce9b}, + {0x8334d335, 0xffffce9c}, + {0x8334d336, 0xffffce9d}, + {0x8334d337, 0xffffce9e}, + {0x8334d338, 0xffffce9f}, + {0x8334d339, 0xffffcea0}, + {0x8334d430, 0xffffcea1}, + {0x8334d431, 0xffffcea2}, + {0x8334d432, 0xffffcea3}, + {0x8334d433, 0xffffcea4}, + {0x8334d434, 0xffffcea5}, + {0x8334d435, 0xffffcea6}, + {0x8334d436, 0xffffcea7}, + {0x8334d437, 0xffffcea8}, + {0x8334d438, 0xffffcea9}, + {0x8334d439, 0xffffceaa}, + {0x8334d530, 0xffffceab}, + {0x8334d531, 0xffffceac}, + {0x8334d532, 0xffffcead}, + {0x8334d533, 0xffffceae}, + {0x8334d534, 0xffffceaf}, + {0x8334d535, 0xffffceb0}, + {0x8334d536, 0xffffceb1}, + {0x8334d537, 0xffffceb2}, + {0x8334d538, 0xffffceb3}, + {0x8334d539, 0xffffceb4}, + {0x8334d630, 0xffffceb5}, + {0x8334d631, 0xffffceb6}, + {0x8334d632, 0xffffceb7}, + {0x8334d633, 0xffffceb8}, + {0x8334d634, 0xffffceb9}, + {0x8334d635, 0xffffceba}, + {0x8334d636, 0xffffcebb}, + {0x8334d637, 0xffffcebc}, + {0x8334d638, 0xffffcebd}, + {0x8334d639, 0xffffcebe}, + {0x8334d730, 0xffffcebf}, + {0x8334d731, 0xffffcec0}, + {0x8334d732, 0xffffcec1}, + {0x8334d733, 0xffffcec2}, + {0x8334d734, 0xffffcec3}, + {0x8334d735, 0xffffcec4}, + {0x8334d736, 0xffffcec5}, + {0x8334d737, 0xffffcec6}, + {0x8334d738, 0xffffcec7}, + {0x8334d739, 0xffffcec8}, + {0x8334d830, 0xffffcec9}, + {0x8334d831, 0xffffceca}, + {0x8334d832, 0xffffcecb}, + {0x8334d833, 0xffffcecc}, + {0x8334d834, 0xffffcecd}, + {0x8334d835, 0xffffcece}, + {0x8334d836, 0xffffcecf}, + {0x8334d837, 0xffffced0}, + {0x8334d838, 0xffffced1}, + {0x8334d839, 0xffffced2}, + {0x8334d930, 0xffffced3}, + {0x8334d931, 0xffffced4}, + {0x8334d932, 0xffffced5}, + {0x8334d933, 0xffffced6}, + {0x8334d934, 0xffffced7}, + {0x8334d935, 0xffffced8}, + {0x8334d936, 0xffffced9}, + {0x8334d937, 0xffffceda}, + {0x8334d938, 0xffffcedb}, + {0x8334d939, 0xffffcedc}, + {0x8334da30, 0xffffcedd}, + {0x8334da31, 0xffffcede}, + {0x8334da32, 0xffffcedf}, + {0x8334da33, 0xffffcee0}, + {0x8334da34, 0xffffcee1}, + {0x8334da35, 0xffffcee2}, + {0x8334da36, 0xffffcee3}, + {0x8334da37, 0xffffcee4}, + {0x8334da38, 0xffffcee5}, + {0x8334da39, 0xffffcee6}, + {0x8334db30, 0xffffcee7}, + {0x8334db31, 0xffffcee8}, + {0x8334db32, 0xffffcee9}, + {0x8334db33, 0xffffceea}, + {0x8334db34, 0xffffceeb}, + {0x8334db35, 0xffffceec}, + {0x8334db36, 0xffffceed}, + {0x8334db37, 0xffffceee}, + {0x8334db38, 0xffffceef}, + {0x8334db39, 0xffffcef0}, + {0x8334dc30, 0xffffcef1}, + {0x8334dc31, 0xffffcef2}, + {0x8334dc32, 0xffffcef3}, + {0x8334dc33, 0xffffcef4}, + {0x8334dc34, 0xffffcef5}, + {0x8334dc35, 0xffffcef6}, + {0x8334dc36, 0xffffcef7}, + {0x8334dc37, 0xffffcef8}, + {0x8334dc38, 0xffffcef9}, + {0x8334dc39, 0xffffcefa}, + {0x8334dd30, 0xffffcefb}, + {0x8334dd31, 0xffffcefc}, + {0x8334dd32, 0xffffcefd}, + {0x8334dd33, 0xffffcefe}, + {0x8334dd34, 0xffffceff}, + {0x8334dd35, 0xffffcf00}, + {0x8334dd36, 0xffffcf01}, + {0x8334dd37, 0xffffcf02}, + {0x8334dd38, 0xffffcf03}, + {0x8334dd39, 0xffffcf04}, + {0x8334de30, 0xffffcf05}, + {0x8334de31, 0xffffcf06}, + {0x8334de32, 0xffffcf07}, + {0x8334de33, 0xffffcf08}, + {0x8334de34, 0xffffcf09}, + {0x8334de35, 0xffffcf0a}, + {0x8334de36, 0xffffcf0b}, + {0x8334de37, 0xffffcf0c}, + {0x8334de38, 0xffffcf0d}, + {0x8334de39, 0xffffcf0e}, + {0x8334df30, 0xffffcf0f}, + {0x8334df31, 0xffffcf10}, + {0x8334df32, 0xffffcf11}, + {0x8334df33, 0xffffcf12}, + {0x8334df34, 0xffffcf13}, + {0x8334df35, 0xffffcf14}, + {0x8334df36, 0xffffcf15}, + {0x8334df37, 0xffffcf16}, + {0x8334df38, 0xffffcf17}, + {0x8334df39, 0xffffcf18}, + {0x8334e030, 0xffffcf19}, + {0x8334e031, 0xffffcf1a}, + {0x8334e032, 0xffffcf1b}, + {0x8334e033, 0xffffcf1c}, + {0x8334e034, 0xffffcf1d}, + {0x8334e035, 0xffffcf1e}, + {0x8334e036, 0xffffcf1f}, + {0x8334e037, 0xffffcf20}, + {0x8334e038, 0xffffcf21}, + {0x8334e039, 0xffffcf22}, + {0x8334e130, 0xffffcf23}, + {0x8334e131, 0xffffcf24}, + {0x8334e132, 0xffffcf25}, + {0x8334e133, 0xffffcf26}, + {0x8334e134, 0xffffcf27}, + {0x8334e135, 0xffffcf28}, + {0x8334e136, 0xffffcf29}, + {0x8334e137, 0xffffcf2a}, + {0x8334e138, 0xffffcf2b}, + {0x8334e139, 0xffffcf2c}, + {0x8334e230, 0xffffcf2d}, + {0x8334e231, 0xffffcf2e}, + {0x8334e232, 0xffffcf2f}, + {0x8334e233, 0xffffcf30}, + {0x8334e234, 0xffffcf31}, + {0x8334e235, 0xffffcf32}, + {0x8334e236, 0xffffcf33}, + {0x8334e237, 0xffffcf34}, + {0x8334e238, 0xffffcf35}, + {0x8334e239, 0xffffcf36}, + {0x8334e330, 0xffffcf37}, + {0x8334e331, 0xffffcf38}, + {0x8334e332, 0xffffcf39}, + {0x8334e333, 0xffffcf3a}, + {0x8334e334, 0xffffcf3b}, + {0x8334e335, 0xffffcf3c}, + {0x8334e336, 0xffffcf3d}, + {0x8334e337, 0xffffcf3e}, + {0x8334e338, 0xffffcf3f}, + {0x8334e339, 0xffffcf40}, + {0x8334e430, 0xffffcf41}, + {0x8334e431, 0xffffcf42}, + {0x8334e432, 0xffffcf43}, + {0x8334e433, 0xffffcf44}, + {0x8334e434, 0xffffcf45}, + {0x8334e435, 0xffffcf46}, + {0x8334e436, 0xffffcf47}, + {0x8334e437, 0xffffcf48}, + {0x8334e438, 0xffffcf49}, + {0x8334e439, 0xffffcf4a}, + {0x8334e530, 0xffffcf4b}, + {0x8334e531, 0xffffcf4c}, + {0x8334e532, 0xffffcf4d}, + {0x8334e533, 0xffffcf4e}, + {0x8334e534, 0xffffcf4f}, + {0x8334e535, 0xffffcf50}, + {0x8334e536, 0xffffcf51}, + {0x8334e537, 0xffffcf52}, + {0x8334e538, 0xffffcf53}, + {0x8334e539, 0xffffcf54}, + {0x8334e630, 0xffffcf55}, + {0x8334e631, 0xffffcf56}, + {0x8334e632, 0xffffcf57}, + {0x8334e633, 0xffffcf58}, + {0x8334e634, 0xffffcf59}, + {0x8334e635, 0xffffcf5a}, + {0x8334e636, 0xffffcf5b}, + {0x8334e637, 0xffffcf5c}, + {0x8334e638, 0xffffcf5d}, + {0x8334e639, 0xffffcf5e}, + {0x8334e730, 0xffffcf5f}, + {0x8334e731, 0xffffcf60}, + {0x8334e732, 0xffffcf61}, + {0x8334e733, 0xffffcf62}, + {0x8334e734, 0xffffcf63}, + {0x8334e735, 0xffffcf64}, + {0x8334e736, 0xffffcf65}, + {0x8334e737, 0xffffcf66}, + {0x8334e738, 0xffffcf67}, + {0x8334e739, 0xffffcf68}, + {0x8334e830, 0xffffcf69}, + {0x8334e831, 0xffffcf6a}, + {0x8334e832, 0xffffcf6b}, + {0x8334e833, 0xffffcf6c}, + {0x8334e834, 0xffffcf6d}, + {0x8334e835, 0xffffcf6e}, + {0x8334e836, 0xffffcf6f}, + {0x8334e837, 0xffffcf70}, + {0x8334e838, 0xffffcf71}, + {0x8334e839, 0xffffcf72}, + {0x8334e930, 0xffffcf73}, + {0x8334e931, 0xffffcf74}, + {0x8334e932, 0xffffcf75}, + {0x8334e933, 0xffffcf76}, + {0x8334e934, 0xffffcf77}, + {0x8334e935, 0xffffcf78}, + {0x8334e936, 0xffffcf79}, + {0x8334e937, 0xffffcf7a}, + {0x8334e938, 0xffffcf7b}, + {0x8334e939, 0xffffcf7c}, + {0x8334ea30, 0xffffcf7d}, + {0x8334ea31, 0xffffcf7e}, + {0x8334ea32, 0xffffcf7f}, + {0x8334ea33, 0xffffcf80}, + {0x8334ea34, 0xffffcf81}, + {0x8334ea35, 0xffffcf82}, + {0x8334ea36, 0xffffcf83}, + {0x8334ea37, 0xffffcf84}, + {0x8334ea38, 0xffffcf85}, + {0x8334ea39, 0xffffcf86}, + {0x8334eb30, 0xffffcf87}, + {0x8334eb31, 0xffffcf88}, + {0x8334eb32, 0xffffcf89}, + {0x8334eb33, 0xffffcf8a}, + {0x8334eb34, 0xffffcf8b}, + {0x8334eb35, 0xffffcf8c}, + {0x8334eb36, 0xffffcf8d}, + {0x8334eb37, 0xffffcf8e}, + {0x8334eb38, 0xffffcf8f}, + {0x8334eb39, 0xffffcf90}, + {0x8334ec30, 0xffffcf91}, + {0x8334ec31, 0xffffcf92}, + {0x8334ec32, 0xffffcf93}, + {0x8334ec33, 0xffffcf94}, + {0x8334ec34, 0xffffcf95}, + {0x8334ec35, 0xffffcf96}, + {0x8334ec36, 0xffffcf97}, + {0x8334ec37, 0xffffcf98}, + {0x8334ec38, 0xffffcf99}, + {0x8334ec39, 0xffffcf9a}, + {0x8334ed30, 0xffffcf9b}, + {0x8334ed31, 0xffffcf9c}, + {0x8334ed32, 0xffffcf9d}, + {0x8334ed33, 0xffffcf9e}, + {0x8334ed34, 0xffffcf9f}, + {0x8334ed35, 0xffffcfa0}, + {0x8334ed36, 0xffffcfa1}, + {0x8334ed37, 0xffffcfa2}, + {0x8334ed38, 0xffffcfa3}, + {0x8334ed39, 0xffffcfa4}, + {0x8334ee30, 0xffffcfa5}, + {0x8334ee31, 0xffffcfa6}, + {0x8334ee32, 0xffffcfa7}, + {0x8334ee33, 0xffffcfa8}, + {0x8334ee34, 0xffffcfa9}, + {0x8334ee35, 0xffffcfaa}, + {0x8334ee36, 0xffffcfab}, + {0x8334ee37, 0xffffcfac}, + {0x8334ee38, 0xffffcfad}, + {0x8334ee39, 0xffffcfae}, + {0x8334ef30, 0xffffcfaf}, + {0x8334ef31, 0xffffcfb0}, + {0x8334ef32, 0xffffcfb1}, + {0x8334ef33, 0xffffcfb2}, + {0x8334ef34, 0xffffcfb3}, + {0x8334ef35, 0xffffcfb4}, + {0x8334ef36, 0xffffcfb5}, + {0x8334ef37, 0xffffcfb6}, + {0x8334ef38, 0xffffcfb7}, + {0x8334ef39, 0xffffcfb8}, + {0x8334f030, 0xffffcfb9}, + {0x8334f031, 0xffffcfba}, + {0x8334f032, 0xffffcfbb}, + {0x8334f033, 0xffffcfbc}, + {0x8334f034, 0xffffcfbd}, + {0x8334f035, 0xffffcfbe}, + {0x8334f036, 0xffffcfbf}, + {0x8334f037, 0xffffcfc0}, + {0x8334f038, 0xffffcfc1}, + {0x8334f039, 0xffffcfc2}, + {0x8334f130, 0xffffcfc3}, + {0x8334f131, 0xffffcfc4}, + {0x8334f132, 0xffffcfc5}, + {0x8334f133, 0xffffcfc6}, + {0x8334f134, 0xffffcfc7}, + {0x8334f135, 0xffffcfc8}, + {0x8334f136, 0xffffcfc9}, + {0x8334f137, 0xffffcfca}, + {0x8334f138, 0xffffcfcb}, + {0x8334f139, 0xffffcfcc}, + {0x8334f230, 0xffffcfcd}, + {0x8334f231, 0xffffcfce}, + {0x8334f232, 0xffffcfcf}, + {0x8334f233, 0xffffcfd0}, + {0x8334f234, 0xffffcfd1}, + {0x8334f235, 0xffffcfd2}, + {0x8334f236, 0xffffcfd3}, + {0x8334f237, 0xffffcfd4}, + {0x8334f238, 0xffffcfd5}, + {0x8334f239, 0xffffcfd6}, + {0x8334f330, 0xffffcfd7}, + {0x8334f331, 0xffffcfd8}, + {0x8334f332, 0xffffcfd9}, + {0x8334f333, 0xffffcfda}, + {0x8334f334, 0xffffcfdb}, + {0x8334f335, 0xffffcfdc}, + {0x8334f336, 0xffffcfdd}, + {0x8334f337, 0xffffcfde}, + {0x8334f338, 0xffffcfdf}, + {0x8334f339, 0xffffcfe0}, + {0x8334f430, 0xffffcfe1}, + {0x8334f431, 0xffffcfe2}, + {0x8334f432, 0xffffcfe3}, + {0x8334f433, 0xffffcfe4}, + {0x8334f434, 0xffffcfe5}, + {0x8334f435, 0xffffcfe6}, + {0x8334f436, 0xffffcfe7}, + {0x8334f437, 0xffffcfe8}, + {0x8334f438, 0xffffcfe9}, + {0x8334f439, 0xffffcfea}, + {0x8334f530, 0xffffcfeb}, + {0x8334f531, 0xffffcfec}, + {0x8334f532, 0xffffcfed}, + {0x8334f533, 0xffffcfee}, + {0x8334f534, 0xffffcfef}, + {0x8334f535, 0xffffcff0}, + {0x8334f536, 0xffffcff1}, + {0x8334f537, 0xffffcff2}, + {0x8334f538, 0xffffcff3}, + {0x8334f539, 0xffffcff4}, + {0x8334f630, 0xffffcff5}, + {0x8334f631, 0xffffcff6}, + {0x8334f632, 0xffffcff7}, + {0x8334f633, 0xffffcff8}, + {0x8334f634, 0xffffcff9}, + {0x8334f635, 0xffffcffa}, + {0x8334f636, 0xffffcffb}, + {0x8334f637, 0xffffcffc}, + {0x8334f638, 0xffffcffd}, + {0x8334f639, 0xffffcffe}, + {0x8334f730, 0xffffcfff}, + {0x8334f731, 0xffffd000}, + {0x8334f732, 0xffffd001}, + {0x8334f733, 0xffffd002}, + {0x8334f734, 0xffffd003}, + {0x8334f735, 0xffffd004}, + {0x8334f736, 0xffffd005}, + {0x8334f737, 0xffffd006}, + {0x8334f738, 0xffffd007}, + {0x8334f739, 0xffffd008}, + {0x8334f830, 0xffffd009}, + {0x8334f831, 0xffffd00a}, + {0x8334f832, 0xffffd00b}, + {0x8334f833, 0xffffd00c}, + {0x8334f834, 0xffffd00d}, + {0x8334f835, 0xffffd00e}, + {0x8334f836, 0xffffd00f}, + {0x8334f837, 0xffffd010}, + {0x8334f838, 0xffffd011}, + {0x8334f839, 0xffffd012}, + {0x8334f930, 0xffffd013}, + {0x8334f931, 0xffffd014}, + {0x8334f932, 0xffffd015}, + {0x8334f933, 0xffffd016}, + {0x8334f934, 0xffffd017}, + {0x8334f935, 0xffffd018}, + {0x8334f936, 0xffffd019}, + {0x8334f937, 0xffffd01a}, + {0x8334f938, 0xffffd01b}, + {0x8334f939, 0xffffd01c}, + {0x8334fa30, 0xffffd01d}, + {0x8334fa31, 0xffffd01e}, + {0x8334fa32, 0xffffd01f}, + {0x8334fa33, 0xffffd020}, + {0x8334fa34, 0xffffd021}, + {0x8334fa35, 0xffffd022}, + {0x8334fa36, 0xffffd023}, + {0x8334fa37, 0xffffd024}, + {0x8334fa38, 0xffffd025}, + {0x8334fa39, 0xffffd026}, + {0x8334fb30, 0xffffd027}, + {0x8334fb31, 0xffffd028}, + {0x8334fb32, 0xffffd029}, + {0x8334fb33, 0xffffd02a}, + {0x8334fb34, 0xffffd02b}, + {0x8334fb35, 0xffffd02c}, + {0x8334fb36, 0xffffd02d}, + {0x8334fb37, 0xffffd02e}, + {0x8334fb38, 0xffffd02f}, + {0x8334fb39, 0xffffd030}, + {0x8334fc30, 0xffffd031}, + {0x8334fc31, 0xffffd032}, + {0x8334fc32, 0xffffd033}, + {0x8334fc33, 0xffffd034}, + {0x8334fc34, 0xffffd035}, + {0x8334fc35, 0xffffd036}, + {0x8334fc36, 0xffffd037}, + {0x8334fc37, 0xffffd038}, + {0x8334fc38, 0xffffd039}, + {0x8334fc39, 0xffffd03a}, + {0x8334fd30, 0xffffd03b}, + {0x8334fd31, 0xffffd03c}, + {0x8334fd32, 0xffffd03d}, + {0x8334fd33, 0xffffd03e}, + {0x8334fd34, 0xffffd03f}, + {0x8334fd35, 0xffffd040}, + {0x8334fd36, 0xffffd041}, + {0x8334fd37, 0xffffd042}, + {0x8334fd38, 0xffffd043}, + {0x8334fd39, 0xffffd044}, + {0x8334fe30, 0xffffd045}, + {0x8334fe31, 0xffffd046}, + {0x8334fe32, 0xffffd047}, + {0x8334fe33, 0xffffd048}, + {0x8334fe34, 0xffffd049}, + {0x8334fe35, 0xffffd04a}, + {0x8334fe36, 0xffffd04b}, + {0x8334fe37, 0xffffd04c}, + {0x8334fe38, 0xffffd04d}, + {0x8334fe39, 0xffffd04e}, + {0x83358130, 0xffffd04f}, + {0x83358131, 0xffffd050}, + {0x83358132, 0xffffd051}, + {0x83358133, 0xffffd052}, + {0x83358134, 0xffffd053}, + {0x83358135, 0xffffd054}, + {0x83358136, 0xffffd055}, + {0x83358137, 0xffffd056}, + {0x83358138, 0xffffd057}, + {0x83358139, 0xffffd058}, + {0x83358230, 0xffffd059}, + {0x83358231, 0xffffd05a}, + {0x83358232, 0xffffd05b}, + {0x83358233, 0xffffd05c}, + {0x83358234, 0xffffd05d}, + {0x83358235, 0xffffd05e}, + {0x83358236, 0xffffd05f}, + {0x83358237, 0xffffd060}, + {0x83358238, 0xffffd061}, + {0x83358239, 0xffffd062}, + {0x83358330, 0xffffd063}, + {0x83358331, 0xffffd064}, + {0x83358332, 0xffffd065}, + {0x83358333, 0xffffd066}, + {0x83358334, 0xffffd067}, + {0x83358335, 0xffffd068}, + {0x83358336, 0xffffd069}, + {0x83358337, 0xffffd06a}, + {0x83358338, 0xffffd06b}, + {0x83358339, 0xffffd06c}, + {0x83358430, 0xffffd06d}, + {0x83358431, 0xffffd06e}, + {0x83358432, 0xffffd06f}, + {0x83358433, 0xffffd070}, + {0x83358434, 0xffffd071}, + {0x83358435, 0xffffd072}, + {0x83358436, 0xffffd073}, + {0x83358437, 0xffffd074}, + {0x83358438, 0xffffd075}, + {0x83358439, 0xffffd076}, + {0x83358530, 0xffffd077}, + {0x83358531, 0xffffd078}, + {0x83358532, 0xffffd079}, + {0x83358533, 0xffffd07a}, + {0x83358534, 0xffffd07b}, + {0x83358535, 0xffffd07c}, + {0x83358536, 0xffffd07d}, + {0x83358537, 0xffffd07e}, + {0x83358538, 0xffffd07f}, + {0x83358539, 0xffffd080}, + {0x83358630, 0xffffd081}, + {0x83358631, 0xffffd082}, + {0x83358632, 0xffffd083}, + {0x83358633, 0xffffd084}, + {0x83358634, 0xffffd085}, + {0x83358635, 0xffffd086}, + {0x83358636, 0xffffd087}, + {0x83358637, 0xffffd088}, + {0x83358638, 0xffffd089}, + {0x83358639, 0xffffd08a}, + {0x83358730, 0xffffd08b}, + {0x83358731, 0xffffd08c}, + {0x83358732, 0xffffd08d}, + {0x83358733, 0xffffd08e}, + {0x83358734, 0xffffd08f}, + {0x83358735, 0xffffd090}, + {0x83358736, 0xffffd091}, + {0x83358737, 0xffffd092}, + {0x83358738, 0xffffd093}, + {0x83358739, 0xffffd094}, + {0x83358830, 0xffffd095}, + {0x83358831, 0xffffd096}, + {0x83358832, 0xffffd097}, + {0x83358833, 0xffffd098}, + {0x83358834, 0xffffd099}, + {0x83358835, 0xffffd09a}, + {0x83358836, 0xffffd09b}, + {0x83358837, 0xffffd09c}, + {0x83358838, 0xffffd09d}, + {0x83358839, 0xffffd09e}, + {0x83358930, 0xffffd09f}, + {0x83358931, 0xffffd0a0}, + {0x83358932, 0xffffd0a1}, + {0x83358933, 0xffffd0a2}, + {0x83358934, 0xffffd0a3}, + {0x83358935, 0xffffd0a4}, + {0x83358936, 0xffffd0a5}, + {0x83358937, 0xffffd0a6}, + {0x83358938, 0xffffd0a7}, + {0x83358939, 0xffffd0a8}, + {0x83358a30, 0xffffd0a9}, + {0x83358a31, 0xffffd0aa}, + {0x83358a32, 0xffffd0ab}, + {0x83358a33, 0xffffd0ac}, + {0x83358a34, 0xffffd0ad}, + {0x83358a35, 0xffffd0ae}, + {0x83358a36, 0xffffd0af}, + {0x83358a37, 0xffffd0b0}, + {0x83358a38, 0xffffd0b1}, + {0x83358a39, 0xffffd0b2}, + {0x83358b30, 0xffffd0b3}, + {0x83358b31, 0xffffd0b4}, + {0x83358b32, 0xffffd0b5}, + {0x83358b33, 0xffffd0b6}, + {0x83358b34, 0xffffd0b7}, + {0x83358b35, 0xffffd0b8}, + {0x83358b36, 0xffffd0b9}, + {0x83358b37, 0xffffd0ba}, + {0x83358b38, 0xffffd0bb}, + {0x83358b39, 0xffffd0bc}, + {0x83358c30, 0xffffd0bd}, + {0x83358c31, 0xffffd0be}, + {0x83358c32, 0xffffd0bf}, + {0x83358c33, 0xffffd0c0}, + {0x83358c34, 0xffffd0c1}, + {0x83358c35, 0xffffd0c2}, + {0x83358c36, 0xffffd0c3}, + {0x83358c37, 0xffffd0c4}, + {0x83358c38, 0xffffd0c5}, + {0x83358c39, 0xffffd0c6}, + {0x83358d30, 0xffffd0c7}, + {0x83358d31, 0xffffd0c8}, + {0x83358d32, 0xffffd0c9}, + {0x83358d33, 0xffffd0ca}, + {0x83358d34, 0xffffd0cb}, + {0x83358d35, 0xffffd0cc}, + {0x83358d36, 0xffffd0cd}, + {0x83358d37, 0xffffd0ce}, + {0x83358d38, 0xffffd0cf}, + {0x83358d39, 0xffffd0d0}, + {0x83358e30, 0xffffd0d1}, + {0x83358e31, 0xffffd0d2}, + {0x83358e32, 0xffffd0d3}, + {0x83358e33, 0xffffd0d4}, + {0x83358e34, 0xffffd0d5}, + {0x83358e35, 0xffffd0d6}, + {0x83358e36, 0xffffd0d7}, + {0x83358e37, 0xffffd0d8}, + {0x83358e38, 0xffffd0d9}, + {0x83358e39, 0xffffd0da}, + {0x83358f30, 0xffffd0db}, + {0x83358f31, 0xffffd0dc}, + {0x83358f32, 0xffffd0dd}, + {0x83358f33, 0xffffd0de}, + {0x83358f34, 0xffffd0df}, + {0x83358f35, 0xffffd0e0}, + {0x83358f36, 0xffffd0e1}, + {0x83358f37, 0xffffd0e2}, + {0x83358f38, 0xffffd0e3}, + {0x83358f39, 0xffffd0e4}, + {0x83359030, 0xffffd0e5}, + {0x83359031, 0xffffd0e6}, + {0x83359032, 0xffffd0e7}, + {0x83359033, 0xffffd0e8}, + {0x83359034, 0xffffd0e9}, + {0x83359035, 0xffffd0ea}, + {0x83359036, 0xffffd0eb}, + {0x83359037, 0xffffd0ec}, + {0x83359038, 0xffffd0ed}, + {0x83359039, 0xffffd0ee}, + {0x83359130, 0xffffd0ef}, + {0x83359131, 0xffffd0f0}, + {0x83359132, 0xffffd0f1}, + {0x83359133, 0xffffd0f2}, + {0x83359134, 0xffffd0f3}, + {0x83359135, 0xffffd0f4}, + {0x83359136, 0xffffd0f5}, + {0x83359137, 0xffffd0f6}, + {0x83359138, 0xffffd0f7}, + {0x83359139, 0xffffd0f8}, + {0x83359230, 0xffffd0f9}, + {0x83359231, 0xffffd0fa}, + {0x83359232, 0xffffd0fb}, + {0x83359233, 0xffffd0fc}, + {0x83359234, 0xffffd0fd}, + {0x83359235, 0xffffd0fe}, + {0x83359236, 0xffffd0ff}, + {0x83359237, 0xffffd100}, + {0x83359238, 0xffffd101}, + {0x83359239, 0xffffd102}, + {0x83359330, 0xffffd103}, + {0x83359331, 0xffffd104}, + {0x83359332, 0xffffd105}, + {0x83359333, 0xffffd106}, + {0x83359334, 0xffffd107}, + {0x83359335, 0xffffd108}, + {0x83359336, 0xffffd109}, + {0x83359337, 0xffffd10a}, + {0x83359338, 0xffffd10b}, + {0x83359339, 0xffffd10c}, + {0x83359430, 0xffffd10d}, + {0x83359431, 0xffffd10e}, + {0x83359432, 0xffffd10f}, + {0x83359433, 0xffffd110}, + {0x83359434, 0xffffd111}, + {0x83359435, 0xffffd112}, + {0x83359436, 0xffffd113}, + {0x83359437, 0xffffd114}, + {0x83359438, 0xffffd115}, + {0x83359439, 0xffffd116}, + {0x83359530, 0xffffd117}, + {0x83359531, 0xffffd118}, + {0x83359532, 0xffffd119}, + {0x83359533, 0xffffd11a}, + {0x83359534, 0xffffd11b}, + {0x83359535, 0xffffd11c}, + {0x83359536, 0xffffd11d}, + {0x83359537, 0xffffd11e}, + {0x83359538, 0xffffd11f}, + {0x83359539, 0xffffd120}, + {0x83359630, 0xffffd121}, + {0x83359631, 0xffffd122}, + {0x83359632, 0xffffd123}, + {0x83359633, 0xffffd124}, + {0x83359634, 0xffffd125}, + {0x83359635, 0xffffd126}, + {0x83359636, 0xffffd127}, + {0x83359637, 0xffffd128}, + {0x83359638, 0xffffd129}, + {0x83359639, 0xffffd12a}, + {0x83359730, 0xffffd12b}, + {0x83359731, 0xffffd12c}, + {0x83359732, 0xffffd12d}, + {0x83359733, 0xffffd12e}, + {0x83359734, 0xffffd12f}, + {0x83359735, 0xffffd130}, + {0x83359736, 0xffffd131}, + {0x83359737, 0xffffd132}, + {0x83359738, 0xffffd133}, + {0x83359739, 0xffffd134}, + {0x83359830, 0xffffd135}, + {0x83359831, 0xffffd136}, + {0x83359832, 0xffffd137}, + {0x83359833, 0xffffd138}, + {0x83359834, 0xffffd139}, + {0x83359835, 0xffffd13a}, + {0x83359836, 0xffffd13b}, + {0x83359837, 0xffffd13c}, + {0x83359838, 0xffffd13d}, + {0x83359839, 0xffffd13e}, + {0x83359930, 0xffffd13f}, + {0x83359931, 0xffffd140}, + {0x83359932, 0xffffd141}, + {0x83359933, 0xffffd142}, + {0x83359934, 0xffffd143}, + {0x83359935, 0xffffd144}, + {0x83359936, 0xffffd145}, + {0x83359937, 0xffffd146}, + {0x83359938, 0xffffd147}, + {0x83359939, 0xffffd148}, + {0x83359a30, 0xffffd149}, + {0x83359a31, 0xffffd14a}, + {0x83359a32, 0xffffd14b}, + {0x83359a33, 0xffffd14c}, + {0x83359a34, 0xffffd14d}, + {0x83359a35, 0xffffd14e}, + {0x83359a36, 0xffffd14f}, + {0x83359a37, 0xffffd150}, + {0x83359a38, 0xffffd151}, + {0x83359a39, 0xffffd152}, + {0x83359b30, 0xffffd153}, + {0x83359b31, 0xffffd154}, + {0x83359b32, 0xffffd155}, + {0x83359b33, 0xffffd156}, + {0x83359b34, 0xffffd157}, + {0x83359b35, 0xffffd158}, + {0x83359b36, 0xffffd159}, + {0x83359b37, 0xffffd15a}, + {0x83359b38, 0xffffd15b}, + {0x83359b39, 0xffffd15c}, + {0x83359c30, 0xffffd15d}, + {0x83359c31, 0xffffd15e}, + {0x83359c32, 0xffffd15f}, + {0x83359c33, 0xffffd160}, + {0x83359c34, 0xffffd161}, + {0x83359c35, 0xffffd162}, + {0x83359c36, 0xffffd163}, + {0x83359c37, 0xffffd164}, + {0x83359c38, 0xffffd165}, + {0x83359c39, 0xffffd166}, + {0x83359d30, 0xffffd167}, + {0x83359d31, 0xffffd168}, + {0x83359d32, 0xffffd169}, + {0x83359d33, 0xffffd16a}, + {0x83359d34, 0xffffd16b}, + {0x83359d35, 0xffffd16c}, + {0x83359d36, 0xffffd16d}, + {0x83359d37, 0xffffd16e}, + {0x83359d38, 0xffffd16f}, + {0x83359d39, 0xffffd170}, + {0x83359e30, 0xffffd171}, + {0x83359e31, 0xffffd172}, + {0x83359e32, 0xffffd173}, + {0x83359e33, 0xffffd174}, + {0x83359e34, 0xffffd175}, + {0x83359e35, 0xffffd176}, + {0x83359e36, 0xffffd177}, + {0x83359e37, 0xffffd178}, + {0x83359e38, 0xffffd179}, + {0x83359e39, 0xffffd17a}, + {0x83359f30, 0xffffd17b}, + {0x83359f31, 0xffffd17c}, + {0x83359f32, 0xffffd17d}, + {0x83359f33, 0xffffd17e}, + {0x83359f34, 0xffffd17f}, + {0x83359f35, 0xffffd180}, + {0x83359f36, 0xffffd181}, + {0x83359f37, 0xffffd182}, + {0x83359f38, 0xffffd183}, + {0x83359f39, 0xffffd184}, + {0x8335a030, 0xffffd185}, + {0x8335a031, 0xffffd186}, + {0x8335a032, 0xffffd187}, + {0x8335a033, 0xffffd188}, + {0x8335a034, 0xffffd189}, + {0x8335a035, 0xffffd18a}, + {0x8335a036, 0xffffd18b}, + {0x8335a037, 0xffffd18c}, + {0x8335a038, 0xffffd18d}, + {0x8335a039, 0xffffd18e}, + {0x8335a130, 0xffffd18f}, + {0x8335a131, 0xffffd190}, + {0x8335a132, 0xffffd191}, + {0x8335a133, 0xffffd192}, + {0x8335a134, 0xffffd193}, + {0x8335a135, 0xffffd194}, + {0x8335a136, 0xffffd195}, + {0x8335a137, 0xffffd196}, + {0x8335a138, 0xffffd197}, + {0x8335a139, 0xffffd198}, + {0x8335a230, 0xffffd199}, + {0x8335a231, 0xffffd19a}, + {0x8335a232, 0xffffd19b}, + {0x8335a233, 0xffffd19c}, + {0x8335a234, 0xffffd19d}, + {0x8335a235, 0xffffd19e}, + {0x8335a236, 0xffffd19f}, + {0x8335a237, 0xffffd1a0}, + {0x8335a238, 0xffffd1a1}, + {0x8335a239, 0xffffd1a2}, + {0x8335a330, 0xffffd1a3}, + {0x8335a331, 0xffffd1a4}, + {0x8335a332, 0xffffd1a5}, + {0x8335a333, 0xffffd1a6}, + {0x8335a334, 0xffffd1a7}, + {0x8335a335, 0xffffd1a8}, + {0x8335a336, 0xffffd1a9}, + {0x8335a337, 0xffffd1aa}, + {0x8335a338, 0xffffd1ab}, + {0x8335a339, 0xffffd1ac}, + {0x8335a430, 0xffffd1ad}, + {0x8335a431, 0xffffd1ae}, + {0x8335a432, 0xffffd1af}, + {0x8335a433, 0xffffd1b0}, + {0x8335a434, 0xffffd1b1}, + {0x8335a435, 0xffffd1b2}, + {0x8335a436, 0xffffd1b3}, + {0x8335a437, 0xffffd1b4}, + {0x8335a438, 0xffffd1b5}, + {0x8335a439, 0xffffd1b6}, + {0x8335a530, 0xffffd1b7}, + {0x8335a531, 0xffffd1b8}, + {0x8335a532, 0xffffd1b9}, + {0x8335a533, 0xffffd1ba}, + {0x8335a534, 0xffffd1bb}, + {0x8335a535, 0xffffd1bc}, + {0x8335a536, 0xffffd1bd}, + {0x8335a537, 0xffffd1be}, + {0x8335a538, 0xffffd1bf}, + {0x8335a539, 0xffffd1c0}, + {0x8335a630, 0xffffd1c1}, + {0x8335a631, 0xffffd1c2}, + {0x8335a632, 0xffffd1c3}, + {0x8335a633, 0xffffd1c4}, + {0x8335a634, 0xffffd1c5}, + {0x8335a635, 0xffffd1c6}, + {0x8335a636, 0xffffd1c7}, + {0x8335a637, 0xffffd1c8}, + {0x8335a638, 0xffffd1c9}, + {0x8335a639, 0xffffd1ca}, + {0x8335a730, 0xffffd1cb}, + {0x8335a731, 0xffffd1cc}, + {0x8335a732, 0xffffd1cd}, + {0x8335a733, 0xffffd1ce}, + {0x8335a734, 0xffffd1cf}, + {0x8335a735, 0xffffd1d0}, + {0x8335a736, 0xffffd1d1}, + {0x8335a737, 0xffffd1d2}, + {0x8335a738, 0xffffd1d3}, + {0x8335a739, 0xffffd1d4}, + {0x8335a830, 0xffffd1d5}, + {0x8335a831, 0xffffd1d6}, + {0x8335a832, 0xffffd1d7}, + {0x8335a833, 0xffffd1d8}, + {0x8335a834, 0xffffd1d9}, + {0x8335a835, 0xffffd1da}, + {0x8335a836, 0xffffd1db}, + {0x8335a837, 0xffffd1dc}, + {0x8335a838, 0xffffd1dd}, + {0x8335a839, 0xffffd1de}, + {0x8335a930, 0xffffd1df}, + {0x8335a931, 0xffffd1e0}, + {0x8335a932, 0xffffd1e1}, + {0x8335a933, 0xffffd1e2}, + {0x8335a934, 0xffffd1e3}, + {0x8335a935, 0xffffd1e4}, + {0x8335a936, 0xffffd1e5}, + {0x8335a937, 0xffffd1e6}, + {0x8335a938, 0xffffd1e7}, + {0x8335a939, 0xffffd1e8}, + {0x8335aa30, 0xffffd1e9}, + {0x8335aa31, 0xffffd1ea}, + {0x8335aa32, 0xffffd1eb}, + {0x8335aa33, 0xffffd1ec}, + {0x8335aa34, 0xffffd1ed}, + {0x8335aa35, 0xffffd1ee}, + {0x8335aa36, 0xffffd1ef}, + {0x8335aa37, 0xffffd1f0}, + {0x8335aa38, 0xffffd1f1}, + {0x8335aa39, 0xffffd1f2}, + {0x8335ab30, 0xffffd1f3}, + {0x8335ab31, 0xffffd1f4}, + {0x8335ab32, 0xffffd1f5}, + {0x8335ab33, 0xffffd1f6}, + {0x8335ab34, 0xffffd1f7}, + {0x8335ab35, 0xffffd1f8}, + {0x8335ab36, 0xffffd1f9}, + {0x8335ab37, 0xffffd1fa}, + {0x8335ab38, 0xffffd1fb}, + {0x8335ab39, 0xffffd1fc}, + {0x8335ac30, 0xffffd1fd}, + {0x8335ac31, 0xffffd1fe}, + {0x8335ac32, 0xffffd1ff}, + {0x8335ac33, 0xffffd200}, + {0x8335ac34, 0xffffd201}, + {0x8335ac35, 0xffffd202}, + {0x8335ac36, 0xffffd203}, + {0x8335ac37, 0xffffd204}, + {0x8335ac38, 0xffffd205}, + {0x8335ac39, 0xffffd206}, + {0x8335ad30, 0xffffd207}, + {0x8335ad31, 0xffffd208}, + {0x8335ad32, 0xffffd209}, + {0x8335ad33, 0xffffd20a}, + {0x8335ad34, 0xffffd20b}, + {0x8335ad35, 0xffffd20c}, + {0x8335ad36, 0xffffd20d}, + {0x8335ad37, 0xffffd20e}, + {0x8335ad38, 0xffffd20f}, + {0x8335ad39, 0xffffd210}, + {0x8335ae30, 0xffffd211}, + {0x8335ae31, 0xffffd212}, + {0x8335ae32, 0xffffd213}, + {0x8335ae33, 0xffffd214}, + {0x8335ae34, 0xffffd215}, + {0x8335ae35, 0xffffd216}, + {0x8335ae36, 0xffffd217}, + {0x8335ae37, 0xffffd218}, + {0x8335ae38, 0xffffd219}, + {0x8335ae39, 0xffffd21a}, + {0x8335af30, 0xffffd21b}, + {0x8335af31, 0xffffd21c}, + {0x8335af32, 0xffffd21d}, + {0x8335af33, 0xffffd21e}, + {0x8335af34, 0xffffd21f}, + {0x8335af35, 0xffffd220}, + {0x8335af36, 0xffffd221}, + {0x8335af37, 0xffffd222}, + {0x8335af38, 0xffffd223}, + {0x8335af39, 0xffffd224}, + {0x8335b030, 0xffffd225}, + {0x8335b031, 0xffffd226}, + {0x8335b032, 0xffffd227}, + {0x8335b033, 0xffffd228}, + {0x8335b034, 0xffffd229}, + {0x8335b035, 0xffffd22a}, + {0x8335b036, 0xffffd22b}, + {0x8335b037, 0xffffd22c}, + {0x8335b038, 0xffffd22d}, + {0x8335b039, 0xffffd22e}, + {0x8335b130, 0xffffd22f}, + {0x8335b131, 0xffffd230}, + {0x8335b132, 0xffffd231}, + {0x8335b133, 0xffffd232}, + {0x8335b134, 0xffffd233}, + {0x8335b135, 0xffffd234}, + {0x8335b136, 0xffffd235}, + {0x8335b137, 0xffffd236}, + {0x8335b138, 0xffffd237}, + {0x8335b139, 0xffffd238}, + {0x8335b230, 0xffffd239}, + {0x8335b231, 0xffffd23a}, + {0x8335b232, 0xffffd23b}, + {0x8335b233, 0xffffd23c}, + {0x8335b234, 0xffffd23d}, + {0x8335b235, 0xffffd23e}, + {0x8335b236, 0xffffd23f}, + {0x8335b237, 0xffffd240}, + {0x8335b238, 0xffffd241}, + {0x8335b239, 0xffffd242}, + {0x8335b330, 0xffffd243}, + {0x8335b331, 0xffffd244}, + {0x8335b332, 0xffffd245}, + {0x8335b333, 0xffffd246}, + {0x8335b334, 0xffffd247}, + {0x8335b335, 0xffffd248}, + {0x8335b336, 0xffffd249}, + {0x8335b337, 0xffffd24a}, + {0x8335b338, 0xffffd24b}, + {0x8335b339, 0xffffd24c}, + {0x8335b430, 0xffffd24d}, + {0x8335b431, 0xffffd24e}, + {0x8335b432, 0xffffd24f}, + {0x8335b433, 0xffffd250}, + {0x8335b434, 0xffffd251}, + {0x8335b435, 0xffffd252}, + {0x8335b436, 0xffffd253}, + {0x8335b437, 0xffffd254}, + {0x8335b438, 0xffffd255}, + {0x8335b439, 0xffffd256}, + {0x8335b530, 0xffffd257}, + {0x8335b531, 0xffffd258}, + {0x8335b532, 0xffffd259}, + {0x8335b533, 0xffffd25a}, + {0x8335b534, 0xffffd25b}, + {0x8335b535, 0xffffd25c}, + {0x8335b536, 0xffffd25d}, + {0x8335b537, 0xffffd25e}, + {0x8335b538, 0xffffd25f}, + {0x8335b539, 0xffffd260}, + {0x8335b630, 0xffffd261}, + {0x8335b631, 0xffffd262}, + {0x8335b632, 0xffffd263}, + {0x8335b633, 0xffffd264}, + {0x8335b634, 0xffffd265}, + {0x8335b635, 0xffffd266}, + {0x8335b636, 0xffffd267}, + {0x8335b637, 0xffffd268}, + {0x8335b638, 0xffffd269}, + {0x8335b639, 0xffffd26a}, + {0x8335b730, 0xffffd26b}, + {0x8335b731, 0xffffd26c}, + {0x8335b732, 0xffffd26d}, + {0x8335b733, 0xffffd26e}, + {0x8335b734, 0xffffd26f}, + {0x8335b735, 0xffffd270}, + {0x8335b736, 0xffffd271}, + {0x8335b737, 0xffffd272}, + {0x8335b738, 0xffffd273}, + {0x8335b739, 0xffffd274}, + {0x8335b830, 0xffffd275}, + {0x8335b831, 0xffffd276}, + {0x8335b832, 0xffffd277}, + {0x8335b833, 0xffffd278}, + {0x8335b834, 0xffffd279}, + {0x8335b835, 0xffffd27a}, + {0x8335b836, 0xffffd27b}, + {0x8335b837, 0xffffd27c}, + {0x8335b838, 0xffffd27d}, + {0x8335b839, 0xffffd27e}, + {0x8335b930, 0xffffd27f}, + {0x8335b931, 0xffffd280}, + {0x8335b932, 0xffffd281}, + {0x8335b933, 0xffffd282}, + {0x8335b934, 0xffffd283}, + {0x8335b935, 0xffffd284}, + {0x8335b936, 0xffffd285}, + {0x8335b937, 0xffffd286}, + {0x8335b938, 0xffffd287}, + {0x8335b939, 0xffffd288}, + {0x8335ba30, 0xffffd289}, + {0x8335ba31, 0xffffd28a}, + {0x8335ba32, 0xffffd28b}, + {0x8335ba33, 0xffffd28c}, + {0x8335ba34, 0xffffd28d}, + {0x8335ba35, 0xffffd28e}, + {0x8335ba36, 0xffffd28f}, + {0x8335ba37, 0xffffd290}, + {0x8335ba38, 0xffffd291}, + {0x8335ba39, 0xffffd292}, + {0x8335bb30, 0xffffd293}, + {0x8335bb31, 0xffffd294}, + {0x8335bb32, 0xffffd295}, + {0x8335bb33, 0xffffd296}, + {0x8335bb34, 0xffffd297}, + {0x8335bb35, 0xffffd298}, + {0x8335bb36, 0xffffd299}, + {0x8335bb37, 0xffffd29a}, + {0x8335bb38, 0xffffd29b}, + {0x8335bb39, 0xffffd29c}, + {0x8335bc30, 0xffffd29d}, + {0x8335bc31, 0xffffd29e}, + {0x8335bc32, 0xffffd29f}, + {0x8335bc33, 0xffffd2a0}, + {0x8335bc34, 0xffffd2a1}, + {0x8335bc35, 0xffffd2a2}, + {0x8335bc36, 0xffffd2a3}, + {0x8335bc37, 0xffffd2a4}, + {0x8335bc38, 0xffffd2a5}, + {0x8335bc39, 0xffffd2a6}, + {0x8335bd30, 0xffffd2a7}, + {0x8335bd31, 0xffffd2a8}, + {0x8335bd32, 0xffffd2a9}, + {0x8335bd33, 0xffffd2aa}, + {0x8335bd34, 0xffffd2ab}, + {0x8335bd35, 0xffffd2ac}, + {0x8335bd36, 0xffffd2ad}, + {0x8335bd37, 0xffffd2ae}, + {0x8335bd38, 0xffffd2af}, + {0x8335bd39, 0xffffd2b0}, + {0x8335be30, 0xffffd2b1}, + {0x8335be31, 0xffffd2b2}, + {0x8335be32, 0xffffd2b3}, + {0x8335be33, 0xffffd2b4}, + {0x8335be34, 0xffffd2b5}, + {0x8335be35, 0xffffd2b6}, + {0x8335be36, 0xffffd2b7}, + {0x8335be37, 0xffffd2b8}, + {0x8335be38, 0xffffd2b9}, + {0x8335be39, 0xffffd2ba}, + {0x8335bf30, 0xffffd2bb}, + {0x8335bf31, 0xffffd2bc}, + {0x8335bf32, 0xffffd2bd}, + {0x8335bf33, 0xffffd2be}, + {0x8335bf34, 0xffffd2bf}, + {0x8335bf35, 0xffffd2c0}, + {0x8335bf36, 0xffffd2c1}, + {0x8335bf37, 0xffffd2c2}, + {0x8335bf38, 0xffffd2c3}, + {0x8335bf39, 0xffffd2c4}, + {0x8335c030, 0xffffd2c5}, + {0x8335c031, 0xffffd2c6}, + {0x8335c032, 0xffffd2c7}, + {0x8335c033, 0xffffd2c8}, + {0x8335c034, 0xffffd2c9}, + {0x8335c035, 0xffffd2ca}, + {0x8335c036, 0xffffd2cb}, + {0x8335c037, 0xffffd2cc}, + {0x8335c038, 0xffffd2cd}, + {0x8335c039, 0xffffd2ce}, + {0x8335c130, 0xffffd2cf}, + {0x8335c131, 0xffffd2d0}, + {0x8335c132, 0xffffd2d1}, + {0x8335c133, 0xffffd2d2}, + {0x8335c134, 0xffffd2d3}, + {0x8335c135, 0xffffd2d4}, + {0x8335c136, 0xffffd2d5}, + {0x8335c137, 0xffffd2d6}, + {0x8335c138, 0xffffd2d7}, + {0x8335c139, 0xffffd2d8}, + {0x8335c230, 0xffffd2d9}, + {0x8335c231, 0xffffd2da}, + {0x8335c232, 0xffffd2db}, + {0x8335c233, 0xffffd2dc}, + {0x8335c234, 0xffffd2dd}, + {0x8335c235, 0xffffd2de}, + {0x8335c236, 0xffffd2df}, + {0x8335c237, 0xffffd2e0}, + {0x8335c238, 0xffffd2e1}, + {0x8335c239, 0xffffd2e2}, + {0x8335c330, 0xffffd2e3}, + {0x8335c331, 0xffffd2e4}, + {0x8335c332, 0xffffd2e5}, + {0x8335c333, 0xffffd2e6}, + {0x8335c334, 0xffffd2e7}, + {0x8335c335, 0xffffd2e8}, + {0x8335c336, 0xffffd2e9}, + {0x8335c337, 0xffffd2ea}, + {0x8335c338, 0xffffd2eb}, + {0x8335c339, 0xffffd2ec}, + {0x8335c430, 0xffffd2ed}, + {0x8335c431, 0xffffd2ee}, + {0x8335c432, 0xffffd2ef}, + {0x8335c433, 0xffffd2f0}, + {0x8335c434, 0xffffd2f1}, + {0x8335c435, 0xffffd2f2}, + {0x8335c436, 0xffffd2f3}, + {0x8335c437, 0xffffd2f4}, + {0x8335c438, 0xffffd2f5}, + {0x8335c439, 0xffffd2f6}, + {0x8335c530, 0xffffd2f7}, + {0x8335c531, 0xffffd2f8}, + {0x8335c532, 0xffffd2f9}, + {0x8335c533, 0xffffd2fa}, + {0x8335c534, 0xffffd2fb}, + {0x8335c535, 0xffffd2fc}, + {0x8335c536, 0xffffd2fd}, + {0x8335c537, 0xffffd2fe}, + {0x8335c538, 0xffffd2ff}, + {0x8335c539, 0xffffd300}, + {0x8335c630, 0xffffd301}, + {0x8335c631, 0xffffd302}, + {0x8335c632, 0xffffd303}, + {0x8335c633, 0xffffd304}, + {0x8335c634, 0xffffd305}, + {0x8335c635, 0xffffd306}, + {0x8335c636, 0xffffd307}, + {0x8335c637, 0xffffd308}, + {0x8335c638, 0xffffd309}, + {0x8335c639, 0xffffd30a}, + {0x8335c730, 0xffffd30b}, + {0x8335c731, 0xffffd30c}, + {0x8335c732, 0xffffd30d}, + {0x8335c733, 0xffffd30e}, + {0x8335c734, 0xffffd30f}, + {0x8335c735, 0xffffd310}, + {0x8335c736, 0xffffd311}, + {0x8335c737, 0xffffd312}, + {0x8335c738, 0xffffd313}, + {0x8335c739, 0xffffd314}, + {0x8335c830, 0xffffd315}, + {0x8335c831, 0xffffd316}, + {0x8335c832, 0xffffd317}, + {0x8335c833, 0xffffd318}, + {0x8335c834, 0xffffd319}, + {0x8335c835, 0xffffd31a}, + {0x8335c836, 0xffffd31b}, + {0x8335c837, 0xffffd31c}, + {0x8335c838, 0xffffd31d}, + {0x8335c839, 0xffffd31e}, + {0x8335c930, 0xffffd31f}, + {0x8335c931, 0xffffd320}, + {0x8335c932, 0xffffd321}, + {0x8335c933, 0xffffd322}, + {0x8335c934, 0xffffd323}, + {0x8335c935, 0xffffd324}, + {0x8335c936, 0xffffd325}, + {0x8335c937, 0xffffd326}, + {0x8335c938, 0xffffd327}, + {0x8335c939, 0xffffd328}, + {0x8335ca30, 0xffffd329}, + {0x8335ca31, 0xffffd32a}, + {0x8335ca32, 0xffffd32b}, + {0x8335ca33, 0xffffd32c}, + {0x8335ca34, 0xffffd32d}, + {0x8335ca35, 0xffffd32e}, + {0x8335ca36, 0xffffd32f}, + {0x8335ca37, 0xffffd330}, + {0x8335ca38, 0xffffd331}, + {0x8335ca39, 0xffffd332}, + {0x8335cb30, 0xffffd333}, + {0x8335cb31, 0xffffd334}, + {0x8335cb32, 0xffffd335}, + {0x8335cb33, 0xffffd336}, + {0x8335cb34, 0xffffd337}, + {0x8335cb35, 0xffffd338}, + {0x8335cb36, 0xffffd339}, + {0x8335cb37, 0xffffd33a}, + {0x8335cb38, 0xffffd33b}, + {0x8335cb39, 0xffffd33c}, + {0x8335cc30, 0xffffd33d}, + {0x8335cc31, 0xffffd33e}, + {0x8335cc32, 0xffffd33f}, + {0x8335cc33, 0xffffd340}, + {0x8335cc34, 0xffffd341}, + {0x8335cc35, 0xffffd342}, + {0x8335cc36, 0xffffd343}, + {0x8335cc37, 0xffffd344}, + {0x8335cc38, 0xffffd345}, + {0x8335cc39, 0xffffd346}, + {0x8335cd30, 0xffffd347}, + {0x8335cd31, 0xffffd348}, + {0x8335cd32, 0xffffd349}, + {0x8335cd33, 0xffffd34a}, + {0x8335cd34, 0xffffd34b}, + {0x8335cd35, 0xffffd34c}, + {0x8335cd36, 0xffffd34d}, + {0x8335cd37, 0xffffd34e}, + {0x8335cd38, 0xffffd34f}, + {0x8335cd39, 0xffffd350}, + {0x8335ce30, 0xffffd351}, + {0x8335ce31, 0xffffd352}, + {0x8335ce32, 0xffffd353}, + {0x8335ce33, 0xffffd354}, + {0x8335ce34, 0xffffd355}, + {0x8335ce35, 0xffffd356}, + {0x8335ce36, 0xffffd357}, + {0x8335ce37, 0xffffd358}, + {0x8335ce38, 0xffffd359}, + {0x8335ce39, 0xffffd35a}, + {0x8335cf30, 0xffffd35b}, + {0x8335cf31, 0xffffd35c}, + {0x8335cf32, 0xffffd35d}, + {0x8335cf33, 0xffffd35e}, + {0x8335cf34, 0xffffd35f}, + {0x8335cf35, 0xffffd360}, + {0x8335cf36, 0xffffd361}, + {0x8335cf37, 0xffffd362}, + {0x8335cf38, 0xffffd363}, + {0x8335cf39, 0xffffd364}, + {0x8335d030, 0xffffd365}, + {0x8335d031, 0xffffd366}, + {0x8335d032, 0xffffd367}, + {0x8335d033, 0xffffd368}, + {0x8335d034, 0xffffd369}, + {0x8335d035, 0xffffd36a}, + {0x8335d036, 0xffffd36b}, + {0x8335d037, 0xffffd36c}, + {0x8335d038, 0xffffd36d}, + {0x8335d039, 0xffffd36e}, + {0x8335d130, 0xffffd36f}, + {0x8335d131, 0xffffd370}, + {0x8335d132, 0xffffd371}, + {0x8335d133, 0xffffd372}, + {0x8335d134, 0xffffd373}, + {0x8335d135, 0xffffd374}, + {0x8335d136, 0xffffd375}, + {0x8335d137, 0xffffd376}, + {0x8335d138, 0xffffd377}, + {0x8335d139, 0xffffd378}, + {0x8335d230, 0xffffd379}, + {0x8335d231, 0xffffd37a}, + {0x8335d232, 0xffffd37b}, + {0x8335d233, 0xffffd37c}, + {0x8335d234, 0xffffd37d}, + {0x8335d235, 0xffffd37e}, + {0x8335d236, 0xffffd37f}, + {0x8335d237, 0xffffd380}, + {0x8335d238, 0xffffd381}, + {0x8335d239, 0xffffd382}, + {0x8335d330, 0xffffd383}, + {0x8335d331, 0xffffd384}, + {0x8335d332, 0xffffd385}, + {0x8335d333, 0xffffd386}, + {0x8335d334, 0xffffd387}, + {0x8335d335, 0xffffd388}, + {0x8335d336, 0xffffd389}, + {0x8335d337, 0xffffd38a}, + {0x8335d338, 0xffffd38b}, + {0x8335d339, 0xffffd38c}, + {0x8335d430, 0xffffd38d}, + {0x8335d431, 0xffffd38e}, + {0x8335d432, 0xffffd38f}, + {0x8335d433, 0xffffd390}, + {0x8335d434, 0xffffd391}, + {0x8335d435, 0xffffd392}, + {0x8335d436, 0xffffd393}, + {0x8335d437, 0xffffd394}, + {0x8335d438, 0xffffd395}, + {0x8335d439, 0xffffd396}, + {0x8335d530, 0xffffd397}, + {0x8335d531, 0xffffd398}, + {0x8335d532, 0xffffd399}, + {0x8335d533, 0xffffd39a}, + {0x8335d534, 0xffffd39b}, + {0x8335d535, 0xffffd39c}, + {0x8335d536, 0xffffd39d}, + {0x8335d537, 0xffffd39e}, + {0x8335d538, 0xffffd39f}, + {0x8335d539, 0xffffd3a0}, + {0x8335d630, 0xffffd3a1}, + {0x8335d631, 0xffffd3a2}, + {0x8335d632, 0xffffd3a3}, + {0x8335d633, 0xffffd3a4}, + {0x8335d634, 0xffffd3a5}, + {0x8335d635, 0xffffd3a6}, + {0x8335d636, 0xffffd3a7}, + {0x8335d637, 0xffffd3a8}, + {0x8335d638, 0xffffd3a9}, + {0x8335d639, 0xffffd3aa}, + {0x8335d730, 0xffffd3ab}, + {0x8335d731, 0xffffd3ac}, + {0x8335d732, 0xffffd3ad}, + {0x8335d733, 0xffffd3ae}, + {0x8335d734, 0xffffd3af}, + {0x8335d735, 0xffffd3b0}, + {0x8335d736, 0xffffd3b1}, + {0x8335d737, 0xffffd3b2}, + {0x8335d738, 0xffffd3b3}, + {0x8335d739, 0xffffd3b4}, + {0x8335d830, 0xffffd3b5}, + {0x8335d831, 0xffffd3b6}, + {0x8335d832, 0xffffd3b7}, + {0x8335d833, 0xffffd3b8}, + {0x8335d834, 0xffffd3b9}, + {0x8335d835, 0xffffd3ba}, + {0x8335d836, 0xffffd3bb}, + {0x8335d837, 0xffffd3bc}, + {0x8335d838, 0xffffd3bd}, + {0x8335d839, 0xffffd3be}, + {0x8335d930, 0xffffd3bf}, + {0x8335d931, 0xffffd3c0}, + {0x8335d932, 0xffffd3c1}, + {0x8335d933, 0xffffd3c2}, + {0x8335d934, 0xffffd3c3}, + {0x8335d935, 0xffffd3c4}, + {0x8335d936, 0xffffd3c5}, + {0x8335d937, 0xffffd3c6}, + {0x8335d938, 0xffffd3c7}, + {0x8335d939, 0xffffd3c8}, + {0x8335da30, 0xffffd3c9}, + {0x8335da31, 0xffffd3ca}, + {0x8335da32, 0xffffd3cb}, + {0x8335da33, 0xffffd3cc}, + {0x8335da34, 0xffffd3cd}, + {0x8335da35, 0xffffd3ce}, + {0x8335da36, 0xffffd3cf}, + {0x8335da37, 0xffffd3d0}, + {0x8335da38, 0xffffd3d1}, + {0x8335da39, 0xffffd3d2}, + {0x8335db30, 0xffffd3d3}, + {0x8335db31, 0xffffd3d4}, + {0x8335db32, 0xffffd3d5}, + {0x8335db33, 0xffffd3d6}, + {0x8335db34, 0xffffd3d7}, + {0x8335db35, 0xffffd3d8}, + {0x8335db36, 0xffffd3d9}, + {0x8335db37, 0xffffd3da}, + {0x8335db38, 0xffffd3db}, + {0x8335db39, 0xffffd3dc}, + {0x8335dc30, 0xffffd3dd}, + {0x8335dc31, 0xffffd3de}, + {0x8335dc32, 0xffffd3df}, + {0x8335dc33, 0xffffd3e0}, + {0x8335dc34, 0xffffd3e1}, + {0x8335dc35, 0xffffd3e2}, + {0x8335dc36, 0xffffd3e3}, + {0x8335dc37, 0xffffd3e4}, + {0x8335dc38, 0xffffd3e5}, + {0x8335dc39, 0xffffd3e6}, + {0x8335dd30, 0xffffd3e7}, + {0x8335dd31, 0xffffd3e8}, + {0x8335dd32, 0xffffd3e9}, + {0x8335dd33, 0xffffd3ea}, + {0x8335dd34, 0xffffd3eb}, + {0x8335dd35, 0xffffd3ec}, + {0x8335dd36, 0xffffd3ed}, + {0x8335dd37, 0xffffd3ee}, + {0x8335dd38, 0xffffd3ef}, + {0x8335dd39, 0xffffd3f0}, + {0x8335de30, 0xffffd3f1}, + {0x8335de31, 0xffffd3f2}, + {0x8335de32, 0xffffd3f3}, + {0x8335de33, 0xffffd3f4}, + {0x8335de34, 0xffffd3f5}, + {0x8335de35, 0xffffd3f6}, + {0x8335de36, 0xffffd3f7}, + {0x8335de37, 0xffffd3f8}, + {0x8335de38, 0xffffd3f9}, + {0x8335de39, 0xffffd3fa}, + {0x8335df30, 0xffffd3fb}, + {0x8335df31, 0xffffd3fc}, + {0x8335df32, 0xffffd3fd}, + {0x8335df33, 0xffffd3fe}, + {0x8335df34, 0xffffd3ff}, + {0x8335df35, 0xffffd400}, + {0x8335df36, 0xffffd401}, + {0x8335df37, 0xffffd402}, + {0x8335df38, 0xffffd403}, + {0x8335df39, 0xffffd404}, + {0x8335e030, 0xffffd405}, + {0x8335e031, 0xffffd406}, + {0x8335e032, 0xffffd407}, + {0x8335e033, 0xffffd408}, + {0x8335e034, 0xffffd409}, + {0x8335e035, 0xffffd40a}, + {0x8335e036, 0xffffd40b}, + {0x8335e037, 0xffffd40c}, + {0x8335e038, 0xffffd40d}, + {0x8335e039, 0xffffd40e}, + {0x8335e130, 0xffffd40f}, + {0x8335e131, 0xffffd410}, + {0x8335e132, 0xffffd411}, + {0x8335e133, 0xffffd412}, + {0x8335e134, 0xffffd413}, + {0x8335e135, 0xffffd414}, + {0x8335e136, 0xffffd415}, + {0x8335e137, 0xffffd416}, + {0x8335e138, 0xffffd417}, + {0x8335e139, 0xffffd418}, + {0x8335e230, 0xffffd419}, + {0x8335e231, 0xffffd41a}, + {0x8335e232, 0xffffd41b}, + {0x8335e233, 0xffffd41c}, + {0x8335e234, 0xffffd41d}, + {0x8335e235, 0xffffd41e}, + {0x8335e236, 0xffffd41f}, + {0x8335e237, 0xffffd420}, + {0x8335e238, 0xffffd421}, + {0x8335e239, 0xffffd422}, + {0x8335e330, 0xffffd423}, + {0x8335e331, 0xffffd424}, + {0x8335e332, 0xffffd425}, + {0x8335e333, 0xffffd426}, + {0x8335e334, 0xffffd427}, + {0x8335e335, 0xffffd428}, + {0x8335e336, 0xffffd429}, + {0x8335e337, 0xffffd42a}, + {0x8335e338, 0xffffd42b}, + {0x8335e339, 0xffffd42c}, + {0x8335e430, 0xffffd42d}, + {0x8335e431, 0xffffd42e}, + {0x8335e432, 0xffffd42f}, + {0x8335e433, 0xffffd430}, + {0x8335e434, 0xffffd431}, + {0x8335e435, 0xffffd432}, + {0x8335e436, 0xffffd433}, + {0x8335e437, 0xffffd434}, + {0x8335e438, 0xffffd435}, + {0x8335e439, 0xffffd436}, + {0x8335e530, 0xffffd437}, + {0x8335e531, 0xffffd438}, + {0x8335e532, 0xffffd439}, + {0x8335e533, 0xffffd43a}, + {0x8335e534, 0xffffd43b}, + {0x8335e535, 0xffffd43c}, + {0x8335e536, 0xffffd43d}, + {0x8335e537, 0xffffd43e}, + {0x8335e538, 0xffffd43f}, + {0x8335e539, 0xffffd440}, + {0x8335e630, 0xffffd441}, + {0x8335e631, 0xffffd442}, + {0x8335e632, 0xffffd443}, + {0x8335e633, 0xffffd444}, + {0x8335e634, 0xffffd445}, + {0x8335e635, 0xffffd446}, + {0x8335e636, 0xffffd447}, + {0x8335e637, 0xffffd448}, + {0x8335e638, 0xffffd449}, + {0x8335e639, 0xffffd44a}, + {0x8335e730, 0xffffd44b}, + {0x8335e731, 0xffffd44c}, + {0x8335e732, 0xffffd44d}, + {0x8335e733, 0xffffd44e}, + {0x8335e734, 0xffffd44f}, + {0x8335e735, 0xffffd450}, + {0x8335e736, 0xffffd451}, + {0x8335e737, 0xffffd452}, + {0x8335e738, 0xffffd453}, + {0x8335e739, 0xffffd454}, + {0x8335e830, 0xffffd455}, + {0x8335e831, 0xffffd456}, + {0x8335e832, 0xffffd457}, + {0x8335e833, 0xffffd458}, + {0x8335e834, 0xffffd459}, + {0x8335e835, 0xffffd45a}, + {0x8335e836, 0xffffd45b}, + {0x8335e837, 0xffffd45c}, + {0x8335e838, 0xffffd45d}, + {0x8335e839, 0xffffd45e}, + {0x8335e930, 0xffffd45f}, + {0x8335e931, 0xffffd460}, + {0x8335e932, 0xffffd461}, + {0x8335e933, 0xffffd462}, + {0x8335e934, 0xffffd463}, + {0x8335e935, 0xffffd464}, + {0x8335e936, 0xffffd465}, + {0x8335e937, 0xffffd466}, + {0x8335e938, 0xffffd467}, + {0x8335e939, 0xffffd468}, + {0x8335ea30, 0xffffd469}, + {0x8335ea31, 0xffffd46a}, + {0x8335ea32, 0xffffd46b}, + {0x8335ea33, 0xffffd46c}, + {0x8335ea34, 0xffffd46d}, + {0x8335ea35, 0xffffd46e}, + {0x8335ea36, 0xffffd46f}, + {0x8335ea37, 0xffffd470}, + {0x8335ea38, 0xffffd471}, + {0x8335ea39, 0xffffd472}, + {0x8335eb30, 0xffffd473}, + {0x8335eb31, 0xffffd474}, + {0x8335eb32, 0xffffd475}, + {0x8335eb33, 0xffffd476}, + {0x8335eb34, 0xffffd477}, + {0x8335eb35, 0xffffd478}, + {0x8335eb36, 0xffffd479}, + {0x8335eb37, 0xffffd47a}, + {0x8335eb38, 0xffffd47b}, + {0x8335eb39, 0xffffd47c}, + {0x8335ec30, 0xffffd47d}, + {0x8335ec31, 0xffffd47e}, + {0x8335ec32, 0xffffd47f}, + {0x8335ec33, 0xffffd480}, + {0x8335ec34, 0xffffd481}, + {0x8335ec35, 0xffffd482}, + {0x8335ec36, 0xffffd483}, + {0x8335ec37, 0xffffd484}, + {0x8335ec38, 0xffffd485}, + {0x8335ec39, 0xffffd486}, + {0x8335ed30, 0xffffd487}, + {0x8335ed31, 0xffffd488}, + {0x8335ed32, 0xffffd489}, + {0x8335ed33, 0xffffd48a}, + {0x8335ed34, 0xffffd48b}, + {0x8335ed35, 0xffffd48c}, + {0x8335ed36, 0xffffd48d}, + {0x8335ed37, 0xffffd48e}, + {0x8335ed38, 0xffffd48f}, + {0x8335ed39, 0xffffd490}, + {0x8335ee30, 0xffffd491}, + {0x8335ee31, 0xffffd492}, + {0x8335ee32, 0xffffd493}, + {0x8335ee33, 0xffffd494}, + {0x8335ee34, 0xffffd495}, + {0x8335ee35, 0xffffd496}, + {0x8335ee36, 0xffffd497}, + {0x8335ee37, 0xffffd498}, + {0x8335ee38, 0xffffd499}, + {0x8335ee39, 0xffffd49a}, + {0x8335ef30, 0xffffd49b}, + {0x8335ef31, 0xffffd49c}, + {0x8335ef32, 0xffffd49d}, + {0x8335ef33, 0xffffd49e}, + {0x8335ef34, 0xffffd49f}, + {0x8335ef35, 0xffffd4a0}, + {0x8335ef36, 0xffffd4a1}, + {0x8335ef37, 0xffffd4a2}, + {0x8335ef38, 0xffffd4a3}, + {0x8335ef39, 0xffffd4a4}, + {0x8335f030, 0xffffd4a5}, + {0x8335f031, 0xffffd4a6}, + {0x8335f032, 0xffffd4a7}, + {0x8335f033, 0xffffd4a8}, + {0x8335f034, 0xffffd4a9}, + {0x8335f035, 0xffffd4aa}, + {0x8335f036, 0xffffd4ab}, + {0x8335f037, 0xffffd4ac}, + {0x8335f038, 0xffffd4ad}, + {0x8335f039, 0xffffd4ae}, + {0x8335f130, 0xffffd4af}, + {0x8335f131, 0xffffd4b0}, + {0x8335f132, 0xffffd4b1}, + {0x8335f133, 0xffffd4b2}, + {0x8335f134, 0xffffd4b3}, + {0x8335f135, 0xffffd4b4}, + {0x8335f136, 0xffffd4b5}, + {0x8335f137, 0xffffd4b6}, + {0x8335f138, 0xffffd4b7}, + {0x8335f139, 0xffffd4b8}, + {0x8335f230, 0xffffd4b9}, + {0x8335f231, 0xffffd4ba}, + {0x8335f232, 0xffffd4bb}, + {0x8335f233, 0xffffd4bc}, + {0x8335f234, 0xffffd4bd}, + {0x8335f235, 0xffffd4be}, + {0x8335f236, 0xffffd4bf}, + {0x8335f237, 0xffffd4c0}, + {0x8335f238, 0xffffd4c1}, + {0x8335f239, 0xffffd4c2}, + {0x8335f330, 0xffffd4c3}, + {0x8335f331, 0xffffd4c4}, + {0x8335f332, 0xffffd4c5}, + {0x8335f333, 0xffffd4c6}, + {0x8335f334, 0xffffd4c7}, + {0x8335f335, 0xffffd4c8}, + {0x8335f336, 0xffffd4c9}, + {0x8335f337, 0xffffd4ca}, + {0x8335f338, 0xffffd4cb}, + {0x8335f339, 0xffffd4cc}, + {0x8335f430, 0xffffd4cd}, + {0x8335f431, 0xffffd4ce}, + {0x8335f432, 0xffffd4cf}, + {0x8335f433, 0xffffd4d0}, + {0x8335f434, 0xffffd4d1}, + {0x8335f435, 0xffffd4d2}, + {0x8335f436, 0xffffd4d3}, + {0x8335f437, 0xffffd4d4}, + {0x8335f438, 0xffffd4d5}, + {0x8335f439, 0xffffd4d6}, + {0x8335f530, 0xffffd4d7}, + {0x8335f531, 0xffffd4d8}, + {0x8335f532, 0xffffd4d9}, + {0x8335f533, 0xffffd4da}, + {0x8335f534, 0xffffd4db}, + {0x8335f535, 0xffffd4dc}, + {0x8335f536, 0xffffd4dd}, + {0x8335f537, 0xffffd4de}, + {0x8335f538, 0xffffd4df}, + {0x8335f539, 0xffffd4e0}, + {0x8335f630, 0xffffd4e1}, + {0x8335f631, 0xffffd4e2}, + {0x8335f632, 0xffffd4e3}, + {0x8335f633, 0xffffd4e4}, + {0x8335f634, 0xffffd4e5}, + {0x8335f635, 0xffffd4e6}, + {0x8335f636, 0xffffd4e7}, + {0x8335f637, 0xffffd4e8}, + {0x8335f638, 0xffffd4e9}, + {0x8335f639, 0xffffd4ea}, + {0x8335f730, 0xffffd4eb}, + {0x8335f731, 0xffffd4ec}, + {0x8335f732, 0xffffd4ed}, + {0x8335f733, 0xffffd4ee}, + {0x8335f734, 0xffffd4ef}, + {0x8335f735, 0xffffd4f0}, + {0x8335f736, 0xffffd4f1}, + {0x8335f737, 0xffffd4f2}, + {0x8335f738, 0xffffd4f3}, + {0x8335f739, 0xffffd4f4}, + {0x8335f830, 0xffffd4f5}, + {0x8335f831, 0xffffd4f6}, + {0x8335f832, 0xffffd4f7}, + {0x8335f833, 0xffffd4f8}, + {0x8335f834, 0xffffd4f9}, + {0x8335f835, 0xffffd4fa}, + {0x8335f836, 0xffffd4fb}, + {0x8335f837, 0xffffd4fc}, + {0x8335f838, 0xffffd4fd}, + {0x8335f839, 0xffffd4fe}, + {0x8335f930, 0xffffd4ff}, + {0x8335f931, 0xffffd500}, + {0x8335f932, 0xffffd501}, + {0x8335f933, 0xffffd502}, + {0x8335f934, 0xffffd503}, + {0x8335f935, 0xffffd504}, + {0x8335f936, 0xffffd505}, + {0x8335f937, 0xffffd506}, + {0x8335f938, 0xffffd507}, + {0x8335f939, 0xffffd508}, + {0x8335fa30, 0xffffd509}, + {0x8335fa31, 0xffffd50a}, + {0x8335fa32, 0xffffd50b}, + {0x8335fa33, 0xffffd50c}, + {0x8335fa34, 0xffffd50d}, + {0x8335fa35, 0xffffd50e}, + {0x8335fa36, 0xffffd50f}, + {0x8335fa37, 0xffffd510}, + {0x8335fa38, 0xffffd511}, + {0x8335fa39, 0xffffd512}, + {0x8335fb30, 0xffffd513}, + {0x8335fb31, 0xffffd514}, + {0x8335fb32, 0xffffd515}, + {0x8335fb33, 0xffffd516}, + {0x8335fb34, 0xffffd517}, + {0x8335fb35, 0xffffd518}, + {0x8335fb36, 0xffffd519}, + {0x8335fb37, 0xffffd51a}, + {0x8335fb38, 0xffffd51b}, + {0x8335fb39, 0xffffd51c}, + {0x8335fc30, 0xffffd51d}, + {0x8335fc31, 0xffffd51e}, + {0x8335fc32, 0xffffd51f}, + {0x8335fc33, 0xffffd520}, + {0x8335fc34, 0xffffd521}, + {0x8335fc35, 0xffffd522}, + {0x8335fc36, 0xffffd523}, + {0x8335fc37, 0xffffd524}, + {0x8335fc38, 0xffffd525}, + {0x8335fc39, 0xffffd526}, + {0x8335fd30, 0xffffd527}, + {0x8335fd31, 0xffffd528}, + {0x8335fd32, 0xffffd529}, + {0x8335fd33, 0xffffd52a}, + {0x8335fd34, 0xffffd52b}, + {0x8335fd35, 0xffffd52c}, + {0x8335fd36, 0xffffd52d}, + {0x8335fd37, 0xffffd52e}, + {0x8335fd38, 0xffffd52f}, + {0x8335fd39, 0xffffd530}, + {0x8335fe30, 0xffffd531}, + {0x8335fe31, 0xffffd532}, + {0x8335fe32, 0xffffd533}, + {0x8335fe33, 0xffffd534}, + {0x8335fe34, 0xffffd535}, + {0x8335fe35, 0xffffd536}, + {0x8335fe36, 0xffffd537}, + {0x8335fe37, 0xffffd538}, + {0x8335fe38, 0xffffd539}, + {0x8335fe39, 0xffffd53a}, + {0x83368130, 0xffffd53b}, + {0x83368131, 0xffffd53c}, + {0x83368132, 0xffffd53d}, + {0x83368133, 0xffffd53e}, + {0x83368134, 0xffffd53f}, + {0x83368135, 0xffffd540}, + {0x83368136, 0xffffd541}, + {0x83368137, 0xffffd542}, + {0x83368138, 0xffffd543}, + {0x83368139, 0xffffd544}, + {0x83368230, 0xffffd545}, + {0x83368231, 0xffffd546}, + {0x83368232, 0xffffd547}, + {0x83368233, 0xffffd548}, + {0x83368234, 0xffffd549}, + {0x83368235, 0xffffd54a}, + {0x83368236, 0xffffd54b}, + {0x83368237, 0xffffd54c}, + {0x83368238, 0xffffd54d}, + {0x83368239, 0xffffd54e}, + {0x83368330, 0xffffd54f}, + {0x83368331, 0xffffd550}, + {0x83368332, 0xffffd551}, + {0x83368333, 0xffffd552}, + {0x83368334, 0xffffd553}, + {0x83368335, 0xffffd554}, + {0x83368336, 0xffffd555}, + {0x83368337, 0xffffd556}, + {0x83368338, 0xffffd557}, + {0x83368339, 0xffffd558}, + {0x83368430, 0xffffd559}, + {0x83368431, 0xffffd55a}, + {0x83368432, 0xffffd55b}, + {0x83368433, 0xffffd55c}, + {0x83368434, 0xffffd55d}, + {0x83368435, 0xffffd55e}, + {0x83368436, 0xffffd55f}, + {0x83368437, 0xffffd560}, + {0x83368438, 0xffffd561}, + {0x83368439, 0xffffd562}, + {0x83368530, 0xffffd563}, + {0x83368531, 0xffffd564}, + {0x83368532, 0xffffd565}, + {0x83368533, 0xffffd566}, + {0x83368534, 0xffffd567}, + {0x83368535, 0xffffd568}, + {0x83368536, 0xffffd569}, + {0x83368537, 0xffffd56a}, + {0x83368538, 0xffffd56b}, + {0x83368539, 0xffffd56c}, + {0x83368630, 0xffffd56d}, + {0x83368631, 0xffffd56e}, + {0x83368632, 0xffffd56f}, + {0x83368633, 0xffffd570}, + {0x83368634, 0xffffd571}, + {0x83368635, 0xffffd572}, + {0x83368636, 0xffffd573}, + {0x83368637, 0xffffd574}, + {0x83368638, 0xffffd575}, + {0x83368639, 0xffffd576}, + {0x83368730, 0xffffd577}, + {0x83368731, 0xffffd578}, + {0x83368732, 0xffffd579}, + {0x83368733, 0xffffd57a}, + {0x83368734, 0xffffd57b}, + {0x83368735, 0xffffd57c}, + {0x83368736, 0xffffd57d}, + {0x83368737, 0xffffd57e}, + {0x83368738, 0xffffd57f}, + {0x83368739, 0xffffd580}, + {0x83368830, 0xffffd581}, + {0x83368831, 0xffffd582}, + {0x83368832, 0xffffd583}, + {0x83368833, 0xffffd584}, + {0x83368834, 0xffffd585}, + {0x83368835, 0xffffd586}, + {0x83368836, 0xffffd587}, + {0x83368837, 0xffffd588}, + {0x83368838, 0xffffd589}, + {0x83368839, 0xffffd58a}, + {0x83368930, 0xffffd58b}, + {0x83368931, 0xffffd58c}, + {0x83368932, 0xffffd58d}, + {0x83368933, 0xffffd58e}, + {0x83368934, 0xffffd58f}, + {0x83368935, 0xffffd590}, + {0x83368936, 0xffffd591}, + {0x83368937, 0xffffd592}, + {0x83368938, 0xffffd593}, + {0x83368939, 0xffffd594}, + {0x83368a30, 0xffffd595}, + {0x83368a31, 0xffffd596}, + {0x83368a32, 0xffffd597}, + {0x83368a33, 0xffffd598}, + {0x83368a34, 0xffffd599}, + {0x83368a35, 0xffffd59a}, + {0x83368a36, 0xffffd59b}, + {0x83368a37, 0xffffd59c}, + {0x83368a38, 0xffffd59d}, + {0x83368a39, 0xffffd59e}, + {0x83368b30, 0xffffd59f}, + {0x83368b31, 0xffffd5a0}, + {0x83368b32, 0xffffd5a1}, + {0x83368b33, 0xffffd5a2}, + {0x83368b34, 0xffffd5a3}, + {0x83368b35, 0xffffd5a4}, + {0x83368b36, 0xffffd5a5}, + {0x83368b37, 0xffffd5a6}, + {0x83368b38, 0xffffd5a7}, + {0x83368b39, 0xffffd5a8}, + {0x83368c30, 0xffffd5a9}, + {0x83368c31, 0xffffd5aa}, + {0x83368c32, 0xffffd5ab}, + {0x83368c33, 0xffffd5ac}, + {0x83368c34, 0xffffd5ad}, + {0x83368c35, 0xffffd5ae}, + {0x83368c36, 0xffffd5af}, + {0x83368c37, 0xffffd5b0}, + {0x83368c38, 0xffffd5b1}, + {0x83368c39, 0xffffd5b2}, + {0x83368d30, 0xffffd5b3}, + {0x83368d31, 0xffffd5b4}, + {0x83368d32, 0xffffd5b5}, + {0x83368d33, 0xffffd5b6}, + {0x83368d34, 0xffffd5b7}, + {0x83368d35, 0xffffd5b8}, + {0x83368d36, 0xffffd5b9}, + {0x83368d37, 0xffffd5ba}, + {0x83368d38, 0xffffd5bb}, + {0x83368d39, 0xffffd5bc}, + {0x83368e30, 0xffffd5bd}, + {0x83368e31, 0xffffd5be}, + {0x83368e32, 0xffffd5bf}, + {0x83368e33, 0xffffd5c0}, + {0x83368e34, 0xffffd5c1}, + {0x83368e35, 0xffffd5c2}, + {0x83368e36, 0xffffd5c3}, + {0x83368e37, 0xffffd5c4}, + {0x83368e38, 0xffffd5c5}, + {0x83368e39, 0xffffd5c6}, + {0x83368f30, 0xffffd5c7}, + {0x83368f31, 0xffffd5c8}, + {0x83368f32, 0xffffd5c9}, + {0x83368f33, 0xffffd5ca}, + {0x83368f34, 0xffffd5cb}, + {0x83368f35, 0xffffd5cc}, + {0x83368f36, 0xffffd5cd}, + {0x83368f37, 0xffffd5ce}, + {0x83368f38, 0xffffd5cf}, + {0x83368f39, 0xffffd5d0}, + {0x83369030, 0xffffd5d1}, + {0x83369031, 0xffffd5d2}, + {0x83369032, 0xffffd5d3}, + {0x83369033, 0xffffd5d4}, + {0x83369034, 0xffffd5d5}, + {0x83369035, 0xffffd5d6}, + {0x83369036, 0xffffd5d7}, + {0x83369037, 0xffffd5d8}, + {0x83369038, 0xffffd5d9}, + {0x83369039, 0xffffd5da}, + {0x83369130, 0xffffd5db}, + {0x83369131, 0xffffd5dc}, + {0x83369132, 0xffffd5dd}, + {0x83369133, 0xffffd5de}, + {0x83369134, 0xffffd5df}, + {0x83369135, 0xffffd5e0}, + {0x83369136, 0xffffd5e1}, + {0x83369137, 0xffffd5e2}, + {0x83369138, 0xffffd5e3}, + {0x83369139, 0xffffd5e4}, + {0x83369230, 0xffffd5e5}, + {0x83369231, 0xffffd5e6}, + {0x83369232, 0xffffd5e7}, + {0x83369233, 0xffffd5e8}, + {0x83369234, 0xffffd5e9}, + {0x83369235, 0xffffd5ea}, + {0x83369236, 0xffffd5eb}, + {0x83369237, 0xffffd5ec}, + {0x83369238, 0xffffd5ed}, + {0x83369239, 0xffffd5ee}, + {0x83369330, 0xffffd5ef}, + {0x83369331, 0xffffd5f0}, + {0x83369332, 0xffffd5f1}, + {0x83369333, 0xffffd5f2}, + {0x83369334, 0xffffd5f3}, + {0x83369335, 0xffffd5f4}, + {0x83369336, 0xffffd5f5}, + {0x83369337, 0xffffd5f6}, + {0x83369338, 0xffffd5f7}, + {0x83369339, 0xffffd5f8}, + {0x83369430, 0xffffd5f9}, + {0x83369431, 0xffffd5fa}, + {0x83369432, 0xffffd5fb}, + {0x83369433, 0xffffd5fc}, + {0x83369434, 0xffffd5fd}, + {0x83369435, 0xffffd5fe}, + {0x83369436, 0xffffd5ff}, + {0x83369437, 0xffffd600}, + {0x83369438, 0xffffd601}, + {0x83369439, 0xffffd602}, + {0x83369530, 0xffffd603}, + {0x83369531, 0xffffd604}, + {0x83369532, 0xffffd605}, + {0x83369533, 0xffffd606}, + {0x83369534, 0xffffd607}, + {0x83369535, 0xffffd608}, + {0x83369536, 0xffffd609}, + {0x83369537, 0xffffd60a}, + {0x83369538, 0xffffd60b}, + {0x83369539, 0xffffd60c}, + {0x83369630, 0xffffd60d}, + {0x83369631, 0xffffd60e}, + {0x83369632, 0xffffd60f}, + {0x83369633, 0xffffd610}, + {0x83369634, 0xffffd611}, + {0x83369635, 0xffffd612}, + {0x83369636, 0xffffd613}, + {0x83369637, 0xffffd614}, + {0x83369638, 0xffffd615}, + {0x83369639, 0xffffd616}, + {0x83369730, 0xffffd617}, + {0x83369731, 0xffffd618}, + {0x83369732, 0xffffd619}, + {0x83369733, 0xffffd61a}, + {0x83369734, 0xffffd61b}, + {0x83369735, 0xffffd61c}, + {0x83369736, 0xffffd61d}, + {0x83369737, 0xffffd61e}, + {0x83369738, 0xffffd61f}, + {0x83369739, 0xffffd620}, + {0x83369830, 0xffffd621}, + {0x83369831, 0xffffd622}, + {0x83369832, 0xffffd623}, + {0x83369833, 0xffffd624}, + {0x83369834, 0xffffd625}, + {0x83369835, 0xffffd626}, + {0x83369836, 0xffffd627}, + {0x83369837, 0xffffd628}, + {0x83369838, 0xffffd629}, + {0x83369839, 0xffffd62a}, + {0x83369930, 0xffffd62b}, + {0x83369931, 0xffffd62c}, + {0x83369932, 0xffffd62d}, + {0x83369933, 0xffffd62e}, + {0x83369934, 0xffffd62f}, + {0x83369935, 0xffffd630}, + {0x83369936, 0xffffd631}, + {0x83369937, 0xffffd632}, + {0x83369938, 0xffffd633}, + {0x83369939, 0xffffd634}, + {0x83369a30, 0xffffd635}, + {0x83369a31, 0xffffd636}, + {0x83369a32, 0xffffd637}, + {0x83369a33, 0xffffd638}, + {0x83369a34, 0xffffd639}, + {0x83369a35, 0xffffd63a}, + {0x83369a36, 0xffffd63b}, + {0x83369a37, 0xffffd63c}, + {0x83369a38, 0xffffd63d}, + {0x83369a39, 0xffffd63e}, + {0x83369b30, 0xffffd63f}, + {0x83369b31, 0xffffd640}, + {0x83369b32, 0xffffd641}, + {0x83369b33, 0xffffd642}, + {0x83369b34, 0xffffd643}, + {0x83369b35, 0xffffd644}, + {0x83369b36, 0xffffd645}, + {0x83369b37, 0xffffd646}, + {0x83369b38, 0xffffd647}, + {0x83369b39, 0xffffd648}, + {0x83369c30, 0xffffd649}, + {0x83369c31, 0xffffd64a}, + {0x83369c32, 0xffffd64b}, + {0x83369c33, 0xffffd64c}, + {0x83369c34, 0xffffd64d}, + {0x83369c35, 0xffffd64e}, + {0x83369c36, 0xffffd64f}, + {0x83369c37, 0xffffd650}, + {0x83369c38, 0xffffd651}, + {0x83369c39, 0xffffd652}, + {0x83369d30, 0xffffd653}, + {0x83369d31, 0xffffd654}, + {0x83369d32, 0xffffd655}, + {0x83369d33, 0xffffd656}, + {0x83369d34, 0xffffd657}, + {0x83369d35, 0xffffd658}, + {0x83369d36, 0xffffd659}, + {0x83369d37, 0xffffd65a}, + {0x83369d38, 0xffffd65b}, + {0x83369d39, 0xffffd65c}, + {0x83369e30, 0xffffd65d}, + {0x83369e31, 0xffffd65e}, + {0x83369e32, 0xffffd65f}, + {0x83369e33, 0xffffd660}, + {0x83369e34, 0xffffd661}, + {0x83369e35, 0xffffd662}, + {0x83369e36, 0xffffd663}, + {0x83369e37, 0xffffd664}, + {0x83369e38, 0xffffd665}, + {0x83369e39, 0xffffd666}, + {0x83369f30, 0xffffd667}, + {0x83369f31, 0xffffd668}, + {0x83369f32, 0xffffd669}, + {0x83369f33, 0xffffd66a}, + {0x83369f34, 0xffffd66b}, + {0x83369f35, 0xffffd66c}, + {0x83369f36, 0xffffd66d}, + {0x83369f37, 0xffffd66e}, + {0x83369f38, 0xffffd66f}, + {0x83369f39, 0xffffd670}, + {0x8336a030, 0xffffd671}, + {0x8336a031, 0xffffd672}, + {0x8336a032, 0xffffd673}, + {0x8336a033, 0xffffd674}, + {0x8336a034, 0xffffd675}, + {0x8336a035, 0xffffd676}, + {0x8336a036, 0xffffd677}, + {0x8336a037, 0xffffd678}, + {0x8336a038, 0xffffd679}, + {0x8336a039, 0xffffd67a}, + {0x8336a130, 0xffffd67b}, + {0x8336a131, 0xffffd67c}, + {0x8336a132, 0xffffd67d}, + {0x8336a133, 0xffffd67e}, + {0x8336a134, 0xffffd67f}, + {0x8336a135, 0xffffd680}, + {0x8336a136, 0xffffd681}, + {0x8336a137, 0xffffd682}, + {0x8336a138, 0xffffd683}, + {0x8336a139, 0xffffd684}, + {0x8336a230, 0xffffd685}, + {0x8336a231, 0xffffd686}, + {0x8336a232, 0xffffd687}, + {0x8336a233, 0xffffd688}, + {0x8336a234, 0xffffd689}, + {0x8336a235, 0xffffd68a}, + {0x8336a236, 0xffffd68b}, + {0x8336a237, 0xffffd68c}, + {0x8336a238, 0xffffd68d}, + {0x8336a239, 0xffffd68e}, + {0x8336a330, 0xffffd68f}, + {0x8336a331, 0xffffd690}, + {0x8336a332, 0xffffd691}, + {0x8336a333, 0xffffd692}, + {0x8336a334, 0xffffd693}, + {0x8336a335, 0xffffd694}, + {0x8336a336, 0xffffd695}, + {0x8336a337, 0xffffd696}, + {0x8336a338, 0xffffd697}, + {0x8336a339, 0xffffd698}, + {0x8336a430, 0xffffd699}, + {0x8336a431, 0xffffd69a}, + {0x8336a432, 0xffffd69b}, + {0x8336a433, 0xffffd69c}, + {0x8336a434, 0xffffd69d}, + {0x8336a435, 0xffffd69e}, + {0x8336a436, 0xffffd69f}, + {0x8336a437, 0xffffd6a0}, + {0x8336a438, 0xffffd6a1}, + {0x8336a439, 0xffffd6a2}, + {0x8336a530, 0xffffd6a3}, + {0x8336a531, 0xffffd6a4}, + {0x8336a532, 0xffffd6a5}, + {0x8336a533, 0xffffd6a6}, + {0x8336a534, 0xffffd6a7}, + {0x8336a535, 0xffffd6a8}, + {0x8336a536, 0xffffd6a9}, + {0x8336a537, 0xffffd6aa}, + {0x8336a538, 0xffffd6ab}, + {0x8336a539, 0xffffd6ac}, + {0x8336a630, 0xffffd6ad}, + {0x8336a631, 0xffffd6ae}, + {0x8336a632, 0xffffd6af}, + {0x8336a633, 0xffffd6b0}, + {0x8336a634, 0xffffd6b1}, + {0x8336a635, 0xffffd6b2}, + {0x8336a636, 0xffffd6b3}, + {0x8336a637, 0xffffd6b4}, + {0x8336a638, 0xffffd6b5}, + {0x8336a639, 0xffffd6b6}, + {0x8336a730, 0xffffd6b7}, + {0x8336a731, 0xffffd6b8}, + {0x8336a732, 0xffffd6b9}, + {0x8336a733, 0xffffd6ba}, + {0x8336a734, 0xffffd6bb}, + {0x8336a735, 0xffffd6bc}, + {0x8336a736, 0xffffd6bd}, + {0x8336a737, 0xffffd6be}, + {0x8336a738, 0xffffd6bf}, + {0x8336a739, 0xffffd6c0}, + {0x8336a830, 0xffffd6c1}, + {0x8336a831, 0xffffd6c2}, + {0x8336a832, 0xffffd6c3}, + {0x8336a833, 0xffffd6c4}, + {0x8336a834, 0xffffd6c5}, + {0x8336a835, 0xffffd6c6}, + {0x8336a836, 0xffffd6c7}, + {0x8336a837, 0xffffd6c8}, + {0x8336a838, 0xffffd6c9}, + {0x8336a839, 0xffffd6ca}, + {0x8336a930, 0xffffd6cb}, + {0x8336a931, 0xffffd6cc}, + {0x8336a932, 0xffffd6cd}, + {0x8336a933, 0xffffd6ce}, + {0x8336a934, 0xffffd6cf}, + {0x8336a935, 0xffffd6d0}, + {0x8336a936, 0xffffd6d1}, + {0x8336a937, 0xffffd6d2}, + {0x8336a938, 0xffffd6d3}, + {0x8336a939, 0xffffd6d4}, + {0x8336aa30, 0xffffd6d5}, + {0x8336aa31, 0xffffd6d6}, + {0x8336aa32, 0xffffd6d7}, + {0x8336aa33, 0xffffd6d8}, + {0x8336aa34, 0xffffd6d9}, + {0x8336aa35, 0xffffd6da}, + {0x8336aa36, 0xffffd6db}, + {0x8336aa37, 0xffffd6dc}, + {0x8336aa38, 0xffffd6dd}, + {0x8336aa39, 0xffffd6de}, + {0x8336ab30, 0xffffd6df}, + {0x8336ab31, 0xffffd6e0}, + {0x8336ab32, 0xffffd6e1}, + {0x8336ab33, 0xffffd6e2}, + {0x8336ab34, 0xffffd6e3}, + {0x8336ab35, 0xffffd6e4}, + {0x8336ab36, 0xffffd6e5}, + {0x8336ab37, 0xffffd6e6}, + {0x8336ab38, 0xffffd6e7}, + {0x8336ab39, 0xffffd6e8}, + {0x8336ac30, 0xffffd6e9}, + {0x8336ac31, 0xffffd6ea}, + {0x8336ac32, 0xffffd6eb}, + {0x8336ac33, 0xffffd6ec}, + {0x8336ac34, 0xffffd6ed}, + {0x8336ac35, 0xffffd6ee}, + {0x8336ac36, 0xffffd6ef}, + {0x8336ac37, 0xffffd6f0}, + {0x8336ac38, 0xffffd6f1}, + {0x8336ac39, 0xffffd6f2}, + {0x8336ad30, 0xffffd6f3}, + {0x8336ad31, 0xffffd6f4}, + {0x8336ad32, 0xffffd6f5}, + {0x8336ad33, 0xffffd6f6}, + {0x8336ad34, 0xffffd6f7}, + {0x8336ad35, 0xffffd6f8}, + {0x8336ad36, 0xffffd6f9}, + {0x8336ad37, 0xffffd6fa}, + {0x8336ad38, 0xffffd6fb}, + {0x8336ad39, 0xffffd6fc}, + {0x8336ae30, 0xffffd6fd}, + {0x8336ae31, 0xffffd6fe}, + {0x8336ae32, 0xffffd6ff}, + {0x8336ae33, 0xffffd700}, + {0x8336ae34, 0xffffd701}, + {0x8336ae35, 0xffffd702}, + {0x8336ae36, 0xffffd703}, + {0x8336ae37, 0xffffd704}, + {0x8336ae38, 0xffffd705}, + {0x8336ae39, 0xffffd706}, + {0x8336af30, 0xffffd707}, + {0x8336af31, 0xffffd708}, + {0x8336af32, 0xffffd709}, + {0x8336af33, 0xffffd70a}, + {0x8336af34, 0xffffd70b}, + {0x8336af35, 0xffffd70c}, + {0x8336af36, 0xffffd70d}, + {0x8336af37, 0xffffd70e}, + {0x8336af38, 0xffffd70f}, + {0x8336af39, 0xffffd710}, + {0x8336b030, 0xffffd711}, + {0x8336b031, 0xffffd712}, + {0x8336b032, 0xffffd713}, + {0x8336b033, 0xffffd714}, + {0x8336b034, 0xffffd715}, + {0x8336b035, 0xffffd716}, + {0x8336b036, 0xffffd717}, + {0x8336b037, 0xffffd718}, + {0x8336b038, 0xffffd719}, + {0x8336b039, 0xffffd71a}, + {0x8336b130, 0xffffd71b}, + {0x8336b131, 0xffffd71c}, + {0x8336b132, 0xffffd71d}, + {0x8336b133, 0xffffd71e}, + {0x8336b134, 0xffffd71f}, + {0x8336b135, 0xffffd720}, + {0x8336b136, 0xffffd721}, + {0x8336b137, 0xffffd722}, + {0x8336b138, 0xffffd723}, + {0x8336b139, 0xffffd724}, + {0x8336b230, 0xffffd725}, + {0x8336b231, 0xffffd726}, + {0x8336b232, 0xffffd727}, + {0x8336b233, 0xffffd728}, + {0x8336b234, 0xffffd729}, + {0x8336b235, 0xffffd72a}, + {0x8336b236, 0xffffd72b}, + {0x8336b237, 0xffffd72c}, + {0x8336b238, 0xffffd72d}, + {0x8336b239, 0xffffd72e}, + {0x8336b330, 0xffffd72f}, + {0x8336b331, 0xffffd730}, + {0x8336b332, 0xffffd731}, + {0x8336b333, 0xffffd732}, + {0x8336b334, 0xffffd733}, + {0x8336b335, 0xffffd734}, + {0x8336b336, 0xffffd735}, + {0x8336b337, 0xffffd736}, + {0x8336b338, 0xffffd737}, + {0x8336b339, 0xffffd738}, + {0x8336b430, 0xffffd739}, + {0x8336b431, 0xffffd73a}, + {0x8336b432, 0xffffd73b}, + {0x8336b433, 0xffffd73c}, + {0x8336b434, 0xffffd73d}, + {0x8336b435, 0xffffd73e}, + {0x8336b436, 0xffffd73f}, + {0x8336b437, 0xffffd740}, + {0x8336b438, 0xffffd741}, + {0x8336b439, 0xffffd742}, + {0x8336b530, 0xffffd743}, + {0x8336b531, 0xffffd744}, + {0x8336b532, 0xffffd745}, + {0x8336b533, 0xffffd746}, + {0x8336b534, 0xffffd747}, + {0x8336b535, 0xffffd748}, + {0x8336b536, 0xffffd749}, + {0x8336b537, 0xffffd74a}, + {0x8336b538, 0xffffd74b}, + {0x8336b539, 0xffffd74c}, + {0x8336b630, 0xffffd74d}, + {0x8336b631, 0xffffd74e}, + {0x8336b632, 0xffffd74f}, + {0x8336b633, 0xffffd750}, + {0x8336b634, 0xffffd751}, + {0x8336b635, 0xffffd752}, + {0x8336b636, 0xffffd753}, + {0x8336b637, 0xffffd754}, + {0x8336b638, 0xffffd755}, + {0x8336b639, 0xffffd756}, + {0x8336b730, 0xffffd757}, + {0x8336b731, 0xffffd758}, + {0x8336b732, 0xffffd759}, + {0x8336b733, 0xffffd75a}, + {0x8336b734, 0xffffd75b}, + {0x8336b735, 0xffffd75c}, + {0x8336b736, 0xffffd75d}, + {0x8336b737, 0xffffd75e}, + {0x8336b738, 0xffffd75f}, + {0x8336b739, 0xffffd760}, + {0x8336b830, 0xffffd761}, + {0x8336b831, 0xffffd762}, + {0x8336b832, 0xffffd763}, + {0x8336b833, 0xffffd764}, + {0x8336b834, 0xffffd765}, + {0x8336b835, 0xffffd766}, + {0x8336b836, 0xffffd767}, + {0x8336b837, 0xffffd768}, + {0x8336b838, 0xffffd769}, + {0x8336b839, 0xffffd76a}, + {0x8336b930, 0xffffd76b}, + {0x8336b931, 0xffffd76c}, + {0x8336b932, 0xffffd76d}, + {0x8336b933, 0xffffd76e}, + {0x8336b934, 0xffffd76f}, + {0x8336b935, 0xffffd770}, + {0x8336b936, 0xffffd771}, + {0x8336b937, 0xffffd772}, + {0x8336b938, 0xffffd773}, + {0x8336b939, 0xffffd774}, + {0x8336ba30, 0xffffd775}, + {0x8336ba31, 0xffffd776}, + {0x8336ba32, 0xffffd777}, + {0x8336ba33, 0xffffd778}, + {0x8336ba34, 0xffffd779}, + {0x8336ba35, 0xffffd77a}, + {0x8336ba36, 0xffffd77b}, + {0x8336ba37, 0xffffd77c}, + {0x8336ba38, 0xffffd77d}, + {0x8336ba39, 0xffffd77e}, + {0x8336bb30, 0xffffd77f}, + {0x8336bb31, 0xffffd780}, + {0x8336bb32, 0xffffd781}, + {0x8336bb33, 0xffffd782}, + {0x8336bb34, 0xffffd783}, + {0x8336bb35, 0xffffd784}, + {0x8336bb36, 0xffffd785}, + {0x8336bb37, 0xffffd786}, + {0x8336bb38, 0xffffd787}, + {0x8336bb39, 0xffffd788}, + {0x8336bc30, 0xffffd789}, + {0x8336bc31, 0xffffd78a}, + {0x8336bc32, 0xffffd78b}, + {0x8336bc33, 0xffffd78c}, + {0x8336bc34, 0xffffd78d}, + {0x8336bc35, 0xffffd78e}, + {0x8336bc36, 0xffffd78f}, + {0x8336bc37, 0xffffd790}, + {0x8336bc38, 0xffffd791}, + {0x8336bc39, 0xffffd792}, + {0x8336bd30, 0xffffd793}, + {0x8336bd31, 0xffffd794}, + {0x8336bd32, 0xffffd795}, + {0x8336bd33, 0xffffd796}, + {0x8336bd34, 0xffffd797}, + {0x8336bd35, 0xffffd798}, + {0x8336bd36, 0xffffd799}, + {0x8336bd37, 0xffffd79a}, + {0x8336bd38, 0xffffd79b}, + {0x8336bd39, 0xffffd79c}, + {0x8336be30, 0xffffd79d}, + {0x8336be31, 0xffffd79e}, + {0x8336be32, 0xffffd79f}, + {0x8336be33, 0xffffd7a0}, + {0x8336be34, 0xffffd7a1}, + {0x8336be35, 0xffffd7a2}, + {0x8336be36, 0xffffd7a3}, + {0x8336be37, 0xffffd7a4}, + {0x8336be38, 0xffffd7a5}, + {0x8336be39, 0xffffd7a6}, + {0x8336bf30, 0xffffd7a7}, + {0x8336bf31, 0xffffd7a8}, + {0x8336bf32, 0xffffd7a9}, + {0x8336bf33, 0xffffd7aa}, + {0x8336bf34, 0xffffd7ab}, + {0x8336bf35, 0xffffd7ac}, + {0x8336bf36, 0xffffd7ad}, + {0x8336bf37, 0xffffd7ae}, + {0x8336bf38, 0xffffd7af}, + {0x8336bf39, 0xffffd7b0}, + {0x8336c030, 0xffffd7b1}, + {0x8336c031, 0xffffd7b2}, + {0x8336c032, 0xffffd7b3}, + {0x8336c033, 0xffffd7b4}, + {0x8336c034, 0xffffd7b5}, + {0x8336c035, 0xffffd7b6}, + {0x8336c036, 0xffffd7b7}, + {0x8336c037, 0xffffd7b8}, + {0x8336c038, 0xffffd7b9}, + {0x8336c039, 0xffffd7ba}, + {0x8336c130, 0xffffd7bb}, + {0x8336c131, 0xffffd7bc}, + {0x8336c132, 0xffffd7bd}, + {0x8336c133, 0xffffd7be}, + {0x8336c134, 0xffffd7bf}, + {0x8336c135, 0xffffd7c0}, + {0x8336c136, 0xffffd7c1}, + {0x8336c137, 0xffffd7c2}, + {0x8336c138, 0xffffd7c3}, + {0x8336c139, 0xffffd7c4}, + {0x8336c230, 0xffffd7c5}, + {0x8336c231, 0xffffd7c6}, + {0x8336c232, 0xffffd7c7}, + {0x8336c233, 0xffffd7c8}, + {0x8336c234, 0xffffd7c9}, + {0x8336c235, 0xffffd7ca}, + {0x8336c236, 0xffffd7cb}, + {0x8336c237, 0xffffd7cc}, + {0x8336c238, 0xffffd7cd}, + {0x8336c239, 0xffffd7ce}, + {0x8336c330, 0xffffd7cf}, + {0x8336c331, 0xffffd7d0}, + {0x8336c332, 0xffffd7d1}, + {0x8336c333, 0xffffd7d2}, + {0x8336c334, 0xffffd7d3}, + {0x8336c335, 0xffffd7d4}, + {0x8336c336, 0xffffd7d5}, + {0x8336c337, 0xffffd7d6}, + {0x8336c338, 0xffffd7d7}, + {0x8336c339, 0xffffd7d8}, + {0x8336c430, 0xffffd7d9}, + {0x8336c431, 0xffffd7da}, + {0x8336c432, 0xffffd7db}, + {0x8336c433, 0xffffd7dc}, + {0x8336c434, 0xffffd7dd}, + {0x8336c435, 0xffffd7de}, + {0x8336c436, 0xffffd7df}, + {0x8336c437, 0xffffd7e0}, + {0x8336c438, 0xffffd7e1}, + {0x8336c439, 0xffffd7e2}, + {0x8336c530, 0xffffd7e3}, + {0x8336c531, 0xffffd7e4}, + {0x8336c532, 0xffffd7e5}, + {0x8336c533, 0xffffd7e6}, + {0x8336c534, 0xffffd7e7}, + {0x8336c535, 0xffffd7e8}, + {0x8336c536, 0xffffd7e9}, + {0x8336c537, 0xffffd7ea}, + {0x8336c538, 0xffffd7eb}, + {0x8336c539, 0xffffd7ec}, + {0x8336c630, 0xffffd7ed}, + {0x8336c631, 0xffffd7ee}, + {0x8336c632, 0xffffd7ef}, + {0x8336c633, 0xffffd7f0}, + {0x8336c634, 0xffffd7f1}, + {0x8336c635, 0xffffd7f2}, + {0x8336c636, 0xffffd7f3}, + {0x8336c637, 0xffffd7f4}, + {0x8336c638, 0xffffd7f5}, + {0x8336c639, 0xffffd7f6}, + {0x8336c730, 0xffffd7f7}, + {0x8336c731, 0xffffd7f8}, + {0x8336c732, 0xffffd7f9}, + {0x8336c733, 0xffffd7fa}, + {0x8336c734, 0xffffd7fb}, + {0x8336c735, 0xffffd7fc}, + {0x8336c736, 0xffffd7fd}, + {0x8336c737, 0xffffd7fe}, + {0x8336c738, 0xffffd7ff}, + {0x8336c739, 0xffffe76c}, + {0x8336c830, 0xffffe7c8}, + {0x8336c831, 0xffffe7e7}, + {0x8336c832, 0xffffe7e8}, + {0x8336c833, 0xffffe7e9}, + {0x8336c834, 0xffffe7ea}, + {0x8336c835, 0xffffe7eb}, + {0x8336c836, 0xffffe7ec}, + {0x8336c837, 0xffffe7ed}, + {0x8336c838, 0xffffe7ee}, + {0x8336c839, 0xffffe7ef}, + {0x8336c930, 0xffffe7f0}, + {0x8336c931, 0xffffe7f1}, + {0x8336c932, 0xffffe7f2}, + {0x8336c933, 0xffffe7f3}, + {0x8336c934, 0xffffe815}, + {0x8336c935, 0xffffe819}, + {0x8336c936, 0xffffe81a}, + {0x8336c937, 0xffffe81b}, + {0x8336c938, 0xffffe81c}, + {0x8336c939, 0xffffe81d}, + {0x8336ca30, 0xffffe81f}, + {0x8336ca31, 0xffffe820}, + {0x8336ca32, 0xffffe821}, + {0x8336ca33, 0xffffe822}, + {0x8336ca34, 0xffffe823}, + {0x8336ca35, 0xffffe824}, + {0x8336ca36, 0xffffe825}, + {0x8336ca37, 0xffffe827}, + {0x8336ca38, 0xffffe828}, + {0x8336ca39, 0xffffe829}, + {0x8336cb30, 0xffffe82a}, + {0x8336cb31, 0xffffe82d}, + {0x8336cb32, 0xffffe82e}, + {0x8336cb33, 0xffffe82f}, + {0x8336cb34, 0xffffe830}, + {0x8336cb35, 0xffffe833}, + {0x8336cb36, 0xffffe834}, + {0x8336cb37, 0xffffe835}, + {0x8336cb38, 0xffffe836}, + {0x8336cb39, 0xffffe837}, + {0x8336cc30, 0xffffe838}, + {0x8336cc31, 0xffffe839}, + {0x8336cc32, 0xffffe83a}, + {0x8336cc33, 0xffffe83c}, + {0x8336cc34, 0xffffe83d}, + {0x8336cc35, 0xffffe83e}, + {0x8336cc36, 0xffffe83f}, + {0x8336cc37, 0xffffe840}, + {0x8336cc38, 0xffffe841}, + {0x8336cc39, 0xffffe842}, + {0x8336cd30, 0xffffe844}, + {0x8336cd31, 0xffffe845}, + {0x8336cd32, 0xffffe846}, + {0x8336cd33, 0xffffe847}, + {0x8336cd34, 0xffffe848}, + {0x8336cd35, 0xffffe849}, + {0x8336cd36, 0xffffe84a}, + {0x8336cd37, 0xffffe84b}, + {0x8336cd38, 0xffffe84c}, + {0x8336cd39, 0xffffe84d}, + {0x8336ce30, 0xffffe84e}, + {0x8336ce31, 0xffffe84f}, + {0x8336ce32, 0xffffe850}, + {0x8336ce33, 0xffffe851}, + {0x8336ce34, 0xffffe852}, + {0x8336ce35, 0xffffe853}, + {0x8336ce36, 0xffffe856}, + {0x8336ce37, 0xffffe857}, + {0x8336ce38, 0xffffe858}, + {0x8336ce39, 0xffffe859}, + {0x8336cf30, 0xffffe85a}, + {0x8336cf31, 0xffffe85b}, + {0x8336cf32, 0xffffe85c}, + {0x8336cf33, 0xffffe85d}, + {0x8336cf34, 0xffffe85e}, + {0x8336cf35, 0xffffe85f}, + {0x8336cf36, 0xffffe860}, + {0x8336cf37, 0xffffe861}, + {0x8336cf38, 0xffffe862}, + {0x8336cf39, 0xffffe863}, + {0x8336d030, 0xffffe865}, + {0x8336d031, 0xffffe866}, + {0x8336d032, 0xffffe867}, + {0x8336d033, 0xffffe868}, + {0x8336d034, 0xffffe869}, + {0x8336d035, 0xffffe86a}, + {0x8336d036, 0xffffe86b}, + {0x8336d037, 0xffffe86c}, + {0x8336d038, 0xffffe86d}, + {0x8336d039, 0xffffe86e}, + {0x8336d130, 0xffffe86f}, + {0x8336d131, 0xffffe870}, + {0x8336d132, 0xffffe871}, + {0x8336d133, 0xffffe872}, + {0x8336d134, 0xffffe873}, + {0x8336d135, 0xffffe874}, + {0x8336d136, 0xffffe875}, + {0x8336d137, 0xffffe876}, + {0x8336d138, 0xffffe877}, + {0x8336d139, 0xffffe878}, + {0x8336d230, 0xffffe879}, + {0x8336d231, 0xffffe87a}, + {0x8336d232, 0xffffe87b}, + {0x8336d233, 0xffffe87c}, + {0x8336d234, 0xffffe87d}, + {0x8336d235, 0xffffe87e}, + {0x8336d236, 0xffffe87f}, + {0x8336d237, 0xffffe880}, + {0x8336d238, 0xffffe881}, + {0x8336d239, 0xffffe882}, + {0x8336d330, 0xffffe883}, + {0x8336d331, 0xffffe884}, + {0x8336d332, 0xffffe885}, + {0x8336d333, 0xffffe886}, + {0x8336d334, 0xffffe887}, + {0x8336d335, 0xffffe888}, + {0x8336d336, 0xffffe889}, + {0x8336d337, 0xffffe88a}, + {0x8336d338, 0xffffe88b}, + {0x8336d339, 0xffffe88c}, + {0x8336d430, 0xffffe88d}, + {0x8336d431, 0xffffe88e}, + {0x8336d432, 0xffffe88f}, + {0x8336d433, 0xffffe890}, + {0x8336d434, 0xffffe891}, + {0x8336d435, 0xffffe892}, + {0x8336d436, 0xffffe893}, + {0x8336d437, 0xffffe894}, + {0x8336d438, 0xffffe895}, + {0x8336d439, 0xffffe896}, + {0x8336d530, 0xffffe897}, + {0x8336d531, 0xffffe898}, + {0x8336d532, 0xffffe899}, + {0x8336d533, 0xffffe89a}, + {0x8336d534, 0xffffe89b}, + {0x8336d535, 0xffffe89c}, + {0x8336d536, 0xffffe89d}, + {0x8336d537, 0xffffe89e}, + {0x8336d538, 0xffffe89f}, + {0x8336d539, 0xffffe8a0}, + {0x8336d630, 0xffffe8a1}, + {0x8336d631, 0xffffe8a2}, + {0x8336d632, 0xffffe8a3}, + {0x8336d633, 0xffffe8a4}, + {0x8336d634, 0xffffe8a5}, + {0x8336d635, 0xffffe8a6}, + {0x8336d636, 0xffffe8a7}, + {0x8336d637, 0xffffe8a8}, + {0x8336d638, 0xffffe8a9}, + {0x8336d639, 0xffffe8aa}, + {0x8336d730, 0xffffe8ab}, + {0x8336d731, 0xffffe8ac}, + {0x8336d732, 0xffffe8ad}, + {0x8336d733, 0xffffe8ae}, + {0x8336d734, 0xffffe8af}, + {0x8336d735, 0xffffe8b0}, + {0x8336d736, 0xffffe8b1}, + {0x8336d737, 0xffffe8b2}, + {0x8336d738, 0xffffe8b3}, + {0x8336d739, 0xffffe8b4}, + {0x8336d830, 0xffffe8b5}, + {0x8336d831, 0xffffe8b6}, + {0x8336d832, 0xffffe8b7}, + {0x8336d833, 0xffffe8b8}, + {0x8336d834, 0xffffe8b9}, + {0x8336d835, 0xffffe8ba}, + {0x8336d836, 0xffffe8bb}, + {0x8336d837, 0xffffe8bc}, + {0x8336d838, 0xffffe8bd}, + {0x8336d839, 0xffffe8be}, + {0x8336d930, 0xffffe8bf}, + {0x8336d931, 0xffffe8c0}, + {0x8336d932, 0xffffe8c1}, + {0x8336d933, 0xffffe8c2}, + {0x8336d934, 0xffffe8c3}, + {0x8336d935, 0xffffe8c4}, + {0x8336d936, 0xffffe8c5}, + {0x8336d937, 0xffffe8c6}, + {0x8336d938, 0xffffe8c7}, + {0x8336d939, 0xffffe8c8}, + {0x8336da30, 0xffffe8c9}, + {0x8336da31, 0xffffe8ca}, + {0x8336da32, 0xffffe8cb}, + {0x8336da33, 0xffffe8cc}, + {0x8336da34, 0xffffe8cd}, + {0x8336da35, 0xffffe8ce}, + {0x8336da36, 0xffffe8cf}, + {0x8336da37, 0xffffe8d0}, + {0x8336da38, 0xffffe8d1}, + {0x8336da39, 0xffffe8d2}, + {0x8336db30, 0xffffe8d3}, + {0x8336db31, 0xffffe8d4}, + {0x8336db32, 0xffffe8d5}, + {0x8336db33, 0xffffe8d6}, + {0x8336db34, 0xffffe8d7}, + {0x8336db35, 0xffffe8d8}, + {0x8336db36, 0xffffe8d9}, + {0x8336db37, 0xffffe8da}, + {0x8336db38, 0xffffe8db}, + {0x8336db39, 0xffffe8dc}, + {0x8336dc30, 0xffffe8dd}, + {0x8336dc31, 0xffffe8de}, + {0x8336dc32, 0xffffe8df}, + {0x8336dc33, 0xffffe8e0}, + {0x8336dc34, 0xffffe8e1}, + {0x8336dc35, 0xffffe8e2}, + {0x8336dc36, 0xffffe8e3}, + {0x8336dc37, 0xffffe8e4}, + {0x8336dc38, 0xffffe8e5}, + {0x8336dc39, 0xffffe8e6}, + {0x8336dd30, 0xffffe8e7}, + {0x8336dd31, 0xffffe8e8}, + {0x8336dd32, 0xffffe8e9}, + {0x8336dd33, 0xffffe8ea}, + {0x8336dd34, 0xffffe8eb}, + {0x8336dd35, 0xffffe8ec}, + {0x8336dd36, 0xffffe8ed}, + {0x8336dd37, 0xffffe8ee}, + {0x8336dd38, 0xffffe8ef}, + {0x8336dd39, 0xffffe8f0}, + {0x8336de30, 0xffffe8f1}, + {0x8336de31, 0xffffe8f2}, + {0x8336de32, 0xffffe8f3}, + {0x8336de33, 0xffffe8f4}, + {0x8336de34, 0xffffe8f5}, + {0x8336de35, 0xffffe8f6}, + {0x8336de36, 0xffffe8f7}, + {0x8336de37, 0xffffe8f8}, + {0x8336de38, 0xffffe8f9}, + {0x8336de39, 0xffffe8fa}, + {0x8336df30, 0xffffe8fb}, + {0x8336df31, 0xffffe8fc}, + {0x8336df32, 0xffffe8fd}, + {0x8336df33, 0xffffe8fe}, + {0x8336df34, 0xffffe8ff}, + {0x8336df35, 0xffffe900}, + {0x8336df36, 0xffffe901}, + {0x8336df37, 0xffffe902}, + {0x8336df38, 0xffffe903}, + {0x8336df39, 0xffffe904}, + {0x8336e030, 0xffffe905}, + {0x8336e031, 0xffffe906}, + {0x8336e032, 0xffffe907}, + {0x8336e033, 0xffffe908}, + {0x8336e034, 0xffffe909}, + {0x8336e035, 0xffffe90a}, + {0x8336e036, 0xffffe90b}, + {0x8336e037, 0xffffe90c}, + {0x8336e038, 0xffffe90d}, + {0x8336e039, 0xffffe90e}, + {0x8336e130, 0xffffe90f}, + {0x8336e131, 0xffffe910}, + {0x8336e132, 0xffffe911}, + {0x8336e133, 0xffffe912}, + {0x8336e134, 0xffffe913}, + {0x8336e135, 0xffffe914}, + {0x8336e136, 0xffffe915}, + {0x8336e137, 0xffffe916}, + {0x8336e138, 0xffffe917}, + {0x8336e139, 0xffffe918}, + {0x8336e230, 0xffffe919}, + {0x8336e231, 0xffffe91a}, + {0x8336e232, 0xffffe91b}, + {0x8336e233, 0xffffe91c}, + {0x8336e234, 0xffffe91d}, + {0x8336e235, 0xffffe91e}, + {0x8336e236, 0xffffe91f}, + {0x8336e237, 0xffffe920}, + {0x8336e238, 0xffffe921}, + {0x8336e239, 0xffffe922}, + {0x8336e330, 0xffffe923}, + {0x8336e331, 0xffffe924}, + {0x8336e332, 0xffffe925}, + {0x8336e333, 0xffffe926}, + {0x8336e334, 0xffffe927}, + {0x8336e335, 0xffffe928}, + {0x8336e336, 0xffffe929}, + {0x8336e337, 0xffffe92a}, + {0x8336e338, 0xffffe92b}, + {0x8336e339, 0xffffe92c}, + {0x8336e430, 0xffffe92d}, + {0x8336e431, 0xffffe92e}, + {0x8336e432, 0xffffe92f}, + {0x8336e433, 0xffffe930}, + {0x8336e434, 0xffffe931}, + {0x8336e435, 0xffffe932}, + {0x8336e436, 0xffffe933}, + {0x8336e437, 0xffffe934}, + {0x8336e438, 0xffffe935}, + {0x8336e439, 0xffffe936}, + {0x8336e530, 0xffffe937}, + {0x8336e531, 0xffffe938}, + {0x8336e532, 0xffffe939}, + {0x8336e533, 0xffffe93a}, + {0x8336e534, 0xffffe93b}, + {0x8336e535, 0xffffe93c}, + {0x8336e536, 0xffffe93d}, + {0x8336e537, 0xffffe93e}, + {0x8336e538, 0xffffe93f}, + {0x8336e539, 0xffffe940}, + {0x8336e630, 0xffffe941}, + {0x8336e631, 0xffffe942}, + {0x8336e632, 0xffffe943}, + {0x8336e633, 0xffffe944}, + {0x8336e634, 0xffffe945}, + {0x8336e635, 0xffffe946}, + {0x8336e636, 0xffffe947}, + {0x8336e637, 0xffffe948}, + {0x8336e638, 0xffffe949}, + {0x8336e639, 0xffffe94a}, + {0x8336e730, 0xffffe94b}, + {0x8336e731, 0xffffe94c}, + {0x8336e732, 0xffffe94d}, + {0x8336e733, 0xffffe94e}, + {0x8336e734, 0xffffe94f}, + {0x8336e735, 0xffffe950}, + {0x8336e736, 0xffffe951}, + {0x8336e737, 0xffffe952}, + {0x8336e738, 0xffffe953}, + {0x8336e739, 0xffffe954}, + {0x8336e830, 0xffffe955}, + {0x8336e831, 0xffffe956}, + {0x8336e832, 0xffffe957}, + {0x8336e833, 0xffffe958}, + {0x8336e834, 0xffffe959}, + {0x8336e835, 0xffffe95a}, + {0x8336e836, 0xffffe95b}, + {0x8336e837, 0xffffe95c}, + {0x8336e838, 0xffffe95d}, + {0x8336e839, 0xffffe95e}, + {0x8336e930, 0xffffe95f}, + {0x8336e931, 0xffffe960}, + {0x8336e932, 0xffffe961}, + {0x8336e933, 0xffffe962}, + {0x8336e934, 0xffffe963}, + {0x8336e935, 0xffffe964}, + {0x8336e936, 0xffffe965}, + {0x8336e937, 0xffffe966}, + {0x8336e938, 0xffffe967}, + {0x8336e939, 0xffffe968}, + {0x8336ea30, 0xffffe969}, + {0x8336ea31, 0xffffe96a}, + {0x8336ea32, 0xffffe96b}, + {0x8336ea33, 0xffffe96c}, + {0x8336ea34, 0xffffe96d}, + {0x8336ea35, 0xffffe96e}, + {0x8336ea36, 0xffffe96f}, + {0x8336ea37, 0xffffe970}, + {0x8336ea38, 0xffffe971}, + {0x8336ea39, 0xffffe972}, + {0x8336eb30, 0xffffe973}, + {0x8336eb31, 0xffffe974}, + {0x8336eb32, 0xffffe975}, + {0x8336eb33, 0xffffe976}, + {0x8336eb34, 0xffffe977}, + {0x8336eb35, 0xffffe978}, + {0x8336eb36, 0xffffe979}, + {0x8336eb37, 0xffffe97a}, + {0x8336eb38, 0xffffe97b}, + {0x8336eb39, 0xffffe97c}, + {0x8336ec30, 0xffffe97d}, + {0x8336ec31, 0xffffe97e}, + {0x8336ec32, 0xffffe97f}, + {0x8336ec33, 0xffffe980}, + {0x8336ec34, 0xffffe981}, + {0x8336ec35, 0xffffe982}, + {0x8336ec36, 0xffffe983}, + {0x8336ec37, 0xffffe984}, + {0x8336ec38, 0xffffe985}, + {0x8336ec39, 0xffffe986}, + {0x8336ed30, 0xffffe987}, + {0x8336ed31, 0xffffe988}, + {0x8336ed32, 0xffffe989}, + {0x8336ed33, 0xffffe98a}, + {0x8336ed34, 0xffffe98b}, + {0x8336ed35, 0xffffe98c}, + {0x8336ed36, 0xffffe98d}, + {0x8336ed37, 0xffffe98e}, + {0x8336ed38, 0xffffe98f}, + {0x8336ed39, 0xffffe990}, + {0x8336ee30, 0xffffe991}, + {0x8336ee31, 0xffffe992}, + {0x8336ee32, 0xffffe993}, + {0x8336ee33, 0xffffe994}, + {0x8336ee34, 0xffffe995}, + {0x8336ee35, 0xffffe996}, + {0x8336ee36, 0xffffe997}, + {0x8336ee37, 0xffffe998}, + {0x8336ee38, 0xffffe999}, + {0x8336ee39, 0xffffe99a}, + {0x8336ef30, 0xffffe99b}, + {0x8336ef31, 0xffffe99c}, + {0x8336ef32, 0xffffe99d}, + {0x8336ef33, 0xffffe99e}, + {0x8336ef34, 0xffffe99f}, + {0x8336ef35, 0xffffe9a0}, + {0x8336ef36, 0xffffe9a1}, + {0x8336ef37, 0xffffe9a2}, + {0x8336ef38, 0xffffe9a3}, + {0x8336ef39, 0xffffe9a4}, + {0x8336f030, 0xffffe9a5}, + {0x8336f031, 0xffffe9a6}, + {0x8336f032, 0xffffe9a7}, + {0x8336f033, 0xffffe9a8}, + {0x8336f034, 0xffffe9a9}, + {0x8336f035, 0xffffe9aa}, + {0x8336f036, 0xffffe9ab}, + {0x8336f037, 0xffffe9ac}, + {0x8336f038, 0xffffe9ad}, + {0x8336f039, 0xffffe9ae}, + {0x8336f130, 0xffffe9af}, + {0x8336f131, 0xffffe9b0}, + {0x8336f132, 0xffffe9b1}, + {0x8336f133, 0xffffe9b2}, + {0x8336f134, 0xffffe9b3}, + {0x8336f135, 0xffffe9b4}, + {0x8336f136, 0xffffe9b5}, + {0x8336f137, 0xffffe9b6}, + {0x8336f138, 0xffffe9b7}, + {0x8336f139, 0xffffe9b8}, + {0x8336f230, 0xffffe9b9}, + {0x8336f231, 0xffffe9ba}, + {0x8336f232, 0xffffe9bb}, + {0x8336f233, 0xffffe9bc}, + {0x8336f234, 0xffffe9bd}, + {0x8336f235, 0xffffe9be}, + {0x8336f236, 0xffffe9bf}, + {0x8336f237, 0xffffe9c0}, + {0x8336f238, 0xffffe9c1}, + {0x8336f239, 0xffffe9c2}, + {0x8336f330, 0xffffe9c3}, + {0x8336f331, 0xffffe9c4}, + {0x8336f332, 0xffffe9c5}, + {0x8336f333, 0xffffe9c6}, + {0x8336f334, 0xffffe9c7}, + {0x8336f335, 0xffffe9c8}, + {0x8336f336, 0xffffe9c9}, + {0x8336f337, 0xffffe9ca}, + {0x8336f338, 0xffffe9cb}, + {0x8336f339, 0xffffe9cc}, + {0x8336f430, 0xffffe9cd}, + {0x8336f431, 0xffffe9ce}, + {0x8336f432, 0xffffe9cf}, + {0x8336f433, 0xffffe9d0}, + {0x8336f434, 0xffffe9d1}, + {0x8336f435, 0xffffe9d2}, + {0x8336f436, 0xffffe9d3}, + {0x8336f437, 0xffffe9d4}, + {0x8336f438, 0xffffe9d5}, + {0x8336f439, 0xffffe9d6}, + {0x8336f530, 0xffffe9d7}, + {0x8336f531, 0xffffe9d8}, + {0x8336f532, 0xffffe9d9}, + {0x8336f533, 0xffffe9da}, + {0x8336f534, 0xffffe9db}, + {0x8336f535, 0xffffe9dc}, + {0x8336f536, 0xffffe9dd}, + {0x8336f537, 0xffffe9de}, + {0x8336f538, 0xffffe9df}, + {0x8336f539, 0xffffe9e0}, + {0x8336f630, 0xffffe9e1}, + {0x8336f631, 0xffffe9e2}, + {0x8336f632, 0xffffe9e3}, + {0x8336f633, 0xffffe9e4}, + {0x8336f634, 0xffffe9e5}, + {0x8336f635, 0xffffe9e6}, + {0x8336f636, 0xffffe9e7}, + {0x8336f637, 0xffffe9e8}, + {0x8336f638, 0xffffe9e9}, + {0x8336f639, 0xffffe9ea}, + {0x8336f730, 0xffffe9eb}, + {0x8336f731, 0xffffe9ec}, + {0x8336f732, 0xffffe9ed}, + {0x8336f733, 0xffffe9ee}, + {0x8336f734, 0xffffe9ef}, + {0x8336f735, 0xffffe9f0}, + {0x8336f736, 0xffffe9f1}, + {0x8336f737, 0xffffe9f2}, + {0x8336f738, 0xffffe9f3}, + {0x8336f739, 0xffffe9f4}, + {0x8336f830, 0xffffe9f5}, + {0x8336f831, 0xffffe9f6}, + {0x8336f832, 0xffffe9f7}, + {0x8336f833, 0xffffe9f8}, + {0x8336f834, 0xffffe9f9}, + {0x8336f835, 0xffffe9fa}, + {0x8336f836, 0xffffe9fb}, + {0x8336f837, 0xffffe9fc}, + {0x8336f838, 0xffffe9fd}, + {0x8336f839, 0xffffe9fe}, + {0x8336f930, 0xffffe9ff}, + {0x8336f931, 0xffffea00}, + {0x8336f932, 0xffffea01}, + {0x8336f933, 0xffffea02}, + {0x8336f934, 0xffffea03}, + {0x8336f935, 0xffffea04}, + {0x8336f936, 0xffffea05}, + {0x8336f937, 0xffffea06}, + {0x8336f938, 0xffffea07}, + {0x8336f939, 0xffffea08}, + {0x8336fa30, 0xffffea09}, + {0x8336fa31, 0xffffea0a}, + {0x8336fa32, 0xffffea0b}, + {0x8336fa33, 0xffffea0c}, + {0x8336fa34, 0xffffea0d}, + {0x8336fa35, 0xffffea0e}, + {0x8336fa36, 0xffffea0f}, + {0x8336fa37, 0xffffea10}, + {0x8336fa38, 0xffffea11}, + {0x8336fa39, 0xffffea12}, + {0x8336fb30, 0xffffea13}, + {0x8336fb31, 0xffffea14}, + {0x8336fb32, 0xffffea15}, + {0x8336fb33, 0xffffea16}, + {0x8336fb34, 0xffffea17}, + {0x8336fb35, 0xffffea18}, + {0x8336fb36, 0xffffea19}, + {0x8336fb37, 0xffffea1a}, + {0x8336fb38, 0xffffea1b}, + {0x8336fb39, 0xffffea1c}, + {0x8336fc30, 0xffffea1d}, + {0x8336fc31, 0xffffea1e}, + {0x8336fc32, 0xffffea1f}, + {0x8336fc33, 0xffffea20}, + {0x8336fc34, 0xffffea21}, + {0x8336fc35, 0xffffea22}, + {0x8336fc36, 0xffffea23}, + {0x8336fc37, 0xffffea24}, + {0x8336fc38, 0xffffea25}, + {0x8336fc39, 0xffffea26}, + {0x8336fd30, 0xffffea27}, + {0x8336fd31, 0xffffea28}, + {0x8336fd32, 0xffffea29}, + {0x8336fd33, 0xffffea2a}, + {0x8336fd34, 0xffffea2b}, + {0x8336fd35, 0xffffea2c}, + {0x8336fd36, 0xffffea2d}, + {0x8336fd37, 0xffffea2e}, + {0x8336fd38, 0xffffea2f}, + {0x8336fd39, 0xffffea30}, + {0x8336fe30, 0xffffea31}, + {0x8336fe31, 0xffffea32}, + {0x8336fe32, 0xffffea33}, + {0x8336fe33, 0xffffea34}, + {0x8336fe34, 0xffffea35}, + {0x8336fe35, 0xffffea36}, + {0x8336fe36, 0xffffea37}, + {0x8336fe37, 0xffffea38}, + {0x8336fe38, 0xffffea39}, + {0x8336fe39, 0xffffea3a}, + {0x83378130, 0xffffea3b}, + {0x83378131, 0xffffea3c}, + {0x83378132, 0xffffea3d}, + {0x83378133, 0xffffea3e}, + {0x83378134, 0xffffea3f}, + {0x83378135, 0xffffea40}, + {0x83378136, 0xffffea41}, + {0x83378137, 0xffffea42}, + {0x83378138, 0xffffea43}, + {0x83378139, 0xffffea44}, + {0x83378230, 0xffffea45}, + {0x83378231, 0xffffea46}, + {0x83378232, 0xffffea47}, + {0x83378233, 0xffffea48}, + {0x83378234, 0xffffea49}, + {0x83378235, 0xffffea4a}, + {0x83378236, 0xffffea4b}, + {0x83378237, 0xffffea4c}, + {0x83378238, 0xffffea4d}, + {0x83378239, 0xffffea4e}, + {0x83378330, 0xffffea4f}, + {0x83378331, 0xffffea50}, + {0x83378332, 0xffffea51}, + {0x83378333, 0xffffea52}, + {0x83378334, 0xffffea53}, + {0x83378335, 0xffffea54}, + {0x83378336, 0xffffea55}, + {0x83378337, 0xffffea56}, + {0x83378338, 0xffffea57}, + {0x83378339, 0xffffea58}, + {0x83378430, 0xffffea59}, + {0x83378431, 0xffffea5a}, + {0x83378432, 0xffffea5b}, + {0x83378433, 0xffffea5c}, + {0x83378434, 0xffffea5d}, + {0x83378435, 0xffffea5e}, + {0x83378436, 0xffffea5f}, + {0x83378437, 0xffffea60}, + {0x83378438, 0xffffea61}, + {0x83378439, 0xffffea62}, + {0x83378530, 0xffffea63}, + {0x83378531, 0xffffea64}, + {0x83378532, 0xffffea65}, + {0x83378533, 0xffffea66}, + {0x83378534, 0xffffea67}, + {0x83378535, 0xffffea68}, + {0x83378536, 0xffffea69}, + {0x83378537, 0xffffea6a}, + {0x83378538, 0xffffea6b}, + {0x83378539, 0xffffea6c}, + {0x83378630, 0xffffea6d}, + {0x83378631, 0xffffea6e}, + {0x83378632, 0xffffea6f}, + {0x83378633, 0xffffea70}, + {0x83378634, 0xffffea71}, + {0x83378635, 0xffffea72}, + {0x83378636, 0xffffea73}, + {0x83378637, 0xffffea74}, + {0x83378638, 0xffffea75}, + {0x83378639, 0xffffea76}, + {0x83378730, 0xffffea77}, + {0x83378731, 0xffffea78}, + {0x83378732, 0xffffea79}, + {0x83378733, 0xffffea7a}, + {0x83378734, 0xffffea7b}, + {0x83378735, 0xffffea7c}, + {0x83378736, 0xffffea7d}, + {0x83378737, 0xffffea7e}, + {0x83378738, 0xffffea7f}, + {0x83378739, 0xffffea80}, + {0x83378830, 0xffffea81}, + {0x83378831, 0xffffea82}, + {0x83378832, 0xffffea83}, + {0x83378833, 0xffffea84}, + {0x83378834, 0xffffea85}, + {0x83378835, 0xffffea86}, + {0x83378836, 0xffffea87}, + {0x83378837, 0xffffea88}, + {0x83378838, 0xffffea89}, + {0x83378839, 0xffffea8a}, + {0x83378930, 0xffffea8b}, + {0x83378931, 0xffffea8c}, + {0x83378932, 0xffffea8d}, + {0x83378933, 0xffffea8e}, + {0x83378934, 0xffffea8f}, + {0x83378935, 0xffffea90}, + {0x83378936, 0xffffea91}, + {0x83378937, 0xffffea92}, + {0x83378938, 0xffffea93}, + {0x83378939, 0xffffea94}, + {0x83378a30, 0xffffea95}, + {0x83378a31, 0xffffea96}, + {0x83378a32, 0xffffea97}, + {0x83378a33, 0xffffea98}, + {0x83378a34, 0xffffea99}, + {0x83378a35, 0xffffea9a}, + {0x83378a36, 0xffffea9b}, + {0x83378a37, 0xffffea9c}, + {0x83378a38, 0xffffea9d}, + {0x83378a39, 0xffffea9e}, + {0x83378b30, 0xffffea9f}, + {0x83378b31, 0xffffeaa0}, + {0x83378b32, 0xffffeaa1}, + {0x83378b33, 0xffffeaa2}, + {0x83378b34, 0xffffeaa3}, + {0x83378b35, 0xffffeaa4}, + {0x83378b36, 0xffffeaa5}, + {0x83378b37, 0xffffeaa6}, + {0x83378b38, 0xffffeaa7}, + {0x83378b39, 0xffffeaa8}, + {0x83378c30, 0xffffeaa9}, + {0x83378c31, 0xffffeaaa}, + {0x83378c32, 0xffffeaab}, + {0x83378c33, 0xffffeaac}, + {0x83378c34, 0xffffeaad}, + {0x83378c35, 0xffffeaae}, + {0x83378c36, 0xffffeaaf}, + {0x83378c37, 0xffffeab0}, + {0x83378c38, 0xffffeab1}, + {0x83378c39, 0xffffeab2}, + {0x83378d30, 0xffffeab3}, + {0x83378d31, 0xffffeab4}, + {0x83378d32, 0xffffeab5}, + {0x83378d33, 0xffffeab6}, + {0x83378d34, 0xffffeab7}, + {0x83378d35, 0xffffeab8}, + {0x83378d36, 0xffffeab9}, + {0x83378d37, 0xffffeaba}, + {0x83378d38, 0xffffeabb}, + {0x83378d39, 0xffffeabc}, + {0x83378e30, 0xffffeabd}, + {0x83378e31, 0xffffeabe}, + {0x83378e32, 0xffffeabf}, + {0x83378e33, 0xffffeac0}, + {0x83378e34, 0xffffeac1}, + {0x83378e35, 0xffffeac2}, + {0x83378e36, 0xffffeac3}, + {0x83378e37, 0xffffeac4}, + {0x83378e38, 0xffffeac5}, + {0x83378e39, 0xffffeac6}, + {0x83378f30, 0xffffeac7}, + {0x83378f31, 0xffffeac8}, + {0x83378f32, 0xffffeac9}, + {0x83378f33, 0xffffeaca}, + {0x83378f34, 0xffffeacb}, + {0x83378f35, 0xffffeacc}, + {0x83378f36, 0xffffeacd}, + {0x83378f37, 0xffffeace}, + {0x83378f38, 0xffffeacf}, + {0x83378f39, 0xffffead0}, + {0x83379030, 0xffffead1}, + {0x83379031, 0xffffead2}, + {0x83379032, 0xffffead3}, + {0x83379033, 0xffffead4}, + {0x83379034, 0xffffead5}, + {0x83379035, 0xffffead6}, + {0x83379036, 0xffffead7}, + {0x83379037, 0xffffead8}, + {0x83379038, 0xffffead9}, + {0x83379039, 0xffffeada}, + {0x83379130, 0xffffeadb}, + {0x83379131, 0xffffeadc}, + {0x83379132, 0xffffeadd}, + {0x83379133, 0xffffeade}, + {0x83379134, 0xffffeadf}, + {0x83379135, 0xffffeae0}, + {0x83379136, 0xffffeae1}, + {0x83379137, 0xffffeae2}, + {0x83379138, 0xffffeae3}, + {0x83379139, 0xffffeae4}, + {0x83379230, 0xffffeae5}, + {0x83379231, 0xffffeae6}, + {0x83379232, 0xffffeae7}, + {0x83379233, 0xffffeae8}, + {0x83379234, 0xffffeae9}, + {0x83379235, 0xffffeaea}, + {0x83379236, 0xffffeaeb}, + {0x83379237, 0xffffeaec}, + {0x83379238, 0xffffeaed}, + {0x83379239, 0xffffeaee}, + {0x83379330, 0xffffeaef}, + {0x83379331, 0xffffeaf0}, + {0x83379332, 0xffffeaf1}, + {0x83379333, 0xffffeaf2}, + {0x83379334, 0xffffeaf3}, + {0x83379335, 0xffffeaf4}, + {0x83379336, 0xffffeaf5}, + {0x83379337, 0xffffeaf6}, + {0x83379338, 0xffffeaf7}, + {0x83379339, 0xffffeaf8}, + {0x83379430, 0xffffeaf9}, + {0x83379431, 0xffffeafa}, + {0x83379432, 0xffffeafb}, + {0x83379433, 0xffffeafc}, + {0x83379434, 0xffffeafd}, + {0x83379435, 0xffffeafe}, + {0x83379436, 0xffffeaff}, + {0x83379437, 0xffffeb00}, + {0x83379438, 0xffffeb01}, + {0x83379439, 0xffffeb02}, + {0x83379530, 0xffffeb03}, + {0x83379531, 0xffffeb04}, + {0x83379532, 0xffffeb05}, + {0x83379533, 0xffffeb06}, + {0x83379534, 0xffffeb07}, + {0x83379535, 0xffffeb08}, + {0x83379536, 0xffffeb09}, + {0x83379537, 0xffffeb0a}, + {0x83379538, 0xffffeb0b}, + {0x83379539, 0xffffeb0c}, + {0x83379630, 0xffffeb0d}, + {0x83379631, 0xffffeb0e}, + {0x83379632, 0xffffeb0f}, + {0x83379633, 0xffffeb10}, + {0x83379634, 0xffffeb11}, + {0x83379635, 0xffffeb12}, + {0x83379636, 0xffffeb13}, + {0x83379637, 0xffffeb14}, + {0x83379638, 0xffffeb15}, + {0x83379639, 0xffffeb16}, + {0x83379730, 0xffffeb17}, + {0x83379731, 0xffffeb18}, + {0x83379732, 0xffffeb19}, + {0x83379733, 0xffffeb1a}, + {0x83379734, 0xffffeb1b}, + {0x83379735, 0xffffeb1c}, + {0x83379736, 0xffffeb1d}, + {0x83379737, 0xffffeb1e}, + {0x83379738, 0xffffeb1f}, + {0x83379739, 0xffffeb20}, + {0x83379830, 0xffffeb21}, + {0x83379831, 0xffffeb22}, + {0x83379832, 0xffffeb23}, + {0x83379833, 0xffffeb24}, + {0x83379834, 0xffffeb25}, + {0x83379835, 0xffffeb26}, + {0x83379836, 0xffffeb27}, + {0x83379837, 0xffffeb28}, + {0x83379838, 0xffffeb29}, + {0x83379839, 0xffffeb2a}, + {0x83379930, 0xffffeb2b}, + {0x83379931, 0xffffeb2c}, + {0x83379932, 0xffffeb2d}, + {0x83379933, 0xffffeb2e}, + {0x83379934, 0xffffeb2f}, + {0x83379935, 0xffffeb30}, + {0x83379936, 0xffffeb31}, + {0x83379937, 0xffffeb32}, + {0x83379938, 0xffffeb33}, + {0x83379939, 0xffffeb34}, + {0x83379a30, 0xffffeb35}, + {0x83379a31, 0xffffeb36}, + {0x83379a32, 0xffffeb37}, + {0x83379a33, 0xffffeb38}, + {0x83379a34, 0xffffeb39}, + {0x83379a35, 0xffffeb3a}, + {0x83379a36, 0xffffeb3b}, + {0x83379a37, 0xffffeb3c}, + {0x83379a38, 0xffffeb3d}, + {0x83379a39, 0xffffeb3e}, + {0x83379b30, 0xffffeb3f}, + {0x83379b31, 0xffffeb40}, + {0x83379b32, 0xffffeb41}, + {0x83379b33, 0xffffeb42}, + {0x83379b34, 0xffffeb43}, + {0x83379b35, 0xffffeb44}, + {0x83379b36, 0xffffeb45}, + {0x83379b37, 0xffffeb46}, + {0x83379b38, 0xffffeb47}, + {0x83379b39, 0xffffeb48}, + {0x83379c30, 0xffffeb49}, + {0x83379c31, 0xffffeb4a}, + {0x83379c32, 0xffffeb4b}, + {0x83379c33, 0xffffeb4c}, + {0x83379c34, 0xffffeb4d}, + {0x83379c35, 0xffffeb4e}, + {0x83379c36, 0xffffeb4f}, + {0x83379c37, 0xffffeb50}, + {0x83379c38, 0xffffeb51}, + {0x83379c39, 0xffffeb52}, + {0x83379d30, 0xffffeb53}, + {0x83379d31, 0xffffeb54}, + {0x83379d32, 0xffffeb55}, + {0x83379d33, 0xffffeb56}, + {0x83379d34, 0xffffeb57}, + {0x83379d35, 0xffffeb58}, + {0x83379d36, 0xffffeb59}, + {0x83379d37, 0xffffeb5a}, + {0x83379d38, 0xffffeb5b}, + {0x83379d39, 0xffffeb5c}, + {0x83379e30, 0xffffeb5d}, + {0x83379e31, 0xffffeb5e}, + {0x83379e32, 0xffffeb5f}, + {0x83379e33, 0xffffeb60}, + {0x83379e34, 0xffffeb61}, + {0x83379e35, 0xffffeb62}, + {0x83379e36, 0xffffeb63}, + {0x83379e37, 0xffffeb64}, + {0x83379e38, 0xffffeb65}, + {0x83379e39, 0xffffeb66}, + {0x83379f30, 0xffffeb67}, + {0x83379f31, 0xffffeb68}, + {0x83379f32, 0xffffeb69}, + {0x83379f33, 0xffffeb6a}, + {0x83379f34, 0xffffeb6b}, + {0x83379f35, 0xffffeb6c}, + {0x83379f36, 0xffffeb6d}, + {0x83379f37, 0xffffeb6e}, + {0x83379f38, 0xffffeb6f}, + {0x83379f39, 0xffffeb70}, + {0x8337a030, 0xffffeb71}, + {0x8337a031, 0xffffeb72}, + {0x8337a032, 0xffffeb73}, + {0x8337a033, 0xffffeb74}, + {0x8337a034, 0xffffeb75}, + {0x8337a035, 0xffffeb76}, + {0x8337a036, 0xffffeb77}, + {0x8337a037, 0xffffeb78}, + {0x8337a038, 0xffffeb79}, + {0x8337a039, 0xffffeb7a}, + {0x8337a130, 0xffffeb7b}, + {0x8337a131, 0xffffeb7c}, + {0x8337a132, 0xffffeb7d}, + {0x8337a133, 0xffffeb7e}, + {0x8337a134, 0xffffeb7f}, + {0x8337a135, 0xffffeb80}, + {0x8337a136, 0xffffeb81}, + {0x8337a137, 0xffffeb82}, + {0x8337a138, 0xffffeb83}, + {0x8337a139, 0xffffeb84}, + {0x8337a230, 0xffffeb85}, + {0x8337a231, 0xffffeb86}, + {0x8337a232, 0xffffeb87}, + {0x8337a233, 0xffffeb88}, + {0x8337a234, 0xffffeb89}, + {0x8337a235, 0xffffeb8a}, + {0x8337a236, 0xffffeb8b}, + {0x8337a237, 0xffffeb8c}, + {0x8337a238, 0xffffeb8d}, + {0x8337a239, 0xffffeb8e}, + {0x8337a330, 0xffffeb8f}, + {0x8337a331, 0xffffeb90}, + {0x8337a332, 0xffffeb91}, + {0x8337a333, 0xffffeb92}, + {0x8337a334, 0xffffeb93}, + {0x8337a335, 0xffffeb94}, + {0x8337a336, 0xffffeb95}, + {0x8337a337, 0xffffeb96}, + {0x8337a338, 0xffffeb97}, + {0x8337a339, 0xffffeb98}, + {0x8337a430, 0xffffeb99}, + {0x8337a431, 0xffffeb9a}, + {0x8337a432, 0xffffeb9b}, + {0x8337a433, 0xffffeb9c}, + {0x8337a434, 0xffffeb9d}, + {0x8337a435, 0xffffeb9e}, + {0x8337a436, 0xffffeb9f}, + {0x8337a437, 0xffffeba0}, + {0x8337a438, 0xffffeba1}, + {0x8337a439, 0xffffeba2}, + {0x8337a530, 0xffffeba3}, + {0x8337a531, 0xffffeba4}, + {0x8337a532, 0xffffeba5}, + {0x8337a533, 0xffffeba6}, + {0x8337a534, 0xffffeba7}, + {0x8337a535, 0xffffeba8}, + {0x8337a536, 0xffffeba9}, + {0x8337a537, 0xffffebaa}, + {0x8337a538, 0xffffebab}, + {0x8337a539, 0xffffebac}, + {0x8337a630, 0xffffebad}, + {0x8337a631, 0xffffebae}, + {0x8337a632, 0xffffebaf}, + {0x8337a633, 0xffffebb0}, + {0x8337a634, 0xffffebb1}, + {0x8337a635, 0xffffebb2}, + {0x8337a636, 0xffffebb3}, + {0x8337a637, 0xffffebb4}, + {0x8337a638, 0xffffebb5}, + {0x8337a639, 0xffffebb6}, + {0x8337a730, 0xffffebb7}, + {0x8337a731, 0xffffebb8}, + {0x8337a732, 0xffffebb9}, + {0x8337a733, 0xffffebba}, + {0x8337a734, 0xffffebbb}, + {0x8337a735, 0xffffebbc}, + {0x8337a736, 0xffffebbd}, + {0x8337a737, 0xffffebbe}, + {0x8337a738, 0xffffebbf}, + {0x8337a739, 0xffffebc0}, + {0x8337a830, 0xffffebc1}, + {0x8337a831, 0xffffebc2}, + {0x8337a832, 0xffffebc3}, + {0x8337a833, 0xffffebc4}, + {0x8337a834, 0xffffebc5}, + {0x8337a835, 0xffffebc6}, + {0x8337a836, 0xffffebc7}, + {0x8337a837, 0xffffebc8}, + {0x8337a838, 0xffffebc9}, + {0x8337a839, 0xffffebca}, + {0x8337a930, 0xffffebcb}, + {0x8337a931, 0xffffebcc}, + {0x8337a932, 0xffffebcd}, + {0x8337a933, 0xffffebce}, + {0x8337a934, 0xffffebcf}, + {0x8337a935, 0xffffebd0}, + {0x8337a936, 0xffffebd1}, + {0x8337a937, 0xffffebd2}, + {0x8337a938, 0xffffebd3}, + {0x8337a939, 0xffffebd4}, + {0x8337aa30, 0xffffebd5}, + {0x8337aa31, 0xffffebd6}, + {0x8337aa32, 0xffffebd7}, + {0x8337aa33, 0xffffebd8}, + {0x8337aa34, 0xffffebd9}, + {0x8337aa35, 0xffffebda}, + {0x8337aa36, 0xffffebdb}, + {0x8337aa37, 0xffffebdc}, + {0x8337aa38, 0xffffebdd}, + {0x8337aa39, 0xffffebde}, + {0x8337ab30, 0xffffebdf}, + {0x8337ab31, 0xffffebe0}, + {0x8337ab32, 0xffffebe1}, + {0x8337ab33, 0xffffebe2}, + {0x8337ab34, 0xffffebe3}, + {0x8337ab35, 0xffffebe4}, + {0x8337ab36, 0xffffebe5}, + {0x8337ab37, 0xffffebe6}, + {0x8337ab38, 0xffffebe7}, + {0x8337ab39, 0xffffebe8}, + {0x8337ac30, 0xffffebe9}, + {0x8337ac31, 0xffffebea}, + {0x8337ac32, 0xffffebeb}, + {0x8337ac33, 0xffffebec}, + {0x8337ac34, 0xffffebed}, + {0x8337ac35, 0xffffebee}, + {0x8337ac36, 0xffffebef}, + {0x8337ac37, 0xffffebf0}, + {0x8337ac38, 0xffffebf1}, + {0x8337ac39, 0xffffebf2}, + {0x8337ad30, 0xffffebf3}, + {0x8337ad31, 0xffffebf4}, + {0x8337ad32, 0xffffebf5}, + {0x8337ad33, 0xffffebf6}, + {0x8337ad34, 0xffffebf7}, + {0x8337ad35, 0xffffebf8}, + {0x8337ad36, 0xffffebf9}, + {0x8337ad37, 0xffffebfa}, + {0x8337ad38, 0xffffebfb}, + {0x8337ad39, 0xffffebfc}, + {0x8337ae30, 0xffffebfd}, + {0x8337ae31, 0xffffebfe}, + {0x8337ae32, 0xffffebff}, + {0x8337ae33, 0xffffec00}, + {0x8337ae34, 0xffffec01}, + {0x8337ae35, 0xffffec02}, + {0x8337ae36, 0xffffec03}, + {0x8337ae37, 0xffffec04}, + {0x8337ae38, 0xffffec05}, + {0x8337ae39, 0xffffec06}, + {0x8337af30, 0xffffec07}, + {0x8337af31, 0xffffec08}, + {0x8337af32, 0xffffec09}, + {0x8337af33, 0xffffec0a}, + {0x8337af34, 0xffffec0b}, + {0x8337af35, 0xffffec0c}, + {0x8337af36, 0xffffec0d}, + {0x8337af37, 0xffffec0e}, + {0x8337af38, 0xffffec0f}, + {0x8337af39, 0xffffec10}, + {0x8337b030, 0xffffec11}, + {0x8337b031, 0xffffec12}, + {0x8337b032, 0xffffec13}, + {0x8337b033, 0xffffec14}, + {0x8337b034, 0xffffec15}, + {0x8337b035, 0xffffec16}, + {0x8337b036, 0xffffec17}, + {0x8337b037, 0xffffec18}, + {0x8337b038, 0xffffec19}, + {0x8337b039, 0xffffec1a}, + {0x8337b130, 0xffffec1b}, + {0x8337b131, 0xffffec1c}, + {0x8337b132, 0xffffec1d}, + {0x8337b133, 0xffffec1e}, + {0x8337b134, 0xffffec1f}, + {0x8337b135, 0xffffec20}, + {0x8337b136, 0xffffec21}, + {0x8337b137, 0xffffec22}, + {0x8337b138, 0xffffec23}, + {0x8337b139, 0xffffec24}, + {0x8337b230, 0xffffec25}, + {0x8337b231, 0xffffec26}, + {0x8337b232, 0xffffec27}, + {0x8337b233, 0xffffec28}, + {0x8337b234, 0xffffec29}, + {0x8337b235, 0xffffec2a}, + {0x8337b236, 0xffffec2b}, + {0x8337b237, 0xffffec2c}, + {0x8337b238, 0xffffec2d}, + {0x8337b239, 0xffffec2e}, + {0x8337b330, 0xffffec2f}, + {0x8337b331, 0xffffec30}, + {0x8337b332, 0xffffec31}, + {0x8337b333, 0xffffec32}, + {0x8337b334, 0xffffec33}, + {0x8337b335, 0xffffec34}, + {0x8337b336, 0xffffec35}, + {0x8337b337, 0xffffec36}, + {0x8337b338, 0xffffec37}, + {0x8337b339, 0xffffec38}, + {0x8337b430, 0xffffec39}, + {0x8337b431, 0xffffec3a}, + {0x8337b432, 0xffffec3b}, + {0x8337b433, 0xffffec3c}, + {0x8337b434, 0xffffec3d}, + {0x8337b435, 0xffffec3e}, + {0x8337b436, 0xffffec3f}, + {0x8337b437, 0xffffec40}, + {0x8337b438, 0xffffec41}, + {0x8337b439, 0xffffec42}, + {0x8337b530, 0xffffec43}, + {0x8337b531, 0xffffec44}, + {0x8337b532, 0xffffec45}, + {0x8337b533, 0xffffec46}, + {0x8337b534, 0xffffec47}, + {0x8337b535, 0xffffec48}, + {0x8337b536, 0xffffec49}, + {0x8337b537, 0xffffec4a}, + {0x8337b538, 0xffffec4b}, + {0x8337b539, 0xffffec4c}, + {0x8337b630, 0xffffec4d}, + {0x8337b631, 0xffffec4e}, + {0x8337b632, 0xffffec4f}, + {0x8337b633, 0xffffec50}, + {0x8337b634, 0xffffec51}, + {0x8337b635, 0xffffec52}, + {0x8337b636, 0xffffec53}, + {0x8337b637, 0xffffec54}, + {0x8337b638, 0xffffec55}, + {0x8337b639, 0xffffec56}, + {0x8337b730, 0xffffec57}, + {0x8337b731, 0xffffec58}, + {0x8337b732, 0xffffec59}, + {0x8337b733, 0xffffec5a}, + {0x8337b734, 0xffffec5b}, + {0x8337b735, 0xffffec5c}, + {0x8337b736, 0xffffec5d}, + {0x8337b737, 0xffffec5e}, + {0x8337b738, 0xffffec5f}, + {0x8337b739, 0xffffec60}, + {0x8337b830, 0xffffec61}, + {0x8337b831, 0xffffec62}, + {0x8337b832, 0xffffec63}, + {0x8337b833, 0xffffec64}, + {0x8337b834, 0xffffec65}, + {0x8337b835, 0xffffec66}, + {0x8337b836, 0xffffec67}, + {0x8337b837, 0xffffec68}, + {0x8337b838, 0xffffec69}, + {0x8337b839, 0xffffec6a}, + {0x8337b930, 0xffffec6b}, + {0x8337b931, 0xffffec6c}, + {0x8337b932, 0xffffec6d}, + {0x8337b933, 0xffffec6e}, + {0x8337b934, 0xffffec6f}, + {0x8337b935, 0xffffec70}, + {0x8337b936, 0xffffec71}, + {0x8337b937, 0xffffec72}, + {0x8337b938, 0xffffec73}, + {0x8337b939, 0xffffec74}, + {0x8337ba30, 0xffffec75}, + {0x8337ba31, 0xffffec76}, + {0x8337ba32, 0xffffec77}, + {0x8337ba33, 0xffffec78}, + {0x8337ba34, 0xffffec79}, + {0x8337ba35, 0xffffec7a}, + {0x8337ba36, 0xffffec7b}, + {0x8337ba37, 0xffffec7c}, + {0x8337ba38, 0xffffec7d}, + {0x8337ba39, 0xffffec7e}, + {0x8337bb30, 0xffffec7f}, + {0x8337bb31, 0xffffec80}, + {0x8337bb32, 0xffffec81}, + {0x8337bb33, 0xffffec82}, + {0x8337bb34, 0xffffec83}, + {0x8337bb35, 0xffffec84}, + {0x8337bb36, 0xffffec85}, + {0x8337bb37, 0xffffec86}, + {0x8337bb38, 0xffffec87}, + {0x8337bb39, 0xffffec88}, + {0x8337bc30, 0xffffec89}, + {0x8337bc31, 0xffffec8a}, + {0x8337bc32, 0xffffec8b}, + {0x8337bc33, 0xffffec8c}, + {0x8337bc34, 0xffffec8d}, + {0x8337bc35, 0xffffec8e}, + {0x8337bc36, 0xffffec8f}, + {0x8337bc37, 0xffffec90}, + {0x8337bc38, 0xffffec91}, + {0x8337bc39, 0xffffec92}, + {0x8337bd30, 0xffffec93}, + {0x8337bd31, 0xffffec94}, + {0x8337bd32, 0xffffec95}, + {0x8337bd33, 0xffffec96}, + {0x8337bd34, 0xffffec97}, + {0x8337bd35, 0xffffec98}, + {0x8337bd36, 0xffffec99}, + {0x8337bd37, 0xffffec9a}, + {0x8337bd38, 0xffffec9b}, + {0x8337bd39, 0xffffec9c}, + {0x8337be30, 0xffffec9d}, + {0x8337be31, 0xffffec9e}, + {0x8337be32, 0xffffec9f}, + {0x8337be33, 0xffffeca0}, + {0x8337be34, 0xffffeca1}, + {0x8337be35, 0xffffeca2}, + {0x8337be36, 0xffffeca3}, + {0x8337be37, 0xffffeca4}, + {0x8337be38, 0xffffeca5}, + {0x8337be39, 0xffffeca6}, + {0x8337bf30, 0xffffeca7}, + {0x8337bf31, 0xffffeca8}, + {0x8337bf32, 0xffffeca9}, + {0x8337bf33, 0xffffecaa}, + {0x8337bf34, 0xffffecab}, + {0x8337bf35, 0xffffecac}, + {0x8337bf36, 0xffffecad}, + {0x8337bf37, 0xffffecae}, + {0x8337bf38, 0xffffecaf}, + {0x8337bf39, 0xffffecb0}, + {0x8337c030, 0xffffecb1}, + {0x8337c031, 0xffffecb2}, + {0x8337c032, 0xffffecb3}, + {0x8337c033, 0xffffecb4}, + {0x8337c034, 0xffffecb5}, + {0x8337c035, 0xffffecb6}, + {0x8337c036, 0xffffecb7}, + {0x8337c037, 0xffffecb8}, + {0x8337c038, 0xffffecb9}, + {0x8337c039, 0xffffecba}, + {0x8337c130, 0xffffecbb}, + {0x8337c131, 0xffffecbc}, + {0x8337c132, 0xffffecbd}, + {0x8337c133, 0xffffecbe}, + {0x8337c134, 0xffffecbf}, + {0x8337c135, 0xffffecc0}, + {0x8337c136, 0xffffecc1}, + {0x8337c137, 0xffffecc2}, + {0x8337c138, 0xffffecc3}, + {0x8337c139, 0xffffecc4}, + {0x8337c230, 0xffffecc5}, + {0x8337c231, 0xffffecc6}, + {0x8337c232, 0xffffecc7}, + {0x8337c233, 0xffffecc8}, + {0x8337c234, 0xffffecc9}, + {0x8337c235, 0xffffecca}, + {0x8337c236, 0xffffeccb}, + {0x8337c237, 0xffffeccc}, + {0x8337c238, 0xffffeccd}, + {0x8337c239, 0xffffecce}, + {0x8337c330, 0xffffeccf}, + {0x8337c331, 0xffffecd0}, + {0x8337c332, 0xffffecd1}, + {0x8337c333, 0xffffecd2}, + {0x8337c334, 0xffffecd3}, + {0x8337c335, 0xffffecd4}, + {0x8337c336, 0xffffecd5}, + {0x8337c337, 0xffffecd6}, + {0x8337c338, 0xffffecd7}, + {0x8337c339, 0xffffecd8}, + {0x8337c430, 0xffffecd9}, + {0x8337c431, 0xffffecda}, + {0x8337c432, 0xffffecdb}, + {0x8337c433, 0xffffecdc}, + {0x8337c434, 0xffffecdd}, + {0x8337c435, 0xffffecde}, + {0x8337c436, 0xffffecdf}, + {0x8337c437, 0xffffece0}, + {0x8337c438, 0xffffece1}, + {0x8337c439, 0xffffece2}, + {0x8337c530, 0xffffece3}, + {0x8337c531, 0xffffece4}, + {0x8337c532, 0xffffece5}, + {0x8337c533, 0xffffece6}, + {0x8337c534, 0xffffece7}, + {0x8337c535, 0xffffece8}, + {0x8337c536, 0xffffece9}, + {0x8337c537, 0xffffecea}, + {0x8337c538, 0xffffeceb}, + {0x8337c539, 0xffffecec}, + {0x8337c630, 0xffffeced}, + {0x8337c631, 0xffffecee}, + {0x8337c632, 0xffffecef}, + {0x8337c633, 0xffffecf0}, + {0x8337c634, 0xffffecf1}, + {0x8337c635, 0xffffecf2}, + {0x8337c636, 0xffffecf3}, + {0x8337c637, 0xffffecf4}, + {0x8337c638, 0xffffecf5}, + {0x8337c639, 0xffffecf6}, + {0x8337c730, 0xffffecf7}, + {0x8337c731, 0xffffecf8}, + {0x8337c732, 0xffffecf9}, + {0x8337c733, 0xffffecfa}, + {0x8337c734, 0xffffecfb}, + {0x8337c735, 0xffffecfc}, + {0x8337c736, 0xffffecfd}, + {0x8337c737, 0xffffecfe}, + {0x8337c738, 0xffffecff}, + {0x8337c739, 0xffffed00}, + {0x8337c830, 0xffffed01}, + {0x8337c831, 0xffffed02}, + {0x8337c832, 0xffffed03}, + {0x8337c833, 0xffffed04}, + {0x8337c834, 0xffffed05}, + {0x8337c835, 0xffffed06}, + {0x8337c836, 0xffffed07}, + {0x8337c837, 0xffffed08}, + {0x8337c838, 0xffffed09}, + {0x8337c839, 0xffffed0a}, + {0x8337c930, 0xffffed0b}, + {0x8337c931, 0xffffed0c}, + {0x8337c932, 0xffffed0d}, + {0x8337c933, 0xffffed0e}, + {0x8337c934, 0xffffed0f}, + {0x8337c935, 0xffffed10}, + {0x8337c936, 0xffffed11}, + {0x8337c937, 0xffffed12}, + {0x8337c938, 0xffffed13}, + {0x8337c939, 0xffffed14}, + {0x8337ca30, 0xffffed15}, + {0x8337ca31, 0xffffed16}, + {0x8337ca32, 0xffffed17}, + {0x8337ca33, 0xffffed18}, + {0x8337ca34, 0xffffed19}, + {0x8337ca35, 0xffffed1a}, + {0x8337ca36, 0xffffed1b}, + {0x8337ca37, 0xffffed1c}, + {0x8337ca38, 0xffffed1d}, + {0x8337ca39, 0xffffed1e}, + {0x8337cb30, 0xffffed1f}, + {0x8337cb31, 0xffffed20}, + {0x8337cb32, 0xffffed21}, + {0x8337cb33, 0xffffed22}, + {0x8337cb34, 0xffffed23}, + {0x8337cb35, 0xffffed24}, + {0x8337cb36, 0xffffed25}, + {0x8337cb37, 0xffffed26}, + {0x8337cb38, 0xffffed27}, + {0x8337cb39, 0xffffed28}, + {0x8337cc30, 0xffffed29}, + {0x8337cc31, 0xffffed2a}, + {0x8337cc32, 0xffffed2b}, + {0x8337cc33, 0xffffed2c}, + {0x8337cc34, 0xffffed2d}, + {0x8337cc35, 0xffffed2e}, + {0x8337cc36, 0xffffed2f}, + {0x8337cc37, 0xffffed30}, + {0x8337cc38, 0xffffed31}, + {0x8337cc39, 0xffffed32}, + {0x8337cd30, 0xffffed33}, + {0x8337cd31, 0xffffed34}, + {0x8337cd32, 0xffffed35}, + {0x8337cd33, 0xffffed36}, + {0x8337cd34, 0xffffed37}, + {0x8337cd35, 0xffffed38}, + {0x8337cd36, 0xffffed39}, + {0x8337cd37, 0xffffed3a}, + {0x8337cd38, 0xffffed3b}, + {0x8337cd39, 0xffffed3c}, + {0x8337ce30, 0xffffed3d}, + {0x8337ce31, 0xffffed3e}, + {0x8337ce32, 0xffffed3f}, + {0x8337ce33, 0xffffed40}, + {0x8337ce34, 0xffffed41}, + {0x8337ce35, 0xffffed42}, + {0x8337ce36, 0xffffed43}, + {0x8337ce37, 0xffffed44}, + {0x8337ce38, 0xffffed45}, + {0x8337ce39, 0xffffed46}, + {0x8337cf30, 0xffffed47}, + {0x8337cf31, 0xffffed48}, + {0x8337cf32, 0xffffed49}, + {0x8337cf33, 0xffffed4a}, + {0x8337cf34, 0xffffed4b}, + {0x8337cf35, 0xffffed4c}, + {0x8337cf36, 0xffffed4d}, + {0x8337cf37, 0xffffed4e}, + {0x8337cf38, 0xffffed4f}, + {0x8337cf39, 0xffffed50}, + {0x8337d030, 0xffffed51}, + {0x8337d031, 0xffffed52}, + {0x8337d032, 0xffffed53}, + {0x8337d033, 0xffffed54}, + {0x8337d034, 0xffffed55}, + {0x8337d035, 0xffffed56}, + {0x8337d036, 0xffffed57}, + {0x8337d037, 0xffffed58}, + {0x8337d038, 0xffffed59}, + {0x8337d039, 0xffffed5a}, + {0x8337d130, 0xffffed5b}, + {0x8337d131, 0xffffed5c}, + {0x8337d132, 0xffffed5d}, + {0x8337d133, 0xffffed5e}, + {0x8337d134, 0xffffed5f}, + {0x8337d135, 0xffffed60}, + {0x8337d136, 0xffffed61}, + {0x8337d137, 0xffffed62}, + {0x8337d138, 0xffffed63}, + {0x8337d139, 0xffffed64}, + {0x8337d230, 0xffffed65}, + {0x8337d231, 0xffffed66}, + {0x8337d232, 0xffffed67}, + {0x8337d233, 0xffffed68}, + {0x8337d234, 0xffffed69}, + {0x8337d235, 0xffffed6a}, + {0x8337d236, 0xffffed6b}, + {0x8337d237, 0xffffed6c}, + {0x8337d238, 0xffffed6d}, + {0x8337d239, 0xffffed6e}, + {0x8337d330, 0xffffed6f}, + {0x8337d331, 0xffffed70}, + {0x8337d332, 0xffffed71}, + {0x8337d333, 0xffffed72}, + {0x8337d334, 0xffffed73}, + {0x8337d335, 0xffffed74}, + {0x8337d336, 0xffffed75}, + {0x8337d337, 0xffffed76}, + {0x8337d338, 0xffffed77}, + {0x8337d339, 0xffffed78}, + {0x8337d430, 0xffffed79}, + {0x8337d431, 0xffffed7a}, + {0x8337d432, 0xffffed7b}, + {0x8337d433, 0xffffed7c}, + {0x8337d434, 0xffffed7d}, + {0x8337d435, 0xffffed7e}, + {0x8337d436, 0xffffed7f}, + {0x8337d437, 0xffffed80}, + {0x8337d438, 0xffffed81}, + {0x8337d439, 0xffffed82}, + {0x8337d530, 0xffffed83}, + {0x8337d531, 0xffffed84}, + {0x8337d532, 0xffffed85}, + {0x8337d533, 0xffffed86}, + {0x8337d534, 0xffffed87}, + {0x8337d535, 0xffffed88}, + {0x8337d536, 0xffffed89}, + {0x8337d537, 0xffffed8a}, + {0x8337d538, 0xffffed8b}, + {0x8337d539, 0xffffed8c}, + {0x8337d630, 0xffffed8d}, + {0x8337d631, 0xffffed8e}, + {0x8337d632, 0xffffed8f}, + {0x8337d633, 0xffffed90}, + {0x8337d634, 0xffffed91}, + {0x8337d635, 0xffffed92}, + {0x8337d636, 0xffffed93}, + {0x8337d637, 0xffffed94}, + {0x8337d638, 0xffffed95}, + {0x8337d639, 0xffffed96}, + {0x8337d730, 0xffffed97}, + {0x8337d731, 0xffffed98}, + {0x8337d732, 0xffffed99}, + {0x8337d733, 0xffffed9a}, + {0x8337d734, 0xffffed9b}, + {0x8337d735, 0xffffed9c}, + {0x8337d736, 0xffffed9d}, + {0x8337d737, 0xffffed9e}, + {0x8337d738, 0xffffed9f}, + {0x8337d739, 0xffffeda0}, + {0x8337d830, 0xffffeda1}, + {0x8337d831, 0xffffeda2}, + {0x8337d832, 0xffffeda3}, + {0x8337d833, 0xffffeda4}, + {0x8337d834, 0xffffeda5}, + {0x8337d835, 0xffffeda6}, + {0x8337d836, 0xffffeda7}, + {0x8337d837, 0xffffeda8}, + {0x8337d838, 0xffffeda9}, + {0x8337d839, 0xffffedaa}, + {0x8337d930, 0xffffedab}, + {0x8337d931, 0xffffedac}, + {0x8337d932, 0xffffedad}, + {0x8337d933, 0xffffedae}, + {0x8337d934, 0xffffedaf}, + {0x8337d935, 0xffffedb0}, + {0x8337d936, 0xffffedb1}, + {0x8337d937, 0xffffedb2}, + {0x8337d938, 0xffffedb3}, + {0x8337d939, 0xffffedb4}, + {0x8337da30, 0xffffedb5}, + {0x8337da31, 0xffffedb6}, + {0x8337da32, 0xffffedb7}, + {0x8337da33, 0xffffedb8}, + {0x8337da34, 0xffffedb9}, + {0x8337da35, 0xffffedba}, + {0x8337da36, 0xffffedbb}, + {0x8337da37, 0xffffedbc}, + {0x8337da38, 0xffffedbd}, + {0x8337da39, 0xffffedbe}, + {0x8337db30, 0xffffedbf}, + {0x8337db31, 0xffffedc0}, + {0x8337db32, 0xffffedc1}, + {0x8337db33, 0xffffedc2}, + {0x8337db34, 0xffffedc3}, + {0x8337db35, 0xffffedc4}, + {0x8337db36, 0xffffedc5}, + {0x8337db37, 0xffffedc6}, + {0x8337db38, 0xffffedc7}, + {0x8337db39, 0xffffedc8}, + {0x8337dc30, 0xffffedc9}, + {0x8337dc31, 0xffffedca}, + {0x8337dc32, 0xffffedcb}, + {0x8337dc33, 0xffffedcc}, + {0x8337dc34, 0xffffedcd}, + {0x8337dc35, 0xffffedce}, + {0x8337dc36, 0xffffedcf}, + {0x8337dc37, 0xffffedd0}, + {0x8337dc38, 0xffffedd1}, + {0x8337dc39, 0xffffedd2}, + {0x8337dd30, 0xffffedd3}, + {0x8337dd31, 0xffffedd4}, + {0x8337dd32, 0xffffedd5}, + {0x8337dd33, 0xffffedd6}, + {0x8337dd34, 0xffffedd7}, + {0x8337dd35, 0xffffedd8}, + {0x8337dd36, 0xffffedd9}, + {0x8337dd37, 0xffffedda}, + {0x8337dd38, 0xffffeddb}, + {0x8337dd39, 0xffffeddc}, + {0x8337de30, 0xffffeddd}, + {0x8337de31, 0xffffedde}, + {0x8337de32, 0xffffeddf}, + {0x8337de33, 0xffffede0}, + {0x8337de34, 0xffffede1}, + {0x8337de35, 0xffffede2}, + {0x8337de36, 0xffffede3}, + {0x8337de37, 0xffffede4}, + {0x8337de38, 0xffffede5}, + {0x8337de39, 0xffffede6}, + {0x8337df30, 0xffffede7}, + {0x8337df31, 0xffffede8}, + {0x8337df32, 0xffffede9}, + {0x8337df33, 0xffffedea}, + {0x8337df34, 0xffffedeb}, + {0x8337df35, 0xffffedec}, + {0x8337df36, 0xffffeded}, + {0x8337df37, 0xffffedee}, + {0x8337df38, 0xffffedef}, + {0x8337df39, 0xffffedf0}, + {0x8337e030, 0xffffedf1}, + {0x8337e031, 0xffffedf2}, + {0x8337e032, 0xffffedf3}, + {0x8337e033, 0xffffedf4}, + {0x8337e034, 0xffffedf5}, + {0x8337e035, 0xffffedf6}, + {0x8337e036, 0xffffedf7}, + {0x8337e037, 0xffffedf8}, + {0x8337e038, 0xffffedf9}, + {0x8337e039, 0xffffedfa}, + {0x8337e130, 0xffffedfb}, + {0x8337e131, 0xffffedfc}, + {0x8337e132, 0xffffedfd}, + {0x8337e133, 0xffffedfe}, + {0x8337e134, 0xffffedff}, + {0x8337e135, 0xffffee00}, + {0x8337e136, 0xffffee01}, + {0x8337e137, 0xffffee02}, + {0x8337e138, 0xffffee03}, + {0x8337e139, 0xffffee04}, + {0x8337e230, 0xffffee05}, + {0x8337e231, 0xffffee06}, + {0x8337e232, 0xffffee07}, + {0x8337e233, 0xffffee08}, + {0x8337e234, 0xffffee09}, + {0x8337e235, 0xffffee0a}, + {0x8337e236, 0xffffee0b}, + {0x8337e237, 0xffffee0c}, + {0x8337e238, 0xffffee0d}, + {0x8337e239, 0xffffee0e}, + {0x8337e330, 0xffffee0f}, + {0x8337e331, 0xffffee10}, + {0x8337e332, 0xffffee11}, + {0x8337e333, 0xffffee12}, + {0x8337e334, 0xffffee13}, + {0x8337e335, 0xffffee14}, + {0x8337e336, 0xffffee15}, + {0x8337e337, 0xffffee16}, + {0x8337e338, 0xffffee17}, + {0x8337e339, 0xffffee18}, + {0x8337e430, 0xffffee19}, + {0x8337e431, 0xffffee1a}, + {0x8337e432, 0xffffee1b}, + {0x8337e433, 0xffffee1c}, + {0x8337e434, 0xffffee1d}, + {0x8337e435, 0xffffee1e}, + {0x8337e436, 0xffffee1f}, + {0x8337e437, 0xffffee20}, + {0x8337e438, 0xffffee21}, + {0x8337e439, 0xffffee22}, + {0x8337e530, 0xffffee23}, + {0x8337e531, 0xffffee24}, + {0x8337e532, 0xffffee25}, + {0x8337e533, 0xffffee26}, + {0x8337e534, 0xffffee27}, + {0x8337e535, 0xffffee28}, + {0x8337e536, 0xffffee29}, + {0x8337e537, 0xffffee2a}, + {0x8337e538, 0xffffee2b}, + {0x8337e539, 0xffffee2c}, + {0x8337e630, 0xffffee2d}, + {0x8337e631, 0xffffee2e}, + {0x8337e632, 0xffffee2f}, + {0x8337e633, 0xffffee30}, + {0x8337e634, 0xffffee31}, + {0x8337e635, 0xffffee32}, + {0x8337e636, 0xffffee33}, + {0x8337e637, 0xffffee34}, + {0x8337e638, 0xffffee35}, + {0x8337e639, 0xffffee36}, + {0x8337e730, 0xffffee37}, + {0x8337e731, 0xffffee38}, + {0x8337e732, 0xffffee39}, + {0x8337e733, 0xffffee3a}, + {0x8337e734, 0xffffee3b}, + {0x8337e735, 0xffffee3c}, + {0x8337e736, 0xffffee3d}, + {0x8337e737, 0xffffee3e}, + {0x8337e738, 0xffffee3f}, + {0x8337e739, 0xffffee40}, + {0x8337e830, 0xffffee41}, + {0x8337e831, 0xffffee42}, + {0x8337e832, 0xffffee43}, + {0x8337e833, 0xffffee44}, + {0x8337e834, 0xffffee45}, + {0x8337e835, 0xffffee46}, + {0x8337e836, 0xffffee47}, + {0x8337e837, 0xffffee48}, + {0x8337e838, 0xffffee49}, + {0x8337e839, 0xffffee4a}, + {0x8337e930, 0xffffee4b}, + {0x8337e931, 0xffffee4c}, + {0x8337e932, 0xffffee4d}, + {0x8337e933, 0xffffee4e}, + {0x8337e934, 0xffffee4f}, + {0x8337e935, 0xffffee50}, + {0x8337e936, 0xffffee51}, + {0x8337e937, 0xffffee52}, + {0x8337e938, 0xffffee53}, + {0x8337e939, 0xffffee54}, + {0x8337ea30, 0xffffee55}, + {0x8337ea31, 0xffffee56}, + {0x8337ea32, 0xffffee57}, + {0x8337ea33, 0xffffee58}, + {0x8337ea34, 0xffffee59}, + {0x8337ea35, 0xffffee5a}, + {0x8337ea36, 0xffffee5b}, + {0x8337ea37, 0xffffee5c}, + {0x8337ea38, 0xffffee5d}, + {0x8337ea39, 0xffffee5e}, + {0x8337eb30, 0xffffee5f}, + {0x8337eb31, 0xffffee60}, + {0x8337eb32, 0xffffee61}, + {0x8337eb33, 0xffffee62}, + {0x8337eb34, 0xffffee63}, + {0x8337eb35, 0xffffee64}, + {0x8337eb36, 0xffffee65}, + {0x8337eb37, 0xffffee66}, + {0x8337eb38, 0xffffee67}, + {0x8337eb39, 0xffffee68}, + {0x8337ec30, 0xffffee69}, + {0x8337ec31, 0xffffee6a}, + {0x8337ec32, 0xffffee6b}, + {0x8337ec33, 0xffffee6c}, + {0x8337ec34, 0xffffee6d}, + {0x8337ec35, 0xffffee6e}, + {0x8337ec36, 0xffffee6f}, + {0x8337ec37, 0xffffee70}, + {0x8337ec38, 0xffffee71}, + {0x8337ec39, 0xffffee72}, + {0x8337ed30, 0xffffee73}, + {0x8337ed31, 0xffffee74}, + {0x8337ed32, 0xffffee75}, + {0x8337ed33, 0xffffee76}, + {0x8337ed34, 0xffffee77}, + {0x8337ed35, 0xffffee78}, + {0x8337ed36, 0xffffee79}, + {0x8337ed37, 0xffffee7a}, + {0x8337ed38, 0xffffee7b}, + {0x8337ed39, 0xffffee7c}, + {0x8337ee30, 0xffffee7d}, + {0x8337ee31, 0xffffee7e}, + {0x8337ee32, 0xffffee7f}, + {0x8337ee33, 0xffffee80}, + {0x8337ee34, 0xffffee81}, + {0x8337ee35, 0xffffee82}, + {0x8337ee36, 0xffffee83}, + {0x8337ee37, 0xffffee84}, + {0x8337ee38, 0xffffee85}, + {0x8337ee39, 0xffffee86}, + {0x8337ef30, 0xffffee87}, + {0x8337ef31, 0xffffee88}, + {0x8337ef32, 0xffffee89}, + {0x8337ef33, 0xffffee8a}, + {0x8337ef34, 0xffffee8b}, + {0x8337ef35, 0xffffee8c}, + {0x8337ef36, 0xffffee8d}, + {0x8337ef37, 0xffffee8e}, + {0x8337ef38, 0xffffee8f}, + {0x8337ef39, 0xffffee90}, + {0x8337f030, 0xffffee91}, + {0x8337f031, 0xffffee92}, + {0x8337f032, 0xffffee93}, + {0x8337f033, 0xffffee94}, + {0x8337f034, 0xffffee95}, + {0x8337f035, 0xffffee96}, + {0x8337f036, 0xffffee97}, + {0x8337f037, 0xffffee98}, + {0x8337f038, 0xffffee99}, + {0x8337f039, 0xffffee9a}, + {0x8337f130, 0xffffee9b}, + {0x8337f131, 0xffffee9c}, + {0x8337f132, 0xffffee9d}, + {0x8337f133, 0xffffee9e}, + {0x8337f134, 0xffffee9f}, + {0x8337f135, 0xffffeea0}, + {0x8337f136, 0xffffeea1}, + {0x8337f137, 0xffffeea2}, + {0x8337f138, 0xffffeea3}, + {0x8337f139, 0xffffeea4}, + {0x8337f230, 0xffffeea5}, + {0x8337f231, 0xffffeea6}, + {0x8337f232, 0xffffeea7}, + {0x8337f233, 0xffffeea8}, + {0x8337f234, 0xffffeea9}, + {0x8337f235, 0xffffeeaa}, + {0x8337f236, 0xffffeeab}, + {0x8337f237, 0xffffeeac}, + {0x8337f238, 0xffffeead}, + {0x8337f239, 0xffffeeae}, + {0x8337f330, 0xffffeeaf}, + {0x8337f331, 0xffffeeb0}, + {0x8337f332, 0xffffeeb1}, + {0x8337f333, 0xffffeeb2}, + {0x8337f334, 0xffffeeb3}, + {0x8337f335, 0xffffeeb4}, + {0x8337f336, 0xffffeeb5}, + {0x8337f337, 0xffffeeb6}, + {0x8337f338, 0xffffeeb7}, + {0x8337f339, 0xffffeeb8}, + {0x8337f430, 0xffffeeb9}, + {0x8337f431, 0xffffeeba}, + {0x8337f432, 0xffffeebb}, + {0x8337f433, 0xffffeebc}, + {0x8337f434, 0xffffeebd}, + {0x8337f435, 0xffffeebe}, + {0x8337f436, 0xffffeebf}, + {0x8337f437, 0xffffeec0}, + {0x8337f438, 0xffffeec1}, + {0x8337f439, 0xffffeec2}, + {0x8337f530, 0xffffeec3}, + {0x8337f531, 0xffffeec4}, + {0x8337f532, 0xffffeec5}, + {0x8337f533, 0xffffeec6}, + {0x8337f534, 0xffffeec7}, + {0x8337f535, 0xffffeec8}, + {0x8337f536, 0xffffeec9}, + {0x8337f537, 0xffffeeca}, + {0x8337f538, 0xffffeecb}, + {0x8337f539, 0xffffeecc}, + {0x8337f630, 0xffffeecd}, + {0x8337f631, 0xffffeece}, + {0x8337f632, 0xffffeecf}, + {0x8337f633, 0xffffeed0}, + {0x8337f634, 0xffffeed1}, + {0x8337f635, 0xffffeed2}, + {0x8337f636, 0xffffeed3}, + {0x8337f637, 0xffffeed4}, + {0x8337f638, 0xffffeed5}, + {0x8337f639, 0xffffeed6}, + {0x8337f730, 0xffffeed7}, + {0x8337f731, 0xffffeed8}, + {0x8337f732, 0xffffeed9}, + {0x8337f733, 0xffffeeda}, + {0x8337f734, 0xffffeedb}, + {0x8337f735, 0xffffeedc}, + {0x8337f736, 0xffffeedd}, + {0x8337f737, 0xffffeede}, + {0x8337f738, 0xffffeedf}, + {0x8337f739, 0xffffeee0}, + {0x8337f830, 0xffffeee1}, + {0x8337f831, 0xffffeee2}, + {0x8337f832, 0xffffeee3}, + {0x8337f833, 0xffffeee4}, + {0x8337f834, 0xffffeee5}, + {0x8337f835, 0xffffeee6}, + {0x8337f836, 0xffffeee7}, + {0x8337f837, 0xffffeee8}, + {0x8337f838, 0xffffeee9}, + {0x8337f839, 0xffffeeea}, + {0x8337f930, 0xffffeeeb}, + {0x8337f931, 0xffffeeec}, + {0x8337f932, 0xffffeeed}, + {0x8337f933, 0xffffeeee}, + {0x8337f934, 0xffffeeef}, + {0x8337f935, 0xffffeef0}, + {0x8337f936, 0xffffeef1}, + {0x8337f937, 0xffffeef2}, + {0x8337f938, 0xffffeef3}, + {0x8337f939, 0xffffeef4}, + {0x8337fa30, 0xffffeef5}, + {0x8337fa31, 0xffffeef6}, + {0x8337fa32, 0xffffeef7}, + {0x8337fa33, 0xffffeef8}, + {0x8337fa34, 0xffffeef9}, + {0x8337fa35, 0xffffeefa}, + {0x8337fa36, 0xffffeefb}, + {0x8337fa37, 0xffffeefc}, + {0x8337fa38, 0xffffeefd}, + {0x8337fa39, 0xffffeefe}, + {0x8337fb30, 0xffffeeff}, + {0x8337fb31, 0xffffef00}, + {0x8337fb32, 0xffffef01}, + {0x8337fb33, 0xffffef02}, + {0x8337fb34, 0xffffef03}, + {0x8337fb35, 0xffffef04}, + {0x8337fb36, 0xffffef05}, + {0x8337fb37, 0xffffef06}, + {0x8337fb38, 0xffffef07}, + {0x8337fb39, 0xffffef08}, + {0x8337fc30, 0xffffef09}, + {0x8337fc31, 0xffffef0a}, + {0x8337fc32, 0xffffef0b}, + {0x8337fc33, 0xffffef0c}, + {0x8337fc34, 0xffffef0d}, + {0x8337fc35, 0xffffef0e}, + {0x8337fc36, 0xffffef0f}, + {0x8337fc37, 0xffffef10}, + {0x8337fc38, 0xffffef11}, + {0x8337fc39, 0xffffef12}, + {0x8337fd30, 0xffffef13}, + {0x8337fd31, 0xffffef14}, + {0x8337fd32, 0xffffef15}, + {0x8337fd33, 0xffffef16}, + {0x8337fd34, 0xffffef17}, + {0x8337fd35, 0xffffef18}, + {0x8337fd36, 0xffffef19}, + {0x8337fd37, 0xffffef1a}, + {0x8337fd38, 0xffffef1b}, + {0x8337fd39, 0xffffef1c}, + {0x8337fe30, 0xffffef1d}, + {0x8337fe31, 0xffffef1e}, + {0x8337fe32, 0xffffef1f}, + {0x8337fe33, 0xffffef20}, + {0x8337fe34, 0xffffef21}, + {0x8337fe35, 0xffffef22}, + {0x8337fe36, 0xffffef23}, + {0x8337fe37, 0xffffef24}, + {0x8337fe38, 0xffffef25}, + {0x8337fe39, 0xffffef26}, + {0x83388130, 0xffffef27}, + {0x83388131, 0xffffef28}, + {0x83388132, 0xffffef29}, + {0x83388133, 0xffffef2a}, + {0x83388134, 0xffffef2b}, + {0x83388135, 0xffffef2c}, + {0x83388136, 0xffffef2d}, + {0x83388137, 0xffffef2e}, + {0x83388138, 0xffffef2f}, + {0x83388139, 0xffffef30}, + {0x83388230, 0xffffef31}, + {0x83388231, 0xffffef32}, + {0x83388232, 0xffffef33}, + {0x83388233, 0xffffef34}, + {0x83388234, 0xffffef35}, + {0x83388235, 0xffffef36}, + {0x83388236, 0xffffef37}, + {0x83388237, 0xffffef38}, + {0x83388238, 0xffffef39}, + {0x83388239, 0xffffef3a}, + {0x83388330, 0xffffef3b}, + {0x83388331, 0xffffef3c}, + {0x83388332, 0xffffef3d}, + {0x83388333, 0xffffef3e}, + {0x83388334, 0xffffef3f}, + {0x83388335, 0xffffef40}, + {0x83388336, 0xffffef41}, + {0x83388337, 0xffffef42}, + {0x83388338, 0xffffef43}, + {0x83388339, 0xffffef44}, + {0x83388430, 0xffffef45}, + {0x83388431, 0xffffef46}, + {0x83388432, 0xffffef47}, + {0x83388433, 0xffffef48}, + {0x83388434, 0xffffef49}, + {0x83388435, 0xffffef4a}, + {0x83388436, 0xffffef4b}, + {0x83388437, 0xffffef4c}, + {0x83388438, 0xffffef4d}, + {0x83388439, 0xffffef4e}, + {0x83388530, 0xffffef4f}, + {0x83388531, 0xffffef50}, + {0x83388532, 0xffffef51}, + {0x83388533, 0xffffef52}, + {0x83388534, 0xffffef53}, + {0x83388535, 0xffffef54}, + {0x83388536, 0xffffef55}, + {0x83388537, 0xffffef56}, + {0x83388538, 0xffffef57}, + {0x83388539, 0xffffef58}, + {0x83388630, 0xffffef59}, + {0x83388631, 0xffffef5a}, + {0x83388632, 0xffffef5b}, + {0x83388633, 0xffffef5c}, + {0x83388634, 0xffffef5d}, + {0x83388635, 0xffffef5e}, + {0x83388636, 0xffffef5f}, + {0x83388637, 0xffffef60}, + {0x83388638, 0xffffef61}, + {0x83388639, 0xffffef62}, + {0x83388730, 0xffffef63}, + {0x83388731, 0xffffef64}, + {0x83388732, 0xffffef65}, + {0x83388733, 0xffffef66}, + {0x83388734, 0xffffef67}, + {0x83388735, 0xffffef68}, + {0x83388736, 0xffffef69}, + {0x83388737, 0xffffef6a}, + {0x83388738, 0xffffef6b}, + {0x83388739, 0xffffef6c}, + {0x83388830, 0xffffef6d}, + {0x83388831, 0xffffef6e}, + {0x83388832, 0xffffef6f}, + {0x83388833, 0xffffef70}, + {0x83388834, 0xffffef71}, + {0x83388835, 0xffffef72}, + {0x83388836, 0xffffef73}, + {0x83388837, 0xffffef74}, + {0x83388838, 0xffffef75}, + {0x83388839, 0xffffef76}, + {0x83388930, 0xffffef77}, + {0x83388931, 0xffffef78}, + {0x83388932, 0xffffef79}, + {0x83388933, 0xffffef7a}, + {0x83388934, 0xffffef7b}, + {0x83388935, 0xffffef7c}, + {0x83388936, 0xffffef7d}, + {0x83388937, 0xffffef7e}, + {0x83388938, 0xffffef7f}, + {0x83388939, 0xffffef80}, + {0x83388a30, 0xffffef81}, + {0x83388a31, 0xffffef82}, + {0x83388a32, 0xffffef83}, + {0x83388a33, 0xffffef84}, + {0x83388a34, 0xffffef85}, + {0x83388a35, 0xffffef86}, + {0x83388a36, 0xffffef87}, + {0x83388a37, 0xffffef88}, + {0x83388a38, 0xffffef89}, + {0x83388a39, 0xffffef8a}, + {0x83388b30, 0xffffef8b}, + {0x83388b31, 0xffffef8c}, + {0x83388b32, 0xffffef8d}, + {0x83388b33, 0xffffef8e}, + {0x83388b34, 0xffffef8f}, + {0x83388b35, 0xffffef90}, + {0x83388b36, 0xffffef91}, + {0x83388b37, 0xffffef92}, + {0x83388b38, 0xffffef93}, + {0x83388b39, 0xffffef94}, + {0x83388c30, 0xffffef95}, + {0x83388c31, 0xffffef96}, + {0x83388c32, 0xffffef97}, + {0x83388c33, 0xffffef98}, + {0x83388c34, 0xffffef99}, + {0x83388c35, 0xffffef9a}, + {0x83388c36, 0xffffef9b}, + {0x83388c37, 0xffffef9c}, + {0x83388c38, 0xffffef9d}, + {0x83388c39, 0xffffef9e}, + {0x83388d30, 0xffffef9f}, + {0x83388d31, 0xffffefa0}, + {0x83388d32, 0xffffefa1}, + {0x83388d33, 0xffffefa2}, + {0x83388d34, 0xffffefa3}, + {0x83388d35, 0xffffefa4}, + {0x83388d36, 0xffffefa5}, + {0x83388d37, 0xffffefa6}, + {0x83388d38, 0xffffefa7}, + {0x83388d39, 0xffffefa8}, + {0x83388e30, 0xffffefa9}, + {0x83388e31, 0xffffefaa}, + {0x83388e32, 0xffffefab}, + {0x83388e33, 0xffffefac}, + {0x83388e34, 0xffffefad}, + {0x83388e35, 0xffffefae}, + {0x83388e36, 0xffffefaf}, + {0x83388e37, 0xffffefb0}, + {0x83388e38, 0xffffefb1}, + {0x83388e39, 0xffffefb2}, + {0x83388f30, 0xffffefb3}, + {0x83388f31, 0xffffefb4}, + {0x83388f32, 0xffffefb5}, + {0x83388f33, 0xffffefb6}, + {0x83388f34, 0xffffefb7}, + {0x83388f35, 0xffffefb8}, + {0x83388f36, 0xffffefb9}, + {0x83388f37, 0xffffefba}, + {0x83388f38, 0xffffefbb}, + {0x83388f39, 0xffffefbc}, + {0x83389030, 0xffffefbd}, + {0x83389031, 0xffffefbe}, + {0x83389032, 0xffffefbf}, + {0x83389033, 0xffffefc0}, + {0x83389034, 0xffffefc1}, + {0x83389035, 0xffffefc2}, + {0x83389036, 0xffffefc3}, + {0x83389037, 0xffffefc4}, + {0x83389038, 0xffffefc5}, + {0x83389039, 0xffffefc6}, + {0x83389130, 0xffffefc7}, + {0x83389131, 0xffffefc8}, + {0x83389132, 0xffffefc9}, + {0x83389133, 0xffffefca}, + {0x83389134, 0xffffefcb}, + {0x83389135, 0xffffefcc}, + {0x83389136, 0xffffefcd}, + {0x83389137, 0xffffefce}, + {0x83389138, 0xffffefcf}, + {0x83389139, 0xffffefd0}, + {0x83389230, 0xffffefd1}, + {0x83389231, 0xffffefd2}, + {0x83389232, 0xffffefd3}, + {0x83389233, 0xffffefd4}, + {0x83389234, 0xffffefd5}, + {0x83389235, 0xffffefd6}, + {0x83389236, 0xffffefd7}, + {0x83389237, 0xffffefd8}, + {0x83389238, 0xffffefd9}, + {0x83389239, 0xffffefda}, + {0x83389330, 0xffffefdb}, + {0x83389331, 0xffffefdc}, + {0x83389332, 0xffffefdd}, + {0x83389333, 0xffffefde}, + {0x83389334, 0xffffefdf}, + {0x83389335, 0xffffefe0}, + {0x83389336, 0xffffefe1}, + {0x83389337, 0xffffefe2}, + {0x83389338, 0xffffefe3}, + {0x83389339, 0xffffefe4}, + {0x83389430, 0xffffefe5}, + {0x83389431, 0xffffefe6}, + {0x83389432, 0xffffefe7}, + {0x83389433, 0xffffefe8}, + {0x83389434, 0xffffefe9}, + {0x83389435, 0xffffefea}, + {0x83389436, 0xffffefeb}, + {0x83389437, 0xffffefec}, + {0x83389438, 0xffffefed}, + {0x83389439, 0xffffefee}, + {0x83389530, 0xffffefef}, + {0x83389531, 0xffffeff0}, + {0x83389532, 0xffffeff1}, + {0x83389533, 0xffffeff2}, + {0x83389534, 0xffffeff3}, + {0x83389535, 0xffffeff4}, + {0x83389536, 0xffffeff5}, + {0x83389537, 0xffffeff6}, + {0x83389538, 0xffffeff7}, + {0x83389539, 0xffffeff8}, + {0x83389630, 0xffffeff9}, + {0x83389631, 0xffffeffa}, + {0x83389632, 0xffffeffb}, + {0x83389633, 0xffffeffc}, + {0x83389634, 0xffffeffd}, + {0x83389635, 0xffffeffe}, + {0x83389636, 0xffffefff}, + {0x83389637, 0xfffff000}, + {0x83389638, 0xfffff001}, + {0x83389639, 0xfffff002}, + {0x83389730, 0xfffff003}, + {0x83389731, 0xfffff004}, + {0x83389732, 0xfffff005}, + {0x83389733, 0xfffff006}, + {0x83389734, 0xfffff007}, + {0x83389735, 0xfffff008}, + {0x83389736, 0xfffff009}, + {0x83389737, 0xfffff00a}, + {0x83389738, 0xfffff00b}, + {0x83389739, 0xfffff00c}, + {0x83389830, 0xfffff00d}, + {0x83389831, 0xfffff00e}, + {0x83389832, 0xfffff00f}, + {0x83389833, 0xfffff010}, + {0x83389834, 0xfffff011}, + {0x83389835, 0xfffff012}, + {0x83389836, 0xfffff013}, + {0x83389837, 0xfffff014}, + {0x83389838, 0xfffff015}, + {0x83389839, 0xfffff016}, + {0x83389930, 0xfffff017}, + {0x83389931, 0xfffff018}, + {0x83389932, 0xfffff019}, + {0x83389933, 0xfffff01a}, + {0x83389934, 0xfffff01b}, + {0x83389935, 0xfffff01c}, + {0x83389936, 0xfffff01d}, + {0x83389937, 0xfffff01e}, + {0x83389938, 0xfffff01f}, + {0x83389939, 0xfffff020}, + {0x83389a30, 0xfffff021}, + {0x83389a31, 0xfffff022}, + {0x83389a32, 0xfffff023}, + {0x83389a33, 0xfffff024}, + {0x83389a34, 0xfffff025}, + {0x83389a35, 0xfffff026}, + {0x83389a36, 0xfffff027}, + {0x83389a37, 0xfffff028}, + {0x83389a38, 0xfffff029}, + {0x83389a39, 0xfffff02a}, + {0x83389b30, 0xfffff02b}, + {0x83389b31, 0xfffff02c}, + {0x83389b32, 0xfffff02d}, + {0x83389b33, 0xfffff02e}, + {0x83389b34, 0xfffff02f}, + {0x83389b35, 0xfffff030}, + {0x83389b36, 0xfffff031}, + {0x83389b37, 0xfffff032}, + {0x83389b38, 0xfffff033}, + {0x83389b39, 0xfffff034}, + {0x83389c30, 0xfffff035}, + {0x83389c31, 0xfffff036}, + {0x83389c32, 0xfffff037}, + {0x83389c33, 0xfffff038}, + {0x83389c34, 0xfffff039}, + {0x83389c35, 0xfffff03a}, + {0x83389c36, 0xfffff03b}, + {0x83389c37, 0xfffff03c}, + {0x83389c38, 0xfffff03d}, + {0x83389c39, 0xfffff03e}, + {0x83389d30, 0xfffff03f}, + {0x83389d31, 0xfffff040}, + {0x83389d32, 0xfffff041}, + {0x83389d33, 0xfffff042}, + {0x83389d34, 0xfffff043}, + {0x83389d35, 0xfffff044}, + {0x83389d36, 0xfffff045}, + {0x83389d37, 0xfffff046}, + {0x83389d38, 0xfffff047}, + {0x83389d39, 0xfffff048}, + {0x83389e30, 0xfffff049}, + {0x83389e31, 0xfffff04a}, + {0x83389e32, 0xfffff04b}, + {0x83389e33, 0xfffff04c}, + {0x83389e34, 0xfffff04d}, + {0x83389e35, 0xfffff04e}, + {0x83389e36, 0xfffff04f}, + {0x83389e37, 0xfffff050}, + {0x83389e38, 0xfffff051}, + {0x83389e39, 0xfffff052}, + {0x83389f30, 0xfffff053}, + {0x83389f31, 0xfffff054}, + {0x83389f32, 0xfffff055}, + {0x83389f33, 0xfffff056}, + {0x83389f34, 0xfffff057}, + {0x83389f35, 0xfffff058}, + {0x83389f36, 0xfffff059}, + {0x83389f37, 0xfffff05a}, + {0x83389f38, 0xfffff05b}, + {0x83389f39, 0xfffff05c}, + {0x8338a030, 0xfffff05d}, + {0x8338a031, 0xfffff05e}, + {0x8338a032, 0xfffff05f}, + {0x8338a033, 0xfffff060}, + {0x8338a034, 0xfffff061}, + {0x8338a035, 0xfffff062}, + {0x8338a036, 0xfffff063}, + {0x8338a037, 0xfffff064}, + {0x8338a038, 0xfffff065}, + {0x8338a039, 0xfffff066}, + {0x8338a130, 0xfffff067}, + {0x8338a131, 0xfffff068}, + {0x8338a132, 0xfffff069}, + {0x8338a133, 0xfffff06a}, + {0x8338a134, 0xfffff06b}, + {0x8338a135, 0xfffff06c}, + {0x8338a136, 0xfffff06d}, + {0x8338a137, 0xfffff06e}, + {0x8338a138, 0xfffff06f}, + {0x8338a139, 0xfffff070}, + {0x8338a230, 0xfffff071}, + {0x8338a231, 0xfffff072}, + {0x8338a232, 0xfffff073}, + {0x8338a233, 0xfffff074}, + {0x8338a234, 0xfffff075}, + {0x8338a235, 0xfffff076}, + {0x8338a236, 0xfffff077}, + {0x8338a237, 0xfffff078}, + {0x8338a238, 0xfffff079}, + {0x8338a239, 0xfffff07a}, + {0x8338a330, 0xfffff07b}, + {0x8338a331, 0xfffff07c}, + {0x8338a332, 0xfffff07d}, + {0x8338a333, 0xfffff07e}, + {0x8338a334, 0xfffff07f}, + {0x8338a335, 0xfffff080}, + {0x8338a336, 0xfffff081}, + {0x8338a337, 0xfffff082}, + {0x8338a338, 0xfffff083}, + {0x8338a339, 0xfffff084}, + {0x8338a430, 0xfffff085}, + {0x8338a431, 0xfffff086}, + {0x8338a432, 0xfffff087}, + {0x8338a433, 0xfffff088}, + {0x8338a434, 0xfffff089}, + {0x8338a435, 0xfffff08a}, + {0x8338a436, 0xfffff08b}, + {0x8338a437, 0xfffff08c}, + {0x8338a438, 0xfffff08d}, + {0x8338a439, 0xfffff08e}, + {0x8338a530, 0xfffff08f}, + {0x8338a531, 0xfffff090}, + {0x8338a532, 0xfffff091}, + {0x8338a533, 0xfffff092}, + {0x8338a534, 0xfffff093}, + {0x8338a535, 0xfffff094}, + {0x8338a536, 0xfffff095}, + {0x8338a537, 0xfffff096}, + {0x8338a538, 0xfffff097}, + {0x8338a539, 0xfffff098}, + {0x8338a630, 0xfffff099}, + {0x8338a631, 0xfffff09a}, + {0x8338a632, 0xfffff09b}, + {0x8338a633, 0xfffff09c}, + {0x8338a634, 0xfffff09d}, + {0x8338a635, 0xfffff09e}, + {0x8338a636, 0xfffff09f}, + {0x8338a637, 0xfffff0a0}, + {0x8338a638, 0xfffff0a1}, + {0x8338a639, 0xfffff0a2}, + {0x8338a730, 0xfffff0a3}, + {0x8338a731, 0xfffff0a4}, + {0x8338a732, 0xfffff0a5}, + {0x8338a733, 0xfffff0a6}, + {0x8338a734, 0xfffff0a7}, + {0x8338a735, 0xfffff0a8}, + {0x8338a736, 0xfffff0a9}, + {0x8338a737, 0xfffff0aa}, + {0x8338a738, 0xfffff0ab}, + {0x8338a739, 0xfffff0ac}, + {0x8338a830, 0xfffff0ad}, + {0x8338a831, 0xfffff0ae}, + {0x8338a832, 0xfffff0af}, + {0x8338a833, 0xfffff0b0}, + {0x8338a834, 0xfffff0b1}, + {0x8338a835, 0xfffff0b2}, + {0x8338a836, 0xfffff0b3}, + {0x8338a837, 0xfffff0b4}, + {0x8338a838, 0xfffff0b5}, + {0x8338a839, 0xfffff0b6}, + {0x8338a930, 0xfffff0b7}, + {0x8338a931, 0xfffff0b8}, + {0x8338a932, 0xfffff0b9}, + {0x8338a933, 0xfffff0ba}, + {0x8338a934, 0xfffff0bb}, + {0x8338a935, 0xfffff0bc}, + {0x8338a936, 0xfffff0bd}, + {0x8338a937, 0xfffff0be}, + {0x8338a938, 0xfffff0bf}, + {0x8338a939, 0xfffff0c0}, + {0x8338aa30, 0xfffff0c1}, + {0x8338aa31, 0xfffff0c2}, + {0x8338aa32, 0xfffff0c3}, + {0x8338aa33, 0xfffff0c4}, + {0x8338aa34, 0xfffff0c5}, + {0x8338aa35, 0xfffff0c6}, + {0x8338aa36, 0xfffff0c7}, + {0x8338aa37, 0xfffff0c8}, + {0x8338aa38, 0xfffff0c9}, + {0x8338aa39, 0xfffff0ca}, + {0x8338ab30, 0xfffff0cb}, + {0x8338ab31, 0xfffff0cc}, + {0x8338ab32, 0xfffff0cd}, + {0x8338ab33, 0xfffff0ce}, + {0x8338ab34, 0xfffff0cf}, + {0x8338ab35, 0xfffff0d0}, + {0x8338ab36, 0xfffff0d1}, + {0x8338ab37, 0xfffff0d2}, + {0x8338ab38, 0xfffff0d3}, + {0x8338ab39, 0xfffff0d4}, + {0x8338ac30, 0xfffff0d5}, + {0x8338ac31, 0xfffff0d6}, + {0x8338ac32, 0xfffff0d7}, + {0x8338ac33, 0xfffff0d8}, + {0x8338ac34, 0xfffff0d9}, + {0x8338ac35, 0xfffff0da}, + {0x8338ac36, 0xfffff0db}, + {0x8338ac37, 0xfffff0dc}, + {0x8338ac38, 0xfffff0dd}, + {0x8338ac39, 0xfffff0de}, + {0x8338ad30, 0xfffff0df}, + {0x8338ad31, 0xfffff0e0}, + {0x8338ad32, 0xfffff0e1}, + {0x8338ad33, 0xfffff0e2}, + {0x8338ad34, 0xfffff0e3}, + {0x8338ad35, 0xfffff0e4}, + {0x8338ad36, 0xfffff0e5}, + {0x8338ad37, 0xfffff0e6}, + {0x8338ad38, 0xfffff0e7}, + {0x8338ad39, 0xfffff0e8}, + {0x8338ae30, 0xfffff0e9}, + {0x8338ae31, 0xfffff0ea}, + {0x8338ae32, 0xfffff0eb}, + {0x8338ae33, 0xfffff0ec}, + {0x8338ae34, 0xfffff0ed}, + {0x8338ae35, 0xfffff0ee}, + {0x8338ae36, 0xfffff0ef}, + {0x8338ae37, 0xfffff0f0}, + {0x8338ae38, 0xfffff0f1}, + {0x8338ae39, 0xfffff0f2}, + {0x8338af30, 0xfffff0f3}, + {0x8338af31, 0xfffff0f4}, + {0x8338af32, 0xfffff0f5}, + {0x8338af33, 0xfffff0f6}, + {0x8338af34, 0xfffff0f7}, + {0x8338af35, 0xfffff0f8}, + {0x8338af36, 0xfffff0f9}, + {0x8338af37, 0xfffff0fa}, + {0x8338af38, 0xfffff0fb}, + {0x8338af39, 0xfffff0fc}, + {0x8338b030, 0xfffff0fd}, + {0x8338b031, 0xfffff0fe}, + {0x8338b032, 0xfffff0ff}, + {0x8338b033, 0xfffff100}, + {0x8338b034, 0xfffff101}, + {0x8338b035, 0xfffff102}, + {0x8338b036, 0xfffff103}, + {0x8338b037, 0xfffff104}, + {0x8338b038, 0xfffff105}, + {0x8338b039, 0xfffff106}, + {0x8338b130, 0xfffff107}, + {0x8338b131, 0xfffff108}, + {0x8338b132, 0xfffff109}, + {0x8338b133, 0xfffff10a}, + {0x8338b134, 0xfffff10b}, + {0x8338b135, 0xfffff10c}, + {0x8338b136, 0xfffff10d}, + {0x8338b137, 0xfffff10e}, + {0x8338b138, 0xfffff10f}, + {0x8338b139, 0xfffff110}, + {0x8338b230, 0xfffff111}, + {0x8338b231, 0xfffff112}, + {0x8338b232, 0xfffff113}, + {0x8338b233, 0xfffff114}, + {0x8338b234, 0xfffff115}, + {0x8338b235, 0xfffff116}, + {0x8338b236, 0xfffff117}, + {0x8338b237, 0xfffff118}, + {0x8338b238, 0xfffff119}, + {0x8338b239, 0xfffff11a}, + {0x8338b330, 0xfffff11b}, + {0x8338b331, 0xfffff11c}, + {0x8338b332, 0xfffff11d}, + {0x8338b333, 0xfffff11e}, + {0x8338b334, 0xfffff11f}, + {0x8338b335, 0xfffff120}, + {0x8338b336, 0xfffff121}, + {0x8338b337, 0xfffff122}, + {0x8338b338, 0xfffff123}, + {0x8338b339, 0xfffff124}, + {0x8338b430, 0xfffff125}, + {0x8338b431, 0xfffff126}, + {0x8338b432, 0xfffff127}, + {0x8338b433, 0xfffff128}, + {0x8338b434, 0xfffff129}, + {0x8338b435, 0xfffff12a}, + {0x8338b436, 0xfffff12b}, + {0x8338b437, 0xfffff12c}, + {0x8338b438, 0xfffff12d}, + {0x8338b439, 0xfffff12e}, + {0x8338b530, 0xfffff12f}, + {0x8338b531, 0xfffff130}, + {0x8338b532, 0xfffff131}, + {0x8338b533, 0xfffff132}, + {0x8338b534, 0xfffff133}, + {0x8338b535, 0xfffff134}, + {0x8338b536, 0xfffff135}, + {0x8338b537, 0xfffff136}, + {0x8338b538, 0xfffff137}, + {0x8338b539, 0xfffff138}, + {0x8338b630, 0xfffff139}, + {0x8338b631, 0xfffff13a}, + {0x8338b632, 0xfffff13b}, + {0x8338b633, 0xfffff13c}, + {0x8338b634, 0xfffff13d}, + {0x8338b635, 0xfffff13e}, + {0x8338b636, 0xfffff13f}, + {0x8338b637, 0xfffff140}, + {0x8338b638, 0xfffff141}, + {0x8338b639, 0xfffff142}, + {0x8338b730, 0xfffff143}, + {0x8338b731, 0xfffff144}, + {0x8338b732, 0xfffff145}, + {0x8338b733, 0xfffff146}, + {0x8338b734, 0xfffff147}, + {0x8338b735, 0xfffff148}, + {0x8338b736, 0xfffff149}, + {0x8338b737, 0xfffff14a}, + {0x8338b738, 0xfffff14b}, + {0x8338b739, 0xfffff14c}, + {0x8338b830, 0xfffff14d}, + {0x8338b831, 0xfffff14e}, + {0x8338b832, 0xfffff14f}, + {0x8338b833, 0xfffff150}, + {0x8338b834, 0xfffff151}, + {0x8338b835, 0xfffff152}, + {0x8338b836, 0xfffff153}, + {0x8338b837, 0xfffff154}, + {0x8338b838, 0xfffff155}, + {0x8338b839, 0xfffff156}, + {0x8338b930, 0xfffff157}, + {0x8338b931, 0xfffff158}, + {0x8338b932, 0xfffff159}, + {0x8338b933, 0xfffff15a}, + {0x8338b934, 0xfffff15b}, + {0x8338b935, 0xfffff15c}, + {0x8338b936, 0xfffff15d}, + {0x8338b937, 0xfffff15e}, + {0x8338b938, 0xfffff15f}, + {0x8338b939, 0xfffff160}, + {0x8338ba30, 0xfffff161}, + {0x8338ba31, 0xfffff162}, + {0x8338ba32, 0xfffff163}, + {0x8338ba33, 0xfffff164}, + {0x8338ba34, 0xfffff165}, + {0x8338ba35, 0xfffff166}, + {0x8338ba36, 0xfffff167}, + {0x8338ba37, 0xfffff168}, + {0x8338ba38, 0xfffff169}, + {0x8338ba39, 0xfffff16a}, + {0x8338bb30, 0xfffff16b}, + {0x8338bb31, 0xfffff16c}, + {0x8338bb32, 0xfffff16d}, + {0x8338bb33, 0xfffff16e}, + {0x8338bb34, 0xfffff16f}, + {0x8338bb35, 0xfffff170}, + {0x8338bb36, 0xfffff171}, + {0x8338bb37, 0xfffff172}, + {0x8338bb38, 0xfffff173}, + {0x8338bb39, 0xfffff174}, + {0x8338bc30, 0xfffff175}, + {0x8338bc31, 0xfffff176}, + {0x8338bc32, 0xfffff177}, + {0x8338bc33, 0xfffff178}, + {0x8338bc34, 0xfffff179}, + {0x8338bc35, 0xfffff17a}, + {0x8338bc36, 0xfffff17b}, + {0x8338bc37, 0xfffff17c}, + {0x8338bc38, 0xfffff17d}, + {0x8338bc39, 0xfffff17e}, + {0x8338bd30, 0xfffff17f}, + {0x8338bd31, 0xfffff180}, + {0x8338bd32, 0xfffff181}, + {0x8338bd33, 0xfffff182}, + {0x8338bd34, 0xfffff183}, + {0x8338bd35, 0xfffff184}, + {0x8338bd36, 0xfffff185}, + {0x8338bd37, 0xfffff186}, + {0x8338bd38, 0xfffff187}, + {0x8338bd39, 0xfffff188}, + {0x8338be30, 0xfffff189}, + {0x8338be31, 0xfffff18a}, + {0x8338be32, 0xfffff18b}, + {0x8338be33, 0xfffff18c}, + {0x8338be34, 0xfffff18d}, + {0x8338be35, 0xfffff18e}, + {0x8338be36, 0xfffff18f}, + {0x8338be37, 0xfffff190}, + {0x8338be38, 0xfffff191}, + {0x8338be39, 0xfffff192}, + {0x8338bf30, 0xfffff193}, + {0x8338bf31, 0xfffff194}, + {0x8338bf32, 0xfffff195}, + {0x8338bf33, 0xfffff196}, + {0x8338bf34, 0xfffff197}, + {0x8338bf35, 0xfffff198}, + {0x8338bf36, 0xfffff199}, + {0x8338bf37, 0xfffff19a}, + {0x8338bf38, 0xfffff19b}, + {0x8338bf39, 0xfffff19c}, + {0x8338c030, 0xfffff19d}, + {0x8338c031, 0xfffff19e}, + {0x8338c032, 0xfffff19f}, + {0x8338c033, 0xfffff1a0}, + {0x8338c034, 0xfffff1a1}, + {0x8338c035, 0xfffff1a2}, + {0x8338c036, 0xfffff1a3}, + {0x8338c037, 0xfffff1a4}, + {0x8338c038, 0xfffff1a5}, + {0x8338c039, 0xfffff1a6}, + {0x8338c130, 0xfffff1a7}, + {0x8338c131, 0xfffff1a8}, + {0x8338c132, 0xfffff1a9}, + {0x8338c133, 0xfffff1aa}, + {0x8338c134, 0xfffff1ab}, + {0x8338c135, 0xfffff1ac}, + {0x8338c136, 0xfffff1ad}, + {0x8338c137, 0xfffff1ae}, + {0x8338c138, 0xfffff1af}, + {0x8338c139, 0xfffff1b0}, + {0x8338c230, 0xfffff1b1}, + {0x8338c231, 0xfffff1b2}, + {0x8338c232, 0xfffff1b3}, + {0x8338c233, 0xfffff1b4}, + {0x8338c234, 0xfffff1b5}, + {0x8338c235, 0xfffff1b6}, + {0x8338c236, 0xfffff1b7}, + {0x8338c237, 0xfffff1b8}, + {0x8338c238, 0xfffff1b9}, + {0x8338c239, 0xfffff1ba}, + {0x8338c330, 0xfffff1bb}, + {0x8338c331, 0xfffff1bc}, + {0x8338c332, 0xfffff1bd}, + {0x8338c333, 0xfffff1be}, + {0x8338c334, 0xfffff1bf}, + {0x8338c335, 0xfffff1c0}, + {0x8338c336, 0xfffff1c1}, + {0x8338c337, 0xfffff1c2}, + {0x8338c338, 0xfffff1c3}, + {0x8338c339, 0xfffff1c4}, + {0x8338c430, 0xfffff1c5}, + {0x8338c431, 0xfffff1c6}, + {0x8338c432, 0xfffff1c7}, + {0x8338c433, 0xfffff1c8}, + {0x8338c434, 0xfffff1c9}, + {0x8338c435, 0xfffff1ca}, + {0x8338c436, 0xfffff1cb}, + {0x8338c437, 0xfffff1cc}, + {0x8338c438, 0xfffff1cd}, + {0x8338c439, 0xfffff1ce}, + {0x8338c530, 0xfffff1cf}, + {0x8338c531, 0xfffff1d0}, + {0x8338c532, 0xfffff1d1}, + {0x8338c533, 0xfffff1d2}, + {0x8338c534, 0xfffff1d3}, + {0x8338c535, 0xfffff1d4}, + {0x8338c536, 0xfffff1d5}, + {0x8338c537, 0xfffff1d6}, + {0x8338c538, 0xfffff1d7}, + {0x8338c539, 0xfffff1d8}, + {0x8338c630, 0xfffff1d9}, + {0x8338c631, 0xfffff1da}, + {0x8338c632, 0xfffff1db}, + {0x8338c633, 0xfffff1dc}, + {0x8338c634, 0xfffff1dd}, + {0x8338c635, 0xfffff1de}, + {0x8338c636, 0xfffff1df}, + {0x8338c637, 0xfffff1e0}, + {0x8338c638, 0xfffff1e1}, + {0x8338c639, 0xfffff1e2}, + {0x8338c730, 0xfffff1e3}, + {0x8338c731, 0xfffff1e4}, + {0x8338c732, 0xfffff1e5}, + {0x8338c733, 0xfffff1e6}, + {0x8338c734, 0xfffff1e7}, + {0x8338c735, 0xfffff1e8}, + {0x8338c736, 0xfffff1e9}, + {0x8338c737, 0xfffff1ea}, + {0x8338c738, 0xfffff1eb}, + {0x8338c739, 0xfffff1ec}, + {0x8338c830, 0xfffff1ed}, + {0x8338c831, 0xfffff1ee}, + {0x8338c832, 0xfffff1ef}, + {0x8338c833, 0xfffff1f0}, + {0x8338c834, 0xfffff1f1}, + {0x8338c835, 0xfffff1f2}, + {0x8338c836, 0xfffff1f3}, + {0x8338c837, 0xfffff1f4}, + {0x8338c838, 0xfffff1f5}, + {0x8338c839, 0xfffff1f6}, + {0x8338c930, 0xfffff1f7}, + {0x8338c931, 0xfffff1f8}, + {0x8338c932, 0xfffff1f9}, + {0x8338c933, 0xfffff1fa}, + {0x8338c934, 0xfffff1fb}, + {0x8338c935, 0xfffff1fc}, + {0x8338c936, 0xfffff1fd}, + {0x8338c937, 0xfffff1fe}, + {0x8338c938, 0xfffff1ff}, + {0x8338c939, 0xfffff200}, + {0x8338ca30, 0xfffff201}, + {0x8338ca31, 0xfffff202}, + {0x8338ca32, 0xfffff203}, + {0x8338ca33, 0xfffff204}, + {0x8338ca34, 0xfffff205}, + {0x8338ca35, 0xfffff206}, + {0x8338ca36, 0xfffff207}, + {0x8338ca37, 0xfffff208}, + {0x8338ca38, 0xfffff209}, + {0x8338ca39, 0xfffff20a}, + {0x8338cb30, 0xfffff20b}, + {0x8338cb31, 0xfffff20c}, + {0x8338cb32, 0xfffff20d}, + {0x8338cb33, 0xfffff20e}, + {0x8338cb34, 0xfffff20f}, + {0x8338cb35, 0xfffff210}, + {0x8338cb36, 0xfffff211}, + {0x8338cb37, 0xfffff212}, + {0x8338cb38, 0xfffff213}, + {0x8338cb39, 0xfffff214}, + {0x8338cc30, 0xfffff215}, + {0x8338cc31, 0xfffff216}, + {0x8338cc32, 0xfffff217}, + {0x8338cc33, 0xfffff218}, + {0x8338cc34, 0xfffff219}, + {0x8338cc35, 0xfffff21a}, + {0x8338cc36, 0xfffff21b}, + {0x8338cc37, 0xfffff21c}, + {0x8338cc38, 0xfffff21d}, + {0x8338cc39, 0xfffff21e}, + {0x8338cd30, 0xfffff21f}, + {0x8338cd31, 0xfffff220}, + {0x8338cd32, 0xfffff221}, + {0x8338cd33, 0xfffff222}, + {0x8338cd34, 0xfffff223}, + {0x8338cd35, 0xfffff224}, + {0x8338cd36, 0xfffff225}, + {0x8338cd37, 0xfffff226}, + {0x8338cd38, 0xfffff227}, + {0x8338cd39, 0xfffff228}, + {0x8338ce30, 0xfffff229}, + {0x8338ce31, 0xfffff22a}, + {0x8338ce32, 0xfffff22b}, + {0x8338ce33, 0xfffff22c}, + {0x8338ce34, 0xfffff22d}, + {0x8338ce35, 0xfffff22e}, + {0x8338ce36, 0xfffff22f}, + {0x8338ce37, 0xfffff230}, + {0x8338ce38, 0xfffff231}, + {0x8338ce39, 0xfffff232}, + {0x8338cf30, 0xfffff233}, + {0x8338cf31, 0xfffff234}, + {0x8338cf32, 0xfffff235}, + {0x8338cf33, 0xfffff236}, + {0x8338cf34, 0xfffff237}, + {0x8338cf35, 0xfffff238}, + {0x8338cf36, 0xfffff239}, + {0x8338cf37, 0xfffff23a}, + {0x8338cf38, 0xfffff23b}, + {0x8338cf39, 0xfffff23c}, + {0x8338d030, 0xfffff23d}, + {0x8338d031, 0xfffff23e}, + {0x8338d032, 0xfffff23f}, + {0x8338d033, 0xfffff240}, + {0x8338d034, 0xfffff241}, + {0x8338d035, 0xfffff242}, + {0x8338d036, 0xfffff243}, + {0x8338d037, 0xfffff244}, + {0x8338d038, 0xfffff245}, + {0x8338d039, 0xfffff246}, + {0x8338d130, 0xfffff247}, + {0x8338d131, 0xfffff248}, + {0x8338d132, 0xfffff249}, + {0x8338d133, 0xfffff24a}, + {0x8338d134, 0xfffff24b}, + {0x8338d135, 0xfffff24c}, + {0x8338d136, 0xfffff24d}, + {0x8338d137, 0xfffff24e}, + {0x8338d138, 0xfffff24f}, + {0x8338d139, 0xfffff250}, + {0x8338d230, 0xfffff251}, + {0x8338d231, 0xfffff252}, + {0x8338d232, 0xfffff253}, + {0x8338d233, 0xfffff254}, + {0x8338d234, 0xfffff255}, + {0x8338d235, 0xfffff256}, + {0x8338d236, 0xfffff257}, + {0x8338d237, 0xfffff258}, + {0x8338d238, 0xfffff259}, + {0x8338d239, 0xfffff25a}, + {0x8338d330, 0xfffff25b}, + {0x8338d331, 0xfffff25c}, + {0x8338d332, 0xfffff25d}, + {0x8338d333, 0xfffff25e}, + {0x8338d334, 0xfffff25f}, + {0x8338d335, 0xfffff260}, + {0x8338d336, 0xfffff261}, + {0x8338d337, 0xfffff262}, + {0x8338d338, 0xfffff263}, + {0x8338d339, 0xfffff264}, + {0x8338d430, 0xfffff265}, + {0x8338d431, 0xfffff266}, + {0x8338d432, 0xfffff267}, + {0x8338d433, 0xfffff268}, + {0x8338d434, 0xfffff269}, + {0x8338d435, 0xfffff26a}, + {0x8338d436, 0xfffff26b}, + {0x8338d437, 0xfffff26c}, + {0x8338d438, 0xfffff26d}, + {0x8338d439, 0xfffff26e}, + {0x8338d530, 0xfffff26f}, + {0x8338d531, 0xfffff270}, + {0x8338d532, 0xfffff271}, + {0x8338d533, 0xfffff272}, + {0x8338d534, 0xfffff273}, + {0x8338d535, 0xfffff274}, + {0x8338d536, 0xfffff275}, + {0x8338d537, 0xfffff276}, + {0x8338d538, 0xfffff277}, + {0x8338d539, 0xfffff278}, + {0x8338d630, 0xfffff279}, + {0x8338d631, 0xfffff27a}, + {0x8338d632, 0xfffff27b}, + {0x8338d633, 0xfffff27c}, + {0x8338d634, 0xfffff27d}, + {0x8338d635, 0xfffff27e}, + {0x8338d636, 0xfffff27f}, + {0x8338d637, 0xfffff280}, + {0x8338d638, 0xfffff281}, + {0x8338d639, 0xfffff282}, + {0x8338d730, 0xfffff283}, + {0x8338d731, 0xfffff284}, + {0x8338d732, 0xfffff285}, + {0x8338d733, 0xfffff286}, + {0x8338d734, 0xfffff287}, + {0x8338d735, 0xfffff288}, + {0x8338d736, 0xfffff289}, + {0x8338d737, 0xfffff28a}, + {0x8338d738, 0xfffff28b}, + {0x8338d739, 0xfffff28c}, + {0x8338d830, 0xfffff28d}, + {0x8338d831, 0xfffff28e}, + {0x8338d832, 0xfffff28f}, + {0x8338d833, 0xfffff290}, + {0x8338d834, 0xfffff291}, + {0x8338d835, 0xfffff292}, + {0x8338d836, 0xfffff293}, + {0x8338d837, 0xfffff294}, + {0x8338d838, 0xfffff295}, + {0x8338d839, 0xfffff296}, + {0x8338d930, 0xfffff297}, + {0x8338d931, 0xfffff298}, + {0x8338d932, 0xfffff299}, + {0x8338d933, 0xfffff29a}, + {0x8338d934, 0xfffff29b}, + {0x8338d935, 0xfffff29c}, + {0x8338d936, 0xfffff29d}, + {0x8338d937, 0xfffff29e}, + {0x8338d938, 0xfffff29f}, + {0x8338d939, 0xfffff2a0}, + {0x8338da30, 0xfffff2a1}, + {0x8338da31, 0xfffff2a2}, + {0x8338da32, 0xfffff2a3}, + {0x8338da33, 0xfffff2a4}, + {0x8338da34, 0xfffff2a5}, + {0x8338da35, 0xfffff2a6}, + {0x8338da36, 0xfffff2a7}, + {0x8338da37, 0xfffff2a8}, + {0x8338da38, 0xfffff2a9}, + {0x8338da39, 0xfffff2aa}, + {0x8338db30, 0xfffff2ab}, + {0x8338db31, 0xfffff2ac}, + {0x8338db32, 0xfffff2ad}, + {0x8338db33, 0xfffff2ae}, + {0x8338db34, 0xfffff2af}, + {0x8338db35, 0xfffff2b0}, + {0x8338db36, 0xfffff2b1}, + {0x8338db37, 0xfffff2b2}, + {0x8338db38, 0xfffff2b3}, + {0x8338db39, 0xfffff2b4}, + {0x8338dc30, 0xfffff2b5}, + {0x8338dc31, 0xfffff2b6}, + {0x8338dc32, 0xfffff2b7}, + {0x8338dc33, 0xfffff2b8}, + {0x8338dc34, 0xfffff2b9}, + {0x8338dc35, 0xfffff2ba}, + {0x8338dc36, 0xfffff2bb}, + {0x8338dc37, 0xfffff2bc}, + {0x8338dc38, 0xfffff2bd}, + {0x8338dc39, 0xfffff2be}, + {0x8338dd30, 0xfffff2bf}, + {0x8338dd31, 0xfffff2c0}, + {0x8338dd32, 0xfffff2c1}, + {0x8338dd33, 0xfffff2c2}, + {0x8338dd34, 0xfffff2c3}, + {0x8338dd35, 0xfffff2c4}, + {0x8338dd36, 0xfffff2c5}, + {0x8338dd37, 0xfffff2c6}, + {0x8338dd38, 0xfffff2c7}, + {0x8338dd39, 0xfffff2c8}, + {0x8338de30, 0xfffff2c9}, + {0x8338de31, 0xfffff2ca}, + {0x8338de32, 0xfffff2cb}, + {0x8338de33, 0xfffff2cc}, + {0x8338de34, 0xfffff2cd}, + {0x8338de35, 0xfffff2ce}, + {0x8338de36, 0xfffff2cf}, + {0x8338de37, 0xfffff2d0}, + {0x8338de38, 0xfffff2d1}, + {0x8338de39, 0xfffff2d2}, + {0x8338df30, 0xfffff2d3}, + {0x8338df31, 0xfffff2d4}, + {0x8338df32, 0xfffff2d5}, + {0x8338df33, 0xfffff2d6}, + {0x8338df34, 0xfffff2d7}, + {0x8338df35, 0xfffff2d8}, + {0x8338df36, 0xfffff2d9}, + {0x8338df37, 0xfffff2da}, + {0x8338df38, 0xfffff2db}, + {0x8338df39, 0xfffff2dc}, + {0x8338e030, 0xfffff2dd}, + {0x8338e031, 0xfffff2de}, + {0x8338e032, 0xfffff2df}, + {0x8338e033, 0xfffff2e0}, + {0x8338e034, 0xfffff2e1}, + {0x8338e035, 0xfffff2e2}, + {0x8338e036, 0xfffff2e3}, + {0x8338e037, 0xfffff2e4}, + {0x8338e038, 0xfffff2e5}, + {0x8338e039, 0xfffff2e6}, + {0x8338e130, 0xfffff2e7}, + {0x8338e131, 0xfffff2e8}, + {0x8338e132, 0xfffff2e9}, + {0x8338e133, 0xfffff2ea}, + {0x8338e134, 0xfffff2eb}, + {0x8338e135, 0xfffff2ec}, + {0x8338e136, 0xfffff2ed}, + {0x8338e137, 0xfffff2ee}, + {0x8338e138, 0xfffff2ef}, + {0x8338e139, 0xfffff2f0}, + {0x8338e230, 0xfffff2f1}, + {0x8338e231, 0xfffff2f2}, + {0x8338e232, 0xfffff2f3}, + {0x8338e233, 0xfffff2f4}, + {0x8338e234, 0xfffff2f5}, + {0x8338e235, 0xfffff2f6}, + {0x8338e236, 0xfffff2f7}, + {0x8338e237, 0xfffff2f8}, + {0x8338e238, 0xfffff2f9}, + {0x8338e239, 0xfffff2fa}, + {0x8338e330, 0xfffff2fb}, + {0x8338e331, 0xfffff2fc}, + {0x8338e332, 0xfffff2fd}, + {0x8338e333, 0xfffff2fe}, + {0x8338e334, 0xfffff2ff}, + {0x8338e335, 0xfffff300}, + {0x8338e336, 0xfffff301}, + {0x8338e337, 0xfffff302}, + {0x8338e338, 0xfffff303}, + {0x8338e339, 0xfffff304}, + {0x8338e430, 0xfffff305}, + {0x8338e431, 0xfffff306}, + {0x8338e432, 0xfffff307}, + {0x8338e433, 0xfffff308}, + {0x8338e434, 0xfffff309}, + {0x8338e435, 0xfffff30a}, + {0x8338e436, 0xfffff30b}, + {0x8338e437, 0xfffff30c}, + {0x8338e438, 0xfffff30d}, + {0x8338e439, 0xfffff30e}, + {0x8338e530, 0xfffff30f}, + {0x8338e531, 0xfffff310}, + {0x8338e532, 0xfffff311}, + {0x8338e533, 0xfffff312}, + {0x8338e534, 0xfffff313}, + {0x8338e535, 0xfffff314}, + {0x8338e536, 0xfffff315}, + {0x8338e537, 0xfffff316}, + {0x8338e538, 0xfffff317}, + {0x8338e539, 0xfffff318}, + {0x8338e630, 0xfffff319}, + {0x8338e631, 0xfffff31a}, + {0x8338e632, 0xfffff31b}, + {0x8338e633, 0xfffff31c}, + {0x8338e634, 0xfffff31d}, + {0x8338e635, 0xfffff31e}, + {0x8338e636, 0xfffff31f}, + {0x8338e637, 0xfffff320}, + {0x8338e638, 0xfffff321}, + {0x8338e639, 0xfffff322}, + {0x8338e730, 0xfffff323}, + {0x8338e731, 0xfffff324}, + {0x8338e732, 0xfffff325}, + {0x8338e733, 0xfffff326}, + {0x8338e734, 0xfffff327}, + {0x8338e735, 0xfffff328}, + {0x8338e736, 0xfffff329}, + {0x8338e737, 0xfffff32a}, + {0x8338e738, 0xfffff32b}, + {0x8338e739, 0xfffff32c}, + {0x8338e830, 0xfffff32d}, + {0x8338e831, 0xfffff32e}, + {0x8338e832, 0xfffff32f}, + {0x8338e833, 0xfffff330}, + {0x8338e834, 0xfffff331}, + {0x8338e835, 0xfffff332}, + {0x8338e836, 0xfffff333}, + {0x8338e837, 0xfffff334}, + {0x8338e838, 0xfffff335}, + {0x8338e839, 0xfffff336}, + {0x8338e930, 0xfffff337}, + {0x8338e931, 0xfffff338}, + {0x8338e932, 0xfffff339}, + {0x8338e933, 0xfffff33a}, + {0x8338e934, 0xfffff33b}, + {0x8338e935, 0xfffff33c}, + {0x8338e936, 0xfffff33d}, + {0x8338e937, 0xfffff33e}, + {0x8338e938, 0xfffff33f}, + {0x8338e939, 0xfffff340}, + {0x8338ea30, 0xfffff341}, + {0x8338ea31, 0xfffff342}, + {0x8338ea32, 0xfffff343}, + {0x8338ea33, 0xfffff344}, + {0x8338ea34, 0xfffff345}, + {0x8338ea35, 0xfffff346}, + {0x8338ea36, 0xfffff347}, + {0x8338ea37, 0xfffff348}, + {0x8338ea38, 0xfffff349}, + {0x8338ea39, 0xfffff34a}, + {0x8338eb30, 0xfffff34b}, + {0x8338eb31, 0xfffff34c}, + {0x8338eb32, 0xfffff34d}, + {0x8338eb33, 0xfffff34e}, + {0x8338eb34, 0xfffff34f}, + {0x8338eb35, 0xfffff350}, + {0x8338eb36, 0xfffff351}, + {0x8338eb37, 0xfffff352}, + {0x8338eb38, 0xfffff353}, + {0x8338eb39, 0xfffff354}, + {0x8338ec30, 0xfffff355}, + {0x8338ec31, 0xfffff356}, + {0x8338ec32, 0xfffff357}, + {0x8338ec33, 0xfffff358}, + {0x8338ec34, 0xfffff359}, + {0x8338ec35, 0xfffff35a}, + {0x8338ec36, 0xfffff35b}, + {0x8338ec37, 0xfffff35c}, + {0x8338ec38, 0xfffff35d}, + {0x8338ec39, 0xfffff35e}, + {0x8338ed30, 0xfffff35f}, + {0x8338ed31, 0xfffff360}, + {0x8338ed32, 0xfffff361}, + {0x8338ed33, 0xfffff362}, + {0x8338ed34, 0xfffff363}, + {0x8338ed35, 0xfffff364}, + {0x8338ed36, 0xfffff365}, + {0x8338ed37, 0xfffff366}, + {0x8338ed38, 0xfffff367}, + {0x8338ed39, 0xfffff368}, + {0x8338ee30, 0xfffff369}, + {0x8338ee31, 0xfffff36a}, + {0x8338ee32, 0xfffff36b}, + {0x8338ee33, 0xfffff36c}, + {0x8338ee34, 0xfffff36d}, + {0x8338ee35, 0xfffff36e}, + {0x8338ee36, 0xfffff36f}, + {0x8338ee37, 0xfffff370}, + {0x8338ee38, 0xfffff371}, + {0x8338ee39, 0xfffff372}, + {0x8338ef30, 0xfffff373}, + {0x8338ef31, 0xfffff374}, + {0x8338ef32, 0xfffff375}, + {0x8338ef33, 0xfffff376}, + {0x8338ef34, 0xfffff377}, + {0x8338ef35, 0xfffff378}, + {0x8338ef36, 0xfffff379}, + {0x8338ef37, 0xfffff37a}, + {0x8338ef38, 0xfffff37b}, + {0x8338ef39, 0xfffff37c}, + {0x8338f030, 0xfffff37d}, + {0x8338f031, 0xfffff37e}, + {0x8338f032, 0xfffff37f}, + {0x8338f033, 0xfffff380}, + {0x8338f034, 0xfffff381}, + {0x8338f035, 0xfffff382}, + {0x8338f036, 0xfffff383}, + {0x8338f037, 0xfffff384}, + {0x8338f038, 0xfffff385}, + {0x8338f039, 0xfffff386}, + {0x8338f130, 0xfffff387}, + {0x8338f131, 0xfffff388}, + {0x8338f132, 0xfffff389}, + {0x8338f133, 0xfffff38a}, + {0x8338f134, 0xfffff38b}, + {0x8338f135, 0xfffff38c}, + {0x8338f136, 0xfffff38d}, + {0x8338f137, 0xfffff38e}, + {0x8338f138, 0xfffff38f}, + {0x8338f139, 0xfffff390}, + {0x8338f230, 0xfffff391}, + {0x8338f231, 0xfffff392}, + {0x8338f232, 0xfffff393}, + {0x8338f233, 0xfffff394}, + {0x8338f234, 0xfffff395}, + {0x8338f235, 0xfffff396}, + {0x8338f236, 0xfffff397}, + {0x8338f237, 0xfffff398}, + {0x8338f238, 0xfffff399}, + {0x8338f239, 0xfffff39a}, + {0x8338f330, 0xfffff39b}, + {0x8338f331, 0xfffff39c}, + {0x8338f332, 0xfffff39d}, + {0x8338f333, 0xfffff39e}, + {0x8338f334, 0xfffff39f}, + {0x8338f335, 0xfffff3a0}, + {0x8338f336, 0xfffff3a1}, + {0x8338f337, 0xfffff3a2}, + {0x8338f338, 0xfffff3a3}, + {0x8338f339, 0xfffff3a4}, + {0x8338f430, 0xfffff3a5}, + {0x8338f431, 0xfffff3a6}, + {0x8338f432, 0xfffff3a7}, + {0x8338f433, 0xfffff3a8}, + {0x8338f434, 0xfffff3a9}, + {0x8338f435, 0xfffff3aa}, + {0x8338f436, 0xfffff3ab}, + {0x8338f437, 0xfffff3ac}, + {0x8338f438, 0xfffff3ad}, + {0x8338f439, 0xfffff3ae}, + {0x8338f530, 0xfffff3af}, + {0x8338f531, 0xfffff3b0}, + {0x8338f532, 0xfffff3b1}, + {0x8338f533, 0xfffff3b2}, + {0x8338f534, 0xfffff3b3}, + {0x8338f535, 0xfffff3b4}, + {0x8338f536, 0xfffff3b5}, + {0x8338f537, 0xfffff3b6}, + {0x8338f538, 0xfffff3b7}, + {0x8338f539, 0xfffff3b8}, + {0x8338f630, 0xfffff3b9}, + {0x8338f631, 0xfffff3ba}, + {0x8338f632, 0xfffff3bb}, + {0x8338f633, 0xfffff3bc}, + {0x8338f634, 0xfffff3bd}, + {0x8338f635, 0xfffff3be}, + {0x8338f636, 0xfffff3bf}, + {0x8338f637, 0xfffff3c0}, + {0x8338f638, 0xfffff3c1}, + {0x8338f639, 0xfffff3c2}, + {0x8338f730, 0xfffff3c3}, + {0x8338f731, 0xfffff3c4}, + {0x8338f732, 0xfffff3c5}, + {0x8338f733, 0xfffff3c6}, + {0x8338f734, 0xfffff3c7}, + {0x8338f735, 0xfffff3c8}, + {0x8338f736, 0xfffff3c9}, + {0x8338f737, 0xfffff3ca}, + {0x8338f738, 0xfffff3cb}, + {0x8338f739, 0xfffff3cc}, + {0x8338f830, 0xfffff3cd}, + {0x8338f831, 0xfffff3ce}, + {0x8338f832, 0xfffff3cf}, + {0x8338f833, 0xfffff3d0}, + {0x8338f834, 0xfffff3d1}, + {0x8338f835, 0xfffff3d2}, + {0x8338f836, 0xfffff3d3}, + {0x8338f837, 0xfffff3d4}, + {0x8338f838, 0xfffff3d5}, + {0x8338f839, 0xfffff3d6}, + {0x8338f930, 0xfffff3d7}, + {0x8338f931, 0xfffff3d8}, + {0x8338f932, 0xfffff3d9}, + {0x8338f933, 0xfffff3da}, + {0x8338f934, 0xfffff3db}, + {0x8338f935, 0xfffff3dc}, + {0x8338f936, 0xfffff3dd}, + {0x8338f937, 0xfffff3de}, + {0x8338f938, 0xfffff3df}, + {0x8338f939, 0xfffff3e0}, + {0x8338fa30, 0xfffff3e1}, + {0x8338fa31, 0xfffff3e2}, + {0x8338fa32, 0xfffff3e3}, + {0x8338fa33, 0xfffff3e4}, + {0x8338fa34, 0xfffff3e5}, + {0x8338fa35, 0xfffff3e6}, + {0x8338fa36, 0xfffff3e7}, + {0x8338fa37, 0xfffff3e8}, + {0x8338fa38, 0xfffff3e9}, + {0x8338fa39, 0xfffff3ea}, + {0x8338fb30, 0xfffff3eb}, + {0x8338fb31, 0xfffff3ec}, + {0x8338fb32, 0xfffff3ed}, + {0x8338fb33, 0xfffff3ee}, + {0x8338fb34, 0xfffff3ef}, + {0x8338fb35, 0xfffff3f0}, + {0x8338fb36, 0xfffff3f1}, + {0x8338fb37, 0xfffff3f2}, + {0x8338fb38, 0xfffff3f3}, + {0x8338fb39, 0xfffff3f4}, + {0x8338fc30, 0xfffff3f5}, + {0x8338fc31, 0xfffff3f6}, + {0x8338fc32, 0xfffff3f7}, + {0x8338fc33, 0xfffff3f8}, + {0x8338fc34, 0xfffff3f9}, + {0x8338fc35, 0xfffff3fa}, + {0x8338fc36, 0xfffff3fb}, + {0x8338fc37, 0xfffff3fc}, + {0x8338fc38, 0xfffff3fd}, + {0x8338fc39, 0xfffff3fe}, + {0x8338fd30, 0xfffff3ff}, + {0x8338fd31, 0xfffff400}, + {0x8338fd32, 0xfffff401}, + {0x8338fd33, 0xfffff402}, + {0x8338fd34, 0xfffff403}, + {0x8338fd35, 0xfffff404}, + {0x8338fd36, 0xfffff405}, + {0x8338fd37, 0xfffff406}, + {0x8338fd38, 0xfffff407}, + {0x8338fd39, 0xfffff408}, + {0x8338fe30, 0xfffff409}, + {0x8338fe31, 0xfffff40a}, + {0x8338fe32, 0xfffff40b}, + {0x8338fe33, 0xfffff40c}, + {0x8338fe34, 0xfffff40d}, + {0x8338fe35, 0xfffff40e}, + {0x8338fe36, 0xfffff40f}, + {0x8338fe37, 0xfffff410}, + {0x8338fe38, 0xfffff411}, + {0x8338fe39, 0xfffff412}, + {0x83398130, 0xfffff413}, + {0x83398131, 0xfffff414}, + {0x83398132, 0xfffff415}, + {0x83398133, 0xfffff416}, + {0x83398134, 0xfffff417}, + {0x83398135, 0xfffff418}, + {0x83398136, 0xfffff419}, + {0x83398137, 0xfffff41a}, + {0x83398138, 0xfffff41b}, + {0x83398139, 0xfffff41c}, + {0x83398230, 0xfffff41d}, + {0x83398231, 0xfffff41e}, + {0x83398232, 0xfffff41f}, + {0x83398233, 0xfffff420}, + {0x83398234, 0xfffff421}, + {0x83398235, 0xfffff422}, + {0x83398236, 0xfffff423}, + {0x83398237, 0xfffff424}, + {0x83398238, 0xfffff425}, + {0x83398239, 0xfffff426}, + {0x83398330, 0xfffff427}, + {0x83398331, 0xfffff428}, + {0x83398332, 0xfffff429}, + {0x83398333, 0xfffff42a}, + {0x83398334, 0xfffff42b}, + {0x83398335, 0xfffff42c}, + {0x83398336, 0xfffff42d}, + {0x83398337, 0xfffff42e}, + {0x83398338, 0xfffff42f}, + {0x83398339, 0xfffff430}, + {0x83398430, 0xfffff431}, + {0x83398431, 0xfffff432}, + {0x83398432, 0xfffff433}, + {0x83398433, 0xfffff434}, + {0x83398434, 0xfffff435}, + {0x83398435, 0xfffff436}, + {0x83398436, 0xfffff437}, + {0x83398437, 0xfffff438}, + {0x83398438, 0xfffff439}, + {0x83398439, 0xfffff43a}, + {0x83398530, 0xfffff43b}, + {0x83398531, 0xfffff43c}, + {0x83398532, 0xfffff43d}, + {0x83398533, 0xfffff43e}, + {0x83398534, 0xfffff43f}, + {0x83398535, 0xfffff440}, + {0x83398536, 0xfffff441}, + {0x83398537, 0xfffff442}, + {0x83398538, 0xfffff443}, + {0x83398539, 0xfffff444}, + {0x83398630, 0xfffff445}, + {0x83398631, 0xfffff446}, + {0x83398632, 0xfffff447}, + {0x83398633, 0xfffff448}, + {0x83398634, 0xfffff449}, + {0x83398635, 0xfffff44a}, + {0x83398636, 0xfffff44b}, + {0x83398637, 0xfffff44c}, + {0x83398638, 0xfffff44d}, + {0x83398639, 0xfffff44e}, + {0x83398730, 0xfffff44f}, + {0x83398731, 0xfffff450}, + {0x83398732, 0xfffff451}, + {0x83398733, 0xfffff452}, + {0x83398734, 0xfffff453}, + {0x83398735, 0xfffff454}, + {0x83398736, 0xfffff455}, + {0x83398737, 0xfffff456}, + {0x83398738, 0xfffff457}, + {0x83398739, 0xfffff458}, + {0x83398830, 0xfffff459}, + {0x83398831, 0xfffff45a}, + {0x83398832, 0xfffff45b}, + {0x83398833, 0xfffff45c}, + {0x83398834, 0xfffff45d}, + {0x83398835, 0xfffff45e}, + {0x83398836, 0xfffff45f}, + {0x83398837, 0xfffff460}, + {0x83398838, 0xfffff461}, + {0x83398839, 0xfffff462}, + {0x83398930, 0xfffff463}, + {0x83398931, 0xfffff464}, + {0x83398932, 0xfffff465}, + {0x83398933, 0xfffff466}, + {0x83398934, 0xfffff467}, + {0x83398935, 0xfffff468}, + {0x83398936, 0xfffff469}, + {0x83398937, 0xfffff46a}, + {0x83398938, 0xfffff46b}, + {0x83398939, 0xfffff46c}, + {0x83398a30, 0xfffff46d}, + {0x83398a31, 0xfffff46e}, + {0x83398a32, 0xfffff46f}, + {0x83398a33, 0xfffff470}, + {0x83398a34, 0xfffff471}, + {0x83398a35, 0xfffff472}, + {0x83398a36, 0xfffff473}, + {0x83398a37, 0xfffff474}, + {0x83398a38, 0xfffff475}, + {0x83398a39, 0xfffff476}, + {0x83398b30, 0xfffff477}, + {0x83398b31, 0xfffff478}, + {0x83398b32, 0xfffff479}, + {0x83398b33, 0xfffff47a}, + {0x83398b34, 0xfffff47b}, + {0x83398b35, 0xfffff47c}, + {0x83398b36, 0xfffff47d}, + {0x83398b37, 0xfffff47e}, + {0x83398b38, 0xfffff47f}, + {0x83398b39, 0xfffff480}, + {0x83398c30, 0xfffff481}, + {0x83398c31, 0xfffff482}, + {0x83398c32, 0xfffff483}, + {0x83398c33, 0xfffff484}, + {0x83398c34, 0xfffff485}, + {0x83398c35, 0xfffff486}, + {0x83398c36, 0xfffff487}, + {0x83398c37, 0xfffff488}, + {0x83398c38, 0xfffff489}, + {0x83398c39, 0xfffff48a}, + {0x83398d30, 0xfffff48b}, + {0x83398d31, 0xfffff48c}, + {0x83398d32, 0xfffff48d}, + {0x83398d33, 0xfffff48e}, + {0x83398d34, 0xfffff48f}, + {0x83398d35, 0xfffff490}, + {0x83398d36, 0xfffff491}, + {0x83398d37, 0xfffff492}, + {0x83398d38, 0xfffff493}, + {0x83398d39, 0xfffff494}, + {0x83398e30, 0xfffff495}, + {0x83398e31, 0xfffff496}, + {0x83398e32, 0xfffff497}, + {0x83398e33, 0xfffff498}, + {0x83398e34, 0xfffff499}, + {0x83398e35, 0xfffff49a}, + {0x83398e36, 0xfffff49b}, + {0x83398e37, 0xfffff49c}, + {0x83398e38, 0xfffff49d}, + {0x83398e39, 0xfffff49e}, + {0x83398f30, 0xfffff49f}, + {0x83398f31, 0xfffff4a0}, + {0x83398f32, 0xfffff4a1}, + {0x83398f33, 0xfffff4a2}, + {0x83398f34, 0xfffff4a3}, + {0x83398f35, 0xfffff4a4}, + {0x83398f36, 0xfffff4a5}, + {0x83398f37, 0xfffff4a6}, + {0x83398f38, 0xfffff4a7}, + {0x83398f39, 0xfffff4a8}, + {0x83399030, 0xfffff4a9}, + {0x83399031, 0xfffff4aa}, + {0x83399032, 0xfffff4ab}, + {0x83399033, 0xfffff4ac}, + {0x83399034, 0xfffff4ad}, + {0x83399035, 0xfffff4ae}, + {0x83399036, 0xfffff4af}, + {0x83399037, 0xfffff4b0}, + {0x83399038, 0xfffff4b1}, + {0x83399039, 0xfffff4b2}, + {0x83399130, 0xfffff4b3}, + {0x83399131, 0xfffff4b4}, + {0x83399132, 0xfffff4b5}, + {0x83399133, 0xfffff4b6}, + {0x83399134, 0xfffff4b7}, + {0x83399135, 0xfffff4b8}, + {0x83399136, 0xfffff4b9}, + {0x83399137, 0xfffff4ba}, + {0x83399138, 0xfffff4bb}, + {0x83399139, 0xfffff4bc}, + {0x83399230, 0xfffff4bd}, + {0x83399231, 0xfffff4be}, + {0x83399232, 0xfffff4bf}, + {0x83399233, 0xfffff4c0}, + {0x83399234, 0xfffff4c1}, + {0x83399235, 0xfffff4c2}, + {0x83399236, 0xfffff4c3}, + {0x83399237, 0xfffff4c4}, + {0x83399238, 0xfffff4c5}, + {0x83399239, 0xfffff4c6}, + {0x83399330, 0xfffff4c7}, + {0x83399331, 0xfffff4c8}, + {0x83399332, 0xfffff4c9}, + {0x83399333, 0xfffff4ca}, + {0x83399334, 0xfffff4cb}, + {0x83399335, 0xfffff4cc}, + {0x83399336, 0xfffff4cd}, + {0x83399337, 0xfffff4ce}, + {0x83399338, 0xfffff4cf}, + {0x83399339, 0xfffff4d0}, + {0x83399430, 0xfffff4d1}, + {0x83399431, 0xfffff4d2}, + {0x83399432, 0xfffff4d3}, + {0x83399433, 0xfffff4d4}, + {0x83399434, 0xfffff4d5}, + {0x83399435, 0xfffff4d6}, + {0x83399436, 0xfffff4d7}, + {0x83399437, 0xfffff4d8}, + {0x83399438, 0xfffff4d9}, + {0x83399439, 0xfffff4da}, + {0x83399530, 0xfffff4db}, + {0x83399531, 0xfffff4dc}, + {0x83399532, 0xfffff4dd}, + {0x83399533, 0xfffff4de}, + {0x83399534, 0xfffff4df}, + {0x83399535, 0xfffff4e0}, + {0x83399536, 0xfffff4e1}, + {0x83399537, 0xfffff4e2}, + {0x83399538, 0xfffff4e3}, + {0x83399539, 0xfffff4e4}, + {0x83399630, 0xfffff4e5}, + {0x83399631, 0xfffff4e6}, + {0x83399632, 0xfffff4e7}, + {0x83399633, 0xfffff4e8}, + {0x83399634, 0xfffff4e9}, + {0x83399635, 0xfffff4ea}, + {0x83399636, 0xfffff4eb}, + {0x83399637, 0xfffff4ec}, + {0x83399638, 0xfffff4ed}, + {0x83399639, 0xfffff4ee}, + {0x83399730, 0xfffff4ef}, + {0x83399731, 0xfffff4f0}, + {0x83399732, 0xfffff4f1}, + {0x83399733, 0xfffff4f2}, + {0x83399734, 0xfffff4f3}, + {0x83399735, 0xfffff4f4}, + {0x83399736, 0xfffff4f5}, + {0x83399737, 0xfffff4f6}, + {0x83399738, 0xfffff4f7}, + {0x83399739, 0xfffff4f8}, + {0x83399830, 0xfffff4f9}, + {0x83399831, 0xfffff4fa}, + {0x83399832, 0xfffff4fb}, + {0x83399833, 0xfffff4fc}, + {0x83399834, 0xfffff4fd}, + {0x83399835, 0xfffff4fe}, + {0x83399836, 0xfffff4ff}, + {0x83399837, 0xfffff500}, + {0x83399838, 0xfffff501}, + {0x83399839, 0xfffff502}, + {0x83399930, 0xfffff503}, + {0x83399931, 0xfffff504}, + {0x83399932, 0xfffff505}, + {0x83399933, 0xfffff506}, + {0x83399934, 0xfffff507}, + {0x83399935, 0xfffff508}, + {0x83399936, 0xfffff509}, + {0x83399937, 0xfffff50a}, + {0x83399938, 0xfffff50b}, + {0x83399939, 0xfffff50c}, + {0x83399a30, 0xfffff50d}, + {0x83399a31, 0xfffff50e}, + {0x83399a32, 0xfffff50f}, + {0x83399a33, 0xfffff510}, + {0x83399a34, 0xfffff511}, + {0x83399a35, 0xfffff512}, + {0x83399a36, 0xfffff513}, + {0x83399a37, 0xfffff514}, + {0x83399a38, 0xfffff515}, + {0x83399a39, 0xfffff516}, + {0x83399b30, 0xfffff517}, + {0x83399b31, 0xfffff518}, + {0x83399b32, 0xfffff519}, + {0x83399b33, 0xfffff51a}, + {0x83399b34, 0xfffff51b}, + {0x83399b35, 0xfffff51c}, + {0x83399b36, 0xfffff51d}, + {0x83399b37, 0xfffff51e}, + {0x83399b38, 0xfffff51f}, + {0x83399b39, 0xfffff520}, + {0x83399c30, 0xfffff521}, + {0x83399c31, 0xfffff522}, + {0x83399c32, 0xfffff523}, + {0x83399c33, 0xfffff524}, + {0x83399c34, 0xfffff525}, + {0x83399c35, 0xfffff526}, + {0x83399c36, 0xfffff527}, + {0x83399c37, 0xfffff528}, + {0x83399c38, 0xfffff529}, + {0x83399c39, 0xfffff52a}, + {0x83399d30, 0xfffff52b}, + {0x83399d31, 0xfffff52c}, + {0x83399d32, 0xfffff52d}, + {0x83399d33, 0xfffff52e}, + {0x83399d34, 0xfffff52f}, + {0x83399d35, 0xfffff530}, + {0x83399d36, 0xfffff531}, + {0x83399d37, 0xfffff532}, + {0x83399d38, 0xfffff533}, + {0x83399d39, 0xfffff534}, + {0x83399e30, 0xfffff535}, + {0x83399e31, 0xfffff536}, + {0x83399e32, 0xfffff537}, + {0x83399e33, 0xfffff538}, + {0x83399e34, 0xfffff539}, + {0x83399e35, 0xfffff53a}, + {0x83399e36, 0xfffff53b}, + {0x83399e37, 0xfffff53c}, + {0x83399e38, 0xfffff53d}, + {0x83399e39, 0xfffff53e}, + {0x83399f30, 0xfffff53f}, + {0x83399f31, 0xfffff540}, + {0x83399f32, 0xfffff541}, + {0x83399f33, 0xfffff542}, + {0x83399f34, 0xfffff543}, + {0x83399f35, 0xfffff544}, + {0x83399f36, 0xfffff545}, + {0x83399f37, 0xfffff546}, + {0x83399f38, 0xfffff547}, + {0x83399f39, 0xfffff548}, + {0x8339a030, 0xfffff549}, + {0x8339a031, 0xfffff54a}, + {0x8339a032, 0xfffff54b}, + {0x8339a033, 0xfffff54c}, + {0x8339a034, 0xfffff54d}, + {0x8339a035, 0xfffff54e}, + {0x8339a036, 0xfffff54f}, + {0x8339a037, 0xfffff550}, + {0x8339a038, 0xfffff551}, + {0x8339a039, 0xfffff552}, + {0x8339a130, 0xfffff553}, + {0x8339a131, 0xfffff554}, + {0x8339a132, 0xfffff555}, + {0x8339a133, 0xfffff556}, + {0x8339a134, 0xfffff557}, + {0x8339a135, 0xfffff558}, + {0x8339a136, 0xfffff559}, + {0x8339a137, 0xfffff55a}, + {0x8339a138, 0xfffff55b}, + {0x8339a139, 0xfffff55c}, + {0x8339a230, 0xfffff55d}, + {0x8339a231, 0xfffff55e}, + {0x8339a232, 0xfffff55f}, + {0x8339a233, 0xfffff560}, + {0x8339a234, 0xfffff561}, + {0x8339a235, 0xfffff562}, + {0x8339a236, 0xfffff563}, + {0x8339a237, 0xfffff564}, + {0x8339a238, 0xfffff565}, + {0x8339a239, 0xfffff566}, + {0x8339a330, 0xfffff567}, + {0x8339a331, 0xfffff568}, + {0x8339a332, 0xfffff569}, + {0x8339a333, 0xfffff56a}, + {0x8339a334, 0xfffff56b}, + {0x8339a335, 0xfffff56c}, + {0x8339a336, 0xfffff56d}, + {0x8339a337, 0xfffff56e}, + {0x8339a338, 0xfffff56f}, + {0x8339a339, 0xfffff570}, + {0x8339a430, 0xfffff571}, + {0x8339a431, 0xfffff572}, + {0x8339a432, 0xfffff573}, + {0x8339a433, 0xfffff574}, + {0x8339a434, 0xfffff575}, + {0x8339a435, 0xfffff576}, + {0x8339a436, 0xfffff577}, + {0x8339a437, 0xfffff578}, + {0x8339a438, 0xfffff579}, + {0x8339a439, 0xfffff57a}, + {0x8339a530, 0xfffff57b}, + {0x8339a531, 0xfffff57c}, + {0x8339a532, 0xfffff57d}, + {0x8339a533, 0xfffff57e}, + {0x8339a534, 0xfffff57f}, + {0x8339a535, 0xfffff580}, + {0x8339a536, 0xfffff581}, + {0x8339a537, 0xfffff582}, + {0x8339a538, 0xfffff583}, + {0x8339a539, 0xfffff584}, + {0x8339a630, 0xfffff585}, + {0x8339a631, 0xfffff586}, + {0x8339a632, 0xfffff587}, + {0x8339a633, 0xfffff588}, + {0x8339a634, 0xfffff589}, + {0x8339a635, 0xfffff58a}, + {0x8339a636, 0xfffff58b}, + {0x8339a637, 0xfffff58c}, + {0x8339a638, 0xfffff58d}, + {0x8339a639, 0xfffff58e}, + {0x8339a730, 0xfffff58f}, + {0x8339a731, 0xfffff590}, + {0x8339a732, 0xfffff591}, + {0x8339a733, 0xfffff592}, + {0x8339a734, 0xfffff593}, + {0x8339a735, 0xfffff594}, + {0x8339a736, 0xfffff595}, + {0x8339a737, 0xfffff596}, + {0x8339a738, 0xfffff597}, + {0x8339a739, 0xfffff598}, + {0x8339a830, 0xfffff599}, + {0x8339a831, 0xfffff59a}, + {0x8339a832, 0xfffff59b}, + {0x8339a833, 0xfffff59c}, + {0x8339a834, 0xfffff59d}, + {0x8339a835, 0xfffff59e}, + {0x8339a836, 0xfffff59f}, + {0x8339a837, 0xfffff5a0}, + {0x8339a838, 0xfffff5a1}, + {0x8339a839, 0xfffff5a2}, + {0x8339a930, 0xfffff5a3}, + {0x8339a931, 0xfffff5a4}, + {0x8339a932, 0xfffff5a5}, + {0x8339a933, 0xfffff5a6}, + {0x8339a934, 0xfffff5a7}, + {0x8339a935, 0xfffff5a8}, + {0x8339a936, 0xfffff5a9}, + {0x8339a937, 0xfffff5aa}, + {0x8339a938, 0xfffff5ab}, + {0x8339a939, 0xfffff5ac}, + {0x8339aa30, 0xfffff5ad}, + {0x8339aa31, 0xfffff5ae}, + {0x8339aa32, 0xfffff5af}, + {0x8339aa33, 0xfffff5b0}, + {0x8339aa34, 0xfffff5b1}, + {0x8339aa35, 0xfffff5b2}, + {0x8339aa36, 0xfffff5b3}, + {0x8339aa37, 0xfffff5b4}, + {0x8339aa38, 0xfffff5b5}, + {0x8339aa39, 0xfffff5b6}, + {0x8339ab30, 0xfffff5b7}, + {0x8339ab31, 0xfffff5b8}, + {0x8339ab32, 0xfffff5b9}, + {0x8339ab33, 0xfffff5ba}, + {0x8339ab34, 0xfffff5bb}, + {0x8339ab35, 0xfffff5bc}, + {0x8339ab36, 0xfffff5bd}, + {0x8339ab37, 0xfffff5be}, + {0x8339ab38, 0xfffff5bf}, + {0x8339ab39, 0xfffff5c0}, + {0x8339ac30, 0xfffff5c1}, + {0x8339ac31, 0xfffff5c2}, + {0x8339ac32, 0xfffff5c3}, + {0x8339ac33, 0xfffff5c4}, + {0x8339ac34, 0xfffff5c5}, + {0x8339ac35, 0xfffff5c6}, + {0x8339ac36, 0xfffff5c7}, + {0x8339ac37, 0xfffff5c8}, + {0x8339ac38, 0xfffff5c9}, + {0x8339ac39, 0xfffff5ca}, + {0x8339ad30, 0xfffff5cb}, + {0x8339ad31, 0xfffff5cc}, + {0x8339ad32, 0xfffff5cd}, + {0x8339ad33, 0xfffff5ce}, + {0x8339ad34, 0xfffff5cf}, + {0x8339ad35, 0xfffff5d0}, + {0x8339ad36, 0xfffff5d1}, + {0x8339ad37, 0xfffff5d2}, + {0x8339ad38, 0xfffff5d3}, + {0x8339ad39, 0xfffff5d4}, + {0x8339ae30, 0xfffff5d5}, + {0x8339ae31, 0xfffff5d6}, + {0x8339ae32, 0xfffff5d7}, + {0x8339ae33, 0xfffff5d8}, + {0x8339ae34, 0xfffff5d9}, + {0x8339ae35, 0xfffff5da}, + {0x8339ae36, 0xfffff5db}, + {0x8339ae37, 0xfffff5dc}, + {0x8339ae38, 0xfffff5dd}, + {0x8339ae39, 0xfffff5de}, + {0x8339af30, 0xfffff5df}, + {0x8339af31, 0xfffff5e0}, + {0x8339af32, 0xfffff5e1}, + {0x8339af33, 0xfffff5e2}, + {0x8339af34, 0xfffff5e3}, + {0x8339af35, 0xfffff5e4}, + {0x8339af36, 0xfffff5e5}, + {0x8339af37, 0xfffff5e6}, + {0x8339af38, 0xfffff5e7}, + {0x8339af39, 0xfffff5e8}, + {0x8339b030, 0xfffff5e9}, + {0x8339b031, 0xfffff5ea}, + {0x8339b032, 0xfffff5eb}, + {0x8339b033, 0xfffff5ec}, + {0x8339b034, 0xfffff5ed}, + {0x8339b035, 0xfffff5ee}, + {0x8339b036, 0xfffff5ef}, + {0x8339b037, 0xfffff5f0}, + {0x8339b038, 0xfffff5f1}, + {0x8339b039, 0xfffff5f2}, + {0x8339b130, 0xfffff5f3}, + {0x8339b131, 0xfffff5f4}, + {0x8339b132, 0xfffff5f5}, + {0x8339b133, 0xfffff5f6}, + {0x8339b134, 0xfffff5f7}, + {0x8339b135, 0xfffff5f8}, + {0x8339b136, 0xfffff5f9}, + {0x8339b137, 0xfffff5fa}, + {0x8339b138, 0xfffff5fb}, + {0x8339b139, 0xfffff5fc}, + {0x8339b230, 0xfffff5fd}, + {0x8339b231, 0xfffff5fe}, + {0x8339b232, 0xfffff5ff}, + {0x8339b233, 0xfffff600}, + {0x8339b234, 0xfffff601}, + {0x8339b235, 0xfffff602}, + {0x8339b236, 0xfffff603}, + {0x8339b237, 0xfffff604}, + {0x8339b238, 0xfffff605}, + {0x8339b239, 0xfffff606}, + {0x8339b330, 0xfffff607}, + {0x8339b331, 0xfffff608}, + {0x8339b332, 0xfffff609}, + {0x8339b333, 0xfffff60a}, + {0x8339b334, 0xfffff60b}, + {0x8339b335, 0xfffff60c}, + {0x8339b336, 0xfffff60d}, + {0x8339b337, 0xfffff60e}, + {0x8339b338, 0xfffff60f}, + {0x8339b339, 0xfffff610}, + {0x8339b430, 0xfffff611}, + {0x8339b431, 0xfffff612}, + {0x8339b432, 0xfffff613}, + {0x8339b433, 0xfffff614}, + {0x8339b434, 0xfffff615}, + {0x8339b435, 0xfffff616}, + {0x8339b436, 0xfffff617}, + {0x8339b437, 0xfffff618}, + {0x8339b438, 0xfffff619}, + {0x8339b439, 0xfffff61a}, + {0x8339b530, 0xfffff61b}, + {0x8339b531, 0xfffff61c}, + {0x8339b532, 0xfffff61d}, + {0x8339b533, 0xfffff61e}, + {0x8339b534, 0xfffff61f}, + {0x8339b535, 0xfffff620}, + {0x8339b536, 0xfffff621}, + {0x8339b537, 0xfffff622}, + {0x8339b538, 0xfffff623}, + {0x8339b539, 0xfffff624}, + {0x8339b630, 0xfffff625}, + {0x8339b631, 0xfffff626}, + {0x8339b632, 0xfffff627}, + {0x8339b633, 0xfffff628}, + {0x8339b634, 0xfffff629}, + {0x8339b635, 0xfffff62a}, + {0x8339b636, 0xfffff62b}, + {0x8339b637, 0xfffff62c}, + {0x8339b638, 0xfffff62d}, + {0x8339b639, 0xfffff62e}, + {0x8339b730, 0xfffff62f}, + {0x8339b731, 0xfffff630}, + {0x8339b732, 0xfffff631}, + {0x8339b733, 0xfffff632}, + {0x8339b734, 0xfffff633}, + {0x8339b735, 0xfffff634}, + {0x8339b736, 0xfffff635}, + {0x8339b737, 0xfffff636}, + {0x8339b738, 0xfffff637}, + {0x8339b739, 0xfffff638}, + {0x8339b830, 0xfffff639}, + {0x8339b831, 0xfffff63a}, + {0x8339b832, 0xfffff63b}, + {0x8339b833, 0xfffff63c}, + {0x8339b834, 0xfffff63d}, + {0x8339b835, 0xfffff63e}, + {0x8339b836, 0xfffff63f}, + {0x8339b837, 0xfffff640}, + {0x8339b838, 0xfffff641}, + {0x8339b839, 0xfffff642}, + {0x8339b930, 0xfffff643}, + {0x8339b931, 0xfffff644}, + {0x8339b932, 0xfffff645}, + {0x8339b933, 0xfffff646}, + {0x8339b934, 0xfffff647}, + {0x8339b935, 0xfffff648}, + {0x8339b936, 0xfffff649}, + {0x8339b937, 0xfffff64a}, + {0x8339b938, 0xfffff64b}, + {0x8339b939, 0xfffff64c}, + {0x8339ba30, 0xfffff64d}, + {0x8339ba31, 0xfffff64e}, + {0x8339ba32, 0xfffff64f}, + {0x8339ba33, 0xfffff650}, + {0x8339ba34, 0xfffff651}, + {0x8339ba35, 0xfffff652}, + {0x8339ba36, 0xfffff653}, + {0x8339ba37, 0xfffff654}, + {0x8339ba38, 0xfffff655}, + {0x8339ba39, 0xfffff656}, + {0x8339bb30, 0xfffff657}, + {0x8339bb31, 0xfffff658}, + {0x8339bb32, 0xfffff659}, + {0x8339bb33, 0xfffff65a}, + {0x8339bb34, 0xfffff65b}, + {0x8339bb35, 0xfffff65c}, + {0x8339bb36, 0xfffff65d}, + {0x8339bb37, 0xfffff65e}, + {0x8339bb38, 0xfffff65f}, + {0x8339bb39, 0xfffff660}, + {0x8339bc30, 0xfffff661}, + {0x8339bc31, 0xfffff662}, + {0x8339bc32, 0xfffff663}, + {0x8339bc33, 0xfffff664}, + {0x8339bc34, 0xfffff665}, + {0x8339bc35, 0xfffff666}, + {0x8339bc36, 0xfffff667}, + {0x8339bc37, 0xfffff668}, + {0x8339bc38, 0xfffff669}, + {0x8339bc39, 0xfffff66a}, + {0x8339bd30, 0xfffff66b}, + {0x8339bd31, 0xfffff66c}, + {0x8339bd32, 0xfffff66d}, + {0x8339bd33, 0xfffff66e}, + {0x8339bd34, 0xfffff66f}, + {0x8339bd35, 0xfffff670}, + {0x8339bd36, 0xfffff671}, + {0x8339bd37, 0xfffff672}, + {0x8339bd38, 0xfffff673}, + {0x8339bd39, 0xfffff674}, + {0x8339be30, 0xfffff675}, + {0x8339be31, 0xfffff676}, + {0x8339be32, 0xfffff677}, + {0x8339be33, 0xfffff678}, + {0x8339be34, 0xfffff679}, + {0x8339be35, 0xfffff67a}, + {0x8339be36, 0xfffff67b}, + {0x8339be37, 0xfffff67c}, + {0x8339be38, 0xfffff67d}, + {0x8339be39, 0xfffff67e}, + {0x8339bf30, 0xfffff67f}, + {0x8339bf31, 0xfffff680}, + {0x8339bf32, 0xfffff681}, + {0x8339bf33, 0xfffff682}, + {0x8339bf34, 0xfffff683}, + {0x8339bf35, 0xfffff684}, + {0x8339bf36, 0xfffff685}, + {0x8339bf37, 0xfffff686}, + {0x8339bf38, 0xfffff687}, + {0x8339bf39, 0xfffff688}, + {0x8339c030, 0xfffff689}, + {0x8339c031, 0xfffff68a}, + {0x8339c032, 0xfffff68b}, + {0x8339c033, 0xfffff68c}, + {0x8339c034, 0xfffff68d}, + {0x8339c035, 0xfffff68e}, + {0x8339c036, 0xfffff68f}, + {0x8339c037, 0xfffff690}, + {0x8339c038, 0xfffff691}, + {0x8339c039, 0xfffff692}, + {0x8339c130, 0xfffff693}, + {0x8339c131, 0xfffff694}, + {0x8339c132, 0xfffff695}, + {0x8339c133, 0xfffff696}, + {0x8339c134, 0xfffff697}, + {0x8339c135, 0xfffff698}, + {0x8339c136, 0xfffff699}, + {0x8339c137, 0xfffff69a}, + {0x8339c138, 0xfffff69b}, + {0x8339c139, 0xfffff69c}, + {0x8339c230, 0xfffff69d}, + {0x8339c231, 0xfffff69e}, + {0x8339c232, 0xfffff69f}, + {0x8339c233, 0xfffff6a0}, + {0x8339c234, 0xfffff6a1}, + {0x8339c235, 0xfffff6a2}, + {0x8339c236, 0xfffff6a3}, + {0x8339c237, 0xfffff6a4}, + {0x8339c238, 0xfffff6a5}, + {0x8339c239, 0xfffff6a6}, + {0x8339c330, 0xfffff6a7}, + {0x8339c331, 0xfffff6a8}, + {0x8339c332, 0xfffff6a9}, + {0x8339c333, 0xfffff6aa}, + {0x8339c334, 0xfffff6ab}, + {0x8339c335, 0xfffff6ac}, + {0x8339c336, 0xfffff6ad}, + {0x8339c337, 0xfffff6ae}, + {0x8339c338, 0xfffff6af}, + {0x8339c339, 0xfffff6b0}, + {0x8339c430, 0xfffff6b1}, + {0x8339c431, 0xfffff6b2}, + {0x8339c432, 0xfffff6b3}, + {0x8339c433, 0xfffff6b4}, + {0x8339c434, 0xfffff6b5}, + {0x8339c435, 0xfffff6b6}, + {0x8339c436, 0xfffff6b7}, + {0x8339c437, 0xfffff6b8}, + {0x8339c438, 0xfffff6b9}, + {0x8339c439, 0xfffff6ba}, + {0x8339c530, 0xfffff6bb}, + {0x8339c531, 0xfffff6bc}, + {0x8339c532, 0xfffff6bd}, + {0x8339c533, 0xfffff6be}, + {0x8339c534, 0xfffff6bf}, + {0x8339c535, 0xfffff6c0}, + {0x8339c536, 0xfffff6c1}, + {0x8339c537, 0xfffff6c2}, + {0x8339c538, 0xfffff6c3}, + {0x8339c539, 0xfffff6c4}, + {0x8339c630, 0xfffff6c5}, + {0x8339c631, 0xfffff6c6}, + {0x8339c632, 0xfffff6c7}, + {0x8339c633, 0xfffff6c8}, + {0x8339c634, 0xfffff6c9}, + {0x8339c635, 0xfffff6ca}, + {0x8339c636, 0xfffff6cb}, + {0x8339c637, 0xfffff6cc}, + {0x8339c638, 0xfffff6cd}, + {0x8339c639, 0xfffff6ce}, + {0x8339c730, 0xfffff6cf}, + {0x8339c731, 0xfffff6d0}, + {0x8339c732, 0xfffff6d1}, + {0x8339c733, 0xfffff6d2}, + {0x8339c734, 0xfffff6d3}, + {0x8339c735, 0xfffff6d4}, + {0x8339c736, 0xfffff6d5}, + {0x8339c737, 0xfffff6d6}, + {0x8339c738, 0xfffff6d7}, + {0x8339c739, 0xfffff6d8}, + {0x8339c830, 0xfffff6d9}, + {0x8339c831, 0xfffff6da}, + {0x8339c832, 0xfffff6db}, + {0x8339c833, 0xfffff6dc}, + {0x8339c834, 0xfffff6dd}, + {0x8339c835, 0xfffff6de}, + {0x8339c836, 0xfffff6df}, + {0x8339c837, 0xfffff6e0}, + {0x8339c838, 0xfffff6e1}, + {0x8339c839, 0xfffff6e2}, + {0x8339c930, 0xfffff6e3}, + {0x8339c931, 0xfffff6e4}, + {0x8339c932, 0xfffff6e5}, + {0x8339c933, 0xfffff6e6}, + {0x8339c934, 0xfffff6e7}, + {0x8339c935, 0xfffff6e8}, + {0x8339c936, 0xfffff6e9}, + {0x8339c937, 0xfffff6ea}, + {0x8339c938, 0xfffff6eb}, + {0x8339c939, 0xfffff6ec}, + {0x8339ca30, 0xfffff6ed}, + {0x8339ca31, 0xfffff6ee}, + {0x8339ca32, 0xfffff6ef}, + {0x8339ca33, 0xfffff6f0}, + {0x8339ca34, 0xfffff6f1}, + {0x8339ca35, 0xfffff6f2}, + {0x8339ca36, 0xfffff6f3}, + {0x8339ca37, 0xfffff6f4}, + {0x8339ca38, 0xfffff6f5}, + {0x8339ca39, 0xfffff6f6}, + {0x8339cb30, 0xfffff6f7}, + {0x8339cb31, 0xfffff6f8}, + {0x8339cb32, 0xfffff6f9}, + {0x8339cb33, 0xfffff6fa}, + {0x8339cb34, 0xfffff6fb}, + {0x8339cb35, 0xfffff6fc}, + {0x8339cb36, 0xfffff6fd}, + {0x8339cb37, 0xfffff6fe}, + {0x8339cb38, 0xfffff6ff}, + {0x8339cb39, 0xfffff700}, + {0x8339cc30, 0xfffff701}, + {0x8339cc31, 0xfffff702}, + {0x8339cc32, 0xfffff703}, + {0x8339cc33, 0xfffff704}, + {0x8339cc34, 0xfffff705}, + {0x8339cc35, 0xfffff706}, + {0x8339cc36, 0xfffff707}, + {0x8339cc37, 0xfffff708}, + {0x8339cc38, 0xfffff709}, + {0x8339cc39, 0xfffff70a}, + {0x8339cd30, 0xfffff70b}, + {0x8339cd31, 0xfffff70c}, + {0x8339cd32, 0xfffff70d}, + {0x8339cd33, 0xfffff70e}, + {0x8339cd34, 0xfffff70f}, + {0x8339cd35, 0xfffff710}, + {0x8339cd36, 0xfffff711}, + {0x8339cd37, 0xfffff712}, + {0x8339cd38, 0xfffff713}, + {0x8339cd39, 0xfffff714}, + {0x8339ce30, 0xfffff715}, + {0x8339ce31, 0xfffff716}, + {0x8339ce32, 0xfffff717}, + {0x8339ce33, 0xfffff718}, + {0x8339ce34, 0xfffff719}, + {0x8339ce35, 0xfffff71a}, + {0x8339ce36, 0xfffff71b}, + {0x8339ce37, 0xfffff71c}, + {0x8339ce38, 0xfffff71d}, + {0x8339ce39, 0xfffff71e}, + {0x8339cf30, 0xfffff71f}, + {0x8339cf31, 0xfffff720}, + {0x8339cf32, 0xfffff721}, + {0x8339cf33, 0xfffff722}, + {0x8339cf34, 0xfffff723}, + {0x8339cf35, 0xfffff724}, + {0x8339cf36, 0xfffff725}, + {0x8339cf37, 0xfffff726}, + {0x8339cf38, 0xfffff727}, + {0x8339cf39, 0xfffff728}, + {0x8339d030, 0xfffff729}, + {0x8339d031, 0xfffff72a}, + {0x8339d032, 0xfffff72b}, + {0x8339d033, 0xfffff72c}, + {0x8339d034, 0xfffff72d}, + {0x8339d035, 0xfffff72e}, + {0x8339d036, 0xfffff72f}, + {0x8339d037, 0xfffff730}, + {0x8339d038, 0xfffff731}, + {0x8339d039, 0xfffff732}, + {0x8339d130, 0xfffff733}, + {0x8339d131, 0xfffff734}, + {0x8339d132, 0xfffff735}, + {0x8339d133, 0xfffff736}, + {0x8339d134, 0xfffff737}, + {0x8339d135, 0xfffff738}, + {0x8339d136, 0xfffff739}, + {0x8339d137, 0xfffff73a}, + {0x8339d138, 0xfffff73b}, + {0x8339d139, 0xfffff73c}, + {0x8339d230, 0xfffff73d}, + {0x8339d231, 0xfffff73e}, + {0x8339d232, 0xfffff73f}, + {0x8339d233, 0xfffff740}, + {0x8339d234, 0xfffff741}, + {0x8339d235, 0xfffff742}, + {0x8339d236, 0xfffff743}, + {0x8339d237, 0xfffff744}, + {0x8339d238, 0xfffff745}, + {0x8339d239, 0xfffff746}, + {0x8339d330, 0xfffff747}, + {0x8339d331, 0xfffff748}, + {0x8339d332, 0xfffff749}, + {0x8339d333, 0xfffff74a}, + {0x8339d334, 0xfffff74b}, + {0x8339d335, 0xfffff74c}, + {0x8339d336, 0xfffff74d}, + {0x8339d337, 0xfffff74e}, + {0x8339d338, 0xfffff74f}, + {0x8339d339, 0xfffff750}, + {0x8339d430, 0xfffff751}, + {0x8339d431, 0xfffff752}, + {0x8339d432, 0xfffff753}, + {0x8339d433, 0xfffff754}, + {0x8339d434, 0xfffff755}, + {0x8339d435, 0xfffff756}, + {0x8339d436, 0xfffff757}, + {0x8339d437, 0xfffff758}, + {0x8339d438, 0xfffff759}, + {0x8339d439, 0xfffff75a}, + {0x8339d530, 0xfffff75b}, + {0x8339d531, 0xfffff75c}, + {0x8339d532, 0xfffff75d}, + {0x8339d533, 0xfffff75e}, + {0x8339d534, 0xfffff75f}, + {0x8339d535, 0xfffff760}, + {0x8339d536, 0xfffff761}, + {0x8339d537, 0xfffff762}, + {0x8339d538, 0xfffff763}, + {0x8339d539, 0xfffff764}, + {0x8339d630, 0xfffff765}, + {0x8339d631, 0xfffff766}, + {0x8339d632, 0xfffff767}, + {0x8339d633, 0xfffff768}, + {0x8339d634, 0xfffff769}, + {0x8339d635, 0xfffff76a}, + {0x8339d636, 0xfffff76b}, + {0x8339d637, 0xfffff76c}, + {0x8339d638, 0xfffff76d}, + {0x8339d639, 0xfffff76e}, + {0x8339d730, 0xfffff76f}, + {0x8339d731, 0xfffff770}, + {0x8339d732, 0xfffff771}, + {0x8339d733, 0xfffff772}, + {0x8339d734, 0xfffff773}, + {0x8339d735, 0xfffff774}, + {0x8339d736, 0xfffff775}, + {0x8339d737, 0xfffff776}, + {0x8339d738, 0xfffff777}, + {0x8339d739, 0xfffff778}, + {0x8339d830, 0xfffff779}, + {0x8339d831, 0xfffff77a}, + {0x8339d832, 0xfffff77b}, + {0x8339d833, 0xfffff77c}, + {0x8339d834, 0xfffff77d}, + {0x8339d835, 0xfffff77e}, + {0x8339d836, 0xfffff77f}, + {0x8339d837, 0xfffff780}, + {0x8339d838, 0xfffff781}, + {0x8339d839, 0xfffff782}, + {0x8339d930, 0xfffff783}, + {0x8339d931, 0xfffff784}, + {0x8339d932, 0xfffff785}, + {0x8339d933, 0xfffff786}, + {0x8339d934, 0xfffff787}, + {0x8339d935, 0xfffff788}, + {0x8339d936, 0xfffff789}, + {0x8339d937, 0xfffff78a}, + {0x8339d938, 0xfffff78b}, + {0x8339d939, 0xfffff78c}, + {0x8339da30, 0xfffff78d}, + {0x8339da31, 0xfffff78e}, + {0x8339da32, 0xfffff78f}, + {0x8339da33, 0xfffff790}, + {0x8339da34, 0xfffff791}, + {0x8339da35, 0xfffff792}, + {0x8339da36, 0xfffff793}, + {0x8339da37, 0xfffff794}, + {0x8339da38, 0xfffff795}, + {0x8339da39, 0xfffff796}, + {0x8339db30, 0xfffff797}, + {0x8339db31, 0xfffff798}, + {0x8339db32, 0xfffff799}, + {0x8339db33, 0xfffff79a}, + {0x8339db34, 0xfffff79b}, + {0x8339db35, 0xfffff79c}, + {0x8339db36, 0xfffff79d}, + {0x8339db37, 0xfffff79e}, + {0x8339db38, 0xfffff79f}, + {0x8339db39, 0xfffff7a0}, + {0x8339dc30, 0xfffff7a1}, + {0x8339dc31, 0xfffff7a2}, + {0x8339dc32, 0xfffff7a3}, + {0x8339dc33, 0xfffff7a4}, + {0x8339dc34, 0xfffff7a5}, + {0x8339dc35, 0xfffff7a6}, + {0x8339dc36, 0xfffff7a7}, + {0x8339dc37, 0xfffff7a8}, + {0x8339dc38, 0xfffff7a9}, + {0x8339dc39, 0xfffff7aa}, + {0x8339dd30, 0xfffff7ab}, + {0x8339dd31, 0xfffff7ac}, + {0x8339dd32, 0xfffff7ad}, + {0x8339dd33, 0xfffff7ae}, + {0x8339dd34, 0xfffff7af}, + {0x8339dd35, 0xfffff7b0}, + {0x8339dd36, 0xfffff7b1}, + {0x8339dd37, 0xfffff7b2}, + {0x8339dd38, 0xfffff7b3}, + {0x8339dd39, 0xfffff7b4}, + {0x8339de30, 0xfffff7b5}, + {0x8339de31, 0xfffff7b6}, + {0x8339de32, 0xfffff7b7}, + {0x8339de33, 0xfffff7b8}, + {0x8339de34, 0xfffff7b9}, + {0x8339de35, 0xfffff7ba}, + {0x8339de36, 0xfffff7bb}, + {0x8339de37, 0xfffff7bc}, + {0x8339de38, 0xfffff7bd}, + {0x8339de39, 0xfffff7be}, + {0x8339df30, 0xfffff7bf}, + {0x8339df31, 0xfffff7c0}, + {0x8339df32, 0xfffff7c1}, + {0x8339df33, 0xfffff7c2}, + {0x8339df34, 0xfffff7c3}, + {0x8339df35, 0xfffff7c4}, + {0x8339df36, 0xfffff7c5}, + {0x8339df37, 0xfffff7c6}, + {0x8339df38, 0xfffff7c7}, + {0x8339df39, 0xfffff7c8}, + {0x8339e030, 0xfffff7c9}, + {0x8339e031, 0xfffff7ca}, + {0x8339e032, 0xfffff7cb}, + {0x8339e033, 0xfffff7cc}, + {0x8339e034, 0xfffff7cd}, + {0x8339e035, 0xfffff7ce}, + {0x8339e036, 0xfffff7cf}, + {0x8339e037, 0xfffff7d0}, + {0x8339e038, 0xfffff7d1}, + {0x8339e039, 0xfffff7d2}, + {0x8339e130, 0xfffff7d3}, + {0x8339e131, 0xfffff7d4}, + {0x8339e132, 0xfffff7d5}, + {0x8339e133, 0xfffff7d6}, + {0x8339e134, 0xfffff7d7}, + {0x8339e135, 0xfffff7d8}, + {0x8339e136, 0xfffff7d9}, + {0x8339e137, 0xfffff7da}, + {0x8339e138, 0xfffff7db}, + {0x8339e139, 0xfffff7dc}, + {0x8339e230, 0xfffff7dd}, + {0x8339e231, 0xfffff7de}, + {0x8339e232, 0xfffff7df}, + {0x8339e233, 0xfffff7e0}, + {0x8339e234, 0xfffff7e1}, + {0x8339e235, 0xfffff7e2}, + {0x8339e236, 0xfffff7e3}, + {0x8339e237, 0xfffff7e4}, + {0x8339e238, 0xfffff7e5}, + {0x8339e239, 0xfffff7e6}, + {0x8339e330, 0xfffff7e7}, + {0x8339e331, 0xfffff7e8}, + {0x8339e332, 0xfffff7e9}, + {0x8339e333, 0xfffff7ea}, + {0x8339e334, 0xfffff7eb}, + {0x8339e335, 0xfffff7ec}, + {0x8339e336, 0xfffff7ed}, + {0x8339e337, 0xfffff7ee}, + {0x8339e338, 0xfffff7ef}, + {0x8339e339, 0xfffff7f0}, + {0x8339e430, 0xfffff7f1}, + {0x8339e431, 0xfffff7f2}, + {0x8339e432, 0xfffff7f3}, + {0x8339e433, 0xfffff7f4}, + {0x8339e434, 0xfffff7f5}, + {0x8339e435, 0xfffff7f6}, + {0x8339e436, 0xfffff7f7}, + {0x8339e437, 0xfffff7f8}, + {0x8339e438, 0xfffff7f9}, + {0x8339e439, 0xfffff7fa}, + {0x8339e530, 0xfffff7fb}, + {0x8339e531, 0xfffff7fc}, + {0x8339e532, 0xfffff7fd}, + {0x8339e533, 0xfffff7fe}, + {0x8339e534, 0xfffff7ff}, + {0x8339e535, 0xfffff800}, + {0x8339e536, 0xfffff801}, + {0x8339e537, 0xfffff802}, + {0x8339e538, 0xfffff803}, + {0x8339e539, 0xfffff804}, + {0x8339e630, 0xfffff805}, + {0x8339e631, 0xfffff806}, + {0x8339e632, 0xfffff807}, + {0x8339e633, 0xfffff808}, + {0x8339e634, 0xfffff809}, + {0x8339e635, 0xfffff80a}, + {0x8339e636, 0xfffff80b}, + {0x8339e637, 0xfffff80c}, + {0x8339e638, 0xfffff80d}, + {0x8339e639, 0xfffff80e}, + {0x8339e730, 0xfffff80f}, + {0x8339e731, 0xfffff810}, + {0x8339e732, 0xfffff811}, + {0x8339e733, 0xfffff812}, + {0x8339e734, 0xfffff813}, + {0x8339e735, 0xfffff814}, + {0x8339e736, 0xfffff815}, + {0x8339e737, 0xfffff816}, + {0x8339e738, 0xfffff817}, + {0x8339e739, 0xfffff818}, + {0x8339e830, 0xfffff819}, + {0x8339e831, 0xfffff81a}, + {0x8339e832, 0xfffff81b}, + {0x8339e833, 0xfffff81c}, + {0x8339e834, 0xfffff81d}, + {0x8339e835, 0xfffff81e}, + {0x8339e836, 0xfffff81f}, + {0x8339e837, 0xfffff820}, + {0x8339e838, 0xfffff821}, + {0x8339e839, 0xfffff822}, + {0x8339e930, 0xfffff823}, + {0x8339e931, 0xfffff824}, + {0x8339e932, 0xfffff825}, + {0x8339e933, 0xfffff826}, + {0x8339e934, 0xfffff827}, + {0x8339e935, 0xfffff828}, + {0x8339e936, 0xfffff829}, + {0x8339e937, 0xfffff82a}, + {0x8339e938, 0xfffff82b}, + {0x8339e939, 0xfffff82c}, + {0x8339ea30, 0xfffff82d}, + {0x8339ea31, 0xfffff82e}, + {0x8339ea32, 0xfffff82f}, + {0x8339ea33, 0xfffff830}, + {0x8339ea34, 0xfffff831}, + {0x8339ea35, 0xfffff832}, + {0x8339ea36, 0xfffff833}, + {0x8339ea37, 0xfffff834}, + {0x8339ea38, 0xfffff835}, + {0x8339ea39, 0xfffff836}, + {0x8339eb30, 0xfffff837}, + {0x8339eb31, 0xfffff838}, + {0x8339eb32, 0xfffff839}, + {0x8339eb33, 0xfffff83a}, + {0x8339eb34, 0xfffff83b}, + {0x8339eb35, 0xfffff83c}, + {0x8339eb36, 0xfffff83d}, + {0x8339eb37, 0xfffff83e}, + {0x8339eb38, 0xfffff83f}, + {0x8339eb39, 0xfffff840}, + {0x8339ec30, 0xfffff841}, + {0x8339ec31, 0xfffff842}, + {0x8339ec32, 0xfffff843}, + {0x8339ec33, 0xfffff844}, + {0x8339ec34, 0xfffff845}, + {0x8339ec35, 0xfffff846}, + {0x8339ec36, 0xfffff847}, + {0x8339ec37, 0xfffff848}, + {0x8339ec38, 0xfffff849}, + {0x8339ec39, 0xfffff84a}, + {0x8339ed30, 0xfffff84b}, + {0x8339ed31, 0xfffff84c}, + {0x8339ed32, 0xfffff84d}, + {0x8339ed33, 0xfffff84e}, + {0x8339ed34, 0xfffff84f}, + {0x8339ed35, 0xfffff850}, + {0x8339ed36, 0xfffff851}, + {0x8339ed37, 0xfffff852}, + {0x8339ed38, 0xfffff853}, + {0x8339ed39, 0xfffff854}, + {0x8339ee30, 0xfffff855}, + {0x8339ee31, 0xfffff856}, + {0x8339ee32, 0xfffff857}, + {0x8339ee33, 0xfffff858}, + {0x8339ee34, 0xfffff859}, + {0x8339ee35, 0xfffff85a}, + {0x8339ee36, 0xfffff85b}, + {0x8339ee37, 0xfffff85c}, + {0x8339ee38, 0xfffff85d}, + {0x8339ee39, 0xfffff85e}, + {0x8339ef30, 0xfffff85f}, + {0x8339ef31, 0xfffff860}, + {0x8339ef32, 0xfffff861}, + {0x8339ef33, 0xfffff862}, + {0x8339ef34, 0xfffff863}, + {0x8339ef35, 0xfffff864}, + {0x8339ef36, 0xfffff865}, + {0x8339ef37, 0xfffff866}, + {0x8339ef38, 0xfffff867}, + {0x8339ef39, 0xfffff868}, + {0x8339f030, 0xfffff869}, + {0x8339f031, 0xfffff86a}, + {0x8339f032, 0xfffff86b}, + {0x8339f033, 0xfffff86c}, + {0x8339f034, 0xfffff86d}, + {0x8339f035, 0xfffff86e}, + {0x8339f036, 0xfffff86f}, + {0x8339f037, 0xfffff870}, + {0x8339f038, 0xfffff871}, + {0x8339f039, 0xfffff872}, + {0x8339f130, 0xfffff873}, + {0x8339f131, 0xfffff874}, + {0x8339f132, 0xfffff875}, + {0x8339f133, 0xfffff876}, + {0x8339f134, 0xfffff877}, + {0x8339f135, 0xfffff878}, + {0x8339f136, 0xfffff879}, + {0x8339f137, 0xfffff87a}, + {0x8339f138, 0xfffff87b}, + {0x8339f139, 0xfffff87c}, + {0x8339f230, 0xfffff87d}, + {0x8339f231, 0xfffff87e}, + {0x8339f232, 0xfffff87f}, + {0x8339f233, 0xfffff880}, + {0x8339f234, 0xfffff881}, + {0x8339f235, 0xfffff882}, + {0x8339f236, 0xfffff883}, + {0x8339f237, 0xfffff884}, + {0x8339f238, 0xfffff885}, + {0x8339f239, 0xfffff886}, + {0x8339f330, 0xfffff887}, + {0x8339f331, 0xfffff888}, + {0x8339f332, 0xfffff889}, + {0x8339f333, 0xfffff88a}, + {0x8339f334, 0xfffff88b}, + {0x8339f335, 0xfffff88c}, + {0x8339f336, 0xfffff88d}, + {0x8339f337, 0xfffff88e}, + {0x8339f338, 0xfffff88f}, + {0x8339f339, 0xfffff890}, + {0x8339f430, 0xfffff891}, + {0x8339f431, 0xfffff892}, + {0x8339f432, 0xfffff893}, + {0x8339f433, 0xfffff894}, + {0x8339f434, 0xfffff895}, + {0x8339f435, 0xfffff896}, + {0x8339f436, 0xfffff897}, + {0x8339f437, 0xfffff898}, + {0x8339f438, 0xfffff899}, + {0x8339f439, 0xfffff89a}, + {0x8339f530, 0xfffff89b}, + {0x8339f531, 0xfffff89c}, + {0x8339f532, 0xfffff89d}, + {0x8339f533, 0xfffff89e}, + {0x8339f534, 0xfffff89f}, + {0x8339f535, 0xfffff8a0}, + {0x8339f536, 0xfffff8a1}, + {0x8339f537, 0xfffff8a2}, + {0x8339f538, 0xfffff8a3}, + {0x8339f539, 0xfffff8a4}, + {0x8339f630, 0xfffff8a5}, + {0x8339f631, 0xfffff8a6}, + {0x8339f632, 0xfffff8a7}, + {0x8339f633, 0xfffff8a8}, + {0x8339f634, 0xfffff8a9}, + {0x8339f635, 0xfffff8aa}, + {0x8339f636, 0xfffff8ab}, + {0x8339f637, 0xfffff8ac}, + {0x8339f638, 0xfffff8ad}, + {0x8339f639, 0xfffff8ae}, + {0x8339f730, 0xfffff8af}, + {0x8339f731, 0xfffff8b0}, + {0x8339f732, 0xfffff8b1}, + {0x8339f733, 0xfffff8b2}, + {0x8339f734, 0xfffff8b3}, + {0x8339f735, 0xfffff8b4}, + {0x8339f736, 0xfffff8b5}, + {0x8339f737, 0xfffff8b6}, + {0x8339f738, 0xfffff8b7}, + {0x8339f739, 0xfffff8b8}, + {0x8339f830, 0xfffff8b9}, + {0x8339f831, 0xfffff8ba}, + {0x8339f832, 0xfffff8bb}, + {0x8339f833, 0xfffff8bc}, + {0x8339f834, 0xfffff8bd}, + {0x8339f835, 0xfffff8be}, + {0x8339f836, 0xfffff8bf}, + {0x8339f837, 0xfffff8c0}, + {0x8339f838, 0xfffff8c1}, + {0x8339f839, 0xfffff8c2}, + {0x8339f930, 0xfffff8c3}, + {0x8339f931, 0xfffff8c4}, + {0x8339f932, 0xfffff8c5}, + {0x8339f933, 0xfffff8c6}, + {0x8339f934, 0xfffff8c7}, + {0x8339f935, 0xfffff8c8}, + {0x8339f936, 0xfffff8c9}, + {0x8339f937, 0xfffff8ca}, + {0x8339f938, 0xfffff8cb}, + {0x8339f939, 0xfffff8cc}, + {0x8339fa30, 0xfffff8cd}, + {0x8339fa31, 0xfffff8ce}, + {0x8339fa32, 0xfffff8cf}, + {0x8339fa33, 0xfffff8d0}, + {0x8339fa34, 0xfffff8d1}, + {0x8339fa35, 0xfffff8d2}, + {0x8339fa36, 0xfffff8d3}, + {0x8339fa37, 0xfffff8d4}, + {0x8339fa38, 0xfffff8d5}, + {0x8339fa39, 0xfffff8d6}, + {0x8339fb30, 0xfffff8d7}, + {0x8339fb31, 0xfffff8d8}, + {0x8339fb32, 0xfffff8d9}, + {0x8339fb33, 0xfffff8da}, + {0x8339fb34, 0xfffff8db}, + {0x8339fb35, 0xfffff8dc}, + {0x8339fb36, 0xfffff8dd}, + {0x8339fb37, 0xfffff8de}, + {0x8339fb38, 0xfffff8df}, + {0x8339fb39, 0xfffff8e0}, + {0x8339fc30, 0xfffff8e1}, + {0x8339fc31, 0xfffff8e2}, + {0x8339fc32, 0xfffff8e3}, + {0x8339fc33, 0xfffff8e4}, + {0x8339fc34, 0xfffff8e5}, + {0x8339fc35, 0xfffff8e6}, + {0x8339fc36, 0xfffff8e7}, + {0x8339fc37, 0xfffff8e8}, + {0x8339fc38, 0xfffff8e9}, + {0x8339fc39, 0xfffff8ea}, + {0x8339fd30, 0xfffff8eb}, + {0x8339fd31, 0xfffff8ec}, + {0x8339fd32, 0xfffff8ed}, + {0x8339fd33, 0xfffff8ee}, + {0x8339fd34, 0xfffff8ef}, + {0x8339fd35, 0xfffff8f0}, + {0x8339fd36, 0xfffff8f1}, + {0x8339fd37, 0xfffff8f2}, + {0x8339fd38, 0xfffff8f3}, + {0x8339fd39, 0xfffff8f4}, + {0x8339fe30, 0xfffff8f5}, + {0x8339fe31, 0xfffff8f6}, + {0x8339fe32, 0xfffff8f7}, + {0x8339fe33, 0xfffff8f8}, + {0x8339fe34, 0xfffff8f9}, + {0x8339fe35, 0xfffff8fa}, + {0x8339fe36, 0xfffff8fb}, + {0x8339fe37, 0xfffff8fc}, + {0x8339fe38, 0xfffff8fd}, + {0x8339fe39, 0xfffff8fe}, + {0x84308130, 0xfffff8ff}, + {0x84308131, 0xfffff900}, + {0x84308132, 0xfffff901}, + {0x84308133, 0xfffff902}, + {0x84308134, 0xfffff903}, + {0x84308135, 0xfffff904}, + {0x84308136, 0xfffff905}, + {0x84308137, 0xfffff906}, + {0x84308138, 0xfffff907}, + {0x84308139, 0xfffff908}, + {0x84308230, 0xfffff909}, + {0x84308231, 0xfffff90a}, + {0x84308232, 0xfffff90b}, + {0x84308233, 0xfffff90c}, + {0x84308234, 0xfffff90d}, + {0x84308235, 0xfffff90e}, + {0x84308236, 0xfffff90f}, + {0x84308237, 0xfffff910}, + {0x84308238, 0xfffff911}, + {0x84308239, 0xfffff912}, + {0x84308330, 0xfffff913}, + {0x84308331, 0xfffff914}, + {0x84308332, 0xfffff915}, + {0x84308333, 0xfffff916}, + {0x84308334, 0xfffff917}, + {0x84308335, 0xfffff918}, + {0x84308336, 0xfffff919}, + {0x84308337, 0xfffff91a}, + {0x84308338, 0xfffff91b}, + {0x84308339, 0xfffff91c}, + {0x84308430, 0xfffff91d}, + {0x84308431, 0xfffff91e}, + {0x84308432, 0xfffff91f}, + {0x84308433, 0xfffff920}, + {0x84308434, 0xfffff921}, + {0x84308435, 0xfffff922}, + {0x84308436, 0xfffff923}, + {0x84308437, 0xfffff924}, + {0x84308438, 0xfffff925}, + {0x84308439, 0xfffff926}, + {0x84308530, 0xfffff927}, + {0x84308531, 0xfffff928}, + {0x84308532, 0xfffff929}, + {0x84308533, 0xfffff92a}, + {0x84308534, 0xfffff92b}, + {0x84308535, 0xfffff92d}, + {0x84308536, 0xfffff92e}, + {0x84308537, 0xfffff92f}, + {0x84308538, 0xfffff930}, + {0x84308539, 0xfffff931}, + {0x84308630, 0xfffff932}, + {0x84308631, 0xfffff933}, + {0x84308632, 0xfffff934}, + {0x84308633, 0xfffff935}, + {0x84308634, 0xfffff936}, + {0x84308635, 0xfffff937}, + {0x84308636, 0xfffff938}, + {0x84308637, 0xfffff939}, + {0x84308638, 0xfffff93a}, + {0x84308639, 0xfffff93b}, + {0x84308730, 0xfffff93c}, + {0x84308731, 0xfffff93d}, + {0x84308732, 0xfffff93e}, + {0x84308733, 0xfffff93f}, + {0x84308734, 0xfffff940}, + {0x84308735, 0xfffff941}, + {0x84308736, 0xfffff942}, + {0x84308737, 0xfffff943}, + {0x84308738, 0xfffff944}, + {0x84308739, 0xfffff945}, + {0x84308830, 0xfffff946}, + {0x84308831, 0xfffff947}, + {0x84308832, 0xfffff948}, + {0x84308833, 0xfffff949}, + {0x84308834, 0xfffff94a}, + {0x84308835, 0xfffff94b}, + {0x84308836, 0xfffff94c}, + {0x84308837, 0xfffff94d}, + {0x84308838, 0xfffff94e}, + {0x84308839, 0xfffff94f}, + {0x84308930, 0xfffff950}, + {0x84308931, 0xfffff951}, + {0x84308932, 0xfffff952}, + {0x84308933, 0xfffff953}, + {0x84308934, 0xfffff954}, + {0x84308935, 0xfffff955}, + {0x84308936, 0xfffff956}, + {0x84308937, 0xfffff957}, + {0x84308938, 0xfffff958}, + {0x84308939, 0xfffff959}, + {0x84308a30, 0xfffff95a}, + {0x84308a31, 0xfffff95b}, + {0x84308a32, 0xfffff95c}, + {0x84308a33, 0xfffff95d}, + {0x84308a34, 0xfffff95e}, + {0x84308a35, 0xfffff95f}, + {0x84308a36, 0xfffff960}, + {0x84308a37, 0xfffff961}, + {0x84308a38, 0xfffff962}, + {0x84308a39, 0xfffff963}, + {0x84308b30, 0xfffff964}, + {0x84308b31, 0xfffff965}, + {0x84308b32, 0xfffff966}, + {0x84308b33, 0xfffff967}, + {0x84308b34, 0xfffff968}, + {0x84308b35, 0xfffff969}, + {0x84308b36, 0xfffff96a}, + {0x84308b37, 0xfffff96b}, + {0x84308b38, 0xfffff96c}, + {0x84308b39, 0xfffff96d}, + {0x84308c30, 0xfffff96e}, + {0x84308c31, 0xfffff96f}, + {0x84308c32, 0xfffff970}, + {0x84308c33, 0xfffff971}, + {0x84308c34, 0xfffff972}, + {0x84308c35, 0xfffff973}, + {0x84308c36, 0xfffff974}, + {0x84308c37, 0xfffff975}, + {0x84308c38, 0xfffff976}, + {0x84308c39, 0xfffff977}, + {0x84308d30, 0xfffff978}, + {0x84308d31, 0xfffff97a}, + {0x84308d32, 0xfffff97b}, + {0x84308d33, 0xfffff97c}, + {0x84308d34, 0xfffff97d}, + {0x84308d35, 0xfffff97e}, + {0x84308d36, 0xfffff97f}, + {0x84308d37, 0xfffff980}, + {0x84308d38, 0xfffff981}, + {0x84308d39, 0xfffff982}, + {0x84308e30, 0xfffff983}, + {0x84308e31, 0xfffff984}, + {0x84308e32, 0xfffff985}, + {0x84308e33, 0xfffff986}, + {0x84308e34, 0xfffff987}, + {0x84308e35, 0xfffff988}, + {0x84308e36, 0xfffff989}, + {0x84308e37, 0xfffff98a}, + {0x84308e38, 0xfffff98b}, + {0x84308e39, 0xfffff98c}, + {0x84308f30, 0xfffff98d}, + {0x84308f31, 0xfffff98e}, + {0x84308f32, 0xfffff98f}, + {0x84308f33, 0xfffff990}, + {0x84308f34, 0xfffff991}, + {0x84308f35, 0xfffff992}, + {0x84308f36, 0xfffff993}, + {0x84308f37, 0xfffff994}, + {0x84308f38, 0xfffff996}, + {0x84308f39, 0xfffff997}, + {0x84309030, 0xfffff998}, + {0x84309031, 0xfffff999}, + {0x84309032, 0xfffff99a}, + {0x84309033, 0xfffff99b}, + {0x84309034, 0xfffff99c}, + {0x84309035, 0xfffff99d}, + {0x84309036, 0xfffff99e}, + {0x84309037, 0xfffff99f}, + {0x84309038, 0xfffff9a0}, + {0x84309039, 0xfffff9a1}, + {0x84309130, 0xfffff9a2}, + {0x84309131, 0xfffff9a3}, + {0x84309132, 0xfffff9a4}, + {0x84309133, 0xfffff9a5}, + {0x84309134, 0xfffff9a6}, + {0x84309135, 0xfffff9a7}, + {0x84309136, 0xfffff9a8}, + {0x84309137, 0xfffff9a9}, + {0x84309138, 0xfffff9aa}, + {0x84309139, 0xfffff9ab}, + {0x84309230, 0xfffff9ac}, + {0x84309231, 0xfffff9ad}, + {0x84309232, 0xfffff9ae}, + {0x84309233, 0xfffff9af}, + {0x84309234, 0xfffff9b0}, + {0x84309235, 0xfffff9b1}, + {0x84309236, 0xfffff9b2}, + {0x84309237, 0xfffff9b3}, + {0x84309238, 0xfffff9b4}, + {0x84309239, 0xfffff9b5}, + {0x84309330, 0xfffff9b6}, + {0x84309331, 0xfffff9b7}, + {0x84309332, 0xfffff9b8}, + {0x84309333, 0xfffff9b9}, + {0x84309334, 0xfffff9ba}, + {0x84309335, 0xfffff9bb}, + {0x84309336, 0xfffff9bc}, + {0x84309337, 0xfffff9bd}, + {0x84309338, 0xfffff9be}, + {0x84309339, 0xfffff9bf}, + {0x84309430, 0xfffff9c0}, + {0x84309431, 0xfffff9c1}, + {0x84309432, 0xfffff9c2}, + {0x84309433, 0xfffff9c3}, + {0x84309434, 0xfffff9c4}, + {0x84309435, 0xfffff9c5}, + {0x84309436, 0xfffff9c6}, + {0x84309437, 0xfffff9c7}, + {0x84309438, 0xfffff9c8}, + {0x84309439, 0xfffff9c9}, + {0x84309530, 0xfffff9ca}, + {0x84309531, 0xfffff9cb}, + {0x84309532, 0xfffff9cc}, + {0x84309533, 0xfffff9cd}, + {0x84309534, 0xfffff9ce}, + {0x84309535, 0xfffff9cf}, + {0x84309536, 0xfffff9d0}, + {0x84309537, 0xfffff9d1}, + {0x84309538, 0xfffff9d2}, + {0x84309539, 0xfffff9d3}, + {0x84309630, 0xfffff9d4}, + {0x84309631, 0xfffff9d5}, + {0x84309632, 0xfffff9d6}, + {0x84309633, 0xfffff9d7}, + {0x84309634, 0xfffff9d8}, + {0x84309635, 0xfffff9d9}, + {0x84309636, 0xfffff9da}, + {0x84309637, 0xfffff9db}, + {0x84309638, 0xfffff9dc}, + {0x84309639, 0xfffff9dd}, + {0x84309730, 0xfffff9de}, + {0x84309731, 0xfffff9df}, + {0x84309732, 0xfffff9e0}, + {0x84309733, 0xfffff9e1}, + {0x84309734, 0xfffff9e2}, + {0x84309735, 0xfffff9e3}, + {0x84309736, 0xfffff9e4}, + {0x84309737, 0xfffff9e5}, + {0x84309738, 0xfffff9e6}, + {0x84309739, 0xfffff9e8}, + {0x84309830, 0xfffff9e9}, + {0x84309831, 0xfffff9ea}, + {0x84309832, 0xfffff9eb}, + {0x84309833, 0xfffff9ec}, + {0x84309834, 0xfffff9ed}, + {0x84309835, 0xfffff9ee}, + {0x84309836, 0xfffff9ef}, + {0x84309837, 0xfffff9f0}, + {0x84309838, 0xfffff9f2}, + {0x84309839, 0xfffff9f3}, + {0x84309930, 0xfffff9f4}, + {0x84309931, 0xfffff9f5}, + {0x84309932, 0xfffff9f6}, + {0x84309933, 0xfffff9f7}, + {0x84309934, 0xfffff9f8}, + {0x84309935, 0xfffff9f9}, + {0x84309936, 0xfffff9fa}, + {0x84309937, 0xfffff9fb}, + {0x84309938, 0xfffff9fc}, + {0x84309939, 0xfffff9fd}, + {0x84309a30, 0xfffff9fe}, + {0x84309a31, 0xfffff9ff}, + {0x84309a32, 0xfffffa00}, + {0x84309a33, 0xfffffa01}, + {0x84309a34, 0xfffffa02}, + {0x84309a35, 0xfffffa03}, + {0x84309a36, 0xfffffa04}, + {0x84309a37, 0xfffffa05}, + {0x84309a38, 0xfffffa06}, + {0x84309a39, 0xfffffa07}, + {0x84309b30, 0xfffffa08}, + {0x84309b31, 0xfffffa09}, + {0x84309b32, 0xfffffa0a}, + {0x84309b33, 0xfffffa0b}, + {0x84309b34, 0xfffffa10}, + {0x84309b35, 0xfffffa12}, + {0x84309b36, 0xfffffa15}, + {0x84309b37, 0xfffffa16}, + {0x84309b38, 0xfffffa17}, + {0x84309b39, 0xfffffa19}, + {0x84309c30, 0xfffffa1a}, + {0x84309c31, 0xfffffa1b}, + {0x84309c32, 0xfffffa1c}, + {0x84309c33, 0xfffffa1d}, + {0x84309c34, 0xfffffa1e}, + {0x84309c35, 0xfffffa22}, + {0x84309c36, 0xfffffa25}, + {0x84309c37, 0xfffffa26}, + {0x84309c38, 0xfffffa2a}, + {0x84309c39, 0xfffffa2b}, + {0x84309d30, 0xfffffa2c}, + {0x84309d31, 0xfffffa2d}, + {0x84309d32, 0xfffffa2e}, + {0x84309d33, 0xfffffa2f}, + {0x84309d34, 0xfffffa30}, + {0x84309d35, 0xfffffa31}, + {0x84309d36, 0xfffffa32}, + {0x84309d37, 0xfffffa33}, + {0x84309d38, 0xfffffa34}, + {0x84309d39, 0xfffffa35}, + {0x84309e30, 0xfffffa36}, + {0x84309e31, 0xfffffa37}, + {0x84309e32, 0xfffffa38}, + {0x84309e33, 0xfffffa39}, + {0x84309e34, 0xfffffa3a}, + {0x84309e35, 0xfffffa3b}, + {0x84309e36, 0xfffffa3c}, + {0x84309e37, 0xfffffa3d}, + {0x84309e38, 0xfffffa3e}, + {0x84309e39, 0xfffffa3f}, + {0x84309f30, 0xfffffa40}, + {0x84309f31, 0xfffffa41}, + {0x84309f32, 0xfffffa42}, + {0x84309f33, 0xfffffa43}, + {0x84309f34, 0xfffffa44}, + {0x84309f35, 0xfffffa45}, + {0x84309f36, 0xfffffa46}, + {0x84309f37, 0xfffffa47}, + {0x84309f38, 0xfffffa48}, + {0x84309f39, 0xfffffa49}, + {0x8430a030, 0xfffffa4a}, + {0x8430a031, 0xfffffa4b}, + {0x8430a032, 0xfffffa4c}, + {0x8430a033, 0xfffffa4d}, + {0x8430a034, 0xfffffa4e}, + {0x8430a035, 0xfffffa4f}, + {0x8430a036, 0xfffffa50}, + {0x8430a037, 0xfffffa51}, + {0x8430a038, 0xfffffa52}, + {0x8430a039, 0xfffffa53}, + {0x8430a130, 0xfffffa54}, + {0x8430a131, 0xfffffa55}, + {0x8430a132, 0xfffffa56}, + {0x8430a133, 0xfffffa57}, + {0x8430a134, 0xfffffa58}, + {0x8430a135, 0xfffffa59}, + {0x8430a136, 0xfffffa5a}, + {0x8430a137, 0xfffffa5b}, + {0x8430a138, 0xfffffa5c}, + {0x8430a139, 0xfffffa5d}, + {0x8430a230, 0xfffffa5e}, + {0x8430a231, 0xfffffa5f}, + {0x8430a232, 0xfffffa60}, + {0x8430a233, 0xfffffa61}, + {0x8430a234, 0xfffffa62}, + {0x8430a235, 0xfffffa63}, + {0x8430a236, 0xfffffa64}, + {0x8430a237, 0xfffffa65}, + {0x8430a238, 0xfffffa66}, + {0x8430a239, 0xfffffa67}, + {0x8430a330, 0xfffffa68}, + {0x8430a331, 0xfffffa69}, + {0x8430a332, 0xfffffa6a}, + {0x8430a333, 0xfffffa6b}, + {0x8430a334, 0xfffffa6c}, + {0x8430a335, 0xfffffa6d}, + {0x8430a336, 0xfffffa6e}, + {0x8430a337, 0xfffffa6f}, + {0x8430a338, 0xfffffa70}, + {0x8430a339, 0xfffffa71}, + {0x8430a430, 0xfffffa72}, + {0x8430a431, 0xfffffa73}, + {0x8430a432, 0xfffffa74}, + {0x8430a433, 0xfffffa75}, + {0x8430a434, 0xfffffa76}, + {0x8430a435, 0xfffffa77}, + {0x8430a436, 0xfffffa78}, + {0x8430a437, 0xfffffa79}, + {0x8430a438, 0xfffffa7a}, + {0x8430a439, 0xfffffa7b}, + {0x8430a530, 0xfffffa7c}, + {0x8430a531, 0xfffffa7d}, + {0x8430a532, 0xfffffa7e}, + {0x8430a533, 0xfffffa7f}, + {0x8430a534, 0xfffffa80}, + {0x8430a535, 0xfffffa81}, + {0x8430a536, 0xfffffa82}, + {0x8430a537, 0xfffffa83}, + {0x8430a538, 0xfffffa84}, + {0x8430a539, 0xfffffa85}, + {0x8430a630, 0xfffffa86}, + {0x8430a631, 0xfffffa87}, + {0x8430a632, 0xfffffa88}, + {0x8430a633, 0xfffffa89}, + {0x8430a634, 0xfffffa8a}, + {0x8430a635, 0xfffffa8b}, + {0x8430a636, 0xfffffa8c}, + {0x8430a637, 0xfffffa8d}, + {0x8430a638, 0xfffffa8e}, + {0x8430a639, 0xfffffa8f}, + {0x8430a730, 0xfffffa90}, + {0x8430a731, 0xfffffa91}, + {0x8430a732, 0xfffffa92}, + {0x8430a733, 0xfffffa93}, + {0x8430a734, 0xfffffa94}, + {0x8430a735, 0xfffffa95}, + {0x8430a736, 0xfffffa96}, + {0x8430a737, 0xfffffa97}, + {0x8430a738, 0xfffffa98}, + {0x8430a739, 0xfffffa99}, + {0x8430a830, 0xfffffa9a}, + {0x8430a831, 0xfffffa9b}, + {0x8430a832, 0xfffffa9c}, + {0x8430a833, 0xfffffa9d}, + {0x8430a834, 0xfffffa9e}, + {0x8430a835, 0xfffffa9f}, + {0x8430a836, 0xfffffaa0}, + {0x8430a837, 0xfffffaa1}, + {0x8430a838, 0xfffffaa2}, + {0x8430a839, 0xfffffaa3}, + {0x8430a930, 0xfffffaa4}, + {0x8430a931, 0xfffffaa5}, + {0x8430a932, 0xfffffaa6}, + {0x8430a933, 0xfffffaa7}, + {0x8430a934, 0xfffffaa8}, + {0x8430a935, 0xfffffaa9}, + {0x8430a936, 0xfffffaaa}, + {0x8430a937, 0xfffffaab}, + {0x8430a938, 0xfffffaac}, + {0x8430a939, 0xfffffaad}, + {0x8430aa30, 0xfffffaae}, + {0x8430aa31, 0xfffffaaf}, + {0x8430aa32, 0xfffffab0}, + {0x8430aa33, 0xfffffab1}, + {0x8430aa34, 0xfffffab2}, + {0x8430aa35, 0xfffffab3}, + {0x8430aa36, 0xfffffab4}, + {0x8430aa37, 0xfffffab5}, + {0x8430aa38, 0xfffffab6}, + {0x8430aa39, 0xfffffab7}, + {0x8430ab30, 0xfffffab8}, + {0x8430ab31, 0xfffffab9}, + {0x8430ab32, 0xfffffaba}, + {0x8430ab33, 0xfffffabb}, + {0x8430ab34, 0xfffffabc}, + {0x8430ab35, 0xfffffabd}, + {0x8430ab36, 0xfffffabe}, + {0x8430ab37, 0xfffffabf}, + {0x8430ab38, 0xfffffac0}, + {0x8430ab39, 0xfffffac1}, + {0x8430ac30, 0xfffffac2}, + {0x8430ac31, 0xfffffac3}, + {0x8430ac32, 0xfffffac4}, + {0x8430ac33, 0xfffffac5}, + {0x8430ac34, 0xfffffac6}, + {0x8430ac35, 0xfffffac7}, + {0x8430ac36, 0xfffffac8}, + {0x8430ac37, 0xfffffac9}, + {0x8430ac38, 0xfffffaca}, + {0x8430ac39, 0xfffffacb}, + {0x8430ad30, 0xfffffacc}, + {0x8430ad31, 0xfffffacd}, + {0x8430ad32, 0xffffface}, + {0x8430ad33, 0xfffffacf}, + {0x8430ad34, 0xfffffad0}, + {0x8430ad35, 0xfffffad1}, + {0x8430ad36, 0xfffffad2}, + {0x8430ad37, 0xfffffad3}, + {0x8430ad38, 0xfffffad4}, + {0x8430ad39, 0xfffffad5}, + {0x8430ae30, 0xfffffad6}, + {0x8430ae31, 0xfffffad7}, + {0x8430ae32, 0xfffffad8}, + {0x8430ae33, 0xfffffad9}, + {0x8430ae34, 0xfffffada}, + {0x8430ae35, 0xfffffadb}, + {0x8430ae36, 0xfffffadc}, + {0x8430ae37, 0xfffffadd}, + {0x8430ae38, 0xfffffade}, + {0x8430ae39, 0xfffffadf}, + {0x8430af30, 0xfffffae0}, + {0x8430af31, 0xfffffae1}, + {0x8430af32, 0xfffffae2}, + {0x8430af33, 0xfffffae3}, + {0x8430af34, 0xfffffae4}, + {0x8430af35, 0xfffffae5}, + {0x8430af36, 0xfffffae6}, + {0x8430af37, 0xfffffae7}, + {0x8430af38, 0xfffffae8}, + {0x8430af39, 0xfffffae9}, + {0x8430b030, 0xfffffaea}, + {0x8430b031, 0xfffffaeb}, + {0x8430b032, 0xfffffaec}, + {0x8430b033, 0xfffffaed}, + {0x8430b034, 0xfffffaee}, + {0x8430b035, 0xfffffaef}, + {0x8430b036, 0xfffffaf0}, + {0x8430b037, 0xfffffaf1}, + {0x8430b038, 0xfffffaf2}, + {0x8430b039, 0xfffffaf3}, + {0x8430b130, 0xfffffaf4}, + {0x8430b131, 0xfffffaf5}, + {0x8430b132, 0xfffffaf6}, + {0x8430b133, 0xfffffaf7}, + {0x8430b134, 0xfffffaf8}, + {0x8430b135, 0xfffffaf9}, + {0x8430b136, 0xfffffafa}, + {0x8430b137, 0xfffffafb}, + {0x8430b138, 0xfffffafc}, + {0x8430b139, 0xfffffafd}, + {0x8430b230, 0xfffffafe}, + {0x8430b231, 0xfffffaff}, + {0x8430b232, 0x02090209}, + {0x8430b233, 0x0209021b}, + {0x8430b234, 0x02090226}, + {0x8430b237, 0x024f0255}, + {0x8430b239, 0xfffffb07}, + {0x8430b330, 0xfffffb08}, + {0x8430b331, 0xfffffb09}, + {0x8430b332, 0xfffffb0a}, + {0x8430b333, 0xfffffb0b}, + {0x8430b334, 0xfffffb0c}, + {0x8430b335, 0xfffffb0d}, + {0x8430b336, 0xfffffb0e}, + {0x8430b337, 0xfffffb0f}, + {0x8430b338, 0xfffffb10}, + {0x8430b339, 0xfffffb11}, + {0x8430b430, 0xfffffb12}, + {0x8430b431, 0x041b041d}, + {0x8430b432, 0x041b040c}, + {0x8430b433, 0x041b0412}, + {0x8430b434, 0x0425041d}, + {0x8430b435, 0x041b0414}, + {0x8430b436, 0xfffffb18}, + {0x8430b437, 0xfffffb19}, + {0x8430b438, 0xfffffb1a}, + {0x8430b439, 0xfffffb1b}, + {0x8430b530, 0xfffffb1c}, + {0x8430b531, 0xfffffb1d}, + {0x8430b533, 0xfffffb1f}, + {0x8430b534, 0xfffffb20}, + {0x8430b535, 0xfffffb21}, + {0x8430b536, 0xfffffb22}, + {0x8430b537, 0xfffffb23}, + {0x8430b538, 0xfffffb24}, + {0x8430b539, 0xfffffb25}, + {0x8430b630, 0xfffffb26}, + {0x8430b631, 0xfffffb27}, + {0x8430b632, 0xfffffb28}, + {0x8430b633, 0xfffffb29}, + {0x8430b634, 0xfffffb2a}, + {0x8430b635, 0xfffffb2b}, + {0x8430b636, 0xfffffb2c}, + {0x8430b637, 0xfffffb2d}, + {0x8430b638, 0xfffffb2e}, + {0x8430b639, 0xfffffb2f}, + {0x8430b730, 0xfffffb30}, + {0x8430b731, 0xfffffb31}, + {0x8430b732, 0xfffffb32}, + {0x8430b733, 0xfffffb33}, + {0x8430b734, 0xfffffb34}, + {0x8430b735, 0xfffffb35}, + {0x8430b736, 0xfffffb36}, + {0x8430b737, 0xfffffb37}, + {0x8430b738, 0xfffffb38}, + {0x8430b739, 0xfffffb39}, + {0x8430b830, 0xfffffb3a}, + {0x8430b831, 0xfffffb3b}, + {0x8430b832, 0xfffffb3c}, + {0x8430b833, 0xfffffb3d}, + {0x8430b834, 0xfffffb3e}, + {0x8430b835, 0xfffffb3f}, + {0x8430b836, 0xfffffb40}, + {0x8430b837, 0xfffffb41}, + {0x8430b838, 0xfffffb42}, + {0x8430b839, 0xfffffb43}, + {0x8430b930, 0xfffffb44}, + {0x8430b931, 0xfffffb45}, + {0x8430b932, 0xfffffb46}, + {0x8430b933, 0xfffffb47}, + {0x8430b934, 0xfffffb48}, + {0x8430b935, 0xfffffb49}, + {0x8430b936, 0xfffffb4a}, + {0x8430b937, 0xfffffb4b}, + {0x8430b938, 0xfffffb4c}, + {0x8430b939, 0xfffffb4d}, + {0x8430ba30, 0xfffffb4e}, + {0x8430ba31, 0xfffffb4f}, + {0x8430ba32, 0xfffffb50}, + {0x8430ba33, 0xfffffb51}, + {0x8430ba34, 0xfffffb52}, + {0x8430ba35, 0xfffffb53}, + {0x8430ba36, 0xfffffb54}, + {0x8430ba37, 0xfffffb55}, + {0x8430ba38, 0xfffffb56}, + {0x8430ba39, 0xfffffb57}, + {0x8430bb30, 0xfffffb58}, + {0x8430bb31, 0xfffffb59}, + {0x8430bb32, 0xfffffb5a}, + {0x8430bb33, 0xfffffb5b}, + {0x8430bb34, 0xfffffb5c}, + {0x8430bb35, 0xfffffb5d}, + {0x8430bb36, 0xfffffb5e}, + {0x8430bb37, 0xfffffb5f}, + {0x8430bb38, 0xfffffb60}, + {0x8430bb39, 0xfffffb61}, + {0x8430bc30, 0xfffffb62}, + {0x8430bc31, 0xfffffb63}, + {0x8430bc32, 0xfffffb64}, + {0x8430bc33, 0xfffffb65}, + {0x8430bc34, 0xfffffb66}, + {0x8430bc35, 0xfffffb67}, + {0x8430bc36, 0xfffffb68}, + {0x8430bc37, 0xfffffb69}, + {0x8430bc38, 0xfffffb6a}, + {0x8430bc39, 0xfffffb6b}, + {0x8430bd30, 0xfffffb6c}, + {0x8430bd31, 0xfffffb6d}, + {0x8430bd32, 0xfffffb6e}, + {0x8430bd33, 0xfffffb6f}, + {0x8430bd34, 0xfffffb70}, + {0x8430bd35, 0xfffffb71}, + {0x8430bd36, 0xfffffb72}, + {0x8430bd37, 0xfffffb73}, + {0x8430bd38, 0xfffffb74}, + {0x8430bd39, 0xfffffb75}, + {0x8430be30, 0xfffffb76}, + {0x8430be31, 0xfffffb77}, + {0x8430be32, 0xfffffb78}, + {0x8430be33, 0xfffffb79}, + {0x8430be34, 0xfffffb7a}, + {0x8430be35, 0xfffffb7b}, + {0x8430be36, 0xfffffb7c}, + {0x8430be37, 0xfffffb7d}, + {0x8430be38, 0xfffffb7e}, + {0x8430be39, 0xfffffb7f}, + {0x8430bf30, 0xfffffb80}, + {0x8430bf31, 0xfffffb81}, + {0x8430bf32, 0xfffffb82}, + {0x8430bf33, 0xfffffb83}, + {0x8430bf34, 0xfffffb84}, + {0x8430bf35, 0xfffffb85}, + {0x8430bf36, 0xfffffb86}, + {0x8430bf37, 0xfffffb87}, + {0x8430bf38, 0xfffffb88}, + {0x8430bf39, 0xfffffb89}, + {0x8430c030, 0xfffffb8a}, + {0x8430c031, 0xfffffb8b}, + {0x8430c032, 0xfffffb8c}, + {0x8430c033, 0xfffffb8d}, + {0x8430c034, 0xfffffb8e}, + {0x8430c035, 0xfffffb8f}, + {0x8430c036, 0xfffffb90}, + {0x8430c037, 0xfffffb91}, + {0x8430c038, 0xfffffb92}, + {0x8430c039, 0xfffffb93}, + {0x8430c130, 0xfffffb94}, + {0x8430c131, 0xfffffb95}, + {0x8430c132, 0xfffffb96}, + {0x8430c133, 0xfffffb97}, + {0x8430c134, 0xfffffb98}, + {0x8430c135, 0xfffffb99}, + {0x8430c136, 0xfffffb9a}, + {0x8430c137, 0xfffffb9b}, + {0x8430c138, 0xfffffb9c}, + {0x8430c139, 0xfffffb9d}, + {0x8430c230, 0xfffffb9e}, + {0x8430c231, 0xfffffb9f}, + {0x8430c232, 0xfffffba0}, + {0x8430c233, 0xfffffba1}, + {0x8430c234, 0xfffffba2}, + {0x8430c235, 0xfffffba3}, + {0x8430c236, 0xfffffba4}, + {0x8430c237, 0xfffffba5}, + {0x8430c238, 0xfffffba6}, + {0x8430c239, 0xfffffba7}, + {0x8430c330, 0xfffffba8}, + {0x8430c331, 0xfffffba9}, + {0x8430c332, 0xfffffbaa}, + {0x8430c333, 0xfffffbab}, + {0x8430c334, 0xfffffbac}, + {0x8430c335, 0xfffffbad}, + {0x8430c336, 0xfffffbae}, + {0x8430c337, 0xfffffbaf}, + {0x8430c338, 0xfffffbb0}, + {0x8430c339, 0xfffffbb1}, + {0x8430c430, 0xfffffbb2}, + {0x8430c431, 0xfffffbb3}, + {0x8430c432, 0xfffffbb4}, + {0x8430c433, 0xfffffbb5}, + {0x8430c434, 0xfffffbb6}, + {0x8430c435, 0xfffffbb7}, + {0x8430c436, 0xfffffbb8}, + {0x8430c437, 0xfffffbb9}, + {0x8430c438, 0xfffffbba}, + {0x8430c439, 0xfffffbbb}, + {0x8430c530, 0xfffffbbc}, + {0x8430c531, 0xfffffbbd}, + {0x8430c532, 0xfffffbbe}, + {0x8430c533, 0xfffffbbf}, + {0x8430c534, 0xfffffbc0}, + {0x8430c535, 0xfffffbc1}, + {0x8430c536, 0xfffffbc2}, + {0x8430c537, 0xfffffbc3}, + {0x8430c538, 0xfffffbc4}, + {0x8430c539, 0xfffffbc5}, + {0x8430c630, 0xfffffbc6}, + {0x8430c631, 0xfffffbc7}, + {0x8430c632, 0xfffffbc8}, + {0x8430c633, 0xfffffbc9}, + {0x8430c634, 0xfffffbca}, + {0x8430c635, 0xfffffbcb}, + {0x8430c636, 0xfffffbcc}, + {0x8430c637, 0xfffffbcd}, + {0x8430c638, 0xfffffbce}, + {0x8430c639, 0xfffffbcf}, + {0x8430c730, 0xfffffbd0}, + {0x8430c731, 0xfffffbd1}, + {0x8430c732, 0xfffffbd2}, + {0x8430c733, 0xfffffbd3}, + {0x8430c734, 0xfffffbd4}, + {0x8430c735, 0xfffffbd5}, + {0x8430c736, 0xfffffbd6}, + {0x8430c737, 0xfffffbd7}, + {0x8430c738, 0xfffffbd8}, + {0x8430c739, 0xfffffbd9}, + {0x8430c830, 0xfffffbda}, + {0x8430c831, 0xfffffbdb}, + {0x8430c832, 0xfffffbdc}, + {0x8430c833, 0xfffffbdd}, + {0x8430c834, 0xfffffbde}, + {0x8430c835, 0xfffffbdf}, + {0x8430c836, 0xfffffbe0}, + {0x8430c837, 0xfffffbe1}, + {0x8430c838, 0xfffffbe2}, + {0x8430c839, 0xfffffbe3}, + {0x8430c930, 0xfffffbe4}, + {0x8430c931, 0xfffffbe5}, + {0x8430c932, 0xfffffbe6}, + {0x8430c933, 0xfffffbe7}, + {0x8430c934, 0xfffffbe8}, + {0x8430c935, 0xfffffbe9}, + {0x8430c936, 0xfffffbea}, + {0x8430c937, 0xfffffbeb}, + {0x8430c938, 0xfffffbec}, + {0x8430c939, 0xfffffbed}, + {0x8430ca30, 0xfffffbee}, + {0x8430ca31, 0xfffffbef}, + {0x8430ca32, 0xfffffbf0}, + {0x8430ca33, 0xfffffbf1}, + {0x8430ca34, 0xfffffbf2}, + {0x8430ca35, 0xfffffbf3}, + {0x8430ca36, 0xfffffbf4}, + {0x8430ca37, 0xfffffbf5}, + {0x8430ca38, 0xfffffbf6}, + {0x8430ca39, 0xfffffbf7}, + {0x8430cb30, 0xfffffbf8}, + {0x8430cb31, 0xfffffbf9}, + {0x8430cb32, 0xfffffbfa}, + {0x8430cb33, 0xfffffbfb}, + {0x8430cb34, 0xfffffbfc}, + {0x8430cb35, 0xfffffbfd}, + {0x8430cb36, 0xfffffbfe}, + {0x8430cb37, 0xfffffbff}, + {0x8430cb38, 0xfffffc00}, + {0x8430cb39, 0xfffffc01}, + {0x8430cc30, 0xfffffc02}, + {0x8430cc31, 0xfffffc03}, + {0x8430cc32, 0xfffffc04}, + {0x8430cc33, 0xfffffc05}, + {0x8430cc34, 0xfffffc06}, + {0x8430cc35, 0xfffffc07}, + {0x8430cc36, 0xfffffc08}, + {0x8430cc37, 0xfffffc09}, + {0x8430cc38, 0xfffffc0a}, + {0x8430cc39, 0xfffffc0b}, + {0x8430cd30, 0xfffffc0c}, + {0x8430cd31, 0xfffffc0d}, + {0x8430cd32, 0xfffffc0e}, + {0x8430cd33, 0xfffffc0f}, + {0x8430cd34, 0xfffffc10}, + {0x8430cd35, 0xfffffc11}, + {0x8430cd36, 0xfffffc12}, + {0x8430cd37, 0xfffffc13}, + {0x8430cd38, 0xfffffc14}, + {0x8430cd39, 0xfffffc15}, + {0x8430ce30, 0xfffffc16}, + {0x8430ce31, 0xfffffc17}, + {0x8430ce32, 0xfffffc18}, + {0x8430ce33, 0xfffffc19}, + {0x8430ce34, 0xfffffc1a}, + {0x8430ce35, 0xfffffc1b}, + {0x8430ce36, 0xfffffc1c}, + {0x8430ce37, 0xfffffc1d}, + {0x8430ce38, 0xfffffc1e}, + {0x8430ce39, 0xfffffc1f}, + {0x8430cf30, 0xfffffc20}, + {0x8430cf31, 0xfffffc21}, + {0x8430cf32, 0xfffffc22}, + {0x8430cf33, 0xfffffc23}, + {0x8430cf34, 0xfffffc24}, + {0x8430cf35, 0xfffffc25}, + {0x8430cf36, 0xfffffc26}, + {0x8430cf37, 0xfffffc27}, + {0x8430cf38, 0xfffffc28}, + {0x8430cf39, 0xfffffc29}, + {0x8430d030, 0xfffffc2a}, + {0x8430d031, 0xfffffc2b}, + {0x8430d032, 0xfffffc2c}, + {0x8430d033, 0xfffffc2d}, + {0x8430d034, 0xfffffc2e}, + {0x8430d035, 0xfffffc2f}, + {0x8430d036, 0xfffffc30}, + {0x8430d037, 0xfffffc31}, + {0x8430d038, 0xfffffc32}, + {0x8430d039, 0xfffffc33}, + {0x8430d130, 0xfffffc34}, + {0x8430d131, 0xfffffc35}, + {0x8430d132, 0xfffffc36}, + {0x8430d133, 0xfffffc37}, + {0x8430d134, 0xfffffc38}, + {0x8430d135, 0xfffffc39}, + {0x8430d136, 0xfffffc3a}, + {0x8430d137, 0xfffffc3b}, + {0x8430d138, 0xfffffc3c}, + {0x8430d139, 0xfffffc3d}, + {0x8430d230, 0xfffffc3e}, + {0x8430d231, 0xfffffc3f}, + {0x8430d232, 0xfffffc40}, + {0x8430d233, 0xfffffc41}, + {0x8430d234, 0xfffffc42}, + {0x8430d235, 0xfffffc43}, + {0x8430d236, 0xfffffc44}, + {0x8430d237, 0xfffffc45}, + {0x8430d238, 0xfffffc46}, + {0x8430d239, 0xfffffc47}, + {0x8430d330, 0xfffffc48}, + {0x8430d331, 0xfffffc49}, + {0x8430d332, 0xfffffc4a}, + {0x8430d333, 0xfffffc4b}, + {0x8430d334, 0xfffffc4c}, + {0x8430d335, 0xfffffc4d}, + {0x8430d336, 0xfffffc4e}, + {0x8430d337, 0xfffffc4f}, + {0x8430d338, 0xfffffc50}, + {0x8430d339, 0xfffffc51}, + {0x8430d430, 0xfffffc52}, + {0x8430d431, 0xfffffc53}, + {0x8430d432, 0xfffffc54}, + {0x8430d433, 0xfffffc55}, + {0x8430d434, 0xfffffc56}, + {0x8430d435, 0xfffffc57}, + {0x8430d436, 0xfffffc58}, + {0x8430d437, 0xfffffc59}, + {0x8430d438, 0xfffffc5a}, + {0x8430d439, 0xfffffc5b}, + {0x8430d530, 0xfffffc5c}, + {0x8430d531, 0xfffffc5d}, + {0x8430d532, 0xfffffc5e}, + {0x8430d533, 0xfffffc5f}, + {0x8430d534, 0xfffffc60}, + {0x8430d535, 0xfffffc61}, + {0x8430d536, 0xfffffc62}, + {0x8430d537, 0xfffffc63}, + {0x8430d538, 0xfffffc64}, + {0x8430d539, 0xfffffc65}, + {0x8430d630, 0xfffffc66}, + {0x8430d631, 0xfffffc67}, + {0x8430d632, 0xfffffc68}, + {0x8430d633, 0xfffffc69}, + {0x8430d634, 0xfffffc6a}, + {0x8430d635, 0xfffffc6b}, + {0x8430d636, 0xfffffc6c}, + {0x8430d637, 0xfffffc6d}, + {0x8430d638, 0xfffffc6e}, + {0x8430d639, 0xfffffc6f}, + {0x8430d730, 0xfffffc70}, + {0x8430d731, 0xfffffc71}, + {0x8430d732, 0xfffffc72}, + {0x8430d733, 0xfffffc73}, + {0x8430d734, 0xfffffc74}, + {0x8430d735, 0xfffffc75}, + {0x8430d736, 0xfffffc76}, + {0x8430d737, 0xfffffc77}, + {0x8430d738, 0xfffffc78}, + {0x8430d739, 0xfffffc79}, + {0x8430d830, 0xfffffc7a}, + {0x8430d831, 0xfffffc7b}, + {0x8430d832, 0xfffffc7c}, + {0x8430d833, 0xfffffc7d}, + {0x8430d834, 0xfffffc7e}, + {0x8430d835, 0xfffffc7f}, + {0x8430d836, 0xfffffc80}, + {0x8430d837, 0xfffffc81}, + {0x8430d838, 0xfffffc82}, + {0x8430d839, 0xfffffc83}, + {0x8430d930, 0xfffffc84}, + {0x8430d931, 0xfffffc85}, + {0x8430d932, 0xfffffc86}, + {0x8430d933, 0xfffffc87}, + {0x8430d934, 0xfffffc88}, + {0x8430d935, 0xfffffc89}, + {0x8430d936, 0xfffffc8a}, + {0x8430d937, 0xfffffc8b}, + {0x8430d938, 0xfffffc8c}, + {0x8430d939, 0xfffffc8d}, + {0x8430da30, 0xfffffc8e}, + {0x8430da31, 0xfffffc8f}, + {0x8430da32, 0xfffffc90}, + {0x8430da33, 0xfffffc91}, + {0x8430da34, 0xfffffc92}, + {0x8430da35, 0xfffffc93}, + {0x8430da36, 0xfffffc94}, + {0x8430da37, 0xfffffc95}, + {0x8430da38, 0xfffffc96}, + {0x8430da39, 0xfffffc97}, + {0x8430db30, 0xfffffc98}, + {0x8430db31, 0xfffffc99}, + {0x8430db32, 0xfffffc9a}, + {0x8430db33, 0xfffffc9b}, + {0x8430db34, 0xfffffc9c}, + {0x8430db35, 0xfffffc9d}, + {0x8430db36, 0xfffffc9e}, + {0x8430db37, 0xfffffc9f}, + {0x8430db38, 0xfffffca0}, + {0x8430db39, 0xfffffca1}, + {0x8430dc30, 0xfffffca2}, + {0x8430dc31, 0xfffffca3}, + {0x8430dc32, 0xfffffca4}, + {0x8430dc33, 0xfffffca5}, + {0x8430dc34, 0xfffffca6}, + {0x8430dc35, 0xfffffca7}, + {0x8430dc36, 0xfffffca8}, + {0x8430dc37, 0xfffffca9}, + {0x8430dc38, 0xfffffcaa}, + {0x8430dc39, 0xfffffcab}, + {0x8430dd30, 0xfffffcac}, + {0x8430dd31, 0xfffffcad}, + {0x8430dd32, 0xfffffcae}, + {0x8430dd33, 0xfffffcaf}, + {0x8430dd34, 0xfffffcb0}, + {0x8430dd35, 0xfffffcb1}, + {0x8430dd36, 0xfffffcb2}, + {0x8430dd37, 0xfffffcb3}, + {0x8430dd38, 0xfffffcb4}, + {0x8430dd39, 0xfffffcb5}, + {0x8430de30, 0xfffffcb6}, + {0x8430de31, 0xfffffcb7}, + {0x8430de32, 0xfffffcb8}, + {0x8430de33, 0xfffffcb9}, + {0x8430de34, 0xfffffcba}, + {0x8430de35, 0xfffffcbb}, + {0x8430de36, 0xfffffcbc}, + {0x8430de37, 0xfffffcbd}, + {0x8430de38, 0xfffffcbe}, + {0x8430de39, 0xfffffcbf}, + {0x8430df30, 0xfffffcc0}, + {0x8430df31, 0xfffffcc1}, + {0x8430df32, 0xfffffcc2}, + {0x8430df33, 0xfffffcc3}, + {0x8430df34, 0xfffffcc4}, + {0x8430df35, 0xfffffcc5}, + {0x8430df36, 0xfffffcc6}, + {0x8430df37, 0xfffffcc7}, + {0x8430df38, 0xfffffcc8}, + {0x8430df39, 0xfffffcc9}, + {0x8430e030, 0xfffffcca}, + {0x8430e031, 0xfffffccb}, + {0x8430e032, 0xfffffccc}, + {0x8430e033, 0xfffffccd}, + {0x8430e034, 0xfffffcce}, + {0x8430e035, 0xfffffccf}, + {0x8430e036, 0xfffffcd0}, + {0x8430e037, 0xfffffcd1}, + {0x8430e038, 0xfffffcd2}, + {0x8430e039, 0xfffffcd3}, + {0x8430e130, 0xfffffcd4}, + {0x8430e131, 0xfffffcd5}, + {0x8430e132, 0xfffffcd6}, + {0x8430e133, 0xfffffcd7}, + {0x8430e134, 0xfffffcd8}, + {0x8430e135, 0xfffffcd9}, + {0x8430e136, 0xfffffcda}, + {0x8430e137, 0xfffffcdb}, + {0x8430e138, 0xfffffcdc}, + {0x8430e139, 0xfffffcdd}, + {0x8430e230, 0xfffffcde}, + {0x8430e231, 0xfffffcdf}, + {0x8430e232, 0xfffffce0}, + {0x8430e233, 0xfffffce1}, + {0x8430e234, 0xfffffce2}, + {0x8430e235, 0xfffffce3}, + {0x8430e236, 0xfffffce4}, + {0x8430e237, 0xfffffce5}, + {0x8430e238, 0xfffffce6}, + {0x8430e239, 0xfffffce7}, + {0x8430e330, 0xfffffce8}, + {0x8430e331, 0xfffffce9}, + {0x8430e332, 0xfffffcea}, + {0x8430e333, 0xfffffceb}, + {0x8430e334, 0xfffffcec}, + {0x8430e335, 0xfffffced}, + {0x8430e336, 0xfffffcee}, + {0x8430e337, 0xfffffcef}, + {0x8430e338, 0xfffffcf0}, + {0x8430e339, 0xfffffcf1}, + {0x8430e430, 0xfffffcf2}, + {0x8430e431, 0xfffffcf3}, + {0x8430e432, 0xfffffcf4}, + {0x8430e433, 0xfffffcf5}, + {0x8430e434, 0xfffffcf6}, + {0x8430e435, 0xfffffcf7}, + {0x8430e436, 0xfffffcf8}, + {0x8430e437, 0xfffffcf9}, + {0x8430e438, 0xfffffcfa}, + {0x8430e439, 0xfffffcfb}, + {0x8430e530, 0xfffffcfc}, + {0x8430e531, 0xfffffcfd}, + {0x8430e532, 0xfffffcfe}, + {0x8430e533, 0xfffffcff}, + {0x8430e534, 0xfffffd00}, + {0x8430e535, 0xfffffd01}, + {0x8430e536, 0xfffffd02}, + {0x8430e537, 0xfffffd03}, + {0x8430e538, 0xfffffd04}, + {0x8430e539, 0xfffffd05}, + {0x8430e630, 0xfffffd06}, + {0x8430e631, 0xfffffd07}, + {0x8430e632, 0xfffffd08}, + {0x8430e633, 0xfffffd09}, + {0x8430e634, 0xfffffd0a}, + {0x8430e635, 0xfffffd0b}, + {0x8430e636, 0xfffffd0c}, + {0x8430e637, 0xfffffd0d}, + {0x8430e638, 0xfffffd0e}, + {0x8430e639, 0xfffffd0f}, + {0x8430e730, 0xfffffd10}, + {0x8430e731, 0xfffffd11}, + {0x8430e732, 0xfffffd12}, + {0x8430e733, 0xfffffd13}, + {0x8430e734, 0xfffffd14}, + {0x8430e735, 0xfffffd15}, + {0x8430e736, 0xfffffd16}, + {0x8430e737, 0xfffffd17}, + {0x8430e738, 0xfffffd18}, + {0x8430e739, 0xfffffd19}, + {0x8430e830, 0xfffffd1a}, + {0x8430e831, 0xfffffd1b}, + {0x8430e832, 0xfffffd1c}, + {0x8430e833, 0xfffffd1d}, + {0x8430e834, 0xfffffd1e}, + {0x8430e835, 0xfffffd1f}, + {0x8430e836, 0xfffffd20}, + {0x8430e837, 0xfffffd21}, + {0x8430e838, 0xfffffd22}, + {0x8430e839, 0xfffffd23}, + {0x8430e930, 0xfffffd24}, + {0x8430e931, 0xfffffd25}, + {0x8430e932, 0xfffffd26}, + {0x8430e933, 0xfffffd27}, + {0x8430e934, 0xfffffd28}, + {0x8430e935, 0xfffffd29}, + {0x8430e936, 0xfffffd2a}, + {0x8430e937, 0xfffffd2b}, + {0x8430e938, 0xfffffd2c}, + {0x8430e939, 0xfffffd2d}, + {0x8430ea30, 0xfffffd2e}, + {0x8430ea31, 0xfffffd2f}, + {0x8430ea32, 0xfffffd30}, + {0x8430ea33, 0xfffffd31}, + {0x8430ea34, 0xfffffd32}, + {0x8430ea35, 0xfffffd33}, + {0x8430ea36, 0xfffffd34}, + {0x8430ea37, 0xfffffd35}, + {0x8430ea38, 0xfffffd36}, + {0x8430ea39, 0xfffffd37}, + {0x8430eb30, 0xfffffd38}, + {0x8430eb31, 0xfffffd39}, + {0x8430eb32, 0xfffffd3a}, + {0x8430eb33, 0xfffffd3b}, + {0x8430eb34, 0xfffffd3c}, + {0x8430eb35, 0xfffffd3d}, + {0x8430eb36, 0xfffffd3e}, + {0x8430eb37, 0xfffffd3f}, + {0x8430eb38, 0xfffffd40}, + {0x8430eb39, 0xfffffd41}, + {0x8430ec30, 0xfffffd42}, + {0x8430ec31, 0xfffffd43}, + {0x8430ec32, 0xfffffd44}, + {0x8430ec33, 0xfffffd45}, + {0x8430ec34, 0xfffffd46}, + {0x8430ec35, 0xfffffd47}, + {0x8430ec36, 0xfffffd48}, + {0x8430ec37, 0xfffffd49}, + {0x8430ec38, 0xfffffd4a}, + {0x8430ec39, 0xfffffd4b}, + {0x8430ed30, 0xfffffd4c}, + {0x8430ed31, 0xfffffd4d}, + {0x8430ed32, 0xfffffd4e}, + {0x8430ed33, 0xfffffd4f}, + {0x8430ed34, 0xfffffd50}, + {0x8430ed35, 0xfffffd51}, + {0x8430ed36, 0xfffffd52}, + {0x8430ed37, 0xfffffd53}, + {0x8430ed38, 0xfffffd54}, + {0x8430ed39, 0xfffffd55}, + {0x8430ee30, 0xfffffd56}, + {0x8430ee31, 0xfffffd57}, + {0x8430ee32, 0xfffffd58}, + {0x8430ee33, 0xfffffd59}, + {0x8430ee34, 0xfffffd5a}, + {0x8430ee35, 0xfffffd5b}, + {0x8430ee36, 0xfffffd5c}, + {0x8430ee37, 0xfffffd5d}, + {0x8430ee38, 0xfffffd5e}, + {0x8430ee39, 0xfffffd5f}, + {0x8430ef30, 0xfffffd60}, + {0x8430ef31, 0xfffffd61}, + {0x8430ef32, 0xfffffd62}, + {0x8430ef33, 0xfffffd63}, + {0x8430ef34, 0xfffffd64}, + {0x8430ef35, 0xfffffd65}, + {0x8430ef36, 0xfffffd66}, + {0x8430ef37, 0xfffffd67}, + {0x8430ef38, 0xfffffd68}, + {0x8430ef39, 0xfffffd69}, + {0x8430f030, 0xfffffd6a}, + {0x8430f031, 0xfffffd6b}, + {0x8430f032, 0xfffffd6c}, + {0x8430f033, 0xfffffd6d}, + {0x8430f034, 0xfffffd6e}, + {0x8430f035, 0xfffffd6f}, + {0x8430f036, 0xfffffd70}, + {0x8430f037, 0xfffffd71}, + {0x8430f038, 0xfffffd72}, + {0x8430f039, 0xfffffd73}, + {0x8430f130, 0xfffffd74}, + {0x8430f131, 0xfffffd75}, + {0x8430f132, 0xfffffd76}, + {0x8430f133, 0xfffffd77}, + {0x8430f134, 0xfffffd78}, + {0x8430f135, 0xfffffd79}, + {0x8430f136, 0xfffffd7a}, + {0x8430f137, 0xfffffd7b}, + {0x8430f138, 0xfffffd7c}, + {0x8430f139, 0xfffffd7d}, + {0x8430f230, 0xfffffd7e}, + {0x8430f231, 0xfffffd7f}, + {0x8430f232, 0xfffffd80}, + {0x8430f233, 0xfffffd81}, + {0x8430f234, 0xfffffd82}, + {0x8430f235, 0xfffffd83}, + {0x8430f236, 0xfffffd84}, + {0x8430f237, 0xfffffd85}, + {0x8430f238, 0xfffffd86}, + {0x8430f239, 0xfffffd87}, + {0x8430f330, 0xfffffd88}, + {0x8430f331, 0xfffffd89}, + {0x8430f332, 0xfffffd8a}, + {0x8430f333, 0xfffffd8b}, + {0x8430f334, 0xfffffd8c}, + {0x8430f335, 0xfffffd8d}, + {0x8430f336, 0xfffffd8e}, + {0x8430f337, 0xfffffd8f}, + {0x8430f338, 0xfffffd90}, + {0x8430f339, 0xfffffd91}, + {0x8430f430, 0xfffffd92}, + {0x8430f431, 0xfffffd93}, + {0x8430f432, 0xfffffd94}, + {0x8430f433, 0xfffffd95}, + {0x8430f434, 0xfffffd96}, + {0x8430f435, 0xfffffd97}, + {0x8430f436, 0xfffffd98}, + {0x8430f437, 0xfffffd99}, + {0x8430f438, 0xfffffd9a}, + {0x8430f439, 0xfffffd9b}, + {0x8430f530, 0xfffffd9c}, + {0x8430f531, 0xfffffd9d}, + {0x8430f532, 0xfffffd9e}, + {0x8430f533, 0xfffffd9f}, + {0x8430f534, 0xfffffda0}, + {0x8430f535, 0xfffffda1}, + {0x8430f536, 0xfffffda2}, + {0x8430f537, 0xfffffda3}, + {0x8430f538, 0xfffffda4}, + {0x8430f539, 0xfffffda5}, + {0x8430f630, 0xfffffda6}, + {0x8430f631, 0xfffffda7}, + {0x8430f632, 0xfffffda8}, + {0x8430f633, 0xfffffda9}, + {0x8430f634, 0xfffffdaa}, + {0x8430f635, 0xfffffdab}, + {0x8430f636, 0xfffffdac}, + {0x8430f637, 0xfffffdad}, + {0x8430f638, 0xfffffdae}, + {0x8430f639, 0xfffffdaf}, + {0x8430f730, 0xfffffdb0}, + {0x8430f731, 0xfffffdb1}, + {0x8430f732, 0xfffffdb2}, + {0x8430f733, 0xfffffdb3}, + {0x8430f734, 0xfffffdb4}, + {0x8430f735, 0xfffffdb5}, + {0x8430f736, 0xfffffdb6}, + {0x8430f737, 0xfffffdb7}, + {0x8430f738, 0xfffffdb8}, + {0x8430f739, 0xfffffdb9}, + {0x8430f830, 0xfffffdba}, + {0x8430f831, 0xfffffdbb}, + {0x8430f832, 0xfffffdbc}, + {0x8430f833, 0xfffffdbd}, + {0x8430f834, 0xfffffdbe}, + {0x8430f835, 0xfffffdbf}, + {0x8430f836, 0xfffffdc0}, + {0x8430f837, 0xfffffdc1}, + {0x8430f838, 0xfffffdc2}, + {0x8430f839, 0xfffffdc3}, + {0x8430f930, 0xfffffdc4}, + {0x8430f931, 0xfffffdc5}, + {0x8430f932, 0xfffffdc6}, + {0x8430f933, 0xfffffdc7}, + {0x8430f934, 0xfffffdc8}, + {0x8430f935, 0xfffffdc9}, + {0x8430f936, 0xfffffdca}, + {0x8430f937, 0xfffffdcb}, + {0x8430f938, 0xfffffdcc}, + {0x8430f939, 0xfffffdcd}, + {0x8430fa30, 0xfffffdce}, + {0x8430fa31, 0xfffffdcf}, + {0x8430fa32, 0xfffffdd0}, + {0x8430fa33, 0xfffffdd1}, + {0x8430fa34, 0xfffffdd2}, + {0x8430fa35, 0xfffffdd3}, + {0x8430fa36, 0xfffffdd4}, + {0x8430fa37, 0xfffffdd5}, + {0x8430fa38, 0xfffffdd6}, + {0x8430fa39, 0xfffffdd7}, + {0x8430fb30, 0xfffffdd8}, + {0x8430fb31, 0xfffffdd9}, + {0x8430fb32, 0xfffffdda}, + {0x8430fb33, 0xfffffddb}, + {0x8430fb34, 0xfffffddc}, + {0x8430fb35, 0xfffffddd}, + {0x8430fb36, 0xfffffdde}, + {0x8430fb37, 0xfffffddf}, + {0x8430fb38, 0xfffffde0}, + {0x8430fb39, 0xfffffde1}, + {0x8430fc30, 0xfffffde2}, + {0x8430fc31, 0xfffffde3}, + {0x8430fc32, 0xfffffde4}, + {0x8430fc33, 0xfffffde5}, + {0x8430fc34, 0xfffffde6}, + {0x8430fc35, 0xfffffde7}, + {0x8430fc36, 0xfffffde8}, + {0x8430fc37, 0xfffffde9}, + {0x8430fc38, 0xfffffdea}, + {0x8430fc39, 0xfffffdeb}, + {0x8430fd30, 0xfffffdec}, + {0x8430fd31, 0xfffffded}, + {0x8430fd32, 0xfffffdee}, + {0x8430fd33, 0xfffffdef}, + {0x8430fd34, 0xfffffdf0}, + {0x8430fd35, 0xfffffdf1}, + {0x8430fd36, 0xfffffdf2}, + {0x8430fd37, 0xfffffdf3}, + {0x8430fd38, 0xfffffdf4}, + {0x8430fd39, 0xfffffdf5}, + {0x8430fe30, 0xfffffdf6}, + {0x8430fe31, 0xfffffdf7}, + {0x8430fe32, 0xfffffdf8}, + {0x8430fe33, 0xfffffdf9}, + {0x8430fe34, 0xfffffdfa}, + {0x8430fe35, 0xfffffdfb}, + {0x8430fe36, 0xfffffdfc}, + {0x8430fe37, 0xfffffdfd}, + {0x8430fe38, 0xfffffdfe}, + {0x8430fe39, 0xfffffdff}, + {0x84318130, 0xfffffe00}, + {0x84318131, 0xfffffe01}, + {0x84318132, 0xfffffe02}, + {0x84318133, 0xfffffe03}, + {0x84318134, 0xfffffe04}, + {0x84318135, 0xfffffe05}, + {0x84318136, 0xfffffe06}, + {0x84318137, 0xfffffe07}, + {0x84318138, 0xfffffe08}, + {0x84318139, 0xfffffe09}, + {0x84318230, 0xfffffe0a}, + {0x84318231, 0xfffffe0b}, + {0x84318232, 0xfffffe0c}, + {0x84318233, 0xfffffe0d}, + {0x84318234, 0xfffffe0e}, + {0x84318235, 0xfffffe0f}, + {0x84318236, 0xfffffe10}, + {0x84318237, 0xfffffe11}, + {0x84318238, 0xfffffe12}, + {0x84318239, 0xfffffe13}, + {0x84318330, 0xfffffe14}, + {0x84318331, 0xfffffe15}, + {0x84318332, 0xfffffe16}, + {0x84318333, 0xfffffe17}, + {0x84318334, 0xfffffe18}, + {0x84318335, 0xfffffe19}, + {0x84318336, 0xfffffe1a}, + {0x84318337, 0xfffffe1b}, + {0x84318338, 0xfffffe1c}, + {0x84318339, 0xfffffe1d}, + {0x84318430, 0xfffffe1e}, + {0x84318431, 0xfffffe1f}, + {0x84318436, 0xfffffe24}, + {0x84318437, 0xfffffe25}, + {0x84318438, 0xfffffe26}, + {0x84318439, 0xfffffe27}, + {0x84318530, 0xfffffe28}, + {0x84318531, 0xfffffe29}, + {0x84318532, 0xfffffe2a}, + {0x84318533, 0xfffffe2b}, + {0x84318534, 0xfffffe2c}, + {0x84318535, 0xfffffe2d}, + {0x84318536, 0xfffffe2e}, + {0x84318537, 0xfffffe2f}, + {0x84318538, 0xfffffe32}, + {0x84318539, 0xfffffe45}, + {0x84318630, 0xfffffe46}, + {0x84318631, 0xfffffe47}, + {0x84318632, 0xfffffe48}, + {0x84318633, 0xfffffe53}, + {0x84318634, 0xfffffe58}, + {0x84318635, 0xfffffe67}, + {0x84318636, 0xfffffe6c}, + {0x84318637, 0xfffffe6d}, + {0x84318638, 0xfffffe6e}, + {0x84318639, 0xfffffe6f}, + {0x84318730, 0xfffffe70}, + {0x84318731, 0xfffffe71}, + {0x84318732, 0xfffffe72}, + {0x84318733, 0xfffffe73}, + {0x84318734, 0xfffffe74}, + {0x84318735, 0xfffffe75}, + {0x84318736, 0xfffffe76}, + {0x84318737, 0xfffffe77}, + {0x84318738, 0xfffffe78}, + {0x84318739, 0xfffffe79}, + {0x84318830, 0xfffffe7a}, + {0x84318831, 0xfffffe7b}, + {0x84318832, 0xfffffe7c}, + {0x84318833, 0xfffffe7d}, + {0x84318834, 0xfffffe7e}, + {0x84318835, 0xfffffe7f}, + {0x84318836, 0xfffffe80}, + {0x84318837, 0xfffffe81}, + {0x84318838, 0xfffffe82}, + {0x84318839, 0xfffffe83}, + {0x84318930, 0xfffffe84}, + {0x84318931, 0xfffffe85}, + {0x84318932, 0xfffffe86}, + {0x84318933, 0xfffffe87}, + {0x84318934, 0xfffffe88}, + {0x84318935, 0xfffffe89}, + {0x84318936, 0xfffffe8a}, + {0x84318937, 0xfffffe8b}, + {0x84318938, 0xfffffe8c}, + {0x84318939, 0xfffffe8d}, + {0x84318a30, 0xfffffe8e}, + {0x84318a31, 0xfffffe8f}, + {0x84318a32, 0xfffffe90}, + {0x84318a33, 0xfffffe91}, + {0x84318a34, 0xfffffe92}, + {0x84318a35, 0xfffffe93}, + {0x84318a36, 0xfffffe94}, + {0x84318a37, 0xfffffe95}, + {0x84318a38, 0xfffffe96}, + {0x84318a39, 0xfffffe97}, + {0x84318b30, 0xfffffe98}, + {0x84318b31, 0xfffffe99}, + {0x84318b32, 0xfffffe9a}, + {0x84318b33, 0xfffffe9b}, + {0x84318b34, 0xfffffe9c}, + {0x84318b35, 0xfffffe9d}, + {0x84318b36, 0xfffffe9e}, + {0x84318b37, 0xfffffe9f}, + {0x84318b38, 0xfffffea0}, + {0x84318b39, 0xfffffea1}, + {0x84318c30, 0xfffffea2}, + {0x84318c31, 0xfffffea3}, + {0x84318c32, 0xfffffea4}, + {0x84318c33, 0xfffffea5}, + {0x84318c34, 0xfffffea6}, + {0x84318c35, 0xfffffea7}, + {0x84318c36, 0xfffffea8}, + {0x84318c37, 0xfffffea9}, + {0x84318c38, 0xfffffeaa}, + {0x84318c39, 0xfffffeab}, + {0x84318d30, 0xfffffeac}, + {0x84318d31, 0xfffffead}, + {0x84318d32, 0xfffffeae}, + {0x84318d33, 0xfffffeaf}, + {0x84318d34, 0xfffffeb0}, + {0x84318d35, 0xfffffeb1}, + {0x84318d36, 0xfffffeb2}, + {0x84318d37, 0xfffffeb3}, + {0x84318d38, 0xfffffeb4}, + {0x84318d39, 0xfffffeb5}, + {0x84318e30, 0xfffffeb6}, + {0x84318e31, 0xfffffeb7}, + {0x84318e32, 0xfffffeb8}, + {0x84318e33, 0xfffffeb9}, + {0x84318e34, 0xfffffeba}, + {0x84318e35, 0xfffffebb}, + {0x84318e36, 0xfffffebc}, + {0x84318e37, 0xfffffebd}, + {0x84318e38, 0xfffffebe}, + {0x84318e39, 0xfffffebf}, + {0x84318f30, 0xfffffec0}, + {0x84318f31, 0xfffffec1}, + {0x84318f32, 0xfffffec2}, + {0x84318f33, 0xfffffec3}, + {0x84318f34, 0xfffffec4}, + {0x84318f35, 0xfffffec5}, + {0x84318f36, 0xfffffec6}, + {0x84318f37, 0xfffffec7}, + {0x84318f38, 0xfffffec8}, + {0x84318f39, 0xfffffec9}, + {0x84319030, 0xfffffeca}, + {0x84319031, 0xfffffecb}, + {0x84319032, 0xfffffecc}, + {0x84319033, 0xfffffecd}, + {0x84319034, 0xfffffece}, + {0x84319035, 0xfffffecf}, + {0x84319036, 0xfffffed0}, + {0x84319037, 0xfffffed1}, + {0x84319038, 0xfffffed2}, + {0x84319039, 0xfffffed3}, + {0x84319130, 0xfffffed4}, + {0x84319131, 0xfffffed5}, + {0x84319132, 0xfffffed6}, + {0x84319133, 0xfffffed7}, + {0x84319134, 0xfffffed8}, + {0x84319135, 0xfffffed9}, + {0x84319136, 0xfffffeda}, + {0x84319137, 0xfffffedb}, + {0x84319138, 0xfffffedc}, + {0x84319139, 0xfffffedd}, + {0x84319230, 0xfffffede}, + {0x84319231, 0xfffffedf}, + {0x84319232, 0xfffffee0}, + {0x84319233, 0xfffffee1}, + {0x84319234, 0xfffffee2}, + {0x84319235, 0xfffffee3}, + {0x84319236, 0xfffffee4}, + {0x84319237, 0xfffffee5}, + {0x84319238, 0xfffffee6}, + {0x84319239, 0xfffffee7}, + {0x84319330, 0xfffffee8}, + {0x84319331, 0xfffffee9}, + {0x84319332, 0xfffffeea}, + {0x84319333, 0xfffffeeb}, + {0x84319334, 0xfffffeec}, + {0x84319335, 0xfffffeed}, + {0x84319336, 0xfffffeee}, + {0x84319337, 0xfffffeef}, + {0x84319338, 0xfffffef0}, + {0x84319339, 0xfffffef1}, + {0x84319430, 0xfffffef2}, + {0x84319431, 0xfffffef3}, + {0x84319432, 0xfffffef4}, + {0x84319433, 0xfffffef5}, + {0x84319434, 0xfffffef6}, + {0x84319435, 0xfffffef7}, + {0x84319436, 0xfffffef8}, + {0x84319437, 0xfffffef9}, + {0x84319438, 0xfffffefa}, + {0x84319439, 0xfffffefb}, + {0x84319530, 0xfffffefc}, + {0x84319531, 0xfffffefd}, + {0x84319532, 0xfffffefe}, + {0x84319534, 0xffffff00}, + {0x84319535, 0xffffff5f}, + {0x84319536, 0xffffff60}, + {0x84319537, 0xffffff61}, + {0x84319538, 0xffffff62}, + {0x84319539, 0xffffff63}, + {0x84319630, 0xffffff64}, + {0x84319631, 0xffffff65}, + {0x84319632, 0x3733}, + {0x84319633, 0x36f9}, + {0x84319634, 0x36fb}, + {0x84319635, 0x36fd}, + {0x84319636, 0x36ff}, + {0x84319637, 0x3701}, + {0x84319638, 0x3724}, + {0x84319639, 0x3726}, + {0x84319730, 0x3728}, + {0x84319731, 0x3711}, + {0x84319732, 0x3740}, + {0x84319733, 0x36fa}, + {0x84319734, 0x36fc}, + {0x84319735, 0x36fe}, + {0x84319736, 0x3700}, + {0x84319737, 0x3702}, + {0x84319738, 0x3704}, + {0x84319739, 0x3705}, + {0x84319830, 0x3706}, + {0x84319831, 0x3708}, + {0x84319832, 0x3709}, + {0x84319833, 0x370a}, + {0x84319834, 0x370b}, + {0x84319835, 0x370c}, + {0x84319836, 0x370d}, + {0x84319837, 0x370e}, + {0x84319838, 0x370f}, + {0x84319839, 0x3710}, + {0x84319930, 0x3712}, + {0x84319931, 0x3713}, + {0x84319932, 0x3714}, + {0x84319933, 0x3715}, + {0x84319934, 0x3716}, + {0x84319935, 0x3717}, + {0x84319936, 0x3718}, + {0x84319937, 0x3719}, + {0x84319938, 0x371a}, + {0x84319939, 0x371b}, + {0x84319a30, 0x371c}, + {0x84319a31, 0x371d}, + {0x84319a32, 0x371e}, + {0x84319a33, 0x371f}, + {0x84319a34, 0x3720}, + {0x84319a35, 0x3721}, + {0x84319a36, 0x3722}, + {0x84319a37, 0x3723}, + {0x84319a38, 0x3725}, + {0x84319a39, 0x3727}, + {0x84319b30, 0x3729}, + {0x84319b31, 0x372a}, + {0x84319b32, 0x372b}, + {0x84319b33, 0x372c}, + {0x84319b34, 0x372d}, + {0x84319b35, 0x372e}, + {0x84319b36, 0x3730}, + {0x84319b37, 0x3734}, + {0x84319c30, 0xffffffa0}, + {0x84319c31, 0xffffffa1}, + {0x84319c32, 0xffffffa2}, + {0x84319c33, 0xffffffa3}, + {0x84319c34, 0xffffffa4}, + {0x84319c35, 0xffffffa5}, + {0x84319c36, 0xffffffa6}, + {0x84319c37, 0xffffffa7}, + {0x84319c38, 0xffffffa8}, + {0x84319c39, 0xffffffa9}, + {0x84319d30, 0xffffffaa}, + {0x84319d31, 0xffffffab}, + {0x84319d32, 0xffffffac}, + {0x84319d33, 0xffffffad}, + {0x84319d34, 0xffffffae}, + {0x84319d35, 0xffffffaf}, + {0x84319d36, 0xffffffb0}, + {0x84319d37, 0xffffffb1}, + {0x84319d38, 0xffffffb2}, + {0x84319d39, 0xffffffb3}, + {0x84319e30, 0xffffffb4}, + {0x84319e31, 0xffffffb5}, + {0x84319e32, 0xffffffb6}, + {0x84319e33, 0xffffffb7}, + {0x84319e34, 0xffffffb8}, + {0x84319e35, 0xffffffb9}, + {0x84319e36, 0xffffffba}, + {0x84319e37, 0xffffffbb}, + {0x84319e38, 0xffffffbc}, + {0x84319e39, 0xffffffbd}, + {0x84319f30, 0xffffffbe}, + {0x84319f31, 0xffffffbf}, + {0x84319f32, 0xffffffc0}, + {0x84319f33, 0xffffffc1}, + {0x84319f34, 0xffffffc2}, + {0x84319f35, 0xffffffc3}, + {0x84319f36, 0xffffffc4}, + {0x84319f37, 0xffffffc5}, + {0x84319f38, 0xffffffc6}, + {0x84319f39, 0xffffffc7}, + {0x8431a030, 0xffffffc8}, + {0x8431a031, 0xffffffc9}, + {0x8431a032, 0xffffffca}, + {0x8431a033, 0xffffffcb}, + {0x8431a034, 0xffffffcc}, + {0x8431a035, 0xffffffcd}, + {0x8431a036, 0xffffffce}, + {0x8431a037, 0xffffffcf}, + {0x8431a038, 0xffffffd0}, + {0x8431a039, 0xffffffd1}, + {0x8431a130, 0xffffffd2}, + {0x8431a131, 0xffffffd3}, + {0x8431a132, 0xffffffd4}, + {0x8431a133, 0xffffffd5}, + {0x8431a134, 0xffffffd6}, + {0x8431a135, 0xffffffd7}, + {0x8431a136, 0xffffffd8}, + {0x8431a137, 0xffffffd9}, + {0x8431a138, 0xffffffda}, + {0x8431a139, 0xffffffdb}, + {0x8431a230, 0xffffffdc}, + {0x8431a231, 0xffffffdd}, + {0x8431a232, 0xffffffde}, + {0x8431a233, 0xffffffdf}, + {0x8431a234, 0x009a}, + {0x8431a235, 0xffffffe7}, + {0x8431a236, 0xffffffe8}, + {0x8431a237, 0xffffffe9}, + {0x8431a238, 0xffffffea}, + {0x8431a239, 0xffffffeb}, + {0x8431a330, 0xffffffec}, + {0x8431a331, 0xffffffed}, + {0x8431a332, 0xffffffee}, + {0x8431a333, 0xffffffef}, + {0x8431a334, 0xfffffff0}, + {0x8431a335, 0xfffffff1}, + {0x8431a336, 0xfffffff2}, + {0x8431a337, 0xfffffff3}, + {0x8431a338, 0xfffffff4}, + {0x8431a339, 0xfffffff5}, + {0x8431a430, 0xfffffff6}, + {0x8431a431, 0xfffffff7}, + {0x8431a432, 0xfffffff8}, + {0x8431a433, 0xfffffff9}, + {0x8431a434, 0xfffffffa}, + {0x8431a435, 0xfffffffb}, + {0x8431a436, 0xfffffffc}, + {0x8431a437, 0xfffffffd}, + {0x8431a439, 0xffffffff} +}; \ No newline at end of file diff --git a/src/common/backend/utils/mb/nlssort/nlssort_pinyin_map3.map b/src/common/backend/utils/mb/nlssort/nlssort_pinyin_map3.map new file mode 100644 index 000000000..c8b08ab53 --- /dev/null +++ b/src/common/backend/utils/mb/nlssort/nlssort_pinyin_map3.map @@ -0,0 +1,29278 @@ +static nlssort_encode_simple PINYIN_map3[ 29276 ] = { + {0x24, 0x01}, + {0x30, 0x02}, + {0x31, 0x02}, + {0x32, 0x02}, + {0x33, 0x02}, + {0x34, 0x02}, + {0x35, 0x02}, + {0x36, 0x02}, + {0x37, 0x02}, + {0x38, 0x02}, + {0x39, 0x02}, + {0x41, 0x02}, + {0x42, 0x02}, + {0x43, 0x02}, + {0x44, 0x02}, + {0x45, 0x02}, + {0x46, 0x02}, + {0x47, 0x02}, + {0x48, 0x02}, + {0x49, 0x02}, + {0x4a, 0x02}, + {0x4b, 0x02}, + {0x4c, 0x02}, + {0x4d, 0x02}, + {0x4e, 0x02}, + {0x4f, 0x02}, + {0x50, 0x02}, + {0x51, 0x02}, + {0x52, 0x02}, + {0x53, 0x02}, + {0x54, 0x02}, + {0x55, 0x02}, + {0x56, 0x02}, + {0x57, 0x02}, + {0x58, 0x02}, + {0x59, 0x02}, + {0x5a, 0x02}, + {0x61, 0x02}, + {0x62, 0x02}, + {0x63, 0x02}, + {0x64, 0x02}, + {0x65, 0x02}, + {0x66, 0x02}, + {0x67, 0x02}, + {0x68, 0x02}, + {0x69, 0x02}, + {0x6a, 0x02}, + {0x6b, 0x02}, + {0x6c, 0x02}, + {0x6d, 0x02}, + {0x6e, 0x02}, + {0x6f, 0x02}, + {0x70, 0x02}, + {0x71, 0x02}, + {0x72, 0x02}, + {0x73, 0x02}, + {0x74, 0x02}, + {0x75, 0x02}, + {0x76, 0x02}, + {0x77, 0x02}, + {0x78, 0x02}, + {0x79, 0x02}, + {0x7a, 0x02}, + {0x8140, 0x01}, + {0x8141, 0x01}, + {0x8142, 0x01}, + {0x8143, 0x01}, + {0x8144, 0x01}, + {0x8145, 0x01}, + {0x8146, 0x01}, + {0x8147, 0x01}, + {0x8148, 0x01}, + {0x8149, 0x01}, + {0x814a, 0x01}, + {0x814b, 0x01}, + {0x814c, 0x01}, + {0x814d, 0x01}, + {0x814e, 0x01}, + {0x814f, 0x01}, + {0x8150, 0x01}, + {0x8151, 0x01}, + {0x8152, 0x01}, + {0x8153, 0x01}, + {0x8154, 0x01}, + {0x8155, 0x01}, + {0x8156, 0x01}, + {0x8157, 0x01}, + {0x8158, 0x01}, + {0x8159, 0x01}, + {0x815a, 0x01}, + {0x815b, 0x01}, + {0x815c, 0x01}, + {0x815d, 0x01}, + {0x815e, 0x01}, + {0x815f, 0x01}, + {0x8160, 0x01}, + {0x8161, 0x01}, + {0x8162, 0x01}, + {0x8163, 0x01}, + {0x8164, 0x01}, + {0x8165, 0x01}, + {0x8166, 0x01}, + {0x8167, 0x01}, + {0x8168, 0x01}, + {0x8169, 0x01}, + {0x816a, 0x01}, + {0x816b, 0x01}, + {0x816c, 0x01}, + {0x816d, 0x01}, + {0x816e, 0x01}, + {0x816f, 0x01}, + {0x8170, 0x01}, + {0x8171, 0x01}, + {0x8172, 0x01}, + {0x8173, 0x01}, + {0x8174, 0x01}, + {0x8175, 0x01}, + {0x8176, 0x01}, + {0x8177, 0x01}, + {0x8178, 0x01}, + {0x8179, 0x01}, + {0x817a, 0x01}, + {0x817b, 0x01}, + {0x817c, 0x01}, + {0x817d, 0x01}, + {0x817e, 0x01}, + {0x8180, 0x01}, + {0x8181, 0x01}, + {0x8182, 0x01}, + {0x8183, 0x01}, + {0x8184, 0x01}, + {0x8185, 0x01}, + {0x8186, 0x01}, + {0x8187, 0x01}, + {0x8188, 0x01}, + {0x8189, 0x01}, + {0x818a, 0x01}, + {0x818b, 0x01}, + {0x818c, 0x01}, + {0x818d, 0x01}, + {0x818e, 0x01}, + {0x818f, 0x01}, + {0x8190, 0x01}, + {0x8191, 0x01}, + {0x8192, 0x01}, + {0x8193, 0x01}, + {0x8194, 0x01}, + {0x8195, 0x01}, + {0x8196, 0x01}, + {0x8197, 0x01}, + {0x8198, 0x01}, + {0x8199, 0x01}, + {0x819a, 0x01}, + {0x819b, 0x01}, + {0x819c, 0x01}, + {0x819d, 0x01}, + {0x819e, 0x01}, + {0x819f, 0x01}, + {0x81a0, 0x01}, + {0x81a1, 0x01}, + {0x81a2, 0x01}, + {0x81a3, 0x01}, + {0x81a4, 0x01}, + {0x81a5, 0x01}, + {0x81a6, 0x01}, + {0x81a7, 0x01}, + {0x81a8, 0x01}, + {0x81a9, 0x01}, + {0x81aa, 0x01}, + {0x81ab, 0x01}, + {0x81ac, 0x01}, + {0x81ad, 0x01}, + {0x81ae, 0x01}, + {0x81af, 0x01}, + {0x81b0, 0x01}, + {0x81b1, 0x01}, + {0x81b2, 0x01}, + {0x81b3, 0x01}, + {0x81b4, 0x01}, + {0x81b5, 0x01}, + {0x81b6, 0x01}, + {0x81b7, 0x01}, + {0x81b8, 0x01}, + {0x81b9, 0x01}, + {0x81ba, 0x01}, + {0x81bb, 0x01}, + {0x81bc, 0x01}, + {0x81bd, 0x01}, + {0x81be, 0x01}, + {0x81bf, 0x01}, + {0x81c0, 0x01}, + {0x81c1, 0x01}, + {0x81c2, 0x01}, + {0x81c3, 0x01}, + {0x81c4, 0x01}, + {0x81c5, 0x01}, + {0x81c6, 0x01}, + {0x81c7, 0x01}, + {0x81c8, 0x01}, + {0x81c9, 0x01}, + {0x81ca, 0x01}, + {0x81cb, 0x01}, + {0x81cc, 0x01}, + {0x81cd, 0x01}, + {0x81ce, 0x01}, + {0x81cf, 0x01}, + {0x81d0, 0x01}, + {0x81d1, 0x01}, + {0x81d2, 0x01}, + {0x81d3, 0x01}, + {0x81d4, 0x01}, + {0x81d5, 0x01}, + {0x81d6, 0x01}, + {0x81d7, 0x01}, + {0x81d8, 0x01}, + {0x81d9, 0x01}, + {0x81da, 0x01}, + {0x81db, 0x01}, + {0x81dc, 0x01}, + {0x81dd, 0x01}, + {0x81de, 0x01}, + {0x81df, 0x01}, + {0x81e0, 0x01}, + {0x81e1, 0x01}, + {0x81e2, 0x01}, + {0x81e3, 0x01}, + {0x81e4, 0x01}, + {0x81e5, 0x01}, + {0x81e6, 0x01}, + {0x81e7, 0x01}, + {0x81e8, 0x01}, + {0x81e9, 0x01}, + {0x81ea, 0x01}, + {0x81eb, 0x01}, + {0x81ec, 0x01}, + {0x81ed, 0x01}, + {0x81ee, 0x01}, + {0x81ef, 0x01}, + {0x81f0, 0x01}, + {0x81f1, 0x01}, + {0x81f2, 0x01}, + {0x81f3, 0x01}, + {0x81f4, 0x01}, + {0x81f5, 0x01}, + {0x81f6, 0x01}, + {0x81f7, 0x01}, + {0x81f8, 0x01}, + {0x81f9, 0x01}, + {0x81fa, 0x01}, + {0x81fb, 0x01}, + {0x81fc, 0x01}, + {0x81fd, 0x01}, + {0x81fe, 0x01}, + {0x8240, 0x01}, + {0x8241, 0x01}, + {0x8242, 0x01}, + {0x8243, 0x01}, + {0x8244, 0x01}, + {0x8245, 0x01}, + {0x8246, 0x01}, + {0x8247, 0x01}, + {0x8248, 0x01}, + {0x8249, 0x01}, + {0x824a, 0x01}, + {0x824b, 0x01}, + {0x824c, 0x01}, + {0x824d, 0x01}, + {0x824e, 0x01}, + {0x824f, 0x01}, + {0x8250, 0x01}, + {0x8251, 0x01}, + {0x8252, 0x01}, + {0x8253, 0x01}, + {0x8254, 0x01}, + {0x8255, 0x01}, + {0x8256, 0x01}, + {0x8257, 0x01}, + {0x8258, 0x01}, + {0x8259, 0x01}, + {0x825a, 0x01}, + {0x825b, 0x01}, + {0x825c, 0x01}, + {0x825d, 0x01}, + {0x825e, 0x01}, + {0x825f, 0x01}, + {0x8260, 0x01}, + {0x8261, 0x01}, + {0x8262, 0x01}, + {0x8263, 0x01}, + {0x8264, 0x01}, + {0x8265, 0x01}, + {0x8266, 0x01}, + {0x8267, 0x01}, + {0x8268, 0x01}, + {0x8269, 0x01}, + {0x826a, 0x01}, + {0x826b, 0x01}, + {0x826c, 0x01}, + {0x826d, 0x01}, + {0x826e, 0x01}, + {0x826f, 0x01}, + {0x8270, 0x01}, + {0x8271, 0x01}, + {0x8272, 0x01}, + {0x8273, 0x01}, + {0x8274, 0x01}, + {0x8275, 0x01}, + {0x8276, 0x01}, + {0x8277, 0x01}, + {0x8278, 0x01}, + {0x8279, 0x01}, + {0x827a, 0x01}, + {0x827b, 0x01}, + {0x827c, 0x01}, + {0x827d, 0x01}, + {0x827e, 0x01}, + {0x8280, 0x01}, + {0x8281, 0x01}, + {0x8282, 0x01}, + {0x8283, 0x01}, + {0x8284, 0x01}, + {0x8285, 0x01}, + {0x8286, 0x01}, + {0x8287, 0x01}, + {0x8288, 0x01}, + {0x8289, 0x01}, + {0x828a, 0x01}, + {0x828b, 0x01}, + {0x828c, 0x01}, + {0x828d, 0x01}, + {0x828e, 0x01}, + {0x828f, 0x01}, + {0x8290, 0x01}, + {0x8291, 0x01}, + {0x8292, 0x01}, + {0x8293, 0x01}, + {0x8294, 0x01}, + {0x8295, 0x01}, + {0x8296, 0x01}, + {0x8297, 0x01}, + {0x8298, 0x01}, + {0x8299, 0x01}, + {0x829a, 0x01}, + {0x829b, 0x01}, + {0x829c, 0x01}, + {0x829d, 0x01}, + {0x829e, 0x01}, + {0x829f, 0x01}, + {0x82a0, 0x01}, + {0x82a1, 0x01}, + {0x82a2, 0x01}, + {0x82a3, 0x01}, + {0x82a4, 0x01}, + {0x82a5, 0x01}, + {0x82a6, 0x01}, + {0x82a7, 0x01}, + {0x82a8, 0x01}, + {0x82a9, 0x01}, + {0x82aa, 0x01}, + {0x82ab, 0x01}, + {0x82ac, 0x01}, + {0x82ad, 0x01}, + {0x82ae, 0x01}, + {0x82af, 0x01}, + {0x82b0, 0x01}, + {0x82b1, 0x01}, + {0x82b2, 0x01}, + {0x82b3, 0x01}, + {0x82b4, 0x01}, + {0x82b5, 0x01}, + {0x82b6, 0x01}, + {0x82b7, 0x01}, + {0x82b8, 0x01}, + {0x82b9, 0x01}, + {0x82ba, 0x01}, + {0x82bb, 0x01}, + {0x82bc, 0x01}, + {0x82bd, 0x01}, + {0x82be, 0x01}, + {0x82bf, 0x01}, + {0x82c0, 0x01}, + {0x82c1, 0x01}, + {0x82c2, 0x01}, + {0x82c3, 0x01}, + {0x82c4, 0x01}, + {0x82c5, 0x01}, + {0x82c6, 0x01}, + {0x82c7, 0x01}, + {0x82c8, 0x01}, + {0x82c9, 0x01}, + {0x82ca, 0x01}, + {0x82cb, 0x01}, + {0x82cc, 0x01}, + {0x82cd, 0x01}, + {0x82ce, 0x01}, + {0x82cf, 0x01}, + {0x82d0, 0x01}, + {0x82d1, 0x01}, + {0x82d2, 0x01}, + {0x82d3, 0x01}, + {0x82d4, 0x01}, + {0x82d5, 0x01}, + {0x82d6, 0x01}, + {0x82d7, 0x01}, + {0x82d8, 0x01}, + {0x82d9, 0x01}, + {0x82da, 0x01}, + {0x82db, 0x01}, + {0x82dc, 0x01}, + {0x82dd, 0x01}, + {0x82de, 0x01}, + {0x82df, 0x01}, + {0x82e0, 0x01}, + {0x82e1, 0x01}, + {0x82e2, 0x01}, + {0x82e3, 0x01}, + {0x82e4, 0x01}, + {0x82e5, 0x01}, + {0x82e6, 0x01}, + {0x82e7, 0x01}, + {0x82e8, 0x01}, + {0x82e9, 0x01}, + {0x82ea, 0x01}, + {0x82eb, 0x01}, + {0x82ec, 0x01}, + {0x82ed, 0x01}, + {0x82ee, 0x01}, + {0x82ef, 0x01}, + {0x82f0, 0x01}, + {0x82f1, 0x01}, + {0x82f2, 0x01}, + {0x82f3, 0x01}, + {0x82f4, 0x01}, + {0x82f5, 0x01}, + {0x82f6, 0x01}, + {0x82f7, 0x01}, + {0x82f8, 0x01}, + {0x82f9, 0x01}, + {0x82fa, 0x01}, + {0x82fb, 0x01}, + {0x82fc, 0x01}, + {0x82fd, 0x01}, + {0x82fe, 0x01}, + {0x8340, 0x01}, + {0x8341, 0x01}, + {0x8342, 0x01}, + {0x8343, 0x01}, + {0x8344, 0x01}, + {0x8345, 0x01}, + {0x8346, 0x01}, + {0x8347, 0x01}, + {0x8348, 0x01}, + {0x8349, 0x01}, + {0x834a, 0x01}, + {0x834b, 0x01}, + {0x834c, 0x01}, + {0x834d, 0x01}, + {0x834e, 0x01}, + {0x834f, 0x01}, + {0x8350, 0x01}, + {0x8351, 0x01}, + {0x8352, 0x01}, + {0x8353, 0x01}, + {0x8354, 0x01}, + {0x8355, 0x01}, + {0x8356, 0x01}, + {0x8357, 0x01}, + {0x8358, 0x01}, + {0x8359, 0x01}, + {0x835a, 0x01}, + {0x835b, 0x01}, + {0x835c, 0x01}, + {0x835d, 0x01}, + {0x835e, 0x01}, + {0x835f, 0x01}, + {0x8360, 0x01}, + {0x8361, 0x01}, + {0x8362, 0x01}, + {0x8363, 0x01}, + {0x8364, 0x01}, + {0x8365, 0x01}, + {0x8366, 0x01}, + {0x8367, 0x01}, + {0x8368, 0x01}, + {0x8369, 0x01}, + {0x836a, 0x01}, + {0x836b, 0x01}, + {0x836c, 0x01}, + {0x836d, 0x01}, + {0x836e, 0x01}, + {0x836f, 0x01}, + {0x8370, 0x01}, + {0x8371, 0x01}, + {0x8372, 0x01}, + {0x8373, 0x01}, + {0x8374, 0x01}, + {0x8375, 0x01}, + {0x8376, 0x01}, + {0x8377, 0x01}, + {0x8378, 0x01}, + {0x8379, 0x01}, + {0x837a, 0x01}, + {0x837b, 0x01}, + {0x837c, 0x01}, + {0x837d, 0x01}, + {0x837e, 0x01}, + {0x8380, 0x01}, + {0x8381, 0x01}, + {0x8382, 0x01}, + {0x8383, 0x01}, + {0x8384, 0x01}, + {0x8385, 0x01}, + {0x8386, 0x01}, + {0x8387, 0x01}, + {0x8388, 0x01}, + {0x8389, 0x01}, + {0x838a, 0x01}, + {0x838b, 0x01}, + {0x838c, 0x01}, + {0x838d, 0x01}, + {0x838e, 0x01}, + {0x838f, 0x01}, + {0x8390, 0x01}, + {0x8391, 0x01}, + {0x8392, 0x01}, + {0x8393, 0x01}, + {0x8394, 0x01}, + {0x8395, 0x01}, + {0x8396, 0x01}, + {0x8397, 0x01}, + {0x8398, 0x01}, + {0x8399, 0x01}, + {0x839a, 0x01}, + {0x839b, 0x01}, + {0x839c, 0x01}, + {0x839d, 0x01}, + {0x839e, 0x01}, + {0x839f, 0x01}, + {0x83a0, 0x01}, + {0x83a1, 0x01}, + {0x83a2, 0x01}, + {0x83a3, 0x01}, + {0x83a4, 0x01}, + {0x83a5, 0x01}, + {0x83a6, 0x01}, + {0x83a7, 0x01}, + {0x83a8, 0x01}, + {0x83a9, 0x01}, + {0x83aa, 0x01}, + {0x83ab, 0x01}, + {0x83ac, 0x01}, + {0x83ad, 0x01}, + {0x83ae, 0x01}, + {0x83af, 0x01}, + {0x83b0, 0x01}, + {0x83b1, 0x01}, + {0x83b2, 0x01}, + {0x83b3, 0x01}, + {0x83b4, 0x01}, + {0x83b5, 0x01}, + {0x83b6, 0x01}, + {0x83b7, 0x01}, + {0x83b8, 0x01}, + {0x83b9, 0x01}, + {0x83ba, 0x01}, + {0x83bb, 0x01}, + {0x83bc, 0x01}, + {0x83bd, 0x01}, + {0x83be, 0x01}, + {0x83bf, 0x01}, + {0x83c0, 0x01}, + {0x83c1, 0x01}, + {0x83c2, 0x01}, + {0x83c3, 0x01}, + {0x83c4, 0x01}, + {0x83c5, 0x01}, + {0x83c6, 0x01}, + {0x83c7, 0x01}, + {0x83c8, 0x01}, + {0x83c9, 0x01}, + {0x83ca, 0x01}, + {0x83cb, 0x01}, + {0x83cc, 0x01}, + {0x83cd, 0x01}, + {0x83ce, 0x01}, + {0x83cf, 0x01}, + {0x83d0, 0x01}, + {0x83d1, 0x01}, + {0x83d2, 0x01}, + {0x83d3, 0x01}, + {0x83d4, 0x01}, + {0x83d5, 0x01}, + {0x83d6, 0x01}, + {0x83d7, 0x01}, + {0x83d8, 0x01}, + {0x83d9, 0x01}, + {0x83da, 0x01}, + {0x83db, 0x01}, + {0x83dc, 0x01}, + {0x83dd, 0x01}, + {0x83de, 0x01}, + {0x83df, 0x01}, + {0x83e0, 0x01}, + {0x83e1, 0x01}, + {0x83e2, 0x01}, + {0x83e3, 0x01}, + {0x83e4, 0x01}, + {0x83e5, 0x01}, + {0x83e6, 0x01}, + {0x83e7, 0x01}, + {0x83e8, 0x01}, + {0x83e9, 0x01}, + {0x83ea, 0x01}, + {0x83eb, 0x01}, + {0x83ec, 0x01}, + {0x83ed, 0x01}, + {0x83ee, 0x01}, + {0x83ef, 0x01}, + {0x83f0, 0x01}, + {0x83f1, 0x01}, + {0x83f2, 0x01}, + {0x83f3, 0x01}, + {0x83f4, 0x01}, + {0x83f5, 0x01}, + {0x83f6, 0x01}, + {0x83f7, 0x01}, + {0x83f8, 0x01}, + {0x83f9, 0x01}, + {0x83fa, 0x01}, + {0x83fb, 0x01}, + {0x83fc, 0x01}, + {0x83fd, 0x01}, + {0x83fe, 0x01}, + {0x8440, 0x01}, + {0x8441, 0x01}, + {0x8442, 0x01}, + {0x8443, 0x01}, + {0x8444, 0x01}, + {0x8445, 0x01}, + {0x8446, 0x01}, + {0x8447, 0x01}, + {0x8448, 0x01}, + {0x8449, 0x01}, + {0x844a, 0x01}, + {0x844b, 0x01}, + {0x844c, 0x01}, + {0x844d, 0x01}, + {0x844e, 0x01}, + {0x844f, 0x01}, + {0x8450, 0x01}, + {0x8451, 0x01}, + {0x8452, 0x01}, + {0x8453, 0x01}, + {0x8454, 0x01}, + {0x8455, 0x01}, + {0x8456, 0x01}, + {0x8457, 0x01}, + {0x8458, 0x01}, + {0x8459, 0x01}, + {0x845a, 0x01}, + {0x845b, 0x01}, + {0x845c, 0x01}, + {0x845d, 0x01}, + {0x845e, 0x01}, + {0x845f, 0x01}, + {0x8460, 0x01}, + {0x8461, 0x01}, + {0x8462, 0x01}, + {0x8463, 0x01}, + {0x8464, 0x01}, + {0x8465, 0x01}, + {0x8466, 0x01}, + {0x8467, 0x01}, + {0x8468, 0x01}, + {0x8469, 0x01}, + {0x846a, 0x01}, + {0x846b, 0x01}, + {0x846c, 0x01}, + {0x846d, 0x01}, + {0x846e, 0x01}, + {0x846f, 0x01}, + {0x8470, 0x01}, + {0x8471, 0x01}, + {0x8472, 0x01}, + {0x8473, 0x01}, + {0x8474, 0x01}, + {0x8475, 0x01}, + {0x8476, 0x01}, + {0x8477, 0x01}, + {0x8478, 0x01}, + {0x8479, 0x01}, + {0x847a, 0x01}, + {0x847b, 0x01}, + {0x847c, 0x01}, + {0x847d, 0x01}, + {0x847e, 0x01}, + {0x8480, 0x01}, + {0x8481, 0x01}, + {0x8482, 0x01}, + {0x8483, 0x01}, + {0x8484, 0x01}, + {0x8485, 0x01}, + {0x8486, 0x01}, + {0x8487, 0x01}, + {0x8488, 0x01}, + {0x8489, 0x01}, + {0x848a, 0x01}, + {0x848b, 0x01}, + {0x848c, 0x01}, + {0x848d, 0x01}, + {0x848e, 0x01}, + {0x848f, 0x01}, + {0x8490, 0x01}, + {0x8491, 0x01}, + {0x8492, 0x01}, + {0x8493, 0x01}, + {0x8494, 0x01}, + {0x8495, 0x01}, + {0x8496, 0x01}, + {0x8497, 0x01}, + {0x8498, 0x01}, + {0x8499, 0x01}, + {0x849a, 0x01}, + {0x849b, 0x01}, + {0x849c, 0x01}, + {0x849d, 0x01}, + {0x849e, 0x01}, + {0x849f, 0x01}, + {0x84a0, 0x01}, + {0x84a1, 0x01}, + {0x84a2, 0x01}, + {0x84a3, 0x01}, + {0x84a4, 0x01}, + {0x84a5, 0x01}, + {0x84a6, 0x01}, + {0x84a7, 0x01}, + {0x84a8, 0x01}, + {0x84a9, 0x01}, + {0x84aa, 0x01}, + {0x84ab, 0x01}, + {0x84ac, 0x01}, + {0x84ad, 0x01}, + {0x84ae, 0x01}, + {0x84af, 0x01}, + {0x84b0, 0x01}, + {0x84b1, 0x01}, + {0x84b2, 0x01}, + {0x84b3, 0x01}, + {0x84b4, 0x01}, + {0x84b5, 0x01}, + {0x84b6, 0x01}, + {0x84b7, 0x01}, + {0x84b8, 0x01}, + {0x84b9, 0x01}, + {0x84ba, 0x01}, + {0x84bb, 0x01}, + {0x84bc, 0x01}, + {0x84bd, 0x01}, + {0x84be, 0x01}, + {0x84bf, 0x01}, + {0x84c0, 0x01}, + {0x84c1, 0x01}, + {0x84c2, 0x01}, + {0x84c3, 0x01}, + {0x84c4, 0x01}, + {0x84c5, 0x01}, + {0x84c6, 0x01}, + {0x84c7, 0x01}, + {0x84c8, 0x01}, + {0x84c9, 0x01}, + {0x84ca, 0x01}, + {0x84cb, 0x01}, + {0x84cc, 0x01}, + {0x84cd, 0x01}, + {0x84ce, 0x01}, + {0x84cf, 0x01}, + {0x84d0, 0x01}, + {0x84d1, 0x01}, + {0x84d2, 0x01}, + {0x84d3, 0x01}, + {0x84d4, 0x01}, + {0x84d5, 0x01}, + {0x84d6, 0x01}, + {0x84d7, 0x01}, + {0x84d8, 0x01}, + {0x84d9, 0x01}, + {0x84da, 0x01}, + {0x84db, 0x01}, + {0x84dc, 0x01}, + {0x84dd, 0x01}, + {0x84de, 0x01}, + {0x84df, 0x01}, + {0x84e0, 0x01}, + {0x84e1, 0x01}, + {0x84e2, 0x01}, + {0x84e3, 0x01}, + {0x84e4, 0x01}, + {0x84e5, 0x01}, + {0x84e6, 0x01}, + {0x84e7, 0x01}, + {0x84e8, 0x01}, + {0x84e9, 0x01}, + {0x84ea, 0x01}, + {0x84eb, 0x01}, + {0x84ec, 0x01}, + {0x84ed, 0x01}, + {0x84ee, 0x01}, + {0x84ef, 0x01}, + {0x84f0, 0x01}, + {0x84f1, 0x01}, + {0x84f2, 0x01}, + {0x84f3, 0x01}, + {0x84f4, 0x01}, + {0x84f5, 0x01}, + {0x84f6, 0x01}, + {0x84f7, 0x01}, + {0x84f8, 0x01}, + {0x84f9, 0x01}, + {0x84fa, 0x01}, + {0x84fb, 0x01}, + {0x84fc, 0x01}, + {0x84fd, 0x01}, + {0x84fe, 0x01}, + {0x8540, 0x01}, + {0x8541, 0x01}, + {0x8542, 0x01}, + {0x8543, 0x01}, + {0x8544, 0x01}, + {0x8545, 0x01}, + {0x8546, 0x01}, + {0x8547, 0x01}, + {0x8548, 0x01}, + {0x8549, 0x01}, + {0x854a, 0x01}, + {0x854b, 0x01}, + {0x854c, 0x01}, + {0x854d, 0x01}, + {0x854e, 0x01}, + {0x854f, 0x01}, + {0x8550, 0x01}, + {0x8551, 0x01}, + {0x8552, 0x01}, + {0x8553, 0x01}, + {0x8554, 0x01}, + {0x8555, 0x01}, + {0x8556, 0x01}, + {0x8557, 0x01}, + {0x8558, 0x01}, + {0x8559, 0x01}, + {0x855a, 0x01}, + {0x855b, 0x01}, + {0x855c, 0x01}, + {0x855d, 0x01}, + {0x855e, 0x01}, + {0x855f, 0x01}, + {0x8560, 0x01}, + {0x8561, 0x01}, + {0x8562, 0x01}, + {0x8563, 0x01}, + {0x8564, 0x01}, + {0x8565, 0x01}, + {0x8566, 0x01}, + {0x8567, 0x01}, + {0x8568, 0x01}, + {0x8569, 0x01}, + {0x856a, 0x01}, + {0x856b, 0x01}, + {0x856c, 0x01}, + {0x856d, 0x01}, + {0x856e, 0x01}, + {0x856f, 0x01}, + {0x8570, 0x01}, + {0x8571, 0x01}, + {0x8572, 0x01}, + {0x8573, 0x01}, + {0x8574, 0x01}, + {0x8575, 0x01}, + {0x8576, 0x01}, + {0x8577, 0x01}, + {0x8578, 0x01}, + {0x8579, 0x01}, + {0x857a, 0x01}, + {0x857b, 0x01}, + {0x857c, 0x01}, + {0x857d, 0x01}, + {0x857e, 0x01}, + {0x8580, 0x01}, + {0x8581, 0x01}, + {0x8582, 0x01}, + {0x8583, 0x01}, + {0x8584, 0x01}, + {0x8585, 0x01}, + {0x8586, 0x01}, + {0x8587, 0x01}, + {0x8588, 0x01}, + {0x8589, 0x01}, + {0x858a, 0x01}, + {0x858b, 0x01}, + {0x858c, 0x01}, + {0x858d, 0x01}, + {0x858e, 0x01}, + {0x858f, 0x01}, + {0x8590, 0x01}, + {0x8591, 0x01}, + {0x8592, 0x01}, + {0x8593, 0x01}, + {0x8594, 0x01}, + {0x8595, 0x01}, + {0x8596, 0x01}, + {0x8597, 0x01}, + {0x8598, 0x01}, + {0x8599, 0x01}, + {0x859a, 0x01}, + {0x859b, 0x01}, + {0x859c, 0x01}, + {0x859d, 0x01}, + {0x859e, 0x01}, + {0x859f, 0x01}, + {0x85a0, 0x01}, + {0x85a1, 0x01}, + {0x85a2, 0x01}, + {0x85a3, 0x01}, + {0x85a4, 0x01}, + {0x85a5, 0x01}, + {0x85a6, 0x01}, + {0x85a7, 0x01}, + {0x85a8, 0x01}, + {0x85a9, 0x01}, + {0x85aa, 0x01}, + {0x85ab, 0x01}, + {0x85ac, 0x01}, + {0x85ad, 0x01}, + {0x85ae, 0x01}, + {0x85af, 0x01}, + {0x85b0, 0x01}, + {0x85b1, 0x01}, + {0x85b2, 0x01}, + {0x85b3, 0x01}, + {0x85b4, 0x01}, + {0x85b5, 0x01}, + {0x85b6, 0x01}, + {0x85b7, 0x01}, + {0x85b8, 0x01}, + {0x85b9, 0x01}, + {0x85ba, 0x01}, + {0x85bb, 0x01}, + {0x85bc, 0x01}, + {0x85bd, 0x01}, + {0x85be, 0x01}, + {0x85bf, 0x01}, + {0x85c0, 0x01}, + {0x85c1, 0x01}, + {0x85c2, 0x01}, + {0x85c3, 0x01}, + {0x85c4, 0x01}, + {0x85c5, 0x01}, + {0x85c6, 0x01}, + {0x85c7, 0x01}, + {0x85c8, 0x01}, + {0x85c9, 0x01}, + {0x85ca, 0x01}, + {0x85cb, 0x01}, + {0x85cc, 0x01}, + {0x85cd, 0x01}, + {0x85ce, 0x01}, + {0x85cf, 0x01}, + {0x85d0, 0x01}, + {0x85d1, 0x01}, + {0x85d2, 0x01}, + {0x85d3, 0x01}, + {0x85d4, 0x01}, + {0x85d5, 0x01}, + {0x85d6, 0x01}, + {0x85d7, 0x01}, + {0x85d8, 0x01}, + {0x85d9, 0x01}, + {0x85da, 0x01}, + {0x85db, 0x01}, + {0x85dc, 0x01}, + {0x85dd, 0x01}, + {0x85de, 0x01}, + {0x85df, 0x01}, + {0x85e0, 0x01}, + {0x85e1, 0x01}, + {0x85e2, 0x01}, + {0x85e3, 0x01}, + {0x85e4, 0x01}, + {0x85e5, 0x01}, + {0x85e6, 0x01}, + {0x85e7, 0x01}, + {0x85e8, 0x01}, + {0x85e9, 0x01}, + {0x85ea, 0x01}, + {0x85eb, 0x01}, + {0x85ec, 0x01}, + {0x85ed, 0x01}, + {0x85ee, 0x01}, + {0x85ef, 0x01}, + {0x85f0, 0x01}, + {0x85f1, 0x01}, + {0x85f2, 0x01}, + {0x85f3, 0x01}, + {0x85f4, 0x01}, + {0x85f5, 0x01}, + {0x85f6, 0x01}, + {0x85f7, 0x01}, + {0x85f8, 0x01}, + {0x85f9, 0x01}, + {0x85fa, 0x01}, + {0x85fb, 0x01}, + {0x85fc, 0x01}, + {0x85fd, 0x01}, + {0x85fe, 0x01}, + {0x8640, 0x01}, + {0x8641, 0x01}, + {0x8642, 0x01}, + {0x8643, 0x01}, + {0x8644, 0x01}, + {0x8645, 0x01}, + {0x8646, 0x01}, + {0x8647, 0x01}, + {0x8648, 0x01}, + {0x8649, 0x01}, + {0x864a, 0x01}, + {0x864b, 0x01}, + {0x864c, 0x01}, + {0x864d, 0x01}, + {0x864e, 0x01}, + {0x864f, 0x01}, + {0x8650, 0x01}, + {0x8651, 0x01}, + {0x8652, 0x01}, + {0x8653, 0x01}, + {0x8654, 0x01}, + {0x8655, 0x01}, + {0x8656, 0x01}, + {0x8657, 0x01}, + {0x8658, 0x01}, + {0x8659, 0x01}, + {0x865a, 0x01}, + {0x865b, 0x01}, + {0x865c, 0x01}, + {0x865d, 0x01}, + {0x865e, 0x01}, + {0x865f, 0x01}, + {0x8660, 0x01}, + {0x8661, 0x01}, + {0x8662, 0x01}, + {0x8663, 0x01}, + {0x8664, 0x01}, + {0x8665, 0x01}, + {0x8666, 0x01}, + {0x8667, 0x01}, + {0x8668, 0x01}, + {0x8669, 0x01}, + {0x866a, 0x01}, + {0x866b, 0x01}, + {0x866c, 0x01}, + {0x866d, 0x01}, + {0x866e, 0x01}, + {0x866f, 0x01}, + {0x8670, 0x01}, + {0x8671, 0x01}, + {0x8672, 0x01}, + {0x8673, 0x01}, + {0x8674, 0x01}, + {0x8675, 0x01}, + {0x8676, 0x01}, + {0x8677, 0x01}, + {0x8678, 0x01}, + {0x8679, 0x01}, + {0x867a, 0x01}, + {0x867b, 0x01}, + {0x867c, 0x01}, + {0x867d, 0x01}, + {0x867e, 0x01}, + {0x8680, 0x01}, + {0x8681, 0x01}, + {0x8682, 0x01}, + {0x8683, 0x01}, + {0x8684, 0x01}, + {0x8685, 0x01}, + {0x8686, 0x01}, + {0x8687, 0x01}, + {0x8688, 0x01}, + {0x8689, 0x01}, + {0x868a, 0x01}, + {0x868b, 0x01}, + {0x868c, 0x01}, + {0x868d, 0x01}, + {0x868e, 0x01}, + {0x868f, 0x01}, + {0x8690, 0x01}, + {0x8691, 0x01}, + {0x8692, 0x01}, + {0x8693, 0x01}, + {0x8694, 0x01}, + {0x8695, 0x01}, + {0x8696, 0x01}, + {0x8697, 0x01}, + {0x8698, 0x01}, + {0x8699, 0x01}, + {0x869a, 0x01}, + {0x869b, 0x01}, + {0x869c, 0x01}, + {0x869d, 0x01}, + {0x869e, 0x01}, + {0x869f, 0x01}, + {0x86a0, 0x01}, + {0x86a1, 0x01}, + {0x86a2, 0x01}, + {0x86a3, 0x01}, + {0x86a4, 0x01}, + {0x86a5, 0x01}, + {0x86a6, 0x01}, + {0x86a7, 0x01}, + {0x86a8, 0x01}, + {0x86a9, 0x01}, + {0x86aa, 0x01}, + {0x86ab, 0x01}, + {0x86ac, 0x01}, + {0x86ad, 0x01}, + {0x86ae, 0x01}, + {0x86af, 0x01}, + {0x86b0, 0x01}, + {0x86b1, 0x01}, + {0x86b2, 0x01}, + {0x86b3, 0x01}, + {0x86b4, 0x01}, + {0x86b5, 0x01}, + {0x86b6, 0x01}, + {0x86b7, 0x01}, + {0x86b8, 0x01}, + {0x86b9, 0x01}, + {0x86ba, 0x01}, + {0x86bb, 0x01}, + {0x86bc, 0x01}, + {0x86bd, 0x01}, + {0x86be, 0x01}, + {0x86bf, 0x01}, + {0x86c0, 0x01}, + {0x86c1, 0x01}, + {0x86c2, 0x01}, + {0x86c3, 0x01}, + {0x86c4, 0x01}, + {0x86c5, 0x01}, + {0x86c6, 0x01}, + {0x86c7, 0x01}, + {0x86c8, 0x01}, + {0x86c9, 0x01}, + {0x86ca, 0x01}, + {0x86cb, 0x01}, + {0x86cc, 0x01}, + {0x86cd, 0x01}, + {0x86ce, 0x01}, + {0x86cf, 0x01}, + {0x86d0, 0x01}, + {0x86d1, 0x01}, + {0x86d2, 0x01}, + {0x86d3, 0x01}, + {0x86d4, 0x01}, + {0x86d5, 0x01}, + {0x86d6, 0x01}, + {0x86d7, 0x01}, + {0x86d8, 0x01}, + {0x86d9, 0x01}, + {0x86da, 0x01}, + {0x86db, 0x01}, + {0x86dc, 0x01}, + {0x86dd, 0x01}, + {0x86de, 0x01}, + {0x86df, 0x01}, + {0x86e0, 0x01}, + {0x86e1, 0x01}, + {0x86e2, 0x01}, + {0x86e3, 0x01}, + {0x86e4, 0x01}, + {0x86e5, 0x01}, + {0x86e6, 0x01}, + {0x86e7, 0x01}, + {0x86e8, 0x01}, + {0x86e9, 0x01}, + {0x86ea, 0x01}, + {0x86eb, 0x01}, + {0x86ec, 0x01}, + {0x86ed, 0x01}, + {0x86ee, 0x01}, + {0x86ef, 0x01}, + {0x86f0, 0x01}, + {0x86f1, 0x01}, + {0x86f2, 0x01}, + {0x86f3, 0x01}, + {0x86f4, 0x01}, + {0x86f5, 0x01}, + {0x86f6, 0x01}, + {0x86f7, 0x01}, + {0x86f8, 0x01}, + {0x86f9, 0x01}, + {0x86fa, 0x01}, + {0x86fb, 0x01}, + {0x86fc, 0x01}, + {0x86fd, 0x01}, + {0x86fe, 0x01}, + {0x8740, 0x01}, + {0x8741, 0x01}, + {0x8742, 0x01}, + {0x8743, 0x01}, + {0x8744, 0x01}, + {0x8745, 0x01}, + {0x8746, 0x01}, + {0x8747, 0x01}, + {0x8748, 0x01}, + {0x8749, 0x01}, + {0x874a, 0x01}, + {0x874b, 0x01}, + {0x874c, 0x01}, + {0x874d, 0x01}, + {0x874e, 0x01}, + {0x874f, 0x01}, + {0x8750, 0x01}, + {0x8751, 0x01}, + {0x8752, 0x01}, + {0x8753, 0x01}, + {0x8754, 0x01}, + {0x8755, 0x01}, + {0x8756, 0x01}, + {0x8757, 0x01}, + {0x8758, 0x01}, + {0x8759, 0x01}, + {0x875a, 0x01}, + {0x875b, 0x01}, + {0x875c, 0x01}, + {0x875d, 0x01}, + {0x875e, 0x01}, + {0x875f, 0x01}, + {0x8760, 0x01}, + {0x8761, 0x01}, + {0x8762, 0x01}, + {0x8763, 0x01}, + {0x8764, 0x01}, + {0x8765, 0x01}, + {0x8766, 0x01}, + {0x8767, 0x01}, + {0x8768, 0x01}, + {0x8769, 0x01}, + {0x876a, 0x01}, + {0x876b, 0x01}, + {0x876c, 0x01}, + {0x876d, 0x01}, + {0x876e, 0x01}, + {0x876f, 0x01}, + {0x8770, 0x01}, + {0x8771, 0x01}, + {0x8772, 0x01}, + {0x8773, 0x01}, + {0x8774, 0x01}, + {0x8775, 0x01}, + {0x8776, 0x01}, + {0x8777, 0x01}, + {0x8778, 0x01}, + {0x8779, 0x01}, + {0x877a, 0x01}, + {0x877b, 0x01}, + {0x877c, 0x01}, + {0x877d, 0x01}, + {0x877e, 0x01}, + {0x8780, 0x01}, + {0x8781, 0x01}, + {0x8782, 0x01}, + {0x8783, 0x01}, + {0x8784, 0x01}, + {0x8785, 0x01}, + {0x8786, 0x01}, + {0x8787, 0x01}, + {0x8788, 0x01}, + {0x8789, 0x01}, + {0x878a, 0x01}, + {0x878b, 0x01}, + {0x878c, 0x01}, + {0x878d, 0x01}, + {0x878e, 0x01}, + {0x878f, 0x01}, + {0x8790, 0x01}, + {0x8791, 0x01}, + {0x8792, 0x01}, + {0x8793, 0x01}, + {0x8794, 0x01}, + {0x8795, 0x01}, + {0x8796, 0x01}, + {0x8797, 0x01}, + {0x8798, 0x01}, + {0x8799, 0x01}, + {0x879a, 0x01}, + {0x879b, 0x01}, + {0x879c, 0x01}, + {0x879d, 0x01}, + {0x879e, 0x01}, + {0x879f, 0x01}, + {0x87a0, 0x01}, + {0x87a1, 0x01}, + {0x87a2, 0x01}, + {0x87a3, 0x01}, + {0x87a4, 0x01}, + {0x87a5, 0x01}, + {0x87a6, 0x01}, + {0x87a7, 0x01}, + {0x87a8, 0x01}, + {0x87a9, 0x01}, + {0x87aa, 0x01}, + {0x87ab, 0x01}, + {0x87ac, 0x01}, + {0x87ad, 0x01}, + {0x87ae, 0x01}, + {0x87af, 0x01}, + {0x87b0, 0x01}, + {0x87b1, 0x01}, + {0x87b2, 0x01}, + {0x87b3, 0x01}, + {0x87b4, 0x01}, + {0x87b5, 0x01}, + {0x87b6, 0x01}, + {0x87b7, 0x01}, + {0x87b8, 0x01}, + {0x87b9, 0x01}, + {0x87ba, 0x01}, + {0x87bb, 0x01}, + {0x87bc, 0x01}, + {0x87bd, 0x01}, + {0x87be, 0x01}, + {0x87bf, 0x01}, + {0x87c0, 0x01}, + {0x87c1, 0x01}, + {0x87c2, 0x01}, + {0x87c3, 0x01}, + {0x87c4, 0x01}, + {0x87c5, 0x01}, + {0x87c6, 0x01}, + {0x87c7, 0x01}, + {0x87c8, 0x01}, + {0x87c9, 0x01}, + {0x87ca, 0x01}, + {0x87cb, 0x01}, + {0x87cc, 0x01}, + {0x87cd, 0x01}, + {0x87ce, 0x01}, + {0x87cf, 0x01}, + {0x87d0, 0x01}, + {0x87d1, 0x01}, + {0x87d2, 0x01}, + {0x87d3, 0x01}, + {0x87d4, 0x01}, + {0x87d5, 0x01}, + {0x87d6, 0x01}, + {0x87d7, 0x01}, + {0x87d8, 0x01}, + {0x87d9, 0x01}, + {0x87da, 0x01}, + {0x87db, 0x01}, + {0x87dc, 0x01}, + {0x87dd, 0x01}, + {0x87de, 0x01}, + {0x87df, 0x01}, + {0x87e0, 0x01}, + {0x87e1, 0x01}, + {0x87e2, 0x01}, + {0x87e3, 0x01}, + {0x87e4, 0x01}, + {0x87e5, 0x01}, + {0x87e6, 0x01}, + {0x87e7, 0x01}, + {0x87e8, 0x01}, + {0x87e9, 0x01}, + {0x87ea, 0x01}, + {0x87eb, 0x01}, + {0x87ec, 0x01}, + {0x87ed, 0x01}, + {0x87ee, 0x01}, + {0x87ef, 0x01}, + {0x87f0, 0x01}, + {0x87f1, 0x01}, + {0x87f2, 0x01}, + {0x87f3, 0x01}, + {0x87f4, 0x01}, + {0x87f5, 0x01}, + {0x87f6, 0x01}, + {0x87f7, 0x01}, + {0x87f8, 0x01}, + {0x87f9, 0x01}, + {0x87fa, 0x01}, + {0x87fb, 0x01}, + {0x87fc, 0x01}, + {0x87fd, 0x01}, + {0x87fe, 0x01}, + {0x8840, 0x01}, + {0x8841, 0x01}, + {0x8842, 0x01}, + {0x8843, 0x01}, + {0x8844, 0x01}, + {0x8845, 0x01}, + {0x8846, 0x01}, + {0x8847, 0x01}, + {0x8848, 0x01}, + {0x8849, 0x01}, + {0x884a, 0x01}, + {0x884b, 0x01}, + {0x884c, 0x01}, + {0x884d, 0x01}, + {0x884e, 0x01}, + {0x884f, 0x01}, + {0x8850, 0x01}, + {0x8851, 0x01}, + {0x8852, 0x01}, + {0x8853, 0x01}, + {0x8854, 0x01}, + {0x8855, 0x01}, + {0x8856, 0x01}, + {0x8857, 0x01}, + {0x8858, 0x01}, + {0x8859, 0x01}, + {0x885a, 0x01}, + {0x885b, 0x01}, + {0x885c, 0x01}, + {0x885d, 0x01}, + {0x885e, 0x01}, + {0x885f, 0x01}, + {0x8860, 0x01}, + {0x8861, 0x01}, + {0x8862, 0x01}, + {0x8863, 0x01}, + {0x8864, 0x01}, + {0x8865, 0x01}, + {0x8866, 0x01}, + {0x8867, 0x01}, + {0x8868, 0x01}, + {0x8869, 0x01}, + {0x886a, 0x01}, + {0x886b, 0x01}, + {0x886c, 0x01}, + {0x886d, 0x01}, + {0x886e, 0x01}, + {0x886f, 0x01}, + {0x8870, 0x01}, + {0x8871, 0x01}, + {0x8872, 0x01}, + {0x8873, 0x01}, + {0x8874, 0x01}, + {0x8875, 0x01}, + {0x8876, 0x01}, + {0x8877, 0x01}, + {0x8878, 0x01}, + {0x8879, 0x01}, + {0x887a, 0x01}, + {0x887b, 0x01}, + {0x887c, 0x01}, + {0x887d, 0x01}, + {0x887e, 0x01}, + {0x8880, 0x01}, + {0x8881, 0x01}, + {0x8882, 0x01}, + {0x8883, 0x01}, + {0x8884, 0x01}, + {0x8885, 0x01}, + {0x8886, 0x01}, + {0x8887, 0x01}, + {0x8888, 0x01}, + {0x8889, 0x01}, + {0x888a, 0x01}, + {0x888b, 0x01}, + {0x888c, 0x01}, + {0x888d, 0x01}, + {0x888e, 0x01}, + {0x888f, 0x01}, + {0x8890, 0x01}, + {0x8891, 0x01}, + {0x8892, 0x01}, + {0x8893, 0x01}, + {0x8894, 0x01}, + {0x8895, 0x01}, + {0x8896, 0x01}, + {0x8897, 0x01}, + {0x8898, 0x01}, + {0x8899, 0x01}, + {0x889a, 0x01}, + {0x889b, 0x01}, + {0x889c, 0x01}, + {0x889d, 0x01}, + {0x889e, 0x01}, + {0x889f, 0x01}, + {0x88a0, 0x01}, + {0x88a1, 0x01}, + {0x88a2, 0x01}, + {0x88a3, 0x01}, + {0x88a4, 0x01}, + {0x88a5, 0x01}, + {0x88a6, 0x01}, + {0x88a7, 0x01}, + {0x88a8, 0x01}, + {0x88a9, 0x01}, + {0x88aa, 0x01}, + {0x88ab, 0x01}, + {0x88ac, 0x01}, + {0x88ad, 0x01}, + {0x88ae, 0x01}, + {0x88af, 0x01}, + {0x88b0, 0x01}, + {0x88b1, 0x01}, + {0x88b2, 0x01}, + {0x88b3, 0x01}, + {0x88b4, 0x01}, + {0x88b5, 0x01}, + {0x88b6, 0x01}, + {0x88b7, 0x01}, + {0x88b8, 0x01}, + {0x88b9, 0x01}, + {0x88ba, 0x01}, + {0x88bb, 0x01}, + {0x88bc, 0x01}, + {0x88bd, 0x01}, + {0x88be, 0x01}, + {0x88bf, 0x01}, + {0x88c0, 0x01}, + {0x88c1, 0x01}, + {0x88c2, 0x01}, + {0x88c3, 0x01}, + {0x88c4, 0x01}, + {0x88c5, 0x01}, + {0x88c6, 0x01}, + {0x88c7, 0x01}, + {0x88c8, 0x01}, + {0x88c9, 0x01}, + {0x88ca, 0x01}, + {0x88cb, 0x01}, + {0x88cc, 0x01}, + {0x88cd, 0x01}, + {0x88ce, 0x01}, + {0x88cf, 0x01}, + {0x88d0, 0x01}, + {0x88d1, 0x01}, + {0x88d2, 0x01}, + {0x88d3, 0x01}, + {0x88d4, 0x01}, + {0x88d5, 0x01}, + {0x88d6, 0x01}, + {0x88d7, 0x01}, + {0x88d8, 0x01}, + {0x88d9, 0x01}, + {0x88da, 0x01}, + {0x88db, 0x01}, + {0x88dc, 0x01}, + {0x88dd, 0x01}, + {0x88de, 0x01}, + {0x88df, 0x01}, + {0x88e0, 0x01}, + {0x88e1, 0x01}, + {0x88e2, 0x01}, + {0x88e3, 0x01}, + {0x88e4, 0x01}, + {0x88e5, 0x01}, + {0x88e6, 0x01}, + {0x88e7, 0x01}, + {0x88e8, 0x01}, + {0x88e9, 0x01}, + {0x88ea, 0x01}, + {0x88eb, 0x01}, + {0x88ec, 0x01}, + {0x88ed, 0x01}, + {0x88ee, 0x01}, + {0x88ef, 0x01}, + {0x88f0, 0x01}, + {0x88f1, 0x01}, + {0x88f2, 0x01}, + {0x88f3, 0x01}, + {0x88f4, 0x01}, + {0x88f5, 0x01}, + {0x88f6, 0x01}, + {0x88f7, 0x01}, + {0x88f8, 0x01}, + {0x88f9, 0x01}, + {0x88fa, 0x01}, + {0x88fb, 0x01}, + {0x88fc, 0x01}, + {0x88fd, 0x01}, + {0x88fe, 0x01}, + {0x8940, 0x01}, + {0x8941, 0x01}, + {0x8942, 0x01}, + {0x8943, 0x01}, + {0x8944, 0x01}, + {0x8945, 0x01}, + {0x8946, 0x01}, + {0x8947, 0x01}, + {0x8948, 0x01}, + {0x8949, 0x01}, + {0x894a, 0x01}, + {0x894b, 0x01}, + {0x894c, 0x01}, + {0x894d, 0x01}, + {0x894e, 0x01}, + {0x894f, 0x01}, + {0x8950, 0x01}, + {0x8951, 0x01}, + {0x8952, 0x01}, + {0x8953, 0x01}, + {0x8954, 0x01}, + {0x8955, 0x01}, + {0x8956, 0x01}, + {0x8957, 0x01}, + {0x8958, 0x01}, + {0x8959, 0x01}, + {0x895a, 0x01}, + {0x895b, 0x01}, + {0x895c, 0x01}, + {0x895d, 0x01}, + {0x895e, 0x01}, + {0x895f, 0x01}, + {0x8960, 0x01}, + {0x8961, 0x01}, + {0x8962, 0x01}, + {0x8963, 0x01}, + {0x8964, 0x01}, + {0x8965, 0x01}, + {0x8966, 0x01}, + {0x8967, 0x01}, + {0x8968, 0x01}, + {0x8969, 0x01}, + {0x896a, 0x01}, + {0x896b, 0x01}, + {0x896c, 0x01}, + {0x896d, 0x01}, + {0x896e, 0x01}, + {0x896f, 0x01}, + {0x8970, 0x01}, + {0x8971, 0x01}, + {0x8972, 0x01}, + {0x8973, 0x01}, + {0x8974, 0x01}, + {0x8975, 0x01}, + {0x8976, 0x01}, + {0x8977, 0x01}, + {0x8978, 0x01}, + {0x8979, 0x01}, + {0x897a, 0x01}, + {0x897b, 0x01}, + {0x897c, 0x01}, + {0x897d, 0x01}, + {0x897e, 0x01}, + {0x8980, 0x01}, + {0x8981, 0x01}, + {0x8982, 0x01}, + {0x8983, 0x01}, + {0x8984, 0x01}, + {0x8985, 0x01}, + {0x8986, 0x01}, + {0x8987, 0x01}, + {0x8988, 0x01}, + {0x8989, 0x01}, + {0x898a, 0x01}, + {0x898b, 0x01}, + {0x898c, 0x01}, + {0x898d, 0x01}, + {0x898e, 0x01}, + {0x898f, 0x01}, + {0x8990, 0x01}, + {0x8991, 0x01}, + {0x8992, 0x01}, + {0x8993, 0x01}, + {0x8994, 0x01}, + {0x8995, 0x01}, + {0x8996, 0x01}, + {0x8997, 0x01}, + {0x8998, 0x01}, + {0x8999, 0x01}, + {0x899a, 0x01}, + {0x899b, 0x01}, + {0x899c, 0x01}, + {0x899d, 0x01}, + {0x899e, 0x01}, + {0x899f, 0x01}, + {0x89a0, 0x01}, + {0x89a1, 0x01}, + {0x89a2, 0x01}, + {0x89a3, 0x01}, + {0x89a4, 0x01}, + {0x89a5, 0x01}, + {0x89a6, 0x01}, + {0x89a7, 0x01}, + {0x89a8, 0x01}, + {0x89a9, 0x01}, + {0x89aa, 0x01}, + {0x89ab, 0x01}, + {0x89ac, 0x01}, + {0x89ad, 0x01}, + {0x89ae, 0x01}, + {0x89af, 0x01}, + {0x89b0, 0x01}, + {0x89b1, 0x01}, + {0x89b2, 0x01}, + {0x89b3, 0x01}, + {0x89b4, 0x01}, + {0x89b5, 0x01}, + {0x89b6, 0x01}, + {0x89b7, 0x01}, + {0x89b8, 0x01}, + {0x89b9, 0x01}, + {0x89ba, 0x01}, + {0x89bb, 0x01}, + {0x89bc, 0x01}, + {0x89bd, 0x01}, + {0x89be, 0x01}, + {0x89bf, 0x01}, + {0x89c0, 0x01}, + {0x89c1, 0x01}, + {0x89c2, 0x01}, + {0x89c3, 0x01}, + {0x89c4, 0x01}, + {0x89c5, 0x01}, + {0x89c6, 0x01}, + {0x89c7, 0x01}, + {0x89c8, 0x01}, + {0x89c9, 0x01}, + {0x89ca, 0x01}, + {0x89cb, 0x01}, + {0x89cc, 0x01}, + {0x89cd, 0x01}, + {0x89ce, 0x01}, + {0x89cf, 0x01}, + {0x89d0, 0x01}, + {0x89d1, 0x01}, + {0x89d2, 0x01}, + {0x89d3, 0x01}, + {0x89d4, 0x01}, + {0x89d5, 0x01}, + {0x89d6, 0x01}, + {0x89d7, 0x01}, + {0x89d8, 0x01}, + {0x89d9, 0x01}, + {0x89da, 0x01}, + {0x89db, 0x01}, + {0x89dc, 0x01}, + {0x89dd, 0x01}, + {0x89de, 0x01}, + {0x89df, 0x01}, + {0x89e0, 0x01}, + {0x89e1, 0x01}, + {0x89e2, 0x01}, + {0x89e3, 0x01}, + {0x89e4, 0x01}, + {0x89e5, 0x01}, + {0x89e6, 0x01}, + {0x89e7, 0x01}, + {0x89e8, 0x01}, + {0x89e9, 0x01}, + {0x89ea, 0x01}, + {0x89eb, 0x01}, + {0x89ec, 0x01}, + {0x89ed, 0x01}, + {0x89ee, 0x01}, + {0x89ef, 0x01}, + {0x89f0, 0x01}, + {0x89f1, 0x01}, + {0x89f2, 0x01}, + {0x89f3, 0x01}, + {0x89f4, 0x01}, + {0x89f5, 0x01}, + {0x89f6, 0x01}, + {0x89f7, 0x01}, + {0x89f8, 0x01}, + {0x89f9, 0x01}, + {0x89fa, 0x01}, + {0x89fb, 0x01}, + {0x89fc, 0x01}, + {0x89fd, 0x01}, + {0x89fe, 0x01}, + {0x8a40, 0x01}, + {0x8a41, 0x01}, + {0x8a42, 0x01}, + {0x8a43, 0x01}, + {0x8a44, 0x01}, + {0x8a45, 0x01}, + {0x8a46, 0x01}, + {0x8a47, 0x01}, + {0x8a48, 0x01}, + {0x8a49, 0x01}, + {0x8a4a, 0x01}, + {0x8a4b, 0x01}, + {0x8a4c, 0x01}, + {0x8a4d, 0x01}, + {0x8a4e, 0x01}, + {0x8a4f, 0x01}, + {0x8a50, 0x01}, + {0x8a51, 0x01}, + {0x8a52, 0x01}, + {0x8a53, 0x01}, + {0x8a54, 0x01}, + {0x8a55, 0x01}, + {0x8a56, 0x01}, + {0x8a57, 0x01}, + {0x8a58, 0x01}, + {0x8a59, 0x01}, + {0x8a5a, 0x01}, + {0x8a5b, 0x01}, + {0x8a5c, 0x01}, + {0x8a5d, 0x01}, + {0x8a5e, 0x01}, + {0x8a5f, 0x01}, + {0x8a60, 0x01}, + {0x8a61, 0x01}, + {0x8a62, 0x01}, + {0x8a63, 0x01}, + {0x8a64, 0x01}, + {0x8a65, 0x01}, + {0x8a66, 0x01}, + {0x8a67, 0x01}, + {0x8a68, 0x01}, + {0x8a69, 0x01}, + {0x8a6a, 0x01}, + {0x8a6b, 0x01}, + {0x8a6c, 0x01}, + {0x8a6d, 0x01}, + {0x8a6e, 0x01}, + {0x8a6f, 0x01}, + {0x8a70, 0x01}, + {0x8a71, 0x01}, + {0x8a72, 0x01}, + {0x8a73, 0x01}, + {0x8a74, 0x01}, + {0x8a75, 0x01}, + {0x8a76, 0x01}, + {0x8a77, 0x01}, + {0x8a78, 0x01}, + {0x8a79, 0x01}, + {0x8a7a, 0x01}, + {0x8a7b, 0x01}, + {0x8a7c, 0x01}, + {0x8a7d, 0x01}, + {0x8a7e, 0x01}, + {0x8a80, 0x01}, + {0x8a81, 0x01}, + {0x8a82, 0x01}, + {0x8a83, 0x01}, + {0x8a84, 0x01}, + {0x8a85, 0x01}, + {0x8a86, 0x01}, + {0x8a87, 0x01}, + {0x8a88, 0x01}, + {0x8a89, 0x01}, + {0x8a8a, 0x01}, + {0x8a8b, 0x01}, + {0x8a8c, 0x01}, + {0x8a8d, 0x01}, + {0x8a8e, 0x01}, + {0x8a8f, 0x01}, + {0x8a90, 0x01}, + {0x8a91, 0x01}, + {0x8a92, 0x01}, + {0x8a93, 0x01}, + {0x8a94, 0x01}, + {0x8a95, 0x01}, + {0x8a96, 0x01}, + {0x8a97, 0x01}, + {0x8a98, 0x01}, + {0x8a99, 0x01}, + {0x8a9a, 0x01}, + {0x8a9b, 0x01}, + {0x8a9c, 0x01}, + {0x8a9d, 0x01}, + {0x8a9e, 0x01}, + {0x8a9f, 0x01}, + {0x8aa0, 0x01}, + {0x8aa1, 0x01}, + {0x8aa2, 0x01}, + {0x8aa3, 0x01}, + {0x8aa4, 0x01}, + {0x8aa5, 0x01}, + {0x8aa6, 0x01}, + {0x8aa7, 0x01}, + {0x8aa8, 0x01}, + {0x8aa9, 0x01}, + {0x8aaa, 0x01}, + {0x8aab, 0x01}, + {0x8aac, 0x01}, + {0x8aad, 0x01}, + {0x8aae, 0x01}, + {0x8aaf, 0x01}, + {0x8ab0, 0x01}, + {0x8ab1, 0x01}, + {0x8ab2, 0x01}, + {0x8ab3, 0x01}, + {0x8ab4, 0x01}, + {0x8ab5, 0x01}, + {0x8ab6, 0x01}, + {0x8ab7, 0x01}, + {0x8ab8, 0x01}, + {0x8ab9, 0x01}, + {0x8aba, 0x01}, + {0x8abb, 0x01}, + {0x8abc, 0x01}, + {0x8abd, 0x01}, + {0x8abe, 0x01}, + {0x8abf, 0x01}, + {0x8ac0, 0x01}, + {0x8ac1, 0x01}, + {0x8ac2, 0x01}, + {0x8ac3, 0x01}, + {0x8ac4, 0x01}, + {0x8ac5, 0x01}, + {0x8ac6, 0x01}, + {0x8ac7, 0x01}, + {0x8ac8, 0x01}, + {0x8ac9, 0x01}, + {0x8aca, 0x01}, + {0x8acb, 0x01}, + {0x8acc, 0x01}, + {0x8acd, 0x01}, + {0x8ace, 0x01}, + {0x8acf, 0x01}, + {0x8ad0, 0x01}, + {0x8ad1, 0x01}, + {0x8ad2, 0x01}, + {0x8ad3, 0x01}, + {0x8ad4, 0x01}, + {0x8ad5, 0x01}, + {0x8ad6, 0x01}, + {0x8ad7, 0x01}, + {0x8ad8, 0x01}, + {0x8ad9, 0x01}, + {0x8ada, 0x01}, + {0x8adb, 0x01}, + {0x8adc, 0x01}, + {0x8add, 0x01}, + {0x8ade, 0x01}, + {0x8adf, 0x01}, + {0x8ae0, 0x01}, + {0x8ae1, 0x01}, + {0x8ae2, 0x01}, + {0x8ae3, 0x01}, + {0x8ae4, 0x01}, + {0x8ae5, 0x01}, + {0x8ae6, 0x01}, + {0x8ae7, 0x01}, + {0x8ae8, 0x01}, + {0x8ae9, 0x01}, + {0x8aea, 0x01}, + {0x8aeb, 0x01}, + {0x8aec, 0x01}, + {0x8aed, 0x01}, + {0x8aee, 0x01}, + {0x8aef, 0x01}, + {0x8af0, 0x01}, + {0x8af1, 0x01}, + {0x8af2, 0x01}, + {0x8af3, 0x01}, + {0x8af4, 0x01}, + {0x8af5, 0x01}, + {0x8af6, 0x01}, + {0x8af7, 0x01}, + {0x8af8, 0x01}, + {0x8af9, 0x01}, + {0x8afa, 0x01}, + {0x8afb, 0x01}, + {0x8afc, 0x01}, + {0x8afd, 0x01}, + {0x8afe, 0x01}, + {0x8b40, 0x01}, + {0x8b41, 0x01}, + {0x8b42, 0x01}, + {0x8b43, 0x01}, + {0x8b44, 0x01}, + {0x8b45, 0x01}, + {0x8b46, 0x01}, + {0x8b47, 0x01}, + {0x8b48, 0x01}, + {0x8b49, 0x01}, + {0x8b4a, 0x01}, + {0x8b4b, 0x01}, + {0x8b4c, 0x01}, + {0x8b4d, 0x01}, + {0x8b4e, 0x01}, + {0x8b4f, 0x01}, + {0x8b50, 0x01}, + {0x8b51, 0x01}, + {0x8b52, 0x01}, + {0x8b53, 0x01}, + {0x8b54, 0x01}, + {0x8b55, 0x01}, + {0x8b56, 0x01}, + {0x8b57, 0x01}, + {0x8b58, 0x01}, + {0x8b59, 0x01}, + {0x8b5a, 0x01}, + {0x8b5b, 0x01}, + {0x8b5c, 0x01}, + {0x8b5d, 0x01}, + {0x8b5e, 0x01}, + {0x8b5f, 0x01}, + {0x8b60, 0x01}, + {0x8b61, 0x01}, + {0x8b62, 0x01}, + {0x8b63, 0x01}, + {0x8b64, 0x01}, + {0x8b65, 0x01}, + {0x8b66, 0x01}, + {0x8b67, 0x01}, + {0x8b68, 0x01}, + {0x8b69, 0x01}, + {0x8b6a, 0x01}, + {0x8b6b, 0x01}, + {0x8b6c, 0x01}, + {0x8b6d, 0x01}, + {0x8b6e, 0x01}, + {0x8b6f, 0x01}, + {0x8b70, 0x01}, + {0x8b71, 0x01}, + {0x8b72, 0x01}, + {0x8b73, 0x01}, + {0x8b74, 0x01}, + {0x8b75, 0x01}, + {0x8b76, 0x01}, + {0x8b77, 0x01}, + {0x8b78, 0x01}, + {0x8b79, 0x01}, + {0x8b7a, 0x01}, + {0x8b7b, 0x01}, + {0x8b7c, 0x01}, + {0x8b7d, 0x01}, + {0x8b7e, 0x01}, + {0x8b80, 0x01}, + {0x8b81, 0x01}, + {0x8b82, 0x01}, + {0x8b83, 0x01}, + {0x8b84, 0x01}, + {0x8b85, 0x01}, + {0x8b86, 0x01}, + {0x8b87, 0x01}, + {0x8b88, 0x01}, + {0x8b89, 0x01}, + {0x8b8a, 0x01}, + {0x8b8b, 0x01}, + {0x8b8c, 0x01}, + {0x8b8d, 0x01}, + {0x8b8e, 0x01}, + {0x8b8f, 0x01}, + {0x8b90, 0x01}, + {0x8b91, 0x01}, + {0x8b92, 0x01}, + {0x8b93, 0x01}, + {0x8b94, 0x01}, + {0x8b95, 0x01}, + {0x8b96, 0x01}, + {0x8b97, 0x01}, + {0x8b98, 0x01}, + {0x8b99, 0x01}, + {0x8b9a, 0x01}, + {0x8b9b, 0x01}, + {0x8b9c, 0x01}, + {0x8b9d, 0x01}, + {0x8b9e, 0x01}, + {0x8b9f, 0x01}, + {0x8ba0, 0x01}, + {0x8ba1, 0x01}, + {0x8ba2, 0x01}, + {0x8ba3, 0x01}, + {0x8ba4, 0x01}, + {0x8ba5, 0x01}, + {0x8ba6, 0x01}, + {0x8ba7, 0x01}, + {0x8ba8, 0x01}, + {0x8ba9, 0x01}, + {0x8baa, 0x01}, + {0x8bab, 0x01}, + {0x8bac, 0x01}, + {0x8bad, 0x01}, + {0x8bae, 0x01}, + {0x8baf, 0x01}, + {0x8bb0, 0x01}, + {0x8bb1, 0x01}, + {0x8bb2, 0x01}, + {0x8bb3, 0x01}, + {0x8bb4, 0x01}, + {0x8bb5, 0x01}, + {0x8bb6, 0x01}, + {0x8bb7, 0x01}, + {0x8bb8, 0x01}, + {0x8bb9, 0x01}, + {0x8bba, 0x01}, + {0x8bbb, 0x01}, + {0x8bbc, 0x01}, + {0x8bbd, 0x01}, + {0x8bbe, 0x01}, + {0x8bbf, 0x01}, + {0x8bc0, 0x01}, + {0x8bc1, 0x01}, + {0x8bc2, 0x01}, + {0x8bc3, 0x01}, + {0x8bc4, 0x01}, + {0x8bc5, 0x01}, + {0x8bc6, 0x01}, + {0x8bc7, 0x01}, + {0x8bc8, 0x01}, + {0x8bc9, 0x01}, + {0x8bca, 0x01}, + {0x8bcb, 0x01}, + {0x8bcc, 0x01}, + {0x8bcd, 0x01}, + {0x8bce, 0x01}, + {0x8bcf, 0x01}, + {0x8bd0, 0x01}, + {0x8bd1, 0x01}, + {0x8bd2, 0x01}, + {0x8bd3, 0x01}, + {0x8bd4, 0x01}, + {0x8bd5, 0x01}, + {0x8bd6, 0x01}, + {0x8bd7, 0x01}, + {0x8bd8, 0x01}, + {0x8bd9, 0x01}, + {0x8bda, 0x01}, + {0x8bdb, 0x01}, + {0x8bdc, 0x01}, + {0x8bdd, 0x01}, + {0x8bde, 0x01}, + {0x8bdf, 0x01}, + {0x8be0, 0x01}, + {0x8be1, 0x01}, + {0x8be2, 0x01}, + {0x8be3, 0x01}, + {0x8be4, 0x01}, + {0x8be5, 0x01}, + {0x8be6, 0x01}, + {0x8be7, 0x01}, + {0x8be8, 0x01}, + {0x8be9, 0x01}, + {0x8bea, 0x01}, + {0x8beb, 0x01}, + {0x8bec, 0x01}, + {0x8bed, 0x01}, + {0x8bee, 0x01}, + {0x8bef, 0x01}, + {0x8bf0, 0x01}, + {0x8bf1, 0x01}, + {0x8bf2, 0x01}, + {0x8bf3, 0x01}, + {0x8bf4, 0x01}, + {0x8bf5, 0x01}, + {0x8bf6, 0x01}, + {0x8bf7, 0x01}, + {0x8bf8, 0x01}, + {0x8bf9, 0x01}, + {0x8bfa, 0x01}, + {0x8bfb, 0x01}, + {0x8bfc, 0x01}, + {0x8bfd, 0x01}, + {0x8bfe, 0x01}, + {0x8c40, 0x01}, + {0x8c41, 0x01}, + {0x8c42, 0x01}, + {0x8c43, 0x01}, + {0x8c44, 0x01}, + {0x8c45, 0x01}, + {0x8c46, 0x01}, + {0x8c47, 0x01}, + {0x8c48, 0x01}, + {0x8c49, 0x01}, + {0x8c4a, 0x01}, + {0x8c4b, 0x01}, + {0x8c4c, 0x01}, + {0x8c4d, 0x01}, + {0x8c4e, 0x01}, + {0x8c4f, 0x01}, + {0x8c50, 0x01}, + {0x8c51, 0x01}, + {0x8c52, 0x01}, + {0x8c53, 0x01}, + {0x8c54, 0x01}, + {0x8c55, 0x01}, + {0x8c56, 0x01}, + {0x8c57, 0x01}, + {0x8c58, 0x01}, + {0x8c59, 0x01}, + {0x8c5a, 0x01}, + {0x8c5b, 0x01}, + {0x8c5c, 0x01}, + {0x8c5d, 0x01}, + {0x8c5e, 0x01}, + {0x8c5f, 0x01}, + {0x8c60, 0x01}, + {0x8c61, 0x01}, + {0x8c62, 0x01}, + {0x8c63, 0x01}, + {0x8c64, 0x01}, + {0x8c65, 0x01}, + {0x8c66, 0x01}, + {0x8c67, 0x01}, + {0x8c68, 0x01}, + {0x8c69, 0x01}, + {0x8c6a, 0x01}, + {0x8c6b, 0x01}, + {0x8c6c, 0x01}, + {0x8c6d, 0x01}, + {0x8c6e, 0x01}, + {0x8c6f, 0x01}, + {0x8c70, 0x01}, + {0x8c71, 0x01}, + {0x8c72, 0x01}, + {0x8c73, 0x01}, + {0x8c74, 0x01}, + {0x8c75, 0x01}, + {0x8c76, 0x01}, + {0x8c77, 0x01}, + {0x8c78, 0x01}, + {0x8c79, 0x01}, + {0x8c7a, 0x01}, + {0x8c7b, 0x01}, + {0x8c7c, 0x01}, + {0x8c7d, 0x01}, + {0x8c7e, 0x01}, + {0x8c80, 0x01}, + {0x8c81, 0x01}, + {0x8c82, 0x01}, + {0x8c83, 0x01}, + {0x8c84, 0x01}, + {0x8c85, 0x01}, + {0x8c86, 0x01}, + {0x8c87, 0x01}, + {0x8c88, 0x01}, + {0x8c89, 0x01}, + {0x8c8a, 0x01}, + {0x8c8b, 0x01}, + {0x8c8c, 0x01}, + {0x8c8d, 0x01}, + {0x8c8e, 0x01}, + {0x8c8f, 0x01}, + {0x8c90, 0x01}, + {0x8c91, 0x01}, + {0x8c92, 0x01}, + {0x8c93, 0x01}, + {0x8c94, 0x01}, + {0x8c95, 0x01}, + {0x8c96, 0x01}, + {0x8c97, 0x01}, + {0x8c98, 0x01}, + {0x8c99, 0x01}, + {0x8c9a, 0x01}, + {0x8c9b, 0x01}, + {0x8c9c, 0x01}, + {0x8c9d, 0x01}, + {0x8c9e, 0x01}, + {0x8c9f, 0x01}, + {0x8ca0, 0x01}, + {0x8ca1, 0x01}, + {0x8ca2, 0x01}, + {0x8ca3, 0x01}, + {0x8ca4, 0x01}, + {0x8ca5, 0x01}, + {0x8ca6, 0x01}, + {0x8ca7, 0x01}, + {0x8ca8, 0x01}, + {0x8ca9, 0x01}, + {0x8caa, 0x01}, + {0x8cab, 0x01}, + {0x8cac, 0x01}, + {0x8cad, 0x01}, + {0x8cae, 0x01}, + {0x8caf, 0x01}, + {0x8cb0, 0x01}, + {0x8cb1, 0x01}, + {0x8cb2, 0x01}, + {0x8cb3, 0x01}, + {0x8cb4, 0x01}, + {0x8cb5, 0x01}, + {0x8cb6, 0x01}, + {0x8cb7, 0x01}, + {0x8cb8, 0x01}, + {0x8cb9, 0x01}, + {0x8cba, 0x01}, + {0x8cbb, 0x01}, + {0x8cbc, 0x01}, + {0x8cbd, 0x01}, + {0x8cbe, 0x01}, + {0x8cbf, 0x01}, + {0x8cc0, 0x01}, + {0x8cc1, 0x01}, + {0x8cc2, 0x01}, + {0x8cc3, 0x01}, + {0x8cc4, 0x01}, + {0x8cc5, 0x01}, + {0x8cc6, 0x01}, + {0x8cc7, 0x01}, + {0x8cc8, 0x01}, + {0x8cc9, 0x01}, + {0x8cca, 0x01}, + {0x8ccc, 0x01}, + {0x8ccd, 0x01}, + {0x8cce, 0x01}, + {0x8ccf, 0x01}, + {0x8cd0, 0x01}, + {0x8cd1, 0x01}, + {0x8cd2, 0x01}, + {0x8cd3, 0x01}, + {0x8cd4, 0x01}, + {0x8cd5, 0x01}, + {0x8cd6, 0x01}, + {0x8cd7, 0x01}, + {0x8cd8, 0x01}, + {0x8cd9, 0x01}, + {0x8cda, 0x01}, + {0x8cdb, 0x01}, + {0x8cdc, 0x01}, + {0x8cdd, 0x01}, + {0x8cde, 0x01}, + {0x8cdf, 0x01}, + {0x8ce0, 0x01}, + {0x8ce1, 0x01}, + {0x8ce2, 0x01}, + {0x8ce3, 0x01}, + {0x8ce4, 0x01}, + {0x8ce5, 0x01}, + {0x8ce6, 0x01}, + {0x8ce7, 0x01}, + {0x8ce8, 0x01}, + {0x8ce9, 0x01}, + {0x8cea, 0x01}, + {0x8ceb, 0x01}, + {0x8cec, 0x01}, + {0x8ced, 0x01}, + {0x8cee, 0x01}, + {0x8cef, 0x01}, + {0x8cf0, 0x01}, + {0x8cf1, 0x01}, + {0x8cf2, 0x01}, + {0x8cf3, 0x01}, + {0x8cf4, 0x01}, + {0x8cf5, 0x01}, + {0x8cf6, 0x01}, + {0x8cf7, 0x01}, + {0x8cf8, 0x01}, + {0x8cf9, 0x01}, + {0x8cfa, 0x01}, + {0x8cfb, 0x01}, + {0x8cfc, 0x01}, + {0x8cfd, 0x01}, + {0x8cfe, 0x01}, + {0x8d40, 0x01}, + {0x8d41, 0x01}, + {0x8d42, 0x01}, + {0x8d43, 0x01}, + {0x8d44, 0x01}, + {0x8d45, 0x01}, + {0x8d46, 0x01}, + {0x8d47, 0x01}, + {0x8d48, 0x01}, + {0x8d49, 0x01}, + {0x8d4a, 0x01}, + {0x8d4b, 0x01}, + {0x8d4c, 0x01}, + {0x8d4d, 0x01}, + {0x8d4e, 0x01}, + {0x8d4f, 0x01}, + {0x8d50, 0x01}, + {0x8d51, 0x01}, + {0x8d52, 0x01}, + {0x8d53, 0x01}, + {0x8d54, 0x01}, + {0x8d55, 0x01}, + {0x8d56, 0x01}, + {0x8d57, 0x01}, + {0x8d58, 0x01}, + {0x8d59, 0x01}, + {0x8d5a, 0x01}, + {0x8d5b, 0x01}, + {0x8d5c, 0x01}, + {0x8d5d, 0x01}, + {0x8d5e, 0x01}, + {0x8d5f, 0x01}, + {0x8d60, 0x01}, + {0x8d61, 0x01}, + {0x8d62, 0x01}, + {0x8d63, 0x01}, + {0x8d64, 0x01}, + {0x8d65, 0x01}, + {0x8d66, 0x01}, + {0x8d67, 0x01}, + {0x8d68, 0x01}, + {0x8d69, 0x01}, + {0x8d6a, 0x01}, + {0x8d6b, 0x01}, + {0x8d6c, 0x01}, + {0x8d6d, 0x01}, + {0x8d6e, 0x01}, + {0x8d6f, 0x01}, + {0x8d70, 0x01}, + {0x8d71, 0x01}, + {0x8d72, 0x01}, + {0x8d73, 0x01}, + {0x8d74, 0x01}, + {0x8d75, 0x01}, + {0x8d76, 0x01}, + {0x8d77, 0x01}, + {0x8d78, 0x01}, + {0x8d79, 0x01}, + {0x8d7a, 0x01}, + {0x8d7b, 0x01}, + {0x8d7c, 0x01}, + {0x8d7d, 0x01}, + {0x8d7e, 0x01}, + {0x8d80, 0x01}, + {0x8d81, 0x01}, + {0x8d82, 0x01}, + {0x8d83, 0x01}, + {0x8d84, 0x01}, + {0x8d85, 0x01}, + {0x8d86, 0x01}, + {0x8d87, 0x01}, + {0x8d88, 0x01}, + {0x8d89, 0x01}, + {0x8d8a, 0x01}, + {0x8d8b, 0x01}, + {0x8d8c, 0x01}, + {0x8d8d, 0x01}, + {0x8d8e, 0x01}, + {0x8d8f, 0x01}, + {0x8d90, 0x01}, + {0x8d91, 0x01}, + {0x8d92, 0x01}, + {0x8d93, 0x01}, + {0x8d94, 0x01}, + {0x8d95, 0x01}, + {0x8d96, 0x01}, + {0x8d97, 0x01}, + {0x8d98, 0x01}, + {0x8d99, 0x01}, + {0x8d9a, 0x01}, + {0x8d9b, 0x01}, + {0x8d9c, 0x01}, + {0x8d9d, 0x01}, + {0x8d9e, 0x01}, + {0x8d9f, 0x01}, + {0x8da0, 0x01}, + {0x8da1, 0x01}, + {0x8da2, 0x01}, + {0x8da3, 0x01}, + {0x8da4, 0x01}, + {0x8da5, 0x01}, + {0x8da6, 0x01}, + {0x8da7, 0x01}, + {0x8da8, 0x01}, + {0x8da9, 0x01}, + {0x8daa, 0x01}, + {0x8dab, 0x01}, + {0x8dac, 0x01}, + {0x8dad, 0x01}, + {0x8dae, 0x01}, + {0x8daf, 0x01}, + {0x8db0, 0x01}, + {0x8db1, 0x01}, + {0x8db2, 0x01}, + {0x8db3, 0x01}, + {0x8db4, 0x01}, + {0x8db5, 0x01}, + {0x8db6, 0x01}, + {0x8db7, 0x01}, + {0x8db8, 0x01}, + {0x8db9, 0x01}, + {0x8dba, 0x01}, + {0x8dbb, 0x01}, + {0x8dbc, 0x01}, + {0x8dbd, 0x01}, + {0x8dbe, 0x01}, + {0x8dbf, 0x01}, + {0x8dc0, 0x01}, + {0x8dc1, 0x01}, + {0x8dc2, 0x01}, + {0x8dc3, 0x01}, + {0x8dc4, 0x01}, + {0x8dc5, 0x01}, + {0x8dc6, 0x01}, + {0x8dc7, 0x01}, + {0x8dc8, 0x01}, + {0x8dc9, 0x01}, + {0x8dca, 0x01}, + {0x8dcb, 0x01}, + {0x8dcc, 0x01}, + {0x8dcd, 0x01}, + {0x8dce, 0x01}, + {0x8dcf, 0x01}, + {0x8dd0, 0x01}, + {0x8dd1, 0x01}, + {0x8dd2, 0x01}, + {0x8dd3, 0x01}, + {0x8dd4, 0x01}, + {0x8dd5, 0x01}, + {0x8dd6, 0x01}, + {0x8dd7, 0x01}, + {0x8dd8, 0x01}, + {0x8dd9, 0x01}, + {0x8dda, 0x01}, + {0x8ddb, 0x01}, + {0x8ddc, 0x01}, + {0x8ddd, 0x01}, + {0x8dde, 0x01}, + {0x8ddf, 0x01}, + {0x8de0, 0x01}, + {0x8de1, 0x01}, + {0x8de2, 0x01}, + {0x8de3, 0x01}, + {0x8de4, 0x01}, + {0x8de5, 0x01}, + {0x8de6, 0x01}, + {0x8de7, 0x01}, + {0x8de8, 0x01}, + {0x8de9, 0x01}, + {0x8dea, 0x01}, + {0x8deb, 0x01}, + {0x8dec, 0x01}, + {0x8ded, 0x01}, + {0x8dee, 0x01}, + {0x8def, 0x01}, + {0x8df0, 0x01}, + {0x8df1, 0x01}, + {0x8df2, 0x01}, + {0x8df3, 0x01}, + {0x8df4, 0x01}, + {0x8df5, 0x01}, + {0x8df6, 0x01}, + {0x8df7, 0x01}, + {0x8df8, 0x01}, + {0x8df9, 0x01}, + {0x8dfa, 0x01}, + {0x8dfb, 0x01}, + {0x8dfc, 0x01}, + {0x8dfd, 0x01}, + {0x8dfe, 0x01}, + {0x8e40, 0x01}, + {0x8e41, 0x01}, + {0x8e42, 0x01}, + {0x8e43, 0x01}, + {0x8e44, 0x01}, + {0x8e45, 0x01}, + {0x8e46, 0x01}, + {0x8e47, 0x01}, + {0x8e48, 0x01}, + {0x8e49, 0x01}, + {0x8e4a, 0x01}, + {0x8e4b, 0x01}, + {0x8e4c, 0x01}, + {0x8e4d, 0x01}, + {0x8e4e, 0x01}, + {0x8e4f, 0x01}, + {0x8e50, 0x01}, + {0x8e51, 0x01}, + {0x8e52, 0x01}, + {0x8e53, 0x01}, + {0x8e54, 0x01}, + {0x8e55, 0x01}, + {0x8e56, 0x01}, + {0x8e57, 0x01}, + {0x8e58, 0x01}, + {0x8e59, 0x01}, + {0x8e5a, 0x01}, + {0x8e5b, 0x01}, + {0x8e5c, 0x01}, + {0x8e5d, 0x01}, + {0x8e5e, 0x01}, + {0x8e5f, 0x01}, + {0x8e60, 0x01}, + {0x8e61, 0x01}, + {0x8e62, 0x01}, + {0x8e63, 0x01}, + {0x8e64, 0x01}, + {0x8e65, 0x01}, + {0x8e66, 0x01}, + {0x8e67, 0x01}, + {0x8e68, 0x01}, + {0x8e69, 0x01}, + {0x8e6a, 0x01}, + {0x8e6b, 0x01}, + {0x8e6c, 0x01}, + {0x8e6d, 0x01}, + {0x8e6e, 0x01}, + {0x8e6f, 0x01}, + {0x8e70, 0x01}, + {0x8e71, 0x01}, + {0x8e72, 0x01}, + {0x8e73, 0x01}, + {0x8e74, 0x01}, + {0x8e75, 0x01}, + {0x8e76, 0x01}, + {0x8e77, 0x01}, + {0x8e78, 0x01}, + {0x8e79, 0x01}, + {0x8e7a, 0x01}, + {0x8e7b, 0x01}, + {0x8e7c, 0x01}, + {0x8e7d, 0x01}, + {0x8e7e, 0x01}, + {0x8e80, 0x01}, + {0x8e81, 0x01}, + {0x8e82, 0x01}, + {0x8e83, 0x01}, + {0x8e84, 0x01}, + {0x8e85, 0x01}, + {0x8e86, 0x01}, + {0x8e87, 0x01}, + {0x8e88, 0x01}, + {0x8e89, 0x01}, + {0x8e8a, 0x01}, + {0x8e8b, 0x01}, + {0x8e8c, 0x01}, + {0x8e8d, 0x01}, + {0x8e8e, 0x01}, + {0x8e8f, 0x01}, + {0x8e90, 0x01}, + {0x8e91, 0x01}, + {0x8e92, 0x01}, + {0x8e93, 0x01}, + {0x8e94, 0x01}, + {0x8e95, 0x01}, + {0x8e96, 0x01}, + {0x8e97, 0x01}, + {0x8e98, 0x01}, + {0x8e99, 0x01}, + {0x8e9a, 0x01}, + {0x8e9b, 0x01}, + {0x8e9c, 0x01}, + {0x8e9d, 0x01}, + {0x8e9e, 0x01}, + {0x8e9f, 0x01}, + {0x8ea0, 0x01}, + {0x8ea1, 0x01}, + {0x8ea2, 0x01}, + {0x8ea3, 0x01}, + {0x8ea4, 0x01}, + {0x8ea5, 0x01}, + {0x8ea6, 0x01}, + {0x8ea7, 0x01}, + {0x8ea8, 0x01}, + {0x8ea9, 0x01}, + {0x8eaa, 0x01}, + {0x8eab, 0x01}, + {0x8eac, 0x01}, + {0x8ead, 0x01}, + {0x8eae, 0x01}, + {0x8eaf, 0x01}, + {0x8eb0, 0x01}, + {0x8eb1, 0x01}, + {0x8eb2, 0x01}, + {0x8eb3, 0x01}, + {0x8eb4, 0x01}, + {0x8eb5, 0x01}, + {0x8eb6, 0x01}, + {0x8eb7, 0x01}, + {0x8eb8, 0x01}, + {0x8eb9, 0x01}, + {0x8eba, 0x01}, + {0x8ebb, 0x01}, + {0x8ebc, 0x01}, + {0x8ebd, 0x01}, + {0x8ebe, 0x01}, + {0x8ebf, 0x01}, + {0x8ec0, 0x01}, + {0x8ec1, 0x01}, + {0x8ec2, 0x01}, + {0x8ec3, 0x01}, + {0x8ec4, 0x01}, + {0x8ec5, 0x01}, + {0x8ec6, 0x01}, + {0x8ec7, 0x01}, + {0x8ec8, 0x01}, + {0x8ec9, 0x01}, + {0x8eca, 0x01}, + {0x8ecb, 0x01}, + {0x8ecc, 0x01}, + {0x8ecd, 0x01}, + {0x8ece, 0x01}, + {0x8ecf, 0x01}, + {0x8ed0, 0x01}, + {0x8ed1, 0x01}, + {0x8ed2, 0x01}, + {0x8ed3, 0x01}, + {0x8ed4, 0x01}, + {0x8ed5, 0x01}, + {0x8ed6, 0x01}, + {0x8ed7, 0x01}, + {0x8ed8, 0x01}, + {0x8ed9, 0x01}, + {0x8eda, 0x01}, + {0x8edb, 0x01}, + {0x8edc, 0x01}, + {0x8edd, 0x01}, + {0x8ede, 0x01}, + {0x8edf, 0x01}, + {0x8ee0, 0x01}, + {0x8ee1, 0x01}, + {0x8ee2, 0x01}, + {0x8ee3, 0x01}, + {0x8ee4, 0x01}, + {0x8ee5, 0x01}, + {0x8ee6, 0x01}, + {0x8ee7, 0x01}, + {0x8ee8, 0x01}, + {0x8ee9, 0x01}, + {0x8eea, 0x01}, + {0x8eeb, 0x01}, + {0x8eec, 0x01}, + {0x8eed, 0x01}, + {0x8eee, 0x01}, + {0x8eef, 0x01}, + {0x8ef0, 0x01}, + {0x8ef1, 0x01}, + {0x8ef2, 0x01}, + {0x8ef3, 0x01}, + {0x8ef4, 0x01}, + {0x8ef5, 0x01}, + {0x8ef6, 0x01}, + {0x8ef7, 0x01}, + {0x8ef8, 0x01}, + {0x8ef9, 0x01}, + {0x8efa, 0x01}, + {0x8efb, 0x01}, + {0x8efc, 0x01}, + {0x8efd, 0x01}, + {0x8efe, 0x01}, + {0x8f40, 0x01}, + {0x8f41, 0x01}, + {0x8f42, 0x01}, + {0x8f43, 0x01}, + {0x8f44, 0x01}, + {0x8f45, 0x01}, + {0x8f46, 0x01}, + {0x8f47, 0x01}, + {0x8f48, 0x01}, + {0x8f49, 0x01}, + {0x8f4a, 0x01}, + {0x8f4b, 0x01}, + {0x8f4c, 0x01}, + {0x8f4d, 0x01}, + {0x8f4e, 0x01}, + {0x8f4f, 0x01}, + {0x8f50, 0x01}, + {0x8f51, 0x01}, + {0x8f52, 0x01}, + {0x8f53, 0x01}, + {0x8f54, 0x01}, + {0x8f55, 0x01}, + {0x8f56, 0x01}, + {0x8f57, 0x01}, + {0x8f58, 0x01}, + {0x8f59, 0x01}, + {0x8f5a, 0x01}, + {0x8f5b, 0x01}, + {0x8f5c, 0x01}, + {0x8f5d, 0x01}, + {0x8f5e, 0x01}, + {0x8f5f, 0x01}, + {0x8f60, 0x01}, + {0x8f61, 0x01}, + {0x8f62, 0x01}, + {0x8f63, 0x01}, + {0x8f64, 0x01}, + {0x8f65, 0x01}, + {0x8f66, 0x01}, + {0x8f67, 0x01}, + {0x8f68, 0x01}, + {0x8f69, 0x01}, + {0x8f6a, 0x01}, + {0x8f6b, 0x01}, + {0x8f6c, 0x01}, + {0x8f6d, 0x01}, + {0x8f6e, 0x01}, + {0x8f6f, 0x01}, + {0x8f70, 0x01}, + {0x8f71, 0x01}, + {0x8f72, 0x01}, + {0x8f73, 0x01}, + {0x8f74, 0x01}, + {0x8f75, 0x01}, + {0x8f76, 0x01}, + {0x8f77, 0x01}, + {0x8f78, 0x01}, + {0x8f79, 0x01}, + {0x8f7a, 0x01}, + {0x8f7b, 0x01}, + {0x8f7c, 0x01}, + {0x8f7d, 0x01}, + {0x8f7e, 0x01}, + {0x8f80, 0x01}, + {0x8f81, 0x01}, + {0x8f82, 0x01}, + {0x8f83, 0x01}, + {0x8f84, 0x01}, + {0x8f85, 0x01}, + {0x8f86, 0x01}, + {0x8f87, 0x01}, + {0x8f88, 0x01}, + {0x8f89, 0x01}, + {0x8f8a, 0x01}, + {0x8f8b, 0x01}, + {0x8f8c, 0x01}, + {0x8f8d, 0x01}, + {0x8f8e, 0x01}, + {0x8f8f, 0x01}, + {0x8f90, 0x01}, + {0x8f91, 0x01}, + {0x8f92, 0x01}, + {0x8f93, 0x01}, + {0x8f94, 0x01}, + {0x8f95, 0x01}, + {0x8f96, 0x01}, + {0x8f97, 0x01}, + {0x8f98, 0x01}, + {0x8f99, 0x01}, + {0x8f9a, 0x01}, + {0x8f9b, 0x01}, + {0x8f9c, 0x01}, + {0x8f9d, 0x01}, + {0x8f9e, 0x01}, + {0x8f9f, 0x01}, + {0x8fa0, 0x01}, + {0x8fa1, 0x01}, + {0x8fa2, 0x01}, + {0x8fa3, 0x01}, + {0x8fa4, 0x01}, + {0x8fa5, 0x01}, + {0x8fa6, 0x01}, + {0x8fa7, 0x01}, + {0x8fa8, 0x01}, + {0x8fa9, 0x01}, + {0x8faa, 0x01}, + {0x8fab, 0x01}, + {0x8fac, 0x01}, + {0x8fad, 0x01}, + {0x8fae, 0x01}, + {0x8faf, 0x01}, + {0x8fb0, 0x01}, + {0x8fb1, 0x01}, + {0x8fb2, 0x01}, + {0x8fb3, 0x01}, + {0x8fb4, 0x01}, + {0x8fb5, 0x01}, + {0x8fb6, 0x01}, + {0x8fb7, 0x01}, + {0x8fb8, 0x01}, + {0x8fb9, 0x01}, + {0x8fba, 0x01}, + {0x8fbb, 0x01}, + {0x8fbc, 0x01}, + {0x8fbd, 0x01}, + {0x8fbe, 0x01}, + {0x8fbf, 0x01}, + {0x8fc0, 0x01}, + {0x8fc2, 0x01}, + {0x8fc3, 0x01}, + {0x8fc4, 0x01}, + {0x8fc5, 0x01}, + {0x8fc6, 0x01}, + {0x8fc7, 0x01}, + {0x8fc8, 0x01}, + {0x8fc9, 0x01}, + {0x8fca, 0x01}, + {0x8fcb, 0x01}, + {0x8fcc, 0x01}, + {0x8fcd, 0x01}, + {0x8fce, 0x01}, + {0x8fcf, 0x01}, + {0x8fd0, 0x01}, + {0x8fd1, 0x01}, + {0x8fd2, 0x01}, + {0x8fd3, 0x01}, + {0x8fd4, 0x01}, + {0x8fd5, 0x01}, + {0x8fd6, 0x01}, + {0x8fd7, 0x01}, + {0x8fd8, 0x01}, + {0x8fd9, 0x01}, + {0x8fda, 0x01}, + {0x8fdb, 0x01}, + {0x8fdc, 0x01}, + {0x8fdd, 0x01}, + {0x8fde, 0x01}, + {0x8fdf, 0x01}, + {0x8fe0, 0x01}, + {0x8fe1, 0x01}, + {0x8fe2, 0x01}, + {0x8fe3, 0x01}, + {0x8fe4, 0x01}, + {0x8fe5, 0x01}, + {0x8fe6, 0x01}, + {0x8fe7, 0x01}, + {0x8fe8, 0x01}, + {0x8fe9, 0x01}, + {0x8fea, 0x01}, + {0x8feb, 0x01}, + {0x8fec, 0x01}, + {0x8fed, 0x01}, + {0x8fee, 0x01}, + {0x8fef, 0x01}, + {0x8ff0, 0x01}, + {0x8ff1, 0x01}, + {0x8ff2, 0x01}, + {0x8ff3, 0x01}, + {0x8ff4, 0x01}, + {0x8ff5, 0x01}, + {0x8ff6, 0x01}, + {0x8ff7, 0x01}, + {0x8ff8, 0x01}, + {0x8ff9, 0x01}, + {0x8ffa, 0x01}, + {0x8ffb, 0x01}, + {0x8ffc, 0x01}, + {0x8ffd, 0x01}, + {0x8ffe, 0x01}, + {0x9040, 0x01}, + {0x9041, 0x01}, + {0x9042, 0x01}, + {0x9043, 0x01}, + {0x9044, 0x01}, + {0x9045, 0x01}, + {0x9046, 0x01}, + {0x9047, 0x01}, + {0x9048, 0x01}, + {0x9049, 0x01}, + {0x904a, 0x01}, + {0x904b, 0x01}, + {0x904c, 0x01}, + {0x904d, 0x01}, + {0x904e, 0x01}, + {0x904f, 0x01}, + {0x9050, 0x01}, + {0x9051, 0x01}, + {0x9052, 0x01}, + {0x9053, 0x01}, + {0x9054, 0x01}, + {0x9055, 0x01}, + {0x9056, 0x01}, + {0x9057, 0x01}, + {0x9058, 0x01}, + {0x9059, 0x01}, + {0x905a, 0x01}, + {0x905b, 0x01}, + {0x905c, 0x01}, + {0x905d, 0x01}, + {0x905e, 0x01}, + {0x905f, 0x01}, + {0x9060, 0x01}, + {0x9061, 0x01}, + {0x9062, 0x01}, + {0x9063, 0x01}, + {0x9064, 0x01}, + {0x9065, 0x01}, + {0x9066, 0x01}, + {0x9067, 0x01}, + {0x9068, 0x01}, + {0x9069, 0x01}, + {0x906a, 0x01}, + {0x906b, 0x01}, + {0x906c, 0x01}, + {0x906d, 0x01}, + {0x906e, 0x01}, + {0x906f, 0x01}, + {0x9070, 0x01}, + {0x9071, 0x01}, + {0x9072, 0x01}, + {0x9073, 0x01}, + {0x9074, 0x01}, + {0x9075, 0x01}, + {0x9076, 0x01}, + {0x9077, 0x01}, + {0x9078, 0x01}, + {0x9079, 0x01}, + {0x907a, 0x01}, + {0x907b, 0x01}, + {0x907c, 0x01}, + {0x907d, 0x01}, + {0x907e, 0x01}, + {0x9080, 0x01}, + {0x9081, 0x01}, + {0x9082, 0x01}, + {0x9083, 0x01}, + {0x9084, 0x01}, + {0x9085, 0x01}, + {0x9086, 0x01}, + {0x9087, 0x01}, + {0x9088, 0x01}, + {0x9089, 0x01}, + {0x908a, 0x01}, + {0x908b, 0x01}, + {0x908c, 0x01}, + {0x908d, 0x01}, + {0x908e, 0x01}, + {0x908f, 0x01}, + {0x9090, 0x01}, + {0x9091, 0x01}, + {0x9092, 0x01}, + {0x9093, 0x01}, + {0x9094, 0x01}, + {0x9095, 0x01}, + {0x9096, 0x01}, + {0x9097, 0x01}, + {0x9098, 0x01}, + {0x9099, 0x01}, + {0x909a, 0x01}, + {0x909b, 0x01}, + {0x909c, 0x01}, + {0x909d, 0x01}, + {0x909e, 0x01}, + {0x909f, 0x01}, + {0x90a0, 0x01}, + {0x90a1, 0x01}, + {0x90a2, 0x01}, + {0x90a3, 0x01}, + {0x90a4, 0x01}, + {0x90a5, 0x01}, + {0x90a6, 0x01}, + {0x90a7, 0x01}, + {0x90a8, 0x01}, + {0x90a9, 0x01}, + {0x90aa, 0x01}, + {0x90ab, 0x01}, + {0x90ac, 0x01}, + {0x90ad, 0x01}, + {0x90ae, 0x01}, + {0x90af, 0x01}, + {0x90b0, 0x01}, + {0x90b1, 0x01}, + {0x90b2, 0x01}, + {0x90b3, 0x01}, + {0x90b4, 0x01}, + {0x90b5, 0x01}, + {0x90b6, 0x01}, + {0x90b7, 0x01}, + {0x90b8, 0x01}, + {0x90b9, 0x01}, + {0x90ba, 0x01}, + {0x90bb, 0x01}, + {0x90bc, 0x01}, + {0x90bd, 0x01}, + {0x90be, 0x01}, + {0x90bf, 0x01}, + {0x90c0, 0x01}, + {0x90c1, 0x01}, + {0x90c2, 0x01}, + {0x90c3, 0x01}, + {0x90c4, 0x01}, + {0x90c5, 0x01}, + {0x90c6, 0x01}, + {0x90c7, 0x01}, + {0x90c8, 0x01}, + {0x90c9, 0x01}, + {0x90ca, 0x01}, + {0x90cb, 0x01}, + {0x90cc, 0x01}, + {0x90cd, 0x01}, + {0x90ce, 0x01}, + {0x90cf, 0x01}, + {0x90d0, 0x01}, + {0x90d1, 0x01}, + {0x90d2, 0x01}, + {0x90d3, 0x01}, + {0x90d4, 0x01}, + {0x90d5, 0x01}, + {0x90d6, 0x01}, + {0x90d7, 0x01}, + {0x90d8, 0x01}, + {0x90d9, 0x01}, + {0x90da, 0x01}, + {0x90db, 0x01}, + {0x90dc, 0x01}, + {0x90dd, 0x01}, + {0x90de, 0x01}, + {0x90df, 0x01}, + {0x90e0, 0x01}, + {0x90e1, 0x01}, + {0x90e2, 0x01}, + {0x90e3, 0x01}, + {0x90e4, 0x01}, + {0x90e5, 0x01}, + {0x90e6, 0x01}, + {0x90e7, 0x01}, + {0x90e8, 0x01}, + {0x90e9, 0x01}, + {0x90ea, 0x01}, + {0x90eb, 0x01}, + {0x90ec, 0x01}, + {0x90ed, 0x01}, + {0x90ee, 0x01}, + {0x90ef, 0x01}, + {0x90f0, 0x01}, + {0x90f1, 0x01}, + {0x90f2, 0x01}, + {0x90f3, 0x01}, + {0x90f4, 0x01}, + {0x90f5, 0x01}, + {0x90f6, 0x01}, + {0x90f7, 0x01}, + {0x90f8, 0x01}, + {0x90f9, 0x01}, + {0x90fa, 0x01}, + {0x90fb, 0x01}, + {0x90fc, 0x01}, + {0x90fd, 0x01}, + {0x90fe, 0x01}, + {0x9140, 0x01}, + {0x9141, 0x01}, + {0x9142, 0x01}, + {0x9143, 0x01}, + {0x9144, 0x01}, + {0x9145, 0x01}, + {0x9146, 0x01}, + {0x9147, 0x01}, + {0x9148, 0x01}, + {0x9149, 0x01}, + {0x914a, 0x01}, + {0x914b, 0x01}, + {0x914c, 0x01}, + {0x914d, 0x01}, + {0x914e, 0x01}, + {0x914f, 0x01}, + {0x9150, 0x01}, + {0x9151, 0x01}, + {0x9152, 0x01}, + {0x9153, 0x01}, + {0x9154, 0x01}, + {0x9155, 0x01}, + {0x9156, 0x01}, + {0x9157, 0x01}, + {0x9158, 0x01}, + {0x9159, 0x01}, + {0x915a, 0x01}, + {0x915b, 0x01}, + {0x915c, 0x01}, + {0x915d, 0x01}, + {0x915e, 0x01}, + {0x915f, 0x01}, + {0x9160, 0x01}, + {0x9161, 0x01}, + {0x9162, 0x01}, + {0x9163, 0x01}, + {0x9164, 0x01}, + {0x9165, 0x01}, + {0x9166, 0x01}, + {0x9167, 0x01}, + {0x9168, 0x01}, + {0x9169, 0x01}, + {0x916a, 0x01}, + {0x916b, 0x01}, + {0x916c, 0x01}, + {0x916d, 0x01}, + {0x916e, 0x01}, + {0x916f, 0x01}, + {0x9170, 0x01}, + {0x9171, 0x01}, + {0x9172, 0x01}, + {0x9173, 0x01}, + {0x9174, 0x01}, + {0x9175, 0x01}, + {0x9176, 0x01}, + {0x9177, 0x01}, + {0x9178, 0x01}, + {0x9179, 0x01}, + {0x917a, 0x01}, + {0x917b, 0x01}, + {0x917c, 0x01}, + {0x917d, 0x01}, + {0x917e, 0x01}, + {0x9180, 0x01}, + {0x9181, 0x01}, + {0x9182, 0x01}, + {0x9183, 0x01}, + {0x9184, 0x01}, + {0x9185, 0x01}, + {0x9186, 0x01}, + {0x9187, 0x01}, + {0x9188, 0x01}, + {0x9189, 0x01}, + {0x918a, 0x01}, + {0x918b, 0x01}, + {0x918c, 0x01}, + {0x918d, 0x01}, + {0x918e, 0x01}, + {0x918f, 0x01}, + {0x9190, 0x01}, + {0x9191, 0x01}, + {0x9192, 0x01}, + {0x9193, 0x01}, + {0x9194, 0x01}, + {0x9195, 0x01}, + {0x9196, 0x01}, + {0x9197, 0x01}, + {0x9198, 0x01}, + {0x9199, 0x01}, + {0x919a, 0x01}, + {0x919b, 0x01}, + {0x919c, 0x01}, + {0x919d, 0x01}, + {0x919e, 0x01}, + {0x919f, 0x01}, + {0x91a0, 0x01}, + {0x91a1, 0x01}, + {0x91a2, 0x01}, + {0x91a3, 0x01}, + {0x91a4, 0x01}, + {0x91a5, 0x01}, + {0x91a6, 0x01}, + {0x91a7, 0x01}, + {0x91a8, 0x01}, + {0x91a9, 0x01}, + {0x91aa, 0x01}, + {0x91ab, 0x01}, + {0x91ac, 0x01}, + {0x91ad, 0x01}, + {0x91ae, 0x01}, + {0x91af, 0x01}, + {0x91b0, 0x01}, + {0x91b1, 0x01}, + {0x91b2, 0x01}, + {0x91b3, 0x01}, + {0x91b4, 0x01}, + {0x91b5, 0x01}, + {0x91b6, 0x01}, + {0x91b7, 0x01}, + {0x91b8, 0x01}, + {0x91b9, 0x01}, + {0x91ba, 0x01}, + {0x91bb, 0x01}, + {0x91bc, 0x01}, + {0x91bd, 0x01}, + {0x91be, 0x01}, + {0x91bf, 0x01}, + {0x91c0, 0x01}, + {0x91c1, 0x01}, + {0x91c2, 0x01}, + {0x91c3, 0x01}, + {0x91c4, 0x01}, + {0x91c5, 0x01}, + {0x91c6, 0x01}, + {0x91c7, 0x01}, + {0x91c8, 0x01}, + {0x91c9, 0x01}, + {0x91ca, 0x01}, + {0x91cb, 0x01}, + {0x91cc, 0x01}, + {0x91cd, 0x01}, + {0x91ce, 0x01}, + {0x91cf, 0x01}, + {0x91d0, 0x01}, + {0x91d1, 0x01}, + {0x91d2, 0x01}, + {0x91d3, 0x01}, + {0x91d4, 0x01}, + {0x91d5, 0x01}, + {0x91d6, 0x01}, + {0x91d7, 0x01}, + {0x91d8, 0x01}, + {0x91d9, 0x01}, + {0x91da, 0x01}, + {0x91db, 0x01}, + {0x91dc, 0x01}, + {0x91dd, 0x01}, + {0x91de, 0x01}, + {0x91df, 0x01}, + {0x91e0, 0x01}, + {0x91e1, 0x01}, + {0x91e2, 0x01}, + {0x91e3, 0x01}, + {0x91e4, 0x01}, + {0x91e5, 0x01}, + {0x91e6, 0x01}, + {0x91e7, 0x01}, + {0x91e8, 0x01}, + {0x91e9, 0x01}, + {0x91ea, 0x01}, + {0x91eb, 0x01}, + {0x91ec, 0x01}, + {0x91ed, 0x01}, + {0x91ee, 0x01}, + {0x91ef, 0x01}, + {0x91f0, 0x01}, + {0x91f1, 0x01}, + {0x91f2, 0x01}, + {0x91f3, 0x01}, + {0x91f4, 0x01}, + {0x91f5, 0x01}, + {0x91f6, 0x01}, + {0x91f7, 0x01}, + {0x91f8, 0x01}, + {0x91f9, 0x01}, + {0x91fa, 0x01}, + {0x91fb, 0x01}, + {0x91fc, 0x01}, + {0x91fd, 0x01}, + {0x91fe, 0x01}, + {0x9240, 0x01}, + {0x9241, 0x01}, + {0x9242, 0x01}, + {0x9243, 0x01}, + {0x9244, 0x01}, + {0x9245, 0x01}, + {0x9246, 0x01}, + {0x9247, 0x01}, + {0x9248, 0x01}, + {0x9249, 0x01}, + {0x924a, 0x01}, + {0x924b, 0x01}, + {0x924c, 0x01}, + {0x924d, 0x01}, + {0x924e, 0x01}, + {0x924f, 0x01}, + {0x9250, 0x01}, + {0x9251, 0x01}, + {0x9252, 0x01}, + {0x9253, 0x01}, + {0x9254, 0x01}, + {0x9255, 0x01}, + {0x9256, 0x01}, + {0x9257, 0x01}, + {0x9258, 0x01}, + {0x9259, 0x01}, + {0x925a, 0x01}, + {0x925b, 0x01}, + {0x925c, 0x01}, + {0x925d, 0x01}, + {0x925e, 0x01}, + {0x925f, 0x01}, + {0x9260, 0x01}, + {0x9261, 0x01}, + {0x9262, 0x01}, + {0x9263, 0x01}, + {0x9264, 0x01}, + {0x9265, 0x01}, + {0x9266, 0x01}, + {0x9267, 0x01}, + {0x9268, 0x01}, + {0x9269, 0x01}, + {0x926a, 0x01}, + {0x926b, 0x01}, + {0x926c, 0x01}, + {0x926d, 0x01}, + {0x926e, 0x01}, + {0x926f, 0x01}, + {0x9270, 0x01}, + {0x9271, 0x01}, + {0x9272, 0x01}, + {0x9273, 0x01}, + {0x9274, 0x01}, + {0x9275, 0x01}, + {0x9276, 0x01}, + {0x9277, 0x01}, + {0x9278, 0x01}, + {0x9279, 0x01}, + {0x927a, 0x01}, + {0x927b, 0x01}, + {0x927c, 0x01}, + {0x927d, 0x01}, + {0x927e, 0x01}, + {0x9280, 0x01}, + {0x9281, 0x01}, + {0x9282, 0x01}, + {0x9283, 0x01}, + {0x9284, 0x01}, + {0x9285, 0x01}, + {0x9286, 0x01}, + {0x9287, 0x01}, + {0x9288, 0x01}, + {0x9289, 0x01}, + {0x928a, 0x01}, + {0x928b, 0x01}, + {0x928c, 0x01}, + {0x928d, 0x01}, + {0x928e, 0x01}, + {0x928f, 0x01}, + {0x9290, 0x01}, + {0x9291, 0x01}, + {0x9292, 0x01}, + {0x9293, 0x01}, + {0x9294, 0x01}, + {0x9295, 0x01}, + {0x9296, 0x01}, + {0x9297, 0x01}, + {0x9298, 0x01}, + {0x9299, 0x01}, + {0x929a, 0x01}, + {0x929b, 0x01}, + {0x929c, 0x01}, + {0x929d, 0x01}, + {0x929e, 0x01}, + {0x929f, 0x01}, + {0x92a0, 0x01}, + {0x92a1, 0x01}, + {0x92a2, 0x01}, + {0x92a3, 0x01}, + {0x92a4, 0x01}, + {0x92a5, 0x01}, + {0x92a6, 0x01}, + {0x92a7, 0x01}, + {0x92a8, 0x01}, + {0x92a9, 0x01}, + {0x92aa, 0x01}, + {0x92ab, 0x01}, + {0x92ac, 0x01}, + {0x92ad, 0x01}, + {0x92ae, 0x01}, + {0x92af, 0x01}, + {0x92b0, 0x01}, + {0x92b1, 0x01}, + {0x92b2, 0x01}, + {0x92b3, 0x01}, + {0x92b4, 0x01}, + {0x92b5, 0x01}, + {0x92b6, 0x01}, + {0x92b7, 0x01}, + {0x92b8, 0x01}, + {0x92b9, 0x01}, + {0x92ba, 0x01}, + {0x92bb, 0x01}, + {0x92bc, 0x01}, + {0x92bd, 0x01}, + {0x92be, 0x01}, + {0x92bf, 0x01}, + {0x92c0, 0x01}, + {0x92c1, 0x01}, + {0x92c2, 0x01}, + {0x92c3, 0x01}, + {0x92c4, 0x01}, + {0x92c5, 0x01}, + {0x92c6, 0x01}, + {0x92c7, 0x01}, + {0x92c8, 0x01}, + {0x92c9, 0x01}, + {0x92ca, 0x01}, + {0x92cb, 0x01}, + {0x92cc, 0x01}, + {0x92cd, 0x01}, + {0x92ce, 0x01}, + {0x92cf, 0x01}, + {0x92d0, 0x01}, + {0x92d1, 0x01}, + {0x92d2, 0x01}, + {0x92d3, 0x01}, + {0x92d4, 0x01}, + {0x92d5, 0x01}, + {0x92d6, 0x01}, + {0x92d7, 0x01}, + {0x92d8, 0x01}, + {0x92d9, 0x01}, + {0x92da, 0x01}, + {0x92db, 0x01}, + {0x92dc, 0x01}, + {0x92dd, 0x01}, + {0x92de, 0x01}, + {0x92df, 0x01}, + {0x92e0, 0x01}, + {0x92e1, 0x01}, + {0x92e2, 0x01}, + {0x92e3, 0x01}, + {0x92e4, 0x01}, + {0x92e5, 0x01}, + {0x92e6, 0x01}, + {0x92e7, 0x01}, + {0x92e8, 0x01}, + {0x92e9, 0x01}, + {0x92ea, 0x01}, + {0x92eb, 0x01}, + {0x92ec, 0x01}, + {0x92ed, 0x01}, + {0x92ee, 0x01}, + {0x92ef, 0x01}, + {0x92f0, 0x01}, + {0x92f1, 0x01}, + {0x92f2, 0x01}, + {0x92f3, 0x01}, + {0x92f4, 0x01}, + {0x92f5, 0x01}, + {0x92f6, 0x01}, + {0x92f7, 0x01}, + {0x92f8, 0x01}, + {0x92f9, 0x01}, + {0x92fa, 0x01}, + {0x92fb, 0x01}, + {0x92fc, 0x01}, + {0x92fd, 0x01}, + {0x92fe, 0x01}, + {0x9340, 0x01}, + {0x9341, 0x01}, + {0x9342, 0x01}, + {0x9343, 0x01}, + {0x9344, 0x01}, + {0x9345, 0x01}, + {0x9346, 0x01}, + {0x9347, 0x01}, + {0x9348, 0x01}, + {0x9349, 0x01}, + {0x934a, 0x01}, + {0x934b, 0x01}, + {0x934c, 0x01}, + {0x934d, 0x01}, + {0x934e, 0x01}, + {0x934f, 0x01}, + {0x9350, 0x01}, + {0x9351, 0x01}, + {0x9352, 0x01}, + {0x9353, 0x01}, + {0x9354, 0x01}, + {0x9355, 0x01}, + {0x9356, 0x01}, + {0x9357, 0x01}, + {0x9358, 0x01}, + {0x9359, 0x01}, + {0x935a, 0x01}, + {0x935b, 0x01}, + {0x935c, 0x01}, + {0x935d, 0x01}, + {0x935e, 0x01}, + {0x935f, 0x01}, + {0x9360, 0x01}, + {0x9361, 0x01}, + {0x9362, 0x01}, + {0x9363, 0x01}, + {0x9364, 0x01}, + {0x9365, 0x01}, + {0x9366, 0x01}, + {0x9367, 0x01}, + {0x9368, 0x01}, + {0x9369, 0x01}, + {0x936a, 0x01}, + {0x936b, 0x01}, + {0x936c, 0x01}, + {0x936d, 0x01}, + {0x936e, 0x01}, + {0x936f, 0x01}, + {0x9370, 0x01}, + {0x9371, 0x01}, + {0x9372, 0x01}, + {0x9373, 0x01}, + {0x9374, 0x01}, + {0x9375, 0x01}, + {0x9376, 0x01}, + {0x9377, 0x01}, + {0x9378, 0x01}, + {0x9379, 0x01}, + {0x937a, 0x01}, + {0x937b, 0x01}, + {0x937c, 0x01}, + {0x937d, 0x01}, + {0x937e, 0x01}, + {0x9380, 0x01}, + {0x9381, 0x01}, + {0x9382, 0x01}, + {0x9383, 0x01}, + {0x9384, 0x01}, + {0x9385, 0x01}, + {0x9386, 0x01}, + {0x9387, 0x01}, + {0x9388, 0x01}, + {0x9389, 0x01}, + {0x938a, 0x01}, + {0x938b, 0x01}, + {0x938c, 0x01}, + {0x938d, 0x01}, + {0x938e, 0x01}, + {0x938f, 0x01}, + {0x9390, 0x01}, + {0x9391, 0x01}, + {0x9392, 0x01}, + {0x9393, 0x01}, + {0x9394, 0x01}, + {0x9395, 0x01}, + {0x9396, 0x01}, + {0x9397, 0x01}, + {0x9398, 0x01}, + {0x9399, 0x01}, + {0x939a, 0x01}, + {0x939b, 0x01}, + {0x939c, 0x01}, + {0x939d, 0x01}, + {0x939e, 0x01}, + {0x939f, 0x01}, + {0x93a0, 0x01}, + {0x93a1, 0x01}, + {0x93a2, 0x01}, + {0x93a3, 0x01}, + {0x93a4, 0x01}, + {0x93a5, 0x01}, + {0x93a6, 0x01}, + {0x93a7, 0x01}, + {0x93a8, 0x01}, + {0x93a9, 0x01}, + {0x93aa, 0x01}, + {0x93ab, 0x01}, + {0x93ac, 0x01}, + {0x93ad, 0x01}, + {0x93ae, 0x01}, + {0x93af, 0x01}, + {0x93b0, 0x01}, + {0x93b1, 0x01}, + {0x93b2, 0x01}, + {0x93b3, 0x01}, + {0x93b4, 0x01}, + {0x93b5, 0x01}, + {0x93b6, 0x01}, + {0x93b7, 0x01}, + {0x93b8, 0x01}, + {0x93b9, 0x01}, + {0x93ba, 0x01}, + {0x93bb, 0x01}, + {0x93bc, 0x01}, + {0x93bd, 0x01}, + {0x93be, 0x01}, + {0x93bf, 0x01}, + {0x93c0, 0x01}, + {0x93c1, 0x01}, + {0x93c2, 0x01}, + {0x93c3, 0x01}, + {0x93c4, 0x01}, + {0x93c5, 0x01}, + {0x93c6, 0x01}, + {0x93c7, 0x01}, + {0x93c8, 0x01}, + {0x93c9, 0x01}, + {0x93ca, 0x01}, + {0x93cb, 0x01}, + {0x93cc, 0x01}, + {0x93cd, 0x01}, + {0x93ce, 0x01}, + {0x93cf, 0x01}, + {0x93d0, 0x01}, + {0x93d1, 0x01}, + {0x93d2, 0x01}, + {0x93d3, 0x01}, + {0x93d4, 0x01}, + {0x93d5, 0x01}, + {0x93d6, 0x01}, + {0x93d7, 0x01}, + {0x93d8, 0x01}, + {0x93d9, 0x01}, + {0x93da, 0x01}, + {0x93db, 0x01}, + {0x93dc, 0x01}, + {0x93dd, 0x01}, + {0x93de, 0x01}, + {0x93df, 0x01}, + {0x93e0, 0x01}, + {0x93e1, 0x01}, + {0x93e2, 0x01}, + {0x93e3, 0x01}, + {0x93e4, 0x01}, + {0x93e5, 0x01}, + {0x93e6, 0x01}, + {0x93e7, 0x01}, + {0x93e8, 0x01}, + {0x93e9, 0x01}, + {0x93ea, 0x01}, + {0x93eb, 0x01}, + {0x93ec, 0x01}, + {0x93ed, 0x01}, + {0x93ee, 0x01}, + {0x93ef, 0x01}, + {0x93f0, 0x01}, + {0x93f1, 0x01}, + {0x93f2, 0x01}, + {0x93f3, 0x01}, + {0x93f4, 0x01}, + {0x93f5, 0x01}, + {0x93f6, 0x01}, + {0x93f7, 0x01}, + {0x93f8, 0x01}, + {0x93f9, 0x01}, + {0x93fa, 0x01}, + {0x93fb, 0x01}, + {0x93fc, 0x01}, + {0x93fd, 0x01}, + {0x93fe, 0x01}, + {0x9440, 0x01}, + {0x9441, 0x01}, + {0x9442, 0x01}, + {0x9443, 0x01}, + {0x9444, 0x01}, + {0x9445, 0x01}, + {0x9446, 0x01}, + {0x9447, 0x01}, + {0x9448, 0x01}, + {0x9449, 0x01}, + {0x944a, 0x01}, + {0x944b, 0x01}, + {0x944c, 0x01}, + {0x944d, 0x01}, + {0x944e, 0x01}, + {0x944f, 0x01}, + {0x9450, 0x01}, + {0x9451, 0x01}, + {0x9452, 0x01}, + {0x9453, 0x01}, + {0x9454, 0x01}, + {0x9455, 0x01}, + {0x9456, 0x01}, + {0x9457, 0x01}, + {0x9458, 0x01}, + {0x9459, 0x01}, + {0x945a, 0x01}, + {0x945b, 0x01}, + {0x945c, 0x01}, + {0x945d, 0x01}, + {0x945e, 0x01}, + {0x945f, 0x01}, + {0x9460, 0x01}, + {0x9461, 0x01}, + {0x9462, 0x01}, + {0x9463, 0x01}, + {0x9464, 0x01}, + {0x9465, 0x01}, + {0x9466, 0x01}, + {0x9467, 0x01}, + {0x9468, 0x01}, + {0x9469, 0x01}, + {0x946a, 0x01}, + {0x946b, 0x01}, + {0x946c, 0x01}, + {0x946d, 0x01}, + {0x946e, 0x01}, + {0x946f, 0x01}, + {0x9470, 0x01}, + {0x9471, 0x01}, + {0x9472, 0x01}, + {0x9473, 0x01}, + {0x9474, 0x01}, + {0x9475, 0x01}, + {0x9476, 0x01}, + {0x9477, 0x01}, + {0x9478, 0x01}, + {0x9479, 0x01}, + {0x947a, 0x01}, + {0x947b, 0x01}, + {0x947c, 0x01}, + {0x947d, 0x01}, + {0x947e, 0x01}, + {0x9480, 0x01}, + {0x9481, 0x01}, + {0x9482, 0x01}, + {0x9483, 0x01}, + {0x9484, 0x01}, + {0x9485, 0x01}, + {0x9486, 0x01}, + {0x9487, 0x01}, + {0x9488, 0x01}, + {0x9489, 0x01}, + {0x948a, 0x01}, + {0x948b, 0x01}, + {0x948c, 0x01}, + {0x948d, 0x01}, + {0x948e, 0x01}, + {0x948f, 0x01}, + {0x9490, 0x01}, + {0x9491, 0x01}, + {0x9492, 0x01}, + {0x9493, 0x01}, + {0x9494, 0x01}, + {0x9495, 0x01}, + {0x9496, 0x01}, + {0x9497, 0x01}, + {0x9498, 0x01}, + {0x9499, 0x01}, + {0x949a, 0x01}, + {0x949b, 0x01}, + {0x949c, 0x01}, + {0x949d, 0x01}, + {0x949e, 0x01}, + {0x949f, 0x01}, + {0x94a0, 0x01}, + {0x94a1, 0x01}, + {0x94a2, 0x01}, + {0x94a3, 0x01}, + {0x94a4, 0x01}, + {0x94a5, 0x01}, + {0x94a6, 0x01}, + {0x94a7, 0x01}, + {0x94a8, 0x01}, + {0x94a9, 0x01}, + {0x94aa, 0x01}, + {0x94ab, 0x01}, + {0x94ac, 0x01}, + {0x94ad, 0x01}, + {0x94ae, 0x01}, + {0x94af, 0x01}, + {0x94b0, 0x01}, + {0x94b1, 0x01}, + {0x94b2, 0x01}, + {0x94b3, 0x01}, + {0x94b4, 0x01}, + {0x94b5, 0x01}, + {0x94b6, 0x01}, + {0x94b7, 0x01}, + {0x94b8, 0x01}, + {0x94b9, 0x01}, + {0x94ba, 0x01}, + {0x94bb, 0x01}, + {0x94bc, 0x01}, + {0x94bd, 0x01}, + {0x94be, 0x01}, + {0x94bf, 0x01}, + {0x94c0, 0x01}, + {0x94c1, 0x01}, + {0x94c2, 0x01}, + {0x94c3, 0x01}, + {0x94c4, 0x01}, + {0x94c5, 0x01}, + {0x94c6, 0x01}, + {0x94c7, 0x01}, + {0x94c8, 0x01}, + {0x94ca, 0x01}, + {0x94cb, 0x01}, + {0x94cc, 0x01}, + {0x94cd, 0x01}, + {0x94ce, 0x01}, + {0x94cf, 0x01}, + {0x94d0, 0x01}, + {0x94d1, 0x01}, + {0x94d2, 0x01}, + {0x94d3, 0x01}, + {0x94d4, 0x01}, + {0x94d5, 0x01}, + {0x94d6, 0x01}, + {0x94d7, 0x01}, + {0x94d8, 0x01}, + {0x94d9, 0x01}, + {0x94da, 0x01}, + {0x94db, 0x01}, + {0x94dc, 0x01}, + {0x94dd, 0x01}, + {0x94de, 0x01}, + {0x94df, 0x01}, + {0x94e0, 0x01}, + {0x94e1, 0x01}, + {0x94e2, 0x01}, + {0x94e3, 0x01}, + {0x94e4, 0x01}, + {0x94e5, 0x01}, + {0x94e6, 0x01}, + {0x94e7, 0x01}, + {0x94e8, 0x01}, + {0x94e9, 0x01}, + {0x94ea, 0x01}, + {0x94eb, 0x01}, + {0x94ec, 0x01}, + {0x94ed, 0x01}, + {0x94ee, 0x01}, + {0x94ef, 0x01}, + {0x94f0, 0x01}, + {0x94f1, 0x01}, + {0x94f2, 0x01}, + {0x94f3, 0x01}, + {0x94f4, 0x01}, + {0x94f5, 0x01}, + {0x94f6, 0x01}, + {0x94f7, 0x01}, + {0x94f8, 0x01}, + {0x94f9, 0x01}, + {0x94fa, 0x01}, + {0x94fb, 0x01}, + {0x94fc, 0x01}, + {0x94fd, 0x01}, + {0x94fe, 0x01}, + {0x9540, 0x01}, + {0x9541, 0x01}, + {0x9542, 0x01}, + {0x9543, 0x01}, + {0x9544, 0x01}, + {0x9545, 0x01}, + {0x9546, 0x01}, + {0x9547, 0x01}, + {0x9548, 0x01}, + {0x9549, 0x01}, + {0x954a, 0x01}, + {0x954b, 0x01}, + {0x954c, 0x01}, + {0x954d, 0x01}, + {0x954e, 0x01}, + {0x954f, 0x01}, + {0x9550, 0x01}, + {0x9551, 0x01}, + {0x9552, 0x01}, + {0x9553, 0x01}, + {0x9554, 0x01}, + {0x9555, 0x01}, + {0x9556, 0x01}, + {0x9557, 0x01}, + {0x9558, 0x01}, + {0x9559, 0x01}, + {0x955a, 0x01}, + {0x955b, 0x01}, + {0x955c, 0x01}, + {0x955d, 0x01}, + {0x955e, 0x01}, + {0x955f, 0x01}, + {0x9560, 0x01}, + {0x9561, 0x01}, + {0x9562, 0x01}, + {0x9563, 0x01}, + {0x9564, 0x01}, + {0x9565, 0x01}, + {0x9566, 0x01}, + {0x9567, 0x01}, + {0x9568, 0x01}, + {0x9569, 0x01}, + {0x956a, 0x01}, + {0x956b, 0x01}, + {0x956c, 0x01}, + {0x956d, 0x01}, + {0x956e, 0x01}, + {0x956f, 0x01}, + {0x9570, 0x01}, + {0x9571, 0x01}, + {0x9572, 0x01}, + {0x9573, 0x01}, + {0x9574, 0x01}, + {0x9575, 0x01}, + {0x9576, 0x01}, + {0x9577, 0x01}, + {0x9578, 0x01}, + {0x9579, 0x01}, + {0x957a, 0x01}, + {0x957b, 0x01}, + {0x957c, 0x01}, + {0x957d, 0x01}, + {0x957e, 0x01}, + {0x9580, 0x01}, + {0x9581, 0x01}, + {0x9582, 0x01}, + {0x9583, 0x01}, + {0x9584, 0x01}, + {0x9585, 0x01}, + {0x9586, 0x01}, + {0x9587, 0x01}, + {0x9588, 0x01}, + {0x9589, 0x01}, + {0x958a, 0x01}, + {0x958b, 0x01}, + {0x958c, 0x01}, + {0x958d, 0x01}, + {0x958e, 0x01}, + {0x958f, 0x01}, + {0x9590, 0x01}, + {0x9591, 0x01}, + {0x9592, 0x01}, + {0x9593, 0x01}, + {0x9594, 0x01}, + {0x9595, 0x01}, + {0x9596, 0x01}, + {0x9597, 0x01}, + {0x9598, 0x01}, + {0x9599, 0x01}, + {0x959a, 0x01}, + {0x959b, 0x01}, + {0x959c, 0x01}, + {0x959d, 0x01}, + {0x959e, 0x01}, + {0x959f, 0x01}, + {0x95a0, 0x01}, + {0x95a1, 0x01}, + {0x95a2, 0x01}, + {0x95a3, 0x01}, + {0x95a4, 0x01}, + {0x95a5, 0x01}, + {0x95a6, 0x01}, + {0x95a7, 0x01}, + {0x95a8, 0x01}, + {0x95a9, 0x01}, + {0x95aa, 0x01}, + {0x95ab, 0x01}, + {0x95ac, 0x01}, + {0x95ad, 0x01}, + {0x95ae, 0x01}, + {0x95af, 0x01}, + {0x95b0, 0x01}, + {0x95b1, 0x01}, + {0x95b2, 0x01}, + {0x95b3, 0x01}, + {0x95b4, 0x01}, + {0x95b5, 0x01}, + {0x95b6, 0x01}, + {0x95b7, 0x01}, + {0x95b8, 0x01}, + {0x95b9, 0x01}, + {0x95ba, 0x01}, + {0x95bb, 0x01}, + {0x95bc, 0x01}, + {0x95bd, 0x01}, + {0x95be, 0x01}, + {0x95bf, 0x01}, + {0x95c0, 0x01}, + {0x95c1, 0x01}, + {0x95c2, 0x01}, + {0x95c3, 0x01}, + {0x95c4, 0x01}, + {0x95c5, 0x01}, + {0x95c6, 0x01}, + {0x95c7, 0x01}, + {0x95c8, 0x01}, + {0x95c9, 0x01}, + {0x95ca, 0x01}, + {0x95cb, 0x01}, + {0x95cc, 0x01}, + {0x95cd, 0x01}, + {0x95ce, 0x01}, + {0x95cf, 0x01}, + {0x95d0, 0x01}, + {0x95d1, 0x01}, + {0x95d2, 0x01}, + {0x95d3, 0x01}, + {0x95d4, 0x01}, + {0x95d5, 0x01}, + {0x95d6, 0x01}, + {0x95d7, 0x01}, + {0x95d8, 0x01}, + {0x95d9, 0x01}, + {0x95da, 0x01}, + {0x95db, 0x01}, + {0x95dc, 0x01}, + {0x95dd, 0x01}, + {0x95de, 0x01}, + {0x95df, 0x01}, + {0x95e0, 0x01}, + {0x95e1, 0x01}, + {0x95e2, 0x01}, + {0x95e3, 0x01}, + {0x95e4, 0x01}, + {0x95e5, 0x01}, + {0x95e6, 0x01}, + {0x95e7, 0x01}, + {0x95e8, 0x01}, + {0x95ea, 0x01}, + {0x95eb, 0x01}, + {0x95ec, 0x01}, + {0x95ed, 0x01}, + {0x95ee, 0x01}, + {0x95ef, 0x01}, + {0x95f0, 0x01}, + {0x95f1, 0x01}, + {0x95f2, 0x01}, + {0x95f3, 0x01}, + {0x95f4, 0x01}, + {0x95f5, 0x01}, + {0x95f6, 0x01}, + {0x95f7, 0x01}, + {0x95f8, 0x01}, + {0x95f9, 0x01}, + {0x95fa, 0x01}, + {0x95fb, 0x01}, + {0x95fc, 0x01}, + {0x95fd, 0x01}, + {0x95fe, 0x01}, + {0x9640, 0x01}, + {0x9641, 0x01}, + {0x9642, 0x01}, + {0x9643, 0x01}, + {0x9644, 0x01}, + {0x9645, 0x01}, + {0x9646, 0x01}, + {0x9648, 0x01}, + {0x9649, 0x01}, + {0x964a, 0x01}, + {0x964b, 0x01}, + {0x964c, 0x01}, + {0x964d, 0x01}, + {0x964e, 0x01}, + {0x964f, 0x01}, + {0x9650, 0x01}, + {0x9651, 0x01}, + {0x9652, 0x01}, + {0x9653, 0x01}, + {0x9654, 0x01}, + {0x9655, 0x01}, + {0x9656, 0x01}, + {0x9657, 0x01}, + {0x9658, 0x01}, + {0x9659, 0x01}, + {0x965a, 0x01}, + {0x965b, 0x01}, + {0x965c, 0x01}, + {0x965d, 0x01}, + {0x965e, 0x01}, + {0x965f, 0x01}, + {0x9660, 0x01}, + {0x9661, 0x01}, + {0x9662, 0x01}, + {0x9663, 0x01}, + {0x9664, 0x01}, + {0x9665, 0x01}, + {0x9666, 0x01}, + {0x9667, 0x01}, + {0x9668, 0x01}, + {0x9669, 0x01}, + {0x966a, 0x01}, + {0x966b, 0x01}, + {0x966c, 0x01}, + {0x966d, 0x01}, + {0x966e, 0x01}, + {0x966f, 0x01}, + {0x9670, 0x01}, + {0x9671, 0x01}, + {0x9672, 0x01}, + {0x9673, 0x01}, + {0x9674, 0x01}, + {0x9675, 0x01}, + {0x9676, 0x01}, + {0x9677, 0x01}, + {0x9678, 0x01}, + {0x9679, 0x01}, + {0x967a, 0x01}, + {0x967b, 0x01}, + {0x967c, 0x01}, + {0x967d, 0x01}, + {0x967e, 0x01}, + {0x9680, 0x01}, + {0x9681, 0x01}, + {0x9682, 0x01}, + {0x9683, 0x01}, + {0x9684, 0x01}, + {0x9685, 0x01}, + {0x9686, 0x01}, + {0x9687, 0x01}, + {0x9688, 0x01}, + {0x9689, 0x01}, + {0x968a, 0x01}, + {0x968b, 0x01}, + {0x968c, 0x01}, + {0x968d, 0x01}, + {0x968e, 0x01}, + {0x968f, 0x01}, + {0x9690, 0x01}, + {0x9691, 0x01}, + {0x9692, 0x01}, + {0x9693, 0x01}, + {0x9694, 0x01}, + {0x9695, 0x01}, + {0x9696, 0x01}, + {0x9697, 0x01}, + {0x9698, 0x01}, + {0x9699, 0x01}, + {0x969a, 0x01}, + {0x969b, 0x01}, + {0x969c, 0x01}, + {0x969d, 0x01}, + {0x969e, 0x01}, + {0x969f, 0x01}, + {0x96a0, 0x01}, + {0x96a1, 0x01}, + {0x96a2, 0x01}, + {0x96a3, 0x01}, + {0x96a4, 0x01}, + {0x96a5, 0x01}, + {0x96a6, 0x01}, + {0x96a7, 0x01}, + {0x96a8, 0x01}, + {0x96a9, 0x01}, + {0x96aa, 0x01}, + {0x96ab, 0x01}, + {0x96ac, 0x01}, + {0x96ad, 0x01}, + {0x96ae, 0x01}, + {0x96af, 0x01}, + {0x96b0, 0x01}, + {0x96b1, 0x01}, + {0x96b2, 0x01}, + {0x96b3, 0x01}, + {0x96b4, 0x01}, + {0x96b5, 0x01}, + {0x96b6, 0x01}, + {0x96b7, 0x01}, + {0x96b8, 0x01}, + {0x96b9, 0x01}, + {0x96ba, 0x01}, + {0x96bb, 0x01}, + {0x96bc, 0x01}, + {0x96bd, 0x01}, + {0x96be, 0x01}, + {0x96bf, 0x01}, + {0x96c0, 0x01}, + {0x96c1, 0x01}, + {0x96c2, 0x01}, + {0x96c3, 0x01}, + {0x96c4, 0x01}, + {0x96c5, 0x01}, + {0x96c6, 0x01}, + {0x96c7, 0x01}, + {0x96c8, 0x01}, + {0x96c9, 0x01}, + {0x96ca, 0x01}, + {0x96cb, 0x01}, + {0x96cc, 0x01}, + {0x96cd, 0x01}, + {0x96ce, 0x01}, + {0x96cf, 0x01}, + {0x96d0, 0x01}, + {0x96d1, 0x01}, + {0x96d2, 0x01}, + {0x96d3, 0x01}, + {0x96d4, 0x01}, + {0x96d5, 0x01}, + {0x96d6, 0x01}, + {0x96d7, 0x01}, + {0x96d8, 0x01}, + {0x96d9, 0x01}, + {0x96da, 0x01}, + {0x96db, 0x01}, + {0x96dc, 0x01}, + {0x96dd, 0x01}, + {0x96de, 0x01}, + {0x96df, 0x01}, + {0x96e0, 0x01}, + {0x96e1, 0x01}, + {0x96e2, 0x01}, + {0x96e3, 0x01}, + {0x96e4, 0x01}, + {0x96e5, 0x01}, + {0x96e6, 0x01}, + {0x96e7, 0x01}, + {0x96e8, 0x01}, + {0x96e9, 0x01}, + {0x96ea, 0x01}, + {0x96eb, 0x01}, + {0x96ec, 0x01}, + {0x96ed, 0x01}, + {0x96ee, 0x01}, + {0x96ef, 0x01}, + {0x96f0, 0x01}, + {0x96f1, 0x01}, + {0x96f2, 0x01}, + {0x96f3, 0x01}, + {0x96f4, 0x01}, + {0x96f5, 0x01}, + {0x96f6, 0x01}, + {0x96f7, 0x01}, + {0x96f8, 0x01}, + {0x96f9, 0x01}, + {0x96fa, 0x01}, + {0x96fb, 0x01}, + {0x96fc, 0x01}, + {0x96fd, 0x01}, + {0x9740, 0x01}, + {0x9741, 0x01}, + {0x9742, 0x01}, + {0x9743, 0x01}, + {0x9744, 0x01}, + {0x9745, 0x01}, + {0x9746, 0x01}, + {0x9747, 0x01}, + {0x9748, 0x01}, + {0x9749, 0x01}, + {0x974a, 0x01}, + {0x974b, 0x01}, + {0x974c, 0x01}, + {0x974d, 0x01}, + {0x974e, 0x01}, + {0x974f, 0x01}, + {0x9750, 0x01}, + {0x9751, 0x01}, + {0x9752, 0x01}, + {0x9753, 0x01}, + {0x9754, 0x01}, + {0x9755, 0x01}, + {0x9756, 0x01}, + {0x9757, 0x01}, + {0x9758, 0x01}, + {0x9759, 0x01}, + {0x975a, 0x01}, + {0x975b, 0x01}, + {0x975c, 0x01}, + {0x975d, 0x01}, + {0x975e, 0x01}, + {0x975f, 0x01}, + {0x9760, 0x01}, + {0x9761, 0x01}, + {0x9762, 0x01}, + {0x9763, 0x01}, + {0x9764, 0x01}, + {0x9765, 0x01}, + {0x9766, 0x01}, + {0x9767, 0x01}, + {0x9768, 0x01}, + {0x9769, 0x01}, + {0x976a, 0x01}, + {0x976b, 0x01}, + {0x976c, 0x01}, + {0x976d, 0x01}, + {0x976e, 0x01}, + {0x976f, 0x01}, + {0x9770, 0x01}, + {0x9771, 0x01}, + {0x9772, 0x01}, + {0x9773, 0x01}, + {0x9774, 0x01}, + {0x9775, 0x01}, + {0x9776, 0x01}, + {0x9777, 0x01}, + {0x9778, 0x01}, + {0x9779, 0x01}, + {0x977a, 0x01}, + {0x977b, 0x01}, + {0x977c, 0x01}, + {0x977d, 0x01}, + {0x977e, 0x01}, + {0x9780, 0x01}, + {0x9781, 0x01}, + {0x9782, 0x01}, + {0x9783, 0x01}, + {0x9784, 0x01}, + {0x9785, 0x01}, + {0x9786, 0x01}, + {0x9787, 0x01}, + {0x9788, 0x01}, + {0x9789, 0x01}, + {0x978a, 0x01}, + {0x978b, 0x01}, + {0x978c, 0x01}, + {0x978d, 0x01}, + {0x978e, 0x01}, + {0x978f, 0x01}, + {0x9790, 0x01}, + {0x9791, 0x01}, + {0x9792, 0x01}, + {0x9793, 0x01}, + {0x9794, 0x01}, + {0x9795, 0x01}, + {0x9796, 0x01}, + {0x9797, 0x01}, + {0x9798, 0x01}, + {0x9799, 0x01}, + {0x979a, 0x01}, + {0x979b, 0x01}, + {0x979c, 0x01}, + {0x979d, 0x01}, + {0x979e, 0x01}, + {0x979f, 0x01}, + {0x97a0, 0x01}, + {0x97a1, 0x01}, + {0x97a2, 0x01}, + {0x97a3, 0x01}, + {0x97a4, 0x01}, + {0x97a5, 0x01}, + {0x97a6, 0x01}, + {0x97a7, 0x01}, + {0x97a8, 0x01}, + {0x97a9, 0x01}, + {0x97aa, 0x01}, + {0x97ab, 0x01}, + {0x97ac, 0x01}, + {0x97ad, 0x01}, + {0x97ae, 0x01}, + {0x97af, 0x01}, + {0x97b0, 0x01}, + {0x97b1, 0x01}, + {0x97b2, 0x01}, + {0x97b3, 0x01}, + {0x97b4, 0x01}, + {0x97b5, 0x01}, + {0x97b6, 0x01}, + {0x97b7, 0x01}, + {0x97b8, 0x01}, + {0x97b9, 0x01}, + {0x97ba, 0x01}, + {0x97bb, 0x01}, + {0x97bc, 0x01}, + {0x97bd, 0x01}, + {0x97be, 0x01}, + {0x97bf, 0x01}, + {0x97c0, 0x01}, + {0x97c1, 0x01}, + {0x97c2, 0x01}, + {0x97c3, 0x01}, + {0x97c4, 0x01}, + {0x97c5, 0x01}, + {0x97c6, 0x01}, + {0x97c7, 0x01}, + {0x97c8, 0x01}, + {0x97c9, 0x01}, + {0x97ca, 0x01}, + {0x97cb, 0x01}, + {0x97cc, 0x01}, + {0x97cd, 0x01}, + {0x97ce, 0x01}, + {0x97cf, 0x01}, + {0x97d0, 0x01}, + {0x97d1, 0x01}, + {0x97d2, 0x01}, + {0x97d3, 0x01}, + {0x97d4, 0x01}, + {0x97d5, 0x01}, + {0x97d6, 0x01}, + {0x97d7, 0x01}, + {0x97d8, 0x01}, + {0x97d9, 0x01}, + {0x97da, 0x01}, + {0x97db, 0x01}, + {0x97dc, 0x01}, + {0x97dd, 0x01}, + {0x97de, 0x01}, + {0x97df, 0x01}, + {0x97e0, 0x01}, + {0x97e1, 0x01}, + {0x97e2, 0x01}, + {0x97e3, 0x01}, + {0x97e4, 0x01}, + {0x97e5, 0x01}, + {0x97e6, 0x01}, + {0x97e7, 0x01}, + {0x97e8, 0x01}, + {0x97e9, 0x01}, + {0x97ea, 0x01}, + {0x97eb, 0x01}, + {0x97ec, 0x01}, + {0x97ed, 0x01}, + {0x97ee, 0x01}, + {0x97ef, 0x01}, + {0x97f0, 0x01}, + {0x97f1, 0x01}, + {0x97f2, 0x01}, + {0x97f3, 0x01}, + {0x97f4, 0x01}, + {0x97f5, 0x01}, + {0x97f6, 0x01}, + {0x97f7, 0x01}, + {0x97f8, 0x01}, + {0x97f9, 0x01}, + {0x97fa, 0x01}, + {0x97fb, 0x01}, + {0x97fc, 0x01}, + {0x97fd, 0x01}, + {0x97fe, 0x01}, + {0x9840, 0x01}, + {0x9841, 0x01}, + {0x9842, 0x01}, + {0x9843, 0x01}, + {0x9844, 0x01}, + {0x9845, 0x01}, + {0x9846, 0x01}, + {0x9847, 0x01}, + {0x9848, 0x01}, + {0x9849, 0x01}, + {0x984a, 0x01}, + {0x984b, 0x01}, + {0x984c, 0x01}, + {0x984d, 0x01}, + {0x984e, 0x01}, + {0x984f, 0x01}, + {0x9850, 0x01}, + {0x9851, 0x01}, + {0x9852, 0x01}, + {0x9853, 0x01}, + {0x9854, 0x01}, + {0x9855, 0x01}, + {0x9856, 0x01}, + {0x9857, 0x01}, + {0x9858, 0x01}, + {0x9859, 0x01}, + {0x985a, 0x01}, + {0x985b, 0x01}, + {0x985c, 0x01}, + {0x985d, 0x01}, + {0x985e, 0x01}, + {0x985f, 0x01}, + {0x9860, 0x01}, + {0x9861, 0x01}, + {0x9862, 0x01}, + {0x9863, 0x01}, + {0x9864, 0x01}, + {0x9865, 0x01}, + {0x9866, 0x01}, + {0x9867, 0x01}, + {0x9868, 0x01}, + {0x9869, 0x01}, + {0x986a, 0x01}, + {0x986b, 0x01}, + {0x986c, 0x01}, + {0x986d, 0x01}, + {0x986e, 0x01}, + {0x986f, 0x01}, + {0x9870, 0x01}, + {0x9871, 0x01}, + {0x9872, 0x01}, + {0x9873, 0x01}, + {0x9874, 0x01}, + {0x9875, 0x01}, + {0x9876, 0x01}, + {0x9877, 0x01}, + {0x9878, 0x01}, + {0x9879, 0x01}, + {0x987a, 0x01}, + {0x987b, 0x01}, + {0x987c, 0x01}, + {0x987d, 0x01}, + {0x987e, 0x01}, + {0x9880, 0x01}, + {0x9881, 0x01}, + {0x9882, 0x01}, + {0x9883, 0x01}, + {0x9884, 0x01}, + {0x9885, 0x01}, + {0x9886, 0x01}, + {0x9887, 0x01}, + {0x9888, 0x01}, + {0x9889, 0x01}, + {0x988a, 0x01}, + {0x988b, 0x01}, + {0x988c, 0x01}, + {0x988d, 0x01}, + {0x988e, 0x01}, + {0x988f, 0x01}, + {0x9890, 0x01}, + {0x9891, 0x01}, + {0x9892, 0x01}, + {0x9893, 0x01}, + {0x9894, 0x01}, + {0x9895, 0x01}, + {0x9896, 0x01}, + {0x9897, 0x01}, + {0x9898, 0x01}, + {0x9899, 0x01}, + {0x989a, 0x01}, + {0x989b, 0x01}, + {0x989c, 0x01}, + {0x989d, 0x01}, + {0x989e, 0x01}, + {0x989f, 0x01}, + {0x98a0, 0x01}, + {0x98a1, 0x01}, + {0x98a2, 0x01}, + {0x98a3, 0x01}, + {0x98a4, 0x01}, + {0x98a5, 0x01}, + {0x98a6, 0x01}, + {0x98a7, 0x01}, + {0x98a8, 0x01}, + {0x98a9, 0x01}, + {0x98aa, 0x01}, + {0x98ab, 0x01}, + {0x98ac, 0x01}, + {0x98ad, 0x01}, + {0x98ae, 0x01}, + {0x98af, 0x01}, + {0x98b0, 0x01}, + {0x98b1, 0x01}, + {0x98b2, 0x01}, + {0x98b3, 0x01}, + {0x98b4, 0x01}, + {0x98b5, 0x01}, + {0x98b6, 0x01}, + {0x98b7, 0x01}, + {0x98b8, 0x01}, + {0x98b9, 0x01}, + {0x98ba, 0x01}, + {0x98bb, 0x01}, + {0x98bc, 0x01}, + {0x98bd, 0x01}, + {0x98be, 0x01}, + {0x98bf, 0x01}, + {0x98c0, 0x01}, + {0x98c1, 0x01}, + {0x98c2, 0x01}, + {0x98c3, 0x01}, + {0x98c4, 0x01}, + {0x98c5, 0x01}, + {0x98c6, 0x01}, + {0x98c7, 0x01}, + {0x98c8, 0x01}, + {0x98c9, 0x01}, + {0x98ca, 0x01}, + {0x98cb, 0x01}, + {0x98cc, 0x01}, + {0x98cd, 0x01}, + {0x98ce, 0x01}, + {0x98cf, 0x01}, + {0x98d0, 0x01}, + {0x98d1, 0x01}, + {0x98d2, 0x01}, + {0x98d3, 0x01}, + {0x98d4, 0x01}, + {0x98d5, 0x01}, + {0x98d6, 0x01}, + {0x98d7, 0x01}, + {0x98d8, 0x01}, + {0x98d9, 0x01}, + {0x98da, 0x01}, + {0x98db, 0x01}, + {0x98dc, 0x01}, + {0x98dd, 0x01}, + {0x98de, 0x01}, + {0x98df, 0x01}, + {0x98e0, 0x01}, + {0x98e1, 0x01}, + {0x98e2, 0x01}, + {0x98e3, 0x01}, + {0x98e4, 0x01}, + {0x98e5, 0x01}, + {0x98e6, 0x01}, + {0x98e7, 0x01}, + {0x98e8, 0x01}, + {0x98e9, 0x01}, + {0x98ea, 0x01}, + {0x98eb, 0x01}, + {0x98ec, 0x01}, + {0x98ed, 0x01}, + {0x98ee, 0x01}, + {0x98ef, 0x01}, + {0x98f0, 0x01}, + {0x98f1, 0x01}, + {0x98f2, 0x01}, + {0x98f3, 0x01}, + {0x98f4, 0x01}, + {0x98f5, 0x01}, + {0x98f6, 0x01}, + {0x98f7, 0x01}, + {0x98f8, 0x01}, + {0x98f9, 0x01}, + {0x98fa, 0x01}, + {0x98fb, 0x01}, + {0x98fc, 0x01}, + {0x98fd, 0x01}, + {0x98fe, 0x01}, + {0x9940, 0x01}, + {0x9941, 0x01}, + {0x9942, 0x01}, + {0x9943, 0x01}, + {0x9944, 0x01}, + {0x9945, 0x01}, + {0x9946, 0x01}, + {0x9947, 0x01}, + {0x9948, 0x01}, + {0x9949, 0x01}, + {0x994a, 0x01}, + {0x994b, 0x01}, + {0x994c, 0x01}, + {0x994d, 0x01}, + {0x994e, 0x01}, + {0x994f, 0x01}, + {0x9950, 0x01}, + {0x9951, 0x01}, + {0x9952, 0x01}, + {0x9953, 0x01}, + {0x9954, 0x01}, + {0x9955, 0x01}, + {0x9956, 0x01}, + {0x9957, 0x01}, + {0x9958, 0x01}, + {0x9959, 0x01}, + {0x995a, 0x01}, + {0x995b, 0x01}, + {0x995c, 0x01}, + {0x995d, 0x01}, + {0x995e, 0x01}, + {0x995f, 0x01}, + {0x9960, 0x01}, + {0x9961, 0x01}, + {0x9962, 0x01}, + {0x9963, 0x01}, + {0x9964, 0x01}, + {0x9965, 0x01}, + {0x9966, 0x01}, + {0x9967, 0x01}, + {0x9968, 0x01}, + {0x9969, 0x01}, + {0x996a, 0x01}, + {0x996b, 0x01}, + {0x996c, 0x01}, + {0x996d, 0x01}, + {0x996e, 0x01}, + {0x996f, 0x01}, + {0x9970, 0x01}, + {0x9971, 0x01}, + {0x9972, 0x01}, + {0x9973, 0x01}, + {0x9974, 0x01}, + {0x9975, 0x01}, + {0x9976, 0x01}, + {0x9977, 0x01}, + {0x9978, 0x01}, + {0x9979, 0x01}, + {0x997a, 0x01}, + {0x997b, 0x01}, + {0x997c, 0x01}, + {0x997d, 0x01}, + {0x997e, 0x01}, + {0x9980, 0x01}, + {0x9981, 0x01}, + {0x9982, 0x01}, + {0x9983, 0x01}, + {0x9984, 0x01}, + {0x9985, 0x01}, + {0x9986, 0x01}, + {0x9987, 0x01}, + {0x9988, 0x01}, + {0x9989, 0x01}, + {0x998a, 0x01}, + {0x998b, 0x01}, + {0x998c, 0x01}, + {0x998d, 0x01}, + {0x998e, 0x01}, + {0x998f, 0x01}, + {0x9990, 0x01}, + {0x9991, 0x01}, + {0x9992, 0x01}, + {0x9993, 0x01}, + {0x9994, 0x01}, + {0x9995, 0x01}, + {0x9996, 0x01}, + {0x9997, 0x01}, + {0x9998, 0x01}, + {0x9999, 0x01}, + {0x999a, 0x01}, + {0x999b, 0x01}, + {0x999c, 0x01}, + {0x999d, 0x01}, + {0x999e, 0x01}, + {0x999f, 0x01}, + {0x99a0, 0x01}, + {0x99a1, 0x01}, + {0x99a2, 0x01}, + {0x99a3, 0x01}, + {0x99a4, 0x01}, + {0x99a5, 0x01}, + {0x99a6, 0x01}, + {0x99a7, 0x01}, + {0x99a8, 0x01}, + {0x99a9, 0x01}, + {0x99aa, 0x01}, + {0x99ab, 0x01}, + {0x99ac, 0x01}, + {0x99ad, 0x01}, + {0x99ae, 0x01}, + {0x99af, 0x01}, + {0x99b0, 0x01}, + {0x99b1, 0x01}, + {0x99b2, 0x01}, + {0x99b3, 0x01}, + {0x99b4, 0x01}, + {0x99b5, 0x01}, + {0x99b6, 0x01}, + {0x99b7, 0x01}, + {0x99b8, 0x01}, + {0x99b9, 0x01}, + {0x99ba, 0x01}, + {0x99bb, 0x01}, + {0x99bc, 0x01}, + {0x99bd, 0x01}, + {0x99be, 0x01}, + {0x99bf, 0x01}, + {0x99c0, 0x01}, + {0x99c1, 0x01}, + {0x99c2, 0x01}, + {0x99c3, 0x01}, + {0x99c4, 0x01}, + {0x99c5, 0x01}, + {0x99c6, 0x01}, + {0x99c7, 0x01}, + {0x99c8, 0x01}, + {0x99c9, 0x01}, + {0x99ca, 0x01}, + {0x99cb, 0x01}, + {0x99cc, 0x01}, + {0x99cd, 0x01}, + {0x99ce, 0x01}, + {0x99cf, 0x01}, + {0x99d0, 0x01}, + {0x99d1, 0x01}, + {0x99d2, 0x01}, + {0x99d3, 0x01}, + {0x99d4, 0x01}, + {0x99d5, 0x01}, + {0x99d6, 0x01}, + {0x99d7, 0x01}, + {0x99d8, 0x01}, + {0x99d9, 0x01}, + {0x99da, 0x01}, + {0x99db, 0x01}, + {0x99dc, 0x01}, + {0x99dd, 0x01}, + {0x99de, 0x01}, + {0x99df, 0x01}, + {0x99e0, 0x01}, + {0x99e1, 0x01}, + {0x99e2, 0x01}, + {0x99e3, 0x01}, + {0x99e4, 0x01}, + {0x99e5, 0x01}, + {0x99e6, 0x01}, + {0x99e7, 0x01}, + {0x99e8, 0x01}, + {0x99e9, 0x01}, + {0x99ea, 0x01}, + {0x99eb, 0x01}, + {0x99ec, 0x01}, + {0x99ed, 0x01}, + {0x99ee, 0x01}, + {0x99ef, 0x01}, + {0x99f0, 0x01}, + {0x99f1, 0x01}, + {0x99f2, 0x01}, + {0x99f3, 0x01}, + {0x99f4, 0x01}, + {0x99f5, 0x01}, + {0x99f6, 0x01}, + {0x99f7, 0x01}, + {0x99f8, 0x01}, + {0x99f9, 0x01}, + {0x99fa, 0x01}, + {0x99fb, 0x01}, + {0x99fc, 0x01}, + {0x99fd, 0x01}, + {0x99fe, 0x01}, + {0x9a40, 0x01}, + {0x9a41, 0x01}, + {0x9a42, 0x01}, + {0x9a43, 0x01}, + {0x9a44, 0x01}, + {0x9a45, 0x01}, + {0x9a46, 0x01}, + {0x9a47, 0x01}, + {0x9a48, 0x01}, + {0x9a49, 0x01}, + {0x9a4a, 0x01}, + {0x9a4b, 0x01}, + {0x9a4c, 0x01}, + {0x9a4d, 0x01}, + {0x9a4e, 0x01}, + {0x9a4f, 0x01}, + {0x9a50, 0x01}, + {0x9a51, 0x01}, + {0x9a52, 0x01}, + {0x9a53, 0x01}, + {0x9a54, 0x01}, + {0x9a55, 0x01}, + {0x9a56, 0x01}, + {0x9a57, 0x01}, + {0x9a58, 0x01}, + {0x9a59, 0x01}, + {0x9a5a, 0x01}, + {0x9a5b, 0x01}, + {0x9a5c, 0x01}, + {0x9a5d, 0x01}, + {0x9a5e, 0x01}, + {0x9a5f, 0x01}, + {0x9a61, 0x01}, + {0x9a62, 0x01}, + {0x9a63, 0x01}, + {0x9a64, 0x01}, + {0x9a65, 0x01}, + {0x9a66, 0x01}, + {0x9a67, 0x01}, + {0x9a68, 0x01}, + {0x9a69, 0x01}, + {0x9a6a, 0x01}, + {0x9a6b, 0x01}, + {0x9a6c, 0x01}, + {0x9a6d, 0x01}, + {0x9a6e, 0x01}, + {0x9a6f, 0x01}, + {0x9a70, 0x01}, + {0x9a71, 0x01}, + {0x9a72, 0x01}, + {0x9a73, 0x01}, + {0x9a74, 0x01}, + {0x9a75, 0x01}, + {0x9a76, 0x01}, + {0x9a77, 0x01}, + {0x9a78, 0x01}, + {0x9a79, 0x01}, + {0x9a7a, 0x01}, + {0x9a7b, 0x01}, + {0x9a7c, 0x01}, + {0x9a7d, 0x01}, + {0x9a7e, 0x01}, + {0x9a80, 0x01}, + {0x9a81, 0x01}, + {0x9a82, 0x01}, + {0x9a83, 0x01}, + {0x9a84, 0x01}, + {0x9a85, 0x01}, + {0x9a86, 0x01}, + {0x9a87, 0x01}, + {0x9a88, 0x01}, + {0x9a89, 0x01}, + {0x9a8a, 0x01}, + {0x9a8b, 0x01}, + {0x9a8c, 0x01}, + {0x9a8d, 0x01}, + {0x9a8e, 0x01}, + {0x9a8f, 0x01}, + {0x9a90, 0x01}, + {0x9a91, 0x01}, + {0x9a92, 0x01}, + {0x9a93, 0x01}, + {0x9a94, 0x01}, + {0x9a95, 0x01}, + {0x9a96, 0x01}, + {0x9a97, 0x01}, + {0x9a98, 0x01}, + {0x9a99, 0x01}, + {0x9a9a, 0x01}, + {0x9a9b, 0x01}, + {0x9a9c, 0x01}, + {0x9a9d, 0x01}, + {0x9a9e, 0x01}, + {0x9a9f, 0x01}, + {0x9aa0, 0x01}, + {0x9aa1, 0x01}, + {0x9aa2, 0x01}, + {0x9aa3, 0x01}, + {0x9aa4, 0x01}, + {0x9aa5, 0x01}, + {0x9aa6, 0x01}, + {0x9aa7, 0x01}, + {0x9aa8, 0x01}, + {0x9aa9, 0x01}, + {0x9aaa, 0x01}, + {0x9aab, 0x01}, + {0x9aac, 0x01}, + {0x9aad, 0x01}, + {0x9aae, 0x01}, + {0x9aaf, 0x01}, + {0x9ab0, 0x01}, + {0x9ab1, 0x01}, + {0x9ab2, 0x01}, + {0x9ab3, 0x01}, + {0x9ab4, 0x01}, + {0x9ab7, 0x01}, + {0x9ab8, 0x01}, + {0x9ab9, 0x01}, + {0x9aba, 0x01}, + {0x9abb, 0x01}, + {0x9abc, 0x01}, + {0x9abd, 0x01}, + {0x9abe, 0x01}, + {0x9abf, 0x01}, + {0x9ac0, 0x01}, + {0x9ac1, 0x01}, + {0x9ac2, 0x01}, + {0x9ac3, 0x01}, + {0x9ac5, 0x01}, + {0x9ac6, 0x01}, + {0x9ac7, 0x01}, + {0x9ac8, 0x01}, + {0x9ac9, 0x01}, + {0x9aca, 0x01}, + {0x9acb, 0x01}, + {0x9acc, 0x01}, + {0x9acd, 0x01}, + {0x9ace, 0x01}, + {0x9acf, 0x01}, + {0x9ad0, 0x01}, + {0x9ad1, 0x01}, + {0x9ad2, 0x01}, + {0x9ad3, 0x01}, + {0x9ad4, 0x01}, + {0x9ad5, 0x01}, + {0x9ad6, 0x01}, + {0x9ad7, 0x01}, + {0x9ad8, 0x01}, + {0x9ad9, 0x01}, + {0x9ada, 0x01}, + {0x9adb, 0x01}, + {0x9adc, 0x01}, + {0x9add, 0x01}, + {0x9ade, 0x01}, + {0x9adf, 0x01}, + {0x9ae0, 0x01}, + {0x9ae1, 0x01}, + {0x9ae2, 0x01}, + {0x9ae3, 0x01}, + {0x9ae4, 0x01}, + {0x9ae5, 0x01}, + {0x9ae6, 0x01}, + {0x9ae7, 0x01}, + {0x9ae8, 0x01}, + {0x9ae9, 0x01}, + {0x9aea, 0x01}, + {0x9aeb, 0x01}, + {0x9aec, 0x01}, + {0x9aed, 0x01}, + {0x9aee, 0x01}, + {0x9aef, 0x01}, + {0x9af0, 0x01}, + {0x9af1, 0x01}, + {0x9af2, 0x01}, + {0x9af3, 0x01}, + {0x9af4, 0x01}, + {0x9af5, 0x01}, + {0x9af6, 0x01}, + {0x9af7, 0x01}, + {0x9af8, 0x01}, + {0x9af9, 0x01}, + {0x9afa, 0x01}, + {0x9afb, 0x01}, + {0x9afc, 0x01}, + {0x9afd, 0x01}, + {0x9afe, 0x01}, + {0x9b40, 0x01}, + {0x9b41, 0x01}, + {0x9b42, 0x01}, + {0x9b43, 0x01}, + {0x9b44, 0x01}, + {0x9b45, 0x01}, + {0x9b46, 0x01}, + {0x9b47, 0x01}, + {0x9b48, 0x01}, + {0x9b49, 0x01}, + {0x9b4a, 0x01}, + {0x9b4b, 0x01}, + {0x9b4c, 0x01}, + {0x9b4d, 0x01}, + {0x9b4e, 0x01}, + {0x9b4f, 0x01}, + {0x9b50, 0x01}, + {0x9b51, 0x01}, + {0x9b52, 0x01}, + {0x9b53, 0x01}, + {0x9b54, 0x01}, + {0x9b55, 0x01}, + {0x9b56, 0x01}, + {0x9b57, 0x01}, + {0x9b58, 0x01}, + {0x9b59, 0x01}, + {0x9b5a, 0x01}, + {0x9b5b, 0x01}, + {0x9b5c, 0x01}, + {0x9b5d, 0x01}, + {0x9b5e, 0x01}, + {0x9b5f, 0x01}, + {0x9b60, 0x01}, + {0x9b61, 0x01}, + {0x9b62, 0x01}, + {0x9b63, 0x01}, + {0x9b64, 0x01}, + {0x9b65, 0x01}, + {0x9b66, 0x01}, + {0x9b67, 0x01}, + {0x9b68, 0x01}, + {0x9b69, 0x01}, + {0x9b6a, 0x01}, + {0x9b6b, 0x01}, + {0x9b6c, 0x01}, + {0x9b6d, 0x01}, + {0x9b6e, 0x01}, + {0x9b6f, 0x01}, + {0x9b70, 0x01}, + {0x9b71, 0x01}, + {0x9b72, 0x01}, + {0x9b73, 0x01}, + {0x9b74, 0x01}, + {0x9b75, 0x01}, + {0x9b76, 0x01}, + {0x9b77, 0x01}, + {0x9b78, 0x01}, + {0x9b79, 0x01}, + {0x9b7a, 0x01}, + {0x9b7b, 0x01}, + {0x9b7c, 0x01}, + {0x9b7d, 0x01}, + {0x9b7e, 0x01}, + {0x9b80, 0x01}, + {0x9b81, 0x01}, + {0x9b82, 0x01}, + {0x9b83, 0x01}, + {0x9b84, 0x01}, + {0x9b85, 0x01}, + {0x9b86, 0x01}, + {0x9b87, 0x01}, + {0x9b88, 0x01}, + {0x9b89, 0x01}, + {0x9b8a, 0x01}, + {0x9b8b, 0x01}, + {0x9b8c, 0x01}, + {0x9b8d, 0x01}, + {0x9b8e, 0x01}, + {0x9b8f, 0x01}, + {0x9b90, 0x01}, + {0x9b91, 0x01}, + {0x9b92, 0x01}, + {0x9b93, 0x01}, + {0x9b94, 0x01}, + {0x9b95, 0x01}, + {0x9b96, 0x01}, + {0x9b97, 0x01}, + {0x9b98, 0x01}, + {0x9b99, 0x01}, + {0x9b9a, 0x01}, + {0x9b9b, 0x01}, + {0x9b9c, 0x01}, + {0x9b9d, 0x01}, + {0x9b9e, 0x01}, + {0x9b9f, 0x01}, + {0x9ba1, 0x01}, + {0x9ba2, 0x01}, + {0x9ba3, 0x01}, + {0x9ba4, 0x01}, + {0x9ba5, 0x01}, + {0x9ba6, 0x01}, + {0x9ba7, 0x01}, + {0x9ba8, 0x01}, + {0x9ba9, 0x01}, + {0x9baa, 0x01}, + {0x9bab, 0x01}, + {0x9bac, 0x01}, + {0x9bad, 0x01}, + {0x9bae, 0x01}, + {0x9baf, 0x01}, + {0x9bb0, 0x01}, + {0x9bb1, 0x01}, + {0x9bb2, 0x01}, + {0x9bb3, 0x01}, + {0x9bb4, 0x01}, + {0x9bb5, 0x01}, + {0x9bb6, 0x01}, + {0x9bb7, 0x01}, + {0x9bb8, 0x01}, + {0x9bb9, 0x01}, + {0x9bba, 0x01}, + {0x9bbb, 0x01}, + {0x9bbc, 0x01}, + {0x9bbd, 0x01}, + {0x9bbe, 0x01}, + {0x9bbf, 0x01}, + {0x9bc0, 0x01}, + {0x9bc1, 0x01}, + {0x9bc2, 0x01}, + {0x9bc3, 0x01}, + {0x9bc4, 0x01}, + {0x9bc5, 0x01}, + {0x9bc6, 0x01}, + {0x9bc7, 0x01}, + {0x9bc8, 0x01}, + {0x9bc9, 0x01}, + {0x9bca, 0x01}, + {0x9bcb, 0x01}, + {0x9bcc, 0x01}, + {0x9bcd, 0x01}, + {0x9bce, 0x01}, + {0x9bcf, 0x01}, + {0x9bd0, 0x01}, + {0x9bd1, 0x01}, + {0x9bd2, 0x01}, + {0x9bd3, 0x01}, + {0x9bd4, 0x01}, + {0x9bd5, 0x01}, + {0x9bd6, 0x01}, + {0x9bd7, 0x01}, + {0x9bd8, 0x01}, + {0x9bd9, 0x01}, + {0x9bda, 0x01}, + {0x9bdb, 0x01}, + {0x9bdc, 0x01}, + {0x9bdd, 0x01}, + {0x9bde, 0x01}, + {0x9bdf, 0x01}, + {0x9be0, 0x01}, + {0x9be1, 0x01}, + {0x9be2, 0x01}, + {0x9be3, 0x01}, + {0x9be4, 0x01}, + {0x9be5, 0x01}, + {0x9be6, 0x01}, + {0x9be7, 0x01}, + {0x9be8, 0x01}, + {0x9be9, 0x01}, + {0x9bea, 0x01}, + {0x9beb, 0x01}, + {0x9bec, 0x01}, + {0x9bed, 0x01}, + {0x9bee, 0x01}, + {0x9bef, 0x01}, + {0x9bf0, 0x01}, + {0x9bf1, 0x01}, + {0x9bf2, 0x01}, + {0x9bf3, 0x01}, + {0x9bf4, 0x01}, + {0x9bf5, 0x01}, + {0x9bf6, 0x01}, + {0x9bf7, 0x01}, + {0x9bf8, 0x01}, + {0x9bf9, 0x01}, + {0x9bfa, 0x01}, + {0x9bfb, 0x01}, + {0x9bfc, 0x01}, + {0x9bfd, 0x01}, + {0x9bfe, 0x01}, + {0x9c40, 0x01}, + {0x9c41, 0x01}, + {0x9c42, 0x01}, + {0x9c43, 0x01}, + {0x9c44, 0x01}, + {0x9c45, 0x01}, + {0x9c46, 0x01}, + {0x9c47, 0x01}, + {0x9c48, 0x01}, + {0x9c49, 0x01}, + {0x9c4a, 0x01}, + {0x9c4b, 0x01}, + {0x9c4c, 0x01}, + {0x9c4d, 0x01}, + {0x9c4e, 0x01}, + {0x9c4f, 0x01}, + {0x9c50, 0x01}, + {0x9c51, 0x01}, + {0x9c52, 0x01}, + {0x9c53, 0x01}, + {0x9c54, 0x01}, + {0x9c55, 0x01}, + {0x9c56, 0x01}, + {0x9c57, 0x01}, + {0x9c58, 0x01}, + {0x9c59, 0x01}, + {0x9c5a, 0x01}, + {0x9c5b, 0x01}, + {0x9c5c, 0x01}, + {0x9c5d, 0x01}, + {0x9c5e, 0x01}, + {0x9c5f, 0x01}, + {0x9c60, 0x01}, + {0x9c61, 0x01}, + {0x9c62, 0x01}, + {0x9c63, 0x01}, + {0x9c64, 0x01}, + {0x9c65, 0x01}, + {0x9c66, 0x01}, + {0x9c67, 0x01}, + {0x9c68, 0x01}, + {0x9c69, 0x01}, + {0x9c6a, 0x01}, + {0x9c6b, 0x01}, + {0x9c6c, 0x01}, + {0x9c6d, 0x01}, + {0x9c6e, 0x01}, + {0x9c6f, 0x01}, + {0x9c70, 0x01}, + {0x9c71, 0x01}, + {0x9c72, 0x01}, + {0x9c73, 0x01}, + {0x9c74, 0x01}, + {0x9c75, 0x01}, + {0x9c76, 0x01}, + {0x9c77, 0x01}, + {0x9c78, 0x01}, + {0x9c79, 0x01}, + {0x9c7a, 0x01}, + {0x9c7b, 0x01}, + {0x9c7c, 0x01}, + {0x9c7d, 0x01}, + {0x9c7e, 0x01}, + {0x9c80, 0x01}, + {0x9c81, 0x01}, + {0x9c82, 0x01}, + {0x9c83, 0x01}, + {0x9c84, 0x01}, + {0x9c85, 0x01}, + {0x9c86, 0x01}, + {0x9c87, 0x01}, + {0x9c88, 0x01}, + {0x9c89, 0x01}, + {0x9c8a, 0x01}, + {0x9c8b, 0x01}, + {0x9c8c, 0x01}, + {0x9c8d, 0x01}, + {0x9c8e, 0x01}, + {0x9c8f, 0x01}, + {0x9c90, 0x01}, + {0x9c91, 0x01}, + {0x9c92, 0x01}, + {0x9c93, 0x01}, + {0x9c94, 0x01}, + {0x9c95, 0x01}, + {0x9c96, 0x01}, + {0x9c97, 0x01}, + {0x9c98, 0x01}, + {0x9c99, 0x01}, + {0x9c9a, 0x01}, + {0x9c9b, 0x01}, + {0x9c9c, 0x01}, + {0x9c9d, 0x01}, + {0x9c9e, 0x01}, + {0x9c9f, 0x01}, + {0x9ca0, 0x01}, + {0x9ca1, 0x01}, + {0x9ca2, 0x01}, + {0x9ca3, 0x01}, + {0x9ca4, 0x01}, + {0x9ca5, 0x01}, + {0x9ca6, 0x01}, + {0x9ca7, 0x01}, + {0x9ca8, 0x01}, + {0x9ca9, 0x01}, + {0x9caa, 0x01}, + {0x9cab, 0x01}, + {0x9cac, 0x01}, + {0x9cad, 0x01}, + {0x9cae, 0x01}, + {0x9caf, 0x01}, + {0x9cb0, 0x01}, + {0x9cb1, 0x01}, + {0x9cb2, 0x01}, + {0x9cb3, 0x01}, + {0x9cb4, 0x01}, + {0x9cb5, 0x01}, + {0x9cb6, 0x01}, + {0x9cb7, 0x01}, + {0x9cb8, 0x01}, + {0x9cb9, 0x01}, + {0x9cba, 0x01}, + {0x9cbb, 0x01}, + {0x9cbc, 0x01}, + {0x9cbd, 0x01}, + {0x9cbe, 0x01}, + {0x9cbf, 0x01}, + {0x9cc0, 0x01}, + {0x9cc1, 0x01}, + {0x9cc2, 0x01}, + {0x9cc3, 0x01}, + {0x9cc4, 0x01}, + {0x9cc5, 0x01}, + {0x9cc6, 0x01}, + {0x9cc7, 0x01}, + {0x9cc8, 0x01}, + {0x9cc9, 0x01}, + {0x9cca, 0x01}, + {0x9ccb, 0x01}, + {0x9ccc, 0x01}, + {0x9ccd, 0x01}, + {0x9cce, 0x01}, + {0x9ccf, 0x01}, + {0x9cd0, 0x01}, + {0x9cd1, 0x01}, + {0x9cd2, 0x01}, + {0x9cd3, 0x01}, + {0x9cd4, 0x01}, + {0x9cd5, 0x01}, + {0x9cd6, 0x01}, + {0x9cd7, 0x01}, + {0x9cd8, 0x01}, + {0x9cd9, 0x01}, + {0x9cda, 0x01}, + {0x9cdb, 0x01}, + {0x9cdc, 0x01}, + {0x9cdd, 0x01}, + {0x9cde, 0x01}, + {0x9cdf, 0x01}, + {0x9ce0, 0x01}, + {0x9ce1, 0x01}, + {0x9ce2, 0x01}, + {0x9ce3, 0x01}, + {0x9ce4, 0x01}, + {0x9ce5, 0x01}, + {0x9ce6, 0x01}, + {0x9ce7, 0x01}, + {0x9ce8, 0x01}, + {0x9ce9, 0x01}, + {0x9cea, 0x01}, + {0x9ceb, 0x01}, + {0x9cec, 0x01}, + {0x9ced, 0x01}, + {0x9cee, 0x01}, + {0x9cef, 0x01}, + {0x9cf0, 0x01}, + {0x9cf1, 0x01}, + {0x9cf2, 0x01}, + {0x9cf3, 0x01}, + {0x9cf4, 0x01}, + {0x9cf5, 0x01}, + {0x9cf6, 0x01}, + {0x9cf7, 0x01}, + {0x9cf8, 0x01}, + {0x9cf9, 0x01}, + {0x9cfa, 0x01}, + {0x9cfb, 0x01}, + {0x9cfc, 0x01}, + {0x9cfd, 0x01}, + {0x9cfe, 0x01}, + {0x9d40, 0x01}, + {0x9d41, 0x01}, + {0x9d42, 0x01}, + {0x9d43, 0x01}, + {0x9d44, 0x01}, + {0x9d45, 0x01}, + {0x9d46, 0x01}, + {0x9d47, 0x01}, + {0x9d48, 0x01}, + {0x9d49, 0x01}, + {0x9d4a, 0x01}, + {0x9d4b, 0x01}, + {0x9d4c, 0x01}, + {0x9d4d, 0x01}, + {0x9d4e, 0x01}, + {0x9d4f, 0x01}, + {0x9d50, 0x01}, + {0x9d51, 0x01}, + {0x9d52, 0x01}, + {0x9d53, 0x01}, + {0x9d54, 0x01}, + {0x9d55, 0x01}, + {0x9d56, 0x01}, + {0x9d57, 0x01}, + {0x9d58, 0x01}, + {0x9d59, 0x01}, + {0x9d5a, 0x01}, + {0x9d5b, 0x01}, + {0x9d5c, 0x01}, + {0x9d5d, 0x01}, + {0x9d5e, 0x01}, + {0x9d5f, 0x01}, + {0x9d60, 0x01}, + {0x9d61, 0x01}, + {0x9d62, 0x01}, + {0x9d63, 0x01}, + {0x9d64, 0x01}, + {0x9d65, 0x01}, + {0x9d66, 0x01}, + {0x9d67, 0x01}, + {0x9d68, 0x01}, + {0x9d69, 0x01}, + {0x9d6a, 0x01}, + {0x9d6b, 0x01}, + {0x9d6c, 0x01}, + {0x9d6d, 0x01}, + {0x9d6e, 0x01}, + {0x9d6f, 0x01}, + {0x9d70, 0x01}, + {0x9d71, 0x01}, + {0x9d72, 0x01}, + {0x9d73, 0x01}, + {0x9d74, 0x01}, + {0x9d75, 0x01}, + {0x9d76, 0x01}, + {0x9d77, 0x01}, + {0x9d78, 0x01}, + {0x9d79, 0x01}, + {0x9d7a, 0x01}, + {0x9d7b, 0x01}, + {0x9d7c, 0x01}, + {0x9d7d, 0x01}, + {0x9d7e, 0x01}, + {0x9d80, 0x01}, + {0x9d81, 0x01}, + {0x9d82, 0x01}, + {0x9d83, 0x01}, + {0x9d84, 0x01}, + {0x9d85, 0x01}, + {0x9d86, 0x01}, + {0x9d87, 0x01}, + {0x9d88, 0x01}, + {0x9d89, 0x01}, + {0x9d8a, 0x01}, + {0x9d8b, 0x01}, + {0x9d8c, 0x01}, + {0x9d8d, 0x01}, + {0x9d8e, 0x01}, + {0x9d8f, 0x01}, + {0x9d90, 0x01}, + {0x9d91, 0x01}, + {0x9d92, 0x01}, + {0x9d93, 0x01}, + {0x9d94, 0x01}, + {0x9d95, 0x01}, + {0x9d96, 0x01}, + {0x9d97, 0x01}, + {0x9d98, 0x01}, + {0x9d99, 0x01}, + {0x9d9a, 0x01}, + {0x9d9b, 0x01}, + {0x9d9c, 0x01}, + {0x9d9d, 0x01}, + {0x9d9e, 0x01}, + {0x9d9f, 0x01}, + {0x9da0, 0x01}, + {0x9da1, 0x01}, + {0x9da2, 0x01}, + {0x9da3, 0x01}, + {0x9da4, 0x01}, + {0x9da5, 0x01}, + {0x9da6, 0x01}, + {0x9da7, 0x01}, + {0x9da8, 0x01}, + {0x9da9, 0x01}, + {0x9daa, 0x01}, + {0x9dab, 0x01}, + {0x9dac, 0x01}, + {0x9dad, 0x01}, + {0x9dae, 0x01}, + {0x9daf, 0x01}, + {0x9db0, 0x01}, + {0x9db1, 0x01}, + {0x9db2, 0x01}, + {0x9db3, 0x01}, + {0x9db4, 0x01}, + {0x9db5, 0x01}, + {0x9db6, 0x01}, + {0x9db7, 0x01}, + {0x9db8, 0x01}, + {0x9db9, 0x01}, + {0x9dba, 0x01}, + {0x9dbb, 0x01}, + {0x9dbc, 0x01}, + {0x9dbd, 0x01}, + {0x9dbe, 0x01}, + {0x9dbf, 0x01}, + {0x9dc0, 0x01}, + {0x9dc1, 0x01}, + {0x9dc2, 0x01}, + {0x9dc3, 0x01}, + {0x9dc4, 0x01}, + {0x9dc5, 0x01}, + {0x9dc6, 0x01}, + {0x9dc7, 0x01}, + {0x9dc8, 0x01}, + {0x9dc9, 0x01}, + {0x9dca, 0x01}, + {0x9dcb, 0x01}, + {0x9dcc, 0x01}, + {0x9dcd, 0x01}, + {0x9dce, 0x01}, + {0x9dcf, 0x01}, + {0x9dd0, 0x01}, + {0x9dd1, 0x01}, + {0x9dd2, 0x01}, + {0x9dd3, 0x01}, + {0x9dd4, 0x01}, + {0x9dd5, 0x01}, + {0x9dd6, 0x01}, + {0x9dd7, 0x01}, + {0x9dd8, 0x01}, + {0x9dd9, 0x01}, + {0x9dda, 0x01}, + {0x9ddb, 0x01}, + {0x9ddc, 0x01}, + {0x9ddd, 0x01}, + {0x9dde, 0x01}, + {0x9ddf, 0x01}, + {0x9de0, 0x01}, + {0x9de1, 0x01}, + {0x9de2, 0x01}, + {0x9de3, 0x01}, + {0x9de4, 0x01}, + {0x9de5, 0x01}, + {0x9de6, 0x01}, + {0x9de7, 0x01}, + {0x9de8, 0x01}, + {0x9de9, 0x01}, + {0x9dea, 0x01}, + {0x9deb, 0x01}, + {0x9dec, 0x01}, + {0x9ded, 0x01}, + {0x9dee, 0x01}, + {0x9def, 0x01}, + {0x9df0, 0x01}, + {0x9df1, 0x01}, + {0x9df2, 0x01}, + {0x9df3, 0x01}, + {0x9df4, 0x01}, + {0x9df5, 0x01}, + {0x9df6, 0x01}, + {0x9df7, 0x01}, + {0x9df8, 0x01}, + {0x9df9, 0x01}, + {0x9dfa, 0x01}, + {0x9dfb, 0x01}, + {0x9dfc, 0x01}, + {0x9dfd, 0x01}, + {0x9dfe, 0x01}, + {0x9e40, 0x01}, + {0x9e41, 0x01}, + {0x9e42, 0x01}, + {0x9e43, 0x01}, + {0x9e44, 0x01}, + {0x9e45, 0x01}, + {0x9e46, 0x01}, + {0x9e47, 0x01}, + {0x9e48, 0x01}, + {0x9e49, 0x01}, + {0x9e4a, 0x01}, + {0x9e4b, 0x01}, + {0x9e4c, 0x01}, + {0x9e4d, 0x01}, + {0x9e4e, 0x01}, + {0x9e4f, 0x01}, + {0x9e50, 0x01}, + {0x9e51, 0x01}, + {0x9e52, 0x01}, + {0x9e53, 0x01}, + {0x9e54, 0x01}, + {0x9e55, 0x01}, + {0x9e56, 0x01}, + {0x9e57, 0x01}, + {0x9e58, 0x01}, + {0x9e59, 0x01}, + {0x9e5a, 0x01}, + {0x9e5b, 0x01}, + {0x9e5c, 0x01}, + {0x9e5d, 0x01}, + {0x9e5e, 0x01}, + {0x9e5f, 0x01}, + {0x9e60, 0x01}, + {0x9e61, 0x01}, + {0x9e62, 0x01}, + {0x9e63, 0x01}, + {0x9e64, 0x01}, + {0x9e65, 0x01}, + {0x9e66, 0x01}, + {0x9e67, 0x01}, + {0x9e68, 0x01}, + {0x9e69, 0x01}, + {0x9e6a, 0x01}, + {0x9e6b, 0x01}, + {0x9e6c, 0x01}, + {0x9e6d, 0x01}, + {0x9e6e, 0x01}, + {0x9e6f, 0x01}, + {0x9e70, 0x01}, + {0x9e71, 0x01}, + {0x9e72, 0x01}, + {0x9e73, 0x01}, + {0x9e74, 0x01}, + {0x9e75, 0x01}, + {0x9e76, 0x01}, + {0x9e77, 0x01}, + {0x9e78, 0x01}, + {0x9e79, 0x01}, + {0x9e7a, 0x01}, + {0x9e7b, 0x01}, + {0x9e7c, 0x01}, + {0x9e7d, 0x01}, + {0x9e7e, 0x01}, + {0x9e80, 0x01}, + {0x9e81, 0x01}, + {0x9e82, 0x01}, + {0x9e83, 0x01}, + {0x9e84, 0x01}, + {0x9e85, 0x01}, + {0x9e86, 0x01}, + {0x9e87, 0x01}, + {0x9e88, 0x01}, + {0x9e89, 0x01}, + {0x9e8a, 0x01}, + {0x9e8b, 0x01}, + {0x9e8c, 0x01}, + {0x9e8d, 0x01}, + {0x9e8e, 0x01}, + {0x9e8f, 0x01}, + {0x9e90, 0x01}, + {0x9e91, 0x01}, + {0x9e92, 0x01}, + {0x9e93, 0x01}, + {0x9e94, 0x01}, + {0x9e95, 0x01}, + {0x9e96, 0x01}, + {0x9e97, 0x01}, + {0x9e98, 0x01}, + {0x9e99, 0x01}, + {0x9e9a, 0x01}, + {0x9e9b, 0x01}, + {0x9e9c, 0x01}, + {0x9e9d, 0x01}, + {0x9e9e, 0x01}, + {0x9e9f, 0x01}, + {0x9ea0, 0x01}, + {0x9ea1, 0x01}, + {0x9ea2, 0x01}, + {0x9ea3, 0x01}, + {0x9ea4, 0x01}, + {0x9ea5, 0x01}, + {0x9ea6, 0x01}, + {0x9ea7, 0x01}, + {0x9ea8, 0x01}, + {0x9ea9, 0x01}, + {0x9eaa, 0x01}, + {0x9eab, 0x01}, + {0x9eac, 0x01}, + {0x9ead, 0x01}, + {0x9eae, 0x01}, + {0x9eaf, 0x01}, + {0x9eb0, 0x01}, + {0x9eb1, 0x01}, + {0x9eb2, 0x01}, + {0x9eb3, 0x01}, + {0x9eb4, 0x01}, + {0x9eb5, 0x01}, + {0x9eb6, 0x01}, + {0x9eb7, 0x01}, + {0x9eb8, 0x01}, + {0x9eb9, 0x01}, + {0x9eba, 0x01}, + {0x9ebb, 0x01}, + {0x9ebc, 0x01}, + {0x9ebd, 0x01}, + {0x9ebe, 0x01}, + {0x9ebf, 0x01}, + {0x9ec0, 0x01}, + {0x9ec1, 0x01}, + {0x9ec2, 0x01}, + {0x9ec3, 0x01}, + {0x9ec4, 0x01}, + {0x9ec5, 0x01}, + {0x9ec6, 0x01}, + {0x9ec7, 0x01}, + {0x9ec8, 0x01}, + {0x9ec9, 0x01}, + {0x9eca, 0x01}, + {0x9ecb, 0x01}, + {0x9ecc, 0x01}, + {0x9ecd, 0x01}, + {0x9ece, 0x01}, + {0x9ecf, 0x01}, + {0x9ed0, 0x01}, + {0x9ed1, 0x01}, + {0x9ed2, 0x01}, + {0x9ed3, 0x01}, + {0x9ed4, 0x01}, + {0x9ed5, 0x01}, + {0x9ed6, 0x01}, + {0x9ed7, 0x01}, + {0x9ed8, 0x01}, + {0x9ed9, 0x01}, + {0x9eda, 0x01}, + {0x9edb, 0x01}, + {0x9edc, 0x01}, + {0x9edd, 0x01}, + {0x9ede, 0x01}, + {0x9edf, 0x01}, + {0x9ee0, 0x01}, + {0x9ee1, 0x01}, + {0x9ee2, 0x01}, + {0x9ee3, 0x01}, + {0x9ee4, 0x01}, + {0x9ee5, 0x01}, + {0x9ee6, 0x01}, + {0x9ee7, 0x01}, + {0x9ee8, 0x01}, + {0x9ee9, 0x01}, + {0x9eea, 0x01}, + {0x9eeb, 0x01}, + {0x9eec, 0x01}, + {0x9eed, 0x01}, + {0x9eee, 0x01}, + {0x9eef, 0x01}, + {0x9ef0, 0x01}, + {0x9ef1, 0x01}, + {0x9ef2, 0x01}, + {0x9ef3, 0x01}, + {0x9ef4, 0x01}, + {0x9ef5, 0x01}, + {0x9ef6, 0x01}, + {0x9ef7, 0x01}, + {0x9ef8, 0x01}, + {0x9ef9, 0x01}, + {0x9efa, 0x01}, + {0x9efb, 0x01}, + {0x9efc, 0x01}, + {0x9efd, 0x01}, + {0x9efe, 0x01}, + {0x9f40, 0x01}, + {0x9f41, 0x01}, + {0x9f42, 0x01}, + {0x9f43, 0x01}, + {0x9f44, 0x01}, + {0x9f45, 0x01}, + {0x9f46, 0x01}, + {0x9f47, 0x01}, + {0x9f49, 0x01}, + {0x9f4a, 0x01}, + {0x9f4b, 0x01}, + {0x9f4c, 0x01}, + {0x9f4d, 0x01}, + {0x9f4e, 0x01}, + {0x9f4f, 0x01}, + {0x9f50, 0x01}, + {0x9f51, 0x01}, + {0x9f52, 0x01}, + {0x9f53, 0x01}, + {0x9f54, 0x01}, + {0x9f55, 0x01}, + {0x9f56, 0x01}, + {0x9f57, 0x01}, + {0x9f58, 0x01}, + {0x9f59, 0x01}, + {0x9f5a, 0x01}, + {0x9f5b, 0x01}, + {0x9f5c, 0x01}, + {0x9f5d, 0x01}, + {0x9f5e, 0x01}, + {0x9f5f, 0x01}, + {0x9f60, 0x01}, + {0x9f61, 0x01}, + {0x9f62, 0x01}, + {0x9f63, 0x01}, + {0x9f64, 0x01}, + {0x9f66, 0x01}, + {0x9f67, 0x01}, + {0x9f68, 0x01}, + {0x9f69, 0x01}, + {0x9f6a, 0x01}, + {0x9f6b, 0x01}, + {0x9f6c, 0x01}, + {0x9f6d, 0x01}, + {0x9f6e, 0x01}, + {0x9f6f, 0x01}, + {0x9f70, 0x01}, + {0x9f71, 0x01}, + {0x9f72, 0x01}, + {0x9f73, 0x01}, + {0x9f74, 0x01}, + {0x9f75, 0x01}, + {0x9f76, 0x01}, + {0x9f77, 0x01}, + {0x9f78, 0x01}, + {0x9f79, 0x01}, + {0x9f7a, 0x01}, + {0x9f7b, 0x01}, + {0x9f7c, 0x01}, + {0x9f7d, 0x01}, + {0x9f7e, 0x01}, + {0x9f80, 0x01}, + {0x9f81, 0x01}, + {0x9f82, 0x01}, + {0x9f83, 0x01}, + {0x9f84, 0x01}, + {0x9f85, 0x01}, + {0x9f86, 0x01}, + {0x9f88, 0x01}, + {0x9f89, 0x01}, + {0x9f8a, 0x01}, + {0x9f8b, 0x01}, + {0x9f8c, 0x01}, + {0x9f8d, 0x01}, + {0x9f8e, 0x01}, + {0x9f8f, 0x01}, + {0x9f90, 0x01}, + {0x9f91, 0x01}, + {0x9f92, 0x01}, + {0x9f93, 0x01}, + {0x9f94, 0x01}, + {0x9f95, 0x01}, + {0x9f96, 0x01}, + {0x9f97, 0x01}, + {0x9f98, 0x01}, + {0x9f99, 0x01}, + {0x9f9a, 0x01}, + {0x9f9b, 0x01}, + {0x9f9c, 0x01}, + {0x9f9d, 0x01}, + {0x9f9e, 0x01}, + {0x9f9f, 0x01}, + {0x9fa0, 0x01}, + {0x9fa1, 0x01}, + {0x9fa2, 0x01}, + {0x9fa3, 0x01}, + {0x9fa4, 0x01}, + {0x9fa5, 0x01}, + {0x9fa6, 0x01}, + {0x9fa7, 0x01}, + {0x9fa8, 0x01}, + {0x9fa9, 0x01}, + {0x9faa, 0x01}, + {0x9fab, 0x01}, + {0x9fac, 0x01}, + {0x9fad, 0x01}, + {0x9fae, 0x01}, + {0x9faf, 0x01}, + {0x9fb0, 0x01}, + {0x9fb1, 0x01}, + {0x9fb2, 0x01}, + {0x9fb3, 0x01}, + {0x9fb4, 0x01}, + {0x9fb5, 0x01}, + {0x9fb6, 0x01}, + {0x9fb7, 0x01}, + {0x9fb8, 0x01}, + {0x9fb9, 0x01}, + {0x9fba, 0x01}, + {0x9fbb, 0x01}, + {0x9fbc, 0x01}, + {0x9fbd, 0x01}, + {0x9fbe, 0x01}, + {0x9fbf, 0x01}, + {0x9fc0, 0x01}, + {0x9fc1, 0x01}, + {0x9fc2, 0x01}, + {0x9fc3, 0x01}, + {0x9fc4, 0x01}, + {0x9fc5, 0x01}, + {0x9fc6, 0x01}, + {0x9fc7, 0x01}, + {0x9fc8, 0x01}, + {0x9fc9, 0x01}, + {0x9fca, 0x01}, + {0x9fcb, 0x01}, + {0x9fcc, 0x01}, + {0x9fcd, 0x01}, + {0x9fce, 0x01}, + {0x9fcf, 0x01}, + {0x9fd0, 0x01}, + {0x9fd1, 0x01}, + {0x9fd2, 0x01}, + {0x9fd3, 0x01}, + {0x9fd4, 0x01}, + {0x9fd5, 0x01}, + {0x9fd6, 0x01}, + {0x9fd7, 0x01}, + {0x9fd8, 0x01}, + {0x9fd9, 0x01}, + {0x9fda, 0x01}, + {0x9fdb, 0x01}, + {0x9fdc, 0x01}, + {0x9fdd, 0x01}, + {0x9fde, 0x01}, + {0x9fdf, 0x01}, + {0x9fe0, 0x01}, + {0x9fe1, 0x01}, + {0x9fe2, 0x01}, + {0x9fe3, 0x01}, + {0x9fe4, 0x01}, + {0x9fe5, 0x01}, + {0x9fe6, 0x01}, + {0x9fe7, 0x01}, + {0x9fe8, 0x01}, + {0x9fe9, 0x01}, + {0x9fea, 0x01}, + {0x9feb, 0x01}, + {0x9fec, 0x01}, + {0x9fed, 0x01}, + {0x9fee, 0x01}, + {0x9fef, 0x01}, + {0x9ff0, 0x01}, + {0x9ff1, 0x01}, + {0x9ff2, 0x01}, + {0x9ff3, 0x01}, + {0x9ff4, 0x01}, + {0x9ff5, 0x01}, + {0x9ff6, 0x01}, + {0x9ff7, 0x01}, + {0x9ff8, 0x01}, + {0x9ff9, 0x01}, + {0x9ffa, 0x01}, + {0x9ffb, 0x01}, + {0x9ffc, 0x01}, + {0x9ffd, 0x01}, + {0x9ffe, 0x01}, + {0xa040, 0x01}, + {0xa041, 0x01}, + {0xa042, 0x01}, + {0xa043, 0x01}, + {0xa044, 0x01}, + {0xa045, 0x01}, + {0xa046, 0x01}, + {0xa047, 0x01}, + {0xa049, 0x01}, + {0xa04a, 0x01}, + {0xa04b, 0x01}, + {0xa04c, 0x01}, + {0xa04d, 0x01}, + {0xa04e, 0x01}, + {0xa04f, 0x01}, + {0xa050, 0x01}, + {0xa051, 0x01}, + {0xa052, 0x01}, + {0xa053, 0x01}, + {0xa054, 0x01}, + {0xa055, 0x01}, + {0xa056, 0x01}, + {0xa057, 0x01}, + {0xa058, 0x01}, + {0xa059, 0x01}, + {0xa05a, 0x01}, + {0xa05b, 0x01}, + {0xa05c, 0x01}, + {0xa05d, 0x01}, + {0xa05e, 0x01}, + {0xa05f, 0x01}, + {0xa060, 0x01}, + {0xa061, 0x01}, + {0xa062, 0x01}, + {0xa063, 0x01}, + {0xa064, 0x01}, + {0xa065, 0x01}, + {0xa066, 0x01}, + {0xa067, 0x01}, + {0xa068, 0x01}, + {0xa069, 0x01}, + {0xa06a, 0x01}, + {0xa06b, 0x01}, + {0xa06c, 0x01}, + {0xa06d, 0x01}, + {0xa06e, 0x01}, + {0xa06f, 0x01}, + {0xa070, 0x01}, + {0xa071, 0x01}, + {0xa072, 0x01}, + {0xa073, 0x01}, + {0xa074, 0x01}, + {0xa075, 0x01}, + {0xa076, 0x01}, + {0xa077, 0x01}, + {0xa078, 0x01}, + {0xa079, 0x01}, + {0xa07a, 0x01}, + {0xa07b, 0x01}, + {0xa07c, 0x01}, + {0xa07d, 0x01}, + {0xa07e, 0x01}, + {0xa080, 0x01}, + {0xa081, 0x01}, + {0xa082, 0x01}, + {0xa083, 0x01}, + {0xa084, 0x01}, + {0xa085, 0x01}, + {0xa086, 0x01}, + {0xa087, 0x01}, + {0xa088, 0x01}, + {0xa089, 0x01}, + {0xa08a, 0x01}, + {0xa08b, 0x01}, + {0xa08c, 0x01}, + {0xa08d, 0x01}, + {0xa08e, 0x01}, + {0xa08f, 0x01}, + {0xa090, 0x01}, + {0xa091, 0x01}, + {0xa092, 0x01}, + {0xa093, 0x01}, + {0xa094, 0x01}, + {0xa095, 0x01}, + {0xa096, 0x01}, + {0xa097, 0x01}, + {0xa098, 0x01}, + {0xa099, 0x01}, + {0xa09a, 0x01}, + {0xa09b, 0x01}, + {0xa09c, 0x01}, + {0xa09d, 0x01}, + {0xa09e, 0x01}, + {0xa09f, 0x01}, + {0xa0a0, 0x01}, + {0xa0a1, 0x01}, + {0xa0a2, 0x01}, + {0xa0a3, 0x01}, + {0xa0a4, 0x01}, + {0xa0a5, 0x01}, + {0xa0a6, 0x01}, + {0xa0a7, 0x01}, + {0xa0a8, 0x01}, + {0xa0a9, 0x01}, + {0xa0aa, 0x01}, + {0xa0ab, 0x01}, + {0xa0ac, 0x01}, + {0xa0ad, 0x01}, + {0xa0ae, 0x01}, + {0xa0af, 0x01}, + {0xa0b0, 0x01}, + {0xa0b1, 0x01}, + {0xa0b2, 0x01}, + {0xa0b3, 0x01}, + {0xa0b4, 0x01}, + {0xa0b5, 0x01}, + {0xa0b6, 0x01}, + {0xa0b7, 0x01}, + {0xa0b8, 0x01}, + {0xa0b9, 0x01}, + {0xa0ba, 0x01}, + {0xa0bb, 0x01}, + {0xa0bc, 0x01}, + {0xa0bd, 0x01}, + {0xa0be, 0x01}, + {0xa0bf, 0x01}, + {0xa0c0, 0x01}, + {0xa0c1, 0x01}, + {0xa0c2, 0x01}, + {0xa0c3, 0x01}, + {0xa0c4, 0x01}, + {0xa0c5, 0x01}, + {0xa0c6, 0x01}, + {0xa0c7, 0x01}, + {0xa0c8, 0x01}, + {0xa0c9, 0x01}, + {0xa0ca, 0x01}, + {0xa0cb, 0x01}, + {0xa0cc, 0x01}, + {0xa0cd, 0x01}, + {0xa0ce, 0x01}, + {0xa0cf, 0x01}, + {0xa0d0, 0x01}, + {0xa0d1, 0x01}, + {0xa0d2, 0x01}, + {0xa0d3, 0x01}, + {0xa0d4, 0x01}, + {0xa0d5, 0x01}, + {0xa0d6, 0x01}, + {0xa0d7, 0x01}, + {0xa0d8, 0x01}, + {0xa0d9, 0x01}, + {0xa0da, 0x01}, + {0xa0db, 0x01}, + {0xa0dc, 0x01}, + {0xa0dd, 0x01}, + {0xa0de, 0x01}, + {0xa0df, 0x01}, + {0xa0e0, 0x01}, + {0xa0e1, 0x01}, + {0xa0e2, 0x01}, + {0xa0e3, 0x01}, + {0xa0e4, 0x01}, + {0xa0e5, 0x01}, + {0xa0e6, 0x01}, + {0xa0e7, 0x01}, + {0xa0e8, 0x01}, + {0xa0e9, 0x01}, + {0xa0ea, 0x01}, + {0xa0eb, 0x01}, + {0xa0ec, 0x01}, + {0xa0ed, 0x01}, + {0xa0ee, 0x01}, + {0xa0ef, 0x01}, + {0xa0f0, 0x01}, + {0xa0f1, 0x01}, + {0xa0f2, 0x01}, + {0xa0f3, 0x01}, + {0xa0f4, 0x01}, + {0xa0f5, 0x01}, + {0xa0f6, 0x01}, + {0xa0f7, 0x01}, + {0xa0f8, 0x01}, + {0xa0f9, 0x01}, + {0xa0fa, 0x01}, + {0xa0fb, 0x01}, + {0xa0fc, 0x01}, + {0xa0fd, 0x01}, + {0xa0fe, 0x01}, + {0xa1d9, 0x19}, + {0xa1da, 0x19}, + {0xa1db, 0x19}, + {0xa1e6, 0x02}, + {0xa1e7, 0x01}, + {0xa1e8, 0x01}, + {0xa1e9, 0x01}, + {0xa1ea, 0x01}, + {0xa1ed, 0x0202}, + {0xa2a1, 0x02}, + {0xa2a2, 0x0202}, + {0xa2a4, 0x0202}, + {0xa2a5, 0x02}, + {0xa2a6, 0x0202}, + {0xa2a9, 0x0202}, + {0xa2aa, 0x02}, + {0xa2b1, 0x02}, + {0xa2b2, 0x02}, + {0xa2b3, 0x02}, + {0xa2b4, 0x02}, + {0xa2b5, 0x02}, + {0xa2b6, 0x02}, + {0xa2b7, 0x02}, + {0xa2b8, 0x02}, + {0xa2b9, 0x02}, + {0xa2c5, 0x02}, + {0xa2c6, 0x02}, + {0xa2c7, 0x02}, + {0xa2c8, 0x02}, + {0xa2c9, 0x02}, + {0xa2ca, 0x02}, + {0xa2cb, 0x02}, + {0xa2cc, 0x02}, + {0xa2cd, 0x02}, + {0xa2d9, 0x02}, + {0xa2da, 0x02}, + {0xa2db, 0x02}, + {0xa2dc, 0x02}, + {0xa2dd, 0x02}, + {0xa2de, 0x02}, + {0xa2df, 0x02}, + {0xa2e0, 0x02}, + {0xa2e1, 0x02}, + {0xa2e3, 0x01}, + {0xa2f1, 0x02}, + {0xa2f2, 0x0202}, + {0xa2f4, 0x0202}, + {0xa2f5, 0x02}, + {0xa2f6, 0x0202}, + {0xa2f9, 0x0202}, + {0xa2fa, 0x02}, + {0xa2fb, 0x0202}, + {0xa3a4, 0x01}, + {0xa3b0, 0x02}, + {0xa3b1, 0x02}, + {0xa3b2, 0x02}, + {0xa3b3, 0x02}, + {0xa3b4, 0x02}, + {0xa3b5, 0x02}, + {0xa3b6, 0x02}, + {0xa3b7, 0x02}, + {0xa3b8, 0x02}, + {0xa3b9, 0x02}, + {0xa3c1, 0x02}, + {0xa3c2, 0x02}, + {0xa3c3, 0x02}, + {0xa3c4, 0x02}, + {0xa3c5, 0x02}, + {0xa3c6, 0x02}, + {0xa3c7, 0x02}, + {0xa3c8, 0x02}, + {0xa3c9, 0x02}, + {0xa3ca, 0x02}, + {0xa3cb, 0x02}, + {0xa3cc, 0x02}, + {0xa3cd, 0x02}, + {0xa3ce, 0x02}, + {0xa3cf, 0x02}, + {0xa3d0, 0x02}, + {0xa3d1, 0x02}, + {0xa3d2, 0x02}, + {0xa3d3, 0x02}, + {0xa3d4, 0x02}, + {0xa3d5, 0x02}, + {0xa3d6, 0x02}, + {0xa3d7, 0x02}, + {0xa3d8, 0x02}, + {0xa3d9, 0x02}, + {0xa3da, 0x02}, + {0xa3e1, 0x02}, + {0xa3e2, 0x02}, + {0xa3e3, 0x02}, + {0xa3e4, 0x02}, + {0xa3e5, 0x02}, + {0xa3e6, 0x02}, + {0xa3e7, 0x02}, + {0xa3e8, 0x02}, + {0xa3e9, 0x02}, + {0xa3ea, 0x02}, + {0xa3eb, 0x02}, + {0xa3ec, 0x02}, + {0xa3ed, 0x02}, + {0xa3ee, 0x02}, + {0xa3ef, 0x02}, + {0xa3f0, 0x02}, + {0xa3f1, 0x02}, + {0xa3f2, 0x02}, + {0xa3f3, 0x02}, + {0xa3f4, 0x02}, + {0xa3f5, 0x02}, + {0xa3f6, 0x02}, + {0xa3f7, 0x02}, + {0xa3f8, 0x02}, + {0xa3f9, 0x02}, + {0xa3fa, 0x02}, + {0xa4a1, 0x02}, + {0xa4a2, 0x02}, + {0xa4a3, 0x02}, + {0xa4a4, 0x02}, + {0xa4a5, 0x02}, + {0xa4a6, 0x02}, + {0xa4a7, 0x02}, + {0xa4a8, 0x02}, + {0xa4a9, 0x02}, + {0xa4aa, 0x02}, + {0xa4ab, 0x02}, + {0xa4ac, 0x02bd}, + {0xa4ad, 0x02}, + {0xa4ae, 0x02bd}, + {0xa4af, 0x02}, + {0xa4b0, 0x02bd}, + {0xa4b1, 0x02}, + {0xa4b2, 0x02bd}, + {0xa4b3, 0x02}, + {0xa4b4, 0x02bd}, + {0xa4b5, 0x02}, + {0xa4b6, 0x02bd}, + {0xa4b7, 0x02}, + {0xa4b8, 0x02bd}, + {0xa4b9, 0x02}, + {0xa4ba, 0x02bd}, + {0xa4bb, 0x02}, + {0xa4bc, 0x02bd}, + {0xa4bd, 0x02}, + {0xa4be, 0x02bd}, + {0xa4bf, 0x02}, + {0xa4c0, 0x02bd}, + {0xa4c1, 0x02}, + {0xa4c2, 0x02bd}, + {0xa4c3, 0x02}, + {0xa4c4, 0x02}, + {0xa4c5, 0x02bd}, + {0xa4c6, 0x02}, + {0xa4c7, 0x02bd}, + {0xa4c8, 0x02}, + {0xa4c9, 0x02bd}, + {0xa4ca, 0x02}, + {0xa4cb, 0x02}, + {0xa4cc, 0x02}, + {0xa4cd, 0x02}, + {0xa4ce, 0x02}, + {0xa4cf, 0x02}, + {0xa4d0, 0x02bd}, + {0xa4d1, 0x02be}, + {0xa4d2, 0x02}, + {0xa4d3, 0x02bd}, + {0xa4d4, 0x02be}, + {0xa4d5, 0x02}, + {0xa4d6, 0x02bd}, + {0xa4d7, 0x02be}, + {0xa4d8, 0x02}, + {0xa4d9, 0x02bd}, + {0xa4da, 0x02be}, + {0xa4db, 0x02}, + {0xa4dc, 0x02bd}, + {0xa4dd, 0x02be}, + {0xa4de, 0x02}, + {0xa4df, 0x02}, + {0xa4e0, 0x02}, + {0xa4e1, 0x02}, + {0xa4e2, 0x02}, + {0xa4e3, 0x02}, + {0xa4e4, 0x02}, + {0xa4e5, 0x02}, + {0xa4e6, 0x02}, + {0xa4e7, 0x02}, + {0xa4e8, 0x02}, + {0xa4e9, 0x02}, + {0xa4ea, 0x02}, + {0xa4eb, 0x02}, + {0xa4ec, 0x02}, + {0xa4ed, 0x02}, + {0xa4ee, 0x02}, + {0xa4ef, 0x02}, + {0xa4f0, 0x02}, + {0xa4f1, 0x02}, + {0xa4f2, 0x02}, + {0xa4f3, 0x02}, + {0xa5a1, 0x02}, + {0xa5a2, 0x02}, + {0xa5a3, 0x02}, + {0xa5a4, 0x02}, + {0xa5a5, 0x02}, + {0xa5a6, 0x02}, + {0xa5a7, 0x02}, + {0xa5a8, 0x02}, + {0xa5a9, 0x02}, + {0xa5aa, 0x02}, + {0xa5ab, 0x02}, + {0xa5ac, 0x02bd}, + {0xa5ad, 0x02}, + {0xa5ae, 0x02bd}, + {0xa5af, 0x02}, + {0xa5b0, 0x02bd}, + {0xa5b1, 0x02}, + {0xa5b2, 0x02bd}, + {0xa5b3, 0x02}, + {0xa5b4, 0x02bd}, + {0xa5b5, 0x02}, + {0xa5b6, 0x02bd}, + {0xa5b7, 0x02}, + {0xa5b8, 0x02bd}, + {0xa5b9, 0x02}, + {0xa5ba, 0x02bd}, + {0xa5bb, 0x02}, + {0xa5bc, 0x02bd}, + {0xa5bd, 0x02}, + {0xa5be, 0x02bd}, + {0xa5bf, 0x02}, + {0xa5c0, 0x02bd}, + {0xa5c1, 0x02}, + {0xa5c2, 0x02bd}, + {0xa5c3, 0x02}, + {0xa5c4, 0x02}, + {0xa5c5, 0x02bd}, + {0xa5c6, 0x02}, + {0xa5c7, 0x02bd}, + {0xa5c8, 0x02}, + {0xa5c9, 0x02bd}, + {0xa5ca, 0x02}, + {0xa5cb, 0x02}, + {0xa5cc, 0x02}, + {0xa5cd, 0x02}, + {0xa5ce, 0x02}, + {0xa5cf, 0x02}, + {0xa5d0, 0x02bd}, + {0xa5d1, 0x02be}, + {0xa5d2, 0x02}, + {0xa5d3, 0x02bd}, + {0xa5d4, 0x02be}, + {0xa5d5, 0x02}, + {0xa5d6, 0x02bd}, + {0xa5d7, 0x02be}, + {0xa5d8, 0x02}, + {0xa5d9, 0x02bd}, + {0xa5da, 0x02be}, + {0xa5db, 0x02}, + {0xa5dc, 0x02bd}, + {0xa5dd, 0x02be}, + {0xa5de, 0x02}, + {0xa5df, 0x02}, + {0xa5e0, 0x02}, + {0xa5e1, 0x02}, + {0xa5e2, 0x02}, + {0xa5e3, 0x02}, + {0xa5e4, 0x02}, + {0xa5e5, 0x02}, + {0xa5e6, 0x02}, + {0xa5e7, 0x02}, + {0xa5e8, 0x02}, + {0xa5e9, 0x02}, + {0xa5ea, 0x02}, + {0xa5eb, 0x02}, + {0xa5ec, 0x02}, + {0xa5ed, 0x02}, + {0xa5ee, 0x02}, + {0xa5ef, 0x02}, + {0xa5f0, 0x02}, + {0xa5f1, 0x02}, + {0xa5f2, 0x02}, + {0xa5f3, 0x02}, + {0xa5f4, 0x02bd}, + {0xa5f5, 0x01}, + {0xa5f6, 0x01}, + {0xa6a1, 0x02}, + {0xa6a2, 0x02}, + {0xa6a3, 0x02}, + {0xa6a4, 0x02}, + {0xa6a5, 0x02}, + {0xa6a6, 0x02}, + {0xa6a7, 0x02}, + {0xa6a8, 0x02}, + {0xa6a9, 0x02}, + {0xa6aa, 0x02}, + {0xa6ab, 0x02}, + {0xa6ac, 0x02}, + {0xa6ad, 0x02}, + {0xa6ae, 0x02}, + {0xa6af, 0x02}, + {0xa6b0, 0x02}, + {0xa6b1, 0x02}, + {0xa6b2, 0x02}, + {0xa6b3, 0x02}, + {0xa6b4, 0x02}, + {0xa6b5, 0x02}, + {0xa6b6, 0x02}, + {0xa6b7, 0x02}, + {0xa6b8, 0x02}, + {0xa6c1, 0x02}, + {0xa6c2, 0x02}, + {0xa6c3, 0x02}, + {0xa6c4, 0x02}, + {0xa6c5, 0x02}, + {0xa6c6, 0x02}, + {0xa6c7, 0x02}, + {0xa6c8, 0x02}, + {0xa6c9, 0x02}, + {0xa6ca, 0x02}, + {0xa6cb, 0x02}, + {0xa6cc, 0x02}, + {0xa6cd, 0x02}, + {0xa6ce, 0x02}, + {0xa6cf, 0x02}, + {0xa6d0, 0x02}, + {0xa6d1, 0x02}, + {0xa6d2, 0x02}, + {0xa6d3, 0x02}, + {0xa6d4, 0x02}, + {0xa6d5, 0x02}, + {0xa6d6, 0x02}, + {0xa6d7, 0x02}, + {0xa6d8, 0x02}, + {0xa7a1, 0x02}, + {0xa7a2, 0x02}, + {0xa7a3, 0x02}, + {0xa7a4, 0x02}, + {0xa7a5, 0x02}, + {0xa7a6, 0x02}, + {0xa7a7, 0x03}, + {0xa7a8, 0x02}, + {0xa7a9, 0x02}, + {0xa7aa, 0x02}, + {0xa7ab, 0x02}, + {0xa7ac, 0x02}, + {0xa7ad, 0x02}, + {0xa7ae, 0x02}, + {0xa7af, 0x02}, + {0xa7b0, 0x02}, + {0xa7b1, 0x02}, + {0xa7b2, 0x02}, + {0xa7b3, 0x02}, + {0xa7b4, 0x02}, + {0xa7b5, 0x02}, + {0xa7b6, 0x02}, + {0xa7b7, 0x02}, + {0xa7b8, 0x02}, + {0xa7b9, 0x02}, + {0xa7ba, 0x02}, + {0xa7bb, 0x02}, + {0xa7bc, 0x02}, + {0xa7bd, 0x02}, + {0xa7be, 0x02}, + {0xa7bf, 0x02}, + {0xa7c0, 0x02}, + {0xa7c1, 0x02}, + {0xa7d1, 0x02}, + {0xa7d2, 0x02}, + {0xa7d3, 0x02}, + {0xa7d4, 0x02}, + {0xa7d5, 0x02}, + {0xa7d6, 0x02}, + {0xa7d7, 0x03}, + {0xa7d8, 0x02}, + {0xa7d9, 0x02}, + {0xa7da, 0x02}, + {0xa7db, 0x02}, + {0xa7dc, 0x02}, + {0xa7dd, 0x02}, + {0xa7de, 0x02}, + {0xa7df, 0x02}, + {0xa7e0, 0x02}, + {0xa7e1, 0x02}, + {0xa7e2, 0x02}, + {0xa7e3, 0x02}, + {0xa7e4, 0x02}, + {0xa7e5, 0x02}, + {0xa7e6, 0x02}, + {0xa7e7, 0x02}, + {0xa7e8, 0x02}, + {0xa7e9, 0x02}, + {0xa7ea, 0x02}, + {0xa7eb, 0x02}, + {0xa7ec, 0x02}, + {0xa7ed, 0x02}, + {0xa7ee, 0x02}, + {0xa7ef, 0x02}, + {0xa7f0, 0x02}, + {0xa7f1, 0x02}, + {0xa847, 0x0202}, + {0xa848, 0x02}, + {0xa84f, 0x02}, + {0xa8a1, 0x021c}, + {0xa8a2, 0x020b}, + {0xa8a3, 0x0211}, + {0xa8a4, 0x020d}, + {0xa8a5, 0x021c}, + {0xa8a6, 0x020b}, + {0xa8a7, 0x0211}, + {0xa8a8, 0x020d}, + {0xa8a9, 0x021c}, + {0xa8aa, 0x020b}, + {0xa8ab, 0x0211}, + {0xa8ac, 0x020d}, + {0xa8ad, 0x021c}, + {0xa8ae, 0x020b}, + {0xa8af, 0x0211}, + {0xa8b0, 0x020d}, + {0xa8b1, 0x021c}, + {0xa8b2, 0x020b}, + {0xa8b3, 0x0211}, + {0xa8b4, 0x020d}, + {0xa8b5, 0x02141c}, + {0xa8b6, 0x02140b}, + {0xa8b7, 0x021411}, + {0xa8b8, 0x02140d}, + {0xa8b9, 0x0214}, + {0xa8ba, 0x0210}, + {0xa8bb, 0x01}, + {0xa8bd, 0x020b}, + {0xa8be, 0x0211}, + {0xa8bf, 0x020d}, + {0xa8c0, 0x01}, + {0xa940, 0x02}, + {0xa941, 0x02}, + {0xa942, 0x02}, + {0xa943, 0x02}, + {0xa944, 0x02}, + {0xa945, 0x02}, + {0xa946, 0x02}, + {0xa947, 0x02}, + {0xa948, 0x02}, + {0xa960, 0x02}, + {0xa961, 0x01}, + {0xa962, 0x01}, + {0xa963, 0x02}, + {0xa964, 0x02}, + {0xa966, 0x02}, + {0xa967, 0x02}, + {0xa986, 0x01}, + {0xa996, 0x02}, + {0xaa40, 0x01}, + {0xaa41, 0x01}, + {0xaa42, 0x01}, + {0xaa43, 0x01}, + {0xaa44, 0x01}, + {0xaa45, 0x01}, + {0xaa46, 0x01}, + {0xaa47, 0x01}, + {0xaa48, 0x01}, + {0xaa49, 0x01}, + {0xaa4a, 0x01}, + {0xaa4b, 0x01}, + {0xaa4c, 0x01}, + {0xaa4d, 0x01}, + {0xaa4e, 0x01}, + {0xaa4f, 0x01}, + {0xaa50, 0x01}, + {0xaa51, 0x01}, + {0xaa52, 0x01}, + {0xaa53, 0x01}, + {0xaa54, 0x01}, + {0xaa55, 0x01}, + {0xaa56, 0x01}, + {0xaa57, 0x01}, + {0xaa58, 0x01}, + {0xaa59, 0x01}, + {0xaa5a, 0x01}, + {0xaa5b, 0x01}, + {0xaa5c, 0x01}, + {0xaa5d, 0x01}, + {0xaa5e, 0x01}, + {0xaa5f, 0x01}, + {0xaa60, 0x01}, + {0xaa61, 0x01}, + {0xaa62, 0x01}, + {0xaa63, 0x01}, + {0xaa64, 0x01}, + {0xaa65, 0x01}, + {0xaa66, 0x01}, + {0xaa67, 0x01}, + {0xaa68, 0x01}, + {0xaa69, 0x01}, + {0xaa6a, 0x01}, + {0xaa6b, 0x01}, + {0xaa6c, 0x01}, + {0xaa6d, 0x01}, + {0xaa6e, 0x01}, + {0xaa6f, 0x01}, + {0xaa70, 0x01}, + {0xaa71, 0x01}, + {0xaa72, 0x01}, + {0xaa73, 0x01}, + {0xaa74, 0x01}, + {0xaa75, 0x01}, + {0xaa76, 0x01}, + {0xaa77, 0x01}, + {0xaa78, 0x01}, + {0xaa79, 0x01}, + {0xaa7a, 0x01}, + {0xaa7b, 0x01}, + {0xaa7c, 0x01}, + {0xaa7d, 0x01}, + {0xaa7e, 0x01}, + {0xaa80, 0x01}, + {0xaa81, 0x01}, + {0xaa82, 0x01}, + {0xaa83, 0x01}, + {0xaa84, 0x01}, + {0xaa85, 0x01}, + {0xaa86, 0x01}, + {0xaa87, 0x01}, + {0xaa88, 0x01}, + {0xaa89, 0x01}, + {0xaa8a, 0x01}, + {0xaa8b, 0x01}, + {0xaa8c, 0x01}, + {0xaa8d, 0x01}, + {0xaa8e, 0x01}, + {0xaa8f, 0x01}, + {0xaa90, 0x01}, + {0xaa91, 0x01}, + {0xaa92, 0x01}, + {0xaa93, 0x01}, + {0xaa94, 0x01}, + {0xaa95, 0x01}, + {0xaa96, 0x01}, + {0xaa97, 0x01}, + {0xaa98, 0x01}, + {0xaa99, 0x01}, + {0xaa9a, 0x01}, + {0xaa9b, 0x01}, + {0xaa9c, 0x01}, + {0xaa9d, 0x01}, + {0xaa9e, 0x01}, + {0xaa9f, 0x01}, + {0xaaa0, 0x01}, + {0xab40, 0x01}, + {0xab41, 0x01}, + {0xab42, 0x01}, + {0xab43, 0x01}, + {0xab44, 0x01}, + {0xab45, 0x01}, + {0xab46, 0x01}, + {0xab47, 0x01}, + {0xab48, 0x01}, + {0xab49, 0x01}, + {0xab4a, 0x01}, + {0xab4b, 0x01}, + {0xab4c, 0x01}, + {0xab4d, 0x01}, + {0xab4e, 0x01}, + {0xab4f, 0x01}, + {0xab50, 0x01}, + {0xab51, 0x01}, + {0xab52, 0x01}, + {0xab53, 0x01}, + {0xab54, 0x01}, + {0xab55, 0x01}, + {0xab56, 0x01}, + {0xab57, 0x01}, + {0xab58, 0x01}, + {0xab59, 0x01}, + {0xab5a, 0x01}, + {0xab5b, 0x01}, + {0xab5c, 0x01}, + {0xab5d, 0x01}, + {0xab5e, 0x01}, + {0xab5f, 0x01}, + {0xab60, 0x01}, + {0xab61, 0x01}, + {0xab62, 0x01}, + {0xab63, 0x01}, + {0xab64, 0x01}, + {0xab65, 0x01}, + {0xab66, 0x01}, + {0xab67, 0x01}, + {0xab68, 0x01}, + {0xab69, 0x01}, + {0xab6a, 0x01}, + {0xab6b, 0x01}, + {0xab6c, 0x01}, + {0xab6d, 0x01}, + {0xab6e, 0x01}, + {0xab6f, 0x01}, + {0xab70, 0x01}, + {0xab71, 0x01}, + {0xab72, 0x01}, + {0xab73, 0x01}, + {0xab74, 0x01}, + {0xab75, 0x01}, + {0xab76, 0x01}, + {0xab77, 0x01}, + {0xab78, 0x01}, + {0xab79, 0x01}, + {0xab7a, 0x01}, + {0xab7b, 0x01}, + {0xab7c, 0x01}, + {0xab7d, 0x01}, + {0xab7e, 0x01}, + {0xab80, 0x01}, + {0xab81, 0x01}, + {0xab82, 0x01}, + {0xab83, 0x01}, + {0xab84, 0x01}, + {0xab85, 0x01}, + {0xab86, 0x01}, + {0xab87, 0x01}, + {0xab88, 0x01}, + {0xab89, 0x01}, + {0xab8a, 0x01}, + {0xab8b, 0x01}, + {0xab8c, 0x01}, + {0xab8d, 0x01}, + {0xab8e, 0x01}, + {0xab8f, 0x01}, + {0xab90, 0x01}, + {0xab91, 0x01}, + {0xab92, 0x01}, + {0xab93, 0x01}, + {0xab94, 0x01}, + {0xab95, 0x01}, + {0xab96, 0x01}, + {0xab97, 0x01}, + {0xab98, 0x01}, + {0xab99, 0x01}, + {0xab9a, 0x01}, + {0xab9b, 0x01}, + {0xab9c, 0x01}, + {0xab9d, 0x01}, + {0xab9e, 0x01}, + {0xab9f, 0x01}, + {0xaba0, 0x01}, + {0xac40, 0x01}, + {0xac41, 0x01}, + {0xac42, 0x01}, + {0xac43, 0x01}, + {0xac44, 0x01}, + {0xac45, 0x01}, + {0xac46, 0x01}, + {0xac47, 0x01}, + {0xac48, 0x01}, + {0xac49, 0x01}, + {0xac4a, 0x01}, + {0xac4b, 0x01}, + {0xac4c, 0x01}, + {0xac4d, 0x01}, + {0xac4e, 0x01}, + {0xac4f, 0x01}, + {0xac50, 0x01}, + {0xac51, 0x01}, + {0xac52, 0x01}, + {0xac53, 0x01}, + {0xac54, 0x01}, + {0xac55, 0x01}, + {0xac56, 0x01}, + {0xac57, 0x01}, + {0xac58, 0x01}, + {0xac59, 0x01}, + {0xac5a, 0x01}, + {0xac5b, 0x01}, + {0xac5c, 0x01}, + {0xac5d, 0x01}, + {0xac5e, 0x01}, + {0xac5f, 0x01}, + {0xac60, 0x01}, + {0xac61, 0x01}, + {0xac62, 0x01}, + {0xac63, 0x01}, + {0xac64, 0x01}, + {0xac65, 0x01}, + {0xac66, 0x01}, + {0xac67, 0x01}, + {0xac68, 0x01}, + {0xac69, 0x01}, + {0xac6a, 0x01}, + {0xac6b, 0x01}, + {0xac6c, 0x01}, + {0xac6d, 0x01}, + {0xac6e, 0x01}, + {0xac6f, 0x01}, + {0xac70, 0x01}, + {0xac71, 0x01}, + {0xac72, 0x01}, + {0xac73, 0x01}, + {0xac74, 0x01}, + {0xac75, 0x01}, + {0xac76, 0x01}, + {0xac77, 0x01}, + {0xac78, 0x01}, + {0xac79, 0x01}, + {0xac7a, 0x01}, + {0xac7b, 0x01}, + {0xac7c, 0x01}, + {0xac7d, 0x01}, + {0xac7e, 0x01}, + {0xac80, 0x01}, + {0xac81, 0x01}, + {0xac82, 0x01}, + {0xac83, 0x01}, + {0xac84, 0x01}, + {0xac85, 0x01}, + {0xac86, 0x01}, + {0xac87, 0x01}, + {0xac88, 0x01}, + {0xac89, 0x01}, + {0xac8a, 0x01}, + {0xac8b, 0x01}, + {0xac8c, 0x01}, + {0xac8d, 0x01}, + {0xac8e, 0x01}, + {0xac8f, 0x01}, + {0xac90, 0x01}, + {0xac91, 0x01}, + {0xac92, 0x01}, + {0xac93, 0x01}, + {0xac94, 0x01}, + {0xac95, 0x01}, + {0xac96, 0x01}, + {0xac97, 0x01}, + {0xac98, 0x01}, + {0xac99, 0x01}, + {0xac9a, 0x01}, + {0xac9b, 0x01}, + {0xac9c, 0x01}, + {0xac9d, 0x01}, + {0xac9e, 0x01}, + {0xac9f, 0x01}, + {0xaca0, 0x01}, + {0xad40, 0x01}, + {0xad41, 0x01}, + {0xad42, 0x01}, + {0xad43, 0x01}, + {0xad44, 0x01}, + {0xad45, 0x01}, + {0xad46, 0x01}, + {0xad47, 0x01}, + {0xad48, 0x01}, + {0xad49, 0x01}, + {0xad4a, 0x01}, + {0xad4b, 0x01}, + {0xad4c, 0x01}, + {0xad4d, 0x01}, + {0xad4e, 0x01}, + {0xad4f, 0x01}, + {0xad50, 0x01}, + {0xad51, 0x01}, + {0xad52, 0x01}, + {0xad53, 0x01}, + {0xad54, 0x01}, + {0xad55, 0x01}, + {0xad56, 0x01}, + {0xad57, 0x01}, + {0xad58, 0x01}, + {0xad59, 0x01}, + {0xad5a, 0x01}, + {0xad5b, 0x01}, + {0xad5c, 0x01}, + {0xad5d, 0x01}, + {0xad5e, 0x01}, + {0xad5f, 0x01}, + {0xad60, 0x01}, + {0xad61, 0x01}, + {0xad62, 0x01}, + {0xad63, 0x01}, + {0xad64, 0x01}, + {0xad65, 0x01}, + {0xad66, 0x01}, + {0xad67, 0x01}, + {0xad68, 0x01}, + {0xad69, 0x01}, + {0xad6a, 0x01}, + {0xad6b, 0x01}, + {0xad6c, 0x01}, + {0xad6d, 0x01}, + {0xad6e, 0x01}, + {0xad6f, 0x01}, + {0xad70, 0x01}, + {0xad71, 0x01}, + {0xad72, 0x01}, + {0xad73, 0x01}, + {0xad74, 0x01}, + {0xad75, 0x01}, + {0xad76, 0x01}, + {0xad77, 0x01}, + {0xad78, 0x01}, + {0xad79, 0x01}, + {0xad7a, 0x01}, + {0xad7b, 0x01}, + {0xad7c, 0x01}, + {0xad7d, 0x01}, + {0xad7e, 0x01}, + {0xad80, 0x01}, + {0xad81, 0x01}, + {0xad82, 0x01}, + {0xad83, 0x01}, + {0xad84, 0x01}, + {0xad85, 0x01}, + {0xad86, 0x01}, + {0xad87, 0x01}, + {0xad88, 0x01}, + {0xad89, 0x01}, + {0xad8a, 0x01}, + {0xad8b, 0x01}, + {0xad8c, 0x01}, + {0xad8d, 0x01}, + {0xad8e, 0x01}, + {0xad8f, 0x01}, + {0xad90, 0x01}, + {0xad91, 0x01}, + {0xad92, 0x01}, + {0xad93, 0x01}, + {0xad94, 0x01}, + {0xad95, 0x01}, + {0xad96, 0x01}, + {0xad97, 0x01}, + {0xad98, 0x01}, + {0xad99, 0x01}, + {0xad9a, 0x01}, + {0xad9b, 0x01}, + {0xad9c, 0x01}, + {0xad9d, 0x01}, + {0xad9e, 0x01}, + {0xad9f, 0x01}, + {0xada0, 0x01}, + {0xae40, 0x01}, + {0xae41, 0x01}, + {0xae42, 0x01}, + {0xae43, 0x01}, + {0xae44, 0x01}, + {0xae45, 0x01}, + {0xae46, 0x01}, + {0xae47, 0x01}, + {0xae48, 0x01}, + {0xae49, 0x01}, + {0xae4a, 0x01}, + {0xae4b, 0x01}, + {0xae4c, 0x01}, + {0xae4d, 0x01}, + {0xae4e, 0x01}, + {0xae4f, 0x01}, + {0xae50, 0x01}, + {0xae51, 0x01}, + {0xae52, 0x01}, + {0xae53, 0x01}, + {0xae54, 0x01}, + {0xae55, 0x01}, + {0xae56, 0x01}, + {0xae57, 0x01}, + {0xae58, 0x01}, + {0xae59, 0x01}, + {0xae5a, 0x01}, + {0xae5b, 0x01}, + {0xae5c, 0x01}, + {0xae5d, 0x01}, + {0xae5e, 0x01}, + {0xae5f, 0x01}, + {0xae60, 0x01}, + {0xae61, 0x01}, + {0xae62, 0x01}, + {0xae63, 0x01}, + {0xae64, 0x01}, + {0xae65, 0x01}, + {0xae66, 0x01}, + {0xae67, 0x01}, + {0xae68, 0x01}, + {0xae69, 0x01}, + {0xae6a, 0x01}, + {0xae6b, 0x01}, + {0xae6c, 0x01}, + {0xae6d, 0x01}, + {0xae6e, 0x01}, + {0xae6f, 0x01}, + {0xae70, 0x01}, + {0xae71, 0x01}, + {0xae72, 0x01}, + {0xae73, 0x01}, + {0xae74, 0x01}, + {0xae75, 0x01}, + {0xae76, 0x01}, + {0xae77, 0x01}, + {0xae78, 0x01}, + {0xae79, 0x01}, + {0xae7a, 0x01}, + {0xae7b, 0x01}, + {0xae7c, 0x01}, + {0xae7d, 0x01}, + {0xae7e, 0x01}, + {0xae80, 0x01}, + {0xae81, 0x01}, + {0xae82, 0x01}, + {0xae83, 0x01}, + {0xae84, 0x01}, + {0xae85, 0x01}, + {0xae86, 0x01}, + {0xae87, 0x01}, + {0xae88, 0x01}, + {0xae89, 0x01}, + {0xae8a, 0x01}, + {0xae8b, 0x01}, + {0xae8c, 0x01}, + {0xae8d, 0x01}, + {0xae8e, 0x01}, + {0xae8f, 0x01}, + {0xae90, 0x01}, + {0xae91, 0x01}, + {0xae92, 0x01}, + {0xae93, 0x01}, + {0xae94, 0x01}, + {0xae95, 0x01}, + {0xae96, 0x01}, + {0xae97, 0x01}, + {0xae98, 0x01}, + {0xae99, 0x01}, + {0xae9a, 0x01}, + {0xae9b, 0x01}, + {0xae9c, 0x01}, + {0xae9d, 0x01}, + {0xae9e, 0x01}, + {0xae9f, 0x01}, + {0xaea0, 0x01}, + {0xaf40, 0x01}, + {0xaf41, 0x01}, + {0xaf42, 0x01}, + {0xaf43, 0x01}, + {0xaf44, 0x01}, + {0xaf45, 0x01}, + {0xaf46, 0x01}, + {0xaf47, 0x01}, + {0xaf48, 0x01}, + {0xaf49, 0x01}, + {0xaf4a, 0x01}, + {0xaf4b, 0x01}, + {0xaf4c, 0x01}, + {0xaf4d, 0x01}, + {0xaf4e, 0x01}, + {0xaf4f, 0x01}, + {0xaf50, 0x01}, + {0xaf51, 0x01}, + {0xaf52, 0x01}, + {0xaf53, 0x01}, + {0xaf54, 0x01}, + {0xaf55, 0x01}, + {0xaf56, 0x01}, + {0xaf57, 0x01}, + {0xaf58, 0x01}, + {0xaf59, 0x01}, + {0xaf5a, 0x01}, + {0xaf5b, 0x01}, + {0xaf5c, 0x01}, + {0xaf5d, 0x01}, + {0xaf5e, 0x01}, + {0xaf5f, 0x01}, + {0xaf60, 0x01}, + {0xaf61, 0x01}, + {0xaf62, 0x01}, + {0xaf63, 0x01}, + {0xaf64, 0x01}, + {0xaf65, 0x01}, + {0xaf66, 0x01}, + {0xaf67, 0x01}, + {0xaf68, 0x01}, + {0xaf69, 0x01}, + {0xaf6a, 0x01}, + {0xaf6b, 0x01}, + {0xaf6c, 0x01}, + {0xaf6d, 0x01}, + {0xaf6e, 0x01}, + {0xaf6f, 0x01}, + {0xaf70, 0x01}, + {0xaf71, 0x01}, + {0xaf72, 0x01}, + {0xaf73, 0x01}, + {0xaf74, 0x01}, + {0xaf75, 0x01}, + {0xaf76, 0x01}, + {0xaf77, 0x01}, + {0xaf78, 0x01}, + {0xaf79, 0x01}, + {0xaf7a, 0x01}, + {0xaf7b, 0x01}, + {0xaf7c, 0x01}, + {0xaf7d, 0x01}, + {0xaf7e, 0x01}, + {0xaf80, 0x01}, + {0xaf81, 0x01}, + {0xaf82, 0x01}, + {0xaf83, 0x01}, + {0xaf84, 0x01}, + {0xaf85, 0x01}, + {0xaf86, 0x01}, + {0xaf87, 0x01}, + {0xaf88, 0x01}, + {0xaf89, 0x01}, + {0xaf8a, 0x01}, + {0xaf8b, 0x01}, + {0xaf8c, 0x01}, + {0xaf8d, 0x01}, + {0xaf8e, 0x01}, + {0xaf8f, 0x01}, + {0xaf90, 0x01}, + {0xaf91, 0x01}, + {0xaf92, 0x01}, + {0xaf93, 0x01}, + {0xaf94, 0x01}, + {0xaf95, 0x01}, + {0xaf96, 0x01}, + {0xaf97, 0x01}, + {0xaf98, 0x01}, + {0xaf99, 0x01}, + {0xaf9a, 0x01}, + {0xaf9b, 0x01}, + {0xaf9c, 0x01}, + {0xaf9d, 0x01}, + {0xaf9e, 0x01}, + {0xaf9f, 0x01}, + {0xafa0, 0x01}, + {0xb040, 0x01}, + {0xb041, 0x01}, + {0xb042, 0x01}, + {0xb043, 0x01}, + {0xb044, 0x01}, + {0xb045, 0x01}, + {0xb046, 0x01}, + {0xb047, 0x01}, + {0xb048, 0x01}, + {0xb049, 0x01}, + {0xb04a, 0x01}, + {0xb04b, 0x01}, + {0xb04c, 0x01}, + {0xb04d, 0x01}, + {0xb04e, 0x01}, + {0xb04f, 0x01}, + {0xb050, 0x01}, + {0xb051, 0x01}, + {0xb052, 0x01}, + {0xb053, 0x01}, + {0xb054, 0x01}, + {0xb055, 0x01}, + {0xb056, 0x01}, + {0xb057, 0x01}, + {0xb058, 0x01}, + {0xb059, 0x01}, + {0xb05a, 0x01}, + {0xb05b, 0x01}, + {0xb05c, 0x01}, + {0xb05d, 0x01}, + {0xb05e, 0x01}, + {0xb05f, 0x01}, + {0xb060, 0x01}, + {0xb061, 0x01}, + {0xb062, 0x01}, + {0xb063, 0x01}, + {0xb064, 0x01}, + {0xb065, 0x01}, + {0xb066, 0x01}, + {0xb067, 0x01}, + {0xb068, 0x01}, + {0xb06a, 0x01}, + {0xb06b, 0x01}, + {0xb06c, 0x01}, + {0xb06d, 0x01}, + {0xb06e, 0x01}, + {0xb06f, 0x01}, + {0xb070, 0x01}, + {0xb071, 0x01}, + {0xb072, 0x01}, + {0xb073, 0x01}, + {0xb074, 0x01}, + {0xb075, 0x01}, + {0xb076, 0x01}, + {0xb077, 0x01}, + {0xb078, 0x01}, + {0xb079, 0x01}, + {0xb07a, 0x01}, + {0xb07b, 0x01}, + {0xb07c, 0x01}, + {0xb07d, 0x01}, + {0xb07e, 0x01}, + {0xb080, 0x01}, + {0xb081, 0x01}, + {0xb082, 0x01}, + {0xb083, 0x01}, + {0xb084, 0x01}, + {0xb085, 0x01}, + {0xb086, 0x01}, + {0xb087, 0x01}, + {0xb088, 0x01}, + {0xb089, 0x01}, + {0xb08a, 0x01}, + {0xb08b, 0x01}, + {0xb08c, 0x01}, + {0xb08d, 0x01}, + {0xb08e, 0x01}, + {0xb08f, 0x01}, + {0xb090, 0x01}, + {0xb091, 0x01}, + {0xb092, 0x01}, + {0xb093, 0x01}, + {0xb094, 0x01}, + {0xb095, 0x01}, + {0xb096, 0x01}, + {0xb097, 0x01}, + {0xb098, 0x01}, + {0xb099, 0x01}, + {0xb09a, 0x01}, + {0xb09c, 0x01}, + {0xb09d, 0x01}, + {0xb09e, 0x01}, + {0xb09f, 0x01}, + {0xb0a0, 0x01}, + {0xb0a1, 0x01}, + {0xb0a2, 0x01}, + {0xb0a3, 0x01}, + {0xb0a4, 0x01}, + {0xb0a5, 0x01}, + {0xb0a6, 0x01}, + {0xb0a7, 0x01}, + {0xb0a8, 0x01}, + {0xb0a9, 0x01}, + {0xb0aa, 0x01}, + {0xb0ab, 0x01}, + {0xb0ac, 0x01}, + {0xb0ad, 0x01}, + {0xb0ae, 0x01}, + {0xb0af, 0x01}, + {0xb0b0, 0x01}, + {0xb0b1, 0x01}, + {0xb0b2, 0x01}, + {0xb0b3, 0x01}, + {0xb0b4, 0x01}, + {0xb0b5, 0x01}, + {0xb0b6, 0x01}, + {0xb0b7, 0x01}, + {0xb0b8, 0x01}, + {0xb0b9, 0x01}, + {0xb0ba, 0x01}, + {0xb0bb, 0x01}, + {0xb0bc, 0x01}, + {0xb0bd, 0x01}, + {0xb0be, 0x01}, + {0xb0bf, 0x01}, + {0xb0c0, 0x01}, + {0xb0c1, 0x01}, + {0xb0c2, 0x01}, + {0xb0c3, 0x01}, + {0xb0c4, 0x01}, + {0xb0c5, 0x01}, + {0xb0c6, 0x01}, + {0xb0c7, 0x01}, + {0xb0c8, 0x01}, + {0xb0c9, 0x01}, + {0xb0ca, 0x01}, + {0xb0cb, 0x01}, + {0xb0cc, 0x01}, + {0xb0cd, 0x01}, + {0xb0ce, 0x01}, + {0xb0cf, 0x01}, + {0xb0d0, 0x01}, + {0xb0d1, 0x01}, + {0xb0d2, 0x01}, + {0xb0d3, 0x01}, + {0xb0d4, 0x01}, + {0xb0d5, 0x01}, + {0xb0d6, 0x01}, + {0xb0d7, 0x01}, + {0xb0d8, 0x01}, + {0xb0d9, 0x01}, + {0xb0da, 0x01}, + {0xb0db, 0x01}, + {0xb0dc, 0x01}, + {0xb0dd, 0x01}, + {0xb0de, 0x01}, + {0xb0df, 0x01}, + {0xb0e0, 0x01}, + {0xb0e1, 0x01}, + {0xb0e2, 0x01}, + {0xb0e3, 0x01}, + {0xb0e4, 0x01}, + {0xb0e5, 0x01}, + {0xb0e6, 0x01}, + {0xb0e7, 0x01}, + {0xb0e8, 0x01}, + {0xb0e9, 0x01}, + {0xb0ea, 0x01}, + {0xb0eb, 0x01}, + {0xb0ec, 0x01}, + {0xb0ed, 0x01}, + {0xb0ee, 0x01}, + {0xb0ef, 0x01}, + {0xb0f0, 0x01}, + {0xb0f1, 0x01}, + {0xb0f2, 0x01}, + {0xb0f3, 0x01}, + {0xb0f4, 0x01}, + {0xb0f5, 0x01}, + {0xb0f6, 0x01}, + {0xb0f7, 0x01}, + {0xb0f8, 0x01}, + {0xb0f9, 0x01}, + {0xb0fa, 0x01}, + {0xb0fb, 0x01}, + {0xb0fc, 0x01}, + {0xb0fd, 0x01}, + {0xb0fe, 0x01}, + {0xb140, 0x01}, + {0xb141, 0x01}, + {0xb142, 0x01}, + {0xb143, 0x01}, + {0xb144, 0x01}, + {0xb145, 0x01}, + {0xb146, 0x01}, + {0xb147, 0x01}, + {0xb148, 0x01}, + {0xb149, 0x01}, + {0xb14a, 0x01}, + {0xb14b, 0x01}, + {0xb14c, 0x01}, + {0xb14d, 0x01}, + {0xb14e, 0x01}, + {0xb14f, 0x01}, + {0xb150, 0x01}, + {0xb151, 0x01}, + {0xb152, 0x01}, + {0xb153, 0x01}, + {0xb154, 0x01}, + {0xb155, 0x01}, + {0xb156, 0x01}, + {0xb157, 0x01}, + {0xb158, 0x01}, + {0xb159, 0x01}, + {0xb15a, 0x01}, + {0xb15b, 0x01}, + {0xb15c, 0x01}, + {0xb15d, 0x01}, + {0xb15e, 0x01}, + {0xb15f, 0x01}, + {0xb160, 0x01}, + {0xb161, 0x01}, + {0xb162, 0x01}, + {0xb163, 0x01}, + {0xb164, 0x01}, + {0xb165, 0x01}, + {0xb166, 0x01}, + {0xb167, 0x01}, + {0xb168, 0x01}, + {0xb169, 0x01}, + {0xb16a, 0x01}, + {0xb16b, 0x01}, + {0xb16c, 0x01}, + {0xb16d, 0x01}, + {0xb16e, 0x01}, + {0xb16f, 0x01}, + {0xb170, 0x01}, + {0xb171, 0x01}, + {0xb172, 0x01}, + {0xb173, 0x01}, + {0xb174, 0x01}, + {0xb175, 0x01}, + {0xb176, 0x01}, + {0xb177, 0x01}, + {0xb178, 0x01}, + {0xb179, 0x01}, + {0xb17a, 0x01}, + {0xb17b, 0x01}, + {0xb17c, 0x01}, + {0xb17d, 0x01}, + {0xb17e, 0x01}, + {0xb180, 0x01}, + {0xb181, 0x01}, + {0xb182, 0x01}, + {0xb183, 0x01}, + {0xb184, 0x01}, + {0xb185, 0x01}, + {0xb186, 0x01}, + {0xb187, 0x01}, + {0xb188, 0x01}, + {0xb189, 0x01}, + {0xb18a, 0x01}, + {0xb18b, 0x01}, + {0xb18c, 0x01}, + {0xb18d, 0x01}, + {0xb18e, 0x01}, + {0xb18f, 0x01}, + {0xb190, 0x01}, + {0xb191, 0x01}, + {0xb192, 0x01}, + {0xb193, 0x01}, + {0xb194, 0x01}, + {0xb195, 0x01}, + {0xb196, 0x01}, + {0xb197, 0x01}, + {0xb198, 0x01}, + {0xb199, 0x01}, + {0xb19a, 0x01}, + {0xb19b, 0x01}, + {0xb19c, 0x01}, + {0xb19d, 0x01}, + {0xb19e, 0x01}, + {0xb19f, 0x01}, + {0xb1a0, 0x01}, + {0xb1a1, 0x01}, + {0xb1a2, 0x01}, + {0xb1a3, 0x01}, + {0xb1a4, 0x01}, + {0xb1a5, 0x01}, + {0xb1a6, 0x01}, + {0xb1a7, 0x01}, + {0xb1a8, 0x01}, + {0xb1a9, 0x01}, + {0xb1aa, 0x01}, + {0xb1ab, 0x01}, + {0xb1ac, 0x01}, + {0xb1ad, 0x01}, + {0xb1ae, 0x01}, + {0xb1af, 0x01}, + {0xb1b0, 0x01}, + {0xb1b1, 0x01}, + {0xb1b2, 0x01}, + {0xb1b3, 0x01}, + {0xb1b4, 0x01}, + {0xb1b5, 0x01}, + {0xb1b6, 0x01}, + {0xb1b7, 0x01}, + {0xb1b8, 0x01}, + {0xb1b9, 0x01}, + {0xb1ba, 0x01}, + {0xb1bb, 0x01}, + {0xb1bc, 0x01}, + {0xb1bd, 0x01}, + {0xb1be, 0x01}, + {0xb1bf, 0x01}, + {0xb1c0, 0x01}, + {0xb1c1, 0x01}, + {0xb1c2, 0x01}, + {0xb1c3, 0x01}, + {0xb1c4, 0x01}, + {0xb1c5, 0x01}, + {0xb1c6, 0x01}, + {0xb1c7, 0x01}, + {0xb1c8, 0x01}, + {0xb1c9, 0x01}, + {0xb1ca, 0x01}, + {0xb1cb, 0x01}, + {0xb1cc, 0x01}, + {0xb1cd, 0x01}, + {0xb1ce, 0x01}, + {0xb1cf, 0x01}, + {0xb1d0, 0x01}, + {0xb1d1, 0x01}, + {0xb1d2, 0x01}, + {0xb1d3, 0x01}, + {0xb1d4, 0x01}, + {0xb1d5, 0x01}, + {0xb1d6, 0x01}, + {0xb1d7, 0x01}, + {0xb1d8, 0x01}, + {0xb1d9, 0x01}, + {0xb1da, 0x01}, + {0xb1db, 0x01}, + {0xb1dc, 0x01}, + {0xb1dd, 0x01}, + {0xb1de, 0x01}, + {0xb1df, 0x01}, + {0xb1e0, 0x01}, + {0xb1e1, 0x01}, + {0xb1e2, 0x01}, + {0xb1e3, 0x01}, + {0xb1e4, 0x01}, + {0xb1e5, 0x01}, + {0xb1e6, 0x01}, + {0xb1e7, 0x01}, + {0xb1e8, 0x01}, + {0xb1e9, 0x01}, + {0xb1ea, 0x01}, + {0xb1eb, 0x01}, + {0xb1ec, 0x01}, + {0xb1ed, 0x01}, + {0xb1ee, 0x01}, + {0xb1ef, 0x01}, + {0xb1f0, 0x01}, + {0xb1f1, 0x01}, + {0xb1f2, 0x01}, + {0xb1f3, 0x01}, + {0xb1f4, 0x01}, + {0xb1f5, 0x01}, + {0xb1f6, 0x01}, + {0xb1f7, 0x01}, + {0xb1f8, 0x01}, + {0xb1f9, 0x01}, + {0xb1fa, 0x01}, + {0xb1fb, 0x01}, + {0xb1fc, 0x01}, + {0xb1fd, 0x01}, + {0xb1fe, 0x01}, + {0xb240, 0x01}, + {0xb241, 0x01}, + {0xb242, 0x01}, + {0xb243, 0x01}, + {0xb244, 0x01}, + {0xb245, 0x01}, + {0xb246, 0x01}, + {0xb247, 0x01}, + {0xb248, 0x01}, + {0xb249, 0x01}, + {0xb24a, 0x01}, + {0xb24b, 0x01}, + {0xb24c, 0x01}, + {0xb24d, 0x01}, + {0xb24e, 0x01}, + {0xb24f, 0x01}, + {0xb250, 0x01}, + {0xb251, 0x01}, + {0xb252, 0x01}, + {0xb253, 0x01}, + {0xb254, 0x01}, + {0xb255, 0x01}, + {0xb256, 0x01}, + {0xb257, 0x01}, + {0xb258, 0x01}, + {0xb259, 0x01}, + {0xb25a, 0x01}, + {0xb25b, 0x01}, + {0xb25c, 0x01}, + {0xb25d, 0x01}, + {0xb25e, 0x01}, + {0xb25f, 0x01}, + {0xb260, 0x01}, + {0xb261, 0x01}, + {0xb262, 0x01}, + {0xb263, 0x01}, + {0xb264, 0x01}, + {0xb265, 0x01}, + {0xb266, 0x01}, + {0xb267, 0x01}, + {0xb268, 0x01}, + {0xb269, 0x01}, + {0xb26a, 0x01}, + {0xb26b, 0x01}, + {0xb26c, 0x01}, + {0xb26d, 0x01}, + {0xb26e, 0x01}, + {0xb26f, 0x01}, + {0xb270, 0x01}, + {0xb271, 0x01}, + {0xb272, 0x01}, + {0xb273, 0x01}, + {0xb274, 0x01}, + {0xb275, 0x01}, + {0xb276, 0x01}, + {0xb277, 0x01}, + {0xb278, 0x01}, + {0xb279, 0x01}, + {0xb27a, 0x01}, + {0xb27b, 0x01}, + {0xb27c, 0x01}, + {0xb27d, 0x01}, + {0xb27e, 0x01}, + {0xb280, 0x01}, + {0xb281, 0x01}, + {0xb282, 0x01}, + {0xb283, 0x01}, + {0xb284, 0x01}, + {0xb285, 0x01}, + {0xb286, 0x01}, + {0xb287, 0x01}, + {0xb288, 0x01}, + {0xb289, 0x01}, + {0xb28a, 0x01}, + {0xb28b, 0x01}, + {0xb28c, 0x01}, + {0xb28d, 0x01}, + {0xb28e, 0x01}, + {0xb28f, 0x01}, + {0xb290, 0x01}, + {0xb291, 0x01}, + {0xb292, 0x01}, + {0xb293, 0x01}, + {0xb294, 0x01}, + {0xb295, 0x01}, + {0xb296, 0x01}, + {0xb297, 0x01}, + {0xb298, 0x01}, + {0xb299, 0x01}, + {0xb29a, 0x01}, + {0xb29b, 0x01}, + {0xb29c, 0x01}, + {0xb29d, 0x01}, + {0xb29e, 0x01}, + {0xb29f, 0x01}, + {0xb2a0, 0x01}, + {0xb2a1, 0x01}, + {0xb2a2, 0x01}, + {0xb2a3, 0x01}, + {0xb2a4, 0x01}, + {0xb2a5, 0x01}, + {0xb2a6, 0x01}, + {0xb2a7, 0x01}, + {0xb2a8, 0x01}, + {0xb2a9, 0x01}, + {0xb2aa, 0x01}, + {0xb2ab, 0x01}, + {0xb2ac, 0x01}, + {0xb2ad, 0x01}, + {0xb2ae, 0x01}, + {0xb2af, 0x01}, + {0xb2b0, 0x01}, + {0xb2b1, 0x01}, + {0xb2b2, 0x01}, + {0xb2b3, 0x01}, + {0xb2b4, 0x01}, + {0xb2b5, 0x01}, + {0xb2b6, 0x01}, + {0xb2b7, 0x01}, + {0xb2b8, 0x01}, + {0xb2b9, 0x01}, + {0xb2ba, 0x01}, + {0xb2bb, 0x01}, + {0xb2bc, 0x01}, + {0xb2bd, 0x01}, + {0xb2be, 0x01}, + {0xb2bf, 0x01}, + {0xb2c0, 0x01}, + {0xb2c1, 0x01}, + {0xb2c2, 0x01}, + {0xb2c3, 0x01}, + {0xb2c4, 0x01}, + {0xb2c5, 0x01}, + {0xb2c6, 0x01}, + {0xb2c7, 0x01}, + {0xb2c8, 0x01}, + {0xb2c9, 0x01}, + {0xb2ca, 0x01}, + {0xb2cb, 0x01}, + {0xb2cc, 0x01}, + {0xb2cd, 0x01}, + {0xb2ce, 0x01}, + {0xb2cf, 0x01}, + {0xb2d0, 0x01}, + {0xb2d1, 0x01}, + {0xb2d2, 0x01}, + {0xb2d3, 0x01}, + {0xb2d4, 0x01}, + {0xb2d5, 0x01}, + {0xb2d6, 0x01}, + {0xb2d7, 0x01}, + {0xb2d8, 0x01}, + {0xb2d9, 0x01}, + {0xb2da, 0x01}, + {0xb2db, 0x01}, + {0xb2dc, 0x01}, + {0xb2dd, 0x01}, + {0xb2de, 0x01}, + {0xb2df, 0x01}, + {0xb2e0, 0x01}, + {0xb2e1, 0x01}, + {0xb2e2, 0x01}, + {0xb2e3, 0x01}, + {0xb2e4, 0x01}, + {0xb2e5, 0x01}, + {0xb2e6, 0x01}, + {0xb2e7, 0x01}, + {0xb2e8, 0x01}, + {0xb2e9, 0x01}, + {0xb2ea, 0x01}, + {0xb2eb, 0x01}, + {0xb2ec, 0x01}, + {0xb2ed, 0x01}, + {0xb2ee, 0x01}, + {0xb2ef, 0x01}, + {0xb2f0, 0x01}, + {0xb2f1, 0x01}, + {0xb2f2, 0x01}, + {0xb2f3, 0x01}, + {0xb2f4, 0x01}, + {0xb2f5, 0x01}, + {0xb2f6, 0x01}, + {0xb2f7, 0x01}, + {0xb2f8, 0x01}, + {0xb2f9, 0x01}, + {0xb2fa, 0x01}, + {0xb2fb, 0x01}, + {0xb2fc, 0x01}, + {0xb2fd, 0x01}, + {0xb2fe, 0x01}, + {0xb340, 0x01}, + {0xb341, 0x01}, + {0xb342, 0x01}, + {0xb343, 0x01}, + {0xb344, 0x01}, + {0xb345, 0x01}, + {0xb346, 0x01}, + {0xb347, 0x01}, + {0xb348, 0x01}, + {0xb349, 0x01}, + {0xb34a, 0x01}, + {0xb34b, 0x01}, + {0xb34c, 0x01}, + {0xb34d, 0x01}, + {0xb34e, 0x01}, + {0xb34f, 0x01}, + {0xb350, 0x01}, + {0xb351, 0x01}, + {0xb352, 0x01}, + {0xb353, 0x01}, + {0xb354, 0x01}, + {0xb355, 0x01}, + {0xb356, 0x01}, + {0xb357, 0x01}, + {0xb358, 0x01}, + {0xb359, 0x01}, + {0xb35a, 0x01}, + {0xb35b, 0x01}, + {0xb35c, 0x01}, + {0xb35d, 0x01}, + {0xb35e, 0x01}, + {0xb35f, 0x01}, + {0xb360, 0x01}, + {0xb361, 0x01}, + {0xb362, 0x01}, + {0xb363, 0x01}, + {0xb364, 0x01}, + {0xb365, 0x01}, + {0xb366, 0x01}, + {0xb367, 0x01}, + {0xb368, 0x01}, + {0xb369, 0x01}, + {0xb36a, 0x01}, + {0xb36b, 0x01}, + {0xb36c, 0x01}, + {0xb36d, 0x01}, + {0xb36e, 0x01}, + {0xb36f, 0x01}, + {0xb370, 0x01}, + {0xb371, 0x01}, + {0xb372, 0x01}, + {0xb373, 0x01}, + {0xb374, 0x01}, + {0xb375, 0x01}, + {0xb376, 0x01}, + {0xb377, 0x01}, + {0xb378, 0x01}, + {0xb379, 0x01}, + {0xb37a, 0x01}, + {0xb37b, 0x01}, + {0xb37c, 0x01}, + {0xb37d, 0x01}, + {0xb37e, 0x01}, + {0xb380, 0x01}, + {0xb381, 0x01}, + {0xb382, 0x01}, + {0xb383, 0x01}, + {0xb384, 0x01}, + {0xb385, 0x01}, + {0xb386, 0x01}, + {0xb387, 0x01}, + {0xb388, 0x01}, + {0xb389, 0x01}, + {0xb38a, 0x01}, + {0xb38b, 0x01}, + {0xb38c, 0x01}, + {0xb38d, 0x01}, + {0xb38e, 0x01}, + {0xb38f, 0x01}, + {0xb390, 0x01}, + {0xb391, 0x01}, + {0xb392, 0x01}, + {0xb393, 0x01}, + {0xb394, 0x01}, + {0xb395, 0x01}, + {0xb396, 0x01}, + {0xb397, 0x01}, + {0xb398, 0x01}, + {0xb399, 0x01}, + {0xb39a, 0x01}, + {0xb39b, 0x01}, + {0xb39c, 0x01}, + {0xb39d, 0x01}, + {0xb39e, 0x01}, + {0xb39f, 0x01}, + {0xb3a0, 0x01}, + {0xb3a1, 0x01}, + {0xb3a2, 0x01}, + {0xb3a3, 0x01}, + {0xb3a4, 0x01}, + {0xb3a5, 0x01}, + {0xb3a6, 0x01}, + {0xb3a7, 0x01}, + {0xb3a8, 0x01}, + {0xb3a9, 0x01}, + {0xb3aa, 0x01}, + {0xb3ab, 0x01}, + {0xb3ac, 0x01}, + {0xb3ad, 0x01}, + {0xb3ae, 0x01}, + {0xb3af, 0x01}, + {0xb3b0, 0x01}, + {0xb3b1, 0x01}, + {0xb3b2, 0x01}, + {0xb3b3, 0x01}, + {0xb3b4, 0x01}, + {0xb3b5, 0x01}, + {0xb3b6, 0x01}, + {0xb3b7, 0x01}, + {0xb3b8, 0x01}, + {0xb3b9, 0x01}, + {0xb3ba, 0x01}, + {0xb3bb, 0x01}, + {0xb3bc, 0x01}, + {0xb3bd, 0x01}, + {0xb3be, 0x01}, + {0xb3bf, 0x01}, + {0xb3c0, 0x01}, + {0xb3c1, 0x01}, + {0xb3c2, 0x01}, + {0xb3c3, 0x01}, + {0xb3c4, 0x01}, + {0xb3c5, 0x01}, + {0xb3c6, 0x01}, + {0xb3c7, 0x01}, + {0xb3c8, 0x01}, + {0xb3c9, 0x01}, + {0xb3ca, 0x01}, + {0xb3cb, 0x01}, + {0xb3cc, 0x01}, + {0xb3cd, 0x01}, + {0xb3ce, 0x01}, + {0xb3cf, 0x01}, + {0xb3d0, 0x01}, + {0xb3d1, 0x01}, + {0xb3d2, 0x01}, + {0xb3d3, 0x01}, + {0xb3d4, 0x01}, + {0xb3d5, 0x01}, + {0xb3d6, 0x01}, + {0xb3d7, 0x01}, + {0xb3d8, 0x01}, + {0xb3d9, 0x01}, + {0xb3da, 0x01}, + {0xb3db, 0x01}, + {0xb3dc, 0x01}, + {0xb3dd, 0x01}, + {0xb3de, 0x01}, + {0xb3df, 0x01}, + {0xb3e0, 0x01}, + {0xb3e1, 0x01}, + {0xb3e2, 0x01}, + {0xb3e3, 0x01}, + {0xb3e4, 0x01}, + {0xb3e5, 0x01}, + {0xb3e6, 0x01}, + {0xb3e7, 0x01}, + {0xb3e8, 0x01}, + {0xb3e9, 0x01}, + {0xb3ea, 0x01}, + {0xb3eb, 0x01}, + {0xb3ec, 0x01}, + {0xb3ed, 0x01}, + {0xb3ee, 0x01}, + {0xb3ef, 0x01}, + {0xb3f0, 0x01}, + {0xb3f1, 0x01}, + {0xb3f2, 0x01}, + {0xb3f3, 0x01}, + {0xb3f4, 0x01}, + {0xb3f5, 0x01}, + {0xb3f6, 0x01}, + {0xb3f7, 0x01}, + {0xb3f8, 0x01}, + {0xb3f9, 0x01}, + {0xb3fa, 0x01}, + {0xb3fb, 0x01}, + {0xb3fc, 0x01}, + {0xb3fd, 0x01}, + {0xb3fe, 0x01}, + {0xb440, 0x01}, + {0xb441, 0x01}, + {0xb442, 0x01}, + {0xb443, 0x01}, + {0xb444, 0x01}, + {0xb445, 0x01}, + {0xb446, 0x01}, + {0xb447, 0x01}, + {0xb448, 0x01}, + {0xb449, 0x01}, + {0xb44a, 0x01}, + {0xb44b, 0x01}, + {0xb44c, 0x01}, + {0xb44d, 0x01}, + {0xb44e, 0x01}, + {0xb44f, 0x01}, + {0xb450, 0x01}, + {0xb451, 0x01}, + {0xb452, 0x01}, + {0xb453, 0x01}, + {0xb454, 0x01}, + {0xb455, 0x01}, + {0xb456, 0x01}, + {0xb457, 0x01}, + {0xb458, 0x01}, + {0xb459, 0x01}, + {0xb45a, 0x01}, + {0xb45b, 0x01}, + {0xb45c, 0x01}, + {0xb45d, 0x01}, + {0xb45e, 0x01}, + {0xb45f, 0x01}, + {0xb460, 0x01}, + {0xb461, 0x01}, + {0xb462, 0x01}, + {0xb463, 0x01}, + {0xb464, 0x01}, + {0xb465, 0x01}, + {0xb466, 0x01}, + {0xb467, 0x01}, + {0xb468, 0x01}, + {0xb469, 0x01}, + {0xb46a, 0x01}, + {0xb46b, 0x01}, + {0xb46c, 0x01}, + {0xb46d, 0x01}, + {0xb46e, 0x01}, + {0xb46f, 0x01}, + {0xb470, 0x01}, + {0xb471, 0x01}, + {0xb472, 0x01}, + {0xb473, 0x01}, + {0xb474, 0x01}, + {0xb475, 0x01}, + {0xb476, 0x01}, + {0xb477, 0x01}, + {0xb478, 0x01}, + {0xb479, 0x01}, + {0xb47a, 0x01}, + {0xb47b, 0x01}, + {0xb47c, 0x01}, + {0xb47d, 0x01}, + {0xb47e, 0x01}, + {0xb480, 0x01}, + {0xb481, 0x01}, + {0xb482, 0x01}, + {0xb483, 0x01}, + {0xb484, 0x01}, + {0xb485, 0x01}, + {0xb486, 0x01}, + {0xb487, 0x01}, + {0xb488, 0x01}, + {0xb489, 0x01}, + {0xb48a, 0x01}, + {0xb48b, 0x01}, + {0xb48c, 0x01}, + {0xb48d, 0x01}, + {0xb48e, 0x01}, + {0xb48f, 0x01}, + {0xb490, 0x01}, + {0xb491, 0x01}, + {0xb492, 0x01}, + {0xb493, 0x01}, + {0xb494, 0x01}, + {0xb495, 0x01}, + {0xb496, 0x01}, + {0xb497, 0x01}, + {0xb498, 0x01}, + {0xb499, 0x01}, + {0xb49a, 0x01}, + {0xb49b, 0x01}, + {0xb49c, 0x01}, + {0xb49d, 0x01}, + {0xb49e, 0x01}, + {0xb49f, 0x01}, + {0xb4a0, 0x01}, + {0xb4a1, 0x01}, + {0xb4a2, 0x01}, + {0xb4a3, 0x01}, + {0xb4a4, 0x01}, + {0xb4a5, 0x01}, + {0xb4a6, 0x01}, + {0xb4a7, 0x01}, + {0xb4a8, 0x01}, + {0xb4a9, 0x01}, + {0xb4aa, 0x01}, + {0xb4ab, 0x01}, + {0xb4ac, 0x01}, + {0xb4ad, 0x01}, + {0xb4ae, 0x01}, + {0xb4af, 0x01}, + {0xb4b0, 0x01}, + {0xb4b1, 0x01}, + {0xb4b2, 0x01}, + {0xb4b3, 0x01}, + {0xb4b4, 0x01}, + {0xb4b5, 0x01}, + {0xb4b6, 0x01}, + {0xb4b7, 0x01}, + {0xb4b8, 0x01}, + {0xb4b9, 0x01}, + {0xb4ba, 0x01}, + {0xb4bb, 0x01}, + {0xb4bc, 0x01}, + {0xb4bd, 0x01}, + {0xb4be, 0x01}, + {0xb4bf, 0x01}, + {0xb4c0, 0x01}, + {0xb4c1, 0x01}, + {0xb4c2, 0x01}, + {0xb4c3, 0x01}, + {0xb4c4, 0x01}, + {0xb4c5, 0x01}, + {0xb4c6, 0x01}, + {0xb4c7, 0x01}, + {0xb4c8, 0x01}, + {0xb4c9, 0x01}, + {0xb4ca, 0x01}, + {0xb4cb, 0x01}, + {0xb4cc, 0x01}, + {0xb4cd, 0x01}, + {0xb4ce, 0x01}, + {0xb4cf, 0x01}, + {0xb4d0, 0x01}, + {0xb4d1, 0x01}, + {0xb4d2, 0x01}, + {0xb4d3, 0x01}, + {0xb4d4, 0x01}, + {0xb4d5, 0x01}, + {0xb4d6, 0x01}, + {0xb4d7, 0x01}, + {0xb4d8, 0x01}, + {0xb4d9, 0x01}, + {0xb4da, 0x01}, + {0xb4db, 0x01}, + {0xb4dc, 0x01}, + {0xb4dd, 0x01}, + {0xb4de, 0x01}, + {0xb4df, 0x01}, + {0xb4e0, 0x01}, + {0xb4e1, 0x01}, + {0xb4e2, 0x01}, + {0xb4e3, 0x01}, + {0xb4e4, 0x01}, + {0xb4e5, 0x01}, + {0xb4e6, 0x01}, + {0xb4e7, 0x01}, + {0xb4e8, 0x01}, + {0xb4e9, 0x01}, + {0xb4ea, 0x01}, + {0xb4eb, 0x01}, + {0xb4ec, 0x01}, + {0xb4ed, 0x01}, + {0xb4ee, 0x01}, + {0xb4ef, 0x01}, + {0xb4f0, 0x01}, + {0xb4f1, 0x01}, + {0xb4f2, 0x01}, + {0xb4f3, 0x01}, + {0xb4f4, 0x01}, + {0xb4f5, 0x01}, + {0xb4f6, 0x01}, + {0xb4f7, 0x01}, + {0xb4f8, 0x01}, + {0xb4f9, 0x01}, + {0xb4fa, 0x01}, + {0xb4fb, 0x01}, + {0xb4fc, 0x01}, + {0xb4fd, 0x01}, + {0xb4fe, 0x01}, + {0xb540, 0x01}, + {0xb541, 0x01}, + {0xb542, 0x01}, + {0xb543, 0x01}, + {0xb544, 0x01}, + {0xb545, 0x01}, + {0xb546, 0x01}, + {0xb547, 0x01}, + {0xb548, 0x01}, + {0xb549, 0x01}, + {0xb54a, 0x01}, + {0xb54b, 0x01}, + {0xb54c, 0x01}, + {0xb54d, 0x01}, + {0xb54e, 0x01}, + {0xb54f, 0x01}, + {0xb550, 0x01}, + {0xb551, 0x01}, + {0xb552, 0x01}, + {0xb553, 0x01}, + {0xb554, 0x01}, + {0xb555, 0x01}, + {0xb556, 0x01}, + {0xb557, 0x01}, + {0xb558, 0x01}, + {0xb559, 0x01}, + {0xb55a, 0x01}, + {0xb55b, 0x01}, + {0xb55c, 0x01}, + {0xb55d, 0x01}, + {0xb55e, 0x01}, + {0xb55f, 0x01}, + {0xb560, 0x01}, + {0xb561, 0x01}, + {0xb562, 0x01}, + {0xb563, 0x01}, + {0xb564, 0x01}, + {0xb565, 0x01}, + {0xb566, 0x01}, + {0xb567, 0x01}, + {0xb568, 0x01}, + {0xb569, 0x01}, + {0xb56a, 0x01}, + {0xb56b, 0x01}, + {0xb56c, 0x01}, + {0xb56d, 0x01}, + {0xb56e, 0x01}, + {0xb56f, 0x01}, + {0xb570, 0x01}, + {0xb571, 0x01}, + {0xb572, 0x01}, + {0xb574, 0x01}, + {0xb575, 0x01}, + {0xb576, 0x01}, + {0xb577, 0x01}, + {0xb578, 0x01}, + {0xb579, 0x01}, + {0xb57a, 0x01}, + {0xb57b, 0x01}, + {0xb57c, 0x01}, + {0xb57d, 0x01}, + {0xb57e, 0x01}, + {0xb580, 0x01}, + {0xb581, 0x01}, + {0xb582, 0x01}, + {0xb583, 0x01}, + {0xb584, 0x01}, + {0xb585, 0x01}, + {0xb586, 0x01}, + {0xb587, 0x01}, + {0xb588, 0x01}, + {0xb589, 0x01}, + {0xb58a, 0x01}, + {0xb58b, 0x01}, + {0xb58c, 0x01}, + {0xb58d, 0x01}, + {0xb58e, 0x01}, + {0xb58f, 0x01}, + {0xb590, 0x01}, + {0xb591, 0x01}, + {0xb592, 0x01}, + {0xb593, 0x01}, + {0xb594, 0x01}, + {0xb595, 0x01}, + {0xb596, 0x01}, + {0xb597, 0x01}, + {0xb598, 0x01}, + {0xb599, 0x01}, + {0xb59a, 0x01}, + {0xb59b, 0x01}, + {0xb59c, 0x01}, + {0xb59d, 0x01}, + {0xb59e, 0x01}, + {0xb59f, 0x01}, + {0xb5a0, 0x01}, + {0xb5a1, 0x01}, + {0xb5a2, 0x01}, + {0xb5a3, 0x01}, + {0xb5a4, 0x01}, + {0xb5a5, 0x01}, + {0xb5a6, 0x01}, + {0xb5a7, 0x01}, + {0xb5a8, 0x01}, + {0xb5a9, 0x01}, + {0xb5aa, 0x01}, + {0xb5ab, 0x01}, + {0xb5ac, 0x01}, + {0xb5ad, 0x01}, + {0xb5ae, 0x01}, + {0xb5af, 0x01}, + {0xb5b0, 0x01}, + {0xb5b1, 0x01}, + {0xb5b2, 0x01}, + {0xb5b3, 0x01}, + {0xb5b4, 0x01}, + {0xb5b5, 0x01}, + {0xb5b6, 0x01}, + {0xb5b7, 0x01}, + {0xb5b8, 0x01}, + {0xb5b9, 0x01}, + {0xb5ba, 0x01}, + {0xb5bb, 0x01}, + {0xb5bc, 0x01}, + {0xb5bd, 0x01}, + {0xb5be, 0x01}, + {0xb5bf, 0x01}, + {0xb5c0, 0x01}, + {0xb5c1, 0x01}, + {0xb5c2, 0x01}, + {0xb5c3, 0x01}, + {0xb5c4, 0x01}, + {0xb5c5, 0x01}, + {0xb5c6, 0x01}, + {0xb5c7, 0x01}, + {0xb5c8, 0x01}, + {0xb5c9, 0x01}, + {0xb5ca, 0x01}, + {0xb5cb, 0x01}, + {0xb5cc, 0x01}, + {0xb5cd, 0x01}, + {0xb5ce, 0x01}, + {0xb5cf, 0x01}, + {0xb5d0, 0x01}, + {0xb5d1, 0x01}, + {0xb5d2, 0x01}, + {0xb5d3, 0x01}, + {0xb5d4, 0x01}, + {0xb5d5, 0x01}, + {0xb5d6, 0x01}, + {0xb5d7, 0x01}, + {0xb5d8, 0x01}, + {0xb5d9, 0x01}, + {0xb5da, 0x01}, + {0xb5db, 0x01}, + {0xb5dc, 0x01}, + {0xb5dd, 0x01}, + {0xb5de, 0x01}, + {0xb5df, 0x01}, + {0xb5e0, 0x01}, + {0xb5e1, 0x01}, + {0xb5e2, 0x01}, + {0xb5e3, 0x01}, + {0xb5e4, 0x01}, + {0xb5e5, 0x01}, + {0xb5e6, 0x01}, + {0xb5e7, 0x01}, + {0xb5e8, 0x01}, + {0xb5e9, 0x01}, + {0xb5ea, 0x01}, + {0xb5eb, 0x01}, + {0xb5ec, 0x01}, + {0xb5ed, 0x01}, + {0xb5ee, 0x01}, + {0xb5ef, 0x01}, + {0xb5f0, 0x01}, + {0xb5f1, 0x01}, + {0xb5f2, 0x01}, + {0xb5f3, 0x01}, + {0xb5f4, 0x01}, + {0xb5f5, 0x01}, + {0xb5f6, 0x01}, + {0xb5f7, 0x01}, + {0xb5f8, 0x01}, + {0xb5f9, 0x01}, + {0xb5fa, 0x01}, + {0xb5fb, 0x01}, + {0xb5fc, 0x01}, + {0xb5fd, 0x01}, + {0xb5fe, 0x01}, + {0xb640, 0x01}, + {0xb641, 0x01}, + {0xb642, 0x01}, + {0xb643, 0x01}, + {0xb644, 0x01}, + {0xb645, 0x01}, + {0xb646, 0x01}, + {0xb647, 0x01}, + {0xb648, 0x01}, + {0xb649, 0x01}, + {0xb64a, 0x01}, + {0xb64b, 0x01}, + {0xb64c, 0x01}, + {0xb64d, 0x01}, + {0xb64e, 0x01}, + {0xb64f, 0x01}, + {0xb650, 0x01}, + {0xb651, 0x01}, + {0xb652, 0x01}, + {0xb653, 0x01}, + {0xb654, 0x01}, + {0xb655, 0x01}, + {0xb656, 0x01}, + {0xb657, 0x01}, + {0xb658, 0x01}, + {0xb659, 0x01}, + {0xb65a, 0x01}, + {0xb65b, 0x01}, + {0xb65c, 0x01}, + {0xb65d, 0x01}, + {0xb65e, 0x01}, + {0xb65f, 0x01}, + {0xb660, 0x01}, + {0xb661, 0x01}, + {0xb662, 0x01}, + {0xb663, 0x01}, + {0xb664, 0x01}, + {0xb665, 0x01}, + {0xb666, 0x01}, + {0xb667, 0x01}, + {0xb668, 0x01}, + {0xb669, 0x01}, + {0xb66a, 0x01}, + {0xb66b, 0x01}, + {0xb66c, 0x01}, + {0xb66d, 0x01}, + {0xb66e, 0x01}, + {0xb66f, 0x01}, + {0xb670, 0x01}, + {0xb671, 0x01}, + {0xb672, 0x01}, + {0xb673, 0x01}, + {0xb674, 0x01}, + {0xb675, 0x01}, + {0xb676, 0x01}, + {0xb677, 0x01}, + {0xb678, 0x01}, + {0xb679, 0x01}, + {0xb67a, 0x01}, + {0xb67b, 0x01}, + {0xb67c, 0x01}, + {0xb67d, 0x01}, + {0xb67e, 0x01}, + {0xb680, 0x01}, + {0xb681, 0x01}, + {0xb682, 0x01}, + {0xb683, 0x01}, + {0xb684, 0x01}, + {0xb685, 0x01}, + {0xb686, 0x01}, + {0xb687, 0x01}, + {0xb688, 0x01}, + {0xb689, 0x01}, + {0xb68a, 0x01}, + {0xb68b, 0x01}, + {0xb68c, 0x01}, + {0xb68d, 0x01}, + {0xb68e, 0x01}, + {0xb68f, 0x01}, + {0xb690, 0x01}, + {0xb691, 0x01}, + {0xb692, 0x01}, + {0xb693, 0x01}, + {0xb694, 0x01}, + {0xb695, 0x01}, + {0xb696, 0x01}, + {0xb697, 0x01}, + {0xb698, 0x01}, + {0xb699, 0x01}, + {0xb69a, 0x01}, + {0xb69b, 0x01}, + {0xb69c, 0x01}, + {0xb69d, 0x01}, + {0xb69e, 0x01}, + {0xb69f, 0x01}, + {0xb6a0, 0x01}, + {0xb6a1, 0x01}, + {0xb6a2, 0x01}, + {0xb6a3, 0x01}, + {0xb6a4, 0x01}, + {0xb6a5, 0x01}, + {0xb6a6, 0x01}, + {0xb6a7, 0x01}, + {0xb6a8, 0x01}, + {0xb6a9, 0x01}, + {0xb6aa, 0x01}, + {0xb6ab, 0x01}, + {0xb6ac, 0x01}, + {0xb6ad, 0x01}, + {0xb6ae, 0x01}, + {0xb6af, 0x01}, + {0xb6b0, 0x01}, + {0xb6b1, 0x01}, + {0xb6b2, 0x01}, + {0xb6b3, 0x01}, + {0xb6b4, 0x01}, + {0xb6b5, 0x01}, + {0xb6b6, 0x01}, + {0xb6b7, 0x01}, + {0xb6b8, 0x01}, + {0xb6b9, 0x01}, + {0xb6ba, 0x01}, + {0xb6bb, 0x01}, + {0xb6bc, 0x01}, + {0xb6bd, 0x01}, + {0xb6be, 0x01}, + {0xb6bf, 0x01}, + {0xb6c0, 0x01}, + {0xb6c1, 0x01}, + {0xb6c2, 0x01}, + {0xb6c3, 0x01}, + {0xb6c4, 0x01}, + {0xb6c5, 0x01}, + {0xb6c6, 0x01}, + {0xb6c7, 0x01}, + {0xb6c8, 0x01}, + {0xb6c9, 0x01}, + {0xb6ca, 0x01}, + {0xb6cb, 0x01}, + {0xb6cc, 0x01}, + {0xb6cd, 0x01}, + {0xb6ce, 0x01}, + {0xb6cf, 0x01}, + {0xb6d0, 0x01}, + {0xb6d1, 0x01}, + {0xb6d2, 0x01}, + {0xb6d3, 0x01}, + {0xb6d4, 0x01}, + {0xb6d5, 0x01}, + {0xb6d6, 0x01}, + {0xb6d7, 0x01}, + {0xb6d8, 0x01}, + {0xb6d9, 0x01}, + {0xb6da, 0x01}, + {0xb6db, 0x01}, + {0xb6dc, 0x01}, + {0xb6dd, 0x01}, + {0xb6de, 0x01}, + {0xb6df, 0x01}, + {0xb6e0, 0x01}, + {0xb6e1, 0x01}, + {0xb6e2, 0x01}, + {0xb6e3, 0x01}, + {0xb6e4, 0x01}, + {0xb6e5, 0x01}, + {0xb6e6, 0x01}, + {0xb6e7, 0x01}, + {0xb6e8, 0x01}, + {0xb6e9, 0x01}, + {0xb6ea, 0x01}, + {0xb6eb, 0x01}, + {0xb6ec, 0x01}, + {0xb6ed, 0x01}, + {0xb6ee, 0x01}, + {0xb6ef, 0x01}, + {0xb6f0, 0x01}, + {0xb6f1, 0x01}, + {0xb6f2, 0x01}, + {0xb6f3, 0x01}, + {0xb6f4, 0x01}, + {0xb6f5, 0x01}, + {0xb6f6, 0x01}, + {0xb6f7, 0x01}, + {0xb6f8, 0x01}, + {0xb6f9, 0x01}, + {0xb6fa, 0x01}, + {0xb6fb, 0x01}, + {0xb6fc, 0x01}, + {0xb6fd, 0x01}, + {0xb6fe, 0x01}, + {0xb740, 0x01}, + {0xb741, 0x01}, + {0xb742, 0x01}, + {0xb743, 0x01}, + {0xb744, 0x01}, + {0xb746, 0x01}, + {0xb747, 0x01}, + {0xb748, 0x01}, + {0xb749, 0x01}, + {0xb74a, 0x01}, + {0xb74b, 0x01}, + {0xb74c, 0x01}, + {0xb74d, 0x01}, + {0xb74e, 0x01}, + {0xb74f, 0x01}, + {0xb750, 0x01}, + {0xb751, 0x01}, + {0xb752, 0x01}, + {0xb753, 0x01}, + {0xb754, 0x01}, + {0xb755, 0x01}, + {0xb756, 0x01}, + {0xb757, 0x01}, + {0xb758, 0x01}, + {0xb759, 0x01}, + {0xb75a, 0x01}, + {0xb75b, 0x01}, + {0xb75c, 0x01}, + {0xb75d, 0x01}, + {0xb75e, 0x01}, + {0xb75f, 0x01}, + {0xb760, 0x01}, + {0xb761, 0x01}, + {0xb762, 0x01}, + {0xb763, 0x01}, + {0xb764, 0x01}, + {0xb765, 0x01}, + {0xb766, 0x01}, + {0xb767, 0x01}, + {0xb768, 0x01}, + {0xb769, 0x01}, + {0xb76a, 0x01}, + {0xb76b, 0x01}, + {0xb76c, 0x01}, + {0xb76d, 0x01}, + {0xb76e, 0x01}, + {0xb76f, 0x01}, + {0xb770, 0x01}, + {0xb771, 0x01}, + {0xb772, 0x01}, + {0xb773, 0x01}, + {0xb774, 0x01}, + {0xb775, 0x01}, + {0xb776, 0x01}, + {0xb777, 0x01}, + {0xb778, 0x01}, + {0xb779, 0x01}, + {0xb77a, 0x01}, + {0xb77b, 0x01}, + {0xb77c, 0x01}, + {0xb77d, 0x01}, + {0xb77e, 0x01}, + {0xb780, 0x01}, + {0xb781, 0x01}, + {0xb782, 0x01}, + {0xb783, 0x01}, + {0xb784, 0x01}, + {0xb785, 0x01}, + {0xb786, 0x01}, + {0xb787, 0x01}, + {0xb788, 0x01}, + {0xb789, 0x01}, + {0xb78a, 0x01}, + {0xb78b, 0x01}, + {0xb78c, 0x01}, + {0xb78d, 0x01}, + {0xb78e, 0x01}, + {0xb78f, 0x01}, + {0xb790, 0x01}, + {0xb791, 0x01}, + {0xb792, 0x01}, + {0xb793, 0x01}, + {0xb794, 0x01}, + {0xb795, 0x01}, + {0xb796, 0x01}, + {0xb797, 0x01}, + {0xb798, 0x01}, + {0xb799, 0x01}, + {0xb79a, 0x01}, + {0xb79b, 0x01}, + {0xb79c, 0x01}, + {0xb79d, 0x01}, + {0xb79e, 0x01}, + {0xb79f, 0x01}, + {0xb7a0, 0x01}, + {0xb7a1, 0x01}, + {0xb7a2, 0x01}, + {0xb7a3, 0x01}, + {0xb7a4, 0x01}, + {0xb7a5, 0x01}, + {0xb7a6, 0x01}, + {0xb7a7, 0x01}, + {0xb7a8, 0x01}, + {0xb7a9, 0x01}, + {0xb7aa, 0x01}, + {0xb7ab, 0x01}, + {0xb7ac, 0x01}, + {0xb7ad, 0x01}, + {0xb7ae, 0x01}, + {0xb7af, 0x01}, + {0xb7b0, 0x01}, + {0xb7b1, 0x01}, + {0xb7b2, 0x01}, + {0xb7b3, 0x01}, + {0xb7b4, 0x01}, + {0xb7b5, 0x01}, + {0xb7b6, 0x01}, + {0xb7b7, 0x01}, + {0xb7b8, 0x01}, + {0xb7b9, 0x01}, + {0xb7ba, 0x01}, + {0xb7bb, 0x01}, + {0xb7bc, 0x01}, + {0xb7bd, 0x01}, + {0xb7be, 0x01}, + {0xb7bf, 0x01}, + {0xb7c0, 0x01}, + {0xb7c1, 0x01}, + {0xb7c2, 0x01}, + {0xb7c3, 0x01}, + {0xb7c4, 0x01}, + {0xb7c5, 0x01}, + {0xb7c6, 0x01}, + {0xb7c7, 0x01}, + {0xb7c8, 0x01}, + {0xb7c9, 0x01}, + {0xb7ca, 0x01}, + {0xb7cb, 0x01}, + {0xb7cc, 0x01}, + {0xb7cd, 0x01}, + {0xb7ce, 0x01}, + {0xb7cf, 0x01}, + {0xb7d0, 0x01}, + {0xb7d1, 0x01}, + {0xb7d2, 0x01}, + {0xb7d3, 0x01}, + {0xb7d4, 0x01}, + {0xb7d5, 0x01}, + {0xb7d6, 0x01}, + {0xb7d7, 0x01}, + {0xb7d8, 0x01}, + {0xb7d9, 0x01}, + {0xb7da, 0x01}, + {0xb7db, 0x01}, + {0xb7dc, 0x01}, + {0xb7dd, 0x01}, + {0xb7de, 0x01}, + {0xb7df, 0x01}, + {0xb7e0, 0x01}, + {0xb7e1, 0x01}, + {0xb7e2, 0x01}, + {0xb7e3, 0x01}, + {0xb7e4, 0x01}, + {0xb7e5, 0x01}, + {0xb7e6, 0x01}, + {0xb7e7, 0x01}, + {0xb7e8, 0x01}, + {0xb7e9, 0x01}, + {0xb7ea, 0x01}, + {0xb7eb, 0x01}, + {0xb7ec, 0x01}, + {0xb7ed, 0x01}, + {0xb7ee, 0x01}, + {0xb7ef, 0x01}, + {0xb7f0, 0x01}, + {0xb7f1, 0x01}, + {0xb7f2, 0x01}, + {0xb7f3, 0x01}, + {0xb7f4, 0x01}, + {0xb7f5, 0x01}, + {0xb7f6, 0x01}, + {0xb7f7, 0x01}, + {0xb7f8, 0x01}, + {0xb7f9, 0x01}, + {0xb7fa, 0x01}, + {0xb7fb, 0x01}, + {0xb7fc, 0x01}, + {0xb7fd, 0x01}, + {0xb7fe, 0x01}, + {0xb840, 0x01}, + {0xb841, 0x01}, + {0xb842, 0x01}, + {0xb843, 0x01}, + {0xb844, 0x01}, + {0xb845, 0x01}, + {0xb846, 0x01}, + {0xb847, 0x01}, + {0xb848, 0x01}, + {0xb849, 0x01}, + {0xb84a, 0x01}, + {0xb84b, 0x01}, + {0xb84c, 0x01}, + {0xb84d, 0x01}, + {0xb84e, 0x01}, + {0xb84f, 0x01}, + {0xb850, 0x01}, + {0xb851, 0x01}, + {0xb852, 0x01}, + {0xb853, 0x01}, + {0xb854, 0x01}, + {0xb855, 0x01}, + {0xb856, 0x01}, + {0xb857, 0x01}, + {0xb858, 0x01}, + {0xb859, 0x01}, + {0xb85a, 0x01}, + {0xb85b, 0x01}, + {0xb85c, 0x01}, + {0xb85d, 0x01}, + {0xb85e, 0x01}, + {0xb85f, 0x01}, + {0xb860, 0x01}, + {0xb861, 0x01}, + {0xb862, 0x01}, + {0xb863, 0x01}, + {0xb864, 0x01}, + {0xb865, 0x01}, + {0xb866, 0x01}, + {0xb867, 0x01}, + {0xb868, 0x01}, + {0xb869, 0x01}, + {0xb86a, 0x01}, + {0xb86b, 0x01}, + {0xb86c, 0x01}, + {0xb86d, 0x01}, + {0xb86e, 0x01}, + {0xb86f, 0x01}, + {0xb870, 0x01}, + {0xb871, 0x01}, + {0xb872, 0x01}, + {0xb873, 0x01}, + {0xb874, 0x01}, + {0xb875, 0x01}, + {0xb876, 0x01}, + {0xb877, 0x01}, + {0xb878, 0x01}, + {0xb879, 0x01}, + {0xb87a, 0x01}, + {0xb87b, 0x01}, + {0xb87c, 0x01}, + {0xb87d, 0x01}, + {0xb87e, 0x01}, + {0xb880, 0x01}, + {0xb881, 0x01}, + {0xb882, 0x01}, + {0xb883, 0x01}, + {0xb884, 0x01}, + {0xb885, 0x01}, + {0xb886, 0x01}, + {0xb887, 0x01}, + {0xb888, 0x01}, + {0xb889, 0x01}, + {0xb88a, 0x01}, + {0xb88b, 0x01}, + {0xb88c, 0x01}, + {0xb88d, 0x01}, + {0xb88e, 0x01}, + {0xb88f, 0x01}, + {0xb890, 0x01}, + {0xb891, 0x01}, + {0xb892, 0x01}, + {0xb893, 0x01}, + {0xb894, 0x01}, + {0xb895, 0x01}, + {0xb896, 0x01}, + {0xb897, 0x01}, + {0xb898, 0x01}, + {0xb899, 0x01}, + {0xb89a, 0x01}, + {0xb89b, 0x01}, + {0xb89c, 0x01}, + {0xb89d, 0x01}, + {0xb89e, 0x01}, + {0xb89f, 0x01}, + {0xb8a0, 0x01}, + {0xb8a1, 0x01}, + {0xb8a2, 0x01}, + {0xb8a3, 0x01}, + {0xb8a4, 0x01}, + {0xb8a5, 0x01}, + {0xb8a6, 0x01}, + {0xb8a7, 0x01}, + {0xb8a8, 0x01}, + {0xb8a9, 0x01}, + {0xb8aa, 0x01}, + {0xb8ab, 0x01}, + {0xb8ac, 0x01}, + {0xb8ad, 0x01}, + {0xb8ae, 0x01}, + {0xb8af, 0x01}, + {0xb8b0, 0x01}, + {0xb8b1, 0x01}, + {0xb8b2, 0x01}, + {0xb8b3, 0x01}, + {0xb8b4, 0x01}, + {0xb8b5, 0x01}, + {0xb8b6, 0x01}, + {0xb8b7, 0x01}, + {0xb8b8, 0x01}, + {0xb8b9, 0x01}, + {0xb8ba, 0x01}, + {0xb8bb, 0x01}, + {0xb8bc, 0x01}, + {0xb8bd, 0x01}, + {0xb8be, 0x01}, + {0xb8bf, 0x01}, + {0xb8c0, 0x01}, + {0xb8c1, 0x01}, + {0xb8c2, 0x01}, + {0xb8c3, 0x01}, + {0xb8c4, 0x01}, + {0xb8c5, 0x01}, + {0xb8c6, 0x01}, + {0xb8c7, 0x01}, + {0xb8c8, 0x01}, + {0xb8c9, 0x01}, + {0xb8ca, 0x01}, + {0xb8cb, 0x01}, + {0xb8cc, 0x01}, + {0xb8cd, 0x01}, + {0xb8ce, 0x01}, + {0xb8cf, 0x01}, + {0xb8d0, 0x01}, + {0xb8d1, 0x01}, + {0xb8d2, 0x01}, + {0xb8d3, 0x01}, + {0xb8d4, 0x01}, + {0xb8d5, 0x01}, + {0xb8d6, 0x01}, + {0xb8d7, 0x01}, + {0xb8d8, 0x01}, + {0xb8d9, 0x01}, + {0xb8da, 0x01}, + {0xb8db, 0x01}, + {0xb8dc, 0x01}, + {0xb8dd, 0x01}, + {0xb8de, 0x01}, + {0xb8df, 0x01}, + {0xb8e0, 0x01}, + {0xb8e1, 0x01}, + {0xb8e2, 0x01}, + {0xb8e3, 0x01}, + {0xb8e4, 0x01}, + {0xb8e5, 0x01}, + {0xb8e6, 0x01}, + {0xb8e7, 0x01}, + {0xb8e8, 0x01}, + {0xb8e9, 0x01}, + {0xb8ea, 0x01}, + {0xb8eb, 0x01}, + {0xb8ec, 0x01}, + {0xb8ed, 0x01}, + {0xb8ee, 0x01}, + {0xb8ef, 0x01}, + {0xb8f0, 0x01}, + {0xb8f1, 0x01}, + {0xb8f2, 0x01}, + {0xb8f3, 0x01}, + {0xb8f4, 0x01}, + {0xb8f5, 0x01}, + {0xb8f6, 0x01}, + {0xb8f7, 0x01}, + {0xb8f8, 0x01}, + {0xb8f9, 0x01}, + {0xb8fa, 0x01}, + {0xb8fb, 0x01}, + {0xb8fc, 0x01}, + {0xb8fd, 0x01}, + {0xb8fe, 0x01}, + {0xb940, 0x01}, + {0xb941, 0x01}, + {0xb942, 0x01}, + {0xb943, 0x01}, + {0xb944, 0x01}, + {0xb945, 0x01}, + {0xb946, 0x01}, + {0xb947, 0x01}, + {0xb948, 0x01}, + {0xb949, 0x01}, + {0xb94a, 0x01}, + {0xb94b, 0x01}, + {0xb94c, 0x01}, + {0xb94d, 0x01}, + {0xb94e, 0x01}, + {0xb94f, 0x01}, + {0xb950, 0x01}, + {0xb951, 0x01}, + {0xb952, 0x01}, + {0xb953, 0x01}, + {0xb954, 0x01}, + {0xb955, 0x01}, + {0xb956, 0x01}, + {0xb957, 0x01}, + {0xb958, 0x01}, + {0xb959, 0x01}, + {0xb95a, 0x01}, + {0xb95b, 0x01}, + {0xb95c, 0x01}, + {0xb95d, 0x01}, + {0xb95e, 0x01}, + {0xb95f, 0x01}, + {0xb960, 0x01}, + {0xb961, 0x01}, + {0xb962, 0x01}, + {0xb963, 0x01}, + {0xb964, 0x01}, + {0xb965, 0x01}, + {0xb966, 0x01}, + {0xb967, 0x01}, + {0xb968, 0x01}, + {0xb969, 0x01}, + {0xb96a, 0x01}, + {0xb96b, 0x01}, + {0xb96c, 0x01}, + {0xb96d, 0x01}, + {0xb96e, 0x01}, + {0xb96f, 0x01}, + {0xb970, 0x01}, + {0xb971, 0x01}, + {0xb972, 0x01}, + {0xb973, 0x01}, + {0xb974, 0x01}, + {0xb975, 0x01}, + {0xb976, 0x01}, + {0xb977, 0x01}, + {0xb978, 0x01}, + {0xb979, 0x01}, + {0xb97a, 0x01}, + {0xb97b, 0x01}, + {0xb97c, 0x01}, + {0xb97d, 0x01}, + {0xb97e, 0x01}, + {0xb980, 0x01}, + {0xb981, 0x01}, + {0xb982, 0x01}, + {0xb983, 0x01}, + {0xb984, 0x01}, + {0xb985, 0x01}, + {0xb986, 0x01}, + {0xb987, 0x01}, + {0xb988, 0x01}, + {0xb989, 0x01}, + {0xb98a, 0x01}, + {0xb98b, 0x01}, + {0xb98c, 0x01}, + {0xb98d, 0x01}, + {0xb98e, 0x01}, + {0xb98f, 0x01}, + {0xb990, 0x01}, + {0xb991, 0x01}, + {0xb992, 0x01}, + {0xb993, 0x01}, + {0xb994, 0x01}, + {0xb995, 0x01}, + {0xb996, 0x01}, + {0xb997, 0x01}, + {0xb998, 0x01}, + {0xb999, 0x01}, + {0xb99a, 0x01}, + {0xb99b, 0x01}, + {0xb99c, 0x01}, + {0xb99d, 0x01}, + {0xb99e, 0x01}, + {0xb99f, 0x01}, + {0xb9a0, 0x01}, + {0xb9a1, 0x01}, + {0xb9a2, 0x01}, + {0xb9a3, 0x01}, + {0xb9a4, 0x01}, + {0xb9a5, 0x01}, + {0xb9a6, 0x01}, + {0xb9a7, 0x01}, + {0xb9a8, 0x01}, + {0xb9a9, 0x01}, + {0xb9aa, 0x01}, + {0xb9ab, 0x01}, + {0xb9ac, 0x01}, + {0xb9ad, 0x01}, + {0xb9ae, 0x01}, + {0xb9af, 0x01}, + {0xb9b0, 0x01}, + {0xb9b1, 0x01}, + {0xb9b2, 0x01}, + {0xb9b3, 0x01}, + {0xb9b4, 0x01}, + {0xb9b5, 0x01}, + {0xb9b6, 0x01}, + {0xb9b7, 0x01}, + {0xb9b8, 0x01}, + {0xb9b9, 0x01}, + {0xb9ba, 0x01}, + {0xb9bb, 0x01}, + {0xb9bc, 0x01}, + {0xb9bd, 0x01}, + {0xb9be, 0x01}, + {0xb9bf, 0x01}, + {0xb9c0, 0x01}, + {0xb9c1, 0x01}, + {0xb9c2, 0x01}, + {0xb9c3, 0x01}, + {0xb9c4, 0x01}, + {0xb9c5, 0x01}, + {0xb9c6, 0x01}, + {0xb9c7, 0x01}, + {0xb9c8, 0x01}, + {0xb9c9, 0x01}, + {0xb9ca, 0x01}, + {0xb9cb, 0x01}, + {0xb9cc, 0x01}, + {0xb9cd, 0x01}, + {0xb9ce, 0x01}, + {0xb9cf, 0x01}, + {0xb9d0, 0x01}, + {0xb9d1, 0x01}, + {0xb9d2, 0x01}, + {0xb9d3, 0x01}, + {0xb9d4, 0x01}, + {0xb9d5, 0x01}, + {0xb9d6, 0x01}, + {0xb9d7, 0x01}, + {0xb9d8, 0x01}, + {0xb9d9, 0x01}, + {0xb9da, 0x01}, + {0xb9db, 0x01}, + {0xb9dc, 0x01}, + {0xb9dd, 0x01}, + {0xb9de, 0x01}, + {0xb9df, 0x01}, + {0xb9e0, 0x01}, + {0xb9e1, 0x01}, + {0xb9e2, 0x01}, + {0xb9e3, 0x01}, + {0xb9e4, 0x01}, + {0xb9e5, 0x01}, + {0xb9e6, 0x01}, + {0xb9e7, 0x01}, + {0xb9e8, 0x01}, + {0xb9e9, 0x01}, + {0xb9ea, 0x01}, + {0xb9eb, 0x01}, + {0xb9ec, 0x01}, + {0xb9ed, 0x01}, + {0xb9ee, 0x01}, + {0xb9ef, 0x01}, + {0xb9f0, 0x01}, + {0xb9f1, 0x01}, + {0xb9f2, 0x01}, + {0xb9f3, 0x01}, + {0xb9f4, 0x01}, + {0xb9f5, 0x01}, + {0xb9f6, 0x01}, + {0xb9f7, 0x01}, + {0xb9f8, 0x01}, + {0xb9f9, 0x01}, + {0xb9fa, 0x01}, + {0xb9fb, 0x01}, + {0xb9fc, 0x01}, + {0xb9fd, 0x01}, + {0xb9fe, 0x01}, + {0xba40, 0x01}, + {0xba41, 0x01}, + {0xba42, 0x01}, + {0xba43, 0x01}, + {0xba44, 0x01}, + {0xba45, 0x01}, + {0xba46, 0x01}, + {0xba47, 0x01}, + {0xba48, 0x01}, + {0xba49, 0x01}, + {0xba4a, 0x01}, + {0xba4b, 0x01}, + {0xba4c, 0x01}, + {0xba4d, 0x01}, + {0xba4e, 0x01}, + {0xba4f, 0x01}, + {0xba50, 0x01}, + {0xba51, 0x01}, + {0xba52, 0x01}, + {0xba53, 0x01}, + {0xba54, 0x01}, + {0xba55, 0x01}, + {0xba56, 0x01}, + {0xba57, 0x01}, + {0xba58, 0x01}, + {0xba59, 0x01}, + {0xba5a, 0x01}, + {0xba5b, 0x01}, + {0xba5c, 0x01}, + {0xba5d, 0x01}, + {0xba5e, 0x01}, + {0xba5f, 0x01}, + {0xba60, 0x01}, + {0xba61, 0x01}, + {0xba62, 0x01}, + {0xba63, 0x01}, + {0xba64, 0x01}, + {0xba65, 0x01}, + {0xba66, 0x01}, + {0xba67, 0x01}, + {0xba68, 0x01}, + {0xba69, 0x01}, + {0xba6a, 0x01}, + {0xba6b, 0x01}, + {0xba6c, 0x01}, + {0xba6d, 0x01}, + {0xba6e, 0x01}, + {0xba6f, 0x01}, + {0xba70, 0x01}, + {0xba71, 0x01}, + {0xba72, 0x01}, + {0xba73, 0x01}, + {0xba74, 0x01}, + {0xba75, 0x01}, + {0xba76, 0x01}, + {0xba77, 0x01}, + {0xba78, 0x01}, + {0xba79, 0x01}, + {0xba7a, 0x01}, + {0xba7b, 0x01}, + {0xba7c, 0x01}, + {0xba7d, 0x01}, + {0xba7e, 0x01}, + {0xba80, 0x01}, + {0xba81, 0x01}, + {0xba82, 0x01}, + {0xba83, 0x01}, + {0xba84, 0x01}, + {0xba85, 0x01}, + {0xba86, 0x01}, + {0xba87, 0x01}, + {0xba88, 0x01}, + {0xba89, 0x01}, + {0xba8a, 0x01}, + {0xba8b, 0x01}, + {0xba8c, 0x01}, + {0xba8d, 0x01}, + {0xba8e, 0x01}, + {0xba8f, 0x01}, + {0xba90, 0x01}, + {0xba91, 0x01}, + {0xba92, 0x01}, + {0xba93, 0x01}, + {0xba94, 0x01}, + {0xba95, 0x01}, + {0xba96, 0x01}, + {0xba97, 0x01}, + {0xba98, 0x01}, + {0xba99, 0x01}, + {0xba9a, 0x01}, + {0xba9b, 0x01}, + {0xba9c, 0x01}, + {0xba9d, 0x01}, + {0xba9e, 0x01}, + {0xba9f, 0x01}, + {0xbaa0, 0x01}, + {0xbaa1, 0x01}, + {0xbaa2, 0x01}, + {0xbaa3, 0x01}, + {0xbaa4, 0x01}, + {0xbaa5, 0x01}, + {0xbaa6, 0x01}, + {0xbaa7, 0x01}, + {0xbaa8, 0x01}, + {0xbaa9, 0x01}, + {0xbaaa, 0x01}, + {0xbaab, 0x01}, + {0xbaac, 0x01}, + {0xbaad, 0x01}, + {0xbaae, 0x01}, + {0xbaaf, 0x01}, + {0xbab0, 0x01}, + {0xbab1, 0x01}, + {0xbab2, 0x01}, + {0xbab3, 0x01}, + {0xbab4, 0x01}, + {0xbab5, 0x01}, + {0xbab6, 0x01}, + {0xbab7, 0x01}, + {0xbab8, 0x01}, + {0xbab9, 0x01}, + {0xbaba, 0x01}, + {0xbabb, 0x01}, + {0xbabc, 0x01}, + {0xbabd, 0x01}, + {0xbabe, 0x01}, + {0xbabf, 0x01}, + {0xbac0, 0x01}, + {0xbac1, 0x01}, + {0xbac2, 0x01}, + {0xbac3, 0x01}, + {0xbac4, 0x01}, + {0xbac5, 0x01}, + {0xbac6, 0x01}, + {0xbac7, 0x01}, + {0xbac8, 0x01}, + {0xbac9, 0x01}, + {0xbaca, 0x01}, + {0xbacb, 0x01}, + {0xbacc, 0x01}, + {0xbacd, 0x01}, + {0xbace, 0x01}, + {0xbacf, 0x01}, + {0xbad0, 0x01}, + {0xbad1, 0x01}, + {0xbad2, 0x01}, + {0xbad3, 0x01}, + {0xbad4, 0x01}, + {0xbad5, 0x01}, + {0xbad6, 0x01}, + {0xbad7, 0x01}, + {0xbad8, 0x01}, + {0xbad9, 0x01}, + {0xbada, 0x01}, + {0xbadb, 0x01}, + {0xbadc, 0x01}, + {0xbadd, 0x01}, + {0xbade, 0x01}, + {0xbadf, 0x01}, + {0xbae0, 0x01}, + {0xbae1, 0x01}, + {0xbae2, 0x01}, + {0xbae3, 0x01}, + {0xbae4, 0x01}, + {0xbae5, 0x01}, + {0xbae6, 0x01}, + {0xbae7, 0x01}, + {0xbae8, 0x01}, + {0xbae9, 0x01}, + {0xbaea, 0x01}, + {0xbaeb, 0x01}, + {0xbaec, 0x01}, + {0xbaed, 0x01}, + {0xbaee, 0x01}, + {0xbaef, 0x01}, + {0xbaf0, 0x01}, + {0xbaf1, 0x01}, + {0xbaf2, 0x01}, + {0xbaf3, 0x01}, + {0xbaf4, 0x01}, + {0xbaf5, 0x01}, + {0xbaf6, 0x01}, + {0xbaf7, 0x01}, + {0xbaf8, 0x01}, + {0xbaf9, 0x01}, + {0xbafa, 0x01}, + {0xbafb, 0x01}, + {0xbafc, 0x01}, + {0xbafd, 0x01}, + {0xbafe, 0x01}, + {0xbb40, 0x01}, + {0xbb41, 0x01}, + {0xbb42, 0x01}, + {0xbb43, 0x01}, + {0xbb44, 0x01}, + {0xbb45, 0x01}, + {0xbb46, 0x01}, + {0xbb47, 0x01}, + {0xbb48, 0x01}, + {0xbb49, 0x01}, + {0xbb4a, 0x01}, + {0xbb4b, 0x01}, + {0xbb4c, 0x01}, + {0xbb4d, 0x01}, + {0xbb4e, 0x01}, + {0xbb4f, 0x01}, + {0xbb50, 0x01}, + {0xbb51, 0x01}, + {0xbb52, 0x01}, + {0xbb53, 0x01}, + {0xbb54, 0x01}, + {0xbb55, 0x01}, + {0xbb56, 0x01}, + {0xbb57, 0x01}, + {0xbb58, 0x01}, + {0xbb59, 0x01}, + {0xbb5a, 0x01}, + {0xbb5b, 0x01}, + {0xbb5c, 0x01}, + {0xbb5d, 0x01}, + {0xbb5e, 0x01}, + {0xbb5f, 0x01}, + {0xbb60, 0x01}, + {0xbb61, 0x01}, + {0xbb62, 0x01}, + {0xbb63, 0x01}, + {0xbb64, 0x01}, + {0xbb65, 0x01}, + {0xbb66, 0x01}, + {0xbb67, 0x01}, + {0xbb68, 0x01}, + {0xbb69, 0x01}, + {0xbb6a, 0x01}, + {0xbb6b, 0x01}, + {0xbb6c, 0x01}, + {0xbb6d, 0x01}, + {0xbb6e, 0x01}, + {0xbb6f, 0x01}, + {0xbb70, 0x01}, + {0xbb71, 0x01}, + {0xbb72, 0x01}, + {0xbb73, 0x01}, + {0xbb74, 0x01}, + {0xbb75, 0x01}, + {0xbb76, 0x01}, + {0xbb77, 0x01}, + {0xbb78, 0x01}, + {0xbb79, 0x01}, + {0xbb7a, 0x01}, + {0xbb7b, 0x01}, + {0xbb7c, 0x01}, + {0xbb7d, 0x01}, + {0xbb7e, 0x01}, + {0xbb80, 0x01}, + {0xbb81, 0x01}, + {0xbb82, 0x01}, + {0xbb83, 0x01}, + {0xbb84, 0x01}, + {0xbb85, 0x01}, + {0xbb86, 0x01}, + {0xbb87, 0x01}, + {0xbb88, 0x01}, + {0xbb89, 0x01}, + {0xbb8a, 0x01}, + {0xbb8b, 0x01}, + {0xbb8c, 0x01}, + {0xbb8d, 0x01}, + {0xbb8e, 0x01}, + {0xbb8f, 0x01}, + {0xbb90, 0x01}, + {0xbb91, 0x01}, + {0xbb92, 0x01}, + {0xbb93, 0x01}, + {0xbb94, 0x01}, + {0xbb95, 0x01}, + {0xbb96, 0x01}, + {0xbb97, 0x01}, + {0xbb98, 0x01}, + {0xbb99, 0x01}, + {0xbb9a, 0x01}, + {0xbb9b, 0x01}, + {0xbb9c, 0x01}, + {0xbb9d, 0x01}, + {0xbb9e, 0x01}, + {0xbb9f, 0x01}, + {0xbba0, 0x01}, + {0xbba1, 0x01}, + {0xbba2, 0x01}, + {0xbba3, 0x01}, + {0xbba4, 0x01}, + {0xbba5, 0x01}, + {0xbba6, 0x01}, + {0xbba7, 0x01}, + {0xbba8, 0x01}, + {0xbba9, 0x01}, + {0xbbaa, 0x01}, + {0xbbab, 0x01}, + {0xbbac, 0x01}, + {0xbbad, 0x01}, + {0xbbae, 0x01}, + {0xbbaf, 0x01}, + {0xbbb0, 0x01}, + {0xbbb1, 0x01}, + {0xbbb2, 0x01}, + {0xbbb3, 0x01}, + {0xbbb4, 0x01}, + {0xbbb5, 0x01}, + {0xbbb6, 0x01}, + {0xbbb7, 0x01}, + {0xbbb8, 0x01}, + {0xbbb9, 0x01}, + {0xbbba, 0x01}, + {0xbbbb, 0x01}, + {0xbbbc, 0x01}, + {0xbbbd, 0x01}, + {0xbbbe, 0x01}, + {0xbbbf, 0x01}, + {0xbbc0, 0x01}, + {0xbbc1, 0x01}, + {0xbbc2, 0x01}, + {0xbbc3, 0x01}, + {0xbbc4, 0x01}, + {0xbbc5, 0x01}, + {0xbbc6, 0x01}, + {0xbbc7, 0x01}, + {0xbbc8, 0x01}, + {0xbbc9, 0x01}, + {0xbbca, 0x01}, + {0xbbcb, 0x01}, + {0xbbcc, 0x01}, + {0xbbcd, 0x01}, + {0xbbce, 0x01}, + {0xbbcf, 0x01}, + {0xbbd0, 0x01}, + {0xbbd1, 0x01}, + {0xbbd2, 0x01}, + {0xbbd3, 0x01}, + {0xbbd4, 0x01}, + {0xbbd5, 0x01}, + {0xbbd6, 0x01}, + {0xbbd7, 0x01}, + {0xbbd8, 0x01}, + {0xbbd9, 0x01}, + {0xbbda, 0x01}, + {0xbbdb, 0x01}, + {0xbbdc, 0x01}, + {0xbbdd, 0x01}, + {0xbbde, 0x01}, + {0xbbdf, 0x01}, + {0xbbe0, 0x01}, + {0xbbe1, 0x01}, + {0xbbe2, 0x01}, + {0xbbe3, 0x01}, + {0xbbe4, 0x01}, + {0xbbe5, 0x01}, + {0xbbe6, 0x01}, + {0xbbe7, 0x01}, + {0xbbe8, 0x01}, + {0xbbe9, 0x01}, + {0xbbea, 0x01}, + {0xbbeb, 0x01}, + {0xbbec, 0x01}, + {0xbbed, 0x01}, + {0xbbee, 0x01}, + {0xbbef, 0x01}, + {0xbbf0, 0x01}, + {0xbbf1, 0x01}, + {0xbbf2, 0x01}, + {0xbbf3, 0x01}, + {0xbbf4, 0x01}, + {0xbbf5, 0x01}, + {0xbbf6, 0x01}, + {0xbbf7, 0x01}, + {0xbbf8, 0x01}, + {0xbbf9, 0x01}, + {0xbbfa, 0x01}, + {0xbbfb, 0x01}, + {0xbbfc, 0x01}, + {0xbbfd, 0x01}, + {0xbbfe, 0x01}, + {0xbc40, 0x01}, + {0xbc41, 0x01}, + {0xbc42, 0x01}, + {0xbc43, 0x01}, + {0xbc44, 0x01}, + {0xbc45, 0x01}, + {0xbc46, 0x01}, + {0xbc47, 0x01}, + {0xbc48, 0x01}, + {0xbc49, 0x01}, + {0xbc4a, 0x01}, + {0xbc4b, 0x01}, + {0xbc4c, 0x01}, + {0xbc4d, 0x01}, + {0xbc4e, 0x01}, + {0xbc4f, 0x01}, + {0xbc50, 0x01}, + {0xbc51, 0x01}, + {0xbc52, 0x01}, + {0xbc53, 0x01}, + {0xbc54, 0x01}, + {0xbc55, 0x01}, + {0xbc56, 0x01}, + {0xbc57, 0x01}, + {0xbc58, 0x01}, + {0xbc59, 0x01}, + {0xbc5a, 0x01}, + {0xbc5b, 0x01}, + {0xbc5c, 0x01}, + {0xbc5d, 0x01}, + {0xbc5e, 0x01}, + {0xbc5f, 0x01}, + {0xbc60, 0x01}, + {0xbc61, 0x01}, + {0xbc62, 0x01}, + {0xbc63, 0x01}, + {0xbc64, 0x01}, + {0xbc65, 0x01}, + {0xbc66, 0x01}, + {0xbc67, 0x01}, + {0xbc68, 0x01}, + {0xbc69, 0x01}, + {0xbc6a, 0x01}, + {0xbc6b, 0x01}, + {0xbc6c, 0x01}, + {0xbc6d, 0x01}, + {0xbc6e, 0x01}, + {0xbc6f, 0x01}, + {0xbc70, 0x01}, + {0xbc71, 0x01}, + {0xbc72, 0x01}, + {0xbc73, 0x01}, + {0xbc74, 0x01}, + {0xbc75, 0x01}, + {0xbc76, 0x01}, + {0xbc77, 0x01}, + {0xbc78, 0x01}, + {0xbc79, 0x01}, + {0xbc7a, 0x01}, + {0xbc7b, 0x01}, + {0xbc7c, 0x01}, + {0xbc7d, 0x01}, + {0xbc7e, 0x01}, + {0xbc80, 0x01}, + {0xbc81, 0x01}, + {0xbc82, 0x01}, + {0xbc83, 0x01}, + {0xbc84, 0x01}, + {0xbc85, 0x01}, + {0xbc86, 0x01}, + {0xbc87, 0x01}, + {0xbc88, 0x01}, + {0xbc89, 0x01}, + {0xbc8a, 0x01}, + {0xbc8b, 0x01}, + {0xbc8c, 0x01}, + {0xbc8d, 0x01}, + {0xbc8e, 0x01}, + {0xbc8f, 0x01}, + {0xbc90, 0x01}, + {0xbc91, 0x01}, + {0xbc92, 0x01}, + {0xbc93, 0x01}, + {0xbc94, 0x01}, + {0xbc95, 0x01}, + {0xbc96, 0x01}, + {0xbc97, 0x01}, + {0xbc98, 0x01}, + {0xbc99, 0x01}, + {0xbc9a, 0x01}, + {0xbc9b, 0x01}, + {0xbc9c, 0x01}, + {0xbc9d, 0x01}, + {0xbc9e, 0x01}, + {0xbc9f, 0x01}, + {0xbca0, 0x01}, + {0xbca1, 0x01}, + {0xbca2, 0x01}, + {0xbca3, 0x01}, + {0xbca4, 0x01}, + {0xbca5, 0x01}, + {0xbca6, 0x01}, + {0xbca7, 0x01}, + {0xbca8, 0x01}, + {0xbca9, 0x01}, + {0xbcaa, 0x01}, + {0xbcab, 0x01}, + {0xbcac, 0x01}, + {0xbcad, 0x01}, + {0xbcae, 0x01}, + {0xbcaf, 0x01}, + {0xbcb0, 0x01}, + {0xbcb1, 0x01}, + {0xbcb2, 0x01}, + {0xbcb3, 0x01}, + {0xbcb4, 0x01}, + {0xbcb5, 0x01}, + {0xbcb6, 0x01}, + {0xbcb7, 0x01}, + {0xbcb8, 0x01}, + {0xbcb9, 0x01}, + {0xbcba, 0x01}, + {0xbcbb, 0x01}, + {0xbcbc, 0x01}, + {0xbcbd, 0x01}, + {0xbcbe, 0x01}, + {0xbcbf, 0x01}, + {0xbcc0, 0x01}, + {0xbcc1, 0x01}, + {0xbcc2, 0x01}, + {0xbcc3, 0x01}, + {0xbcc4, 0x01}, + {0xbcc5, 0x01}, + {0xbcc6, 0x01}, + {0xbcc7, 0x01}, + {0xbcc8, 0x01}, + {0xbcc9, 0x01}, + {0xbcca, 0x01}, + {0xbccb, 0x01}, + {0xbccc, 0x01}, + {0xbccd, 0x01}, + {0xbcce, 0x01}, + {0xbccf, 0x01}, + {0xbcd0, 0x01}, + {0xbcd1, 0x01}, + {0xbcd2, 0x01}, + {0xbcd3, 0x01}, + {0xbcd4, 0x01}, + {0xbcd5, 0x01}, + {0xbcd6, 0x01}, + {0xbcd7, 0x01}, + {0xbcd8, 0x01}, + {0xbcd9, 0x01}, + {0xbcda, 0x01}, + {0xbcdb, 0x01}, + {0xbcdc, 0x01}, + {0xbcdd, 0x01}, + {0xbcde, 0x01}, + {0xbcdf, 0x01}, + {0xbce0, 0x01}, + {0xbce1, 0x01}, + {0xbce2, 0x01}, + {0xbce3, 0x01}, + {0xbce4, 0x01}, + {0xbce5, 0x01}, + {0xbce6, 0x01}, + {0xbce7, 0x01}, + {0xbce8, 0x01}, + {0xbce9, 0x01}, + {0xbcea, 0x01}, + {0xbceb, 0x01}, + {0xbcec, 0x01}, + {0xbced, 0x01}, + {0xbcee, 0x01}, + {0xbcef, 0x01}, + {0xbcf0, 0x01}, + {0xbcf1, 0x01}, + {0xbcf2, 0x01}, + {0xbcf3, 0x01}, + {0xbcf4, 0x01}, + {0xbcf5, 0x01}, + {0xbcf6, 0x01}, + {0xbcf7, 0x01}, + {0xbcf8, 0x01}, + {0xbcf9, 0x01}, + {0xbcfa, 0x01}, + {0xbcfb, 0x01}, + {0xbcfc, 0x01}, + {0xbcfd, 0x01}, + {0xbcfe, 0x01}, + {0xbd40, 0x01}, + {0xbd41, 0x01}, + {0xbd42, 0x01}, + {0xbd43, 0x01}, + {0xbd44, 0x01}, + {0xbd45, 0x01}, + {0xbd46, 0x01}, + {0xbd47, 0x01}, + {0xbd48, 0x01}, + {0xbd49, 0x01}, + {0xbd4a, 0x01}, + {0xbd4b, 0x01}, + {0xbd4c, 0x01}, + {0xbd4d, 0x01}, + {0xbd4e, 0x01}, + {0xbd4f, 0x01}, + {0xbd50, 0x01}, + {0xbd51, 0x01}, + {0xbd52, 0x01}, + {0xbd53, 0x01}, + {0xbd54, 0x01}, + {0xbd55, 0x01}, + {0xbd56, 0x01}, + {0xbd57, 0x01}, + {0xbd58, 0x01}, + {0xbd59, 0x01}, + {0xbd5a, 0x01}, + {0xbd5b, 0x01}, + {0xbd5c, 0x01}, + {0xbd5d, 0x01}, + {0xbd5e, 0x01}, + {0xbd5f, 0x01}, + {0xbd60, 0x01}, + {0xbd61, 0x01}, + {0xbd62, 0x01}, + {0xbd63, 0x01}, + {0xbd64, 0x01}, + {0xbd65, 0x01}, + {0xbd66, 0x01}, + {0xbd67, 0x01}, + {0xbd68, 0x01}, + {0xbd69, 0x01}, + {0xbd6a, 0x01}, + {0xbd6b, 0x01}, + {0xbd6c, 0x01}, + {0xbd6d, 0x01}, + {0xbd6e, 0x01}, + {0xbd6f, 0x01}, + {0xbd70, 0x01}, + {0xbd71, 0x01}, + {0xbd72, 0x01}, + {0xbd73, 0x01}, + {0xbd74, 0x01}, + {0xbd75, 0x01}, + {0xbd76, 0x01}, + {0xbd77, 0x01}, + {0xbd78, 0x01}, + {0xbd79, 0x01}, + {0xbd7a, 0x01}, + {0xbd7b, 0x01}, + {0xbd7c, 0x01}, + {0xbd7d, 0x01}, + {0xbd7e, 0x01}, + {0xbd80, 0x01}, + {0xbd81, 0x01}, + {0xbd82, 0x01}, + {0xbd83, 0x01}, + {0xbd84, 0x01}, + {0xbd85, 0x01}, + {0xbd86, 0x01}, + {0xbd87, 0x01}, + {0xbd88, 0x01}, + {0xbd89, 0x01}, + {0xbd8a, 0x01}, + {0xbd8b, 0x01}, + {0xbd8c, 0x01}, + {0xbd8d, 0x01}, + {0xbd8e, 0x01}, + {0xbd8f, 0x01}, + {0xbd90, 0x01}, + {0xbd91, 0x01}, + {0xbd92, 0x01}, + {0xbd93, 0x01}, + {0xbd94, 0x01}, + {0xbd95, 0x01}, + {0xbd96, 0x01}, + {0xbd97, 0x01}, + {0xbd98, 0x01}, + {0xbd99, 0x01}, + {0xbd9a, 0x01}, + {0xbd9b, 0x01}, + {0xbd9c, 0x01}, + {0xbd9d, 0x01}, + {0xbd9e, 0x01}, + {0xbd9f, 0x01}, + {0xbda0, 0x01}, + {0xbda1, 0x01}, + {0xbda2, 0x01}, + {0xbda3, 0x01}, + {0xbda4, 0x01}, + {0xbda5, 0x01}, + {0xbda6, 0x01}, + {0xbda7, 0x01}, + {0xbda8, 0x01}, + {0xbda9, 0x01}, + {0xbdaa, 0x01}, + {0xbdab, 0x01}, + {0xbdac, 0x01}, + {0xbdad, 0x01}, + {0xbdae, 0x01}, + {0xbdaf, 0x01}, + {0xbdb0, 0x01}, + {0xbdb1, 0x01}, + {0xbdb2, 0x01}, + {0xbdb3, 0x01}, + {0xbdb4, 0x01}, + {0xbdb5, 0x01}, + {0xbdb6, 0x01}, + {0xbdb7, 0x01}, + {0xbdb8, 0x01}, + {0xbdb9, 0x01}, + {0xbdba, 0x01}, + {0xbdbb, 0x01}, + {0xbdbc, 0x01}, + {0xbdbd, 0x01}, + {0xbdbe, 0x01}, + {0xbdbf, 0x01}, + {0xbdc0, 0x01}, + {0xbdc1, 0x01}, + {0xbdc2, 0x01}, + {0xbdc3, 0x01}, + {0xbdc4, 0x01}, + {0xbdc5, 0x01}, + {0xbdc6, 0x01}, + {0xbdc7, 0x01}, + {0xbdc8, 0x01}, + {0xbdc9, 0x01}, + {0xbdca, 0x01}, + {0xbdcb, 0x01}, + {0xbdcc, 0x01}, + {0xbdcd, 0x01}, + {0xbdce, 0x01}, + {0xbdcf, 0x01}, + {0xbdd0, 0x01}, + {0xbdd1, 0x01}, + {0xbdd2, 0x01}, + {0xbdd3, 0x01}, + {0xbdd4, 0x01}, + {0xbdd5, 0x01}, + {0xbdd6, 0x01}, + {0xbdd7, 0x01}, + {0xbdd8, 0x01}, + {0xbdd9, 0x01}, + {0xbdda, 0x01}, + {0xbddb, 0x01}, + {0xbddc, 0x01}, + {0xbddd, 0x01}, + {0xbdde, 0x01}, + {0xbddf, 0x01}, + {0xbde0, 0x01}, + {0xbde1, 0x01}, + {0xbde2, 0x01}, + {0xbde3, 0x01}, + {0xbde4, 0x01}, + {0xbde5, 0x01}, + {0xbde6, 0x01}, + {0xbde7, 0x01}, + {0xbde8, 0x01}, + {0xbde9, 0x01}, + {0xbdea, 0x01}, + {0xbdeb, 0x01}, + {0xbdec, 0x01}, + {0xbded, 0x01}, + {0xbdee, 0x01}, + {0xbdef, 0x01}, + {0xbdf0, 0x01}, + {0xbdf1, 0x01}, + {0xbdf2, 0x01}, + {0xbdf3, 0x01}, + {0xbdf4, 0x01}, + {0xbdf5, 0x01}, + {0xbdf6, 0x01}, + {0xbdf7, 0x01}, + {0xbdf8, 0x01}, + {0xbdf9, 0x01}, + {0xbdfa, 0x01}, + {0xbdfb, 0x01}, + {0xbdfc, 0x01}, + {0xbdfd, 0x01}, + {0xbdfe, 0x01}, + {0xbe40, 0x01}, + {0xbe41, 0x01}, + {0xbe42, 0x01}, + {0xbe43, 0x01}, + {0xbe44, 0x01}, + {0xbe45, 0x01}, + {0xbe46, 0x01}, + {0xbe47, 0x01}, + {0xbe48, 0x01}, + {0xbe49, 0x01}, + {0xbe4a, 0x01}, + {0xbe4b, 0x01}, + {0xbe4c, 0x01}, + {0xbe4d, 0x01}, + {0xbe4e, 0x01}, + {0xbe4f, 0x01}, + {0xbe50, 0x01}, + {0xbe51, 0x01}, + {0xbe52, 0x01}, + {0xbe53, 0x01}, + {0xbe54, 0x01}, + {0xbe55, 0x01}, + {0xbe56, 0x01}, + {0xbe57, 0x01}, + {0xbe58, 0x01}, + {0xbe59, 0x01}, + {0xbe5a, 0x01}, + {0xbe5b, 0x01}, + {0xbe5c, 0x01}, + {0xbe5d, 0x01}, + {0xbe5e, 0x01}, + {0xbe5f, 0x01}, + {0xbe60, 0x01}, + {0xbe61, 0x01}, + {0xbe62, 0x01}, + {0xbe63, 0x01}, + {0xbe64, 0x01}, + {0xbe65, 0x01}, + {0xbe66, 0x01}, + {0xbe67, 0x01}, + {0xbe68, 0x01}, + {0xbe69, 0x01}, + {0xbe6a, 0x01}, + {0xbe6b, 0x01}, + {0xbe6c, 0x01}, + {0xbe6d, 0x01}, + {0xbe6e, 0x01}, + {0xbe6f, 0x01}, + {0xbe70, 0x01}, + {0xbe71, 0x01}, + {0xbe72, 0x01}, + {0xbe73, 0x01}, + {0xbe74, 0x01}, + {0xbe75, 0x01}, + {0xbe76, 0x01}, + {0xbe77, 0x01}, + {0xbe78, 0x01}, + {0xbe79, 0x01}, + {0xbe7a, 0x01}, + {0xbe7b, 0x01}, + {0xbe7c, 0x01}, + {0xbe7d, 0x01}, + {0xbe7e, 0x01}, + {0xbe80, 0x01}, + {0xbe81, 0x01}, + {0xbe82, 0x01}, + {0xbe83, 0x01}, + {0xbe84, 0x01}, + {0xbe85, 0x01}, + {0xbe86, 0x01}, + {0xbe87, 0x01}, + {0xbe88, 0x01}, + {0xbe89, 0x01}, + {0xbe8a, 0x01}, + {0xbe8b, 0x01}, + {0xbe8c, 0x01}, + {0xbe8d, 0x01}, + {0xbe8e, 0x01}, + {0xbe8f, 0x01}, + {0xbe90, 0x01}, + {0xbe91, 0x01}, + {0xbe92, 0x01}, + {0xbe93, 0x01}, + {0xbe94, 0x01}, + {0xbe95, 0x01}, + {0xbe96, 0x01}, + {0xbe97, 0x01}, + {0xbe98, 0x01}, + {0xbe99, 0x01}, + {0xbe9a, 0x01}, + {0xbe9b, 0x01}, + {0xbe9c, 0x01}, + {0xbe9d, 0x01}, + {0xbe9e, 0x01}, + {0xbe9f, 0x01}, + {0xbea0, 0x01}, + {0xbea1, 0x01}, + {0xbea2, 0x01}, + {0xbea3, 0x01}, + {0xbea4, 0x01}, + {0xbea5, 0x01}, + {0xbea6, 0x01}, + {0xbea7, 0x01}, + {0xbea8, 0x01}, + {0xbea9, 0x01}, + {0xbeaa, 0x01}, + {0xbeab, 0x01}, + {0xbeac, 0x01}, + {0xbead, 0x01}, + {0xbeae, 0x01}, + {0xbeaf, 0x01}, + {0xbeb0, 0x01}, + {0xbeb1, 0x01}, + {0xbeb2, 0x01}, + {0xbeb3, 0x01}, + {0xbeb4, 0x01}, + {0xbeb5, 0x01}, + {0xbeb6, 0x01}, + {0xbeb7, 0x01}, + {0xbeb8, 0x01}, + {0xbeb9, 0x01}, + {0xbeba, 0x01}, + {0xbebb, 0x01}, + {0xbebc, 0x01}, + {0xbebd, 0x01}, + {0xbebe, 0x01}, + {0xbebf, 0x01}, + {0xbec0, 0x01}, + {0xbec1, 0x01}, + {0xbec2, 0x01}, + {0xbec3, 0x01}, + {0xbec4, 0x01}, + {0xbec5, 0x01}, + {0xbec6, 0x01}, + {0xbec7, 0x01}, + {0xbec8, 0x01}, + {0xbec9, 0x01}, + {0xbeca, 0x01}, + {0xbecb, 0x01}, + {0xbecc, 0x01}, + {0xbecd, 0x01}, + {0xbece, 0x01}, + {0xbecf, 0x01}, + {0xbed0, 0x01}, + {0xbed1, 0x01}, + {0xbed2, 0x01}, + {0xbed3, 0x01}, + {0xbed4, 0x01}, + {0xbed5, 0x01}, + {0xbed6, 0x01}, + {0xbed7, 0x01}, + {0xbed8, 0x01}, + {0xbed9, 0x01}, + {0xbeda, 0x01}, + {0xbedb, 0x01}, + {0xbedc, 0x01}, + {0xbedd, 0x01}, + {0xbede, 0x01}, + {0xbedf, 0x01}, + {0xbee0, 0x01}, + {0xbee1, 0x01}, + {0xbee2, 0x01}, + {0xbee3, 0x01}, + {0xbee4, 0x01}, + {0xbee5, 0x01}, + {0xbee6, 0x01}, + {0xbee7, 0x01}, + {0xbee8, 0x01}, + {0xbee9, 0x01}, + {0xbeea, 0x01}, + {0xbeeb, 0x01}, + {0xbeec, 0x01}, + {0xbeed, 0x01}, + {0xbeee, 0x01}, + {0xbeef, 0x01}, + {0xbef0, 0x01}, + {0xbef1, 0x01}, + {0xbef2, 0x01}, + {0xbef3, 0x01}, + {0xbef4, 0x01}, + {0xbef5, 0x01}, + {0xbef6, 0x01}, + {0xbef7, 0x01}, + {0xbef8, 0x01}, + {0xbef9, 0x01}, + {0xbefa, 0x01}, + {0xbefb, 0x01}, + {0xbefc, 0x01}, + {0xbefd, 0x01}, + {0xbefe, 0x01}, + {0xbf40, 0x01}, + {0xbf41, 0x01}, + {0xbf42, 0x01}, + {0xbf43, 0x01}, + {0xbf44, 0x01}, + {0xbf45, 0x01}, + {0xbf46, 0x01}, + {0xbf47, 0x01}, + {0xbf48, 0x01}, + {0xbf49, 0x01}, + {0xbf4a, 0x01}, + {0xbf4b, 0x01}, + {0xbf4c, 0x01}, + {0xbf4d, 0x01}, + {0xbf4e, 0x01}, + {0xbf4f, 0x01}, + {0xbf50, 0x01}, + {0xbf51, 0x01}, + {0xbf52, 0x01}, + {0xbf53, 0x01}, + {0xbf54, 0x01}, + {0xbf55, 0x01}, + {0xbf56, 0x01}, + {0xbf57, 0x01}, + {0xbf58, 0x01}, + {0xbf59, 0x01}, + {0xbf5a, 0x01}, + {0xbf5b, 0x01}, + {0xbf5c, 0x01}, + {0xbf5d, 0x01}, + {0xbf5e, 0x01}, + {0xbf5f, 0x01}, + {0xbf60, 0x01}, + {0xbf61, 0x01}, + {0xbf62, 0x01}, + {0xbf63, 0x01}, + {0xbf64, 0x01}, + {0xbf65, 0x01}, + {0xbf66, 0x01}, + {0xbf67, 0x01}, + {0xbf68, 0x01}, + {0xbf69, 0x01}, + {0xbf6a, 0x01}, + {0xbf6b, 0x01}, + {0xbf6c, 0x01}, + {0xbf6d, 0x01}, + {0xbf6e, 0x01}, + {0xbf6f, 0x01}, + {0xbf70, 0x01}, + {0xbf71, 0x01}, + {0xbf72, 0x01}, + {0xbf73, 0x01}, + {0xbf74, 0x01}, + {0xbf75, 0x01}, + {0xbf76, 0x01}, + {0xbf77, 0x01}, + {0xbf78, 0x01}, + {0xbf79, 0x01}, + {0xbf7a, 0x01}, + {0xbf7b, 0x01}, + {0xbf7c, 0x01}, + {0xbf7d, 0x01}, + {0xbf7e, 0x01}, + {0xbf80, 0x01}, + {0xbf81, 0x01}, + {0xbf82, 0x01}, + {0xbf83, 0x01}, + {0xbf84, 0x01}, + {0xbf85, 0x01}, + {0xbf86, 0x01}, + {0xbf87, 0x01}, + {0xbf88, 0x01}, + {0xbf89, 0x01}, + {0xbf8a, 0x01}, + {0xbf8b, 0x01}, + {0xbf8c, 0x01}, + {0xbf8d, 0x01}, + {0xbf8e, 0x01}, + {0xbf8f, 0x01}, + {0xbf90, 0x01}, + {0xbf91, 0x01}, + {0xbf92, 0x01}, + {0xbf93, 0x01}, + {0xbf94, 0x01}, + {0xbf95, 0x01}, + {0xbf96, 0x01}, + {0xbf97, 0x01}, + {0xbf98, 0x01}, + {0xbf99, 0x01}, + {0xbf9a, 0x01}, + {0xbf9b, 0x01}, + {0xbf9c, 0x01}, + {0xbf9d, 0x01}, + {0xbf9e, 0x01}, + {0xbf9f, 0x01}, + {0xbfa0, 0x01}, + {0xbfa1, 0x01}, + {0xbfa2, 0x01}, + {0xbfa3, 0x01}, + {0xbfa4, 0x01}, + {0xbfa5, 0x01}, + {0xbfa6, 0x01}, + {0xbfa7, 0x01}, + {0xbfa8, 0x01}, + {0xbfa9, 0x01}, + {0xbfaa, 0x01}, + {0xbfab, 0x01}, + {0xbfac, 0x01}, + {0xbfad, 0x01}, + {0xbfae, 0x01}, + {0xbfaf, 0x01}, + {0xbfb0, 0x01}, + {0xbfb1, 0x01}, + {0xbfb2, 0x01}, + {0xbfb3, 0x01}, + {0xbfb4, 0x01}, + {0xbfb5, 0x01}, + {0xbfb6, 0x01}, + {0xbfb7, 0x01}, + {0xbfb8, 0x01}, + {0xbfb9, 0x01}, + {0xbfba, 0x01}, + {0xbfbb, 0x01}, + {0xbfbc, 0x01}, + {0xbfbd, 0x01}, + {0xbfbe, 0x01}, + {0xbfbf, 0x01}, + {0xbfc0, 0x01}, + {0xbfc1, 0x01}, + {0xbfc2, 0x01}, + {0xbfc3, 0x01}, + {0xbfc4, 0x01}, + {0xbfc5, 0x01}, + {0xbfc6, 0x01}, + {0xbfc7, 0x01}, + {0xbfc8, 0x01}, + {0xbfc9, 0x01}, + {0xbfca, 0x01}, + {0xbfcb, 0x01}, + {0xbfcc, 0x01}, + {0xbfcd, 0x01}, + {0xbfce, 0x01}, + {0xbfcf, 0x01}, + {0xbfd0, 0x01}, + {0xbfd1, 0x01}, + {0xbfd2, 0x01}, + {0xbfd3, 0x01}, + {0xbfd4, 0x01}, + {0xbfd5, 0x01}, + {0xbfd6, 0x01}, + {0xbfd7, 0x01}, + {0xbfd8, 0x01}, + {0xbfd9, 0x01}, + {0xbfda, 0x01}, + {0xbfdb, 0x01}, + {0xbfdc, 0x01}, + {0xbfdd, 0x01}, + {0xbfde, 0x01}, + {0xbfdf, 0x01}, + {0xbfe0, 0x01}, + {0xbfe1, 0x01}, + {0xbfe2, 0x01}, + {0xbfe3, 0x01}, + {0xbfe4, 0x01}, + {0xbfe5, 0x01}, + {0xbfe6, 0x01}, + {0xbfe7, 0x01}, + {0xbfe8, 0x01}, + {0xbfe9, 0x01}, + {0xbfea, 0x01}, + {0xbfeb, 0x01}, + {0xbfec, 0x01}, + {0xbfed, 0x01}, + {0xbfee, 0x01}, + {0xbfef, 0x01}, + {0xbff0, 0x01}, + {0xbff1, 0x01}, + {0xbff2, 0x01}, + {0xbff3, 0x01}, + {0xbff4, 0x01}, + {0xbff5, 0x01}, + {0xbff6, 0x01}, + {0xbff7, 0x01}, + {0xbff8, 0x01}, + {0xbff9, 0x01}, + {0xbffa, 0x01}, + {0xbffb, 0x01}, + {0xbffc, 0x01}, + {0xbffd, 0x01}, + {0xbffe, 0x01}, + {0xc040, 0x01}, + {0xc041, 0x01}, + {0xc042, 0x01}, + {0xc043, 0x01}, + {0xc044, 0x01}, + {0xc045, 0x01}, + {0xc046, 0x01}, + {0xc047, 0x01}, + {0xc048, 0x01}, + {0xc049, 0x01}, + {0xc04a, 0x01}, + {0xc04b, 0x01}, + {0xc04c, 0x01}, + {0xc04d, 0x01}, + {0xc04e, 0x01}, + {0xc04f, 0x01}, + {0xc050, 0x01}, + {0xc051, 0x01}, + {0xc052, 0x01}, + {0xc053, 0x01}, + {0xc054, 0x01}, + {0xc055, 0x01}, + {0xc056, 0x01}, + {0xc057, 0x01}, + {0xc058, 0x01}, + {0xc059, 0x01}, + {0xc05a, 0x01}, + {0xc05b, 0x01}, + {0xc05c, 0x01}, + {0xc05d, 0x01}, + {0xc05e, 0x01}, + {0xc05f, 0x01}, + {0xc060, 0x01}, + {0xc061, 0x01}, + {0xc062, 0x01}, + {0xc063, 0x01}, + {0xc064, 0x01}, + {0xc065, 0x01}, + {0xc066, 0x01}, + {0xc067, 0x01}, + {0xc068, 0x01}, + {0xc069, 0x01}, + {0xc06a, 0x01}, + {0xc06b, 0x01}, + {0xc06c, 0x01}, + {0xc06d, 0x01}, + {0xc06e, 0x01}, + {0xc06f, 0x01}, + {0xc070, 0x01}, + {0xc071, 0x01}, + {0xc072, 0x01}, + {0xc073, 0x01}, + {0xc074, 0x01}, + {0xc075, 0x01}, + {0xc076, 0x01}, + {0xc077, 0x01}, + {0xc078, 0x01}, + {0xc079, 0x01}, + {0xc07a, 0x01}, + {0xc07b, 0x01}, + {0xc07c, 0x01}, + {0xc07d, 0x01}, + {0xc07e, 0x01}, + {0xc080, 0x01}, + {0xc081, 0x01}, + {0xc082, 0x01}, + {0xc083, 0x01}, + {0xc084, 0x01}, + {0xc085, 0x01}, + {0xc086, 0x01}, + {0xc087, 0x01}, + {0xc088, 0x01}, + {0xc089, 0x01}, + {0xc08a, 0x01}, + {0xc08b, 0x01}, + {0xc08c, 0x01}, + {0xc08d, 0x01}, + {0xc08e, 0x01}, + {0xc08f, 0x01}, + {0xc090, 0x01}, + {0xc091, 0x01}, + {0xc092, 0x01}, + {0xc093, 0x01}, + {0xc094, 0x01}, + {0xc095, 0x01}, + {0xc096, 0x01}, + {0xc097, 0x01}, + {0xc098, 0x01}, + {0xc099, 0x01}, + {0xc09a, 0x01}, + {0xc09b, 0x01}, + {0xc09c, 0x01}, + {0xc09d, 0x01}, + {0xc09e, 0x01}, + {0xc09f, 0x01}, + {0xc0a0, 0x01}, + {0xc0a1, 0x01}, + {0xc0a2, 0x01}, + {0xc0a3, 0x01}, + {0xc0a4, 0x01}, + {0xc0a5, 0x01}, + {0xc0a6, 0x01}, + {0xc0a7, 0x01}, + {0xc0a8, 0x01}, + {0xc0a9, 0x01}, + {0xc0aa, 0x01}, + {0xc0ab, 0x01}, + {0xc0ac, 0x01}, + {0xc0ad, 0x01}, + {0xc0ae, 0x01}, + {0xc0af, 0x01}, + {0xc0b0, 0x01}, + {0xc0b1, 0x01}, + {0xc0b2, 0x01}, + {0xc0b3, 0x01}, + {0xc0b4, 0x01}, + {0xc0b5, 0x01}, + {0xc0b6, 0x01}, + {0xc0b7, 0x01}, + {0xc0b8, 0x01}, + {0xc0b9, 0x01}, + {0xc0ba, 0x01}, + {0xc0bb, 0x01}, + {0xc0bc, 0x01}, + {0xc0bd, 0x01}, + {0xc0be, 0x01}, + {0xc0bf, 0x01}, + {0xc0c0, 0x01}, + {0xc0c1, 0x01}, + {0xc0c2, 0x01}, + {0xc0c3, 0x01}, + {0xc0c4, 0x01}, + {0xc0c5, 0x01}, + {0xc0c6, 0x01}, + {0xc0c7, 0x01}, + {0xc0c8, 0x01}, + {0xc0c9, 0x01}, + {0xc0ca, 0x01}, + {0xc0cb, 0x01}, + {0xc0cc, 0x01}, + {0xc0cd, 0x01}, + {0xc0ce, 0x01}, + {0xc0cf, 0x01}, + {0xc0d0, 0x01}, + {0xc0d1, 0x01}, + {0xc0d2, 0x01}, + {0xc0d3, 0x01}, + {0xc0d4, 0x01}, + {0xc0d5, 0x01}, + {0xc0d6, 0x01}, + {0xc0d7, 0x01}, + {0xc0d8, 0x01}, + {0xc0d9, 0x01}, + {0xc0da, 0x01}, + {0xc0db, 0x01}, + {0xc0dc, 0x01}, + {0xc0dd, 0x01}, + {0xc0de, 0x01}, + {0xc0df, 0x01}, + {0xc0e0, 0x01}, + {0xc0e1, 0x01}, + {0xc0e2, 0x01}, + {0xc0e3, 0x01}, + {0xc0e4, 0x01}, + {0xc0e5, 0x01}, + {0xc0e6, 0x01}, + {0xc0e7, 0x01}, + {0xc0e8, 0x01}, + {0xc0e9, 0x01}, + {0xc0ea, 0x01}, + {0xc0eb, 0x01}, + {0xc0ec, 0x01}, + {0xc0ed, 0x01}, + {0xc0ee, 0x01}, + {0xc0ef, 0x01}, + {0xc0f0, 0x01}, + {0xc0f1, 0x01}, + {0xc0f2, 0x01}, + {0xc0f3, 0x01}, + {0xc0f4, 0x01}, + {0xc0f5, 0x01}, + {0xc0f6, 0x01}, + {0xc0f7, 0x01}, + {0xc0f8, 0x01}, + {0xc0f9, 0x01}, + {0xc0fa, 0x01}, + {0xc0fb, 0x01}, + {0xc0fc, 0x01}, + {0xc0fd, 0x01}, + {0xc0fe, 0x01}, + {0xc140, 0x01}, + {0xc141, 0x01}, + {0xc142, 0x01}, + {0xc143, 0x01}, + {0xc144, 0x01}, + {0xc145, 0x01}, + {0xc146, 0x01}, + {0xc147, 0x01}, + {0xc148, 0x01}, + {0xc149, 0x01}, + {0xc14a, 0x01}, + {0xc14b, 0x01}, + {0xc14c, 0x01}, + {0xc14d, 0x01}, + {0xc14e, 0x01}, + {0xc14f, 0x01}, + {0xc150, 0x01}, + {0xc151, 0x01}, + {0xc152, 0x01}, + {0xc153, 0x01}, + {0xc154, 0x01}, + {0xc155, 0x01}, + {0xc156, 0x01}, + {0xc157, 0x01}, + {0xc158, 0x01}, + {0xc159, 0x01}, + {0xc15a, 0x01}, + {0xc15b, 0x01}, + {0xc15c, 0x01}, + {0xc15d, 0x01}, + {0xc15e, 0x01}, + {0xc15f, 0x01}, + {0xc160, 0x01}, + {0xc161, 0x01}, + {0xc162, 0x01}, + {0xc163, 0x01}, + {0xc164, 0x01}, + {0xc165, 0x01}, + {0xc166, 0x01}, + {0xc167, 0x01}, + {0xc168, 0x01}, + {0xc169, 0x01}, + {0xc16a, 0x01}, + {0xc16b, 0x01}, + {0xc16c, 0x01}, + {0xc16d, 0x01}, + {0xc16e, 0x01}, + {0xc16f, 0x01}, + {0xc170, 0x01}, + {0xc171, 0x01}, + {0xc172, 0x01}, + {0xc173, 0x01}, + {0xc174, 0x01}, + {0xc175, 0x01}, + {0xc176, 0x01}, + {0xc177, 0x01}, + {0xc178, 0x01}, + {0xc179, 0x01}, + {0xc17a, 0x01}, + {0xc17b, 0x01}, + {0xc17c, 0x01}, + {0xc17d, 0x01}, + {0xc17e, 0x01}, + {0xc180, 0x01}, + {0xc181, 0x01}, + {0xc182, 0x01}, + {0xc183, 0x01}, + {0xc184, 0x01}, + {0xc185, 0x01}, + {0xc186, 0x01}, + {0xc187, 0x01}, + {0xc188, 0x01}, + {0xc189, 0x01}, + {0xc18a, 0x01}, + {0xc18b, 0x01}, + {0xc18c, 0x01}, + {0xc18d, 0x01}, + {0xc18e, 0x01}, + {0xc18f, 0x01}, + {0xc190, 0x01}, + {0xc191, 0x01}, + {0xc192, 0x01}, + {0xc193, 0x01}, + {0xc194, 0x01}, + {0xc195, 0x01}, + {0xc196, 0x01}, + {0xc197, 0x01}, + {0xc198, 0x01}, + {0xc199, 0x01}, + {0xc19a, 0x01}, + {0xc19b, 0x01}, + {0xc19c, 0x01}, + {0xc19d, 0x01}, + {0xc19e, 0x01}, + {0xc19f, 0x01}, + {0xc1a0, 0x01}, + {0xc1a1, 0x01}, + {0xc1a2, 0x01}, + {0xc1a3, 0x01}, + {0xc1a4, 0x01}, + {0xc1a5, 0x01}, + {0xc1a6, 0x01}, + {0xc1a7, 0x01}, + {0xc1a8, 0x01}, + {0xc1a9, 0x01}, + {0xc1aa, 0x01}, + {0xc1ab, 0x01}, + {0xc1ac, 0x01}, + {0xc1ad, 0x01}, + {0xc1ae, 0x01}, + {0xc1af, 0x01}, + {0xc1b0, 0x01}, + {0xc1b1, 0x01}, + {0xc1b2, 0x01}, + {0xc1b3, 0x01}, + {0xc1b4, 0x01}, + {0xc1b5, 0x01}, + {0xc1b6, 0x01}, + {0xc1b7, 0x01}, + {0xc1b8, 0x01}, + {0xc1b9, 0x01}, + {0xc1ba, 0x01}, + {0xc1bb, 0x01}, + {0xc1bc, 0x01}, + {0xc1bd, 0x01}, + {0xc1be, 0x01}, + {0xc1bf, 0x01}, + {0xc1c0, 0x01}, + {0xc1c1, 0x01}, + {0xc1c2, 0x01}, + {0xc1c3, 0x01}, + {0xc1c4, 0x01}, + {0xc1c5, 0x01}, + {0xc1c6, 0x01}, + {0xc1c7, 0x01}, + {0xc1c8, 0x01}, + {0xc1c9, 0x01}, + {0xc1ca, 0x01}, + {0xc1cb, 0x01}, + {0xc1cc, 0x01}, + {0xc1cd, 0x01}, + {0xc1ce, 0x01}, + {0xc1cf, 0x01}, + {0xc1d0, 0x01}, + {0xc1d1, 0x01}, + {0xc1d2, 0x01}, + {0xc1d3, 0x01}, + {0xc1d4, 0x01}, + {0xc1d5, 0x01}, + {0xc1d6, 0x01}, + {0xc1d7, 0x01}, + {0xc1d8, 0x01}, + {0xc1d9, 0x01}, + {0xc1da, 0x01}, + {0xc1db, 0x01}, + {0xc1dc, 0x01}, + {0xc1dd, 0x01}, + {0xc1de, 0x01}, + {0xc1df, 0x01}, + {0xc1e0, 0x01}, + {0xc1e1, 0x01}, + {0xc1e2, 0x01}, + {0xc1e3, 0x01}, + {0xc1e4, 0x01}, + {0xc1e5, 0x01}, + {0xc1e6, 0x01}, + {0xc1e7, 0x01}, + {0xc1e8, 0x01}, + {0xc1e9, 0x01}, + {0xc1ea, 0x01}, + {0xc1eb, 0x01}, + {0xc1ec, 0x01}, + {0xc1ed, 0x01}, + {0xc1ee, 0x01}, + {0xc1ef, 0x01}, + {0xc1f0, 0x01}, + {0xc1f1, 0x01}, + {0xc1f2, 0x01}, + {0xc1f3, 0x01}, + {0xc1f4, 0x01}, + {0xc1f5, 0x01}, + {0xc1f6, 0x01}, + {0xc1f7, 0x01}, + {0xc1f8, 0x01}, + {0xc1f9, 0x01}, + {0xc1fa, 0x01}, + {0xc1fb, 0x01}, + {0xc1fc, 0x01}, + {0xc1fd, 0x01}, + {0xc1fe, 0x01}, + {0xc240, 0x01}, + {0xc241, 0x01}, + {0xc242, 0x01}, + {0xc243, 0x01}, + {0xc244, 0x01}, + {0xc245, 0x01}, + {0xc246, 0x01}, + {0xc247, 0x01}, + {0xc248, 0x01}, + {0xc249, 0x01}, + {0xc24a, 0x01}, + {0xc24b, 0x01}, + {0xc24c, 0x01}, + {0xc24d, 0x01}, + {0xc24e, 0x01}, + {0xc24f, 0x01}, + {0xc250, 0x01}, + {0xc251, 0x01}, + {0xc252, 0x01}, + {0xc254, 0x01}, + {0xc255, 0x01}, + {0xc256, 0x01}, + {0xc257, 0x01}, + {0xc258, 0x01}, + {0xc259, 0x01}, + {0xc25a, 0x01}, + {0xc25b, 0x01}, + {0xc25c, 0x01}, + {0xc25d, 0x01}, + {0xc25e, 0x01}, + {0xc25f, 0x01}, + {0xc260, 0x01}, + {0xc261, 0x01}, + {0xc262, 0x01}, + {0xc263, 0x01}, + {0xc264, 0x01}, + {0xc265, 0x01}, + {0xc266, 0x01}, + {0xc267, 0x01}, + {0xc268, 0x01}, + {0xc269, 0x01}, + {0xc26a, 0x01}, + {0xc26b, 0x01}, + {0xc26c, 0x01}, + {0xc26d, 0x01}, + {0xc26e, 0x01}, + {0xc26f, 0x01}, + {0xc270, 0x01}, + {0xc272, 0x01}, + {0xc273, 0x01}, + {0xc274, 0x01}, + {0xc275, 0x01}, + {0xc276, 0x01}, + {0xc277, 0x01}, + {0xc278, 0x01}, + {0xc279, 0x01}, + {0xc27a, 0x01}, + {0xc27b, 0x01}, + {0xc27c, 0x01}, + {0xc27d, 0x01}, + {0xc27e, 0x01}, + {0xc280, 0x01}, + {0xc281, 0x01}, + {0xc282, 0x01}, + {0xc283, 0x01}, + {0xc284, 0x01}, + {0xc285, 0x01}, + {0xc286, 0x01}, + {0xc287, 0x01}, + {0xc288, 0x01}, + {0xc28a, 0x01}, + {0xc28b, 0x01}, + {0xc28c, 0x01}, + {0xc28d, 0x01}, + {0xc28e, 0x01}, + {0xc28f, 0x01}, + {0xc290, 0x01}, + {0xc291, 0x01}, + {0xc292, 0x01}, + {0xc293, 0x01}, + {0xc294, 0x01}, + {0xc295, 0x01}, + {0xc296, 0x01}, + {0xc297, 0x01}, + {0xc298, 0x01}, + {0xc299, 0x01}, + {0xc29a, 0x01}, + {0xc29b, 0x01}, + {0xc29c, 0x01}, + {0xc29d, 0x01}, + {0xc29e, 0x01}, + {0xc29f, 0x01}, + {0xc2a0, 0x01}, + {0xc2a1, 0x01}, + {0xc2a2, 0x01}, + {0xc2a3, 0x01}, + {0xc2a4, 0x01}, + {0xc2a5, 0x01}, + {0xc2a6, 0x01}, + {0xc2a7, 0x01}, + {0xc2a8, 0x01}, + {0xc2a9, 0x01}, + {0xc2aa, 0x01}, + {0xc2ab, 0x01}, + {0xc2ac, 0x01}, + {0xc2ad, 0x01}, + {0xc2ae, 0x01}, + {0xc2af, 0x01}, + {0xc2b0, 0x01}, + {0xc2b1, 0x01}, + {0xc2b2, 0x01}, + {0xc2b3, 0x01}, + {0xc2b4, 0x01}, + {0xc2b5, 0x01}, + {0xc2b6, 0x01}, + {0xc2b7, 0x01}, + {0xc2b8, 0x01}, + {0xc2b9, 0x01}, + {0xc2ba, 0x01}, + {0xc2bb, 0x01}, + {0xc2bc, 0x01}, + {0xc2bd, 0x01}, + {0xc2be, 0x01}, + {0xc2bf, 0x01}, + {0xc2c0, 0x01}, + {0xc2c1, 0x01}, + {0xc2c2, 0x01}, + {0xc2c3, 0x01}, + {0xc2c4, 0x01}, + {0xc2c5, 0x01}, + {0xc2c6, 0x01}, + {0xc2c7, 0x01}, + {0xc2c8, 0x01}, + {0xc2c9, 0x01}, + {0xc2ca, 0x01}, + {0xc2cb, 0x01}, + {0xc2cc, 0x01}, + {0xc2cd, 0x01}, + {0xc2ce, 0x01}, + {0xc2cf, 0x01}, + {0xc2d0, 0x01}, + {0xc2d1, 0x01}, + {0xc2d2, 0x01}, + {0xc2d3, 0x01}, + {0xc2d4, 0x01}, + {0xc2d5, 0x01}, + {0xc2d6, 0x01}, + {0xc2d7, 0x01}, + {0xc2d8, 0x01}, + {0xc2d9, 0x01}, + {0xc2da, 0x01}, + {0xc2db, 0x01}, + {0xc2dc, 0x01}, + {0xc2dd, 0x01}, + {0xc2de, 0x01}, + {0xc2df, 0x01}, + {0xc2e0, 0x01}, + {0xc2e1, 0x01}, + {0xc2e2, 0x01}, + {0xc2e3, 0x01}, + {0xc2e4, 0x01}, + {0xc2e5, 0x01}, + {0xc2e6, 0x01}, + {0xc2e7, 0x01}, + {0xc2e8, 0x01}, + {0xc2e9, 0x01}, + {0xc2ea, 0x01}, + {0xc2eb, 0x01}, + {0xc2ec, 0x01}, + {0xc2ed, 0x01}, + {0xc2ee, 0x01}, + {0xc2ef, 0x01}, + {0xc2f0, 0x01}, + {0xc2f1, 0x01}, + {0xc2f2, 0x01}, + {0xc2f3, 0x01}, + {0xc2f4, 0x01}, + {0xc2f5, 0x01}, + {0xc2f6, 0x01}, + {0xc2f7, 0x01}, + {0xc2f8, 0x01}, + {0xc2f9, 0x01}, + {0xc2fa, 0x01}, + {0xc2fb, 0x01}, + {0xc2fc, 0x01}, + {0xc2fd, 0x01}, + {0xc2fe, 0x01}, + {0xc340, 0x01}, + {0xc341, 0x01}, + {0xc342, 0x01}, + {0xc343, 0x01}, + {0xc344, 0x01}, + {0xc345, 0x01}, + {0xc346, 0x01}, + {0xc347, 0x01}, + {0xc348, 0x01}, + {0xc349, 0x01}, + {0xc34a, 0x01}, + {0xc34b, 0x01}, + {0xc34c, 0x01}, + {0xc34d, 0x01}, + {0xc34e, 0x01}, + {0xc34f, 0x01}, + {0xc350, 0x01}, + {0xc351, 0x01}, + {0xc352, 0x01}, + {0xc353, 0x01}, + {0xc354, 0x01}, + {0xc355, 0x01}, + {0xc356, 0x01}, + {0xc357, 0x01}, + {0xc358, 0x01}, + {0xc359, 0x01}, + {0xc35a, 0x01}, + {0xc35b, 0x01}, + {0xc35c, 0x01}, + {0xc35d, 0x01}, + {0xc35e, 0x01}, + {0xc35f, 0x01}, + {0xc360, 0x01}, + {0xc361, 0x01}, + {0xc362, 0x01}, + {0xc363, 0x01}, + {0xc364, 0x01}, + {0xc365, 0x01}, + {0xc366, 0x01}, + {0xc367, 0x01}, + {0xc368, 0x01}, + {0xc369, 0x01}, + {0xc36a, 0x01}, + {0xc36b, 0x01}, + {0xc36c, 0x01}, + {0xc36d, 0x01}, + {0xc36e, 0x01}, + {0xc36f, 0x01}, + {0xc370, 0x01}, + {0xc371, 0x01}, + {0xc372, 0x01}, + {0xc373, 0x01}, + {0xc374, 0x01}, + {0xc375, 0x01}, + {0xc376, 0x01}, + {0xc377, 0x01}, + {0xc378, 0x01}, + {0xc379, 0x01}, + {0xc37a, 0x01}, + {0xc37b, 0x01}, + {0xc37c, 0x01}, + {0xc37d, 0x01}, + {0xc37e, 0x01}, + {0xc380, 0x01}, + {0xc381, 0x01}, + {0xc382, 0x01}, + {0xc383, 0x01}, + {0xc384, 0x01}, + {0xc385, 0x01}, + {0xc386, 0x01}, + {0xc387, 0x01}, + {0xc388, 0x01}, + {0xc389, 0x01}, + {0xc38a, 0x01}, + {0xc38b, 0x01}, + {0xc38c, 0x01}, + {0xc38d, 0x01}, + {0xc38e, 0x01}, + {0xc38f, 0x01}, + {0xc390, 0x01}, + {0xc391, 0x01}, + {0xc392, 0x01}, + {0xc393, 0x01}, + {0xc394, 0x01}, + {0xc395, 0x01}, + {0xc396, 0x01}, + {0xc397, 0x01}, + {0xc398, 0x01}, + {0xc399, 0x01}, + {0xc39a, 0x01}, + {0xc39b, 0x01}, + {0xc39c, 0x01}, + {0xc39d, 0x01}, + {0xc39e, 0x01}, + {0xc39f, 0x01}, + {0xc3a0, 0x01}, + {0xc3a1, 0x01}, + {0xc3a2, 0x01}, + {0xc3a3, 0x01}, + {0xc3a4, 0x01}, + {0xc3a5, 0x01}, + {0xc3a6, 0x01}, + {0xc3a7, 0x01}, + {0xc3a8, 0x01}, + {0xc3a9, 0x01}, + {0xc3aa, 0x01}, + {0xc3ab, 0x01}, + {0xc3ac, 0x01}, + {0xc3ad, 0x01}, + {0xc3ae, 0x01}, + {0xc3af, 0x01}, + {0xc3b0, 0x01}, + {0xc3b1, 0x01}, + {0xc3b2, 0x01}, + {0xc3b3, 0x01}, + {0xc3b4, 0x01}, + {0xc3b5, 0x01}, + {0xc3b6, 0x01}, + {0xc3b7, 0x01}, + {0xc3b8, 0x01}, + {0xc3b9, 0x01}, + {0xc3ba, 0x01}, + {0xc3bb, 0x01}, + {0xc3bc, 0x01}, + {0xc3bd, 0x01}, + {0xc3be, 0x01}, + {0xc3bf, 0x01}, + {0xc3c0, 0x01}, + {0xc3c1, 0x01}, + {0xc3c2, 0x01}, + {0xc3c3, 0x01}, + {0xc3c4, 0x01}, + {0xc3c5, 0x01}, + {0xc3c6, 0x01}, + {0xc3c7, 0x01}, + {0xc3c8, 0x01}, + {0xc3c9, 0x01}, + {0xc3ca, 0x01}, + {0xc3cb, 0x01}, + {0xc3cc, 0x01}, + {0xc3cd, 0x01}, + {0xc3ce, 0x01}, + {0xc3cf, 0x01}, + {0xc3d0, 0x01}, + {0xc3d1, 0x01}, + {0xc3d2, 0x01}, + {0xc3d3, 0x01}, + {0xc3d4, 0x01}, + {0xc3d5, 0x01}, + {0xc3d6, 0x01}, + {0xc3d7, 0x01}, + {0xc3d8, 0x01}, + {0xc3d9, 0x01}, + {0xc3da, 0x01}, + {0xc3db, 0x01}, + {0xc3dc, 0x01}, + {0xc3dd, 0x01}, + {0xc3de, 0x01}, + {0xc3df, 0x01}, + {0xc3e0, 0x01}, + {0xc3e1, 0x01}, + {0xc3e2, 0x01}, + {0xc3e3, 0x01}, + {0xc3e4, 0x01}, + {0xc3e5, 0x01}, + {0xc3e6, 0x01}, + {0xc3e7, 0x01}, + {0xc3e8, 0x01}, + {0xc3e9, 0x01}, + {0xc3ea, 0x01}, + {0xc3eb, 0x01}, + {0xc3ec, 0x01}, + {0xc3ed, 0x01}, + {0xc3ee, 0x01}, + {0xc3ef, 0x01}, + {0xc3f0, 0x01}, + {0xc3f1, 0x01}, + {0xc3f2, 0x01}, + {0xc3f3, 0x01}, + {0xc3f4, 0x01}, + {0xc3f5, 0x01}, + {0xc3f6, 0x01}, + {0xc3f7, 0x01}, + {0xc3f8, 0x01}, + {0xc3f9, 0x01}, + {0xc3fa, 0x01}, + {0xc3fb, 0x01}, + {0xc3fc, 0x01}, + {0xc3fd, 0x01}, + {0xc3fe, 0x01}, + {0xc440, 0x01}, + {0xc441, 0x01}, + {0xc442, 0x01}, + {0xc443, 0x01}, + {0xc444, 0x01}, + {0xc445, 0x01}, + {0xc446, 0x01}, + {0xc447, 0x01}, + {0xc448, 0x01}, + {0xc449, 0x01}, + {0xc44a, 0x01}, + {0xc44b, 0x01}, + {0xc44c, 0x01}, + {0xc44d, 0x01}, + {0xc44e, 0x01}, + {0xc44f, 0x01}, + {0xc450, 0x01}, + {0xc451, 0x01}, + {0xc452, 0x01}, + {0xc453, 0x01}, + {0xc454, 0x01}, + {0xc455, 0x01}, + {0xc456, 0x01}, + {0xc457, 0x01}, + {0xc458, 0x01}, + {0xc459, 0x01}, + {0xc45a, 0x01}, + {0xc45b, 0x01}, + {0xc45c, 0x01}, + {0xc45d, 0x01}, + {0xc45e, 0x01}, + {0xc45f, 0x01}, + {0xc460, 0x01}, + {0xc461, 0x01}, + {0xc462, 0x01}, + {0xc463, 0x01}, + {0xc464, 0x01}, + {0xc465, 0x01}, + {0xc466, 0x01}, + {0xc467, 0x01}, + {0xc468, 0x01}, + {0xc469, 0x01}, + {0xc46a, 0x01}, + {0xc46b, 0x01}, + {0xc46c, 0x01}, + {0xc46d, 0x01}, + {0xc46e, 0x01}, + {0xc46f, 0x01}, + {0xc470, 0x01}, + {0xc471, 0x01}, + {0xc472, 0x01}, + {0xc473, 0x01}, + {0xc474, 0x01}, + {0xc475, 0x01}, + {0xc476, 0x01}, + {0xc477, 0x01}, + {0xc478, 0x01}, + {0xc479, 0x01}, + {0xc47a, 0x01}, + {0xc47b, 0x01}, + {0xc47c, 0x01}, + {0xc47d, 0x01}, + {0xc47e, 0x01}, + {0xc480, 0x01}, + {0xc481, 0x01}, + {0xc482, 0x01}, + {0xc483, 0x01}, + {0xc484, 0x01}, + {0xc485, 0x01}, + {0xc486, 0x01}, + {0xc487, 0x01}, + {0xc488, 0x01}, + {0xc489, 0x01}, + {0xc48a, 0x01}, + {0xc48b, 0x01}, + {0xc48c, 0x01}, + {0xc48d, 0x01}, + {0xc48e, 0x01}, + {0xc48f, 0x01}, + {0xc490, 0x01}, + {0xc491, 0x01}, + {0xc492, 0x01}, + {0xc493, 0x01}, + {0xc494, 0x01}, + {0xc495, 0x01}, + {0xc496, 0x01}, + {0xc497, 0x01}, + {0xc498, 0x01}, + {0xc499, 0x01}, + {0xc49a, 0x01}, + {0xc49b, 0x01}, + {0xc49c, 0x01}, + {0xc49d, 0x01}, + {0xc49e, 0x01}, + {0xc49f, 0x01}, + {0xc4a0, 0x01}, + {0xc4a1, 0x01}, + {0xc4a2, 0x01}, + {0xc4a3, 0x01}, + {0xc4a4, 0x01}, + {0xc4a5, 0x01}, + {0xc4a6, 0x01}, + {0xc4a7, 0x01}, + {0xc4a8, 0x01}, + {0xc4a9, 0x01}, + {0xc4aa, 0x01}, + {0xc4ab, 0x01}, + {0xc4ac, 0x01}, + {0xc4ad, 0x01}, + {0xc4ae, 0x01}, + {0xc4af, 0x01}, + {0xc4b0, 0x01}, + {0xc4b1, 0x01}, + {0xc4b2, 0x01}, + {0xc4b3, 0x01}, + {0xc4b4, 0x01}, + {0xc4b5, 0x01}, + {0xc4b6, 0x01}, + {0xc4b7, 0x01}, + {0xc4b8, 0x01}, + {0xc4b9, 0x01}, + {0xc4ba, 0x01}, + {0xc4bb, 0x01}, + {0xc4bc, 0x01}, + {0xc4bd, 0x01}, + {0xc4be, 0x01}, + {0xc4bf, 0x01}, + {0xc4c0, 0x01}, + {0xc4c1, 0x01}, + {0xc4c2, 0x01}, + {0xc4c3, 0x01}, + {0xc4c4, 0x01}, + {0xc4c5, 0x01}, + {0xc4c6, 0x01}, + {0xc4c7, 0x01}, + {0xc4c8, 0x01}, + {0xc4c9, 0x01}, + {0xc4ca, 0x01}, + {0xc4cb, 0x01}, + {0xc4cc, 0x01}, + {0xc4cd, 0x01}, + {0xc4ce, 0x01}, + {0xc4cf, 0x01}, + {0xc4d0, 0x01}, + {0xc4d1, 0x01}, + {0xc4d2, 0x01}, + {0xc4d3, 0x01}, + {0xc4d4, 0x01}, + {0xc4d5, 0x01}, + {0xc4d6, 0x01}, + {0xc4d7, 0x01}, + {0xc4d8, 0x01}, + {0xc4d9, 0x01}, + {0xc4da, 0x01}, + {0xc4db, 0x01}, + {0xc4dc, 0x01}, + {0xc4dd, 0x01}, + {0xc4de, 0x01}, + {0xc4df, 0x01}, + {0xc4e0, 0x01}, + {0xc4e1, 0x01}, + {0xc4e2, 0x01}, + {0xc4e3, 0x01}, + {0xc4e4, 0x01}, + {0xc4e5, 0x01}, + {0xc4e6, 0x01}, + {0xc4e7, 0x01}, + {0xc4e8, 0x01}, + {0xc4e9, 0x01}, + {0xc4ea, 0x01}, + {0xc4eb, 0x01}, + {0xc4ec, 0x01}, + {0xc4ed, 0x01}, + {0xc4ee, 0x01}, + {0xc4ef, 0x01}, + {0xc4f0, 0x01}, + {0xc4f1, 0x01}, + {0xc4f2, 0x01}, + {0xc4f3, 0x01}, + {0xc4f4, 0x01}, + {0xc4f5, 0x01}, + {0xc4f6, 0x01}, + {0xc4f7, 0x01}, + {0xc4f8, 0x01}, + {0xc4f9, 0x01}, + {0xc4fa, 0x01}, + {0xc4fb, 0x01}, + {0xc4fc, 0x01}, + {0xc4fd, 0x01}, + {0xc4fe, 0x01}, + {0xc540, 0x01}, + {0xc541, 0x01}, + {0xc542, 0x01}, + {0xc543, 0x01}, + {0xc544, 0x01}, + {0xc545, 0x01}, + {0xc546, 0x01}, + {0xc547, 0x01}, + {0xc548, 0x01}, + {0xc549, 0x01}, + {0xc54a, 0x01}, + {0xc54b, 0x01}, + {0xc54c, 0x01}, + {0xc54d, 0x01}, + {0xc54e, 0x01}, + {0xc54f, 0x01}, + {0xc550, 0x01}, + {0xc551, 0x01}, + {0xc552, 0x01}, + {0xc553, 0x01}, + {0xc554, 0x01}, + {0xc555, 0x01}, + {0xc556, 0x01}, + {0xc557, 0x01}, + {0xc558, 0x01}, + {0xc559, 0x01}, + {0xc55a, 0x01}, + {0xc55b, 0x01}, + {0xc55c, 0x01}, + {0xc55d, 0x01}, + {0xc55e, 0x01}, + {0xc55f, 0x01}, + {0xc560, 0x01}, + {0xc561, 0x01}, + {0xc562, 0x01}, + {0xc563, 0x01}, + {0xc564, 0x01}, + {0xc565, 0x01}, + {0xc566, 0x01}, + {0xc567, 0x01}, + {0xc568, 0x01}, + {0xc569, 0x01}, + {0xc56a, 0x01}, + {0xc56b, 0x01}, + {0xc56c, 0x01}, + {0xc56d, 0x01}, + {0xc56e, 0x01}, + {0xc56f, 0x01}, + {0xc570, 0x01}, + {0xc571, 0x01}, + {0xc572, 0x01}, + {0xc573, 0x01}, + {0xc574, 0x01}, + {0xc575, 0x01}, + {0xc576, 0x01}, + {0xc577, 0x01}, + {0xc578, 0x01}, + {0xc579, 0x01}, + {0xc57a, 0x01}, + {0xc57b, 0x01}, + {0xc57c, 0x01}, + {0xc57d, 0x01}, + {0xc57e, 0x01}, + {0xc580, 0x01}, + {0xc581, 0x01}, + {0xc582, 0x01}, + {0xc583, 0x01}, + {0xc584, 0x01}, + {0xc585, 0x01}, + {0xc587, 0x01}, + {0xc588, 0x01}, + {0xc589, 0x01}, + {0xc58a, 0x01}, + {0xc58b, 0x01}, + {0xc58c, 0x01}, + {0xc58d, 0x01}, + {0xc58e, 0x01}, + {0xc58f, 0x01}, + {0xc590, 0x01}, + {0xc591, 0x01}, + {0xc592, 0x01}, + {0xc593, 0x01}, + {0xc594, 0x01}, + {0xc595, 0x01}, + {0xc596, 0x01}, + {0xc597, 0x01}, + {0xc598, 0x01}, + {0xc599, 0x01}, + {0xc59a, 0x01}, + {0xc59b, 0x01}, + {0xc59c, 0x01}, + {0xc59d, 0x01}, + {0xc59e, 0x01}, + {0xc59f, 0x01}, + {0xc5a0, 0x01}, + {0xc5a1, 0x01}, + {0xc5a2, 0x01}, + {0xc5a3, 0x01}, + {0xc5a4, 0x01}, + {0xc5a5, 0x01}, + {0xc5a6, 0x01}, + {0xc5a7, 0x01}, + {0xc5a8, 0x01}, + {0xc5a9, 0x01}, + {0xc5aa, 0x01}, + {0xc5ab, 0x01}, + {0xc5ac, 0x01}, + {0xc5ad, 0x01}, + {0xc5ae, 0x01}, + {0xc5af, 0x01}, + {0xc5b0, 0x01}, + {0xc5b1, 0x01}, + {0xc5b2, 0x01}, + {0xc5b3, 0x01}, + {0xc5b4, 0x01}, + {0xc5b5, 0x01}, + {0xc5b6, 0x01}, + {0xc5b7, 0x01}, + {0xc5b8, 0x01}, + {0xc5b9, 0x01}, + {0xc5ba, 0x01}, + {0xc5bb, 0x01}, + {0xc5bc, 0x01}, + {0xc5bd, 0x01}, + {0xc5be, 0x01}, + {0xc5bf, 0x01}, + {0xc5c0, 0x01}, + {0xc5c1, 0x01}, + {0xc5c2, 0x01}, + {0xc5c3, 0x01}, + {0xc5c4, 0x01}, + {0xc5c5, 0x01}, + {0xc5c6, 0x01}, + {0xc5c7, 0x01}, + {0xc5c8, 0x01}, + {0xc5c9, 0x01}, + {0xc5ca, 0x01}, + {0xc5cb, 0x01}, + {0xc5cc, 0x01}, + {0xc5cd, 0x01}, + {0xc5ce, 0x01}, + {0xc5cf, 0x01}, + {0xc5d0, 0x01}, + {0xc5d1, 0x01}, + {0xc5d2, 0x01}, + {0xc5d3, 0x01}, + {0xc5d4, 0x01}, + {0xc5d5, 0x01}, + {0xc5d6, 0x01}, + {0xc5d7, 0x01}, + {0xc5d8, 0x01}, + {0xc5d9, 0x01}, + {0xc5da, 0x01}, + {0xc5db, 0x01}, + {0xc5dc, 0x01}, + {0xc5dd, 0x01}, + {0xc5de, 0x01}, + {0xc5df, 0x01}, + {0xc5e0, 0x01}, + {0xc5e1, 0x01}, + {0xc5e2, 0x01}, + {0xc5e3, 0x01}, + {0xc5e4, 0x01}, + {0xc5e5, 0x01}, + {0xc5e6, 0x01}, + {0xc5e7, 0x01}, + {0xc5e8, 0x01}, + {0xc5e9, 0x01}, + {0xc5ea, 0x01}, + {0xc5eb, 0x01}, + {0xc5ec, 0x01}, + {0xc5ed, 0x01}, + {0xc5ee, 0x01}, + {0xc5ef, 0x01}, + {0xc5f0, 0x01}, + {0xc5f1, 0x01}, + {0xc5f2, 0x01}, + {0xc5f3, 0x01}, + {0xc5f4, 0x01}, + {0xc5f5, 0x01}, + {0xc5f6, 0x01}, + {0xc5f7, 0x01}, + {0xc5f8, 0x01}, + {0xc5f9, 0x01}, + {0xc5fa, 0x01}, + {0xc5fb, 0x01}, + {0xc5fc, 0x01}, + {0xc5fd, 0x01}, + {0xc5fe, 0x01}, + {0xc640, 0x01}, + {0xc641, 0x01}, + {0xc642, 0x01}, + {0xc643, 0x01}, + {0xc644, 0x01}, + {0xc645, 0x01}, + {0xc646, 0x01}, + {0xc647, 0x01}, + {0xc648, 0x01}, + {0xc649, 0x01}, + {0xc64a, 0x01}, + {0xc64b, 0x01}, + {0xc64c, 0x01}, + {0xc64d, 0x01}, + {0xc64e, 0x01}, + {0xc64f, 0x01}, + {0xc650, 0x01}, + {0xc651, 0x01}, + {0xc652, 0x01}, + {0xc653, 0x01}, + {0xc654, 0x01}, + {0xc655, 0x01}, + {0xc656, 0x01}, + {0xc657, 0x01}, + {0xc658, 0x01}, + {0xc659, 0x01}, + {0xc65a, 0x01}, + {0xc65b, 0x01}, + {0xc65c, 0x01}, + {0xc65d, 0x01}, + {0xc65e, 0x01}, + {0xc65f, 0x01}, + {0xc660, 0x01}, + {0xc661, 0x01}, + {0xc662, 0x01}, + {0xc663, 0x01}, + {0xc664, 0x01}, + {0xc665, 0x01}, + {0xc666, 0x01}, + {0xc667, 0x01}, + {0xc668, 0x01}, + {0xc669, 0x01}, + {0xc66a, 0x01}, + {0xc66b, 0x01}, + {0xc66c, 0x01}, + {0xc66d, 0x01}, + {0xc66e, 0x01}, + {0xc66f, 0x01}, + {0xc670, 0x01}, + {0xc671, 0x01}, + {0xc672, 0x01}, + {0xc673, 0x01}, + {0xc674, 0x01}, + {0xc675, 0x01}, + {0xc676, 0x01}, + {0xc677, 0x01}, + {0xc678, 0x01}, + {0xc679, 0x01}, + {0xc67a, 0x01}, + {0xc67b, 0x01}, + {0xc67c, 0x01}, + {0xc67d, 0x01}, + {0xc67e, 0x01}, + {0xc680, 0x01}, + {0xc681, 0x01}, + {0xc682, 0x01}, + {0xc683, 0x01}, + {0xc684, 0x01}, + {0xc685, 0x01}, + {0xc686, 0x01}, + {0xc687, 0x01}, + {0xc688, 0x01}, + {0xc689, 0x01}, + {0xc68b, 0x01}, + {0xc68c, 0x01}, + {0xc68d, 0x01}, + {0xc68e, 0x01}, + {0xc68f, 0x01}, + {0xc690, 0x01}, + {0xc691, 0x01}, + {0xc692, 0x01}, + {0xc693, 0x01}, + {0xc694, 0x01}, + {0xc695, 0x01}, + {0xc696, 0x01}, + {0xc697, 0x01}, + {0xc698, 0x01}, + {0xc699, 0x01}, + {0xc69a, 0x01}, + {0xc69b, 0x01}, + {0xc69c, 0x01}, + {0xc69d, 0x01}, + {0xc69e, 0x01}, + {0xc69f, 0x01}, + {0xc6a0, 0x01}, + {0xc6a1, 0x01}, + {0xc6a2, 0x01}, + {0xc6a3, 0x01}, + {0xc6a4, 0x01}, + {0xc6a5, 0x01}, + {0xc6a6, 0x01}, + {0xc6a7, 0x01}, + {0xc6a8, 0x01}, + {0xc6a9, 0x01}, + {0xc6aa, 0x01}, + {0xc6ab, 0x01}, + {0xc6ac, 0x01}, + {0xc6ad, 0x01}, + {0xc6ae, 0x01}, + {0xc6af, 0x01}, + {0xc6b0, 0x01}, + {0xc6b1, 0x01}, + {0xc6b2, 0x01}, + {0xc6b3, 0x01}, + {0xc6b4, 0x01}, + {0xc6b5, 0x01}, + {0xc6b6, 0x01}, + {0xc6b7, 0x01}, + {0xc6b8, 0x01}, + {0xc6b9, 0x01}, + {0xc6ba, 0x01}, + {0xc6bb, 0x01}, + {0xc6bc, 0x01}, + {0xc6bd, 0x01}, + {0xc6be, 0x01}, + {0xc6bf, 0x01}, + {0xc6c0, 0x01}, + {0xc6c1, 0x01}, + {0xc6c2, 0x01}, + {0xc6c3, 0x01}, + {0xc6c4, 0x01}, + {0xc6c5, 0x01}, + {0xc6c6, 0x01}, + {0xc6c7, 0x01}, + {0xc6c8, 0x01}, + {0xc6c9, 0x01}, + {0xc6ca, 0x01}, + {0xc6cb, 0x01}, + {0xc6cc, 0x01}, + {0xc6cd, 0x01}, + {0xc6ce, 0x01}, + {0xc6cf, 0x01}, + {0xc6d0, 0x01}, + {0xc6d1, 0x01}, + {0xc6d2, 0x01}, + {0xc6d3, 0x01}, + {0xc6d4, 0x01}, + {0xc6d5, 0x01}, + {0xc6d6, 0x01}, + {0xc6d7, 0x01}, + {0xc6d8, 0x01}, + {0xc6d9, 0x01}, + {0xc6da, 0x01}, + {0xc6db, 0x01}, + {0xc6dc, 0x01}, + {0xc6dd, 0x01}, + {0xc6de, 0x01}, + {0xc6df, 0x01}, + {0xc6e0, 0x01}, + {0xc6e1, 0x01}, + {0xc6e2, 0x01}, + {0xc6e3, 0x01}, + {0xc6e4, 0x01}, + {0xc6e5, 0x01}, + {0xc6e6, 0x01}, + {0xc6e7, 0x01}, + {0xc6e8, 0x01}, + {0xc6e9, 0x01}, + {0xc6ea, 0x01}, + {0xc6eb, 0x01}, + {0xc6ec, 0x01}, + {0xc6ed, 0x01}, + {0xc6ee, 0x01}, + {0xc6ef, 0x01}, + {0xc6f0, 0x01}, + {0xc6f1, 0x01}, + {0xc6f2, 0x01}, + {0xc6f3, 0x01}, + {0xc6f4, 0x01}, + {0xc6f5, 0x01}, + {0xc6f6, 0x01}, + {0xc6f7, 0x01}, + {0xc6f8, 0x01}, + {0xc6f9, 0x01}, + {0xc6fa, 0x01}, + {0xc6fb, 0x01}, + {0xc6fc, 0x01}, + {0xc6fd, 0x01}, + {0xc6fe, 0x01}, + {0xc740, 0x01}, + {0xc741, 0x01}, + {0xc742, 0x01}, + {0xc743, 0x01}, + {0xc744, 0x01}, + {0xc745, 0x01}, + {0xc746, 0x01}, + {0xc747, 0x01}, + {0xc748, 0x01}, + {0xc749, 0x01}, + {0xc74a, 0x01}, + {0xc74b, 0x01}, + {0xc74c, 0x01}, + {0xc74d, 0x01}, + {0xc74e, 0x01}, + {0xc74f, 0x01}, + {0xc750, 0x01}, + {0xc751, 0x01}, + {0xc752, 0x01}, + {0xc753, 0x01}, + {0xc754, 0x01}, + {0xc755, 0x01}, + {0xc756, 0x01}, + {0xc757, 0x01}, + {0xc758, 0x01}, + {0xc759, 0x01}, + {0xc75a, 0x01}, + {0xc75b, 0x01}, + {0xc75c, 0x01}, + {0xc75d, 0x01}, + {0xc75e, 0x01}, + {0xc75f, 0x01}, + {0xc760, 0x01}, + {0xc761, 0x01}, + {0xc762, 0x01}, + {0xc763, 0x01}, + {0xc764, 0x01}, + {0xc765, 0x01}, + {0xc766, 0x01}, + {0xc767, 0x01}, + {0xc768, 0x01}, + {0xc769, 0x01}, + {0xc76a, 0x01}, + {0xc76b, 0x01}, + {0xc76c, 0x01}, + {0xc76d, 0x01}, + {0xc76e, 0x01}, + {0xc76f, 0x01}, + {0xc770, 0x01}, + {0xc771, 0x01}, + {0xc772, 0x01}, + {0xc773, 0x01}, + {0xc774, 0x01}, + {0xc775, 0x01}, + {0xc776, 0x01}, + {0xc777, 0x01}, + {0xc778, 0x01}, + {0xc779, 0x01}, + {0xc77a, 0x01}, + {0xc77b, 0x01}, + {0xc77c, 0x01}, + {0xc77d, 0x01}, + {0xc77e, 0x01}, + {0xc780, 0x01}, + {0xc781, 0x01}, + {0xc782, 0x01}, + {0xc783, 0x01}, + {0xc784, 0x01}, + {0xc785, 0x01}, + {0xc786, 0x01}, + {0xc787, 0x01}, + {0xc788, 0x01}, + {0xc789, 0x01}, + {0xc78a, 0x01}, + {0xc78b, 0x01}, + {0xc78c, 0x01}, + {0xc78d, 0x01}, + {0xc78e, 0x01}, + {0xc78f, 0x01}, + {0xc790, 0x01}, + {0xc791, 0x01}, + {0xc792, 0x01}, + {0xc793, 0x01}, + {0xc794, 0x01}, + {0xc795, 0x01}, + {0xc796, 0x01}, + {0xc797, 0x01}, + {0xc798, 0x01}, + {0xc799, 0x01}, + {0xc79a, 0x01}, + {0xc79b, 0x01}, + {0xc79c, 0x01}, + {0xc79d, 0x01}, + {0xc79e, 0x01}, + {0xc79f, 0x01}, + {0xc7a0, 0x01}, + {0xc7a1, 0x01}, + {0xc7a2, 0x01}, + {0xc7a3, 0x01}, + {0xc7a4, 0x01}, + {0xc7a5, 0x01}, + {0xc7a6, 0x01}, + {0xc7a7, 0x01}, + {0xc7a8, 0x01}, + {0xc7a9, 0x01}, + {0xc7aa, 0x01}, + {0xc7ab, 0x01}, + {0xc7ac, 0x01}, + {0xc7ad, 0x01}, + {0xc7ae, 0x01}, + {0xc7af, 0x01}, + {0xc7b0, 0x01}, + {0xc7b1, 0x01}, + {0xc7b2, 0x01}, + {0xc7b3, 0x01}, + {0xc7b4, 0x01}, + {0xc7b5, 0x01}, + {0xc7b6, 0x01}, + {0xc7b7, 0x01}, + {0xc7b8, 0x01}, + {0xc7b9, 0x01}, + {0xc7ba, 0x01}, + {0xc7bb, 0x01}, + {0xc7bc, 0x01}, + {0xc7bd, 0x01}, + {0xc7be, 0x01}, + {0xc7bf, 0x01}, + {0xc7c0, 0x01}, + {0xc7c1, 0x01}, + {0xc7c2, 0x01}, + {0xc7c3, 0x01}, + {0xc7c4, 0x01}, + {0xc7c5, 0x01}, + {0xc7c6, 0x01}, + {0xc7c7, 0x01}, + {0xc7c8, 0x01}, + {0xc7c9, 0x01}, + {0xc7ca, 0x01}, + {0xc7cb, 0x01}, + {0xc7cc, 0x01}, + {0xc7cd, 0x01}, + {0xc7ce, 0x01}, + {0xc7cf, 0x01}, + {0xc7d0, 0x01}, + {0xc7d1, 0x01}, + {0xc7d2, 0x01}, + {0xc7d3, 0x01}, + {0xc7d4, 0x01}, + {0xc7d5, 0x01}, + {0xc7d6, 0x01}, + {0xc7d7, 0x01}, + {0xc7d8, 0x01}, + {0xc7d9, 0x01}, + {0xc7da, 0x01}, + {0xc7db, 0x01}, + {0xc7dc, 0x01}, + {0xc7dd, 0x01}, + {0xc7de, 0x01}, + {0xc7df, 0x01}, + {0xc7e0, 0x01}, + {0xc7e1, 0x01}, + {0xc7e2, 0x01}, + {0xc7e3, 0x01}, + {0xc7e4, 0x01}, + {0xc7e5, 0x01}, + {0xc7e6, 0x01}, + {0xc7e7, 0x01}, + {0xc7e8, 0x01}, + {0xc7e9, 0x01}, + {0xc7ea, 0x01}, + {0xc7eb, 0x01}, + {0xc7ec, 0x01}, + {0xc7ed, 0x01}, + {0xc7ee, 0x01}, + {0xc7ef, 0x01}, + {0xc7f0, 0x01}, + {0xc7f1, 0x01}, + {0xc7f2, 0x01}, + {0xc7f3, 0x01}, + {0xc7f4, 0x01}, + {0xc7f5, 0x01}, + {0xc7f6, 0x01}, + {0xc7f7, 0x01}, + {0xc7f8, 0x01}, + {0xc7f9, 0x01}, + {0xc7fa, 0x01}, + {0xc7fb, 0x01}, + {0xc7fc, 0x01}, + {0xc7fd, 0x01}, + {0xc7fe, 0x01}, + {0xc840, 0x01}, + {0xc841, 0x01}, + {0xc842, 0x01}, + {0xc843, 0x01}, + {0xc844, 0x01}, + {0xc845, 0x01}, + {0xc846, 0x01}, + {0xc847, 0x01}, + {0xc848, 0x01}, + {0xc849, 0x01}, + {0xc84a, 0x01}, + {0xc84b, 0x01}, + {0xc84c, 0x01}, + {0xc84d, 0x01}, + {0xc84e, 0x01}, + {0xc84f, 0x01}, + {0xc850, 0x01}, + {0xc851, 0x01}, + {0xc852, 0x01}, + {0xc853, 0x01}, + {0xc854, 0x01}, + {0xc855, 0x01}, + {0xc856, 0x01}, + {0xc857, 0x01}, + {0xc858, 0x01}, + {0xc859, 0x01}, + {0xc85a, 0x01}, + {0xc85b, 0x01}, + {0xc85c, 0x01}, + {0xc85d, 0x01}, + {0xc85e, 0x01}, + {0xc85f, 0x01}, + {0xc860, 0x01}, + {0xc861, 0x01}, + {0xc862, 0x01}, + {0xc863, 0x01}, + {0xc864, 0x01}, + {0xc865, 0x01}, + {0xc866, 0x01}, + {0xc867, 0x01}, + {0xc868, 0x01}, + {0xc869, 0x01}, + {0xc86a, 0x01}, + {0xc86b, 0x01}, + {0xc86c, 0x01}, + {0xc86d, 0x01}, + {0xc86e, 0x01}, + {0xc86f, 0x01}, + {0xc870, 0x01}, + {0xc871, 0x01}, + {0xc872, 0x01}, + {0xc873, 0x01}, + {0xc874, 0x01}, + {0xc875, 0x01}, + {0xc876, 0x01}, + {0xc877, 0x01}, + {0xc878, 0x01}, + {0xc879, 0x01}, + {0xc87a, 0x01}, + {0xc87b, 0x01}, + {0xc87c, 0x01}, + {0xc87d, 0x01}, + {0xc87e, 0x01}, + {0xc880, 0x01}, + {0xc881, 0x01}, + {0xc882, 0x01}, + {0xc883, 0x01}, + {0xc884, 0x01}, + {0xc885, 0x01}, + {0xc886, 0x01}, + {0xc887, 0x01}, + {0xc888, 0x01}, + {0xc889, 0x01}, + {0xc88a, 0x01}, + {0xc88b, 0x01}, + {0xc88c, 0x01}, + {0xc88d, 0x01}, + {0xc88e, 0x01}, + {0xc88f, 0x01}, + {0xc890, 0x01}, + {0xc891, 0x01}, + {0xc892, 0x01}, + {0xc893, 0x01}, + {0xc894, 0x01}, + {0xc895, 0x01}, + {0xc896, 0x01}, + {0xc897, 0x01}, + {0xc898, 0x01}, + {0xc899, 0x01}, + {0xc89a, 0x01}, + {0xc89b, 0x01}, + {0xc89c, 0x01}, + {0xc89d, 0x01}, + {0xc89e, 0x01}, + {0xc89f, 0x01}, + {0xc8a0, 0x01}, + {0xc8a1, 0x01}, + {0xc8a2, 0x01}, + {0xc8a3, 0x01}, + {0xc8a4, 0x01}, + {0xc8a5, 0x01}, + {0xc8a6, 0x01}, + {0xc8a7, 0x01}, + {0xc8a8, 0x01}, + {0xc8a9, 0x01}, + {0xc8aa, 0x01}, + {0xc8ab, 0x01}, + {0xc8ac, 0x01}, + {0xc8ad, 0x01}, + {0xc8ae, 0x01}, + {0xc8af, 0x01}, + {0xc8b0, 0x01}, + {0xc8b1, 0x01}, + {0xc8b2, 0x01}, + {0xc8b3, 0x01}, + {0xc8b4, 0x01}, + {0xc8b5, 0x01}, + {0xc8b6, 0x01}, + {0xc8b7, 0x01}, + {0xc8b8, 0x01}, + {0xc8b9, 0x01}, + {0xc8ba, 0x01}, + {0xc8bb, 0x01}, + {0xc8bc, 0x01}, + {0xc8bd, 0x01}, + {0xc8be, 0x01}, + {0xc8bf, 0x01}, + {0xc8c0, 0x01}, + {0xc8c1, 0x01}, + {0xc8c2, 0x01}, + {0xc8c3, 0x01}, + {0xc8c4, 0x01}, + {0xc8c5, 0x01}, + {0xc8c6, 0x01}, + {0xc8c7, 0x01}, + {0xc8c8, 0x01}, + {0xc8c9, 0x01}, + {0xc8ca, 0x01}, + {0xc8cb, 0x01}, + {0xc8cc, 0x01}, + {0xc8cd, 0x01}, + {0xc8ce, 0x01}, + {0xc8cf, 0x01}, + {0xc8d0, 0x01}, + {0xc8d1, 0x01}, + {0xc8d2, 0x01}, + {0xc8d3, 0x01}, + {0xc8d4, 0x01}, + {0xc8d5, 0x01}, + {0xc8d6, 0x01}, + {0xc8d7, 0x01}, + {0xc8d8, 0x01}, + {0xc8d9, 0x01}, + {0xc8da, 0x01}, + {0xc8db, 0x01}, + {0xc8dc, 0x01}, + {0xc8dd, 0x01}, + {0xc8de, 0x01}, + {0xc8df, 0x01}, + {0xc8e0, 0x01}, + {0xc8e1, 0x01}, + {0xc8e2, 0x01}, + {0xc8e3, 0x01}, + {0xc8e4, 0x01}, + {0xc8e5, 0x01}, + {0xc8e6, 0x01}, + {0xc8e7, 0x01}, + {0xc8e8, 0x01}, + {0xc8e9, 0x01}, + {0xc8ea, 0x01}, + {0xc8eb, 0x01}, + {0xc8ec, 0x01}, + {0xc8ed, 0x01}, + {0xc8ee, 0x01}, + {0xc8ef, 0x01}, + {0xc8f0, 0x01}, + {0xc8f1, 0x01}, + {0xc8f2, 0x01}, + {0xc8f3, 0x01}, + {0xc8f4, 0x01}, + {0xc8f5, 0x01}, + {0xc8f6, 0x01}, + {0xc8f7, 0x01}, + {0xc8f8, 0x01}, + {0xc8f9, 0x01}, + {0xc8fa, 0x01}, + {0xc8fb, 0x01}, + {0xc8fc, 0x01}, + {0xc8fd, 0x01}, + {0xc8fe, 0x01}, + {0xc940, 0x01}, + {0xc941, 0x01}, + {0xc942, 0x01}, + {0xc943, 0x01}, + {0xc944, 0x01}, + {0xc945, 0x01}, + {0xc946, 0x01}, + {0xc947, 0x01}, + {0xc948, 0x01}, + {0xc94a, 0x01}, + {0xc94b, 0x01}, + {0xc94c, 0x01}, + {0xc94d, 0x01}, + {0xc94e, 0x01}, + {0xc94f, 0x01}, + {0xc950, 0x01}, + {0xc951, 0x01}, + {0xc952, 0x01}, + {0xc953, 0x01}, + {0xc954, 0x01}, + {0xc955, 0x01}, + {0xc956, 0x01}, + {0xc957, 0x01}, + {0xc958, 0x01}, + {0xc959, 0x01}, + {0xc95a, 0x01}, + {0xc95b, 0x01}, + {0xc95c, 0x01}, + {0xc95d, 0x01}, + {0xc95e, 0x01}, + {0xc95f, 0x01}, + {0xc960, 0x01}, + {0xc961, 0x01}, + {0xc962, 0x01}, + {0xc963, 0x01}, + {0xc964, 0x01}, + {0xc965, 0x01}, + {0xc966, 0x01}, + {0xc967, 0x01}, + {0xc968, 0x01}, + {0xc969, 0x01}, + {0xc96a, 0x01}, + {0xc96b, 0x01}, + {0xc96c, 0x01}, + {0xc96d, 0x01}, + {0xc96e, 0x01}, + {0xc96f, 0x01}, + {0xc970, 0x01}, + {0xc971, 0x01}, + {0xc972, 0x01}, + {0xc973, 0x01}, + {0xc974, 0x01}, + {0xc975, 0x01}, + {0xc976, 0x01}, + {0xc977, 0x01}, + {0xc978, 0x01}, + {0xc979, 0x01}, + {0xc97a, 0x01}, + {0xc97b, 0x01}, + {0xc97c, 0x01}, + {0xc97d, 0x01}, + {0xc97e, 0x01}, + {0xc980, 0x01}, + {0xc981, 0x01}, + {0xc982, 0x01}, + {0xc983, 0x01}, + {0xc984, 0x01}, + {0xc986, 0x01}, + {0xc987, 0x01}, + {0xc988, 0x01}, + {0xc989, 0x01}, + {0xc98a, 0x01}, + {0xc98b, 0x01}, + {0xc98c, 0x01}, + {0xc98d, 0x01}, + {0xc98e, 0x01}, + {0xc98f, 0x01}, + {0xc990, 0x01}, + {0xc991, 0x01}, + {0xc992, 0x01}, + {0xc993, 0x01}, + {0xc994, 0x01}, + {0xc995, 0x01}, + {0xc996, 0x01}, + {0xc997, 0x01}, + {0xc998, 0x01}, + {0xc999, 0x01}, + {0xc99a, 0x01}, + {0xc99b, 0x01}, + {0xc99c, 0x01}, + {0xc99d, 0x01}, + {0xc99e, 0x01}, + {0xc99f, 0x01}, + {0xc9a0, 0x01}, + {0xc9a1, 0x01}, + {0xc9a2, 0x01}, + {0xc9a3, 0x01}, + {0xc9a4, 0x01}, + {0xc9a5, 0x01}, + {0xc9a6, 0x01}, + {0xc9a7, 0x01}, + {0xc9a8, 0x01}, + {0xc9a9, 0x01}, + {0xc9aa, 0x01}, + {0xc9ab, 0x01}, + {0xc9ac, 0x01}, + {0xc9ad, 0x01}, + {0xc9ae, 0x01}, + {0xc9af, 0x01}, + {0xc9b0, 0x01}, + {0xc9b1, 0x01}, + {0xc9b2, 0x01}, + {0xc9b3, 0x01}, + {0xc9b4, 0x01}, + {0xc9b5, 0x01}, + {0xc9b6, 0x01}, + {0xc9b7, 0x01}, + {0xc9b8, 0x01}, + {0xc9b9, 0x01}, + {0xc9ba, 0x01}, + {0xc9bb, 0x01}, + {0xc9bc, 0x01}, + {0xc9bd, 0x01}, + {0xc9be, 0x01}, + {0xc9bf, 0x01}, + {0xc9c0, 0x01}, + {0xc9c1, 0x01}, + {0xc9c2, 0x01}, + {0xc9c3, 0x01}, + {0xc9c4, 0x01}, + {0xc9c5, 0x01}, + {0xc9c6, 0x01}, + {0xc9c7, 0x01}, + {0xc9c8, 0x01}, + {0xc9c9, 0x01}, + {0xc9ca, 0x01}, + {0xc9cb, 0x01}, + {0xc9cc, 0x01}, + {0xc9cd, 0x01}, + {0xc9ce, 0x01}, + {0xc9cf, 0x01}, + {0xc9d0, 0x01}, + {0xc9d1, 0x01}, + {0xc9d2, 0x01}, + {0xc9d3, 0x01}, + {0xc9d4, 0x01}, + {0xc9d5, 0x01}, + {0xc9d6, 0x01}, + {0xc9d7, 0x01}, + {0xc9d8, 0x01}, + {0xc9d9, 0x01}, + {0xc9da, 0x01}, + {0xc9db, 0x01}, + {0xc9dc, 0x01}, + {0xc9dd, 0x01}, + {0xc9de, 0x01}, + {0xc9df, 0x01}, + {0xc9e0, 0x01}, + {0xc9e1, 0x01}, + {0xc9e2, 0x01}, + {0xc9e3, 0x01}, + {0xc9e4, 0x01}, + {0xc9e5, 0x01}, + {0xc9e6, 0x01}, + {0xc9e7, 0x01}, + {0xc9e8, 0x01}, + {0xc9e9, 0x01}, + {0xc9ea, 0x01}, + {0xc9eb, 0x01}, + {0xc9ec, 0x01}, + {0xc9ed, 0x01}, + {0xc9ee, 0x01}, + {0xc9ef, 0x01}, + {0xc9f0, 0x01}, + {0xc9f1, 0x01}, + {0xc9f2, 0x01}, + {0xc9f3, 0x01}, + {0xc9f4, 0x01}, + {0xc9f5, 0x01}, + {0xc9f6, 0x01}, + {0xc9f7, 0x01}, + {0xc9f8, 0x01}, + {0xc9f9, 0x01}, + {0xc9fa, 0x01}, + {0xc9fb, 0x01}, + {0xc9fc, 0x01}, + {0xc9fd, 0x01}, + {0xc9fe, 0x01}, + {0xca40, 0x01}, + {0xca41, 0x01}, + {0xca42, 0x01}, + {0xca43, 0x01}, + {0xca44, 0x01}, + {0xca45, 0x01}, + {0xca46, 0x01}, + {0xca47, 0x01}, + {0xca48, 0x01}, + {0xca49, 0x01}, + {0xca4a, 0x01}, + {0xca4b, 0x01}, + {0xca4c, 0x01}, + {0xca4d, 0x01}, + {0xca4e, 0x01}, + {0xca4f, 0x01}, + {0xca50, 0x01}, + {0xca51, 0x01}, + {0xca52, 0x01}, + {0xca53, 0x01}, + {0xca54, 0x01}, + {0xca55, 0x01}, + {0xca56, 0x01}, + {0xca57, 0x01}, + {0xca58, 0x01}, + {0xca59, 0x01}, + {0xca5a, 0x01}, + {0xca5b, 0x01}, + {0xca5c, 0x01}, + {0xca5d, 0x01}, + {0xca5e, 0x01}, + {0xca5f, 0x01}, + {0xca60, 0x01}, + {0xca61, 0x01}, + {0xca62, 0x01}, + {0xca63, 0x01}, + {0xca64, 0x01}, + {0xca65, 0x01}, + {0xca66, 0x01}, + {0xca67, 0x01}, + {0xca68, 0x01}, + {0xca69, 0x01}, + {0xca6a, 0x01}, + {0xca6b, 0x01}, + {0xca6c, 0x01}, + {0xca6d, 0x01}, + {0xca6e, 0x01}, + {0xca6f, 0x01}, + {0xca70, 0x01}, + {0xca71, 0x01}, + {0xca72, 0x01}, + {0xca73, 0x01}, + {0xca74, 0x01}, + {0xca75, 0x01}, + {0xca76, 0x01}, + {0xca77, 0x01}, + {0xca78, 0x01}, + {0xca79, 0x01}, + {0xca7a, 0x01}, + {0xca7b, 0x01}, + {0xca7c, 0x01}, + {0xca7d, 0x01}, + {0xca7e, 0x01}, + {0xca80, 0x01}, + {0xca81, 0x01}, + {0xca82, 0x01}, + {0xca83, 0x01}, + {0xca84, 0x01}, + {0xca85, 0x01}, + {0xca86, 0x01}, + {0xca87, 0x01}, + {0xca88, 0x01}, + {0xca89, 0x01}, + {0xca8a, 0x01}, + {0xca8b, 0x01}, + {0xca8c, 0x01}, + {0xca8d, 0x01}, + {0xca8e, 0x01}, + {0xca8f, 0x01}, + {0xca90, 0x01}, + {0xca91, 0x01}, + {0xca92, 0x01}, + {0xca93, 0x01}, + {0xca94, 0x01}, + {0xca95, 0x01}, + {0xca96, 0x01}, + {0xca97, 0x01}, + {0xca98, 0x01}, + {0xca99, 0x01}, + {0xca9a, 0x01}, + {0xca9b, 0x01}, + {0xca9c, 0x01}, + {0xca9d, 0x01}, + {0xca9e, 0x01}, + {0xca9f, 0x01}, + {0xcaa0, 0x01}, + {0xcaa1, 0x01}, + {0xcaa2, 0x01}, + {0xcaa3, 0x01}, + {0xcaa4, 0x01}, + {0xcaa5, 0x01}, + {0xcaa6, 0x01}, + {0xcaa7, 0x01}, + {0xcaa8, 0x01}, + {0xcaa9, 0x01}, + {0xcaaa, 0x01}, + {0xcaab, 0x01}, + {0xcaac, 0x01}, + {0xcaad, 0x01}, + {0xcaae, 0x01}, + {0xcaaf, 0x01}, + {0xcab0, 0x01}, + {0xcab1, 0x01}, + {0xcab2, 0x01}, + {0xcab3, 0x01}, + {0xcab4, 0x01}, + {0xcab5, 0x01}, + {0xcab6, 0x01}, + {0xcab7, 0x01}, + {0xcab8, 0x01}, + {0xcab9, 0x01}, + {0xcaba, 0x01}, + {0xcabb, 0x01}, + {0xcabc, 0x01}, + {0xcabd, 0x01}, + {0xcabe, 0x01}, + {0xcabf, 0x01}, + {0xcac0, 0x01}, + {0xcac1, 0x01}, + {0xcac2, 0x01}, + {0xcac3, 0x01}, + {0xcac4, 0x01}, + {0xcac5, 0x01}, + {0xcac6, 0x01}, + {0xcac7, 0x01}, + {0xcac8, 0x01}, + {0xcac9, 0x01}, + {0xcaca, 0x01}, + {0xcacb, 0x01}, + {0xcacc, 0x01}, + {0xcacd, 0x01}, + {0xcace, 0x01}, + {0xcacf, 0x01}, + {0xcad0, 0x01}, + {0xcad1, 0x01}, + {0xcad2, 0x01}, + {0xcad3, 0x01}, + {0xcad4, 0x01}, + {0xcad5, 0x01}, + {0xcad6, 0x01}, + {0xcad7, 0x01}, + {0xcad8, 0x01}, + {0xcad9, 0x01}, + {0xcada, 0x01}, + {0xcadb, 0x01}, + {0xcadc, 0x01}, + {0xcadd, 0x01}, + {0xcade, 0x01}, + {0xcadf, 0x01}, + {0xcae0, 0x01}, + {0xcae1, 0x01}, + {0xcae2, 0x01}, + {0xcae3, 0x01}, + {0xcae4, 0x01}, + {0xcae5, 0x01}, + {0xcae6, 0x01}, + {0xcae7, 0x01}, + {0xcae8, 0x01}, + {0xcae9, 0x01}, + {0xcaea, 0x01}, + {0xcaeb, 0x01}, + {0xcaec, 0x01}, + {0xcaed, 0x01}, + {0xcaee, 0x01}, + {0xcaef, 0x01}, + {0xcaf0, 0x01}, + {0xcaf1, 0x01}, + {0xcaf2, 0x01}, + {0xcaf3, 0x01}, + {0xcaf4, 0x01}, + {0xcaf5, 0x01}, + {0xcaf6, 0x01}, + {0xcaf7, 0x01}, + {0xcaf8, 0x01}, + {0xcaf9, 0x01}, + {0xcafa, 0x01}, + {0xcafb, 0x01}, + {0xcafc, 0x01}, + {0xcafd, 0x01}, + {0xcafe, 0x01}, + {0xcb40, 0x01}, + {0xcb41, 0x01}, + {0xcb42, 0x01}, + {0xcb43, 0x01}, + {0xcb44, 0x01}, + {0xcb45, 0x01}, + {0xcb46, 0x01}, + {0xcb47, 0x01}, + {0xcb48, 0x01}, + {0xcb49, 0x01}, + {0xcb4a, 0x01}, + {0xcb4b, 0x01}, + {0xcb4c, 0x01}, + {0xcb4d, 0x01}, + {0xcb4e, 0x01}, + {0xcb4f, 0x01}, + {0xcb50, 0x01}, + {0xcb51, 0x01}, + {0xcb52, 0x01}, + {0xcb53, 0x01}, + {0xcb54, 0x01}, + {0xcb55, 0x01}, + {0xcb56, 0x01}, + {0xcb57, 0x01}, + {0xcb58, 0x01}, + {0xcb59, 0x01}, + {0xcb5a, 0x01}, + {0xcb5b, 0x01}, + {0xcb5c, 0x01}, + {0xcb5d, 0x01}, + {0xcb5e, 0x01}, + {0xcb5f, 0x01}, + {0xcb60, 0x01}, + {0xcb61, 0x01}, + {0xcb62, 0x01}, + {0xcb63, 0x01}, + {0xcb64, 0x01}, + {0xcb65, 0x01}, + {0xcb66, 0x01}, + {0xcb67, 0x01}, + {0xcb68, 0x01}, + {0xcb69, 0x01}, + {0xcb6a, 0x01}, + {0xcb6b, 0x01}, + {0xcb6c, 0x01}, + {0xcb6d, 0x01}, + {0xcb6e, 0x01}, + {0xcb6f, 0x01}, + {0xcb70, 0x01}, + {0xcb71, 0x01}, + {0xcb72, 0x01}, + {0xcb73, 0x01}, + {0xcb74, 0x01}, + {0xcb75, 0x01}, + {0xcb76, 0x01}, + {0xcb77, 0x01}, + {0xcb78, 0x01}, + {0xcb79, 0x01}, + {0xcb7a, 0x01}, + {0xcb7b, 0x01}, + {0xcb7c, 0x01}, + {0xcb7d, 0x01}, + {0xcb7e, 0x01}, + {0xcb81, 0x01}, + {0xcb82, 0x01}, + {0xcb83, 0x01}, + {0xcb84, 0x01}, + {0xcb85, 0x01}, + {0xcb86, 0x01}, + {0xcb87, 0x01}, + {0xcb88, 0x01}, + {0xcb89, 0x01}, + {0xcb8a, 0x01}, + {0xcb8b, 0x01}, + {0xcb8c, 0x01}, + {0xcb8d, 0x01}, + {0xcb8e, 0x01}, + {0xcb8f, 0x01}, + {0xcb90, 0x01}, + {0xcb91, 0x01}, + {0xcb92, 0x01}, + {0xcb93, 0x01}, + {0xcb94, 0x01}, + {0xcb95, 0x01}, + {0xcb96, 0x01}, + {0xcb97, 0x01}, + {0xcb98, 0x01}, + {0xcb99, 0x01}, + {0xcb9a, 0x01}, + {0xcb9b, 0x01}, + {0xcb9c, 0x01}, + {0xcb9d, 0x01}, + {0xcb9e, 0x01}, + {0xcb9f, 0x01}, + {0xcba0, 0x01}, + {0xcba1, 0x01}, + {0xcba2, 0x01}, + {0xcba3, 0x01}, + {0xcba4, 0x01}, + {0xcba5, 0x01}, + {0xcba6, 0x01}, + {0xcba7, 0x01}, + {0xcba8, 0x01}, + {0xcba9, 0x01}, + {0xcbaa, 0x01}, + {0xcbab, 0x01}, + {0xcbac, 0x01}, + {0xcbad, 0x01}, + {0xcbae, 0x01}, + {0xcbaf, 0x01}, + {0xcbb0, 0x01}, + {0xcbb1, 0x01}, + {0xcbb2, 0x01}, + {0xcbb3, 0x01}, + {0xcbb4, 0x01}, + {0xcbb5, 0x01}, + {0xcbb6, 0x01}, + {0xcbb7, 0x01}, + {0xcbb8, 0x01}, + {0xcbb9, 0x01}, + {0xcbba, 0x01}, + {0xcbbb, 0x01}, + {0xcbbc, 0x01}, + {0xcbbd, 0x01}, + {0xcbbe, 0x01}, + {0xcbbf, 0x01}, + {0xcbc0, 0x01}, + {0xcbc1, 0x01}, + {0xcbc2, 0x01}, + {0xcbc3, 0x01}, + {0xcbc4, 0x01}, + {0xcbc5, 0x01}, + {0xcbc6, 0x01}, + {0xcbc7, 0x01}, + {0xcbc8, 0x01}, + {0xcbc9, 0x01}, + {0xcbca, 0x01}, + {0xcbcb, 0x01}, + {0xcbcc, 0x01}, + {0xcbcd, 0x01}, + {0xcbce, 0x01}, + {0xcbcf, 0x01}, + {0xcbd0, 0x01}, + {0xcbd1, 0x01}, + {0xcbd2, 0x01}, + {0xcbd3, 0x01}, + {0xcbd4, 0x01}, + {0xcbd5, 0x01}, + {0xcbd6, 0x01}, + {0xcbd7, 0x01}, + {0xcbd8, 0x01}, + {0xcbd9, 0x01}, + {0xcbda, 0x01}, + {0xcbdb, 0x01}, + {0xcbdc, 0x01}, + {0xcbdd, 0x01}, + {0xcbde, 0x01}, + {0xcbdf, 0x01}, + {0xcbe0, 0x01}, + {0xcbe1, 0x01}, + {0xcbe2, 0x01}, + {0xcbe3, 0x01}, + {0xcbe4, 0x01}, + {0xcbe5, 0x01}, + {0xcbe6, 0x01}, + {0xcbe7, 0x01}, + {0xcbe8, 0x01}, + {0xcbe9, 0x01}, + {0xcbea, 0x01}, + {0xcbeb, 0x01}, + {0xcbec, 0x01}, + {0xcbed, 0x01}, + {0xcbee, 0x01}, + {0xcbef, 0x01}, + {0xcbf0, 0x01}, + {0xcbf1, 0x01}, + {0xcbf2, 0x01}, + {0xcbf3, 0x01}, + {0xcbf4, 0x01}, + {0xcbf5, 0x01}, + {0xcbf6, 0x01}, + {0xcbf7, 0x01}, + {0xcbf8, 0x01}, + {0xcbf9, 0x01}, + {0xcbfa, 0x01}, + {0xcbfb, 0x01}, + {0xcbfc, 0x01}, + {0xcbfd, 0x01}, + {0xcbfe, 0x01}, + {0xcc40, 0x01}, + {0xcc41, 0x01}, + {0xcc42, 0x01}, + {0xcc43, 0x01}, + {0xcc44, 0x01}, + {0xcc45, 0x01}, + {0xcc46, 0x01}, + {0xcc47, 0x01}, + {0xcc48, 0x01}, + {0xcc49, 0x01}, + {0xcc4a, 0x01}, + {0xcc4b, 0x01}, + {0xcc4c, 0x01}, + {0xcc4d, 0x01}, + {0xcc4e, 0x01}, + {0xcc4f, 0x01}, + {0xcc50, 0x01}, + {0xcc51, 0x01}, + {0xcc52, 0x01}, + {0xcc53, 0x01}, + {0xcc54, 0x01}, + {0xcc55, 0x01}, + {0xcc56, 0x01}, + {0xcc57, 0x01}, + {0xcc58, 0x01}, + {0xcc59, 0x01}, + {0xcc5a, 0x01}, + {0xcc5b, 0x01}, + {0xcc5c, 0x01}, + {0xcc5d, 0x01}, + {0xcc5e, 0x01}, + {0xcc5f, 0x01}, + {0xcc60, 0x01}, + {0xcc61, 0x01}, + {0xcc62, 0x01}, + {0xcc63, 0x01}, + {0xcc64, 0x01}, + {0xcc65, 0x01}, + {0xcc66, 0x01}, + {0xcc67, 0x01}, + {0xcc68, 0x01}, + {0xcc69, 0x01}, + {0xcc6a, 0x01}, + {0xcc6b, 0x01}, + {0xcc6c, 0x01}, + {0xcc6d, 0x01}, + {0xcc6e, 0x01}, + {0xcc6f, 0x01}, + {0xcc70, 0x01}, + {0xcc71, 0x01}, + {0xcc72, 0x01}, + {0xcc73, 0x01}, + {0xcc74, 0x01}, + {0xcc75, 0x01}, + {0xcc76, 0x01}, + {0xcc77, 0x01}, + {0xcc78, 0x01}, + {0xcc79, 0x01}, + {0xcc7a, 0x01}, + {0xcc7b, 0x01}, + {0xcc7c, 0x01}, + {0xcc7d, 0x01}, + {0xcc7e, 0x01}, + {0xcc80, 0x01}, + {0xcc81, 0x01}, + {0xcc82, 0x01}, + {0xcc83, 0x01}, + {0xcc84, 0x01}, + {0xcc85, 0x01}, + {0xcc86, 0x01}, + {0xcc87, 0x01}, + {0xcc88, 0x01}, + {0xcc89, 0x01}, + {0xcc8a, 0x01}, + {0xcc8b, 0x01}, + {0xcc8c, 0x01}, + {0xcc8d, 0x01}, + {0xcc8e, 0x01}, + {0xcc8f, 0x01}, + {0xcc90, 0x01}, + {0xcc91, 0x01}, + {0xcc92, 0x01}, + {0xcc93, 0x01}, + {0xcc94, 0x01}, + {0xcc95, 0x01}, + {0xcc96, 0x01}, + {0xcc97, 0x01}, + {0xcc98, 0x01}, + {0xcc99, 0x01}, + {0xcc9a, 0x01}, + {0xcc9b, 0x01}, + {0xcc9c, 0x01}, + {0xcc9d, 0x01}, + {0xcc9e, 0x01}, + {0xcc9f, 0x01}, + {0xcca0, 0x01}, + {0xcca1, 0x01}, + {0xcca2, 0x01}, + {0xcca3, 0x01}, + {0xcca4, 0x01}, + {0xcca5, 0x01}, + {0xcca6, 0x01}, + {0xcca7, 0x01}, + {0xcca8, 0x01}, + {0xcca9, 0x01}, + {0xccaa, 0x01}, + {0xccab, 0x01}, + {0xccac, 0x01}, + {0xccad, 0x01}, + {0xccae, 0x01}, + {0xccaf, 0x01}, + {0xccb0, 0x01}, + {0xccb1, 0x01}, + {0xccb2, 0x01}, + {0xccb3, 0x01}, + {0xccb4, 0x01}, + {0xccb5, 0x01}, + {0xccb6, 0x01}, + {0xccb7, 0x01}, + {0xccb8, 0x01}, + {0xccb9, 0x01}, + {0xccba, 0x01}, + {0xccbb, 0x01}, + {0xccbc, 0x01}, + {0xccbd, 0x01}, + {0xccbe, 0x01}, + {0xccbf, 0x01}, + {0xccc0, 0x01}, + {0xccc1, 0x01}, + {0xccc2, 0x01}, + {0xccc3, 0x01}, + {0xccc4, 0x01}, + {0xccc5, 0x01}, + {0xccc6, 0x01}, + {0xccc7, 0x01}, + {0xccc8, 0x01}, + {0xccc9, 0x01}, + {0xccca, 0x01}, + {0xcccb, 0x01}, + {0xcccc, 0x01}, + {0xcccd, 0x01}, + {0xccce, 0x01}, + {0xcccf, 0x01}, + {0xccd0, 0x01}, + {0xccd1, 0x01}, + {0xccd2, 0x01}, + {0xccd3, 0x01}, + {0xccd4, 0x01}, + {0xccd5, 0x01}, + {0xccd6, 0x01}, + {0xccd7, 0x01}, + {0xccd8, 0x01}, + {0xccd9, 0x01}, + {0xccda, 0x01}, + {0xccdb, 0x01}, + {0xccdc, 0x01}, + {0xccdd, 0x01}, + {0xccde, 0x01}, + {0xccdf, 0x01}, + {0xcce0, 0x01}, + {0xcce1, 0x01}, + {0xcce2, 0x01}, + {0xcce3, 0x01}, + {0xcce4, 0x01}, + {0xcce5, 0x01}, + {0xcce6, 0x01}, + {0xcce7, 0x01}, + {0xcce8, 0x01}, + {0xcce9, 0x01}, + {0xccea, 0x01}, + {0xcceb, 0x01}, + {0xccec, 0x01}, + {0xcced, 0x01}, + {0xccee, 0x01}, + {0xccef, 0x01}, + {0xccf0, 0x01}, + {0xccf1, 0x01}, + {0xccf2, 0x01}, + {0xccf3, 0x01}, + {0xccf4, 0x01}, + {0xccf5, 0x01}, + {0xccf6, 0x01}, + {0xccf7, 0x01}, + {0xccf8, 0x01}, + {0xccf9, 0x01}, + {0xccfa, 0x01}, + {0xccfb, 0x01}, + {0xccfc, 0x01}, + {0xccfd, 0x01}, + {0xccfe, 0x01}, + {0xcd40, 0x01}, + {0xcd41, 0x01}, + {0xcd42, 0x01}, + {0xcd44, 0x01}, + {0xcd45, 0x01}, + {0xcd46, 0x01}, + {0xcd47, 0x01}, + {0xcd48, 0x01}, + {0xcd49, 0x01}, + {0xcd4a, 0x01}, + {0xcd4b, 0x01}, + {0xcd4c, 0x01}, + {0xcd4d, 0x01}, + {0xcd4e, 0x01}, + {0xcd4f, 0x01}, + {0xcd50, 0x01}, + {0xcd51, 0x01}, + {0xcd52, 0x01}, + {0xcd53, 0x01}, + {0xcd54, 0x01}, + {0xcd55, 0x01}, + {0xcd56, 0x01}, + {0xcd57, 0x01}, + {0xcd58, 0x01}, + {0xcd59, 0x01}, + {0xcd5a, 0x01}, + {0xcd5b, 0x01}, + {0xcd5c, 0x01}, + {0xcd5d, 0x01}, + {0xcd5e, 0x01}, + {0xcd5f, 0x01}, + {0xcd60, 0x01}, + {0xcd61, 0x01}, + {0xcd62, 0x01}, + {0xcd63, 0x01}, + {0xcd64, 0x01}, + {0xcd65, 0x01}, + {0xcd66, 0x01}, + {0xcd67, 0x01}, + {0xcd68, 0x01}, + {0xcd69, 0x01}, + {0xcd6a, 0x01}, + {0xcd6b, 0x01}, + {0xcd6c, 0x01}, + {0xcd6d, 0x01}, + {0xcd6e, 0x01}, + {0xcd6f, 0x01}, + {0xcd70, 0x01}, + {0xcd71, 0x01}, + {0xcd72, 0x01}, + {0xcd73, 0x01}, + {0xcd74, 0x01}, + {0xcd75, 0x01}, + {0xcd76, 0x01}, + {0xcd77, 0x01}, + {0xcd78, 0x01}, + {0xcd79, 0x01}, + {0xcd7a, 0x01}, + {0xcd7b, 0x01}, + {0xcd7c, 0x01}, + {0xcd7d, 0x01}, + {0xcd7e, 0x01}, + {0xcd80, 0x01}, + {0xcd81, 0x01}, + {0xcd82, 0x01}, + {0xcd83, 0x01}, + {0xcd84, 0x01}, + {0xcd85, 0x01}, + {0xcd86, 0x01}, + {0xcd87, 0x01}, + {0xcd88, 0x01}, + {0xcd89, 0x01}, + {0xcd8a, 0x01}, + {0xcd8b, 0x01}, + {0xcd8c, 0x01}, + {0xcd8d, 0x01}, + {0xcd8e, 0x01}, + {0xcd8f, 0x01}, + {0xcd90, 0x01}, + {0xcd91, 0x01}, + {0xcd92, 0x01}, + {0xcd93, 0x01}, + {0xcd94, 0x01}, + {0xcd95, 0x01}, + {0xcd96, 0x01}, + {0xcd97, 0x01}, + {0xcd98, 0x01}, + {0xcd99, 0x01}, + {0xcd9a, 0x01}, + {0xcd9b, 0x01}, + {0xcd9c, 0x01}, + {0xcd9d, 0x01}, + {0xcd9e, 0x01}, + {0xcd9f, 0x01}, + {0xcda0, 0x01}, + {0xcda1, 0x01}, + {0xcda2, 0x01}, + {0xcda3, 0x01}, + {0xcda4, 0x01}, + {0xcda5, 0x01}, + {0xcda6, 0x01}, + {0xcda7, 0x01}, + {0xcda8, 0x01}, + {0xcda9, 0x01}, + {0xcdaa, 0x01}, + {0xcdab, 0x01}, + {0xcdac, 0x01}, + {0xcdad, 0x01}, + {0xcdae, 0x01}, + {0xcdaf, 0x01}, + {0xcdb0, 0x01}, + {0xcdb1, 0x01}, + {0xcdb2, 0x01}, + {0xcdb3, 0x01}, + {0xcdb4, 0x01}, + {0xcdb5, 0x01}, + {0xcdb6, 0x01}, + {0xcdb7, 0x01}, + {0xcdb8, 0x01}, + {0xcdb9, 0x01}, + {0xcdba, 0x01}, + {0xcdbb, 0x01}, + {0xcdbc, 0x01}, + {0xcdbd, 0x01}, + {0xcdbe, 0x01}, + {0xcdbf, 0x01}, + {0xcdc0, 0x01}, + {0xcdc1, 0x01}, + {0xcdc2, 0x01}, + {0xcdc3, 0x01}, + {0xcdc4, 0x01}, + {0xcdc5, 0x01}, + {0xcdc6, 0x01}, + {0xcdc7, 0x01}, + {0xcdc8, 0x01}, + {0xcdc9, 0x01}, + {0xcdca, 0x01}, + {0xcdcb, 0x01}, + {0xcdcc, 0x01}, + {0xcdcd, 0x01}, + {0xcdce, 0x01}, + {0xcdcf, 0x01}, + {0xcdd0, 0x01}, + {0xcdd1, 0x01}, + {0xcdd2, 0x01}, + {0xcdd3, 0x01}, + {0xcdd4, 0x01}, + {0xcdd5, 0x01}, + {0xcdd6, 0x01}, + {0xcdd7, 0x01}, + {0xcdd8, 0x01}, + {0xcdd9, 0x01}, + {0xcdda, 0x01}, + {0xcddb, 0x01}, + {0xcddc, 0x01}, + {0xcddd, 0x01}, + {0xcdde, 0x01}, + {0xcddf, 0x01}, + {0xcde0, 0x01}, + {0xcde1, 0x01}, + {0xcde2, 0x01}, + {0xcde3, 0x01}, + {0xcde4, 0x01}, + {0xcde5, 0x01}, + {0xcde6, 0x01}, + {0xcde7, 0x01}, + {0xcde8, 0x01}, + {0xcde9, 0x01}, + {0xcdea, 0x01}, + {0xcdeb, 0x01}, + {0xcdec, 0x01}, + {0xcded, 0x01}, + {0xcdee, 0x01}, + {0xcdef, 0x01}, + {0xcdf0, 0x01}, + {0xcdf1, 0x01}, + {0xcdf2, 0x01}, + {0xcdf3, 0x01}, + {0xcdf4, 0x01}, + {0xcdf5, 0x01}, + {0xcdf6, 0x01}, + {0xcdf7, 0x01}, + {0xcdf8, 0x01}, + {0xcdf9, 0x01}, + {0xcdfa, 0x01}, + {0xcdfb, 0x01}, + {0xcdfc, 0x01}, + {0xcdfd, 0x01}, + {0xcdfe, 0x01}, + {0xce40, 0x01}, + {0xce41, 0x01}, + {0xce42, 0x01}, + {0xce43, 0x01}, + {0xce44, 0x01}, + {0xce45, 0x01}, + {0xce46, 0x01}, + {0xce47, 0x01}, + {0xce48, 0x01}, + {0xce49, 0x01}, + {0xce4a, 0x01}, + {0xce4b, 0x01}, + {0xce4c, 0x01}, + {0xce4d, 0x01}, + {0xce4e, 0x01}, + {0xce4f, 0x01}, + {0xce50, 0x01}, + {0xce51, 0x01}, + {0xce52, 0x01}, + {0xce53, 0x01}, + {0xce54, 0x01}, + {0xce55, 0x01}, + {0xce56, 0x01}, + {0xce57, 0x01}, + {0xce58, 0x01}, + {0xce59, 0x01}, + {0xce5a, 0x01}, + {0xce5b, 0x01}, + {0xce5c, 0x01}, + {0xce5d, 0x01}, + {0xce5e, 0x01}, + {0xce60, 0x01}, + {0xce61, 0x01}, + {0xce62, 0x01}, + {0xce63, 0x01}, + {0xce64, 0x01}, + {0xce65, 0x01}, + {0xce66, 0x01}, + {0xce67, 0x01}, + {0xce68, 0x01}, + {0xce69, 0x01}, + {0xce6a, 0x01}, + {0xce6b, 0x01}, + {0xce6c, 0x01}, + {0xce6d, 0x01}, + {0xce6e, 0x01}, + {0xce6f, 0x01}, + {0xce70, 0x01}, + {0xce71, 0x01}, + {0xce72, 0x01}, + {0xce73, 0x01}, + {0xce74, 0x01}, + {0xce75, 0x01}, + {0xce76, 0x01}, + {0xce77, 0x01}, + {0xce78, 0x01}, + {0xce79, 0x01}, + {0xce7a, 0x01}, + {0xce7b, 0x01}, + {0xce7c, 0x01}, + {0xce7d, 0x01}, + {0xce7e, 0x01}, + {0xce80, 0x01}, + {0xce81, 0x01}, + {0xce82, 0x01}, + {0xce83, 0x01}, + {0xce84, 0x01}, + {0xce85, 0x01}, + {0xce86, 0x01}, + {0xce87, 0x01}, + {0xce88, 0x01}, + {0xce89, 0x01}, + {0xce8a, 0x01}, + {0xce8b, 0x01}, + {0xce8c, 0x01}, + {0xce8d, 0x01}, + {0xce8e, 0x01}, + {0xce8f, 0x01}, + {0xce90, 0x01}, + {0xce91, 0x01}, + {0xce92, 0x01}, + {0xce93, 0x01}, + {0xce94, 0x01}, + {0xce95, 0x01}, + {0xce96, 0x01}, + {0xce97, 0x01}, + {0xce98, 0x01}, + {0xce99, 0x01}, + {0xce9a, 0x01}, + {0xce9b, 0x01}, + {0xce9c, 0x01}, + {0xce9d, 0x01}, + {0xce9e, 0x01}, + {0xce9f, 0x01}, + {0xcea0, 0x01}, + {0xcea1, 0x01}, + {0xcea2, 0x01}, + {0xcea3, 0x01}, + {0xcea4, 0x01}, + {0xcea5, 0x01}, + {0xcea6, 0x01}, + {0xcea7, 0x01}, + {0xcea8, 0x01}, + {0xcea9, 0x01}, + {0xceaa, 0x01}, + {0xceab, 0x01}, + {0xceac, 0x01}, + {0xcead, 0x01}, + {0xceae, 0x01}, + {0xceaf, 0x01}, + {0xceb0, 0x01}, + {0xceb1, 0x01}, + {0xceb2, 0x01}, + {0xceb3, 0x01}, + {0xceb4, 0x01}, + {0xceb5, 0x01}, + {0xceb6, 0x01}, + {0xceb7, 0x01}, + {0xceb8, 0x01}, + {0xceb9, 0x01}, + {0xceba, 0x01}, + {0xcebb, 0x01}, + {0xcebc, 0x01}, + {0xcebd, 0x01}, + {0xcebe, 0x01}, + {0xcebf, 0x01}, + {0xcec0, 0x01}, + {0xcec1, 0x01}, + {0xcec2, 0x01}, + {0xcec3, 0x01}, + {0xcec4, 0x01}, + {0xcec5, 0x01}, + {0xcec6, 0x01}, + {0xcec7, 0x01}, + {0xcec8, 0x01}, + {0xcec9, 0x01}, + {0xceca, 0x01}, + {0xcecb, 0x01}, + {0xcecc, 0x01}, + {0xcecd, 0x01}, + {0xcece, 0x01}, + {0xcecf, 0x01}, + {0xced0, 0x01}, + {0xced1, 0x01}, + {0xced2, 0x01}, + {0xced3, 0x01}, + {0xced4, 0x01}, + {0xced5, 0x01}, + {0xced6, 0x01}, + {0xced7, 0x01}, + {0xced8, 0x01}, + {0xced9, 0x01}, + {0xceda, 0x01}, + {0xcedb, 0x01}, + {0xcedc, 0x01}, + {0xcedd, 0x01}, + {0xcede, 0x01}, + {0xcedf, 0x01}, + {0xcee0, 0x01}, + {0xcee1, 0x01}, + {0xcee2, 0x01}, + {0xcee3, 0x01}, + {0xcee4, 0x01}, + {0xcee5, 0x01}, + {0xcee6, 0x01}, + {0xcee7, 0x01}, + {0xcee8, 0x01}, + {0xcee9, 0x01}, + {0xceea, 0x01}, + {0xceeb, 0x01}, + {0xceec, 0x01}, + {0xceed, 0x01}, + {0xceee, 0x01}, + {0xceef, 0x01}, + {0xcef0, 0x01}, + {0xcef1, 0x01}, + {0xcef2, 0x01}, + {0xcef3, 0x01}, + {0xcef4, 0x01}, + {0xcef5, 0x01}, + {0xcef6, 0x01}, + {0xcef7, 0x01}, + {0xcef8, 0x01}, + {0xcef9, 0x01}, + {0xcefa, 0x01}, + {0xcefb, 0x01}, + {0xcefc, 0x01}, + {0xcefd, 0x01}, + {0xcefe, 0x01}, + {0xcf40, 0x01}, + {0xcf41, 0x01}, + {0xcf42, 0x01}, + {0xcf43, 0x01}, + {0xcf44, 0x01}, + {0xcf45, 0x01}, + {0xcf46, 0x01}, + {0xcf47, 0x01}, + {0xcf48, 0x01}, + {0xcf49, 0x01}, + {0xcf4a, 0x01}, + {0xcf4b, 0x01}, + {0xcf4c, 0x01}, + {0xcf4d, 0x01}, + {0xcf4e, 0x01}, + {0xcf4f, 0x01}, + {0xcf50, 0x01}, + {0xcf51, 0x01}, + {0xcf52, 0x01}, + {0xcf53, 0x01}, + {0xcf54, 0x01}, + {0xcf55, 0x01}, + {0xcf56, 0x01}, + {0xcf57, 0x01}, + {0xcf58, 0x01}, + {0xcf59, 0x01}, + {0xcf5a, 0x01}, + {0xcf5b, 0x01}, + {0xcf5c, 0x01}, + {0xcf5d, 0x01}, + {0xcf5e, 0x01}, + {0xcf5f, 0x01}, + {0xcf60, 0x01}, + {0xcf61, 0x01}, + {0xcf62, 0x01}, + {0xcf63, 0x01}, + {0xcf64, 0x01}, + {0xcf65, 0x01}, + {0xcf66, 0x01}, + {0xcf67, 0x01}, + {0xcf68, 0x01}, + {0xcf69, 0x01}, + {0xcf6a, 0x01}, + {0xcf6b, 0x01}, + {0xcf6c, 0x01}, + {0xcf6d, 0x01}, + {0xcf6e, 0x01}, + {0xcf6f, 0x01}, + {0xcf70, 0x01}, + {0xcf71, 0x01}, + {0xcf72, 0x01}, + {0xcf73, 0x01}, + {0xcf74, 0x01}, + {0xcf75, 0x01}, + {0xcf76, 0x01}, + {0xcf77, 0x01}, + {0xcf78, 0x01}, + {0xcf79, 0x01}, + {0xcf7a, 0x01}, + {0xcf7b, 0x01}, + {0xcf7c, 0x01}, + {0xcf7d, 0x01}, + {0xcf7e, 0x01}, + {0xcf80, 0x01}, + {0xcf81, 0x01}, + {0xcf82, 0x01}, + {0xcf83, 0x01}, + {0xcf84, 0x01}, + {0xcf85, 0x01}, + {0xcf86, 0x01}, + {0xcf87, 0x01}, + {0xcf88, 0x01}, + {0xcf89, 0x01}, + {0xcf8a, 0x01}, + {0xcf8b, 0x01}, + {0xcf8c, 0x01}, + {0xcf8d, 0x01}, + {0xcf8e, 0x01}, + {0xcf8f, 0x01}, + {0xcf90, 0x01}, + {0xcf91, 0x01}, + {0xcf92, 0x01}, + {0xcf93, 0x01}, + {0xcf94, 0x01}, + {0xcf95, 0x01}, + {0xcf96, 0x01}, + {0xcf97, 0x01}, + {0xcf98, 0x01}, + {0xcf99, 0x01}, + {0xcf9a, 0x01}, + {0xcf9b, 0x01}, + {0xcf9c, 0x01}, + {0xcf9d, 0x01}, + {0xcf9e, 0x01}, + {0xcf9f, 0x01}, + {0xcfa0, 0x01}, + {0xcfa1, 0x01}, + {0xcfa2, 0x01}, + {0xcfa3, 0x01}, + {0xcfa4, 0x01}, + {0xcfa5, 0x01}, + {0xcfa6, 0x01}, + {0xcfa7, 0x01}, + {0xcfa8, 0x01}, + {0xcfa9, 0x01}, + {0xcfaa, 0x01}, + {0xcfab, 0x01}, + {0xcfac, 0x01}, + {0xcfad, 0x01}, + {0xcfae, 0x01}, + {0xcfaf, 0x01}, + {0xcfb0, 0x01}, + {0xcfb1, 0x01}, + {0xcfb2, 0x01}, + {0xcfb3, 0x01}, + {0xcfb4, 0x01}, + {0xcfb5, 0x01}, + {0xcfb6, 0x01}, + {0xcfb7, 0x01}, + {0xcfb8, 0x01}, + {0xcfb9, 0x01}, + {0xcfba, 0x01}, + {0xcfbb, 0x01}, + {0xcfbc, 0x01}, + {0xcfbd, 0x01}, + {0xcfbe, 0x01}, + {0xcfbf, 0x01}, + {0xcfc0, 0x01}, + {0xcfc1, 0x01}, + {0xcfc2, 0x01}, + {0xcfc3, 0x01}, + {0xcfc4, 0x01}, + {0xcfc5, 0x01}, + {0xcfc6, 0x01}, + {0xcfc7, 0x01}, + {0xcfc8, 0x01}, + {0xcfc9, 0x01}, + {0xcfca, 0x01}, + {0xcfcb, 0x01}, + {0xcfcc, 0x01}, + {0xcfcd, 0x01}, + {0xcfce, 0x01}, + {0xcfcf, 0x01}, + {0xcfd0, 0x01}, + {0xcfd1, 0x01}, + {0xcfd2, 0x01}, + {0xcfd3, 0x01}, + {0xcfd4, 0x01}, + {0xcfd5, 0x01}, + {0xcfd6, 0x01}, + {0xcfd7, 0x01}, + {0xcfd8, 0x01}, + {0xcfd9, 0x01}, + {0xcfda, 0x01}, + {0xcfdb, 0x01}, + {0xcfdc, 0x01}, + {0xcfdd, 0x01}, + {0xcfde, 0x01}, + {0xcfdf, 0x01}, + {0xcfe0, 0x01}, + {0xcfe1, 0x01}, + {0xcfe2, 0x01}, + {0xcfe3, 0x01}, + {0xcfe4, 0x01}, + {0xcfe5, 0x01}, + {0xcfe6, 0x01}, + {0xcfe7, 0x01}, + {0xcfe8, 0x01}, + {0xcfe9, 0x01}, + {0xcfea, 0x01}, + {0xcfeb, 0x01}, + {0xcfec, 0x01}, + {0xcfed, 0x01}, + {0xcfee, 0x01}, + {0xcfef, 0x01}, + {0xcff0, 0x01}, + {0xcff1, 0x01}, + {0xcff2, 0x01}, + {0xcff3, 0x01}, + {0xcff4, 0x01}, + {0xcff5, 0x01}, + {0xcff6, 0x01}, + {0xcff7, 0x01}, + {0xcff8, 0x01}, + {0xcff9, 0x01}, + {0xcffa, 0x01}, + {0xcffb, 0x01}, + {0xcffc, 0x01}, + {0xcffd, 0x01}, + {0xcffe, 0x01}, + {0xd040, 0x01}, + {0xd041, 0x01}, + {0xd042, 0x01}, + {0xd043, 0x01}, + {0xd044, 0x01}, + {0xd045, 0x01}, + {0xd046, 0x01}, + {0xd047, 0x01}, + {0xd048, 0x01}, + {0xd049, 0x01}, + {0xd04a, 0x01}, + {0xd04b, 0x01}, + {0xd04c, 0x01}, + {0xd04d, 0x01}, + {0xd04e, 0x01}, + {0xd04f, 0x01}, + {0xd050, 0x01}, + {0xd051, 0x01}, + {0xd052, 0x01}, + {0xd053, 0x01}, + {0xd054, 0x01}, + {0xd055, 0x01}, + {0xd056, 0x01}, + {0xd057, 0x01}, + {0xd058, 0x01}, + {0xd059, 0x01}, + {0xd05a, 0x01}, + {0xd05b, 0x01}, + {0xd05c, 0x01}, + {0xd05d, 0x01}, + {0xd05e, 0x01}, + {0xd05f, 0x01}, + {0xd060, 0x01}, + {0xd061, 0x01}, + {0xd062, 0x01}, + {0xd063, 0x01}, + {0xd064, 0x01}, + {0xd065, 0x01}, + {0xd066, 0x01}, + {0xd067, 0x01}, + {0xd068, 0x01}, + {0xd069, 0x01}, + {0xd06a, 0x01}, + {0xd06b, 0x01}, + {0xd06c, 0x01}, + {0xd06d, 0x01}, + {0xd06e, 0x01}, + {0xd06f, 0x01}, + {0xd070, 0x01}, + {0xd071, 0x01}, + {0xd072, 0x01}, + {0xd073, 0x01}, + {0xd074, 0x01}, + {0xd075, 0x01}, + {0xd076, 0x01}, + {0xd077, 0x01}, + {0xd078, 0x01}, + {0xd079, 0x01}, + {0xd07a, 0x01}, + {0xd07b, 0x01}, + {0xd07c, 0x01}, + {0xd07d, 0x01}, + {0xd07e, 0x01}, + {0xd080, 0x01}, + {0xd081, 0x01}, + {0xd082, 0x01}, + {0xd083, 0x01}, + {0xd084, 0x01}, + {0xd085, 0x01}, + {0xd086, 0x01}, + {0xd087, 0x01}, + {0xd088, 0x01}, + {0xd089, 0x01}, + {0xd08a, 0x01}, + {0xd08b, 0x01}, + {0xd08c, 0x01}, + {0xd08d, 0x01}, + {0xd08e, 0x01}, + {0xd08f, 0x01}, + {0xd090, 0x01}, + {0xd091, 0x01}, + {0xd092, 0x01}, + {0xd093, 0x01}, + {0xd094, 0x01}, + {0xd095, 0x01}, + {0xd096, 0x01}, + {0xd097, 0x01}, + {0xd098, 0x01}, + {0xd099, 0x01}, + {0xd09a, 0x01}, + {0xd09b, 0x01}, + {0xd09c, 0x01}, + {0xd09d, 0x01}, + {0xd09e, 0x01}, + {0xd09f, 0x01}, + {0xd0a0, 0x01}, + {0xd0a1, 0x01}, + {0xd0a2, 0x01}, + {0xd0a3, 0x01}, + {0xd0a4, 0x01}, + {0xd0a5, 0x01}, + {0xd0a6, 0x01}, + {0xd0a7, 0x01}, + {0xd0a8, 0x01}, + {0xd0a9, 0x01}, + {0xd0aa, 0x01}, + {0xd0ab, 0x01}, + {0xd0ac, 0x01}, + {0xd0ad, 0x01}, + {0xd0ae, 0x01}, + {0xd0af, 0x01}, + {0xd0b0, 0x01}, + {0xd0b1, 0x01}, + {0xd0b2, 0x01}, + {0xd0b3, 0x01}, + {0xd0b4, 0x01}, + {0xd0b5, 0x01}, + {0xd0b6, 0x01}, + {0xd0b7, 0x01}, + {0xd0b8, 0x01}, + {0xd0b9, 0x01}, + {0xd0ba, 0x01}, + {0xd0bb, 0x01}, + {0xd0bc, 0x01}, + {0xd0bd, 0x01}, + {0xd0be, 0x01}, + {0xd0bf, 0x01}, + {0xd0c0, 0x01}, + {0xd0c1, 0x01}, + {0xd0c2, 0x01}, + {0xd0c3, 0x01}, + {0xd0c4, 0x01}, + {0xd0c5, 0x01}, + {0xd0c6, 0x01}, + {0xd0c7, 0x01}, + {0xd0c8, 0x01}, + {0xd0c9, 0x01}, + {0xd0ca, 0x01}, + {0xd0cb, 0x01}, + {0xd0cc, 0x01}, + {0xd0cd, 0x01}, + {0xd0ce, 0x01}, + {0xd0cf, 0x01}, + {0xd0d0, 0x01}, + {0xd0d1, 0x01}, + {0xd0d2, 0x01}, + {0xd0d3, 0x01}, + {0xd0d4, 0x01}, + {0xd0d5, 0x01}, + {0xd0d6, 0x01}, + {0xd0d7, 0x01}, + {0xd0d8, 0x01}, + {0xd0d9, 0x01}, + {0xd0da, 0x01}, + {0xd0db, 0x01}, + {0xd0dc, 0x01}, + {0xd0dd, 0x01}, + {0xd0de, 0x01}, + {0xd0df, 0x01}, + {0xd0e0, 0x01}, + {0xd0e1, 0x01}, + {0xd0e2, 0x01}, + {0xd0e3, 0x01}, + {0xd0e4, 0x01}, + {0xd0e5, 0x01}, + {0xd0e6, 0x01}, + {0xd0e7, 0x01}, + {0xd0e8, 0x01}, + {0xd0e9, 0x01}, + {0xd0ea, 0x01}, + {0xd0eb, 0x01}, + {0xd0ec, 0x01}, + {0xd0ed, 0x01}, + {0xd0ee, 0x01}, + {0xd0ef, 0x01}, + {0xd0f0, 0x01}, + {0xd0f1, 0x01}, + {0xd0f2, 0x01}, + {0xd0f3, 0x01}, + {0xd0f4, 0x01}, + {0xd0f5, 0x01}, + {0xd0f6, 0x01}, + {0xd0f7, 0x01}, + {0xd0f8, 0x01}, + {0xd0f9, 0x01}, + {0xd0fa, 0x01}, + {0xd0fb, 0x01}, + {0xd0fc, 0x01}, + {0xd0fd, 0x01}, + {0xd0fe, 0x01}, + {0xd140, 0x01}, + {0xd141, 0x01}, + {0xd142, 0x01}, + {0xd144, 0x01}, + {0xd145, 0x01}, + {0xd146, 0x01}, + {0xd147, 0x01}, + {0xd148, 0x01}, + {0xd149, 0x01}, + {0xd14a, 0x01}, + {0xd14b, 0x01}, + {0xd14c, 0x01}, + {0xd14d, 0x01}, + {0xd14e, 0x01}, + {0xd14f, 0x01}, + {0xd150, 0x01}, + {0xd151, 0x01}, + {0xd152, 0x01}, + {0xd153, 0x01}, + {0xd154, 0x01}, + {0xd155, 0x01}, + {0xd156, 0x01}, + {0xd157, 0x01}, + {0xd158, 0x01}, + {0xd159, 0x01}, + {0xd15a, 0x01}, + {0xd15b, 0x01}, + {0xd15c, 0x01}, + {0xd15d, 0x01}, + {0xd15e, 0x01}, + {0xd15f, 0x01}, + {0xd160, 0x01}, + {0xd161, 0x01}, + {0xd162, 0x01}, + {0xd163, 0x01}, + {0xd164, 0x01}, + {0xd165, 0x01}, + {0xd166, 0x01}, + {0xd167, 0x01}, + {0xd168, 0x01}, + {0xd169, 0x01}, + {0xd16a, 0x01}, + {0xd16b, 0x01}, + {0xd16c, 0x01}, + {0xd16d, 0x01}, + {0xd16e, 0x01}, + {0xd16f, 0x01}, + {0xd170, 0x01}, + {0xd171, 0x01}, + {0xd172, 0x01}, + {0xd173, 0x01}, + {0xd174, 0x01}, + {0xd175, 0x01}, + {0xd176, 0x01}, + {0xd177, 0x01}, + {0xd178, 0x01}, + {0xd179, 0x01}, + {0xd17a, 0x01}, + {0xd17b, 0x01}, + {0xd17c, 0x01}, + {0xd17d, 0x01}, + {0xd17e, 0x01}, + {0xd180, 0x01}, + {0xd181, 0x01}, + {0xd182, 0x01}, + {0xd183, 0x01}, + {0xd184, 0x01}, + {0xd185, 0x01}, + {0xd186, 0x01}, + {0xd187, 0x01}, + {0xd188, 0x01}, + {0xd189, 0x01}, + {0xd18a, 0x01}, + {0xd18b, 0x01}, + {0xd18c, 0x01}, + {0xd18d, 0x01}, + {0xd18e, 0x01}, + {0xd18f, 0x01}, + {0xd190, 0x01}, + {0xd191, 0x01}, + {0xd192, 0x01}, + {0xd193, 0x01}, + {0xd194, 0x01}, + {0xd195, 0x01}, + {0xd196, 0x01}, + {0xd197, 0x01}, + {0xd198, 0x01}, + {0xd199, 0x01}, + {0xd19a, 0x01}, + {0xd19b, 0x01}, + {0xd19c, 0x01}, + {0xd19d, 0x01}, + {0xd19e, 0x01}, + {0xd19f, 0x01}, + {0xd1a0, 0x01}, + {0xd1a1, 0x01}, + {0xd1a2, 0x01}, + {0xd1a3, 0x01}, + {0xd1a4, 0x01}, + {0xd1a5, 0x01}, + {0xd1a6, 0x01}, + {0xd1a7, 0x01}, + {0xd1a8, 0x01}, + {0xd1a9, 0x01}, + {0xd1aa, 0x01}, + {0xd1ab, 0x01}, + {0xd1ac, 0x01}, + {0xd1ad, 0x01}, + {0xd1ae, 0x01}, + {0xd1af, 0x01}, + {0xd1b0, 0x01}, + {0xd1b1, 0x01}, + {0xd1b2, 0x01}, + {0xd1b3, 0x01}, + {0xd1b4, 0x01}, + {0xd1b5, 0x01}, + {0xd1b6, 0x01}, + {0xd1b7, 0x01}, + {0xd1b8, 0x01}, + {0xd1b9, 0x01}, + {0xd1ba, 0x01}, + {0xd1bb, 0x01}, + {0xd1bc, 0x01}, + {0xd1bd, 0x01}, + {0xd1be, 0x01}, + {0xd1bf, 0x01}, + {0xd1c0, 0x01}, + {0xd1c1, 0x01}, + {0xd1c2, 0x01}, + {0xd1c3, 0x01}, + {0xd1c4, 0x01}, + {0xd1c5, 0x01}, + {0xd1c6, 0x01}, + {0xd1c7, 0x01}, + {0xd1c8, 0x01}, + {0xd1c9, 0x01}, + {0xd1ca, 0x01}, + {0xd1cb, 0x01}, + {0xd1cc, 0x01}, + {0xd1cd, 0x01}, + {0xd1ce, 0x01}, + {0xd1cf, 0x01}, + {0xd1d0, 0x01}, + {0xd1d1, 0x01}, + {0xd1d2, 0x01}, + {0xd1d3, 0x01}, + {0xd1d4, 0x01}, + {0xd1d5, 0x01}, + {0xd1d6, 0x01}, + {0xd1d7, 0x01}, + {0xd1d8, 0x01}, + {0xd1d9, 0x01}, + {0xd1da, 0x01}, + {0xd1db, 0x01}, + {0xd1dc, 0x01}, + {0xd1dd, 0x01}, + {0xd1de, 0x01}, + {0xd1df, 0x01}, + {0xd1e0, 0x01}, + {0xd1e1, 0x01}, + {0xd1e2, 0x01}, + {0xd1e3, 0x01}, + {0xd1e4, 0x01}, + {0xd1e5, 0x01}, + {0xd1e6, 0x01}, + {0xd1e7, 0x01}, + {0xd1e8, 0x01}, + {0xd1e9, 0x01}, + {0xd1ea, 0x01}, + {0xd1eb, 0x01}, + {0xd1ec, 0x01}, + {0xd1ed, 0x01}, + {0xd1ee, 0x01}, + {0xd1ef, 0x01}, + {0xd1f0, 0x01}, + {0xd1f1, 0x01}, + {0xd1f2, 0x01}, + {0xd1f3, 0x01}, + {0xd1f4, 0x01}, + {0xd1f5, 0x01}, + {0xd1f6, 0x01}, + {0xd1f7, 0x01}, + {0xd1f8, 0x01}, + {0xd1f9, 0x01}, + {0xd1fa, 0x01}, + {0xd1fb, 0x01}, + {0xd1fc, 0x01}, + {0xd1fd, 0x01}, + {0xd1fe, 0x01}, + {0xd240, 0x01}, + {0xd241, 0x01}, + {0xd242, 0x01}, + {0xd243, 0x01}, + {0xd244, 0x01}, + {0xd245, 0x01}, + {0xd246, 0x01}, + {0xd247, 0x01}, + {0xd248, 0x01}, + {0xd249, 0x01}, + {0xd24a, 0x01}, + {0xd24b, 0x01}, + {0xd24c, 0x01}, + {0xd24d, 0x01}, + {0xd24e, 0x01}, + {0xd24f, 0x01}, + {0xd250, 0x01}, + {0xd251, 0x01}, + {0xd252, 0x01}, + {0xd253, 0x01}, + {0xd254, 0x01}, + {0xd255, 0x01}, + {0xd256, 0x01}, + {0xd257, 0x01}, + {0xd258, 0x01}, + {0xd259, 0x01}, + {0xd25a, 0x01}, + {0xd25b, 0x01}, + {0xd25c, 0x01}, + {0xd25d, 0x01}, + {0xd25e, 0x01}, + {0xd25f, 0x01}, + {0xd260, 0x01}, + {0xd261, 0x01}, + {0xd262, 0x01}, + {0xd263, 0x01}, + {0xd264, 0x01}, + {0xd265, 0x01}, + {0xd266, 0x01}, + {0xd267, 0x01}, + {0xd268, 0x01}, + {0xd269, 0x01}, + {0xd26a, 0x01}, + {0xd26b, 0x01}, + {0xd26c, 0x01}, + {0xd26d, 0x01}, + {0xd26e, 0x01}, + {0xd26f, 0x01}, + {0xd270, 0x01}, + {0xd271, 0x01}, + {0xd272, 0x01}, + {0xd273, 0x01}, + {0xd274, 0x01}, + {0xd275, 0x01}, + {0xd276, 0x01}, + {0xd277, 0x01}, + {0xd278, 0x01}, + {0xd279, 0x01}, + {0xd27a, 0x01}, + {0xd27b, 0x01}, + {0xd27c, 0x01}, + {0xd27d, 0x01}, + {0xd27e, 0x01}, + {0xd280, 0x01}, + {0xd281, 0x01}, + {0xd282, 0x01}, + {0xd283, 0x01}, + {0xd284, 0x01}, + {0xd285, 0x01}, + {0xd286, 0x01}, + {0xd287, 0x01}, + {0xd288, 0x01}, + {0xd289, 0x01}, + {0xd28a, 0x01}, + {0xd28b, 0x01}, + {0xd28c, 0x01}, + {0xd28d, 0x01}, + {0xd28e, 0x01}, + {0xd28f, 0x01}, + {0xd290, 0x01}, + {0xd291, 0x01}, + {0xd292, 0x01}, + {0xd293, 0x01}, + {0xd294, 0x01}, + {0xd295, 0x01}, + {0xd296, 0x01}, + {0xd297, 0x01}, + {0xd298, 0x01}, + {0xd299, 0x01}, + {0xd29a, 0x01}, + {0xd29b, 0x01}, + {0xd29c, 0x01}, + {0xd29d, 0x01}, + {0xd29e, 0x01}, + {0xd29f, 0x01}, + {0xd2a0, 0x01}, + {0xd2a1, 0x01}, + {0xd2a2, 0x01}, + {0xd2a3, 0x01}, + {0xd2a4, 0x01}, + {0xd2a5, 0x01}, + {0xd2a6, 0x01}, + {0xd2a7, 0x01}, + {0xd2a8, 0x01}, + {0xd2a9, 0x01}, + {0xd2aa, 0x01}, + {0xd2ab, 0x01}, + {0xd2ac, 0x01}, + {0xd2ad, 0x01}, + {0xd2ae, 0x01}, + {0xd2af, 0x01}, + {0xd2b0, 0x01}, + {0xd2b1, 0x01}, + {0xd2b2, 0x01}, + {0xd2b3, 0x01}, + {0xd2b4, 0x01}, + {0xd2b5, 0x01}, + {0xd2b6, 0x01}, + {0xd2b7, 0x01}, + {0xd2b8, 0x01}, + {0xd2b9, 0x01}, + {0xd2ba, 0x01}, + {0xd2bb, 0x01}, + {0xd2bc, 0x01}, + {0xd2bd, 0x01}, + {0xd2be, 0x01}, + {0xd2bf, 0x01}, + {0xd2c0, 0x01}, + {0xd2c1, 0x01}, + {0xd2c2, 0x01}, + {0xd2c3, 0x01}, + {0xd2c4, 0x01}, + {0xd2c5, 0x01}, + {0xd2c6, 0x01}, + {0xd2c7, 0x01}, + {0xd2c8, 0x01}, + {0xd2c9, 0x01}, + {0xd2ca, 0x01}, + {0xd2cb, 0x01}, + {0xd2cc, 0x01}, + {0xd2cd, 0x01}, + {0xd2ce, 0x01}, + {0xd2cf, 0x01}, + {0xd2d0, 0x01}, + {0xd2d1, 0x01}, + {0xd2d2, 0x01}, + {0xd2d3, 0x01}, + {0xd2d4, 0x01}, + {0xd2d5, 0x01}, + {0xd2d6, 0x01}, + {0xd2d7, 0x01}, + {0xd2d8, 0x01}, + {0xd2d9, 0x01}, + {0xd2da, 0x01}, + {0xd2db, 0x01}, + {0xd2dc, 0x01}, + {0xd2dd, 0x01}, + {0xd2de, 0x01}, + {0xd2df, 0x01}, + {0xd2e0, 0x01}, + {0xd2e1, 0x01}, + {0xd2e2, 0x01}, + {0xd2e3, 0x01}, + {0xd2e4, 0x01}, + {0xd2e5, 0x01}, + {0xd2e6, 0x01}, + {0xd2e7, 0x01}, + {0xd2e8, 0x01}, + {0xd2e9, 0x01}, + {0xd2ea, 0x01}, + {0xd2eb, 0x01}, + {0xd2ec, 0x01}, + {0xd2ed, 0x01}, + {0xd2ee, 0x01}, + {0xd2ef, 0x01}, + {0xd2f0, 0x01}, + {0xd2f1, 0x01}, + {0xd2f2, 0x01}, + {0xd2f3, 0x01}, + {0xd2f4, 0x01}, + {0xd2f5, 0x01}, + {0xd2f6, 0x01}, + {0xd2f7, 0x01}, + {0xd2f8, 0x01}, + {0xd2f9, 0x01}, + {0xd2fa, 0x01}, + {0xd2fb, 0x01}, + {0xd2fc, 0x01}, + {0xd2fd, 0x01}, + {0xd2fe, 0x01}, + {0xd340, 0x01}, + {0xd341, 0x01}, + {0xd342, 0x01}, + {0xd343, 0x01}, + {0xd344, 0x01}, + {0xd345, 0x01}, + {0xd346, 0x01}, + {0xd347, 0x01}, + {0xd348, 0x01}, + {0xd349, 0x01}, + {0xd34a, 0x01}, + {0xd34b, 0x01}, + {0xd34c, 0x01}, + {0xd34d, 0x01}, + {0xd34e, 0x01}, + {0xd34f, 0x01}, + {0xd350, 0x01}, + {0xd351, 0x01}, + {0xd352, 0x01}, + {0xd353, 0x01}, + {0xd354, 0x01}, + {0xd355, 0x01}, + {0xd356, 0x01}, + {0xd357, 0x01}, + {0xd358, 0x01}, + {0xd359, 0x01}, + {0xd35a, 0x01}, + {0xd35b, 0x01}, + {0xd35c, 0x01}, + {0xd35d, 0x01}, + {0xd35e, 0x01}, + {0xd35f, 0x01}, + {0xd360, 0x01}, + {0xd361, 0x01}, + {0xd362, 0x01}, + {0xd363, 0x01}, + {0xd364, 0x01}, + {0xd365, 0x01}, + {0xd366, 0x01}, + {0xd367, 0x01}, + {0xd368, 0x01}, + {0xd369, 0x01}, + {0xd36a, 0x01}, + {0xd36b, 0x01}, + {0xd36c, 0x01}, + {0xd36d, 0x01}, + {0xd36e, 0x01}, + {0xd36f, 0x01}, + {0xd370, 0x01}, + {0xd371, 0x01}, + {0xd372, 0x01}, + {0xd373, 0x01}, + {0xd374, 0x01}, + {0xd375, 0x01}, + {0xd376, 0x01}, + {0xd377, 0x01}, + {0xd378, 0x01}, + {0xd379, 0x01}, + {0xd37a, 0x01}, + {0xd37b, 0x01}, + {0xd37c, 0x01}, + {0xd37d, 0x01}, + {0xd37e, 0x01}, + {0xd380, 0x01}, + {0xd381, 0x01}, + {0xd382, 0x01}, + {0xd383, 0x01}, + {0xd384, 0x01}, + {0xd385, 0x01}, + {0xd386, 0x01}, + {0xd387, 0x01}, + {0xd388, 0x01}, + {0xd389, 0x01}, + {0xd38a, 0x01}, + {0xd38b, 0x01}, + {0xd38c, 0x01}, + {0xd38d, 0x01}, + {0xd38e, 0x01}, + {0xd38f, 0x01}, + {0xd390, 0x01}, + {0xd391, 0x01}, + {0xd392, 0x01}, + {0xd393, 0x01}, + {0xd394, 0x01}, + {0xd395, 0x01}, + {0xd396, 0x01}, + {0xd397, 0x01}, + {0xd398, 0x01}, + {0xd399, 0x01}, + {0xd39a, 0x01}, + {0xd39b, 0x01}, + {0xd39c, 0x01}, + {0xd39d, 0x01}, + {0xd39e, 0x01}, + {0xd39f, 0x01}, + {0xd3a0, 0x01}, + {0xd3a1, 0x01}, + {0xd3a2, 0x01}, + {0xd3a3, 0x01}, + {0xd3a4, 0x01}, + {0xd3a5, 0x01}, + {0xd3a6, 0x01}, + {0xd3a7, 0x01}, + {0xd3a8, 0x01}, + {0xd3a9, 0x01}, + {0xd3aa, 0x01}, + {0xd3ab, 0x01}, + {0xd3ac, 0x01}, + {0xd3ad, 0x01}, + {0xd3ae, 0x01}, + {0xd3af, 0x01}, + {0xd3b0, 0x01}, + {0xd3b1, 0x01}, + {0xd3b2, 0x01}, + {0xd3b3, 0x01}, + {0xd3b4, 0x01}, + {0xd3b5, 0x01}, + {0xd3b6, 0x01}, + {0xd3b7, 0x01}, + {0xd3b8, 0x01}, + {0xd3b9, 0x01}, + {0xd3ba, 0x01}, + {0xd3bb, 0x01}, + {0xd3bc, 0x01}, + {0xd3bd, 0x01}, + {0xd3be, 0x01}, + {0xd3bf, 0x01}, + {0xd3c0, 0x01}, + {0xd3c1, 0x01}, + {0xd3c2, 0x01}, + {0xd3c3, 0x01}, + {0xd3c4, 0x01}, + {0xd3c5, 0x01}, + {0xd3c6, 0x01}, + {0xd3c7, 0x01}, + {0xd3c8, 0x01}, + {0xd3c9, 0x01}, + {0xd3ca, 0x01}, + {0xd3cb, 0x01}, + {0xd3cc, 0x01}, + {0xd3cd, 0x01}, + {0xd3ce, 0x01}, + {0xd3cf, 0x01}, + {0xd3d0, 0x01}, + {0xd3d1, 0x01}, + {0xd3d2, 0x01}, + {0xd3d3, 0x01}, + {0xd3d4, 0x01}, + {0xd3d5, 0x01}, + {0xd3d6, 0x01}, + {0xd3d7, 0x01}, + {0xd3d8, 0x01}, + {0xd3d9, 0x01}, + {0xd3da, 0x01}, + {0xd3db, 0x01}, + {0xd3dc, 0x01}, + {0xd3dd, 0x01}, + {0xd3de, 0x01}, + {0xd3df, 0x01}, + {0xd3e0, 0x01}, + {0xd3e1, 0x01}, + {0xd3e2, 0x01}, + {0xd3e3, 0x01}, + {0xd3e4, 0x01}, + {0xd3e5, 0x01}, + {0xd3e6, 0x01}, + {0xd3e7, 0x01}, + {0xd3e8, 0x01}, + {0xd3e9, 0x01}, + {0xd3ea, 0x01}, + {0xd3eb, 0x01}, + {0xd3ec, 0x01}, + {0xd3ed, 0x01}, + {0xd3ee, 0x01}, + {0xd3ef, 0x01}, + {0xd3f0, 0x01}, + {0xd3f1, 0x01}, + {0xd3f2, 0x01}, + {0xd3f3, 0x01}, + {0xd3f4, 0x01}, + {0xd3f5, 0x01}, + {0xd3f6, 0x01}, + {0xd3f7, 0x01}, + {0xd3f8, 0x01}, + {0xd3f9, 0x01}, + {0xd3fa, 0x01}, + {0xd3fb, 0x01}, + {0xd3fc, 0x01}, + {0xd3fd, 0x01}, + {0xd3fe, 0x01}, + {0xd440, 0x01}, + {0xd441, 0x01}, + {0xd442, 0x01}, + {0xd443, 0x01}, + {0xd444, 0x01}, + {0xd445, 0x01}, + {0xd446, 0x01}, + {0xd447, 0x01}, + {0xd448, 0x01}, + {0xd449, 0x01}, + {0xd44a, 0x01}, + {0xd44b, 0x01}, + {0xd44c, 0x01}, + {0xd44d, 0x01}, + {0xd44e, 0x01}, + {0xd44f, 0x01}, + {0xd450, 0x01}, + {0xd451, 0x01}, + {0xd452, 0x01}, + {0xd453, 0x01}, + {0xd454, 0x01}, + {0xd455, 0x01}, + {0xd456, 0x01}, + {0xd457, 0x01}, + {0xd458, 0x01}, + {0xd459, 0x01}, + {0xd45a, 0x01}, + {0xd45b, 0x01}, + {0xd45c, 0x01}, + {0xd45d, 0x01}, + {0xd45e, 0x01}, + {0xd45f, 0x01}, + {0xd460, 0x01}, + {0xd461, 0x01}, + {0xd462, 0x01}, + {0xd463, 0x01}, + {0xd464, 0x01}, + {0xd465, 0x01}, + {0xd466, 0x01}, + {0xd467, 0x01}, + {0xd468, 0x01}, + {0xd469, 0x01}, + {0xd46a, 0x01}, + {0xd46b, 0x01}, + {0xd46c, 0x01}, + {0xd46d, 0x01}, + {0xd46e, 0x01}, + {0xd46f, 0x01}, + {0xd470, 0x01}, + {0xd471, 0x01}, + {0xd472, 0x01}, + {0xd473, 0x01}, + {0xd474, 0x01}, + {0xd475, 0x01}, + {0xd476, 0x01}, + {0xd477, 0x01}, + {0xd478, 0x01}, + {0xd479, 0x01}, + {0xd47a, 0x01}, + {0xd47b, 0x01}, + {0xd47c, 0x01}, + {0xd47d, 0x01}, + {0xd47e, 0x01}, + {0xd480, 0x01}, + {0xd481, 0x01}, + {0xd482, 0x01}, + {0xd483, 0x01}, + {0xd484, 0x01}, + {0xd485, 0x01}, + {0xd486, 0x01}, + {0xd487, 0x01}, + {0xd488, 0x01}, + {0xd489, 0x01}, + {0xd48a, 0x01}, + {0xd48b, 0x01}, + {0xd48c, 0x01}, + {0xd48d, 0x01}, + {0xd48e, 0x01}, + {0xd48f, 0x01}, + {0xd490, 0x01}, + {0xd491, 0x01}, + {0xd492, 0x01}, + {0xd493, 0x01}, + {0xd494, 0x01}, + {0xd495, 0x01}, + {0xd496, 0x01}, + {0xd497, 0x01}, + {0xd498, 0x01}, + {0xd499, 0x01}, + {0xd49a, 0x01}, + {0xd49b, 0x01}, + {0xd49c, 0x01}, + {0xd49d, 0x01}, + {0xd49e, 0x01}, + {0xd49f, 0x01}, + {0xd4a0, 0x01}, + {0xd4a1, 0x01}, + {0xd4a2, 0x01}, + {0xd4a3, 0x01}, + {0xd4a4, 0x01}, + {0xd4a5, 0x01}, + {0xd4a6, 0x01}, + {0xd4a7, 0x01}, + {0xd4a8, 0x01}, + {0xd4a9, 0x01}, + {0xd4aa, 0x01}, + {0xd4ab, 0x01}, + {0xd4ac, 0x01}, + {0xd4ad, 0x01}, + {0xd4ae, 0x01}, + {0xd4af, 0x01}, + {0xd4b0, 0x01}, + {0xd4b1, 0x01}, + {0xd4b2, 0x01}, + {0xd4b3, 0x01}, + {0xd4b4, 0x01}, + {0xd4b5, 0x01}, + {0xd4b6, 0x01}, + {0xd4b7, 0x01}, + {0xd4b8, 0x01}, + {0xd4b9, 0x01}, + {0xd4ba, 0x01}, + {0xd4bb, 0x01}, + {0xd4bc, 0x01}, + {0xd4bd, 0x01}, + {0xd4be, 0x01}, + {0xd4bf, 0x01}, + {0xd4c0, 0x01}, + {0xd4c1, 0x01}, + {0xd4c2, 0x01}, + {0xd4c3, 0x01}, + {0xd4c4, 0x01}, + {0xd4c5, 0x01}, + {0xd4c6, 0x01}, + {0xd4c7, 0x01}, + {0xd4c8, 0x01}, + {0xd4c9, 0x01}, + {0xd4ca, 0x01}, + {0xd4cb, 0x01}, + {0xd4cc, 0x01}, + {0xd4cd, 0x01}, + {0xd4ce, 0x01}, + {0xd4cf, 0x01}, + {0xd4d0, 0x01}, + {0xd4d1, 0x01}, + {0xd4d2, 0x01}, + {0xd4d3, 0x01}, + {0xd4d4, 0x01}, + {0xd4d5, 0x01}, + {0xd4d6, 0x01}, + {0xd4d7, 0x01}, + {0xd4d8, 0x01}, + {0xd4d9, 0x01}, + {0xd4da, 0x01}, + {0xd4db, 0x01}, + {0xd4dc, 0x01}, + {0xd4dd, 0x01}, + {0xd4de, 0x01}, + {0xd4df, 0x01}, + {0xd4e0, 0x01}, + {0xd4e1, 0x01}, + {0xd4e2, 0x01}, + {0xd4e3, 0x01}, + {0xd4e4, 0x01}, + {0xd4e5, 0x01}, + {0xd4e6, 0x01}, + {0xd4e7, 0x01}, + {0xd4e8, 0x01}, + {0xd4e9, 0x01}, + {0xd4ea, 0x01}, + {0xd4eb, 0x01}, + {0xd4ec, 0x01}, + {0xd4ed, 0x01}, + {0xd4ee, 0x01}, + {0xd4ef, 0x01}, + {0xd4f0, 0x01}, + {0xd4f1, 0x01}, + {0xd4f2, 0x01}, + {0xd4f3, 0x01}, + {0xd4f4, 0x01}, + {0xd4f5, 0x01}, + {0xd4f6, 0x01}, + {0xd4f7, 0x01}, + {0xd4f8, 0x01}, + {0xd4f9, 0x01}, + {0xd4fa, 0x01}, + {0xd4fb, 0x01}, + {0xd4fc, 0x01}, + {0xd4fd, 0x01}, + {0xd4fe, 0x01}, + {0xd540, 0x01}, + {0xd541, 0x01}, + {0xd542, 0x01}, + {0xd543, 0x01}, + {0xd544, 0x01}, + {0xd545, 0x01}, + {0xd546, 0x01}, + {0xd547, 0x01}, + {0xd548, 0x01}, + {0xd549, 0x01}, + {0xd54a, 0x01}, + {0xd54b, 0x01}, + {0xd54c, 0x01}, + {0xd54d, 0x01}, + {0xd54e, 0x01}, + {0xd54f, 0x01}, + {0xd550, 0x01}, + {0xd551, 0x01}, + {0xd552, 0x01}, + {0xd553, 0x01}, + {0xd554, 0x01}, + {0xd555, 0x01}, + {0xd556, 0x01}, + {0xd557, 0x01}, + {0xd558, 0x01}, + {0xd559, 0x01}, + {0xd55a, 0x01}, + {0xd55b, 0x01}, + {0xd55c, 0x01}, + {0xd55d, 0x01}, + {0xd55e, 0x01}, + {0xd55f, 0x01}, + {0xd560, 0x01}, + {0xd561, 0x01}, + {0xd562, 0x01}, + {0xd563, 0x01}, + {0xd564, 0x01}, + {0xd565, 0x01}, + {0xd566, 0x01}, + {0xd567, 0x01}, + {0xd568, 0x01}, + {0xd569, 0x01}, + {0xd56a, 0x01}, + {0xd56b, 0x01}, + {0xd56c, 0x01}, + {0xd56d, 0x01}, + {0xd56e, 0x01}, + {0xd56f, 0x01}, + {0xd570, 0x01}, + {0xd571, 0x01}, + {0xd572, 0x01}, + {0xd573, 0x01}, + {0xd574, 0x01}, + {0xd575, 0x01}, + {0xd576, 0x01}, + {0xd577, 0x01}, + {0xd578, 0x01}, + {0xd579, 0x01}, + {0xd57a, 0x01}, + {0xd57b, 0x01}, + {0xd57c, 0x01}, + {0xd57d, 0x01}, + {0xd57e, 0x01}, + {0xd580, 0x01}, + {0xd581, 0x01}, + {0xd582, 0x01}, + {0xd583, 0x01}, + {0xd584, 0x01}, + {0xd585, 0x01}, + {0xd586, 0x01}, + {0xd587, 0x01}, + {0xd588, 0x01}, + {0xd589, 0x01}, + {0xd58a, 0x01}, + {0xd58b, 0x01}, + {0xd58c, 0x01}, + {0xd58d, 0x01}, + {0xd58e, 0x01}, + {0xd58f, 0x01}, + {0xd590, 0x01}, + {0xd591, 0x01}, + {0xd592, 0x01}, + {0xd593, 0x01}, + {0xd594, 0x01}, + {0xd595, 0x01}, + {0xd596, 0x01}, + {0xd597, 0x01}, + {0xd598, 0x01}, + {0xd599, 0x01}, + {0xd59a, 0x01}, + {0xd59b, 0x01}, + {0xd59c, 0x01}, + {0xd59d, 0x01}, + {0xd59e, 0x01}, + {0xd59f, 0x01}, + {0xd5a0, 0x01}, + {0xd5a1, 0x01}, + {0xd5a2, 0x01}, + {0xd5a3, 0x01}, + {0xd5a4, 0x01}, + {0xd5a5, 0x01}, + {0xd5a6, 0x01}, + {0xd5a7, 0x01}, + {0xd5a8, 0x01}, + {0xd5a9, 0x01}, + {0xd5aa, 0x01}, + {0xd5ab, 0x01}, + {0xd5ac, 0x01}, + {0xd5ad, 0x01}, + {0xd5ae, 0x01}, + {0xd5af, 0x01}, + {0xd5b0, 0x01}, + {0xd5b1, 0x01}, + {0xd5b2, 0x01}, + {0xd5b3, 0x01}, + {0xd5b4, 0x01}, + {0xd5b5, 0x01}, + {0xd5b6, 0x01}, + {0xd5b7, 0x01}, + {0xd5b8, 0x01}, + {0xd5b9, 0x01}, + {0xd5ba, 0x01}, + {0xd5bb, 0x01}, + {0xd5bc, 0x01}, + {0xd5bd, 0x01}, + {0xd5be, 0x01}, + {0xd5bf, 0x01}, + {0xd5c0, 0x01}, + {0xd5c1, 0x01}, + {0xd5c2, 0x01}, + {0xd5c3, 0x01}, + {0xd5c4, 0x01}, + {0xd5c5, 0x01}, + {0xd5c6, 0x01}, + {0xd5c7, 0x01}, + {0xd5c8, 0x01}, + {0xd5c9, 0x01}, + {0xd5ca, 0x01}, + {0xd5cb, 0x01}, + {0xd5cc, 0x01}, + {0xd5cd, 0x01}, + {0xd5ce, 0x01}, + {0xd5cf, 0x01}, + {0xd5d0, 0x01}, + {0xd5d1, 0x01}, + {0xd5d2, 0x01}, + {0xd5d3, 0x01}, + {0xd5d4, 0x01}, + {0xd5d5, 0x01}, + {0xd5d6, 0x01}, + {0xd5d7, 0x01}, + {0xd5d8, 0x01}, + {0xd5d9, 0x01}, + {0xd5da, 0x01}, + {0xd5db, 0x01}, + {0xd5dc, 0x01}, + {0xd5dd, 0x01}, + {0xd5de, 0x01}, + {0xd5df, 0x01}, + {0xd5e0, 0x01}, + {0xd5e1, 0x01}, + {0xd5e2, 0x01}, + {0xd5e3, 0x01}, + {0xd5e4, 0x01}, + {0xd5e5, 0x01}, + {0xd5e6, 0x01}, + {0xd5e7, 0x01}, + {0xd5e8, 0x01}, + {0xd5e9, 0x01}, + {0xd5ea, 0x01}, + {0xd5eb, 0x01}, + {0xd5ec, 0x01}, + {0xd5ed, 0x01}, + {0xd5ee, 0x01}, + {0xd5ef, 0x01}, + {0xd5f0, 0x01}, + {0xd5f1, 0x01}, + {0xd5f2, 0x01}, + {0xd5f3, 0x01}, + {0xd5f4, 0x01}, + {0xd5f5, 0x01}, + {0xd5f6, 0x01}, + {0xd5f7, 0x01}, + {0xd5f8, 0x01}, + {0xd5f9, 0x01}, + {0xd5fa, 0x01}, + {0xd5fb, 0x01}, + {0xd5fc, 0x01}, + {0xd5fd, 0x01}, + {0xd5fe, 0x01}, + {0xd640, 0x01}, + {0xd641, 0x01}, + {0xd642, 0x01}, + {0xd643, 0x01}, + {0xd644, 0x01}, + {0xd645, 0x01}, + {0xd646, 0x01}, + {0xd647, 0x01}, + {0xd648, 0x01}, + {0xd649, 0x01}, + {0xd64a, 0x01}, + {0xd64b, 0x01}, + {0xd64c, 0x01}, + {0xd64d, 0x01}, + {0xd64e, 0x01}, + {0xd64f, 0x01}, + {0xd650, 0x01}, + {0xd651, 0x01}, + {0xd652, 0x01}, + {0xd653, 0x01}, + {0xd654, 0x01}, + {0xd655, 0x01}, + {0xd656, 0x01}, + {0xd657, 0x01}, + {0xd658, 0x01}, + {0xd659, 0x01}, + {0xd65a, 0x01}, + {0xd65b, 0x01}, + {0xd65c, 0x01}, + {0xd65d, 0x01}, + {0xd65e, 0x01}, + {0xd65f, 0x01}, + {0xd660, 0x01}, + {0xd661, 0x01}, + {0xd662, 0x01}, + {0xd663, 0x01}, + {0xd664, 0x01}, + {0xd665, 0x01}, + {0xd666, 0x01}, + {0xd667, 0x01}, + {0xd668, 0x01}, + {0xd669, 0x01}, + {0xd66a, 0x01}, + {0xd66b, 0x01}, + {0xd66c, 0x01}, + {0xd66d, 0x01}, + {0xd66e, 0x01}, + {0xd66f, 0x01}, + {0xd670, 0x01}, + {0xd671, 0x01}, + {0xd672, 0x01}, + {0xd673, 0x01}, + {0xd674, 0x01}, + {0xd675, 0x01}, + {0xd676, 0x01}, + {0xd677, 0x01}, + {0xd678, 0x01}, + {0xd679, 0x01}, + {0xd67a, 0x01}, + {0xd67b, 0x01}, + {0xd67c, 0x01}, + {0xd67d, 0x01}, + {0xd67e, 0x01}, + {0xd680, 0x01}, + {0xd681, 0x01}, + {0xd682, 0x01}, + {0xd683, 0x01}, + {0xd684, 0x01}, + {0xd685, 0x01}, + {0xd686, 0x01}, + {0xd687, 0x01}, + {0xd688, 0x01}, + {0xd689, 0x01}, + {0xd68a, 0x01}, + {0xd68b, 0x01}, + {0xd68c, 0x01}, + {0xd68d, 0x01}, + {0xd68e, 0x01}, + {0xd68f, 0x01}, + {0xd690, 0x01}, + {0xd691, 0x01}, + {0xd692, 0x01}, + {0xd693, 0x01}, + {0xd694, 0x01}, + {0xd695, 0x01}, + {0xd696, 0x01}, + {0xd697, 0x01}, + {0xd698, 0x01}, + {0xd699, 0x01}, + {0xd69a, 0x01}, + {0xd69b, 0x01}, + {0xd69c, 0x01}, + {0xd69d, 0x01}, + {0xd69e, 0x01}, + {0xd69f, 0x01}, + {0xd6a0, 0x01}, + {0xd6a1, 0x01}, + {0xd6a2, 0x01}, + {0xd6a3, 0x01}, + {0xd6a4, 0x01}, + {0xd6a5, 0x01}, + {0xd6a6, 0x01}, + {0xd6a7, 0x01}, + {0xd6a8, 0x01}, + {0xd6a9, 0x01}, + {0xd6aa, 0x01}, + {0xd6ab, 0x01}, + {0xd6ac, 0x01}, + {0xd6ad, 0x01}, + {0xd6ae, 0x01}, + {0xd6af, 0x01}, + {0xd6b0, 0x01}, + {0xd6b1, 0x01}, + {0xd6b2, 0x01}, + {0xd6b3, 0x01}, + {0xd6b4, 0x01}, + {0xd6b5, 0x01}, + {0xd6b6, 0x01}, + {0xd6b7, 0x01}, + {0xd6b8, 0x01}, + {0xd6b9, 0x01}, + {0xd6ba, 0x01}, + {0xd6bb, 0x01}, + {0xd6bc, 0x01}, + {0xd6bd, 0x01}, + {0xd6be, 0x01}, + {0xd6bf, 0x01}, + {0xd6c0, 0x01}, + {0xd6c1, 0x01}, + {0xd6c2, 0x01}, + {0xd6c3, 0x01}, + {0xd6c4, 0x01}, + {0xd6c5, 0x01}, + {0xd6c6, 0x01}, + {0xd6c7, 0x01}, + {0xd6c8, 0x01}, + {0xd6c9, 0x01}, + {0xd6ca, 0x01}, + {0xd6cb, 0x01}, + {0xd6cc, 0x01}, + {0xd6cd, 0x01}, + {0xd6ce, 0x01}, + {0xd6cf, 0x01}, + {0xd6d0, 0x01}, + {0xd6d1, 0x01}, + {0xd6d2, 0x01}, + {0xd6d3, 0x01}, + {0xd6d4, 0x01}, + {0xd6d5, 0x01}, + {0xd6d6, 0x01}, + {0xd6d7, 0x01}, + {0xd6d8, 0x01}, + {0xd6d9, 0x01}, + {0xd6da, 0x01}, + {0xd6db, 0x01}, + {0xd6dc, 0x01}, + {0xd6dd, 0x01}, + {0xd6de, 0x01}, + {0xd6df, 0x01}, + {0xd6e0, 0x01}, + {0xd6e1, 0x01}, + {0xd6e2, 0x01}, + {0xd6e3, 0x01}, + {0xd6e4, 0x01}, + {0xd6e5, 0x01}, + {0xd6e6, 0x01}, + {0xd6e7, 0x01}, + {0xd6e8, 0x01}, + {0xd6e9, 0x01}, + {0xd6ea, 0x01}, + {0xd6eb, 0x01}, + {0xd6ec, 0x01}, + {0xd6ed, 0x01}, + {0xd6ee, 0x01}, + {0xd6ef, 0x01}, + {0xd6f0, 0x01}, + {0xd6f1, 0x01}, + {0xd6f2, 0x01}, + {0xd6f3, 0x01}, + {0xd6f4, 0x01}, + {0xd6f5, 0x01}, + {0xd6f6, 0x01}, + {0xd6f7, 0x01}, + {0xd6f8, 0x01}, + {0xd6f9, 0x01}, + {0xd6fa, 0x01}, + {0xd6fb, 0x01}, + {0xd6fc, 0x01}, + {0xd6fd, 0x01}, + {0xd6fe, 0x01}, + {0xd740, 0x01}, + {0xd741, 0x01}, + {0xd742, 0x01}, + {0xd743, 0x01}, + {0xd744, 0x01}, + {0xd745, 0x01}, + {0xd746, 0x01}, + {0xd747, 0x01}, + {0xd748, 0x01}, + {0xd749, 0x01}, + {0xd74a, 0x01}, + {0xd74b, 0x01}, + {0xd74c, 0x01}, + {0xd74d, 0x01}, + {0xd74e, 0x01}, + {0xd74f, 0x01}, + {0xd750, 0x01}, + {0xd751, 0x01}, + {0xd752, 0x01}, + {0xd753, 0x01}, + {0xd754, 0x01}, + {0xd755, 0x01}, + {0xd756, 0x01}, + {0xd757, 0x01}, + {0xd758, 0x01}, + {0xd759, 0x01}, + {0xd75a, 0x01}, + {0xd75b, 0x01}, + {0xd75c, 0x01}, + {0xd75d, 0x01}, + {0xd75e, 0x01}, + {0xd75f, 0x01}, + {0xd760, 0x01}, + {0xd761, 0x01}, + {0xd762, 0x01}, + {0xd763, 0x01}, + {0xd764, 0x01}, + {0xd765, 0x01}, + {0xd766, 0x01}, + {0xd767, 0x01}, + {0xd768, 0x01}, + {0xd769, 0x01}, + {0xd76a, 0x01}, + {0xd76b, 0x01}, + {0xd76c, 0x01}, + {0xd76d, 0x01}, + {0xd76e, 0x01}, + {0xd76f, 0x01}, + {0xd770, 0x01}, + {0xd771, 0x01}, + {0xd772, 0x01}, + {0xd773, 0x01}, + {0xd774, 0x01}, + {0xd775, 0x01}, + {0xd776, 0x01}, + {0xd777, 0x01}, + {0xd778, 0x01}, + {0xd779, 0x01}, + {0xd77a, 0x01}, + {0xd77b, 0x01}, + {0xd77c, 0x01}, + {0xd77d, 0x01}, + {0xd77e, 0x01}, + {0xd780, 0x01}, + {0xd781, 0x01}, + {0xd782, 0x01}, + {0xd783, 0x01}, + {0xd784, 0x01}, + {0xd785, 0x01}, + {0xd786, 0x01}, + {0xd787, 0x01}, + {0xd788, 0x01}, + {0xd789, 0x01}, + {0xd78a, 0x01}, + {0xd78b, 0x01}, + {0xd78c, 0x01}, + {0xd78d, 0x01}, + {0xd78e, 0x01}, + {0xd78f, 0x01}, + {0xd790, 0x01}, + {0xd791, 0x01}, + {0xd792, 0x01}, + {0xd793, 0x01}, + {0xd794, 0x01}, + {0xd795, 0x01}, + {0xd796, 0x01}, + {0xd797, 0x01}, + {0xd798, 0x01}, + {0xd799, 0x01}, + {0xd79a, 0x01}, + {0xd79b, 0x01}, + {0xd79c, 0x01}, + {0xd79d, 0x01}, + {0xd79e, 0x01}, + {0xd79f, 0x01}, + {0xd7a0, 0x01}, + {0xd7a1, 0x01}, + {0xd7a2, 0x01}, + {0xd7a3, 0x01}, + {0xd7a4, 0x01}, + {0xd7a5, 0x01}, + {0xd7a6, 0x01}, + {0xd7a7, 0x01}, + {0xd7a8, 0x01}, + {0xd7a9, 0x01}, + {0xd7aa, 0x01}, + {0xd7ab, 0x01}, + {0xd7ac, 0x01}, + {0xd7ad, 0x01}, + {0xd7ae, 0x01}, + {0xd7af, 0x01}, + {0xd7b0, 0x01}, + {0xd7b1, 0x01}, + {0xd7b2, 0x01}, + {0xd7b3, 0x01}, + {0xd7b4, 0x01}, + {0xd7b5, 0x01}, + {0xd7b6, 0x01}, + {0xd7b7, 0x01}, + {0xd7b8, 0x01}, + {0xd7b9, 0x01}, + {0xd7ba, 0x01}, + {0xd7bb, 0x01}, + {0xd7bc, 0x01}, + {0xd7bd, 0x01}, + {0xd7be, 0x01}, + {0xd7bf, 0x01}, + {0xd7c0, 0x01}, + {0xd7c1, 0x01}, + {0xd7c2, 0x01}, + {0xd7c3, 0x01}, + {0xd7c4, 0x01}, + {0xd7c5, 0x01}, + {0xd7c6, 0x01}, + {0xd7c7, 0x01}, + {0xd7c8, 0x01}, + {0xd7c9, 0x01}, + {0xd7ca, 0x01}, + {0xd7cb, 0x01}, + {0xd7cc, 0x01}, + {0xd7cd, 0x01}, + {0xd7ce, 0x01}, + {0xd7cf, 0x01}, + {0xd7d0, 0x01}, + {0xd7d1, 0x01}, + {0xd7d2, 0x01}, + {0xd7d3, 0x01}, + {0xd7d4, 0x01}, + {0xd7d5, 0x01}, + {0xd7d6, 0x01}, + {0xd7d7, 0x01}, + {0xd7d8, 0x01}, + {0xd7d9, 0x01}, + {0xd7da, 0x01}, + {0xd7db, 0x01}, + {0xd7dc, 0x01}, + {0xd7dd, 0x01}, + {0xd7de, 0x01}, + {0xd7df, 0x01}, + {0xd7e0, 0x01}, + {0xd7e1, 0x01}, + {0xd7e2, 0x01}, + {0xd7e3, 0x01}, + {0xd7e4, 0x01}, + {0xd7e5, 0x01}, + {0xd7e6, 0x01}, + {0xd7e7, 0x01}, + {0xd7e8, 0x01}, + {0xd7e9, 0x01}, + {0xd7ea, 0x01}, + {0xd7eb, 0x01}, + {0xd7ec, 0x01}, + {0xd7ed, 0x01}, + {0xd7ee, 0x01}, + {0xd7ef, 0x01}, + {0xd7f0, 0x01}, + {0xd7f1, 0x01}, + {0xd7f2, 0x01}, + {0xd7f3, 0x01}, + {0xd7f4, 0x01}, + {0xd7f5, 0x01}, + {0xd7f6, 0x01}, + {0xd7f7, 0x01}, + {0xd7f8, 0x01}, + {0xd7f9, 0x01}, + {0xd840, 0x01}, + {0xd841, 0x01}, + {0xd842, 0x01}, + {0xd843, 0x01}, + {0xd844, 0x01}, + {0xd845, 0x01}, + {0xd846, 0x01}, + {0xd847, 0x01}, + {0xd848, 0x01}, + {0xd849, 0x01}, + {0xd84a, 0x01}, + {0xd84b, 0x01}, + {0xd84c, 0x01}, + {0xd84d, 0x01}, + {0xd84e, 0x01}, + {0xd84f, 0x01}, + {0xd850, 0x01}, + {0xd851, 0x01}, + {0xd852, 0x01}, + {0xd853, 0x01}, + {0xd854, 0x01}, + {0xd855, 0x01}, + {0xd856, 0x01}, + {0xd857, 0x01}, + {0xd858, 0x01}, + {0xd859, 0x01}, + {0xd85a, 0x01}, + {0xd85b, 0x01}, + {0xd85c, 0x01}, + {0xd85d, 0x01}, + {0xd85e, 0x01}, + {0xd85f, 0x01}, + {0xd860, 0x01}, + {0xd861, 0x01}, + {0xd862, 0x01}, + {0xd863, 0x01}, + {0xd864, 0x01}, + {0xd865, 0x01}, + {0xd866, 0x01}, + {0xd867, 0x01}, + {0xd868, 0x01}, + {0xd869, 0x01}, + {0xd86a, 0x01}, + {0xd86b, 0x01}, + {0xd86c, 0x01}, + {0xd86d, 0x01}, + {0xd86e, 0x01}, + {0xd86f, 0x01}, + {0xd870, 0x01}, + {0xd871, 0x01}, + {0xd872, 0x01}, + {0xd873, 0x01}, + {0xd874, 0x01}, + {0xd875, 0x01}, + {0xd876, 0x01}, + {0xd877, 0x01}, + {0xd878, 0x01}, + {0xd879, 0x01}, + {0xd87a, 0x01}, + {0xd87b, 0x01}, + {0xd87c, 0x01}, + {0xd87d, 0x01}, + {0xd87e, 0x01}, + {0xd880, 0x01}, + {0xd881, 0x01}, + {0xd882, 0x01}, + {0xd883, 0x01}, + {0xd884, 0x01}, + {0xd885, 0x01}, + {0xd886, 0x01}, + {0xd887, 0x01}, + {0xd888, 0x01}, + {0xd889, 0x01}, + {0xd88a, 0x01}, + {0xd88b, 0x01}, + {0xd88c, 0x01}, + {0xd88d, 0x01}, + {0xd88e, 0x01}, + {0xd88f, 0x01}, + {0xd890, 0x01}, + {0xd891, 0x01}, + {0xd892, 0x01}, + {0xd893, 0x01}, + {0xd894, 0x01}, + {0xd895, 0x01}, + {0xd896, 0x01}, + {0xd897, 0x01}, + {0xd898, 0x01}, + {0xd899, 0x01}, + {0xd89a, 0x01}, + {0xd89b, 0x01}, + {0xd89c, 0x01}, + {0xd89d, 0x01}, + {0xd89e, 0x01}, + {0xd89f, 0x01}, + {0xd8a0, 0x01}, + {0xd8a1, 0x01}, + {0xd8a2, 0x01}, + {0xd8a3, 0x01}, + {0xd8a4, 0x01}, + {0xd8a5, 0x01}, + {0xd8a6, 0x01}, + {0xd8a7, 0x01}, + {0xd8a8, 0x01}, + {0xd8a9, 0x01}, + {0xd8aa, 0x01}, + {0xd8ab, 0x01}, + {0xd8ac, 0x01}, + {0xd8ad, 0x01}, + {0xd8ae, 0x01}, + {0xd8af, 0x01}, + {0xd8b0, 0x01}, + {0xd8b1, 0x01}, + {0xd8b2, 0x01}, + {0xd8b3, 0x01}, + {0xd8b4, 0x01}, + {0xd8b5, 0x01}, + {0xd8b6, 0x01}, + {0xd8b7, 0x01}, + {0xd8b8, 0x01}, + {0xd8b9, 0x01}, + {0xd8ba, 0x01}, + {0xd8bb, 0x01}, + {0xd8bc, 0x01}, + {0xd8bd, 0x01}, + {0xd8be, 0x01}, + {0xd8bf, 0x01}, + {0xd8c0, 0x01}, + {0xd8c1, 0x01}, + {0xd8c2, 0x01}, + {0xd8c3, 0x01}, + {0xd8c4, 0x01}, + {0xd8c5, 0x01}, + {0xd8c6, 0x01}, + {0xd8c7, 0x01}, + {0xd8c8, 0x01}, + {0xd8c9, 0x01}, + {0xd8ca, 0x01}, + {0xd8cb, 0x01}, + {0xd8cc, 0x01}, + {0xd8cd, 0x01}, + {0xd8ce, 0x01}, + {0xd8cf, 0x01}, + {0xd8d0, 0x01}, + {0xd8d1, 0x01}, + {0xd8d2, 0x01}, + {0xd8d3, 0x01}, + {0xd8d4, 0x01}, + {0xd8d5, 0x01}, + {0xd8d6, 0x01}, + {0xd8d7, 0x01}, + {0xd8d8, 0x01}, + {0xd8d9, 0x01}, + {0xd8da, 0x01}, + {0xd8db, 0x01}, + {0xd8dc, 0x01}, + {0xd8dd, 0x01}, + {0xd8de, 0x01}, + {0xd8df, 0x01}, + {0xd8e0, 0x01}, + {0xd8e1, 0x01}, + {0xd8e2, 0x01}, + {0xd8e3, 0x01}, + {0xd8e4, 0x01}, + {0xd8e5, 0x01}, + {0xd8e6, 0x01}, + {0xd8e7, 0x01}, + {0xd8e8, 0x01}, + {0xd8e9, 0x01}, + {0xd8ea, 0x01}, + {0xd8eb, 0x01}, + {0xd8ec, 0x01}, + {0xd8ed, 0x01}, + {0xd8ee, 0x01}, + {0xd8ef, 0x01}, + {0xd8f0, 0x01}, + {0xd8f1, 0x01}, + {0xd8f2, 0x01}, + {0xd8f3, 0x01}, + {0xd8f4, 0x01}, + {0xd8f5, 0x01}, + {0xd8f6, 0x01}, + {0xd8f7, 0x01}, + {0xd8f8, 0x01}, + {0xd8f9, 0x01}, + {0xd8fa, 0x01}, + {0xd8fb, 0x01}, + {0xd8fc, 0x01}, + {0xd8fd, 0x01}, + {0xd8fe, 0x01}, + {0xd940, 0x01}, + {0xd941, 0x01}, + {0xd942, 0x01}, + {0xd943, 0x01}, + {0xd944, 0x01}, + {0xd945, 0x01}, + {0xd946, 0x01}, + {0xd947, 0x01}, + {0xd948, 0x01}, + {0xd949, 0x01}, + {0xd94a, 0x01}, + {0xd94b, 0x01}, + {0xd94c, 0x01}, + {0xd94d, 0x01}, + {0xd94e, 0x01}, + {0xd94f, 0x01}, + {0xd950, 0x01}, + {0xd951, 0x01}, + {0xd952, 0x01}, + {0xd953, 0x01}, + {0xd954, 0x01}, + {0xd955, 0x01}, + {0xd956, 0x01}, + {0xd957, 0x01}, + {0xd958, 0x01}, + {0xd959, 0x01}, + {0xd95a, 0x01}, + {0xd95b, 0x01}, + {0xd95c, 0x01}, + {0xd95d, 0x01}, + {0xd95e, 0x01}, + {0xd95f, 0x01}, + {0xd960, 0x01}, + {0xd961, 0x01}, + {0xd962, 0x01}, + {0xd963, 0x01}, + {0xd964, 0x01}, + {0xd965, 0x01}, + {0xd966, 0x01}, + {0xd967, 0x01}, + {0xd968, 0x01}, + {0xd969, 0x01}, + {0xd96a, 0x01}, + {0xd96b, 0x01}, + {0xd96c, 0x01}, + {0xd96d, 0x01}, + {0xd96e, 0x01}, + {0xd96f, 0x01}, + {0xd970, 0x01}, + {0xd971, 0x01}, + {0xd972, 0x01}, + {0xd973, 0x01}, + {0xd974, 0x01}, + {0xd975, 0x01}, + {0xd976, 0x01}, + {0xd977, 0x01}, + {0xd978, 0x01}, + {0xd979, 0x01}, + {0xd97a, 0x01}, + {0xd97b, 0x01}, + {0xd97c, 0x01}, + {0xd97d, 0x01}, + {0xd97e, 0x01}, + {0xd980, 0x01}, + {0xd981, 0x01}, + {0xd982, 0x01}, + {0xd983, 0x01}, + {0xd984, 0x01}, + {0xd985, 0x01}, + {0xd986, 0x01}, + {0xd987, 0x01}, + {0xd988, 0x01}, + {0xd989, 0x01}, + {0xd98a, 0x01}, + {0xd98b, 0x01}, + {0xd98c, 0x01}, + {0xd98d, 0x01}, + {0xd98e, 0x01}, + {0xd98f, 0x01}, + {0xd990, 0x01}, + {0xd991, 0x01}, + {0xd992, 0x01}, + {0xd993, 0x01}, + {0xd994, 0x01}, + {0xd995, 0x01}, + {0xd996, 0x01}, + {0xd997, 0x01}, + {0xd998, 0x01}, + {0xd999, 0x01}, + {0xd99a, 0x01}, + {0xd99b, 0x01}, + {0xd99c, 0x01}, + {0xd99d, 0x01}, + {0xd99e, 0x01}, + {0xd99f, 0x01}, + {0xd9a0, 0x01}, + {0xd9a1, 0x01}, + {0xd9a2, 0x01}, + {0xd9a3, 0x01}, + {0xd9a4, 0x01}, + {0xd9a5, 0x01}, + {0xd9a6, 0x01}, + {0xd9a7, 0x01}, + {0xd9a8, 0x01}, + {0xd9a9, 0x01}, + {0xd9aa, 0x01}, + {0xd9ab, 0x01}, + {0xd9ac, 0x01}, + {0xd9ad, 0x01}, + {0xd9ae, 0x01}, + {0xd9af, 0x01}, + {0xd9b0, 0x01}, + {0xd9b1, 0x01}, + {0xd9b2, 0x01}, + {0xd9b3, 0x01}, + {0xd9b4, 0x01}, + {0xd9b5, 0x01}, + {0xd9b6, 0x01}, + {0xd9b7, 0x01}, + {0xd9b8, 0x01}, + {0xd9b9, 0x01}, + {0xd9ba, 0x01}, + {0xd9bb, 0x01}, + {0xd9bc, 0x01}, + {0xd9bd, 0x01}, + {0xd9be, 0x01}, + {0xd9bf, 0x01}, + {0xd9c0, 0x01}, + {0xd9c1, 0x01}, + {0xd9c2, 0x01}, + {0xd9c3, 0x01}, + {0xd9c4, 0x01}, + {0xd9c5, 0x01}, + {0xd9c6, 0x01}, + {0xd9c7, 0x01}, + {0xd9c8, 0x01}, + {0xd9c9, 0x01}, + {0xd9ca, 0x01}, + {0xd9cb, 0x01}, + {0xd9cc, 0x01}, + {0xd9cd, 0x01}, + {0xd9ce, 0x01}, + {0xd9cf, 0x01}, + {0xd9d0, 0x01}, + {0xd9d1, 0x01}, + {0xd9d2, 0x01}, + {0xd9d3, 0x01}, + {0xd9d4, 0x01}, + {0xd9d5, 0x01}, + {0xd9d6, 0x01}, + {0xd9d7, 0x01}, + {0xd9d8, 0x01}, + {0xd9d9, 0x01}, + {0xd9da, 0x01}, + {0xd9db, 0x01}, + {0xd9dc, 0x01}, + {0xd9dd, 0x01}, + {0xd9de, 0x01}, + {0xd9df, 0x01}, + {0xd9e0, 0x01}, + {0xd9e1, 0x01}, + {0xd9e2, 0x01}, + {0xd9e3, 0x01}, + {0xd9e4, 0x01}, + {0xd9e5, 0x01}, + {0xd9e6, 0x01}, + {0xd9e7, 0x01}, + {0xd9e8, 0x01}, + {0xd9e9, 0x01}, + {0xd9ea, 0x01}, + {0xd9eb, 0x01}, + {0xd9ec, 0x01}, + {0xd9ed, 0x01}, + {0xd9ee, 0x01}, + {0xd9ef, 0x01}, + {0xd9f0, 0x01}, + {0xd9f1, 0x01}, + {0xd9f2, 0x01}, + {0xd9f3, 0x01}, + {0xd9f4, 0x01}, + {0xd9f5, 0x01}, + {0xd9f6, 0x01}, + {0xd9f7, 0x01}, + {0xd9f8, 0x01}, + {0xd9f9, 0x01}, + {0xd9fa, 0x01}, + {0xd9fb, 0x01}, + {0xd9fc, 0x01}, + {0xd9fd, 0x01}, + {0xd9fe, 0x01}, + {0xda40, 0x01}, + {0xda41, 0x01}, + {0xda42, 0x01}, + {0xda43, 0x01}, + {0xda44, 0x01}, + {0xda45, 0x01}, + {0xda46, 0x01}, + {0xda47, 0x01}, + {0xda48, 0x01}, + {0xda49, 0x01}, + {0xda4b, 0x01}, + {0xda4c, 0x01}, + {0xda4d, 0x01}, + {0xda4e, 0x01}, + {0xda4f, 0x01}, + {0xda50, 0x01}, + {0xda51, 0x01}, + {0xda52, 0x01}, + {0xda53, 0x01}, + {0xda54, 0x01}, + {0xda55, 0x01}, + {0xda56, 0x01}, + {0xda57, 0x01}, + {0xda58, 0x01}, + {0xda59, 0x01}, + {0xda5a, 0x01}, + {0xda5b, 0x01}, + {0xda5c, 0x01}, + {0xda5d, 0x01}, + {0xda5e, 0x01}, + {0xda5f, 0x01}, + {0xda60, 0x01}, + {0xda61, 0x01}, + {0xda62, 0x01}, + {0xda63, 0x01}, + {0xda64, 0x01}, + {0xda65, 0x01}, + {0xda66, 0x01}, + {0xda67, 0x01}, + {0xda68, 0x01}, + {0xda69, 0x01}, + {0xda6a, 0x01}, + {0xda6b, 0x01}, + {0xda6c, 0x01}, + {0xda6d, 0x01}, + {0xda6e, 0x01}, + {0xda6f, 0x01}, + {0xda70, 0x01}, + {0xda71, 0x01}, + {0xda72, 0x01}, + {0xda73, 0x01}, + {0xda74, 0x01}, + {0xda75, 0x01}, + {0xda76, 0x01}, + {0xda77, 0x01}, + {0xda78, 0x01}, + {0xda79, 0x01}, + {0xda7a, 0x01}, + {0xda7b, 0x01}, + {0xda7c, 0x01}, + {0xda7d, 0x01}, + {0xda7e, 0x01}, + {0xda80, 0x01}, + {0xda81, 0x01}, + {0xda82, 0x01}, + {0xda83, 0x01}, + {0xda84, 0x01}, + {0xda85, 0x01}, + {0xda86, 0x01}, + {0xda87, 0x01}, + {0xda88, 0x01}, + {0xda89, 0x01}, + {0xda8a, 0x01}, + {0xda8b, 0x01}, + {0xda8c, 0x01}, + {0xda8d, 0x01}, + {0xda8e, 0x01}, + {0xda8f, 0x01}, + {0xda90, 0x01}, + {0xda91, 0x01}, + {0xda92, 0x01}, + {0xda93, 0x01}, + {0xda94, 0x01}, + {0xda95, 0x01}, + {0xda96, 0x01}, + {0xda97, 0x01}, + {0xda98, 0x01}, + {0xda99, 0x01}, + {0xda9a, 0x01}, + {0xda9b, 0x01}, + {0xda9c, 0x01}, + {0xda9d, 0x01}, + {0xda9e, 0x01}, + {0xda9f, 0x01}, + {0xdaa0, 0x01}, + {0xdaa1, 0x01}, + {0xdaa2, 0x01}, + {0xdaa3, 0x01}, + {0xdaa4, 0x01}, + {0xdaa5, 0x01}, + {0xdaa6, 0x01}, + {0xdaa7, 0x01}, + {0xdaa8, 0x01}, + {0xdaa9, 0x01}, + {0xdaaa, 0x01}, + {0xdaab, 0x01}, + {0xdaac, 0x01}, + {0xdaad, 0x01}, + {0xdaae, 0x01}, + {0xdaaf, 0x01}, + {0xdab0, 0x01}, + {0xdab1, 0x01}, + {0xdab2, 0x01}, + {0xdab3, 0x01}, + {0xdab4, 0x01}, + {0xdab5, 0x01}, + {0xdab6, 0x01}, + {0xdab7, 0x01}, + {0xdab8, 0x01}, + {0xdab9, 0x01}, + {0xdaba, 0x01}, + {0xdabb, 0x01}, + {0xdabc, 0x01}, + {0xdabd, 0x01}, + {0xdabe, 0x01}, + {0xdabf, 0x01}, + {0xdac0, 0x01}, + {0xdac1, 0x01}, + {0xdac2, 0x01}, + {0xdac3, 0x01}, + {0xdac4, 0x01}, + {0xdac5, 0x01}, + {0xdac6, 0x01}, + {0xdac7, 0x01}, + {0xdac8, 0x01}, + {0xdac9, 0x01}, + {0xdaca, 0x01}, + {0xdacb, 0x01}, + {0xdacc, 0x01}, + {0xdacd, 0x01}, + {0xdace, 0x01}, + {0xdacf, 0x01}, + {0xdad0, 0x01}, + {0xdad1, 0x01}, + {0xdad2, 0x01}, + {0xdad3, 0x01}, + {0xdad4, 0x01}, + {0xdad5, 0x01}, + {0xdad6, 0x01}, + {0xdad7, 0x01}, + {0xdad8, 0x01}, + {0xdad9, 0x01}, + {0xdada, 0x01}, + {0xdadb, 0x01}, + {0xdadc, 0x01}, + {0xdadd, 0x01}, + {0xdade, 0x01}, + {0xdadf, 0x01}, + {0xdae0, 0x01}, + {0xdae1, 0x01}, + {0xdae2, 0x01}, + {0xdae3, 0x01}, + {0xdae4, 0x01}, + {0xdae5, 0x01}, + {0xdae6, 0x01}, + {0xdae7, 0x01}, + {0xdae8, 0x01}, + {0xdae9, 0x01}, + {0xdaea, 0x01}, + {0xdaeb, 0x01}, + {0xdaec, 0x01}, + {0xdaed, 0x01}, + {0xdaee, 0x01}, + {0xdaef, 0x01}, + {0xdaf0, 0x01}, + {0xdaf1, 0x01}, + {0xdaf2, 0x01}, + {0xdaf3, 0x01}, + {0xdaf4, 0x01}, + {0xdaf5, 0x01}, + {0xdaf6, 0x01}, + {0xdaf7, 0x01}, + {0xdaf8, 0x01}, + {0xdaf9, 0x01}, + {0xdafa, 0x01}, + {0xdafb, 0x01}, + {0xdafc, 0x01}, + {0xdafd, 0x01}, + {0xdafe, 0x01}, + {0xdb40, 0x01}, + {0xdb41, 0x01}, + {0xdb42, 0x01}, + {0xdb43, 0x01}, + {0xdb44, 0x01}, + {0xdb45, 0x01}, + {0xdb46, 0x01}, + {0xdb47, 0x01}, + {0xdb48, 0x01}, + {0xdb49, 0x01}, + {0xdb4a, 0x01}, + {0xdb4b, 0x01}, + {0xdb4c, 0x01}, + {0xdb4d, 0x01}, + {0xdb4e, 0x01}, + {0xdb4f, 0x01}, + {0xdb50, 0x01}, + {0xdb51, 0x01}, + {0xdb52, 0x01}, + {0xdb53, 0x01}, + {0xdb54, 0x01}, + {0xdb55, 0x01}, + {0xdb56, 0x01}, + {0xdb57, 0x01}, + {0xdb58, 0x01}, + {0xdb59, 0x01}, + {0xdb5a, 0x01}, + {0xdb5b, 0x01}, + {0xdb5c, 0x01}, + {0xdb5d, 0x01}, + {0xdb5e, 0x01}, + {0xdb5f, 0x01}, + {0xdb60, 0x01}, + {0xdb61, 0x01}, + {0xdb62, 0x01}, + {0xdb63, 0x01}, + {0xdb64, 0x01}, + {0xdb65, 0x01}, + {0xdb66, 0x01}, + {0xdb67, 0x01}, + {0xdb68, 0x01}, + {0xdb69, 0x01}, + {0xdb6a, 0x01}, + {0xdb6b, 0x01}, + {0xdb6c, 0x01}, + {0xdb6d, 0x01}, + {0xdb6e, 0x01}, + {0xdb6f, 0x01}, + {0xdb70, 0x01}, + {0xdb71, 0x01}, + {0xdb72, 0x01}, + {0xdb73, 0x01}, + {0xdb74, 0x01}, + {0xdb75, 0x01}, + {0xdb76, 0x01}, + {0xdb77, 0x01}, + {0xdb78, 0x01}, + {0xdb79, 0x01}, + {0xdb7a, 0x01}, + {0xdb7b, 0x01}, + {0xdb7c, 0x01}, + {0xdb7d, 0x01}, + {0xdb7e, 0x01}, + {0xdb80, 0x01}, + {0xdb81, 0x01}, + {0xdb82, 0x01}, + {0xdb83, 0x01}, + {0xdb84, 0x01}, + {0xdb85, 0x01}, + {0xdb86, 0x01}, + {0xdb87, 0x01}, + {0xdb88, 0x01}, + {0xdb89, 0x01}, + {0xdb8a, 0x01}, + {0xdb8b, 0x01}, + {0xdb8c, 0x01}, + {0xdb8d, 0x01}, + {0xdb8e, 0x01}, + {0xdb8f, 0x01}, + {0xdb90, 0x01}, + {0xdb91, 0x01}, + {0xdb92, 0x01}, + {0xdb93, 0x01}, + {0xdb94, 0x01}, + {0xdb95, 0x01}, + {0xdb96, 0x01}, + {0xdb97, 0x01}, + {0xdb98, 0x01}, + {0xdb99, 0x01}, + {0xdb9a, 0x01}, + {0xdb9b, 0x01}, + {0xdb9c, 0x01}, + {0xdb9d, 0x01}, + {0xdb9e, 0x01}, + {0xdb9f, 0x01}, + {0xdba0, 0x01}, + {0xdba1, 0x01}, + {0xdba2, 0x01}, + {0xdba3, 0x01}, + {0xdba4, 0x01}, + {0xdba5, 0x01}, + {0xdba6, 0x01}, + {0xdba7, 0x01}, + {0xdba8, 0x01}, + {0xdba9, 0x01}, + {0xdbaa, 0x01}, + {0xdbab, 0x01}, + {0xdbac, 0x01}, + {0xdbad, 0x01}, + {0xdbae, 0x01}, + {0xdbaf, 0x01}, + {0xdbb0, 0x01}, + {0xdbb1, 0x01}, + {0xdbb2, 0x01}, + {0xdbb3, 0x01}, + {0xdbb4, 0x01}, + {0xdbb5, 0x01}, + {0xdbb6, 0x01}, + {0xdbb7, 0x01}, + {0xdbb8, 0x01}, + {0xdbb9, 0x01}, + {0xdbba, 0x01}, + {0xdbbb, 0x01}, + {0xdbbc, 0x01}, + {0xdbbd, 0x01}, + {0xdbbe, 0x01}, + {0xdbbf, 0x01}, + {0xdbc0, 0x01}, + {0xdbc1, 0x01}, + {0xdbc2, 0x01}, + {0xdbc3, 0x01}, + {0xdbc4, 0x01}, + {0xdbc5, 0x01}, + {0xdbc6, 0x01}, + {0xdbc7, 0x01}, + {0xdbc8, 0x01}, + {0xdbc9, 0x01}, + {0xdbca, 0x01}, + {0xdbcb, 0x01}, + {0xdbcc, 0x01}, + {0xdbcd, 0x01}, + {0xdbce, 0x01}, + {0xdbcf, 0x01}, + {0xdbd0, 0x01}, + {0xdbd1, 0x01}, + {0xdbd2, 0x01}, + {0xdbd3, 0x01}, + {0xdbd4, 0x01}, + {0xdbd5, 0x01}, + {0xdbd6, 0x01}, + {0xdbd7, 0x01}, + {0xdbd8, 0x01}, + {0xdbd9, 0x01}, + {0xdbda, 0x01}, + {0xdbdb, 0x01}, + {0xdbdc, 0x01}, + {0xdbdd, 0x01}, + {0xdbde, 0x01}, + {0xdbdf, 0x01}, + {0xdbe0, 0x01}, + {0xdbe1, 0x01}, + {0xdbe2, 0x01}, + {0xdbe3, 0x01}, + {0xdbe4, 0x01}, + {0xdbe5, 0x01}, + {0xdbe6, 0x01}, + {0xdbe7, 0x01}, + {0xdbe8, 0x01}, + {0xdbe9, 0x01}, + {0xdbea, 0x01}, + {0xdbeb, 0x01}, + {0xdbec, 0x01}, + {0xdbed, 0x01}, + {0xdbee, 0x01}, + {0xdbef, 0x01}, + {0xdbf0, 0x01}, + {0xdbf1, 0x01}, + {0xdbf2, 0x01}, + {0xdbf3, 0x01}, + {0xdbf4, 0x01}, + {0xdbf5, 0x01}, + {0xdbf6, 0x01}, + {0xdbf7, 0x01}, + {0xdbf8, 0x01}, + {0xdbf9, 0x01}, + {0xdbfa, 0x01}, + {0xdbfb, 0x01}, + {0xdbfc, 0x01}, + {0xdbfd, 0x01}, + {0xdbfe, 0x01}, + {0xdc40, 0x01}, + {0xdc41, 0x01}, + {0xdc42, 0x01}, + {0xdc43, 0x01}, + {0xdc44, 0x01}, + {0xdc45, 0x01}, + {0xdc46, 0x01}, + {0xdc47, 0x01}, + {0xdc48, 0x01}, + {0xdc49, 0x01}, + {0xdc4a, 0x01}, + {0xdc4b, 0x01}, + {0xdc4c, 0x01}, + {0xdc4d, 0x01}, + {0xdc4e, 0x01}, + {0xdc4f, 0x01}, + {0xdc50, 0x01}, + {0xdc51, 0x01}, + {0xdc52, 0x01}, + {0xdc53, 0x01}, + {0xdc54, 0x01}, + {0xdc55, 0x01}, + {0xdc56, 0x01}, + {0xdc57, 0x01}, + {0xdc58, 0x01}, + {0xdc59, 0x01}, + {0xdc5a, 0x01}, + {0xdc5b, 0x01}, + {0xdc5c, 0x01}, + {0xdc5d, 0x01}, + {0xdc5e, 0x01}, + {0xdc5f, 0x01}, + {0xdc60, 0x01}, + {0xdc61, 0x01}, + {0xdc62, 0x01}, + {0xdc63, 0x01}, + {0xdc64, 0x01}, + {0xdc65, 0x01}, + {0xdc66, 0x01}, + {0xdc67, 0x01}, + {0xdc68, 0x01}, + {0xdc69, 0x01}, + {0xdc6a, 0x01}, + {0xdc6b, 0x01}, + {0xdc6c, 0x01}, + {0xdc6d, 0x01}, + {0xdc6e, 0x01}, + {0xdc6f, 0x01}, + {0xdc70, 0x01}, + {0xdc71, 0x01}, + {0xdc72, 0x01}, + {0xdc73, 0x01}, + {0xdc74, 0x01}, + {0xdc75, 0x01}, + {0xdc76, 0x01}, + {0xdc77, 0x01}, + {0xdc79, 0x01}, + {0xdc7a, 0x01}, + {0xdc7b, 0x01}, + {0xdc7c, 0x01}, + {0xdc7d, 0x01}, + {0xdc7e, 0x01}, + {0xdc80, 0x01}, + {0xdc81, 0x01}, + {0xdc82, 0x01}, + {0xdc83, 0x01}, + {0xdc84, 0x01}, + {0xdc85, 0x01}, + {0xdc86, 0x01}, + {0xdc87, 0x01}, + {0xdc88, 0x01}, + {0xdc89, 0x01}, + {0xdc8a, 0x01}, + {0xdc8b, 0x01}, + {0xdc8c, 0x01}, + {0xdc8d, 0x01}, + {0xdc8e, 0x01}, + {0xdc8f, 0x01}, + {0xdc90, 0x01}, + {0xdc91, 0x01}, + {0xdc92, 0x01}, + {0xdc93, 0x01}, + {0xdc94, 0x01}, + {0xdc95, 0x01}, + {0xdc96, 0x01}, + {0xdc97, 0x01}, + {0xdc98, 0x01}, + {0xdc99, 0x01}, + {0xdc9a, 0x01}, + {0xdc9b, 0x01}, + {0xdc9c, 0x01}, + {0xdc9d, 0x01}, + {0xdc9e, 0x01}, + {0xdc9f, 0x01}, + {0xdca0, 0x01}, + {0xdca1, 0x01}, + {0xdca2, 0x01}, + {0xdca3, 0x01}, + {0xdca4, 0x01}, + {0xdca5, 0x01}, + {0xdca6, 0x01}, + {0xdca7, 0x01}, + {0xdca8, 0x01}, + {0xdca9, 0x01}, + {0xdcaa, 0x01}, + {0xdcab, 0x01}, + {0xdcac, 0x01}, + {0xdcad, 0x01}, + {0xdcae, 0x01}, + {0xdcaf, 0x01}, + {0xdcb0, 0x01}, + {0xdcb1, 0x01}, + {0xdcb2, 0x01}, + {0xdcb3, 0x01}, + {0xdcb4, 0x01}, + {0xdcb5, 0x01}, + {0xdcb6, 0x01}, + {0xdcb7, 0x01}, + {0xdcb8, 0x01}, + {0xdcb9, 0x01}, + {0xdcba, 0x01}, + {0xdcbb, 0x01}, + {0xdcbc, 0x01}, + {0xdcbd, 0x01}, + {0xdcbe, 0x01}, + {0xdcbf, 0x01}, + {0xdcc0, 0x01}, + {0xdcc1, 0x01}, + {0xdcc2, 0x01}, + {0xdcc3, 0x01}, + {0xdcc4, 0x01}, + {0xdcc5, 0x01}, + {0xdcc6, 0x01}, + {0xdcc7, 0x01}, + {0xdcc8, 0x01}, + {0xdcc9, 0x01}, + {0xdcca, 0x01}, + {0xdccb, 0x01}, + {0xdccc, 0x01}, + {0xdccd, 0x01}, + {0xdcce, 0x01}, + {0xdccf, 0x01}, + {0xdcd0, 0x01}, + {0xdcd1, 0x01}, + {0xdcd2, 0x01}, + {0xdcd3, 0x01}, + {0xdcd4, 0x01}, + {0xdcd5, 0x01}, + {0xdcd6, 0x01}, + {0xdcd7, 0x01}, + {0xdcd8, 0x01}, + {0xdcd9, 0x01}, + {0xdcda, 0x01}, + {0xdcdb, 0x01}, + {0xdcdc, 0x01}, + {0xdcdd, 0x01}, + {0xdcde, 0x01}, + {0xdcdf, 0x01}, + {0xdce0, 0x01}, + {0xdce1, 0x01}, + {0xdce2, 0x01}, + {0xdce3, 0x01}, + {0xdce4, 0x01}, + {0xdce5, 0x01}, + {0xdce6, 0x01}, + {0xdce7, 0x01}, + {0xdce8, 0x01}, + {0xdce9, 0x01}, + {0xdcea, 0x01}, + {0xdceb, 0x01}, + {0xdcec, 0x01}, + {0xdced, 0x01}, + {0xdcee, 0x01}, + {0xdcef, 0x01}, + {0xdcf0, 0x01}, + {0xdcf1, 0x01}, + {0xdcf2, 0x01}, + {0xdcf3, 0x01}, + {0xdcf4, 0x01}, + {0xdcf5, 0x01}, + {0xdcf6, 0x01}, + {0xdcf7, 0x01}, + {0xdcf8, 0x01}, + {0xdcf9, 0x01}, + {0xdcfa, 0x01}, + {0xdcfb, 0x01}, + {0xdcfc, 0x01}, + {0xdcfd, 0x01}, + {0xdcfe, 0x01}, + {0xdd40, 0x01}, + {0xdd41, 0x01}, + {0xdd42, 0x01}, + {0xdd43, 0x01}, + {0xdd44, 0x01}, + {0xdd45, 0x01}, + {0xdd46, 0x01}, + {0xdd47, 0x01}, + {0xdd48, 0x01}, + {0xdd49, 0x01}, + {0xdd4a, 0x01}, + {0xdd4b, 0x01}, + {0xdd4c, 0x01}, + {0xdd4d, 0x01}, + {0xdd4e, 0x01}, + {0xdd4f, 0x01}, + {0xdd50, 0x01}, + {0xdd51, 0x01}, + {0xdd52, 0x01}, + {0xdd53, 0x01}, + {0xdd54, 0x01}, + {0xdd55, 0x01}, + {0xdd56, 0x01}, + {0xdd57, 0x01}, + {0xdd58, 0x01}, + {0xdd59, 0x01}, + {0xdd5a, 0x01}, + {0xdd5b, 0x01}, + {0xdd5c, 0x01}, + {0xdd5d, 0x01}, + {0xdd5e, 0x01}, + {0xdd5f, 0x01}, + {0xdd60, 0x01}, + {0xdd61, 0x01}, + {0xdd62, 0x01}, + {0xdd63, 0x01}, + {0xdd64, 0x01}, + {0xdd65, 0x01}, + {0xdd66, 0x01}, + {0xdd67, 0x01}, + {0xdd68, 0x01}, + {0xdd69, 0x01}, + {0xdd6a, 0x01}, + {0xdd6b, 0x01}, + {0xdd6c, 0x01}, + {0xdd6d, 0x01}, + {0xdd6e, 0x01}, + {0xdd6f, 0x01}, + {0xdd70, 0x01}, + {0xdd71, 0x01}, + {0xdd72, 0x01}, + {0xdd73, 0x01}, + {0xdd74, 0x01}, + {0xdd75, 0x01}, + {0xdd76, 0x01}, + {0xdd77, 0x01}, + {0xdd78, 0x01}, + {0xdd79, 0x01}, + {0xdd7a, 0x01}, + {0xdd7b, 0x01}, + {0xdd7c, 0x01}, + {0xdd7d, 0x01}, + {0xdd7e, 0x01}, + {0xdd80, 0x01}, + {0xdd81, 0x01}, + {0xdd82, 0x01}, + {0xdd83, 0x01}, + {0xdd84, 0x01}, + {0xdd85, 0x01}, + {0xdd86, 0x01}, + {0xdd87, 0x01}, + {0xdd88, 0x01}, + {0xdd89, 0x01}, + {0xdd8a, 0x01}, + {0xdd8b, 0x01}, + {0xdd8c, 0x01}, + {0xdd8d, 0x01}, + {0xdd8e, 0x01}, + {0xdd8f, 0x01}, + {0xdd90, 0x01}, + {0xdd91, 0x01}, + {0xdd92, 0x01}, + {0xdd93, 0x01}, + {0xdd94, 0x01}, + {0xdd95, 0x01}, + {0xdd96, 0x01}, + {0xdd97, 0x01}, + {0xdd98, 0x01}, + {0xdd99, 0x01}, + {0xdd9a, 0x01}, + {0xdd9b, 0x01}, + {0xdd9c, 0x01}, + {0xdd9d, 0x01}, + {0xdd9e, 0x01}, + {0xdd9f, 0x01}, + {0xdda0, 0x01}, + {0xdda1, 0x01}, + {0xdda2, 0x01}, + {0xdda3, 0x01}, + {0xdda4, 0x01}, + {0xdda5, 0x01}, + {0xdda6, 0x01}, + {0xdda7, 0x01}, + {0xdda8, 0x01}, + {0xdda9, 0x01}, + {0xddaa, 0x01}, + {0xddab, 0x01}, + {0xddac, 0x01}, + {0xddad, 0x01}, + {0xddae, 0x01}, + {0xddaf, 0x01}, + {0xddb0, 0x01}, + {0xddb1, 0x01}, + {0xddb2, 0x01}, + {0xddb3, 0x01}, + {0xddb4, 0x01}, + {0xddb5, 0x01}, + {0xddb6, 0x01}, + {0xddb7, 0x01}, + {0xddb8, 0x01}, + {0xddb9, 0x01}, + {0xddba, 0x01}, + {0xddbb, 0x01}, + {0xddbc, 0x01}, + {0xddbd, 0x01}, + {0xddbe, 0x01}, + {0xddbf, 0x01}, + {0xddc0, 0x01}, + {0xddc1, 0x01}, + {0xddc2, 0x01}, + {0xddc3, 0x01}, + {0xddc4, 0x01}, + {0xddc5, 0x01}, + {0xddc6, 0x01}, + {0xddc7, 0x01}, + {0xddc8, 0x01}, + {0xddc9, 0x01}, + {0xddca, 0x01}, + {0xddcb, 0x01}, + {0xddcc, 0x01}, + {0xddcd, 0x01}, + {0xddce, 0x01}, + {0xddcf, 0x01}, + {0xddd0, 0x01}, + {0xddd1, 0x01}, + {0xddd2, 0x01}, + {0xddd3, 0x01}, + {0xddd4, 0x01}, + {0xddd5, 0x01}, + {0xddd6, 0x01}, + {0xddd7, 0x01}, + {0xddd8, 0x01}, + {0xddd9, 0x01}, + {0xddda, 0x01}, + {0xdddb, 0x01}, + {0xdddc, 0x01}, + {0xdddd, 0x01}, + {0xddde, 0x01}, + {0xdddf, 0x01}, + {0xdde0, 0x01}, + {0xdde1, 0x01}, + {0xdde2, 0x01}, + {0xdde3, 0x01}, + {0xdde4, 0x01}, + {0xdde5, 0x01}, + {0xdde6, 0x01}, + {0xdde7, 0x01}, + {0xdde8, 0x01}, + {0xdde9, 0x01}, + {0xddea, 0x01}, + {0xddeb, 0x01}, + {0xddec, 0x01}, + {0xdded, 0x01}, + {0xddee, 0x01}, + {0xddef, 0x01}, + {0xddf0, 0x01}, + {0xddf1, 0x01}, + {0xddf2, 0x01}, + {0xddf3, 0x01}, + {0xddf4, 0x01}, + {0xddf5, 0x01}, + {0xddf6, 0x01}, + {0xddf7, 0x01}, + {0xddf8, 0x01}, + {0xddf9, 0x01}, + {0xddfa, 0x01}, + {0xddfb, 0x01}, + {0xddfc, 0x01}, + {0xddfd, 0x01}, + {0xddfe, 0x01}, + {0xde40, 0x01}, + {0xde41, 0x01}, + {0xde42, 0x01}, + {0xde43, 0x01}, + {0xde44, 0x01}, + {0xde45, 0x01}, + {0xde46, 0x01}, + {0xde47, 0x01}, + {0xde48, 0x01}, + {0xde49, 0x01}, + {0xde4a, 0x01}, + {0xde4b, 0x01}, + {0xde4c, 0x01}, + {0xde4d, 0x01}, + {0xde4e, 0x01}, + {0xde4f, 0x01}, + {0xde50, 0x01}, + {0xde51, 0x01}, + {0xde52, 0x01}, + {0xde53, 0x01}, + {0xde54, 0x01}, + {0xde55, 0x01}, + {0xde56, 0x01}, + {0xde57, 0x01}, + {0xde58, 0x01}, + {0xde59, 0x01}, + {0xde5a, 0x01}, + {0xde5b, 0x01}, + {0xde5c, 0x01}, + {0xde5d, 0x01}, + {0xde5e, 0x01}, + {0xde5f, 0x01}, + {0xde60, 0x01}, + {0xde61, 0x01}, + {0xde62, 0x01}, + {0xde63, 0x01}, + {0xde64, 0x01}, + {0xde65, 0x01}, + {0xde66, 0x01}, + {0xde67, 0x01}, + {0xde68, 0x01}, + {0xde69, 0x01}, + {0xde6a, 0x01}, + {0xde6b, 0x01}, + {0xde6c, 0x01}, + {0xde6e, 0x01}, + {0xde6f, 0x01}, + {0xde70, 0x01}, + {0xde71, 0x01}, + {0xde72, 0x01}, + {0xde73, 0x01}, + {0xde74, 0x01}, + {0xde75, 0x01}, + {0xde76, 0x01}, + {0xde77, 0x01}, + {0xde78, 0x01}, + {0xde79, 0x01}, + {0xde7a, 0x01}, + {0xde7b, 0x01}, + {0xde7c, 0x01}, + {0xde7d, 0x01}, + {0xde7e, 0x01}, + {0xde80, 0x01}, + {0xde81, 0x01}, + {0xde82, 0x01}, + {0xde83, 0x01}, + {0xde84, 0x01}, + {0xde85, 0x01}, + {0xde86, 0x01}, + {0xde87, 0x01}, + {0xde88, 0x01}, + {0xde89, 0x01}, + {0xde8a, 0x01}, + {0xde8b, 0x01}, + {0xde8c, 0x01}, + {0xde8d, 0x01}, + {0xde8e, 0x01}, + {0xde8f, 0x01}, + {0xde90, 0x01}, + {0xde91, 0x01}, + {0xde92, 0x01}, + {0xde93, 0x01}, + {0xde94, 0x01}, + {0xde95, 0x01}, + {0xde96, 0x01}, + {0xde97, 0x01}, + {0xde98, 0x01}, + {0xde99, 0x01}, + {0xde9a, 0x01}, + {0xde9b, 0x01}, + {0xde9c, 0x01}, + {0xde9d, 0x01}, + {0xde9e, 0x01}, + {0xde9f, 0x01}, + {0xdea0, 0x01}, + {0xdea1, 0x01}, + {0xdea2, 0x01}, + {0xdea3, 0x01}, + {0xdea4, 0x01}, + {0xdea5, 0x01}, + {0xdea6, 0x01}, + {0xdea7, 0x01}, + {0xdea8, 0x01}, + {0xdea9, 0x01}, + {0xdeaa, 0x01}, + {0xdeab, 0x01}, + {0xdeac, 0x01}, + {0xdead, 0x01}, + {0xdeae, 0x01}, + {0xdeaf, 0x01}, + {0xdeb0, 0x01}, + {0xdeb1, 0x01}, + {0xdeb2, 0x01}, + {0xdeb3, 0x01}, + {0xdeb4, 0x01}, + {0xdeb5, 0x01}, + {0xdeb6, 0x01}, + {0xdeb7, 0x01}, + {0xdeb8, 0x01}, + {0xdeb9, 0x01}, + {0xdeba, 0x01}, + {0xdebb, 0x01}, + {0xdebc, 0x01}, + {0xdebd, 0x01}, + {0xdebe, 0x01}, + {0xdebf, 0x01}, + {0xdec0, 0x01}, + {0xdec1, 0x01}, + {0xdec2, 0x01}, + {0xdec3, 0x01}, + {0xdec4, 0x01}, + {0xdec5, 0x01}, + {0xdec6, 0x01}, + {0xdec7, 0x01}, + {0xdec8, 0x01}, + {0xdec9, 0x01}, + {0xdeca, 0x01}, + {0xdecb, 0x01}, + {0xdecc, 0x01}, + {0xdecd, 0x01}, + {0xdece, 0x01}, + {0xdecf, 0x01}, + {0xded0, 0x01}, + {0xded1, 0x01}, + {0xded2, 0x01}, + {0xded3, 0x01}, + {0xded4, 0x01}, + {0xded5, 0x01}, + {0xded6, 0x01}, + {0xded7, 0x01}, + {0xded8, 0x01}, + {0xded9, 0x01}, + {0xdeda, 0x01}, + {0xdedb, 0x01}, + {0xdedc, 0x01}, + {0xdedd, 0x01}, + {0xdede, 0x01}, + {0xdedf, 0x01}, + {0xdee0, 0x01}, + {0xdee1, 0x01}, + {0xdee2, 0x01}, + {0xdee3, 0x01}, + {0xdee4, 0x01}, + {0xdee5, 0x01}, + {0xdee6, 0x01}, + {0xdee7, 0x01}, + {0xdee8, 0x01}, + {0xdee9, 0x01}, + {0xdeea, 0x01}, + {0xdeeb, 0x01}, + {0xdeec, 0x01}, + {0xdeed, 0x01}, + {0xdeee, 0x01}, + {0xdeef, 0x01}, + {0xdef0, 0x01}, + {0xdef1, 0x01}, + {0xdef2, 0x01}, + {0xdef3, 0x01}, + {0xdef4, 0x01}, + {0xdef5, 0x01}, + {0xdef6, 0x01}, + {0xdef7, 0x01}, + {0xdef8, 0x01}, + {0xdef9, 0x01}, + {0xdefa, 0x01}, + {0xdefb, 0x01}, + {0xdefc, 0x01}, + {0xdefd, 0x01}, + {0xdefe, 0x01}, + {0xdf40, 0x01}, + {0xdf41, 0x01}, + {0xdf42, 0x01}, + {0xdf43, 0x01}, + {0xdf44, 0x01}, + {0xdf45, 0x01}, + {0xdf46, 0x01}, + {0xdf47, 0x01}, + {0xdf48, 0x01}, + {0xdf49, 0x01}, + {0xdf4a, 0x01}, + {0xdf4b, 0x01}, + {0xdf4c, 0x01}, + {0xdf4d, 0x01}, + {0xdf4e, 0x01}, + {0xdf4f, 0x01}, + {0xdf50, 0x01}, + {0xdf51, 0x01}, + {0xdf52, 0x01}, + {0xdf53, 0x01}, + {0xdf54, 0x01}, + {0xdf55, 0x01}, + {0xdf56, 0x01}, + {0xdf57, 0x01}, + {0xdf58, 0x01}, + {0xdf59, 0x01}, + {0xdf5a, 0x01}, + {0xdf5b, 0x01}, + {0xdf5c, 0x01}, + {0xdf5d, 0x01}, + {0xdf5e, 0x01}, + {0xdf5f, 0x01}, + {0xdf60, 0x01}, + {0xdf61, 0x01}, + {0xdf62, 0x01}, + {0xdf63, 0x01}, + {0xdf64, 0x01}, + {0xdf65, 0x01}, + {0xdf66, 0x01}, + {0xdf67, 0x01}, + {0xdf68, 0x01}, + {0xdf69, 0x01}, + {0xdf6a, 0x01}, + {0xdf6b, 0x01}, + {0xdf6c, 0x01}, + {0xdf6d, 0x01}, + {0xdf6e, 0x01}, + {0xdf6f, 0x01}, + {0xdf70, 0x01}, + {0xdf71, 0x01}, + {0xdf72, 0x01}, + {0xdf73, 0x01}, + {0xdf74, 0x01}, + {0xdf75, 0x01}, + {0xdf76, 0x01}, + {0xdf77, 0x01}, + {0xdf78, 0x01}, + {0xdf79, 0x01}, + {0xdf7a, 0x01}, + {0xdf7b, 0x01}, + {0xdf7c, 0x01}, + {0xdf7d, 0x01}, + {0xdf7e, 0x01}, + {0xdf80, 0x01}, + {0xdf81, 0x01}, + {0xdf82, 0x01}, + {0xdf83, 0x01}, + {0xdf84, 0x01}, + {0xdf85, 0x01}, + {0xdf86, 0x01}, + {0xdf87, 0x01}, + {0xdf88, 0x01}, + {0xdf89, 0x01}, + {0xdf8a, 0x01}, + {0xdf8b, 0x01}, + {0xdf8c, 0x01}, + {0xdf8d, 0x01}, + {0xdf8e, 0x01}, + {0xdf8f, 0x01}, + {0xdf90, 0x01}, + {0xdf91, 0x01}, + {0xdf92, 0x01}, + {0xdf93, 0x01}, + {0xdf94, 0x01}, + {0xdf95, 0x01}, + {0xdf96, 0x01}, + {0xdf97, 0x01}, + {0xdf98, 0x01}, + {0xdf99, 0x01}, + {0xdf9a, 0x01}, + {0xdf9b, 0x01}, + {0xdf9c, 0x01}, + {0xdf9d, 0x01}, + {0xdf9e, 0x01}, + {0xdf9f, 0x01}, + {0xdfa0, 0x01}, + {0xdfa1, 0x01}, + {0xdfa2, 0x01}, + {0xdfa3, 0x01}, + {0xdfa4, 0x01}, + {0xdfa5, 0x01}, + {0xdfa6, 0x01}, + {0xdfa7, 0x01}, + {0xdfa8, 0x01}, + {0xdfa9, 0x01}, + {0xdfaa, 0x01}, + {0xdfab, 0x01}, + {0xdfac, 0x01}, + {0xdfad, 0x01}, + {0xdfae, 0x01}, + {0xdfaf, 0x01}, + {0xdfb0, 0x01}, + {0xdfb1, 0x01}, + {0xdfb2, 0x01}, + {0xdfb3, 0x01}, + {0xdfb4, 0x01}, + {0xdfb5, 0x01}, + {0xdfb6, 0x01}, + {0xdfb7, 0x01}, + {0xdfb8, 0x01}, + {0xdfb9, 0x01}, + {0xdfba, 0x01}, + {0xdfbb, 0x01}, + {0xdfbc, 0x01}, + {0xdfbd, 0x01}, + {0xdfbe, 0x01}, + {0xdfbf, 0x01}, + {0xdfc0, 0x01}, + {0xdfc1, 0x01}, + {0xdfc2, 0x01}, + {0xdfc3, 0x01}, + {0xdfc4, 0x01}, + {0xdfc5, 0x01}, + {0xdfc6, 0x01}, + {0xdfc7, 0x01}, + {0xdfc8, 0x01}, + {0xdfc9, 0x01}, + {0xdfca, 0x01}, + {0xdfcb, 0x01}, + {0xdfcc, 0x01}, + {0xdfcd, 0x01}, + {0xdfce, 0x01}, + {0xdfcf, 0x01}, + {0xdfd0, 0x01}, + {0xdfd1, 0x01}, + {0xdfd2, 0x01}, + {0xdfd3, 0x01}, + {0xdfd4, 0x01}, + {0xdfd5, 0x01}, + {0xdfd6, 0x01}, + {0xdfd7, 0x01}, + {0xdfd8, 0x01}, + {0xdfd9, 0x01}, + {0xdfda, 0x01}, + {0xdfdb, 0x01}, + {0xdfdc, 0x01}, + {0xdfdd, 0x01}, + {0xdfde, 0x01}, + {0xdfdf, 0x01}, + {0xdfe0, 0x01}, + {0xdfe1, 0x01}, + {0xdfe2, 0x01}, + {0xdfe3, 0x01}, + {0xdfe4, 0x01}, + {0xdfe5, 0x01}, + {0xdfe6, 0x01}, + {0xdfe7, 0x01}, + {0xdfe8, 0x01}, + {0xdfe9, 0x01}, + {0xdfea, 0x01}, + {0xdfeb, 0x01}, + {0xdfec, 0x01}, + {0xdfed, 0x01}, + {0xdfee, 0x01}, + {0xdfef, 0x01}, + {0xdff0, 0x01}, + {0xdff1, 0x01}, + {0xdff2, 0x01}, + {0xdff3, 0x01}, + {0xdff4, 0x01}, + {0xdff5, 0x01}, + {0xdff6, 0x01}, + {0xdff7, 0x01}, + {0xdff8, 0x01}, + {0xdff9, 0x01}, + {0xdffa, 0x01}, + {0xdffb, 0x01}, + {0xdffc, 0x01}, + {0xdffd, 0x01}, + {0xdffe, 0x01}, + {0xe040, 0x01}, + {0xe041, 0x01}, + {0xe042, 0x01}, + {0xe043, 0x01}, + {0xe044, 0x01}, + {0xe045, 0x01}, + {0xe046, 0x01}, + {0xe047, 0x01}, + {0xe048, 0x01}, + {0xe049, 0x01}, + {0xe04a, 0x01}, + {0xe04b, 0x01}, + {0xe04c, 0x01}, + {0xe04d, 0x01}, + {0xe04e, 0x01}, + {0xe04f, 0x01}, + {0xe050, 0x01}, + {0xe051, 0x01}, + {0xe052, 0x01}, + {0xe053, 0x01}, + {0xe054, 0x01}, + {0xe055, 0x01}, + {0xe056, 0x01}, + {0xe057, 0x01}, + {0xe058, 0x01}, + {0xe059, 0x01}, + {0xe05a, 0x01}, + {0xe05b, 0x01}, + {0xe05c, 0x01}, + {0xe05d, 0x01}, + {0xe05e, 0x01}, + {0xe05f, 0x01}, + {0xe060, 0x01}, + {0xe061, 0x01}, + {0xe062, 0x01}, + {0xe063, 0x01}, + {0xe064, 0x01}, + {0xe065, 0x01}, + {0xe066, 0x01}, + {0xe067, 0x01}, + {0xe068, 0x01}, + {0xe069, 0x01}, + {0xe06a, 0x01}, + {0xe06b, 0x01}, + {0xe06c, 0x01}, + {0xe06d, 0x01}, + {0xe06e, 0x01}, + {0xe06f, 0x01}, + {0xe070, 0x01}, + {0xe071, 0x01}, + {0xe072, 0x01}, + {0xe073, 0x01}, + {0xe074, 0x01}, + {0xe075, 0x01}, + {0xe076, 0x01}, + {0xe077, 0x01}, + {0xe078, 0x01}, + {0xe079, 0x01}, + {0xe07a, 0x01}, + {0xe07b, 0x01}, + {0xe07c, 0x01}, + {0xe07d, 0x01}, + {0xe07e, 0x01}, + {0xe080, 0x01}, + {0xe081, 0x01}, + {0xe082, 0x01}, + {0xe083, 0x01}, + {0xe084, 0x01}, + {0xe085, 0x01}, + {0xe086, 0x01}, + {0xe087, 0x01}, + {0xe088, 0x01}, + {0xe089, 0x01}, + {0xe08a, 0x01}, + {0xe08b, 0x01}, + {0xe08c, 0x01}, + {0xe08d, 0x01}, + {0xe08e, 0x01}, + {0xe08f, 0x01}, + {0xe090, 0x01}, + {0xe091, 0x01}, + {0xe092, 0x01}, + {0xe093, 0x01}, + {0xe094, 0x01}, + {0xe095, 0x01}, + {0xe096, 0x01}, + {0xe097, 0x01}, + {0xe098, 0x01}, + {0xe099, 0x01}, + {0xe09a, 0x01}, + {0xe09b, 0x01}, + {0xe09c, 0x01}, + {0xe09d, 0x01}, + {0xe09e, 0x01}, + {0xe09f, 0x01}, + {0xe0a0, 0x01}, + {0xe0a1, 0x01}, + {0xe0a2, 0x01}, + {0xe0a3, 0x01}, + {0xe0a4, 0x01}, + {0xe0a5, 0x01}, + {0xe0a6, 0x01}, + {0xe0a7, 0x01}, + {0xe0a8, 0x01}, + {0xe0a9, 0x01}, + {0xe0aa, 0x01}, + {0xe0ab, 0x01}, + {0xe0ac, 0x01}, + {0xe0ad, 0x01}, + {0xe0ae, 0x01}, + {0xe0af, 0x01}, + {0xe0b0, 0x01}, + {0xe0b1, 0x01}, + {0xe0b2, 0x01}, + {0xe0b3, 0x01}, + {0xe0b4, 0x01}, + {0xe0b5, 0x01}, + {0xe0b6, 0x01}, + {0xe0b7, 0x01}, + {0xe0b8, 0x01}, + {0xe0b9, 0x01}, + {0xe0ba, 0x01}, + {0xe0bb, 0x01}, + {0xe0bc, 0x01}, + {0xe0bd, 0x01}, + {0xe0be, 0x01}, + {0xe0bf, 0x01}, + {0xe0c0, 0x01}, + {0xe0c1, 0x01}, + {0xe0c2, 0x01}, + {0xe0c3, 0x01}, + {0xe0c4, 0x01}, + {0xe0c5, 0x01}, + {0xe0c6, 0x01}, + {0xe0c7, 0x01}, + {0xe0c8, 0x01}, + {0xe0c9, 0x01}, + {0xe0ca, 0x01}, + {0xe0cb, 0x01}, + {0xe0cc, 0x01}, + {0xe0cd, 0x01}, + {0xe0ce, 0x01}, + {0xe0cf, 0x01}, + {0xe0d0, 0x01}, + {0xe0d1, 0x01}, + {0xe0d2, 0x01}, + {0xe0d3, 0x01}, + {0xe0d4, 0x01}, + {0xe0d5, 0x01}, + {0xe0d6, 0x01}, + {0xe0d7, 0x01}, + {0xe0d8, 0x01}, + {0xe0d9, 0x01}, + {0xe0da, 0x01}, + {0xe0db, 0x01}, + {0xe0dc, 0x01}, + {0xe0dd, 0x01}, + {0xe0de, 0x01}, + {0xe0df, 0x01}, + {0xe0e0, 0x01}, + {0xe0e1, 0x01}, + {0xe0e2, 0x01}, + {0xe0e3, 0x01}, + {0xe0e4, 0x01}, + {0xe0e5, 0x01}, + {0xe0e6, 0x01}, + {0xe0e7, 0x01}, + {0xe0e8, 0x01}, + {0xe0e9, 0x01}, + {0xe0ea, 0x01}, + {0xe0eb, 0x01}, + {0xe0ec, 0x01}, + {0xe0ed, 0x01}, + {0xe0ee, 0x01}, + {0xe0ef, 0x01}, + {0xe0f0, 0x01}, + {0xe0f1, 0x01}, + {0xe0f2, 0x01}, + {0xe0f3, 0x01}, + {0xe0f4, 0x01}, + {0xe0f5, 0x01}, + {0xe0f6, 0x01}, + {0xe0f7, 0x01}, + {0xe0f8, 0x01}, + {0xe0f9, 0x01}, + {0xe0fa, 0x01}, + {0xe0fb, 0x01}, + {0xe0fc, 0x01}, + {0xe0fd, 0x01}, + {0xe0fe, 0x01}, + {0xe140, 0x01}, + {0xe141, 0x01}, + {0xe142, 0x01}, + {0xe143, 0x01}, + {0xe144, 0x01}, + {0xe145, 0x01}, + {0xe146, 0x01}, + {0xe147, 0x01}, + {0xe148, 0x01}, + {0xe149, 0x01}, + {0xe14a, 0x01}, + {0xe14b, 0x01}, + {0xe14c, 0x01}, + {0xe14d, 0x01}, + {0xe14e, 0x01}, + {0xe14f, 0x01}, + {0xe150, 0x01}, + {0xe151, 0x01}, + {0xe152, 0x01}, + {0xe153, 0x01}, + {0xe154, 0x01}, + {0xe155, 0x01}, + {0xe156, 0x01}, + {0xe157, 0x01}, + {0xe158, 0x01}, + {0xe159, 0x01}, + {0xe15a, 0x01}, + {0xe15b, 0x01}, + {0xe15c, 0x01}, + {0xe15d, 0x01}, + {0xe15e, 0x01}, + {0xe15f, 0x01}, + {0xe160, 0x01}, + {0xe161, 0x01}, + {0xe162, 0x01}, + {0xe163, 0x01}, + {0xe164, 0x01}, + {0xe165, 0x01}, + {0xe166, 0x01}, + {0xe167, 0x01}, + {0xe168, 0x01}, + {0xe169, 0x01}, + {0xe16a, 0x01}, + {0xe16b, 0x01}, + {0xe16c, 0x01}, + {0xe16d, 0x01}, + {0xe16e, 0x01}, + {0xe16f, 0x01}, + {0xe170, 0x01}, + {0xe171, 0x01}, + {0xe172, 0x01}, + {0xe173, 0x01}, + {0xe174, 0x01}, + {0xe175, 0x01}, + {0xe176, 0x01}, + {0xe177, 0x01}, + {0xe178, 0x01}, + {0xe179, 0x01}, + {0xe17a, 0x01}, + {0xe17b, 0x01}, + {0xe17c, 0x01}, + {0xe17d, 0x01}, + {0xe17e, 0x01}, + {0xe180, 0x01}, + {0xe181, 0x01}, + {0xe182, 0x01}, + {0xe183, 0x01}, + {0xe184, 0x01}, + {0xe185, 0x01}, + {0xe186, 0x01}, + {0xe187, 0x01}, + {0xe188, 0x01}, + {0xe189, 0x01}, + {0xe18a, 0x01}, + {0xe18b, 0x01}, + {0xe18c, 0x01}, + {0xe18d, 0x01}, + {0xe18e, 0x01}, + {0xe18f, 0x01}, + {0xe190, 0x01}, + {0xe191, 0x01}, + {0xe192, 0x01}, + {0xe193, 0x01}, + {0xe194, 0x01}, + {0xe195, 0x01}, + {0xe196, 0x01}, + {0xe197, 0x01}, + {0xe198, 0x01}, + {0xe199, 0x01}, + {0xe19a, 0x01}, + {0xe19b, 0x01}, + {0xe19c, 0x01}, + {0xe19d, 0x01}, + {0xe19e, 0x01}, + {0xe19f, 0x01}, + {0xe1a0, 0x01}, + {0xe1a1, 0x01}, + {0xe1a2, 0x01}, + {0xe1a3, 0x01}, + {0xe1a4, 0x01}, + {0xe1a5, 0x01}, + {0xe1a6, 0x01}, + {0xe1a7, 0x01}, + {0xe1a8, 0x01}, + {0xe1a9, 0x01}, + {0xe1aa, 0x01}, + {0xe1ab, 0x01}, + {0xe1ac, 0x01}, + {0xe1ad, 0x01}, + {0xe1ae, 0x01}, + {0xe1af, 0x01}, + {0xe1b0, 0x01}, + {0xe1b1, 0x01}, + {0xe1b2, 0x01}, + {0xe1b3, 0x01}, + {0xe1b4, 0x01}, + {0xe1b5, 0x01}, + {0xe1b6, 0x01}, + {0xe1b7, 0x01}, + {0xe1b8, 0x01}, + {0xe1b9, 0x01}, + {0xe1ba, 0x01}, + {0xe1bb, 0x01}, + {0xe1bc, 0x01}, + {0xe1bd, 0x01}, + {0xe1be, 0x01}, + {0xe1bf, 0x01}, + {0xe1c0, 0x01}, + {0xe1c1, 0x01}, + {0xe1c2, 0x01}, + {0xe1c3, 0x01}, + {0xe1c4, 0x01}, + {0xe1c5, 0x01}, + {0xe1c6, 0x01}, + {0xe1c7, 0x01}, + {0xe1c8, 0x01}, + {0xe1c9, 0x01}, + {0xe1ca, 0x01}, + {0xe1cb, 0x01}, + {0xe1cc, 0x01}, + {0xe1cd, 0x01}, + {0xe1ce, 0x01}, + {0xe1cf, 0x01}, + {0xe1d0, 0x01}, + {0xe1d1, 0x01}, + {0xe1d2, 0x01}, + {0xe1d3, 0x01}, + {0xe1d4, 0x01}, + {0xe1d5, 0x01}, + {0xe1d6, 0x01}, + {0xe1d7, 0x01}, + {0xe1d8, 0x01}, + {0xe1d9, 0x01}, + {0xe1da, 0x01}, + {0xe1db, 0x01}, + {0xe1dc, 0x01}, + {0xe1dd, 0x01}, + {0xe1de, 0x01}, + {0xe1df, 0x01}, + {0xe1e0, 0x01}, + {0xe1e1, 0x01}, + {0xe1e2, 0x01}, + {0xe1e3, 0x01}, + {0xe1e4, 0x01}, + {0xe1e5, 0x01}, + {0xe1e6, 0x01}, + {0xe1e7, 0x01}, + {0xe1e8, 0x01}, + {0xe1e9, 0x01}, + {0xe1ea, 0x01}, + {0xe1eb, 0x01}, + {0xe1ec, 0x01}, + {0xe1ed, 0x01}, + {0xe1ee, 0x01}, + {0xe1ef, 0x01}, + {0xe1f0, 0x01}, + {0xe1f1, 0x01}, + {0xe1f2, 0x01}, + {0xe1f3, 0x01}, + {0xe1f4, 0x01}, + {0xe1f5, 0x01}, + {0xe1f6, 0x01}, + {0xe1f7, 0x01}, + {0xe1f8, 0x01}, + {0xe1f9, 0x01}, + {0xe1fa, 0x01}, + {0xe1fb, 0x01}, + {0xe1fc, 0x01}, + {0xe1fd, 0x01}, + {0xe1fe, 0x01}, + {0xe240, 0x01}, + {0xe241, 0x01}, + {0xe242, 0x01}, + {0xe243, 0x01}, + {0xe244, 0x01}, + {0xe245, 0x01}, + {0xe246, 0x01}, + {0xe247, 0x01}, + {0xe248, 0x01}, + {0xe249, 0x01}, + {0xe24a, 0x01}, + {0xe24b, 0x01}, + {0xe24c, 0x01}, + {0xe24d, 0x01}, + {0xe24e, 0x01}, + {0xe24f, 0x01}, + {0xe250, 0x01}, + {0xe251, 0x01}, + {0xe252, 0x01}, + {0xe253, 0x01}, + {0xe254, 0x01}, + {0xe255, 0x01}, + {0xe256, 0x01}, + {0xe257, 0x01}, + {0xe258, 0x01}, + {0xe259, 0x01}, + {0xe25a, 0x01}, + {0xe25b, 0x01}, + {0xe25c, 0x01}, + {0xe25d, 0x01}, + {0xe25e, 0x01}, + {0xe25f, 0x01}, + {0xe260, 0x01}, + {0xe261, 0x01}, + {0xe262, 0x01}, + {0xe263, 0x01}, + {0xe264, 0x01}, + {0xe265, 0x01}, + {0xe266, 0x01}, + {0xe267, 0x01}, + {0xe268, 0x01}, + {0xe269, 0x01}, + {0xe26a, 0x01}, + {0xe26b, 0x01}, + {0xe26c, 0x01}, + {0xe26d, 0x01}, + {0xe26e, 0x01}, + {0xe26f, 0x01}, + {0xe270, 0x01}, + {0xe271, 0x01}, + {0xe272, 0x01}, + {0xe273, 0x01}, + {0xe274, 0x01}, + {0xe275, 0x01}, + {0xe276, 0x01}, + {0xe277, 0x01}, + {0xe278, 0x01}, + {0xe279, 0x01}, + {0xe27a, 0x01}, + {0xe27b, 0x01}, + {0xe27c, 0x01}, + {0xe27d, 0x01}, + {0xe27e, 0x01}, + {0xe280, 0x01}, + {0xe281, 0x01}, + {0xe282, 0x01}, + {0xe283, 0x01}, + {0xe284, 0x01}, + {0xe285, 0x01}, + {0xe286, 0x01}, + {0xe287, 0x01}, + {0xe288, 0x01}, + {0xe289, 0x01}, + {0xe28a, 0x01}, + {0xe28b, 0x01}, + {0xe28c, 0x01}, + {0xe28d, 0x01}, + {0xe28e, 0x01}, + {0xe28f, 0x01}, + {0xe290, 0x01}, + {0xe291, 0x01}, + {0xe292, 0x01}, + {0xe293, 0x01}, + {0xe294, 0x01}, + {0xe295, 0x01}, + {0xe296, 0x01}, + {0xe297, 0x01}, + {0xe298, 0x01}, + {0xe299, 0x01}, + {0xe29a, 0x01}, + {0xe29b, 0x01}, + {0xe29c, 0x01}, + {0xe29d, 0x01}, + {0xe29e, 0x01}, + {0xe29f, 0x01}, + {0xe2a0, 0x01}, + {0xe2a1, 0x01}, + {0xe2a2, 0x01}, + {0xe2a3, 0x01}, + {0xe2a4, 0x01}, + {0xe2a5, 0x01}, + {0xe2a6, 0x01}, + {0xe2a7, 0x01}, + {0xe2a8, 0x01}, + {0xe2a9, 0x01}, + {0xe2aa, 0x01}, + {0xe2ab, 0x01}, + {0xe2ac, 0x01}, + {0xe2ad, 0x01}, + {0xe2ae, 0x01}, + {0xe2af, 0x01}, + {0xe2b0, 0x01}, + {0xe2b1, 0x01}, + {0xe2b2, 0x01}, + {0xe2b3, 0x01}, + {0xe2b4, 0x01}, + {0xe2b5, 0x01}, + {0xe2b6, 0x01}, + {0xe2b7, 0x01}, + {0xe2b8, 0x01}, + {0xe2b9, 0x01}, + {0xe2ba, 0x01}, + {0xe2bb, 0x01}, + {0xe2bc, 0x01}, + {0xe2bd, 0x01}, + {0xe2be, 0x01}, + {0xe2bf, 0x01}, + {0xe2c0, 0x01}, + {0xe2c1, 0x01}, + {0xe2c2, 0x01}, + {0xe2c3, 0x01}, + {0xe2c4, 0x01}, + {0xe2c5, 0x01}, + {0xe2c6, 0x01}, + {0xe2c7, 0x01}, + {0xe2c8, 0x01}, + {0xe2c9, 0x01}, + {0xe2ca, 0x01}, + {0xe2cb, 0x01}, + {0xe2cc, 0x01}, + {0xe2cd, 0x01}, + {0xe2ce, 0x01}, + {0xe2cf, 0x01}, + {0xe2d0, 0x01}, + {0xe2d1, 0x01}, + {0xe2d2, 0x01}, + {0xe2d3, 0x01}, + {0xe2d4, 0x01}, + {0xe2d5, 0x01}, + {0xe2d6, 0x01}, + {0xe2d7, 0x01}, + {0xe2d8, 0x01}, + {0xe2d9, 0x01}, + {0xe2da, 0x01}, + {0xe2db, 0x01}, + {0xe2dc, 0x01}, + {0xe2dd, 0x01}, + {0xe2de, 0x01}, + {0xe2df, 0x01}, + {0xe2e0, 0x01}, + {0xe2e1, 0x01}, + {0xe2e2, 0x01}, + {0xe2e3, 0x01}, + {0xe2e4, 0x01}, + {0xe2e5, 0x01}, + {0xe2e6, 0x01}, + {0xe2e7, 0x01}, + {0xe2e8, 0x01}, + {0xe2e9, 0x01}, + {0xe2ea, 0x01}, + {0xe2eb, 0x01}, + {0xe2ec, 0x01}, + {0xe2ed, 0x01}, + {0xe2ee, 0x01}, + {0xe2ef, 0x01}, + {0xe2f0, 0x01}, + {0xe2f1, 0x01}, + {0xe2f2, 0x01}, + {0xe2f3, 0x01}, + {0xe2f4, 0x01}, + {0xe2f5, 0x01}, + {0xe2f6, 0x01}, + {0xe2f7, 0x01}, + {0xe2f8, 0x01}, + {0xe2f9, 0x01}, + {0xe2fa, 0x01}, + {0xe2fb, 0x01}, + {0xe2fc, 0x01}, + {0xe2fd, 0x01}, + {0xe2fe, 0x01}, + {0xe340, 0x01}, + {0xe341, 0x01}, + {0xe342, 0x01}, + {0xe343, 0x01}, + {0xe344, 0x01}, + {0xe345, 0x01}, + {0xe346, 0x01}, + {0xe347, 0x01}, + {0xe348, 0x01}, + {0xe349, 0x01}, + {0xe34a, 0x01}, + {0xe34b, 0x01}, + {0xe34c, 0x01}, + {0xe34d, 0x01}, + {0xe34e, 0x01}, + {0xe34f, 0x01}, + {0xe350, 0x01}, + {0xe351, 0x01}, + {0xe352, 0x01}, + {0xe353, 0x01}, + {0xe354, 0x01}, + {0xe355, 0x01}, + {0xe356, 0x01}, + {0xe357, 0x01}, + {0xe358, 0x01}, + {0xe359, 0x01}, + {0xe35a, 0x01}, + {0xe35b, 0x01}, + {0xe35c, 0x01}, + {0xe35d, 0x01}, + {0xe35e, 0x01}, + {0xe35f, 0x01}, + {0xe360, 0x01}, + {0xe361, 0x01}, + {0xe362, 0x01}, + {0xe363, 0x01}, + {0xe364, 0x01}, + {0xe365, 0x01}, + {0xe366, 0x01}, + {0xe367, 0x01}, + {0xe368, 0x01}, + {0xe369, 0x01}, + {0xe36a, 0x01}, + {0xe36b, 0x01}, + {0xe36c, 0x01}, + {0xe36d, 0x01}, + {0xe36e, 0x01}, + {0xe36f, 0x01}, + {0xe370, 0x01}, + {0xe371, 0x01}, + {0xe372, 0x01}, + {0xe373, 0x01}, + {0xe374, 0x01}, + {0xe375, 0x01}, + {0xe376, 0x01}, + {0xe377, 0x01}, + {0xe378, 0x01}, + {0xe379, 0x01}, + {0xe37a, 0x01}, + {0xe37b, 0x01}, + {0xe37c, 0x01}, + {0xe37d, 0x01}, + {0xe37e, 0x01}, + {0xe380, 0x01}, + {0xe381, 0x01}, + {0xe382, 0x01}, + {0xe383, 0x01}, + {0xe384, 0x01}, + {0xe385, 0x01}, + {0xe386, 0x01}, + {0xe387, 0x01}, + {0xe388, 0x01}, + {0xe389, 0x01}, + {0xe38a, 0x01}, + {0xe38b, 0x01}, + {0xe38c, 0x01}, + {0xe38d, 0x01}, + {0xe38e, 0x01}, + {0xe38f, 0x01}, + {0xe390, 0x01}, + {0xe391, 0x01}, + {0xe392, 0x01}, + {0xe393, 0x01}, + {0xe394, 0x01}, + {0xe395, 0x01}, + {0xe396, 0x01}, + {0xe397, 0x01}, + {0xe398, 0x01}, + {0xe399, 0x01}, + {0xe39a, 0x01}, + {0xe39b, 0x01}, + {0xe39c, 0x01}, + {0xe39d, 0x01}, + {0xe39e, 0x01}, + {0xe39f, 0x01}, + {0xe3a0, 0x01}, + {0xe3a1, 0x01}, + {0xe3a2, 0x01}, + {0xe3a3, 0x01}, + {0xe3a4, 0x01}, + {0xe3a5, 0x01}, + {0xe3a6, 0x01}, + {0xe3a7, 0x01}, + {0xe3a8, 0x01}, + {0xe3a9, 0x01}, + {0xe3aa, 0x01}, + {0xe3ab, 0x01}, + {0xe3ac, 0x01}, + {0xe3ad, 0x01}, + {0xe3ae, 0x01}, + {0xe3af, 0x01}, + {0xe3b0, 0x01}, + {0xe3b1, 0x01}, + {0xe3b2, 0x01}, + {0xe3b3, 0x01}, + {0xe3b4, 0x01}, + {0xe3b5, 0x01}, + {0xe3b6, 0x01}, + {0xe3b7, 0x01}, + {0xe3b8, 0x01}, + {0xe3b9, 0x01}, + {0xe3ba, 0x01}, + {0xe3bb, 0x01}, + {0xe3bc, 0x01}, + {0xe3bd, 0x01}, + {0xe3be, 0x01}, + {0xe3bf, 0x01}, + {0xe3c0, 0x01}, + {0xe3c1, 0x01}, + {0xe3c2, 0x01}, + {0xe3c3, 0x01}, + {0xe3c4, 0x01}, + {0xe3c5, 0x01}, + {0xe3c6, 0x01}, + {0xe3c7, 0x01}, + {0xe3c8, 0x01}, + {0xe3c9, 0x01}, + {0xe3ca, 0x01}, + {0xe3cb, 0x01}, + {0xe3cc, 0x01}, + {0xe3cd, 0x01}, + {0xe3ce, 0x01}, + {0xe3cf, 0x01}, + {0xe3d0, 0x01}, + {0xe3d1, 0x01}, + {0xe3d2, 0x01}, + {0xe3d3, 0x01}, + {0xe3d4, 0x01}, + {0xe3d5, 0x01}, + {0xe3d6, 0x01}, + {0xe3d7, 0x01}, + {0xe3d8, 0x01}, + {0xe3d9, 0x01}, + {0xe3da, 0x01}, + {0xe3db, 0x01}, + {0xe3dc, 0x01}, + {0xe3dd, 0x01}, + {0xe3de, 0x01}, + {0xe3df, 0x01}, + {0xe3e0, 0x01}, + {0xe3e1, 0x01}, + {0xe3e2, 0x01}, + {0xe3e3, 0x01}, + {0xe3e4, 0x01}, + {0xe3e5, 0x01}, + {0xe3e6, 0x01}, + {0xe3e7, 0x01}, + {0xe3e8, 0x01}, + {0xe3e9, 0x01}, + {0xe3ea, 0x01}, + {0xe3eb, 0x01}, + {0xe3ec, 0x01}, + {0xe3ed, 0x01}, + {0xe3ee, 0x01}, + {0xe3ef, 0x01}, + {0xe3f0, 0x01}, + {0xe3f1, 0x01}, + {0xe3f2, 0x01}, + {0xe3f3, 0x01}, + {0xe3f4, 0x01}, + {0xe3f5, 0x01}, + {0xe3f6, 0x01}, + {0xe3f7, 0x01}, + {0xe3f8, 0x01}, + {0xe3f9, 0x01}, + {0xe3fa, 0x01}, + {0xe3fb, 0x01}, + {0xe3fc, 0x01}, + {0xe3fd, 0x01}, + {0xe3fe, 0x01}, + {0xe440, 0x01}, + {0xe441, 0x01}, + {0xe442, 0x01}, + {0xe443, 0x01}, + {0xe444, 0x01}, + {0xe445, 0x01}, + {0xe446, 0x01}, + {0xe447, 0x01}, + {0xe448, 0x01}, + {0xe449, 0x01}, + {0xe44a, 0x01}, + {0xe44b, 0x01}, + {0xe44c, 0x01}, + {0xe44d, 0x01}, + {0xe44e, 0x01}, + {0xe44f, 0x01}, + {0xe450, 0x01}, + {0xe451, 0x01}, + {0xe452, 0x01}, + {0xe453, 0x01}, + {0xe454, 0x01}, + {0xe455, 0x01}, + {0xe456, 0x01}, + {0xe457, 0x01}, + {0xe458, 0x01}, + {0xe459, 0x01}, + {0xe45a, 0x01}, + {0xe45b, 0x01}, + {0xe45c, 0x01}, + {0xe45d, 0x01}, + {0xe45e, 0x01}, + {0xe45f, 0x01}, + {0xe460, 0x01}, + {0xe461, 0x01}, + {0xe462, 0x01}, + {0xe463, 0x01}, + {0xe464, 0x01}, + {0xe465, 0x01}, + {0xe466, 0x01}, + {0xe467, 0x01}, + {0xe468, 0x01}, + {0xe469, 0x01}, + {0xe46a, 0x01}, + {0xe46b, 0x01}, + {0xe46c, 0x01}, + {0xe46d, 0x01}, + {0xe46e, 0x01}, + {0xe46f, 0x01}, + {0xe470, 0x01}, + {0xe471, 0x01}, + {0xe472, 0x01}, + {0xe473, 0x01}, + {0xe474, 0x01}, + {0xe475, 0x01}, + {0xe476, 0x01}, + {0xe477, 0x01}, + {0xe478, 0x01}, + {0xe479, 0x01}, + {0xe47a, 0x01}, + {0xe47b, 0x01}, + {0xe47c, 0x01}, + {0xe47d, 0x01}, + {0xe47e, 0x01}, + {0xe480, 0x01}, + {0xe481, 0x01}, + {0xe482, 0x01}, + {0xe483, 0x01}, + {0xe484, 0x01}, + {0xe485, 0x01}, + {0xe486, 0x01}, + {0xe487, 0x01}, + {0xe488, 0x01}, + {0xe489, 0x01}, + {0xe48a, 0x01}, + {0xe48b, 0x01}, + {0xe48c, 0x01}, + {0xe48d, 0x01}, + {0xe48e, 0x01}, + {0xe48f, 0x01}, + {0xe490, 0x01}, + {0xe491, 0x01}, + {0xe492, 0x01}, + {0xe493, 0x01}, + {0xe494, 0x01}, + {0xe495, 0x01}, + {0xe496, 0x01}, + {0xe497, 0x01}, + {0xe498, 0x01}, + {0xe499, 0x01}, + {0xe49a, 0x01}, + {0xe49b, 0x01}, + {0xe49c, 0x01}, + {0xe49d, 0x01}, + {0xe49e, 0x01}, + {0xe49f, 0x01}, + {0xe4a0, 0x01}, + {0xe4a1, 0x01}, + {0xe4a2, 0x01}, + {0xe4a3, 0x01}, + {0xe4a4, 0x01}, + {0xe4a5, 0x01}, + {0xe4a6, 0x01}, + {0xe4a7, 0x01}, + {0xe4a8, 0x01}, + {0xe4a9, 0x01}, + {0xe4aa, 0x01}, + {0xe4ab, 0x01}, + {0xe4ac, 0x01}, + {0xe4ad, 0x01}, + {0xe4ae, 0x01}, + {0xe4af, 0x01}, + {0xe4b0, 0x01}, + {0xe4b1, 0x01}, + {0xe4b2, 0x01}, + {0xe4b3, 0x01}, + {0xe4b4, 0x01}, + {0xe4b5, 0x01}, + {0xe4b6, 0x01}, + {0xe4b7, 0x01}, + {0xe4b8, 0x01}, + {0xe4b9, 0x01}, + {0xe4ba, 0x01}, + {0xe4bb, 0x01}, + {0xe4bc, 0x01}, + {0xe4bd, 0x01}, + {0xe4be, 0x01}, + {0xe4bf, 0x01}, + {0xe4c0, 0x01}, + {0xe4c1, 0x01}, + {0xe4c2, 0x01}, + {0xe4c3, 0x01}, + {0xe4c4, 0x01}, + {0xe4c5, 0x01}, + {0xe4c6, 0x01}, + {0xe4c7, 0x01}, + {0xe4c8, 0x01}, + {0xe4c9, 0x01}, + {0xe4ca, 0x01}, + {0xe4cb, 0x01}, + {0xe4cc, 0x01}, + {0xe4cd, 0x01}, + {0xe4ce, 0x01}, + {0xe4cf, 0x01}, + {0xe4d0, 0x01}, + {0xe4d1, 0x01}, + {0xe4d2, 0x01}, + {0xe4d3, 0x01}, + {0xe4d4, 0x01}, + {0xe4d5, 0x01}, + {0xe4d6, 0x01}, + {0xe4d7, 0x01}, + {0xe4d8, 0x01}, + {0xe4d9, 0x01}, + {0xe4da, 0x01}, + {0xe4db, 0x01}, + {0xe4dc, 0x01}, + {0xe4dd, 0x01}, + {0xe4de, 0x01}, + {0xe4df, 0x01}, + {0xe4e0, 0x01}, + {0xe4e1, 0x01}, + {0xe4e2, 0x01}, + {0xe4e3, 0x01}, + {0xe4e4, 0x01}, + {0xe4e5, 0x01}, + {0xe4e6, 0x01}, + {0xe4e7, 0x01}, + {0xe4e8, 0x01}, + {0xe4e9, 0x01}, + {0xe4ea, 0x01}, + {0xe4eb, 0x01}, + {0xe4ec, 0x01}, + {0xe4ed, 0x01}, + {0xe4ee, 0x01}, + {0xe4ef, 0x01}, + {0xe4f0, 0x01}, + {0xe4f1, 0x01}, + {0xe4f2, 0x01}, + {0xe4f3, 0x01}, + {0xe4f4, 0x01}, + {0xe4f5, 0x01}, + {0xe4f6, 0x01}, + {0xe4f7, 0x01}, + {0xe4f8, 0x01}, + {0xe4f9, 0x01}, + {0xe4fa, 0x01}, + {0xe4fb, 0x01}, + {0xe4fc, 0x01}, + {0xe4fd, 0x01}, + {0xe4fe, 0x01}, + {0xe540, 0x01}, + {0xe541, 0x01}, + {0xe542, 0x01}, + {0xe543, 0x01}, + {0xe544, 0x01}, + {0xe545, 0x01}, + {0xe546, 0x01}, + {0xe547, 0x01}, + {0xe548, 0x01}, + {0xe549, 0x01}, + {0xe54a, 0x01}, + {0xe54b, 0x01}, + {0xe54c, 0x01}, + {0xe54d, 0x01}, + {0xe54e, 0x01}, + {0xe54f, 0x01}, + {0xe550, 0x01}, + {0xe551, 0x01}, + {0xe552, 0x01}, + {0xe553, 0x01}, + {0xe554, 0x01}, + {0xe555, 0x01}, + {0xe556, 0x01}, + {0xe557, 0x01}, + {0xe558, 0x01}, + {0xe559, 0x01}, + {0xe55a, 0x01}, + {0xe55b, 0x01}, + {0xe55c, 0x01}, + {0xe55d, 0x01}, + {0xe55e, 0x01}, + {0xe55f, 0x01}, + {0xe560, 0x01}, + {0xe561, 0x01}, + {0xe562, 0x01}, + {0xe563, 0x01}, + {0xe564, 0x01}, + {0xe565, 0x01}, + {0xe566, 0x01}, + {0xe567, 0x01}, + {0xe568, 0x01}, + {0xe569, 0x01}, + {0xe56a, 0x01}, + {0xe56b, 0x01}, + {0xe56c, 0x01}, + {0xe56d, 0x01}, + {0xe56e, 0x01}, + {0xe56f, 0x01}, + {0xe570, 0x01}, + {0xe571, 0x01}, + {0xe572, 0x01}, + {0xe573, 0x01}, + {0xe574, 0x01}, + {0xe575, 0x01}, + {0xe576, 0x01}, + {0xe578, 0x01}, + {0xe579, 0x01}, + {0xe57a, 0x01}, + {0xe57b, 0x01}, + {0xe57c, 0x01}, + {0xe57d, 0x01}, + {0xe57e, 0x01}, + {0xe580, 0x01}, + {0xe581, 0x01}, + {0xe582, 0x01}, + {0xe583, 0x01}, + {0xe584, 0x01}, + {0xe585, 0x01}, + {0xe586, 0x01}, + {0xe587, 0x01}, + {0xe588, 0x01}, + {0xe589, 0x01}, + {0xe58a, 0x01}, + {0xe58b, 0x01}, + {0xe58c, 0x01}, + {0xe58d, 0x01}, + {0xe58e, 0x01}, + {0xe58f, 0x01}, + {0xe590, 0x01}, + {0xe591, 0x01}, + {0xe592, 0x01}, + {0xe593, 0x01}, + {0xe594, 0x01}, + {0xe595, 0x01}, + {0xe596, 0x01}, + {0xe597, 0x01}, + {0xe598, 0x01}, + {0xe599, 0x01}, + {0xe59a, 0x01}, + {0xe59b, 0x01}, + {0xe59c, 0x01}, + {0xe59d, 0x01}, + {0xe59e, 0x01}, + {0xe59f, 0x01}, + {0xe5a0, 0x01}, + {0xe5a1, 0x01}, + {0xe5a2, 0x01}, + {0xe5a3, 0x01}, + {0xe5a4, 0x01}, + {0xe5a5, 0x01}, + {0xe5a6, 0x01}, + {0xe5a7, 0x01}, + {0xe5a8, 0x01}, + {0xe5a9, 0x01}, + {0xe5aa, 0x01}, + {0xe5ab, 0x01}, + {0xe5ac, 0x01}, + {0xe5ad, 0x01}, + {0xe5ae, 0x01}, + {0xe5af, 0x01}, + {0xe5b0, 0x01}, + {0xe5b1, 0x01}, + {0xe5b2, 0x01}, + {0xe5b3, 0x01}, + {0xe5b4, 0x01}, + {0xe5b5, 0x01}, + {0xe5b6, 0x01}, + {0xe5b7, 0x01}, + {0xe5b8, 0x01}, + {0xe5b9, 0x01}, + {0xe5ba, 0x01}, + {0xe5bb, 0x01}, + {0xe5bc, 0x01}, + {0xe5bd, 0x01}, + {0xe5be, 0x01}, + {0xe5bf, 0x01}, + {0xe5c0, 0x01}, + {0xe5c1, 0x01}, + {0xe5c2, 0x01}, + {0xe5c3, 0x01}, + {0xe5c4, 0x01}, + {0xe5c5, 0x01}, + {0xe5c6, 0x01}, + {0xe5c7, 0x01}, + {0xe5c8, 0x01}, + {0xe5c9, 0x01}, + {0xe5ca, 0x01}, + {0xe5cb, 0x01}, + {0xe5cc, 0x01}, + {0xe5cd, 0x01}, + {0xe5ce, 0x01}, + {0xe5cf, 0x01}, + {0xe5d0, 0x01}, + {0xe5d1, 0x01}, + {0xe5d2, 0x01}, + {0xe5d3, 0x01}, + {0xe5d4, 0x01}, + {0xe5d5, 0x01}, + {0xe5d6, 0x01}, + {0xe5d7, 0x01}, + {0xe5d8, 0x01}, + {0xe5d9, 0x01}, + {0xe5da, 0x01}, + {0xe5db, 0x01}, + {0xe5dc, 0x01}, + {0xe5dd, 0x01}, + {0xe5de, 0x01}, + {0xe5df, 0x01}, + {0xe5e0, 0x01}, + {0xe5e1, 0x01}, + {0xe5e2, 0x01}, + {0xe5e3, 0x01}, + {0xe5e4, 0x01}, + {0xe5e5, 0x01}, + {0xe5e6, 0x01}, + {0xe5e7, 0x01}, + {0xe5e8, 0x01}, + {0xe5e9, 0x01}, + {0xe5ea, 0x01}, + {0xe5eb, 0x01}, + {0xe5ec, 0x01}, + {0xe5ed, 0x01}, + {0xe5ee, 0x01}, + {0xe5ef, 0x01}, + {0xe5f0, 0x01}, + {0xe5f1, 0x01}, + {0xe5f2, 0x01}, + {0xe5f3, 0x01}, + {0xe5f4, 0x01}, + {0xe5f5, 0x01}, + {0xe5f6, 0x01}, + {0xe5f7, 0x01}, + {0xe5f8, 0x01}, + {0xe5f9, 0x01}, + {0xe5fa, 0x01}, + {0xe5fb, 0x01}, + {0xe5fc, 0x01}, + {0xe5fd, 0x01}, + {0xe5fe, 0x01}, + {0xe640, 0x01}, + {0xe641, 0x01}, + {0xe642, 0x01}, + {0xe643, 0x01}, + {0xe644, 0x01}, + {0xe645, 0x01}, + {0xe646, 0x01}, + {0xe647, 0x01}, + {0xe648, 0x01}, + {0xe649, 0x01}, + {0xe64a, 0x01}, + {0xe64b, 0x01}, + {0xe64c, 0x01}, + {0xe64d, 0x01}, + {0xe64e, 0x01}, + {0xe64f, 0x01}, + {0xe650, 0x01}, + {0xe651, 0x01}, + {0xe652, 0x01}, + {0xe653, 0x01}, + {0xe654, 0x01}, + {0xe655, 0x01}, + {0xe656, 0x01}, + {0xe657, 0x01}, + {0xe658, 0x01}, + {0xe659, 0x01}, + {0xe65a, 0x01}, + {0xe65b, 0x01}, + {0xe65c, 0x01}, + {0xe65d, 0x01}, + {0xe65e, 0x01}, + {0xe65f, 0x01}, + {0xe660, 0x01}, + {0xe661, 0x01}, + {0xe662, 0x01}, + {0xe663, 0x01}, + {0xe664, 0x01}, + {0xe665, 0x01}, + {0xe666, 0x01}, + {0xe667, 0x01}, + {0xe668, 0x01}, + {0xe669, 0x01}, + {0xe66a, 0x01}, + {0xe66b, 0x01}, + {0xe66c, 0x01}, + {0xe66d, 0x01}, + {0xe66e, 0x01}, + {0xe66f, 0x01}, + {0xe670, 0x01}, + {0xe671, 0x01}, + {0xe672, 0x01}, + {0xe673, 0x01}, + {0xe674, 0x01}, + {0xe675, 0x01}, + {0xe676, 0x01}, + {0xe677, 0x01}, + {0xe678, 0x01}, + {0xe679, 0x01}, + {0xe67a, 0x01}, + {0xe67b, 0x01}, + {0xe67c, 0x01}, + {0xe67d, 0x01}, + {0xe67e, 0x01}, + {0xe680, 0x01}, + {0xe681, 0x01}, + {0xe682, 0x01}, + {0xe683, 0x01}, + {0xe684, 0x01}, + {0xe685, 0x01}, + {0xe686, 0x01}, + {0xe687, 0x01}, + {0xe688, 0x01}, + {0xe689, 0x01}, + {0xe68a, 0x01}, + {0xe68b, 0x01}, + {0xe68c, 0x01}, + {0xe68d, 0x01}, + {0xe68e, 0x01}, + {0xe68f, 0x01}, + {0xe691, 0x01}, + {0xe692, 0x01}, + {0xe693, 0x01}, + {0xe694, 0x01}, + {0xe695, 0x01}, + {0xe696, 0x01}, + {0xe697, 0x01}, + {0xe698, 0x01}, + {0xe699, 0x01}, + {0xe69a, 0x01}, + {0xe69b, 0x01}, + {0xe69c, 0x01}, + {0xe69d, 0x01}, + {0xe69e, 0x01}, + {0xe69f, 0x01}, + {0xe6a0, 0x01}, + {0xe6a1, 0x01}, + {0xe6a2, 0x01}, + {0xe6a3, 0x01}, + {0xe6a4, 0x01}, + {0xe6a5, 0x01}, + {0xe6a6, 0x01}, + {0xe6a7, 0x01}, + {0xe6a8, 0x01}, + {0xe6a9, 0x01}, + {0xe6aa, 0x01}, + {0xe6ab, 0x01}, + {0xe6ac, 0x01}, + {0xe6ad, 0x01}, + {0xe6ae, 0x01}, + {0xe6af, 0x01}, + {0xe6b0, 0x01}, + {0xe6b1, 0x01}, + {0xe6b2, 0x01}, + {0xe6b3, 0x01}, + {0xe6b4, 0x01}, + {0xe6b5, 0x01}, + {0xe6b6, 0x01}, + {0xe6b7, 0x01}, + {0xe6b8, 0x01}, + {0xe6b9, 0x01}, + {0xe6ba, 0x01}, + {0xe6bb, 0x01}, + {0xe6bc, 0x01}, + {0xe6bd, 0x01}, + {0xe6be, 0x01}, + {0xe6bf, 0x01}, + {0xe6c0, 0x01}, + {0xe6c1, 0x01}, + {0xe6c2, 0x01}, + {0xe6c3, 0x01}, + {0xe6c4, 0x01}, + {0xe6c5, 0x01}, + {0xe6c6, 0x01}, + {0xe6c7, 0x01}, + {0xe6c8, 0x01}, + {0xe6c9, 0x01}, + {0xe6ca, 0x01}, + {0xe6cb, 0x01}, + {0xe6cc, 0x01}, + {0xe6cd, 0x01}, + {0xe6ce, 0x01}, + {0xe6cf, 0x01}, + {0xe6d0, 0x01}, + {0xe6d1, 0x01}, + {0xe6d2, 0x01}, + {0xe6d3, 0x01}, + {0xe6d4, 0x01}, + {0xe6d5, 0x01}, + {0xe6d6, 0x01}, + {0xe6d7, 0x01}, + {0xe6d8, 0x01}, + {0xe6d9, 0x01}, + {0xe6da, 0x01}, + {0xe6db, 0x01}, + {0xe6dc, 0x01}, + {0xe6dd, 0x01}, + {0xe6de, 0x01}, + {0xe6df, 0x01}, + {0xe6e0, 0x01}, + {0xe6e1, 0x01}, + {0xe6e2, 0x01}, + {0xe6e3, 0x01}, + {0xe6e4, 0x01}, + {0xe6e5, 0x01}, + {0xe6e6, 0x01}, + {0xe6e7, 0x01}, + {0xe6e8, 0x01}, + {0xe6e9, 0x01}, + {0xe6ea, 0x01}, + {0xe6eb, 0x01}, + {0xe6ec, 0x01}, + {0xe6ed, 0x01}, + {0xe6ee, 0x01}, + {0xe6ef, 0x01}, + {0xe6f0, 0x01}, + {0xe6f1, 0x01}, + {0xe6f2, 0x01}, + {0xe6f3, 0x01}, + {0xe6f4, 0x01}, + {0xe6f5, 0x01}, + {0xe6f6, 0x01}, + {0xe6f7, 0x01}, + {0xe6f8, 0x01}, + {0xe6f9, 0x01}, + {0xe6fa, 0x01}, + {0xe6fb, 0x01}, + {0xe6fc, 0x01}, + {0xe6fd, 0x01}, + {0xe6fe, 0x01}, + {0xe740, 0x01}, + {0xe741, 0x01}, + {0xe742, 0x01}, + {0xe743, 0x01}, + {0xe744, 0x01}, + {0xe745, 0x01}, + {0xe746, 0x01}, + {0xe747, 0x01}, + {0xe748, 0x01}, + {0xe749, 0x01}, + {0xe74a, 0x01}, + {0xe74b, 0x01}, + {0xe74c, 0x01}, + {0xe74d, 0x01}, + {0xe74e, 0x01}, + {0xe74f, 0x01}, + {0xe750, 0x01}, + {0xe751, 0x01}, + {0xe752, 0x01}, + {0xe753, 0x01}, + {0xe754, 0x01}, + {0xe755, 0x01}, + {0xe756, 0x01}, + {0xe757, 0x01}, + {0xe758, 0x01}, + {0xe759, 0x01}, + {0xe75a, 0x01}, + {0xe75b, 0x01}, + {0xe75c, 0x01}, + {0xe75d, 0x01}, + {0xe75e, 0x01}, + {0xe75f, 0x01}, + {0xe760, 0x01}, + {0xe761, 0x01}, + {0xe762, 0x01}, + {0xe763, 0x01}, + {0xe764, 0x01}, + {0xe765, 0x01}, + {0xe766, 0x01}, + {0xe767, 0x01}, + {0xe768, 0x01}, + {0xe769, 0x01}, + {0xe76a, 0x01}, + {0xe76b, 0x01}, + {0xe76c, 0x01}, + {0xe76d, 0x01}, + {0xe76e, 0x01}, + {0xe76f, 0x01}, + {0xe770, 0x01}, + {0xe771, 0x01}, + {0xe772, 0x01}, + {0xe773, 0x01}, + {0xe774, 0x01}, + {0xe775, 0x01}, + {0xe776, 0x01}, + {0xe777, 0x01}, + {0xe778, 0x01}, + {0xe779, 0x01}, + {0xe77a, 0x01}, + {0xe77b, 0x01}, + {0xe77c, 0x01}, + {0xe77d, 0x01}, + {0xe77e, 0x01}, + {0xe780, 0x01}, + {0xe781, 0x01}, + {0xe782, 0x01}, + {0xe783, 0x01}, + {0xe784, 0x01}, + {0xe785, 0x01}, + {0xe786, 0x01}, + {0xe787, 0x01}, + {0xe788, 0x01}, + {0xe789, 0x01}, + {0xe78a, 0x01}, + {0xe78b, 0x01}, + {0xe78c, 0x01}, + {0xe78d, 0x01}, + {0xe78e, 0x01}, + {0xe78f, 0x01}, + {0xe790, 0x01}, + {0xe791, 0x01}, + {0xe792, 0x01}, + {0xe793, 0x01}, + {0xe795, 0x01}, + {0xe796, 0x01}, + {0xe797, 0x01}, + {0xe798, 0x01}, + {0xe799, 0x01}, + {0xe79a, 0x01}, + {0xe79b, 0x01}, + {0xe79c, 0x01}, + {0xe79d, 0x01}, + {0xe79e, 0x01}, + {0xe79f, 0x01}, + {0xe7a0, 0x01}, + {0xe7a1, 0x01}, + {0xe7a2, 0x01}, + {0xe7a3, 0x01}, + {0xe7a4, 0x01}, + {0xe7a5, 0x01}, + {0xe7a6, 0x01}, + {0xe7a7, 0x01}, + {0xe7a8, 0x01}, + {0xe7a9, 0x01}, + {0xe7aa, 0x01}, + {0xe7ab, 0x01}, + {0xe7ac, 0x01}, + {0xe7ad, 0x01}, + {0xe7ae, 0x01}, + {0xe7af, 0x01}, + {0xe7b0, 0x01}, + {0xe7b1, 0x01}, + {0xe7b2, 0x01}, + {0xe7b3, 0x01}, + {0xe7b4, 0x01}, + {0xe7b5, 0x01}, + {0xe7b6, 0x01}, + {0xe7b7, 0x01}, + {0xe7b8, 0x01}, + {0xe7b9, 0x01}, + {0xe7ba, 0x01}, + {0xe7bb, 0x01}, + {0xe7bc, 0x01}, + {0xe7bd, 0x01}, + {0xe7be, 0x01}, + {0xe7bf, 0x01}, + {0xe7c0, 0x01}, + {0xe7c1, 0x01}, + {0xe7c2, 0x01}, + {0xe7c3, 0x01}, + {0xe7c4, 0x01}, + {0xe7c5, 0x01}, + {0xe7c6, 0x01}, + {0xe7c7, 0x01}, + {0xe7c8, 0x01}, + {0xe7c9, 0x01}, + {0xe7ca, 0x01}, + {0xe7cb, 0x01}, + {0xe7cc, 0x01}, + {0xe7cd, 0x01}, + {0xe7ce, 0x01}, + {0xe7cf, 0x01}, + {0xe7d0, 0x01}, + {0xe7d1, 0x01}, + {0xe7d2, 0x01}, + {0xe7d3, 0x01}, + {0xe7d4, 0x01}, + {0xe7d5, 0x01}, + {0xe7d6, 0x01}, + {0xe7d7, 0x01}, + {0xe7d8, 0x01}, + {0xe7d9, 0x01}, + {0xe7da, 0x01}, + {0xe7db, 0x01}, + {0xe7dc, 0x01}, + {0xe7dd, 0x01}, + {0xe7de, 0x01}, + {0xe7df, 0x01}, + {0xe7e0, 0x01}, + {0xe7e1, 0x01}, + {0xe7e2, 0x01}, + {0xe7e3, 0x01}, + {0xe7e4, 0x01}, + {0xe7e5, 0x01}, + {0xe7e6, 0x01}, + {0xe7e7, 0x01}, + {0xe7e8, 0x01}, + {0xe7e9, 0x01}, + {0xe7ea, 0x01}, + {0xe7eb, 0x01}, + {0xe7ec, 0x01}, + {0xe7ed, 0x01}, + {0xe7ee, 0x01}, + {0xe7ef, 0x01}, + {0xe7f0, 0x01}, + {0xe7f1, 0x01}, + {0xe7f2, 0x01}, + {0xe7f3, 0x01}, + {0xe7f4, 0x01}, + {0xe7f5, 0x01}, + {0xe7f6, 0x01}, + {0xe7f7, 0x01}, + {0xe7f8, 0x01}, + {0xe7f9, 0x01}, + {0xe7fa, 0x01}, + {0xe7fb, 0x01}, + {0xe7fc, 0x01}, + {0xe7fd, 0x01}, + {0xe7fe, 0x01}, + {0xe840, 0x01}, + {0xe841, 0x01}, + {0xe842, 0x01}, + {0xe843, 0x01}, + {0xe844, 0x01}, + {0xe845, 0x01}, + {0xe846, 0x01}, + {0xe847, 0x01}, + {0xe848, 0x01}, + {0xe849, 0x01}, + {0xe84a, 0x01}, + {0xe84b, 0x01}, + {0xe84c, 0x01}, + {0xe84d, 0x01}, + {0xe84e, 0x01}, + {0xe84f, 0x01}, + {0xe850, 0x01}, + {0xe851, 0x01}, + {0xe852, 0x01}, + {0xe853, 0x01}, + {0xe854, 0x01}, + {0xe855, 0x01}, + {0xe856, 0x01}, + {0xe857, 0x01}, + {0xe858, 0x01}, + {0xe859, 0x01}, + {0xe85a, 0x01}, + {0xe85b, 0x01}, + {0xe85c, 0x01}, + {0xe85d, 0x01}, + {0xe85e, 0x01}, + {0xe85f, 0x01}, + {0xe860, 0x01}, + {0xe861, 0x01}, + {0xe862, 0x01}, + {0xe863, 0x01}, + {0xe864, 0x01}, + {0xe865, 0x01}, + {0xe866, 0x01}, + {0xe867, 0x01}, + {0xe868, 0x01}, + {0xe869, 0x01}, + {0xe86a, 0x01}, + {0xe86b, 0x01}, + {0xe86c, 0x01}, + {0xe86d, 0x01}, + {0xe86e, 0x01}, + {0xe86f, 0x01}, + {0xe870, 0x01}, + {0xe871, 0x01}, + {0xe872, 0x01}, + {0xe873, 0x01}, + {0xe874, 0x01}, + {0xe875, 0x01}, + {0xe876, 0x01}, + {0xe877, 0x01}, + {0xe878, 0x01}, + {0xe879, 0x01}, + {0xe87a, 0x01}, + {0xe87b, 0x01}, + {0xe87c, 0x01}, + {0xe87d, 0x01}, + {0xe87e, 0x01}, + {0xe880, 0x01}, + {0xe881, 0x01}, + {0xe882, 0x01}, + {0xe883, 0x01}, + {0xe884, 0x01}, + {0xe885, 0x01}, + {0xe886, 0x01}, + {0xe887, 0x01}, + {0xe888, 0x01}, + {0xe889, 0x01}, + {0xe88a, 0x01}, + {0xe88b, 0x01}, + {0xe88c, 0x01}, + {0xe88d, 0x01}, + {0xe88e, 0x01}, + {0xe88f, 0x01}, + {0xe890, 0x01}, + {0xe891, 0x01}, + {0xe892, 0x01}, + {0xe893, 0x01}, + {0xe894, 0x01}, + {0xe895, 0x01}, + {0xe896, 0x01}, + {0xe897, 0x01}, + {0xe898, 0x01}, + {0xe899, 0x01}, + {0xe89a, 0x01}, + {0xe89b, 0x01}, + {0xe89c, 0x01}, + {0xe89d, 0x01}, + {0xe89e, 0x01}, + {0xe89f, 0x01}, + {0xe8a0, 0x01}, + {0xe8a1, 0x01}, + {0xe8a2, 0x01}, + {0xe8a3, 0x01}, + {0xe8a4, 0x01}, + {0xe8a5, 0x01}, + {0xe8a6, 0x01}, + {0xe8a7, 0x01}, + {0xe8a8, 0x01}, + {0xe8a9, 0x01}, + {0xe8aa, 0x01}, + {0xe8ab, 0x01}, + {0xe8ac, 0x01}, + {0xe8ad, 0x01}, + {0xe8ae, 0x01}, + {0xe8af, 0x01}, + {0xe8b0, 0x01}, + {0xe8b1, 0x01}, + {0xe8b2, 0x01}, + {0xe8b3, 0x01}, + {0xe8b4, 0x01}, + {0xe8b5, 0x01}, + {0xe8b6, 0x01}, + {0xe8b7, 0x01}, + {0xe8b8, 0x01}, + {0xe8b9, 0x01}, + {0xe8ba, 0x01}, + {0xe8bb, 0x01}, + {0xe8bc, 0x01}, + {0xe8bd, 0x01}, + {0xe8be, 0x01}, + {0xe8bf, 0x01}, + {0xe8c0, 0x01}, + {0xe8c1, 0x01}, + {0xe8c2, 0x01}, + {0xe8c3, 0x01}, + {0xe8c4, 0x01}, + {0xe8c5, 0x01}, + {0xe8c6, 0x01}, + {0xe8c7, 0x01}, + {0xe8c8, 0x01}, + {0xe8c9, 0x01}, + {0xe8ca, 0x01}, + {0xe8cb, 0x01}, + {0xe8cc, 0x01}, + {0xe8cd, 0x01}, + {0xe8ce, 0x01}, + {0xe8cf, 0x01}, + {0xe8d0, 0x01}, + {0xe8d1, 0x01}, + {0xe8d2, 0x01}, + {0xe8d3, 0x01}, + {0xe8d4, 0x01}, + {0xe8d5, 0x01}, + {0xe8d6, 0x01}, + {0xe8d7, 0x01}, + {0xe8d8, 0x01}, + {0xe8d9, 0x01}, + {0xe8da, 0x01}, + {0xe8db, 0x01}, + {0xe8dc, 0x01}, + {0xe8dd, 0x01}, + {0xe8de, 0x01}, + {0xe8df, 0x01}, + {0xe8e0, 0x01}, + {0xe8e1, 0x01}, + {0xe8e2, 0x01}, + {0xe8e3, 0x01}, + {0xe8e4, 0x01}, + {0xe8e5, 0x01}, + {0xe8e6, 0x01}, + {0xe8e7, 0x01}, + {0xe8e8, 0x01}, + {0xe8e9, 0x01}, + {0xe8ea, 0x01}, + {0xe8eb, 0x01}, + {0xe8ec, 0x01}, + {0xe8ed, 0x01}, + {0xe8ee, 0x01}, + {0xe8ef, 0x01}, + {0xe8f0, 0x01}, + {0xe8f1, 0x01}, + {0xe8f2, 0x01}, + {0xe8f3, 0x01}, + {0xe8f4, 0x01}, + {0xe8f5, 0x01}, + {0xe8f6, 0x01}, + {0xe8f7, 0x01}, + {0xe8f8, 0x01}, + {0xe8f9, 0x01}, + {0xe8fa, 0x01}, + {0xe8fb, 0x01}, + {0xe8fc, 0x01}, + {0xe8fd, 0x01}, + {0xe8fe, 0x01}, + {0xe940, 0x01}, + {0xe941, 0x01}, + {0xe942, 0x01}, + {0xe943, 0x01}, + {0xe944, 0x01}, + {0xe945, 0x01}, + {0xe946, 0x01}, + {0xe947, 0x01}, + {0xe948, 0x01}, + {0xe949, 0x01}, + {0xe94a, 0x01}, + {0xe94b, 0x01}, + {0xe94c, 0x01}, + {0xe94d, 0x01}, + {0xe94e, 0x01}, + {0xe94f, 0x01}, + {0xe950, 0x01}, + {0xe951, 0x01}, + {0xe952, 0x01}, + {0xe953, 0x01}, + {0xe954, 0x01}, + {0xe955, 0x01}, + {0xe956, 0x01}, + {0xe957, 0x01}, + {0xe958, 0x01}, + {0xe959, 0x01}, + {0xe95a, 0x01}, + {0xe95b, 0x01}, + {0xe95c, 0x01}, + {0xe95d, 0x01}, + {0xe95e, 0x01}, + {0xe95f, 0x01}, + {0xe960, 0x01}, + {0xe961, 0x01}, + {0xe962, 0x01}, + {0xe963, 0x01}, + {0xe964, 0x01}, + {0xe965, 0x01}, + {0xe966, 0x01}, + {0xe967, 0x01}, + {0xe968, 0x01}, + {0xe969, 0x01}, + {0xe96a, 0x01}, + {0xe96b, 0x01}, + {0xe96c, 0x01}, + {0xe96d, 0x01}, + {0xe96e, 0x01}, + {0xe96f, 0x01}, + {0xe970, 0x01}, + {0xe971, 0x01}, + {0xe972, 0x01}, + {0xe973, 0x01}, + {0xe974, 0x01}, + {0xe975, 0x01}, + {0xe976, 0x01}, + {0xe977, 0x01}, + {0xe978, 0x01}, + {0xe979, 0x01}, + {0xe97a, 0x01}, + {0xe97b, 0x01}, + {0xe97c, 0x01}, + {0xe97d, 0x01}, + {0xe97e, 0x01}, + {0xe980, 0x01}, + {0xe981, 0x01}, + {0xe982, 0x01}, + {0xe983, 0x01}, + {0xe984, 0x01}, + {0xe985, 0x01}, + {0xe986, 0x01}, + {0xe987, 0x01}, + {0xe988, 0x01}, + {0xe989, 0x01}, + {0xe98a, 0x01}, + {0xe98b, 0x01}, + {0xe98c, 0x01}, + {0xe98d, 0x01}, + {0xe98e, 0x01}, + {0xe98f, 0x01}, + {0xe990, 0x01}, + {0xe991, 0x01}, + {0xe992, 0x01}, + {0xe993, 0x01}, + {0xe994, 0x01}, + {0xe995, 0x01}, + {0xe996, 0x01}, + {0xe997, 0x01}, + {0xe998, 0x01}, + {0xe999, 0x01}, + {0xe99a, 0x01}, + {0xe99b, 0x01}, + {0xe99c, 0x01}, + {0xe99d, 0x01}, + {0xe99e, 0x01}, + {0xe99f, 0x01}, + {0xe9a0, 0x01}, + {0xe9a1, 0x01}, + {0xe9a2, 0x01}, + {0xe9a3, 0x01}, + {0xe9a4, 0x01}, + {0xe9a5, 0x01}, + {0xe9a6, 0x01}, + {0xe9a7, 0x01}, + {0xe9a8, 0x01}, + {0xe9a9, 0x01}, + {0xe9aa, 0x01}, + {0xe9ab, 0x01}, + {0xe9ac, 0x01}, + {0xe9ad, 0x01}, + {0xe9ae, 0x01}, + {0xe9af, 0x01}, + {0xe9b0, 0x01}, + {0xe9b1, 0x01}, + {0xe9b2, 0x01}, + {0xe9b3, 0x01}, + {0xe9b4, 0x01}, + {0xe9b5, 0x01}, + {0xe9b6, 0x01}, + {0xe9b7, 0x01}, + {0xe9b8, 0x01}, + {0xe9b9, 0x01}, + {0xe9ba, 0x01}, + {0xe9bb, 0x01}, + {0xe9bc, 0x01}, + {0xe9bd, 0x01}, + {0xe9be, 0x01}, + {0xe9bf, 0x01}, + {0xe9c0, 0x01}, + {0xe9c1, 0x01}, + {0xe9c2, 0x01}, + {0xe9c3, 0x01}, + {0xe9c4, 0x01}, + {0xe9c5, 0x01}, + {0xe9c6, 0x01}, + {0xe9c7, 0x01}, + {0xe9c8, 0x01}, + {0xe9c9, 0x01}, + {0xe9ca, 0x01}, + {0xe9cb, 0x01}, + {0xe9cc, 0x01}, + {0xe9cd, 0x01}, + {0xe9ce, 0x01}, + {0xe9cf, 0x01}, + {0xe9d0, 0x01}, + {0xe9d1, 0x01}, + {0xe9d2, 0x01}, + {0xe9d3, 0x01}, + {0xe9d4, 0x01}, + {0xe9d5, 0x01}, + {0xe9d6, 0x01}, + {0xe9d7, 0x01}, + {0xe9d8, 0x01}, + {0xe9d9, 0x01}, + {0xe9da, 0x01}, + {0xe9db, 0x01}, + {0xe9dc, 0x01}, + {0xe9dd, 0x01}, + {0xe9de, 0x01}, + {0xe9df, 0x01}, + {0xe9e0, 0x01}, + {0xe9e1, 0x01}, + {0xe9e2, 0x01}, + {0xe9e3, 0x01}, + {0xe9e4, 0x01}, + {0xe9e5, 0x01}, + {0xe9e6, 0x01}, + {0xe9e7, 0x01}, + {0xe9e8, 0x01}, + {0xe9e9, 0x01}, + {0xe9ea, 0x01}, + {0xe9eb, 0x01}, + {0xe9ec, 0x01}, + {0xe9ed, 0x01}, + {0xe9ee, 0x01}, + {0xe9ef, 0x01}, + {0xe9f0, 0x01}, + {0xe9f1, 0x01}, + {0xe9f2, 0x01}, + {0xe9f3, 0x01}, + {0xe9f4, 0x01}, + {0xe9f5, 0x01}, + {0xe9f6, 0x01}, + {0xe9f7, 0x01}, + {0xe9f8, 0x01}, + {0xe9f9, 0x01}, + {0xe9fa, 0x01}, + {0xe9fb, 0x01}, + {0xe9fc, 0x01}, + {0xe9fd, 0x01}, + {0xe9fe, 0x01}, + {0xea40, 0x01}, + {0xea41, 0x01}, + {0xea42, 0x01}, + {0xea43, 0x01}, + {0xea44, 0x01}, + {0xea45, 0x01}, + {0xea46, 0x01}, + {0xea47, 0x01}, + {0xea48, 0x01}, + {0xea49, 0x01}, + {0xea4a, 0x01}, + {0xea4b, 0x01}, + {0xea4c, 0x01}, + {0xea4d, 0x01}, + {0xea4e, 0x01}, + {0xea4f, 0x01}, + {0xea50, 0x01}, + {0xea51, 0x01}, + {0xea52, 0x01}, + {0xea53, 0x01}, + {0xea54, 0x01}, + {0xea55, 0x01}, + {0xea56, 0x01}, + {0xea57, 0x01}, + {0xea58, 0x01}, + {0xea59, 0x01}, + {0xea5a, 0x01}, + {0xea5c, 0x01}, + {0xea5d, 0x01}, + {0xea5e, 0x01}, + {0xea5f, 0x01}, + {0xea60, 0x01}, + {0xea61, 0x01}, + {0xea62, 0x01}, + {0xea63, 0x01}, + {0xea64, 0x01}, + {0xea65, 0x01}, + {0xea66, 0x01}, + {0xea67, 0x01}, + {0xea68, 0x01}, + {0xea69, 0x01}, + {0xea6a, 0x01}, + {0xea6b, 0x01}, + {0xea6c, 0x01}, + {0xea6d, 0x01}, + {0xea6e, 0x01}, + {0xea6f, 0x01}, + {0xea70, 0x01}, + {0xea71, 0x01}, + {0xea72, 0x01}, + {0xea73, 0x01}, + {0xea74, 0x01}, + {0xea75, 0x01}, + {0xea76, 0x01}, + {0xea77, 0x01}, + {0xea78, 0x01}, + {0xea79, 0x01}, + {0xea7a, 0x01}, + {0xea7b, 0x01}, + {0xea7c, 0x01}, + {0xea7d, 0x01}, + {0xea7e, 0x01}, + {0xea80, 0x01}, + {0xea81, 0x01}, + {0xea82, 0x01}, + {0xea83, 0x01}, + {0xea84, 0x01}, + {0xea85, 0x01}, + {0xea86, 0x01}, + {0xea87, 0x01}, + {0xea88, 0x01}, + {0xea89, 0x01}, + {0xea8a, 0x01}, + {0xea8b, 0x01}, + {0xea8c, 0x01}, + {0xea8d, 0x01}, + {0xea8e, 0x01}, + {0xea8f, 0x01}, + {0xea90, 0x01}, + {0xea91, 0x01}, + {0xea92, 0x01}, + {0xea93, 0x01}, + {0xea94, 0x01}, + {0xea95, 0x01}, + {0xea96, 0x01}, + {0xea97, 0x01}, + {0xea98, 0x01}, + {0xea99, 0x01}, + {0xea9a, 0x01}, + {0xea9b, 0x01}, + {0xea9c, 0x01}, + {0xea9d, 0x01}, + {0xea9e, 0x01}, + {0xea9f, 0x01}, + {0xeaa0, 0x01}, + {0xeaa1, 0x01}, + {0xeaa2, 0x01}, + {0xeaa3, 0x01}, + {0xeaa4, 0x01}, + {0xeaa5, 0x01}, + {0xeaa6, 0x01}, + {0xeaa7, 0x01}, + {0xeaa8, 0x01}, + {0xeaa9, 0x01}, + {0xeaaa, 0x01}, + {0xeaab, 0x01}, + {0xeaac, 0x01}, + {0xeaad, 0x01}, + {0xeaae, 0x01}, + {0xeaaf, 0x01}, + {0xeab0, 0x01}, + {0xeab1, 0x01}, + {0xeab2, 0x01}, + {0xeab3, 0x01}, + {0xeab4, 0x01}, + {0xeab5, 0x01}, + {0xeab6, 0x01}, + {0xeab7, 0x01}, + {0xeab8, 0x01}, + {0xeab9, 0x01}, + {0xeaba, 0x01}, + {0xeabb, 0x01}, + {0xeabc, 0x01}, + {0xeabd, 0x01}, + {0xeabe, 0x01}, + {0xeabf, 0x01}, + {0xeac0, 0x01}, + {0xeac1, 0x01}, + {0xeac2, 0x01}, + {0xeac3, 0x01}, + {0xeac4, 0x01}, + {0xeac5, 0x01}, + {0xeac6, 0x01}, + {0xeac7, 0x01}, + {0xeac8, 0x01}, + {0xeac9, 0x01}, + {0xeaca, 0x01}, + {0xeacb, 0x01}, + {0xeacc, 0x01}, + {0xeacd, 0x01}, + {0xeace, 0x01}, + {0xeacf, 0x01}, + {0xead0, 0x01}, + {0xead1, 0x01}, + {0xead2, 0x01}, + {0xead3, 0x01}, + {0xead4, 0x01}, + {0xead5, 0x01}, + {0xead6, 0x01}, + {0xead7, 0x01}, + {0xead8, 0x01}, + {0xead9, 0x01}, + {0xeada, 0x01}, + {0xeadb, 0x01}, + {0xeadc, 0x01}, + {0xeadd, 0x01}, + {0xeade, 0x01}, + {0xeadf, 0x01}, + {0xeae0, 0x01}, + {0xeae1, 0x01}, + {0xeae2, 0x01}, + {0xeae3, 0x01}, + {0xeae4, 0x01}, + {0xeae5, 0x01}, + {0xeae6, 0x01}, + {0xeae7, 0x01}, + {0xeae8, 0x01}, + {0xeae9, 0x01}, + {0xeaea, 0x01}, + {0xeaeb, 0x01}, + {0xeaec, 0x01}, + {0xeaed, 0x01}, + {0xeaee, 0x01}, + {0xeaef, 0x01}, + {0xeaf0, 0x01}, + {0xeaf1, 0x01}, + {0xeaf2, 0x01}, + {0xeaf3, 0x01}, + {0xeaf4, 0x01}, + {0xeaf5, 0x01}, + {0xeaf6, 0x01}, + {0xeaf7, 0x01}, + {0xeaf8, 0x01}, + {0xeaf9, 0x01}, + {0xeafa, 0x01}, + {0xeafb, 0x01}, + {0xeafc, 0x01}, + {0xeafd, 0x01}, + {0xeafe, 0x01}, + {0xeb40, 0x01}, + {0xeb41, 0x01}, + {0xeb42, 0x01}, + {0xeb43, 0x01}, + {0xeb44, 0x01}, + {0xeb45, 0x01}, + {0xeb46, 0x01}, + {0xeb47, 0x01}, + {0xeb48, 0x01}, + {0xeb49, 0x01}, + {0xeb4a, 0x01}, + {0xeb4b, 0x01}, + {0xeb4c, 0x01}, + {0xeb4d, 0x01}, + {0xeb4e, 0x01}, + {0xeb4f, 0x01}, + {0xeb50, 0x01}, + {0xeb51, 0x01}, + {0xeb52, 0x01}, + {0xeb53, 0x01}, + {0xeb54, 0x01}, + {0xeb55, 0x01}, + {0xeb56, 0x01}, + {0xeb57, 0x01}, + {0xeb58, 0x01}, + {0xeb59, 0x01}, + {0xeb5a, 0x01}, + {0xeb5b, 0x01}, + {0xeb5c, 0x01}, + {0xeb5d, 0x01}, + {0xeb5e, 0x01}, + {0xeb5f, 0x01}, + {0xeb60, 0x01}, + {0xeb61, 0x01}, + {0xeb62, 0x01}, + {0xeb63, 0x01}, + {0xeb64, 0x01}, + {0xeb65, 0x01}, + {0xeb66, 0x01}, + {0xeb67, 0x01}, + {0xeb68, 0x01}, + {0xeb69, 0x01}, + {0xeb6a, 0x01}, + {0xeb6b, 0x01}, + {0xeb6c, 0x01}, + {0xeb6d, 0x01}, + {0xeb6e, 0x01}, + {0xeb6f, 0x01}, + {0xeb70, 0x01}, + {0xeb71, 0x01}, + {0xeb72, 0x01}, + {0xeb73, 0x01}, + {0xeb74, 0x01}, + {0xeb75, 0x01}, + {0xeb76, 0x01}, + {0xeb77, 0x01}, + {0xeb78, 0x01}, + {0xeb79, 0x01}, + {0xeb7a, 0x01}, + {0xeb7b, 0x01}, + {0xeb7c, 0x01}, + {0xeb7d, 0x01}, + {0xeb7e, 0x01}, + {0xeb80, 0x01}, + {0xeb81, 0x01}, + {0xeb82, 0x01}, + {0xeb83, 0x01}, + {0xeb84, 0x01}, + {0xeb85, 0x01}, + {0xeb86, 0x01}, + {0xeb87, 0x01}, + {0xeb88, 0x01}, + {0xeb89, 0x01}, + {0xeb8a, 0x01}, + {0xeb8b, 0x01}, + {0xeb8c, 0x01}, + {0xeb8d, 0x01}, + {0xeb8e, 0x01}, + {0xeb8f, 0x01}, + {0xeb90, 0x01}, + {0xeb91, 0x01}, + {0xeb92, 0x01}, + {0xeb93, 0x01}, + {0xeb94, 0x01}, + {0xeb95, 0x01}, + {0xeb96, 0x01}, + {0xeb97, 0x01}, + {0xeb98, 0x01}, + {0xeb99, 0x01}, + {0xeb9a, 0x01}, + {0xeb9b, 0x01}, + {0xeb9c, 0x01}, + {0xeb9d, 0x01}, + {0xeb9e, 0x01}, + {0xeb9f, 0x01}, + {0xeba0, 0x01}, + {0xeba1, 0x01}, + {0xeba2, 0x01}, + {0xeba3, 0x01}, + {0xeba4, 0x01}, + {0xeba5, 0x01}, + {0xeba6, 0x01}, + {0xeba7, 0x01}, + {0xeba8, 0x01}, + {0xeba9, 0x01}, + {0xebaa, 0x01}, + {0xebab, 0x01}, + {0xebac, 0x01}, + {0xebad, 0x01}, + {0xebae, 0x01}, + {0xebaf, 0x01}, + {0xebb0, 0x01}, + {0xebb1, 0x01}, + {0xebb2, 0x01}, + {0xebb3, 0x01}, + {0xebb4, 0x01}, + {0xebb5, 0x01}, + {0xebb6, 0x01}, + {0xebb7, 0x01}, + {0xebb8, 0x01}, + {0xebb9, 0x01}, + {0xebba, 0x01}, + {0xebbb, 0x01}, + {0xebbc, 0x01}, + {0xebbd, 0x01}, + {0xebbe, 0x01}, + {0xebbf, 0x01}, + {0xebc0, 0x01}, + {0xebc1, 0x01}, + {0xebc2, 0x01}, + {0xebc3, 0x01}, + {0xebc4, 0x01}, + {0xebc5, 0x01}, + {0xebc6, 0x01}, + {0xebc7, 0x01}, + {0xebc8, 0x01}, + {0xebc9, 0x01}, + {0xebca, 0x01}, + {0xebcb, 0x01}, + {0xebcc, 0x01}, + {0xebcd, 0x01}, + {0xebce, 0x01}, + {0xebcf, 0x01}, + {0xebd0, 0x01}, + {0xebd1, 0x01}, + {0xebd2, 0x01}, + {0xebd3, 0x01}, + {0xebd4, 0x01}, + {0xebd5, 0x01}, + {0xebd6, 0x01}, + {0xebd7, 0x01}, + {0xebd8, 0x01}, + {0xebd9, 0x01}, + {0xebda, 0x01}, + {0xebdb, 0x01}, + {0xebdc, 0x01}, + {0xebdd, 0x01}, + {0xebde, 0x01}, + {0xebdf, 0x01}, + {0xebe0, 0x01}, + {0xebe1, 0x01}, + {0xebe2, 0x01}, + {0xebe3, 0x01}, + {0xebe4, 0x01}, + {0xebe5, 0x01}, + {0xebe6, 0x01}, + {0xebe7, 0x01}, + {0xebe8, 0x01}, + {0xebe9, 0x01}, + {0xebea, 0x01}, + {0xebeb, 0x01}, + {0xebec, 0x01}, + {0xebed, 0x01}, + {0xebee, 0x01}, + {0xebef, 0x01}, + {0xebf0, 0x01}, + {0xebf1, 0x01}, + {0xebf2, 0x01}, + {0xebf3, 0x01}, + {0xebf4, 0x01}, + {0xebf5, 0x01}, + {0xebf6, 0x01}, + {0xebf7, 0x01}, + {0xebf8, 0x01}, + {0xebf9, 0x01}, + {0xebfa, 0x01}, + {0xebfb, 0x01}, + {0xebfc, 0x01}, + {0xebfd, 0x01}, + {0xebfe, 0x01}, + {0xec40, 0x01}, + {0xec41, 0x01}, + {0xec42, 0x01}, + {0xec43, 0x01}, + {0xec44, 0x01}, + {0xec45, 0x01}, + {0xec46, 0x01}, + {0xec47, 0x01}, + {0xec48, 0x01}, + {0xec49, 0x01}, + {0xec4a, 0x01}, + {0xec4b, 0x01}, + {0xec4c, 0x01}, + {0xec4d, 0x01}, + {0xec4e, 0x01}, + {0xec4f, 0x01}, + {0xec50, 0x01}, + {0xec51, 0x01}, + {0xec52, 0x01}, + {0xec53, 0x01}, + {0xec55, 0x01}, + {0xec56, 0x01}, + {0xec57, 0x01}, + {0xec58, 0x01}, + {0xec59, 0x01}, + {0xec5a, 0x01}, + {0xec5b, 0x01}, + {0xec5c, 0x01}, + {0xec5d, 0x01}, + {0xec5e, 0x01}, + {0xec5f, 0x01}, + {0xec60, 0x01}, + {0xec61, 0x01}, + {0xec62, 0x01}, + {0xec63, 0x01}, + {0xec64, 0x01}, + {0xec65, 0x01}, + {0xec66, 0x01}, + {0xec67, 0x01}, + {0xec68, 0x01}, + {0xec69, 0x01}, + {0xec6a, 0x01}, + {0xec6b, 0x01}, + {0xec6c, 0x01}, + {0xec6d, 0x01}, + {0xec6e, 0x01}, + {0xec6f, 0x01}, + {0xec70, 0x01}, + {0xec71, 0x01}, + {0xec72, 0x01}, + {0xec73, 0x01}, + {0xec74, 0x01}, + {0xec75, 0x01}, + {0xec76, 0x01}, + {0xec77, 0x01}, + {0xec78, 0x01}, + {0xec79, 0x01}, + {0xec7a, 0x01}, + {0xec7b, 0x01}, + {0xec7c, 0x01}, + {0xec7d, 0x01}, + {0xec7e, 0x01}, + {0xec80, 0x01}, + {0xec81, 0x01}, + {0xec82, 0x01}, + {0xec83, 0x01}, + {0xec84, 0x01}, + {0xec85, 0x01}, + {0xec86, 0x01}, + {0xec87, 0x01}, + {0xec88, 0x01}, + {0xec89, 0x01}, + {0xec8a, 0x01}, + {0xec8b, 0x01}, + {0xec8c, 0x01}, + {0xec8d, 0x01}, + {0xec8e, 0x01}, + {0xec8f, 0x01}, + {0xec90, 0x01}, + {0xec91, 0x01}, + {0xec92, 0x01}, + {0xec93, 0x01}, + {0xec94, 0x01}, + {0xec95, 0x01}, + {0xec96, 0x01}, + {0xec97, 0x01}, + {0xec98, 0x01}, + {0xec99, 0x01}, + {0xec9a, 0x01}, + {0xec9b, 0x01}, + {0xec9c, 0x01}, + {0xec9d, 0x01}, + {0xec9e, 0x01}, + {0xec9f, 0x01}, + {0xeca0, 0x01}, + {0xeca1, 0x01}, + {0xeca2, 0x01}, + {0xeca3, 0x01}, + {0xeca4, 0x01}, + {0xeca5, 0x01}, + {0xeca6, 0x01}, + {0xeca7, 0x01}, + {0xeca8, 0x01}, + {0xeca9, 0x01}, + {0xecaa, 0x01}, + {0xecab, 0x01}, + {0xecac, 0x01}, + {0xecad, 0x01}, + {0xecae, 0x01}, + {0xecaf, 0x01}, + {0xecb0, 0x01}, + {0xecb1, 0x01}, + {0xecb2, 0x01}, + {0xecb3, 0x01}, + {0xecb4, 0x01}, + {0xecb5, 0x01}, + {0xecb6, 0x01}, + {0xecb7, 0x01}, + {0xecb8, 0x01}, + {0xecb9, 0x01}, + {0xecba, 0x01}, + {0xecbb, 0x01}, + {0xecbc, 0x01}, + {0xecbd, 0x01}, + {0xecbe, 0x01}, + {0xecbf, 0x01}, + {0xecc0, 0x01}, + {0xecc1, 0x01}, + {0xecc2, 0x01}, + {0xecc3, 0x01}, + {0xecc4, 0x01}, + {0xecc5, 0x01}, + {0xecc6, 0x01}, + {0xecc7, 0x01}, + {0xecc8, 0x01}, + {0xecc9, 0x01}, + {0xecca, 0x01}, + {0xeccb, 0x01}, + {0xeccc, 0x01}, + {0xeccd, 0x01}, + {0xecce, 0x01}, + {0xeccf, 0x01}, + {0xecd0, 0x01}, + {0xecd1, 0x01}, + {0xecd2, 0x01}, + {0xecd3, 0x01}, + {0xecd4, 0x01}, + {0xecd5, 0x01}, + {0xecd6, 0x01}, + {0xecd7, 0x01}, + {0xecd8, 0x01}, + {0xecd9, 0x01}, + {0xecda, 0x01}, + {0xecdb, 0x01}, + {0xecdc, 0x01}, + {0xecdd, 0x01}, + {0xecde, 0x01}, + {0xecdf, 0x01}, + {0xece0, 0x01}, + {0xece1, 0x01}, + {0xece2, 0x01}, + {0xece3, 0x01}, + {0xece4, 0x01}, + {0xece5, 0x01}, + {0xece6, 0x01}, + {0xece7, 0x01}, + {0xece8, 0x01}, + {0xece9, 0x01}, + {0xecea, 0x01}, + {0xeceb, 0x01}, + {0xecec, 0x01}, + {0xeced, 0x01}, + {0xecee, 0x01}, + {0xecef, 0x01}, + {0xecf0, 0x01}, + {0xecf1, 0x01}, + {0xecf2, 0x01}, + {0xecf3, 0x01}, + {0xecf4, 0x01}, + {0xecf5, 0x01}, + {0xecf6, 0x01}, + {0xecf7, 0x01}, + {0xecf8, 0x01}, + {0xecf9, 0x01}, + {0xecfa, 0x01}, + {0xecfb, 0x01}, + {0xecfc, 0x01}, + {0xecfd, 0x01}, + {0xecfe, 0x01}, + {0xed40, 0x01}, + {0xed41, 0x01}, + {0xed42, 0x01}, + {0xed43, 0x01}, + {0xed44, 0x01}, + {0xed45, 0x01}, + {0xed46, 0x01}, + {0xed47, 0x01}, + {0xed48, 0x01}, + {0xed49, 0x01}, + {0xed4a, 0x01}, + {0xed4b, 0x01}, + {0xed4c, 0x01}, + {0xed4d, 0x01}, + {0xed4e, 0x01}, + {0xed4f, 0x01}, + {0xed50, 0x01}, + {0xed51, 0x01}, + {0xed52, 0x01}, + {0xed53, 0x01}, + {0xed54, 0x01}, + {0xed55, 0x01}, + {0xed56, 0x01}, + {0xed57, 0x01}, + {0xed58, 0x01}, + {0xed59, 0x01}, + {0xed5a, 0x01}, + {0xed5b, 0x01}, + {0xed5c, 0x01}, + {0xed5d, 0x01}, + {0xed5e, 0x01}, + {0xed5f, 0x01}, + {0xed60, 0x01}, + {0xed61, 0x01}, + {0xed62, 0x01}, + {0xed63, 0x01}, + {0xed64, 0x01}, + {0xed65, 0x01}, + {0xed66, 0x01}, + {0xed67, 0x01}, + {0xed68, 0x01}, + {0xed69, 0x01}, + {0xed6a, 0x01}, + {0xed6b, 0x01}, + {0xed6c, 0x01}, + {0xed6d, 0x01}, + {0xed6e, 0x01}, + {0xed6f, 0x01}, + {0xed70, 0x01}, + {0xed71, 0x01}, + {0xed72, 0x01}, + {0xed73, 0x01}, + {0xed74, 0x01}, + {0xed75, 0x01}, + {0xed76, 0x01}, + {0xed77, 0x01}, + {0xed78, 0x01}, + {0xed79, 0x01}, + {0xed7a, 0x01}, + {0xed7b, 0x01}, + {0xed7c, 0x01}, + {0xed7d, 0x01}, + {0xed7e, 0x01}, + {0xed80, 0x01}, + {0xed81, 0x01}, + {0xed82, 0x01}, + {0xed83, 0x01}, + {0xed84, 0x01}, + {0xed85, 0x01}, + {0xed86, 0x01}, + {0xed87, 0x01}, + {0xed88, 0x01}, + {0xed89, 0x01}, + {0xed8a, 0x01}, + {0xed8b, 0x01}, + {0xed8c, 0x01}, + {0xed8d, 0x01}, + {0xed8e, 0x01}, + {0xed8f, 0x01}, + {0xed90, 0x01}, + {0xed91, 0x01}, + {0xed92, 0x01}, + {0xed93, 0x01}, + {0xed94, 0x01}, + {0xed95, 0x01}, + {0xed96, 0x01}, + {0xed97, 0x01}, + {0xed98, 0x01}, + {0xed99, 0x01}, + {0xed9a, 0x01}, + {0xed9b, 0x01}, + {0xed9c, 0x01}, + {0xed9d, 0x01}, + {0xed9e, 0x01}, + {0xed9f, 0x01}, + {0xeda0, 0x01}, + {0xeda1, 0x01}, + {0xeda2, 0x01}, + {0xeda3, 0x01}, + {0xeda4, 0x01}, + {0xeda5, 0x01}, + {0xeda6, 0x01}, + {0xeda7, 0x01}, + {0xeda8, 0x01}, + {0xeda9, 0x01}, + {0xedaa, 0x01}, + {0xedab, 0x01}, + {0xedac, 0x01}, + {0xedad, 0x01}, + {0xedae, 0x01}, + {0xedaf, 0x01}, + {0xedb0, 0x01}, + {0xedb1, 0x01}, + {0xedb2, 0x01}, + {0xedb3, 0x01}, + {0xedb4, 0x01}, + {0xedb5, 0x01}, + {0xedb6, 0x01}, + {0xedb7, 0x01}, + {0xedb8, 0x01}, + {0xedb9, 0x01}, + {0xedba, 0x01}, + {0xedbb, 0x01}, + {0xedbc, 0x01}, + {0xedbd, 0x01}, + {0xedbe, 0x01}, + {0xedbf, 0x01}, + {0xedc0, 0x01}, + {0xedc1, 0x01}, + {0xedc2, 0x01}, + {0xedc3, 0x01}, + {0xedc4, 0x01}, + {0xedc5, 0x01}, + {0xedc6, 0x01}, + {0xedc7, 0x01}, + {0xedc8, 0x01}, + {0xedc9, 0x01}, + {0xedca, 0x01}, + {0xedcb, 0x01}, + {0xedcc, 0x01}, + {0xedcd, 0x01}, + {0xedce, 0x01}, + {0xedcf, 0x01}, + {0xedd0, 0x01}, + {0xedd1, 0x01}, + {0xedd2, 0x01}, + {0xedd3, 0x01}, + {0xedd4, 0x01}, + {0xedd5, 0x01}, + {0xedd6, 0x01}, + {0xedd7, 0x01}, + {0xedd8, 0x01}, + {0xedd9, 0x01}, + {0xedda, 0x01}, + {0xeddb, 0x01}, + {0xeddc, 0x01}, + {0xeddd, 0x01}, + {0xedde, 0x01}, + {0xeddf, 0x01}, + {0xede0, 0x01}, + {0xede1, 0x01}, + {0xede2, 0x01}, + {0xede3, 0x01}, + {0xede4, 0x01}, + {0xede5, 0x01}, + {0xede6, 0x01}, + {0xede7, 0x01}, + {0xede8, 0x01}, + {0xede9, 0x01}, + {0xedea, 0x01}, + {0xedeb, 0x01}, + {0xedec, 0x01}, + {0xeded, 0x01}, + {0xedee, 0x01}, + {0xedef, 0x01}, + {0xedf0, 0x01}, + {0xedf1, 0x01}, + {0xedf2, 0x01}, + {0xedf3, 0x01}, + {0xedf4, 0x01}, + {0xedf5, 0x01}, + {0xedf6, 0x01}, + {0xedf7, 0x01}, + {0xedf8, 0x01}, + {0xedf9, 0x01}, + {0xedfa, 0x01}, + {0xedfb, 0x01}, + {0xedfc, 0x01}, + {0xedfd, 0x01}, + {0xedfe, 0x01}, + {0xee40, 0x01}, + {0xee41, 0x01}, + {0xee42, 0x01}, + {0xee43, 0x01}, + {0xee44, 0x01}, + {0xee45, 0x01}, + {0xee46, 0x01}, + {0xee47, 0x01}, + {0xee48, 0x01}, + {0xee49, 0x01}, + {0xee4a, 0x01}, + {0xee4b, 0x01}, + {0xee4c, 0x01}, + {0xee4d, 0x01}, + {0xee4e, 0x01}, + {0xee4f, 0x01}, + {0xee50, 0x01}, + {0xee51, 0x01}, + {0xee52, 0x01}, + {0xee53, 0x01}, + {0xee54, 0x01}, + {0xee55, 0x01}, + {0xee56, 0x01}, + {0xee57, 0x01}, + {0xee58, 0x01}, + {0xee59, 0x01}, + {0xee5a, 0x01}, + {0xee5b, 0x01}, + {0xee5c, 0x01}, + {0xee5d, 0x01}, + {0xee5e, 0x01}, + {0xee5f, 0x01}, + {0xee60, 0x01}, + {0xee61, 0x01}, + {0xee62, 0x01}, + {0xee63, 0x01}, + {0xee64, 0x01}, + {0xee65, 0x01}, + {0xee66, 0x01}, + {0xee67, 0x01}, + {0xee68, 0x01}, + {0xee69, 0x01}, + {0xee6a, 0x01}, + {0xee6b, 0x01}, + {0xee6c, 0x01}, + {0xee6d, 0x01}, + {0xee6e, 0x01}, + {0xee6f, 0x01}, + {0xee70, 0x01}, + {0xee71, 0x01}, + {0xee72, 0x01}, + {0xee73, 0x01}, + {0xee74, 0x01}, + {0xee75, 0x01}, + {0xee76, 0x01}, + {0xee77, 0x01}, + {0xee78, 0x01}, + {0xee79, 0x01}, + {0xee7a, 0x01}, + {0xee7b, 0x01}, + {0xee7c, 0x01}, + {0xee7d, 0x01}, + {0xee7e, 0x01}, + {0xee80, 0x01}, + {0xee81, 0x01}, + {0xee82, 0x01}, + {0xee83, 0x01}, + {0xee84, 0x01}, + {0xee85, 0x01}, + {0xee86, 0x01}, + {0xee87, 0x01}, + {0xee88, 0x01}, + {0xee89, 0x01}, + {0xee8a, 0x01}, + {0xee8b, 0x01}, + {0xee8c, 0x01}, + {0xee8d, 0x01}, + {0xee8e, 0x01}, + {0xee8f, 0x01}, + {0xee90, 0x01}, + {0xee91, 0x01}, + {0xee92, 0x01}, + {0xee93, 0x01}, + {0xee94, 0x01}, + {0xee95, 0x01}, + {0xee96, 0x01}, + {0xee97, 0x01}, + {0xee98, 0x01}, + {0xee99, 0x01}, + {0xee9a, 0x01}, + {0xee9b, 0x01}, + {0xee9c, 0x01}, + {0xee9d, 0x01}, + {0xee9e, 0x01}, + {0xee9f, 0x01}, + {0xeea0, 0x01}, + {0xeea1, 0x01}, + {0xeea2, 0x01}, + {0xeea3, 0x01}, + {0xeea4, 0x01}, + {0xeea5, 0x01}, + {0xeea6, 0x01}, + {0xeea7, 0x01}, + {0xeea8, 0x01}, + {0xeea9, 0x01}, + {0xeeaa, 0x01}, + {0xeeab, 0x01}, + {0xeeac, 0x01}, + {0xeead, 0x01}, + {0xeeae, 0x01}, + {0xeeaf, 0x01}, + {0xeeb0, 0x01}, + {0xeeb1, 0x01}, + {0xeeb2, 0x01}, + {0xeeb3, 0x01}, + {0xeeb4, 0x01}, + {0xeeb5, 0x01}, + {0xeeb6, 0x01}, + {0xeeb7, 0x01}, + {0xeeb8, 0x01}, + {0xeeb9, 0x01}, + {0xeeba, 0x01}, + {0xeebb, 0x01}, + {0xeebc, 0x01}, + {0xeebd, 0x01}, + {0xeebe, 0x01}, + {0xeebf, 0x01}, + {0xeec0, 0x01}, + {0xeec1, 0x01}, + {0xeec2, 0x01}, + {0xeec3, 0x01}, + {0xeec4, 0x01}, + {0xeec5, 0x01}, + {0xeec6, 0x01}, + {0xeec7, 0x01}, + {0xeec8, 0x01}, + {0xeec9, 0x01}, + {0xeeca, 0x01}, + {0xeecb, 0x01}, + {0xeecc, 0x01}, + {0xeecd, 0x01}, + {0xeece, 0x01}, + {0xeecf, 0x01}, + {0xeed0, 0x01}, + {0xeed1, 0x01}, + {0xeed2, 0x01}, + {0xeed3, 0x01}, + {0xeed4, 0x01}, + {0xeed5, 0x01}, + {0xeed6, 0x01}, + {0xeed7, 0x01}, + {0xeed8, 0x01}, + {0xeed9, 0x01}, + {0xeeda, 0x01}, + {0xeedb, 0x01}, + {0xeedc, 0x01}, + {0xeedd, 0x01}, + {0xeede, 0x01}, + {0xeedf, 0x01}, + {0xeee0, 0x01}, + {0xeee1, 0x01}, + {0xeee2, 0x01}, + {0xeee3, 0x01}, + {0xeee4, 0x01}, + {0xeee5, 0x01}, + {0xeee6, 0x01}, + {0xeee7, 0x01}, + {0xeee8, 0x01}, + {0xeee9, 0x01}, + {0xeeea, 0x01}, + {0xeeeb, 0x01}, + {0xeeec, 0x01}, + {0xeeed, 0x01}, + {0xeeee, 0x01}, + {0xeeef, 0x01}, + {0xeef0, 0x01}, + {0xeef1, 0x01}, + {0xeef2, 0x01}, + {0xeef3, 0x01}, + {0xeef4, 0x01}, + {0xeef5, 0x01}, + {0xeef6, 0x01}, + {0xeef7, 0x01}, + {0xeef8, 0x01}, + {0xeef9, 0x01}, + {0xeefa, 0x01}, + {0xeefb, 0x01}, + {0xeefc, 0x01}, + {0xeefd, 0x01}, + {0xeefe, 0x01}, + {0xef40, 0x01}, + {0xef41, 0x01}, + {0xef42, 0x01}, + {0xef43, 0x01}, + {0xef44, 0x01}, + {0xef45, 0x01}, + {0xef46, 0x01}, + {0xef47, 0x01}, + {0xef48, 0x01}, + {0xef49, 0x01}, + {0xef4a, 0x01}, + {0xef4b, 0x01}, + {0xef4c, 0x01}, + {0xef4d, 0x01}, + {0xef4e, 0x01}, + {0xef4f, 0x01}, + {0xef50, 0x01}, + {0xef51, 0x01}, + {0xef52, 0x01}, + {0xef53, 0x01}, + {0xef54, 0x01}, + {0xef55, 0x01}, + {0xef56, 0x01}, + {0xef57, 0x01}, + {0xef58, 0x01}, + {0xef59, 0x01}, + {0xef5a, 0x01}, + {0xef5b, 0x01}, + {0xef5c, 0x01}, + {0xef5d, 0x01}, + {0xef5e, 0x01}, + {0xef5f, 0x01}, + {0xef60, 0x01}, + {0xef61, 0x01}, + {0xef62, 0x01}, + {0xef63, 0x01}, + {0xef64, 0x01}, + {0xef65, 0x01}, + {0xef66, 0x01}, + {0xef67, 0x01}, + {0xef68, 0x01}, + {0xef69, 0x01}, + {0xef6a, 0x01}, + {0xef6b, 0x01}, + {0xef6c, 0x01}, + {0xef6d, 0x01}, + {0xef6e, 0x01}, + {0xef6f, 0x01}, + {0xef70, 0x01}, + {0xef71, 0x01}, + {0xef72, 0x01}, + {0xef73, 0x01}, + {0xef74, 0x01}, + {0xef75, 0x01}, + {0xef76, 0x01}, + {0xef77, 0x01}, + {0xef78, 0x01}, + {0xef79, 0x01}, + {0xef7a, 0x01}, + {0xef7b, 0x01}, + {0xef7c, 0x01}, + {0xef7d, 0x01}, + {0xef7e, 0x01}, + {0xef80, 0x01}, + {0xef81, 0x01}, + {0xef82, 0x01}, + {0xef83, 0x01}, + {0xef84, 0x01}, + {0xef85, 0x01}, + {0xef86, 0x01}, + {0xef87, 0x01}, + {0xef88, 0x01}, + {0xef89, 0x01}, + {0xef8a, 0x01}, + {0xef8b, 0x01}, + {0xef8c, 0x01}, + {0xef8d, 0x01}, + {0xef8e, 0x01}, + {0xef8f, 0x01}, + {0xef90, 0x01}, + {0xef91, 0x01}, + {0xef92, 0x01}, + {0xef93, 0x01}, + {0xef94, 0x01}, + {0xef95, 0x01}, + {0xef96, 0x01}, + {0xef97, 0x01}, + {0xef98, 0x01}, + {0xef99, 0x01}, + {0xef9a, 0x01}, + {0xef9b, 0x01}, + {0xef9c, 0x01}, + {0xef9d, 0x01}, + {0xef9e, 0x01}, + {0xef9f, 0x01}, + {0xefa0, 0x01}, + {0xefa1, 0x01}, + {0xefa2, 0x01}, + {0xefa3, 0x01}, + {0xefa4, 0x01}, + {0xefa5, 0x01}, + {0xefa6, 0x01}, + {0xefa7, 0x01}, + {0xefa8, 0x01}, + {0xefa9, 0x01}, + {0xefaa, 0x01}, + {0xefab, 0x01}, + {0xefac, 0x01}, + {0xefad, 0x01}, + {0xefae, 0x01}, + {0xefaf, 0x01}, + {0xefb0, 0x01}, + {0xefb1, 0x01}, + {0xefb2, 0x01}, + {0xefb3, 0x01}, + {0xefb4, 0x01}, + {0xefb5, 0x01}, + {0xefb6, 0x01}, + {0xefb7, 0x01}, + {0xefb8, 0x01}, + {0xefb9, 0x01}, + {0xefba, 0x01}, + {0xefbb, 0x01}, + {0xefbc, 0x01}, + {0xefbd, 0x01}, + {0xefbe, 0x01}, + {0xefbf, 0x01}, + {0xefc0, 0x01}, + {0xefc1, 0x01}, + {0xefc2, 0x01}, + {0xefc3, 0x01}, + {0xefc4, 0x01}, + {0xefc5, 0x01}, + {0xefc6, 0x01}, + {0xefc7, 0x01}, + {0xefc8, 0x01}, + {0xefc9, 0x01}, + {0xefca, 0x01}, + {0xefcb, 0x01}, + {0xefcc, 0x01}, + {0xefcd, 0x01}, + {0xefce, 0x01}, + {0xefcf, 0x01}, + {0xefd0, 0x01}, + {0xefd1, 0x01}, + {0xefd2, 0x01}, + {0xefd3, 0x01}, + {0xefd4, 0x01}, + {0xefd5, 0x01}, + {0xefd6, 0x01}, + {0xefd7, 0x01}, + {0xefd8, 0x01}, + {0xefd9, 0x01}, + {0xefda, 0x01}, + {0xefdb, 0x01}, + {0xefdc, 0x01}, + {0xefdd, 0x01}, + {0xefde, 0x01}, + {0xefdf, 0x01}, + {0xefe0, 0x01}, + {0xefe1, 0x01}, + {0xefe2, 0x01}, + {0xefe3, 0x01}, + {0xefe4, 0x01}, + {0xefe5, 0x01}, + {0xefe6, 0x01}, + {0xefe7, 0x01}, + {0xefe8, 0x01}, + {0xefe9, 0x01}, + {0xefea, 0x01}, + {0xefeb, 0x01}, + {0xefec, 0x01}, + {0xefed, 0x01}, + {0xefee, 0x01}, + {0xefef, 0x01}, + {0xeff0, 0x01}, + {0xeff1, 0x01}, + {0xeff2, 0x01}, + {0xeff3, 0x01}, + {0xeff4, 0x01}, + {0xeff5, 0x01}, + {0xeff6, 0x01}, + {0xeff7, 0x01}, + {0xeff8, 0x01}, + {0xeff9, 0x01}, + {0xeffa, 0x01}, + {0xeffb, 0x01}, + {0xeffc, 0x01}, + {0xeffd, 0x01}, + {0xeffe, 0x01}, + {0xf040, 0x01}, + {0xf041, 0x01}, + {0xf042, 0x01}, + {0xf043, 0x01}, + {0xf044, 0x01}, + {0xf045, 0x01}, + {0xf046, 0x01}, + {0xf047, 0x01}, + {0xf048, 0x01}, + {0xf049, 0x01}, + {0xf04a, 0x01}, + {0xf04b, 0x01}, + {0xf04c, 0x01}, + {0xf04d, 0x01}, + {0xf04e, 0x01}, + {0xf04f, 0x01}, + {0xf050, 0x01}, + {0xf051, 0x01}, + {0xf052, 0x01}, + {0xf053, 0x01}, + {0xf054, 0x01}, + {0xf055, 0x01}, + {0xf056, 0x01}, + {0xf057, 0x01}, + {0xf058, 0x01}, + {0xf059, 0x01}, + {0xf05a, 0x01}, + {0xf05b, 0x01}, + {0xf05c, 0x01}, + {0xf05d, 0x01}, + {0xf05e, 0x01}, + {0xf05f, 0x01}, + {0xf060, 0x01}, + {0xf061, 0x01}, + {0xf062, 0x01}, + {0xf063, 0x01}, + {0xf064, 0x01}, + {0xf065, 0x01}, + {0xf066, 0x01}, + {0xf067, 0x01}, + {0xf068, 0x01}, + {0xf069, 0x01}, + {0xf06a, 0x01}, + {0xf06b, 0x01}, + {0xf06c, 0x01}, + {0xf06d, 0x01}, + {0xf06e, 0x01}, + {0xf06f, 0x01}, + {0xf070, 0x01}, + {0xf071, 0x01}, + {0xf072, 0x01}, + {0xf073, 0x01}, + {0xf074, 0x01}, + {0xf075, 0x01}, + {0xf076, 0x01}, + {0xf077, 0x01}, + {0xf078, 0x01}, + {0xf079, 0x01}, + {0xf07a, 0x01}, + {0xf07b, 0x01}, + {0xf07c, 0x01}, + {0xf07d, 0x01}, + {0xf07e, 0x01}, + {0xf080, 0x01}, + {0xf081, 0x01}, + {0xf082, 0x01}, + {0xf083, 0x01}, + {0xf084, 0x01}, + {0xf085, 0x01}, + {0xf086, 0x01}, + {0xf087, 0x01}, + {0xf088, 0x01}, + {0xf089, 0x01}, + {0xf08a, 0x01}, + {0xf08b, 0x01}, + {0xf08c, 0x01}, + {0xf08d, 0x01}, + {0xf08e, 0x01}, + {0xf08f, 0x01}, + {0xf090, 0x01}, + {0xf091, 0x01}, + {0xf092, 0x01}, + {0xf093, 0x01}, + {0xf094, 0x01}, + {0xf095, 0x01}, + {0xf096, 0x01}, + {0xf097, 0x01}, + {0xf098, 0x01}, + {0xf099, 0x01}, + {0xf09a, 0x01}, + {0xf09b, 0x01}, + {0xf09c, 0x01}, + {0xf09d, 0x01}, + {0xf09e, 0x01}, + {0xf09f, 0x01}, + {0xf0a0, 0x01}, + {0xf0a1, 0x01}, + {0xf0a2, 0x01}, + {0xf0a3, 0x01}, + {0xf0a4, 0x01}, + {0xf0a5, 0x01}, + {0xf0a6, 0x01}, + {0xf0a7, 0x01}, + {0xf0a8, 0x01}, + {0xf0a9, 0x01}, + {0xf0aa, 0x01}, + {0xf0ab, 0x01}, + {0xf0ac, 0x01}, + {0xf0ad, 0x01}, + {0xf0ae, 0x01}, + {0xf0af, 0x01}, + {0xf0b0, 0x01}, + {0xf0b1, 0x01}, + {0xf0b2, 0x01}, + {0xf0b3, 0x01}, + {0xf0b4, 0x01}, + {0xf0b5, 0x01}, + {0xf0b6, 0x01}, + {0xf0b7, 0x01}, + {0xf0b8, 0x01}, + {0xf0b9, 0x01}, + {0xf0ba, 0x01}, + {0xf0bb, 0x01}, + {0xf0bc, 0x01}, + {0xf0bd, 0x01}, + {0xf0be, 0x01}, + {0xf0bf, 0x01}, + {0xf0c0, 0x01}, + {0xf0c1, 0x01}, + {0xf0c2, 0x01}, + {0xf0c3, 0x01}, + {0xf0c4, 0x01}, + {0xf0c5, 0x01}, + {0xf0c6, 0x01}, + {0xf0c7, 0x01}, + {0xf0c8, 0x01}, + {0xf0c9, 0x01}, + {0xf0ca, 0x01}, + {0xf0cb, 0x01}, + {0xf0cc, 0x01}, + {0xf0cd, 0x01}, + {0xf0ce, 0x01}, + {0xf0cf, 0x01}, + {0xf0d0, 0x01}, + {0xf0d1, 0x01}, + {0xf0d2, 0x01}, + {0xf0d3, 0x01}, + {0xf0d4, 0x01}, + {0xf0d5, 0x01}, + {0xf0d6, 0x01}, + {0xf0d7, 0x01}, + {0xf0d8, 0x01}, + {0xf0d9, 0x01}, + {0xf0da, 0x01}, + {0xf0db, 0x01}, + {0xf0dc, 0x01}, + {0xf0dd, 0x01}, + {0xf0de, 0x01}, + {0xf0df, 0x01}, + {0xf0e0, 0x01}, + {0xf0e1, 0x01}, + {0xf0e2, 0x01}, + {0xf0e3, 0x01}, + {0xf0e4, 0x01}, + {0xf0e5, 0x01}, + {0xf0e6, 0x01}, + {0xf0e7, 0x01}, + {0xf0e8, 0x01}, + {0xf0e9, 0x01}, + {0xf0ea, 0x01}, + {0xf0eb, 0x01}, + {0xf0ec, 0x01}, + {0xf0ed, 0x01}, + {0xf0ee, 0x01}, + {0xf0ef, 0x01}, + {0xf0f0, 0x01}, + {0xf0f1, 0x01}, + {0xf0f2, 0x01}, + {0xf0f3, 0x01}, + {0xf0f4, 0x01}, + {0xf0f5, 0x01}, + {0xf0f6, 0x01}, + {0xf0f7, 0x01}, + {0xf0f8, 0x01}, + {0xf0f9, 0x01}, + {0xf0fa, 0x01}, + {0xf0fb, 0x01}, + {0xf0fc, 0x01}, + {0xf0fd, 0x01}, + {0xf0fe, 0x01}, + {0xf140, 0x01}, + {0xf141, 0x01}, + {0xf142, 0x01}, + {0xf143, 0x01}, + {0xf144, 0x01}, + {0xf145, 0x01}, + {0xf146, 0x01}, + {0xf147, 0x01}, + {0xf148, 0x01}, + {0xf149, 0x01}, + {0xf14a, 0x01}, + {0xf14b, 0x01}, + {0xf14c, 0x01}, + {0xf14d, 0x01}, + {0xf14e, 0x01}, + {0xf14f, 0x01}, + {0xf150, 0x01}, + {0xf151, 0x01}, + {0xf152, 0x01}, + {0xf153, 0x01}, + {0xf154, 0x01}, + {0xf155, 0x01}, + {0xf156, 0x01}, + {0xf157, 0x01}, + {0xf158, 0x01}, + {0xf159, 0x01}, + {0xf15a, 0x01}, + {0xf15b, 0x01}, + {0xf15c, 0x01}, + {0xf15d, 0x01}, + {0xf15e, 0x01}, + {0xf15f, 0x01}, + {0xf160, 0x01}, + {0xf161, 0x01}, + {0xf162, 0x01}, + {0xf163, 0x01}, + {0xf164, 0x01}, + {0xf165, 0x01}, + {0xf166, 0x01}, + {0xf167, 0x01}, + {0xf168, 0x01}, + {0xf169, 0x01}, + {0xf16a, 0x01}, + {0xf16b, 0x01}, + {0xf16c, 0x01}, + {0xf16d, 0x01}, + {0xf16e, 0x01}, + {0xf16f, 0x01}, + {0xf170, 0x01}, + {0xf171, 0x01}, + {0xf172, 0x01}, + {0xf173, 0x01}, + {0xf174, 0x01}, + {0xf175, 0x01}, + {0xf176, 0x01}, + {0xf177, 0x01}, + {0xf178, 0x01}, + {0xf179, 0x01}, + {0xf17a, 0x01}, + {0xf17b, 0x01}, + {0xf17c, 0x01}, + {0xf17d, 0x01}, + {0xf17e, 0x01}, + {0xf180, 0x01}, + {0xf181, 0x01}, + {0xf182, 0x01}, + {0xf183, 0x01}, + {0xf184, 0x01}, + {0xf185, 0x01}, + {0xf186, 0x01}, + {0xf187, 0x01}, + {0xf188, 0x01}, + {0xf189, 0x01}, + {0xf18a, 0x01}, + {0xf18b, 0x01}, + {0xf18c, 0x01}, + {0xf18d, 0x01}, + {0xf18e, 0x01}, + {0xf18f, 0x01}, + {0xf190, 0x01}, + {0xf191, 0x01}, + {0xf192, 0x01}, + {0xf193, 0x01}, + {0xf194, 0x01}, + {0xf195, 0x01}, + {0xf196, 0x01}, + {0xf197, 0x01}, + {0xf198, 0x01}, + {0xf199, 0x01}, + {0xf19a, 0x01}, + {0xf19b, 0x01}, + {0xf19c, 0x01}, + {0xf19d, 0x01}, + {0xf19e, 0x01}, + {0xf19f, 0x01}, + {0xf1a0, 0x01}, + {0xf1a1, 0x01}, + {0xf1a2, 0x01}, + {0xf1a3, 0x01}, + {0xf1a4, 0x01}, + {0xf1a5, 0x01}, + {0xf1a6, 0x01}, + {0xf1a7, 0x01}, + {0xf1a8, 0x01}, + {0xf1a9, 0x01}, + {0xf1aa, 0x01}, + {0xf1ab, 0x01}, + {0xf1ac, 0x01}, + {0xf1ad, 0x01}, + {0xf1ae, 0x01}, + {0xf1af, 0x01}, + {0xf1b0, 0x01}, + {0xf1b1, 0x01}, + {0xf1b2, 0x01}, + {0xf1b3, 0x01}, + {0xf1b4, 0x01}, + {0xf1b5, 0x01}, + {0xf1b6, 0x01}, + {0xf1b7, 0x01}, + {0xf1b8, 0x01}, + {0xf1b9, 0x01}, + {0xf1ba, 0x01}, + {0xf1bb, 0x01}, + {0xf1bc, 0x01}, + {0xf1bd, 0x01}, + {0xf1be, 0x01}, + {0xf1bf, 0x01}, + {0xf1c0, 0x01}, + {0xf1c1, 0x01}, + {0xf1c2, 0x01}, + {0xf1c3, 0x01}, + {0xf1c4, 0x01}, + {0xf1c5, 0x01}, + {0xf1c6, 0x01}, + {0xf1c7, 0x01}, + {0xf1c8, 0x01}, + {0xf1c9, 0x01}, + {0xf1ca, 0x01}, + {0xf1cb, 0x01}, + {0xf1cc, 0x01}, + {0xf1cd, 0x01}, + {0xf1ce, 0x01}, + {0xf1cf, 0x01}, + {0xf1d0, 0x01}, + {0xf1d1, 0x01}, + {0xf1d2, 0x01}, + {0xf1d3, 0x01}, + {0xf1d4, 0x01}, + {0xf1d5, 0x01}, + {0xf1d6, 0x01}, + {0xf1d7, 0x01}, + {0xf1d8, 0x01}, + {0xf1d9, 0x01}, + {0xf1da, 0x01}, + {0xf1db, 0x01}, + {0xf1dc, 0x01}, + {0xf1dd, 0x01}, + {0xf1de, 0x01}, + {0xf1df, 0x01}, + {0xf1e0, 0x01}, + {0xf1e1, 0x01}, + {0xf1e2, 0x01}, + {0xf1e3, 0x01}, + {0xf1e4, 0x01}, + {0xf1e5, 0x01}, + {0xf1e6, 0x01}, + {0xf1e7, 0x01}, + {0xf1e8, 0x01}, + {0xf1e9, 0x01}, + {0xf1ea, 0x01}, + {0xf1eb, 0x01}, + {0xf1ec, 0x01}, + {0xf1ed, 0x01}, + {0xf1ee, 0x01}, + {0xf1ef, 0x01}, + {0xf1f0, 0x01}, + {0xf1f1, 0x01}, + {0xf1f2, 0x01}, + {0xf1f3, 0x01}, + {0xf1f4, 0x01}, + {0xf1f5, 0x01}, + {0xf1f6, 0x01}, + {0xf1f7, 0x01}, + {0xf1f8, 0x01}, + {0xf1f9, 0x01}, + {0xf1fa, 0x01}, + {0xf1fb, 0x01}, + {0xf1fc, 0x01}, + {0xf1fd, 0x01}, + {0xf1fe, 0x01}, + {0xf240, 0x01}, + {0xf241, 0x01}, + {0xf242, 0x01}, + {0xf243, 0x01}, + {0xf244, 0x01}, + {0xf245, 0x01}, + {0xf246, 0x01}, + {0xf247, 0x01}, + {0xf248, 0x01}, + {0xf249, 0x01}, + {0xf24a, 0x01}, + {0xf24b, 0x01}, + {0xf24c, 0x01}, + {0xf24d, 0x01}, + {0xf24e, 0x01}, + {0xf24f, 0x01}, + {0xf250, 0x01}, + {0xf251, 0x01}, + {0xf252, 0x01}, + {0xf253, 0x01}, + {0xf254, 0x01}, + {0xf255, 0x01}, + {0xf256, 0x01}, + {0xf257, 0x01}, + {0xf258, 0x01}, + {0xf259, 0x01}, + {0xf25a, 0x01}, + {0xf25b, 0x01}, + {0xf25c, 0x01}, + {0xf25d, 0x01}, + {0xf25e, 0x01}, + {0xf25f, 0x01}, + {0xf260, 0x01}, + {0xf261, 0x01}, + {0xf262, 0x01}, + {0xf263, 0x01}, + {0xf264, 0x01}, + {0xf265, 0x01}, + {0xf266, 0x01}, + {0xf267, 0x01}, + {0xf268, 0x01}, + {0xf269, 0x01}, + {0xf26a, 0x01}, + {0xf26b, 0x01}, + {0xf26c, 0x01}, + {0xf26d, 0x01}, + {0xf26e, 0x01}, + {0xf26f, 0x01}, + {0xf270, 0x01}, + {0xf271, 0x01}, + {0xf272, 0x01}, + {0xf273, 0x01}, + {0xf274, 0x01}, + {0xf275, 0x01}, + {0xf276, 0x01}, + {0xf277, 0x01}, + {0xf278, 0x01}, + {0xf279, 0x01}, + {0xf27a, 0x01}, + {0xf27b, 0x01}, + {0xf27c, 0x01}, + {0xf27d, 0x01}, + {0xf27e, 0x01}, + {0xf280, 0x01}, + {0xf281, 0x01}, + {0xf282, 0x01}, + {0xf283, 0x01}, + {0xf284, 0x01}, + {0xf285, 0x01}, + {0xf286, 0x01}, + {0xf287, 0x01}, + {0xf288, 0x01}, + {0xf289, 0x01}, + {0xf28a, 0x01}, + {0xf28b, 0x01}, + {0xf28c, 0x01}, + {0xf28d, 0x01}, + {0xf28e, 0x01}, + {0xf28f, 0x01}, + {0xf290, 0x01}, + {0xf291, 0x01}, + {0xf292, 0x01}, + {0xf293, 0x01}, + {0xf294, 0x01}, + {0xf295, 0x01}, + {0xf296, 0x01}, + {0xf297, 0x01}, + {0xf298, 0x01}, + {0xf299, 0x01}, + {0xf29a, 0x01}, + {0xf29b, 0x01}, + {0xf29c, 0x01}, + {0xf29d, 0x01}, + {0xf29e, 0x01}, + {0xf29f, 0x01}, + {0xf2a0, 0x01}, + {0xf2a1, 0x01}, + {0xf2a2, 0x01}, + {0xf2a3, 0x01}, + {0xf2a4, 0x01}, + {0xf2a5, 0x01}, + {0xf2a6, 0x01}, + {0xf2a7, 0x01}, + {0xf2a8, 0x01}, + {0xf2a9, 0x01}, + {0xf2aa, 0x01}, + {0xf2ab, 0x01}, + {0xf2ac, 0x01}, + {0xf2ad, 0x01}, + {0xf2ae, 0x01}, + {0xf2af, 0x01}, + {0xf2b0, 0x01}, + {0xf2b1, 0x01}, + {0xf2b2, 0x01}, + {0xf2b3, 0x01}, + {0xf2b4, 0x01}, + {0xf2b5, 0x01}, + {0xf2b6, 0x01}, + {0xf2b7, 0x01}, + {0xf2b8, 0x01}, + {0xf2b9, 0x01}, + {0xf2ba, 0x01}, + {0xf2bb, 0x01}, + {0xf2bc, 0x01}, + {0xf2bd, 0x01}, + {0xf2be, 0x01}, + {0xf2bf, 0x01}, + {0xf2c0, 0x01}, + {0xf2c1, 0x01}, + {0xf2c2, 0x01}, + {0xf2c3, 0x01}, + {0xf2c4, 0x01}, + {0xf2c5, 0x01}, + {0xf2c6, 0x01}, + {0xf2c7, 0x01}, + {0xf2c8, 0x01}, + {0xf2c9, 0x01}, + {0xf2ca, 0x01}, + {0xf2cb, 0x01}, + {0xf2cc, 0x01}, + {0xf2cd, 0x01}, + {0xf2ce, 0x01}, + {0xf2cf, 0x01}, + {0xf2d0, 0x01}, + {0xf2d1, 0x01}, + {0xf2d2, 0x01}, + {0xf2d3, 0x01}, + {0xf2d4, 0x01}, + {0xf2d5, 0x01}, + {0xf2d6, 0x01}, + {0xf2d7, 0x01}, + {0xf2d8, 0x01}, + {0xf2d9, 0x01}, + {0xf2da, 0x01}, + {0xf2db, 0x01}, + {0xf2dc, 0x01}, + {0xf2dd, 0x01}, + {0xf2de, 0x01}, + {0xf2df, 0x01}, + {0xf2e0, 0x01}, + {0xf2e1, 0x01}, + {0xf2e2, 0x01}, + {0xf2e3, 0x01}, + {0xf2e4, 0x01}, + {0xf2e5, 0x01}, + {0xf2e6, 0x01}, + {0xf2e7, 0x01}, + {0xf2e8, 0x01}, + {0xf2e9, 0x01}, + {0xf2ea, 0x01}, + {0xf2eb, 0x01}, + {0xf2ec, 0x01}, + {0xf2ed, 0x01}, + {0xf2ee, 0x01}, + {0xf2ef, 0x01}, + {0xf2f0, 0x01}, + {0xf2f1, 0x01}, + {0xf2f2, 0x01}, + {0xf2f3, 0x01}, + {0xf2f4, 0x01}, + {0xf2f5, 0x01}, + {0xf2f6, 0x01}, + {0xf2f7, 0x01}, + {0xf2f8, 0x01}, + {0xf2f9, 0x01}, + {0xf2fa, 0x01}, + {0xf2fb, 0x01}, + {0xf2fc, 0x01}, + {0xf2fd, 0x01}, + {0xf2fe, 0x01}, + {0xf340, 0x01}, + {0xf341, 0x01}, + {0xf342, 0x01}, + {0xf343, 0x01}, + {0xf344, 0x01}, + {0xf345, 0x01}, + {0xf346, 0x01}, + {0xf347, 0x01}, + {0xf348, 0x01}, + {0xf349, 0x01}, + {0xf34a, 0x01}, + {0xf34b, 0x01}, + {0xf34c, 0x01}, + {0xf34d, 0x01}, + {0xf34e, 0x01}, + {0xf34f, 0x01}, + {0xf350, 0x01}, + {0xf351, 0x01}, + {0xf352, 0x01}, + {0xf353, 0x01}, + {0xf354, 0x01}, + {0xf355, 0x01}, + {0xf356, 0x01}, + {0xf357, 0x01}, + {0xf358, 0x01}, + {0xf359, 0x01}, + {0xf35a, 0x01}, + {0xf35b, 0x01}, + {0xf35c, 0x01}, + {0xf35d, 0x01}, + {0xf35e, 0x01}, + {0xf35f, 0x01}, + {0xf360, 0x01}, + {0xf361, 0x01}, + {0xf362, 0x01}, + {0xf363, 0x01}, + {0xf364, 0x01}, + {0xf365, 0x01}, + {0xf366, 0x01}, + {0xf367, 0x01}, + {0xf368, 0x01}, + {0xf369, 0x01}, + {0xf36a, 0x01}, + {0xf36b, 0x01}, + {0xf36c, 0x01}, + {0xf36d, 0x01}, + {0xf36e, 0x01}, + {0xf36f, 0x01}, + {0xf370, 0x01}, + {0xf371, 0x01}, + {0xf372, 0x01}, + {0xf373, 0x01}, + {0xf374, 0x01}, + {0xf375, 0x01}, + {0xf376, 0x01}, + {0xf377, 0x01}, + {0xf378, 0x01}, + {0xf379, 0x01}, + {0xf37a, 0x01}, + {0xf37b, 0x01}, + {0xf37c, 0x01}, + {0xf37d, 0x01}, + {0xf37e, 0x01}, + {0xf380, 0x01}, + {0xf381, 0x01}, + {0xf382, 0x01}, + {0xf383, 0x01}, + {0xf384, 0x01}, + {0xf385, 0x01}, + {0xf386, 0x01}, + {0xf387, 0x01}, + {0xf388, 0x01}, + {0xf389, 0x01}, + {0xf38a, 0x01}, + {0xf38b, 0x01}, + {0xf38c, 0x01}, + {0xf38d, 0x01}, + {0xf38e, 0x01}, + {0xf38f, 0x01}, + {0xf390, 0x01}, + {0xf391, 0x01}, + {0xf392, 0x01}, + {0xf393, 0x01}, + {0xf394, 0x01}, + {0xf395, 0x01}, + {0xf396, 0x01}, + {0xf397, 0x01}, + {0xf398, 0x01}, + {0xf399, 0x01}, + {0xf39a, 0x01}, + {0xf39b, 0x01}, + {0xf39c, 0x01}, + {0xf39d, 0x01}, + {0xf39e, 0x01}, + {0xf39f, 0x01}, + {0xf3a0, 0x01}, + {0xf3a1, 0x01}, + {0xf3a2, 0x01}, + {0xf3a3, 0x01}, + {0xf3a4, 0x01}, + {0xf3a5, 0x01}, + {0xf3a6, 0x01}, + {0xf3a7, 0x01}, + {0xf3a8, 0x01}, + {0xf3a9, 0x01}, + {0xf3aa, 0x01}, + {0xf3ab, 0x01}, + {0xf3ac, 0x01}, + {0xf3ad, 0x01}, + {0xf3ae, 0x01}, + {0xf3af, 0x01}, + {0xf3b0, 0x01}, + {0xf3b1, 0x01}, + {0xf3b2, 0x01}, + {0xf3b3, 0x01}, + {0xf3b4, 0x01}, + {0xf3b5, 0x01}, + {0xf3b6, 0x01}, + {0xf3b7, 0x01}, + {0xf3b8, 0x01}, + {0xf3b9, 0x01}, + {0xf3ba, 0x01}, + {0xf3bb, 0x01}, + {0xf3bc, 0x01}, + {0xf3bd, 0x01}, + {0xf3be, 0x01}, + {0xf3bf, 0x01}, + {0xf3c0, 0x01}, + {0xf3c1, 0x01}, + {0xf3c2, 0x01}, + {0xf3c3, 0x01}, + {0xf3c4, 0x01}, + {0xf3c5, 0x01}, + {0xf3c6, 0x01}, + {0xf3c7, 0x01}, + {0xf3c8, 0x01}, + {0xf3c9, 0x01}, + {0xf3ca, 0x01}, + {0xf3cb, 0x01}, + {0xf3cc, 0x01}, + {0xf3cd, 0x01}, + {0xf3ce, 0x01}, + {0xf3cf, 0x01}, + {0xf3d0, 0x01}, + {0xf3d1, 0x01}, + {0xf3d2, 0x01}, + {0xf3d3, 0x01}, + {0xf3d4, 0x01}, + {0xf3d5, 0x01}, + {0xf3d6, 0x01}, + {0xf3d7, 0x01}, + {0xf3d8, 0x01}, + {0xf3d9, 0x01}, + {0xf3da, 0x01}, + {0xf3db, 0x01}, + {0xf3dc, 0x01}, + {0xf3dd, 0x01}, + {0xf3de, 0x01}, + {0xf3df, 0x01}, + {0xf3e0, 0x01}, + {0xf3e1, 0x01}, + {0xf3e2, 0x01}, + {0xf3e3, 0x01}, + {0xf3e4, 0x01}, + {0xf3e5, 0x01}, + {0xf3e6, 0x01}, + {0xf3e7, 0x01}, + {0xf3e8, 0x01}, + {0xf3e9, 0x01}, + {0xf3ea, 0x01}, + {0xf3eb, 0x01}, + {0xf3ec, 0x01}, + {0xf3ed, 0x01}, + {0xf3ee, 0x01}, + {0xf3ef, 0x01}, + {0xf3f0, 0x01}, + {0xf3f1, 0x01}, + {0xf3f2, 0x01}, + {0xf3f3, 0x01}, + {0xf3f4, 0x01}, + {0xf3f5, 0x01}, + {0xf3f6, 0x01}, + {0xf3f7, 0x01}, + {0xf3f8, 0x01}, + {0xf3f9, 0x01}, + {0xf3fa, 0x01}, + {0xf3fb, 0x01}, + {0xf3fc, 0x01}, + {0xf3fd, 0x01}, + {0xf3fe, 0x01}, + {0xf440, 0x01}, + {0xf441, 0x01}, + {0xf442, 0x01}, + {0xf443, 0x01}, + {0xf444, 0x01}, + {0xf445, 0x01}, + {0xf446, 0x01}, + {0xf447, 0x01}, + {0xf448, 0x01}, + {0xf449, 0x01}, + {0xf44a, 0x01}, + {0xf44b, 0x01}, + {0xf44c, 0x01}, + {0xf44d, 0x01}, + {0xf44e, 0x01}, + {0xf44f, 0x01}, + {0xf450, 0x01}, + {0xf451, 0x01}, + {0xf452, 0x01}, + {0xf453, 0x01}, + {0xf454, 0x01}, + {0xf455, 0x01}, + {0xf456, 0x01}, + {0xf457, 0x01}, + {0xf458, 0x01}, + {0xf459, 0x01}, + {0xf45a, 0x01}, + {0xf45b, 0x01}, + {0xf45c, 0x01}, + {0xf45d, 0x01}, + {0xf45e, 0x01}, + {0xf45f, 0x01}, + {0xf460, 0x01}, + {0xf461, 0x01}, + {0xf462, 0x01}, + {0xf463, 0x01}, + {0xf464, 0x01}, + {0xf465, 0x01}, + {0xf466, 0x01}, + {0xf467, 0x01}, + {0xf468, 0x01}, + {0xf469, 0x01}, + {0xf46a, 0x01}, + {0xf46b, 0x01}, + {0xf46c, 0x01}, + {0xf46d, 0x01}, + {0xf46e, 0x01}, + {0xf46f, 0x01}, + {0xf470, 0x01}, + {0xf471, 0x01}, + {0xf472, 0x01}, + {0xf473, 0x01}, + {0xf474, 0x01}, + {0xf475, 0x01}, + {0xf476, 0x01}, + {0xf477, 0x01}, + {0xf478, 0x01}, + {0xf479, 0x01}, + {0xf47a, 0x01}, + {0xf47b, 0x01}, + {0xf47c, 0x01}, + {0xf47d, 0x01}, + {0xf47e, 0x01}, + {0xf480, 0x01}, + {0xf481, 0x01}, + {0xf482, 0x01}, + {0xf483, 0x01}, + {0xf484, 0x01}, + {0xf485, 0x01}, + {0xf486, 0x01}, + {0xf487, 0x01}, + {0xf488, 0x01}, + {0xf489, 0x01}, + {0xf48a, 0x01}, + {0xf48b, 0x01}, + {0xf48c, 0x01}, + {0xf48d, 0x01}, + {0xf48e, 0x01}, + {0xf48f, 0x01}, + {0xf490, 0x01}, + {0xf491, 0x01}, + {0xf492, 0x01}, + {0xf493, 0x01}, + {0xf494, 0x01}, + {0xf495, 0x01}, + {0xf496, 0x01}, + {0xf497, 0x01}, + {0xf498, 0x01}, + {0xf499, 0x01}, + {0xf49a, 0x01}, + {0xf49b, 0x01}, + {0xf49c, 0x01}, + {0xf49d, 0x01}, + {0xf49e, 0x01}, + {0xf49f, 0x01}, + {0xf4a0, 0x01}, + {0xf4a1, 0x01}, + {0xf4a2, 0x01}, + {0xf4a3, 0x01}, + {0xf4a4, 0x01}, + {0xf4a5, 0x01}, + {0xf4a6, 0x01}, + {0xf4a7, 0x01}, + {0xf4a8, 0x01}, + {0xf4a9, 0x01}, + {0xf4aa, 0x01}, + {0xf4ab, 0x01}, + {0xf4ac, 0x01}, + {0xf4ad, 0x01}, + {0xf4ae, 0x01}, + {0xf4af, 0x01}, + {0xf4b0, 0x01}, + {0xf4b1, 0x01}, + {0xf4b2, 0x01}, + {0xf4b3, 0x01}, + {0xf4b4, 0x01}, + {0xf4b5, 0x01}, + {0xf4b6, 0x01}, + {0xf4b7, 0x01}, + {0xf4b8, 0x01}, + {0xf4b9, 0x01}, + {0xf4ba, 0x01}, + {0xf4bb, 0x01}, + {0xf4bc, 0x01}, + {0xf4bd, 0x01}, + {0xf4be, 0x01}, + {0xf4bf, 0x01}, + {0xf4c0, 0x01}, + {0xf4c1, 0x01}, + {0xf4c2, 0x01}, + {0xf4c3, 0x01}, + {0xf4c4, 0x01}, + {0xf4c5, 0x01}, + {0xf4c6, 0x01}, + {0xf4c7, 0x01}, + {0xf4c8, 0x01}, + {0xf4c9, 0x01}, + {0xf4ca, 0x01}, + {0xf4cb, 0x01}, + {0xf4cc, 0x01}, + {0xf4cd, 0x01}, + {0xf4ce, 0x01}, + {0xf4cf, 0x01}, + {0xf4d0, 0x01}, + {0xf4d1, 0x01}, + {0xf4d2, 0x01}, + {0xf4d3, 0x01}, + {0xf4d4, 0x01}, + {0xf4d5, 0x01}, + {0xf4d6, 0x01}, + {0xf4d7, 0x01}, + {0xf4d8, 0x01}, + {0xf4d9, 0x01}, + {0xf4da, 0x01}, + {0xf4db, 0x01}, + {0xf4dc, 0x01}, + {0xf4dd, 0x01}, + {0xf4de, 0x01}, + {0xf4df, 0x01}, + {0xf4e0, 0x01}, + {0xf4e1, 0x01}, + {0xf4e2, 0x01}, + {0xf4e3, 0x01}, + {0xf4e4, 0x01}, + {0xf4e5, 0x01}, + {0xf4e6, 0x01}, + {0xf4e7, 0x01}, + {0xf4e8, 0x01}, + {0xf4e9, 0x01}, + {0xf4ea, 0x01}, + {0xf4eb, 0x01}, + {0xf4ec, 0x01}, + {0xf4ed, 0x01}, + {0xf4ee, 0x01}, + {0xf4ef, 0x01}, + {0xf4f0, 0x01}, + {0xf4f1, 0x01}, + {0xf4f2, 0x01}, + {0xf4f3, 0x01}, + {0xf4f4, 0x01}, + {0xf4f5, 0x01}, + {0xf4f6, 0x01}, + {0xf4f7, 0x01}, + {0xf4f8, 0x01}, + {0xf4f9, 0x01}, + {0xf4fa, 0x01}, + {0xf4fb, 0x01}, + {0xf4fc, 0x01}, + {0xf4fd, 0x01}, + {0xf4fe, 0x01}, + {0xf540, 0x01}, + {0xf541, 0x01}, + {0xf542, 0x01}, + {0xf543, 0x01}, + {0xf544, 0x01}, + {0xf545, 0x01}, + {0xf546, 0x01}, + {0xf547, 0x01}, + {0xf548, 0x01}, + {0xf549, 0x01}, + {0xf54a, 0x01}, + {0xf54b, 0x01}, + {0xf54c, 0x01}, + {0xf54d, 0x01}, + {0xf54e, 0x01}, + {0xf54f, 0x01}, + {0xf550, 0x01}, + {0xf551, 0x01}, + {0xf552, 0x01}, + {0xf553, 0x01}, + {0xf554, 0x01}, + {0xf555, 0x01}, + {0xf556, 0x01}, + {0xf557, 0x01}, + {0xf558, 0x01}, + {0xf559, 0x01}, + {0xf55a, 0x01}, + {0xf55b, 0x01}, + {0xf55c, 0x01}, + {0xf55d, 0x01}, + {0xf55e, 0x01}, + {0xf55f, 0x01}, + {0xf560, 0x01}, + {0xf561, 0x01}, + {0xf562, 0x01}, + {0xf563, 0x01}, + {0xf564, 0x01}, + {0xf565, 0x01}, + {0xf566, 0x01}, + {0xf567, 0x01}, + {0xf568, 0x01}, + {0xf569, 0x01}, + {0xf56a, 0x01}, + {0xf56b, 0x01}, + {0xf56c, 0x01}, + {0xf56d, 0x01}, + {0xf56e, 0x01}, + {0xf56f, 0x01}, + {0xf570, 0x01}, + {0xf571, 0x01}, + {0xf572, 0x01}, + {0xf573, 0x01}, + {0xf574, 0x01}, + {0xf575, 0x01}, + {0xf576, 0x01}, + {0xf577, 0x01}, + {0xf578, 0x01}, + {0xf579, 0x01}, + {0xf57a, 0x01}, + {0xf57b, 0x01}, + {0xf57c, 0x01}, + {0xf57d, 0x01}, + {0xf57e, 0x01}, + {0xf580, 0x01}, + {0xf581, 0x01}, + {0xf582, 0x01}, + {0xf583, 0x01}, + {0xf584, 0x01}, + {0xf585, 0x01}, + {0xf586, 0x01}, + {0xf587, 0x01}, + {0xf588, 0x01}, + {0xf589, 0x01}, + {0xf58a, 0x01}, + {0xf58b, 0x01}, + {0xf58c, 0x01}, + {0xf58d, 0x01}, + {0xf58e, 0x01}, + {0xf58f, 0x01}, + {0xf590, 0x01}, + {0xf591, 0x01}, + {0xf592, 0x01}, + {0xf593, 0x01}, + {0xf594, 0x01}, + {0xf595, 0x01}, + {0xf596, 0x01}, + {0xf597, 0x01}, + {0xf598, 0x01}, + {0xf599, 0x01}, + {0xf59a, 0x01}, + {0xf59b, 0x01}, + {0xf59c, 0x01}, + {0xf59d, 0x01}, + {0xf59e, 0x01}, + {0xf59f, 0x01}, + {0xf5a0, 0x01}, + {0xf5a1, 0x01}, + {0xf5a2, 0x01}, + {0xf5a3, 0x01}, + {0xf5a4, 0x01}, + {0xf5a5, 0x01}, + {0xf5a6, 0x01}, + {0xf5a7, 0x01}, + {0xf5a8, 0x01}, + {0xf5a9, 0x01}, + {0xf5aa, 0x01}, + {0xf5ab, 0x01}, + {0xf5ac, 0x01}, + {0xf5ad, 0x01}, + {0xf5ae, 0x01}, + {0xf5af, 0x01}, + {0xf5b0, 0x01}, + {0xf5b1, 0x01}, + {0xf5b2, 0x01}, + {0xf5b3, 0x01}, + {0xf5b4, 0x01}, + {0xf5b5, 0x01}, + {0xf5b6, 0x01}, + {0xf5b7, 0x01}, + {0xf5b8, 0x01}, + {0xf5b9, 0x01}, + {0xf5ba, 0x01}, + {0xf5bb, 0x01}, + {0xf5bc, 0x01}, + {0xf5bd, 0x01}, + {0xf5be, 0x01}, + {0xf5bf, 0x01}, + {0xf5c0, 0x01}, + {0xf5c1, 0x01}, + {0xf5c2, 0x01}, + {0xf5c3, 0x01}, + {0xf5c4, 0x01}, + {0xf5c5, 0x01}, + {0xf5c6, 0x01}, + {0xf5c7, 0x01}, + {0xf5c8, 0x01}, + {0xf5c9, 0x01}, + {0xf5ca, 0x01}, + {0xf5cb, 0x01}, + {0xf5cc, 0x01}, + {0xf5cd, 0x01}, + {0xf5ce, 0x01}, + {0xf5cf, 0x01}, + {0xf5d0, 0x01}, + {0xf5d1, 0x01}, + {0xf5d2, 0x01}, + {0xf5d3, 0x01}, + {0xf5d4, 0x01}, + {0xf5d5, 0x01}, + {0xf5d6, 0x01}, + {0xf5d7, 0x01}, + {0xf5d8, 0x01}, + {0xf5d9, 0x01}, + {0xf5da, 0x01}, + {0xf5db, 0x01}, + {0xf5dc, 0x01}, + {0xf5dd, 0x01}, + {0xf5de, 0x01}, + {0xf5df, 0x01}, + {0xf5e0, 0x01}, + {0xf5e1, 0x01}, + {0xf5e2, 0x01}, + {0xf5e3, 0x01}, + {0xf5e4, 0x01}, + {0xf5e5, 0x01}, + {0xf5e6, 0x01}, + {0xf5e7, 0x01}, + {0xf5e8, 0x01}, + {0xf5e9, 0x01}, + {0xf5ea, 0x01}, + {0xf5eb, 0x01}, + {0xf5ec, 0x01}, + {0xf5ed, 0x01}, + {0xf5ee, 0x01}, + {0xf5ef, 0x01}, + {0xf5f0, 0x01}, + {0xf5f1, 0x01}, + {0xf5f2, 0x01}, + {0xf5f3, 0x01}, + {0xf5f4, 0x01}, + {0xf5f5, 0x01}, + {0xf5f6, 0x01}, + {0xf5f7, 0x01}, + {0xf5f8, 0x01}, + {0xf5f9, 0x01}, + {0xf5fa, 0x01}, + {0xf5fb, 0x01}, + {0xf5fc, 0x01}, + {0xf5fd, 0x01}, + {0xf5fe, 0x01}, + {0xf640, 0x01}, + {0xf641, 0x01}, + {0xf642, 0x01}, + {0xf643, 0x01}, + {0xf644, 0x01}, + {0xf645, 0x01}, + {0xf646, 0x01}, + {0xf647, 0x01}, + {0xf648, 0x01}, + {0xf649, 0x01}, + {0xf64a, 0x01}, + {0xf64b, 0x01}, + {0xf64c, 0x01}, + {0xf64d, 0x01}, + {0xf64e, 0x01}, + {0xf64f, 0x01}, + {0xf650, 0x01}, + {0xf651, 0x01}, + {0xf652, 0x01}, + {0xf653, 0x01}, + {0xf654, 0x01}, + {0xf655, 0x01}, + {0xf656, 0x01}, + {0xf657, 0x01}, + {0xf658, 0x01}, + {0xf659, 0x01}, + {0xf65a, 0x01}, + {0xf65b, 0x01}, + {0xf65c, 0x01}, + {0xf65d, 0x01}, + {0xf65e, 0x01}, + {0xf65f, 0x01}, + {0xf660, 0x01}, + {0xf661, 0x01}, + {0xf662, 0x01}, + {0xf663, 0x01}, + {0xf664, 0x01}, + {0xf665, 0x01}, + {0xf666, 0x01}, + {0xf667, 0x01}, + {0xf668, 0x01}, + {0xf669, 0x01}, + {0xf66a, 0x01}, + {0xf66b, 0x01}, + {0xf66c, 0x01}, + {0xf66d, 0x01}, + {0xf66e, 0x01}, + {0xf66f, 0x01}, + {0xf670, 0x01}, + {0xf671, 0x01}, + {0xf672, 0x01}, + {0xf673, 0x01}, + {0xf674, 0x01}, + {0xf675, 0x01}, + {0xf676, 0x01}, + {0xf677, 0x01}, + {0xf678, 0x01}, + {0xf679, 0x01}, + {0xf67a, 0x01}, + {0xf67b, 0x01}, + {0xf67c, 0x01}, + {0xf67d, 0x01}, + {0xf67e, 0x01}, + {0xf680, 0x01}, + {0xf681, 0x01}, + {0xf682, 0x01}, + {0xf683, 0x01}, + {0xf684, 0x01}, + {0xf685, 0x01}, + {0xf686, 0x01}, + {0xf687, 0x01}, + {0xf688, 0x01}, + {0xf689, 0x01}, + {0xf68a, 0x01}, + {0xf68b, 0x01}, + {0xf68c, 0x01}, + {0xf68d, 0x01}, + {0xf68e, 0x01}, + {0xf68f, 0x01}, + {0xf690, 0x01}, + {0xf691, 0x01}, + {0xf692, 0x01}, + {0xf693, 0x01}, + {0xf694, 0x01}, + {0xf695, 0x01}, + {0xf696, 0x01}, + {0xf697, 0x01}, + {0xf698, 0x01}, + {0xf699, 0x01}, + {0xf69a, 0x01}, + {0xf69b, 0x01}, + {0xf69c, 0x01}, + {0xf69d, 0x01}, + {0xf69e, 0x01}, + {0xf69f, 0x01}, + {0xf6a0, 0x01}, + {0xf6a1, 0x01}, + {0xf6a2, 0x01}, + {0xf6a3, 0x01}, + {0xf6a4, 0x01}, + {0xf6a5, 0x01}, + {0xf6a6, 0x01}, + {0xf6a7, 0x01}, + {0xf6a8, 0x01}, + {0xf6a9, 0x01}, + {0xf6aa, 0x01}, + {0xf6ab, 0x01}, + {0xf6ac, 0x01}, + {0xf6ad, 0x01}, + {0xf6ae, 0x01}, + {0xf6af, 0x01}, + {0xf6b0, 0x01}, + {0xf6b1, 0x01}, + {0xf6b2, 0x01}, + {0xf6b3, 0x01}, + {0xf6b4, 0x01}, + {0xf6b5, 0x01}, + {0xf6b6, 0x01}, + {0xf6b7, 0x01}, + {0xf6b8, 0x01}, + {0xf6b9, 0x01}, + {0xf6ba, 0x01}, + {0xf6bb, 0x01}, + {0xf6bc, 0x01}, + {0xf6bd, 0x01}, + {0xf6be, 0x01}, + {0xf6bf, 0x01}, + {0xf6c0, 0x01}, + {0xf6c1, 0x01}, + {0xf6c2, 0x01}, + {0xf6c3, 0x01}, + {0xf6c4, 0x01}, + {0xf6c5, 0x01}, + {0xf6c6, 0x01}, + {0xf6c7, 0x01}, + {0xf6c8, 0x01}, + {0xf6c9, 0x01}, + {0xf6ca, 0x01}, + {0xf6cb, 0x01}, + {0xf6cc, 0x01}, + {0xf6cd, 0x01}, + {0xf6ce, 0x01}, + {0xf6cf, 0x01}, + {0xf6d0, 0x01}, + {0xf6d1, 0x01}, + {0xf6d2, 0x01}, + {0xf6d3, 0x01}, + {0xf6d4, 0x01}, + {0xf6d5, 0x01}, + {0xf6d6, 0x01}, + {0xf6d7, 0x01}, + {0xf6d8, 0x01}, + {0xf6d9, 0x01}, + {0xf6da, 0x01}, + {0xf6db, 0x01}, + {0xf6dc, 0x01}, + {0xf6dd, 0x01}, + {0xf6de, 0x01}, + {0xf6df, 0x01}, + {0xf6e0, 0x01}, + {0xf6e1, 0x01}, + {0xf6e2, 0x01}, + {0xf6e3, 0x01}, + {0xf6e4, 0x01}, + {0xf6e5, 0x01}, + {0xf6e6, 0x01}, + {0xf6e7, 0x01}, + {0xf6e8, 0x01}, + {0xf6e9, 0x01}, + {0xf6ea, 0x01}, + {0xf6eb, 0x01}, + {0xf6ec, 0x01}, + {0xf6ed, 0x01}, + {0xf6ee, 0x01}, + {0xf6ef, 0x01}, + {0xf6f0, 0x01}, + {0xf6f1, 0x01}, + {0xf6f2, 0x01}, + {0xf6f3, 0x01}, + {0xf6f4, 0x01}, + {0xf6f5, 0x01}, + {0xf6f6, 0x01}, + {0xf6f7, 0x01}, + {0xf6f8, 0x01}, + {0xf6f9, 0x01}, + {0xf6fa, 0x01}, + {0xf6fb, 0x01}, + {0xf6fc, 0x01}, + {0xf6fd, 0x01}, + {0xf6fe, 0x01}, + {0xf740, 0x01}, + {0xf741, 0x01}, + {0xf742, 0x01}, + {0xf743, 0x01}, + {0xf744, 0x01}, + {0xf745, 0x01}, + {0xf746, 0x01}, + {0xf747, 0x01}, + {0xf748, 0x01}, + {0xf749, 0x01}, + {0xf74a, 0x01}, + {0xf74b, 0x01}, + {0xf74c, 0x01}, + {0xf74d, 0x01}, + {0xf74e, 0x01}, + {0xf74f, 0x01}, + {0xf750, 0x01}, + {0xf751, 0x01}, + {0xf752, 0x01}, + {0xf753, 0x01}, + {0xf754, 0x01}, + {0xf755, 0x01}, + {0xf756, 0x01}, + {0xf757, 0x01}, + {0xf758, 0x01}, + {0xf759, 0x01}, + {0xf75a, 0x01}, + {0xf75b, 0x01}, + {0xf75c, 0x01}, + {0xf75d, 0x01}, + {0xf75e, 0x01}, + {0xf75f, 0x01}, + {0xf760, 0x01}, + {0xf761, 0x01}, + {0xf762, 0x01}, + {0xf763, 0x01}, + {0xf764, 0x01}, + {0xf765, 0x01}, + {0xf766, 0x01}, + {0xf767, 0x01}, + {0xf768, 0x01}, + {0xf769, 0x01}, + {0xf76a, 0x01}, + {0xf76b, 0x01}, + {0xf76c, 0x01}, + {0xf76d, 0x01}, + {0xf76e, 0x01}, + {0xf76f, 0x01}, + {0xf770, 0x01}, + {0xf771, 0x01}, + {0xf772, 0x01}, + {0xf773, 0x01}, + {0xf774, 0x01}, + {0xf775, 0x01}, + {0xf776, 0x01}, + {0xf777, 0x01}, + {0xf778, 0x01}, + {0xf779, 0x01}, + {0xf77a, 0x01}, + {0xf77b, 0x01}, + {0xf77c, 0x01}, + {0xf77d, 0x01}, + {0xf77e, 0x01}, + {0xf780, 0x01}, + {0xf781, 0x01}, + {0xf782, 0x01}, + {0xf783, 0x01}, + {0xf784, 0x01}, + {0xf785, 0x01}, + {0xf786, 0x01}, + {0xf787, 0x01}, + {0xf788, 0x01}, + {0xf789, 0x01}, + {0xf78a, 0x01}, + {0xf78b, 0x01}, + {0xf78c, 0x01}, + {0xf78d, 0x01}, + {0xf78e, 0x01}, + {0xf78f, 0x01}, + {0xf790, 0x01}, + {0xf791, 0x01}, + {0xf792, 0x01}, + {0xf793, 0x01}, + {0xf794, 0x01}, + {0xf795, 0x01}, + {0xf796, 0x01}, + {0xf797, 0x01}, + {0xf798, 0x01}, + {0xf799, 0x01}, + {0xf79a, 0x01}, + {0xf79b, 0x01}, + {0xf79c, 0x01}, + {0xf79d, 0x01}, + {0xf79e, 0x01}, + {0xf79f, 0x01}, + {0xf7a0, 0x01}, + {0xf7a1, 0x01}, + {0xf7a2, 0x01}, + {0xf7a3, 0x01}, + {0xf7a4, 0x01}, + {0xf7a5, 0x01}, + {0xf7a6, 0x01}, + {0xf7a7, 0x01}, + {0xf7a8, 0x01}, + {0xf7a9, 0x01}, + {0xf7aa, 0x01}, + {0xf7ab, 0x01}, + {0xf7ac, 0x01}, + {0xf7ad, 0x01}, + {0xf7ae, 0x01}, + {0xf7af, 0x01}, + {0xf7b0, 0x01}, + {0xf7b1, 0x01}, + {0xf7b2, 0x01}, + {0xf7b3, 0x01}, + {0xf7b4, 0x01}, + {0xf7b5, 0x01}, + {0xf7b6, 0x01}, + {0xf7b7, 0x01}, + {0xf7b8, 0x01}, + {0xf7b9, 0x01}, + {0xf7ba, 0x01}, + {0xf7bb, 0x01}, + {0xf7bc, 0x01}, + {0xf7bd, 0x01}, + {0xf7be, 0x01}, + {0xf7bf, 0x01}, + {0xf7c0, 0x01}, + {0xf7c1, 0x01}, + {0xf7c2, 0x01}, + {0xf7c3, 0x01}, + {0xf7c4, 0x01}, + {0xf7c5, 0x01}, + {0xf7c6, 0x01}, + {0xf7c7, 0x01}, + {0xf7c8, 0x01}, + {0xf7c9, 0x01}, + {0xf7ca, 0x01}, + {0xf7cb, 0x01}, + {0xf7cc, 0x01}, + {0xf7cd, 0x01}, + {0xf7ce, 0x01}, + {0xf7cf, 0x01}, + {0xf7d0, 0x01}, + {0xf7d1, 0x01}, + {0xf7d2, 0x01}, + {0xf7d3, 0x01}, + {0xf7d4, 0x01}, + {0xf7d5, 0x01}, + {0xf7d6, 0x01}, + {0xf7d7, 0x01}, + {0xf7d8, 0x01}, + {0xf7d9, 0x01}, + {0xf7da, 0x01}, + {0xf7db, 0x01}, + {0xf7dc, 0x01}, + {0xf7dd, 0x01}, + {0xf7de, 0x01}, + {0xf7df, 0x01}, + {0xf7e0, 0x01}, + {0xf7e1, 0x01}, + {0xf7e2, 0x01}, + {0xf7e3, 0x01}, + {0xf7e4, 0x01}, + {0xf7e5, 0x01}, + {0xf7e6, 0x01}, + {0xf7e7, 0x01}, + {0xf7e8, 0x01}, + {0xf7e9, 0x01}, + {0xf7ea, 0x01}, + {0xf7eb, 0x01}, + {0xf7ec, 0x01}, + {0xf7ed, 0x01}, + {0xf7ee, 0x01}, + {0xf7ef, 0x01}, + {0xf7f0, 0x01}, + {0xf7f1, 0x01}, + {0xf7f2, 0x01}, + {0xf7f3, 0x01}, + {0xf7f4, 0x01}, + {0xf7f5, 0x01}, + {0xf7f6, 0x01}, + {0xf7f7, 0x01}, + {0xf7f8, 0x01}, + {0xf7f9, 0x01}, + {0xf7fa, 0x01}, + {0xf7fb, 0x01}, + {0xf7fc, 0x01}, + {0xf7fd, 0x01}, + {0xf7fe, 0x01}, + {0xf840, 0x01}, + {0xf841, 0x01}, + {0xf842, 0x01}, + {0xf843, 0x01}, + {0xf844, 0x01}, + {0xf845, 0x01}, + {0xf846, 0x01}, + {0xf847, 0x01}, + {0xf848, 0x01}, + {0xf849, 0x01}, + {0xf84a, 0x01}, + {0xf84b, 0x01}, + {0xf84c, 0x01}, + {0xf84d, 0x01}, + {0xf84e, 0x01}, + {0xf84f, 0x01}, + {0xf850, 0x01}, + {0xf851, 0x01}, + {0xf852, 0x01}, + {0xf853, 0x01}, + {0xf854, 0x01}, + {0xf855, 0x01}, + {0xf856, 0x01}, + {0xf857, 0x01}, + {0xf858, 0x01}, + {0xf859, 0x01}, + {0xf85a, 0x01}, + {0xf85b, 0x01}, + {0xf85c, 0x01}, + {0xf85d, 0x01}, + {0xf85e, 0x01}, + {0xf85f, 0x01}, + {0xf860, 0x01}, + {0xf861, 0x01}, + {0xf862, 0x01}, + {0xf863, 0x01}, + {0xf864, 0x01}, + {0xf865, 0x01}, + {0xf866, 0x01}, + {0xf867, 0x01}, + {0xf868, 0x01}, + {0xf869, 0x01}, + {0xf86a, 0x01}, + {0xf86b, 0x01}, + {0xf86c, 0x01}, + {0xf86d, 0x01}, + {0xf86e, 0x01}, + {0xf86f, 0x01}, + {0xf870, 0x01}, + {0xf871, 0x01}, + {0xf872, 0x01}, + {0xf873, 0x01}, + {0xf874, 0x01}, + {0xf875, 0x01}, + {0xf876, 0x01}, + {0xf877, 0x01}, + {0xf878, 0x01}, + {0xf879, 0x01}, + {0xf87a, 0x01}, + {0xf87b, 0x01}, + {0xf87c, 0x01}, + {0xf87d, 0x01}, + {0xf87e, 0x01}, + {0xf880, 0x01}, + {0xf881, 0x01}, + {0xf882, 0x01}, + {0xf883, 0x01}, + {0xf884, 0x01}, + {0xf885, 0x01}, + {0xf886, 0x01}, + {0xf887, 0x01}, + {0xf888, 0x01}, + {0xf889, 0x01}, + {0xf88a, 0x01}, + {0xf88b, 0x01}, + {0xf88c, 0x01}, + {0xf88d, 0x01}, + {0xf88e, 0x01}, + {0xf88f, 0x01}, + {0xf890, 0x01}, + {0xf891, 0x01}, + {0xf892, 0x01}, + {0xf893, 0x01}, + {0xf894, 0x01}, + {0xf895, 0x01}, + {0xf896, 0x01}, + {0xf897, 0x01}, + {0xf898, 0x01}, + {0xf899, 0x01}, + {0xf89a, 0x01}, + {0xf89b, 0x01}, + {0xf89c, 0x01}, + {0xf89d, 0x01}, + {0xf89e, 0x01}, + {0xf89f, 0x01}, + {0xf8a0, 0x01}, + {0xf940, 0x01}, + {0xf941, 0x01}, + {0xf942, 0x01}, + {0xf943, 0x01}, + {0xf944, 0x01}, + {0xf945, 0x01}, + {0xf946, 0x01}, + {0xf947, 0x01}, + {0xf948, 0x01}, + {0xf949, 0x01}, + {0xf94a, 0x01}, + {0xf94b, 0x01}, + {0xf94c, 0x01}, + {0xf94d, 0x01}, + {0xf94e, 0x01}, + {0xf94f, 0x01}, + {0xf950, 0x01}, + {0xf951, 0x01}, + {0xf952, 0x01}, + {0xf953, 0x01}, + {0xf954, 0x01}, + {0xf955, 0x01}, + {0xf956, 0x01}, + {0xf957, 0x01}, + {0xf958, 0x01}, + {0xf959, 0x01}, + {0xf95a, 0x01}, + {0xf95b, 0x01}, + {0xf95c, 0x01}, + {0xf95d, 0x01}, + {0xf95e, 0x01}, + {0xf95f, 0x01}, + {0xf960, 0x01}, + {0xf961, 0x01}, + {0xf962, 0x01}, + {0xf963, 0x01}, + {0xf964, 0x01}, + {0xf965, 0x01}, + {0xf966, 0x01}, + {0xf967, 0x01}, + {0xf968, 0x01}, + {0xf969, 0x01}, + {0xf96a, 0x01}, + {0xf96b, 0x01}, + {0xf96c, 0x01}, + {0xf96d, 0x01}, + {0xf96e, 0x01}, + {0xf96f, 0x01}, + {0xf970, 0x01}, + {0xf971, 0x01}, + {0xf972, 0x01}, + {0xf973, 0x01}, + {0xf974, 0x01}, + {0xf975, 0x01}, + {0xf976, 0x01}, + {0xf977, 0x01}, + {0xf978, 0x01}, + {0xf979, 0x01}, + {0xf97a, 0x01}, + {0xf97b, 0x01}, + {0xf97c, 0x01}, + {0xf97d, 0x01}, + {0xf97e, 0x01}, + {0xf980, 0x01}, + {0xf981, 0x01}, + {0xf982, 0x01}, + {0xf983, 0x01}, + {0xf984, 0x01}, + {0xf985, 0x01}, + {0xf986, 0x01}, + {0xf987, 0x01}, + {0xf988, 0x01}, + {0xf989, 0x01}, + {0xf98a, 0x01}, + {0xf98b, 0x01}, + {0xf98c, 0x01}, + {0xf98d, 0x01}, + {0xf98e, 0x01}, + {0xf990, 0x01}, + {0xf991, 0x01}, + {0xf992, 0x01}, + {0xf993, 0x01}, + {0xf994, 0x01}, + {0xf995, 0x01}, + {0xf996, 0x01}, + {0xf997, 0x01}, + {0xf998, 0x01}, + {0xf999, 0x01}, + {0xf99a, 0x01}, + {0xf99b, 0x01}, + {0xf99c, 0x01}, + {0xf99d, 0x01}, + {0xf99e, 0x01}, + {0xf99f, 0x01}, + {0xf9a0, 0x01}, + {0xfa40, 0x01}, + {0xfa41, 0x01}, + {0xfa42, 0x01}, + {0xfa43, 0x01}, + {0xfa44, 0x01}, + {0xfa45, 0x01}, + {0xfa46, 0x01}, + {0xfa47, 0x01}, + {0xfa48, 0x01}, + {0xfa49, 0x01}, + {0xfa4a, 0x01}, + {0xfa4b, 0x01}, + {0xfa4c, 0x01}, + {0xfa4d, 0x01}, + {0xfa4e, 0x01}, + {0xfa4f, 0x01}, + {0xfa50, 0x01}, + {0xfa51, 0x01}, + {0xfa52, 0x01}, + {0xfa53, 0x01}, + {0xfa54, 0x01}, + {0xfa55, 0x01}, + {0xfa56, 0x01}, + {0xfa57, 0x01}, + {0xfa58, 0x01}, + {0xfa59, 0x01}, + {0xfa5a, 0x01}, + {0xfa5b, 0x01}, + {0xfa5c, 0x01}, + {0xfa5d, 0x01}, + {0xfa5e, 0x01}, + {0xfa5f, 0x01}, + {0xfa60, 0x01}, + {0xfa61, 0x01}, + {0xfa62, 0x01}, + {0xfa63, 0x01}, + {0xfa64, 0x01}, + {0xfa65, 0x01}, + {0xfa66, 0x01}, + {0xfa67, 0x01}, + {0xfa68, 0x01}, + {0xfa69, 0x01}, + {0xfa6a, 0x01}, + {0xfa6b, 0x01}, + {0xfa6c, 0x01}, + {0xfa6d, 0x01}, + {0xfa6e, 0x01}, + {0xfa6f, 0x01}, + {0xfa70, 0x01}, + {0xfa71, 0x01}, + {0xfa72, 0x01}, + {0xfa73, 0x01}, + {0xfa74, 0x01}, + {0xfa75, 0x01}, + {0xfa76, 0x01}, + {0xfa77, 0x01}, + {0xfa78, 0x01}, + {0xfa79, 0x01}, + {0xfa7a, 0x01}, + {0xfa7b, 0x01}, + {0xfa7c, 0x01}, + {0xfa7d, 0x01}, + {0xfa7e, 0x01}, + {0xfa80, 0x01}, + {0xfa81, 0x01}, + {0xfa82, 0x01}, + {0xfa83, 0x01}, + {0xfa84, 0x01}, + {0xfa85, 0x01}, + {0xfa86, 0x01}, + {0xfa87, 0x01}, + {0xfa88, 0x01}, + {0xfa89, 0x01}, + {0xfa8a, 0x01}, + {0xfa8b, 0x01}, + {0xfa8c, 0x01}, + {0xfa8d, 0x01}, + {0xfa8e, 0x01}, + {0xfa8f, 0x01}, + {0xfa90, 0x01}, + {0xfa91, 0x01}, + {0xfa92, 0x01}, + {0xfa93, 0x01}, + {0xfa94, 0x01}, + {0xfa95, 0x01}, + {0xfa96, 0x01}, + {0xfa97, 0x01}, + {0xfa98, 0x01}, + {0xfa99, 0x01}, + {0xfa9a, 0x01}, + {0xfa9b, 0x01}, + {0xfa9c, 0x01}, + {0xfa9d, 0x01}, + {0xfa9e, 0x01}, + {0xfa9f, 0x01}, + {0xfaa0, 0x01}, + {0xfb40, 0x01}, + {0xfb41, 0x01}, + {0xfb42, 0x01}, + {0xfb43, 0x01}, + {0xfb44, 0x01}, + {0xfb45, 0x01}, + {0xfb46, 0x01}, + {0xfb47, 0x01}, + {0xfb48, 0x01}, + {0xfb49, 0x01}, + {0xfb4a, 0x01}, + {0xfb4b, 0x01}, + {0xfb4c, 0x01}, + {0xfb4d, 0x01}, + {0xfb4e, 0x01}, + {0xfb4f, 0x01}, + {0xfb50, 0x01}, + {0xfb51, 0x01}, + {0xfb52, 0x01}, + {0xfb53, 0x01}, + {0xfb54, 0x01}, + {0xfb55, 0x01}, + {0xfb56, 0x01}, + {0xfb57, 0x01}, + {0xfb58, 0x01}, + {0xfb59, 0x01}, + {0xfb5a, 0x01}, + {0xfb5b, 0x01}, + {0xfb5c, 0x01}, + {0xfb5d, 0x01}, + {0xfb5e, 0x01}, + {0xfb5f, 0x01}, + {0xfb60, 0x01}, + {0xfb61, 0x01}, + {0xfb62, 0x01}, + {0xfb63, 0x01}, + {0xfb64, 0x01}, + {0xfb65, 0x01}, + {0xfb66, 0x01}, + {0xfb67, 0x01}, + {0xfb68, 0x01}, + {0xfb69, 0x01}, + {0xfb6a, 0x01}, + {0xfb6b, 0x01}, + {0xfb6c, 0x01}, + {0xfb6d, 0x01}, + {0xfb6e, 0x01}, + {0xfb6f, 0x01}, + {0xfb70, 0x01}, + {0xfb71, 0x01}, + {0xfb72, 0x01}, + {0xfb73, 0x01}, + {0xfb74, 0x01}, + {0xfb75, 0x01}, + {0xfb76, 0x01}, + {0xfb77, 0x01}, + {0xfb78, 0x01}, + {0xfb79, 0x01}, + {0xfb7a, 0x01}, + {0xfb7b, 0x01}, + {0xfb7c, 0x01}, + {0xfb7d, 0x01}, + {0xfb7e, 0x01}, + {0xfb80, 0x01}, + {0xfb81, 0x01}, + {0xfb82, 0x01}, + {0xfb83, 0x01}, + {0xfb84, 0x01}, + {0xfb85, 0x01}, + {0xfb86, 0x01}, + {0xfb87, 0x01}, + {0xfb88, 0x01}, + {0xfb89, 0x01}, + {0xfb8a, 0x01}, + {0xfb8b, 0x01}, + {0xfb8c, 0x01}, + {0xfb8d, 0x01}, + {0xfb8e, 0x01}, + {0xfb8f, 0x01}, + {0xfb90, 0x01}, + {0xfb91, 0x01}, + {0xfb92, 0x01}, + {0xfb93, 0x01}, + {0xfb94, 0x01}, + {0xfb95, 0x01}, + {0xfb96, 0x01}, + {0xfb97, 0x01}, + {0xfb98, 0x01}, + {0xfb99, 0x01}, + {0xfb9a, 0x01}, + {0xfb9b, 0x01}, + {0xfb9c, 0x01}, + {0xfb9d, 0x01}, + {0xfb9e, 0x01}, + {0xfb9f, 0x01}, + {0xfba0, 0x01}, + {0xfc40, 0x01}, + {0xfc41, 0x01}, + {0xfc42, 0x01}, + {0xfc43, 0x01}, + {0xfc44, 0x01}, + {0xfc45, 0x01}, + {0xfc46, 0x01}, + {0xfc47, 0x01}, + {0xfc48, 0x01}, + {0xfc49, 0x01}, + {0xfc4a, 0x01}, + {0xfc4b, 0x01}, + {0xfc4c, 0x01}, + {0xfc4d, 0x01}, + {0xfc4e, 0x01}, + {0xfc4f, 0x01}, + {0xfc50, 0x01}, + {0xfc51, 0x01}, + {0xfc52, 0x01}, + {0xfc53, 0x01}, + {0xfc54, 0x01}, + {0xfc55, 0x01}, + {0xfc56, 0x01}, + {0xfc57, 0x01}, + {0xfc58, 0x01}, + {0xfc59, 0x01}, + {0xfc5a, 0x01}, + {0xfc5b, 0x01}, + {0xfc5c, 0x01}, + {0xfc5d, 0x01}, + {0xfc5e, 0x01}, + {0xfc5f, 0x01}, + {0xfc60, 0x01}, + {0xfc61, 0x01}, + {0xfc62, 0x01}, + {0xfc63, 0x01}, + {0xfc64, 0x01}, + {0xfc65, 0x01}, + {0xfc66, 0x01}, + {0xfc67, 0x01}, + {0xfc68, 0x01}, + {0xfc69, 0x01}, + {0xfc6a, 0x01}, + {0xfc6b, 0x01}, + {0xfc6c, 0x01}, + {0xfc6d, 0x01}, + {0xfc6e, 0x01}, + {0xfc6f, 0x01}, + {0xfc70, 0x01}, + {0xfc71, 0x01}, + {0xfc72, 0x01}, + {0xfc73, 0x01}, + {0xfc74, 0x01}, + {0xfc75, 0x01}, + {0xfc76, 0x01}, + {0xfc77, 0x01}, + {0xfc78, 0x01}, + {0xfc79, 0x01}, + {0xfc7a, 0x01}, + {0xfc7b, 0x01}, + {0xfc7c, 0x01}, + {0xfc7d, 0x01}, + {0xfc7e, 0x01}, + {0xfc80, 0x01}, + {0xfc81, 0x01}, + {0xfc82, 0x01}, + {0xfc83, 0x01}, + {0xfc84, 0x01}, + {0xfc85, 0x01}, + {0xfc86, 0x01}, + {0xfc87, 0x01}, + {0xfc88, 0x01}, + {0xfc89, 0x01}, + {0xfc8a, 0x01}, + {0xfc8b, 0x01}, + {0xfc8c, 0x01}, + {0xfc8d, 0x01}, + {0xfc8e, 0x01}, + {0xfc8f, 0x01}, + {0xfc90, 0x01}, + {0xfc91, 0x01}, + {0xfc92, 0x01}, + {0xfc93, 0x01}, + {0xfc94, 0x01}, + {0xfc95, 0x01}, + {0xfc96, 0x01}, + {0xfc97, 0x01}, + {0xfc98, 0x01}, + {0xfc99, 0x01}, + {0xfc9a, 0x01}, + {0xfc9b, 0x01}, + {0xfc9c, 0x01}, + {0xfc9d, 0x01}, + {0xfc9e, 0x01}, + {0xfc9f, 0x01}, + {0xfca0, 0x01}, + {0xfd40, 0x01}, + {0xfd41, 0x01}, + {0xfd42, 0x01}, + {0xfd43, 0x01}, + {0xfd44, 0x01}, + {0xfd45, 0x01}, + {0xfd46, 0x01}, + {0xfd47, 0x01}, + {0xfd48, 0x01}, + {0xfd49, 0x01}, + {0xfd4a, 0x01}, + {0xfd4b, 0x01}, + {0xfd4c, 0x01}, + {0xfd4d, 0x01}, + {0xfd4e, 0x01}, + {0xfd4f, 0x01}, + {0xfd50, 0x01}, + {0xfd51, 0x01}, + {0xfd52, 0x01}, + {0xfd53, 0x01}, + {0xfd54, 0x01}, + {0xfd55, 0x01}, + {0xfd56, 0x01}, + {0xfd57, 0x01}, + {0xfd58, 0x01}, + {0xfd59, 0x01}, + {0xfd5a, 0x01}, + {0xfd5b, 0x01}, + {0xfd5c, 0x01}, + {0xfd5d, 0x01}, + {0xfd5e, 0x01}, + {0xfd5f, 0x01}, + {0xfd60, 0x01}, + {0xfd61, 0x01}, + {0xfd62, 0x01}, + {0xfd63, 0x01}, + {0xfd64, 0x01}, + {0xfd65, 0x01}, + {0xfd66, 0x01}, + {0xfd67, 0x01}, + {0xfd68, 0x01}, + {0xfd69, 0x01}, + {0xfd6a, 0x01}, + {0xfd6b, 0x01}, + {0xfd6c, 0x01}, + {0xfd6d, 0x01}, + {0xfd6e, 0x01}, + {0xfd6f, 0x01}, + {0xfd70, 0x01}, + {0xfd71, 0x01}, + {0xfd72, 0x01}, + {0xfd73, 0x01}, + {0xfd74, 0x01}, + {0xfd75, 0x01}, + {0xfd76, 0x01}, + {0xfd77, 0x01}, + {0xfd78, 0x01}, + {0xfd79, 0x01}, + {0xfd7a, 0x01}, + {0xfd7b, 0x01}, + {0xfd7c, 0x01}, + {0xfd7d, 0x01}, + {0xfd7e, 0x01}, + {0xfd80, 0x01}, + {0xfd81, 0x01}, + {0xfd82, 0x01}, + {0xfd83, 0x01}, + {0xfd84, 0x01}, + {0xfd85, 0x01}, + {0xfd86, 0x01}, + {0xfd87, 0x01}, + {0xfd88, 0x01}, + {0xfd89, 0x01}, + {0xfd8a, 0x01}, + {0xfd8b, 0x01}, + {0xfd8c, 0x01}, + {0xfd8d, 0x01}, + {0xfd8e, 0x01}, + {0xfd8f, 0x01}, + {0xfd90, 0x01}, + {0xfd91, 0x01}, + {0xfd92, 0x01}, + {0xfd93, 0x01}, + {0xfd94, 0x01}, + {0xfd95, 0x01}, + {0xfd96, 0x01}, + {0xfd97, 0x01}, + {0xfd98, 0x01}, + {0xfd99, 0x01}, + {0xfd9a, 0x01}, + {0xfd9b, 0x01}, + {0xfe55, 0x01}, + {0xfe56, 0x01}, + {0xfe5a, 0x01}, + {0xfe5b, 0x01}, + {0xfe5c, 0x01}, + {0xfe5f, 0x01}, + {0xfe60, 0x01}, + {0xfe62, 0x01}, + {0xfe63, 0x01}, + {0xfe64, 0x01}, + {0xfe65, 0x01}, + {0xfe68, 0x01}, + {0xfe69, 0x01}, + {0xfe6a, 0x01}, + {0xfe6f, 0x01}, + {0xfe70, 0x01}, + {0xfe72, 0x01}, + {0xfe77, 0x01}, + {0xfe78, 0x01}, + {0xfe7a, 0x01}, + {0xfe7b, 0x01}, + {0xfe7c, 0x01}, + {0xfe7d, 0x01}, + {0xfe80, 0x01}, + {0xfe81, 0x01}, + {0xfe82, 0x01}, + {0xfe83, 0x01}, + {0xfe85, 0x01}, + {0xfe86, 0x01}, + {0xfe87, 0x01}, + {0xfe88, 0x01}, + {0xfe89, 0x01}, + {0xfe8a, 0x01}, + {0xfe8b, 0x01}, + {0xfe8c, 0x01}, + {0xfe8d, 0x01}, + {0xfe8e, 0x01}, + {0xfe8f, 0x01}, + {0xfe92, 0x01}, + {0xfe93, 0x01}, + {0xfe94, 0x01}, + {0xfe95, 0x01}, + {0xfe96, 0x01}, + {0xfe97, 0x01}, + {0xfe98, 0x01}, + {0xfe99, 0x01}, + {0xfe9a, 0x01}, + {0xfe9b, 0x01}, + {0xfe9c, 0x01}, + {0xfe9d, 0x01}, + {0xfe9e, 0x01}, + {0xfe9f, 0x01}, + {0x81308134, 0x02}, + {0x81308135, 0x02}, + {0x81308434, 0x01}, + {0x81308435, 0x01}, + {0x81308436, 0x01}, + {0x81308535, 0x02}, + {0x81308536, 0x02}, + {0x81308538, 0x02}, + {0x81308631, 0x02}, + {0x81308632, 0x02}, + {0x81308634, 0x01}, + {0x81308635, 0x01}, + {0x81308636, 0x01}, + {0x81308638, 0x020d}, + {0x81308639, 0x020b}, + {0x81308730, 0x0210}, + {0x81308731, 0x0217}, + {0x81308732, 0x0214}, + {0x81308733, 0x0212}, + {0x81308734, 0x02}, + {0x81308735, 0x021a}, + {0x81308736, 0x020d}, + {0x81308737, 0x020b}, + {0x81308738, 0x0210}, + {0x81308739, 0x0214}, + {0x81308830, 0x020d}, + {0x81308831, 0x020b}, + {0x81308832, 0x0210}, + {0x81308833, 0x0214}, + {0x81308834, 0x02}, + {0x81308835, 0x0217}, + {0x81308836, 0x020d}, + {0x81308837, 0x020b}, + {0x81308838, 0x0210}, + {0x81308839, 0x0217}, + {0x81308930, 0x0214}, + {0x81308931, 0x02}, + {0x81308932, 0x020d}, + {0x81308933, 0x020b}, + {0x81308934, 0x0210}, + {0x81308935, 0x0214}, + {0x81308936, 0x020b}, + {0x81308937, 0x02}, + {0x81308938, 0x0202}, + {0x81308939, 0x0210}, + {0x81308a30, 0x0217}, + {0x81308a31, 0x0214}, + {0x81308a32, 0x0212}, + {0x81308a33, 0x02}, + {0x81308a34, 0x021a}, + {0x81308a35, 0x0214}, + {0x81308a36, 0x0210}, + {0x81308a37, 0x0214}, + {0x81308a38, 0x02}, + {0x81308a39, 0x0217}, + {0x81308b30, 0x0210}, + {0x81308b31, 0x0217}, + {0x81308b32, 0x0214}, + {0x81308b33, 0x02}, + {0x81308b34, 0x0210}, + {0x81308b35, 0x020b}, + {0x81308b36, 0x02}, + {0x81308b37, 0x0214}, + {0x81308b38, 0x021c}, + {0x81308b39, 0x020f}, + {0x81308c30, 0x020f}, + {0x81308c31, 0x021b}, + {0x81308c32, 0x021b}, + {0x81308c33, 0x020b}, + {0x81308c34, 0x020b}, + {0x81308c35, 0x0210}, + {0x81308c36, 0x0210}, + {0x81308c37, 0x0218}, + {0x81308c38, 0x0218}, + {0x81308c39, 0x0211}, + {0x81308d30, 0x0211}, + {0x81308d31, 0x0211}, + {0x81308d32, 0x0211}, + {0x81308d33, 0x02}, + {0x81308d34, 0x02}, + {0x81308d35, 0x021c}, + {0x81308d36, 0x020f}, + {0x81308d37, 0x020f}, + {0x81308d38, 0x0218}, + {0x81308d39, 0x0218}, + {0x81308e30, 0x021b}, + {0x81308e31, 0x021b}, + {0x81308e32, 0x0211}, + {0x81308e33, 0x0210}, + {0x81308e34, 0x0210}, + {0x81308e35, 0x020f}, + {0x81308e36, 0x020f}, + {0x81308e37, 0x0218}, + {0x81308e38, 0x0218}, + {0x81308e39, 0x021a}, + {0x81308f30, 0x021a}, + {0x81308f31, 0x0210}, + {0x81308f32, 0x0210}, + {0x81308f33, 0x02}, + {0x81308f34, 0x02}, + {0x81308f35, 0x0217}, + {0x81308f36, 0x0217}, + {0x81308f37, 0x021c}, + {0x81308f38, 0x020f}, + {0x81308f39, 0x020f}, + {0x81309030, 0x021b}, + {0x81309031, 0x021b}, + {0x81309032, 0x0218}, + {0x81309033, 0x02}, + {0x81309034, 0x0202}, + {0x81309035, 0x0202}, + {0x81309036, 0x0210}, + {0x81309037, 0x0210}, + {0x81309038, 0x021a}, + {0x81309039, 0x021a}, + {0x81309130, 0x01}, + {0x81309131, 0x020b}, + {0x81309132, 0x020b}, + {0x81309133, 0x021a}, + {0x81309134, 0x021a}, + {0x81309135, 0x0211}, + {0x81309136, 0x0211}, + {0x81309137, 0x02}, + {0x81309138, 0x02}, + {0x81309139, 0x02}, + {0x81309230, 0x02}, + {0x81309231, 0x020b}, + {0x81309232, 0x021a}, + {0x81309233, 0x021a}, + {0x81309234, 0x0211}, + {0x81309236, 0x02}, + {0x81309237, 0x02}, + {0x81309238, 0x021c}, + {0x81309239, 0x020f}, + {0x81309330, 0x020f}, + {0x81309331, 0x0216}, + {0x81309332, 0x0216}, + {0x81309333, 0x0202}, + {0x81309334, 0x0202}, + {0x81309335, 0x020b}, + {0x81309336, 0x020b}, + {0x81309337, 0x021a}, + {0x81309338, 0x021a}, + {0x81309339, 0x0211}, + {0x81309430, 0x0211}, + {0x81309431, 0x020b}, + {0x81309432, 0x020b}, + {0x81309433, 0x0210}, + {0x81309434, 0x0210}, + {0x81309435, 0x021a}, + {0x81309436, 0x021a}, + {0x81309437, 0x0211}, + {0x81309438, 0x0211}, + {0x81309439, 0x021a}, + {0x81309530, 0x021a}, + {0x81309531, 0x0211}, + {0x81309532, 0x0211}, + {0x81309533, 0x02}, + {0x81309534, 0x02}, + {0x81309535, 0x0217}, + {0x81309536, 0x0217}, + {0x81309537, 0x021c}, + {0x81309538, 0x020f}, + {0x81309539, 0x020f}, + {0x81309630, 0x0212}, + {0x81309631, 0x0212}, + {0x81309632, 0x0216}, + {0x81309633, 0x0216}, + {0x81309634, 0x021b}, + {0x81309635, 0x021b}, + {0x81309636, 0x0210}, + {0x81309637, 0x0210}, + {0x81309638, 0x0210}, + {0x81309639, 0x0210}, + {0x81309730, 0x0214}, + {0x81309731, 0x020b}, + {0x81309732, 0x020b}, + {0x81309733, 0x0218}, + {0x81309734, 0x0218}, + {0x81309735, 0x0211}, + {0x81309736, 0x0211}, + {0x81309737, 0x02}, + {0x81309738, 0x01}, + {0x81309739, 0x02}, + {0x81309830, 0x02}, + {0x81309831, 0x02}, + {0x81309834, 0x02}, + {0x81309835, 0x02}, + {0x81309836, 0x02}, + {0x81309837, 0x02}, + {0x81309838, 0x02}, + {0x81309839, 0x02}, + {0x81309930, 0x02}, + {0x81309931, 0x01}, + {0x81309932, 0x02}, + {0x81309933, 0x02}, + {0x81309934, 0x02}, + {0x81309935, 0x02}, + {0x81309936, 0x02}, + {0x81309937, 0x02}, + {0x81309938, 0x02}, + {0x81309939, 0x02}, + {0x81309a30, 0x02}, + {0x81309a31, 0x02}, + {0x81309a32, 0x02}, + {0x81309a33, 0x02}, + {0x81309a34, 0x01}, + {0x81309a35, 0x01}, + {0x81309a36, 0x02}, + {0x81309a37, 0x02}, + {0x81309a38, 0x01}, + {0x81309a39, 0x02}, + {0x81309b30, 0x022b}, + {0x81309b31, 0x022b}, + {0x81309b32, 0x02}, + {0x81309b33, 0x02}, + {0x81309b34, 0x02}, + {0x81309b35, 0x02}, + {0x81309b36, 0x02}, + {0x81309b37, 0x02}, + {0x81309b38, 0x02}, + {0x81309b39, 0x02}, + {0x81309c30, 0x01}, + {0x81309c31, 0x01}, + {0x81309c32, 0x02}, + {0x81309c33, 0x02}, + {0x81309c34, 0x02}, + {0x81309c35, 0x022b}, + {0x81309c36, 0x022b}, + {0x81309c37, 0x02}, + {0x81309c38, 0x02}, + {0x81309c39, 0x02}, + {0x81309d30, 0x02}, + {0x81309d31, 0x02}, + {0x81309d32, 0x02}, + {0x81309d33, 0x02}, + {0x81309d34, 0x02}, + {0x81309d35, 0x02}, + {0x81309d36, 0x01}, + {0x81309d37, 0x01}, + {0x81309d38, 0x02}, + {0x81309d39, 0x02}, + {0x81309e30, 0x01}, + {0x81309e31, 0x02}, + {0x81309e32, 0x01}, + {0x81309e33, 0x01}, + {0x81309e34, 0x01}, + {0x81309e35, 0x01}, + {0x81309e39, 0x0202}, + {0x81309f30, 0x0202}, + {0x81309f31, 0x0202}, + {0x81309f32, 0x0202}, + {0x81309f33, 0x0202}, + {0x81309f34, 0x0202}, + {0x81309f35, 0x0211}, + {0x81309f36, 0x0211}, + {0x81309f37, 0x0211}, + {0x81309f38, 0x0211}, + {0x81309f39, 0x02141c}, + {0x8130a030, 0x02140b}, + {0x8130a031, 0x021411}, + {0x8130a032, 0x02140d}, + {0x8130a033, 0x02}, + {0x8130a034, 0x02141c}, + {0x8130a035, 0x02141c}, + {0x8130a036, 0x02181c}, + {0x8130a037, 0x02181c}, + {0x8130a038, 0x021c}, + {0x8130a039, 0x021c}, + {0x8130a130, 0x02}, + {0x8130a131, 0x02}, + {0x8130a132, 0x0211}, + {0x8130a133, 0x0211}, + {0x8130a134, 0x0211}, + {0x8130a135, 0x0211}, + {0x8130a136, 0x021b}, + {0x8130a137, 0x021b}, + {0x8130a138, 0x021b1c}, + {0x8130a139, 0x021b1c}, + {0x8130a230, 0x0211}, + {0x8130a231, 0x0211}, + {0x8130a232, 0x0211}, + {0x8130a233, 0x0202}, + {0x8130a234, 0x0202}, + {0x8130a235, 0x0202}, + {0x8130a236, 0x020b}, + {0x8130a237, 0x020b}, + {0x8130a238, 0x02}, + {0x8130a239, 0x02}, + {0x8130a330, 0x020d}, + {0x8130a331, 0x02120b}, + {0x8130a332, 0x02120b}, + {0x8130a333, 0x020b}, + {0x8130a334, 0x020b}, + {0x8130a335, 0x020b}, + {0x8130a336, 0x020b}, + {0x8130a337, 0x0221}, + {0x8130a338, 0x0221}, + {0x8130a339, 0x0223}, + {0x8130a430, 0x0223}, + {0x8130a431, 0x0221}, + {0x8130a432, 0x0221}, + {0x8130a433, 0x0223}, + {0x8130a434, 0x0223}, + {0x8130a435, 0x0221}, + {0x8130a436, 0x0221}, + {0x8130a437, 0x0223}, + {0x8130a438, 0x0223}, + {0x8130a439, 0x0221}, + {0x8130a530, 0x0221}, + {0x8130a531, 0x0223}, + {0x8130a532, 0x0223}, + {0x8130a533, 0x0221}, + {0x8130a534, 0x0221}, + {0x8130a535, 0x0223}, + {0x8130a536, 0x02}, + {0x8130a537, 0x0221}, + {0x8130a538, 0x0221}, + {0x8130a539, 0x0223}, + {0x8130a630, 0x0223}, + {0x8130a631, 0x0236}, + {0x8130a632, 0x0236}, + {0x8130a633, 0x0236}, + {0x8130a634, 0x0236}, + {0x8130a635, 0x02}, + {0x8130a636, 0x02}, + {0x8130a637, 0x0211}, + {0x8130a638, 0x0211}, + {0x8130a733, 0x02}, + {0x8130a734, 0x02}, + {0x8130a735, 0x0218}, + {0x8130a736, 0x0218}, + {0x8130a737, 0x021a}, + {0x8130a738, 0x021a}, + {0x8130a739, 0x02141c}, + {0x8130a830, 0x02141c}, + {0x8130a831, 0x02171c}, + {0x8130a832, 0x02171c}, + {0x8130a833, 0x0218}, + {0x8130a834, 0x0218}, + {0x8130a835, 0x02181c}, + {0x8130a836, 0x02181c}, + {0x8130a837, 0x021c}, + {0x8130a838, 0x021c}, + {0x8130ab37, 0x01}, + {0x8130ab38, 0x01}, + {0x8130ab39, 0x02}, + {0x8130ac30, 0x02}, + {0x8130ac31, 0x01}, + {0x8130ac32, 0x02}, + {0x8130ac33, 0x02}, + {0x8130ac34, 0x01}, + {0x8130ac35, 0x02}, + {0x8130ac36, 0x01}, + {0x8130ac37, 0x02}, + {0x8130ac38, 0x01}, + {0x8130ac39, 0x01}, + {0x8130ad30, 0x01}, + {0x8130ad31, 0x01}, + {0x8130ad32, 0x02}, + {0x8130ad33, 0x01}, + {0x8130ad34, 0x02}, + {0x8130ad35, 0x01}, + {0x8130ad36, 0x01}, + {0x8130ad37, 0x02}, + {0x8130ad38, 0x01}, + {0x8130ad39, 0x02}, + {0x8130ae30, 0x02}, + {0x8130ae31, 0x01}, + {0x8130ae32, 0x01}, + {0x8130ae33, 0x01}, + {0x8130ae34, 0x01}, + {0x8130ae35, 0x01}, + {0x8130ae36, 0x02}, + {0x8130ae37, 0x01}, + {0x8130ae38, 0x01}, + {0x8130ae39, 0x02}, + {0x8130af30, 0x01}, + {0x8130af31, 0x01}, + {0x8130af32, 0x02}, + {0x8130af33, 0x01}, + {0x8130af34, 0x01}, + {0x8130af35, 0x01}, + {0x8130af36, 0x02}, + {0x8130af37, 0x01}, + {0x8130af38, 0x02}, + {0x8130af39, 0x01}, + {0x8130b030, 0x01}, + {0x8130b031, 0x01}, + {0x8130b032, 0x01}, + {0x8130b033, 0x02}, + {0x8130b034, 0x02}, + {0x8130b035, 0x01}, + {0x8130b036, 0x02}, + {0x8130b037, 0x01}, + {0x8130b038, 0x01}, + {0x8130b039, 0x01}, + {0x8130b130, 0x01}, + {0x8130b131, 0x02}, + {0x8130b132, 0x01}, + {0x8130b133, 0x02}, + {0x8130b134, 0x02}, + {0x8130b135, 0x01}, + {0x8130b136, 0x01}, + {0x8130b137, 0x01}, + {0x8130b138, 0x01}, + {0x8130b139, 0x01}, + {0x8130b230, 0x01}, + {0x8130b231, 0x02}, + {0x8130b232, 0x01}, + {0x8130b233, 0x01}, + {0x8130b234, 0x02}, + {0x8130b235, 0x01}, + {0x8130b236, 0x01}, + {0x8130b237, 0x01}, + {0x8130b238, 0x01}, + {0x8130b239, 0x01}, + {0x8130b330, 0x01}, + {0x8130b331, 0x01}, + {0x8130b332, 0x01}, + {0x8130b333, 0x01}, + {0x8130b334, 0x01}, + {0x8130b335, 0x01}, + {0x8130b336, 0x01}, + {0x8130b337, 0x01}, + {0x8130b339, 0x0202}, + {0x8130b430, 0x0201}, + {0x8130b431, 0x0202}, + {0x8130b432, 0x0202}, + {0x8130b433, 0x0201}, + {0x8130b531, 0x02}, + {0x8130b532, 0x02}, + {0x8130b533, 0x02}, + {0x8130b534, 0x02}, + {0x8130b535, 0x02}, + {0x8130b536, 0x02}, + {0x8130b537, 0x02}, + {0x8130b538, 0x02}, + {0x8130b539, 0x02}, + {0x8130b632, 0x01}, + {0x8130b633, 0x01}, + {0x8130b634, 0x01}, + {0x8130b635, 0x01}, + {0x8130b636, 0x01}, + {0x8130b637, 0x01}, + {0x8130b638, 0x01}, + {0x8130b934, 0x02}, + {0x8130b935, 0x02}, + {0x8130b936, 0x02}, + {0x8130b938, 0x02}, + {0x8130bc36, 0x0d}, + {0x8130bc37, 0x0b}, + {0x8130bc38, 0x10}, + {0x8130bc39, 0x17}, + {0x8130bd30, 0x1c}, + {0x8130bd31, 0x1d}, + {0x8130bd32, 0x0f}, + {0x8130bd33, 0x18}, + {0x8130bd34, 0x14}, + {0x8130bd35, 0x1e}, + {0x8130bd36, 0x12}, + {0x8130bd37, 0x16}, + {0x8130bd38, 0x11}, + {0x8130bd39, 0x1f}, + {0x8130be30, 0x20}, + {0x8130be31, 0x21}, + {0x8130be32, 0x22}, + {0x8130be33, 0x23}, + {0x8130be34, 0x24}, + {0x8130be35, 0x08}, + {0x8130be36, 0x0a}, + {0x8130be37, 0x25}, + {0x8130be38, 0x26}, + {0x8130be39, 0x27}, + {0x8130bf30, 0x28}, + {0x8130bf31, 0x29}, + {0x8130bf32, 0x2a}, + {0x8130bf33, 0x2b}, + {0x8130bf34, 0x2c}, + {0x8130bf35, 0x2d}, + {0x8130bf36, 0x2e}, + {0x8130bf37, 0x2f}, + {0x8130bf38, 0x30}, + {0x8130bf39, 0x31}, + {0x8130c030, 0x32}, + {0x8130c031, 0x33}, + {0x8130c032, 0x34}, + {0x8130c033, 0x35}, + {0x8130c034, 0x36}, + {0x8130c035, 0x1a}, + {0x8130c036, 0x1b}, + {0x8130c037, 0x37}, + {0x8130c038, 0x38}, + {0x8130c039, 0x39}, + {0x8130c130, 0x3a}, + {0x8130c131, 0x3b}, + {0x8130c132, 0x3c}, + {0x8130c133, 0x3d}, + {0x8130c134, 0x3e}, + {0x8130c135, 0x3f}, + {0x8130c136, 0x07}, + {0x8130c137, 0x40}, + {0x8130c138, 0x41}, + {0x8130c139, 0x42}, + {0x8130c230, 0x43}, + {0x8130c231, 0x44}, + {0x8130c232, 0x19}, + {0x8130c233, 0x45}, + {0x8130c234, 0x46}, + {0x8130c235, 0x47}, + {0x8130c236, 0x48}, + {0x8130c237, 0x49}, + {0x8130c238, 0x4a}, + {0x8130c239, 0x4b}, + {0x8130c330, 0x0e}, + {0x8130c331, 0x0c}, + {0x8130c332, 0x13}, + {0x8130c333, 0x09}, + {0x8130c334, 0x140b}, + {0x8130c335, 0x4c}, + {0x8130c632, 0x4d}, + {0x8130c633, 0x4e}, + {0x8130c939, 0x0B}, + {0x8130ca30, 0x020b}, + {0x8130ca32, 0x020b}, + {0x8130ca33, 0x020b}, + {0x8130ca34, 0x020b}, + {0x8130ca36, 0x020b}, + {0x8130ca38, 0x020b}, + {0x8130ca39, 0x020b}, + {0x8130cb30, 0x02140b}, + {0x8130cb32, 0x0214}, + {0x8130cb33, 0x0214}, + {0x8130cb34, 0x020b}, + {0x8130cb35, 0x020b}, + {0x8130cb36, 0x020b}, + {0x8130cb37, 0x020b}, + {0x8130cb38, 0x02140b}, + {0x8130cb39, 0x02}, + {0x8130cc30, 0x0214}, + {0x8130cc31, 0x0214}, + {0x8130cc32, 0x020b}, + {0x8130cc33, 0x020b}, + {0x8130cc34, 0x020b}, + {0x8130cc36, 0x02}, + {0x8130cc37, 0x02}, + {0x8130cc38, 0x02}, + {0x8130cc39, 0x020b}, + {0x8130cd30, 0x0214}, + {0x8130cd31, 0x02}, + {0x8130cd32, 0x02}, + {0x8130cd36, 0x02}, + {0x8130cd37, 0x02}, + {0x8130cd38, 0x02}, + {0x8130cd39, 0x02}, + {0x8130ce30, 0x02}, + {0x8130ce31, 0x02}, + {0x8130ce32, 0x02}, + {0x8130ce33, 0x02}, + {0x8130ce34, 0x02}, + {0x8130ce35, 0x02}, + {0x8130ce36, 0x02}, + {0x8130ce37, 0x02}, + {0x8130ce38, 0x02}, + {0x8130ce39, 0x02}, + {0x8130cf30, 0x02}, + {0x8130cf31, 0x02}, + {0x8130cf32, 0x02}, + {0x8130cf33, 0x02}, + {0x8130cf34, 0x02}, + {0x8130cf35, 0x02}, + {0x8130cf36, 0x02}, + {0x8130cf37, 0x02}, + {0x8130cf38, 0x02}, + {0x8130cf39, 0x02}, + {0x8130d030, 0x02}, + {0x8130d031, 0x01}, + {0x8130d134, 0x020d}, + {0x8130d135, 0x02}, + {0x8130d136, 0x02}, + {0x8130d137, 0x02}, + {0x8130d138, 0x02}, + {0x8130d139, 0x02}, + {0x8130d230, 0x02}, + {0x8130d231, 0x02}, + {0x8130d232, 0x02}, + {0x8130d233, 0x02}, + {0x8130d234, 0x02}, + {0x8130d235, 0x02}, + {0x8130d236, 0x020d}, + {0x8130d237, 0x02}, + {0x8130d238, 0x02}, + {0x8130d239, 0x020d}, + {0x8130d330, 0x02}, + {0x8130d331, 0x02}, + {0x8130d332, 0x02}, + {0x8130d333, 0x02}, + {0x8130d334, 0x02}, + {0x8130d335, 0x02}, + {0x8130d336, 0x02}, + {0x8130d337, 0x02}, + {0x8130d338, 0x02}, + {0x8130d339, 0x02}, + {0x8130d430, 0x02}, + {0x8130d431, 0x020d}, + {0x8130d432, 0x02}, + {0x8130d433, 0x02}, + {0x8130d434, 0x02}, + {0x8130d435, 0x02}, + {0x8130d436, 0x02}, + {0x8130d437, 0x02}, + {0x8130d438, 0x02}, + {0x8130d439, 0x02}, + {0x8130d530, 0x02}, + {0x8130d531, 0x02}, + {0x8130d532, 0x02}, + {0x8130d533, 0x02}, + {0x8130d534, 0x02}, + {0x8130d535, 0x02}, + {0x8130d536, 0x02}, + {0x8130d537, 0x02}, + {0x8130d538, 0x02}, + {0x8130d539, 0x02}, + {0x8130d630, 0x02}, + {0x8130d631, 0x02}, + {0x8130d632, 0x02}, + {0x8130d633, 0x02}, + {0x8130d634, 0x02}, + {0x8130d635, 0x02}, + {0x8130d636, 0x02}, + {0x8130d637, 0x02}, + {0x8130d638, 0x02}, + {0x8130d639, 0x02}, + {0x8130d730, 0x02}, + {0x8130d731, 0x02}, + {0x8130d732, 0x02}, + {0x8130d733, 0x02}, + {0x8130d734, 0x02}, + {0x8130d735, 0x02}, + {0x8130d736, 0x02}, + {0x8130d737, 0x02}, + {0x8130d739, 0x58}, + {0x8130d830, 0x59}, + {0x8130d831, 0x5a}, + {0x8130d832, 0x5b}, + {0x8130d932, 0x03}, + {0x8130d933, 0x03}, + {0x8130d934, 0x02}, + {0x8130d935, 0x02}, + {0x8130d936, 0x02}, + {0x8130d937, 0x02}, + {0x8130d938, 0x02}, + {0x8130d939, 0x02}, + {0x8130da30, 0x02}, + {0x8130da31, 0x02}, + {0x8130da32, 0x02}, + {0x8130da33, 0x02}, + {0x8130da34, 0x02}, + {0x8130da35, 0x02}, + {0x8130da36, 0x02}, + {0x8130da37, 0x02}, + {0x8130da38, 0x02}, + {0x8130da39, 0x02}, + {0x8130db30, 0x02}, + {0x8130db31, 0x02}, + {0x8130db32, 0x02}, + {0x8130db33, 0x02}, + {0x8130db34, 0x02}, + {0x8130db35, 0x02}, + {0x8130db36, 0x02}, + {0x8130db37, 0x02}, + {0x8130db38, 0x02}, + {0x8130db39, 0x02}, + {0x8130dc30, 0x02}, + {0x8130dc31, 0x02}, + {0x8130dc32, 0x02}, + {0x8130dc33, 0x02}, + {0x8130dc34, 0x02}, + {0x8130dc35, 0x02}, + {0x8130dc36, 0x02}, + {0x8130dc37, 0x02}, + {0x8130dc38, 0x02}, + {0x8130dc39, 0x02}, + {0x8130dd30, 0x02}, + {0x8130dd31, 0x02}, + {0x8130dd32, 0x02}, + {0x8130dd33, 0x02}, + {0x8130dd34, 0x02}, + {0x8130dd35, 0x02}, + {0x8130dd36, 0x02}, + {0x8130dd37, 0x02}, + {0x8130dd38, 0x02}, + {0x8130dd39, 0x02}, + {0x8130de30, 0x01}, + {0x8130de31, 0x03}, + {0x8130de32, 0x03}, + {0x8130de33, 0x02}, + {0x8130de34, 0x02}, + {0x8130de37, 0x02}, + {0x8130de38, 0x02}, + {0x8130df31, 0x02}, + {0x8130df32, 0x02}, + {0x8130df36, 0x02}, + {0x8130df37, 0x02}, + {0x8130df38, 0x02}, + {0x8130df39, 0x02}, + {0x8130e030, 0x02}, + {0x8130e031, 0x02}, + {0x8130e032, 0x02}, + {0x8130e033, 0x02}, + {0x8130e034, 0x02}, + {0x8130e035, 0x02}, + {0x8130e036, 0x02}, + {0x8130e037, 0x02}, + {0x8130e038, 0x02}, + {0x8130e039, 0x02}, + {0x8130e130, 0x02}, + {0x8130e131, 0x02}, + {0x8130e132, 0x02}, + {0x8130e133, 0x02}, + {0x8130e134, 0x03}, + {0x8130e135, 0x03}, + {0x8130e136, 0x02}, + {0x8130e137, 0x02}, + {0x8130e138, 0x02}, + {0x8130e139, 0x02}, + {0x8130e230, 0x02}, + {0x8130e231, 0x02}, + {0x8130e232, 0x02}, + {0x8130e233, 0x02}, + {0x8130e234, 0x0214}, + {0x8130e235, 0x0214}, + {0x8130e236, 0x03}, + {0x8130e237, 0x03}, + {0x8130e238, 0x02}, + {0x8130e239, 0x02}, + {0x8130e330, 0x02}, + {0x8130e331, 0x02}, + {0x8130e332, 0x02}, + {0x8130e333, 0x02}, + {0x8130e336, 0x02}, + {0x8130e337, 0x02}, + {0x8130e933, 0x02}, + {0x8130e934, 0x02}, + {0x8130e935, 0x02}, + {0x8130e936, 0x02}, + {0x8130e937, 0x02}, + {0x8130e938, 0x02}, + {0x8130e939, 0x02}, + {0x8130ea30, 0x02}, + {0x8130ea31, 0x02}, + {0x8130ea32, 0x02}, + {0x8130ea33, 0x02}, + {0x8130ea34, 0x02}, + {0x8130ea35, 0x02}, + {0x8130ea36, 0x02}, + {0x8130ea37, 0x02}, + {0x8130ea38, 0x02}, + {0x8130ea39, 0x02}, + {0x8130eb30, 0x02}, + {0x8130eb31, 0x02}, + {0x8130eb32, 0x02}, + {0x8130eb33, 0x02}, + {0x8130eb34, 0x02}, + {0x8130eb35, 0x02}, + {0x8130eb36, 0x02}, + {0x8130eb37, 0x02}, + {0x8130eb38, 0x02}, + {0x8130eb39, 0x02}, + {0x8130ec30, 0x02}, + {0x8130ec31, 0x02}, + {0x8130ec32, 0x02}, + {0x8130ec33, 0x02}, + {0x8130ec34, 0x02}, + {0x8130ec35, 0x02}, + {0x8130ec36, 0x02}, + {0x8130ec37, 0x02}, + {0x8130ec38, 0x02}, + {0x8130ec39, 0x02}, + {0x8130ed30, 0x02}, + {0x8130ed33, 0x01}, + {0x8130ee31, 0x02}, + {0x8130ee32, 0x02}, + {0x8130ee33, 0x02}, + {0x8130ee34, 0x02}, + {0x8130ee35, 0x02}, + {0x8130ee36, 0x02}, + {0x8130ee37, 0x02}, + {0x8130ee38, 0x02}, + {0x8130ee39, 0x02}, + {0x8130ef30, 0x02}, + {0x8130ef31, 0x02}, + {0x8130ef32, 0x02}, + {0x8130ef33, 0x02}, + {0x8130ef34, 0x02}, + {0x8130ef35, 0x02}, + {0x8130ef36, 0x02}, + {0x8130ef37, 0x02}, + {0x8130ef38, 0x02}, + {0x8130ef39, 0x02}, + {0x8130f030, 0x02}, + {0x8130f031, 0x02}, + {0x8130f032, 0x02}, + {0x8130f033, 0x02}, + {0x8130f034, 0x02}, + {0x8130f035, 0x02}, + {0x8130f036, 0x02}, + {0x8130f037, 0x02}, + {0x8130f038, 0x02}, + {0x8130f039, 0x02}, + {0x8130f130, 0x02}, + {0x8130f131, 0x02}, + {0x8130f132, 0x02}, + {0x8130f133, 0x02}, + {0x8130f134, 0x02}, + {0x8130f135, 0x02}, + {0x8130f136, 0x02}, + {0x8130f137, 0x02}, + {0x8130f138, 0x02}, + {0x8130f139, 0x0202}, + {0x8130f630, 0x5c}, + {0x8130f631, 0x5d}, + {0x8130f632, 0x5e}, + {0x8130f633, 0x5f}, + {0x8130f634, 0x60}, + {0x8130f635, 0x61}, + {0x8130f636, 0x62}, + {0x8130f637, 0x63}, + {0x8130f638, 0x64}, + {0x8130f639, 0x65}, + {0x8130f731, 0x66}, + {0x8130f732, 0x67}, + {0x8130f735, 0x68}, + {0x8130f737, 0x69}, + {0x8130f738, 0x6a}, + {0x81318735, 0x6e}, + {0x81318736, 0x6f}, + {0x81318737, 0x70}, + {0x81318738, 0x71}, + {0x81318739, 0x72}, + {0x81318830, 0x73}, + {0x81318831, 0x74}, + {0x81318832, 0x75}, + {0x81318936, 0x02}, + {0x81318937, 0x02}, + {0x81318938, 0x02}, + {0x81318939, 0x02}, + {0x81318a30, 0x02}, + {0x81318a31, 0x02}, + {0x81318a32, 0x02}, + {0x81318a33, 0x02}, + {0x81318a34, 0x02}, + {0x81318a35, 0x02}, + {0x81318b32, 0x76}, + {0x81319534, 0x77}, + {0x81319535, 0x78}, + {0x81319536, 0x79}, + {0x81319537, 0x7a}, + {0x81319538, 0x7b}, + {0x81319539, 0x7c}, + {0x81319630, 0x7d}, + {0x81319635, 0x7e}, + {0x81319636, 0x7f}, + {0x81319637, 0x80}, + {0x81319638, 0x81}, + {0x81319731, 0x82}, + {0x81319732, 0x83}, + {0x81319737, 0x84}, + {0x81319830, 0x02}, + {0x81319831, 0x02}, + {0x81319832, 0x02}, + {0x81319833, 0x02}, + {0x81319834, 0x02}, + {0x81319835, 0x02}, + {0x81319836, 0x02}, + {0x81319837, 0x02}, + {0x81319838, 0x02}, + {0x81319839, 0x02}, + {0x8131cc39, 0x89}, + {0x8131cd30, 0x8a}, + {0x8131cd31, 0x8b}, + {0x8131d039, 0x88}, + {0x8131d137, 0x88}, + {0x8131d230, 0x88}, + {0x8131d238, 0x88}, + {0x8131d439, 0x8c}, + {0x8131d530, 0x8d}, + {0x8131d531, 0x8e}, + {0x8131d532, 0x8f}, + {0x8131d937, 0x91}, + {0x8131d938, 0x92}, + {0x8131d939, 0x93}, + {0x8131df36, 0x90}, + {0x8131e530, 0x01}, + {0x8131e531, 0x01}, + {0x8131e636, 0x95}, + {0x8131ec34, 0x94}, + {0x8131f136, 0x96}, + {0x8131f137, 0x97}, + {0x8131f333, 0x99}, + {0x8131f334, 0x9a}, + {0x8131f335, 0x9b}, + {0x8131f932, 0x98}, + {0x81328231, 0x9d}, + {0x81328232, 0x9e}, + {0x81328233, 0x9f}, + {0x81328830, 0x9c}, + {0x81328f30, 0xa0}, + {0x81328f31, 0xa1}, + {0x81329b37, 0xa2}, + {0x81329b38, 0xa3}, + {0x81329b39, 0xa4}, + {0x8132a836, 0xa5}, + {0x8132a837, 0xa6}, + {0x8132b534, 0xa7}, + {0x8132b535, 0xa8}, + {0x8132d531, 0x01}, + {0x8132d630, 0xa9}, + {0x8132d631, 0xaa}, + {0x8132d632, 0xab}, + {0x8132d633, 0xac}, + {0x8132e238, 0xad}, + {0x8132e239, 0xae}, + {0x8132e330, 0xaf}, + {0x8132e331, 0xb0}, + {0x8132ee31, 0xb1}, + {0x81339430, 0x02}, + {0x81339431, 0x02}, + {0x81339432, 0x02}, + {0x81339433, 0x02}, + {0x81339434, 0x02}, + {0x81339435, 0x02}, + {0x81339436, 0x02}, + {0x81339437, 0x02}, + {0x81339438, 0x02}, + {0x81339439, 0x02}, + {0x81339530, 0x02}, + {0x81339531, 0x02}, + {0x81339532, 0x02}, + {0x81339533, 0x02}, + {0x81339534, 0x02}, + {0x81339535, 0x02}, + {0x81339536, 0x02}, + {0x81339537, 0x02}, + {0x81339538, 0x02}, + {0x81339539, 0x02}, + {0x81339630, 0x02}, + {0x81339631, 0x02}, + {0x81339632, 0x02}, + {0x81339633, 0x02}, + {0x81339634, 0x02}, + {0x81339635, 0x02}, + {0x81339636, 0x02}, + {0x81339637, 0x02}, + {0x81339638, 0x02}, + {0x81339639, 0x02}, + {0x81339730, 0x02}, + {0x81339731, 0x02}, + {0x81339732, 0x02}, + {0x81339733, 0x02}, + {0x81339734, 0x02}, + {0x81339735, 0x02}, + {0x81339736, 0x02}, + {0x81339737, 0x02}, + {0x81339838, 0x02}, + {0x81339839, 0x02}, + {0x81339930, 0x02}, + {0x81339931, 0x02}, + {0x81339932, 0x02}, + {0x81339933, 0x02}, + {0x81339934, 0x02}, + {0x81339935, 0x02}, + {0x81339936, 0x02}, + {0x81339937, 0x02}, + {0x81339938, 0x02}, + {0x81339939, 0x02}, + {0x81339a30, 0x02}, + {0x81339a31, 0x02}, + {0x81339a32, 0x02}, + {0x81339a33, 0x02}, + {0x81339a34, 0x02}, + {0x81339a35, 0x02}, + {0x81339a36, 0x02}, + {0x81339a37, 0x02}, + {0x81339a38, 0x02}, + {0x81339a39, 0x02}, + {0x81339b30, 0x02}, + {0x81339b31, 0x02}, + {0x81339b32, 0x02}, + {0x81339b33, 0x02}, + {0x81339b34, 0x02}, + {0x81339b35, 0x02}, + {0x81339b36, 0x02}, + {0x81339b37, 0x02}, + {0x81339b38, 0x02}, + {0x81339b39, 0x02}, + {0x81339c30, 0x02}, + {0x81339c31, 0x02}, + {0x81339c32, 0x02}, + {0x81339c33, 0x02}, + {0x81339c34, 0x02}, + {0x81339c35, 0x02}, + {0x81339c36, 0x01}, + {0x8135ee34, 0x0235}, + {0x8135ee35, 0x0235}, + {0x8135ee36, 0x0218}, + {0x8135ee37, 0x0218}, + {0x8135ee38, 0x0233}, + {0x8135ee39, 0x0233}, + {0x8135ef30, 0x023f}, + {0x8135ef31, 0x023f}, + {0x8135ef32, 0x021a0b}, + {0x8135ef33, 0x021a0b}, + {0x8135ef34, 0x0218}, + {0x8135ef35, 0x0218}, + {0x8135ef36, 0x0233}, + {0x8135ef37, 0x0233}, + {0x8135ef38, 0x023f}, + {0x8135ef39, 0x023f}, + {0x8135f030, 0x021a}, + {0x8135f031, 0x021a}, + {0x8135f032, 0x023b}, + {0x8135f033, 0x023b}, + {0x8135f034, 0x021c0d}, + {0x8135f035, 0x021c0d}, + {0x8135f036, 0x021c0b}, + {0x8135f037, 0x021c0b}, + {0x8135f038, 0x023b}, + {0x8135f039, 0x023b}, + {0x8135f130, 0x023e}, + {0x8135f131, 0x023e}, + {0x8135f132, 0x021a0f}, + {0x8135f133, 0x021a0f}, + {0x8135f134, 0x0218}, + {0x8135f135, 0x0218}, + {0x8135f136, 0x021c}, + {0x8135f137, 0x021c}, + {0x8135f138, 0x0218}, + {0x8135f139, 0x0218}, + {0x8135f230, 0x0233}, + {0x8135f231, 0x0233}, + {0x8135f232, 0x0214}, + {0x8135f233, 0x0214}, + {0x8135f234, 0x021a}, + {0x8135f235, 0x021a}, + {0x8135f236, 0x023c}, + {0x8135f237, 0x023c}, + {0x8135f238, 0x023e}, + {0x8135f239, 0x023e}, + {0x8135f330, 0x02140b}, + {0x8135f331, 0x02140b}, + {0x8135f332, 0x020b}, + {0x8135f333, 0x020b}, + {0x8135f334, 0x0233}, + {0x8135f335, 0x0233}, + {0x8135f336, 0x023f}, + {0x8135f337, 0x023f}, + {0x8135f338, 0x0233}, + {0x8135f339, 0x0233}, + {0x8135f430, 0x02331c}, + {0x8135f431, 0x02331c}, + {0x8135f432, 0x023f}, + {0x8135f433, 0x023f}, + {0x8135f434, 0x023b}, + {0x8135f435, 0x023b}, + {0x8135f436, 0x020b}, + {0x8135f437, 0x020b}, + {0x8135f438, 0x0218}, + {0x8135f439, 0x0218}, + {0x8135f530, 0x0233}, + {0x8135f531, 0x0233}, + {0x8135f532, 0x0218}, + {0x8135f533, 0x0218}, + {0x8135f534, 0x0233}, + {0x8135f535, 0x0233}, + {0x8135f536, 0x023f}, + {0x8135f537, 0x023f}, + {0x8135f538, 0x023b}, + {0x8135f539, 0x023b}, + {0x8135f630, 0x02170b}, + {0x8135f631, 0x02170b}, + {0x8135f632, 0x021714}, + {0x8135f633, 0x021714}, + {0x8135f634, 0x021c0d}, + {0x8135f635, 0x021c0d}, + {0x8135f636, 0x021c0b}, + {0x8135f637, 0x021c0b}, + {0x8135f638, 0x020b}, + {0x8135f639, 0x020b}, + {0x8135f730, 0x0218}, + {0x8135f731, 0x0218}, + {0x8135f732, 0x0218}, + {0x8135f733, 0x0218}, + {0x8135f734, 0x0233}, + {0x8135f735, 0x0233}, + {0x8135f736, 0x02331c}, + {0x8135f737, 0x02331c}, + {0x8135f738, 0x023f}, + {0x8135f739, 0x023f}, + {0x8135f830, 0x0218}, + {0x8135f831, 0x0218}, + {0x8135f832, 0x0233}, + {0x8135f833, 0x0233}, + {0x8135f834, 0x020b18}, + {0x8135f835, 0x020b18}, + {0x8135f836, 0x021118}, + {0x8135f837, 0x021118}, + {0x8135f838, 0x023318}, + {0x8135f839, 0x023318}, + {0x8135f930, 0x0218}, + {0x8135f931, 0x0218}, + {0x8135f932, 0x0233}, + {0x8135f933, 0x0233}, + {0x8135f934, 0x023f}, + {0x8135f935, 0x023f}, + {0x8135f936, 0x023b}, + {0x8135f937, 0x023b}, + {0x8135f938, 0x0234}, + {0x8135f939, 0x0234}, + {0x8135fa30, 0x023e}, + {0x8135fa31, 0x023e}, + {0x8135fa32, 0x023b}, + {0x8135fa33, 0x023b}, + {0x8135fa34, 0x02170b}, + {0x8135fa35, 0x02170b}, + {0x8135fa36, 0x021c14}, + {0x8135fa37, 0x021c14}, + {0x8135fa38, 0x0217}, + {0x8135fa39, 0x0217}, + {0x8135fb30, 0x0233}, + {0x8135fb31, 0x0233}, + {0x8135fb32, 0x020d}, + {0x8135fb33, 0x020d}, + {0x8135fb34, 0x020b}, + {0x8135fb35, 0x020b}, + {0x8135fb36, 0x0214}, + {0x8135fb37, 0x0214}, + {0x8135fb38, 0x0218}, + {0x8135fb39, 0x0218}, + {0x8135fc30, 0x0233}, + {0x8135fc31, 0x0233}, + {0x8135fc32, 0x0218}, + {0x8135fc33, 0x0218}, + {0x8135fc34, 0x0214}, + {0x8135fc35, 0x0214}, + {0x8135fc36, 0x0218}, + {0x8135fc37, 0x0218}, + {0x8135fc38, 0x0210}, + {0x8135fc39, 0x0210}, + {0x8135fd30, 0x0233}, + {0x8135fd31, 0x0233}, + {0x8135fd32, 0x023f}, + {0x8135fd33, 0x023f}, + {0x8135fd34, 0x023f}, + {0x8135fd35, 0x0214}, + {0x8135fd36, 0x0212}, + {0x8135fd37, 0x0212}, + {0x8135fd38, 0x0201}, + {0x8135fd39, 0x0218}, + {0x8135fe34, 0x0233}, + {0x8135fe35, 0x0233}, + {0x8135fe36, 0x021e}, + {0x8135fe37, 0x021e}, + {0x8135fe38, 0x02100b}, + {0x8135fe39, 0x02100b}, + {0x81368130, 0x02100d}, + {0x81368131, 0x02100d}, + {0x81368132, 0x02101e}, + {0x81368133, 0x02101e}, + {0x81368134, 0x021017}, + {0x81368135, 0x021017}, + {0x81368136, 0x023310}, + {0x81368137, 0x023310}, + {0x81368138, 0x020f0b}, + {0x81368139, 0x020f0b}, + {0x81368230, 0x020f0d}, + {0x81368231, 0x020f0d}, + {0x81368232, 0x020f1e}, + {0x81368233, 0x020f1e}, + {0x81368234, 0x020f17}, + {0x81368235, 0x020f17}, + {0x81368236, 0x02330f}, + {0x81368237, 0x02330f}, + {0x81368238, 0x0233}, + {0x81368239, 0x0233}, + {0x81368330, 0x021e}, + {0x81368331, 0x021e}, + {0x81368332, 0x0217}, + {0x81368333, 0x0217}, + {0x81368334, 0x02100b}, + {0x81368335, 0x02100b}, + {0x81368336, 0x02100d}, + {0x81368337, 0x02100d}, + {0x81368338, 0x02101e}, + {0x81368339, 0x02101e}, + {0x81368430, 0x021017}, + {0x81368431, 0x021017}, + {0x81368432, 0x023310}, + {0x81368433, 0x023310}, + {0x81368434, 0x021e}, + {0x81368435, 0x021e}, + {0x81368436, 0x0233}, + {0x81368437, 0x0233}, + {0x81368438, 0x0233}, + {0x81368439, 0x0233}, + {0x81368530, 0x021e}, + {0x81368531, 0x021e}, + {0x81368532, 0x02100b}, + {0x81368533, 0x02100b}, + {0x81368534, 0x02100d}, + {0x81368535, 0x02100d}, + {0x81368536, 0x02101e}, + {0x81368537, 0x02101e}, + {0x81368538, 0x021017}, + {0x81368539, 0x021017}, + {0x81368630, 0x023310}, + {0x81368631, 0x023310}, + {0x81368632, 0x022b0b}, + {0x81368633, 0x022b0b}, + {0x81368634, 0x022b0d}, + {0x81368635, 0x022b0d}, + {0x81368636, 0x022b1e}, + {0x81368637, 0x022b1e}, + {0x81368638, 0x022b17}, + {0x81368639, 0x022b17}, + {0x81368730, 0x022b33}, + {0x81368731, 0x022b33}, + {0x81368732, 0x0233}, + {0x81368733, 0x0233}, + {0x81368734, 0x021e}, + {0x81368735, 0x021e}, + {0x81368736, 0x022b0b}, + {0x81368737, 0x022b0b}, + {0x81368738, 0x022b0d}, + {0x81368739, 0x022b0d}, + {0x81368830, 0x022b1e}, + {0x81368831, 0x022b1e}, + {0x81368832, 0x022b17}, + {0x81368833, 0x022b17}, + {0x81368834, 0x022b33}, + {0x81368835, 0x022b33}, + {0x81368836, 0x020d}, + {0x81368837, 0x020d}, + {0x81368838, 0x0233}, + {0x81368839, 0x0233}, + {0x81368930, 0x021e}, + {0x81368931, 0x021e}, + {0x81368932, 0x0217}, + {0x81368933, 0x0217}, + {0x81368a30, 0x0208}, + {0x81368a31, 0x020a}, + {0x81368a32, 0x02080d}, + {0x81368a33, 0x020a0d}, + {0x81368a34, 0x02080b}, + {0x81368a35, 0x020a0b}, + {0x81368a36, 0x020813}, + {0x81368a37, 0x020a13}, + {0x81368a38, 0x0208}, + {0x81368a39, 0x020a}, + {0x81368b30, 0x02080d}, + {0x81368b31, 0x020a0d}, + {0x81368b32, 0x02080b}, + {0x81368b33, 0x020a0b}, + {0x81368b34, 0x020813}, + {0x81368b35, 0x020a13}, + {0x81368b36, 0x0208}, + {0x81368b37, 0x020a}, + {0x81368b38, 0x02080d}, + {0x81368b39, 0x020a0d}, + {0x81368c30, 0x02080b}, + {0x81368c31, 0x020a0b}, + {0x81368c34, 0x0208}, + {0x81368c35, 0x020a}, + {0x81368c36, 0x02080d}, + {0x81368c37, 0x020a0d}, + {0x81368c38, 0x02080b}, + {0x81368c39, 0x020a0b}, + {0x81368d32, 0x0208}, + {0x81368d33, 0x020a}, + {0x81368d34, 0x02080d}, + {0x81368d35, 0x020a0d}, + {0x81368d36, 0x02080b}, + {0x81368d37, 0x020a0b}, + {0x81368d38, 0x020813}, + {0x81368d39, 0x020a13}, + {0x81368e30, 0x0208}, + {0x81368e31, 0x020a}, + {0x81368e32, 0x02080d}, + {0x81368e33, 0x020a0d}, + {0x81368e34, 0x02080b}, + {0x81368e35, 0x020a0b}, + {0x81368e36, 0x020813}, + {0x81368e37, 0x020a13}, + {0x81368e38, 0x0208}, + {0x81368e39, 0x020a}, + {0x81368f30, 0x02080d}, + {0x81368f31, 0x020a0d}, + {0x81368f32, 0x02080b}, + {0x81368f33, 0x020a0b}, + {0x81368f34, 0x020813}, + {0x81368f35, 0x020a13}, + {0x81368f36, 0x0208}, + {0x81368f37, 0x020a}, + {0x81368f38, 0x02080d}, + {0x81368f39, 0x020a0d}, + {0x81369030, 0x02080b}, + {0x81369031, 0x020a0b}, + {0x81369032, 0x020813}, + {0x81369033, 0x020a13}, + {0x81369034, 0x0208}, + {0x81369035, 0x020a}, + {0x81369036, 0x02080d}, + {0x81369037, 0x020a0d}, + {0x81369038, 0x02080b}, + {0x81369039, 0x020a0b}, + {0x81369132, 0x0208}, + {0x81369133, 0x020a}, + {0x81369134, 0x02080d}, + {0x81369135, 0x020a0d}, + {0x81369136, 0x02080b}, + {0x81369137, 0x020a0b}, + {0x81369230, 0x0208}, + {0x81369231, 0x020a}, + {0x81369232, 0x02080d}, + {0x81369233, 0x020a0d}, + {0x81369234, 0x02080b}, + {0x81369235, 0x020a0b}, + {0x81369236, 0x020813}, + {0x81369237, 0x020a13}, + {0x81369239, 0x020a}, + {0x81369331, 0x020a0d}, + {0x81369333, 0x020a0b}, + {0x81369335, 0x020a13}, + {0x81369336, 0x0208}, + {0x81369337, 0x020a}, + {0x81369338, 0x02080d}, + {0x81369339, 0x020a0d}, + {0x81369430, 0x02080b}, + {0x81369431, 0x020a0b}, + {0x81369432, 0x020813}, + {0x81369433, 0x020a13}, + {0x81369434, 0x0208}, + {0x81369435, 0x020a}, + {0x81369436, 0x02080d}, + {0x81369437, 0x020a0d}, + {0x81369438, 0x02080b}, + {0x81369439, 0x020a0b}, + {0x81369530, 0x020813}, + {0x81369531, 0x020a13}, + {0x81369532, 0x020d}, + {0x81369534, 0x020d}, + {0x81369536, 0x020d}, + {0x81369538, 0x020d}, + {0x81369630, 0x020d}, + {0x81369632, 0x020d}, + {0x81369634, 0x020d}, + {0x81369638, 0x02084c}, + {0x81369639, 0x020a4c}, + {0x81369730, 0x02080d4c}, + {0x81369731, 0x020a0d4c}, + {0x81369732, 0x02080b4c}, + {0x81369733, 0x020a0b4c}, + {0x81369734, 0x0208134c}, + {0x81369735, 0x020a134c}, + {0x81369736, 0x02084c}, + {0x81369737, 0x020a4c}, + {0x81369738, 0x02080d4c}, + {0x81369739, 0x020a0d4c}, + {0x81369830, 0x02080b4c}, + {0x81369831, 0x020a0b4c}, + {0x81369832, 0x0208134c}, + {0x81369833, 0x020a134c}, + {0x81369834, 0x02084c}, + {0x81369835, 0x020a4c}, + {0x81369836, 0x02080d4c}, + {0x81369837, 0x020a0d4c}, + {0x81369838, 0x02080b4c}, + {0x81369839, 0x020a0b4c}, + {0x81369930, 0x0208134c}, + {0x81369931, 0x020a134c}, + {0x81369932, 0x02084c}, + {0x81369933, 0x020a4c}, + {0x81369934, 0x02080d4c}, + {0x81369935, 0x020a0d4c}, + {0x81369936, 0x02080b4c}, + {0x81369937, 0x020a0b4c}, + {0x81369938, 0x0208134c}, + {0x81369939, 0x020a134c}, + {0x81369a30, 0x02084c}, + {0x81369a31, 0x020a4c}, + {0x81369a32, 0x02080d4c}, + {0x81369a33, 0x020a0d4c}, + {0x81369a34, 0x02080b4c}, + {0x81369a35, 0x020a0b4c}, + {0x81369a36, 0x0208134c}, + {0x81369a37, 0x020a134c}, + {0x81369a38, 0x02084c}, + {0x81369a39, 0x020a4c}, + {0x81369b30, 0x02080d4c}, + {0x81369b31, 0x020a0d4c}, + {0x81369b32, 0x02080b4c}, + {0x81369b33, 0x020a0b4c}, + {0x81369b34, 0x0208134c}, + {0x81369b35, 0x020a134c}, + {0x81369b36, 0x020f}, + {0x81369b37, 0x021c}, + {0x81369b38, 0x020d4c}, + {0x81369b39, 0x024c}, + {0x81369c30, 0x020b4c}, + {0x81369c32, 0x0213}, + {0x81369c33, 0x02134c}, + {0x81369c34, 0x020f}, + {0x81369c35, 0x021c}, + {0x81369c36, 0x020d}, + {0x81369c38, 0x024c}, + {0x81369d30, 0x02}, + {0x81369d33, 0x13}, + {0x81369d34, 0x020d4c}, + {0x81369d35, 0x024c}, + {0x81369d36, 0x020b4c}, + {0x81369d38, 0x0213}, + {0x81369d39, 0x02134c}, + {0x81369e30, 0x020d}, + {0x81369e32, 0x020d}, + {0x81369e34, 0x024c}, + {0x81369e35, 0x0d}, + {0x81369e36, 0x0b}, + {0x81369e37, 0x13}, + {0x81369e38, 0x020f}, + {0x81369e39, 0x021c}, + {0x81369f30, 0x02140d}, + {0x81369f34, 0x0213}, + {0x81369f35, 0x021413}, + {0x81369f36, 0x020f}, + {0x81369f37, 0x021c}, + {0x81369f38, 0x020d}, + {0x8136a031, 0x0d}, + {0x8136a032, 0x0b}, + {0x8136a033, 0x13}, + {0x8136a034, 0x020f}, + {0x8136a035, 0x021c}, + {0x8136a036, 0x02140d}, + {0x8136a038, 0x0208}, + {0x8136a039, 0x020a}, + {0x8136a130, 0x0213}, + {0x8136a131, 0x021413}, + {0x8136a132, 0x020f}, + {0x8136a133, 0x021c}, + {0x8136a134, 0x020d}, + {0x8136a136, 0x020a}, + {0x8136a137, 0x0D}, + {0x8136a232, 0x020d4c}, + {0x8136a233, 0x024c}, + {0x8136a234, 0x020b4c}, + {0x8136a236, 0x0213}, + {0x8136a237, 0x02134c}, + {0x8136a238, 0x020d}, + {0x8136a330, 0x020d}, + {0x8136a332, 0x024c}, + {0x8136ad32, 0x02}, + {0x8136ad36, 0x02}, + {0x8136ad37, 0x02}, + {0x8136ad38, 0x02}, + {0x8136ad39, 0x02}, + {0x8136ae30, 0x02}, + {0x8136ae31, 0x02}, + {0x8136ae37, 0x02}, + {0x8136ae38, 0x02}, + {0x8136ae39, 0x02}, + {0x8136af30, 0x02}, + {0x8136af31, 0x02}, + {0x8136af32, 0x02}, + {0x8136af33, 0x02}, + {0x8136af34, 0x02}, + {0x8136af35, 0x02}, + {0x8136af36, 0x02}, + {0x8136af37, 0x02}, + {0x8136b230, 0x01}, + {0x8136b231, 0x01}, + {0x8136b232, 0x01}, + {0x8136b233, 0x01}, + {0x8136b234, 0x01}, + {0x8136b235, 0x01}, + {0x8136b236, 0x01}, + {0x8136b237, 0x01}, + {0x8136b239, 0x01}, + {0x8136b330, 0x01}, + {0x8136b331, 0x01}, + {0x8136b637, 0xbf}, + {0x8136b638, 0xc0}, + {0x8136b639, 0xc1}, + {0x8136b730, 0xc2}, + {0x8136b731, 0xc3}, + {0x8136b732, 0xc4}, + {0x8136b733, 0xc5}, + {0x8136b734, 0xc6}, + {0x8136b735, 0xc7}, + {0x8136b736, 0xc8}, + {0x8136b737, 0xc9}, + {0x8136b738, 0xca}, + {0x8136b739, 0xcb}, + {0x8136b830, 0xcc}, + {0x8136b831, 0xcd}, + {0x8136b832, 0xce}, + {0x8136b833, 0xcf}, + {0x8136b834, 0xd0}, + {0x8136bb37, 0x02}, + {0x8136bb38, 0x01}, + {0x8136bc31, 0x01}, + {0x8136bc32, 0x02}, + {0x8136bc33, 0x02}, + {0x8136bc34, 0x02}, + {0x8136bc35, 0x02}, + {0x8136bc36, 0x02}, + {0x8136bc37, 0x02}, + {0x8136bc38, 0x02}, + {0x8136bc39, 0x02}, + {0x8136bd30, 0x02}, + {0x8136bd31, 0x02}, + {0x8136bd32, 0x01}, + {0x8136bd33, 0x02}, + {0x8136bd34, 0x01}, + {0x8136bd35, 0x01}, + {0x8136bd36, 0x02}, + {0x8136bd37, 0x02}, + {0x8136bd38, 0x02}, + {0x8136bd39, 0x02}, + {0x8136be30, 0x02}, + {0x8136be31, 0x01}, + {0x8136be32, 0x01}, + {0x8136be33, 0x0202}, + {0x8136be34, 0x0202}, + {0x8136be35, 0x01}, + {0x8136be36, 0x02}, + {0x8136be37, 0x01}, + {0x8136be38, 0x02}, + {0x8136be39, 0x01}, + {0x8136bf30, 0x02}, + {0x8136bf31, 0x01}, + {0x8136bf32, 0x02}, + {0x8136bf34, 0x02}, + {0x8136bf36, 0x01}, + {0x8136bf37, 0x02}, + {0x8136bf38, 0x02}, + {0x8136bf39, 0x02}, + {0x8136c030, 0x01}, + {0x8136c031, 0x02}, + {0x8136c032, 0x02}, + {0x8136c435, 0x02}, + {0x8136c436, 0x02}, + {0x8136c437, 0x02}, + {0x8136c438, 0x02}, + {0x8136c439, 0x02}, + {0x8136c530, 0x0202}, + {0x8136c532, 0x02}, + {0x8136c533, 0x02}, + {0x8136c534, 0x02}, + {0x8136c535, 0x02}, + {0x8136c536, 0x01}, + {0x8136c537, 0x01}, + {0x8136c538, 0x01}, + {0x8136c734, 0x19}, + {0x8136c735, 0x19}, + {0x8136c934, 0x19}, + {0x8136cc35, 0x19}, + {0x8136cc36, 0x19}, + {0x8136cc37, 0x19}, + {0x8136d230, 0x19}, + {0x8136d234, 0x19}, + {0x8136d237, 0x19}, + {0x8136d431, 0x02}, + {0x8136d432, 0x0219}, + {0x8136d433, 0x19}, + {0x8136d539, 0x19}, + {0x8136d632, 0x19}, + {0x8136d635, 0x19}, + {0x8136d636, 0x19}, + {0x8136d837, 0x19}, + {0x8136d934, 0x19}, + {0x8136d935, 0x19}, + {0x8136d936, 0x19}, + {0x8136d939, 0x19}, + {0x8136da30, 0x19}, + {0x8136da33, 0x19}, + {0x8136da34, 0x19}, + {0x8136db31, 0x19}, + {0x8136db32, 0x19}, + {0x8136db35, 0x19}, + {0x8136db36, 0x19}, + {0x8136db39, 0x19}, + {0x8136dc30, 0x19}, + {0x8136df32, 0x19}, + {0x8136df33, 0x19}, + {0x8136df34, 0x19}, + {0x8136df35, 0x19}, + {0x8136e433, 0x19}, + {0x8136e434, 0x19}, + {0x8136e435, 0x19}, + {0x8136e436, 0x19}, + {0x8136e533, 0x19}, + {0x8136e534, 0x19}, + {0x8136e535, 0x19}, + {0x8136e536, 0x19}, + {0x81378d36, 0x02}, + {0x81378d37, 0x02}, + {0x81378d38, 0x02}, + {0x81378d39, 0x02}, + {0x81378e30, 0x02}, + {0x81378e31, 0x02}, + {0x81378e32, 0x02}, + {0x81378e33, 0x02}, + {0x81378e34, 0x02}, + {0x81378e35, 0x02}, + {0x81378e36, 0x02}, + {0x81378e37, 0x02}, + {0x81378e38, 0x02}, + {0x81378e39, 0x02}, + {0x81378f30, 0x02}, + {0x81378f31, 0x02}, + {0x81378f32, 0x02}, + {0x81378f33, 0x02}, + {0x81378f34, 0x02}, + {0x81378f35, 0x02}, + {0x81378f36, 0x02}, + {0x81378f37, 0x02}, + {0x81378f38, 0x02}, + {0x81378f39, 0x02}, + {0x81379030, 0x02}, + {0x81379031, 0x02}, + {0x81379032, 0x02}, + {0x81379033, 0x02}, + {0x81379034, 0x02}, + {0x81379035, 0x02}, + {0x81379036, 0x02}, + {0x81379037, 0x02}, + {0x81379038, 0x02}, + {0x81379039, 0x02}, + {0x81379130, 0x02}, + {0x81379131, 0x02}, + {0x81379132, 0x02}, + {0x81379133, 0x02}, + {0x81379134, 0x02}, + {0x81379135, 0x02}, + {0x81379136, 0x02}, + {0x81379137, 0x02}, + {0x81379138, 0x02}, + {0x81379139, 0x02}, + {0x81379230, 0x02}, + {0x81379231, 0x02}, + {0x81379232, 0x02}, + {0x81379233, 0x02}, + {0x81379234, 0x02}, + {0x81379235, 0x02}, + {0x81379236, 0x02}, + {0x81379237, 0x02}, + {0x81379238, 0x02}, + {0x81379239, 0x02}, + {0x81379330, 0x02}, + {0x81379331, 0x02}, + {0x81379332, 0x02}, + {0x81379333, 0x02}, + {0x81379334, 0x02}, + {0x81379335, 0x02}, + {0x81379336, 0x02}, + {0x81379337, 0x02}, + {0x81379338, 0x02}, + {0x81379339, 0x02}, + {0x81379430, 0x02}, + {0x81379431, 0x02}, + {0x81379432, 0x02}, + {0x81379433, 0x02}, + {0x81379434, 0x02}, + {0x81379435, 0x02}, + {0x81379436, 0x02}, + {0x81379437, 0x02}, + {0x81379438, 0x02}, + {0x81379439, 0x02}, + {0x81379530, 0x02}, + {0x81379531, 0x02}, + {0x81379532, 0x02}, + {0x81379533, 0x02}, + {0x81379534, 0x02}, + {0x8137ad31, 0x01}, + {0x8137ad32, 0x01}, + {0x8137ad33, 0x01}, + {0x8137c833, 0x02}, + {0x8137c834, 0x02}, + {0x8137c933, 0x02}, + {0x8137c934, 0x02}, + {0x8137ca33, 0x02}, + {0x8137ca34, 0x02}, + {0x8139a434, 0xb2}, + {0x8139a435, 0xb3}, + {0x8139a436, 0xb4}, + {0x8139a437, 0xb5}, + {0x8139a438, 0xbb}, + {0x8139a439, 0xbc}, + {0x8139a533, 0x02}, + {0x8139a534, 0x02}, + {0x8139a535, 0x01}, + {0x8139a636, 0x02bd}, + {0x8139a731, 0xbd}, + {0x8139a732, 0xbe}, + {0x8139a735, 0x02bd}, + {0x8139a736, 0x02bd}, + {0x8139a737, 0x02bd}, + {0x8139a738, 0x02bd}, + {0x8139ee39, 0x01}, + {0x8139ef30, 0x01}, + {0x8139ef33, 0x01}, + {0x8139ef34, 0x01}, + {0x8139ef35, 0x01}, + {0x8139f031, 0x01}, + {0x8139f131, 0x01}, + {0x8139f137, 0x01}, + {0x8139f232, 0x01}, + {0x8139f235, 0x01}, + {0x8139f239, 0x01}, + {0x8139f330, 0x01}, + {0x8139f331, 0x01}, + {0x8139f332, 0x01}, + {0x8139f333, 0x01}, + {0x8139f334, 0x01}, + {0x8139f335, 0x01}, + {0x8139f336, 0x01}, + {0x8139f337, 0x01}, + {0x8139f338, 0x01}, + {0x8139f339, 0x01}, + {0x8139f430, 0x01}, + {0x8139f431, 0x01}, + {0x8139f432, 0x01}, + {0x8139f433, 0x01}, + {0x8139f434, 0x01}, + {0x8139f435, 0x01}, + {0x8139f436, 0x01}, + {0x8139f437, 0x01}, + {0x8139f438, 0x01}, + {0x8139f439, 0x01}, + {0x8139f530, 0x01}, + {0x8139f531, 0x01}, + {0x8139f533, 0x01}, + {0x8139f534, 0x01}, + {0x8139f535, 0x01}, + {0x8139f536, 0x01}, + {0x8139f537, 0x01}, + {0x8139f538, 0x01}, + {0x8139f630, 0x01}, + {0x8139f631, 0x01}, + {0x8139f632, 0x01}, + {0x8139f633, 0x01}, + {0x8139f634, 0x01}, + {0x8139f635, 0x01}, + {0x8139f636, 0x01}, + {0x8139f637, 0x01}, + {0x8139f638, 0x01}, + {0x8139f731, 0x01}, + {0x8139f732, 0x01}, + {0x8139f735, 0x01}, + {0x8139f736, 0x01}, + {0x8139f737, 0x01}, + {0x8139f738, 0x01}, + {0x8139f739, 0x01}, + {0x8139f830, 0x01}, + {0x8139f831, 0x01}, + {0x8139f832, 0x01}, + {0x8139f833, 0x01}, + {0x8139f834, 0x01}, + {0x8139f836, 0x01}, + {0x8139f837, 0x01}, + {0x8139f838, 0x01}, + {0x8139f839, 0x01}, + {0x8139f930, 0x01}, + {0x8139f931, 0x01}, + {0x8139f932, 0x01}, + {0x8139f933, 0x01}, + {0x8139f934, 0x01}, + {0x8139f935, 0x01}, + {0x8139f937, 0x01}, + {0x8139f938, 0x01}, + {0x8139f939, 0x01}, + {0x8139fa30, 0x01}, + {0x8139fa31, 0x01}, + {0x8139fa32, 0x01}, + {0x8139fa33, 0x01}, + {0x8139fa34, 0x01}, + {0x8139fa35, 0x01}, + {0x8139fa36, 0x01}, + {0x8139fa37, 0x01}, + {0x8139fa39, 0x01}, + {0x8139fb30, 0x01}, + {0x8139fb31, 0x01}, + {0x8139fb32, 0x01}, + {0x8139fb33, 0x01}, + {0x8139fb34, 0x01}, + {0x8139fb35, 0x01}, + {0x8139fb36, 0x01}, + {0x8139fb37, 0x01}, + {0x8139fb38, 0x01}, + {0x8139fb39, 0x01}, + {0x8139fc30, 0x01}, + {0x8139fc31, 0x01}, + {0x8139fc32, 0x01}, + {0x8139fc33, 0x01}, + {0x8139fc34, 0x01}, + {0x8139fc35, 0x01}, + {0x8139fc36, 0x01}, + {0x8139fc37, 0x01}, + {0x8139fc38, 0x01}, + {0x8139fc39, 0x01}, + {0x8139fd32, 0x01}, + {0x8139fd33, 0x01}, + {0x8139fd34, 0x01}, + {0x8139fd35, 0x01}, + {0x8139fd36, 0x01}, + {0x8139fd37, 0x01}, + {0x8139fe30, 0x01}, + {0x8139fe31, 0x01}, + {0x8139fe32, 0x01}, + {0x8139fe33, 0x01}, + {0x8139fe34, 0x01}, + {0x8139fe35, 0x01}, + {0x8139fe36, 0x01}, + {0x8139fe37, 0x01}, + {0x8139fe38, 0x01}, + {0x82308131, 0x01}, + {0x82308132, 0x01}, + {0x82308133, 0x01}, + {0x82308134, 0x01}, + {0x82308135, 0x01}, + {0x82308136, 0x01}, + {0x82308137, 0x01}, + {0x82308138, 0x01}, + {0x82308230, 0x01}, + {0x82308233, 0x01}, + {0x82308235, 0x01}, + {0x82308236, 0x01}, + {0x82308237, 0x01}, + {0x82308238, 0x01}, + {0x82308239, 0x01}, + {0x82308330, 0x01}, + {0x82308331, 0x01}, + {0x82308332, 0x01}, + {0x82308334, 0x01}, + {0x82308335, 0x01}, + {0x82308336, 0x01}, + {0x82308337, 0x01}, + {0x82308338, 0x01}, + {0x82308431, 0x01}, + {0x82308432, 0x01}, + {0x82308433, 0x01}, + {0x82308434, 0x01}, + {0x82308437, 0x01}, + {0x82308438, 0x01}, + {0x82308439, 0x01}, + {0x82308530, 0x01}, + {0x82308531, 0x01}, + {0x82308533, 0x01}, + {0x82308534, 0x01}, + {0x82308535, 0x01}, + {0x82308536, 0x01}, + {0x82308538, 0x01}, + {0x82308539, 0x01}, + {0x82308630, 0x01}, + {0x82308631, 0x01}, + {0x82308632, 0x01}, + {0x82308633, 0x01}, + {0x82308635, 0x01}, + {0x82308636, 0x01}, + {0x82308637, 0x01}, + {0x82308638, 0x01}, + {0x82308639, 0x01}, + {0x82308730, 0x01}, + {0x82308731, 0x01}, + {0x82308732, 0x01}, + {0x82308733, 0x01}, + {0x82308734, 0x01}, + {0x82308735, 0x01}, + {0x82308736, 0x01}, + {0x82308737, 0x01}, + {0x82308738, 0x01}, + {0x82308739, 0x01}, + {0x82308830, 0x01}, + {0x82308831, 0x01}, + {0x82308833, 0x01}, + {0x82308834, 0x01}, + {0x82308835, 0x01}, + {0x82308836, 0x01}, + {0x82308837, 0x01}, + {0x82308838, 0x01}, + {0x82308839, 0x01}, + {0x82308930, 0x01}, + {0x82308931, 0x01}, + {0x82308932, 0x01}, + {0x82308933, 0x01}, + {0x82308934, 0x01}, + {0x82308935, 0x01}, + {0x82308936, 0x01}, + {0x82308937, 0x01}, + {0x82308938, 0x01}, + {0x82308939, 0x01}, + {0x82308a30, 0x01}, + {0x82308a31, 0x01}, + {0x82308a33, 0x01}, + {0x82308a34, 0x01}, + {0x82308a35, 0x01}, + {0x82308a36, 0x01}, + {0x82308a37, 0x01}, + {0x82308a38, 0x01}, + {0x82308a39, 0x01}, + {0x82308b30, 0x01}, + {0x82308b32, 0x01}, + {0x82308b33, 0x01}, + {0x82308b34, 0x01}, + {0x82308b35, 0x01}, + {0x82308b36, 0x01}, + {0x82308b37, 0x01}, + {0x82308b38, 0x01}, + {0x82308b39, 0x01}, + {0x82308c30, 0x01}, + {0x82308c31, 0x01}, + {0x82308c32, 0x01}, + {0x82308c34, 0x01}, + {0x82308c36, 0x01}, + {0x82308c37, 0x01}, + {0x82308c38, 0x01}, + {0x82308c39, 0x01}, + {0x82308d31, 0x01}, + {0x82308d32, 0x01}, + {0x82308d33, 0x01}, + {0x82308d35, 0x01}, + {0x82308d36, 0x01}, + {0x82308d37, 0x01}, + {0x82308d38, 0x01}, + {0x82308d39, 0x01}, + {0x82308e30, 0x01}, + {0x82308e31, 0x01}, + {0x82308e32, 0x01}, + {0x82308e33, 0x01}, + {0x82308e34, 0x01}, + {0x82308e35, 0x01}, + {0x82308e37, 0x01}, + {0x82308e38, 0x01}, + {0x82308e39, 0x01}, + {0x82308f30, 0x01}, + {0x82308f31, 0x01}, + {0x82308f32, 0x01}, + {0x82308f34, 0x01}, + {0x82308f35, 0x01}, + {0x82308f36, 0x01}, + {0x82308f37, 0x01}, + {0x82308f38, 0x01}, + {0x82308f39, 0x01}, + {0x82309030, 0x01}, + {0x82309031, 0x01}, + {0x82309032, 0x01}, + {0x82309033, 0x01}, + {0x82309034, 0x01}, + {0x82309035, 0x01}, + {0x82309036, 0x01}, + {0x82309038, 0x01}, + {0x82309039, 0x01}, + {0x82309130, 0x01}, + {0x82309131, 0x01}, + {0x82309132, 0x01}, + {0x82309133, 0x01}, + {0x82309134, 0x01}, + {0x82309135, 0x01}, + {0x82309136, 0x01}, + {0x82309137, 0x01}, + {0x82309138, 0x01}, + {0x82309139, 0x01}, + {0x82309230, 0x01}, + {0x82309231, 0x01}, + {0x82309232, 0x01}, + {0x82309233, 0x01}, + {0x82309234, 0x01}, + {0x82309235, 0x01}, + {0x82309236, 0x01}, + {0x82309237, 0x01}, + {0x82309238, 0x01}, + {0x82309239, 0x01}, + {0x82309330, 0x01}, + {0x82309331, 0x01}, + {0x82309332, 0x01}, + {0x82309333, 0x01}, + {0x82309334, 0x01}, + {0x82309335, 0x01}, + {0x82309337, 0x01}, + {0x82309338, 0x01}, + {0x82309339, 0x01}, + {0x82309430, 0x01}, + {0x82309431, 0x01}, + {0x82309432, 0x01}, + {0x82309433, 0x01}, + {0x82309434, 0x01}, + {0x82309435, 0x01}, + {0x82309436, 0x01}, + {0x82309437, 0x01}, + {0x82309438, 0x01}, + {0x82309439, 0x01}, + {0x82309530, 0x01}, + {0x82309531, 0x01}, + {0x82309532, 0x01}, + {0x82309533, 0x01}, + {0x82309534, 0x01}, + {0x82309535, 0x01}, + {0x82309536, 0x01}, + {0x82309537, 0x01}, + {0x82309538, 0x01}, + {0x82309539, 0x01}, + {0x82309630, 0x01}, + {0x82309631, 0x01}, + {0x82309632, 0x01}, + {0x82309633, 0x01}, + {0x82309634, 0x01}, + {0x82309635, 0x01}, + {0x82309636, 0x01}, + {0x82309637, 0x01}, + {0x82309638, 0x01}, + {0x82309731, 0x01}, + {0x82309732, 0x01}, + {0x82309733, 0x01}, + {0x82309734, 0x01}, + {0x82309735, 0x01}, + {0x82309736, 0x01}, + {0x82309737, 0x01}, + {0x82309738, 0x01}, + {0x82309830, 0x01}, + {0x82309831, 0x01}, + {0x82309836, 0x01}, + {0x82309837, 0x01}, + {0x82309838, 0x01}, + {0x82309839, 0x01}, + {0x82309930, 0x01}, + {0x82309931, 0x01}, + {0x82309932, 0x01}, + {0x82309933, 0x01}, + {0x82309934, 0x01}, + {0x82309935, 0x01}, + {0x82309a31, 0x01}, + {0x82309a32, 0x01}, + {0x82309a33, 0x01}, + {0x82309a34, 0x01}, + {0x82309a35, 0x01}, + {0x82309a36, 0x01}, + {0x82309a37, 0x01}, + {0x82309a38, 0x01}, + {0x82309a39, 0x01}, + {0x82309b30, 0x01}, + {0x82309b31, 0x01}, + {0x82309b32, 0x01}, + {0x82309b33, 0x01}, + {0x82309b35, 0x01}, + {0x82309b36, 0x01}, + {0x82309c33, 0x01}, + {0x82309c34, 0x01}, + {0x82309c35, 0x01}, + {0x82309c36, 0x01}, + {0x82309c37, 0x01}, + {0x82309c38, 0x01}, + {0x82309c39, 0x01}, + {0x82309d30, 0x01}, + {0x82309d31, 0x01}, + {0x82309d32, 0x01}, + {0x82309d33, 0x01}, + {0x82309d34, 0x01}, + {0x82309d35, 0x01}, + {0x82309d36, 0x01}, + {0x82309d37, 0x01}, + {0x82309d38, 0x01}, + {0x82309d39, 0x01}, + {0x82309e30, 0x01}, + {0x82309e31, 0x01}, + {0x82309e32, 0x01}, + {0x82309e33, 0x01}, + {0x82309e34, 0x01}, + {0x82309e35, 0x01}, + {0x82309e36, 0x01}, + {0x82309e37, 0x01}, + {0x82309e38, 0x01}, + {0x82309e39, 0x01}, + {0x82309f30, 0x01}, + {0x82309f31, 0x01}, + {0x82309f32, 0x01}, + {0x82309f33, 0x01}, + {0x82309f34, 0x01}, + {0x82309f35, 0x01}, + {0x82309f36, 0x01}, + {0x82309f37, 0x01}, + {0x82309f38, 0x01}, + {0x82309f39, 0x01}, + {0x8230a030, 0x01}, + {0x8230a031, 0x01}, + {0x8230a032, 0x01}, + {0x8230a034, 0x01}, + {0x8230a038, 0x01}, + {0x8230a039, 0x01}, + {0x8230a130, 0x01}, + {0x8230a131, 0x01}, + {0x8230a132, 0x01}, + {0x8230a133, 0x01}, + {0x8230a134, 0x01}, + {0x8230a135, 0x01}, + {0x8230a136, 0x01}, + {0x8230a137, 0x01}, + {0x8230a138, 0x01}, + {0x8230a139, 0x01}, + {0x8230a232, 0x01}, + {0x8230a233, 0x01}, + {0x8230a234, 0x01}, + {0x8230a235, 0x01}, + {0x8230a236, 0x01}, + {0x8230a237, 0x01}, + {0x8230a238, 0x01}, + {0x8230a332, 0x01}, + {0x8230a333, 0x01}, + {0x8230a334, 0x01}, + {0x8230a335, 0x01}, + {0x8230a336, 0x01}, + {0x8230a337, 0x01}, + {0x8230a338, 0x01}, + {0x8230a339, 0x01}, + {0x8230a430, 0x01}, + {0x8230a431, 0x01}, + {0x8230a432, 0x01}, + {0x8230a433, 0x01}, + {0x8230a434, 0x01}, + {0x8230a435, 0x01}, + {0x8230a436, 0x01}, + {0x8230a437, 0x01}, + {0x8230a438, 0x01}, + {0x8230a439, 0x01}, + {0x8230a530, 0x01}, + {0x8230a531, 0x01}, + {0x8230a533, 0x01}, + {0x8230a534, 0x01}, + {0x8230a536, 0x01}, + {0x8230a537, 0x01}, + {0x8230a538, 0x01}, + {0x8230a539, 0x01}, + {0x8230a630, 0x01}, + {0x8230a632, 0x01}, + {0x8230a633, 0x01}, + {0x8230a634, 0x01}, + {0x8230a635, 0x01}, + {0x8230a636, 0x01}, + {0x8230a637, 0x01}, + {0x8230a638, 0x01}, + {0x8230a639, 0x01}, + {0x8230a730, 0x01}, + {0x8230a731, 0x01}, + {0x8230a732, 0x01}, + {0x8230a733, 0x01}, + {0x8230a734, 0x01}, + {0x8230a735, 0x01}, + {0x8230a736, 0x01}, + {0x8230a737, 0x01}, + {0x8230a738, 0x01}, + {0x8230a739, 0x01}, + {0x8230a830, 0x01}, + {0x8230a831, 0x01}, + {0x8230a833, 0x01}, + {0x8230a834, 0x01}, + {0x8230a835, 0x01}, + {0x8230a836, 0x01}, + {0x8230a837, 0x01}, + {0x8230a838, 0x01}, + {0x8230a839, 0x01}, + {0x8230a930, 0x01}, + {0x8230a931, 0x01}, + {0x8230a932, 0x01}, + {0x8230a933, 0x01}, + {0x8230a934, 0x01}, + {0x8230a935, 0x01}, + {0x8230a937, 0x01}, + {0x8230a939, 0x01}, + {0x8230aa30, 0x01}, + {0x8230aa31, 0x01}, + {0x8230aa32, 0x01}, + {0x8230aa33, 0x01}, + {0x8230aa34, 0x01}, + {0x8230aa35, 0x01}, + {0x8230aa37, 0x01}, + {0x8230aa38, 0x01}, + {0x8230aa39, 0x01}, + {0x8230ab30, 0x01}, + {0x8230ab32, 0x01}, + {0x8230ab33, 0x01}, + {0x8230ab34, 0x01}, + {0x8230ab35, 0x01}, + {0x8230ab36, 0x01}, + {0x8230ab37, 0x01}, + {0x8230ab38, 0x01}, + {0x8230ab39, 0x01}, + {0x8230ac30, 0x01}, + {0x8230ac31, 0x01}, + {0x8230ac33, 0x01}, + {0x8230ac34, 0x01}, + {0x8230ac35, 0x01}, + {0x8230ac36, 0x01}, + {0x8230ac37, 0x01}, + {0x8230ac39, 0x01}, + {0x8230ad30, 0x01}, + {0x8230ad31, 0x01}, + {0x8230ad32, 0x01}, + {0x8230ad33, 0x01}, + {0x8230ad34, 0x01}, + {0x8230ad35, 0x01}, + {0x8230ad36, 0x01}, + {0x8230ad37, 0x01}, + {0x8230ad38, 0x01}, + {0x8230ad39, 0x01}, + {0x8230ae30, 0x01}, + {0x8230ae31, 0x01}, + {0x8230ae32, 0x01}, + {0x8230ae33, 0x01}, + {0x8230ae34, 0x01}, + {0x8230ae36, 0x01}, + {0x8230ae37, 0x01}, + {0x8230ae38, 0x01}, + {0x8230ae39, 0x01}, + {0x8230af30, 0x01}, + {0x8230af31, 0x01}, + {0x8230af32, 0x01}, + {0x8230af33, 0x01}, + {0x8230af34, 0x01}, + {0x8230af35, 0x01}, + {0x8230af36, 0x01}, + {0x8230af37, 0x01}, + {0x8230af38, 0x01}, + {0x8230af39, 0x01}, + {0x8230b030, 0x01}, + {0x8230b032, 0x01}, + {0x8230b034, 0x01}, + {0x8230b035, 0x01}, + {0x8230b036, 0x01}, + {0x8230b037, 0x01}, + {0x8230b039, 0x01}, + {0x8230b130, 0x01}, + {0x8230b131, 0x01}, + {0x8230b133, 0x01}, + {0x8230b134, 0x01}, + {0x8230b135, 0x01}, + {0x8230b136, 0x01}, + {0x8230b137, 0x01}, + {0x8230b139, 0x01}, + {0x8230b230, 0x01}, + {0x8230b232, 0x01}, + {0x8230b233, 0x01}, + {0x8230b234, 0x01}, + {0x8230b235, 0x01}, + {0x8230b236, 0x01}, + {0x8230b237, 0x01}, + {0x8230b238, 0x01}, + {0x8230b239, 0x01}, + {0x8230b330, 0x01}, + {0x8230b331, 0x01}, + {0x8230b332, 0x01}, + {0x8230b333, 0x01}, + {0x8230b334, 0x01}, + {0x8230b335, 0x01}, + {0x8230b336, 0x01}, + {0x8230b337, 0x01}, + {0x8230b338, 0x01}, + {0x8230b339, 0x01}, + {0x8230b430, 0x01}, + {0x8230b431, 0x01}, + {0x8230b432, 0x01}, + {0x8230b433, 0x01}, + {0x8230b434, 0x01}, + {0x8230b435, 0x01}, + {0x8230b436, 0x01}, + {0x8230b437, 0x01}, + {0x8230b438, 0x01}, + {0x8230b439, 0x01}, + {0x8230b530, 0x01}, + {0x8230b531, 0x01}, + {0x8230b532, 0x01}, + {0x8230b533, 0x01}, + {0x8230b534, 0x01}, + {0x8230b535, 0x01}, + {0x8230b536, 0x01}, + {0x8230b537, 0x01}, + {0x8230b538, 0x01}, + {0x8230b539, 0x01}, + {0x8230b630, 0x01}, + {0x8230b631, 0x01}, + {0x8230b632, 0x01}, + {0x8230b633, 0x01}, + {0x8230b634, 0x01}, + {0x8230b635, 0x01}, + {0x8230b636, 0x01}, + {0x8230b637, 0x01}, + {0x8230b638, 0x01}, + {0x8230b639, 0x01}, + {0x8230b730, 0x01}, + {0x8230b731, 0x01}, + {0x8230b732, 0x01}, + {0x8230b733, 0x01}, + {0x8230b734, 0x01}, + {0x8230b738, 0x01}, + {0x8230b831, 0x01}, + {0x8230b832, 0x01}, + {0x8230b833, 0x01}, + {0x8230b834, 0x01}, + {0x8230b835, 0x01}, + {0x8230b836, 0x01}, + {0x8230b837, 0x01}, + {0x8230b838, 0x01}, + {0x8230b839, 0x01}, + {0x8230b930, 0x01}, + {0x8230b931, 0x01}, + {0x8230b932, 0x01}, + {0x8230b933, 0x01}, + {0x8230b934, 0x01}, + {0x8230b935, 0x01}, + {0x8230b936, 0x01}, + {0x8230b937, 0x01}, + {0x8230b938, 0x01}, + {0x8230ba30, 0x01}, + {0x8230ba33, 0x01}, + {0x8230ba34, 0x01}, + {0x8230ba35, 0x01}, + {0x8230ba36, 0x01}, + {0x8230ba37, 0x01}, + {0x8230ba38, 0x01}, + {0x8230ba39, 0x01}, + {0x8230bb30, 0x01}, + {0x8230bb31, 0x01}, + {0x8230bb32, 0x01}, + {0x8230bb33, 0x01}, + {0x8230bb34, 0x01}, + {0x8230bb35, 0x01}, + {0x8230bb36, 0x01}, + {0x8230bb37, 0x01}, + {0x8230bb38, 0x01}, + {0x8230bb39, 0x01}, + {0x8230bc30, 0x01}, + {0x8230bc31, 0x01}, + {0x8230bc32, 0x01}, + {0x8230bc33, 0x01}, + {0x8230bc34, 0x01}, + {0x8230bc35, 0x01}, + {0x8230bc36, 0x01}, + {0x8230bc37, 0x01}, + {0x8230bc38, 0x01}, + {0x8230bc39, 0x01}, + {0x8230bd30, 0x01}, + {0x8230bd31, 0x01}, + {0x8230bd34, 0x01}, + {0x8230bd35, 0x01}, + {0x8230bd36, 0x01}, + {0x8230bd37, 0x01}, + {0x8230bd38, 0x01}, + {0x8230bd39, 0x01}, + {0x8230be30, 0x01}, + {0x8230be31, 0x01}, + {0x8230be32, 0x01}, + {0x8230be33, 0x01}, + {0x8230be34, 0x01}, + {0x8230be35, 0x01}, + {0x8230be36, 0x01}, + {0x8230be37, 0x01}, + {0x8230be38, 0x01}, + {0x8230be39, 0x01}, + {0x8230bf30, 0x01}, + {0x8230bf31, 0x01}, + {0x8230bf33, 0x01}, + {0x8230bf34, 0x01}, + {0x8230bf35, 0x01}, + {0x8230bf36, 0x01}, + {0x8230bf37, 0x01}, + {0x8230bf38, 0x01}, + {0x8230bf39, 0x01}, + {0x8230c030, 0x01}, + {0x8230c031, 0x01}, + {0x8230c032, 0x01}, + {0x8230c034, 0x01}, + {0x8230c035, 0x01}, + {0x8230c036, 0x01}, + {0x8230c037, 0x01}, + {0x8230c038, 0x01}, + {0x8230c039, 0x01}, + {0x8230c130, 0x01}, + {0x8230c131, 0x01}, + {0x8230c132, 0x01}, + {0x8230c133, 0x01}, + {0x8230c134, 0x01}, + {0x8230c135, 0x01}, + {0x8230c138, 0x01}, + {0x8230c139, 0x01}, + {0x8230c230, 0x01}, + {0x8230c231, 0x01}, + {0x8230c232, 0x01}, + {0x8230c233, 0x01}, + {0x8230c234, 0x01}, + {0x8230c235, 0x01}, + {0x8230c236, 0x01}, + {0x8230c237, 0x01}, + {0x8230c238, 0x01}, + {0x8230c239, 0x01}, + {0x8230c330, 0x01}, + {0x8230c331, 0x01}, + {0x8230c332, 0x01}, + {0x8230c333, 0x01}, + {0x8230c334, 0x01}, + {0x8230c335, 0x01}, + {0x8230c336, 0x01}, + {0x8230c337, 0x01}, + {0x8230c338, 0x01}, + {0x8230c339, 0x01}, + {0x8230c430, 0x01}, + {0x8230c431, 0x01}, + {0x8230c433, 0x01}, + {0x8230c434, 0x01}, + {0x8230c435, 0x01}, + {0x8230c436, 0x01}, + {0x8230c437, 0x01}, + {0x8230c438, 0x01}, + {0x8230c439, 0x01}, + {0x8230c530, 0x01}, + {0x8230c531, 0x01}, + {0x8230c532, 0x01}, + {0x8230c533, 0x01}, + {0x8230c534, 0x01}, + {0x8230c535, 0x01}, + {0x8230c536, 0x01}, + {0x8230c537, 0x01}, + {0x8230c538, 0x01}, + {0x8230c539, 0x01}, + {0x8230c630, 0x01}, + {0x8230c631, 0x01}, + {0x8230c632, 0x01}, + {0x8230c633, 0x01}, + {0x8230c634, 0x01}, + {0x8230c635, 0x01}, + {0x8230c636, 0x01}, + {0x8230c637, 0x01}, + {0x8230c638, 0x01}, + {0x8230c639, 0x01}, + {0x8230c730, 0x01}, + {0x8230c731, 0x01}, + {0x8230c732, 0x01}, + {0x8230c733, 0x01}, + {0x8230c734, 0x01}, + {0x8230c735, 0x01}, + {0x8230c736, 0x01}, + {0x8230c737, 0x01}, + {0x8230c738, 0x01}, + {0x8230c739, 0x01}, + {0x8230c830, 0x01}, + {0x8230c831, 0x01}, + {0x8230c832, 0x01}, + {0x8230c833, 0x01}, + {0x8230c834, 0x01}, + {0x8230c835, 0x01}, + {0x8230c836, 0x01}, + {0x8230c838, 0x01}, + {0x8230c839, 0x01}, + {0x8230c930, 0x01}, + {0x8230c931, 0x01}, + {0x8230c932, 0x01}, + {0x8230c933, 0x01}, + {0x8230c934, 0x01}, + {0x8230c935, 0x01}, + {0x8230c936, 0x01}, + {0x8230c937, 0x01}, + {0x8230c938, 0x01}, + {0x8230c939, 0x01}, + {0x8230ca30, 0x01}, + {0x8230ca31, 0x01}, + {0x8230ca32, 0x01}, + {0x8230ca33, 0x01}, + {0x8230ca34, 0x01}, + {0x8230ca35, 0x01}, + {0x8230ca36, 0x01}, + {0x8230ca37, 0x01}, + {0x8230ca38, 0x01}, + {0x8230ca39, 0x01}, + {0x8230cb30, 0x01}, + {0x8230cb31, 0x01}, + {0x8230cb32, 0x01}, + {0x8230cb34, 0x01}, + {0x8230cb35, 0x01}, + {0x8230cb36, 0x01}, + {0x8230cb37, 0x01}, + {0x8230cb38, 0x01}, + {0x8230cb39, 0x01}, + {0x8230cc30, 0x01}, + {0x8230cc31, 0x01}, + {0x8230cc32, 0x01}, + {0x8230cc33, 0x01}, + {0x8230cc34, 0x01}, + {0x8230cc35, 0x01}, + {0x8230cc36, 0x01}, + {0x8230cc37, 0x01}, + {0x8230cc38, 0x01}, + {0x8230cd30, 0x01}, + {0x8230cd31, 0x01}, + {0x8230cd32, 0x01}, + {0x8230cd33, 0x01}, + {0x8230cd34, 0x01}, + {0x8230cd35, 0x01}, + {0x8230cd36, 0x01}, + {0x8230cd37, 0x01}, + {0x8230cd38, 0x01}, + {0x8230cd39, 0x01}, + {0x8230ce30, 0x01}, + {0x8230ce31, 0x01}, + {0x8230ce32, 0x01}, + {0x8230ce33, 0x01}, + {0x8230ce34, 0x01}, + {0x8230ce35, 0x01}, + {0x8230ce37, 0x01}, + {0x8230ce38, 0x01}, + {0x8230ce39, 0x01}, + {0x8230cf30, 0x01}, + {0x8230cf31, 0x01}, + {0x8230cf32, 0x01}, + {0x8230cf33, 0x01}, + {0x8230cf34, 0x01}, + {0x8230cf35, 0x01}, + {0x8230cf36, 0x01}, + {0x8230cf37, 0x01}, + {0x8230cf38, 0x01}, + {0x8230cf39, 0x01}, + {0x8230d030, 0x01}, + {0x8230d031, 0x01}, + {0x8230d032, 0x01}, + {0x8230d033, 0x01}, + {0x8230d034, 0x01}, + {0x8230d035, 0x01}, + {0x8230d036, 0x01}, + {0x8230d037, 0x01}, + {0x8230d038, 0x01}, + {0x8230d039, 0x01}, + {0x8230d130, 0x01}, + {0x8230d131, 0x01}, + {0x8230d132, 0x01}, + {0x8230d133, 0x01}, + {0x8230d134, 0x01}, + {0x8230d135, 0x01}, + {0x8230d136, 0x01}, + {0x8230d137, 0x01}, + {0x8230d138, 0x01}, + {0x8230d139, 0x01}, + {0x8230d230, 0x01}, + {0x8230d231, 0x01}, + {0x8230d232, 0x01}, + {0x8230d233, 0x01}, + {0x8230d234, 0x01}, + {0x8230d236, 0x01}, + {0x8230d237, 0x01}, + {0x8230d238, 0x01}, + {0x8230d239, 0x01}, + {0x8230d330, 0x01}, + {0x8230d331, 0x01}, + {0x8230d332, 0x01}, + {0x8230d333, 0x01}, + {0x8230d334, 0x01}, + {0x8230d335, 0x01}, + {0x8230d336, 0x01}, + {0x8230d338, 0x01}, + {0x8230d430, 0x01}, + {0x8230d431, 0x01}, + {0x8230d432, 0x01}, + {0x8230d433, 0x01}, + {0x8230d434, 0x01}, + {0x8230d435, 0x01}, + {0x8230d436, 0x01}, + {0x8230d437, 0x01}, + {0x8230d438, 0x01}, + {0x8230d439, 0x01}, + {0x8230d530, 0x01}, + {0x8230d531, 0x01}, + {0x8230d532, 0x01}, + {0x8230d533, 0x01}, + {0x8230d534, 0x01}, + {0x8230d535, 0x01}, + {0x8230d536, 0x01}, + {0x8230d537, 0x01}, + {0x8230d538, 0x01}, + {0x8230d539, 0x01}, + {0x8230d630, 0x01}, + {0x8230d631, 0x01}, + {0x8230d632, 0x01}, + {0x8230d633, 0x01}, + {0x8230d634, 0x01}, + {0x8230d635, 0x01}, + {0x8230d636, 0x01}, + {0x8230d637, 0x01}, + {0x8230d638, 0x01}, + {0x8230d639, 0x01}, + {0x8230d730, 0x01}, + {0x8230d732, 0x01}, + {0x8230d733, 0x01}, + {0x8230d734, 0x01}, + {0x8230d735, 0x01}, + {0x8230d736, 0x01}, + {0x8230d737, 0x01}, + {0x8230d738, 0x01}, + {0x8230d739, 0x01}, + {0x8230d830, 0x01}, + {0x8230d831, 0x01}, + {0x8230d832, 0x01}, + {0x8230d833, 0x01}, + {0x8230d834, 0x01}, + {0x8230d835, 0x01}, + {0x8230d836, 0x01}, + {0x8230d837, 0x01}, + {0x8230d838, 0x01}, + {0x8230d839, 0x01}, + {0x8230d930, 0x01}, + {0x8230d931, 0x01}, + {0x8230d932, 0x01}, + {0x8230d933, 0x01}, + {0x8230d934, 0x01}, + {0x8230d935, 0x01}, + {0x8230d936, 0x01}, + {0x8230d937, 0x01}, + {0x8230d939, 0x01}, + {0x8230da30, 0x01}, + {0x8230da31, 0x01}, + {0x8230da32, 0x01}, + {0x8230da33, 0x01}, + {0x8230da35, 0x01}, + {0x8230da36, 0x01}, + {0x8230da37, 0x01}, + {0x8230da38, 0x01}, + {0x8230da39, 0x01}, + {0x8230db30, 0x01}, + {0x8230db33, 0x01}, + {0x8230db34, 0x01}, + {0x8230db35, 0x01}, + {0x8230db37, 0x01}, + {0x8230db38, 0x01}, + {0x8230dc30, 0x01}, + {0x8230dc31, 0x01}, + {0x8230dc32, 0x01}, + {0x8230dc33, 0x01}, + {0x8230dc34, 0x01}, + {0x8230dc35, 0x01}, + {0x8230dc36, 0x01}, + {0x8230dc37, 0x01}, + {0x8230dc38, 0x01}, + {0x8230dc39, 0x01}, + {0x8230dd30, 0x01}, + {0x8230dd31, 0x01}, + {0x8230dd32, 0x01}, + {0x8230dd33, 0x01}, + {0x8230dd34, 0x01}, + {0x8230dd35, 0x01}, + {0x8230dd36, 0x01}, + {0x8230dd37, 0x01}, + {0x8230dd38, 0x01}, + {0x8230dd39, 0x01}, + {0x8230de30, 0x01}, + {0x8230de31, 0x01}, + {0x8230de32, 0x01}, + {0x8230de33, 0x01}, + {0x8230de34, 0x01}, + {0x8230de36, 0x01}, + {0x8230de37, 0x01}, + {0x8230de38, 0x01}, + {0x8230de39, 0x01}, + {0x8230df30, 0x01}, + {0x8230df31, 0x01}, + {0x8230df32, 0x01}, + {0x8230df33, 0x01}, + {0x8230df34, 0x01}, + {0x8230df35, 0x01}, + {0x8230df36, 0x01}, + {0x8230df37, 0x01}, + {0x8230df38, 0x01}, + {0x8230df39, 0x01}, + {0x8230e030, 0x01}, + {0x8230e031, 0x01}, + {0x8230e032, 0x01}, + {0x8230e033, 0x01}, + {0x8230e034, 0x01}, + {0x8230e035, 0x01}, + {0x8230e036, 0x01}, + {0x8230e037, 0x01}, + {0x8230e039, 0x01}, + {0x8230e130, 0x01}, + {0x8230e131, 0x01}, + {0x8230e132, 0x01}, + {0x8230e133, 0x01}, + {0x8230e134, 0x01}, + {0x8230e135, 0x01}, + {0x8230e137, 0x01}, + {0x8230e138, 0x01}, + {0x8230e139, 0x01}, + {0x8230e230, 0x01}, + {0x8230e231, 0x01}, + {0x8230e232, 0x01}, + {0x8230e233, 0x01}, + {0x8230e234, 0x01}, + {0x8230e235, 0x01}, + {0x8230e236, 0x01}, + {0x8230e237, 0x01}, + {0x8230e238, 0x01}, + {0x8230e239, 0x01}, + {0x8230e330, 0x01}, + {0x8230e331, 0x01}, + {0x8230e332, 0x01}, + {0x8230e333, 0x01}, + {0x8230e334, 0x01}, + {0x8230e335, 0x01}, + {0x8230e336, 0x01}, + {0x8230e337, 0x01}, + {0x8230e338, 0x01}, + {0x8230e339, 0x01}, + {0x8230e430, 0x01}, + {0x8230e431, 0x01}, + {0x8230e432, 0x01}, + {0x8230e434, 0x01}, + {0x8230e435, 0x01}, + {0x8230e436, 0x01}, + {0x8230e437, 0x01}, + {0x8230e439, 0x01}, + {0x8230e530, 0x01}, + {0x8230e531, 0x01}, + {0x8230e532, 0x01}, + {0x8230e533, 0x01}, + {0x8230e534, 0x01}, + {0x8230e535, 0x01}, + {0x8230e536, 0x01}, + {0x8230e537, 0x01}, + {0x8230e538, 0x01}, + {0x8230e539, 0x01}, + {0x8230e630, 0x01}, + {0x8230e631, 0x01}, + {0x8230e632, 0x01}, + {0x8230e633, 0x01}, + {0x8230e634, 0x01}, + {0x8230e635, 0x01}, + {0x8230e636, 0x01}, + {0x8230e637, 0x01}, + {0x8230e638, 0x01}, + {0x8230e639, 0x01}, + {0x8230e730, 0x01}, + {0x8230e731, 0x01}, + {0x8230e732, 0x01}, + {0x8230e733, 0x01}, + {0x8230e734, 0x01}, + {0x8230e735, 0x01}, + {0x8230e736, 0x01}, + {0x8230e737, 0x01}, + {0x8230e738, 0x01}, + {0x8230e830, 0x01}, + {0x8230e831, 0x01}, + {0x8230e832, 0x01}, + {0x8230e833, 0x01}, + {0x8230e834, 0x01}, + {0x8230e836, 0x01}, + {0x8230e837, 0x01}, + {0x8230e838, 0x01}, + {0x8230e839, 0x01}, + {0x8230e930, 0x01}, + {0x8230e932, 0x01}, + {0x8230e934, 0x01}, + {0x8230e935, 0x01}, + {0x8230e936, 0x01}, + {0x8230e937, 0x01}, + {0x8230e938, 0x01}, + {0x8230ea30, 0x01}, + {0x8230ea31, 0x01}, + {0x8230ea32, 0x01}, + {0x8230ea33, 0x01}, + {0x8230ea34, 0x01}, + {0x8230ea35, 0x01}, + {0x8230ea36, 0x01}, + {0x8230ea37, 0x01}, + {0x8230ea38, 0x01}, + {0x8230ea39, 0x01}, + {0x8230eb31, 0x01}, + {0x8230eb32, 0x01}, + {0x8230eb33, 0x01}, + {0x8230eb34, 0x01}, + {0x8230eb35, 0x01}, + {0x8230eb36, 0x01}, + {0x8230eb37, 0x01}, + {0x8230eb38, 0x01}, + {0x8230eb39, 0x01}, + {0x8230ec30, 0x01}, + {0x8230ec34, 0x01}, + {0x8230ec35, 0x01}, + {0x8230ec36, 0x01}, + {0x8230ec37, 0x01}, + {0x8230ec38, 0x01}, + {0x8230ec39, 0x01}, + {0x8230ed30, 0x01}, + {0x8230ed31, 0x01}, + {0x8230ed32, 0x01}, + {0x8230ed34, 0x01}, + {0x8230ed35, 0x01}, + {0x8230ed36, 0x01}, + {0x8230ed37, 0x01}, + {0x8230ed38, 0x01}, + {0x8230ed39, 0x01}, + {0x8230ee32, 0x01}, + {0x8230ee33, 0x01}, + {0x8230ee34, 0x01}, + {0x8230ee35, 0x01}, + {0x8230ee37, 0x01}, + {0x8230ee38, 0x01}, + {0x8230ee39, 0x01}, + {0x8230ef30, 0x01}, + {0x8230ef33, 0x01}, + {0x8230ef34, 0x01}, + {0x8230ef35, 0x01}, + {0x8230ef38, 0x01}, + {0x8230ef39, 0x01}, + {0x8230f030, 0x01}, + {0x8230f031, 0x01}, + {0x8230f032, 0x01}, + {0x8230f033, 0x01}, + {0x8230f034, 0x01}, + {0x8230f035, 0x01}, + {0x8230f036, 0x01}, + {0x8230f037, 0x01}, + {0x8230f038, 0x01}, + {0x8230f039, 0x01}, + {0x8230f130, 0x01}, + {0x8230f131, 0x01}, + {0x8230f132, 0x01}, + {0x8230f133, 0x01}, + {0x8230f134, 0x01}, + {0x8230f135, 0x01}, + {0x8230f136, 0x01}, + {0x8230f137, 0x01}, + {0x8230f138, 0x01}, + {0x8230f139, 0x01}, + {0x8230f230, 0x01}, + {0x8230f231, 0x01}, + {0x8230f232, 0x01}, + {0x8230f233, 0x01}, + {0x8230f234, 0x01}, + {0x8230f235, 0x01}, + {0x8230f236, 0x01}, + {0x8230f238, 0x01}, + {0x8230f239, 0x01}, + {0x8230f330, 0x01}, + {0x8230f331, 0x01}, + {0x8230f332, 0x01}, + {0x8230f333, 0x01}, + {0x8230f334, 0x01}, + {0x8230f335, 0x01}, + {0x8230f336, 0x01}, + {0x8230f337, 0x01}, + {0x8230f338, 0x01}, + {0x8230f339, 0x01}, + {0x8230f430, 0x01}, + {0x8230f431, 0x01}, + {0x8230f432, 0x01}, + {0x8230f433, 0x01}, + {0x8230f434, 0x01}, + {0x8230f435, 0x01}, + {0x8230f436, 0x01}, + {0x8230f437, 0x01}, + {0x8230f438, 0x01}, + {0x8230f439, 0x01}, + {0x8230f530, 0x01}, + {0x8230f531, 0x01}, + {0x8230f532, 0x01}, + {0x8230f533, 0x01}, + {0x8230f534, 0x01}, + {0x8230f535, 0x01}, + {0x8230f536, 0x01}, + {0x8230f537, 0x01}, + {0x8230f538, 0x01}, + {0x8230f539, 0x01}, + {0x8230f630, 0x01}, + {0x8230f631, 0x01}, + {0x8230f632, 0x01}, + {0x8230f633, 0x01}, + {0x8230f634, 0x01}, + {0x8230f635, 0x01}, + {0x8230f636, 0x01}, + {0x8230f637, 0x01}, + {0x8230f638, 0x01}, + {0x8230f639, 0x01}, + {0x8230f730, 0x01}, + {0x8230f731, 0x01}, + {0x8230f732, 0x01}, + {0x8230f733, 0x01}, + {0x8230f734, 0x01}, + {0x8230f735, 0x01}, + {0x8230f736, 0x01}, + {0x8230f737, 0x01}, + {0x8230f738, 0x01}, + {0x8230f739, 0x01}, + {0x8230f830, 0x01}, + {0x8230f831, 0x01}, + {0x8230f832, 0x01}, + {0x8230f833, 0x01}, + {0x8230f834, 0x01}, + {0x8230f835, 0x01}, + {0x8230f836, 0x01}, + {0x8230f837, 0x01}, + {0x8230f838, 0x01}, + {0x8230f839, 0x01}, + {0x8230f933, 0x01}, + {0x8230f934, 0x01}, + {0x8230f935, 0x01}, + {0x8230f936, 0x01}, + {0x8230f937, 0x01}, + {0x8230f938, 0x01}, + {0x8230f939, 0x01}, + {0x8230fa30, 0x01}, + {0x8230fa31, 0x01}, + {0x8230fa32, 0x01}, + {0x8230fa33, 0x01}, + {0x8230fa34, 0x01}, + {0x8230fa35, 0x01}, + {0x8230fa36, 0x01}, + {0x8230fa37, 0x01}, + {0x8230fa38, 0x01}, + {0x8230fa39, 0x01}, + {0x8230fb30, 0x01}, + {0x8230fb31, 0x01}, + {0x8230fb32, 0x01}, + {0x8230fb33, 0x01}, + {0x8230fb34, 0x01}, + {0x8230fb35, 0x01}, + {0x8230fb36, 0x01}, + {0x8230fb37, 0x01}, + {0x8230fb38, 0x01}, + {0x8230fb39, 0x01}, + {0x8230fc30, 0x01}, + {0x8230fc31, 0x01}, + {0x8230fc32, 0x01}, + {0x8230fc33, 0x01}, + {0x8230fc34, 0x01}, + {0x8230fc36, 0x01}, + {0x8230fc37, 0x01}, + {0x8230fc38, 0x01}, + {0x8230fc39, 0x01}, + {0x8230fd30, 0x01}, + {0x8230fd31, 0x01}, + {0x8230fd32, 0x01}, + {0x8230fd33, 0x01}, + {0x8230fd34, 0x01}, + {0x8230fd35, 0x01}, + {0x8230fd36, 0x01}, + {0x8230fd37, 0x01}, + {0x8230fd38, 0x01}, + {0x8230fd39, 0x01}, + {0x8230fe30, 0x01}, + {0x8230fe31, 0x01}, + {0x8230fe32, 0x01}, + {0x8230fe33, 0x01}, + {0x8230fe34, 0x01}, + {0x8230fe35, 0x01}, + {0x8230fe36, 0x01}, + {0x8230fe37, 0x01}, + {0x8230fe38, 0x01}, + {0x8230fe39, 0x01}, + {0x82318130, 0x01}, + {0x82318131, 0x01}, + {0x82318132, 0x01}, + {0x82318133, 0x01}, + {0x82318134, 0x01}, + {0x82318136, 0x01}, + {0x82318137, 0x01}, + {0x82318138, 0x01}, + {0x82318139, 0x01}, + {0x82318230, 0x01}, + {0x82318231, 0x01}, + {0x82318233, 0x01}, + {0x82318234, 0x01}, + {0x82318235, 0x01}, + {0x82318236, 0x01}, + {0x82318237, 0x01}, + {0x82318238, 0x01}, + {0x82318239, 0x01}, + {0x82318330, 0x01}, + {0x82318331, 0x01}, + {0x82318332, 0x01}, + {0x82318333, 0x01}, + {0x82318334, 0x01}, + {0x82318335, 0x01}, + {0x82318337, 0x01}, + {0x82318338, 0x01}, + {0x82318339, 0x01}, + {0x82318430, 0x01}, + {0x82318431, 0x01}, + {0x82318432, 0x01}, + {0x82318433, 0x01}, + {0x82318434, 0x01}, + {0x82318435, 0x01}, + {0x82318436, 0x01}, + {0x82318437, 0x01}, + {0x82318438, 0x01}, + {0x82318439, 0x01}, + {0x82318530, 0x01}, + {0x82318531, 0x01}, + {0x82318532, 0x01}, + {0x82318533, 0x01}, + {0x82318534, 0x01}, + {0x82318535, 0x01}, + {0x82318536, 0x01}, + {0x82318537, 0x01}, + {0x82318538, 0x01}, + {0x82318539, 0x01}, + {0x82318630, 0x01}, + {0x82318631, 0x01}, + {0x82318632, 0x01}, + {0x82318633, 0x01}, + {0x82318634, 0x01}, + {0x82318635, 0x01}, + {0x82318636, 0x01}, + {0x82318637, 0x01}, + {0x82318638, 0x01}, + {0x82318639, 0x01}, + {0x82318730, 0x01}, + {0x82318731, 0x01}, + {0x82318732, 0x01}, + {0x82318733, 0x01}, + {0x82318734, 0x01}, + {0x82318735, 0x01}, + {0x82318736, 0x01}, + {0x82318737, 0x01}, + {0x82318738, 0x01}, + {0x82318739, 0x01}, + {0x82318831, 0x01}, + {0x82318832, 0x01}, + {0x82318834, 0x01}, + {0x82318835, 0x01}, + {0x82318836, 0x01}, + {0x82318837, 0x01}, + {0x82318838, 0x01}, + {0x82318839, 0x01}, + {0x82318930, 0x01}, + {0x82318931, 0x01}, + {0x82318932, 0x01}, + {0x82318933, 0x01}, + {0x82318934, 0x01}, + {0x82318935, 0x01}, + {0x82318936, 0x01}, + {0x82318937, 0x01}, + {0x82318938, 0x01}, + {0x82318939, 0x01}, + {0x82318a30, 0x01}, + {0x82318a31, 0x01}, + {0x82318a32, 0x01}, + {0x82318a33, 0x01}, + {0x82318a34, 0x01}, + {0x82318a35, 0x01}, + {0x82318a36, 0x01}, + {0x82318a37, 0x01}, + {0x82318a38, 0x01}, + {0x82318a39, 0x01}, + {0x82318b30, 0x01}, + {0x82318b31, 0x01}, + {0x82318b32, 0x01}, + {0x82318b33, 0x01}, + {0x82318b34, 0x01}, + {0x82318b35, 0x01}, + {0x82318b36, 0x01}, + {0x82318b37, 0x01}, + {0x82318b38, 0x01}, + {0x82318b39, 0x01}, + {0x82318c30, 0x01}, + {0x82318c31, 0x01}, + {0x82318c32, 0x01}, + {0x82318c33, 0x01}, + {0x82318c34, 0x01}, + {0x82318c35, 0x01}, + {0x82318c36, 0x01}, + {0x82318c37, 0x01}, + {0x82318c38, 0x01}, + {0x82318c39, 0x01}, + {0x82318d30, 0x01}, + {0x82318d31, 0x01}, + {0x82318d32, 0x01}, + {0x82318d33, 0x01}, + {0x82318d34, 0x01}, + {0x82318d35, 0x01}, + {0x82318d36, 0x01}, + {0x82318d37, 0x01}, + {0x82318d38, 0x01}, + {0x82318d39, 0x01}, + {0x82318e30, 0x01}, + {0x82318e31, 0x01}, + {0x82318e32, 0x01}, + {0x82318e33, 0x01}, + {0x82318e34, 0x01}, + {0x82318e35, 0x01}, + {0x82318e36, 0x01}, + {0x82318e37, 0x01}, + {0x82318e38, 0x01}, + {0x82318e39, 0x01}, + {0x82318f30, 0x01}, + {0x82318f31, 0x01}, + {0x82318f32, 0x01}, + {0x82318f33, 0x01}, + {0x82318f34, 0x01}, + {0x82318f35, 0x01}, + {0x82318f36, 0x01}, + {0x82318f37, 0x01}, + {0x82318f38, 0x01}, + {0x82318f39, 0x01}, + {0x82319030, 0x01}, + {0x82319031, 0x01}, + {0x82319032, 0x01}, + {0x82319033, 0x01}, + {0x82319034, 0x01}, + {0x82319035, 0x01}, + {0x82319036, 0x01}, + {0x82319037, 0x01}, + {0x82319038, 0x01}, + {0x82319039, 0x01}, + {0x82319130, 0x01}, + {0x82319131, 0x01}, + {0x82319132, 0x01}, + {0x82319133, 0x01}, + {0x82319134, 0x01}, + {0x82319135, 0x01}, + {0x82319136, 0x01}, + {0x82319137, 0x01}, + {0x82319138, 0x01}, + {0x82319139, 0x01}, + {0x82319230, 0x01}, + {0x82319232, 0x01}, + {0x82319233, 0x01}, + {0x82319234, 0x01}, + {0x82319235, 0x01}, + {0x82319236, 0x01}, + {0x82319237, 0x01}, + {0x82319238, 0x01}, + {0x82319239, 0x01}, + {0x82319330, 0x01}, + {0x82319331, 0x01}, + {0x82319332, 0x01}, + {0x82319333, 0x01}, + {0x82319334, 0x01}, + {0x82319335, 0x01}, + {0x82319337, 0x01}, + {0x82319338, 0x01}, + {0x82319339, 0x01}, + {0x82319430, 0x01}, + {0x82319431, 0x01}, + {0x82319432, 0x01}, + {0x82319433, 0x01}, + {0x82319434, 0x01}, + {0x82319435, 0x01}, + {0x82319436, 0x01}, + {0x82319437, 0x01}, + {0x82319438, 0x01}, + {0x82319439, 0x01}, + {0x82319530, 0x01}, + {0x82319531, 0x01}, + {0x82319532, 0x01}, + {0x82319533, 0x01}, + {0x82319534, 0x01}, + {0x82319535, 0x01}, + {0x82319536, 0x01}, + {0x82319537, 0x01}, + {0x82319538, 0x01}, + {0x82319539, 0x01}, + {0x82319630, 0x01}, + {0x82319631, 0x01}, + {0x82319632, 0x01}, + {0x82319633, 0x01}, + {0x82319634, 0x01}, + {0x82319635, 0x01}, + {0x82319636, 0x01}, + {0x82319637, 0x01}, + {0x82319638, 0x01}, + {0x82319639, 0x01}, + {0x82319730, 0x01}, + {0x82319731, 0x01}, + {0x82319732, 0x01}, + {0x82319733, 0x01}, + {0x82319734, 0x01}, + {0x82319735, 0x01}, + {0x82319736, 0x01}, + {0x82319737, 0x01}, + {0x82319738, 0x01}, + {0x82319739, 0x01}, + {0x82319830, 0x01}, + {0x82319831, 0x01}, + {0x82319832, 0x01}, + {0x82319833, 0x01}, + {0x82319834, 0x01}, + {0x82319835, 0x01}, + {0x82319836, 0x01}, + {0x82319837, 0x01}, + {0x82319838, 0x01}, + {0x82319839, 0x01}, + {0x82319930, 0x01}, + {0x82319931, 0x01}, + {0x82319932, 0x01}, + {0x82319933, 0x01}, + {0x82319934, 0x01}, + {0x82319935, 0x01}, + {0x82319936, 0x01}, + {0x82319937, 0x01}, + {0x82319938, 0x01}, + {0x82319939, 0x01}, + {0x82319a30, 0x01}, + {0x82319a31, 0x01}, + {0x82319a32, 0x01}, + {0x82319a33, 0x01}, + {0x82319a34, 0x01}, + {0x82319a35, 0x01}, + {0x82319a37, 0x01}, + {0x82319a38, 0x01}, + {0x82319a39, 0x01}, + {0x82319b30, 0x01}, + {0x82319b31, 0x01}, + {0x82319b32, 0x01}, + {0x82319b33, 0x01}, + {0x82319b34, 0x01}, + {0x82319b35, 0x01}, + {0x82319b36, 0x01}, + {0x82319b37, 0x01}, + {0x82319b38, 0x01}, + {0x82319b39, 0x01}, + {0x82319c30, 0x01}, + {0x82319c31, 0x01}, + {0x82319c32, 0x01}, + {0x82319c33, 0x01}, + {0x82319c34, 0x01}, + {0x82319c35, 0x01}, + {0x82319c36, 0x01}, + {0x82319c37, 0x01}, + {0x82319c38, 0x01}, + {0x82319c39, 0x01}, + {0x82319d30, 0x01}, + {0x82319d31, 0x01}, + {0x82319d34, 0x01}, + {0x82319d35, 0x01}, + {0x82319d36, 0x01}, + {0x82319d37, 0x01}, + {0x82319d38, 0x01}, + {0x82319d39, 0x01}, + {0x82319e30, 0x01}, + {0x82319e31, 0x01}, + {0x82319e32, 0x01}, + {0x82319e33, 0x01}, + {0x82319e34, 0x01}, + {0x82319e35, 0x01}, + {0x82319e36, 0x01}, + {0x82319e37, 0x01}, + {0x82319e38, 0x01}, + {0x82319e39, 0x01}, + {0x82319f30, 0x01}, + {0x82319f31, 0x01}, + {0x82319f35, 0x01}, + {0x82319f36, 0x01}, + {0x82319f37, 0x01}, + {0x82319f39, 0x01}, + {0x8231a030, 0x01}, + {0x8231a031, 0x01}, + {0x8231a032, 0x01}, + {0x8231a033, 0x01}, + {0x8231a034, 0x01}, + {0x8231a035, 0x01}, + {0x8231a036, 0x01}, + {0x8231a037, 0x01}, + {0x8231a038, 0x01}, + {0x8231a039, 0x01}, + {0x8231a130, 0x01}, + {0x8231a131, 0x01}, + {0x8231a132, 0x01}, + {0x8231a133, 0x01}, + {0x8231a134, 0x01}, + {0x8231a135, 0x01}, + {0x8231a136, 0x01}, + {0x8231a137, 0x01}, + {0x8231a139, 0x01}, + {0x8231a230, 0x01}, + {0x8231a232, 0x01}, + {0x8231a233, 0x01}, + {0x8231a234, 0x01}, + {0x8231a235, 0x01}, + {0x8231a236, 0x01}, + {0x8231a237, 0x01}, + {0x8231a238, 0x01}, + {0x8231a239, 0x01}, + {0x8231a330, 0x01}, + {0x8231a333, 0x01}, + {0x8231a334, 0x01}, + {0x8231a335, 0x01}, + {0x8231a336, 0x01}, + {0x8231a337, 0x01}, + {0x8231a338, 0x01}, + {0x8231a339, 0x01}, + {0x8231a430, 0x01}, + {0x8231a431, 0x01}, + {0x8231a432, 0x01}, + {0x8231a433, 0x01}, + {0x8231a434, 0x01}, + {0x8231a435, 0x01}, + {0x8231a436, 0x01}, + {0x8231a437, 0x01}, + {0x8231a531, 0x01}, + {0x8231a532, 0x01}, + {0x8231a533, 0x01}, + {0x8231a534, 0x01}, + {0x8231a535, 0x01}, + {0x8231a536, 0x01}, + {0x8231a537, 0x01}, + {0x8231a538, 0x01}, + {0x8231a539, 0x01}, + {0x8231a630, 0x01}, + {0x8231a631, 0x01}, + {0x8231a632, 0x01}, + {0x8231a633, 0x01}, + {0x8231a634, 0x01}, + {0x8231a635, 0x01}, + {0x8231a636, 0x01}, + {0x8231a637, 0x01}, + {0x8231a638, 0x01}, + {0x8231a639, 0x01}, + {0x8231a730, 0x01}, + {0x8231a731, 0x01}, + {0x8231a733, 0x01}, + {0x8231a734, 0x01}, + {0x8231a735, 0x01}, + {0x8231a736, 0x01}, + {0x8231a737, 0x01}, + {0x8231a738, 0x01}, + {0x8231a739, 0x01}, + {0x8231a830, 0x01}, + {0x8231a831, 0x01}, + {0x8231a832, 0x01}, + {0x8231a833, 0x01}, + {0x8231a834, 0x01}, + {0x8231a835, 0x01}, + {0x8231a836, 0x01}, + {0x8231a837, 0x01}, + {0x8231a838, 0x01}, + {0x8231a931, 0x01}, + {0x8231a932, 0x01}, + {0x8231a933, 0x01}, + {0x8231a934, 0x01}, + {0x8231a935, 0x01}, + {0x8231a936, 0x01}, + {0x8231a937, 0x01}, + {0x8231a938, 0x01}, + {0x8231a939, 0x01}, + {0x8231aa30, 0x01}, + {0x8231aa31, 0x01}, + {0x8231aa32, 0x01}, + {0x8231aa33, 0x01}, + {0x8231aa34, 0x01}, + {0x8231aa35, 0x01}, + {0x8231aa36, 0x01}, + {0x8231aa37, 0x01}, + {0x8231aa38, 0x01}, + {0x8231aa39, 0x01}, + {0x8231ab30, 0x01}, + {0x8231ab33, 0x01}, + {0x8231ab35, 0x01}, + {0x8231ab36, 0x01}, + {0x8231ab37, 0x01}, + {0x8231ab38, 0x01}, + {0x8231ac31, 0x01}, + {0x8231ac32, 0x01}, + {0x8231ac33, 0x01}, + {0x8231ac34, 0x01}, + {0x8231ac35, 0x01}, + {0x8231ac36, 0x01}, + {0x8231ac37, 0x01}, + {0x8231ac38, 0x01}, + {0x8231ad30, 0x01}, + {0x8231ad31, 0x01}, + {0x8231ad32, 0x01}, + {0x8231ad33, 0x01}, + {0x8231ad34, 0x01}, + {0x8231ad37, 0x01}, + {0x8231ad38, 0x01}, + {0x8231ad39, 0x01}, + {0x8231ae30, 0x01}, + {0x8231ae31, 0x01}, + {0x8231ae32, 0x01}, + {0x8231ae33, 0x01}, + {0x8231ae34, 0x01}, + {0x8231ae35, 0x01}, + {0x8231ae36, 0x01}, + {0x8231ae37, 0x01}, + {0x8231ae39, 0x01}, + {0x8231af31, 0x01}, + {0x8231af33, 0x01}, + {0x8231af34, 0x01}, + {0x8231af35, 0x01}, + {0x8231af36, 0x01}, + {0x8231af37, 0x01}, + {0x8231af38, 0x01}, + {0x8231af39, 0x01}, + {0x8231b030, 0x01}, + {0x8231b031, 0x01}, + {0x8231b032, 0x01}, + {0x8231b033, 0x01}, + {0x8231b035, 0x01}, + {0x8231b037, 0x01}, + {0x8231b039, 0x01}, + {0x8231b130, 0x01}, + {0x8231b131, 0x01}, + {0x8231b132, 0x01}, + {0x8231b133, 0x01}, + {0x8231b134, 0x01}, + {0x8231b135, 0x01}, + {0x8231b136, 0x01}, + {0x8231b137, 0x01}, + {0x8231b138, 0x01}, + {0x8231b139, 0x01}, + {0x8231b230, 0x01}, + {0x8231b231, 0x01}, + {0x8231b232, 0x01}, + {0x8231b233, 0x01}, + {0x8231b234, 0x01}, + {0x8231b235, 0x01}, + {0x8231b238, 0x01}, + {0x8231b239, 0x01}, + {0x8231b330, 0x01}, + {0x8231b331, 0x01}, + {0x8231b332, 0x01}, + {0x8231b333, 0x01}, + {0x8231b334, 0x01}, + {0x8231b335, 0x01}, + {0x8231b336, 0x01}, + {0x8231b337, 0x01}, + {0x8231b338, 0x01}, + {0x8231b339, 0x01}, + {0x8231b430, 0x01}, + {0x8231b431, 0x01}, + {0x8231b432, 0x01}, + {0x8231b433, 0x01}, + {0x8231b434, 0x01}, + {0x8231b435, 0x01}, + {0x8231b436, 0x01}, + {0x8231b437, 0x01}, + {0x8231b438, 0x01}, + {0x8231b530, 0x01}, + {0x8231b531, 0x01}, + {0x8231b532, 0x01}, + {0x8231b533, 0x01}, + {0x8231b534, 0x01}, + {0x8231b535, 0x01}, + {0x8231b536, 0x01}, + {0x8231b537, 0x01}, + {0x8231b538, 0x01}, + {0x8231b539, 0x01}, + {0x8231b630, 0x01}, + {0x8231b631, 0x01}, + {0x8231b632, 0x01}, + {0x8231b633, 0x01}, + {0x8231b634, 0x01}, + {0x8231b635, 0x01}, + {0x8231b636, 0x01}, + {0x8231b637, 0x01}, + {0x8231b638, 0x01}, + {0x8231b639, 0x01}, + {0x8231b730, 0x01}, + {0x8231b731, 0x01}, + {0x8231b732, 0x01}, + {0x8231b733, 0x01}, + {0x8231b734, 0x01}, + {0x8231b735, 0x01}, + {0x8231b736, 0x01}, + {0x8231b739, 0x01}, + {0x8231b830, 0x01}, + {0x8231b831, 0x01}, + {0x8231b832, 0x01}, + {0x8231b833, 0x01}, + {0x8231b834, 0x01}, + {0x8231b835, 0x01}, + {0x8231b836, 0x01}, + {0x8231b837, 0x01}, + {0x8231b838, 0x01}, + {0x8231b839, 0x01}, + {0x8231b930, 0x01}, + {0x8231b931, 0x01}, + {0x8231b932, 0x01}, + {0x8231b933, 0x01}, + {0x8231b934, 0x01}, + {0x8231b935, 0x01}, + {0x8231b936, 0x01}, + {0x8231b937, 0x01}, + {0x8231ba30, 0x01}, + {0x8231ba31, 0x01}, + {0x8231ba32, 0x01}, + {0x8231ba33, 0x01}, + {0x8231ba34, 0x01}, + {0x8231ba35, 0x01}, + {0x8231ba36, 0x01}, + {0x8231ba37, 0x01}, + {0x8231ba38, 0x01}, + {0x8231ba39, 0x01}, + {0x8231bb30, 0x01}, + {0x8231bb31, 0x01}, + {0x8231bb32, 0x01}, + {0x8231bb33, 0x01}, + {0x8231bb34, 0x01}, + {0x8231bb35, 0x01}, + {0x8231bb36, 0x01}, + {0x8231bb37, 0x01}, + {0x8231bb38, 0x01}, + {0x8231bb39, 0x01}, + {0x8231bc32, 0x01}, + {0x8231bc33, 0x01}, + {0x8231bc34, 0x01}, + {0x8231bc35, 0x01}, + {0x8231bc36, 0x01}, + {0x8231bc37, 0x01}, + {0x8231bc38, 0x01}, + {0x8231bc39, 0x01}, + {0x8231bd30, 0x01}, + {0x8231bd31, 0x01}, + {0x8231bd32, 0x01}, + {0x8231bd35, 0x01}, + {0x8231bd36, 0x01}, + {0x8231bd37, 0x01}, + {0x8231bd38, 0x01}, + {0x8231bd39, 0x01}, + {0x8231be30, 0x01}, + {0x8231be32, 0x01}, + {0x8231be33, 0x01}, + {0x8231be34, 0x01}, + {0x8231be35, 0x01}, + {0x8231be36, 0x01}, + {0x8231be37, 0x01}, + {0x8231be38, 0x01}, + {0x8231be39, 0x01}, + {0x8231bf30, 0x01}, + {0x8231bf31, 0x01}, + {0x8231bf32, 0x01}, + {0x8231bf33, 0x01}, + {0x8231bf34, 0x01}, + {0x8231bf35, 0x01}, + {0x8231bf36, 0x01}, + {0x8231bf37, 0x01}, + {0x8231bf38, 0x01}, + {0x8231bf39, 0x01}, + {0x8231c030, 0x01}, + {0x8231c031, 0x01}, + {0x8231c032, 0x01}, + {0x8231c033, 0x01}, + {0x8231c035, 0x01}, + {0x8231c036, 0x01}, + {0x8231c037, 0x01}, + {0x8231c038, 0x01}, + {0x8231c039, 0x01}, + {0x8231c130, 0x01}, + {0x8231c131, 0x01}, + {0x8231c132, 0x01}, + {0x8231c134, 0x01}, + {0x8231c135, 0x01}, + {0x8231c136, 0x01}, + {0x8231c137, 0x01}, + {0x8231c138, 0x01}, + {0x8231c139, 0x01}, + {0x8231c230, 0x01}, + {0x8231c231, 0x01}, + {0x8231c232, 0x01}, + {0x8231c233, 0x01}, + {0x8231c234, 0x01}, + {0x8231c235, 0x01}, + {0x8231c236, 0x01}, + {0x8231c237, 0x01}, + {0x8231c238, 0x01}, + {0x8231c239, 0x01}, + {0x8231c330, 0x01}, + {0x8231c331, 0x01}, + {0x8231c332, 0x01}, + {0x8231c333, 0x01}, + {0x8231c334, 0x01}, + {0x8231c335, 0x01}, + {0x8231c336, 0x01}, + {0x8231c337, 0x01}, + {0x8231c338, 0x01}, + {0x8231c339, 0x01}, + {0x8231c430, 0x01}, + {0x8231c432, 0x01}, + {0x8231c433, 0x01}, + {0x8231c434, 0x01}, + {0x8231c435, 0x01}, + {0x8231c436, 0x01}, + {0x8231c437, 0x01}, + {0x8231c438, 0x01}, + {0x8231c439, 0x01}, + {0x8231c530, 0x01}, + {0x8231c531, 0x01}, + {0x8231c532, 0x01}, + {0x8231c533, 0x01}, + {0x8231c534, 0x01}, + {0x8231c535, 0x01}, + {0x8231c536, 0x01}, + {0x8231c537, 0x01}, + {0x8231c538, 0x01}, + {0x8231c539, 0x01}, + {0x8231c630, 0x01}, + {0x8231c631, 0x01}, + {0x8231c632, 0x01}, + {0x8231c633, 0x01}, + {0x8231c634, 0x01}, + {0x8231c637, 0x01}, + {0x8231c639, 0x01}, + {0x8231c730, 0x01}, + {0x8231c731, 0x01}, + {0x8231c732, 0x01}, + {0x8231c733, 0x01}, + {0x8231c734, 0x01}, + {0x8231c735, 0x01}, + {0x8231c736, 0x01}, + {0x8231c737, 0x01}, + {0x8231c739, 0x01}, + {0x8231c830, 0x01}, + {0x8231c831, 0x01}, + {0x8231c832, 0x01}, + {0x8231c833, 0x01}, + {0x8231c834, 0x01}, + {0x8231c835, 0x01}, + {0x8231c836, 0x01}, + {0x8231c837, 0x01}, + {0x8231c838, 0x01}, + {0x8231c839, 0x01}, + {0x8231c930, 0x01}, + {0x8231c931, 0x01}, + {0x8231c932, 0x01}, + {0x8231c933, 0x01}, + {0x8231c934, 0x01}, + {0x8231c935, 0x01}, + {0x8231c936, 0x01}, + {0x8231c937, 0x01}, + {0x8231c938, 0x01}, + {0x8231c939, 0x01}, + {0x8231ca30, 0x01}, + {0x8231ca31, 0x01}, + {0x8231ca32, 0x01}, + {0x8231ca34, 0x01}, + {0x8231ca35, 0x01}, + {0x8231ca36, 0x01}, + {0x8231ca37, 0x01}, + {0x8231ca38, 0x01}, + {0x8231ca39, 0x01}, + {0x8231cb30, 0x01}, + {0x8231cb31, 0x01}, + {0x8231cb32, 0x01}, + {0x8231cb33, 0x01}, + {0x8231cb34, 0x01}, + {0x8231cb35, 0x01}, + {0x8231cb36, 0x01}, + {0x8231cb37, 0x01}, + {0x8231cb38, 0x01}, + {0x8231cb39, 0x01}, + {0x8231cc30, 0x01}, + {0x8231cc31, 0x01}, + {0x8231cc32, 0x01}, + {0x8231cc33, 0x01}, + {0x8231cc34, 0x01}, + {0x8231cc35, 0x01}, + {0x8231cc36, 0x01}, + {0x8231cc37, 0x01}, + {0x8231cd30, 0x01}, + {0x8231cd31, 0x01}, + {0x8231cd32, 0x01}, + {0x8231cd33, 0x01}, + {0x8231cd34, 0x01}, + {0x8231cd35, 0x01}, + {0x8231cd36, 0x01}, + {0x8231cd37, 0x01}, + {0x8231cd38, 0x01}, + {0x8231cd39, 0x01}, + {0x8231ce30, 0x01}, + {0x8231ce31, 0x01}, + {0x8231ce32, 0x01}, + {0x8231ce33, 0x01}, + {0x8231ce34, 0x01}, + {0x8231ce35, 0x01}, + {0x8231ce36, 0x01}, + {0x8231ce37, 0x01}, + {0x8231ce38, 0x01}, + {0x8231ce39, 0x01}, + {0x8231cf30, 0x01}, + {0x8231cf31, 0x01}, + {0x8231cf32, 0x01}, + {0x8231cf33, 0x01}, + {0x8231cf34, 0x01}, + {0x8231cf35, 0x01}, + {0x8231cf36, 0x01}, + {0x8231cf37, 0x01}, + {0x8231cf39, 0x01}, + {0x8231d030, 0x01}, + {0x8231d031, 0x01}, + {0x8231d032, 0x01}, + {0x8231d033, 0x01}, + {0x8231d034, 0x01}, + {0x8231d035, 0x01}, + {0x8231d036, 0x01}, + {0x8231d037, 0x01}, + {0x8231d038, 0x01}, + {0x8231d039, 0x01}, + {0x8231d130, 0x01}, + {0x8231d131, 0x01}, + {0x8231d132, 0x01}, + {0x8231d133, 0x01}, + {0x8231d134, 0x01}, + {0x8231d135, 0x01}, + {0x8231d136, 0x01}, + {0x8231d137, 0x01}, + {0x8231d138, 0x01}, + {0x8231d139, 0x01}, + {0x8231d230, 0x01}, + {0x8231d231, 0x01}, + {0x8231d232, 0x01}, + {0x8231d233, 0x01}, + {0x8231d234, 0x01}, + {0x8231d236, 0x01}, + {0x8231d237, 0x01}, + {0x8231d238, 0x01}, + {0x8231d239, 0x01}, + {0x8231d330, 0x01}, + {0x8231d331, 0x01}, + {0x8231d332, 0x01}, + {0x8231d333, 0x01}, + {0x8231d334, 0x01}, + {0x8231d335, 0x01}, + {0x8231d336, 0x01}, + {0x8231d337, 0x01}, + {0x8231d338, 0x01}, + {0x8231d339, 0x01}, + {0x8231d430, 0x01}, + {0x8231d431, 0x01}, + {0x8231d432, 0x01}, + {0x8231d433, 0x01}, + {0x8231d434, 0x01}, + {0x8231d435, 0x01}, + {0x8231d436, 0x01}, + {0x8231d438, 0x01}, + {0x8231d439, 0x01}, + {0x8231d531, 0x01}, + {0x8231d532, 0x01}, + {0x8231d533, 0x01}, + {0x8231d534, 0x01}, + {0x8231d535, 0x01}, + {0x8231d536, 0x01}, + {0x8231d537, 0x01}, + {0x8231d538, 0x01}, + {0x8231d539, 0x01}, + {0x8231d630, 0x01}, + {0x8231d631, 0x01}, + {0x8231d633, 0x01}, + {0x8231d636, 0x01}, + {0x8231d637, 0x01}, + {0x8231d638, 0x01}, + {0x8231d639, 0x01}, + {0x8231d730, 0x01}, + {0x8231d731, 0x01}, + {0x8231d732, 0x01}, + {0x8231d733, 0x01}, + {0x8231d734, 0x01}, + {0x8231d735, 0x01}, + {0x8231d736, 0x01}, + {0x8231d737, 0x01}, + {0x8231d738, 0x01}, + {0x8231d739, 0x01}, + {0x8231d830, 0x01}, + {0x8231d831, 0x01}, + {0x8231d832, 0x01}, + {0x8231d833, 0x01}, + {0x8231d834, 0x01}, + {0x8231d835, 0x01}, + {0x8231d836, 0x01}, + {0x8231d837, 0x01}, + {0x8231d838, 0x01}, + {0x8231d839, 0x01}, + {0x8231d930, 0x01}, + {0x8231d933, 0x01}, + {0x8231d934, 0x01}, + {0x8231d935, 0x01}, + {0x8231d936, 0x01}, + {0x8231d937, 0x01}, + {0x8231d938, 0x01}, + {0x8231d939, 0x01}, + {0x8231da30, 0x01}, + {0x8231da31, 0x01}, + {0x8231da32, 0x01}, + {0x8231da33, 0x01}, + {0x8231da34, 0x01}, + {0x8231da35, 0x01}, + {0x8231da36, 0x01}, + {0x8231da37, 0x01}, + {0x8231da38, 0x01}, + {0x8231da39, 0x01}, + {0x8231db31, 0x01}, + {0x8231db36, 0x01}, + {0x8231db37, 0x01}, + {0x8231db38, 0x01}, + {0x8231db39, 0x01}, + {0x8231dc30, 0x01}, + {0x8231dc31, 0x01}, + {0x8231dc32, 0x01}, + {0x8231dc33, 0x01}, + {0x8231dc34, 0x01}, + {0x8231dc35, 0x01}, + {0x8231dc36, 0x01}, + {0x8231dc37, 0x01}, + {0x8231dc38, 0x01}, + {0x8231dc39, 0x01}, + {0x8231dd30, 0x01}, + {0x8231dd31, 0x01}, + {0x8231dd32, 0x01}, + {0x8231dd33, 0x01}, + {0x8231dd34, 0x01}, + {0x8231dd35, 0x01}, + {0x8231dd36, 0x01}, + {0x8231dd39, 0x01}, + {0x8231de30, 0x01}, + {0x8231de31, 0x01}, + {0x8231de32, 0x01}, + {0x8231de33, 0x01}, + {0x8231de34, 0x01}, + {0x8231de35, 0x01}, + {0x8231de36, 0x01}, + {0x8231de37, 0x01}, + {0x8231de38, 0x01}, + {0x8231de39, 0x01}, + {0x8231df33, 0x01}, + {0x8231df34, 0x01}, + {0x8231df35, 0x01}, + {0x8231df36, 0x01}, + {0x8231df37, 0x01}, + {0x8231df38, 0x01}, + {0x8231df39, 0x01}, + {0x8231e030, 0x01}, + {0x8231e031, 0x01}, + {0x8231e032, 0x01}, + {0x8231e033, 0x01}, + {0x8231e034, 0x01}, + {0x8231e035, 0x01}, + {0x8231e036, 0x01}, + {0x8231e037, 0x01}, + {0x8231e038, 0x01}, + {0x8231e132, 0x01}, + {0x8231e133, 0x01}, + {0x8231e134, 0x01}, + {0x8231e135, 0x01}, + {0x8231e136, 0x01}, + {0x8231e137, 0x01}, + {0x8231e138, 0x01}, + {0x8231e139, 0x01}, + {0x8231e230, 0x01}, + {0x8231e231, 0x01}, + {0x8231e232, 0x01}, + {0x8231e233, 0x01}, + {0x8231e234, 0x01}, + {0x8231e235, 0x01}, + {0x8231e236, 0x01}, + {0x8231e237, 0x01}, + {0x8231e238, 0x01}, + {0x8231e239, 0x01}, + {0x8231e330, 0x01}, + {0x8231e331, 0x01}, + {0x8231e332, 0x01}, + {0x8231e333, 0x01}, + {0x8231e334, 0x01}, + {0x8231e335, 0x01}, + {0x8231e336, 0x01}, + {0x8231e337, 0x01}, + {0x8231e338, 0x01}, + {0x8231e339, 0x01}, + {0x8231e430, 0x01}, + {0x8231e431, 0x01}, + {0x8231e432, 0x01}, + {0x8231e434, 0x01}, + {0x8231e435, 0x01}, + {0x8231e436, 0x01}, + {0x8231e437, 0x01}, + {0x8231e438, 0x01}, + {0x8231e531, 0x01}, + {0x8231e532, 0x01}, + {0x8231e533, 0x01}, + {0x8231e534, 0x01}, + {0x8231e535, 0x01}, + {0x8231e536, 0x01}, + {0x8231e539, 0x01}, + {0x8231e630, 0x01}, + {0x8231e631, 0x01}, + {0x8231e632, 0x01}, + {0x8231e634, 0x01}, + {0x8231e635, 0x01}, + {0x8231e636, 0x01}, + {0x8231e637, 0x01}, + {0x8231e638, 0x01}, + {0x8231e639, 0x01}, + {0x8231e730, 0x01}, + {0x8231e731, 0x01}, + {0x8231e733, 0x01}, + {0x8231e734, 0x01}, + {0x8231e735, 0x01}, + {0x8231e737, 0x01}, + {0x8231e738, 0x01}, + {0x8231e739, 0x01}, + {0x8231e830, 0x01}, + {0x8231e832, 0x01}, + {0x8231e833, 0x01}, + {0x8231e834, 0x01}, + {0x8231e835, 0x01}, + {0x8231e836, 0x01}, + {0x8231e837, 0x01}, + {0x8231e839, 0x01}, + {0x8231e930, 0x01}, + {0x8231e931, 0x01}, + {0x8231e932, 0x01}, + {0x8231e933, 0x01}, + {0x8231e934, 0x01}, + {0x8231e935, 0x01}, + {0x8231e937, 0x01}, + {0x8231e938, 0x01}, + {0x8231e939, 0x01}, + {0x8231ea30, 0x01}, + {0x8231ea31, 0x01}, + {0x8231ea32, 0x01}, + {0x8231ea33, 0x01}, + {0x8231ea34, 0x01}, + {0x8231ea35, 0x01}, + {0x8231ea36, 0x01}, + {0x8231ea37, 0x01}, + {0x8231ea39, 0x01}, + {0x8231eb30, 0x01}, + {0x8231eb31, 0x01}, + {0x8231eb33, 0x01}, + {0x8231eb34, 0x01}, + {0x8231eb35, 0x01}, + {0x8231eb36, 0x01}, + {0x8231eb37, 0x01}, + {0x8231eb38, 0x01}, + {0x8231eb39, 0x01}, + {0x8231ec30, 0x01}, + {0x8231ec31, 0x01}, + {0x8231ec32, 0x01}, + {0x8231ec34, 0x01}, + {0x8231ec35, 0x01}, + {0x8231ec36, 0x01}, + {0x8231ec37, 0x01}, + {0x8231ec38, 0x01}, + {0x8231ec39, 0x01}, + {0x8231ed30, 0x01}, + {0x8231ed31, 0x01}, + {0x8231ed32, 0x01}, + {0x8231ed33, 0x01}, + {0x8231ed34, 0x01}, + {0x8231ed35, 0x01}, + {0x8231ed36, 0x01}, + {0x8231ee32, 0x01}, + {0x8231ee33, 0x01}, + {0x8231ee34, 0x01}, + {0x8231ee35, 0x01}, + {0x8231ee36, 0x01}, + {0x8231ee37, 0x01}, + {0x8231ee38, 0x01}, + {0x8231ee39, 0x01}, + {0x8231ef32, 0x01}, + {0x8231ef33, 0x01}, + {0x8231ef34, 0x01}, + {0x8231ef35, 0x01}, + {0x8231ef36, 0x01}, + {0x8231ef37, 0x01}, + {0x8231ef38, 0x01}, + {0x8231ef39, 0x01}, + {0x8231f032, 0x01}, + {0x8231f033, 0x01}, + {0x8231f034, 0x01}, + {0x8231f035, 0x01}, + {0x8231f036, 0x01}, + {0x8231f037, 0x01}, + {0x8231f038, 0x01}, + {0x8231f130, 0x01}, + {0x8231f133, 0x01}, + {0x8231f134, 0x01}, + {0x8231f135, 0x01}, + {0x8231f136, 0x01}, + {0x8231f137, 0x01}, + {0x8231f138, 0x01}, + {0x8231f139, 0x01}, + {0x8231f230, 0x01}, + {0x8231f231, 0x01}, + {0x8231f232, 0x01}, + {0x8231f233, 0x01}, + {0x8231f234, 0x01}, + {0x8231f235, 0x01}, + {0x8231f236, 0x01}, + {0x8231f237, 0x01}, + {0x8231f238, 0x01}, + {0x8231f239, 0x01}, + {0x8231f330, 0x01}, + {0x8231f331, 0x01}, + {0x8231f332, 0x01}, + {0x8231f333, 0x01}, + {0x8231f334, 0x01}, + {0x8231f336, 0x01}, + {0x8231f337, 0x01}, + {0x8231f338, 0x01}, + {0x8231f339, 0x01}, + {0x8231f430, 0x01}, + {0x8231f431, 0x01}, + {0x8231f432, 0x01}, + {0x8231f433, 0x01}, + {0x8231f434, 0x01}, + {0x8231f435, 0x01}, + {0x8231f436, 0x01}, + {0x8231f437, 0x01}, + {0x8231f438, 0x01}, + {0x8231f439, 0x01}, + {0x8231f530, 0x01}, + {0x8231f531, 0x01}, + {0x8231f532, 0x01}, + {0x8231f533, 0x01}, + {0x8231f534, 0x01}, + {0x8231f535, 0x01}, + {0x8231f536, 0x01}, + {0x8231f537, 0x01}, + {0x8231f538, 0x01}, + {0x8231f539, 0x01}, + {0x8231f630, 0x01}, + {0x8231f631, 0x01}, + {0x8231f632, 0x01}, + {0x8231f633, 0x01}, + {0x8231f634, 0x01}, + {0x8231f635, 0x01}, + {0x8231f636, 0x01}, + {0x8231f638, 0x01}, + {0x8231f639, 0x01}, + {0x8231f730, 0x01}, + {0x8231f731, 0x01}, + {0x8231f732, 0x01}, + {0x8231f733, 0x01}, + {0x8231f734, 0x01}, + {0x8231f735, 0x01}, + {0x8231f736, 0x01}, + {0x8231f737, 0x01}, + {0x8231f739, 0x01}, + {0x8231f830, 0x01}, + {0x8231f831, 0x01}, + {0x8231f832, 0x01}, + {0x8231f833, 0x01}, + {0x8231f834, 0x01}, + {0x8231f835, 0x01}, + {0x8231f836, 0x01}, + {0x8231f838, 0x01}, + {0x8231f839, 0x01}, + {0x8231f930, 0x01}, + {0x8231f931, 0x01}, + {0x8231f932, 0x01}, + {0x8231f933, 0x01}, + {0x8231f934, 0x01}, + {0x8231f935, 0x01}, + {0x8231f936, 0x01}, + {0x8231f937, 0x01}, + {0x8231f938, 0x01}, + {0x8231f939, 0x01}, + {0x8231fa30, 0x01}, + {0x8231fa31, 0x01}, + {0x8231fa32, 0x01}, + {0x8231fa33, 0x01}, + {0x8231fa34, 0x01}, + {0x8231fa35, 0x01}, + {0x8231fa36, 0x01}, + {0x8231fa37, 0x01}, + {0x8231fa38, 0x01}, + {0x8231fa39, 0x01}, + {0x8231fb30, 0x01}, + {0x8231fb31, 0x01}, + {0x8231fb32, 0x01}, + {0x8231fb33, 0x01}, + {0x8231fb34, 0x01}, + {0x8231fb35, 0x01}, + {0x8231fb36, 0x01}, + {0x8231fb37, 0x01}, + {0x8231fb38, 0x01}, + {0x8231fb39, 0x01}, + {0x8231fc31, 0x01}, + {0x8231fc32, 0x01}, + {0x8231fc33, 0x01}, + {0x8231fc34, 0x01}, + {0x8231fc35, 0x01}, + {0x8231fc36, 0x01}, + {0x8231fc38, 0x01}, + {0x8231fc39, 0x01}, + {0x8231fd30, 0x01}, + {0x8231fd31, 0x01}, + {0x8231fd32, 0x01}, + {0x8231fd33, 0x01}, + {0x8231fd34, 0x01}, + {0x8231fd35, 0x01}, + {0x8231fd36, 0x01}, + {0x8231fd37, 0x01}, + {0x8231fd38, 0x01}, + {0x8231fd39, 0x01}, + {0x8231fe30, 0x01}, + {0x8231fe31, 0x01}, + {0x8231fe32, 0x01}, + {0x8231fe33, 0x01}, + {0x8231fe34, 0x01}, + {0x8231fe35, 0x01}, + {0x8231fe36, 0x01}, + {0x8231fe37, 0x01}, + {0x8231fe38, 0x01}, + {0x82328130, 0x01}, + {0x82328131, 0x01}, + {0x82328132, 0x01}, + {0x82328133, 0x01}, + {0x82328134, 0x01}, + {0x82328135, 0x01}, + {0x82328136, 0x01}, + {0x82328137, 0x01}, + {0x82328138, 0x01}, + {0x82328139, 0x01}, + {0x82328230, 0x01}, + {0x82328231, 0x01}, + {0x82328232, 0x01}, + {0x82328233, 0x01}, + {0x82328234, 0x01}, + {0x82328235, 0x01}, + {0x82328236, 0x01}, + {0x82328237, 0x01}, + {0x82328239, 0x01}, + {0x82328330, 0x01}, + {0x82328331, 0x01}, + {0x82328332, 0x01}, + {0x82328333, 0x01}, + {0x82328334, 0x01}, + {0x82328335, 0x01}, + {0x82328336, 0x01}, + {0x82328337, 0x01}, + {0x82328338, 0x01}, + {0x82328339, 0x01}, + {0x82328430, 0x01}, + {0x82328431, 0x01}, + {0x82328432, 0x01}, + {0x82328433, 0x01}, + {0x82328434, 0x01}, + {0x82328435, 0x01}, + {0x82328436, 0x01}, + {0x82328437, 0x01}, + {0x82328438, 0x01}, + {0x82328439, 0x01}, + {0x82328531, 0x01}, + {0x82328532, 0x01}, + {0x82328533, 0x01}, + {0x82328534, 0x01}, + {0x82328535, 0x01}, + {0x82328536, 0x01}, + {0x82328538, 0x01}, + {0x82328539, 0x01}, + {0x82328630, 0x01}, + {0x82328631, 0x01}, + {0x82328634, 0x01}, + {0x82328636, 0x01}, + {0x82328637, 0x01}, + {0x82328638, 0x01}, + {0x82328639, 0x01}, + {0x82328730, 0x01}, + {0x82328731, 0x01}, + {0x82328732, 0x01}, + {0x82328733, 0x01}, + {0x82328735, 0x01}, + {0x82328736, 0x01}, + {0x82328737, 0x01}, + {0x82328738, 0x01}, + {0x82328739, 0x01}, + {0x82328830, 0x01}, + {0x82328831, 0x01}, + {0x82328834, 0x01}, + {0x82328835, 0x01}, + {0x82328836, 0x01}, + {0x82328837, 0x01}, + {0x82328838, 0x01}, + {0x82328839, 0x01}, + {0x82328930, 0x01}, + {0x82328934, 0x01}, + {0x82328936, 0x01}, + {0x82328937, 0x01}, + {0x82328938, 0x01}, + {0x82328939, 0x01}, + {0x82328a30, 0x01}, + {0x82328a36, 0x01}, + {0x82328a37, 0x01}, + {0x82328a38, 0x01}, + {0x82328a39, 0x01}, + {0x82328b30, 0x01}, + {0x82328b31, 0x01}, + {0x82328b32, 0x01}, + {0x82328b33, 0x01}, + {0x82328b34, 0x01}, + {0x82328b35, 0x01}, + {0x82328b36, 0x01}, + {0x82328b37, 0x01}, + {0x82328c30, 0x01}, + {0x82328c31, 0x01}, + {0x82328c32, 0x01}, + {0x82328c33, 0x01}, + {0x82328c34, 0x01}, + {0x82328c35, 0x01}, + {0x82328c38, 0x01}, + {0x82328c39, 0x01}, + {0x82328d30, 0x01}, + {0x82328d32, 0x01}, + {0x82328d33, 0x01}, + {0x82328d35, 0x01}, + {0x82328d38, 0x01}, + {0x82328d39, 0x01}, + {0x82328e30, 0x01}, + {0x82328e31, 0x01}, + {0x82328e32, 0x01}, + {0x82328e33, 0x01}, + {0x82328e34, 0x01}, + {0x82328e35, 0x01}, + {0x82328e36, 0x01}, + {0x82328e37, 0x01}, + {0x82328e38, 0x01}, + {0x82328e39, 0x01}, + {0x82328f30, 0x01}, + {0x82328f31, 0x01}, + {0x82328f32, 0x01}, + {0x82328f33, 0x01}, + {0x82328f34, 0x01}, + {0x82328f35, 0x01}, + {0x82328f36, 0x01}, + {0x82328f37, 0x01}, + {0x82328f38, 0x01}, + {0x82328f39, 0x01}, + {0x82329030, 0x01}, + {0x82329031, 0x01}, + {0x82329032, 0x01}, + {0x82329033, 0x01}, + {0x82329034, 0x01}, + {0x82329035, 0x01}, + {0x82329036, 0x01}, + {0x82329037, 0x01}, + {0x82329038, 0x01}, + {0x82329039, 0x01}, + {0x82329130, 0x01}, + {0x82329131, 0x01}, + {0x82329132, 0x01}, + {0x82329133, 0x01}, + {0x82329134, 0x01}, + {0x82329135, 0x01}, + {0x82329136, 0x01}, + {0x82329137, 0x01}, + {0x82329138, 0x01}, + {0x82329139, 0x01}, + {0x82329230, 0x01}, + {0x82329231, 0x01}, + {0x82329232, 0x01}, + {0x82329233, 0x01}, + {0x82329234, 0x01}, + {0x82329235, 0x01}, + {0x82329236, 0x01}, + {0x82329237, 0x01}, + {0x82329238, 0x01}, + {0x82329239, 0x01}, + {0x82329330, 0x01}, + {0x82329331, 0x01}, + {0x82329332, 0x01}, + {0x82329333, 0x01}, + {0x82329334, 0x01}, + {0x82329335, 0x01}, + {0x82329336, 0x01}, + {0x82329337, 0x01}, + {0x82329338, 0x01}, + {0x82329339, 0x01}, + {0x82329430, 0x01}, + {0x82329431, 0x01}, + {0x82329432, 0x01}, + {0x82329433, 0x01}, + {0x82329434, 0x01}, + {0x82329435, 0x01}, + {0x82329436, 0x01}, + {0x82329437, 0x01}, + {0x82329438, 0x01}, + {0x82329439, 0x01}, + {0x82329530, 0x01}, + {0x82329531, 0x01}, + {0x82329532, 0x01}, + {0x82329533, 0x01}, + {0x82329536, 0x01}, + {0x82329537, 0x01}, + {0x82329538, 0x01}, + {0x82329539, 0x01}, + {0x82329630, 0x01}, + {0x82329631, 0x01}, + {0x82329632, 0x01}, + {0x82329633, 0x01}, + {0x82329634, 0x01}, + {0x82329635, 0x01}, + {0x82329636, 0x01}, + {0x82329637, 0x01}, + {0x82329638, 0x01}, + {0x82329639, 0x01}, + {0x82329730, 0x01}, + {0x82329731, 0x01}, + {0x82329732, 0x01}, + {0x82329733, 0x01}, + {0x82329734, 0x01}, + {0x82329735, 0x01}, + {0x82329736, 0x01}, + {0x82329737, 0x01}, + {0x82329738, 0x01}, + {0x82329739, 0x01}, + {0x82329830, 0x01}, + {0x82329831, 0x01}, + {0x82329832, 0x01}, + {0x82329833, 0x01}, + {0x82329834, 0x01}, + {0x82329835, 0x01}, + {0x82329836, 0x01}, + {0x82329837, 0x01}, + {0x82329838, 0x01}, + {0x82329930, 0x01}, + {0x82329931, 0x01}, + {0x82329932, 0x01}, + {0x82329933, 0x01}, + {0x82329934, 0x01}, + {0x82329936, 0x01}, + {0x82329937, 0x01}, + {0x82329938, 0x01}, + {0x82329939, 0x01}, + {0x82329a30, 0x01}, + {0x82329a31, 0x01}, + {0x82329a32, 0x01}, + {0x82329a33, 0x01}, + {0x82329a34, 0x01}, + {0x82329a35, 0x01}, + {0x82329a36, 0x01}, + {0x82329a37, 0x01}, + {0x82329a38, 0x01}, + {0x82329a39, 0x01}, + {0x82329b30, 0x01}, + {0x82329b31, 0x01}, + {0x82329b32, 0x01}, + {0x82329b33, 0x01}, + {0x82329b34, 0x01}, + {0x82329b35, 0x01}, + {0x82329b36, 0x01}, + {0x82329b37, 0x01}, + {0x82329b38, 0x01}, + {0x82329b39, 0x01}, + {0x82329c30, 0x01}, + {0x82329c31, 0x01}, + {0x82329c32, 0x01}, + {0x82329c33, 0x01}, + {0x82329c34, 0x01}, + {0x82329c35, 0x01}, + {0x82329c36, 0x01}, + {0x82329c37, 0x01}, + {0x82329c38, 0x01}, + {0x82329c39, 0x01}, + {0x82329d30, 0x01}, + {0x82329d31, 0x01}, + {0x82329d32, 0x01}, + {0x82329d33, 0x01}, + {0x82329d34, 0x01}, + {0x82329d35, 0x01}, + {0x82329d36, 0x01}, + {0x82329d37, 0x01}, + {0x82329d38, 0x01}, + {0x82329d39, 0x01}, + {0x82329e30, 0x01}, + {0x82329e31, 0x01}, + {0x82329e32, 0x01}, + {0x82329e33, 0x01}, + {0x82329e34, 0x01}, + {0x82329e35, 0x01}, + {0x82329e36, 0x01}, + {0x82329e37, 0x01}, + {0x82329f31, 0x01}, + {0x82329f32, 0x01}, + {0x82329f33, 0x01}, + {0x82329f34, 0x01}, + {0x82329f35, 0x01}, + {0x82329f36, 0x01}, + {0x82329f37, 0x01}, + {0x82329f38, 0x01}, + {0x82329f39, 0x01}, + {0x8232a030, 0x01}, + {0x8232a031, 0x01}, + {0x8232a032, 0x01}, + {0x8232a033, 0x01}, + {0x8232a034, 0x01}, + {0x8232a035, 0x01}, + {0x8232a036, 0x01}, + {0x8232a037, 0x01}, + {0x8232a038, 0x01}, + {0x8232a039, 0x01}, + {0x8232a130, 0x01}, + {0x8232a131, 0x01}, + {0x8232a132, 0x01}, + {0x8232a133, 0x01}, + {0x8232a134, 0x01}, + {0x8232a135, 0x01}, + {0x8232a136, 0x01}, + {0x8232a137, 0x01}, + {0x8232a138, 0x01}, + {0x8232a230, 0x01}, + {0x8232a231, 0x01}, + {0x8232a232, 0x01}, + {0x8232a233, 0x01}, + {0x8232a234, 0x01}, + {0x8232a235, 0x01}, + {0x8232a236, 0x01}, + {0x8232a237, 0x01}, + {0x8232a238, 0x01}, + {0x8232a239, 0x01}, + {0x8232a330, 0x01}, + {0x8232a331, 0x01}, + {0x8232a332, 0x01}, + {0x8232a333, 0x01}, + {0x8232a334, 0x01}, + {0x8232a335, 0x01}, + {0x8232a336, 0x01}, + {0x8232a337, 0x01}, + {0x8232a338, 0x01}, + {0x8232a339, 0x01}, + {0x8232a430, 0x01}, + {0x8232a431, 0x01}, + {0x8232a432, 0x01}, + {0x8232a433, 0x01}, + {0x8232a434, 0x01}, + {0x8232a435, 0x01}, + {0x8232a436, 0x01}, + {0x8232a437, 0x01}, + {0x8232a438, 0x01}, + {0x8232a439, 0x01}, + {0x8232a530, 0x01}, + {0x8232a531, 0x01}, + {0x8232a532, 0x01}, + {0x8232a533, 0x01}, + {0x8232a534, 0x01}, + {0x8232a535, 0x01}, + {0x8232a536, 0x01}, + {0x8232a537, 0x01}, + {0x8232a538, 0x01}, + {0x8232a539, 0x01}, + {0x8232a630, 0x01}, + {0x8232a631, 0x01}, + {0x8232a632, 0x01}, + {0x8232a633, 0x01}, + {0x8232a634, 0x01}, + {0x8232a635, 0x01}, + {0x8232a636, 0x01}, + {0x8232a637, 0x01}, + {0x8232a638, 0x01}, + {0x8232a639, 0x01}, + {0x8232a730, 0x01}, + {0x8232a731, 0x01}, + {0x8232a732, 0x01}, + {0x8232a733, 0x01}, + {0x8232a734, 0x01}, + {0x8232a735, 0x01}, + {0x8232a736, 0x01}, + {0x8232a737, 0x01}, + {0x8232a738, 0x01}, + {0x8232a739, 0x01}, + {0x8232a830, 0x01}, + {0x8232a831, 0x01}, + {0x8232a832, 0x01}, + {0x8232a833, 0x01}, + {0x8232a834, 0x01}, + {0x8232a835, 0x01}, + {0x8232a836, 0x01}, + {0x8232a837, 0x01}, + {0x8232a838, 0x01}, + {0x8232a839, 0x01}, + {0x8232a930, 0x01}, + {0x8232a931, 0x01}, + {0x8232a932, 0x01}, + {0x8232a933, 0x01}, + {0x8232a934, 0x01}, + {0x8232a935, 0x01}, + {0x8232a937, 0x01}, + {0x8232a938, 0x01}, + {0x8232a939, 0x01}, + {0x8232aa30, 0x01}, + {0x8232aa31, 0x01}, + {0x8232aa32, 0x01}, + {0x8232aa33, 0x01}, + {0x8232aa34, 0x01}, + {0x8232aa35, 0x01}, + {0x8232aa36, 0x01}, + {0x8232aa37, 0x01}, + {0x8232aa38, 0x01}, + {0x8232aa39, 0x01}, + {0x8232ab30, 0x01}, + {0x8232ab31, 0x01}, + {0x8232ab32, 0x01}, + {0x8232ab33, 0x01}, + {0x8232ab34, 0x01}, + {0x8232ab35, 0x01}, + {0x8232ab36, 0x01}, + {0x8232ab37, 0x01}, + {0x8232ab38, 0x01}, + {0x8232ab39, 0x01}, + {0x8232ac30, 0x01}, + {0x8232ac31, 0x01}, + {0x8232ac32, 0x01}, + {0x8232ac33, 0x01}, + {0x8232ac34, 0x01}, + {0x8232ac35, 0x01}, + {0x8232ac36, 0x01}, + {0x8232ac37, 0x01}, + {0x8232ac38, 0x01}, + {0x8232ac39, 0x01}, + {0x8232ad30, 0x01}, + {0x8232ad31, 0x01}, + {0x8232ad32, 0x01}, + {0x8232ad33, 0x01}, + {0x8232ad34, 0x01}, + {0x8232ad35, 0x01}, + {0x8232ad36, 0x01}, + {0x8232ad37, 0x01}, + {0x8232ad38, 0x01}, + {0x8232ad39, 0x01}, + {0x8232ae30, 0x01}, + {0x8232ae31, 0x01}, + {0x8232ae32, 0x01}, + {0x8232ae33, 0x01}, + {0x8232ae34, 0x01}, + {0x8232ae35, 0x01}, + {0x8232ae36, 0x01}, + {0x8232ae37, 0x01}, + {0x8232ae38, 0x01}, + {0x8232ae39, 0x01}, + {0x8232af30, 0x01}, + {0x8232af31, 0x01}, + {0x8232af32, 0x01}, + {0x8232af33, 0x01}, + {0x8232af34, 0x01}, + {0x8232af35, 0x01}, + {0x8232af36, 0x01}, + {0x8232af37, 0x01}, + {0x8232af38, 0x01}, + {0x8232af39, 0x01}, + {0x8232b030, 0x01}, + {0x8232b031, 0x01}, + {0x8232b032, 0x01}, + {0x8232b033, 0x01}, + {0x8232b034, 0x01}, + {0x8232b035, 0x01}, + {0x8232b036, 0x01}, + {0x8232b037, 0x01}, + {0x8232b038, 0x01}, + {0x8232b039, 0x01}, + {0x8232b130, 0x01}, + {0x8232b131, 0x01}, + {0x8232b132, 0x01}, + {0x8232b133, 0x01}, + {0x8232b134, 0x01}, + {0x8232b135, 0x01}, + {0x8232b136, 0x01}, + {0x8232b137, 0x01}, + {0x8232b138, 0x01}, + {0x8232b139, 0x01}, + {0x8232b230, 0x01}, + {0x8232b231, 0x01}, + {0x8232b232, 0x01}, + {0x8232b233, 0x01}, + {0x8232b234, 0x01}, + {0x8232b235, 0x01}, + {0x8232b236, 0x01}, + {0x8232b237, 0x01}, + {0x8232b238, 0x01}, + {0x8232b239, 0x01}, + {0x8232b330, 0x01}, + {0x8232b331, 0x01}, + {0x8232b332, 0x01}, + {0x8232b333, 0x01}, + {0x8232b334, 0x01}, + {0x8232b335, 0x01}, + {0x8232b336, 0x01}, + {0x8232b337, 0x01}, + {0x8232b338, 0x01}, + {0x8232b339, 0x01}, + {0x8232b430, 0x01}, + {0x8232b431, 0x01}, + {0x8232b432, 0x01}, + {0x8232b433, 0x01}, + {0x8232b434, 0x01}, + {0x8232b436, 0x01}, + {0x8232b437, 0x01}, + {0x8232b438, 0x01}, + {0x8232b439, 0x01}, + {0x8232b530, 0x01}, + {0x8232b531, 0x01}, + {0x8232b532, 0x01}, + {0x8232b533, 0x01}, + {0x8232b534, 0x01}, + {0x8232b535, 0x01}, + {0x8232b536, 0x01}, + {0x8232b537, 0x01}, + {0x8232b538, 0x01}, + {0x8232b539, 0x01}, + {0x8232b630, 0x01}, + {0x8232b631, 0x01}, + {0x8232b632, 0x01}, + {0x8232b633, 0x01}, + {0x8232b634, 0x01}, + {0x8232b635, 0x01}, + {0x8232b636, 0x01}, + {0x8232b637, 0x01}, + {0x8232b638, 0x01}, + {0x8232b639, 0x01}, + {0x8232b730, 0x01}, + {0x8232b731, 0x01}, + {0x8232b732, 0x01}, + {0x8232b733, 0x01}, + {0x8232b735, 0x01}, + {0x8232b736, 0x01}, + {0x8232b737, 0x01}, + {0x8232b738, 0x01}, + {0x8232b739, 0x01}, + {0x8232b830, 0x01}, + {0x8232b831, 0x01}, + {0x8232b832, 0x01}, + {0x8232b833, 0x01}, + {0x8232b834, 0x01}, + {0x8232b835, 0x01}, + {0x8232b836, 0x01}, + {0x8232b837, 0x01}, + {0x8232b838, 0x01}, + {0x8232b839, 0x01}, + {0x8232b930, 0x01}, + {0x8232b931, 0x01}, + {0x8232b932, 0x01}, + {0x8232b933, 0x01}, + {0x8232b934, 0x01}, + {0x8232b935, 0x01}, + {0x8232b936, 0x01}, + {0x8232b937, 0x01}, + {0x8232b938, 0x01}, + {0x8232b939, 0x01}, + {0x8232ba30, 0x01}, + {0x8232ba33, 0x01}, + {0x8232ba34, 0x01}, + {0x8232ba35, 0x01}, + {0x8232ba36, 0x01}, + {0x8232ba37, 0x01}, + {0x8232ba38, 0x01}, + {0x8232ba39, 0x01}, + {0x8232bb30, 0x01}, + {0x8232bb31, 0x01}, + {0x8232bb32, 0x01}, + {0x8232bb33, 0x01}, + {0x8232bb35, 0x01}, + {0x8232bb36, 0x01}, + {0x8232bb37, 0x01}, + {0x8232bb38, 0x01}, + {0x8232bb39, 0x01}, + {0x8232bc30, 0x01}, + {0x8232bc31, 0x01}, + {0x8232bc32, 0x01}, + {0x8232bc33, 0x01}, + {0x8232bc34, 0x01}, + {0x8232bc35, 0x01}, + {0x8232bc36, 0x01}, + {0x8232bc37, 0x01}, + {0x8232bc38, 0x01}, + {0x8232bd30, 0x01}, + {0x8232bd31, 0x01}, + {0x8232bd32, 0x01}, + {0x8232bd33, 0x01}, + {0x8232bd34, 0x01}, + {0x8232bd35, 0x01}, + {0x8232bd36, 0x01}, + {0x8232bd37, 0x01}, + {0x8232bd39, 0x01}, + {0x8232be30, 0x01}, + {0x8232be31, 0x01}, + {0x8232be32, 0x01}, + {0x8232be33, 0x01}, + {0x8232be34, 0x01}, + {0x8232be36, 0x01}, + {0x8232be37, 0x01}, + {0x8232be38, 0x01}, + {0x8232be39, 0x01}, + {0x8232bf30, 0x01}, + {0x8232bf31, 0x01}, + {0x8232bf32, 0x01}, + {0x8232bf33, 0x01}, + {0x8232bf34, 0x01}, + {0x8232bf35, 0x01}, + {0x8232bf36, 0x01}, + {0x8232bf37, 0x01}, + {0x8232bf38, 0x01}, + {0x8232bf39, 0x01}, + {0x8232c030, 0x01}, + {0x8232c031, 0x01}, + {0x8232c032, 0x01}, + {0x8232c033, 0x01}, + {0x8232c034, 0x01}, + {0x8232c035, 0x01}, + {0x8232c036, 0x01}, + {0x8232c037, 0x01}, + {0x8232c038, 0x01}, + {0x8232c039, 0x01}, + {0x8232c130, 0x01}, + {0x8232c131, 0x01}, + {0x8232c133, 0x01}, + {0x8232c134, 0x01}, + {0x8232c135, 0x01}, + {0x8232c136, 0x01}, + {0x8232c137, 0x01}, + {0x8232c138, 0x01}, + {0x8232c139, 0x01}, + {0x8232c230, 0x01}, + {0x8232c231, 0x01}, + {0x8232c232, 0x01}, + {0x8232c233, 0x01}, + {0x8232c235, 0x01}, + {0x8232c236, 0x01}, + {0x8232c237, 0x01}, + {0x8232c238, 0x01}, + {0x8232c239, 0x01}, + {0x8232c330, 0x01}, + {0x8232c331, 0x01}, + {0x8232c333, 0x01}, + {0x8232c334, 0x01}, + {0x8232c335, 0x01}, + {0x8232c336, 0x01}, + {0x8232c338, 0x01}, + {0x8232c339, 0x01}, + {0x8232c430, 0x01}, + {0x8232c431, 0x01}, + {0x8232c432, 0x01}, + {0x8232c433, 0x01}, + {0x8232c434, 0x01}, + {0x8232c435, 0x01}, + {0x8232c436, 0x01}, + {0x8232c437, 0x01}, + {0x8232c438, 0x01}, + {0x8232c439, 0x01}, + {0x8232c530, 0x01}, + {0x8232c531, 0x01}, + {0x8232c532, 0x01}, + {0x8232c533, 0x01}, + {0x8232c536, 0x01}, + {0x8232c537, 0x01}, + {0x8232c538, 0x01}, + {0x8232c630, 0x01}, + {0x8232c631, 0x01}, + {0x8232c632, 0x01}, + {0x8232c633, 0x01}, + {0x8232c634, 0x01}, + {0x8232c635, 0x01}, + {0x8232c636, 0x01}, + {0x8232c637, 0x01}, + {0x8232c638, 0x01}, + {0x8232c639, 0x01}, + {0x8232c730, 0x01}, + {0x8232c731, 0x01}, + {0x8232c732, 0x01}, + {0x8232c733, 0x01}, + {0x8232c734, 0x01}, + {0x8232c735, 0x01}, + {0x8232c736, 0x01}, + {0x8232c737, 0x01}, + {0x8232c738, 0x01}, + {0x8232c739, 0x01}, + {0x8232c830, 0x01}, + {0x8232c831, 0x01}, + {0x8232c832, 0x01}, + {0x8232c833, 0x01}, + {0x8232c834, 0x01}, + {0x8232c835, 0x01}, + {0x8232c836, 0x01}, + {0x8232c837, 0x01}, + {0x8232c838, 0x01}, + {0x8232c839, 0x01}, + {0x8232c930, 0x01}, + {0x8232c931, 0x01}, + {0x8232c932, 0x01}, + {0x8232c933, 0x01}, + {0x8232c934, 0x01}, + {0x8232c935, 0x01}, + {0x8232c936, 0x01}, + {0x8232c937, 0x01}, + {0x8232c938, 0x01}, + {0x8232c939, 0x01}, + {0x8232ca30, 0x01}, + {0x8232ca31, 0x01}, + {0x8232ca32, 0x01}, + {0x8232ca33, 0x01}, + {0x8232ca34, 0x01}, + {0x8232ca35, 0x01}, + {0x8232ca36, 0x01}, + {0x8232ca39, 0x01}, + {0x8232cb30, 0x01}, + {0x8232cb31, 0x01}, + {0x8232cb32, 0x01}, + {0x8232cb33, 0x01}, + {0x8232cb34, 0x01}, + {0x8232cb35, 0x01}, + {0x8232cb36, 0x01}, + {0x8232cb37, 0x01}, + {0x8232cb38, 0x01}, + {0x8232cb39, 0x01}, + {0x8232cc30, 0x01}, + {0x8232cc31, 0x01}, + {0x8232cc32, 0x01}, + {0x8232cc33, 0x01}, + {0x8232cc34, 0x01}, + {0x8232cc35, 0x01}, + {0x8232cc36, 0x01}, + {0x8232cc37, 0x01}, + {0x8232cc38, 0x01}, + {0x8232cc39, 0x01}, + {0x8232cd30, 0x01}, + {0x8232cd31, 0x01}, + {0x8232cd32, 0x01}, + {0x8232cd33, 0x01}, + {0x8232cd34, 0x01}, + {0x8232cd37, 0x01}, + {0x8232cd38, 0x01}, + {0x8232cd39, 0x01}, + {0x8232ce32, 0x01}, + {0x8232ce33, 0x01}, + {0x8232ce34, 0x01}, + {0x8232ce35, 0x01}, + {0x8232ce36, 0x01}, + {0x8232ce37, 0x01}, + {0x8232ce38, 0x01}, + {0x8232ce39, 0x01}, + {0x8232cf30, 0x01}, + {0x8232cf31, 0x01}, + {0x8232cf32, 0x01}, + {0x8232cf33, 0x01}, + {0x8232cf34, 0x01}, + {0x8232cf35, 0x01}, + {0x8232cf36, 0x01}, + {0x8232cf37, 0x01}, + {0x8232cf38, 0x01}, + {0x8232cf39, 0x01}, + {0x8232d030, 0x01}, + {0x8232d031, 0x01}, + {0x8232d032, 0x01}, + {0x8232d033, 0x01}, + {0x8232d034, 0x01}, + {0x8232d035, 0x01}, + {0x8232d036, 0x01}, + {0x8232d037, 0x01}, + {0x8232d038, 0x01}, + {0x8232d039, 0x01}, + {0x8232d130, 0x01}, + {0x8232d131, 0x01}, + {0x8232d132, 0x01}, + {0x8232d133, 0x01}, + {0x8232d134, 0x01}, + {0x8232d135, 0x01}, + {0x8232d136, 0x01}, + {0x8232d137, 0x01}, + {0x8232d138, 0x01}, + {0x8232d139, 0x01}, + {0x8232d230, 0x01}, + {0x8232d232, 0x01}, + {0x8232d233, 0x01}, + {0x8232d234, 0x01}, + {0x8232d235, 0x01}, + {0x8232d236, 0x01}, + {0x8232d237, 0x01}, + {0x8232d238, 0x01}, + {0x8232d239, 0x01}, + {0x8232d330, 0x01}, + {0x8232d331, 0x01}, + {0x8232d332, 0x01}, + {0x8232d333, 0x01}, + {0x8232d334, 0x01}, + {0x8232d335, 0x01}, + {0x8232d336, 0x01}, + {0x8232d338, 0x01}, + {0x8232d430, 0x01}, + {0x8232d431, 0x01}, + {0x8232d434, 0x01}, + {0x8232d435, 0x01}, + {0x8232d436, 0x01}, + {0x8232d437, 0x01}, + {0x8232d438, 0x01}, + {0x8232d439, 0x01}, + {0x8232d530, 0x01}, + {0x8232d531, 0x01}, + {0x8232d532, 0x01}, + {0x8232d533, 0x01}, + {0x8232d534, 0x01}, + {0x8232d535, 0x01}, + {0x8232d536, 0x01}, + {0x8232d537, 0x01}, + {0x8232d538, 0x01}, + {0x8232d539, 0x01}, + {0x8232d630, 0x01}, + {0x8232d631, 0x01}, + {0x8232d632, 0x01}, + {0x8232d633, 0x01}, + {0x8232d634, 0x01}, + {0x8232d635, 0x01}, + {0x8232d636, 0x01}, + {0x8232d637, 0x01}, + {0x8232d638, 0x01}, + {0x8232d639, 0x01}, + {0x8232d730, 0x01}, + {0x8232d731, 0x01}, + {0x8232d732, 0x01}, + {0x8232d733, 0x01}, + {0x8232d734, 0x01}, + {0x8232d735, 0x01}, + {0x8232d736, 0x01}, + {0x8232d737, 0x01}, + {0x8232d738, 0x01}, + {0x8232d739, 0x01}, + {0x8232d830, 0x01}, + {0x8232d831, 0x01}, + {0x8232d832, 0x01}, + {0x8232d833, 0x01}, + {0x8232d836, 0x01}, + {0x8232d837, 0x01}, + {0x8232d838, 0x01}, + {0x8232d839, 0x01}, + {0x8232d930, 0x01}, + {0x8232d931, 0x01}, + {0x8232d932, 0x01}, + {0x8232d933, 0x01}, + {0x8232d934, 0x01}, + {0x8232d935, 0x01}, + {0x8232d937, 0x01}, + {0x8232d938, 0x01}, + {0x8232d939, 0x01}, + {0x8232da30, 0x01}, + {0x8232da31, 0x01}, + {0x8232da32, 0x01}, + {0x8232da33, 0x01}, + {0x8232da34, 0x01}, + {0x8232da35, 0x01}, + {0x8232da36, 0x01}, + {0x8232da37, 0x01}, + {0x8232da38, 0x01}, + {0x8232da39, 0x01}, + {0x8232db30, 0x01}, + {0x8232db31, 0x01}, + {0x8232db32, 0x01}, + {0x8232db33, 0x01}, + {0x8232db34, 0x01}, + {0x8232db35, 0x01}, + {0x8232db36, 0x01}, + {0x8232db37, 0x01}, + {0x8232db38, 0x01}, + {0x8232db39, 0x01}, + {0x8232dc30, 0x01}, + {0x8232dc31, 0x01}, + {0x8232dc32, 0x01}, + {0x8232dc33, 0x01}, + {0x8232dc34, 0x01}, + {0x8232dc35, 0x01}, + {0x8232dc36, 0x01}, + {0x8232dc37, 0x01}, + {0x8232dc38, 0x01}, + {0x8232dc39, 0x01}, + {0x8232dd30, 0x01}, + {0x8232dd31, 0x01}, + {0x8232dd32, 0x01}, + {0x8232dd33, 0x01}, + {0x8232dd34, 0x01}, + {0x8232dd35, 0x01}, + {0x8232dd36, 0x01}, + {0x8232dd39, 0x01}, + {0x8232de30, 0x01}, + {0x8232de31, 0x01}, + {0x8232de32, 0x01}, + {0x8232de33, 0x01}, + {0x8232de34, 0x01}, + {0x8232de35, 0x01}, + {0x8232de36, 0x01}, + {0x8232de37, 0x01}, + {0x8232de38, 0x01}, + {0x8232de39, 0x01}, + {0x8232df30, 0x01}, + {0x8232df31, 0x01}, + {0x8232df32, 0x01}, + {0x8232df33, 0x01}, + {0x8232df34, 0x01}, + {0x8232df35, 0x01}, + {0x8232df36, 0x01}, + {0x8232df37, 0x01}, + {0x8232df38, 0x01}, + {0x8232df39, 0x01}, + {0x8232e030, 0x01}, + {0x8232e031, 0x01}, + {0x8232e032, 0x01}, + {0x8232e033, 0x01}, + {0x8232e034, 0x01}, + {0x8232e035, 0x01}, + {0x8232e036, 0x01}, + {0x8232e037, 0x01}, + {0x8232e039, 0x01}, + {0x8232e130, 0x01}, + {0x8232e131, 0x01}, + {0x8232e132, 0x01}, + {0x8232e133, 0x01}, + {0x8232e134, 0x01}, + {0x8232e135, 0x01}, + {0x8232e136, 0x01}, + {0x8232e137, 0x01}, + {0x8232e138, 0x01}, + {0x8232e139, 0x01}, + {0x8232e230, 0x01}, + {0x8232e231, 0x01}, + {0x8232e232, 0x01}, + {0x8232e233, 0x01}, + {0x8232e234, 0x01}, + {0x8232e235, 0x01}, + {0x8232e236, 0x01}, + {0x8232e237, 0x01}, + {0x8232e238, 0x01}, + {0x8232e239, 0x01}, + {0x8232e330, 0x01}, + {0x8232e331, 0x01}, + {0x8232e332, 0x01}, + {0x8232e333, 0x01}, + {0x8232e334, 0x01}, + {0x8232e335, 0x01}, + {0x8232e336, 0x01}, + {0x8232e337, 0x01}, + {0x8232e338, 0x01}, + {0x8232e339, 0x01}, + {0x8232e430, 0x01}, + {0x8232e431, 0x01}, + {0x8232e432, 0x01}, + {0x8232e433, 0x01}, + {0x8232e434, 0x01}, + {0x8232e435, 0x01}, + {0x8232e436, 0x01}, + {0x8232e437, 0x01}, + {0x8232e438, 0x01}, + {0x8232e439, 0x01}, + {0x8232e530, 0x01}, + {0x8232e531, 0x01}, + {0x8232e532, 0x01}, + {0x8232e533, 0x01}, + {0x8232e534, 0x01}, + {0x8232e535, 0x01}, + {0x8232e536, 0x01}, + {0x8232e537, 0x01}, + {0x8232e538, 0x01}, + {0x8232e539, 0x01}, + {0x8232e630, 0x01}, + {0x8232e631, 0x01}, + {0x8232e632, 0x01}, + {0x8232e633, 0x01}, + {0x8232e634, 0x01}, + {0x8232e635, 0x01}, + {0x8232e636, 0x01}, + {0x8232e637, 0x01}, + {0x8232e638, 0x01}, + {0x8232e639, 0x01}, + {0x8232e730, 0x01}, + {0x8232e731, 0x01}, + {0x8232e732, 0x01}, + {0x8232e733, 0x01}, + {0x8232e734, 0x01}, + {0x8232e735, 0x01}, + {0x8232e736, 0x01}, + {0x8232e738, 0x01}, + {0x8232e739, 0x01}, + {0x8232e830, 0x01}, + {0x8232e831, 0x01}, + {0x8232e832, 0x01}, + {0x8232e833, 0x01}, + {0x8232e834, 0x01}, + {0x8232e835, 0x01}, + {0x8232e836, 0x01}, + {0x8232e837, 0x01}, + {0x8232e838, 0x01}, + {0x8232e839, 0x01}, + {0x8232e930, 0x01}, + {0x8232e931, 0x01}, + {0x8232e932, 0x01}, + {0x8232e933, 0x01}, + {0x8232e934, 0x01}, + {0x8232e935, 0x01}, + {0x8232e936, 0x01}, + {0x8232e937, 0x01}, + {0x8232e938, 0x01}, + {0x8232e939, 0x01}, + {0x8232ea30, 0x01}, + {0x8232ea31, 0x01}, + {0x8232ea32, 0x01}, + {0x8232ea33, 0x01}, + {0x8232ea34, 0x01}, + {0x8232ea35, 0x01}, + {0x8232ea36, 0x01}, + {0x8232ea37, 0x01}, + {0x8232ea38, 0x01}, + {0x8232ea39, 0x01}, + {0x8232eb30, 0x01}, + {0x8232eb31, 0x01}, + {0x8232eb32, 0x01}, + {0x8232eb33, 0x01}, + {0x8232eb34, 0x01}, + {0x8232eb35, 0x01}, + {0x8232eb36, 0x01}, + {0x8232eb37, 0x01}, + {0x8232eb38, 0x01}, + {0x8232eb39, 0x01}, + {0x8232ec30, 0x01}, + {0x8232ec31, 0x01}, + {0x8232ec32, 0x01}, + {0x8232ec33, 0x01}, + {0x8232ec34, 0x01}, + {0x8232ec35, 0x01}, + {0x8232ec36, 0x01}, + {0x8232ec37, 0x01}, + {0x8232ec38, 0x01}, + {0x8232ec39, 0x01}, + {0x8232ed30, 0x01}, + {0x8232ed31, 0x01}, + {0x8232ed32, 0x01}, + {0x8232ed33, 0x01}, + {0x8232ed35, 0x01}, + {0x8232ed37, 0x01}, + {0x8232ed38, 0x01}, + {0x8232ed39, 0x01}, + {0x8232ee30, 0x01}, + {0x8232ee31, 0x01}, + {0x8232ee32, 0x01}, + {0x8232ee33, 0x01}, + {0x8232ee34, 0x01}, + {0x8232ee35, 0x01}, + {0x8232ee36, 0x01}, + {0x8232ee37, 0x01}, + {0x8232ee38, 0x01}, + {0x8232ee39, 0x01}, + {0x8232ef30, 0x01}, + {0x8232ef31, 0x01}, + {0x8232ef32, 0x01}, + {0x8232ef33, 0x01}, + {0x8232ef34, 0x01}, + {0x8232ef35, 0x01}, + {0x8232ef36, 0x01}, + {0x8232ef37, 0x01}, + {0x8232ef38, 0x01}, + {0x8232ef39, 0x01}, + {0x8232f030, 0x01}, + {0x8232f031, 0x01}, + {0x8232f032, 0x01}, + {0x8232f033, 0x01}, + {0x8232f034, 0x01}, + {0x8232f035, 0x01}, + {0x8232f036, 0x01}, + {0x8232f037, 0x01}, + {0x8232f038, 0x01}, + {0x8232f039, 0x01}, + {0x8232f130, 0x01}, + {0x8232f131, 0x01}, + {0x8232f132, 0x01}, + {0x8232f133, 0x01}, + {0x8232f134, 0x01}, + {0x8232f135, 0x01}, + {0x8232f136, 0x01}, + {0x8232f137, 0x01}, + {0x8232f138, 0x01}, + {0x8232f139, 0x01}, + {0x8232f230, 0x01}, + {0x8232f231, 0x01}, + {0x8232f232, 0x01}, + {0x8232f233, 0x01}, + {0x8232f234, 0x01}, + {0x8232f235, 0x01}, + {0x8232f236, 0x01}, + {0x8232f237, 0x01}, + {0x8232f238, 0x01}, + {0x8232f239, 0x01}, + {0x8232f330, 0x01}, + {0x8232f331, 0x01}, + {0x8232f332, 0x01}, + {0x8232f333, 0x01}, + {0x8232f334, 0x01}, + {0x8232f335, 0x01}, + {0x8232f336, 0x01}, + {0x8232f337, 0x01}, + {0x8232f338, 0x01}, + {0x8232f339, 0x01}, + {0x8232f430, 0x01}, + {0x8232f431, 0x01}, + {0x8232f432, 0x01}, + {0x8232f433, 0x01}, + {0x8232f434, 0x01}, + {0x8232f435, 0x01}, + {0x8232f436, 0x01}, + {0x8232f437, 0x01}, + {0x8232f438, 0x01}, + {0x8232f439, 0x01}, + {0x8232f530, 0x01}, + {0x8232f531, 0x01}, + {0x8232f532, 0x01}, + {0x8232f533, 0x01}, + {0x8232f534, 0x01}, + {0x8232f535, 0x01}, + {0x8232f536, 0x01}, + {0x8232f537, 0x01}, + {0x8232f538, 0x01}, + {0x8232f539, 0x01}, + {0x8232f630, 0x01}, + {0x8232f631, 0x01}, + {0x8232f632, 0x01}, + {0x8232f633, 0x01}, + {0x8232f634, 0x01}, + {0x8232f635, 0x01}, + {0x8232f636, 0x01}, + {0x8232f637, 0x01}, + {0x8232f638, 0x01}, + {0x8232f639, 0x01}, + {0x8232f730, 0x01}, + {0x8232f731, 0x01}, + {0x8232f732, 0x01}, + {0x8232f733, 0x01}, + {0x8232f734, 0x01}, + {0x8232f735, 0x01}, + {0x8232f736, 0x01}, + {0x8232f737, 0x01}, + {0x8232f738, 0x01}, + {0x8232f739, 0x01}, + {0x8232f830, 0x01}, + {0x8232f831, 0x01}, + {0x8232f832, 0x01}, + {0x8232f833, 0x01}, + {0x8232f834, 0x01}, + {0x8232f835, 0x01}, + {0x8232f836, 0x01}, + {0x8232f837, 0x01}, + {0x8232f838, 0x01}, + {0x8232f839, 0x01}, + {0x8232f930, 0x01}, + {0x8232f931, 0x01}, + {0x8232f932, 0x01}, + {0x8232f933, 0x01}, + {0x8232f934, 0x01}, + {0x8232f935, 0x01}, + {0x8232f936, 0x01}, + {0x8232f937, 0x01}, + {0x8232f938, 0x01}, + {0x8232f939, 0x01}, + {0x8232fa30, 0x01}, + {0x8232fa31, 0x01}, + {0x8232fa32, 0x01}, + {0x8232fa33, 0x01}, + {0x8232fa34, 0x01}, + {0x8232fa35, 0x01}, + {0x8232fa36, 0x01}, + {0x8232fa37, 0x01}, + {0x8232fa38, 0x01}, + {0x8232fa39, 0x01}, + {0x8232fb30, 0x01}, + {0x8232fb32, 0x01}, + {0x8232fb33, 0x01}, + {0x8232fb34, 0x01}, + {0x8232fb35, 0x01}, + {0x8232fb36, 0x01}, + {0x8232fb37, 0x01}, + {0x8232fb38, 0x01}, + {0x8232fb39, 0x01}, + {0x8232fc30, 0x01}, + {0x8232fc31, 0x01}, + {0x8232fc32, 0x01}, + {0x8232fc33, 0x01}, + {0x8232fc34, 0x01}, + {0x8232fc35, 0x01}, + {0x8232fc36, 0x01}, + {0x8232fc37, 0x01}, + {0x8232fc38, 0x01}, + {0x8232fc39, 0x01}, + {0x8232fd30, 0x01}, + {0x8232fd31, 0x01}, + {0x8232fd32, 0x01}, + {0x8232fd33, 0x01}, + {0x8232fd34, 0x01}, + {0x8232fd35, 0x01}, + {0x8232fd36, 0x01}, + {0x8232fd37, 0x01}, + {0x8232fd38, 0x01}, + {0x8232fd39, 0x01}, + {0x8232fe30, 0x01}, + {0x8232fe31, 0x01}, + {0x8232fe32, 0x01}, + {0x8232fe33, 0x01}, + {0x8232fe34, 0x01}, + {0x8232fe35, 0x01}, + {0x8232fe36, 0x01}, + {0x8232fe37, 0x01}, + {0x8232fe38, 0x01}, + {0x8232fe39, 0x01}, + {0x82338130, 0x01}, + {0x82338131, 0x01}, + {0x82338132, 0x01}, + {0x82338133, 0x01}, + {0x82338134, 0x01}, + {0x82338135, 0x01}, + {0x82338136, 0x01}, + {0x82338137, 0x01}, + {0x82338138, 0x01}, + {0x82338139, 0x01}, + {0x82338230, 0x01}, + {0x82338231, 0x01}, + {0x82338232, 0x01}, + {0x82338233, 0x01}, + {0x82338234, 0x01}, + {0x82338235, 0x01}, + {0x82338236, 0x01}, + {0x82338237, 0x01}, + {0x82338238, 0x01}, + {0x82338239, 0x01}, + {0x82338330, 0x01}, + {0x82338331, 0x01}, + {0x82338332, 0x01}, + {0x82338333, 0x01}, + {0x82338334, 0x01}, + {0x82338335, 0x01}, + {0x82338336, 0x01}, + {0x82338337, 0x01}, + {0x82338338, 0x01}, + {0x82338339, 0x01}, + {0x82338430, 0x01}, + {0x82338431, 0x01}, + {0x82338432, 0x01}, + {0x82338433, 0x01}, + {0x82338434, 0x01}, + {0x82338435, 0x01}, + {0x82338436, 0x01}, + {0x82338438, 0x01}, + {0x82338439, 0x01}, + {0x82338531, 0x01}, + {0x82338532, 0x01}, + {0x82338533, 0x01}, + {0x82338534, 0x01}, + {0x82338535, 0x01}, + {0x82338536, 0x01}, + {0x82338538, 0x01}, + {0x82338539, 0x01}, + {0x82338630, 0x01}, + {0x82338631, 0x01}, + {0x82338632, 0x01}, + {0x82338633, 0x01}, + {0x82338634, 0x01}, + {0x82338635, 0x01}, + {0x82338636, 0x01}, + {0x82338637, 0x01}, + {0x82338638, 0x01}, + {0x82338639, 0x01}, + {0x82338730, 0x01}, + {0x82338731, 0x01}, + {0x82338732, 0x01}, + {0x82338733, 0x01}, + {0x82338734, 0x01}, + {0x82338735, 0x01}, + {0x82338736, 0x01}, + {0x82338737, 0x01}, + {0x82338738, 0x01}, + {0x82338739, 0x01}, + {0x82338830, 0x01}, + {0x82338831, 0x01}, + {0x82338832, 0x01}, + {0x82338833, 0x01}, + {0x82338834, 0x01}, + {0x82338835, 0x01}, + {0x82338836, 0x01}, + {0x82338837, 0x01}, + {0x82338838, 0x01}, + {0x82338839, 0x01}, + {0x82338930, 0x01}, + {0x82338931, 0x01}, + {0x82338932, 0x01}, + {0x82338933, 0x01}, + {0x82338934, 0x01}, + {0x82338935, 0x01}, + {0x82338936, 0x01}, + {0x82338937, 0x01}, + {0x82338938, 0x01}, + {0x82338939, 0x01}, + {0x82338a30, 0x01}, + {0x82338a31, 0x01}, + {0x82338a32, 0x01}, + {0x82338a33, 0x01}, + {0x82338a34, 0x01}, + {0x82338a35, 0x01}, + {0x82338a36, 0x01}, + {0x82338a37, 0x01}, + {0x82338a38, 0x01}, + {0x82338a39, 0x01}, + {0x82338b30, 0x01}, + {0x82338b31, 0x01}, + {0x82338b32, 0x01}, + {0x82338b33, 0x01}, + {0x82338b34, 0x01}, + {0x82338b35, 0x01}, + {0x82338b36, 0x01}, + {0x82338b37, 0x01}, + {0x82338b38, 0x01}, + {0x82338b39, 0x01}, + {0x82338c30, 0x01}, + {0x82338c31, 0x01}, + {0x82338c32, 0x01}, + {0x82338c33, 0x01}, + {0x82338c34, 0x01}, + {0x82338c35, 0x01}, + {0x82338c38, 0x01}, + {0x82338c39, 0x01}, + {0x82338d30, 0x01}, + {0x82338d31, 0x01}, + {0x82338d32, 0x01}, + {0x82338d33, 0x01}, + {0x82338d34, 0x01}, + {0x82338d35, 0x01}, + {0x82338d36, 0x01}, + {0x82338d37, 0x01}, + {0x82338d38, 0x01}, + {0x82338d39, 0x01}, + {0x82338e30, 0x01}, + {0x82338e31, 0x01}, + {0x82338e32, 0x01}, + {0x82338e33, 0x01}, + {0x82338e34, 0x01}, + {0x82338e35, 0x01}, + {0x82338e36, 0x01}, + {0x82338e37, 0x01}, + {0x82338e38, 0x01}, + {0x82338e39, 0x01}, + {0x82338f30, 0x01}, + {0x82338f31, 0x01}, + {0x82338f32, 0x01}, + {0x82338f33, 0x01}, + {0x82338f34, 0x01}, + {0x82338f35, 0x01}, + {0x82338f36, 0x01}, + {0x82338f37, 0x01}, + {0x82338f38, 0x01}, + {0x82338f39, 0x01}, + {0x82339030, 0x01}, + {0x82339031, 0x01}, + {0x82339032, 0x01}, + {0x82339033, 0x01}, + {0x82339034, 0x01}, + {0x82339035, 0x01}, + {0x82339036, 0x01}, + {0x82339037, 0x01}, + {0x82339038, 0x01}, + {0x82339039, 0x01}, + {0x82339130, 0x01}, + {0x82339131, 0x01}, + {0x82339132, 0x01}, + {0x82339133, 0x01}, + {0x82339134, 0x01}, + {0x82339135, 0x01}, + {0x82339136, 0x01}, + {0x82339137, 0x01}, + {0x82339138, 0x01}, + {0x82339139, 0x01}, + {0x82339230, 0x01}, + {0x82339231, 0x01}, + {0x82339232, 0x01}, + {0x82339233, 0x01}, + {0x82339234, 0x01}, + {0x82339235, 0x01}, + {0x82339236, 0x01}, + {0x82339237, 0x01}, + {0x82339238, 0x01}, + {0x82339239, 0x01}, + {0x82339330, 0x01}, + {0x82339331, 0x01}, + {0x82339332, 0x01}, + {0x82339333, 0x01}, + {0x82339334, 0x01}, + {0x82339335, 0x01}, + {0x82339336, 0x01}, + {0x82339337, 0x01}, + {0x82339338, 0x01}, + {0x82339339, 0x01}, + {0x82339430, 0x01}, + {0x82339431, 0x01}, + {0x82339432, 0x01}, + {0x82339433, 0x01}, + {0x82339434, 0x01}, + {0x82339435, 0x01}, + {0x82339436, 0x01}, + {0x82339437, 0x01}, + {0x82339438, 0x01}, + {0x82339439, 0x01}, + {0x82339530, 0x01}, + {0x82339531, 0x01}, + {0x82339532, 0x01}, + {0x82339533, 0x01}, + {0x82339534, 0x01}, + {0x82339535, 0x01}, + {0x82339536, 0x01}, + {0x82339537, 0x01}, + {0x82339538, 0x01}, + {0x82339539, 0x01}, + {0x82339630, 0x01}, + {0x82339631, 0x01}, + {0x82339632, 0x01}, + {0x82339633, 0x01}, + {0x82339634, 0x01}, + {0x82339635, 0x01}, + {0x82339636, 0x01}, + {0x82339638, 0x01}, + {0x82339639, 0x01}, + {0x82339730, 0x01}, + {0x82339732, 0x01}, + {0x82339733, 0x01}, + {0x82339734, 0x01}, + {0x82339735, 0x01}, + {0x82339736, 0x01}, + {0x82339737, 0x01}, + {0x82339738, 0x01}, + {0x82339739, 0x01}, + {0x82339830, 0x01}, + {0x82339831, 0x01}, + {0x82339832, 0x01}, + {0x82339833, 0x01}, + {0x82339834, 0x01}, + {0x82339835, 0x01}, + {0x82339836, 0x01}, + {0x82339837, 0x01}, + {0x82339838, 0x01}, + {0x82339839, 0x01}, + {0x82339930, 0x01}, + {0x82339931, 0x01}, + {0x82339932, 0x01}, + {0x82339933, 0x01}, + {0x82339934, 0x01}, + {0x82339936, 0x01}, + {0x82339937, 0x01}, + {0x82339938, 0x01}, + {0x82339939, 0x01}, + {0x82339a30, 0x01}, + {0x82339a31, 0x01}, + {0x82339a32, 0x01}, + {0x82339a33, 0x01}, + {0x82339a35, 0x01}, + {0x82339a36, 0x01}, + {0x82339a37, 0x01}, + {0x82339a38, 0x01}, + {0x82339a39, 0x01}, + {0x82339b30, 0x01}, + {0x82339b32, 0x01}, + {0x82339b33, 0x01}, + {0x82339b34, 0x01}, + {0x82339b35, 0x01}, + {0x82339b36, 0x01}, + {0x82339b37, 0x01}, + {0x82339b38, 0x01}, + {0x82339b39, 0x01}, + {0x82339c30, 0x01}, + {0x82339c31, 0x01}, + {0x82339c32, 0x01}, + {0x82339c33, 0x01}, + {0x82339c34, 0x01}, + {0x82339c35, 0x01}, + {0x82339c36, 0x01}, + {0x82339c37, 0x01}, + {0x82339c38, 0x01}, + {0x82339c39, 0x01}, + {0x82339d31, 0x01}, + {0x82339d32, 0x01}, + {0x82339d33, 0x01}, + {0x82339d34, 0x01}, + {0x82339d35, 0x01}, + {0x82339d36, 0x01}, + {0x82339d37, 0x01}, + {0x82339d38, 0x01}, + {0x82339d39, 0x01}, + {0x82339e30, 0x01}, + {0x82339e31, 0x01}, + {0x82339e32, 0x01}, + {0x82339e33, 0x01}, + {0x82339e34, 0x01}, + {0x82339e35, 0x01}, + {0x82339e36, 0x01}, + {0x82339e37, 0x01}, + {0x82339e38, 0x01}, + {0x82339e39, 0x01}, + {0x82339f30, 0x01}, + {0x82339f31, 0x01}, + {0x82339f32, 0x01}, + {0x82339f33, 0x01}, + {0x82339f34, 0x01}, + {0x82339f35, 0x01}, + {0x82339f36, 0x01}, + {0x82339f37, 0x01}, + {0x82339f38, 0x01}, + {0x8233a031, 0x01}, + {0x8233a032, 0x01}, + {0x8233a033, 0x01}, + {0x8233a034, 0x01}, + {0x8233a035, 0x01}, + {0x8233a036, 0x01}, + {0x8233a037, 0x01}, + {0x8233a038, 0x01}, + {0x8233a039, 0x01}, + {0x8233a130, 0x01}, + {0x8233a131, 0x01}, + {0x8233a132, 0x01}, + {0x8233a133, 0x01}, + {0x8233a134, 0x01}, + {0x8233a135, 0x01}, + {0x8233a136, 0x01}, + {0x8233a138, 0x01}, + {0x8233a139, 0x01}, + {0x8233a230, 0x01}, + {0x8233a231, 0x01}, + {0x8233a232, 0x01}, + {0x8233a233, 0x01}, + {0x8233a234, 0x01}, + {0x8233a235, 0x01}, + {0x8233a236, 0x01}, + {0x8233a237, 0x01}, + {0x8233a238, 0x01}, + {0x8233a239, 0x01}, + {0x8233a330, 0x01}, + {0x8233a331, 0x01}, + {0x8233a332, 0x01}, + {0x8233a333, 0x01}, + {0x8233a334, 0x01}, + {0x8233a335, 0x01}, + {0x8233a336, 0x01}, + {0x8233a338, 0x01}, + {0x8233a339, 0x01}, + {0x8233a430, 0x01}, + {0x8233a431, 0x01}, + {0x8233a432, 0x01}, + {0x8233a433, 0x01}, + {0x8233a434, 0x01}, + {0x8233a435, 0x01}, + {0x8233a436, 0x01}, + {0x8233a437, 0x01}, + {0x8233a438, 0x01}, + {0x8233a439, 0x01}, + {0x8233a530, 0x01}, + {0x8233a531, 0x01}, + {0x8233a532, 0x01}, + {0x8233a533, 0x01}, + {0x8233a534, 0x01}, + {0x8233a535, 0x01}, + {0x8233a536, 0x01}, + {0x8233a539, 0x01}, + {0x8233a631, 0x01}, + {0x8233a632, 0x01}, + {0x8233a633, 0x01}, + {0x8233a634, 0x01}, + {0x8233a635, 0x01}, + {0x8233a636, 0x01}, + {0x8233a637, 0x01}, + {0x8233a638, 0x01}, + {0x8233a639, 0x01}, + {0x8233a730, 0x01}, + {0x8233a731, 0x01}, + {0x8233a732, 0x01}, + {0x8233a733, 0x01}, + {0x8233a734, 0x01}, + {0x8233a736, 0x01}, + {0x8233a737, 0x01}, + {0x8233a738, 0x01}, + {0x8233a739, 0x01}, + {0x8233a830, 0x01}, + {0x8233a831, 0x01}, + {0x8233a832, 0x01}, + {0x8233a833, 0x01}, + {0x8233a834, 0x01}, + {0x8233a835, 0x01}, + {0x8233a836, 0x01}, + {0x8233a837, 0x01}, + {0x8233a838, 0x01}, + {0x8233a839, 0x01}, + {0x8233a930, 0x01}, + {0x8233a931, 0x01}, + {0x8233a932, 0x01}, + {0x8233a933, 0x01}, + {0x8233a934, 0x01}, + {0x8233a935, 0x01}, + {0x8233a936, 0x01}, + {0x8233a937, 0x01}, + {0x8233a938, 0x01}, + {0x8233a939, 0x01}, + {0x8233aa30, 0x01}, + {0x8233aa31, 0x01}, + {0x8233aa32, 0x01}, + {0x8233aa33, 0x01}, + {0x8233aa34, 0x01}, + {0x8233aa35, 0x01}, + {0x8233aa36, 0x01}, + {0x8233aa37, 0x01}, + {0x8233aa38, 0x01}, + {0x8233aa39, 0x01}, + {0x8233ab30, 0x01}, + {0x8233ab31, 0x01}, + {0x8233ab32, 0x01}, + {0x8233ab33, 0x01}, + {0x8233ab34, 0x01}, + {0x8233ab35, 0x01}, + {0x8233ab36, 0x01}, + {0x8233ab37, 0x01}, + {0x8233ab39, 0x01}, + {0x8233ac31, 0x01}, + {0x8233ac32, 0x01}, + {0x8233ac34, 0x01}, + {0x8233ac35, 0x01}, + {0x8233ac36, 0x01}, + {0x8233ac37, 0x01}, + {0x8233ac38, 0x01}, + {0x8233ac39, 0x01}, + {0x8233ad30, 0x01}, + {0x8233ad31, 0x01}, + {0x8233ad32, 0x01}, + {0x8233ad33, 0x01}, + {0x8233ad34, 0x01}, + {0x8233ad35, 0x01}, + {0x8233ad36, 0x01}, + {0x8233ad37, 0x01}, + {0x8233ad38, 0x01}, + {0x8233ad39, 0x01}, + {0x8233ae30, 0x01}, + {0x8233ae31, 0x01}, + {0x8233ae32, 0x01}, + {0x8233ae33, 0x01}, + {0x8233ae34, 0x01}, + {0x8233ae35, 0x01}, + {0x8233ae38, 0x01}, + {0x8233ae39, 0x01}, + {0x8233af30, 0x01}, + {0x8233af31, 0x01}, + {0x8233af32, 0x01}, + {0x8233af33, 0x01}, + {0x8233af34, 0x01}, + {0x8233af35, 0x01}, + {0x8233af36, 0x01}, + {0x8233af37, 0x01}, + {0x8233af38, 0x01}, + {0x8233af39, 0x01}, + {0x8233b031, 0x01}, + {0x8233b032, 0x01}, + {0x8233b033, 0x01}, + {0x8233b034, 0x01}, + {0x8233b035, 0x01}, + {0x8233b036, 0x01}, + {0x8233b037, 0x01}, + {0x8233b038, 0x01}, + {0x8233b039, 0x01}, + {0x8233b130, 0x01}, + {0x8233b131, 0x01}, + {0x8233b133, 0x01}, + {0x8233b134, 0x01}, + {0x8233b135, 0x01}, + {0x8233b136, 0x01}, + {0x8233b137, 0x01}, + {0x8233b138, 0x01}, + {0x8233b139, 0x01}, + {0x8233b230, 0x01}, + {0x8233b231, 0x01}, + {0x8233b232, 0x01}, + {0x8233b233, 0x01}, + {0x8233b234, 0x01}, + {0x8233b235, 0x01}, + {0x8233b236, 0x01}, + {0x8233b237, 0x01}, + {0x8233b238, 0x01}, + {0x8233b239, 0x01}, + {0x8233b330, 0x01}, + {0x8233b331, 0x01}, + {0x8233b332, 0x01}, + {0x8233b333, 0x01}, + {0x8233b334, 0x01}, + {0x8233b335, 0x01}, + {0x8233b336, 0x01}, + {0x8233b337, 0x01}, + {0x8233b339, 0x01}, + {0x8233b430, 0x01}, + {0x8233b431, 0x01}, + {0x8233b432, 0x01}, + {0x8233b433, 0x01}, + {0x8233b434, 0x01}, + {0x8233b435, 0x01}, + {0x8233b436, 0x01}, + {0x8233b437, 0x01}, + {0x8233b438, 0x01}, + {0x8233b439, 0x01}, + {0x8233b530, 0x01}, + {0x8233b531, 0x01}, + {0x8233b532, 0x01}, + {0x8233b533, 0x01}, + {0x8233b534, 0x01}, + {0x8233b535, 0x01}, + {0x8233b536, 0x01}, + {0x8233b537, 0x01}, + {0x8233b538, 0x01}, + {0x8233b539, 0x01}, + {0x8233b630, 0x01}, + {0x8233b631, 0x01}, + {0x8233b632, 0x01}, + {0x8233b633, 0x01}, + {0x8233b634, 0x01}, + {0x8233b635, 0x01}, + {0x8233b636, 0x01}, + {0x8233b637, 0x01}, + {0x8233b638, 0x01}, + {0x8233b639, 0x01}, + {0x8233b730, 0x01}, + {0x8233b731, 0x01}, + {0x8233b732, 0x01}, + {0x8233b733, 0x01}, + {0x8233b734, 0x01}, + {0x8233b735, 0x01}, + {0x8233b736, 0x01}, + {0x8233b737, 0x01}, + {0x8233b738, 0x01}, + {0x8233b739, 0x01}, + {0x8233b830, 0x01}, + {0x8233b831, 0x01}, + {0x8233b832, 0x01}, + {0x8233b833, 0x01}, + {0x8233b834, 0x01}, + {0x8233b835, 0x01}, + {0x8233b836, 0x01}, + {0x8233b837, 0x01}, + {0x8233b838, 0x01}, + {0x8233b839, 0x01}, + {0x8233b930, 0x01}, + {0x8233b931, 0x01}, + {0x8233b932, 0x01}, + {0x8233b933, 0x01}, + {0x8233b934, 0x01}, + {0x8233b935, 0x01}, + {0x8233b936, 0x01}, + {0x8233b937, 0x01}, + {0x8233b938, 0x01}, + {0x8233b939, 0x01}, + {0x8233ba30, 0x01}, + {0x8233ba31, 0x01}, + {0x8233ba32, 0x01}, + {0x8233ba33, 0x01}, + {0x8233ba34, 0x01}, + {0x8233ba35, 0x01}, + {0x8233ba36, 0x01}, + {0x8233ba37, 0x01}, + {0x8233ba38, 0x01}, + {0x8233ba39, 0x01}, + {0x8233bb31, 0x01}, + {0x8233bb32, 0x01}, + {0x8233bb33, 0x01}, + {0x8233bb34, 0x01}, + {0x8233bb35, 0x01}, + {0x8233bb36, 0x01}, + {0x8233bb37, 0x01}, + {0x8233bb38, 0x01}, + {0x8233bb39, 0x01}, + {0x8233bc30, 0x01}, + {0x8233bc31, 0x01}, + {0x8233bc32, 0x01}, + {0x8233bc33, 0x01}, + {0x8233bc34, 0x01}, + {0x8233bc35, 0x01}, + {0x8233bc36, 0x01}, + {0x8233bc37, 0x01}, + {0x8233bc38, 0x01}, + {0x8233bc39, 0x01}, + {0x8233bd30, 0x01}, + {0x8233bd31, 0x01}, + {0x8233bd32, 0x01}, + {0x8233bd33, 0x01}, + {0x8233bd34, 0x01}, + {0x8233bd35, 0x01}, + {0x8233bd36, 0x01}, + {0x8233bd37, 0x01}, + {0x8233bd38, 0x01}, + {0x8233bd39, 0x01}, + {0x8233be30, 0x01}, + {0x8233be31, 0x01}, + {0x8233be32, 0x01}, + {0x8233be33, 0x01}, + {0x8233be34, 0x01}, + {0x8233be35, 0x01}, + {0x8233be36, 0x01}, + {0x8233be37, 0x01}, + {0x8233be38, 0x01}, + {0x8233be39, 0x01}, + {0x8233bf30, 0x01}, + {0x8233bf31, 0x01}, + {0x8233bf32, 0x01}, + {0x8233bf33, 0x01}, + {0x8233bf34, 0x01}, + {0x8233bf35, 0x01}, + {0x8233bf36, 0x01}, + {0x8233bf38, 0x01}, + {0x8233bf39, 0x01}, + {0x8233c030, 0x01}, + {0x8233c031, 0x01}, + {0x8233c032, 0x01}, + {0x8233c034, 0x01}, + {0x8233c035, 0x01}, + {0x8233c036, 0x01}, + {0x8233c037, 0x01}, + {0x8233c038, 0x01}, + {0x8233c039, 0x01}, + {0x8233c130, 0x01}, + {0x8233c131, 0x01}, + {0x8233c132, 0x01}, + {0x8233c133, 0x01}, + {0x8233c134, 0x01}, + {0x8233c135, 0x01}, + {0x8233c136, 0x01}, + {0x8233c137, 0x01}, + {0x8233c138, 0x01}, + {0x8233c139, 0x01}, + {0x8233c230, 0x01}, + {0x8233c231, 0x01}, + {0x8233c232, 0x01}, + {0x8233c233, 0x01}, + {0x8233c234, 0x01}, + {0x8233c235, 0x01}, + {0x8233c236, 0x01}, + {0x8233c237, 0x01}, + {0x8233c238, 0x01}, + {0x8233c239, 0x01}, + {0x8233c330, 0x01}, + {0x8233c331, 0x01}, + {0x8233c332, 0x01}, + {0x8233c333, 0x01}, + {0x8233c334, 0x01}, + {0x8233c335, 0x01}, + {0x8233c336, 0x01}, + {0x8233c337, 0x01}, + {0x8233c338, 0x01}, + {0x8233c339, 0x01}, + {0x8233c430, 0x01}, + {0x8233c431, 0x01}, + {0x8233c432, 0x01}, + {0x8233c433, 0x01}, + {0x8233c434, 0x01}, + {0x8233c435, 0x01}, + {0x8233c437, 0x01}, + {0x8233c438, 0x01}, + {0x8233c439, 0x01}, + {0x8233c530, 0x01}, + {0x8233c531, 0x01}, + {0x8233c532, 0x01}, + {0x8233c533, 0x01}, + {0x8233c534, 0x01}, + {0x8233c536, 0x01}, + {0x8233c537, 0x01}, + {0x8233c538, 0x01}, + {0x8233c539, 0x01}, + {0x8233c630, 0x01}, + {0x8233c631, 0x01}, + {0x8233c632, 0x01}, + {0x8233c633, 0x01}, + {0x8233c634, 0x01}, + {0x8233c635, 0x01}, + {0x8233c636, 0x01}, + {0x8233c637, 0x01}, + {0x8233c638, 0x01}, + {0x8233c639, 0x01}, + {0x8233c730, 0x01}, + {0x8233c731, 0x01}, + {0x8233c732, 0x01}, + {0x8233c733, 0x01}, + {0x8233c734, 0x01}, + {0x8233c735, 0x01}, + {0x8233c736, 0x01}, + {0x8233c737, 0x01}, + {0x8233c738, 0x01}, + {0x8233c739, 0x01}, + {0x8233c830, 0x01}, + {0x8233c831, 0x01}, + {0x8233c832, 0x01}, + {0x8233c833, 0x01}, + {0x8233c834, 0x01}, + {0x8233c835, 0x01}, + {0x8233c836, 0x01}, + {0x8233c837, 0x01}, + {0x8233c838, 0x01}, + {0x8233c839, 0x01}, + {0x8233c933, 0x01}, + {0x8233c934, 0x01}, + {0x8233c935, 0x01}, + {0x8233c936, 0x01}, + {0x8233c937, 0x01}, + {0x8233c939, 0x01}, + {0x8233ca30, 0x01}, + {0x8233ca31, 0x01}, + {0x8233ca32, 0x01}, + {0x8233ca33, 0x01}, + {0x8233ca34, 0x01}, + {0x8233ca35, 0x01}, + {0x8233ca36, 0x01}, + {0x8233ca37, 0x01}, + {0x8233ca38, 0x01}, + {0x8233ca39, 0x01}, + {0x8233cb30, 0x01}, + {0x8233cb31, 0x01}, + {0x8233cb32, 0x01}, + {0x8233cb33, 0x01}, + {0x8233cb34, 0x01}, + {0x8233cb35, 0x01}, + {0x8233cb36, 0x01}, + {0x8233cb37, 0x01}, + {0x8233cb38, 0x01}, + {0x8233cb39, 0x01}, + {0x8233cc30, 0x01}, + {0x8233cc32, 0x01}, + {0x8233cc33, 0x01}, + {0x8233cc34, 0x01}, + {0x8233cc35, 0x01}, + {0x8233cc36, 0x01}, + {0x8233cc37, 0x01}, + {0x8233cc38, 0x01}, + {0x8233cc39, 0x01}, + {0x8233cd30, 0x01}, + {0x8233cd31, 0x01}, + {0x8233cd33, 0x01}, + {0x8233cd34, 0x01}, + {0x8233cd35, 0x01}, + {0x8233cd36, 0x01}, + {0x8233cd37, 0x01}, + {0x8233cd38, 0x01}, + {0x8233cd39, 0x01}, + {0x8233ce30, 0x01}, + {0x8233ce31, 0x01}, + {0x8233ce32, 0x01}, + {0x8233ce33, 0x01}, + {0x8233ce34, 0x01}, + {0x8233ce35, 0x01}, + {0x8233ce36, 0x01}, + {0x8233ce37, 0x01}, + {0x8233ce38, 0x01}, + {0x8233ce39, 0x01}, + {0x8233cf30, 0x01}, + {0x8233cf31, 0x01}, + {0x8233cf32, 0x01}, + {0x8233cf33, 0x01}, + {0x8233cf34, 0x01}, + {0x8233cf35, 0x01}, + {0x8233cf36, 0x01}, + {0x8233cf37, 0x01}, + {0x8233cf38, 0x01}, + {0x8233cf39, 0x01}, + {0x8233d030, 0x01}, + {0x8233d031, 0x01}, + {0x8233d032, 0x01}, + {0x8233d033, 0x01}, + {0x8233d034, 0x01}, + {0x8233d035, 0x01}, + {0x8233d036, 0x01}, + {0x8233d037, 0x01}, + {0x8233d038, 0x01}, + {0x8233d039, 0x01}, + {0x8233d130, 0x01}, + {0x8233d131, 0x01}, + {0x8233d132, 0x01}, + {0x8233d133, 0x01}, + {0x8233d134, 0x01}, + {0x8233d135, 0x01}, + {0x8233d136, 0x01}, + {0x8233d137, 0x01}, + {0x8233d139, 0x01}, + {0x8233d230, 0x01}, + {0x8233d231, 0x01}, + {0x8233d232, 0x01}, + {0x8233d233, 0x01}, + {0x8233d234, 0x01}, + {0x8233d235, 0x01}, + {0x8233d236, 0x01}, + {0x8233d237, 0x01}, + {0x8233d238, 0x01}, + {0x8233d239, 0x01}, + {0x8233d330, 0x01}, + {0x8233d331, 0x01}, + {0x8233d332, 0x01}, + {0x8233d333, 0x01}, + {0x8233d334, 0x01}, + {0x8233d335, 0x01}, + {0x8233d336, 0x01}, + {0x8233d337, 0x01}, + {0x8233d338, 0x01}, + {0x8233d339, 0x01}, + {0x8233d430, 0x01}, + {0x8233d431, 0x01}, + {0x8233d432, 0x01}, + {0x8233d433, 0x01}, + {0x8233d434, 0x01}, + {0x8233d435, 0x01}, + {0x8233d436, 0x01}, + {0x8233d437, 0x01}, + {0x8233d438, 0x01}, + {0x8233d439, 0x01}, + {0x8233d530, 0x01}, + {0x8233d531, 0x01}, + {0x8233d532, 0x01}, + {0x8233d533, 0x01}, + {0x8233d534, 0x01}, + {0x8233d535, 0x01}, + {0x8233d536, 0x01}, + {0x8233d537, 0x01}, + {0x8233d538, 0x01}, + {0x8233d539, 0x01}, + {0x8233d630, 0x01}, + {0x8233d631, 0x01}, + {0x8233d632, 0x01}, + {0x8233d633, 0x01}, + {0x8233d634, 0x01}, + {0x8233d635, 0x01}, + {0x8233d636, 0x01}, + {0x8233d637, 0x01}, + {0x8233d638, 0x01}, + {0x8233d639, 0x01}, + {0x8233d730, 0x01}, + {0x8233d731, 0x01}, + {0x8233d732, 0x01}, + {0x8233d733, 0x01}, + {0x8233d734, 0x01}, + {0x8233d735, 0x01}, + {0x8233d736, 0x01}, + {0x8233d737, 0x01}, + {0x8233d738, 0x01}, + {0x8233d739, 0x01}, + {0x8233d830, 0x01}, + {0x8233d831, 0x01}, + {0x8233d832, 0x01}, + {0x8233d833, 0x01}, + {0x8233d834, 0x01}, + {0x8233d835, 0x01}, + {0x8233d836, 0x01}, + {0x8233d837, 0x01}, + {0x8233d838, 0x01}, + {0x8233d839, 0x01}, + {0x8233d930, 0x01}, + {0x8233d931, 0x01}, + {0x8233d932, 0x01}, + {0x8233d933, 0x01}, + {0x8233d934, 0x01}, + {0x8233d935, 0x01}, + {0x8233d936, 0x01}, + {0x8233d937, 0x01}, + {0x8233d938, 0x01}, + {0x8233d939, 0x01}, + {0x8233da30, 0x01}, + {0x8233da31, 0x01}, + {0x8233da32, 0x01}, + {0x8233da33, 0x01}, + {0x8233da34, 0x01}, + {0x8233da35, 0x01}, + {0x8233da36, 0x01}, + {0x8233da37, 0x01}, + {0x8233da38, 0x01}, + {0x8233da39, 0x01}, + {0x8233db30, 0x01}, + {0x8233db31, 0x01}, + {0x8233db32, 0x01}, + {0x8233db33, 0x01}, + {0x8233db34, 0x01}, + {0x8233db35, 0x01}, + {0x8233db36, 0x01}, + {0x8233db37, 0x01}, + {0x8233db38, 0x01}, + {0x8233db39, 0x01}, + {0x8233dc30, 0x01}, + {0x8233dc31, 0x01}, + {0x8233dc32, 0x01}, + {0x8233dc33, 0x01}, + {0x8233dc34, 0x01}, + {0x8233dc35, 0x01}, + {0x8233dc36, 0x01}, + {0x8233dc37, 0x01}, + {0x8233dc38, 0x01}, + {0x8233dc39, 0x01}, + {0x8233dd30, 0x01}, + {0x8233dd31, 0x01}, + {0x8233dd32, 0x01}, + {0x8233dd33, 0x01}, + {0x8233dd34, 0x01}, + {0x8233dd35, 0x01}, + {0x8233dd36, 0x01}, + {0x8233dd37, 0x01}, + {0x8233dd38, 0x01}, + {0x8233dd39, 0x01}, + {0x8233de30, 0x01}, + {0x8233de31, 0x01}, + {0x8233de32, 0x01}, + {0x8233de33, 0x01}, + {0x8233de34, 0x01}, + {0x8233de36, 0x01}, + {0x8233de38, 0x01}, + {0x8233df30, 0x01}, + {0x8233df31, 0x01}, + {0x8233df32, 0x01}, + {0x8233df33, 0x01}, + {0x8233df34, 0x01}, + {0x8233df35, 0x01}, + {0x8233df36, 0x01}, + {0x8233df37, 0x01}, + {0x8233df38, 0x01}, + {0x8233e030, 0x01}, + {0x8233e031, 0x01}, + {0x8233e032, 0x01}, + {0x8233e033, 0x01}, + {0x8233e034, 0x01}, + {0x8233e035, 0x01}, + {0x8233e036, 0x01}, + {0x8233e037, 0x01}, + {0x8233e038, 0x01}, + {0x8233e039, 0x01}, + {0x8233e130, 0x01}, + {0x8233e132, 0x01}, + {0x8233e133, 0x01}, + {0x8233e134, 0x01}, + {0x8233e135, 0x01}, + {0x8233e136, 0x01}, + {0x8233e137, 0x01}, + {0x8233e138, 0x01}, + {0x8233e139, 0x01}, + {0x8233e230, 0x01}, + {0x8233e232, 0x01}, + {0x8233e233, 0x01}, + {0x8233e234, 0x01}, + {0x8233e235, 0x01}, + {0x8233e236, 0x01}, + {0x8233e237, 0x01}, + {0x8233e238, 0x01}, + {0x8233e239, 0x01}, + {0x8233e330, 0x01}, + {0x8233e331, 0x01}, + {0x8233e332, 0x01}, + {0x8233e333, 0x01}, + {0x8233e334, 0x01}, + {0x8233e335, 0x01}, + {0x8233e336, 0x01}, + {0x8233e337, 0x01}, + {0x8233e338, 0x01}, + {0x8233e339, 0x01}, + {0x8233e430, 0x01}, + {0x8233e431, 0x01}, + {0x8233e432, 0x01}, + {0x8233e433, 0x01}, + {0x8233e434, 0x01}, + {0x8233e435, 0x01}, + {0x8233e436, 0x01}, + {0x8233e437, 0x01}, + {0x8233e438, 0x01}, + {0x8233e439, 0x01}, + {0x8233e530, 0x01}, + {0x8233e531, 0x01}, + {0x8233e532, 0x01}, + {0x8233e533, 0x01}, + {0x8233e534, 0x01}, + {0x8233e535, 0x01}, + {0x8233e536, 0x01}, + {0x8233e537, 0x01}, + {0x8233e538, 0x01}, + {0x8233e539, 0x01}, + {0x8233e630, 0x01}, + {0x8233e631, 0x01}, + {0x8233e632, 0x01}, + {0x8233e633, 0x01}, + {0x8233e634, 0x01}, + {0x8233e635, 0x01}, + {0x8233e636, 0x01}, + {0x8233e637, 0x01}, + {0x8233e638, 0x01}, + {0x8233e639, 0x01}, + {0x8233e730, 0x01}, + {0x8233e731, 0x01}, + {0x8233e732, 0x01}, + {0x8233e733, 0x01}, + {0x8233e734, 0x01}, + {0x8233e735, 0x01}, + {0x8233e736, 0x01}, + {0x8233e737, 0x01}, + {0x8233e738, 0x01}, + {0x8233e739, 0x01}, + {0x8233e830, 0x01}, + {0x8233e831, 0x01}, + {0x8233e833, 0x01}, + {0x8233e834, 0x01}, + {0x8233e835, 0x01}, + {0x8233e836, 0x01}, + {0x8233e837, 0x01}, + {0x8233e930, 0x01}, + {0x8233e931, 0x01}, + {0x8233e932, 0x01}, + {0x8233e933, 0x01}, + {0x8233e934, 0x01}, + {0x8233e935, 0x01}, + {0x8233e936, 0x01}, + {0x8233e937, 0x01}, + {0x8233e938, 0x01}, + {0x8233e939, 0x01}, + {0x8233ea30, 0x01}, + {0x8233ea31, 0x01}, + {0x8233ea32, 0x01}, + {0x8233ea33, 0x01}, + {0x8233ea34, 0x01}, + {0x8233ea35, 0x01}, + {0x8233ea36, 0x01}, + {0x8233ea37, 0x01}, + {0x8233ea38, 0x01}, + {0x8233ea39, 0x01}, + {0x8233eb30, 0x01}, + {0x8233eb31, 0x01}, + {0x8233eb32, 0x01}, + {0x8233eb33, 0x01}, + {0x8233eb34, 0x01}, + {0x8233eb35, 0x01}, + {0x8233eb36, 0x01}, + {0x8233eb37, 0x01}, + {0x8233eb38, 0x01}, + {0x8233eb39, 0x01}, + {0x8233ec30, 0x01}, + {0x8233ec31, 0x01}, + {0x8233ec32, 0x01}, + {0x8233ec33, 0x01}, + {0x8233ec35, 0x01}, + {0x8233ec36, 0x01}, + {0x8233ec37, 0x01}, + {0x8233ec38, 0x01}, + {0x8233ec39, 0x01}, + {0x8233ed30, 0x01}, + {0x8233ed31, 0x01}, + {0x8233ed32, 0x01}, + {0x8233ed33, 0x01}, + {0x8233ed34, 0x01}, + {0x8233ed35, 0x01}, + {0x8233ed36, 0x01}, + {0x8233ed37, 0x01}, + {0x8233ed38, 0x01}, + {0x8233ed39, 0x01}, + {0x8233ee30, 0x01}, + {0x8233ee31, 0x01}, + {0x8233ee32, 0x01}, + {0x8233ee33, 0x01}, + {0x8233ee34, 0x01}, + {0x8233ee35, 0x01}, + {0x8233ee36, 0x01}, + {0x8233ee37, 0x01}, + {0x8233ee38, 0x01}, + {0x8233ee39, 0x01}, + {0x8233ef30, 0x01}, + {0x8233ef31, 0x01}, + {0x8233ef32, 0x01}, + {0x8233ef33, 0x01}, + {0x8233ef34, 0x01}, + {0x8233ef35, 0x01}, + {0x8233ef36, 0x01}, + {0x8233ef37, 0x01}, + {0x8233ef38, 0x01}, + {0x8233ef39, 0x01}, + {0x8233f030, 0x01}, + {0x8233f031, 0x01}, + {0x8233f032, 0x01}, + {0x8233f033, 0x01}, + {0x8233f034, 0x01}, + {0x8233f035, 0x01}, + {0x8233f036, 0x01}, + {0x8233f037, 0x01}, + {0x8233f038, 0x01}, + {0x8233f039, 0x01}, + {0x8233f130, 0x01}, + {0x8233f131, 0x01}, + {0x8233f132, 0x01}, + {0x8233f133, 0x01}, + {0x8233f134, 0x01}, + {0x8233f135, 0x01}, + {0x8233f136, 0x01}, + {0x8233f137, 0x01}, + {0x8233f138, 0x01}, + {0x8233f139, 0x01}, + {0x8233f230, 0x01}, + {0x8233f231, 0x01}, + {0x8233f232, 0x01}, + {0x8233f233, 0x01}, + {0x8233f234, 0x01}, + {0x8233f235, 0x01}, + {0x8233f236, 0x01}, + {0x8233f237, 0x01}, + {0x8233f330, 0x01}, + {0x8233f331, 0x01}, + {0x8233f332, 0x01}, + {0x8233f333, 0x01}, + {0x8233f334, 0x01}, + {0x8233f335, 0x01}, + {0x8233f336, 0x01}, + {0x8233f337, 0x01}, + {0x8233f338, 0x01}, + {0x8233f339, 0x01}, + {0x8233f430, 0x01}, + {0x8233f431, 0x01}, + {0x8233f432, 0x01}, + {0x8233f433, 0x01}, + {0x8233f434, 0x01}, + {0x8233f435, 0x01}, + {0x8233f436, 0x01}, + {0x8233f437, 0x01}, + {0x8233f438, 0x01}, + {0x8233f439, 0x01}, + {0x8233f530, 0x01}, + {0x8233f531, 0x01}, + {0x8233f532, 0x01}, + {0x8233f533, 0x01}, + {0x8233f535, 0x01}, + {0x8233f536, 0x01}, + {0x8233f537, 0x01}, + {0x8233f538, 0x01}, + {0x8233f539, 0x01}, + {0x8233f630, 0x01}, + {0x8233f631, 0x01}, + {0x8233f632, 0x01}, + {0x8233f633, 0x01}, + {0x8233f635, 0x01}, + {0x8233f636, 0x01}, + {0x8233f637, 0x01}, + {0x8233f638, 0x01}, + {0x8233f639, 0x01}, + {0x8233f730, 0x01}, + {0x8233f731, 0x01}, + {0x8233f732, 0x01}, + {0x8233f733, 0x01}, + {0x8233f734, 0x01}, + {0x8233f735, 0x01}, + {0x8233f736, 0x01}, + {0x8233f737, 0x01}, + {0x8233f738, 0x01}, + {0x8233f739, 0x01}, + {0x8233f830, 0x01}, + {0x8233f831, 0x01}, + {0x8233f832, 0x01}, + {0x8233f833, 0x01}, + {0x8233f834, 0x01}, + {0x8233f835, 0x01}, + {0x8233f836, 0x01}, + {0x8233f837, 0x01}, + {0x8233f838, 0x01}, + {0x8233f839, 0x01}, + {0x8233f930, 0x01}, + {0x8233f931, 0x01}, + {0x8233f932, 0x01}, + {0x8233f933, 0x01}, + {0x8233f934, 0x01}, + {0x8233f935, 0x01}, + {0x8233f936, 0x01}, + {0x8233f937, 0x01}, + {0x8233f938, 0x01}, + {0x8233f939, 0x01}, + {0x8233fa31, 0x01}, + {0x8233fa32, 0x01}, + {0x8233fa33, 0x01}, + {0x8233fa34, 0x01}, + {0x8233fa35, 0x01}, + {0x8233fa36, 0x01}, + {0x8233fa37, 0x01}, + {0x8233fa38, 0x01}, + {0x8233fa39, 0x01}, + {0x8233fb30, 0x01}, + {0x8233fb31, 0x01}, + {0x8233fb32, 0x01}, + {0x8233fb33, 0x01}, + {0x8233fb34, 0x01}, + {0x8233fb35, 0x01}, + {0x8233fb36, 0x01}, + {0x8233fb37, 0x01}, + {0x8233fb38, 0x01}, + {0x8233fb39, 0x01}, + {0x8233fc30, 0x01}, + {0x8233fc31, 0x01}, + {0x8233fc32, 0x01}, + {0x8233fc33, 0x01}, + {0x8233fc34, 0x01}, + {0x8233fc35, 0x01}, + {0x8233fc36, 0x01}, + {0x8233fc37, 0x01}, + {0x8233fc38, 0x01}, + {0x8233fc39, 0x01}, + {0x8233fd30, 0x01}, + {0x8233fd31, 0x01}, + {0x8233fd32, 0x01}, + {0x8233fd33, 0x01}, + {0x8233fd34, 0x01}, + {0x8233fd35, 0x01}, + {0x8233fd36, 0x01}, + {0x8233fd37, 0x01}, + {0x8233fd38, 0x01}, + {0x8233fd39, 0x01}, + {0x8233fe30, 0x01}, + {0x8233fe31, 0x01}, + {0x8233fe32, 0x01}, + {0x8233fe33, 0x01}, + {0x8233fe34, 0x01}, + {0x8233fe35, 0x01}, + {0x8233fe36, 0x01}, + {0x8233fe37, 0x01}, + {0x8233fe38, 0x01}, + {0x8233fe39, 0x01}, + {0x82348130, 0x01}, + {0x82348131, 0x01}, + {0x82348132, 0x01}, + {0x82348133, 0x01}, + {0x82348134, 0x01}, + {0x82348135, 0x01}, + {0x82348136, 0x01}, + {0x82348137, 0x01}, + {0x82348138, 0x01}, + {0x82348139, 0x01}, + {0x82348230, 0x01}, + {0x82348231, 0x01}, + {0x82348233, 0x01}, + {0x82348234, 0x01}, + {0x82348235, 0x01}, + {0x82348236, 0x01}, + {0x82348237, 0x01}, + {0x82348238, 0x01}, + {0x82348239, 0x01}, + {0x82348330, 0x01}, + {0x82348331, 0x01}, + {0x82348333, 0x01}, + {0x82348334, 0x01}, + {0x82348335, 0x01}, + {0x82348336, 0x01}, + {0x82348337, 0x01}, + {0x82348338, 0x01}, + {0x82348339, 0x01}, + {0x82348430, 0x01}, + {0x82348431, 0x01}, + {0x82348432, 0x01}, + {0x82348433, 0x01}, + {0x82348434, 0x01}, + {0x82348436, 0x01}, + {0x82348437, 0x01}, + {0x82348438, 0x01}, + {0x82348439, 0x01}, + {0x82348530, 0x01}, + {0x82348531, 0x01}, + {0x82348532, 0x01}, + {0x82348533, 0x01}, + {0x82348535, 0x01}, + {0x82348536, 0x01}, + {0x82348537, 0x01}, + {0x82348538, 0x01}, + {0x82348539, 0x01}, + {0x82348630, 0x01}, + {0x82348631, 0x01}, + {0x82348632, 0x01}, + {0x82348633, 0x01}, + {0x82348634, 0x01}, + {0x82348635, 0x01}, + {0x82348636, 0x01}, + {0x82348637, 0x01}, + {0x82348638, 0x01}, + {0x82348639, 0x01}, + {0x82348730, 0x01}, + {0x82348731, 0x01}, + {0x82348732, 0x01}, + {0x82348733, 0x01}, + {0x82348734, 0x01}, + {0x82348735, 0x01}, + {0x82348736, 0x01}, + {0x82348737, 0x01}, + {0x82348738, 0x01}, + {0x82348739, 0x01}, + {0x82348830, 0x01}, + {0x82348831, 0x01}, + {0x82348832, 0x01}, + {0x82348833, 0x01}, + {0x82348834, 0x01}, + {0x82348836, 0x01}, + {0x82348837, 0x01}, + {0x82348838, 0x01}, + {0x82348839, 0x01}, + {0x82348930, 0x01}, + {0x82348931, 0x01}, + {0x82348932, 0x01}, + {0x82348933, 0x01}, + {0x82348934, 0x01}, + {0x82348935, 0x01}, + {0x82348936, 0x01}, + {0x82348937, 0x01}, + {0x82348938, 0x01}, + {0x82348939, 0x01}, + {0x82348a30, 0x01}, + {0x82348a31, 0x01}, + {0x82348a32, 0x01}, + {0x82348a34, 0x01}, + {0x82348a35, 0x01}, + {0x82348a36, 0x01}, + {0x82348a37, 0x01}, + {0x82348a38, 0x01}, + {0x82348a39, 0x01}, + {0x82348b30, 0x01}, + {0x82348b31, 0x01}, + {0x82348b33, 0x01}, + {0x82348b34, 0x01}, + {0x82348b35, 0x01}, + {0x82348b36, 0x01}, + {0x82348b37, 0x01}, + {0x82348b38, 0x01}, + {0x82348b39, 0x01}, + {0x82348c30, 0x01}, + {0x82348c31, 0x01}, + {0x82348c32, 0x01}, + {0x82348c33, 0x01}, + {0x82348c34, 0x01}, + {0x82348c35, 0x01}, + {0x82348c36, 0x01}, + {0x82348c37, 0x01}, + {0x82348c38, 0x01}, + {0x82348c39, 0x01}, + {0x82348d30, 0x01}, + {0x82348d31, 0x01}, + {0x82348d32, 0x01}, + {0x82348d33, 0x01}, + {0x82348d34, 0x01}, + {0x82348d35, 0x01}, + {0x82348d36, 0x01}, + {0x82348d37, 0x01}, + {0x82348d38, 0x01}, + {0x82348e30, 0x01}, + {0x82348e31, 0x01}, + {0x82348e32, 0x01}, + {0x82348e33, 0x01}, + {0x82348e34, 0x01}, + {0x82348e35, 0x01}, + {0x82348e36, 0x01}, + {0x82348e37, 0x01}, + {0x82348e38, 0x01}, + {0x82348e39, 0x01}, + {0x82348f30, 0x01}, + {0x82348f31, 0x01}, + {0x82348f32, 0x01}, + {0x82348f33, 0x01}, + {0x82348f34, 0x01}, + {0x82348f35, 0x01}, + {0x82348f36, 0x01}, + {0x82348f37, 0x01}, + {0x82348f39, 0x01}, + {0x82349030, 0x01}, + {0x82349031, 0x01}, + {0x82349032, 0x01}, + {0x82349033, 0x01}, + {0x82349034, 0x01}, + {0x82349035, 0x01}, + {0x82349036, 0x01}, + {0x82349037, 0x01}, + {0x82349038, 0x01}, + {0x82349039, 0x01}, + {0x82349130, 0x01}, + {0x82349131, 0x01}, + {0x82349132, 0x01}, + {0x82349133, 0x01}, + {0x82349134, 0x01}, + {0x82349135, 0x01}, + {0x82349136, 0x01}, + {0x82349137, 0x01}, + {0x82349138, 0x01}, + {0x82349139, 0x01}, + {0x82349230, 0x01}, + {0x82349231, 0x01}, + {0x82349232, 0x01}, + {0x82349233, 0x01}, + {0x82349234, 0x01}, + {0x82349235, 0x01}, + {0x82349236, 0x01}, + {0x82349237, 0x01}, + {0x82349238, 0x01}, + {0x82349239, 0x01}, + {0x82349330, 0x01}, + {0x82349331, 0x01}, + {0x82349332, 0x01}, + {0x82349333, 0x01}, + {0x82349334, 0x01}, + {0x82349335, 0x01}, + {0x82349336, 0x01}, + {0x82349337, 0x01}, + {0x82349338, 0x01}, + {0x82349339, 0x01}, + {0x82349430, 0x01}, + {0x82349431, 0x01}, + {0x82349432, 0x01}, + {0x82349433, 0x01}, + {0x82349434, 0x01}, + {0x82349435, 0x01}, + {0x82349436, 0x01}, + {0x82349437, 0x01}, + {0x82349438, 0x01}, + {0x82349439, 0x01}, + {0x82349530, 0x01}, + {0x82349531, 0x01}, + {0x82349532, 0x01}, + {0x82349533, 0x01}, + {0x82349534, 0x01}, + {0x82349535, 0x01}, + {0x82349536, 0x01}, + {0x82349537, 0x01}, + {0x82349539, 0x01}, + {0x82349630, 0x01}, + {0x82349631, 0x01}, + {0x82349632, 0x01}, + {0x82349633, 0x01}, + {0x82349634, 0x01}, + {0x82349635, 0x01}, + {0x82349636, 0x01}, + {0x82349637, 0x01}, + {0x82349638, 0x01}, + {0x82349639, 0x01}, + {0x82349730, 0x01}, + {0x82349731, 0x01}, + {0x82349732, 0x01}, + {0x82349733, 0x01}, + {0x82349734, 0x01}, + {0x82349735, 0x01}, + {0x82349736, 0x01}, + {0x82349737, 0x01}, + {0x82349738, 0x01}, + {0x82349739, 0x01}, + {0x82349830, 0x01}, + {0x82349831, 0x01}, + {0x82349832, 0x01}, + {0x82349833, 0x01}, + {0x82349834, 0x01}, + {0x82349835, 0x01}, + {0x82349836, 0x01}, + {0x82349837, 0x01}, + {0x82349838, 0x01}, + {0x82349930, 0x01}, + {0x82349931, 0x01}, + {0x82349932, 0x01}, + {0x82349933, 0x01}, + {0x82349934, 0x01}, + {0x82349935, 0x01}, + {0x82349936, 0x01}, + {0x82349937, 0x01}, + {0x82349938, 0x01}, + {0x82349939, 0x01}, + {0x82349a30, 0x01}, + {0x82349a31, 0x01}, + {0x82349a32, 0x01}, + {0x82349a33, 0x01}, + {0x82349a34, 0x01}, + {0x82349a35, 0x01}, + {0x82349a36, 0x01}, + {0x82349a37, 0x01}, + {0x82349a38, 0x01}, + {0x82349a39, 0x01}, + {0x82349b30, 0x01}, + {0x82349b31, 0x01}, + {0x82349b32, 0x01}, + {0x82349b33, 0x01}, + {0x82349b34, 0x01}, + {0x82349b35, 0x01}, + {0x82349b36, 0x01}, + {0x82349b37, 0x01}, + {0x82349c31, 0x01}, + {0x82349c33, 0x01}, + {0x82349c36, 0x01}, + {0x82349c37, 0x01}, + {0x82349c39, 0x01}, + {0x82349d30, 0x01}, + {0x82349d31, 0x01}, + {0x82349d32, 0x01}, + {0x82349d33, 0x01}, + {0x82349d34, 0x01}, + {0x82349d35, 0x01}, + {0x82349d36, 0x01}, + {0x82349d37, 0x01}, + {0x82349d38, 0x01}, + {0x82349d39, 0x01}, + {0x82349e30, 0x01}, + {0x82349e31, 0x01}, + {0x82349e32, 0x01}, + {0x82349e33, 0x01}, + {0x82349e34, 0x01}, + {0x82349e35, 0x01}, + {0x82349e36, 0x01}, + {0x82349e37, 0x01}, + {0x82349e38, 0x01}, + {0x82349e39, 0x01}, + {0x82349f30, 0x01}, + {0x82349f31, 0x01}, + {0x82349f32, 0x01}, + {0x82349f33, 0x01}, + {0x82349f34, 0x01}, + {0x82349f35, 0x01}, + {0x82349f36, 0x01}, + {0x82349f37, 0x01}, + {0x82349f38, 0x01}, + {0x82349f39, 0x01}, + {0x8234a030, 0x01}, + {0x8234a031, 0x01}, + {0x8234a032, 0x01}, + {0x8234a033, 0x01}, + {0x8234a034, 0x01}, + {0x8234a036, 0x01}, + {0x8234a037, 0x01}, + {0x8234a038, 0x01}, + {0x8234a039, 0x01}, + {0x8234a130, 0x01}, + {0x8234a132, 0x01}, + {0x8234a133, 0x01}, + {0x8234a134, 0x01}, + {0x8234a135, 0x01}, + {0x8234a136, 0x01}, + {0x8234a137, 0x01}, + {0x8234a230, 0x01}, + {0x8234a231, 0x01}, + {0x8234a232, 0x01}, + {0x8234a233, 0x01}, + {0x8234a234, 0x01}, + {0x8234a235, 0x01}, + {0x8234a236, 0x01}, + {0x8234a238, 0x01}, + {0x8234a239, 0x01}, + {0x8234a330, 0x01}, + {0x8234a331, 0x01}, + {0x8234a332, 0x01}, + {0x8234a333, 0x01}, + {0x8234a334, 0x01}, + {0x8234a335, 0x01}, + {0x8234a336, 0x01}, + {0x8234a337, 0x01}, + {0x8234a338, 0x01}, + {0x8234a339, 0x01}, + {0x8234a430, 0x01}, + {0x8234a431, 0x01}, + {0x8234a432, 0x01}, + {0x8234a433, 0x01}, + {0x8234a434, 0x01}, + {0x8234a435, 0x01}, + {0x8234a436, 0x01}, + {0x8234a437, 0x01}, + {0x8234a438, 0x01}, + {0x8234a439, 0x01}, + {0x8234a530, 0x01}, + {0x8234a531, 0x01}, + {0x8234a532, 0x01}, + {0x8234a533, 0x01}, + {0x8234a534, 0x01}, + {0x8234a535, 0x01}, + {0x8234a536, 0x01}, + {0x8234a537, 0x01}, + {0x8234a538, 0x01}, + {0x8234a539, 0x01}, + {0x8234a631, 0x01}, + {0x8234a632, 0x01}, + {0x8234a633, 0x01}, + {0x8234a635, 0x01}, + {0x8234a636, 0x01}, + {0x8234a637, 0x01}, + {0x8234a638, 0x01}, + {0x8234a639, 0x01}, + {0x8234a730, 0x01}, + {0x8234a731, 0x01}, + {0x8234a732, 0x01}, + {0x8234a733, 0x01}, + {0x8234a734, 0x01}, + {0x8234a735, 0x01}, + {0x8234a736, 0x01}, + {0x8234a737, 0x01}, + {0x8234a738, 0x01}, + {0x8234a739, 0x01}, + {0x8234a830, 0x01}, + {0x8234a831, 0x01}, + {0x8234a832, 0x01}, + {0x8234a833, 0x01}, + {0x8234a834, 0x01}, + {0x8234a835, 0x01}, + {0x8234a836, 0x01}, + {0x8234a837, 0x01}, + {0x8234a838, 0x01}, + {0x8234a839, 0x01}, + {0x8234a930, 0x01}, + {0x8234a931, 0x01}, + {0x8234a932, 0x01}, + {0x8234a933, 0x01}, + {0x8234a934, 0x01}, + {0x8234a935, 0x01}, + {0x8234a936, 0x01}, + {0x8234a937, 0x01}, + {0x8234a938, 0x01}, + {0x8234a939, 0x01}, + {0x8234aa30, 0x01}, + {0x8234aa31, 0x01}, + {0x8234aa32, 0x01}, + {0x8234aa33, 0x01}, + {0x8234aa34, 0x01}, + {0x8234aa35, 0x01}, + {0x8234aa36, 0x01}, + {0x8234aa37, 0x01}, + {0x8234aa38, 0x01}, + {0x8234aa39, 0x01}, + {0x8234ab30, 0x01}, + {0x8234ab31, 0x01}, + {0x8234ab32, 0x01}, + {0x8234ab33, 0x01}, + {0x8234ab34, 0x01}, + {0x8234ab35, 0x01}, + {0x8234ab36, 0x01}, + {0x8234ab37, 0x01}, + {0x8234ab38, 0x01}, + {0x8234ab39, 0x01}, + {0x8234ac30, 0x01}, + {0x8234ac31, 0x01}, + {0x8234ac32, 0x01}, + {0x8234ac33, 0x01}, + {0x8234ac34, 0x01}, + {0x8234ac35, 0x01}, + {0x8234ac36, 0x01}, + {0x8234ac37, 0x01}, + {0x8234ac38, 0x01}, + {0x8234ac39, 0x01}, + {0x8234ad30, 0x01}, + {0x8234ad31, 0x01}, + {0x8234ad32, 0x01}, + {0x8234ad33, 0x01}, + {0x8234ad34, 0x01}, + {0x8234ad35, 0x01}, + {0x8234ad36, 0x01}, + {0x8234ad38, 0x01}, + {0x8234ad39, 0x01}, + {0x8234ae30, 0x01}, + {0x8234ae31, 0x01}, + {0x8234ae32, 0x01}, + {0x8234ae33, 0x01}, + {0x8234ae34, 0x01}, + {0x8234ae35, 0x01}, + {0x8234ae36, 0x01}, + {0x8234ae37, 0x01}, + {0x8234ae38, 0x01}, + {0x8234ae39, 0x01}, + {0x8234af30, 0x01}, + {0x8234af31, 0x01}, + {0x8234af32, 0x01}, + {0x8234af33, 0x01}, + {0x8234af34, 0x01}, + {0x8234af35, 0x01}, + {0x8234af36, 0x01}, + {0x8234af37, 0x01}, + {0x8234af38, 0x01}, + {0x8234af39, 0x01}, + {0x8234b030, 0x01}, + {0x8234b032, 0x01}, + {0x8234b033, 0x01}, + {0x8234b034, 0x01}, + {0x8234b035, 0x01}, + {0x8234b036, 0x01}, + {0x8234b037, 0x01}, + {0x8234b038, 0x01}, + {0x8234b039, 0x01}, + {0x8234b130, 0x01}, + {0x8234b131, 0x01}, + {0x8234b132, 0x01}, + {0x8234b133, 0x01}, + {0x8234b134, 0x01}, + {0x8234b135, 0x01}, + {0x8234b136, 0x01}, + {0x8234b137, 0x01}, + {0x8234b138, 0x01}, + {0x8234b139, 0x01}, + {0x8234b230, 0x01}, + {0x8234b231, 0x01}, + {0x8234b232, 0x01}, + {0x8234b233, 0x01}, + {0x8234b234, 0x01}, + {0x8234b235, 0x01}, + {0x8234b236, 0x01}, + {0x8234b237, 0x01}, + {0x8234b238, 0x01}, + {0x8234b239, 0x01}, + {0x8234b330, 0x01}, + {0x8234b331, 0x01}, + {0x8234b332, 0x01}, + {0x8234b333, 0x01}, + {0x8234b334, 0x01}, + {0x8234b335, 0x01}, + {0x8234b336, 0x01}, + {0x8234b337, 0x01}, + {0x8234b338, 0x01}, + {0x8234b339, 0x01}, + {0x8234b430, 0x01}, + {0x8234b431, 0x01}, + {0x8234b432, 0x01}, + {0x8234b433, 0x01}, + {0x8234b434, 0x01}, + {0x8234b435, 0x01}, + {0x8234b436, 0x01}, + {0x8234b437, 0x01}, + {0x8234b438, 0x01}, + {0x8234b439, 0x01}, + {0x8234b530, 0x01}, + {0x8234b531, 0x01}, + {0x8234b532, 0x01}, + {0x8234b533, 0x01}, + {0x8234b534, 0x01}, + {0x8234b535, 0x01}, + {0x8234b536, 0x01}, + {0x8234b537, 0x01}, + {0x8234b538, 0x01}, + {0x8234b539, 0x01}, + {0x8234b630, 0x01}, + {0x8234b631, 0x01}, + {0x8234b632, 0x01}, + {0x8234b633, 0x01}, + {0x8234b634, 0x01}, + {0x8234b635, 0x01}, + {0x8234b636, 0x01}, + {0x8234b637, 0x01}, + {0x8234b638, 0x01}, + {0x8234b639, 0x01}, + {0x8234b730, 0x01}, + {0x8234b731, 0x01}, + {0x8234b732, 0x01}, + {0x8234b733, 0x01}, + {0x8234b734, 0x01}, + {0x8234b735, 0x01}, + {0x8234b736, 0x01}, + {0x8234b737, 0x01}, + {0x8234b738, 0x01}, + {0x8234b739, 0x01}, + {0x8234b830, 0x01}, + {0x8234b831, 0x01}, + {0x8234b833, 0x01}, + {0x8234b834, 0x01}, + {0x8234b835, 0x01}, + {0x8234b837, 0x01}, + {0x8234b838, 0x01}, + {0x8234b839, 0x01}, + {0x8234b930, 0x01}, + {0x8234b931, 0x01}, + {0x8234b932, 0x01}, + {0x8234b934, 0x01}, + {0x8234b935, 0x01}, + {0x8234b936, 0x01}, + {0x8234b937, 0x01}, + {0x8234b938, 0x01}, + {0x8234b939, 0x01}, + {0x8234ba30, 0x01}, + {0x8234ba31, 0x01}, + {0x8234ba32, 0x01}, + {0x8234ba33, 0x01}, + {0x8234ba34, 0x01}, + {0x8234ba35, 0x01}, + {0x8234ba36, 0x01}, + {0x8234ba37, 0x01}, + {0x8234ba38, 0x01}, + {0x8234ba39, 0x01}, + {0x8234bb30, 0x01}, + {0x8234bb31, 0x01}, + {0x8234bb32, 0x01}, + {0x8234bb33, 0x01}, + {0x8234bb34, 0x01}, + {0x8234bb35, 0x01}, + {0x8234bb36, 0x01}, + {0x8234bb37, 0x01}, + {0x8234bb38, 0x01}, + {0x8234bb39, 0x01}, + {0x8234bc30, 0x01}, + {0x8234bc31, 0x01}, + {0x8234bc32, 0x01}, + {0x8234bc33, 0x01}, + {0x8234bc34, 0x01}, + {0x8234bc35, 0x01}, + {0x8234bc36, 0x01}, + {0x8234bc37, 0x01}, + {0x8234bc38, 0x01}, + {0x8234bc39, 0x01}, + {0x8234bd30, 0x01}, + {0x8234bd31, 0x01}, + {0x8234bd32, 0x01}, + {0x8234bd33, 0x01}, + {0x8234bd34, 0x01}, + {0x8234bd35, 0x01}, + {0x8234bd36, 0x01}, + {0x8234bd37, 0x01}, + {0x8234bd38, 0x01}, + {0x8234bd39, 0x01}, + {0x8234be31, 0x01}, + {0x8234be32, 0x01}, + {0x8234be33, 0x01}, + {0x8234be34, 0x01}, + {0x8234be35, 0x01}, + {0x8234be36, 0x01}, + {0x8234be37, 0x01}, + {0x8234be38, 0x01}, + {0x8234be39, 0x01}, + {0x8234bf30, 0x01}, + {0x8234bf31, 0x01}, + {0x8234bf32, 0x01}, + {0x8234bf33, 0x01}, + {0x8234bf34, 0x01}, + {0x8234bf35, 0x01}, + {0x8234bf36, 0x01}, + {0x8234bf37, 0x01}, + {0x8234bf38, 0x01}, + {0x8234bf39, 0x01}, + {0x8234c030, 0x01}, + {0x8234c031, 0x01}, + {0x8234c032, 0x01}, + {0x8234c033, 0x01}, + {0x8234c034, 0x01}, + {0x8234c035, 0x01}, + {0x8234c036, 0x01}, + {0x8234c037, 0x01}, + {0x8234c038, 0x01}, + {0x8234c039, 0x01}, + {0x8234c130, 0x01}, + {0x8234c131, 0x01}, + {0x8234c132, 0x01}, + {0x8234c133, 0x01}, + {0x8234c134, 0x01}, + {0x8234c135, 0x01}, + {0x8234c136, 0x01}, + {0x8234c137, 0x01}, + {0x8234c138, 0x01}, + {0x8234c139, 0x01}, + {0x8234c230, 0x01}, + {0x8234c231, 0x01}, + {0x8234c232, 0x01}, + {0x8234c233, 0x01}, + {0x8234c234, 0x01}, + {0x8234c235, 0x01}, + {0x8234c236, 0x01}, + {0x8234c237, 0x01}, + {0x8234c238, 0x01}, + {0x8234c239, 0x01}, + {0x8234c330, 0x01}, + {0x8234c331, 0x01}, + {0x8234c332, 0x01}, + {0x8234c333, 0x01}, + {0x8234c334, 0x01}, + {0x8234c335, 0x01}, + {0x8234c336, 0x01}, + {0x8234c337, 0x01}, + {0x8234c338, 0x01}, + {0x8234c339, 0x01}, + {0x8234c430, 0x01}, + {0x8234c431, 0x01}, + {0x8234c432, 0x01}, + {0x8234c433, 0x01}, + {0x8234c434, 0x01}, + {0x8234c435, 0x01}, + {0x8234c436, 0x01}, + {0x8234c437, 0x01}, + {0x8234c438, 0x01}, + {0x8234c439, 0x01}, + {0x8234c530, 0x01}, + {0x8234c531, 0x01}, + {0x8234c532, 0x01}, + {0x8234c533, 0x01}, + {0x8234c534, 0x01}, + {0x8234c535, 0x01}, + {0x8234c536, 0x01}, + {0x8234c537, 0x01}, + {0x8234c538, 0x01}, + {0x8234c539, 0x01}, + {0x8234c630, 0x01}, + {0x8234c631, 0x01}, + {0x8234c632, 0x01}, + {0x8234c633, 0x01}, + {0x8234c634, 0x01}, + {0x8234c635, 0x01}, + {0x8234c636, 0x01}, + {0x8234c637, 0x01}, + {0x8234c638, 0x01}, + {0x8234c639, 0x01}, + {0x8234c730, 0x01}, + {0x8234c731, 0x01}, + {0x8234c732, 0x01}, + {0x8234c733, 0x01}, + {0x8234c734, 0x01}, + {0x8234c735, 0x01}, + {0x8234c736, 0x01}, + {0x8234c737, 0x01}, + {0x8234c738, 0x01}, + {0x8234c739, 0x01}, + {0x8234c830, 0x01}, + {0x8234c831, 0x01}, + {0x8234c832, 0x01}, + {0x8234c833, 0x01}, + {0x8234c834, 0x01}, + {0x8234c835, 0x01}, + {0x8234c836, 0x01}, + {0x8234c837, 0x01}, + {0x8234c838, 0x01}, + {0x8234c839, 0x01}, + {0x8234c930, 0x01}, + {0x8234c931, 0x01}, + {0x8234c932, 0x01}, + {0x8234c933, 0x01}, + {0x8234c934, 0x01}, + {0x8234c935, 0x01}, + {0x8234c936, 0x01}, + {0x8234c937, 0x01}, + {0x8234c939, 0x01}, + {0x8234ca30, 0x01}, + {0x8234ca31, 0x01}, + {0x8234ca32, 0x01}, + {0x8234ca33, 0x01}, + {0x8234ca34, 0x01}, + {0x8234ca35, 0x01}, + {0x8234ca36, 0x01}, + {0x8234ca37, 0x01}, + {0x8234ca38, 0x01}, + {0x8234ca39, 0x01}, + {0x8234cb30, 0x01}, + {0x8234cb32, 0x01}, + {0x8234cb33, 0x01}, + {0x8234cb34, 0x01}, + {0x8234cb35, 0x01}, + {0x8234cb36, 0x01}, + {0x8234cb37, 0x01}, + {0x8234cb38, 0x01}, + {0x8234cb39, 0x01}, + {0x8234cc30, 0x01}, + {0x8234cc31, 0x01}, + {0x8234cc32, 0x01}, + {0x8234cc33, 0x01}, + {0x8234cc34, 0x01}, + {0x8234cc36, 0x01}, + {0x8234cc37, 0x01}, + {0x8234cc38, 0x01}, + {0x8234cc39, 0x01}, + {0x8234cd30, 0x01}, + {0x8234cd31, 0x01}, + {0x8234cd32, 0x01}, + {0x8234cd33, 0x01}, + {0x8234cd34, 0x01}, + {0x8234cd35, 0x01}, + {0x8234cd36, 0x01}, + {0x8234cd37, 0x01}, + {0x8234cd38, 0x01}, + {0x8234cd39, 0x01}, + {0x8234ce30, 0x01}, + {0x8234ce31, 0x01}, + {0x8234ce32, 0x01}, + {0x8234ce33, 0x01}, + {0x8234ce34, 0x01}, + {0x8234ce35, 0x01}, + {0x8234ce36, 0x01}, + {0x8234ce37, 0x01}, + {0x8234ce38, 0x01}, + {0x8234ce39, 0x01}, + {0x8234cf30, 0x01}, + {0x8234cf31, 0x01}, + {0x8234cf33, 0x01}, + {0x8234cf34, 0x01}, + {0x8234cf35, 0x01}, + {0x8234cf36, 0x01}, + {0x8234cf37, 0x01}, + {0x8234cf38, 0x01}, + {0x8234cf39, 0x01}, + {0x8234d030, 0x01}, + {0x8234d031, 0x01}, + {0x8234d032, 0x01}, + {0x8234d033, 0x01}, + {0x8234d034, 0x01}, + {0x8234d035, 0x01}, + {0x8234d036, 0x01}, + {0x8234d037, 0x01}, + {0x8234d038, 0x01}, + {0x8234d039, 0x01}, + {0x8234d130, 0x01}, + {0x8234d131, 0x01}, + {0x8234d132, 0x01}, + {0x8234d133, 0x01}, + {0x8234d134, 0x01}, + {0x8234d135, 0x01}, + {0x8234d136, 0x01}, + {0x8234d137, 0x01}, + {0x8234d138, 0x01}, + {0x8234d139, 0x01}, + {0x8234d230, 0x01}, + {0x8234d231, 0x01}, + {0x8234d232, 0x01}, + {0x8234d233, 0x01}, + {0x8234d234, 0x01}, + {0x8234d235, 0x01}, + {0x8234d236, 0x01}, + {0x8234d237, 0x01}, + {0x8234d238, 0x01}, + {0x8234d239, 0x01}, + {0x8234d330, 0x01}, + {0x8234d331, 0x01}, + {0x8234d332, 0x01}, + {0x8234d333, 0x01}, + {0x8234d334, 0x01}, + {0x8234d335, 0x01}, + {0x8234d336, 0x01}, + {0x8234d337, 0x01}, + {0x8234d338, 0x01}, + {0x8234d339, 0x01}, + {0x8234d430, 0x01}, + {0x8234d431, 0x01}, + {0x8234d432, 0x01}, + {0x8234d433, 0x01}, + {0x8234d434, 0x01}, + {0x8234d435, 0x01}, + {0x8234d436, 0x01}, + {0x8234d437, 0x01}, + {0x8234d438, 0x01}, + {0x8234d439, 0x01}, + {0x8234d530, 0x01}, + {0x8234d531, 0x01}, + {0x8234d532, 0x01}, + {0x8234d533, 0x01}, + {0x8234d534, 0x01}, + {0x8234d535, 0x01}, + {0x8234d536, 0x01}, + {0x8234d537, 0x01}, + {0x8234d538, 0x01}, + {0x8234d539, 0x01}, + {0x8234d630, 0x01}, + {0x8234d631, 0x01}, + {0x8234d632, 0x01}, + {0x8234d633, 0x01}, + {0x8234d634, 0x01}, + {0x8234d635, 0x01}, + {0x8234d636, 0x01}, + {0x8234d637, 0x01}, + {0x8234d638, 0x01}, + {0x8234d639, 0x01}, + {0x8234d730, 0x01}, + {0x8234d731, 0x01}, + {0x8234d732, 0x01}, + {0x8234d733, 0x01}, + {0x8234d734, 0x01}, + {0x8234d735, 0x01}, + {0x8234d736, 0x01}, + {0x8234d737, 0x01}, + {0x8234d738, 0x01}, + {0x8234d739, 0x01}, + {0x8234d830, 0x01}, + {0x8234d831, 0x01}, + {0x8234d832, 0x01}, + {0x8234d833, 0x01}, + {0x8234d834, 0x01}, + {0x8234d835, 0x01}, + {0x8234d836, 0x01}, + {0x8234d837, 0x01}, + {0x8234d838, 0x01}, + {0x8234d839, 0x01}, + {0x8234d930, 0x01}, + {0x8234d931, 0x01}, + {0x8234d933, 0x01}, + {0x8234d934, 0x01}, + {0x8234d935, 0x01}, + {0x8234d936, 0x01}, + {0x8234d937, 0x01}, + {0x8234d938, 0x01}, + {0x8234d939, 0x01}, + {0x8234da30, 0x01}, + {0x8234da31, 0x01}, + {0x8234da32, 0x01}, + {0x8234da33, 0x01}, + {0x8234da34, 0x01}, + {0x8234da35, 0x01}, + {0x8234da36, 0x01}, + {0x8234da37, 0x01}, + {0x8234da38, 0x01}, + {0x8234da39, 0x01}, + {0x8234db31, 0x01}, + {0x8234db32, 0x01}, + {0x8234db33, 0x01}, + {0x8234db34, 0x01}, + {0x8234db35, 0x01}, + {0x8234db36, 0x01}, + {0x8234db37, 0x01}, + {0x8234db38, 0x01}, + {0x8234db39, 0x01}, + {0x8234dc30, 0x01}, + {0x8234dc31, 0x01}, + {0x8234dc32, 0x01}, + {0x8234dc33, 0x01}, + {0x8234dc34, 0x01}, + {0x8234dc35, 0x01}, + {0x8234dc36, 0x01}, + {0x8234dc37, 0x01}, + {0x8234dc38, 0x01}, + {0x8234dc39, 0x01}, + {0x8234dd30, 0x01}, + {0x8234dd31, 0x01}, + {0x8234dd32, 0x01}, + {0x8234dd33, 0x01}, + {0x8234dd34, 0x01}, + {0x8234dd35, 0x01}, + {0x8234dd36, 0x01}, + {0x8234dd37, 0x01}, + {0x8234dd38, 0x01}, + {0x8234dd39, 0x01}, + {0x8234de30, 0x01}, + {0x8234de31, 0x01}, + {0x8234de32, 0x01}, + {0x8234de33, 0x01}, + {0x8234de34, 0x01}, + {0x8234de35, 0x01}, + {0x8234de36, 0x01}, + {0x8234de37, 0x01}, + {0x8234de38, 0x01}, + {0x8234de39, 0x01}, + {0x8234df30, 0x01}, + {0x8234df31, 0x01}, + {0x8234df32, 0x01}, + {0x8234df33, 0x01}, + {0x8234df34, 0x01}, + {0x8234df35, 0x01}, + {0x8234df36, 0x01}, + {0x8234df37, 0x01}, + {0x8234df38, 0x01}, + {0x8234df39, 0x01}, + {0x8234e030, 0x01}, + {0x8234e032, 0x01}, + {0x8234e033, 0x01}, + {0x8234e034, 0x01}, + {0x8234e035, 0x01}, + {0x8234e037, 0x01}, + {0x8234e038, 0x01}, + {0x8234e130, 0x01}, + {0x8234e131, 0x01}, + {0x8234e132, 0x01}, + {0x8234e133, 0x01}, + {0x8234e134, 0x01}, + {0x8234e135, 0x01}, + {0x8234e136, 0x01}, + {0x8234e137, 0x01}, + {0x8234e138, 0x01}, + {0x8234e139, 0x01}, + {0x8234e230, 0x01}, + {0x8234e231, 0x01}, + {0x8234e232, 0x01}, + {0x8234e233, 0x01}, + {0x8234e234, 0x01}, + {0x8234e235, 0x01}, + {0x8234e236, 0x01}, + {0x8234e237, 0x01}, + {0x8234e238, 0x01}, + {0x8234e239, 0x01}, + {0x8234e330, 0x01}, + {0x8234e331, 0x01}, + {0x8234e332, 0x01}, + {0x8234e333, 0x01}, + {0x8234e334, 0x01}, + {0x8234e335, 0x01}, + {0x8234e336, 0x01}, + {0x8234e337, 0x01}, + {0x8234e338, 0x01}, + {0x8234e339, 0x01}, + {0x8234e430, 0x01}, + {0x8234e431, 0x01}, + {0x8234e432, 0x01}, + {0x8234e433, 0x01}, + {0x8234e434, 0x01}, + {0x8234e435, 0x01}, + {0x8234e436, 0x01}, + {0x8234e437, 0x01}, + {0x8234e438, 0x01}, + {0x8234e439, 0x01}, + {0x8234e530, 0x01}, + {0x8234e531, 0x01}, + {0x8234e532, 0x01}, + {0x8234e533, 0x01}, + {0x8234e534, 0x01}, + {0x8234e535, 0x01}, + {0x8234e536, 0x01}, + {0x8234e538, 0x01}, + {0x8234e632, 0x01}, + {0x8234e633, 0x01}, + {0x8234e634, 0x01}, + {0x8234e635, 0x01}, + {0x8234e636, 0x01}, + {0x8234e637, 0x01}, + {0x8234e638, 0x01}, + {0x8234e639, 0x01}, + {0x8234e730, 0x01}, + {0x8234e731, 0x01}, + {0x8234e732, 0x01}, + {0x8234e733, 0x01}, + {0x8234e734, 0x01}, + {0x8234e735, 0x01}, + {0x8234e736, 0x01}, + {0x8234e737, 0x01}, + {0x8234e738, 0x01}, + {0x8234e739, 0x01}, + {0x8234e830, 0x01}, + {0x8234e831, 0x01}, + {0x8234e832, 0x01}, + {0x8234e833, 0x01}, + {0x8234e834, 0x01}, + {0x8234e835, 0x01}, + {0x8234e836, 0x01}, + {0x8234e837, 0x01}, + {0x8234e838, 0x01}, + {0x8234e931, 0x01}, + {0x8234e932, 0x01}, + {0x8234e933, 0x01}, + {0x8234e934, 0x01}, + {0x8234e935, 0x01}, + {0x8234e936, 0x01}, + {0x8234e937, 0x01}, + {0x8234e938, 0x01}, + {0x8234e939, 0x01}, + {0x8234ea30, 0x01}, + {0x8234ea31, 0x01}, + {0x8234ea32, 0x01}, + {0x8234ea33, 0x01}, + {0x8234ea34, 0x01}, + {0x8234ea35, 0x01}, + {0x8234ea36, 0x01}, + {0x8234ea37, 0x01}, + {0x8234ea38, 0x01}, + {0x8234ea39, 0x01}, + {0x8234eb30, 0x01}, + {0x8234eb31, 0x01}, + {0x8234eb32, 0x01}, + {0x8234eb34, 0x01}, + {0x8234eb35, 0x01}, + {0x8234eb36, 0x01}, + {0x8234eb37, 0x01}, + {0x8234eb38, 0x01}, + {0x8234eb39, 0x01}, + {0x8234ec30, 0x01}, + {0x8234ec31, 0x01}, + {0x8234ec32, 0x01}, + {0x8234ec33, 0x01}, + {0x8234ec34, 0x01}, + {0x8234ec35, 0x01}, + {0x8234ec36, 0x01}, + {0x8234ec37, 0x01}, + {0x8234ec38, 0x01}, + {0x8234ec39, 0x01}, + {0x8234ed30, 0x01}, + {0x8234ed32, 0x01}, + {0x8234ed33, 0x01}, + {0x8234ed34, 0x01}, + {0x8234ed35, 0x01}, + {0x8234ed36, 0x01}, + {0x8234ed37, 0x01}, + {0x8234ed38, 0x01}, + {0x8234ed39, 0x01}, + {0x8234ee30, 0x01}, + {0x8234ee31, 0x01}, + {0x8234ee32, 0x01}, + {0x8234ee33, 0x01}, + {0x8234ee34, 0x01}, + {0x8234ee35, 0x01}, + {0x8234ee36, 0x01}, + {0x8234ee37, 0x01}, + {0x8234ee38, 0x01}, + {0x8234ee39, 0x01}, + {0x8234ef30, 0x01}, + {0x8234ef31, 0x01}, + {0x8234ef32, 0x01}, + {0x8234ef33, 0x01}, + {0x8234ef34, 0x01}, + {0x8234ef35, 0x01}, + {0x8234ef36, 0x01}, + {0x8234ef37, 0x01}, + {0x8234ef38, 0x01}, + {0x8234ef39, 0x01}, + {0x8234f030, 0x01}, + {0x8234f031, 0x01}, + {0x8234f032, 0x01}, + {0x8234f033, 0x01}, + {0x8234f034, 0x01}, + {0x8234f035, 0x01}, + {0x8234f036, 0x01}, + {0x8234f037, 0x01}, + {0x8234f038, 0x01}, + {0x8234f039, 0x01}, + {0x8234f130, 0x01}, + {0x8234f131, 0x01}, + {0x8234f132, 0x01}, + {0x8234f133, 0x01}, + {0x8234f134, 0x01}, + {0x8234f135, 0x01}, + {0x8234f136, 0x01}, + {0x8234f137, 0x01}, + {0x8234f139, 0x01}, + {0x8234f230, 0x01}, + {0x8234f231, 0x01}, + {0x8234f232, 0x01}, + {0x8234f233, 0x01}, + {0x8234f234, 0x01}, + {0x8234f235, 0x01}, + {0x8234f236, 0x01}, + {0x8234f237, 0x01}, + {0x8234f238, 0x01}, + {0x8234f239, 0x01}, + {0x8234f330, 0x01}, + {0x8234f331, 0x01}, + {0x8234f332, 0x01}, + {0x8234f333, 0x01}, + {0x8234f334, 0x01}, + {0x8234f335, 0x01}, + {0x8234f336, 0x01}, + {0x8234f337, 0x01}, + {0x8234f338, 0x01}, + {0x8234f339, 0x01}, + {0x8234f430, 0x01}, + {0x8234f431, 0x01}, + {0x8234f432, 0x01}, + {0x8234f433, 0x01}, + {0x8234f434, 0x01}, + {0x8234f435, 0x01}, + {0x8234f436, 0x01}, + {0x8234f437, 0x01}, + {0x8234f438, 0x01}, + {0x8234f439, 0x01}, + {0x8234f530, 0x01}, + {0x8234f531, 0x01}, + {0x8234f532, 0x01}, + {0x8234f533, 0x01}, + {0x8234f534, 0x01}, + {0x8234f535, 0x01}, + {0x8234f536, 0x01}, + {0x8234f537, 0x01}, + {0x8234f538, 0x01}, + {0x8234f539, 0x01}, + {0x8234f630, 0x01}, + {0x8234f631, 0x01}, + {0x8234f632, 0x01}, + {0x8234f633, 0x01}, + {0x8234f634, 0x01}, + {0x8234f635, 0x01}, + {0x8234f636, 0x01}, + {0x8234f637, 0x01}, + {0x8234f638, 0x01}, + {0x8234f639, 0x01}, + {0x8234f730, 0x01}, + {0x8234f731, 0x01}, + {0x8234f732, 0x01}, + {0x8234f733, 0x01}, + {0x8234f734, 0x01}, + {0x8234f735, 0x01}, + {0x8234f736, 0x01}, + {0x8234f737, 0x01}, + {0x8234f739, 0x01}, + {0x8234f830, 0x01}, + {0x8234f831, 0x01}, + {0x8234f832, 0x01}, + {0x8234f833, 0x01}, + {0x8234f834, 0x01}, + {0x8234f835, 0x01}, + {0x8234f836, 0x01}, + {0x8234f837, 0x01}, + {0x8234f838, 0x01}, + {0x8234f839, 0x01}, + {0x8234f930, 0x01}, + {0x8234f931, 0x01}, + {0x8234f932, 0x01}, + {0x8234f933, 0x01}, + {0x8234f934, 0x01}, + {0x8234f935, 0x01}, + {0x8234f936, 0x01}, + {0x8234f937, 0x01}, + {0x8234f938, 0x01}, + {0x8234f939, 0x01}, + {0x8234fa30, 0x01}, + {0x8234fa31, 0x01}, + {0x8234fa32, 0x01}, + {0x8234fa33, 0x01}, + {0x8234fa34, 0x01}, + {0x8234fa35, 0x01}, + {0x8234fa36, 0x01}, + {0x8234fa37, 0x01}, + {0x8234fa38, 0x01}, + {0x8234fa39, 0x01}, + {0x8234fb30, 0x01}, + {0x8234fb31, 0x01}, + {0x8234fb32, 0x01}, + {0x8234fb33, 0x01}, + {0x8234fb34, 0x01}, + {0x8234fb35, 0x01}, + {0x8234fb36, 0x01}, + {0x8234fb37, 0x01}, + {0x8234fb38, 0x01}, + {0x8234fb39, 0x01}, + {0x8234fc30, 0x01}, + {0x8234fc31, 0x01}, + {0x8234fc32, 0x01}, + {0x8234fc33, 0x01}, + {0x8234fc34, 0x01}, + {0x8234fc35, 0x01}, + {0x8234fc36, 0x01}, + {0x8234fc37, 0x01}, + {0x8234fc38, 0x01}, + {0x8234fc39, 0x01}, + {0x8234fd30, 0x01}, + {0x8234fd31, 0x01}, + {0x8234fd32, 0x01}, + {0x8234fd33, 0x01}, + {0x8234fd34, 0x01}, + {0x8234fd35, 0x01}, + {0x8234fd36, 0x01}, + {0x8234fd37, 0x01}, + {0x8234fd38, 0x01}, + {0x8234fd39, 0x01}, + {0x8234fe30, 0x01}, + {0x8234fe31, 0x01}, + {0x8234fe32, 0x01}, + {0x8234fe33, 0x01}, + {0x8234fe34, 0x01}, + {0x8234fe35, 0x01}, + {0x8234fe36, 0x01}, + {0x8234fe37, 0x01}, + {0x8234fe38, 0x01}, + {0x8234fe39, 0x01}, + {0x82358130, 0x01}, + {0x82358131, 0x01}, + {0x82358132, 0x01}, + {0x82358133, 0x01}, + {0x82358134, 0x01}, + {0x82358135, 0x01}, + {0x82358136, 0x01}, + {0x82358137, 0x01}, + {0x82358138, 0x01}, + {0x82358139, 0x01}, + {0x82358230, 0x01}, + {0x82358231, 0x01}, + {0x82358232, 0x01}, + {0x82358233, 0x01}, + {0x82358234, 0x01}, + {0x82358235, 0x01}, + {0x82358236, 0x01}, + {0x82358237, 0x01}, + {0x82358238, 0x01}, + {0x82358239, 0x01}, + {0x82358330, 0x01}, + {0x82358331, 0x01}, + {0x82358332, 0x01}, + {0x82358333, 0x01}, + {0x82358334, 0x01}, + {0x82358335, 0x01}, + {0x82358336, 0x01}, + {0x82358337, 0x01}, + {0x82358338, 0x01}, + {0x82358339, 0x01}, + {0x82358430, 0x01}, + {0x82358431, 0x01}, + {0x82358432, 0x01}, + {0x82358433, 0x01}, + {0x82358434, 0x01}, + {0x82358435, 0x01}, + {0x82358436, 0x01}, + {0x82358437, 0x01}, + {0x82358438, 0x01}, + {0x82358439, 0x01}, + {0x82358530, 0x01}, + {0x82358531, 0x01}, + {0x82358532, 0x01}, + {0x82358533, 0x01}, + {0x82358534, 0x01}, + {0x82358535, 0x01}, + {0x82358536, 0x01}, + {0x82358537, 0x01}, + {0x82358538, 0x01}, + {0x82358539, 0x01}, + {0x82358630, 0x01}, + {0x82358631, 0x01}, + {0x82358632, 0x01}, + {0x82358633, 0x01}, + {0x82358634, 0x01}, + {0x82358635, 0x01}, + {0x82358636, 0x01}, + {0x82358637, 0x01}, + {0x82358638, 0x01}, + {0x82358639, 0x01}, + {0x82358730, 0x01}, + {0x82358732, 0x01}, + {0x82358733, 0x01}, + {0x82358734, 0x01}, + {0x82358735, 0x01}, + {0x82358736, 0x01}, + {0x82358737, 0x01}, + {0x82358738, 0x01}, + {0x8430b232, 0x0202}, + {0x8430b233, 0x0202}, + {0x8430b234, 0x0202}, + {0x8430b237, 0x0202}, + {0x8430b431, 0x0202}, + {0x8430b432, 0x0202}, + {0x8430b433, 0x0202}, + {0x8430b434, 0x0202}, + {0x8430b435, 0x0202}, + {0x8430b532, 0x6b}, + {0x84318432, 0x54}, + {0x84318433, 0x55}, + {0x84318434, 0x56}, + {0x84318435, 0x57}, + {0x84319632, 0x02}, + {0x84319633, 0x02}, + {0x84319634, 0x02}, + {0x84319635, 0x02}, + {0x84319636, 0x02}, + {0x84319637, 0x02}, + {0x84319638, 0x02}, + {0x84319639, 0x02}, + {0x84319730, 0x02}, + {0x84319731, 0x02}, + {0x84319732, 0x02}, + {0x84319733, 0x02}, + {0x84319734, 0x02}, + {0x84319735, 0x02}, + {0x84319736, 0x02}, + {0x84319737, 0x02}, + {0x84319738, 0x02}, + {0x84319739, 0x02}, + {0x84319830, 0x02}, + {0x84319831, 0x02}, + {0x84319832, 0x02}, + {0x84319833, 0x02}, + {0x84319834, 0x02}, + {0x84319835, 0x02}, + {0x84319836, 0x02}, + {0x84319837, 0x02}, + {0x84319838, 0x02}, + {0x84319839, 0x02}, + {0x84319930, 0x02}, + {0x84319931, 0x02}, + {0x84319932, 0x02}, + {0x84319933, 0x02}, + {0x84319934, 0x02}, + {0x84319935, 0x02}, + {0x84319936, 0x02}, + {0x84319937, 0x02}, + {0x84319938, 0x02}, + {0x84319939, 0x02}, + {0x84319a30, 0x02}, + {0x84319a31, 0x02}, + {0x84319a32, 0x02}, + {0x84319a33, 0x02}, + {0x84319a34, 0x02}, + {0x84319a35, 0x02}, + {0x84319a36, 0x02}, + {0x84319a37, 0x02}, + {0x84319a38, 0x02}, + {0x84319a39, 0x02}, + {0x84319b30, 0x02}, + {0x84319b31, 0x02}, + {0x84319b32, 0x02}, + {0x84319b33, 0x02}, + {0x84319b34, 0x02}, + {0x84319b35, 0x02}, + {0x84319b36, 0x02}, + {0x84319b37, 0x02}, + {0x8431a234, 0x01} +}; \ No newline at end of file diff --git a/src/common/backend/utils/mb/nlssort/nlssort_pinyin_map5.map b/src/common/backend/utils/mb/nlssort/nlssort_pinyin_map5.map new file mode 100644 index 000000000..b923f8391 --- /dev/null +++ b/src/common/backend/utils/mb/nlssort/nlssort_pinyin_map5.map @@ -0,0 +1,29143 @@ +static nlssort_encode_simple PINYIN_map5[ 29141 ] = { + {0x20, 0x23}, + {0x21, 0x24}, + {0x22, 0x25}, + {0x23, 0x26}, + {0x24, 0x01}, + {0x25, 0x27}, + {0x26, 0x28}, + {0x27, 0x29}, + {0x28, 0x2a}, + {0x29, 0x2b}, + {0x2a, 0x2c}, + {0x2b, 0x2d}, + {0x2c, 0x2e}, + {0x2d, 0x2f}, + {0x2e, 0x30}, + {0x2f, 0x31}, + {0x30, 0x02}, + {0x31, 0x02}, + {0x32, 0x02}, + {0x33, 0x02}, + {0x34, 0x02}, + {0x35, 0x02}, + {0x36, 0x02}, + {0x37, 0x02}, + {0x38, 0x02}, + {0x39, 0x02}, + {0x3a, 0x32}, + {0x3b, 0x33}, + {0x3c, 0x34}, + {0x3d, 0x35}, + {0x3e, 0x36}, + {0x3f, 0x37}, + {0x40, 0x38}, + {0x41, 0x06}, + {0x42, 0x06}, + {0x43, 0x07}, + {0x44, 0x07}, + {0x45, 0x07}, + {0x46, 0x06}, + {0x47, 0x07}, + {0x48, 0x07}, + {0x49, 0x08}, + {0x4a, 0x06}, + {0x4b, 0x06}, + {0x4c, 0x09}, + {0x4d, 0x07}, + {0x4e, 0x06}, + {0x4f, 0x07}, + {0x50, 0x06}, + {0x51, 0x06}, + {0x52, 0x06}, + {0x53, 0x06}, + {0x54, 0x06}, + {0x55, 0x06}, + {0x56, 0x07}, + {0x57, 0x06}, + {0x58, 0x07}, + {0x59, 0x06}, + {0x5a, 0x06}, + {0x5b, 0x39}, + {0x5c, 0x3a}, + {0x5d, 0x3b}, + {0x5e, 0x3c}, + {0x5f, 0x3d}, + {0x60, 0x3e}, + {0x61, 0x02}, + {0x62, 0x02}, + {0x63, 0x02}, + {0x64, 0x02}, + {0x65, 0x02}, + {0x66, 0x02}, + {0x67, 0x02}, + {0x68, 0x02}, + {0x69, 0x02}, + {0x6a, 0x02}, + {0x6b, 0x02}, + {0x6c, 0x02}, + {0x6d, 0x02}, + {0x6e, 0x02}, + {0x6f, 0x02}, + {0x70, 0x02}, + {0x71, 0x02}, + {0x72, 0x02}, + {0x73, 0x02}, + {0x74, 0x02}, + {0x75, 0x02}, + {0x76, 0x02}, + {0x77, 0x02}, + {0x78, 0x02}, + {0x79, 0x02}, + {0x7a, 0x02}, + {0x7b, 0x3f}, + {0x7c, 0x40}, + {0x7d, 0x41}, + {0x7e, 0x42}, + {0x8140, 0x01}, + {0x8141, 0x01}, + {0x8142, 0x01}, + {0x8143, 0x01}, + {0x8144, 0x01}, + {0x8145, 0x01}, + {0x8146, 0x01}, + {0x8147, 0x01}, + {0x8148, 0x01}, + {0x8149, 0x01}, + {0x814a, 0x01}, + {0x814b, 0x01}, + {0x814c, 0x01}, + {0x814d, 0x01}, + {0x814e, 0x01}, + {0x814f, 0x01}, + {0x8150, 0x01}, + {0x8151, 0x01}, + {0x8152, 0x01}, + {0x8153, 0x01}, + {0x8154, 0x01}, + {0x8155, 0x01}, + {0x8156, 0x01}, + {0x8157, 0x01}, + {0x8158, 0x01}, + {0x8159, 0x01}, + {0x815a, 0x01}, + {0x815b, 0x01}, + {0x815c, 0x01}, + {0x815d, 0x01}, + {0x815e, 0x01}, + {0x815f, 0x01}, + {0x8160, 0x01}, + {0x8161, 0x01}, + {0x8162, 0x01}, + {0x8163, 0x01}, + {0x8164, 0x01}, + {0x8165, 0x01}, + {0x8166, 0x01}, + {0x8167, 0x01}, + {0x8168, 0x01}, + {0x8169, 0x01}, + {0x816a, 0x01}, + {0x816b, 0x01}, + {0x816c, 0x01}, + {0x816d, 0x01}, + {0x816e, 0x01}, + {0x816f, 0x01}, + {0x8170, 0x01}, + {0x8171, 0x01}, + {0x8172, 0x01}, + {0x8173, 0x01}, + {0x8174, 0x01}, + {0x8175, 0x01}, + {0x8176, 0x01}, + {0x8177, 0x01}, + {0x8178, 0x01}, + {0x8179, 0x01}, + {0x817a, 0x01}, + {0x817b, 0x01}, + {0x817c, 0x01}, + {0x817d, 0x01}, + {0x817e, 0x01}, + {0x8180, 0x01}, + {0x8181, 0x01}, + {0x8182, 0x01}, + {0x8183, 0x01}, + {0x8184, 0x01}, + {0x8185, 0x01}, + {0x8186, 0x01}, + {0x8187, 0x01}, + {0x8188, 0x01}, + {0x8189, 0x01}, + {0x818a, 0x01}, + {0x818b, 0x01}, + {0x818c, 0x01}, + {0x818d, 0x01}, + {0x818e, 0x01}, + {0x818f, 0x01}, + {0x8190, 0x01}, + {0x8191, 0x01}, + {0x8192, 0x01}, + {0x8193, 0x01}, + {0x8194, 0x01}, + {0x8195, 0x01}, + {0x8196, 0x01}, + {0x8197, 0x01}, + {0x8198, 0x01}, + {0x8199, 0x01}, + {0x819a, 0x01}, + {0x819b, 0x01}, + {0x819c, 0x01}, + {0x819d, 0x01}, + {0x819e, 0x01}, + {0x819f, 0x01}, + {0x81a0, 0x01}, + {0x81a1, 0x01}, + {0x81a2, 0x01}, + {0x81a3, 0x01}, + {0x81a4, 0x01}, + {0x81a5, 0x01}, + {0x81a6, 0x01}, + {0x81a7, 0x01}, + {0x81a8, 0x01}, + {0x81a9, 0x01}, + {0x81aa, 0x01}, + {0x81ab, 0x01}, + {0x81ac, 0x01}, + {0x81ad, 0x01}, + {0x81ae, 0x01}, + {0x81af, 0x01}, + {0x81b0, 0x01}, + {0x81b1, 0x01}, + {0x81b2, 0x01}, + {0x81b3, 0x01}, + {0x81b4, 0x01}, + {0x81b5, 0x01}, + {0x81b6, 0x01}, + {0x81b7, 0x01}, + {0x81b8, 0x01}, + {0x81b9, 0x01}, + {0x81ba, 0x01}, + {0x81bb, 0x01}, + {0x81bc, 0x01}, + {0x81bd, 0x01}, + {0x81be, 0x01}, + {0x81bf, 0x01}, + {0x81c0, 0x01}, + {0x81c1, 0x01}, + {0x81c2, 0x01}, + {0x81c3, 0x01}, + {0x81c4, 0x01}, + {0x81c5, 0x01}, + {0x81c6, 0x01}, + {0x81c7, 0x01}, + {0x81c8, 0x01}, + {0x81c9, 0x01}, + {0x81ca, 0x01}, + {0x81cb, 0x01}, + {0x81cc, 0x01}, + {0x81cd, 0x01}, + {0x81ce, 0x01}, + {0x81cf, 0x01}, + {0x81d0, 0x01}, + {0x81d1, 0x01}, + {0x81d2, 0x01}, + {0x81d3, 0x01}, + {0x81d4, 0x01}, + {0x81d5, 0x01}, + {0x81d6, 0x01}, + {0x81d7, 0x01}, + {0x81d8, 0x01}, + {0x81d9, 0x01}, + {0x81da, 0x01}, + {0x81db, 0x01}, + {0x81dc, 0x01}, + {0x81dd, 0x01}, + {0x81de, 0x01}, + {0x81df, 0x01}, + {0x81e0, 0x01}, + {0x81e1, 0x01}, + {0x81e2, 0x01}, + {0x81e3, 0x01}, + {0x81e4, 0x01}, + {0x81e5, 0x01}, + {0x81e6, 0x01}, + {0x81e7, 0x01}, + {0x81e8, 0x01}, + {0x81e9, 0x01}, + {0x81ea, 0x01}, + {0x81eb, 0x01}, + {0x81ec, 0x01}, + {0x81ed, 0x01}, + {0x81ee, 0x01}, + {0x81ef, 0x01}, + {0x81f0, 0x01}, + {0x81f1, 0x01}, + {0x81f2, 0x01}, + {0x81f3, 0x01}, + {0x81f4, 0x01}, + {0x81f5, 0x01}, + {0x81f6, 0x01}, + {0x81f7, 0x01}, + {0x81f8, 0x01}, + {0x81f9, 0x01}, + {0x81fa, 0x01}, + {0x81fb, 0x01}, + {0x81fc, 0x01}, + {0x81fd, 0x01}, + {0x81fe, 0x01}, + {0x8240, 0x01}, + {0x8241, 0x01}, + {0x8242, 0x01}, + {0x8243, 0x01}, + {0x8244, 0x01}, + {0x8245, 0x01}, + {0x8246, 0x01}, + {0x8247, 0x01}, + {0x8248, 0x01}, + {0x8249, 0x01}, + {0x824a, 0x01}, + {0x824b, 0x01}, + {0x824c, 0x01}, + {0x824d, 0x01}, + {0x824e, 0x01}, + {0x824f, 0x01}, + {0x8250, 0x01}, + {0x8251, 0x01}, + {0x8252, 0x01}, + {0x8253, 0x01}, + {0x8254, 0x01}, + {0x8255, 0x01}, + {0x8256, 0x01}, + {0x8257, 0x01}, + {0x8258, 0x01}, + {0x8259, 0x01}, + {0x825a, 0x01}, + {0x825b, 0x01}, + {0x825c, 0x01}, + {0x825d, 0x01}, + {0x825e, 0x01}, + {0x825f, 0x01}, + {0x8260, 0x01}, + {0x8261, 0x01}, + {0x8262, 0x01}, + {0x8263, 0x01}, + {0x8264, 0x01}, + {0x8265, 0x01}, + {0x8266, 0x01}, + {0x8267, 0x01}, + {0x8268, 0x01}, + {0x8269, 0x01}, + {0x826a, 0x01}, + {0x826b, 0x01}, + {0x826c, 0x01}, + {0x826d, 0x01}, + {0x826e, 0x01}, + {0x826f, 0x01}, + {0x8270, 0x01}, + {0x8271, 0x01}, + {0x8272, 0x01}, + {0x8273, 0x01}, + {0x8274, 0x01}, + {0x8275, 0x01}, + {0x8276, 0x01}, + {0x8277, 0x01}, + {0x8278, 0x01}, + {0x8279, 0x01}, + {0x827a, 0x01}, + {0x827b, 0x01}, + {0x827c, 0x01}, + {0x827d, 0x01}, + {0x827e, 0x01}, + {0x8280, 0x01}, + {0x8281, 0x01}, + {0x8282, 0x01}, + {0x8283, 0x01}, + {0x8284, 0x01}, + {0x8285, 0x01}, + {0x8286, 0x01}, + {0x8287, 0x01}, + {0x8288, 0x01}, + {0x8289, 0x01}, + {0x828a, 0x01}, + {0x828b, 0x01}, + {0x828c, 0x01}, + {0x828d, 0x01}, + {0x828e, 0x01}, + {0x828f, 0x01}, + {0x8290, 0x01}, + {0x8291, 0x01}, + {0x8292, 0x01}, + {0x8293, 0x01}, + {0x8294, 0x01}, + {0x8295, 0x01}, + {0x8296, 0x01}, + {0x8297, 0x01}, + {0x8298, 0x01}, + {0x8299, 0x01}, + {0x829a, 0x01}, + {0x829b, 0x01}, + {0x829c, 0x01}, + {0x829d, 0x01}, + {0x829e, 0x01}, + {0x829f, 0x01}, + {0x82a0, 0x01}, + {0x82a1, 0x01}, + {0x82a2, 0x01}, + {0x82a3, 0x01}, + {0x82a4, 0x01}, + {0x82a5, 0x01}, + {0x82a6, 0x01}, + {0x82a7, 0x01}, + {0x82a8, 0x01}, + {0x82a9, 0x01}, + {0x82aa, 0x01}, + {0x82ab, 0x01}, + {0x82ac, 0x01}, + {0x82ad, 0x01}, + {0x82ae, 0x01}, + {0x82af, 0x01}, + {0x82b0, 0x01}, + {0x82b1, 0x01}, + {0x82b2, 0x01}, + {0x82b3, 0x01}, + {0x82b4, 0x01}, + {0x82b5, 0x01}, + {0x82b6, 0x01}, + {0x82b7, 0x01}, + {0x82b8, 0x01}, + {0x82b9, 0x01}, + {0x82ba, 0x01}, + {0x82bb, 0x01}, + {0x82bc, 0x01}, + {0x82bd, 0x01}, + {0x82be, 0x01}, + {0x82bf, 0x01}, + {0x82c0, 0x01}, + {0x82c1, 0x01}, + {0x82c2, 0x01}, + {0x82c3, 0x01}, + {0x82c4, 0x01}, + {0x82c5, 0x01}, + {0x82c6, 0x01}, + {0x82c7, 0x01}, + {0x82c8, 0x01}, + {0x82c9, 0x01}, + {0x82ca, 0x01}, + {0x82cb, 0x01}, + {0x82cc, 0x01}, + {0x82cd, 0x01}, + {0x82ce, 0x01}, + {0x82cf, 0x01}, + {0x82d0, 0x01}, + {0x82d1, 0x01}, + {0x82d2, 0x01}, + {0x82d3, 0x01}, + {0x82d4, 0x01}, + {0x82d5, 0x01}, + {0x82d6, 0x01}, + {0x82d7, 0x01}, + {0x82d8, 0x01}, + {0x82d9, 0x01}, + {0x82da, 0x01}, + {0x82db, 0x01}, + {0x82dc, 0x01}, + {0x82dd, 0x01}, + {0x82de, 0x01}, + {0x82df, 0x01}, + {0x82e0, 0x01}, + {0x82e1, 0x01}, + {0x82e2, 0x01}, + {0x82e3, 0x01}, + {0x82e4, 0x01}, + {0x82e5, 0x01}, + {0x82e6, 0x01}, + {0x82e7, 0x01}, + {0x82e8, 0x01}, + {0x82e9, 0x01}, + {0x82ea, 0x01}, + {0x82eb, 0x01}, + {0x82ec, 0x01}, + {0x82ed, 0x01}, + {0x82ee, 0x01}, + {0x82ef, 0x01}, + {0x82f0, 0x01}, + {0x82f1, 0x01}, + {0x82f2, 0x01}, + {0x82f3, 0x01}, + {0x82f4, 0x01}, + {0x82f5, 0x01}, + {0x82f6, 0x01}, + {0x82f7, 0x01}, + {0x82f8, 0x01}, + {0x82f9, 0x01}, + {0x82fa, 0x01}, + {0x82fb, 0x01}, + {0x82fc, 0x01}, + {0x82fd, 0x01}, + {0x82fe, 0x01}, + {0x8340, 0x01}, + {0x8341, 0x01}, + {0x8342, 0x01}, + {0x8343, 0x01}, + {0x8344, 0x01}, + {0x8345, 0x01}, + {0x8346, 0x01}, + {0x8347, 0x01}, + {0x8348, 0x01}, + {0x8349, 0x01}, + {0x834a, 0x01}, + {0x834b, 0x01}, + {0x834c, 0x01}, + {0x834d, 0x01}, + {0x834e, 0x01}, + {0x834f, 0x01}, + {0x8350, 0x01}, + {0x8351, 0x01}, + {0x8352, 0x01}, + {0x8353, 0x01}, + {0x8354, 0x01}, + {0x8355, 0x01}, + {0x8356, 0x01}, + {0x8357, 0x01}, + {0x8358, 0x01}, + {0x8359, 0x01}, + {0x835a, 0x01}, + {0x835b, 0x01}, + {0x835c, 0x01}, + {0x835d, 0x01}, + {0x835e, 0x01}, + {0x835f, 0x01}, + {0x8360, 0x01}, + {0x8361, 0x01}, + {0x8362, 0x01}, + {0x8363, 0x01}, + {0x8364, 0x01}, + {0x8365, 0x01}, + {0x8366, 0x01}, + {0x8367, 0x01}, + {0x8368, 0x01}, + {0x8369, 0x01}, + {0x836a, 0x01}, + {0x836b, 0x01}, + {0x836c, 0x01}, + {0x836d, 0x01}, + {0x836e, 0x01}, + {0x836f, 0x01}, + {0x8370, 0x01}, + {0x8371, 0x01}, + {0x8372, 0x01}, + {0x8373, 0x01}, + {0x8374, 0x01}, + {0x8375, 0x01}, + {0x8376, 0x01}, + {0x8377, 0x01}, + {0x8378, 0x01}, + {0x8379, 0x01}, + {0x837a, 0x01}, + {0x837b, 0x01}, + {0x837c, 0x01}, + {0x837d, 0x01}, + {0x837e, 0x01}, + {0x8380, 0x01}, + {0x8381, 0x01}, + {0x8382, 0x01}, + {0x8383, 0x01}, + {0x8384, 0x01}, + {0x8385, 0x01}, + {0x8386, 0x01}, + {0x8387, 0x01}, + {0x8388, 0x01}, + {0x8389, 0x01}, + {0x838a, 0x01}, + {0x838b, 0x01}, + {0x838c, 0x01}, + {0x838d, 0x01}, + {0x838e, 0x01}, + {0x838f, 0x01}, + {0x8390, 0x01}, + {0x8391, 0x01}, + {0x8392, 0x01}, + {0x8393, 0x01}, + {0x8394, 0x01}, + {0x8395, 0x01}, + {0x8396, 0x01}, + {0x8397, 0x01}, + {0x8398, 0x01}, + {0x8399, 0x01}, + {0x839a, 0x01}, + {0x839b, 0x01}, + {0x839c, 0x01}, + {0x839d, 0x01}, + {0x839e, 0x01}, + {0x839f, 0x01}, + {0x83a0, 0x01}, + {0x83a1, 0x01}, + {0x83a2, 0x01}, + {0x83a3, 0x01}, + {0x83a4, 0x01}, + {0x83a5, 0x01}, + {0x83a6, 0x01}, + {0x83a7, 0x01}, + {0x83a8, 0x01}, + {0x83a9, 0x01}, + {0x83aa, 0x01}, + {0x83ab, 0x01}, + {0x83ac, 0x01}, + {0x83ad, 0x01}, + {0x83ae, 0x01}, + {0x83af, 0x01}, + {0x83b0, 0x01}, + {0x83b1, 0x01}, + {0x83b2, 0x01}, + {0x83b3, 0x01}, + {0x83b4, 0x01}, + {0x83b5, 0x01}, + {0x83b6, 0x01}, + {0x83b7, 0x01}, + {0x83b8, 0x01}, + {0x83b9, 0x01}, + {0x83ba, 0x01}, + {0x83bb, 0x01}, + {0x83bc, 0x01}, + {0x83bd, 0x01}, + {0x83be, 0x01}, + {0x83bf, 0x01}, + {0x83c0, 0x01}, + {0x83c1, 0x01}, + {0x83c2, 0x01}, + {0x83c3, 0x01}, + {0x83c4, 0x01}, + {0x83c5, 0x01}, + {0x83c6, 0x01}, + {0x83c7, 0x01}, + {0x83c8, 0x01}, + {0x83c9, 0x01}, + {0x83ca, 0x01}, + {0x83cb, 0x01}, + {0x83cc, 0x01}, + {0x83cd, 0x01}, + {0x83ce, 0x01}, + {0x83cf, 0x01}, + {0x83d0, 0x01}, + {0x83d1, 0x01}, + {0x83d2, 0x01}, + {0x83d3, 0x01}, + {0x83d4, 0x01}, + {0x83d5, 0x01}, + {0x83d6, 0x01}, + {0x83d7, 0x01}, + {0x83d8, 0x01}, + {0x83d9, 0x01}, + {0x83da, 0x01}, + {0x83db, 0x01}, + {0x83dc, 0x01}, + {0x83dd, 0x01}, + {0x83de, 0x01}, + {0x83df, 0x01}, + {0x83e0, 0x01}, + {0x83e1, 0x01}, + {0x83e2, 0x01}, + {0x83e3, 0x01}, + {0x83e4, 0x01}, + {0x83e5, 0x01}, + {0x83e6, 0x01}, + {0x83e7, 0x01}, + {0x83e8, 0x01}, + {0x83e9, 0x01}, + {0x83ea, 0x01}, + {0x83eb, 0x01}, + {0x83ec, 0x01}, + {0x83ed, 0x01}, + {0x83ee, 0x01}, + {0x83ef, 0x01}, + {0x83f0, 0x01}, + {0x83f1, 0x01}, + {0x83f2, 0x01}, + {0x83f3, 0x01}, + {0x83f4, 0x01}, + {0x83f5, 0x01}, + {0x83f6, 0x01}, + {0x83f7, 0x01}, + {0x83f8, 0x01}, + {0x83f9, 0x01}, + {0x83fa, 0x01}, + {0x83fb, 0x01}, + {0x83fc, 0x01}, + {0x83fd, 0x01}, + {0x83fe, 0x01}, + {0x8440, 0x01}, + {0x8441, 0x01}, + {0x8442, 0x01}, + {0x8443, 0x01}, + {0x8444, 0x01}, + {0x8445, 0x01}, + {0x8446, 0x01}, + {0x8447, 0x01}, + {0x8448, 0x01}, + {0x8449, 0x01}, + {0x844a, 0x01}, + {0x844b, 0x01}, + {0x844c, 0x01}, + {0x844d, 0x01}, + {0x844e, 0x01}, + {0x844f, 0x01}, + {0x8450, 0x01}, + {0x8451, 0x01}, + {0x8452, 0x01}, + {0x8453, 0x01}, + {0x8454, 0x01}, + {0x8455, 0x01}, + {0x8456, 0x01}, + {0x8457, 0x01}, + {0x8458, 0x01}, + {0x8459, 0x01}, + {0x845a, 0x01}, + {0x845b, 0x01}, + {0x845c, 0x01}, + {0x845d, 0x01}, + {0x845e, 0x01}, + {0x845f, 0x01}, + {0x8460, 0x01}, + {0x8461, 0x01}, + {0x8462, 0x01}, + {0x8463, 0x01}, + {0x8464, 0x01}, + {0x8465, 0x01}, + {0x8466, 0x01}, + {0x8467, 0x01}, + {0x8468, 0x01}, + {0x8469, 0x01}, + {0x846a, 0x01}, + {0x846b, 0x01}, + {0x846c, 0x01}, + {0x846d, 0x01}, + {0x846e, 0x01}, + {0x846f, 0x01}, + {0x8470, 0x01}, + {0x8471, 0x01}, + {0x8472, 0x01}, + {0x8473, 0x01}, + {0x8474, 0x01}, + {0x8475, 0x01}, + {0x8476, 0x01}, + {0x8477, 0x01}, + {0x8478, 0x01}, + {0x8479, 0x01}, + {0x847a, 0x01}, + {0x847b, 0x01}, + {0x847c, 0x01}, + {0x847d, 0x01}, + {0x847e, 0x01}, + {0x8480, 0x01}, + {0x8481, 0x01}, + {0x8482, 0x01}, + {0x8483, 0x01}, + {0x8484, 0x01}, + {0x8485, 0x01}, + {0x8486, 0x01}, + {0x8487, 0x01}, + {0x8488, 0x01}, + {0x8489, 0x01}, + {0x848a, 0x01}, + {0x848b, 0x01}, + {0x848c, 0x01}, + {0x848d, 0x01}, + {0x848e, 0x01}, + {0x848f, 0x01}, + {0x8490, 0x01}, + {0x8491, 0x01}, + {0x8492, 0x01}, + {0x8493, 0x01}, + {0x8494, 0x01}, + {0x8495, 0x01}, + {0x8496, 0x01}, + {0x8497, 0x01}, + {0x8498, 0x01}, + {0x8499, 0x01}, + {0x849a, 0x01}, + {0x849b, 0x01}, + {0x849c, 0x01}, + {0x849d, 0x01}, + {0x849e, 0x01}, + {0x849f, 0x01}, + {0x84a0, 0x01}, + {0x84a1, 0x01}, + {0x84a2, 0x01}, + {0x84a3, 0x01}, + {0x84a4, 0x01}, + {0x84a5, 0x01}, + {0x84a6, 0x01}, + {0x84a7, 0x01}, + {0x84a8, 0x01}, + {0x84a9, 0x01}, + {0x84aa, 0x01}, + {0x84ab, 0x01}, + {0x84ac, 0x01}, + {0x84ad, 0x01}, + {0x84ae, 0x01}, + {0x84af, 0x01}, + {0x84b0, 0x01}, + {0x84b1, 0x01}, + {0x84b2, 0x01}, + {0x84b3, 0x01}, + {0x84b4, 0x01}, + {0x84b5, 0x01}, + {0x84b6, 0x01}, + {0x84b7, 0x01}, + {0x84b8, 0x01}, + {0x84b9, 0x01}, + {0x84ba, 0x01}, + {0x84bb, 0x01}, + {0x84bc, 0x01}, + {0x84bd, 0x01}, + {0x84be, 0x01}, + {0x84bf, 0x01}, + {0x84c0, 0x01}, + {0x84c1, 0x01}, + {0x84c2, 0x01}, + {0x84c3, 0x01}, + {0x84c4, 0x01}, + {0x84c5, 0x01}, + {0x84c6, 0x01}, + {0x84c7, 0x01}, + {0x84c8, 0x01}, + {0x84c9, 0x01}, + {0x84ca, 0x01}, + {0x84cb, 0x01}, + {0x84cc, 0x01}, + {0x84cd, 0x01}, + {0x84ce, 0x01}, + {0x84cf, 0x01}, + {0x84d0, 0x01}, + {0x84d1, 0x01}, + {0x84d2, 0x01}, + {0x84d3, 0x01}, + {0x84d4, 0x01}, + {0x84d5, 0x01}, + {0x84d6, 0x01}, + {0x84d7, 0x01}, + {0x84d8, 0x01}, + {0x84d9, 0x01}, + {0x84da, 0x01}, + {0x84db, 0x01}, + {0x84dc, 0x01}, + {0x84dd, 0x01}, + {0x84de, 0x01}, + {0x84df, 0x01}, + {0x84e0, 0x01}, + {0x84e1, 0x01}, + {0x84e2, 0x01}, + {0x84e3, 0x01}, + {0x84e4, 0x01}, + {0x84e5, 0x01}, + {0x84e6, 0x01}, + {0x84e7, 0x01}, + {0x84e8, 0x01}, + {0x84e9, 0x01}, + {0x84ea, 0x01}, + {0x84eb, 0x01}, + {0x84ec, 0x01}, + {0x84ed, 0x01}, + {0x84ee, 0x01}, + {0x84ef, 0x01}, + {0x84f0, 0x01}, + {0x84f1, 0x01}, + {0x84f2, 0x01}, + {0x84f3, 0x01}, + {0x84f4, 0x01}, + {0x84f5, 0x01}, + {0x84f6, 0x01}, + {0x84f7, 0x01}, + {0x84f8, 0x01}, + {0x84f9, 0x01}, + {0x84fa, 0x01}, + {0x84fb, 0x01}, + {0x84fc, 0x01}, + {0x84fd, 0x01}, + {0x84fe, 0x01}, + {0x8540, 0x01}, + {0x8541, 0x01}, + {0x8542, 0x01}, + {0x8543, 0x01}, + {0x8544, 0x01}, + {0x8545, 0x01}, + {0x8546, 0x01}, + {0x8547, 0x01}, + {0x8548, 0x01}, + {0x8549, 0x01}, + {0x854a, 0x01}, + {0x854b, 0x01}, + {0x854c, 0x01}, + {0x854d, 0x01}, + {0x854e, 0x01}, + {0x854f, 0x01}, + {0x8550, 0x01}, + {0x8551, 0x01}, + {0x8552, 0x01}, + {0x8553, 0x01}, + {0x8554, 0x01}, + {0x8555, 0x01}, + {0x8556, 0x01}, + {0x8557, 0x01}, + {0x8558, 0x01}, + {0x8559, 0x01}, + {0x855a, 0x01}, + {0x855b, 0x01}, + {0x855c, 0x01}, + {0x855d, 0x01}, + {0x855e, 0x01}, + {0x855f, 0x01}, + {0x8560, 0x01}, + {0x8561, 0x01}, + {0x8562, 0x01}, + {0x8563, 0x01}, + {0x8564, 0x01}, + {0x8565, 0x01}, + {0x8566, 0x01}, + {0x8567, 0x01}, + {0x8568, 0x01}, + {0x8569, 0x01}, + {0x856a, 0x01}, + {0x856b, 0x01}, + {0x856c, 0x01}, + {0x856d, 0x01}, + {0x856e, 0x01}, + {0x856f, 0x01}, + {0x8570, 0x01}, + {0x8571, 0x01}, + {0x8572, 0x01}, + {0x8573, 0x01}, + {0x8574, 0x01}, + {0x8575, 0x01}, + {0x8576, 0x01}, + {0x8577, 0x01}, + {0x8578, 0x01}, + {0x8579, 0x01}, + {0x857a, 0x01}, + {0x857b, 0x01}, + {0x857c, 0x01}, + {0x857d, 0x01}, + {0x857e, 0x01}, + {0x8580, 0x01}, + {0x8581, 0x01}, + {0x8582, 0x01}, + {0x8583, 0x01}, + {0x8584, 0x01}, + {0x8585, 0x01}, + {0x8586, 0x01}, + {0x8587, 0x01}, + {0x8588, 0x01}, + {0x8589, 0x01}, + {0x858a, 0x01}, + {0x858b, 0x01}, + {0x858c, 0x01}, + {0x858d, 0x01}, + {0x858e, 0x01}, + {0x858f, 0x01}, + {0x8590, 0x01}, + {0x8591, 0x01}, + {0x8592, 0x01}, + {0x8593, 0x01}, + {0x8594, 0x01}, + {0x8595, 0x01}, + {0x8596, 0x01}, + {0x8597, 0x01}, + {0x8598, 0x01}, + {0x8599, 0x01}, + {0x859a, 0x01}, + {0x859b, 0x01}, + {0x859c, 0x01}, + {0x859d, 0x01}, + {0x859e, 0x01}, + {0x859f, 0x01}, + {0x85a0, 0x01}, + {0x85a1, 0x01}, + {0x85a2, 0x01}, + {0x85a3, 0x01}, + {0x85a4, 0x01}, + {0x85a5, 0x01}, + {0x85a6, 0x01}, + {0x85a7, 0x01}, + {0x85a8, 0x01}, + {0x85a9, 0x01}, + {0x85aa, 0x01}, + {0x85ab, 0x01}, + {0x85ac, 0x01}, + {0x85ad, 0x01}, + {0x85ae, 0x01}, + {0x85af, 0x01}, + {0x85b0, 0x01}, + {0x85b1, 0x01}, + {0x85b2, 0x01}, + {0x85b3, 0x01}, + {0x85b4, 0x01}, + {0x85b5, 0x01}, + {0x85b6, 0x01}, + {0x85b7, 0x01}, + {0x85b8, 0x01}, + {0x85b9, 0x01}, + {0x85ba, 0x01}, + {0x85bb, 0x01}, + {0x85bc, 0x01}, + {0x85bd, 0x01}, + {0x85be, 0x01}, + {0x85bf, 0x01}, + {0x85c0, 0x01}, + {0x85c1, 0x01}, + {0x85c2, 0x01}, + {0x85c3, 0x01}, + {0x85c4, 0x01}, + {0x85c5, 0x01}, + {0x85c6, 0x01}, + {0x85c7, 0x01}, + {0x85c8, 0x01}, + {0x85c9, 0x01}, + {0x85ca, 0x01}, + {0x85cb, 0x01}, + {0x85cc, 0x01}, + {0x85cd, 0x01}, + {0x85ce, 0x01}, + {0x85cf, 0x01}, + {0x85d0, 0x01}, + {0x85d1, 0x01}, + {0x85d2, 0x01}, + {0x85d3, 0x01}, + {0x85d4, 0x01}, + {0x85d5, 0x01}, + {0x85d6, 0x01}, + {0x85d7, 0x01}, + {0x85d8, 0x01}, + {0x85d9, 0x01}, + {0x85da, 0x01}, + {0x85db, 0x01}, + {0x85dc, 0x01}, + {0x85dd, 0x01}, + {0x85de, 0x01}, + {0x85df, 0x01}, + {0x85e0, 0x01}, + {0x85e1, 0x01}, + {0x85e2, 0x01}, + {0x85e3, 0x01}, + {0x85e4, 0x01}, + {0x85e5, 0x01}, + {0x85e6, 0x01}, + {0x85e7, 0x01}, + {0x85e8, 0x01}, + {0x85e9, 0x01}, + {0x85ea, 0x01}, + {0x85eb, 0x01}, + {0x85ec, 0x01}, + {0x85ed, 0x01}, + {0x85ee, 0x01}, + {0x85ef, 0x01}, + {0x85f0, 0x01}, + {0x85f1, 0x01}, + {0x85f2, 0x01}, + {0x85f3, 0x01}, + {0x85f4, 0x01}, + {0x85f5, 0x01}, + {0x85f6, 0x01}, + {0x85f7, 0x01}, + {0x85f8, 0x01}, + {0x85f9, 0x01}, + {0x85fa, 0x01}, + {0x85fb, 0x01}, + {0x85fc, 0x01}, + {0x85fd, 0x01}, + {0x85fe, 0x01}, + {0x8640, 0x01}, + {0x8641, 0x01}, + {0x8642, 0x01}, + {0x8643, 0x01}, + {0x8644, 0x01}, + {0x8645, 0x01}, + {0x8646, 0x01}, + {0x8647, 0x01}, + {0x8648, 0x01}, + {0x8649, 0x01}, + {0x864a, 0x01}, + {0x864b, 0x01}, + {0x864c, 0x01}, + {0x864d, 0x01}, + {0x864e, 0x01}, + {0x864f, 0x01}, + {0x8650, 0x01}, + {0x8651, 0x01}, + {0x8652, 0x01}, + {0x8653, 0x01}, + {0x8654, 0x01}, + {0x8655, 0x01}, + {0x8656, 0x01}, + {0x8657, 0x01}, + {0x8658, 0x01}, + {0x8659, 0x01}, + {0x865a, 0x01}, + {0x865b, 0x01}, + {0x865c, 0x01}, + {0x865d, 0x01}, + {0x865e, 0x01}, + {0x865f, 0x01}, + {0x8660, 0x01}, + {0x8661, 0x01}, + {0x8662, 0x01}, + {0x8663, 0x01}, + {0x8664, 0x01}, + {0x8665, 0x01}, + {0x8666, 0x01}, + {0x8667, 0x01}, + {0x8668, 0x01}, + {0x8669, 0x01}, + {0x866a, 0x01}, + {0x866b, 0x01}, + {0x866c, 0x01}, + {0x866d, 0x01}, + {0x866e, 0x01}, + {0x866f, 0x01}, + {0x8670, 0x01}, + {0x8671, 0x01}, + {0x8672, 0x01}, + {0x8673, 0x01}, + {0x8674, 0x01}, + {0x8675, 0x01}, + {0x8676, 0x01}, + {0x8677, 0x01}, + {0x8678, 0x01}, + {0x8679, 0x01}, + {0x867a, 0x01}, + {0x867b, 0x01}, + {0x867c, 0x01}, + {0x867d, 0x01}, + {0x867e, 0x01}, + {0x8680, 0x01}, + {0x8681, 0x01}, + {0x8682, 0x01}, + {0x8683, 0x01}, + {0x8684, 0x01}, + {0x8685, 0x01}, + {0x8686, 0x01}, + {0x8687, 0x01}, + {0x8688, 0x01}, + {0x8689, 0x01}, + {0x868a, 0x01}, + {0x868b, 0x01}, + {0x868c, 0x01}, + {0x868d, 0x01}, + {0x868e, 0x01}, + {0x868f, 0x01}, + {0x8690, 0x01}, + {0x8691, 0x01}, + {0x8692, 0x01}, + {0x8693, 0x01}, + {0x8694, 0x01}, + {0x8695, 0x01}, + {0x8696, 0x01}, + {0x8697, 0x01}, + {0x8698, 0x01}, + {0x8699, 0x01}, + {0x869a, 0x01}, + {0x869b, 0x01}, + {0x869c, 0x01}, + {0x869d, 0x01}, + {0x869e, 0x01}, + {0x869f, 0x01}, + {0x86a0, 0x01}, + {0x86a1, 0x01}, + {0x86a2, 0x01}, + {0x86a3, 0x01}, + {0x86a4, 0x01}, + {0x86a5, 0x01}, + {0x86a6, 0x01}, + {0x86a7, 0x01}, + {0x86a8, 0x01}, + {0x86a9, 0x01}, + {0x86aa, 0x01}, + {0x86ab, 0x01}, + {0x86ac, 0x01}, + {0x86ad, 0x01}, + {0x86ae, 0x01}, + {0x86af, 0x01}, + {0x86b0, 0x01}, + {0x86b1, 0x01}, + {0x86b2, 0x01}, + {0x86b3, 0x01}, + {0x86b4, 0x01}, + {0x86b5, 0x01}, + {0x86b6, 0x01}, + {0x86b7, 0x01}, + {0x86b8, 0x01}, + {0x86b9, 0x01}, + {0x86ba, 0x01}, + {0x86bb, 0x01}, + {0x86bc, 0x01}, + {0x86bd, 0x01}, + {0x86be, 0x01}, + {0x86bf, 0x01}, + {0x86c0, 0x01}, + {0x86c1, 0x01}, + {0x86c2, 0x01}, + {0x86c3, 0x01}, + {0x86c4, 0x01}, + {0x86c5, 0x01}, + {0x86c6, 0x01}, + {0x86c7, 0x01}, + {0x86c8, 0x01}, + {0x86c9, 0x01}, + {0x86ca, 0x01}, + {0x86cb, 0x01}, + {0x86cc, 0x01}, + {0x86cd, 0x01}, + {0x86ce, 0x01}, + {0x86cf, 0x01}, + {0x86d0, 0x01}, + {0x86d1, 0x01}, + {0x86d2, 0x01}, + {0x86d3, 0x01}, + {0x86d4, 0x01}, + {0x86d5, 0x01}, + {0x86d6, 0x01}, + {0x86d7, 0x01}, + {0x86d8, 0x01}, + {0x86d9, 0x01}, + {0x86da, 0x01}, + {0x86db, 0x01}, + {0x86dc, 0x01}, + {0x86dd, 0x01}, + {0x86de, 0x01}, + {0x86df, 0x01}, + {0x86e0, 0x01}, + {0x86e1, 0x01}, + {0x86e2, 0x01}, + {0x86e3, 0x01}, + {0x86e4, 0x01}, + {0x86e5, 0x01}, + {0x86e6, 0x01}, + {0x86e7, 0x01}, + {0x86e8, 0x01}, + {0x86e9, 0x01}, + {0x86ea, 0x01}, + {0x86eb, 0x01}, + {0x86ec, 0x01}, + {0x86ed, 0x01}, + {0x86ee, 0x01}, + {0x86ef, 0x01}, + {0x86f0, 0x01}, + {0x86f1, 0x01}, + {0x86f2, 0x01}, + {0x86f3, 0x01}, + {0x86f4, 0x01}, + {0x86f5, 0x01}, + {0x86f6, 0x01}, + {0x86f7, 0x01}, + {0x86f8, 0x01}, + {0x86f9, 0x01}, + {0x86fa, 0x01}, + {0x86fb, 0x01}, + {0x86fc, 0x01}, + {0x86fd, 0x01}, + {0x86fe, 0x01}, + {0x8740, 0x01}, + {0x8741, 0x01}, + {0x8742, 0x01}, + {0x8743, 0x01}, + {0x8744, 0x01}, + {0x8745, 0x01}, + {0x8746, 0x01}, + {0x8747, 0x01}, + {0x8748, 0x01}, + {0x8749, 0x01}, + {0x874a, 0x01}, + {0x874b, 0x01}, + {0x874c, 0x01}, + {0x874d, 0x01}, + {0x874e, 0x01}, + {0x874f, 0x01}, + {0x8750, 0x01}, + {0x8751, 0x01}, + {0x8752, 0x01}, + {0x8753, 0x01}, + {0x8754, 0x01}, + {0x8755, 0x01}, + {0x8756, 0x01}, + {0x8757, 0x01}, + {0x8758, 0x01}, + {0x8759, 0x01}, + {0x875a, 0x01}, + {0x875b, 0x01}, + {0x875c, 0x01}, + {0x875d, 0x01}, + {0x875e, 0x01}, + {0x875f, 0x01}, + {0x8760, 0x01}, + {0x8761, 0x01}, + {0x8762, 0x01}, + {0x8763, 0x01}, + {0x8764, 0x01}, + {0x8765, 0x01}, + {0x8766, 0x01}, + {0x8767, 0x01}, + {0x8768, 0x01}, + {0x8769, 0x01}, + {0x876a, 0x01}, + {0x876b, 0x01}, + {0x876c, 0x01}, + {0x876d, 0x01}, + {0x876e, 0x01}, + {0x876f, 0x01}, + {0x8770, 0x01}, + {0x8771, 0x01}, + {0x8772, 0x01}, + {0x8773, 0x01}, + {0x8774, 0x01}, + {0x8775, 0x01}, + {0x8776, 0x01}, + {0x8777, 0x01}, + {0x8778, 0x01}, + {0x8779, 0x01}, + {0x877a, 0x01}, + {0x877b, 0x01}, + {0x877c, 0x01}, + {0x877d, 0x01}, + {0x877e, 0x01}, + {0x8780, 0x01}, + {0x8781, 0x01}, + {0x8782, 0x01}, + {0x8783, 0x01}, + {0x8784, 0x01}, + {0x8785, 0x01}, + {0x8786, 0x01}, + {0x8787, 0x01}, + {0x8788, 0x01}, + {0x8789, 0x01}, + {0x878a, 0x01}, + {0x878b, 0x01}, + {0x878c, 0x01}, + {0x878d, 0x01}, + {0x878e, 0x01}, + {0x878f, 0x01}, + {0x8790, 0x01}, + {0x8791, 0x01}, + {0x8792, 0x01}, + {0x8793, 0x01}, + {0x8794, 0x01}, + {0x8795, 0x01}, + {0x8796, 0x01}, + {0x8797, 0x01}, + {0x8798, 0x01}, + {0x8799, 0x01}, + {0x879a, 0x01}, + {0x879b, 0x01}, + {0x879c, 0x01}, + {0x879d, 0x01}, + {0x879e, 0x01}, + {0x879f, 0x01}, + {0x87a0, 0x01}, + {0x87a1, 0x01}, + {0x87a2, 0x01}, + {0x87a3, 0x01}, + {0x87a4, 0x01}, + {0x87a5, 0x01}, + {0x87a6, 0x01}, + {0x87a7, 0x01}, + {0x87a8, 0x01}, + {0x87a9, 0x01}, + {0x87aa, 0x01}, + {0x87ab, 0x01}, + {0x87ac, 0x01}, + {0x87ad, 0x01}, + {0x87ae, 0x01}, + {0x87af, 0x01}, + {0x87b0, 0x01}, + {0x87b1, 0x01}, + {0x87b2, 0x01}, + {0x87b3, 0x01}, + {0x87b4, 0x01}, + {0x87b5, 0x01}, + {0x87b6, 0x01}, + {0x87b7, 0x01}, + {0x87b8, 0x01}, + {0x87b9, 0x01}, + {0x87ba, 0x01}, + {0x87bb, 0x01}, + {0x87bc, 0x01}, + {0x87bd, 0x01}, + {0x87be, 0x01}, + {0x87bf, 0x01}, + {0x87c0, 0x01}, + {0x87c1, 0x01}, + {0x87c2, 0x01}, + {0x87c3, 0x01}, + {0x87c4, 0x01}, + {0x87c5, 0x01}, + {0x87c6, 0x01}, + {0x87c7, 0x01}, + {0x87c8, 0x01}, + {0x87c9, 0x01}, + {0x87ca, 0x01}, + {0x87cb, 0x01}, + {0x87cc, 0x01}, + {0x87cd, 0x01}, + {0x87ce, 0x01}, + {0x87cf, 0x01}, + {0x87d0, 0x01}, + {0x87d1, 0x01}, + {0x87d2, 0x01}, + {0x87d3, 0x01}, + {0x87d4, 0x01}, + {0x87d5, 0x01}, + {0x87d6, 0x01}, + {0x87d7, 0x01}, + {0x87d8, 0x01}, + {0x87d9, 0x01}, + {0x87da, 0x01}, + {0x87db, 0x01}, + {0x87dc, 0x01}, + {0x87dd, 0x01}, + {0x87de, 0x01}, + {0x87df, 0x01}, + {0x87e0, 0x01}, + {0x87e1, 0x01}, + {0x87e2, 0x01}, + {0x87e3, 0x01}, + {0x87e4, 0x01}, + {0x87e5, 0x01}, + {0x87e6, 0x01}, + {0x87e7, 0x01}, + {0x87e8, 0x01}, + {0x87e9, 0x01}, + {0x87ea, 0x01}, + {0x87eb, 0x01}, + {0x87ec, 0x01}, + {0x87ed, 0x01}, + {0x87ee, 0x01}, + {0x87ef, 0x01}, + {0x87f0, 0x01}, + {0x87f1, 0x01}, + {0x87f2, 0x01}, + {0x87f3, 0x01}, + {0x87f4, 0x01}, + {0x87f5, 0x01}, + {0x87f6, 0x01}, + {0x87f7, 0x01}, + {0x87f8, 0x01}, + {0x87f9, 0x01}, + {0x87fa, 0x01}, + {0x87fb, 0x01}, + {0x87fc, 0x01}, + {0x87fd, 0x01}, + {0x87fe, 0x01}, + {0x8840, 0x01}, + {0x8841, 0x01}, + {0x8842, 0x01}, + {0x8843, 0x01}, + {0x8844, 0x01}, + {0x8845, 0x01}, + {0x8846, 0x01}, + {0x8847, 0x01}, + {0x8848, 0x01}, + {0x8849, 0x01}, + {0x884a, 0x01}, + {0x884b, 0x01}, + {0x884c, 0x01}, + {0x884d, 0x01}, + {0x884e, 0x01}, + {0x884f, 0x01}, + {0x8850, 0x01}, + {0x8851, 0x01}, + {0x8852, 0x01}, + {0x8853, 0x01}, + {0x8854, 0x01}, + {0x8855, 0x01}, + {0x8856, 0x01}, + {0x8857, 0x01}, + {0x8858, 0x01}, + {0x8859, 0x01}, + {0x885a, 0x01}, + {0x885b, 0x01}, + {0x885c, 0x01}, + {0x885d, 0x01}, + {0x885e, 0x01}, + {0x885f, 0x01}, + {0x8860, 0x01}, + {0x8861, 0x01}, + {0x8862, 0x01}, + {0x8863, 0x01}, + {0x8864, 0x01}, + {0x8865, 0x01}, + {0x8866, 0x01}, + {0x8867, 0x01}, + {0x8868, 0x01}, + {0x8869, 0x01}, + {0x886a, 0x01}, + {0x886b, 0x01}, + {0x886c, 0x01}, + {0x886d, 0x01}, + {0x886e, 0x01}, + {0x886f, 0x01}, + {0x8870, 0x01}, + {0x8871, 0x01}, + {0x8872, 0x01}, + {0x8873, 0x01}, + {0x8874, 0x01}, + {0x8875, 0x01}, + {0x8876, 0x01}, + {0x8877, 0x01}, + {0x8878, 0x01}, + {0x8879, 0x01}, + {0x887a, 0x01}, + {0x887b, 0x01}, + {0x887c, 0x01}, + {0x887d, 0x01}, + {0x887e, 0x01}, + {0x8880, 0x01}, + {0x8881, 0x01}, + {0x8882, 0x01}, + {0x8883, 0x01}, + {0x8884, 0x01}, + {0x8885, 0x01}, + {0x8886, 0x01}, + {0x8887, 0x01}, + {0x8888, 0x01}, + {0x8889, 0x01}, + {0x888a, 0x01}, + {0x888b, 0x01}, + {0x888c, 0x01}, + {0x888d, 0x01}, + {0x888e, 0x01}, + {0x888f, 0x01}, + {0x8890, 0x01}, + {0x8891, 0x01}, + {0x8892, 0x01}, + {0x8893, 0x01}, + {0x8894, 0x01}, + {0x8895, 0x01}, + {0x8896, 0x01}, + {0x8897, 0x01}, + {0x8898, 0x01}, + {0x8899, 0x01}, + {0x889a, 0x01}, + {0x889b, 0x01}, + {0x889c, 0x01}, + {0x889d, 0x01}, + {0x889e, 0x01}, + {0x889f, 0x01}, + {0x88a0, 0x01}, + {0x88a1, 0x01}, + {0x88a2, 0x01}, + {0x88a3, 0x01}, + {0x88a4, 0x01}, + {0x88a5, 0x01}, + {0x88a6, 0x01}, + {0x88a7, 0x01}, + {0x88a8, 0x01}, + {0x88a9, 0x01}, + {0x88aa, 0x01}, + {0x88ab, 0x01}, + {0x88ac, 0x01}, + {0x88ad, 0x01}, + {0x88ae, 0x01}, + {0x88af, 0x01}, + {0x88b0, 0x01}, + {0x88b1, 0x01}, + {0x88b2, 0x01}, + {0x88b3, 0x01}, + {0x88b4, 0x01}, + {0x88b5, 0x01}, + {0x88b6, 0x01}, + {0x88b7, 0x01}, + {0x88b8, 0x01}, + {0x88b9, 0x01}, + {0x88ba, 0x01}, + {0x88bb, 0x01}, + {0x88bc, 0x01}, + {0x88bd, 0x01}, + {0x88be, 0x01}, + {0x88bf, 0x01}, + {0x88c0, 0x01}, + {0x88c1, 0x01}, + {0x88c2, 0x01}, + {0x88c3, 0x01}, + {0x88c4, 0x01}, + {0x88c5, 0x01}, + {0x88c6, 0x01}, + {0x88c7, 0x01}, + {0x88c8, 0x01}, + {0x88c9, 0x01}, + {0x88ca, 0x01}, + {0x88cb, 0x01}, + {0x88cc, 0x01}, + {0x88cd, 0x01}, + {0x88ce, 0x01}, + {0x88cf, 0x01}, + {0x88d0, 0x01}, + {0x88d1, 0x01}, + {0x88d2, 0x01}, + {0x88d3, 0x01}, + {0x88d4, 0x01}, + {0x88d5, 0x01}, + {0x88d6, 0x01}, + {0x88d7, 0x01}, + {0x88d8, 0x01}, + {0x88d9, 0x01}, + {0x88da, 0x01}, + {0x88db, 0x01}, + {0x88dc, 0x01}, + {0x88dd, 0x01}, + {0x88de, 0x01}, + {0x88df, 0x01}, + {0x88e0, 0x01}, + {0x88e1, 0x01}, + {0x88e2, 0x01}, + {0x88e3, 0x01}, + {0x88e4, 0x01}, + {0x88e5, 0x01}, + {0x88e6, 0x01}, + {0x88e7, 0x01}, + {0x88e8, 0x01}, + {0x88e9, 0x01}, + {0x88ea, 0x01}, + {0x88eb, 0x01}, + {0x88ec, 0x01}, + {0x88ed, 0x01}, + {0x88ee, 0x01}, + {0x88ef, 0x01}, + {0x88f0, 0x01}, + {0x88f1, 0x01}, + {0x88f2, 0x01}, + {0x88f3, 0x01}, + {0x88f4, 0x01}, + {0x88f5, 0x01}, + {0x88f6, 0x01}, + {0x88f7, 0x01}, + {0x88f8, 0x01}, + {0x88f9, 0x01}, + {0x88fa, 0x01}, + {0x88fb, 0x01}, + {0x88fc, 0x01}, + {0x88fd, 0x01}, + {0x88fe, 0x01}, + {0x8940, 0x01}, + {0x8941, 0x01}, + {0x8942, 0x01}, + {0x8943, 0x01}, + {0x8944, 0x01}, + {0x8945, 0x01}, + {0x8946, 0x01}, + {0x8947, 0x01}, + {0x8948, 0x01}, + {0x8949, 0x01}, + {0x894a, 0x01}, + {0x894b, 0x01}, + {0x894c, 0x01}, + {0x894d, 0x01}, + {0x894e, 0x01}, + {0x894f, 0x01}, + {0x8950, 0x01}, + {0x8951, 0x01}, + {0x8952, 0x01}, + {0x8953, 0x01}, + {0x8954, 0x01}, + {0x8955, 0x01}, + {0x8956, 0x01}, + {0x8957, 0x01}, + {0x8958, 0x01}, + {0x8959, 0x01}, + {0x895a, 0x01}, + {0x895b, 0x01}, + {0x895c, 0x01}, + {0x895d, 0x01}, + {0x895e, 0x01}, + {0x895f, 0x01}, + {0x8960, 0x01}, + {0x8961, 0x01}, + {0x8962, 0x01}, + {0x8963, 0x01}, + {0x8964, 0x01}, + {0x8965, 0x01}, + {0x8966, 0x01}, + {0x8967, 0x01}, + {0x8968, 0x01}, + {0x8969, 0x01}, + {0x896a, 0x01}, + {0x896b, 0x01}, + {0x896c, 0x01}, + {0x896d, 0x01}, + {0x896e, 0x01}, + {0x896f, 0x01}, + {0x8970, 0x01}, + {0x8971, 0x01}, + {0x8972, 0x01}, + {0x8973, 0x01}, + {0x8974, 0x01}, + {0x8975, 0x01}, + {0x8976, 0x01}, + {0x8977, 0x01}, + {0x8978, 0x01}, + {0x8979, 0x01}, + {0x897a, 0x01}, + {0x897b, 0x01}, + {0x897c, 0x01}, + {0x897d, 0x01}, + {0x897e, 0x01}, + {0x8980, 0x01}, + {0x8981, 0x01}, + {0x8982, 0x01}, + {0x8983, 0x01}, + {0x8984, 0x01}, + {0x8985, 0x01}, + {0x8986, 0x01}, + {0x8987, 0x01}, + {0x8988, 0x01}, + {0x8989, 0x01}, + {0x898a, 0x01}, + {0x898b, 0x01}, + {0x898c, 0x01}, + {0x898d, 0x01}, + {0x898e, 0x01}, + {0x898f, 0x01}, + {0x8990, 0x01}, + {0x8991, 0x01}, + {0x8992, 0x01}, + {0x8993, 0x01}, + {0x8994, 0x01}, + {0x8995, 0x01}, + {0x8996, 0x01}, + {0x8997, 0x01}, + {0x8998, 0x01}, + {0x8999, 0x01}, + {0x899a, 0x01}, + {0x899b, 0x01}, + {0x899c, 0x01}, + {0x899d, 0x01}, + {0x899e, 0x01}, + {0x899f, 0x01}, + {0x89a0, 0x01}, + {0x89a1, 0x01}, + {0x89a2, 0x01}, + {0x89a3, 0x01}, + {0x89a4, 0x01}, + {0x89a5, 0x01}, + {0x89a6, 0x01}, + {0x89a7, 0x01}, + {0x89a8, 0x01}, + {0x89a9, 0x01}, + {0x89aa, 0x01}, + {0x89ab, 0x01}, + {0x89ac, 0x01}, + {0x89ad, 0x01}, + {0x89ae, 0x01}, + {0x89af, 0x01}, + {0x89b0, 0x01}, + {0x89b1, 0x01}, + {0x89b2, 0x01}, + {0x89b3, 0x01}, + {0x89b4, 0x01}, + {0x89b5, 0x01}, + {0x89b6, 0x01}, + {0x89b7, 0x01}, + {0x89b8, 0x01}, + {0x89b9, 0x01}, + {0x89ba, 0x01}, + {0x89bb, 0x01}, + {0x89bc, 0x01}, + {0x89bd, 0x01}, + {0x89be, 0x01}, + {0x89bf, 0x01}, + {0x89c0, 0x01}, + {0x89c1, 0x01}, + {0x89c2, 0x01}, + {0x89c3, 0x01}, + {0x89c4, 0x01}, + {0x89c5, 0x01}, + {0x89c6, 0x01}, + {0x89c7, 0x01}, + {0x89c8, 0x01}, + {0x89c9, 0x01}, + {0x89ca, 0x01}, + {0x89cb, 0x01}, + {0x89cc, 0x01}, + {0x89cd, 0x01}, + {0x89ce, 0x01}, + {0x89cf, 0x01}, + {0x89d0, 0x01}, + {0x89d1, 0x01}, + {0x89d2, 0x01}, + {0x89d3, 0x01}, + {0x89d4, 0x01}, + {0x89d5, 0x01}, + {0x89d6, 0x01}, + {0x89d7, 0x01}, + {0x89d8, 0x01}, + {0x89d9, 0x01}, + {0x89da, 0x01}, + {0x89db, 0x01}, + {0x89dc, 0x01}, + {0x89dd, 0x01}, + {0x89de, 0x01}, + {0x89df, 0x01}, + {0x89e0, 0x01}, + {0x89e1, 0x01}, + {0x89e2, 0x01}, + {0x89e3, 0x01}, + {0x89e4, 0x01}, + {0x89e5, 0x01}, + {0x89e6, 0x01}, + {0x89e7, 0x01}, + {0x89e8, 0x01}, + {0x89e9, 0x01}, + {0x89ea, 0x01}, + {0x89eb, 0x01}, + {0x89ec, 0x01}, + {0x89ed, 0x01}, + {0x89ee, 0x01}, + {0x89ef, 0x01}, + {0x89f0, 0x01}, + {0x89f1, 0x01}, + {0x89f2, 0x01}, + {0x89f3, 0x01}, + {0x89f4, 0x01}, + {0x89f5, 0x01}, + {0x89f6, 0x01}, + {0x89f7, 0x01}, + {0x89f8, 0x01}, + {0x89f9, 0x01}, + {0x89fa, 0x01}, + {0x89fb, 0x01}, + {0x89fc, 0x01}, + {0x89fd, 0x01}, + {0x89fe, 0x01}, + {0x8a40, 0x01}, + {0x8a41, 0x01}, + {0x8a42, 0x01}, + {0x8a43, 0x01}, + {0x8a44, 0x01}, + {0x8a45, 0x01}, + {0x8a46, 0x01}, + {0x8a47, 0x01}, + {0x8a48, 0x01}, + {0x8a49, 0x01}, + {0x8a4a, 0x01}, + {0x8a4b, 0x01}, + {0x8a4c, 0x01}, + {0x8a4d, 0x01}, + {0x8a4e, 0x01}, + {0x8a4f, 0x01}, + {0x8a50, 0x01}, + {0x8a51, 0x01}, + {0x8a52, 0x01}, + {0x8a53, 0x01}, + {0x8a54, 0x01}, + {0x8a55, 0x01}, + {0x8a56, 0x01}, + {0x8a57, 0x01}, + {0x8a58, 0x01}, + {0x8a59, 0x01}, + {0x8a5a, 0x01}, + {0x8a5b, 0x01}, + {0x8a5c, 0x01}, + {0x8a5d, 0x01}, + {0x8a5e, 0x01}, + {0x8a5f, 0x01}, + {0x8a60, 0x01}, + {0x8a61, 0x01}, + {0x8a62, 0x01}, + {0x8a63, 0x01}, + {0x8a64, 0x01}, + {0x8a65, 0x01}, + {0x8a66, 0x01}, + {0x8a67, 0x01}, + {0x8a68, 0x01}, + {0x8a69, 0x01}, + {0x8a6a, 0x01}, + {0x8a6b, 0x01}, + {0x8a6c, 0x01}, + {0x8a6d, 0x01}, + {0x8a6e, 0x01}, + {0x8a6f, 0x01}, + {0x8a70, 0x01}, + {0x8a71, 0x01}, + {0x8a72, 0x01}, + {0x8a73, 0x01}, + {0x8a74, 0x01}, + {0x8a75, 0x01}, + {0x8a76, 0x01}, + {0x8a77, 0x01}, + {0x8a78, 0x01}, + {0x8a79, 0x01}, + {0x8a7a, 0x01}, + {0x8a7b, 0x01}, + {0x8a7c, 0x01}, + {0x8a7d, 0x01}, + {0x8a7e, 0x01}, + {0x8a80, 0x01}, + {0x8a81, 0x01}, + {0x8a82, 0x01}, + {0x8a83, 0x01}, + {0x8a84, 0x01}, + {0x8a85, 0x01}, + {0x8a86, 0x01}, + {0x8a87, 0x01}, + {0x8a88, 0x01}, + {0x8a89, 0x01}, + {0x8a8a, 0x01}, + {0x8a8b, 0x01}, + {0x8a8c, 0x01}, + {0x8a8d, 0x01}, + {0x8a8e, 0x01}, + {0x8a8f, 0x01}, + {0x8a90, 0x01}, + {0x8a91, 0x01}, + {0x8a92, 0x01}, + {0x8a93, 0x01}, + {0x8a94, 0x01}, + {0x8a95, 0x01}, + {0x8a96, 0x01}, + {0x8a97, 0x01}, + {0x8a98, 0x01}, + {0x8a99, 0x01}, + {0x8a9a, 0x01}, + {0x8a9b, 0x01}, + {0x8a9c, 0x01}, + {0x8a9d, 0x01}, + {0x8a9e, 0x01}, + {0x8a9f, 0x01}, + {0x8aa0, 0x01}, + {0x8aa1, 0x01}, + {0x8aa2, 0x01}, + {0x8aa3, 0x01}, + {0x8aa4, 0x01}, + {0x8aa5, 0x01}, + {0x8aa6, 0x01}, + {0x8aa7, 0x01}, + {0x8aa8, 0x01}, + {0x8aa9, 0x01}, + {0x8aaa, 0x01}, + {0x8aab, 0x01}, + {0x8aac, 0x01}, + {0x8aad, 0x01}, + {0x8aae, 0x01}, + {0x8aaf, 0x01}, + {0x8ab0, 0x01}, + {0x8ab1, 0x01}, + {0x8ab2, 0x01}, + {0x8ab3, 0x01}, + {0x8ab4, 0x01}, + {0x8ab5, 0x01}, + {0x8ab6, 0x01}, + {0x8ab7, 0x01}, + {0x8ab8, 0x01}, + {0x8ab9, 0x01}, + {0x8aba, 0x01}, + {0x8abb, 0x01}, + {0x8abc, 0x01}, + {0x8abd, 0x01}, + {0x8abe, 0x01}, + {0x8abf, 0x01}, + {0x8ac0, 0x01}, + {0x8ac1, 0x01}, + {0x8ac2, 0x01}, + {0x8ac3, 0x01}, + {0x8ac4, 0x01}, + {0x8ac5, 0x01}, + {0x8ac6, 0x01}, + {0x8ac7, 0x01}, + {0x8ac8, 0x01}, + {0x8ac9, 0x01}, + {0x8aca, 0x01}, + {0x8acb, 0x01}, + {0x8acc, 0x01}, + {0x8acd, 0x01}, + {0x8ace, 0x01}, + {0x8acf, 0x01}, + {0x8ad0, 0x01}, + {0x8ad1, 0x01}, + {0x8ad2, 0x01}, + {0x8ad3, 0x01}, + {0x8ad4, 0x01}, + {0x8ad5, 0x01}, + {0x8ad6, 0x01}, + {0x8ad7, 0x01}, + {0x8ad8, 0x01}, + {0x8ad9, 0x01}, + {0x8ada, 0x01}, + {0x8adb, 0x01}, + {0x8adc, 0x01}, + {0x8add, 0x01}, + {0x8ade, 0x01}, + {0x8adf, 0x01}, + {0x8ae0, 0x01}, + {0x8ae1, 0x01}, + {0x8ae2, 0x01}, + {0x8ae3, 0x01}, + {0x8ae4, 0x01}, + {0x8ae5, 0x01}, + {0x8ae6, 0x01}, + {0x8ae7, 0x01}, + {0x8ae8, 0x01}, + {0x8ae9, 0x01}, + {0x8aea, 0x01}, + {0x8aeb, 0x01}, + {0x8aec, 0x01}, + {0x8aed, 0x01}, + {0x8aee, 0x01}, + {0x8aef, 0x01}, + {0x8af0, 0x01}, + {0x8af1, 0x01}, + {0x8af2, 0x01}, + {0x8af3, 0x01}, + {0x8af4, 0x01}, + {0x8af5, 0x01}, + {0x8af6, 0x01}, + {0x8af7, 0x01}, + {0x8af8, 0x01}, + {0x8af9, 0x01}, + {0x8afa, 0x01}, + {0x8afb, 0x01}, + {0x8afc, 0x01}, + {0x8afd, 0x01}, + {0x8afe, 0x01}, + {0x8b40, 0x01}, + {0x8b41, 0x01}, + {0x8b42, 0x01}, + {0x8b43, 0x01}, + {0x8b44, 0x01}, + {0x8b45, 0x01}, + {0x8b46, 0x01}, + {0x8b47, 0x01}, + {0x8b48, 0x01}, + {0x8b49, 0x01}, + {0x8b4a, 0x01}, + {0x8b4b, 0x01}, + {0x8b4c, 0x01}, + {0x8b4d, 0x01}, + {0x8b4e, 0x01}, + {0x8b4f, 0x01}, + {0x8b50, 0x01}, + {0x8b51, 0x01}, + {0x8b52, 0x01}, + {0x8b53, 0x01}, + {0x8b54, 0x01}, + {0x8b55, 0x01}, + {0x8b56, 0x01}, + {0x8b57, 0x01}, + {0x8b58, 0x01}, + {0x8b59, 0x01}, + {0x8b5a, 0x01}, + {0x8b5b, 0x01}, + {0x8b5c, 0x01}, + {0x8b5d, 0x01}, + {0x8b5e, 0x01}, + {0x8b5f, 0x01}, + {0x8b60, 0x01}, + {0x8b61, 0x01}, + {0x8b62, 0x01}, + {0x8b63, 0x01}, + {0x8b64, 0x01}, + {0x8b65, 0x01}, + {0x8b66, 0x01}, + {0x8b67, 0x01}, + {0x8b68, 0x01}, + {0x8b69, 0x01}, + {0x8b6a, 0x01}, + {0x8b6b, 0x01}, + {0x8b6c, 0x01}, + {0x8b6d, 0x01}, + {0x8b6e, 0x01}, + {0x8b6f, 0x01}, + {0x8b70, 0x01}, + {0x8b71, 0x01}, + {0x8b72, 0x01}, + {0x8b73, 0x01}, + {0x8b74, 0x01}, + {0x8b75, 0x01}, + {0x8b76, 0x01}, + {0x8b77, 0x01}, + {0x8b78, 0x01}, + {0x8b79, 0x01}, + {0x8b7a, 0x01}, + {0x8b7b, 0x01}, + {0x8b7c, 0x01}, + {0x8b7d, 0x01}, + {0x8b7e, 0x01}, + {0x8b80, 0x01}, + {0x8b81, 0x01}, + {0x8b82, 0x01}, + {0x8b83, 0x01}, + {0x8b84, 0x01}, + {0x8b85, 0x01}, + {0x8b86, 0x01}, + {0x8b87, 0x01}, + {0x8b88, 0x01}, + {0x8b89, 0x01}, + {0x8b8a, 0x01}, + {0x8b8b, 0x01}, + {0x8b8c, 0x01}, + {0x8b8d, 0x01}, + {0x8b8e, 0x01}, + {0x8b8f, 0x01}, + {0x8b90, 0x01}, + {0x8b91, 0x01}, + {0x8b92, 0x01}, + {0x8b93, 0x01}, + {0x8b94, 0x01}, + {0x8b95, 0x01}, + {0x8b96, 0x01}, + {0x8b97, 0x01}, + {0x8b98, 0x01}, + {0x8b99, 0x01}, + {0x8b9a, 0x01}, + {0x8b9b, 0x01}, + {0x8b9c, 0x01}, + {0x8b9d, 0x01}, + {0x8b9e, 0x01}, + {0x8b9f, 0x01}, + {0x8ba0, 0x01}, + {0x8ba1, 0x01}, + {0x8ba2, 0x01}, + {0x8ba3, 0x01}, + {0x8ba4, 0x01}, + {0x8ba5, 0x01}, + {0x8ba6, 0x01}, + {0x8ba7, 0x01}, + {0x8ba8, 0x01}, + {0x8ba9, 0x01}, + {0x8baa, 0x01}, + {0x8bab, 0x01}, + {0x8bac, 0x01}, + {0x8bad, 0x01}, + {0x8bae, 0x01}, + {0x8baf, 0x01}, + {0x8bb0, 0x01}, + {0x8bb1, 0x01}, + {0x8bb2, 0x01}, + {0x8bb3, 0x01}, + {0x8bb4, 0x01}, + {0x8bb5, 0x01}, + {0x8bb6, 0x01}, + {0x8bb7, 0x01}, + {0x8bb8, 0x01}, + {0x8bb9, 0x01}, + {0x8bba, 0x01}, + {0x8bbb, 0x01}, + {0x8bbc, 0x01}, + {0x8bbd, 0x01}, + {0x8bbe, 0x01}, + {0x8bbf, 0x01}, + {0x8bc0, 0x01}, + {0x8bc1, 0x01}, + {0x8bc2, 0x01}, + {0x8bc3, 0x01}, + {0x8bc4, 0x01}, + {0x8bc5, 0x01}, + {0x8bc6, 0x01}, + {0x8bc7, 0x01}, + {0x8bc8, 0x01}, + {0x8bc9, 0x01}, + {0x8bca, 0x01}, + {0x8bcb, 0x01}, + {0x8bcc, 0x01}, + {0x8bcd, 0x01}, + {0x8bce, 0x01}, + {0x8bcf, 0x01}, + {0x8bd0, 0x01}, + {0x8bd1, 0x01}, + {0x8bd2, 0x01}, + {0x8bd3, 0x01}, + {0x8bd4, 0x01}, + {0x8bd5, 0x01}, + {0x8bd6, 0x01}, + {0x8bd7, 0x01}, + {0x8bd8, 0x01}, + {0x8bd9, 0x01}, + {0x8bda, 0x01}, + {0x8bdb, 0x01}, + {0x8bdc, 0x01}, + {0x8bdd, 0x01}, + {0x8bde, 0x01}, + {0x8bdf, 0x01}, + {0x8be0, 0x01}, + {0x8be1, 0x01}, + {0x8be2, 0x01}, + {0x8be3, 0x01}, + {0x8be4, 0x01}, + {0x8be5, 0x01}, + {0x8be6, 0x01}, + {0x8be7, 0x01}, + {0x8be8, 0x01}, + {0x8be9, 0x01}, + {0x8bea, 0x01}, + {0x8beb, 0x01}, + {0x8bec, 0x01}, + {0x8bed, 0x01}, + {0x8bee, 0x01}, + {0x8bef, 0x01}, + {0x8bf0, 0x01}, + {0x8bf1, 0x01}, + {0x8bf2, 0x01}, + {0x8bf3, 0x01}, + {0x8bf4, 0x01}, + {0x8bf5, 0x01}, + {0x8bf6, 0x01}, + {0x8bf7, 0x01}, + {0x8bf8, 0x01}, + {0x8bf9, 0x01}, + {0x8bfa, 0x01}, + {0x8bfb, 0x01}, + {0x8bfc, 0x01}, + {0x8bfd, 0x01}, + {0x8bfe, 0x01}, + {0x8c40, 0x01}, + {0x8c41, 0x01}, + {0x8c42, 0x01}, + {0x8c43, 0x01}, + {0x8c44, 0x01}, + {0x8c45, 0x01}, + {0x8c46, 0x01}, + {0x8c47, 0x01}, + {0x8c48, 0x01}, + {0x8c49, 0x01}, + {0x8c4a, 0x01}, + {0x8c4b, 0x01}, + {0x8c4c, 0x01}, + {0x8c4d, 0x01}, + {0x8c4e, 0x01}, + {0x8c4f, 0x01}, + {0x8c50, 0x01}, + {0x8c51, 0x01}, + {0x8c52, 0x01}, + {0x8c53, 0x01}, + {0x8c54, 0x01}, + {0x8c55, 0x01}, + {0x8c56, 0x01}, + {0x8c57, 0x01}, + {0x8c58, 0x01}, + {0x8c59, 0x01}, + {0x8c5a, 0x01}, + {0x8c5b, 0x01}, + {0x8c5c, 0x01}, + {0x8c5d, 0x01}, + {0x8c5e, 0x01}, + {0x8c5f, 0x01}, + {0x8c60, 0x01}, + {0x8c61, 0x01}, + {0x8c62, 0x01}, + {0x8c63, 0x01}, + {0x8c64, 0x01}, + {0x8c65, 0x01}, + {0x8c66, 0x01}, + {0x8c67, 0x01}, + {0x8c68, 0x01}, + {0x8c69, 0x01}, + {0x8c6a, 0x01}, + {0x8c6b, 0x01}, + {0x8c6c, 0x01}, + {0x8c6d, 0x01}, + {0x8c6e, 0x01}, + {0x8c6f, 0x01}, + {0x8c70, 0x01}, + {0x8c71, 0x01}, + {0x8c72, 0x01}, + {0x8c73, 0x01}, + {0x8c74, 0x01}, + {0x8c75, 0x01}, + {0x8c76, 0x01}, + {0x8c77, 0x01}, + {0x8c78, 0x01}, + {0x8c79, 0x01}, + {0x8c7a, 0x01}, + {0x8c7b, 0x01}, + {0x8c7c, 0x01}, + {0x8c7d, 0x01}, + {0x8c7e, 0x01}, + {0x8c80, 0x01}, + {0x8c81, 0x01}, + {0x8c82, 0x01}, + {0x8c83, 0x01}, + {0x8c84, 0x01}, + {0x8c85, 0x01}, + {0x8c86, 0x01}, + {0x8c87, 0x01}, + {0x8c88, 0x01}, + {0x8c89, 0x01}, + {0x8c8a, 0x01}, + {0x8c8b, 0x01}, + {0x8c8c, 0x01}, + {0x8c8d, 0x01}, + {0x8c8e, 0x01}, + {0x8c8f, 0x01}, + {0x8c90, 0x01}, + {0x8c91, 0x01}, + {0x8c92, 0x01}, + {0x8c93, 0x01}, + {0x8c94, 0x01}, + {0x8c95, 0x01}, + {0x8c96, 0x01}, + {0x8c97, 0x01}, + {0x8c98, 0x01}, + {0x8c99, 0x01}, + {0x8c9a, 0x01}, + {0x8c9b, 0x01}, + {0x8c9c, 0x01}, + {0x8c9d, 0x01}, + {0x8c9e, 0x01}, + {0x8c9f, 0x01}, + {0x8ca0, 0x01}, + {0x8ca1, 0x01}, + {0x8ca2, 0x01}, + {0x8ca3, 0x01}, + {0x8ca4, 0x01}, + {0x8ca5, 0x01}, + {0x8ca6, 0x01}, + {0x8ca7, 0x01}, + {0x8ca8, 0x01}, + {0x8ca9, 0x01}, + {0x8caa, 0x01}, + {0x8cab, 0x01}, + {0x8cac, 0x01}, + {0x8cad, 0x01}, + {0x8cae, 0x01}, + {0x8caf, 0x01}, + {0x8cb0, 0x01}, + {0x8cb1, 0x01}, + {0x8cb2, 0x01}, + {0x8cb3, 0x01}, + {0x8cb4, 0x01}, + {0x8cb5, 0x01}, + {0x8cb6, 0x01}, + {0x8cb7, 0x01}, + {0x8cb8, 0x01}, + {0x8cb9, 0x01}, + {0x8cba, 0x01}, + {0x8cbb, 0x01}, + {0x8cbc, 0x01}, + {0x8cbd, 0x01}, + {0x8cbe, 0x01}, + {0x8cbf, 0x01}, + {0x8cc0, 0x01}, + {0x8cc1, 0x01}, + {0x8cc2, 0x01}, + {0x8cc3, 0x01}, + {0x8cc4, 0x01}, + {0x8cc5, 0x01}, + {0x8cc6, 0x01}, + {0x8cc7, 0x01}, + {0x8cc8, 0x01}, + {0x8cc9, 0x01}, + {0x8cca, 0x01}, + {0x8ccc, 0x01}, + {0x8ccd, 0x01}, + {0x8cce, 0x01}, + {0x8ccf, 0x01}, + {0x8cd0, 0x01}, + {0x8cd1, 0x01}, + {0x8cd2, 0x01}, + {0x8cd3, 0x01}, + {0x8cd4, 0x01}, + {0x8cd5, 0x01}, + {0x8cd6, 0x01}, + {0x8cd7, 0x01}, + {0x8cd8, 0x01}, + {0x8cd9, 0x01}, + {0x8cda, 0x01}, + {0x8cdb, 0x01}, + {0x8cdc, 0x01}, + {0x8cdd, 0x01}, + {0x8cde, 0x01}, + {0x8cdf, 0x01}, + {0x8ce0, 0x01}, + {0x8ce1, 0x01}, + {0x8ce2, 0x01}, + {0x8ce3, 0x01}, + {0x8ce4, 0x01}, + {0x8ce5, 0x01}, + {0x8ce6, 0x01}, + {0x8ce7, 0x01}, + {0x8ce8, 0x01}, + {0x8ce9, 0x01}, + {0x8cea, 0x01}, + {0x8ceb, 0x01}, + {0x8cec, 0x01}, + {0x8ced, 0x01}, + {0x8cee, 0x01}, + {0x8cef, 0x01}, + {0x8cf0, 0x01}, + {0x8cf1, 0x01}, + {0x8cf2, 0x01}, + {0x8cf3, 0x01}, + {0x8cf4, 0x01}, + {0x8cf5, 0x01}, + {0x8cf6, 0x01}, + {0x8cf7, 0x01}, + {0x8cf8, 0x01}, + {0x8cf9, 0x01}, + {0x8cfa, 0x01}, + {0x8cfb, 0x01}, + {0x8cfc, 0x01}, + {0x8cfd, 0x01}, + {0x8cfe, 0x01}, + {0x8d40, 0x01}, + {0x8d41, 0x01}, + {0x8d42, 0x01}, + {0x8d43, 0x01}, + {0x8d44, 0x01}, + {0x8d45, 0x01}, + {0x8d46, 0x01}, + {0x8d47, 0x01}, + {0x8d48, 0x01}, + {0x8d49, 0x01}, + {0x8d4a, 0x01}, + {0x8d4b, 0x01}, + {0x8d4c, 0x01}, + {0x8d4d, 0x01}, + {0x8d4e, 0x01}, + {0x8d4f, 0x01}, + {0x8d50, 0x01}, + {0x8d51, 0x01}, + {0x8d52, 0x01}, + {0x8d53, 0x01}, + {0x8d54, 0x01}, + {0x8d55, 0x01}, + {0x8d56, 0x01}, + {0x8d57, 0x01}, + {0x8d58, 0x01}, + {0x8d59, 0x01}, + {0x8d5a, 0x01}, + {0x8d5b, 0x01}, + {0x8d5c, 0x01}, + {0x8d5d, 0x01}, + {0x8d5e, 0x01}, + {0x8d5f, 0x01}, + {0x8d60, 0x01}, + {0x8d61, 0x01}, + {0x8d62, 0x01}, + {0x8d63, 0x01}, + {0x8d64, 0x01}, + {0x8d65, 0x01}, + {0x8d66, 0x01}, + {0x8d67, 0x01}, + {0x8d68, 0x01}, + {0x8d69, 0x01}, + {0x8d6a, 0x01}, + {0x8d6b, 0x01}, + {0x8d6c, 0x01}, + {0x8d6d, 0x01}, + {0x8d6e, 0x01}, + {0x8d6f, 0x01}, + {0x8d70, 0x01}, + {0x8d71, 0x01}, + {0x8d72, 0x01}, + {0x8d73, 0x01}, + {0x8d74, 0x01}, + {0x8d75, 0x01}, + {0x8d76, 0x01}, + {0x8d77, 0x01}, + {0x8d78, 0x01}, + {0x8d79, 0x01}, + {0x8d7a, 0x01}, + {0x8d7b, 0x01}, + {0x8d7c, 0x01}, + {0x8d7d, 0x01}, + {0x8d7e, 0x01}, + {0x8d80, 0x01}, + {0x8d81, 0x01}, + {0x8d82, 0x01}, + {0x8d83, 0x01}, + {0x8d84, 0x01}, + {0x8d85, 0x01}, + {0x8d86, 0x01}, + {0x8d87, 0x01}, + {0x8d88, 0x01}, + {0x8d89, 0x01}, + {0x8d8a, 0x01}, + {0x8d8b, 0x01}, + {0x8d8c, 0x01}, + {0x8d8d, 0x01}, + {0x8d8e, 0x01}, + {0x8d8f, 0x01}, + {0x8d90, 0x01}, + {0x8d91, 0x01}, + {0x8d92, 0x01}, + {0x8d93, 0x01}, + {0x8d94, 0x01}, + {0x8d95, 0x01}, + {0x8d96, 0x01}, + {0x8d97, 0x01}, + {0x8d98, 0x01}, + {0x8d99, 0x01}, + {0x8d9a, 0x01}, + {0x8d9b, 0x01}, + {0x8d9c, 0x01}, + {0x8d9d, 0x01}, + {0x8d9e, 0x01}, + {0x8d9f, 0x01}, + {0x8da0, 0x01}, + {0x8da1, 0x01}, + {0x8da2, 0x01}, + {0x8da3, 0x01}, + {0x8da4, 0x01}, + {0x8da5, 0x01}, + {0x8da6, 0x01}, + {0x8da7, 0x01}, + {0x8da8, 0x01}, + {0x8da9, 0x01}, + {0x8daa, 0x01}, + {0x8dab, 0x01}, + {0x8dac, 0x01}, + {0x8dad, 0x01}, + {0x8dae, 0x01}, + {0x8daf, 0x01}, + {0x8db0, 0x01}, + {0x8db1, 0x01}, + {0x8db2, 0x01}, + {0x8db3, 0x01}, + {0x8db4, 0x01}, + {0x8db5, 0x01}, + {0x8db6, 0x01}, + {0x8db7, 0x01}, + {0x8db8, 0x01}, + {0x8db9, 0x01}, + {0x8dba, 0x01}, + {0x8dbb, 0x01}, + {0x8dbc, 0x01}, + {0x8dbd, 0x01}, + {0x8dbe, 0x01}, + {0x8dbf, 0x01}, + {0x8dc0, 0x01}, + {0x8dc1, 0x01}, + {0x8dc2, 0x01}, + {0x8dc3, 0x01}, + {0x8dc4, 0x01}, + {0x8dc5, 0x01}, + {0x8dc6, 0x01}, + {0x8dc7, 0x01}, + {0x8dc8, 0x01}, + {0x8dc9, 0x01}, + {0x8dca, 0x01}, + {0x8dcb, 0x01}, + {0x8dcc, 0x01}, + {0x8dcd, 0x01}, + {0x8dce, 0x01}, + {0x8dcf, 0x01}, + {0x8dd0, 0x01}, + {0x8dd1, 0x01}, + {0x8dd2, 0x01}, + {0x8dd3, 0x01}, + {0x8dd4, 0x01}, + {0x8dd5, 0x01}, + {0x8dd6, 0x01}, + {0x8dd7, 0x01}, + {0x8dd8, 0x01}, + {0x8dd9, 0x01}, + {0x8dda, 0x01}, + {0x8ddb, 0x01}, + {0x8ddc, 0x01}, + {0x8ddd, 0x01}, + {0x8dde, 0x01}, + {0x8ddf, 0x01}, + {0x8de0, 0x01}, + {0x8de1, 0x01}, + {0x8de2, 0x01}, + {0x8de3, 0x01}, + {0x8de4, 0x01}, + {0x8de5, 0x01}, + {0x8de6, 0x01}, + {0x8de7, 0x01}, + {0x8de8, 0x01}, + {0x8de9, 0x01}, + {0x8dea, 0x01}, + {0x8deb, 0x01}, + {0x8dec, 0x01}, + {0x8ded, 0x01}, + {0x8dee, 0x01}, + {0x8def, 0x01}, + {0x8df0, 0x01}, + {0x8df1, 0x01}, + {0x8df2, 0x01}, + {0x8df3, 0x01}, + {0x8df4, 0x01}, + {0x8df5, 0x01}, + {0x8df6, 0x01}, + {0x8df7, 0x01}, + {0x8df8, 0x01}, + {0x8df9, 0x01}, + {0x8dfa, 0x01}, + {0x8dfb, 0x01}, + {0x8dfc, 0x01}, + {0x8dfd, 0x01}, + {0x8dfe, 0x01}, + {0x8e40, 0x01}, + {0x8e41, 0x01}, + {0x8e42, 0x01}, + {0x8e43, 0x01}, + {0x8e44, 0x01}, + {0x8e45, 0x01}, + {0x8e46, 0x01}, + {0x8e47, 0x01}, + {0x8e48, 0x01}, + {0x8e49, 0x01}, + {0x8e4a, 0x01}, + {0x8e4b, 0x01}, + {0x8e4c, 0x01}, + {0x8e4d, 0x01}, + {0x8e4e, 0x01}, + {0x8e4f, 0x01}, + {0x8e50, 0x01}, + {0x8e51, 0x01}, + {0x8e52, 0x01}, + {0x8e53, 0x01}, + {0x8e54, 0x01}, + {0x8e55, 0x01}, + {0x8e56, 0x01}, + {0x8e57, 0x01}, + {0x8e58, 0x01}, + {0x8e59, 0x01}, + {0x8e5a, 0x01}, + {0x8e5b, 0x01}, + {0x8e5c, 0x01}, + {0x8e5d, 0x01}, + {0x8e5e, 0x01}, + {0x8e5f, 0x01}, + {0x8e60, 0x01}, + {0x8e61, 0x01}, + {0x8e62, 0x01}, + {0x8e63, 0x01}, + {0x8e64, 0x01}, + {0x8e65, 0x01}, + {0x8e66, 0x01}, + {0x8e67, 0x01}, + {0x8e68, 0x01}, + {0x8e69, 0x01}, + {0x8e6a, 0x01}, + {0x8e6b, 0x01}, + {0x8e6c, 0x01}, + {0x8e6d, 0x01}, + {0x8e6e, 0x01}, + {0x8e6f, 0x01}, + {0x8e70, 0x01}, + {0x8e71, 0x01}, + {0x8e72, 0x01}, + {0x8e73, 0x01}, + {0x8e74, 0x01}, + {0x8e75, 0x01}, + {0x8e76, 0x01}, + {0x8e77, 0x01}, + {0x8e78, 0x01}, + {0x8e79, 0x01}, + {0x8e7a, 0x01}, + {0x8e7b, 0x01}, + {0x8e7c, 0x01}, + {0x8e7d, 0x01}, + {0x8e7e, 0x01}, + {0x8e80, 0x01}, + {0x8e81, 0x01}, + {0x8e82, 0x01}, + {0x8e83, 0x01}, + {0x8e84, 0x01}, + {0x8e85, 0x01}, + {0x8e86, 0x01}, + {0x8e87, 0x01}, + {0x8e88, 0x01}, + {0x8e89, 0x01}, + {0x8e8a, 0x01}, + {0x8e8b, 0x01}, + {0x8e8c, 0x01}, + {0x8e8d, 0x01}, + {0x8e8e, 0x01}, + {0x8e8f, 0x01}, + {0x8e90, 0x01}, + {0x8e91, 0x01}, + {0x8e92, 0x01}, + {0x8e93, 0x01}, + {0x8e94, 0x01}, + {0x8e95, 0x01}, + {0x8e96, 0x01}, + {0x8e97, 0x01}, + {0x8e98, 0x01}, + {0x8e99, 0x01}, + {0x8e9a, 0x01}, + {0x8e9b, 0x01}, + {0x8e9c, 0x01}, + {0x8e9d, 0x01}, + {0x8e9e, 0x01}, + {0x8e9f, 0x01}, + {0x8ea0, 0x01}, + {0x8ea1, 0x01}, + {0x8ea2, 0x01}, + {0x8ea3, 0x01}, + {0x8ea4, 0x01}, + {0x8ea5, 0x01}, + {0x8ea6, 0x01}, + {0x8ea7, 0x01}, + {0x8ea8, 0x01}, + {0x8ea9, 0x01}, + {0x8eaa, 0x01}, + {0x8eab, 0x01}, + {0x8eac, 0x01}, + {0x8ead, 0x01}, + {0x8eae, 0x01}, + {0x8eaf, 0x01}, + {0x8eb0, 0x01}, + {0x8eb1, 0x01}, + {0x8eb2, 0x01}, + {0x8eb3, 0x01}, + {0x8eb4, 0x01}, + {0x8eb5, 0x01}, + {0x8eb6, 0x01}, + {0x8eb7, 0x01}, + {0x8eb8, 0x01}, + {0x8eb9, 0x01}, + {0x8eba, 0x01}, + {0x8ebb, 0x01}, + {0x8ebc, 0x01}, + {0x8ebd, 0x01}, + {0x8ebe, 0x01}, + {0x8ebf, 0x01}, + {0x8ec0, 0x01}, + {0x8ec1, 0x01}, + {0x8ec2, 0x01}, + {0x8ec3, 0x01}, + {0x8ec4, 0x01}, + {0x8ec5, 0x01}, + {0x8ec6, 0x01}, + {0x8ec7, 0x01}, + {0x8ec8, 0x01}, + {0x8ec9, 0x01}, + {0x8eca, 0x01}, + {0x8ecb, 0x01}, + {0x8ecc, 0x01}, + {0x8ecd, 0x01}, + {0x8ece, 0x01}, + {0x8ecf, 0x01}, + {0x8ed0, 0x01}, + {0x8ed1, 0x01}, + {0x8ed2, 0x01}, + {0x8ed3, 0x01}, + {0x8ed4, 0x01}, + {0x8ed5, 0x01}, + {0x8ed6, 0x01}, + {0x8ed7, 0x01}, + {0x8ed8, 0x01}, + {0x8ed9, 0x01}, + {0x8eda, 0x01}, + {0x8edb, 0x01}, + {0x8edc, 0x01}, + {0x8edd, 0x01}, + {0x8ede, 0x01}, + {0x8edf, 0x01}, + {0x8ee0, 0x01}, + {0x8ee1, 0x01}, + {0x8ee2, 0x01}, + {0x8ee3, 0x01}, + {0x8ee4, 0x01}, + {0x8ee5, 0x01}, + {0x8ee6, 0x01}, + {0x8ee7, 0x01}, + {0x8ee8, 0x01}, + {0x8ee9, 0x01}, + {0x8eea, 0x01}, + {0x8eeb, 0x01}, + {0x8eec, 0x01}, + {0x8eed, 0x01}, + {0x8eee, 0x01}, + {0x8eef, 0x01}, + {0x8ef0, 0x01}, + {0x8ef1, 0x01}, + {0x8ef2, 0x01}, + {0x8ef3, 0x01}, + {0x8ef4, 0x01}, + {0x8ef5, 0x01}, + {0x8ef6, 0x01}, + {0x8ef7, 0x01}, + {0x8ef8, 0x01}, + {0x8ef9, 0x01}, + {0x8efa, 0x01}, + {0x8efb, 0x01}, + {0x8efc, 0x01}, + {0x8efd, 0x01}, + {0x8efe, 0x01}, + {0x8f40, 0x01}, + {0x8f41, 0x01}, + {0x8f42, 0x01}, + {0x8f43, 0x01}, + {0x8f44, 0x01}, + {0x8f45, 0x01}, + {0x8f46, 0x01}, + {0x8f47, 0x01}, + {0x8f48, 0x01}, + {0x8f49, 0x01}, + {0x8f4a, 0x01}, + {0x8f4b, 0x01}, + {0x8f4c, 0x01}, + {0x8f4d, 0x01}, + {0x8f4e, 0x01}, + {0x8f4f, 0x01}, + {0x8f50, 0x01}, + {0x8f51, 0x01}, + {0x8f52, 0x01}, + {0x8f53, 0x01}, + {0x8f54, 0x01}, + {0x8f55, 0x01}, + {0x8f56, 0x01}, + {0x8f57, 0x01}, + {0x8f58, 0x01}, + {0x8f59, 0x01}, + {0x8f5a, 0x01}, + {0x8f5b, 0x01}, + {0x8f5c, 0x01}, + {0x8f5d, 0x01}, + {0x8f5e, 0x01}, + {0x8f5f, 0x01}, + {0x8f60, 0x01}, + {0x8f61, 0x01}, + {0x8f62, 0x01}, + {0x8f63, 0x01}, + {0x8f64, 0x01}, + {0x8f65, 0x01}, + {0x8f66, 0x01}, + {0x8f67, 0x01}, + {0x8f68, 0x01}, + {0x8f69, 0x01}, + {0x8f6a, 0x01}, + {0x8f6b, 0x01}, + {0x8f6c, 0x01}, + {0x8f6d, 0x01}, + {0x8f6e, 0x01}, + {0x8f6f, 0x01}, + {0x8f70, 0x01}, + {0x8f71, 0x01}, + {0x8f72, 0x01}, + {0x8f73, 0x01}, + {0x8f74, 0x01}, + {0x8f75, 0x01}, + {0x8f76, 0x01}, + {0x8f77, 0x01}, + {0x8f78, 0x01}, + {0x8f79, 0x01}, + {0x8f7a, 0x01}, + {0x8f7b, 0x01}, + {0x8f7c, 0x01}, + {0x8f7d, 0x01}, + {0x8f7e, 0x01}, + {0x8f80, 0x01}, + {0x8f81, 0x01}, + {0x8f82, 0x01}, + {0x8f83, 0x01}, + {0x8f84, 0x01}, + {0x8f85, 0x01}, + {0x8f86, 0x01}, + {0x8f87, 0x01}, + {0x8f88, 0x01}, + {0x8f89, 0x01}, + {0x8f8a, 0x01}, + {0x8f8b, 0x01}, + {0x8f8c, 0x01}, + {0x8f8d, 0x01}, + {0x8f8e, 0x01}, + {0x8f8f, 0x01}, + {0x8f90, 0x01}, + {0x8f91, 0x01}, + {0x8f92, 0x01}, + {0x8f93, 0x01}, + {0x8f94, 0x01}, + {0x8f95, 0x01}, + {0x8f96, 0x01}, + {0x8f97, 0x01}, + {0x8f98, 0x01}, + {0x8f99, 0x01}, + {0x8f9a, 0x01}, + {0x8f9b, 0x01}, + {0x8f9c, 0x01}, + {0x8f9d, 0x01}, + {0x8f9e, 0x01}, + {0x8f9f, 0x01}, + {0x8fa0, 0x01}, + {0x8fa1, 0x01}, + {0x8fa2, 0x01}, + {0x8fa3, 0x01}, + {0x8fa4, 0x01}, + {0x8fa5, 0x01}, + {0x8fa6, 0x01}, + {0x8fa7, 0x01}, + {0x8fa8, 0x01}, + {0x8fa9, 0x01}, + {0x8faa, 0x01}, + {0x8fab, 0x01}, + {0x8fac, 0x01}, + {0x8fad, 0x01}, + {0x8fae, 0x01}, + {0x8faf, 0x01}, + {0x8fb0, 0x01}, + {0x8fb1, 0x01}, + {0x8fb2, 0x01}, + {0x8fb3, 0x01}, + {0x8fb4, 0x01}, + {0x8fb5, 0x01}, + {0x8fb6, 0x01}, + {0x8fb7, 0x01}, + {0x8fb8, 0x01}, + {0x8fb9, 0x01}, + {0x8fba, 0x01}, + {0x8fbb, 0x01}, + {0x8fbc, 0x01}, + {0x8fbd, 0x01}, + {0x8fbe, 0x01}, + {0x8fbf, 0x01}, + {0x8fc0, 0x01}, + {0x8fc2, 0x01}, + {0x8fc3, 0x01}, + {0x8fc4, 0x01}, + {0x8fc5, 0x01}, + {0x8fc6, 0x01}, + {0x8fc7, 0x01}, + {0x8fc8, 0x01}, + {0x8fc9, 0x01}, + {0x8fca, 0x01}, + {0x8fcb, 0x01}, + {0x8fcc, 0x01}, + {0x8fcd, 0x01}, + {0x8fce, 0x01}, + {0x8fcf, 0x01}, + {0x8fd0, 0x01}, + {0x8fd1, 0x01}, + {0x8fd2, 0x01}, + {0x8fd3, 0x01}, + {0x8fd4, 0x01}, + {0x8fd5, 0x01}, + {0x8fd6, 0x01}, + {0x8fd7, 0x01}, + {0x8fd8, 0x01}, + {0x8fd9, 0x01}, + {0x8fda, 0x01}, + {0x8fdb, 0x01}, + {0x8fdc, 0x01}, + {0x8fdd, 0x01}, + {0x8fde, 0x01}, + {0x8fdf, 0x01}, + {0x8fe0, 0x01}, + {0x8fe1, 0x01}, + {0x8fe2, 0x01}, + {0x8fe3, 0x01}, + {0x8fe4, 0x01}, + {0x8fe5, 0x01}, + {0x8fe6, 0x01}, + {0x8fe7, 0x01}, + {0x8fe8, 0x01}, + {0x8fe9, 0x01}, + {0x8fea, 0x01}, + {0x8feb, 0x01}, + {0x8fec, 0x01}, + {0x8fed, 0x01}, + {0x8fee, 0x01}, + {0x8fef, 0x01}, + {0x8ff0, 0x01}, + {0x8ff1, 0x01}, + {0x8ff2, 0x01}, + {0x8ff3, 0x01}, + {0x8ff4, 0x01}, + {0x8ff5, 0x01}, + {0x8ff6, 0x01}, + {0x8ff7, 0x01}, + {0x8ff8, 0x01}, + {0x8ff9, 0x01}, + {0x8ffa, 0x01}, + {0x8ffb, 0x01}, + {0x8ffc, 0x01}, + {0x8ffd, 0x01}, + {0x8ffe, 0x01}, + {0x9040, 0x01}, + {0x9041, 0x01}, + {0x9042, 0x01}, + {0x9043, 0x01}, + {0x9044, 0x01}, + {0x9045, 0x01}, + {0x9046, 0x01}, + {0x9047, 0x01}, + {0x9048, 0x01}, + {0x9049, 0x01}, + {0x904a, 0x01}, + {0x904b, 0x01}, + {0x904c, 0x01}, + {0x904d, 0x01}, + {0x904e, 0x01}, + {0x904f, 0x01}, + {0x9050, 0x01}, + {0x9051, 0x01}, + {0x9052, 0x01}, + {0x9053, 0x01}, + {0x9054, 0x01}, + {0x9055, 0x01}, + {0x9056, 0x01}, + {0x9057, 0x01}, + {0x9058, 0x01}, + {0x9059, 0x01}, + {0x905a, 0x01}, + {0x905b, 0x01}, + {0x905c, 0x01}, + {0x905d, 0x01}, + {0x905e, 0x01}, + {0x905f, 0x01}, + {0x9060, 0x01}, + {0x9061, 0x01}, + {0x9062, 0x01}, + {0x9063, 0x01}, + {0x9064, 0x01}, + {0x9065, 0x01}, + {0x9066, 0x01}, + {0x9067, 0x01}, + {0x9068, 0x01}, + {0x9069, 0x01}, + {0x906a, 0x01}, + {0x906b, 0x01}, + {0x906c, 0x01}, + {0x906d, 0x01}, + {0x906e, 0x01}, + {0x906f, 0x01}, + {0x9070, 0x01}, + {0x9071, 0x01}, + {0x9072, 0x01}, + {0x9073, 0x01}, + {0x9074, 0x01}, + {0x9075, 0x01}, + {0x9076, 0x01}, + {0x9077, 0x01}, + {0x9078, 0x01}, + {0x9079, 0x01}, + {0x907a, 0x01}, + {0x907b, 0x01}, + {0x907c, 0x01}, + {0x907d, 0x01}, + {0x907e, 0x01}, + {0x9080, 0x01}, + {0x9081, 0x01}, + {0x9082, 0x01}, + {0x9083, 0x01}, + {0x9084, 0x01}, + {0x9085, 0x01}, + {0x9086, 0x01}, + {0x9087, 0x01}, + {0x9088, 0x01}, + {0x9089, 0x01}, + {0x908a, 0x01}, + {0x908b, 0x01}, + {0x908c, 0x01}, + {0x908d, 0x01}, + {0x908e, 0x01}, + {0x908f, 0x01}, + {0x9090, 0x01}, + {0x9091, 0x01}, + {0x9092, 0x01}, + {0x9093, 0x01}, + {0x9094, 0x01}, + {0x9095, 0x01}, + {0x9096, 0x01}, + {0x9097, 0x01}, + {0x9098, 0x01}, + {0x9099, 0x01}, + {0x909a, 0x01}, + {0x909b, 0x01}, + {0x909c, 0x01}, + {0x909d, 0x01}, + {0x909e, 0x01}, + {0x909f, 0x01}, + {0x90a0, 0x01}, + {0x90a1, 0x01}, + {0x90a2, 0x01}, + {0x90a3, 0x01}, + {0x90a4, 0x01}, + {0x90a5, 0x01}, + {0x90a6, 0x01}, + {0x90a7, 0x01}, + {0x90a8, 0x01}, + {0x90a9, 0x01}, + {0x90aa, 0x01}, + {0x90ab, 0x01}, + {0x90ac, 0x01}, + {0x90ad, 0x01}, + {0x90ae, 0x01}, + {0x90af, 0x01}, + {0x90b0, 0x01}, + {0x90b1, 0x01}, + {0x90b2, 0x01}, + {0x90b3, 0x01}, + {0x90b4, 0x01}, + {0x90b5, 0x01}, + {0x90b6, 0x01}, + {0x90b7, 0x01}, + {0x90b8, 0x01}, + {0x90b9, 0x01}, + {0x90ba, 0x01}, + {0x90bb, 0x01}, + {0x90bc, 0x01}, + {0x90bd, 0x01}, + {0x90be, 0x01}, + {0x90bf, 0x01}, + {0x90c0, 0x01}, + {0x90c1, 0x01}, + {0x90c2, 0x01}, + {0x90c3, 0x01}, + {0x90c4, 0x01}, + {0x90c5, 0x01}, + {0x90c6, 0x01}, + {0x90c7, 0x01}, + {0x90c8, 0x01}, + {0x90c9, 0x01}, + {0x90ca, 0x01}, + {0x90cb, 0x01}, + {0x90cc, 0x01}, + {0x90cd, 0x01}, + {0x90ce, 0x01}, + {0x90cf, 0x01}, + {0x90d0, 0x01}, + {0x90d1, 0x01}, + {0x90d2, 0x01}, + {0x90d3, 0x01}, + {0x90d4, 0x01}, + {0x90d5, 0x01}, + {0x90d6, 0x01}, + {0x90d7, 0x01}, + {0x90d8, 0x01}, + {0x90d9, 0x01}, + {0x90da, 0x01}, + {0x90db, 0x01}, + {0x90dc, 0x01}, + {0x90dd, 0x01}, + {0x90de, 0x01}, + {0x90df, 0x01}, + {0x90e0, 0x01}, + {0x90e1, 0x01}, + {0x90e2, 0x01}, + {0x90e3, 0x01}, + {0x90e4, 0x01}, + {0x90e5, 0x01}, + {0x90e6, 0x01}, + {0x90e7, 0x01}, + {0x90e8, 0x01}, + {0x90e9, 0x01}, + {0x90ea, 0x01}, + {0x90eb, 0x01}, + {0x90ec, 0x01}, + {0x90ed, 0x01}, + {0x90ee, 0x01}, + {0x90ef, 0x01}, + {0x90f0, 0x01}, + {0x90f1, 0x01}, + {0x90f2, 0x01}, + {0x90f3, 0x01}, + {0x90f4, 0x01}, + {0x90f5, 0x01}, + {0x90f6, 0x01}, + {0x90f7, 0x01}, + {0x90f8, 0x01}, + {0x90f9, 0x01}, + {0x90fa, 0x01}, + {0x90fb, 0x01}, + {0x90fc, 0x01}, + {0x90fd, 0x01}, + {0x90fe, 0x01}, + {0x9140, 0x01}, + {0x9141, 0x01}, + {0x9142, 0x01}, + {0x9143, 0x01}, + {0x9144, 0x01}, + {0x9145, 0x01}, + {0x9146, 0x01}, + {0x9147, 0x01}, + {0x9148, 0x01}, + {0x9149, 0x01}, + {0x914a, 0x01}, + {0x914b, 0x01}, + {0x914c, 0x01}, + {0x914d, 0x01}, + {0x914e, 0x01}, + {0x914f, 0x01}, + {0x9150, 0x01}, + {0x9151, 0x01}, + {0x9152, 0x01}, + {0x9153, 0x01}, + {0x9154, 0x01}, + {0x9155, 0x01}, + {0x9156, 0x01}, + {0x9157, 0x01}, + {0x9158, 0x01}, + {0x9159, 0x01}, + {0x915a, 0x01}, + {0x915b, 0x01}, + {0x915c, 0x01}, + {0x915d, 0x01}, + {0x915e, 0x01}, + {0x915f, 0x01}, + {0x9160, 0x01}, + {0x9161, 0x01}, + {0x9162, 0x01}, + {0x9163, 0x01}, + {0x9164, 0x01}, + {0x9165, 0x01}, + {0x9166, 0x01}, + {0x9167, 0x01}, + {0x9168, 0x01}, + {0x9169, 0x01}, + {0x916a, 0x01}, + {0x916b, 0x01}, + {0x916c, 0x01}, + {0x916d, 0x01}, + {0x916e, 0x01}, + {0x916f, 0x01}, + {0x9170, 0x01}, + {0x9171, 0x01}, + {0x9172, 0x01}, + {0x9173, 0x01}, + {0x9174, 0x01}, + {0x9175, 0x01}, + {0x9176, 0x01}, + {0x9177, 0x01}, + {0x9178, 0x01}, + {0x9179, 0x01}, + {0x917a, 0x01}, + {0x917b, 0x01}, + {0x917c, 0x01}, + {0x917d, 0x01}, + {0x917e, 0x01}, + {0x9180, 0x01}, + {0x9181, 0x01}, + {0x9182, 0x01}, + {0x9183, 0x01}, + {0x9184, 0x01}, + {0x9185, 0x01}, + {0x9186, 0x01}, + {0x9187, 0x01}, + {0x9188, 0x01}, + {0x9189, 0x01}, + {0x918a, 0x01}, + {0x918b, 0x01}, + {0x918c, 0x01}, + {0x918d, 0x01}, + {0x918e, 0x01}, + {0x918f, 0x01}, + {0x9190, 0x01}, + {0x9191, 0x01}, + {0x9192, 0x01}, + {0x9193, 0x01}, + {0x9194, 0x01}, + {0x9195, 0x01}, + {0x9196, 0x01}, + {0x9197, 0x01}, + {0x9198, 0x01}, + {0x9199, 0x01}, + {0x919a, 0x01}, + {0x919b, 0x01}, + {0x919c, 0x01}, + {0x919d, 0x01}, + {0x919e, 0x01}, + {0x919f, 0x01}, + {0x91a0, 0x01}, + {0x91a1, 0x01}, + {0x91a2, 0x01}, + {0x91a3, 0x01}, + {0x91a4, 0x01}, + {0x91a5, 0x01}, + {0x91a6, 0x01}, + {0x91a7, 0x01}, + {0x91a8, 0x01}, + {0x91a9, 0x01}, + {0x91aa, 0x01}, + {0x91ab, 0x01}, + {0x91ac, 0x01}, + {0x91ad, 0x01}, + {0x91ae, 0x01}, + {0x91af, 0x01}, + {0x91b0, 0x01}, + {0x91b1, 0x01}, + {0x91b2, 0x01}, + {0x91b3, 0x01}, + {0x91b4, 0x01}, + {0x91b5, 0x01}, + {0x91b6, 0x01}, + {0x91b7, 0x01}, + {0x91b8, 0x01}, + {0x91b9, 0x01}, + {0x91ba, 0x01}, + {0x91bb, 0x01}, + {0x91bc, 0x01}, + {0x91bd, 0x01}, + {0x91be, 0x01}, + {0x91bf, 0x01}, + {0x91c0, 0x01}, + {0x91c1, 0x01}, + {0x91c2, 0x01}, + {0x91c3, 0x01}, + {0x91c4, 0x01}, + {0x91c5, 0x01}, + {0x91c6, 0x01}, + {0x91c7, 0x01}, + {0x91c8, 0x01}, + {0x91c9, 0x01}, + {0x91ca, 0x01}, + {0x91cb, 0x01}, + {0x91cc, 0x01}, + {0x91cd, 0x01}, + {0x91ce, 0x01}, + {0x91cf, 0x01}, + {0x91d0, 0x01}, + {0x91d1, 0x01}, + {0x91d2, 0x01}, + {0x91d3, 0x01}, + {0x91d4, 0x01}, + {0x91d5, 0x01}, + {0x91d6, 0x01}, + {0x91d7, 0x01}, + {0x91d8, 0x01}, + {0x91d9, 0x01}, + {0x91da, 0x01}, + {0x91db, 0x01}, + {0x91dc, 0x01}, + {0x91dd, 0x01}, + {0x91de, 0x01}, + {0x91df, 0x01}, + {0x91e0, 0x01}, + {0x91e1, 0x01}, + {0x91e2, 0x01}, + {0x91e3, 0x01}, + {0x91e4, 0x01}, + {0x91e5, 0x01}, + {0x91e6, 0x01}, + {0x91e7, 0x01}, + {0x91e8, 0x01}, + {0x91e9, 0x01}, + {0x91ea, 0x01}, + {0x91eb, 0x01}, + {0x91ec, 0x01}, + {0x91ed, 0x01}, + {0x91ee, 0x01}, + {0x91ef, 0x01}, + {0x91f0, 0x01}, + {0x91f1, 0x01}, + {0x91f2, 0x01}, + {0x91f3, 0x01}, + {0x91f4, 0x01}, + {0x91f5, 0x01}, + {0x91f6, 0x01}, + {0x91f7, 0x01}, + {0x91f8, 0x01}, + {0x91f9, 0x01}, + {0x91fa, 0x01}, + {0x91fb, 0x01}, + {0x91fc, 0x01}, + {0x91fd, 0x01}, + {0x91fe, 0x01}, + {0x9240, 0x01}, + {0x9241, 0x01}, + {0x9242, 0x01}, + {0x9243, 0x01}, + {0x9244, 0x01}, + {0x9245, 0x01}, + {0x9246, 0x01}, + {0x9247, 0x01}, + {0x9248, 0x01}, + {0x9249, 0x01}, + {0x924a, 0x01}, + {0x924b, 0x01}, + {0x924c, 0x01}, + {0x924d, 0x01}, + {0x924e, 0x01}, + {0x924f, 0x01}, + {0x9250, 0x01}, + {0x9251, 0x01}, + {0x9252, 0x01}, + {0x9253, 0x01}, + {0x9254, 0x01}, + {0x9255, 0x01}, + {0x9256, 0x01}, + {0x9257, 0x01}, + {0x9258, 0x01}, + {0x9259, 0x01}, + {0x925a, 0x01}, + {0x925b, 0x01}, + {0x925c, 0x01}, + {0x925d, 0x01}, + {0x925e, 0x01}, + {0x925f, 0x01}, + {0x9260, 0x01}, + {0x9261, 0x01}, + {0x9262, 0x01}, + {0x9263, 0x01}, + {0x9264, 0x01}, + {0x9265, 0x01}, + {0x9266, 0x01}, + {0x9267, 0x01}, + {0x9268, 0x01}, + {0x9269, 0x01}, + {0x926a, 0x01}, + {0x926b, 0x01}, + {0x926c, 0x01}, + {0x926d, 0x01}, + {0x926e, 0x01}, + {0x926f, 0x01}, + {0x9270, 0x01}, + {0x9271, 0x01}, + {0x9272, 0x01}, + {0x9273, 0x01}, + {0x9274, 0x01}, + {0x9275, 0x01}, + {0x9276, 0x01}, + {0x9277, 0x01}, + {0x9278, 0x01}, + {0x9279, 0x01}, + {0x927a, 0x01}, + {0x927b, 0x01}, + {0x927c, 0x01}, + {0x927d, 0x01}, + {0x927e, 0x01}, + {0x9280, 0x01}, + {0x9281, 0x01}, + {0x9282, 0x01}, + {0x9283, 0x01}, + {0x9284, 0x01}, + {0x9285, 0x01}, + {0x9286, 0x01}, + {0x9287, 0x01}, + {0x9288, 0x01}, + {0x9289, 0x01}, + {0x928a, 0x01}, + {0x928b, 0x01}, + {0x928c, 0x01}, + {0x928d, 0x01}, + {0x928e, 0x01}, + {0x928f, 0x01}, + {0x9290, 0x01}, + {0x9291, 0x01}, + {0x9292, 0x01}, + {0x9293, 0x01}, + {0x9294, 0x01}, + {0x9295, 0x01}, + {0x9296, 0x01}, + {0x9297, 0x01}, + {0x9298, 0x01}, + {0x9299, 0x01}, + {0x929a, 0x01}, + {0x929b, 0x01}, + {0x929c, 0x01}, + {0x929d, 0x01}, + {0x929e, 0x01}, + {0x929f, 0x01}, + {0x92a0, 0x01}, + {0x92a1, 0x01}, + {0x92a2, 0x01}, + {0x92a3, 0x01}, + {0x92a4, 0x01}, + {0x92a5, 0x01}, + {0x92a6, 0x01}, + {0x92a7, 0x01}, + {0x92a8, 0x01}, + {0x92a9, 0x01}, + {0x92aa, 0x01}, + {0x92ab, 0x01}, + {0x92ac, 0x01}, + {0x92ad, 0x01}, + {0x92ae, 0x01}, + {0x92af, 0x01}, + {0x92b0, 0x01}, + {0x92b1, 0x01}, + {0x92b2, 0x01}, + {0x92b3, 0x01}, + {0x92b4, 0x01}, + {0x92b5, 0x01}, + {0x92b6, 0x01}, + {0x92b7, 0x01}, + {0x92b8, 0x01}, + {0x92b9, 0x01}, + {0x92ba, 0x01}, + {0x92bb, 0x01}, + {0x92bc, 0x01}, + {0x92bd, 0x01}, + {0x92be, 0x01}, + {0x92bf, 0x01}, + {0x92c0, 0x01}, + {0x92c1, 0x01}, + {0x92c2, 0x01}, + {0x92c3, 0x01}, + {0x92c4, 0x01}, + {0x92c5, 0x01}, + {0x92c6, 0x01}, + {0x92c7, 0x01}, + {0x92c8, 0x01}, + {0x92c9, 0x01}, + {0x92ca, 0x01}, + {0x92cb, 0x01}, + {0x92cc, 0x01}, + {0x92cd, 0x01}, + {0x92ce, 0x01}, + {0x92cf, 0x01}, + {0x92d0, 0x01}, + {0x92d1, 0x01}, + {0x92d2, 0x01}, + {0x92d3, 0x01}, + {0x92d4, 0x01}, + {0x92d5, 0x01}, + {0x92d6, 0x01}, + {0x92d7, 0x01}, + {0x92d8, 0x01}, + {0x92d9, 0x01}, + {0x92da, 0x01}, + {0x92db, 0x01}, + {0x92dc, 0x01}, + {0x92dd, 0x01}, + {0x92de, 0x01}, + {0x92df, 0x01}, + {0x92e0, 0x01}, + {0x92e1, 0x01}, + {0x92e2, 0x01}, + {0x92e3, 0x01}, + {0x92e4, 0x01}, + {0x92e5, 0x01}, + {0x92e6, 0x01}, + {0x92e7, 0x01}, + {0x92e8, 0x01}, + {0x92e9, 0x01}, + {0x92ea, 0x01}, + {0x92eb, 0x01}, + {0x92ec, 0x01}, + {0x92ed, 0x01}, + {0x92ee, 0x01}, + {0x92ef, 0x01}, + {0x92f0, 0x01}, + {0x92f1, 0x01}, + {0x92f2, 0x01}, + {0x92f3, 0x01}, + {0x92f4, 0x01}, + {0x92f5, 0x01}, + {0x92f6, 0x01}, + {0x92f7, 0x01}, + {0x92f8, 0x01}, + {0x92f9, 0x01}, + {0x92fa, 0x01}, + {0x92fb, 0x01}, + {0x92fc, 0x01}, + {0x92fd, 0x01}, + {0x92fe, 0x01}, + {0x9340, 0x01}, + {0x9341, 0x01}, + {0x9342, 0x01}, + {0x9343, 0x01}, + {0x9344, 0x01}, + {0x9345, 0x01}, + {0x9346, 0x01}, + {0x9347, 0x01}, + {0x9348, 0x01}, + {0x9349, 0x01}, + {0x934a, 0x01}, + {0x934b, 0x01}, + {0x934c, 0x01}, + {0x934d, 0x01}, + {0x934e, 0x01}, + {0x934f, 0x01}, + {0x9350, 0x01}, + {0x9351, 0x01}, + {0x9352, 0x01}, + {0x9353, 0x01}, + {0x9354, 0x01}, + {0x9355, 0x01}, + {0x9356, 0x01}, + {0x9357, 0x01}, + {0x9358, 0x01}, + {0x9359, 0x01}, + {0x935a, 0x01}, + {0x935b, 0x01}, + {0x935c, 0x01}, + {0x935d, 0x01}, + {0x935e, 0x01}, + {0x935f, 0x01}, + {0x9360, 0x01}, + {0x9361, 0x01}, + {0x9362, 0x01}, + {0x9363, 0x01}, + {0x9364, 0x01}, + {0x9365, 0x01}, + {0x9366, 0x01}, + {0x9367, 0x01}, + {0x9368, 0x01}, + {0x9369, 0x01}, + {0x936a, 0x01}, + {0x936b, 0x01}, + {0x936c, 0x01}, + {0x936d, 0x01}, + {0x936e, 0x01}, + {0x936f, 0x01}, + {0x9370, 0x01}, + {0x9371, 0x01}, + {0x9372, 0x01}, + {0x9373, 0x01}, + {0x9374, 0x01}, + {0x9375, 0x01}, + {0x9376, 0x01}, + {0x9377, 0x01}, + {0x9378, 0x01}, + {0x9379, 0x01}, + {0x937a, 0x01}, + {0x937b, 0x01}, + {0x937c, 0x01}, + {0x937d, 0x01}, + {0x937e, 0x01}, + {0x9380, 0x01}, + {0x9381, 0x01}, + {0x9382, 0x01}, + {0x9383, 0x01}, + {0x9384, 0x01}, + {0x9385, 0x01}, + {0x9386, 0x01}, + {0x9387, 0x01}, + {0x9388, 0x01}, + {0x9389, 0x01}, + {0x938a, 0x01}, + {0x938b, 0x01}, + {0x938c, 0x01}, + {0x938d, 0x01}, + {0x938e, 0x01}, + {0x938f, 0x01}, + {0x9390, 0x01}, + {0x9391, 0x01}, + {0x9392, 0x01}, + {0x9393, 0x01}, + {0x9394, 0x01}, + {0x9395, 0x01}, + {0x9396, 0x01}, + {0x9397, 0x01}, + {0x9398, 0x01}, + {0x9399, 0x01}, + {0x939a, 0x01}, + {0x939b, 0x01}, + {0x939c, 0x01}, + {0x939d, 0x01}, + {0x939e, 0x01}, + {0x939f, 0x01}, + {0x93a0, 0x01}, + {0x93a1, 0x01}, + {0x93a2, 0x01}, + {0x93a3, 0x01}, + {0x93a4, 0x01}, + {0x93a5, 0x01}, + {0x93a6, 0x01}, + {0x93a7, 0x01}, + {0x93a8, 0x01}, + {0x93a9, 0x01}, + {0x93aa, 0x01}, + {0x93ab, 0x01}, + {0x93ac, 0x01}, + {0x93ad, 0x01}, + {0x93ae, 0x01}, + {0x93af, 0x01}, + {0x93b0, 0x01}, + {0x93b1, 0x01}, + {0x93b2, 0x01}, + {0x93b3, 0x01}, + {0x93b4, 0x01}, + {0x93b5, 0x01}, + {0x93b6, 0x01}, + {0x93b7, 0x01}, + {0x93b8, 0x01}, + {0x93b9, 0x01}, + {0x93ba, 0x01}, + {0x93bb, 0x01}, + {0x93bc, 0x01}, + {0x93bd, 0x01}, + {0x93be, 0x01}, + {0x93bf, 0x01}, + {0x93c0, 0x01}, + {0x93c1, 0x01}, + {0x93c2, 0x01}, + {0x93c3, 0x01}, + {0x93c4, 0x01}, + {0x93c5, 0x01}, + {0x93c6, 0x01}, + {0x93c7, 0x01}, + {0x93c8, 0x01}, + {0x93c9, 0x01}, + {0x93ca, 0x01}, + {0x93cb, 0x01}, + {0x93cc, 0x01}, + {0x93cd, 0x01}, + {0x93ce, 0x01}, + {0x93cf, 0x01}, + {0x93d0, 0x01}, + {0x93d1, 0x01}, + {0x93d2, 0x01}, + {0x93d3, 0x01}, + {0x93d4, 0x01}, + {0x93d5, 0x01}, + {0x93d6, 0x01}, + {0x93d7, 0x01}, + {0x93d8, 0x01}, + {0x93d9, 0x01}, + {0x93da, 0x01}, + {0x93db, 0x01}, + {0x93dc, 0x01}, + {0x93dd, 0x01}, + {0x93de, 0x01}, + {0x93df, 0x01}, + {0x93e0, 0x01}, + {0x93e1, 0x01}, + {0x93e2, 0x01}, + {0x93e3, 0x01}, + {0x93e4, 0x01}, + {0x93e5, 0x01}, + {0x93e6, 0x01}, + {0x93e7, 0x01}, + {0x93e8, 0x01}, + {0x93e9, 0x01}, + {0x93ea, 0x01}, + {0x93eb, 0x01}, + {0x93ec, 0x01}, + {0x93ed, 0x01}, + {0x93ee, 0x01}, + {0x93ef, 0x01}, + {0x93f0, 0x01}, + {0x93f1, 0x01}, + {0x93f2, 0x01}, + {0x93f3, 0x01}, + {0x93f4, 0x01}, + {0x93f5, 0x01}, + {0x93f6, 0x01}, + {0x93f7, 0x01}, + {0x93f8, 0x01}, + {0x93f9, 0x01}, + {0x93fa, 0x01}, + {0x93fb, 0x01}, + {0x93fc, 0x01}, + {0x93fd, 0x01}, + {0x93fe, 0x01}, + {0x9440, 0x01}, + {0x9441, 0x01}, + {0x9442, 0x01}, + {0x9443, 0x01}, + {0x9444, 0x01}, + {0x9445, 0x01}, + {0x9446, 0x01}, + {0x9447, 0x01}, + {0x9448, 0x01}, + {0x9449, 0x01}, + {0x944a, 0x01}, + {0x944b, 0x01}, + {0x944c, 0x01}, + {0x944d, 0x01}, + {0x944e, 0x01}, + {0x944f, 0x01}, + {0x9450, 0x01}, + {0x9451, 0x01}, + {0x9452, 0x01}, + {0x9453, 0x01}, + {0x9454, 0x01}, + {0x9455, 0x01}, + {0x9456, 0x01}, + {0x9457, 0x01}, + {0x9458, 0x01}, + {0x9459, 0x01}, + {0x945a, 0x01}, + {0x945b, 0x01}, + {0x945c, 0x01}, + {0x945d, 0x01}, + {0x945e, 0x01}, + {0x945f, 0x01}, + {0x9460, 0x01}, + {0x9461, 0x01}, + {0x9462, 0x01}, + {0x9463, 0x01}, + {0x9464, 0x01}, + {0x9465, 0x01}, + {0x9466, 0x01}, + {0x9467, 0x01}, + {0x9468, 0x01}, + {0x9469, 0x01}, + {0x946a, 0x01}, + {0x946b, 0x01}, + {0x946c, 0x01}, + {0x946d, 0x01}, + {0x946e, 0x01}, + {0x946f, 0x01}, + {0x9470, 0x01}, + {0x9471, 0x01}, + {0x9472, 0x01}, + {0x9473, 0x01}, + {0x9474, 0x01}, + {0x9475, 0x01}, + {0x9476, 0x01}, + {0x9477, 0x01}, + {0x9478, 0x01}, + {0x9479, 0x01}, + {0x947a, 0x01}, + {0x947b, 0x01}, + {0x947c, 0x01}, + {0x947d, 0x01}, + {0x947e, 0x01}, + {0x9480, 0x01}, + {0x9481, 0x01}, + {0x9482, 0x01}, + {0x9483, 0x01}, + {0x9484, 0x01}, + {0x9485, 0x01}, + {0x9486, 0x01}, + {0x9487, 0x01}, + {0x9488, 0x01}, + {0x9489, 0x01}, + {0x948a, 0x01}, + {0x948b, 0x01}, + {0x948c, 0x01}, + {0x948d, 0x01}, + {0x948e, 0x01}, + {0x948f, 0x01}, + {0x9490, 0x01}, + {0x9491, 0x01}, + {0x9492, 0x01}, + {0x9493, 0x01}, + {0x9494, 0x01}, + {0x9495, 0x01}, + {0x9496, 0x01}, + {0x9497, 0x01}, + {0x9498, 0x01}, + {0x9499, 0x01}, + {0x949a, 0x01}, + {0x949b, 0x01}, + {0x949c, 0x01}, + {0x949d, 0x01}, + {0x949e, 0x01}, + {0x949f, 0x01}, + {0x94a0, 0x01}, + {0x94a1, 0x01}, + {0x94a2, 0x01}, + {0x94a3, 0x01}, + {0x94a4, 0x01}, + {0x94a5, 0x01}, + {0x94a6, 0x01}, + {0x94a7, 0x01}, + {0x94a8, 0x01}, + {0x94a9, 0x01}, + {0x94aa, 0x01}, + {0x94ab, 0x01}, + {0x94ac, 0x01}, + {0x94ad, 0x01}, + {0x94ae, 0x01}, + {0x94af, 0x01}, + {0x94b0, 0x01}, + {0x94b1, 0x01}, + {0x94b2, 0x01}, + {0x94b3, 0x01}, + {0x94b4, 0x01}, + {0x94b5, 0x01}, + {0x94b6, 0x01}, + {0x94b7, 0x01}, + {0x94b8, 0x01}, + {0x94b9, 0x01}, + {0x94ba, 0x01}, + {0x94bb, 0x01}, + {0x94bc, 0x01}, + {0x94bd, 0x01}, + {0x94be, 0x01}, + {0x94bf, 0x01}, + {0x94c0, 0x01}, + {0x94c1, 0x01}, + {0x94c2, 0x01}, + {0x94c3, 0x01}, + {0x94c4, 0x01}, + {0x94c5, 0x01}, + {0x94c6, 0x01}, + {0x94c7, 0x01}, + {0x94c8, 0x01}, + {0x94ca, 0x01}, + {0x94cb, 0x01}, + {0x94cc, 0x01}, + {0x94cd, 0x01}, + {0x94ce, 0x01}, + {0x94cf, 0x01}, + {0x94d0, 0x01}, + {0x94d1, 0x01}, + {0x94d2, 0x01}, + {0x94d3, 0x01}, + {0x94d4, 0x01}, + {0x94d5, 0x01}, + {0x94d6, 0x01}, + {0x94d7, 0x01}, + {0x94d8, 0x01}, + {0x94d9, 0x01}, + {0x94da, 0x01}, + {0x94db, 0x01}, + {0x94dc, 0x01}, + {0x94dd, 0x01}, + {0x94de, 0x01}, + {0x94df, 0x01}, + {0x94e0, 0x01}, + {0x94e1, 0x01}, + {0x94e2, 0x01}, + {0x94e3, 0x01}, + {0x94e4, 0x01}, + {0x94e5, 0x01}, + {0x94e6, 0x01}, + {0x94e7, 0x01}, + {0x94e8, 0x01}, + {0x94e9, 0x01}, + {0x94ea, 0x01}, + {0x94eb, 0x01}, + {0x94ec, 0x01}, + {0x94ed, 0x01}, + {0x94ee, 0x01}, + {0x94ef, 0x01}, + {0x94f0, 0x01}, + {0x94f1, 0x01}, + {0x94f2, 0x01}, + {0x94f3, 0x01}, + {0x94f4, 0x01}, + {0x94f5, 0x01}, + {0x94f6, 0x01}, + {0x94f7, 0x01}, + {0x94f8, 0x01}, + {0x94f9, 0x01}, + {0x94fa, 0x01}, + {0x94fb, 0x01}, + {0x94fc, 0x01}, + {0x94fd, 0x01}, + {0x94fe, 0x01}, + {0x9540, 0x01}, + {0x9541, 0x01}, + {0x9542, 0x01}, + {0x9543, 0x01}, + {0x9544, 0x01}, + {0x9545, 0x01}, + {0x9546, 0x01}, + {0x9547, 0x01}, + {0x9548, 0x01}, + {0x9549, 0x01}, + {0x954a, 0x01}, + {0x954b, 0x01}, + {0x954c, 0x01}, + {0x954d, 0x01}, + {0x954e, 0x01}, + {0x954f, 0x01}, + {0x9550, 0x01}, + {0x9551, 0x01}, + {0x9552, 0x01}, + {0x9553, 0x01}, + {0x9554, 0x01}, + {0x9555, 0x01}, + {0x9556, 0x01}, + {0x9557, 0x01}, + {0x9558, 0x01}, + {0x9559, 0x01}, + {0x955a, 0x01}, + {0x955b, 0x01}, + {0x955c, 0x01}, + {0x955d, 0x01}, + {0x955e, 0x01}, + {0x955f, 0x01}, + {0x9560, 0x01}, + {0x9561, 0x01}, + {0x9562, 0x01}, + {0x9563, 0x01}, + {0x9564, 0x01}, + {0x9565, 0x01}, + {0x9566, 0x01}, + {0x9567, 0x01}, + {0x9568, 0x01}, + {0x9569, 0x01}, + {0x956a, 0x01}, + {0x956b, 0x01}, + {0x956c, 0x01}, + {0x956d, 0x01}, + {0x956e, 0x01}, + {0x956f, 0x01}, + {0x9570, 0x01}, + {0x9571, 0x01}, + {0x9572, 0x01}, + {0x9573, 0x01}, + {0x9574, 0x01}, + {0x9575, 0x01}, + {0x9576, 0x01}, + {0x9577, 0x01}, + {0x9578, 0x01}, + {0x9579, 0x01}, + {0x957a, 0x01}, + {0x957b, 0x01}, + {0x957c, 0x01}, + {0x957d, 0x01}, + {0x957e, 0x01}, + {0x9580, 0x01}, + {0x9581, 0x01}, + {0x9582, 0x01}, + {0x9583, 0x01}, + {0x9584, 0x01}, + {0x9585, 0x01}, + {0x9586, 0x01}, + {0x9587, 0x01}, + {0x9588, 0x01}, + {0x9589, 0x01}, + {0x958a, 0x01}, + {0x958b, 0x01}, + {0x958c, 0x01}, + {0x958d, 0x01}, + {0x958e, 0x01}, + {0x958f, 0x01}, + {0x9590, 0x01}, + {0x9591, 0x01}, + {0x9592, 0x01}, + {0x9593, 0x01}, + {0x9594, 0x01}, + {0x9595, 0x01}, + {0x9596, 0x01}, + {0x9597, 0x01}, + {0x9598, 0x01}, + {0x9599, 0x01}, + {0x959a, 0x01}, + {0x959b, 0x01}, + {0x959c, 0x01}, + {0x959d, 0x01}, + {0x959e, 0x01}, + {0x959f, 0x01}, + {0x95a0, 0x01}, + {0x95a1, 0x01}, + {0x95a2, 0x01}, + {0x95a3, 0x01}, + {0x95a4, 0x01}, + {0x95a5, 0x01}, + {0x95a6, 0x01}, + {0x95a7, 0x01}, + {0x95a8, 0x01}, + {0x95a9, 0x01}, + {0x95aa, 0x01}, + {0x95ab, 0x01}, + {0x95ac, 0x01}, + {0x95ad, 0x01}, + {0x95ae, 0x01}, + {0x95af, 0x01}, + {0x95b0, 0x01}, + {0x95b1, 0x01}, + {0x95b2, 0x01}, + {0x95b3, 0x01}, + {0x95b4, 0x01}, + {0x95b5, 0x01}, + {0x95b6, 0x01}, + {0x95b7, 0x01}, + {0x95b8, 0x01}, + {0x95b9, 0x01}, + {0x95ba, 0x01}, + {0x95bb, 0x01}, + {0x95bc, 0x01}, + {0x95bd, 0x01}, + {0x95be, 0x01}, + {0x95bf, 0x01}, + {0x95c0, 0x01}, + {0x95c1, 0x01}, + {0x95c2, 0x01}, + {0x95c3, 0x01}, + {0x95c4, 0x01}, + {0x95c5, 0x01}, + {0x95c6, 0x01}, + {0x95c7, 0x01}, + {0x95c8, 0x01}, + {0x95c9, 0x01}, + {0x95ca, 0x01}, + {0x95cb, 0x01}, + {0x95cc, 0x01}, + {0x95cd, 0x01}, + {0x95ce, 0x01}, + {0x95cf, 0x01}, + {0x95d0, 0x01}, + {0x95d1, 0x01}, + {0x95d2, 0x01}, + {0x95d3, 0x01}, + {0x95d4, 0x01}, + {0x95d5, 0x01}, + {0x95d6, 0x01}, + {0x95d7, 0x01}, + {0x95d8, 0x01}, + {0x95d9, 0x01}, + {0x95da, 0x01}, + {0x95db, 0x01}, + {0x95dc, 0x01}, + {0x95dd, 0x01}, + {0x95de, 0x01}, + {0x95df, 0x01}, + {0x95e0, 0x01}, + {0x95e1, 0x01}, + {0x95e2, 0x01}, + {0x95e3, 0x01}, + {0x95e4, 0x01}, + {0x95e5, 0x01}, + {0x95e6, 0x01}, + {0x95e7, 0x01}, + {0x95e8, 0x01}, + {0x95ea, 0x01}, + {0x95eb, 0x01}, + {0x95ec, 0x01}, + {0x95ed, 0x01}, + {0x95ee, 0x01}, + {0x95ef, 0x01}, + {0x95f0, 0x01}, + {0x95f1, 0x01}, + {0x95f2, 0x01}, + {0x95f3, 0x01}, + {0x95f4, 0x01}, + {0x95f5, 0x01}, + {0x95f6, 0x01}, + {0x95f7, 0x01}, + {0x95f8, 0x01}, + {0x95f9, 0x01}, + {0x95fa, 0x01}, + {0x95fb, 0x01}, + {0x95fc, 0x01}, + {0x95fd, 0x01}, + {0x95fe, 0x01}, + {0x9640, 0x01}, + {0x9641, 0x01}, + {0x9642, 0x01}, + {0x9643, 0x01}, + {0x9644, 0x01}, + {0x9645, 0x01}, + {0x9646, 0x01}, + {0x9648, 0x01}, + {0x9649, 0x01}, + {0x964a, 0x01}, + {0x964b, 0x01}, + {0x964c, 0x01}, + {0x964d, 0x01}, + {0x964e, 0x01}, + {0x964f, 0x01}, + {0x9650, 0x01}, + {0x9651, 0x01}, + {0x9652, 0x01}, + {0x9653, 0x01}, + {0x9654, 0x01}, + {0x9655, 0x01}, + {0x9656, 0x01}, + {0x9657, 0x01}, + {0x9658, 0x01}, + {0x9659, 0x01}, + {0x965a, 0x01}, + {0x965b, 0x01}, + {0x965c, 0x01}, + {0x965d, 0x01}, + {0x965e, 0x01}, + {0x965f, 0x01}, + {0x9660, 0x01}, + {0x9661, 0x01}, + {0x9662, 0x01}, + {0x9663, 0x01}, + {0x9664, 0x01}, + {0x9665, 0x01}, + {0x9666, 0x01}, + {0x9667, 0x01}, + {0x9668, 0x01}, + {0x9669, 0x01}, + {0x966a, 0x01}, + {0x966b, 0x01}, + {0x966c, 0x01}, + {0x966d, 0x01}, + {0x966e, 0x01}, + {0x966f, 0x01}, + {0x9670, 0x01}, + {0x9671, 0x01}, + {0x9672, 0x01}, + {0x9673, 0x01}, + {0x9674, 0x01}, + {0x9675, 0x01}, + {0x9676, 0x01}, + {0x9677, 0x01}, + {0x9678, 0x01}, + {0x9679, 0x01}, + {0x967a, 0x01}, + {0x967b, 0x01}, + {0x967c, 0x01}, + {0x967d, 0x01}, + {0x967e, 0x01}, + {0x9680, 0x01}, + {0x9681, 0x01}, + {0x9682, 0x01}, + {0x9683, 0x01}, + {0x9684, 0x01}, + {0x9685, 0x01}, + {0x9686, 0x01}, + {0x9687, 0x01}, + {0x9688, 0x01}, + {0x9689, 0x01}, + {0x968a, 0x01}, + {0x968b, 0x01}, + {0x968c, 0x01}, + {0x968d, 0x01}, + {0x968e, 0x01}, + {0x968f, 0x01}, + {0x9690, 0x01}, + {0x9691, 0x01}, + {0x9692, 0x01}, + {0x9693, 0x01}, + {0x9694, 0x01}, + {0x9695, 0x01}, + {0x9696, 0x01}, + {0x9697, 0x01}, + {0x9698, 0x01}, + {0x9699, 0x01}, + {0x969a, 0x01}, + {0x969b, 0x01}, + {0x969c, 0x01}, + {0x969d, 0x01}, + {0x969e, 0x01}, + {0x969f, 0x01}, + {0x96a0, 0x01}, + {0x96a1, 0x01}, + {0x96a2, 0x01}, + {0x96a3, 0x01}, + {0x96a4, 0x01}, + {0x96a5, 0x01}, + {0x96a6, 0x01}, + {0x96a7, 0x01}, + {0x96a8, 0x01}, + {0x96a9, 0x01}, + {0x96aa, 0x01}, + {0x96ab, 0x01}, + {0x96ac, 0x01}, + {0x96ad, 0x01}, + {0x96ae, 0x01}, + {0x96af, 0x01}, + {0x96b0, 0x01}, + {0x96b1, 0x01}, + {0x96b2, 0x01}, + {0x96b3, 0x01}, + {0x96b4, 0x01}, + {0x96b5, 0x01}, + {0x96b6, 0x01}, + {0x96b7, 0x01}, + {0x96b8, 0x01}, + {0x96b9, 0x01}, + {0x96ba, 0x01}, + {0x96bb, 0x01}, + {0x96bc, 0x01}, + {0x96bd, 0x01}, + {0x96be, 0x01}, + {0x96bf, 0x01}, + {0x96c0, 0x01}, + {0x96c1, 0x01}, + {0x96c2, 0x01}, + {0x96c3, 0x01}, + {0x96c4, 0x01}, + {0x96c5, 0x01}, + {0x96c6, 0x01}, + {0x96c7, 0x01}, + {0x96c8, 0x01}, + {0x96c9, 0x01}, + {0x96ca, 0x01}, + {0x96cb, 0x01}, + {0x96cc, 0x01}, + {0x96cd, 0x01}, + {0x96ce, 0x01}, + {0x96cf, 0x01}, + {0x96d0, 0x01}, + {0x96d1, 0x01}, + {0x96d2, 0x01}, + {0x96d3, 0x01}, + {0x96d4, 0x01}, + {0x96d5, 0x01}, + {0x96d6, 0x01}, + {0x96d7, 0x01}, + {0x96d8, 0x01}, + {0x96d9, 0x01}, + {0x96da, 0x01}, + {0x96db, 0x01}, + {0x96dc, 0x01}, + {0x96dd, 0x01}, + {0x96de, 0x01}, + {0x96df, 0x01}, + {0x96e0, 0x01}, + {0x96e1, 0x01}, + {0x96e2, 0x01}, + {0x96e3, 0x01}, + {0x96e4, 0x01}, + {0x96e5, 0x01}, + {0x96e6, 0x01}, + {0x96e7, 0x01}, + {0x96e8, 0x01}, + {0x96e9, 0x01}, + {0x96ea, 0x01}, + {0x96eb, 0x01}, + {0x96ec, 0x01}, + {0x96ed, 0x01}, + {0x96ee, 0x01}, + {0x96ef, 0x01}, + {0x96f0, 0x01}, + {0x96f1, 0x01}, + {0x96f2, 0x01}, + {0x96f3, 0x01}, + {0x96f4, 0x01}, + {0x96f5, 0x01}, + {0x96f6, 0x01}, + {0x96f7, 0x01}, + {0x96f8, 0x01}, + {0x96f9, 0x01}, + {0x96fa, 0x01}, + {0x96fb, 0x01}, + {0x96fc, 0x01}, + {0x96fd, 0x01}, + {0x9740, 0x01}, + {0x9741, 0x01}, + {0x9742, 0x01}, + {0x9743, 0x01}, + {0x9744, 0x01}, + {0x9745, 0x01}, + {0x9746, 0x01}, + {0x9747, 0x01}, + {0x9748, 0x01}, + {0x9749, 0x01}, + {0x974a, 0x01}, + {0x974b, 0x01}, + {0x974c, 0x01}, + {0x974d, 0x01}, + {0x974e, 0x01}, + {0x974f, 0x01}, + {0x9750, 0x01}, + {0x9751, 0x01}, + {0x9752, 0x01}, + {0x9753, 0x01}, + {0x9754, 0x01}, + {0x9755, 0x01}, + {0x9756, 0x01}, + {0x9757, 0x01}, + {0x9758, 0x01}, + {0x9759, 0x01}, + {0x975a, 0x01}, + {0x975b, 0x01}, + {0x975c, 0x01}, + {0x975d, 0x01}, + {0x975e, 0x01}, + {0x975f, 0x01}, + {0x9760, 0x01}, + {0x9761, 0x01}, + {0x9762, 0x01}, + {0x9763, 0x01}, + {0x9764, 0x01}, + {0x9765, 0x01}, + {0x9766, 0x01}, + {0x9767, 0x01}, + {0x9768, 0x01}, + {0x9769, 0x01}, + {0x976a, 0x01}, + {0x976b, 0x01}, + {0x976c, 0x01}, + {0x976d, 0x01}, + {0x976e, 0x01}, + {0x976f, 0x01}, + {0x9770, 0x01}, + {0x9771, 0x01}, + {0x9772, 0x01}, + {0x9773, 0x01}, + {0x9774, 0x01}, + {0x9775, 0x01}, + {0x9776, 0x01}, + {0x9777, 0x01}, + {0x9778, 0x01}, + {0x9779, 0x01}, + {0x977a, 0x01}, + {0x977b, 0x01}, + {0x977c, 0x01}, + {0x977d, 0x01}, + {0x977e, 0x01}, + {0x9780, 0x01}, + {0x9781, 0x01}, + {0x9782, 0x01}, + {0x9783, 0x01}, + {0x9784, 0x01}, + {0x9785, 0x01}, + {0x9786, 0x01}, + {0x9787, 0x01}, + {0x9788, 0x01}, + {0x9789, 0x01}, + {0x978a, 0x01}, + {0x978b, 0x01}, + {0x978c, 0x01}, + {0x978d, 0x01}, + {0x978e, 0x01}, + {0x978f, 0x01}, + {0x9790, 0x01}, + {0x9791, 0x01}, + {0x9792, 0x01}, + {0x9793, 0x01}, + {0x9794, 0x01}, + {0x9795, 0x01}, + {0x9796, 0x01}, + {0x9797, 0x01}, + {0x9798, 0x01}, + {0x9799, 0x01}, + {0x979a, 0x01}, + {0x979b, 0x01}, + {0x979c, 0x01}, + {0x979d, 0x01}, + {0x979e, 0x01}, + {0x979f, 0x01}, + {0x97a0, 0x01}, + {0x97a1, 0x01}, + {0x97a2, 0x01}, + {0x97a3, 0x01}, + {0x97a4, 0x01}, + {0x97a5, 0x01}, + {0x97a6, 0x01}, + {0x97a7, 0x01}, + {0x97a8, 0x01}, + {0x97a9, 0x01}, + {0x97aa, 0x01}, + {0x97ab, 0x01}, + {0x97ac, 0x01}, + {0x97ad, 0x01}, + {0x97ae, 0x01}, + {0x97af, 0x01}, + {0x97b0, 0x01}, + {0x97b1, 0x01}, + {0x97b2, 0x01}, + {0x97b3, 0x01}, + {0x97b4, 0x01}, + {0x97b5, 0x01}, + {0x97b6, 0x01}, + {0x97b7, 0x01}, + {0x97b8, 0x01}, + {0x97b9, 0x01}, + {0x97ba, 0x01}, + {0x97bb, 0x01}, + {0x97bc, 0x01}, + {0x97bd, 0x01}, + {0x97be, 0x01}, + {0x97bf, 0x01}, + {0x97c0, 0x01}, + {0x97c1, 0x01}, + {0x97c2, 0x01}, + {0x97c3, 0x01}, + {0x97c4, 0x01}, + {0x97c5, 0x01}, + {0x97c6, 0x01}, + {0x97c7, 0x01}, + {0x97c8, 0x01}, + {0x97c9, 0x01}, + {0x97ca, 0x01}, + {0x97cb, 0x01}, + {0x97cc, 0x01}, + {0x97cd, 0x01}, + {0x97ce, 0x01}, + {0x97cf, 0x01}, + {0x97d0, 0x01}, + {0x97d1, 0x01}, + {0x97d2, 0x01}, + {0x97d3, 0x01}, + {0x97d4, 0x01}, + {0x97d5, 0x01}, + {0x97d6, 0x01}, + {0x97d7, 0x01}, + {0x97d8, 0x01}, + {0x97d9, 0x01}, + {0x97da, 0x01}, + {0x97db, 0x01}, + {0x97dc, 0x01}, + {0x97dd, 0x01}, + {0x97de, 0x01}, + {0x97df, 0x01}, + {0x97e0, 0x01}, + {0x97e1, 0x01}, + {0x97e2, 0x01}, + {0x97e3, 0x01}, + {0x97e4, 0x01}, + {0x97e5, 0x01}, + {0x97e6, 0x01}, + {0x97e7, 0x01}, + {0x97e8, 0x01}, + {0x97e9, 0x01}, + {0x97ea, 0x01}, + {0x97eb, 0x01}, + {0x97ec, 0x01}, + {0x97ed, 0x01}, + {0x97ee, 0x01}, + {0x97ef, 0x01}, + {0x97f0, 0x01}, + {0x97f1, 0x01}, + {0x97f2, 0x01}, + {0x97f3, 0x01}, + {0x97f4, 0x01}, + {0x97f5, 0x01}, + {0x97f6, 0x01}, + {0x97f7, 0x01}, + {0x97f8, 0x01}, + {0x97f9, 0x01}, + {0x97fa, 0x01}, + {0x97fb, 0x01}, + {0x97fc, 0x01}, + {0x97fd, 0x01}, + {0x97fe, 0x01}, + {0x9840, 0x01}, + {0x9841, 0x01}, + {0x9842, 0x01}, + {0x9843, 0x01}, + {0x9844, 0x01}, + {0x9845, 0x01}, + {0x9846, 0x01}, + {0x9847, 0x01}, + {0x9848, 0x01}, + {0x9849, 0x01}, + {0x984a, 0x01}, + {0x984b, 0x01}, + {0x984c, 0x01}, + {0x984d, 0x01}, + {0x984e, 0x01}, + {0x984f, 0x01}, + {0x9850, 0x01}, + {0x9851, 0x01}, + {0x9852, 0x01}, + {0x9853, 0x01}, + {0x9854, 0x01}, + {0x9855, 0x01}, + {0x9856, 0x01}, + {0x9857, 0x01}, + {0x9858, 0x01}, + {0x9859, 0x01}, + {0x985a, 0x01}, + {0x985b, 0x01}, + {0x985c, 0x01}, + {0x985d, 0x01}, + {0x985e, 0x01}, + {0x985f, 0x01}, + {0x9860, 0x01}, + {0x9861, 0x01}, + {0x9862, 0x01}, + {0x9863, 0x01}, + {0x9864, 0x01}, + {0x9865, 0x01}, + {0x9866, 0x01}, + {0x9867, 0x01}, + {0x9868, 0x01}, + {0x9869, 0x01}, + {0x986a, 0x01}, + {0x986b, 0x01}, + {0x986c, 0x01}, + {0x986d, 0x01}, + {0x986e, 0x01}, + {0x986f, 0x01}, + {0x9870, 0x01}, + {0x9871, 0x01}, + {0x9872, 0x01}, + {0x9873, 0x01}, + {0x9874, 0x01}, + {0x9875, 0x01}, + {0x9876, 0x01}, + {0x9877, 0x01}, + {0x9878, 0x01}, + {0x9879, 0x01}, + {0x987a, 0x01}, + {0x987b, 0x01}, + {0x987c, 0x01}, + {0x987d, 0x01}, + {0x987e, 0x01}, + {0x9880, 0x01}, + {0x9881, 0x01}, + {0x9882, 0x01}, + {0x9883, 0x01}, + {0x9884, 0x01}, + {0x9885, 0x01}, + {0x9886, 0x01}, + {0x9887, 0x01}, + {0x9888, 0x01}, + {0x9889, 0x01}, + {0x988a, 0x01}, + {0x988b, 0x01}, + {0x988c, 0x01}, + {0x988d, 0x01}, + {0x988e, 0x01}, + {0x988f, 0x01}, + {0x9890, 0x01}, + {0x9891, 0x01}, + {0x9892, 0x01}, + {0x9893, 0x01}, + {0x9894, 0x01}, + {0x9895, 0x01}, + {0x9896, 0x01}, + {0x9897, 0x01}, + {0x9898, 0x01}, + {0x9899, 0x01}, + {0x989a, 0x01}, + {0x989b, 0x01}, + {0x989c, 0x01}, + {0x989d, 0x01}, + {0x989e, 0x01}, + {0x989f, 0x01}, + {0x98a0, 0x01}, + {0x98a1, 0x01}, + {0x98a2, 0x01}, + {0x98a3, 0x01}, + {0x98a4, 0x01}, + {0x98a5, 0x01}, + {0x98a6, 0x01}, + {0x98a7, 0x01}, + {0x98a8, 0x01}, + {0x98a9, 0x01}, + {0x98aa, 0x01}, + {0x98ab, 0x01}, + {0x98ac, 0x01}, + {0x98ad, 0x01}, + {0x98ae, 0x01}, + {0x98af, 0x01}, + {0x98b0, 0x01}, + {0x98b1, 0x01}, + {0x98b2, 0x01}, + {0x98b3, 0x01}, + {0x98b4, 0x01}, + {0x98b5, 0x01}, + {0x98b6, 0x01}, + {0x98b7, 0x01}, + {0x98b8, 0x01}, + {0x98b9, 0x01}, + {0x98ba, 0x01}, + {0x98bb, 0x01}, + {0x98bc, 0x01}, + {0x98bd, 0x01}, + {0x98be, 0x01}, + {0x98bf, 0x01}, + {0x98c0, 0x01}, + {0x98c1, 0x01}, + {0x98c2, 0x01}, + {0x98c3, 0x01}, + {0x98c4, 0x01}, + {0x98c5, 0x01}, + {0x98c6, 0x01}, + {0x98c7, 0x01}, + {0x98c8, 0x01}, + {0x98c9, 0x01}, + {0x98ca, 0x01}, + {0x98cb, 0x01}, + {0x98cc, 0x01}, + {0x98cd, 0x01}, + {0x98ce, 0x01}, + {0x98cf, 0x01}, + {0x98d0, 0x01}, + {0x98d1, 0x01}, + {0x98d2, 0x01}, + {0x98d3, 0x01}, + {0x98d4, 0x01}, + {0x98d5, 0x01}, + {0x98d6, 0x01}, + {0x98d7, 0x01}, + {0x98d8, 0x01}, + {0x98d9, 0x01}, + {0x98da, 0x01}, + {0x98db, 0x01}, + {0x98dc, 0x01}, + {0x98dd, 0x01}, + {0x98de, 0x01}, + {0x98df, 0x01}, + {0x98e0, 0x01}, + {0x98e1, 0x01}, + {0x98e2, 0x01}, + {0x98e3, 0x01}, + {0x98e4, 0x01}, + {0x98e5, 0x01}, + {0x98e6, 0x01}, + {0x98e7, 0x01}, + {0x98e8, 0x01}, + {0x98e9, 0x01}, + {0x98ea, 0x01}, + {0x98eb, 0x01}, + {0x98ec, 0x01}, + {0x98ed, 0x01}, + {0x98ee, 0x01}, + {0x98ef, 0x01}, + {0x98f0, 0x01}, + {0x98f1, 0x01}, + {0x98f2, 0x01}, + {0x98f3, 0x01}, + {0x98f4, 0x01}, + {0x98f5, 0x01}, + {0x98f6, 0x01}, + {0x98f7, 0x01}, + {0x98f8, 0x01}, + {0x98f9, 0x01}, + {0x98fa, 0x01}, + {0x98fb, 0x01}, + {0x98fc, 0x01}, + {0x98fd, 0x01}, + {0x98fe, 0x01}, + {0x9940, 0x01}, + {0x9941, 0x01}, + {0x9942, 0x01}, + {0x9943, 0x01}, + {0x9944, 0x01}, + {0x9945, 0x01}, + {0x9946, 0x01}, + {0x9947, 0x01}, + {0x9948, 0x01}, + {0x9949, 0x01}, + {0x994a, 0x01}, + {0x994b, 0x01}, + {0x994c, 0x01}, + {0x994d, 0x01}, + {0x994e, 0x01}, + {0x994f, 0x01}, + {0x9950, 0x01}, + {0x9951, 0x01}, + {0x9952, 0x01}, + {0x9953, 0x01}, + {0x9954, 0x01}, + {0x9955, 0x01}, + {0x9956, 0x01}, + {0x9957, 0x01}, + {0x9958, 0x01}, + {0x9959, 0x01}, + {0x995a, 0x01}, + {0x995b, 0x01}, + {0x995c, 0x01}, + {0x995d, 0x01}, + {0x995e, 0x01}, + {0x995f, 0x01}, + {0x9960, 0x01}, + {0x9961, 0x01}, + {0x9962, 0x01}, + {0x9963, 0x01}, + {0x9964, 0x01}, + {0x9965, 0x01}, + {0x9966, 0x01}, + {0x9967, 0x01}, + {0x9968, 0x01}, + {0x9969, 0x01}, + {0x996a, 0x01}, + {0x996b, 0x01}, + {0x996c, 0x01}, + {0x996d, 0x01}, + {0x996e, 0x01}, + {0x996f, 0x01}, + {0x9970, 0x01}, + {0x9971, 0x01}, + {0x9972, 0x01}, + {0x9973, 0x01}, + {0x9974, 0x01}, + {0x9975, 0x01}, + {0x9976, 0x01}, + {0x9977, 0x01}, + {0x9978, 0x01}, + {0x9979, 0x01}, + {0x997a, 0x01}, + {0x997b, 0x01}, + {0x997c, 0x01}, + {0x997d, 0x01}, + {0x997e, 0x01}, + {0x9980, 0x01}, + {0x9981, 0x01}, + {0x9982, 0x01}, + {0x9983, 0x01}, + {0x9984, 0x01}, + {0x9985, 0x01}, + {0x9986, 0x01}, + {0x9987, 0x01}, + {0x9988, 0x01}, + {0x9989, 0x01}, + {0x998a, 0x01}, + {0x998b, 0x01}, + {0x998c, 0x01}, + {0x998d, 0x01}, + {0x998e, 0x01}, + {0x998f, 0x01}, + {0x9990, 0x01}, + {0x9991, 0x01}, + {0x9992, 0x01}, + {0x9993, 0x01}, + {0x9994, 0x01}, + {0x9995, 0x01}, + {0x9996, 0x01}, + {0x9997, 0x01}, + {0x9998, 0x01}, + {0x9999, 0x01}, + {0x999a, 0x01}, + {0x999b, 0x01}, + {0x999c, 0x01}, + {0x999d, 0x01}, + {0x999e, 0x01}, + {0x999f, 0x01}, + {0x99a0, 0x01}, + {0x99a1, 0x01}, + {0x99a2, 0x01}, + {0x99a3, 0x01}, + {0x99a4, 0x01}, + {0x99a5, 0x01}, + {0x99a6, 0x01}, + {0x99a7, 0x01}, + {0x99a8, 0x01}, + {0x99a9, 0x01}, + {0x99aa, 0x01}, + {0x99ab, 0x01}, + {0x99ac, 0x01}, + {0x99ad, 0x01}, + {0x99ae, 0x01}, + {0x99af, 0x01}, + {0x99b0, 0x01}, + {0x99b1, 0x01}, + {0x99b2, 0x01}, + {0x99b3, 0x01}, + {0x99b4, 0x01}, + {0x99b5, 0x01}, + {0x99b6, 0x01}, + {0x99b7, 0x01}, + {0x99b8, 0x01}, + {0x99b9, 0x01}, + {0x99ba, 0x01}, + {0x99bb, 0x01}, + {0x99bc, 0x01}, + {0x99bd, 0x01}, + {0x99be, 0x01}, + {0x99bf, 0x01}, + {0x99c0, 0x01}, + {0x99c1, 0x01}, + {0x99c2, 0x01}, + {0x99c3, 0x01}, + {0x99c4, 0x01}, + {0x99c5, 0x01}, + {0x99c6, 0x01}, + {0x99c7, 0x01}, + {0x99c8, 0x01}, + {0x99c9, 0x01}, + {0x99ca, 0x01}, + {0x99cb, 0x01}, + {0x99cc, 0x01}, + {0x99cd, 0x01}, + {0x99ce, 0x01}, + {0x99cf, 0x01}, + {0x99d0, 0x01}, + {0x99d1, 0x01}, + {0x99d2, 0x01}, + {0x99d3, 0x01}, + {0x99d4, 0x01}, + {0x99d5, 0x01}, + {0x99d6, 0x01}, + {0x99d7, 0x01}, + {0x99d8, 0x01}, + {0x99d9, 0x01}, + {0x99da, 0x01}, + {0x99db, 0x01}, + {0x99dc, 0x01}, + {0x99dd, 0x01}, + {0x99de, 0x01}, + {0x99df, 0x01}, + {0x99e0, 0x01}, + {0x99e1, 0x01}, + {0x99e2, 0x01}, + {0x99e3, 0x01}, + {0x99e4, 0x01}, + {0x99e5, 0x01}, + {0x99e6, 0x01}, + {0x99e7, 0x01}, + {0x99e8, 0x01}, + {0x99e9, 0x01}, + {0x99ea, 0x01}, + {0x99eb, 0x01}, + {0x99ec, 0x01}, + {0x99ed, 0x01}, + {0x99ee, 0x01}, + {0x99ef, 0x01}, + {0x99f0, 0x01}, + {0x99f1, 0x01}, + {0x99f2, 0x01}, + {0x99f3, 0x01}, + {0x99f4, 0x01}, + {0x99f5, 0x01}, + {0x99f6, 0x01}, + {0x99f7, 0x01}, + {0x99f8, 0x01}, + {0x99f9, 0x01}, + {0x99fa, 0x01}, + {0x99fb, 0x01}, + {0x99fc, 0x01}, + {0x99fd, 0x01}, + {0x99fe, 0x01}, + {0x9a40, 0x01}, + {0x9a41, 0x01}, + {0x9a42, 0x01}, + {0x9a43, 0x01}, + {0x9a44, 0x01}, + {0x9a45, 0x01}, + {0x9a46, 0x01}, + {0x9a47, 0x01}, + {0x9a48, 0x01}, + {0x9a49, 0x01}, + {0x9a4a, 0x01}, + {0x9a4b, 0x01}, + {0x9a4c, 0x01}, + {0x9a4d, 0x01}, + {0x9a4e, 0x01}, + {0x9a4f, 0x01}, + {0x9a50, 0x01}, + {0x9a51, 0x01}, + {0x9a52, 0x01}, + {0x9a53, 0x01}, + {0x9a54, 0x01}, + {0x9a55, 0x01}, + {0x9a56, 0x01}, + {0x9a57, 0x01}, + {0x9a58, 0x01}, + {0x9a59, 0x01}, + {0x9a5a, 0x01}, + {0x9a5b, 0x01}, + {0x9a5c, 0x01}, + {0x9a5d, 0x01}, + {0x9a5e, 0x01}, + {0x9a5f, 0x01}, + {0x9a61, 0x01}, + {0x9a62, 0x01}, + {0x9a63, 0x01}, + {0x9a64, 0x01}, + {0x9a65, 0x01}, + {0x9a66, 0x01}, + {0x9a67, 0x01}, + {0x9a68, 0x01}, + {0x9a69, 0x01}, + {0x9a6a, 0x01}, + {0x9a6b, 0x01}, + {0x9a6c, 0x01}, + {0x9a6d, 0x01}, + {0x9a6e, 0x01}, + {0x9a6f, 0x01}, + {0x9a70, 0x01}, + {0x9a71, 0x01}, + {0x9a72, 0x01}, + {0x9a73, 0x01}, + {0x9a74, 0x01}, + {0x9a75, 0x01}, + {0x9a76, 0x01}, + {0x9a77, 0x01}, + {0x9a78, 0x01}, + {0x9a79, 0x01}, + {0x9a7a, 0x01}, + {0x9a7b, 0x01}, + {0x9a7c, 0x01}, + {0x9a7d, 0x01}, + {0x9a7e, 0x01}, + {0x9a80, 0x01}, + {0x9a81, 0x01}, + {0x9a82, 0x01}, + {0x9a83, 0x01}, + {0x9a84, 0x01}, + {0x9a85, 0x01}, + {0x9a86, 0x01}, + {0x9a87, 0x01}, + {0x9a88, 0x01}, + {0x9a89, 0x01}, + {0x9a8a, 0x01}, + {0x9a8b, 0x01}, + {0x9a8c, 0x01}, + {0x9a8d, 0x01}, + {0x9a8e, 0x01}, + {0x9a8f, 0x01}, + {0x9a90, 0x01}, + {0x9a91, 0x01}, + {0x9a92, 0x01}, + {0x9a93, 0x01}, + {0x9a94, 0x01}, + {0x9a95, 0x01}, + {0x9a96, 0x01}, + {0x9a97, 0x01}, + {0x9a98, 0x01}, + {0x9a99, 0x01}, + {0x9a9a, 0x01}, + {0x9a9b, 0x01}, + {0x9a9c, 0x01}, + {0x9a9d, 0x01}, + {0x9a9e, 0x01}, + {0x9a9f, 0x01}, + {0x9aa0, 0x01}, + {0x9aa1, 0x01}, + {0x9aa2, 0x01}, + {0x9aa3, 0x01}, + {0x9aa4, 0x01}, + {0x9aa5, 0x01}, + {0x9aa6, 0x01}, + {0x9aa7, 0x01}, + {0x9aa8, 0x01}, + {0x9aa9, 0x01}, + {0x9aaa, 0x01}, + {0x9aab, 0x01}, + {0x9aac, 0x01}, + {0x9aad, 0x01}, + {0x9aae, 0x01}, + {0x9aaf, 0x01}, + {0x9ab0, 0x01}, + {0x9ab1, 0x01}, + {0x9ab2, 0x01}, + {0x9ab3, 0x01}, + {0x9ab4, 0x01}, + {0x9ab7, 0x01}, + {0x9ab8, 0x01}, + {0x9ab9, 0x01}, + {0x9aba, 0x01}, + {0x9abb, 0x01}, + {0x9abc, 0x01}, + {0x9abd, 0x01}, + {0x9abe, 0x01}, + {0x9abf, 0x01}, + {0x9ac0, 0x01}, + {0x9ac1, 0x01}, + {0x9ac2, 0x01}, + {0x9ac3, 0x01}, + {0x9ac5, 0x01}, + {0x9ac6, 0x01}, + {0x9ac7, 0x01}, + {0x9ac8, 0x01}, + {0x9ac9, 0x01}, + {0x9aca, 0x01}, + {0x9acb, 0x01}, + {0x9acc, 0x01}, + {0x9acd, 0x01}, + {0x9ace, 0x01}, + {0x9acf, 0x01}, + {0x9ad0, 0x01}, + {0x9ad1, 0x01}, + {0x9ad2, 0x01}, + {0x9ad3, 0x01}, + {0x9ad4, 0x01}, + {0x9ad5, 0x01}, + {0x9ad6, 0x01}, + {0x9ad7, 0x01}, + {0x9ad8, 0x01}, + {0x9ad9, 0x01}, + {0x9ada, 0x01}, + {0x9adb, 0x01}, + {0x9adc, 0x01}, + {0x9add, 0x01}, + {0x9ade, 0x01}, + {0x9adf, 0x01}, + {0x9ae0, 0x01}, + {0x9ae1, 0x01}, + {0x9ae2, 0x01}, + {0x9ae3, 0x01}, + {0x9ae4, 0x01}, + {0x9ae5, 0x01}, + {0x9ae6, 0x01}, + {0x9ae7, 0x01}, + {0x9ae8, 0x01}, + {0x9ae9, 0x01}, + {0x9aea, 0x01}, + {0x9aeb, 0x01}, + {0x9aec, 0x01}, + {0x9aed, 0x01}, + {0x9aee, 0x01}, + {0x9aef, 0x01}, + {0x9af0, 0x01}, + {0x9af1, 0x01}, + {0x9af2, 0x01}, + {0x9af3, 0x01}, + {0x9af4, 0x01}, + {0x9af5, 0x01}, + {0x9af6, 0x01}, + {0x9af7, 0x01}, + {0x9af8, 0x01}, + {0x9af9, 0x01}, + {0x9afa, 0x01}, + {0x9afb, 0x01}, + {0x9afc, 0x01}, + {0x9afd, 0x01}, + {0x9afe, 0x01}, + {0x9b40, 0x01}, + {0x9b41, 0x01}, + {0x9b42, 0x01}, + {0x9b43, 0x01}, + {0x9b44, 0x01}, + {0x9b45, 0x01}, + {0x9b46, 0x01}, + {0x9b47, 0x01}, + {0x9b48, 0x01}, + {0x9b49, 0x01}, + {0x9b4a, 0x01}, + {0x9b4b, 0x01}, + {0x9b4c, 0x01}, + {0x9b4d, 0x01}, + {0x9b4e, 0x01}, + {0x9b4f, 0x01}, + {0x9b50, 0x01}, + {0x9b51, 0x01}, + {0x9b52, 0x01}, + {0x9b53, 0x01}, + {0x9b54, 0x01}, + {0x9b55, 0x01}, + {0x9b56, 0x01}, + {0x9b57, 0x01}, + {0x9b58, 0x01}, + {0x9b59, 0x01}, + {0x9b5a, 0x01}, + {0x9b5b, 0x01}, + {0x9b5c, 0x01}, + {0x9b5d, 0x01}, + {0x9b5e, 0x01}, + {0x9b5f, 0x01}, + {0x9b60, 0x01}, + {0x9b61, 0x01}, + {0x9b62, 0x01}, + {0x9b63, 0x01}, + {0x9b64, 0x01}, + {0x9b65, 0x01}, + {0x9b66, 0x01}, + {0x9b67, 0x01}, + {0x9b68, 0x01}, + {0x9b69, 0x01}, + {0x9b6a, 0x01}, + {0x9b6b, 0x01}, + {0x9b6c, 0x01}, + {0x9b6d, 0x01}, + {0x9b6e, 0x01}, + {0x9b6f, 0x01}, + {0x9b70, 0x01}, + {0x9b71, 0x01}, + {0x9b72, 0x01}, + {0x9b73, 0x01}, + {0x9b74, 0x01}, + {0x9b75, 0x01}, + {0x9b76, 0x01}, + {0x9b77, 0x01}, + {0x9b78, 0x01}, + {0x9b79, 0x01}, + {0x9b7a, 0x01}, + {0x9b7b, 0x01}, + {0x9b7c, 0x01}, + {0x9b7d, 0x01}, + {0x9b7e, 0x01}, + {0x9b80, 0x01}, + {0x9b81, 0x01}, + {0x9b82, 0x01}, + {0x9b83, 0x01}, + {0x9b84, 0x01}, + {0x9b85, 0x01}, + {0x9b86, 0x01}, + {0x9b87, 0x01}, + {0x9b88, 0x01}, + {0x9b89, 0x01}, + {0x9b8a, 0x01}, + {0x9b8b, 0x01}, + {0x9b8c, 0x01}, + {0x9b8d, 0x01}, + {0x9b8e, 0x01}, + {0x9b8f, 0x01}, + {0x9b90, 0x01}, + {0x9b91, 0x01}, + {0x9b92, 0x01}, + {0x9b93, 0x01}, + {0x9b94, 0x01}, + {0x9b95, 0x01}, + {0x9b96, 0x01}, + {0x9b97, 0x01}, + {0x9b98, 0x01}, + {0x9b99, 0x01}, + {0x9b9a, 0x01}, + {0x9b9b, 0x01}, + {0x9b9c, 0x01}, + {0x9b9d, 0x01}, + {0x9b9e, 0x01}, + {0x9b9f, 0x01}, + {0x9ba1, 0x01}, + {0x9ba2, 0x01}, + {0x9ba3, 0x01}, + {0x9ba4, 0x01}, + {0x9ba5, 0x01}, + {0x9ba6, 0x01}, + {0x9ba7, 0x01}, + {0x9ba8, 0x01}, + {0x9ba9, 0x01}, + {0x9baa, 0x01}, + {0x9bab, 0x01}, + {0x9bac, 0x01}, + {0x9bad, 0x01}, + {0x9bae, 0x01}, + {0x9baf, 0x01}, + {0x9bb0, 0x01}, + {0x9bb1, 0x01}, + {0x9bb2, 0x01}, + {0x9bb3, 0x01}, + {0x9bb4, 0x01}, + {0x9bb5, 0x01}, + {0x9bb6, 0x01}, + {0x9bb7, 0x01}, + {0x9bb8, 0x01}, + {0x9bb9, 0x01}, + {0x9bba, 0x01}, + {0x9bbb, 0x01}, + {0x9bbc, 0x01}, + {0x9bbd, 0x01}, + {0x9bbe, 0x01}, + {0x9bbf, 0x01}, + {0x9bc0, 0x01}, + {0x9bc1, 0x01}, + {0x9bc2, 0x01}, + {0x9bc3, 0x01}, + {0x9bc4, 0x01}, + {0x9bc5, 0x01}, + {0x9bc6, 0x01}, + {0x9bc7, 0x01}, + {0x9bc8, 0x01}, + {0x9bc9, 0x01}, + {0x9bca, 0x01}, + {0x9bcb, 0x01}, + {0x9bcc, 0x01}, + {0x9bcd, 0x01}, + {0x9bce, 0x01}, + {0x9bcf, 0x01}, + {0x9bd0, 0x01}, + {0x9bd1, 0x01}, + {0x9bd2, 0x01}, + {0x9bd3, 0x01}, + {0x9bd4, 0x01}, + {0x9bd5, 0x01}, + {0x9bd6, 0x01}, + {0x9bd7, 0x01}, + {0x9bd8, 0x01}, + {0x9bd9, 0x01}, + {0x9bda, 0x01}, + {0x9bdb, 0x01}, + {0x9bdc, 0x01}, + {0x9bdd, 0x01}, + {0x9bde, 0x01}, + {0x9bdf, 0x01}, + {0x9be0, 0x01}, + {0x9be1, 0x01}, + {0x9be2, 0x01}, + {0x9be3, 0x01}, + {0x9be4, 0x01}, + {0x9be5, 0x01}, + {0x9be6, 0x01}, + {0x9be7, 0x01}, + {0x9be8, 0x01}, + {0x9be9, 0x01}, + {0x9bea, 0x01}, + {0x9beb, 0x01}, + {0x9bec, 0x01}, + {0x9bed, 0x01}, + {0x9bee, 0x01}, + {0x9bef, 0x01}, + {0x9bf0, 0x01}, + {0x9bf1, 0x01}, + {0x9bf2, 0x01}, + {0x9bf3, 0x01}, + {0x9bf4, 0x01}, + {0x9bf5, 0x01}, + {0x9bf6, 0x01}, + {0x9bf7, 0x01}, + {0x9bf8, 0x01}, + {0x9bf9, 0x01}, + {0x9bfa, 0x01}, + {0x9bfb, 0x01}, + {0x9bfc, 0x01}, + {0x9bfd, 0x01}, + {0x9bfe, 0x01}, + {0x9c40, 0x01}, + {0x9c41, 0x01}, + {0x9c42, 0x01}, + {0x9c43, 0x01}, + {0x9c44, 0x01}, + {0x9c45, 0x01}, + {0x9c46, 0x01}, + {0x9c47, 0x01}, + {0x9c48, 0x01}, + {0x9c49, 0x01}, + {0x9c4a, 0x01}, + {0x9c4b, 0x01}, + {0x9c4c, 0x01}, + {0x9c4d, 0x01}, + {0x9c4e, 0x01}, + {0x9c4f, 0x01}, + {0x9c50, 0x01}, + {0x9c51, 0x01}, + {0x9c52, 0x01}, + {0x9c53, 0x01}, + {0x9c54, 0x01}, + {0x9c55, 0x01}, + {0x9c56, 0x01}, + {0x9c57, 0x01}, + {0x9c58, 0x01}, + {0x9c59, 0x01}, + {0x9c5a, 0x01}, + {0x9c5b, 0x01}, + {0x9c5c, 0x01}, + {0x9c5d, 0x01}, + {0x9c5e, 0x01}, + {0x9c5f, 0x01}, + {0x9c60, 0x01}, + {0x9c61, 0x01}, + {0x9c62, 0x01}, + {0x9c63, 0x01}, + {0x9c64, 0x01}, + {0x9c65, 0x01}, + {0x9c66, 0x01}, + {0x9c67, 0x01}, + {0x9c68, 0x01}, + {0x9c69, 0x01}, + {0x9c6a, 0x01}, + {0x9c6b, 0x01}, + {0x9c6c, 0x01}, + {0x9c6d, 0x01}, + {0x9c6e, 0x01}, + {0x9c6f, 0x01}, + {0x9c70, 0x01}, + {0x9c71, 0x01}, + {0x9c72, 0x01}, + {0x9c73, 0x01}, + {0x9c74, 0x01}, + {0x9c75, 0x01}, + {0x9c76, 0x01}, + {0x9c77, 0x01}, + {0x9c78, 0x01}, + {0x9c79, 0x01}, + {0x9c7a, 0x01}, + {0x9c7b, 0x01}, + {0x9c7c, 0x01}, + {0x9c7d, 0x01}, + {0x9c7e, 0x01}, + {0x9c80, 0x01}, + {0x9c81, 0x01}, + {0x9c82, 0x01}, + {0x9c83, 0x01}, + {0x9c84, 0x01}, + {0x9c85, 0x01}, + {0x9c86, 0x01}, + {0x9c87, 0x01}, + {0x9c88, 0x01}, + {0x9c89, 0x01}, + {0x9c8a, 0x01}, + {0x9c8b, 0x01}, + {0x9c8c, 0x01}, + {0x9c8d, 0x01}, + {0x9c8e, 0x01}, + {0x9c8f, 0x01}, + {0x9c90, 0x01}, + {0x9c91, 0x01}, + {0x9c92, 0x01}, + {0x9c93, 0x01}, + {0x9c94, 0x01}, + {0x9c95, 0x01}, + {0x9c96, 0x01}, + {0x9c97, 0x01}, + {0x9c98, 0x01}, + {0x9c99, 0x01}, + {0x9c9a, 0x01}, + {0x9c9b, 0x01}, + {0x9c9c, 0x01}, + {0x9c9d, 0x01}, + {0x9c9e, 0x01}, + {0x9c9f, 0x01}, + {0x9ca0, 0x01}, + {0x9ca1, 0x01}, + {0x9ca2, 0x01}, + {0x9ca3, 0x01}, + {0x9ca4, 0x01}, + {0x9ca5, 0x01}, + {0x9ca6, 0x01}, + {0x9ca7, 0x01}, + {0x9ca8, 0x01}, + {0x9ca9, 0x01}, + {0x9caa, 0x01}, + {0x9cab, 0x01}, + {0x9cac, 0x01}, + {0x9cad, 0x01}, + {0x9cae, 0x01}, + {0x9caf, 0x01}, + {0x9cb0, 0x01}, + {0x9cb1, 0x01}, + {0x9cb2, 0x01}, + {0x9cb3, 0x01}, + {0x9cb4, 0x01}, + {0x9cb5, 0x01}, + {0x9cb6, 0x01}, + {0x9cb7, 0x01}, + {0x9cb8, 0x01}, + {0x9cb9, 0x01}, + {0x9cba, 0x01}, + {0x9cbb, 0x01}, + {0x9cbc, 0x01}, + {0x9cbd, 0x01}, + {0x9cbe, 0x01}, + {0x9cbf, 0x01}, + {0x9cc0, 0x01}, + {0x9cc1, 0x01}, + {0x9cc2, 0x01}, + {0x9cc3, 0x01}, + {0x9cc4, 0x01}, + {0x9cc5, 0x01}, + {0x9cc6, 0x01}, + {0x9cc7, 0x01}, + {0x9cc8, 0x01}, + {0x9cc9, 0x01}, + {0x9cca, 0x01}, + {0x9ccb, 0x01}, + {0x9ccc, 0x01}, + {0x9ccd, 0x01}, + {0x9cce, 0x01}, + {0x9ccf, 0x01}, + {0x9cd0, 0x01}, + {0x9cd1, 0x01}, + {0x9cd2, 0x01}, + {0x9cd3, 0x01}, + {0x9cd4, 0x01}, + {0x9cd5, 0x01}, + {0x9cd6, 0x01}, + {0x9cd7, 0x01}, + {0x9cd8, 0x01}, + {0x9cd9, 0x01}, + {0x9cda, 0x01}, + {0x9cdb, 0x01}, + {0x9cdc, 0x01}, + {0x9cdd, 0x01}, + {0x9cde, 0x01}, + {0x9cdf, 0x01}, + {0x9ce0, 0x01}, + {0x9ce1, 0x01}, + {0x9ce2, 0x01}, + {0x9ce3, 0x01}, + {0x9ce4, 0x01}, + {0x9ce5, 0x01}, + {0x9ce6, 0x01}, + {0x9ce7, 0x01}, + {0x9ce8, 0x01}, + {0x9ce9, 0x01}, + {0x9cea, 0x01}, + {0x9ceb, 0x01}, + {0x9cec, 0x01}, + {0x9ced, 0x01}, + {0x9cee, 0x01}, + {0x9cef, 0x01}, + {0x9cf0, 0x01}, + {0x9cf1, 0x01}, + {0x9cf2, 0x01}, + {0x9cf3, 0x01}, + {0x9cf4, 0x01}, + {0x9cf5, 0x01}, + {0x9cf6, 0x01}, + {0x9cf7, 0x01}, + {0x9cf8, 0x01}, + {0x9cf9, 0x01}, + {0x9cfa, 0x01}, + {0x9cfb, 0x01}, + {0x9cfc, 0x01}, + {0x9cfd, 0x01}, + {0x9cfe, 0x01}, + {0x9d40, 0x01}, + {0x9d41, 0x01}, + {0x9d42, 0x01}, + {0x9d43, 0x01}, + {0x9d44, 0x01}, + {0x9d45, 0x01}, + {0x9d46, 0x01}, + {0x9d47, 0x01}, + {0x9d48, 0x01}, + {0x9d49, 0x01}, + {0x9d4a, 0x01}, + {0x9d4b, 0x01}, + {0x9d4c, 0x01}, + {0x9d4d, 0x01}, + {0x9d4e, 0x01}, + {0x9d4f, 0x01}, + {0x9d50, 0x01}, + {0x9d51, 0x01}, + {0x9d52, 0x01}, + {0x9d53, 0x01}, + {0x9d54, 0x01}, + {0x9d55, 0x01}, + {0x9d56, 0x01}, + {0x9d57, 0x01}, + {0x9d58, 0x01}, + {0x9d59, 0x01}, + {0x9d5a, 0x01}, + {0x9d5b, 0x01}, + {0x9d5c, 0x01}, + {0x9d5d, 0x01}, + {0x9d5e, 0x01}, + {0x9d5f, 0x01}, + {0x9d60, 0x01}, + {0x9d61, 0x01}, + {0x9d62, 0x01}, + {0x9d63, 0x01}, + {0x9d64, 0x01}, + {0x9d65, 0x01}, + {0x9d66, 0x01}, + {0x9d67, 0x01}, + {0x9d68, 0x01}, + {0x9d69, 0x01}, + {0x9d6a, 0x01}, + {0x9d6b, 0x01}, + {0x9d6c, 0x01}, + {0x9d6d, 0x01}, + {0x9d6e, 0x01}, + {0x9d6f, 0x01}, + {0x9d70, 0x01}, + {0x9d71, 0x01}, + {0x9d72, 0x01}, + {0x9d73, 0x01}, + {0x9d74, 0x01}, + {0x9d75, 0x01}, + {0x9d76, 0x01}, + {0x9d77, 0x01}, + {0x9d78, 0x01}, + {0x9d79, 0x01}, + {0x9d7a, 0x01}, + {0x9d7b, 0x01}, + {0x9d7c, 0x01}, + {0x9d7d, 0x01}, + {0x9d7e, 0x01}, + {0x9d80, 0x01}, + {0x9d81, 0x01}, + {0x9d82, 0x01}, + {0x9d83, 0x01}, + {0x9d84, 0x01}, + {0x9d85, 0x01}, + {0x9d86, 0x01}, + {0x9d87, 0x01}, + {0x9d88, 0x01}, + {0x9d89, 0x01}, + {0x9d8a, 0x01}, + {0x9d8b, 0x01}, + {0x9d8c, 0x01}, + {0x9d8d, 0x01}, + {0x9d8e, 0x01}, + {0x9d8f, 0x01}, + {0x9d90, 0x01}, + {0x9d91, 0x01}, + {0x9d92, 0x01}, + {0x9d93, 0x01}, + {0x9d94, 0x01}, + {0x9d95, 0x01}, + {0x9d96, 0x01}, + {0x9d97, 0x01}, + {0x9d98, 0x01}, + {0x9d99, 0x01}, + {0x9d9a, 0x01}, + {0x9d9b, 0x01}, + {0x9d9c, 0x01}, + {0x9d9d, 0x01}, + {0x9d9e, 0x01}, + {0x9d9f, 0x01}, + {0x9da0, 0x01}, + {0x9da1, 0x01}, + {0x9da2, 0x01}, + {0x9da3, 0x01}, + {0x9da4, 0x01}, + {0x9da5, 0x01}, + {0x9da6, 0x01}, + {0x9da7, 0x01}, + {0x9da8, 0x01}, + {0x9da9, 0x01}, + {0x9daa, 0x01}, + {0x9dab, 0x01}, + {0x9dac, 0x01}, + {0x9dad, 0x01}, + {0x9dae, 0x01}, + {0x9daf, 0x01}, + {0x9db0, 0x01}, + {0x9db1, 0x01}, + {0x9db2, 0x01}, + {0x9db3, 0x01}, + {0x9db4, 0x01}, + {0x9db5, 0x01}, + {0x9db6, 0x01}, + {0x9db7, 0x01}, + {0x9db8, 0x01}, + {0x9db9, 0x01}, + {0x9dba, 0x01}, + {0x9dbb, 0x01}, + {0x9dbc, 0x01}, + {0x9dbd, 0x01}, + {0x9dbe, 0x01}, + {0x9dbf, 0x01}, + {0x9dc0, 0x01}, + {0x9dc1, 0x01}, + {0x9dc2, 0x01}, + {0x9dc3, 0x01}, + {0x9dc4, 0x01}, + {0x9dc5, 0x01}, + {0x9dc6, 0x01}, + {0x9dc7, 0x01}, + {0x9dc8, 0x01}, + {0x9dc9, 0x01}, + {0x9dca, 0x01}, + {0x9dcb, 0x01}, + {0x9dcc, 0x01}, + {0x9dcd, 0x01}, + {0x9dce, 0x01}, + {0x9dcf, 0x01}, + {0x9dd0, 0x01}, + {0x9dd1, 0x01}, + {0x9dd2, 0x01}, + {0x9dd3, 0x01}, + {0x9dd4, 0x01}, + {0x9dd5, 0x01}, + {0x9dd6, 0x01}, + {0x9dd7, 0x01}, + {0x9dd8, 0x01}, + {0x9dd9, 0x01}, + {0x9dda, 0x01}, + {0x9ddb, 0x01}, + {0x9ddc, 0x01}, + {0x9ddd, 0x01}, + {0x9dde, 0x01}, + {0x9ddf, 0x01}, + {0x9de0, 0x01}, + {0x9de1, 0x01}, + {0x9de2, 0x01}, + {0x9de3, 0x01}, + {0x9de4, 0x01}, + {0x9de5, 0x01}, + {0x9de6, 0x01}, + {0x9de7, 0x01}, + {0x9de8, 0x01}, + {0x9de9, 0x01}, + {0x9dea, 0x01}, + {0x9deb, 0x01}, + {0x9dec, 0x01}, + {0x9ded, 0x01}, + {0x9dee, 0x01}, + {0x9def, 0x01}, + {0x9df0, 0x01}, + {0x9df1, 0x01}, + {0x9df2, 0x01}, + {0x9df3, 0x01}, + {0x9df4, 0x01}, + {0x9df5, 0x01}, + {0x9df6, 0x01}, + {0x9df7, 0x01}, + {0x9df8, 0x01}, + {0x9df9, 0x01}, + {0x9dfa, 0x01}, + {0x9dfb, 0x01}, + {0x9dfc, 0x01}, + {0x9dfd, 0x01}, + {0x9dfe, 0x01}, + {0x9e40, 0x01}, + {0x9e41, 0x01}, + {0x9e42, 0x01}, + {0x9e43, 0x01}, + {0x9e44, 0x01}, + {0x9e45, 0x01}, + {0x9e46, 0x01}, + {0x9e47, 0x01}, + {0x9e48, 0x01}, + {0x9e49, 0x01}, + {0x9e4a, 0x01}, + {0x9e4b, 0x01}, + {0x9e4c, 0x01}, + {0x9e4d, 0x01}, + {0x9e4e, 0x01}, + {0x9e4f, 0x01}, + {0x9e50, 0x01}, + {0x9e51, 0x01}, + {0x9e52, 0x01}, + {0x9e53, 0x01}, + {0x9e54, 0x01}, + {0x9e55, 0x01}, + {0x9e56, 0x01}, + {0x9e57, 0x01}, + {0x9e58, 0x01}, + {0x9e59, 0x01}, + {0x9e5a, 0x01}, + {0x9e5b, 0x01}, + {0x9e5c, 0x01}, + {0x9e5d, 0x01}, + {0x9e5e, 0x01}, + {0x9e5f, 0x01}, + {0x9e60, 0x01}, + {0x9e61, 0x01}, + {0x9e62, 0x01}, + {0x9e63, 0x01}, + {0x9e64, 0x01}, + {0x9e65, 0x01}, + {0x9e66, 0x01}, + {0x9e67, 0x01}, + {0x9e68, 0x01}, + {0x9e69, 0x01}, + {0x9e6a, 0x01}, + {0x9e6b, 0x01}, + {0x9e6c, 0x01}, + {0x9e6d, 0x01}, + {0x9e6e, 0x01}, + {0x9e6f, 0x01}, + {0x9e70, 0x01}, + {0x9e71, 0x01}, + {0x9e72, 0x01}, + {0x9e73, 0x01}, + {0x9e74, 0x01}, + {0x9e75, 0x01}, + {0x9e76, 0x01}, + {0x9e77, 0x01}, + {0x9e78, 0x01}, + {0x9e79, 0x01}, + {0x9e7a, 0x01}, + {0x9e7b, 0x01}, + {0x9e7c, 0x01}, + {0x9e7d, 0x01}, + {0x9e7e, 0x01}, + {0x9e80, 0x01}, + {0x9e81, 0x01}, + {0x9e82, 0x01}, + {0x9e83, 0x01}, + {0x9e84, 0x01}, + {0x9e85, 0x01}, + {0x9e86, 0x01}, + {0x9e87, 0x01}, + {0x9e88, 0x01}, + {0x9e89, 0x01}, + {0x9e8a, 0x01}, + {0x9e8b, 0x01}, + {0x9e8c, 0x01}, + {0x9e8d, 0x01}, + {0x9e8e, 0x01}, + {0x9e8f, 0x01}, + {0x9e90, 0x01}, + {0x9e91, 0x01}, + {0x9e92, 0x01}, + {0x9e93, 0x01}, + {0x9e94, 0x01}, + {0x9e95, 0x01}, + {0x9e96, 0x01}, + {0x9e97, 0x01}, + {0x9e98, 0x01}, + {0x9e99, 0x01}, + {0x9e9a, 0x01}, + {0x9e9b, 0x01}, + {0x9e9c, 0x01}, + {0x9e9d, 0x01}, + {0x9e9e, 0x01}, + {0x9e9f, 0x01}, + {0x9ea0, 0x01}, + {0x9ea1, 0x01}, + {0x9ea2, 0x01}, + {0x9ea3, 0x01}, + {0x9ea4, 0x01}, + {0x9ea5, 0x01}, + {0x9ea6, 0x01}, + {0x9ea7, 0x01}, + {0x9ea8, 0x01}, + {0x9ea9, 0x01}, + {0x9eaa, 0x01}, + {0x9eab, 0x01}, + {0x9eac, 0x01}, + {0x9ead, 0x01}, + {0x9eae, 0x01}, + {0x9eaf, 0x01}, + {0x9eb0, 0x01}, + {0x9eb1, 0x01}, + {0x9eb2, 0x01}, + {0x9eb3, 0x01}, + {0x9eb4, 0x01}, + {0x9eb5, 0x01}, + {0x9eb6, 0x01}, + {0x9eb7, 0x01}, + {0x9eb8, 0x01}, + {0x9eb9, 0x01}, + {0x9eba, 0x01}, + {0x9ebb, 0x01}, + {0x9ebc, 0x01}, + {0x9ebd, 0x01}, + {0x9ebe, 0x01}, + {0x9ebf, 0x01}, + {0x9ec0, 0x01}, + {0x9ec1, 0x01}, + {0x9ec2, 0x01}, + {0x9ec3, 0x01}, + {0x9ec4, 0x01}, + {0x9ec5, 0x01}, + {0x9ec6, 0x01}, + {0x9ec7, 0x01}, + {0x9ec8, 0x01}, + {0x9ec9, 0x01}, + {0x9eca, 0x01}, + {0x9ecb, 0x01}, + {0x9ecc, 0x01}, + {0x9ecd, 0x01}, + {0x9ece, 0x01}, + {0x9ecf, 0x01}, + {0x9ed0, 0x01}, + {0x9ed1, 0x01}, + {0x9ed2, 0x01}, + {0x9ed3, 0x01}, + {0x9ed4, 0x01}, + {0x9ed5, 0x01}, + {0x9ed6, 0x01}, + {0x9ed7, 0x01}, + {0x9ed8, 0x01}, + {0x9ed9, 0x01}, + {0x9eda, 0x01}, + {0x9edb, 0x01}, + {0x9edc, 0x01}, + {0x9edd, 0x01}, + {0x9ede, 0x01}, + {0x9edf, 0x01}, + {0x9ee0, 0x01}, + {0x9ee1, 0x01}, + {0x9ee2, 0x01}, + {0x9ee3, 0x01}, + {0x9ee4, 0x01}, + {0x9ee5, 0x01}, + {0x9ee6, 0x01}, + {0x9ee7, 0x01}, + {0x9ee8, 0x01}, + {0x9ee9, 0x01}, + {0x9eea, 0x01}, + {0x9eeb, 0x01}, + {0x9eec, 0x01}, + {0x9eed, 0x01}, + {0x9eee, 0x01}, + {0x9eef, 0x01}, + {0x9ef0, 0x01}, + {0x9ef1, 0x01}, + {0x9ef2, 0x01}, + {0x9ef3, 0x01}, + {0x9ef4, 0x01}, + {0x9ef5, 0x01}, + {0x9ef6, 0x01}, + {0x9ef7, 0x01}, + {0x9ef8, 0x01}, + {0x9ef9, 0x01}, + {0x9efa, 0x01}, + {0x9efb, 0x01}, + {0x9efc, 0x01}, + {0x9efd, 0x01}, + {0x9efe, 0x01}, + {0x9f40, 0x01}, + {0x9f41, 0x01}, + {0x9f42, 0x01}, + {0x9f43, 0x01}, + {0x9f44, 0x01}, + {0x9f45, 0x01}, + {0x9f46, 0x01}, + {0x9f47, 0x01}, + {0x9f49, 0x01}, + {0x9f4a, 0x01}, + {0x9f4b, 0x01}, + {0x9f4c, 0x01}, + {0x9f4d, 0x01}, + {0x9f4e, 0x01}, + {0x9f4f, 0x01}, + {0x9f50, 0x01}, + {0x9f51, 0x01}, + {0x9f52, 0x01}, + {0x9f53, 0x01}, + {0x9f54, 0x01}, + {0x9f55, 0x01}, + {0x9f56, 0x01}, + {0x9f57, 0x01}, + {0x9f58, 0x01}, + {0x9f59, 0x01}, + {0x9f5a, 0x01}, + {0x9f5b, 0x01}, + {0x9f5c, 0x01}, + {0x9f5d, 0x01}, + {0x9f5e, 0x01}, + {0x9f5f, 0x01}, + {0x9f60, 0x01}, + {0x9f61, 0x01}, + {0x9f62, 0x01}, + {0x9f63, 0x01}, + {0x9f64, 0x01}, + {0x9f66, 0x01}, + {0x9f67, 0x01}, + {0x9f68, 0x01}, + {0x9f69, 0x01}, + {0x9f6a, 0x01}, + {0x9f6b, 0x01}, + {0x9f6c, 0x01}, + {0x9f6d, 0x01}, + {0x9f6e, 0x01}, + {0x9f6f, 0x01}, + {0x9f70, 0x01}, + {0x9f71, 0x01}, + {0x9f72, 0x01}, + {0x9f73, 0x01}, + {0x9f74, 0x01}, + {0x9f75, 0x01}, + {0x9f76, 0x01}, + {0x9f77, 0x01}, + {0x9f78, 0x01}, + {0x9f79, 0x01}, + {0x9f7a, 0x01}, + {0x9f7b, 0x01}, + {0x9f7c, 0x01}, + {0x9f7d, 0x01}, + {0x9f7e, 0x01}, + {0x9f80, 0x01}, + {0x9f81, 0x01}, + {0x9f82, 0x01}, + {0x9f83, 0x01}, + {0x9f84, 0x01}, + {0x9f85, 0x01}, + {0x9f86, 0x01}, + {0x9f88, 0x01}, + {0x9f89, 0x01}, + {0x9f8a, 0x01}, + {0x9f8b, 0x01}, + {0x9f8c, 0x01}, + {0x9f8d, 0x01}, + {0x9f8e, 0x01}, + {0x9f8f, 0x01}, + {0x9f90, 0x01}, + {0x9f91, 0x01}, + {0x9f92, 0x01}, + {0x9f93, 0x01}, + {0x9f94, 0x01}, + {0x9f95, 0x01}, + {0x9f96, 0x01}, + {0x9f97, 0x01}, + {0x9f98, 0x01}, + {0x9f99, 0x01}, + {0x9f9a, 0x01}, + {0x9f9b, 0x01}, + {0x9f9c, 0x01}, + {0x9f9d, 0x01}, + {0x9f9e, 0x01}, + {0x9f9f, 0x01}, + {0x9fa0, 0x01}, + {0x9fa1, 0x01}, + {0x9fa2, 0x01}, + {0x9fa3, 0x01}, + {0x9fa4, 0x01}, + {0x9fa5, 0x01}, + {0x9fa6, 0x01}, + {0x9fa7, 0x01}, + {0x9fa8, 0x01}, + {0x9fa9, 0x01}, + {0x9faa, 0x01}, + {0x9fab, 0x01}, + {0x9fac, 0x01}, + {0x9fad, 0x01}, + {0x9fae, 0x01}, + {0x9faf, 0x01}, + {0x9fb0, 0x01}, + {0x9fb1, 0x01}, + {0x9fb2, 0x01}, + {0x9fb3, 0x01}, + {0x9fb4, 0x01}, + {0x9fb5, 0x01}, + {0x9fb6, 0x01}, + {0x9fb7, 0x01}, + {0x9fb8, 0x01}, + {0x9fb9, 0x01}, + {0x9fba, 0x01}, + {0x9fbb, 0x01}, + {0x9fbc, 0x01}, + {0x9fbd, 0x01}, + {0x9fbe, 0x01}, + {0x9fbf, 0x01}, + {0x9fc0, 0x01}, + {0x9fc1, 0x01}, + {0x9fc2, 0x01}, + {0x9fc3, 0x01}, + {0x9fc4, 0x01}, + {0x9fc5, 0x01}, + {0x9fc6, 0x01}, + {0x9fc7, 0x01}, + {0x9fc8, 0x01}, + {0x9fc9, 0x01}, + {0x9fca, 0x01}, + {0x9fcb, 0x01}, + {0x9fcc, 0x01}, + {0x9fcd, 0x01}, + {0x9fce, 0x01}, + {0x9fcf, 0x01}, + {0x9fd0, 0x01}, + {0x9fd1, 0x01}, + {0x9fd2, 0x01}, + {0x9fd3, 0x01}, + {0x9fd4, 0x01}, + {0x9fd5, 0x01}, + {0x9fd6, 0x01}, + {0x9fd7, 0x01}, + {0x9fd8, 0x01}, + {0x9fd9, 0x01}, + {0x9fda, 0x01}, + {0x9fdb, 0x01}, + {0x9fdc, 0x01}, + {0x9fdd, 0x01}, + {0x9fde, 0x01}, + {0x9fdf, 0x01}, + {0x9fe0, 0x01}, + {0x9fe1, 0x01}, + {0x9fe2, 0x01}, + {0x9fe3, 0x01}, + {0x9fe4, 0x01}, + {0x9fe5, 0x01}, + {0x9fe6, 0x01}, + {0x9fe7, 0x01}, + {0x9fe8, 0x01}, + {0x9fe9, 0x01}, + {0x9fea, 0x01}, + {0x9feb, 0x01}, + {0x9fec, 0x01}, + {0x9fed, 0x01}, + {0x9fee, 0x01}, + {0x9fef, 0x01}, + {0x9ff0, 0x01}, + {0x9ff1, 0x01}, + {0x9ff2, 0x01}, + {0x9ff3, 0x01}, + {0x9ff4, 0x01}, + {0x9ff5, 0x01}, + {0x9ff6, 0x01}, + {0x9ff7, 0x01}, + {0x9ff8, 0x01}, + {0x9ff9, 0x01}, + {0x9ffa, 0x01}, + {0x9ffb, 0x01}, + {0x9ffc, 0x01}, + {0x9ffd, 0x01}, + {0x9ffe, 0x01}, + {0xa040, 0x01}, + {0xa041, 0x01}, + {0xa042, 0x01}, + {0xa043, 0x01}, + {0xa044, 0x01}, + {0xa045, 0x01}, + {0xa046, 0x01}, + {0xa047, 0x01}, + {0xa049, 0x01}, + {0xa04a, 0x01}, + {0xa04b, 0x01}, + {0xa04c, 0x01}, + {0xa04d, 0x01}, + {0xa04e, 0x01}, + {0xa04f, 0x01}, + {0xa050, 0x01}, + {0xa051, 0x01}, + {0xa052, 0x01}, + {0xa053, 0x01}, + {0xa054, 0x01}, + {0xa055, 0x01}, + {0xa056, 0x01}, + {0xa057, 0x01}, + {0xa058, 0x01}, + {0xa059, 0x01}, + {0xa05a, 0x01}, + {0xa05b, 0x01}, + {0xa05c, 0x01}, + {0xa05d, 0x01}, + {0xa05e, 0x01}, + {0xa05f, 0x01}, + {0xa060, 0x01}, + {0xa061, 0x01}, + {0xa062, 0x01}, + {0xa063, 0x01}, + {0xa064, 0x01}, + {0xa065, 0x01}, + {0xa066, 0x01}, + {0xa067, 0x01}, + {0xa068, 0x01}, + {0xa069, 0x01}, + {0xa06a, 0x01}, + {0xa06b, 0x01}, + {0xa06c, 0x01}, + {0xa06d, 0x01}, + {0xa06e, 0x01}, + {0xa06f, 0x01}, + {0xa070, 0x01}, + {0xa071, 0x01}, + {0xa072, 0x01}, + {0xa073, 0x01}, + {0xa074, 0x01}, + {0xa075, 0x01}, + {0xa076, 0x01}, + {0xa077, 0x01}, + {0xa078, 0x01}, + {0xa079, 0x01}, + {0xa07a, 0x01}, + {0xa07b, 0x01}, + {0xa07c, 0x01}, + {0xa07d, 0x01}, + {0xa07e, 0x01}, + {0xa080, 0x01}, + {0xa081, 0x01}, + {0xa082, 0x01}, + {0xa083, 0x01}, + {0xa084, 0x01}, + {0xa085, 0x01}, + {0xa086, 0x01}, + {0xa087, 0x01}, + {0xa088, 0x01}, + {0xa089, 0x01}, + {0xa08a, 0x01}, + {0xa08b, 0x01}, + {0xa08c, 0x01}, + {0xa08d, 0x01}, + {0xa08e, 0x01}, + {0xa08f, 0x01}, + {0xa090, 0x01}, + {0xa091, 0x01}, + {0xa092, 0x01}, + {0xa093, 0x01}, + {0xa094, 0x01}, + {0xa095, 0x01}, + {0xa096, 0x01}, + {0xa097, 0x01}, + {0xa098, 0x01}, + {0xa099, 0x01}, + {0xa09a, 0x01}, + {0xa09b, 0x01}, + {0xa09c, 0x01}, + {0xa09d, 0x01}, + {0xa09e, 0x01}, + {0xa09f, 0x01}, + {0xa0a0, 0x01}, + {0xa0a1, 0x01}, + {0xa0a2, 0x01}, + {0xa0a3, 0x01}, + {0xa0a4, 0x01}, + {0xa0a5, 0x01}, + {0xa0a6, 0x01}, + {0xa0a7, 0x01}, + {0xa0a8, 0x01}, + {0xa0a9, 0x01}, + {0xa0aa, 0x01}, + {0xa0ab, 0x01}, + {0xa0ac, 0x01}, + {0xa0ad, 0x01}, + {0xa0ae, 0x01}, + {0xa0af, 0x01}, + {0xa0b0, 0x01}, + {0xa0b1, 0x01}, + {0xa0b2, 0x01}, + {0xa0b3, 0x01}, + {0xa0b4, 0x01}, + {0xa0b5, 0x01}, + {0xa0b6, 0x01}, + {0xa0b7, 0x01}, + {0xa0b8, 0x01}, + {0xa0b9, 0x01}, + {0xa0ba, 0x01}, + {0xa0bb, 0x01}, + {0xa0bc, 0x01}, + {0xa0bd, 0x01}, + {0xa0be, 0x01}, + {0xa0bf, 0x01}, + {0xa0c0, 0x01}, + {0xa0c1, 0x01}, + {0xa0c2, 0x01}, + {0xa0c3, 0x01}, + {0xa0c4, 0x01}, + {0xa0c5, 0x01}, + {0xa0c6, 0x01}, + {0xa0c7, 0x01}, + {0xa0c8, 0x01}, + {0xa0c9, 0x01}, + {0xa0ca, 0x01}, + {0xa0cb, 0x01}, + {0xa0cc, 0x01}, + {0xa0cd, 0x01}, + {0xa0ce, 0x01}, + {0xa0cf, 0x01}, + {0xa0d0, 0x01}, + {0xa0d1, 0x01}, + {0xa0d2, 0x01}, + {0xa0d3, 0x01}, + {0xa0d4, 0x01}, + {0xa0d5, 0x01}, + {0xa0d6, 0x01}, + {0xa0d7, 0x01}, + {0xa0d8, 0x01}, + {0xa0d9, 0x01}, + {0xa0da, 0x01}, + {0xa0db, 0x01}, + {0xa0dc, 0x01}, + {0xa0dd, 0x01}, + {0xa0de, 0x01}, + {0xa0df, 0x01}, + {0xa0e0, 0x01}, + {0xa0e1, 0x01}, + {0xa0e2, 0x01}, + {0xa0e3, 0x01}, + {0xa0e4, 0x01}, + {0xa0e5, 0x01}, + {0xa0e6, 0x01}, + {0xa0e7, 0x01}, + {0xa0e8, 0x01}, + {0xa0e9, 0x01}, + {0xa0ea, 0x01}, + {0xa0eb, 0x01}, + {0xa0ec, 0x01}, + {0xa0ed, 0x01}, + {0xa0ee, 0x01}, + {0xa0ef, 0x01}, + {0xa0f0, 0x01}, + {0xa0f1, 0x01}, + {0xa0f2, 0x01}, + {0xa0f3, 0x01}, + {0xa0f4, 0x01}, + {0xa0f5, 0x01}, + {0xa0f6, 0x01}, + {0xa0f7, 0x01}, + {0xa0f8, 0x01}, + {0xa0f9, 0x01}, + {0xa0fa, 0x01}, + {0xa0fb, 0x01}, + {0xa0fc, 0x01}, + {0xa0fd, 0x01}, + {0xa0fe, 0x01}, + {0xa1a4, 0x52}, + {0xa1a7, 0x47}, + {0xa1aa, 0x5c}, + {0xa1ac, 0x5e}, + {0xa1ad, 0x6e}, + {0xa1ae, 0x60}, + {0xa1af, 0x61}, + {0xa1b0, 0x64}, + {0xa1b1, 0x65}, + {0xa1c0, 0x4f}, + {0xa1c1, 0x56}, + {0xa1c2, 0x57}, + {0xa1d9, 0x35}, + {0xa1da, 0x34}, + {0xa1db, 0x36}, + {0xa1e3, 0x4e}, + {0xa1e4, 0x72}, + {0xa1e5, 0x73}, + {0xa1e6, 0x09}, + {0xa1e7, 0x01}, + {0xa1e8, 0x01}, + {0xa1e9, 0x01}, + {0xa1ea, 0x01}, + {0xa1eb, 0x70}, + {0xa1ec, 0x46}, + {0xa1ed, 0x0202}, + {0xa1f9, 0x7b}, + {0xa2a1, 0x04}, + {0xa2a2, 0x0202}, + {0xa2a4, 0x0202}, + {0xa2a5, 0x04}, + {0xa2a6, 0x0202}, + {0xa2a9, 0x0202}, + {0xa2aa, 0x04}, + {0xa2b1, 0x05}, + {0xa2b2, 0x05}, + {0xa2b3, 0x05}, + {0xa2b4, 0x05}, + {0xa2b5, 0x05}, + {0xa2b6, 0x05}, + {0xa2b7, 0x05}, + {0xa2b8, 0x05}, + {0xa2b9, 0x05}, + {0xa2c5, 0x04}, + {0xa2c6, 0x04}, + {0xa2c7, 0x04}, + {0xa2c8, 0x04}, + {0xa2c9, 0x04}, + {0xa2ca, 0x04}, + {0xa2cb, 0x04}, + {0xa2cc, 0x04}, + {0xa2cd, 0x04}, + {0xa2d9, 0x06}, + {0xa2da, 0x06}, + {0xa2db, 0x06}, + {0xa2dc, 0x06}, + {0xa2dd, 0x06}, + {0xa2de, 0x06}, + {0xa2df, 0x06}, + {0xa2e0, 0x06}, + {0xa2e1, 0x06}, + {0xa2e3, 0x01}, + {0xa2f1, 0x0a}, + {0xa2f2, 0x0808}, + {0xa2f4, 0x0807}, + {0xa2f5, 0x09}, + {0xa2f6, 0x0708}, + {0xa2f9, 0x0807}, + {0xa2fa, 0x09}, + {0xa2fb, 0x0708}, + {0xa3a4, 0x01}, + {0xa3b0, 0x03}, + {0xa3b1, 0x03}, + {0xa3b2, 0x03}, + {0xa3b3, 0x03}, + {0xa3b4, 0x03}, + {0xa3b5, 0x03}, + {0xa3b6, 0x03}, + {0xa3b7, 0x03}, + {0xa3b8, 0x03}, + {0xa3b9, 0x03}, + {0xa3c1, 0x07}, + {0xa3c2, 0x07}, + {0xa3c3, 0x08}, + {0xa3c4, 0x08}, + {0xa3c5, 0x08}, + {0xa3c6, 0x07}, + {0xa3c7, 0x08}, + {0xa3c8, 0x08}, + {0xa3c9, 0x09}, + {0xa3ca, 0x07}, + {0xa3cb, 0x08}, + {0xa3cc, 0x0a}, + {0xa3cd, 0x08}, + {0xa3ce, 0x07}, + {0xa3cf, 0x08}, + {0xa3d0, 0x07}, + {0xa3d1, 0x07}, + {0xa3d2, 0x07}, + {0xa3d3, 0x07}, + {0xa3d4, 0x07}, + {0xa3d5, 0x07}, + {0xa3d6, 0x08}, + {0xa3d7, 0x07}, + {0xa3d8, 0x08}, + {0xa3d9, 0x07}, + {0xa3da, 0x07}, + {0xa3e1, 0x03}, + {0xa3e2, 0x03}, + {0xa3e3, 0x03}, + {0xa3e4, 0x03}, + {0xa3e5, 0x03}, + {0xa3e6, 0x03}, + {0xa3e7, 0x03}, + {0xa3e8, 0x03}, + {0xa3e9, 0x03}, + {0xa3ea, 0x03}, + {0xa3eb, 0x03}, + {0xa3ec, 0x03}, + {0xa3ed, 0x03}, + {0xa3ee, 0x03}, + {0xa3ef, 0x03}, + {0xa3f0, 0x03}, + {0xa3f1, 0x03}, + {0xa3f2, 0x03}, + {0xa3f3, 0x03}, + {0xa3f4, 0x03}, + {0xa3f5, 0x03}, + {0xa3f6, 0x03}, + {0xa3f7, 0x03}, + {0xa3f8, 0x03}, + {0xa3f9, 0x03}, + {0xa3fa, 0x03}, + {0xa4a1, 0x02}, + {0xa4a2, 0x02}, + {0xa4a3, 0x02}, + {0xa4a4, 0x02}, + {0xa4a5, 0x02}, + {0xa4a6, 0x02}, + {0xa4a7, 0x02}, + {0xa4a8, 0x02}, + {0xa4a9, 0x02}, + {0xa4aa, 0x02}, + {0xa4ab, 0x02}, + {0xa4ac, 0x02}, + {0xa4ad, 0x02}, + {0xa4ae, 0x02}, + {0xa4af, 0x02}, + {0xa4b0, 0x02}, + {0xa4b1, 0x02}, + {0xa4b2, 0x02}, + {0xa4b3, 0x02}, + {0xa4b4, 0x02}, + {0xa4b5, 0x02}, + {0xa4b6, 0x02}, + {0xa4b7, 0x02}, + {0xa4b8, 0x02}, + {0xa4b9, 0x02}, + {0xa4ba, 0x02}, + {0xa4bb, 0x02}, + {0xa4bc, 0x02}, + {0xa4bd, 0x02}, + {0xa4be, 0x02}, + {0xa4bf, 0x02}, + {0xa4c0, 0x02}, + {0xa4c1, 0x02}, + {0xa4c2, 0x02}, + {0xa4c3, 0x02}, + {0xa4c4, 0x02}, + {0xa4c5, 0x02}, + {0xa4c6, 0x02}, + {0xa4c7, 0x02}, + {0xa4c8, 0x02}, + {0xa4c9, 0x02}, + {0xa4ca, 0x02}, + {0xa4cb, 0x02}, + {0xa4cc, 0x02}, + {0xa4cd, 0x02}, + {0xa4ce, 0x02}, + {0xa4cf, 0x02}, + {0xa4d0, 0x02}, + {0xa4d1, 0x02}, + {0xa4d2, 0x02}, + {0xa4d3, 0x02}, + {0xa4d4, 0x02}, + {0xa4d5, 0x02}, + {0xa4d6, 0x02}, + {0xa4d7, 0x02}, + {0xa4d8, 0x02}, + {0xa4d9, 0x02}, + {0xa4da, 0x02}, + {0xa4db, 0x02}, + {0xa4dc, 0x02}, + {0xa4dd, 0x02}, + {0xa4de, 0x02}, + {0xa4df, 0x02}, + {0xa4e0, 0x02}, + {0xa4e1, 0x02}, + {0xa4e2, 0x02}, + {0xa4e3, 0x02}, + {0xa4e4, 0x02}, + {0xa4e5, 0x02}, + {0xa4e6, 0x02}, + {0xa4e7, 0x02}, + {0xa4e8, 0x02}, + {0xa4e9, 0x02}, + {0xa4ea, 0x02}, + {0xa4eb, 0x02}, + {0xa4ec, 0x02}, + {0xa4ed, 0x02}, + {0xa4ee, 0x02}, + {0xa4ef, 0x02}, + {0xa4f0, 0x02}, + {0xa4f1, 0x02}, + {0xa4f2, 0x02}, + {0xa4f3, 0x02}, + {0xa5a1, 0x03}, + {0xa5a2, 0x03}, + {0xa5a3, 0x03}, + {0xa5a4, 0x03}, + {0xa5a5, 0x03}, + {0xa5a6, 0x03}, + {0xa5a7, 0x03}, + {0xa5a8, 0x03}, + {0xa5a9, 0x03}, + {0xa5aa, 0x03}, + {0xa5ab, 0x03}, + {0xa5ac, 0x03}, + {0xa5ad, 0x03}, + {0xa5ae, 0x03}, + {0xa5af, 0x03}, + {0xa5b0, 0x03}, + {0xa5b1, 0x03}, + {0xa5b2, 0x03}, + {0xa5b3, 0x03}, + {0xa5b4, 0x03}, + {0xa5b5, 0x03}, + {0xa5b6, 0x03}, + {0xa5b7, 0x03}, + {0xa5b8, 0x03}, + {0xa5b9, 0x03}, + {0xa5ba, 0x03}, + {0xa5bb, 0x03}, + {0xa5bc, 0x03}, + {0xa5bd, 0x03}, + {0xa5be, 0x03}, + {0xa5bf, 0x03}, + {0xa5c0, 0x03}, + {0xa5c1, 0x03}, + {0xa5c2, 0x03}, + {0xa5c3, 0x03}, + {0xa5c4, 0x03}, + {0xa5c5, 0x03}, + {0xa5c6, 0x03}, + {0xa5c7, 0x03}, + {0xa5c8, 0x03}, + {0xa5c9, 0x03}, + {0xa5ca, 0x03}, + {0xa5cb, 0x03}, + {0xa5cc, 0x03}, + {0xa5cd, 0x03}, + {0xa5ce, 0x03}, + {0xa5cf, 0x03}, + {0xa5d0, 0x03}, + {0xa5d1, 0x03}, + {0xa5d2, 0x03}, + {0xa5d3, 0x03}, + {0xa5d4, 0x03}, + {0xa5d5, 0x03}, + {0xa5d6, 0x03}, + {0xa5d7, 0x03}, + {0xa5d8, 0x03}, + {0xa5d9, 0x03}, + {0xa5da, 0x03}, + {0xa5db, 0x03}, + {0xa5dc, 0x03}, + {0xa5dd, 0x03}, + {0xa5de, 0x03}, + {0xa5df, 0x03}, + {0xa5e0, 0x03}, + {0xa5e1, 0x03}, + {0xa5e2, 0x03}, + {0xa5e3, 0x03}, + {0xa5e4, 0x03}, + {0xa5e5, 0x03}, + {0xa5e6, 0x03}, + {0xa5e7, 0x03}, + {0xa5e8, 0x03}, + {0xa5e9, 0x03}, + {0xa5ea, 0x03}, + {0xa5eb, 0x03}, + {0xa5ec, 0x03}, + {0xa5ed, 0x03}, + {0xa5ee, 0x03}, + {0xa5ef, 0x03}, + {0xa5f0, 0x03}, + {0xa5f1, 0x03}, + {0xa5f2, 0x03}, + {0xa5f3, 0x03}, + {0xa5f4, 0x03}, + {0xa5f5, 0x01}, + {0xa5f6, 0x01}, + {0xa6a1, 0x03}, + {0xa6a2, 0x04}, + {0xa6a3, 0x03}, + {0xa6a4, 0x03}, + {0xa6a5, 0x03}, + {0xa6a6, 0x03}, + {0xa6a7, 0x03}, + {0xa6a8, 0x04}, + {0xa6a9, 0x04}, + {0xa6aa, 0x04}, + {0xa6ab, 0x03}, + {0xa6ac, 0x04}, + {0xa6ad, 0x03}, + {0xa6ae, 0x03}, + {0xa6af, 0x03}, + {0xa6b0, 0x04}, + {0xa6b1, 0x04}, + {0xa6b2, 0x04}, + {0xa6b3, 0x03}, + {0xa6b4, 0x03}, + {0xa6b5, 0x04}, + {0xa6b6, 0x03}, + {0xa6b7, 0x03}, + {0xa6b8, 0x03}, + {0xa6c1, 0x02}, + {0xa6c2, 0x02}, + {0xa6c3, 0x02}, + {0xa6c4, 0x02}, + {0xa6c5, 0x02}, + {0xa6c6, 0x02}, + {0xa6c7, 0x02}, + {0xa6c8, 0x02}, + {0xa6c9, 0x02}, + {0xa6ca, 0x02}, + {0xa6cb, 0x02}, + {0xa6cc, 0x02}, + {0xa6cd, 0x02}, + {0xa6ce, 0x02}, + {0xa6cf, 0x02}, + {0xa6d0, 0x02}, + {0xa6d1, 0x02}, + {0xa6d2, 0x02}, + {0xa6d3, 0x02}, + {0xa6d4, 0x02}, + {0xa6d5, 0x02}, + {0xa6d6, 0x02}, + {0xa6d7, 0x02}, + {0xa6d8, 0x02}, + {0xa7a1, 0x03}, + {0xa7a2, 0x03}, + {0xa7a3, 0x03}, + {0xa7a4, 0x03}, + {0xa7a5, 0x03}, + {0xa7a6, 0x03}, + {0xa7a7, 0x03}, + {0xa7a8, 0x03}, + {0xa7a9, 0x03}, + {0xa7aa, 0x03}, + {0xa7ab, 0x03}, + {0xa7ac, 0x03}, + {0xa7ad, 0x03}, + {0xa7ae, 0x03}, + {0xa7af, 0x03}, + {0xa7b0, 0x03}, + {0xa7b1, 0x03}, + {0xa7b2, 0x03}, + {0xa7b3, 0x03}, + {0xa7b4, 0x03}, + {0xa7b5, 0x03}, + {0xa7b6, 0x03}, + {0xa7b7, 0x03}, + {0xa7b8, 0x03}, + {0xa7b9, 0x03}, + {0xa7ba, 0x03}, + {0xa7bb, 0x03}, + {0xa7bc, 0x03}, + {0xa7bd, 0x03}, + {0xa7be, 0x03}, + {0xa7bf, 0x03}, + {0xa7c0, 0x03}, + {0xa7c1, 0x03}, + {0xa7d1, 0x02}, + {0xa7d2, 0x02}, + {0xa7d3, 0x02}, + {0xa7d4, 0x02}, + {0xa7d5, 0x02}, + {0xa7d6, 0x02}, + {0xa7d7, 0x02}, + {0xa7d8, 0x02}, + {0xa7d9, 0x02}, + {0xa7da, 0x02}, + {0xa7db, 0x02}, + {0xa7dc, 0x02}, + {0xa7dd, 0x02}, + {0xa7de, 0x02}, + {0xa7df, 0x02}, + {0xa7e0, 0x02}, + {0xa7e1, 0x02}, + {0xa7e2, 0x02}, + {0xa7e3, 0x02}, + {0xa7e4, 0x02}, + {0xa7e5, 0x02}, + {0xa7e6, 0x02}, + {0xa7e7, 0x02}, + {0xa7e8, 0x02}, + {0xa7e9, 0x02}, + {0xa7ea, 0x02}, + {0xa7eb, 0x02}, + {0xa7ec, 0x02}, + {0xa7ed, 0x02}, + {0xa7ee, 0x02}, + {0xa7ef, 0x02}, + {0xa7f0, 0x02}, + {0xa7f1, 0x02}, + {0xa843, 0x5b}, + {0xa844, 0x5d}, + {0xa845, 0x6d}, + {0xa846, 0x75}, + {0xa847, 0x0202}, + {0xa848, 0x08}, + {0xa84f, 0x02}, + {0xa8a1, 0x02}, + {0xa8a2, 0x02}, + {0xa8a3, 0x02}, + {0xa8a4, 0x02}, + {0xa8a5, 0x02}, + {0xa8a6, 0x02}, + {0xa8a7, 0x02}, + {0xa8a8, 0x02}, + {0xa8a9, 0x02}, + {0xa8aa, 0x02}, + {0xa8ab, 0x02}, + {0xa8ac, 0x02}, + {0xa8ad, 0x02}, + {0xa8ae, 0x02}, + {0xa8af, 0x02}, + {0xa8b0, 0x02}, + {0xa8b1, 0x02}, + {0xa8b2, 0x02}, + {0xa8b3, 0x02}, + {0xa8b4, 0x02}, + {0xa8b5, 0x02}, + {0xa8b6, 0x02}, + {0xa8b7, 0x02}, + {0xa8b8, 0x02}, + {0xa8b9, 0x02}, + {0xa8ba, 0x02}, + {0xa8bb, 0x01}, + {0xa8bd, 0x02}, + {0xa8be, 0x02}, + {0xa8bf, 0x02}, + {0xa8c0, 0x01}, + {0xa940, 0x0c}, + {0xa941, 0x0b}, + {0xa942, 0x0b}, + {0xa943, 0x0b}, + {0xa944, 0x0b}, + {0xa945, 0x0b}, + {0xa946, 0x0b}, + {0xa947, 0x0e}, + {0xa948, 0x0e}, + {0xa95c, 0x58}, + {0xa960, 0x02}, + {0xa961, 0x01}, + {0xa962, 0x01}, + {0xa963, 0x04}, + {0xa964, 0x05}, + {0xa966, 0x02}, + {0xa967, 0x03}, + {0xa986, 0x01}, + {0xa996, 0x09}, + {0xaa40, 0x01}, + {0xaa41, 0x01}, + {0xaa42, 0x01}, + {0xaa43, 0x01}, + {0xaa44, 0x01}, + {0xaa45, 0x01}, + {0xaa46, 0x01}, + {0xaa47, 0x01}, + {0xaa48, 0x01}, + {0xaa49, 0x01}, + {0xaa4a, 0x01}, + {0xaa4b, 0x01}, + {0xaa4c, 0x01}, + {0xaa4d, 0x01}, + {0xaa4e, 0x01}, + {0xaa4f, 0x01}, + {0xaa50, 0x01}, + {0xaa51, 0x01}, + {0xaa52, 0x01}, + {0xaa53, 0x01}, + {0xaa54, 0x01}, + {0xaa55, 0x01}, + {0xaa56, 0x01}, + {0xaa57, 0x01}, + {0xaa58, 0x01}, + {0xaa59, 0x01}, + {0xaa5a, 0x01}, + {0xaa5b, 0x01}, + {0xaa5c, 0x01}, + {0xaa5d, 0x01}, + {0xaa5e, 0x01}, + {0xaa5f, 0x01}, + {0xaa60, 0x01}, + {0xaa61, 0x01}, + {0xaa62, 0x01}, + {0xaa63, 0x01}, + {0xaa64, 0x01}, + {0xaa65, 0x01}, + {0xaa66, 0x01}, + {0xaa67, 0x01}, + {0xaa68, 0x01}, + {0xaa69, 0x01}, + {0xaa6a, 0x01}, + {0xaa6b, 0x01}, + {0xaa6c, 0x01}, + {0xaa6d, 0x01}, + {0xaa6e, 0x01}, + {0xaa6f, 0x01}, + {0xaa70, 0x01}, + {0xaa71, 0x01}, + {0xaa72, 0x01}, + {0xaa73, 0x01}, + {0xaa74, 0x01}, + {0xaa75, 0x01}, + {0xaa76, 0x01}, + {0xaa77, 0x01}, + {0xaa78, 0x01}, + {0xaa79, 0x01}, + {0xaa7a, 0x01}, + {0xaa7b, 0x01}, + {0xaa7c, 0x01}, + {0xaa7d, 0x01}, + {0xaa7e, 0x01}, + {0xaa80, 0x01}, + {0xaa81, 0x01}, + {0xaa82, 0x01}, + {0xaa83, 0x01}, + {0xaa84, 0x01}, + {0xaa85, 0x01}, + {0xaa86, 0x01}, + {0xaa87, 0x01}, + {0xaa88, 0x01}, + {0xaa89, 0x01}, + {0xaa8a, 0x01}, + {0xaa8b, 0x01}, + {0xaa8c, 0x01}, + {0xaa8d, 0x01}, + {0xaa8e, 0x01}, + {0xaa8f, 0x01}, + {0xaa90, 0x01}, + {0xaa91, 0x01}, + {0xaa92, 0x01}, + {0xaa93, 0x01}, + {0xaa94, 0x01}, + {0xaa95, 0x01}, + {0xaa96, 0x01}, + {0xaa97, 0x01}, + {0xaa98, 0x01}, + {0xaa99, 0x01}, + {0xaa9a, 0x01}, + {0xaa9b, 0x01}, + {0xaa9c, 0x01}, + {0xaa9d, 0x01}, + {0xaa9e, 0x01}, + {0xaa9f, 0x01}, + {0xaaa0, 0x01}, + {0xab40, 0x01}, + {0xab41, 0x01}, + {0xab42, 0x01}, + {0xab43, 0x01}, + {0xab44, 0x01}, + {0xab45, 0x01}, + {0xab46, 0x01}, + {0xab47, 0x01}, + {0xab48, 0x01}, + {0xab49, 0x01}, + {0xab4a, 0x01}, + {0xab4b, 0x01}, + {0xab4c, 0x01}, + {0xab4d, 0x01}, + {0xab4e, 0x01}, + {0xab4f, 0x01}, + {0xab50, 0x01}, + {0xab51, 0x01}, + {0xab52, 0x01}, + {0xab53, 0x01}, + {0xab54, 0x01}, + {0xab55, 0x01}, + {0xab56, 0x01}, + {0xab57, 0x01}, + {0xab58, 0x01}, + {0xab59, 0x01}, + {0xab5a, 0x01}, + {0xab5b, 0x01}, + {0xab5c, 0x01}, + {0xab5d, 0x01}, + {0xab5e, 0x01}, + {0xab5f, 0x01}, + {0xab60, 0x01}, + {0xab61, 0x01}, + {0xab62, 0x01}, + {0xab63, 0x01}, + {0xab64, 0x01}, + {0xab65, 0x01}, + {0xab66, 0x01}, + {0xab67, 0x01}, + {0xab68, 0x01}, + {0xab69, 0x01}, + {0xab6a, 0x01}, + {0xab6b, 0x01}, + {0xab6c, 0x01}, + {0xab6d, 0x01}, + {0xab6e, 0x01}, + {0xab6f, 0x01}, + {0xab70, 0x01}, + {0xab71, 0x01}, + {0xab72, 0x01}, + {0xab73, 0x01}, + {0xab74, 0x01}, + {0xab75, 0x01}, + {0xab76, 0x01}, + {0xab77, 0x01}, + {0xab78, 0x01}, + {0xab79, 0x01}, + {0xab7a, 0x01}, + {0xab7b, 0x01}, + {0xab7c, 0x01}, + {0xab7d, 0x01}, + {0xab7e, 0x01}, + {0xab80, 0x01}, + {0xab81, 0x01}, + {0xab82, 0x01}, + {0xab83, 0x01}, + {0xab84, 0x01}, + {0xab85, 0x01}, + {0xab86, 0x01}, + {0xab87, 0x01}, + {0xab88, 0x01}, + {0xab89, 0x01}, + {0xab8a, 0x01}, + {0xab8b, 0x01}, + {0xab8c, 0x01}, + {0xab8d, 0x01}, + {0xab8e, 0x01}, + {0xab8f, 0x01}, + {0xab90, 0x01}, + {0xab91, 0x01}, + {0xab92, 0x01}, + {0xab93, 0x01}, + {0xab94, 0x01}, + {0xab95, 0x01}, + {0xab96, 0x01}, + {0xab97, 0x01}, + {0xab98, 0x01}, + {0xab99, 0x01}, + {0xab9a, 0x01}, + {0xab9b, 0x01}, + {0xab9c, 0x01}, + {0xab9d, 0x01}, + {0xab9e, 0x01}, + {0xab9f, 0x01}, + {0xaba0, 0x01}, + {0xac40, 0x01}, + {0xac41, 0x01}, + {0xac42, 0x01}, + {0xac43, 0x01}, + {0xac44, 0x01}, + {0xac45, 0x01}, + {0xac46, 0x01}, + {0xac47, 0x01}, + {0xac48, 0x01}, + {0xac49, 0x01}, + {0xac4a, 0x01}, + {0xac4b, 0x01}, + {0xac4c, 0x01}, + {0xac4d, 0x01}, + {0xac4e, 0x01}, + {0xac4f, 0x01}, + {0xac50, 0x01}, + {0xac51, 0x01}, + {0xac52, 0x01}, + {0xac53, 0x01}, + {0xac54, 0x01}, + {0xac55, 0x01}, + {0xac56, 0x01}, + {0xac57, 0x01}, + {0xac58, 0x01}, + {0xac59, 0x01}, + {0xac5a, 0x01}, + {0xac5b, 0x01}, + {0xac5c, 0x01}, + {0xac5d, 0x01}, + {0xac5e, 0x01}, + {0xac5f, 0x01}, + {0xac60, 0x01}, + {0xac61, 0x01}, + {0xac62, 0x01}, + {0xac63, 0x01}, + {0xac64, 0x01}, + {0xac65, 0x01}, + {0xac66, 0x01}, + {0xac67, 0x01}, + {0xac68, 0x01}, + {0xac69, 0x01}, + {0xac6a, 0x01}, + {0xac6b, 0x01}, + {0xac6c, 0x01}, + {0xac6d, 0x01}, + {0xac6e, 0x01}, + {0xac6f, 0x01}, + {0xac70, 0x01}, + {0xac71, 0x01}, + {0xac72, 0x01}, + {0xac73, 0x01}, + {0xac74, 0x01}, + {0xac75, 0x01}, + {0xac76, 0x01}, + {0xac77, 0x01}, + {0xac78, 0x01}, + {0xac79, 0x01}, + {0xac7a, 0x01}, + {0xac7b, 0x01}, + {0xac7c, 0x01}, + {0xac7d, 0x01}, + {0xac7e, 0x01}, + {0xac80, 0x01}, + {0xac81, 0x01}, + {0xac82, 0x01}, + {0xac83, 0x01}, + {0xac84, 0x01}, + {0xac85, 0x01}, + {0xac86, 0x01}, + {0xac87, 0x01}, + {0xac88, 0x01}, + {0xac89, 0x01}, + {0xac8a, 0x01}, + {0xac8b, 0x01}, + {0xac8c, 0x01}, + {0xac8d, 0x01}, + {0xac8e, 0x01}, + {0xac8f, 0x01}, + {0xac90, 0x01}, + {0xac91, 0x01}, + {0xac92, 0x01}, + {0xac93, 0x01}, + {0xac94, 0x01}, + {0xac95, 0x01}, + {0xac96, 0x01}, + {0xac97, 0x01}, + {0xac98, 0x01}, + {0xac99, 0x01}, + {0xac9a, 0x01}, + {0xac9b, 0x01}, + {0xac9c, 0x01}, + {0xac9d, 0x01}, + {0xac9e, 0x01}, + {0xac9f, 0x01}, + {0xaca0, 0x01}, + {0xad40, 0x01}, + {0xad41, 0x01}, + {0xad42, 0x01}, + {0xad43, 0x01}, + {0xad44, 0x01}, + {0xad45, 0x01}, + {0xad46, 0x01}, + {0xad47, 0x01}, + {0xad48, 0x01}, + {0xad49, 0x01}, + {0xad4a, 0x01}, + {0xad4b, 0x01}, + {0xad4c, 0x01}, + {0xad4d, 0x01}, + {0xad4e, 0x01}, + {0xad4f, 0x01}, + {0xad50, 0x01}, + {0xad51, 0x01}, + {0xad52, 0x01}, + {0xad53, 0x01}, + {0xad54, 0x01}, + {0xad55, 0x01}, + {0xad56, 0x01}, + {0xad57, 0x01}, + {0xad58, 0x01}, + {0xad59, 0x01}, + {0xad5a, 0x01}, + {0xad5b, 0x01}, + {0xad5c, 0x01}, + {0xad5d, 0x01}, + {0xad5e, 0x01}, + {0xad5f, 0x01}, + {0xad60, 0x01}, + {0xad61, 0x01}, + {0xad62, 0x01}, + {0xad63, 0x01}, + {0xad64, 0x01}, + {0xad65, 0x01}, + {0xad66, 0x01}, + {0xad67, 0x01}, + {0xad68, 0x01}, + {0xad69, 0x01}, + {0xad6a, 0x01}, + {0xad6b, 0x01}, + {0xad6c, 0x01}, + {0xad6d, 0x01}, + {0xad6e, 0x01}, + {0xad6f, 0x01}, + {0xad70, 0x01}, + {0xad71, 0x01}, + {0xad72, 0x01}, + {0xad73, 0x01}, + {0xad74, 0x01}, + {0xad75, 0x01}, + {0xad76, 0x01}, + {0xad77, 0x01}, + {0xad78, 0x01}, + {0xad79, 0x01}, + {0xad7a, 0x01}, + {0xad7b, 0x01}, + {0xad7c, 0x01}, + {0xad7d, 0x01}, + {0xad7e, 0x01}, + {0xad80, 0x01}, + {0xad81, 0x01}, + {0xad82, 0x01}, + {0xad83, 0x01}, + {0xad84, 0x01}, + {0xad85, 0x01}, + {0xad86, 0x01}, + {0xad87, 0x01}, + {0xad88, 0x01}, + {0xad89, 0x01}, + {0xad8a, 0x01}, + {0xad8b, 0x01}, + {0xad8c, 0x01}, + {0xad8d, 0x01}, + {0xad8e, 0x01}, + {0xad8f, 0x01}, + {0xad90, 0x01}, + {0xad91, 0x01}, + {0xad92, 0x01}, + {0xad93, 0x01}, + {0xad94, 0x01}, + {0xad95, 0x01}, + {0xad96, 0x01}, + {0xad97, 0x01}, + {0xad98, 0x01}, + {0xad99, 0x01}, + {0xad9a, 0x01}, + {0xad9b, 0x01}, + {0xad9c, 0x01}, + {0xad9d, 0x01}, + {0xad9e, 0x01}, + {0xad9f, 0x01}, + {0xada0, 0x01}, + {0xae40, 0x01}, + {0xae41, 0x01}, + {0xae42, 0x01}, + {0xae43, 0x01}, + {0xae44, 0x01}, + {0xae45, 0x01}, + {0xae46, 0x01}, + {0xae47, 0x01}, + {0xae48, 0x01}, + {0xae49, 0x01}, + {0xae4a, 0x01}, + {0xae4b, 0x01}, + {0xae4c, 0x01}, + {0xae4d, 0x01}, + {0xae4e, 0x01}, + {0xae4f, 0x01}, + {0xae50, 0x01}, + {0xae51, 0x01}, + {0xae52, 0x01}, + {0xae53, 0x01}, + {0xae54, 0x01}, + {0xae55, 0x01}, + {0xae56, 0x01}, + {0xae57, 0x01}, + {0xae58, 0x01}, + {0xae59, 0x01}, + {0xae5a, 0x01}, + {0xae5b, 0x01}, + {0xae5c, 0x01}, + {0xae5d, 0x01}, + {0xae5e, 0x01}, + {0xae5f, 0x01}, + {0xae60, 0x01}, + {0xae61, 0x01}, + {0xae62, 0x01}, + {0xae63, 0x01}, + {0xae64, 0x01}, + {0xae65, 0x01}, + {0xae66, 0x01}, + {0xae67, 0x01}, + {0xae68, 0x01}, + {0xae69, 0x01}, + {0xae6a, 0x01}, + {0xae6b, 0x01}, + {0xae6c, 0x01}, + {0xae6d, 0x01}, + {0xae6e, 0x01}, + {0xae6f, 0x01}, + {0xae70, 0x01}, + {0xae71, 0x01}, + {0xae72, 0x01}, + {0xae73, 0x01}, + {0xae74, 0x01}, + {0xae75, 0x01}, + {0xae76, 0x01}, + {0xae77, 0x01}, + {0xae78, 0x01}, + {0xae79, 0x01}, + {0xae7a, 0x01}, + {0xae7b, 0x01}, + {0xae7c, 0x01}, + {0xae7d, 0x01}, + {0xae7e, 0x01}, + {0xae80, 0x01}, + {0xae81, 0x01}, + {0xae82, 0x01}, + {0xae83, 0x01}, + {0xae84, 0x01}, + {0xae85, 0x01}, + {0xae86, 0x01}, + {0xae87, 0x01}, + {0xae88, 0x01}, + {0xae89, 0x01}, + {0xae8a, 0x01}, + {0xae8b, 0x01}, + {0xae8c, 0x01}, + {0xae8d, 0x01}, + {0xae8e, 0x01}, + {0xae8f, 0x01}, + {0xae90, 0x01}, + {0xae91, 0x01}, + {0xae92, 0x01}, + {0xae93, 0x01}, + {0xae94, 0x01}, + {0xae95, 0x01}, + {0xae96, 0x01}, + {0xae97, 0x01}, + {0xae98, 0x01}, + {0xae99, 0x01}, + {0xae9a, 0x01}, + {0xae9b, 0x01}, + {0xae9c, 0x01}, + {0xae9d, 0x01}, + {0xae9e, 0x01}, + {0xae9f, 0x01}, + {0xaea0, 0x01}, + {0xaf40, 0x01}, + {0xaf41, 0x01}, + {0xaf42, 0x01}, + {0xaf43, 0x01}, + {0xaf44, 0x01}, + {0xaf45, 0x01}, + {0xaf46, 0x01}, + {0xaf47, 0x01}, + {0xaf48, 0x01}, + {0xaf49, 0x01}, + {0xaf4a, 0x01}, + {0xaf4b, 0x01}, + {0xaf4c, 0x01}, + {0xaf4d, 0x01}, + {0xaf4e, 0x01}, + {0xaf4f, 0x01}, + {0xaf50, 0x01}, + {0xaf51, 0x01}, + {0xaf52, 0x01}, + {0xaf53, 0x01}, + {0xaf54, 0x01}, + {0xaf55, 0x01}, + {0xaf56, 0x01}, + {0xaf57, 0x01}, + {0xaf58, 0x01}, + {0xaf59, 0x01}, + {0xaf5a, 0x01}, + {0xaf5b, 0x01}, + {0xaf5c, 0x01}, + {0xaf5d, 0x01}, + {0xaf5e, 0x01}, + {0xaf5f, 0x01}, + {0xaf60, 0x01}, + {0xaf61, 0x01}, + {0xaf62, 0x01}, + {0xaf63, 0x01}, + {0xaf64, 0x01}, + {0xaf65, 0x01}, + {0xaf66, 0x01}, + {0xaf67, 0x01}, + {0xaf68, 0x01}, + {0xaf69, 0x01}, + {0xaf6a, 0x01}, + {0xaf6b, 0x01}, + {0xaf6c, 0x01}, + {0xaf6d, 0x01}, + {0xaf6e, 0x01}, + {0xaf6f, 0x01}, + {0xaf70, 0x01}, + {0xaf71, 0x01}, + {0xaf72, 0x01}, + {0xaf73, 0x01}, + {0xaf74, 0x01}, + {0xaf75, 0x01}, + {0xaf76, 0x01}, + {0xaf77, 0x01}, + {0xaf78, 0x01}, + {0xaf79, 0x01}, + {0xaf7a, 0x01}, + {0xaf7b, 0x01}, + {0xaf7c, 0x01}, + {0xaf7d, 0x01}, + {0xaf7e, 0x01}, + {0xaf80, 0x01}, + {0xaf81, 0x01}, + {0xaf82, 0x01}, + {0xaf83, 0x01}, + {0xaf84, 0x01}, + {0xaf85, 0x01}, + {0xaf86, 0x01}, + {0xaf87, 0x01}, + {0xaf88, 0x01}, + {0xaf89, 0x01}, + {0xaf8a, 0x01}, + {0xaf8b, 0x01}, + {0xaf8c, 0x01}, + {0xaf8d, 0x01}, + {0xaf8e, 0x01}, + {0xaf8f, 0x01}, + {0xaf90, 0x01}, + {0xaf91, 0x01}, + {0xaf92, 0x01}, + {0xaf93, 0x01}, + {0xaf94, 0x01}, + {0xaf95, 0x01}, + {0xaf96, 0x01}, + {0xaf97, 0x01}, + {0xaf98, 0x01}, + {0xaf99, 0x01}, + {0xaf9a, 0x01}, + {0xaf9b, 0x01}, + {0xaf9c, 0x01}, + {0xaf9d, 0x01}, + {0xaf9e, 0x01}, + {0xaf9f, 0x01}, + {0xafa0, 0x01}, + {0xb040, 0x01}, + {0xb041, 0x01}, + {0xb042, 0x01}, + {0xb043, 0x01}, + {0xb044, 0x01}, + {0xb045, 0x01}, + {0xb046, 0x01}, + {0xb047, 0x01}, + {0xb048, 0x01}, + {0xb049, 0x01}, + {0xb04a, 0x01}, + {0xb04b, 0x01}, + {0xb04c, 0x01}, + {0xb04d, 0x01}, + {0xb04e, 0x01}, + {0xb04f, 0x01}, + {0xb050, 0x01}, + {0xb051, 0x01}, + {0xb052, 0x01}, + {0xb053, 0x01}, + {0xb054, 0x01}, + {0xb055, 0x01}, + {0xb056, 0x01}, + {0xb057, 0x01}, + {0xb058, 0x01}, + {0xb059, 0x01}, + {0xb05a, 0x01}, + {0xb05b, 0x01}, + {0xb05c, 0x01}, + {0xb05d, 0x01}, + {0xb05e, 0x01}, + {0xb05f, 0x01}, + {0xb060, 0x01}, + {0xb061, 0x01}, + {0xb062, 0x01}, + {0xb063, 0x01}, + {0xb064, 0x01}, + {0xb065, 0x01}, + {0xb066, 0x01}, + {0xb067, 0x01}, + {0xb068, 0x01}, + {0xb06a, 0x01}, + {0xb06b, 0x01}, + {0xb06c, 0x01}, + {0xb06d, 0x01}, + {0xb06e, 0x01}, + {0xb06f, 0x01}, + {0xb070, 0x01}, + {0xb071, 0x01}, + {0xb072, 0x01}, + {0xb073, 0x01}, + {0xb074, 0x01}, + {0xb075, 0x01}, + {0xb076, 0x01}, + {0xb077, 0x01}, + {0xb078, 0x01}, + {0xb079, 0x01}, + {0xb07a, 0x01}, + {0xb07b, 0x01}, + {0xb07c, 0x01}, + {0xb07d, 0x01}, + {0xb07e, 0x01}, + {0xb080, 0x01}, + {0xb081, 0x01}, + {0xb082, 0x01}, + {0xb083, 0x01}, + {0xb084, 0x01}, + {0xb085, 0x01}, + {0xb086, 0x01}, + {0xb087, 0x01}, + {0xb088, 0x01}, + {0xb089, 0x01}, + {0xb08a, 0x01}, + {0xb08b, 0x01}, + {0xb08c, 0x01}, + {0xb08d, 0x01}, + {0xb08e, 0x01}, + {0xb08f, 0x01}, + {0xb090, 0x01}, + {0xb091, 0x01}, + {0xb092, 0x01}, + {0xb093, 0x01}, + {0xb094, 0x01}, + {0xb095, 0x01}, + {0xb096, 0x01}, + {0xb097, 0x01}, + {0xb098, 0x01}, + {0xb099, 0x01}, + {0xb09a, 0x01}, + {0xb09c, 0x01}, + {0xb09d, 0x01}, + {0xb09e, 0x01}, + {0xb09f, 0x01}, + {0xb0a0, 0x01}, + {0xb0a1, 0x01}, + {0xb0a2, 0x01}, + {0xb0a3, 0x01}, + {0xb0a4, 0x01}, + {0xb0a5, 0x01}, + {0xb0a6, 0x01}, + {0xb0a7, 0x01}, + {0xb0a8, 0x01}, + {0xb0a9, 0x01}, + {0xb0aa, 0x01}, + {0xb0ab, 0x01}, + {0xb0ac, 0x01}, + {0xb0ad, 0x01}, + {0xb0ae, 0x01}, + {0xb0af, 0x01}, + {0xb0b0, 0x01}, + {0xb0b1, 0x01}, + {0xb0b2, 0x01}, + {0xb0b3, 0x01}, + {0xb0b4, 0x01}, + {0xb0b5, 0x01}, + {0xb0b6, 0x01}, + {0xb0b7, 0x01}, + {0xb0b8, 0x01}, + {0xb0b9, 0x01}, + {0xb0ba, 0x01}, + {0xb0bb, 0x01}, + {0xb0bc, 0x01}, + {0xb0bd, 0x01}, + {0xb0be, 0x01}, + {0xb0bf, 0x01}, + {0xb0c0, 0x01}, + {0xb0c1, 0x01}, + {0xb0c2, 0x01}, + {0xb0c3, 0x01}, + {0xb0c4, 0x01}, + {0xb0c5, 0x01}, + {0xb0c6, 0x01}, + {0xb0c7, 0x01}, + {0xb0c8, 0x01}, + {0xb0c9, 0x01}, + {0xb0ca, 0x01}, + {0xb0cb, 0x01}, + {0xb0cc, 0x01}, + {0xb0cd, 0x01}, + {0xb0ce, 0x01}, + {0xb0cf, 0x01}, + {0xb0d0, 0x01}, + {0xb0d1, 0x01}, + {0xb0d2, 0x01}, + {0xb0d3, 0x01}, + {0xb0d4, 0x01}, + {0xb0d5, 0x01}, + {0xb0d6, 0x01}, + {0xb0d7, 0x01}, + {0xb0d8, 0x01}, + {0xb0d9, 0x01}, + {0xb0da, 0x01}, + {0xb0db, 0x01}, + {0xb0dc, 0x01}, + {0xb0dd, 0x01}, + {0xb0de, 0x01}, + {0xb0df, 0x01}, + {0xb0e0, 0x01}, + {0xb0e1, 0x01}, + {0xb0e2, 0x01}, + {0xb0e3, 0x01}, + {0xb0e4, 0x01}, + {0xb0e5, 0x01}, + {0xb0e6, 0x01}, + {0xb0e7, 0x01}, + {0xb0e8, 0x01}, + {0xb0e9, 0x01}, + {0xb0ea, 0x01}, + {0xb0eb, 0x01}, + {0xb0ec, 0x01}, + {0xb0ed, 0x01}, + {0xb0ee, 0x01}, + {0xb0ef, 0x01}, + {0xb0f0, 0x01}, + {0xb0f1, 0x01}, + {0xb0f2, 0x01}, + {0xb0f3, 0x01}, + {0xb0f4, 0x01}, + {0xb0f5, 0x01}, + {0xb0f6, 0x01}, + {0xb0f7, 0x01}, + {0xb0f8, 0x01}, + {0xb0f9, 0x01}, + {0xb0fa, 0x01}, + {0xb0fb, 0x01}, + {0xb0fc, 0x01}, + {0xb0fd, 0x01}, + {0xb0fe, 0x01}, + {0xb140, 0x01}, + {0xb141, 0x01}, + {0xb142, 0x01}, + {0xb143, 0x01}, + {0xb144, 0x01}, + {0xb145, 0x01}, + {0xb146, 0x01}, + {0xb147, 0x01}, + {0xb148, 0x01}, + {0xb149, 0x01}, + {0xb14a, 0x01}, + {0xb14b, 0x01}, + {0xb14c, 0x01}, + {0xb14d, 0x01}, + {0xb14e, 0x01}, + {0xb14f, 0x01}, + {0xb150, 0x01}, + {0xb151, 0x01}, + {0xb152, 0x01}, + {0xb153, 0x01}, + {0xb154, 0x01}, + {0xb155, 0x01}, + {0xb156, 0x01}, + {0xb157, 0x01}, + {0xb158, 0x01}, + {0xb159, 0x01}, + {0xb15a, 0x01}, + {0xb15b, 0x01}, + {0xb15c, 0x01}, + {0xb15d, 0x01}, + {0xb15e, 0x01}, + {0xb15f, 0x01}, + {0xb160, 0x01}, + {0xb161, 0x01}, + {0xb162, 0x01}, + {0xb163, 0x01}, + {0xb164, 0x01}, + {0xb165, 0x01}, + {0xb166, 0x01}, + {0xb167, 0x01}, + {0xb168, 0x01}, + {0xb169, 0x01}, + {0xb16a, 0x01}, + {0xb16b, 0x01}, + {0xb16c, 0x01}, + {0xb16d, 0x01}, + {0xb16e, 0x01}, + {0xb16f, 0x01}, + {0xb170, 0x01}, + {0xb171, 0x01}, + {0xb172, 0x01}, + {0xb173, 0x01}, + {0xb174, 0x01}, + {0xb175, 0x01}, + {0xb176, 0x01}, + {0xb177, 0x01}, + {0xb178, 0x01}, + {0xb179, 0x01}, + {0xb17a, 0x01}, + {0xb17b, 0x01}, + {0xb17c, 0x01}, + {0xb17d, 0x01}, + {0xb17e, 0x01}, + {0xb180, 0x01}, + {0xb181, 0x01}, + {0xb182, 0x01}, + {0xb183, 0x01}, + {0xb184, 0x01}, + {0xb185, 0x01}, + {0xb186, 0x01}, + {0xb187, 0x01}, + {0xb188, 0x01}, + {0xb189, 0x01}, + {0xb18a, 0x01}, + {0xb18b, 0x01}, + {0xb18c, 0x01}, + {0xb18d, 0x01}, + {0xb18e, 0x01}, + {0xb18f, 0x01}, + {0xb190, 0x01}, + {0xb191, 0x01}, + {0xb192, 0x01}, + {0xb193, 0x01}, + {0xb194, 0x01}, + {0xb195, 0x01}, + {0xb196, 0x01}, + {0xb197, 0x01}, + {0xb198, 0x01}, + {0xb199, 0x01}, + {0xb19a, 0x01}, + {0xb19b, 0x01}, + {0xb19c, 0x01}, + {0xb19d, 0x01}, + {0xb19e, 0x01}, + {0xb19f, 0x01}, + {0xb1a0, 0x01}, + {0xb1a1, 0x01}, + {0xb1a2, 0x01}, + {0xb1a3, 0x01}, + {0xb1a4, 0x01}, + {0xb1a5, 0x01}, + {0xb1a6, 0x01}, + {0xb1a7, 0x01}, + {0xb1a8, 0x01}, + {0xb1a9, 0x01}, + {0xb1aa, 0x01}, + {0xb1ab, 0x01}, + {0xb1ac, 0x01}, + {0xb1ad, 0x01}, + {0xb1ae, 0x01}, + {0xb1af, 0x01}, + {0xb1b0, 0x01}, + {0xb1b1, 0x01}, + {0xb1b2, 0x01}, + {0xb1b3, 0x01}, + {0xb1b4, 0x01}, + {0xb1b5, 0x01}, + {0xb1b6, 0x01}, + {0xb1b7, 0x01}, + {0xb1b8, 0x01}, + {0xb1b9, 0x01}, + {0xb1ba, 0x01}, + {0xb1bb, 0x01}, + {0xb1bc, 0x01}, + {0xb1bd, 0x01}, + {0xb1be, 0x01}, + {0xb1bf, 0x01}, + {0xb1c0, 0x01}, + {0xb1c1, 0x01}, + {0xb1c2, 0x01}, + {0xb1c3, 0x01}, + {0xb1c4, 0x01}, + {0xb1c5, 0x01}, + {0xb1c6, 0x01}, + {0xb1c7, 0x01}, + {0xb1c8, 0x01}, + {0xb1c9, 0x01}, + {0xb1ca, 0x01}, + {0xb1cb, 0x01}, + {0xb1cc, 0x01}, + {0xb1cd, 0x01}, + {0xb1ce, 0x01}, + {0xb1cf, 0x01}, + {0xb1d0, 0x01}, + {0xb1d1, 0x01}, + {0xb1d2, 0x01}, + {0xb1d3, 0x01}, + {0xb1d4, 0x01}, + {0xb1d5, 0x01}, + {0xb1d6, 0x01}, + {0xb1d7, 0x01}, + {0xb1d8, 0x01}, + {0xb1d9, 0x01}, + {0xb1da, 0x01}, + {0xb1db, 0x01}, + {0xb1dc, 0x01}, + {0xb1dd, 0x01}, + {0xb1de, 0x01}, + {0xb1df, 0x01}, + {0xb1e0, 0x01}, + {0xb1e1, 0x01}, + {0xb1e2, 0x01}, + {0xb1e3, 0x01}, + {0xb1e4, 0x01}, + {0xb1e5, 0x01}, + {0xb1e6, 0x01}, + {0xb1e7, 0x01}, + {0xb1e8, 0x01}, + {0xb1e9, 0x01}, + {0xb1ea, 0x01}, + {0xb1eb, 0x01}, + {0xb1ec, 0x01}, + {0xb1ed, 0x01}, + {0xb1ee, 0x01}, + {0xb1ef, 0x01}, + {0xb1f0, 0x01}, + {0xb1f1, 0x01}, + {0xb1f2, 0x01}, + {0xb1f3, 0x01}, + {0xb1f4, 0x01}, + {0xb1f5, 0x01}, + {0xb1f6, 0x01}, + {0xb1f7, 0x01}, + {0xb1f8, 0x01}, + {0xb1f9, 0x01}, + {0xb1fa, 0x01}, + {0xb1fb, 0x01}, + {0xb1fc, 0x01}, + {0xb1fd, 0x01}, + {0xb1fe, 0x01}, + {0xb240, 0x01}, + {0xb241, 0x01}, + {0xb242, 0x01}, + {0xb243, 0x01}, + {0xb244, 0x01}, + {0xb245, 0x01}, + {0xb246, 0x01}, + {0xb247, 0x01}, + {0xb248, 0x01}, + {0xb249, 0x01}, + {0xb24a, 0x01}, + {0xb24b, 0x01}, + {0xb24c, 0x01}, + {0xb24d, 0x01}, + {0xb24e, 0x01}, + {0xb24f, 0x01}, + {0xb250, 0x01}, + {0xb251, 0x01}, + {0xb252, 0x01}, + {0xb253, 0x01}, + {0xb254, 0x01}, + {0xb255, 0x01}, + {0xb256, 0x01}, + {0xb257, 0x01}, + {0xb258, 0x01}, + {0xb259, 0x01}, + {0xb25a, 0x01}, + {0xb25b, 0x01}, + {0xb25c, 0x01}, + {0xb25d, 0x01}, + {0xb25e, 0x01}, + {0xb25f, 0x01}, + {0xb260, 0x01}, + {0xb261, 0x01}, + {0xb262, 0x01}, + {0xb263, 0x01}, + {0xb264, 0x01}, + {0xb265, 0x01}, + {0xb266, 0x01}, + {0xb267, 0x01}, + {0xb268, 0x01}, + {0xb269, 0x01}, + {0xb26a, 0x01}, + {0xb26b, 0x01}, + {0xb26c, 0x01}, + {0xb26d, 0x01}, + {0xb26e, 0x01}, + {0xb26f, 0x01}, + {0xb270, 0x01}, + {0xb271, 0x01}, + {0xb272, 0x01}, + {0xb273, 0x01}, + {0xb274, 0x01}, + {0xb275, 0x01}, + {0xb276, 0x01}, + {0xb277, 0x01}, + {0xb278, 0x01}, + {0xb279, 0x01}, + {0xb27a, 0x01}, + {0xb27b, 0x01}, + {0xb27c, 0x01}, + {0xb27d, 0x01}, + {0xb27e, 0x01}, + {0xb280, 0x01}, + {0xb281, 0x01}, + {0xb282, 0x01}, + {0xb283, 0x01}, + {0xb284, 0x01}, + {0xb285, 0x01}, + {0xb286, 0x01}, + {0xb287, 0x01}, + {0xb288, 0x01}, + {0xb289, 0x01}, + {0xb28a, 0x01}, + {0xb28b, 0x01}, + {0xb28c, 0x01}, + {0xb28d, 0x01}, + {0xb28e, 0x01}, + {0xb28f, 0x01}, + {0xb290, 0x01}, + {0xb291, 0x01}, + {0xb292, 0x01}, + {0xb293, 0x01}, + {0xb294, 0x01}, + {0xb295, 0x01}, + {0xb296, 0x01}, + {0xb297, 0x01}, + {0xb298, 0x01}, + {0xb299, 0x01}, + {0xb29a, 0x01}, + {0xb29b, 0x01}, + {0xb29c, 0x01}, + {0xb29d, 0x01}, + {0xb29e, 0x01}, + {0xb29f, 0x01}, + {0xb2a0, 0x01}, + {0xb2a1, 0x01}, + {0xb2a2, 0x01}, + {0xb2a3, 0x01}, + {0xb2a4, 0x01}, + {0xb2a5, 0x01}, + {0xb2a6, 0x01}, + {0xb2a7, 0x01}, + {0xb2a8, 0x01}, + {0xb2a9, 0x01}, + {0xb2aa, 0x01}, + {0xb2ab, 0x01}, + {0xb2ac, 0x01}, + {0xb2ad, 0x01}, + {0xb2ae, 0x01}, + {0xb2af, 0x01}, + {0xb2b0, 0x01}, + {0xb2b1, 0x01}, + {0xb2b2, 0x01}, + {0xb2b3, 0x01}, + {0xb2b4, 0x01}, + {0xb2b5, 0x01}, + {0xb2b6, 0x01}, + {0xb2b7, 0x01}, + {0xb2b8, 0x01}, + {0xb2b9, 0x01}, + {0xb2ba, 0x01}, + {0xb2bb, 0x01}, + {0xb2bc, 0x01}, + {0xb2bd, 0x01}, + {0xb2be, 0x01}, + {0xb2bf, 0x01}, + {0xb2c0, 0x01}, + {0xb2c1, 0x01}, + {0xb2c2, 0x01}, + {0xb2c3, 0x01}, + {0xb2c4, 0x01}, + {0xb2c5, 0x01}, + {0xb2c6, 0x01}, + {0xb2c7, 0x01}, + {0xb2c8, 0x01}, + {0xb2c9, 0x01}, + {0xb2ca, 0x01}, + {0xb2cb, 0x01}, + {0xb2cc, 0x01}, + {0xb2cd, 0x01}, + {0xb2ce, 0x01}, + {0xb2cf, 0x01}, + {0xb2d0, 0x01}, + {0xb2d1, 0x01}, + {0xb2d2, 0x01}, + {0xb2d3, 0x01}, + {0xb2d4, 0x01}, + {0xb2d5, 0x01}, + {0xb2d6, 0x01}, + {0xb2d7, 0x01}, + {0xb2d8, 0x01}, + {0xb2d9, 0x01}, + {0xb2da, 0x01}, + {0xb2db, 0x01}, + {0xb2dc, 0x01}, + {0xb2dd, 0x01}, + {0xb2de, 0x01}, + {0xb2df, 0x01}, + {0xb2e0, 0x01}, + {0xb2e1, 0x01}, + {0xb2e2, 0x01}, + {0xb2e3, 0x01}, + {0xb2e4, 0x01}, + {0xb2e5, 0x01}, + {0xb2e6, 0x01}, + {0xb2e7, 0x01}, + {0xb2e8, 0x01}, + {0xb2e9, 0x01}, + {0xb2ea, 0x01}, + {0xb2eb, 0x01}, + {0xb2ec, 0x01}, + {0xb2ed, 0x01}, + {0xb2ee, 0x01}, + {0xb2ef, 0x01}, + {0xb2f0, 0x01}, + {0xb2f1, 0x01}, + {0xb2f2, 0x01}, + {0xb2f3, 0x01}, + {0xb2f4, 0x01}, + {0xb2f5, 0x01}, + {0xb2f6, 0x01}, + {0xb2f7, 0x01}, + {0xb2f8, 0x01}, + {0xb2f9, 0x01}, + {0xb2fa, 0x01}, + {0xb2fb, 0x01}, + {0xb2fc, 0x01}, + {0xb2fd, 0x01}, + {0xb2fe, 0x01}, + {0xb340, 0x01}, + {0xb341, 0x01}, + {0xb342, 0x01}, + {0xb343, 0x01}, + {0xb344, 0x01}, + {0xb345, 0x01}, + {0xb346, 0x01}, + {0xb347, 0x01}, + {0xb348, 0x01}, + {0xb349, 0x01}, + {0xb34a, 0x01}, + {0xb34b, 0x01}, + {0xb34c, 0x01}, + {0xb34d, 0x01}, + {0xb34e, 0x01}, + {0xb34f, 0x01}, + {0xb350, 0x01}, + {0xb351, 0x01}, + {0xb352, 0x01}, + {0xb353, 0x01}, + {0xb354, 0x01}, + {0xb355, 0x01}, + {0xb356, 0x01}, + {0xb357, 0x01}, + {0xb358, 0x01}, + {0xb359, 0x01}, + {0xb35a, 0x01}, + {0xb35b, 0x01}, + {0xb35c, 0x01}, + {0xb35d, 0x01}, + {0xb35e, 0x01}, + {0xb35f, 0x01}, + {0xb360, 0x01}, + {0xb361, 0x01}, + {0xb362, 0x01}, + {0xb363, 0x01}, + {0xb364, 0x01}, + {0xb365, 0x01}, + {0xb366, 0x01}, + {0xb367, 0x01}, + {0xb368, 0x01}, + {0xb369, 0x01}, + {0xb36a, 0x01}, + {0xb36b, 0x01}, + {0xb36c, 0x01}, + {0xb36d, 0x01}, + {0xb36e, 0x01}, + {0xb36f, 0x01}, + {0xb370, 0x01}, + {0xb371, 0x01}, + {0xb372, 0x01}, + {0xb373, 0x01}, + {0xb374, 0x01}, + {0xb375, 0x01}, + {0xb376, 0x01}, + {0xb377, 0x01}, + {0xb378, 0x01}, + {0xb379, 0x01}, + {0xb37a, 0x01}, + {0xb37b, 0x01}, + {0xb37c, 0x01}, + {0xb37d, 0x01}, + {0xb37e, 0x01}, + {0xb380, 0x01}, + {0xb381, 0x01}, + {0xb382, 0x01}, + {0xb383, 0x01}, + {0xb384, 0x01}, + {0xb385, 0x01}, + {0xb386, 0x01}, + {0xb387, 0x01}, + {0xb388, 0x01}, + {0xb389, 0x01}, + {0xb38a, 0x01}, + {0xb38b, 0x01}, + {0xb38c, 0x01}, + {0xb38d, 0x01}, + {0xb38e, 0x01}, + {0xb38f, 0x01}, + {0xb390, 0x01}, + {0xb391, 0x01}, + {0xb392, 0x01}, + {0xb393, 0x01}, + {0xb394, 0x01}, + {0xb395, 0x01}, + {0xb396, 0x01}, + {0xb397, 0x01}, + {0xb398, 0x01}, + {0xb399, 0x01}, + {0xb39a, 0x01}, + {0xb39b, 0x01}, + {0xb39c, 0x01}, + {0xb39d, 0x01}, + {0xb39e, 0x01}, + {0xb39f, 0x01}, + {0xb3a0, 0x01}, + {0xb3a1, 0x01}, + {0xb3a2, 0x01}, + {0xb3a3, 0x01}, + {0xb3a4, 0x01}, + {0xb3a5, 0x01}, + {0xb3a6, 0x01}, + {0xb3a7, 0x01}, + {0xb3a8, 0x01}, + {0xb3a9, 0x01}, + {0xb3aa, 0x01}, + {0xb3ab, 0x01}, + {0xb3ac, 0x01}, + {0xb3ad, 0x01}, + {0xb3ae, 0x01}, + {0xb3af, 0x01}, + {0xb3b0, 0x01}, + {0xb3b1, 0x01}, + {0xb3b2, 0x01}, + {0xb3b3, 0x01}, + {0xb3b4, 0x01}, + {0xb3b5, 0x01}, + {0xb3b6, 0x01}, + {0xb3b7, 0x01}, + {0xb3b8, 0x01}, + {0xb3b9, 0x01}, + {0xb3ba, 0x01}, + {0xb3bb, 0x01}, + {0xb3bc, 0x01}, + {0xb3bd, 0x01}, + {0xb3be, 0x01}, + {0xb3bf, 0x01}, + {0xb3c0, 0x01}, + {0xb3c1, 0x01}, + {0xb3c2, 0x01}, + {0xb3c3, 0x01}, + {0xb3c4, 0x01}, + {0xb3c5, 0x01}, + {0xb3c6, 0x01}, + {0xb3c7, 0x01}, + {0xb3c8, 0x01}, + {0xb3c9, 0x01}, + {0xb3ca, 0x01}, + {0xb3cb, 0x01}, + {0xb3cc, 0x01}, + {0xb3cd, 0x01}, + {0xb3ce, 0x01}, + {0xb3cf, 0x01}, + {0xb3d0, 0x01}, + {0xb3d1, 0x01}, + {0xb3d2, 0x01}, + {0xb3d3, 0x01}, + {0xb3d4, 0x01}, + {0xb3d5, 0x01}, + {0xb3d6, 0x01}, + {0xb3d7, 0x01}, + {0xb3d8, 0x01}, + {0xb3d9, 0x01}, + {0xb3da, 0x01}, + {0xb3db, 0x01}, + {0xb3dc, 0x01}, + {0xb3dd, 0x01}, + {0xb3de, 0x01}, + {0xb3df, 0x01}, + {0xb3e0, 0x01}, + {0xb3e1, 0x01}, + {0xb3e2, 0x01}, + {0xb3e3, 0x01}, + {0xb3e4, 0x01}, + {0xb3e5, 0x01}, + {0xb3e6, 0x01}, + {0xb3e7, 0x01}, + {0xb3e8, 0x01}, + {0xb3e9, 0x01}, + {0xb3ea, 0x01}, + {0xb3eb, 0x01}, + {0xb3ec, 0x01}, + {0xb3ed, 0x01}, + {0xb3ee, 0x01}, + {0xb3ef, 0x01}, + {0xb3f0, 0x01}, + {0xb3f1, 0x01}, + {0xb3f2, 0x01}, + {0xb3f3, 0x01}, + {0xb3f4, 0x01}, + {0xb3f5, 0x01}, + {0xb3f6, 0x01}, + {0xb3f7, 0x01}, + {0xb3f8, 0x01}, + {0xb3f9, 0x01}, + {0xb3fa, 0x01}, + {0xb3fb, 0x01}, + {0xb3fc, 0x01}, + {0xb3fd, 0x01}, + {0xb3fe, 0x01}, + {0xb440, 0x01}, + {0xb441, 0x01}, + {0xb442, 0x01}, + {0xb443, 0x01}, + {0xb444, 0x01}, + {0xb445, 0x01}, + {0xb446, 0x01}, + {0xb447, 0x01}, + {0xb448, 0x01}, + {0xb449, 0x01}, + {0xb44a, 0x01}, + {0xb44b, 0x01}, + {0xb44c, 0x01}, + {0xb44d, 0x01}, + {0xb44e, 0x01}, + {0xb44f, 0x01}, + {0xb450, 0x01}, + {0xb451, 0x01}, + {0xb452, 0x01}, + {0xb453, 0x01}, + {0xb454, 0x01}, + {0xb455, 0x01}, + {0xb456, 0x01}, + {0xb457, 0x01}, + {0xb458, 0x01}, + {0xb459, 0x01}, + {0xb45a, 0x01}, + {0xb45b, 0x01}, + {0xb45c, 0x01}, + {0xb45d, 0x01}, + {0xb45e, 0x01}, + {0xb45f, 0x01}, + {0xb460, 0x01}, + {0xb461, 0x01}, + {0xb462, 0x01}, + {0xb463, 0x01}, + {0xb464, 0x01}, + {0xb465, 0x01}, + {0xb466, 0x01}, + {0xb467, 0x01}, + {0xb468, 0x01}, + {0xb469, 0x01}, + {0xb46a, 0x01}, + {0xb46b, 0x01}, + {0xb46c, 0x01}, + {0xb46d, 0x01}, + {0xb46e, 0x01}, + {0xb46f, 0x01}, + {0xb470, 0x01}, + {0xb471, 0x01}, + {0xb472, 0x01}, + {0xb473, 0x01}, + {0xb474, 0x01}, + {0xb475, 0x01}, + {0xb476, 0x01}, + {0xb477, 0x01}, + {0xb478, 0x01}, + {0xb479, 0x01}, + {0xb47a, 0x01}, + {0xb47b, 0x01}, + {0xb47c, 0x01}, + {0xb47d, 0x01}, + {0xb47e, 0x01}, + {0xb480, 0x01}, + {0xb481, 0x01}, + {0xb482, 0x01}, + {0xb483, 0x01}, + {0xb484, 0x01}, + {0xb485, 0x01}, + {0xb486, 0x01}, + {0xb487, 0x01}, + {0xb488, 0x01}, + {0xb489, 0x01}, + {0xb48a, 0x01}, + {0xb48b, 0x01}, + {0xb48c, 0x01}, + {0xb48d, 0x01}, + {0xb48e, 0x01}, + {0xb48f, 0x01}, + {0xb490, 0x01}, + {0xb491, 0x01}, + {0xb492, 0x01}, + {0xb493, 0x01}, + {0xb494, 0x01}, + {0xb495, 0x01}, + {0xb496, 0x01}, + {0xb497, 0x01}, + {0xb498, 0x01}, + {0xb499, 0x01}, + {0xb49a, 0x01}, + {0xb49b, 0x01}, + {0xb49c, 0x01}, + {0xb49d, 0x01}, + {0xb49e, 0x01}, + {0xb49f, 0x01}, + {0xb4a0, 0x01}, + {0xb4a1, 0x01}, + {0xb4a2, 0x01}, + {0xb4a3, 0x01}, + {0xb4a4, 0x01}, + {0xb4a5, 0x01}, + {0xb4a6, 0x01}, + {0xb4a7, 0x01}, + {0xb4a8, 0x01}, + {0xb4a9, 0x01}, + {0xb4aa, 0x01}, + {0xb4ab, 0x01}, + {0xb4ac, 0x01}, + {0xb4ad, 0x01}, + {0xb4ae, 0x01}, + {0xb4af, 0x01}, + {0xb4b0, 0x01}, + {0xb4b1, 0x01}, + {0xb4b2, 0x01}, + {0xb4b3, 0x01}, + {0xb4b4, 0x01}, + {0xb4b5, 0x01}, + {0xb4b6, 0x01}, + {0xb4b7, 0x01}, + {0xb4b8, 0x01}, + {0xb4b9, 0x01}, + {0xb4ba, 0x01}, + {0xb4bb, 0x01}, + {0xb4bc, 0x01}, + {0xb4bd, 0x01}, + {0xb4be, 0x01}, + {0xb4bf, 0x01}, + {0xb4c0, 0x01}, + {0xb4c1, 0x01}, + {0xb4c2, 0x01}, + {0xb4c3, 0x01}, + {0xb4c4, 0x01}, + {0xb4c5, 0x01}, + {0xb4c6, 0x01}, + {0xb4c7, 0x01}, + {0xb4c8, 0x01}, + {0xb4c9, 0x01}, + {0xb4ca, 0x01}, + {0xb4cb, 0x01}, + {0xb4cc, 0x01}, + {0xb4cd, 0x01}, + {0xb4ce, 0x01}, + {0xb4cf, 0x01}, + {0xb4d0, 0x01}, + {0xb4d1, 0x01}, + {0xb4d2, 0x01}, + {0xb4d3, 0x01}, + {0xb4d4, 0x01}, + {0xb4d5, 0x01}, + {0xb4d6, 0x01}, + {0xb4d7, 0x01}, + {0xb4d8, 0x01}, + {0xb4d9, 0x01}, + {0xb4da, 0x01}, + {0xb4db, 0x01}, + {0xb4dc, 0x01}, + {0xb4dd, 0x01}, + {0xb4de, 0x01}, + {0xb4df, 0x01}, + {0xb4e0, 0x01}, + {0xb4e1, 0x01}, + {0xb4e2, 0x01}, + {0xb4e3, 0x01}, + {0xb4e4, 0x01}, + {0xb4e5, 0x01}, + {0xb4e6, 0x01}, + {0xb4e7, 0x01}, + {0xb4e8, 0x01}, + {0xb4e9, 0x01}, + {0xb4ea, 0x01}, + {0xb4eb, 0x01}, + {0xb4ec, 0x01}, + {0xb4ed, 0x01}, + {0xb4ee, 0x01}, + {0xb4ef, 0x01}, + {0xb4f0, 0x01}, + {0xb4f1, 0x01}, + {0xb4f2, 0x01}, + {0xb4f3, 0x01}, + {0xb4f4, 0x01}, + {0xb4f5, 0x01}, + {0xb4f6, 0x01}, + {0xb4f7, 0x01}, + {0xb4f8, 0x01}, + {0xb4f9, 0x01}, + {0xb4fa, 0x01}, + {0xb4fb, 0x01}, + {0xb4fc, 0x01}, + {0xb4fd, 0x01}, + {0xb4fe, 0x01}, + {0xb540, 0x01}, + {0xb541, 0x01}, + {0xb542, 0x01}, + {0xb543, 0x01}, + {0xb544, 0x01}, + {0xb545, 0x01}, + {0xb546, 0x01}, + {0xb547, 0x01}, + {0xb548, 0x01}, + {0xb549, 0x01}, + {0xb54a, 0x01}, + {0xb54b, 0x01}, + {0xb54c, 0x01}, + {0xb54d, 0x01}, + {0xb54e, 0x01}, + {0xb54f, 0x01}, + {0xb550, 0x01}, + {0xb551, 0x01}, + {0xb552, 0x01}, + {0xb553, 0x01}, + {0xb554, 0x01}, + {0xb555, 0x01}, + {0xb556, 0x01}, + {0xb557, 0x01}, + {0xb558, 0x01}, + {0xb559, 0x01}, + {0xb55a, 0x01}, + {0xb55b, 0x01}, + {0xb55c, 0x01}, + {0xb55d, 0x01}, + {0xb55e, 0x01}, + {0xb55f, 0x01}, + {0xb560, 0x01}, + {0xb561, 0x01}, + {0xb562, 0x01}, + {0xb563, 0x01}, + {0xb564, 0x01}, + {0xb565, 0x01}, + {0xb566, 0x01}, + {0xb567, 0x01}, + {0xb568, 0x01}, + {0xb569, 0x01}, + {0xb56a, 0x01}, + {0xb56b, 0x01}, + {0xb56c, 0x01}, + {0xb56d, 0x01}, + {0xb56e, 0x01}, + {0xb56f, 0x01}, + {0xb570, 0x01}, + {0xb571, 0x01}, + {0xb572, 0x01}, + {0xb574, 0x01}, + {0xb575, 0x01}, + {0xb576, 0x01}, + {0xb577, 0x01}, + {0xb578, 0x01}, + {0xb579, 0x01}, + {0xb57a, 0x01}, + {0xb57b, 0x01}, + {0xb57c, 0x01}, + {0xb57d, 0x01}, + {0xb57e, 0x01}, + {0xb580, 0x01}, + {0xb581, 0x01}, + {0xb582, 0x01}, + {0xb583, 0x01}, + {0xb584, 0x01}, + {0xb585, 0x01}, + {0xb586, 0x01}, + {0xb587, 0x01}, + {0xb588, 0x01}, + {0xb589, 0x01}, + {0xb58a, 0x01}, + {0xb58b, 0x01}, + {0xb58c, 0x01}, + {0xb58d, 0x01}, + {0xb58e, 0x01}, + {0xb58f, 0x01}, + {0xb590, 0x01}, + {0xb591, 0x01}, + {0xb592, 0x01}, + {0xb593, 0x01}, + {0xb594, 0x01}, + {0xb595, 0x01}, + {0xb596, 0x01}, + {0xb597, 0x01}, + {0xb598, 0x01}, + {0xb599, 0x01}, + {0xb59a, 0x01}, + {0xb59b, 0x01}, + {0xb59c, 0x01}, + {0xb59d, 0x01}, + {0xb59e, 0x01}, + {0xb59f, 0x01}, + {0xb5a0, 0x01}, + {0xb5a1, 0x01}, + {0xb5a2, 0x01}, + {0xb5a3, 0x01}, + {0xb5a4, 0x01}, + {0xb5a5, 0x01}, + {0xb5a6, 0x01}, + {0xb5a7, 0x01}, + {0xb5a8, 0x01}, + {0xb5a9, 0x01}, + {0xb5aa, 0x01}, + {0xb5ab, 0x01}, + {0xb5ac, 0x01}, + {0xb5ad, 0x01}, + {0xb5ae, 0x01}, + {0xb5af, 0x01}, + {0xb5b0, 0x01}, + {0xb5b1, 0x01}, + {0xb5b2, 0x01}, + {0xb5b3, 0x01}, + {0xb5b4, 0x01}, + {0xb5b5, 0x01}, + {0xb5b6, 0x01}, + {0xb5b7, 0x01}, + {0xb5b8, 0x01}, + {0xb5b9, 0x01}, + {0xb5ba, 0x01}, + {0xb5bb, 0x01}, + {0xb5bc, 0x01}, + {0xb5bd, 0x01}, + {0xb5be, 0x01}, + {0xb5bf, 0x01}, + {0xb5c0, 0x01}, + {0xb5c1, 0x01}, + {0xb5c2, 0x01}, + {0xb5c3, 0x01}, + {0xb5c4, 0x01}, + {0xb5c5, 0x01}, + {0xb5c6, 0x01}, + {0xb5c7, 0x01}, + {0xb5c8, 0x01}, + {0xb5c9, 0x01}, + {0xb5ca, 0x01}, + {0xb5cb, 0x01}, + {0xb5cc, 0x01}, + {0xb5cd, 0x01}, + {0xb5ce, 0x01}, + {0xb5cf, 0x01}, + {0xb5d0, 0x01}, + {0xb5d1, 0x01}, + {0xb5d2, 0x01}, + {0xb5d3, 0x01}, + {0xb5d4, 0x01}, + {0xb5d5, 0x01}, + {0xb5d6, 0x01}, + {0xb5d7, 0x01}, + {0xb5d8, 0x01}, + {0xb5d9, 0x01}, + {0xb5da, 0x01}, + {0xb5db, 0x01}, + {0xb5dc, 0x01}, + {0xb5dd, 0x01}, + {0xb5de, 0x01}, + {0xb5df, 0x01}, + {0xb5e0, 0x01}, + {0xb5e1, 0x01}, + {0xb5e2, 0x01}, + {0xb5e3, 0x01}, + {0xb5e4, 0x01}, + {0xb5e5, 0x01}, + {0xb5e6, 0x01}, + {0xb5e7, 0x01}, + {0xb5e8, 0x01}, + {0xb5e9, 0x01}, + {0xb5ea, 0x01}, + {0xb5eb, 0x01}, + {0xb5ec, 0x01}, + {0xb5ed, 0x01}, + {0xb5ee, 0x01}, + {0xb5ef, 0x01}, + {0xb5f0, 0x01}, + {0xb5f1, 0x01}, + {0xb5f2, 0x01}, + {0xb5f3, 0x01}, + {0xb5f4, 0x01}, + {0xb5f5, 0x01}, + {0xb5f6, 0x01}, + {0xb5f7, 0x01}, + {0xb5f8, 0x01}, + {0xb5f9, 0x01}, + {0xb5fa, 0x01}, + {0xb5fb, 0x01}, + {0xb5fc, 0x01}, + {0xb5fd, 0x01}, + {0xb5fe, 0x01}, + {0xb640, 0x01}, + {0xb641, 0x01}, + {0xb642, 0x01}, + {0xb643, 0x01}, + {0xb644, 0x01}, + {0xb645, 0x01}, + {0xb646, 0x01}, + {0xb647, 0x01}, + {0xb648, 0x01}, + {0xb649, 0x01}, + {0xb64a, 0x01}, + {0xb64b, 0x01}, + {0xb64c, 0x01}, + {0xb64d, 0x01}, + {0xb64e, 0x01}, + {0xb64f, 0x01}, + {0xb650, 0x01}, + {0xb651, 0x01}, + {0xb652, 0x01}, + {0xb653, 0x01}, + {0xb654, 0x01}, + {0xb655, 0x01}, + {0xb656, 0x01}, + {0xb657, 0x01}, + {0xb658, 0x01}, + {0xb659, 0x01}, + {0xb65a, 0x01}, + {0xb65b, 0x01}, + {0xb65c, 0x01}, + {0xb65d, 0x01}, + {0xb65e, 0x01}, + {0xb65f, 0x01}, + {0xb660, 0x01}, + {0xb661, 0x01}, + {0xb662, 0x01}, + {0xb663, 0x01}, + {0xb664, 0x01}, + {0xb665, 0x01}, + {0xb666, 0x01}, + {0xb667, 0x01}, + {0xb668, 0x01}, + {0xb669, 0x01}, + {0xb66a, 0x01}, + {0xb66b, 0x01}, + {0xb66c, 0x01}, + {0xb66d, 0x01}, + {0xb66e, 0x01}, + {0xb66f, 0x01}, + {0xb670, 0x01}, + {0xb671, 0x01}, + {0xb672, 0x01}, + {0xb673, 0x01}, + {0xb674, 0x01}, + {0xb675, 0x01}, + {0xb676, 0x01}, + {0xb677, 0x01}, + {0xb678, 0x01}, + {0xb679, 0x01}, + {0xb67a, 0x01}, + {0xb67b, 0x01}, + {0xb67c, 0x01}, + {0xb67d, 0x01}, + {0xb67e, 0x01}, + {0xb680, 0x01}, + {0xb681, 0x01}, + {0xb682, 0x01}, + {0xb683, 0x01}, + {0xb684, 0x01}, + {0xb685, 0x01}, + {0xb686, 0x01}, + {0xb687, 0x01}, + {0xb688, 0x01}, + {0xb689, 0x01}, + {0xb68a, 0x01}, + {0xb68b, 0x01}, + {0xb68c, 0x01}, + {0xb68d, 0x01}, + {0xb68e, 0x01}, + {0xb68f, 0x01}, + {0xb690, 0x01}, + {0xb691, 0x01}, + {0xb692, 0x01}, + {0xb693, 0x01}, + {0xb694, 0x01}, + {0xb695, 0x01}, + {0xb696, 0x01}, + {0xb697, 0x01}, + {0xb698, 0x01}, + {0xb699, 0x01}, + {0xb69a, 0x01}, + {0xb69b, 0x01}, + {0xb69c, 0x01}, + {0xb69d, 0x01}, + {0xb69e, 0x01}, + {0xb69f, 0x01}, + {0xb6a0, 0x01}, + {0xb6a1, 0x01}, + {0xb6a2, 0x01}, + {0xb6a3, 0x01}, + {0xb6a4, 0x01}, + {0xb6a5, 0x01}, + {0xb6a6, 0x01}, + {0xb6a7, 0x01}, + {0xb6a8, 0x01}, + {0xb6a9, 0x01}, + {0xb6aa, 0x01}, + {0xb6ab, 0x01}, + {0xb6ac, 0x01}, + {0xb6ad, 0x01}, + {0xb6ae, 0x01}, + {0xb6af, 0x01}, + {0xb6b0, 0x01}, + {0xb6b1, 0x01}, + {0xb6b2, 0x01}, + {0xb6b3, 0x01}, + {0xb6b4, 0x01}, + {0xb6b5, 0x01}, + {0xb6b6, 0x01}, + {0xb6b7, 0x01}, + {0xb6b8, 0x01}, + {0xb6b9, 0x01}, + {0xb6ba, 0x01}, + {0xb6bb, 0x01}, + {0xb6bc, 0x01}, + {0xb6bd, 0x01}, + {0xb6be, 0x01}, + {0xb6bf, 0x01}, + {0xb6c0, 0x01}, + {0xb6c1, 0x01}, + {0xb6c2, 0x01}, + {0xb6c3, 0x01}, + {0xb6c4, 0x01}, + {0xb6c5, 0x01}, + {0xb6c6, 0x01}, + {0xb6c7, 0x01}, + {0xb6c8, 0x01}, + {0xb6c9, 0x01}, + {0xb6ca, 0x01}, + {0xb6cb, 0x01}, + {0xb6cc, 0x01}, + {0xb6cd, 0x01}, + {0xb6ce, 0x01}, + {0xb6cf, 0x01}, + {0xb6d0, 0x01}, + {0xb6d1, 0x01}, + {0xb6d2, 0x01}, + {0xb6d3, 0x01}, + {0xb6d4, 0x01}, + {0xb6d5, 0x01}, + {0xb6d6, 0x01}, + {0xb6d7, 0x01}, + {0xb6d8, 0x01}, + {0xb6d9, 0x01}, + {0xb6da, 0x01}, + {0xb6db, 0x01}, + {0xb6dc, 0x01}, + {0xb6dd, 0x01}, + {0xb6de, 0x01}, + {0xb6df, 0x01}, + {0xb6e0, 0x01}, + {0xb6e1, 0x01}, + {0xb6e2, 0x01}, + {0xb6e3, 0x01}, + {0xb6e4, 0x01}, + {0xb6e5, 0x01}, + {0xb6e6, 0x01}, + {0xb6e7, 0x01}, + {0xb6e8, 0x01}, + {0xb6e9, 0x01}, + {0xb6ea, 0x01}, + {0xb6eb, 0x01}, + {0xb6ec, 0x01}, + {0xb6ed, 0x01}, + {0xb6ee, 0x01}, + {0xb6ef, 0x01}, + {0xb6f0, 0x01}, + {0xb6f1, 0x01}, + {0xb6f2, 0x01}, + {0xb6f3, 0x01}, + {0xb6f4, 0x01}, + {0xb6f5, 0x01}, + {0xb6f6, 0x01}, + {0xb6f7, 0x01}, + {0xb6f8, 0x01}, + {0xb6f9, 0x01}, + {0xb6fa, 0x01}, + {0xb6fb, 0x01}, + {0xb6fc, 0x01}, + {0xb6fd, 0x01}, + {0xb6fe, 0x01}, + {0xb740, 0x01}, + {0xb741, 0x01}, + {0xb742, 0x01}, + {0xb743, 0x01}, + {0xb744, 0x01}, + {0xb746, 0x01}, + {0xb747, 0x01}, + {0xb748, 0x01}, + {0xb749, 0x01}, + {0xb74a, 0x01}, + {0xb74b, 0x01}, + {0xb74c, 0x01}, + {0xb74d, 0x01}, + {0xb74e, 0x01}, + {0xb74f, 0x01}, + {0xb750, 0x01}, + {0xb751, 0x01}, + {0xb752, 0x01}, + {0xb753, 0x01}, + {0xb754, 0x01}, + {0xb755, 0x01}, + {0xb756, 0x01}, + {0xb757, 0x01}, + {0xb758, 0x01}, + {0xb759, 0x01}, + {0xb75a, 0x01}, + {0xb75b, 0x01}, + {0xb75c, 0x01}, + {0xb75d, 0x01}, + {0xb75e, 0x01}, + {0xb75f, 0x01}, + {0xb760, 0x01}, + {0xb761, 0x01}, + {0xb762, 0x01}, + {0xb763, 0x01}, + {0xb764, 0x01}, + {0xb765, 0x01}, + {0xb766, 0x01}, + {0xb767, 0x01}, + {0xb768, 0x01}, + {0xb769, 0x01}, + {0xb76a, 0x01}, + {0xb76b, 0x01}, + {0xb76c, 0x01}, + {0xb76d, 0x01}, + {0xb76e, 0x01}, + {0xb76f, 0x01}, + {0xb770, 0x01}, + {0xb771, 0x01}, + {0xb772, 0x01}, + {0xb773, 0x01}, + {0xb774, 0x01}, + {0xb775, 0x01}, + {0xb776, 0x01}, + {0xb777, 0x01}, + {0xb778, 0x01}, + {0xb779, 0x01}, + {0xb77a, 0x01}, + {0xb77b, 0x01}, + {0xb77c, 0x01}, + {0xb77d, 0x01}, + {0xb77e, 0x01}, + {0xb780, 0x01}, + {0xb781, 0x01}, + {0xb782, 0x01}, + {0xb783, 0x01}, + {0xb784, 0x01}, + {0xb785, 0x01}, + {0xb786, 0x01}, + {0xb787, 0x01}, + {0xb788, 0x01}, + {0xb789, 0x01}, + {0xb78a, 0x01}, + {0xb78b, 0x01}, + {0xb78c, 0x01}, + {0xb78d, 0x01}, + {0xb78e, 0x01}, + {0xb78f, 0x01}, + {0xb790, 0x01}, + {0xb791, 0x01}, + {0xb792, 0x01}, + {0xb793, 0x01}, + {0xb794, 0x01}, + {0xb795, 0x01}, + {0xb796, 0x01}, + {0xb797, 0x01}, + {0xb798, 0x01}, + {0xb799, 0x01}, + {0xb79a, 0x01}, + {0xb79b, 0x01}, + {0xb79c, 0x01}, + {0xb79d, 0x01}, + {0xb79e, 0x01}, + {0xb79f, 0x01}, + {0xb7a0, 0x01}, + {0xb7a1, 0x01}, + {0xb7a2, 0x01}, + {0xb7a3, 0x01}, + {0xb7a4, 0x01}, + {0xb7a5, 0x01}, + {0xb7a6, 0x01}, + {0xb7a7, 0x01}, + {0xb7a8, 0x01}, + {0xb7a9, 0x01}, + {0xb7aa, 0x01}, + {0xb7ab, 0x01}, + {0xb7ac, 0x01}, + {0xb7ad, 0x01}, + {0xb7ae, 0x01}, + {0xb7af, 0x01}, + {0xb7b0, 0x01}, + {0xb7b1, 0x01}, + {0xb7b2, 0x01}, + {0xb7b3, 0x01}, + {0xb7b4, 0x01}, + {0xb7b5, 0x01}, + {0xb7b6, 0x01}, + {0xb7b7, 0x01}, + {0xb7b8, 0x01}, + {0xb7b9, 0x01}, + {0xb7ba, 0x01}, + {0xb7bb, 0x01}, + {0xb7bc, 0x01}, + {0xb7bd, 0x01}, + {0xb7be, 0x01}, + {0xb7bf, 0x01}, + {0xb7c0, 0x01}, + {0xb7c1, 0x01}, + {0xb7c2, 0x01}, + {0xb7c3, 0x01}, + {0xb7c4, 0x01}, + {0xb7c5, 0x01}, + {0xb7c6, 0x01}, + {0xb7c7, 0x01}, + {0xb7c8, 0x01}, + {0xb7c9, 0x01}, + {0xb7ca, 0x01}, + {0xb7cb, 0x01}, + {0xb7cc, 0x01}, + {0xb7cd, 0x01}, + {0xb7ce, 0x01}, + {0xb7cf, 0x01}, + {0xb7d0, 0x01}, + {0xb7d1, 0x01}, + {0xb7d2, 0x01}, + {0xb7d3, 0x01}, + {0xb7d4, 0x01}, + {0xb7d5, 0x01}, + {0xb7d6, 0x01}, + {0xb7d7, 0x01}, + {0xb7d8, 0x01}, + {0xb7d9, 0x01}, + {0xb7da, 0x01}, + {0xb7db, 0x01}, + {0xb7dc, 0x01}, + {0xb7dd, 0x01}, + {0xb7de, 0x01}, + {0xb7df, 0x01}, + {0xb7e0, 0x01}, + {0xb7e1, 0x01}, + {0xb7e2, 0x01}, + {0xb7e3, 0x01}, + {0xb7e4, 0x01}, + {0xb7e5, 0x01}, + {0xb7e6, 0x01}, + {0xb7e7, 0x01}, + {0xb7e8, 0x01}, + {0xb7e9, 0x01}, + {0xb7ea, 0x01}, + {0xb7eb, 0x01}, + {0xb7ec, 0x01}, + {0xb7ed, 0x01}, + {0xb7ee, 0x01}, + {0xb7ef, 0x01}, + {0xb7f0, 0x01}, + {0xb7f1, 0x01}, + {0xb7f2, 0x01}, + {0xb7f3, 0x01}, + {0xb7f4, 0x01}, + {0xb7f5, 0x01}, + {0xb7f6, 0x01}, + {0xb7f7, 0x01}, + {0xb7f8, 0x01}, + {0xb7f9, 0x01}, + {0xb7fa, 0x01}, + {0xb7fb, 0x01}, + {0xb7fc, 0x01}, + {0xb7fd, 0x01}, + {0xb7fe, 0x01}, + {0xb840, 0x01}, + {0xb841, 0x01}, + {0xb842, 0x01}, + {0xb843, 0x01}, + {0xb844, 0x01}, + {0xb845, 0x01}, + {0xb846, 0x01}, + {0xb847, 0x01}, + {0xb848, 0x01}, + {0xb849, 0x01}, + {0xb84a, 0x01}, + {0xb84b, 0x01}, + {0xb84c, 0x01}, + {0xb84d, 0x01}, + {0xb84e, 0x01}, + {0xb84f, 0x01}, + {0xb850, 0x01}, + {0xb851, 0x01}, + {0xb852, 0x01}, + {0xb853, 0x01}, + {0xb854, 0x01}, + {0xb855, 0x01}, + {0xb856, 0x01}, + {0xb857, 0x01}, + {0xb858, 0x01}, + {0xb859, 0x01}, + {0xb85a, 0x01}, + {0xb85b, 0x01}, + {0xb85c, 0x01}, + {0xb85d, 0x01}, + {0xb85e, 0x01}, + {0xb85f, 0x01}, + {0xb860, 0x01}, + {0xb861, 0x01}, + {0xb862, 0x01}, + {0xb863, 0x01}, + {0xb864, 0x01}, + {0xb865, 0x01}, + {0xb866, 0x01}, + {0xb867, 0x01}, + {0xb868, 0x01}, + {0xb869, 0x01}, + {0xb86a, 0x01}, + {0xb86b, 0x01}, + {0xb86c, 0x01}, + {0xb86d, 0x01}, + {0xb86e, 0x01}, + {0xb86f, 0x01}, + {0xb870, 0x01}, + {0xb871, 0x01}, + {0xb872, 0x01}, + {0xb873, 0x01}, + {0xb874, 0x01}, + {0xb875, 0x01}, + {0xb876, 0x01}, + {0xb877, 0x01}, + {0xb878, 0x01}, + {0xb879, 0x01}, + {0xb87a, 0x01}, + {0xb87b, 0x01}, + {0xb87c, 0x01}, + {0xb87d, 0x01}, + {0xb87e, 0x01}, + {0xb880, 0x01}, + {0xb881, 0x01}, + {0xb882, 0x01}, + {0xb883, 0x01}, + {0xb884, 0x01}, + {0xb885, 0x01}, + {0xb886, 0x01}, + {0xb887, 0x01}, + {0xb888, 0x01}, + {0xb889, 0x01}, + {0xb88a, 0x01}, + {0xb88b, 0x01}, + {0xb88c, 0x01}, + {0xb88d, 0x01}, + {0xb88e, 0x01}, + {0xb88f, 0x01}, + {0xb890, 0x01}, + {0xb891, 0x01}, + {0xb892, 0x01}, + {0xb893, 0x01}, + {0xb894, 0x01}, + {0xb895, 0x01}, + {0xb896, 0x01}, + {0xb897, 0x01}, + {0xb898, 0x01}, + {0xb899, 0x01}, + {0xb89a, 0x01}, + {0xb89b, 0x01}, + {0xb89c, 0x01}, + {0xb89d, 0x01}, + {0xb89e, 0x01}, + {0xb89f, 0x01}, + {0xb8a0, 0x01}, + {0xb8a1, 0x01}, + {0xb8a2, 0x01}, + {0xb8a3, 0x01}, + {0xb8a4, 0x01}, + {0xb8a5, 0x01}, + {0xb8a6, 0x01}, + {0xb8a7, 0x01}, + {0xb8a8, 0x01}, + {0xb8a9, 0x01}, + {0xb8aa, 0x01}, + {0xb8ab, 0x01}, + {0xb8ac, 0x01}, + {0xb8ad, 0x01}, + {0xb8ae, 0x01}, + {0xb8af, 0x01}, + {0xb8b0, 0x01}, + {0xb8b1, 0x01}, + {0xb8b2, 0x01}, + {0xb8b3, 0x01}, + {0xb8b4, 0x01}, + {0xb8b5, 0x01}, + {0xb8b6, 0x01}, + {0xb8b7, 0x01}, + {0xb8b8, 0x01}, + {0xb8b9, 0x01}, + {0xb8ba, 0x01}, + {0xb8bb, 0x01}, + {0xb8bc, 0x01}, + {0xb8bd, 0x01}, + {0xb8be, 0x01}, + {0xb8bf, 0x01}, + {0xb8c0, 0x01}, + {0xb8c1, 0x01}, + {0xb8c2, 0x01}, + {0xb8c3, 0x01}, + {0xb8c4, 0x01}, + {0xb8c5, 0x01}, + {0xb8c6, 0x01}, + {0xb8c7, 0x01}, + {0xb8c8, 0x01}, + {0xb8c9, 0x01}, + {0xb8ca, 0x01}, + {0xb8cb, 0x01}, + {0xb8cc, 0x01}, + {0xb8cd, 0x01}, + {0xb8ce, 0x01}, + {0xb8cf, 0x01}, + {0xb8d0, 0x01}, + {0xb8d1, 0x01}, + {0xb8d2, 0x01}, + {0xb8d3, 0x01}, + {0xb8d4, 0x01}, + {0xb8d5, 0x01}, + {0xb8d6, 0x01}, + {0xb8d7, 0x01}, + {0xb8d8, 0x01}, + {0xb8d9, 0x01}, + {0xb8da, 0x01}, + {0xb8db, 0x01}, + {0xb8dc, 0x01}, + {0xb8dd, 0x01}, + {0xb8de, 0x01}, + {0xb8df, 0x01}, + {0xb8e0, 0x01}, + {0xb8e1, 0x01}, + {0xb8e2, 0x01}, + {0xb8e3, 0x01}, + {0xb8e4, 0x01}, + {0xb8e5, 0x01}, + {0xb8e6, 0x01}, + {0xb8e7, 0x01}, + {0xb8e8, 0x01}, + {0xb8e9, 0x01}, + {0xb8ea, 0x01}, + {0xb8eb, 0x01}, + {0xb8ec, 0x01}, + {0xb8ed, 0x01}, + {0xb8ee, 0x01}, + {0xb8ef, 0x01}, + {0xb8f0, 0x01}, + {0xb8f1, 0x01}, + {0xb8f2, 0x01}, + {0xb8f3, 0x01}, + {0xb8f4, 0x01}, + {0xb8f5, 0x01}, + {0xb8f6, 0x01}, + {0xb8f7, 0x01}, + {0xb8f8, 0x01}, + {0xb8f9, 0x01}, + {0xb8fa, 0x01}, + {0xb8fb, 0x01}, + {0xb8fc, 0x01}, + {0xb8fd, 0x01}, + {0xb8fe, 0x01}, + {0xb940, 0x01}, + {0xb941, 0x01}, + {0xb942, 0x01}, + {0xb943, 0x01}, + {0xb944, 0x01}, + {0xb945, 0x01}, + {0xb946, 0x01}, + {0xb947, 0x01}, + {0xb948, 0x01}, + {0xb949, 0x01}, + {0xb94a, 0x01}, + {0xb94b, 0x01}, + {0xb94c, 0x01}, + {0xb94d, 0x01}, + {0xb94e, 0x01}, + {0xb94f, 0x01}, + {0xb950, 0x01}, + {0xb951, 0x01}, + {0xb952, 0x01}, + {0xb953, 0x01}, + {0xb954, 0x01}, + {0xb955, 0x01}, + {0xb956, 0x01}, + {0xb957, 0x01}, + {0xb958, 0x01}, + {0xb959, 0x01}, + {0xb95a, 0x01}, + {0xb95b, 0x01}, + {0xb95c, 0x01}, + {0xb95d, 0x01}, + {0xb95e, 0x01}, + {0xb95f, 0x01}, + {0xb960, 0x01}, + {0xb961, 0x01}, + {0xb962, 0x01}, + {0xb963, 0x01}, + {0xb964, 0x01}, + {0xb965, 0x01}, + {0xb966, 0x01}, + {0xb967, 0x01}, + {0xb968, 0x01}, + {0xb969, 0x01}, + {0xb96a, 0x01}, + {0xb96b, 0x01}, + {0xb96c, 0x01}, + {0xb96d, 0x01}, + {0xb96e, 0x01}, + {0xb96f, 0x01}, + {0xb970, 0x01}, + {0xb971, 0x01}, + {0xb972, 0x01}, + {0xb973, 0x01}, + {0xb974, 0x01}, + {0xb975, 0x01}, + {0xb976, 0x01}, + {0xb977, 0x01}, + {0xb978, 0x01}, + {0xb979, 0x01}, + {0xb97a, 0x01}, + {0xb97b, 0x01}, + {0xb97c, 0x01}, + {0xb97d, 0x01}, + {0xb97e, 0x01}, + {0xb980, 0x01}, + {0xb981, 0x01}, + {0xb982, 0x01}, + {0xb983, 0x01}, + {0xb984, 0x01}, + {0xb985, 0x01}, + {0xb986, 0x01}, + {0xb987, 0x01}, + {0xb988, 0x01}, + {0xb989, 0x01}, + {0xb98a, 0x01}, + {0xb98b, 0x01}, + {0xb98c, 0x01}, + {0xb98d, 0x01}, + {0xb98e, 0x01}, + {0xb98f, 0x01}, + {0xb990, 0x01}, + {0xb991, 0x01}, + {0xb992, 0x01}, + {0xb993, 0x01}, + {0xb994, 0x01}, + {0xb995, 0x01}, + {0xb996, 0x01}, + {0xb997, 0x01}, + {0xb998, 0x01}, + {0xb999, 0x01}, + {0xb99a, 0x01}, + {0xb99b, 0x01}, + {0xb99c, 0x01}, + {0xb99d, 0x01}, + {0xb99e, 0x01}, + {0xb99f, 0x01}, + {0xb9a0, 0x01}, + {0xb9a1, 0x01}, + {0xb9a2, 0x01}, + {0xb9a3, 0x01}, + {0xb9a4, 0x01}, + {0xb9a5, 0x01}, + {0xb9a6, 0x01}, + {0xb9a7, 0x01}, + {0xb9a8, 0x01}, + {0xb9a9, 0x01}, + {0xb9aa, 0x01}, + {0xb9ab, 0x01}, + {0xb9ac, 0x01}, + {0xb9ad, 0x01}, + {0xb9ae, 0x01}, + {0xb9af, 0x01}, + {0xb9b0, 0x01}, + {0xb9b1, 0x01}, + {0xb9b2, 0x01}, + {0xb9b3, 0x01}, + {0xb9b4, 0x01}, + {0xb9b5, 0x01}, + {0xb9b6, 0x01}, + {0xb9b7, 0x01}, + {0xb9b8, 0x01}, + {0xb9b9, 0x01}, + {0xb9ba, 0x01}, + {0xb9bb, 0x01}, + {0xb9bc, 0x01}, + {0xb9bd, 0x01}, + {0xb9be, 0x01}, + {0xb9bf, 0x01}, + {0xb9c0, 0x01}, + {0xb9c1, 0x01}, + {0xb9c2, 0x01}, + {0xb9c3, 0x01}, + {0xb9c4, 0x01}, + {0xb9c5, 0x01}, + {0xb9c6, 0x01}, + {0xb9c7, 0x01}, + {0xb9c8, 0x01}, + {0xb9c9, 0x01}, + {0xb9ca, 0x01}, + {0xb9cb, 0x01}, + {0xb9cc, 0x01}, + {0xb9cd, 0x01}, + {0xb9ce, 0x01}, + {0xb9cf, 0x01}, + {0xb9d0, 0x01}, + {0xb9d1, 0x01}, + {0xb9d2, 0x01}, + {0xb9d3, 0x01}, + {0xb9d4, 0x01}, + {0xb9d5, 0x01}, + {0xb9d6, 0x01}, + {0xb9d7, 0x01}, + {0xb9d8, 0x01}, + {0xb9d9, 0x01}, + {0xb9da, 0x01}, + {0xb9db, 0x01}, + {0xb9dc, 0x01}, + {0xb9dd, 0x01}, + {0xb9de, 0x01}, + {0xb9df, 0x01}, + {0xb9e0, 0x01}, + {0xb9e1, 0x01}, + {0xb9e2, 0x01}, + {0xb9e3, 0x01}, + {0xb9e4, 0x01}, + {0xb9e5, 0x01}, + {0xb9e6, 0x01}, + {0xb9e7, 0x01}, + {0xb9e8, 0x01}, + {0xb9e9, 0x01}, + {0xb9ea, 0x01}, + {0xb9eb, 0x01}, + {0xb9ec, 0x01}, + {0xb9ed, 0x01}, + {0xb9ee, 0x01}, + {0xb9ef, 0x01}, + {0xb9f0, 0x01}, + {0xb9f1, 0x01}, + {0xb9f2, 0x01}, + {0xb9f3, 0x01}, + {0xb9f4, 0x01}, + {0xb9f5, 0x01}, + {0xb9f6, 0x01}, + {0xb9f7, 0x01}, + {0xb9f8, 0x01}, + {0xb9f9, 0x01}, + {0xb9fa, 0x01}, + {0xb9fb, 0x01}, + {0xb9fc, 0x01}, + {0xb9fd, 0x01}, + {0xb9fe, 0x01}, + {0xba40, 0x01}, + {0xba41, 0x01}, + {0xba42, 0x01}, + {0xba43, 0x01}, + {0xba44, 0x01}, + {0xba45, 0x01}, + {0xba46, 0x01}, + {0xba47, 0x01}, + {0xba48, 0x01}, + {0xba49, 0x01}, + {0xba4a, 0x01}, + {0xba4b, 0x01}, + {0xba4c, 0x01}, + {0xba4d, 0x01}, + {0xba4e, 0x01}, + {0xba4f, 0x01}, + {0xba50, 0x01}, + {0xba51, 0x01}, + {0xba52, 0x01}, + {0xba53, 0x01}, + {0xba54, 0x01}, + {0xba55, 0x01}, + {0xba56, 0x01}, + {0xba57, 0x01}, + {0xba58, 0x01}, + {0xba59, 0x01}, + {0xba5a, 0x01}, + {0xba5b, 0x01}, + {0xba5c, 0x01}, + {0xba5d, 0x01}, + {0xba5e, 0x01}, + {0xba5f, 0x01}, + {0xba60, 0x01}, + {0xba61, 0x01}, + {0xba62, 0x01}, + {0xba63, 0x01}, + {0xba64, 0x01}, + {0xba65, 0x01}, + {0xba66, 0x01}, + {0xba67, 0x01}, + {0xba68, 0x01}, + {0xba69, 0x01}, + {0xba6a, 0x01}, + {0xba6b, 0x01}, + {0xba6c, 0x01}, + {0xba6d, 0x01}, + {0xba6e, 0x01}, + {0xba6f, 0x01}, + {0xba70, 0x01}, + {0xba71, 0x01}, + {0xba72, 0x01}, + {0xba73, 0x01}, + {0xba74, 0x01}, + {0xba75, 0x01}, + {0xba76, 0x01}, + {0xba77, 0x01}, + {0xba78, 0x01}, + {0xba79, 0x01}, + {0xba7a, 0x01}, + {0xba7b, 0x01}, + {0xba7c, 0x01}, + {0xba7d, 0x01}, + {0xba7e, 0x01}, + {0xba80, 0x01}, + {0xba81, 0x01}, + {0xba82, 0x01}, + {0xba83, 0x01}, + {0xba84, 0x01}, + {0xba85, 0x01}, + {0xba86, 0x01}, + {0xba87, 0x01}, + {0xba88, 0x01}, + {0xba89, 0x01}, + {0xba8a, 0x01}, + {0xba8b, 0x01}, + {0xba8c, 0x01}, + {0xba8d, 0x01}, + {0xba8e, 0x01}, + {0xba8f, 0x01}, + {0xba90, 0x01}, + {0xba91, 0x01}, + {0xba92, 0x01}, + {0xba93, 0x01}, + {0xba94, 0x01}, + {0xba95, 0x01}, + {0xba96, 0x01}, + {0xba97, 0x01}, + {0xba98, 0x01}, + {0xba99, 0x01}, + {0xba9a, 0x01}, + {0xba9b, 0x01}, + {0xba9c, 0x01}, + {0xba9d, 0x01}, + {0xba9e, 0x01}, + {0xba9f, 0x01}, + {0xbaa0, 0x01}, + {0xbaa1, 0x01}, + {0xbaa2, 0x01}, + {0xbaa3, 0x01}, + {0xbaa4, 0x01}, + {0xbaa5, 0x01}, + {0xbaa6, 0x01}, + {0xbaa7, 0x01}, + {0xbaa8, 0x01}, + {0xbaa9, 0x01}, + {0xbaaa, 0x01}, + {0xbaab, 0x01}, + {0xbaac, 0x01}, + {0xbaad, 0x01}, + {0xbaae, 0x01}, + {0xbaaf, 0x01}, + {0xbab0, 0x01}, + {0xbab1, 0x01}, + {0xbab2, 0x01}, + {0xbab3, 0x01}, + {0xbab4, 0x01}, + {0xbab5, 0x01}, + {0xbab6, 0x01}, + {0xbab7, 0x01}, + {0xbab8, 0x01}, + {0xbab9, 0x01}, + {0xbaba, 0x01}, + {0xbabb, 0x01}, + {0xbabc, 0x01}, + {0xbabd, 0x01}, + {0xbabe, 0x01}, + {0xbabf, 0x01}, + {0xbac0, 0x01}, + {0xbac1, 0x01}, + {0xbac2, 0x01}, + {0xbac3, 0x01}, + {0xbac4, 0x01}, + {0xbac5, 0x01}, + {0xbac6, 0x01}, + {0xbac7, 0x01}, + {0xbac8, 0x01}, + {0xbac9, 0x01}, + {0xbaca, 0x01}, + {0xbacb, 0x01}, + {0xbacc, 0x01}, + {0xbacd, 0x01}, + {0xbace, 0x01}, + {0xbacf, 0x01}, + {0xbad0, 0x01}, + {0xbad1, 0x01}, + {0xbad2, 0x01}, + {0xbad3, 0x01}, + {0xbad4, 0x01}, + {0xbad5, 0x01}, + {0xbad6, 0x01}, + {0xbad7, 0x01}, + {0xbad8, 0x01}, + {0xbad9, 0x01}, + {0xbada, 0x01}, + {0xbadb, 0x01}, + {0xbadc, 0x01}, + {0xbadd, 0x01}, + {0xbade, 0x01}, + {0xbadf, 0x01}, + {0xbae0, 0x01}, + {0xbae1, 0x01}, + {0xbae2, 0x01}, + {0xbae3, 0x01}, + {0xbae4, 0x01}, + {0xbae5, 0x01}, + {0xbae6, 0x01}, + {0xbae7, 0x01}, + {0xbae8, 0x01}, + {0xbae9, 0x01}, + {0xbaea, 0x01}, + {0xbaeb, 0x01}, + {0xbaec, 0x01}, + {0xbaed, 0x01}, + {0xbaee, 0x01}, + {0xbaef, 0x01}, + {0xbaf0, 0x01}, + {0xbaf1, 0x01}, + {0xbaf2, 0x01}, + {0xbaf3, 0x01}, + {0xbaf4, 0x01}, + {0xbaf5, 0x01}, + {0xbaf6, 0x01}, + {0xbaf7, 0x01}, + {0xbaf8, 0x01}, + {0xbaf9, 0x01}, + {0xbafa, 0x01}, + {0xbafb, 0x01}, + {0xbafc, 0x01}, + {0xbafd, 0x01}, + {0xbafe, 0x01}, + {0xbb40, 0x01}, + {0xbb41, 0x01}, + {0xbb42, 0x01}, + {0xbb43, 0x01}, + {0xbb44, 0x01}, + {0xbb45, 0x01}, + {0xbb46, 0x01}, + {0xbb47, 0x01}, + {0xbb48, 0x01}, + {0xbb49, 0x01}, + {0xbb4a, 0x01}, + {0xbb4b, 0x01}, + {0xbb4c, 0x01}, + {0xbb4d, 0x01}, + {0xbb4e, 0x01}, + {0xbb4f, 0x01}, + {0xbb50, 0x01}, + {0xbb51, 0x01}, + {0xbb52, 0x01}, + {0xbb53, 0x01}, + {0xbb54, 0x01}, + {0xbb55, 0x01}, + {0xbb56, 0x01}, + {0xbb57, 0x01}, + {0xbb58, 0x01}, + {0xbb59, 0x01}, + {0xbb5a, 0x01}, + {0xbb5b, 0x01}, + {0xbb5c, 0x01}, + {0xbb5d, 0x01}, + {0xbb5e, 0x01}, + {0xbb5f, 0x01}, + {0xbb60, 0x01}, + {0xbb61, 0x01}, + {0xbb62, 0x01}, + {0xbb63, 0x01}, + {0xbb64, 0x01}, + {0xbb65, 0x01}, + {0xbb66, 0x01}, + {0xbb67, 0x01}, + {0xbb68, 0x01}, + {0xbb69, 0x01}, + {0xbb6a, 0x01}, + {0xbb6b, 0x01}, + {0xbb6c, 0x01}, + {0xbb6d, 0x01}, + {0xbb6e, 0x01}, + {0xbb6f, 0x01}, + {0xbb70, 0x01}, + {0xbb71, 0x01}, + {0xbb72, 0x01}, + {0xbb73, 0x01}, + {0xbb74, 0x01}, + {0xbb75, 0x01}, + {0xbb76, 0x01}, + {0xbb77, 0x01}, + {0xbb78, 0x01}, + {0xbb79, 0x01}, + {0xbb7a, 0x01}, + {0xbb7b, 0x01}, + {0xbb7c, 0x01}, + {0xbb7d, 0x01}, + {0xbb7e, 0x01}, + {0xbb80, 0x01}, + {0xbb81, 0x01}, + {0xbb82, 0x01}, + {0xbb83, 0x01}, + {0xbb84, 0x01}, + {0xbb85, 0x01}, + {0xbb86, 0x01}, + {0xbb87, 0x01}, + {0xbb88, 0x01}, + {0xbb89, 0x01}, + {0xbb8a, 0x01}, + {0xbb8b, 0x01}, + {0xbb8c, 0x01}, + {0xbb8d, 0x01}, + {0xbb8e, 0x01}, + {0xbb8f, 0x01}, + {0xbb90, 0x01}, + {0xbb91, 0x01}, + {0xbb92, 0x01}, + {0xbb93, 0x01}, + {0xbb94, 0x01}, + {0xbb95, 0x01}, + {0xbb96, 0x01}, + {0xbb97, 0x01}, + {0xbb98, 0x01}, + {0xbb99, 0x01}, + {0xbb9a, 0x01}, + {0xbb9b, 0x01}, + {0xbb9c, 0x01}, + {0xbb9d, 0x01}, + {0xbb9e, 0x01}, + {0xbb9f, 0x01}, + {0xbba0, 0x01}, + {0xbba1, 0x01}, + {0xbba2, 0x01}, + {0xbba3, 0x01}, + {0xbba4, 0x01}, + {0xbba5, 0x01}, + {0xbba6, 0x01}, + {0xbba7, 0x01}, + {0xbba8, 0x01}, + {0xbba9, 0x01}, + {0xbbaa, 0x01}, + {0xbbab, 0x01}, + {0xbbac, 0x01}, + {0xbbad, 0x01}, + {0xbbae, 0x01}, + {0xbbaf, 0x01}, + {0xbbb0, 0x01}, + {0xbbb1, 0x01}, + {0xbbb2, 0x01}, + {0xbbb3, 0x01}, + {0xbbb4, 0x01}, + {0xbbb5, 0x01}, + {0xbbb6, 0x01}, + {0xbbb7, 0x01}, + {0xbbb8, 0x01}, + {0xbbb9, 0x01}, + {0xbbba, 0x01}, + {0xbbbb, 0x01}, + {0xbbbc, 0x01}, + {0xbbbd, 0x01}, + {0xbbbe, 0x01}, + {0xbbbf, 0x01}, + {0xbbc0, 0x01}, + {0xbbc1, 0x01}, + {0xbbc2, 0x01}, + {0xbbc3, 0x01}, + {0xbbc4, 0x01}, + {0xbbc5, 0x01}, + {0xbbc6, 0x01}, + {0xbbc7, 0x01}, + {0xbbc8, 0x01}, + {0xbbc9, 0x01}, + {0xbbca, 0x01}, + {0xbbcb, 0x01}, + {0xbbcc, 0x01}, + {0xbbcd, 0x01}, + {0xbbce, 0x01}, + {0xbbcf, 0x01}, + {0xbbd0, 0x01}, + {0xbbd1, 0x01}, + {0xbbd2, 0x01}, + {0xbbd3, 0x01}, + {0xbbd4, 0x01}, + {0xbbd5, 0x01}, + {0xbbd6, 0x01}, + {0xbbd7, 0x01}, + {0xbbd8, 0x01}, + {0xbbd9, 0x01}, + {0xbbda, 0x01}, + {0xbbdb, 0x01}, + {0xbbdc, 0x01}, + {0xbbdd, 0x01}, + {0xbbde, 0x01}, + {0xbbdf, 0x01}, + {0xbbe0, 0x01}, + {0xbbe1, 0x01}, + {0xbbe2, 0x01}, + {0xbbe3, 0x01}, + {0xbbe4, 0x01}, + {0xbbe5, 0x01}, + {0xbbe6, 0x01}, + {0xbbe7, 0x01}, + {0xbbe8, 0x01}, + {0xbbe9, 0x01}, + {0xbbea, 0x01}, + {0xbbeb, 0x01}, + {0xbbec, 0x01}, + {0xbbed, 0x01}, + {0xbbee, 0x01}, + {0xbbef, 0x01}, + {0xbbf0, 0x01}, + {0xbbf1, 0x01}, + {0xbbf2, 0x01}, + {0xbbf3, 0x01}, + {0xbbf4, 0x01}, + {0xbbf5, 0x01}, + {0xbbf6, 0x01}, + {0xbbf7, 0x01}, + {0xbbf8, 0x01}, + {0xbbf9, 0x01}, + {0xbbfa, 0x01}, + {0xbbfb, 0x01}, + {0xbbfc, 0x01}, + {0xbbfd, 0x01}, + {0xbbfe, 0x01}, + {0xbc40, 0x01}, + {0xbc41, 0x01}, + {0xbc42, 0x01}, + {0xbc43, 0x01}, + {0xbc44, 0x01}, + {0xbc45, 0x01}, + {0xbc46, 0x01}, + {0xbc47, 0x01}, + {0xbc48, 0x01}, + {0xbc49, 0x01}, + {0xbc4a, 0x01}, + {0xbc4b, 0x01}, + {0xbc4c, 0x01}, + {0xbc4d, 0x01}, + {0xbc4e, 0x01}, + {0xbc4f, 0x01}, + {0xbc50, 0x01}, + {0xbc51, 0x01}, + {0xbc52, 0x01}, + {0xbc53, 0x01}, + {0xbc54, 0x01}, + {0xbc55, 0x01}, + {0xbc56, 0x01}, + {0xbc57, 0x01}, + {0xbc58, 0x01}, + {0xbc59, 0x01}, + {0xbc5a, 0x01}, + {0xbc5b, 0x01}, + {0xbc5c, 0x01}, + {0xbc5d, 0x01}, + {0xbc5e, 0x01}, + {0xbc5f, 0x01}, + {0xbc60, 0x01}, + {0xbc61, 0x01}, + {0xbc62, 0x01}, + {0xbc63, 0x01}, + {0xbc64, 0x01}, + {0xbc65, 0x01}, + {0xbc66, 0x01}, + {0xbc67, 0x01}, + {0xbc68, 0x01}, + {0xbc69, 0x01}, + {0xbc6a, 0x01}, + {0xbc6b, 0x01}, + {0xbc6c, 0x01}, + {0xbc6d, 0x01}, + {0xbc6e, 0x01}, + {0xbc6f, 0x01}, + {0xbc70, 0x01}, + {0xbc71, 0x01}, + {0xbc72, 0x01}, + {0xbc73, 0x01}, + {0xbc74, 0x01}, + {0xbc75, 0x01}, + {0xbc76, 0x01}, + {0xbc77, 0x01}, + {0xbc78, 0x01}, + {0xbc79, 0x01}, + {0xbc7a, 0x01}, + {0xbc7b, 0x01}, + {0xbc7c, 0x01}, + {0xbc7d, 0x01}, + {0xbc7e, 0x01}, + {0xbc80, 0x01}, + {0xbc81, 0x01}, + {0xbc82, 0x01}, + {0xbc83, 0x01}, + {0xbc84, 0x01}, + {0xbc85, 0x01}, + {0xbc86, 0x01}, + {0xbc87, 0x01}, + {0xbc88, 0x01}, + {0xbc89, 0x01}, + {0xbc8a, 0x01}, + {0xbc8b, 0x01}, + {0xbc8c, 0x01}, + {0xbc8d, 0x01}, + {0xbc8e, 0x01}, + {0xbc8f, 0x01}, + {0xbc90, 0x01}, + {0xbc91, 0x01}, + {0xbc92, 0x01}, + {0xbc93, 0x01}, + {0xbc94, 0x01}, + {0xbc95, 0x01}, + {0xbc96, 0x01}, + {0xbc97, 0x01}, + {0xbc98, 0x01}, + {0xbc99, 0x01}, + {0xbc9a, 0x01}, + {0xbc9b, 0x01}, + {0xbc9c, 0x01}, + {0xbc9d, 0x01}, + {0xbc9e, 0x01}, + {0xbc9f, 0x01}, + {0xbca0, 0x01}, + {0xbca1, 0x01}, + {0xbca2, 0x01}, + {0xbca3, 0x01}, + {0xbca4, 0x01}, + {0xbca5, 0x01}, + {0xbca6, 0x01}, + {0xbca7, 0x01}, + {0xbca8, 0x01}, + {0xbca9, 0x01}, + {0xbcaa, 0x01}, + {0xbcab, 0x01}, + {0xbcac, 0x01}, + {0xbcad, 0x01}, + {0xbcae, 0x01}, + {0xbcaf, 0x01}, + {0xbcb0, 0x01}, + {0xbcb1, 0x01}, + {0xbcb2, 0x01}, + {0xbcb3, 0x01}, + {0xbcb4, 0x01}, + {0xbcb5, 0x01}, + {0xbcb6, 0x01}, + {0xbcb7, 0x01}, + {0xbcb8, 0x01}, + {0xbcb9, 0x01}, + {0xbcba, 0x01}, + {0xbcbb, 0x01}, + {0xbcbc, 0x01}, + {0xbcbd, 0x01}, + {0xbcbe, 0x01}, + {0xbcbf, 0x01}, + {0xbcc0, 0x01}, + {0xbcc1, 0x01}, + {0xbcc2, 0x01}, + {0xbcc3, 0x01}, + {0xbcc4, 0x01}, + {0xbcc5, 0x01}, + {0xbcc6, 0x01}, + {0xbcc7, 0x01}, + {0xbcc8, 0x01}, + {0xbcc9, 0x01}, + {0xbcca, 0x01}, + {0xbccb, 0x01}, + {0xbccc, 0x01}, + {0xbccd, 0x01}, + {0xbcce, 0x01}, + {0xbccf, 0x01}, + {0xbcd0, 0x01}, + {0xbcd1, 0x01}, + {0xbcd2, 0x01}, + {0xbcd3, 0x01}, + {0xbcd4, 0x01}, + {0xbcd5, 0x01}, + {0xbcd6, 0x01}, + {0xbcd7, 0x01}, + {0xbcd8, 0x01}, + {0xbcd9, 0x01}, + {0xbcda, 0x01}, + {0xbcdb, 0x01}, + {0xbcdc, 0x01}, + {0xbcdd, 0x01}, + {0xbcde, 0x01}, + {0xbcdf, 0x01}, + {0xbce0, 0x01}, + {0xbce1, 0x01}, + {0xbce2, 0x01}, + {0xbce3, 0x01}, + {0xbce4, 0x01}, + {0xbce5, 0x01}, + {0xbce6, 0x01}, + {0xbce7, 0x01}, + {0xbce8, 0x01}, + {0xbce9, 0x01}, + {0xbcea, 0x01}, + {0xbceb, 0x01}, + {0xbcec, 0x01}, + {0xbced, 0x01}, + {0xbcee, 0x01}, + {0xbcef, 0x01}, + {0xbcf0, 0x01}, + {0xbcf1, 0x01}, + {0xbcf2, 0x01}, + {0xbcf3, 0x01}, + {0xbcf4, 0x01}, + {0xbcf5, 0x01}, + {0xbcf6, 0x01}, + {0xbcf7, 0x01}, + {0xbcf8, 0x01}, + {0xbcf9, 0x01}, + {0xbcfa, 0x01}, + {0xbcfb, 0x01}, + {0xbcfc, 0x01}, + {0xbcfd, 0x01}, + {0xbcfe, 0x01}, + {0xbd40, 0x01}, + {0xbd41, 0x01}, + {0xbd42, 0x01}, + {0xbd43, 0x01}, + {0xbd44, 0x01}, + {0xbd45, 0x01}, + {0xbd46, 0x01}, + {0xbd47, 0x01}, + {0xbd48, 0x01}, + {0xbd49, 0x01}, + {0xbd4a, 0x01}, + {0xbd4b, 0x01}, + {0xbd4c, 0x01}, + {0xbd4d, 0x01}, + {0xbd4e, 0x01}, + {0xbd4f, 0x01}, + {0xbd50, 0x01}, + {0xbd51, 0x01}, + {0xbd52, 0x01}, + {0xbd53, 0x01}, + {0xbd54, 0x01}, + {0xbd55, 0x01}, + {0xbd56, 0x01}, + {0xbd57, 0x01}, + {0xbd58, 0x01}, + {0xbd59, 0x01}, + {0xbd5a, 0x01}, + {0xbd5b, 0x01}, + {0xbd5c, 0x01}, + {0xbd5d, 0x01}, + {0xbd5e, 0x01}, + {0xbd5f, 0x01}, + {0xbd60, 0x01}, + {0xbd61, 0x01}, + {0xbd62, 0x01}, + {0xbd63, 0x01}, + {0xbd64, 0x01}, + {0xbd65, 0x01}, + {0xbd66, 0x01}, + {0xbd67, 0x01}, + {0xbd68, 0x01}, + {0xbd69, 0x01}, + {0xbd6a, 0x01}, + {0xbd6b, 0x01}, + {0xbd6c, 0x01}, + {0xbd6d, 0x01}, + {0xbd6e, 0x01}, + {0xbd6f, 0x01}, + {0xbd70, 0x01}, + {0xbd71, 0x01}, + {0xbd72, 0x01}, + {0xbd73, 0x01}, + {0xbd74, 0x01}, + {0xbd75, 0x01}, + {0xbd76, 0x01}, + {0xbd77, 0x01}, + {0xbd78, 0x01}, + {0xbd79, 0x01}, + {0xbd7a, 0x01}, + {0xbd7b, 0x01}, + {0xbd7c, 0x01}, + {0xbd7d, 0x01}, + {0xbd7e, 0x01}, + {0xbd80, 0x01}, + {0xbd81, 0x01}, + {0xbd82, 0x01}, + {0xbd83, 0x01}, + {0xbd84, 0x01}, + {0xbd85, 0x01}, + {0xbd86, 0x01}, + {0xbd87, 0x01}, + {0xbd88, 0x01}, + {0xbd89, 0x01}, + {0xbd8a, 0x01}, + {0xbd8b, 0x01}, + {0xbd8c, 0x01}, + {0xbd8d, 0x01}, + {0xbd8e, 0x01}, + {0xbd8f, 0x01}, + {0xbd90, 0x01}, + {0xbd91, 0x01}, + {0xbd92, 0x01}, + {0xbd93, 0x01}, + {0xbd94, 0x01}, + {0xbd95, 0x01}, + {0xbd96, 0x01}, + {0xbd97, 0x01}, + {0xbd98, 0x01}, + {0xbd99, 0x01}, + {0xbd9a, 0x01}, + {0xbd9b, 0x01}, + {0xbd9c, 0x01}, + {0xbd9d, 0x01}, + {0xbd9e, 0x01}, + {0xbd9f, 0x01}, + {0xbda0, 0x01}, + {0xbda1, 0x01}, + {0xbda2, 0x01}, + {0xbda3, 0x01}, + {0xbda4, 0x01}, + {0xbda5, 0x01}, + {0xbda6, 0x01}, + {0xbda7, 0x01}, + {0xbda8, 0x01}, + {0xbda9, 0x01}, + {0xbdaa, 0x01}, + {0xbdab, 0x01}, + {0xbdac, 0x01}, + {0xbdad, 0x01}, + {0xbdae, 0x01}, + {0xbdaf, 0x01}, + {0xbdb0, 0x01}, + {0xbdb1, 0x01}, + {0xbdb2, 0x01}, + {0xbdb3, 0x01}, + {0xbdb4, 0x01}, + {0xbdb5, 0x01}, + {0xbdb6, 0x01}, + {0xbdb7, 0x01}, + {0xbdb8, 0x01}, + {0xbdb9, 0x01}, + {0xbdba, 0x01}, + {0xbdbb, 0x01}, + {0xbdbc, 0x01}, + {0xbdbd, 0x01}, + {0xbdbe, 0x01}, + {0xbdbf, 0x01}, + {0xbdc0, 0x01}, + {0xbdc1, 0x01}, + {0xbdc2, 0x01}, + {0xbdc3, 0x01}, + {0xbdc4, 0x01}, + {0xbdc5, 0x01}, + {0xbdc6, 0x01}, + {0xbdc7, 0x01}, + {0xbdc8, 0x01}, + {0xbdc9, 0x01}, + {0xbdca, 0x01}, + {0xbdcb, 0x01}, + {0xbdcc, 0x01}, + {0xbdcd, 0x01}, + {0xbdce, 0x01}, + {0xbdcf, 0x01}, + {0xbdd0, 0x01}, + {0xbdd1, 0x01}, + {0xbdd2, 0x01}, + {0xbdd3, 0x01}, + {0xbdd4, 0x01}, + {0xbdd5, 0x01}, + {0xbdd6, 0x01}, + {0xbdd7, 0x01}, + {0xbdd8, 0x01}, + {0xbdd9, 0x01}, + {0xbdda, 0x01}, + {0xbddb, 0x01}, + {0xbddc, 0x01}, + {0xbddd, 0x01}, + {0xbdde, 0x01}, + {0xbddf, 0x01}, + {0xbde0, 0x01}, + {0xbde1, 0x01}, + {0xbde2, 0x01}, + {0xbde3, 0x01}, + {0xbde4, 0x01}, + {0xbde5, 0x01}, + {0xbde6, 0x01}, + {0xbde7, 0x01}, + {0xbde8, 0x01}, + {0xbde9, 0x01}, + {0xbdea, 0x01}, + {0xbdeb, 0x01}, + {0xbdec, 0x01}, + {0xbded, 0x01}, + {0xbdee, 0x01}, + {0xbdef, 0x01}, + {0xbdf0, 0x01}, + {0xbdf1, 0x01}, + {0xbdf2, 0x01}, + {0xbdf3, 0x01}, + {0xbdf4, 0x01}, + {0xbdf5, 0x01}, + {0xbdf6, 0x01}, + {0xbdf7, 0x01}, + {0xbdf8, 0x01}, + {0xbdf9, 0x01}, + {0xbdfa, 0x01}, + {0xbdfb, 0x01}, + {0xbdfc, 0x01}, + {0xbdfd, 0x01}, + {0xbdfe, 0x01}, + {0xbe40, 0x01}, + {0xbe41, 0x01}, + {0xbe42, 0x01}, + {0xbe43, 0x01}, + {0xbe44, 0x01}, + {0xbe45, 0x01}, + {0xbe46, 0x01}, + {0xbe47, 0x01}, + {0xbe48, 0x01}, + {0xbe49, 0x01}, + {0xbe4a, 0x01}, + {0xbe4b, 0x01}, + {0xbe4c, 0x01}, + {0xbe4d, 0x01}, + {0xbe4e, 0x01}, + {0xbe4f, 0x01}, + {0xbe50, 0x01}, + {0xbe51, 0x01}, + {0xbe52, 0x01}, + {0xbe53, 0x01}, + {0xbe54, 0x01}, + {0xbe55, 0x01}, + {0xbe56, 0x01}, + {0xbe57, 0x01}, + {0xbe58, 0x01}, + {0xbe59, 0x01}, + {0xbe5a, 0x01}, + {0xbe5b, 0x01}, + {0xbe5c, 0x01}, + {0xbe5d, 0x01}, + {0xbe5e, 0x01}, + {0xbe5f, 0x01}, + {0xbe60, 0x01}, + {0xbe61, 0x01}, + {0xbe62, 0x01}, + {0xbe63, 0x01}, + {0xbe64, 0x01}, + {0xbe65, 0x01}, + {0xbe66, 0x01}, + {0xbe67, 0x01}, + {0xbe68, 0x01}, + {0xbe69, 0x01}, + {0xbe6a, 0x01}, + {0xbe6b, 0x01}, + {0xbe6c, 0x01}, + {0xbe6d, 0x01}, + {0xbe6e, 0x01}, + {0xbe6f, 0x01}, + {0xbe70, 0x01}, + {0xbe71, 0x01}, + {0xbe72, 0x01}, + {0xbe73, 0x01}, + {0xbe74, 0x01}, + {0xbe75, 0x01}, + {0xbe76, 0x01}, + {0xbe77, 0x01}, + {0xbe78, 0x01}, + {0xbe79, 0x01}, + {0xbe7a, 0x01}, + {0xbe7b, 0x01}, + {0xbe7c, 0x01}, + {0xbe7d, 0x01}, + {0xbe7e, 0x01}, + {0xbe80, 0x01}, + {0xbe81, 0x01}, + {0xbe82, 0x01}, + {0xbe83, 0x01}, + {0xbe84, 0x01}, + {0xbe85, 0x01}, + {0xbe86, 0x01}, + {0xbe87, 0x01}, + {0xbe88, 0x01}, + {0xbe89, 0x01}, + {0xbe8a, 0x01}, + {0xbe8b, 0x01}, + {0xbe8c, 0x01}, + {0xbe8d, 0x01}, + {0xbe8e, 0x01}, + {0xbe8f, 0x01}, + {0xbe90, 0x01}, + {0xbe91, 0x01}, + {0xbe92, 0x01}, + {0xbe93, 0x01}, + {0xbe94, 0x01}, + {0xbe95, 0x01}, + {0xbe96, 0x01}, + {0xbe97, 0x01}, + {0xbe98, 0x01}, + {0xbe99, 0x01}, + {0xbe9a, 0x01}, + {0xbe9b, 0x01}, + {0xbe9c, 0x01}, + {0xbe9d, 0x01}, + {0xbe9e, 0x01}, + {0xbe9f, 0x01}, + {0xbea0, 0x01}, + {0xbea1, 0x01}, + {0xbea2, 0x01}, + {0xbea3, 0x01}, + {0xbea4, 0x01}, + {0xbea5, 0x01}, + {0xbea6, 0x01}, + {0xbea7, 0x01}, + {0xbea8, 0x01}, + {0xbea9, 0x01}, + {0xbeaa, 0x01}, + {0xbeab, 0x01}, + {0xbeac, 0x01}, + {0xbead, 0x01}, + {0xbeae, 0x01}, + {0xbeaf, 0x01}, + {0xbeb0, 0x01}, + {0xbeb1, 0x01}, + {0xbeb2, 0x01}, + {0xbeb3, 0x01}, + {0xbeb4, 0x01}, + {0xbeb5, 0x01}, + {0xbeb6, 0x01}, + {0xbeb7, 0x01}, + {0xbeb8, 0x01}, + {0xbeb9, 0x01}, + {0xbeba, 0x01}, + {0xbebb, 0x01}, + {0xbebc, 0x01}, + {0xbebd, 0x01}, + {0xbebe, 0x01}, + {0xbebf, 0x01}, + {0xbec0, 0x01}, + {0xbec1, 0x01}, + {0xbec2, 0x01}, + {0xbec3, 0x01}, + {0xbec4, 0x01}, + {0xbec5, 0x01}, + {0xbec6, 0x01}, + {0xbec7, 0x01}, + {0xbec8, 0x01}, + {0xbec9, 0x01}, + {0xbeca, 0x01}, + {0xbecb, 0x01}, + {0xbecc, 0x01}, + {0xbecd, 0x01}, + {0xbece, 0x01}, + {0xbecf, 0x01}, + {0xbed0, 0x01}, + {0xbed1, 0x01}, + {0xbed2, 0x01}, + {0xbed3, 0x01}, + {0xbed4, 0x01}, + {0xbed5, 0x01}, + {0xbed6, 0x01}, + {0xbed7, 0x01}, + {0xbed8, 0x01}, + {0xbed9, 0x01}, + {0xbeda, 0x01}, + {0xbedb, 0x01}, + {0xbedc, 0x01}, + {0xbedd, 0x01}, + {0xbede, 0x01}, + {0xbedf, 0x01}, + {0xbee0, 0x01}, + {0xbee1, 0x01}, + {0xbee2, 0x01}, + {0xbee3, 0x01}, + {0xbee4, 0x01}, + {0xbee5, 0x01}, + {0xbee6, 0x01}, + {0xbee7, 0x01}, + {0xbee8, 0x01}, + {0xbee9, 0x01}, + {0xbeea, 0x01}, + {0xbeeb, 0x01}, + {0xbeec, 0x01}, + {0xbeed, 0x01}, + {0xbeee, 0x01}, + {0xbeef, 0x01}, + {0xbef0, 0x01}, + {0xbef1, 0x01}, + {0xbef2, 0x01}, + {0xbef3, 0x01}, + {0xbef4, 0x01}, + {0xbef5, 0x01}, + {0xbef6, 0x01}, + {0xbef7, 0x01}, + {0xbef8, 0x01}, + {0xbef9, 0x01}, + {0xbefa, 0x01}, + {0xbefb, 0x01}, + {0xbefc, 0x01}, + {0xbefd, 0x01}, + {0xbefe, 0x01}, + {0xbf40, 0x01}, + {0xbf41, 0x01}, + {0xbf42, 0x01}, + {0xbf43, 0x01}, + {0xbf44, 0x01}, + {0xbf45, 0x01}, + {0xbf46, 0x01}, + {0xbf47, 0x01}, + {0xbf48, 0x01}, + {0xbf49, 0x01}, + {0xbf4a, 0x01}, + {0xbf4b, 0x01}, + {0xbf4c, 0x01}, + {0xbf4d, 0x01}, + {0xbf4e, 0x01}, + {0xbf4f, 0x01}, + {0xbf50, 0x01}, + {0xbf51, 0x01}, + {0xbf52, 0x01}, + {0xbf53, 0x01}, + {0xbf54, 0x01}, + {0xbf55, 0x01}, + {0xbf56, 0x01}, + {0xbf57, 0x01}, + {0xbf58, 0x01}, + {0xbf59, 0x01}, + {0xbf5a, 0x01}, + {0xbf5b, 0x01}, + {0xbf5c, 0x01}, + {0xbf5d, 0x01}, + {0xbf5e, 0x01}, + {0xbf5f, 0x01}, + {0xbf60, 0x01}, + {0xbf61, 0x01}, + {0xbf62, 0x01}, + {0xbf63, 0x01}, + {0xbf64, 0x01}, + {0xbf65, 0x01}, + {0xbf66, 0x01}, + {0xbf67, 0x01}, + {0xbf68, 0x01}, + {0xbf69, 0x01}, + {0xbf6a, 0x01}, + {0xbf6b, 0x01}, + {0xbf6c, 0x01}, + {0xbf6d, 0x01}, + {0xbf6e, 0x01}, + {0xbf6f, 0x01}, + {0xbf70, 0x01}, + {0xbf71, 0x01}, + {0xbf72, 0x01}, + {0xbf73, 0x01}, + {0xbf74, 0x01}, + {0xbf75, 0x01}, + {0xbf76, 0x01}, + {0xbf77, 0x01}, + {0xbf78, 0x01}, + {0xbf79, 0x01}, + {0xbf7a, 0x01}, + {0xbf7b, 0x01}, + {0xbf7c, 0x01}, + {0xbf7d, 0x01}, + {0xbf7e, 0x01}, + {0xbf80, 0x01}, + {0xbf81, 0x01}, + {0xbf82, 0x01}, + {0xbf83, 0x01}, + {0xbf84, 0x01}, + {0xbf85, 0x01}, + {0xbf86, 0x01}, + {0xbf87, 0x01}, + {0xbf88, 0x01}, + {0xbf89, 0x01}, + {0xbf8a, 0x01}, + {0xbf8b, 0x01}, + {0xbf8c, 0x01}, + {0xbf8d, 0x01}, + {0xbf8e, 0x01}, + {0xbf8f, 0x01}, + {0xbf90, 0x01}, + {0xbf91, 0x01}, + {0xbf92, 0x01}, + {0xbf93, 0x01}, + {0xbf94, 0x01}, + {0xbf95, 0x01}, + {0xbf96, 0x01}, + {0xbf97, 0x01}, + {0xbf98, 0x01}, + {0xbf99, 0x01}, + {0xbf9a, 0x01}, + {0xbf9b, 0x01}, + {0xbf9c, 0x01}, + {0xbf9d, 0x01}, + {0xbf9e, 0x01}, + {0xbf9f, 0x01}, + {0xbfa0, 0x01}, + {0xbfa1, 0x01}, + {0xbfa2, 0x01}, + {0xbfa3, 0x01}, + {0xbfa4, 0x01}, + {0xbfa5, 0x01}, + {0xbfa6, 0x01}, + {0xbfa7, 0x01}, + {0xbfa8, 0x01}, + {0xbfa9, 0x01}, + {0xbfaa, 0x01}, + {0xbfab, 0x01}, + {0xbfac, 0x01}, + {0xbfad, 0x01}, + {0xbfae, 0x01}, + {0xbfaf, 0x01}, + {0xbfb0, 0x01}, + {0xbfb1, 0x01}, + {0xbfb2, 0x01}, + {0xbfb3, 0x01}, + {0xbfb4, 0x01}, + {0xbfb5, 0x01}, + {0xbfb6, 0x01}, + {0xbfb7, 0x01}, + {0xbfb8, 0x01}, + {0xbfb9, 0x01}, + {0xbfba, 0x01}, + {0xbfbb, 0x01}, + {0xbfbc, 0x01}, + {0xbfbd, 0x01}, + {0xbfbe, 0x01}, + {0xbfbf, 0x01}, + {0xbfc0, 0x01}, + {0xbfc1, 0x01}, + {0xbfc2, 0x01}, + {0xbfc3, 0x01}, + {0xbfc4, 0x01}, + {0xbfc5, 0x01}, + {0xbfc6, 0x01}, + {0xbfc7, 0x01}, + {0xbfc8, 0x01}, + {0xbfc9, 0x01}, + {0xbfca, 0x01}, + {0xbfcb, 0x01}, + {0xbfcc, 0x01}, + {0xbfcd, 0x01}, + {0xbfce, 0x01}, + {0xbfcf, 0x01}, + {0xbfd0, 0x01}, + {0xbfd1, 0x01}, + {0xbfd2, 0x01}, + {0xbfd3, 0x01}, + {0xbfd4, 0x01}, + {0xbfd5, 0x01}, + {0xbfd6, 0x01}, + {0xbfd7, 0x01}, + {0xbfd8, 0x01}, + {0xbfd9, 0x01}, + {0xbfda, 0x01}, + {0xbfdb, 0x01}, + {0xbfdc, 0x01}, + {0xbfdd, 0x01}, + {0xbfde, 0x01}, + {0xbfdf, 0x01}, + {0xbfe0, 0x01}, + {0xbfe1, 0x01}, + {0xbfe2, 0x01}, + {0xbfe3, 0x01}, + {0xbfe4, 0x01}, + {0xbfe5, 0x01}, + {0xbfe6, 0x01}, + {0xbfe7, 0x01}, + {0xbfe8, 0x01}, + {0xbfe9, 0x01}, + {0xbfea, 0x01}, + {0xbfeb, 0x01}, + {0xbfec, 0x01}, + {0xbfed, 0x01}, + {0xbfee, 0x01}, + {0xbfef, 0x01}, + {0xbff0, 0x01}, + {0xbff1, 0x01}, + {0xbff2, 0x01}, + {0xbff3, 0x01}, + {0xbff4, 0x01}, + {0xbff5, 0x01}, + {0xbff6, 0x01}, + {0xbff7, 0x01}, + {0xbff8, 0x01}, + {0xbff9, 0x01}, + {0xbffa, 0x01}, + {0xbffb, 0x01}, + {0xbffc, 0x01}, + {0xbffd, 0x01}, + {0xbffe, 0x01}, + {0xc040, 0x01}, + {0xc041, 0x01}, + {0xc042, 0x01}, + {0xc043, 0x01}, + {0xc044, 0x01}, + {0xc045, 0x01}, + {0xc046, 0x01}, + {0xc047, 0x01}, + {0xc048, 0x01}, + {0xc049, 0x01}, + {0xc04a, 0x01}, + {0xc04b, 0x01}, + {0xc04c, 0x01}, + {0xc04d, 0x01}, + {0xc04e, 0x01}, + {0xc04f, 0x01}, + {0xc050, 0x01}, + {0xc051, 0x01}, + {0xc052, 0x01}, + {0xc053, 0x01}, + {0xc054, 0x01}, + {0xc055, 0x01}, + {0xc056, 0x01}, + {0xc057, 0x01}, + {0xc058, 0x01}, + {0xc059, 0x01}, + {0xc05a, 0x01}, + {0xc05b, 0x01}, + {0xc05c, 0x01}, + {0xc05d, 0x01}, + {0xc05e, 0x01}, + {0xc05f, 0x01}, + {0xc060, 0x01}, + {0xc061, 0x01}, + {0xc062, 0x01}, + {0xc063, 0x01}, + {0xc064, 0x01}, + {0xc065, 0x01}, + {0xc066, 0x01}, + {0xc067, 0x01}, + {0xc068, 0x01}, + {0xc069, 0x01}, + {0xc06a, 0x01}, + {0xc06b, 0x01}, + {0xc06c, 0x01}, + {0xc06d, 0x01}, + {0xc06e, 0x01}, + {0xc06f, 0x01}, + {0xc070, 0x01}, + {0xc071, 0x01}, + {0xc072, 0x01}, + {0xc073, 0x01}, + {0xc074, 0x01}, + {0xc075, 0x01}, + {0xc076, 0x01}, + {0xc077, 0x01}, + {0xc078, 0x01}, + {0xc079, 0x01}, + {0xc07a, 0x01}, + {0xc07b, 0x01}, + {0xc07c, 0x01}, + {0xc07d, 0x01}, + {0xc07e, 0x01}, + {0xc080, 0x01}, + {0xc081, 0x01}, + {0xc082, 0x01}, + {0xc083, 0x01}, + {0xc084, 0x01}, + {0xc085, 0x01}, + {0xc086, 0x01}, + {0xc087, 0x01}, + {0xc088, 0x01}, + {0xc089, 0x01}, + {0xc08a, 0x01}, + {0xc08b, 0x01}, + {0xc08c, 0x01}, + {0xc08d, 0x01}, + {0xc08e, 0x01}, + {0xc08f, 0x01}, + {0xc090, 0x01}, + {0xc091, 0x01}, + {0xc092, 0x01}, + {0xc093, 0x01}, + {0xc094, 0x01}, + {0xc095, 0x01}, + {0xc096, 0x01}, + {0xc097, 0x01}, + {0xc098, 0x01}, + {0xc099, 0x01}, + {0xc09a, 0x01}, + {0xc09b, 0x01}, + {0xc09c, 0x01}, + {0xc09d, 0x01}, + {0xc09e, 0x01}, + {0xc09f, 0x01}, + {0xc0a0, 0x01}, + {0xc0a1, 0x01}, + {0xc0a2, 0x01}, + {0xc0a3, 0x01}, + {0xc0a4, 0x01}, + {0xc0a5, 0x01}, + {0xc0a6, 0x01}, + {0xc0a7, 0x01}, + {0xc0a8, 0x01}, + {0xc0a9, 0x01}, + {0xc0aa, 0x01}, + {0xc0ab, 0x01}, + {0xc0ac, 0x01}, + {0xc0ad, 0x01}, + {0xc0ae, 0x01}, + {0xc0af, 0x01}, + {0xc0b0, 0x01}, + {0xc0b1, 0x01}, + {0xc0b2, 0x01}, + {0xc0b3, 0x01}, + {0xc0b4, 0x01}, + {0xc0b5, 0x01}, + {0xc0b6, 0x01}, + {0xc0b7, 0x01}, + {0xc0b8, 0x01}, + {0xc0b9, 0x01}, + {0xc0ba, 0x01}, + {0xc0bb, 0x01}, + {0xc0bc, 0x01}, + {0xc0bd, 0x01}, + {0xc0be, 0x01}, + {0xc0bf, 0x01}, + {0xc0c0, 0x01}, + {0xc0c1, 0x01}, + {0xc0c2, 0x01}, + {0xc0c3, 0x01}, + {0xc0c4, 0x01}, + {0xc0c5, 0x01}, + {0xc0c6, 0x01}, + {0xc0c7, 0x01}, + {0xc0c8, 0x01}, + {0xc0c9, 0x01}, + {0xc0ca, 0x01}, + {0xc0cb, 0x01}, + {0xc0cc, 0x01}, + {0xc0cd, 0x01}, + {0xc0ce, 0x01}, + {0xc0cf, 0x01}, + {0xc0d0, 0x01}, + {0xc0d1, 0x01}, + {0xc0d2, 0x01}, + {0xc0d3, 0x01}, + {0xc0d4, 0x01}, + {0xc0d5, 0x01}, + {0xc0d6, 0x01}, + {0xc0d7, 0x01}, + {0xc0d8, 0x01}, + {0xc0d9, 0x01}, + {0xc0da, 0x01}, + {0xc0db, 0x01}, + {0xc0dc, 0x01}, + {0xc0dd, 0x01}, + {0xc0de, 0x01}, + {0xc0df, 0x01}, + {0xc0e0, 0x01}, + {0xc0e1, 0x01}, + {0xc0e2, 0x01}, + {0xc0e3, 0x01}, + {0xc0e4, 0x01}, + {0xc0e5, 0x01}, + {0xc0e6, 0x01}, + {0xc0e7, 0x01}, + {0xc0e8, 0x01}, + {0xc0e9, 0x01}, + {0xc0ea, 0x01}, + {0xc0eb, 0x01}, + {0xc0ec, 0x01}, + {0xc0ed, 0x01}, + {0xc0ee, 0x01}, + {0xc0ef, 0x01}, + {0xc0f0, 0x01}, + {0xc0f1, 0x01}, + {0xc0f2, 0x01}, + {0xc0f3, 0x01}, + {0xc0f4, 0x01}, + {0xc0f5, 0x01}, + {0xc0f6, 0x01}, + {0xc0f7, 0x01}, + {0xc0f8, 0x01}, + {0xc0f9, 0x01}, + {0xc0fa, 0x01}, + {0xc0fb, 0x01}, + {0xc0fc, 0x01}, + {0xc0fd, 0x01}, + {0xc0fe, 0x01}, + {0xc140, 0x01}, + {0xc141, 0x01}, + {0xc142, 0x01}, + {0xc143, 0x01}, + {0xc144, 0x01}, + {0xc145, 0x01}, + {0xc146, 0x01}, + {0xc147, 0x01}, + {0xc148, 0x01}, + {0xc149, 0x01}, + {0xc14a, 0x01}, + {0xc14b, 0x01}, + {0xc14c, 0x01}, + {0xc14d, 0x01}, + {0xc14e, 0x01}, + {0xc14f, 0x01}, + {0xc150, 0x01}, + {0xc151, 0x01}, + {0xc152, 0x01}, + {0xc153, 0x01}, + {0xc154, 0x01}, + {0xc155, 0x01}, + {0xc156, 0x01}, + {0xc157, 0x01}, + {0xc158, 0x01}, + {0xc159, 0x01}, + {0xc15a, 0x01}, + {0xc15b, 0x01}, + {0xc15c, 0x01}, + {0xc15d, 0x01}, + {0xc15e, 0x01}, + {0xc15f, 0x01}, + {0xc160, 0x01}, + {0xc161, 0x01}, + {0xc162, 0x01}, + {0xc163, 0x01}, + {0xc164, 0x01}, + {0xc165, 0x01}, + {0xc166, 0x01}, + {0xc167, 0x01}, + {0xc168, 0x01}, + {0xc169, 0x01}, + {0xc16a, 0x01}, + {0xc16b, 0x01}, + {0xc16c, 0x01}, + {0xc16d, 0x01}, + {0xc16e, 0x01}, + {0xc16f, 0x01}, + {0xc170, 0x01}, + {0xc171, 0x01}, + {0xc172, 0x01}, + {0xc173, 0x01}, + {0xc174, 0x01}, + {0xc175, 0x01}, + {0xc176, 0x01}, + {0xc177, 0x01}, + {0xc178, 0x01}, + {0xc179, 0x01}, + {0xc17a, 0x01}, + {0xc17b, 0x01}, + {0xc17c, 0x01}, + {0xc17d, 0x01}, + {0xc17e, 0x01}, + {0xc180, 0x01}, + {0xc181, 0x01}, + {0xc182, 0x01}, + {0xc183, 0x01}, + {0xc184, 0x01}, + {0xc185, 0x01}, + {0xc186, 0x01}, + {0xc187, 0x01}, + {0xc188, 0x01}, + {0xc189, 0x01}, + {0xc18a, 0x01}, + {0xc18b, 0x01}, + {0xc18c, 0x01}, + {0xc18d, 0x01}, + {0xc18e, 0x01}, + {0xc18f, 0x01}, + {0xc190, 0x01}, + {0xc191, 0x01}, + {0xc192, 0x01}, + {0xc193, 0x01}, + {0xc194, 0x01}, + {0xc195, 0x01}, + {0xc196, 0x01}, + {0xc197, 0x01}, + {0xc198, 0x01}, + {0xc199, 0x01}, + {0xc19a, 0x01}, + {0xc19b, 0x01}, + {0xc19c, 0x01}, + {0xc19d, 0x01}, + {0xc19e, 0x01}, + {0xc19f, 0x01}, + {0xc1a0, 0x01}, + {0xc1a1, 0x01}, + {0xc1a2, 0x01}, + {0xc1a3, 0x01}, + {0xc1a4, 0x01}, + {0xc1a5, 0x01}, + {0xc1a6, 0x01}, + {0xc1a7, 0x01}, + {0xc1a8, 0x01}, + {0xc1a9, 0x01}, + {0xc1aa, 0x01}, + {0xc1ab, 0x01}, + {0xc1ac, 0x01}, + {0xc1ad, 0x01}, + {0xc1ae, 0x01}, + {0xc1af, 0x01}, + {0xc1b0, 0x01}, + {0xc1b1, 0x01}, + {0xc1b2, 0x01}, + {0xc1b3, 0x01}, + {0xc1b4, 0x01}, + {0xc1b5, 0x01}, + {0xc1b6, 0x01}, + {0xc1b7, 0x01}, + {0xc1b8, 0x01}, + {0xc1b9, 0x01}, + {0xc1ba, 0x01}, + {0xc1bb, 0x01}, + {0xc1bc, 0x01}, + {0xc1bd, 0x01}, + {0xc1be, 0x01}, + {0xc1bf, 0x01}, + {0xc1c0, 0x01}, + {0xc1c1, 0x01}, + {0xc1c2, 0x01}, + {0xc1c3, 0x01}, + {0xc1c4, 0x01}, + {0xc1c5, 0x01}, + {0xc1c6, 0x01}, + {0xc1c7, 0x01}, + {0xc1c8, 0x01}, + {0xc1c9, 0x01}, + {0xc1ca, 0x01}, + {0xc1cb, 0x01}, + {0xc1cc, 0x01}, + {0xc1cd, 0x01}, + {0xc1ce, 0x01}, + {0xc1cf, 0x01}, + {0xc1d0, 0x01}, + {0xc1d1, 0x01}, + {0xc1d2, 0x01}, + {0xc1d3, 0x01}, + {0xc1d4, 0x01}, + {0xc1d5, 0x01}, + {0xc1d6, 0x01}, + {0xc1d7, 0x01}, + {0xc1d8, 0x01}, + {0xc1d9, 0x01}, + {0xc1da, 0x01}, + {0xc1db, 0x01}, + {0xc1dc, 0x01}, + {0xc1dd, 0x01}, + {0xc1de, 0x01}, + {0xc1df, 0x01}, + {0xc1e0, 0x01}, + {0xc1e1, 0x01}, + {0xc1e2, 0x01}, + {0xc1e3, 0x01}, + {0xc1e4, 0x01}, + {0xc1e5, 0x01}, + {0xc1e6, 0x01}, + {0xc1e7, 0x01}, + {0xc1e8, 0x01}, + {0xc1e9, 0x01}, + {0xc1ea, 0x01}, + {0xc1eb, 0x01}, + {0xc1ec, 0x01}, + {0xc1ed, 0x01}, + {0xc1ee, 0x01}, + {0xc1ef, 0x01}, + {0xc1f0, 0x01}, + {0xc1f1, 0x01}, + {0xc1f2, 0x01}, + {0xc1f3, 0x01}, + {0xc1f4, 0x01}, + {0xc1f5, 0x01}, + {0xc1f6, 0x01}, + {0xc1f7, 0x01}, + {0xc1f8, 0x01}, + {0xc1f9, 0x01}, + {0xc1fa, 0x01}, + {0xc1fb, 0x01}, + {0xc1fc, 0x01}, + {0xc1fd, 0x01}, + {0xc1fe, 0x01}, + {0xc240, 0x01}, + {0xc241, 0x01}, + {0xc242, 0x01}, + {0xc243, 0x01}, + {0xc244, 0x01}, + {0xc245, 0x01}, + {0xc246, 0x01}, + {0xc247, 0x01}, + {0xc248, 0x01}, + {0xc249, 0x01}, + {0xc24a, 0x01}, + {0xc24b, 0x01}, + {0xc24c, 0x01}, + {0xc24d, 0x01}, + {0xc24e, 0x01}, + {0xc24f, 0x01}, + {0xc250, 0x01}, + {0xc251, 0x01}, + {0xc252, 0x01}, + {0xc254, 0x01}, + {0xc255, 0x01}, + {0xc256, 0x01}, + {0xc257, 0x01}, + {0xc258, 0x01}, + {0xc259, 0x01}, + {0xc25a, 0x01}, + {0xc25b, 0x01}, + {0xc25c, 0x01}, + {0xc25d, 0x01}, + {0xc25e, 0x01}, + {0xc25f, 0x01}, + {0xc260, 0x01}, + {0xc261, 0x01}, + {0xc262, 0x01}, + {0xc263, 0x01}, + {0xc264, 0x01}, + {0xc265, 0x01}, + {0xc266, 0x01}, + {0xc267, 0x01}, + {0xc268, 0x01}, + {0xc269, 0x01}, + {0xc26a, 0x01}, + {0xc26b, 0x01}, + {0xc26c, 0x01}, + {0xc26d, 0x01}, + {0xc26e, 0x01}, + {0xc26f, 0x01}, + {0xc270, 0x01}, + {0xc272, 0x01}, + {0xc273, 0x01}, + {0xc274, 0x01}, + {0xc275, 0x01}, + {0xc276, 0x01}, + {0xc277, 0x01}, + {0xc278, 0x01}, + {0xc279, 0x01}, + {0xc27a, 0x01}, + {0xc27b, 0x01}, + {0xc27c, 0x01}, + {0xc27d, 0x01}, + {0xc27e, 0x01}, + {0xc280, 0x01}, + {0xc281, 0x01}, + {0xc282, 0x01}, + {0xc283, 0x01}, + {0xc284, 0x01}, + {0xc285, 0x01}, + {0xc286, 0x01}, + {0xc287, 0x01}, + {0xc288, 0x01}, + {0xc28a, 0x01}, + {0xc28b, 0x01}, + {0xc28c, 0x01}, + {0xc28d, 0x01}, + {0xc28e, 0x01}, + {0xc28f, 0x01}, + {0xc290, 0x01}, + {0xc291, 0x01}, + {0xc292, 0x01}, + {0xc293, 0x01}, + {0xc294, 0x01}, + {0xc295, 0x01}, + {0xc296, 0x01}, + {0xc297, 0x01}, + {0xc298, 0x01}, + {0xc299, 0x01}, + {0xc29a, 0x01}, + {0xc29b, 0x01}, + {0xc29c, 0x01}, + {0xc29d, 0x01}, + {0xc29e, 0x01}, + {0xc29f, 0x01}, + {0xc2a0, 0x01}, + {0xc2a1, 0x01}, + {0xc2a2, 0x01}, + {0xc2a3, 0x01}, + {0xc2a4, 0x01}, + {0xc2a5, 0x01}, + {0xc2a6, 0x01}, + {0xc2a7, 0x01}, + {0xc2a8, 0x01}, + {0xc2a9, 0x01}, + {0xc2aa, 0x01}, + {0xc2ab, 0x01}, + {0xc2ac, 0x01}, + {0xc2ad, 0x01}, + {0xc2ae, 0x01}, + {0xc2af, 0x01}, + {0xc2b0, 0x01}, + {0xc2b1, 0x01}, + {0xc2b2, 0x01}, + {0xc2b3, 0x01}, + {0xc2b4, 0x01}, + {0xc2b5, 0x01}, + {0xc2b6, 0x01}, + {0xc2b7, 0x01}, + {0xc2b8, 0x01}, + {0xc2b9, 0x01}, + {0xc2ba, 0x01}, + {0xc2bb, 0x01}, + {0xc2bc, 0x01}, + {0xc2bd, 0x01}, + {0xc2be, 0x01}, + {0xc2bf, 0x01}, + {0xc2c0, 0x01}, + {0xc2c1, 0x01}, + {0xc2c2, 0x01}, + {0xc2c3, 0x01}, + {0xc2c4, 0x01}, + {0xc2c5, 0x01}, + {0xc2c6, 0x01}, + {0xc2c7, 0x01}, + {0xc2c8, 0x01}, + {0xc2c9, 0x01}, + {0xc2ca, 0x01}, + {0xc2cb, 0x01}, + {0xc2cc, 0x01}, + {0xc2cd, 0x01}, + {0xc2ce, 0x01}, + {0xc2cf, 0x01}, + {0xc2d0, 0x01}, + {0xc2d1, 0x01}, + {0xc2d2, 0x01}, + {0xc2d3, 0x01}, + {0xc2d4, 0x01}, + {0xc2d5, 0x01}, + {0xc2d6, 0x01}, + {0xc2d7, 0x01}, + {0xc2d8, 0x01}, + {0xc2d9, 0x01}, + {0xc2da, 0x01}, + {0xc2db, 0x01}, + {0xc2dc, 0x01}, + {0xc2dd, 0x01}, + {0xc2de, 0x01}, + {0xc2df, 0x01}, + {0xc2e0, 0x01}, + {0xc2e1, 0x01}, + {0xc2e2, 0x01}, + {0xc2e3, 0x01}, + {0xc2e4, 0x01}, + {0xc2e5, 0x01}, + {0xc2e6, 0x01}, + {0xc2e7, 0x01}, + {0xc2e8, 0x01}, + {0xc2e9, 0x01}, + {0xc2ea, 0x01}, + {0xc2eb, 0x01}, + {0xc2ec, 0x01}, + {0xc2ed, 0x01}, + {0xc2ee, 0x01}, + {0xc2ef, 0x01}, + {0xc2f0, 0x01}, + {0xc2f1, 0x01}, + {0xc2f2, 0x01}, + {0xc2f3, 0x01}, + {0xc2f4, 0x01}, + {0xc2f5, 0x01}, + {0xc2f6, 0x01}, + {0xc2f7, 0x01}, + {0xc2f8, 0x01}, + {0xc2f9, 0x01}, + {0xc2fa, 0x01}, + {0xc2fb, 0x01}, + {0xc2fc, 0x01}, + {0xc2fd, 0x01}, + {0xc2fe, 0x01}, + {0xc340, 0x01}, + {0xc341, 0x01}, + {0xc342, 0x01}, + {0xc343, 0x01}, + {0xc344, 0x01}, + {0xc345, 0x01}, + {0xc346, 0x01}, + {0xc347, 0x01}, + {0xc348, 0x01}, + {0xc349, 0x01}, + {0xc34a, 0x01}, + {0xc34b, 0x01}, + {0xc34c, 0x01}, + {0xc34d, 0x01}, + {0xc34e, 0x01}, + {0xc34f, 0x01}, + {0xc350, 0x01}, + {0xc351, 0x01}, + {0xc352, 0x01}, + {0xc353, 0x01}, + {0xc354, 0x01}, + {0xc355, 0x01}, + {0xc356, 0x01}, + {0xc357, 0x01}, + {0xc358, 0x01}, + {0xc359, 0x01}, + {0xc35a, 0x01}, + {0xc35b, 0x01}, + {0xc35c, 0x01}, + {0xc35d, 0x01}, + {0xc35e, 0x01}, + {0xc35f, 0x01}, + {0xc360, 0x01}, + {0xc361, 0x01}, + {0xc362, 0x01}, + {0xc363, 0x01}, + {0xc364, 0x01}, + {0xc365, 0x01}, + {0xc366, 0x01}, + {0xc367, 0x01}, + {0xc368, 0x01}, + {0xc369, 0x01}, + {0xc36a, 0x01}, + {0xc36b, 0x01}, + {0xc36c, 0x01}, + {0xc36d, 0x01}, + {0xc36e, 0x01}, + {0xc36f, 0x01}, + {0xc370, 0x01}, + {0xc371, 0x01}, + {0xc372, 0x01}, + {0xc373, 0x01}, + {0xc374, 0x01}, + {0xc375, 0x01}, + {0xc376, 0x01}, + {0xc377, 0x01}, + {0xc378, 0x01}, + {0xc379, 0x01}, + {0xc37a, 0x01}, + {0xc37b, 0x01}, + {0xc37c, 0x01}, + {0xc37d, 0x01}, + {0xc37e, 0x01}, + {0xc380, 0x01}, + {0xc381, 0x01}, + {0xc382, 0x01}, + {0xc383, 0x01}, + {0xc384, 0x01}, + {0xc385, 0x01}, + {0xc386, 0x01}, + {0xc387, 0x01}, + {0xc388, 0x01}, + {0xc389, 0x01}, + {0xc38a, 0x01}, + {0xc38b, 0x01}, + {0xc38c, 0x01}, + {0xc38d, 0x01}, + {0xc38e, 0x01}, + {0xc38f, 0x01}, + {0xc390, 0x01}, + {0xc391, 0x01}, + {0xc392, 0x01}, + {0xc393, 0x01}, + {0xc394, 0x01}, + {0xc395, 0x01}, + {0xc396, 0x01}, + {0xc397, 0x01}, + {0xc398, 0x01}, + {0xc399, 0x01}, + {0xc39a, 0x01}, + {0xc39b, 0x01}, + {0xc39c, 0x01}, + {0xc39d, 0x01}, + {0xc39e, 0x01}, + {0xc39f, 0x01}, + {0xc3a0, 0x01}, + {0xc3a1, 0x01}, + {0xc3a2, 0x01}, + {0xc3a3, 0x01}, + {0xc3a4, 0x01}, + {0xc3a5, 0x01}, + {0xc3a6, 0x01}, + {0xc3a7, 0x01}, + {0xc3a8, 0x01}, + {0xc3a9, 0x01}, + {0xc3aa, 0x01}, + {0xc3ab, 0x01}, + {0xc3ac, 0x01}, + {0xc3ad, 0x01}, + {0xc3ae, 0x01}, + {0xc3af, 0x01}, + {0xc3b0, 0x01}, + {0xc3b1, 0x01}, + {0xc3b2, 0x01}, + {0xc3b3, 0x01}, + {0xc3b4, 0x01}, + {0xc3b5, 0x01}, + {0xc3b6, 0x01}, + {0xc3b7, 0x01}, + {0xc3b8, 0x01}, + {0xc3b9, 0x01}, + {0xc3ba, 0x01}, + {0xc3bb, 0x01}, + {0xc3bc, 0x01}, + {0xc3bd, 0x01}, + {0xc3be, 0x01}, + {0xc3bf, 0x01}, + {0xc3c0, 0x01}, + {0xc3c1, 0x01}, + {0xc3c2, 0x01}, + {0xc3c3, 0x01}, + {0xc3c4, 0x01}, + {0xc3c5, 0x01}, + {0xc3c6, 0x01}, + {0xc3c7, 0x01}, + {0xc3c8, 0x01}, + {0xc3c9, 0x01}, + {0xc3ca, 0x01}, + {0xc3cb, 0x01}, + {0xc3cc, 0x01}, + {0xc3cd, 0x01}, + {0xc3ce, 0x01}, + {0xc3cf, 0x01}, + {0xc3d0, 0x01}, + {0xc3d1, 0x01}, + {0xc3d2, 0x01}, + {0xc3d3, 0x01}, + {0xc3d4, 0x01}, + {0xc3d5, 0x01}, + {0xc3d6, 0x01}, + {0xc3d7, 0x01}, + {0xc3d8, 0x01}, + {0xc3d9, 0x01}, + {0xc3da, 0x01}, + {0xc3db, 0x01}, + {0xc3dc, 0x01}, + {0xc3dd, 0x01}, + {0xc3de, 0x01}, + {0xc3df, 0x01}, + {0xc3e0, 0x01}, + {0xc3e1, 0x01}, + {0xc3e2, 0x01}, + {0xc3e3, 0x01}, + {0xc3e4, 0x01}, + {0xc3e5, 0x01}, + {0xc3e6, 0x01}, + {0xc3e7, 0x01}, + {0xc3e8, 0x01}, + {0xc3e9, 0x01}, + {0xc3ea, 0x01}, + {0xc3eb, 0x01}, + {0xc3ec, 0x01}, + {0xc3ed, 0x01}, + {0xc3ee, 0x01}, + {0xc3ef, 0x01}, + {0xc3f0, 0x01}, + {0xc3f1, 0x01}, + {0xc3f2, 0x01}, + {0xc3f3, 0x01}, + {0xc3f4, 0x01}, + {0xc3f5, 0x01}, + {0xc3f6, 0x01}, + {0xc3f7, 0x01}, + {0xc3f8, 0x01}, + {0xc3f9, 0x01}, + {0xc3fa, 0x01}, + {0xc3fb, 0x01}, + {0xc3fc, 0x01}, + {0xc3fd, 0x01}, + {0xc3fe, 0x01}, + {0xc440, 0x01}, + {0xc441, 0x01}, + {0xc442, 0x01}, + {0xc443, 0x01}, + {0xc444, 0x01}, + {0xc445, 0x01}, + {0xc446, 0x01}, + {0xc447, 0x01}, + {0xc448, 0x01}, + {0xc449, 0x01}, + {0xc44a, 0x01}, + {0xc44b, 0x01}, + {0xc44c, 0x01}, + {0xc44d, 0x01}, + {0xc44e, 0x01}, + {0xc44f, 0x01}, + {0xc450, 0x01}, + {0xc451, 0x01}, + {0xc452, 0x01}, + {0xc453, 0x01}, + {0xc454, 0x01}, + {0xc455, 0x01}, + {0xc456, 0x01}, + {0xc457, 0x01}, + {0xc458, 0x01}, + {0xc459, 0x01}, + {0xc45a, 0x01}, + {0xc45b, 0x01}, + {0xc45c, 0x01}, + {0xc45d, 0x01}, + {0xc45e, 0x01}, + {0xc45f, 0x01}, + {0xc460, 0x01}, + {0xc461, 0x01}, + {0xc462, 0x01}, + {0xc463, 0x01}, + {0xc464, 0x01}, + {0xc465, 0x01}, + {0xc466, 0x01}, + {0xc467, 0x01}, + {0xc468, 0x01}, + {0xc469, 0x01}, + {0xc46a, 0x01}, + {0xc46b, 0x01}, + {0xc46c, 0x01}, + {0xc46d, 0x01}, + {0xc46e, 0x01}, + {0xc46f, 0x01}, + {0xc470, 0x01}, + {0xc471, 0x01}, + {0xc472, 0x01}, + {0xc473, 0x01}, + {0xc474, 0x01}, + {0xc475, 0x01}, + {0xc476, 0x01}, + {0xc477, 0x01}, + {0xc478, 0x01}, + {0xc479, 0x01}, + {0xc47a, 0x01}, + {0xc47b, 0x01}, + {0xc47c, 0x01}, + {0xc47d, 0x01}, + {0xc47e, 0x01}, + {0xc480, 0x01}, + {0xc481, 0x01}, + {0xc482, 0x01}, + {0xc483, 0x01}, + {0xc484, 0x01}, + {0xc485, 0x01}, + {0xc486, 0x01}, + {0xc487, 0x01}, + {0xc488, 0x01}, + {0xc489, 0x01}, + {0xc48a, 0x01}, + {0xc48b, 0x01}, + {0xc48c, 0x01}, + {0xc48d, 0x01}, + {0xc48e, 0x01}, + {0xc48f, 0x01}, + {0xc490, 0x01}, + {0xc491, 0x01}, + {0xc492, 0x01}, + {0xc493, 0x01}, + {0xc494, 0x01}, + {0xc495, 0x01}, + {0xc496, 0x01}, + {0xc497, 0x01}, + {0xc498, 0x01}, + {0xc499, 0x01}, + {0xc49a, 0x01}, + {0xc49b, 0x01}, + {0xc49c, 0x01}, + {0xc49d, 0x01}, + {0xc49e, 0x01}, + {0xc49f, 0x01}, + {0xc4a0, 0x01}, + {0xc4a1, 0x01}, + {0xc4a2, 0x01}, + {0xc4a3, 0x01}, + {0xc4a4, 0x01}, + {0xc4a5, 0x01}, + {0xc4a6, 0x01}, + {0xc4a7, 0x01}, + {0xc4a8, 0x01}, + {0xc4a9, 0x01}, + {0xc4aa, 0x01}, + {0xc4ab, 0x01}, + {0xc4ac, 0x01}, + {0xc4ad, 0x01}, + {0xc4ae, 0x01}, + {0xc4af, 0x01}, + {0xc4b0, 0x01}, + {0xc4b1, 0x01}, + {0xc4b2, 0x01}, + {0xc4b3, 0x01}, + {0xc4b4, 0x01}, + {0xc4b5, 0x01}, + {0xc4b6, 0x01}, + {0xc4b7, 0x01}, + {0xc4b8, 0x01}, + {0xc4b9, 0x01}, + {0xc4ba, 0x01}, + {0xc4bb, 0x01}, + {0xc4bc, 0x01}, + {0xc4bd, 0x01}, + {0xc4be, 0x01}, + {0xc4bf, 0x01}, + {0xc4c0, 0x01}, + {0xc4c1, 0x01}, + {0xc4c2, 0x01}, + {0xc4c3, 0x01}, + {0xc4c4, 0x01}, + {0xc4c5, 0x01}, + {0xc4c6, 0x01}, + {0xc4c7, 0x01}, + {0xc4c8, 0x01}, + {0xc4c9, 0x01}, + {0xc4ca, 0x01}, + {0xc4cb, 0x01}, + {0xc4cc, 0x01}, + {0xc4cd, 0x01}, + {0xc4ce, 0x01}, + {0xc4cf, 0x01}, + {0xc4d0, 0x01}, + {0xc4d1, 0x01}, + {0xc4d2, 0x01}, + {0xc4d3, 0x01}, + {0xc4d4, 0x01}, + {0xc4d5, 0x01}, + {0xc4d6, 0x01}, + {0xc4d7, 0x01}, + {0xc4d8, 0x01}, + {0xc4d9, 0x01}, + {0xc4da, 0x01}, + {0xc4db, 0x01}, + {0xc4dc, 0x01}, + {0xc4dd, 0x01}, + {0xc4de, 0x01}, + {0xc4df, 0x01}, + {0xc4e0, 0x01}, + {0xc4e1, 0x01}, + {0xc4e2, 0x01}, + {0xc4e3, 0x01}, + {0xc4e4, 0x01}, + {0xc4e5, 0x01}, + {0xc4e6, 0x01}, + {0xc4e7, 0x01}, + {0xc4e8, 0x01}, + {0xc4e9, 0x01}, + {0xc4ea, 0x01}, + {0xc4eb, 0x01}, + {0xc4ec, 0x01}, + {0xc4ed, 0x01}, + {0xc4ee, 0x01}, + {0xc4ef, 0x01}, + {0xc4f0, 0x01}, + {0xc4f1, 0x01}, + {0xc4f2, 0x01}, + {0xc4f3, 0x01}, + {0xc4f4, 0x01}, + {0xc4f5, 0x01}, + {0xc4f6, 0x01}, + {0xc4f7, 0x01}, + {0xc4f8, 0x01}, + {0xc4f9, 0x01}, + {0xc4fa, 0x01}, + {0xc4fb, 0x01}, + {0xc4fc, 0x01}, + {0xc4fd, 0x01}, + {0xc4fe, 0x01}, + {0xc540, 0x01}, + {0xc541, 0x01}, + {0xc542, 0x01}, + {0xc543, 0x01}, + {0xc544, 0x01}, + {0xc545, 0x01}, + {0xc546, 0x01}, + {0xc547, 0x01}, + {0xc548, 0x01}, + {0xc549, 0x01}, + {0xc54a, 0x01}, + {0xc54b, 0x01}, + {0xc54c, 0x01}, + {0xc54d, 0x01}, + {0xc54e, 0x01}, + {0xc54f, 0x01}, + {0xc550, 0x01}, + {0xc551, 0x01}, + {0xc552, 0x01}, + {0xc553, 0x01}, + {0xc554, 0x01}, + {0xc555, 0x01}, + {0xc556, 0x01}, + {0xc557, 0x01}, + {0xc558, 0x01}, + {0xc559, 0x01}, + {0xc55a, 0x01}, + {0xc55b, 0x01}, + {0xc55c, 0x01}, + {0xc55d, 0x01}, + {0xc55e, 0x01}, + {0xc55f, 0x01}, + {0xc560, 0x01}, + {0xc561, 0x01}, + {0xc562, 0x01}, + {0xc563, 0x01}, + {0xc564, 0x01}, + {0xc565, 0x01}, + {0xc566, 0x01}, + {0xc567, 0x01}, + {0xc568, 0x01}, + {0xc569, 0x01}, + {0xc56a, 0x01}, + {0xc56b, 0x01}, + {0xc56c, 0x01}, + {0xc56d, 0x01}, + {0xc56e, 0x01}, + {0xc56f, 0x01}, + {0xc570, 0x01}, + {0xc571, 0x01}, + {0xc572, 0x01}, + {0xc573, 0x01}, + {0xc574, 0x01}, + {0xc575, 0x01}, + {0xc576, 0x01}, + {0xc577, 0x01}, + {0xc578, 0x01}, + {0xc579, 0x01}, + {0xc57a, 0x01}, + {0xc57b, 0x01}, + {0xc57c, 0x01}, + {0xc57d, 0x01}, + {0xc57e, 0x01}, + {0xc580, 0x01}, + {0xc581, 0x01}, + {0xc582, 0x01}, + {0xc583, 0x01}, + {0xc584, 0x01}, + {0xc585, 0x01}, + {0xc587, 0x01}, + {0xc588, 0x01}, + {0xc589, 0x01}, + {0xc58a, 0x01}, + {0xc58b, 0x01}, + {0xc58c, 0x01}, + {0xc58d, 0x01}, + {0xc58e, 0x01}, + {0xc58f, 0x01}, + {0xc590, 0x01}, + {0xc591, 0x01}, + {0xc592, 0x01}, + {0xc593, 0x01}, + {0xc594, 0x01}, + {0xc595, 0x01}, + {0xc596, 0x01}, + {0xc597, 0x01}, + {0xc598, 0x01}, + {0xc599, 0x01}, + {0xc59a, 0x01}, + {0xc59b, 0x01}, + {0xc59c, 0x01}, + {0xc59d, 0x01}, + {0xc59e, 0x01}, + {0xc59f, 0x01}, + {0xc5a0, 0x01}, + {0xc5a1, 0x01}, + {0xc5a2, 0x01}, + {0xc5a3, 0x01}, + {0xc5a4, 0x01}, + {0xc5a5, 0x01}, + {0xc5a6, 0x01}, + {0xc5a7, 0x01}, + {0xc5a8, 0x01}, + {0xc5a9, 0x01}, + {0xc5aa, 0x01}, + {0xc5ab, 0x01}, + {0xc5ac, 0x01}, + {0xc5ad, 0x01}, + {0xc5ae, 0x01}, + {0xc5af, 0x01}, + {0xc5b0, 0x01}, + {0xc5b1, 0x01}, + {0xc5b2, 0x01}, + {0xc5b3, 0x01}, + {0xc5b4, 0x01}, + {0xc5b5, 0x01}, + {0xc5b6, 0x01}, + {0xc5b7, 0x01}, + {0xc5b8, 0x01}, + {0xc5b9, 0x01}, + {0xc5ba, 0x01}, + {0xc5bb, 0x01}, + {0xc5bc, 0x01}, + {0xc5bd, 0x01}, + {0xc5be, 0x01}, + {0xc5bf, 0x01}, + {0xc5c0, 0x01}, + {0xc5c1, 0x01}, + {0xc5c2, 0x01}, + {0xc5c3, 0x01}, + {0xc5c4, 0x01}, + {0xc5c5, 0x01}, + {0xc5c6, 0x01}, + {0xc5c7, 0x01}, + {0xc5c8, 0x01}, + {0xc5c9, 0x01}, + {0xc5ca, 0x01}, + {0xc5cb, 0x01}, + {0xc5cc, 0x01}, + {0xc5cd, 0x01}, + {0xc5ce, 0x01}, + {0xc5cf, 0x01}, + {0xc5d0, 0x01}, + {0xc5d1, 0x01}, + {0xc5d2, 0x01}, + {0xc5d3, 0x01}, + {0xc5d4, 0x01}, + {0xc5d5, 0x01}, + {0xc5d6, 0x01}, + {0xc5d7, 0x01}, + {0xc5d8, 0x01}, + {0xc5d9, 0x01}, + {0xc5da, 0x01}, + {0xc5db, 0x01}, + {0xc5dc, 0x01}, + {0xc5dd, 0x01}, + {0xc5de, 0x01}, + {0xc5df, 0x01}, + {0xc5e0, 0x01}, + {0xc5e1, 0x01}, + {0xc5e2, 0x01}, + {0xc5e3, 0x01}, + {0xc5e4, 0x01}, + {0xc5e5, 0x01}, + {0xc5e6, 0x01}, + {0xc5e7, 0x01}, + {0xc5e8, 0x01}, + {0xc5e9, 0x01}, + {0xc5ea, 0x01}, + {0xc5eb, 0x01}, + {0xc5ec, 0x01}, + {0xc5ed, 0x01}, + {0xc5ee, 0x01}, + {0xc5ef, 0x01}, + {0xc5f0, 0x01}, + {0xc5f1, 0x01}, + {0xc5f2, 0x01}, + {0xc5f3, 0x01}, + {0xc5f4, 0x01}, + {0xc5f5, 0x01}, + {0xc5f6, 0x01}, + {0xc5f7, 0x01}, + {0xc5f8, 0x01}, + {0xc5f9, 0x01}, + {0xc5fa, 0x01}, + {0xc5fb, 0x01}, + {0xc5fc, 0x01}, + {0xc5fd, 0x01}, + {0xc5fe, 0x01}, + {0xc640, 0x01}, + {0xc641, 0x01}, + {0xc642, 0x01}, + {0xc643, 0x01}, + {0xc644, 0x01}, + {0xc645, 0x01}, + {0xc646, 0x01}, + {0xc647, 0x01}, + {0xc648, 0x01}, + {0xc649, 0x01}, + {0xc64a, 0x01}, + {0xc64b, 0x01}, + {0xc64c, 0x01}, + {0xc64d, 0x01}, + {0xc64e, 0x01}, + {0xc64f, 0x01}, + {0xc650, 0x01}, + {0xc651, 0x01}, + {0xc652, 0x01}, + {0xc653, 0x01}, + {0xc654, 0x01}, + {0xc655, 0x01}, + {0xc656, 0x01}, + {0xc657, 0x01}, + {0xc658, 0x01}, + {0xc659, 0x01}, + {0xc65a, 0x01}, + {0xc65b, 0x01}, + {0xc65c, 0x01}, + {0xc65d, 0x01}, + {0xc65e, 0x01}, + {0xc65f, 0x01}, + {0xc660, 0x01}, + {0xc661, 0x01}, + {0xc662, 0x01}, + {0xc663, 0x01}, + {0xc664, 0x01}, + {0xc665, 0x01}, + {0xc666, 0x01}, + {0xc667, 0x01}, + {0xc668, 0x01}, + {0xc669, 0x01}, + {0xc66a, 0x01}, + {0xc66b, 0x01}, + {0xc66c, 0x01}, + {0xc66d, 0x01}, + {0xc66e, 0x01}, + {0xc66f, 0x01}, + {0xc670, 0x01}, + {0xc671, 0x01}, + {0xc672, 0x01}, + {0xc673, 0x01}, + {0xc674, 0x01}, + {0xc675, 0x01}, + {0xc676, 0x01}, + {0xc677, 0x01}, + {0xc678, 0x01}, + {0xc679, 0x01}, + {0xc67a, 0x01}, + {0xc67b, 0x01}, + {0xc67c, 0x01}, + {0xc67d, 0x01}, + {0xc67e, 0x01}, + {0xc680, 0x01}, + {0xc681, 0x01}, + {0xc682, 0x01}, + {0xc683, 0x01}, + {0xc684, 0x01}, + {0xc685, 0x01}, + {0xc686, 0x01}, + {0xc687, 0x01}, + {0xc688, 0x01}, + {0xc689, 0x01}, + {0xc68b, 0x01}, + {0xc68c, 0x01}, + {0xc68d, 0x01}, + {0xc68e, 0x01}, + {0xc68f, 0x01}, + {0xc690, 0x01}, + {0xc691, 0x01}, + {0xc692, 0x01}, + {0xc693, 0x01}, + {0xc694, 0x01}, + {0xc695, 0x01}, + {0xc696, 0x01}, + {0xc697, 0x01}, + {0xc698, 0x01}, + {0xc699, 0x01}, + {0xc69a, 0x01}, + {0xc69b, 0x01}, + {0xc69c, 0x01}, + {0xc69d, 0x01}, + {0xc69e, 0x01}, + {0xc69f, 0x01}, + {0xc6a0, 0x01}, + {0xc6a1, 0x01}, + {0xc6a2, 0x01}, + {0xc6a3, 0x01}, + {0xc6a4, 0x01}, + {0xc6a5, 0x01}, + {0xc6a6, 0x01}, + {0xc6a7, 0x01}, + {0xc6a8, 0x01}, + {0xc6a9, 0x01}, + {0xc6aa, 0x01}, + {0xc6ab, 0x01}, + {0xc6ac, 0x01}, + {0xc6ad, 0x01}, + {0xc6ae, 0x01}, + {0xc6af, 0x01}, + {0xc6b0, 0x01}, + {0xc6b1, 0x01}, + {0xc6b2, 0x01}, + {0xc6b3, 0x01}, + {0xc6b4, 0x01}, + {0xc6b5, 0x01}, + {0xc6b6, 0x01}, + {0xc6b7, 0x01}, + {0xc6b8, 0x01}, + {0xc6b9, 0x01}, + {0xc6ba, 0x01}, + {0xc6bb, 0x01}, + {0xc6bc, 0x01}, + {0xc6bd, 0x01}, + {0xc6be, 0x01}, + {0xc6bf, 0x01}, + {0xc6c0, 0x01}, + {0xc6c1, 0x01}, + {0xc6c2, 0x01}, + {0xc6c3, 0x01}, + {0xc6c4, 0x01}, + {0xc6c5, 0x01}, + {0xc6c6, 0x01}, + {0xc6c7, 0x01}, + {0xc6c8, 0x01}, + {0xc6c9, 0x01}, + {0xc6ca, 0x01}, + {0xc6cb, 0x01}, + {0xc6cc, 0x01}, + {0xc6cd, 0x01}, + {0xc6ce, 0x01}, + {0xc6cf, 0x01}, + {0xc6d0, 0x01}, + {0xc6d1, 0x01}, + {0xc6d2, 0x01}, + {0xc6d3, 0x01}, + {0xc6d4, 0x01}, + {0xc6d5, 0x01}, + {0xc6d6, 0x01}, + {0xc6d7, 0x01}, + {0xc6d8, 0x01}, + {0xc6d9, 0x01}, + {0xc6da, 0x01}, + {0xc6db, 0x01}, + {0xc6dc, 0x01}, + {0xc6dd, 0x01}, + {0xc6de, 0x01}, + {0xc6df, 0x01}, + {0xc6e0, 0x01}, + {0xc6e1, 0x01}, + {0xc6e2, 0x01}, + {0xc6e3, 0x01}, + {0xc6e4, 0x01}, + {0xc6e5, 0x01}, + {0xc6e6, 0x01}, + {0xc6e7, 0x01}, + {0xc6e8, 0x01}, + {0xc6e9, 0x01}, + {0xc6ea, 0x01}, + {0xc6eb, 0x01}, + {0xc6ec, 0x01}, + {0xc6ed, 0x01}, + {0xc6ee, 0x01}, + {0xc6ef, 0x01}, + {0xc6f0, 0x01}, + {0xc6f1, 0x01}, + {0xc6f2, 0x01}, + {0xc6f3, 0x01}, + {0xc6f4, 0x01}, + {0xc6f5, 0x01}, + {0xc6f6, 0x01}, + {0xc6f7, 0x01}, + {0xc6f8, 0x01}, + {0xc6f9, 0x01}, + {0xc6fa, 0x01}, + {0xc6fb, 0x01}, + {0xc6fc, 0x01}, + {0xc6fd, 0x01}, + {0xc6fe, 0x01}, + {0xc740, 0x01}, + {0xc741, 0x01}, + {0xc742, 0x01}, + {0xc743, 0x01}, + {0xc744, 0x01}, + {0xc745, 0x01}, + {0xc746, 0x01}, + {0xc747, 0x01}, + {0xc748, 0x01}, + {0xc749, 0x01}, + {0xc74a, 0x01}, + {0xc74b, 0x01}, + {0xc74c, 0x01}, + {0xc74d, 0x01}, + {0xc74e, 0x01}, + {0xc74f, 0x01}, + {0xc750, 0x01}, + {0xc751, 0x01}, + {0xc752, 0x01}, + {0xc753, 0x01}, + {0xc754, 0x01}, + {0xc755, 0x01}, + {0xc756, 0x01}, + {0xc757, 0x01}, + {0xc758, 0x01}, + {0xc759, 0x01}, + {0xc75a, 0x01}, + {0xc75b, 0x01}, + {0xc75c, 0x01}, + {0xc75d, 0x01}, + {0xc75e, 0x01}, + {0xc75f, 0x01}, + {0xc760, 0x01}, + {0xc761, 0x01}, + {0xc762, 0x01}, + {0xc763, 0x01}, + {0xc764, 0x01}, + {0xc765, 0x01}, + {0xc766, 0x01}, + {0xc767, 0x01}, + {0xc768, 0x01}, + {0xc769, 0x01}, + {0xc76a, 0x01}, + {0xc76b, 0x01}, + {0xc76c, 0x01}, + {0xc76d, 0x01}, + {0xc76e, 0x01}, + {0xc76f, 0x01}, + {0xc770, 0x01}, + {0xc771, 0x01}, + {0xc772, 0x01}, + {0xc773, 0x01}, + {0xc774, 0x01}, + {0xc775, 0x01}, + {0xc776, 0x01}, + {0xc777, 0x01}, + {0xc778, 0x01}, + {0xc779, 0x01}, + {0xc77a, 0x01}, + {0xc77b, 0x01}, + {0xc77c, 0x01}, + {0xc77d, 0x01}, + {0xc77e, 0x01}, + {0xc780, 0x01}, + {0xc781, 0x01}, + {0xc782, 0x01}, + {0xc783, 0x01}, + {0xc784, 0x01}, + {0xc785, 0x01}, + {0xc786, 0x01}, + {0xc787, 0x01}, + {0xc788, 0x01}, + {0xc789, 0x01}, + {0xc78a, 0x01}, + {0xc78b, 0x01}, + {0xc78c, 0x01}, + {0xc78d, 0x01}, + {0xc78e, 0x01}, + {0xc78f, 0x01}, + {0xc790, 0x01}, + {0xc791, 0x01}, + {0xc792, 0x01}, + {0xc793, 0x01}, + {0xc794, 0x01}, + {0xc795, 0x01}, + {0xc796, 0x01}, + {0xc797, 0x01}, + {0xc798, 0x01}, + {0xc799, 0x01}, + {0xc79a, 0x01}, + {0xc79b, 0x01}, + {0xc79c, 0x01}, + {0xc79d, 0x01}, + {0xc79e, 0x01}, + {0xc79f, 0x01}, + {0xc7a0, 0x01}, + {0xc7a1, 0x01}, + {0xc7a2, 0x01}, + {0xc7a3, 0x01}, + {0xc7a4, 0x01}, + {0xc7a5, 0x01}, + {0xc7a6, 0x01}, + {0xc7a7, 0x01}, + {0xc7a8, 0x01}, + {0xc7a9, 0x01}, + {0xc7aa, 0x01}, + {0xc7ab, 0x01}, + {0xc7ac, 0x01}, + {0xc7ad, 0x01}, + {0xc7ae, 0x01}, + {0xc7af, 0x01}, + {0xc7b0, 0x01}, + {0xc7b1, 0x01}, + {0xc7b2, 0x01}, + {0xc7b3, 0x01}, + {0xc7b4, 0x01}, + {0xc7b5, 0x01}, + {0xc7b6, 0x01}, + {0xc7b7, 0x01}, + {0xc7b8, 0x01}, + {0xc7b9, 0x01}, + {0xc7ba, 0x01}, + {0xc7bb, 0x01}, + {0xc7bc, 0x01}, + {0xc7bd, 0x01}, + {0xc7be, 0x01}, + {0xc7bf, 0x01}, + {0xc7c0, 0x01}, + {0xc7c1, 0x01}, + {0xc7c2, 0x01}, + {0xc7c3, 0x01}, + {0xc7c4, 0x01}, + {0xc7c5, 0x01}, + {0xc7c6, 0x01}, + {0xc7c7, 0x01}, + {0xc7c8, 0x01}, + {0xc7c9, 0x01}, + {0xc7ca, 0x01}, + {0xc7cb, 0x01}, + {0xc7cc, 0x01}, + {0xc7cd, 0x01}, + {0xc7ce, 0x01}, + {0xc7cf, 0x01}, + {0xc7d0, 0x01}, + {0xc7d1, 0x01}, + {0xc7d2, 0x01}, + {0xc7d3, 0x01}, + {0xc7d4, 0x01}, + {0xc7d5, 0x01}, + {0xc7d6, 0x01}, + {0xc7d7, 0x01}, + {0xc7d8, 0x01}, + {0xc7d9, 0x01}, + {0xc7da, 0x01}, + {0xc7db, 0x01}, + {0xc7dc, 0x01}, + {0xc7dd, 0x01}, + {0xc7de, 0x01}, + {0xc7df, 0x01}, + {0xc7e0, 0x01}, + {0xc7e1, 0x01}, + {0xc7e2, 0x01}, + {0xc7e3, 0x01}, + {0xc7e4, 0x01}, + {0xc7e5, 0x01}, + {0xc7e6, 0x01}, + {0xc7e7, 0x01}, + {0xc7e8, 0x01}, + {0xc7e9, 0x01}, + {0xc7ea, 0x01}, + {0xc7eb, 0x01}, + {0xc7ec, 0x01}, + {0xc7ed, 0x01}, + {0xc7ee, 0x01}, + {0xc7ef, 0x01}, + {0xc7f0, 0x01}, + {0xc7f1, 0x01}, + {0xc7f2, 0x01}, + {0xc7f3, 0x01}, + {0xc7f4, 0x01}, + {0xc7f5, 0x01}, + {0xc7f6, 0x01}, + {0xc7f7, 0x01}, + {0xc7f8, 0x01}, + {0xc7f9, 0x01}, + {0xc7fa, 0x01}, + {0xc7fb, 0x01}, + {0xc7fc, 0x01}, + {0xc7fd, 0x01}, + {0xc7fe, 0x01}, + {0xc840, 0x01}, + {0xc841, 0x01}, + {0xc842, 0x01}, + {0xc843, 0x01}, + {0xc844, 0x01}, + {0xc845, 0x01}, + {0xc846, 0x01}, + {0xc847, 0x01}, + {0xc848, 0x01}, + {0xc849, 0x01}, + {0xc84a, 0x01}, + {0xc84b, 0x01}, + {0xc84c, 0x01}, + {0xc84d, 0x01}, + {0xc84e, 0x01}, + {0xc84f, 0x01}, + {0xc850, 0x01}, + {0xc851, 0x01}, + {0xc852, 0x01}, + {0xc853, 0x01}, + {0xc854, 0x01}, + {0xc855, 0x01}, + {0xc856, 0x01}, + {0xc857, 0x01}, + {0xc858, 0x01}, + {0xc859, 0x01}, + {0xc85a, 0x01}, + {0xc85b, 0x01}, + {0xc85c, 0x01}, + {0xc85d, 0x01}, + {0xc85e, 0x01}, + {0xc85f, 0x01}, + {0xc860, 0x01}, + {0xc861, 0x01}, + {0xc862, 0x01}, + {0xc863, 0x01}, + {0xc864, 0x01}, + {0xc865, 0x01}, + {0xc866, 0x01}, + {0xc867, 0x01}, + {0xc868, 0x01}, + {0xc869, 0x01}, + {0xc86a, 0x01}, + {0xc86b, 0x01}, + {0xc86c, 0x01}, + {0xc86d, 0x01}, + {0xc86e, 0x01}, + {0xc86f, 0x01}, + {0xc870, 0x01}, + {0xc871, 0x01}, + {0xc872, 0x01}, + {0xc873, 0x01}, + {0xc874, 0x01}, + {0xc875, 0x01}, + {0xc876, 0x01}, + {0xc877, 0x01}, + {0xc878, 0x01}, + {0xc879, 0x01}, + {0xc87a, 0x01}, + {0xc87b, 0x01}, + {0xc87c, 0x01}, + {0xc87d, 0x01}, + {0xc87e, 0x01}, + {0xc880, 0x01}, + {0xc881, 0x01}, + {0xc882, 0x01}, + {0xc883, 0x01}, + {0xc884, 0x01}, + {0xc885, 0x01}, + {0xc886, 0x01}, + {0xc887, 0x01}, + {0xc888, 0x01}, + {0xc889, 0x01}, + {0xc88a, 0x01}, + {0xc88b, 0x01}, + {0xc88c, 0x01}, + {0xc88d, 0x01}, + {0xc88e, 0x01}, + {0xc88f, 0x01}, + {0xc890, 0x01}, + {0xc891, 0x01}, + {0xc892, 0x01}, + {0xc893, 0x01}, + {0xc894, 0x01}, + {0xc895, 0x01}, + {0xc896, 0x01}, + {0xc897, 0x01}, + {0xc898, 0x01}, + {0xc899, 0x01}, + {0xc89a, 0x01}, + {0xc89b, 0x01}, + {0xc89c, 0x01}, + {0xc89d, 0x01}, + {0xc89e, 0x01}, + {0xc89f, 0x01}, + {0xc8a0, 0x01}, + {0xc8a1, 0x01}, + {0xc8a2, 0x01}, + {0xc8a3, 0x01}, + {0xc8a4, 0x01}, + {0xc8a5, 0x01}, + {0xc8a6, 0x01}, + {0xc8a7, 0x01}, + {0xc8a8, 0x01}, + {0xc8a9, 0x01}, + {0xc8aa, 0x01}, + {0xc8ab, 0x01}, + {0xc8ac, 0x01}, + {0xc8ad, 0x01}, + {0xc8ae, 0x01}, + {0xc8af, 0x01}, + {0xc8b0, 0x01}, + {0xc8b1, 0x01}, + {0xc8b2, 0x01}, + {0xc8b3, 0x01}, + {0xc8b4, 0x01}, + {0xc8b5, 0x01}, + {0xc8b6, 0x01}, + {0xc8b7, 0x01}, + {0xc8b8, 0x01}, + {0xc8b9, 0x01}, + {0xc8ba, 0x01}, + {0xc8bb, 0x01}, + {0xc8bc, 0x01}, + {0xc8bd, 0x01}, + {0xc8be, 0x01}, + {0xc8bf, 0x01}, + {0xc8c0, 0x01}, + {0xc8c1, 0x01}, + {0xc8c2, 0x01}, + {0xc8c3, 0x01}, + {0xc8c4, 0x01}, + {0xc8c5, 0x01}, + {0xc8c6, 0x01}, + {0xc8c7, 0x01}, + {0xc8c8, 0x01}, + {0xc8c9, 0x01}, + {0xc8ca, 0x01}, + {0xc8cb, 0x01}, + {0xc8cc, 0x01}, + {0xc8cd, 0x01}, + {0xc8ce, 0x01}, + {0xc8cf, 0x01}, + {0xc8d0, 0x01}, + {0xc8d1, 0x01}, + {0xc8d2, 0x01}, + {0xc8d3, 0x01}, + {0xc8d4, 0x01}, + {0xc8d5, 0x01}, + {0xc8d6, 0x01}, + {0xc8d7, 0x01}, + {0xc8d8, 0x01}, + {0xc8d9, 0x01}, + {0xc8da, 0x01}, + {0xc8db, 0x01}, + {0xc8dc, 0x01}, + {0xc8dd, 0x01}, + {0xc8de, 0x01}, + {0xc8df, 0x01}, + {0xc8e0, 0x01}, + {0xc8e1, 0x01}, + {0xc8e2, 0x01}, + {0xc8e3, 0x01}, + {0xc8e4, 0x01}, + {0xc8e5, 0x01}, + {0xc8e6, 0x01}, + {0xc8e7, 0x01}, + {0xc8e8, 0x01}, + {0xc8e9, 0x01}, + {0xc8ea, 0x01}, + {0xc8eb, 0x01}, + {0xc8ec, 0x01}, + {0xc8ed, 0x01}, + {0xc8ee, 0x01}, + {0xc8ef, 0x01}, + {0xc8f0, 0x01}, + {0xc8f1, 0x01}, + {0xc8f2, 0x01}, + {0xc8f3, 0x01}, + {0xc8f4, 0x01}, + {0xc8f5, 0x01}, + {0xc8f6, 0x01}, + {0xc8f7, 0x01}, + {0xc8f8, 0x01}, + {0xc8f9, 0x01}, + {0xc8fa, 0x01}, + {0xc8fb, 0x01}, + {0xc8fc, 0x01}, + {0xc8fd, 0x01}, + {0xc8fe, 0x01}, + {0xc940, 0x01}, + {0xc941, 0x01}, + {0xc942, 0x01}, + {0xc943, 0x01}, + {0xc944, 0x01}, + {0xc945, 0x01}, + {0xc946, 0x01}, + {0xc947, 0x01}, + {0xc948, 0x01}, + {0xc94a, 0x01}, + {0xc94b, 0x01}, + {0xc94c, 0x01}, + {0xc94d, 0x01}, + {0xc94e, 0x01}, + {0xc94f, 0x01}, + {0xc950, 0x01}, + {0xc951, 0x01}, + {0xc952, 0x01}, + {0xc953, 0x01}, + {0xc954, 0x01}, + {0xc955, 0x01}, + {0xc956, 0x01}, + {0xc957, 0x01}, + {0xc958, 0x01}, + {0xc959, 0x01}, + {0xc95a, 0x01}, + {0xc95b, 0x01}, + {0xc95c, 0x01}, + {0xc95d, 0x01}, + {0xc95e, 0x01}, + {0xc95f, 0x01}, + {0xc960, 0x01}, + {0xc961, 0x01}, + {0xc962, 0x01}, + {0xc963, 0x01}, + {0xc964, 0x01}, + {0xc965, 0x01}, + {0xc966, 0x01}, + {0xc967, 0x01}, + {0xc968, 0x01}, + {0xc969, 0x01}, + {0xc96a, 0x01}, + {0xc96b, 0x01}, + {0xc96c, 0x01}, + {0xc96d, 0x01}, + {0xc96e, 0x01}, + {0xc96f, 0x01}, + {0xc970, 0x01}, + {0xc971, 0x01}, + {0xc972, 0x01}, + {0xc973, 0x01}, + {0xc974, 0x01}, + {0xc975, 0x01}, + {0xc976, 0x01}, + {0xc977, 0x01}, + {0xc978, 0x01}, + {0xc979, 0x01}, + {0xc97a, 0x01}, + {0xc97b, 0x01}, + {0xc97c, 0x01}, + {0xc97d, 0x01}, + {0xc97e, 0x01}, + {0xc980, 0x01}, + {0xc981, 0x01}, + {0xc982, 0x01}, + {0xc983, 0x01}, + {0xc984, 0x01}, + {0xc986, 0x01}, + {0xc987, 0x01}, + {0xc988, 0x01}, + {0xc989, 0x01}, + {0xc98a, 0x01}, + {0xc98b, 0x01}, + {0xc98c, 0x01}, + {0xc98d, 0x01}, + {0xc98e, 0x01}, + {0xc98f, 0x01}, + {0xc990, 0x01}, + {0xc991, 0x01}, + {0xc992, 0x01}, + {0xc993, 0x01}, + {0xc994, 0x01}, + {0xc995, 0x01}, + {0xc996, 0x01}, + {0xc997, 0x01}, + {0xc998, 0x01}, + {0xc999, 0x01}, + {0xc99a, 0x01}, + {0xc99b, 0x01}, + {0xc99c, 0x01}, + {0xc99d, 0x01}, + {0xc99e, 0x01}, + {0xc99f, 0x01}, + {0xc9a0, 0x01}, + {0xc9a1, 0x01}, + {0xc9a2, 0x01}, + {0xc9a3, 0x01}, + {0xc9a4, 0x01}, + {0xc9a5, 0x01}, + {0xc9a6, 0x01}, + {0xc9a7, 0x01}, + {0xc9a8, 0x01}, + {0xc9a9, 0x01}, + {0xc9aa, 0x01}, + {0xc9ab, 0x01}, + {0xc9ac, 0x01}, + {0xc9ad, 0x01}, + {0xc9ae, 0x01}, + {0xc9af, 0x01}, + {0xc9b0, 0x01}, + {0xc9b1, 0x01}, + {0xc9b2, 0x01}, + {0xc9b3, 0x01}, + {0xc9b4, 0x01}, + {0xc9b5, 0x01}, + {0xc9b6, 0x01}, + {0xc9b7, 0x01}, + {0xc9b8, 0x01}, + {0xc9b9, 0x01}, + {0xc9ba, 0x01}, + {0xc9bb, 0x01}, + {0xc9bc, 0x01}, + {0xc9bd, 0x01}, + {0xc9be, 0x01}, + {0xc9bf, 0x01}, + {0xc9c0, 0x01}, + {0xc9c1, 0x01}, + {0xc9c2, 0x01}, + {0xc9c3, 0x01}, + {0xc9c4, 0x01}, + {0xc9c5, 0x01}, + {0xc9c6, 0x01}, + {0xc9c7, 0x01}, + {0xc9c8, 0x01}, + {0xc9c9, 0x01}, + {0xc9ca, 0x01}, + {0xc9cb, 0x01}, + {0xc9cc, 0x01}, + {0xc9cd, 0x01}, + {0xc9ce, 0x01}, + {0xc9cf, 0x01}, + {0xc9d0, 0x01}, + {0xc9d1, 0x01}, + {0xc9d2, 0x01}, + {0xc9d3, 0x01}, + {0xc9d4, 0x01}, + {0xc9d5, 0x01}, + {0xc9d6, 0x01}, + {0xc9d7, 0x01}, + {0xc9d8, 0x01}, + {0xc9d9, 0x01}, + {0xc9da, 0x01}, + {0xc9db, 0x01}, + {0xc9dc, 0x01}, + {0xc9dd, 0x01}, + {0xc9de, 0x01}, + {0xc9df, 0x01}, + {0xc9e0, 0x01}, + {0xc9e1, 0x01}, + {0xc9e2, 0x01}, + {0xc9e3, 0x01}, + {0xc9e4, 0x01}, + {0xc9e5, 0x01}, + {0xc9e6, 0x01}, + {0xc9e7, 0x01}, + {0xc9e8, 0x01}, + {0xc9e9, 0x01}, + {0xc9ea, 0x01}, + {0xc9eb, 0x01}, + {0xc9ec, 0x01}, + {0xc9ed, 0x01}, + {0xc9ee, 0x01}, + {0xc9ef, 0x01}, + {0xc9f0, 0x01}, + {0xc9f1, 0x01}, + {0xc9f2, 0x01}, + {0xc9f3, 0x01}, + {0xc9f4, 0x01}, + {0xc9f5, 0x01}, + {0xc9f6, 0x01}, + {0xc9f7, 0x01}, + {0xc9f8, 0x01}, + {0xc9f9, 0x01}, + {0xc9fa, 0x01}, + {0xc9fb, 0x01}, + {0xc9fc, 0x01}, + {0xc9fd, 0x01}, + {0xc9fe, 0x01}, + {0xca40, 0x01}, + {0xca41, 0x01}, + {0xca42, 0x01}, + {0xca43, 0x01}, + {0xca44, 0x01}, + {0xca45, 0x01}, + {0xca46, 0x01}, + {0xca47, 0x01}, + {0xca48, 0x01}, + {0xca49, 0x01}, + {0xca4a, 0x01}, + {0xca4b, 0x01}, + {0xca4c, 0x01}, + {0xca4d, 0x01}, + {0xca4e, 0x01}, + {0xca4f, 0x01}, + {0xca50, 0x01}, + {0xca51, 0x01}, + {0xca52, 0x01}, + {0xca53, 0x01}, + {0xca54, 0x01}, + {0xca55, 0x01}, + {0xca56, 0x01}, + {0xca57, 0x01}, + {0xca58, 0x01}, + {0xca59, 0x01}, + {0xca5a, 0x01}, + {0xca5b, 0x01}, + {0xca5c, 0x01}, + {0xca5d, 0x01}, + {0xca5e, 0x01}, + {0xca5f, 0x01}, + {0xca60, 0x01}, + {0xca61, 0x01}, + {0xca62, 0x01}, + {0xca63, 0x01}, + {0xca64, 0x01}, + {0xca65, 0x01}, + {0xca66, 0x01}, + {0xca67, 0x01}, + {0xca68, 0x01}, + {0xca69, 0x01}, + {0xca6a, 0x01}, + {0xca6b, 0x01}, + {0xca6c, 0x01}, + {0xca6d, 0x01}, + {0xca6e, 0x01}, + {0xca6f, 0x01}, + {0xca70, 0x01}, + {0xca71, 0x01}, + {0xca72, 0x01}, + {0xca73, 0x01}, + {0xca74, 0x01}, + {0xca75, 0x01}, + {0xca76, 0x01}, + {0xca77, 0x01}, + {0xca78, 0x01}, + {0xca79, 0x01}, + {0xca7a, 0x01}, + {0xca7b, 0x01}, + {0xca7c, 0x01}, + {0xca7d, 0x01}, + {0xca7e, 0x01}, + {0xca80, 0x01}, + {0xca81, 0x01}, + {0xca82, 0x01}, + {0xca83, 0x01}, + {0xca84, 0x01}, + {0xca85, 0x01}, + {0xca86, 0x01}, + {0xca87, 0x01}, + {0xca88, 0x01}, + {0xca89, 0x01}, + {0xca8a, 0x01}, + {0xca8b, 0x01}, + {0xca8c, 0x01}, + {0xca8d, 0x01}, + {0xca8e, 0x01}, + {0xca8f, 0x01}, + {0xca90, 0x01}, + {0xca91, 0x01}, + {0xca92, 0x01}, + {0xca93, 0x01}, + {0xca94, 0x01}, + {0xca95, 0x01}, + {0xca96, 0x01}, + {0xca97, 0x01}, + {0xca98, 0x01}, + {0xca99, 0x01}, + {0xca9a, 0x01}, + {0xca9b, 0x01}, + {0xca9c, 0x01}, + {0xca9d, 0x01}, + {0xca9e, 0x01}, + {0xca9f, 0x01}, + {0xcaa0, 0x01}, + {0xcaa1, 0x01}, + {0xcaa2, 0x01}, + {0xcaa3, 0x01}, + {0xcaa4, 0x01}, + {0xcaa5, 0x01}, + {0xcaa6, 0x01}, + {0xcaa7, 0x01}, + {0xcaa8, 0x01}, + {0xcaa9, 0x01}, + {0xcaaa, 0x01}, + {0xcaab, 0x01}, + {0xcaac, 0x01}, + {0xcaad, 0x01}, + {0xcaae, 0x01}, + {0xcaaf, 0x01}, + {0xcab0, 0x01}, + {0xcab1, 0x01}, + {0xcab2, 0x01}, + {0xcab3, 0x01}, + {0xcab4, 0x01}, + {0xcab5, 0x01}, + {0xcab6, 0x01}, + {0xcab7, 0x01}, + {0xcab8, 0x01}, + {0xcab9, 0x01}, + {0xcaba, 0x01}, + {0xcabb, 0x01}, + {0xcabc, 0x01}, + {0xcabd, 0x01}, + {0xcabe, 0x01}, + {0xcabf, 0x01}, + {0xcac0, 0x01}, + {0xcac1, 0x01}, + {0xcac2, 0x01}, + {0xcac3, 0x01}, + {0xcac4, 0x01}, + {0xcac5, 0x01}, + {0xcac6, 0x01}, + {0xcac7, 0x01}, + {0xcac8, 0x01}, + {0xcac9, 0x01}, + {0xcaca, 0x01}, + {0xcacb, 0x01}, + {0xcacc, 0x01}, + {0xcacd, 0x01}, + {0xcace, 0x01}, + {0xcacf, 0x01}, + {0xcad0, 0x01}, + {0xcad1, 0x01}, + {0xcad2, 0x01}, + {0xcad3, 0x01}, + {0xcad4, 0x01}, + {0xcad5, 0x01}, + {0xcad6, 0x01}, + {0xcad7, 0x01}, + {0xcad8, 0x01}, + {0xcad9, 0x01}, + {0xcada, 0x01}, + {0xcadb, 0x01}, + {0xcadc, 0x01}, + {0xcadd, 0x01}, + {0xcade, 0x01}, + {0xcadf, 0x01}, + {0xcae0, 0x01}, + {0xcae1, 0x01}, + {0xcae2, 0x01}, + {0xcae3, 0x01}, + {0xcae4, 0x01}, + {0xcae5, 0x01}, + {0xcae6, 0x01}, + {0xcae7, 0x01}, + {0xcae8, 0x01}, + {0xcae9, 0x01}, + {0xcaea, 0x01}, + {0xcaeb, 0x01}, + {0xcaec, 0x01}, + {0xcaed, 0x01}, + {0xcaee, 0x01}, + {0xcaef, 0x01}, + {0xcaf0, 0x01}, + {0xcaf1, 0x01}, + {0xcaf2, 0x01}, + {0xcaf3, 0x01}, + {0xcaf4, 0x01}, + {0xcaf5, 0x01}, + {0xcaf6, 0x01}, + {0xcaf7, 0x01}, + {0xcaf8, 0x01}, + {0xcaf9, 0x01}, + {0xcafa, 0x01}, + {0xcafb, 0x01}, + {0xcafc, 0x01}, + {0xcafd, 0x01}, + {0xcafe, 0x01}, + {0xcb40, 0x01}, + {0xcb41, 0x01}, + {0xcb42, 0x01}, + {0xcb43, 0x01}, + {0xcb44, 0x01}, + {0xcb45, 0x01}, + {0xcb46, 0x01}, + {0xcb47, 0x01}, + {0xcb48, 0x01}, + {0xcb49, 0x01}, + {0xcb4a, 0x01}, + {0xcb4b, 0x01}, + {0xcb4c, 0x01}, + {0xcb4d, 0x01}, + {0xcb4e, 0x01}, + {0xcb4f, 0x01}, + {0xcb50, 0x01}, + {0xcb51, 0x01}, + {0xcb52, 0x01}, + {0xcb53, 0x01}, + {0xcb54, 0x01}, + {0xcb55, 0x01}, + {0xcb56, 0x01}, + {0xcb57, 0x01}, + {0xcb58, 0x01}, + {0xcb59, 0x01}, + {0xcb5a, 0x01}, + {0xcb5b, 0x01}, + {0xcb5c, 0x01}, + {0xcb5d, 0x01}, + {0xcb5e, 0x01}, + {0xcb5f, 0x01}, + {0xcb60, 0x01}, + {0xcb61, 0x01}, + {0xcb62, 0x01}, + {0xcb63, 0x01}, + {0xcb64, 0x01}, + {0xcb65, 0x01}, + {0xcb66, 0x01}, + {0xcb67, 0x01}, + {0xcb68, 0x01}, + {0xcb69, 0x01}, + {0xcb6a, 0x01}, + {0xcb6b, 0x01}, + {0xcb6c, 0x01}, + {0xcb6d, 0x01}, + {0xcb6e, 0x01}, + {0xcb6f, 0x01}, + {0xcb70, 0x01}, + {0xcb71, 0x01}, + {0xcb72, 0x01}, + {0xcb73, 0x01}, + {0xcb74, 0x01}, + {0xcb75, 0x01}, + {0xcb76, 0x01}, + {0xcb77, 0x01}, + {0xcb78, 0x01}, + {0xcb79, 0x01}, + {0xcb7a, 0x01}, + {0xcb7b, 0x01}, + {0xcb7c, 0x01}, + {0xcb7d, 0x01}, + {0xcb7e, 0x01}, + {0xcb81, 0x01}, + {0xcb82, 0x01}, + {0xcb83, 0x01}, + {0xcb84, 0x01}, + {0xcb85, 0x01}, + {0xcb86, 0x01}, + {0xcb87, 0x01}, + {0xcb88, 0x01}, + {0xcb89, 0x01}, + {0xcb8a, 0x01}, + {0xcb8b, 0x01}, + {0xcb8c, 0x01}, + {0xcb8d, 0x01}, + {0xcb8e, 0x01}, + {0xcb8f, 0x01}, + {0xcb90, 0x01}, + {0xcb91, 0x01}, + {0xcb92, 0x01}, + {0xcb93, 0x01}, + {0xcb94, 0x01}, + {0xcb95, 0x01}, + {0xcb96, 0x01}, + {0xcb97, 0x01}, + {0xcb98, 0x01}, + {0xcb99, 0x01}, + {0xcb9a, 0x01}, + {0xcb9b, 0x01}, + {0xcb9c, 0x01}, + {0xcb9d, 0x01}, + {0xcb9e, 0x01}, + {0xcb9f, 0x01}, + {0xcba0, 0x01}, + {0xcba1, 0x01}, + {0xcba2, 0x01}, + {0xcba3, 0x01}, + {0xcba4, 0x01}, + {0xcba5, 0x01}, + {0xcba6, 0x01}, + {0xcba7, 0x01}, + {0xcba8, 0x01}, + {0xcba9, 0x01}, + {0xcbaa, 0x01}, + {0xcbab, 0x01}, + {0xcbac, 0x01}, + {0xcbad, 0x01}, + {0xcbae, 0x01}, + {0xcbaf, 0x01}, + {0xcbb0, 0x01}, + {0xcbb1, 0x01}, + {0xcbb2, 0x01}, + {0xcbb3, 0x01}, + {0xcbb4, 0x01}, + {0xcbb5, 0x01}, + {0xcbb6, 0x01}, + {0xcbb7, 0x01}, + {0xcbb8, 0x01}, + {0xcbb9, 0x01}, + {0xcbba, 0x01}, + {0xcbbb, 0x01}, + {0xcbbc, 0x01}, + {0xcbbd, 0x01}, + {0xcbbe, 0x01}, + {0xcbbf, 0x01}, + {0xcbc0, 0x01}, + {0xcbc1, 0x01}, + {0xcbc2, 0x01}, + {0xcbc3, 0x01}, + {0xcbc4, 0x01}, + {0xcbc5, 0x01}, + {0xcbc6, 0x01}, + {0xcbc7, 0x01}, + {0xcbc8, 0x01}, + {0xcbc9, 0x01}, + {0xcbca, 0x01}, + {0xcbcb, 0x01}, + {0xcbcc, 0x01}, + {0xcbcd, 0x01}, + {0xcbce, 0x01}, + {0xcbcf, 0x01}, + {0xcbd0, 0x01}, + {0xcbd1, 0x01}, + {0xcbd2, 0x01}, + {0xcbd3, 0x01}, + {0xcbd4, 0x01}, + {0xcbd5, 0x01}, + {0xcbd6, 0x01}, + {0xcbd7, 0x01}, + {0xcbd8, 0x01}, + {0xcbd9, 0x01}, + {0xcbda, 0x01}, + {0xcbdb, 0x01}, + {0xcbdc, 0x01}, + {0xcbdd, 0x01}, + {0xcbde, 0x01}, + {0xcbdf, 0x01}, + {0xcbe0, 0x01}, + {0xcbe1, 0x01}, + {0xcbe2, 0x01}, + {0xcbe3, 0x01}, + {0xcbe4, 0x01}, + {0xcbe5, 0x01}, + {0xcbe6, 0x01}, + {0xcbe7, 0x01}, + {0xcbe8, 0x01}, + {0xcbe9, 0x01}, + {0xcbea, 0x01}, + {0xcbeb, 0x01}, + {0xcbec, 0x01}, + {0xcbed, 0x01}, + {0xcbee, 0x01}, + {0xcbef, 0x01}, + {0xcbf0, 0x01}, + {0xcbf1, 0x01}, + {0xcbf2, 0x01}, + {0xcbf3, 0x01}, + {0xcbf4, 0x01}, + {0xcbf5, 0x01}, + {0xcbf6, 0x01}, + {0xcbf7, 0x01}, + {0xcbf8, 0x01}, + {0xcbf9, 0x01}, + {0xcbfa, 0x01}, + {0xcbfb, 0x01}, + {0xcbfc, 0x01}, + {0xcbfd, 0x01}, + {0xcbfe, 0x01}, + {0xcc40, 0x01}, + {0xcc41, 0x01}, + {0xcc42, 0x01}, + {0xcc43, 0x01}, + {0xcc44, 0x01}, + {0xcc45, 0x01}, + {0xcc46, 0x01}, + {0xcc47, 0x01}, + {0xcc48, 0x01}, + {0xcc49, 0x01}, + {0xcc4a, 0x01}, + {0xcc4b, 0x01}, + {0xcc4c, 0x01}, + {0xcc4d, 0x01}, + {0xcc4e, 0x01}, + {0xcc4f, 0x01}, + {0xcc50, 0x01}, + {0xcc51, 0x01}, + {0xcc52, 0x01}, + {0xcc53, 0x01}, + {0xcc54, 0x01}, + {0xcc55, 0x01}, + {0xcc56, 0x01}, + {0xcc57, 0x01}, + {0xcc58, 0x01}, + {0xcc59, 0x01}, + {0xcc5a, 0x01}, + {0xcc5b, 0x01}, + {0xcc5c, 0x01}, + {0xcc5d, 0x01}, + {0xcc5e, 0x01}, + {0xcc5f, 0x01}, + {0xcc60, 0x01}, + {0xcc61, 0x01}, + {0xcc62, 0x01}, + {0xcc63, 0x01}, + {0xcc64, 0x01}, + {0xcc65, 0x01}, + {0xcc66, 0x01}, + {0xcc67, 0x01}, + {0xcc68, 0x01}, + {0xcc69, 0x01}, + {0xcc6a, 0x01}, + {0xcc6b, 0x01}, + {0xcc6c, 0x01}, + {0xcc6d, 0x01}, + {0xcc6e, 0x01}, + {0xcc6f, 0x01}, + {0xcc70, 0x01}, + {0xcc71, 0x01}, + {0xcc72, 0x01}, + {0xcc73, 0x01}, + {0xcc74, 0x01}, + {0xcc75, 0x01}, + {0xcc76, 0x01}, + {0xcc77, 0x01}, + {0xcc78, 0x01}, + {0xcc79, 0x01}, + {0xcc7a, 0x01}, + {0xcc7b, 0x01}, + {0xcc7c, 0x01}, + {0xcc7d, 0x01}, + {0xcc7e, 0x01}, + {0xcc80, 0x01}, + {0xcc81, 0x01}, + {0xcc82, 0x01}, + {0xcc83, 0x01}, + {0xcc84, 0x01}, + {0xcc85, 0x01}, + {0xcc86, 0x01}, + {0xcc87, 0x01}, + {0xcc88, 0x01}, + {0xcc89, 0x01}, + {0xcc8a, 0x01}, + {0xcc8b, 0x01}, + {0xcc8c, 0x01}, + {0xcc8d, 0x01}, + {0xcc8e, 0x01}, + {0xcc8f, 0x01}, + {0xcc90, 0x01}, + {0xcc91, 0x01}, + {0xcc92, 0x01}, + {0xcc93, 0x01}, + {0xcc94, 0x01}, + {0xcc95, 0x01}, + {0xcc96, 0x01}, + {0xcc97, 0x01}, + {0xcc98, 0x01}, + {0xcc99, 0x01}, + {0xcc9a, 0x01}, + {0xcc9b, 0x01}, + {0xcc9c, 0x01}, + {0xcc9d, 0x01}, + {0xcc9e, 0x01}, + {0xcc9f, 0x01}, + {0xcca0, 0x01}, + {0xcca1, 0x01}, + {0xcca2, 0x01}, + {0xcca3, 0x01}, + {0xcca4, 0x01}, + {0xcca5, 0x01}, + {0xcca6, 0x01}, + {0xcca7, 0x01}, + {0xcca8, 0x01}, + {0xcca9, 0x01}, + {0xccaa, 0x01}, + {0xccab, 0x01}, + {0xccac, 0x01}, + {0xccad, 0x01}, + {0xccae, 0x01}, + {0xccaf, 0x01}, + {0xccb0, 0x01}, + {0xccb1, 0x01}, + {0xccb2, 0x01}, + {0xccb3, 0x01}, + {0xccb4, 0x01}, + {0xccb5, 0x01}, + {0xccb6, 0x01}, + {0xccb7, 0x01}, + {0xccb8, 0x01}, + {0xccb9, 0x01}, + {0xccba, 0x01}, + {0xccbb, 0x01}, + {0xccbc, 0x01}, + {0xccbd, 0x01}, + {0xccbe, 0x01}, + {0xccbf, 0x01}, + {0xccc0, 0x01}, + {0xccc1, 0x01}, + {0xccc2, 0x01}, + {0xccc3, 0x01}, + {0xccc4, 0x01}, + {0xccc5, 0x01}, + {0xccc6, 0x01}, + {0xccc7, 0x01}, + {0xccc8, 0x01}, + {0xccc9, 0x01}, + {0xccca, 0x01}, + {0xcccb, 0x01}, + {0xcccc, 0x01}, + {0xcccd, 0x01}, + {0xccce, 0x01}, + {0xcccf, 0x01}, + {0xccd0, 0x01}, + {0xccd1, 0x01}, + {0xccd2, 0x01}, + {0xccd3, 0x01}, + {0xccd4, 0x01}, + {0xccd5, 0x01}, + {0xccd6, 0x01}, + {0xccd7, 0x01}, + {0xccd8, 0x01}, + {0xccd9, 0x01}, + {0xccda, 0x01}, + {0xccdb, 0x01}, + {0xccdc, 0x01}, + {0xccdd, 0x01}, + {0xccde, 0x01}, + {0xccdf, 0x01}, + {0xcce0, 0x01}, + {0xcce1, 0x01}, + {0xcce2, 0x01}, + {0xcce3, 0x01}, + {0xcce4, 0x01}, + {0xcce5, 0x01}, + {0xcce6, 0x01}, + {0xcce7, 0x01}, + {0xcce8, 0x01}, + {0xcce9, 0x01}, + {0xccea, 0x01}, + {0xcceb, 0x01}, + {0xccec, 0x01}, + {0xcced, 0x01}, + {0xccee, 0x01}, + {0xccef, 0x01}, + {0xccf0, 0x01}, + {0xccf1, 0x01}, + {0xccf2, 0x01}, + {0xccf3, 0x01}, + {0xccf4, 0x01}, + {0xccf5, 0x01}, + {0xccf6, 0x01}, + {0xccf7, 0x01}, + {0xccf8, 0x01}, + {0xccf9, 0x01}, + {0xccfa, 0x01}, + {0xccfb, 0x01}, + {0xccfc, 0x01}, + {0xccfd, 0x01}, + {0xccfe, 0x01}, + {0xcd40, 0x01}, + {0xcd41, 0x01}, + {0xcd42, 0x01}, + {0xcd44, 0x01}, + {0xcd45, 0x01}, + {0xcd46, 0x01}, + {0xcd47, 0x01}, + {0xcd48, 0x01}, + {0xcd49, 0x01}, + {0xcd4a, 0x01}, + {0xcd4b, 0x01}, + {0xcd4c, 0x01}, + {0xcd4d, 0x01}, + {0xcd4e, 0x01}, + {0xcd4f, 0x01}, + {0xcd50, 0x01}, + {0xcd51, 0x01}, + {0xcd52, 0x01}, + {0xcd53, 0x01}, + {0xcd54, 0x01}, + {0xcd55, 0x01}, + {0xcd56, 0x01}, + {0xcd57, 0x01}, + {0xcd58, 0x01}, + {0xcd59, 0x01}, + {0xcd5a, 0x01}, + {0xcd5b, 0x01}, + {0xcd5c, 0x01}, + {0xcd5d, 0x01}, + {0xcd5e, 0x01}, + {0xcd5f, 0x01}, + {0xcd60, 0x01}, + {0xcd61, 0x01}, + {0xcd62, 0x01}, + {0xcd63, 0x01}, + {0xcd64, 0x01}, + {0xcd65, 0x01}, + {0xcd66, 0x01}, + {0xcd67, 0x01}, + {0xcd68, 0x01}, + {0xcd69, 0x01}, + {0xcd6a, 0x01}, + {0xcd6b, 0x01}, + {0xcd6c, 0x01}, + {0xcd6d, 0x01}, + {0xcd6e, 0x01}, + {0xcd6f, 0x01}, + {0xcd70, 0x01}, + {0xcd71, 0x01}, + {0xcd72, 0x01}, + {0xcd73, 0x01}, + {0xcd74, 0x01}, + {0xcd75, 0x01}, + {0xcd76, 0x01}, + {0xcd77, 0x01}, + {0xcd78, 0x01}, + {0xcd79, 0x01}, + {0xcd7a, 0x01}, + {0xcd7b, 0x01}, + {0xcd7c, 0x01}, + {0xcd7d, 0x01}, + {0xcd7e, 0x01}, + {0xcd80, 0x01}, + {0xcd81, 0x01}, + {0xcd82, 0x01}, + {0xcd83, 0x01}, + {0xcd84, 0x01}, + {0xcd85, 0x01}, + {0xcd86, 0x01}, + {0xcd87, 0x01}, + {0xcd88, 0x01}, + {0xcd89, 0x01}, + {0xcd8a, 0x01}, + {0xcd8b, 0x01}, + {0xcd8c, 0x01}, + {0xcd8d, 0x01}, + {0xcd8e, 0x01}, + {0xcd8f, 0x01}, + {0xcd90, 0x01}, + {0xcd91, 0x01}, + {0xcd92, 0x01}, + {0xcd93, 0x01}, + {0xcd94, 0x01}, + {0xcd95, 0x01}, + {0xcd96, 0x01}, + {0xcd97, 0x01}, + {0xcd98, 0x01}, + {0xcd99, 0x01}, + {0xcd9a, 0x01}, + {0xcd9b, 0x01}, + {0xcd9c, 0x01}, + {0xcd9d, 0x01}, + {0xcd9e, 0x01}, + {0xcd9f, 0x01}, + {0xcda0, 0x01}, + {0xcda1, 0x01}, + {0xcda2, 0x01}, + {0xcda3, 0x01}, + {0xcda4, 0x01}, + {0xcda5, 0x01}, + {0xcda6, 0x01}, + {0xcda7, 0x01}, + {0xcda8, 0x01}, + {0xcda9, 0x01}, + {0xcdaa, 0x01}, + {0xcdab, 0x01}, + {0xcdac, 0x01}, + {0xcdad, 0x01}, + {0xcdae, 0x01}, + {0xcdaf, 0x01}, + {0xcdb0, 0x01}, + {0xcdb1, 0x01}, + {0xcdb2, 0x01}, + {0xcdb3, 0x01}, + {0xcdb4, 0x01}, + {0xcdb5, 0x01}, + {0xcdb6, 0x01}, + {0xcdb7, 0x01}, + {0xcdb8, 0x01}, + {0xcdb9, 0x01}, + {0xcdba, 0x01}, + {0xcdbb, 0x01}, + {0xcdbc, 0x01}, + {0xcdbd, 0x01}, + {0xcdbe, 0x01}, + {0xcdbf, 0x01}, + {0xcdc0, 0x01}, + {0xcdc1, 0x01}, + {0xcdc2, 0x01}, + {0xcdc3, 0x01}, + {0xcdc4, 0x01}, + {0xcdc5, 0x01}, + {0xcdc6, 0x01}, + {0xcdc7, 0x01}, + {0xcdc8, 0x01}, + {0xcdc9, 0x01}, + {0xcdca, 0x01}, + {0xcdcb, 0x01}, + {0xcdcc, 0x01}, + {0xcdcd, 0x01}, + {0xcdce, 0x01}, + {0xcdcf, 0x01}, + {0xcdd0, 0x01}, + {0xcdd1, 0x01}, + {0xcdd2, 0x01}, + {0xcdd3, 0x01}, + {0xcdd4, 0x01}, + {0xcdd5, 0x01}, + {0xcdd6, 0x01}, + {0xcdd7, 0x01}, + {0xcdd8, 0x01}, + {0xcdd9, 0x01}, + {0xcdda, 0x01}, + {0xcddb, 0x01}, + {0xcddc, 0x01}, + {0xcddd, 0x01}, + {0xcdde, 0x01}, + {0xcddf, 0x01}, + {0xcde0, 0x01}, + {0xcde1, 0x01}, + {0xcde2, 0x01}, + {0xcde3, 0x01}, + {0xcde4, 0x01}, + {0xcde5, 0x01}, + {0xcde6, 0x01}, + {0xcde7, 0x01}, + {0xcde8, 0x01}, + {0xcde9, 0x01}, + {0xcdea, 0x01}, + {0xcdeb, 0x01}, + {0xcdec, 0x01}, + {0xcded, 0x01}, + {0xcdee, 0x01}, + {0xcdef, 0x01}, + {0xcdf0, 0x01}, + {0xcdf1, 0x01}, + {0xcdf2, 0x01}, + {0xcdf3, 0x01}, + {0xcdf4, 0x01}, + {0xcdf5, 0x01}, + {0xcdf6, 0x01}, + {0xcdf7, 0x01}, + {0xcdf8, 0x01}, + {0xcdf9, 0x01}, + {0xcdfa, 0x01}, + {0xcdfb, 0x01}, + {0xcdfc, 0x01}, + {0xcdfd, 0x01}, + {0xcdfe, 0x01}, + {0xce40, 0x01}, + {0xce41, 0x01}, + {0xce42, 0x01}, + {0xce43, 0x01}, + {0xce44, 0x01}, + {0xce45, 0x01}, + {0xce46, 0x01}, + {0xce47, 0x01}, + {0xce48, 0x01}, + {0xce49, 0x01}, + {0xce4a, 0x01}, + {0xce4b, 0x01}, + {0xce4c, 0x01}, + {0xce4d, 0x01}, + {0xce4e, 0x01}, + {0xce4f, 0x01}, + {0xce50, 0x01}, + {0xce51, 0x01}, + {0xce52, 0x01}, + {0xce53, 0x01}, + {0xce54, 0x01}, + {0xce55, 0x01}, + {0xce56, 0x01}, + {0xce57, 0x01}, + {0xce58, 0x01}, + {0xce59, 0x01}, + {0xce5a, 0x01}, + {0xce5b, 0x01}, + {0xce5c, 0x01}, + {0xce5d, 0x01}, + {0xce5e, 0x01}, + {0xce60, 0x01}, + {0xce61, 0x01}, + {0xce62, 0x01}, + {0xce63, 0x01}, + {0xce64, 0x01}, + {0xce65, 0x01}, + {0xce66, 0x01}, + {0xce67, 0x01}, + {0xce68, 0x01}, + {0xce69, 0x01}, + {0xce6a, 0x01}, + {0xce6b, 0x01}, + {0xce6c, 0x01}, + {0xce6d, 0x01}, + {0xce6e, 0x01}, + {0xce6f, 0x01}, + {0xce70, 0x01}, + {0xce71, 0x01}, + {0xce72, 0x01}, + {0xce73, 0x01}, + {0xce74, 0x01}, + {0xce75, 0x01}, + {0xce76, 0x01}, + {0xce77, 0x01}, + {0xce78, 0x01}, + {0xce79, 0x01}, + {0xce7a, 0x01}, + {0xce7b, 0x01}, + {0xce7c, 0x01}, + {0xce7d, 0x01}, + {0xce7e, 0x01}, + {0xce80, 0x01}, + {0xce81, 0x01}, + {0xce82, 0x01}, + {0xce83, 0x01}, + {0xce84, 0x01}, + {0xce85, 0x01}, + {0xce86, 0x01}, + {0xce87, 0x01}, + {0xce88, 0x01}, + {0xce89, 0x01}, + {0xce8a, 0x01}, + {0xce8b, 0x01}, + {0xce8c, 0x01}, + {0xce8d, 0x01}, + {0xce8e, 0x01}, + {0xce8f, 0x01}, + {0xce90, 0x01}, + {0xce91, 0x01}, + {0xce92, 0x01}, + {0xce93, 0x01}, + {0xce94, 0x01}, + {0xce95, 0x01}, + {0xce96, 0x01}, + {0xce97, 0x01}, + {0xce98, 0x01}, + {0xce99, 0x01}, + {0xce9a, 0x01}, + {0xce9b, 0x01}, + {0xce9c, 0x01}, + {0xce9d, 0x01}, + {0xce9e, 0x01}, + {0xce9f, 0x01}, + {0xcea0, 0x01}, + {0xcea1, 0x01}, + {0xcea2, 0x01}, + {0xcea3, 0x01}, + {0xcea4, 0x01}, + {0xcea5, 0x01}, + {0xcea6, 0x01}, + {0xcea7, 0x01}, + {0xcea8, 0x01}, + {0xcea9, 0x01}, + {0xceaa, 0x01}, + {0xceab, 0x01}, + {0xceac, 0x01}, + {0xcead, 0x01}, + {0xceae, 0x01}, + {0xceaf, 0x01}, + {0xceb0, 0x01}, + {0xceb1, 0x01}, + {0xceb2, 0x01}, + {0xceb3, 0x01}, + {0xceb4, 0x01}, + {0xceb5, 0x01}, + {0xceb6, 0x01}, + {0xceb7, 0x01}, + {0xceb8, 0x01}, + {0xceb9, 0x01}, + {0xceba, 0x01}, + {0xcebb, 0x01}, + {0xcebc, 0x01}, + {0xcebd, 0x01}, + {0xcebe, 0x01}, + {0xcebf, 0x01}, + {0xcec0, 0x01}, + {0xcec1, 0x01}, + {0xcec2, 0x01}, + {0xcec3, 0x01}, + {0xcec4, 0x01}, + {0xcec5, 0x01}, + {0xcec6, 0x01}, + {0xcec7, 0x01}, + {0xcec8, 0x01}, + {0xcec9, 0x01}, + {0xceca, 0x01}, + {0xcecb, 0x01}, + {0xcecc, 0x01}, + {0xcecd, 0x01}, + {0xcece, 0x01}, + {0xcecf, 0x01}, + {0xced0, 0x01}, + {0xced1, 0x01}, + {0xced2, 0x01}, + {0xced3, 0x01}, + {0xced4, 0x01}, + {0xced5, 0x01}, + {0xced6, 0x01}, + {0xced7, 0x01}, + {0xced8, 0x01}, + {0xced9, 0x01}, + {0xceda, 0x01}, + {0xcedb, 0x01}, + {0xcedc, 0x01}, + {0xcedd, 0x01}, + {0xcede, 0x01}, + {0xcedf, 0x01}, + {0xcee0, 0x01}, + {0xcee1, 0x01}, + {0xcee2, 0x01}, + {0xcee3, 0x01}, + {0xcee4, 0x01}, + {0xcee5, 0x01}, + {0xcee6, 0x01}, + {0xcee7, 0x01}, + {0xcee8, 0x01}, + {0xcee9, 0x01}, + {0xceea, 0x01}, + {0xceeb, 0x01}, + {0xceec, 0x01}, + {0xceed, 0x01}, + {0xceee, 0x01}, + {0xceef, 0x01}, + {0xcef0, 0x01}, + {0xcef1, 0x01}, + {0xcef2, 0x01}, + {0xcef3, 0x01}, + {0xcef4, 0x01}, + {0xcef5, 0x01}, + {0xcef6, 0x01}, + {0xcef7, 0x01}, + {0xcef8, 0x01}, + {0xcef9, 0x01}, + {0xcefa, 0x01}, + {0xcefb, 0x01}, + {0xcefc, 0x01}, + {0xcefd, 0x01}, + {0xcefe, 0x01}, + {0xcf40, 0x01}, + {0xcf41, 0x01}, + {0xcf42, 0x01}, + {0xcf43, 0x01}, + {0xcf44, 0x01}, + {0xcf45, 0x01}, + {0xcf46, 0x01}, + {0xcf47, 0x01}, + {0xcf48, 0x01}, + {0xcf49, 0x01}, + {0xcf4a, 0x01}, + {0xcf4b, 0x01}, + {0xcf4c, 0x01}, + {0xcf4d, 0x01}, + {0xcf4e, 0x01}, + {0xcf4f, 0x01}, + {0xcf50, 0x01}, + {0xcf51, 0x01}, + {0xcf52, 0x01}, + {0xcf53, 0x01}, + {0xcf54, 0x01}, + {0xcf55, 0x01}, + {0xcf56, 0x01}, + {0xcf57, 0x01}, + {0xcf58, 0x01}, + {0xcf59, 0x01}, + {0xcf5a, 0x01}, + {0xcf5b, 0x01}, + {0xcf5c, 0x01}, + {0xcf5d, 0x01}, + {0xcf5e, 0x01}, + {0xcf5f, 0x01}, + {0xcf60, 0x01}, + {0xcf61, 0x01}, + {0xcf62, 0x01}, + {0xcf63, 0x01}, + {0xcf64, 0x01}, + {0xcf65, 0x01}, + {0xcf66, 0x01}, + {0xcf67, 0x01}, + {0xcf68, 0x01}, + {0xcf69, 0x01}, + {0xcf6a, 0x01}, + {0xcf6b, 0x01}, + {0xcf6c, 0x01}, + {0xcf6d, 0x01}, + {0xcf6e, 0x01}, + {0xcf6f, 0x01}, + {0xcf70, 0x01}, + {0xcf71, 0x01}, + {0xcf72, 0x01}, + {0xcf73, 0x01}, + {0xcf74, 0x01}, + {0xcf75, 0x01}, + {0xcf76, 0x01}, + {0xcf77, 0x01}, + {0xcf78, 0x01}, + {0xcf79, 0x01}, + {0xcf7a, 0x01}, + {0xcf7b, 0x01}, + {0xcf7c, 0x01}, + {0xcf7d, 0x01}, + {0xcf7e, 0x01}, + {0xcf80, 0x01}, + {0xcf81, 0x01}, + {0xcf82, 0x01}, + {0xcf83, 0x01}, + {0xcf84, 0x01}, + {0xcf85, 0x01}, + {0xcf86, 0x01}, + {0xcf87, 0x01}, + {0xcf88, 0x01}, + {0xcf89, 0x01}, + {0xcf8a, 0x01}, + {0xcf8b, 0x01}, + {0xcf8c, 0x01}, + {0xcf8d, 0x01}, + {0xcf8e, 0x01}, + {0xcf8f, 0x01}, + {0xcf90, 0x01}, + {0xcf91, 0x01}, + {0xcf92, 0x01}, + {0xcf93, 0x01}, + {0xcf94, 0x01}, + {0xcf95, 0x01}, + {0xcf96, 0x01}, + {0xcf97, 0x01}, + {0xcf98, 0x01}, + {0xcf99, 0x01}, + {0xcf9a, 0x01}, + {0xcf9b, 0x01}, + {0xcf9c, 0x01}, + {0xcf9d, 0x01}, + {0xcf9e, 0x01}, + {0xcf9f, 0x01}, + {0xcfa0, 0x01}, + {0xcfa1, 0x01}, + {0xcfa2, 0x01}, + {0xcfa3, 0x01}, + {0xcfa4, 0x01}, + {0xcfa5, 0x01}, + {0xcfa6, 0x01}, + {0xcfa7, 0x01}, + {0xcfa8, 0x01}, + {0xcfa9, 0x01}, + {0xcfaa, 0x01}, + {0xcfab, 0x01}, + {0xcfac, 0x01}, + {0xcfad, 0x01}, + {0xcfae, 0x01}, + {0xcfaf, 0x01}, + {0xcfb0, 0x01}, + {0xcfb1, 0x01}, + {0xcfb2, 0x01}, + {0xcfb3, 0x01}, + {0xcfb4, 0x01}, + {0xcfb5, 0x01}, + {0xcfb6, 0x01}, + {0xcfb7, 0x01}, + {0xcfb8, 0x01}, + {0xcfb9, 0x01}, + {0xcfba, 0x01}, + {0xcfbb, 0x01}, + {0xcfbc, 0x01}, + {0xcfbd, 0x01}, + {0xcfbe, 0x01}, + {0xcfbf, 0x01}, + {0xcfc0, 0x01}, + {0xcfc1, 0x01}, + {0xcfc2, 0x01}, + {0xcfc3, 0x01}, + {0xcfc4, 0x01}, + {0xcfc5, 0x01}, + {0xcfc6, 0x01}, + {0xcfc7, 0x01}, + {0xcfc8, 0x01}, + {0xcfc9, 0x01}, + {0xcfca, 0x01}, + {0xcfcb, 0x01}, + {0xcfcc, 0x01}, + {0xcfcd, 0x01}, + {0xcfce, 0x01}, + {0xcfcf, 0x01}, + {0xcfd0, 0x01}, + {0xcfd1, 0x01}, + {0xcfd2, 0x01}, + {0xcfd3, 0x01}, + {0xcfd4, 0x01}, + {0xcfd5, 0x01}, + {0xcfd6, 0x01}, + {0xcfd7, 0x01}, + {0xcfd8, 0x01}, + {0xcfd9, 0x01}, + {0xcfda, 0x01}, + {0xcfdb, 0x01}, + {0xcfdc, 0x01}, + {0xcfdd, 0x01}, + {0xcfde, 0x01}, + {0xcfdf, 0x01}, + {0xcfe0, 0x01}, + {0xcfe1, 0x01}, + {0xcfe2, 0x01}, + {0xcfe3, 0x01}, + {0xcfe4, 0x01}, + {0xcfe5, 0x01}, + {0xcfe6, 0x01}, + {0xcfe7, 0x01}, + {0xcfe8, 0x01}, + {0xcfe9, 0x01}, + {0xcfea, 0x01}, + {0xcfeb, 0x01}, + {0xcfec, 0x01}, + {0xcfed, 0x01}, + {0xcfee, 0x01}, + {0xcfef, 0x01}, + {0xcff0, 0x01}, + {0xcff1, 0x01}, + {0xcff2, 0x01}, + {0xcff3, 0x01}, + {0xcff4, 0x01}, + {0xcff5, 0x01}, + {0xcff6, 0x01}, + {0xcff7, 0x01}, + {0xcff8, 0x01}, + {0xcff9, 0x01}, + {0xcffa, 0x01}, + {0xcffb, 0x01}, + {0xcffc, 0x01}, + {0xcffd, 0x01}, + {0xcffe, 0x01}, + {0xd040, 0x01}, + {0xd041, 0x01}, + {0xd042, 0x01}, + {0xd043, 0x01}, + {0xd044, 0x01}, + {0xd045, 0x01}, + {0xd046, 0x01}, + {0xd047, 0x01}, + {0xd048, 0x01}, + {0xd049, 0x01}, + {0xd04a, 0x01}, + {0xd04b, 0x01}, + {0xd04c, 0x01}, + {0xd04d, 0x01}, + {0xd04e, 0x01}, + {0xd04f, 0x01}, + {0xd050, 0x01}, + {0xd051, 0x01}, + {0xd052, 0x01}, + {0xd053, 0x01}, + {0xd054, 0x01}, + {0xd055, 0x01}, + {0xd056, 0x01}, + {0xd057, 0x01}, + {0xd058, 0x01}, + {0xd059, 0x01}, + {0xd05a, 0x01}, + {0xd05b, 0x01}, + {0xd05c, 0x01}, + {0xd05d, 0x01}, + {0xd05e, 0x01}, + {0xd05f, 0x01}, + {0xd060, 0x01}, + {0xd061, 0x01}, + {0xd062, 0x01}, + {0xd063, 0x01}, + {0xd064, 0x01}, + {0xd065, 0x01}, + {0xd066, 0x01}, + {0xd067, 0x01}, + {0xd068, 0x01}, + {0xd069, 0x01}, + {0xd06a, 0x01}, + {0xd06b, 0x01}, + {0xd06c, 0x01}, + {0xd06d, 0x01}, + {0xd06e, 0x01}, + {0xd06f, 0x01}, + {0xd070, 0x01}, + {0xd071, 0x01}, + {0xd072, 0x01}, + {0xd073, 0x01}, + {0xd074, 0x01}, + {0xd075, 0x01}, + {0xd076, 0x01}, + {0xd077, 0x01}, + {0xd078, 0x01}, + {0xd079, 0x01}, + {0xd07a, 0x01}, + {0xd07b, 0x01}, + {0xd07c, 0x01}, + {0xd07d, 0x01}, + {0xd07e, 0x01}, + {0xd080, 0x01}, + {0xd081, 0x01}, + {0xd082, 0x01}, + {0xd083, 0x01}, + {0xd084, 0x01}, + {0xd085, 0x01}, + {0xd086, 0x01}, + {0xd087, 0x01}, + {0xd088, 0x01}, + {0xd089, 0x01}, + {0xd08a, 0x01}, + {0xd08b, 0x01}, + {0xd08c, 0x01}, + {0xd08d, 0x01}, + {0xd08e, 0x01}, + {0xd08f, 0x01}, + {0xd090, 0x01}, + {0xd091, 0x01}, + {0xd092, 0x01}, + {0xd093, 0x01}, + {0xd094, 0x01}, + {0xd095, 0x01}, + {0xd096, 0x01}, + {0xd097, 0x01}, + {0xd098, 0x01}, + {0xd099, 0x01}, + {0xd09a, 0x01}, + {0xd09b, 0x01}, + {0xd09c, 0x01}, + {0xd09d, 0x01}, + {0xd09e, 0x01}, + {0xd09f, 0x01}, + {0xd0a0, 0x01}, + {0xd0a1, 0x01}, + {0xd0a2, 0x01}, + {0xd0a3, 0x01}, + {0xd0a4, 0x01}, + {0xd0a5, 0x01}, + {0xd0a6, 0x01}, + {0xd0a7, 0x01}, + {0xd0a8, 0x01}, + {0xd0a9, 0x01}, + {0xd0aa, 0x01}, + {0xd0ab, 0x01}, + {0xd0ac, 0x01}, + {0xd0ad, 0x01}, + {0xd0ae, 0x01}, + {0xd0af, 0x01}, + {0xd0b0, 0x01}, + {0xd0b1, 0x01}, + {0xd0b2, 0x01}, + {0xd0b3, 0x01}, + {0xd0b4, 0x01}, + {0xd0b5, 0x01}, + {0xd0b6, 0x01}, + {0xd0b7, 0x01}, + {0xd0b8, 0x01}, + {0xd0b9, 0x01}, + {0xd0ba, 0x01}, + {0xd0bb, 0x01}, + {0xd0bc, 0x01}, + {0xd0bd, 0x01}, + {0xd0be, 0x01}, + {0xd0bf, 0x01}, + {0xd0c0, 0x01}, + {0xd0c1, 0x01}, + {0xd0c2, 0x01}, + {0xd0c3, 0x01}, + {0xd0c4, 0x01}, + {0xd0c5, 0x01}, + {0xd0c6, 0x01}, + {0xd0c7, 0x01}, + {0xd0c8, 0x01}, + {0xd0c9, 0x01}, + {0xd0ca, 0x01}, + {0xd0cb, 0x01}, + {0xd0cc, 0x01}, + {0xd0cd, 0x01}, + {0xd0ce, 0x01}, + {0xd0cf, 0x01}, + {0xd0d0, 0x01}, + {0xd0d1, 0x01}, + {0xd0d2, 0x01}, + {0xd0d3, 0x01}, + {0xd0d4, 0x01}, + {0xd0d5, 0x01}, + {0xd0d6, 0x01}, + {0xd0d7, 0x01}, + {0xd0d8, 0x01}, + {0xd0d9, 0x01}, + {0xd0da, 0x01}, + {0xd0db, 0x01}, + {0xd0dc, 0x01}, + {0xd0dd, 0x01}, + {0xd0de, 0x01}, + {0xd0df, 0x01}, + {0xd0e0, 0x01}, + {0xd0e1, 0x01}, + {0xd0e2, 0x01}, + {0xd0e3, 0x01}, + {0xd0e4, 0x01}, + {0xd0e5, 0x01}, + {0xd0e6, 0x01}, + {0xd0e7, 0x01}, + {0xd0e8, 0x01}, + {0xd0e9, 0x01}, + {0xd0ea, 0x01}, + {0xd0eb, 0x01}, + {0xd0ec, 0x01}, + {0xd0ed, 0x01}, + {0xd0ee, 0x01}, + {0xd0ef, 0x01}, + {0xd0f0, 0x01}, + {0xd0f1, 0x01}, + {0xd0f2, 0x01}, + {0xd0f3, 0x01}, + {0xd0f4, 0x01}, + {0xd0f5, 0x01}, + {0xd0f6, 0x01}, + {0xd0f7, 0x01}, + {0xd0f8, 0x01}, + {0xd0f9, 0x01}, + {0xd0fa, 0x01}, + {0xd0fb, 0x01}, + {0xd0fc, 0x01}, + {0xd0fd, 0x01}, + {0xd0fe, 0x01}, + {0xd140, 0x01}, + {0xd141, 0x01}, + {0xd142, 0x01}, + {0xd144, 0x01}, + {0xd145, 0x01}, + {0xd146, 0x01}, + {0xd147, 0x01}, + {0xd148, 0x01}, + {0xd149, 0x01}, + {0xd14a, 0x01}, + {0xd14b, 0x01}, + {0xd14c, 0x01}, + {0xd14d, 0x01}, + {0xd14e, 0x01}, + {0xd14f, 0x01}, + {0xd150, 0x01}, + {0xd151, 0x01}, + {0xd152, 0x01}, + {0xd153, 0x01}, + {0xd154, 0x01}, + {0xd155, 0x01}, + {0xd156, 0x01}, + {0xd157, 0x01}, + {0xd158, 0x01}, + {0xd159, 0x01}, + {0xd15a, 0x01}, + {0xd15b, 0x01}, + {0xd15c, 0x01}, + {0xd15d, 0x01}, + {0xd15e, 0x01}, + {0xd15f, 0x01}, + {0xd160, 0x01}, + {0xd161, 0x01}, + {0xd162, 0x01}, + {0xd163, 0x01}, + {0xd164, 0x01}, + {0xd165, 0x01}, + {0xd166, 0x01}, + {0xd167, 0x01}, + {0xd168, 0x01}, + {0xd169, 0x01}, + {0xd16a, 0x01}, + {0xd16b, 0x01}, + {0xd16c, 0x01}, + {0xd16d, 0x01}, + {0xd16e, 0x01}, + {0xd16f, 0x01}, + {0xd170, 0x01}, + {0xd171, 0x01}, + {0xd172, 0x01}, + {0xd173, 0x01}, + {0xd174, 0x01}, + {0xd175, 0x01}, + {0xd176, 0x01}, + {0xd177, 0x01}, + {0xd178, 0x01}, + {0xd179, 0x01}, + {0xd17a, 0x01}, + {0xd17b, 0x01}, + {0xd17c, 0x01}, + {0xd17d, 0x01}, + {0xd17e, 0x01}, + {0xd180, 0x01}, + {0xd181, 0x01}, + {0xd182, 0x01}, + {0xd183, 0x01}, + {0xd184, 0x01}, + {0xd185, 0x01}, + {0xd186, 0x01}, + {0xd187, 0x01}, + {0xd188, 0x01}, + {0xd189, 0x01}, + {0xd18a, 0x01}, + {0xd18b, 0x01}, + {0xd18c, 0x01}, + {0xd18d, 0x01}, + {0xd18e, 0x01}, + {0xd18f, 0x01}, + {0xd190, 0x01}, + {0xd191, 0x01}, + {0xd192, 0x01}, + {0xd193, 0x01}, + {0xd194, 0x01}, + {0xd195, 0x01}, + {0xd196, 0x01}, + {0xd197, 0x01}, + {0xd198, 0x01}, + {0xd199, 0x01}, + {0xd19a, 0x01}, + {0xd19b, 0x01}, + {0xd19c, 0x01}, + {0xd19d, 0x01}, + {0xd19e, 0x01}, + {0xd19f, 0x01}, + {0xd1a0, 0x01}, + {0xd1a1, 0x01}, + {0xd1a2, 0x01}, + {0xd1a3, 0x01}, + {0xd1a4, 0x01}, + {0xd1a5, 0x01}, + {0xd1a6, 0x01}, + {0xd1a7, 0x01}, + {0xd1a8, 0x01}, + {0xd1a9, 0x01}, + {0xd1aa, 0x01}, + {0xd1ab, 0x01}, + {0xd1ac, 0x01}, + {0xd1ad, 0x01}, + {0xd1ae, 0x01}, + {0xd1af, 0x01}, + {0xd1b0, 0x01}, + {0xd1b1, 0x01}, + {0xd1b2, 0x01}, + {0xd1b3, 0x01}, + {0xd1b4, 0x01}, + {0xd1b5, 0x01}, + {0xd1b6, 0x01}, + {0xd1b7, 0x01}, + {0xd1b8, 0x01}, + {0xd1b9, 0x01}, + {0xd1ba, 0x01}, + {0xd1bb, 0x01}, + {0xd1bc, 0x01}, + {0xd1bd, 0x01}, + {0xd1be, 0x01}, + {0xd1bf, 0x01}, + {0xd1c0, 0x01}, + {0xd1c1, 0x01}, + {0xd1c2, 0x01}, + {0xd1c3, 0x01}, + {0xd1c4, 0x01}, + {0xd1c5, 0x01}, + {0xd1c6, 0x01}, + {0xd1c7, 0x01}, + {0xd1c8, 0x01}, + {0xd1c9, 0x01}, + {0xd1ca, 0x01}, + {0xd1cb, 0x01}, + {0xd1cc, 0x01}, + {0xd1cd, 0x01}, + {0xd1ce, 0x01}, + {0xd1cf, 0x01}, + {0xd1d0, 0x01}, + {0xd1d1, 0x01}, + {0xd1d2, 0x01}, + {0xd1d3, 0x01}, + {0xd1d4, 0x01}, + {0xd1d5, 0x01}, + {0xd1d6, 0x01}, + {0xd1d7, 0x01}, + {0xd1d8, 0x01}, + {0xd1d9, 0x01}, + {0xd1da, 0x01}, + {0xd1db, 0x01}, + {0xd1dc, 0x01}, + {0xd1dd, 0x01}, + {0xd1de, 0x01}, + {0xd1df, 0x01}, + {0xd1e0, 0x01}, + {0xd1e1, 0x01}, + {0xd1e2, 0x01}, + {0xd1e3, 0x01}, + {0xd1e4, 0x01}, + {0xd1e5, 0x01}, + {0xd1e6, 0x01}, + {0xd1e7, 0x01}, + {0xd1e8, 0x01}, + {0xd1e9, 0x01}, + {0xd1ea, 0x01}, + {0xd1eb, 0x01}, + {0xd1ec, 0x01}, + {0xd1ed, 0x01}, + {0xd1ee, 0x01}, + {0xd1ef, 0x01}, + {0xd1f0, 0x01}, + {0xd1f1, 0x01}, + {0xd1f2, 0x01}, + {0xd1f3, 0x01}, + {0xd1f4, 0x01}, + {0xd1f5, 0x01}, + {0xd1f6, 0x01}, + {0xd1f7, 0x01}, + {0xd1f8, 0x01}, + {0xd1f9, 0x01}, + {0xd1fa, 0x01}, + {0xd1fb, 0x01}, + {0xd1fc, 0x01}, + {0xd1fd, 0x01}, + {0xd1fe, 0x01}, + {0xd240, 0x01}, + {0xd241, 0x01}, + {0xd242, 0x01}, + {0xd243, 0x01}, + {0xd244, 0x01}, + {0xd245, 0x01}, + {0xd246, 0x01}, + {0xd247, 0x01}, + {0xd248, 0x01}, + {0xd249, 0x01}, + {0xd24a, 0x01}, + {0xd24b, 0x01}, + {0xd24c, 0x01}, + {0xd24d, 0x01}, + {0xd24e, 0x01}, + {0xd24f, 0x01}, + {0xd250, 0x01}, + {0xd251, 0x01}, + {0xd252, 0x01}, + {0xd253, 0x01}, + {0xd254, 0x01}, + {0xd255, 0x01}, + {0xd256, 0x01}, + {0xd257, 0x01}, + {0xd258, 0x01}, + {0xd259, 0x01}, + {0xd25a, 0x01}, + {0xd25b, 0x01}, + {0xd25c, 0x01}, + {0xd25d, 0x01}, + {0xd25e, 0x01}, + {0xd25f, 0x01}, + {0xd260, 0x01}, + {0xd261, 0x01}, + {0xd262, 0x01}, + {0xd263, 0x01}, + {0xd264, 0x01}, + {0xd265, 0x01}, + {0xd266, 0x01}, + {0xd267, 0x01}, + {0xd268, 0x01}, + {0xd269, 0x01}, + {0xd26a, 0x01}, + {0xd26b, 0x01}, + {0xd26c, 0x01}, + {0xd26d, 0x01}, + {0xd26e, 0x01}, + {0xd26f, 0x01}, + {0xd270, 0x01}, + {0xd271, 0x01}, + {0xd272, 0x01}, + {0xd273, 0x01}, + {0xd274, 0x01}, + {0xd275, 0x01}, + {0xd276, 0x01}, + {0xd277, 0x01}, + {0xd278, 0x01}, + {0xd279, 0x01}, + {0xd27a, 0x01}, + {0xd27b, 0x01}, + {0xd27c, 0x01}, + {0xd27d, 0x01}, + {0xd27e, 0x01}, + {0xd280, 0x01}, + {0xd281, 0x01}, + {0xd282, 0x01}, + {0xd283, 0x01}, + {0xd284, 0x01}, + {0xd285, 0x01}, + {0xd286, 0x01}, + {0xd287, 0x01}, + {0xd288, 0x01}, + {0xd289, 0x01}, + {0xd28a, 0x01}, + {0xd28b, 0x01}, + {0xd28c, 0x01}, + {0xd28d, 0x01}, + {0xd28e, 0x01}, + {0xd28f, 0x01}, + {0xd290, 0x01}, + {0xd291, 0x01}, + {0xd292, 0x01}, + {0xd293, 0x01}, + {0xd294, 0x01}, + {0xd295, 0x01}, + {0xd296, 0x01}, + {0xd297, 0x01}, + {0xd298, 0x01}, + {0xd299, 0x01}, + {0xd29a, 0x01}, + {0xd29b, 0x01}, + {0xd29c, 0x01}, + {0xd29d, 0x01}, + {0xd29e, 0x01}, + {0xd29f, 0x01}, + {0xd2a0, 0x01}, + {0xd2a1, 0x01}, + {0xd2a2, 0x01}, + {0xd2a3, 0x01}, + {0xd2a4, 0x01}, + {0xd2a5, 0x01}, + {0xd2a6, 0x01}, + {0xd2a7, 0x01}, + {0xd2a8, 0x01}, + {0xd2a9, 0x01}, + {0xd2aa, 0x01}, + {0xd2ab, 0x01}, + {0xd2ac, 0x01}, + {0xd2ad, 0x01}, + {0xd2ae, 0x01}, + {0xd2af, 0x01}, + {0xd2b0, 0x01}, + {0xd2b1, 0x01}, + {0xd2b2, 0x01}, + {0xd2b3, 0x01}, + {0xd2b4, 0x01}, + {0xd2b5, 0x01}, + {0xd2b6, 0x01}, + {0xd2b7, 0x01}, + {0xd2b8, 0x01}, + {0xd2b9, 0x01}, + {0xd2ba, 0x01}, + {0xd2bb, 0x01}, + {0xd2bc, 0x01}, + {0xd2bd, 0x01}, + {0xd2be, 0x01}, + {0xd2bf, 0x01}, + {0xd2c0, 0x01}, + {0xd2c1, 0x01}, + {0xd2c2, 0x01}, + {0xd2c3, 0x01}, + {0xd2c4, 0x01}, + {0xd2c5, 0x01}, + {0xd2c6, 0x01}, + {0xd2c7, 0x01}, + {0xd2c8, 0x01}, + {0xd2c9, 0x01}, + {0xd2ca, 0x01}, + {0xd2cb, 0x01}, + {0xd2cc, 0x01}, + {0xd2cd, 0x01}, + {0xd2ce, 0x01}, + {0xd2cf, 0x01}, + {0xd2d0, 0x01}, + {0xd2d1, 0x01}, + {0xd2d2, 0x01}, + {0xd2d3, 0x01}, + {0xd2d4, 0x01}, + {0xd2d5, 0x01}, + {0xd2d6, 0x01}, + {0xd2d7, 0x01}, + {0xd2d8, 0x01}, + {0xd2d9, 0x01}, + {0xd2da, 0x01}, + {0xd2db, 0x01}, + {0xd2dc, 0x01}, + {0xd2dd, 0x01}, + {0xd2de, 0x01}, + {0xd2df, 0x01}, + {0xd2e0, 0x01}, + {0xd2e1, 0x01}, + {0xd2e2, 0x01}, + {0xd2e3, 0x01}, + {0xd2e4, 0x01}, + {0xd2e5, 0x01}, + {0xd2e6, 0x01}, + {0xd2e7, 0x01}, + {0xd2e8, 0x01}, + {0xd2e9, 0x01}, + {0xd2ea, 0x01}, + {0xd2eb, 0x01}, + {0xd2ec, 0x01}, + {0xd2ed, 0x01}, + {0xd2ee, 0x01}, + {0xd2ef, 0x01}, + {0xd2f0, 0x01}, + {0xd2f1, 0x01}, + {0xd2f2, 0x01}, + {0xd2f3, 0x01}, + {0xd2f4, 0x01}, + {0xd2f5, 0x01}, + {0xd2f6, 0x01}, + {0xd2f7, 0x01}, + {0xd2f8, 0x01}, + {0xd2f9, 0x01}, + {0xd2fa, 0x01}, + {0xd2fb, 0x01}, + {0xd2fc, 0x01}, + {0xd2fd, 0x01}, + {0xd2fe, 0x01}, + {0xd340, 0x01}, + {0xd341, 0x01}, + {0xd342, 0x01}, + {0xd343, 0x01}, + {0xd344, 0x01}, + {0xd345, 0x01}, + {0xd346, 0x01}, + {0xd347, 0x01}, + {0xd348, 0x01}, + {0xd349, 0x01}, + {0xd34a, 0x01}, + {0xd34b, 0x01}, + {0xd34c, 0x01}, + {0xd34d, 0x01}, + {0xd34e, 0x01}, + {0xd34f, 0x01}, + {0xd350, 0x01}, + {0xd351, 0x01}, + {0xd352, 0x01}, + {0xd353, 0x01}, + {0xd354, 0x01}, + {0xd355, 0x01}, + {0xd356, 0x01}, + {0xd357, 0x01}, + {0xd358, 0x01}, + {0xd359, 0x01}, + {0xd35a, 0x01}, + {0xd35b, 0x01}, + {0xd35c, 0x01}, + {0xd35d, 0x01}, + {0xd35e, 0x01}, + {0xd35f, 0x01}, + {0xd360, 0x01}, + {0xd361, 0x01}, + {0xd362, 0x01}, + {0xd363, 0x01}, + {0xd364, 0x01}, + {0xd365, 0x01}, + {0xd366, 0x01}, + {0xd367, 0x01}, + {0xd368, 0x01}, + {0xd369, 0x01}, + {0xd36a, 0x01}, + {0xd36b, 0x01}, + {0xd36c, 0x01}, + {0xd36d, 0x01}, + {0xd36e, 0x01}, + {0xd36f, 0x01}, + {0xd370, 0x01}, + {0xd371, 0x01}, + {0xd372, 0x01}, + {0xd373, 0x01}, + {0xd374, 0x01}, + {0xd375, 0x01}, + {0xd376, 0x01}, + {0xd377, 0x01}, + {0xd378, 0x01}, + {0xd379, 0x01}, + {0xd37a, 0x01}, + {0xd37b, 0x01}, + {0xd37c, 0x01}, + {0xd37d, 0x01}, + {0xd37e, 0x01}, + {0xd380, 0x01}, + {0xd381, 0x01}, + {0xd382, 0x01}, + {0xd383, 0x01}, + {0xd384, 0x01}, + {0xd385, 0x01}, + {0xd386, 0x01}, + {0xd387, 0x01}, + {0xd388, 0x01}, + {0xd389, 0x01}, + {0xd38a, 0x01}, + {0xd38b, 0x01}, + {0xd38c, 0x01}, + {0xd38d, 0x01}, + {0xd38e, 0x01}, + {0xd38f, 0x01}, + {0xd390, 0x01}, + {0xd391, 0x01}, + {0xd392, 0x01}, + {0xd393, 0x01}, + {0xd394, 0x01}, + {0xd395, 0x01}, + {0xd396, 0x01}, + {0xd397, 0x01}, + {0xd398, 0x01}, + {0xd399, 0x01}, + {0xd39a, 0x01}, + {0xd39b, 0x01}, + {0xd39c, 0x01}, + {0xd39d, 0x01}, + {0xd39e, 0x01}, + {0xd39f, 0x01}, + {0xd3a0, 0x01}, + {0xd3a1, 0x01}, + {0xd3a2, 0x01}, + {0xd3a3, 0x01}, + {0xd3a4, 0x01}, + {0xd3a5, 0x01}, + {0xd3a6, 0x01}, + {0xd3a7, 0x01}, + {0xd3a8, 0x01}, + {0xd3a9, 0x01}, + {0xd3aa, 0x01}, + {0xd3ab, 0x01}, + {0xd3ac, 0x01}, + {0xd3ad, 0x01}, + {0xd3ae, 0x01}, + {0xd3af, 0x01}, + {0xd3b0, 0x01}, + {0xd3b1, 0x01}, + {0xd3b2, 0x01}, + {0xd3b3, 0x01}, + {0xd3b4, 0x01}, + {0xd3b5, 0x01}, + {0xd3b6, 0x01}, + {0xd3b7, 0x01}, + {0xd3b8, 0x01}, + {0xd3b9, 0x01}, + {0xd3ba, 0x01}, + {0xd3bb, 0x01}, + {0xd3bc, 0x01}, + {0xd3bd, 0x01}, + {0xd3be, 0x01}, + {0xd3bf, 0x01}, + {0xd3c0, 0x01}, + {0xd3c1, 0x01}, + {0xd3c2, 0x01}, + {0xd3c3, 0x01}, + {0xd3c4, 0x01}, + {0xd3c5, 0x01}, + {0xd3c6, 0x01}, + {0xd3c7, 0x01}, + {0xd3c8, 0x01}, + {0xd3c9, 0x01}, + {0xd3ca, 0x01}, + {0xd3cb, 0x01}, + {0xd3cc, 0x01}, + {0xd3cd, 0x01}, + {0xd3ce, 0x01}, + {0xd3cf, 0x01}, + {0xd3d0, 0x01}, + {0xd3d1, 0x01}, + {0xd3d2, 0x01}, + {0xd3d3, 0x01}, + {0xd3d4, 0x01}, + {0xd3d5, 0x01}, + {0xd3d6, 0x01}, + {0xd3d7, 0x01}, + {0xd3d8, 0x01}, + {0xd3d9, 0x01}, + {0xd3da, 0x01}, + {0xd3db, 0x01}, + {0xd3dc, 0x01}, + {0xd3dd, 0x01}, + {0xd3de, 0x01}, + {0xd3df, 0x01}, + {0xd3e0, 0x01}, + {0xd3e1, 0x01}, + {0xd3e2, 0x01}, + {0xd3e3, 0x01}, + {0xd3e4, 0x01}, + {0xd3e5, 0x01}, + {0xd3e6, 0x01}, + {0xd3e7, 0x01}, + {0xd3e8, 0x01}, + {0xd3e9, 0x01}, + {0xd3ea, 0x01}, + {0xd3eb, 0x01}, + {0xd3ec, 0x01}, + {0xd3ed, 0x01}, + {0xd3ee, 0x01}, + {0xd3ef, 0x01}, + {0xd3f0, 0x01}, + {0xd3f1, 0x01}, + {0xd3f2, 0x01}, + {0xd3f3, 0x01}, + {0xd3f4, 0x01}, + {0xd3f5, 0x01}, + {0xd3f6, 0x01}, + {0xd3f7, 0x01}, + {0xd3f8, 0x01}, + {0xd3f9, 0x01}, + {0xd3fa, 0x01}, + {0xd3fb, 0x01}, + {0xd3fc, 0x01}, + {0xd3fd, 0x01}, + {0xd3fe, 0x01}, + {0xd440, 0x01}, + {0xd441, 0x01}, + {0xd442, 0x01}, + {0xd443, 0x01}, + {0xd444, 0x01}, + {0xd445, 0x01}, + {0xd446, 0x01}, + {0xd447, 0x01}, + {0xd448, 0x01}, + {0xd449, 0x01}, + {0xd44a, 0x01}, + {0xd44b, 0x01}, + {0xd44c, 0x01}, + {0xd44d, 0x01}, + {0xd44e, 0x01}, + {0xd44f, 0x01}, + {0xd450, 0x01}, + {0xd451, 0x01}, + {0xd452, 0x01}, + {0xd453, 0x01}, + {0xd454, 0x01}, + {0xd455, 0x01}, + {0xd456, 0x01}, + {0xd457, 0x01}, + {0xd458, 0x01}, + {0xd459, 0x01}, + {0xd45a, 0x01}, + {0xd45b, 0x01}, + {0xd45c, 0x01}, + {0xd45d, 0x01}, + {0xd45e, 0x01}, + {0xd45f, 0x01}, + {0xd460, 0x01}, + {0xd461, 0x01}, + {0xd462, 0x01}, + {0xd463, 0x01}, + {0xd464, 0x01}, + {0xd465, 0x01}, + {0xd466, 0x01}, + {0xd467, 0x01}, + {0xd468, 0x01}, + {0xd469, 0x01}, + {0xd46a, 0x01}, + {0xd46b, 0x01}, + {0xd46c, 0x01}, + {0xd46d, 0x01}, + {0xd46e, 0x01}, + {0xd46f, 0x01}, + {0xd470, 0x01}, + {0xd471, 0x01}, + {0xd472, 0x01}, + {0xd473, 0x01}, + {0xd474, 0x01}, + {0xd475, 0x01}, + {0xd476, 0x01}, + {0xd477, 0x01}, + {0xd478, 0x01}, + {0xd479, 0x01}, + {0xd47a, 0x01}, + {0xd47b, 0x01}, + {0xd47c, 0x01}, + {0xd47d, 0x01}, + {0xd47e, 0x01}, + {0xd480, 0x01}, + {0xd481, 0x01}, + {0xd482, 0x01}, + {0xd483, 0x01}, + {0xd484, 0x01}, + {0xd485, 0x01}, + {0xd486, 0x01}, + {0xd487, 0x01}, + {0xd488, 0x01}, + {0xd489, 0x01}, + {0xd48a, 0x01}, + {0xd48b, 0x01}, + {0xd48c, 0x01}, + {0xd48d, 0x01}, + {0xd48e, 0x01}, + {0xd48f, 0x01}, + {0xd490, 0x01}, + {0xd491, 0x01}, + {0xd492, 0x01}, + {0xd493, 0x01}, + {0xd494, 0x01}, + {0xd495, 0x01}, + {0xd496, 0x01}, + {0xd497, 0x01}, + {0xd498, 0x01}, + {0xd499, 0x01}, + {0xd49a, 0x01}, + {0xd49b, 0x01}, + {0xd49c, 0x01}, + {0xd49d, 0x01}, + {0xd49e, 0x01}, + {0xd49f, 0x01}, + {0xd4a0, 0x01}, + {0xd4a1, 0x01}, + {0xd4a2, 0x01}, + {0xd4a3, 0x01}, + {0xd4a4, 0x01}, + {0xd4a5, 0x01}, + {0xd4a6, 0x01}, + {0xd4a7, 0x01}, + {0xd4a8, 0x01}, + {0xd4a9, 0x01}, + {0xd4aa, 0x01}, + {0xd4ab, 0x01}, + {0xd4ac, 0x01}, + {0xd4ad, 0x01}, + {0xd4ae, 0x01}, + {0xd4af, 0x01}, + {0xd4b0, 0x01}, + {0xd4b1, 0x01}, + {0xd4b2, 0x01}, + {0xd4b3, 0x01}, + {0xd4b4, 0x01}, + {0xd4b5, 0x01}, + {0xd4b6, 0x01}, + {0xd4b7, 0x01}, + {0xd4b8, 0x01}, + {0xd4b9, 0x01}, + {0xd4ba, 0x01}, + {0xd4bb, 0x01}, + {0xd4bc, 0x01}, + {0xd4bd, 0x01}, + {0xd4be, 0x01}, + {0xd4bf, 0x01}, + {0xd4c0, 0x01}, + {0xd4c1, 0x01}, + {0xd4c2, 0x01}, + {0xd4c3, 0x01}, + {0xd4c4, 0x01}, + {0xd4c5, 0x01}, + {0xd4c6, 0x01}, + {0xd4c7, 0x01}, + {0xd4c8, 0x01}, + {0xd4c9, 0x01}, + {0xd4ca, 0x01}, + {0xd4cb, 0x01}, + {0xd4cc, 0x01}, + {0xd4cd, 0x01}, + {0xd4ce, 0x01}, + {0xd4cf, 0x01}, + {0xd4d0, 0x01}, + {0xd4d1, 0x01}, + {0xd4d2, 0x01}, + {0xd4d3, 0x01}, + {0xd4d4, 0x01}, + {0xd4d5, 0x01}, + {0xd4d6, 0x01}, + {0xd4d7, 0x01}, + {0xd4d8, 0x01}, + {0xd4d9, 0x01}, + {0xd4da, 0x01}, + {0xd4db, 0x01}, + {0xd4dc, 0x01}, + {0xd4dd, 0x01}, + {0xd4de, 0x01}, + {0xd4df, 0x01}, + {0xd4e0, 0x01}, + {0xd4e1, 0x01}, + {0xd4e2, 0x01}, + {0xd4e3, 0x01}, + {0xd4e4, 0x01}, + {0xd4e5, 0x01}, + {0xd4e6, 0x01}, + {0xd4e7, 0x01}, + {0xd4e8, 0x01}, + {0xd4e9, 0x01}, + {0xd4ea, 0x01}, + {0xd4eb, 0x01}, + {0xd4ec, 0x01}, + {0xd4ed, 0x01}, + {0xd4ee, 0x01}, + {0xd4ef, 0x01}, + {0xd4f0, 0x01}, + {0xd4f1, 0x01}, + {0xd4f2, 0x01}, + {0xd4f3, 0x01}, + {0xd4f4, 0x01}, + {0xd4f5, 0x01}, + {0xd4f6, 0x01}, + {0xd4f7, 0x01}, + {0xd4f8, 0x01}, + {0xd4f9, 0x01}, + {0xd4fa, 0x01}, + {0xd4fb, 0x01}, + {0xd4fc, 0x01}, + {0xd4fd, 0x01}, + {0xd4fe, 0x01}, + {0xd540, 0x01}, + {0xd541, 0x01}, + {0xd542, 0x01}, + {0xd543, 0x01}, + {0xd544, 0x01}, + {0xd545, 0x01}, + {0xd546, 0x01}, + {0xd547, 0x01}, + {0xd548, 0x01}, + {0xd549, 0x01}, + {0xd54a, 0x01}, + {0xd54b, 0x01}, + {0xd54c, 0x01}, + {0xd54d, 0x01}, + {0xd54e, 0x01}, + {0xd54f, 0x01}, + {0xd550, 0x01}, + {0xd551, 0x01}, + {0xd552, 0x01}, + {0xd553, 0x01}, + {0xd554, 0x01}, + {0xd555, 0x01}, + {0xd556, 0x01}, + {0xd557, 0x01}, + {0xd558, 0x01}, + {0xd559, 0x01}, + {0xd55a, 0x01}, + {0xd55b, 0x01}, + {0xd55c, 0x01}, + {0xd55d, 0x01}, + {0xd55e, 0x01}, + {0xd55f, 0x01}, + {0xd560, 0x01}, + {0xd561, 0x01}, + {0xd562, 0x01}, + {0xd563, 0x01}, + {0xd564, 0x01}, + {0xd565, 0x01}, + {0xd566, 0x01}, + {0xd567, 0x01}, + {0xd568, 0x01}, + {0xd569, 0x01}, + {0xd56a, 0x01}, + {0xd56b, 0x01}, + {0xd56c, 0x01}, + {0xd56d, 0x01}, + {0xd56e, 0x01}, + {0xd56f, 0x01}, + {0xd570, 0x01}, + {0xd571, 0x01}, + {0xd572, 0x01}, + {0xd573, 0x01}, + {0xd574, 0x01}, + {0xd575, 0x01}, + {0xd576, 0x01}, + {0xd577, 0x01}, + {0xd578, 0x01}, + {0xd579, 0x01}, + {0xd57a, 0x01}, + {0xd57b, 0x01}, + {0xd57c, 0x01}, + {0xd57d, 0x01}, + {0xd57e, 0x01}, + {0xd580, 0x01}, + {0xd581, 0x01}, + {0xd582, 0x01}, + {0xd583, 0x01}, + {0xd584, 0x01}, + {0xd585, 0x01}, + {0xd586, 0x01}, + {0xd587, 0x01}, + {0xd588, 0x01}, + {0xd589, 0x01}, + {0xd58a, 0x01}, + {0xd58b, 0x01}, + {0xd58c, 0x01}, + {0xd58d, 0x01}, + {0xd58e, 0x01}, + {0xd58f, 0x01}, + {0xd590, 0x01}, + {0xd591, 0x01}, + {0xd592, 0x01}, + {0xd593, 0x01}, + {0xd594, 0x01}, + {0xd595, 0x01}, + {0xd596, 0x01}, + {0xd597, 0x01}, + {0xd598, 0x01}, + {0xd599, 0x01}, + {0xd59a, 0x01}, + {0xd59b, 0x01}, + {0xd59c, 0x01}, + {0xd59d, 0x01}, + {0xd59e, 0x01}, + {0xd59f, 0x01}, + {0xd5a0, 0x01}, + {0xd5a1, 0x01}, + {0xd5a2, 0x01}, + {0xd5a3, 0x01}, + {0xd5a4, 0x01}, + {0xd5a5, 0x01}, + {0xd5a6, 0x01}, + {0xd5a7, 0x01}, + {0xd5a8, 0x01}, + {0xd5a9, 0x01}, + {0xd5aa, 0x01}, + {0xd5ab, 0x01}, + {0xd5ac, 0x01}, + {0xd5ad, 0x01}, + {0xd5ae, 0x01}, + {0xd5af, 0x01}, + {0xd5b0, 0x01}, + {0xd5b1, 0x01}, + {0xd5b2, 0x01}, + {0xd5b3, 0x01}, + {0xd5b4, 0x01}, + {0xd5b5, 0x01}, + {0xd5b6, 0x01}, + {0xd5b7, 0x01}, + {0xd5b8, 0x01}, + {0xd5b9, 0x01}, + {0xd5ba, 0x01}, + {0xd5bb, 0x01}, + {0xd5bc, 0x01}, + {0xd5bd, 0x01}, + {0xd5be, 0x01}, + {0xd5bf, 0x01}, + {0xd5c0, 0x01}, + {0xd5c1, 0x01}, + {0xd5c2, 0x01}, + {0xd5c3, 0x01}, + {0xd5c4, 0x01}, + {0xd5c5, 0x01}, + {0xd5c6, 0x01}, + {0xd5c7, 0x01}, + {0xd5c8, 0x01}, + {0xd5c9, 0x01}, + {0xd5ca, 0x01}, + {0xd5cb, 0x01}, + {0xd5cc, 0x01}, + {0xd5cd, 0x01}, + {0xd5ce, 0x01}, + {0xd5cf, 0x01}, + {0xd5d0, 0x01}, + {0xd5d1, 0x01}, + {0xd5d2, 0x01}, + {0xd5d3, 0x01}, + {0xd5d4, 0x01}, + {0xd5d5, 0x01}, + {0xd5d6, 0x01}, + {0xd5d7, 0x01}, + {0xd5d8, 0x01}, + {0xd5d9, 0x01}, + {0xd5da, 0x01}, + {0xd5db, 0x01}, + {0xd5dc, 0x01}, + {0xd5dd, 0x01}, + {0xd5de, 0x01}, + {0xd5df, 0x01}, + {0xd5e0, 0x01}, + {0xd5e1, 0x01}, + {0xd5e2, 0x01}, + {0xd5e3, 0x01}, + {0xd5e4, 0x01}, + {0xd5e5, 0x01}, + {0xd5e6, 0x01}, + {0xd5e7, 0x01}, + {0xd5e8, 0x01}, + {0xd5e9, 0x01}, + {0xd5ea, 0x01}, + {0xd5eb, 0x01}, + {0xd5ec, 0x01}, + {0xd5ed, 0x01}, + {0xd5ee, 0x01}, + {0xd5ef, 0x01}, + {0xd5f0, 0x01}, + {0xd5f1, 0x01}, + {0xd5f2, 0x01}, + {0xd5f3, 0x01}, + {0xd5f4, 0x01}, + {0xd5f5, 0x01}, + {0xd5f6, 0x01}, + {0xd5f7, 0x01}, + {0xd5f8, 0x01}, + {0xd5f9, 0x01}, + {0xd5fa, 0x01}, + {0xd5fb, 0x01}, + {0xd5fc, 0x01}, + {0xd5fd, 0x01}, + {0xd5fe, 0x01}, + {0xd640, 0x01}, + {0xd641, 0x01}, + {0xd642, 0x01}, + {0xd643, 0x01}, + {0xd644, 0x01}, + {0xd645, 0x01}, + {0xd646, 0x01}, + {0xd647, 0x01}, + {0xd648, 0x01}, + {0xd649, 0x01}, + {0xd64a, 0x01}, + {0xd64b, 0x01}, + {0xd64c, 0x01}, + {0xd64d, 0x01}, + {0xd64e, 0x01}, + {0xd64f, 0x01}, + {0xd650, 0x01}, + {0xd651, 0x01}, + {0xd652, 0x01}, + {0xd653, 0x01}, + {0xd654, 0x01}, + {0xd655, 0x01}, + {0xd656, 0x01}, + {0xd657, 0x01}, + {0xd658, 0x01}, + {0xd659, 0x01}, + {0xd65a, 0x01}, + {0xd65b, 0x01}, + {0xd65c, 0x01}, + {0xd65d, 0x01}, + {0xd65e, 0x01}, + {0xd65f, 0x01}, + {0xd660, 0x01}, + {0xd661, 0x01}, + {0xd662, 0x01}, + {0xd663, 0x01}, + {0xd664, 0x01}, + {0xd665, 0x01}, + {0xd666, 0x01}, + {0xd667, 0x01}, + {0xd668, 0x01}, + {0xd669, 0x01}, + {0xd66a, 0x01}, + {0xd66b, 0x01}, + {0xd66c, 0x01}, + {0xd66d, 0x01}, + {0xd66e, 0x01}, + {0xd66f, 0x01}, + {0xd670, 0x01}, + {0xd671, 0x01}, + {0xd672, 0x01}, + {0xd673, 0x01}, + {0xd674, 0x01}, + {0xd675, 0x01}, + {0xd676, 0x01}, + {0xd677, 0x01}, + {0xd678, 0x01}, + {0xd679, 0x01}, + {0xd67a, 0x01}, + {0xd67b, 0x01}, + {0xd67c, 0x01}, + {0xd67d, 0x01}, + {0xd67e, 0x01}, + {0xd680, 0x01}, + {0xd681, 0x01}, + {0xd682, 0x01}, + {0xd683, 0x01}, + {0xd684, 0x01}, + {0xd685, 0x01}, + {0xd686, 0x01}, + {0xd687, 0x01}, + {0xd688, 0x01}, + {0xd689, 0x01}, + {0xd68a, 0x01}, + {0xd68b, 0x01}, + {0xd68c, 0x01}, + {0xd68d, 0x01}, + {0xd68e, 0x01}, + {0xd68f, 0x01}, + {0xd690, 0x01}, + {0xd691, 0x01}, + {0xd692, 0x01}, + {0xd693, 0x01}, + {0xd694, 0x01}, + {0xd695, 0x01}, + {0xd696, 0x01}, + {0xd697, 0x01}, + {0xd698, 0x01}, + {0xd699, 0x01}, + {0xd69a, 0x01}, + {0xd69b, 0x01}, + {0xd69c, 0x01}, + {0xd69d, 0x01}, + {0xd69e, 0x01}, + {0xd69f, 0x01}, + {0xd6a0, 0x01}, + {0xd6a1, 0x01}, + {0xd6a2, 0x01}, + {0xd6a3, 0x01}, + {0xd6a4, 0x01}, + {0xd6a5, 0x01}, + {0xd6a6, 0x01}, + {0xd6a7, 0x01}, + {0xd6a8, 0x01}, + {0xd6a9, 0x01}, + {0xd6aa, 0x01}, + {0xd6ab, 0x01}, + {0xd6ac, 0x01}, + {0xd6ad, 0x01}, + {0xd6ae, 0x01}, + {0xd6af, 0x01}, + {0xd6b0, 0x01}, + {0xd6b1, 0x01}, + {0xd6b2, 0x01}, + {0xd6b3, 0x01}, + {0xd6b4, 0x01}, + {0xd6b5, 0x01}, + {0xd6b6, 0x01}, + {0xd6b7, 0x01}, + {0xd6b8, 0x01}, + {0xd6b9, 0x01}, + {0xd6ba, 0x01}, + {0xd6bb, 0x01}, + {0xd6bc, 0x01}, + {0xd6bd, 0x01}, + {0xd6be, 0x01}, + {0xd6bf, 0x01}, + {0xd6c0, 0x01}, + {0xd6c1, 0x01}, + {0xd6c2, 0x01}, + {0xd6c3, 0x01}, + {0xd6c4, 0x01}, + {0xd6c5, 0x01}, + {0xd6c6, 0x01}, + {0xd6c7, 0x01}, + {0xd6c8, 0x01}, + {0xd6c9, 0x01}, + {0xd6ca, 0x01}, + {0xd6cb, 0x01}, + {0xd6cc, 0x01}, + {0xd6cd, 0x01}, + {0xd6ce, 0x01}, + {0xd6cf, 0x01}, + {0xd6d0, 0x01}, + {0xd6d1, 0x01}, + {0xd6d2, 0x01}, + {0xd6d3, 0x01}, + {0xd6d4, 0x01}, + {0xd6d5, 0x01}, + {0xd6d6, 0x01}, + {0xd6d7, 0x01}, + {0xd6d8, 0x01}, + {0xd6d9, 0x01}, + {0xd6da, 0x01}, + {0xd6db, 0x01}, + {0xd6dc, 0x01}, + {0xd6dd, 0x01}, + {0xd6de, 0x01}, + {0xd6df, 0x01}, + {0xd6e0, 0x01}, + {0xd6e1, 0x01}, + {0xd6e2, 0x01}, + {0xd6e3, 0x01}, + {0xd6e4, 0x01}, + {0xd6e5, 0x01}, + {0xd6e6, 0x01}, + {0xd6e7, 0x01}, + {0xd6e8, 0x01}, + {0xd6e9, 0x01}, + {0xd6ea, 0x01}, + {0xd6eb, 0x01}, + {0xd6ec, 0x01}, + {0xd6ed, 0x01}, + {0xd6ee, 0x01}, + {0xd6ef, 0x01}, + {0xd6f0, 0x01}, + {0xd6f1, 0x01}, + {0xd6f2, 0x01}, + {0xd6f3, 0x01}, + {0xd6f4, 0x01}, + {0xd6f5, 0x01}, + {0xd6f6, 0x01}, + {0xd6f7, 0x01}, + {0xd6f8, 0x01}, + {0xd6f9, 0x01}, + {0xd6fa, 0x01}, + {0xd6fb, 0x01}, + {0xd6fc, 0x01}, + {0xd6fd, 0x01}, + {0xd6fe, 0x01}, + {0xd740, 0x01}, + {0xd741, 0x01}, + {0xd742, 0x01}, + {0xd743, 0x01}, + {0xd744, 0x01}, + {0xd745, 0x01}, + {0xd746, 0x01}, + {0xd747, 0x01}, + {0xd748, 0x01}, + {0xd749, 0x01}, + {0xd74a, 0x01}, + {0xd74b, 0x01}, + {0xd74c, 0x01}, + {0xd74d, 0x01}, + {0xd74e, 0x01}, + {0xd74f, 0x01}, + {0xd750, 0x01}, + {0xd751, 0x01}, + {0xd752, 0x01}, + {0xd753, 0x01}, + {0xd754, 0x01}, + {0xd755, 0x01}, + {0xd756, 0x01}, + {0xd757, 0x01}, + {0xd758, 0x01}, + {0xd759, 0x01}, + {0xd75a, 0x01}, + {0xd75b, 0x01}, + {0xd75c, 0x01}, + {0xd75d, 0x01}, + {0xd75e, 0x01}, + {0xd75f, 0x01}, + {0xd760, 0x01}, + {0xd761, 0x01}, + {0xd762, 0x01}, + {0xd763, 0x01}, + {0xd764, 0x01}, + {0xd765, 0x01}, + {0xd766, 0x01}, + {0xd767, 0x01}, + {0xd768, 0x01}, + {0xd769, 0x01}, + {0xd76a, 0x01}, + {0xd76b, 0x01}, + {0xd76c, 0x01}, + {0xd76d, 0x01}, + {0xd76e, 0x01}, + {0xd76f, 0x01}, + {0xd770, 0x01}, + {0xd771, 0x01}, + {0xd772, 0x01}, + {0xd773, 0x01}, + {0xd774, 0x01}, + {0xd775, 0x01}, + {0xd776, 0x01}, + {0xd777, 0x01}, + {0xd778, 0x01}, + {0xd779, 0x01}, + {0xd77a, 0x01}, + {0xd77b, 0x01}, + {0xd77c, 0x01}, + {0xd77d, 0x01}, + {0xd77e, 0x01}, + {0xd780, 0x01}, + {0xd781, 0x01}, + {0xd782, 0x01}, + {0xd783, 0x01}, + {0xd784, 0x01}, + {0xd785, 0x01}, + {0xd786, 0x01}, + {0xd787, 0x01}, + {0xd788, 0x01}, + {0xd789, 0x01}, + {0xd78a, 0x01}, + {0xd78b, 0x01}, + {0xd78c, 0x01}, + {0xd78d, 0x01}, + {0xd78e, 0x01}, + {0xd78f, 0x01}, + {0xd790, 0x01}, + {0xd791, 0x01}, + {0xd792, 0x01}, + {0xd793, 0x01}, + {0xd794, 0x01}, + {0xd795, 0x01}, + {0xd796, 0x01}, + {0xd797, 0x01}, + {0xd798, 0x01}, + {0xd799, 0x01}, + {0xd79a, 0x01}, + {0xd79b, 0x01}, + {0xd79c, 0x01}, + {0xd79d, 0x01}, + {0xd79e, 0x01}, + {0xd79f, 0x01}, + {0xd7a0, 0x01}, + {0xd7a1, 0x01}, + {0xd7a2, 0x01}, + {0xd7a3, 0x01}, + {0xd7a4, 0x01}, + {0xd7a5, 0x01}, + {0xd7a6, 0x01}, + {0xd7a7, 0x01}, + {0xd7a8, 0x01}, + {0xd7a9, 0x01}, + {0xd7aa, 0x01}, + {0xd7ab, 0x01}, + {0xd7ac, 0x01}, + {0xd7ad, 0x01}, + {0xd7ae, 0x01}, + {0xd7af, 0x01}, + {0xd7b0, 0x01}, + {0xd7b1, 0x01}, + {0xd7b2, 0x01}, + {0xd7b3, 0x01}, + {0xd7b4, 0x01}, + {0xd7b5, 0x01}, + {0xd7b6, 0x01}, + {0xd7b7, 0x01}, + {0xd7b8, 0x01}, + {0xd7b9, 0x01}, + {0xd7ba, 0x01}, + {0xd7bb, 0x01}, + {0xd7bc, 0x01}, + {0xd7bd, 0x01}, + {0xd7be, 0x01}, + {0xd7bf, 0x01}, + {0xd7c0, 0x01}, + {0xd7c1, 0x01}, + {0xd7c2, 0x01}, + {0xd7c3, 0x01}, + {0xd7c4, 0x01}, + {0xd7c5, 0x01}, + {0xd7c6, 0x01}, + {0xd7c7, 0x01}, + {0xd7c8, 0x01}, + {0xd7c9, 0x01}, + {0xd7ca, 0x01}, + {0xd7cb, 0x01}, + {0xd7cc, 0x01}, + {0xd7cd, 0x01}, + {0xd7ce, 0x01}, + {0xd7cf, 0x01}, + {0xd7d0, 0x01}, + {0xd7d1, 0x01}, + {0xd7d2, 0x01}, + {0xd7d3, 0x01}, + {0xd7d4, 0x01}, + {0xd7d5, 0x01}, + {0xd7d6, 0x01}, + {0xd7d7, 0x01}, + {0xd7d8, 0x01}, + {0xd7d9, 0x01}, + {0xd7da, 0x01}, + {0xd7db, 0x01}, + {0xd7dc, 0x01}, + {0xd7dd, 0x01}, + {0xd7de, 0x01}, + {0xd7df, 0x01}, + {0xd7e0, 0x01}, + {0xd7e1, 0x01}, + {0xd7e2, 0x01}, + {0xd7e3, 0x01}, + {0xd7e4, 0x01}, + {0xd7e5, 0x01}, + {0xd7e6, 0x01}, + {0xd7e7, 0x01}, + {0xd7e8, 0x01}, + {0xd7e9, 0x01}, + {0xd7ea, 0x01}, + {0xd7eb, 0x01}, + {0xd7ec, 0x01}, + {0xd7ed, 0x01}, + {0xd7ee, 0x01}, + {0xd7ef, 0x01}, + {0xd7f0, 0x01}, + {0xd7f1, 0x01}, + {0xd7f2, 0x01}, + {0xd7f3, 0x01}, + {0xd7f4, 0x01}, + {0xd7f5, 0x01}, + {0xd7f6, 0x01}, + {0xd7f7, 0x01}, + {0xd7f8, 0x01}, + {0xd7f9, 0x01}, + {0xd840, 0x01}, + {0xd841, 0x01}, + {0xd842, 0x01}, + {0xd843, 0x01}, + {0xd844, 0x01}, + {0xd845, 0x01}, + {0xd846, 0x01}, + {0xd847, 0x01}, + {0xd848, 0x01}, + {0xd849, 0x01}, + {0xd84a, 0x01}, + {0xd84b, 0x01}, + {0xd84c, 0x01}, + {0xd84d, 0x01}, + {0xd84e, 0x01}, + {0xd84f, 0x01}, + {0xd850, 0x01}, + {0xd851, 0x01}, + {0xd852, 0x01}, + {0xd853, 0x01}, + {0xd854, 0x01}, + {0xd855, 0x01}, + {0xd856, 0x01}, + {0xd857, 0x01}, + {0xd858, 0x01}, + {0xd859, 0x01}, + {0xd85a, 0x01}, + {0xd85b, 0x01}, + {0xd85c, 0x01}, + {0xd85d, 0x01}, + {0xd85e, 0x01}, + {0xd85f, 0x01}, + {0xd860, 0x01}, + {0xd861, 0x01}, + {0xd862, 0x01}, + {0xd863, 0x01}, + {0xd864, 0x01}, + {0xd865, 0x01}, + {0xd866, 0x01}, + {0xd867, 0x01}, + {0xd868, 0x01}, + {0xd869, 0x01}, + {0xd86a, 0x01}, + {0xd86b, 0x01}, + {0xd86c, 0x01}, + {0xd86d, 0x01}, + {0xd86e, 0x01}, + {0xd86f, 0x01}, + {0xd870, 0x01}, + {0xd871, 0x01}, + {0xd872, 0x01}, + {0xd873, 0x01}, + {0xd874, 0x01}, + {0xd875, 0x01}, + {0xd876, 0x01}, + {0xd877, 0x01}, + {0xd878, 0x01}, + {0xd879, 0x01}, + {0xd87a, 0x01}, + {0xd87b, 0x01}, + {0xd87c, 0x01}, + {0xd87d, 0x01}, + {0xd87e, 0x01}, + {0xd880, 0x01}, + {0xd881, 0x01}, + {0xd882, 0x01}, + {0xd883, 0x01}, + {0xd884, 0x01}, + {0xd885, 0x01}, + {0xd886, 0x01}, + {0xd887, 0x01}, + {0xd888, 0x01}, + {0xd889, 0x01}, + {0xd88a, 0x01}, + {0xd88b, 0x01}, + {0xd88c, 0x01}, + {0xd88d, 0x01}, + {0xd88e, 0x01}, + {0xd88f, 0x01}, + {0xd890, 0x01}, + {0xd891, 0x01}, + {0xd892, 0x01}, + {0xd893, 0x01}, + {0xd894, 0x01}, + {0xd895, 0x01}, + {0xd896, 0x01}, + {0xd897, 0x01}, + {0xd898, 0x01}, + {0xd899, 0x01}, + {0xd89a, 0x01}, + {0xd89b, 0x01}, + {0xd89c, 0x01}, + {0xd89d, 0x01}, + {0xd89e, 0x01}, + {0xd89f, 0x01}, + {0xd8a0, 0x01}, + {0xd8a1, 0x01}, + {0xd8a2, 0x01}, + {0xd8a3, 0x01}, + {0xd8a4, 0x01}, + {0xd8a5, 0x01}, + {0xd8a6, 0x01}, + {0xd8a7, 0x01}, + {0xd8a8, 0x01}, + {0xd8a9, 0x01}, + {0xd8aa, 0x01}, + {0xd8ab, 0x01}, + {0xd8ac, 0x01}, + {0xd8ad, 0x01}, + {0xd8ae, 0x01}, + {0xd8af, 0x01}, + {0xd8b0, 0x01}, + {0xd8b1, 0x01}, + {0xd8b2, 0x01}, + {0xd8b3, 0x01}, + {0xd8b4, 0x01}, + {0xd8b5, 0x01}, + {0xd8b6, 0x01}, + {0xd8b7, 0x01}, + {0xd8b8, 0x01}, + {0xd8b9, 0x01}, + {0xd8ba, 0x01}, + {0xd8bb, 0x01}, + {0xd8bc, 0x01}, + {0xd8bd, 0x01}, + {0xd8be, 0x01}, + {0xd8bf, 0x01}, + {0xd8c0, 0x01}, + {0xd8c1, 0x01}, + {0xd8c2, 0x01}, + {0xd8c3, 0x01}, + {0xd8c4, 0x01}, + {0xd8c5, 0x01}, + {0xd8c6, 0x01}, + {0xd8c7, 0x01}, + {0xd8c8, 0x01}, + {0xd8c9, 0x01}, + {0xd8ca, 0x01}, + {0xd8cb, 0x01}, + {0xd8cc, 0x01}, + {0xd8cd, 0x01}, + {0xd8ce, 0x01}, + {0xd8cf, 0x01}, + {0xd8d0, 0x01}, + {0xd8d1, 0x01}, + {0xd8d2, 0x01}, + {0xd8d3, 0x01}, + {0xd8d4, 0x01}, + {0xd8d5, 0x01}, + {0xd8d6, 0x01}, + {0xd8d7, 0x01}, + {0xd8d8, 0x01}, + {0xd8d9, 0x01}, + {0xd8da, 0x01}, + {0xd8db, 0x01}, + {0xd8dc, 0x01}, + {0xd8dd, 0x01}, + {0xd8de, 0x01}, + {0xd8df, 0x01}, + {0xd8e0, 0x01}, + {0xd8e1, 0x01}, + {0xd8e2, 0x01}, + {0xd8e3, 0x01}, + {0xd8e4, 0x01}, + {0xd8e5, 0x01}, + {0xd8e6, 0x01}, + {0xd8e7, 0x01}, + {0xd8e8, 0x01}, + {0xd8e9, 0x01}, + {0xd8ea, 0x01}, + {0xd8eb, 0x01}, + {0xd8ec, 0x01}, + {0xd8ed, 0x01}, + {0xd8ee, 0x01}, + {0xd8ef, 0x01}, + {0xd8f0, 0x01}, + {0xd8f1, 0x01}, + {0xd8f2, 0x01}, + {0xd8f3, 0x01}, + {0xd8f4, 0x01}, + {0xd8f5, 0x01}, + {0xd8f6, 0x01}, + {0xd8f7, 0x01}, + {0xd8f8, 0x01}, + {0xd8f9, 0x01}, + {0xd8fa, 0x01}, + {0xd8fb, 0x01}, + {0xd8fc, 0x01}, + {0xd8fd, 0x01}, + {0xd8fe, 0x01}, + {0xd940, 0x01}, + {0xd941, 0x01}, + {0xd942, 0x01}, + {0xd943, 0x01}, + {0xd944, 0x01}, + {0xd945, 0x01}, + {0xd946, 0x01}, + {0xd947, 0x01}, + {0xd948, 0x01}, + {0xd949, 0x01}, + {0xd94a, 0x01}, + {0xd94b, 0x01}, + {0xd94c, 0x01}, + {0xd94d, 0x01}, + {0xd94e, 0x01}, + {0xd94f, 0x01}, + {0xd950, 0x01}, + {0xd951, 0x01}, + {0xd952, 0x01}, + {0xd953, 0x01}, + {0xd954, 0x01}, + {0xd955, 0x01}, + {0xd956, 0x01}, + {0xd957, 0x01}, + {0xd958, 0x01}, + {0xd959, 0x01}, + {0xd95a, 0x01}, + {0xd95b, 0x01}, + {0xd95c, 0x01}, + {0xd95d, 0x01}, + {0xd95e, 0x01}, + {0xd95f, 0x01}, + {0xd960, 0x01}, + {0xd961, 0x01}, + {0xd962, 0x01}, + {0xd963, 0x01}, + {0xd964, 0x01}, + {0xd965, 0x01}, + {0xd966, 0x01}, + {0xd967, 0x01}, + {0xd968, 0x01}, + {0xd969, 0x01}, + {0xd96a, 0x01}, + {0xd96b, 0x01}, + {0xd96c, 0x01}, + {0xd96d, 0x01}, + {0xd96e, 0x01}, + {0xd96f, 0x01}, + {0xd970, 0x01}, + {0xd971, 0x01}, + {0xd972, 0x01}, + {0xd973, 0x01}, + {0xd974, 0x01}, + {0xd975, 0x01}, + {0xd976, 0x01}, + {0xd977, 0x01}, + {0xd978, 0x01}, + {0xd979, 0x01}, + {0xd97a, 0x01}, + {0xd97b, 0x01}, + {0xd97c, 0x01}, + {0xd97d, 0x01}, + {0xd97e, 0x01}, + {0xd980, 0x01}, + {0xd981, 0x01}, + {0xd982, 0x01}, + {0xd983, 0x01}, + {0xd984, 0x01}, + {0xd985, 0x01}, + {0xd986, 0x01}, + {0xd987, 0x01}, + {0xd988, 0x01}, + {0xd989, 0x01}, + {0xd98a, 0x01}, + {0xd98b, 0x01}, + {0xd98c, 0x01}, + {0xd98d, 0x01}, + {0xd98e, 0x01}, + {0xd98f, 0x01}, + {0xd990, 0x01}, + {0xd991, 0x01}, + {0xd992, 0x01}, + {0xd993, 0x01}, + {0xd994, 0x01}, + {0xd995, 0x01}, + {0xd996, 0x01}, + {0xd997, 0x01}, + {0xd998, 0x01}, + {0xd999, 0x01}, + {0xd99a, 0x01}, + {0xd99b, 0x01}, + {0xd99c, 0x01}, + {0xd99d, 0x01}, + {0xd99e, 0x01}, + {0xd99f, 0x01}, + {0xd9a0, 0x01}, + {0xd9a1, 0x01}, + {0xd9a2, 0x01}, + {0xd9a3, 0x01}, + {0xd9a4, 0x01}, + {0xd9a5, 0x01}, + {0xd9a6, 0x01}, + {0xd9a7, 0x01}, + {0xd9a8, 0x01}, + {0xd9a9, 0x01}, + {0xd9aa, 0x01}, + {0xd9ab, 0x01}, + {0xd9ac, 0x01}, + {0xd9ad, 0x01}, + {0xd9ae, 0x01}, + {0xd9af, 0x01}, + {0xd9b0, 0x01}, + {0xd9b1, 0x01}, + {0xd9b2, 0x01}, + {0xd9b3, 0x01}, + {0xd9b4, 0x01}, + {0xd9b5, 0x01}, + {0xd9b6, 0x01}, + {0xd9b7, 0x01}, + {0xd9b8, 0x01}, + {0xd9b9, 0x01}, + {0xd9ba, 0x01}, + {0xd9bb, 0x01}, + {0xd9bc, 0x01}, + {0xd9bd, 0x01}, + {0xd9be, 0x01}, + {0xd9bf, 0x01}, + {0xd9c0, 0x01}, + {0xd9c1, 0x01}, + {0xd9c2, 0x01}, + {0xd9c3, 0x01}, + {0xd9c4, 0x01}, + {0xd9c5, 0x01}, + {0xd9c6, 0x01}, + {0xd9c7, 0x01}, + {0xd9c8, 0x01}, + {0xd9c9, 0x01}, + {0xd9ca, 0x01}, + {0xd9cb, 0x01}, + {0xd9cc, 0x01}, + {0xd9cd, 0x01}, + {0xd9ce, 0x01}, + {0xd9cf, 0x01}, + {0xd9d0, 0x01}, + {0xd9d1, 0x01}, + {0xd9d2, 0x01}, + {0xd9d3, 0x01}, + {0xd9d4, 0x01}, + {0xd9d5, 0x01}, + {0xd9d6, 0x01}, + {0xd9d7, 0x01}, + {0xd9d8, 0x01}, + {0xd9d9, 0x01}, + {0xd9da, 0x01}, + {0xd9db, 0x01}, + {0xd9dc, 0x01}, + {0xd9dd, 0x01}, + {0xd9de, 0x01}, + {0xd9df, 0x01}, + {0xd9e0, 0x01}, + {0xd9e1, 0x01}, + {0xd9e2, 0x01}, + {0xd9e3, 0x01}, + {0xd9e4, 0x01}, + {0xd9e5, 0x01}, + {0xd9e6, 0x01}, + {0xd9e7, 0x01}, + {0xd9e8, 0x01}, + {0xd9e9, 0x01}, + {0xd9ea, 0x01}, + {0xd9eb, 0x01}, + {0xd9ec, 0x01}, + {0xd9ed, 0x01}, + {0xd9ee, 0x01}, + {0xd9ef, 0x01}, + {0xd9f0, 0x01}, + {0xd9f1, 0x01}, + {0xd9f2, 0x01}, + {0xd9f3, 0x01}, + {0xd9f4, 0x01}, + {0xd9f5, 0x01}, + {0xd9f6, 0x01}, + {0xd9f7, 0x01}, + {0xd9f8, 0x01}, + {0xd9f9, 0x01}, + {0xd9fa, 0x01}, + {0xd9fb, 0x01}, + {0xd9fc, 0x01}, + {0xd9fd, 0x01}, + {0xd9fe, 0x01}, + {0xda40, 0x01}, + {0xda41, 0x01}, + {0xda42, 0x01}, + {0xda43, 0x01}, + {0xda44, 0x01}, + {0xda45, 0x01}, + {0xda46, 0x01}, + {0xda47, 0x01}, + {0xda48, 0x01}, + {0xda49, 0x01}, + {0xda4b, 0x01}, + {0xda4c, 0x01}, + {0xda4d, 0x01}, + {0xda4e, 0x01}, + {0xda4f, 0x01}, + {0xda50, 0x01}, + {0xda51, 0x01}, + {0xda52, 0x01}, + {0xda53, 0x01}, + {0xda54, 0x01}, + {0xda55, 0x01}, + {0xda56, 0x01}, + {0xda57, 0x01}, + {0xda58, 0x01}, + {0xda59, 0x01}, + {0xda5a, 0x01}, + {0xda5b, 0x01}, + {0xda5c, 0x01}, + {0xda5d, 0x01}, + {0xda5e, 0x01}, + {0xda5f, 0x01}, + {0xda60, 0x01}, + {0xda61, 0x01}, + {0xda62, 0x01}, + {0xda63, 0x01}, + {0xda64, 0x01}, + {0xda65, 0x01}, + {0xda66, 0x01}, + {0xda67, 0x01}, + {0xda68, 0x01}, + {0xda69, 0x01}, + {0xda6a, 0x01}, + {0xda6b, 0x01}, + {0xda6c, 0x01}, + {0xda6d, 0x01}, + {0xda6e, 0x01}, + {0xda6f, 0x01}, + {0xda70, 0x01}, + {0xda71, 0x01}, + {0xda72, 0x01}, + {0xda73, 0x01}, + {0xda74, 0x01}, + {0xda75, 0x01}, + {0xda76, 0x01}, + {0xda77, 0x01}, + {0xda78, 0x01}, + {0xda79, 0x01}, + {0xda7a, 0x01}, + {0xda7b, 0x01}, + {0xda7c, 0x01}, + {0xda7d, 0x01}, + {0xda7e, 0x01}, + {0xda80, 0x01}, + {0xda81, 0x01}, + {0xda82, 0x01}, + {0xda83, 0x01}, + {0xda84, 0x01}, + {0xda85, 0x01}, + {0xda86, 0x01}, + {0xda87, 0x01}, + {0xda88, 0x01}, + {0xda89, 0x01}, + {0xda8a, 0x01}, + {0xda8b, 0x01}, + {0xda8c, 0x01}, + {0xda8d, 0x01}, + {0xda8e, 0x01}, + {0xda8f, 0x01}, + {0xda90, 0x01}, + {0xda91, 0x01}, + {0xda92, 0x01}, + {0xda93, 0x01}, + {0xda94, 0x01}, + {0xda95, 0x01}, + {0xda96, 0x01}, + {0xda97, 0x01}, + {0xda98, 0x01}, + {0xda99, 0x01}, + {0xda9a, 0x01}, + {0xda9b, 0x01}, + {0xda9c, 0x01}, + {0xda9d, 0x01}, + {0xda9e, 0x01}, + {0xda9f, 0x01}, + {0xdaa0, 0x01}, + {0xdaa1, 0x01}, + {0xdaa2, 0x01}, + {0xdaa3, 0x01}, + {0xdaa4, 0x01}, + {0xdaa5, 0x01}, + {0xdaa6, 0x01}, + {0xdaa7, 0x01}, + {0xdaa8, 0x01}, + {0xdaa9, 0x01}, + {0xdaaa, 0x01}, + {0xdaab, 0x01}, + {0xdaac, 0x01}, + {0xdaad, 0x01}, + {0xdaae, 0x01}, + {0xdaaf, 0x01}, + {0xdab0, 0x01}, + {0xdab1, 0x01}, + {0xdab2, 0x01}, + {0xdab3, 0x01}, + {0xdab4, 0x01}, + {0xdab5, 0x01}, + {0xdab6, 0x01}, + {0xdab7, 0x01}, + {0xdab8, 0x01}, + {0xdab9, 0x01}, + {0xdaba, 0x01}, + {0xdabb, 0x01}, + {0xdabc, 0x01}, + {0xdabd, 0x01}, + {0xdabe, 0x01}, + {0xdabf, 0x01}, + {0xdac0, 0x01}, + {0xdac1, 0x01}, + {0xdac2, 0x01}, + {0xdac3, 0x01}, + {0xdac4, 0x01}, + {0xdac5, 0x01}, + {0xdac6, 0x01}, + {0xdac7, 0x01}, + {0xdac8, 0x01}, + {0xdac9, 0x01}, + {0xdaca, 0x01}, + {0xdacb, 0x01}, + {0xdacc, 0x01}, + {0xdacd, 0x01}, + {0xdace, 0x01}, + {0xdacf, 0x01}, + {0xdad0, 0x01}, + {0xdad1, 0x01}, + {0xdad2, 0x01}, + {0xdad3, 0x01}, + {0xdad4, 0x01}, + {0xdad5, 0x01}, + {0xdad6, 0x01}, + {0xdad7, 0x01}, + {0xdad8, 0x01}, + {0xdad9, 0x01}, + {0xdada, 0x01}, + {0xdadb, 0x01}, + {0xdadc, 0x01}, + {0xdadd, 0x01}, + {0xdade, 0x01}, + {0xdadf, 0x01}, + {0xdae0, 0x01}, + {0xdae1, 0x01}, + {0xdae2, 0x01}, + {0xdae3, 0x01}, + {0xdae4, 0x01}, + {0xdae5, 0x01}, + {0xdae6, 0x01}, + {0xdae7, 0x01}, + {0xdae8, 0x01}, + {0xdae9, 0x01}, + {0xdaea, 0x01}, + {0xdaeb, 0x01}, + {0xdaec, 0x01}, + {0xdaed, 0x01}, + {0xdaee, 0x01}, + {0xdaef, 0x01}, + {0xdaf0, 0x01}, + {0xdaf1, 0x01}, + {0xdaf2, 0x01}, + {0xdaf3, 0x01}, + {0xdaf4, 0x01}, + {0xdaf5, 0x01}, + {0xdaf6, 0x01}, + {0xdaf7, 0x01}, + {0xdaf8, 0x01}, + {0xdaf9, 0x01}, + {0xdafa, 0x01}, + {0xdafb, 0x01}, + {0xdafc, 0x01}, + {0xdafd, 0x01}, + {0xdafe, 0x01}, + {0xdb40, 0x01}, + {0xdb41, 0x01}, + {0xdb42, 0x01}, + {0xdb43, 0x01}, + {0xdb44, 0x01}, + {0xdb45, 0x01}, + {0xdb46, 0x01}, + {0xdb47, 0x01}, + {0xdb48, 0x01}, + {0xdb49, 0x01}, + {0xdb4a, 0x01}, + {0xdb4b, 0x01}, + {0xdb4c, 0x01}, + {0xdb4d, 0x01}, + {0xdb4e, 0x01}, + {0xdb4f, 0x01}, + {0xdb50, 0x01}, + {0xdb51, 0x01}, + {0xdb52, 0x01}, + {0xdb53, 0x01}, + {0xdb54, 0x01}, + {0xdb55, 0x01}, + {0xdb56, 0x01}, + {0xdb57, 0x01}, + {0xdb58, 0x01}, + {0xdb59, 0x01}, + {0xdb5a, 0x01}, + {0xdb5b, 0x01}, + {0xdb5c, 0x01}, + {0xdb5d, 0x01}, + {0xdb5e, 0x01}, + {0xdb5f, 0x01}, + {0xdb60, 0x01}, + {0xdb61, 0x01}, + {0xdb62, 0x01}, + {0xdb63, 0x01}, + {0xdb64, 0x01}, + {0xdb65, 0x01}, + {0xdb66, 0x01}, + {0xdb67, 0x01}, + {0xdb68, 0x01}, + {0xdb69, 0x01}, + {0xdb6a, 0x01}, + {0xdb6b, 0x01}, + {0xdb6c, 0x01}, + {0xdb6d, 0x01}, + {0xdb6e, 0x01}, + {0xdb6f, 0x01}, + {0xdb70, 0x01}, + {0xdb71, 0x01}, + {0xdb72, 0x01}, + {0xdb73, 0x01}, + {0xdb74, 0x01}, + {0xdb75, 0x01}, + {0xdb76, 0x01}, + {0xdb77, 0x01}, + {0xdb78, 0x01}, + {0xdb79, 0x01}, + {0xdb7a, 0x01}, + {0xdb7b, 0x01}, + {0xdb7c, 0x01}, + {0xdb7d, 0x01}, + {0xdb7e, 0x01}, + {0xdb80, 0x01}, + {0xdb81, 0x01}, + {0xdb82, 0x01}, + {0xdb83, 0x01}, + {0xdb84, 0x01}, + {0xdb85, 0x01}, + {0xdb86, 0x01}, + {0xdb87, 0x01}, + {0xdb88, 0x01}, + {0xdb89, 0x01}, + {0xdb8a, 0x01}, + {0xdb8b, 0x01}, + {0xdb8c, 0x01}, + {0xdb8d, 0x01}, + {0xdb8e, 0x01}, + {0xdb8f, 0x01}, + {0xdb90, 0x01}, + {0xdb91, 0x01}, + {0xdb92, 0x01}, + {0xdb93, 0x01}, + {0xdb94, 0x01}, + {0xdb95, 0x01}, + {0xdb96, 0x01}, + {0xdb97, 0x01}, + {0xdb98, 0x01}, + {0xdb99, 0x01}, + {0xdb9a, 0x01}, + {0xdb9b, 0x01}, + {0xdb9c, 0x01}, + {0xdb9d, 0x01}, + {0xdb9e, 0x01}, + {0xdb9f, 0x01}, + {0xdba0, 0x01}, + {0xdba1, 0x01}, + {0xdba2, 0x01}, + {0xdba3, 0x01}, + {0xdba4, 0x01}, + {0xdba5, 0x01}, + {0xdba6, 0x01}, + {0xdba7, 0x01}, + {0xdba8, 0x01}, + {0xdba9, 0x01}, + {0xdbaa, 0x01}, + {0xdbab, 0x01}, + {0xdbac, 0x01}, + {0xdbad, 0x01}, + {0xdbae, 0x01}, + {0xdbaf, 0x01}, + {0xdbb0, 0x01}, + {0xdbb1, 0x01}, + {0xdbb2, 0x01}, + {0xdbb3, 0x01}, + {0xdbb4, 0x01}, + {0xdbb5, 0x01}, + {0xdbb6, 0x01}, + {0xdbb7, 0x01}, + {0xdbb8, 0x01}, + {0xdbb9, 0x01}, + {0xdbba, 0x01}, + {0xdbbb, 0x01}, + {0xdbbc, 0x01}, + {0xdbbd, 0x01}, + {0xdbbe, 0x01}, + {0xdbbf, 0x01}, + {0xdbc0, 0x01}, + {0xdbc1, 0x01}, + {0xdbc2, 0x01}, + {0xdbc3, 0x01}, + {0xdbc4, 0x01}, + {0xdbc5, 0x01}, + {0xdbc6, 0x01}, + {0xdbc7, 0x01}, + {0xdbc8, 0x01}, + {0xdbc9, 0x01}, + {0xdbca, 0x01}, + {0xdbcb, 0x01}, + {0xdbcc, 0x01}, + {0xdbcd, 0x01}, + {0xdbce, 0x01}, + {0xdbcf, 0x01}, + {0xdbd0, 0x01}, + {0xdbd1, 0x01}, + {0xdbd2, 0x01}, + {0xdbd3, 0x01}, + {0xdbd4, 0x01}, + {0xdbd5, 0x01}, + {0xdbd6, 0x01}, + {0xdbd7, 0x01}, + {0xdbd8, 0x01}, + {0xdbd9, 0x01}, + {0xdbda, 0x01}, + {0xdbdb, 0x01}, + {0xdbdc, 0x01}, + {0xdbdd, 0x01}, + {0xdbde, 0x01}, + {0xdbdf, 0x01}, + {0xdbe0, 0x01}, + {0xdbe1, 0x01}, + {0xdbe2, 0x01}, + {0xdbe3, 0x01}, + {0xdbe4, 0x01}, + {0xdbe5, 0x01}, + {0xdbe6, 0x01}, + {0xdbe7, 0x01}, + {0xdbe8, 0x01}, + {0xdbe9, 0x01}, + {0xdbea, 0x01}, + {0xdbeb, 0x01}, + {0xdbec, 0x01}, + {0xdbed, 0x01}, + {0xdbee, 0x01}, + {0xdbef, 0x01}, + {0xdbf0, 0x01}, + {0xdbf1, 0x01}, + {0xdbf2, 0x01}, + {0xdbf3, 0x01}, + {0xdbf4, 0x01}, + {0xdbf5, 0x01}, + {0xdbf6, 0x01}, + {0xdbf7, 0x01}, + {0xdbf8, 0x01}, + {0xdbf9, 0x01}, + {0xdbfa, 0x01}, + {0xdbfb, 0x01}, + {0xdbfc, 0x01}, + {0xdbfd, 0x01}, + {0xdbfe, 0x01}, + {0xdc40, 0x01}, + {0xdc41, 0x01}, + {0xdc42, 0x01}, + {0xdc43, 0x01}, + {0xdc44, 0x01}, + {0xdc45, 0x01}, + {0xdc46, 0x01}, + {0xdc47, 0x01}, + {0xdc48, 0x01}, + {0xdc49, 0x01}, + {0xdc4a, 0x01}, + {0xdc4b, 0x01}, + {0xdc4c, 0x01}, + {0xdc4d, 0x01}, + {0xdc4e, 0x01}, + {0xdc4f, 0x01}, + {0xdc50, 0x01}, + {0xdc51, 0x01}, + {0xdc52, 0x01}, + {0xdc53, 0x01}, + {0xdc54, 0x01}, + {0xdc55, 0x01}, + {0xdc56, 0x01}, + {0xdc57, 0x01}, + {0xdc58, 0x01}, + {0xdc59, 0x01}, + {0xdc5a, 0x01}, + {0xdc5b, 0x01}, + {0xdc5c, 0x01}, + {0xdc5d, 0x01}, + {0xdc5e, 0x01}, + {0xdc5f, 0x01}, + {0xdc60, 0x01}, + {0xdc61, 0x01}, + {0xdc62, 0x01}, + {0xdc63, 0x01}, + {0xdc64, 0x01}, + {0xdc65, 0x01}, + {0xdc66, 0x01}, + {0xdc67, 0x01}, + {0xdc68, 0x01}, + {0xdc69, 0x01}, + {0xdc6a, 0x01}, + {0xdc6b, 0x01}, + {0xdc6c, 0x01}, + {0xdc6d, 0x01}, + {0xdc6e, 0x01}, + {0xdc6f, 0x01}, + {0xdc70, 0x01}, + {0xdc71, 0x01}, + {0xdc72, 0x01}, + {0xdc73, 0x01}, + {0xdc74, 0x01}, + {0xdc75, 0x01}, + {0xdc76, 0x01}, + {0xdc77, 0x01}, + {0xdc79, 0x01}, + {0xdc7a, 0x01}, + {0xdc7b, 0x01}, + {0xdc7c, 0x01}, + {0xdc7d, 0x01}, + {0xdc7e, 0x01}, + {0xdc80, 0x01}, + {0xdc81, 0x01}, + {0xdc82, 0x01}, + {0xdc83, 0x01}, + {0xdc84, 0x01}, + {0xdc85, 0x01}, + {0xdc86, 0x01}, + {0xdc87, 0x01}, + {0xdc88, 0x01}, + {0xdc89, 0x01}, + {0xdc8a, 0x01}, + {0xdc8b, 0x01}, + {0xdc8c, 0x01}, + {0xdc8d, 0x01}, + {0xdc8e, 0x01}, + {0xdc8f, 0x01}, + {0xdc90, 0x01}, + {0xdc91, 0x01}, + {0xdc92, 0x01}, + {0xdc93, 0x01}, + {0xdc94, 0x01}, + {0xdc95, 0x01}, + {0xdc96, 0x01}, + {0xdc97, 0x01}, + {0xdc98, 0x01}, + {0xdc99, 0x01}, + {0xdc9a, 0x01}, + {0xdc9b, 0x01}, + {0xdc9c, 0x01}, + {0xdc9d, 0x01}, + {0xdc9e, 0x01}, + {0xdc9f, 0x01}, + {0xdca0, 0x01}, + {0xdca1, 0x01}, + {0xdca2, 0x01}, + {0xdca3, 0x01}, + {0xdca4, 0x01}, + {0xdca5, 0x01}, + {0xdca6, 0x01}, + {0xdca7, 0x01}, + {0xdca8, 0x01}, + {0xdca9, 0x01}, + {0xdcaa, 0x01}, + {0xdcab, 0x01}, + {0xdcac, 0x01}, + {0xdcad, 0x01}, + {0xdcae, 0x01}, + {0xdcaf, 0x01}, + {0xdcb0, 0x01}, + {0xdcb1, 0x01}, + {0xdcb2, 0x01}, + {0xdcb3, 0x01}, + {0xdcb4, 0x01}, + {0xdcb5, 0x01}, + {0xdcb6, 0x01}, + {0xdcb7, 0x01}, + {0xdcb8, 0x01}, + {0xdcb9, 0x01}, + {0xdcba, 0x01}, + {0xdcbb, 0x01}, + {0xdcbc, 0x01}, + {0xdcbd, 0x01}, + {0xdcbe, 0x01}, + {0xdcbf, 0x01}, + {0xdcc0, 0x01}, + {0xdcc1, 0x01}, + {0xdcc2, 0x01}, + {0xdcc3, 0x01}, + {0xdcc4, 0x01}, + {0xdcc5, 0x01}, + {0xdcc6, 0x01}, + {0xdcc7, 0x01}, + {0xdcc8, 0x01}, + {0xdcc9, 0x01}, + {0xdcca, 0x01}, + {0xdccb, 0x01}, + {0xdccc, 0x01}, + {0xdccd, 0x01}, + {0xdcce, 0x01}, + {0xdccf, 0x01}, + {0xdcd0, 0x01}, + {0xdcd1, 0x01}, + {0xdcd2, 0x01}, + {0xdcd3, 0x01}, + {0xdcd4, 0x01}, + {0xdcd5, 0x01}, + {0xdcd6, 0x01}, + {0xdcd7, 0x01}, + {0xdcd8, 0x01}, + {0xdcd9, 0x01}, + {0xdcda, 0x01}, + {0xdcdb, 0x01}, + {0xdcdc, 0x01}, + {0xdcdd, 0x01}, + {0xdcde, 0x01}, + {0xdcdf, 0x01}, + {0xdce0, 0x01}, + {0xdce1, 0x01}, + {0xdce2, 0x01}, + {0xdce3, 0x01}, + {0xdce4, 0x01}, + {0xdce5, 0x01}, + {0xdce6, 0x01}, + {0xdce7, 0x01}, + {0xdce8, 0x01}, + {0xdce9, 0x01}, + {0xdcea, 0x01}, + {0xdceb, 0x01}, + {0xdcec, 0x01}, + {0xdced, 0x01}, + {0xdcee, 0x01}, + {0xdcef, 0x01}, + {0xdcf0, 0x01}, + {0xdcf1, 0x01}, + {0xdcf2, 0x01}, + {0xdcf3, 0x01}, + {0xdcf4, 0x01}, + {0xdcf5, 0x01}, + {0xdcf6, 0x01}, + {0xdcf7, 0x01}, + {0xdcf8, 0x01}, + {0xdcf9, 0x01}, + {0xdcfa, 0x01}, + {0xdcfb, 0x01}, + {0xdcfc, 0x01}, + {0xdcfd, 0x01}, + {0xdcfe, 0x01}, + {0xdd40, 0x01}, + {0xdd41, 0x01}, + {0xdd42, 0x01}, + {0xdd43, 0x01}, + {0xdd44, 0x01}, + {0xdd45, 0x01}, + {0xdd46, 0x01}, + {0xdd47, 0x01}, + {0xdd48, 0x01}, + {0xdd49, 0x01}, + {0xdd4a, 0x01}, + {0xdd4b, 0x01}, + {0xdd4c, 0x01}, + {0xdd4d, 0x01}, + {0xdd4e, 0x01}, + {0xdd4f, 0x01}, + {0xdd50, 0x01}, + {0xdd51, 0x01}, + {0xdd52, 0x01}, + {0xdd53, 0x01}, + {0xdd54, 0x01}, + {0xdd55, 0x01}, + {0xdd56, 0x01}, + {0xdd57, 0x01}, + {0xdd58, 0x01}, + {0xdd59, 0x01}, + {0xdd5a, 0x01}, + {0xdd5b, 0x01}, + {0xdd5c, 0x01}, + {0xdd5d, 0x01}, + {0xdd5e, 0x01}, + {0xdd5f, 0x01}, + {0xdd60, 0x01}, + {0xdd61, 0x01}, + {0xdd62, 0x01}, + {0xdd63, 0x01}, + {0xdd64, 0x01}, + {0xdd65, 0x01}, + {0xdd66, 0x01}, + {0xdd67, 0x01}, + {0xdd68, 0x01}, + {0xdd69, 0x01}, + {0xdd6a, 0x01}, + {0xdd6b, 0x01}, + {0xdd6c, 0x01}, + {0xdd6d, 0x01}, + {0xdd6e, 0x01}, + {0xdd6f, 0x01}, + {0xdd70, 0x01}, + {0xdd71, 0x01}, + {0xdd72, 0x01}, + {0xdd73, 0x01}, + {0xdd74, 0x01}, + {0xdd75, 0x01}, + {0xdd76, 0x01}, + {0xdd77, 0x01}, + {0xdd78, 0x01}, + {0xdd79, 0x01}, + {0xdd7a, 0x01}, + {0xdd7b, 0x01}, + {0xdd7c, 0x01}, + {0xdd7d, 0x01}, + {0xdd7e, 0x01}, + {0xdd80, 0x01}, + {0xdd81, 0x01}, + {0xdd82, 0x01}, + {0xdd83, 0x01}, + {0xdd84, 0x01}, + {0xdd85, 0x01}, + {0xdd86, 0x01}, + {0xdd87, 0x01}, + {0xdd88, 0x01}, + {0xdd89, 0x01}, + {0xdd8a, 0x01}, + {0xdd8b, 0x01}, + {0xdd8c, 0x01}, + {0xdd8d, 0x01}, + {0xdd8e, 0x01}, + {0xdd8f, 0x01}, + {0xdd90, 0x01}, + {0xdd91, 0x01}, + {0xdd92, 0x01}, + {0xdd93, 0x01}, + {0xdd94, 0x01}, + {0xdd95, 0x01}, + {0xdd96, 0x01}, + {0xdd97, 0x01}, + {0xdd98, 0x01}, + {0xdd99, 0x01}, + {0xdd9a, 0x01}, + {0xdd9b, 0x01}, + {0xdd9c, 0x01}, + {0xdd9d, 0x01}, + {0xdd9e, 0x01}, + {0xdd9f, 0x01}, + {0xdda0, 0x01}, + {0xdda1, 0x01}, + {0xdda2, 0x01}, + {0xdda3, 0x01}, + {0xdda4, 0x01}, + {0xdda5, 0x01}, + {0xdda6, 0x01}, + {0xdda7, 0x01}, + {0xdda8, 0x01}, + {0xdda9, 0x01}, + {0xddaa, 0x01}, + {0xddab, 0x01}, + {0xddac, 0x01}, + {0xddad, 0x01}, + {0xddae, 0x01}, + {0xddaf, 0x01}, + {0xddb0, 0x01}, + {0xddb1, 0x01}, + {0xddb2, 0x01}, + {0xddb3, 0x01}, + {0xddb4, 0x01}, + {0xddb5, 0x01}, + {0xddb6, 0x01}, + {0xddb7, 0x01}, + {0xddb8, 0x01}, + {0xddb9, 0x01}, + {0xddba, 0x01}, + {0xddbb, 0x01}, + {0xddbc, 0x01}, + {0xddbd, 0x01}, + {0xddbe, 0x01}, + {0xddbf, 0x01}, + {0xddc0, 0x01}, + {0xddc1, 0x01}, + {0xddc2, 0x01}, + {0xddc3, 0x01}, + {0xddc4, 0x01}, + {0xddc5, 0x01}, + {0xddc6, 0x01}, + {0xddc7, 0x01}, + {0xddc8, 0x01}, + {0xddc9, 0x01}, + {0xddca, 0x01}, + {0xddcb, 0x01}, + {0xddcc, 0x01}, + {0xddcd, 0x01}, + {0xddce, 0x01}, + {0xddcf, 0x01}, + {0xddd0, 0x01}, + {0xddd1, 0x01}, + {0xddd2, 0x01}, + {0xddd3, 0x01}, + {0xddd4, 0x01}, + {0xddd5, 0x01}, + {0xddd6, 0x01}, + {0xddd7, 0x01}, + {0xddd8, 0x01}, + {0xddd9, 0x01}, + {0xddda, 0x01}, + {0xdddb, 0x01}, + {0xdddc, 0x01}, + {0xdddd, 0x01}, + {0xddde, 0x01}, + {0xdddf, 0x01}, + {0xdde0, 0x01}, + {0xdde1, 0x01}, + {0xdde2, 0x01}, + {0xdde3, 0x01}, + {0xdde4, 0x01}, + {0xdde5, 0x01}, + {0xdde6, 0x01}, + {0xdde7, 0x01}, + {0xdde8, 0x01}, + {0xdde9, 0x01}, + {0xddea, 0x01}, + {0xddeb, 0x01}, + {0xddec, 0x01}, + {0xdded, 0x01}, + {0xddee, 0x01}, + {0xddef, 0x01}, + {0xddf0, 0x01}, + {0xddf1, 0x01}, + {0xddf2, 0x01}, + {0xddf3, 0x01}, + {0xddf4, 0x01}, + {0xddf5, 0x01}, + {0xddf6, 0x01}, + {0xddf7, 0x01}, + {0xddf8, 0x01}, + {0xddf9, 0x01}, + {0xddfa, 0x01}, + {0xddfb, 0x01}, + {0xddfc, 0x01}, + {0xddfd, 0x01}, + {0xddfe, 0x01}, + {0xde40, 0x01}, + {0xde41, 0x01}, + {0xde42, 0x01}, + {0xde43, 0x01}, + {0xde44, 0x01}, + {0xde45, 0x01}, + {0xde46, 0x01}, + {0xde47, 0x01}, + {0xde48, 0x01}, + {0xde49, 0x01}, + {0xde4a, 0x01}, + {0xde4b, 0x01}, + {0xde4c, 0x01}, + {0xde4d, 0x01}, + {0xde4e, 0x01}, + {0xde4f, 0x01}, + {0xde50, 0x01}, + {0xde51, 0x01}, + {0xde52, 0x01}, + {0xde53, 0x01}, + {0xde54, 0x01}, + {0xde55, 0x01}, + {0xde56, 0x01}, + {0xde57, 0x01}, + {0xde58, 0x01}, + {0xde59, 0x01}, + {0xde5a, 0x01}, + {0xde5b, 0x01}, + {0xde5c, 0x01}, + {0xde5d, 0x01}, + {0xde5e, 0x01}, + {0xde5f, 0x01}, + {0xde60, 0x01}, + {0xde61, 0x01}, + {0xde62, 0x01}, + {0xde63, 0x01}, + {0xde64, 0x01}, + {0xde65, 0x01}, + {0xde66, 0x01}, + {0xde67, 0x01}, + {0xde68, 0x01}, + {0xde69, 0x01}, + {0xde6a, 0x01}, + {0xde6b, 0x01}, + {0xde6c, 0x01}, + {0xde6e, 0x01}, + {0xde6f, 0x01}, + {0xde70, 0x01}, + {0xde71, 0x01}, + {0xde72, 0x01}, + {0xde73, 0x01}, + {0xde74, 0x01}, + {0xde75, 0x01}, + {0xde76, 0x01}, + {0xde77, 0x01}, + {0xde78, 0x01}, + {0xde79, 0x01}, + {0xde7a, 0x01}, + {0xde7b, 0x01}, + {0xde7c, 0x01}, + {0xde7d, 0x01}, + {0xde7e, 0x01}, + {0xde80, 0x01}, + {0xde81, 0x01}, + {0xde82, 0x01}, + {0xde83, 0x01}, + {0xde84, 0x01}, + {0xde85, 0x01}, + {0xde86, 0x01}, + {0xde87, 0x01}, + {0xde88, 0x01}, + {0xde89, 0x01}, + {0xde8a, 0x01}, + {0xde8b, 0x01}, + {0xde8c, 0x01}, + {0xde8d, 0x01}, + {0xde8e, 0x01}, + {0xde8f, 0x01}, + {0xde90, 0x01}, + {0xde91, 0x01}, + {0xde92, 0x01}, + {0xde93, 0x01}, + {0xde94, 0x01}, + {0xde95, 0x01}, + {0xde96, 0x01}, + {0xde97, 0x01}, + {0xde98, 0x01}, + {0xde99, 0x01}, + {0xde9a, 0x01}, + {0xde9b, 0x01}, + {0xde9c, 0x01}, + {0xde9d, 0x01}, + {0xde9e, 0x01}, + {0xde9f, 0x01}, + {0xdea0, 0x01}, + {0xdea1, 0x01}, + {0xdea2, 0x01}, + {0xdea3, 0x01}, + {0xdea4, 0x01}, + {0xdea5, 0x01}, + {0xdea6, 0x01}, + {0xdea7, 0x01}, + {0xdea8, 0x01}, + {0xdea9, 0x01}, + {0xdeaa, 0x01}, + {0xdeab, 0x01}, + {0xdeac, 0x01}, + {0xdead, 0x01}, + {0xdeae, 0x01}, + {0xdeaf, 0x01}, + {0xdeb0, 0x01}, + {0xdeb1, 0x01}, + {0xdeb2, 0x01}, + {0xdeb3, 0x01}, + {0xdeb4, 0x01}, + {0xdeb5, 0x01}, + {0xdeb6, 0x01}, + {0xdeb7, 0x01}, + {0xdeb8, 0x01}, + {0xdeb9, 0x01}, + {0xdeba, 0x01}, + {0xdebb, 0x01}, + {0xdebc, 0x01}, + {0xdebd, 0x01}, + {0xdebe, 0x01}, + {0xdebf, 0x01}, + {0xdec0, 0x01}, + {0xdec1, 0x01}, + {0xdec2, 0x01}, + {0xdec3, 0x01}, + {0xdec4, 0x01}, + {0xdec5, 0x01}, + {0xdec6, 0x01}, + {0xdec7, 0x01}, + {0xdec8, 0x01}, + {0xdec9, 0x01}, + {0xdeca, 0x01}, + {0xdecb, 0x01}, + {0xdecc, 0x01}, + {0xdecd, 0x01}, + {0xdece, 0x01}, + {0xdecf, 0x01}, + {0xded0, 0x01}, + {0xded1, 0x01}, + {0xded2, 0x01}, + {0xded3, 0x01}, + {0xded4, 0x01}, + {0xded5, 0x01}, + {0xded6, 0x01}, + {0xded7, 0x01}, + {0xded8, 0x01}, + {0xded9, 0x01}, + {0xdeda, 0x01}, + {0xdedb, 0x01}, + {0xdedc, 0x01}, + {0xdedd, 0x01}, + {0xdede, 0x01}, + {0xdedf, 0x01}, + {0xdee0, 0x01}, + {0xdee1, 0x01}, + {0xdee2, 0x01}, + {0xdee3, 0x01}, + {0xdee4, 0x01}, + {0xdee5, 0x01}, + {0xdee6, 0x01}, + {0xdee7, 0x01}, + {0xdee8, 0x01}, + {0xdee9, 0x01}, + {0xdeea, 0x01}, + {0xdeeb, 0x01}, + {0xdeec, 0x01}, + {0xdeed, 0x01}, + {0xdeee, 0x01}, + {0xdeef, 0x01}, + {0xdef0, 0x01}, + {0xdef1, 0x01}, + {0xdef2, 0x01}, + {0xdef3, 0x01}, + {0xdef4, 0x01}, + {0xdef5, 0x01}, + {0xdef6, 0x01}, + {0xdef7, 0x01}, + {0xdef8, 0x01}, + {0xdef9, 0x01}, + {0xdefa, 0x01}, + {0xdefb, 0x01}, + {0xdefc, 0x01}, + {0xdefd, 0x01}, + {0xdefe, 0x01}, + {0xdf40, 0x01}, + {0xdf41, 0x01}, + {0xdf42, 0x01}, + {0xdf43, 0x01}, + {0xdf44, 0x01}, + {0xdf45, 0x01}, + {0xdf46, 0x01}, + {0xdf47, 0x01}, + {0xdf48, 0x01}, + {0xdf49, 0x01}, + {0xdf4a, 0x01}, + {0xdf4b, 0x01}, + {0xdf4c, 0x01}, + {0xdf4d, 0x01}, + {0xdf4e, 0x01}, + {0xdf4f, 0x01}, + {0xdf50, 0x01}, + {0xdf51, 0x01}, + {0xdf52, 0x01}, + {0xdf53, 0x01}, + {0xdf54, 0x01}, + {0xdf55, 0x01}, + {0xdf56, 0x01}, + {0xdf57, 0x01}, + {0xdf58, 0x01}, + {0xdf59, 0x01}, + {0xdf5a, 0x01}, + {0xdf5b, 0x01}, + {0xdf5c, 0x01}, + {0xdf5d, 0x01}, + {0xdf5e, 0x01}, + {0xdf5f, 0x01}, + {0xdf60, 0x01}, + {0xdf61, 0x01}, + {0xdf62, 0x01}, + {0xdf63, 0x01}, + {0xdf64, 0x01}, + {0xdf65, 0x01}, + {0xdf66, 0x01}, + {0xdf67, 0x01}, + {0xdf68, 0x01}, + {0xdf69, 0x01}, + {0xdf6a, 0x01}, + {0xdf6b, 0x01}, + {0xdf6c, 0x01}, + {0xdf6d, 0x01}, + {0xdf6e, 0x01}, + {0xdf6f, 0x01}, + {0xdf70, 0x01}, + {0xdf71, 0x01}, + {0xdf72, 0x01}, + {0xdf73, 0x01}, + {0xdf74, 0x01}, + {0xdf75, 0x01}, + {0xdf76, 0x01}, + {0xdf77, 0x01}, + {0xdf78, 0x01}, + {0xdf79, 0x01}, + {0xdf7a, 0x01}, + {0xdf7b, 0x01}, + {0xdf7c, 0x01}, + {0xdf7d, 0x01}, + {0xdf7e, 0x01}, + {0xdf80, 0x01}, + {0xdf81, 0x01}, + {0xdf82, 0x01}, + {0xdf83, 0x01}, + {0xdf84, 0x01}, + {0xdf85, 0x01}, + {0xdf86, 0x01}, + {0xdf87, 0x01}, + {0xdf88, 0x01}, + {0xdf89, 0x01}, + {0xdf8a, 0x01}, + {0xdf8b, 0x01}, + {0xdf8c, 0x01}, + {0xdf8d, 0x01}, + {0xdf8e, 0x01}, + {0xdf8f, 0x01}, + {0xdf90, 0x01}, + {0xdf91, 0x01}, + {0xdf92, 0x01}, + {0xdf93, 0x01}, + {0xdf94, 0x01}, + {0xdf95, 0x01}, + {0xdf96, 0x01}, + {0xdf97, 0x01}, + {0xdf98, 0x01}, + {0xdf99, 0x01}, + {0xdf9a, 0x01}, + {0xdf9b, 0x01}, + {0xdf9c, 0x01}, + {0xdf9d, 0x01}, + {0xdf9e, 0x01}, + {0xdf9f, 0x01}, + {0xdfa0, 0x01}, + {0xdfa1, 0x01}, + {0xdfa2, 0x01}, + {0xdfa3, 0x01}, + {0xdfa4, 0x01}, + {0xdfa5, 0x01}, + {0xdfa6, 0x01}, + {0xdfa7, 0x01}, + {0xdfa8, 0x01}, + {0xdfa9, 0x01}, + {0xdfaa, 0x01}, + {0xdfab, 0x01}, + {0xdfac, 0x01}, + {0xdfad, 0x01}, + {0xdfae, 0x01}, + {0xdfaf, 0x01}, + {0xdfb0, 0x01}, + {0xdfb1, 0x01}, + {0xdfb2, 0x01}, + {0xdfb3, 0x01}, + {0xdfb4, 0x01}, + {0xdfb5, 0x01}, + {0xdfb6, 0x01}, + {0xdfb7, 0x01}, + {0xdfb8, 0x01}, + {0xdfb9, 0x01}, + {0xdfba, 0x01}, + {0xdfbb, 0x01}, + {0xdfbc, 0x01}, + {0xdfbd, 0x01}, + {0xdfbe, 0x01}, + {0xdfbf, 0x01}, + {0xdfc0, 0x01}, + {0xdfc1, 0x01}, + {0xdfc2, 0x01}, + {0xdfc3, 0x01}, + {0xdfc4, 0x01}, + {0xdfc5, 0x01}, + {0xdfc6, 0x01}, + {0xdfc7, 0x01}, + {0xdfc8, 0x01}, + {0xdfc9, 0x01}, + {0xdfca, 0x01}, + {0xdfcb, 0x01}, + {0xdfcc, 0x01}, + {0xdfcd, 0x01}, + {0xdfce, 0x01}, + {0xdfcf, 0x01}, + {0xdfd0, 0x01}, + {0xdfd1, 0x01}, + {0xdfd2, 0x01}, + {0xdfd3, 0x01}, + {0xdfd4, 0x01}, + {0xdfd5, 0x01}, + {0xdfd6, 0x01}, + {0xdfd7, 0x01}, + {0xdfd8, 0x01}, + {0xdfd9, 0x01}, + {0xdfda, 0x01}, + {0xdfdb, 0x01}, + {0xdfdc, 0x01}, + {0xdfdd, 0x01}, + {0xdfde, 0x01}, + {0xdfdf, 0x01}, + {0xdfe0, 0x01}, + {0xdfe1, 0x01}, + {0xdfe2, 0x01}, + {0xdfe3, 0x01}, + {0xdfe4, 0x01}, + {0xdfe5, 0x01}, + {0xdfe6, 0x01}, + {0xdfe7, 0x01}, + {0xdfe8, 0x01}, + {0xdfe9, 0x01}, + {0xdfea, 0x01}, + {0xdfeb, 0x01}, + {0xdfec, 0x01}, + {0xdfed, 0x01}, + {0xdfee, 0x01}, + {0xdfef, 0x01}, + {0xdff0, 0x01}, + {0xdff1, 0x01}, + {0xdff2, 0x01}, + {0xdff3, 0x01}, + {0xdff4, 0x01}, + {0xdff5, 0x01}, + {0xdff6, 0x01}, + {0xdff7, 0x01}, + {0xdff8, 0x01}, + {0xdff9, 0x01}, + {0xdffa, 0x01}, + {0xdffb, 0x01}, + {0xdffc, 0x01}, + {0xdffd, 0x01}, + {0xdffe, 0x01}, + {0xe040, 0x01}, + {0xe041, 0x01}, + {0xe042, 0x01}, + {0xe043, 0x01}, + {0xe044, 0x01}, + {0xe045, 0x01}, + {0xe046, 0x01}, + {0xe047, 0x01}, + {0xe048, 0x01}, + {0xe049, 0x01}, + {0xe04a, 0x01}, + {0xe04b, 0x01}, + {0xe04c, 0x01}, + {0xe04d, 0x01}, + {0xe04e, 0x01}, + {0xe04f, 0x01}, + {0xe050, 0x01}, + {0xe051, 0x01}, + {0xe052, 0x01}, + {0xe053, 0x01}, + {0xe054, 0x01}, + {0xe055, 0x01}, + {0xe056, 0x01}, + {0xe057, 0x01}, + {0xe058, 0x01}, + {0xe059, 0x01}, + {0xe05a, 0x01}, + {0xe05b, 0x01}, + {0xe05c, 0x01}, + {0xe05d, 0x01}, + {0xe05e, 0x01}, + {0xe05f, 0x01}, + {0xe060, 0x01}, + {0xe061, 0x01}, + {0xe062, 0x01}, + {0xe063, 0x01}, + {0xe064, 0x01}, + {0xe065, 0x01}, + {0xe066, 0x01}, + {0xe067, 0x01}, + {0xe068, 0x01}, + {0xe069, 0x01}, + {0xe06a, 0x01}, + {0xe06b, 0x01}, + {0xe06c, 0x01}, + {0xe06d, 0x01}, + {0xe06e, 0x01}, + {0xe06f, 0x01}, + {0xe070, 0x01}, + {0xe071, 0x01}, + {0xe072, 0x01}, + {0xe073, 0x01}, + {0xe074, 0x01}, + {0xe075, 0x01}, + {0xe076, 0x01}, + {0xe077, 0x01}, + {0xe078, 0x01}, + {0xe079, 0x01}, + {0xe07a, 0x01}, + {0xe07b, 0x01}, + {0xe07c, 0x01}, + {0xe07d, 0x01}, + {0xe07e, 0x01}, + {0xe080, 0x01}, + {0xe081, 0x01}, + {0xe082, 0x01}, + {0xe083, 0x01}, + {0xe084, 0x01}, + {0xe085, 0x01}, + {0xe086, 0x01}, + {0xe087, 0x01}, + {0xe088, 0x01}, + {0xe089, 0x01}, + {0xe08a, 0x01}, + {0xe08b, 0x01}, + {0xe08c, 0x01}, + {0xe08d, 0x01}, + {0xe08e, 0x01}, + {0xe08f, 0x01}, + {0xe090, 0x01}, + {0xe091, 0x01}, + {0xe092, 0x01}, + {0xe093, 0x01}, + {0xe094, 0x01}, + {0xe095, 0x01}, + {0xe096, 0x01}, + {0xe097, 0x01}, + {0xe098, 0x01}, + {0xe099, 0x01}, + {0xe09a, 0x01}, + {0xe09b, 0x01}, + {0xe09c, 0x01}, + {0xe09d, 0x01}, + {0xe09e, 0x01}, + {0xe09f, 0x01}, + {0xe0a0, 0x01}, + {0xe0a1, 0x01}, + {0xe0a2, 0x01}, + {0xe0a3, 0x01}, + {0xe0a4, 0x01}, + {0xe0a5, 0x01}, + {0xe0a6, 0x01}, + {0xe0a7, 0x01}, + {0xe0a8, 0x01}, + {0xe0a9, 0x01}, + {0xe0aa, 0x01}, + {0xe0ab, 0x01}, + {0xe0ac, 0x01}, + {0xe0ad, 0x01}, + {0xe0ae, 0x01}, + {0xe0af, 0x01}, + {0xe0b0, 0x01}, + {0xe0b1, 0x01}, + {0xe0b2, 0x01}, + {0xe0b3, 0x01}, + {0xe0b4, 0x01}, + {0xe0b5, 0x01}, + {0xe0b6, 0x01}, + {0xe0b7, 0x01}, + {0xe0b8, 0x01}, + {0xe0b9, 0x01}, + {0xe0ba, 0x01}, + {0xe0bb, 0x01}, + {0xe0bc, 0x01}, + {0xe0bd, 0x01}, + {0xe0be, 0x01}, + {0xe0bf, 0x01}, + {0xe0c0, 0x01}, + {0xe0c1, 0x01}, + {0xe0c2, 0x01}, + {0xe0c3, 0x01}, + {0xe0c4, 0x01}, + {0xe0c5, 0x01}, + {0xe0c6, 0x01}, + {0xe0c7, 0x01}, + {0xe0c8, 0x01}, + {0xe0c9, 0x01}, + {0xe0ca, 0x01}, + {0xe0cb, 0x01}, + {0xe0cc, 0x01}, + {0xe0cd, 0x01}, + {0xe0ce, 0x01}, + {0xe0cf, 0x01}, + {0xe0d0, 0x01}, + {0xe0d1, 0x01}, + {0xe0d2, 0x01}, + {0xe0d3, 0x01}, + {0xe0d4, 0x01}, + {0xe0d5, 0x01}, + {0xe0d6, 0x01}, + {0xe0d7, 0x01}, + {0xe0d8, 0x01}, + {0xe0d9, 0x01}, + {0xe0da, 0x01}, + {0xe0db, 0x01}, + {0xe0dc, 0x01}, + {0xe0dd, 0x01}, + {0xe0de, 0x01}, + {0xe0df, 0x01}, + {0xe0e0, 0x01}, + {0xe0e1, 0x01}, + {0xe0e2, 0x01}, + {0xe0e3, 0x01}, + {0xe0e4, 0x01}, + {0xe0e5, 0x01}, + {0xe0e6, 0x01}, + {0xe0e7, 0x01}, + {0xe0e8, 0x01}, + {0xe0e9, 0x01}, + {0xe0ea, 0x01}, + {0xe0eb, 0x01}, + {0xe0ec, 0x01}, + {0xe0ed, 0x01}, + {0xe0ee, 0x01}, + {0xe0ef, 0x01}, + {0xe0f0, 0x01}, + {0xe0f1, 0x01}, + {0xe0f2, 0x01}, + {0xe0f3, 0x01}, + {0xe0f4, 0x01}, + {0xe0f5, 0x01}, + {0xe0f6, 0x01}, + {0xe0f7, 0x01}, + {0xe0f8, 0x01}, + {0xe0f9, 0x01}, + {0xe0fa, 0x01}, + {0xe0fb, 0x01}, + {0xe0fc, 0x01}, + {0xe0fd, 0x01}, + {0xe0fe, 0x01}, + {0xe140, 0x01}, + {0xe141, 0x01}, + {0xe142, 0x01}, + {0xe143, 0x01}, + {0xe144, 0x01}, + {0xe145, 0x01}, + {0xe146, 0x01}, + {0xe147, 0x01}, + {0xe148, 0x01}, + {0xe149, 0x01}, + {0xe14a, 0x01}, + {0xe14b, 0x01}, + {0xe14c, 0x01}, + {0xe14d, 0x01}, + {0xe14e, 0x01}, + {0xe14f, 0x01}, + {0xe150, 0x01}, + {0xe151, 0x01}, + {0xe152, 0x01}, + {0xe153, 0x01}, + {0xe154, 0x01}, + {0xe155, 0x01}, + {0xe156, 0x01}, + {0xe157, 0x01}, + {0xe158, 0x01}, + {0xe159, 0x01}, + {0xe15a, 0x01}, + {0xe15b, 0x01}, + {0xe15c, 0x01}, + {0xe15d, 0x01}, + {0xe15e, 0x01}, + {0xe15f, 0x01}, + {0xe160, 0x01}, + {0xe161, 0x01}, + {0xe162, 0x01}, + {0xe163, 0x01}, + {0xe164, 0x01}, + {0xe165, 0x01}, + {0xe166, 0x01}, + {0xe167, 0x01}, + {0xe168, 0x01}, + {0xe169, 0x01}, + {0xe16a, 0x01}, + {0xe16b, 0x01}, + {0xe16c, 0x01}, + {0xe16d, 0x01}, + {0xe16e, 0x01}, + {0xe16f, 0x01}, + {0xe170, 0x01}, + {0xe171, 0x01}, + {0xe172, 0x01}, + {0xe173, 0x01}, + {0xe174, 0x01}, + {0xe175, 0x01}, + {0xe176, 0x01}, + {0xe177, 0x01}, + {0xe178, 0x01}, + {0xe179, 0x01}, + {0xe17a, 0x01}, + {0xe17b, 0x01}, + {0xe17c, 0x01}, + {0xe17d, 0x01}, + {0xe17e, 0x01}, + {0xe180, 0x01}, + {0xe181, 0x01}, + {0xe182, 0x01}, + {0xe183, 0x01}, + {0xe184, 0x01}, + {0xe185, 0x01}, + {0xe186, 0x01}, + {0xe187, 0x01}, + {0xe188, 0x01}, + {0xe189, 0x01}, + {0xe18a, 0x01}, + {0xe18b, 0x01}, + {0xe18c, 0x01}, + {0xe18d, 0x01}, + {0xe18e, 0x01}, + {0xe18f, 0x01}, + {0xe190, 0x01}, + {0xe191, 0x01}, + {0xe192, 0x01}, + {0xe193, 0x01}, + {0xe194, 0x01}, + {0xe195, 0x01}, + {0xe196, 0x01}, + {0xe197, 0x01}, + {0xe198, 0x01}, + {0xe199, 0x01}, + {0xe19a, 0x01}, + {0xe19b, 0x01}, + {0xe19c, 0x01}, + {0xe19d, 0x01}, + {0xe19e, 0x01}, + {0xe19f, 0x01}, + {0xe1a0, 0x01}, + {0xe1a1, 0x01}, + {0xe1a2, 0x01}, + {0xe1a3, 0x01}, + {0xe1a4, 0x01}, + {0xe1a5, 0x01}, + {0xe1a6, 0x01}, + {0xe1a7, 0x01}, + {0xe1a8, 0x01}, + {0xe1a9, 0x01}, + {0xe1aa, 0x01}, + {0xe1ab, 0x01}, + {0xe1ac, 0x01}, + {0xe1ad, 0x01}, + {0xe1ae, 0x01}, + {0xe1af, 0x01}, + {0xe1b0, 0x01}, + {0xe1b1, 0x01}, + {0xe1b2, 0x01}, + {0xe1b3, 0x01}, + {0xe1b4, 0x01}, + {0xe1b5, 0x01}, + {0xe1b6, 0x01}, + {0xe1b7, 0x01}, + {0xe1b8, 0x01}, + {0xe1b9, 0x01}, + {0xe1ba, 0x01}, + {0xe1bb, 0x01}, + {0xe1bc, 0x01}, + {0xe1bd, 0x01}, + {0xe1be, 0x01}, + {0xe1bf, 0x01}, + {0xe1c0, 0x01}, + {0xe1c1, 0x01}, + {0xe1c2, 0x01}, + {0xe1c3, 0x01}, + {0xe1c4, 0x01}, + {0xe1c5, 0x01}, + {0xe1c6, 0x01}, + {0xe1c7, 0x01}, + {0xe1c8, 0x01}, + {0xe1c9, 0x01}, + {0xe1ca, 0x01}, + {0xe1cb, 0x01}, + {0xe1cc, 0x01}, + {0xe1cd, 0x01}, + {0xe1ce, 0x01}, + {0xe1cf, 0x01}, + {0xe1d0, 0x01}, + {0xe1d1, 0x01}, + {0xe1d2, 0x01}, + {0xe1d3, 0x01}, + {0xe1d4, 0x01}, + {0xe1d5, 0x01}, + {0xe1d6, 0x01}, + {0xe1d7, 0x01}, + {0xe1d8, 0x01}, + {0xe1d9, 0x01}, + {0xe1da, 0x01}, + {0xe1db, 0x01}, + {0xe1dc, 0x01}, + {0xe1dd, 0x01}, + {0xe1de, 0x01}, + {0xe1df, 0x01}, + {0xe1e0, 0x01}, + {0xe1e1, 0x01}, + {0xe1e2, 0x01}, + {0xe1e3, 0x01}, + {0xe1e4, 0x01}, + {0xe1e5, 0x01}, + {0xe1e6, 0x01}, + {0xe1e7, 0x01}, + {0xe1e8, 0x01}, + {0xe1e9, 0x01}, + {0xe1ea, 0x01}, + {0xe1eb, 0x01}, + {0xe1ec, 0x01}, + {0xe1ed, 0x01}, + {0xe1ee, 0x01}, + {0xe1ef, 0x01}, + {0xe1f0, 0x01}, + {0xe1f1, 0x01}, + {0xe1f2, 0x01}, + {0xe1f3, 0x01}, + {0xe1f4, 0x01}, + {0xe1f5, 0x01}, + {0xe1f6, 0x01}, + {0xe1f7, 0x01}, + {0xe1f8, 0x01}, + {0xe1f9, 0x01}, + {0xe1fa, 0x01}, + {0xe1fb, 0x01}, + {0xe1fc, 0x01}, + {0xe1fd, 0x01}, + {0xe1fe, 0x01}, + {0xe240, 0x01}, + {0xe241, 0x01}, + {0xe242, 0x01}, + {0xe243, 0x01}, + {0xe244, 0x01}, + {0xe245, 0x01}, + {0xe246, 0x01}, + {0xe247, 0x01}, + {0xe248, 0x01}, + {0xe249, 0x01}, + {0xe24a, 0x01}, + {0xe24b, 0x01}, + {0xe24c, 0x01}, + {0xe24d, 0x01}, + {0xe24e, 0x01}, + {0xe24f, 0x01}, + {0xe250, 0x01}, + {0xe251, 0x01}, + {0xe252, 0x01}, + {0xe253, 0x01}, + {0xe254, 0x01}, + {0xe255, 0x01}, + {0xe256, 0x01}, + {0xe257, 0x01}, + {0xe258, 0x01}, + {0xe259, 0x01}, + {0xe25a, 0x01}, + {0xe25b, 0x01}, + {0xe25c, 0x01}, + {0xe25d, 0x01}, + {0xe25e, 0x01}, + {0xe25f, 0x01}, + {0xe260, 0x01}, + {0xe261, 0x01}, + {0xe262, 0x01}, + {0xe263, 0x01}, + {0xe264, 0x01}, + {0xe265, 0x01}, + {0xe266, 0x01}, + {0xe267, 0x01}, + {0xe268, 0x01}, + {0xe269, 0x01}, + {0xe26a, 0x01}, + {0xe26b, 0x01}, + {0xe26c, 0x01}, + {0xe26d, 0x01}, + {0xe26e, 0x01}, + {0xe26f, 0x01}, + {0xe270, 0x01}, + {0xe271, 0x01}, + {0xe272, 0x01}, + {0xe273, 0x01}, + {0xe274, 0x01}, + {0xe275, 0x01}, + {0xe276, 0x01}, + {0xe277, 0x01}, + {0xe278, 0x01}, + {0xe279, 0x01}, + {0xe27a, 0x01}, + {0xe27b, 0x01}, + {0xe27c, 0x01}, + {0xe27d, 0x01}, + {0xe27e, 0x01}, + {0xe280, 0x01}, + {0xe281, 0x01}, + {0xe282, 0x01}, + {0xe283, 0x01}, + {0xe284, 0x01}, + {0xe285, 0x01}, + {0xe286, 0x01}, + {0xe287, 0x01}, + {0xe288, 0x01}, + {0xe289, 0x01}, + {0xe28a, 0x01}, + {0xe28b, 0x01}, + {0xe28c, 0x01}, + {0xe28d, 0x01}, + {0xe28e, 0x01}, + {0xe28f, 0x01}, + {0xe290, 0x01}, + {0xe291, 0x01}, + {0xe292, 0x01}, + {0xe293, 0x01}, + {0xe294, 0x01}, + {0xe295, 0x01}, + {0xe296, 0x01}, + {0xe297, 0x01}, + {0xe298, 0x01}, + {0xe299, 0x01}, + {0xe29a, 0x01}, + {0xe29b, 0x01}, + {0xe29c, 0x01}, + {0xe29d, 0x01}, + {0xe29e, 0x01}, + {0xe29f, 0x01}, + {0xe2a0, 0x01}, + {0xe2a1, 0x01}, + {0xe2a2, 0x01}, + {0xe2a3, 0x01}, + {0xe2a4, 0x01}, + {0xe2a5, 0x01}, + {0xe2a6, 0x01}, + {0xe2a7, 0x01}, + {0xe2a8, 0x01}, + {0xe2a9, 0x01}, + {0xe2aa, 0x01}, + {0xe2ab, 0x01}, + {0xe2ac, 0x01}, + {0xe2ad, 0x01}, + {0xe2ae, 0x01}, + {0xe2af, 0x01}, + {0xe2b0, 0x01}, + {0xe2b1, 0x01}, + {0xe2b2, 0x01}, + {0xe2b3, 0x01}, + {0xe2b4, 0x01}, + {0xe2b5, 0x01}, + {0xe2b6, 0x01}, + {0xe2b7, 0x01}, + {0xe2b8, 0x01}, + {0xe2b9, 0x01}, + {0xe2ba, 0x01}, + {0xe2bb, 0x01}, + {0xe2bc, 0x01}, + {0xe2bd, 0x01}, + {0xe2be, 0x01}, + {0xe2bf, 0x01}, + {0xe2c0, 0x01}, + {0xe2c1, 0x01}, + {0xe2c2, 0x01}, + {0xe2c3, 0x01}, + {0xe2c4, 0x01}, + {0xe2c5, 0x01}, + {0xe2c6, 0x01}, + {0xe2c7, 0x01}, + {0xe2c8, 0x01}, + {0xe2c9, 0x01}, + {0xe2ca, 0x01}, + {0xe2cb, 0x01}, + {0xe2cc, 0x01}, + {0xe2cd, 0x01}, + {0xe2ce, 0x01}, + {0xe2cf, 0x01}, + {0xe2d0, 0x01}, + {0xe2d1, 0x01}, + {0xe2d2, 0x01}, + {0xe2d3, 0x01}, + {0xe2d4, 0x01}, + {0xe2d5, 0x01}, + {0xe2d6, 0x01}, + {0xe2d7, 0x01}, + {0xe2d8, 0x01}, + {0xe2d9, 0x01}, + {0xe2da, 0x01}, + {0xe2db, 0x01}, + {0xe2dc, 0x01}, + {0xe2dd, 0x01}, + {0xe2de, 0x01}, + {0xe2df, 0x01}, + {0xe2e0, 0x01}, + {0xe2e1, 0x01}, + {0xe2e2, 0x01}, + {0xe2e3, 0x01}, + {0xe2e4, 0x01}, + {0xe2e5, 0x01}, + {0xe2e6, 0x01}, + {0xe2e7, 0x01}, + {0xe2e8, 0x01}, + {0xe2e9, 0x01}, + {0xe2ea, 0x01}, + {0xe2eb, 0x01}, + {0xe2ec, 0x01}, + {0xe2ed, 0x01}, + {0xe2ee, 0x01}, + {0xe2ef, 0x01}, + {0xe2f0, 0x01}, + {0xe2f1, 0x01}, + {0xe2f2, 0x01}, + {0xe2f3, 0x01}, + {0xe2f4, 0x01}, + {0xe2f5, 0x01}, + {0xe2f6, 0x01}, + {0xe2f7, 0x01}, + {0xe2f8, 0x01}, + {0xe2f9, 0x01}, + {0xe2fa, 0x01}, + {0xe2fb, 0x01}, + {0xe2fc, 0x01}, + {0xe2fd, 0x01}, + {0xe2fe, 0x01}, + {0xe340, 0x01}, + {0xe341, 0x01}, + {0xe342, 0x01}, + {0xe343, 0x01}, + {0xe344, 0x01}, + {0xe345, 0x01}, + {0xe346, 0x01}, + {0xe347, 0x01}, + {0xe348, 0x01}, + {0xe349, 0x01}, + {0xe34a, 0x01}, + {0xe34b, 0x01}, + {0xe34c, 0x01}, + {0xe34d, 0x01}, + {0xe34e, 0x01}, + {0xe34f, 0x01}, + {0xe350, 0x01}, + {0xe351, 0x01}, + {0xe352, 0x01}, + {0xe353, 0x01}, + {0xe354, 0x01}, + {0xe355, 0x01}, + {0xe356, 0x01}, + {0xe357, 0x01}, + {0xe358, 0x01}, + {0xe359, 0x01}, + {0xe35a, 0x01}, + {0xe35b, 0x01}, + {0xe35c, 0x01}, + {0xe35d, 0x01}, + {0xe35e, 0x01}, + {0xe35f, 0x01}, + {0xe360, 0x01}, + {0xe361, 0x01}, + {0xe362, 0x01}, + {0xe363, 0x01}, + {0xe364, 0x01}, + {0xe365, 0x01}, + {0xe366, 0x01}, + {0xe367, 0x01}, + {0xe368, 0x01}, + {0xe369, 0x01}, + {0xe36a, 0x01}, + {0xe36b, 0x01}, + {0xe36c, 0x01}, + {0xe36d, 0x01}, + {0xe36e, 0x01}, + {0xe36f, 0x01}, + {0xe370, 0x01}, + {0xe371, 0x01}, + {0xe372, 0x01}, + {0xe373, 0x01}, + {0xe374, 0x01}, + {0xe375, 0x01}, + {0xe376, 0x01}, + {0xe377, 0x01}, + {0xe378, 0x01}, + {0xe379, 0x01}, + {0xe37a, 0x01}, + {0xe37b, 0x01}, + {0xe37c, 0x01}, + {0xe37d, 0x01}, + {0xe37e, 0x01}, + {0xe380, 0x01}, + {0xe381, 0x01}, + {0xe382, 0x01}, + {0xe383, 0x01}, + {0xe384, 0x01}, + {0xe385, 0x01}, + {0xe386, 0x01}, + {0xe387, 0x01}, + {0xe388, 0x01}, + {0xe389, 0x01}, + {0xe38a, 0x01}, + {0xe38b, 0x01}, + {0xe38c, 0x01}, + {0xe38d, 0x01}, + {0xe38e, 0x01}, + {0xe38f, 0x01}, + {0xe390, 0x01}, + {0xe391, 0x01}, + {0xe392, 0x01}, + {0xe393, 0x01}, + {0xe394, 0x01}, + {0xe395, 0x01}, + {0xe396, 0x01}, + {0xe397, 0x01}, + {0xe398, 0x01}, + {0xe399, 0x01}, + {0xe39a, 0x01}, + {0xe39b, 0x01}, + {0xe39c, 0x01}, + {0xe39d, 0x01}, + {0xe39e, 0x01}, + {0xe39f, 0x01}, + {0xe3a0, 0x01}, + {0xe3a1, 0x01}, + {0xe3a2, 0x01}, + {0xe3a3, 0x01}, + {0xe3a4, 0x01}, + {0xe3a5, 0x01}, + {0xe3a6, 0x01}, + {0xe3a7, 0x01}, + {0xe3a8, 0x01}, + {0xe3a9, 0x01}, + {0xe3aa, 0x01}, + {0xe3ab, 0x01}, + {0xe3ac, 0x01}, + {0xe3ad, 0x01}, + {0xe3ae, 0x01}, + {0xe3af, 0x01}, + {0xe3b0, 0x01}, + {0xe3b1, 0x01}, + {0xe3b2, 0x01}, + {0xe3b3, 0x01}, + {0xe3b4, 0x01}, + {0xe3b5, 0x01}, + {0xe3b6, 0x01}, + {0xe3b7, 0x01}, + {0xe3b8, 0x01}, + {0xe3b9, 0x01}, + {0xe3ba, 0x01}, + {0xe3bb, 0x01}, + {0xe3bc, 0x01}, + {0xe3bd, 0x01}, + {0xe3be, 0x01}, + {0xe3bf, 0x01}, + {0xe3c0, 0x01}, + {0xe3c1, 0x01}, + {0xe3c2, 0x01}, + {0xe3c3, 0x01}, + {0xe3c4, 0x01}, + {0xe3c5, 0x01}, + {0xe3c6, 0x01}, + {0xe3c7, 0x01}, + {0xe3c8, 0x01}, + {0xe3c9, 0x01}, + {0xe3ca, 0x01}, + {0xe3cb, 0x01}, + {0xe3cc, 0x01}, + {0xe3cd, 0x01}, + {0xe3ce, 0x01}, + {0xe3cf, 0x01}, + {0xe3d0, 0x01}, + {0xe3d1, 0x01}, + {0xe3d2, 0x01}, + {0xe3d3, 0x01}, + {0xe3d4, 0x01}, + {0xe3d5, 0x01}, + {0xe3d6, 0x01}, + {0xe3d7, 0x01}, + {0xe3d8, 0x01}, + {0xe3d9, 0x01}, + {0xe3da, 0x01}, + {0xe3db, 0x01}, + {0xe3dc, 0x01}, + {0xe3dd, 0x01}, + {0xe3de, 0x01}, + {0xe3df, 0x01}, + {0xe3e0, 0x01}, + {0xe3e1, 0x01}, + {0xe3e2, 0x01}, + {0xe3e3, 0x01}, + {0xe3e4, 0x01}, + {0xe3e5, 0x01}, + {0xe3e6, 0x01}, + {0xe3e7, 0x01}, + {0xe3e8, 0x01}, + {0xe3e9, 0x01}, + {0xe3ea, 0x01}, + {0xe3eb, 0x01}, + {0xe3ec, 0x01}, + {0xe3ed, 0x01}, + {0xe3ee, 0x01}, + {0xe3ef, 0x01}, + {0xe3f0, 0x01}, + {0xe3f1, 0x01}, + {0xe3f2, 0x01}, + {0xe3f3, 0x01}, + {0xe3f4, 0x01}, + {0xe3f5, 0x01}, + {0xe3f6, 0x01}, + {0xe3f7, 0x01}, + {0xe3f8, 0x01}, + {0xe3f9, 0x01}, + {0xe3fa, 0x01}, + {0xe3fb, 0x01}, + {0xe3fc, 0x01}, + {0xe3fd, 0x01}, + {0xe3fe, 0x01}, + {0xe440, 0x01}, + {0xe441, 0x01}, + {0xe442, 0x01}, + {0xe443, 0x01}, + {0xe444, 0x01}, + {0xe445, 0x01}, + {0xe446, 0x01}, + {0xe447, 0x01}, + {0xe448, 0x01}, + {0xe449, 0x01}, + {0xe44a, 0x01}, + {0xe44b, 0x01}, + {0xe44c, 0x01}, + {0xe44d, 0x01}, + {0xe44e, 0x01}, + {0xe44f, 0x01}, + {0xe450, 0x01}, + {0xe451, 0x01}, + {0xe452, 0x01}, + {0xe453, 0x01}, + {0xe454, 0x01}, + {0xe455, 0x01}, + {0xe456, 0x01}, + {0xe457, 0x01}, + {0xe458, 0x01}, + {0xe459, 0x01}, + {0xe45a, 0x01}, + {0xe45b, 0x01}, + {0xe45c, 0x01}, + {0xe45d, 0x01}, + {0xe45e, 0x01}, + {0xe45f, 0x01}, + {0xe460, 0x01}, + {0xe461, 0x01}, + {0xe462, 0x01}, + {0xe463, 0x01}, + {0xe464, 0x01}, + {0xe465, 0x01}, + {0xe466, 0x01}, + {0xe467, 0x01}, + {0xe468, 0x01}, + {0xe469, 0x01}, + {0xe46a, 0x01}, + {0xe46b, 0x01}, + {0xe46c, 0x01}, + {0xe46d, 0x01}, + {0xe46e, 0x01}, + {0xe46f, 0x01}, + {0xe470, 0x01}, + {0xe471, 0x01}, + {0xe472, 0x01}, + {0xe473, 0x01}, + {0xe474, 0x01}, + {0xe475, 0x01}, + {0xe476, 0x01}, + {0xe477, 0x01}, + {0xe478, 0x01}, + {0xe479, 0x01}, + {0xe47a, 0x01}, + {0xe47b, 0x01}, + {0xe47c, 0x01}, + {0xe47d, 0x01}, + {0xe47e, 0x01}, + {0xe480, 0x01}, + {0xe481, 0x01}, + {0xe482, 0x01}, + {0xe483, 0x01}, + {0xe484, 0x01}, + {0xe485, 0x01}, + {0xe486, 0x01}, + {0xe487, 0x01}, + {0xe488, 0x01}, + {0xe489, 0x01}, + {0xe48a, 0x01}, + {0xe48b, 0x01}, + {0xe48c, 0x01}, + {0xe48d, 0x01}, + {0xe48e, 0x01}, + {0xe48f, 0x01}, + {0xe490, 0x01}, + {0xe491, 0x01}, + {0xe492, 0x01}, + {0xe493, 0x01}, + {0xe494, 0x01}, + {0xe495, 0x01}, + {0xe496, 0x01}, + {0xe497, 0x01}, + {0xe498, 0x01}, + {0xe499, 0x01}, + {0xe49a, 0x01}, + {0xe49b, 0x01}, + {0xe49c, 0x01}, + {0xe49d, 0x01}, + {0xe49e, 0x01}, + {0xe49f, 0x01}, + {0xe4a0, 0x01}, + {0xe4a1, 0x01}, + {0xe4a2, 0x01}, + {0xe4a3, 0x01}, + {0xe4a4, 0x01}, + {0xe4a5, 0x01}, + {0xe4a6, 0x01}, + {0xe4a7, 0x01}, + {0xe4a8, 0x01}, + {0xe4a9, 0x01}, + {0xe4aa, 0x01}, + {0xe4ab, 0x01}, + {0xe4ac, 0x01}, + {0xe4ad, 0x01}, + {0xe4ae, 0x01}, + {0xe4af, 0x01}, + {0xe4b0, 0x01}, + {0xe4b1, 0x01}, + {0xe4b2, 0x01}, + {0xe4b3, 0x01}, + {0xe4b4, 0x01}, + {0xe4b5, 0x01}, + {0xe4b6, 0x01}, + {0xe4b7, 0x01}, + {0xe4b8, 0x01}, + {0xe4b9, 0x01}, + {0xe4ba, 0x01}, + {0xe4bb, 0x01}, + {0xe4bc, 0x01}, + {0xe4bd, 0x01}, + {0xe4be, 0x01}, + {0xe4bf, 0x01}, + {0xe4c0, 0x01}, + {0xe4c1, 0x01}, + {0xe4c2, 0x01}, + {0xe4c3, 0x01}, + {0xe4c4, 0x01}, + {0xe4c5, 0x01}, + {0xe4c6, 0x01}, + {0xe4c7, 0x01}, + {0xe4c8, 0x01}, + {0xe4c9, 0x01}, + {0xe4ca, 0x01}, + {0xe4cb, 0x01}, + {0xe4cc, 0x01}, + {0xe4cd, 0x01}, + {0xe4ce, 0x01}, + {0xe4cf, 0x01}, + {0xe4d0, 0x01}, + {0xe4d1, 0x01}, + {0xe4d2, 0x01}, + {0xe4d3, 0x01}, + {0xe4d4, 0x01}, + {0xe4d5, 0x01}, + {0xe4d6, 0x01}, + {0xe4d7, 0x01}, + {0xe4d8, 0x01}, + {0xe4d9, 0x01}, + {0xe4da, 0x01}, + {0xe4db, 0x01}, + {0xe4dc, 0x01}, + {0xe4dd, 0x01}, + {0xe4de, 0x01}, + {0xe4df, 0x01}, + {0xe4e0, 0x01}, + {0xe4e1, 0x01}, + {0xe4e2, 0x01}, + {0xe4e3, 0x01}, + {0xe4e4, 0x01}, + {0xe4e5, 0x01}, + {0xe4e6, 0x01}, + {0xe4e7, 0x01}, + {0xe4e8, 0x01}, + {0xe4e9, 0x01}, + {0xe4ea, 0x01}, + {0xe4eb, 0x01}, + {0xe4ec, 0x01}, + {0xe4ed, 0x01}, + {0xe4ee, 0x01}, + {0xe4ef, 0x01}, + {0xe4f0, 0x01}, + {0xe4f1, 0x01}, + {0xe4f2, 0x01}, + {0xe4f3, 0x01}, + {0xe4f4, 0x01}, + {0xe4f5, 0x01}, + {0xe4f6, 0x01}, + {0xe4f7, 0x01}, + {0xe4f8, 0x01}, + {0xe4f9, 0x01}, + {0xe4fa, 0x01}, + {0xe4fb, 0x01}, + {0xe4fc, 0x01}, + {0xe4fd, 0x01}, + {0xe4fe, 0x01}, + {0xe540, 0x01}, + {0xe541, 0x01}, + {0xe542, 0x01}, + {0xe543, 0x01}, + {0xe544, 0x01}, + {0xe545, 0x01}, + {0xe546, 0x01}, + {0xe547, 0x01}, + {0xe548, 0x01}, + {0xe549, 0x01}, + {0xe54a, 0x01}, + {0xe54b, 0x01}, + {0xe54c, 0x01}, + {0xe54d, 0x01}, + {0xe54e, 0x01}, + {0xe54f, 0x01}, + {0xe550, 0x01}, + {0xe551, 0x01}, + {0xe552, 0x01}, + {0xe553, 0x01}, + {0xe554, 0x01}, + {0xe555, 0x01}, + {0xe556, 0x01}, + {0xe557, 0x01}, + {0xe558, 0x01}, + {0xe559, 0x01}, + {0xe55a, 0x01}, + {0xe55b, 0x01}, + {0xe55c, 0x01}, + {0xe55d, 0x01}, + {0xe55e, 0x01}, + {0xe55f, 0x01}, + {0xe560, 0x01}, + {0xe561, 0x01}, + {0xe562, 0x01}, + {0xe563, 0x01}, + {0xe564, 0x01}, + {0xe565, 0x01}, + {0xe566, 0x01}, + {0xe567, 0x01}, + {0xe568, 0x01}, + {0xe569, 0x01}, + {0xe56a, 0x01}, + {0xe56b, 0x01}, + {0xe56c, 0x01}, + {0xe56d, 0x01}, + {0xe56e, 0x01}, + {0xe56f, 0x01}, + {0xe570, 0x01}, + {0xe571, 0x01}, + {0xe572, 0x01}, + {0xe573, 0x01}, + {0xe574, 0x01}, + {0xe575, 0x01}, + {0xe576, 0x01}, + {0xe578, 0x01}, + {0xe579, 0x01}, + {0xe57a, 0x01}, + {0xe57b, 0x01}, + {0xe57c, 0x01}, + {0xe57d, 0x01}, + {0xe57e, 0x01}, + {0xe580, 0x01}, + {0xe581, 0x01}, + {0xe582, 0x01}, + {0xe583, 0x01}, + {0xe584, 0x01}, + {0xe585, 0x01}, + {0xe586, 0x01}, + {0xe587, 0x01}, + {0xe588, 0x01}, + {0xe589, 0x01}, + {0xe58a, 0x01}, + {0xe58b, 0x01}, + {0xe58c, 0x01}, + {0xe58d, 0x01}, + {0xe58e, 0x01}, + {0xe58f, 0x01}, + {0xe590, 0x01}, + {0xe591, 0x01}, + {0xe592, 0x01}, + {0xe593, 0x01}, + {0xe594, 0x01}, + {0xe595, 0x01}, + {0xe596, 0x01}, + {0xe597, 0x01}, + {0xe598, 0x01}, + {0xe599, 0x01}, + {0xe59a, 0x01}, + {0xe59b, 0x01}, + {0xe59c, 0x01}, + {0xe59d, 0x01}, + {0xe59e, 0x01}, + {0xe59f, 0x01}, + {0xe5a0, 0x01}, + {0xe5a1, 0x01}, + {0xe5a2, 0x01}, + {0xe5a3, 0x01}, + {0xe5a4, 0x01}, + {0xe5a5, 0x01}, + {0xe5a6, 0x01}, + {0xe5a7, 0x01}, + {0xe5a8, 0x01}, + {0xe5a9, 0x01}, + {0xe5aa, 0x01}, + {0xe5ab, 0x01}, + {0xe5ac, 0x01}, + {0xe5ad, 0x01}, + {0xe5ae, 0x01}, + {0xe5af, 0x01}, + {0xe5b0, 0x01}, + {0xe5b1, 0x01}, + {0xe5b2, 0x01}, + {0xe5b3, 0x01}, + {0xe5b4, 0x01}, + {0xe5b5, 0x01}, + {0xe5b6, 0x01}, + {0xe5b7, 0x01}, + {0xe5b8, 0x01}, + {0xe5b9, 0x01}, + {0xe5ba, 0x01}, + {0xe5bb, 0x01}, + {0xe5bc, 0x01}, + {0xe5bd, 0x01}, + {0xe5be, 0x01}, + {0xe5bf, 0x01}, + {0xe5c0, 0x01}, + {0xe5c1, 0x01}, + {0xe5c2, 0x01}, + {0xe5c3, 0x01}, + {0xe5c4, 0x01}, + {0xe5c5, 0x01}, + {0xe5c6, 0x01}, + {0xe5c7, 0x01}, + {0xe5c8, 0x01}, + {0xe5c9, 0x01}, + {0xe5ca, 0x01}, + {0xe5cb, 0x01}, + {0xe5cc, 0x01}, + {0xe5cd, 0x01}, + {0xe5ce, 0x01}, + {0xe5cf, 0x01}, + {0xe5d0, 0x01}, + {0xe5d1, 0x01}, + {0xe5d2, 0x01}, + {0xe5d3, 0x01}, + {0xe5d4, 0x01}, + {0xe5d5, 0x01}, + {0xe5d6, 0x01}, + {0xe5d7, 0x01}, + {0xe5d8, 0x01}, + {0xe5d9, 0x01}, + {0xe5da, 0x01}, + {0xe5db, 0x01}, + {0xe5dc, 0x01}, + {0xe5dd, 0x01}, + {0xe5de, 0x01}, + {0xe5df, 0x01}, + {0xe5e0, 0x01}, + {0xe5e1, 0x01}, + {0xe5e2, 0x01}, + {0xe5e3, 0x01}, + {0xe5e4, 0x01}, + {0xe5e5, 0x01}, + {0xe5e6, 0x01}, + {0xe5e7, 0x01}, + {0xe5e8, 0x01}, + {0xe5e9, 0x01}, + {0xe5ea, 0x01}, + {0xe5eb, 0x01}, + {0xe5ec, 0x01}, + {0xe5ed, 0x01}, + {0xe5ee, 0x01}, + {0xe5ef, 0x01}, + {0xe5f0, 0x01}, + {0xe5f1, 0x01}, + {0xe5f2, 0x01}, + {0xe5f3, 0x01}, + {0xe5f4, 0x01}, + {0xe5f5, 0x01}, + {0xe5f6, 0x01}, + {0xe5f7, 0x01}, + {0xe5f8, 0x01}, + {0xe5f9, 0x01}, + {0xe5fa, 0x01}, + {0xe5fb, 0x01}, + {0xe5fc, 0x01}, + {0xe5fd, 0x01}, + {0xe5fe, 0x01}, + {0xe640, 0x01}, + {0xe641, 0x01}, + {0xe642, 0x01}, + {0xe643, 0x01}, + {0xe644, 0x01}, + {0xe645, 0x01}, + {0xe646, 0x01}, + {0xe647, 0x01}, + {0xe648, 0x01}, + {0xe649, 0x01}, + {0xe64a, 0x01}, + {0xe64b, 0x01}, + {0xe64c, 0x01}, + {0xe64d, 0x01}, + {0xe64e, 0x01}, + {0xe64f, 0x01}, + {0xe650, 0x01}, + {0xe651, 0x01}, + {0xe652, 0x01}, + {0xe653, 0x01}, + {0xe654, 0x01}, + {0xe655, 0x01}, + {0xe656, 0x01}, + {0xe657, 0x01}, + {0xe658, 0x01}, + {0xe659, 0x01}, + {0xe65a, 0x01}, + {0xe65b, 0x01}, + {0xe65c, 0x01}, + {0xe65d, 0x01}, + {0xe65e, 0x01}, + {0xe65f, 0x01}, + {0xe660, 0x01}, + {0xe661, 0x01}, + {0xe662, 0x01}, + {0xe663, 0x01}, + {0xe664, 0x01}, + {0xe665, 0x01}, + {0xe666, 0x01}, + {0xe667, 0x01}, + {0xe668, 0x01}, + {0xe669, 0x01}, + {0xe66a, 0x01}, + {0xe66b, 0x01}, + {0xe66c, 0x01}, + {0xe66d, 0x01}, + {0xe66e, 0x01}, + {0xe66f, 0x01}, + {0xe670, 0x01}, + {0xe671, 0x01}, + {0xe672, 0x01}, + {0xe673, 0x01}, + {0xe674, 0x01}, + {0xe675, 0x01}, + {0xe676, 0x01}, + {0xe677, 0x01}, + {0xe678, 0x01}, + {0xe679, 0x01}, + {0xe67a, 0x01}, + {0xe67b, 0x01}, + {0xe67c, 0x01}, + {0xe67d, 0x01}, + {0xe67e, 0x01}, + {0xe680, 0x01}, + {0xe681, 0x01}, + {0xe682, 0x01}, + {0xe683, 0x01}, + {0xe684, 0x01}, + {0xe685, 0x01}, + {0xe686, 0x01}, + {0xe687, 0x01}, + {0xe688, 0x01}, + {0xe689, 0x01}, + {0xe68a, 0x01}, + {0xe68b, 0x01}, + {0xe68c, 0x01}, + {0xe68d, 0x01}, + {0xe68e, 0x01}, + {0xe68f, 0x01}, + {0xe691, 0x01}, + {0xe692, 0x01}, + {0xe693, 0x01}, + {0xe694, 0x01}, + {0xe695, 0x01}, + {0xe696, 0x01}, + {0xe697, 0x01}, + {0xe698, 0x01}, + {0xe699, 0x01}, + {0xe69a, 0x01}, + {0xe69b, 0x01}, + {0xe69c, 0x01}, + {0xe69d, 0x01}, + {0xe69e, 0x01}, + {0xe69f, 0x01}, + {0xe6a0, 0x01}, + {0xe6a1, 0x01}, + {0xe6a2, 0x01}, + {0xe6a3, 0x01}, + {0xe6a4, 0x01}, + {0xe6a5, 0x01}, + {0xe6a6, 0x01}, + {0xe6a7, 0x01}, + {0xe6a8, 0x01}, + {0xe6a9, 0x01}, + {0xe6aa, 0x01}, + {0xe6ab, 0x01}, + {0xe6ac, 0x01}, + {0xe6ad, 0x01}, + {0xe6ae, 0x01}, + {0xe6af, 0x01}, + {0xe6b0, 0x01}, + {0xe6b1, 0x01}, + {0xe6b2, 0x01}, + {0xe6b3, 0x01}, + {0xe6b4, 0x01}, + {0xe6b5, 0x01}, + {0xe6b6, 0x01}, + {0xe6b7, 0x01}, + {0xe6b8, 0x01}, + {0xe6b9, 0x01}, + {0xe6ba, 0x01}, + {0xe6bb, 0x01}, + {0xe6bc, 0x01}, + {0xe6bd, 0x01}, + {0xe6be, 0x01}, + {0xe6bf, 0x01}, + {0xe6c0, 0x01}, + {0xe6c1, 0x01}, + {0xe6c2, 0x01}, + {0xe6c3, 0x01}, + {0xe6c4, 0x01}, + {0xe6c5, 0x01}, + {0xe6c6, 0x01}, + {0xe6c7, 0x01}, + {0xe6c8, 0x01}, + {0xe6c9, 0x01}, + {0xe6ca, 0x01}, + {0xe6cb, 0x01}, + {0xe6cc, 0x01}, + {0xe6cd, 0x01}, + {0xe6ce, 0x01}, + {0xe6cf, 0x01}, + {0xe6d0, 0x01}, + {0xe6d1, 0x01}, + {0xe6d2, 0x01}, + {0xe6d3, 0x01}, + {0xe6d4, 0x01}, + {0xe6d5, 0x01}, + {0xe6d6, 0x01}, + {0xe6d7, 0x01}, + {0xe6d8, 0x01}, + {0xe6d9, 0x01}, + {0xe6da, 0x01}, + {0xe6db, 0x01}, + {0xe6dc, 0x01}, + {0xe6dd, 0x01}, + {0xe6de, 0x01}, + {0xe6df, 0x01}, + {0xe6e0, 0x01}, + {0xe6e1, 0x01}, + {0xe6e2, 0x01}, + {0xe6e3, 0x01}, + {0xe6e4, 0x01}, + {0xe6e5, 0x01}, + {0xe6e6, 0x01}, + {0xe6e7, 0x01}, + {0xe6e8, 0x01}, + {0xe6e9, 0x01}, + {0xe6ea, 0x01}, + {0xe6eb, 0x01}, + {0xe6ec, 0x01}, + {0xe6ed, 0x01}, + {0xe6ee, 0x01}, + {0xe6ef, 0x01}, + {0xe6f0, 0x01}, + {0xe6f1, 0x01}, + {0xe6f2, 0x01}, + {0xe6f3, 0x01}, + {0xe6f4, 0x01}, + {0xe6f5, 0x01}, + {0xe6f6, 0x01}, + {0xe6f7, 0x01}, + {0xe6f8, 0x01}, + {0xe6f9, 0x01}, + {0xe6fa, 0x01}, + {0xe6fb, 0x01}, + {0xe6fc, 0x01}, + {0xe6fd, 0x01}, + {0xe6fe, 0x01}, + {0xe740, 0x01}, + {0xe741, 0x01}, + {0xe742, 0x01}, + {0xe743, 0x01}, + {0xe744, 0x01}, + {0xe745, 0x01}, + {0xe746, 0x01}, + {0xe747, 0x01}, + {0xe748, 0x01}, + {0xe749, 0x01}, + {0xe74a, 0x01}, + {0xe74b, 0x01}, + {0xe74c, 0x01}, + {0xe74d, 0x01}, + {0xe74e, 0x01}, + {0xe74f, 0x01}, + {0xe750, 0x01}, + {0xe751, 0x01}, + {0xe752, 0x01}, + {0xe753, 0x01}, + {0xe754, 0x01}, + {0xe755, 0x01}, + {0xe756, 0x01}, + {0xe757, 0x01}, + {0xe758, 0x01}, + {0xe759, 0x01}, + {0xe75a, 0x01}, + {0xe75b, 0x01}, + {0xe75c, 0x01}, + {0xe75d, 0x01}, + {0xe75e, 0x01}, + {0xe75f, 0x01}, + {0xe760, 0x01}, + {0xe761, 0x01}, + {0xe762, 0x01}, + {0xe763, 0x01}, + {0xe764, 0x01}, + {0xe765, 0x01}, + {0xe766, 0x01}, + {0xe767, 0x01}, + {0xe768, 0x01}, + {0xe769, 0x01}, + {0xe76a, 0x01}, + {0xe76b, 0x01}, + {0xe76c, 0x01}, + {0xe76d, 0x01}, + {0xe76e, 0x01}, + {0xe76f, 0x01}, + {0xe770, 0x01}, + {0xe771, 0x01}, + {0xe772, 0x01}, + {0xe773, 0x01}, + {0xe774, 0x01}, + {0xe775, 0x01}, + {0xe776, 0x01}, + {0xe777, 0x01}, + {0xe778, 0x01}, + {0xe779, 0x01}, + {0xe77a, 0x01}, + {0xe77b, 0x01}, + {0xe77c, 0x01}, + {0xe77d, 0x01}, + {0xe77e, 0x01}, + {0xe780, 0x01}, + {0xe781, 0x01}, + {0xe782, 0x01}, + {0xe783, 0x01}, + {0xe784, 0x01}, + {0xe785, 0x01}, + {0xe786, 0x01}, + {0xe787, 0x01}, + {0xe788, 0x01}, + {0xe789, 0x01}, + {0xe78a, 0x01}, + {0xe78b, 0x01}, + {0xe78c, 0x01}, + {0xe78d, 0x01}, + {0xe78e, 0x01}, + {0xe78f, 0x01}, + {0xe790, 0x01}, + {0xe791, 0x01}, + {0xe792, 0x01}, + {0xe793, 0x01}, + {0xe795, 0x01}, + {0xe796, 0x01}, + {0xe797, 0x01}, + {0xe798, 0x01}, + {0xe799, 0x01}, + {0xe79a, 0x01}, + {0xe79b, 0x01}, + {0xe79c, 0x01}, + {0xe79d, 0x01}, + {0xe79e, 0x01}, + {0xe79f, 0x01}, + {0xe7a0, 0x01}, + {0xe7a1, 0x01}, + {0xe7a2, 0x01}, + {0xe7a3, 0x01}, + {0xe7a4, 0x01}, + {0xe7a5, 0x01}, + {0xe7a6, 0x01}, + {0xe7a7, 0x01}, + {0xe7a8, 0x01}, + {0xe7a9, 0x01}, + {0xe7aa, 0x01}, + {0xe7ab, 0x01}, + {0xe7ac, 0x01}, + {0xe7ad, 0x01}, + {0xe7ae, 0x01}, + {0xe7af, 0x01}, + {0xe7b0, 0x01}, + {0xe7b1, 0x01}, + {0xe7b2, 0x01}, + {0xe7b3, 0x01}, + {0xe7b4, 0x01}, + {0xe7b5, 0x01}, + {0xe7b6, 0x01}, + {0xe7b7, 0x01}, + {0xe7b8, 0x01}, + {0xe7b9, 0x01}, + {0xe7ba, 0x01}, + {0xe7bb, 0x01}, + {0xe7bc, 0x01}, + {0xe7bd, 0x01}, + {0xe7be, 0x01}, + {0xe7bf, 0x01}, + {0xe7c0, 0x01}, + {0xe7c1, 0x01}, + {0xe7c2, 0x01}, + {0xe7c3, 0x01}, + {0xe7c4, 0x01}, + {0xe7c5, 0x01}, + {0xe7c6, 0x01}, + {0xe7c7, 0x01}, + {0xe7c8, 0x01}, + {0xe7c9, 0x01}, + {0xe7ca, 0x01}, + {0xe7cb, 0x01}, + {0xe7cc, 0x01}, + {0xe7cd, 0x01}, + {0xe7ce, 0x01}, + {0xe7cf, 0x01}, + {0xe7d0, 0x01}, + {0xe7d1, 0x01}, + {0xe7d2, 0x01}, + {0xe7d3, 0x01}, + {0xe7d4, 0x01}, + {0xe7d5, 0x01}, + {0xe7d6, 0x01}, + {0xe7d7, 0x01}, + {0xe7d8, 0x01}, + {0xe7d9, 0x01}, + {0xe7da, 0x01}, + {0xe7db, 0x01}, + {0xe7dc, 0x01}, + {0xe7dd, 0x01}, + {0xe7de, 0x01}, + {0xe7df, 0x01}, + {0xe7e0, 0x01}, + {0xe7e1, 0x01}, + {0xe7e2, 0x01}, + {0xe7e3, 0x01}, + {0xe7e4, 0x01}, + {0xe7e5, 0x01}, + {0xe7e6, 0x01}, + {0xe7e7, 0x01}, + {0xe7e8, 0x01}, + {0xe7e9, 0x01}, + {0xe7ea, 0x01}, + {0xe7eb, 0x01}, + {0xe7ec, 0x01}, + {0xe7ed, 0x01}, + {0xe7ee, 0x01}, + {0xe7ef, 0x01}, + {0xe7f0, 0x01}, + {0xe7f1, 0x01}, + {0xe7f2, 0x01}, + {0xe7f3, 0x01}, + {0xe7f4, 0x01}, + {0xe7f5, 0x01}, + {0xe7f6, 0x01}, + {0xe7f7, 0x01}, + {0xe7f8, 0x01}, + {0xe7f9, 0x01}, + {0xe7fa, 0x01}, + {0xe7fb, 0x01}, + {0xe7fc, 0x01}, + {0xe7fd, 0x01}, + {0xe7fe, 0x01}, + {0xe840, 0x01}, + {0xe841, 0x01}, + {0xe842, 0x01}, + {0xe843, 0x01}, + {0xe844, 0x01}, + {0xe845, 0x01}, + {0xe846, 0x01}, + {0xe847, 0x01}, + {0xe848, 0x01}, + {0xe849, 0x01}, + {0xe84a, 0x01}, + {0xe84b, 0x01}, + {0xe84c, 0x01}, + {0xe84d, 0x01}, + {0xe84e, 0x01}, + {0xe84f, 0x01}, + {0xe850, 0x01}, + {0xe851, 0x01}, + {0xe852, 0x01}, + {0xe853, 0x01}, + {0xe854, 0x01}, + {0xe855, 0x01}, + {0xe856, 0x01}, + {0xe857, 0x01}, + {0xe858, 0x01}, + {0xe859, 0x01}, + {0xe85a, 0x01}, + {0xe85b, 0x01}, + {0xe85c, 0x01}, + {0xe85d, 0x01}, + {0xe85e, 0x01}, + {0xe85f, 0x01}, + {0xe860, 0x01}, + {0xe861, 0x01}, + {0xe862, 0x01}, + {0xe863, 0x01}, + {0xe864, 0x01}, + {0xe865, 0x01}, + {0xe866, 0x01}, + {0xe867, 0x01}, + {0xe868, 0x01}, + {0xe869, 0x01}, + {0xe86a, 0x01}, + {0xe86b, 0x01}, + {0xe86c, 0x01}, + {0xe86d, 0x01}, + {0xe86e, 0x01}, + {0xe86f, 0x01}, + {0xe870, 0x01}, + {0xe871, 0x01}, + {0xe872, 0x01}, + {0xe873, 0x01}, + {0xe874, 0x01}, + {0xe875, 0x01}, + {0xe876, 0x01}, + {0xe877, 0x01}, + {0xe878, 0x01}, + {0xe879, 0x01}, + {0xe87a, 0x01}, + {0xe87b, 0x01}, + {0xe87c, 0x01}, + {0xe87d, 0x01}, + {0xe87e, 0x01}, + {0xe880, 0x01}, + {0xe881, 0x01}, + {0xe882, 0x01}, + {0xe883, 0x01}, + {0xe884, 0x01}, + {0xe885, 0x01}, + {0xe886, 0x01}, + {0xe887, 0x01}, + {0xe888, 0x01}, + {0xe889, 0x01}, + {0xe88a, 0x01}, + {0xe88b, 0x01}, + {0xe88c, 0x01}, + {0xe88d, 0x01}, + {0xe88e, 0x01}, + {0xe88f, 0x01}, + {0xe890, 0x01}, + {0xe891, 0x01}, + {0xe892, 0x01}, + {0xe893, 0x01}, + {0xe894, 0x01}, + {0xe895, 0x01}, + {0xe896, 0x01}, + {0xe897, 0x01}, + {0xe898, 0x01}, + {0xe899, 0x01}, + {0xe89a, 0x01}, + {0xe89b, 0x01}, + {0xe89c, 0x01}, + {0xe89d, 0x01}, + {0xe89e, 0x01}, + {0xe89f, 0x01}, + {0xe8a0, 0x01}, + {0xe8a1, 0x01}, + {0xe8a2, 0x01}, + {0xe8a3, 0x01}, + {0xe8a4, 0x01}, + {0xe8a5, 0x01}, + {0xe8a6, 0x01}, + {0xe8a7, 0x01}, + {0xe8a8, 0x01}, + {0xe8a9, 0x01}, + {0xe8aa, 0x01}, + {0xe8ab, 0x01}, + {0xe8ac, 0x01}, + {0xe8ad, 0x01}, + {0xe8ae, 0x01}, + {0xe8af, 0x01}, + {0xe8b0, 0x01}, + {0xe8b1, 0x01}, + {0xe8b2, 0x01}, + {0xe8b3, 0x01}, + {0xe8b4, 0x01}, + {0xe8b5, 0x01}, + {0xe8b6, 0x01}, + {0xe8b7, 0x01}, + {0xe8b8, 0x01}, + {0xe8b9, 0x01}, + {0xe8ba, 0x01}, + {0xe8bb, 0x01}, + {0xe8bc, 0x01}, + {0xe8bd, 0x01}, + {0xe8be, 0x01}, + {0xe8bf, 0x01}, + {0xe8c0, 0x01}, + {0xe8c1, 0x01}, + {0xe8c2, 0x01}, + {0xe8c3, 0x01}, + {0xe8c4, 0x01}, + {0xe8c5, 0x01}, + {0xe8c6, 0x01}, + {0xe8c7, 0x01}, + {0xe8c8, 0x01}, + {0xe8c9, 0x01}, + {0xe8ca, 0x01}, + {0xe8cb, 0x01}, + {0xe8cc, 0x01}, + {0xe8cd, 0x01}, + {0xe8ce, 0x01}, + {0xe8cf, 0x01}, + {0xe8d0, 0x01}, + {0xe8d1, 0x01}, + {0xe8d2, 0x01}, + {0xe8d3, 0x01}, + {0xe8d4, 0x01}, + {0xe8d5, 0x01}, + {0xe8d6, 0x01}, + {0xe8d7, 0x01}, + {0xe8d8, 0x01}, + {0xe8d9, 0x01}, + {0xe8da, 0x01}, + {0xe8db, 0x01}, + {0xe8dc, 0x01}, + {0xe8dd, 0x01}, + {0xe8de, 0x01}, + {0xe8df, 0x01}, + {0xe8e0, 0x01}, + {0xe8e1, 0x01}, + {0xe8e2, 0x01}, + {0xe8e3, 0x01}, + {0xe8e4, 0x01}, + {0xe8e5, 0x01}, + {0xe8e6, 0x01}, + {0xe8e7, 0x01}, + {0xe8e8, 0x01}, + {0xe8e9, 0x01}, + {0xe8ea, 0x01}, + {0xe8eb, 0x01}, + {0xe8ec, 0x01}, + {0xe8ed, 0x01}, + {0xe8ee, 0x01}, + {0xe8ef, 0x01}, + {0xe8f0, 0x01}, + {0xe8f1, 0x01}, + {0xe8f2, 0x01}, + {0xe8f3, 0x01}, + {0xe8f4, 0x01}, + {0xe8f5, 0x01}, + {0xe8f6, 0x01}, + {0xe8f7, 0x01}, + {0xe8f8, 0x01}, + {0xe8f9, 0x01}, + {0xe8fa, 0x01}, + {0xe8fb, 0x01}, + {0xe8fc, 0x01}, + {0xe8fd, 0x01}, + {0xe8fe, 0x01}, + {0xe940, 0x01}, + {0xe941, 0x01}, + {0xe942, 0x01}, + {0xe943, 0x01}, + {0xe944, 0x01}, + {0xe945, 0x01}, + {0xe946, 0x01}, + {0xe947, 0x01}, + {0xe948, 0x01}, + {0xe949, 0x01}, + {0xe94a, 0x01}, + {0xe94b, 0x01}, + {0xe94c, 0x01}, + {0xe94d, 0x01}, + {0xe94e, 0x01}, + {0xe94f, 0x01}, + {0xe950, 0x01}, + {0xe951, 0x01}, + {0xe952, 0x01}, + {0xe953, 0x01}, + {0xe954, 0x01}, + {0xe955, 0x01}, + {0xe956, 0x01}, + {0xe957, 0x01}, + {0xe958, 0x01}, + {0xe959, 0x01}, + {0xe95a, 0x01}, + {0xe95b, 0x01}, + {0xe95c, 0x01}, + {0xe95d, 0x01}, + {0xe95e, 0x01}, + {0xe95f, 0x01}, + {0xe960, 0x01}, + {0xe961, 0x01}, + {0xe962, 0x01}, + {0xe963, 0x01}, + {0xe964, 0x01}, + {0xe965, 0x01}, + {0xe966, 0x01}, + {0xe967, 0x01}, + {0xe968, 0x01}, + {0xe969, 0x01}, + {0xe96a, 0x01}, + {0xe96b, 0x01}, + {0xe96c, 0x01}, + {0xe96d, 0x01}, + {0xe96e, 0x01}, + {0xe96f, 0x01}, + {0xe970, 0x01}, + {0xe971, 0x01}, + {0xe972, 0x01}, + {0xe973, 0x01}, + {0xe974, 0x01}, + {0xe975, 0x01}, + {0xe976, 0x01}, + {0xe977, 0x01}, + {0xe978, 0x01}, + {0xe979, 0x01}, + {0xe97a, 0x01}, + {0xe97b, 0x01}, + {0xe97c, 0x01}, + {0xe97d, 0x01}, + {0xe97e, 0x01}, + {0xe980, 0x01}, + {0xe981, 0x01}, + {0xe982, 0x01}, + {0xe983, 0x01}, + {0xe984, 0x01}, + {0xe985, 0x01}, + {0xe986, 0x01}, + {0xe987, 0x01}, + {0xe988, 0x01}, + {0xe989, 0x01}, + {0xe98a, 0x01}, + {0xe98b, 0x01}, + {0xe98c, 0x01}, + {0xe98d, 0x01}, + {0xe98e, 0x01}, + {0xe98f, 0x01}, + {0xe990, 0x01}, + {0xe991, 0x01}, + {0xe992, 0x01}, + {0xe993, 0x01}, + {0xe994, 0x01}, + {0xe995, 0x01}, + {0xe996, 0x01}, + {0xe997, 0x01}, + {0xe998, 0x01}, + {0xe999, 0x01}, + {0xe99a, 0x01}, + {0xe99b, 0x01}, + {0xe99c, 0x01}, + {0xe99d, 0x01}, + {0xe99e, 0x01}, + {0xe99f, 0x01}, + {0xe9a0, 0x01}, + {0xe9a1, 0x01}, + {0xe9a2, 0x01}, + {0xe9a3, 0x01}, + {0xe9a4, 0x01}, + {0xe9a5, 0x01}, + {0xe9a6, 0x01}, + {0xe9a7, 0x01}, + {0xe9a8, 0x01}, + {0xe9a9, 0x01}, + {0xe9aa, 0x01}, + {0xe9ab, 0x01}, + {0xe9ac, 0x01}, + {0xe9ad, 0x01}, + {0xe9ae, 0x01}, + {0xe9af, 0x01}, + {0xe9b0, 0x01}, + {0xe9b1, 0x01}, + {0xe9b2, 0x01}, + {0xe9b3, 0x01}, + {0xe9b4, 0x01}, + {0xe9b5, 0x01}, + {0xe9b6, 0x01}, + {0xe9b7, 0x01}, + {0xe9b8, 0x01}, + {0xe9b9, 0x01}, + {0xe9ba, 0x01}, + {0xe9bb, 0x01}, + {0xe9bc, 0x01}, + {0xe9bd, 0x01}, + {0xe9be, 0x01}, + {0xe9bf, 0x01}, + {0xe9c0, 0x01}, + {0xe9c1, 0x01}, + {0xe9c2, 0x01}, + {0xe9c3, 0x01}, + {0xe9c4, 0x01}, + {0xe9c5, 0x01}, + {0xe9c6, 0x01}, + {0xe9c7, 0x01}, + {0xe9c8, 0x01}, + {0xe9c9, 0x01}, + {0xe9ca, 0x01}, + {0xe9cb, 0x01}, + {0xe9cc, 0x01}, + {0xe9cd, 0x01}, + {0xe9ce, 0x01}, + {0xe9cf, 0x01}, + {0xe9d0, 0x01}, + {0xe9d1, 0x01}, + {0xe9d2, 0x01}, + {0xe9d3, 0x01}, + {0xe9d4, 0x01}, + {0xe9d5, 0x01}, + {0xe9d6, 0x01}, + {0xe9d7, 0x01}, + {0xe9d8, 0x01}, + {0xe9d9, 0x01}, + {0xe9da, 0x01}, + {0xe9db, 0x01}, + {0xe9dc, 0x01}, + {0xe9dd, 0x01}, + {0xe9de, 0x01}, + {0xe9df, 0x01}, + {0xe9e0, 0x01}, + {0xe9e1, 0x01}, + {0xe9e2, 0x01}, + {0xe9e3, 0x01}, + {0xe9e4, 0x01}, + {0xe9e5, 0x01}, + {0xe9e6, 0x01}, + {0xe9e7, 0x01}, + {0xe9e8, 0x01}, + {0xe9e9, 0x01}, + {0xe9ea, 0x01}, + {0xe9eb, 0x01}, + {0xe9ec, 0x01}, + {0xe9ed, 0x01}, + {0xe9ee, 0x01}, + {0xe9ef, 0x01}, + {0xe9f0, 0x01}, + {0xe9f1, 0x01}, + {0xe9f2, 0x01}, + {0xe9f3, 0x01}, + {0xe9f4, 0x01}, + {0xe9f5, 0x01}, + {0xe9f6, 0x01}, + {0xe9f7, 0x01}, + {0xe9f8, 0x01}, + {0xe9f9, 0x01}, + {0xe9fa, 0x01}, + {0xe9fb, 0x01}, + {0xe9fc, 0x01}, + {0xe9fd, 0x01}, + {0xe9fe, 0x01}, + {0xea40, 0x01}, + {0xea41, 0x01}, + {0xea42, 0x01}, + {0xea43, 0x01}, + {0xea44, 0x01}, + {0xea45, 0x01}, + {0xea46, 0x01}, + {0xea47, 0x01}, + {0xea48, 0x01}, + {0xea49, 0x01}, + {0xea4a, 0x01}, + {0xea4b, 0x01}, + {0xea4c, 0x01}, + {0xea4d, 0x01}, + {0xea4e, 0x01}, + {0xea4f, 0x01}, + {0xea50, 0x01}, + {0xea51, 0x01}, + {0xea52, 0x01}, + {0xea53, 0x01}, + {0xea54, 0x01}, + {0xea55, 0x01}, + {0xea56, 0x01}, + {0xea57, 0x01}, + {0xea58, 0x01}, + {0xea59, 0x01}, + {0xea5a, 0x01}, + {0xea5c, 0x01}, + {0xea5d, 0x01}, + {0xea5e, 0x01}, + {0xea5f, 0x01}, + {0xea60, 0x01}, + {0xea61, 0x01}, + {0xea62, 0x01}, + {0xea63, 0x01}, + {0xea64, 0x01}, + {0xea65, 0x01}, + {0xea66, 0x01}, + {0xea67, 0x01}, + {0xea68, 0x01}, + {0xea69, 0x01}, + {0xea6a, 0x01}, + {0xea6b, 0x01}, + {0xea6c, 0x01}, + {0xea6d, 0x01}, + {0xea6e, 0x01}, + {0xea6f, 0x01}, + {0xea70, 0x01}, + {0xea71, 0x01}, + {0xea72, 0x01}, + {0xea73, 0x01}, + {0xea74, 0x01}, + {0xea75, 0x01}, + {0xea76, 0x01}, + {0xea77, 0x01}, + {0xea78, 0x01}, + {0xea79, 0x01}, + {0xea7a, 0x01}, + {0xea7b, 0x01}, + {0xea7c, 0x01}, + {0xea7d, 0x01}, + {0xea7e, 0x01}, + {0xea80, 0x01}, + {0xea81, 0x01}, + {0xea82, 0x01}, + {0xea83, 0x01}, + {0xea84, 0x01}, + {0xea85, 0x01}, + {0xea86, 0x01}, + {0xea87, 0x01}, + {0xea88, 0x01}, + {0xea89, 0x01}, + {0xea8a, 0x01}, + {0xea8b, 0x01}, + {0xea8c, 0x01}, + {0xea8d, 0x01}, + {0xea8e, 0x01}, + {0xea8f, 0x01}, + {0xea90, 0x01}, + {0xea91, 0x01}, + {0xea92, 0x01}, + {0xea93, 0x01}, + {0xea94, 0x01}, + {0xea95, 0x01}, + {0xea96, 0x01}, + {0xea97, 0x01}, + {0xea98, 0x01}, + {0xea99, 0x01}, + {0xea9a, 0x01}, + {0xea9b, 0x01}, + {0xea9c, 0x01}, + {0xea9d, 0x01}, + {0xea9e, 0x01}, + {0xea9f, 0x01}, + {0xeaa0, 0x01}, + {0xeaa1, 0x01}, + {0xeaa2, 0x01}, + {0xeaa3, 0x01}, + {0xeaa4, 0x01}, + {0xeaa5, 0x01}, + {0xeaa6, 0x01}, + {0xeaa7, 0x01}, + {0xeaa8, 0x01}, + {0xeaa9, 0x01}, + {0xeaaa, 0x01}, + {0xeaab, 0x01}, + {0xeaac, 0x01}, + {0xeaad, 0x01}, + {0xeaae, 0x01}, + {0xeaaf, 0x01}, + {0xeab0, 0x01}, + {0xeab1, 0x01}, + {0xeab2, 0x01}, + {0xeab3, 0x01}, + {0xeab4, 0x01}, + {0xeab5, 0x01}, + {0xeab6, 0x01}, + {0xeab7, 0x01}, + {0xeab8, 0x01}, + {0xeab9, 0x01}, + {0xeaba, 0x01}, + {0xeabb, 0x01}, + {0xeabc, 0x01}, + {0xeabd, 0x01}, + {0xeabe, 0x01}, + {0xeabf, 0x01}, + {0xeac0, 0x01}, + {0xeac1, 0x01}, + {0xeac2, 0x01}, + {0xeac3, 0x01}, + {0xeac4, 0x01}, + {0xeac5, 0x01}, + {0xeac6, 0x01}, + {0xeac7, 0x01}, + {0xeac8, 0x01}, + {0xeac9, 0x01}, + {0xeaca, 0x01}, + {0xeacb, 0x01}, + {0xeacc, 0x01}, + {0xeacd, 0x01}, + {0xeace, 0x01}, + {0xeacf, 0x01}, + {0xead0, 0x01}, + {0xead1, 0x01}, + {0xead2, 0x01}, + {0xead3, 0x01}, + {0xead4, 0x01}, + {0xead5, 0x01}, + {0xead6, 0x01}, + {0xead7, 0x01}, + {0xead8, 0x01}, + {0xead9, 0x01}, + {0xeada, 0x01}, + {0xeadb, 0x01}, + {0xeadc, 0x01}, + {0xeadd, 0x01}, + {0xeade, 0x01}, + {0xeadf, 0x01}, + {0xeae0, 0x01}, + {0xeae1, 0x01}, + {0xeae2, 0x01}, + {0xeae3, 0x01}, + {0xeae4, 0x01}, + {0xeae5, 0x01}, + {0xeae6, 0x01}, + {0xeae7, 0x01}, + {0xeae8, 0x01}, + {0xeae9, 0x01}, + {0xeaea, 0x01}, + {0xeaeb, 0x01}, + {0xeaec, 0x01}, + {0xeaed, 0x01}, + {0xeaee, 0x01}, + {0xeaef, 0x01}, + {0xeaf0, 0x01}, + {0xeaf1, 0x01}, + {0xeaf2, 0x01}, + {0xeaf3, 0x01}, + {0xeaf4, 0x01}, + {0xeaf5, 0x01}, + {0xeaf6, 0x01}, + {0xeaf7, 0x01}, + {0xeaf8, 0x01}, + {0xeaf9, 0x01}, + {0xeafa, 0x01}, + {0xeafb, 0x01}, + {0xeafc, 0x01}, + {0xeafd, 0x01}, + {0xeafe, 0x01}, + {0xeb40, 0x01}, + {0xeb41, 0x01}, + {0xeb42, 0x01}, + {0xeb43, 0x01}, + {0xeb44, 0x01}, + {0xeb45, 0x01}, + {0xeb46, 0x01}, + {0xeb47, 0x01}, + {0xeb48, 0x01}, + {0xeb49, 0x01}, + {0xeb4a, 0x01}, + {0xeb4b, 0x01}, + {0xeb4c, 0x01}, + {0xeb4d, 0x01}, + {0xeb4e, 0x01}, + {0xeb4f, 0x01}, + {0xeb50, 0x01}, + {0xeb51, 0x01}, + {0xeb52, 0x01}, + {0xeb53, 0x01}, + {0xeb54, 0x01}, + {0xeb55, 0x01}, + {0xeb56, 0x01}, + {0xeb57, 0x01}, + {0xeb58, 0x01}, + {0xeb59, 0x01}, + {0xeb5a, 0x01}, + {0xeb5b, 0x01}, + {0xeb5c, 0x01}, + {0xeb5d, 0x01}, + {0xeb5e, 0x01}, + {0xeb5f, 0x01}, + {0xeb60, 0x01}, + {0xeb61, 0x01}, + {0xeb62, 0x01}, + {0xeb63, 0x01}, + {0xeb64, 0x01}, + {0xeb65, 0x01}, + {0xeb66, 0x01}, + {0xeb67, 0x01}, + {0xeb68, 0x01}, + {0xeb69, 0x01}, + {0xeb6a, 0x01}, + {0xeb6b, 0x01}, + {0xeb6c, 0x01}, + {0xeb6d, 0x01}, + {0xeb6e, 0x01}, + {0xeb6f, 0x01}, + {0xeb70, 0x01}, + {0xeb71, 0x01}, + {0xeb72, 0x01}, + {0xeb73, 0x01}, + {0xeb74, 0x01}, + {0xeb75, 0x01}, + {0xeb76, 0x01}, + {0xeb77, 0x01}, + {0xeb78, 0x01}, + {0xeb79, 0x01}, + {0xeb7a, 0x01}, + {0xeb7b, 0x01}, + {0xeb7c, 0x01}, + {0xeb7d, 0x01}, + {0xeb7e, 0x01}, + {0xeb80, 0x01}, + {0xeb81, 0x01}, + {0xeb82, 0x01}, + {0xeb83, 0x01}, + {0xeb84, 0x01}, + {0xeb85, 0x01}, + {0xeb86, 0x01}, + {0xeb87, 0x01}, + {0xeb88, 0x01}, + {0xeb89, 0x01}, + {0xeb8a, 0x01}, + {0xeb8b, 0x01}, + {0xeb8c, 0x01}, + {0xeb8d, 0x01}, + {0xeb8e, 0x01}, + {0xeb8f, 0x01}, + {0xeb90, 0x01}, + {0xeb91, 0x01}, + {0xeb92, 0x01}, + {0xeb93, 0x01}, + {0xeb94, 0x01}, + {0xeb95, 0x01}, + {0xeb96, 0x01}, + {0xeb97, 0x01}, + {0xeb98, 0x01}, + {0xeb99, 0x01}, + {0xeb9a, 0x01}, + {0xeb9b, 0x01}, + {0xeb9c, 0x01}, + {0xeb9d, 0x01}, + {0xeb9e, 0x01}, + {0xeb9f, 0x01}, + {0xeba0, 0x01}, + {0xeba1, 0x01}, + {0xeba2, 0x01}, + {0xeba3, 0x01}, + {0xeba4, 0x01}, + {0xeba5, 0x01}, + {0xeba6, 0x01}, + {0xeba7, 0x01}, + {0xeba8, 0x01}, + {0xeba9, 0x01}, + {0xebaa, 0x01}, + {0xebab, 0x01}, + {0xebac, 0x01}, + {0xebad, 0x01}, + {0xebae, 0x01}, + {0xebaf, 0x01}, + {0xebb0, 0x01}, + {0xebb1, 0x01}, + {0xebb2, 0x01}, + {0xebb3, 0x01}, + {0xebb4, 0x01}, + {0xebb5, 0x01}, + {0xebb6, 0x01}, + {0xebb7, 0x01}, + {0xebb8, 0x01}, + {0xebb9, 0x01}, + {0xebba, 0x01}, + {0xebbb, 0x01}, + {0xebbc, 0x01}, + {0xebbd, 0x01}, + {0xebbe, 0x01}, + {0xebbf, 0x01}, + {0xebc0, 0x01}, + {0xebc1, 0x01}, + {0xebc2, 0x01}, + {0xebc3, 0x01}, + {0xebc4, 0x01}, + {0xebc5, 0x01}, + {0xebc6, 0x01}, + {0xebc7, 0x01}, + {0xebc8, 0x01}, + {0xebc9, 0x01}, + {0xebca, 0x01}, + {0xebcb, 0x01}, + {0xebcc, 0x01}, + {0xebcd, 0x01}, + {0xebce, 0x01}, + {0xebcf, 0x01}, + {0xebd0, 0x01}, + {0xebd1, 0x01}, + {0xebd2, 0x01}, + {0xebd3, 0x01}, + {0xebd4, 0x01}, + {0xebd5, 0x01}, + {0xebd6, 0x01}, + {0xebd7, 0x01}, + {0xebd8, 0x01}, + {0xebd9, 0x01}, + {0xebda, 0x01}, + {0xebdb, 0x01}, + {0xebdc, 0x01}, + {0xebdd, 0x01}, + {0xebde, 0x01}, + {0xebdf, 0x01}, + {0xebe0, 0x01}, + {0xebe1, 0x01}, + {0xebe2, 0x01}, + {0xebe3, 0x01}, + {0xebe4, 0x01}, + {0xebe5, 0x01}, + {0xebe6, 0x01}, + {0xebe7, 0x01}, + {0xebe8, 0x01}, + {0xebe9, 0x01}, + {0xebea, 0x01}, + {0xebeb, 0x01}, + {0xebec, 0x01}, + {0xebed, 0x01}, + {0xebee, 0x01}, + {0xebef, 0x01}, + {0xebf0, 0x01}, + {0xebf1, 0x01}, + {0xebf2, 0x01}, + {0xebf3, 0x01}, + {0xebf4, 0x01}, + {0xebf5, 0x01}, + {0xebf6, 0x01}, + {0xebf7, 0x01}, + {0xebf8, 0x01}, + {0xebf9, 0x01}, + {0xebfa, 0x01}, + {0xebfb, 0x01}, + {0xebfc, 0x01}, + {0xebfd, 0x01}, + {0xebfe, 0x01}, + {0xec40, 0x01}, + {0xec41, 0x01}, + {0xec42, 0x01}, + {0xec43, 0x01}, + {0xec44, 0x01}, + {0xec45, 0x01}, + {0xec46, 0x01}, + {0xec47, 0x01}, + {0xec48, 0x01}, + {0xec49, 0x01}, + {0xec4a, 0x01}, + {0xec4b, 0x01}, + {0xec4c, 0x01}, + {0xec4d, 0x01}, + {0xec4e, 0x01}, + {0xec4f, 0x01}, + {0xec50, 0x01}, + {0xec51, 0x01}, + {0xec52, 0x01}, + {0xec53, 0x01}, + {0xec55, 0x01}, + {0xec56, 0x01}, + {0xec57, 0x01}, + {0xec58, 0x01}, + {0xec59, 0x01}, + {0xec5a, 0x01}, + {0xec5b, 0x01}, + {0xec5c, 0x01}, + {0xec5d, 0x01}, + {0xec5e, 0x01}, + {0xec5f, 0x01}, + {0xec60, 0x01}, + {0xec61, 0x01}, + {0xec62, 0x01}, + {0xec63, 0x01}, + {0xec64, 0x01}, + {0xec65, 0x01}, + {0xec66, 0x01}, + {0xec67, 0x01}, + {0xec68, 0x01}, + {0xec69, 0x01}, + {0xec6a, 0x01}, + {0xec6b, 0x01}, + {0xec6c, 0x01}, + {0xec6d, 0x01}, + {0xec6e, 0x01}, + {0xec6f, 0x01}, + {0xec70, 0x01}, + {0xec71, 0x01}, + {0xec72, 0x01}, + {0xec73, 0x01}, + {0xec74, 0x01}, + {0xec75, 0x01}, + {0xec76, 0x01}, + {0xec77, 0x01}, + {0xec78, 0x01}, + {0xec79, 0x01}, + {0xec7a, 0x01}, + {0xec7b, 0x01}, + {0xec7c, 0x01}, + {0xec7d, 0x01}, + {0xec7e, 0x01}, + {0xec80, 0x01}, + {0xec81, 0x01}, + {0xec82, 0x01}, + {0xec83, 0x01}, + {0xec84, 0x01}, + {0xec85, 0x01}, + {0xec86, 0x01}, + {0xec87, 0x01}, + {0xec88, 0x01}, + {0xec89, 0x01}, + {0xec8a, 0x01}, + {0xec8b, 0x01}, + {0xec8c, 0x01}, + {0xec8d, 0x01}, + {0xec8e, 0x01}, + {0xec8f, 0x01}, + {0xec90, 0x01}, + {0xec91, 0x01}, + {0xec92, 0x01}, + {0xec93, 0x01}, + {0xec94, 0x01}, + {0xec95, 0x01}, + {0xec96, 0x01}, + {0xec97, 0x01}, + {0xec98, 0x01}, + {0xec99, 0x01}, + {0xec9a, 0x01}, + {0xec9b, 0x01}, + {0xec9c, 0x01}, + {0xec9d, 0x01}, + {0xec9e, 0x01}, + {0xec9f, 0x01}, + {0xeca0, 0x01}, + {0xeca1, 0x01}, + {0xeca2, 0x01}, + {0xeca3, 0x01}, + {0xeca4, 0x01}, + {0xeca5, 0x01}, + {0xeca6, 0x01}, + {0xeca7, 0x01}, + {0xeca8, 0x01}, + {0xeca9, 0x01}, + {0xecaa, 0x01}, + {0xecab, 0x01}, + {0xecac, 0x01}, + {0xecad, 0x01}, + {0xecae, 0x01}, + {0xecaf, 0x01}, + {0xecb0, 0x01}, + {0xecb1, 0x01}, + {0xecb2, 0x01}, + {0xecb3, 0x01}, + {0xecb4, 0x01}, + {0xecb5, 0x01}, + {0xecb6, 0x01}, + {0xecb7, 0x01}, + {0xecb8, 0x01}, + {0xecb9, 0x01}, + {0xecba, 0x01}, + {0xecbb, 0x01}, + {0xecbc, 0x01}, + {0xecbd, 0x01}, + {0xecbe, 0x01}, + {0xecbf, 0x01}, + {0xecc0, 0x01}, + {0xecc1, 0x01}, + {0xecc2, 0x01}, + {0xecc3, 0x01}, + {0xecc4, 0x01}, + {0xecc5, 0x01}, + {0xecc6, 0x01}, + {0xecc7, 0x01}, + {0xecc8, 0x01}, + {0xecc9, 0x01}, + {0xecca, 0x01}, + {0xeccb, 0x01}, + {0xeccc, 0x01}, + {0xeccd, 0x01}, + {0xecce, 0x01}, + {0xeccf, 0x01}, + {0xecd0, 0x01}, + {0xecd1, 0x01}, + {0xecd2, 0x01}, + {0xecd3, 0x01}, + {0xecd4, 0x01}, + {0xecd5, 0x01}, + {0xecd6, 0x01}, + {0xecd7, 0x01}, + {0xecd8, 0x01}, + {0xecd9, 0x01}, + {0xecda, 0x01}, + {0xecdb, 0x01}, + {0xecdc, 0x01}, + {0xecdd, 0x01}, + {0xecde, 0x01}, + {0xecdf, 0x01}, + {0xece0, 0x01}, + {0xece1, 0x01}, + {0xece2, 0x01}, + {0xece3, 0x01}, + {0xece4, 0x01}, + {0xece5, 0x01}, + {0xece6, 0x01}, + {0xece7, 0x01}, + {0xece8, 0x01}, + {0xece9, 0x01}, + {0xecea, 0x01}, + {0xeceb, 0x01}, + {0xecec, 0x01}, + {0xeced, 0x01}, + {0xecee, 0x01}, + {0xecef, 0x01}, + {0xecf0, 0x01}, + {0xecf1, 0x01}, + {0xecf2, 0x01}, + {0xecf3, 0x01}, + {0xecf4, 0x01}, + {0xecf5, 0x01}, + {0xecf6, 0x01}, + {0xecf7, 0x01}, + {0xecf8, 0x01}, + {0xecf9, 0x01}, + {0xecfa, 0x01}, + {0xecfb, 0x01}, + {0xecfc, 0x01}, + {0xecfd, 0x01}, + {0xecfe, 0x01}, + {0xed40, 0x01}, + {0xed41, 0x01}, + {0xed42, 0x01}, + {0xed43, 0x01}, + {0xed44, 0x01}, + {0xed45, 0x01}, + {0xed46, 0x01}, + {0xed47, 0x01}, + {0xed48, 0x01}, + {0xed49, 0x01}, + {0xed4a, 0x01}, + {0xed4b, 0x01}, + {0xed4c, 0x01}, + {0xed4d, 0x01}, + {0xed4e, 0x01}, + {0xed4f, 0x01}, + {0xed50, 0x01}, + {0xed51, 0x01}, + {0xed52, 0x01}, + {0xed53, 0x01}, + {0xed54, 0x01}, + {0xed55, 0x01}, + {0xed56, 0x01}, + {0xed57, 0x01}, + {0xed58, 0x01}, + {0xed59, 0x01}, + {0xed5a, 0x01}, + {0xed5b, 0x01}, + {0xed5c, 0x01}, + {0xed5d, 0x01}, + {0xed5e, 0x01}, + {0xed5f, 0x01}, + {0xed60, 0x01}, + {0xed61, 0x01}, + {0xed62, 0x01}, + {0xed63, 0x01}, + {0xed64, 0x01}, + {0xed65, 0x01}, + {0xed66, 0x01}, + {0xed67, 0x01}, + {0xed68, 0x01}, + {0xed69, 0x01}, + {0xed6a, 0x01}, + {0xed6b, 0x01}, + {0xed6c, 0x01}, + {0xed6d, 0x01}, + {0xed6e, 0x01}, + {0xed6f, 0x01}, + {0xed70, 0x01}, + {0xed71, 0x01}, + {0xed72, 0x01}, + {0xed73, 0x01}, + {0xed74, 0x01}, + {0xed75, 0x01}, + {0xed76, 0x01}, + {0xed77, 0x01}, + {0xed78, 0x01}, + {0xed79, 0x01}, + {0xed7a, 0x01}, + {0xed7b, 0x01}, + {0xed7c, 0x01}, + {0xed7d, 0x01}, + {0xed7e, 0x01}, + {0xed80, 0x01}, + {0xed81, 0x01}, + {0xed82, 0x01}, + {0xed83, 0x01}, + {0xed84, 0x01}, + {0xed85, 0x01}, + {0xed86, 0x01}, + {0xed87, 0x01}, + {0xed88, 0x01}, + {0xed89, 0x01}, + {0xed8a, 0x01}, + {0xed8b, 0x01}, + {0xed8c, 0x01}, + {0xed8d, 0x01}, + {0xed8e, 0x01}, + {0xed8f, 0x01}, + {0xed90, 0x01}, + {0xed91, 0x01}, + {0xed92, 0x01}, + {0xed93, 0x01}, + {0xed94, 0x01}, + {0xed95, 0x01}, + {0xed96, 0x01}, + {0xed97, 0x01}, + {0xed98, 0x01}, + {0xed99, 0x01}, + {0xed9a, 0x01}, + {0xed9b, 0x01}, + {0xed9c, 0x01}, + {0xed9d, 0x01}, + {0xed9e, 0x01}, + {0xed9f, 0x01}, + {0xeda0, 0x01}, + {0xeda1, 0x01}, + {0xeda2, 0x01}, + {0xeda3, 0x01}, + {0xeda4, 0x01}, + {0xeda5, 0x01}, + {0xeda6, 0x01}, + {0xeda7, 0x01}, + {0xeda8, 0x01}, + {0xeda9, 0x01}, + {0xedaa, 0x01}, + {0xedab, 0x01}, + {0xedac, 0x01}, + {0xedad, 0x01}, + {0xedae, 0x01}, + {0xedaf, 0x01}, + {0xedb0, 0x01}, + {0xedb1, 0x01}, + {0xedb2, 0x01}, + {0xedb3, 0x01}, + {0xedb4, 0x01}, + {0xedb5, 0x01}, + {0xedb6, 0x01}, + {0xedb7, 0x01}, + {0xedb8, 0x01}, + {0xedb9, 0x01}, + {0xedba, 0x01}, + {0xedbb, 0x01}, + {0xedbc, 0x01}, + {0xedbd, 0x01}, + {0xedbe, 0x01}, + {0xedbf, 0x01}, + {0xedc0, 0x01}, + {0xedc1, 0x01}, + {0xedc2, 0x01}, + {0xedc3, 0x01}, + {0xedc4, 0x01}, + {0xedc5, 0x01}, + {0xedc6, 0x01}, + {0xedc7, 0x01}, + {0xedc8, 0x01}, + {0xedc9, 0x01}, + {0xedca, 0x01}, + {0xedcb, 0x01}, + {0xedcc, 0x01}, + {0xedcd, 0x01}, + {0xedce, 0x01}, + {0xedcf, 0x01}, + {0xedd0, 0x01}, + {0xedd1, 0x01}, + {0xedd2, 0x01}, + {0xedd3, 0x01}, + {0xedd4, 0x01}, + {0xedd5, 0x01}, + {0xedd6, 0x01}, + {0xedd7, 0x01}, + {0xedd8, 0x01}, + {0xedd9, 0x01}, + {0xedda, 0x01}, + {0xeddb, 0x01}, + {0xeddc, 0x01}, + {0xeddd, 0x01}, + {0xedde, 0x01}, + {0xeddf, 0x01}, + {0xede0, 0x01}, + {0xede1, 0x01}, + {0xede2, 0x01}, + {0xede3, 0x01}, + {0xede4, 0x01}, + {0xede5, 0x01}, + {0xede6, 0x01}, + {0xede7, 0x01}, + {0xede8, 0x01}, + {0xede9, 0x01}, + {0xedea, 0x01}, + {0xedeb, 0x01}, + {0xedec, 0x01}, + {0xeded, 0x01}, + {0xedee, 0x01}, + {0xedef, 0x01}, + {0xedf0, 0x01}, + {0xedf1, 0x01}, + {0xedf2, 0x01}, + {0xedf3, 0x01}, + {0xedf4, 0x01}, + {0xedf5, 0x01}, + {0xedf6, 0x01}, + {0xedf7, 0x01}, + {0xedf8, 0x01}, + {0xedf9, 0x01}, + {0xedfa, 0x01}, + {0xedfb, 0x01}, + {0xedfc, 0x01}, + {0xedfd, 0x01}, + {0xedfe, 0x01}, + {0xee40, 0x01}, + {0xee41, 0x01}, + {0xee42, 0x01}, + {0xee43, 0x01}, + {0xee44, 0x01}, + {0xee45, 0x01}, + {0xee46, 0x01}, + {0xee47, 0x01}, + {0xee48, 0x01}, + {0xee49, 0x01}, + {0xee4a, 0x01}, + {0xee4b, 0x01}, + {0xee4c, 0x01}, + {0xee4d, 0x01}, + {0xee4e, 0x01}, + {0xee4f, 0x01}, + {0xee50, 0x01}, + {0xee51, 0x01}, + {0xee52, 0x01}, + {0xee53, 0x01}, + {0xee54, 0x01}, + {0xee55, 0x01}, + {0xee56, 0x01}, + {0xee57, 0x01}, + {0xee58, 0x01}, + {0xee59, 0x01}, + {0xee5a, 0x01}, + {0xee5b, 0x01}, + {0xee5c, 0x01}, + {0xee5d, 0x01}, + {0xee5e, 0x01}, + {0xee5f, 0x01}, + {0xee60, 0x01}, + {0xee61, 0x01}, + {0xee62, 0x01}, + {0xee63, 0x01}, + {0xee64, 0x01}, + {0xee65, 0x01}, + {0xee66, 0x01}, + {0xee67, 0x01}, + {0xee68, 0x01}, + {0xee69, 0x01}, + {0xee6a, 0x01}, + {0xee6b, 0x01}, + {0xee6c, 0x01}, + {0xee6d, 0x01}, + {0xee6e, 0x01}, + {0xee6f, 0x01}, + {0xee70, 0x01}, + {0xee71, 0x01}, + {0xee72, 0x01}, + {0xee73, 0x01}, + {0xee74, 0x01}, + {0xee75, 0x01}, + {0xee76, 0x01}, + {0xee77, 0x01}, + {0xee78, 0x01}, + {0xee79, 0x01}, + {0xee7a, 0x01}, + {0xee7b, 0x01}, + {0xee7c, 0x01}, + {0xee7d, 0x01}, + {0xee7e, 0x01}, + {0xee80, 0x01}, + {0xee81, 0x01}, + {0xee82, 0x01}, + {0xee83, 0x01}, + {0xee84, 0x01}, + {0xee85, 0x01}, + {0xee86, 0x01}, + {0xee87, 0x01}, + {0xee88, 0x01}, + {0xee89, 0x01}, + {0xee8a, 0x01}, + {0xee8b, 0x01}, + {0xee8c, 0x01}, + {0xee8d, 0x01}, + {0xee8e, 0x01}, + {0xee8f, 0x01}, + {0xee90, 0x01}, + {0xee91, 0x01}, + {0xee92, 0x01}, + {0xee93, 0x01}, + {0xee94, 0x01}, + {0xee95, 0x01}, + {0xee96, 0x01}, + {0xee97, 0x01}, + {0xee98, 0x01}, + {0xee99, 0x01}, + {0xee9a, 0x01}, + {0xee9b, 0x01}, + {0xee9c, 0x01}, + {0xee9d, 0x01}, + {0xee9e, 0x01}, + {0xee9f, 0x01}, + {0xeea0, 0x01}, + {0xeea1, 0x01}, + {0xeea2, 0x01}, + {0xeea3, 0x01}, + {0xeea4, 0x01}, + {0xeea5, 0x01}, + {0xeea6, 0x01}, + {0xeea7, 0x01}, + {0xeea8, 0x01}, + {0xeea9, 0x01}, + {0xeeaa, 0x01}, + {0xeeab, 0x01}, + {0xeeac, 0x01}, + {0xeead, 0x01}, + {0xeeae, 0x01}, + {0xeeaf, 0x01}, + {0xeeb0, 0x01}, + {0xeeb1, 0x01}, + {0xeeb2, 0x01}, + {0xeeb3, 0x01}, + {0xeeb4, 0x01}, + {0xeeb5, 0x01}, + {0xeeb6, 0x01}, + {0xeeb7, 0x01}, + {0xeeb8, 0x01}, + {0xeeb9, 0x01}, + {0xeeba, 0x01}, + {0xeebb, 0x01}, + {0xeebc, 0x01}, + {0xeebd, 0x01}, + {0xeebe, 0x01}, + {0xeebf, 0x01}, + {0xeec0, 0x01}, + {0xeec1, 0x01}, + {0xeec2, 0x01}, + {0xeec3, 0x01}, + {0xeec4, 0x01}, + {0xeec5, 0x01}, + {0xeec6, 0x01}, + {0xeec7, 0x01}, + {0xeec8, 0x01}, + {0xeec9, 0x01}, + {0xeeca, 0x01}, + {0xeecb, 0x01}, + {0xeecc, 0x01}, + {0xeecd, 0x01}, + {0xeece, 0x01}, + {0xeecf, 0x01}, + {0xeed0, 0x01}, + {0xeed1, 0x01}, + {0xeed2, 0x01}, + {0xeed3, 0x01}, + {0xeed4, 0x01}, + {0xeed5, 0x01}, + {0xeed6, 0x01}, + {0xeed7, 0x01}, + {0xeed8, 0x01}, + {0xeed9, 0x01}, + {0xeeda, 0x01}, + {0xeedb, 0x01}, + {0xeedc, 0x01}, + {0xeedd, 0x01}, + {0xeede, 0x01}, + {0xeedf, 0x01}, + {0xeee0, 0x01}, + {0xeee1, 0x01}, + {0xeee2, 0x01}, + {0xeee3, 0x01}, + {0xeee4, 0x01}, + {0xeee5, 0x01}, + {0xeee6, 0x01}, + {0xeee7, 0x01}, + {0xeee8, 0x01}, + {0xeee9, 0x01}, + {0xeeea, 0x01}, + {0xeeeb, 0x01}, + {0xeeec, 0x01}, + {0xeeed, 0x01}, + {0xeeee, 0x01}, + {0xeeef, 0x01}, + {0xeef0, 0x01}, + {0xeef1, 0x01}, + {0xeef2, 0x01}, + {0xeef3, 0x01}, + {0xeef4, 0x01}, + {0xeef5, 0x01}, + {0xeef6, 0x01}, + {0xeef7, 0x01}, + {0xeef8, 0x01}, + {0xeef9, 0x01}, + {0xeefa, 0x01}, + {0xeefb, 0x01}, + {0xeefc, 0x01}, + {0xeefd, 0x01}, + {0xeefe, 0x01}, + {0xef40, 0x01}, + {0xef41, 0x01}, + {0xef42, 0x01}, + {0xef43, 0x01}, + {0xef44, 0x01}, + {0xef45, 0x01}, + {0xef46, 0x01}, + {0xef47, 0x01}, + {0xef48, 0x01}, + {0xef49, 0x01}, + {0xef4a, 0x01}, + {0xef4b, 0x01}, + {0xef4c, 0x01}, + {0xef4d, 0x01}, + {0xef4e, 0x01}, + {0xef4f, 0x01}, + {0xef50, 0x01}, + {0xef51, 0x01}, + {0xef52, 0x01}, + {0xef53, 0x01}, + {0xef54, 0x01}, + {0xef55, 0x01}, + {0xef56, 0x01}, + {0xef57, 0x01}, + {0xef58, 0x01}, + {0xef59, 0x01}, + {0xef5a, 0x01}, + {0xef5b, 0x01}, + {0xef5c, 0x01}, + {0xef5d, 0x01}, + {0xef5e, 0x01}, + {0xef5f, 0x01}, + {0xef60, 0x01}, + {0xef61, 0x01}, + {0xef62, 0x01}, + {0xef63, 0x01}, + {0xef64, 0x01}, + {0xef65, 0x01}, + {0xef66, 0x01}, + {0xef67, 0x01}, + {0xef68, 0x01}, + {0xef69, 0x01}, + {0xef6a, 0x01}, + {0xef6b, 0x01}, + {0xef6c, 0x01}, + {0xef6d, 0x01}, + {0xef6e, 0x01}, + {0xef6f, 0x01}, + {0xef70, 0x01}, + {0xef71, 0x01}, + {0xef72, 0x01}, + {0xef73, 0x01}, + {0xef74, 0x01}, + {0xef75, 0x01}, + {0xef76, 0x01}, + {0xef77, 0x01}, + {0xef78, 0x01}, + {0xef79, 0x01}, + {0xef7a, 0x01}, + {0xef7b, 0x01}, + {0xef7c, 0x01}, + {0xef7d, 0x01}, + {0xef7e, 0x01}, + {0xef80, 0x01}, + {0xef81, 0x01}, + {0xef82, 0x01}, + {0xef83, 0x01}, + {0xef84, 0x01}, + {0xef85, 0x01}, + {0xef86, 0x01}, + {0xef87, 0x01}, + {0xef88, 0x01}, + {0xef89, 0x01}, + {0xef8a, 0x01}, + {0xef8b, 0x01}, + {0xef8c, 0x01}, + {0xef8d, 0x01}, + {0xef8e, 0x01}, + {0xef8f, 0x01}, + {0xef90, 0x01}, + {0xef91, 0x01}, + {0xef92, 0x01}, + {0xef93, 0x01}, + {0xef94, 0x01}, + {0xef95, 0x01}, + {0xef96, 0x01}, + {0xef97, 0x01}, + {0xef98, 0x01}, + {0xef99, 0x01}, + {0xef9a, 0x01}, + {0xef9b, 0x01}, + {0xef9c, 0x01}, + {0xef9d, 0x01}, + {0xef9e, 0x01}, + {0xef9f, 0x01}, + {0xefa0, 0x01}, + {0xefa1, 0x01}, + {0xefa2, 0x01}, + {0xefa3, 0x01}, + {0xefa4, 0x01}, + {0xefa5, 0x01}, + {0xefa6, 0x01}, + {0xefa7, 0x01}, + {0xefa8, 0x01}, + {0xefa9, 0x01}, + {0xefaa, 0x01}, + {0xefab, 0x01}, + {0xefac, 0x01}, + {0xefad, 0x01}, + {0xefae, 0x01}, + {0xefaf, 0x01}, + {0xefb0, 0x01}, + {0xefb1, 0x01}, + {0xefb2, 0x01}, + {0xefb3, 0x01}, + {0xefb4, 0x01}, + {0xefb5, 0x01}, + {0xefb6, 0x01}, + {0xefb7, 0x01}, + {0xefb8, 0x01}, + {0xefb9, 0x01}, + {0xefba, 0x01}, + {0xefbb, 0x01}, + {0xefbc, 0x01}, + {0xefbd, 0x01}, + {0xefbe, 0x01}, + {0xefbf, 0x01}, + {0xefc0, 0x01}, + {0xefc1, 0x01}, + {0xefc2, 0x01}, + {0xefc3, 0x01}, + {0xefc4, 0x01}, + {0xefc5, 0x01}, + {0xefc6, 0x01}, + {0xefc7, 0x01}, + {0xefc8, 0x01}, + {0xefc9, 0x01}, + {0xefca, 0x01}, + {0xefcb, 0x01}, + {0xefcc, 0x01}, + {0xefcd, 0x01}, + {0xefce, 0x01}, + {0xefcf, 0x01}, + {0xefd0, 0x01}, + {0xefd1, 0x01}, + {0xefd2, 0x01}, + {0xefd3, 0x01}, + {0xefd4, 0x01}, + {0xefd5, 0x01}, + {0xefd6, 0x01}, + {0xefd7, 0x01}, + {0xefd8, 0x01}, + {0xefd9, 0x01}, + {0xefda, 0x01}, + {0xefdb, 0x01}, + {0xefdc, 0x01}, + {0xefdd, 0x01}, + {0xefde, 0x01}, + {0xefdf, 0x01}, + {0xefe0, 0x01}, + {0xefe1, 0x01}, + {0xefe2, 0x01}, + {0xefe3, 0x01}, + {0xefe4, 0x01}, + {0xefe5, 0x01}, + {0xefe6, 0x01}, + {0xefe7, 0x01}, + {0xefe8, 0x01}, + {0xefe9, 0x01}, + {0xefea, 0x01}, + {0xefeb, 0x01}, + {0xefec, 0x01}, + {0xefed, 0x01}, + {0xefee, 0x01}, + {0xefef, 0x01}, + {0xeff0, 0x01}, + {0xeff1, 0x01}, + {0xeff2, 0x01}, + {0xeff3, 0x01}, + {0xeff4, 0x01}, + {0xeff5, 0x01}, + {0xeff6, 0x01}, + {0xeff7, 0x01}, + {0xeff8, 0x01}, + {0xeff9, 0x01}, + {0xeffa, 0x01}, + {0xeffb, 0x01}, + {0xeffc, 0x01}, + {0xeffd, 0x01}, + {0xeffe, 0x01}, + {0xf040, 0x01}, + {0xf041, 0x01}, + {0xf042, 0x01}, + {0xf043, 0x01}, + {0xf044, 0x01}, + {0xf045, 0x01}, + {0xf046, 0x01}, + {0xf047, 0x01}, + {0xf048, 0x01}, + {0xf049, 0x01}, + {0xf04a, 0x01}, + {0xf04b, 0x01}, + {0xf04c, 0x01}, + {0xf04d, 0x01}, + {0xf04e, 0x01}, + {0xf04f, 0x01}, + {0xf050, 0x01}, + {0xf051, 0x01}, + {0xf052, 0x01}, + {0xf053, 0x01}, + {0xf054, 0x01}, + {0xf055, 0x01}, + {0xf056, 0x01}, + {0xf057, 0x01}, + {0xf058, 0x01}, + {0xf059, 0x01}, + {0xf05a, 0x01}, + {0xf05b, 0x01}, + {0xf05c, 0x01}, + {0xf05d, 0x01}, + {0xf05e, 0x01}, + {0xf05f, 0x01}, + {0xf060, 0x01}, + {0xf061, 0x01}, + {0xf062, 0x01}, + {0xf063, 0x01}, + {0xf064, 0x01}, + {0xf065, 0x01}, + {0xf066, 0x01}, + {0xf067, 0x01}, + {0xf068, 0x01}, + {0xf069, 0x01}, + {0xf06a, 0x01}, + {0xf06b, 0x01}, + {0xf06c, 0x01}, + {0xf06d, 0x01}, + {0xf06e, 0x01}, + {0xf06f, 0x01}, + {0xf070, 0x01}, + {0xf071, 0x01}, + {0xf072, 0x01}, + {0xf073, 0x01}, + {0xf074, 0x01}, + {0xf075, 0x01}, + {0xf076, 0x01}, + {0xf077, 0x01}, + {0xf078, 0x01}, + {0xf079, 0x01}, + {0xf07a, 0x01}, + {0xf07b, 0x01}, + {0xf07c, 0x01}, + {0xf07d, 0x01}, + {0xf07e, 0x01}, + {0xf080, 0x01}, + {0xf081, 0x01}, + {0xf082, 0x01}, + {0xf083, 0x01}, + {0xf084, 0x01}, + {0xf085, 0x01}, + {0xf086, 0x01}, + {0xf087, 0x01}, + {0xf088, 0x01}, + {0xf089, 0x01}, + {0xf08a, 0x01}, + {0xf08b, 0x01}, + {0xf08c, 0x01}, + {0xf08d, 0x01}, + {0xf08e, 0x01}, + {0xf08f, 0x01}, + {0xf090, 0x01}, + {0xf091, 0x01}, + {0xf092, 0x01}, + {0xf093, 0x01}, + {0xf094, 0x01}, + {0xf095, 0x01}, + {0xf096, 0x01}, + {0xf097, 0x01}, + {0xf098, 0x01}, + {0xf099, 0x01}, + {0xf09a, 0x01}, + {0xf09b, 0x01}, + {0xf09c, 0x01}, + {0xf09d, 0x01}, + {0xf09e, 0x01}, + {0xf09f, 0x01}, + {0xf0a0, 0x01}, + {0xf0a1, 0x01}, + {0xf0a2, 0x01}, + {0xf0a3, 0x01}, + {0xf0a4, 0x01}, + {0xf0a5, 0x01}, + {0xf0a6, 0x01}, + {0xf0a7, 0x01}, + {0xf0a8, 0x01}, + {0xf0a9, 0x01}, + {0xf0aa, 0x01}, + {0xf0ab, 0x01}, + {0xf0ac, 0x01}, + {0xf0ad, 0x01}, + {0xf0ae, 0x01}, + {0xf0af, 0x01}, + {0xf0b0, 0x01}, + {0xf0b1, 0x01}, + {0xf0b2, 0x01}, + {0xf0b3, 0x01}, + {0xf0b4, 0x01}, + {0xf0b5, 0x01}, + {0xf0b6, 0x01}, + {0xf0b7, 0x01}, + {0xf0b8, 0x01}, + {0xf0b9, 0x01}, + {0xf0ba, 0x01}, + {0xf0bb, 0x01}, + {0xf0bc, 0x01}, + {0xf0bd, 0x01}, + {0xf0be, 0x01}, + {0xf0bf, 0x01}, + {0xf0c0, 0x01}, + {0xf0c1, 0x01}, + {0xf0c2, 0x01}, + {0xf0c3, 0x01}, + {0xf0c4, 0x01}, + {0xf0c5, 0x01}, + {0xf0c6, 0x01}, + {0xf0c7, 0x01}, + {0xf0c8, 0x01}, + {0xf0c9, 0x01}, + {0xf0ca, 0x01}, + {0xf0cb, 0x01}, + {0xf0cc, 0x01}, + {0xf0cd, 0x01}, + {0xf0ce, 0x01}, + {0xf0cf, 0x01}, + {0xf0d0, 0x01}, + {0xf0d1, 0x01}, + {0xf0d2, 0x01}, + {0xf0d3, 0x01}, + {0xf0d4, 0x01}, + {0xf0d5, 0x01}, + {0xf0d6, 0x01}, + {0xf0d7, 0x01}, + {0xf0d8, 0x01}, + {0xf0d9, 0x01}, + {0xf0da, 0x01}, + {0xf0db, 0x01}, + {0xf0dc, 0x01}, + {0xf0dd, 0x01}, + {0xf0de, 0x01}, + {0xf0df, 0x01}, + {0xf0e0, 0x01}, + {0xf0e1, 0x01}, + {0xf0e2, 0x01}, + {0xf0e3, 0x01}, + {0xf0e4, 0x01}, + {0xf0e5, 0x01}, + {0xf0e6, 0x01}, + {0xf0e7, 0x01}, + {0xf0e8, 0x01}, + {0xf0e9, 0x01}, + {0xf0ea, 0x01}, + {0xf0eb, 0x01}, + {0xf0ec, 0x01}, + {0xf0ed, 0x01}, + {0xf0ee, 0x01}, + {0xf0ef, 0x01}, + {0xf0f0, 0x01}, + {0xf0f1, 0x01}, + {0xf0f2, 0x01}, + {0xf0f3, 0x01}, + {0xf0f4, 0x01}, + {0xf0f5, 0x01}, + {0xf0f6, 0x01}, + {0xf0f7, 0x01}, + {0xf0f8, 0x01}, + {0xf0f9, 0x01}, + {0xf0fa, 0x01}, + {0xf0fb, 0x01}, + {0xf0fc, 0x01}, + {0xf0fd, 0x01}, + {0xf0fe, 0x01}, + {0xf140, 0x01}, + {0xf141, 0x01}, + {0xf142, 0x01}, + {0xf143, 0x01}, + {0xf144, 0x01}, + {0xf145, 0x01}, + {0xf146, 0x01}, + {0xf147, 0x01}, + {0xf148, 0x01}, + {0xf149, 0x01}, + {0xf14a, 0x01}, + {0xf14b, 0x01}, + {0xf14c, 0x01}, + {0xf14d, 0x01}, + {0xf14e, 0x01}, + {0xf14f, 0x01}, + {0xf150, 0x01}, + {0xf151, 0x01}, + {0xf152, 0x01}, + {0xf153, 0x01}, + {0xf154, 0x01}, + {0xf155, 0x01}, + {0xf156, 0x01}, + {0xf157, 0x01}, + {0xf158, 0x01}, + {0xf159, 0x01}, + {0xf15a, 0x01}, + {0xf15b, 0x01}, + {0xf15c, 0x01}, + {0xf15d, 0x01}, + {0xf15e, 0x01}, + {0xf15f, 0x01}, + {0xf160, 0x01}, + {0xf161, 0x01}, + {0xf162, 0x01}, + {0xf163, 0x01}, + {0xf164, 0x01}, + {0xf165, 0x01}, + {0xf166, 0x01}, + {0xf167, 0x01}, + {0xf168, 0x01}, + {0xf169, 0x01}, + {0xf16a, 0x01}, + {0xf16b, 0x01}, + {0xf16c, 0x01}, + {0xf16d, 0x01}, + {0xf16e, 0x01}, + {0xf16f, 0x01}, + {0xf170, 0x01}, + {0xf171, 0x01}, + {0xf172, 0x01}, + {0xf173, 0x01}, + {0xf174, 0x01}, + {0xf175, 0x01}, + {0xf176, 0x01}, + {0xf177, 0x01}, + {0xf178, 0x01}, + {0xf179, 0x01}, + {0xf17a, 0x01}, + {0xf17b, 0x01}, + {0xf17c, 0x01}, + {0xf17d, 0x01}, + {0xf17e, 0x01}, + {0xf180, 0x01}, + {0xf181, 0x01}, + {0xf182, 0x01}, + {0xf183, 0x01}, + {0xf184, 0x01}, + {0xf185, 0x01}, + {0xf186, 0x01}, + {0xf187, 0x01}, + {0xf188, 0x01}, + {0xf189, 0x01}, + {0xf18a, 0x01}, + {0xf18b, 0x01}, + {0xf18c, 0x01}, + {0xf18d, 0x01}, + {0xf18e, 0x01}, + {0xf18f, 0x01}, + {0xf190, 0x01}, + {0xf191, 0x01}, + {0xf192, 0x01}, + {0xf193, 0x01}, + {0xf194, 0x01}, + {0xf195, 0x01}, + {0xf196, 0x01}, + {0xf197, 0x01}, + {0xf198, 0x01}, + {0xf199, 0x01}, + {0xf19a, 0x01}, + {0xf19b, 0x01}, + {0xf19c, 0x01}, + {0xf19d, 0x01}, + {0xf19e, 0x01}, + {0xf19f, 0x01}, + {0xf1a0, 0x01}, + {0xf1a1, 0x01}, + {0xf1a2, 0x01}, + {0xf1a3, 0x01}, + {0xf1a4, 0x01}, + {0xf1a5, 0x01}, + {0xf1a6, 0x01}, + {0xf1a7, 0x01}, + {0xf1a8, 0x01}, + {0xf1a9, 0x01}, + {0xf1aa, 0x01}, + {0xf1ab, 0x01}, + {0xf1ac, 0x01}, + {0xf1ad, 0x01}, + {0xf1ae, 0x01}, + {0xf1af, 0x01}, + {0xf1b0, 0x01}, + {0xf1b1, 0x01}, + {0xf1b2, 0x01}, + {0xf1b3, 0x01}, + {0xf1b4, 0x01}, + {0xf1b5, 0x01}, + {0xf1b6, 0x01}, + {0xf1b7, 0x01}, + {0xf1b8, 0x01}, + {0xf1b9, 0x01}, + {0xf1ba, 0x01}, + {0xf1bb, 0x01}, + {0xf1bc, 0x01}, + {0xf1bd, 0x01}, + {0xf1be, 0x01}, + {0xf1bf, 0x01}, + {0xf1c0, 0x01}, + {0xf1c1, 0x01}, + {0xf1c2, 0x01}, + {0xf1c3, 0x01}, + {0xf1c4, 0x01}, + {0xf1c5, 0x01}, + {0xf1c6, 0x01}, + {0xf1c7, 0x01}, + {0xf1c8, 0x01}, + {0xf1c9, 0x01}, + {0xf1ca, 0x01}, + {0xf1cb, 0x01}, + {0xf1cc, 0x01}, + {0xf1cd, 0x01}, + {0xf1ce, 0x01}, + {0xf1cf, 0x01}, + {0xf1d0, 0x01}, + {0xf1d1, 0x01}, + {0xf1d2, 0x01}, + {0xf1d3, 0x01}, + {0xf1d4, 0x01}, + {0xf1d5, 0x01}, + {0xf1d6, 0x01}, + {0xf1d7, 0x01}, + {0xf1d8, 0x01}, + {0xf1d9, 0x01}, + {0xf1da, 0x01}, + {0xf1db, 0x01}, + {0xf1dc, 0x01}, + {0xf1dd, 0x01}, + {0xf1de, 0x01}, + {0xf1df, 0x01}, + {0xf1e0, 0x01}, + {0xf1e1, 0x01}, + {0xf1e2, 0x01}, + {0xf1e3, 0x01}, + {0xf1e4, 0x01}, + {0xf1e5, 0x01}, + {0xf1e6, 0x01}, + {0xf1e7, 0x01}, + {0xf1e8, 0x01}, + {0xf1e9, 0x01}, + {0xf1ea, 0x01}, + {0xf1eb, 0x01}, + {0xf1ec, 0x01}, + {0xf1ed, 0x01}, + {0xf1ee, 0x01}, + {0xf1ef, 0x01}, + {0xf1f0, 0x01}, + {0xf1f1, 0x01}, + {0xf1f2, 0x01}, + {0xf1f3, 0x01}, + {0xf1f4, 0x01}, + {0xf1f5, 0x01}, + {0xf1f6, 0x01}, + {0xf1f7, 0x01}, + {0xf1f8, 0x01}, + {0xf1f9, 0x01}, + {0xf1fa, 0x01}, + {0xf1fb, 0x01}, + {0xf1fc, 0x01}, + {0xf1fd, 0x01}, + {0xf1fe, 0x01}, + {0xf240, 0x01}, + {0xf241, 0x01}, + {0xf242, 0x01}, + {0xf243, 0x01}, + {0xf244, 0x01}, + {0xf245, 0x01}, + {0xf246, 0x01}, + {0xf247, 0x01}, + {0xf248, 0x01}, + {0xf249, 0x01}, + {0xf24a, 0x01}, + {0xf24b, 0x01}, + {0xf24c, 0x01}, + {0xf24d, 0x01}, + {0xf24e, 0x01}, + {0xf24f, 0x01}, + {0xf250, 0x01}, + {0xf251, 0x01}, + {0xf252, 0x01}, + {0xf253, 0x01}, + {0xf254, 0x01}, + {0xf255, 0x01}, + {0xf256, 0x01}, + {0xf257, 0x01}, + {0xf258, 0x01}, + {0xf259, 0x01}, + {0xf25a, 0x01}, + {0xf25b, 0x01}, + {0xf25c, 0x01}, + {0xf25d, 0x01}, + {0xf25e, 0x01}, + {0xf25f, 0x01}, + {0xf260, 0x01}, + {0xf261, 0x01}, + {0xf262, 0x01}, + {0xf263, 0x01}, + {0xf264, 0x01}, + {0xf265, 0x01}, + {0xf266, 0x01}, + {0xf267, 0x01}, + {0xf268, 0x01}, + {0xf269, 0x01}, + {0xf26a, 0x01}, + {0xf26b, 0x01}, + {0xf26c, 0x01}, + {0xf26d, 0x01}, + {0xf26e, 0x01}, + {0xf26f, 0x01}, + {0xf270, 0x01}, + {0xf271, 0x01}, + {0xf272, 0x01}, + {0xf273, 0x01}, + {0xf274, 0x01}, + {0xf275, 0x01}, + {0xf276, 0x01}, + {0xf277, 0x01}, + {0xf278, 0x01}, + {0xf279, 0x01}, + {0xf27a, 0x01}, + {0xf27b, 0x01}, + {0xf27c, 0x01}, + {0xf27d, 0x01}, + {0xf27e, 0x01}, + {0xf280, 0x01}, + {0xf281, 0x01}, + {0xf282, 0x01}, + {0xf283, 0x01}, + {0xf284, 0x01}, + {0xf285, 0x01}, + {0xf286, 0x01}, + {0xf287, 0x01}, + {0xf288, 0x01}, + {0xf289, 0x01}, + {0xf28a, 0x01}, + {0xf28b, 0x01}, + {0xf28c, 0x01}, + {0xf28d, 0x01}, + {0xf28e, 0x01}, + {0xf28f, 0x01}, + {0xf290, 0x01}, + {0xf291, 0x01}, + {0xf292, 0x01}, + {0xf293, 0x01}, + {0xf294, 0x01}, + {0xf295, 0x01}, + {0xf296, 0x01}, + {0xf297, 0x01}, + {0xf298, 0x01}, + {0xf299, 0x01}, + {0xf29a, 0x01}, + {0xf29b, 0x01}, + {0xf29c, 0x01}, + {0xf29d, 0x01}, + {0xf29e, 0x01}, + {0xf29f, 0x01}, + {0xf2a0, 0x01}, + {0xf2a1, 0x01}, + {0xf2a2, 0x01}, + {0xf2a3, 0x01}, + {0xf2a4, 0x01}, + {0xf2a5, 0x01}, + {0xf2a6, 0x01}, + {0xf2a7, 0x01}, + {0xf2a8, 0x01}, + {0xf2a9, 0x01}, + {0xf2aa, 0x01}, + {0xf2ab, 0x01}, + {0xf2ac, 0x01}, + {0xf2ad, 0x01}, + {0xf2ae, 0x01}, + {0xf2af, 0x01}, + {0xf2b0, 0x01}, + {0xf2b1, 0x01}, + {0xf2b2, 0x01}, + {0xf2b3, 0x01}, + {0xf2b4, 0x01}, + {0xf2b5, 0x01}, + {0xf2b6, 0x01}, + {0xf2b7, 0x01}, + {0xf2b8, 0x01}, + {0xf2b9, 0x01}, + {0xf2ba, 0x01}, + {0xf2bb, 0x01}, + {0xf2bc, 0x01}, + {0xf2bd, 0x01}, + {0xf2be, 0x01}, + {0xf2bf, 0x01}, + {0xf2c0, 0x01}, + {0xf2c1, 0x01}, + {0xf2c2, 0x01}, + {0xf2c3, 0x01}, + {0xf2c4, 0x01}, + {0xf2c5, 0x01}, + {0xf2c6, 0x01}, + {0xf2c7, 0x01}, + {0xf2c8, 0x01}, + {0xf2c9, 0x01}, + {0xf2ca, 0x01}, + {0xf2cb, 0x01}, + {0xf2cc, 0x01}, + {0xf2cd, 0x01}, + {0xf2ce, 0x01}, + {0xf2cf, 0x01}, + {0xf2d0, 0x01}, + {0xf2d1, 0x01}, + {0xf2d2, 0x01}, + {0xf2d3, 0x01}, + {0xf2d4, 0x01}, + {0xf2d5, 0x01}, + {0xf2d6, 0x01}, + {0xf2d7, 0x01}, + {0xf2d8, 0x01}, + {0xf2d9, 0x01}, + {0xf2da, 0x01}, + {0xf2db, 0x01}, + {0xf2dc, 0x01}, + {0xf2dd, 0x01}, + {0xf2de, 0x01}, + {0xf2df, 0x01}, + {0xf2e0, 0x01}, + {0xf2e1, 0x01}, + {0xf2e2, 0x01}, + {0xf2e3, 0x01}, + {0xf2e4, 0x01}, + {0xf2e5, 0x01}, + {0xf2e6, 0x01}, + {0xf2e7, 0x01}, + {0xf2e8, 0x01}, + {0xf2e9, 0x01}, + {0xf2ea, 0x01}, + {0xf2eb, 0x01}, + {0xf2ec, 0x01}, + {0xf2ed, 0x01}, + {0xf2ee, 0x01}, + {0xf2ef, 0x01}, + {0xf2f0, 0x01}, + {0xf2f1, 0x01}, + {0xf2f2, 0x01}, + {0xf2f3, 0x01}, + {0xf2f4, 0x01}, + {0xf2f5, 0x01}, + {0xf2f6, 0x01}, + {0xf2f7, 0x01}, + {0xf2f8, 0x01}, + {0xf2f9, 0x01}, + {0xf2fa, 0x01}, + {0xf2fb, 0x01}, + {0xf2fc, 0x01}, + {0xf2fd, 0x01}, + {0xf2fe, 0x01}, + {0xf340, 0x01}, + {0xf341, 0x01}, + {0xf342, 0x01}, + {0xf343, 0x01}, + {0xf344, 0x01}, + {0xf345, 0x01}, + {0xf346, 0x01}, + {0xf347, 0x01}, + {0xf348, 0x01}, + {0xf349, 0x01}, + {0xf34a, 0x01}, + {0xf34b, 0x01}, + {0xf34c, 0x01}, + {0xf34d, 0x01}, + {0xf34e, 0x01}, + {0xf34f, 0x01}, + {0xf350, 0x01}, + {0xf351, 0x01}, + {0xf352, 0x01}, + {0xf353, 0x01}, + {0xf354, 0x01}, + {0xf355, 0x01}, + {0xf356, 0x01}, + {0xf357, 0x01}, + {0xf358, 0x01}, + {0xf359, 0x01}, + {0xf35a, 0x01}, + {0xf35b, 0x01}, + {0xf35c, 0x01}, + {0xf35d, 0x01}, + {0xf35e, 0x01}, + {0xf35f, 0x01}, + {0xf360, 0x01}, + {0xf361, 0x01}, + {0xf362, 0x01}, + {0xf363, 0x01}, + {0xf364, 0x01}, + {0xf365, 0x01}, + {0xf366, 0x01}, + {0xf367, 0x01}, + {0xf368, 0x01}, + {0xf369, 0x01}, + {0xf36a, 0x01}, + {0xf36b, 0x01}, + {0xf36c, 0x01}, + {0xf36d, 0x01}, + {0xf36e, 0x01}, + {0xf36f, 0x01}, + {0xf370, 0x01}, + {0xf371, 0x01}, + {0xf372, 0x01}, + {0xf373, 0x01}, + {0xf374, 0x01}, + {0xf375, 0x01}, + {0xf376, 0x01}, + {0xf377, 0x01}, + {0xf378, 0x01}, + {0xf379, 0x01}, + {0xf37a, 0x01}, + {0xf37b, 0x01}, + {0xf37c, 0x01}, + {0xf37d, 0x01}, + {0xf37e, 0x01}, + {0xf380, 0x01}, + {0xf381, 0x01}, + {0xf382, 0x01}, + {0xf383, 0x01}, + {0xf384, 0x01}, + {0xf385, 0x01}, + {0xf386, 0x01}, + {0xf387, 0x01}, + {0xf388, 0x01}, + {0xf389, 0x01}, + {0xf38a, 0x01}, + {0xf38b, 0x01}, + {0xf38c, 0x01}, + {0xf38d, 0x01}, + {0xf38e, 0x01}, + {0xf38f, 0x01}, + {0xf390, 0x01}, + {0xf391, 0x01}, + {0xf392, 0x01}, + {0xf393, 0x01}, + {0xf394, 0x01}, + {0xf395, 0x01}, + {0xf396, 0x01}, + {0xf397, 0x01}, + {0xf398, 0x01}, + {0xf399, 0x01}, + {0xf39a, 0x01}, + {0xf39b, 0x01}, + {0xf39c, 0x01}, + {0xf39d, 0x01}, + {0xf39e, 0x01}, + {0xf39f, 0x01}, + {0xf3a0, 0x01}, + {0xf3a1, 0x01}, + {0xf3a2, 0x01}, + {0xf3a3, 0x01}, + {0xf3a4, 0x01}, + {0xf3a5, 0x01}, + {0xf3a6, 0x01}, + {0xf3a7, 0x01}, + {0xf3a8, 0x01}, + {0xf3a9, 0x01}, + {0xf3aa, 0x01}, + {0xf3ab, 0x01}, + {0xf3ac, 0x01}, + {0xf3ad, 0x01}, + {0xf3ae, 0x01}, + {0xf3af, 0x01}, + {0xf3b0, 0x01}, + {0xf3b1, 0x01}, + {0xf3b2, 0x01}, + {0xf3b3, 0x01}, + {0xf3b4, 0x01}, + {0xf3b5, 0x01}, + {0xf3b6, 0x01}, + {0xf3b7, 0x01}, + {0xf3b8, 0x01}, + {0xf3b9, 0x01}, + {0xf3ba, 0x01}, + {0xf3bb, 0x01}, + {0xf3bc, 0x01}, + {0xf3bd, 0x01}, + {0xf3be, 0x01}, + {0xf3bf, 0x01}, + {0xf3c0, 0x01}, + {0xf3c1, 0x01}, + {0xf3c2, 0x01}, + {0xf3c3, 0x01}, + {0xf3c4, 0x01}, + {0xf3c5, 0x01}, + {0xf3c6, 0x01}, + {0xf3c7, 0x01}, + {0xf3c8, 0x01}, + {0xf3c9, 0x01}, + {0xf3ca, 0x01}, + {0xf3cb, 0x01}, + {0xf3cc, 0x01}, + {0xf3cd, 0x01}, + {0xf3ce, 0x01}, + {0xf3cf, 0x01}, + {0xf3d0, 0x01}, + {0xf3d1, 0x01}, + {0xf3d2, 0x01}, + {0xf3d3, 0x01}, + {0xf3d4, 0x01}, + {0xf3d5, 0x01}, + {0xf3d6, 0x01}, + {0xf3d7, 0x01}, + {0xf3d8, 0x01}, + {0xf3d9, 0x01}, + {0xf3da, 0x01}, + {0xf3db, 0x01}, + {0xf3dc, 0x01}, + {0xf3dd, 0x01}, + {0xf3de, 0x01}, + {0xf3df, 0x01}, + {0xf3e0, 0x01}, + {0xf3e1, 0x01}, + {0xf3e2, 0x01}, + {0xf3e3, 0x01}, + {0xf3e4, 0x01}, + {0xf3e5, 0x01}, + {0xf3e6, 0x01}, + {0xf3e7, 0x01}, + {0xf3e8, 0x01}, + {0xf3e9, 0x01}, + {0xf3ea, 0x01}, + {0xf3eb, 0x01}, + {0xf3ec, 0x01}, + {0xf3ed, 0x01}, + {0xf3ee, 0x01}, + {0xf3ef, 0x01}, + {0xf3f0, 0x01}, + {0xf3f1, 0x01}, + {0xf3f2, 0x01}, + {0xf3f3, 0x01}, + {0xf3f4, 0x01}, + {0xf3f5, 0x01}, + {0xf3f6, 0x01}, + {0xf3f7, 0x01}, + {0xf3f8, 0x01}, + {0xf3f9, 0x01}, + {0xf3fa, 0x01}, + {0xf3fb, 0x01}, + {0xf3fc, 0x01}, + {0xf3fd, 0x01}, + {0xf3fe, 0x01}, + {0xf440, 0x01}, + {0xf441, 0x01}, + {0xf442, 0x01}, + {0xf443, 0x01}, + {0xf444, 0x01}, + {0xf445, 0x01}, + {0xf446, 0x01}, + {0xf447, 0x01}, + {0xf448, 0x01}, + {0xf449, 0x01}, + {0xf44a, 0x01}, + {0xf44b, 0x01}, + {0xf44c, 0x01}, + {0xf44d, 0x01}, + {0xf44e, 0x01}, + {0xf44f, 0x01}, + {0xf450, 0x01}, + {0xf451, 0x01}, + {0xf452, 0x01}, + {0xf453, 0x01}, + {0xf454, 0x01}, + {0xf455, 0x01}, + {0xf456, 0x01}, + {0xf457, 0x01}, + {0xf458, 0x01}, + {0xf459, 0x01}, + {0xf45a, 0x01}, + {0xf45b, 0x01}, + {0xf45c, 0x01}, + {0xf45d, 0x01}, + {0xf45e, 0x01}, + {0xf45f, 0x01}, + {0xf460, 0x01}, + {0xf461, 0x01}, + {0xf462, 0x01}, + {0xf463, 0x01}, + {0xf464, 0x01}, + {0xf465, 0x01}, + {0xf466, 0x01}, + {0xf467, 0x01}, + {0xf468, 0x01}, + {0xf469, 0x01}, + {0xf46a, 0x01}, + {0xf46b, 0x01}, + {0xf46c, 0x01}, + {0xf46d, 0x01}, + {0xf46e, 0x01}, + {0xf46f, 0x01}, + {0xf470, 0x01}, + {0xf471, 0x01}, + {0xf472, 0x01}, + {0xf473, 0x01}, + {0xf474, 0x01}, + {0xf475, 0x01}, + {0xf476, 0x01}, + {0xf477, 0x01}, + {0xf478, 0x01}, + {0xf479, 0x01}, + {0xf47a, 0x01}, + {0xf47b, 0x01}, + {0xf47c, 0x01}, + {0xf47d, 0x01}, + {0xf47e, 0x01}, + {0xf480, 0x01}, + {0xf481, 0x01}, + {0xf482, 0x01}, + {0xf483, 0x01}, + {0xf484, 0x01}, + {0xf485, 0x01}, + {0xf486, 0x01}, + {0xf487, 0x01}, + {0xf488, 0x01}, + {0xf489, 0x01}, + {0xf48a, 0x01}, + {0xf48b, 0x01}, + {0xf48c, 0x01}, + {0xf48d, 0x01}, + {0xf48e, 0x01}, + {0xf48f, 0x01}, + {0xf490, 0x01}, + {0xf491, 0x01}, + {0xf492, 0x01}, + {0xf493, 0x01}, + {0xf494, 0x01}, + {0xf495, 0x01}, + {0xf496, 0x01}, + {0xf497, 0x01}, + {0xf498, 0x01}, + {0xf499, 0x01}, + {0xf49a, 0x01}, + {0xf49b, 0x01}, + {0xf49c, 0x01}, + {0xf49d, 0x01}, + {0xf49e, 0x01}, + {0xf49f, 0x01}, + {0xf4a0, 0x01}, + {0xf4a1, 0x01}, + {0xf4a2, 0x01}, + {0xf4a3, 0x01}, + {0xf4a4, 0x01}, + {0xf4a5, 0x01}, + {0xf4a6, 0x01}, + {0xf4a7, 0x01}, + {0xf4a8, 0x01}, + {0xf4a9, 0x01}, + {0xf4aa, 0x01}, + {0xf4ab, 0x01}, + {0xf4ac, 0x01}, + {0xf4ad, 0x01}, + {0xf4ae, 0x01}, + {0xf4af, 0x01}, + {0xf4b0, 0x01}, + {0xf4b1, 0x01}, + {0xf4b2, 0x01}, + {0xf4b3, 0x01}, + {0xf4b4, 0x01}, + {0xf4b5, 0x01}, + {0xf4b6, 0x01}, + {0xf4b7, 0x01}, + {0xf4b8, 0x01}, + {0xf4b9, 0x01}, + {0xf4ba, 0x01}, + {0xf4bb, 0x01}, + {0xf4bc, 0x01}, + {0xf4bd, 0x01}, + {0xf4be, 0x01}, + {0xf4bf, 0x01}, + {0xf4c0, 0x01}, + {0xf4c1, 0x01}, + {0xf4c2, 0x01}, + {0xf4c3, 0x01}, + {0xf4c4, 0x01}, + {0xf4c5, 0x01}, + {0xf4c6, 0x01}, + {0xf4c7, 0x01}, + {0xf4c8, 0x01}, + {0xf4c9, 0x01}, + {0xf4ca, 0x01}, + {0xf4cb, 0x01}, + {0xf4cc, 0x01}, + {0xf4cd, 0x01}, + {0xf4ce, 0x01}, + {0xf4cf, 0x01}, + {0xf4d0, 0x01}, + {0xf4d1, 0x01}, + {0xf4d2, 0x01}, + {0xf4d3, 0x01}, + {0xf4d4, 0x01}, + {0xf4d5, 0x01}, + {0xf4d6, 0x01}, + {0xf4d7, 0x01}, + {0xf4d8, 0x01}, + {0xf4d9, 0x01}, + {0xf4da, 0x01}, + {0xf4db, 0x01}, + {0xf4dc, 0x01}, + {0xf4dd, 0x01}, + {0xf4de, 0x01}, + {0xf4df, 0x01}, + {0xf4e0, 0x01}, + {0xf4e1, 0x01}, + {0xf4e2, 0x01}, + {0xf4e3, 0x01}, + {0xf4e4, 0x01}, + {0xf4e5, 0x01}, + {0xf4e6, 0x01}, + {0xf4e7, 0x01}, + {0xf4e8, 0x01}, + {0xf4e9, 0x01}, + {0xf4ea, 0x01}, + {0xf4eb, 0x01}, + {0xf4ec, 0x01}, + {0xf4ed, 0x01}, + {0xf4ee, 0x01}, + {0xf4ef, 0x01}, + {0xf4f0, 0x01}, + {0xf4f1, 0x01}, + {0xf4f2, 0x01}, + {0xf4f3, 0x01}, + {0xf4f4, 0x01}, + {0xf4f5, 0x01}, + {0xf4f6, 0x01}, + {0xf4f7, 0x01}, + {0xf4f8, 0x01}, + {0xf4f9, 0x01}, + {0xf4fa, 0x01}, + {0xf4fb, 0x01}, + {0xf4fc, 0x01}, + {0xf4fd, 0x01}, + {0xf4fe, 0x01}, + {0xf540, 0x01}, + {0xf541, 0x01}, + {0xf542, 0x01}, + {0xf543, 0x01}, + {0xf544, 0x01}, + {0xf545, 0x01}, + {0xf546, 0x01}, + {0xf547, 0x01}, + {0xf548, 0x01}, + {0xf549, 0x01}, + {0xf54a, 0x01}, + {0xf54b, 0x01}, + {0xf54c, 0x01}, + {0xf54d, 0x01}, + {0xf54e, 0x01}, + {0xf54f, 0x01}, + {0xf550, 0x01}, + {0xf551, 0x01}, + {0xf552, 0x01}, + {0xf553, 0x01}, + {0xf554, 0x01}, + {0xf555, 0x01}, + {0xf556, 0x01}, + {0xf557, 0x01}, + {0xf558, 0x01}, + {0xf559, 0x01}, + {0xf55a, 0x01}, + {0xf55b, 0x01}, + {0xf55c, 0x01}, + {0xf55d, 0x01}, + {0xf55e, 0x01}, + {0xf55f, 0x01}, + {0xf560, 0x01}, + {0xf561, 0x01}, + {0xf562, 0x01}, + {0xf563, 0x01}, + {0xf564, 0x01}, + {0xf565, 0x01}, + {0xf566, 0x01}, + {0xf567, 0x01}, + {0xf568, 0x01}, + {0xf569, 0x01}, + {0xf56a, 0x01}, + {0xf56b, 0x01}, + {0xf56c, 0x01}, + {0xf56d, 0x01}, + {0xf56e, 0x01}, + {0xf56f, 0x01}, + {0xf570, 0x01}, + {0xf571, 0x01}, + {0xf572, 0x01}, + {0xf573, 0x01}, + {0xf574, 0x01}, + {0xf575, 0x01}, + {0xf576, 0x01}, + {0xf577, 0x01}, + {0xf578, 0x01}, + {0xf579, 0x01}, + {0xf57a, 0x01}, + {0xf57b, 0x01}, + {0xf57c, 0x01}, + {0xf57d, 0x01}, + {0xf57e, 0x01}, + {0xf580, 0x01}, + {0xf581, 0x01}, + {0xf582, 0x01}, + {0xf583, 0x01}, + {0xf584, 0x01}, + {0xf585, 0x01}, + {0xf586, 0x01}, + {0xf587, 0x01}, + {0xf588, 0x01}, + {0xf589, 0x01}, + {0xf58a, 0x01}, + {0xf58b, 0x01}, + {0xf58c, 0x01}, + {0xf58d, 0x01}, + {0xf58e, 0x01}, + {0xf58f, 0x01}, + {0xf590, 0x01}, + {0xf591, 0x01}, + {0xf592, 0x01}, + {0xf593, 0x01}, + {0xf594, 0x01}, + {0xf595, 0x01}, + {0xf596, 0x01}, + {0xf597, 0x01}, + {0xf598, 0x01}, + {0xf599, 0x01}, + {0xf59a, 0x01}, + {0xf59b, 0x01}, + {0xf59c, 0x01}, + {0xf59d, 0x01}, + {0xf59e, 0x01}, + {0xf59f, 0x01}, + {0xf5a0, 0x01}, + {0xf5a1, 0x01}, + {0xf5a2, 0x01}, + {0xf5a3, 0x01}, + {0xf5a4, 0x01}, + {0xf5a5, 0x01}, + {0xf5a6, 0x01}, + {0xf5a7, 0x01}, + {0xf5a8, 0x01}, + {0xf5a9, 0x01}, + {0xf5aa, 0x01}, + {0xf5ab, 0x01}, + {0xf5ac, 0x01}, + {0xf5ad, 0x01}, + {0xf5ae, 0x01}, + {0xf5af, 0x01}, + {0xf5b0, 0x01}, + {0xf5b1, 0x01}, + {0xf5b2, 0x01}, + {0xf5b3, 0x01}, + {0xf5b4, 0x01}, + {0xf5b5, 0x01}, + {0xf5b6, 0x01}, + {0xf5b7, 0x01}, + {0xf5b8, 0x01}, + {0xf5b9, 0x01}, + {0xf5ba, 0x01}, + {0xf5bb, 0x01}, + {0xf5bc, 0x01}, + {0xf5bd, 0x01}, + {0xf5be, 0x01}, + {0xf5bf, 0x01}, + {0xf5c0, 0x01}, + {0xf5c1, 0x01}, + {0xf5c2, 0x01}, + {0xf5c3, 0x01}, + {0xf5c4, 0x01}, + {0xf5c5, 0x01}, + {0xf5c6, 0x01}, + {0xf5c7, 0x01}, + {0xf5c8, 0x01}, + {0xf5c9, 0x01}, + {0xf5ca, 0x01}, + {0xf5cb, 0x01}, + {0xf5cc, 0x01}, + {0xf5cd, 0x01}, + {0xf5ce, 0x01}, + {0xf5cf, 0x01}, + {0xf5d0, 0x01}, + {0xf5d1, 0x01}, + {0xf5d2, 0x01}, + {0xf5d3, 0x01}, + {0xf5d4, 0x01}, + {0xf5d5, 0x01}, + {0xf5d6, 0x01}, + {0xf5d7, 0x01}, + {0xf5d8, 0x01}, + {0xf5d9, 0x01}, + {0xf5da, 0x01}, + {0xf5db, 0x01}, + {0xf5dc, 0x01}, + {0xf5dd, 0x01}, + {0xf5de, 0x01}, + {0xf5df, 0x01}, + {0xf5e0, 0x01}, + {0xf5e1, 0x01}, + {0xf5e2, 0x01}, + {0xf5e3, 0x01}, + {0xf5e4, 0x01}, + {0xf5e5, 0x01}, + {0xf5e6, 0x01}, + {0xf5e7, 0x01}, + {0xf5e8, 0x01}, + {0xf5e9, 0x01}, + {0xf5ea, 0x01}, + {0xf5eb, 0x01}, + {0xf5ec, 0x01}, + {0xf5ed, 0x01}, + {0xf5ee, 0x01}, + {0xf5ef, 0x01}, + {0xf5f0, 0x01}, + {0xf5f1, 0x01}, + {0xf5f2, 0x01}, + {0xf5f3, 0x01}, + {0xf5f4, 0x01}, + {0xf5f5, 0x01}, + {0xf5f6, 0x01}, + {0xf5f7, 0x01}, + {0xf5f8, 0x01}, + {0xf5f9, 0x01}, + {0xf5fa, 0x01}, + {0xf5fb, 0x01}, + {0xf5fc, 0x01}, + {0xf5fd, 0x01}, + {0xf5fe, 0x01}, + {0xf640, 0x01}, + {0xf641, 0x01}, + {0xf642, 0x01}, + {0xf643, 0x01}, + {0xf644, 0x01}, + {0xf645, 0x01}, + {0xf646, 0x01}, + {0xf647, 0x01}, + {0xf648, 0x01}, + {0xf649, 0x01}, + {0xf64a, 0x01}, + {0xf64b, 0x01}, + {0xf64c, 0x01}, + {0xf64d, 0x01}, + {0xf64e, 0x01}, + {0xf64f, 0x01}, + {0xf650, 0x01}, + {0xf651, 0x01}, + {0xf652, 0x01}, + {0xf653, 0x01}, + {0xf654, 0x01}, + {0xf655, 0x01}, + {0xf656, 0x01}, + {0xf657, 0x01}, + {0xf658, 0x01}, + {0xf659, 0x01}, + {0xf65a, 0x01}, + {0xf65b, 0x01}, + {0xf65c, 0x01}, + {0xf65d, 0x01}, + {0xf65e, 0x01}, + {0xf65f, 0x01}, + {0xf660, 0x01}, + {0xf661, 0x01}, + {0xf662, 0x01}, + {0xf663, 0x01}, + {0xf664, 0x01}, + {0xf665, 0x01}, + {0xf666, 0x01}, + {0xf667, 0x01}, + {0xf668, 0x01}, + {0xf669, 0x01}, + {0xf66a, 0x01}, + {0xf66b, 0x01}, + {0xf66c, 0x01}, + {0xf66d, 0x01}, + {0xf66e, 0x01}, + {0xf66f, 0x01}, + {0xf670, 0x01}, + {0xf671, 0x01}, + {0xf672, 0x01}, + {0xf673, 0x01}, + {0xf674, 0x01}, + {0xf675, 0x01}, + {0xf676, 0x01}, + {0xf677, 0x01}, + {0xf678, 0x01}, + {0xf679, 0x01}, + {0xf67a, 0x01}, + {0xf67b, 0x01}, + {0xf67c, 0x01}, + {0xf67d, 0x01}, + {0xf67e, 0x01}, + {0xf680, 0x01}, + {0xf681, 0x01}, + {0xf682, 0x01}, + {0xf683, 0x01}, + {0xf684, 0x01}, + {0xf685, 0x01}, + {0xf686, 0x01}, + {0xf687, 0x01}, + {0xf688, 0x01}, + {0xf689, 0x01}, + {0xf68a, 0x01}, + {0xf68b, 0x01}, + {0xf68c, 0x01}, + {0xf68d, 0x01}, + {0xf68e, 0x01}, + {0xf68f, 0x01}, + {0xf690, 0x01}, + {0xf691, 0x01}, + {0xf692, 0x01}, + {0xf693, 0x01}, + {0xf694, 0x01}, + {0xf695, 0x01}, + {0xf696, 0x01}, + {0xf697, 0x01}, + {0xf698, 0x01}, + {0xf699, 0x01}, + {0xf69a, 0x01}, + {0xf69b, 0x01}, + {0xf69c, 0x01}, + {0xf69d, 0x01}, + {0xf69e, 0x01}, + {0xf69f, 0x01}, + {0xf6a0, 0x01}, + {0xf6a1, 0x01}, + {0xf6a2, 0x01}, + {0xf6a3, 0x01}, + {0xf6a4, 0x01}, + {0xf6a5, 0x01}, + {0xf6a6, 0x01}, + {0xf6a7, 0x01}, + {0xf6a8, 0x01}, + {0xf6a9, 0x01}, + {0xf6aa, 0x01}, + {0xf6ab, 0x01}, + {0xf6ac, 0x01}, + {0xf6ad, 0x01}, + {0xf6ae, 0x01}, + {0xf6af, 0x01}, + {0xf6b0, 0x01}, + {0xf6b1, 0x01}, + {0xf6b2, 0x01}, + {0xf6b3, 0x01}, + {0xf6b4, 0x01}, + {0xf6b5, 0x01}, + {0xf6b6, 0x01}, + {0xf6b7, 0x01}, + {0xf6b8, 0x01}, + {0xf6b9, 0x01}, + {0xf6ba, 0x01}, + {0xf6bb, 0x01}, + {0xf6bc, 0x01}, + {0xf6bd, 0x01}, + {0xf6be, 0x01}, + {0xf6bf, 0x01}, + {0xf6c0, 0x01}, + {0xf6c1, 0x01}, + {0xf6c2, 0x01}, + {0xf6c3, 0x01}, + {0xf6c4, 0x01}, + {0xf6c5, 0x01}, + {0xf6c6, 0x01}, + {0xf6c7, 0x01}, + {0xf6c8, 0x01}, + {0xf6c9, 0x01}, + {0xf6ca, 0x01}, + {0xf6cb, 0x01}, + {0xf6cc, 0x01}, + {0xf6cd, 0x01}, + {0xf6ce, 0x01}, + {0xf6cf, 0x01}, + {0xf6d0, 0x01}, + {0xf6d1, 0x01}, + {0xf6d2, 0x01}, + {0xf6d3, 0x01}, + {0xf6d4, 0x01}, + {0xf6d5, 0x01}, + {0xf6d6, 0x01}, + {0xf6d7, 0x01}, + {0xf6d8, 0x01}, + {0xf6d9, 0x01}, + {0xf6da, 0x01}, + {0xf6db, 0x01}, + {0xf6dc, 0x01}, + {0xf6dd, 0x01}, + {0xf6de, 0x01}, + {0xf6df, 0x01}, + {0xf6e0, 0x01}, + {0xf6e1, 0x01}, + {0xf6e2, 0x01}, + {0xf6e3, 0x01}, + {0xf6e4, 0x01}, + {0xf6e5, 0x01}, + {0xf6e6, 0x01}, + {0xf6e7, 0x01}, + {0xf6e8, 0x01}, + {0xf6e9, 0x01}, + {0xf6ea, 0x01}, + {0xf6eb, 0x01}, + {0xf6ec, 0x01}, + {0xf6ed, 0x01}, + {0xf6ee, 0x01}, + {0xf6ef, 0x01}, + {0xf6f0, 0x01}, + {0xf6f1, 0x01}, + {0xf6f2, 0x01}, + {0xf6f3, 0x01}, + {0xf6f4, 0x01}, + {0xf6f5, 0x01}, + {0xf6f6, 0x01}, + {0xf6f7, 0x01}, + {0xf6f8, 0x01}, + {0xf6f9, 0x01}, + {0xf6fa, 0x01}, + {0xf6fb, 0x01}, + {0xf6fc, 0x01}, + {0xf6fd, 0x01}, + {0xf6fe, 0x01}, + {0xf740, 0x01}, + {0xf741, 0x01}, + {0xf742, 0x01}, + {0xf743, 0x01}, + {0xf744, 0x01}, + {0xf745, 0x01}, + {0xf746, 0x01}, + {0xf747, 0x01}, + {0xf748, 0x01}, + {0xf749, 0x01}, + {0xf74a, 0x01}, + {0xf74b, 0x01}, + {0xf74c, 0x01}, + {0xf74d, 0x01}, + {0xf74e, 0x01}, + {0xf74f, 0x01}, + {0xf750, 0x01}, + {0xf751, 0x01}, + {0xf752, 0x01}, + {0xf753, 0x01}, + {0xf754, 0x01}, + {0xf755, 0x01}, + {0xf756, 0x01}, + {0xf757, 0x01}, + {0xf758, 0x01}, + {0xf759, 0x01}, + {0xf75a, 0x01}, + {0xf75b, 0x01}, + {0xf75c, 0x01}, + {0xf75d, 0x01}, + {0xf75e, 0x01}, + {0xf75f, 0x01}, + {0xf760, 0x01}, + {0xf761, 0x01}, + {0xf762, 0x01}, + {0xf763, 0x01}, + {0xf764, 0x01}, + {0xf765, 0x01}, + {0xf766, 0x01}, + {0xf767, 0x01}, + {0xf768, 0x01}, + {0xf769, 0x01}, + {0xf76a, 0x01}, + {0xf76b, 0x01}, + {0xf76c, 0x01}, + {0xf76d, 0x01}, + {0xf76e, 0x01}, + {0xf76f, 0x01}, + {0xf770, 0x01}, + {0xf771, 0x01}, + {0xf772, 0x01}, + {0xf773, 0x01}, + {0xf774, 0x01}, + {0xf775, 0x01}, + {0xf776, 0x01}, + {0xf777, 0x01}, + {0xf778, 0x01}, + {0xf779, 0x01}, + {0xf77a, 0x01}, + {0xf77b, 0x01}, + {0xf77c, 0x01}, + {0xf77d, 0x01}, + {0xf77e, 0x01}, + {0xf780, 0x01}, + {0xf781, 0x01}, + {0xf782, 0x01}, + {0xf783, 0x01}, + {0xf784, 0x01}, + {0xf785, 0x01}, + {0xf786, 0x01}, + {0xf787, 0x01}, + {0xf788, 0x01}, + {0xf789, 0x01}, + {0xf78a, 0x01}, + {0xf78b, 0x01}, + {0xf78c, 0x01}, + {0xf78d, 0x01}, + {0xf78e, 0x01}, + {0xf78f, 0x01}, + {0xf790, 0x01}, + {0xf791, 0x01}, + {0xf792, 0x01}, + {0xf793, 0x01}, + {0xf794, 0x01}, + {0xf795, 0x01}, + {0xf796, 0x01}, + {0xf797, 0x01}, + {0xf798, 0x01}, + {0xf799, 0x01}, + {0xf79a, 0x01}, + {0xf79b, 0x01}, + {0xf79c, 0x01}, + {0xf79d, 0x01}, + {0xf79e, 0x01}, + {0xf79f, 0x01}, + {0xf7a0, 0x01}, + {0xf7a1, 0x01}, + {0xf7a2, 0x01}, + {0xf7a3, 0x01}, + {0xf7a4, 0x01}, + {0xf7a5, 0x01}, + {0xf7a6, 0x01}, + {0xf7a7, 0x01}, + {0xf7a8, 0x01}, + {0xf7a9, 0x01}, + {0xf7aa, 0x01}, + {0xf7ab, 0x01}, + {0xf7ac, 0x01}, + {0xf7ad, 0x01}, + {0xf7ae, 0x01}, + {0xf7af, 0x01}, + {0xf7b0, 0x01}, + {0xf7b1, 0x01}, + {0xf7b2, 0x01}, + {0xf7b3, 0x01}, + {0xf7b4, 0x01}, + {0xf7b5, 0x01}, + {0xf7b6, 0x01}, + {0xf7b7, 0x01}, + {0xf7b8, 0x01}, + {0xf7b9, 0x01}, + {0xf7ba, 0x01}, + {0xf7bb, 0x01}, + {0xf7bc, 0x01}, + {0xf7bd, 0x01}, + {0xf7be, 0x01}, + {0xf7bf, 0x01}, + {0xf7c0, 0x01}, + {0xf7c1, 0x01}, + {0xf7c2, 0x01}, + {0xf7c3, 0x01}, + {0xf7c4, 0x01}, + {0xf7c5, 0x01}, + {0xf7c6, 0x01}, + {0xf7c7, 0x01}, + {0xf7c8, 0x01}, + {0xf7c9, 0x01}, + {0xf7ca, 0x01}, + {0xf7cb, 0x01}, + {0xf7cc, 0x01}, + {0xf7cd, 0x01}, + {0xf7ce, 0x01}, + {0xf7cf, 0x01}, + {0xf7d0, 0x01}, + {0xf7d1, 0x01}, + {0xf7d2, 0x01}, + {0xf7d3, 0x01}, + {0xf7d4, 0x01}, + {0xf7d5, 0x01}, + {0xf7d6, 0x01}, + {0xf7d7, 0x01}, + {0xf7d8, 0x01}, + {0xf7d9, 0x01}, + {0xf7da, 0x01}, + {0xf7db, 0x01}, + {0xf7dc, 0x01}, + {0xf7dd, 0x01}, + {0xf7de, 0x01}, + {0xf7df, 0x01}, + {0xf7e0, 0x01}, + {0xf7e1, 0x01}, + {0xf7e2, 0x01}, + {0xf7e3, 0x01}, + {0xf7e4, 0x01}, + {0xf7e5, 0x01}, + {0xf7e6, 0x01}, + {0xf7e7, 0x01}, + {0xf7e8, 0x01}, + {0xf7e9, 0x01}, + {0xf7ea, 0x01}, + {0xf7eb, 0x01}, + {0xf7ec, 0x01}, + {0xf7ed, 0x01}, + {0xf7ee, 0x01}, + {0xf7ef, 0x01}, + {0xf7f0, 0x01}, + {0xf7f1, 0x01}, + {0xf7f2, 0x01}, + {0xf7f3, 0x01}, + {0xf7f4, 0x01}, + {0xf7f5, 0x01}, + {0xf7f6, 0x01}, + {0xf7f7, 0x01}, + {0xf7f8, 0x01}, + {0xf7f9, 0x01}, + {0xf7fa, 0x01}, + {0xf7fb, 0x01}, + {0xf7fc, 0x01}, + {0xf7fd, 0x01}, + {0xf7fe, 0x01}, + {0xf840, 0x01}, + {0xf841, 0x01}, + {0xf842, 0x01}, + {0xf843, 0x01}, + {0xf844, 0x01}, + {0xf845, 0x01}, + {0xf846, 0x01}, + {0xf847, 0x01}, + {0xf848, 0x01}, + {0xf849, 0x01}, + {0xf84a, 0x01}, + {0xf84b, 0x01}, + {0xf84c, 0x01}, + {0xf84d, 0x01}, + {0xf84e, 0x01}, + {0xf84f, 0x01}, + {0xf850, 0x01}, + {0xf851, 0x01}, + {0xf852, 0x01}, + {0xf853, 0x01}, + {0xf854, 0x01}, + {0xf855, 0x01}, + {0xf856, 0x01}, + {0xf857, 0x01}, + {0xf858, 0x01}, + {0xf859, 0x01}, + {0xf85a, 0x01}, + {0xf85b, 0x01}, + {0xf85c, 0x01}, + {0xf85d, 0x01}, + {0xf85e, 0x01}, + {0xf85f, 0x01}, + {0xf860, 0x01}, + {0xf861, 0x01}, + {0xf862, 0x01}, + {0xf863, 0x01}, + {0xf864, 0x01}, + {0xf865, 0x01}, + {0xf866, 0x01}, + {0xf867, 0x01}, + {0xf868, 0x01}, + {0xf869, 0x01}, + {0xf86a, 0x01}, + {0xf86b, 0x01}, + {0xf86c, 0x01}, + {0xf86d, 0x01}, + {0xf86e, 0x01}, + {0xf86f, 0x01}, + {0xf870, 0x01}, + {0xf871, 0x01}, + {0xf872, 0x01}, + {0xf873, 0x01}, + {0xf874, 0x01}, + {0xf875, 0x01}, + {0xf876, 0x01}, + {0xf877, 0x01}, + {0xf878, 0x01}, + {0xf879, 0x01}, + {0xf87a, 0x01}, + {0xf87b, 0x01}, + {0xf87c, 0x01}, + {0xf87d, 0x01}, + {0xf87e, 0x01}, + {0xf880, 0x01}, + {0xf881, 0x01}, + {0xf882, 0x01}, + {0xf883, 0x01}, + {0xf884, 0x01}, + {0xf885, 0x01}, + {0xf886, 0x01}, + {0xf887, 0x01}, + {0xf888, 0x01}, + {0xf889, 0x01}, + {0xf88a, 0x01}, + {0xf88b, 0x01}, + {0xf88c, 0x01}, + {0xf88d, 0x01}, + {0xf88e, 0x01}, + {0xf88f, 0x01}, + {0xf890, 0x01}, + {0xf891, 0x01}, + {0xf892, 0x01}, + {0xf893, 0x01}, + {0xf894, 0x01}, + {0xf895, 0x01}, + {0xf896, 0x01}, + {0xf897, 0x01}, + {0xf898, 0x01}, + {0xf899, 0x01}, + {0xf89a, 0x01}, + {0xf89b, 0x01}, + {0xf89c, 0x01}, + {0xf89d, 0x01}, + {0xf89e, 0x01}, + {0xf89f, 0x01}, + {0xf8a0, 0x01}, + {0xf940, 0x01}, + {0xf941, 0x01}, + {0xf942, 0x01}, + {0xf943, 0x01}, + {0xf944, 0x01}, + {0xf945, 0x01}, + {0xf946, 0x01}, + {0xf947, 0x01}, + {0xf948, 0x01}, + {0xf949, 0x01}, + {0xf94a, 0x01}, + {0xf94b, 0x01}, + {0xf94c, 0x01}, + {0xf94d, 0x01}, + {0xf94e, 0x01}, + {0xf94f, 0x01}, + {0xf950, 0x01}, + {0xf951, 0x01}, + {0xf952, 0x01}, + {0xf953, 0x01}, + {0xf954, 0x01}, + {0xf955, 0x01}, + {0xf956, 0x01}, + {0xf957, 0x01}, + {0xf958, 0x01}, + {0xf959, 0x01}, + {0xf95a, 0x01}, + {0xf95b, 0x01}, + {0xf95c, 0x01}, + {0xf95d, 0x01}, + {0xf95e, 0x01}, + {0xf95f, 0x01}, + {0xf960, 0x01}, + {0xf961, 0x01}, + {0xf962, 0x01}, + {0xf963, 0x01}, + {0xf964, 0x01}, + {0xf965, 0x01}, + {0xf966, 0x01}, + {0xf967, 0x01}, + {0xf968, 0x01}, + {0xf969, 0x01}, + {0xf96a, 0x01}, + {0xf96b, 0x01}, + {0xf96c, 0x01}, + {0xf96d, 0x01}, + {0xf96e, 0x01}, + {0xf96f, 0x01}, + {0xf970, 0x01}, + {0xf971, 0x01}, + {0xf972, 0x01}, + {0xf973, 0x01}, + {0xf974, 0x01}, + {0xf975, 0x01}, + {0xf976, 0x01}, + {0xf977, 0x01}, + {0xf978, 0x01}, + {0xf979, 0x01}, + {0xf97a, 0x01}, + {0xf97b, 0x01}, + {0xf97c, 0x01}, + {0xf97d, 0x01}, + {0xf97e, 0x01}, + {0xf980, 0x01}, + {0xf981, 0x01}, + {0xf982, 0x01}, + {0xf983, 0x01}, + {0xf984, 0x01}, + {0xf985, 0x01}, + {0xf986, 0x01}, + {0xf987, 0x01}, + {0xf988, 0x01}, + {0xf989, 0x01}, + {0xf98a, 0x01}, + {0xf98b, 0x01}, + {0xf98c, 0x01}, + {0xf98d, 0x01}, + {0xf98e, 0x01}, + {0xf990, 0x01}, + {0xf991, 0x01}, + {0xf992, 0x01}, + {0xf993, 0x01}, + {0xf994, 0x01}, + {0xf995, 0x01}, + {0xf996, 0x01}, + {0xf997, 0x01}, + {0xf998, 0x01}, + {0xf999, 0x01}, + {0xf99a, 0x01}, + {0xf99b, 0x01}, + {0xf99c, 0x01}, + {0xf99d, 0x01}, + {0xf99e, 0x01}, + {0xf99f, 0x01}, + {0xf9a0, 0x01}, + {0xfa40, 0x01}, + {0xfa41, 0x01}, + {0xfa42, 0x01}, + {0xfa43, 0x01}, + {0xfa44, 0x01}, + {0xfa45, 0x01}, + {0xfa46, 0x01}, + {0xfa47, 0x01}, + {0xfa48, 0x01}, + {0xfa49, 0x01}, + {0xfa4a, 0x01}, + {0xfa4b, 0x01}, + {0xfa4c, 0x01}, + {0xfa4d, 0x01}, + {0xfa4e, 0x01}, + {0xfa4f, 0x01}, + {0xfa50, 0x01}, + {0xfa51, 0x01}, + {0xfa52, 0x01}, + {0xfa53, 0x01}, + {0xfa54, 0x01}, + {0xfa55, 0x01}, + {0xfa56, 0x01}, + {0xfa57, 0x01}, + {0xfa58, 0x01}, + {0xfa59, 0x01}, + {0xfa5a, 0x01}, + {0xfa5b, 0x01}, + {0xfa5c, 0x01}, + {0xfa5d, 0x01}, + {0xfa5e, 0x01}, + {0xfa5f, 0x01}, + {0xfa60, 0x01}, + {0xfa61, 0x01}, + {0xfa62, 0x01}, + {0xfa63, 0x01}, + {0xfa64, 0x01}, + {0xfa65, 0x01}, + {0xfa66, 0x01}, + {0xfa67, 0x01}, + {0xfa68, 0x01}, + {0xfa69, 0x01}, + {0xfa6a, 0x01}, + {0xfa6b, 0x01}, + {0xfa6c, 0x01}, + {0xfa6d, 0x01}, + {0xfa6e, 0x01}, + {0xfa6f, 0x01}, + {0xfa70, 0x01}, + {0xfa71, 0x01}, + {0xfa72, 0x01}, + {0xfa73, 0x01}, + {0xfa74, 0x01}, + {0xfa75, 0x01}, + {0xfa76, 0x01}, + {0xfa77, 0x01}, + {0xfa78, 0x01}, + {0xfa79, 0x01}, + {0xfa7a, 0x01}, + {0xfa7b, 0x01}, + {0xfa7c, 0x01}, + {0xfa7d, 0x01}, + {0xfa7e, 0x01}, + {0xfa80, 0x01}, + {0xfa81, 0x01}, + {0xfa82, 0x01}, + {0xfa83, 0x01}, + {0xfa84, 0x01}, + {0xfa85, 0x01}, + {0xfa86, 0x01}, + {0xfa87, 0x01}, + {0xfa88, 0x01}, + {0xfa89, 0x01}, + {0xfa8a, 0x01}, + {0xfa8b, 0x01}, + {0xfa8c, 0x01}, + {0xfa8d, 0x01}, + {0xfa8e, 0x01}, + {0xfa8f, 0x01}, + {0xfa90, 0x01}, + {0xfa91, 0x01}, + {0xfa92, 0x01}, + {0xfa93, 0x01}, + {0xfa94, 0x01}, + {0xfa95, 0x01}, + {0xfa96, 0x01}, + {0xfa97, 0x01}, + {0xfa98, 0x01}, + {0xfa99, 0x01}, + {0xfa9a, 0x01}, + {0xfa9b, 0x01}, + {0xfa9c, 0x01}, + {0xfa9d, 0x01}, + {0xfa9e, 0x01}, + {0xfa9f, 0x01}, + {0xfaa0, 0x01}, + {0xfb40, 0x01}, + {0xfb41, 0x01}, + {0xfb42, 0x01}, + {0xfb43, 0x01}, + {0xfb44, 0x01}, + {0xfb45, 0x01}, + {0xfb46, 0x01}, + {0xfb47, 0x01}, + {0xfb48, 0x01}, + {0xfb49, 0x01}, + {0xfb4a, 0x01}, + {0xfb4b, 0x01}, + {0xfb4c, 0x01}, + {0xfb4d, 0x01}, + {0xfb4e, 0x01}, + {0xfb4f, 0x01}, + {0xfb50, 0x01}, + {0xfb51, 0x01}, + {0xfb52, 0x01}, + {0xfb53, 0x01}, + {0xfb54, 0x01}, + {0xfb55, 0x01}, + {0xfb56, 0x01}, + {0xfb57, 0x01}, + {0xfb58, 0x01}, + {0xfb59, 0x01}, + {0xfb5a, 0x01}, + {0xfb5b, 0x01}, + {0xfb5c, 0x01}, + {0xfb5d, 0x01}, + {0xfb5e, 0x01}, + {0xfb5f, 0x01}, + {0xfb60, 0x01}, + {0xfb61, 0x01}, + {0xfb62, 0x01}, + {0xfb63, 0x01}, + {0xfb64, 0x01}, + {0xfb65, 0x01}, + {0xfb66, 0x01}, + {0xfb67, 0x01}, + {0xfb68, 0x01}, + {0xfb69, 0x01}, + {0xfb6a, 0x01}, + {0xfb6b, 0x01}, + {0xfb6c, 0x01}, + {0xfb6d, 0x01}, + {0xfb6e, 0x01}, + {0xfb6f, 0x01}, + {0xfb70, 0x01}, + {0xfb71, 0x01}, + {0xfb72, 0x01}, + {0xfb73, 0x01}, + {0xfb74, 0x01}, + {0xfb75, 0x01}, + {0xfb76, 0x01}, + {0xfb77, 0x01}, + {0xfb78, 0x01}, + {0xfb79, 0x01}, + {0xfb7a, 0x01}, + {0xfb7b, 0x01}, + {0xfb7c, 0x01}, + {0xfb7d, 0x01}, + {0xfb7e, 0x01}, + {0xfb80, 0x01}, + {0xfb81, 0x01}, + {0xfb82, 0x01}, + {0xfb83, 0x01}, + {0xfb84, 0x01}, + {0xfb85, 0x01}, + {0xfb86, 0x01}, + {0xfb87, 0x01}, + {0xfb88, 0x01}, + {0xfb89, 0x01}, + {0xfb8a, 0x01}, + {0xfb8b, 0x01}, + {0xfb8c, 0x01}, + {0xfb8d, 0x01}, + {0xfb8e, 0x01}, + {0xfb8f, 0x01}, + {0xfb90, 0x01}, + {0xfb91, 0x01}, + {0xfb92, 0x01}, + {0xfb93, 0x01}, + {0xfb94, 0x01}, + {0xfb95, 0x01}, + {0xfb96, 0x01}, + {0xfb97, 0x01}, + {0xfb98, 0x01}, + {0xfb99, 0x01}, + {0xfb9a, 0x01}, + {0xfb9b, 0x01}, + {0xfb9c, 0x01}, + {0xfb9d, 0x01}, + {0xfb9e, 0x01}, + {0xfb9f, 0x01}, + {0xfba0, 0x01}, + {0xfc40, 0x01}, + {0xfc41, 0x01}, + {0xfc42, 0x01}, + {0xfc43, 0x01}, + {0xfc44, 0x01}, + {0xfc45, 0x01}, + {0xfc46, 0x01}, + {0xfc47, 0x01}, + {0xfc48, 0x01}, + {0xfc49, 0x01}, + {0xfc4a, 0x01}, + {0xfc4b, 0x01}, + {0xfc4c, 0x01}, + {0xfc4d, 0x01}, + {0xfc4e, 0x01}, + {0xfc4f, 0x01}, + {0xfc50, 0x01}, + {0xfc51, 0x01}, + {0xfc52, 0x01}, + {0xfc53, 0x01}, + {0xfc54, 0x01}, + {0xfc55, 0x01}, + {0xfc56, 0x01}, + {0xfc57, 0x01}, + {0xfc58, 0x01}, + {0xfc59, 0x01}, + {0xfc5a, 0x01}, + {0xfc5b, 0x01}, + {0xfc5c, 0x01}, + {0xfc5d, 0x01}, + {0xfc5e, 0x01}, + {0xfc5f, 0x01}, + {0xfc60, 0x01}, + {0xfc61, 0x01}, + {0xfc62, 0x01}, + {0xfc63, 0x01}, + {0xfc64, 0x01}, + {0xfc65, 0x01}, + {0xfc66, 0x01}, + {0xfc67, 0x01}, + {0xfc68, 0x01}, + {0xfc69, 0x01}, + {0xfc6a, 0x01}, + {0xfc6b, 0x01}, + {0xfc6c, 0x01}, + {0xfc6d, 0x01}, + {0xfc6e, 0x01}, + {0xfc6f, 0x01}, + {0xfc70, 0x01}, + {0xfc71, 0x01}, + {0xfc72, 0x01}, + {0xfc73, 0x01}, + {0xfc74, 0x01}, + {0xfc75, 0x01}, + {0xfc76, 0x01}, + {0xfc77, 0x01}, + {0xfc78, 0x01}, + {0xfc79, 0x01}, + {0xfc7a, 0x01}, + {0xfc7b, 0x01}, + {0xfc7c, 0x01}, + {0xfc7d, 0x01}, + {0xfc7e, 0x01}, + {0xfc80, 0x01}, + {0xfc81, 0x01}, + {0xfc82, 0x01}, + {0xfc83, 0x01}, + {0xfc84, 0x01}, + {0xfc85, 0x01}, + {0xfc86, 0x01}, + {0xfc87, 0x01}, + {0xfc88, 0x01}, + {0xfc89, 0x01}, + {0xfc8a, 0x01}, + {0xfc8b, 0x01}, + {0xfc8c, 0x01}, + {0xfc8d, 0x01}, + {0xfc8e, 0x01}, + {0xfc8f, 0x01}, + {0xfc90, 0x01}, + {0xfc91, 0x01}, + {0xfc92, 0x01}, + {0xfc93, 0x01}, + {0xfc94, 0x01}, + {0xfc95, 0x01}, + {0xfc96, 0x01}, + {0xfc97, 0x01}, + {0xfc98, 0x01}, + {0xfc99, 0x01}, + {0xfc9a, 0x01}, + {0xfc9b, 0x01}, + {0xfc9c, 0x01}, + {0xfc9d, 0x01}, + {0xfc9e, 0x01}, + {0xfc9f, 0x01}, + {0xfca0, 0x01}, + {0xfd40, 0x01}, + {0xfd41, 0x01}, + {0xfd42, 0x01}, + {0xfd43, 0x01}, + {0xfd44, 0x01}, + {0xfd45, 0x01}, + {0xfd46, 0x01}, + {0xfd47, 0x01}, + {0xfd48, 0x01}, + {0xfd49, 0x01}, + {0xfd4a, 0x01}, + {0xfd4b, 0x01}, + {0xfd4c, 0x01}, + {0xfd4d, 0x01}, + {0xfd4e, 0x01}, + {0xfd4f, 0x01}, + {0xfd50, 0x01}, + {0xfd51, 0x01}, + {0xfd52, 0x01}, + {0xfd53, 0x01}, + {0xfd54, 0x01}, + {0xfd55, 0x01}, + {0xfd56, 0x01}, + {0xfd57, 0x01}, + {0xfd58, 0x01}, + {0xfd59, 0x01}, + {0xfd5a, 0x01}, + {0xfd5b, 0x01}, + {0xfd5c, 0x01}, + {0xfd5d, 0x01}, + {0xfd5e, 0x01}, + {0xfd5f, 0x01}, + {0xfd60, 0x01}, + {0xfd61, 0x01}, + {0xfd62, 0x01}, + {0xfd63, 0x01}, + {0xfd64, 0x01}, + {0xfd65, 0x01}, + {0xfd66, 0x01}, + {0xfd67, 0x01}, + {0xfd68, 0x01}, + {0xfd69, 0x01}, + {0xfd6a, 0x01}, + {0xfd6b, 0x01}, + {0xfd6c, 0x01}, + {0xfd6d, 0x01}, + {0xfd6e, 0x01}, + {0xfd6f, 0x01}, + {0xfd70, 0x01}, + {0xfd71, 0x01}, + {0xfd72, 0x01}, + {0xfd73, 0x01}, + {0xfd74, 0x01}, + {0xfd75, 0x01}, + {0xfd76, 0x01}, + {0xfd77, 0x01}, + {0xfd78, 0x01}, + {0xfd79, 0x01}, + {0xfd7a, 0x01}, + {0xfd7b, 0x01}, + {0xfd7c, 0x01}, + {0xfd7d, 0x01}, + {0xfd7e, 0x01}, + {0xfd80, 0x01}, + {0xfd81, 0x01}, + {0xfd82, 0x01}, + {0xfd83, 0x01}, + {0xfd84, 0x01}, + {0xfd85, 0x01}, + {0xfd86, 0x01}, + {0xfd87, 0x01}, + {0xfd88, 0x01}, + {0xfd89, 0x01}, + {0xfd8a, 0x01}, + {0xfd8b, 0x01}, + {0xfd8c, 0x01}, + {0xfd8d, 0x01}, + {0xfd8e, 0x01}, + {0xfd8f, 0x01}, + {0xfd90, 0x01}, + {0xfd91, 0x01}, + {0xfd92, 0x01}, + {0xfd93, 0x01}, + {0xfd94, 0x01}, + {0xfd95, 0x01}, + {0xfd96, 0x01}, + {0xfd97, 0x01}, + {0xfd98, 0x01}, + {0xfd99, 0x01}, + {0xfd9a, 0x01}, + {0xfd9b, 0x01}, + {0xfe55, 0x01}, + {0xfe56, 0x01}, + {0xfe5a, 0x01}, + {0xfe5b, 0x01}, + {0xfe5c, 0x01}, + {0xfe5f, 0x01}, + {0xfe60, 0x01}, + {0xfe62, 0x01}, + {0xfe63, 0x01}, + {0xfe64, 0x01}, + {0xfe65, 0x01}, + {0xfe68, 0x01}, + {0xfe69, 0x01}, + {0xfe6a, 0x01}, + {0xfe6f, 0x01}, + {0xfe70, 0x01}, + {0xfe72, 0x01}, + {0xfe77, 0x01}, + {0xfe78, 0x01}, + {0xfe7a, 0x01}, + {0xfe7b, 0x01}, + {0xfe7c, 0x01}, + {0xfe7d, 0x01}, + {0xfe80, 0x01}, + {0xfe81, 0x01}, + {0xfe82, 0x01}, + {0xfe83, 0x01}, + {0xfe85, 0x01}, + {0xfe86, 0x01}, + {0xfe87, 0x01}, + {0xfe88, 0x01}, + {0xfe89, 0x01}, + {0xfe8a, 0x01}, + {0xfe8b, 0x01}, + {0xfe8c, 0x01}, + {0xfe8d, 0x01}, + {0xfe8e, 0x01}, + {0xfe8f, 0x01}, + {0xfe92, 0x01}, + {0xfe93, 0x01}, + {0xfe94, 0x01}, + {0xfe95, 0x01}, + {0xfe96, 0x01}, + {0xfe97, 0x01}, + {0xfe98, 0x01}, + {0xfe99, 0x01}, + {0xfe9a, 0x01}, + {0xfe9b, 0x01}, + {0xfe9c, 0x01}, + {0xfe9d, 0x01}, + {0xfe9e, 0x01}, + {0xfe9f, 0x01}, + {0x81308134, 0x03}, + {0x81308135, 0x02}, + {0x81308432, 0x43}, + {0x81308433, 0x44}, + {0x81308434, 0x01}, + {0x81308435, 0x01}, + {0x81308436, 0x01}, + {0x81308437, 0x45}, + {0x81308438, 0x48}, + {0x81308530, 0x49}, + {0x81308531, 0x4a}, + {0x81308532, 0x4b}, + {0x81308533, 0x4c}, + {0x81308534, 0x4d}, + {0x81308535, 0x07}, + {0x81308536, 0x07}, + {0x81308537, 0x50}, + {0x81308538, 0x03}, + {0x81308539, 0x51}, + {0x81308630, 0x53}, + {0x81308631, 0x07}, + {0x81308632, 0x0a}, + {0x81308633, 0x54}, + {0x81308634, 0x01}, + {0x81308635, 0x01}, + {0x81308636, 0x01}, + {0x81308637, 0x55}, + {0x81308638, 0x06}, + {0x81308639, 0x06}, + {0x81308730, 0x06}, + {0x81308731, 0x06}, + {0x81308732, 0x06}, + {0x81308733, 0x06}, + {0x81308734, 0x03}, + {0x81308735, 0x07}, + {0x81308736, 0x07}, + {0x81308737, 0x07}, + {0x81308738, 0x07}, + {0x81308739, 0x07}, + {0x81308830, 0x08}, + {0x81308831, 0x08}, + {0x81308832, 0x08}, + {0x81308833, 0x08}, + {0x81308834, 0x03}, + {0x81308835, 0x06}, + {0x81308836, 0x07}, + {0x81308837, 0x07}, + {0x81308838, 0x07}, + {0x81308839, 0x07}, + {0x81308930, 0x07}, + {0x81308931, 0x03}, + {0x81308932, 0x06}, + {0x81308933, 0x06}, + {0x81308934, 0x06}, + {0x81308935, 0x06}, + {0x81308936, 0x06}, + {0x81308937, 0x03}, + {0x81308938, 0x0202}, + {0x81308939, 0x02}, + {0x81308a30, 0x02}, + {0x81308a31, 0x02}, + {0x81308a32, 0x02}, + {0x81308a33, 0x02}, + {0x81308a34, 0x02}, + {0x81308a35, 0x02}, + {0x81308a36, 0x02}, + {0x81308a37, 0x02}, + {0x81308a38, 0x02}, + {0x81308a39, 0x02}, + {0x81308b30, 0x02}, + {0x81308b31, 0x02}, + {0x81308b32, 0x02}, + {0x81308b33, 0x02}, + {0x81308b34, 0x02}, + {0x81308b35, 0x02}, + {0x81308b36, 0x02}, + {0x81308b37, 0x02}, + {0x81308b38, 0x06}, + {0x81308b39, 0x06}, + {0x81308c30, 0x02}, + {0x81308c31, 0x06}, + {0x81308c32, 0x02}, + {0x81308c33, 0x07}, + {0x81308c34, 0x02}, + {0x81308c35, 0x07}, + {0x81308c36, 0x02}, + {0x81308c37, 0x07}, + {0x81308c38, 0x02}, + {0x81308c39, 0x07}, + {0x81308d30, 0x02}, + {0x81308d31, 0x07}, + {0x81308d32, 0x02}, + {0x81308d33, 0x03}, + {0x81308d34, 0x02}, + {0x81308d35, 0x07}, + {0x81308d36, 0x07}, + {0x81308d37, 0x02}, + {0x81308d38, 0x07}, + {0x81308d39, 0x02}, + {0x81308e30, 0x07}, + {0x81308e31, 0x02}, + {0x81308e32, 0x07}, + {0x81308e33, 0x07}, + {0x81308e34, 0x02}, + {0x81308e35, 0x07}, + {0x81308e36, 0x02}, + {0x81308e37, 0x07}, + {0x81308e38, 0x02}, + {0x81308e39, 0x07}, + {0x81308f30, 0x02}, + {0x81308f31, 0x07}, + {0x81308f32, 0x02}, + {0x81308f33, 0x04}, + {0x81308f34, 0x02}, + {0x81308f35, 0x08}, + {0x81308f36, 0x02}, + {0x81308f37, 0x08}, + {0x81308f38, 0x08}, + {0x81308f39, 0x02}, + {0x81309030, 0x08}, + {0x81309031, 0x02}, + {0x81309032, 0x08}, + {0x81309033, 0x07}, + {0x81309034, 0x0806}, + {0x81309035, 0x0202}, + {0x81309036, 0x06}, + {0x81309037, 0x02}, + {0x81309038, 0x06}, + {0x81309039, 0x02}, + {0x81309130, 0x01}, + {0x81309131, 0x09}, + {0x81309132, 0x02}, + {0x81309133, 0x09}, + {0x81309134, 0x02}, + {0x81309135, 0x09}, + {0x81309136, 0x02}, + {0x81309137, 0x0b}, + {0x81309138, 0x04}, + {0x81309139, 0x03}, + {0x81309230, 0x02}, + {0x81309231, 0x06}, + {0x81309232, 0x06}, + {0x81309233, 0x02}, + {0x81309234, 0x06}, + {0x81309236, 0x03}, + {0x81309237, 0x02}, + {0x81309238, 0x07}, + {0x81309239, 0x07}, + {0x81309330, 0x02}, + {0x81309331, 0x07}, + {0x81309332, 0x02}, + {0x81309333, 0x0707}, + {0x81309334, 0x0202}, + {0x81309335, 0x06}, + {0x81309336, 0x02}, + {0x81309337, 0x06}, + {0x81309338, 0x02}, + {0x81309339, 0x06}, + {0x81309430, 0x02}, + {0x81309431, 0x06}, + {0x81309432, 0x02}, + {0x81309433, 0x06}, + {0x81309434, 0x02}, + {0x81309435, 0x06}, + {0x81309436, 0x02}, + {0x81309437, 0x06}, + {0x81309438, 0x02}, + {0x81309439, 0x06}, + {0x81309530, 0x02}, + {0x81309531, 0x06}, + {0x81309532, 0x02}, + {0x81309533, 0x03}, + {0x81309534, 0x02}, + {0x81309535, 0x06}, + {0x81309536, 0x02}, + {0x81309537, 0x06}, + {0x81309538, 0x06}, + {0x81309539, 0x02}, + {0x81309630, 0x06}, + {0x81309631, 0x02}, + {0x81309632, 0x06}, + {0x81309633, 0x02}, + {0x81309634, 0x06}, + {0x81309635, 0x02}, + {0x81309636, 0x06}, + {0x81309637, 0x02}, + {0x81309638, 0x06}, + {0x81309639, 0x02}, + {0x81309730, 0x06}, + {0x81309731, 0x06}, + {0x81309732, 0x02}, + {0x81309733, 0x06}, + {0x81309734, 0x02}, + {0x81309735, 0x06}, + {0x81309736, 0x02}, + {0x81309737, 0x0a}, + {0x81309738, 0x01}, + {0x81309739, 0x03}, + {0x81309830, 0x03}, + {0x81309831, 0x02}, + {0x81309834, 0x03}, + {0x81309835, 0x03}, + {0x81309836, 0x02}, + {0x81309837, 0x03}, + {0x81309838, 0x03}, + {0x81309839, 0x03}, + {0x81309930, 0x02}, + {0x81309931, 0x01}, + {0x81309932, 0x03}, + {0x81309933, 0x03}, + {0x81309934, 0x03}, + {0x81309935, 0x03}, + {0x81309936, 0x02}, + {0x81309937, 0x03}, + {0x81309938, 0x04}, + {0x81309939, 0x02}, + {0x81309a30, 0x03}, + {0x81309a31, 0x03}, + {0x81309a32, 0x03}, + {0x81309a33, 0x02}, + {0x81309a34, 0x01}, + {0x81309a35, 0x01}, + {0x81309a36, 0x03}, + {0x81309a37, 0x03}, + {0x81309a38, 0x01}, + {0x81309a39, 0x03}, + {0x81309b30, 0x07}, + {0x81309b31, 0x02}, + {0x81309b32, 0x03}, + {0x81309b33, 0x02}, + {0x81309b34, 0x03}, + {0x81309b35, 0x02}, + {0x81309b36, 0x03}, + {0x81309b37, 0x03}, + {0x81309b38, 0x02}, + {0x81309b39, 0x03}, + {0x81309c30, 0x01}, + {0x81309c31, 0x01}, + {0x81309c32, 0x03}, + {0x81309c33, 0x02}, + {0x81309c34, 0x03}, + {0x81309c35, 0x06}, + {0x81309c36, 0x02}, + {0x81309c37, 0x03}, + {0x81309c38, 0x03}, + {0x81309c39, 0x03}, + {0x81309d30, 0x02}, + {0x81309d31, 0x03}, + {0x81309d32, 0x02}, + {0x81309d33, 0x03}, + {0x81309d34, 0x03}, + {0x81309d35, 0x02}, + {0x81309d36, 0x01}, + {0x81309d37, 0x01}, + {0x81309d38, 0x03}, + {0x81309d39, 0x02}, + {0x81309e30, 0x01}, + {0x81309e31, 0x02}, + {0x81309e32, 0x01}, + {0x81309e33, 0x01}, + {0x81309e34, 0x01}, + {0x81309e35, 0x01}, + {0x81309e39, 0x0906}, + {0x81309f30, 0x0902}, + {0x81309f31, 0x0202}, + {0x81309f32, 0x0606}, + {0x81309f33, 0x0602}, + {0x81309f34, 0x0202}, + {0x81309f35, 0x06}, + {0x81309f36, 0x08}, + {0x81309f37, 0x07}, + {0x81309f38, 0x06}, + {0x81309f39, 0x06}, + {0x8130a030, 0x06}, + {0x8130a031, 0x06}, + {0x8130a032, 0x06}, + {0x8130a033, 0x02}, + {0x8130a034, 0x06}, + {0x8130a035, 0x02}, + {0x8130a036, 0x06}, + {0x8130a037, 0x02}, + {0x8130a038, 0x03}, + {0x8130a039, 0x02}, + {0x8130a130, 0x03}, + {0x8130a131, 0x02}, + {0x8130a132, 0x07}, + {0x8130a133, 0x02}, + {0x8130a134, 0x06}, + {0x8130a135, 0x02}, + {0x8130a136, 0x07}, + {0x8130a137, 0x02}, + {0x8130a138, 0x07}, + {0x8130a139, 0x02}, + {0x8130a230, 0x03}, + {0x8130a231, 0x02}, + {0x8130a232, 0x02}, + {0x8130a233, 0x0706}, + {0x8130a234, 0x0702}, + {0x8130a235, 0x0202}, + {0x8130a236, 0x07}, + {0x8130a237, 0x02}, + {0x8130a238, 0x03}, + {0x8130a239, 0x03}, + {0x8130a330, 0x06}, + {0x8130a331, 0x06}, + {0x8130a332, 0x02}, + {0x8130a333, 0x03}, + {0x8130a334, 0x02}, + {0x8130a335, 0x03}, + {0x8130a336, 0x02}, + {0x8130a337, 0x06}, + {0x8130a338, 0x02}, + {0x8130a339, 0x06}, + {0x8130a430, 0x02}, + {0x8130a431, 0x07}, + {0x8130a432, 0x02}, + {0x8130a433, 0x07}, + {0x8130a434, 0x02}, + {0x8130a435, 0x08}, + {0x8130a436, 0x02}, + {0x8130a437, 0x08}, + {0x8130a438, 0x02}, + {0x8130a439, 0x07}, + {0x8130a530, 0x02}, + {0x8130a531, 0x07}, + {0x8130a532, 0x02}, + {0x8130a533, 0x06}, + {0x8130a534, 0x02}, + {0x8130a535, 0x06}, + {0x8130a536, 0x0b}, + {0x8130a537, 0x06}, + {0x8130a538, 0x02}, + {0x8130a539, 0x06}, + {0x8130a630, 0x02}, + {0x8130a631, 0x06}, + {0x8130a632, 0x02}, + {0x8130a633, 0x06}, + {0x8130a634, 0x02}, + {0x8130a635, 0x03}, + {0x8130a636, 0x02}, + {0x8130a637, 0x07}, + {0x8130a638, 0x02}, + {0x8130a733, 0x03}, + {0x8130a734, 0x02}, + {0x8130a735, 0x06}, + {0x8130a736, 0x02}, + {0x8130a737, 0x07}, + {0x8130a738, 0x02}, + {0x8130a739, 0x07}, + {0x8130a830, 0x02}, + {0x8130a831, 0x07}, + {0x8130a832, 0x02}, + {0x8130a833, 0x07}, + {0x8130a834, 0x02}, + {0x8130a835, 0x07}, + {0x8130a836, 0x02}, + {0x8130a837, 0x06}, + {0x8130a838, 0x02}, + {0x8130ab37, 0x01}, + {0x8130ab38, 0x01}, + {0x8130ab39, 0x02}, + {0x8130ac30, 0x02}, + {0x8130ac31, 0x01}, + {0x8130ac32, 0x02}, + {0x8130ac33, 0x02}, + {0x8130ac34, 0x01}, + {0x8130ac35, 0x02}, + {0x8130ac36, 0x01}, + {0x8130ac37, 0x02}, + {0x8130ac38, 0x01}, + {0x8130ac39, 0x01}, + {0x8130ad30, 0x01}, + {0x8130ad31, 0x01}, + {0x8130ad32, 0x02}, + {0x8130ad33, 0x01}, + {0x8130ad34, 0x02}, + {0x8130ad35, 0x01}, + {0x8130ad36, 0x01}, + {0x8130ad37, 0x02}, + {0x8130ad38, 0x01}, + {0x8130ad39, 0x02}, + {0x8130ae30, 0x02}, + {0x8130ae31, 0x01}, + {0x8130ae32, 0x01}, + {0x8130ae33, 0x01}, + {0x8130ae34, 0x01}, + {0x8130ae35, 0x01}, + {0x8130ae36, 0x02}, + {0x8130ae37, 0x01}, + {0x8130ae38, 0x01}, + {0x8130ae39, 0x02}, + {0x8130af30, 0x01}, + {0x8130af31, 0x01}, + {0x8130af32, 0x02}, + {0x8130af33, 0x01}, + {0x8130af34, 0x01}, + {0x8130af35, 0x01}, + {0x8130af36, 0x02}, + {0x8130af37, 0x01}, + {0x8130af38, 0x02}, + {0x8130af39, 0x01}, + {0x8130b030, 0x01}, + {0x8130b031, 0x01}, + {0x8130b032, 0x01}, + {0x8130b033, 0x02}, + {0x8130b034, 0x02}, + {0x8130b035, 0x01}, + {0x8130b036, 0x02}, + {0x8130b037, 0x01}, + {0x8130b038, 0x01}, + {0x8130b039, 0x01}, + {0x8130b130, 0x01}, + {0x8130b131, 0x02}, + {0x8130b132, 0x01}, + {0x8130b133, 0x02}, + {0x8130b134, 0x02}, + {0x8130b135, 0x01}, + {0x8130b136, 0x01}, + {0x8130b137, 0x01}, + {0x8130b138, 0x01}, + {0x8130b139, 0x01}, + {0x8130b230, 0x01}, + {0x8130b231, 0x02}, + {0x8130b232, 0x01}, + {0x8130b233, 0x01}, + {0x8130b234, 0x02}, + {0x8130b235, 0x01}, + {0x8130b236, 0x01}, + {0x8130b237, 0x01}, + {0x8130b238, 0x01}, + {0x8130b239, 0x01}, + {0x8130b330, 0x01}, + {0x8130b331, 0x01}, + {0x8130b332, 0x01}, + {0x8130b333, 0x01}, + {0x8130b334, 0x01}, + {0x8130b335, 0x01}, + {0x8130b336, 0x01}, + {0x8130b337, 0x01}, + {0x8130b339, 0x0202}, + {0x8130b430, 0x0201}, + {0x8130b431, 0x0202}, + {0x8130b432, 0x0202}, + {0x8130b433, 0x0201}, + {0x8130b531, 0x0d}, + {0x8130b532, 0x03}, + {0x8130b533, 0x09}, + {0x8130b534, 0x0c}, + {0x8130b535, 0x03}, + {0x8130b536, 0x03}, + {0x8130b537, 0x03}, + {0x8130b538, 0x09}, + {0x8130b539, 0x09}, + {0x8130b632, 0x01}, + {0x8130b633, 0x01}, + {0x8130b634, 0x01}, + {0x8130b635, 0x01}, + {0x8130b636, 0x01}, + {0x8130b637, 0x01}, + {0x8130b638, 0x01}, + {0x8130b934, 0x03}, + {0x8130b935, 0x0f}, + {0x8130b936, 0x09}, + {0x8130b938, 0x03}, + {0x8130c939, 0x47}, + {0x8130ca30, 0x03}, + {0x8130ca32, 0x03}, + {0x8130ca33, 0x03}, + {0x8130ca34, 0x04}, + {0x8130ca36, 0x03}, + {0x8130ca38, 0x03}, + {0x8130ca39, 0x03}, + {0x8130cb30, 0x02}, + {0x8130cb32, 0x04}, + {0x8130cb33, 0x03}, + {0x8130cb34, 0x02}, + {0x8130cb35, 0x02}, + {0x8130cb36, 0x02}, + {0x8130cb37, 0x02}, + {0x8130cb38, 0x02}, + {0x8130cb39, 0x05}, + {0x8130cc30, 0x02}, + {0x8130cc31, 0x02}, + {0x8130cc32, 0x02}, + {0x8130cc33, 0x02}, + {0x8130cc34, 0x02}, + {0x8130cc36, 0x03}, + {0x8130cc37, 0x03}, + {0x8130cc38, 0x04}, + {0x8130cc39, 0x04}, + {0x8130cd30, 0x04}, + {0x8130cd31, 0x03}, + {0x8130cd32, 0x03}, + {0x8130cd36, 0x03}, + {0x8130cd37, 0x02}, + {0x8130cd38, 0x03}, + {0x8130cd39, 0x02}, + {0x8130ce30, 0x03}, + {0x8130ce31, 0x02}, + {0x8130ce32, 0x03}, + {0x8130ce33, 0x02}, + {0x8130ce34, 0x03}, + {0x8130ce35, 0x02}, + {0x8130ce36, 0x03}, + {0x8130ce37, 0x02}, + {0x8130ce38, 0x03}, + {0x8130ce39, 0x02}, + {0x8130cf30, 0x03}, + {0x8130cf31, 0x02}, + {0x8130cf32, 0x03}, + {0x8130cf33, 0x02}, + {0x8130cf34, 0x03}, + {0x8130cf35, 0x02}, + {0x8130cf36, 0x03}, + {0x8130cf37, 0x02}, + {0x8130cf38, 0x03}, + {0x8130cf39, 0x03}, + {0x8130d030, 0x03}, + {0x8130d031, 0x01}, + {0x8130d134, 0x03}, + {0x8130d135, 0x03}, + {0x8130d136, 0x03}, + {0x8130d137, 0x03}, + {0x8130d138, 0x03}, + {0x8130d139, 0x03}, + {0x8130d230, 0x03}, + {0x8130d231, 0x03}, + {0x8130d232, 0x03}, + {0x8130d233, 0x03}, + {0x8130d234, 0x03}, + {0x8130d235, 0x03}, + {0x8130d236, 0x03}, + {0x8130d237, 0x03}, + {0x8130d238, 0x03}, + {0x8130d239, 0x02}, + {0x8130d330, 0x02}, + {0x8130d331, 0x02}, + {0x8130d332, 0x02}, + {0x8130d333, 0x02}, + {0x8130d334, 0x02}, + {0x8130d335, 0x02}, + {0x8130d336, 0x02}, + {0x8130d337, 0x02}, + {0x8130d338, 0x02}, + {0x8130d339, 0x02}, + {0x8130d430, 0x02}, + {0x8130d431, 0x02}, + {0x8130d432, 0x02}, + {0x8130d433, 0x02}, + {0x8130d434, 0x03}, + {0x8130d435, 0x02}, + {0x8130d436, 0x03}, + {0x8130d437, 0x02}, + {0x8130d438, 0x03}, + {0x8130d439, 0x02}, + {0x8130d530, 0x03}, + {0x8130d531, 0x02}, + {0x8130d532, 0x03}, + {0x8130d533, 0x02}, + {0x8130d534, 0x03}, + {0x8130d535, 0x02}, + {0x8130d536, 0x03}, + {0x8130d537, 0x02}, + {0x8130d538, 0x03}, + {0x8130d539, 0x02}, + {0x8130d630, 0x03}, + {0x8130d631, 0x02}, + {0x8130d632, 0x03}, + {0x8130d633, 0x02}, + {0x8130d634, 0x03}, + {0x8130d635, 0x02}, + {0x8130d636, 0x03}, + {0x8130d637, 0x02}, + {0x8130d638, 0x03}, + {0x8130d639, 0x02}, + {0x8130d730, 0x03}, + {0x8130d731, 0x02}, + {0x8130d732, 0x03}, + {0x8130d733, 0x02}, + {0x8130d734, 0x03}, + {0x8130d735, 0x02}, + {0x8130d736, 0x03}, + {0x8130d737, 0x02}, + {0x8130d932, 0x03}, + {0x8130d933, 0x02}, + {0x8130d934, 0x03}, + {0x8130d935, 0x02}, + {0x8130d936, 0x03}, + {0x8130d937, 0x02}, + {0x8130d938, 0x03}, + {0x8130d939, 0x02}, + {0x8130da30, 0x03}, + {0x8130da31, 0x02}, + {0x8130da32, 0x03}, + {0x8130da33, 0x02}, + {0x8130da34, 0x03}, + {0x8130da35, 0x02}, + {0x8130da36, 0x03}, + {0x8130da37, 0x02}, + {0x8130da38, 0x03}, + {0x8130da39, 0x02}, + {0x8130db30, 0x03}, + {0x8130db31, 0x02}, + {0x8130db32, 0x03}, + {0x8130db33, 0x02}, + {0x8130db34, 0x03}, + {0x8130db35, 0x02}, + {0x8130db36, 0x03}, + {0x8130db37, 0x02}, + {0x8130db38, 0x03}, + {0x8130db39, 0x02}, + {0x8130dc30, 0x03}, + {0x8130dc31, 0x02}, + {0x8130dc32, 0x03}, + {0x8130dc33, 0x02}, + {0x8130dc34, 0x03}, + {0x8130dc35, 0x02}, + {0x8130dc36, 0x03}, + {0x8130dc37, 0x02}, + {0x8130dc38, 0x03}, + {0x8130dc39, 0x02}, + {0x8130dd30, 0x03}, + {0x8130dd31, 0x02}, + {0x8130dd32, 0x03}, + {0x8130dd33, 0x02}, + {0x8130dd34, 0x03}, + {0x8130dd35, 0x02}, + {0x8130dd36, 0x03}, + {0x8130dd37, 0x02}, + {0x8130dd38, 0x03}, + {0x8130dd39, 0x02}, + {0x8130de30, 0x01}, + {0x8130de31, 0x03}, + {0x8130de32, 0x02}, + {0x8130de33, 0x03}, + {0x8130de34, 0x02}, + {0x8130de37, 0x03}, + {0x8130de38, 0x02}, + {0x8130df31, 0x03}, + {0x8130df32, 0x02}, + {0x8130df36, 0x03}, + {0x8130df37, 0x02}, + {0x8130df38, 0x03}, + {0x8130df39, 0x02}, + {0x8130e030, 0x03}, + {0x8130e031, 0x02}, + {0x8130e032, 0x03}, + {0x8130e033, 0x02}, + {0x8130e034, 0x03}, + {0x8130e035, 0x02}, + {0x8130e036, 0x03}, + {0x8130e037, 0x02}, + {0x8130e038, 0x03}, + {0x8130e039, 0x02}, + {0x8130e130, 0x03}, + {0x8130e131, 0x02}, + {0x8130e132, 0x03}, + {0x8130e133, 0x02}, + {0x8130e134, 0x03}, + {0x8130e135, 0x02}, + {0x8130e136, 0x03}, + {0x8130e137, 0x02}, + {0x8130e138, 0x03}, + {0x8130e139, 0x02}, + {0x8130e230, 0x03}, + {0x8130e231, 0x02}, + {0x8130e232, 0x03}, + {0x8130e233, 0x02}, + {0x8130e234, 0x03}, + {0x8130e235, 0x02}, + {0x8130e236, 0x03}, + {0x8130e237, 0x02}, + {0x8130e238, 0x03}, + {0x8130e239, 0x02}, + {0x8130e330, 0x03}, + {0x8130e331, 0x02}, + {0x8130e332, 0x03}, + {0x8130e333, 0x02}, + {0x8130e336, 0x03}, + {0x8130e337, 0x02}, + {0x8130e933, 0x03}, + {0x8130e934, 0x03}, + {0x8130e935, 0x03}, + {0x8130e936, 0x03}, + {0x8130e937, 0x03}, + {0x8130e938, 0x03}, + {0x8130e939, 0x03}, + {0x8130ea30, 0x03}, + {0x8130ea31, 0x03}, + {0x8130ea32, 0x03}, + {0x8130ea33, 0x03}, + {0x8130ea34, 0x03}, + {0x8130ea35, 0x03}, + {0x8130ea36, 0x03}, + {0x8130ea37, 0x03}, + {0x8130ea38, 0x03}, + {0x8130ea39, 0x03}, + {0x8130eb30, 0x03}, + {0x8130eb31, 0x03}, + {0x8130eb32, 0x03}, + {0x8130eb33, 0x03}, + {0x8130eb34, 0x03}, + {0x8130eb35, 0x03}, + {0x8130eb36, 0x03}, + {0x8130eb37, 0x03}, + {0x8130eb38, 0x03}, + {0x8130eb39, 0x03}, + {0x8130ec30, 0x03}, + {0x8130ec31, 0x03}, + {0x8130ec32, 0x03}, + {0x8130ec33, 0x03}, + {0x8130ec34, 0x03}, + {0x8130ec35, 0x03}, + {0x8130ec36, 0x03}, + {0x8130ec37, 0x03}, + {0x8130ec38, 0x03}, + {0x8130ec39, 0x03}, + {0x8130ed30, 0x03}, + {0x8130ed33, 0x01}, + {0x8130ee31, 0x02}, + {0x8130ee32, 0x02}, + {0x8130ee33, 0x02}, + {0x8130ee34, 0x02}, + {0x8130ee35, 0x02}, + {0x8130ee36, 0x02}, + {0x8130ee37, 0x02}, + {0x8130ee38, 0x02}, + {0x8130ee39, 0x02}, + {0x8130ef30, 0x02}, + {0x8130ef31, 0x02}, + {0x8130ef32, 0x02}, + {0x8130ef33, 0x02}, + {0x8130ef34, 0x02}, + {0x8130ef35, 0x02}, + {0x8130ef36, 0x02}, + {0x8130ef37, 0x02}, + {0x8130ef38, 0x02}, + {0x8130ef39, 0x02}, + {0x8130f030, 0x02}, + {0x8130f031, 0x02}, + {0x8130f032, 0x02}, + {0x8130f033, 0x02}, + {0x8130f034, 0x02}, + {0x8130f035, 0x02}, + {0x8130f036, 0x02}, + {0x8130f037, 0x02}, + {0x8130f038, 0x02}, + {0x8130f039, 0x02}, + {0x8130f130, 0x02}, + {0x8130f131, 0x02}, + {0x8130f132, 0x02}, + {0x8130f133, 0x02}, + {0x8130f134, 0x02}, + {0x8130f135, 0x02}, + {0x8130f136, 0x02}, + {0x8130f137, 0x02}, + {0x8130f138, 0x02}, + {0x8130f139, 0x0202}, + {0x81318936, 0x07}, + {0x81318937, 0x0a}, + {0x81318938, 0x09}, + {0x81318939, 0x09}, + {0x81318a30, 0x09}, + {0x81318a31, 0x09}, + {0x81318a32, 0x09}, + {0x81318a33, 0x09}, + {0x81318a34, 0x0c}, + {0x81318a35, 0x0c}, + {0x81319830, 0x08}, + {0x81319831, 0x0b}, + {0x81319832, 0x0a}, + {0x81319833, 0x0a}, + {0x81319834, 0x0a}, + {0x81319835, 0x0a}, + {0x81319836, 0x0a}, + {0x81319837, 0x0a}, + {0x81319838, 0x0d}, + {0x81319839, 0x0d}, + {0x8131e530, 0x01}, + {0x8131e531, 0x01}, + {0x8132d531, 0x01}, + {0x81339430, 0x03}, + {0x81339431, 0x03}, + {0x81339432, 0x03}, + {0x81339433, 0x03}, + {0x81339434, 0x03}, + {0x81339435, 0x03}, + {0x81339436, 0x03}, + {0x81339437, 0x03}, + {0x81339438, 0x03}, + {0x81339439, 0x03}, + {0x81339530, 0x03}, + {0x81339531, 0x03}, + {0x81339532, 0x03}, + {0x81339533, 0x03}, + {0x81339534, 0x03}, + {0x81339535, 0x03}, + {0x81339536, 0x03}, + {0x81339537, 0x03}, + {0x81339538, 0x03}, + {0x81339539, 0x03}, + {0x81339630, 0x03}, + {0x81339631, 0x03}, + {0x81339632, 0x03}, + {0x81339633, 0x03}, + {0x81339634, 0x03}, + {0x81339635, 0x03}, + {0x81339636, 0x03}, + {0x81339637, 0x03}, + {0x81339638, 0x03}, + {0x81339639, 0x03}, + {0x81339730, 0x03}, + {0x81339731, 0x03}, + {0x81339732, 0x03}, + {0x81339733, 0x03}, + {0x81339734, 0x03}, + {0x81339735, 0x03}, + {0x81339736, 0x03}, + {0x81339737, 0x03}, + {0x81339838, 0x02}, + {0x81339839, 0x02}, + {0x81339930, 0x02}, + {0x81339931, 0x02}, + {0x81339932, 0x02}, + {0x81339933, 0x02}, + {0x81339934, 0x02}, + {0x81339935, 0x02}, + {0x81339936, 0x02}, + {0x81339937, 0x02}, + {0x81339938, 0x02}, + {0x81339939, 0x02}, + {0x81339a30, 0x02}, + {0x81339a31, 0x02}, + {0x81339a32, 0x02}, + {0x81339a33, 0x02}, + {0x81339a34, 0x02}, + {0x81339a35, 0x02}, + {0x81339a36, 0x02}, + {0x81339a37, 0x02}, + {0x81339a38, 0x02}, + {0x81339a39, 0x02}, + {0x81339b30, 0x02}, + {0x81339b31, 0x02}, + {0x81339b32, 0x02}, + {0x81339b33, 0x02}, + {0x81339b34, 0x02}, + {0x81339b35, 0x02}, + {0x81339b36, 0x02}, + {0x81339b37, 0x02}, + {0x81339b38, 0x02}, + {0x81339b39, 0x02}, + {0x81339c30, 0x02}, + {0x81339c31, 0x02}, + {0x81339c32, 0x02}, + {0x81339c33, 0x02}, + {0x81339c34, 0x02}, + {0x81339c35, 0x02}, + {0x81339c36, 0x01}, + {0x8135ee34, 0x06}, + {0x8135ee35, 0x02}, + {0x8135ee36, 0x06}, + {0x8135ee37, 0x02}, + {0x8135ee38, 0x06}, + {0x8135ee39, 0x02}, + {0x8135ef30, 0x06}, + {0x8135ef31, 0x02}, + {0x8135ef32, 0x07}, + {0x8135ef33, 0x02}, + {0x8135ef34, 0x07}, + {0x8135ef35, 0x02}, + {0x8135ef36, 0x07}, + {0x8135ef37, 0x02}, + {0x8135ef38, 0x07}, + {0x8135ef39, 0x02}, + {0x8135f030, 0x07}, + {0x8135f031, 0x02}, + {0x8135f032, 0x07}, + {0x8135f033, 0x02}, + {0x8135f034, 0x07}, + {0x8135f035, 0x02}, + {0x8135f036, 0x07}, + {0x8135f037, 0x02}, + {0x8135f038, 0x07}, + {0x8135f039, 0x02}, + {0x8135f130, 0x07}, + {0x8135f131, 0x02}, + {0x8135f132, 0x07}, + {0x8135f133, 0x02}, + {0x8135f134, 0x06}, + {0x8135f135, 0x02}, + {0x8135f136, 0x07}, + {0x8135f137, 0x02}, + {0x8135f138, 0x07}, + {0x8135f139, 0x02}, + {0x8135f230, 0x07}, + {0x8135f231, 0x02}, + {0x8135f232, 0x07}, + {0x8135f233, 0x02}, + {0x8135f234, 0x07}, + {0x8135f235, 0x02}, + {0x8135f236, 0x07}, + {0x8135f237, 0x02}, + {0x8135f238, 0x08}, + {0x8135f239, 0x02}, + {0x8135f330, 0x08}, + {0x8135f331, 0x02}, + {0x8135f332, 0x06}, + {0x8135f333, 0x02}, + {0x8135f334, 0x06}, + {0x8135f335, 0x02}, + {0x8135f336, 0x06}, + {0x8135f337, 0x02}, + {0x8135f338, 0x09}, + {0x8135f339, 0x02}, + {0x8135f430, 0x09}, + {0x8135f431, 0x02}, + {0x8135f432, 0x09}, + {0x8135f433, 0x02}, + {0x8135f434, 0x09}, + {0x8135f435, 0x02}, + {0x8135f436, 0x07}, + {0x8135f437, 0x02}, + {0x8135f438, 0x07}, + {0x8135f439, 0x02}, + {0x8135f530, 0x07}, + {0x8135f531, 0x02}, + {0x8135f532, 0x06}, + {0x8135f533, 0x02}, + {0x8135f534, 0x06}, + {0x8135f535, 0x02}, + {0x8135f536, 0x06}, + {0x8135f537, 0x02}, + {0x8135f538, 0x06}, + {0x8135f539, 0x02}, + {0x8135f630, 0x07}, + {0x8135f631, 0x02}, + {0x8135f632, 0x07}, + {0x8135f633, 0x02}, + {0x8135f634, 0x07}, + {0x8135f635, 0x02}, + {0x8135f636, 0x07}, + {0x8135f637, 0x02}, + {0x8135f638, 0x06}, + {0x8135f639, 0x02}, + {0x8135f730, 0x06}, + {0x8135f731, 0x02}, + {0x8135f732, 0x06}, + {0x8135f733, 0x02}, + {0x8135f734, 0x06}, + {0x8135f735, 0x02}, + {0x8135f736, 0x06}, + {0x8135f737, 0x02}, + {0x8135f738, 0x06}, + {0x8135f739, 0x02}, + {0x8135f830, 0x06}, + {0x8135f831, 0x02}, + {0x8135f832, 0x06}, + {0x8135f833, 0x02}, + {0x8135f834, 0x06}, + {0x8135f835, 0x02}, + {0x8135f836, 0x06}, + {0x8135f837, 0x02}, + {0x8135f838, 0x06}, + {0x8135f839, 0x02}, + {0x8135f930, 0x06}, + {0x8135f931, 0x02}, + {0x8135f932, 0x06}, + {0x8135f933, 0x02}, + {0x8135f934, 0x06}, + {0x8135f935, 0x02}, + {0x8135f936, 0x06}, + {0x8135f937, 0x02}, + {0x8135f938, 0x06}, + {0x8135f939, 0x02}, + {0x8135fa30, 0x06}, + {0x8135fa31, 0x02}, + {0x8135fa32, 0x06}, + {0x8135fa33, 0x02}, + {0x8135fa34, 0x06}, + {0x8135fa35, 0x02}, + {0x8135fa36, 0x06}, + {0x8135fa37, 0x02}, + {0x8135fa38, 0x07}, + {0x8135fa39, 0x02}, + {0x8135fb30, 0x07}, + {0x8135fb31, 0x02}, + {0x8135fb32, 0x06}, + {0x8135fb33, 0x02}, + {0x8135fb34, 0x06}, + {0x8135fb35, 0x02}, + {0x8135fb36, 0x06}, + {0x8135fb37, 0x02}, + {0x8135fb38, 0x06}, + {0x8135fb39, 0x02}, + {0x8135fc30, 0x06}, + {0x8135fc31, 0x02}, + {0x8135fc32, 0x07}, + {0x8135fc33, 0x02}, + {0x8135fc34, 0x07}, + {0x8135fc35, 0x02}, + {0x8135fc36, 0x06}, + {0x8135fc37, 0x02}, + {0x8135fc38, 0x06}, + {0x8135fc39, 0x02}, + {0x8135fd30, 0x06}, + {0x8135fd31, 0x02}, + {0x8135fd32, 0x06}, + {0x8135fd33, 0x02}, + {0x8135fd34, 0x02}, + {0x8135fd35, 0x02}, + {0x8135fd36, 0x02}, + {0x8135fd37, 0x02}, + {0x8135fd38, 0x0201}, + {0x8135fd39, 0x0a}, + {0x8135fe34, 0x06}, + {0x8135fe35, 0x02}, + {0x8135fe36, 0x06}, + {0x8135fe37, 0x02}, + {0x8135fe38, 0x06}, + {0x8135fe39, 0x02}, + {0x81368130, 0x06}, + {0x81368131, 0x02}, + {0x81368132, 0x06}, + {0x81368133, 0x02}, + {0x81368134, 0x06}, + {0x81368135, 0x02}, + {0x81368136, 0x06}, + {0x81368137, 0x02}, + {0x81368138, 0x06}, + {0x81368139, 0x02}, + {0x81368230, 0x06}, + {0x81368231, 0x02}, + {0x81368232, 0x06}, + {0x81368233, 0x02}, + {0x81368234, 0x06}, + {0x81368235, 0x02}, + {0x81368236, 0x06}, + {0x81368237, 0x02}, + {0x81368238, 0x07}, + {0x81368239, 0x02}, + {0x81368330, 0x07}, + {0x81368331, 0x02}, + {0x81368332, 0x07}, + {0x81368333, 0x02}, + {0x81368334, 0x07}, + {0x81368335, 0x02}, + {0x81368336, 0x07}, + {0x81368337, 0x02}, + {0x81368338, 0x07}, + {0x81368339, 0x02}, + {0x81368430, 0x07}, + {0x81368431, 0x02}, + {0x81368432, 0x07}, + {0x81368433, 0x02}, + {0x81368434, 0x08}, + {0x81368435, 0x02}, + {0x81368436, 0x08}, + {0x81368437, 0x02}, + {0x81368438, 0x07}, + {0x81368439, 0x02}, + {0x81368530, 0x07}, + {0x81368531, 0x02}, + {0x81368532, 0x07}, + {0x81368533, 0x02}, + {0x81368534, 0x07}, + {0x81368535, 0x02}, + {0x81368536, 0x07}, + {0x81368537, 0x02}, + {0x81368538, 0x07}, + {0x81368539, 0x02}, + {0x81368630, 0x07}, + {0x81368631, 0x02}, + {0x81368632, 0x07}, + {0x81368633, 0x02}, + {0x81368634, 0x07}, + {0x81368635, 0x02}, + {0x81368636, 0x07}, + {0x81368637, 0x02}, + {0x81368638, 0x07}, + {0x81368639, 0x02}, + {0x81368730, 0x07}, + {0x81368731, 0x02}, + {0x81368732, 0x06}, + {0x81368733, 0x02}, + {0x81368734, 0x06}, + {0x81368735, 0x02}, + {0x81368736, 0x06}, + {0x81368737, 0x02}, + {0x81368738, 0x06}, + {0x81368739, 0x02}, + {0x81368830, 0x06}, + {0x81368831, 0x02}, + {0x81368832, 0x06}, + {0x81368833, 0x02}, + {0x81368834, 0x06}, + {0x81368835, 0x02}, + {0x81368836, 0x06}, + {0x81368837, 0x02}, + {0x81368838, 0x06}, + {0x81368839, 0x02}, + {0x81368930, 0x06}, + {0x81368931, 0x02}, + {0x81368932, 0x06}, + {0x81368933, 0x02}, + {0x81368a30, 0x02}, + {0x81368a31, 0x02}, + {0x81368a32, 0x02}, + {0x81368a33, 0x02}, + {0x81368a34, 0x02}, + {0x81368a35, 0x02}, + {0x81368a36, 0x02}, + {0x81368a37, 0x02}, + {0x81368a38, 0x03}, + {0x81368a39, 0x03}, + {0x81368b30, 0x03}, + {0x81368b31, 0x03}, + {0x81368b32, 0x03}, + {0x81368b33, 0x03}, + {0x81368b34, 0x03}, + {0x81368b35, 0x03}, + {0x81368b36, 0x02}, + {0x81368b37, 0x02}, + {0x81368b38, 0x02}, + {0x81368b39, 0x02}, + {0x81368c30, 0x02}, + {0x81368c31, 0x02}, + {0x81368c34, 0x03}, + {0x81368c35, 0x03}, + {0x81368c36, 0x03}, + {0x81368c37, 0x03}, + {0x81368c38, 0x03}, + {0x81368c39, 0x03}, + {0x81368d32, 0x02}, + {0x81368d33, 0x02}, + {0x81368d34, 0x02}, + {0x81368d35, 0x02}, + {0x81368d36, 0x02}, + {0x81368d37, 0x02}, + {0x81368d38, 0x02}, + {0x81368d39, 0x02}, + {0x81368e30, 0x03}, + {0x81368e31, 0x03}, + {0x81368e32, 0x03}, + {0x81368e33, 0x03}, + {0x81368e34, 0x03}, + {0x81368e35, 0x03}, + {0x81368e36, 0x03}, + {0x81368e37, 0x03}, + {0x81368e38, 0x02}, + {0x81368e39, 0x02}, + {0x81368f30, 0x02}, + {0x81368f31, 0x02}, + {0x81368f32, 0x02}, + {0x81368f33, 0x02}, + {0x81368f34, 0x02}, + {0x81368f35, 0x02}, + {0x81368f36, 0x04}, + {0x81368f37, 0x04}, + {0x81368f38, 0x04}, + {0x81368f39, 0x04}, + {0x81369030, 0x04}, + {0x81369031, 0x04}, + {0x81369032, 0x04}, + {0x81369033, 0x04}, + {0x81369034, 0x02}, + {0x81369035, 0x02}, + {0x81369036, 0x02}, + {0x81369037, 0x02}, + {0x81369038, 0x02}, + {0x81369039, 0x02}, + {0x81369132, 0x03}, + {0x81369133, 0x03}, + {0x81369134, 0x03}, + {0x81369135, 0x03}, + {0x81369136, 0x03}, + {0x81369137, 0x03}, + {0x81369230, 0x02}, + {0x81369231, 0x02}, + {0x81369232, 0x02}, + {0x81369233, 0x02}, + {0x81369234, 0x02}, + {0x81369235, 0x02}, + {0x81369236, 0x02}, + {0x81369237, 0x02}, + {0x81369239, 0x03}, + {0x81369331, 0x03}, + {0x81369333, 0x03}, + {0x81369335, 0x03}, + {0x81369336, 0x02}, + {0x81369337, 0x02}, + {0x81369338, 0x02}, + {0x81369339, 0x02}, + {0x81369430, 0x02}, + {0x81369431, 0x02}, + {0x81369432, 0x02}, + {0x81369433, 0x02}, + {0x81369434, 0x03}, + {0x81369435, 0x03}, + {0x81369436, 0x03}, + {0x81369437, 0x03}, + {0x81369438, 0x03}, + {0x81369439, 0x03}, + {0x81369530, 0x03}, + {0x81369531, 0x03}, + {0x81369532, 0x02}, + {0x81369534, 0x02}, + {0x81369536, 0x02}, + {0x81369538, 0x02}, + {0x81369630, 0x02}, + {0x81369632, 0x02}, + {0x81369634, 0x02}, + {0x81369638, 0x02}, + {0x81369639, 0x02}, + {0x81369730, 0x02}, + {0x81369731, 0x02}, + {0x81369732, 0x02}, + {0x81369733, 0x02}, + {0x81369734, 0x02}, + {0x81369735, 0x02}, + {0x81369736, 0x03}, + {0x81369737, 0x03}, + {0x81369738, 0x03}, + {0x81369739, 0x03}, + {0x81369830, 0x03}, + {0x81369831, 0x03}, + {0x81369832, 0x03}, + {0x81369833, 0x03}, + {0x81369834, 0x02}, + {0x81369835, 0x02}, + {0x81369836, 0x02}, + {0x81369837, 0x02}, + {0x81369838, 0x02}, + {0x81369839, 0x02}, + {0x81369930, 0x02}, + {0x81369931, 0x02}, + {0x81369932, 0x03}, + {0x81369933, 0x03}, + {0x81369934, 0x03}, + {0x81369935, 0x03}, + {0x81369936, 0x03}, + {0x81369937, 0x03}, + {0x81369938, 0x03}, + {0x81369939, 0x03}, + {0x81369a30, 0x02}, + {0x81369a31, 0x02}, + {0x81369a32, 0x02}, + {0x81369a33, 0x02}, + {0x81369a34, 0x02}, + {0x81369a35, 0x02}, + {0x81369a36, 0x02}, + {0x81369a37, 0x02}, + {0x81369a38, 0x03}, + {0x81369a39, 0x03}, + {0x81369b30, 0x03}, + {0x81369b31, 0x03}, + {0x81369b32, 0x03}, + {0x81369b33, 0x03}, + {0x81369b34, 0x03}, + {0x81369b35, 0x03}, + {0x81369b36, 0x02}, + {0x81369b37, 0x02}, + {0x81369b38, 0x02}, + {0x81369b39, 0x02}, + {0x81369c30, 0x02}, + {0x81369c32, 0x02}, + {0x81369c33, 0x02}, + {0x81369c34, 0x03}, + {0x81369c35, 0x03}, + {0x81369c36, 0x03}, + {0x81369c38, 0x03}, + {0x81369d30, 0x03}, + {0x81369d33, 0x47}, + {0x81369d34, 0x02}, + {0x81369d35, 0x02}, + {0x81369d36, 0x02}, + {0x81369d38, 0x02}, + {0x81369d39, 0x02}, + {0x81369e30, 0x03}, + {0x81369e32, 0x03}, + {0x81369e34, 0x03}, + {0x81369e38, 0x02}, + {0x81369e39, 0x02}, + {0x81369f30, 0x02}, + {0x81369f34, 0x02}, + {0x81369f35, 0x02}, + {0x81369f36, 0x04}, + {0x81369f37, 0x04}, + {0x81369f38, 0x04}, + {0x8136a034, 0x02}, + {0x8136a035, 0x02}, + {0x8136a036, 0x02}, + {0x8136a038, 0x02}, + {0x8136a039, 0x02}, + {0x8136a130, 0x02}, + {0x8136a131, 0x02}, + {0x8136a132, 0x03}, + {0x8136a133, 0x03}, + {0x8136a134, 0x03}, + {0x8136a136, 0x04}, + {0x8136a137, 0x47}, + {0x8136a232, 0x02}, + {0x8136a233, 0x02}, + {0x8136a234, 0x02}, + {0x8136a236, 0x02}, + {0x8136a237, 0x02}, + {0x8136a238, 0x03}, + {0x8136a330, 0x03}, + {0x8136a332, 0x03}, + {0x8136a532, 0x59}, + {0x8136a533, 0x5a}, + {0x8136a534, 0x5f}, + {0x8136a535, 0x62}, + {0x8136a536, 0x63}, + {0x8136a537, 0x66}, + {0x8136a538, 0x67}, + {0x8136a539, 0x68}, + {0x8136a630, 0x69}, + {0x8136a631, 0x6a}, + {0x8136a632, 0x6b}, + {0x8136a633, 0x6c}, + {0x8136a634, 0x6f}, + {0x8136a733, 0x71}, + {0x8136a734, 0x74}, + {0x8136a735, 0x76}, + {0x8136a736, 0x77}, + {0x8136a737, 0x78}, + {0x8136a738, 0x79}, + {0x8136a739, 0x7a}, + {0x8136a830, 0x7c}, + {0x8136a831, 0x7d}, + {0x8136a832, 0x7e}, + {0x8136a833, 0x7f}, + {0x8136a834, 0x80}, + {0x8136a835, 0x81}, + {0x8136a836, 0x82}, + {0x8136a837, 0x83}, + {0x8136a838, 0x84}, + {0x8136a839, 0x85}, + {0x8136a930, 0x86}, + {0x8136ad32, 0x05}, + {0x8136ad36, 0x07}, + {0x8136ad37, 0x07}, + {0x8136ad38, 0x07}, + {0x8136ad39, 0x07}, + {0x8136ae30, 0x07}, + {0x8136ae31, 0x07}, + {0x8136ae37, 0x0a}, + {0x8136ae38, 0x06}, + {0x8136ae39, 0x08}, + {0x8136af30, 0x08}, + {0x8136af31, 0x08}, + {0x8136af32, 0x08}, + {0x8136af33, 0x08}, + {0x8136af34, 0x08}, + {0x8136af35, 0x08}, + {0x8136af36, 0x08}, + {0x8136af37, 0x08}, + {0x8136b230, 0x01}, + {0x8136b231, 0x01}, + {0x8136b232, 0x01}, + {0x8136b233, 0x01}, + {0x8136b234, 0x01}, + {0x8136b235, 0x01}, + {0x8136b236, 0x01}, + {0x8136b237, 0x01}, + {0x8136b239, 0x01}, + {0x8136b330, 0x01}, + {0x8136b331, 0x01}, + {0x8136bb37, 0x0b}, + {0x8136bb38, 0x01}, + {0x8136bc31, 0x01}, + {0x8136bc32, 0x05}, + {0x8136bc33, 0x09}, + {0x8136bc34, 0x0a}, + {0x8136bc35, 0x0b}, + {0x8136bc36, 0x05}, + {0x8136bc37, 0x03}, + {0x8136bc38, 0x0b}, + {0x8136bc39, 0x0c}, + {0x8136bd30, 0x0d}, + {0x8136bd31, 0x07}, + {0x8136bd32, 0x01}, + {0x8136bd33, 0x08}, + {0x8136bd34, 0x01}, + {0x8136bd35, 0x01}, + {0x8136bd36, 0x08}, + {0x8136bd37, 0x08}, + {0x8136bd38, 0x08}, + {0x8136bd39, 0x09}, + {0x8136be30, 0x0a}, + {0x8136be31, 0x01}, + {0x8136be32, 0x01}, + {0x8136be33, 0x0202}, + {0x8136be34, 0x0202}, + {0x8136be35, 0x01}, + {0x8136be36, 0x08}, + {0x8136be37, 0x01}, + {0x8136be38, 0x04}, + {0x8136be39, 0x01}, + {0x8136bf30, 0x09}, + {0x8136bf31, 0x01}, + {0x8136bf32, 0x07}, + {0x8136bf34, 0x08}, + {0x8136bf36, 0x01}, + {0x8136bf37, 0x05}, + {0x8136bf38, 0x09}, + {0x8136bf39, 0x09}, + {0x8136c030, 0x01}, + {0x8136c031, 0x0a}, + {0x8136c032, 0x05}, + {0x8136c435, 0x09}, + {0x8136c436, 0x0c}, + {0x8136c437, 0x0a}, + {0x8136c438, 0x09}, + {0x8136c439, 0x09}, + {0x8136c530, 0x0202}, + {0x8136c532, 0x05}, + {0x8136c533, 0x04}, + {0x8136c534, 0x04}, + {0x8136c535, 0x04}, + {0x8136c536, 0x01}, + {0x8136c537, 0x01}, + {0x8136c538, 0x01}, + {0x8136d331, 0x87}, + {0x8136d431, 0x03}, + {0x8136d432, 0x02}, + {0x81378d36, 0x04}, + {0x81378d37, 0x04}, + {0x81378d38, 0x05}, + {0x81378d39, 0x05}, + {0x81378e30, 0x04}, + {0x81378e31, 0x04}, + {0x81378e32, 0x04}, + {0x81378e33, 0x04}, + {0x81378e34, 0x05}, + {0x81378e35, 0x04}, + {0x81378e36, 0x04}, + {0x81378e37, 0x06}, + {0x81378e38, 0x05}, + {0x81378e39, 0x04}, + {0x81378f30, 0x04}, + {0x81378f31, 0x04}, + {0x81378f32, 0x04}, + {0x81378f33, 0x04}, + {0x81378f34, 0x04}, + {0x81378f35, 0x04}, + {0x81378f36, 0x04}, + {0x81378f37, 0x05}, + {0x81378f38, 0x04}, + {0x81378f39, 0x05}, + {0x81379030, 0x04}, + {0x81379031, 0x04}, + {0x81379032, 0x08}, + {0x81379033, 0x09}, + {0x81379034, 0x0c}, + {0x81379035, 0x0a}, + {0x81379036, 0x0a}, + {0x81379037, 0x0a}, + {0x81379038, 0x09}, + {0x81379039, 0x0c}, + {0x81379130, 0x0d}, + {0x81379131, 0x08}, + {0x81379132, 0x09}, + {0x81379133, 0x0e}, + {0x81379134, 0x0b}, + {0x81379135, 0x09}, + {0x81379136, 0x09}, + {0x81379137, 0x09}, + {0x81379138, 0x09}, + {0x81379139, 0x0b}, + {0x81379230, 0x08}, + {0x81379231, 0x08}, + {0x81379232, 0x08}, + {0x81379233, 0x0a}, + {0x81379234, 0x08}, + {0x81379235, 0x0a}, + {0x81379236, 0x08}, + {0x81379237, 0x0a}, + {0x81379238, 0x05}, + {0x81379239, 0x05}, + {0x81379330, 0x06}, + {0x81379331, 0x06}, + {0x81379332, 0x06}, + {0x81379333, 0x05}, + {0x81379334, 0x06}, + {0x81379335, 0x06}, + {0x81379336, 0x06}, + {0x81379337, 0x05}, + {0x81379338, 0x05}, + {0x81379339, 0x08}, + {0x81379430, 0x06}, + {0x81379431, 0x05}, + {0x81379432, 0x06}, + {0x81379433, 0x05}, + {0x81379434, 0x05}, + {0x81379435, 0x05}, + {0x81379436, 0x05}, + {0x81379437, 0x05}, + {0x81379438, 0x05}, + {0x81379439, 0x06}, + {0x81379530, 0x05}, + {0x81379531, 0x06}, + {0x81379532, 0x05}, + {0x81379533, 0x05}, + {0x81379534, 0x04}, + {0x8137ad31, 0x01}, + {0x8137ad32, 0x01}, + {0x8137ad33, 0x01}, + {0x8137c833, 0x09}, + {0x8137c834, 0x09}, + {0x8137c933, 0x0a}, + {0x8137c934, 0x0a}, + {0x8137ca33, 0x0b}, + {0x8137ca34, 0x0b}, + {0x8139a533, 0x02}, + {0x8139a534, 0x03}, + {0x8139a535, 0x01}, + {0x8139a636, 0x02}, + {0x8139a735, 0x03}, + {0x8139a736, 0x03}, + {0x8139a737, 0x03}, + {0x8139a738, 0x03}, + {0x8139ee39, 0x01}, + {0x8139ef30, 0x01}, + {0x8139ef33, 0x01}, + {0x8139ef34, 0x01}, + {0x8139ef35, 0x01}, + {0x8139f031, 0x01}, + {0x8139f131, 0x01}, + {0x8139f137, 0x01}, + {0x8139f232, 0x01}, + {0x8139f235, 0x01}, + {0x8139f239, 0x01}, + {0x8139f330, 0x01}, + {0x8139f331, 0x01}, + {0x8139f332, 0x01}, + {0x8139f333, 0x01}, + {0x8139f334, 0x01}, + {0x8139f335, 0x01}, + {0x8139f336, 0x01}, + {0x8139f337, 0x01}, + {0x8139f338, 0x01}, + {0x8139f339, 0x01}, + {0x8139f430, 0x01}, + {0x8139f431, 0x01}, + {0x8139f432, 0x01}, + {0x8139f433, 0x01}, + {0x8139f434, 0x01}, + {0x8139f435, 0x01}, + {0x8139f436, 0x01}, + {0x8139f437, 0x01}, + {0x8139f438, 0x01}, + {0x8139f439, 0x01}, + {0x8139f530, 0x01}, + {0x8139f531, 0x01}, + {0x8139f533, 0x01}, + {0x8139f534, 0x01}, + {0x8139f535, 0x01}, + {0x8139f536, 0x01}, + {0x8139f537, 0x01}, + {0x8139f538, 0x01}, + {0x8139f630, 0x01}, + {0x8139f631, 0x01}, + {0x8139f632, 0x01}, + {0x8139f633, 0x01}, + {0x8139f634, 0x01}, + {0x8139f635, 0x01}, + {0x8139f636, 0x01}, + {0x8139f637, 0x01}, + {0x8139f638, 0x01}, + {0x8139f731, 0x01}, + {0x8139f732, 0x01}, + {0x8139f735, 0x01}, + {0x8139f736, 0x01}, + {0x8139f737, 0x01}, + {0x8139f738, 0x01}, + {0x8139f739, 0x01}, + {0x8139f830, 0x01}, + {0x8139f831, 0x01}, + {0x8139f832, 0x01}, + {0x8139f833, 0x01}, + {0x8139f834, 0x01}, + {0x8139f836, 0x01}, + {0x8139f837, 0x01}, + {0x8139f838, 0x01}, + {0x8139f839, 0x01}, + {0x8139f930, 0x01}, + {0x8139f931, 0x01}, + {0x8139f932, 0x01}, + {0x8139f933, 0x01}, + {0x8139f934, 0x01}, + {0x8139f935, 0x01}, + {0x8139f937, 0x01}, + {0x8139f938, 0x01}, + {0x8139f939, 0x01}, + {0x8139fa30, 0x01}, + {0x8139fa31, 0x01}, + {0x8139fa32, 0x01}, + {0x8139fa33, 0x01}, + {0x8139fa34, 0x01}, + {0x8139fa35, 0x01}, + {0x8139fa36, 0x01}, + {0x8139fa37, 0x01}, + {0x8139fa39, 0x01}, + {0x8139fb30, 0x01}, + {0x8139fb31, 0x01}, + {0x8139fb32, 0x01}, + {0x8139fb33, 0x01}, + {0x8139fb34, 0x01}, + {0x8139fb35, 0x01}, + {0x8139fb36, 0x01}, + {0x8139fb37, 0x01}, + {0x8139fb38, 0x01}, + {0x8139fb39, 0x01}, + {0x8139fc30, 0x01}, + {0x8139fc31, 0x01}, + {0x8139fc32, 0x01}, + {0x8139fc33, 0x01}, + {0x8139fc34, 0x01}, + {0x8139fc35, 0x01}, + {0x8139fc36, 0x01}, + {0x8139fc37, 0x01}, + {0x8139fc38, 0x01}, + {0x8139fc39, 0x01}, + {0x8139fd32, 0x01}, + {0x8139fd33, 0x01}, + {0x8139fd34, 0x01}, + {0x8139fd35, 0x01}, + {0x8139fd36, 0x01}, + {0x8139fd37, 0x01}, + {0x8139fe30, 0x01}, + {0x8139fe31, 0x01}, + {0x8139fe32, 0x01}, + {0x8139fe33, 0x01}, + {0x8139fe34, 0x01}, + {0x8139fe35, 0x01}, + {0x8139fe36, 0x01}, + {0x8139fe37, 0x01}, + {0x8139fe38, 0x01}, + {0x82308131, 0x01}, + {0x82308132, 0x01}, + {0x82308133, 0x01}, + {0x82308134, 0x01}, + {0x82308135, 0x01}, + {0x82308136, 0x01}, + {0x82308137, 0x01}, + {0x82308138, 0x01}, + {0x82308230, 0x01}, + {0x82308233, 0x01}, + {0x82308235, 0x01}, + {0x82308236, 0x01}, + {0x82308237, 0x01}, + {0x82308238, 0x01}, + {0x82308239, 0x01}, + {0x82308330, 0x01}, + {0x82308331, 0x01}, + {0x82308332, 0x01}, + {0x82308334, 0x01}, + {0x82308335, 0x01}, + {0x82308336, 0x01}, + {0x82308337, 0x01}, + {0x82308338, 0x01}, + {0x82308431, 0x01}, + {0x82308432, 0x01}, + {0x82308433, 0x01}, + {0x82308434, 0x01}, + {0x82308437, 0x01}, + {0x82308438, 0x01}, + {0x82308439, 0x01}, + {0x82308530, 0x01}, + {0x82308531, 0x01}, + {0x82308533, 0x01}, + {0x82308534, 0x01}, + {0x82308535, 0x01}, + {0x82308536, 0x01}, + {0x82308538, 0x01}, + {0x82308539, 0x01}, + {0x82308630, 0x01}, + {0x82308631, 0x01}, + {0x82308632, 0x01}, + {0x82308633, 0x01}, + {0x82308635, 0x01}, + {0x82308636, 0x01}, + {0x82308637, 0x01}, + {0x82308638, 0x01}, + {0x82308639, 0x01}, + {0x82308730, 0x01}, + {0x82308731, 0x01}, + {0x82308732, 0x01}, + {0x82308733, 0x01}, + {0x82308734, 0x01}, + {0x82308735, 0x01}, + {0x82308736, 0x01}, + {0x82308737, 0x01}, + {0x82308738, 0x01}, + {0x82308739, 0x01}, + {0x82308830, 0x01}, + {0x82308831, 0x01}, + {0x82308833, 0x01}, + {0x82308834, 0x01}, + {0x82308835, 0x01}, + {0x82308836, 0x01}, + {0x82308837, 0x01}, + {0x82308838, 0x01}, + {0x82308839, 0x01}, + {0x82308930, 0x01}, + {0x82308931, 0x01}, + {0x82308932, 0x01}, + {0x82308933, 0x01}, + {0x82308934, 0x01}, + {0x82308935, 0x01}, + {0x82308936, 0x01}, + {0x82308937, 0x01}, + {0x82308938, 0x01}, + {0x82308939, 0x01}, + {0x82308a30, 0x01}, + {0x82308a31, 0x01}, + {0x82308a33, 0x01}, + {0x82308a34, 0x01}, + {0x82308a35, 0x01}, + {0x82308a36, 0x01}, + {0x82308a37, 0x01}, + {0x82308a38, 0x01}, + {0x82308a39, 0x01}, + {0x82308b30, 0x01}, + {0x82308b32, 0x01}, + {0x82308b33, 0x01}, + {0x82308b34, 0x01}, + {0x82308b35, 0x01}, + {0x82308b36, 0x01}, + {0x82308b37, 0x01}, + {0x82308b38, 0x01}, + {0x82308b39, 0x01}, + {0x82308c30, 0x01}, + {0x82308c31, 0x01}, + {0x82308c32, 0x01}, + {0x82308c34, 0x01}, + {0x82308c36, 0x01}, + {0x82308c37, 0x01}, + {0x82308c38, 0x01}, + {0x82308c39, 0x01}, + {0x82308d31, 0x01}, + {0x82308d32, 0x01}, + {0x82308d33, 0x01}, + {0x82308d35, 0x01}, + {0x82308d36, 0x01}, + {0x82308d37, 0x01}, + {0x82308d38, 0x01}, + {0x82308d39, 0x01}, + {0x82308e30, 0x01}, + {0x82308e31, 0x01}, + {0x82308e32, 0x01}, + {0x82308e33, 0x01}, + {0x82308e34, 0x01}, + {0x82308e35, 0x01}, + {0x82308e37, 0x01}, + {0x82308e38, 0x01}, + {0x82308e39, 0x01}, + {0x82308f30, 0x01}, + {0x82308f31, 0x01}, + {0x82308f32, 0x01}, + {0x82308f34, 0x01}, + {0x82308f35, 0x01}, + {0x82308f36, 0x01}, + {0x82308f37, 0x01}, + {0x82308f38, 0x01}, + {0x82308f39, 0x01}, + {0x82309030, 0x01}, + {0x82309031, 0x01}, + {0x82309032, 0x01}, + {0x82309033, 0x01}, + {0x82309034, 0x01}, + {0x82309035, 0x01}, + {0x82309036, 0x01}, + {0x82309038, 0x01}, + {0x82309039, 0x01}, + {0x82309130, 0x01}, + {0x82309131, 0x01}, + {0x82309132, 0x01}, + {0x82309133, 0x01}, + {0x82309134, 0x01}, + {0x82309135, 0x01}, + {0x82309136, 0x01}, + {0x82309137, 0x01}, + {0x82309138, 0x01}, + {0x82309139, 0x01}, + {0x82309230, 0x01}, + {0x82309231, 0x01}, + {0x82309232, 0x01}, + {0x82309233, 0x01}, + {0x82309234, 0x01}, + {0x82309235, 0x01}, + {0x82309236, 0x01}, + {0x82309237, 0x01}, + {0x82309238, 0x01}, + {0x82309239, 0x01}, + {0x82309330, 0x01}, + {0x82309331, 0x01}, + {0x82309332, 0x01}, + {0x82309333, 0x01}, + {0x82309334, 0x01}, + {0x82309335, 0x01}, + {0x82309337, 0x01}, + {0x82309338, 0x01}, + {0x82309339, 0x01}, + {0x82309430, 0x01}, + {0x82309431, 0x01}, + {0x82309432, 0x01}, + {0x82309433, 0x01}, + {0x82309434, 0x01}, + {0x82309435, 0x01}, + {0x82309436, 0x01}, + {0x82309437, 0x01}, + {0x82309438, 0x01}, + {0x82309439, 0x01}, + {0x82309530, 0x01}, + {0x82309531, 0x01}, + {0x82309532, 0x01}, + {0x82309533, 0x01}, + {0x82309534, 0x01}, + {0x82309535, 0x01}, + {0x82309536, 0x01}, + {0x82309537, 0x01}, + {0x82309538, 0x01}, + {0x82309539, 0x01}, + {0x82309630, 0x01}, + {0x82309631, 0x01}, + {0x82309632, 0x01}, + {0x82309633, 0x01}, + {0x82309634, 0x01}, + {0x82309635, 0x01}, + {0x82309636, 0x01}, + {0x82309637, 0x01}, + {0x82309638, 0x01}, + {0x82309731, 0x01}, + {0x82309732, 0x01}, + {0x82309733, 0x01}, + {0x82309734, 0x01}, + {0x82309735, 0x01}, + {0x82309736, 0x01}, + {0x82309737, 0x01}, + {0x82309738, 0x01}, + {0x82309830, 0x01}, + {0x82309831, 0x01}, + {0x82309836, 0x01}, + {0x82309837, 0x01}, + {0x82309838, 0x01}, + {0x82309839, 0x01}, + {0x82309930, 0x01}, + {0x82309931, 0x01}, + {0x82309932, 0x01}, + {0x82309933, 0x01}, + {0x82309934, 0x01}, + {0x82309935, 0x01}, + {0x82309a31, 0x01}, + {0x82309a32, 0x01}, + {0x82309a33, 0x01}, + {0x82309a34, 0x01}, + {0x82309a35, 0x01}, + {0x82309a36, 0x01}, + {0x82309a37, 0x01}, + {0x82309a38, 0x01}, + {0x82309a39, 0x01}, + {0x82309b30, 0x01}, + {0x82309b31, 0x01}, + {0x82309b32, 0x01}, + {0x82309b33, 0x01}, + {0x82309b35, 0x01}, + {0x82309b36, 0x01}, + {0x82309c33, 0x01}, + {0x82309c34, 0x01}, + {0x82309c35, 0x01}, + {0x82309c36, 0x01}, + {0x82309c37, 0x01}, + {0x82309c38, 0x01}, + {0x82309c39, 0x01}, + {0x82309d30, 0x01}, + {0x82309d31, 0x01}, + {0x82309d32, 0x01}, + {0x82309d33, 0x01}, + {0x82309d34, 0x01}, + {0x82309d35, 0x01}, + {0x82309d36, 0x01}, + {0x82309d37, 0x01}, + {0x82309d38, 0x01}, + {0x82309d39, 0x01}, + {0x82309e30, 0x01}, + {0x82309e31, 0x01}, + {0x82309e32, 0x01}, + {0x82309e33, 0x01}, + {0x82309e34, 0x01}, + {0x82309e35, 0x01}, + {0x82309e36, 0x01}, + {0x82309e37, 0x01}, + {0x82309e38, 0x01}, + {0x82309e39, 0x01}, + {0x82309f30, 0x01}, + {0x82309f31, 0x01}, + {0x82309f32, 0x01}, + {0x82309f33, 0x01}, + {0x82309f34, 0x01}, + {0x82309f35, 0x01}, + {0x82309f36, 0x01}, + {0x82309f37, 0x01}, + {0x82309f38, 0x01}, + {0x82309f39, 0x01}, + {0x8230a030, 0x01}, + {0x8230a031, 0x01}, + {0x8230a032, 0x01}, + {0x8230a034, 0x01}, + {0x8230a038, 0x01}, + {0x8230a039, 0x01}, + {0x8230a130, 0x01}, + {0x8230a131, 0x01}, + {0x8230a132, 0x01}, + {0x8230a133, 0x01}, + {0x8230a134, 0x01}, + {0x8230a135, 0x01}, + {0x8230a136, 0x01}, + {0x8230a137, 0x01}, + {0x8230a138, 0x01}, + {0x8230a139, 0x01}, + {0x8230a232, 0x01}, + {0x8230a233, 0x01}, + {0x8230a234, 0x01}, + {0x8230a235, 0x01}, + {0x8230a236, 0x01}, + {0x8230a237, 0x01}, + {0x8230a238, 0x01}, + {0x8230a332, 0x01}, + {0x8230a333, 0x01}, + {0x8230a334, 0x01}, + {0x8230a335, 0x01}, + {0x8230a336, 0x01}, + {0x8230a337, 0x01}, + {0x8230a338, 0x01}, + {0x8230a339, 0x01}, + {0x8230a430, 0x01}, + {0x8230a431, 0x01}, + {0x8230a432, 0x01}, + {0x8230a433, 0x01}, + {0x8230a434, 0x01}, + {0x8230a435, 0x01}, + {0x8230a436, 0x01}, + {0x8230a437, 0x01}, + {0x8230a438, 0x01}, + {0x8230a439, 0x01}, + {0x8230a530, 0x01}, + {0x8230a531, 0x01}, + {0x8230a533, 0x01}, + {0x8230a534, 0x01}, + {0x8230a536, 0x01}, + {0x8230a537, 0x01}, + {0x8230a538, 0x01}, + {0x8230a539, 0x01}, + {0x8230a630, 0x01}, + {0x8230a632, 0x01}, + {0x8230a633, 0x01}, + {0x8230a634, 0x01}, + {0x8230a635, 0x01}, + {0x8230a636, 0x01}, + {0x8230a637, 0x01}, + {0x8230a638, 0x01}, + {0x8230a639, 0x01}, + {0x8230a730, 0x01}, + {0x8230a731, 0x01}, + {0x8230a732, 0x01}, + {0x8230a733, 0x01}, + {0x8230a734, 0x01}, + {0x8230a735, 0x01}, + {0x8230a736, 0x01}, + {0x8230a737, 0x01}, + {0x8230a738, 0x01}, + {0x8230a739, 0x01}, + {0x8230a830, 0x01}, + {0x8230a831, 0x01}, + {0x8230a833, 0x01}, + {0x8230a834, 0x01}, + {0x8230a835, 0x01}, + {0x8230a836, 0x01}, + {0x8230a837, 0x01}, + {0x8230a838, 0x01}, + {0x8230a839, 0x01}, + {0x8230a930, 0x01}, + {0x8230a931, 0x01}, + {0x8230a932, 0x01}, + {0x8230a933, 0x01}, + {0x8230a934, 0x01}, + {0x8230a935, 0x01}, + {0x8230a937, 0x01}, + {0x8230a939, 0x01}, + {0x8230aa30, 0x01}, + {0x8230aa31, 0x01}, + {0x8230aa32, 0x01}, + {0x8230aa33, 0x01}, + {0x8230aa34, 0x01}, + {0x8230aa35, 0x01}, + {0x8230aa37, 0x01}, + {0x8230aa38, 0x01}, + {0x8230aa39, 0x01}, + {0x8230ab30, 0x01}, + {0x8230ab32, 0x01}, + {0x8230ab33, 0x01}, + {0x8230ab34, 0x01}, + {0x8230ab35, 0x01}, + {0x8230ab36, 0x01}, + {0x8230ab37, 0x01}, + {0x8230ab38, 0x01}, + {0x8230ab39, 0x01}, + {0x8230ac30, 0x01}, + {0x8230ac31, 0x01}, + {0x8230ac33, 0x01}, + {0x8230ac34, 0x01}, + {0x8230ac35, 0x01}, + {0x8230ac36, 0x01}, + {0x8230ac37, 0x01}, + {0x8230ac39, 0x01}, + {0x8230ad30, 0x01}, + {0x8230ad31, 0x01}, + {0x8230ad32, 0x01}, + {0x8230ad33, 0x01}, + {0x8230ad34, 0x01}, + {0x8230ad35, 0x01}, + {0x8230ad36, 0x01}, + {0x8230ad37, 0x01}, + {0x8230ad38, 0x01}, + {0x8230ad39, 0x01}, + {0x8230ae30, 0x01}, + {0x8230ae31, 0x01}, + {0x8230ae32, 0x01}, + {0x8230ae33, 0x01}, + {0x8230ae34, 0x01}, + {0x8230ae36, 0x01}, + {0x8230ae37, 0x01}, + {0x8230ae38, 0x01}, + {0x8230ae39, 0x01}, + {0x8230af30, 0x01}, + {0x8230af31, 0x01}, + {0x8230af32, 0x01}, + {0x8230af33, 0x01}, + {0x8230af34, 0x01}, + {0x8230af35, 0x01}, + {0x8230af36, 0x01}, + {0x8230af37, 0x01}, + {0x8230af38, 0x01}, + {0x8230af39, 0x01}, + {0x8230b030, 0x01}, + {0x8230b032, 0x01}, + {0x8230b034, 0x01}, + {0x8230b035, 0x01}, + {0x8230b036, 0x01}, + {0x8230b037, 0x01}, + {0x8230b039, 0x01}, + {0x8230b130, 0x01}, + {0x8230b131, 0x01}, + {0x8230b133, 0x01}, + {0x8230b134, 0x01}, + {0x8230b135, 0x01}, + {0x8230b136, 0x01}, + {0x8230b137, 0x01}, + {0x8230b139, 0x01}, + {0x8230b230, 0x01}, + {0x8230b232, 0x01}, + {0x8230b233, 0x01}, + {0x8230b234, 0x01}, + {0x8230b235, 0x01}, + {0x8230b236, 0x01}, + {0x8230b237, 0x01}, + {0x8230b238, 0x01}, + {0x8230b239, 0x01}, + {0x8230b330, 0x01}, + {0x8230b331, 0x01}, + {0x8230b332, 0x01}, + {0x8230b333, 0x01}, + {0x8230b334, 0x01}, + {0x8230b335, 0x01}, + {0x8230b336, 0x01}, + {0x8230b337, 0x01}, + {0x8230b338, 0x01}, + {0x8230b339, 0x01}, + {0x8230b430, 0x01}, + {0x8230b431, 0x01}, + {0x8230b432, 0x01}, + {0x8230b433, 0x01}, + {0x8230b434, 0x01}, + {0x8230b435, 0x01}, + {0x8230b436, 0x01}, + {0x8230b437, 0x01}, + {0x8230b438, 0x01}, + {0x8230b439, 0x01}, + {0x8230b530, 0x01}, + {0x8230b531, 0x01}, + {0x8230b532, 0x01}, + {0x8230b533, 0x01}, + {0x8230b534, 0x01}, + {0x8230b535, 0x01}, + {0x8230b536, 0x01}, + {0x8230b537, 0x01}, + {0x8230b538, 0x01}, + {0x8230b539, 0x01}, + {0x8230b630, 0x01}, + {0x8230b631, 0x01}, + {0x8230b632, 0x01}, + {0x8230b633, 0x01}, + {0x8230b634, 0x01}, + {0x8230b635, 0x01}, + {0x8230b636, 0x01}, + {0x8230b637, 0x01}, + {0x8230b638, 0x01}, + {0x8230b639, 0x01}, + {0x8230b730, 0x01}, + {0x8230b731, 0x01}, + {0x8230b732, 0x01}, + {0x8230b733, 0x01}, + {0x8230b734, 0x01}, + {0x8230b738, 0x01}, + {0x8230b831, 0x01}, + {0x8230b832, 0x01}, + {0x8230b833, 0x01}, + {0x8230b834, 0x01}, + {0x8230b835, 0x01}, + {0x8230b836, 0x01}, + {0x8230b837, 0x01}, + {0x8230b838, 0x01}, + {0x8230b839, 0x01}, + {0x8230b930, 0x01}, + {0x8230b931, 0x01}, + {0x8230b932, 0x01}, + {0x8230b933, 0x01}, + {0x8230b934, 0x01}, + {0x8230b935, 0x01}, + {0x8230b936, 0x01}, + {0x8230b937, 0x01}, + {0x8230b938, 0x01}, + {0x8230ba30, 0x01}, + {0x8230ba33, 0x01}, + {0x8230ba34, 0x01}, + {0x8230ba35, 0x01}, + {0x8230ba36, 0x01}, + {0x8230ba37, 0x01}, + {0x8230ba38, 0x01}, + {0x8230ba39, 0x01}, + {0x8230bb30, 0x01}, + {0x8230bb31, 0x01}, + {0x8230bb32, 0x01}, + {0x8230bb33, 0x01}, + {0x8230bb34, 0x01}, + {0x8230bb35, 0x01}, + {0x8230bb36, 0x01}, + {0x8230bb37, 0x01}, + {0x8230bb38, 0x01}, + {0x8230bb39, 0x01}, + {0x8230bc30, 0x01}, + {0x8230bc31, 0x01}, + {0x8230bc32, 0x01}, + {0x8230bc33, 0x01}, + {0x8230bc34, 0x01}, + {0x8230bc35, 0x01}, + {0x8230bc36, 0x01}, + {0x8230bc37, 0x01}, + {0x8230bc38, 0x01}, + {0x8230bc39, 0x01}, + {0x8230bd30, 0x01}, + {0x8230bd31, 0x01}, + {0x8230bd34, 0x01}, + {0x8230bd35, 0x01}, + {0x8230bd36, 0x01}, + {0x8230bd37, 0x01}, + {0x8230bd38, 0x01}, + {0x8230bd39, 0x01}, + {0x8230be30, 0x01}, + {0x8230be31, 0x01}, + {0x8230be32, 0x01}, + {0x8230be33, 0x01}, + {0x8230be34, 0x01}, + {0x8230be35, 0x01}, + {0x8230be36, 0x01}, + {0x8230be37, 0x01}, + {0x8230be38, 0x01}, + {0x8230be39, 0x01}, + {0x8230bf30, 0x01}, + {0x8230bf31, 0x01}, + {0x8230bf33, 0x01}, + {0x8230bf34, 0x01}, + {0x8230bf35, 0x01}, + {0x8230bf36, 0x01}, + {0x8230bf37, 0x01}, + {0x8230bf38, 0x01}, + {0x8230bf39, 0x01}, + {0x8230c030, 0x01}, + {0x8230c031, 0x01}, + {0x8230c032, 0x01}, + {0x8230c034, 0x01}, + {0x8230c035, 0x01}, + {0x8230c036, 0x01}, + {0x8230c037, 0x01}, + {0x8230c038, 0x01}, + {0x8230c039, 0x01}, + {0x8230c130, 0x01}, + {0x8230c131, 0x01}, + {0x8230c132, 0x01}, + {0x8230c133, 0x01}, + {0x8230c134, 0x01}, + {0x8230c135, 0x01}, + {0x8230c138, 0x01}, + {0x8230c139, 0x01}, + {0x8230c230, 0x01}, + {0x8230c231, 0x01}, + {0x8230c232, 0x01}, + {0x8230c233, 0x01}, + {0x8230c234, 0x01}, + {0x8230c235, 0x01}, + {0x8230c236, 0x01}, + {0x8230c237, 0x01}, + {0x8230c238, 0x01}, + {0x8230c239, 0x01}, + {0x8230c330, 0x01}, + {0x8230c331, 0x01}, + {0x8230c332, 0x01}, + {0x8230c333, 0x01}, + {0x8230c334, 0x01}, + {0x8230c335, 0x01}, + {0x8230c336, 0x01}, + {0x8230c337, 0x01}, + {0x8230c338, 0x01}, + {0x8230c339, 0x01}, + {0x8230c430, 0x01}, + {0x8230c431, 0x01}, + {0x8230c433, 0x01}, + {0x8230c434, 0x01}, + {0x8230c435, 0x01}, + {0x8230c436, 0x01}, + {0x8230c437, 0x01}, + {0x8230c438, 0x01}, + {0x8230c439, 0x01}, + {0x8230c530, 0x01}, + {0x8230c531, 0x01}, + {0x8230c532, 0x01}, + {0x8230c533, 0x01}, + {0x8230c534, 0x01}, + {0x8230c535, 0x01}, + {0x8230c536, 0x01}, + {0x8230c537, 0x01}, + {0x8230c538, 0x01}, + {0x8230c539, 0x01}, + {0x8230c630, 0x01}, + {0x8230c631, 0x01}, + {0x8230c632, 0x01}, + {0x8230c633, 0x01}, + {0x8230c634, 0x01}, + {0x8230c635, 0x01}, + {0x8230c636, 0x01}, + {0x8230c637, 0x01}, + {0x8230c638, 0x01}, + {0x8230c639, 0x01}, + {0x8230c730, 0x01}, + {0x8230c731, 0x01}, + {0x8230c732, 0x01}, + {0x8230c733, 0x01}, + {0x8230c734, 0x01}, + {0x8230c735, 0x01}, + {0x8230c736, 0x01}, + {0x8230c737, 0x01}, + {0x8230c738, 0x01}, + {0x8230c739, 0x01}, + {0x8230c830, 0x01}, + {0x8230c831, 0x01}, + {0x8230c832, 0x01}, + {0x8230c833, 0x01}, + {0x8230c834, 0x01}, + {0x8230c835, 0x01}, + {0x8230c836, 0x01}, + {0x8230c838, 0x01}, + {0x8230c839, 0x01}, + {0x8230c930, 0x01}, + {0x8230c931, 0x01}, + {0x8230c932, 0x01}, + {0x8230c933, 0x01}, + {0x8230c934, 0x01}, + {0x8230c935, 0x01}, + {0x8230c936, 0x01}, + {0x8230c937, 0x01}, + {0x8230c938, 0x01}, + {0x8230c939, 0x01}, + {0x8230ca30, 0x01}, + {0x8230ca31, 0x01}, + {0x8230ca32, 0x01}, + {0x8230ca33, 0x01}, + {0x8230ca34, 0x01}, + {0x8230ca35, 0x01}, + {0x8230ca36, 0x01}, + {0x8230ca37, 0x01}, + {0x8230ca38, 0x01}, + {0x8230ca39, 0x01}, + {0x8230cb30, 0x01}, + {0x8230cb31, 0x01}, + {0x8230cb32, 0x01}, + {0x8230cb34, 0x01}, + {0x8230cb35, 0x01}, + {0x8230cb36, 0x01}, + {0x8230cb37, 0x01}, + {0x8230cb38, 0x01}, + {0x8230cb39, 0x01}, + {0x8230cc30, 0x01}, + {0x8230cc31, 0x01}, + {0x8230cc32, 0x01}, + {0x8230cc33, 0x01}, + {0x8230cc34, 0x01}, + {0x8230cc35, 0x01}, + {0x8230cc36, 0x01}, + {0x8230cc37, 0x01}, + {0x8230cc38, 0x01}, + {0x8230cd30, 0x01}, + {0x8230cd31, 0x01}, + {0x8230cd32, 0x01}, + {0x8230cd33, 0x01}, + {0x8230cd34, 0x01}, + {0x8230cd35, 0x01}, + {0x8230cd36, 0x01}, + {0x8230cd37, 0x01}, + {0x8230cd38, 0x01}, + {0x8230cd39, 0x01}, + {0x8230ce30, 0x01}, + {0x8230ce31, 0x01}, + {0x8230ce32, 0x01}, + {0x8230ce33, 0x01}, + {0x8230ce34, 0x01}, + {0x8230ce35, 0x01}, + {0x8230ce37, 0x01}, + {0x8230ce38, 0x01}, + {0x8230ce39, 0x01}, + {0x8230cf30, 0x01}, + {0x8230cf31, 0x01}, + {0x8230cf32, 0x01}, + {0x8230cf33, 0x01}, + {0x8230cf34, 0x01}, + {0x8230cf35, 0x01}, + {0x8230cf36, 0x01}, + {0x8230cf37, 0x01}, + {0x8230cf38, 0x01}, + {0x8230cf39, 0x01}, + {0x8230d030, 0x01}, + {0x8230d031, 0x01}, + {0x8230d032, 0x01}, + {0x8230d033, 0x01}, + {0x8230d034, 0x01}, + {0x8230d035, 0x01}, + {0x8230d036, 0x01}, + {0x8230d037, 0x01}, + {0x8230d038, 0x01}, + {0x8230d039, 0x01}, + {0x8230d130, 0x01}, + {0x8230d131, 0x01}, + {0x8230d132, 0x01}, + {0x8230d133, 0x01}, + {0x8230d134, 0x01}, + {0x8230d135, 0x01}, + {0x8230d136, 0x01}, + {0x8230d137, 0x01}, + {0x8230d138, 0x01}, + {0x8230d139, 0x01}, + {0x8230d230, 0x01}, + {0x8230d231, 0x01}, + {0x8230d232, 0x01}, + {0x8230d233, 0x01}, + {0x8230d234, 0x01}, + {0x8230d236, 0x01}, + {0x8230d237, 0x01}, + {0x8230d238, 0x01}, + {0x8230d239, 0x01}, + {0x8230d330, 0x01}, + {0x8230d331, 0x01}, + {0x8230d332, 0x01}, + {0x8230d333, 0x01}, + {0x8230d334, 0x01}, + {0x8230d335, 0x01}, + {0x8230d336, 0x01}, + {0x8230d338, 0x01}, + {0x8230d430, 0x01}, + {0x8230d431, 0x01}, + {0x8230d432, 0x01}, + {0x8230d433, 0x01}, + {0x8230d434, 0x01}, + {0x8230d435, 0x01}, + {0x8230d436, 0x01}, + {0x8230d437, 0x01}, + {0x8230d438, 0x01}, + {0x8230d439, 0x01}, + {0x8230d530, 0x01}, + {0x8230d531, 0x01}, + {0x8230d532, 0x01}, + {0x8230d533, 0x01}, + {0x8230d534, 0x01}, + {0x8230d535, 0x01}, + {0x8230d536, 0x01}, + {0x8230d537, 0x01}, + {0x8230d538, 0x01}, + {0x8230d539, 0x01}, + {0x8230d630, 0x01}, + {0x8230d631, 0x01}, + {0x8230d632, 0x01}, + {0x8230d633, 0x01}, + {0x8230d634, 0x01}, + {0x8230d635, 0x01}, + {0x8230d636, 0x01}, + {0x8230d637, 0x01}, + {0x8230d638, 0x01}, + {0x8230d639, 0x01}, + {0x8230d730, 0x01}, + {0x8230d732, 0x01}, + {0x8230d733, 0x01}, + {0x8230d734, 0x01}, + {0x8230d735, 0x01}, + {0x8230d736, 0x01}, + {0x8230d737, 0x01}, + {0x8230d738, 0x01}, + {0x8230d739, 0x01}, + {0x8230d830, 0x01}, + {0x8230d831, 0x01}, + {0x8230d832, 0x01}, + {0x8230d833, 0x01}, + {0x8230d834, 0x01}, + {0x8230d835, 0x01}, + {0x8230d836, 0x01}, + {0x8230d837, 0x01}, + {0x8230d838, 0x01}, + {0x8230d839, 0x01}, + {0x8230d930, 0x01}, + {0x8230d931, 0x01}, + {0x8230d932, 0x01}, + {0x8230d933, 0x01}, + {0x8230d934, 0x01}, + {0x8230d935, 0x01}, + {0x8230d936, 0x01}, + {0x8230d937, 0x01}, + {0x8230d939, 0x01}, + {0x8230da30, 0x01}, + {0x8230da31, 0x01}, + {0x8230da32, 0x01}, + {0x8230da33, 0x01}, + {0x8230da35, 0x01}, + {0x8230da36, 0x01}, + {0x8230da37, 0x01}, + {0x8230da38, 0x01}, + {0x8230da39, 0x01}, + {0x8230db30, 0x01}, + {0x8230db33, 0x01}, + {0x8230db34, 0x01}, + {0x8230db35, 0x01}, + {0x8230db37, 0x01}, + {0x8230db38, 0x01}, + {0x8230dc30, 0x01}, + {0x8230dc31, 0x01}, + {0x8230dc32, 0x01}, + {0x8230dc33, 0x01}, + {0x8230dc34, 0x01}, + {0x8230dc35, 0x01}, + {0x8230dc36, 0x01}, + {0x8230dc37, 0x01}, + {0x8230dc38, 0x01}, + {0x8230dc39, 0x01}, + {0x8230dd30, 0x01}, + {0x8230dd31, 0x01}, + {0x8230dd32, 0x01}, + {0x8230dd33, 0x01}, + {0x8230dd34, 0x01}, + {0x8230dd35, 0x01}, + {0x8230dd36, 0x01}, + {0x8230dd37, 0x01}, + {0x8230dd38, 0x01}, + {0x8230dd39, 0x01}, + {0x8230de30, 0x01}, + {0x8230de31, 0x01}, + {0x8230de32, 0x01}, + {0x8230de33, 0x01}, + {0x8230de34, 0x01}, + {0x8230de36, 0x01}, + {0x8230de37, 0x01}, + {0x8230de38, 0x01}, + {0x8230de39, 0x01}, + {0x8230df30, 0x01}, + {0x8230df31, 0x01}, + {0x8230df32, 0x01}, + {0x8230df33, 0x01}, + {0x8230df34, 0x01}, + {0x8230df35, 0x01}, + {0x8230df36, 0x01}, + {0x8230df37, 0x01}, + {0x8230df38, 0x01}, + {0x8230df39, 0x01}, + {0x8230e030, 0x01}, + {0x8230e031, 0x01}, + {0x8230e032, 0x01}, + {0x8230e033, 0x01}, + {0x8230e034, 0x01}, + {0x8230e035, 0x01}, + {0x8230e036, 0x01}, + {0x8230e037, 0x01}, + {0x8230e039, 0x01}, + {0x8230e130, 0x01}, + {0x8230e131, 0x01}, + {0x8230e132, 0x01}, + {0x8230e133, 0x01}, + {0x8230e134, 0x01}, + {0x8230e135, 0x01}, + {0x8230e137, 0x01}, + {0x8230e138, 0x01}, + {0x8230e139, 0x01}, + {0x8230e230, 0x01}, + {0x8230e231, 0x01}, + {0x8230e232, 0x01}, + {0x8230e233, 0x01}, + {0x8230e234, 0x01}, + {0x8230e235, 0x01}, + {0x8230e236, 0x01}, + {0x8230e237, 0x01}, + {0x8230e238, 0x01}, + {0x8230e239, 0x01}, + {0x8230e330, 0x01}, + {0x8230e331, 0x01}, + {0x8230e332, 0x01}, + {0x8230e333, 0x01}, + {0x8230e334, 0x01}, + {0x8230e335, 0x01}, + {0x8230e336, 0x01}, + {0x8230e337, 0x01}, + {0x8230e338, 0x01}, + {0x8230e339, 0x01}, + {0x8230e430, 0x01}, + {0x8230e431, 0x01}, + {0x8230e432, 0x01}, + {0x8230e434, 0x01}, + {0x8230e435, 0x01}, + {0x8230e436, 0x01}, + {0x8230e437, 0x01}, + {0x8230e439, 0x01}, + {0x8230e530, 0x01}, + {0x8230e531, 0x01}, + {0x8230e532, 0x01}, + {0x8230e533, 0x01}, + {0x8230e534, 0x01}, + {0x8230e535, 0x01}, + {0x8230e536, 0x01}, + {0x8230e537, 0x01}, + {0x8230e538, 0x01}, + {0x8230e539, 0x01}, + {0x8230e630, 0x01}, + {0x8230e631, 0x01}, + {0x8230e632, 0x01}, + {0x8230e633, 0x01}, + {0x8230e634, 0x01}, + {0x8230e635, 0x01}, + {0x8230e636, 0x01}, + {0x8230e637, 0x01}, + {0x8230e638, 0x01}, + {0x8230e639, 0x01}, + {0x8230e730, 0x01}, + {0x8230e731, 0x01}, + {0x8230e732, 0x01}, + {0x8230e733, 0x01}, + {0x8230e734, 0x01}, + {0x8230e735, 0x01}, + {0x8230e736, 0x01}, + {0x8230e737, 0x01}, + {0x8230e738, 0x01}, + {0x8230e830, 0x01}, + {0x8230e831, 0x01}, + {0x8230e832, 0x01}, + {0x8230e833, 0x01}, + {0x8230e834, 0x01}, + {0x8230e836, 0x01}, + {0x8230e837, 0x01}, + {0x8230e838, 0x01}, + {0x8230e839, 0x01}, + {0x8230e930, 0x01}, + {0x8230e932, 0x01}, + {0x8230e934, 0x01}, + {0x8230e935, 0x01}, + {0x8230e936, 0x01}, + {0x8230e937, 0x01}, + {0x8230e938, 0x01}, + {0x8230ea30, 0x01}, + {0x8230ea31, 0x01}, + {0x8230ea32, 0x01}, + {0x8230ea33, 0x01}, + {0x8230ea34, 0x01}, + {0x8230ea35, 0x01}, + {0x8230ea36, 0x01}, + {0x8230ea37, 0x01}, + {0x8230ea38, 0x01}, + {0x8230ea39, 0x01}, + {0x8230eb31, 0x01}, + {0x8230eb32, 0x01}, + {0x8230eb33, 0x01}, + {0x8230eb34, 0x01}, + {0x8230eb35, 0x01}, + {0x8230eb36, 0x01}, + {0x8230eb37, 0x01}, + {0x8230eb38, 0x01}, + {0x8230eb39, 0x01}, + {0x8230ec30, 0x01}, + {0x8230ec34, 0x01}, + {0x8230ec35, 0x01}, + {0x8230ec36, 0x01}, + {0x8230ec37, 0x01}, + {0x8230ec38, 0x01}, + {0x8230ec39, 0x01}, + {0x8230ed30, 0x01}, + {0x8230ed31, 0x01}, + {0x8230ed32, 0x01}, + {0x8230ed34, 0x01}, + {0x8230ed35, 0x01}, + {0x8230ed36, 0x01}, + {0x8230ed37, 0x01}, + {0x8230ed38, 0x01}, + {0x8230ed39, 0x01}, + {0x8230ee32, 0x01}, + {0x8230ee33, 0x01}, + {0x8230ee34, 0x01}, + {0x8230ee35, 0x01}, + {0x8230ee37, 0x01}, + {0x8230ee38, 0x01}, + {0x8230ee39, 0x01}, + {0x8230ef30, 0x01}, + {0x8230ef33, 0x01}, + {0x8230ef34, 0x01}, + {0x8230ef35, 0x01}, + {0x8230ef38, 0x01}, + {0x8230ef39, 0x01}, + {0x8230f030, 0x01}, + {0x8230f031, 0x01}, + {0x8230f032, 0x01}, + {0x8230f033, 0x01}, + {0x8230f034, 0x01}, + {0x8230f035, 0x01}, + {0x8230f036, 0x01}, + {0x8230f037, 0x01}, + {0x8230f038, 0x01}, + {0x8230f039, 0x01}, + {0x8230f130, 0x01}, + {0x8230f131, 0x01}, + {0x8230f132, 0x01}, + {0x8230f133, 0x01}, + {0x8230f134, 0x01}, + {0x8230f135, 0x01}, + {0x8230f136, 0x01}, + {0x8230f137, 0x01}, + {0x8230f138, 0x01}, + {0x8230f139, 0x01}, + {0x8230f230, 0x01}, + {0x8230f231, 0x01}, + {0x8230f232, 0x01}, + {0x8230f233, 0x01}, + {0x8230f234, 0x01}, + {0x8230f235, 0x01}, + {0x8230f236, 0x01}, + {0x8230f238, 0x01}, + {0x8230f239, 0x01}, + {0x8230f330, 0x01}, + {0x8230f331, 0x01}, + {0x8230f332, 0x01}, + {0x8230f333, 0x01}, + {0x8230f334, 0x01}, + {0x8230f335, 0x01}, + {0x8230f336, 0x01}, + {0x8230f337, 0x01}, + {0x8230f338, 0x01}, + {0x8230f339, 0x01}, + {0x8230f430, 0x01}, + {0x8230f431, 0x01}, + {0x8230f432, 0x01}, + {0x8230f433, 0x01}, + {0x8230f434, 0x01}, + {0x8230f435, 0x01}, + {0x8230f436, 0x01}, + {0x8230f437, 0x01}, + {0x8230f438, 0x01}, + {0x8230f439, 0x01}, + {0x8230f530, 0x01}, + {0x8230f531, 0x01}, + {0x8230f532, 0x01}, + {0x8230f533, 0x01}, + {0x8230f534, 0x01}, + {0x8230f535, 0x01}, + {0x8230f536, 0x01}, + {0x8230f537, 0x01}, + {0x8230f538, 0x01}, + {0x8230f539, 0x01}, + {0x8230f630, 0x01}, + {0x8230f631, 0x01}, + {0x8230f632, 0x01}, + {0x8230f633, 0x01}, + {0x8230f634, 0x01}, + {0x8230f635, 0x01}, + {0x8230f636, 0x01}, + {0x8230f637, 0x01}, + {0x8230f638, 0x01}, + {0x8230f639, 0x01}, + {0x8230f730, 0x01}, + {0x8230f731, 0x01}, + {0x8230f732, 0x01}, + {0x8230f733, 0x01}, + {0x8230f734, 0x01}, + {0x8230f735, 0x01}, + {0x8230f736, 0x01}, + {0x8230f737, 0x01}, + {0x8230f738, 0x01}, + {0x8230f739, 0x01}, + {0x8230f830, 0x01}, + {0x8230f831, 0x01}, + {0x8230f832, 0x01}, + {0x8230f833, 0x01}, + {0x8230f834, 0x01}, + {0x8230f835, 0x01}, + {0x8230f836, 0x01}, + {0x8230f837, 0x01}, + {0x8230f838, 0x01}, + {0x8230f839, 0x01}, + {0x8230f933, 0x01}, + {0x8230f934, 0x01}, + {0x8230f935, 0x01}, + {0x8230f936, 0x01}, + {0x8230f937, 0x01}, + {0x8230f938, 0x01}, + {0x8230f939, 0x01}, + {0x8230fa30, 0x01}, + {0x8230fa31, 0x01}, + {0x8230fa32, 0x01}, + {0x8230fa33, 0x01}, + {0x8230fa34, 0x01}, + {0x8230fa35, 0x01}, + {0x8230fa36, 0x01}, + {0x8230fa37, 0x01}, + {0x8230fa38, 0x01}, + {0x8230fa39, 0x01}, + {0x8230fb30, 0x01}, + {0x8230fb31, 0x01}, + {0x8230fb32, 0x01}, + {0x8230fb33, 0x01}, + {0x8230fb34, 0x01}, + {0x8230fb35, 0x01}, + {0x8230fb36, 0x01}, + {0x8230fb37, 0x01}, + {0x8230fb38, 0x01}, + {0x8230fb39, 0x01}, + {0x8230fc30, 0x01}, + {0x8230fc31, 0x01}, + {0x8230fc32, 0x01}, + {0x8230fc33, 0x01}, + {0x8230fc34, 0x01}, + {0x8230fc36, 0x01}, + {0x8230fc37, 0x01}, + {0x8230fc38, 0x01}, + {0x8230fc39, 0x01}, + {0x8230fd30, 0x01}, + {0x8230fd31, 0x01}, + {0x8230fd32, 0x01}, + {0x8230fd33, 0x01}, + {0x8230fd34, 0x01}, + {0x8230fd35, 0x01}, + {0x8230fd36, 0x01}, + {0x8230fd37, 0x01}, + {0x8230fd38, 0x01}, + {0x8230fd39, 0x01}, + {0x8230fe30, 0x01}, + {0x8230fe31, 0x01}, + {0x8230fe32, 0x01}, + {0x8230fe33, 0x01}, + {0x8230fe34, 0x01}, + {0x8230fe35, 0x01}, + {0x8230fe36, 0x01}, + {0x8230fe37, 0x01}, + {0x8230fe38, 0x01}, + {0x8230fe39, 0x01}, + {0x82318130, 0x01}, + {0x82318131, 0x01}, + {0x82318132, 0x01}, + {0x82318133, 0x01}, + {0x82318134, 0x01}, + {0x82318136, 0x01}, + {0x82318137, 0x01}, + {0x82318138, 0x01}, + {0x82318139, 0x01}, + {0x82318230, 0x01}, + {0x82318231, 0x01}, + {0x82318233, 0x01}, + {0x82318234, 0x01}, + {0x82318235, 0x01}, + {0x82318236, 0x01}, + {0x82318237, 0x01}, + {0x82318238, 0x01}, + {0x82318239, 0x01}, + {0x82318330, 0x01}, + {0x82318331, 0x01}, + {0x82318332, 0x01}, + {0x82318333, 0x01}, + {0x82318334, 0x01}, + {0x82318335, 0x01}, + {0x82318337, 0x01}, + {0x82318338, 0x01}, + {0x82318339, 0x01}, + {0x82318430, 0x01}, + {0x82318431, 0x01}, + {0x82318432, 0x01}, + {0x82318433, 0x01}, + {0x82318434, 0x01}, + {0x82318435, 0x01}, + {0x82318436, 0x01}, + {0x82318437, 0x01}, + {0x82318438, 0x01}, + {0x82318439, 0x01}, + {0x82318530, 0x01}, + {0x82318531, 0x01}, + {0x82318532, 0x01}, + {0x82318533, 0x01}, + {0x82318534, 0x01}, + {0x82318535, 0x01}, + {0x82318536, 0x01}, + {0x82318537, 0x01}, + {0x82318538, 0x01}, + {0x82318539, 0x01}, + {0x82318630, 0x01}, + {0x82318631, 0x01}, + {0x82318632, 0x01}, + {0x82318633, 0x01}, + {0x82318634, 0x01}, + {0x82318635, 0x01}, + {0x82318636, 0x01}, + {0x82318637, 0x01}, + {0x82318638, 0x01}, + {0x82318639, 0x01}, + {0x82318730, 0x01}, + {0x82318731, 0x01}, + {0x82318732, 0x01}, + {0x82318733, 0x01}, + {0x82318734, 0x01}, + {0x82318735, 0x01}, + {0x82318736, 0x01}, + {0x82318737, 0x01}, + {0x82318738, 0x01}, + {0x82318739, 0x01}, + {0x82318831, 0x01}, + {0x82318832, 0x01}, + {0x82318834, 0x01}, + {0x82318835, 0x01}, + {0x82318836, 0x01}, + {0x82318837, 0x01}, + {0x82318838, 0x01}, + {0x82318839, 0x01}, + {0x82318930, 0x01}, + {0x82318931, 0x01}, + {0x82318932, 0x01}, + {0x82318933, 0x01}, + {0x82318934, 0x01}, + {0x82318935, 0x01}, + {0x82318936, 0x01}, + {0x82318937, 0x01}, + {0x82318938, 0x01}, + {0x82318939, 0x01}, + {0x82318a30, 0x01}, + {0x82318a31, 0x01}, + {0x82318a32, 0x01}, + {0x82318a33, 0x01}, + {0x82318a34, 0x01}, + {0x82318a35, 0x01}, + {0x82318a36, 0x01}, + {0x82318a37, 0x01}, + {0x82318a38, 0x01}, + {0x82318a39, 0x01}, + {0x82318b30, 0x01}, + {0x82318b31, 0x01}, + {0x82318b32, 0x01}, + {0x82318b33, 0x01}, + {0x82318b34, 0x01}, + {0x82318b35, 0x01}, + {0x82318b36, 0x01}, + {0x82318b37, 0x01}, + {0x82318b38, 0x01}, + {0x82318b39, 0x01}, + {0x82318c30, 0x01}, + {0x82318c31, 0x01}, + {0x82318c32, 0x01}, + {0x82318c33, 0x01}, + {0x82318c34, 0x01}, + {0x82318c35, 0x01}, + {0x82318c36, 0x01}, + {0x82318c37, 0x01}, + {0x82318c38, 0x01}, + {0x82318c39, 0x01}, + {0x82318d30, 0x01}, + {0x82318d31, 0x01}, + {0x82318d32, 0x01}, + {0x82318d33, 0x01}, + {0x82318d34, 0x01}, + {0x82318d35, 0x01}, + {0x82318d36, 0x01}, + {0x82318d37, 0x01}, + {0x82318d38, 0x01}, + {0x82318d39, 0x01}, + {0x82318e30, 0x01}, + {0x82318e31, 0x01}, + {0x82318e32, 0x01}, + {0x82318e33, 0x01}, + {0x82318e34, 0x01}, + {0x82318e35, 0x01}, + {0x82318e36, 0x01}, + {0x82318e37, 0x01}, + {0x82318e38, 0x01}, + {0x82318e39, 0x01}, + {0x82318f30, 0x01}, + {0x82318f31, 0x01}, + {0x82318f32, 0x01}, + {0x82318f33, 0x01}, + {0x82318f34, 0x01}, + {0x82318f35, 0x01}, + {0x82318f36, 0x01}, + {0x82318f37, 0x01}, + {0x82318f38, 0x01}, + {0x82318f39, 0x01}, + {0x82319030, 0x01}, + {0x82319031, 0x01}, + {0x82319032, 0x01}, + {0x82319033, 0x01}, + {0x82319034, 0x01}, + {0x82319035, 0x01}, + {0x82319036, 0x01}, + {0x82319037, 0x01}, + {0x82319038, 0x01}, + {0x82319039, 0x01}, + {0x82319130, 0x01}, + {0x82319131, 0x01}, + {0x82319132, 0x01}, + {0x82319133, 0x01}, + {0x82319134, 0x01}, + {0x82319135, 0x01}, + {0x82319136, 0x01}, + {0x82319137, 0x01}, + {0x82319138, 0x01}, + {0x82319139, 0x01}, + {0x82319230, 0x01}, + {0x82319232, 0x01}, + {0x82319233, 0x01}, + {0x82319234, 0x01}, + {0x82319235, 0x01}, + {0x82319236, 0x01}, + {0x82319237, 0x01}, + {0x82319238, 0x01}, + {0x82319239, 0x01}, + {0x82319330, 0x01}, + {0x82319331, 0x01}, + {0x82319332, 0x01}, + {0x82319333, 0x01}, + {0x82319334, 0x01}, + {0x82319335, 0x01}, + {0x82319337, 0x01}, + {0x82319338, 0x01}, + {0x82319339, 0x01}, + {0x82319430, 0x01}, + {0x82319431, 0x01}, + {0x82319432, 0x01}, + {0x82319433, 0x01}, + {0x82319434, 0x01}, + {0x82319435, 0x01}, + {0x82319436, 0x01}, + {0x82319437, 0x01}, + {0x82319438, 0x01}, + {0x82319439, 0x01}, + {0x82319530, 0x01}, + {0x82319531, 0x01}, + {0x82319532, 0x01}, + {0x82319533, 0x01}, + {0x82319534, 0x01}, + {0x82319535, 0x01}, + {0x82319536, 0x01}, + {0x82319537, 0x01}, + {0x82319538, 0x01}, + {0x82319539, 0x01}, + {0x82319630, 0x01}, + {0x82319631, 0x01}, + {0x82319632, 0x01}, + {0x82319633, 0x01}, + {0x82319634, 0x01}, + {0x82319635, 0x01}, + {0x82319636, 0x01}, + {0x82319637, 0x01}, + {0x82319638, 0x01}, + {0x82319639, 0x01}, + {0x82319730, 0x01}, + {0x82319731, 0x01}, + {0x82319732, 0x01}, + {0x82319733, 0x01}, + {0x82319734, 0x01}, + {0x82319735, 0x01}, + {0x82319736, 0x01}, + {0x82319737, 0x01}, + {0x82319738, 0x01}, + {0x82319739, 0x01}, + {0x82319830, 0x01}, + {0x82319831, 0x01}, + {0x82319832, 0x01}, + {0x82319833, 0x01}, + {0x82319834, 0x01}, + {0x82319835, 0x01}, + {0x82319836, 0x01}, + {0x82319837, 0x01}, + {0x82319838, 0x01}, + {0x82319839, 0x01}, + {0x82319930, 0x01}, + {0x82319931, 0x01}, + {0x82319932, 0x01}, + {0x82319933, 0x01}, + {0x82319934, 0x01}, + {0x82319935, 0x01}, + {0x82319936, 0x01}, + {0x82319937, 0x01}, + {0x82319938, 0x01}, + {0x82319939, 0x01}, + {0x82319a30, 0x01}, + {0x82319a31, 0x01}, + {0x82319a32, 0x01}, + {0x82319a33, 0x01}, + {0x82319a34, 0x01}, + {0x82319a35, 0x01}, + {0x82319a37, 0x01}, + {0x82319a38, 0x01}, + {0x82319a39, 0x01}, + {0x82319b30, 0x01}, + {0x82319b31, 0x01}, + {0x82319b32, 0x01}, + {0x82319b33, 0x01}, + {0x82319b34, 0x01}, + {0x82319b35, 0x01}, + {0x82319b36, 0x01}, + {0x82319b37, 0x01}, + {0x82319b38, 0x01}, + {0x82319b39, 0x01}, + {0x82319c30, 0x01}, + {0x82319c31, 0x01}, + {0x82319c32, 0x01}, + {0x82319c33, 0x01}, + {0x82319c34, 0x01}, + {0x82319c35, 0x01}, + {0x82319c36, 0x01}, + {0x82319c37, 0x01}, + {0x82319c38, 0x01}, + {0x82319c39, 0x01}, + {0x82319d30, 0x01}, + {0x82319d31, 0x01}, + {0x82319d34, 0x01}, + {0x82319d35, 0x01}, + {0x82319d36, 0x01}, + {0x82319d37, 0x01}, + {0x82319d38, 0x01}, + {0x82319d39, 0x01}, + {0x82319e30, 0x01}, + {0x82319e31, 0x01}, + {0x82319e32, 0x01}, + {0x82319e33, 0x01}, + {0x82319e34, 0x01}, + {0x82319e35, 0x01}, + {0x82319e36, 0x01}, + {0x82319e37, 0x01}, + {0x82319e38, 0x01}, + {0x82319e39, 0x01}, + {0x82319f30, 0x01}, + {0x82319f31, 0x01}, + {0x82319f35, 0x01}, + {0x82319f36, 0x01}, + {0x82319f37, 0x01}, + {0x82319f39, 0x01}, + {0x8231a030, 0x01}, + {0x8231a031, 0x01}, + {0x8231a032, 0x01}, + {0x8231a033, 0x01}, + {0x8231a034, 0x01}, + {0x8231a035, 0x01}, + {0x8231a036, 0x01}, + {0x8231a037, 0x01}, + {0x8231a038, 0x01}, + {0x8231a039, 0x01}, + {0x8231a130, 0x01}, + {0x8231a131, 0x01}, + {0x8231a132, 0x01}, + {0x8231a133, 0x01}, + {0x8231a134, 0x01}, + {0x8231a135, 0x01}, + {0x8231a136, 0x01}, + {0x8231a137, 0x01}, + {0x8231a139, 0x01}, + {0x8231a230, 0x01}, + {0x8231a232, 0x01}, + {0x8231a233, 0x01}, + {0x8231a234, 0x01}, + {0x8231a235, 0x01}, + {0x8231a236, 0x01}, + {0x8231a237, 0x01}, + {0x8231a238, 0x01}, + {0x8231a239, 0x01}, + {0x8231a330, 0x01}, + {0x8231a333, 0x01}, + {0x8231a334, 0x01}, + {0x8231a335, 0x01}, + {0x8231a336, 0x01}, + {0x8231a337, 0x01}, + {0x8231a338, 0x01}, + {0x8231a339, 0x01}, + {0x8231a430, 0x01}, + {0x8231a431, 0x01}, + {0x8231a432, 0x01}, + {0x8231a433, 0x01}, + {0x8231a434, 0x01}, + {0x8231a435, 0x01}, + {0x8231a436, 0x01}, + {0x8231a437, 0x01}, + {0x8231a531, 0x01}, + {0x8231a532, 0x01}, + {0x8231a533, 0x01}, + {0x8231a534, 0x01}, + {0x8231a535, 0x01}, + {0x8231a536, 0x01}, + {0x8231a537, 0x01}, + {0x8231a538, 0x01}, + {0x8231a539, 0x01}, + {0x8231a630, 0x01}, + {0x8231a631, 0x01}, + {0x8231a632, 0x01}, + {0x8231a633, 0x01}, + {0x8231a634, 0x01}, + {0x8231a635, 0x01}, + {0x8231a636, 0x01}, + {0x8231a637, 0x01}, + {0x8231a638, 0x01}, + {0x8231a639, 0x01}, + {0x8231a730, 0x01}, + {0x8231a731, 0x01}, + {0x8231a733, 0x01}, + {0x8231a734, 0x01}, + {0x8231a735, 0x01}, + {0x8231a736, 0x01}, + {0x8231a737, 0x01}, + {0x8231a738, 0x01}, + {0x8231a739, 0x01}, + {0x8231a830, 0x01}, + {0x8231a831, 0x01}, + {0x8231a832, 0x01}, + {0x8231a833, 0x01}, + {0x8231a834, 0x01}, + {0x8231a835, 0x01}, + {0x8231a836, 0x01}, + {0x8231a837, 0x01}, + {0x8231a838, 0x01}, + {0x8231a931, 0x01}, + {0x8231a932, 0x01}, + {0x8231a933, 0x01}, + {0x8231a934, 0x01}, + {0x8231a935, 0x01}, + {0x8231a936, 0x01}, + {0x8231a937, 0x01}, + {0x8231a938, 0x01}, + {0x8231a939, 0x01}, + {0x8231aa30, 0x01}, + {0x8231aa31, 0x01}, + {0x8231aa32, 0x01}, + {0x8231aa33, 0x01}, + {0x8231aa34, 0x01}, + {0x8231aa35, 0x01}, + {0x8231aa36, 0x01}, + {0x8231aa37, 0x01}, + {0x8231aa38, 0x01}, + {0x8231aa39, 0x01}, + {0x8231ab30, 0x01}, + {0x8231ab33, 0x01}, + {0x8231ab35, 0x01}, + {0x8231ab36, 0x01}, + {0x8231ab37, 0x01}, + {0x8231ab38, 0x01}, + {0x8231ac31, 0x01}, + {0x8231ac32, 0x01}, + {0x8231ac33, 0x01}, + {0x8231ac34, 0x01}, + {0x8231ac35, 0x01}, + {0x8231ac36, 0x01}, + {0x8231ac37, 0x01}, + {0x8231ac38, 0x01}, + {0x8231ad30, 0x01}, + {0x8231ad31, 0x01}, + {0x8231ad32, 0x01}, + {0x8231ad33, 0x01}, + {0x8231ad34, 0x01}, + {0x8231ad37, 0x01}, + {0x8231ad38, 0x01}, + {0x8231ad39, 0x01}, + {0x8231ae30, 0x01}, + {0x8231ae31, 0x01}, + {0x8231ae32, 0x01}, + {0x8231ae33, 0x01}, + {0x8231ae34, 0x01}, + {0x8231ae35, 0x01}, + {0x8231ae36, 0x01}, + {0x8231ae37, 0x01}, + {0x8231ae39, 0x01}, + {0x8231af31, 0x01}, + {0x8231af33, 0x01}, + {0x8231af34, 0x01}, + {0x8231af35, 0x01}, + {0x8231af36, 0x01}, + {0x8231af37, 0x01}, + {0x8231af38, 0x01}, + {0x8231af39, 0x01}, + {0x8231b030, 0x01}, + {0x8231b031, 0x01}, + {0x8231b032, 0x01}, + {0x8231b033, 0x01}, + {0x8231b035, 0x01}, + {0x8231b037, 0x01}, + {0x8231b039, 0x01}, + {0x8231b130, 0x01}, + {0x8231b131, 0x01}, + {0x8231b132, 0x01}, + {0x8231b133, 0x01}, + {0x8231b134, 0x01}, + {0x8231b135, 0x01}, + {0x8231b136, 0x01}, + {0x8231b137, 0x01}, + {0x8231b138, 0x01}, + {0x8231b139, 0x01}, + {0x8231b230, 0x01}, + {0x8231b231, 0x01}, + {0x8231b232, 0x01}, + {0x8231b233, 0x01}, + {0x8231b234, 0x01}, + {0x8231b235, 0x01}, + {0x8231b238, 0x01}, + {0x8231b239, 0x01}, + {0x8231b330, 0x01}, + {0x8231b331, 0x01}, + {0x8231b332, 0x01}, + {0x8231b333, 0x01}, + {0x8231b334, 0x01}, + {0x8231b335, 0x01}, + {0x8231b336, 0x01}, + {0x8231b337, 0x01}, + {0x8231b338, 0x01}, + {0x8231b339, 0x01}, + {0x8231b430, 0x01}, + {0x8231b431, 0x01}, + {0x8231b432, 0x01}, + {0x8231b433, 0x01}, + {0x8231b434, 0x01}, + {0x8231b435, 0x01}, + {0x8231b436, 0x01}, + {0x8231b437, 0x01}, + {0x8231b438, 0x01}, + {0x8231b530, 0x01}, + {0x8231b531, 0x01}, + {0x8231b532, 0x01}, + {0x8231b533, 0x01}, + {0x8231b534, 0x01}, + {0x8231b535, 0x01}, + {0x8231b536, 0x01}, + {0x8231b537, 0x01}, + {0x8231b538, 0x01}, + {0x8231b539, 0x01}, + {0x8231b630, 0x01}, + {0x8231b631, 0x01}, + {0x8231b632, 0x01}, + {0x8231b633, 0x01}, + {0x8231b634, 0x01}, + {0x8231b635, 0x01}, + {0x8231b636, 0x01}, + {0x8231b637, 0x01}, + {0x8231b638, 0x01}, + {0x8231b639, 0x01}, + {0x8231b730, 0x01}, + {0x8231b731, 0x01}, + {0x8231b732, 0x01}, + {0x8231b733, 0x01}, + {0x8231b734, 0x01}, + {0x8231b735, 0x01}, + {0x8231b736, 0x01}, + {0x8231b739, 0x01}, + {0x8231b830, 0x01}, + {0x8231b831, 0x01}, + {0x8231b832, 0x01}, + {0x8231b833, 0x01}, + {0x8231b834, 0x01}, + {0x8231b835, 0x01}, + {0x8231b836, 0x01}, + {0x8231b837, 0x01}, + {0x8231b838, 0x01}, + {0x8231b839, 0x01}, + {0x8231b930, 0x01}, + {0x8231b931, 0x01}, + {0x8231b932, 0x01}, + {0x8231b933, 0x01}, + {0x8231b934, 0x01}, + {0x8231b935, 0x01}, + {0x8231b936, 0x01}, + {0x8231b937, 0x01}, + {0x8231ba30, 0x01}, + {0x8231ba31, 0x01}, + {0x8231ba32, 0x01}, + {0x8231ba33, 0x01}, + {0x8231ba34, 0x01}, + {0x8231ba35, 0x01}, + {0x8231ba36, 0x01}, + {0x8231ba37, 0x01}, + {0x8231ba38, 0x01}, + {0x8231ba39, 0x01}, + {0x8231bb30, 0x01}, + {0x8231bb31, 0x01}, + {0x8231bb32, 0x01}, + {0x8231bb33, 0x01}, + {0x8231bb34, 0x01}, + {0x8231bb35, 0x01}, + {0x8231bb36, 0x01}, + {0x8231bb37, 0x01}, + {0x8231bb38, 0x01}, + {0x8231bb39, 0x01}, + {0x8231bc32, 0x01}, + {0x8231bc33, 0x01}, + {0x8231bc34, 0x01}, + {0x8231bc35, 0x01}, + {0x8231bc36, 0x01}, + {0x8231bc37, 0x01}, + {0x8231bc38, 0x01}, + {0x8231bc39, 0x01}, + {0x8231bd30, 0x01}, + {0x8231bd31, 0x01}, + {0x8231bd32, 0x01}, + {0x8231bd35, 0x01}, + {0x8231bd36, 0x01}, + {0x8231bd37, 0x01}, + {0x8231bd38, 0x01}, + {0x8231bd39, 0x01}, + {0x8231be30, 0x01}, + {0x8231be32, 0x01}, + {0x8231be33, 0x01}, + {0x8231be34, 0x01}, + {0x8231be35, 0x01}, + {0x8231be36, 0x01}, + {0x8231be37, 0x01}, + {0x8231be38, 0x01}, + {0x8231be39, 0x01}, + {0x8231bf30, 0x01}, + {0x8231bf31, 0x01}, + {0x8231bf32, 0x01}, + {0x8231bf33, 0x01}, + {0x8231bf34, 0x01}, + {0x8231bf35, 0x01}, + {0x8231bf36, 0x01}, + {0x8231bf37, 0x01}, + {0x8231bf38, 0x01}, + {0x8231bf39, 0x01}, + {0x8231c030, 0x01}, + {0x8231c031, 0x01}, + {0x8231c032, 0x01}, + {0x8231c033, 0x01}, + {0x8231c035, 0x01}, + {0x8231c036, 0x01}, + {0x8231c037, 0x01}, + {0x8231c038, 0x01}, + {0x8231c039, 0x01}, + {0x8231c130, 0x01}, + {0x8231c131, 0x01}, + {0x8231c132, 0x01}, + {0x8231c134, 0x01}, + {0x8231c135, 0x01}, + {0x8231c136, 0x01}, + {0x8231c137, 0x01}, + {0x8231c138, 0x01}, + {0x8231c139, 0x01}, + {0x8231c230, 0x01}, + {0x8231c231, 0x01}, + {0x8231c232, 0x01}, + {0x8231c233, 0x01}, + {0x8231c234, 0x01}, + {0x8231c235, 0x01}, + {0x8231c236, 0x01}, + {0x8231c237, 0x01}, + {0x8231c238, 0x01}, + {0x8231c239, 0x01}, + {0x8231c330, 0x01}, + {0x8231c331, 0x01}, + {0x8231c332, 0x01}, + {0x8231c333, 0x01}, + {0x8231c334, 0x01}, + {0x8231c335, 0x01}, + {0x8231c336, 0x01}, + {0x8231c337, 0x01}, + {0x8231c338, 0x01}, + {0x8231c339, 0x01}, + {0x8231c430, 0x01}, + {0x8231c432, 0x01}, + {0x8231c433, 0x01}, + {0x8231c434, 0x01}, + {0x8231c435, 0x01}, + {0x8231c436, 0x01}, + {0x8231c437, 0x01}, + {0x8231c438, 0x01}, + {0x8231c439, 0x01}, + {0x8231c530, 0x01}, + {0x8231c531, 0x01}, + {0x8231c532, 0x01}, + {0x8231c533, 0x01}, + {0x8231c534, 0x01}, + {0x8231c535, 0x01}, + {0x8231c536, 0x01}, + {0x8231c537, 0x01}, + {0x8231c538, 0x01}, + {0x8231c539, 0x01}, + {0x8231c630, 0x01}, + {0x8231c631, 0x01}, + {0x8231c632, 0x01}, + {0x8231c633, 0x01}, + {0x8231c634, 0x01}, + {0x8231c637, 0x01}, + {0x8231c639, 0x01}, + {0x8231c730, 0x01}, + {0x8231c731, 0x01}, + {0x8231c732, 0x01}, + {0x8231c733, 0x01}, + {0x8231c734, 0x01}, + {0x8231c735, 0x01}, + {0x8231c736, 0x01}, + {0x8231c737, 0x01}, + {0x8231c739, 0x01}, + {0x8231c830, 0x01}, + {0x8231c831, 0x01}, + {0x8231c832, 0x01}, + {0x8231c833, 0x01}, + {0x8231c834, 0x01}, + {0x8231c835, 0x01}, + {0x8231c836, 0x01}, + {0x8231c837, 0x01}, + {0x8231c838, 0x01}, + {0x8231c839, 0x01}, + {0x8231c930, 0x01}, + {0x8231c931, 0x01}, + {0x8231c932, 0x01}, + {0x8231c933, 0x01}, + {0x8231c934, 0x01}, + {0x8231c935, 0x01}, + {0x8231c936, 0x01}, + {0x8231c937, 0x01}, + {0x8231c938, 0x01}, + {0x8231c939, 0x01}, + {0x8231ca30, 0x01}, + {0x8231ca31, 0x01}, + {0x8231ca32, 0x01}, + {0x8231ca34, 0x01}, + {0x8231ca35, 0x01}, + {0x8231ca36, 0x01}, + {0x8231ca37, 0x01}, + {0x8231ca38, 0x01}, + {0x8231ca39, 0x01}, + {0x8231cb30, 0x01}, + {0x8231cb31, 0x01}, + {0x8231cb32, 0x01}, + {0x8231cb33, 0x01}, + {0x8231cb34, 0x01}, + {0x8231cb35, 0x01}, + {0x8231cb36, 0x01}, + {0x8231cb37, 0x01}, + {0x8231cb38, 0x01}, + {0x8231cb39, 0x01}, + {0x8231cc30, 0x01}, + {0x8231cc31, 0x01}, + {0x8231cc32, 0x01}, + {0x8231cc33, 0x01}, + {0x8231cc34, 0x01}, + {0x8231cc35, 0x01}, + {0x8231cc36, 0x01}, + {0x8231cc37, 0x01}, + {0x8231cd30, 0x01}, + {0x8231cd31, 0x01}, + {0x8231cd32, 0x01}, + {0x8231cd33, 0x01}, + {0x8231cd34, 0x01}, + {0x8231cd35, 0x01}, + {0x8231cd36, 0x01}, + {0x8231cd37, 0x01}, + {0x8231cd38, 0x01}, + {0x8231cd39, 0x01}, + {0x8231ce30, 0x01}, + {0x8231ce31, 0x01}, + {0x8231ce32, 0x01}, + {0x8231ce33, 0x01}, + {0x8231ce34, 0x01}, + {0x8231ce35, 0x01}, + {0x8231ce36, 0x01}, + {0x8231ce37, 0x01}, + {0x8231ce38, 0x01}, + {0x8231ce39, 0x01}, + {0x8231cf30, 0x01}, + {0x8231cf31, 0x01}, + {0x8231cf32, 0x01}, + {0x8231cf33, 0x01}, + {0x8231cf34, 0x01}, + {0x8231cf35, 0x01}, + {0x8231cf36, 0x01}, + {0x8231cf37, 0x01}, + {0x8231cf39, 0x01}, + {0x8231d030, 0x01}, + {0x8231d031, 0x01}, + {0x8231d032, 0x01}, + {0x8231d033, 0x01}, + {0x8231d034, 0x01}, + {0x8231d035, 0x01}, + {0x8231d036, 0x01}, + {0x8231d037, 0x01}, + {0x8231d038, 0x01}, + {0x8231d039, 0x01}, + {0x8231d130, 0x01}, + {0x8231d131, 0x01}, + {0x8231d132, 0x01}, + {0x8231d133, 0x01}, + {0x8231d134, 0x01}, + {0x8231d135, 0x01}, + {0x8231d136, 0x01}, + {0x8231d137, 0x01}, + {0x8231d138, 0x01}, + {0x8231d139, 0x01}, + {0x8231d230, 0x01}, + {0x8231d231, 0x01}, + {0x8231d232, 0x01}, + {0x8231d233, 0x01}, + {0x8231d234, 0x01}, + {0x8231d236, 0x01}, + {0x8231d237, 0x01}, + {0x8231d238, 0x01}, + {0x8231d239, 0x01}, + {0x8231d330, 0x01}, + {0x8231d331, 0x01}, + {0x8231d332, 0x01}, + {0x8231d333, 0x01}, + {0x8231d334, 0x01}, + {0x8231d335, 0x01}, + {0x8231d336, 0x01}, + {0x8231d337, 0x01}, + {0x8231d338, 0x01}, + {0x8231d339, 0x01}, + {0x8231d430, 0x01}, + {0x8231d431, 0x01}, + {0x8231d432, 0x01}, + {0x8231d433, 0x01}, + {0x8231d434, 0x01}, + {0x8231d435, 0x01}, + {0x8231d436, 0x01}, + {0x8231d438, 0x01}, + {0x8231d439, 0x01}, + {0x8231d531, 0x01}, + {0x8231d532, 0x01}, + {0x8231d533, 0x01}, + {0x8231d534, 0x01}, + {0x8231d535, 0x01}, + {0x8231d536, 0x01}, + {0x8231d537, 0x01}, + {0x8231d538, 0x01}, + {0x8231d539, 0x01}, + {0x8231d630, 0x01}, + {0x8231d631, 0x01}, + {0x8231d633, 0x01}, + {0x8231d636, 0x01}, + {0x8231d637, 0x01}, + {0x8231d638, 0x01}, + {0x8231d639, 0x01}, + {0x8231d730, 0x01}, + {0x8231d731, 0x01}, + {0x8231d732, 0x01}, + {0x8231d733, 0x01}, + {0x8231d734, 0x01}, + {0x8231d735, 0x01}, + {0x8231d736, 0x01}, + {0x8231d737, 0x01}, + {0x8231d738, 0x01}, + {0x8231d739, 0x01}, + {0x8231d830, 0x01}, + {0x8231d831, 0x01}, + {0x8231d832, 0x01}, + {0x8231d833, 0x01}, + {0x8231d834, 0x01}, + {0x8231d835, 0x01}, + {0x8231d836, 0x01}, + {0x8231d837, 0x01}, + {0x8231d838, 0x01}, + {0x8231d839, 0x01}, + {0x8231d930, 0x01}, + {0x8231d933, 0x01}, + {0x8231d934, 0x01}, + {0x8231d935, 0x01}, + {0x8231d936, 0x01}, + {0x8231d937, 0x01}, + {0x8231d938, 0x01}, + {0x8231d939, 0x01}, + {0x8231da30, 0x01}, + {0x8231da31, 0x01}, + {0x8231da32, 0x01}, + {0x8231da33, 0x01}, + {0x8231da34, 0x01}, + {0x8231da35, 0x01}, + {0x8231da36, 0x01}, + {0x8231da37, 0x01}, + {0x8231da38, 0x01}, + {0x8231da39, 0x01}, + {0x8231db31, 0x01}, + {0x8231db36, 0x01}, + {0x8231db37, 0x01}, + {0x8231db38, 0x01}, + {0x8231db39, 0x01}, + {0x8231dc30, 0x01}, + {0x8231dc31, 0x01}, + {0x8231dc32, 0x01}, + {0x8231dc33, 0x01}, + {0x8231dc34, 0x01}, + {0x8231dc35, 0x01}, + {0x8231dc36, 0x01}, + {0x8231dc37, 0x01}, + {0x8231dc38, 0x01}, + {0x8231dc39, 0x01}, + {0x8231dd30, 0x01}, + {0x8231dd31, 0x01}, + {0x8231dd32, 0x01}, + {0x8231dd33, 0x01}, + {0x8231dd34, 0x01}, + {0x8231dd35, 0x01}, + {0x8231dd36, 0x01}, + {0x8231dd39, 0x01}, + {0x8231de30, 0x01}, + {0x8231de31, 0x01}, + {0x8231de32, 0x01}, + {0x8231de33, 0x01}, + {0x8231de34, 0x01}, + {0x8231de35, 0x01}, + {0x8231de36, 0x01}, + {0x8231de37, 0x01}, + {0x8231de38, 0x01}, + {0x8231de39, 0x01}, + {0x8231df33, 0x01}, + {0x8231df34, 0x01}, + {0x8231df35, 0x01}, + {0x8231df36, 0x01}, + {0x8231df37, 0x01}, + {0x8231df38, 0x01}, + {0x8231df39, 0x01}, + {0x8231e030, 0x01}, + {0x8231e031, 0x01}, + {0x8231e032, 0x01}, + {0x8231e033, 0x01}, + {0x8231e034, 0x01}, + {0x8231e035, 0x01}, + {0x8231e036, 0x01}, + {0x8231e037, 0x01}, + {0x8231e038, 0x01}, + {0x8231e132, 0x01}, + {0x8231e133, 0x01}, + {0x8231e134, 0x01}, + {0x8231e135, 0x01}, + {0x8231e136, 0x01}, + {0x8231e137, 0x01}, + {0x8231e138, 0x01}, + {0x8231e139, 0x01}, + {0x8231e230, 0x01}, + {0x8231e231, 0x01}, + {0x8231e232, 0x01}, + {0x8231e233, 0x01}, + {0x8231e234, 0x01}, + {0x8231e235, 0x01}, + {0x8231e236, 0x01}, + {0x8231e237, 0x01}, + {0x8231e238, 0x01}, + {0x8231e239, 0x01}, + {0x8231e330, 0x01}, + {0x8231e331, 0x01}, + {0x8231e332, 0x01}, + {0x8231e333, 0x01}, + {0x8231e334, 0x01}, + {0x8231e335, 0x01}, + {0x8231e336, 0x01}, + {0x8231e337, 0x01}, + {0x8231e338, 0x01}, + {0x8231e339, 0x01}, + {0x8231e430, 0x01}, + {0x8231e431, 0x01}, + {0x8231e432, 0x01}, + {0x8231e434, 0x01}, + {0x8231e435, 0x01}, + {0x8231e436, 0x01}, + {0x8231e437, 0x01}, + {0x8231e438, 0x01}, + {0x8231e531, 0x01}, + {0x8231e532, 0x01}, + {0x8231e533, 0x01}, + {0x8231e534, 0x01}, + {0x8231e535, 0x01}, + {0x8231e536, 0x01}, + {0x8231e539, 0x01}, + {0x8231e630, 0x01}, + {0x8231e631, 0x01}, + {0x8231e632, 0x01}, + {0x8231e634, 0x01}, + {0x8231e635, 0x01}, + {0x8231e636, 0x01}, + {0x8231e637, 0x01}, + {0x8231e638, 0x01}, + {0x8231e639, 0x01}, + {0x8231e730, 0x01}, + {0x8231e731, 0x01}, + {0x8231e733, 0x01}, + {0x8231e734, 0x01}, + {0x8231e735, 0x01}, + {0x8231e737, 0x01}, + {0x8231e738, 0x01}, + {0x8231e739, 0x01}, + {0x8231e830, 0x01}, + {0x8231e832, 0x01}, + {0x8231e833, 0x01}, + {0x8231e834, 0x01}, + {0x8231e835, 0x01}, + {0x8231e836, 0x01}, + {0x8231e837, 0x01}, + {0x8231e839, 0x01}, + {0x8231e930, 0x01}, + {0x8231e931, 0x01}, + {0x8231e932, 0x01}, + {0x8231e933, 0x01}, + {0x8231e934, 0x01}, + {0x8231e935, 0x01}, + {0x8231e937, 0x01}, + {0x8231e938, 0x01}, + {0x8231e939, 0x01}, + {0x8231ea30, 0x01}, + {0x8231ea31, 0x01}, + {0x8231ea32, 0x01}, + {0x8231ea33, 0x01}, + {0x8231ea34, 0x01}, + {0x8231ea35, 0x01}, + {0x8231ea36, 0x01}, + {0x8231ea37, 0x01}, + {0x8231ea39, 0x01}, + {0x8231eb30, 0x01}, + {0x8231eb31, 0x01}, + {0x8231eb33, 0x01}, + {0x8231eb34, 0x01}, + {0x8231eb35, 0x01}, + {0x8231eb36, 0x01}, + {0x8231eb37, 0x01}, + {0x8231eb38, 0x01}, + {0x8231eb39, 0x01}, + {0x8231ec30, 0x01}, + {0x8231ec31, 0x01}, + {0x8231ec32, 0x01}, + {0x8231ec34, 0x01}, + {0x8231ec35, 0x01}, + {0x8231ec36, 0x01}, + {0x8231ec37, 0x01}, + {0x8231ec38, 0x01}, + {0x8231ec39, 0x01}, + {0x8231ed30, 0x01}, + {0x8231ed31, 0x01}, + {0x8231ed32, 0x01}, + {0x8231ed33, 0x01}, + {0x8231ed34, 0x01}, + {0x8231ed35, 0x01}, + {0x8231ed36, 0x01}, + {0x8231ee32, 0x01}, + {0x8231ee33, 0x01}, + {0x8231ee34, 0x01}, + {0x8231ee35, 0x01}, + {0x8231ee36, 0x01}, + {0x8231ee37, 0x01}, + {0x8231ee38, 0x01}, + {0x8231ee39, 0x01}, + {0x8231ef32, 0x01}, + {0x8231ef33, 0x01}, + {0x8231ef34, 0x01}, + {0x8231ef35, 0x01}, + {0x8231ef36, 0x01}, + {0x8231ef37, 0x01}, + {0x8231ef38, 0x01}, + {0x8231ef39, 0x01}, + {0x8231f032, 0x01}, + {0x8231f033, 0x01}, + {0x8231f034, 0x01}, + {0x8231f035, 0x01}, + {0x8231f036, 0x01}, + {0x8231f037, 0x01}, + {0x8231f038, 0x01}, + {0x8231f130, 0x01}, + {0x8231f133, 0x01}, + {0x8231f134, 0x01}, + {0x8231f135, 0x01}, + {0x8231f136, 0x01}, + {0x8231f137, 0x01}, + {0x8231f138, 0x01}, + {0x8231f139, 0x01}, + {0x8231f230, 0x01}, + {0x8231f231, 0x01}, + {0x8231f232, 0x01}, + {0x8231f233, 0x01}, + {0x8231f234, 0x01}, + {0x8231f235, 0x01}, + {0x8231f236, 0x01}, + {0x8231f237, 0x01}, + {0x8231f238, 0x01}, + {0x8231f239, 0x01}, + {0x8231f330, 0x01}, + {0x8231f331, 0x01}, + {0x8231f332, 0x01}, + {0x8231f333, 0x01}, + {0x8231f334, 0x01}, + {0x8231f336, 0x01}, + {0x8231f337, 0x01}, + {0x8231f338, 0x01}, + {0x8231f339, 0x01}, + {0x8231f430, 0x01}, + {0x8231f431, 0x01}, + {0x8231f432, 0x01}, + {0x8231f433, 0x01}, + {0x8231f434, 0x01}, + {0x8231f435, 0x01}, + {0x8231f436, 0x01}, + {0x8231f437, 0x01}, + {0x8231f438, 0x01}, + {0x8231f439, 0x01}, + {0x8231f530, 0x01}, + {0x8231f531, 0x01}, + {0x8231f532, 0x01}, + {0x8231f533, 0x01}, + {0x8231f534, 0x01}, + {0x8231f535, 0x01}, + {0x8231f536, 0x01}, + {0x8231f537, 0x01}, + {0x8231f538, 0x01}, + {0x8231f539, 0x01}, + {0x8231f630, 0x01}, + {0x8231f631, 0x01}, + {0x8231f632, 0x01}, + {0x8231f633, 0x01}, + {0x8231f634, 0x01}, + {0x8231f635, 0x01}, + {0x8231f636, 0x01}, + {0x8231f638, 0x01}, + {0x8231f639, 0x01}, + {0x8231f730, 0x01}, + {0x8231f731, 0x01}, + {0x8231f732, 0x01}, + {0x8231f733, 0x01}, + {0x8231f734, 0x01}, + {0x8231f735, 0x01}, + {0x8231f736, 0x01}, + {0x8231f737, 0x01}, + {0x8231f739, 0x01}, + {0x8231f830, 0x01}, + {0x8231f831, 0x01}, + {0x8231f832, 0x01}, + {0x8231f833, 0x01}, + {0x8231f834, 0x01}, + {0x8231f835, 0x01}, + {0x8231f836, 0x01}, + {0x8231f838, 0x01}, + {0x8231f839, 0x01}, + {0x8231f930, 0x01}, + {0x8231f931, 0x01}, + {0x8231f932, 0x01}, + {0x8231f933, 0x01}, + {0x8231f934, 0x01}, + {0x8231f935, 0x01}, + {0x8231f936, 0x01}, + {0x8231f937, 0x01}, + {0x8231f938, 0x01}, + {0x8231f939, 0x01}, + {0x8231fa30, 0x01}, + {0x8231fa31, 0x01}, + {0x8231fa32, 0x01}, + {0x8231fa33, 0x01}, + {0x8231fa34, 0x01}, + {0x8231fa35, 0x01}, + {0x8231fa36, 0x01}, + {0x8231fa37, 0x01}, + {0x8231fa38, 0x01}, + {0x8231fa39, 0x01}, + {0x8231fb30, 0x01}, + {0x8231fb31, 0x01}, + {0x8231fb32, 0x01}, + {0x8231fb33, 0x01}, + {0x8231fb34, 0x01}, + {0x8231fb35, 0x01}, + {0x8231fb36, 0x01}, + {0x8231fb37, 0x01}, + {0x8231fb38, 0x01}, + {0x8231fb39, 0x01}, + {0x8231fc31, 0x01}, + {0x8231fc32, 0x01}, + {0x8231fc33, 0x01}, + {0x8231fc34, 0x01}, + {0x8231fc35, 0x01}, + {0x8231fc36, 0x01}, + {0x8231fc38, 0x01}, + {0x8231fc39, 0x01}, + {0x8231fd30, 0x01}, + {0x8231fd31, 0x01}, + {0x8231fd32, 0x01}, + {0x8231fd33, 0x01}, + {0x8231fd34, 0x01}, + {0x8231fd35, 0x01}, + {0x8231fd36, 0x01}, + {0x8231fd37, 0x01}, + {0x8231fd38, 0x01}, + {0x8231fd39, 0x01}, + {0x8231fe30, 0x01}, + {0x8231fe31, 0x01}, + {0x8231fe32, 0x01}, + {0x8231fe33, 0x01}, + {0x8231fe34, 0x01}, + {0x8231fe35, 0x01}, + {0x8231fe36, 0x01}, + {0x8231fe37, 0x01}, + {0x8231fe38, 0x01}, + {0x82328130, 0x01}, + {0x82328131, 0x01}, + {0x82328132, 0x01}, + {0x82328133, 0x01}, + {0x82328134, 0x01}, + {0x82328135, 0x01}, + {0x82328136, 0x01}, + {0x82328137, 0x01}, + {0x82328138, 0x01}, + {0x82328139, 0x01}, + {0x82328230, 0x01}, + {0x82328231, 0x01}, + {0x82328232, 0x01}, + {0x82328233, 0x01}, + {0x82328234, 0x01}, + {0x82328235, 0x01}, + {0x82328236, 0x01}, + {0x82328237, 0x01}, + {0x82328239, 0x01}, + {0x82328330, 0x01}, + {0x82328331, 0x01}, + {0x82328332, 0x01}, + {0x82328333, 0x01}, + {0x82328334, 0x01}, + {0x82328335, 0x01}, + {0x82328336, 0x01}, + {0x82328337, 0x01}, + {0x82328338, 0x01}, + {0x82328339, 0x01}, + {0x82328430, 0x01}, + {0x82328431, 0x01}, + {0x82328432, 0x01}, + {0x82328433, 0x01}, + {0x82328434, 0x01}, + {0x82328435, 0x01}, + {0x82328436, 0x01}, + {0x82328437, 0x01}, + {0x82328438, 0x01}, + {0x82328439, 0x01}, + {0x82328531, 0x01}, + {0x82328532, 0x01}, + {0x82328533, 0x01}, + {0x82328534, 0x01}, + {0x82328535, 0x01}, + {0x82328536, 0x01}, + {0x82328538, 0x01}, + {0x82328539, 0x01}, + {0x82328630, 0x01}, + {0x82328631, 0x01}, + {0x82328634, 0x01}, + {0x82328636, 0x01}, + {0x82328637, 0x01}, + {0x82328638, 0x01}, + {0x82328639, 0x01}, + {0x82328730, 0x01}, + {0x82328731, 0x01}, + {0x82328732, 0x01}, + {0x82328733, 0x01}, + {0x82328735, 0x01}, + {0x82328736, 0x01}, + {0x82328737, 0x01}, + {0x82328738, 0x01}, + {0x82328739, 0x01}, + {0x82328830, 0x01}, + {0x82328831, 0x01}, + {0x82328834, 0x01}, + {0x82328835, 0x01}, + {0x82328836, 0x01}, + {0x82328837, 0x01}, + {0x82328838, 0x01}, + {0x82328839, 0x01}, + {0x82328930, 0x01}, + {0x82328934, 0x01}, + {0x82328936, 0x01}, + {0x82328937, 0x01}, + {0x82328938, 0x01}, + {0x82328939, 0x01}, + {0x82328a30, 0x01}, + {0x82328a36, 0x01}, + {0x82328a37, 0x01}, + {0x82328a38, 0x01}, + {0x82328a39, 0x01}, + {0x82328b30, 0x01}, + {0x82328b31, 0x01}, + {0x82328b32, 0x01}, + {0x82328b33, 0x01}, + {0x82328b34, 0x01}, + {0x82328b35, 0x01}, + {0x82328b36, 0x01}, + {0x82328b37, 0x01}, + {0x82328c30, 0x01}, + {0x82328c31, 0x01}, + {0x82328c32, 0x01}, + {0x82328c33, 0x01}, + {0x82328c34, 0x01}, + {0x82328c35, 0x01}, + {0x82328c38, 0x01}, + {0x82328c39, 0x01}, + {0x82328d30, 0x01}, + {0x82328d32, 0x01}, + {0x82328d33, 0x01}, + {0x82328d35, 0x01}, + {0x82328d38, 0x01}, + {0x82328d39, 0x01}, + {0x82328e30, 0x01}, + {0x82328e31, 0x01}, + {0x82328e32, 0x01}, + {0x82328e33, 0x01}, + {0x82328e34, 0x01}, + {0x82328e35, 0x01}, + {0x82328e36, 0x01}, + {0x82328e37, 0x01}, + {0x82328e38, 0x01}, + {0x82328e39, 0x01}, + {0x82328f30, 0x01}, + {0x82328f31, 0x01}, + {0x82328f32, 0x01}, + {0x82328f33, 0x01}, + {0x82328f34, 0x01}, + {0x82328f35, 0x01}, + {0x82328f36, 0x01}, + {0x82328f37, 0x01}, + {0x82328f38, 0x01}, + {0x82328f39, 0x01}, + {0x82329030, 0x01}, + {0x82329031, 0x01}, + {0x82329032, 0x01}, + {0x82329033, 0x01}, + {0x82329034, 0x01}, + {0x82329035, 0x01}, + {0x82329036, 0x01}, + {0x82329037, 0x01}, + {0x82329038, 0x01}, + {0x82329039, 0x01}, + {0x82329130, 0x01}, + {0x82329131, 0x01}, + {0x82329132, 0x01}, + {0x82329133, 0x01}, + {0x82329134, 0x01}, + {0x82329135, 0x01}, + {0x82329136, 0x01}, + {0x82329137, 0x01}, + {0x82329138, 0x01}, + {0x82329139, 0x01}, + {0x82329230, 0x01}, + {0x82329231, 0x01}, + {0x82329232, 0x01}, + {0x82329233, 0x01}, + {0x82329234, 0x01}, + {0x82329235, 0x01}, + {0x82329236, 0x01}, + {0x82329237, 0x01}, + {0x82329238, 0x01}, + {0x82329239, 0x01}, + {0x82329330, 0x01}, + {0x82329331, 0x01}, + {0x82329332, 0x01}, + {0x82329333, 0x01}, + {0x82329334, 0x01}, + {0x82329335, 0x01}, + {0x82329336, 0x01}, + {0x82329337, 0x01}, + {0x82329338, 0x01}, + {0x82329339, 0x01}, + {0x82329430, 0x01}, + {0x82329431, 0x01}, + {0x82329432, 0x01}, + {0x82329433, 0x01}, + {0x82329434, 0x01}, + {0x82329435, 0x01}, + {0x82329436, 0x01}, + {0x82329437, 0x01}, + {0x82329438, 0x01}, + {0x82329439, 0x01}, + {0x82329530, 0x01}, + {0x82329531, 0x01}, + {0x82329532, 0x01}, + {0x82329533, 0x01}, + {0x82329536, 0x01}, + {0x82329537, 0x01}, + {0x82329538, 0x01}, + {0x82329539, 0x01}, + {0x82329630, 0x01}, + {0x82329631, 0x01}, + {0x82329632, 0x01}, + {0x82329633, 0x01}, + {0x82329634, 0x01}, + {0x82329635, 0x01}, + {0x82329636, 0x01}, + {0x82329637, 0x01}, + {0x82329638, 0x01}, + {0x82329639, 0x01}, + {0x82329730, 0x01}, + {0x82329731, 0x01}, + {0x82329732, 0x01}, + {0x82329733, 0x01}, + {0x82329734, 0x01}, + {0x82329735, 0x01}, + {0x82329736, 0x01}, + {0x82329737, 0x01}, + {0x82329738, 0x01}, + {0x82329739, 0x01}, + {0x82329830, 0x01}, + {0x82329831, 0x01}, + {0x82329832, 0x01}, + {0x82329833, 0x01}, + {0x82329834, 0x01}, + {0x82329835, 0x01}, + {0x82329836, 0x01}, + {0x82329837, 0x01}, + {0x82329838, 0x01}, + {0x82329930, 0x01}, + {0x82329931, 0x01}, + {0x82329932, 0x01}, + {0x82329933, 0x01}, + {0x82329934, 0x01}, + {0x82329936, 0x01}, + {0x82329937, 0x01}, + {0x82329938, 0x01}, + {0x82329939, 0x01}, + {0x82329a30, 0x01}, + {0x82329a31, 0x01}, + {0x82329a32, 0x01}, + {0x82329a33, 0x01}, + {0x82329a34, 0x01}, + {0x82329a35, 0x01}, + {0x82329a36, 0x01}, + {0x82329a37, 0x01}, + {0x82329a38, 0x01}, + {0x82329a39, 0x01}, + {0x82329b30, 0x01}, + {0x82329b31, 0x01}, + {0x82329b32, 0x01}, + {0x82329b33, 0x01}, + {0x82329b34, 0x01}, + {0x82329b35, 0x01}, + {0x82329b36, 0x01}, + {0x82329b37, 0x01}, + {0x82329b38, 0x01}, + {0x82329b39, 0x01}, + {0x82329c30, 0x01}, + {0x82329c31, 0x01}, + {0x82329c32, 0x01}, + {0x82329c33, 0x01}, + {0x82329c34, 0x01}, + {0x82329c35, 0x01}, + {0x82329c36, 0x01}, + {0x82329c37, 0x01}, + {0x82329c38, 0x01}, + {0x82329c39, 0x01}, + {0x82329d30, 0x01}, + {0x82329d31, 0x01}, + {0x82329d32, 0x01}, + {0x82329d33, 0x01}, + {0x82329d34, 0x01}, + {0x82329d35, 0x01}, + {0x82329d36, 0x01}, + {0x82329d37, 0x01}, + {0x82329d38, 0x01}, + {0x82329d39, 0x01}, + {0x82329e30, 0x01}, + {0x82329e31, 0x01}, + {0x82329e32, 0x01}, + {0x82329e33, 0x01}, + {0x82329e34, 0x01}, + {0x82329e35, 0x01}, + {0x82329e36, 0x01}, + {0x82329e37, 0x01}, + {0x82329f31, 0x01}, + {0x82329f32, 0x01}, + {0x82329f33, 0x01}, + {0x82329f34, 0x01}, + {0x82329f35, 0x01}, + {0x82329f36, 0x01}, + {0x82329f37, 0x01}, + {0x82329f38, 0x01}, + {0x82329f39, 0x01}, + {0x8232a030, 0x01}, + {0x8232a031, 0x01}, + {0x8232a032, 0x01}, + {0x8232a033, 0x01}, + {0x8232a034, 0x01}, + {0x8232a035, 0x01}, + {0x8232a036, 0x01}, + {0x8232a037, 0x01}, + {0x8232a038, 0x01}, + {0x8232a039, 0x01}, + {0x8232a130, 0x01}, + {0x8232a131, 0x01}, + {0x8232a132, 0x01}, + {0x8232a133, 0x01}, + {0x8232a134, 0x01}, + {0x8232a135, 0x01}, + {0x8232a136, 0x01}, + {0x8232a137, 0x01}, + {0x8232a138, 0x01}, + {0x8232a230, 0x01}, + {0x8232a231, 0x01}, + {0x8232a232, 0x01}, + {0x8232a233, 0x01}, + {0x8232a234, 0x01}, + {0x8232a235, 0x01}, + {0x8232a236, 0x01}, + {0x8232a237, 0x01}, + {0x8232a238, 0x01}, + {0x8232a239, 0x01}, + {0x8232a330, 0x01}, + {0x8232a331, 0x01}, + {0x8232a332, 0x01}, + {0x8232a333, 0x01}, + {0x8232a334, 0x01}, + {0x8232a335, 0x01}, + {0x8232a336, 0x01}, + {0x8232a337, 0x01}, + {0x8232a338, 0x01}, + {0x8232a339, 0x01}, + {0x8232a430, 0x01}, + {0x8232a431, 0x01}, + {0x8232a432, 0x01}, + {0x8232a433, 0x01}, + {0x8232a434, 0x01}, + {0x8232a435, 0x01}, + {0x8232a436, 0x01}, + {0x8232a437, 0x01}, + {0x8232a438, 0x01}, + {0x8232a439, 0x01}, + {0x8232a530, 0x01}, + {0x8232a531, 0x01}, + {0x8232a532, 0x01}, + {0x8232a533, 0x01}, + {0x8232a534, 0x01}, + {0x8232a535, 0x01}, + {0x8232a536, 0x01}, + {0x8232a537, 0x01}, + {0x8232a538, 0x01}, + {0x8232a539, 0x01}, + {0x8232a630, 0x01}, + {0x8232a631, 0x01}, + {0x8232a632, 0x01}, + {0x8232a633, 0x01}, + {0x8232a634, 0x01}, + {0x8232a635, 0x01}, + {0x8232a636, 0x01}, + {0x8232a637, 0x01}, + {0x8232a638, 0x01}, + {0x8232a639, 0x01}, + {0x8232a730, 0x01}, + {0x8232a731, 0x01}, + {0x8232a732, 0x01}, + {0x8232a733, 0x01}, + {0x8232a734, 0x01}, + {0x8232a735, 0x01}, + {0x8232a736, 0x01}, + {0x8232a737, 0x01}, + {0x8232a738, 0x01}, + {0x8232a739, 0x01}, + {0x8232a830, 0x01}, + {0x8232a831, 0x01}, + {0x8232a832, 0x01}, + {0x8232a833, 0x01}, + {0x8232a834, 0x01}, + {0x8232a835, 0x01}, + {0x8232a836, 0x01}, + {0x8232a837, 0x01}, + {0x8232a838, 0x01}, + {0x8232a839, 0x01}, + {0x8232a930, 0x01}, + {0x8232a931, 0x01}, + {0x8232a932, 0x01}, + {0x8232a933, 0x01}, + {0x8232a934, 0x01}, + {0x8232a935, 0x01}, + {0x8232a937, 0x01}, + {0x8232a938, 0x01}, + {0x8232a939, 0x01}, + {0x8232aa30, 0x01}, + {0x8232aa31, 0x01}, + {0x8232aa32, 0x01}, + {0x8232aa33, 0x01}, + {0x8232aa34, 0x01}, + {0x8232aa35, 0x01}, + {0x8232aa36, 0x01}, + {0x8232aa37, 0x01}, + {0x8232aa38, 0x01}, + {0x8232aa39, 0x01}, + {0x8232ab30, 0x01}, + {0x8232ab31, 0x01}, + {0x8232ab32, 0x01}, + {0x8232ab33, 0x01}, + {0x8232ab34, 0x01}, + {0x8232ab35, 0x01}, + {0x8232ab36, 0x01}, + {0x8232ab37, 0x01}, + {0x8232ab38, 0x01}, + {0x8232ab39, 0x01}, + {0x8232ac30, 0x01}, + {0x8232ac31, 0x01}, + {0x8232ac32, 0x01}, + {0x8232ac33, 0x01}, + {0x8232ac34, 0x01}, + {0x8232ac35, 0x01}, + {0x8232ac36, 0x01}, + {0x8232ac37, 0x01}, + {0x8232ac38, 0x01}, + {0x8232ac39, 0x01}, + {0x8232ad30, 0x01}, + {0x8232ad31, 0x01}, + {0x8232ad32, 0x01}, + {0x8232ad33, 0x01}, + {0x8232ad34, 0x01}, + {0x8232ad35, 0x01}, + {0x8232ad36, 0x01}, + {0x8232ad37, 0x01}, + {0x8232ad38, 0x01}, + {0x8232ad39, 0x01}, + {0x8232ae30, 0x01}, + {0x8232ae31, 0x01}, + {0x8232ae32, 0x01}, + {0x8232ae33, 0x01}, + {0x8232ae34, 0x01}, + {0x8232ae35, 0x01}, + {0x8232ae36, 0x01}, + {0x8232ae37, 0x01}, + {0x8232ae38, 0x01}, + {0x8232ae39, 0x01}, + {0x8232af30, 0x01}, + {0x8232af31, 0x01}, + {0x8232af32, 0x01}, + {0x8232af33, 0x01}, + {0x8232af34, 0x01}, + {0x8232af35, 0x01}, + {0x8232af36, 0x01}, + {0x8232af37, 0x01}, + {0x8232af38, 0x01}, + {0x8232af39, 0x01}, + {0x8232b030, 0x01}, + {0x8232b031, 0x01}, + {0x8232b032, 0x01}, + {0x8232b033, 0x01}, + {0x8232b034, 0x01}, + {0x8232b035, 0x01}, + {0x8232b036, 0x01}, + {0x8232b037, 0x01}, + {0x8232b038, 0x01}, + {0x8232b039, 0x01}, + {0x8232b130, 0x01}, + {0x8232b131, 0x01}, + {0x8232b132, 0x01}, + {0x8232b133, 0x01}, + {0x8232b134, 0x01}, + {0x8232b135, 0x01}, + {0x8232b136, 0x01}, + {0x8232b137, 0x01}, + {0x8232b138, 0x01}, + {0x8232b139, 0x01}, + {0x8232b230, 0x01}, + {0x8232b231, 0x01}, + {0x8232b232, 0x01}, + {0x8232b233, 0x01}, + {0x8232b234, 0x01}, + {0x8232b235, 0x01}, + {0x8232b236, 0x01}, + {0x8232b237, 0x01}, + {0x8232b238, 0x01}, + {0x8232b239, 0x01}, + {0x8232b330, 0x01}, + {0x8232b331, 0x01}, + {0x8232b332, 0x01}, + {0x8232b333, 0x01}, + {0x8232b334, 0x01}, + {0x8232b335, 0x01}, + {0x8232b336, 0x01}, + {0x8232b337, 0x01}, + {0x8232b338, 0x01}, + {0x8232b339, 0x01}, + {0x8232b430, 0x01}, + {0x8232b431, 0x01}, + {0x8232b432, 0x01}, + {0x8232b433, 0x01}, + {0x8232b434, 0x01}, + {0x8232b436, 0x01}, + {0x8232b437, 0x01}, + {0x8232b438, 0x01}, + {0x8232b439, 0x01}, + {0x8232b530, 0x01}, + {0x8232b531, 0x01}, + {0x8232b532, 0x01}, + {0x8232b533, 0x01}, + {0x8232b534, 0x01}, + {0x8232b535, 0x01}, + {0x8232b536, 0x01}, + {0x8232b537, 0x01}, + {0x8232b538, 0x01}, + {0x8232b539, 0x01}, + {0x8232b630, 0x01}, + {0x8232b631, 0x01}, + {0x8232b632, 0x01}, + {0x8232b633, 0x01}, + {0x8232b634, 0x01}, + {0x8232b635, 0x01}, + {0x8232b636, 0x01}, + {0x8232b637, 0x01}, + {0x8232b638, 0x01}, + {0x8232b639, 0x01}, + {0x8232b730, 0x01}, + {0x8232b731, 0x01}, + {0x8232b732, 0x01}, + {0x8232b733, 0x01}, + {0x8232b735, 0x01}, + {0x8232b736, 0x01}, + {0x8232b737, 0x01}, + {0x8232b738, 0x01}, + {0x8232b739, 0x01}, + {0x8232b830, 0x01}, + {0x8232b831, 0x01}, + {0x8232b832, 0x01}, + {0x8232b833, 0x01}, + {0x8232b834, 0x01}, + {0x8232b835, 0x01}, + {0x8232b836, 0x01}, + {0x8232b837, 0x01}, + {0x8232b838, 0x01}, + {0x8232b839, 0x01}, + {0x8232b930, 0x01}, + {0x8232b931, 0x01}, + {0x8232b932, 0x01}, + {0x8232b933, 0x01}, + {0x8232b934, 0x01}, + {0x8232b935, 0x01}, + {0x8232b936, 0x01}, + {0x8232b937, 0x01}, + {0x8232b938, 0x01}, + {0x8232b939, 0x01}, + {0x8232ba30, 0x01}, + {0x8232ba33, 0x01}, + {0x8232ba34, 0x01}, + {0x8232ba35, 0x01}, + {0x8232ba36, 0x01}, + {0x8232ba37, 0x01}, + {0x8232ba38, 0x01}, + {0x8232ba39, 0x01}, + {0x8232bb30, 0x01}, + {0x8232bb31, 0x01}, + {0x8232bb32, 0x01}, + {0x8232bb33, 0x01}, + {0x8232bb35, 0x01}, + {0x8232bb36, 0x01}, + {0x8232bb37, 0x01}, + {0x8232bb38, 0x01}, + {0x8232bb39, 0x01}, + {0x8232bc30, 0x01}, + {0x8232bc31, 0x01}, + {0x8232bc32, 0x01}, + {0x8232bc33, 0x01}, + {0x8232bc34, 0x01}, + {0x8232bc35, 0x01}, + {0x8232bc36, 0x01}, + {0x8232bc37, 0x01}, + {0x8232bc38, 0x01}, + {0x8232bd30, 0x01}, + {0x8232bd31, 0x01}, + {0x8232bd32, 0x01}, + {0x8232bd33, 0x01}, + {0x8232bd34, 0x01}, + {0x8232bd35, 0x01}, + {0x8232bd36, 0x01}, + {0x8232bd37, 0x01}, + {0x8232bd39, 0x01}, + {0x8232be30, 0x01}, + {0x8232be31, 0x01}, + {0x8232be32, 0x01}, + {0x8232be33, 0x01}, + {0x8232be34, 0x01}, + {0x8232be36, 0x01}, + {0x8232be37, 0x01}, + {0x8232be38, 0x01}, + {0x8232be39, 0x01}, + {0x8232bf30, 0x01}, + {0x8232bf31, 0x01}, + {0x8232bf32, 0x01}, + {0x8232bf33, 0x01}, + {0x8232bf34, 0x01}, + {0x8232bf35, 0x01}, + {0x8232bf36, 0x01}, + {0x8232bf37, 0x01}, + {0x8232bf38, 0x01}, + {0x8232bf39, 0x01}, + {0x8232c030, 0x01}, + {0x8232c031, 0x01}, + {0x8232c032, 0x01}, + {0x8232c033, 0x01}, + {0x8232c034, 0x01}, + {0x8232c035, 0x01}, + {0x8232c036, 0x01}, + {0x8232c037, 0x01}, + {0x8232c038, 0x01}, + {0x8232c039, 0x01}, + {0x8232c130, 0x01}, + {0x8232c131, 0x01}, + {0x8232c133, 0x01}, + {0x8232c134, 0x01}, + {0x8232c135, 0x01}, + {0x8232c136, 0x01}, + {0x8232c137, 0x01}, + {0x8232c138, 0x01}, + {0x8232c139, 0x01}, + {0x8232c230, 0x01}, + {0x8232c231, 0x01}, + {0x8232c232, 0x01}, + {0x8232c233, 0x01}, + {0x8232c235, 0x01}, + {0x8232c236, 0x01}, + {0x8232c237, 0x01}, + {0x8232c238, 0x01}, + {0x8232c239, 0x01}, + {0x8232c330, 0x01}, + {0x8232c331, 0x01}, + {0x8232c333, 0x01}, + {0x8232c334, 0x01}, + {0x8232c335, 0x01}, + {0x8232c336, 0x01}, + {0x8232c338, 0x01}, + {0x8232c339, 0x01}, + {0x8232c430, 0x01}, + {0x8232c431, 0x01}, + {0x8232c432, 0x01}, + {0x8232c433, 0x01}, + {0x8232c434, 0x01}, + {0x8232c435, 0x01}, + {0x8232c436, 0x01}, + {0x8232c437, 0x01}, + {0x8232c438, 0x01}, + {0x8232c439, 0x01}, + {0x8232c530, 0x01}, + {0x8232c531, 0x01}, + {0x8232c532, 0x01}, + {0x8232c533, 0x01}, + {0x8232c536, 0x01}, + {0x8232c537, 0x01}, + {0x8232c538, 0x01}, + {0x8232c630, 0x01}, + {0x8232c631, 0x01}, + {0x8232c632, 0x01}, + {0x8232c633, 0x01}, + {0x8232c634, 0x01}, + {0x8232c635, 0x01}, + {0x8232c636, 0x01}, + {0x8232c637, 0x01}, + {0x8232c638, 0x01}, + {0x8232c639, 0x01}, + {0x8232c730, 0x01}, + {0x8232c731, 0x01}, + {0x8232c732, 0x01}, + {0x8232c733, 0x01}, + {0x8232c734, 0x01}, + {0x8232c735, 0x01}, + {0x8232c736, 0x01}, + {0x8232c737, 0x01}, + {0x8232c738, 0x01}, + {0x8232c739, 0x01}, + {0x8232c830, 0x01}, + {0x8232c831, 0x01}, + {0x8232c832, 0x01}, + {0x8232c833, 0x01}, + {0x8232c834, 0x01}, + {0x8232c835, 0x01}, + {0x8232c836, 0x01}, + {0x8232c837, 0x01}, + {0x8232c838, 0x01}, + {0x8232c839, 0x01}, + {0x8232c930, 0x01}, + {0x8232c931, 0x01}, + {0x8232c932, 0x01}, + {0x8232c933, 0x01}, + {0x8232c934, 0x01}, + {0x8232c935, 0x01}, + {0x8232c936, 0x01}, + {0x8232c937, 0x01}, + {0x8232c938, 0x01}, + {0x8232c939, 0x01}, + {0x8232ca30, 0x01}, + {0x8232ca31, 0x01}, + {0x8232ca32, 0x01}, + {0x8232ca33, 0x01}, + {0x8232ca34, 0x01}, + {0x8232ca35, 0x01}, + {0x8232ca36, 0x01}, + {0x8232ca39, 0x01}, + {0x8232cb30, 0x01}, + {0x8232cb31, 0x01}, + {0x8232cb32, 0x01}, + {0x8232cb33, 0x01}, + {0x8232cb34, 0x01}, + {0x8232cb35, 0x01}, + {0x8232cb36, 0x01}, + {0x8232cb37, 0x01}, + {0x8232cb38, 0x01}, + {0x8232cb39, 0x01}, + {0x8232cc30, 0x01}, + {0x8232cc31, 0x01}, + {0x8232cc32, 0x01}, + {0x8232cc33, 0x01}, + {0x8232cc34, 0x01}, + {0x8232cc35, 0x01}, + {0x8232cc36, 0x01}, + {0x8232cc37, 0x01}, + {0x8232cc38, 0x01}, + {0x8232cc39, 0x01}, + {0x8232cd30, 0x01}, + {0x8232cd31, 0x01}, + {0x8232cd32, 0x01}, + {0x8232cd33, 0x01}, + {0x8232cd34, 0x01}, + {0x8232cd37, 0x01}, + {0x8232cd38, 0x01}, + {0x8232cd39, 0x01}, + {0x8232ce32, 0x01}, + {0x8232ce33, 0x01}, + {0x8232ce34, 0x01}, + {0x8232ce35, 0x01}, + {0x8232ce36, 0x01}, + {0x8232ce37, 0x01}, + {0x8232ce38, 0x01}, + {0x8232ce39, 0x01}, + {0x8232cf30, 0x01}, + {0x8232cf31, 0x01}, + {0x8232cf32, 0x01}, + {0x8232cf33, 0x01}, + {0x8232cf34, 0x01}, + {0x8232cf35, 0x01}, + {0x8232cf36, 0x01}, + {0x8232cf37, 0x01}, + {0x8232cf38, 0x01}, + {0x8232cf39, 0x01}, + {0x8232d030, 0x01}, + {0x8232d031, 0x01}, + {0x8232d032, 0x01}, + {0x8232d033, 0x01}, + {0x8232d034, 0x01}, + {0x8232d035, 0x01}, + {0x8232d036, 0x01}, + {0x8232d037, 0x01}, + {0x8232d038, 0x01}, + {0x8232d039, 0x01}, + {0x8232d130, 0x01}, + {0x8232d131, 0x01}, + {0x8232d132, 0x01}, + {0x8232d133, 0x01}, + {0x8232d134, 0x01}, + {0x8232d135, 0x01}, + {0x8232d136, 0x01}, + {0x8232d137, 0x01}, + {0x8232d138, 0x01}, + {0x8232d139, 0x01}, + {0x8232d230, 0x01}, + {0x8232d232, 0x01}, + {0x8232d233, 0x01}, + {0x8232d234, 0x01}, + {0x8232d235, 0x01}, + {0x8232d236, 0x01}, + {0x8232d237, 0x01}, + {0x8232d238, 0x01}, + {0x8232d239, 0x01}, + {0x8232d330, 0x01}, + {0x8232d331, 0x01}, + {0x8232d332, 0x01}, + {0x8232d333, 0x01}, + {0x8232d334, 0x01}, + {0x8232d335, 0x01}, + {0x8232d336, 0x01}, + {0x8232d338, 0x01}, + {0x8232d430, 0x01}, + {0x8232d431, 0x01}, + {0x8232d434, 0x01}, + {0x8232d435, 0x01}, + {0x8232d436, 0x01}, + {0x8232d437, 0x01}, + {0x8232d438, 0x01}, + {0x8232d439, 0x01}, + {0x8232d530, 0x01}, + {0x8232d531, 0x01}, + {0x8232d532, 0x01}, + {0x8232d533, 0x01}, + {0x8232d534, 0x01}, + {0x8232d535, 0x01}, + {0x8232d536, 0x01}, + {0x8232d537, 0x01}, + {0x8232d538, 0x01}, + {0x8232d539, 0x01}, + {0x8232d630, 0x01}, + {0x8232d631, 0x01}, + {0x8232d632, 0x01}, + {0x8232d633, 0x01}, + {0x8232d634, 0x01}, + {0x8232d635, 0x01}, + {0x8232d636, 0x01}, + {0x8232d637, 0x01}, + {0x8232d638, 0x01}, + {0x8232d639, 0x01}, + {0x8232d730, 0x01}, + {0x8232d731, 0x01}, + {0x8232d732, 0x01}, + {0x8232d733, 0x01}, + {0x8232d734, 0x01}, + {0x8232d735, 0x01}, + {0x8232d736, 0x01}, + {0x8232d737, 0x01}, + {0x8232d738, 0x01}, + {0x8232d739, 0x01}, + {0x8232d830, 0x01}, + {0x8232d831, 0x01}, + {0x8232d832, 0x01}, + {0x8232d833, 0x01}, + {0x8232d836, 0x01}, + {0x8232d837, 0x01}, + {0x8232d838, 0x01}, + {0x8232d839, 0x01}, + {0x8232d930, 0x01}, + {0x8232d931, 0x01}, + {0x8232d932, 0x01}, + {0x8232d933, 0x01}, + {0x8232d934, 0x01}, + {0x8232d935, 0x01}, + {0x8232d937, 0x01}, + {0x8232d938, 0x01}, + {0x8232d939, 0x01}, + {0x8232da30, 0x01}, + {0x8232da31, 0x01}, + {0x8232da32, 0x01}, + {0x8232da33, 0x01}, + {0x8232da34, 0x01}, + {0x8232da35, 0x01}, + {0x8232da36, 0x01}, + {0x8232da37, 0x01}, + {0x8232da38, 0x01}, + {0x8232da39, 0x01}, + {0x8232db30, 0x01}, + {0x8232db31, 0x01}, + {0x8232db32, 0x01}, + {0x8232db33, 0x01}, + {0x8232db34, 0x01}, + {0x8232db35, 0x01}, + {0x8232db36, 0x01}, + {0x8232db37, 0x01}, + {0x8232db38, 0x01}, + {0x8232db39, 0x01}, + {0x8232dc30, 0x01}, + {0x8232dc31, 0x01}, + {0x8232dc32, 0x01}, + {0x8232dc33, 0x01}, + {0x8232dc34, 0x01}, + {0x8232dc35, 0x01}, + {0x8232dc36, 0x01}, + {0x8232dc37, 0x01}, + {0x8232dc38, 0x01}, + {0x8232dc39, 0x01}, + {0x8232dd30, 0x01}, + {0x8232dd31, 0x01}, + {0x8232dd32, 0x01}, + {0x8232dd33, 0x01}, + {0x8232dd34, 0x01}, + {0x8232dd35, 0x01}, + {0x8232dd36, 0x01}, + {0x8232dd39, 0x01}, + {0x8232de30, 0x01}, + {0x8232de31, 0x01}, + {0x8232de32, 0x01}, + {0x8232de33, 0x01}, + {0x8232de34, 0x01}, + {0x8232de35, 0x01}, + {0x8232de36, 0x01}, + {0x8232de37, 0x01}, + {0x8232de38, 0x01}, + {0x8232de39, 0x01}, + {0x8232df30, 0x01}, + {0x8232df31, 0x01}, + {0x8232df32, 0x01}, + {0x8232df33, 0x01}, + {0x8232df34, 0x01}, + {0x8232df35, 0x01}, + {0x8232df36, 0x01}, + {0x8232df37, 0x01}, + {0x8232df38, 0x01}, + {0x8232df39, 0x01}, + {0x8232e030, 0x01}, + {0x8232e031, 0x01}, + {0x8232e032, 0x01}, + {0x8232e033, 0x01}, + {0x8232e034, 0x01}, + {0x8232e035, 0x01}, + {0x8232e036, 0x01}, + {0x8232e037, 0x01}, + {0x8232e039, 0x01}, + {0x8232e130, 0x01}, + {0x8232e131, 0x01}, + {0x8232e132, 0x01}, + {0x8232e133, 0x01}, + {0x8232e134, 0x01}, + {0x8232e135, 0x01}, + {0x8232e136, 0x01}, + {0x8232e137, 0x01}, + {0x8232e138, 0x01}, + {0x8232e139, 0x01}, + {0x8232e230, 0x01}, + {0x8232e231, 0x01}, + {0x8232e232, 0x01}, + {0x8232e233, 0x01}, + {0x8232e234, 0x01}, + {0x8232e235, 0x01}, + {0x8232e236, 0x01}, + {0x8232e237, 0x01}, + {0x8232e238, 0x01}, + {0x8232e239, 0x01}, + {0x8232e330, 0x01}, + {0x8232e331, 0x01}, + {0x8232e332, 0x01}, + {0x8232e333, 0x01}, + {0x8232e334, 0x01}, + {0x8232e335, 0x01}, + {0x8232e336, 0x01}, + {0x8232e337, 0x01}, + {0x8232e338, 0x01}, + {0x8232e339, 0x01}, + {0x8232e430, 0x01}, + {0x8232e431, 0x01}, + {0x8232e432, 0x01}, + {0x8232e433, 0x01}, + {0x8232e434, 0x01}, + {0x8232e435, 0x01}, + {0x8232e436, 0x01}, + {0x8232e437, 0x01}, + {0x8232e438, 0x01}, + {0x8232e439, 0x01}, + {0x8232e530, 0x01}, + {0x8232e531, 0x01}, + {0x8232e532, 0x01}, + {0x8232e533, 0x01}, + {0x8232e534, 0x01}, + {0x8232e535, 0x01}, + {0x8232e536, 0x01}, + {0x8232e537, 0x01}, + {0x8232e538, 0x01}, + {0x8232e539, 0x01}, + {0x8232e630, 0x01}, + {0x8232e631, 0x01}, + {0x8232e632, 0x01}, + {0x8232e633, 0x01}, + {0x8232e634, 0x01}, + {0x8232e635, 0x01}, + {0x8232e636, 0x01}, + {0x8232e637, 0x01}, + {0x8232e638, 0x01}, + {0x8232e639, 0x01}, + {0x8232e730, 0x01}, + {0x8232e731, 0x01}, + {0x8232e732, 0x01}, + {0x8232e733, 0x01}, + {0x8232e734, 0x01}, + {0x8232e735, 0x01}, + {0x8232e736, 0x01}, + {0x8232e738, 0x01}, + {0x8232e739, 0x01}, + {0x8232e830, 0x01}, + {0x8232e831, 0x01}, + {0x8232e832, 0x01}, + {0x8232e833, 0x01}, + {0x8232e834, 0x01}, + {0x8232e835, 0x01}, + {0x8232e836, 0x01}, + {0x8232e837, 0x01}, + {0x8232e838, 0x01}, + {0x8232e839, 0x01}, + {0x8232e930, 0x01}, + {0x8232e931, 0x01}, + {0x8232e932, 0x01}, + {0x8232e933, 0x01}, + {0x8232e934, 0x01}, + {0x8232e935, 0x01}, + {0x8232e936, 0x01}, + {0x8232e937, 0x01}, + {0x8232e938, 0x01}, + {0x8232e939, 0x01}, + {0x8232ea30, 0x01}, + {0x8232ea31, 0x01}, + {0x8232ea32, 0x01}, + {0x8232ea33, 0x01}, + {0x8232ea34, 0x01}, + {0x8232ea35, 0x01}, + {0x8232ea36, 0x01}, + {0x8232ea37, 0x01}, + {0x8232ea38, 0x01}, + {0x8232ea39, 0x01}, + {0x8232eb30, 0x01}, + {0x8232eb31, 0x01}, + {0x8232eb32, 0x01}, + {0x8232eb33, 0x01}, + {0x8232eb34, 0x01}, + {0x8232eb35, 0x01}, + {0x8232eb36, 0x01}, + {0x8232eb37, 0x01}, + {0x8232eb38, 0x01}, + {0x8232eb39, 0x01}, + {0x8232ec30, 0x01}, + {0x8232ec31, 0x01}, + {0x8232ec32, 0x01}, + {0x8232ec33, 0x01}, + {0x8232ec34, 0x01}, + {0x8232ec35, 0x01}, + {0x8232ec36, 0x01}, + {0x8232ec37, 0x01}, + {0x8232ec38, 0x01}, + {0x8232ec39, 0x01}, + {0x8232ed30, 0x01}, + {0x8232ed31, 0x01}, + {0x8232ed32, 0x01}, + {0x8232ed33, 0x01}, + {0x8232ed35, 0x01}, + {0x8232ed37, 0x01}, + {0x8232ed38, 0x01}, + {0x8232ed39, 0x01}, + {0x8232ee30, 0x01}, + {0x8232ee31, 0x01}, + {0x8232ee32, 0x01}, + {0x8232ee33, 0x01}, + {0x8232ee34, 0x01}, + {0x8232ee35, 0x01}, + {0x8232ee36, 0x01}, + {0x8232ee37, 0x01}, + {0x8232ee38, 0x01}, + {0x8232ee39, 0x01}, + {0x8232ef30, 0x01}, + {0x8232ef31, 0x01}, + {0x8232ef32, 0x01}, + {0x8232ef33, 0x01}, + {0x8232ef34, 0x01}, + {0x8232ef35, 0x01}, + {0x8232ef36, 0x01}, + {0x8232ef37, 0x01}, + {0x8232ef38, 0x01}, + {0x8232ef39, 0x01}, + {0x8232f030, 0x01}, + {0x8232f031, 0x01}, + {0x8232f032, 0x01}, + {0x8232f033, 0x01}, + {0x8232f034, 0x01}, + {0x8232f035, 0x01}, + {0x8232f036, 0x01}, + {0x8232f037, 0x01}, + {0x8232f038, 0x01}, + {0x8232f039, 0x01}, + {0x8232f130, 0x01}, + {0x8232f131, 0x01}, + {0x8232f132, 0x01}, + {0x8232f133, 0x01}, + {0x8232f134, 0x01}, + {0x8232f135, 0x01}, + {0x8232f136, 0x01}, + {0x8232f137, 0x01}, + {0x8232f138, 0x01}, + {0x8232f139, 0x01}, + {0x8232f230, 0x01}, + {0x8232f231, 0x01}, + {0x8232f232, 0x01}, + {0x8232f233, 0x01}, + {0x8232f234, 0x01}, + {0x8232f235, 0x01}, + {0x8232f236, 0x01}, + {0x8232f237, 0x01}, + {0x8232f238, 0x01}, + {0x8232f239, 0x01}, + {0x8232f330, 0x01}, + {0x8232f331, 0x01}, + {0x8232f332, 0x01}, + {0x8232f333, 0x01}, + {0x8232f334, 0x01}, + {0x8232f335, 0x01}, + {0x8232f336, 0x01}, + {0x8232f337, 0x01}, + {0x8232f338, 0x01}, + {0x8232f339, 0x01}, + {0x8232f430, 0x01}, + {0x8232f431, 0x01}, + {0x8232f432, 0x01}, + {0x8232f433, 0x01}, + {0x8232f434, 0x01}, + {0x8232f435, 0x01}, + {0x8232f436, 0x01}, + {0x8232f437, 0x01}, + {0x8232f438, 0x01}, + {0x8232f439, 0x01}, + {0x8232f530, 0x01}, + {0x8232f531, 0x01}, + {0x8232f532, 0x01}, + {0x8232f533, 0x01}, + {0x8232f534, 0x01}, + {0x8232f535, 0x01}, + {0x8232f536, 0x01}, + {0x8232f537, 0x01}, + {0x8232f538, 0x01}, + {0x8232f539, 0x01}, + {0x8232f630, 0x01}, + {0x8232f631, 0x01}, + {0x8232f632, 0x01}, + {0x8232f633, 0x01}, + {0x8232f634, 0x01}, + {0x8232f635, 0x01}, + {0x8232f636, 0x01}, + {0x8232f637, 0x01}, + {0x8232f638, 0x01}, + {0x8232f639, 0x01}, + {0x8232f730, 0x01}, + {0x8232f731, 0x01}, + {0x8232f732, 0x01}, + {0x8232f733, 0x01}, + {0x8232f734, 0x01}, + {0x8232f735, 0x01}, + {0x8232f736, 0x01}, + {0x8232f737, 0x01}, + {0x8232f738, 0x01}, + {0x8232f739, 0x01}, + {0x8232f830, 0x01}, + {0x8232f831, 0x01}, + {0x8232f832, 0x01}, + {0x8232f833, 0x01}, + {0x8232f834, 0x01}, + {0x8232f835, 0x01}, + {0x8232f836, 0x01}, + {0x8232f837, 0x01}, + {0x8232f838, 0x01}, + {0x8232f839, 0x01}, + {0x8232f930, 0x01}, + {0x8232f931, 0x01}, + {0x8232f932, 0x01}, + {0x8232f933, 0x01}, + {0x8232f934, 0x01}, + {0x8232f935, 0x01}, + {0x8232f936, 0x01}, + {0x8232f937, 0x01}, + {0x8232f938, 0x01}, + {0x8232f939, 0x01}, + {0x8232fa30, 0x01}, + {0x8232fa31, 0x01}, + {0x8232fa32, 0x01}, + {0x8232fa33, 0x01}, + {0x8232fa34, 0x01}, + {0x8232fa35, 0x01}, + {0x8232fa36, 0x01}, + {0x8232fa37, 0x01}, + {0x8232fa38, 0x01}, + {0x8232fa39, 0x01}, + {0x8232fb30, 0x01}, + {0x8232fb32, 0x01}, + {0x8232fb33, 0x01}, + {0x8232fb34, 0x01}, + {0x8232fb35, 0x01}, + {0x8232fb36, 0x01}, + {0x8232fb37, 0x01}, + {0x8232fb38, 0x01}, + {0x8232fb39, 0x01}, + {0x8232fc30, 0x01}, + {0x8232fc31, 0x01}, + {0x8232fc32, 0x01}, + {0x8232fc33, 0x01}, + {0x8232fc34, 0x01}, + {0x8232fc35, 0x01}, + {0x8232fc36, 0x01}, + {0x8232fc37, 0x01}, + {0x8232fc38, 0x01}, + {0x8232fc39, 0x01}, + {0x8232fd30, 0x01}, + {0x8232fd31, 0x01}, + {0x8232fd32, 0x01}, + {0x8232fd33, 0x01}, + {0x8232fd34, 0x01}, + {0x8232fd35, 0x01}, + {0x8232fd36, 0x01}, + {0x8232fd37, 0x01}, + {0x8232fd38, 0x01}, + {0x8232fd39, 0x01}, + {0x8232fe30, 0x01}, + {0x8232fe31, 0x01}, + {0x8232fe32, 0x01}, + {0x8232fe33, 0x01}, + {0x8232fe34, 0x01}, + {0x8232fe35, 0x01}, + {0x8232fe36, 0x01}, + {0x8232fe37, 0x01}, + {0x8232fe38, 0x01}, + {0x8232fe39, 0x01}, + {0x82338130, 0x01}, + {0x82338131, 0x01}, + {0x82338132, 0x01}, + {0x82338133, 0x01}, + {0x82338134, 0x01}, + {0x82338135, 0x01}, + {0x82338136, 0x01}, + {0x82338137, 0x01}, + {0x82338138, 0x01}, + {0x82338139, 0x01}, + {0x82338230, 0x01}, + {0x82338231, 0x01}, + {0x82338232, 0x01}, + {0x82338233, 0x01}, + {0x82338234, 0x01}, + {0x82338235, 0x01}, + {0x82338236, 0x01}, + {0x82338237, 0x01}, + {0x82338238, 0x01}, + {0x82338239, 0x01}, + {0x82338330, 0x01}, + {0x82338331, 0x01}, + {0x82338332, 0x01}, + {0x82338333, 0x01}, + {0x82338334, 0x01}, + {0x82338335, 0x01}, + {0x82338336, 0x01}, + {0x82338337, 0x01}, + {0x82338338, 0x01}, + {0x82338339, 0x01}, + {0x82338430, 0x01}, + {0x82338431, 0x01}, + {0x82338432, 0x01}, + {0x82338433, 0x01}, + {0x82338434, 0x01}, + {0x82338435, 0x01}, + {0x82338436, 0x01}, + {0x82338438, 0x01}, + {0x82338439, 0x01}, + {0x82338531, 0x01}, + {0x82338532, 0x01}, + {0x82338533, 0x01}, + {0x82338534, 0x01}, + {0x82338535, 0x01}, + {0x82338536, 0x01}, + {0x82338538, 0x01}, + {0x82338539, 0x01}, + {0x82338630, 0x01}, + {0x82338631, 0x01}, + {0x82338632, 0x01}, + {0x82338633, 0x01}, + {0x82338634, 0x01}, + {0x82338635, 0x01}, + {0x82338636, 0x01}, + {0x82338637, 0x01}, + {0x82338638, 0x01}, + {0x82338639, 0x01}, + {0x82338730, 0x01}, + {0x82338731, 0x01}, + {0x82338732, 0x01}, + {0x82338733, 0x01}, + {0x82338734, 0x01}, + {0x82338735, 0x01}, + {0x82338736, 0x01}, + {0x82338737, 0x01}, + {0x82338738, 0x01}, + {0x82338739, 0x01}, + {0x82338830, 0x01}, + {0x82338831, 0x01}, + {0x82338832, 0x01}, + {0x82338833, 0x01}, + {0x82338834, 0x01}, + {0x82338835, 0x01}, + {0x82338836, 0x01}, + {0x82338837, 0x01}, + {0x82338838, 0x01}, + {0x82338839, 0x01}, + {0x82338930, 0x01}, + {0x82338931, 0x01}, + {0x82338932, 0x01}, + {0x82338933, 0x01}, + {0x82338934, 0x01}, + {0x82338935, 0x01}, + {0x82338936, 0x01}, + {0x82338937, 0x01}, + {0x82338938, 0x01}, + {0x82338939, 0x01}, + {0x82338a30, 0x01}, + {0x82338a31, 0x01}, + {0x82338a32, 0x01}, + {0x82338a33, 0x01}, + {0x82338a34, 0x01}, + {0x82338a35, 0x01}, + {0x82338a36, 0x01}, + {0x82338a37, 0x01}, + {0x82338a38, 0x01}, + {0x82338a39, 0x01}, + {0x82338b30, 0x01}, + {0x82338b31, 0x01}, + {0x82338b32, 0x01}, + {0x82338b33, 0x01}, + {0x82338b34, 0x01}, + {0x82338b35, 0x01}, + {0x82338b36, 0x01}, + {0x82338b37, 0x01}, + {0x82338b38, 0x01}, + {0x82338b39, 0x01}, + {0x82338c30, 0x01}, + {0x82338c31, 0x01}, + {0x82338c32, 0x01}, + {0x82338c33, 0x01}, + {0x82338c34, 0x01}, + {0x82338c35, 0x01}, + {0x82338c38, 0x01}, + {0x82338c39, 0x01}, + {0x82338d30, 0x01}, + {0x82338d31, 0x01}, + {0x82338d32, 0x01}, + {0x82338d33, 0x01}, + {0x82338d34, 0x01}, + {0x82338d35, 0x01}, + {0x82338d36, 0x01}, + {0x82338d37, 0x01}, + {0x82338d38, 0x01}, + {0x82338d39, 0x01}, + {0x82338e30, 0x01}, + {0x82338e31, 0x01}, + {0x82338e32, 0x01}, + {0x82338e33, 0x01}, + {0x82338e34, 0x01}, + {0x82338e35, 0x01}, + {0x82338e36, 0x01}, + {0x82338e37, 0x01}, + {0x82338e38, 0x01}, + {0x82338e39, 0x01}, + {0x82338f30, 0x01}, + {0x82338f31, 0x01}, + {0x82338f32, 0x01}, + {0x82338f33, 0x01}, + {0x82338f34, 0x01}, + {0x82338f35, 0x01}, + {0x82338f36, 0x01}, + {0x82338f37, 0x01}, + {0x82338f38, 0x01}, + {0x82338f39, 0x01}, + {0x82339030, 0x01}, + {0x82339031, 0x01}, + {0x82339032, 0x01}, + {0x82339033, 0x01}, + {0x82339034, 0x01}, + {0x82339035, 0x01}, + {0x82339036, 0x01}, + {0x82339037, 0x01}, + {0x82339038, 0x01}, + {0x82339039, 0x01}, + {0x82339130, 0x01}, + {0x82339131, 0x01}, + {0x82339132, 0x01}, + {0x82339133, 0x01}, + {0x82339134, 0x01}, + {0x82339135, 0x01}, + {0x82339136, 0x01}, + {0x82339137, 0x01}, + {0x82339138, 0x01}, + {0x82339139, 0x01}, + {0x82339230, 0x01}, + {0x82339231, 0x01}, + {0x82339232, 0x01}, + {0x82339233, 0x01}, + {0x82339234, 0x01}, + {0x82339235, 0x01}, + {0x82339236, 0x01}, + {0x82339237, 0x01}, + {0x82339238, 0x01}, + {0x82339239, 0x01}, + {0x82339330, 0x01}, + {0x82339331, 0x01}, + {0x82339332, 0x01}, + {0x82339333, 0x01}, + {0x82339334, 0x01}, + {0x82339335, 0x01}, + {0x82339336, 0x01}, + {0x82339337, 0x01}, + {0x82339338, 0x01}, + {0x82339339, 0x01}, + {0x82339430, 0x01}, + {0x82339431, 0x01}, + {0x82339432, 0x01}, + {0x82339433, 0x01}, + {0x82339434, 0x01}, + {0x82339435, 0x01}, + {0x82339436, 0x01}, + {0x82339437, 0x01}, + {0x82339438, 0x01}, + {0x82339439, 0x01}, + {0x82339530, 0x01}, + {0x82339531, 0x01}, + {0x82339532, 0x01}, + {0x82339533, 0x01}, + {0x82339534, 0x01}, + {0x82339535, 0x01}, + {0x82339536, 0x01}, + {0x82339537, 0x01}, + {0x82339538, 0x01}, + {0x82339539, 0x01}, + {0x82339630, 0x01}, + {0x82339631, 0x01}, + {0x82339632, 0x01}, + {0x82339633, 0x01}, + {0x82339634, 0x01}, + {0x82339635, 0x01}, + {0x82339636, 0x01}, + {0x82339638, 0x01}, + {0x82339639, 0x01}, + {0x82339730, 0x01}, + {0x82339732, 0x01}, + {0x82339733, 0x01}, + {0x82339734, 0x01}, + {0x82339735, 0x01}, + {0x82339736, 0x01}, + {0x82339737, 0x01}, + {0x82339738, 0x01}, + {0x82339739, 0x01}, + {0x82339830, 0x01}, + {0x82339831, 0x01}, + {0x82339832, 0x01}, + {0x82339833, 0x01}, + {0x82339834, 0x01}, + {0x82339835, 0x01}, + {0x82339836, 0x01}, + {0x82339837, 0x01}, + {0x82339838, 0x01}, + {0x82339839, 0x01}, + {0x82339930, 0x01}, + {0x82339931, 0x01}, + {0x82339932, 0x01}, + {0x82339933, 0x01}, + {0x82339934, 0x01}, + {0x82339936, 0x01}, + {0x82339937, 0x01}, + {0x82339938, 0x01}, + {0x82339939, 0x01}, + {0x82339a30, 0x01}, + {0x82339a31, 0x01}, + {0x82339a32, 0x01}, + {0x82339a33, 0x01}, + {0x82339a35, 0x01}, + {0x82339a36, 0x01}, + {0x82339a37, 0x01}, + {0x82339a38, 0x01}, + {0x82339a39, 0x01}, + {0x82339b30, 0x01}, + {0x82339b32, 0x01}, + {0x82339b33, 0x01}, + {0x82339b34, 0x01}, + {0x82339b35, 0x01}, + {0x82339b36, 0x01}, + {0x82339b37, 0x01}, + {0x82339b38, 0x01}, + {0x82339b39, 0x01}, + {0x82339c30, 0x01}, + {0x82339c31, 0x01}, + {0x82339c32, 0x01}, + {0x82339c33, 0x01}, + {0x82339c34, 0x01}, + {0x82339c35, 0x01}, + {0x82339c36, 0x01}, + {0x82339c37, 0x01}, + {0x82339c38, 0x01}, + {0x82339c39, 0x01}, + {0x82339d31, 0x01}, + {0x82339d32, 0x01}, + {0x82339d33, 0x01}, + {0x82339d34, 0x01}, + {0x82339d35, 0x01}, + {0x82339d36, 0x01}, + {0x82339d37, 0x01}, + {0x82339d38, 0x01}, + {0x82339d39, 0x01}, + {0x82339e30, 0x01}, + {0x82339e31, 0x01}, + {0x82339e32, 0x01}, + {0x82339e33, 0x01}, + {0x82339e34, 0x01}, + {0x82339e35, 0x01}, + {0x82339e36, 0x01}, + {0x82339e37, 0x01}, + {0x82339e38, 0x01}, + {0x82339e39, 0x01}, + {0x82339f30, 0x01}, + {0x82339f31, 0x01}, + {0x82339f32, 0x01}, + {0x82339f33, 0x01}, + {0x82339f34, 0x01}, + {0x82339f35, 0x01}, + {0x82339f36, 0x01}, + {0x82339f37, 0x01}, + {0x82339f38, 0x01}, + {0x8233a031, 0x01}, + {0x8233a032, 0x01}, + {0x8233a033, 0x01}, + {0x8233a034, 0x01}, + {0x8233a035, 0x01}, + {0x8233a036, 0x01}, + {0x8233a037, 0x01}, + {0x8233a038, 0x01}, + {0x8233a039, 0x01}, + {0x8233a130, 0x01}, + {0x8233a131, 0x01}, + {0x8233a132, 0x01}, + {0x8233a133, 0x01}, + {0x8233a134, 0x01}, + {0x8233a135, 0x01}, + {0x8233a136, 0x01}, + {0x8233a138, 0x01}, + {0x8233a139, 0x01}, + {0x8233a230, 0x01}, + {0x8233a231, 0x01}, + {0x8233a232, 0x01}, + {0x8233a233, 0x01}, + {0x8233a234, 0x01}, + {0x8233a235, 0x01}, + {0x8233a236, 0x01}, + {0x8233a237, 0x01}, + {0x8233a238, 0x01}, + {0x8233a239, 0x01}, + {0x8233a330, 0x01}, + {0x8233a331, 0x01}, + {0x8233a332, 0x01}, + {0x8233a333, 0x01}, + {0x8233a334, 0x01}, + {0x8233a335, 0x01}, + {0x8233a336, 0x01}, + {0x8233a338, 0x01}, + {0x8233a339, 0x01}, + {0x8233a430, 0x01}, + {0x8233a431, 0x01}, + {0x8233a432, 0x01}, + {0x8233a433, 0x01}, + {0x8233a434, 0x01}, + {0x8233a435, 0x01}, + {0x8233a436, 0x01}, + {0x8233a437, 0x01}, + {0x8233a438, 0x01}, + {0x8233a439, 0x01}, + {0x8233a530, 0x01}, + {0x8233a531, 0x01}, + {0x8233a532, 0x01}, + {0x8233a533, 0x01}, + {0x8233a534, 0x01}, + {0x8233a535, 0x01}, + {0x8233a536, 0x01}, + {0x8233a539, 0x01}, + {0x8233a631, 0x01}, + {0x8233a632, 0x01}, + {0x8233a633, 0x01}, + {0x8233a634, 0x01}, + {0x8233a635, 0x01}, + {0x8233a636, 0x01}, + {0x8233a637, 0x01}, + {0x8233a638, 0x01}, + {0x8233a639, 0x01}, + {0x8233a730, 0x01}, + {0x8233a731, 0x01}, + {0x8233a732, 0x01}, + {0x8233a733, 0x01}, + {0x8233a734, 0x01}, + {0x8233a736, 0x01}, + {0x8233a737, 0x01}, + {0x8233a738, 0x01}, + {0x8233a739, 0x01}, + {0x8233a830, 0x01}, + {0x8233a831, 0x01}, + {0x8233a832, 0x01}, + {0x8233a833, 0x01}, + {0x8233a834, 0x01}, + {0x8233a835, 0x01}, + {0x8233a836, 0x01}, + {0x8233a837, 0x01}, + {0x8233a838, 0x01}, + {0x8233a839, 0x01}, + {0x8233a930, 0x01}, + {0x8233a931, 0x01}, + {0x8233a932, 0x01}, + {0x8233a933, 0x01}, + {0x8233a934, 0x01}, + {0x8233a935, 0x01}, + {0x8233a936, 0x01}, + {0x8233a937, 0x01}, + {0x8233a938, 0x01}, + {0x8233a939, 0x01}, + {0x8233aa30, 0x01}, + {0x8233aa31, 0x01}, + {0x8233aa32, 0x01}, + {0x8233aa33, 0x01}, + {0x8233aa34, 0x01}, + {0x8233aa35, 0x01}, + {0x8233aa36, 0x01}, + {0x8233aa37, 0x01}, + {0x8233aa38, 0x01}, + {0x8233aa39, 0x01}, + {0x8233ab30, 0x01}, + {0x8233ab31, 0x01}, + {0x8233ab32, 0x01}, + {0x8233ab33, 0x01}, + {0x8233ab34, 0x01}, + {0x8233ab35, 0x01}, + {0x8233ab36, 0x01}, + {0x8233ab37, 0x01}, + {0x8233ab39, 0x01}, + {0x8233ac31, 0x01}, + {0x8233ac32, 0x01}, + {0x8233ac34, 0x01}, + {0x8233ac35, 0x01}, + {0x8233ac36, 0x01}, + {0x8233ac37, 0x01}, + {0x8233ac38, 0x01}, + {0x8233ac39, 0x01}, + {0x8233ad30, 0x01}, + {0x8233ad31, 0x01}, + {0x8233ad32, 0x01}, + {0x8233ad33, 0x01}, + {0x8233ad34, 0x01}, + {0x8233ad35, 0x01}, + {0x8233ad36, 0x01}, + {0x8233ad37, 0x01}, + {0x8233ad38, 0x01}, + {0x8233ad39, 0x01}, + {0x8233ae30, 0x01}, + {0x8233ae31, 0x01}, + {0x8233ae32, 0x01}, + {0x8233ae33, 0x01}, + {0x8233ae34, 0x01}, + {0x8233ae35, 0x01}, + {0x8233ae38, 0x01}, + {0x8233ae39, 0x01}, + {0x8233af30, 0x01}, + {0x8233af31, 0x01}, + {0x8233af32, 0x01}, + {0x8233af33, 0x01}, + {0x8233af34, 0x01}, + {0x8233af35, 0x01}, + {0x8233af36, 0x01}, + {0x8233af37, 0x01}, + {0x8233af38, 0x01}, + {0x8233af39, 0x01}, + {0x8233b031, 0x01}, + {0x8233b032, 0x01}, + {0x8233b033, 0x01}, + {0x8233b034, 0x01}, + {0x8233b035, 0x01}, + {0x8233b036, 0x01}, + {0x8233b037, 0x01}, + {0x8233b038, 0x01}, + {0x8233b039, 0x01}, + {0x8233b130, 0x01}, + {0x8233b131, 0x01}, + {0x8233b133, 0x01}, + {0x8233b134, 0x01}, + {0x8233b135, 0x01}, + {0x8233b136, 0x01}, + {0x8233b137, 0x01}, + {0x8233b138, 0x01}, + {0x8233b139, 0x01}, + {0x8233b230, 0x01}, + {0x8233b231, 0x01}, + {0x8233b232, 0x01}, + {0x8233b233, 0x01}, + {0x8233b234, 0x01}, + {0x8233b235, 0x01}, + {0x8233b236, 0x01}, + {0x8233b237, 0x01}, + {0x8233b238, 0x01}, + {0x8233b239, 0x01}, + {0x8233b330, 0x01}, + {0x8233b331, 0x01}, + {0x8233b332, 0x01}, + {0x8233b333, 0x01}, + {0x8233b334, 0x01}, + {0x8233b335, 0x01}, + {0x8233b336, 0x01}, + {0x8233b337, 0x01}, + {0x8233b339, 0x01}, + {0x8233b430, 0x01}, + {0x8233b431, 0x01}, + {0x8233b432, 0x01}, + {0x8233b433, 0x01}, + {0x8233b434, 0x01}, + {0x8233b435, 0x01}, + {0x8233b436, 0x01}, + {0x8233b437, 0x01}, + {0x8233b438, 0x01}, + {0x8233b439, 0x01}, + {0x8233b530, 0x01}, + {0x8233b531, 0x01}, + {0x8233b532, 0x01}, + {0x8233b533, 0x01}, + {0x8233b534, 0x01}, + {0x8233b535, 0x01}, + {0x8233b536, 0x01}, + {0x8233b537, 0x01}, + {0x8233b538, 0x01}, + {0x8233b539, 0x01}, + {0x8233b630, 0x01}, + {0x8233b631, 0x01}, + {0x8233b632, 0x01}, + {0x8233b633, 0x01}, + {0x8233b634, 0x01}, + {0x8233b635, 0x01}, + {0x8233b636, 0x01}, + {0x8233b637, 0x01}, + {0x8233b638, 0x01}, + {0x8233b639, 0x01}, + {0x8233b730, 0x01}, + {0x8233b731, 0x01}, + {0x8233b732, 0x01}, + {0x8233b733, 0x01}, + {0x8233b734, 0x01}, + {0x8233b735, 0x01}, + {0x8233b736, 0x01}, + {0x8233b737, 0x01}, + {0x8233b738, 0x01}, + {0x8233b739, 0x01}, + {0x8233b830, 0x01}, + {0x8233b831, 0x01}, + {0x8233b832, 0x01}, + {0x8233b833, 0x01}, + {0x8233b834, 0x01}, + {0x8233b835, 0x01}, + {0x8233b836, 0x01}, + {0x8233b837, 0x01}, + {0x8233b838, 0x01}, + {0x8233b839, 0x01}, + {0x8233b930, 0x01}, + {0x8233b931, 0x01}, + {0x8233b932, 0x01}, + {0x8233b933, 0x01}, + {0x8233b934, 0x01}, + {0x8233b935, 0x01}, + {0x8233b936, 0x01}, + {0x8233b937, 0x01}, + {0x8233b938, 0x01}, + {0x8233b939, 0x01}, + {0x8233ba30, 0x01}, + {0x8233ba31, 0x01}, + {0x8233ba32, 0x01}, + {0x8233ba33, 0x01}, + {0x8233ba34, 0x01}, + {0x8233ba35, 0x01}, + {0x8233ba36, 0x01}, + {0x8233ba37, 0x01}, + {0x8233ba38, 0x01}, + {0x8233ba39, 0x01}, + {0x8233bb31, 0x01}, + {0x8233bb32, 0x01}, + {0x8233bb33, 0x01}, + {0x8233bb34, 0x01}, + {0x8233bb35, 0x01}, + {0x8233bb36, 0x01}, + {0x8233bb37, 0x01}, + {0x8233bb38, 0x01}, + {0x8233bb39, 0x01}, + {0x8233bc30, 0x01}, + {0x8233bc31, 0x01}, + {0x8233bc32, 0x01}, + {0x8233bc33, 0x01}, + {0x8233bc34, 0x01}, + {0x8233bc35, 0x01}, + {0x8233bc36, 0x01}, + {0x8233bc37, 0x01}, + {0x8233bc38, 0x01}, + {0x8233bc39, 0x01}, + {0x8233bd30, 0x01}, + {0x8233bd31, 0x01}, + {0x8233bd32, 0x01}, + {0x8233bd33, 0x01}, + {0x8233bd34, 0x01}, + {0x8233bd35, 0x01}, + {0x8233bd36, 0x01}, + {0x8233bd37, 0x01}, + {0x8233bd38, 0x01}, + {0x8233bd39, 0x01}, + {0x8233be30, 0x01}, + {0x8233be31, 0x01}, + {0x8233be32, 0x01}, + {0x8233be33, 0x01}, + {0x8233be34, 0x01}, + {0x8233be35, 0x01}, + {0x8233be36, 0x01}, + {0x8233be37, 0x01}, + {0x8233be38, 0x01}, + {0x8233be39, 0x01}, + {0x8233bf30, 0x01}, + {0x8233bf31, 0x01}, + {0x8233bf32, 0x01}, + {0x8233bf33, 0x01}, + {0x8233bf34, 0x01}, + {0x8233bf35, 0x01}, + {0x8233bf36, 0x01}, + {0x8233bf38, 0x01}, + {0x8233bf39, 0x01}, + {0x8233c030, 0x01}, + {0x8233c031, 0x01}, + {0x8233c032, 0x01}, + {0x8233c034, 0x01}, + {0x8233c035, 0x01}, + {0x8233c036, 0x01}, + {0x8233c037, 0x01}, + {0x8233c038, 0x01}, + {0x8233c039, 0x01}, + {0x8233c130, 0x01}, + {0x8233c131, 0x01}, + {0x8233c132, 0x01}, + {0x8233c133, 0x01}, + {0x8233c134, 0x01}, + {0x8233c135, 0x01}, + {0x8233c136, 0x01}, + {0x8233c137, 0x01}, + {0x8233c138, 0x01}, + {0x8233c139, 0x01}, + {0x8233c230, 0x01}, + {0x8233c231, 0x01}, + {0x8233c232, 0x01}, + {0x8233c233, 0x01}, + {0x8233c234, 0x01}, + {0x8233c235, 0x01}, + {0x8233c236, 0x01}, + {0x8233c237, 0x01}, + {0x8233c238, 0x01}, + {0x8233c239, 0x01}, + {0x8233c330, 0x01}, + {0x8233c331, 0x01}, + {0x8233c332, 0x01}, + {0x8233c333, 0x01}, + {0x8233c334, 0x01}, + {0x8233c335, 0x01}, + {0x8233c336, 0x01}, + {0x8233c337, 0x01}, + {0x8233c338, 0x01}, + {0x8233c339, 0x01}, + {0x8233c430, 0x01}, + {0x8233c431, 0x01}, + {0x8233c432, 0x01}, + {0x8233c433, 0x01}, + {0x8233c434, 0x01}, + {0x8233c435, 0x01}, + {0x8233c437, 0x01}, + {0x8233c438, 0x01}, + {0x8233c439, 0x01}, + {0x8233c530, 0x01}, + {0x8233c531, 0x01}, + {0x8233c532, 0x01}, + {0x8233c533, 0x01}, + {0x8233c534, 0x01}, + {0x8233c536, 0x01}, + {0x8233c537, 0x01}, + {0x8233c538, 0x01}, + {0x8233c539, 0x01}, + {0x8233c630, 0x01}, + {0x8233c631, 0x01}, + {0x8233c632, 0x01}, + {0x8233c633, 0x01}, + {0x8233c634, 0x01}, + {0x8233c635, 0x01}, + {0x8233c636, 0x01}, + {0x8233c637, 0x01}, + {0x8233c638, 0x01}, + {0x8233c639, 0x01}, + {0x8233c730, 0x01}, + {0x8233c731, 0x01}, + {0x8233c732, 0x01}, + {0x8233c733, 0x01}, + {0x8233c734, 0x01}, + {0x8233c735, 0x01}, + {0x8233c736, 0x01}, + {0x8233c737, 0x01}, + {0x8233c738, 0x01}, + {0x8233c739, 0x01}, + {0x8233c830, 0x01}, + {0x8233c831, 0x01}, + {0x8233c832, 0x01}, + {0x8233c833, 0x01}, + {0x8233c834, 0x01}, + {0x8233c835, 0x01}, + {0x8233c836, 0x01}, + {0x8233c837, 0x01}, + {0x8233c838, 0x01}, + {0x8233c839, 0x01}, + {0x8233c933, 0x01}, + {0x8233c934, 0x01}, + {0x8233c935, 0x01}, + {0x8233c936, 0x01}, + {0x8233c937, 0x01}, + {0x8233c939, 0x01}, + {0x8233ca30, 0x01}, + {0x8233ca31, 0x01}, + {0x8233ca32, 0x01}, + {0x8233ca33, 0x01}, + {0x8233ca34, 0x01}, + {0x8233ca35, 0x01}, + {0x8233ca36, 0x01}, + {0x8233ca37, 0x01}, + {0x8233ca38, 0x01}, + {0x8233ca39, 0x01}, + {0x8233cb30, 0x01}, + {0x8233cb31, 0x01}, + {0x8233cb32, 0x01}, + {0x8233cb33, 0x01}, + {0x8233cb34, 0x01}, + {0x8233cb35, 0x01}, + {0x8233cb36, 0x01}, + {0x8233cb37, 0x01}, + {0x8233cb38, 0x01}, + {0x8233cb39, 0x01}, + {0x8233cc30, 0x01}, + {0x8233cc32, 0x01}, + {0x8233cc33, 0x01}, + {0x8233cc34, 0x01}, + {0x8233cc35, 0x01}, + {0x8233cc36, 0x01}, + {0x8233cc37, 0x01}, + {0x8233cc38, 0x01}, + {0x8233cc39, 0x01}, + {0x8233cd30, 0x01}, + {0x8233cd31, 0x01}, + {0x8233cd33, 0x01}, + {0x8233cd34, 0x01}, + {0x8233cd35, 0x01}, + {0x8233cd36, 0x01}, + {0x8233cd37, 0x01}, + {0x8233cd38, 0x01}, + {0x8233cd39, 0x01}, + {0x8233ce30, 0x01}, + {0x8233ce31, 0x01}, + {0x8233ce32, 0x01}, + {0x8233ce33, 0x01}, + {0x8233ce34, 0x01}, + {0x8233ce35, 0x01}, + {0x8233ce36, 0x01}, + {0x8233ce37, 0x01}, + {0x8233ce38, 0x01}, + {0x8233ce39, 0x01}, + {0x8233cf30, 0x01}, + {0x8233cf31, 0x01}, + {0x8233cf32, 0x01}, + {0x8233cf33, 0x01}, + {0x8233cf34, 0x01}, + {0x8233cf35, 0x01}, + {0x8233cf36, 0x01}, + {0x8233cf37, 0x01}, + {0x8233cf38, 0x01}, + {0x8233cf39, 0x01}, + {0x8233d030, 0x01}, + {0x8233d031, 0x01}, + {0x8233d032, 0x01}, + {0x8233d033, 0x01}, + {0x8233d034, 0x01}, + {0x8233d035, 0x01}, + {0x8233d036, 0x01}, + {0x8233d037, 0x01}, + {0x8233d038, 0x01}, + {0x8233d039, 0x01}, + {0x8233d130, 0x01}, + {0x8233d131, 0x01}, + {0x8233d132, 0x01}, + {0x8233d133, 0x01}, + {0x8233d134, 0x01}, + {0x8233d135, 0x01}, + {0x8233d136, 0x01}, + {0x8233d137, 0x01}, + {0x8233d139, 0x01}, + {0x8233d230, 0x01}, + {0x8233d231, 0x01}, + {0x8233d232, 0x01}, + {0x8233d233, 0x01}, + {0x8233d234, 0x01}, + {0x8233d235, 0x01}, + {0x8233d236, 0x01}, + {0x8233d237, 0x01}, + {0x8233d238, 0x01}, + {0x8233d239, 0x01}, + {0x8233d330, 0x01}, + {0x8233d331, 0x01}, + {0x8233d332, 0x01}, + {0x8233d333, 0x01}, + {0x8233d334, 0x01}, + {0x8233d335, 0x01}, + {0x8233d336, 0x01}, + {0x8233d337, 0x01}, + {0x8233d338, 0x01}, + {0x8233d339, 0x01}, + {0x8233d430, 0x01}, + {0x8233d431, 0x01}, + {0x8233d432, 0x01}, + {0x8233d433, 0x01}, + {0x8233d434, 0x01}, + {0x8233d435, 0x01}, + {0x8233d436, 0x01}, + {0x8233d437, 0x01}, + {0x8233d438, 0x01}, + {0x8233d439, 0x01}, + {0x8233d530, 0x01}, + {0x8233d531, 0x01}, + {0x8233d532, 0x01}, + {0x8233d533, 0x01}, + {0x8233d534, 0x01}, + {0x8233d535, 0x01}, + {0x8233d536, 0x01}, + {0x8233d537, 0x01}, + {0x8233d538, 0x01}, + {0x8233d539, 0x01}, + {0x8233d630, 0x01}, + {0x8233d631, 0x01}, + {0x8233d632, 0x01}, + {0x8233d633, 0x01}, + {0x8233d634, 0x01}, + {0x8233d635, 0x01}, + {0x8233d636, 0x01}, + {0x8233d637, 0x01}, + {0x8233d638, 0x01}, + {0x8233d639, 0x01}, + {0x8233d730, 0x01}, + {0x8233d731, 0x01}, + {0x8233d732, 0x01}, + {0x8233d733, 0x01}, + {0x8233d734, 0x01}, + {0x8233d735, 0x01}, + {0x8233d736, 0x01}, + {0x8233d737, 0x01}, + {0x8233d738, 0x01}, + {0x8233d739, 0x01}, + {0x8233d830, 0x01}, + {0x8233d831, 0x01}, + {0x8233d832, 0x01}, + {0x8233d833, 0x01}, + {0x8233d834, 0x01}, + {0x8233d835, 0x01}, + {0x8233d836, 0x01}, + {0x8233d837, 0x01}, + {0x8233d838, 0x01}, + {0x8233d839, 0x01}, + {0x8233d930, 0x01}, + {0x8233d931, 0x01}, + {0x8233d932, 0x01}, + {0x8233d933, 0x01}, + {0x8233d934, 0x01}, + {0x8233d935, 0x01}, + {0x8233d936, 0x01}, + {0x8233d937, 0x01}, + {0x8233d938, 0x01}, + {0x8233d939, 0x01}, + {0x8233da30, 0x01}, + {0x8233da31, 0x01}, + {0x8233da32, 0x01}, + {0x8233da33, 0x01}, + {0x8233da34, 0x01}, + {0x8233da35, 0x01}, + {0x8233da36, 0x01}, + {0x8233da37, 0x01}, + {0x8233da38, 0x01}, + {0x8233da39, 0x01}, + {0x8233db30, 0x01}, + {0x8233db31, 0x01}, + {0x8233db32, 0x01}, + {0x8233db33, 0x01}, + {0x8233db34, 0x01}, + {0x8233db35, 0x01}, + {0x8233db36, 0x01}, + {0x8233db37, 0x01}, + {0x8233db38, 0x01}, + {0x8233db39, 0x01}, + {0x8233dc30, 0x01}, + {0x8233dc31, 0x01}, + {0x8233dc32, 0x01}, + {0x8233dc33, 0x01}, + {0x8233dc34, 0x01}, + {0x8233dc35, 0x01}, + {0x8233dc36, 0x01}, + {0x8233dc37, 0x01}, + {0x8233dc38, 0x01}, + {0x8233dc39, 0x01}, + {0x8233dd30, 0x01}, + {0x8233dd31, 0x01}, + {0x8233dd32, 0x01}, + {0x8233dd33, 0x01}, + {0x8233dd34, 0x01}, + {0x8233dd35, 0x01}, + {0x8233dd36, 0x01}, + {0x8233dd37, 0x01}, + {0x8233dd38, 0x01}, + {0x8233dd39, 0x01}, + {0x8233de30, 0x01}, + {0x8233de31, 0x01}, + {0x8233de32, 0x01}, + {0x8233de33, 0x01}, + {0x8233de34, 0x01}, + {0x8233de36, 0x01}, + {0x8233de38, 0x01}, + {0x8233df30, 0x01}, + {0x8233df31, 0x01}, + {0x8233df32, 0x01}, + {0x8233df33, 0x01}, + {0x8233df34, 0x01}, + {0x8233df35, 0x01}, + {0x8233df36, 0x01}, + {0x8233df37, 0x01}, + {0x8233df38, 0x01}, + {0x8233e030, 0x01}, + {0x8233e031, 0x01}, + {0x8233e032, 0x01}, + {0x8233e033, 0x01}, + {0x8233e034, 0x01}, + {0x8233e035, 0x01}, + {0x8233e036, 0x01}, + {0x8233e037, 0x01}, + {0x8233e038, 0x01}, + {0x8233e039, 0x01}, + {0x8233e130, 0x01}, + {0x8233e132, 0x01}, + {0x8233e133, 0x01}, + {0x8233e134, 0x01}, + {0x8233e135, 0x01}, + {0x8233e136, 0x01}, + {0x8233e137, 0x01}, + {0x8233e138, 0x01}, + {0x8233e139, 0x01}, + {0x8233e230, 0x01}, + {0x8233e232, 0x01}, + {0x8233e233, 0x01}, + {0x8233e234, 0x01}, + {0x8233e235, 0x01}, + {0x8233e236, 0x01}, + {0x8233e237, 0x01}, + {0x8233e238, 0x01}, + {0x8233e239, 0x01}, + {0x8233e330, 0x01}, + {0x8233e331, 0x01}, + {0x8233e332, 0x01}, + {0x8233e333, 0x01}, + {0x8233e334, 0x01}, + {0x8233e335, 0x01}, + {0x8233e336, 0x01}, + {0x8233e337, 0x01}, + {0x8233e338, 0x01}, + {0x8233e339, 0x01}, + {0x8233e430, 0x01}, + {0x8233e431, 0x01}, + {0x8233e432, 0x01}, + {0x8233e433, 0x01}, + {0x8233e434, 0x01}, + {0x8233e435, 0x01}, + {0x8233e436, 0x01}, + {0x8233e437, 0x01}, + {0x8233e438, 0x01}, + {0x8233e439, 0x01}, + {0x8233e530, 0x01}, + {0x8233e531, 0x01}, + {0x8233e532, 0x01}, + {0x8233e533, 0x01}, + {0x8233e534, 0x01}, + {0x8233e535, 0x01}, + {0x8233e536, 0x01}, + {0x8233e537, 0x01}, + {0x8233e538, 0x01}, + {0x8233e539, 0x01}, + {0x8233e630, 0x01}, + {0x8233e631, 0x01}, + {0x8233e632, 0x01}, + {0x8233e633, 0x01}, + {0x8233e634, 0x01}, + {0x8233e635, 0x01}, + {0x8233e636, 0x01}, + {0x8233e637, 0x01}, + {0x8233e638, 0x01}, + {0x8233e639, 0x01}, + {0x8233e730, 0x01}, + {0x8233e731, 0x01}, + {0x8233e732, 0x01}, + {0x8233e733, 0x01}, + {0x8233e734, 0x01}, + {0x8233e735, 0x01}, + {0x8233e736, 0x01}, + {0x8233e737, 0x01}, + {0x8233e738, 0x01}, + {0x8233e739, 0x01}, + {0x8233e830, 0x01}, + {0x8233e831, 0x01}, + {0x8233e833, 0x01}, + {0x8233e834, 0x01}, + {0x8233e835, 0x01}, + {0x8233e836, 0x01}, + {0x8233e837, 0x01}, + {0x8233e930, 0x01}, + {0x8233e931, 0x01}, + {0x8233e932, 0x01}, + {0x8233e933, 0x01}, + {0x8233e934, 0x01}, + {0x8233e935, 0x01}, + {0x8233e936, 0x01}, + {0x8233e937, 0x01}, + {0x8233e938, 0x01}, + {0x8233e939, 0x01}, + {0x8233ea30, 0x01}, + {0x8233ea31, 0x01}, + {0x8233ea32, 0x01}, + {0x8233ea33, 0x01}, + {0x8233ea34, 0x01}, + {0x8233ea35, 0x01}, + {0x8233ea36, 0x01}, + {0x8233ea37, 0x01}, + {0x8233ea38, 0x01}, + {0x8233ea39, 0x01}, + {0x8233eb30, 0x01}, + {0x8233eb31, 0x01}, + {0x8233eb32, 0x01}, + {0x8233eb33, 0x01}, + {0x8233eb34, 0x01}, + {0x8233eb35, 0x01}, + {0x8233eb36, 0x01}, + {0x8233eb37, 0x01}, + {0x8233eb38, 0x01}, + {0x8233eb39, 0x01}, + {0x8233ec30, 0x01}, + {0x8233ec31, 0x01}, + {0x8233ec32, 0x01}, + {0x8233ec33, 0x01}, + {0x8233ec35, 0x01}, + {0x8233ec36, 0x01}, + {0x8233ec37, 0x01}, + {0x8233ec38, 0x01}, + {0x8233ec39, 0x01}, + {0x8233ed30, 0x01}, + {0x8233ed31, 0x01}, + {0x8233ed32, 0x01}, + {0x8233ed33, 0x01}, + {0x8233ed34, 0x01}, + {0x8233ed35, 0x01}, + {0x8233ed36, 0x01}, + {0x8233ed37, 0x01}, + {0x8233ed38, 0x01}, + {0x8233ed39, 0x01}, + {0x8233ee30, 0x01}, + {0x8233ee31, 0x01}, + {0x8233ee32, 0x01}, + {0x8233ee33, 0x01}, + {0x8233ee34, 0x01}, + {0x8233ee35, 0x01}, + {0x8233ee36, 0x01}, + {0x8233ee37, 0x01}, + {0x8233ee38, 0x01}, + {0x8233ee39, 0x01}, + {0x8233ef30, 0x01}, + {0x8233ef31, 0x01}, + {0x8233ef32, 0x01}, + {0x8233ef33, 0x01}, + {0x8233ef34, 0x01}, + {0x8233ef35, 0x01}, + {0x8233ef36, 0x01}, + {0x8233ef37, 0x01}, + {0x8233ef38, 0x01}, + {0x8233ef39, 0x01}, + {0x8233f030, 0x01}, + {0x8233f031, 0x01}, + {0x8233f032, 0x01}, + {0x8233f033, 0x01}, + {0x8233f034, 0x01}, + {0x8233f035, 0x01}, + {0x8233f036, 0x01}, + {0x8233f037, 0x01}, + {0x8233f038, 0x01}, + {0x8233f039, 0x01}, + {0x8233f130, 0x01}, + {0x8233f131, 0x01}, + {0x8233f132, 0x01}, + {0x8233f133, 0x01}, + {0x8233f134, 0x01}, + {0x8233f135, 0x01}, + {0x8233f136, 0x01}, + {0x8233f137, 0x01}, + {0x8233f138, 0x01}, + {0x8233f139, 0x01}, + {0x8233f230, 0x01}, + {0x8233f231, 0x01}, + {0x8233f232, 0x01}, + {0x8233f233, 0x01}, + {0x8233f234, 0x01}, + {0x8233f235, 0x01}, + {0x8233f236, 0x01}, + {0x8233f237, 0x01}, + {0x8233f330, 0x01}, + {0x8233f331, 0x01}, + {0x8233f332, 0x01}, + {0x8233f333, 0x01}, + {0x8233f334, 0x01}, + {0x8233f335, 0x01}, + {0x8233f336, 0x01}, + {0x8233f337, 0x01}, + {0x8233f338, 0x01}, + {0x8233f339, 0x01}, + {0x8233f430, 0x01}, + {0x8233f431, 0x01}, + {0x8233f432, 0x01}, + {0x8233f433, 0x01}, + {0x8233f434, 0x01}, + {0x8233f435, 0x01}, + {0x8233f436, 0x01}, + {0x8233f437, 0x01}, + {0x8233f438, 0x01}, + {0x8233f439, 0x01}, + {0x8233f530, 0x01}, + {0x8233f531, 0x01}, + {0x8233f532, 0x01}, + {0x8233f533, 0x01}, + {0x8233f535, 0x01}, + {0x8233f536, 0x01}, + {0x8233f537, 0x01}, + {0x8233f538, 0x01}, + {0x8233f539, 0x01}, + {0x8233f630, 0x01}, + {0x8233f631, 0x01}, + {0x8233f632, 0x01}, + {0x8233f633, 0x01}, + {0x8233f635, 0x01}, + {0x8233f636, 0x01}, + {0x8233f637, 0x01}, + {0x8233f638, 0x01}, + {0x8233f639, 0x01}, + {0x8233f730, 0x01}, + {0x8233f731, 0x01}, + {0x8233f732, 0x01}, + {0x8233f733, 0x01}, + {0x8233f734, 0x01}, + {0x8233f735, 0x01}, + {0x8233f736, 0x01}, + {0x8233f737, 0x01}, + {0x8233f738, 0x01}, + {0x8233f739, 0x01}, + {0x8233f830, 0x01}, + {0x8233f831, 0x01}, + {0x8233f832, 0x01}, + {0x8233f833, 0x01}, + {0x8233f834, 0x01}, + {0x8233f835, 0x01}, + {0x8233f836, 0x01}, + {0x8233f837, 0x01}, + {0x8233f838, 0x01}, + {0x8233f839, 0x01}, + {0x8233f930, 0x01}, + {0x8233f931, 0x01}, + {0x8233f932, 0x01}, + {0x8233f933, 0x01}, + {0x8233f934, 0x01}, + {0x8233f935, 0x01}, + {0x8233f936, 0x01}, + {0x8233f937, 0x01}, + {0x8233f938, 0x01}, + {0x8233f939, 0x01}, + {0x8233fa31, 0x01}, + {0x8233fa32, 0x01}, + {0x8233fa33, 0x01}, + {0x8233fa34, 0x01}, + {0x8233fa35, 0x01}, + {0x8233fa36, 0x01}, + {0x8233fa37, 0x01}, + {0x8233fa38, 0x01}, + {0x8233fa39, 0x01}, + {0x8233fb30, 0x01}, + {0x8233fb31, 0x01}, + {0x8233fb32, 0x01}, + {0x8233fb33, 0x01}, + {0x8233fb34, 0x01}, + {0x8233fb35, 0x01}, + {0x8233fb36, 0x01}, + {0x8233fb37, 0x01}, + {0x8233fb38, 0x01}, + {0x8233fb39, 0x01}, + {0x8233fc30, 0x01}, + {0x8233fc31, 0x01}, + {0x8233fc32, 0x01}, + {0x8233fc33, 0x01}, + {0x8233fc34, 0x01}, + {0x8233fc35, 0x01}, + {0x8233fc36, 0x01}, + {0x8233fc37, 0x01}, + {0x8233fc38, 0x01}, + {0x8233fc39, 0x01}, + {0x8233fd30, 0x01}, + {0x8233fd31, 0x01}, + {0x8233fd32, 0x01}, + {0x8233fd33, 0x01}, + {0x8233fd34, 0x01}, + {0x8233fd35, 0x01}, + {0x8233fd36, 0x01}, + {0x8233fd37, 0x01}, + {0x8233fd38, 0x01}, + {0x8233fd39, 0x01}, + {0x8233fe30, 0x01}, + {0x8233fe31, 0x01}, + {0x8233fe32, 0x01}, + {0x8233fe33, 0x01}, + {0x8233fe34, 0x01}, + {0x8233fe35, 0x01}, + {0x8233fe36, 0x01}, + {0x8233fe37, 0x01}, + {0x8233fe38, 0x01}, + {0x8233fe39, 0x01}, + {0x82348130, 0x01}, + {0x82348131, 0x01}, + {0x82348132, 0x01}, + {0x82348133, 0x01}, + {0x82348134, 0x01}, + {0x82348135, 0x01}, + {0x82348136, 0x01}, + {0x82348137, 0x01}, + {0x82348138, 0x01}, + {0x82348139, 0x01}, + {0x82348230, 0x01}, + {0x82348231, 0x01}, + {0x82348233, 0x01}, + {0x82348234, 0x01}, + {0x82348235, 0x01}, + {0x82348236, 0x01}, + {0x82348237, 0x01}, + {0x82348238, 0x01}, + {0x82348239, 0x01}, + {0x82348330, 0x01}, + {0x82348331, 0x01}, + {0x82348333, 0x01}, + {0x82348334, 0x01}, + {0x82348335, 0x01}, + {0x82348336, 0x01}, + {0x82348337, 0x01}, + {0x82348338, 0x01}, + {0x82348339, 0x01}, + {0x82348430, 0x01}, + {0x82348431, 0x01}, + {0x82348432, 0x01}, + {0x82348433, 0x01}, + {0x82348434, 0x01}, + {0x82348436, 0x01}, + {0x82348437, 0x01}, + {0x82348438, 0x01}, + {0x82348439, 0x01}, + {0x82348530, 0x01}, + {0x82348531, 0x01}, + {0x82348532, 0x01}, + {0x82348533, 0x01}, + {0x82348535, 0x01}, + {0x82348536, 0x01}, + {0x82348537, 0x01}, + {0x82348538, 0x01}, + {0x82348539, 0x01}, + {0x82348630, 0x01}, + {0x82348631, 0x01}, + {0x82348632, 0x01}, + {0x82348633, 0x01}, + {0x82348634, 0x01}, + {0x82348635, 0x01}, + {0x82348636, 0x01}, + {0x82348637, 0x01}, + {0x82348638, 0x01}, + {0x82348639, 0x01}, + {0x82348730, 0x01}, + {0x82348731, 0x01}, + {0x82348732, 0x01}, + {0x82348733, 0x01}, + {0x82348734, 0x01}, + {0x82348735, 0x01}, + {0x82348736, 0x01}, + {0x82348737, 0x01}, + {0x82348738, 0x01}, + {0x82348739, 0x01}, + {0x82348830, 0x01}, + {0x82348831, 0x01}, + {0x82348832, 0x01}, + {0x82348833, 0x01}, + {0x82348834, 0x01}, + {0x82348836, 0x01}, + {0x82348837, 0x01}, + {0x82348838, 0x01}, + {0x82348839, 0x01}, + {0x82348930, 0x01}, + {0x82348931, 0x01}, + {0x82348932, 0x01}, + {0x82348933, 0x01}, + {0x82348934, 0x01}, + {0x82348935, 0x01}, + {0x82348936, 0x01}, + {0x82348937, 0x01}, + {0x82348938, 0x01}, + {0x82348939, 0x01}, + {0x82348a30, 0x01}, + {0x82348a31, 0x01}, + {0x82348a32, 0x01}, + {0x82348a34, 0x01}, + {0x82348a35, 0x01}, + {0x82348a36, 0x01}, + {0x82348a37, 0x01}, + {0x82348a38, 0x01}, + {0x82348a39, 0x01}, + {0x82348b30, 0x01}, + {0x82348b31, 0x01}, + {0x82348b33, 0x01}, + {0x82348b34, 0x01}, + {0x82348b35, 0x01}, + {0x82348b36, 0x01}, + {0x82348b37, 0x01}, + {0x82348b38, 0x01}, + {0x82348b39, 0x01}, + {0x82348c30, 0x01}, + {0x82348c31, 0x01}, + {0x82348c32, 0x01}, + {0x82348c33, 0x01}, + {0x82348c34, 0x01}, + {0x82348c35, 0x01}, + {0x82348c36, 0x01}, + {0x82348c37, 0x01}, + {0x82348c38, 0x01}, + {0x82348c39, 0x01}, + {0x82348d30, 0x01}, + {0x82348d31, 0x01}, + {0x82348d32, 0x01}, + {0x82348d33, 0x01}, + {0x82348d34, 0x01}, + {0x82348d35, 0x01}, + {0x82348d36, 0x01}, + {0x82348d37, 0x01}, + {0x82348d38, 0x01}, + {0x82348e30, 0x01}, + {0x82348e31, 0x01}, + {0x82348e32, 0x01}, + {0x82348e33, 0x01}, + {0x82348e34, 0x01}, + {0x82348e35, 0x01}, + {0x82348e36, 0x01}, + {0x82348e37, 0x01}, + {0x82348e38, 0x01}, + {0x82348e39, 0x01}, + {0x82348f30, 0x01}, + {0x82348f31, 0x01}, + {0x82348f32, 0x01}, + {0x82348f33, 0x01}, + {0x82348f34, 0x01}, + {0x82348f35, 0x01}, + {0x82348f36, 0x01}, + {0x82348f37, 0x01}, + {0x82348f39, 0x01}, + {0x82349030, 0x01}, + {0x82349031, 0x01}, + {0x82349032, 0x01}, + {0x82349033, 0x01}, + {0x82349034, 0x01}, + {0x82349035, 0x01}, + {0x82349036, 0x01}, + {0x82349037, 0x01}, + {0x82349038, 0x01}, + {0x82349039, 0x01}, + {0x82349130, 0x01}, + {0x82349131, 0x01}, + {0x82349132, 0x01}, + {0x82349133, 0x01}, + {0x82349134, 0x01}, + {0x82349135, 0x01}, + {0x82349136, 0x01}, + {0x82349137, 0x01}, + {0x82349138, 0x01}, + {0x82349139, 0x01}, + {0x82349230, 0x01}, + {0x82349231, 0x01}, + {0x82349232, 0x01}, + {0x82349233, 0x01}, + {0x82349234, 0x01}, + {0x82349235, 0x01}, + {0x82349236, 0x01}, + {0x82349237, 0x01}, + {0x82349238, 0x01}, + {0x82349239, 0x01}, + {0x82349330, 0x01}, + {0x82349331, 0x01}, + {0x82349332, 0x01}, + {0x82349333, 0x01}, + {0x82349334, 0x01}, + {0x82349335, 0x01}, + {0x82349336, 0x01}, + {0x82349337, 0x01}, + {0x82349338, 0x01}, + {0x82349339, 0x01}, + {0x82349430, 0x01}, + {0x82349431, 0x01}, + {0x82349432, 0x01}, + {0x82349433, 0x01}, + {0x82349434, 0x01}, + {0x82349435, 0x01}, + {0x82349436, 0x01}, + {0x82349437, 0x01}, + {0x82349438, 0x01}, + {0x82349439, 0x01}, + {0x82349530, 0x01}, + {0x82349531, 0x01}, + {0x82349532, 0x01}, + {0x82349533, 0x01}, + {0x82349534, 0x01}, + {0x82349535, 0x01}, + {0x82349536, 0x01}, + {0x82349537, 0x01}, + {0x82349539, 0x01}, + {0x82349630, 0x01}, + {0x82349631, 0x01}, + {0x82349632, 0x01}, + {0x82349633, 0x01}, + {0x82349634, 0x01}, + {0x82349635, 0x01}, + {0x82349636, 0x01}, + {0x82349637, 0x01}, + {0x82349638, 0x01}, + {0x82349639, 0x01}, + {0x82349730, 0x01}, + {0x82349731, 0x01}, + {0x82349732, 0x01}, + {0x82349733, 0x01}, + {0x82349734, 0x01}, + {0x82349735, 0x01}, + {0x82349736, 0x01}, + {0x82349737, 0x01}, + {0x82349738, 0x01}, + {0x82349739, 0x01}, + {0x82349830, 0x01}, + {0x82349831, 0x01}, + {0x82349832, 0x01}, + {0x82349833, 0x01}, + {0x82349834, 0x01}, + {0x82349835, 0x01}, + {0x82349836, 0x01}, + {0x82349837, 0x01}, + {0x82349838, 0x01}, + {0x82349930, 0x01}, + {0x82349931, 0x01}, + {0x82349932, 0x01}, + {0x82349933, 0x01}, + {0x82349934, 0x01}, + {0x82349935, 0x01}, + {0x82349936, 0x01}, + {0x82349937, 0x01}, + {0x82349938, 0x01}, + {0x82349939, 0x01}, + {0x82349a30, 0x01}, + {0x82349a31, 0x01}, + {0x82349a32, 0x01}, + {0x82349a33, 0x01}, + {0x82349a34, 0x01}, + {0x82349a35, 0x01}, + {0x82349a36, 0x01}, + {0x82349a37, 0x01}, + {0x82349a38, 0x01}, + {0x82349a39, 0x01}, + {0x82349b30, 0x01}, + {0x82349b31, 0x01}, + {0x82349b32, 0x01}, + {0x82349b33, 0x01}, + {0x82349b34, 0x01}, + {0x82349b35, 0x01}, + {0x82349b36, 0x01}, + {0x82349b37, 0x01}, + {0x82349c31, 0x01}, + {0x82349c33, 0x01}, + {0x82349c36, 0x01}, + {0x82349c37, 0x01}, + {0x82349c39, 0x01}, + {0x82349d30, 0x01}, + {0x82349d31, 0x01}, + {0x82349d32, 0x01}, + {0x82349d33, 0x01}, + {0x82349d34, 0x01}, + {0x82349d35, 0x01}, + {0x82349d36, 0x01}, + {0x82349d37, 0x01}, + {0x82349d38, 0x01}, + {0x82349d39, 0x01}, + {0x82349e30, 0x01}, + {0x82349e31, 0x01}, + {0x82349e32, 0x01}, + {0x82349e33, 0x01}, + {0x82349e34, 0x01}, + {0x82349e35, 0x01}, + {0x82349e36, 0x01}, + {0x82349e37, 0x01}, + {0x82349e38, 0x01}, + {0x82349e39, 0x01}, + {0x82349f30, 0x01}, + {0x82349f31, 0x01}, + {0x82349f32, 0x01}, + {0x82349f33, 0x01}, + {0x82349f34, 0x01}, + {0x82349f35, 0x01}, + {0x82349f36, 0x01}, + {0x82349f37, 0x01}, + {0x82349f38, 0x01}, + {0x82349f39, 0x01}, + {0x8234a030, 0x01}, + {0x8234a031, 0x01}, + {0x8234a032, 0x01}, + {0x8234a033, 0x01}, + {0x8234a034, 0x01}, + {0x8234a036, 0x01}, + {0x8234a037, 0x01}, + {0x8234a038, 0x01}, + {0x8234a039, 0x01}, + {0x8234a130, 0x01}, + {0x8234a132, 0x01}, + {0x8234a133, 0x01}, + {0x8234a134, 0x01}, + {0x8234a135, 0x01}, + {0x8234a136, 0x01}, + {0x8234a137, 0x01}, + {0x8234a230, 0x01}, + {0x8234a231, 0x01}, + {0x8234a232, 0x01}, + {0x8234a233, 0x01}, + {0x8234a234, 0x01}, + {0x8234a235, 0x01}, + {0x8234a236, 0x01}, + {0x8234a238, 0x01}, + {0x8234a239, 0x01}, + {0x8234a330, 0x01}, + {0x8234a331, 0x01}, + {0x8234a332, 0x01}, + {0x8234a333, 0x01}, + {0x8234a334, 0x01}, + {0x8234a335, 0x01}, + {0x8234a336, 0x01}, + {0x8234a337, 0x01}, + {0x8234a338, 0x01}, + {0x8234a339, 0x01}, + {0x8234a430, 0x01}, + {0x8234a431, 0x01}, + {0x8234a432, 0x01}, + {0x8234a433, 0x01}, + {0x8234a434, 0x01}, + {0x8234a435, 0x01}, + {0x8234a436, 0x01}, + {0x8234a437, 0x01}, + {0x8234a438, 0x01}, + {0x8234a439, 0x01}, + {0x8234a530, 0x01}, + {0x8234a531, 0x01}, + {0x8234a532, 0x01}, + {0x8234a533, 0x01}, + {0x8234a534, 0x01}, + {0x8234a535, 0x01}, + {0x8234a536, 0x01}, + {0x8234a537, 0x01}, + {0x8234a538, 0x01}, + {0x8234a539, 0x01}, + {0x8234a631, 0x01}, + {0x8234a632, 0x01}, + {0x8234a633, 0x01}, + {0x8234a635, 0x01}, + {0x8234a636, 0x01}, + {0x8234a637, 0x01}, + {0x8234a638, 0x01}, + {0x8234a639, 0x01}, + {0x8234a730, 0x01}, + {0x8234a731, 0x01}, + {0x8234a732, 0x01}, + {0x8234a733, 0x01}, + {0x8234a734, 0x01}, + {0x8234a735, 0x01}, + {0x8234a736, 0x01}, + {0x8234a737, 0x01}, + {0x8234a738, 0x01}, + {0x8234a739, 0x01}, + {0x8234a830, 0x01}, + {0x8234a831, 0x01}, + {0x8234a832, 0x01}, + {0x8234a833, 0x01}, + {0x8234a834, 0x01}, + {0x8234a835, 0x01}, + {0x8234a836, 0x01}, + {0x8234a837, 0x01}, + {0x8234a838, 0x01}, + {0x8234a839, 0x01}, + {0x8234a930, 0x01}, + {0x8234a931, 0x01}, + {0x8234a932, 0x01}, + {0x8234a933, 0x01}, + {0x8234a934, 0x01}, + {0x8234a935, 0x01}, + {0x8234a936, 0x01}, + {0x8234a937, 0x01}, + {0x8234a938, 0x01}, + {0x8234a939, 0x01}, + {0x8234aa30, 0x01}, + {0x8234aa31, 0x01}, + {0x8234aa32, 0x01}, + {0x8234aa33, 0x01}, + {0x8234aa34, 0x01}, + {0x8234aa35, 0x01}, + {0x8234aa36, 0x01}, + {0x8234aa37, 0x01}, + {0x8234aa38, 0x01}, + {0x8234aa39, 0x01}, + {0x8234ab30, 0x01}, + {0x8234ab31, 0x01}, + {0x8234ab32, 0x01}, + {0x8234ab33, 0x01}, + {0x8234ab34, 0x01}, + {0x8234ab35, 0x01}, + {0x8234ab36, 0x01}, + {0x8234ab37, 0x01}, + {0x8234ab38, 0x01}, + {0x8234ab39, 0x01}, + {0x8234ac30, 0x01}, + {0x8234ac31, 0x01}, + {0x8234ac32, 0x01}, + {0x8234ac33, 0x01}, + {0x8234ac34, 0x01}, + {0x8234ac35, 0x01}, + {0x8234ac36, 0x01}, + {0x8234ac37, 0x01}, + {0x8234ac38, 0x01}, + {0x8234ac39, 0x01}, + {0x8234ad30, 0x01}, + {0x8234ad31, 0x01}, + {0x8234ad32, 0x01}, + {0x8234ad33, 0x01}, + {0x8234ad34, 0x01}, + {0x8234ad35, 0x01}, + {0x8234ad36, 0x01}, + {0x8234ad38, 0x01}, + {0x8234ad39, 0x01}, + {0x8234ae30, 0x01}, + {0x8234ae31, 0x01}, + {0x8234ae32, 0x01}, + {0x8234ae33, 0x01}, + {0x8234ae34, 0x01}, + {0x8234ae35, 0x01}, + {0x8234ae36, 0x01}, + {0x8234ae37, 0x01}, + {0x8234ae38, 0x01}, + {0x8234ae39, 0x01}, + {0x8234af30, 0x01}, + {0x8234af31, 0x01}, + {0x8234af32, 0x01}, + {0x8234af33, 0x01}, + {0x8234af34, 0x01}, + {0x8234af35, 0x01}, + {0x8234af36, 0x01}, + {0x8234af37, 0x01}, + {0x8234af38, 0x01}, + {0x8234af39, 0x01}, + {0x8234b030, 0x01}, + {0x8234b032, 0x01}, + {0x8234b033, 0x01}, + {0x8234b034, 0x01}, + {0x8234b035, 0x01}, + {0x8234b036, 0x01}, + {0x8234b037, 0x01}, + {0x8234b038, 0x01}, + {0x8234b039, 0x01}, + {0x8234b130, 0x01}, + {0x8234b131, 0x01}, + {0x8234b132, 0x01}, + {0x8234b133, 0x01}, + {0x8234b134, 0x01}, + {0x8234b135, 0x01}, + {0x8234b136, 0x01}, + {0x8234b137, 0x01}, + {0x8234b138, 0x01}, + {0x8234b139, 0x01}, + {0x8234b230, 0x01}, + {0x8234b231, 0x01}, + {0x8234b232, 0x01}, + {0x8234b233, 0x01}, + {0x8234b234, 0x01}, + {0x8234b235, 0x01}, + {0x8234b236, 0x01}, + {0x8234b237, 0x01}, + {0x8234b238, 0x01}, + {0x8234b239, 0x01}, + {0x8234b330, 0x01}, + {0x8234b331, 0x01}, + {0x8234b332, 0x01}, + {0x8234b333, 0x01}, + {0x8234b334, 0x01}, + {0x8234b335, 0x01}, + {0x8234b336, 0x01}, + {0x8234b337, 0x01}, + {0x8234b338, 0x01}, + {0x8234b339, 0x01}, + {0x8234b430, 0x01}, + {0x8234b431, 0x01}, + {0x8234b432, 0x01}, + {0x8234b433, 0x01}, + {0x8234b434, 0x01}, + {0x8234b435, 0x01}, + {0x8234b436, 0x01}, + {0x8234b437, 0x01}, + {0x8234b438, 0x01}, + {0x8234b439, 0x01}, + {0x8234b530, 0x01}, + {0x8234b531, 0x01}, + {0x8234b532, 0x01}, + {0x8234b533, 0x01}, + {0x8234b534, 0x01}, + {0x8234b535, 0x01}, + {0x8234b536, 0x01}, + {0x8234b537, 0x01}, + {0x8234b538, 0x01}, + {0x8234b539, 0x01}, + {0x8234b630, 0x01}, + {0x8234b631, 0x01}, + {0x8234b632, 0x01}, + {0x8234b633, 0x01}, + {0x8234b634, 0x01}, + {0x8234b635, 0x01}, + {0x8234b636, 0x01}, + {0x8234b637, 0x01}, + {0x8234b638, 0x01}, + {0x8234b639, 0x01}, + {0x8234b730, 0x01}, + {0x8234b731, 0x01}, + {0x8234b732, 0x01}, + {0x8234b733, 0x01}, + {0x8234b734, 0x01}, + {0x8234b735, 0x01}, + {0x8234b736, 0x01}, + {0x8234b737, 0x01}, + {0x8234b738, 0x01}, + {0x8234b739, 0x01}, + {0x8234b830, 0x01}, + {0x8234b831, 0x01}, + {0x8234b833, 0x01}, + {0x8234b834, 0x01}, + {0x8234b835, 0x01}, + {0x8234b837, 0x01}, + {0x8234b838, 0x01}, + {0x8234b839, 0x01}, + {0x8234b930, 0x01}, + {0x8234b931, 0x01}, + {0x8234b932, 0x01}, + {0x8234b934, 0x01}, + {0x8234b935, 0x01}, + {0x8234b936, 0x01}, + {0x8234b937, 0x01}, + {0x8234b938, 0x01}, + {0x8234b939, 0x01}, + {0x8234ba30, 0x01}, + {0x8234ba31, 0x01}, + {0x8234ba32, 0x01}, + {0x8234ba33, 0x01}, + {0x8234ba34, 0x01}, + {0x8234ba35, 0x01}, + {0x8234ba36, 0x01}, + {0x8234ba37, 0x01}, + {0x8234ba38, 0x01}, + {0x8234ba39, 0x01}, + {0x8234bb30, 0x01}, + {0x8234bb31, 0x01}, + {0x8234bb32, 0x01}, + {0x8234bb33, 0x01}, + {0x8234bb34, 0x01}, + {0x8234bb35, 0x01}, + {0x8234bb36, 0x01}, + {0x8234bb37, 0x01}, + {0x8234bb38, 0x01}, + {0x8234bb39, 0x01}, + {0x8234bc30, 0x01}, + {0x8234bc31, 0x01}, + {0x8234bc32, 0x01}, + {0x8234bc33, 0x01}, + {0x8234bc34, 0x01}, + {0x8234bc35, 0x01}, + {0x8234bc36, 0x01}, + {0x8234bc37, 0x01}, + {0x8234bc38, 0x01}, + {0x8234bc39, 0x01}, + {0x8234bd30, 0x01}, + {0x8234bd31, 0x01}, + {0x8234bd32, 0x01}, + {0x8234bd33, 0x01}, + {0x8234bd34, 0x01}, + {0x8234bd35, 0x01}, + {0x8234bd36, 0x01}, + {0x8234bd37, 0x01}, + {0x8234bd38, 0x01}, + {0x8234bd39, 0x01}, + {0x8234be31, 0x01}, + {0x8234be32, 0x01}, + {0x8234be33, 0x01}, + {0x8234be34, 0x01}, + {0x8234be35, 0x01}, + {0x8234be36, 0x01}, + {0x8234be37, 0x01}, + {0x8234be38, 0x01}, + {0x8234be39, 0x01}, + {0x8234bf30, 0x01}, + {0x8234bf31, 0x01}, + {0x8234bf32, 0x01}, + {0x8234bf33, 0x01}, + {0x8234bf34, 0x01}, + {0x8234bf35, 0x01}, + {0x8234bf36, 0x01}, + {0x8234bf37, 0x01}, + {0x8234bf38, 0x01}, + {0x8234bf39, 0x01}, + {0x8234c030, 0x01}, + {0x8234c031, 0x01}, + {0x8234c032, 0x01}, + {0x8234c033, 0x01}, + {0x8234c034, 0x01}, + {0x8234c035, 0x01}, + {0x8234c036, 0x01}, + {0x8234c037, 0x01}, + {0x8234c038, 0x01}, + {0x8234c039, 0x01}, + {0x8234c130, 0x01}, + {0x8234c131, 0x01}, + {0x8234c132, 0x01}, + {0x8234c133, 0x01}, + {0x8234c134, 0x01}, + {0x8234c135, 0x01}, + {0x8234c136, 0x01}, + {0x8234c137, 0x01}, + {0x8234c138, 0x01}, + {0x8234c139, 0x01}, + {0x8234c230, 0x01}, + {0x8234c231, 0x01}, + {0x8234c232, 0x01}, + {0x8234c233, 0x01}, + {0x8234c234, 0x01}, + {0x8234c235, 0x01}, + {0x8234c236, 0x01}, + {0x8234c237, 0x01}, + {0x8234c238, 0x01}, + {0x8234c239, 0x01}, + {0x8234c330, 0x01}, + {0x8234c331, 0x01}, + {0x8234c332, 0x01}, + {0x8234c333, 0x01}, + {0x8234c334, 0x01}, + {0x8234c335, 0x01}, + {0x8234c336, 0x01}, + {0x8234c337, 0x01}, + {0x8234c338, 0x01}, + {0x8234c339, 0x01}, + {0x8234c430, 0x01}, + {0x8234c431, 0x01}, + {0x8234c432, 0x01}, + {0x8234c433, 0x01}, + {0x8234c434, 0x01}, + {0x8234c435, 0x01}, + {0x8234c436, 0x01}, + {0x8234c437, 0x01}, + {0x8234c438, 0x01}, + {0x8234c439, 0x01}, + {0x8234c530, 0x01}, + {0x8234c531, 0x01}, + {0x8234c532, 0x01}, + {0x8234c533, 0x01}, + {0x8234c534, 0x01}, + {0x8234c535, 0x01}, + {0x8234c536, 0x01}, + {0x8234c537, 0x01}, + {0x8234c538, 0x01}, + {0x8234c539, 0x01}, + {0x8234c630, 0x01}, + {0x8234c631, 0x01}, + {0x8234c632, 0x01}, + {0x8234c633, 0x01}, + {0x8234c634, 0x01}, + {0x8234c635, 0x01}, + {0x8234c636, 0x01}, + {0x8234c637, 0x01}, + {0x8234c638, 0x01}, + {0x8234c639, 0x01}, + {0x8234c730, 0x01}, + {0x8234c731, 0x01}, + {0x8234c732, 0x01}, + {0x8234c733, 0x01}, + {0x8234c734, 0x01}, + {0x8234c735, 0x01}, + {0x8234c736, 0x01}, + {0x8234c737, 0x01}, + {0x8234c738, 0x01}, + {0x8234c739, 0x01}, + {0x8234c830, 0x01}, + {0x8234c831, 0x01}, + {0x8234c832, 0x01}, + {0x8234c833, 0x01}, + {0x8234c834, 0x01}, + {0x8234c835, 0x01}, + {0x8234c836, 0x01}, + {0x8234c837, 0x01}, + {0x8234c838, 0x01}, + {0x8234c839, 0x01}, + {0x8234c930, 0x01}, + {0x8234c931, 0x01}, + {0x8234c932, 0x01}, + {0x8234c933, 0x01}, + {0x8234c934, 0x01}, + {0x8234c935, 0x01}, + {0x8234c936, 0x01}, + {0x8234c937, 0x01}, + {0x8234c939, 0x01}, + {0x8234ca30, 0x01}, + {0x8234ca31, 0x01}, + {0x8234ca32, 0x01}, + {0x8234ca33, 0x01}, + {0x8234ca34, 0x01}, + {0x8234ca35, 0x01}, + {0x8234ca36, 0x01}, + {0x8234ca37, 0x01}, + {0x8234ca38, 0x01}, + {0x8234ca39, 0x01}, + {0x8234cb30, 0x01}, + {0x8234cb32, 0x01}, + {0x8234cb33, 0x01}, + {0x8234cb34, 0x01}, + {0x8234cb35, 0x01}, + {0x8234cb36, 0x01}, + {0x8234cb37, 0x01}, + {0x8234cb38, 0x01}, + {0x8234cb39, 0x01}, + {0x8234cc30, 0x01}, + {0x8234cc31, 0x01}, + {0x8234cc32, 0x01}, + {0x8234cc33, 0x01}, + {0x8234cc34, 0x01}, + {0x8234cc36, 0x01}, + {0x8234cc37, 0x01}, + {0x8234cc38, 0x01}, + {0x8234cc39, 0x01}, + {0x8234cd30, 0x01}, + {0x8234cd31, 0x01}, + {0x8234cd32, 0x01}, + {0x8234cd33, 0x01}, + {0x8234cd34, 0x01}, + {0x8234cd35, 0x01}, + {0x8234cd36, 0x01}, + {0x8234cd37, 0x01}, + {0x8234cd38, 0x01}, + {0x8234cd39, 0x01}, + {0x8234ce30, 0x01}, + {0x8234ce31, 0x01}, + {0x8234ce32, 0x01}, + {0x8234ce33, 0x01}, + {0x8234ce34, 0x01}, + {0x8234ce35, 0x01}, + {0x8234ce36, 0x01}, + {0x8234ce37, 0x01}, + {0x8234ce38, 0x01}, + {0x8234ce39, 0x01}, + {0x8234cf30, 0x01}, + {0x8234cf31, 0x01}, + {0x8234cf33, 0x01}, + {0x8234cf34, 0x01}, + {0x8234cf35, 0x01}, + {0x8234cf36, 0x01}, + {0x8234cf37, 0x01}, + {0x8234cf38, 0x01}, + {0x8234cf39, 0x01}, + {0x8234d030, 0x01}, + {0x8234d031, 0x01}, + {0x8234d032, 0x01}, + {0x8234d033, 0x01}, + {0x8234d034, 0x01}, + {0x8234d035, 0x01}, + {0x8234d036, 0x01}, + {0x8234d037, 0x01}, + {0x8234d038, 0x01}, + {0x8234d039, 0x01}, + {0x8234d130, 0x01}, + {0x8234d131, 0x01}, + {0x8234d132, 0x01}, + {0x8234d133, 0x01}, + {0x8234d134, 0x01}, + {0x8234d135, 0x01}, + {0x8234d136, 0x01}, + {0x8234d137, 0x01}, + {0x8234d138, 0x01}, + {0x8234d139, 0x01}, + {0x8234d230, 0x01}, + {0x8234d231, 0x01}, + {0x8234d232, 0x01}, + {0x8234d233, 0x01}, + {0x8234d234, 0x01}, + {0x8234d235, 0x01}, + {0x8234d236, 0x01}, + {0x8234d237, 0x01}, + {0x8234d238, 0x01}, + {0x8234d239, 0x01}, + {0x8234d330, 0x01}, + {0x8234d331, 0x01}, + {0x8234d332, 0x01}, + {0x8234d333, 0x01}, + {0x8234d334, 0x01}, + {0x8234d335, 0x01}, + {0x8234d336, 0x01}, + {0x8234d337, 0x01}, + {0x8234d338, 0x01}, + {0x8234d339, 0x01}, + {0x8234d430, 0x01}, + {0x8234d431, 0x01}, + {0x8234d432, 0x01}, + {0x8234d433, 0x01}, + {0x8234d434, 0x01}, + {0x8234d435, 0x01}, + {0x8234d436, 0x01}, + {0x8234d437, 0x01}, + {0x8234d438, 0x01}, + {0x8234d439, 0x01}, + {0x8234d530, 0x01}, + {0x8234d531, 0x01}, + {0x8234d532, 0x01}, + {0x8234d533, 0x01}, + {0x8234d534, 0x01}, + {0x8234d535, 0x01}, + {0x8234d536, 0x01}, + {0x8234d537, 0x01}, + {0x8234d538, 0x01}, + {0x8234d539, 0x01}, + {0x8234d630, 0x01}, + {0x8234d631, 0x01}, + {0x8234d632, 0x01}, + {0x8234d633, 0x01}, + {0x8234d634, 0x01}, + {0x8234d635, 0x01}, + {0x8234d636, 0x01}, + {0x8234d637, 0x01}, + {0x8234d638, 0x01}, + {0x8234d639, 0x01}, + {0x8234d730, 0x01}, + {0x8234d731, 0x01}, + {0x8234d732, 0x01}, + {0x8234d733, 0x01}, + {0x8234d734, 0x01}, + {0x8234d735, 0x01}, + {0x8234d736, 0x01}, + {0x8234d737, 0x01}, + {0x8234d738, 0x01}, + {0x8234d739, 0x01}, + {0x8234d830, 0x01}, + {0x8234d831, 0x01}, + {0x8234d832, 0x01}, + {0x8234d833, 0x01}, + {0x8234d834, 0x01}, + {0x8234d835, 0x01}, + {0x8234d836, 0x01}, + {0x8234d837, 0x01}, + {0x8234d838, 0x01}, + {0x8234d839, 0x01}, + {0x8234d930, 0x01}, + {0x8234d931, 0x01}, + {0x8234d933, 0x01}, + {0x8234d934, 0x01}, + {0x8234d935, 0x01}, + {0x8234d936, 0x01}, + {0x8234d937, 0x01}, + {0x8234d938, 0x01}, + {0x8234d939, 0x01}, + {0x8234da30, 0x01}, + {0x8234da31, 0x01}, + {0x8234da32, 0x01}, + {0x8234da33, 0x01}, + {0x8234da34, 0x01}, + {0x8234da35, 0x01}, + {0x8234da36, 0x01}, + {0x8234da37, 0x01}, + {0x8234da38, 0x01}, + {0x8234da39, 0x01}, + {0x8234db31, 0x01}, + {0x8234db32, 0x01}, + {0x8234db33, 0x01}, + {0x8234db34, 0x01}, + {0x8234db35, 0x01}, + {0x8234db36, 0x01}, + {0x8234db37, 0x01}, + {0x8234db38, 0x01}, + {0x8234db39, 0x01}, + {0x8234dc30, 0x01}, + {0x8234dc31, 0x01}, + {0x8234dc32, 0x01}, + {0x8234dc33, 0x01}, + {0x8234dc34, 0x01}, + {0x8234dc35, 0x01}, + {0x8234dc36, 0x01}, + {0x8234dc37, 0x01}, + {0x8234dc38, 0x01}, + {0x8234dc39, 0x01}, + {0x8234dd30, 0x01}, + {0x8234dd31, 0x01}, + {0x8234dd32, 0x01}, + {0x8234dd33, 0x01}, + {0x8234dd34, 0x01}, + {0x8234dd35, 0x01}, + {0x8234dd36, 0x01}, + {0x8234dd37, 0x01}, + {0x8234dd38, 0x01}, + {0x8234dd39, 0x01}, + {0x8234de30, 0x01}, + {0x8234de31, 0x01}, + {0x8234de32, 0x01}, + {0x8234de33, 0x01}, + {0x8234de34, 0x01}, + {0x8234de35, 0x01}, + {0x8234de36, 0x01}, + {0x8234de37, 0x01}, + {0x8234de38, 0x01}, + {0x8234de39, 0x01}, + {0x8234df30, 0x01}, + {0x8234df31, 0x01}, + {0x8234df32, 0x01}, + {0x8234df33, 0x01}, + {0x8234df34, 0x01}, + {0x8234df35, 0x01}, + {0x8234df36, 0x01}, + {0x8234df37, 0x01}, + {0x8234df38, 0x01}, + {0x8234df39, 0x01}, + {0x8234e030, 0x01}, + {0x8234e032, 0x01}, + {0x8234e033, 0x01}, + {0x8234e034, 0x01}, + {0x8234e035, 0x01}, + {0x8234e037, 0x01}, + {0x8234e038, 0x01}, + {0x8234e130, 0x01}, + {0x8234e131, 0x01}, + {0x8234e132, 0x01}, + {0x8234e133, 0x01}, + {0x8234e134, 0x01}, + {0x8234e135, 0x01}, + {0x8234e136, 0x01}, + {0x8234e137, 0x01}, + {0x8234e138, 0x01}, + {0x8234e139, 0x01}, + {0x8234e230, 0x01}, + {0x8234e231, 0x01}, + {0x8234e232, 0x01}, + {0x8234e233, 0x01}, + {0x8234e234, 0x01}, + {0x8234e235, 0x01}, + {0x8234e236, 0x01}, + {0x8234e237, 0x01}, + {0x8234e238, 0x01}, + {0x8234e239, 0x01}, + {0x8234e330, 0x01}, + {0x8234e331, 0x01}, + {0x8234e332, 0x01}, + {0x8234e333, 0x01}, + {0x8234e334, 0x01}, + {0x8234e335, 0x01}, + {0x8234e336, 0x01}, + {0x8234e337, 0x01}, + {0x8234e338, 0x01}, + {0x8234e339, 0x01}, + {0x8234e430, 0x01}, + {0x8234e431, 0x01}, + {0x8234e432, 0x01}, + {0x8234e433, 0x01}, + {0x8234e434, 0x01}, + {0x8234e435, 0x01}, + {0x8234e436, 0x01}, + {0x8234e437, 0x01}, + {0x8234e438, 0x01}, + {0x8234e439, 0x01}, + {0x8234e530, 0x01}, + {0x8234e531, 0x01}, + {0x8234e532, 0x01}, + {0x8234e533, 0x01}, + {0x8234e534, 0x01}, + {0x8234e535, 0x01}, + {0x8234e536, 0x01}, + {0x8234e538, 0x01}, + {0x8234e632, 0x01}, + {0x8234e633, 0x01}, + {0x8234e634, 0x01}, + {0x8234e635, 0x01}, + {0x8234e636, 0x01}, + {0x8234e637, 0x01}, + {0x8234e638, 0x01}, + {0x8234e639, 0x01}, + {0x8234e730, 0x01}, + {0x8234e731, 0x01}, + {0x8234e732, 0x01}, + {0x8234e733, 0x01}, + {0x8234e734, 0x01}, + {0x8234e735, 0x01}, + {0x8234e736, 0x01}, + {0x8234e737, 0x01}, + {0x8234e738, 0x01}, + {0x8234e739, 0x01}, + {0x8234e830, 0x01}, + {0x8234e831, 0x01}, + {0x8234e832, 0x01}, + {0x8234e833, 0x01}, + {0x8234e834, 0x01}, + {0x8234e835, 0x01}, + {0x8234e836, 0x01}, + {0x8234e837, 0x01}, + {0x8234e838, 0x01}, + {0x8234e931, 0x01}, + {0x8234e932, 0x01}, + {0x8234e933, 0x01}, + {0x8234e934, 0x01}, + {0x8234e935, 0x01}, + {0x8234e936, 0x01}, + {0x8234e937, 0x01}, + {0x8234e938, 0x01}, + {0x8234e939, 0x01}, + {0x8234ea30, 0x01}, + {0x8234ea31, 0x01}, + {0x8234ea32, 0x01}, + {0x8234ea33, 0x01}, + {0x8234ea34, 0x01}, + {0x8234ea35, 0x01}, + {0x8234ea36, 0x01}, + {0x8234ea37, 0x01}, + {0x8234ea38, 0x01}, + {0x8234ea39, 0x01}, + {0x8234eb30, 0x01}, + {0x8234eb31, 0x01}, + {0x8234eb32, 0x01}, + {0x8234eb34, 0x01}, + {0x8234eb35, 0x01}, + {0x8234eb36, 0x01}, + {0x8234eb37, 0x01}, + {0x8234eb38, 0x01}, + {0x8234eb39, 0x01}, + {0x8234ec30, 0x01}, + {0x8234ec31, 0x01}, + {0x8234ec32, 0x01}, + {0x8234ec33, 0x01}, + {0x8234ec34, 0x01}, + {0x8234ec35, 0x01}, + {0x8234ec36, 0x01}, + {0x8234ec37, 0x01}, + {0x8234ec38, 0x01}, + {0x8234ec39, 0x01}, + {0x8234ed30, 0x01}, + {0x8234ed32, 0x01}, + {0x8234ed33, 0x01}, + {0x8234ed34, 0x01}, + {0x8234ed35, 0x01}, + {0x8234ed36, 0x01}, + {0x8234ed37, 0x01}, + {0x8234ed38, 0x01}, + {0x8234ed39, 0x01}, + {0x8234ee30, 0x01}, + {0x8234ee31, 0x01}, + {0x8234ee32, 0x01}, + {0x8234ee33, 0x01}, + {0x8234ee34, 0x01}, + {0x8234ee35, 0x01}, + {0x8234ee36, 0x01}, + {0x8234ee37, 0x01}, + {0x8234ee38, 0x01}, + {0x8234ee39, 0x01}, + {0x8234ef30, 0x01}, + {0x8234ef31, 0x01}, + {0x8234ef32, 0x01}, + {0x8234ef33, 0x01}, + {0x8234ef34, 0x01}, + {0x8234ef35, 0x01}, + {0x8234ef36, 0x01}, + {0x8234ef37, 0x01}, + {0x8234ef38, 0x01}, + {0x8234ef39, 0x01}, + {0x8234f030, 0x01}, + {0x8234f031, 0x01}, + {0x8234f032, 0x01}, + {0x8234f033, 0x01}, + {0x8234f034, 0x01}, + {0x8234f035, 0x01}, + {0x8234f036, 0x01}, + {0x8234f037, 0x01}, + {0x8234f038, 0x01}, + {0x8234f039, 0x01}, + {0x8234f130, 0x01}, + {0x8234f131, 0x01}, + {0x8234f132, 0x01}, + {0x8234f133, 0x01}, + {0x8234f134, 0x01}, + {0x8234f135, 0x01}, + {0x8234f136, 0x01}, + {0x8234f137, 0x01}, + {0x8234f139, 0x01}, + {0x8234f230, 0x01}, + {0x8234f231, 0x01}, + {0x8234f232, 0x01}, + {0x8234f233, 0x01}, + {0x8234f234, 0x01}, + {0x8234f235, 0x01}, + {0x8234f236, 0x01}, + {0x8234f237, 0x01}, + {0x8234f238, 0x01}, + {0x8234f239, 0x01}, + {0x8234f330, 0x01}, + {0x8234f331, 0x01}, + {0x8234f332, 0x01}, + {0x8234f333, 0x01}, + {0x8234f334, 0x01}, + {0x8234f335, 0x01}, + {0x8234f336, 0x01}, + {0x8234f337, 0x01}, + {0x8234f338, 0x01}, + {0x8234f339, 0x01}, + {0x8234f430, 0x01}, + {0x8234f431, 0x01}, + {0x8234f432, 0x01}, + {0x8234f433, 0x01}, + {0x8234f434, 0x01}, + {0x8234f435, 0x01}, + {0x8234f436, 0x01}, + {0x8234f437, 0x01}, + {0x8234f438, 0x01}, + {0x8234f439, 0x01}, + {0x8234f530, 0x01}, + {0x8234f531, 0x01}, + {0x8234f532, 0x01}, + {0x8234f533, 0x01}, + {0x8234f534, 0x01}, + {0x8234f535, 0x01}, + {0x8234f536, 0x01}, + {0x8234f537, 0x01}, + {0x8234f538, 0x01}, + {0x8234f539, 0x01}, + {0x8234f630, 0x01}, + {0x8234f631, 0x01}, + {0x8234f632, 0x01}, + {0x8234f633, 0x01}, + {0x8234f634, 0x01}, + {0x8234f635, 0x01}, + {0x8234f636, 0x01}, + {0x8234f637, 0x01}, + {0x8234f638, 0x01}, + {0x8234f639, 0x01}, + {0x8234f730, 0x01}, + {0x8234f731, 0x01}, + {0x8234f732, 0x01}, + {0x8234f733, 0x01}, + {0x8234f734, 0x01}, + {0x8234f735, 0x01}, + {0x8234f736, 0x01}, + {0x8234f737, 0x01}, + {0x8234f739, 0x01}, + {0x8234f830, 0x01}, + {0x8234f831, 0x01}, + {0x8234f832, 0x01}, + {0x8234f833, 0x01}, + {0x8234f834, 0x01}, + {0x8234f835, 0x01}, + {0x8234f836, 0x01}, + {0x8234f837, 0x01}, + {0x8234f838, 0x01}, + {0x8234f839, 0x01}, + {0x8234f930, 0x01}, + {0x8234f931, 0x01}, + {0x8234f932, 0x01}, + {0x8234f933, 0x01}, + {0x8234f934, 0x01}, + {0x8234f935, 0x01}, + {0x8234f936, 0x01}, + {0x8234f937, 0x01}, + {0x8234f938, 0x01}, + {0x8234f939, 0x01}, + {0x8234fa30, 0x01}, + {0x8234fa31, 0x01}, + {0x8234fa32, 0x01}, + {0x8234fa33, 0x01}, + {0x8234fa34, 0x01}, + {0x8234fa35, 0x01}, + {0x8234fa36, 0x01}, + {0x8234fa37, 0x01}, + {0x8234fa38, 0x01}, + {0x8234fa39, 0x01}, + {0x8234fb30, 0x01}, + {0x8234fb31, 0x01}, + {0x8234fb32, 0x01}, + {0x8234fb33, 0x01}, + {0x8234fb34, 0x01}, + {0x8234fb35, 0x01}, + {0x8234fb36, 0x01}, + {0x8234fb37, 0x01}, + {0x8234fb38, 0x01}, + {0x8234fb39, 0x01}, + {0x8234fc30, 0x01}, + {0x8234fc31, 0x01}, + {0x8234fc32, 0x01}, + {0x8234fc33, 0x01}, + {0x8234fc34, 0x01}, + {0x8234fc35, 0x01}, + {0x8234fc36, 0x01}, + {0x8234fc37, 0x01}, + {0x8234fc38, 0x01}, + {0x8234fc39, 0x01}, + {0x8234fd30, 0x01}, + {0x8234fd31, 0x01}, + {0x8234fd32, 0x01}, + {0x8234fd33, 0x01}, + {0x8234fd34, 0x01}, + {0x8234fd35, 0x01}, + {0x8234fd36, 0x01}, + {0x8234fd37, 0x01}, + {0x8234fd38, 0x01}, + {0x8234fd39, 0x01}, + {0x8234fe30, 0x01}, + {0x8234fe31, 0x01}, + {0x8234fe32, 0x01}, + {0x8234fe33, 0x01}, + {0x8234fe34, 0x01}, + {0x8234fe35, 0x01}, + {0x8234fe36, 0x01}, + {0x8234fe37, 0x01}, + {0x8234fe38, 0x01}, + {0x8234fe39, 0x01}, + {0x82358130, 0x01}, + {0x82358131, 0x01}, + {0x82358132, 0x01}, + {0x82358133, 0x01}, + {0x82358134, 0x01}, + {0x82358135, 0x01}, + {0x82358136, 0x01}, + {0x82358137, 0x01}, + {0x82358138, 0x01}, + {0x82358139, 0x01}, + {0x82358230, 0x01}, + {0x82358231, 0x01}, + {0x82358232, 0x01}, + {0x82358233, 0x01}, + {0x82358234, 0x01}, + {0x82358235, 0x01}, + {0x82358236, 0x01}, + {0x82358237, 0x01}, + {0x82358238, 0x01}, + {0x82358239, 0x01}, + {0x82358330, 0x01}, + {0x82358331, 0x01}, + {0x82358332, 0x01}, + {0x82358333, 0x01}, + {0x82358334, 0x01}, + {0x82358335, 0x01}, + {0x82358336, 0x01}, + {0x82358337, 0x01}, + {0x82358338, 0x01}, + {0x82358339, 0x01}, + {0x82358430, 0x01}, + {0x82358431, 0x01}, + {0x82358432, 0x01}, + {0x82358433, 0x01}, + {0x82358434, 0x01}, + {0x82358435, 0x01}, + {0x82358436, 0x01}, + {0x82358437, 0x01}, + {0x82358438, 0x01}, + {0x82358439, 0x01}, + {0x82358530, 0x01}, + {0x82358531, 0x01}, + {0x82358532, 0x01}, + {0x82358533, 0x01}, + {0x82358534, 0x01}, + {0x82358535, 0x01}, + {0x82358536, 0x01}, + {0x82358537, 0x01}, + {0x82358538, 0x01}, + {0x82358539, 0x01}, + {0x82358630, 0x01}, + {0x82358631, 0x01}, + {0x82358632, 0x01}, + {0x82358633, 0x01}, + {0x82358634, 0x01}, + {0x82358635, 0x01}, + {0x82358636, 0x01}, + {0x82358637, 0x01}, + {0x82358638, 0x01}, + {0x82358639, 0x01}, + {0x82358730, 0x01}, + {0x82358732, 0x01}, + {0x82358733, 0x01}, + {0x82358734, 0x01}, + {0x82358735, 0x01}, + {0x82358736, 0x01}, + {0x82358737, 0x01}, + {0x82358738, 0x01}, + {0x8430b232, 0x0202}, + {0x8430b233, 0x0202}, + {0x8430b234, 0x0202}, + {0x8430b237, 0x0202}, + {0x8430b431, 0x0202}, + {0x8430b432, 0x0202}, + {0x8430b433, 0x0202}, + {0x8430b434, 0x0202}, + {0x8430b435, 0x0202}, + {0x84319632, 0x04}, + {0x84319633, 0x04}, + {0x84319634, 0x04}, + {0x84319635, 0x04}, + {0x84319636, 0x04}, + {0x84319637, 0x04}, + {0x84319638, 0x04}, + {0x84319639, 0x04}, + {0x84319730, 0x04}, + {0x84319731, 0x04}, + {0x84319732, 0x03}, + {0x84319733, 0x04}, + {0x84319734, 0x04}, + {0x84319735, 0x04}, + {0x84319736, 0x04}, + {0x84319737, 0x04}, + {0x84319738, 0x04}, + {0x84319739, 0x04}, + {0x84319830, 0x04}, + {0x84319831, 0x04}, + {0x84319832, 0x04}, + {0x84319833, 0x04}, + {0x84319834, 0x04}, + {0x84319835, 0x04}, + {0x84319836, 0x04}, + {0x84319837, 0x04}, + {0x84319838, 0x04}, + {0x84319839, 0x04}, + {0x84319930, 0x04}, + {0x84319931, 0x04}, + {0x84319932, 0x04}, + {0x84319933, 0x04}, + {0x84319934, 0x04}, + {0x84319935, 0x04}, + {0x84319936, 0x04}, + {0x84319937, 0x04}, + {0x84319938, 0x04}, + {0x84319939, 0x04}, + {0x84319a30, 0x04}, + {0x84319a31, 0x04}, + {0x84319a32, 0x04}, + {0x84319a33, 0x04}, + {0x84319a34, 0x04}, + {0x84319a35, 0x04}, + {0x84319a36, 0x04}, + {0x84319a37, 0x04}, + {0x84319a38, 0x04}, + {0x84319a39, 0x04}, + {0x84319b30, 0x04}, + {0x84319b31, 0x04}, + {0x84319b32, 0x04}, + {0x84319b33, 0x04}, + {0x84319b34, 0x04}, + {0x84319b35, 0x04}, + {0x84319b36, 0x04}, + {0x84319b37, 0x04}, + {0x8431a234, 0x01} +}; \ No newline at end of file diff --git a/src/common/backend/utils/misc/CMakeLists.txt b/src/common/backend/utils/misc/CMakeLists.txt index 29ff39bbd..f52256d99 100755 --- a/src/common/backend/utils/misc/CMakeLists.txt +++ b/src/common/backend/utils/misc/CMakeLists.txt @@ -24,6 +24,7 @@ set(TGT_misc_SRC ${CMAKE_CURRENT_SOURCE_DIR}/sec_rls_utils.cpp ${CMAKE_CURRENT_SOURCE_DIR}/superuser.cpp ${CMAKE_CURRENT_SOURCE_DIR}/tzparser.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/oidrbtree.cpp ) set(TGT_misc_INC diff --git a/src/common/backend/utils/misc/Makefile b/src/common/backend/utils/misc/Makefile index f5c36e624..597657d6c 100644 --- a/src/common/backend/utils/misc/Makefile +++ b/src/common/backend/utils/misc/Makefile @@ -22,7 +22,7 @@ ifneq "$(MAKECMDGOALS)" "clean" endif endif OBJS = guc.o help_config.o pg_rusage.o ps_status.o superuser.o tzparser.o \ - rbtree.o anls_opt.o sec_rls_utils.o elf_parser.o pg_controldata.o + rbtree.o anls_opt.o sec_rls_utils.o elf_parser.o pg_controldata.o oidrbtree.o # This location might depend on the installation directories. Therefore # we can't subsitute it into pg_config.h. diff --git a/src/common/backend/utils/misc/guc-file.l b/src/common/backend/utils/misc/guc-file.l index 6f4a7867a..3a7096b9c 100644 --- a/src/common/backend/utils/misc/guc-file.l +++ b/src/common/backend/utils/misc/guc-file.l @@ -46,7 +46,6 @@ enum { }; /* flex fails to supply a prototype for yylex, so provide one */ -/*int GUC_yylex(void);*/ int GUC_yylex(void * parse_scan); @@ -291,7 +290,7 @@ ProcessConfigFile(GucContext context) int scres; /* In SIGHUP cases in the postmaster, we want to report changes */ - if (context == PGC_SIGHUP && !IsUnderPostmaster) + if (context == PGC_SIGHUP && (!IsUnderPostmaster || (strcmp(item->name, "upgrade_mode") == 0 && t_thrd.proc != NULL))) { const char *preval = GetConfigOption(item->name, true, false); diff --git a/src/common/backend/utils/misc/guc.cpp b/src/common/backend/utils/misc/guc.cpp index 792041eb5..1b25dd201 100755 --- a/src/common/backend/utils/misc/guc.cpp +++ b/src/common/backend/utils/misc/guc.cpp @@ -9,6 +9,7 @@ * Copyright (c) 2000-2012, PostgreSQL Global Development Group * Portions Copyright (c) 2010-2012 Postgres-XC Development Group * Written by Peter Eisentraut . + * Portions Copyright (c) 2021, openGauss Contributors * * IDENTIFICATION * src/backend/utils/misc/guc.c @@ -364,13 +365,13 @@ const char* sync_guc_variable_namelist[] = {"work_mem", "enable_global_stats", "enable_hypo_index", "td_compatible_truncation", - "gds_debug_mod", "ngram_punctuation_ignore", "ngram_grapsymbol_ignore", "ngram_gram_size", "enable_orc_cache", #ifdef ENABLE_MULTIPLE_NODES "enable_cluster_resize", + "gds_debug_mod", #endif "enable_compress_spill", "resource_track_level", @@ -411,9 +412,13 @@ const char* sync_guc_variable_namelist[] = {"work_mem", "sql_use_spacelimit", "default_limit_rows", "sql_beta_feature", +#ifndef ENABLE_MULTIPLE_NODES + "plsql_show_all_error", +#endif "track_stmt_session_slot", "track_stmt_stat_level", - "track_stmt_details_size"}; + "track_stmt_details_size" + }; static void set_config_sourcefile(const char* name, char* sourcefile, int sourceline); static bool call_bool_check_hook(struct config_bool* conf, bool* newval, void** extra, GucSource source, int elevel); @@ -775,7 +780,8 @@ static const struct config_enum_entry xmloption_options[] = { /* * Define remote connection types for PGXC */ -static const struct config_enum_entry pgxc_conn_types[] = {{"application", REMOTE_CONN_APP, false}, +static const struct config_enum_entry pgxc_conn_types[] = { + {"application", REMOTE_CONN_APP, false}, {"coordinator", REMOTE_CONN_COORD, false}, {"datanode", REMOTE_CONN_DATANODE, false}, {"gtm", REMOTE_CONN_GTM, false}, @@ -799,6 +805,11 @@ static const struct config_enum_entry sync_config_strategy_options[] = { }; #endif +static const struct config_enum_entry cluster_run_mode_options[] = { + {"cluster_primary", RUN_MODE_PRIMARY, false}, + {"cluster_standby", RUN_MODE_STANDBY, false}, + {NULL, 0, false}}; + /* * GUC option variables that are exported from this module */ @@ -1034,6 +1045,19 @@ static void InitCommonConfigureNames() static void InitConfigureNamesBool() { struct config_bool localConfigureNamesBool[] = { +#ifndef ENABLE_MULTIPLE_NODES + {{"enable_auto_clean_unique_sql", + PGC_POSTMASTER, + NODE_SINGLENODE, + INSTRUMENTS_OPTIONS, + gettext_noop("Enable auto clean unique sql entry when the UniqueSQL hash table is full."), + NULL}, + &g_instance.attr.attr_common.enable_auto_clean_unique_sql, + false, + NULL, + NULL, + NULL}, +#endif {{"enable_wdr_snapshot", PGC_SIGHUP, NODE_ALL, @@ -1609,7 +1633,19 @@ static void InitConfigureNamesBool() check_gpc_syscache_threshold, NULL, NULL}, - +#ifdef ENABLE_MULTIPLE_NODES + {{"enable_gpc_grayrelease_mode", + PGC_SIGHUP, + NODE_ALL, + CLIENT_CONN, + gettext_noop("in distribute cluster, enable grayly change guc enable_global_plancache in three stage."), + NULL}, + &u_sess->attr.attr_common.enable_gpc_grayrelease_mode, + false, + NULL, + NULL, + NULL}, +#endif {{"enable_router", PGC_SIGHUP, NODE_DISTRIBUTE, @@ -2194,6 +2230,32 @@ static void InitConfigureNamesInt() NULL, NULL, NULL}, + {{"pset_lob_length", + PGC_USERSET, + NODE_ALL, + CLIENT_CONN_STATEMENT, + gettext_noop("GUC parameter of pset_lob_length."), + NULL}, + &u_sess->attr.attr_common.pset_lob_length, + 0, + 0, + INT_MAX, + NULL, + NULL, + NULL}, + {{"pset_num_width", + PGC_USERSET, + NODE_ALL, + CLIENT_CONN_STATEMENT, + gettext_noop("GUC parameter of pset_num_width."), + NULL}, + &u_sess->attr.attr_common.pset_num_width, + 0, + 0, + 128, + NULL, + NULL, + NULL}, {{"tcp_keepalives_idle", PGC_USERSET, NODE_ALL, @@ -2272,7 +2334,7 @@ static void InitConfigureNamesInt() /* Can't be set in postgresql.conf */ {{"backend_version", PGC_USERSET, - NODE_ALL, + NODE_DISTRIBUTE, PRESET_OPTIONS, gettext_noop("Set and show the backend version as an integer."), NULL, @@ -3708,7 +3770,7 @@ static void InitConfigureNamesString() &u_sess->attr.attr_common.ts_compaction_strategy, "3,6,6,12,0", check_compaciton_strategy, - NULL}, + NULL}, #endif {{NULL, (GucContext)0, @@ -3980,6 +4042,18 @@ static void InitConfigureNamesEnum() NULL, NULL, NULL}, + {{"cluster_run_mode", + PGC_POSTMASTER, + NODE_SINGLENODE, + PRESET_OPTIONS, + gettext_noop("Sets how binary values are to be encoded in XML."), + NULL}, + &g_instance.attr.attr_common.cluster_run_mode, + RUN_MODE_PRIMARY, + cluster_run_mode_options, + NULL, + NULL, + NULL}, /* End-of-list marker */ {{NULL, (GucContext)0, @@ -4021,7 +4095,7 @@ static void ReportGUCOption(struct config_generic* record); static void reapply_stacked_values(struct config_generic* variable, struct config_string* pHolder, GucStack* stack, const char* curvalue, GucContext curscontext, GucSource cursource); static void ShowGUCConfigOption(const char* name, DestReceiver* dest); -static void ShowAllGUCConfig(DestReceiver* dest); +static void ShowAllGUCConfig(const char* likename, DestReceiver* dest); static char* _ShowOption(struct config_generic* record, bool use_units); static bool validate_option_array_item(const char* name, const char* value, bool skipIfNoPermissions); #ifndef ENABLE_MULTIPLE_NODES @@ -4775,16 +4849,6 @@ void InitializePostmasterGUC() g_instance.attr.attr_network.PoolerPort = g_instance.attr.attr_network.PostPortNumber + 1; } -int get_fixed_bgwriter_thread_num() -{ - /* - * We launch one extra bgwriter for segment buffers automatically, - * so there should be at least two bgworkers one for shared buffers, - * the other for segment buffers. - */ - return (g_instance.attr.attr_storage.bgwriter_thread_num > 1) ? - (g_instance.attr.attr_storage.bgwriter_thread_num + 1) : 2; -} /* * Initialize GUC options during program startup. * @@ -6054,6 +6118,18 @@ void AtEOXact_GUC(bool isCommit, int nestLevel) * GUC at prepare or commit. These connections will always be closed. */ if (isCommit && nestLevel == 1 && !u_sess->attr.attr_common.IsInplaceUpgrade) { + const char* setStr = get_set_string(); + + if (setStr != NULL) { + char tmpName[MAX_PARAM_LEN + 1] = {0}; + const char *gucName = GetGucName(setStr, tmpName); + int rs = PoolManagerSetCommand(POOL_CMD_GLOBAL_SET, setStr, gucName); + if (rs < 0) { + ereport(ERROR, + (errcode(ERRCODE_CONNECTION_EXCEPTION), + errmsg("Communication failure, failed to send set commands to pool in transaction commit."))); + } + } /* reset input_set_message when current transaction is in top level and isCommit is true.*/ reset_set_message(isCommit); } @@ -9186,12 +9262,13 @@ void EmitWarningsOnPlaceholders(const char* className) /* * SHOW command */ -void GetPGVariable(const char* name, DestReceiver* dest) +void GetPGVariable(const char* name, const char* likename, DestReceiver* dest) { - if (guc_name_compare(name, "all") == 0) - ShowAllGUCConfig(dest); - else + if (guc_name_compare(name, "all") == 0) { + ShowAllGUCConfig(likename, dest); + } else { ShowGUCConfigOption(name, dest); + } } TupleDesc GetPGVariableResultDesc(const char* name) @@ -9247,7 +9324,7 @@ static void ShowGUCConfigOption(const char* name, DestReceiver* dest) /* * SHOW ALL command */ -static void ShowAllGUCConfig(DestReceiver* dest) +static void ShowAllGUCConfig(const char* likename, DestReceiver* dest) { bool am_superuser = superuser(); int i; @@ -9268,10 +9345,15 @@ static void ShowAllGUCConfig(DestReceiver* dest) for (i = 0; i < u_sess->num_guc_variables; i++) { struct config_generic* conf = u_sess->guc_variables[i]; char* setting = NULL; + unsigned int flags = (unsigned int)conf->flags; - if ((conf->flags & GUC_NO_SHOW_ALL) || ((conf->flags & GUC_SUPERUSER_ONLY) && !am_superuser)) + if ((flags & GUC_NO_SHOW_ALL) || ((flags & GUC_SUPERUSER_ONLY) && !am_superuser)) continue; + if (likename != NULL && strstr((char*)conf->name, likename) == NULL) { + continue; + } + /* assign to the values array */ values[0] = PointerGetDatum(cstring_to_text(conf->name)); @@ -11347,6 +11429,12 @@ static void assign_application_name(const char* newval, void* extra) { /* Update the pg_stat_activity view */ pgstat_report_appname(newval); + +#ifndef ENABLE_MULTIPLE_NODES + if (AmPostmasterProcess() && newval[0] != '\0' && g_instance.exec_cxt.global_application_name[0] == '\0') { + g_instance.exec_cxt.global_application_name = pstrdup(newval); + } +#endif } static const char* show_log_file_mode(void) diff --git a/src/common/backend/utils/misc/guc/guc_resource.cpp b/src/common/backend/utils/misc/guc/guc_resource.cpp index d0dca50ee..50e873a27 100644 --- a/src/common/backend/utils/misc/guc/guc_resource.cpp +++ b/src/common/backend/utils/misc/guc/guc_resource.cpp @@ -290,17 +290,6 @@ static void InitResourceConfigureNamesBool() NULL, NULL, NULL}, - {{"enable_custom_parser", - PGC_USERSET, - NODE_ALL, - UNGROUPED, - gettext_noop("Enables custom parser"), - NULL}, - &u_sess->attr.attr_sql.enable_custom_parser, - false, - NULL, - NULL, - NULL}, {{"enable_resource_record", PGC_SIGHUP, NODE_ALL, @@ -499,19 +488,6 @@ static void InitResourceConfigureNamesBool() NULL, NULL, NULL}, -#ifndef ENABLE_MULTIPLE_NODES - {{"enable_auto_clean_unique_sql", - PGC_POSTMASTER, - NODE_SINGLENODE, - INSTRUMENTS_OPTIONS, - gettext_noop("Enable auto clean unique sql entry when the UniqueSQL hash table is full."), - NULL}, - &g_instance.attr.attr_common.enable_auto_clean_unique_sql, - false, - NULL, - NULL, - NULL}, -#endif /* End-of-list marker */ {{NULL, (GucContext)0, @@ -1030,7 +1006,7 @@ static bool check_cgroup_name(char** newval, void** extra, GucSource source) p = *newval; - if (StringIsValid(p) && IS_SERVICE_NODE && t_thrd.shemem_ptr_cxt.MyBEEntry && + if (StringIsValid(p) && IS_PGXC_COORDINATOR && t_thrd.shemem_ptr_cxt.MyBEEntry && (currentGucContext == PGC_SUSET || currentGucContext == PGC_USERSET)) { if (g_instance.wlm_cxt->gscgroup_init_done == 0) ereport(ERROR, @@ -1059,7 +1035,7 @@ static bool check_cgroup_name(char** newval, void** extra, GucSource source) static void assign_cgroup_name(const char* newval, void* extra) { /* set "control_group" global variable */ - if (IS_SERVICE_NODE && t_thrd.shemem_ptr_cxt.MyBEEntry && newval && *newval) { + if (IS_PGXC_COORDINATOR && t_thrd.shemem_ptr_cxt.MyBEEntry && newval && *newval) { if (g_instance.wlm_cxt->gscgroup_init_done == 0) return; diff --git a/src/common/backend/utils/misc/guc/guc_sql.cpp b/src/common/backend/utils/misc/guc/guc_sql.cpp index e32cfe060..e4936d7e7 100755 --- a/src/common/backend/utils/misc/guc/guc_sql.cpp +++ b/src/common/backend/utils/misc/guc/guc_sql.cpp @@ -9,6 +9,7 @@ * Copyright (c) 2000-2012, PostgreSQL Global Development Group * Portions Copyright (c) 2010-2012 Postgres-XC Development Group * Written by Peter Eisentraut . + * Portions Copyright (c) 2021, openGauss Contributors * * IDENTIFICATION * src/backend/utils/misc/guc/guc_sql.cpp @@ -164,6 +165,7 @@ static void assign_convert_string_to_digit(bool newval, void* extra); static void AssignUStoreAttr(const char* newval, void* extra); static bool check_snapshot_delimiter(char** newval, void** extra, GucSource source); static bool check_snapshot_separator(char** newval, void** extra, GucSource source); +static bool check_numformat_arg(char** numformat, void** extra, GucSource source); static void InitSqlConfigureNamesBool(); @@ -173,6 +175,14 @@ static void InitSqlConfigureNamesReal(); static void InitSqlConfigureNamesString(); static void InitSqlConfigureNamesEnum(); +double str_to_num(char *format_str); +double my_pow(double base, int exp); +void extract_deci_part_width(double num, int width, int int_places, StringInfo result, bool is_negative); +void extract_part(double num, StringInfo result, bool is_negative, bool extract_deci, int int_places, int deci_places); +void extract_int_part(double num, int places, StringInfo space_part, StringInfo int_part); +void extract_deci_part(double num, int deci_places, StringInfo deci_part); +void out_of_range(StringInfo result, int len, bool amend_length); + /* * Although only "on", "off", and "safe_encoding" are documented, we * accept all the likely variants of "on" and "off". @@ -286,6 +296,9 @@ static const struct config_enum_entry sql_beta_options[] = { {"canonical_pathkey", CANONICAL_PATHKEY, false}, {"index_cost_with_leaf_pages_only", INDEX_COST_WITH_LEAF_PAGES_ONLY, false}, {"partition_opfusion", PARTITION_OPFUSION , false}, + {"spi_debug", SPI_DEBUG, false}, + {"resowner_debug", RESOWNER_DEBUG, false}, + {"a_style_coerce", A_STYLE_COERCE, false}, {NULL, 0, false} }; @@ -305,7 +318,12 @@ static const struct behavior_compat_entry behavior_compat_options[OPT_MAX] = { {"correct_to_number", OPT_CORRECT_TO_NUMBER}, {"compat_concat_variadic", OPT_CONCAT_VARIADIC}, {"merge_update_multi", OPT_MEGRE_UPDATE_MULTI}, - {"convert_string_digit_to_numeric", OPT_CONVERT_TO_NUMERIC} + {"convert_string_digit_to_numeric", OPT_CONVERT_TO_NUMERIC}, + {"plstmt_implicit_savepoint", OPT_PLSTMT_IMPLICIT_SAVEPOINT}, + {"hide_tailing_zero", OPT_HIDE_TAILING_ZERO}, + {"plsql_security_definer", OPT_SECURITY_DEFINER}, + {"skip_insert_gs_source", OPT_SKIP_GS_SOURCE}, + {"proc_outparam_override", OPT_PROC_OUTPARAM_OVERRIDE} }; /* @@ -651,6 +669,17 @@ static void InitSqlConfigureNamesBool() NULL, NULL, NULL}, + {{"enable_startwith_debug", + PGC_USERSET, + NODE_ALL, + QUERY_TUNING_METHOD, + gettext_noop("Enables debug infomation for start with."), + NULL}, + &u_sess->attr.attr_sql.enable_startwith_debug, + false, + NULL, + NULL, + NULL}, {{"enable_nestloop", PGC_USERSET, NODE_ALL, @@ -1492,6 +1521,20 @@ static void InitSqlConfigureNamesBool() NULL, NULL, NULL}, +#ifndef ENABLE_MULTIPLE_NODES + {{"plsql_show_all_error", + PGC_USERSET, + NODE_SINGLENODE, + QUERY_TUNING, + gettext_noop("Enable plsql debug mode"), + NULL}, + &u_sess->attr.attr_common.plsql_show_all_error, + false, + NULL, + NULL, + NULL + }, +#endif /* End-of-list marker */ {{NULL, (GucContext)0, @@ -2159,6 +2202,20 @@ static void InitSqlConfigureNamesInt() NULL, NULL, NULL}, + {{"pldebugger_timeout", + PGC_USERSET, + NODE_ALL, + DEVELOPER_OPTIONS, + gettext_noop("Sets the receive timeout (s) of pldebugger."), + NULL, + GUC_UNIT_S}, + &u_sess->attr.attr_sql.pldebugger_timeout, + 15 * 60, + 1, + 24 * 60 * 60, + NULL, + NULL, + NULL}, /* End-of-list marker */ {{NULL, (GucContext)0, @@ -2597,6 +2654,17 @@ static void InitSqlConfigureNamesString() check_snapshot_delimiter, NULL, NULL}, + {{"pset_num_format", + PGC_USERSET, + NODE_ALL, + CUSTOM_OPTIONS, + gettext_noop("GUC parameter of pset_num_format."), + NULL}, + &u_sess->attr.attr_common.pset_num_format, + "\0", + check_numformat_arg, + NULL, + NULL}, {{NULL, (GucContext)0, (GucNodeType)0, @@ -2753,7 +2821,7 @@ static void InitSqlConfigureNamesEnum() QUERY_TUNING, gettext_noop("Sets the beta feature for SQL engine."), NULL, GUC_LIST_INPUT}, &u_sess->attr.attr_sql.sql_beta_feature, - PARTITION_OPFUSION, + NO_BETA_FEATURE, sql_beta_options, NULL, NULL, @@ -3237,3 +3305,274 @@ static bool check_snapshot_separator(char** newval, void** extra, GucSource sour return (strlen(*newval) == 1 && (!u_sess->attr.attr_sql.db4ai_snapshot_version_delimiter || **newval != *u_sess->attr.attr_sql.db4ai_snapshot_version_delimiter)); } + +/* + * @@GaussDB@@ + * Brief : Check numformat (strlen(numformat) is known to greater than 0). + * Description : If numformat is not right, then return false. + */ +static bool check_numformat_arg(char** numformat, void** extra, GucSource source) +{ + if (NULL == numformat) { + return false; + } + + if (strlen(*numformat) > 128) { + GUC_check_errdetail("The numformat is too long!"); + return false; + } + + bool point_appeared = false; + char *numformat_copy = *numformat; + while (*numformat_copy != '\0') { + if (*numformat_copy != '9' && *numformat_copy != '.') { + return false; + } + if (*numformat_copy == '.') { + if (unlikely(point_appeared)) { + return false; + } + point_appeared = true; + } + numformat_copy++; + } + return true; +} + +char* apply_num_width(double num) +{ + StringInfoData result; + initStringInfo(&result); + bool is_negative = false; + int width = u_sess->attr.attr_common.pset_num_width; + const int decimal = 10; + if (num < 0) { + num = -num; + is_negative = true; + width--; + } + + int int_places = 0; + double num_copy = num; + while ((int)num_copy > 0) { + int_places++; + num_copy = num_copy / decimal; + } + + if (int_places > width) { + out_of_range(&result, width, is_negative); + } else if (int_places == width || int_places == width - 1) { + int value = (int)(num * decimal) % decimal; + if (value >= 5) { + num += 1; + } + if ((int)num == (int)my_pow(decimal, width) && int_places == width) { + out_of_range(&result, width, is_negative); + } else { + if (unlikely(is_negative)) { + appendStringInfo(&result, "%s", "-"); + } + appendStringInfo(&result, "%d", (int)num); + } + } else { + extract_deci_part_width(num, width, int_places, &result, is_negative); + } + + return result.data; +} + +void extract_deci_part_width(double num, int width, int int_places, StringInfo result, bool is_negative) +{ + int deci_places = width - 1 - int_places; + const int decimal = 10; + int value = (int)(num * my_pow(decimal, deci_places + 1)) % decimal; + if (value >= 5) { + num += my_pow(decimal, -deci_places); + int_places = 0; + double num_copy = num; + while ((int)num_copy > 0) { + int_places++; + num_copy = num_copy / decimal; + } + deci_places = width - 1 - int_places; + } + + StringInfoData int_part, deci_part; + initStringInfo(&int_part); + initStringInfo(&deci_part); + + if (unlikely(is_negative)) { + appendStringInfo(&int_part, "%s", "-"); + } + + for (int i = int_places - 1; i >= 0; i--) { + int value = (int)(num / my_pow(decimal, i)) % decimal; + appendStringInfo(&int_part, "%d", value); + } + + int last_not_zero = 0; + for (int i = 1; i <= deci_places; i++) { + int value = (int)(num * my_pow(decimal, i)) % decimal; + if (value != 0) { + last_not_zero = i; + } + } + + if (last_not_zero == 0) { + for (int i = 0; i < deci_places + 1; i++) { + appendStringInfo(result, "%s", " "); + } + if (int_part.len == 0) { + appendStringInfo(&int_part, "%s", "0"); + } + appendStringInfo(result, "%s", int_part.data); + } else { + for (int i = 0; i < deci_places - last_not_zero; i++) { + appendStringInfo(result, "%s", " "); + } + appendStringInfo(result, "%s", int_part.data); + appendStringInfo(result, "%s", "."); + extract_deci_part(num, last_not_zero, &deci_part); + appendStringInfo(result, "%s", deci_part.data); + } + + pfree(int_part.data); + pfree(deci_part.data); +} + +char* apply_num_format(double num) +{ + char *format_str = u_sess->attr.attr_common.pset_num_format; + double format_num = str_to_num(format_str); + const int decimal = 10; + + StringInfoData result; + initStringInfo(&result); + bool is_negative = false; + + if (num < 0) { + num = -num; + is_negative = true; + } + + char *decimal_str = strrchr(format_str, '.'); + if (decimal_str == NULL) { + int remainder = (int)(num * decimal) % decimal; + if (remainder >= 5) { + num += 1; + } + if ((int)num > (int)format_num) { + out_of_range(&result, strlen(format_str) + 1, false); + } else { + extract_part(num, &result, is_negative, false, strlen(format_str), 0); + } + } else { + int deci_places = strlen(decimal_str) - 1; + int remainder = (int)(num * my_pow(decimal, deci_places + 1)) % decimal; + if (remainder >= 5) { + num += my_pow(decimal, -deci_places); + } + num = (double)(int)(num * my_pow(decimal, deci_places)) / my_pow(decimal, deci_places); + if (num > format_num) { + out_of_range(&result, strlen(format_str) + 1, false); + } else { + extract_part(num, &result, is_negative, true, strlen(format_str) - strlen(decimal_str), deci_places); + } + } + + return result.data; +} + +double str_to_num(char *format_str) +{ + double num; + const int decimal = 10; + + char *decimal_str = strrchr(format_str, '.'); + if (decimal_str == NULL) { + num = my_pow(decimal, strlen(format_str)) - 1; + } else { + num = my_pow(decimal, strlen(format_str) - strlen(decimal_str)) - 1 + (1 - my_pow(decimal, 1 - strlen(decimal_str))); + } + + return num; +} + +double my_pow(double base, int exp) +{ + double result = 1; + bool is_negative = false; + if (exp < 0) { + exp = -exp; + is_negative = true; + } + while (exp) { + if (exp & 1) { + result *= base; + } + exp >>= 1; + base *= base; + } + return is_negative ? (1 / result) : result; +} + +void extract_part(double num, StringInfo result, bool is_negative, bool extract_deci, int int_places, int deci_places) +{ + StringInfoData space_part, int_part, deci_part; + initStringInfo(&space_part); + initStringInfo(&int_part); + initStringInfo(&deci_part); + + extract_int_part(num, int_places, &space_part, &int_part); + + appendStringInfo(result, "%s", space_part.data); + if (unlikely(is_negative)) { + appendStringInfo(result, "%s", "-"); + } + appendStringInfo(result, "%s", int_part.data); + + if (extract_deci) { + extract_deci_part(num, deci_places, &deci_part); + appendStringInfo(result, "%s", "."); + appendStringInfo(result, "%s", deci_part.data); + } + + pfree(space_part.data); + pfree(int_part.data); + pfree(deci_part.data); +} + +void extract_int_part(double num, int places, StringInfo space_part, StringInfo int_part) +{ + bool can_append_space = true; + const int decimal = 10; + for (int i = places - 1; i >= 0; i--) { + int value = (int)(num / my_pow(decimal, i)) % decimal; + if (value == 0 && unlikely(can_append_space)) { + appendStringInfo(space_part, "%s", " "); + } else { + appendStringInfo(int_part, "%d", value); + can_append_space = false; + } + } +} + +void extract_deci_part(double num, int deci_places, StringInfo deci_part) +{ + const int decimal = 10; + + for (int i = 1; i <= deci_places; i++) { + int value = (int)(num * my_pow(decimal, i)) % decimal; + appendStringInfo(deci_part, "%d", value); + } +} + +void out_of_range(StringInfo result, int len, bool amend_length) +{ + if (unlikely(amend_length)) { + len++; + } + for (int i = 0; i < len; i++) { + appendStringInfo(result, "%s", "#"); + } +} diff --git a/src/common/backend/utils/misc/guc/guc_storage.cpp b/src/common/backend/utils/misc/guc/guc_storage.cpp index 45c79e2a0..a60ae55de 100755 --- a/src/common/backend/utils/misc/guc/guc_storage.cpp +++ b/src/common/backend/utils/misc/guc/guc_storage.cpp @@ -158,6 +158,7 @@ const int GENERAL_OID_LIST_LENGTH = 2; const int MS_PER_S = 1000; const int BUFSIZE = 1024; const int MAX_CPU_NUMS = 104; +const int MAXLENS = 5; static bool check_and_assign_catalog_oids(List* elemlist); static const char* show_archive_command(void); @@ -177,9 +178,25 @@ static void assign_replconninfo4(const char* newval, void* extra); static void assign_replconninfo5(const char* newval, void* extra); static void assign_replconninfo6(const char* newval, void* extra); static void assign_replconninfo7(const char* newval, void* extra); -#ifndef ENABLE_MULTIPLE_NODES static void assign_replconninfo8(const char* newval, void* extra); -#endif +static void assign_replconninfo9(const char* newval, void* extra); +static void assign_replconninfo10(const char* newval, void* extra); +static void assign_replconninfo11(const char* newval, void* extra); +static void assign_replconninfo12(const char* newval, void* extra); +static void assign_replconninfo13(const char* newval, void* extra); +static void assign_replconninfo14(const char* newval, void* extra); +static void assign_replconninfo15(const char* newval, void* extra); +static void assign_replconninfo16(const char* newval, void* extra); +static void assign_replconninfo17(const char* newval, void* extra); +static void assign_replconninfo18(const char* newval, void* extra); +static void assign_cross_cluster_replconninfo1(const char* newval, void* extra); +static void assign_cross_cluster_replconninfo2(const char* newval, void* extra); +static void assign_cross_cluster_replconninfo3(const char* newval, void* extra); +static void assign_cross_cluster_replconninfo4(const char* newval, void* extra); +static void assign_cross_cluster_replconninfo5(const char* newval, void* extra); +static void assign_cross_cluster_replconninfo6(const char* newval, void* extra); +static void assign_cross_cluster_replconninfo7(const char* newval, void* extra); +static void assign_cross_cluster_replconninfo8(const char* newval, void* extra); static const char* logging_module_guc_show(void); static bool check_inplace_upgrade_next_oids(char** newval, void** extra, GucSource source); static bool check_autovacuum_max_workers(int* newval, void** extra, GucSource source); @@ -199,6 +216,8 @@ static void assign_dcf_flow_control_cpu_threshold(int newval, void* extra); static void assign_dcf_flow_control_net_queue_message_num_threshold(int newval, void* extra); static void assign_dcf_flow_control_disk_rawait_threshold(int newval, void* extra); static void assign_dcf_log_backup_file_count(int newval, void* extra); +static void assign_dcf_flow_control_rto(int newval, void *extra); +static void assign_dcf_flow_control_rpo(int newval, void *extra); #endif static void InitStorageConfigureNamesBool(); @@ -671,7 +690,7 @@ static void InitStorageConfigureNamesBool() NULL}, {{"enable_twophase_commit", PGC_USERSET, - NODE_ALL, + NODE_DISTRIBUTE, XC_HOUSEKEEPING_OPTIONS, gettext_noop("Enable two phase commit when gtm free is on."), NULL}, @@ -733,7 +752,7 @@ static void InitStorageConfigureNamesBool() NULL}, {{"enable_adio_function", - PGC_POSTMASTER, + PGC_INTERNAL, NODE_ALL, DEVELOPER_OPTIONS, gettext_noop("Enable adio function."), @@ -745,7 +764,7 @@ static void InitStorageConfigureNamesBool() NULL}, {{"gds_debug_mod", PGC_USERSET, - NODE_ALL, + NODE_DISTRIBUTE, LOGGING_WHEN, gettext_noop("Enable GDS-related troubleshoot-logging."), NULL}, @@ -897,6 +916,20 @@ static void InitStorageConfigureNamesBool() NULL, NULL, NULL}, + + {{"enable_consider_usecount", + PGC_SIGHUP, + NODE_ALL, + RESOURCES_KERNEL, + gettext_noop("Whether consider buffer usecount when get buffer slot"), + NULL, + }, + &u_sess->attr.attr_storage.enable_candidate_buf_usage_count, + false, + NULL, + NULL, + NULL}, + #ifdef USE_ASSERT_CHECKING {{"enable_hashbucket", PGC_SUSET, @@ -1007,13 +1040,13 @@ static void InitStorageConfigureNamesInt() NULL, NULL}, {{"catchup2normal_wait_time", - PGC_POSTMASTER, + PGC_SIGHUP, NODE_ALL, REPLICATION_STANDBY, gettext_noop("The maximal allowed duration for waiting from catchup to normal state."), NULL, GUC_UNIT_MS}, - &g_instance.attr.attr_storage.catchup2normal_wait_time, + &u_sess->attr.attr_storage.catchup2normal_wait_time, -1, -1, 10000, @@ -1044,7 +1077,7 @@ static void InitStorageConfigureNamesInt() NULL, GUC_UNIT_MS}, &u_sess->attr.attr_storage.LockWaitTimeout, - 3000, + 1200000, 0, INT_MAX, NULL, @@ -1776,7 +1809,7 @@ static void InitStorageConfigureNamesInt() #ifdef PGXC 10, 0, - INT_MAX / 4, + MAX_BACKENDS, NULL, NULL, NULL @@ -2105,7 +2138,11 @@ static void InitStorageConfigureNamesInt() 0, 3600, NULL, +#ifndef ENABLE_MULTIPLE_NODES + assign_dcf_flow_control_rto, +#else NULL, +#endif NULL}, {{"time_to_target_rpo", PGC_SIGHUP, @@ -2118,6 +2155,36 @@ static void InitStorageConfigureNamesInt() 0, 3600, NULL, +#ifndef ENABLE_MULTIPLE_NODES + assign_dcf_flow_control_rpo, +#else + NULL, +#endif + NULL}, + {{"hadr_recovery_time_target", + PGC_SIGHUP, + NODE_ALL, + REPLICATION_SENDING, + gettext_noop("The target redo time in seconds for recovery in disaster mode"), + NULL}, + &u_sess->attr.attr_storage.hadr_recovery_time_target, + 0, + 0, + 3600, + NULL, + NULL, + NULL}, + {{"hadr_recovery_point_target", + PGC_SIGHUP, + NODE_ALL, + REPLICATION_SENDING, + gettext_noop("The time to the target recovery point in seconds in disaster mode"), + NULL}, + &u_sess->attr.attr_storage.hadr_recovery_point_target, + 0, + 0, + 3600, + NULL, NULL, NULL}, @@ -2656,23 +2723,9 @@ static void InitStorageConfigureNamesInt() NULL, 0}, &g_instance.attr.attr_storage.pagewriter_thread_num, - 2, + 4, 1, - 8, - NULL, - NULL, - NULL}, - {{"bgwriter_thread_num", - PGC_POSTMASTER, - NODE_ALL, - WAL_CHECKPOINTS, - gettext_noop("Sets the number of background writer threads with incremental checkpoint on."), - NULL, - 0}, - &g_instance.attr.attr_storage.bgwriter_thread_num, - 2, - 0, - 8, + 16, NULL, NULL, NULL}, @@ -2919,7 +2972,7 @@ static void InitStorageConfigureNamesInt() NULL}, {{"twophase_clean_workers", PGC_SIGHUP, - NODE_ALL, + NODE_DISTRIBUTE, RESOURCES_KERNEL, gettext_noop("Sets the parallel job number of gs_clean to clean prepared transactions."), NULL}, @@ -3230,6 +3283,20 @@ static void InitStorageConfigureNamesInt64() NULL, NULL, NULL}, + {{"xlog_file_size", + PGC_POSTMASTER, + NODE_SINGLENODE, + WAL, + gettext_noop("share storage xlog file size"), + NULL, + GUC_NOT_IN_SAMPLE | GUC_SUPERUSER_ONLY}, + &g_instance.attr.attr_storage.xlog_file_size, + INT64CONST(0x8000000000), // 512*1024*1024*1024 + INT64CONST(128 * 1024 * 1024), + INT64CONST(0x7FFFFFFFFFFFFFF), + NULL, + NULL, + NULL}, /* End-of-list marker */ {{NULL, (GucContext)0, @@ -3487,7 +3554,6 @@ static void InitStorageConfigureNamesString() check_replconninfo, assign_replconninfo7, NULL}, -#ifndef ENABLE_MULTIPLE_NODES /* Get the ReplConnInfo8 from postgresql.conf and assign to ReplConnArray8. */ {{"replconninfo8", PGC_SIGHUP, @@ -3501,7 +3567,137 @@ static void InitStorageConfigureNamesString() check_replconninfo, assign_replconninfo8, NULL}, -#endif + /* Get the ReplConnInfo9 from postgresql.conf and assign to ReplConnArray9. */ + {{"replconninfo9", + PGC_SIGHUP, + NODE_ALL, + REPLICATION_SENDING, + gettext_noop("Sets the replconninfo9 of the HA to listen and authenticate."), + NULL, + GUC_LIST_INPUT}, + &u_sess->attr.attr_storage.ReplConnInfoArr[9], + "", + check_replconninfo, + assign_replconninfo9, + NULL}, + /* Get the ReplConnInfo10 from postgresql.conf and assign to ReplConnArray10. */ + {{"replconninfo10", + PGC_SIGHUP, + NODE_ALL, + REPLICATION_SENDING, + gettext_noop("Sets the replconninfo10 of the HA to listen and authenticate."), + NULL, + GUC_LIST_INPUT}, + &u_sess->attr.attr_storage.ReplConnInfoArr[10], + "", + check_replconninfo, + assign_replconninfo10, + NULL}, + /* Get the ReplConnInfo11 from postgresql.conf and assign to ReplConnArray11. */ + {{"replconninfo11", + PGC_SIGHUP, + NODE_ALL, + REPLICATION_SENDING, + gettext_noop("Sets the replconninfo11 of the HA to listen and authenticate."), + NULL, + GUC_LIST_INPUT}, + &u_sess->attr.attr_storage.ReplConnInfoArr[11], + "", + check_replconninfo, + assign_replconninfo11, + NULL}, + /* Get the ReplConnInfo12 from postgresql.conf and assign to ReplConnArray12. */ + {{"replconninfo12", + PGC_SIGHUP, + NODE_ALL, + REPLICATION_SENDING, + gettext_noop("Sets the replconninfo12 of the HA to listen and authenticate."), + NULL, + GUC_LIST_INPUT}, + &u_sess->attr.attr_storage.ReplConnInfoArr[12], + "", + check_replconninfo, + assign_replconninfo12, + NULL}, + /* Get the ReplConnInfo13 from postgresql.conf and assign to ReplConnArray13. */ + {{"replconninfo13", + PGC_SIGHUP, + NODE_ALL, + REPLICATION_SENDING, + gettext_noop("Sets the replconninfo13 of the HA to listen and authenticate."), + NULL, + GUC_LIST_INPUT}, + &u_sess->attr.attr_storage.ReplConnInfoArr[13], + "", + check_replconninfo, + assign_replconninfo13, + NULL}, + /* Get the ReplConnInfo14 from postgresql.conf and assign to ReplConnArray14. */ + {{"replconninfo14", + PGC_SIGHUP, + NODE_ALL, + REPLICATION_SENDING, + gettext_noop("Sets the replconninfo14 of the HA to listen and authenticate."), + NULL, + GUC_LIST_INPUT}, + &u_sess->attr.attr_storage.ReplConnInfoArr[14], + "", + check_replconninfo, + assign_replconninfo14, + NULL}, + /* Get the ReplConnInfo15 from postgresql.conf and assign to ReplConnArray15. */ + {{"replconninfo15", + PGC_SIGHUP, + NODE_ALL, + REPLICATION_SENDING, + gettext_noop("Sets the replconninfo15 of the HA to listen and authenticate."), + NULL, + GUC_LIST_INPUT}, + &u_sess->attr.attr_storage.ReplConnInfoArr[15], + "", + check_replconninfo, + assign_replconninfo15, + NULL}, + /* Get the ReplConnInfo16 from postgresql.conf and assign to ReplConnArray16. */ + {{"replconninfo16", + PGC_SIGHUP, + NODE_ALL, + REPLICATION_SENDING, + gettext_noop("Sets the replconninfo16 of the HA to listen and authenticate."), + NULL, + GUC_LIST_INPUT}, + &u_sess->attr.attr_storage.ReplConnInfoArr[16], + "", + check_replconninfo, + assign_replconninfo16, + NULL}, + /* Get the ReplConnInfo17 from postgresql.conf and assign to ReplConnArray17. */ + {{"replconninfo17", + PGC_SIGHUP, + NODE_ALL, + REPLICATION_SENDING, + gettext_noop("Sets the replconninfo17 of the HA to listen and authenticate."), + NULL, + GUC_LIST_INPUT}, + &u_sess->attr.attr_storage.ReplConnInfoArr[17], + "", + check_replconninfo, + assign_replconninfo17, + NULL}, + /* Get the ReplConnInfo18 from postgresql.conf and assign to ReplConnArray18. */ + {{"replconninfo18", + PGC_SIGHUP, + NODE_ALL, + REPLICATION_SENDING, + gettext_noop("Sets the replconninfo18 of the HA to listen and authenticate."), + NULL, + GUC_LIST_INPUT}, + &u_sess->attr.attr_storage.ReplConnInfoArr[18], + "", + check_replconninfo, + assign_replconninfo18, + NULL}, + {{"primary_slotname", PGC_SIGHUP, NODE_ALL, @@ -3551,7 +3747,148 @@ static void InitStorageConfigureNamesString() NULL, NULL, NULL}, + /* Get the cross_cluster_ReplConnInfo1 from postgresql.conf and assign to cross_cluster_ReplConnArray1. */ + {{"cross_cluster_replconninfo1", + PGC_SIGHUP, + NODE_SINGLENODE, + REPLICATION_SENDING, + gettext_noop("Sets the cross_cluster_replconninfo1 of the HA to listen and authenticate."), + NULL, + GUC_LIST_INPUT}, + &u_sess->attr.attr_storage.CrossClusterReplConnInfoArr[1], + "", + check_replconninfo, + assign_cross_cluster_replconninfo1, + NULL}, + /* Get the cross_cluster_ReplConnInfo2 from postgresql.conf and assign to cross_cluster_ReplConnArray2. */ + {{"cross_cluster_replconninfo2", + PGC_SIGHUP, + NODE_SINGLENODE, + REPLICATION_SENDING, + gettext_noop("Sets the cross_cluster_replconninfo2 of the HA to listen and authenticate."), + NULL, + GUC_LIST_INPUT}, + &u_sess->attr.attr_storage.CrossClusterReplConnInfoArr[2], + "", + check_replconninfo, + assign_cross_cluster_replconninfo2, + NULL}, + /* Get the cross_cluster_ReplConnInfo3 from postgresql.conf and assign to cross_cluster_ReplConnArray3. */ + {{"cross_cluster_replconninfo3", + PGC_SIGHUP, + NODE_SINGLENODE, + REPLICATION_SENDING, + gettext_noop("Sets the cross_cluster_replconninfo3 of the HA to listen and authenticate."), + NULL, + GUC_LIST_INPUT}, + &u_sess->attr.attr_storage.CrossClusterReplConnInfoArr[3], + "", + check_replconninfo, + assign_cross_cluster_replconninfo3, + NULL}, + /* Get the cross_cluster_ReplConnInfo4 from postgresql.conf and assign to cross_cluster_ReplConnArray4. */ + {{"cross_cluster_replconninfo4", + PGC_SIGHUP, + NODE_SINGLENODE, + REPLICATION_SENDING, + gettext_noop("Sets the cross_cluster_replconninfo4 of the HA to listen and authenticate."), + NULL, + GUC_LIST_INPUT}, + &u_sess->attr.attr_storage.CrossClusterReplConnInfoArr[4], + "", + check_replconninfo, + assign_cross_cluster_replconninfo4, + NULL}, + /* Get the cross_cluster_ReplConnInfo5 from postgresql.conf and assign to cross_cluster_ReplConnArray5. */ + {{"cross_cluster_replconninfo5", + PGC_SIGHUP, + NODE_SINGLENODE, + REPLICATION_SENDING, + gettext_noop("Sets the cross_cluster_replconninfo5 of the HA to listen and authenticate."), + NULL, + GUC_LIST_INPUT}, + &u_sess->attr.attr_storage.CrossClusterReplConnInfoArr[5], + "", + check_replconninfo, + assign_cross_cluster_replconninfo5, + NULL}, + /* Get the cross_cluster_ReplConnInfo6 from postgresql.conf and assign to cross_cluster_ReplConnArray6. */ + {{"cross_cluster_replconninfo6", + PGC_SIGHUP, + NODE_SINGLENODE, + REPLICATION_SENDING, + gettext_noop("Sets the cross_cluster_replconninfo6 of the HA to listen and authenticate."), + NULL, + GUC_LIST_INPUT}, + &u_sess->attr.attr_storage.CrossClusterReplConnInfoArr[6], + "", + check_replconninfo, + assign_cross_cluster_replconninfo6, + NULL}, + /* Get the cross_cluster_ReplConnInfo7 from postgresql.conf and assign to cross_cluster_ReplConnArray7. */ + {{"cross_cluster_replconninfo7", + PGC_SIGHUP, + NODE_SINGLENODE, + REPLICATION_SENDING, + gettext_noop("Sets the cross_cluster_replconninfo7 of the HA to listen and authenticate."), + NULL, + GUC_LIST_INPUT}, + &u_sess->attr.attr_storage.CrossClusterReplConnInfoArr[7], + "", + check_replconninfo, + assign_cross_cluster_replconninfo7, + NULL}, + /* Get the cross_cluster_ReplConnInfo8 from postgresql.conf and assign to cross_cluster_ReplConnArray8. */ + {{ + "cross_cluster_replconninfo8", + PGC_SIGHUP, + NODE_SINGLENODE, + REPLICATION_SENDING, + gettext_noop("Sets the cross_cluster_replconninfo8 of the HA to listen and authenticate."), + NULL, + GUC_LIST_INPUT}, + &u_sess->attr.attr_storage.CrossClusterReplConnInfoArr[8], + "", + check_replconninfo, + assign_cross_cluster_replconninfo8, + NULL}, + + {{"xlog_file_path", + PGC_POSTMASTER, + NODE_SINGLENODE, + WAL, + gettext_noop("use only one xlog file, the path of it"), + NULL, + GUC_SUPERUSER_ONLY}, + &g_instance.attr.attr_storage.xlog_file_path, + NULL, + NULL, + NULL, + NULL}, + {{"hadr_super_user_record_path", + PGC_SIGHUP, + NODE_ALL, + REPLICATION_SENDING, + gettext_noop("Sets the secure file path for initial user."), + NULL}, + &u_sess->attr.attr_storage.hadr_super_user_record_path, + "", + NULL, + NULL, + NULL}, + {{"xlog_lock_file_path", + PGC_POSTMASTER, + NODE_SINGLENODE, + WAL, + gettext_noop("used to control write to xlog_file_path"), + NULL, + GUC_SUPERUSER_ONLY}, + &g_instance.attr.attr_storage.xlog_lock_file_path, + NULL, + NULL, + NULL, + NULL}, {{NULL, (GucContext)0, (GucNodeType)0, @@ -3700,7 +4037,6 @@ static void InitStorageConfigureNamesEnum() assign_dcf_run_mode, NULL}, #endif - /* End-of-list marker */ {{NULL, (GucContext)0, @@ -4083,7 +4419,6 @@ static void assign_replconninfo7(const char* newval, void* extra) } } -#ifndef ENABLE_MULTIPLE_NODES static void assign_replconninfo8(const char* newval, void* extra) { int repl_length = 0; @@ -4098,7 +4433,269 @@ static void assign_replconninfo8(const char* newval, void* extra) t_thrd.postmaster_cxt.ReplConnChanged[8] = true; } } -#endif + +static void assign_replconninfo9(const char* newval, void* extra) +{ + int repl_length = 0; + + if (t_thrd.postmaster_cxt.ReplConnArray[9]) { + pfree(t_thrd.postmaster_cxt.ReplConnArray[9]); + } + + t_thrd.postmaster_cxt.ReplConnArray[9] = ParseReplConnInfo(newval, &repl_length); + if (u_sess->attr.attr_storage.ReplConnInfoArr[9] != NULL && newval != NULL && + strcmp(u_sess->attr.attr_storage.ReplConnInfoArr[9], newval) != 0) { + t_thrd.postmaster_cxt.ReplConnChanged[9] = true; + } +} + +static void assign_replconninfo10(const char* newval, void* extra) +{ + int repl_length = 0; + + if (t_thrd.postmaster_cxt.ReplConnArray[10]) { + pfree(t_thrd.postmaster_cxt.ReplConnArray[10]); + } + + t_thrd.postmaster_cxt.ReplConnArray[10] = ParseReplConnInfo(newval, &repl_length); + if (u_sess->attr.attr_storage.ReplConnInfoArr[10] != NULL && newval != NULL && + strcmp(u_sess->attr.attr_storage.ReplConnInfoArr[10], newval) != 0) { + t_thrd.postmaster_cxt.ReplConnChanged[10] = true; + } +} + +static void assign_replconninfo11(const char* newval, void* extra) +{ + int repl_length = 0; + + if (t_thrd.postmaster_cxt.ReplConnArray[11]) { + pfree(t_thrd.postmaster_cxt.ReplConnArray[11]); + } + + t_thrd.postmaster_cxt.ReplConnArray[11] = ParseReplConnInfo(newval, &repl_length); + if (u_sess->attr.attr_storage.ReplConnInfoArr[11] != NULL && newval != NULL && + strcmp(u_sess->attr.attr_storage.ReplConnInfoArr[11], newval) != 0) { + t_thrd.postmaster_cxt.ReplConnChanged[11] = true; + } +} + +static void assign_replconninfo12(const char* newval, void* extra) +{ + int repl_length = 0; + + if (t_thrd.postmaster_cxt.ReplConnArray[12]) { + pfree(t_thrd.postmaster_cxt.ReplConnArray[12]); + } + + t_thrd.postmaster_cxt.ReplConnArray[12] = ParseReplConnInfo(newval, &repl_length); + if (u_sess->attr.attr_storage.ReplConnInfoArr[12] != NULL && newval != NULL && + strcmp(u_sess->attr.attr_storage.ReplConnInfoArr[12], newval) != 0) { + t_thrd.postmaster_cxt.ReplConnChanged[12] = true; + } +} + +static void assign_replconninfo13(const char* newval, void* extra) +{ + int repl_length = 0; + + if (t_thrd.postmaster_cxt.ReplConnArray[13]) { + pfree(t_thrd.postmaster_cxt.ReplConnArray[13]); + } + + t_thrd.postmaster_cxt.ReplConnArray[13] = ParseReplConnInfo(newval, &repl_length); + if (u_sess->attr.attr_storage.ReplConnInfoArr[13] != NULL && newval != NULL && + strcmp(u_sess->attr.attr_storage.ReplConnInfoArr[13], newval) != 0) { + t_thrd.postmaster_cxt.ReplConnChanged[13] = true; + } +} + +static void assign_replconninfo14(const char* newval, void* extra) +{ + int repl_length = 0; + + if (t_thrd.postmaster_cxt.ReplConnArray[14]) { + pfree(t_thrd.postmaster_cxt.ReplConnArray[14]); + } + + t_thrd.postmaster_cxt.ReplConnArray[14] = ParseReplConnInfo(newval, &repl_length); + if (u_sess->attr.attr_storage.ReplConnInfoArr[14] != NULL && newval != NULL && + strcmp(u_sess->attr.attr_storage.ReplConnInfoArr[14], newval) != 0) { + t_thrd.postmaster_cxt.ReplConnChanged[14] = true; + } +} + +static void assign_replconninfo15(const char* newval, void* extra) +{ + int repl_length = 0; + + if (t_thrd.postmaster_cxt.ReplConnArray[15]) { + pfree(t_thrd.postmaster_cxt.ReplConnArray[15]); + } + + t_thrd.postmaster_cxt.ReplConnArray[15] = ParseReplConnInfo(newval, &repl_length); + if (u_sess->attr.attr_storage.ReplConnInfoArr[15] != NULL && newval != NULL && + strcmp(u_sess->attr.attr_storage.ReplConnInfoArr[15], newval) != 0) { + t_thrd.postmaster_cxt.ReplConnChanged[15] = true; + } +} + +static void assign_replconninfo16(const char* newval, void* extra) +{ + int repl_length = 0; + + if (t_thrd.postmaster_cxt.ReplConnArray[16]) { + pfree(t_thrd.postmaster_cxt.ReplConnArray[16]); + } + + t_thrd.postmaster_cxt.ReplConnArray[16] = ParseReplConnInfo(newval, &repl_length); + if (u_sess->attr.attr_storage.ReplConnInfoArr[16] != NULL && newval != NULL && + strcmp(u_sess->attr.attr_storage.ReplConnInfoArr[16], newval) != 0) { + t_thrd.postmaster_cxt.ReplConnChanged[16] = true; + } +} + +static void assign_replconninfo17(const char* newval, void* extra) +{ + int repl_length = 0; + + if (t_thrd.postmaster_cxt.ReplConnArray[17]) { + pfree(t_thrd.postmaster_cxt.ReplConnArray[17]); + } + + t_thrd.postmaster_cxt.ReplConnArray[17] = ParseReplConnInfo(newval, &repl_length); + if (u_sess->attr.attr_storage.ReplConnInfoArr[17] != NULL && newval != NULL && + strcmp(u_sess->attr.attr_storage.ReplConnInfoArr[17], newval) != 0) { + t_thrd.postmaster_cxt.ReplConnChanged[17] = true; + } +} + +static void assign_replconninfo18(const char* newval, void* extra) +{ + int repl_length = 0; + + if (t_thrd.postmaster_cxt.ReplConnArray[18]) { + pfree(t_thrd.postmaster_cxt.ReplConnArray[18]); + } + + t_thrd.postmaster_cxt.ReplConnArray[18] = ParseReplConnInfo(newval, &repl_length); + if (u_sess->attr.attr_storage.ReplConnInfoArr[18] != NULL && newval != NULL && + strcmp(u_sess->attr.attr_storage.ReplConnInfoArr[18], newval) != 0) { + t_thrd.postmaster_cxt.ReplConnChanged[18] = true; + } +} + +static void assign_cross_cluster_replconninfo1(const char* newval, void* extra) +{ + int repl_length = 0; + + if (t_thrd.postmaster_cxt.CrossClusterReplConnArray[1] != NULL) + pfree(t_thrd.postmaster_cxt.CrossClusterReplConnArray[1]); + + t_thrd.postmaster_cxt.CrossClusterReplConnArray[1] = ParseReplConnInfo(newval, &repl_length); + if (u_sess->attr.attr_storage.CrossClusterReplConnInfoArr[1] != NULL && newval != NULL && + strcmp(u_sess->attr.attr_storage.CrossClusterReplConnInfoArr[1], newval) != 0) { + t_thrd.postmaster_cxt.CrossClusterReplConnChanged[1] = true; + } +} + +static void assign_cross_cluster_replconninfo2(const char* newval, void* extra) +{ + int repl_length = 0; + + if (t_thrd.postmaster_cxt.CrossClusterReplConnArray[2] != NULL) + pfree(t_thrd.postmaster_cxt.CrossClusterReplConnArray[2]); + + t_thrd.postmaster_cxt.CrossClusterReplConnArray[2] = ParseReplConnInfo(newval, &repl_length); + if (u_sess->attr.attr_storage.CrossClusterReplConnInfoArr[2] != NULL && newval != NULL && + strcmp(u_sess->attr.attr_storage.CrossClusterReplConnInfoArr[2], newval) != 0) { + t_thrd.postmaster_cxt.CrossClusterReplConnChanged[2] = true; + } +} + +static void assign_cross_cluster_replconninfo3(const char* newval, void* extra) +{ + int repl_length = 0; + + if (t_thrd.postmaster_cxt.CrossClusterReplConnArray[3]) + pfree(t_thrd.postmaster_cxt.CrossClusterReplConnArray[3]); + + t_thrd.postmaster_cxt.CrossClusterReplConnArray[3] = ParseReplConnInfo(newval, &repl_length); + if (u_sess->attr.attr_storage.CrossClusterReplConnInfoArr[3] != NULL && newval != NULL && + strcmp(u_sess->attr.attr_storage.CrossClusterReplConnInfoArr[3], newval) != 0) { + t_thrd.postmaster_cxt.CrossClusterReplConnChanged[3] = true; + } +} + +static void assign_cross_cluster_replconninfo4(const char* newval, void* extra) +{ + int repl_length = 0; + + if (t_thrd.postmaster_cxt.CrossClusterReplConnArray[4]) + pfree(t_thrd.postmaster_cxt.CrossClusterReplConnArray[4]); + + t_thrd.postmaster_cxt.CrossClusterReplConnArray[4] = ParseReplConnInfo(newval, &repl_length); + if (u_sess->attr.attr_storage.CrossClusterReplConnInfoArr[4] != NULL && newval != NULL && + strcmp(u_sess->attr.attr_storage.CrossClusterReplConnInfoArr[4], newval) != 0) { + t_thrd.postmaster_cxt.CrossClusterReplConnChanged[4] = true; + } +} + +static void assign_cross_cluster_replconninfo5(const char* newval, void* extra) +{ + int repl_length = 0; + + if (t_thrd.postmaster_cxt.CrossClusterReplConnArray[5]) + pfree(t_thrd.postmaster_cxt.CrossClusterReplConnArray[5]); + + t_thrd.postmaster_cxt.CrossClusterReplConnArray[5] = ParseReplConnInfo(newval, &repl_length); + if (u_sess->attr.attr_storage.CrossClusterReplConnInfoArr[5] != NULL && newval != NULL && + strcmp(u_sess->attr.attr_storage.CrossClusterReplConnInfoArr[5], newval) != 0) { + t_thrd.postmaster_cxt.CrossClusterReplConnChanged[5] = true; + } +} + +static void assign_cross_cluster_replconninfo6(const char* newval, void* extra) +{ + int repl_length = 0; + + if (t_thrd.postmaster_cxt.CrossClusterReplConnArray[6]) + pfree(t_thrd.postmaster_cxt.CrossClusterReplConnArray[6]); + + t_thrd.postmaster_cxt.CrossClusterReplConnArray[6] = ParseReplConnInfo(newval, &repl_length); + if (u_sess->attr.attr_storage.CrossClusterReplConnInfoArr[6] != NULL && newval != NULL && + strcmp(u_sess->attr.attr_storage.CrossClusterReplConnInfoArr[6], newval) != 0) { + t_thrd.postmaster_cxt.CrossClusterReplConnChanged[6] = true; + } +} + +static void assign_cross_cluster_replconninfo7(const char* newval, void* extra) +{ + int repl_length = 0; + + if (t_thrd.postmaster_cxt.CrossClusterReplConnArray[7]) + pfree(t_thrd.postmaster_cxt.CrossClusterReplConnArray[7]); + + t_thrd.postmaster_cxt.CrossClusterReplConnArray[7] = ParseReplConnInfo(newval, &repl_length); + if (u_sess->attr.attr_storage.CrossClusterReplConnInfoArr[7] != NULL && newval != NULL && + strcmp(u_sess->attr.attr_storage.CrossClusterReplConnInfoArr[7], newval) != 0) { + t_thrd.postmaster_cxt.CrossClusterReplConnChanged[7] = true; + } +} + +static void assign_cross_cluster_replconninfo8(const char* newval, void* extra) +{ + int repl_length = 0; + + if (t_thrd.postmaster_cxt.CrossClusterReplConnArray[8]) { + pfree(t_thrd.postmaster_cxt.CrossClusterReplConnArray[8]); + } + + t_thrd.postmaster_cxt.CrossClusterReplConnArray[8] = ParseReplConnInfo(newval, &repl_length); + if (u_sess->attr.attr_storage.CrossClusterReplConnInfoArr[8] != NULL && newval != NULL && + strcmp(u_sess->attr.attr_storage.CrossClusterReplConnInfoArr[8], newval) != 0) { + t_thrd.postmaster_cxt.CrossClusterReplConnChanged[8] = true; + } +} /* * @Description: show the content of GUC "logging_module" @@ -4243,6 +4840,8 @@ static ReplConnInfo* ParseReplConnInfo(const char* ConnInfoList, int* InfoLength char* ReplStr = NULL; char* token = NULL; char* tmp_token = NULL; + char cascadeToken[MAXLENS] = {0}; + char crossRegionToken[MAXLENS] = {0}; char* ptr = NULL; int parsed = 0; int iplen = 0; @@ -4251,6 +4850,7 @@ static ReplConnInfo* ParseReplConnInfo(const char* ConnInfoList, int* InfoLength int local_heartbeat_len = strlen("localheartbeatport"); int remote_heartbeat_len = strlen("remoteheartbeatport"); int cascadeLen = strlen("iscascade"); + int corssRegionLen = strlen("isCrossRegion"); errno_t errorno = EOK; @@ -4405,12 +5005,30 @@ static ReplConnInfo* ParseReplConnInfo(const char* ConnInfoList, int* InfoLength iter = strstr(token, "iscascade"); if (NULL != iter) { iter += cascadeLen; - - if (strstr(iter, "true") != NULL) { + while (*iter == ' ' || *iter == '=') { + iter++; + } + errorno = strncpy_s(cascadeToken, MAXLENS, iter, strlen("true")); + securec_check(errorno, "\0", "\0"); + if (strcmp(cascadeToken, "true") == 0) { repl[parsed].isCascade = true; } } + /* is cross region */ + iter = strstr(token, "iscrossregion"); + if (iter != NULL) { + iter += corssRegionLen; + while (*iter == ' ' || *iter == '=') { + iter++; + } + strncpy_s(crossRegionToken, MAXLENS, iter, strlen("true")); + securec_check(errorno, "\0", "\0"); + if (strcmp(crossRegionToken, "true") == 0) { + repl[parsed].isCrossRegion = true; + } + } + token = strtok_r(NULL, ",", &tmp_token); parsed++; } @@ -4585,4 +5203,18 @@ static void assign_dcf_log_backup_file_count(int newval, void* extra) dcf_set_param("LOG_BACKUP_FILE_COUNT", std::to_string(newval).c_str()); } +static void assign_dcf_flow_control_rto(int newval, void *extra) +{ + if (t_thrd.proc_cxt.MyProcPid == PostmasterPid) { + dcf_set_param("DN_FLOW_CONTROL_RTO", std::to_string(newval).c_str()); + } +} + +static void assign_dcf_flow_control_rpo(int newval, void *extra) +{ + if (t_thrd.proc_cxt.MyProcPid == PostmasterPid) { + dcf_set_param("DN_FLOW_CONTROL_RPO", std::to_string(newval).c_str()); + } +} + #endif diff --git a/src/common/backend/utils/misc/oidrbtree.cpp b/src/common/backend/utils/misc/oidrbtree.cpp new file mode 100644 index 000000000..d651a4c64 --- /dev/null +++ b/src/common/backend/utils/misc/oidrbtree.cpp @@ -0,0 +1,172 @@ +/* + * Copyright (c) 2021 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors + * + * openGauss is licensed under Mulan PSL v2. + * You can use this software according to the terms and conditions of the Mulan PSL v2. + * You may obtain a copy of Mulan PSL v2 at: + * + * http://license.coscl.org.cn/MulanPSL2 + * + * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, + * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, + * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + * See the Mulan PSL v2 for more details. + * ------------------------------------------------------------------------- + * + * oidrbtree.cpp + * The Red-Black binary tree of oid. + * + * + * IDENTIFICATION + * ./src/common/backend/utils/misc/oidrbtree.cpp + * + * ------------------------------------------------------------------------- + */ +#include "utils/oidrbtree.h" +#include "utils/memutils.h" + +MemoryContext GetOidRBTreeMemory() +{ + if (!t_thrd.security_policy_cxt.OidRBTreeMemoryContext) { + t_thrd.security_policy_cxt.OidRBTreeMemoryContext = AllocSetContextCreate(TopMemoryContext, "OidRBTreeMemory", + ALLOCSET_DEFAULT_MINSIZE, ALLOCSET_DEFAULT_INITSIZE, ALLOCSET_DEFAULT_MAXSIZE); + } + return t_thrd.security_policy_cxt.OidRBTreeMemoryContext; +} + +void DeleteOidRBTreeMemory() +{ + if (t_thrd.security_policy_cxt.OidRBTreeMemoryContext != NULL) { + MemoryContextDelete(t_thrd.security_policy_cxt.OidRBTreeMemoryContext); + t_thrd.security_policy_cxt.OidRBTreeMemoryContext = NULL; + } +} + +/* Comparator function for oid rbtree */ +static int OidRBComparator(const RBNode* rbNodeA, const RBNode* rbNodeB, void* arg) +{ + const OidRBNode* oidRBNodeA = (const OidRBNode*)rbNodeA; + const OidRBNode* oidRBNodeB = (const OidRBNode*)rbNodeB; + + if (oidRBNodeA->oid == oidRBNodeB->oid) { + return 0; + } + + if (oidRBNodeA->oid > oidRBNodeB->oid) { + return 1; + } + + return -1; +} + +/* + * Combiner function for oid rbtree + * An equivalent key (already existed) is not allowed to add + */ +static void OidRBCombine(RBNode* existing, const RBNode* newdata, void* arg) +{ + /* Nothing to do */ +} + +/* Allocator function for oid rbtree */ +static RBNode* OidRBAlloc(void* arg) +{ + MemoryContext oldContext = MemoryContextSwitchTo(GetOidRBTreeMemory()); + OidRBNode* oidRBNode = static_cast(palloc(sizeof(OidRBNode))); + (void)MemoryContextSwitchTo(oldContext); + return (RBNode*)oidRBNode; +} + +/* Deallocator function for oid rbtree */ +static void OidRBDealloc(RBNode* rbNode, void* arg) +{ + OidRBNode* oidRBNode = (OidRBNode*)rbNode; + pfree_ext(oidRBNode); +} + +OidRBTree* CreateOidRBTree() +{ + MemoryContext oldContext = MemoryContextSwitchTo(GetOidRBTreeMemory()); + OidRBTree* oidRBTree = rb_create(sizeof(OidRBNode), OidRBComparator, OidRBCombine, OidRBAlloc, OidRBDealloc, NULL); + (void)MemoryContextSwitchTo(oldContext); + return oidRBTree; +} + +static List* OidRBTreeGetNodeList(OidRBTree& oidRBtree) +{ + List* nodeList = NIL; + OidRBTree* tree = &oidRBtree; + MemoryContext oldContext = MemoryContextSwitchTo(GetOidRBTreeMemory()); + rb_begin_iterate(tree, InvertedWalk); + RBNode *node = rb_iterate(tree); + while (node != NULL) { + nodeList = lappend(nodeList, node); + node = rb_iterate(tree); + } + (void)MemoryContextSwitchTo(oldContext); + return nodeList; +} + +void DestroyOidRBTree(OidRBTree** tree) +{ + if (tree == NULL || *tree == NULL) { + return; + } + + List* nodeList = OidRBTreeGetNodeList(**tree); + if (nodeList != NIL) { + list_free_deep(nodeList); + } + pfree_ext(*tree); +} + +bool OidRBTreeMemberOid(OidRBTree* tree, Oid oid) +{ + OidRBNode oidRBNode; + oidRBNode.oid = oid; + return (rb_find(tree, (const RBNode*)&oidRBNode) != NULL); +} + +bool OidRBTreeInsertOid(OidRBTree* tree, Oid oid) +{ + bool isNewOidRBNode = true; + OidRBNode oidRBNode; + oidRBNode.oid = oid; + (void)rb_insert(tree, (const RBNode*)&oidRBNode, &isNewOidRBNode); + return isNewOidRBNode; +} + +void OidRBTreeUnionOids(OidRBTree* tree1, OidRBTree* tree2) +{ + if (tree2 == NULL) { + return; + } + + rb_begin_iterate(tree2, InvertedWalk); + RBNode *node = rb_iterate(tree2); + while (node != NULL) { + OidRBNode* oidRBNode = (OidRBNode*)node; + (void)OidRBTreeInsertOid(tree1, oidRBNode->oid); + node = rb_iterate(tree2); + } +} + +bool OidRBTreeHasIntersection(OidRBTree* tree1, OidRBTree* tree2) +{ + if (tree2 == NULL) { + return false; + } + + rb_begin_iterate(tree2, InvertedWalk); + RBNode *node = rb_iterate(tree2); + while (node != NULL) { + OidRBNode* oidRBNode = (OidRBNode*)node; + if (OidRBTreeMemberOid(tree1, oidRBNode->oid)) { + return true; + } + node = rb_iterate(tree2); + } + return false; +} + diff --git a/src/common/backend/utils/misc/postgresql_distribute.conf.sample b/src/common/backend/utils/misc/postgresql_distribute.conf.sample index 3adc604c9..de1abba8f 100644 --- a/src/common/backend/utils/misc/postgresql_distribute.conf.sample +++ b/src/common/backend/utils/misc/postgresql_distribute.conf.sample @@ -802,6 +802,7 @@ audit_enabled = on #audit_function_exec = 0 #audit_copy_exec = 0 #audit_set_parameter = 1 # whether audit set parameter operation + #Choose which style to print the explain info, normal,pretty,summary,run #explain_perf_mode = normal #------------------------------------------------------------------------------ @@ -816,10 +817,6 @@ audit_enabled = on #------------------------------------------------------------------------------ -#------------------------------------------------------------------------------ -# ADIO -#------------------------------------------------------------------------------ -#enable_adio_function = off #enable_fast_allocate = off #prefetch_quantity = 32MB #backwrite_quantity = 8MB diff --git a/src/common/backend/utils/misc/postgresql_single.conf.sample b/src/common/backend/utils/misc/postgresql_single.conf.sample index 21f51958d..76ff11c30 100644 --- a/src/common/backend/utils/misc/postgresql_single.conf.sample +++ b/src/common/backend/utils/misc/postgresql_single.conf.sample @@ -280,6 +280,20 @@ max_replication_slots = 8 # max number of replication slots.i # e.g. 'localhost=10.145.130.2 localport=12311 localheartbeatport=12214 remotehost=10.145.130.8 remoteport=12312 remoteheartbeatport=12215, localhost=10.145.133.2 localport=12313 remotehost=10.145.133.8 remoteport=12314' #replconninfo7 = '' # replication connection information used to connect primary on standby, or standby on primary, # e.g. 'localhost=10.145.130.2 localport=12311 localheartbeatport=12214 remotehost=10.145.130.9 remoteport=12312 remoteheartbeatport=12215, localhost=10.145.133.2 localport=12313 remotehost=10.145.133.9 remoteport=12314' +#cross_cluster_replconninfo1 = '' # replication connection information used to connect primary on primary cluster, or standby on standby cluster, + # e.g. 'localhost=10.145.133.2 localport=12313 remotehost=10.145.133.9 remoteport=12314' +#cross_cluster_replconninfo2 = '' # replication connection information used to connect primary on primary cluster, or standby on standby cluster, + # e.g. 'localhost=10.145.133.2 localport=12313 remotehost=10.145.133.9 remoteport=12314' +#cross_cluster_replconninfo3 = '' # replication connection information used to connect primary on primary cluster, or standby on standby cluster, + # e.g. 'localhost=10.145.133.2 localport=12313 remotehost=10.145.133.9 remoteport=12314' +#cross_cluster_replconninfo4 = '' # replication connection information used to connect primary on primary cluster, or standby on standby cluster, + # e.g. 'localhost=10.145.133.2 localport=12313 remotehost=10.145.133.9 remoteport=12314' +#cross_cluster_replconninfo5 = '' # replication connection information used to connect primary on primary cluster, or standby on standby cluster, + # e.g. 'localhost=10.145.133.2 localport=12313 remotehost=10.145.133.9 remoteport=12314' +#cross_cluster_replconninfo6 = '' # replication connection information used to connect primary on primary cluster, or standby on standby cluster, + # e.g. 'localhost=10.145.133.2 localport=12313 remotehost=10.145.133.9 remoteport=12314' +#cross_cluster_replconninfo7 = '' # replication connection information used to connect primary on primary cluster, or standby on standby cluster, + # e.g. 'localhost=10.145.133.2 localport=12313 remotehost=10.145.133.9 remoteport=12314' # - Master Server - @@ -549,7 +563,7 @@ use_workload_manager = on # Enables workload manager in the system. # AUTOVACUUM PARAMETERS #------------------------------------------------------------------------------ -#autovacuum = off # Enable autovacuum subprocess? default value is 'off' +#autovacuum = off # Enable autovacuum subprocess? default value is 'on' # requires track_counts to also be on. #log_autovacuum_min_duration = -1 # -1 disables, 0 logs all actions and # their durations, > 0 logs only @@ -723,7 +737,8 @@ audit_enabled = on #audit_function_exec = 0 #audit_copy_exec = 0 #audit_set_parameter = 1 # whether audit set parameter operation -#enable_performace_data = normal #Choose which style to print the explain info, normal,pretty,summary,run + +#Choose which style to print the explain info, normal,pretty,summary,run #explain_perf_mode = normal #------------------------------------------------------------------------------ # CUSTOMIZED OPTIONS @@ -737,10 +752,6 @@ audit_enabled = on #------------------------------------------------------------------------------ -#------------------------------------------------------------------------------ -# ADIO -#------------------------------------------------------------------------------ -#enable_adio_function = off #enable_fast_allocate = off #prefetch_quantity = 32MB #backwrite_quantity = 8MB @@ -765,4 +776,8 @@ job_queue_processes = 10 # Number of concurrent jobs, optional: [0..1000] # DCF OPTIONS #------------------------------------------------------------------------------ #enable_dcf = off - +# +#------------------------------------------------------------------------------ +# PLSQL COMPILE OPTIONS +#------------------------------------------------------------------------------ +#plsql_show_all_error=off diff --git a/src/common/backend/utils/misc/sec_rls_utils.cpp b/src/common/backend/utils/misc/sec_rls_utils.cpp index 5aa4b99db..30f70eec4 100644 --- a/src/common/backend/utils/misc/sec_rls_utils.cpp +++ b/src/common/backend/utils/misc/sec_rls_utils.cpp @@ -209,6 +209,14 @@ void SupportRlsForRel(const Relation relation) RelationGetRelationName(relation)))); } + if (reltup->parttype == PARTTYPE_SUBPARTITIONED_RELATION) { + ReleaseSysCache(tuple); + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + (errmsg("Un-support feature"), + errdetail("Do not support row level security policy on subpartition table."), + errcause("The function is not implemented."), erraction("Use other actions instead.")))); + } + /* Do not support dfs table */ if (RelationIsDfsStore(relation)) { ReleaseSysCache(tuple); diff --git a/src/common/backend/utils/mmgr/asetalg.cpp b/src/common/backend/utils/mmgr/asetalg.cpp index b90634ec1..0042a03df 100644 --- a/src/common/backend/utils/mmgr/asetalg.cpp +++ b/src/common/backend/utils/mmgr/asetalg.cpp @@ -598,7 +598,6 @@ void AlignMemoryAllocator::AllocSetDelete(MemoryContext context) set->freeSpace = 0; set->totalSpace = 0; - // if (is_shared) MemoryContextUnlock(context); } diff --git a/src/common/backend/utils/mmgr/mcxt.cpp b/src/common/backend/utils/mmgr/mcxt.cpp index 135e019fd..348a03df8 100644 --- a/src/common/backend/utils/mmgr/mcxt.cpp +++ b/src/common/backend/utils/mmgr/mcxt.cpp @@ -665,6 +665,9 @@ static void MemoryContextStatsInternal(MemoryContext context, int level) void MemoryContextCheck(MemoryContext context, bool own_by_session) { MemoryContext child; + if (unlikely(context == NULL)) { + elog(PANIC, "Switch to Invalid memory context"); + } AssertArg(MemoryContextIsValid(context)); uint64 id = 0; @@ -975,7 +978,7 @@ static void* MemoryAllocFromContext(MemoryContext context, Size size, const char if (!AllocSizeIsValid(size)) { ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("invalid memory alloc request size %lu", (unsigned long)size))); + errmsg("invalid memory alloc request size %lu in %s:%d.", (unsigned long)size, file, line))); } context->isReset = false; @@ -1036,7 +1039,7 @@ void* MemoryContextAllocZeroDebug(MemoryContext context, Size size, const char* if (!AllocSizeIsValid(size)) { ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("invalid memory alloc request size %lu", (unsigned long)size))); + errmsg("invalid memory alloc request size %lu in %s:%d", (unsigned long)size, file, line))); } context->isReset = false; @@ -1085,7 +1088,7 @@ void* MemoryContextAllocZeroAlignedDebug(MemoryContext context, Size size, const if (!AllocSizeIsValid(size)) { ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("invalid memory alloc request size %lu", (unsigned long)size))); + errmsg("invalid memory alloc request size %lu in %s:%d", (unsigned long)size, file, line))); } context->isReset = false; @@ -1209,7 +1212,7 @@ void* repalloc_noexcept_Debug(void* pointer, Size size, const char* file, int li if (!AllocSizeIsValid(size)) { ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("invalid memory alloc request size %lu", (unsigned long)size))); + errmsg("invalid memory alloc request size %lu in %s:%d", (unsigned long)size, file, line))); } /* @@ -1262,7 +1265,7 @@ void* repallocDebug(void* pointer, Size size, const char* file, int line) if (!AllocSizeIsValid(size)) { ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("invalid memory alloc request size %lu", (unsigned long)size))); + errmsg("invalid memory alloc request size %lu in %s:%d", (unsigned long)size, file, line))); } /* @@ -1325,7 +1328,7 @@ void* MemoryContextMemalignAllocDebug(MemoryContext context, Size align, Size si if (!AllocSizeIsValid(size)) { ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("invalid memory alloc request size %lu", (unsigned long)size))); + errmsg("invalid memory alloc request size %lu in %s:%d", (unsigned long)size, file, line))); } context->isReset = false; @@ -1369,8 +1372,8 @@ void* MemoryContextAllocHugeDebug(MemoryContext context, Size size, const char* AssertArg(MemoryContextIsValid(context)); if (!AllocHugeSizeIsValid(size)) { - ereport( - ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("invalid memory alloc request size %zu", size))); + ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("invalid memory alloc request size %zu in %s:%d", size, file, line))); } context->isReset = false; @@ -1413,8 +1416,8 @@ void* repallocHugeDebug(void* pointer, Size size, const char* file, int line) void* ret = NULL; if (!AllocHugeSizeIsValid(size)) { - ereport( - ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("invalid memory alloc request size %lu", size))); + ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("invalid memory alloc request size %lu in %s:%d", size, file, line))); } /* diff --git a/src/common/backend/utils/mmgr/memprot.cpp b/src/common/backend/utils/mmgr/memprot.cpp index 4dbd2013d..0749658e2 100755 --- a/src/common/backend/utils/mmgr/memprot.cpp +++ b/src/common/backend/utils/mmgr/memprot.cpp @@ -114,6 +114,16 @@ bool gs_memory_enjection(void) } #endif +bool compressed_mem_reserve(Size sz, bool protect) +{ + return MemoryProtectFunctions::gs_memprot_reserve(sz, protect); +} + +void compressed_mem_release(Size sz) +{ + MemoryProtectFunctions::gs_memprot_release(sz); + +} /* * check if the node is on heavy memory status now? diff --git a/src/common/backend/utils/mmgr/portalmem.cpp b/src/common/backend/utils/mmgr/portalmem.cpp index f26852194..cb8cef96f 100755 --- a/src/common/backend/utils/mmgr/portalmem.cpp +++ b/src/common/backend/utils/mmgr/portalmem.cpp @@ -10,6 +10,7 @@ * * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * IDENTIFICATION * src/backend/utils/mmgr/portalmem.c @@ -205,7 +206,7 @@ Portal CreatePortal(const char* name, bool allowDup, bool dupSilent, bool is_fro ereport(ERROR, (errcode(ERRCODE_DUPLICATE_CURSOR), errmsg("cursor \"%s\" already exists", name))); if (dupSilent == false) ereport(WARNING, (errcode(ERRCODE_DUPLICATE_CURSOR), errmsg("closing existing cursor \"%s\"", name))); - PortalDrop(portal, false); + PortalDrop(portal, false, true); } /* make new portal structure */ @@ -221,6 +222,7 @@ Portal CreatePortal(const char* name, bool allowDup, bool dupSilent, bool is_fro /* create a resource owner for the portal */ portal->resowner = ResourceOwnerCreate(t_thrd.utils_cxt.CurTransactionResourceOwner, "Portal", THREAD_GET_MEM_CXT_GROUP(MEMORY_CONTEXT_EXECUTOR)); + RESOWNER_LOG("create", portal->resowner); /* initialize portal fields that don't start off zero */ portal->status = PORTAL_NEW; @@ -425,6 +427,9 @@ void MarkPortalActive(Portal portal) (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("portal \"%s\" cannot be run", portal->name))); /* Perform the state transition */ portal->status = PORTAL_ACTIVE; + ereport(DEBUG2, (errmodule(MOD_SPI), errcode(ERRCODE_LOG), + errmsg("MarkPortalActive(portal name:%s, status %d, portalPinned %d, autoHeld %d)", + portal->name, portal->status, portal->portalPinned, portal->autoHeld))); portal->activeSubid = GetCurrentSubTransactionId(); } @@ -439,6 +444,9 @@ void MarkPortalDone(Portal portal) /* Perform the state transition */ Assert(portal->status == PORTAL_ACTIVE); portal->status = PORTAL_DONE; + ereport(DEBUG2, (errmodule(MOD_SPI), errcode(ERRCODE_LOG), + errmsg("MarkPortalDone(portal:%p, portal name:%s, status %d, portalPinned %d, autoHeld %d)", + portal, portal->name, portal->status, portal->portalPinned, portal->autoHeld))); /* * Allow portalcmds.c to clean up the state it knows about. We might as @@ -465,6 +473,9 @@ void MarkPortalFailed(Portal portal) /* Perform the state transition */ Assert(portal->status != PORTAL_DONE); portal->status = PORTAL_FAILED; + ereport(DEBUG2, (errmodule(MOD_SPI), errcode(ERRCODE_LOG), + errmsg("MarkPortalFailed(portal:%p, portal name:%s, status %d, portalPinned %d, autoHeld %d)", + portal, portal->name, portal->status, portal->portalPinned, portal->autoHeld))); /* * Allow portalcmds.c to clean up the state it knows about. We might as @@ -484,7 +495,7 @@ void MarkPortalFailed(Portal portal) * PortalDrop * Destroy the portal. */ -void PortalDrop(Portal portal, bool isTopCommit) +void PortalDrop(Portal portal, bool isTopCommit, bool isInCreate) { if (!PortalIsValid(portal)) { ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("portal is NULL"))); @@ -542,11 +553,19 @@ void PortalDrop(Portal portal, bool isTopCommit) */ if (portal->resowner && (!isTopCommit || portal->status == PORTAL_FAILED)) { bool isCommit = (portal->status != PORTAL_FAILED); - - ResourceOwnerRelease(portal->resowner, RESOURCE_RELEASE_BEFORE_LOCKS, isCommit, false); - ResourceOwnerRelease(portal->resowner, RESOURCE_RELEASE_LOCKS, isCommit, false); - ResourceOwnerRelease(portal->resowner, RESOURCE_RELEASE_AFTER_LOCKS, isCommit, false); - ResourceOwnerDelete(portal->resowner); + if (portal->resowner && isInCreate && ENABLE_SQL_BETA_FEATURE(RESOWNER_DEBUG)) { + RESOWNER_LOG("delete for create", portal->resowner); + ResourceOwnerRelease(portal->resowner, RESOURCE_RELEASE_BEFORE_LOCKS, isCommit, false); + ResourceOwnerRelease(portal->resowner, RESOURCE_RELEASE_LOCKS, isCommit, false); + ResourceOwnerRelease(portal->resowner, RESOURCE_RELEASE_AFTER_LOCKS, isCommit, false); + portal->resowner = NULL; + } else { + RESOWNER_LOG("delete", portal->resowner); + ResourceOwnerRelease(portal->resowner, RESOURCE_RELEASE_BEFORE_LOCKS, isCommit, false); + ResourceOwnerRelease(portal->resowner, RESOURCE_RELEASE_LOCKS, isCommit, false); + ResourceOwnerRelease(portal->resowner, RESOURCE_RELEASE_AFTER_LOCKS, isCommit, false); + ResourceOwnerDelete(portal->resowner); + } } portal->resowner = NULL; @@ -836,7 +855,7 @@ void AtAbort_Portals(bool STP_rollback) * upcoming transaction-wide cleanup; they will be gone before we run * PortalDrop. Can not reset resonwer to NUll if * we are in STP_rollback, because the Portal is still alive. If we set - * resowner to NUll it will cause leak snapshots reference error, because + * resowner to NUll it will cause leak snapshots reference error, because * the new snapshots does not have owner. */ if(!STP_rollback) { @@ -970,8 +989,8 @@ void AtSubCommit_Portals(SubTransactionId mySubid, SubTransactionId parentSubid, * * We don't destroy any portals here; that's done in AtSubCleanup_Portals. */ -void AtSubAbort_Portals( - SubTransactionId mySubid, SubTransactionId parentSubid, ResourceOwner myXactOwner, ResourceOwner parentXactOwner) +void AtSubAbort_Portals(SubTransactionId mySubid, SubTransactionId parentSubid, + ResourceOwner myXactOwner, ResourceOwner parentXactOwner, bool inSTP) { HASH_SEQ_STATUS status; PortalHashEnt* hentry = NULL; @@ -1035,35 +1054,57 @@ void AtSubAbort_Portals( * changed in the failed subtransaction, leading to crashes within * ExecutorEnd when portalcmds.cpp tries to close down the portal. */ - if (portal->status == PORTAL_READY || portal->status == PORTAL_ACTIVE) + if (portal->status == PORTAL_READY) MarkPortalFailed(portal); - /* - * Allow portalcmds.c to clean up the state it knows about, if we - * haven't already. - */ - if (PointerIsValid(portal->cleanup)) { - (*portal->cleanup)(portal); - portal->cleanup = NULL; + if (!inSTP || portal->is_from_spi) { + /* + * Force any active portals into FAILED state, see comments above. + */ + if (portal->status == PORTAL_ACTIVE) { + MarkPortalFailed(portal); + } + + /* + * Allow portalcmds.c to clean up the state it knows about, if we + * haven't already. + */ + if (PointerIsValid(portal->cleanup)) { + (*portal->cleanup)(portal); + portal->cleanup = NULL; + } + + /* drop cached plan reference, if any */ + PortalReleaseCachedPlan(portal); + + /* + * Any resources belonging to the portal will be released in the + * upcoming transaction-wide cleanup; they will be gone before we run + * PortalDrop. + */ + portal->resowner = NULL; + + /* + * Although we can't delete the portal data structure proper, we can + * release any memory in subsidiary contexts, such as executor state. + * The cleanup hook was the last thing that might have needed data + * there. + */ + MemoryContextDeleteChildren(PortalGetHeapMemory(portal)); + } else { + /* clean up snapshots before release its reource owner. */ + if (portal->resowner != NULL) { + ResourceOwnerDecrementNsnapshots(portal->resowner, portal->queryDesc); + } + + /* + * While rollback to savepoint outside STP, stmt top portal is still active. + * don't destory its memory context. + */ + if (portal->status != PORTAL_ACTIVE) { + MemoryContextDeleteChildren(PortalGetHeapMemory(portal)); + } } - - /* drop cached plan reference, if any */ - PortalReleaseCachedPlan(portal); - - /* - * Any resources belonging to the portal will be released in the - * upcoming transaction-wide cleanup; they will be gone before we run - * PortalDrop. - */ - portal->resowner = NULL; - - /* - * Although we can't delete the portal data structure proper, we can - * release any memory in subsidiary contexts, such as executor state. - * The cleanup hook was the last thing that might have needed data - * there. - */ - MemoryContextDeleteChildren(PortalGetHeapMemory(portal)); } } @@ -1089,6 +1130,14 @@ void AtSubCleanup_Portals(SubTransactionId mySubid) if (portal->createSubid != mySubid) continue; + /* + * Do not touch active portals --- this can only happen in the case of + * a multi-transaction command. + */ + if (portal->status == PORTAL_ACTIVE) { + continue; + } + /* * If a portal is still pinned, forcibly unpin it. PortalDrop will not * let us drop the portal otherwise. Whoever pinned the portal was @@ -1279,11 +1328,16 @@ HoldPinnedPortals(void) ereport(ERROR, (errcode(ERRCODE_INVALID_TRANSACTION_TERMINATION), errmsg("cannot perform transaction commands inside a cursor loop that is not read-only"))); } - + + /* skip portal got error */ + if (portal->status == PORTAL_FAILED) + continue; + /* Verify it's in a suitable state to be held */ if (portal->status != PORTAL_READY) - ereport(ERROR, (errmsg("pinned portal is not ready to be auto-held"))); - + ereport(ERROR, (errmsg("pinned portal(%s) is not ready to be auto-held, with status[%d]", + portal->name, portal->status))); + HoldPortal(portal); portal->autoHeld = true; } diff --git a/src/common/backend/utils/resowner/resowner.cpp b/src/common/backend/utils/resowner/resowner.cpp index 8371893ec..d6499d7f6 100755 --- a/src/common/backend/utils/resowner/resowner.cpp +++ b/src/common/backend/utils/resowner/resowner.cpp @@ -11,6 +11,7 @@ * * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -121,6 +122,9 @@ typedef struct ResourceOwnerData { int maxGlobalMemContexts; MemoryContext memCxt; + + /* whether this is a complete one. FALSE is setted while its transaction finishes. */ + bool valid; } ResourceOwnerData; THR_LOCAL ResourceOwner IsolatedResourceOwner = NULL; @@ -166,6 +170,7 @@ ResourceOwner ResourceOwnerCreate(ResourceOwner parent, const char* name, Memory owner = (ResourceOwner)MemoryContextAllocZero(memCxt, sizeof(ResourceOwnerData)); owner->name = name; owner->memCxt = memCxt; + owner->valid = true; if (parent) { owner->parent = parent; @@ -414,39 +419,42 @@ static void ResourceOwnerReleaseInternal( t_thrd.utils_cxt.CurrentResourceOwner = save; } -static void ResourceOwnerFreeOwner(ResourceOwner owner) +static void ResourceOwnerFreeOwner(ResourceOwner owner, bool whole) { - if (owner->buffers) - pfree(owner->buffers); - if (owner->catrefs) - pfree(owner->catrefs); - if (owner->catlistrefs) - pfree(owner->catlistrefs); - if (owner->relrefs) - pfree(owner->relrefs); - if (owner->partrefs) - pfree(owner->partrefs); - if (owner->planrefs) - pfree(owner->planrefs); - if (owner->tupdescs) - pfree(owner->tupdescs); - if (owner->snapshots) - pfree(owner->snapshots); - if (owner->files) - pfree(owner->files); - if (owner->dataCacheSlots) - pfree(owner->dataCacheSlots); - if (owner->metaCacheSlots) - pfree(owner->metaCacheSlots); - if (owner->pThdMutexs) - pfree(owner->pThdMutexs); - if (owner->partmaprefs) - pfree(owner->partmaprefs); - if (owner->fakepartrefs) - pfree(owner->fakepartrefs); - if (owner->globalMemContexts) - pfree(owner->globalMemContexts); - pfree(owner); + if (owner->valid) { + if (owner->buffers) + pfree(owner->buffers); + if (owner->catrefs) + pfree(owner->catrefs); + if (owner->catlistrefs) + pfree(owner->catlistrefs); + if (owner->relrefs) + pfree(owner->relrefs); + if (owner->partrefs) + pfree(owner->partrefs); + if (owner->planrefs) + pfree(owner->planrefs); + if (owner->tupdescs) + pfree(owner->tupdescs); + if (owner->snapshots) + pfree(owner->snapshots); + if (owner->files) + pfree(owner->files); + if (owner->dataCacheSlots) + pfree(owner->dataCacheSlots); + if (owner->metaCacheSlots) + pfree(owner->metaCacheSlots); + if (owner->pThdMutexs) + pfree(owner->pThdMutexs); + if (owner->partmaprefs) + pfree(owner->partmaprefs); + if (owner->fakepartrefs) + pfree(owner->fakepartrefs); + if (owner->globalMemContexts) + pfree(owner->globalMemContexts); + } + if (whole) + pfree(owner); } /* @@ -498,7 +506,7 @@ void ResourceOwnerDelete(ResourceOwner owner) } /* And free the object. */ - ResourceOwnerFreeOwner(owner); + ResourceOwnerFreeOwner(owner, true); } /* @@ -724,7 +732,7 @@ void ResourceOwnerRememberDataCacheSlot(ResourceOwner owner, CacheSlotId_t sloti */ void ResourceOwnerRememberMetaCacheSlot(ResourceOwner owner, CacheSlotId_t slotid) { - if (owner != NULL) { + if (owner != NULL && owner->valid) { Assert(owner->nMetaCacheSlots < owner->maxMetaCacheSlots); owner->metaCacheSlots[owner->nMetaCacheSlots] = slotid; owner->nMetaCacheSlots++; @@ -739,7 +747,7 @@ void ResourceOwnerRememberMetaCacheSlot(ResourceOwner owner, CacheSlotId_t sloti */ void ResourceOwnerForgetDataCacheSlot(ResourceOwner owner, CacheSlotId_t slotid) { - if (owner != NULL) { + if (owner != NULL && owner->valid) { CacheSlotId_t* dataCacheSlots = owner->dataCacheSlots; int nb1 = owner->nDataCacheSlots - 1; int i; @@ -770,7 +778,7 @@ void ResourceOwnerForgetDataCacheSlot(ResourceOwner owner, CacheSlotId_t slotid) */ void ResourceOwnerForgetMetaCacheSlot(ResourceOwner owner, CacheSlotId_t slotid) { - if (owner != NULL) { + if (owner != NULL && owner->valid) { CacheSlotId_t* metaCacheSlots = owner->metaCacheSlots; int nb1 = owner->nMetaCacheSlots - 1; int i; @@ -804,7 +812,7 @@ void ResourceOwnerForgetMetaCacheSlot(ResourceOwner owner, CacheSlotId_t slotid) */ void ResourceOwnerForgetBuffer(ResourceOwner owner, Buffer buffer) { - if (owner != NULL) { + if (owner != NULL && owner->valid) { Buffer* buffers = owner->buffers; int nb1 = owner->nbuffers - 1; int i; @@ -876,6 +884,9 @@ void ResourceOwnerForgetCatCacheRef(ResourceOwner owner, HeapTuple tuple) int nc1 = owner->ncatrefs - 1; int i; + if (!owner->valid) + return; + for (i = nc1; i >= 0; i--) { if (catrefs[i] == tuple) { while (i < nc1) { @@ -937,6 +948,9 @@ void ResourceOwnerForgetCatCacheListRef(ResourceOwner owner, CatCList* list) int nc1 = owner->ncatlistrefs - 1; int i; + if (!owner->valid) + return; + for (i = nc1; i >= 0; i--) { if (catlistrefs[i] == list) { while (i < nc1) { @@ -998,6 +1012,9 @@ void ResourceOwnerForgetRelationRef(ResourceOwner owner, Relation rel) int nr1 = owner->nrelrefs - 1; int i; + if (!owner->valid) + return; + for (i = nr1; i >= 0; i--) { if (relrefs[i] == rel) { while (i < nr1) { @@ -1077,6 +1094,9 @@ void ResourceOwnerForgetPartitionRef(ResourceOwner owner, Partition part) int nr1 = owner->npartrefs - 1; int i; + if (!owner->valid) + return; + for (i = nr1; i >= 0; i--) { if (partrefs[i] == part) { while (i < nr1) { @@ -1101,7 +1121,10 @@ void ResourceOwnerRememberFakerelRef(ResourceOwner owner, Relation fakerel) } void ResourceOwnerForgetFakerelRef(ResourceOwner owner, Relation fakerel) -{ +{ + if (!owner->valid) + return; + if (fakerel->node.next != NULL && fakerel->node.prev != NULL) { dlist_delete(&(fakerel->node)); DListNodeInit(&(fakerel->node)); @@ -1148,6 +1171,9 @@ void ResourceOwnerForgetFakepartRef(ResourceOwner owner, Partition fakepart) int nr1 = owner->nfakepartrefs - 1; int i; + if (!owner->valid) + return; + for (i = nr1; i >= 0; i--) { if (fakepartrefs[i] == fakepart) { while (i < nr1) { @@ -1232,6 +1258,10 @@ void ResourceOwnerForgetPlanCacheRef(ResourceOwner owner, CachedPlan* plan) int np1 = owner->nplanrefs - 1; int i; + if (!owner->valid) { + return; + } + for (i = np1; i >= 0; i--) { if (planrefs[i] == plan) { while (i < np1) { @@ -1301,6 +1331,9 @@ void ResourceOwnerForgetTupleDesc(ResourceOwner owner, TupleDesc tupdesc) int nt1 = owner->ntupdescs - 1; int i; + if (!owner->valid) + return; + for (i = nt1; i >= 0; i--) { if (tupdescs[i] == tupdesc) { while (i < nt1) { @@ -1367,12 +1400,15 @@ void ResourceOwnerRememberSnapshot(ResourceOwner owner, Snapshot snapshot) /* * Forget that a snapshot reference is owned by a ResourceOwner */ -void ResourceOwnerForgetSnapshot(ResourceOwner owner, Snapshot snapshot) +bool ResourceOwnerForgetSnapshot(ResourceOwner owner, Snapshot snapshot, bool ereport) { Snapshot* snapshots = owner->snapshots; int ns1 = owner->nsnapshots - 1; int i; + if (!owner->valid) + return false; + for (i = ns1; i >= 0; i--) { if (snapshots[i] == snapshot) { while (i < ns1) { @@ -1380,12 +1416,25 @@ void ResourceOwnerForgetSnapshot(ResourceOwner owner, Snapshot snapshot) i++; } owner->nsnapshots = ns1; - return; + return true; } } - ereport(ERROR, - (errcode(ERRCODE_WARNING_PRIVILEGE_NOT_GRANTED), - errmsg("snapshot is not owned by resource owner %s", owner->name))); + + bool allValid = true; + for (ResourceOwner child = owner->firstchild; child != NULL; child = child->nextchild) { + allValid = (allValid && child->valid); + if (ResourceOwnerForgetSnapshot(child, snapshot, false)) { + return true; + } + } + + if (ereport && allValid) { + ereport(ERROR, + (errcode(ERRCODE_WARNING_PRIVILEGE_NOT_GRANTED), + errmsg("snapshot is not owned by resource owner %s", owner->name))); + } + + return false; } /* @@ -1395,7 +1444,7 @@ void ResourceOwnerForgetSnapshot(ResourceOwner owner, Snapshot snapshot) void ResourceOwnerDecrementNsnapshots(ResourceOwner owner, void *queryDesc) { QueryDesc *queryDesc_temp = (QueryDesc *)queryDesc; - while(owner->nsnapshots > 0) { + while(owner->valid && owner->nsnapshots > 0) { if(queryDesc_temp) { // check if owner's snapshot is same as queryDesc's snapshot, need to set queryDesc // snapshot to null, because this function will clean up those snapshots. @@ -1425,10 +1474,10 @@ void ResourceOwnerDecrementNsnapshots(ResourceOwner owner, void *queryDesc) */ void ResourceOwnerDecrementNPlanRefs(ResourceOwner owner, bool useResOwner) { - if(!owner) { + if(!owner || !owner->valid) { return; } - + while(owner->nplanrefs > 0) { ReleaseCachedPlan(owner->planrefs[owner->nplanrefs - 1], useResOwner); } @@ -1488,6 +1537,9 @@ void ResourceOwnerForgetFile(ResourceOwner owner, File file) int ns1 = owner->nfiles - 1; int i; + if (!owner->valid) + return; + for (i = ns1; i >= 0; i--) { if (files[i] == file) { while (i < ns1) { @@ -1555,6 +1607,9 @@ void ResourceOwnerForgetPthreadMutex(ResourceOwner owner, pthread_mutex_t* pMute int ns1 = owner->nPthreadMutex - 1; int i; + if (!owner->valid) + return; + for (i = ns1; i >= 0; i--) { if (mutexs[i] == pMutex) { while (i < ns1) { @@ -1592,7 +1647,7 @@ void ResourceOwnerReleasePthreadMutex() ResourceOwner owner = t_thrd.utils_cxt.TopTransactionResourceOwner; ResourceOwner child; - if (owner) { + if (owner && owner->valid) { for (child = owner->firstchild; child != NULL; child = child->nextchild) { // Ditto for pthread mutex // @@ -1651,6 +1706,9 @@ void ResourceOwnerForgetPartitionMapRef(ResourceOwner owner, PartitionMap* partm int nr1 = owner->npartmaprefs - 1; int i; + if (!owner->valid) + return; + for (i = nr1; i >= 0; i--) { if (partmaprefs[i] == partmap) { while (i < nr1) { @@ -1678,6 +1736,9 @@ void ResourceOwnerForgetGMemContext(ResourceOwner owner, MemoryContext memcontex MemoryContext* gMemContexts = owner->globalMemContexts; int num = owner->nglobalMemContext - 1; + if (!owner->valid) + return; + for (int i = num; i >= 0; i--) { if (memcontext == gMemContexts[i]) { int j = i; @@ -1714,3 +1775,29 @@ void PrintGMemContextLeakWarning(MemoryContext memcontext) char *name = memcontext->name; ereport(WARNING, (errmsg("global memory context: %s leak", name))); } + +/* + * Mark this ResourceOwner and its children as incomplete ones. + */ +void ResourceOwnerMarkInvalid(ResourceOwner owner) +{ + if (owner->valid) { + for (ResourceOwner child = owner->firstchild; child != NULL; child = child->nextchild) { + ResourceOwnerMarkInvalid(child); + } + + ResourceOwnerFreeOwner(owner, false); + owner->valid = false; + } +} + +/* + * whether this ResourceOwner is a complete one. + * + * NOTE: it doesn't take child ResourceOwner into consideration. + */ +bool ResourceOwnerIsValid(ResourceOwner owner) +{ + return owner->valid; +} + diff --git a/src/common/backend/utils/sort/rowstore.cpp b/src/common/backend/utils/sort/rowstore.cpp index a1ca7328a..fa9daddf7 100644 --- a/src/common/backend/utils/sort/rowstore.cpp +++ b/src/common/backend/utils/sort/rowstore.cpp @@ -1,5 +1,6 @@ /* * Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors * * openGauss is licensed under Mulan PSL v2. * You can use this software according to the terms and conditions of the Mulan PSL v2. @@ -37,7 +38,7 @@ typedef enum RESIDENCE { RES_UNKNOWN = 0, RES_MEM, RES_DISK } RESIDENCE; static Bank* bank_open(size_t max_size); /* write a data row to bank */ -static RESIDENCE bank_write(Bank* bank, RowStoreCell cell); +static RESIDENCE bank_write(RowStoreManager rs, Bank* bank, RowStoreCell cell); /* read a data row from bank */ static bool bank_read(Bank* bank, RowStoreCell data); @@ -126,11 +127,12 @@ static bool should_write_to_memory(Bank* bank, RowStoreCell cell); * change within a query? * * @param[IN] context: memory context the row store will be working on + * @param[IN] resowner: resource owner the row store will attach with * @param[IN] max_size: the max size of data can hold in memory * if more data is coming, they will be written to disk * @return RowStore: which hold all the status of row store */ -RowStoreManager RowStoreAlloc(MemoryContext context, size_t max_size) +RowStoreManager RowStoreAlloc(MemoryContext context, size_t max_size, ResourceOwner resowner) { AutoContextSwitch acs(context); @@ -139,6 +141,7 @@ RowStoreManager RowStoreAlloc(MemoryContext context, size_t max_size) /* the rs is palloc0, so only need to fill the needed value */ rs->context = context; + rs->resowner = (resowner != NULL) ? resowner : t_thrd.utils_cxt.TopTransactionResourceOwner; rs->cn_bank_num = u_sess->pgxc_cxt.NumCoords; rs->dn_bank_num = u_sess->pgxc_cxt.NumDataNodes; @@ -314,7 +317,7 @@ void RowStoreInsert(RowStoreManager rs, RemoteDataRow data) RowStoreCell cell = make_one_cell(data); - RESIDENCE res = bank_write(bank, cell); + RESIDENCE res = bank_write(rs, bank, cell); if (res == RES_DISK) { /* the cell will be freed if write to disk */ free_one_cell(cell); @@ -560,7 +563,7 @@ static bool should_write_to_memory(Bank* bank, RowStoreCell cell) * @param[IN] cell: the cell to write to the bank * @return void */ -static RESIDENCE bank_write(Bank* bank, RowStoreCell cell) +static RESIDENCE bank_write(RowStoreManager rs, Bank* bank, RowStoreCell cell) { if (should_write_to_memory(bank, cell)) { /* can hold in memory */ @@ -586,11 +589,11 @@ static RESIDENCE bank_write(Bank* bank, RowStoreCell cell) * important: wrap the resource owner change in PG_TRY to * restore to CurrentResourceOwner upon error */ - t_thrd.utils_cxt.CurrentResourceOwner = t_thrd.utils_cxt.TopTransactionResourceOwner; + t_thrd.utils_cxt.CurrentResourceOwner = rs->resowner; /* - * attach temp file in TopTransactionResourceOwner - * so it will out live the current portal + * register temp file into RowStore itself's ResourceOwner so that it will + * be unregisted at right place when its transaction finishs. */ bank->file = BufFileCreateTemp(false); diff --git a/src/common/backend/utils/sort/tuplesort.cpp b/src/common/backend/utils/sort/tuplesort.cpp index e30dd7e92..860cc1e9b 100644 --- a/src/common/backend/utils/sort/tuplesort.cpp +++ b/src/common/backend/utils/sort/tuplesort.cpp @@ -118,6 +118,7 @@ #include "commands/tablespace.h" #include "executor/executor.h" #include "executor/exec/execStream.h" +#include "executor/node/nodeCtescan.h" #include "miscadmin.h" #include "pg_trace.h" #ifdef PGXC @@ -609,7 +610,8 @@ static void dumptuples(Tuplesortstate* state, bool alltuples); static void make_bounded_heap(Tuplesortstate* state); static void sort_bounded_heap(Tuplesortstate* state); static void tuplesort_heap_insert(Tuplesortstate* state, SortTuple* tuple, int tupleindex); -static void tuplesort_heap_siftup(Tuplesortstate* state); +static void tuplesort_heap_replace_top(Tuplesortstate *state, SortTuple *tuple); +static void tuplesort_heap_delete_top(Tuplesortstate* state); static unsigned int getlen(Tuplesortstate* state, int tapenum, bool eofOK); static void markrunend(Tuplesortstate* state, int tapenum); static int comparetup_heap(const SortTuple* a, const SortTuple* b, Tuplesortstate* state); @@ -1070,6 +1072,31 @@ Tuplesortstate* tuplesort_begin_datum( return state; } +void tuplesort_set_siblings(Tuplesortstate* state, const int numKeys, const List *internalEntryList) +{ + /* Not Start with case */ + if (internalEntryList == NULL) { + return; + } + + /* Not siblings array sort key */ + if (numKeys != 1) { + return; + } + + ereport(DEBUG2, + (errmodule(MOD_EXECUTOR), + errmsg("Need to switch SibglingsKeyCmp function for start with order siblings by."))); + + /* + * Here we only fill customized comparator for our siblings key type + */ + state->sortKeys->abbrev_full_comparator = SibglingsKeyCmp; + state->sortKeys->comparator = SibglingsKeyCmpFast; + + return; +} + /* * tuplesort_set_bound * @@ -1618,8 +1645,8 @@ static void puttuple_common(Tuplesortstate* state, SortTuple* tuple) } else { /* discard top of heap, sift up, insert new tuple */ free_sort_tuple(state, &state->memtuples[0]); - tuplesort_heap_siftup(state); - tuplesort_heap_insert(state, tuple, 0); + tuple->tupindex = 0; /* not used */ + tuplesort_heap_replace_top(state, tuple); } break; @@ -1929,7 +1956,6 @@ static bool tuplesort_gettuple_common(Tuplesortstate* state, bool forward, SortT state->availMem += tuplength; state->mergeavailmem[srcTape] += tuplength; } - tuplesort_heap_siftup(state); if ((tupIndex = state->mergenext[srcTape]) == 0) { /* * out of preloaded data on this tape, try to read more @@ -1942,15 +1968,22 @@ static bool tuplesort_gettuple_common(Tuplesortstate* state, bool forward, SortT /* * if still no data, we've reached end of run on this tape */ - if ((tupIndex = state->mergenext[srcTape]) == 0) + if ((tupIndex = state->mergenext[srcTape]) == 0) { + /* Remove the top node from the heap */ + tuplesort_heap_delete_top(state); return true; + } } - /* pull next preread tuple from list, insert in heap */ + /* + * pull next preread tuple from list, and replace the returned + * tuple at top of the heap with it. + */ newtup = &state->memtuples[tupIndex]; state->mergenext[srcTape] = newtup->tupindex; if (state->mergenext[srcTape] == 0) state->mergelast[srcTape] = 0; - tuplesort_heap_insert(state, newtup, srcTape); + newtup->tupindex = srcTape; + tuplesort_heap_replace_top(state, newtup); /* put the now-unused memtuples entry on the freelist */ newtup->tupindex = state->mergefreelist; state->mergefreelist = tupIndex; @@ -2506,23 +2539,27 @@ static void mergeonerun(Tuplesortstate* state) /* writetup adjusted total free space, now fix per-tape space */ spaceFreed = state->availMem - priorAvail; state->mergeavailmem[srcTape] += spaceFreed; - /* compact the heap */ - tuplesort_heap_siftup(state); if ((tupIndex = state->mergenext[srcTape]) == 0) { /* out of preloaded data on this tape, try to read more */ mergepreread(state); /* if still no data, we've reached end of run on this tape */ if ((tupIndex = state->mergenext[srcTape]) == 0) { + /* remove the written-out tuple from the heap */ + tuplesort_heap_delete_top(state); continue; } } - /* pull next preread tuple from list, insert in heap */ + /* + * pull next preread tuple from list, and replace the written-out + * tuple in the heap with it. + */ tup = &state->memtuples[tupIndex]; state->mergenext[srcTape] = tup->tupindex; if (state->mergenext[srcTape] == 0) { state->mergelast[srcTape] = 0; } - tuplesort_heap_insert(state, tup, srcTape); + tup->tupindex = srcTape; + tuplesort_heap_replace_top(state, tup); /* put the now-unused memtuples entry on the freelist */ tup->tupindex = state->mergefreelist; state->mergefreelist = tupIndex; @@ -3028,21 +3065,22 @@ static void make_bounded_heap(Tuplesortstate* state) state->memtupcount = 0; /* make the heap empty */ for (i = 0; i < tupcount; i++) { - if (state->memtupcount >= state->bound && COMPARETUP(state, &state->memtuples[i], &state->memtuples[0]) <= 0) { - /* New tuple would just get thrown out, so skip it */ - free_sort_tuple(state, &state->memtuples[i]); - CHECK_FOR_INTERRUPTS(); - } else { + if (state->memtupcount < state->bound) { /* Insert next tuple into heap */ /* Must copy source tuple to avoid possible overwrite */ - SortTuple stup = state->memtuples[i]; - + SortTuple stup = state->memtuples[i]; tuplesort_heap_insert(state, &stup, 0); - - /* If heap too full, discard largest entry */ - if (state->memtupcount > state->bound) { - free_sort_tuple(state, &state->memtuples[0]); - tuplesort_heap_siftup(state); + } else { + /* + * The heap is full. Replace the largest entry with the new + * tuple, or just discard it, if it's larger than anything already + * in the heap. + */ + if (COMPARETUP(state, &state->memtuples[i], &state->memtuples[0]) <= 0) { + free_sort_tuple(state, &state->memtuples[i]); + CHECK_FOR_INTERRUPTS(); + } else { + tuplesort_heap_replace_top(state, &state->memtuples[i]); } } } @@ -3064,15 +3102,15 @@ static void sort_bounded_heap(Tuplesortstate* state) Assert(SERIAL(state)); /* - * We can unheapify in place because each sift-up will remove the largest - * entry, which we can promptly store in the newly freed slot at the end. - * Once we're down to a single-entry heap, we're done. + * We can unheapify in place because each delete-top call will remove the + * largest entry, which we can promptly store in the newly freed slot at + * the end. Once we're down to a single-entry heap, we're done. */ while (state->memtupcount > 1) { SortTuple stup = state->memtuples[0]; /* this sifts-up the next-largest entry and decreases memtupcount */ - tuplesort_heap_siftup(state); + tuplesort_heap_delete_top(state); state->memtuples[state->memtupcount] = stup; } state->memtupcount = tupcount; @@ -3132,6 +3170,50 @@ static void tuplesort_heap_insert(Tuplesortstate* state, SortTuple* tuple, int t memtuples[j] = *tuple; } +/* + * Replace the tuple at state->memtuples[0] with a new tuple. Sift up to + * maintain the heap invariant. + * + * This corresponds to Knuth's "sift-up" algorithm (Algorithm 5.2.3H, + * Heapsort, steps H3-H8). + */ +static void tuplesort_heap_replace_top(Tuplesortstate *state, SortTuple *tuple) +{ + SortTuple *memtuples = state->memtuples; + unsigned int i, + n; + + Assert(state->memtupcount >= 1); + + CHECK_FOR_INTERRUPTS(); + + /* + * state->memtupcount is "int", but we use "unsigned int" for i, j, n. + * This prevents overflow in the "2 * i + 1" calculation, since at the top + * of the loop we must have i < n <= INT_MAX <= UINT_MAX/2. + */ + n = state->memtupcount; + i = 0; /* i is where the "hole" is */ + for (;;) + { + unsigned int j = 2 * i + 1; + + if (j >= n) { + break; + } + if (j + 1 < n && + COMPARETUP(state, &memtuples[j], &memtuples[j + 1]) > 0) { + j++; + } + if (COMPARETUP(state, tuple, &memtuples[j]) <= 0) { + break; + } + memtuples[i] = memtuples[j]; + i = j; + } + memtuples[i] = *tuple; +} + static void tuplesort_sort_memtuples(Tuplesortstate *state) { if (state->memtupcount > 1) { @@ -3143,42 +3225,27 @@ static void tuplesort_sort_memtuples(Tuplesortstate *state) } } - -/* - * The tuple at state->memtuples[0] has been removed from the heap. - * Decrement memtupcount, and sift up to maintain the heap invariant. - */ -static void tuplesort_heap_siftup(Tuplesortstate* state) + /* + * Remove the tuple at state->memtuples[0] from the heap. Decrement + * memtupcount, and sift up to maintain the heap invariant. + * + * The caller has already free'd the tuple the top node points to, + * if necessary. + */ +static void tuplesort_heap_delete_top(Tuplesortstate *state) { - SortTuple* memtuples = state->memtuples; - SortTuple* tuple = NULL; - int i, n; + SortTuple *memtuples = state->memtuples; + SortTuple *tuple; if (--state->memtupcount <= 0) { return; } - - CHECK_FOR_INTERRUPTS(); - - n = state->memtupcount; - tuple = &memtuples[n]; /* tuple that must be reinserted */ - i = 0; /* i is where the "hole" is */ - for (;;) { - int j = 2 * i + 1; - - if (j >= n) { - break; - } - if (j + 1 < n && COMPARETUP(state, &memtuples[j], &memtuples[j + 1]) > 0) { - j++; - } - if (COMPARETUP(state, tuple, &memtuples[j]) <= 0) { - break; - } - memtuples[i] = memtuples[j]; - i = j; - } - memtuples[i] = *tuple; + /* + * Remove the last tuple in the heap, and re-insert it, by replacing the + * current top node with it. + */ + tuple = &memtuples[state->memtupcount]; + tuplesort_heap_replace_top(state, tuple); } /* @@ -4658,4 +4725,4 @@ void tuplesort_workerfinish(Sharedsort *shared) shared->workersFinished++; SpinLockRelease(&shared->mutex); } -} \ No newline at end of file +} diff --git a/src/common/backend/utils/time/snapmgr.cpp b/src/common/backend/utils/time/snapmgr.cpp index cf40de198..77ae806a5 100644 --- a/src/common/backend/utils/time/snapmgr.cpp +++ b/src/common/backend/utils/time/snapmgr.cpp @@ -33,6 +33,7 @@ * * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * IDENTIFICATION * src/backend/utils/time/snapmgr.c @@ -101,6 +102,9 @@ THR_LOCAL SnapshotData SnapshotNowData = {SNAPSHOT_NOW}; THR_LOCAL SnapshotData SnapshotSelfData = {SNAPSHOT_SELF}; THR_LOCAL SnapshotData SnapshotAnyData = {SNAPSHOT_ANY}; THR_LOCAL SnapshotData SnapshotToastData = {SNAPSHOT_TOAST}; +#ifdef ENABLE_MULTIPLE_NODES +THR_LOCAL SnapshotData SnapshotNowNoSyncData = {SNAPSHOT_NOW_NO_SYNC}; +#endif /* local functions */ static Snapshot CopySnapshot(Snapshot snapshot); @@ -923,14 +927,14 @@ void UnregisterSnapshotFromOwner(Snapshot snapshot, ResourceOwner owner) if (snapshot == NULL) return; - Assert(snapshot->regd_count > 0); - Assert(u_sess->utils_cxt.RegisteredSnapshots > 0); - - ResourceOwnerForgetSnapshot(owner, snapshot); - u_sess->utils_cxt.RegisteredSnapshots--; - if (--snapshot->regd_count == 0 && snapshot->active_count == 0) { - FreeSnapshot(snapshot); - SnapshotResetXmin(); + if (ResourceOwnerForgetSnapshot(owner, snapshot, true)) { + Assert(u_sess->utils_cxt.RegisteredSnapshots > 0); + Assert(snapshot->regd_count > 0); + u_sess->utils_cxt.RegisteredSnapshots--; + if (--snapshot->regd_count == 0 && snapshot->active_count == 0) { + FreeSnapshot(snapshot); + SnapshotResetXmin(); + } } } diff --git a/src/common/interfaces/ecpg/preproc/pgc.l b/src/common/interfaces/ecpg/preproc/pgc.l index a12e16f0d..ea7cbc158 100644 --- a/src/common/interfaces/ecpg/preproc/pgc.l +++ b/src/common/interfaces/ecpg/preproc/pgc.l @@ -400,7 +400,7 @@ cppline {space}*#([^i][A-Za-z]*|{if}|{ifdef}|{ifndef}|{import})(.*\\{space})*. {op_chars} { ECHO; } \*+ { ECHO; } -<> { mmerror(PARSE_ERROR, ET_FATAL, "unterminated /* comment"); } +<> { mmerror(PARSE_ERROR, ET_FATAL, "unterminated /* comment"); break;} {xbstart} { token_start = yytext; @@ -422,7 +422,7 @@ cppline {space}*#([^i][A-Za-z]*|{if}|{ifdef}|{ifndef}|{import})(.*\\{space})*. {xbinside} { addlit(yytext, yyleng); } {quotecontinue} | {quotecontinue} { /* ignore */ } -<> { mmerror(PARSE_ERROR, ET_FATAL, "unterminated bit string literal"); } +<> { mmerror(PARSE_ERROR, ET_FATAL, "unterminated bit string literal"); break;} {xhstart} { token_start = yytext; @@ -438,7 +438,7 @@ cppline {space}*#([^i][A-Za-z]*|{if}|{ifdef}|{ifndef}|{import})(.*\\{space})*. return XCONST; } -<> { mmerror(PARSE_ERROR, ET_FATAL, "unterminated hexadecimal string literal"); } +<> { mmerror(PARSE_ERROR, ET_FATAL, "unterminated hexadecimal string literal"); break;} {xnstart} { /* National character. * Transfer it as-is to the backend. @@ -516,7 +516,7 @@ cppline {space}*#([^i][A-Za-z]*|{if}|{ifdef}|{ifndef}|{import})(.*\\{space})*. /* This is only needed for \ just before EOF */ addlitchar(yytext[0]); } -<> { mmerror(PARSE_ERROR, ET_FATAL, "unterminated quoted string"); } +<> { mmerror(PARSE_ERROR, ET_FATAL, "unterminated quoted string"); break;} {dolqfailed} { /* throw back all but the initial "$" */ yyless(1); @@ -556,7 +556,7 @@ cppline {space}*#([^i][A-Za-z]*|{if}|{ifdef}|{ifndef}|{import})(.*\\{space})*. /* single quote or dollar sign */ addlitchar(yytext[0]); } -<> { base_yyerror("unterminated dollar-quoted string"); } +<> { base_yyerror("unterminated dollar-quoted string"); break;} {xdstart} { state_before = YYSTATE; BEGIN(xd); @@ -592,7 +592,7 @@ cppline {space}*#([^i][A-Za-z]*|{if}|{ifdef}|{ifndef}|{import})(.*\\{space})*. } {xddouble} { addlitchar('"'); } {xdinside} { addlit(yytext, yyleng); } -<> { mmerror(PARSE_ERROR, ET_FATAL, "unterminated quoted identifier"); } +<> { mmerror(PARSE_ERROR, ET_FATAL, "unterminated quoted identifier"); break;} {xdstart} { state_before = YYSTATE; BEGIN(xdc); diff --git a/src/common/interfaces/libpq/cl_state.cpp b/src/common/interfaces/libpq/cl_state.cpp index 8bcd7b660..7b12a3649 100644 --- a/src/common/interfaces/libpq/cl_state.cpp +++ b/src/common/interfaces/libpq/cl_state.cpp @@ -169,4 +169,19 @@ const int *PGClientLogic::get_rec_origial_ids(const Oid typid, const char *pname } else { return rec->get_original_ids(); } -} \ No newline at end of file +} + +/** + * gets the length of original oids for a type + * @param typid the type oid as returned from the database + * @param pname the type name as returned from the database + * @return the number of original oids + */ +size_t PGClientLogic::get_rec_origial_ids_length(const Oid typid, const char *pname) const +{ + const ICachedRec *rec = get_cl_rec(typid, pname); + if (rec == NULL) { + return 0; + } + return rec->get_num_processed_args(); +} diff --git a/src/common/interfaces/libpq/client_logic_cache/cache_loader.cpp b/src/common/interfaces/libpq/client_logic_cache/cache_loader.cpp index 2a22727d7..38d228ddf 100644 --- a/src/common/interfaces/libpq/client_logic_cache/cache_loader.cpp +++ b/src/common/interfaces/libpq/client_logic_cache/cache_loader.cpp @@ -427,10 +427,11 @@ bool CacheLoader::fill_global_settings_map(PGconn *conn) m_global_settings_list.clear(); const char *global_settings_query = "SELECT gs_client_global_keys.Oid, gs_client_global_keys.global_key_name, pg_namespace.nspname, " - "gs_client_global_keys_args.function_name, gs_client_global_keys_args.key, gs_client_global_keys_args.value " + "gs_client_global_keys_args.function_name, gs_client_global_keys_args.key, gs_client_global_keys_args.value, " + "EXTRACT(EPOCH from gs_client_global_keys.create_date) as change_epoch " "FROM gs_client_global_keys JOIN pg_namespace ON (pg_namespace.Oid = gs_client_global_keys.key_namespace) " "JOIN gs_client_global_keys_args ON (gs_client_global_keys.Oid = gs_client_global_keys_args.global_key_id) " - "ORDER BY gs_client_global_keys.Oid, gs_client_global_keys_args.function_name, gs_client_global_keys_args.key"; + "ORDER BY gs_client_global_keys.Oid, gs_client_global_keys_args.function_name, gs_client_global_keys_args.key;"; DataFetcher data_fetcher = conn->client_logic->m_data_fetcher_manager->get_data_fetcher(); if (!data_fetcher.load(global_settings_query)) { fprintf(stderr, "failed to get load global settings map\n"); @@ -442,10 +443,12 @@ bool CacheLoader::fill_global_settings_map(PGconn *conn) int function_name_num = data_fetcher.get_column_index("function_name"); int arg_key_num = data_fetcher.get_column_index("key"); int arg_value_num = data_fetcher.get_column_index("value"); + int change_epoch_num = data_fetcher.get_column_index("change_epoch"); CachedGlobalSetting *cached_global_setting(NULL); Oid object_oid_prev(0); while (data_fetcher.next()) { + update_last_change_epoch(data_fetcher[change_epoch_num]); Oid object_oid = (Oid)atoi(data_fetcher[global_setting_oid_num]); /* OBJECT NAME */ @@ -526,12 +529,13 @@ bool CacheLoader::fill_column_settings_info_cache(PGconn *conn) "gs_column_keys.column_key_name, " "gs_column_keys.global_key_id, " "gs_column_keys_args.function_name, gs_column_keys_args.key, " - "gs_column_keys_args.value " + "gs_column_keys_args.value, " + "EXTRACT(EPOCH from gs_column_keys.create_date) as change_epoch " "FROM gs_column_keys JOIN pg_namespace ON (pg_namespace.Oid = " "gs_column_keys.key_namespace) JOIN gs_column_keys_args " "ON (gs_column_keys.oid=gs_column_keys_args.column_key_id) " "ORDER BY gs_column_keys.Oid, gs_column_keys_args.function_name, " - "gs_column_keys_args.key"; + "gs_column_keys_args.key;"; DataFetcher data_fetcher = conn->client_logic->m_data_fetcher_manager->get_data_fetcher(); if (!data_fetcher.load(query)) { printfPQExpBuffer(&conn->errorMessage, libpq_gettext( @@ -546,11 +550,13 @@ bool CacheLoader::fill_column_settings_info_cache(PGconn *conn) int arg_key_num = data_fetcher.get_column_index("key"); int arg_value_num = data_fetcher.get_column_index("value"); int nspname_num = data_fetcher.get_column_index("nspname"); + int change_epoch_num = data_fetcher.get_column_index("change_epoch"); CachedColumnSetting *column_setting(NULL); Oid object_oid_prev(0); m_column_settings_list.clear(); while (data_fetcher.next()) { + update_last_change_epoch(data_fetcher[change_epoch_num]); /* OBJECT ID */ Oid object_oid = atoi(data_fetcher[column_setting_oid_num]); @@ -642,17 +648,18 @@ bool CacheLoader::fill_cached_columns(PGconn *conn) } const char *query = "SELECT gs_encrypted_columns.oid AS my_oid, gs_encrypted_columns.rel_id AS table_oid, " "current_database() AS table_catalog, pg_class_new.nspname AS " - "table_schema, pg_class_new.relname AS table_name, gs_encrypted_columns.column_name, a.attnum - " + "table_schema, pg_class_new.relname AS table_name, gs_encrypted_columns.column_name, a.attnum - " "( select count (*) from pg_attribute where attrelid = gs_encrypted_columns.rel_id and attisdropped and " "attnum < a.attnum ) AS ordinal_position, a.atttypid, gs_encrypted_columns.data_type_original_oid, " - "gs_encrypted_columns.data_type_original_mod, gs_column_keys.column_key_distributed_id AS " - "column_setting_oid FROM gs_encrypted_columns RIGHT JOIN gs_column_keys ON ( " - "gs_encrypted_columns.column_key_id = gs_column_keys.oid ) JOIN (SELECT " - "pg_class.oid, pg_class.relname, nc.nspname FROM " + "gs_encrypted_columns.data_type_original_mod, gs_column_keys.column_key_distributed_id AS column_setting_oid, " + "EXTRACT(EPOCH from gs_encrypted_columns.create_date) as change_epoch " + "FROM gs_encrypted_columns RIGHT JOIN gs_column_keys ON ( " + "gs_encrypted_columns.column_key_id = gs_column_keys.oid ) JOIN (SELECT " + "pg_class.oid, pg_class.relname, nc.nspname FROM " "pg_class JOIN pg_namespace nc ON (pg_class.relnamespace = nc.oid )) " - " pg_class_new ON ( gs_encrypted_columns.rel_id = pg_class_new.oid) LEFT JOIN " + "pg_class_new ON ( gs_encrypted_columns.rel_id = pg_class_new.oid) LEFT JOIN " "pg_attribute a " - "ON (pg_class_new.oid = a.attrelid and gs_encrypted_columns.column_name = attname) " + "ON (pg_class_new.oid = a.attrelid and gs_encrypted_columns.column_name = attname) " "order by table_oid, ordinal_position;"; DataFetcher data_fetcher = conn->client_logic->m_data_fetcher_manager->get_data_fetcher(); if (!data_fetcher.load(query)) { @@ -671,8 +678,10 @@ bool CacheLoader::fill_cached_columns(PGconn *conn) int orig_type_mod_num = data_fetcher.get_column_index("data_type_original_mod"); int ordinal_position_num = data_fetcher.get_column_index("ordinal_position"); int atttypid_num = data_fetcher.get_column_index("atttypid"); + int change_epoch_num = data_fetcher.get_column_index("change_epoch"); m_columns_list.clear(); while (data_fetcher.next()) { + update_last_change_epoch(data_fetcher[change_epoch_num]); Oid my_oid = (Oid)atoll(data_fetcher[my_oid_num]); Oid table_oid = (Oid)atoll(data_fetcher[table_oid_num]); const char *database_name = data_fetcher[table_catalog_num]; @@ -712,98 +721,164 @@ bool CacheLoader::fill_cached_columns(PGconn *conn) const bool CacheLoader::fill_cached_types(PGconn *conn) { - PGresult *res = NULL; const char *query = "select pg_type.Oid, current_database(), nspname ,typname from pg_type join pg_namespace on " "(typnamespace=pg_namespace.Oid) where typrelid in (Select rel_id from gs_encrypted_columns);"; - conn->client_logic->disable_once = true; - res = PQexecParams(conn, query, 0, NULL, NULL, NULL, NULL, 1); - if (res == NULL) { + DataFetcher data_fetcher = conn->client_logic->m_data_fetcher_manager->get_data_fetcher(); + if (!data_fetcher.load(query)) { + fprintf(stderr, "fill_cached_types - query to initialize failed or did not return data\n"); return false; } - if (res->resultStatus != PGRES_TUPLES_OK) { - PQclear(res); - printfPQExpBuffer(&conn->errorMessage, - libpq_gettext("fill_cached_types - query to initialize did not return data\n")); - return false; - } - int typid_num = PQfnumber(res, "oid"); - int db_num = PQfnumber(res, "current_database"); - int schema_num = PQfnumber(res, "nspname"); - int typname_num = PQfnumber(res, "typname"); + int typid_num = data_fetcher.get_column_index("oid"); + int db_num = data_fetcher.get_column_index("current_database"); + int schema_num = data_fetcher.get_column_index("nspname"); + int typname_num = data_fetcher.get_column_index("typname"); m_cached_types_list.clear(); - - for (int n = 0; n < PQntuples(res); n++) { - CachedType *curr_type = - new CachedType(ntohl(*(Oid *)PQgetvalue(res, n, typid_num)), PQgetvalue(res, n, typname_num), - PQgetvalue(res, n, schema_num), PQgetvalue(res, n, db_num), conn->client_logic->m_cached_column_manager); + while (data_fetcher.next()) { + Oid oid_value = (Oid)atoi(data_fetcher[typid_num]); + CachedType *curr_type = new (std::nothrow) CachedType(oid_value, data_fetcher[typname_num], + data_fetcher[schema_num], data_fetcher[db_num], conn->client_logic->m_cached_column_manager); + if (curr_type == NULL) { + fprintf(stderr, "failed to new CachedType object\n"); + return false; + } m_cached_types_list.add(curr_type); } - PQclear(res); return true; } + bool CacheLoader::fill_cached_procs(PGconn *conn) { - PGresult *res = NULL; const char *query = "select func_id, prorettype_orig, proargcachedcol, proallargtypes_orig,proname," "pronargs,proargtypes,proallargtypes,proargnames,nspname,current_database() as dbname " "from gs_encrypted_proc gs_proc join pg_proc on gs_proc.func_id = pg_proc.oid " " join pg_namespace ON (pg_namespace.oid = pronamespace);"; - conn->client_logic->disable_once = true; - res = PQexecParams(conn, query, 0, NULL, NULL, NULL, NULL, 1); - if (res == NULL) { + DataFetcher data_fetcher = conn->client_logic->m_data_fetcher_manager->get_data_fetcher(); + if (!data_fetcher.load(query)) { + fprintf(stderr, "fill_cached_procs - query to initialize failed or did not return data\n"); return false; } - if (res->resultStatus != PGRES_TUPLES_OK) { - PQclear(res); - printfPQExpBuffer(&conn->errorMessage, - libpq_gettext("fill_cached_procs - query to initialize did not return data\n")); - return false; - } - // getting the index of each column in the response - int func_oid_num = PQfnumber(res, "func_id"); - int origin_ret_type_num = PQfnumber(res, "prorettype_orig"); - int cached_col_num = PQfnumber(res, "proargcachedcol"); - int alltypes_orig_num = PQfnumber(res, "proallargtypes_orig"); - int proname_num = PQfnumber(res, "proname"); - int pronargs_num = PQfnumber(res, "pronargs"); - int proargtypes_num = PQfnumber(res, "proargtypes"); - int proallargtypes_num = PQfnumber(res, "proallargtypes"); - int proargnames_num = PQfnumber(res, "proargnames"); - int dbname_num = PQfnumber(res, "dbname"); - int schema_num = PQfnumber(res, "nspname"); + int func_oid_num = data_fetcher.get_column_index("func_id"); + int origin_ret_type_num = data_fetcher.get_column_index("prorettype_orig"); + int cached_col_num = data_fetcher.get_column_index("proargcachedcol"); + int alltypes_orig_num = data_fetcher.get_column_index("proallargtypes_orig"); + int proname_num = data_fetcher.get_column_index("proname"); + int pronargs_num = data_fetcher.get_column_index("pronargs"); + int proargtypes_num = data_fetcher.get_column_index("proargtypes"); + int proallargtypes_num = data_fetcher.get_column_index("proallargtypes"); + int proargnames_num = data_fetcher.get_column_index("proargnames"); + int dbname_num = data_fetcher.get_column_index("dbname"); + int schema_num = data_fetcher.get_column_index("nspname"); m_proc_list.clear(); - for (int n = 0; n < PQntuples(res); n++) { - CachedProc *curr_proc = new CachedProc(); - curr_proc->m_func_id = ntohl(*(Oid *)PQgetvalue(res, n, func_oid_num)); - curr_proc->m_proname = strdup(PQgetvalue(res, n, proname_num)); - curr_proc->m_pronargs = ntohs(*(short *)PQgetvalue(res, n, pronargs_num)); - curr_proc->m_prorettype_orig = ntohl(*(Oid *)PQgetvalue(res, n, origin_ret_type_num)); - curr_proc->m_dbname = strdup(PQgetvalue(res, n, dbname_num)); - curr_proc->m_schema_name = strdup(PQgetvalue(res, n, schema_num)); - if (PQgetlength(res, n, cached_col_num)) - parseBinaryArray(PQgetvalue(res, n, cached_col_num), (void **)&curr_proc->m_proargcachedcol); - if (PQgetlength(res, n, proargtypes_num)) - parseBinaryArray(PQgetvalue(res, n, proargtypes_num), (void **)&curr_proc->m_proargtypes); - if (PQgetlength(res, n, alltypes_orig_num)) + while (data_fetcher.next()) { + CachedProc *curr_proc = new (std::nothrow) CachedProc(); + if (curr_proc == NULL) { + fprintf(stderr, "failed to new CachedProc object\n"); + return false; + } + /* 10: base is decimal */ + curr_proc->m_func_id = strtoul(data_fetcher[func_oid_num], NULL, 10); + curr_proc->m_proname = strdup(data_fetcher[proname_num]); + curr_proc->m_pronargs = atoi(data_fetcher[pronargs_num]); + curr_proc->m_prorettype_orig = strtoul(data_fetcher[origin_ret_type_num], NULL, 10); + curr_proc->m_dbname = strdup(data_fetcher[dbname_num]); + curr_proc->m_schema_name = strdup(data_fetcher[schema_num]); + + if (data_fetcher[cached_col_num] != NULL && strlen(data_fetcher[cached_col_num]) > 0) { + parse_oid_array(data_fetcher[cached_col_num], &curr_proc->m_proargcachedcol); + } + if (data_fetcher[proargtypes_num] != NULL && strlen(data_fetcher[proargtypes_num]) > 0) { + parse_oid_array(data_fetcher[proargtypes_num], &curr_proc->m_proargtypes); + } + if (data_fetcher[alltypes_orig_num] != NULL && strlen(data_fetcher[alltypes_orig_num]) > 0) { curr_proc->m_nallargtypes_orig = - parseBinaryArray(PQgetvalue(res, n, alltypes_orig_num), (void **)&curr_proc->m_proallargtypes_orig); - if (PQgetlength(res, n, proallargtypes_num)) - parseBinaryArray(PQgetvalue(res, n, proallargtypes_num), (void **)&curr_proc->m_proallargtypes); - if (PQgetlength(res, n, proargnames_num)) - curr_proc->m_nallargtypes = - parseBinaryArray(PQgetvalue(res, n, proargnames_num), (void **)&curr_proc->m_proargnames); + parse_oid_array(data_fetcher[alltypes_orig_num], &curr_proc->m_proallargtypes_orig); + } + if (data_fetcher[proallargtypes_num] != NULL && strlen(data_fetcher[proallargtypes_num]) > 0) { + parse_oid_array(data_fetcher[proallargtypes_num], &curr_proc->m_proallargtypes); + } + if (data_fetcher[proargnames_num] != NULL && strlen(data_fetcher[proargnames_num]) > 0) { + curr_proc->m_nallargtypes = parse_char_array(data_fetcher[proargnames_num], &curr_proc->m_proargnames); + } curr_proc->set_original_ids(); /* add to maps */ m_proc_list.add(curr_proc); } - PQclear(res); return true; } +/** + * Reloads the client logic cache only if the local timestamp + * is earlier than the maximum timestmp on the server + * @param conn database connection + */ +void CacheLoader::reload_cache_if_needed(PGconn *conn) +{ + double server_max_time_stamp = get_server_max_time_stamp(conn); + if (get_local_max_time_stamp() < server_max_time_stamp) { + conn->client_logic->cacheRefreshType = CacheRefreshType::CACHE_ALL; + fetch_catalog_tables(conn); + } +} + +/** + * @return The timestmp of the latest configuration fetched + */ +double CacheLoader::get_local_max_time_stamp() const +{ + return m_change_epoch; +} + +/** + * @param conn connection to the database + * @return the latest timestamp of client logic configuration on teh server + */ +double CacheLoader::get_server_max_time_stamp(const PGconn* const conn) const +{ + const char *query = "SELECT extract (epoch from create_date) FROM (" + "SELECT max(M.create_date) as create_date " + "FROM (" + "SELECT max(create_date) as create_date FROM gs_encrypted_columns " + "UNION " + "SELECT max(create_date) as create_date FROM gs_column_keys " + "UNION " + "SELECT max(create_date) as create_date FROM gs_client_global_keys " + "UNION " + "SELECT max(last_change) as create_date FROM gs_encrypted_proc " + ") AS M);"; + double result = -1; // initial value, means no global timestamp or error + DataFetcher data_fetcher = conn->client_logic->m_data_fetcher_manager->get_data_fetcher(); + if (!data_fetcher.load(query)) { + fprintf(stderr, "failed to server_max_time_stamp\n"); + return result; + } + while (data_fetcher.next()) { + const char *data = data_fetcher[0]; + if (data != NULL && strlen (data) > 0) { + result = atof(data); + } + } + return result; +} + +/** + * Maintain m_change_epoch member with the latest client logic configuration on the server + * @param time_since_epoc configuration timestamp + */ +void CacheLoader::update_last_change_epoch(const char *time_since_epoc) +{ + if (time_since_epoc == NULL || strlen(time_since_epoc) == 0) { + return; + } + double value = atof(time_since_epoc); + if (value > m_change_epoch) { + m_change_epoch = value; + } +} + bool CacheLoader::fetch_variables(PGconn *conn, CacheRefreshType cache_refresh_type) { /* load cache for "search path" data */ diff --git a/src/common/interfaces/libpq/client_logic_cache/cache_loader.h b/src/common/interfaces/libpq/client_logic_cache/cache_loader.h index ee9efb5fc..842c47e0e 100644 --- a/src/common/interfaces/libpq/client_logic_cache/cache_loader.h +++ b/src/common/interfaces/libpq/client_logic_cache/cache_loader.h @@ -139,6 +139,7 @@ public: m_search_path_list.set_user_schema(user_name); } void clear(); + void reload_cache_if_needed(PGconn *conn); private: bool clear_global_settings(); @@ -167,6 +168,11 @@ private: DatabaseType m_compat_type; /* server SQL compatibility */ NameData m_current_database_name; + double m_change_epoch = 0; /* time stamp of the latest client logic configuration fetched from the server */ + void update_last_change_epoch(const char *time_since_epoc); + double get_local_max_time_stamp() const; + double get_server_max_time_stamp(const PGconn* const conn) const; + private: static const int m_FQDN_MAX_SIZE = NAMEDATALEN * 4; }; diff --git a/src/common/interfaces/libpq/client_logic_cache/cached_column_manager.cpp b/src/common/interfaces/libpq/client_logic_cache/cached_column_manager.cpp index 34148d10e..a52761dc8 100644 --- a/src/common/interfaces/libpq/client_logic_cache/cached_column_manager.cpp +++ b/src/common/interfaces/libpq/client_logic_cache/cached_column_manager.cpp @@ -537,6 +537,16 @@ bool CachedColumnManager::load_cache(PGconn *conn) return m_cache_loader->fetch_catalog_tables(conn); } +/** + * Reloads the client logic cache only if the local timestamp + * is earlier than the maximum timestmp on the server + * @param conn database connection + */ +void CachedColumnManager::reload_cache_if_needed(PGconn *conn) +{ + m_cache_loader->reload_cache_if_needed(conn); +} + CachedProc* CachedColumnManager::get_cached_proc(const char* dbName, const char* schemaName, const char* functionName) const { diff --git a/src/common/interfaces/libpq/client_logic_cache/cached_column_manager.h b/src/common/interfaces/libpq/client_logic_cache/cached_column_manager.h index a4d31b28b..3478ea124 100644 --- a/src/common/interfaces/libpq/client_logic_cache/cached_column_manager.h +++ b/src/common/interfaces/libpq/client_logic_cache/cached_column_manager.h @@ -43,6 +43,7 @@ public: bool load_cache(PGconn *conn) override; void clear() override; + void reload_cache_if_needed(PGconn *conn) override; const GlobalHookExecutor** get_global_hook_executors(size_t& global_hook_executors_size) const override; const CachedGlobalSetting* get_global_setting_by_fqdn(const char* globalSettingFqdn) const override; size_t get_object_fqdn(const char* object_name, bool is_global_setting, char* object_fqdn) const override; diff --git a/src/common/interfaces/libpq/client_logic_cache/icached_column_manager.h b/src/common/interfaces/libpq/client_logic_cache/icached_column_manager.h index 867c33bfc..b246cfa66 100644 --- a/src/common/interfaces/libpq/client_logic_cache/icached_column_manager.h +++ b/src/common/interfaces/libpq/client_logic_cache/icached_column_manager.h @@ -50,6 +50,7 @@ public: virtual ~ICachedColumnManager() = default; virtual bool load_cache(PGconn *conn) = 0; virtual void clear() = 0; + virtual void reload_cache_if_needed(PGconn *conn) = 0; virtual const GlobalHookExecutor** get_global_hook_executors(size_t& global_hook_executors_size) const = 0; virtual const CachedGlobalSetting* get_global_setting_by_fqdn(const char* globalSettingFqdn) const = 0; virtual size_t get_object_fqdn(const char* object_name, bool is_global_setting, char* object_fqdn) const = 0; diff --git a/src/common/interfaces/libpq/client_logic_common/client_logic_utils.cpp b/src/common/interfaces/libpq/client_logic_common/client_logic_utils.cpp index 167390c45..a716225ca 100755 --- a/src/common/interfaces/libpq/client_logic_common/client_logic_utils.cpp +++ b/src/common/interfaces/libpq/client_logic_common/client_logic_utils.cpp @@ -127,111 +127,6 @@ bool concat_table_fqdn(const char *catalogname, const char *schemaname, const ch return true; } -static bool is_type_simple(Oid elem_type) -{ - switch (elem_type) { - case OIDOID: - case INT4OID: - case INT8OID: - case INT2OID: - case INT1OID: - return true; - default: - return false; - } - return false; /* passinate compiler */ -} - -/* - * Converts bynary array from qiuery into internal array - * @IN - input_array - * @OUT - output_array in type of int[] for fixed len types or char*[] for varailbe length - * For our needs the onlt Oid[] and char*[] are handled - */ -int parseBinaryArray(char* input_array, void** output_array) -{ - /* claculate binary size - one dimensinal array */ - char* pos = input_array; - int ndim = 0; - int n_elements = 0; - ArrayHead* ah = (ArrayHead*)pos; - bool is_simple_type = false; - /* fill outpu */ - ndim = ntohl(ah->ndim); - if (!ndim) { /* array is empty */ - return 0; - } - int dataoffset = ntohl(ah->dataoffset); - Oid elem_type = ntohl(ah->elemtype); // - uint32 elem_size = 0; - char* new_array = NULL; - - pos += sizeof(ArrayHead); - for (int i = 0; i < ndim; i++) { - n_elements += ntohl(((DimHeader*)pos)->numElements); - pos += sizeof(DimHeader); - } - if (!n_elements) { - return 0; - } - pos += dataoffset; - is_simple_type = is_type_simple(elem_type); - if (is_simple_type) { - elem_size = ntohl(*(uint32*)pos); - new_array = (char*)malloc(elem_size * n_elements); - } else { - new_array = (char*)calloc(n_elements, sizeof(char*)); - } - if (new_array == NULL) { - return 0; - } - /* - * earch array element consists of 2 parts element_size : element_val - * element_size is 4 bytes long - */ - for (int i = 0; i < n_elements; i++) { - if (is_simple_type) { - pos += sizeof(elem_size); - switch (elem_size) { - case (sizeof(uint64)): - *((uint64*)new_array + i) = NTOHLL(*(uint64*)pos); - break; - case (sizeof(uint32)): - *((uint32*)new_array + i) = ntohl(*(uint32*)pos); - break; - case (sizeof(uint16)): - *((uint16*)new_array + i) = ntohs(*(uint16*)pos); - break; - case 1: - *((char*)new_array + i) = *(char*)pos; - default: - fprintf(stderr, "array of simple type %u is not handled\n", elem_type); - Assert(false); - break; - } - } else { - elem_size = ntohl(*(uint32*)pos); - *((char**)new_array + i) = (char*)calloc(elem_size + 1, sizeof(char)); - if (!*((char**)new_array + i)) { - if (new_array != NULL) { - for (int j = 0; j < i; j++) { - libpq_free(*((char**)new_array + j)); - } - libpq_free(new_array); - } - fprintf(stderr, "error allocating memory for array\n"); - Assert(false); - return 0; - } - pos += sizeof(elem_size); - check_memcpy_s(memcpy_s(*((char**)new_array + i), elem_size + 1, pos, elem_size)); - } - pos += elem_size; - } - *output_array = new_array; - return n_elements; -} - void free_obj_list(ObjName *obj_list) { ObjName *cur_obj = obj_list; @@ -278,4 +173,140 @@ ObjName *obj_list_append(ObjName *obj_list, const char *new_obj_name) last_obj->next = new_obj; return obj_list; -} \ No newline at end of file +} +/** + * helper function to parse a string array of Oids and types. + * It searches for possible separator with are ',' or ' ' space and count its occurrences + * @param input input array + * @return the numbers of seperators in the input string + */ +size_t count_sep_in_str(const char *input) +{ + size_t result = 0; + if (input == NULL || strlen(input) == 0) { + return result; + } + for (size_t index = 0; index < strlen(input); ++index) { + if (input[index] == ',' || input[index] == ' ') { + ++result; + } + } + return result; +} +/** + * Parses a char array coming from the database server when loading the cache + * It is in the form of {elem,elem,elem ...} or "elem elem elem elem" + * Note that this method allocates the memory for the items_out parameters and it is up to the caller to free it + * @param[in] input the input array string + * @param[out] items_out vector of items allocated by this method + * @return the numbers of items in items_out + */ +size_t parse_char_array(const char *input, char ***items_out) +{ + *items_out = NULL; + char **items = NULL; + size_t output_length = 0; + + if (input == NULL || + strlen(input) == 0) { /* there are 2 characters for opening and closing brakets {item1,item2....itemn} */ + return output_length; + } + int start_offset = 0; + if (input[0] == '{') { + start_offset = 1; + /* if input length < 3, it has no item */ + if (strlen(input) < 3) { + return output_length; + } + } + size_t count_of_column = count_sep_in_str(input); + output_length = count_of_column + 1; + size_t elem_index = 0; + items = (char **)malloc(output_length * sizeof(char *)); + if (items == NULL) { + fprintf(stderr, "Error: out of memory\n"); + output_length = 0; + return output_length; + } + *items_out = items; + check_memset_s(memset_s(items, output_length * sizeof(char *), 0, output_length * sizeof(char *))); + size_t begin_index = start_offset; + size_t last_index = 0; + /* Ignoring the brackets if exists {item1,item2....itemn} */ + for (size_t index = start_offset; index < strlen(input); ++index) { + last_index = index; + if (input[index] == ',' || input[index] == ' ' || input[index] == '}') { + if (elem_index < output_length) { + size_t item_len = index - begin_index; + items[elem_index] = (char *)malloc((item_len + 1) * sizeof(char)); + if (items[elem_index] == NULL) { + fprintf(stderr, "Error: out of memory\n"); + for (size_t i = 0; i < elem_index; i++) { + libpq_free(items[i]); + } + libpq_free(items); + output_length = 0; + return output_length; + } + check_strncpy_s(strncpy_s(items[elem_index], item_len + 1, input + begin_index, item_len)); + items[elem_index][index - begin_index] = 0; + } else { + fprintf(stderr, "Error: index out of bound on parse_char_array %s\n", input); + } + begin_index = index + 1; + ++elem_index; + } + } + if (start_offset == 0) { /* Handle the last item */ + if (elem_index < output_length) { + size_t item_len = last_index - begin_index + 1; + items[elem_index] = (char *)malloc((item_len + 1) * sizeof(char)); + if (items[elem_index] == NULL) { + fprintf(stderr, "Error: out of memory\n"); + for (size_t i = 0; i < elem_index; i++) { + libpq_free(items[i]); + } + libpq_free(items); + output_length = 0; + return output_length; + } + check_strncpy_s(strncpy_s(items[elem_index], item_len + 1, input + begin_index, item_len)); + items[elem_index][last_index - begin_index + 1] = 0; + } + } + return output_length; +} +/** + * Parses a char array coming from the database server when loading the cache + * It is in the form of {oid1,oid2,...oidn) or "oid1 oid2 ... oidn" + * Note that this method allocates the memory for the items_out parameters and it is up to the caller to free it + * @param[in] input the input array string + * @param[out] items_out vector of items allocated by this method + * @return the numbers of items in items_out* + */ +size_t parse_oid_array(const char *input, Oid **items_out) +{ + *items_out = NULL; + char **items_char = NULL; + Oid *items = NULL; + size_t output_length = parse_char_array(input, &items_char); + if (output_length > 0) { + items = (Oid *)malloc(output_length * sizeof(Oid)); + if (items == NULL) { + fprintf(stderr, "Error: out of memory\n"); + for (size_t index = 0; index < output_length; ++index) { + free(items_char[index]); + } + free(items_char); + output_length = 0; + return output_length; + } + *items_out = items; + for (size_t index = 0; index < output_length; ++index) { + items[index] = (Oid)atoi(items_char[index]); + free(items_char[index]); + } + } + free(items_char); + return output_length; +} diff --git a/src/common/interfaces/libpq/client_logic_common/client_logic_utils.h b/src/common/interfaces/libpq/client_logic_common/client_logic_utils.h index 6ea9ca8f8..edb0a1df3 100755 --- a/src/common/interfaces/libpq/client_logic_common/client_logic_utils.h +++ b/src/common/interfaces/libpq/client_logic_common/client_logic_utils.h @@ -62,7 +62,8 @@ template inline bool is_const(T const & x) return true; } char *del_blanks(char *str, const int str_len); -int parseBinaryArray(char* input_array, void** output_array); +size_t parse_char_array(const char *input, char ***items_out); +size_t parse_oid_array(const char *input, Oid **items_out); extern void free_obj_list(ObjName *obj_list); extern ObjName *obj_list_append(ObjName *obj_list, const char *new_obj_name); diff --git a/src/common/interfaces/libpq/client_logic_common/pg_client_logic_params.cpp b/src/common/interfaces/libpq/client_logic_common/pg_client_logic_params.cpp index 654dde1ac..6a6d007ca 100644 --- a/src/common/interfaces/libpq/client_logic_common/pg_client_logic_params.cpp +++ b/src/common/interfaces/libpq/client_logic_common/pg_client_logic_params.cpp @@ -43,7 +43,7 @@ void PGClientLogicParams::init(const PGClientLogicParams &other) new_query = NULL; new_query_size = other.new_query_size; if (other.new_query != NULL && other.new_query_size > 0) { - new_query = (char *)malloc(new_query_size + 1); + new_query = (char *)calloc(new_query_size + 1, sizeof(char)); if (new_query == NULL) { printf("out of memory\n"); exit(EXIT_FAILURE); @@ -52,7 +52,7 @@ void PGClientLogicParams::init(const PGClientLogicParams &other) new_query[new_query_size] = '\0'; } if (other.nParams && other.copy_sizes) { - copy_sizes = (size_t *)malloc(other.nParams * sizeof(size_t)); + copy_sizes = (size_t *)calloc(other.nParams, sizeof(size_t)); if (copy_sizes == NULL) { printf("out of memory\n"); exit(EXIT_FAILURE); @@ -61,14 +61,14 @@ void PGClientLogicParams::init(const PGClientLogicParams &other) memcpy_s(copy_sizes, nParams * sizeof(size_t), other.copy_sizes, other.nParams * sizeof(size_t))); } if (other.new_param_values) { - new_param_values = (unsigned char **)malloc(other.nParams * sizeof(unsigned char *)); + new_param_values = (unsigned char **)calloc(other.nParams, sizeof(unsigned char *)); if (new_param_values == NULL) { printf("out of memory\n"); exit(EXIT_FAILURE); } for (size_t i = 0; i < other.nParams; ++i) { if (copy_sizes != NULL && copy_sizes[i]) { - new_param_values[i] = (unsigned char *)malloc(other.copy_sizes[i] * sizeof(unsigned char)); + new_param_values[i] = (unsigned char *)calloc(other.copy_sizes[i], sizeof(unsigned char)); if (new_param_values[i] == NULL) { printf("out of memory\n"); exit(EXIT_FAILURE); @@ -81,7 +81,7 @@ void PGClientLogicParams::init(const PGClientLogicParams &other) } } if (other.adjusted_paramTypes) { - adjusted_paramTypes = (Oid *)malloc(other.nParams * sizeof(Oid)); + adjusted_paramTypes = (Oid *)calloc(other.nParams, sizeof(Oid)); if (adjusted_paramTypes == NULL) { printf("out of memory\n"); exit(EXIT_FAILURE); @@ -90,7 +90,7 @@ void PGClientLogicParams::init(const PGClientLogicParams &other) other.nParams * sizeof(Oid))); } if (other.adjusted_param_lengths) { - adjusted_param_lengths = (int *)malloc(other.nParams * sizeof(int)); + adjusted_param_lengths = (int *)calloc(other.nParams, sizeof(int)); if (adjusted_param_lengths == NULL) { printf("out of memory\n"); exit(EXIT_FAILURE); @@ -103,9 +103,7 @@ void PGClientLogicParams::init(const PGClientLogicParams &other) PGClientLogicParams::~PGClientLogicParams() { for (size_t i = 0; i < nParams; i++) { - if (copy_sizes[i]) { - libpq_free(new_param_values[i]); - } + libpq_free(new_param_values[i]); } libpq_free(new_param_values); libpq_free(copy_sizes); diff --git a/src/common/interfaces/libpq/client_logic_common/statement_data.cpp b/src/common/interfaces/libpq/client_logic_common/statement_data.cpp index 018d60c15..0351118ee 100644 --- a/src/common/interfaces/libpq/client_logic_common/statement_data.cpp +++ b/src/common/interfaces/libpq/client_logic_common/statement_data.cpp @@ -62,13 +62,18 @@ void StatementData::replace_raw_values() conn->client_logic->rawValuesForReplace->sort_by_location(); /* - * we are iterating over the array from top to bottom - * the location of the value to replace is always correct in the loop because we start from the end + * we are iterating over the array from top to bottom + * the location of the value to replace is always correct in the loop because we start from the end */ int i = (int)(size - 1); for (; i >= 0; --i) { RawValue *raw_value = conn->client_logic->rawValuesForReplace->at(i); - if (!raw_value) { + /* + * if the raw value is null, there is no need to replace it. + * if is param, there is no need to replace it in the query, as the query is already saved in the server + * the param is being saved in the list only for replacing value in post query in case of error + */ + if (!raw_value || raw_value->m_is_param || !raw_value->m_processed_data) { continue; } if (raw_value->m_location > params.new_query_size) { @@ -130,6 +135,7 @@ void StatementData::replace_raw_values() params.adjusted_query = params.new_query; params.adjusted_query_size = params.new_query_size; + conn->client_logic->raw_values_for_post_query.merge_from(conn->client_logic->rawValuesForReplace); } void StatementData::copy_params() @@ -137,7 +143,7 @@ void StatementData::copy_params() stmtName = stmtName ? stmtName : ""; if (paramTypes) { libpq_free(params.adjusted_paramTypes); - params.adjusted_paramTypes = (Oid *)malloc(nParams * sizeof(Oid)); + params.adjusted_paramTypes = (Oid *)calloc(nParams, sizeof(Oid)); if (params.adjusted_paramTypes == NULL) { return; } @@ -145,7 +151,7 @@ void StatementData::copy_params() } if (paramValues) { libpq_free(params.adjusted_param_values); - params.adjusted_param_values = (const char **)malloc(nParams * sizeof(const char *)); + params.adjusted_param_values = (const char **)calloc(nParams, sizeof(const char *)); if (params.adjusted_param_values == NULL) { return; } @@ -155,7 +161,7 @@ void StatementData::copy_params() } if (paramLengths) { libpq_free(params.adjusted_param_lengths); - params.adjusted_param_lengths = (int *)malloc(nParams * sizeof(int)); + params.adjusted_param_lengths = (int *)calloc(nParams, sizeof(int)); if (params.adjusted_param_lengths == NULL) { return; } diff --git a/src/common/interfaces/libpq/client_logic_fmt/gs_copy.cpp b/src/common/interfaces/libpq/client_logic_fmt/gs_copy.cpp index 2f24dc11e..46be5b00b 100644 --- a/src/common/interfaces/libpq/client_logic_fmt/gs_copy.cpp +++ b/src/common/interfaces/libpq/client_logic_fmt/gs_copy.cpp @@ -1658,8 +1658,9 @@ static bool deprocess_and_replace(PGconn *conn, PreparedStatement *entry, const unsigned char *plaintext = NULL; size_t plaintext_len; + ProcessStatus process_status = ONLY_VALUE; if (ValuesProcessor::deprocess_value(conn, (const unsigned char *)processed_bytea, processed_bytea_size, - entry->original_data_types_oids[entry->copy_state->fieldno], 0, &plaintext, plaintext_len, false) == + entry->original_data_types_oids[entry->copy_state->fieldno], 0, &plaintext, plaintext_len, process_status) == DEC_DATA_SUCCEED) { size_t escaped_size = 0; char *escaped = escape_and_quote(conn, entry, plaintext, is_quoted, &escaped_size); diff --git a/src/common/interfaces/libpq/client_logic_hooks/cmk_entity_manager_hooks/cmkem_comm_http.cpp b/src/common/interfaces/libpq/client_logic_hooks/cmk_entity_manager_hooks/cmkem_comm_http.cpp index 1ea24be90..d157abc1c 100644 --- a/src/common/interfaces/libpq/client_logic_hooks/cmk_entity_manager_hooks/cmkem_comm_http.cpp +++ b/src/common/interfaces/libpq/client_logic_hooks/cmk_entity_manager_hooks/cmkem_comm_http.cpp @@ -22,6 +22,7 @@ * ------------------------------------------------------------------------- */ +#include "pg_config.h" #include "cmkem_comm_http.h" #include @@ -30,6 +31,10 @@ #include "curl/curl.h" #include "cjson/cJSON.h" +#ifdef ENABLE_UT +#define static +#endif + static size_t dump_http_response_msg_callback(void *tmp_cur_res_str, size_t chr_size, size_t cur_res_size, void *tmp_http_res_list) { diff --git a/src/common/interfaces/libpq/client_logic_hooks/cmk_entity_manager_hooks/reg_cmkem_manager_main.cpp b/src/common/interfaces/libpq/client_logic_hooks/cmk_entity_manager_hooks/reg_cmkem_manager_main.cpp index 65a1be212..204ae5c24 100644 --- a/src/common/interfaces/libpq/client_logic_hooks/cmk_entity_manager_hooks/reg_cmkem_manager_main.cpp +++ b/src/common/interfaces/libpq/client_logic_hooks/cmk_entity_manager_hooks/reg_cmkem_manager_main.cpp @@ -26,6 +26,8 @@ #include "reg_cmkem_manager_main.h" +#include + #include "cmkem_version_control.h" #include "register_gs_ktool.h" #include "register_huawei_kms.h" @@ -33,28 +35,45 @@ #include "register_gram_check.h" static bool has_reg_hookfunc = false; +static pthread_mutex_t reg_lock = {0}; CmkemErrCode reg_all_cmk_entity_manager() { + static bool has_init_lock = false; + + if (!has_init_lock) { + if (pthread_mutex_init(®_lock, NULL) != 0) { + cmkem_errmsg("failed to init the lock of cmk entity manager register."); + return CMKEM_REG_CMK_MANAGER_ERR; + } + + has_init_lock = true; + } + + if (pthread_mutex_lock(®_lock) != 0) { + return CMKEM_REG_CMK_MANAGER_ERR; + } + if (has_reg_hookfunc) { + pthread_mutex_unlock(®_lock); return CMKEM_SUCCEED; } #ifdef ENABLE_GS_KTOOL if (reg_cmke_manager_gs_ktool_main() < 0) { - return CMKEM_REG_CMK_MANAGER_ERR; + goto err_with_unlock; } #endif #ifdef ENABLE_HUAWEI_KMS if (reg_cmke_manager_huwei_kms_main() < 0) { - return CMKEM_REG_CMK_MANAGER_ERR; + goto err_with_unlock; } #endif #ifdef ENABLE_LOCAL_KMS if (reg_cmke_manager_local_kms_main() < 0) { - return CMKEM_REG_CMK_MANAGER_ERR; + goto err_with_unlock; } #endif @@ -63,9 +82,33 @@ CmkemErrCode reg_all_cmk_entity_manager() */ if (reg_grammar_check_main() < 0) { - return CMKEM_REG_CMK_MANAGER_ERR; + goto err_with_unlock; } has_reg_hookfunc = true; + pthread_mutex_unlock(®_lock); + return CMKEM_SUCCEED; + +err_with_unlock: + pthread_mutex_unlock(®_lock); + return CMKEM_REG_CMK_MANAGER_ERR; +} + +void exit_all_cmk_entity_manager() +{ + if (pthread_mutex_lock(®_lock) != 0) { + return; + } + + if (!has_reg_hookfunc) { + pthread_mutex_unlock(®_lock); + return; + } + +#ifdef ENABLE_GS_KTOOL + exit_cmke_manager_gs_ktool(); +#endif + + pthread_mutex_unlock(®_lock); } diff --git a/src/common/interfaces/libpq/client_logic_hooks/cmk_entity_manager_hooks/reg_cmkem_manager_main.h b/src/common/interfaces/libpq/client_logic_hooks/cmk_entity_manager_hooks/reg_cmkem_manager_main.h index e91ceeb6f..5ebf0e9a4 100644 --- a/src/common/interfaces/libpq/client_logic_hooks/cmk_entity_manager_hooks/reg_cmkem_manager_main.h +++ b/src/common/interfaces/libpq/client_logic_hooks/cmk_entity_manager_hooks/reg_cmkem_manager_main.h @@ -30,5 +30,6 @@ #include "cmkem_comm.h" extern CmkemErrCode reg_all_cmk_entity_manager(); +extern void exit_all_cmk_entity_manager(); #endif /* REGISTER_HOOK_FUNC_H */ diff --git a/src/common/interfaces/libpq/client_logic_hooks/cmk_entity_manager_hooks/register_gs_ktool.cpp b/src/common/interfaces/libpq/client_logic_hooks/cmk_entity_manager_hooks/register_gs_ktool.cpp index 5bd8fa6e0..23e7c153f 100644 --- a/src/common/interfaces/libpq/client_logic_hooks/cmk_entity_manager_hooks/register_gs_ktool.cpp +++ b/src/common/interfaces/libpq/client_logic_hooks/cmk_entity_manager_hooks/register_gs_ktool.cpp @@ -311,6 +311,10 @@ static ProcessPolicy create_cmk_obj_hookfunc(CmkIdentity *cmk_identity) return POLICY_CONTINUE; } + if (!init_gs_ktool()) { + return POLICY_ERROR; + } + if (cmk_identity->cmk_id_str == NULL) { cmkem_errmsg("failed to create client master key, failed to find arg: KEY_PATH."); return POLICY_ERROR; @@ -350,6 +354,10 @@ static ProcessPolicy encrypt_cek_plain_hookfunc(CmkemUStr *cek_plain, CmkIdentit return POLICY_CONTINUE; } + if (!init_gs_ktool()) { + return POLICY_ERROR; + } + get_cmk_id_from_key_path(cmk_identity->cmk_id_str, &cmk_id); ret = read_cmk_plain(cmk_id, &cmk_plain); @@ -378,6 +386,10 @@ static ProcessPolicy decrypt_cek_cipher_hookfunc(CmkemUStr *cek_cipher, CmkIdent return POLICY_CONTINUE; } + if (!init_gs_ktool()) { + return POLICY_ERROR; + } + get_cmk_id_from_key_path(cmk_identity->cmk_id_str, &cmk_id); ret = read_cmk_plain(cmk_id, &cmk_plain); @@ -413,4 +425,12 @@ int reg_cmke_manager_gs_ktool_main() return (reg_cmk_entity_manager(gs_ktool) == CMKEM_SUCCEED) ? 0 : -1; } +void exit_cmke_manager_gs_ktool() +{ + free_cmk_cache_list(cmk_cache_list); + cmk_cache_list = NULL; + + deinit_gs_ktool(); +} + #endif /* ENABLE_GS_KTOOL */ diff --git a/src/common/interfaces/libpq/client_logic_hooks/cmk_entity_manager_hooks/register_gs_ktool.h b/src/common/interfaces/libpq/client_logic_hooks/cmk_entity_manager_hooks/register_gs_ktool.h index ea38c59b8..fcdbda52f 100644 --- a/src/common/interfaces/libpq/client_logic_hooks/cmk_entity_manager_hooks/register_gs_ktool.h +++ b/src/common/interfaces/libpq/client_logic_hooks/cmk_entity_manager_hooks/register_gs_ktool.h @@ -52,5 +52,6 @@ extern bool get_cmk_from_cache(CmkCacheList *cmk_cache_list, unsigned int cmk_id extern void free_cmk_cache_list(CmkCacheList *cmk_cahce_list); extern int reg_cmke_manager_gs_ktool_main(); +extern void exit_cmke_manager_gs_ktool(); #endif /* REGISTER_GS_KTOOL_H */ diff --git a/src/common/interfaces/libpq/client_logic_hooks/encryption_hooks/aead_aes_hamc_enc_key.cpp b/src/common/interfaces/libpq/client_logic_hooks/encryption_hooks/aead_aes_hamc_enc_key.cpp index bcbf6ee8a..46e5c1c6f 100755 --- a/src/common/interfaces/libpq/client_logic_hooks/encryption_hooks/aead_aes_hamc_enc_key.cpp +++ b/src/common/interfaces/libpq/client_logic_hooks/encryption_hooks/aead_aes_hamc_enc_key.cpp @@ -48,7 +48,10 @@ const int RAND_COUNT = 100; /* Derives all the required keys from the given root key */ AeadAesHamcEncKey::AeadAesHamcEncKey(unsigned char *root_key, size_t root_key_size) { + errno_t rc = EOK; generate_keys(root_key, root_key_size); + rc = memset_s(root_key, root_key_size, 0, root_key_size); + securec_check_c(rc, "\0", "\0"); } AeadAesHamcEncKey::AeadAesHamcEncKey() @@ -119,8 +122,6 @@ bool AeadAesHamcEncKey::generate_keys(unsigned char *root_key, size_t root_key_l securec_check_c(rc, "\0", "\0"); return false; } - rc = memset_s(root_key, root_key_len, 0, root_key_len); - securec_check_c(rc, "\0", "\0"); return true; } diff --git a/src/common/interfaces/libpq/client_logic_hooks/encryption_hooks/encryption_column_hook_executor.cpp b/src/common/interfaces/libpq/client_logic_hooks/encryption_hooks/encryption_column_hook_executor.cpp index 1ea3a3452..6596c788b 100644 --- a/src/common/interfaces/libpq/client_logic_hooks/encryption_hooks/encryption_column_hook_executor.cpp +++ b/src/common/interfaces/libpq/client_logic_hooks/encryption_hooks/encryption_column_hook_executor.cpp @@ -87,10 +87,6 @@ int EncryptionColumnHookExecutor::process_data_impl(const ICachedColumn *cached_ printfPQExpBuffer(&conn->errorMessage, libpq_gettext("ERROR(CLIENT): failed to get key_value.\n")); return -1; } - size_t decrypted_key_size = 0; - unsigned char *cek_keys = NULL; - cek_keys = get_cek_keys(); - decrypted_key_size = get_cek_size(); ColumnEncryptionAlgorithm column_encryption_algorithm = get_column_encryption_algorithm(); if (column_encryption_algorithm == ColumnEncryptionAlgorithm::INVALID_ALGORITHM) { @@ -113,7 +109,8 @@ int EncryptionColumnHookExecutor::process_data_impl(const ICachedColumn *cached_ set_column_encryption_algorithm(column_encryption_algorithm); } - if (cek_keys == NULL || decrypted_key_size == 0) { + if (!is_cek_set) { + size_t decrypted_key_size = 0; unsigned char encrypted_key[MAX_CEK_LENGTH]; errno_t rc = memset_s(encrypted_key, MAX_CEK_LENGTH, 0, MAX_CEK_LENGTH); securec_check_c(rc, "\0", "\0"); @@ -158,10 +155,6 @@ DecryptDataRes EncryptionColumnHookExecutor::deprocess_data_impl(const unsigned return DECRYPT_CEK_ERR; } errno_t res; - size_t decrypted_key_size = 0; - unsigned char *cek_keys = NULL; - cek_keys = get_cek_keys(); - decrypted_key_size = get_cek_size(); ColumnEncryptionAlgorithm column_encryption_algorithm = get_column_encryption_algorithm(); if (column_encryption_algorithm == ColumnEncryptionAlgorithm::INVALID_ALGORITHM) { size_t algorithm_str_size(0); @@ -183,7 +176,8 @@ DecryptDataRes EncryptionColumnHookExecutor::deprocess_data_impl(const unsigned set_column_encryption_algorithm(column_encryption_algorithm); } - if (cek_keys == NULL || decrypted_key_size == 0) { + if (!is_cek_set) { + size_t decrypted_key_size = 0; unsigned char decrypted_key[MAX_CEK_LENGTH]; errno_t rc = memset_s(decrypted_key, MAX_CEK_LENGTH, 0, MAX_CEK_LENGTH); securec_check_c(rc, "\0", "\0"); @@ -318,9 +312,12 @@ static unsigned char *create_or_check_cek(PGconn* conn, unsigned char *cek_plain } } -void free_after_check(bool condition, unsigned char *ptr) +void free_after_check(bool condition, unsigned char *ptr, size_t ptr_size) { if (condition) { + errno_t res = EOK; + res = memset_s(ptr, MAX_CEK_LENGTH, 0, ptr_size); + securec_check_c(res, "\0", "\0"); free(ptr); ptr = NULL; } @@ -330,7 +327,7 @@ bool EncryptionColumnHookExecutor::pre_create(PGClientLogic &column_encryption, StringArgs &new_args) { bool has_user_set_cek = false; - + EncryptionGlobalHookExecutor *encryption_global_hook_executor = dynamic_cast(m_global_hook_executor); if (!encryption_global_hook_executor) { @@ -351,7 +348,8 @@ bool EncryptionColumnHookExecutor::pre_create(PGClientLogic &column_encryption, CmkIdentity cmk_identify = {cmk_store_str, cmk_path_str, cmk_algo_str, 0, column_encryption.client_cache_id}; ColumnEncryptionAlgorithm column_encryption_algorithm(ColumnEncryptionAlgorithm::INVALID_ALGORITHM); - const char *expected_value = NULL; + char *expected_value = NULL; + const char *expected_value_find = NULL; const char *algorithm_str = NULL; size_t expected_value_size(0); @@ -359,10 +357,10 @@ bool EncryptionColumnHookExecutor::pre_create(PGClientLogic &column_encryption, if (algorithm_str != NULL) { column_encryption_algorithm = get_cek_algorithm_from_string(algorithm_str); } - expected_value = args.find("encrypted_value"); - if (expected_value != NULL) { + expected_value_find = args.find("encrypted_value"); + if (expected_value_find != NULL) { has_user_set_cek = true; - expected_value_size = strlen(expected_value); + expected_value_size = strlen(expected_value_find); } if (column_encryption_algorithm == ColumnEncryptionAlgorithm::INVALID_ALGORITHM) { @@ -380,14 +378,14 @@ bool EncryptionColumnHookExecutor::pre_create(PGClientLogic &column_encryption, } /* genereate CEK if not provided (common case) */ - expected_value = (const char *)create_or_check_cek(conn, (unsigned char *)expected_value, expected_value_size); + expected_value = (char *)create_or_check_cek(conn, (unsigned char *)expected_value_find, expected_value_size); if (expected_value == NULL) { return false; } set_column_encryption_algorithm(column_encryption_algorithm); if (!set_cek_keys((unsigned char *)expected_value, expected_value_size)) { - free_after_check(!has_user_set_cek, (unsigned char *)expected_value); + free_after_check(!has_user_set_cek, (unsigned char *)expected_value, expected_value_size); return false; } /* encrypt CEK */ @@ -398,12 +396,12 @@ bool EncryptionColumnHookExecutor::pre_create(PGClientLogic &column_encryption, ret = reg_all_cmk_entity_manager(); if (ret != CMKEM_SUCCEED) { printfPQExpBuffer(&conn->errorMessage, "ERROR(CLIENT): %s\n", get_cmkem_errmsg(ret)); - free_after_check(!has_user_set_cek, (unsigned char *)expected_value); + free_after_check(!has_user_set_cek, (unsigned char *)expected_value, expected_value_size); return false; } ret = encrypt_cek_plain(&cek_plain, &cmk_identify, &cek_cipher); - free_after_check(!has_user_set_cek, (unsigned char *)expected_value); + free_after_check(!has_user_set_cek, (unsigned char *)expected_value, expected_value_size); if (ret != CMKEM_SUCCEED) { printfPQExpBuffer(&conn->errorMessage, "ERROR(CLIENT): %s\n", get_cmkem_errmsg(ret)); conn->client_logic->is_external_err = true; diff --git a/src/common/interfaces/libpq/client_logic_hooks/encryption_hooks/encryption_column_hook_executor.h b/src/common/interfaces/libpq/client_logic_hooks/encryption_hooks/encryption_column_hook_executor.h index 69752c71e..5adcd1745 100644 --- a/src/common/interfaces/libpq/client_logic_hooks/encryption_hooks/encryption_column_hook_executor.h +++ b/src/common/interfaces/libpq/client_logic_hooks/encryption_hooks/encryption_column_hook_executor.h @@ -53,13 +53,7 @@ public: add_allowed_value("encryption_type"); add_allowed_value("algorithm"); } - virtual ~EncryptionColumnHookExecutor() - { - if (m_cek_keys != NULL) { - free(m_cek_keys); - } - m_cek_keys = NULL; - } + virtual ~EncryptionColumnHookExecutor() {} int get_estimated_processed_data_size_impl(int data_size) const override; int process_data_impl(const ICachedColumn *cached_column, const unsigned char *data, int data_size, unsigned char *processed_data) override; @@ -75,51 +69,23 @@ public: private: void init() { - m_cek_keys = (unsigned char *)malloc(MAX_CEK_LENGTH); - errno_t securec_rc = EOK; - if (m_cek_keys == NULL) { - return; - } - securec_rc = memset_s(m_cek_keys, MAX_CEK_LENGTH, '\0', MAX_CEK_LENGTH); - securec_check_c(securec_rc, "\0", "\0"); - m_cek_size = 0; - - return; + is_cek_set = false; } bool deprocess_column_encryption_key(EncryptionGlobalHookExecutor *encryption_global_hook_executor, unsigned char *decryptedKey, size_t *decryptedKeySize, const char *encrypted_key_value, const size_t *encrypted_key_value_size) const; bool set_cek_keys(const unsigned char *cek_keys, size_t cek_size) { - if (cek_keys == NULL || cek_size == 0 || m_cek_keys == NULL) { + if (cek_keys == NULL || cek_size == 0 || cek_size > MAX_CEK_LENGTH) { return false; } - errno_t securec_rc = EOK; - Assert(cek_size <= MAX_CEK_LENGTH); - securec_rc = memcpy_s(m_cek_keys, MAX_CEK_LENGTH, cek_keys, cek_size); - securec_check_c(securec_rc, "\0", "\0"); - set_cek_size(cek_size); if (!aesCbcEncryptionKey.generate_keys((unsigned char *)cek_keys, cek_size)) { return false; } + is_cek_set = true; return true; } - unsigned char *get_cek_keys() const - { - return m_cek_keys; - } - - void set_cek_size(size_t cek_size) - { - m_cek_size = cek_size; - } - - size_t get_cek_size() const - { - return m_cek_size; - } - ColumnEncryptionAlgorithm get_column_encryption_algorithm() const { return m_column_encryption_algorithm; @@ -130,8 +96,7 @@ private: m_column_encryption_algorithm = column_encryption_algorithm; } - unsigned char *m_cek_keys; - size_t m_cek_size; + bool is_cek_set; ColumnEncryptionAlgorithm m_column_encryption_algorithm = ColumnEncryptionAlgorithm::INVALID_ALGORITHM; AeadAesHamcEncKey aesCbcEncryptionKey; /* contains iv, encryption and mac keys */ }; diff --git a/src/common/interfaces/libpq/client_logic_hooks/hooks_manager.cpp b/src/common/interfaces/libpq/client_logic_hooks/hooks_manager.cpp index 61b193124..d757faa17 100644 --- a/src/common/interfaces/libpq/client_logic_hooks/hooks_manager.cpp +++ b/src/common/interfaces/libpq/client_logic_hooks/hooks_manager.cpp @@ -92,10 +92,10 @@ bool HooksManager::GlobalSettings::deprocess_column_setting(const unsigned char if (!global_hook_executor) { return false; } - global_hook_executor->deprocess_column_setting(processed_data, processed_data_size, key_store, key_path, + bool ret = global_hook_executor->deprocess_column_setting(processed_data, processed_data_size, key_store, key_path, key_algo, data, data_size); delete_global_hook_executor(global_hook_executor); - return true; + return ret; } ColumnHookExecutorSptr HooksManager::ColumnSettings::create_column_hook_executor(const char *function_name, diff --git a/src/common/interfaces/libpq/client_logic_processor/raw_value.cpp b/src/common/interfaces/libpq/client_logic_processor/raw_value.cpp index 67bf7e31c..c94cfe649 100644 --- a/src/common/interfaces/libpq/client_logic_processor/raw_value.cpp +++ b/src/common/interfaces/libpq/client_logic_processor/raw_value.cpp @@ -46,7 +46,8 @@ RawValue::RawValue(PGconn *conn) m_processed_data(nullptr), m_processed_data_size(0), m_empty_repeat(false), - m_conn(conn) + m_conn(conn), + ref_count(0) {} RawValue::~RawValue() @@ -184,3 +185,14 @@ bool RawValue::process(const ICachedColumn *cached_column, char *err_msg) return true; } + +void RawValue::inc_ref_count() +{ + Assert(ref_count >= 0); + ref_count++; +} +void RawValue::dec_ref_count() +{ + Assert(ref_count > 0); + ref_count--; +} diff --git a/src/common/interfaces/libpq/client_logic_processor/raw_value.h b/src/common/interfaces/libpq/client_logic_processor/raw_value.h index c74d5e0a0..510aa2d8a 100644 --- a/src/common/interfaces/libpq/client_logic_processor/raw_value.h +++ b/src/common/interfaces/libpq/client_logic_processor/raw_value.h @@ -48,7 +48,15 @@ public: m_data_value = data_value; m_data_value_size = size; } + bool original_value_emtpy() { + return (!m_data_value || m_data_size == 0); + } + void inc_ref_count(); + void dec_ref_count(); + bool safe_to_delete() { + return ref_count == 0; + } public: bool m_is_param; @@ -75,5 +83,6 @@ public: private: void free_processed_data(); + int ref_count; }; #endif /* RAW_VALUE_H */ diff --git a/src/common/interfaces/libpq/client_logic_processor/raw_values_cont.cpp b/src/common/interfaces/libpq/client_logic_processor/raw_values_cont.cpp index 01e4125af..656d8e65a 100644 --- a/src/common/interfaces/libpq/client_logic_processor/raw_values_cont.cpp +++ b/src/common/interfaces/libpq/client_logic_processor/raw_values_cont.cpp @@ -339,7 +339,9 @@ bool RawValues::get_unprocessed_data(const RawValuesList *raw_values_list, const raw_value->m_processed_data_size <= 3) { return false; } - int x = strncmp((const char *)raw_value->m_processed_data + 1, (const char *)processed_data, + + unsigned char offset = raw_value->m_is_param ? 0 : 1; + int x = strncmp((const char *)raw_value->m_processed_data + offset, (const char *)processed_data, raw_value->m_processed_data_size - 3); if (x == 0) { if (raw_value->m_data[0] == '\'') { diff --git a/src/common/interfaces/libpq/client_logic_processor/raw_values_list.cpp b/src/common/interfaces/libpq/client_logic_processor/raw_values_list.cpp index 5579c2141..3d90c9304 100644 --- a/src/common/interfaces/libpq/client_logic_processor/raw_values_list.cpp +++ b/src/common/interfaces/libpq/client_logic_processor/raw_values_list.cpp @@ -23,9 +23,13 @@ #include "raw_values_list.h" #include "raw_value.h" +#include "../client_logic_common/statement_data.h" #include "libpq-int.h" -RawValuesList::RawValuesList() : m_raw_values(NULL), m_raw_values_size(0) {} +RawValuesList::RawValuesList(const bool should_free_values) : m_raw_values(NULL), + m_raw_values_size(0), + m_should_free_values(should_free_values) { +} RawValuesList::~RawValuesList() { @@ -34,10 +38,17 @@ RawValuesList::~RawValuesList() void RawValuesList::clear() { - for (size_t i = 0; i < m_raw_values_size; ++i) { - if (m_raw_values[i] != NULL) { - delete m_raw_values[i]; - m_raw_values[i] = NULL; + if (m_should_free_values) { + for (size_t i = 0; i < m_raw_values_size; ++i) { + if (m_raw_values[i] == NULL) { + continue; + } + + m_raw_values[i]->dec_ref_count(); + if (m_raw_values[i]->safe_to_delete()) { + delete m_raw_values[i]; + m_raw_values[i] = NULL; + } } } free(m_raw_values); @@ -45,7 +56,6 @@ void RawValuesList::clear() m_raw_values_size = 0; } - bool RawValuesList::add(RawValue *raw_value) { /* input of NULL is legal */ @@ -54,6 +64,9 @@ bool RawValuesList::add(RawValue *raw_value) if (m_raw_values == NULL) { return false; } + if (raw_value) { + raw_value->inc_ref_count(); + } m_raw_values[m_raw_values_size] = raw_value; ++m_raw_values_size; return true; @@ -106,6 +119,9 @@ bool RawValuesList::set(size_t pos, RawValue *raw_value) if (m_raw_values[pos] != NULL) { return false; } + if (raw_value) { + raw_value->inc_ref_count(); + } m_raw_values[pos] = raw_value; return true; } @@ -122,8 +138,11 @@ bool RawValuesList::erase(size_t pos, bool is_delete) } if (m_raw_values[pos]) { - delete m_raw_values[pos]; - m_raw_values[pos] = NULL; + m_raw_values[pos]->dec_ref_count(); + if (m_raw_values[pos]->safe_to_delete()) { + delete m_raw_values[pos]; + m_raw_values[pos] = NULL; + } } std::swap(m_raw_values[pos], m_raw_values[m_raw_values_size - 1]); m_raw_values[m_raw_values_size - 1] = NULL; @@ -171,3 +190,35 @@ void RawValuesList::sort_by_location() { quicksort_by_location(0, (int)m_raw_values_size - 1); } + +void RawValuesList::merge_from(const RawValuesList *other) +{ + if (!other) { + return; + } + for (size_t i = 0; i < other->size(); i++) { + add(other->at(i)); + } +} + +bool RawValuesList::gen_values_from_statement(const StatementData *statement_data) +{ + resize(statement_data->nParams); + for (size_t param_num = 0; param_num < statement_data->nParams; ++param_num) { + RawValue *raw_value = new (std::nothrow) RawValue(statement_data->conn); + if (raw_value == NULL) { + fprintf(stderr, "failed to new RawValue object\n"); + return false; + } + raw_value->m_is_param = true; + raw_value->m_location = param_num; /* func : do not reset this variable. it's confusing. */ + if (statement_data->paramValues[param_num]) { + raw_value->set_data((const unsigned char *)statement_data->paramValues[param_num], + statement_data->paramLengths ? statement_data->paramLengths[param_num] : + strlen(statement_data->paramValues[param_num])); + } + raw_value->m_data_value_format = statement_data->paramFormats ? statement_data->paramFormats[param_num] : 0; + set(param_num, raw_value); + } + return true; +} \ No newline at end of file diff --git a/src/common/interfaces/libpq/client_logic_processor/raw_values_list.h b/src/common/interfaces/libpq/client_logic_processor/raw_values_list.h index 16b258078..868598c90 100644 --- a/src/common/interfaces/libpq/client_logic_processor/raw_values_list.h +++ b/src/common/interfaces/libpq/client_logic_processor/raw_values_list.h @@ -27,10 +27,11 @@ #include "c.h" class RawValue; +class StatementData; class RawValuesList { public: - RawValuesList(); + RawValuesList(const bool should_free_values = true); ~RawValuesList(); bool add(RawValue *raw_value); RawValue *at(size_t pos) const; @@ -41,12 +42,15 @@ public: bool erase(size_t pos, bool is_delete_object); void sort_by_location(); void clear(); + void merge_from(const RawValuesList* other); RawValue **m_raw_values; + bool gen_values_from_statement(const StatementData *statement_data); private: void quicksort_by_location(int lo, int high); int partition_by_location(int lo, int high); size_t m_raw_values_size; + bool m_should_free_values; }; #endif diff --git a/src/common/interfaces/libpq/client_logic_processor/record_processor.cpp b/src/common/interfaces/libpq/client_logic_processor/record_processor.cpp index 52c675669..804a11e26 100644 --- a/src/common/interfaces/libpq/client_logic_processor/record_processor.cpp +++ b/src/common/interfaces/libpq/client_logic_processor/record_processor.cpp @@ -30,7 +30,8 @@ #include "client_logic_cache/dataTypes.def" #include "client_logic_cache/icached_column_manager.h" bool RecordProcessor::DeProcessRecord(PGconn* conn, const char* processed_data, size_t processed_data_size, - const int* original_typesid, int format, unsigned char** plain_text, size_t& plain_text_size, bool* is_decrypted) + const int* original_typesid, int format, unsigned char** plain_text, + size_t& plain_text_size, bool* is_decrypted) { DecryptDataRes dec_dat_res = DEC_DATA_ERR; if (!original_typesid) { @@ -77,8 +78,9 @@ bool RecordProcessor::DeProcessRecord(PGconn* conn, const char* processed_data, unsigned char* plain = NULL; size_t plain_size = 0; int original_id = original_typesid[idx]; + ProcessStatus process_status = ONLY_VALUE; dec_dat_res = ValuesProcessor::deprocess_value(conn, (unsigned char*)pdata, end - pdata, original_id, format, - &plain, plain_size, false); + &plain, plain_size, process_status); if (dec_dat_res == DEC_DATA_SUCCEED) { *is_decrypted = true; diff --git a/src/common/interfaces/libpq/client_logic_processor/stmt_processor.cpp b/src/common/interfaces/libpq/client_logic_processor/stmt_processor.cpp index ecc00eefc..90a643fae 100755 --- a/src/common/interfaces/libpq/client_logic_processor/stmt_processor.cpp +++ b/src/common/interfaces/libpq/client_logic_processor/stmt_processor.cpp @@ -107,31 +107,9 @@ bool Processor::run_pre_update_statement_where(const UpdateStmt * const update_s } /* rewrite WHERE statement clause in the query */ - for (size_t i = 0; i < statement_data->params.nParams; ++i) { - libpq_free(statement_data->params.new_param_values[i]); - } - - libpq_free(statement_data->params.new_param_values); - libpq_free(statement_data->params.copy_sizes); - statement_data->params.new_param_values = - (unsigned char **)malloc(statement_data->nParams * sizeof(unsigned char *)); - if (statement_data->params.new_param_values == NULL) { - printfPQExpBuffer(&statement_data->conn->errorMessage, - "ERROR(CLIENT): out of memory when malloc new param value.\n"); - return false; - } - statement_data->params.copy_sizes = (size_t *)calloc(sizeof(size_t), statement_data->nParams); - if (statement_data->params.copy_sizes == NULL) { - printfPQExpBuffer(&statement_data->conn->errorMessage, - "ERROR(CLIENT): out of memory when calloc copy size.\n"); - return false; - } if (!WhereClauseProcessor::process(&cached_columns, &where_expr_parts_list, statement_data)) { return false; } - if (!process_clause_value(statement_data)) { - return false; - } return true; } @@ -257,7 +235,7 @@ bool Processor::run_pre_insert_statement(const InsertStmt * const insert_stmt, } } } - + if (cached_columns_temp.is_empty()) { return true; } @@ -416,7 +394,7 @@ bool Processor::run_pre_column_setting_statement(PGconn *conn, const char *stmt_ // update query params.new_query_size = strlen(query); - params.new_query = (char *)malloc(params.new_query_size + 1); + params.new_query = (char *)calloc(params.new_query_size + 1, sizeof(char)); if (params.new_query == NULL) { return false; } @@ -817,11 +795,12 @@ bool Processor::run_pre_select_statement(const SelectStmt * const select_stmt, c if (statement_data->GetCacheManager()->is_cache_empty()) { return true; } - bool select_res = false; + + bool ret = false; /* recurse over SELECT's for SET operations such as UNION/INTERSECT/ETC. */ if (select_stmt->op != SETOP_NONE) { - select_res = process_select_set_operation(select_stmt, statement_data, cached_columns); - RETURN_IF(!select_res, false); + ret = process_select_set_operation(select_stmt, statement_data, cached_columns); + RETURN_IF(!ret, false); } /* Handle function calls */ @@ -836,12 +815,12 @@ bool Processor::run_pre_select_statement(const SelectStmt * const select_stmt, c /* handle single WHERE and HAVING statement */ ExprPartsList where_expr_parts_list; - select_res = exprProcessor::expand_expr(select_stmt->whereClause, statement_data, &where_expr_parts_list); - RETURN_IF(!select_res, false); + ret = exprProcessor::expand_expr(select_stmt->whereClause, statement_data, &where_expr_parts_list); + RETURN_IF(!ret, false); ExprPartsList having_expr_vec; - select_res = exprProcessor::expand_expr(select_stmt->havingClause, statement_data, &having_expr_vec); - RETURN_IF(!select_res, false); + ret = exprProcessor::expand_expr(select_stmt->havingClause, statement_data, &having_expr_vec); + RETURN_IF(!ret, false); /* * filtered_cached_where get all columns relevant for this query's where clause * filtered_cached_having get all columns relevant for this query's haing clause @@ -852,10 +831,11 @@ bool Processor::run_pre_select_statement(const SelectStmt * const select_stmt, c CachedColumns filtered_cached_where(false); CachedColumns filtered_cached_having(false); CachedColumns cached_columns_from(false, true); + bool has_enc_col = false; /* get target list */ CStringsMap target_list; - select_res = get_column_names_from_target_list(select_stmt->targetList, &target_list, statement_data); - RETURN_IF(!select_res, false); + ret = get_column_names_from_target_list(select_stmt->targetList, &target_list, statement_data); + RETURN_IF(!ret, false); /* from (select *) */ if (select_stmt->withClause) { @@ -863,9 +843,9 @@ bool Processor::run_pre_select_statement(const SelectStmt * const select_stmt, c return false; } } - select_res = run_pre_from_list_statement(select_stmt->fromClause, statement_data, &cached_columns_from, + ret = run_pre_from_list_statement(select_stmt->fromClause, statement_data, &cached_columns_from, cached_columns_parents); - RETURN_IF(!select_res, false); + RETURN_IF(!ret, false); statement_data->conn->client_logic->m_cached_column_manager->filter_cached_columns(&cached_columns_from, &where_expr_parts_list, is_operator_forbidden, &filtered_cached_where); @@ -883,6 +863,7 @@ bool Processor::run_pre_select_statement(const SelectStmt * const select_stmt, c } for (size_t i = 0; i < cached_columns_from.size(); i++) { if (find_in_name_map(target_list, cached_columns_from.at(i)->get_col_name())) { + has_enc_col = true; CachedColumn *target = new (std::nothrow) CachedColumn(cached_columns_from.at(i)); if (target == NULL) { fprintf(stderr, "failed to new CachedColumn object\n"); @@ -892,9 +873,19 @@ bool Processor::run_pre_select_statement(const SelectStmt * const select_stmt, c } } + if (select_stmt->intoClause != NULL && has_enc_col) { + PreparedStatement *cur_stmt = + statement_data->conn->client_logic->pendingStatements->get_or_create(statement_data->stmtName); + if (cur_stmt == NULL) { + return false; + } + cur_stmt->cacheRefresh |= CacheRefreshType::COLUMN_SETTING; + } + if (cached_columns_from.is_empty()) { return true; /* nothing to do */ } + if (is_operator_forbidden) { printfPQExpBuffer(&statement_data->conn->errorMessage, "ERROR(CLIENT): operator is not allowed on datatype of this column\n"); @@ -902,22 +893,23 @@ bool Processor::run_pre_select_statement(const SelectStmt * const select_stmt, c } /* check if operation is already on all columns (basesd on their data types) only with target list */ - if (!is_set_operation_allowed(select_stmt, cached_columns, parent_set_operation, parent_all, statement_data)) { - return false; - } - if (!deal_order_by_statement(select_stmt, cached_columns, statement_data)) { - return false; - } + ret = is_set_operation_allowed(select_stmt, cached_columns, parent_set_operation, parent_all, statement_data); + RETURN_IF(!ret, false); + + ret = deal_order_by_statement(select_stmt, cached_columns, statement_data); + RETURN_IF(!ret, false); + if (!select_stmt->whereClause && !select_stmt->havingClause) { return true; } + /* rewrite WHERE statement clause and having clause the query */ - if (!WhereClauseProcessor::process(&cached_columns_from, &where_expr_parts_list, statement_data, &target_list)) { - return false; - } - if (!WhereClauseProcessor::process(&cached_columns_from, &having_expr_vec, statement_data, &target_list)) { - return false; - } + ret = WhereClauseProcessor::process(&cached_columns_from, &where_expr_parts_list, statement_data, &target_list); + RETURN_IF(!ret, false); + + ret = WhereClauseProcessor::process(&cached_columns_from, &having_expr_vec, statement_data, &target_list); + RETURN_IF(!ret, false); + return true; } @@ -971,7 +963,6 @@ bool Processor::process_select_set_operation(const SelectStmt * const select_stm return true; } - bool Processor::run_pre_delete_statement(const DeleteStmt *delete_stmt, StatementData *statement_data, ICachedColumns *cached_columns) { @@ -1605,7 +1596,7 @@ bool Processor::run_pre_exec_direct_statement(const ExecDirectStmt *stmt, Statem return false; } statement_data->params.new_query_size = strlen(statement_data->query); - statement_data->params.new_query = (char *)malloc(statement_data->params.new_query_size + 1); + statement_data->params.new_query = (char *)calloc(statement_data->params.new_query_size + 1, sizeof(char)); if (statement_data->params.new_query == NULL) { return false; } @@ -1642,10 +1633,11 @@ bool Processor::run_pre_exec_direct_statement(const ExecDirectStmt *stmt, Statem continue; } raw_value->m_location += add_length; - unsigned char *processed_data = (unsigned char *)malloc(raw_value->m_processed_data_size + strlen("\'\'")); + unsigned char *processed_data = + (unsigned char *)calloc(raw_value->m_processed_data_size + strlen("\'\'"), sizeof(unsigned char)); if (processed_data == NULL) { printfPQExpBuffer(&statement_data->conn->errorMessage, - libpq_gettext("ERROR(CLIENT): could not malloc buffer for processed_data\n")); + libpq_gettext("ERROR(CLIENT): could not calloc buffer for processed_data\n")); return false; } @@ -1654,8 +1646,7 @@ bool Processor::run_pre_exec_direct_statement(const ExecDirectStmt *stmt, Statem raw_value->m_processed_data_size)); check_memcpy_s(memcpy_s(processed_data + raw_value->m_processed_data_size + 1, 1, "'", 1)); if (raw_value->m_processed_data != NULL) { - free(raw_value->m_processed_data); - raw_value->m_processed_data = NULL; + libpq_free(raw_value->m_processed_data); } raw_value->m_processed_data = processed_data; raw_value->m_processed_data_size += strlen("\'\'"); @@ -1698,11 +1689,11 @@ bool Processor::run_pre_rlspolicy_using(const Node *stmt, StatementData *stateme /* rewrite using statement clause in the query */ statement_data->params.new_param_values = - (unsigned char **)malloc(statement_data->nParams * sizeof(unsigned char *)); + (unsigned char **)calloc(statement_data->nParams, sizeof(unsigned char *)); if (statement_data->params.new_param_values == NULL) { return false; } - statement_data->params.copy_sizes = (size_t *)calloc(sizeof(size_t), statement_data->nParams); + statement_data->params.copy_sizes = (size_t *)calloc(statement_data->nParams, sizeof(size_t)); if (statement_data->params.copy_sizes == NULL) { return false; } @@ -1710,33 +1701,6 @@ bool Processor::run_pre_rlspolicy_using(const Node *stmt, StatementData *stateme if (!ret) { return false; } - if (!process_clause_value(statement_data)) { - return false; - } - return true; -} - -bool Processor::process_clause_value(StatementData *statement_data) -{ - PGClientLogicParams tmp_params(statement_data->params); - if (!tmp_params.copy_sizes) { - return true; - } - for (size_t i = 0; i < statement_data->nParams; ++i) { - if (tmp_params.new_param_values != NULL && tmp_params.new_param_values[i]) { - statement_data->params.new_param_values[i] = (unsigned char *)malloc(tmp_params.copy_sizes[i]); - if (statement_data->params.new_param_values[i] == NULL) { - return false; - } - statement_data->params.copy_sizes[i] = tmp_params.copy_sizes[i]; - check_memcpy_s(memcpy_s(statement_data->params.new_param_values[i], statement_data->params.copy_sizes[i], - tmp_params.new_param_values[i], tmp_params.copy_sizes[i])); - } - if (statement_data->params.copy_sizes[i] > 0) { - statement_data->params.adjusted_param_values[i] = - (const char *)(statement_data->params.new_param_values[i]); - } - } return true; } @@ -1905,6 +1869,7 @@ bool Processor::run_pre_statement(const Node * const stmt, StatementData *statem /* null valued in parser means fe do not care about this value */ return true; } + PreparedStatement *current_statement = statement_data->conn->client_logic->pendingStatements->get_or_create(statement_data->stmtName); if (!current_statement) { @@ -1917,7 +1882,6 @@ bool Processor::run_pre_statement(const Node * const stmt, StatementData *statem return run_pre_delete_statement((DeleteStmt *)stmt, statement_data); case T_UpdateStmt: return run_pre_update_statement((UpdateStmt *)stmt, statement_data); - break; case T_SelectStmt: return run_pre_select_statement((SelectStmt *)stmt, statement_data); case T_PrepareStmt: @@ -1990,6 +1954,8 @@ bool Processor::run_pre_statement(const Node * const stmt, StatementData *statem current_statement->cacheRefresh |= CacheRefreshType::GLOBAL_SETTING; } break; + case T_CreateTableAsStmt: + return run_pre_select_statement((SelectStmt *)((CreateTableAsStmt *)stmt)->query, statement_data); default: break; } @@ -2109,6 +2075,7 @@ bool Processor::run_pre_query(StatementData *statement_data, bool is_inner_query { PGconn *conn = statement_data->conn; Assert(conn->client_logic && conn->client_logic->enable_client_encryption); + Assert(!conn->client_logic->rawValuesForReplace->m_raw_values); if (statement_data->query == nullptr) { return false; } @@ -2121,8 +2088,8 @@ bool Processor::run_pre_query(StatementData *statement_data, bool is_inner_query */ conn->client_logic->pendingStatements->get_or_create(statement_data->stmtName); /* just create a default one */ - check_strncat_s(strncat_s(conn->client_logic->lastStmtName, NAMEDATALEN, statement_data->stmtName, - strlen(statement_data->stmtName))); + check_memcpy_s(memcpy_s(conn->client_logic->lastStmtName, NAMEDATALEN, statement_data->stmtName, + strlen(statement_data->stmtName) + 1)); ListCell *stmt_iter = NULL; List *stmts = Parser::Parse(statement_data->conn->client_logic, statement_data->query); foreach (stmt_iter, stmts) { @@ -2151,12 +2118,11 @@ bool Processor::run_pre_query(StatementData *statement_data, bool is_inner_query bool Processor::run_pre_exec(StatementData *statement_data) { - errno_t rc; Assert(statement_data->conn->client_logic && statement_data->conn->client_logic->enable_client_encryption); + Assert(!statement_data->conn->client_logic->rawValuesForReplace->m_raw_values); statement_data->copy_params(); - rc = strncat_s(statement_data->conn->client_logic->lastStmtName, NAMEDATALEN, statement_data->stmtName, - strlen(statement_data->stmtName)); - securec_check_c(rc, "\0", "\0"); + check_memcpy_s(memcpy_s(statement_data->conn->client_logic->lastStmtName, NAMEDATALEN, statement_data->stmtName, + strlen(statement_data->stmtName) + 1)); PreparedStatement *prepares_statement = statement_data->conn->client_logic->preparedStatements->get_or_create(statement_data->stmtName); if (!prepares_statement) { @@ -2168,20 +2134,8 @@ bool Processor::run_pre_exec(StatementData *statement_data) } RawValuesList raw_values_list; - raw_values_list.resize(statement_data->nParams); - for (size_t param_num = 0; param_num < statement_data->nParams; ++param_num) { - RawValue *raw_value = new (std::nothrow) RawValue(statement_data->conn); - if (raw_value == NULL) { - fprintf(stderr, "failed to new RawValue object\n"); - return false; - } - raw_value->m_is_param = true; - raw_value->m_location = param_num; /* func : do not reset this variable. it's confusing. */ - raw_value->set_data((const unsigned char *)statement_data->paramValues[param_num], - statement_data->paramLengths ? statement_data->paramLengths[param_num] : - strlen(statement_data->paramValues[param_num])); - raw_value->m_data_value_format = statement_data->paramFormats ? statement_data->paramFormats[param_num] : 0; - raw_values_list.set(param_num, raw_value); + if (!raw_values_list.gen_values_from_statement(statement_data)) { + return false; } if (!ValuesProcessor::process_values(statement_data, prepares_statement->cached_params, 1, @@ -2232,8 +2186,7 @@ void Processor::remove_dropped_global_settings(PGconn *conn, const bool is_succe HooksManager::GlobalSettings::set_deletion_expected(*conn->client_logic, cur_cmk->obj_name, false); to_free = cur_cmk; cur_cmk = cur_cmk->next; - free(to_free); - to_free = NULL; + libpq_free(to_free); } conn->client_logic->droppedGlobalSettings = NULL; } @@ -2314,20 +2267,18 @@ bool Processor::run_post_query(PGconn *conn) conn->client_logic->rawValuesForReplace->clear(); } + conn->client_logic->raw_values_for_post_query.clear(); char last_stmt_name[NAMEDATALEN]; errno_t rc = EOK; rc = memset_s(last_stmt_name, NAMEDATALEN, 0, NAMEDATALEN); securec_check_c(rc, "\0", "\0"); - char temp_stmt_name[NAMEDATALEN]; - rc = memset_s(temp_stmt_name, NAMEDATALEN, 0, NAMEDATALEN); - securec_check_c(rc, "\0", "\0"); /* swap local lastStmtName with lastStmtName object on connection */ - check_strncat_s(strncat_s(temp_stmt_name, NAMEDATALEN, conn->client_logic->lastStmtName, - strlen(conn->client_logic->lastStmtName))); - check_strncpy_s(strncpy_s(conn->client_logic->lastStmtName, NAMEDATALEN, last_stmt_name, strlen(last_stmt_name))); - check_strncat_s(strncat_s(last_stmt_name, NAMEDATALEN, temp_stmt_name, strlen(temp_stmt_name))); - int last_result = conn->client_logic->m_lastResultStatus; + check_memcpy_s( + memcpy_s(last_stmt_name, NAMEDATALEN, conn->client_logic->lastStmtName, NAMEDATALEN)); + check_memset_s(memset_s(conn->client_logic->lastStmtName, NAMEDATALEN, 0, NAMEDATALEN)); + + int last_result = conn->client_logic->m_lastResultStatus; conn->client_logic->m_lastResultStatus = PGRES_EMPTY_QUERY; bool is_success = (last_result == PGRES_COMMAND_OK); diff --git a/src/common/interfaces/libpq/client_logic_processor/stmt_processor.h b/src/common/interfaces/libpq/client_logic_processor/stmt_processor.h index 605f40137..9c313d97f 100644 --- a/src/common/interfaces/libpq/client_logic_processor/stmt_processor.h +++ b/src/common/interfaces/libpq/client_logic_processor/stmt_processor.h @@ -151,7 +151,6 @@ private: static bool get_column_names_from_target_list(const List *target_list, CStringsMap *col_alias_map, StatementData *statement_data); - static bool process_clause_value(StatementData *statement_data); static bool run_pre_select_target_list(List *targetList, StatementData *statementData, ExprPartsList *funcExprPartsList); static bool process_res_target(ResTarget *resTarget, StatementData *statementData, diff --git a/src/common/interfaces/libpq/client_logic_processor/values_processor.cpp b/src/common/interfaces/libpq/client_logic_processor/values_processor.cpp index c99676e1c..49f41ce0c 100644 --- a/src/common/interfaces/libpq/client_logic_processor/values_processor.cpp +++ b/src/common/interfaces/libpq/client_logic_processor/values_processor.cpp @@ -42,62 +42,92 @@ #include "client_logic_cache/dataTypes.def" #include "client_logic_cache/types_to_oid.h" +static bool process_get_value_index(const ICachedColumns *cached_columns, size_t values_per_row_count, + size_t m, size_t i, size_t &raw_value_index) +{ + const ICachedColumn *cached_column = cached_columns->at(i); + if (cached_columns->is_in_scheme_order()) { + /* this can happen when "INSERT INTO TABLE VALUES" contains less values than the number of columns in + * the original table */ + if (cached_column->get_col_idx() > values_per_row_count) { + return false; + } + + size_t column_index = cached_column->get_col_idx() - 1; + raw_value_index = column_index + (m * values_per_row_count); + } else { + raw_value_index = i + (m * values_per_row_count); + } + + return true; +} + static void process_prepare_state(const RawValue *raw_value, StatementData *statement_data) { - if (raw_value->m_is_param) { - /* - * prepared statements - * keep the \0 in the end of the string when in textual mode. - */ - int copy_size = - (raw_value->m_processed_data_size + (raw_value->m_data_value_format ? 0 : 1)) * sizeof(unsigned char); - if (!statement_data->params.new_param_values) { - Assert(!statement_data->params.copy_sizes); - statement_data->params.new_param_values = - (unsigned char **)calloc(sizeof(unsigned char *), statement_data->nParams); - statement_data->params.copy_sizes = (size_t *)calloc(sizeof(size_t), statement_data->nParams); - statement_data->params.nParams = statement_data->nParams; - } - Assert(!statement_data->params.new_param_values[raw_value->m_location]); - statement_data->params.new_param_values[raw_value->m_location] = (unsigned char *)malloc(copy_size); - if (statement_data->params.new_param_values[raw_value->m_location] == NULL) { + /* + * this function should not be called if the raw_value is not a parameter + * null empty is valid for prepared statement, and not need deal with it. + */ + if (!raw_value->m_is_param || !raw_value->m_processed_data) { + return; + } + + if (!statement_data || raw_value->m_location >= statement_data->nParams) { + Assert(false); + return; + } + + /* + * prepared statements + * keep the \0 in the end of the string when in textual mode. + */ + int copy_size = + (raw_value->m_processed_data_size + ((raw_value->m_data_value_format == 1) ? 0 : 1)) * sizeof(unsigned char); + if (!statement_data->params.new_param_values) { + Assert(!statement_data->params.copy_sizes); + statement_data->params.new_param_values = + (unsigned char **)calloc(sizeof(unsigned char *), statement_data->nParams); + statement_data->params.copy_sizes = (size_t *)calloc(sizeof(size_t), statement_data->nParams); + statement_data->params.nParams = statement_data->nParams; + } + Assert(!statement_data->params.new_param_values[raw_value->m_location]); + statement_data->params.new_param_values[raw_value->m_location] = + (unsigned char *)calloc(copy_size, sizeof(unsigned char)); + if (statement_data->params.new_param_values[raw_value->m_location] == NULL) { + fprintf(stderr, "ERROR(CLIENT): out of memory when processing state\n"); + return; + } + statement_data->params.copy_sizes[raw_value->m_location] = copy_size; + /* 1. new_query_value get value */ + check_memcpy_s(memcpy_s(statement_data->params.new_param_values[raw_value->m_location], copy_size, + raw_value->m_processed_data, copy_size)); + if (!statement_data->params.adjusted_param_values) { + statement_data->params.adjusted_param_values = + (const char **)calloc(statement_data->nParams, sizeof(const char *)); + if (statement_data->params.adjusted_param_values == NULL) { fprintf(stderr, "ERROR(CLIENT): out of memory when processing state\n"); return; } - statement_data->params.copy_sizes[raw_value->m_location] = copy_size; - /* 1. new_query_value get value */ - check_memcpy_s(memcpy_s(statement_data->params.new_param_values[raw_value->m_location], copy_size, - raw_value->m_processed_data, copy_size)); - if (raw_value->m_location < statement_data->nParams) { - if (!statement_data->params.adjusted_param_values) { - statement_data->params.adjusted_param_values = - (const char **)malloc(statement_data->nParams * sizeof(const char *)); - if (statement_data->params.adjusted_param_values == NULL) { - fprintf(stderr, "ERROR(CLIENT): out of memory when processing state\n"); - return; - } - statement_data->params.nParams = statement_data->nParams; - } - - if (statement_data->params.new_param_values[raw_value->m_location] != NULL) { - statement_data->params.adjusted_param_values[raw_value->m_location] = - (const char*)statement_data->params.new_param_values[raw_value->m_location]; - } else { - statement_data->params.adjusted_param_values[raw_value->m_location] = - (const char *)statement_data->params.new_param_values[raw_value->m_location]; - } - - if (!statement_data->params.adjusted_param_lengths) { - statement_data->params.adjusted_param_lengths = (int *)malloc(statement_data->nParams * sizeof(int)); - if (statement_data->params.adjusted_param_lengths == NULL) { - fprintf(stderr, "ERROR(CLIENT): out of memory when processing state\n"); - return; - } - statement_data->params.nParams = statement_data->nParams; - } - statement_data->params.adjusted_param_lengths[raw_value->m_location] = raw_value->m_processed_data_size; - } + statement_data->params.nParams = statement_data->nParams; } + + if (statement_data->params.new_param_values[raw_value->m_location] != NULL) { + statement_data->params.adjusted_param_values[raw_value->m_location] = + (const char*)statement_data->params.new_param_values[raw_value->m_location]; + } else { + statement_data->params.adjusted_param_values[raw_value->m_location] = + (const char *)statement_data->params.new_param_values[raw_value->m_location]; + } + + if (!statement_data->params.adjusted_param_lengths) { + statement_data->params.adjusted_param_lengths = (int *)calloc(statement_data->nParams, sizeof(int)); + if (statement_data->params.adjusted_param_lengths == NULL) { + fprintf(stderr, "ERROR(CLIENT): out of memory when processing state\n"); + return; + } + statement_data->params.nParams = statement_data->nParams; + } + statement_data->params.adjusted_param_lengths[raw_value->m_location] = raw_value->m_processed_data_size; } static bool process_inside_value(const StatementData *statement_data, RawValue *raw_value, @@ -150,9 +180,8 @@ static bool save_prepared_statement(const StatementData *statement_data, const R bool ValuesProcessor::process_values(StatementData *statement_data, const ICachedColumns *cached_columns, const size_t rows_count, RawValuesList *raw_values) { - bool check_para_valid = - !statement_data || !cached_columns || !raw_values || raw_values->empty() || (rows_count == 0); - if (check_para_valid) { + bool check_para_valid = process_check_param_valid(statement_data, cached_columns, rows_count, raw_values); + if (!check_para_valid) { Assert(false); return false; } @@ -174,23 +203,17 @@ bool ValuesProcessor::process_values(StatementData *statement_data, const ICache continue; } + /* JNI prepared statement - pass underlying OID */ + process_set_adjustparam_types(statement_data, cached_column, m, i); + /* * if we have the column name in the query then use its position in the query. * otherwise, use the order from the table. */ - RawValue *raw_value = NULL; size_t raw_value_index = 0; - if (cached_columns->is_in_scheme_order()) { - /* this can happen when "INSERT INTO TABLE VALUES" contains less values than the number of columns in - * the original table */ - if (cached_column->get_col_idx() > values_per_row_count) { - continue; - } - - size_t column_index = cached_column->get_col_idx() - 1; - raw_value_index = column_index + (m * values_per_row_count); - } else { - raw_value_index = i + (m * values_per_row_count); + bool res_value_idx = process_get_value_index(cached_columns, values_per_row_count, m, i, raw_value_index); + if (!res_value_idx) { + continue; } /* precaution */ @@ -199,7 +222,7 @@ bool ValuesProcessor::process_values(StatementData *statement_data, const ICache continue; } - raw_value = raw_values->at(raw_value_index); + RawValue *raw_value = raw_values->at(raw_value_index); /* rawValue in CREATE TABLE could be without a default value */ if (!raw_value) { continue; @@ -209,8 +232,13 @@ bool ValuesProcessor::process_values(StatementData *statement_data, const ICache if (!save_prepared_statement(statement_data, raw_value, cached_column)) { return false; } - /* rawValue in INSERT could be NULL */ - if (!raw_value->m_data_value) { + + /* rawValue in INSERT could be NULL or empty string */ + if (raw_value->original_value_emtpy()) { + if (raw_value->m_is_param && statement_data->params.adjusted_param_values) { + /* if the raw value is NULL or empty (considered as null on server), this is what should be send */ + statement_data->params.adjusted_param_values[raw_value_index] = NULL; + } continue; } @@ -218,31 +246,21 @@ bool ValuesProcessor::process_values(StatementData *statement_data, const ICache * at this point, we know for certain that the value will be replaced * if raw value is param, the query might be empty */ - bool raw_is_param = !is_any_relevant && !raw_value->m_is_param; - if (raw_is_param) { - is_any_relevant = true; - - /* rewrite query with new query */ - statement_data->params.new_query_size = strlen(statement_data->query); - libpq_free(statement_data->params.new_query); - statement_data->params.new_query = (char *)malloc(statement_data->params.new_query_size + 1); - if (statement_data->params.new_query == NULL) { - fprintf(stderr, "ERROR(CLIENT): out of memory when processing data\n"); - return false; - } - check_strncpy_s(strncpy_s(statement_data->params.new_query, statement_data->params.new_query_size + 1, - statement_data->query, statement_data->params.new_query_size)); - statement_data->params.new_query[statement_data->params.new_query_size] = '\0'; + if (!process_rewrite_query_for_params(statement_data, is_any_relevant, raw_value->m_is_param)) { + return false; } /* process the data inside the rawValue */ if (!process_inside_value(statement_data, raw_value, cached_column)) { return false; } + + /* process the data for prepare statement */ process_prepare_state(raw_value, statement_data); /* * 1. realign locations inside the rawValue after data was processed and probably enlarged + * (does not apply if this is param) * 2. add the rawValue to the list of rawValues intended for replacement in the original query to be sent to * the client */ @@ -250,12 +268,12 @@ bool ValuesProcessor::process_values(StatementData *statement_data, const ICache int size_diff = (int)raw_value->m_processed_data_size - (int)raw_value->m_data_size; statement_data->offset += size_diff; for (size_t j = 1 + (raw_value_index + (m * values_per_row_count)); j < raw_values->size(); ++j) { - if (raw_values->at(j) && !raw_values->at(j)->m_is_param) { - raw_values->at(j)->m_new_location += size_diff; - } + process_update_values_location(raw_values, size_diff, j); } statement_data->conn->client_logic->rawValuesForReplace->add(raw_value); raw_values->erase(raw_value_index, false); + } else { + statement_data->conn->client_logic->raw_values_for_post_query.add(raw_value); } } } @@ -267,9 +285,39 @@ bool ValuesProcessor::process_values(StatementData *statement_data, const ICache return true; } +DecryptDataRes ValuesProcessor::process_null_value(unsigned char **plain_text, size_t &plain_text_size, + int original_typeid, ProcessStatus process_status) +{ + if (process_status != ONLY_VALUE) { + const size_t quotation_mark_len = 2; + const size_t type_len = 256; + *plain_text = (unsigned char *)calloc(quotation_mark_len + type_len, sizeof(unsigned char)); + if (*plain_text == NULL) { + fprintf(stderr, "ERROR(CLIENT): out of memory when decrypting data\n"); + return CLIENT_HEAP_ERR; + } + errno_t rc = memcpy_s(*plain_text, quotation_mark_len + type_len, "''", quotation_mark_len); + plain_text_size = quotation_mark_len; + securec_check_c(rc, "\0", "\0"); + if (process_status == ADD_TYPE) { + const char *type = TypesMap::typesTextToOidMap.find_by_oid(original_typeid); + if (type == NULL) { + libpq_free(*plain_text); + return CLIENT_CACHE_ERR; + } + check_strncat_s(strncat_s((char *)*plain_text, quotation_mark_len + type_len, "::", strlen("::"))); + check_strncat_s( + strncat_s((char *)*plain_text, quotation_mark_len + type_len, type, strlen(type))); + plain_text_size += strlen("::"); + plain_text_size += strlen(type); + } + } + return DEC_DATA_SUCCEED; +} + DecryptDataRes ValuesProcessor::deprocess_value(PGconn *conn, const unsigned char *processed_data, size_t processed_data_size, int original_typeid, int format, unsigned char **plain_text, size_t &plain_text_size, - bool is_default) + ProcessStatus process_status) { if (!processed_data || processed_data_size <= 0) { return DEC_DATA_ERR; @@ -326,18 +374,26 @@ DecryptDataRes ValuesProcessor::deprocess_value(PGconn *conn, const unsigned cha if (!unescaped_processed_data_size) { plain_text_size = 0; - return DEC_DATA_SUCCEED; + if (format == 0) { + libpq_free(unescaped_processed_data); + } + return ValuesProcessor::process_null_value(plain_text, plain_text_size, original_typeid, process_status); } else if (unescaped_processed_data_size < sizeof(Oid)) { /* * if the size is smaller the size of Oid, so setting oid is not there * and this is an error */ fprintf(stderr, "ERROR(CLIENT): wrong value for processed column\n"); - libpq_free(unescaped_processed_data); + if (format == 0) { + libpq_free(unescaped_processed_data); + } return DEC_DATA_ERR; } dec_dat_res = HooksManager::deprocess_data(*conn->client_logic, unescaped_processed_data, unescaped_processed_data_size, plain_text, &plain_text_size_tmp); + if (format == 0) { + libpq_free(unescaped_processed_data); + } if (dec_dat_res != DEC_DATA_SUCCEED) { return dec_dat_res; } @@ -345,16 +401,14 @@ DecryptDataRes ValuesProcessor::deprocess_value(PGconn *conn, const unsigned cha bool plain_invalid = plain_text_size_tmp == 0 && !(*plain_text); if (plain_invalid) { /* the only accetped way to reach here is no proper cmk permissions */ - *plain_text = (unsigned char *)malloc(processed_data_size * sizeof(unsigned char)); + *plain_text = (unsigned char *)calloc(processed_data_size, sizeof(unsigned char)); if (*plain_text == NULL) { fprintf(stderr, "ERROR(CLIENT): out of memory when decrypting data\n"); - libpq_free(unescaped_processed_data); return CLIENT_HEAP_ERR; } errno_t rc = memcpy_s(*plain_text, processed_data_size, processed_data, processed_data_size); securec_check_c(rc, "\0", "\0"); plain_text_size = processed_data_size; - libpq_free(unescaped_processed_data); return DEC_DATA_SUCCEED; } libpq_free(unescaped_processed_data); @@ -364,7 +418,7 @@ DecryptDataRes ValuesProcessor::deprocess_value(PGconn *conn, const unsigned cha plain_text_size = plain_text_size_tmp; if (!format) { /* text */ - process_text_format(plain_text, plain_text_size, is_default, original_typeid); + process_text_format(plain_text, plain_text_size, process_status, original_typeid); } else { size_t result_size = 0; errno_t rc = EOK; @@ -399,15 +453,18 @@ const bool ValuesProcessor::textual_rep(const Oid oid) oid != NUMERICOID); } -void ValuesProcessor::process_text_format(unsigned char **plain_text, size_t &plain_text_size, bool is_default, - int original_typeid) +void ValuesProcessor::process_text_format(unsigned char **plain_text, size_t &plain_text_size, + ProcessStatus process_status, int original_typeid) { size_t result_size = 0; char *res = Format::binary_to_text(*plain_text, plain_text_size, original_typeid, 0, -1, &result_size); - Assert(res != NULL); - if (is_default) { + if (res == NULL) { + fprintf(stderr, "ERROR(CLIENT): failed to convert binary to text\n"); + return; + } + if (process_status != ONLY_VALUE) { size_t tmp_plain_text_allocated = strlen((char *)*plain_text) + 256; - char *tmp_plain_text = (char *)malloc(tmp_plain_text_allocated); + char *tmp_plain_text = (char *)calloc(tmp_plain_text_allocated, sizeof(char)); if (tmp_plain_text == NULL) { libpq_free(res); return; @@ -420,15 +477,17 @@ void ValuesProcessor::process_text_format(unsigned char **plain_text, size_t &pl } else { check_strncpy_s(strncpy_s(tmp_plain_text, tmp_plain_text_allocated, res, result_size)); } - check_strncat_s(strncat_s(tmp_plain_text, tmp_plain_text_allocated, "::", 2)); - const char *type = TypesMap::typesTextToOidMap.find_by_oid(original_typeid); - if (type == NULL) { - libpq_free(tmp_plain_text); - libpq_free(res); - return; + if (process_status == ADD_TYPE) { + check_strncat_s(strncat_s(tmp_plain_text, tmp_plain_text_allocated, "::", 2)); + const char *type = TypesMap::typesTextToOidMap.find_by_oid(original_typeid); + if (type == NULL) { + libpq_free(tmp_plain_text); + libpq_free(res); + return; + } + check_strncat_s( + strncat_s(tmp_plain_text, tmp_plain_text_allocated, type, strlen(type))); } - check_strncat_s( - strncat_s(tmp_plain_text, tmp_plain_text_allocated, type, strlen(type))); plain_text_size = strlen(tmp_plain_text); if (*plain_text) { free(*plain_text); @@ -461,3 +520,56 @@ void ValuesProcessor::process_text_format(unsigned char **plain_text, size_t &pl } libpq_free(res); } + +bool ValuesProcessor::process_rewrite_query_for_params(StatementData* const statement_data, + bool &is_any_relevant, + bool raw_value_param) +{ + bool raw_is_param = !is_any_relevant && !raw_value_param; + if (!raw_is_param) { + return true; + } + is_any_relevant = true; + + /* rewrite query with new query */ + size_t src_query_size = strlen(statement_data->query); + statement_data->params.new_query_size = src_query_size; + libpq_free(statement_data->params.new_query); + statement_data->params.new_query = (char *)malloc(statement_data->params.new_query_size + 1); + if (statement_data->params.new_query == NULL) { + fprintf(stderr, "ERROR(CLIENT): out of memory when processing data\n"); + return false; + } + check_strncpy_s(strncpy_s(statement_data->params.new_query, statement_data->params.new_query_size + 1, + statement_data->query, src_query_size)); + statement_data->params.new_query[statement_data->params.new_query_size] = '\0'; + return true; +} + +bool ValuesProcessor::process_check_param_valid(StatementData * const statement_data, + const ICachedColumns *cached_columns, const size_t rows_count, const RawValuesList *raw_values) +{ + if (!statement_data || !cached_columns || !raw_values || raw_values->empty() || (rows_count == 0)) { + return false; + } + return true; +} + +void ValuesProcessor::process_set_adjustparam_types(StatementData* const statement_data, + const ICachedColumn *cached_column, + size_t m, + size_t i) +{ + if (m == 0 && statement_data->params.adjusted_paramTypes != NULL) { + Assert(i < statement_data->nParams); + Oid column_oid = cached_column->get_data_type(); + statement_data->params.adjusted_paramTypes[i] = column_oid; + } +} + +void ValuesProcessor::process_update_values_location(RawValuesList* const raw_values, int size_diff, size_t j) +{ + if (raw_values->at(j) && !raw_values->at(j)->m_is_param) { + raw_values->at(j)->m_new_location += size_diff; + } +} diff --git a/src/common/interfaces/libpq/client_logic_processor/values_processor.h b/src/common/interfaces/libpq/client_logic_processor/values_processor.h index f6002bc0a..caab2d4a9 100644 --- a/src/common/interfaces/libpq/client_logic_processor/values_processor.h +++ b/src/common/interfaces/libpq/client_logic_processor/values_processor.h @@ -45,16 +45,33 @@ enum DecryptDataRes { CLIENT_CACHE_ERR, }; +/* the text's status when process text format */ +enum ProcessStatus { + ONLY_VALUE = 0, /* only the text value, like text */ + ADD_QUOTATION_MARK, /* add '' to text value, like 'text' */ + ADD_TYPE, /* add '' and type to text value, like 'text'::varchar */ +}; + class ValuesProcessor { public: static bool process_values(StatementData *statement_data, const ICachedColumns *cached_columns, const size_t rows_count, RawValuesList *raw_values_list); static DecryptDataRes deprocess_value(PGconn *conn, const unsigned char *processed_data, size_t processed_data_size, - int original_typeid, int format, unsigned char **plain_text, size_t &plain_text_size, bool is_default); - + int original_typeid, int format, unsigned char **plain_text, size_t &plain_text_size, + ProcessStatus process_status = ONLY_VALUE); private: - static void process_text_format(unsigned char **plain_text, size_t &plain_text_size, bool is_default, int original_typeid); + static void process_text_format(unsigned char **plain_text, size_t &plain_text_size, + ProcessStatus process_status, int original_typeid); + static DecryptDataRes process_null_value(unsigned char **plain_text, size_t &plain_text_size, + int original_typeid, ProcessStatus process_status); static const bool textual_rep(const Oid oid); + static bool process_rewrite_query_for_params(StatementData* const statement_data, bool &is_any_relevant, bool raw_value_param); + static bool process_check_param_valid(StatementData* const statement_data, const ICachedColumns *cached_columns, const size_t rows_count, const RawValuesList *raw_values); + static void process_set_adjustparam_types(StatementData* const statement_data, + const ICachedColumn *cached_column, + size_t m, + size_t i); + static void process_update_values_location(RawValuesList* const raw_values, int size_diff, size_t j); }; #endif diff --git a/src/common/interfaces/libpq/fe-connect.cpp b/src/common/interfaces/libpq/fe-connect.cpp index f73b055bf..cb050cdb5 100644 --- a/src/common/interfaces/libpq/fe-connect.cpp +++ b/src/common/interfaces/libpq/fe-connect.cpp @@ -214,14 +214,6 @@ static const PQconninfoOption PQconninfoOptions[] = { {"keepalives_interval", NULL, NULL, NULL, "TCP-Keepalives-Interval", "", 10, 0}, {"keepalives_count", NULL, NULL, NULL, "TCP-Keepalives-Count", "", 10, 0}, {"rw_timeout", NULL, NULL, NULL, "Read write timeout", "", 10, 0}, -#ifdef USE_SSL - - /* - * "requiressl" is deprecated, its purpose having been taken over by - * "sslmode". It remains for backwards compatibility. - */ - {"requiressl", "PGREQUIRESSL", "0", NULL, "Require-SSL", "D", 1, 0}, -#endif /* * ssl options are allowed even without client SSL support because the @@ -907,15 +899,6 @@ static void fillPGconn(PGconn* conn, PQconninfoOption* connOptions) conn->sslrootcert = (tmp != NULL) ? strdup(tmp) : NULL; tmp = conninfo_getval(connOptions, "sslcrl"); conn->sslcrl = (tmp != NULL) ? strdup(tmp) : NULL; -#ifdef USE_SSL - tmp = conninfo_getval(connOptions, "requiressl"); - if (tmp != NULL && tmp[0] == '1') { - /* here warn that the requiressl option is deprecated? */ - if (conn->sslmode != NULL) - free(conn->sslmode); - conn->sslmode = strdup("require"); - } -#endif tmp = conninfo_getval(connOptions, "requirepeer"); conn->requirepeer = (tmp != NULL) ? strdup(tmp) : NULL; #if defined(KRB5) || defined(ENABLE_GSS) || defined(ENABLE_SSPI) @@ -6162,4 +6145,22 @@ void uttest_parseServiceInfo(PQconninfoOption* options, PQExpBuffer errorMessage { parseServiceInfo(options, errorMessage); } + +void uttest_conninfo_uri_parse(const char* uri, PQExpBuffer errorMessage, bool use_defaults) +{ + (void)conninfo_uri_parse(uri, errorMessage, use_defaults); + return; +} + +void uttest_conninfo_uri_parse_options(PQconninfoOption* options, const char* uri, PQExpBuffer errorMessage) +{ + (void)conninfo_uri_parse_options(options, uri, errorMessage); + return; +} + +int uttest_parseServiceFile(const char* serviceFile, const char* service, PQconninfoOption* options, + PQExpBuffer errorMessage, bool* group_found) +{ + return parseServiceFile(serviceFile, service, options, errorMessage, group_found); +} #endif diff --git a/src/common/interfaces/libpq/fe-exec.cpp b/src/common/interfaces/libpq/fe-exec.cpp index db66eb92c..04ae5af19 100644 --- a/src/common/interfaces/libpq/fe-exec.cpp +++ b/src/common/interfaces/libpq/fe-exec.cpp @@ -893,8 +893,9 @@ static bool pqSaveMessageField(PGconn* conn, PGMessageField *pfield, const char return false; } size_t plaintextSize(0); - bool ret = RawValues::get_unprocessed_data(conn->client_logic->rawValuesForReplace, processedValueStart, - plaintext, plaintextSize); + bool ret = RawValues::get_unprocessed_data(&(conn->client_logic->raw_values_for_post_query), + processedValueStart, + plaintext, plaintextSize); /* place back the removed char (it was removed for the null terminated \0) */ processedValueStart[processedValueSize] = valueEofChar; @@ -931,6 +932,7 @@ static bool pqSaveMessageField(PGconn* conn, PGMessageField *pfield, const char break; } } + conn->client_logic->raw_values_for_post_query.clear(); return isProcessedMessage; } #endif @@ -1107,8 +1109,9 @@ int pqRowProcessor(PGconn* conn, const char** errmsgp) is_encrypted_dat = is_clientlogic_datatype(res->attDescs[i].typid); size_t length = (size_t)clen; if (is_encrypted_dat) { + ProcessStatus process_status = ONLY_VALUE; dec_dat_res = ValuesProcessor::deprocess_value(conn, (unsigned char *)columns[i].value, length, - res->attDescs[i].atttypmod, res->attDescs[i].format, &deProcessed, length, false); + res->attDescs[i].atttypmod, res->attDescs[i].format, &deProcessed, length, process_status); if (dec_dat_res == DEC_DATA_SUCCEED) { clen = (int)length; } else if (dec_dat_res == DEC_DATA_ERR) { diff --git a/src/common/interfaces/libpq/fe-secure.cpp b/src/common/interfaces/libpq/fe-secure.cpp index 769986c7a..01f8ac25c 100644 --- a/src/common/interfaces/libpq/fe-secure.cpp +++ b/src/common/interfaces/libpq/fe-secure.cpp @@ -84,23 +84,22 @@ #include "cipher.h" static bool verify_peer_name_matches_certificate(PGconn*); -static int verify_cb(int ok, X509_STORE_CTX* ctx); static int init_ssl_system(PGconn* conn); static void destroy_ssl_system(PGconn* conn); - static void destroySSL(PGconn* conn); - static void close_SSL(PGconn*); #ifndef ENABLE_UT static char* SSLerrmessage(void); static int check_permission_cipher_file(const char* parent_dir, PGconn* conn, const char* username); static PostgresPollingStatusType open_client_SSL(PGconn*); +static int verify_cb(int ok, X509_STORE_CTX* ctx); static int initialize_SSL(PGconn* conn); static int init_client_ssl_passwd(SSL* pstContext, const char* path, const char* username, PGconn* conn); #else char* SSLerrmessage(void); int check_permission_cipher_file(const char* parent_dir, PGconn* conn, const char* username); PostgresPollingStatusType open_client_SSL(PGconn*); +int verify_cb(int ok, X509_STORE_CTX* ctx); int initialize_SSL(PGconn* conn); int init_client_ssl_passwd(SSL* pstContext, const char* path, const char* username, PGconn* conn); #endif @@ -891,58 +890,60 @@ ssize_t pgfdw_pqsecure_write(PGconn* conn, const void* ptr, size_t len) * criteria (e.g., accepting self-signed or expired certs), but * for now we accept the default checks. */ +#ifndef ENABLE_UT +static +#endif + int verify_cb(int ok, X509_STORE_CTX* ctx) +{ + int cert_error = X509_STORE_CTX_get_error(ctx); - static int verify_cb(int ok, X509_STORE_CTX* ctx) - { - int cert_error = X509_STORE_CTX_get_error(ctx); + if (!ok) + { + switch (cert_error) + { + case X509_V_ERR_CRL_HAS_EXPIRED: + ok = 1; + break; + case X509_V_ERR_UNABLE_TO_GET_CRL: + ok = 1; + break; + case X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE: + ok = 1; + break; + case X509_V_ERR_CRL_SIGNATURE_FAILURE: + ok = 1; + break; + case X509_V_ERR_CRL_NOT_YET_VALID: + ok = 1; + break; + case X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD: + ok = 1; + break; + case X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD: + ok = 1; + break; + case X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER: + ok = 1; + break; + case X509_V_ERR_KEYUSAGE_NO_CRL_SIGN: + ok = 1; + break; + case X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION: + ok = 1; + break; + case X509_V_ERR_DIFFERENT_CRL_SCOPE: + ok = 1; + break; + case X509_V_ERR_CRL_PATH_VALIDATION_ERROR: + ok = 1; + break; + default: + break; + } + } - if (!ok) - { - switch (cert_error) - { - case X509_V_ERR_CRL_HAS_EXPIRED: - ok = 1; - break; - case X509_V_ERR_UNABLE_TO_GET_CRL: - ok = 1; - break; - case X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE: - ok = 1; - break; - case X509_V_ERR_CRL_SIGNATURE_FAILURE: - ok = 1; - break; - case X509_V_ERR_CRL_NOT_YET_VALID: - ok = 1; - break; - case X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD: - ok = 1; - break; - case X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD: - ok = 1; - break; - case X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER: - ok = 1; - break; - case X509_V_ERR_KEYUSAGE_NO_CRL_SIGN: - ok = 1; - break; - case X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION: - ok = 1; - break; - case X509_V_ERR_DIFFERENT_CRL_SCOPE: - ok = 1; - break; - case X509_V_ERR_CRL_PATH_VALIDATION_ERROR: - ok = 1; - break; - default: - break; - } - } - - return ok; - } + return ok; +} /* * Check if a wildcard certificate matches the server hostname. @@ -959,7 +960,10 @@ ssize_t pgfdw_pqsecure_write(PGconn* conn, const void* ptr, size_t len) * * Matching is always case-insensitive, since DNS is case insensitive. */ -static int wildcard_certificate_match(const char* pattern, const char* string) +#ifndef ENABLE_UT +static +#endif +int wildcard_certificate_match(const char* pattern, const char* string) { int lenpat = strlen(pattern); int lenstr = strlen(string); @@ -1229,9 +1233,7 @@ static int init_ssl_system(PGconn* conn) #ifndef ENABLE_UT static #endif // ENABLE_UT - - bool - set_client_ssl_ciphers() +bool set_client_ssl_ciphers() { int default_ciphers_count = 0; diff --git a/src/common/interfaces/libpq/frontend_parser/gram.y b/src/common/interfaces/libpq/frontend_parser/gram.y index 118dbc1a7..b2d31b92b 100755 --- a/src/common/interfaces/libpq/frontend_parser/gram.y +++ b/src/common/interfaces/libpq/frontend_parser/gram.y @@ -1,5 +1,4 @@ %{ -/*#define YYDEBUG 1*/ /*------------------------------------------------------------------------- * * gram.y @@ -52,11 +51,6 @@ #include #include #include "datatypes.h" -//#include "commands/defrem.h" -//#include "parser/parser.h" -//#include "storage/lmgr.h" -//#include "utils/builtins.h" -//#include "utils/datetime.h" #include "catalog/namespace.h" #include "catalog/pg_attribute.h" #include "nodes/pg_list.h" @@ -67,7 +61,6 @@ #include "nodes/value.h" #include "nodes/parsenodes_common.h" #include "parser/gramparse.h" -//#include "parser/analyze.h" #include "nodes/makefuncs.h" #include "catalog/pg_class.h" #include "commands/defrem.h" @@ -167,9 +160,9 @@ static Node *makeCallFuncStmt(List* funcname, List* parameters, core_yyscan_t yy extern THR_LOCAL bool stmt_contains_operator_plus; %} -%pure-parser +%define api.pure %expect 1 -%name-prefix="base_yy" +%name-prefix "base_yy" %locations %parse-param {core_yyscan_t yyscanner} @@ -337,9 +330,9 @@ extern THR_LOCAL bool stmt_contains_operator_plus; %type columnDef columnOptions %type def_elem %type reloption_elem -%type def_arg columnElem where_clause where_or_current_clause +%type def_arg columnElem where_clause where_or_current_clause start_with_expr connect_by_expr a_expr b_expr c_expr c_expr_noparen func_expr AexprConst indirection_el - columnref in_expr having_clause func_table array_expr + columnref in_expr start_with_clause having_clause func_table array_expr ExclusionWhereClause %type ExclusionConstraintList ExclusionConstraintElem %type func_arg_list @@ -500,16 +493,16 @@ extern THR_LOCAL bool stmt_contains_operator_plus; /* ordinary key words in alphabetical order */ /* PGXC - added DISTRIBUTE, DIRECT, COORDINATOR, CLEAN, NODE, BARRIER */ %token ABORT_P ABSOLUTE_P ACCESS ACCOUNT ACTION ADD_P ADMIN AFTER - AGGREGATE ALGORITHM ALL ALSO ALTER ALWAYS ANALYSE ANALYZE AND ANY APP ARCHIVE ARRAY AS ASC + AGGREGATE ALGORITHM ALL ALSO ALTER ALWAYS ANALYSE ANALYZE AND ANY APP APPEND ARCHIVE ARRAY AS ASC ASSERTION ASSIGNMENT ASYMMETRIC AT ATTRIBUTE AUDIT AUDIT_POLICY AUTHID AUTHORIZATION AUTOEXTEND AUTOMAPPED - BACKWARD BARRIER BEFORE BEGIN_P BETWEEN BIGINT BINARY BINARY_DOUBLE BINARY_FLOAT BINARY_INTEGER BIT BLOB_P BLOCKCHAIN BODY_P BOGUS + BACKWARD BARRIER BEFORE BEGIN_NON_ANOYBLOCK BEGIN_P BETWEEN BIGINT BINARY BINARY_DOUBLE BINARY_INTEGER BIT BLANKS BLOB_P BLOCKCHAIN BODY_P BOGUS BOOLEAN_P BOTH BUCKETCNT BUCKETS BY BYTEAWITHOUTORDER BYTEAWITHOUTORDERWITHEQUAL CACHE CALL CALLED CASCADE CASCADED CASE CAST CATALOG_P CHAIN CHAR_P - CHARACTER CHARACTERISTICS CHECK CHECKPOINT CLASS CLEAN CLIENT CLIENT_MASTER_KEY CLIENT_MASTER_KEYS CLOB CLOSE - CLUSTER COALESCE COLLATE COLLATION COLUMN COLUMN_ENCRYPTION_KEY COLUMN_ENCRYPTION_KEYS COLUMN_ARGS COLUMN_FUNCTION COMMENT COMMENTS COMMIT - COMMITTED COMPACT COMPATIBLE_ILLEGAL_CHARS COMPLETE COMPRESS CONDITION CONCURRENTLY CONFIGURATION CONNECTION CONSTRAINT CONSTRAINTS + CHARACTER CHARACTERISTICS CHARACTERSET CHECK CHECKPOINT CLASS CLEAN CLIENT CLIENT_MASTER_KEY CLIENT_MASTER_KEYS CLOB CLOSE + CLUSTER COALESCE COLLATE COLLATION COLUMN COLUMN_ENCRYPTION_KEY COLUMN_ENCRYPTION_KEYS COMMENT COMMENTS COMMIT + CONNECT COMMITTED COMPACT COMPATIBLE_ILLEGAL_CHARS COMPLETE COMPRESS CONDITION CONCURRENTLY CONFIGURATION CONNECTBY CONNECTION CONSTANT CONSTRAINT CONSTRAINTS CONTENT_P CONTINUE_P CONTVIEW CONVERSION_P COORDINATOR COORDINATORS COPY COST CREATE CROSS CSN CSV CUBE CURRENT_P CURRENT_CATALOG CURRENT_DATE CURRENT_ROLE CURRENT_SCHEMA @@ -522,21 +515,21 @@ extern THR_LOCAL bool stmt_contains_operator_plus; /* PGXC_END */ DROP DUPLICATE DISCONNECT - EACH ELASTIC ELSE ENABLE_P ENCODING ENCRYPTED ENCRYPTED_VALUE ENCRYPTION ENCRYPTION_TYPE + EACH ELASTIC ELSE ENABLE_P ENCLOSED ENCODING ENCRYPTED ENCRYPTED_VALUE ENCRYPTION ENCRYPTION_TYPE END_P ENFORCED ENUM_P ERRORS ESCAPE EOL ESCAPING EVERY EXCEPT EXCHANGE EXCLUDE EXCLUDED EXCLUDING EXCLUSIVE EXECUTE EXPIRED_P EXISTS EXPLAIN EXTENSION EXTERNAL EXTRACT - FALSE_P FAMILY FAST FENCED FETCH FILEHEADER_P FILL_MISSING_FIELDS FILTER FIRST_P FIXED_P FLOAT_P FOLLOWING FOR FORCE FOREIGN FORMATTER FORWARD + FALSE_P FAMILY FAST FENCED FETCH FIELDS FILEHEADER_P FILL_MISSING_FIELDS FILLER FILTER FIRST_P FIXED_P FLOAT_P FOLLOWING FOR FORCE FOREIGN FORMATTER FORWARD FEATURES // DB4AI FREEZE FROM FULL FUNCTION FUNCTIONS - GENERATED GLOBAL GLOBAL_FUNCTION GRANT GRANTED GREATEST GROUP_P GROUPING_P GROUPPARENT + GENERATED GLOBAL GRANT GRANTED GREATEST GROUP_P GROUPING_P GROUPPARENT HANDLER HAVING HDFSDIRECTORY HEADER_P HOLD HOUR_P IDENTIFIED IDENTITY_P IF_P IGNORE_EXTRA_DATA ILIKE IMMEDIATE IMMUTABLE IMPLICIT_P IN_P - INCLUDE INCLUDING INCREMENT INCREMENTAL INDEX INDEXES INHERIT INHERITS INITIAL_P INITIALLY INITRANS INLINE_P + INCLUDE INCLUDING INCREMENT INCREMENTAL INDEX INDEXES INFILE INHERIT INHERITS INITIAL_P INITIALLY INITRANS INLINE_P INNER_P INOUT INPUT_P INSENSITIVE INSERT INSTEAD INT_P INTEGER INTERNAL INTERSECT INTERVAL INTO INVOKER IP IS ISNULL ISOLATION @@ -550,9 +543,9 @@ extern THR_LOCAL bool stmt_contains_operator_plus; MAPPING MASKING MASTER MASTR MATCH MATERIALIZED MATCHED MAXEXTENTS MAXSIZE MAXTRANS MAXVALUE MERGE MINUS_P MINUTE_P MINVALUE MINEXTENTS MODE MODIFY_P MONTH_P MOVE MOVEMENT MODEL // DB4AI NAME_P NAMES NATIONAL NATURAL NCHAR NEXT NLSSORT NO NOCOMPRESS NOCYCLE NODE NOLOGGING NOMAXVALUE NOMINVALUE NONE - NOT NOTHING NOTIFY NOTNULL NOWAIT NULL_P NULLIF NULLS_P NUMBER_P NUMERIC NUMSTR NVARCHAR NVARCHAR2 NVL + NOT NOTHING NOTIFY NOTNULL NOWAIT NULL_P NULLCOLS NULLIF NULLS_P NUMBER_P NUMERIC NUMSTR NVARCHAR2 NVL - OBJECT_P OF OFF OFFSET OIDS ON ONLY OPERATOR OPTIMIZATION OPTION OPTIONS OR + OBJECT_P OF OFF OFFSET OIDS ON ONLY OPERATOR OPTIMIZATION OPTION OPTIONALLY OPTIONS OR ORDER OUT_P OUTER_P OVER OVERLAPS OVERLAY OWNED OWNER PACKAGE PARSER PARTIAL PARTITION PARTITIONS PASSING PASSWORD PCTFREE PER_P PERCENT PERFORMANCE PERM PLACING PLAN PLANS POLICY POSITION @@ -563,29 +556,29 @@ extern THR_LOCAL bool stmt_contains_operator_plus; /* PGXC_BEGIN */ PREFERRED PREFIX PRESERVE PREPARE PREPARED PRIMARY /* PGXC_END */ - PRIVATE PRIOR PRIVILEGES PRIVILEGE PROCEDURAL PROCEDURE PROFILE PUBLICATION PUBLISH PURGE + PRIVATE PRIOR PRIORER PRIVILEGES PRIVILEGE PROCEDURAL PROCEDURE PROFILE PUBLICATION PUBLISH PURGE QUERY QUOTE RANDOMIZED RANGE RATIO RAW READ REAL REASSIGN REBUILD RECHECK RECURSIVE RECYCLEBIN REDISANYVALUE REF REFERENCES REFRESH REINDEX REJECT_P RELATIVE_P RELEASE RELOPTIONS REMOTE_P REMOVE RENAME REPEATABLE REPLACE REPLICA RESET RESIZE RESOURCE RESTART RESTRICT RETURN RETURNING RETURNS REUSE REVOKE RIGHT ROLE ROLES ROLLBACK ROLLUP - ROTATION ROW ROWNUM ROWS RULE + ROTATION ROW ROWNUM ROWS ROWTYPE_P RULE SAMPLE SAVEPOINT SCHEMA SCROLL SEARCH SECOND_P SECURITY SELECT SEQUENCE SEQUENCES - SERIALIZABLE SERVER SESSION SESSION_USER SET SETS SETOF SHARE SHIPPABLE SHOW SHUTDOWN - SIMILAR SIMPLE SIZE SLICE SMALLDATETIME SMALLDATETIME_FORMAT_P SMALLINT SNAPSHOT SOME SOURCE_P SPACE SPILL SPLIT STABLE STANDALONE_P START - STATEMENT STATEMENT_ID STATISTICS STDIN STDOUT STORAGE STORE_P STORED STRATIFY STREAM STRICT_P STRIP_P SUBSCRIPTION SUBSTRING + SERIALIZABLE SERVER SESSION SESSION_USER SET SETS SETOF SHARE SHIPPABLE SHOW SHUTDOWN SIBLINGS + SIMILAR SIMPLE SIZE SKIP SLICE SMALLDATETIME SMALLDATETIME_FORMAT_P SMALLINT SNAPSHOT SOME SOURCE_P SPACE SPILL SPLIT STABLE STANDALONE_P START STARTWITH + STATEMENT STATEMENT_ID STATISTICS STDIN STDOUT STORAGE STORE_P STORED STRATIFY STREAM STRICT_P STRIP_P SUBPARTITION SUBSCRIPTION SUBSTRING SWLEVEL SWNOCYCLE SWROWNUM SYMMETRIC SYNONYM SYSDATE SYSID SYSTEM_P SYS_REFCURSOR - TABLE TABLES TABLESAMPLE TABLESPACE TARGET TEMP TEMPLATE TEMPORARY TEXT_P THAN THEN TIME TIME_FORMAT_P TIMECAPSULE TIMESTAMP TIMESTAMP_FORMAT_P TIMESTAMPDIFF TINYINT + TABLE TABLES TABLESAMPLE TABLESPACE TARGET TEMP TEMPLATE TEMPORARY TERMINATED TEXT_P THAN THEN TIME TIME_FORMAT_P TIMECAPSULE TIMESTAMP TIMESTAMP_FORMAT_P TIMESTAMPDIFF TINYINT TO TRAILING TRANSACTION TRANSFORM TREAT TRIGGER TRIM TRUE_P TRUNCATE TRUSTED TSFIELD TSTAG TSTIME TYPE_P TYPES_P UNBOUNDED UNCOMMITTED UNENCRYPTED UNION UNIQUE UNKNOWN UNLIMITED UNLISTEN UNLOCK UNLOGGED - UNTIL UNUSABLE UPDATE USER USING + UNTIL UNUSABLE UPDATE USEEOF USER USING - VACUUM VALID VALIDATE VALIDATION VALIDATOR VALUE_P VALUES VARCHAR VARCHAR2 VARIADIC VARRAY VARYING VCGROUP + VACUUM VALID VALIDATE VALIDATION VALIDATOR VALUE_P VALUES VARCHAR VARCHAR2 VARIABLES VARIADIC VARRAY VARYING VCGROUP VERBOSE VERIFY VERSION_P VIEW VOLATILE WEAK WHEN WHERE WHITESPACE_P WINDOW WITH WITHIN WITHOUT WORK WORKLOAD WRAPPER WRITE @@ -610,7 +603,6 @@ extern THR_LOCAL bool stmt_contains_operator_plus; REBUILD_PARTITION MODIFY_PARTITION NOT_ENFORCED - BEGIN_NON_ANOYBLOCK VALID_BEGIN DECLARE_CURSOR @@ -6619,8 +6611,6 @@ MergeStmt: m->join_condition = $8; m->mergeWhenClauses = $9; - // m->hintState = create_hintstate($2); - $$ = (Node *)m; } ; @@ -6903,7 +6893,7 @@ select_clause: */ simple_select: SELECT hint_string opt_distinct target_list - into_clause from_clause where_clause + into_clause from_clause start_with_clause where_clause group_clause having_clause window_clause { SelectStmt *n = makeNode(SelectStmt); @@ -6911,10 +6901,11 @@ simple_select: n->targetList = $4; n->intoClause = $5; n->fromClause = $6; - n->whereClause = $7; - n->groupClause = $8; - n->havingClause = $9; - n->windowClause = $10; + n->startWithClause = $7; + n->whereClause = $8; + n->groupClause = $9; + n->havingClause = $10; + n->windowClause = $11; n->hasPlus = getOperatorPlusFlag(); $$ = (Node *)n; } @@ -7305,6 +7296,27 @@ having_clause: | /*EMPTY*/ { $$ = NULL; } ; +start_with_clause: + STARTWITH start_with_expr CONNECT BY connect_by_expr + { + StartWithClause *n = makeNode(StartWithClause); + n->startWithExpr = $2; + n->connectByExpr = $5; + n->priorDirection = false; + n->nocycle = false; + $$ = (Node *) n; + } + | /*EMPTY*/ { $$ = NULL; } + ; + +start_with_expr: + a_expr { $$ = $1; } + ; + +connect_by_expr: + a_expr { $$ = $1; } + ; + for_locking_clause: for_locking_items { $$ = $1; } | FOR READ ONLY { $$ = NIL; } @@ -7994,11 +8006,6 @@ Numeric: INT_P $$ = SystemTypeName("float8"); $$->location = @1; } - | BINARY_FLOAT - { - $$ = SystemTypeName("float4"); - $$->location = @1; - } | BINARY_INTEGER { $$ = SystemTypeName("int4"); @@ -8047,7 +8054,6 @@ opt_float: '(' Iconst ')' * types - thomas 1997-09-18 */ if ($2 < 1){ - //feparser_printf("precision for type float must be at least 1 bit\n"); $$ = SystemTypeName("float4"); } /* @@ -8060,7 +8066,6 @@ opt_float: '(' Iconst ')' else if ($2 <= 53) $$ = SystemTypeName("float8"); else{ - //feparser_printf("precision for type float must be less than 54 bits\n"); $$ = SystemTypeName("float4"); } /* @@ -8211,8 +8216,6 @@ character: CHARACTER opt_varying { $$ = (char *)($2 ? "varchar": "bpchar"); } | NVARCHAR2 { $$ = "nvarchar2"; } - | NVARCHAR - { $$ = "nvarchar2"; } | VARCHAR { $$ = "varchar"; } | VARCHAR2 @@ -10995,6 +10998,7 @@ unreserved_keyword: | ALTER | ALWAYS | APP + | APPEND | ASSERTION | ASSIGNMENT | AT @@ -11010,6 +11014,7 @@ unreserved_keyword: | BEFORE | BEGIN_NON_ANOYBLOCK | BEGIN_P + | BLANKS | BLOB_P | BLOCKCHAIN | BODY_P @@ -11022,6 +11027,7 @@ unreserved_keyword: | CATALOG_P | CHAIN | CHARACTERISTICS + | CHARACTERSET | CHECKPOINT | CLASS | CLEAN @@ -11043,6 +11049,7 @@ unreserved_keyword: | CONDITION | CONFIGURATION | CONNECTION + | CONSTANT | CONSTRAINTS | CONTENT_P | CONTINUE_P @@ -11089,6 +11096,7 @@ unreserved_keyword: | DROP | EACH | ENABLE_P + | ENCLOSED | ENCODING | ENFORCED | ENCRYPTED @@ -11113,8 +11121,10 @@ unreserved_keyword: | FAMILY | FAST | FEATURES // DB4AI + | FIELDS | FILEHEADER_P | FILL_MISSING_FIELDS + | FILLER | FIRST_P | FIXED_P | FOLLOWING @@ -11123,7 +11133,6 @@ unreserved_keyword: | FORWARD | GENERATED | GLOBAL - | GLOBAL_FUNCTION | GRANTED | HANDLER | HEADER_P @@ -11142,6 +11151,7 @@ unreserved_keyword: | INCREMENTAL | INDEX | INDEXES + | INFILE | INHERIT | INHERITS | INITIAL_P @@ -11212,6 +11222,7 @@ unreserved_keyword: | NOTHING | NOTIFY | NOWAIT + | NULLCOLS | NULLS_P | NUMSTR | OBJECT_P @@ -11221,6 +11232,7 @@ unreserved_keyword: | OPERATOR | OPTIMIZATION | OPTION + | OPTIONALLY | OPTIONS | OWNED | OWNER @@ -11310,6 +11322,7 @@ unreserved_keyword: | SHUTDOWN | SIMPLE | SIZE + | SKIP | SLICE | SMALLDATETIME_FORMAT_P | SNAPSHOT @@ -11328,7 +11341,8 @@ unreserved_keyword: | STORED | STRICT_P | STRIP_P - | SUBSCRIPTION + | SUBPARTITION + | SUBSCRIPTION | SYNONYM | SYS_REFCURSOR { $$ = "refcursor"; } | SYSID @@ -11339,6 +11353,7 @@ unreserved_keyword: | TEMP | TEMPLATE | TEMPORARY + | TERMINATED | TEXT_P | THAN | TIME_FORMAT_P @@ -11364,12 +11379,14 @@ unreserved_keyword: | UNTIL | UNUSABLE | UPDATE + | USEEOF | VACUUM | VALID | VALIDATE | VALIDATION | VALIDATOR | VALUE_P + | VARIABLES | VARYING | VERSION_P | VIEW @@ -11402,7 +11419,6 @@ col_name_keyword: BETWEEN | BIGINT | BINARY_DOUBLE - | BINARY_FLOAT | BINARY_INTEGER | BIT | BOOLEAN_P @@ -11430,7 +11446,6 @@ col_name_keyword: | NUMBER_P | NUMERIC | NVARCHAR2 - | NVARCHAR | NVL | OUT_P | OVERLAY @@ -11526,6 +11541,8 @@ reserved_keyword: | CHECK | COLLATE | COLUMN + | CONNECT + | CONNECTBY | CONSTRAINT | CREATE | CURRENT_CATALOG @@ -11576,7 +11593,8 @@ reserved_keyword: | PERFORMANCE | PLACING | PRIMARY - | PROCEDURE + | PRIORER + | PROCEDURE | REFERENCES | REJECT_P | RETURN @@ -11584,9 +11602,14 @@ reserved_keyword: | ROWNUM | SELECT | SESSION_USER + | SIBLINGS | SOME + | STARTWITH | SPLIT - | SYMMETRIC + | SWLEVEL + | SWNOCYCLE + | SWROWNUM + | SYMMETRIC | SYSDATE | TABLE | THEN diff --git a/src/common/interfaces/libpq/frontend_parser/scan.l b/src/common/interfaces/libpq/frontend_parser/scan.l index 38767ca26..8e5176aad 100644 --- a/src/common/interfaces/libpq/frontend_parser/scan.l +++ b/src/common/interfaces/libpq/frontend_parser/scan.l @@ -445,7 +445,7 @@ other . } } -<> { yyerror("unterminated /* comment"); } +<> { yyerror("unterminated /* comment"); return 0;} {xbstart} { /* Binary bit type. @@ -475,7 +475,7 @@ other . {quotecontinue} { /* ignore */ } -<> { yyerror("unterminated bit string literal"); } +<> { yyerror("unterminated bit string literal"); return 0;} {xhstart} { /* Hexadecimal bit type. @@ -497,7 +497,7 @@ other . yyextra->is_hint_str = false; return XCONST; } -<> { yyerror("unterminated hexadecimal string literal"); } +<> { yyerror("unterminated hexadecimal string literal"); return 0;} {xnstart} { /* National character. @@ -547,10 +547,6 @@ other . } {xusstart} { SET_YYLLOC(); - /* - if (!yyextra->m_clientLogic->gucParams.standard_conforming_strings) - printf("unsafe use of string constant with Unicode escapes\n");*/ - ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("unsafe use of string constant with Unicode escapes"), @@ -640,17 +636,6 @@ other . {xeescape} { if (yytext[1] == '\'') { - /* - if (yyextra->m_clientLogic->gucParams.backslash_quote == BACKSLASH_QUOTE_OFF || - (yyextra->m_clientLogic->gucParams.backslash_quote == BACKSLASH_QUOTE_SAFE_ENCODING && - PG_ENCODING_IS_CLIENT_ONLY(pg_get_client_encoding()))) - printf("unsafe use of \\' in a string literal\n"); */ - /* - ereport(ERROR, - (errcode(ERRCODE_NONSTANDARD_USE_OF_ESCAPE_CHARACTER), - errmsg("unsafe use of \\' in a string literal"), - errhint("Use '' to write quotes in strings. \\' is insecure in client-only encodings."), - lexer_errposition()));*/ } check_string_escape_warning(yytext[1], yyscanner); addlitchar(unescape_single_char(yytext[1], yyscanner), @@ -679,7 +664,7 @@ other . /* This is only needed for \ just before EOF */ addlitchar(yytext[0], yyscanner); } -<> { yyerror("unterminated quoted string"); } +<> { yyerror("unterminated quoted string"); return 0;} {dolqdelim} { SET_YYLLOC(); @@ -726,7 +711,7 @@ other . /* This is only needed for $ inside the quoted text */ addlitchar(yytext[0], yyscanner); } -<> { yyerror("unterminated dollar-quoted string"); } +<> { yyerror("unterminated dollar-quoted string"); return 0;} {xdstart} { SET_YYLLOC(); @@ -792,7 +777,7 @@ other . {xdinside} { addlit(yytext, yyleng, yyscanner); } -<> { yyerror("unterminated quoted identifier"); } +<> { yyerror("unterminated quoted identifier"); return 0;} {xufailed} { char *ident; @@ -1098,45 +1083,6 @@ other . #define yyleng (((struct yyguts_t *) yyscanner)->yyleng_r) -/* - * scanner_errposition - * Report a lexer or grammar error cursor position, if possible. - * - * This is expected to be used within an ereport() call. The return value - * is a dummy (always 0, in fact). - * - * Note that this can only be used for messages emitted during raw parsing - * (essentially, scan.l and gram.y), since it requires the yyscanner struct - * to still be available. - */ -/* -int -scanner_errposition(int location, core_yyscan_t yyscanner) -{ - int pos; - - if (location < 0) - return 0; // no-op if location is unknown - - // Convert byte offset to character number - pos = pg_mbstrlen_with_len(yyextra->scanbuf, location) + 1; - // And pass it to the ereport mechanism - return errposition(pos); -} -*/ - -/* - * scanner_yyerror - * Report a lexer or grammar error. - * - * The message's cursor position is whatever YYLLOC was last set to, - * ie, the start of the current token if called within yylex(), or the - * most recently lexed token if called from the grammar. - * This is OK for syntax error messages from the Bison parser, because Bison - * parsers report error as soon as the first unparsable token is reached. - * Beware of using yyerror for other purposes, as the cursor position might - * be misleading! - */ void scanner_yyerror(const char *message, core_yyscan_t yyscanner) { @@ -1159,11 +1105,6 @@ fe_scanner_init(const char *str, if (yylex_init(&scanner) != 0) printf("yylex_init() failed: %m\n"); //in this location - yyscanner is still not defined and therefore we can't use ereport macro - /* - ereport(ERROR, - (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), - errmsg("yylex_init() failed: %m"))); - */ core_yyset_extra(yyext, scanner); @@ -1206,16 +1147,6 @@ void scanner_finish(core_yyscan_t yyscanner) { // updated by the grammer - the variable is never true - /* - if (clear_key_memory) - { - errno_t rc = EOK; - rc = memset_s(yyextra->scanbuf, yyextra->scanbuflen, 0x7F, yyextra->scanbuflen); - securec_check_s(rc, "\0", "\0"); - *(volatile char*)(yyextra->scanbuf) = *(volatile char*)(yyextra->scanbuf); - rc = memset_s(yyextra->literalbuf, yyextra->literallen, 0x7F, yyextra->literallen); - securec_check_s(rc, "\0", "\0"); - }*/ if (yyextra->scanbuflen >= 8192) feparser_free(yyextra->scanbuf); if (yyextra->literalalloc >= 8192) @@ -1225,7 +1156,6 @@ scanner_finish(core_yyscan_t yyscanner) list_free_deep(yyextra->parameter_list); yyextra->parameter_list = NIL; } - //yylex_destroy(yyscanner); } @@ -1555,10 +1485,6 @@ check_string_escape_warning(unsigned char ychar, core_yyscan_t yyscanner) { if (ychar == '\'') { - /* - if (yyextra->warn_on_first_escape && yyextra->m_clientLogic->gucParams.escape_string_warning) - printf("nonstandard use of \\' in a string literal\n");*/ - ereport(WARNING, (errcode(ERRCODE_NONSTANDARD_USE_OF_ESCAPE_CHARACTER), errmsg("nonstandard use of \\' in a string literal"), @@ -1568,9 +1494,6 @@ check_string_escape_warning(unsigned char ychar, core_yyscan_t yyscanner) } else if (ychar == '\\') { - /* - if (yyextra->warn_on_first_escape && yyextra->m_clientLogic->gucParams.escape_string_warning) - printf("nonstandard use of \\\\ in a string literal\n");*/ ereport(WARNING, (errcode(ERRCODE_NONSTANDARD_USE_OF_ESCAPE_CHARACTER), errmsg("nonstandard use of \\\\ in a string literal"), @@ -1585,9 +1508,6 @@ check_string_escape_warning(unsigned char ychar, core_yyscan_t yyscanner) static void check_escape_warning(core_yyscan_t yyscanner) { - /* - if (yyextra->warn_on_first_escape && yyextra->m_clientLogic->gucParams.escape_string_warning) - printf("nonstandard use of escape in a string literal\n");*/ ereport(WARNING, (errcode(ERRCODE_NONSTANDARD_USE_OF_ESCAPE_CHARACTER), diff --git a/src/common/interfaces/libpq/jdbc/client_logic_jni/client_logic_jni.cpp b/src/common/interfaces/libpq/jdbc/client_logic_jni/client_logic_jni.cpp index 8066b33e5..911863e96 100644 --- a/src/common/interfaces/libpq/jdbc/client_logic_jni/client_logic_jni.cpp +++ b/src/common/interfaces/libpq/jdbc/client_logic_jni/client_logic_jni.cpp @@ -251,8 +251,9 @@ bool ClientLogicJNI::deprocess_value(const char *data_2_process, int data_type, } size_t converted_len = strlen(data_2_process); + ProcessStatus process_status = ONLY_VALUE; DecryptDataRes success = ValuesProcessor::deprocess_value(m_stub_conn, (unsigned char *)data_2_process, - converted_len, data_type, 0, proccessed_data, length_output, false); + converted_len, data_type, 0, proccessed_data, length_output, process_status); if (success != DEC_DATA_SUCCEED) { status->set_error(JNI_SYSTEM_ERROR_CODES::CLIENT_LOGIC_FAILED); return false; @@ -265,19 +266,44 @@ bool ClientLogicJNI::deprocess_value(const char *data_2_process, int data_type, return true; } -bool ClientLogicJNI::process_record_data(const char *data_2_process, const int *modid, int oid, - const char *column_label, unsigned char **proccessed_data, bool *is_client_logic, size_t &length_output, - DriverError *status) +/** + * get the number of oids in a record , zero means no + * @param oid + * @param column_name + * @return + */ +size_t ClientLogicJNI::get_record_data_oid_length(int oid, const char *column_name) +{ + return m_stub_conn->client_logic->get_rec_origial_ids_length(oid, column_name); +} + +/** + * gets a reference to an array on integers with the ids a record type might have + * The length of the array is returned by get_record_data_oid_length + * @param oid + * @param column_name + * @return + */ +const int* ClientLogicJNI::get_record_data_oids(int oid, const char *column_name) +{ + return m_stub_conn->client_logic->get_rec_origial_ids(oid, column_name); +} + +bool ClientLogicJNI::process_record_data(const char *data_2_process, const int *original_oids, + unsigned char **proccessed_data, bool *is_client_logic, size_t &length_output, DriverError *status) { if (status == NULL || data_2_process == NULL || proccessed_data == NULL) { return false; } size_t converted_len = strlen(data_2_process); - if (!RecordProcessor::DeProcessRecord(m_stub_conn, data_2_process, converted_len, modid, 0, proccessed_data, - length_output, is_client_logic)) { + if (!RecordProcessor::DeProcessRecord(m_stub_conn, data_2_process, converted_len, original_oids, 0, + proccessed_data, length_output, is_client_logic)) { status->set_error(JNI_SYSTEM_ERROR_CODES::CLIENT_LOGIC_FAILED); return false; } + if (*proccessed_data == NULL) { + *proccessed_data = (unsigned char *)strdup(data_2_process); + } return true; } @@ -354,22 +380,37 @@ bool ClientLogicJNI::replace_statement_params(const char *statement_name, const if (statement_name == NULL || param_values == NULL || status == NULL) { return false; } - int *param_lengths = NULL; - param_lengths = new (std::nothrow) int[parameter_count]; + + int *param_lengths = new (std::nothrow) int[parameter_count]; if (param_lengths == NULL) { return false; } for (size_t i = 0; i < parameter_count; ++i) { param_lengths[i] = (int)strlen(param_values[i]); } + + Oid *param_types = NULL; + if (parameter_count > 0) { + param_types = (Oid *)malloc(parameter_count * sizeof(Oid)); + if (param_types == NULL) { + delete[] param_lengths; + return false; + } + check_memset_s(memset_s(param_types, parameter_count * sizeof(Oid), 0, parameter_count * sizeof(Oid))); + } + clean_stmnt(); m_stmnt = new (std::nothrow) - StatementData(m_stub_conn, statement_name, parameter_count, NULL, param_values, param_lengths, 0); + StatementData(m_stub_conn, statement_name, parameter_count, param_types, param_values, param_lengths, 0); if (m_stmnt == NULL) { + delete[] param_lengths; + libpq_free(param_types); return false; } bool success = Processor::run_pre_exec(m_stmnt); + m_post_query_needed = true; delete[] param_lengths; + libpq_free(param_types); if (!success) { status->set_error(JNI_SYSTEM_ERROR_CODES::PRE_QUERY_EXEC_FAILED); } @@ -531,6 +572,7 @@ bool ClientLogicJNI::replace_message_impl(PGconn *conn, const char *original_mes } return isProcessedMessage; } + /* * * maintains one active query per connection. * it is required to keep the original query until a new query arrives for replace error message to function. @@ -546,6 +588,17 @@ const char *ClientLogicJNI::get_new_query(const char *query) } return current_query; } + +/** + * Reloads the client logic cache only if the local timestamp + * is earlier than the maximum timestmp on the server + */ +void ClientLogicJNI::reload_cache_if_needed() const +{ + JNI_LOG_DEBUG("in reload_cache_if_needed"); + m_stub_conn->client_logic->m_cached_column_manager->reload_cache_if_needed(m_stub_conn); +} + /* * * Cleans up the current query pointer */ diff --git a/src/common/interfaces/libpq/jdbc/client_logic_jni/client_logic_jni.h b/src/common/interfaces/libpq/jdbc/client_logic_jni/client_logic_jni.h index 7d0b69b61..a90a92b48 100644 --- a/src/common/interfaces/libpq/jdbc/client_logic_jni/client_logic_jni.h +++ b/src/common/interfaces/libpq/jdbc/client_logic_jni/client_logic_jni.h @@ -60,11 +60,14 @@ public: const StatementData *get_statement_data() const; bool deprocess_value(const char *data_2_process, int data_type, unsigned char **proccessed_data, size_t &length_output, DriverError *status) const; - bool process_record_data(const char *data_2_process, const int *modid, int oid, const char *column_label, - unsigned char **proccessed_data, bool *is_encreypted, size_t &length_output, DriverError *status); + size_t get_record_data_oid_length(int oid, const char* column_name); + const int *get_record_data_oids(int oid, const char* column_name); + bool process_record_data(const char *data_2_process, const int *original_oids, unsigned char **proccessed_data, + bool *is_encreypted, size_t &length_output, DriverError *status); bool replace_message(const char *original_message, char **new_message, DriverError *status) const; const char *get_new_query(const char *query); void set_jni_env_and_cl_impl(JNIEnv *env, jobject jni_cl_impl); + void reload_cache_if_needed() const; private: PGconn *m_stub_conn = NULL; diff --git a/src/common/interfaces/libpq/jdbc/client_logic_jni/com_huawei_gauss200_jdbc_jdbc_ClientLogicImpl.cpp b/src/common/interfaces/libpq/jdbc/client_logic_jni/com_huawei_gauss200_jdbc_jdbc_ClientLogicImpl.cpp index b66425abc..b48a11dda 100644 --- a/src/common/interfaces/libpq/jdbc/client_logic_jni/com_huawei_gauss200_jdbc_jdbc_ClientLogicImpl.cpp +++ b/src/common/interfaces/libpq/jdbc/client_logic_jni/com_huawei_gauss200_jdbc_jdbc_ClientLogicImpl.cpp @@ -56,6 +56,19 @@ JNIEXPORT jobjectArray JNICALL Java_com_huawei_gauss200_jdbc_jdbc_ClientLogicImp data_type); } +JNIEXPORT jobjectArray JNICALL JJava_com_huawei_gauss200_jdbc_jdbc_ClientLogicImpl_getRecordIDsImpl (JNIEnv *env, + jobject java_object, jlong handle, jstring column_name_java, jint oid) +{ + return Java_org_postgresql_jdbc_ClientLogicImpl_getRecordIDsImpl(env, java_object, handle, column_name_java, oid); +} + +JNIEXPORT jobjectArray JNICALL Java_com_huawei_gauss200_jdbc_jdbc_ClientLogicImpl_runClientLogic4RecordImpl(JNIEnv *env, + jobject java_object, jlong handle, jstring data_to_process_java, jintArray original_oids_java) +{ + return Java_org_postgresql_jdbc_ClientLogicImpl_runClientLogic4RecordImpl(env, java_object, handle, + data_to_process_java, original_oids_java); +} + JNIEXPORT jobjectArray JNICALL Java_com_huawei_gauss200_jdbc_jdbc_ClientLogicImpl_prepareQueryImpl(JNIEnv *env, jobject java_object, jlong handle, jstring query_java, jstring statement_name_java, jint parameter_count) { diff --git a/src/common/interfaces/libpq/jdbc/client_logic_jni/com_huawei_gauss200_jdbc_jdbc_ClientLogicImpl.h b/src/common/interfaces/libpq/jdbc/client_logic_jni/com_huawei_gauss200_jdbc_jdbc_ClientLogicImpl.h index 273b7131a..21400bc3d 100644 --- a/src/common/interfaces/libpq/jdbc/client_logic_jni/com_huawei_gauss200_jdbc_jdbc_ClientLogicImpl.h +++ b/src/common/interfaces/libpq/jdbc/client_logic_jni/com_huawei_gauss200_jdbc_jdbc_ClientLogicImpl.h @@ -63,6 +63,22 @@ JNIEXPORT jobjectArray JNICALL Java_com_huawei_gauss200_jdbc_jdbc_ClientLogicImp JNIEXPORT jobjectArray JNICALL Java_com_huawei_gauss200_jdbc_jdbc_ClientLogicImpl_runClientLogicImpl(JNIEnv *, jobject, jlong, jstring, jint); +/* + * Class: com_huawei_gauss200_jdbc_jdbc_ClientLogicImpl + * Method: getRecordIDsImpl + * Signature: (JLjava/lang/String;I)[Ljava/lang/Object; + */ +JNIEXPORT jobjectArray JNICALL JJava_com_huawei_gauss200_jdbc_jdbc_ClientLogicImpl_getRecordIDsImpl(JNIEnv *, + jobject, jlong, jstring, jint); + +/* + * Class: com_huawei_gauss200_jdbc_jdbc_ClientLogicImpl + * Method: runClientLogic4RecordImpl + * Signature: (JLjava/lang/String;[I)[Ljava/lang/Object; + */ +JNIEXPORT jobjectArray JNICALL Java_com_huawei_gauss200_jdbc_jdbc_ClientLogicImpl_runClientLogic4RecordImpl(JNIEnv *, + jobject, jlong, jstring, jintArray); + /* * Class: com_huawei_gauss200_jdbc_jdbc_ClientLogicImpl * Method: prepareQueryImpl diff --git a/src/common/interfaces/libpq/jdbc/client_logic_jni/jni_util.cpp b/src/common/interfaces/libpq/jdbc/client_logic_jni/jni_util.cpp index 050751b9f..6f9190f76 100644 --- a/src/common/interfaces/libpq/jdbc/client_logic_jni/jni_util.cpp +++ b/src/common/interfaces/libpq/jdbc/client_logic_jni/jni_util.cpp @@ -85,7 +85,7 @@ void place_jlong_in_target_array(JNIEnv *env, const jlong value, const int index * sets integer value in JNI result array * @param env java environment * @param value long value - * @param index2Store index in teh array to set + * @param index2Store index in the array to set * @param arrayObject Java array class */ void place_int_in_target_array(JNIEnv *env, const int value, const int index2Store, jobjectArray arrayObject) @@ -98,6 +98,26 @@ void place_int_in_target_array(JNIEnv *env, const int value, const int index2Sto env->SetIntArrayRegion(jintArrayValues, 0, 1, valuesArr); env->SetObjectArrayElement(arrayObject, index2Store, jintArrayValues); } + +/** + * Places array of ints in a field of a target array + * @param env java environment + * @param values the int array + * @param values_length the length of the int array + * @param index2Store the index in the target array to store the int array + * @param arrayObject the target array object + */ +void place_ints_in_target_array(JNIEnv *env, const int *values, size_t values_length, const int index2Store, + jobjectArray arrayObject) +{ + if (env == NULL || arrayObject == NULL || values == NULL) { + return; + } + jintArray jintArrayValues = env->NewIntArray(values_length); + env->SetIntArrayRegion(jintArrayValues, 0, values_length, values); + env->SetObjectArrayElement(arrayObject, index2Store, jintArrayValues); +} + /* * sets string value in JNI result array * @param env java environment diff --git a/src/common/interfaces/libpq/jdbc/client_logic_jni/jni_util.h b/src/common/interfaces/libpq/jdbc/client_logic_jni/jni_util.h index 84a644cad..9c14392ad 100644 --- a/src/common/interfaces/libpq/jdbc/client_logic_jni/jni_util.h +++ b/src/common/interfaces/libpq/jdbc/client_logic_jni/jni_util.h @@ -30,6 +30,8 @@ void set_no_error(JNIEnv *env, jclass objectClass, jobjectArray arrayObject); void set_error(JNIEnv *env, jclass objectClass, jobjectArray arrayObject, int error_code, const char *error_text); void place_jlong_in_target_array(JNIEnv *env, jlong value, const int index2Store, jobjectArray arrayObject); void place_int_in_target_array(JNIEnv *env, const int value, const int index2Store, jobjectArray arrayObject); +void place_ints_in_target_array(JNIEnv *env, const int *values, size_t values_length, const int index2Store, + jobjectArray arrayObject); void place_string_in_array(JNIEnv *env, const char *value, const int index2Store, jobjectArray arrayObject); void place_ustring_in_array(JNIEnv *env, unsigned char *value, const int index2Store, jobjectArray arrayObject); diff --git a/src/common/interfaces/libpq/jdbc/client_logic_jni/org_postgresql_jdbc_ClientLogicImpl.cpp b/src/common/interfaces/libpq/jdbc/client_logic_jni/org_postgresql_jdbc_ClientLogicImpl.cpp index ec8448776..fe56d9834 100644 --- a/src/common/interfaces/libpq/jdbc/client_logic_jni/org_postgresql_jdbc_ClientLogicImpl.cpp +++ b/src/common/interfaces/libpq/jdbc/client_logic_jni/org_postgresql_jdbc_ClientLogicImpl.cpp @@ -38,6 +38,20 @@ ptr = NULL; \ } +static bool adjust_param_valid(const char *adjusted_param_value, const char* param_value) +{ + return adjusted_param_value && param_value && + strcmp(adjusted_param_value, param_value) != 0; +} + +static bool check_pre_param_valid(JNIEnv *env, jstring statement_name_java, jobjectArray parameters_java) +{ + if (env == NULL || statement_name_java == NULL || parameters_java == NULL) { + return false; + } + return true; +} + /* * Placeholder for few usefull methods in JNI pluming */ @@ -345,20 +359,71 @@ JNIEXPORT jobjectArray JNICALL Java_org_postgresql_jdbc_ClientLogicImpl_runClien return result.array; } -/* * +/** + * check if a type is holding a record type and then need to pass its values to process_record_data + * In Java this is done once for every field in the resultset and + * then we call process_record_data only for the fields that we need to + * @param env pointer to jvm + * @param + * @param handle pointer to ClientLogicJNI instance + * @param column_name_java the name of the column in the resultset + * @param oid the oid of the field type + * @return java array with the format below: + * [0][0] - int status code - zero for success + * [0][1] - string status description + * [0...n] - array of ints with actual oids that the field contain +*/ +JNIEXPORT jobjectArray JNICALL Java_org_postgresql_jdbc_ClientLogicImpl_getRecordIDsImpl(JNIEnv *env, jobject, + jlong handle, jstring column_name_java, jint oid) +{ + DriverError status(0, ""); + JniResult result(env, 2); + if (!result.init()) { + return result.array; /* Should never happen */ + } + + if (env == NULL || column_name_java == NULL) { + return result.array; + } + JNIStringConvertor column_type_name; + if (!result.convert_string(&column_type_name, column_name_java, &status, "getRecordIDsImpl")) { + return result.array; + } + + ClientLogicJNI *client_logic = NULL; + if (!result.from_handle((long)handle, &client_logic, &status, "getRecordIDsImpl")) { + return result.array; + } + result.set_no_error_retrun(); + size_t number_of_oids = client_logic->get_record_data_oid_length(oid, column_type_name.c_str); + if (number_of_oids > 0) { + const int *oids = client_logic->get_record_data_oids(oid, column_type_name.c_str); + place_ints_in_target_array(env, oids, number_of_oids, 1, result.array); + } + return result.array; +} + +/** + * gets a record in client logic format and returns it in user format + * @param env pointer to jvm + * @param + * @param handle pointer to ClientLogicJNI instance + * @param data_to_process_java the data in client logic format + * @param original_oids_java the result returned from getRecordIDsImpl method for this field + * @return java array with the format below: * [0][0] - int status code - zero for success * [0][1] - string status description * [1] - int 0 not client logic 1 - is client logic * [2] - String - The data in user format - */ +*/ JNIEXPORT jobjectArray JNICALL Java_org_postgresql_jdbc_ClientLogicImpl_runClientLogic4RecordImpl(JNIEnv *env, jobject, - jlong handle, jstring data_to_process_java, jint mod_data_type, jint data_type, jstring column_label_java) + jlong handle, jstring data_to_process_java, jintArray original_oids_java) { JniResult result(env, ARRAY_SIZE + 1); if (!result.init()) { return result.array; /* Should never happen */ } - if (env == NULL || data_to_process_java == NULL) { + if (env == NULL || data_to_process_java == NULL || original_oids_java == NULL) { return result.array; } DriverError status(0, ""); @@ -366,10 +431,6 @@ JNIEXPORT jobjectArray JNICALL Java_org_postgresql_jdbc_ClientLogicImpl_runClien if (!result.convert_string(&data_to_process, data_to_process_java, &status, "runClientLogic4RecordImpl")) { return result.array; } - JNIStringConvertor column_label; - if (!result.convert_string(&column_label, column_label_java, &status, "runClientLogic4RecordImpl")) { - return result.array; - } ClientLogicJNI *client_logic = NULL; if (!result.from_handle((long)handle, &client_logic, &status, "runClientLogic4RecordImpl")) { return result.array; @@ -377,15 +438,27 @@ JNIEXPORT jobjectArray JNICALL Java_org_postgresql_jdbc_ClientLogicImpl_runClien bool is_client_logic = false; unsigned char *proccessed_data = NULL; size_t length_output; - if (!client_logic->process_record_data(data_to_process.c_str, NULL, data_type, column_label.c_str, &proccessed_data, - &is_client_logic, length_output, &status)) { - libpq_free(proccessed_data); - JNI_LOG_ERROR("Java_org_postgresql_jdbc_ClientLogicImpl_runClientLogicImpl failed:error code: %d error: '%s'", - status.get_error_code(), status.get_error_message() ? status.get_error_message() : ""); - result.set_error_return(&status); - return result.array; + size_t number_of_oids = env->GetArrayLength(original_oids_java); + if (number_of_oids > 0) { + /* Gauss wil not allow more than 250 fields with client logic */ + static const size_t MAXMIMUM_NUMBER_OF_CL_FIELDS_IN_TABLE = 250; + Assert(number_of_oids < MAXMIMUM_NUMBER_OF_CL_FIELDS_IN_TABLE); + int original_oids[MAXMIMUM_NUMBER_OF_CL_FIELDS_IN_TABLE] = {0}; + jint *oids_java = env->GetIntArrayElements(original_oids_java, 0); + for (size_t index = 0; index < number_of_oids; ++index) { + original_oids[index] = oids_java[index]; + } + if (!client_logic->process_record_data(data_to_process.c_str, original_oids, &proccessed_data, + &is_client_logic, length_output, &status)) { + libpq_free(proccessed_data); + JNI_LOG_ERROR( + "Java_org_postgresql_jdbc_ClientLogicImpl_runClientLogic4RecordImpl failed:error code: %d error: '%s'", + status.get_error_code(), status.get_error_message() ? status.get_error_message() : ""); + result.set_error_return(&status); + return result.array; + } + result.set_no_error_retrun(); } - result.set_no_error_retrun(); if (is_client_logic) { place_int_in_target_array(env, 1, 1, result.array); } else { @@ -472,17 +545,20 @@ JNIEXPORT jobjectArray JNICALL Java_org_postgresql_jdbc_ClientLogicImpl_prepareQ * [0][1][0] - error text - if none, empty string * [1][0 ... parameter_count - 1] - array with the parameters value, if the parameter is not being replace a NULL apears * otherwise the replaced value + * [2][0 ... parameter_count - 1] - array with the parameters' type-oids, + * if the parameter is being replaced, otherwise 0 */ JNIEXPORT jobjectArray JNICALL Java_org_postgresql_jdbc_ClientLogicImpl_replaceStatementParamsImpl(JNIEnv *env, jobject jdbc_cl_impl, jlong handle, jstring statement_name_java, jobjectArray parameters_java) { - JniResult result(env, 2); + JniResult result(env, 3); if (!result.init()) { return result.array; } - if (env == NULL || statement_name_java == NULL || parameters_java == NULL) { + if (!check_pre_param_valid(env, statement_name_java, parameters_java)) { return result.array; } + DriverError status(0, ""); JNIStringConvertor statement_name; if (!result.convert_string(&statement_name, statement_name_java, &status, @@ -539,18 +615,48 @@ JNIEXPORT jobjectArray JNICALL Java_org_postgresql_jdbc_ClientLogicImpl_replaceS delete[] string_convertors; return result.array; } - /* After parameters values replaces, place the new values on the target array */ + + // After parameters values replaces, place the new values on the target array jobjectArray parameters_array = env->NewObjectArray(parameter_count, result.object_class, NULL); const StatementData *stmnt_data = client_logic->get_statement_data(); - for (int i = 0; i < parameter_count && !convert_failure; ++i) { - if (strcmp(stmnt_data->params.adjusted_param_values[i], param_values[i]) != 0) { - place_string_in_array(env, stmnt_data->params.adjusted_param_values[i], i, parameters_array); + + int *parameters_types_array = NULL; + if (stmnt_data->params.adjusted_paramTypes != NULL) { + // set adjusted types array to return to JNI + parameters_types_array = new (std::nothrow) int[(size_t)parameter_count]; + if (parameters_types_array == NULL) { + delete[] param_values; + delete[] string_convertors; + status.set_error(JNI_SYSTEM_ERROR_CODES::UNEXPECTED_ERROR); + result.set_error_return(&status); + JNI_LOG_ERROR("new failed"); + return result.array; } } + + for (int i = 0; i < parameter_count; ++i) { + /* + * rawValue in INSERT could be NULL or empty string, + * we have recgonize it in preare_statement routine and make adjusted_param_values[idx] + * to the NULL value directly, therefore ignore it here just like the normal empty value. + */ + if (adjust_param_valid(stmnt_data->params.adjusted_param_values[i], param_values[i])) { + place_string_in_array(env, stmnt_data->params.adjusted_param_values[i], i, parameters_array); + } + /* return type oid for jdbc side distinguish the enc param */ + if (parameters_types_array != NULL) { + parameters_types_array[i] = (int)stmnt_data->params.adjusted_paramTypes[i]; + } + } + + /* [1][...] arryay object */ env->SetObjectArrayElement(result.array, 1, parameters_array); + /* [2][...] arryay object */ + place_ints_in_target_array(env, parameters_types_array, parameter_count, 2, result.array); delete[] param_values; delete[] string_convertors; client_logic->clean_stmnt(); + DELETE_ARRAY(parameters_types_array); result.set_no_error_retrun(); return result.array; } @@ -621,6 +727,26 @@ JNIEXPORT jobjectArray JNICALL Java_org_postgresql_jdbc_ClientLogicImpl_replaceE return result.array; } +/** + * reloads the client logic cache ONLY if the server timestamp is later than the client timestamp + * @param env java environment + * @param jdbc_cl_impl pointer back to the Java client logic impl instance + * @param handle client logic instance handle + */ +JNIEXPORT void JNICALL Java_org_postgresql_jdbc_ClientLogicImpl_reloadCacheIfNeededImpl (JNIEnv *env, + jobject jdbc_cl_impl, jlong handle){ + ClientLogicJNI *client_logic = NULL; + DriverError status(0, ""); + if (!ClientLogicJNI::from_handle(handle, &client_logic, &status) || client_logic == NULL){ + JNI_LOG_DEBUG("reloadCacheIfNeededImpl failed: %ld, error code: %d error: '%s'", + (long)handle, status.get_error_code(), + status.get_error_message() ? status.get_error_message() : ""); + return; + } + client_logic->set_jni_env_and_cl_impl(env, jdbc_cl_impl); + client_logic->reload_cache_if_needed(); +} + /* * Class: org_postgresql_jdbc_ClientLogicImpl * Method: destroy diff --git a/src/common/interfaces/libpq/jdbc/client_logic_jni/org_postgresql_jdbc_ClientLogicImpl.h b/src/common/interfaces/libpq/jdbc/client_logic_jni/org_postgresql_jdbc_ClientLogicImpl.h index a3a8c516e..3feb3154d 100644 --- a/src/common/interfaces/libpq/jdbc/client_logic_jni/org_postgresql_jdbc_ClientLogicImpl.h +++ b/src/common/interfaces/libpq/jdbc/client_logic_jni/org_postgresql_jdbc_ClientLogicImpl.h @@ -65,13 +65,21 @@ JNIEXPORT jobjectArray JNICALL Java_org_postgresql_jdbc_ClientLogicImpl_runQuery JNIEXPORT jobjectArray JNICALL Java_org_postgresql_jdbc_ClientLogicImpl_runClientLogicImpl(JNIEnv *, jobject, jlong, jstring, jint); +/* + * Class: org_postgresql_jdbc_ClientLogicImpl + * Method: getRecordIDsImpl + * Signature: (JLjava/lang/String;I)[Ljava/lang/Object; + */ +JNIEXPORT jobjectArray JNICALL Java_org_postgresql_jdbc_ClientLogicImpl_getRecordIDsImpl(JNIEnv *, jobject, jlong, + jstring, jint); + /* * Class: org_postgresql_jdbc_ClientLogicImpl * Method: runClientLogic4RecordImpl - * Signature: (JLjava/lang/String;IILjava/lang/String;)[Ljava/lang/Object; + * Signature: (JLjava/lang/String;[I)[Ljava/lang/Object; */ JNIEXPORT jobjectArray JNICALL Java_org_postgresql_jdbc_ClientLogicImpl_runClientLogic4RecordImpl(JNIEnv *, jobject, - jlong, jstring, jint, jint, jstring); + jlong, jstring, jintArray); /* * Class: org_postgresql_jdbc_ClientLogicImpl @@ -97,6 +105,13 @@ JNIEXPORT jobjectArray JNICALL Java_org_postgresql_jdbc_ClientLogicImpl_replaceS JNIEXPORT jobjectArray JNICALL Java_org_postgresql_jdbc_ClientLogicImpl_replaceErrorMessageImpl(JNIEnv *, jobject, jlong, jstring); +/* + * Class: Java_org_postgresql_jdbc_ClientLogicImpl_reloadCacheIfNeededImpl + * Method: reloadCache + * Signature: (J)V + */ +JNIEXPORT void JNICALL Java_org_postgresql_jdbc_ClientLogicImpl_reloadCacheIfNeededImpl (JNIEnv *, jobject, jlong); + /* * Class: org_postgresql_jdbc_ClientLogicImpl * Method: destroy diff --git a/src/common/pl/plpgsql/CMakeLists.txt b/src/common/pl/plpgsql/CMakeLists.txt index 46b3457c6..9f40290ee 100755 --- a/src/common/pl/plpgsql/CMakeLists.txt +++ b/src/common/pl/plpgsql/CMakeLists.txt @@ -31,6 +31,7 @@ set(TGT_plpgsql_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/pl_scanner.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/pl_sql_validator.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/pl_package.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/pl_global_package_runtime_cache.cpp ) set(plpgsql_INC diff --git a/src/common/pl/plpgsql/src/Makefile b/src/common/pl/plpgsql/src/Makefile index 867527da6..0b717585b 100755 --- a/src/common/pl/plpgsql/src/Makefile +++ b/src/common/pl/plpgsql/src/Makefile @@ -24,7 +24,7 @@ ifneq "$(MAKECMDGOALS)" "clean" endif endif endif -OBJS = pl_gram.o pl_handler.o pl_comp.o pl_package.o pl_exec.o pl_funcs.o pl_scanner.o plsql_packages.o pl_debugger.o pl_debugger_api.o pl_sql_validator.o +OBJS = pl_gram.o pl_handler.o pl_comp.o pl_package.o pl_exec.o pl_funcs.o pl_scanner.o plsql_packages.o pl_debugger.o pl_debugger_api.o pl_sql_validator.o pl_global_package_runtime_cache.o DATA = plpgsql.control plpgsql--1.0.sql plpgsql--unpackaged--1.0.sql diff --git a/src/common/pl/plpgsql/src/gram.y b/src/common/pl/plpgsql/src/gram.y index 63aaf8831..5f9c8d140 100755 --- a/src/common/pl/plpgsql/src/gram.y +++ b/src/common/pl/plpgsql/src/gram.y @@ -5,6 +5,7 @@ * * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -15,10 +16,15 @@ #include "utils/plpgsql.h" +#include "access/xact.h" +#include "catalog/dependency.h" +#include "catalog/gs_package.h" #include "catalog/namespace.h" #include "catalog/pg_proc.h" -#include "catalog/gs_package.h" +#include "catalog/pg_synonym.h" #include "catalog/pg_type.h" +#include "catalog/pg_type_fn.h" +#include "commands/typecmds.h" #include "funcapi.h" #include "nodes/makefuncs.h" #include "parser/analyze.h" @@ -31,13 +37,25 @@ #include "parser/scanner.h" #include "parser/scansup.h" #include "utils/builtins.h" +#include "utils/fmgroids.h" +#include "utils/guc.h" +#include "utils/lsyscache.h" #include "utils/memutils.h" -#include "utils/syscache.h" #include "utils/pl_package.h" +#include "utils/syscache.h" +#include "utils/typcache.h" #include +#define LENGTH_OF_BRACKETS_AND_DOT 4 +#define LENGTH_OF_QUOTATION_MARKS 2 +#define IS_ANONYMOUS_BLOCK \ + (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile != NULL && \ + strcmp(u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile->fn_signature, "inline_code_block") ==0) +#define IS_PACKAGE \ + (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package != NULL && \ + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile == NULL) /* Location tracking support --- simpler than bison's default */ #define YYLLOC_DEFAULT(Current, Rhs, N) \ do { \ @@ -62,23 +80,9 @@ record_stmt_label(char * label, PLpgSQL_stmt *stmt) (PLpgSQL_gotoLabel *)palloc0(sizeof(PLpgSQL_gotoLabel)); gl->label = label; gl->stmt = stmt; - u_sess->plsql_cxt.goto_labels = lappend(u_sess->plsql_cxt.goto_labels, (void *)gl); + u_sess->plsql_cxt.curr_compile_context->goto_labels = lappend(u_sess->plsql_cxt.curr_compile_context->goto_labels, (void *)gl); } -static void IsInPublicNamespace(char* varname) { - if (u_sess->plsql_cxt.plpgsql_curr_compile == NULL && - u_sess->plsql_cxt.plpgsql_curr_compile_package != NULL) { - PLpgSQL_package* pkg = u_sess->plsql_cxt.plpgsql_curr_compile_package; - if (plpgsql_ns_lookup(pkg->public_ns, true, varname, NULL, NULL, NULL) != NULL) { - ereport(ERROR, - (errmodule(MOD_PLSQL), errcode(ERRCODE_SYNTAX_ERROR), - errmsg("variable name \"%s\" already defined", varname), - errdetail("variable name already defined"), - errcause("variable name maybe defined in public variable"), - erraction("rename variable"))); - } - } -} /* * Bison doesn't allocate anything that needs to live across parser calls, * so we can easily have it use palloc instead of malloc. This prevents @@ -101,6 +105,7 @@ typedef struct union YYSTYPE; /* need forward reference for tok_is_keyword */ + static bool tok_is_keyword(int token, union YYSTYPE *lval, int kw_token, const char *kw_str); static void word_is_not_variable(PLword *word, int location); @@ -109,32 +114,38 @@ static void current_token_is_not_variable(int tok); static void yylex_inparam(StringInfoData* func_inparam, int *params, int * tok); -static void yylex_outparam(char** fieldnames, +static int yylex_outparam(char** fieldnames, int *varnos, int nfields, PLpgSQL_row **row, PLpgSQL_rec **rec, int *token, + bool is_push_back, bool overload = false); -static bool is_function(const char *name, bool is_assign, bool no_parenthesis); +static bool is_function(const char *name, bool is_assign, bool no_parenthesis, List* funcNameList = NULL); +static bool is_logfunction(ScanKeyword* keyword, bool no_parenthesis, const char *name); +static bool is_paren_friendly_datatype(TypeName *name); static void plpgsql_parser_funcname(const char *s, char **output, int numidents); static PLpgSQL_stmt *make_callfunc_stmt(const char *sqlstart, - int location, bool is_assign, bool eaten_first_token); -static PLpgSQL_stmt *make_callfunc_stmt_no_arg(const char *sqlstart, int location); -static PLpgSQL_expr *read_sql_construct5(int until, + int location, bool is_assign, bool eaten_first_token, List* funcNameList = NULL, int arrayFuncDno = -1); +static PLpgSQL_stmt *make_callfunc_stmt_no_arg(const char *sqlstart, int location, bool withsemicolon = false, List* funcNameList = NULL); +static PLpgSQL_expr *read_sql_construct6(int until, int until2, int until3, int until4, int until5, + int until6, const char *expected, const char *sqlstart, bool isexpression, bool valid_sql, bool trim, int *startloc, - int *endtoken); + int *endtoken, + DList* tokenstack = NULL, + bool issaveexpr = false); static PLpgSQL_expr *read_sql_construct(int until, int until2, @@ -164,15 +175,19 @@ static PLpgSQL_stmt *make_return_query_stmt(int location); static PLpgSQL_stmt *make_case(int location, PLpgSQL_expr *t_expr, List *case_when_list, List *else_stmts); static char *NameOfDatum(PLwdatum *wdatum); +static char *CopyNameOfDatum(PLwdatum *wdatum); static void check_assignable(PLpgSQL_datum *datum, int location); static void read_into_target(PLpgSQL_rec **rec, PLpgSQL_row **row, - bool *strict); + bool *strict, bool bulk_collect); static PLpgSQL_row *read_into_scalar_list(char *initial_name, PLpgSQL_datum *initial_datum, + int initial_dno, int initial_location); -static PLpgSQL_row *read_into_array_scalar_list(char *initial_name, +static PLpgSQL_row *read_into_array_table_scalar_list(char *initial_name, PLpgSQL_datum *initial_datum, - int initial_location); + int initial_dno, + int initial_location, + bool bulk_collect); static void read_using_target(List **in_expr, PLpgSQL_row **out_row); static PLpgSQL_row *read_into_placeholder_scalar_list(char *initial_name, @@ -180,6 +195,7 @@ static PLpgSQL_row *read_into_placeholder_scalar_list(char *initial_name, static PLpgSQL_row *make_scalar_list1(char *initial_name, PLpgSQL_datum *initial_datum, + int initial_dno, int lineno, int location); static void check_sql_expr(const char *stmt, int location, int leaderlen); @@ -191,16 +207,54 @@ static void check_labels(const char *start_label, static PLpgSQL_expr *read_cursor_args(PLpgSQL_var *cursor, int until, const char *expected); static List *read_raise_options(void); -static bool last_pragma; - +static int errstate = ERROR; +static bool pragma_autonomous; +static bool pragma_exception_init; static char* get_proc_str(int tok); static char* get_init_proc(int tok); +static char* get_attrname(int tok); +static AttrNumber get_assign_attrno(PLpgSQL_datum* target, char* attrname); static void raw_parse_package_function(char* proc_str); static void checkFuncName(List* funcname); +static void IsInPublicNamespace(char* varname); +static void SetErrorState(); +static void AddNamespaceIfNeed(int dno, char* ident); +static void AddNamespaceIfPkgVar(const char* ident); +bool plpgsql_is_token_keyword(int tok); +static void check_bulk_into_type(PLpgSQL_row* row); +static void check_table_index(PLpgSQL_datum* datum, char* funcName); +static PLpgSQL_type* build_type_from_record_var(int dno); +static PLpgSQL_type * build_array_type_from_elemtype(PLpgSQL_type *elem_type); +static PLpgSQL_var* plpgsql_build_nested_variable(PLpgSQL_var *nest_table, bool isconst, char* name, int lineno); +static void read_multiset(StringInfoData* ds, char* tableName1, Oid typeOid1); +static Oid get_table_type(PLpgSQL_datum* datum); +static void read_multiset(StringInfoData* ds, char* tableName1, Oid typeOid1); +static Oid get_table_type(PLpgSQL_datum* datum); +static Node* make_columnDef_from_attr(PLpgSQL_rec_attr* attr); +static TypeName* make_typename_from_datatype(PLpgSQL_type* datatype); +static Oid plpgsql_build_package_record_type(const char* typname, List* list, bool add2namespace); +static void plpgsql_build_package_array_type(const char* typname, Oid elemtypoid, char arraytype); +static void plpgsql_build_package_refcursor_type(const char* typname); +int plpgsql_yylex_single(void); +static void get_datum_tok_type(PLpgSQL_datum* target, int* tok_flag); +static bool copy_table_var_indents(char* tableName, char* idents, int tablevar_namelen); +static int push_back_token_stack(DList* tokenstack); +static int read_assignlist(bool is_push_back, int* token); +static void plpgsql_cast_reference_list(List* idents, StringInfoData* ds, bool isPkgVar); +static bool PkgVarNeedCast(List* idents); +static void CastArrayNameToArrayFunc(StringInfoData* ds, List* idents, bool needDot = true); +static Oid get_table_index_type(PLpgSQL_datum* datum); +static void SetErrorState(); +static void CheckDuplicateFunctionName(List* funcNameList); +#ifndef ENABLE_MULTIPLE_NODES +static PLpgSQL_type* build_type_from_cursor_var(PLpgSQL_var* var); +static bool checkAllAttrName(TupleDesc tupleDesc); +#endif +static Oid createCompositeTypeForCursor(PLpgSQL_var* var, PLpgSQL_expr* expr); %} %expect 0 -%name-prefix="plpgsql_yy" +%name-prefix "plpgsql_yy" %locations %union { @@ -227,6 +281,7 @@ static void checkFuncName(List* funcname); PLpgSQL_datum *scalar; PLpgSQL_rec *rec; PLpgSQL_row *row; + int dno; } forvariable; struct { @@ -255,8 +310,10 @@ static void checkFuncName(List* funcname); PLpgSQL_stmt_fetch *fetch; PLpgSQL_case_when *casewhen; PLpgSQL_rec_attr *recattr; + Node *plnode; } +%type assign_el %type decl_sect %type decl_varname %type decl_const decl_notnull exit_type @@ -264,20 +321,20 @@ static void checkFuncName(List* funcname); %type decl_datatype %type decl_collate %type decl_cursor_args -%type decl_cursor_arglist +%type decl_cursor_arglist assign_list %type decl_aliasitem %type expr_until_semi expr_until_rightbracket %type expr_until_then expr_until_loop opt_expr_until_when %type opt_exitcond -%type assign_var foreach_slice -%type cursor_variable +%type assign_var foreach_slice error_code cursor_variable %type decl_cursor_arg %type for_variable %type for_control forall_control %type any_identifier opt_block_label opt_label goto_block_label label_name spec_proc init_proc +%type opt_rollback_to opt_savepoint_name savepoint_name attr_name %type proc_sect proc_stmts stmt_elsifs stmt_else forall_body %type loop_body @@ -286,7 +343,7 @@ static void checkFuncName(List* funcname); %type stmt_return stmt_raise stmt_execsql %type stmt_dynexecute stmt_for stmt_perform stmt_getdiag %type stmt_open stmt_fetch stmt_move stmt_close stmt_null -%type stmt_commit stmt_rollback +%type stmt_commit stmt_rollback stmt_savepoint %type stmt_case stmt_foreach_a %type proc_exceptions @@ -302,15 +359,19 @@ static void checkFuncName(List* funcname); %type getdiag_list_item %type getdiag_item getdiag_target %type varray_var +%type table_var %type record_var %type expr_until_parenthesis %type opt_scrollable %type opt_fetch_direction +%type fetch_limit_expr +%type fetch_into_target %type unreserved_keyword %type record_attr_list %type record_attr +%type opt_save_exceptions /* @@ -332,15 +393,18 @@ static void checkFuncName(List* funcname); %token T_CWORD /* unrecognized composite identifier */ %token T_DATUM /* a VAR, ROW, REC, or RECFIELD variable */ %token T_PLACEHOLDER /* place holder , for IN/OUT parameters */ -%token T_VARRAY T_ARRAY_FIRST T_ARRAY_LAST T_ARRAY_COUNT T_ARRAY_EXTEND T_VARRAY_VAR T_RECORD +%token T_VARRAY T_ARRAY_FIRST T_ARRAY_LAST T_ARRAY_COUNT T_ARRAY_EXISTS T_ARRAY_PRIOR T_ARRAY_NEXT T_ARRAY_DELETE T_ARRAY_EXTEND T_ARRAY_TRIM T_VARRAY_VAR T_RECORD +%token T_TABLE T_TABLE_VAR T_PACKAGE_VARIABLE +%token T_PACKAGE_CURSOR_ISOPEN T_PACKAGE_CURSOR_FOUND T_PACKAGE_CURSOR_NOTFOUND T_PACKAGE_CURSOR_ROWCOUNT %token LESS_LESS %token GREATER_GREATER -%token T_REFCURSOR /* token for cursor type */ +%token T_REFCURSOR /* token for cursor type */ %token T_SQL_ISOPEN %token T_SQL_FOUND %token T_SQL_NOTFOUND %token T_SQL_ROWCOUNT +%token T_SQL_BULK_EXCEPTIONS %token T_CURSOR_ISOPEN %token T_CURSOR_FOUND %token T_CURSOR_NOTFOUND @@ -359,10 +423,12 @@ static void checkFuncName(List* funcname); %token K_AS %token K_BACKWARD %token K_BEGIN +%token K_BULK %token K_BY %token K_CASE %token K_CLOSE %token K_COLLATE +%token K_COLLECT %token K_COMMIT %token K_CONSTANT %token K_CONTINUE @@ -375,13 +441,16 @@ static void checkFuncName(List* funcname); %token K_DETAIL %token K_DETERMINISTIC %token K_DIAGNOSTICS +%token K_DISTINCT %token K_DUMP %token K_ELSE %token K_ELSIF %token K_END %token K_ERRCODE %token K_ERROR +%token K_EXCEPT %token K_EXCEPTION +%token K_EXCEPTIONS %token K_EXECUTE %token K_EXIT %token K_FETCH @@ -399,17 +468,22 @@ static void checkFuncName(List* funcname); %token K_IMMEDIATE %token K_INSTANTIATION %token K_IN +%token K_INDEX %token K_INFO %token K_INSERT +%token K_INTERSECT %token K_INTO %token K_IS %token K_LAST +%token K_LIMIT %token K_LOG %token K_LOOP %token K_MERGE %token K_MESSAGE %token K_MESSAGE_TEXT %token K_MOVE +%token K_MULTISET +%token K_MULTISETS %token K_NEXT %token K_NO %token K_NOT @@ -433,6 +507,7 @@ static void checkFuncName(List* funcname); %token K_RECORD %token K_REF %token K_RELATIVE +%token K_RELEASE %token K_RESULT_OID %token K_RETURN %token K_RETURNED_SQLSTATE @@ -440,6 +515,7 @@ static void checkFuncName(List* funcname); %token K_ROLLBACK %token K_ROWTYPE %token K_ROW_COUNT +%token K_SAVE %token K_SAVEPOINT %token K_SELECT %token K_SCROLL @@ -448,9 +524,11 @@ static void checkFuncName(List* funcname); %token K_STACKED %token K_STRICT %token K_SYS_REFCURSOR +%token K_TABLE %token K_THEN %token K_TO %token K_TYPE +%token K_UNION %token K_UPDATE %token K_USE_COLUMN %token K_USE_VARIABLE @@ -468,51 +546,54 @@ pl_body : pl_package_spec | pl_function | pl_package_init ; -pl_package_spec : K_PACKAGE decl_sect K_END +pl_package_spec : K_PACKAGE { SetErrorState(); } decl_sect K_END { int nDatums = 0; - if (u_sess->plsql_cxt.plpgsql_curr_compile!=NULL) { - nDatums = u_sess->plsql_cxt.plpgsql_nDatums; + if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile!=NULL) { + nDatums = u_sess->plsql_cxt.curr_compile_context->plpgsql_nDatums; } else { - nDatums = u_sess->plsql_cxt.plpgsql_pkg_nDatums; + nDatums = u_sess->plsql_cxt.curr_compile_context->plpgsql_pkg_nDatums; } for (int i = 0; i < nDatums; i++) { - u_sess->plsql_cxt.plpgsql_Datums[i]->ispkg = true; + u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[i]->ispkg = true; } PLpgSQL_nsitem* ns_cur = plpgsql_ns_top(); while (ns_cur != NULL) { - ns_cur->pkgname = u_sess->plsql_cxt.plpgsql_curr_compile_package->pkg_signature; + if (ns_cur != NULL && ns_cur->pkgname == NULL) { + ns_cur->pkgname = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->pkg_signature; + } ns_cur = ns_cur->prev; } - u_sess->plsql_cxt.plpgsql_curr_compile_package->n_initvars = $2.n_initvars; - u_sess->plsql_cxt.plpgsql_curr_compile_package->initvarnos = $2.initvarnos; + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->n_initvars = $3.n_initvars; + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->initvarnos = $3.initvarnos; } ; -pl_package_init : K_INSTANTIATION init_proc +pl_package_init : K_INSTANTIATION { SetErrorState(); } init_proc { - if (u_sess->plsql_cxt.plpgsql_curr_compile_package!=NULL) + if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package != NULL) { List* raw_parsetree_list = NULL; - raw_parsetree_list = raw_parser($2); + u_sess->plsql_cxt.plpgsql_yylloc = plpgsql_yylloc; + raw_parsetree_list = raw_parser($3); DoStmt* stmt; stmt = (DoStmt *)linitial(raw_parsetree_list); stmt->isExecuted = false; - if (u_sess->plsql_cxt.plpgsql_curr_compile_package->is_spec_compiling) { + if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->is_spec_compiling) { stmt->isSpec = true; } else { stmt->isSpec = false; } - List *proc_list = u_sess->plsql_cxt.plpgsql_curr_compile_package->proc_list; - u_sess->plsql_cxt.plpgsql_curr_compile_package->proc_list = lappend(proc_list,stmt); + List *proc_list = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->proc_list; + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->proc_list = lappend(proc_list,stmt); } else { yyerror("instantiation only use in package compile"); } } -pl_function : comp_options pl_block opt_semi +pl_function : comp_options { SetErrorState(); } pl_block opt_semi { - u_sess->plsql_cxt.plpgsql_parse_result = (PLpgSQL_stmt_block *) $2; + u_sess->plsql_cxt.curr_compile_context->plpgsql_parse_result = (PLpgSQL_stmt_block *) $3; } ; @@ -522,19 +603,19 @@ comp_options : comp_option : '#' K_OPTION K_DUMP { - u_sess->plsql_cxt.plpgsql_DumpExecTree = true; + u_sess->plsql_cxt.curr_compile_context->plpgsql_DumpExecTree = true; } | '#' K_VARIABLE_CONFLICT K_ERROR { - u_sess->plsql_cxt.plpgsql_curr_compile->resolve_option = PLPGSQL_RESOLVE_ERROR; + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile->resolve_option = PLPGSQL_RESOLVE_ERROR; } | '#' K_VARIABLE_CONFLICT K_USE_VARIABLE { - u_sess->plsql_cxt.plpgsql_curr_compile->resolve_option = PLPGSQL_RESOLVE_VARIABLE; + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile->resolve_option = PLPGSQL_RESOLVE_VARIABLE; } | '#' K_VARIABLE_CONFLICT K_USE_COLUMN { - u_sess->plsql_cxt.plpgsql_curr_compile->resolve_option = PLPGSQL_RESOLVE_COLUMN; + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile->resolve_option = PLPGSQL_RESOLVE_COLUMN; } ; @@ -572,7 +653,7 @@ pl_block : decl_sect K_BEGIN proc_sect exception_sect K_END opt_label decl_sect : opt_block_label { /* done with decls, so resume identifier lookup */ - u_sess->plsql_cxt.plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_NORMAL; + u_sess->plsql_cxt.curr_compile_context->plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_NORMAL; $$.label = $1; $$.n_initvars = 0; $$.initvarnos = NULL; @@ -580,20 +661,20 @@ decl_sect : opt_block_label } | opt_block_label decl_start { - u_sess->plsql_cxt.plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_NORMAL; + u_sess->plsql_cxt.curr_compile_context->plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_NORMAL; $$.label = $1; $$.n_initvars = 0; $$.initvarnos = NULL; $$.isAutonomous = false; } - | opt_block_label decl_start decl_stmts + | opt_block_label decl_start { SetErrorState(); } decl_stmts { - u_sess->plsql_cxt.plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_NORMAL; + u_sess->plsql_cxt.curr_compile_context->plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_NORMAL; $$.label = $1; /* Remember variables declared in decl_stmts */ $$.n_initvars = plpgsql_add_initdatums(&($$.initvarnos)); - $$.isAutonomous = last_pragma; - last_pragma = false; + $$.isAutonomous = pragma_autonomous; + pragma_autonomous = false; } ; @@ -601,12 +682,12 @@ decl_start : K_DECLARE { /* Forget any variables created before block */ plpgsql_add_initdatums(NULL); - last_pragma = false; + pragma_autonomous = false; /* * Disable scanner lookup of identifiers while * we process the decl_stmts */ - u_sess->plsql_cxt.plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_DECLARE; + u_sess->plsql_cxt.curr_compile_context->plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_DECLARE; } ; @@ -625,32 +706,67 @@ decl_stmt : decl_statement * Throw a helpful error if user tries to put block * label just before BEGIN, instead of before DECLARE. */ - ereport(ERROR, + const char* message = "block label must be placed before DECLARE, not after"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("block label must be placed before DECLARE, not after"), parser_errposition(@1))); } ; +as_is : K_IS + | K_AS /* A db */ + ; + decl_statement : decl_varname decl_const decl_datatype decl_collate decl_notnull decl_defval { PLpgSQL_variable *var; IsInPublicNamespace($1.name); + /* * If a collation is supplied, insert it into the * datatype. We assume decl_datatype always returns * a freshly built struct not shared with other * variables. */ + + if ($3 == NULL) { + // not allowed going on when plsql_show_all_error is on +#ifndef ENABLE_MULTIPLE_NODES + if (!u_sess->attr.attr_common.plsql_show_all_error) { + yyerror("missing data type declaration"); + } else { + const char* message = "missing data type declaration"; + InsertErrorMessage(message, @4); + yyerror("missing data type declaration"); + ereport(ERROR, + (errcode(ERRCODE_DATATYPE_MISMATCH), + errmsg("missing data type declaration"), + parser_errposition(@4))); + } +#else + yyerror("missing data type declaration"); +#endif + } else { + + if ($3 && $3->typoid == REFCURSOROID && IsOnlyCompilePackage()) + { + yyerror("not allow use ref cursor in package"); + } + if (OidIsValid($4)) { - if (!OidIsValid($3->collation)) - ereport(ERROR, + if (!OidIsValid($3->collation)) { + const char* message = "collations are not supported by type"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_DATATYPE_MISMATCH), errmsg("collations are not supported by type %s", format_type_be($3->typoid)), parser_errposition(@4))); + } $3->collation = $4; } @@ -660,35 +776,39 @@ decl_statement : decl_varname decl_const decl_datatype decl_collate decl_notnull { if (var->dtype == PLPGSQL_DTYPE_VAR) ((PLpgSQL_var *) var)->isconst = $2; - else - ereport(ERROR, + else { + const char* message = "row or record variable cannot be CONSTANT"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("row or record variable cannot be CONSTANT"), parser_errposition(@2))); + } } if ($5) { if (var->dtype == PLPGSQL_DTYPE_VAR) ((PLpgSQL_var *) var)->notnull = $5; - else - ereport(ERROR, + else { + const char* message = "row or record variable cannot be NOT NULL"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("row or record variable cannot be NOT NULL"), parser_errposition(@4))); - + } } if ($6 != NULL) { if (var->dtype == PLPGSQL_DTYPE_VAR) ((PLpgSQL_var *) var)->default_val = $6; - else - ereport(ERROR, - (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("default value for row or record variable is not supported"), - parser_errposition(@5))); + else { + ((PLpgSQL_row *) var)->default_val = $6; + } + } } - pfree_ext($1.name); + } | decl_varname K_ALIAS K_FOR decl_aliasitem ';' { @@ -722,19 +842,30 @@ decl_statement : decl_varname decl_const decl_datatype decl_collate decl_notnull else newp->cursor_explicit_argrow = $5->dno; newp->cursor_options = CURSOR_OPT_FAST_PLAN | $3; - + u_sess->plsql_cxt.plpgsql_yylloc = plpgsql_yylloc; + newp->datatype->cursorCompositeOid = IS_ANONYMOUS_BLOCK ? + InvalidOid : createCompositeTypeForCursor(newp, $7); pfree_ext($2.name); } - | K_TYPE decl_varname K_IS K_REF K_CURSOR ';' + | K_TYPE decl_varname as_is K_REF K_CURSOR ';' { IsInPublicNamespace($2.name); /* add name of cursor type to PLPGSQL_NSTYPE_REFCURSOR */ plpgsql_ns_additem(PLPGSQL_NSTYPE_REFCURSOR,0,$2.name); + if (IS_PACKAGE) { + plpgsql_build_package_refcursor_type($2.name); + } pfree_ext($2.name); + } | decl_varname T_REFCURSOR ';' { IsInPublicNamespace($1.name); + if (IsOnlyCompilePackage()) { + yyerror("not allow use ref cursor in package"); + } + AddNamespaceIfNeed(-1, $2.ident); + plpgsql_build_variable( $1.name, $1.lineno, @@ -742,7 +873,6 @@ decl_statement : decl_varname decl_const decl_datatype decl_collate decl_notnull true); pfree_ext($1.name); } - | decl_varname K_SYS_REFCURSOR ';' { IsInPublicNamespace($1.name); @@ -761,78 +891,513 @@ decl_statement : decl_varname decl_const decl_datatype decl_collate decl_notnull * "type varrayname is varray(ICONST) of datatype;" * and "varname varrayname := varrayname()" */ - | K_TYPE decl_varname K_IS K_VARRAY '(' ICONST ')' K_OF decl_datatype ';' + | K_TYPE decl_varname as_is K_VARRAY '(' ICONST ')' K_OF decl_datatype ';' { IsInPublicNamespace($2.name); + + $9->collectionType = PLPGSQL_COLLECTION_ARRAY; + $9->tableOfIndexType = InvalidOid; + + if($9->typinput.fn_oid == F_ARRAY_IN) { + ereport(errstate, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmodule(MOD_PLSQL), + errmsg("array or table type nested by array type is not supported yet."), + errdetail("Define array type \"%s\" of array or table type is not supported yet.", $2.name), + errcause("feature not supported"), + erraction("check define of array type"))); + u_sess->plsql_cxt.have_error = true; + } + if($9->typoid == REFCURSOROID) { + ereport(errstate, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmodule(MOD_PLSQL), + errmsg("ref cursor type nested by array is not supported yet."), + errdetail("Define array type \"%s\" of ref cursor type is not supported yet.", $2.name), + errcause("feature not supported"), + erraction("check define of array type"))); + u_sess->plsql_cxt.have_error = true; + } + plpgsql_build_varrayType($2.name, $2.lineno, $9, true); + if (IS_PACKAGE) { + plpgsql_build_package_array_type($2.name, $9->typoid, TYPCATEGORY_ARRAY); + } pfree_ext($2.name); } - | decl_varname varray_var decl_defval + | K_TYPE decl_varname as_is K_VARRAY '(' ICONST ')' K_OF record_var ';' + { +#ifdef ENABLE_MULTIPLE_NODES + ereport(errstate, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmodule(MOD_PLSQL), + errmsg("array or record type nesting is not supported in distributed database yet."), + errdetail("Define array type \"%s\" of record is not supported in distributed database yet.", $2.name), + errcause("feature not supported"), + erraction("check define of array type"))); + u_sess->plsql_cxt.have_error = true; +#endif + if (IS_ANONYMOUS_BLOCK) { + ereport(errstate, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmodule(MOD_PLSQL), + errmsg("array or record type nesting is not supported in anonymous block yet."), + errdetail("Define array type \"%s\" of record is not supported yet.", $2.name), + errcause("feature not supported"), + erraction("check define of array type"))); + u_sess->plsql_cxt.have_error = true; + } + IsInPublicNamespace($2.name); + + PLpgSQL_type *newp = NULL; + newp = build_type_from_record_var($9); + newp->collectionType = PLPGSQL_COLLECTION_ARRAY; + newp->tableOfIndexType = InvalidOid; + plpgsql_build_varrayType($2.name, $2.lineno, newp, true); + if (IS_PACKAGE) { + plpgsql_build_package_array_type($2.name, newp->typoid, TYPCATEGORY_ARRAY); + } + pfree_ext($2.name); + } + + | K_TYPE decl_varname as_is K_VARRAY '(' ICONST ')' K_OF varray_var ';' + { + ereport(errstate, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmodule(MOD_PLSQL), + errmsg("array type nested by array is not supported yet."), + errdetail("Define array type \"%s\" of array is not supported yet.", $2.name), + errcause("feature not supported"), + erraction("check define of array type"))); + u_sess->plsql_cxt.have_error = true; + } + + | K_TYPE decl_varname as_is K_VARRAY '(' ICONST ')' K_OF table_var ';' + { + ereport(errstate, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmodule(MOD_PLSQL), + errmsg("table type nested by array is not supported yet."), + errdetail("Define array type \"%s\" of table type is not supported yet.", $2.name), + errcause("feature not supported"), + erraction("check define of array type"))); + u_sess->plsql_cxt.have_error = true; + } + + | K_TYPE decl_varname as_is K_VARRAY '(' ICONST ')' K_OF T_REFCURSOR ';' + { + ereport(errstate, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmodule(MOD_PLSQL), + errmsg("ref cursor type nested by array is not supported yet."), + errdetail("Define array type \"%s\" of ref cursor type is not supported yet.", $2.name), + errcause("feature not supported"), + erraction("check define of array type"))); + u_sess->plsql_cxt.have_error = true; + } + + | decl_varname decl_const varray_var decl_defval { IsInPublicNamespace($1.name); - char *type_name; - errno_t ret; - PLpgSQL_type * var_type = ((PLpgSQL_var *)u_sess->plsql_cxt.plpgsql_Datums[$2])->datatype; - PLpgSQL_var *newp; - int len = strlen(var_type->typname) + 3; - type_name = (char *)palloc0(len); - ret = strcpy_s(type_name, len, var_type->typname); - securec_check(ret, "", ""); - ret = strcat_s(type_name, len, "[]"); - securec_check(ret, "", ""); - var_type = parse_datatype(type_name, yylloc); - newp = (PLpgSQL_var *)plpgsql_build_variable($1.name, $1.lineno,var_type,true); - if (NULL == newp) - ereport(ERROR, + PLpgSQL_type *var_type = ((PLpgSQL_var *)u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[$3])->datatype; + PLpgSQL_var *newp; + PLpgSQL_type *new_var_type; + + new_var_type = build_array_type_from_elemtype(var_type); + new_var_type->collectionType = var_type->collectionType; + new_var_type->tableOfIndexType = var_type->tableOfIndexType; + + newp = (PLpgSQL_var *)plpgsql_build_variable($1.name, $1.lineno, new_var_type, true); + newp->isconst = $2; + newp->default_val = $4; + + if (NULL == newp) { + const char* message = "build variable failed"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, + (errcode(ERRCODE_UNEXPECTED_NULL_VALUE), + errmsg("build variable failed"))); + u_sess->plsql_cxt.have_error = true; + } + pfree_ext($1.name); + } + | K_TYPE decl_varname as_is K_TABLE K_OF decl_datatype decl_notnull ';' + { + IsInPublicNamespace($2.name); + + $6->collectionType = PLPGSQL_COLLECTION_TABLE; + $6->tableOfIndexType = InvalidOid; + if($6->typinput.fn_oid == F_ARRAY_IN) { + ereport(errstate, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmodule(MOD_PLSQL), + errmsg("array or table type nested by table type is not supported yet."), + errdetail("Define table type \"%s\" of array or table type is not supported yet.", $2.name), + errcause("feature not supported"), + erraction("check define of table type"))); + u_sess->plsql_cxt.have_error = true; + } + if($6->typoid == REFCURSOROID) { + ereport(errstate, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmodule(MOD_PLSQL), + errmsg("ref cursor type nested by table type is not supported yet."), + errdetail("Define table type \"%s\" of ref cursor type is not supported yet.", $2.name), + errcause("feature not supported"), + erraction("check define of table type"))); + u_sess->plsql_cxt.have_error = true; + } + plpgsql_build_tableType($2.name, $2.lineno, $6, true); + if (IS_PACKAGE) { + plpgsql_build_package_array_type($2.name, $6->typoid, TYPCATEGORY_TABLEOF); + } + pfree_ext($2.name); + } + | K_TYPE decl_varname as_is K_TABLE K_OF table_var decl_notnull ';' + { + IsInPublicNamespace($2.name); + + PLpgSQL_type *var_type = ((PLpgSQL_var *)u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[$6])->datatype; + PLpgSQL_type *nest_type = plpgsql_build_nested_datatype(); + nest_type->tableOfIndexType = INT4OID; + nest_type->collectionType = PLPGSQL_COLLECTION_TABLE; + PLpgSQL_var* var = (PLpgSQL_var*)plpgsql_build_tableType($2.name, $2.lineno, nest_type, true); + /* nested table type */ + var->nest_table = (PLpgSQL_var *)u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[$6]; + if (IS_PACKAGE) { + plpgsql_build_package_array_type($2.name, var_type->typoid, TYPCATEGORY_TABLEOF); + } + pfree_ext($2.name); + } + | K_TYPE decl_varname as_is K_TABLE K_OF record_var decl_notnull ';' + { +#ifdef ENABLE_MULTIPLE_NODES + ereport(errstate, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmodule(MOD_PLSQL), + errmsg("array or record type nesting is not supported in distributed database yet."), + errdetail("Define table type \"%s\" of record is not supported in distributed database yet.", $2.name), + errcause("feature not supported"), + erraction("check define of table type"))); + u_sess->plsql_cxt.have_error = true; +#endif + if (IS_ANONYMOUS_BLOCK) { + ereport(errstate, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmodule(MOD_PLSQL), + errmsg("array or record type nesting is not supported in anonymous block yet."), + errdetail("Define table type \"%s\" of record is not supported yet.", $2.name), + errcause("feature not supported"), + erraction("check define of table type"))); + u_sess->plsql_cxt.have_error = true; + } + + IsInPublicNamespace($2.name); + + PLpgSQL_type *newp = NULL; + newp = build_type_from_record_var($6); + newp->collectionType = PLPGSQL_COLLECTION_TABLE; + newp->tableOfIndexType = InvalidOid; + plpgsql_build_tableType($2.name, $2.lineno, newp, true); + if (IS_PACKAGE) { + plpgsql_build_package_array_type($2.name, newp->typoid, TYPCATEGORY_TABLEOF); + } + pfree_ext($2.name); + } + + | K_TYPE decl_varname as_is K_TABLE K_OF varray_var decl_notnull ';' + { + ereport(errstate, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmodule(MOD_PLSQL), + errmsg("array type nested by table type is not supported yet."), + errdetail("Define table type \"%s\" of array is not supported yet.", $2.name), + errcause("feature not supported"), + erraction("check define of table type"))); + u_sess->plsql_cxt.have_error = true; + } + + | K_TYPE decl_varname as_is K_TABLE K_OF T_REFCURSOR decl_notnull ';' + { + ereport(errstate, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmodule(MOD_PLSQL), + errmsg("ref cursor type nested by table type is not supported yet."), + errdetail("Define table type \"%s\" of ref cursor is not supported yet.", $2.name), + errcause("feature not supported"), + erraction("check define of table type"))); + u_sess->plsql_cxt.have_error = true; + } + + | K_TYPE decl_varname as_is K_TABLE K_OF varray_var decl_notnull K_INDEX K_BY decl_datatype ';' + { + ereport(errstate, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmodule(MOD_PLSQL), + errmsg("array type nested by table type is not supported yet."), + errdetail("Define table type \"%s\" of array is not supported yet.", $2.name), + errcause("feature not supported"), + erraction("check define of table type"))); + u_sess->plsql_cxt.have_error = true; + } + + | K_TYPE decl_varname as_is K_TABLE K_OF T_REFCURSOR decl_notnull K_INDEX K_BY decl_datatype ';' + { + ereport(errstate, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmodule(MOD_PLSQL), + errmsg("ref cursor type nested by table type is not supported yet."), + errdetail("Define table type \"%s\" of ref cursor type is not supported yet.", $2.name), + errcause("feature not supported"), + erraction("check define of table type"))); + u_sess->plsql_cxt.have_error = true; + } + + | K_TYPE decl_varname as_is K_TABLE K_OF decl_datatype decl_notnull K_INDEX K_BY decl_datatype ';' + { + IsInPublicNamespace($2.name); + + $6->collectionType = PLPGSQL_COLLECTION_TABLE; + if ($10->typoid != VARCHAROID && $10->typoid != INT4OID) { + const char* message = "unsupported table index type"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, + (errcode(ERRCODE_UNEXPECTED_NULL_VALUE), + errmsg("unsupported table index type"))); + u_sess->plsql_cxt.have_error = true; + } + $6->tableOfIndexType = $10->typoid; + if($6->typinput.fn_oid == F_ARRAY_IN) { + ereport(errstate, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmodule(MOD_PLSQL), + errmsg("array or table type nested by table type is not supported yet."), + errdetail("Define table type \"%s\" of array or table type is not supported yet.", $2.name), + errcause("feature not supported"), + erraction("check define of table type"))); + u_sess->plsql_cxt.have_error = true; + } + if($6->typoid == REFCURSOROID) { + ereport(errstate, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmodule(MOD_PLSQL), + errmsg("ref cursor type nested by table type is not supported yet."), + errdetail("Define table type \"%s\" of ref cursor type is not supported yet.", $2.name), + errcause("feature not supported"), + erraction("check define of table type"))); + u_sess->plsql_cxt.have_error = true; + } + plpgsql_build_tableType($2.name, $2.lineno, $6, true); + if (IS_PACKAGE) { + if ($10->typoid == VARCHAROID) { + plpgsql_build_package_array_type($2.name, $6->typoid, TYPCATEGORY_TABLEOF_VARCHAR); + } else { + plpgsql_build_package_array_type($2.name, $6->typoid, TYPTYPE_TABLEOF); + } + } + pfree_ext($2.name); + } + | K_TYPE decl_varname as_is K_TABLE K_OF table_var decl_notnull K_INDEX K_BY decl_datatype ';' + { + IsInPublicNamespace($2.name); + + if ($10->typoid != VARCHAROID && $10->typoid != INT4OID) { + const char* message = "unsupported table index type"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, + (errcode(ERRCODE_UNEXPECTED_NULL_VALUE), + errmsg("unsupported table index type"))); + u_sess->plsql_cxt.have_error = true; + } + PLpgSQL_type *var_type = ((PLpgSQL_var *)u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[$6])->datatype; + var_type->tableOfIndexType = $10->typoid; + PLpgSQL_type *nest_type = plpgsql_build_nested_datatype(); + nest_type->tableOfIndexType = $10->typoid; + nest_type->collectionType = PLPGSQL_COLLECTION_TABLE; + PLpgSQL_var* var = (PLpgSQL_var*)plpgsql_build_tableType($2.name, $2.lineno, nest_type, true); + /* nested table type */ + var->nest_table = (PLpgSQL_var *)u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[$6]; + if (IS_PACKAGE) { + if ($10->typoid == VARCHAROID) { + plpgsql_build_package_array_type($2.name, $10->typoid, TYPCATEGORY_TABLEOF_VARCHAR); + } else { + plpgsql_build_package_array_type($2.name, $10->typoid, TYPTYPE_TABLEOF); + } + } + pfree_ext($2.name); + } + | K_TYPE decl_varname as_is K_TABLE K_OF record_var decl_notnull K_INDEX K_BY decl_datatype ';' + { +#ifdef ENABLE_MULTIPLE_NODES + ereport(errstate, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmodule(MOD_PLSQL), + errmsg("array or record type nesting is not supported in distributed database yet."), + errdetail("Define table type \"%s\" of record is not supported in distributed database yet.", $2.name), + errcause("feature not supported"), + erraction("check define of table type"))); + u_sess->plsql_cxt.have_error = true; +#endif + if (IS_ANONYMOUS_BLOCK) { + ereport(errstate, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmodule(MOD_PLSQL), + errmsg("array or record type nesting is not supported in anonymous block yet."), + errdetail("Define table type \"%s\" of record is not supported yet.", $2.name), + errcause("feature not supported"), + erraction("check define of table type"))); + u_sess->plsql_cxt.have_error = true; + } + + IsInPublicNamespace($2.name); + + PLpgSQL_type *newp = NULL; + newp = build_type_from_record_var($6); + newp->collectionType = PLPGSQL_COLLECTION_TABLE; + + if ($10->typoid != VARCHAROID && $10->typoid != INT4OID) { + ereport(errstate, + (errcode(ERRCODE_UNEXPECTED_NULL_VALUE), + errmsg("unsupported table index type"))); + u_sess->plsql_cxt.have_error = true; + } + newp->tableOfIndexType = $10->typoid; + plpgsql_build_tableType($2.name, $2.lineno, newp, true); + if (IS_PACKAGE) { + if ($10->typoid == VARCHAROID) { + plpgsql_build_package_array_type($2.name, $10->typoid, TYPCATEGORY_TABLEOF_VARCHAR); + } else { + plpgsql_build_package_array_type($2.name, $10->typoid, TYPTYPE_TABLEOF); + } + } + pfree_ext($2.name); + } + + | decl_varname decl_const table_var decl_defval + { + IsInPublicNamespace($1.name); + + PLpgSQL_type *var_type = ((PLpgSQL_var *)u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[$3])->datatype; + PLpgSQL_var *table_type = (PLpgSQL_var *)u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[$3]; + + PLpgSQL_var *newp; + PLpgSQL_type *new_var_type; + new_var_type = build_array_type_from_elemtype(var_type); + + new_var_type->collectionType = var_type->collectionType; + new_var_type->tableOfIndexType = var_type->tableOfIndexType; + + newp = (PLpgSQL_var *)plpgsql_build_variable($1.name, $1.lineno, new_var_type, true); + if (NULL == newp) { + const char* message = "build variable failed"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_UNEXPECTED_NULL_VALUE), errmsg("build variable failed"))); + u_sess->plsql_cxt.have_error = true; + } + newp->isconst = $2; + newp->default_val = $4; + + if (table_type->nest_table != NULL) { + newp->nest_table = plpgsql_build_nested_variable(table_type->nest_table, $2, $1.name, $1.lineno); + } pfree_ext($1.name); - pfree_ext(type_name); } - | K_TYPE decl_varname K_IS K_RECORD '(' record_attr_list ')' ';' + | K_TYPE decl_varname as_is K_RECORD '(' record_attr_list ')' ';' { IsInPublicNamespace($2.name); PLpgSQL_rec_type *newp = NULL; newp = plpgsql_build_rec_type($2.name, $2.lineno, $6, true); - if (NULL == newp) - ereport(ERROR, + if (NULL == newp) { + const char* message = "build variable failed"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_UNEXPECTED_NULL_VALUE), errmsg("build variable failed"))); + u_sess->plsql_cxt.have_error = true; + } + if (IS_PACKAGE) { + newp->typoid = plpgsql_build_package_record_type($2.name, $6, true); + } pfree_ext($2.name); } - | decl_varname record_var ';' + | decl_varname record_var decl_defval { IsInPublicNamespace($1.name); + PLpgSQL_var *newp = NULL; - PLpgSQL_type * var_type = (PLpgSQL_type *)u_sess->plsql_cxt.plpgsql_Datums[$2]; + PLpgSQL_type * var_type = (PLpgSQL_type *)u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[$2]; newp = (PLpgSQL_var *)plpgsql_build_variable($1.name,$1.lineno, var_type,true); - if (NULL == newp) - ereport(ERROR, + if (NULL == newp) { + const char* message = "build variable failed"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_UNEXPECTED_NULL_VALUE), errmsg("build variable failed"))); + u_sess->plsql_cxt.have_error = true; + } + if ($3 != NULL) { + ((PLpgSQL_row *) newp)->default_val = $3; + } pfree_ext($1.name); } | K_FUNCTION {u_sess->parser_cxt.is_procedure=false;} spec_proc { + u_sess->plsql_cxt.procedure_start_line = GetLineNumber(u_sess->plsql_cxt.curr_compile_context->core_yy->scanbuf, @1); + u_sess->plsql_cxt.plpgsql_yylloc = @1; + u_sess->plsql_cxt.isCreateFunction = true; raw_parse_package_function($3); + u_sess->plsql_cxt.isCreateFunction = false; + u_sess->plsql_cxt.procedure_start_line = 0; + u_sess->plsql_cxt.plpgsql_yylloc = 0; } | K_PROCEDURE {u_sess->parser_cxt.is_procedure=true;} spec_proc { + u_sess->plsql_cxt.procedure_start_line = GetLineNumber(u_sess->plsql_cxt.curr_compile_context->core_yy->scanbuf, @1); + u_sess->plsql_cxt.plpgsql_yylloc = plpgsql_yylloc; + u_sess->plsql_cxt.isCreateFunction = true; raw_parse_package_function($3); + u_sess->plsql_cxt.isCreateFunction = false; + u_sess->plsql_cxt.procedure_start_line = 0; + u_sess->plsql_cxt.plpgsql_yylloc = 0; } | K_PRAGMA any_identifier ';' - { + { if (pg_strcasecmp($2, "autonomous_transaction") == 0) - last_pragma = true; - else - elog(ERROR, "invalid pragma"); - } + pragma_autonomous = true; + else { + elog(errstate, "invalid pragma"); + u_sess->plsql_cxt.have_error = true; + } + } + | K_PRAGMA any_identifier '(' any_identifier ',' error_code ')' ';' + { + if (pg_strcasecmp($2, "exception_init") == 0) { + pragma_exception_init = true; + if (u_sess->attr.attr_sql.sql_compatibility == A_FORMAT) { + plpgsql_set_variable($4, $6); + } + } else { + elog(errstate, "invalid pragma."); + u_sess->plsql_cxt.have_error = true; + } + } ; +error_code : ICONST + { + $$ = $1; + } + | '-' ICONST + { + $$ = -$2; + } + spec_proc : { $$ = get_proc_str(yychar); @@ -856,13 +1421,23 @@ record_attr_list : record_attr } ; -record_attr : decl_varname decl_datatype decl_notnull decl_rec_defval +record_attr : attr_name decl_datatype decl_notnull decl_rec_defval { PLpgSQL_rec_attr *attr = NULL; + if($2->typoid == REFCURSOROID) { + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmodule(MOD_PLSQL), + errmsg("ref cursor type nested by record is not supported yet."), + errdetail("Define record type of ref cursor type is not supported yet."), + errcause("feature not supported"), + erraction("check define of record type"))); + u_sess->plsql_cxt.have_error = true; + } attr = (PLpgSQL_rec_attr*)palloc0(sizeof(PLpgSQL_rec_attr)); - attr->attrname = $1.name; + attr->attrname = $1; attr->type = $2; attr->notnull = $3; @@ -870,21 +1445,167 @@ record_attr : decl_varname decl_datatype decl_notnull decl_rec_defval { if (attr->type->ttype == PLPGSQL_TTYPE_SCALAR) attr->defaultvalue = $4; - else - ereport(ERROR, + else { + const char* message = "default value for row or record variable is not supported"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("default value for row or record variable is not supported"), parser_errposition(@3))); + } } - if ($3 && $4 == NULL) - ereport(ERROR, + if ($3 && $4 == NULL) { + const char* message = "variables must have default value"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("variables declared as NOT NULL must have " "a default value."))); + } $$ = attr; } + | attr_name record_var decl_notnull decl_rec_defval + { +#ifdef ENABLE_MULTIPLE_NODES + ereport(errstate, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmodule(MOD_PLSQL), + errmsg("array or record type nesting is not supported in distributed database yet."), + errdetail("Define a record type of record is not supported in distributed database yet."), + errcause("feature not supported"), + erraction("check define of record type"))); + u_sess->plsql_cxt.have_error = true; +#endif + if (IS_ANONYMOUS_BLOCK) { + ereport(errstate, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmodule(MOD_PLSQL), + errmsg("array or record type nesting is not supported in anonymous block yet."), + errdetail("Define a record type of record is not supported yet."), + errcause("feature not supported"), + erraction("check define of record type"))); + u_sess->plsql_cxt.have_error = true; + } + + PLpgSQL_rec_attr *attr = NULL; + + attr = (PLpgSQL_rec_attr*)palloc0(sizeof(PLpgSQL_rec_attr)); + + attr->attrname = $1; + attr->type = build_type_from_record_var($2); + + attr->notnull = $3; + if ($4 != NULL) + { + if (attr->type->ttype == PLPGSQL_TTYPE_SCALAR) + attr->defaultvalue = $4; + else { + ereport(errstate, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("default value for row or record variable is not supported"), + parser_errposition(@3))); + u_sess->plsql_cxt.have_error = true; + } + } + + if ($3 && $4 == NULL) { + ereport(errstate, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("variables declared as NOT NULL must have " + "a default value."))); + u_sess->plsql_cxt.have_error = true; + } + + $$ = attr; + } + | attr_name T_REFCURSOR decl_notnull decl_rec_defval + { + ereport(errstate, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmodule(MOD_PLSQL), + errmsg("ref cursor type nested by record is not supported yet."), + errdetail("Define a record type of ref cursor type is not supported yet."), + errcause("feature not supported"), + erraction("check define of record type"))); + u_sess->plsql_cxt.have_error = true; + } + | attr_name varray_var decl_notnull decl_rec_defval + { + PLpgSQL_rec_attr *attr = NULL; + + attr = (PLpgSQL_rec_attr*)palloc0(sizeof(PLpgSQL_rec_attr)); + + attr->attrname = $1; + + PLpgSQL_type *var_type = ((PLpgSQL_var *)u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[$2])->datatype; + PLpgSQL_type *new_var_type = build_array_type_from_elemtype(var_type); + new_var_type->collectionType = var_type->collectionType; + new_var_type->tableOfIndexType = var_type->tableOfIndexType; + attr->type = new_var_type; + attr->notnull = $3; + if ($4 != NULL) + { + if (attr->type->ttype == PLPGSQL_TTYPE_SCALAR) + attr->defaultvalue = $4; + else { + ereport(errstate, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("default value for row or record variable is not supported"), + parser_errposition(@3))); + u_sess->plsql_cxt.have_error = true; + } + } + + if ($3 && $4 == NULL) { + ereport(errstate, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("variables declared as NOT NULL must have " + "a default value."))); + u_sess->plsql_cxt.have_error = true; + } + + $$ = attr; + } + | attr_name table_var decl_notnull decl_rec_defval + { + PLpgSQL_rec_attr *attr = NULL; + + attr = (PLpgSQL_rec_attr*)palloc0(sizeof(PLpgSQL_rec_attr)); + + attr->attrname = $1; + + PLpgSQL_type *var_type = ((PLpgSQL_var *)u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[$2])->datatype; + PLpgSQL_type *new_var_type = build_array_type_from_elemtype(var_type); + new_var_type->collectionType = var_type->collectionType; + new_var_type->tableOfIndexType = var_type->tableOfIndexType; + attr->type = new_var_type; + attr->notnull = $3; + if ($4 != NULL) + { + if (attr->type->ttype == PLPGSQL_TTYPE_SCALAR) + attr->defaultvalue = $4; + else { + ereport(errstate, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("default value for row or record variable is not supported"), + parser_errposition(@3))); + u_sess->plsql_cxt.have_error = true; + } + } + + if ($3 && $4 == NULL) { + ereport(errstate, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("variables declared as NOT NULL must have " + "a default value."))); + u_sess->plsql_cxt.have_error = true; + } + + $$ = attr; + } + ; opt_scrollable : @@ -932,7 +1653,7 @@ decl_cursor_args : newp->fieldnames = (char **)palloc(newp->nfields * sizeof(char *)); newp->varnos = (int *)palloc(newp->nfields * sizeof(int)); newp->isImplicit = true; - + newp->addNamespace = false; i = 0; foreach (l, $2) { @@ -981,12 +1702,15 @@ decl_aliasitem : T_WORD nsi = plpgsql_ns_lookup(plpgsql_ns_top(), false, $1.ident, NULL, NULL, NULL); - if (nsi == NULL) - ereport(ERROR, + if (nsi == NULL) { + const char* message = "variables not exists"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_UNDEFINED_OBJECT), errmsg("variable \"%s\" does not exist", $1.ident), parser_errposition(@1))); + } $$ = nsi; } | T_CWORD @@ -1011,12 +1735,15 @@ decl_aliasitem : T_WORD int yylloc_bak = yylloc; int isPkg =plpgsql_pkg_adddatum2ns($1.idents); yylloc = yylloc_bak; - if (isPkg < 0) - ereport(ERROR, + if (isPkg < 0) { + const char* message = "variables not exists"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_UNDEFINED_OBJECT), errmsg("variable \"%s\" does not exist", NameListToString($1.idents)), parser_errposition(@1))); + } } $$ = nsi; } @@ -1051,6 +1778,72 @@ decl_varname : T_WORD NULL) != NULL) yyerror("duplicate declaration"); } + | T_VARRAY + { + $$.name = pstrdup($1.ident); + $$.lineno = plpgsql_location_to_lineno(@1); + if (plpgsql_ns_lookup(plpgsql_ns_top(), true, + $1.ident, NULL, NULL, + NULL) != NULL) + yyerror("duplicate declaration"); + + } + | T_RECORD + { + $$.name = pstrdup($1.ident); + $$.lineno = plpgsql_location_to_lineno(@1); + if (plpgsql_ns_lookup(plpgsql_ns_top(), true, + $1.ident, NULL, NULL, + NULL) != NULL) + yyerror("duplicate declaration"); + + } + | T_TABLE + { + $$.name = pstrdup($1.ident); + $$.lineno = plpgsql_location_to_lineno(@1); + if (plpgsql_ns_lookup(plpgsql_ns_top(), true, + $1.ident, NULL, NULL, + NULL) != NULL) + yyerror("duplicate declaration"); + + } + | T_REFCURSOR + { + $$.name = pstrdup($1.ident); + $$.lineno = plpgsql_location_to_lineno(@1); + if (plpgsql_ns_lookup(plpgsql_ns_top(), true, + $1.ident, NULL, NULL, + NULL) != NULL) + yyerror("duplicate declaration"); + + } + | T_TABLE_VAR + { + if ($1.idents != NIL) { + yyerror("syntax error"); + } + $$.name = pstrdup($1.ident); + $$.lineno = plpgsql_location_to_lineno(@1); + if (plpgsql_ns_lookup(plpgsql_ns_top(), true, + $1.ident, NULL, NULL, + NULL) != NULL) + yyerror("duplicate declaration"); + + } + | T_VARRAY_VAR + { + if ($1.idents != NIL || strcmp($1.ident, "bulk_exceptions") == 0) { + yyerror("syntax error"); + } + $$.name = pstrdup($1.ident); + $$.lineno = plpgsql_location_to_lineno(@1); + if (plpgsql_ns_lookup(plpgsql_ns_top(), true, + $1.ident, NULL, NULL, + NULL) != NULL) + yyerror("duplicate declaration"); + + } ; decl_const : @@ -1065,6 +1858,7 @@ decl_datatype : * If there's a lookahead token, read_datatype * should consume it. */ + u_sess->plsql_cxt.plpgsql_yylloc = plpgsql_yylloc; $$ = read_datatype(yychar); yyclearin; } @@ -1161,6 +1955,8 @@ proc_stmt : pl_block ';' { $$ = $1; } | label_stmts { $$ = $1; } + | stmt_savepoint + { $$ = $1; } ; @@ -1170,7 +1966,7 @@ goto_block_label : } | LESS_LESS any_identifier GREATER_GREATER { - plpgsql_ns_push($2); + plpgsql_ns_additem(PLPGSQL_NSTYPE_GOTO_LABEL, 0, ""); $$ = $2; } ; @@ -1249,15 +2045,7 @@ stmt_assign : assign_var assign_operator expr_until_semi } | T_CWORD assign_operator expr_until_semi { - List* wholeName = $1.idents; - int dno = plpgsql_pkg_add_unknown_var_to_namespace(wholeName); - PLpgSQL_stmt_assign *newp; - newp = (PLpgSQL_stmt_assign *)palloc0(sizeof(PLpgSQL_stmt_assign)); - newp->cmd_type = PLPGSQL_STMT_ASSIGN; - newp->lineno = plpgsql_location_to_lineno(@1); - newp->varno = dno; - newp->expr = $3; - $$ = (PLpgSQL_stmt *)newp; + cword_is_not_variable(&($1), @1); } ; @@ -1285,12 +2073,15 @@ stmt_getdiag : K_GET getdiag_area_opt K_DIAGNOSTICS getdiag_list ';' /* these fields are disallowed in stacked case */ case PLPGSQL_GETDIAG_ROW_COUNT: case PLPGSQL_GETDIAG_RESULT_OID: - if (newp->is_stacked) - ereport(ERROR, + if (newp->is_stacked) { + const char* message = "diagnostics item is not allowed in GET STACKED DIAGNOSTICS"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("diagnostics item %s is not allowed in GET STACKED DIAGNOSTICS", plpgsql_getdiag_kindname(ditem->kind)), parser_errposition(@1))); + } break; /* these fields are disallowed in current case */ case PLPGSQL_GETDIAG_ERROR_CONTEXT: @@ -1298,15 +2089,20 @@ stmt_getdiag : K_GET getdiag_area_opt K_DIAGNOSTICS getdiag_list ';' case PLPGSQL_GETDIAG_ERROR_HINT: case PLPGSQL_GETDIAG_RETURNED_SQLSTATE: case PLPGSQL_GETDIAG_MESSAGE_TEXT: - if (!newp->is_stacked) - ereport(ERROR, + if (!newp->is_stacked) { + const char* message = "diagnostics item is not allowed in GET CURRENT DIAGNOSTICS"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("diagnostics item %s is not allowed in GET CURRENT DIAGNOSTICS", plpgsql_getdiag_kindname(ditem->kind)), parser_errposition(@1))); + } break; default: - elog(ERROR, "unrecognized diagnostic item kind: %d", + const char* message = "unrecognized diagnostic item kind"; + InsertErrorMessage(message, plpgsql_yylloc); + elog(errstate, "unrecognized diagnostic item kind: %d", ditem->kind); break; } @@ -1386,13 +2182,16 @@ getdiag_target : T_DATUM { check_assignable($1.datum, @1); if ($1.datum->dtype == PLPGSQL_DTYPE_ROW || - $1.datum->dtype == PLPGSQL_DTYPE_REC) - ereport(ERROR, + $1.datum->dtype == PLPGSQL_DTYPE_REC) { + const char* message = "not a scalar variable"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("\"%s\" is not a scalar variable", NameOfDatum(&($1))), parser_errposition(@1))); - $$ = $1.datum->dno; + } + $$ = $1.dno; } | T_WORD { @@ -1406,63 +2205,210 @@ getdiag_target : T_DATUM } ; +table_var : T_TABLE + { + $$ = $1.dno; + AddNamespaceIfNeed($1.dno, $1.ident); + } + ; + varray_var : T_VARRAY { - $$ = $1.datum->dno; + $$ = $1.dno; + AddNamespaceIfNeed($1.dno, $1.ident); } ; record_var : T_RECORD { - $$ = $1.datum->dno; + $$ = $1.dno; + AddNamespaceIfNeed($1.dno, $1.ident); } ; -assign_var : T_DATUM +assign_var + : T_RECORD assign_list { check_assignable($1.datum, @1); - $$ = $1.datum->dno; + if ($2 == NIL) { + $$ = $1.dno; + } else { + if(IsA((Node*)linitial($2), A_Indices) && list_length($2) == 1) { + PLpgSQL_arrayelem *newp; + + newp = (PLpgSQL_arrayelem *)palloc0(sizeof(PLpgSQL_arrayelem)); + newp->dtype = PLPGSQL_DTYPE_ARRAYELEM; + newp->subscript = (PLpgSQL_expr*)(((A_Indices*)linitial($2))->uidx); + newp->arrayparentno = $1.dno; + /* initialize cached type data to "not valid" */ + newp->parenttypoid = InvalidOid; + newp->assignattrno = -1; + plpgsql_adddatum((PLpgSQL_datum *) newp); + + $$ = newp->dno; + } else { + PLpgSQL_assignlist *newp; + newp = (PLpgSQL_assignlist *)palloc0(sizeof(PLpgSQL_assignlist)); + newp->dtype = PLPGSQL_DTYPE_ASSIGNLIST; + newp->assignlist = $2; + newp->targetno = $1.dno; + plpgsql_adddatum((PLpgSQL_datum *) newp); + $$ = newp->dno; + } + } + } - | T_RECORD + | T_VARRAY_VAR assign_list { check_assignable($1.datum, @1); - $$ = $1.datum->dno; + if ($2 == NIL) { + $$ = $1.dno; + } else { + if(IsA((Node*)linitial($2), A_Indices) && list_length($2) == 1) { + PLpgSQL_arrayelem *newp; + + newp = (PLpgSQL_arrayelem *)palloc0(sizeof(PLpgSQL_arrayelem)); + newp->dtype = PLPGSQL_DTYPE_ARRAYELEM; + newp->subscript = (PLpgSQL_expr*)(((A_Indices*)linitial($2))->uidx); + newp->arrayparentno = $1.dno; + /* initialize cached type data to "not valid" */ + newp->parenttypoid = InvalidOid; + newp->assignattrno = -1; + plpgsql_adddatum((PLpgSQL_datum *) newp); + + $$ = newp->dno; + } else { + PLpgSQL_assignlist *newp; + newp = (PLpgSQL_assignlist *)palloc0(sizeof(PLpgSQL_assignlist)); + newp->dtype = PLPGSQL_DTYPE_ASSIGNLIST; + newp->assignlist = $2; + newp->targetno = $1.dno; + plpgsql_adddatum((PLpgSQL_datum *) newp); + $$ = newp->dno; + } + } + } - | T_VARRAY_VAR + | T_TABLE_VAR assign_list { check_assignable($1.datum, @1); - $$ = $1.datum->dno; + if ($2 == NIL) { + $$ = $1.dno; + } else { + if(IsA((Node*)linitial($2), A_Indices) && list_length($2) == 1) { + PLpgSQL_tableelem *newp; + newp = (PLpgSQL_tableelem *)palloc0(sizeof(PLpgSQL_tableelem)); + newp->dtype = PLPGSQL_DTYPE_TABLEELEM; + newp->subscript = (PLpgSQL_expr*)(((A_Indices*)linitial($2))->uidx); + newp->tableparentno = $1.dno; + /* initialize cached type data to "not valid" */ + newp->tabletypoid = InvalidOid; + newp->assignattrno = -1; + plpgsql_adddatum((PLpgSQL_datum *) newp); + $$ = newp->dno; + } else { + PLpgSQL_assignlist *newp; + newp = (PLpgSQL_assignlist *)palloc0(sizeof(PLpgSQL_assignlist)); + newp->dtype = PLPGSQL_DTYPE_ASSIGNLIST; + newp->assignlist = $2; + newp->targetno = $1.dno; + plpgsql_adddatum((PLpgSQL_datum *) newp); + $$ = newp->dno; + } + } + } - | assign_var '[' expr_until_rightbracket + | T_DATUM assign_list { - PLpgSQL_arrayelem *newp; + check_assignable($1.datum, @1); + if ($2 == NIL) { + $$ = $1.dno; + } else { + if(IsA((Node*)linitial($2), A_Indices) && list_length($2) == 1) { + PLpgSQL_datum* target = u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[$1.dno]; + if (target->dtype == PLPGSQL_DTYPE_VAR && + ((PLpgSQL_var*)target)->datatype->collectionType == PLPGSQL_COLLECTION_TABLE) { + PLpgSQL_tableelem *newp; + newp = (PLpgSQL_tableelem *)palloc0(sizeof(PLpgSQL_tableelem)); + newp->dtype = PLPGSQL_DTYPE_TABLEELEM; + newp->subscript = (PLpgSQL_expr*)(((A_Indices*)linitial($2))->uidx); + newp->tableparentno = $1.dno; + /* initialize cached type data to "not valid" */ + newp->tabletypoid = InvalidOid; + newp->assignattrno = -1; + plpgsql_adddatum((PLpgSQL_datum *) newp); - newp = (PLpgSQL_arrayelem *)palloc0(sizeof(PLpgSQL_arrayelem)); - newp->dtype = PLPGSQL_DTYPE_ARRAYELEM; - newp->subscript = $3; - newp->arrayparentno = $1; - /* initialize cached type data to "not valid" */ - newp->parenttypoid = InvalidOid; + $$ = newp->dno; + } else { + PLpgSQL_arrayelem *newp; - plpgsql_adddatum((PLpgSQL_datum *) newp); + newp = (PLpgSQL_arrayelem *)palloc0(sizeof(PLpgSQL_arrayelem)); + newp->dtype = PLPGSQL_DTYPE_ARRAYELEM; + newp->subscript = (PLpgSQL_expr*)(((A_Indices*)linitial($2))->uidx); + newp->arrayparentno = $1.dno; + /* initialize cached type data to "not valid" */ + newp->parenttypoid = InvalidOid; + newp->assignattrno = -1; + plpgsql_adddatum((PLpgSQL_datum *) newp); - $$ = newp->dno; + $$ = newp->dno; + } + } else { + PLpgSQL_assignlist *newp; + newp = (PLpgSQL_assignlist *)palloc0(sizeof(PLpgSQL_assignlist)); + newp->dtype = PLPGSQL_DTYPE_ASSIGNLIST; + newp->targetno = $1.dno; + newp->assignlist = $2; + plpgsql_adddatum((PLpgSQL_datum *) newp); + $$ = newp->dno; + } + } } - - | assign_var '(' expr_until_parenthesis + | T_PACKAGE_VARIABLE assign_list + { + check_assignable($1.datum, @1); + if ($2 != NIL) { + PLpgSQL_assignlist *newptr; + newptr = (PLpgSQL_assignlist *)palloc0(sizeof(PLpgSQL_assignlist)); + newptr->dtype = PLPGSQL_DTYPE_ASSIGNLIST; + newptr->targetno = $1.dno; + newptr->assignlist = $2; + plpgsql_adddatum((PLpgSQL_datum *) newptr); + $$ = newptr->dno; + } else { + $$ = $1.dno; + } + } + ; +assign_list : /*EMPTY*/ {$$ = NIL; } + | assign_list assign_el {$$ = lappend($1, $2);} + ; +assign_el : '.' attr_name { - PLpgSQL_arrayelem *newp; - newp = (PLpgSQL_arrayelem *)palloc0(sizeof(PLpgSQL_arrayelem)); - newp->dtype = PLPGSQL_DTYPE_ARRAYELEM; - newp->subscript = $3; - newp->arrayparentno = $1; - /* initialize cached type data to "not valid" */ - newp->parenttypoid = InvalidOid; - plpgsql_adddatum((PLpgSQL_datum *)newp); - $$ = newp->dno; + $$ = (Node *) makeString($2); + } + | '(' expr_until_parenthesis + { + A_Indices *ai = makeNode(A_Indices); + ai->lidx = NULL; + ai->uidx = (Node *)$2; + $$ = (Node *)ai; + } + | '[' expr_until_rightbracket + { + A_Indices *ai = makeNode(A_Indices); + ai->lidx = NULL; + ai->uidx = (Node *)$2; + $$ = (Node *)ai; } ; - +attr_name + : + { + $$ = get_attrname(yychar); + yyclearin; + } + ; stmt_goto : K_GOTO label_name { PLpgSQL_stmt_goto *newp; @@ -1673,7 +2619,7 @@ stmt_for : opt_block_label K_FOR for_control loop_body /* close namespace started in opt_block_label */ plpgsql_ns_pop(); } - | opt_block_label K_FORALL forall_control forall_body + | opt_block_label K_FORALL forall_control opt_save_exceptions forall_body { /* This runs after we've scanned the loop body */ /* A db FORALL support 3 types like below. We implemented the first one. @@ -1689,15 +2635,18 @@ stmt_for : opt_block_label K_FOR for_control loop_body newm = (PLpgSQL_stmt_fori *) $3; newm->lineno = plpgsql_location_to_lineno(@2); newm->label = NULL; - newm->body = $4; + newm->save_exceptions = $4; + newm->body = $5; newm->sqlString = plpgsql_get_curline_query(); $$ = (PLpgSQL_stmt *) newm; } - else - ereport(ERROR, + else { + const char* message = "please use \'FORALL index_name IN lower_bound .. upper_bound\'"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("please use \'FORALL index_name IN lower_bound .. upper_bound\'"))); - + } /* close namespace started in opt_block_label */ plpgsql_ns_pop(); } @@ -1707,7 +2656,6 @@ for_control : for_variable K_IN { int tok = yylex(); int tokloc = yylloc; - if (tok == K_EXECUTE) { /* EXECUTE means it's a dynamic FOR loop */ @@ -1734,17 +2682,20 @@ for_control : for_variable K_IN else if ($1.scalar) { /* convert single scalar to list */ - newp->row = make_scalar_list1($1.name, $1.scalar, + newp->row = make_scalar_list1($1.name, $1.scalar, $1.dno, $1.lineno, @1); /* no need for check_assignable */ } else { - ereport(ERROR, + const char* message = "loop variable of loop over rows must be a record or row variable or list of scalar variables"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_DATATYPE_MISMATCH), errmsg("loop variable of loop over rows must be a record or row variable or list of scalar variables"), parser_errposition(@1))); } + newp->query = expr; if (term == K_USING) @@ -1770,21 +2721,27 @@ for_control : for_variable K_IN newp = (PLpgSQL_stmt_forc *) palloc0(sizeof(PLpgSQL_stmt_forc)); newp->cmd_type = PLPGSQL_STMT_FORC; - newp->curvar = cursor->dno; + newp->curvar = yylval.wdatum.dno; /* Should have had a single variable name */ - if ($1.scalar && $1.row) - ereport(ERROR, + if ($1.scalar && $1.row) { + const char* message = "cursor FOR loop must have only one target variable"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("cursor FOR loop must have only one target variable"), parser_errposition(@1))); + } /* can't use an unbound cursor this way */ - if (cursor->cursor_explicit_expr == NULL) - ereport(ERROR, + if (cursor->cursor_explicit_expr == NULL) { + const char* message = "cursor FOR loop must use a bound cursor variable"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("cursor FOR loop must use a bound cursor variable"), parser_errposition(tokloc))); + } /* collect cursor's parameters if any */ newp->argquery = read_cursor_args(cursor, @@ -1864,11 +2821,14 @@ for_control : for_variable K_IN expr_by = NULL; /* Should have had a single variable name */ - if ($1.scalar && $1.row) - ereport(ERROR, + if ($1.scalar && $1.row) { + const char* message = "integer FOR loop must have only one target variable"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("integer FOR loop must have only one target variable"), parser_errposition(@1))); + } /* create loop's private variable */ fvar = (PLpgSQL_var *) @@ -1900,11 +2860,14 @@ for_control : for_variable K_IN char *tmp_query; PLpgSQL_stmt_fors *newp; - if (reverse) - ereport(ERROR, + if (reverse) { + const char* message = "cannot specify REVERSE in query FOR loop"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("cannot specify REVERSE in query FOR loop"), parser_errposition(tokloc))); + } AssertEreport(strncmp(expr1->query, "SELECT ", 7) == 0, MOD_PLSQL, @@ -1912,9 +2875,8 @@ for_control : for_variable K_IN tmp_query = pstrdup(expr1->query + 7); pfree_ext(expr1->query); expr1->query = tmp_query; - + check_sql_expr(expr1->query, expr1loc, 0); - newp = (PLpgSQL_stmt_fors *)palloc0(sizeof(PLpgSQL_stmt_fors)); newp->cmd_type = PLPGSQL_STMT_FORS; if ($1.rec) @@ -1930,26 +2892,48 @@ for_control : for_variable K_IN else if ($1.scalar) { /* convert single scalar to list */ - newp->row = make_scalar_list1($1.name, $1.scalar, - $1.lineno, @1); + newp->row = make_scalar_list1($1.name, $1.scalar, $1.dno, $1.lineno, @1); /* no need for check_assignable */ } else { +#ifndef ENABLE_MULTIPLE_NODES + if (u_sess->attr.attr_sql.sql_compatibility == A_FORMAT) { + TupleDesc desc = getCursorTupleDesc(expr1, true); + if (desc == NULL || desc->natts == 0 || checkAllAttrName(desc)) { + PLpgSQL_type dtype; + dtype.ttype = PLPGSQL_TTYPE_REC; + newp->rec = (PLpgSQL_rec *) + plpgsql_build_variable($1.name,$1.lineno, &dtype, true); + check_assignable((PLpgSQL_datum *) newp->rec, @1); + } else { + newp->row = build_row_from_tuple_desc($1.name, $1.lineno, desc); + check_assignable((PLpgSQL_datum*)newp->row, @1); + } + } else { + PLpgSQL_type dtype; + dtype.ttype = PLPGSQL_TTYPE_REC; + newp->rec = (PLpgSQL_rec *) + plpgsql_build_variable($1.name,$1.lineno, &dtype, true); + check_assignable((PLpgSQL_datum *) newp->rec, @1); + } +#else PLpgSQL_type dtype; dtype.ttype = PLPGSQL_TTYPE_REC; newp->rec = (PLpgSQL_rec *) - plpgsql_build_variable($1.name,$1.lineno, &dtype, true); + plpgsql_build_variable($1.name,$1.lineno, &dtype, true); check_assignable((PLpgSQL_datum *) newp->rec, @1); +#endif } newp->query = expr1; + $$ = (PLpgSQL_stmt *) newp; } } } ; -forall_control :for_variable K_IN +forall_control :for_variable K_IN { int tok; int expr1loc; @@ -1984,11 +2968,12 @@ forall_control :for_variable K_IN check_sql_expr(expr1->query, expr1loc, 7); /* Read and check the second one */ - expr2 = read_sql_construct5(K_MERGE, + expr2 = read_sql_construct6(K_MERGE, K_INSERT, K_SELECT, K_UPDATE, K_DELETE, + K_SAVE, "DML", "SELECT ", true, @@ -1999,22 +2984,35 @@ forall_control :for_variable K_IN plpgsql_push_back_token(tok); - if (';' == tok) - ereport(ERROR, + if (';' == tok) { + const char* message = "FORALL must follow DML statement."; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FORALL_NEED_DML), errmsg("FORALL must follow DML statement."))); + } /* should follow DML statement */ - if (tok != K_INSERT && tok != K_UPDATE && tok != K_DELETE && tok != K_SELECT && tok != K_MERGE) - ereport(ERROR, + if (tok != K_INSERT && tok != K_UPDATE && tok != K_DELETE && tok != K_SELECT && tok != K_MERGE && tok != K_SAVE) { + const char* message = "FORALL must follow DML statement."; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FORALL_NEED_DML), errmsg("FORALL must follow DML statement."))); + } + + if (tok == K_SAVE) { + CheckSaveExceptionsDML(errstate); + } /* Should have had a single variable name */ - if ($1.scalar && $1.row) - ereport(ERROR, + if ($1.scalar && $1.row) { + const char* message = "integer FORALL must have just one target variable."; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("integer FORALL must have just one target variable"))); + } /* create loop's private variable */ fvar = (PLpgSQL_var *) @@ -2033,12 +3031,33 @@ forall_control :for_variable K_IN $$ = (PLpgSQL_stmt *) newm; } - else - ereport(ERROR, + else { + const char* message = "please use \'FORALL index_name IN lower_bound .. upper_bound\'"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), - errmsg("please use \'FORALL index_name IN lower_bound .. upper_bound\'"))); + errmsg("please use \'FORALL index_name IN lower_bound .. upper_bound\'"))); + } } ; + +opt_save_exceptions : K_SAVE K_EXCEPTIONS + { +#ifndef ENABLE_MULTIPLE_NODES + $$ = true; +#else + const char* message = "SAVE EXCEPTIONS is not supported"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("%s.", message))); + $$ = false; +#endif + } + | + { + $$ = false; + } /* * Processing the for_variable is tricky because we don't yet know if the * FOR is an integer FOR loop or a loop over query results. In the former @@ -2066,18 +3085,21 @@ for_variable : T_DATUM $$.scalar = NULL; $$.rec = NULL; $$.row = (PLpgSQL_row *) $1.datum; + $$.dno = $1.dno; } else if ($1.datum->dtype == PLPGSQL_DTYPE_RECORD) { $$.scalar = NULL; $$.rec = NULL; $$.row = (PLpgSQL_row *) $1.datum; + $$.dno = $1.dno; } else if ($1.datum->dtype == PLPGSQL_DTYPE_REC) { $$.scalar = NULL; $$.rec = (PLpgSQL_rec *) $1.datum; $$.row = NULL; + $$.dno = $1.dno; } else { @@ -2086,12 +3108,14 @@ for_variable : T_DATUM $$.scalar = $1.datum; $$.rec = NULL; $$.row = NULL; + $$.dno = $1.dno; /* check for comma-separated list */ tok = yylex(); plpgsql_push_back_token(tok); if (tok == ',') $$.row = read_into_scalar_list($$.name, $$.scalar, + $$.dno, @1); } } @@ -2104,12 +3128,14 @@ for_variable : T_DATUM $$.scalar = NULL; $$.rec = NULL; $$.row = (PLpgSQL_row *) $1.datum; + $$.dno = $1.dno; } else if ($1.datum->dtype == PLPGSQL_DTYPE_REC) { $$.scalar = NULL; $$.rec = (PLpgSQL_rec *) $1.datum; $$.row = NULL; + $$.dno = $1.dno; } else { @@ -2118,12 +3144,50 @@ for_variable : T_DATUM $$.scalar = $1.datum; $$.rec = NULL; $$.row = NULL; + $$.dno = $1.dno; /* check for comma-separated list */ tok = yylex(); plpgsql_push_back_token(tok); if (tok == ',') $$.row = read_into_scalar_list($$.name, $$.scalar, + $$.dno, + @1); + } + } + | T_TABLE_VAR + { + $$.name = NameOfDatum(&($1)); + $$.lineno = plpgsql_location_to_lineno(@1); + if ($1.datum->dtype == PLPGSQL_DTYPE_ROW) + { + $$.scalar = NULL; + $$.rec = NULL; + $$.row = (PLpgSQL_row *) $1.datum; + $$.dno = $1.dno; + } + else if ($1.datum->dtype == PLPGSQL_DTYPE_REC) + { + $$.scalar = NULL; + $$.rec = (PLpgSQL_rec *) $1.datum; + $$.row = NULL; + $$.dno = $1.dno; + } + else + { + int tok; + + $$.scalar = $1.datum; + $$.rec = NULL; + $$.row = NULL; + $$.dno = $1.dno; + /* check for comma-separated list */ + tok = yylex(); + plpgsql_push_back_token(tok); + if (tok == ',') + $$.row = read_into_scalar_list($$.name, + $$.scalar, + $$.dno, @1); } } @@ -2164,22 +3228,28 @@ stmt_foreach_a : opt_block_label K_FOREACH for_variable foreach_slice K_IN K_ARR if ($3.rec) { - newp->varno = $3.rec->dno; + newp->varno = $3.dno; check_assignable((PLpgSQL_datum *) $3.rec, @3); } else if ($3.row) { - newp->varno = $3.row->dno; + if ($3.scalar) { + newp->varno = $3.row->dno; + } else { + newp->varno = $3.dno; + } check_assignable((PLpgSQL_datum *) $3.row, @3); } else if ($3.scalar) { - newp->varno = $3.scalar->dno; + newp->varno = $3.dno; check_assignable($3.scalar, @3); } else { - ereport(ERROR, + const char* message = "loop variable of FOREACH must be a known variable or list of variables"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("loop variable of FOREACH must be a known variable or list of variables"), parser_errposition(@3))); @@ -2247,11 +3317,13 @@ stmt_return : K_RETURN if (tok_is_keyword(tok, &yylval, K_NEXT, "next")) { + u_sess->plsql_cxt.plpgsql_yylloc = plpgsql_yylloc; $$ = make_return_next_stmt(@1); } else if (tok_is_keyword(tok, &yylval, K_QUERY, "query")) { + u_sess->plsql_cxt.plpgsql_yylloc = plpgsql_yylloc; $$ = make_return_query_stmt(@1); } else @@ -2282,6 +3354,7 @@ stmt_raise : K_RAISE newp->params = NIL; newp->options = NIL; newp->sqlString = plpgsql_get_curline_query(); + newp->hasExceptionInit = false; tok = yylex(); if (tok == 0) @@ -2294,41 +3367,23 @@ stmt_raise : K_RAISE if (tok != ';') { if (T_CWORD == tok) { - PLpgSQL_expr *expr = NULL; - List* wholeName = yylval.cword.idents; - int dno = plpgsql_pkg_add_unknown_var_to_namespace(wholeName, PLPGSQL_DTYPE_ROW); - if (dno == -1) { - yyerror("not found package"); - } - sprintf(message, "line:%d ", plpgsql_location_to_lineno(@1)); - appendStringInfoString(&ds, message); - appendStringInfoString(&ds,"%"); - row = (PLpgSQL_row*)u_sess->plsql_cxt.plpgsql_Datums[dno]; - row->dtype = PLPGSQL_DTYPE_ROW; - row->customErrorCode = plpgsql_getCustomErrorCode(); - /* condname is system embedded error name, so it is still null in this case. */ - newp->condname = pstrdup(unpack_sql_state(row->customErrorCode)); - newp->message = pstrdup(ds.data); - plpgsql_push_back_token(tok); - expr = read_sql_construct(';', 0, 0, ";", - "SELECT ", true, true, true, NULL, &tok); - - if (tok != ';') - yyerror("syntax error"); - - newp->params = lappend(newp->params, expr); - } else if (T_DATUM == tok && PLPGSQL_DTYPE_ROW == yylval.wdatum.datum->dtype) + yyerror("not found package"); + } + if ((T_DATUM == tok || T_PACKAGE_VARIABLE == tok) && PLPGSQL_DTYPE_ROW == yylval.wdatum.datum->dtype) { PLpgSQL_expr *expr = NULL; + errno_t rc = EOK; - sprintf(message, "line:%d ", plpgsql_location_to_lineno(@1)); + rc = sprintf_s(message, sizeof(message), "line:%d ", plpgsql_location_to_lineno(@1)); + securec_check_ss(rc, "\0", "\0"); appendStringInfoString(&ds, message); appendStringInfoString(&ds,"%"); row = (PLpgSQL_row *)yylval.wdatum.datum; /* condname is system embedded error name, so it is still null in this case. */ - newp->condname = pstrdup(unpack_sql_state(row->customErrorCode)); + newp->hasExceptionInit = row->hasExceptionInit; + newp->condname = pstrdup(plpgsql_get_sqlstate(row->customErrorCode)); newp->message = pstrdup(ds.data); plpgsql_push_back_token(tok); expr = read_sql_construct(';', 0, 0, ";", @@ -2512,12 +3567,6 @@ stmt_execsql : K_ALTER { $$ = make_execsql_stmt(K_WITH, @1); } - | K_SAVEPOINT - { - ereport(ERROR, - (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("SAVEPOINT in function/procedure is not yet supported."))); - } | K_MERGE { $$ = make_execsql_stmt(K_MERGE, @1); @@ -2568,10 +3617,62 @@ stmt_execsql : K_ALTER } else { + u_sess->plsql_cxt.plpgsql_yylloc = plpgsql_yylloc; $$ = make_execsql_stmt(T_WORD, @1); } } } + | K_LOG + { + int tok = -1; + bool isCallFunc = false; + bool FuncNoarg = false; + tok = yylex(); + if ('(' == tok) + isCallFunc = is_function($1, false, false); + else if (';' == tok) + { + isCallFunc = is_function($1, false, true); + FuncNoarg = true; + } + + plpgsql_push_back_token(tok); + if(isCallFunc) + { + if (FuncNoarg) + { + $$ = make_callfunc_stmt_no_arg($1, @1); + } + else + { + PLpgSQL_stmt *stmt = make_callfunc_stmt($1, @1, false, false); + if (stmt == NULL) + { + plpgsql_push_back_token(tok); + $$ = NULL; + yyerror("syntax error"); + } + else + { + if (stmt->cmd_type == PLPGSQL_STMT_PERFORM) + { + ((PLpgSQL_stmt_perform *)stmt)->expr->is_funccall = true; + } + else if (stmt->cmd_type == PLPGSQL_STMT_EXECSQL) + { + ((PLpgSQL_stmt_execsql *)stmt)->sqlstmt->is_funccall = true; + } + $$ = stmt; + } + } + } + else + { + plpgsql_push_back_token(tok); + $$ = NULL; + yyerror("syntax error"); + } + } | T_CWORD '(' { @@ -2579,17 +3680,25 @@ stmt_execsql : K_ALTER bool isCallFunc = false; bool FuncNoarg = false; checkFuncName($1.idents); - MemoryContext colCxt = MemoryContextSwitchTo(u_sess->plsql_cxt.compile_tmp_cxt); + MemoryContext colCxt = MemoryContextSwitchTo(u_sess->plsql_cxt.curr_compile_context->compile_tmp_cxt); name = NameListToString($1.idents); (void)MemoryContextSwitchTo(colCxt); - isCallFunc = is_function(name, false, false); + isCallFunc = is_function(name, false, false, $1.idents); if (isCallFunc) { if (FuncNoarg) - $$ = make_callfunc_stmt_no_arg(name, @1); + $$ = make_callfunc_stmt_no_arg(name, @1, false, $1.idents); else { - PLpgSQL_stmt *stmt = make_callfunc_stmt(name, @1, false, true); + PLpgSQL_stmt *stmt = make_callfunc_stmt(name, @1, false, true, $1.idents); + if (stmt == NULL) { + const char* message = "call func stmt was null"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(ERROR, + (errcode(ERRCODE_DATA_EXCEPTION), + errmsg("call func stmt was null"), + errdetail("call func stmt was null, you can try to recompile the function"))); + } if (stmt->cmd_type == PLPGSQL_STMT_PERFORM) { ((PLpgSQL_stmt_perform *)stmt)->expr->is_funccall = true; @@ -2611,19 +3720,19 @@ stmt_execsql : K_ALTER char *name = NULL; bool isCallFunc = false; checkFuncName($1.idents); - MemoryContext colCxt = MemoryContextSwitchTo(u_sess->plsql_cxt.compile_tmp_cxt); + MemoryContext colCxt = MemoryContextSwitchTo(u_sess->plsql_cxt.curr_compile_context->compile_tmp_cxt); name = NameListToString($1.idents); (void)MemoryContextSwitchTo(colCxt); - isCallFunc = is_function(name, false, true); + isCallFunc = is_function(name, false, true, $1.idents); bool FuncNoarg = true; if (isCallFunc) { if (FuncNoarg) - $$ = make_callfunc_stmt_no_arg(name, @1); + $$ = make_callfunc_stmt_no_arg(name, @1, true, $1.idents); else { - PLpgSQL_stmt *stmt = make_callfunc_stmt(name, @1, false, true); + PLpgSQL_stmt *stmt = make_callfunc_stmt(name, @1, false, true, $1.idents); if (stmt->cmd_type == PLPGSQL_STMT_PERFORM) { ((PLpgSQL_stmt_perform *)stmt)->expr->is_funccall = true; @@ -2640,18 +3749,263 @@ stmt_execsql : K_ALTER $$ = make_execsql_stmt(T_CWORD, @1); } } + | T_ARRAY_TRIM + { + check_table_index(yylval.wdatum.datum, "trim"); + int dno = yylval.wdatum.dno; + StringInfoData sqlBuf; + initStringInfo(&sqlBuf); + appendStringInfo(&sqlBuf, "array_trim("); + CastArrayNameToArrayFunc(&sqlBuf, yylval.wdatum.idents); + + int tok = yylex(); + + if (';' == tok) + { + appendStringInfo(&sqlBuf, " 1)"); + $$ = make_callfunc_stmt(sqlBuf.data, @1, false, false, NULL, dno); + } else { + if('(' == tok) { + int tok1 = yylex(); + if (tok1 == ')') { + int tok2 = yylex(); + if (tok2 == ';') { + appendStringInfo(&sqlBuf, " 1)"); + $$ = make_callfunc_stmt(sqlBuf.data, @1, false, false, NULL, dno); + } else { + plpgsql_push_back_token(tok); + $$ = NULL; + yyerror("syntax error"); + } + } else if (tok1 != ICONST && tok1 != T_WORD && tok1 != SCONST && tok1 != T_DATUM) { + plpgsql_push_back_token(tok); + $$ = NULL; + yyerror("syntax error"); + } else { + if (ICONST == tok1) { + appendStringInfo(&sqlBuf, " %d)", yylval.ival); + } else if (SCONST == tok1) { + appendStringInfo(&sqlBuf, " %s) ", yylval.str); + } else if (T_WORD == tok1) { + appendStringInfo(&sqlBuf, " %s)", yylval.word.ident); + } else { + char *datName = NameOfDatum(&yylval.wdatum); + appendStringInfo(&sqlBuf, " %s) ", datName); + pfree_ext(datName); + } + int tok2 = yylex(); + if (tok2 != ')') { + plpgsql_push_back_token(tok); + $$ = NULL; + yyerror("syntax error"); + } else { + int tok3 = yylex(); + if (tok3 != ';') { + plpgsql_push_back_token(tok); + $$ = NULL; + yyerror("syntax error"); + } else { + $$ = make_callfunc_stmt(sqlBuf.data, @1, false, false, NULL, dno); + } + } + } + } else { + plpgsql_push_back_token(tok); + $$ = NULL; + yyerror("syntax error"); + } + } + pfree_ext(sqlBuf.data); + } | T_ARRAY_EXTEND { + check_table_index(yylval.wdatum.datum, "trim"); + int dno = yylval.wdatum.dno; + StringInfoData sqlBuf; + + initStringInfo(&sqlBuf); + appendStringInfo(&sqlBuf, "array_extendnull("); + CastArrayNameToArrayFunc(&sqlBuf, yylval.wdatum.idents); + int tok = yylex(); if (';' == tok) { - $$ = NULL; + appendStringInfo(&sqlBuf, " 1)"); + $$ = make_callfunc_stmt(sqlBuf.data, @1, false, false, NULL, dno); + } else { + if('(' == tok) { + int tok1 = yylex(); + if (tok1 == ')') { + int tok2 = yylex(); + if (tok2 == ';') { + appendStringInfo(&sqlBuf, " 1)"); + $$ = make_callfunc_stmt(sqlBuf.data, @1, false, false, NULL, dno); + } else { + plpgsql_push_back_token(tok2); + $$ = NULL; + yyerror("syntax error"); + } + } else if (tok1 != ICONST && tok1 != T_WORD && tok1 != SCONST && tok1 != T_DATUM) { + plpgsql_push_back_token(tok); + $$ = NULL; + yyerror("syntax error"); + } else { + if (ICONST == tok1) { + appendStringInfo(&sqlBuf, " %d) ", yylval.ival); + } else if (SCONST == tok1) { + appendStringInfo(&sqlBuf, " %s) ", yylval.str); + } else if (T_WORD == tok1) { + appendStringInfo(&sqlBuf, " %s) ", yylval.word.ident); + } else { + char *datName = NameOfDatum(&yylval.wdatum); + appendStringInfo(&sqlBuf, " %s) ", datName); + pfree_ext(datName); + } + int tok2 = yylex(); + if (tok2 != ')') { + plpgsql_push_back_token(tok); + $$ = NULL; + yyerror("syntax error"); + } else { + int tok3 = yylex(); + if (tok3 != ';') { + plpgsql_push_back_token(tok); + $$ = NULL; + yyerror("syntax error"); + } else { + $$ = make_callfunc_stmt(sqlBuf.data, @1, false, false, NULL, dno); + } + } + } + } else { + plpgsql_push_back_token(tok); + $$ = NULL; + yyerror("syntax error"); + } } - else + pfree_ext(sqlBuf.data); + } + | T_ARRAY_DELETE + { + StringInfoData sqlBuf; + Oid indexType = get_table_index_type(yylval.wdatum.datum); + List* idents = yylval.wdatum.idents; + int dno = yylval.wdatum.dno; + initStringInfo(&sqlBuf); + + int tok = yylex(); + + if (';' == tok) { - plpgsql_push_back_token(tok); - $$ = make_callfunc_stmt("array_extend", @1, false, false); + appendStringInfo(&sqlBuf, "array_delete("); + CastArrayNameToArrayFunc(&sqlBuf, idents, false); + appendStringInfo(&sqlBuf, ")"); + $$ = make_callfunc_stmt(sqlBuf.data, @1, false, false, NULL, dno); + } else { + if('(' == tok) { + int tok1 = yylex(); + if (tok1 == ')') { + int tok2 = yylex(); + if (tok2 == ';') { + appendStringInfo(&sqlBuf, "array_delete("); + CastArrayNameToArrayFunc(&sqlBuf, idents, false); + appendStringInfo(&sqlBuf, ")"); + $$ = make_callfunc_stmt(sqlBuf.data, @1, false, false, NULL, dno); + } else { + plpgsql_push_back_token(tok); + $$ = NULL; + yyerror("syntax error"); + } + } else if (tok1 != ICONST && tok1 != T_WORD && tok1 != SCONST && tok1 != T_DATUM) { + plpgsql_push_back_token(tok); + $$ = NULL; + yyerror("syntax error"); + } else { + if (ICONST == tok1) { + if (indexType == VARCHAROID) { + appendStringInfo(&sqlBuf, "array_varchar_delete("); + CastArrayNameToArrayFunc(&sqlBuf, idents); + appendStringInfo(&sqlBuf, "\'%d\')", yylval.ival); + } else if (indexType == INT4OID) { + appendStringInfo(&sqlBuf, "array_integer_delete("); + CastArrayNameToArrayFunc(&sqlBuf, idents); + appendStringInfo(&sqlBuf, "\'%d\')", yylval.ival); + } else { + appendStringInfo(&sqlBuf, "array_deleteidx("); + CastArrayNameToArrayFunc(&sqlBuf, idents); + appendStringInfo(&sqlBuf, "%d)", yylval.ival); + } + } else if (SCONST == tok1) { + if (indexType == VARCHAROID) { + appendStringInfo(&sqlBuf, "array_varchar_delete("); + CastArrayNameToArrayFunc(&sqlBuf, idents); + appendStringInfo(&sqlBuf, "\'%s\')", yylval.str); + } else if (indexType == INT4OID) { + appendStringInfo(&sqlBuf, "array_integer_delete("); + CastArrayNameToArrayFunc(&sqlBuf, idents); + appendStringInfo(&sqlBuf, "\'%s\')", yylval.str); + } else { + appendStringInfo(&sqlBuf, "array_deleteidx("); + CastArrayNameToArrayFunc(&sqlBuf, idents); + appendStringInfo(&sqlBuf, "%s)", yylval.str); + } + + } else if (T_WORD == tok1) { + if (indexType == VARCHAROID) { + appendStringInfo(&sqlBuf, "array_varchar_delete("); + CastArrayNameToArrayFunc(&sqlBuf, idents); + appendStringInfo(&sqlBuf, "\'%s\')", yylval.word.ident); + } else if (indexType == INT4OID) { + appendStringInfo(&sqlBuf, "array_integer_delete("); + CastArrayNameToArrayFunc(&sqlBuf, idents); + appendStringInfo(&sqlBuf, "\'%s\')", yylval.word.ident); + } else { + appendStringInfo(&sqlBuf, "array_deleteidx("); + CastArrayNameToArrayFunc(&sqlBuf, idents); + appendStringInfo(&sqlBuf, "%s)", yylval.word.ident); + } + + } else { + char *datName = NameOfDatum(&yylval.wdatum); + if (indexType == VARCHAROID) { + appendStringInfo(&sqlBuf, "array_varchar_delete("); + CastArrayNameToArrayFunc(&sqlBuf, idents); + appendStringInfo(&sqlBuf, "\'%s\')", datName); + } else if (indexType == INT4OID) { + appendStringInfo(&sqlBuf, "array_integer_delete("); + CastArrayNameToArrayFunc(&sqlBuf, idents); + appendStringInfo(&sqlBuf, "\'%s\')", datName); + } else { + appendStringInfo(&sqlBuf, "array_deleteidx("); + CastArrayNameToArrayFunc(&sqlBuf, idents); + appendStringInfo(&sqlBuf, "%s)", datName); + } + + pfree_ext(datName); + } + int tok2 = yylex(); + if (tok2 != ')') { + plpgsql_push_back_token(tok); + $$ = NULL; + yyerror("syntax error"); + } else { + int tok3 = yylex(); + if (tok3 != ';') { + plpgsql_push_back_token(tok); + $$ = NULL; + yyerror("syntax error"); + } else { + $$ = make_callfunc_stmt(sqlBuf.data, @1, false, false, NULL, dno); + } + } + } + } else { + plpgsql_push_back_token(tok); + $$ = NULL; + yyerror("syntax error"); + } } + pfree_ext(sqlBuf.data); } ; @@ -2687,6 +4041,11 @@ stmt_dynexecute : K_EXECUTE newp->isanonymousblock = true; newp->sqlString = plpgsql_get_curline_query(); + if (endtoken == K_BULK) + { + yyerror("syntax error"); + } + /* If we found "INTO", collect the argument */ if (endtoken == K_INTO) @@ -2694,7 +4053,7 @@ stmt_dynexecute : K_EXECUTE if (newp->into) /* multiple INTO */ yyerror("syntax error"); newp->into = true; - read_into_target(&newp->rec, &newp->row, &newp->strict); + read_into_target(&newp->rec, &newp->row, &newp->strict, false); endtoken = yylex(); } /* If we found "USING", collect the argument */ @@ -2714,10 +4073,13 @@ stmt_dynexecute : K_EXECUTE endtoken = yylex(); if( out_row && newp->row ) { - ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("target into is conflicted with using out (inout)"), - errdetail("\"select clause\" can't has out parameters, can only use \"into\""))); + const char* message = "target into is conflicted with using out (inout)"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("target into is conflicted with using out (inout)"), + errdetail("\"select clause\" can't has out parameters, can only use \"into\""))); + u_sess->plsql_cxt.have_error = true; } newp->out_row = newp->row ? newp->row:out_row; @@ -2739,11 +4101,21 @@ stmt_open : K_OPEN cursor_variable newp = (PLpgSQL_stmt_open *)palloc0(sizeof(PLpgSQL_stmt_open)); newp->cmd_type = PLPGSQL_STMT_OPEN; newp->lineno = plpgsql_location_to_lineno(@1); - newp->curvar = $2->dno; + newp->curvar = $2; newp->cursor_options = CURSOR_OPT_FAST_PLAN; newp->sqlString = plpgsql_get_curline_query(); - if ($2->cursor_explicit_expr == NULL) +#ifndef ENABLE_MULTIPLE_NODES + if ((newp->curvar < 0 || newp->curvar >= u_sess->plsql_cxt.curr_compile_context->plpgsql_nDatums) + && u_sess->attr.attr_common.plsql_show_all_error) + { + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), errmsg("open cursor error"), parser_errposition(@2))); + } +#endif + PLpgSQL_var* cur_var = (PLpgSQL_var *)u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[$2]; + + if (cur_var->cursor_explicit_expr == NULL) { /* be nice if we could use opt_scrollable here */ tok = yylex(); @@ -2808,7 +4180,7 @@ stmt_open : K_OPEN cursor_variable else { /* predefined cursor query, so read args */ - newp->argquery = read_cursor_args($2, ';', ";"); + newp->argquery = read_cursor_args(cur_var, ';', ";"); } $$ = (PLpgSQL_stmt *)newp; @@ -2822,7 +4194,7 @@ stmt_fetch : K_FETCH opt_fetch_direction cursor_variable K_INTO PLpgSQL_row *row; /* We have already parsed everything through the INTO keyword */ - read_into_target(&rec, &row, NULL); + read_into_target(&rec, &row, NULL, false); if (yylex() != ';') yyerror("syntax error"); @@ -2831,17 +4203,55 @@ stmt_fetch : K_FETCH opt_fetch_direction cursor_variable K_INTO * We don't allow multiple rows in PL/pgSQL's FETCH * statement, only in MOVE. */ - if (fetch->returns_multiple_rows) - ereport(ERROR, + if (fetch->returns_multiple_rows) { + const char* message = "FETCH statement cannot return multiple rows"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("FETCH statement cannot return multiple rows"), parser_errposition(@1))); + } fetch->lineno = plpgsql_location_to_lineno(@1); fetch->rec = rec; fetch->row = row; - fetch->curvar = $3->dno; + fetch->curvar = $3; fetch->is_move = false; + fetch->bulk_collect = false; + fetch->sqlString = plpgsql_get_curline_query(); + + $$ = (PLpgSQL_stmt *)fetch; + } + | K_FETCH opt_fetch_direction cursor_variable K_BULK K_COLLECT K_INTO fetch_into_target fetch_limit_expr + { + PLpgSQL_stmt_fetch *fetch = $2; + if (fetch->has_direction) { + yyerror("unexpected fetch direction statement"); + } + + /* only A_FORMAT can use bulk collect into */ + if (u_sess->attr.attr_sql.sql_compatibility != A_FORMAT) { + yyerror("syntax error"); + } + + PLpgSQL_datum *datum = $7; + fetch->rec = NULL; + fetch->row = NULL; + + if (datum->dtype == PLPGSQL_DTYPE_REC) { + fetch->rec = (PLpgSQL_rec *)datum; + } else { + fetch->row = (PLpgSQL_row *)datum; + check_bulk_into_type((PLpgSQL_row*)datum); + } + + fetch->lineno = plpgsql_location_to_lineno(@1); + fetch->curvar = $3; + fetch->how_many = FETCH_ALL; + fetch->is_move = false; + fetch->expr = $8; + fetch->returns_multiple_rows = true; + fetch->bulk_collect = true; fetch->sqlString = plpgsql_get_curline_query(); $$ = (PLpgSQL_stmt *)fetch; @@ -2853,8 +4263,9 @@ stmt_move : K_MOVE opt_fetch_direction cursor_variable ';' PLpgSQL_stmt_fetch *fetch = $2; fetch->lineno = plpgsql_location_to_lineno(@1); - fetch->curvar = $3->dno; + fetch->curvar = $3; fetch->is_move = true; + fetch->bulk_collect = false; fetch->sqlString = plpgsql_get_curline_query(); $$ = (PLpgSQL_stmt *)fetch; @@ -2867,6 +4278,32 @@ opt_fetch_direction : } ; +fetch_limit_expr : K_LIMIT + { + $$ = read_sql_expression(';', ";"); + } + | ';' + { + $$ = NULL; + } + ; + +fetch_into_target : + { + PLpgSQL_datum *datum = NULL; + PLpgSQL_rec *rec; + PLpgSQL_row *row; + read_into_target(&rec, &row, NULL, true); + + if (rec != NULL) { + datum = (PLpgSQL_datum *)rec; + } else { + datum = (PLpgSQL_datum *)row; + } + $$ = datum; + } + ; + stmt_close : K_CLOSE cursor_variable ';' { PLpgSQL_stmt_close *newp; @@ -2874,7 +4311,7 @@ stmt_close : K_CLOSE cursor_variable ';' newp = (PLpgSQL_stmt_close *)palloc(sizeof(PLpgSQL_stmt_close)); newp->cmd_type = PLPGSQL_STMT_CLOSE; newp->lineno = plpgsql_location_to_lineno(@1); - newp->curvar = $2->dno; + newp->curvar = $2; newp->sqlString = plpgsql_get_curline_query(); $$ = (PLpgSQL_stmt *)newp; @@ -2910,14 +4347,88 @@ stmt_commit : opt_block_label K_COMMIT ';' } ; -stmt_rollback : opt_block_label K_ROLLBACK ';' +savepoint_name : any_identifier { - PLpgSQL_stmt_rollback *newp; + $$ = $1; + } + ; - newp = (PLpgSQL_stmt_rollback *) palloc(sizeof(PLpgSQL_stmt_rollback)); - newp->cmd_type = PLPGSQL_STMT_ROLLBACK; +opt_savepoint_name : + K_SAVEPOINT savepoint_name + { + $$ = $2; + } + | savepoint_name + { + $$ = $1; + } + ; + +opt_rollback_to : + { + $$ = NULL; + } + | K_TO opt_savepoint_name + { + $$ = $2; + } + ; + +stmt_rollback : opt_block_label K_ROLLBACK opt_rollback_to ';' + { + if ($3 == NULL) { + PLpgSQL_stmt_rollback *newp; + + newp = (PLpgSQL_stmt_rollback *) palloc(sizeof(PLpgSQL_stmt_rollback)); + newp->cmd_type = PLPGSQL_STMT_ROLLBACK; + newp->lineno = plpgsql_location_to_lineno(@2); + newp->sqlString = plpgsql_get_curline_query(); + plpgsql_ns_pop(); + + $$ = (PLpgSQL_stmt *)newp; + record_stmt_label($1, (PLpgSQL_stmt *)newp); + } else { + PLpgSQL_stmt_savepoint *newp; + + newp = (PLpgSQL_stmt_savepoint *) palloc(sizeof(PLpgSQL_stmt_savepoint)); + newp->cmd_type = PLPGSQL_STMT_SAVEPOINT; + newp->lineno = plpgsql_location_to_lineno(@2); + newp->sqlString = plpgsql_get_curline_query(); + newp->opType = PLPGSQL_SAVEPOINT_ROLLBACKTO; + newp->spName = $3; + plpgsql_ns_pop(); + + $$ = (PLpgSQL_stmt *)newp; + record_stmt_label($1, (PLpgSQL_stmt *)newp); + } + } + ; + +stmt_savepoint : opt_block_label K_SAVEPOINT savepoint_name ';' + { + PLpgSQL_stmt_savepoint *newp; + + newp = (PLpgSQL_stmt_savepoint *) palloc(sizeof(PLpgSQL_stmt_savepoint)); + newp->cmd_type = PLPGSQL_STMT_SAVEPOINT; newp->lineno = plpgsql_location_to_lineno(@2); newp->sqlString = plpgsql_get_curline_query(); + newp->opType = PLPGSQL_SAVEPOINT_CREATE; + newp->spName = $3; + plpgsql_ns_pop(); + + $$ = (PLpgSQL_stmt *)newp; + record_stmt_label($1, (PLpgSQL_stmt *)newp); + } + | opt_block_label K_RELEASE opt_savepoint_name ';' + { + PLpgSQL_stmt_savepoint *newp; + + newp = (PLpgSQL_stmt_savepoint *) palloc(sizeof(PLpgSQL_stmt_savepoint)); + newp->cmd_type = PLPGSQL_STMT_SAVEPOINT; + newp->lineno = plpgsql_location_to_lineno(@2); + newp->sqlString = plpgsql_get_curline_query(); + newp->opType = PLPGSQL_SAVEPOINT_RELEASE; + newp->spName = $3; plpgsql_ns_pop(); $$ = (PLpgSQL_stmt *)newp; @@ -2927,19 +4438,47 @@ stmt_rollback : opt_block_label K_ROLLBACK ';' cursor_variable : T_DATUM { - if ($1.datum->dtype != PLPGSQL_DTYPE_VAR) - ereport(ERROR, + if ($1.datum->dtype != PLPGSQL_DTYPE_VAR) { + const char* message = "cursor variable must be a simple variable"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_DATATYPE_MISMATCH), errmsg("cursor variable must be a simple variable"), parser_errposition(@1))); + } - if (((PLpgSQL_var *) $1.datum)->datatype->typoid != REFCURSOROID) - ereport(ERROR, + if (((PLpgSQL_var *) $1.datum)->datatype->typoid != REFCURSOROID) { + const char* message = "variable must be of type cursor or refcursor"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_DATATYPE_MISMATCH), errmsg("variable \"%s\" must be of type cursor or refcursor", ((PLpgSQL_var *) $1.datum)->refname), parser_errposition(@1))); - $$ = (PLpgSQL_var *) $1.datum; + } + $$ = $1.dno; + } + | T_PACKAGE_VARIABLE + { + if ($1.datum->dtype != PLPGSQL_DTYPE_VAR) { + const char* message = "cursor variable must be a simple variable"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, + (errcode(ERRCODE_DATATYPE_MISMATCH), + errmsg("cursor variable must be a simple variable"), + parser_errposition(@1))); + } + + if (((PLpgSQL_var *) $1.datum)->datatype->typoid != REFCURSOROID) { + const char* message = "variable must be of type cursor or refcursor"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, + (errcode(ERRCODE_DATATYPE_MISMATCH), + errmsg("variable \"%s\" must be of type cursor or refcursor", + ((PLpgSQL_var *) $1.datum)->refname), + parser_errposition(@1))); + } + $$ = $1.dno; } | T_WORD { @@ -2964,25 +4503,7 @@ exception_sect : * scope of the names extends to the end of the * current block. */ - int lineno = plpgsql_location_to_lineno(@1); PLpgSQL_exception_block *newp = (PLpgSQL_exception_block *)palloc(sizeof(PLpgSQL_exception_block)); - PLpgSQL_variable *var; - - var = plpgsql_build_variable("sqlstate", lineno, - plpgsql_build_datatype(TEXTOID, - -1, - u_sess->plsql_cxt.plpgsql_curr_compile->fn_input_collation), - true, true); - ((PLpgSQL_var *) var)->isconst = true; - newp->sqlstate_varno = var->dno; - - var = plpgsql_build_variable("sqlerrm", lineno, - plpgsql_build_datatype(TEXTOID, - -1, - u_sess->plsql_cxt.plpgsql_curr_compile->fn_input_collation), - true, true); - ((PLpgSQL_var *) var)->isconst = true; - newp->sqlerrm_varno = var->dno; $$ = newp; } @@ -3040,7 +4561,13 @@ proc_condition : any_identifier if (PLPGSQL_DTYPE_ROW == yylval.wdatum.datum->dtype) { PLpgSQL_condition *newp = NULL; - PLpgSQL_row * row = ( PLpgSQL_row* ) u_sess->plsql_cxt.plpgsql_Datums[yylval.wdatum.datum->dno]; + PLpgSQL_row* row = (PLpgSQL_row*)yylval.wdatum.datum; + if (!row->ispkg) { + row = ( PLpgSQL_row* ) u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[yylval.wdatum.dno]; + } else { + PLpgSQL_package* pkg = row->pkg; + row = ( PLpgSQL_row* )pkg->datums[row->dno]; + } TupleDesc rowtupdesc = row ? row->rowtupdesc : NULL; if(rowtupdesc && @@ -3052,15 +4579,20 @@ proc_condition : any_identifier newp->next = NULL; } - if(NULL == newp) - ereport(ERROR, + if(NULL == newp) { + const char* message = "unrecognized exception condition "; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_UNDEFINED_OBJECT), errmsg("unrecognized exception condition \"%s\"", row? row->refname : "??"))); + } $$ = newp; } - else + else { + u_sess->plsql_cxt.plpgsql_yylloc = plpgsql_yylloc; $$ = plpgsql_parse_err_condition($1); + } } else { @@ -3102,24 +4634,26 @@ expr_until_semi : char *name = NULL; bool isCallFunc = false; PLpgSQL_expr* expr = NULL; - + List* funcNameList = NULL; if (plpgsql_is_token_match2(T_WORD, '(') || plpgsql_is_token_match2(T_CWORD,'(')) { tok = yylex(); if (T_WORD == tok) { name = yylval.word.ident; + isCallFunc = is_function(name, true, false); } else { checkFuncName(yylval.cword.idents); + funcNameList = yylval.cword.idents; name = NameListToString(yylval.cword.idents); + isCallFunc = is_function(name, true, false, yylval.cword.idents); } - isCallFunc = is_function(name, true, false); } if (isCallFunc) { - stmt = make_callfunc_stmt(name, yylloc, true, false); + stmt = make_callfunc_stmt(name, yylloc, true, false, funcNameList); if (PLPGSQL_STMT_EXECSQL == stmt->cmd_type) expr = ((PLpgSQL_stmt_execsql*)stmt)->sqlstmt; else if (PLPGSQL_STMT_PERFORM == stmt->cmd_type) @@ -3182,10 +4716,6 @@ opt_label : } | any_identifier { -#if 0 - if (plpgsql_ns_lookup_label(plpgsql_ns_top(), $1) == NULL) - yyerror("label does not exist"); -#endif $$ = $1; } ; @@ -3205,9 +4735,14 @@ any_identifier : T_WORD } | T_DATUM { - if ($1.ident == NULL) /* composite name not OK */ + if ($1.ident == NULL && $1.idents == NULL) { yyerror("syntax error"); - $$ = $1.ident; + } else if ($1.ident != NULL) { + $$ = $1.ident; + } else { + char* names = NameListToString($1.idents); + $$ = names; + } } ; @@ -3223,19 +4758,25 @@ unreserved_keyword : | K_CURRENT | K_DEBUG | K_DETAIL + | K_DISTINCT | K_DUMP | K_ERRCODE | K_ERROR + | K_EXCEPT + | K_EXCEPTIONS | K_FIRST | K_FORWARD | K_HINT + | K_INDEX | K_INFO + | K_INTERSECT | K_IS | K_LAST | K_LOG | K_MERGE | K_MESSAGE | K_MESSAGE_TEXT + | K_MULTISET | K_NEXT | K_NO | K_NOTICE @@ -3255,11 +4796,14 @@ unreserved_keyword : | K_ROLLBACK | K_ROW_COUNT | K_ROWTYPE + | K_SAVE | K_SCROLL | K_SLICE | K_SQLSTATE | K_STACKED | K_SYS_REFCURSOR + | K_TABLE + | K_UNION | K_USE_COLUMN | K_USE_VARIABLE | K_VARIABLE_CONFLICT @@ -3272,6 +4816,15 @@ unreserved_keyword : #define MAX_EXPR_PARAMS 1024 +typedef struct { + YYSTYPE lval; /* semantic information */ + YYLTYPE lloc; /* offset in scanbuf */ + int tok; /* token */ + int leng; +} TokenData; +static DList* push_token_stack(int tok, DList* tokenstack); +static TokenData* build_token_data(int token); + /* * Check whether a token represents an "unreserved keyword". * We have various places where we want to recognize a keyword in preference @@ -3308,7 +4861,9 @@ tok_is_keyword(int token, union YYSTYPE *lval, static void word_is_not_variable(PLword *word, int location) { - ereport(ERROR, + const char* message = "it is not a known variable "; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("\"%s\" is not a known variable", word->ident), @@ -3319,7 +4874,9 @@ word_is_not_variable(PLword *word, int location) static void cword_is_not_variable(PLcword *cword, int location) { - ereport(ERROR, + const char* message = "it is not a known variable "; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("\"%s\" is not a known variable", NameListToString(cword->idents)), @@ -3354,22 +4911,29 @@ yylex_inparam(StringInfoData* func_inparam, { PLpgSQL_expr * expr = NULL; - if (*nparams) - appendStringInfoString(func_inparam, ","); + if (nparams != NULL) { + if (*nparams) { + appendStringInfoString(func_inparam, ","); + } + /* + * handle the problem that the function + * arguments can only be variable. the argment validsql is set FALSE to + * ignore sql expression check to the "$n" type of arguments. + */ + expr = read_sql_construct(',', ')', 0, ",|)", "", true, false, false, NULL, tok); - /* - * handle the problem that the function - * arguments can only be variable. the argment validsql is set FALSE to - * ignore sql expression check to the "$n" type of arguments. - */ - expr = read_sql_construct(',', ')', 0, ",|)", "", true, false, false, NULL, tok); + if (*nparams >= MAX_EXPR_PARAMS) { + const char* message = "too many variables specified in SQL statement "; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, + (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), + errmsg("too many variables specified in SQL statement ,more than %d", MAX_EXPR_PARAMS))); + } - if (*nparams >= MAX_EXPR_PARAMS) - ereport(ERROR, - (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), - errmsg("too many variables specified in SQL statement ,more than %d", MAX_EXPR_PARAMS))); - - (*nparams)++; + (*nparams)++; + } else { + expr = read_sql_construct(',', ')', 0, ",|)", "", true, false, false, NULL, tok); + } /* * handle the problem that the function @@ -3384,50 +4948,272 @@ yylex_inparam(StringInfoData* func_inparam, * Description : * Notes : */ -static void +static int yylex_outparam(char** fieldnames, int *varnos, int nfields, PLpgSQL_row **row, PLpgSQL_rec **rec, int *token, + bool is_push_back, bool overload) { *token = yylex(); - + int loc = yylloc; if (T_DATUM == *token) { - if (PLPGSQL_TTYPE_ROW == yylval.wdatum.datum->dtype) + if (PLPGSQL_DTYPE_ROW == yylval.wdatum.datum->dtype) { check_assignable(yylval.wdatum.datum, yylloc); fieldnames[nfields] = pstrdup(NameOfDatum(&yylval.wdatum)); - varnos[nfields] = yylval.wdatum.datum->dno; + int varno = yylval.wdatum.dno; + TokenData* temptokendata = build_token_data(*token); + int temtoken = yylex(); + plpgsql_push_back_token(temtoken); + yylloc = temptokendata->lloc; + yylval = temptokendata->lval; + u_sess->plsql_cxt.curr_compile_context->plpgsql_yyleng = temptokendata->leng; + /* if is a.b.c.d? */ + if ('.' == temtoken) { + varnos[nfields] = read_assignlist(is_push_back, token); + } else { + varnos[nfields] = varno; + *row = (PLpgSQL_row *)yylval.wdatum.datum; + } + if (is_push_back) { + yylloc = temptokendata->lloc; + yylval = temptokendata->lval; + u_sess->plsql_cxt.curr_compile_context->plpgsql_yyleng = temptokendata->leng; + } + pfree_ext(temptokendata); + } + else if (PLPGSQL_DTYPE_RECORD == yylval.wdatum.datum->dtype) + { + check_assignable(yylval.wdatum.datum, yylloc); + fieldnames[nfields] = pstrdup(NameOfDatum(&yylval.wdatum)); + varnos[nfields] = yylval.wdatum.dno; *row = (PLpgSQL_row *)yylval.wdatum.datum; } - else if (PLPGSQL_TTYPE_REC == yylval.wdatum.datum->dtype) + else if (PLPGSQL_DTYPE_REC == yylval.wdatum.datum->dtype) { check_assignable(yylval.wdatum.datum, yylloc); fieldnames[nfields] = pstrdup(NameOfDatum(&yylval.wdatum)); - varnos[nfields] = yylval.wdatum.datum->dno; + varnos[nfields] = yylval.wdatum.dno; *rec = (PLpgSQL_rec *)yylval.wdatum.datum; } - else if (PLPGSQL_TTYPE_SCALAR == yylval.wdatum.datum->dtype) + else if (PLPGSQL_DTYPE_VAR == yylval.wdatum.datum->dtype) + { + check_assignable(yylval.wdatum.datum, yylloc); + fieldnames[nfields] = pstrdup(NameOfDatum(&yylval.wdatum)); + varnos[nfields] = yylval.wdatum.dno; + } + /* when out param is rec.a which res is not define, we pass the check */ + else if (PLPGSQL_DTYPE_RECFIELD == yylval.wdatum.datum->dtype) { check_assignable(yylval.wdatum.datum, yylloc); fieldnames[nfields] = pstrdup(NameOfDatum(&yylval.wdatum)); varnos[nfields] = yylval.wdatum.datum->dno; } - else - ereport(ERROR, + else { + const char* message = "it is not a scalar variable "; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("\"%s\" is not a scalar variable", NameOfDatum(&yylval.wdatum)))); + } + } + else if (T_VARRAY_VAR == *token || T_TABLE_VAR == *token) + { + /* Temporary processing array value for out param */ + check_assignable(yylval.wdatum.datum, yylloc); + fieldnames[nfields] = CopyNameOfDatum(&yylval.wdatum); + varnos[nfields] = read_assignlist(is_push_back, token); + } + else if (T_PACKAGE_VARIABLE == *token) + { + if (PLPGSQL_DTYPE_ROW == yylval.wdatum.datum->dtype) + { + check_assignable(yylval.wdatum.datum, yylloc); + fieldnames[nfields] = pstrdup(NameOfDatum(&yylval.wdatum)); + int varno = yylval.wdatum.dno; + TokenData* temptokendata = build_token_data(*token); + int temtoken = yylex(); + plpgsql_push_back_token(temtoken); + yylloc = temptokendata->lloc; + yylval = temptokendata->lval; + u_sess->plsql_cxt.curr_compile_context->plpgsql_yyleng = temptokendata->leng; + /* if is a.b.c.d? */ + if ('.' == temtoken) { + varnos[nfields] = read_assignlist(is_push_back, token); + } else { + varnos[nfields] = varno; + *row = (PLpgSQL_row *)yylval.wdatum.datum; + } + if (is_push_back) { + yylloc = temptokendata->lloc; + yylval = temptokendata->lval; + u_sess->plsql_cxt.curr_compile_context->plpgsql_yyleng = temptokendata->leng; + } + pfree_ext(temptokendata); + } + else if (PLPGSQL_DTYPE_RECORD == yylval.wdatum.datum->dtype) + { + check_assignable(yylval.wdatum.datum, yylloc); + fieldnames[nfields] = pstrdup(NameOfDatum(&yylval.wdatum)); + varnos[nfields] = yylval.wdatum.dno; + *row = (PLpgSQL_row *)yylval.wdatum.datum; + } + else if (PLPGSQL_DTYPE_VAR == yylval.wdatum.datum->dtype) + { + check_assignable(yylval.wdatum.datum, yylloc); + int type_flag = -1; + get_datum_tok_type(yylval.wdatum.datum, &type_flag); + if (type_flag == -1) { + fieldnames[nfields] = pstrdup(NameOfDatum(&yylval.wdatum)); + varnos[nfields] = yylval.wdatum.dno; + } else { + /* Temporary processing array value for out param */ + fieldnames[nfields] = CopyNameOfDatum(&yylval.wdatum); + varnos[nfields] = read_assignlist(is_push_back, token); + } + } + else { + const char* message = "it is not a scalar variable "; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("\"%s\" is not a scalar variable", + NameOfDatum(&yylval.wdatum)))); + } } else if (overload) { fieldnames[nfields] = NULL; varnos[nfields] = -1; } + return loc; +} + +static int read_assignlist(bool is_push_back, int* token) +{ + int varno = yylval.wdatum.dno; + TokenData* temptokendata = build_token_data(*token); + DList* tokenstack = NULL; + List* assignlist = NULL; + + for (;;) { + int temtoken = yylex(); + if ('(' != temtoken && '[' != temtoken && '.' != temtoken) { + plpgsql_push_back_token(temtoken); + break; + } + + if (is_push_back) { + TokenData* temptokendata1 = build_token_data(temtoken); + tokenstack = dlappend(tokenstack, temptokendata1); + } + + PLpgSQL_expr* expr = NULL; + char* attrname = NULL; + if ('(' == temtoken) { + expr = read_sql_construct6(')', 0, 0, 0, 0, 0, ")", "SELECT ", + true, true, true, NULL, NULL, tokenstack, true); + } else if ('[' == temtoken) { + expr = read_sql_construct6(']', 0, 0, 0, 0, 0, "]", "SELECT ", + true, true, true, NULL, NULL, tokenstack, true); + } else { + int attrtoken = plpgsql_yylex_single(); + attrname = get_attrname(attrtoken); + if (tokenstack != NULL) { + TokenData* temptokendata1 = build_token_data(attrtoken); + tokenstack = dlappend(tokenstack, temptokendata1); + } + } + + MemoryContext oldCxt = MemoryContextSwitchTo(u_sess->plsql_cxt.curr_compile_context->compile_cxt); + if (expr != NULL) { + A_Indices *ai = makeNode(A_Indices); + ai->lidx = NULL; + ai->uidx = (Node*)expr; + assignlist = lappend(assignlist, (Node*)ai); + } else { + Value* v = makeString(pstrdup(attrname)); + assignlist = lappend(assignlist, (Node*)v); + } + MemoryContextSwitchTo(oldCxt); + } + if (assignlist != NULL) { + MemoryContext oldCxt = MemoryContextSwitchTo(u_sess->plsql_cxt.curr_compile_context->compile_cxt); + PLpgSQL_assignlist *newp = NULL; + newp = (PLpgSQL_assignlist*)palloc0(sizeof(PLpgSQL_assignlist)); + newp->dtype = PLPGSQL_DTYPE_ASSIGNLIST; + newp->assignlist = assignlist; + newp->targetno = varno; + varno = plpgsql_adddatum((PLpgSQL_datum*)newp); + MemoryContextSwitchTo(oldCxt); + } + + if (is_push_back) { + if (tokenstack != NULL) { + push_back_token_stack(tokenstack); + } + + /* need restore yylloc or yylval if push back twice */ + yylloc = temptokendata->lloc; + yylval = temptokendata->lval; + u_sess->plsql_cxt.curr_compile_context->plpgsql_yyleng = temptokendata->leng; + } + + pfree_ext(temptokendata); + return varno; +} + +/* push token in tokenstack */ +static DList* push_token_stack(int tok, DList* tokenstack) +{ + TokenData* temptokendata = NULL; + if (tokenstack != NULL) { + temptokendata = build_token_data(tok); + tokenstack = dlappend(tokenstack, temptokendata); + } + return tokenstack; +} + +/* build a TokenData for input token */ +static TokenData* build_token_data(int token) +{ + TokenData* temptokendata = (TokenData*)palloc0(sizeof(TokenData)); + temptokendata->lloc = yylloc; + temptokendata->lval = yylval; + temptokendata->tok = token; + temptokendata->leng = u_sess->plsql_cxt.curr_compile_context->plpgsql_yyleng; + return temptokendata; +} + +/* push back token stored in tokenstack */ +static int push_back_token_stack(DList* tokenstack) +{ + int tok = 0; + if(tokenstack->length > MAX_PUSHBACKS) { + dlist_free(tokenstack, true); + yyerror("array with subscript words too much for overloaded function."); + } else { + DListCell* dlc = NULL; + for (dlc = dlist_tail_cell(tokenstack); dlc != NULL; dlc = lprev(dlc)) { + /* plpgsql_push_back_token function only push yylloc and yylval, + * so assign the token value to them. + */ + TokenData* n = (TokenData*)lfirst(dlc); + tok = n->tok; + yylloc = n->lloc; + yylval = n->lval; + u_sess->plsql_cxt.curr_compile_context->plpgsql_yyleng = n->leng; + plpgsql_push_back_token(tok); + } + dlist_free(tokenstack, true); + } + return tok; } /* @@ -3468,6 +5254,20 @@ plpgsql_parser_funcname(const char *s, char **output, int numidents) pfree_ext(str); } +static int get_func_out_arg_num(char* p_argmodes, int all_arg) +{ + if (all_arg == 0 || p_argmodes == NULL) { + return 0; + } + int out_arg_num = 0; + for (int i = 0; i < all_arg; i++) { + if (p_argmodes[i] == 'o' || p_argmodes[i] == 'b') { + out_arg_num++; + } + } + return out_arg_num; +} + /* * Brief : handle A-style function call. * Description : handle A-style function call. First read the function @@ -3480,7 +5280,7 @@ plpgsql_parser_funcname(const char *s, char **output, int numidents) * Notes : */ static PLpgSQL_stmt * -make_callfunc_stmt(const char *sqlstart, int location, bool is_assign, bool eaten_first_token) +make_callfunc_stmt(const char *sqlstart, int location, bool is_assign, bool eaten_first_token, List* funcNameList, int arrayFuncDno) { int nparams = 0; int nfields = 0; @@ -3518,27 +5318,90 @@ make_callfunc_stmt(const char *sqlstart, int location, bool is_assign, bool eate MemoryContext oldCxt = NULL; bool multi_func = false; + const char *varray_delete = "array_delete(\""; + const char *varray_deleteidx = "array_deleteidx(\""; + const char *varray_deletevarchar = "array_varchar_delete(\""; + const char *varray_deleteinteger = "array_integer_delete(\""; + const char *varray_extend= "array_extendnull(\""; + const char *varray_trim = "array_trim(\""; + /*get the function's name*/ cp[0] = NULL; cp[1] = NULL; cp[2] = NULL; - /* the function make_callfunc_stmt is only to assemble a sql statement, so the context is set to tmp context */ - oldCxt = MemoryContextSwitchTo(u_sess->plsql_cxt.compile_tmp_cxt); - plpgsql_parser_funcname(sqlstart, cp, 3); - if (cp[2] && cp[2][0] != '\0') - funcname = list_make3(makeString(cp[0]), makeString(cp[1]), makeString(cp[2])); - else if (cp[1] && cp[1][0] != '\0') - funcname = list_make2(makeString(cp[0]), makeString(cp[1])); - else - funcname = list_make1(makeString(cp[0])); + if (sqlstart != NULL && (strncmp(sqlstart, varray_delete, strlen(varray_delete)) == 0 + || strncmp(sqlstart, varray_deleteidx, strlen(varray_deleteidx)) == 0 + || strncmp(sqlstart, varray_extend, strlen(varray_extend)) == 0 + || strncmp(sqlstart, varray_trim, strlen(varray_trim)) == 0 + || strncmp(sqlstart, varray_deletevarchar, strlen(varray_deletevarchar)) == 0 + || strncmp(sqlstart, varray_deleteinteger, strlen(varray_deleteinteger)) == 0)) { + unsigned int chIdx = 0; + + if (strncmp(sqlstart, varray_delete, strlen(varray_delete)) == 0) { + chIdx = strlen(varray_delete); + } else if (strncmp(sqlstart, varray_deleteidx, strlen(varray_deleteidx)) == 0) { + chIdx = strlen(varray_deleteidx); + } else if (strncmp(sqlstart, varray_deletevarchar, strlen(varray_deletevarchar)) == 0) { + chIdx = strlen(varray_deletevarchar); + } else if (strncmp(sqlstart, varray_deleteinteger, strlen(varray_deleteinteger)) == 0) { + chIdx = strlen(varray_deleteinteger); + } else if (strncmp(sqlstart, varray_trim, strlen(varray_trim)) == 0) { + chIdx = strlen(varray_trim); + } else { + chIdx = strlen(varray_extend); + } + + initStringInfo(&func_inparas); + appendStringInfoString(&func_inparas, "SELECT "); + appendStringInfoString(&func_inparas, sqlstart); + + if (arrayFuncDno == -1) { + return NULL; + } + + expr = (PLpgSQL_expr *)palloc(sizeof(PLpgSQL_expr)); + expr->dtype = PLPGSQL_DTYPE_EXPR; + expr->query = pstrdup(func_inparas.data); + expr->plan = NULL; + expr->paramnos = NULL; + expr->ns = plpgsql_ns_top(); + expr->idx = (uint32)-1; + + PLpgSQL_stmt_assign *perform = (PLpgSQL_stmt_assign*)palloc0(sizeof(PLpgSQL_stmt_assign)); + perform->cmd_type = PLPGSQL_STMT_ASSIGN;; + perform->lineno = plpgsql_location_to_lineno(location); + perform->varno = arrayFuncDno; + perform->expr = expr; + perform->sqlString = pstrdup(func_inparas.data); + pfree_ext(func_inparas.data); + return (PLpgSQL_stmt *)perform; + } + + /* the function make_callfunc_stmt is only to assemble a sql statement, so the context is set to tmp context */ + oldCxt = MemoryContextSwitchTo(u_sess->plsql_cxt.curr_compile_context->compile_tmp_cxt); + if (funcNameList == NULL) { + plpgsql_parser_funcname(sqlstart, cp, 3); + } else { + funcname= funcNameList; + } + if (funcNameList == NULL) { + if (cp[2] && cp[2][0] != '\0') + funcname = list_make3(makeString(cp[0]), makeString(cp[1]), makeString(cp[2])); + else if (cp[1] && cp[1][0] != '\0') + funcname = list_make2(makeString(cp[0]), makeString(cp[1])); + else + funcname = list_make1(makeString(cp[0])); + } /* search the function */ clist = FuncnameGetCandidates(funcname, -1, NIL, false, false, false); if (!clist) { - ereport(ERROR, + const char* message = "function not exist"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_UNDEFINED_FUNCTION), errmsg("function \"%s\" doesn't exist ", sqlstart))); return NULL; @@ -3549,7 +5412,9 @@ make_callfunc_stmt(const char *sqlstart, int location, bool is_assign, bool eate multi_func = true; if (IsPackageFunction(funcname) == false) { - ereport(ERROR, + const char* message = "function is not exclusive"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_DUPLICATE_FUNCTION), errmsg("function \"%s\" isn't exclusive ", sqlstart))); } @@ -3566,25 +5431,22 @@ make_callfunc_stmt(const char *sqlstart, int location, bool is_assign, bool eate */ if (!HeapTupleIsValid(proctup)) { - ereport(ERROR, + const char* message = "function does not exist"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_UNDEFINED_FUNCTION), errmsg("function \"%s\" doesn't exist ", sqlstart))); return NULL; } /* get the all args informations, only "in" parameters if p_argmodes is null */ narg = get_func_arg_info(proctup,&p_argtypes, &p_argnames, &p_argmodes); - if (p_argmodes) - { - for (i = 0; i < narg; i++) - { - if (p_argmodes[i] == 'i' || p_argmodes[i] == 'b') - { + if (p_argmodes) { + for (i = 0; i < narg; i++) { + if (p_argmodes[i] == 'i' || p_argmodes[i] == 'b') { inArgNum++; } } - } - else - { + } else { inArgNum = narg; } procStruct = (Form_pg_proc) GETSTRUCT(proctup); @@ -3706,19 +5568,22 @@ make_callfunc_stmt(const char *sqlstart, int location, bool is_assign, bool eate appendStringInfoString(&func_inparas, yylval.word.ident); appendStringInfoString(&func_inparas, "=>"); + /* pass => */ (void)yylex(); - yylex_outparam(fieldnames, varnos, pos_outer, &row, &rec, &tok); - if (T_DATUM == tok) + yylex_outparam(fieldnames, varnos, pos_outer, &row, &rec, &tok, true); + if (T_DATUM == tok || T_VARRAY_VAR == tok || T_TABLE_VAR == tok || T_PACKAGE_VARIABLE == tok) { nfields++; - appendStringInfoString(&func_inparas, NameOfDatum(&yylval.wdatum)); + plpgsql_push_back_token(tok); + /* don't need inparam add ',' */ + yylex_inparam(&func_inparas, NULL, &tok); } - - tok = yylex(); nparams++; break; default: - ereport(ERROR, + const char* message = "parameter mode not exist"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_UNEXPECTED_NODE_STATE), errmsg("parameter mode %c doesn't exist", p_argmodes[j]))); } @@ -3758,24 +5623,16 @@ make_callfunc_stmt(const char *sqlstart, int location, bool is_assign, bool eate if (T_PLACEHOLDER == tok) { placeholders++; - if (nparams) - appendStringInfoChar(&func_inparas, ','); - appendStringInfoString(&func_inparas, yylval.word.ident); - nparams++; } - else if (T_DATUM == tok) + else if (T_DATUM == tok || T_VARRAY_VAR == tok || T_TABLE_VAR == tok || T_PACKAGE_VARIABLE == tok) { - if (nparams) - appendStringInfoString(&func_inparas, ","); - appendStringInfoString(&func_inparas, NameOfDatum(&yylval.wdatum)); - nparams++; nfields++; } plpgsql_push_back_token(tok); - yylex_outparam(fieldnames, varnos, pos_inner, &row, &rec, &tok); - - tok = yylex(); + yylex_outparam(fieldnames, varnos, pos_inner, &row, &rec, &tok, true); + plpgsql_push_back_token(tok); + yylex_inparam(&func_inparas, &nparams, &tok); break; case 'b': if (is_assign) @@ -3797,14 +5654,19 @@ make_callfunc_stmt(const char *sqlstart, int location, bool is_assign, bool eate if (T_PLACEHOLDER == tok) placeholders++; plpgsql_push_back_token(tok); - yylex_outparam(fieldnames, varnos, pos_inner, &row, &rec, &tok); - if (T_DATUM == tok) + yylex_outparam(fieldnames, varnos, pos_inner, &row, &rec, &tok, true); + if (T_DATUM == tok || T_VARRAY_VAR == tok || T_TABLE_VAR == tok || T_PACKAGE_VARIABLE == tok) { nfields++; + } + plpgsql_push_back_token(tok); + yylex_inparam(&func_inparas, &nparams, &tok); break; default: - ereport(ERROR, + const char* message = "parameter mode not exist"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_UNEXPECTED_NODE_STATE), errmsg("parameter mode %c doesn't exist", p_argmodes[i]))); } @@ -3816,15 +5678,21 @@ make_callfunc_stmt(const char *sqlstart, int location, bool is_assign, bool eate break; } - if (narg - 1 == i) - ereport(ERROR, + if (narg - 1 == i) { + const char* message = "maybe input something superfluous"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("when invoking function %s, expected \")\", maybe input something superfluous.", sqlstart))); + } - if (',' != tok) - ereport(ERROR, + if (',' != tok) { + const char* message = "invoking function error,check function"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("when invoking function %s, expected \",\"", sqlstart))); + } pfree_ext(argname.data); } } @@ -3845,10 +5713,13 @@ make_callfunc_stmt(const char *sqlstart, int location, bool is_assign, bool eate break; } - if (narg - 1 == i) - ereport(ERROR, + if (narg - 1 == i) { + const char* message = "maybe input something superfluous"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("when invoking function %s, expected \")\", maybe input something superfluous.", sqlstart))); + } } } } @@ -3878,8 +5749,7 @@ make_callfunc_stmt(const char *sqlstart, int location, bool is_assign, bool eate appendStringInfoString(&func_inparas, "=>"); (void)yylex(); - yylex_outparam(fieldnames, varnos, nfields, &row, &rec, &tok, true); - int loc = yylloc; + int loc = yylex_outparam(fieldnames, varnos, nfields, &row, &rec, &tok, false, true); tok = yylex(); int curloc = yylloc; plpgsql_push_back_token(tok); @@ -3891,7 +5761,7 @@ make_callfunc_stmt(const char *sqlstart, int location, bool is_assign, bool eate } else { - yylex_outparam(fieldnames, varnos, nfields, &row, &rec, &tok, true); + yylex_outparam(fieldnames, varnos, nfields, &row, &rec, &tok, true, true); plpgsql_push_back_token(tok); yylex_inparam(&func_inparas, &nparams, &tok); namedarg[nfields] = false; @@ -3910,9 +5780,12 @@ make_callfunc_stmt(const char *sqlstart, int location, bool is_assign, bool eate { if (!is_assign) { - ereport(ERROR, - (errcode(ERRCODE_SYNTAX_ERROR), - errmsg("when invoking function %s, maybe input something superfluous.", sqlstart))); + const char* message = "maybe input something superfluous"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("when invoking function %s, maybe input something superfluous.", sqlstart))); + u_sess->plsql_cxt.have_error = true; } else { @@ -3925,10 +5798,13 @@ make_callfunc_stmt(const char *sqlstart, int location, bool is_assign, bool eate } } - if (!multi_func && inArgNum - i > ndefaultargs) - ereport(ERROR, + if (!multi_func && inArgNum - i > ndefaultargs) { + const char* message = "function has no enough parameters"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_UNDEFINED_FUNCTION), errmsg("function %s has no enough parameters", sqlstart))); + } (void)MemoryContextSwitchTo(oldCxt); @@ -3950,13 +5826,14 @@ make_callfunc_stmt(const char *sqlstart, int location, bool is_assign, bool eate function->fn_is_trigger = false; function->fn_input_collation = InvalidOid; function->out_param_varno = -1; /* set up for no OUT param */ - function->resolve_option = (PLpgSQL_resolve_option)u_sess->plsql_cxt.plpgsql_variable_conflict; + function->resolve_option = GetResolveOption(); function->fn_cxt = CurrentMemoryContext; - estate->ndatums = u_sess->plsql_cxt.plpgsql_nDatums; - estate->datums = (PLpgSQL_datum **)palloc(sizeof(PLpgSQL_datum *) * u_sess->plsql_cxt.plpgsql_nDatums); - for (int i = 0; i < u_sess->plsql_cxt.plpgsql_nDatums; i++) - estate->datums[i] = u_sess->plsql_cxt.plpgsql_Datums[i]; + PLpgSQL_compile_context* curr_compile = u_sess->plsql_cxt.curr_compile_context; + estate->ndatums = curr_compile->plpgsql_nDatums; + estate->datums = (PLpgSQL_datum **)palloc(sizeof(PLpgSQL_datum *) * curr_compile->plpgsql_nDatums); + for (int i = 0; i < curr_compile->plpgsql_nDatums; i++) + estate->datums[i] = curr_compile->plpgsql_Datums[i]; function->cur_estate = estate; function->cur_estate->func = function; @@ -3981,7 +5858,9 @@ make_callfunc_stmt(const char *sqlstart, int location, bool is_assign, bool eate */ if (!HeapTupleIsValid(proctup)) { - ereport(ERROR, + const char* message = "function does not exist"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_UNDEFINED_FUNCTION), errmsg("function \"%s\" doesn't exist ", sqlstart))); return NULL; @@ -4006,7 +5885,20 @@ make_callfunc_stmt(const char *sqlstart, int location, bool is_assign, bool eate } else if (all_arg >= narg) { - if (NULL == rec && NULL == row) + int out_arg_num = get_func_out_arg_num(p_argmodes, all_arg); + /* In multiset function, row maybe not the out arg */ + if (all_arg > 1 && out_arg_num == 1 && row != NULL) { + for (int k = 0; k < all_arg; k++) + { + if (p_argmodes[k] == 'i' && row->dno == varnos[k]) { + row = NULL; + break; + } + } + } + + /* out arg number > 1 should build a row */ + if ((NULL == rec && NULL == row) || out_arg_num > 1) { int new_nfields = 0; int i = 0, j = 0; @@ -4072,14 +5964,18 @@ make_callfunc_stmt(const char *sqlstart, int location, bool is_assign, bool eate if (fieldnames[i] == NULL) { - ereport(ERROR, + const char* message = "Named argument can not be a const"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("Named argument \"%s\" can not be a const", namedargnamses[i]))); } if (row->varnos[pos_outer] > 0) { - ereport(ERROR, + const char* message = "parameter is assigned more than once"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("parameter \"%s\" is assigned more than once", row->fieldnames[pos_outer]))); } @@ -4100,6 +5996,7 @@ make_callfunc_stmt(const char *sqlstart, int location, bool is_assign, bool eate execsql->lineno = plpgsql_location_to_lineno(location); execsql->sqlstmt = expr; execsql->into = row || rec ? true:false; + execsql->bulk_collect = false; execsql->strict = true; execsql->rec = rec; execsql->row = row; @@ -4111,15 +6008,21 @@ make_callfunc_stmt(const char *sqlstart, int location, bool is_assign, bool eate } else { - ereport(ERROR, + const char* message = "function is not exclusive"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_DUPLICATE_FUNCTION), errmsg("function \"%s\" isn't exclusive ", sqlstart))); } } else { - /* if have out parameters, generate row type to store the results. */ - if (nfields && NULL == rec && NULL == row) + /* + * if have out parameters and no row/rec, generate row type to store the results. + * if have row/rec and more than 2 out parameters , also generate row type. + */ + if ((nfields && NULL == rec && NULL == row) || + nfields > 1) { row = (PLpgSQL_row*)palloc0(sizeof(PLpgSQL_row)); row->dtype = PLPGSQL_DTYPE_ROW; @@ -4157,6 +6060,7 @@ make_callfunc_stmt(const char *sqlstart, int location, bool is_assign, bool eate execsql->lineno = plpgsql_location_to_lineno(location); execsql->sqlstmt = expr; execsql->into = row || rec ? true:false; + execsql->bulk_collect = false; execsql->strict = true; execsql->rec = rec; execsql->row = row; @@ -4172,6 +6076,24 @@ make_callfunc_stmt(const char *sqlstart, int location, bool is_assign, bool eate return NULL; } +/* + * Brief : check if it is an log function invoke + * Description : + * in keyword: keyword info + * in no_parenthesis: if no-parenthesis function is called. + * in name: the function name + * returns: true if is a log function. + * Notes : + */ +static bool +is_logfunction(ScanKeyword* keyword, bool no_parenthesis, const char *name) +{ + if (keyword && no_parenthesis && UNRESERVED_KEYWORD == keyword->category && pg_strcasecmp("log", name) != 0) + return false; + else + return true; +} + /* * Brief : check if it is an function invoke * Description : @@ -4182,7 +6104,7 @@ make_callfunc_stmt(const char *sqlstart, int location, bool is_assign, bool eate * Notes : */ static bool -is_function(const char *name, bool is_assign, bool no_parenthesis) +is_function(const char *name, bool is_assign, bool no_parenthesis, List* funcNameList) { ScanKeyword * keyword = NULL; List *funcname = NIL; @@ -4197,9 +6119,10 @@ is_function(const char *name, bool is_assign, bool no_parenthesis) char *cp[3] = {0}; /* the function is_function is only to judge if it's a function call, so memory used in it is all temp */ - AutoContextSwitch plCompileCxtGuard(u_sess->plsql_cxt.compile_tmp_cxt); - - plpgsql_parser_funcname(name, cp, 3); + AutoContextSwitch plCompileCxtGuard(u_sess->plsql_cxt.curr_compile_context->compile_tmp_cxt); + if (funcNameList == NULL) { + plpgsql_parser_funcname(name, cp, 3); + } /* * if A.B.C, it's not a function invoke, because can not use function of @@ -4221,24 +6144,32 @@ is_function(const char *name, bool is_assign, bool no_parenthesis) /* function name can not be reserved keyword */ if (keyword && RESERVED_KEYWORD == keyword->category) return false; - /* and function name can not be unreserved keyword when no-parenthesis function is called.*/ - if(keyword && no_parenthesis && UNRESERVED_KEYWORD == keyword->category) + /* function name can not be unreserved keyword when no-parenthesis function is called. except log function*/ + if (!is_logfunction(keyword, no_parenthesis, cp[0])) + { return false; - - if (cp[2] && cp[2][0] != '\0') - funcname = list_make3(makeString(cp[0]), makeString(cp[1]),makeString(cp[2])); - else if (cp[1] && cp[1][0] != '\0') - funcname = list_make2(makeString(cp[0]), makeString(cp[1])); - else - funcname = list_make1(makeString(cp[0])); - /* search the function */ - clist = FuncnameGetCandidates(funcname, -1, NIL, false, false, false); + } + if (funcNameList == NULL) { + if (cp[2] && cp[2][0] != '\0') + funcname = list_make3(makeString(cp[0]), makeString(cp[1]),makeString(cp[2])); + else if (cp[1] && cp[1][0] != '\0') + funcname = list_make2(makeString(cp[0]), makeString(cp[1])); + else + funcname = list_make1(makeString(cp[0])); + /* search the function */ + clist = FuncnameGetCandidates(funcname, -1, NIL, false, false, false); + } else { + clist = FuncnameGetCandidates(funcNameList, -1, NIL, false, false, false); + } if (!clist) { - if (!is_assign) - ereport(ERROR, + if (!is_assign) { + const char* message = "function does not exist"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_UNDEFINED_FUNCTION), errmsg("function \"%s\" doesn't exist ", name))); + } return false; } else if (clist->next) @@ -4255,10 +6186,70 @@ is_function(const char *name, bool is_assign, bool no_parenthesis) 0, 0, 0); if (!HeapTupleIsValid(proctup)) { - if (!is_assign) - ereport(ERROR, + if (!is_assign) { + const char* message = "function does not exist"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_UNDEFINED_FUNCTION), errmsg("function \"%s\" doesn't exist ", name))); + } + return false; + } + + /* get the all args informations, only "in" parameters if p_argmodes is null */ + narg = get_func_arg_info(proctup,&p_argtypes, &p_argnames, &p_argmodes); + if (p_argmodes) + { + for (i = 0; i < narg; i++) + { + if ('o' == p_argmodes[i]) + { + have_outargs = true; + break; + } + } + } + ReleaseSysCache(proctup); + } + + if (!have_outargs && is_assign) + return false; + + return true;/* passed all test */ + } else if (funcNameList != NULL) { + clist = FuncnameGetCandidates(funcNameList, -1, NIL, false, false, false); + if (!clist) + { + if (!is_assign) { + const char* message = "function does not exist"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, + (errcode(ERRCODE_UNDEFINED_FUNCTION), + errmsg("function \"%s\" doesn't exist ", name))); + } + return false; + } + else if (clist->next) + { + if (is_assign) + return false; + else + return true; + } + else + { + proctup = SearchSysCache(PROCOID, + ObjectIdGetDatum(clist->oid), + 0, 0, 0); + if (!HeapTupleIsValid(proctup)) + { + if (!is_assign) { + const char* message = "function does not exist"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, + (errcode(ERRCODE_UNDEFINED_FUNCTION), + errmsg("function \"%s\" doesn't exist ", name))); + } return false; } @@ -4286,9 +6277,9 @@ is_function(const char *name, bool is_assign, bool no_parenthesis) return false; } -static void checkFuncName(List* funcname) +static void checkFuncName(List* funcname) { - MemoryContext colCxt = MemoryContextSwitchTo(u_sess->plsql_cxt.compile_tmp_cxt); + MemoryContext colCxt = MemoryContextSwitchTo(u_sess->plsql_cxt.curr_compile_context->compile_tmp_cxt); char* name = NameListToString(funcname); Oid packageOid = InvalidOid; Oid namespaceId = InvalidOid; @@ -4302,13 +6293,273 @@ static void checkFuncName(List* funcname) } } if (!OidIsValid(packageOid)) { - ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + const char* message = "function does not exist"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("cross-database references are not implemented: %s", name))); + u_sess->plsql_cxt.have_error = true; } } (void)MemoryContextSwitchTo(colCxt); } +/* + * @brief is_datatype + * check if a given type is a datatype + * @param name constructed type name + * @return true is datatype + * @return false not a datatype + */ +static bool is_paren_friendly_datatype(TypeName *name) +{ + Type type_tup = LookupTypeNameExtended(NULL, name, NULL, false); + if (!HeapTupleIsValid(type_tup)) { + return false; + } + ReleaseSysCache(type_tup); + + /* deal with internal type casts, e.g. timestamp(6) */ + Oid typoid = LookupTypeNameOid(name); + bool preferred = false; + char category = TYPCATEGORY_INVALID; + get_type_category_preferred(typoid, &category, &preferred); + if (category != TYPCATEGORY_ARRAY && category != TYPCATEGORY_COMPOSITE + && category != TYPCATEGORY_TABLEOF && category != TYPCATEGORY_TABLEOF_VARCHAR) { + return false; + } + return true; +} + +/* + * @brief init_array_parse_context + * Initialize array parse context. + */ +static inline void init_array_parse_context(ArrayParseContext *context) +{ + context->list_left_bracket = NULL; + context->list_right_bracket = NULL; + context->list_array_state = NULL; + context->list_datatype = NULL; + context->array_is_empty = false; + context->array_is_nested = false; +} + +/* + * @brief push_array_parse_stack + * Push array parse context stacks. + * @param context array parse context + * @param parenlevel parentheses level, set -1 to push nothing + * @param state array state flag, set -1 to push nothing + */ +static inline void push_array_parse_stack(ArrayParseContext *context, int parenlevel, int state) +{ + if (likely(parenlevel >= 0)) { + context->list_left_bracket = lcons_int(parenlevel, context->list_left_bracket); + context->list_right_bracket = lcons_int(parenlevel, context->list_right_bracket); + } + if (state >= 0) { + context->list_array_state = lcons_int(state, context->list_array_state); + } +} + +/* + * @brief construct_array_start + * Extracted from read_sql_constuct, start of T_VARRAY/T_TABLE array FSM. + * @param ds sql string builder + * @param context array state context + * @param var_type element type + * @param tok current token, should be T_VARRAY/T_TABLE + * @param parenlevel parentheses stack + * @param loc T_VARRAY starting location + */ +static bool construct_array_start(StringInfo ds, ArrayParseContext *context, PLpgSQL_type *var_type, int *tok, + int parenlevel, int loc) +{ + /* Save array token for datatype casts */ + context->list_datatype = lcons(var_type, context->list_datatype); + *tok = yylex(); /* always yylex to parentheses */ + plpgsql_push_back_token(*tok); + /* varray constructor */ + if (*tok == '(') { + appendStringInfoString(ds, "ARRAY"); + push_array_parse_stack(context, parenlevel, ARRAY_START); + } else if (*tok == '[') { + yyerror("syntax error"); /* typename + '[' is not allowed */ + return false; /* compiler happy */ + } else { /* coerce? no need for extra check, leave it to main parser */ + plpgsql_append_source_text(ds, loc, yylloc); + } + return true; +} + +/* + * @brief get_real_elemtype + * Get the real element type from a table or array + * @param type any type + * @return PLpgSQL_type* element type + */ +static PLpgSQL_type *get_real_elemtype(PLpgSQL_type *type) +{ + HeapTuple type_tup = SearchSysCache1(TYPEOID, ObjectIdGetDatum(type->typoid)); + if (!HeapTupleIsValid(type_tup)) { + ereport(ERROR, (errmodule(MOD_PLSQL), + errcode(ERRCODE_CACHE_LOOKUP_FAILED), + errmsg("cache lookup failed for type %u, type Oid is invalid", type->typoid))); + } + if (((Form_pg_type)GETSTRUCT(type_tup))->typcategory == TYPCATEGORY_ARRAY && + type->collectionType == PLPGSQL_COLLECTION_NONE) { + type->collectionType = PLPGSQL_COLLECTION_ARRAY; + } + if (type->collectionType != PLPGSQL_COLLECTION_TABLE && + type->collectionType != PLPGSQL_COLLECTION_ARRAY) { + /* Guarding condition(white list) */ + ReleaseSysCache(type_tup); + return type; + } + PLpgSQL_type* typ = NULL; + Oid base_oid = ((Form_pg_type)GETSTRUCT(type_tup))->typelem; + HeapTuple base_type_tup = SearchSysCache1(TYPEOID, ObjectIdGetDatum(base_oid)); + if (!HeapTupleIsValid(base_type_tup)) { + ereport(ERROR, (errmodule(MOD_PLSQL), + errcode(ERRCODE_CACHE_LOOKUP_FAILED), + errmsg("cache lookup failed for type %u, type Oid is invalid", base_oid))); + } + if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile == NULL) + { + typ = build_datatype(base_type_tup, type->atttypmod, 0); + } else { + typ = build_datatype(base_type_tup, type->atttypmod, + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile->fn_input_collation); + } + typ->collectionType = type->collectionType; + ReleaseSysCache(base_type_tup); + ReleaseSysCache(type_tup); + pfree_ext(type); + return typ; +} + +/* + * @brief construct_object_type + * Construct object type to strings. + * @param ds sql string builder + * @param context array state context + * @param name object typename + * @param tok current token, should be T_WORD/T_CWORD + * @param parenlevel parentheses stack + * @param curloc current parsing location, usually the following token + * @param loc T_WORD/T_CWORD starting location + */ +static bool construct_object_type(StringInfo ds, ArrayParseContext *context, TypeName *name, int *tok, + int parenlevel, int curloc, int loc) +{ + if (*tok != '(' || u_sess->attr.attr_sql.sql_compatibility != A_FORMAT) { + curloc = yylloc; /* new token location */ + plpgsql_append_source_text(ds, loc, curloc); + context->array_is_nested = false; + return true; + } + + if (context->array_is_nested) { + push_array_parse_stack(context, parenlevel, ARRAY_ACCESS); + curloc = yylloc; /* new token location */ + plpgsql_append_source_text(ds, loc, curloc); + context->array_is_nested = false; + return true; + } + + /* + * Support various datatype constructor. We expect the T_WORD with format like: + * 'var := foo(bar)' or inside other objects. + */ + char *name_str = NameListToString(name->names); + int toksz = strlen(name_str); + if (yylloc - curloc != toksz || !is_paren_friendly_datatype(name)) { /* NOTE: curloc here is T_WORD/T_CWORD location */ + curloc = yylloc; /* new token location */ + plpgsql_append_source_text(ds, loc, curloc); + pfree_ext(name_str); + return true; + } + PLpgSQL_type *type = parse_datatype(name_str, loc);\ + pfree_ext(name_str); + + type = get_real_elemtype(type); + if (type->collectionType == PLPGSQL_COLLECTION_ARRAY || \ + type->collectionType == PLPGSQL_COLLECTION_TABLE) { + return construct_array_start(ds, context, type, tok, parenlevel, loc); + } + appendStringInfoString(ds, "ROW"); + return true; +} + +/* + * @brief construct_word + * Construct T_WORD, extracted from read_sql_constuct. + * @param ds sql string builder + * @param context array state context + * @param tok current token, should be T_WORD + * @param parenlevel parentheses stack + * @param loc location of T_WORD + */ +static bool construct_word(StringInfo ds, ArrayParseContext *context, int *tok, int parenlevel, int loc) +{ + char *name = NULL; + name = yylval.word.ident; + int curloc = yylloc; + *tok = yylex(); + plpgsql_push_back_token(*tok); + return construct_object_type(ds, context, makeTypeName(name), tok, parenlevel, curloc, loc); +} + +/* + * @brief construct_cword + * Construct T_CWORD, extracted from read_sql_constuct. + * @param ds sql string builder + * @param context array state context + * @param tok current token, should be T_CWORD + * @param parenlevel parentheses stack + * @param loc location of T_CWORD + */ +static bool construct_cword(StringInfo ds, ArrayParseContext *context, int *tok, int parenlevel, int loc) +{ + int nnames = 0; + List *idents = yylval.cword.idents; + char *word1 = NULL; + char *word2 = NULL; + char *word3 = NULL; + if (list_length(idents) == 2) { + word1 = strVal(linitial(idents)); + word2 = strVal(lsecond(idents)); + } else if (list_length(idents) == 3) { + word1 = strVal(linitial(idents)); + word2 = strVal(lsecond(idents)); + word3 = strVal(lthird(idents)); + } else { + yyerror("syntax error"); + } + if (u_sess->attr.attr_sql.sql_compatibility != A_FORMAT) { + int dno = -1; + char *name = NameListToString(idents); + if (plpgsql_ns_lookup(plpgsql_ns_top(), false, word1, word2, word3, &nnames) == NULL) { + dno = plpgsql_pkg_add_unknown_var_to_namespace(yylval.cword.idents); + } + if (dno != -1) { + appendStringInfoString(ds, name); + appendStringInfoString(ds, " "); + } + pfree_ext(name); + /* This originally was a fall through to default branch */ + *tok = yylex(); + int curloc = yylloc; + plpgsql_push_back_token(*tok); + plpgsql_append_source_text(ds, loc, curloc); + return true; + } + int curloc = yylloc; + *tok = yylex(); + plpgsql_push_back_token(*tok); + return construct_object_type(ds, context, makeTypeNameFromNameList(idents), tok, parenlevel, curloc, loc); +} + /* Convenience routine to read an expression with one possible terminator */ static PLpgSQL_expr * read_sql_expression(int until, const char *expected) @@ -4359,20 +6610,24 @@ read_sql_stmt(const char *sqlstart) * (this is only interesting if until2 or until3 isn't zero) */ static PLpgSQL_expr * -read_sql_construct5(int until, +read_sql_construct6(int until, int until2, int until3, int until4, int until5, + int until6, const char *expected, const char *sqlstart, bool isexpression, bool valid_sql, bool trim, int *startloc, - int *endtoken) + int *endtoken, + DList* tokenstack, + bool issaveexpr) { - int tok; + int tok = 0; + int prev_tok = 0; StringInfoData ds; IdentifierLookup save_IdentifierLookup; int startlocation = -1; @@ -4386,38 +6641,39 @@ read_sql_construct5(int until, */ char buf[NAMEDATALEN + 128]; bool ds_changed = false; - List *list_left_bracket = 0; - List* list_right_bracket = 0; + ArrayParseContext context; + List *idents = 0; const char left_bracket[2] = "["; const char right_bracket[2] = "]"; - const char left_brack[2] = "("; - const char right_brack[2] = ")"; + const char left_parentheses[2] = "("; + const char right_parentheses[2] = ")"; int loc = 0; int curloc = 0; - List* idents = NULL; - char* word1 = NULL; - char* word2 = NULL; - int nnames = 0; - int dno = -1; + int brack_cnt = 0; + + PLpgSQL_compile_context* curr_compile = u_sess->plsql_cxt.curr_compile_context; /* * ds will do a lot of enlarge, which need to relloc the space, and the old space * will be return to current context. So if we don't switch the context, the original * context will be Plpgsql function context, which has a long term life cycle, * may cause memory accumulation. */ - oldCxt = MemoryContextSwitchTo(u_sess->plsql_cxt.compile_tmp_cxt); + oldCxt = MemoryContextSwitchTo(curr_compile->compile_tmp_cxt); initStringInfo(&ds); MemoryContextSwitchTo(oldCxt); appendStringInfoString(&ds, sqlstart); /* special lookup mode for identifiers within the SQL text */ - save_IdentifierLookup = u_sess->plsql_cxt.plpgsql_IdentifierLookup; - u_sess->plsql_cxt.plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_EXPR; + save_IdentifierLookup = curr_compile->plpgsql_IdentifierLookup; + curr_compile->plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_EXPR; + init_array_parse_context(&context); for (;;) { + prev_tok = tok; tok = yylex(); + tokenstack = push_token_stack(tok, tokenstack); loc = yylloc; if (startlocation < 0) /* remember loc of first token */ startlocation = yylloc; @@ -4431,13 +6687,15 @@ read_sql_construct5(int until, break; if (tok == until5 && parenlevel == 0) break; + if (tok == until6 && parenlevel == 0) + break; if (tok == '(' || tok == '[') parenlevel++; else if (tok == ')' || tok == ']') { parenlevel--; if (parenlevel < 0) - yyerror("mismatched parentheses"); + yyerror("mismatched parentheses", true); } /* * End of function definition is an error, and we don't expect to @@ -4447,19 +6705,24 @@ read_sql_construct5(int until, if (tok == 0 || tok == ';') { if (parenlevel != 0) - yyerror("mismatched parentheses"); - if (isexpression) + yyerror("mismatched parentheses", true); + if (isexpression) { + const char* message = "missing something at end of SQL expression"; + InsertErrorMessage(message, plpgsql_yylloc); ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("missing \"%s\" at end of SQL expression", expected), parser_errposition(yylloc))); - else + } else { + const char* message = "missing something at end of SQL expression"; + InsertErrorMessage(message, plpgsql_yylloc); ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("missing \"%s\" at end of SQL statement", expected), parser_errposition(yylloc))); + } } switch (tok) @@ -4496,102 +6759,517 @@ read_sql_construct5(int until, appendStringInfo(&ds, " __gsdb_cursor_attri_%d_rowcount__ ", yylval.ival); ds_changed = true; break; + case T_PACKAGE_CURSOR_NOTFOUND: + appendStringInfo(&ds, " %s.__gsdb_cursor_attri_%d_notfound__ ", + yylval.wdatum.ident, yylval.wdatum.dno); + ds_changed = true; + break; + case T_PACKAGE_CURSOR_ISOPEN: + appendStringInfo(&ds, " %s.__gsdb_cursor_attri_%d_isopen__ ", + yylval.wdatum.ident, yylval.wdatum.dno); + ds_changed = true; + break; + case T_PACKAGE_CURSOR_ROWCOUNT: + appendStringInfo(&ds, " %s.__gsdb_cursor_attri_%d_rowcount__ ", + yylval.wdatum.ident, yylval.wdatum.dno); + ds_changed = true; + break; + case T_PACKAGE_CURSOR_FOUND: + appendStringInfo(&ds, " %s.__gsdb_cursor_attri_%d_found__ ", + yylval.wdatum.ident, yylval.wdatum.dno); + ds_changed = true; + break; case T_VARRAY_VAR: + idents = yylval.wdatum.idents; + if (idents == NIL) { + AddNamespaceIfPkgVar(yylval.wdatum.ident); + } tok = yylex(); - if('(' == tok) - { - list_left_bracket = lcons_int(parenlevel,list_left_bracket); - list_right_bracket = lcons_int(parenlevel,list_right_bracket); - } + if (tok == '(' || tok == '[') { + push_array_parse_stack(&context, parenlevel, ARRAY_ACCESS); + } curloc = yylloc; plpgsql_push_back_token(tok); - plpgsql_append_source_text(&ds, loc, curloc); - ds_changed = true; - break; - case T_ARRAY_FIRST: - appendStringInfo(&ds, " ARRAY_LOWER(%s, 1) ", ((Value *)linitial(yylval.wdatum.idents))->val.str); - ds_changed = true; - break; - case T_ARRAY_LAST: - appendStringInfo(&ds, " ARRAY_UPPER(%s, 1) ", ((Value *)linitial(yylval.wdatum.idents))->val.str); - ds_changed = true; - break; - case T_ARRAY_COUNT: - appendStringInfo(&ds, " ARRAY_LENGTH(%s, 1) ", ((Value *)linitial(yylval.wdatum.idents))->val.str); - ds_changed = true; - break; - case ')': - if (list_right_bracket && list_right_bracket->length - && linitial_int(list_right_bracket) == parenlevel) - { - appendStringInfoString(&ds, right_bracket); - list_right_bracket = list_delete_first(list_right_bracket); - } - else - appendStringInfoString(&ds,right_brack); - ds_changed = true; - break; - case '(': - if (list_left_bracket && list_left_bracket->length - && linitial_int(list_left_bracket) == parenlevel-1) - { - appendStringInfoString(&ds, left_bracket); - list_left_bracket = list_delete_first(list_left_bracket); - } - else - appendStringInfoString(&ds, left_brack); - ds_changed = true; - break; - case T_VARRAY: - if ('(' == yylex() && ')' == yylex()) - { - snprintf(buf, sizeof(buf), " NULL "); - appendStringInfoString(&ds, buf); + if (list_length(idents) >= 3) { + plpgsql_cast_reference_list(idents, &ds, false); ds_changed = true; - } - else - { - /* do nothing */ - } - break; - case T_CWORD: - idents = yylval.cword.idents; - if (list_length(idents) == 2) { - word1 = strVal(linitial(idents)); - word2 = strVal(lsecond(idents)); - } else if (list_length(idents) == 3) { - word1 = strVal(lsecond(idents)); - word2 = strVal(lthird(idents)); - }else { - yyerror("syntax error"); - } - if (plpgsql_ns_lookup(plpgsql_ns_top(), false, word1, word2, NULL, &nnames) == NULL) { - dno = plpgsql_pkg_add_unknown_var_to_namespace(yylval.cword.idents); - } - if (dno != -1) { - appendStringInfoString(&ds, NameListToString(idents)); + break; + } else { + plpgsql_append_source_text(&ds, loc, curloc); ds_changed = true; break; } + case T_ARRAY_FIRST: + { + Oid indexType = get_table_index_type(yylval.wdatum.datum); + if (indexType == VARCHAROID) { + appendStringInfo(&ds, "ARRAY_VARCHAR_FIRST("); + CastArrayNameToArrayFunc(&ds, yylval.wdatum.idents, false); + } else if (indexType == INT4OID) { + appendStringInfo(&ds, "ARRAY_INTEGER_FIRST("); + CastArrayNameToArrayFunc(&ds, yylval.wdatum.idents, false); + } else { + appendStringInfo(&ds, "ARRAY_LOWER("); + CastArrayNameToArrayFunc(&ds, yylval.wdatum.idents); + appendStringInfo(&ds, "1 "); + } + + int tok = yylex(); + if(tok == '(') { + push_array_parse_stack(&context, -1, NOT_AN_ARRAY); + parenlevel++; + ds_changed = true; + tokenstack = push_token_stack(tok, tokenstack); + } else { + appendStringInfo(&ds, ") "); + ds_changed = true; + plpgsql_push_back_token(tok); + } + break; + } + case T_ARRAY_LAST: + { + Oid indexType = get_table_index_type(yylval.wdatum.datum); + if (indexType == VARCHAROID) { + appendStringInfo(&ds, "ARRAY_VARCHAR_LAST("); + CastArrayNameToArrayFunc(&ds, yylval.wdatum.idents, false); + } else if (indexType == INT4OID) { + appendStringInfo(&ds, "ARRAY_INTEGER_LAST("); + CastArrayNameToArrayFunc(&ds, yylval.wdatum.idents, false); + } else { + appendStringInfo(&ds, "ARRAY_UPPER("); + CastArrayNameToArrayFunc(&ds, yylval.wdatum.idents); + appendStringInfo(&ds, "1 "); + } + + int tok = yylex(); + if(tok == '(') { + push_array_parse_stack(&context, -1, NOT_AN_ARRAY); + parenlevel++; + ds_changed = true; + tokenstack = push_token_stack(tok, tokenstack); + } else { + appendStringInfo(&ds, ") "); + ds_changed = true; + plpgsql_push_back_token(tok); + } + break; + } + case T_ARRAY_COUNT: + { + Oid indexType = get_table_index_type(yylval.wdatum.datum); + if (indexType == VARCHAROID || indexType == INT4OID) { + appendStringInfo(&ds, "ARRAY_INDEXBY_LENGTH("); + CastArrayNameToArrayFunc(&ds, yylval.wdatum.idents); + appendStringInfo(&ds, "1 "); + } else { + appendStringInfo(&ds, "ARRAY_LENGTH("); + CastArrayNameToArrayFunc(&ds, yylval.wdatum.idents); + appendStringInfo(&ds, "1 "); + } + + int tok = yylex(); + if(tok == '(') { + push_array_parse_stack(&context, -1, NOT_AN_ARRAY); + parenlevel++; + ds_changed = true; + tokenstack = push_token_stack(tok, tokenstack); + } else { + appendStringInfo(&ds, ") "); + ds_changed = true; + plpgsql_push_back_token(tok); + } + break; + } + case T_ARRAY_EXISTS: + { + Oid indexType = get_table_index_type(yylval.wdatum.datum); + if (indexType == VARCHAROID) { + appendStringInfo(&ds, "ARRAY_VARCHAR_EXISTS("); + CastArrayNameToArrayFunc(&ds, yylval.wdatum.idents); + } else if (indexType == INT4OID) { + appendStringInfo(&ds, "ARRAY_INTEGER_EXISTS("); + CastArrayNameToArrayFunc(&ds, yylval.wdatum.idents); + } else { + appendStringInfo(&ds, "ARRAY_EXISTS("); + CastArrayNameToArrayFunc(&ds, yylval.wdatum.idents); + } + + int tok = yylex(); + if('(' == tok) { + push_array_parse_stack(&context, -1, NOT_AN_ARRAY); + parenlevel++; + ds_changed = true; + tokenstack = push_token_stack(tok, tokenstack); + } else { + plpgsql_push_back_token(tok); + yyerror("syntax error"); + } + break; + } + case T_ARRAY_PRIOR: + { + Oid indexType = get_table_index_type(yylval.wdatum.datum); + if (indexType == VARCHAROID) { + appendStringInfo(&ds, "ARRAY_VARCHAR_PRIOR("); + CastArrayNameToArrayFunc(&ds, yylval.wdatum.idents); + } else if (indexType == INT4OID) { + appendStringInfo(&ds, "ARRAY_INTEGER_PRIOR("); + CastArrayNameToArrayFunc(&ds, yylval.wdatum.idents); + } else { + appendStringInfo(&ds, "ARRAY_PRIOR("); + CastArrayNameToArrayFunc(&ds, yylval.wdatum.idents); + } + + int tok = yylex(); + if('(' == tok) { + push_array_parse_stack(&context, -1, NOT_AN_ARRAY); + parenlevel++; + ds_changed = true; + tokenstack = push_token_stack(tok, tokenstack); + } else { + plpgsql_push_back_token(tok); + yyerror("syntax error"); + } + break; + } + case T_ARRAY_NEXT: + { + Oid indexType = get_table_index_type(yylval.wdatum.datum); + if (indexType == VARCHAROID) { + appendStringInfo(&ds, "ARRAY_VARCHAR_NEXT("); + CastArrayNameToArrayFunc(&ds, yylval.wdatum.idents); + } else if (indexType == INT4OID) { + appendStringInfo(&ds, "ARRAY_INTEGER_NEXT("); + CastArrayNameToArrayFunc(&ds, yylval.wdatum.idents); + } else { + appendStringInfo(&ds, "ARRAY_NEXT("); + CastArrayNameToArrayFunc(&ds, yylval.wdatum.idents); + } + + int tok = yylex(); + if('(' == tok) { + push_array_parse_stack(&context, -1, NOT_AN_ARRAY); + parenlevel++; + ds_changed = true; + tokenstack = push_token_stack(tok, tokenstack); + } else { + plpgsql_push_back_token(tok); + yyerror("syntax error"); + } + break; + } + case ']': + brack_cnt--; + /* fall through */ + case ')': + if (context.list_right_bracket && context.list_right_bracket->length + && linitial_int(context.list_right_bracket) == parenlevel) { + /* append bracket instead of parentheses */ + appendStringInfoString(&ds, right_bracket); + ds_changed = true; + context.list_right_bracket = list_delete_first(context.list_right_bracket); + + if (context.array_is_empty) { + /* NOTE: empty array state will remain ARRAY_START until now */ + PLpgSQL_type *type = (PLpgSQL_type *)linitial(context.list_datatype); + plpgsql_append_object_typename(&ds, type); + appendStringInfoString(&ds, left_bracket); + appendStringInfoString(&ds, right_bracket); + context.array_is_empty = false; + } + + /* + * N-D Array accessing pattern: + * If another pair of brackets(parentheses) are right behind an array + * access statment like 'array(i)' or 'array[i], they are very likely + * to be part of the array statement too. Therefore, we need to make + * sure we interpret them as brackets. + */ + if (IS_ARRAY_STATE(context.list_array_state, ARRAY_ACCESS)) { + tok = yylex(); + plpgsql_push_back_token(tok); + if (tok == '(' || tok == '[') { /* array(1)(1) */ + push_array_parse_stack(&context, parenlevel, -1); + break; + } else if (tok == '.') { /* array(1).col(1) */ + context.array_is_nested = true; + } + } else { + /* It is important to pop the array dno stack at the end. */ + context.list_datatype = list_delete_first(context.list_datatype); + } + + /* always pop the array state stack, including ARRAY_ACCESS */ + context.list_array_state = list_delete_first(context.list_array_state); + } else { + /* pop excess array state stack, see case '(' below */ + if (IS_ARRAY_STATE(context.list_array_state, NOT_AN_ARRAY)) { + context.list_array_state = list_delete_first(context.list_array_state); + } + + if (tok ==']') { + appendStringInfoString(&ds, right_bracket); + } else { + appendStringInfoString(&ds, right_parentheses); + } + } + ds_changed = true; + break; + case '[': + brack_cnt++; + /* fall through */ + case '(': + if (context.list_left_bracket && context.list_left_bracket->length + && linitial_int(context.list_left_bracket) == parenlevel - 1) { + appendStringInfoString(&ds, left_bracket); + context.list_left_bracket = list_delete_first(context.list_left_bracket); + + /* in the case of '()' or '[]', we need to append NULL */ + prev_tok = tok; + tok = yylex(); + plpgsql_push_back_token(tok); + if ((prev_tok == '(' && tok == ')') || (prev_tok == '[' && tok == ']')) { + if (IS_ARRAY_STATE(context.list_array_state, ARRAY_ACCESS)) { + yyerror("empty index"); +#ifndef ENABLE_MULTIPLE_NODES + if (u_sess->attr.attr_common.plsql_show_all_error) { + u_sess->plsql_cxt.have_error = true; + tok = yylex(); // lex ) or ] + tok = yylex(); // lex ; + return NULL; + } +#endif + } + context.array_is_empty = true; + } else if (IS_ARRAY_STATE(context.list_array_state, ARRAY_START)) { + SET_ARRAY_STATE(context.list_array_state, ARRAY_ELEMENT); + /* always append left parentheses at start of each element */ + appendStringInfoString(&ds, left_parentheses); + } + } else { + /* array state stack up with none */ + if (IS_ARRAY_STATE(context.list_array_state, ARRAY_ELEMENT) || + IS_ARRAY_STATE(context.list_array_state, NOT_AN_ARRAY)) { + context.list_array_state = lcons_int(NOT_AN_ARRAY, context.list_array_state); + } + + if (tok =='[') { + appendStringInfoString(&ds, left_bracket); + } else { + appendStringInfoString(&ds, left_parentheses); + } + } + ds_changed = true; + break; + case '.': + tok = yylex(); + plpgsql_push_back_token(tok); + curloc = yylloc; + if (context.array_is_nested && tok != T_WORD && tok != T_CWORD) { + context.list_array_state = list_delete_first(context.list_array_state); + context.array_is_nested = false; + } + plpgsql_append_source_text(&ds, loc, curloc); + ds_changed = true; + break; + case T_TABLE_VAR: + { + /* + * table var name may be schema.pkg.table_var + * so the name length should NAMEDATALEN with quotation marks *3 + */ + const int tablevar_namelen = NAMEDATALEN * 3 + 6; + char tableName1[tablevar_namelen] = {0}; + idents = yylval.wdatum.idents; + if (idents == NIL) { + AddNamespaceIfPkgVar(yylval.wdatum.ident); + } + copy_table_var_indents(tableName1, yylval.wdatum.ident, tablevar_namelen); + PLpgSQL_datum* datum = yylval.wdatum.datum; + tok = yylex(); + if('(' == tok) { + push_array_parse_stack(&context, parenlevel, ARRAY_ACCESS); + } else if (u_sess->attr.attr_sql.sql_compatibility == A_FORMAT && K_MULTISET == tok) { + Oid typeOid = get_table_type(datum); + read_multiset(&ds, tableName1, typeOid); + ds_changed = true; + break; + } + curloc = yylloc; + plpgsql_push_back_token(tok); + if (list_length(idents) >= 3) { + plpgsql_cast_reference_list(idents, &ds, false); + ds_changed = true; + break; + } else { + plpgsql_append_source_text(&ds, loc, curloc); + ds_changed = true; + break; + } + } + case T_PACKAGE_VARIABLE: + { + int type_flag = -1; + get_datum_tok_type(yylval.wdatum.datum, &type_flag); + idents = yylval.wdatum.idents; + + if (type_flag == PLPGSQL_TOK_TABLE_VAR) { + /* + * table var name may be schema.pkg.table_var + * so the name length should NAMEDATALEN with quotation marks *3 + */ + const int tablevar_namelen = NAMEDATALEN * 3 + 6; + + char tableName1[tablevar_namelen] = {0}; + idents = yylval.wdatum.idents; + copy_table_var_indents(tableName1, yylval.wdatum.ident, tablevar_namelen); + PLpgSQL_datum* datum = yylval.wdatum.datum; + tok = yylex(); + if('(' == tok) + { + push_array_parse_stack(&context, parenlevel, NOT_AN_ARRAY); + } else if (u_sess->attr.attr_sql.sql_compatibility == A_FORMAT && K_MULTISET == tok) { + Oid typeOid = get_table_type(datum); + read_multiset(&ds, tableName1, typeOid); + ds_changed = true; + break; + } + curloc = yylloc; + plpgsql_push_back_token(tok); + if (PkgVarNeedCast(idents)) { + plpgsql_cast_reference_list(idents, &ds, true); + } else { + plpgsql_append_source_text(&ds, loc, curloc); + } + ds_changed = true; + break; + } else if (type_flag == PLPGSQL_TOK_VARRAY_VAR) { + tok = yylex(); + if (tok == '(' || tok == '[') { + push_array_parse_stack(&context, parenlevel, ARRAY_ACCESS); + } + curloc = yylloc; + plpgsql_push_back_token(tok); + if (PkgVarNeedCast(idents)) { + plpgsql_cast_reference_list(idents, &ds, true); + } else { + plpgsql_append_source_text(&ds, loc, curloc); + } + ds_changed = true; + break; + } else { + tok = yylex(); + curloc = yylloc; + plpgsql_push_back_token(tok); + + if (PkgVarNeedCast(idents)) { + plpgsql_cast_reference_list(idents, &ds, true); + } else { + plpgsql_append_source_text(&ds, loc, curloc); + } + + ds_changed = true; + break; + } + } + case T_TABLE: + case T_VARRAY: + { + if (u_sess->attr.attr_sql.sql_compatibility != A_FORMAT) { + /* non A_FORMAT case, append 'NULL' and leave it. */ + int first_tok = yylex(); + tokenstack= push_token_stack(first_tok, tokenstack); + + int second_tok = yylex(); + tokenstack = push_token_stack(first_tok, tokenstack); + if (first_tok == '(' && second_tok == ')') { + snprintf(buf, sizeof(buf), " NULL "); + appendStringInfoString(&ds, buf); + } + ds_changed = true; + break; + } + int dno = yylval.wdatum.datum->dno; + PLpgSQL_var *var = (PLpgSQL_var *)u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[dno]; + ds_changed = construct_array_start(&ds, &context, var->datatype, &tok, parenlevel, loc); + break; + } + case T_DATUM: + idents = yylval.wdatum.idents; + if(prev_tok != '.' && list_length(idents) >= 3) { + plpgsql_cast_reference_list(idents, &ds, false); + ds_changed = true; + break; + } else { + tok = yylex(); + curloc = yylloc; + plpgsql_push_back_token(tok); + plpgsql_append_source_text(&ds, loc, curloc); + ds_changed = true; + break; + } + case T_WORD: + AddNamespaceIfPkgVar(yylval.word.ident); + ds_changed = construct_word(&ds, &context, &tok, parenlevel, loc); + break; + case T_CWORD: + ds_changed = construct_cword(&ds, &context, &tok, parenlevel, loc); + break; default: tok = yylex(); if(tok > INT_MAX) { - ereport(ERROR, + const char* message = "token value is bigger than INT_MAX"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_UNDEFINED_FUNCTION), errmsg("token value %d is bigger than INT_MAX ", tok))); } curloc = yylloc; plpgsql_push_back_token(tok); - plpgsql_append_source_text(&ds, loc, curloc); + if (tok == T_VARRAY_VAR && pushed_bulk_exception()) { + plpgsql_append_source_text(&ds, loc, curloc - 4); + } else { + plpgsql_append_source_text(&ds, loc, curloc); + } ds_changed = true; break; } + + /* peek one token */ + tok = yylex(); + plpgsql_push_back_token(tok); + + /* we are expecting an element, but a seperator/end of array is found, need coerce */ + if ((tok == ',' || tok == ')') && IS_ARRAY_STATE(context.list_array_state, ARRAY_ELEMENT)) { + SET_ARRAY_STATE(context.list_array_state, ARRAY_COERCE); + } + + /* this is done after seperator is appended, get next element */ + if (IS_ARRAY_STATE(context.list_array_state, ARRAY_SEPERATOR)) { + /* always append left parentheses at start of each element */ + appendStringInfoString(&ds, left_parentheses); + /* Note: we assume that all seperators takes EXACTLY ONE iteration to process */ + SET_ARRAY_STATE(context.list_array_state, ARRAY_ELEMENT); + } + + /* add coerce at the end of each element, then append the seperator next iteration */ + if (IS_ARRAY_STATE(context.list_array_state, ARRAY_COERCE)) { + /* always append right parentheses at end of each element */ + appendStringInfoString(&ds, right_parentheses); + plpgsql_append_object_typename(&ds, (PLpgSQL_type *)linitial(context.list_datatype)); + SET_ARRAY_STATE(context.list_array_state, ARRAY_SEPERATOR); + } } - u_sess->plsql_cxt.plpgsql_IdentifierLookup = save_IdentifierLookup; + if (brack_cnt != 0) { + yyerror("mismatched brackets"); + } + + curr_compile->plpgsql_IdentifierLookup = save_IdentifierLookup; if (startloc) *startloc = startlocation; @@ -4616,6 +7294,9 @@ read_sql_construct5(int until, while (ds.len > 0 && scanner_isspace(ds.data[ds.len - 1])) ds.data[--ds.len] = '\0'; } + if (issaveexpr) { + oldCxt = MemoryContextSwitchTo(curr_compile->compile_cxt); + } expr = (PLpgSQL_expr *)palloc0(sizeof(PLpgSQL_expr)); expr->dtype = PLPGSQL_DTYPE_EXPR; @@ -4631,9 +7312,141 @@ read_sql_construct5(int until, if (valid_sql) check_sql_expr(expr->query, startlocation, strlen(sqlstart)); + if (issaveexpr) { + MemoryContextSwitchTo(oldCxt); + } + return expr; } +/* + * read multiset grammer + */ +static void read_multiset(StringInfoData* ds, char* tableName1, Oid typeOid1) +{ + /* + * table var name may be schema.pkg.table_var + * so the name length should NAMEDATALEN with quotation marks *3 + */ + const int tablevar_namelen = NAMEDATALEN * 3 + 6; + + /* len = funcname + tablename1 + tablename2 */ + const int funclen = tablevar_namelen * 2 + 128; + char funcName[funclen] = {0}; + int tok1 = yylex(); + errno_t rc = EOK; + bool isTableVar = false; + int tok_type = -1; + + switch (tok1) + { + case K_UNION: + rc = snprintf_s(funcName, sizeof(funcName), sizeof(funcName) - 1, " array_union"); + securec_check_ss(rc, "", ""); + break; + case K_INTERSECT: + rc = snprintf_s(funcName, sizeof(funcName), sizeof(funcName) - 1, " array_intersect"); + securec_check_ss(rc, "", ""); + break; + case K_EXCEPT: + rc = snprintf_s(funcName, sizeof(funcName), sizeof(funcName) - 1, " array_except"); + securec_check_ss(rc, "", ""); + break; + default: + yyerror("unexpected keyword after multiset."); + } + + int suffixlen = tablevar_namelen * 2 + 64; + char suffix[suffixlen] = {0}; + int tok2 = yylex(); + int tok3; + Oid typeOid2 = InvalidOid; + char tableName2[tablevar_namelen] = {0}; + if (K_DISTINCT == tok2) { + tok3 = yylex(); + tok_type = -1; + if (tok3 == T_PACKAGE_VARIABLE) { + get_datum_tok_type(yylval.wdatum.datum, &tok_type); + } + isTableVar = (tok3 == T_TABLE_VAR) || (tok_type == PLPGSQL_TOK_TABLE_VAR); + if (isTableVar) { + typeOid2 = get_table_type(yylval.wdatum.datum); + copy_table_var_indents(tableName2, yylval.wdatum.ident, tablevar_namelen); + rc = snprintf_s(suffix, sizeof(suffix), sizeof(suffix) - 1, "_distinct(\"%s\", \"%s\")", tableName1, tableName2); + securec_check_ss(rc, "", ""); + } else { + yyerror("unexpected keyword after distinct."); + } + } else if (K_ALL == tok2) { + tok3 = yylex(); + tok_type = -1; + if (tok3 == T_PACKAGE_VARIABLE) { + get_datum_tok_type(yylval.wdatum.datum, &tok_type); + } + isTableVar = (tok3 == T_TABLE_VAR) || (tok_type == PLPGSQL_TOK_TABLE_VAR); + if (isTableVar) { + typeOid2 = get_table_type(yylval.wdatum.datum); + copy_table_var_indents(tableName2, yylval.wdatum.ident, tablevar_namelen); + rc = snprintf_s(suffix, sizeof(suffix), sizeof(suffix) - 1, "(\"%s\", \"%s\")", tableName1, tableName2); + securec_check_ss(rc, "", ""); + } else { + yyerror("unexpected keyword after all."); + } + } else { + tok_type = -1; + if (tok2 == T_PACKAGE_VARIABLE) { + get_datum_tok_type(yylval.wdatum.datum, &tok_type); + } + isTableVar = (tok2 == T_TABLE_VAR) || (tok_type == PLPGSQL_TOK_TABLE_VAR); + if (isTableVar) { + typeOid2 = get_table_type(yylval.wdatum.datum); + copy_table_var_indents(tableName2, yylval.wdatum.ident, tablevar_namelen); + rc = snprintf_s(suffix, sizeof(suffix), sizeof(suffix) - 1, "(\"%s\", \"%s\")", tableName1, tableName2); + securec_check_ss(rc, "", ""); + } else { + yyerror("unexpected type after multiset."); + } + } + + if (typeOid1 != typeOid2) { + ereport(errstate, + (errcode(ERRCODE_DATATYPE_MISMATCH), + errmsg("%s and %s type are not match.", tableName1, tableName2))); + u_sess->plsql_cxt.have_error = true; + } + strlcat(funcName, suffix, sizeof(funcName)); + appendStringInfoString(ds, funcName); +} + +static bool copy_table_var_indents(char* tableName, char* idents, int tablevar_namelen) +{ + List* namelist = NIL; + ListCell* l = NULL; + errno_t rc = 0; + StringInfoData ds; + initStringInfo(&ds); + + if (!SplitIdentifierString(idents, '.', &namelist)) + ereport(ERROR, (errcode(ERRCODE_INVALID_NAME), errmsg("invalid name syntax"))); + + if (namelist == NIL) + ereport(ERROR, (errcode(ERRCODE_INVALID_NAME), errmsg("invalid name syntax"))); + + foreach (l, namelist) { + char* curname = (char*)lfirst(l); + appendStringInfoString(&ds, curname); + if (l->next != NULL) { + appendStringInfoString(&ds, "\".\""); + } + } + rc = snprintf_s(tableName, tablevar_namelen, tablevar_namelen - 1, "%s", ds.data); + securec_check_ss(rc, "", ""); + pfree_ext(ds.data); + list_free_ext(namelist); + + return true; +} + /* * Read a SQL construct and build a PLpgSQL_expr for it. * @@ -4661,7 +7474,7 @@ read_sql_construct(int until, int *startloc, int *endtoken) { - return read_sql_construct5(until, until2, until3, until3, 0, + return read_sql_construct6(until, until2, until3, until3, 0, 0, expected, sqlstart, isexpression, valid_sql, trim, startloc, endtoken); } /* @@ -4672,15 +7485,16 @@ get_proc_str(int tok) { int blocklevel = 0; int pre_tok = 0; - if (u_sess->plsql_cxt.plpgsql_curr_compile_package==NULL) { + if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package == NULL) { yyerror("not allowed create procedure in function or procedure."); } tok = yylex(); StringInfoData ds; bool is_defining_proc = false; - int startlocation = yylloc; char * spec_proc_str = NULL; - MemoryContext oldCxt = MemoryContextSwitchTo(u_sess->plsql_cxt.compile_tmp_cxt); + int loc = yylloc; + int curloc = yylloc; + MemoryContext oldCxt = MemoryContextSwitchTo(u_sess->plsql_cxt.curr_compile_context->compile_tmp_cxt); initStringInfo(&ds); MemoryContextSwitchTo(oldCxt); if (u_sess->parser_cxt.is_procedure==false){ @@ -4695,8 +7509,10 @@ get_proc_str(int tok) if (tok == YYEOF) { if (u_sess->parser_cxt.is_procedure==false){ yyerror("function is not ended correctly"); + break; } else { yyerror("procedure is not ended correctly"); + break; } } @@ -4711,11 +7527,12 @@ get_proc_str(int tok) } /* if have is or as,it means in body*/ - if (tok == K_IS || tok == K_AS) + if ((tok == K_IS || tok == K_AS) && !is_defining_proc) { - if (u_sess->plsql_cxt.plpgsql_curr_compile_package->is_spec_compiling) { + if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->is_spec_compiling) { yyerror("not allow define function or procedure in package specification"); - } + break; + } is_defining_proc = true; } @@ -4728,6 +7545,8 @@ get_proc_str(int tok) } if (blocklevel == 1 && (pre_tok == ';' || pre_tok == K_BEGIN) && (tok == ';' || tok == 0)) { + curloc = yylloc; + plpgsql_append_source_text(&ds, loc, curloc); break; } if (blocklevel > 1 && (pre_tok == ';' || pre_tok == K_BEGIN) && (tok == ';' || tok == 0)) @@ -4736,10 +7555,14 @@ get_proc_str(int tok) } } pre_tok = tok; + tok = yylex(); + curloc = yylloc; + plpgsql_append_source_text(&ds, loc, curloc); + + loc = yylloc; } u_sess->parser_cxt.in_package_function_compile = false; - plpgsql_append_source_text(&ds, startlocation, yylloc); /* To use the SQL Parser, we add a string to make SQL parser recognize. @@ -4772,8 +7595,10 @@ static char* get_init_proc(int tok) */ if (tok == K_BEGIN) startlocation = yylloc; - if (tok == YYEOF) + if (tok == YYEOF) { yyerror("procedure is not ended correctly"); + break; + } if (tok == K_END) { tok = yylex(); @@ -4793,17 +7618,59 @@ static char* get_init_proc(int tok) return init_package_str; } +/* get assign attrname of arrayelement */ +static char * get_attrname(int tok) +{ + if (tok == YYEMPTY || tok == '.') { + tok = plpgsql_yylex_single(); + } + plpgsql_location_to_lineno(yylloc); + switch (tok) { + case T_ARRAY_FIRST: + case T_ARRAY_LAST: + case T_ARRAY_COUNT: + case T_ARRAY_EXTEND: + case T_CWORD:/* composite name not OK */ + yyerror("syntax error"); + break; + case T_REFCURSOR: + case T_VARRAY: + case T_VARRAY_VAR: + case T_TABLE: + case T_TABLE_VAR: + case T_RECORD: + case T_DATUM: + if (yylval.wdatum.idents != NIL) { /* composite name not OK */ + yyerror("syntax error"); + } else { + return yylval.wdatum.ident; + } + break; + case T_WORD: + return yylval.word.ident; + break; + default: + if (plpgsql_is_token_keyword(tok)) { + return pstrdup(yylval.keyword); + } else { + yyerror("missing or illegal attribute name"); + } + break; + } + return NULL; +} + static PLpgSQL_type * read_datatype(int tok) { StringInfoData ds; char *type_name; int startlocation; - PLpgSQL_type *result; + PLpgSQL_type *result = NULL; int parenlevel = 0; /* Should only be called while parsing DECLARE sections */ - AssertEreport(u_sess->plsql_cxt.plpgsql_IdentifierLookup == IDENTIFIER_LOOKUP_DECLARE, + AssertEreport(u_sess->plsql_cxt.curr_compile_context->plpgsql_IdentifierLookup == IDENTIFIER_LOOKUP_DECLARE, MOD_PLSQL, "Should only be called while parsing DECLARE sections"); @@ -4817,9 +7684,17 @@ read_datatype(int tok) * If we have a simple or composite identifier, check for %TYPE * and %ROWTYPE constructs. */ - if (tok == T_WORD) + bool iskeyword = plpgsql_is_token_keyword(tok); + if (tok == T_WORD || tok == T_VARRAY_VAR || tok == T_TABLE_VAR || iskeyword) { - char *dtname = yylval.word.ident; + char *dtname; + if (iskeyword) { + dtname = pstrdup(yylval.keyword); + } else if (tok == T_WORD) { + dtname = yylval.word.ident; + } else { + dtname = yylval.wdatum.ident; + } tok = yylex(); if (tok == '%') @@ -4829,8 +7704,12 @@ read_datatype(int tok) K_TYPE, "type")) { result = plpgsql_parse_wordtype(dtname); - if (result) + if (result) { + if(iskeyword) { + pfree_ext(dtname); + } return result; + } } else if (tok_is_keyword(tok, &yylval, K_ROWTYPE, "rowtype")) @@ -4840,18 +7719,39 @@ read_datatype(int tok) dtname, NULL, NULL, NULL); if (ns && ns->itemtype == PLPGSQL_NSTYPE_VAR) { - PLpgSQL_var* var = (PLpgSQL_var*)u_sess->plsql_cxt.plpgsql_Datums[ns->itemno]; + PLpgSQL_var* var = (PLpgSQL_var*)u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[ns->itemno]; if(var && var->datatype && var->datatype->typoid == REFCURSOROID) { - return plpgsql_build_datatype(RECORDOID, -1, InvalidOid); +#ifndef ENABLE_MULTIPLE_NODES + if (OidIsValid(var->datatype->cursorCompositeOid)) + return build_type_from_cursor_var(var); + else +#endif + return plpgsql_build_datatype(RECORDOID, -1, InvalidOid); + + } + } else if (ns && ns->itemtype == PLPGSQL_NSTYPE_ROW) + { + PLpgSQL_row* row = (PLpgSQL_row*)u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[ns->itemno]; + if (row && row->rowtupdesc && row->rowtupdesc->tdtypeid != RECORDOID) + { + if (OidIsValid(row->rowtupdesc->tdtypeid)) + return plpgsql_build_datatype(row->rowtupdesc->tdtypeid, -1, InvalidOid); } } result = plpgsql_parse_wordrowtype(dtname); - if (result) + if (result) { + if(iskeyword) { + pfree_ext(dtname); + } return result; + } } } + if(iskeyword) { + pfree_ext(dtname); + } } else if (tok == T_CWORD) { @@ -4864,6 +7764,24 @@ read_datatype(int tok) if (tok_is_keyword(tok, &yylval, K_TYPE, "type")) { + /* find val.col%TYPE first */ + HeapTuple tup = NULL; + tup = FindRowVarColType(dtnames); + if (tup != NULL) { + Oid typOid = typeTypeId(tup); + ReleaseSysCache(tup); + return plpgsql_build_datatype(typOid, -1, InvalidOid); + } + + /* find pkg.var%TYPE second */ + PLpgSQL_datum* datum = GetPackageDatum(dtnames); + if (datum != NULL && datum->dtype == PLPGSQL_DTYPE_VAR) { + Oid typOid = ((PLpgSQL_var*)datum)->datatype->typoid; + int32 typmod = ((PLpgSQL_var*)datum)->datatype->atttypmod; + Oid collation = ((PLpgSQL_var*)datum)->datatype->collation; + + return plpgsql_build_datatype(typOid, typmod, collation); + } result = plpgsql_parse_cwordtype(dtnames); if (result) return result; @@ -4871,6 +7789,15 @@ read_datatype(int tok) else if (tok_is_keyword(tok, &yylval, K_ROWTYPE, "rowtype")) { + PLpgSQL_datum* datum = GetPackageDatum(dtnames); + if (datum != NULL && datum->dtype == PLPGSQL_DTYPE_ROW) { + PLpgSQL_row* row = (PLpgSQL_row*)datum; + if (row->rowtupdesc && row->rowtupdesc->tdtypeid != RECORDOID) + { + if (OidIsValid(row->rowtupdesc->tdtypeid)) + return plpgsql_build_datatype(row->rowtupdesc->tdtypeid, -1, InvalidOid); + } + } result = plpgsql_parse_cwordrowtype(dtnames); if (result) return result; @@ -4883,13 +7810,14 @@ read_datatype(int tok) if (tok == 0) { if (parenlevel != 0) - yyerror("mismatched parentheses"); + yyerror("mismatched parentheses", true); else yyerror("incomplete data type declaration"); + break; } /* Possible followers for datatype in a declaration */ if (tok == K_COLLATE || tok == K_NOT || - tok == '=' || tok == COLON_EQUALS || tok == K_DEFAULT) + tok == '=' || tok == COLON_EQUALS || tok == K_DEFAULT || tok == K_INDEX) break; /* Possible followers for datatype in a cursor_arg list */ if ((tok == ',' || tok == ')') && parenlevel == 0) @@ -4907,15 +7835,29 @@ read_datatype(int tok) plpgsql_append_source_text(&ds, startlocation, yylloc); type_name = ds.data; - if (type_name[0] == '\0') - yyerror("missing data type declaration"); + // do such change just for DTS2021090817171 + if (type_name[0] == '\0') { +#ifndef ENABLE_MULTIPLE_NODES + if (u_sess->attr.attr_common.plsql_show_all_error) { + const char* message = "missing data type declaration"; + InsertErrorMessage(message, yylloc); + } +#endif + ereport(ERROR, + (errcode(ERRCODE_DATATYPE_MISMATCH), + errmsg("missing data type declaration"), + parser_errposition(yylloc))); + if (tok == ';') { + plpgsql_push_back_token(tok); + } + } else { + u_sess->plsql_cxt.plpgsql_yylloc = plpgsql_yylloc; + result = parse_datatype(type_name, startlocation); - result = parse_datatype(type_name, startlocation); - - pfree_ext(ds.data); - - plpgsql_push_back_token(tok); + pfree_ext(ds.data); + plpgsql_push_back_token(tok); + } return result; } @@ -4930,17 +7872,24 @@ make_execsql_stmt(int firsttoken, int location) PLpgSQL_rec *rec = NULL; int tok; int prev_tok; + int prev_prev_tok = 0; + int curloc; bool have_into = false; + bool have_bulk_collect = false; bool have_strict = false; + bool array_begin = false; int into_start_loc = -1; int into_end_loc = -1; int placeholders = 0; + int parenlevel = 0; + List *list_bracket = 0; /* stack structure bracket tracker */ + List *list_bracket_loc = 0; /* location tracker */ initStringInfo(&ds); /* special lookup mode for identifiers within the SQL text */ - save_IdentifierLookup = u_sess->plsql_cxt.plpgsql_IdentifierLookup; - u_sess->plsql_cxt.plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_EXPR; + save_IdentifierLookup = u_sess->plsql_cxt.curr_compile_context->plpgsql_IdentifierLookup; + u_sess->plsql_cxt.curr_compile_context->plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_EXPR; /* * Scan to the end of the SQL command. Identify any INTO-variables @@ -4970,15 +7919,37 @@ make_execsql_stmt(int firsttoken, int location) */ tok = firsttoken; + /* For support InsertStmt:Insert into table_name values record_var */ + bool insert_stmt = false; + bool prev_values = false; + bool insert_record = false; + bool insert_array_record = false; + int values_end_loc = -1; + int before_semi_loc = -1; + PLpgSQL_row* row_data = NULL; + PLpgSQL_rec* rec_data = NULL; + PLpgSQL_var* array_data = NULL; for (;;) { prev_tok = tok; tok = yylex(); + if (tok == COMMENTSTRING) { + prev_prev_tok = prev_tok; + } if (have_into && into_end_loc < 0) into_end_loc = yylloc; /* token after the INTO part */ - if (tok == ';') + + /* Only support one record variable after insertstmt's values token */ + if (insert_record && tok != ';' && tok != ' ') { + yyerror("unexpected record variable number in insert stmt."); + } + + if (tok == ';') { + before_semi_loc = yylloc; break; + } + if (tok == 0) yyerror("unexpected end of function definition"); @@ -4987,10 +7958,30 @@ make_execsql_stmt(int firsttoken, int location) placeholders++; } + if (tok == K_BULK) { + /* only A_FORMAT can use bulk collect into */ + if (u_sess->attr.attr_sql.sql_compatibility != A_FORMAT) { + yyerror("syntax error"); + } + + have_bulk_collect = true; + into_start_loc = yylloc; /* save BULK COLLECT INTO starting point */ + tok = yylex(); + if (tok != K_COLLECT) { + yyerror("expect \'COLLECT\' after \'BULK\'"); + } + tok = yylex(); + if (tok != K_INTO) { + yyerror("expect \'INTO\' after \'BULK COLLECT\'"); + } + } + if (tok == K_INTO) { - if (prev_tok == K_INSERT) + if (prev_tok == K_INSERT || (prev_tok == COMMENTSTRING && prev_prev_tok == K_INSERT)) { + insert_stmt = true; continue; /* INSERT INTO is not an INTO-target */ + } if (firsttoken == K_ALTER) continue; /* ALTER ... INTO is not an INTO-target */ if (prev_tok == K_MERGE) @@ -4998,11 +7989,14 @@ make_execsql_stmt(int firsttoken, int location) if (have_into) yyerror("INTO specified more than once"); have_into = true; - into_start_loc = yylloc; - u_sess->plsql_cxt.plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_NORMAL; - read_into_target(&rec, &row, &have_strict); - u_sess->plsql_cxt.plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_EXPR; + if (!have_bulk_collect) { + into_start_loc = yylloc; + } + u_sess->plsql_cxt.curr_compile_context->plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_NORMAL; + read_into_target(&rec, &row, &have_strict, have_bulk_collect); + u_sess->plsql_cxt.curr_compile_context->plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_EXPR; } + if (tok == T_CWORD && prev_tok!=K_SELECT && prev_tok!= K_PERFORM) { List *dtname = yylval.cword.idents; @@ -5013,10 +8007,163 @@ make_execsql_stmt(int firsttoken, int location) } plpgsql_push_back_token(tok); plpgsql_pkg_add_unknown_var_to_namespace(dtname); + continue; } + + /* + * A_FORMAT VARRAY related handling + * To make parentheses-based varray access compatible with current + * PL/pgSQL array, we need to replace all parentheses with brackets. + * Like what we did in read_sql_contruct5(), we interpret the input + * query with array states. + * + * When array_begin is set to true, it means we have an array comming + * in next iteration, we need to append a bracket instead of parentheses. + * Or, array_begin is set to false that the query statement will remain + * unchanged. + */ + if (u_sess->attr.attr_sql.sql_compatibility != A_FORMAT) { + continue; + } + + + /* Find 'values' position for InsertStmt */ + if (insert_stmt && tok == T_WORD) { + if (pg_strcasecmp(yylval.word.ident, "values") == 0) { + tok = yylex(); + if (tok == '(') { + prev_values = false; + } else { + prev_values = true; + } + plpgsql_push_back_token(tok); + continue; + } + } + + /* Check the variable type after 'values' */ + if (insert_stmt && prev_values && (tok == T_WORD || tok == T_VARRAY_VAR || tok == T_TABLE_VAR)) { + if (tok == T_WORD) { + PLpgSQL_nsitem* ns = plpgsql_ns_lookup(plpgsql_ns_top(), false, yylval.word.ident, NULL, NULL, NULL); + if (ns == NULL) { + yyerror("insert an nonexistent variable."); + } + + PLpgSQL_datum* datum = u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[ns->itemno]; + insert_record = true; + prev_values = false; + values_end_loc = yylloc; + if (PLPGSQL_DTYPE_RECORD == datum->dtype + || PLPGSQL_DTYPE_ROW == datum->dtype) { + row_data = (PLpgSQL_row*)datum; + continue; + } else if (PLPGSQL_DTYPE_REC == datum->dtype) { + rec_data = (PLpgSQL_rec*)datum; + continue; + } + + yyerror("unsupported insert into table from non record type."); + } else if (tok == T_VARRAY_VAR || tok == T_TABLE_VAR) { + if (yylval.wdatum.datum->dtype == PLPGSQL_DTYPE_VAR) { + array_data = (PLpgSQL_var *) yylval.wdatum.datum; + insert_array_record = true; + prev_values = false; + values_end_loc = yylloc; + continue; + } + yyerror("unsupported insert into table from non record type."); + } else { + yyerror("unsupported insert into table from non record type."); + } + } + + if (tok == '(' || tok == '[') + parenlevel++; + else if (tok == ')' || tok == ']') + { + parenlevel--; + if (parenlevel < 0) + yyerror("mismatched parentheses", true); + } + + switch(tok) { + case T_VARRAY_VAR: + curloc = yylloc; /* always save current location before yylex() */ + tok = yylex(); + if (tok == '(' || tok == '[') + array_begin = true; + plpgsql_push_back_token(tok); + break; + case T_TABLE_VAR: + curloc = yylloc; /* always save current location before yylex() */ + tok = yylex(); + if (tok == '(') + array_begin = true; + else if (tok == '[') + yyerror("syntax error"); + + plpgsql_push_back_token(tok); + break; + case ']': + case ')': + if (list_bracket && linitial_int(list_bracket) == parenlevel) { + prev_tok = tok; + curloc = yylloc; /* always save current location before yylex() */ + tok = yylex(); + if (tok == '(' || tok == '[' || tok == '.') { + array_begin = true; /* N-D array access */ + } + plpgsql_push_back_token(tok); + + /* stack pop */ + list_bracket = list_delete_first(list_bracket); + if (prev_tok == ')') { + /* append location of right bracket */ + list_bracket_loc = lappend_int(list_bracket_loc, curloc - location); + } + } + break; + case '[': + case '(': + if (array_begin) { + /* stack push */ + list_bracket = lcons_int(parenlevel - 1, list_bracket); + if (tok == '(') { + /* cancat location of left bracket */ + list_bracket_loc = lcons_int(yylloc - location, list_bracket_loc); + } + array_begin = false; + } + break; + case T_WORD: + case T_CWORD: + if (array_begin) { + curloc = yylloc; /* always save current location before yylex() */ + tok = yylex(); + if (tok != '(' && tok != '[') { + array_begin = false; + } + plpgsql_push_back_token(tok); + } + break; + case '.': + if (array_begin) { + curloc = yylloc; /* always save current location before yylex() */ + tok = yylex(); + if (tok != T_WORD && tok != T_CWORD) { + array_begin = false; + } + plpgsql_push_back_token(tok); + } + break; + default: + /* do nothing */ + break; + } + } - u_sess->plsql_cxt.plpgsql_IdentifierLookup = save_IdentifierLookup; + u_sess->plsql_cxt.curr_compile_context->plpgsql_IdentifierLookup = save_IdentifierLookup; if (have_into) { @@ -5028,10 +8175,121 @@ make_execsql_stmt(int firsttoken, int location) plpgsql_append_source_text(&ds, location, into_start_loc); appendStringInfoSpaces(&ds, into_end_loc - into_start_loc); plpgsql_append_source_text(&ds, into_end_loc, yylloc); - } - else + + if (parenlevel != 0 || + list_length(list_bracket) != 0 || + list_length(list_bracket_loc) % 2) + { + yyerror("mismatched parentheses"); + } + plpgsql_process_stmt_array(&ds, list_bracket_loc); + list_free_ext(list_bracket_loc); + } else if (insert_record) { + /* Support grammar 'Insert into table_name values record_type' in Procedure. + * because SQL Parser does's support that, so record type will be broken into + * record variable's sub attribute variable for 'Insert into table_name + * values(var,...). + */ + plpgsql_append_source_text(&ds, location, values_end_loc); + appendStringInfoString(&ds, "("); + if (row_data != NULL) { + int nfields = row_data->nfields; + for (int i = 0; i < nfields; i++) { + appendStringInfo(&ds, "%s.%s", row_data->refname, row_data->fieldnames[i]); + if (i != (nfields - 1)) { + appendStringInfoString(&ds, ","); + } + } + } else { + int nattr = rec_data->tupdesc->natts; + for (int i = 0; i < nattr; i++) { + Form_pg_attribute pg_att_form = rec_data->tupdesc->attrs[i]; + appendStringInfo(&ds, "%s.%s", rec_data->refname, NameStr(pg_att_form->attname)); + if (i != (nattr - 1)) { + appendStringInfoString(&ds, ","); + } + } + } + appendStringInfoString(&ds, ")"); + } else if (insert_array_record) { + /* Support grammar 'Insert into table_name values array[][]...' in Procedure. + * because SQL Parser does's support that, so record type will be broken into + * record variable's sub attribute variable for 'Insert into table_name + * values(array[][].var,...). + */ + Oid base_type_oid = get_element_type(array_data->datatype->typoid); + if (!OidIsValid(base_type_oid)) { + yyerror("invalid array's element type for insert."); + } + + HeapTuple type_tuple = SearchSysCache1(TYPEOID, ObjectIdGetDatum(base_type_oid)); + if (!HeapTupleIsValid(type_tuple)) { + yyerror("invalid array's element type tuple for insert."); + } + + Form_pg_type type_pg_type = (Form_pg_type)GETSTRUCT(type_tuple); + int rel_oid = type_pg_type->typrelid; + ReleaseSysCache(type_tuple); + HeapTuple rel_tuple = SearchSysCache1(RELOID, ObjectIdGetDatum(rel_oid)); + if (!HeapTupleIsValid(rel_tuple)) { + yyerror("invalid type's rel tuple for insert.", true); + u_sess->plsql_cxt.have_error = true; + } else { + + plpgsql_append_source_text(&ds, location, values_end_loc); + appendStringInfoString(&ds, "("); + int replace_start_poc = ds.len; + Form_pg_class rel_pg_class = (Form_pg_class) GETSTRUCT(rel_tuple); + int att_num = rel_pg_class->relnatts; + ReleaseSysCache(rel_tuple); + + for (int i = 1; i <= att_num; i++) { + HeapTuple att_tuple = SearchSysCache2(ATTNUM, ObjectIdGetDatum(rel_oid), Int16GetDatum(i)); + if (!HeapTupleIsValid(att_tuple)) { + yyerror("invalid element att tuple for insert."); + } + + Form_pg_attribute att_pg_attribute = (Form_pg_attribute)GETSTRUCT(att_tuple); + plpgsql_append_source_text(&ds, values_end_loc, before_semi_loc); + appendStringInfo(&ds, ".%s", att_pg_attribute->attname.data); + if (i != att_num) { + appendStringInfoString(&ds, ","); + } + + ReleaseSysCache(att_tuple); + } + int replace_end_poc = ds.len - 1; + appendStringInfoString(&ds, ")"); + + int bracket_level = 0; + /* replace table/array's '('/')' to '['/']' SQL supported */ + for (int i = replace_start_poc; i <= replace_end_poc; i++) { + if (ds.data[i] == '(') { + bracket_level++; + if (bracket_level == 1) { + ds.data[i] = '['; + } + } else if (ds.data[i] == ')') { + if (bracket_level == 1) { + ds.data[i] = ']'; + } + bracket_level--; + } + } + } + } else { plpgsql_append_source_text(&ds, location, yylloc); + if (parenlevel != 0 || + list_length(list_bracket) != 0 || + list_length(list_bracket_loc) % 2) + { + yyerror("mismatched parentheses"); + } + plpgsql_process_stmt_array(&ds, list_bracket_loc); + list_free_ext(list_bracket_loc); + } + /* trim any trailing whitespace, for neatness */ while (ds.len > 0 && scanner_isspace(ds.data[ds.len - 1])) ds.data[--ds.len] = '\0'; @@ -5052,6 +8310,7 @@ make_execsql_stmt(int firsttoken, int location) execsql->lineno = plpgsql_location_to_lineno(location); execsql->sqlstmt = expr; execsql->into = have_into; + execsql->bulk_collect = have_bulk_collect; execsql->strict = have_strict; execsql->rec = rec; execsql->row = row; @@ -5083,6 +8342,8 @@ read_fetch_direction(void) fetch->how_many = 1; fetch->expr = NULL; fetch->returns_multiple_rows = false; + fetch->bulk_collect = false; + fetch->has_direction = true; fetch->sqlString = plpgsql_get_curline_query(); tok = yylex(); @@ -5154,6 +8415,7 @@ read_fetch_direction(void) { /* Assume there's no direction clause and tok is a cursor name */ plpgsql_push_back_token(tok); + fetch->has_direction = false; check_FROM = false; } else @@ -5236,36 +8498,44 @@ make_return_stmt(int location) newp->retvarno = -1; newp->sqlString = plpgsql_get_curline_query(); - if (u_sess->plsql_cxt.plpgsql_curr_compile->fn_retset) + if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile->fn_retset) { - if (yylex() != ';') - ereport(ERROR, + if (yylex() != ';') { + const char* message = "RETURN cannot have a parameter in function returning set"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_DATATYPE_MISMATCH), errmsg("RETURN cannot have a parameter in function returning set"), errhint("Use RETURN NEXT or RETURN QUERY."), parser_errposition(yylloc))); + } } // adapting A db, where return value is independent from OUT parameters - else if (';' == (token = yylex()) && u_sess->plsql_cxt.plpgsql_curr_compile->out_param_varno >= 0) - newp->retvarno = u_sess->plsql_cxt.plpgsql_curr_compile->out_param_varno; + else if (';' == (token = yylex()) && u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile->out_param_varno >= 0) + newp->retvarno = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile->out_param_varno; else { plpgsql_push_back_token(token); - if (u_sess->plsql_cxt.plpgsql_curr_compile->fn_rettype == VOIDOID) + if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile->fn_rettype == VOIDOID) { - if (yylex() != ';') - ereport(ERROR, + if (yylex() != ';') { + const char* message = "RETURN cannot have a parameter in function returning void"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_DATATYPE_MISMATCH), errmsg("RETURN cannot have a parameter in function returning void"), parser_errposition(yylloc))); + } } - else if (u_sess->plsql_cxt.plpgsql_curr_compile->fn_retistuple) + else if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile->fn_retistuple) { int tok = yylex(); if(tok < 0) { - ereport(ERROR, + const char* message = "token value is smaller than 0 "; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("token value %d is smaller than 0 ", tok))); return NULL; @@ -5279,17 +8549,23 @@ make_return_stmt(int location) case T_DATUM: if (yylval.wdatum.datum->dtype == PLPGSQL_DTYPE_ROW || - yylval.wdatum.datum->dtype == PLPGSQL_DTYPE_REC) - newp->retvarno = yylval.wdatum.datum->dno; - else - ereport(ERROR, + yylval.wdatum.datum->dtype == PLPGSQL_DTYPE_REC || + yylval.wdatum.datum->dtype == PLPGSQL_DTYPE_RECORD) + newp->retvarno = yylval.wdatum.dno; + else { + const char* message = "RETURN must specify a record or row variable in function returning row"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_DATATYPE_MISMATCH), errmsg("RETURN must specify a record or row variable in function returning row"), parser_errposition(yylloc))); + } break; default: - ereport(ERROR, + const char* message = "RETURN must specify a record or row variable in function returning row"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_DATATYPE_MISMATCH), errmsg("RETURN must specify a record or row variable in function returning row"), parser_errposition(yylloc))); @@ -5317,11 +8593,14 @@ make_return_next_stmt(int location) { PLpgSQL_stmt_return_next *newp; - if (!u_sess->plsql_cxt.plpgsql_curr_compile->fn_retset) - ereport(ERROR, + if (!u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile->fn_retset) { + const char* message = "cannot use RETURN NEXT in a non-SETOF function"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_DATATYPE_MISMATCH), errmsg("cannot use RETURN NEXT in a non-SETOF function"), parser_errposition(location))); + } newp = (PLpgSQL_stmt_return_next *)palloc0(sizeof(PLpgSQL_stmt_return_next)); newp->cmd_type = PLPGSQL_STMT_RETURN_NEXT; @@ -5330,32 +8609,40 @@ make_return_next_stmt(int location) newp->retvarno = -1; newp->sqlString = plpgsql_get_curline_query(); - if (u_sess->plsql_cxt.plpgsql_curr_compile->out_param_varno >= 0) + if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile->out_param_varno >= 0) { - if (yylex() != ';') - ereport(ERROR, + if (yylex() != ';') { + const char* message = "RETURN NEXT cannot have a parameter in function with OUT parameters"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_DATATYPE_MISMATCH), errmsg("RETURN NEXT cannot have a parameter in function with OUT parameters"), parser_errposition(yylloc))); - newp->retvarno = u_sess->plsql_cxt.plpgsql_curr_compile->out_param_varno; + } + newp->retvarno = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile->out_param_varno; } - else if (u_sess->plsql_cxt.plpgsql_curr_compile->fn_retistuple) + else if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile->fn_retistuple) { switch (yylex()) { case T_DATUM: if (yylval.wdatum.datum->dtype == PLPGSQL_DTYPE_ROW || yylval.wdatum.datum->dtype == PLPGSQL_DTYPE_REC) - newp->retvarno = yylval.wdatum.datum->dno; - else - ereport(ERROR, + newp->retvarno = yylval.wdatum.dno; + else { + const char* message = "RETURN NEXT must specify a record or row variable in function returning row"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_DATATYPE_MISMATCH), errmsg("RETURN NEXT must specify a record or row variable in function returning row"), parser_errposition(yylloc))); + } break; default: - ereport(ERROR, + const char* message = "RETURN NEXT must specify a record or row variable in function returning row"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_DATATYPE_MISMATCH), errmsg("RETURN NEXT must specify a record or row variable in function returning row"), parser_errposition(yylloc))); @@ -5377,11 +8664,14 @@ make_return_query_stmt(int location) PLpgSQL_stmt_return_query *newp; int tok; - if (!u_sess->plsql_cxt.plpgsql_curr_compile->fn_retset) - ereport(ERROR, + if (!u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile->fn_retset) { + const char* message = "cannot use RETURN QUERY in a non-SETOF function"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_DATATYPE_MISMATCH), errmsg("cannot use RETURN QUERY in a non-SETOF function"), parser_errposition(location))); + } newp = (PLpgSQL_stmt_return_query *)palloc0(sizeof(PLpgSQL_stmt_return_query)); newp->cmd_type = PLPGSQL_STMT_RETURN_QUERY; @@ -5430,18 +8720,34 @@ NameOfDatum(PLwdatum *wdatum) return NameListToString(wdatum->idents); } +/* convenience routine to copy the name of a T_DATUM */ +static char * +CopyNameOfDatum(PLwdatum *wdatum) +{ + if (wdatum->ident) + return pstrdup(wdatum->ident); + AssertEreport(wdatum->idents != NIL, + MOD_PLSQL, + "It should not be null"); + return NameListToString(wdatum->idents); +} + static void check_assignable(PLpgSQL_datum *datum, int location) { + PLpgSQL_var *var = NULL; switch (datum->dtype) { case PLPGSQL_DTYPE_VAR: - if (((PLpgSQL_var *) datum)->isconst) - ereport(ERROR, + if (((PLpgSQL_var *) datum)->isconst) { + const char* message = "variable is declared CONSTANT"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_ERROR_IN_ASSIGNMENT), errmsg("\"%s\" is declared CONSTANT", ((PLpgSQL_var *) datum)->refname), parser_errposition(location))); + } break; case PLPGSQL_DTYPE_ROW: /* always assignable? */ @@ -5455,20 +8761,232 @@ check_assignable(PLpgSQL_datum *datum, int location) /* always assignable? */ break; case PLPGSQL_DTYPE_ARRAYELEM: - /* always assignable? */ + var = (PLpgSQL_var *)u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[((PLpgSQL_arrayelem *)datum)->arrayparentno]; + if (var->isconst) { + const char* message = "array is declared CONSTANT"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_ERROR_IN_ASSIGNMENT), + errmsg("\"%s\" is declared CONSTANT", var->refname), + parser_errposition(location))); + u_sess->plsql_cxt.have_error = true; + } + break; + case PLPGSQL_DTYPE_TABLEELEM: + var = (PLpgSQL_var *)u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[((PLpgSQL_tableelem *)datum)->tableparentno]; + if (var->isconst) { + const char* message = "table is declared CONSTANT"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_ERROR_IN_ASSIGNMENT), + errmsg("\"%s\" is declared CONSTANT", var->refname), + parser_errposition(location))); + u_sess->plsql_cxt.have_error = true; + } break; case PLPGSQL_DTYPE_UNKNOWN: /* package variable? */ break; default: - elog(ERROR, "unrecognized dtype: %d", datum->dtype); + elog(errstate, "unrecognized dtype: %d", datum->dtype); break; } } +static Oid get_table_index_type(PLpgSQL_datum* datum) +{ + PLpgSQL_var* var = (PLpgSQL_var*)datum; + return var->datatype->tableOfIndexType; +} + +static void check_bulk_into_type(PLpgSQL_row* row) +{ + if (row->nfields == 0) { + char errormsg[128] = {0}; + errno_t rc = EOK; + rc = snprintf_s(errormsg, sizeof(errormsg), sizeof(errormsg) - 1, + "bulk collect into target can't be null."); + securec_check_ss(rc, "", ""); + yyerror(errormsg); + } + + for (int i = 0; i < row->nfields; i++) { + PLpgSQL_var* var = (PLpgSQL_var*)u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[row->varnos[i]]; + if (var->datatype != NULL && var->datatype->collectionType == PLPGSQL_COLLECTION_TABLE && var->datatype->tableOfIndexType == VARCHAROID) { + char errormsg[128] = {0}; + errno_t rc = EOK; + rc = snprintf_s(errormsg, sizeof(errormsg), sizeof(errormsg) - 1, + "index by varchar type %s don't support bulk collect into.", var->refname); + securec_check_ss(rc, "", ""); + yyerror(errormsg); + } + } +} + +static void check_table_index(PLpgSQL_datum* datum, char* funcName) +{ + PLpgSQL_var* var = (PLpgSQL_var*)datum; + if (var->datatype->tableOfIndexType == VARCHAROID) { + char errormsg[128] = {0}; + errno_t rc = EOK; + rc = snprintf_s(errormsg, sizeof(errormsg), sizeof(errormsg) - 1, + "index by varchar type don't support %s function", funcName); + securec_check_ss(rc, "", ""); + yyerror(errormsg); + } +} +/* + * check if the table type has index by, + * return real type + */ +static Oid get_table_type(PLpgSQL_datum* datum) +{ + PLpgSQL_var* var = (PLpgSQL_var*)datum; + if (OidIsValid(var->datatype->tableOfIndexType)) { + yyerror("multiset don't support index by table of type."); + } + Oid typeOid = var->datatype->typoid; + if (!OidIsValid(typeOid)) { + ereport(errstate, + (errcode(ERRCODE_UNDEFINED_OBJECT), + errmsg("type %s type Oid is invalid.", var->datatype->typname))); + u_sess->plsql_cxt.have_error = true; + } + return typeOid; +} + +/* get the attrno of attribute when assign value to arrary element attibute. */ +static AttrNumber get_assign_attrno(PLpgSQL_datum* target, char* attrname) +{ + int nsubscripts = 0; + Oid parenttypoid; + int32 arraytypmod; + Oid arraytypoid; + Oid elemtypoid; + AttrNumber attrno = -1; + PLpgSQL_arrayelem* arrayelem = NULL; + PLpgSQL_tableelem* tableelem = NULL; + + /* + * To handle constructs like x[1][2] := something, we have to + * be prepared to deal with a chain of arrayelem datums. Chase + * back to find the base array datum. + */ + if (target->dtype == PLPGSQL_DTYPE_ARRAYELEM) { + do { + arrayelem = (PLpgSQL_arrayelem*)target; + if (nsubscripts >= MAXDIM) { + const char* message = "number of array dimensions exceeds the maximum allowed in assignment."; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, + (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), + errmodule(MOD_PLSQL), + errmsg("number of array dimensions exceeds the maximum allowed in assignment."), + errdetail("number of array dimensions (%d) exceeds the maximum allowed (%d) in assignment. ", + nsubscripts + 1, MAXDIM), + errcause("too large array dimensions"), + erraction("reduce the array dimensions"))); + u_sess->plsql_cxt.have_error = true; + } + nsubscripts++; + target = u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[arrayelem->arrayparentno]; + } while (target->dtype == PLPGSQL_DTYPE_ARRAYELEM); + } else { + do { + tableelem = (PLpgSQL_tableelem*)target; + if (nsubscripts >= MAXDIM) { + const char* message = "number of array dimensions exceeds the maximum allowed in assignment."; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, + (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), + errmodule(MOD_PLSQL), + errmsg("number of array dimensions exceeds the maximum allowed in assignment."), + errdetail("number of array dimensions (%d) exceeds the maximum allowed (%d) in assignment. ", + nsubscripts + 1, MAXDIM), + errcause("too large array dimensions"), + erraction("reduce the array dimensions"))); + u_sess->plsql_cxt.have_error = true; + } + nsubscripts++; + target = u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[tableelem->tableparentno]; + } while (target->dtype == PLPGSQL_DTYPE_TABLEELEM); + } + /* array element type must be PLPGSQL_DTYPE_VAR, otherwise user referencing array incorrectly. */ + if (target->dtype != PLPGSQL_DTYPE_VAR) { + const char* message = "subscripted object in assignment is not an array"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, + (errcode(ERRCODE_DATATYPE_MISMATCH), + errmodule(MOD_PLSQL), + errmsg("subscripted object in assignment is not an array"), + errdetail("subscripted variable in assignment is not an array"), + errcause("incorrectly referencing variables"), + erraction("modify assign variable"))); + u_sess->plsql_cxt.have_error = true; + } + + /* get the array element typoid */ + PLpgSQL_var* var = (PLpgSQL_var*)target; + parenttypoid = var->datatype->typoid; + arraytypmod = var->datatype->atttypmod; + arraytypoid = getBaseTypeAndTypmod(parenttypoid, &arraytypmod); + elemtypoid = get_element_type(arraytypoid); + if (!OidIsValid(elemtypoid)) { + const char* message = "subscripted object in assignment is not an array"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, + (errcode(ERRCODE_DATATYPE_MISMATCH), + errmodule(MOD_PLSQL), + errmsg("subscripted object in assignment is not an array"), + errdetail("subscripted variable \"%s\" in assignment is not an array", var->refname), + errcause("incorrectly referencing variables"), + erraction("modify assign variable"))); + u_sess->plsql_cxt.have_error = true; + } + + /* get tupledesc by typoid */ + TupleDesc elemtupledesc = + lookup_rowtype_tupdesc_noerror(elemtypoid, arraytypmod,true); + if (elemtupledesc == NULL){ + const char* message = "array element type is not composite in assignment"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, + (errcode(ERRCODE_ARRAY_SUBSCRIPT_ERROR), + errmodule(MOD_PLSQL), + errmsg("array element type is not composite in assignment"), + errdetail("array variable \"%s\" must be composite when assign value to attibute", var->refname), + errcause("incorrectly referencing variables"), + erraction("modify assign variable"))); + u_sess->plsql_cxt.have_error = true; + } + + /* search the matched attribute */ + for (int i = 0; i < elemtupledesc->natts; i++) { + if (namestrcmp(&(elemtupledesc->attrs[i]->attname), attrname) == 0) { + attrno = i; + break; + } + } + ReleaseTupleDesc(elemtupledesc); + + /* attrno = -1 means there is no matched attribute */ + if (attrno == -1) { + const char* message = "attribute does not exists"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, + (errcode(ERRCODE_ARRAY_SUBSCRIPT_ERROR), + errmodule(MOD_PLSQL), + errmsg("attribute \"%s\" does not exist", attrname), + errdetail("attribute \"%s\" does not exist in array variable \"%s\"", attrname, var->refname), + errcause("incorrectly referencing variables"), + erraction("modify assign variable"))); + u_sess->plsql_cxt.have_error = true; + } + + return attrno; +} + /* * Brief : support array variable as select into and using out target. - * Description : if an array element is detected, add it to the u_sess->plsql_cxt.plpgsql_Datums[] + * Description : if an array element is detected, add it to the u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[] * and return true, else return false. * Notes : */ @@ -5482,7 +9000,9 @@ read_into_using_add_arrayelem(char **fieldnames, int *varnos, int *nfields, int /* validation of arguments */ if ((NULL == fieldnames) || (NULL == varnos) || (NULL == nfields) || (NULL == tok)) { - ereport(ERROR, + const char* message = "pointer is null in read_into_add_arrayelem function!"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_UNEXPECTED_NULL_VALUE), errmsg(" pointer is null in read_into_add_arrayelem function! "))); return false; @@ -5504,17 +9024,98 @@ read_into_using_add_arrayelem(char **fieldnames, int *varnos, int *nfields, int /* get the array index expression */ newp->subscript = read_sql_expression(toktmp, &tokExpected[0]); - if(NULL == newp->subscript) - ereport(ERROR, + if(NULL == newp->subscript) { + const char* message = " error near arrary name!"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg(" error near arrary name! "))); + u_sess->plsql_cxt.have_error = true; + } + newp->assignattrno = -1; + *tok = yylex(); + if (*tok == '.'){ + + newp->assignattrno = get_assign_attrno((PLpgSQL_datum *)newp, get_attrname(*tok)); + *tok = yylex(); + if(*tok == '.') { + yyerror("assign value to deep level attribute is not supported in SELECT/FETCH INTO method"); + } + } plpgsql_adddatum((PLpgSQL_datum *)newp); fieldnames[*nfields] = pstrdup("arrayelem"); varnos[(*nfields)++] = newp->dno; + /* is an array element, return true */ + return true; + } + + return false; +} + +/* + * Brief : support array variable as select into and using out target. + * Description : if an array element is detected, add it to the u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[] + * and return true, else return false. + * Notes : + */ +static bool +read_into_using_add_tableelem(char **fieldnames, int *varnos, int *nfields, int tmpdno, int *tok) +{ + PLpgSQL_tableelem *newp = NULL; + char tokExpected[2]; + int toktmp = 0; + + /* validation of arguments */ + if ((NULL == fieldnames) || (NULL == varnos) || (NULL == nfields) || (NULL == tok)) + { + const char* message = " pointer is null in read_into_add_arrayelem function!"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, + (errcode(ERRCODE_UNEXPECTED_NULL_VALUE), + errmsg(" pointer is null in read_into_add_arrayelem function! "))); + u_sess->plsql_cxt.have_error = true; + return false; + } + + if (('[' == *tok) || ('(' == *tok)) + { + if ('[' == *tok) + toktmp = ']'; + else + toktmp = ')'; + + tokExpected[0] = (char)toktmp; + tokExpected[1] = '\0'; + + newp = (PLpgSQL_tableelem *)palloc0(sizeof(PLpgSQL_tableelem)); + newp->tableparentno = tmpdno; + newp->dtype = PLPGSQL_DTYPE_TABLEELEM; + /* get the array index expression */ + newp->subscript = read_sql_expression(toktmp, &tokExpected[0]); + + if(NULL == newp->subscript) { + const char* message = " error near arrary name!"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg(" error near arrary name! "))); + u_sess->plsql_cxt.have_error = true; + } + newp->assignattrno = -1; + *tok = yylex(); + if (*tok == '.'){ + *tok = yylex(); + newp->assignattrno = get_assign_attrno((PLpgSQL_datum *)newp, get_attrname(*tok)); + *tok = yylex(); + } + plpgsql_adddatum((PLpgSQL_datum *)newp); + + fieldnames[*nfields] = pstrdup("arrayelem"); + varnos[(*nfields)++] = newp->dno; /* is an array element, return true */ return true; @@ -5528,7 +9129,7 @@ read_into_using_add_arrayelem(char **fieldnames, int *varnos, int *nfields, int * INTO keyword. */ static void -read_into_target(PLpgSQL_rec **rec, PLpgSQL_row **row, bool *strict) +read_into_target(PLpgSQL_rec **rec, PLpgSQL_row **row, bool *strict, bool bulk_collect) { int tok; @@ -5537,7 +9138,6 @@ read_into_target(PLpgSQL_rec **rec, PLpgSQL_row **row, bool *strict) *row = NULL; if (strict) *strict = true; - tok = yylex(); if (strict && tok == K_STRICT) { @@ -5556,17 +9156,22 @@ read_into_target(PLpgSQL_rec **rec, PLpgSQL_row **row, bool *strict) { case T_DATUM: case T_VARRAY_VAR: + case T_TABLE_VAR: + case T_PACKAGE_VARIABLE: if (yylval.wdatum.datum->dtype == PLPGSQL_DTYPE_ROW || yylval.wdatum.datum->dtype == PLPGSQL_DTYPE_RECORD) { check_assignable(yylval.wdatum.datum, yylloc); *row = (PLpgSQL_row *) yylval.wdatum.datum; - if ((tok = yylex()) == ',') - ereport(ERROR, + if ((tok = yylex()) == ',') { + const char* message = "record or row variable cannot be part of multiple-item INTO list"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("record or row variable cannot be part of multiple-item INTO list"), parser_errposition(yylloc))); + } plpgsql_push_back_token(tok); } else if (yylval.wdatum.datum->dtype == PLPGSQL_DTYPE_REC) @@ -5574,24 +9179,25 @@ read_into_target(PLpgSQL_rec **rec, PLpgSQL_row **row, bool *strict) check_assignable(yylval.wdatum.datum, yylloc); *rec = (PLpgSQL_rec *) yylval.wdatum.datum; - if ((tok = yylex()) == ',') - ereport(ERROR, + if ((tok = yylex()) == ',') { + const char* message = "record or row variable cannot be part of multiple-item INTO list"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("record or row variable cannot be part of multiple-item INTO list"), parser_errposition(yylloc))); + } plpgsql_push_back_token(tok); } else { - *row = read_into_array_scalar_list(NameOfDatum(&(yylval.wdatum)), - yylval.wdatum.datum, yylloc); + *row = read_into_array_table_scalar_list(NameOfDatum(&(yylval.wdatum)), + yylval.wdatum.datum, yylval.wdatum.dno, yylloc, bulk_collect); } break; - case T_PLACEHOLDER: *row = read_into_placeholder_scalar_list(yylval.word.ident, yylloc); break; - default: /* just to give a better message than "syntax error" */ current_token_is_not_variable(tok); @@ -5635,30 +9241,35 @@ read_using_target(List **in_expr, PLpgSQL_row **out_row) { case T_DATUM: tempvar = pstrdup(NameOfDatum(&(yylval.wdatum))); - tempdno = yylval.wdatum.datum->dno; + tempdno = yylval.wdatum.dno; plpgsql_push_back_token(tok); tempexpr =read_sql_construct(',',';',',',", or ;","SELECT ",true,true,true,NULL,&tok); tempexpr->isouttype = true; *in_expr=lappend((*in_expr), tempexpr); - if (!read_into_using_add_arrayelem(out_fieldnames, out_varnos, &out_nfields,tempdno,&tok)) + if (!read_into_using_add_arrayelem(out_fieldnames, out_varnos, &out_nfields, tempdno, &tok)) { out_fieldnames[out_nfields] = tempvar; out_varnos[out_nfields++] = tempdno; } else { - if (isin) - ereport(ERROR, + if (isin) { + const char* message = " using can't support array parameter with in out "; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg(" using can't support array parameter with in out !"))); + } } break; default: - ereport(ERROR, + const char* message = "not all the parameters are scalar variables."; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("not all the parameters are scalar variables."))); } @@ -5711,6 +9322,7 @@ read_using_target(List **in_expr, PLpgSQL_row **out_row) static PLpgSQL_row * read_into_scalar_list(char *initial_name, PLpgSQL_datum *initial_datum, + int initial_dno, int initial_location) { int nfields; @@ -5721,17 +9333,22 @@ read_into_scalar_list(char *initial_name, check_assignable(initial_datum, initial_location); fieldnames[0] = initial_name; - varnos[0] = initial_datum->dno; + varnos[0] = initial_dno; nfields = 1; while ((tok = yylex()) == ',') { /* Check for array overflow */ - if (nfields >= 1024) - ereport(ERROR, + if (nfields >= 1024) { + const char* message = "too many INTO variables specified."; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), errmsg("too many INTO variables specified"), parser_errposition(yylloc))); + u_sess->plsql_cxt.have_error = true; + break; + } tok = yylex(); switch (tok) @@ -5739,14 +9356,19 @@ read_into_scalar_list(char *initial_name, case T_DATUM: check_assignable(yylval.wdatum.datum, yylloc); if (yylval.wdatum.datum->dtype == PLPGSQL_DTYPE_ROW || - yylval.wdatum.datum->dtype == PLPGSQL_DTYPE_REC) - ereport(ERROR, + yylval.wdatum.datum->dtype == PLPGSQL_DTYPE_REC) { + const char* message = "variable is not a scalar variable"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("\"%s\" is not a scalar variable", NameOfDatum(&(yylval.wdatum))), parser_errposition(yylloc))); + u_sess->plsql_cxt.have_error = true; + break; + } fieldnames[nfields] = NameOfDatum(&(yylval.wdatum)); - varnos[nfields++] = yylval.wdatum.datum->dno; + varnos[nfields++] = yylval.wdatum.dno; break; default: @@ -5789,9 +9411,11 @@ read_into_scalar_list(char *initial_name, * scalars. */ static PLpgSQL_row * -read_into_array_scalar_list(char *initial_name, +read_into_array_table_scalar_list(char *initial_name, PLpgSQL_datum *initial_datum, - int initial_location) + int initial_dno, + int initial_location, + bool bulk_collect) { int nfields = 0; char *fieldnames[1024] = {NULL}; @@ -5800,15 +9424,25 @@ read_into_array_scalar_list(char *initial_name, int tok; int toktmp = 0; int tmpdno = 0; + int type_flag = -1; + bool isarrayelem = false; char* nextname = NULL; check_assignable(initial_datum, initial_location); - tmpdno = yylval.wdatum.datum->dno; + + tmpdno = initial_dno; tok = yylex(); - if (!read_into_using_add_arrayelem(fieldnames, varnos, &nfields, tmpdno, &tok)) + get_datum_tok_type(initial_datum, &type_flag); + + if (type_flag == PLPGSQL_TOK_TABLE_VAR) { + isarrayelem = read_into_using_add_tableelem(fieldnames, varnos, &nfields, tmpdno, &tok); + } else { + isarrayelem = read_into_using_add_arrayelem(fieldnames, varnos, &nfields, tmpdno, &tok); + } + if (!isarrayelem) { fieldnames[0] = initial_name; - varnos[0] = initial_datum->dno; + varnos[0] = initial_dno; nfields = 1; } while (',' == tok) @@ -5816,7 +9450,9 @@ read_into_array_scalar_list(char *initial_name, /* Check for array overflow */ if (nfields >= 1024) { - ereport(ERROR, + const char* message = "too many INTO variables specified"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), errmsg("too many INTO variables specified"), parser_errposition(yylloc))); @@ -5824,6 +9460,7 @@ read_into_array_scalar_list(char *initial_name, } toktmp = yylex(); + type_flag = -1; switch (toktmp) { @@ -5831,31 +9468,130 @@ read_into_array_scalar_list(char *initial_name, check_assignable(yylval.wdatum.datum, yylloc); if (yylval.wdatum.datum->dtype == PLPGSQL_DTYPE_ROW || - yylval.wdatum.datum->dtype == PLPGSQL_DTYPE_REC) - ereport(ERROR, + yylval.wdatum.datum->dtype == PLPGSQL_DTYPE_REC) { + const char* message = "it not a scalar variable"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("\"%s\" is not a scalar variable", NameOfDatum(&(yylval.wdatum))), parser_errposition(yylloc))); + } - tmpdno = yylval.wdatum.datum->dno; + tmpdno = yylval.wdatum.dno; nextname = NameOfDatum(&(yylval.wdatum)); fieldnames[nfields] = nextname; varnos[nfields++] = tmpdno; tok = yylex(); break; + case T_PACKAGE_VARIABLE: + check_assignable(yylval.wdatum.datum, yylloc); + + if (yylval.wdatum.datum->dtype == PLPGSQL_DTYPE_ROW || + yylval.wdatum.datum->dtype == PLPGSQL_DTYPE_REC) { + const char* message = "it not a scalar variable"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("\"%s\" is not a scalar variable", + NameOfDatum(&(yylval.wdatum))), + parser_errposition(yylloc))); + u_sess->plsql_cxt.have_error = true; + } + + tmpdno = yylval.wdatum.dno; + nextname = NameOfDatum(&(yylval.wdatum)); + type_flag = -1; + get_datum_tok_type(yylval.wdatum.datum, &type_flag); + if (type_flag == -1) { + fieldnames[nfields] = nextname; + varnos[nfields++] = tmpdno; + tok = yylex(); + break; + } else if (type_flag == PLPGSQL_TOK_TABLE_VAR) { + tok = yylex(); + if (tok < -1) + return NULL; + if (!read_into_using_add_tableelem(fieldnames, varnos, &nfields, tmpdno, &tok)) + { + if (bulk_collect) { + fieldnames[nfields] = nextname; + varnos[nfields++] = tmpdno; + break; + } + const char* message = "error when read table var subscript"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg(" error when read table var subscript! "))); + u_sess->plsql_cxt.have_error = true; + return NULL; + } + break; + } else { + tok = yylex(); + if (tok < -1) + return NULL; + if (!read_into_using_add_arrayelem(fieldnames, varnos, &nfields, tmpdno, &tok)) + { + if (bulk_collect) { + fieldnames[nfields] = nextname; + varnos[nfields++] = tmpdno; + break; + } + const char* message = "error when read array var subscript"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg(" error when read array var subscript! "))); + u_sess->plsql_cxt.have_error = true; + return NULL; + } + break; + } case T_VARRAY_VAR: check_assignable(yylval.wdatum.datum, yylloc); - tmpdno = yylval.wdatum.datum->dno; + tmpdno = yylval.wdatum.dno; + nextname = NameOfDatum(&(yylval.wdatum)); tok = yylex(); if (tok < -1) return NULL; if (!read_into_using_add_arrayelem(fieldnames, varnos, &nfields, tmpdno, &tok)) { - ereport(ERROR, + if (bulk_collect) { + fieldnames[nfields] = nextname; + varnos[nfields++] = tmpdno; + break; + } + const char* message = "error near arrary name!"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg(" error near arrary name! "))); return NULL; + } + break; + case T_TABLE_VAR: + check_assignable(yylval.wdatum.datum, yylloc); + tmpdno = yylval.wdatum.dno; + nextname = NameOfDatum(&(yylval.wdatum)); + tok = yylex(); + if (tok < -1) + return NULL; + if (!read_into_using_add_tableelem(fieldnames, varnos, &nfields, tmpdno, &tok)) + { + if (bulk_collect) { + fieldnames[nfields] = nextname; + varnos[nfields++] = tmpdno; + break; + } + const char* message = "error near table name"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg(" error near table name! "))); + u_sess->plsql_cxt.have_error = true; + return NULL; } break; default: @@ -5895,8 +9631,6 @@ read_into_array_scalar_list(char *initial_name, return row; } - - /* * Given the first datum and name in the INTO list, continue to read * comma-separated scalar variables until we run out. Then construct @@ -5916,11 +9650,16 @@ read_into_placeholder_scalar_list(char *initial_name, while ((tok = yylex()) == ',') { /* Check for array overflow */ - if ( intoplaceholders >= 1024 ) - ereport(ERROR, + if ( intoplaceholders >= 1024 ) { + const char* message = "too many INTO placeholders specified"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), errmsg("too many INTO placeholders specified"), parser_errposition(yylloc))); + u_sess->plsql_cxt.have_error = true; + break; + } tok = yylex(); switch (tok) @@ -5930,7 +9669,9 @@ read_into_placeholder_scalar_list(char *initial_name, break; default: - ereport(ERROR, + const char* message = "invalid placeholder specified"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("invalid placeholder specified"), parser_errposition(yylloc))); @@ -5973,13 +9714,14 @@ read_into_placeholder_scalar_list(char *initial_name, static PLpgSQL_row * make_scalar_list1(char *initial_name, PLpgSQL_datum *initial_datum, + int initial_dno, int lineno, int location) { PLpgSQL_row *row; check_assignable(initial_datum, location); - row = (PLpgSQL_row *)palloc(sizeof(PLpgSQL_row)); + row = (PLpgSQL_row *)palloc0(sizeof(PLpgSQL_row)); row->dtype = PLPGSQL_DTYPE_ROW; row->refname = pstrdup("*internal*"); row->lineno = lineno; @@ -5988,7 +9730,7 @@ make_scalar_list1(char *initial_name, row->fieldnames = (char **)palloc(sizeof(char *)); row->varnos = (int *)palloc(sizeof(int)); row->fieldnames[0] = initial_name; - row->varnos[0] = initial_datum->dno; + row->varnos[0] = initial_dno; row->isImplicit = true; plpgsql_adddatum((PLpgSQL_datum *)row); @@ -6026,7 +9768,7 @@ check_sql_expr(const char *stmt, int location, int leaderlen) ErrorContextCallback syntax_errcontext; MemoryContext oldCxt; - if (!u_sess->plsql_cxt.plpgsql_check_syntax) + if (!u_sess->plsql_cxt.curr_compile_context->plpgsql_check_syntax) return; cbarg.location = location; @@ -6037,7 +9779,8 @@ check_sql_expr(const char *stmt, int location, int leaderlen) syntax_errcontext.previous = t_thrd.log_cxt.error_context_stack; t_thrd.log_cxt.error_context_stack = &syntax_errcontext; - oldCxt = MemoryContextSwitchTo(u_sess->plsql_cxt.compile_tmp_cxt); + oldCxt = MemoryContextSwitchTo(u_sess->plsql_cxt.curr_compile_context->compile_tmp_cxt); + u_sess->plsql_cxt.plpgsql_yylloc = plpgsql_yylloc; (void) raw_parser(stmt); MemoryContextSwitchTo(oldCxt); @@ -6101,12 +9844,15 @@ parse_datatype(const char *string, int location) syntax_errcontext.previous = t_thrd.log_cxt.error_context_stack; t_thrd.log_cxt.error_context_stack = &syntax_errcontext; + /* * parseTypeString is only for getting type_id and typemod, who are both scalars, * so memory used in it is all temp. */ - oldCxt = MemoryContextSwitchTo(u_sess->plsql_cxt.compile_tmp_cxt); + oldCxt = MemoryContextSwitchTo(u_sess->plsql_cxt.curr_compile_context->compile_tmp_cxt); + + u_sess->plsql_cxt.plpgsql_yylloc = plpgsql_yylloc; /* Let the main parser try to parse it under standard SQL rules */ parseTypeString(string, &type_id, &typmod); @@ -6116,13 +9862,696 @@ parse_datatype(const char *string, int location) t_thrd.log_cxt.error_context_stack = syntax_errcontext.previous; /* Okay, build a PLpgSQL_type data structure for it */ - if (u_sess->plsql_cxt.plpgsql_curr_compile == NULL) + if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile == NULL) { return plpgsql_build_datatype(type_id, typmod, 0); } return plpgsql_build_datatype(type_id, typmod, - u_sess->plsql_cxt.plpgsql_curr_compile->fn_input_collation); + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile->fn_input_collation); +} + +/* Build a arrary_type by elem_type. */ +static PLpgSQL_type * build_array_type_from_elemtype(PLpgSQL_type *elem_type) +{ + PLpgSQL_type *arrary_type; + Oid arraytypoid = get_array_type(elem_type->typoid); + if (arraytypoid == InvalidOid) { + ereport(errstate, + (errmodule(MOD_PLSQL), + errcode(ERRCODE_UNDEFINED_OBJECT), + errmsg("array type not found"), + errdetail("array type of \"%s\" does not exist.", elem_type->typname), + errcause("undefined object"), + erraction("check typename"))); + } + if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile == NULL) { + arrary_type = plpgsql_build_datatype(arraytypoid, elem_type->atttypmod, 0); + } else { + arrary_type = plpgsql_build_datatype(arraytypoid, elem_type->atttypmod, + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile->fn_input_collation); + } + return arrary_type; +} + +static PLpgSQL_var* plpgsql_build_nested_variable(PLpgSQL_var *nest_table, bool isconst, char* name, int lineno) +{ + PLpgSQL_var *build_nest_table = NULL; + PLpgSQL_type *new_var_type = NULL; + char nestname[NAMEDATALEN] = {0}; + errno_t rc = EOK; + rc = snprintf_s(nestname, sizeof(nestname), sizeof(nestname) - 1, "%s_nest", name); + securec_check_ss(rc, "", ""); + /* set nested table type */ + new_var_type = build_array_type_from_elemtype(nest_table->datatype); + new_var_type->tableOfIndexType = nest_table->datatype->tableOfIndexType; + new_var_type->collectionType = nest_table->datatype->collectionType; + build_nest_table = (PLpgSQL_var *)plpgsql_build_variable(nestname, lineno, new_var_type, true); + build_nest_table->isconst = isconst; + build_nest_table->default_val = NULL; + if (nest_table->nest_table != NULL) { + build_nest_table->nest_table = plpgsql_build_nested_variable(nest_table->nest_table, isconst, name, lineno); + } + return build_nest_table; +} + +static void getPkgFuncTypeName(char* typname, char** functypname, char** pkgtypname) +{ + if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile != NULL) { + *functypname = CastPackageTypeName(typname, + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile->fn_oid, false); + if (strlen(*functypname) >= NAMEDATALEN) { + const char* message = "record name too long"; + InsertErrorMessage(message, plpgsql_yylloc, true); + ereport(ERROR, + (errcode(ERRCODE_NAME_TOO_LONG), + errmsg("type name too long"), + errdetail("record name %s with func oid %d should be less the %d letters.", + typname, u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile->fn_oid, NAMEDATALEN))); + } + } + if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package != NULL) { + *pkgtypname = CastPackageTypeName(typname, + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->pkg_oid, true); + if (strlen(*pkgtypname) >= NAMEDATALEN) { + const char* message = "record name too long"; + InsertErrorMessage(message, plpgsql_yylloc, true); + ereport(ERROR, + (errcode(ERRCODE_NAME_TOO_LONG), + errmsg("type name too long"), + errdetail("record name %s with package name %s should be less the %d letters.", + typname, u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->pkg_signature, NAMEDATALEN))); + } + } +} + +/* + * look up composite type from namespace + */ +static PLpgSQL_nsitem* lookupCompositeType(char* functypname, char* pkgtypname) +{ + PLpgSQL_nsitem* ns = NULL; + /* if compile func, search func namesapce first */ + if (functypname != NULL) { + ns = plpgsql_ns_lookup(plpgsql_ns_top(), false, functypname, NULL, NULL, NULL); + if (ns != NULL || pkgtypname == NULL) { + return ns; + } + } + + /* next search package namespace */ + PLpgSQL_package* pkg = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package; + ns = plpgsql_ns_lookup(pkg->public_ns, false, pkgtypname, NULL, NULL, NULL); + if (ns != NULL) { + return ns; + } + + /* may compile pkg spec now, search top again */ + ns = plpgsql_ns_lookup(plpgsql_ns_top(), false, pkgtypname, NULL, NULL, NULL); + if (ns != NULL) { + return ns; + } + + /* if compile package body, search private namespace */ + if (!pkg->is_spec_compiling) { + /* private type should cast '$' */ + StringInfoData castTypName; + initStringInfo(&castTypName); + appendStringInfoString(&castTypName, "$"); + appendStringInfoString(&castTypName, pkgtypname); + + /* search private namespace, when complie, it is the top */ + ns = plpgsql_ns_lookup(plpgsql_ns_top(), false, castTypName.data, NULL, NULL, NULL); + pfree_ext(castTypName.data); + } + + return ns; +} + +static Oid getOldTypeOidByTypeName(char** typname, char** schamaName, char* functypname, char* pkgtypname, Oid* pkgoid) +{ + Oid nameSpaceOid = InvalidOid; + if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile != NULL) { + *pkgoid = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile->fn_oid; + *typname = functypname; + if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile->fn_searchpath != NULL) { + nameSpaceOid = linitial_oid(u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile->fn_searchpath->schemas); + } + } else { + *pkgoid = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->pkg_oid; + *typname = pkgtypname; + nameSpaceOid = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->namespaceOid; + } + + if (OidIsValid(nameSpaceOid)) { + *schamaName = get_namespace_name(nameSpaceOid); + } else { + nameSpaceOid = getCurrentNamespace(); + } + + Oid oldtypeoid = GetSysCacheOid2(TYPENAMENSP, PointerGetDatum(*typname), + ObjectIdGetDatum(nameSpaceOid)); + return oldtypeoid; +} + +static RangeVar* createRangeVarForCompositeType(char* schamaName, char* typname) +{ + RangeVar *r = makeNode(RangeVar); + r->catalogname = NULL; + r->schemaname = schamaName; + r->relname = pstrdup(typname); + r->relpersistence = RELPERSISTENCE_PERMANENT; + r->location = -1; + r->ispartition = false; + r->isbucket = false; + r->buckets = NIL; + return r; +} + +static void buildDependencyForCompositeType(Oid newtypeoid) +{ + ObjectAddress myself, referenced; + if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile != NULL) { + myself.classId = ProcedureRelationId; + myself.objectId = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile->fn_oid; + myself.objectSubId = 0; + } else { + myself.classId = PackageRelationId; + myself.objectId = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->pkg_oid; + myself.objectSubId = 0; + } + referenced.classId = TypeRelationId; + referenced.objectId = newtypeoid; + referenced.objectSubId = 0; + recordDependencyOn(&referenced, &myself, DEPENDENCY_AUTO); + CommandCounterIncrement(); +} + +static bool checkDuplicateAttrName(TupleDesc tupleDesc) +{ + int attrnum = tupleDesc->natts; + for (int i = 0; i < attrnum; i++) { + Form_pg_attribute attr1 = tupleDesc->attrs[i]; + for (int j = i + 1; j < attrnum; j++) { + Form_pg_attribute attr2 = tupleDesc->attrs[j]; + if (strcmp(NameStr(attr1->attname), NameStr(attr2->attname)) == 0) { + return true; + } + } + } + return false; +} +#ifndef ENABLE_MULTIPLE_NODES +static bool checkAllAttrName(TupleDesc tupleDesc) +{ + int attrnum = tupleDesc->natts; + for (int i = 0; i < attrnum; i++) { + Form_pg_attribute pg_att_form = tupleDesc->attrs[i]; + char* att_name = NameStr(pg_att_form->attname); + if (strcmp(att_name, "?column?") != 0) { + return false; + } + } + return true; +} +#endif +static Oid createCompositeTypeForCursor(PLpgSQL_var* var, PLpgSQL_expr* expr) +{ +#ifdef ENABLE_MULTIPLE_NODES + return InvalidOid; +#endif + TupleDesc tupleDesc = getCursorTupleDesc(expr, false); + if (tupleDesc == NULL || tupleDesc->natts == 0) { + return InvalidOid; + } + /* + * if cursor is select a,a from t1, cannot have same attr name. + */ + bool isHaveDupName = checkDuplicateAttrName(tupleDesc); + if (isHaveDupName) { + return InvalidOid; + } + + /* concatenate name string with function name for composite type, which to avoid conflict. */ + char* functypname = NULL; + char* pkgtypname = NULL; + char* typname = NULL; + char* schamaname = NULL; + Oid pkgoid = InvalidOid; + getPkgFuncTypeName(var->refname, &functypname, &pkgtypname); + Oid oldtypeoid = getOldTypeOidByTypeName(&typname, &schamaname, functypname, pkgtypname, &pkgoid); + Oid newtypeoid = InvalidOid; + if (OidIsValid(oldtypeoid)) { + /* already build one, just use it */ + newtypeoid = oldtypeoid; + } else { + RangeVar* r = createRangeVarForCompositeType(schamaname, typname); + + List* codeflist = NULL; + int attrnum = tupleDesc->natts; + for (int i = 0; i < attrnum; i++) { + ColumnDef *n = makeNode(ColumnDef); + Form_pg_attribute attr = tupleDesc->attrs[i]; + n->colname = pstrdup(NameStr(attr->attname)); + n->typname = makeTypeNameFromOid(attr->atttypid, attr->atttypmod); + n->inhcount = 0; + n->is_local = true; + n->is_not_null = false; + n->is_from_type = false; + n->storage = 0; + n->raw_default = NULL; + n->cooked_default = NULL; + n->collClause = NULL; + n->clientLogicColumnRef=NULL; + n->collOid = InvalidOid; + n->constraints = NIL; + codeflist = lappend(codeflist, (Node*)n); + } + DefineCompositeType(r, codeflist); + newtypeoid = GetSysCacheOid2(TYPENAMENSP, PointerGetDatum(typname), + ObjectIdGetDatum(getCurrentNamespace())); + pfree_ext(r); + ListCell* cell = NULL; + foreach (cell, codeflist) { + ColumnDef* n = (ColumnDef*)lfirst(cell); + pfree_ext(n->colname); + } + list_free_deep(codeflist); + + /* build dependency on created composite type. */ + buildDependencyForCompositeType(newtypeoid); + } + + pfree_ext(functypname); + pfree_ext(pkgtypname); + return newtypeoid; +} + +#ifndef ENABLE_MULTIPLE_NODES +static PLpgSQL_type* build_type_from_cursor_var(PLpgSQL_var* var) +{ + PLpgSQL_type *newp = NULL; + Oid typeOid = var->datatype->cursorCompositeOid; + /* build datatype of the created composite type. */ + newp = plpgsql_build_datatype(typeOid, -1, InvalidOid); + newp->dtype = PLPGSQL_DTYPE_COMPOSITE; + newp->ttype = PLPGSQL_TTYPE_ROW; + + /* add the composite type to datum and namespace. */ + int varno = plpgsql_adddatum((PLpgSQL_datum*)newp); + plpgsql_ns_additem(PLPGSQL_NSTYPE_COMPOSITE, varno, var->datatype->typname ); + + return newp; +} +#endif + +/* + * Build a composite type by execute SQL, when record type is nested. + */ +static PLpgSQL_type* build_type_from_record_var(int dno) +{ + PLpgSQL_type *newp = NULL; + PLpgSQL_rec_type * var_type = (PLpgSQL_rec_type *)u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[dno]; + + /* concatenate name string with function name for composite type, which to avoid conflict. */ + char* functypname = NULL; + char* pkgtypname = NULL; + getPkgFuncTypeName(var_type->typname, &functypname, &pkgtypname); + /* look up composite type from namespace, if exists, we have already build one. */ + PLpgSQL_nsitem* ns = lookupCompositeType(functypname, pkgtypname); + + if (ns == NULL) { + /* we need to build a composite type, and drop any remaining types. */ + Oid newtypeoid = InvalidOid; + char* typname; + char* schamaname = NULL; + Oid pkgoid = InvalidOid; + + Oid oldtypeoid = getOldTypeOidByTypeName(&typname, &schamaname, functypname, pkgtypname, &pkgoid); + if (OidIsValid(oldtypeoid)) { + /* already build one, just use it */ + if(IsPackageDependType(oldtypeoid, pkgoid)) { + newtypeoid = oldtypeoid; + } else { + ereport(errstate, + (errmodule(MOD_PLSQL), + errcode(ERRCODE_DUPLICATE_OBJECT), + errmsg("duplicate type name"), + errdetail("type name of \"%s\" duplicated with an existed type when build package or function type.", typname), + errcause("duplicate type name"), + erraction("modify type name"))); + } + } else { + RangeVar* r = createRangeVarForCompositeType(schamaname, typname); + List* codeflist = NULL; + int attrnum = var_type->attrnum; + for (int i = 0; i < attrnum; i++) { + ColumnDef *n = makeNode(ColumnDef); + n->colname = pstrdup(var_type->attrnames[i]); + n->typname = make_typename_from_datatype(var_type->types[i]); + n->inhcount = 0; + n->is_local = true; + n->is_not_null = false; + n->is_from_type = false; + n->storage = 0; + n->raw_default = NULL; + n->cooked_default = NULL; + n->collClause = NULL; + n->clientLogicColumnRef=NULL; + n->collOid = InvalidOid; + n->constraints = NIL; + codeflist = lappend(codeflist, (Node*)n); + } + + DefineCompositeType(r, codeflist); + newtypeoid = GetSysCacheOid2(TYPENAMENSP, PointerGetDatum(typname), + ObjectIdGetDatum(getCurrentNamespace())); + pfree_ext(r); + list_free_deep(codeflist); + + /* build dependency on created composite type. */ + buildDependencyForCompositeType(newtypeoid); + } + + /* build datatype of the created composite type. */ + newp = plpgsql_build_datatype(newtypeoid, -1, InvalidOid); + newp->dtype = PLPGSQL_DTYPE_COMPOSITE; + newp->ttype = PLPGSQL_TTYPE_ROW; + + /* add the composite type to datum and namespace. */ + int varno = plpgsql_adddatum((PLpgSQL_datum*)newp); + plpgsql_ns_additem(PLPGSQL_NSTYPE_COMPOSITE, varno, typname); + + } else { + /* we have already build one, just take it from datums. */ + if (ns->itemtype == PLPGSQL_NSTYPE_COMPOSITE) { + newp = (PLpgSQL_type*)(u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[ns->itemno]); + } else { + ereport(errstate, + (errcode(ERRCODE_DUPLICATE_OBJECT), + errmsg("duplicate declaration"), + errdetail("record %s is duplicate with other objects.", var_type->typname))); + u_sess->plsql_cxt.have_error = true; + } + } + pfree_ext(functypname); + pfree_ext(pkgtypname); + return newp; +} + +static Oid plpgsql_build_package_record_type(const char* typname, List* list, bool add2namespace) +{ + Oid oldtypeoid = InvalidOid; + Oid newtypeoid = InvalidOid; + char* schamaName = NULL; + Oid pkgNamespaceOid = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->namespaceOid; + if (OidIsValid(pkgNamespaceOid)) { + schamaName = get_namespace_name(pkgNamespaceOid); + } else { + pkgNamespaceOid = getCurrentNamespace(); + } + char* casttypename = CastPackageTypeName(typname, + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->pkg_oid, true, + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->is_spec_compiling); + if (strlen(casttypename) >= NAMEDATALEN ) { + ereport(errstate, + (errcode(ERRCODE_NAME_TOO_LONG), + errmsg("type name too long"), + errdetail("record name %s with package name %s should be less the %d letters.", + typname, + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->pkg_signature, + NAMEDATALEN))); + u_sess->plsql_cxt.have_error = true; + pfree_ext(casttypename); + } + + oldtypeoid = GetSysCacheOid2(TYPENAMENSP, PointerGetDatum(casttypename), ObjectIdGetDatum(pkgNamespaceOid)); + if (OidIsValid(oldtypeoid)) { + /* already build on, just use it */ + if(IsPackageDependType(oldtypeoid, u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->pkg_oid)) { + newtypeoid = oldtypeoid; + } else { + ereport(errstate, + (errmodule(MOD_PLSQL), + errcode(ERRCODE_DUPLICATE_OBJECT), + errmsg("duplicate type name"), + errdetail("type name of \"%s\" duplicated with an existed type when build package type.", casttypename), + errcause("duplicate type name"), + erraction("modify package type name"))); + } + } else { + RangeVar *r = makeNode(RangeVar); + r->catalogname = NULL; + r->schemaname = schamaName; + r->relname = pstrdup(casttypename); + r->relpersistence = RELPERSISTENCE_PERMANENT; + r->location = -1; + r->ispartition = false; + r->isbucket = false; + r->buckets = NIL; + + List* codeflist = NULL; + ListCell* cell = NULL; + PLpgSQL_rec_attr* attr = NULL; + + foreach (cell, list) { + attr = (PLpgSQL_rec_attr*)lfirst(cell); + codeflist = lappend(codeflist, make_columnDef_from_attr(attr)); + } + + DefineCompositeType(r, codeflist); + + newtypeoid = GetSysCacheOid2(TYPENAMENSP, PointerGetDatum(casttypename), + ObjectIdGetDatum(getCurrentNamespace())); + + /* build dependency on created composite type. */ + ObjectAddress myself, referenced; + myself.classId = PackageRelationId; + myself.objectId = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->pkg_oid; + myself.objectSubId = 0; + referenced.classId = TypeRelationId; + referenced.objectId = newtypeoid; + referenced.objectSubId = 0; + recordDependencyOn(&referenced, &myself, DEPENDENCY_AUTO); + CommandCounterIncrement(); + pfree_ext(r); + list_free_deep(codeflist); + } + + PLpgSQL_type *newtype = NULL; + newtype = plpgsql_build_datatype(newtypeoid, -1, InvalidOid); + newtype->dtype = PLPGSQL_DTYPE_COMPOSITE; + newtype->ttype = PLPGSQL_TTYPE_ROW; + + int varno = plpgsql_adddatum((PLpgSQL_datum*)newtype); + + plpgsql_ns_additem(PLPGSQL_NSTYPE_COMPOSITE, varno, casttypename); + pfree_ext(casttypename); + + return newtypeoid; +} + +static void plpgsql_build_package_array_type(const char* typname,Oid elemtypoid, char arraytype) +{ + char typtyp; + char* casttypename = CastPackageTypeName(typname, u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->pkg_oid, true, + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->is_spec_compiling); + if (strlen(casttypename) >= NAMEDATALEN ) { + ereport(errstate, + (errcode(ERRCODE_NAME_TOO_LONG), + errmsg("type name too long"), + errdetail("array or nested table type name %s with package name %s should be less the %d letters.", + typname, u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->pkg_signature, NAMEDATALEN))); + u_sess->plsql_cxt.have_error = true; + } + + Oid pkgNamespaceOid = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->namespaceOid; + if (!OidIsValid(pkgNamespaceOid)) { + pkgNamespaceOid = getCurrentNamespace(); + } + + Oid oldtypeoid = GetSysCacheOid2(TYPENAMENSP, PointerGetDatum(casttypename), + ObjectIdGetDatum(pkgNamespaceOid)); + if (OidIsValid(oldtypeoid)) { + /* alread build one, just return */ + if(IsPackageDependType(oldtypeoid, u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->pkg_oid)) { + return; + } else { + ereport(errstate, + (errmodule(MOD_PLSQL), + errcode(ERRCODE_DUPLICATE_OBJECT), + errmsg("duplicate type name"), + errdetail("type name of \"%s\" duplicated with an existed type when build package type.", casttypename), + errcause("duplicate type name"), + erraction("modify package type name"))); + } + } + + if (arraytype == TYPCATEGORY_TABLEOF || arraytype == TYPCATEGORY_TABLEOF_VARCHAR) { + elemtypoid = get_array_type(elemtypoid); + typtyp = TYPTYPE_TABLEOF; + } else { + typtyp = TYPTYPE_BASE; + } + Oid typoid = TypeCreate(InvalidOid, /* force the type's OID to this */ + casttypename, /* Array type name */ + pkgNamespaceOid, /* Same namespace as parent */ + InvalidOid, /* Not composite, no relationOid */ + 0, /* relkind, also N/A here */ + GetUserId(), /* owner's ID */ + -1, /* Internal size (varlena) */ + typtyp, /* Not composite - typelem is */ + arraytype, /* type-category (array or table of) */ + false, /* array types are never preferred */ + DEFAULT_TYPDELIM, /* default array delimiter */ + F_ARRAY_IN, /* array input proc */ + F_ARRAY_OUT, /* array output proc */ + F_ARRAY_RECV, /* array recv (bin) proc */ + F_ARRAY_SEND, /* array send (bin) proc */ + InvalidOid, /* typmodin procedure - none */ + InvalidOid, /* typmodout procedure - none */ + F_ARRAY_TYPANALYZE, /* array analyze procedure */ + elemtypoid, /* array element type - the rowtype */ + false, /* yes, this is an array type */ + InvalidOid, /* this has no array type */ + InvalidOid, /* domain base type - irrelevant */ + NULL, /* default value - none */ + NULL, /* default binary representation */ + false, /* passed by reference */ + 'd', /* alignment - must be the largest! */ + 'x', /* fully TOASTable */ + -1, /* typmod */ + 0, /* array dimensions for typBaseType */ + false, /* Type NOT NULL */ + get_typcollation(elemtypoid)); + + CommandCounterIncrement(); + + /* build dependency on created composite type. */ + ObjectAddress myself, referenced; + myself.classId = PackageRelationId; + myself.objectId = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->pkg_oid; + myself.objectSubId = 0; + referenced.classId = TypeRelationId; + referenced.objectId = typoid; + referenced.objectSubId = 0; + recordDependencyOn(&referenced, &myself, DEPENDENCY_AUTO); + CommandCounterIncrement(); + pfree_ext(casttypename); +} + +static void plpgsql_build_package_refcursor_type(const char* typname) +{ + CreateSynonymStmt stmt; + stmt.replace = true; + Node* lc = NULL; + List* synList = NULL; + List* objList = NULL; + + char* casttypename = CastPackageTypeName(typname, u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->pkg_oid, true, + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->is_spec_compiling); + if (strlen(casttypename) >= NAMEDATALEN ) { + ereport(errstate, + (errcode(ERRCODE_NAME_TOO_LONG), + errmsg("type name too long"), + errdetail("cursor type name %s with package name %s should be less the %d letters.", + typname, u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->pkg_signature, NAMEDATALEN))); + u_sess->plsql_cxt.have_error = true; + } + + Oid pkgNamespaceOid = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->namespaceOid; + if (!OidIsValid(pkgNamespaceOid)) { + pkgNamespaceOid = getCurrentNamespace(); + } + + HeapTuple tuple = NULL; + tuple = SearchSysCache2(SYNONYMNAMENSP, PointerGetDatum(casttypename), ObjectIdGetDatum(pkgNamespaceOid)); + if (HeapTupleIsValid(tuple)) { + Oid synOid = HeapTupleGetOid(tuple); + if(IsPackageDependType(synOid, u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->pkg_oid, true)) { + ReleaseSysCache(tuple); + return; + } else { + ReleaseSysCache(tuple); + ereport(errstate, + (errmodule(MOD_PLSQL), + errcode(ERRCODE_DUPLICATE_OBJECT), + errmsg("duplicate type name"), + errdetail("type name of \"%s\" duplicated with an existed type when build package type.", casttypename), + errcause("duplicate type name"), + erraction("modify package type name"))); + } + } + + char* pkgSchemaName = NULL; + if (OidIsValid(pkgNamespaceOid)) { + pkgSchemaName = get_namespace_name(pkgNamespaceOid); + lc = (Node*)makeString(pkgSchemaName); + synList = lappend(synList, lc); + } + + lc = (Node*)makeString(casttypename); + synList = lappend(synList, lc); + + lc = (Node*)makeString("pg_catalog"); + objList = lappend(objList, lc); + lc = (Node*)makeString("refcursor"); + objList = lappend(objList, lc); + + stmt.synName = synList; + stmt.objName = objList; + + CreateSynonym(&stmt); + + CommandCounterIncrement(); + + tuple = NULL; + tuple = SearchSysCache2(SYNONYMNAMENSP, PointerGetDatum(casttypename), ObjectIdGetDatum(pkgNamespaceOid)); + if (!HeapTupleIsValid(tuple)) { + ereport(ERROR, (errcode(ERRCODE_UNDEFINED_OBJECT), errmsg("synonym \"%s\" does not exist", casttypename))); + } + Oid synOid = HeapTupleGetOid(tuple); + ReleaseSysCache(tuple); + + /* build dependency on Synonym. */ + ObjectAddress myself, referenced; + myself.classId = PackageRelationId; + myself.objectId = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->pkg_oid; + myself.objectSubId = 0; + referenced.classId = PgSynonymRelationId; + referenced.objectId = synOid; + referenced.objectSubId = 0; + recordDependencyOn(&referenced, &myself, DEPENDENCY_AUTO); + CommandCounterIncrement(); + + pfree_ext(casttypename); + pfree_ext(pkgSchemaName); + +} + +static Node* make_columnDef_from_attr(PLpgSQL_rec_attr* attr) +{ + ColumnDef *n = makeNode(ColumnDef); + n->colname = pstrdup(attr->attrname); + n->typname = make_typename_from_datatype(attr->type); + n->inhcount = 0; + n->is_local = true; + n->is_not_null = false; + n->is_from_type = false; + n->storage = 0; + n->raw_default = NULL; + n->cooked_default = NULL; + n->collClause = NULL; + n->clientLogicColumnRef=NULL; + n->collOid = InvalidOid; + n->constraints = NIL; + + return (Node*)n; +} + +static TypeName* make_typename_from_datatype(PLpgSQL_type* datatype) +{ + return makeTypeNameFromOid(datatype->typoid, datatype->atttypmod); } /* @@ -6133,19 +10562,39 @@ check_labels(const char *start_label, const char *end_label, int end_location) { if (end_label) { - if (!start_label) - ereport(ERROR, + if (!start_label) { + const char* message = "end label specified for unlabelled block"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("end label \"%s\" specified for unlabelled block", end_label), parser_errposition(end_location))); + } - if (strcmp(start_label, end_label) != 0) - ereport(ERROR, + if (start_label == NULL || end_label == NULL) { + if (errstate == NOTICE) { + u_sess->plsql_cxt.have_error = true; + return; + } else { + const char* message = "end label specified for unlabelled block"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("end label \"%s\" differs from block's label \"%s\"", end_label, start_label), parser_errposition(end_location))); + } + } + if (strcmp(start_label, end_label) != 0) { + const char* message = "end label differs from block's label"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("end label \"%s\" differs from block's label \"%s\"", + end_label, start_label), + parser_errposition(end_location))); + } } } @@ -6175,12 +10624,15 @@ read_cursor_args(PLpgSQL_var *cursor, int until, const char *expected) if (cursor->cursor_explicit_argrow < 0) { /* No arguments expected */ - if (tok == '(') - ereport(ERROR, + if (tok == '(') { + const char* message = "cursor has no arguments"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("cursor \"%s\" has no arguments", cursor->refname), parser_errposition(yylloc))); + } if (tok != until) yyerror("syntax error"); @@ -6189,17 +10641,20 @@ read_cursor_args(PLpgSQL_var *cursor, int until, const char *expected) } /* Else better provide arguments */ - if (tok != '(') - ereport(ERROR, + if (tok != '(') { + const char* message = "cursor has arguments"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("cursor \"%s\" has arguments", cursor->refname), parser_errposition(yylloc))); + } /* * Read the arguments, one by one. */ - row = (PLpgSQL_row *) u_sess->plsql_cxt.plpgsql_Datums[cursor->cursor_explicit_argrow]; + row = (PLpgSQL_row *) u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[cursor->cursor_explicit_argrow]; argv = (char **) palloc0(row->nfields * sizeof(char *)); for (argc = 0; argc < row->nfields; argc++) @@ -6219,11 +10674,11 @@ read_cursor_args(PLpgSQL_var *cursor, int until, const char *expected) IdentifierLookup save_IdentifierLookup; /* Read the argument name, ignoring any matching variable */ - save_IdentifierLookup = u_sess->plsql_cxt.plpgsql_IdentifierLookup; - u_sess->plsql_cxt.plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_DECLARE; + save_IdentifierLookup = u_sess->plsql_cxt.curr_compile_context->plpgsql_IdentifierLookup; + u_sess->plsql_cxt.curr_compile_context->plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_DECLARE; yylex(); argname = yylval.str; - u_sess->plsql_cxt.plpgsql_IdentifierLookup = save_IdentifierLookup; + u_sess->plsql_cxt.curr_compile_context->plpgsql_IdentifierLookup = save_IdentifierLookup; /* Match argument name to cursor arguments */ for (argpos = 0; argpos < row->nfields; argpos++) @@ -6231,12 +10686,15 @@ read_cursor_args(PLpgSQL_var *cursor, int until, const char *expected) if (strcmp(row->fieldnames[argpos], argname) == 0) break; } - if (argpos == row->nfields) - ereport(ERROR, + if (argpos == row->nfields) { + const char* message = "cursor has no argument named"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("cursor \"%s\" has no argument named \"%s\"", cursor->refname, argname), parser_errposition(yylloc))); + } /* * Eat the ":=". We already peeked, so the error should never @@ -6251,12 +10709,15 @@ read_cursor_args(PLpgSQL_var *cursor, int until, const char *expected) else argpos = argc; - if (argv[argpos] != NULL) - ereport(ERROR, + if (argv[argpos] != NULL) { + const char* message = "value for parameter of cursor specified more than once"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("value for parameter \"%s\" of cursor \"%s\" specified more than once", row->fieldnames[argpos], cursor->refname), parser_errposition(arglocation))); + } /* * Read the value expression. To provide the user with meaningful @@ -6276,19 +10737,25 @@ read_cursor_args(PLpgSQL_var *cursor, int until, const char *expected) argv[argpos] = item->query + strlen(sqlstart); - if (endtoken == ')' && !(argc == row->nfields - 1)) - ereport(ERROR, + if (endtoken == ')' && !(argc == row->nfields - 1)) { + const char* message = "not enough arguments for cursor"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("not enough arguments for cursor \"%s\"", cursor->refname), parser_errposition(yylloc))); + } - if (endtoken == ',' && (argc == row->nfields - 1)) - ereport(ERROR, + if (endtoken == ',' && (argc == row->nfields - 1)) { + const char* message = "too many arguments for cursor"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("too many arguments for cursor \"%s\"", cursor->refname), parser_errposition(yylloc))); + } } /* Make positional argument list */ @@ -6417,7 +10884,7 @@ make_case(int location, PLpgSQL_expr *t_expr, /* use a name unlikely to collide with any user names */ snprintf(varname, sizeof(varname), "__Case__Variable_%d__", - u_sess->plsql_cxt.plpgsql_nDatums); + u_sess->plsql_cxt.curr_compile_context->plpgsql_nDatums); /* * We don't yet know the result datatype of t_expr. Build the @@ -6461,7 +10928,7 @@ make_case(int location, PLpgSQL_expr *t_expr, } static PLpgSQL_stmt * -make_callfunc_stmt_no_arg(const char *sqlstart, int location) +make_callfunc_stmt_no_arg(const char *sqlstart, int location, bool withsemicolon, List* funcNameList) { char *cp[3] = {0}; HeapTuple proctup = NULL; @@ -6480,22 +10947,29 @@ make_callfunc_stmt_no_arg(const char *sqlstart, int location) * the function make_callfunc_stmt_no_arg is only to assemble a sql statement, * so the context is set to tmp context. */ - oldCxt = MemoryContextSwitchTo(u_sess->plsql_cxt.compile_tmp_cxt); + oldCxt = MemoryContextSwitchTo(u_sess->plsql_cxt.curr_compile_context->compile_tmp_cxt); /* get the function's name. */ - plpgsql_parser_funcname(sqlstart, cp, 3); - - if (cp[2] != NULL && cp[2][0] != '\0') - funcname = list_make3(makeString(cp[0]), makeString(cp[1]), makeString(cp[2])); - else if (cp[1] && cp[1][0] != '\0') - funcname = list_make2(makeString(cp[0]), makeString(cp[1])); - else - funcname = list_make1(makeString(cp[0])); + if (funcNameList == NULL) { + plpgsql_parser_funcname(sqlstart, cp, 3); + } else { + funcname = funcNameList; + } + if (funcNameList == NULL) { + if (cp[2] != NULL && cp[2][0] != '\0') + funcname = list_make3(makeString(cp[0]), makeString(cp[1]), makeString(cp[2])); + else if (cp[1] && cp[1][0] != '\0') + funcname = list_make2(makeString(cp[0]), makeString(cp[1])); + else + funcname = list_make1(makeString(cp[0])); + } /* search the function */ clist = FuncnameGetCandidates(funcname, -1, NIL, false, false, false); if (clist == NULL) { - ereport(ERROR, + const char* message = "function doesn't exist"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_UNDEFINED_FUNCTION), errmsg("function \"%s\" doesn't exist ", sqlstart))); } @@ -6506,17 +10980,25 @@ make_callfunc_stmt_no_arg(const char *sqlstart, int location) /* function may be deleted after clist be searched. */ if (!HeapTupleIsValid(proctup)) { - ereport(ERROR, + const char* message = "function doesn't exist"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_UNDEFINED_FUNCTION), errmsg("function \"%s\" doesn't exist ", sqlstart))); } /* get the all args informations, only "in" parameters if p_argmodes is null */ narg = get_func_arg_info(proctup,&p_argtypes, &p_argnames, &p_argmodes); + int default_args = ((Form_pg_proc)GETSTRUCT(proctup))->pronargdefaults; ReleaseSysCache(proctup); - if (narg != 0) - ereport(ERROR, + + // For function with default values, SQL will handle the arg with default value. + if (narg != 0 && narg > default_args) { + const char* message = "function has no enough parameters"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, (errcode(ERRCODE_UNDEFINED_FUNCTION), errmsg("function %s has no enough parameters", sqlstart))); + } initStringInfo(&func_inparas); @@ -6531,8 +11013,9 @@ make_callfunc_stmt_no_arg(const char *sqlstart, int location) appendStringInfoString(&func_inparas, ")"); /* read the end token */ - yylex(); - + if (!withsemicolon) { + yylex(); + } (void)MemoryContextSwitchTo(oldCxt); /* generate the expression */ @@ -6632,14 +11115,21 @@ parse_lob_open_close(int location) static void raw_parse_package_function(char* proc_str) { - if (u_sess->plsql_cxt.plpgsql_curr_compile_package!=NULL) + if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package != NULL) { List* raw_parsetree_list = NULL; + u_sess->plsql_cxt.plpgsql_yylloc = plpgsql_yylloc; + u_sess->plsql_cxt.rawParsePackageFunction = true; raw_parsetree_list = raw_parser(proc_str); - CreateFunctionStmt* stmt;; + CreateFunctionStmt* stmt; + u_sess->plsql_cxt.rawParsePackageFunction = false; + int rc = 0; + if (raw_parsetree_list == NULL) { + return; + } stmt = (CreateFunctionStmt *)linitial(raw_parsetree_list); stmt->queryStr = proc_str; - if (u_sess->plsql_cxt.plpgsql_curr_compile_package->is_spec_compiling) { + if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->is_spec_compiling) { stmt->isPrivate = false; } else { stmt->isPrivate = true; @@ -6649,9 +11139,249 @@ static void raw_parse_package_function(char* proc_str) } else { stmt->isFunctionDeclare = false; } - List *proc_list = u_sess->plsql_cxt.plpgsql_curr_compile_package->proc_list; - u_sess->plsql_cxt.plpgsql_curr_compile_package->proc_list = lappend(proc_list,stmt); - } else { - yyerror("kerword PROCEDURE only use in package compile"); + + rc = CompileWhich(); + if (rc == PLPGSQL_COMPILE_PACKAGE) { + stmt->startLineNumber = u_sess->plsql_cxt.procedure_start_line; + stmt->firstLineNumber = u_sess->plsql_cxt.procedure_first_line; } + /* check function name */ + CheckDuplicateFunctionName(stmt->funcname); + List *proc_list = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->proc_list; + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->proc_list = lappend(proc_list,stmt); + } else { + yyerror("kerword PROCEDURE only use in package compile"); + } } + +static void CheckDuplicateFunctionName(List* funcNameList) +{ + char* schemaname = NULL; + char* pkgname = NULL; + char* funcname = NULL; + DeconstructQualifiedName(funcNameList, &schemaname, &funcname, &pkgname); + if (plpgsql_ns_lookup(plpgsql_ns_top(), true, funcname, NULL, NULL, NULL) != NULL) + yyerror("duplicate declaration"); +} + +static void IsInPublicNamespace(char* varname) { + if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile == NULL && + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package != NULL) { + PLpgSQL_package* pkg = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package; + if (plpgsql_ns_lookup(pkg->public_ns, true, varname, NULL, NULL, NULL) != NULL) { + const char* message = "duplicate declaration"; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, + (errmodule(MOD_PLSQL), errcode(ERRCODE_SYNTAX_ERROR), + errmsg("duplicate declaration"), + errdetail("name \"%s\" already defined", varname), + errcause("name maybe defined in public variable or type"), + erraction("rename variable or type"))); + } + } +} + +static void AddNamespaceIfNeed(int dno, char* ident) +{ + if (getCompileStatus() != COMPILIE_PKG_FUNC) { + return; + } + + if (ident == NULL) { + yyerror("null string when add package type to procedure namespace"); + } + + if (plpgsql_ns_lookup(plpgsql_ns_top(), true, ident, NULL, NULL, NULL) != NULL) { + return; + } + + if (dno == -1) { + plpgsql_ns_additem(PLPGSQL_NSTYPE_REFCURSOR, 0, ident); + return; + } + + PLpgSQL_datum* datum = u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[dno]; + switch(datum->dtype) { + case PLPGSQL_DTYPE_RECORD_TYPE : { + plpgsql_ns_additem(PLPGSQL_NSTYPE_RECORD, dno, ident); + } break; + case PLPGSQL_DTYPE_VARRAY : { + plpgsql_ns_additem(PLPGSQL_NSTYPE_VARRAY, dno, ident); + } break; + case PLPGSQL_DTYPE_TABLE : { + plpgsql_ns_additem(PLPGSQL_NSTYPE_TABLE, dno, ident); + } break; + default : { + yyerror("not recognized type when add package type to procedure namespace"); + } break; + } + + return; +} + +static void AddNamespaceIfPkgVar(const char* ident) +{ + if (getCompileStatus() != COMPILIE_PKG_FUNC) { + return; + } + + + if (ident == NULL) { + yyerror("null string when add package variable to procedure namespace"); + } + + if (plpgsql_ns_lookup(plpgsql_ns_top(), true, ident, NULL, NULL, NULL) != NULL) { + return; + } + + PLpgSQL_nsitem* ns = NULL; + PLpgSQL_compile_context* curr_compile = u_sess->plsql_cxt.curr_compile_context; + if (curr_compile->plpgsql_curr_compile_package != NULL) { + PLpgSQL_package* pkg = curr_compile->plpgsql_curr_compile_package; + ns = plpgsql_ns_lookup(pkg->public_ns, false, ident, NULL, NULL, NULL); + if (ns == NULL) { + ns = plpgsql_ns_lookup(pkg->private_ns, false, ident, NULL, NULL, NULL); + } + } + if (ns != NULL && (ns->itemtype == PLPGSQL_NSTYPE_VAR || ns->itemtype == PLPGSQL_NSTYPE_ROW)) { + plpgsql_ns_additem(ns->itemtype, ns->itemno, ident); + } + + return; +} + +static void get_datum_tok_type(PLpgSQL_datum* target, int* tok_flag) +{ + if (target->dtype == PLPGSQL_DTYPE_VAR) { + PLpgSQL_var* var = (PLpgSQL_var*)(target); + if (var != NULL && var->datatype != NULL && + var->datatype->typinput.fn_oid == F_ARRAY_IN) { + if (var->datatype->collectionType == PLPGSQL_COLLECTION_TABLE) { + *tok_flag = PLPGSQL_TOK_TABLE_VAR; + } else { + *tok_flag = PLPGSQL_TOK_VARRAY_VAR; + } + } else if (var != NULL && var->datatype && + var->datatype->typinput.fn_oid == F_DOMAIN_IN) { + HeapTuple type_tuple = + SearchSysCache1(TYPEOID, ObjectIdGetDatum(var->datatype->typoid)); + if (HeapTupleIsValid(type_tuple)) { + Form_pg_type type_form = (Form_pg_type)GETSTRUCT(type_tuple); + if (F_ARRAY_OUT == type_form->typoutput) { + *tok_flag = PLPGSQL_TOK_VARRAY_VAR; + } + } + ReleaseSysCache(type_tuple); + } + } +} + +static void plpgsql_cast_reference_list(List* idents, StringInfoData* ds, bool isPkgVar) +{ + char* word = NULL; + if (isPkgVar) { + word = strVal(linitial(idents)); + appendStringInfoString(ds, "("); + appendStringInfoString(ds, word); + appendStringInfoString(ds, "."); + word = strVal(lsecond(idents)); + appendStringInfoString(ds, word); + word = strVal(lthird(idents)); + appendStringInfoString(ds, "."); + appendStringInfoString(ds, word); + appendStringInfoString(ds, ")"); + word = strVal(lfourth(idents)); + appendStringInfoString(ds, "."); + appendStringInfoString(ds, word); + appendStringInfoString(ds, " "); + } else { + word = strVal(linitial(idents)); + appendStringInfoString(ds, "("); + appendStringInfoString(ds, word); + appendStringInfoString(ds, "."); + word = strVal(lsecond(idents)); + appendStringInfoString(ds, word); + appendStringInfoString(ds, ")"); + word = strVal(lthird(idents)); + appendStringInfoString(ds, "."); + appendStringInfoString(ds, word); + if (list_length(idents) == 4) { + word = strVal(lfourth(idents)); + appendStringInfoString(ds, "."); + appendStringInfoString(ds, word); + } + appendStringInfoString(ds, " "); + } +} + +static void CastArrayNameToArrayFunc(StringInfoData* ds, List* idents, bool needDot) +{ + char* arrayName1 = NULL; + char* arrayName2 = NULL; + char* arrayName3 = NULL; + + switch (list_length(idents)) { + case 2: { + arrayName1 = strVal(linitial(idents)); + appendStringInfo(ds, "\"%s\"", arrayName1); + } break; + case 3: { + arrayName1 = strVal(linitial(idents)); + arrayName2 = strVal(lsecond(idents)); + appendStringInfo(ds, "\"%s\".\"%s\"", arrayName1, arrayName2); + } break; + case 4: { + arrayName1 = strVal(linitial(idents)); + arrayName2 = strVal(lsecond(idents)); + arrayName3 = strVal(lthird(idents)); + appendStringInfo(ds, "\"%s\".\"%s\".\"%s\"", arrayName1, arrayName2, arrayName3); + } break; + default: { + yyerror("syntax error of array functions"); + } break; + } + + if (needDot) { + appendStringInfo(ds, ", "); + } else { + appendStringInfo(ds, " "); + } + + return; +} + +static bool PkgVarNeedCast(List* idents) +{ + /* only pkg.row.col1.col2 need cast */ + if (list_length(idents) != 4) { + return false; + } + + char* word1 = strVal(linitial(idents)); + char* word2 = strVal(lsecond(idents)); + char* word3 = strVal(lthird(idents)); + PLpgSQL_nsitem* ns = NULL; + int nnames = 0; + + ns = plpgsql_ns_lookup(plpgsql_ns_top(), false, word1, word2, word3, &nnames); + /* nnames = 2, means pkg.row.col2.col2 form */ + if (nnames == 2) { + return true; + } + + return false; + +} + +static void SetErrorState() +{ +#ifndef ENABLE_MULTIPLE_NODES + if (u_sess->attr.attr_common.plsql_show_all_error) { + errstate = NOTICE; + } else { + errstate = ERROR; + } +#else + errstate = ERROR; +#endif +} diff --git a/src/common/pl/plpgsql/src/pl_comp.cpp b/src/common/pl/plpgsql/src/pl_comp.cpp index 65910c583..1611b428c 100644 --- a/src/common/pl/plpgsql/src/pl_comp.cpp +++ b/src/common/pl/plpgsql/src/pl_comp.cpp @@ -25,6 +25,7 @@ #include "catalog/gs_package.h" #include "catalog/gs_package_fn.h" #include "catalog/pg_type.h" +#include "commands/sqladvisor.h" #include "executor/spi.h" #include "funcapi.h" #include "nodes/makefuncs.h" @@ -45,13 +46,14 @@ #include "utils/rel_gs.h" #include "utils/syscache.h" #include "miscadmin.h" - +#include "tcop/tcopprot.h" /* functions reference other modules */ extern THR_LOCAL List* baseSearchPath; #define FUNCS_PER_USER 128 /* initial table size */ #define PKGS_PER_USER 256 /* initial table size */ +#define MAXSTRLEN ((1 << 11) - 1) /* ---------- * Lookup table for EXCEPTION condition names * ---------- @@ -81,7 +83,6 @@ static Node* resolve_column_ref(ParseState* pstate, PLpgSQL_expr* expr, ColumnRe static Node* make_datum_param(PLpgSQL_expr* expr, int dno, int location); extern PLpgSQL_row* build_row_from_class(Oid class_oid); static PLpgSQL_row* build_row_from_vars(PLpgSQL_variable** vars, int numvars); -static PLpgSQL_type* build_datatype(HeapTuple type_tup, int32 typmod, Oid collation); static void compute_function_hashkey(HeapTuple proc_tup, FunctionCallInfo fcinfo, Form_pg_proc proc_struct, PLpgSQL_func_hashkey* hashkey, bool for_validator); static void plpgsql_resolve_polymorphic_argtypes( @@ -89,6 +90,11 @@ static void plpgsql_resolve_polymorphic_argtypes( static PLpgSQL_function* plpgsql_HashTableLookup(PLpgSQL_func_hashkey* func_key); static void plpgsql_HashTableInsert(PLpgSQL_function* func, PLpgSQL_func_hashkey* func_key); static void plpgsql_append_dlcell(plpgsql_HashEnt* entity); +static bool plpgsql_lookup_tripword_datum(int itemno, const char* word2, const char* word3, + PLwdatum* wdatum, int* tok_flag); +static void get_datum_tok_type(PLpgSQL_datum* target, int* tok_flag); +static PLpgSQL_type* plpgsql_get_cursor_type_relid(const char* cursorname, const char* colname, MemoryContext oldCxt); +static int find_package_rowfield(PLpgSQL_datum* datum, const char* pkgName, const char* schemaName = NULL); extern int plpgsql_getCustomErrorCode(void); extern bool is_func_need_cache(Oid funcid, const char* func_name); @@ -96,20 +102,6 @@ extern bool is_func_need_cache(Oid funcid, const char* func_name); extern bool plpgsql_check_insert_colocate( Query* query, List* qry_part_attr_num, List* trig_part_attr_num, PLpgSQL_function* func); -typedef int (*plsql_parser)(void); -static inline plsql_parser PlsqlParser(){ - int (*plsql_parser_hook)(void) = plpgsql_yyparse; -#ifndef ENABLE_MULTIPLE_NODES - if (u_sess->attr.attr_sql.enable_custom_parser) { - int id = GetCustomParserId(); - if (id >= 0 && g_instance.plsql_parser_hook[id] != NULL) { - plsql_parser_hook = (int(*)(void))g_instance.plsql_parser_hook[id]; - } - } -#endif - return plsql_parser_hook; -} - /* ---------- * plpgsql_compile Make an execution tree for a PL/pgSQL function. * @@ -200,7 +192,8 @@ recheck: } } } else { - if (OidIsValid(packageOid) && u_sess->plsql_cxt.plpgsql_curr_compile_package == NULL) { + if (OidIsValid(packageOid) && (u_sess->plsql_cxt.curr_compile_context == NULL || + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package == NULL)) { PLpgSQL_package* pkg = PackageInstantiation(packageOid); ListCell* l = NULL; if (pkg == NULL) { @@ -214,7 +207,7 @@ recheck: return func; } } - ereport(ERROR, (errcode(ERRCODE_UNDEFINED_FUNCTION), + ereport(NOTICE, (errcode(ERRCODE_UNDEFINED_FUNCTION), errmsg("not found function %u in package", fcinfo->flinfo->fn_oid))); } } @@ -233,7 +226,23 @@ recheck: /* * Do the hard part. */ - func = do_compile(fcinfo, proc_tup, func, &hashkey, for_validator); + PLpgSQL_compile_context* save_compile_context = u_sess->plsql_cxt.curr_compile_context; + PG_TRY(); + { + func = do_compile(fcinfo, proc_tup, func, &hashkey, for_validator); + } + PG_CATCH(); + { +#ifndef ENABLE_MULTIPLE_NODES + bool show_all_error = u_sess->attr.attr_common.plsql_show_all_error && u_sess->plsql_cxt.isCreateFunction; + if (show_all_error) { + InsertError(func_oid); + } +#endif + popToOldCompileContext(save_compile_context); + PG_RE_THROW(); + } + PG_END_TRY(); } ReleaseSysCache(proc_tup); @@ -276,9 +285,19 @@ PLpgSQL_function* plpgsql_compile_nohashkey(FunctionCallInfo fcinfo) * We should set for_validator of do_compile to false here which only need be * set true by plpgsql_validator in CREATE FUNCTION or DO command. */ - if (func == NULL) { - func = do_compile(fcinfo, proc_tup, func, NULL, false); + PLpgSQL_compile_context* save_compile_context = u_sess->plsql_cxt.curr_compile_context; + PG_TRY(); + { + if (func == NULL) { + func = do_compile(fcinfo, proc_tup, func, NULL, false); + } } + PG_CATCH(); + { + popToOldCompileContext(save_compile_context); + PG_RE_THROW(); + } + PG_END_TRY(); ReleaseSysCache(proc_tup); /* Save pointer in FmgrInfo to avoid search on subsequent calls. */ @@ -319,6 +338,203 @@ static bool IsNestAutonmous(List* stmts) return false; } +void checkCompileMemoryContext(const MemoryContext cxt) +{ + if (cxt == NULL) { + ereport(ERROR, (errmodule(MOD_PLSQL), errcode(ERRCODE_UNRECOGNIZED_NODE_TYPE), + errmsg("current compile memory context is NULL"), + errdetail("N/A"), errcause("nested compilation switch context error"), + erraction("check logic of compilation"))); + } +} + +/* + * get compile context if NULL, create new context. + */ +MemoryContext getCompileContext(char* const context_name) +{ + switch (u_sess->plsql_cxt.compile_status) { + case COMPILIE_ANON_BLOCK: { + return AllocSetContextCreate(CurrentMemoryContext, context_name, + ALLOCSET_DEFAULT_MINSIZE, ALLOCSET_DEFAULT_INITSIZE, ALLOCSET_DEFAULT_MAXSIZE); + } break; + case COMPILIE_PKG: { + return AllocSetContextCreate(u_sess->top_mem_cxt, context_name, + ALLOCSET_DEFAULT_MINSIZE, ALLOCSET_DEFAULT_INITSIZE, ALLOCSET_DEFAULT_MAXSIZE); + } break; + case COMPILIE_PKG_ANON_BLOCK: + case COMPILIE_PKG_FUNC: { + if (u_sess->plsql_cxt.curr_compile_context == NULL || + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package == NULL) { + ereport(ERROR, (errmodule(MOD_PLSQL), errcode(ERRCODE_UNRECOGNIZED_NODE_TYPE), + errmsg("current compile context is NULL"), + errdetail("N/A"), errcause("nested compilation swtich context error"), + erraction("check logic of compilation"))); + } + checkCompileMemoryContext(u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->pkg_cxt); + return u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->pkg_cxt; + } break; + case NONE_STATUS: { + if (u_sess->plsql_cxt.curr_compile_context != NULL) { + ereport(ERROR, (errmodule(MOD_PLSQL), errcode(ERRCODE_UNRECOGNIZED_NODE_TYPE), + errmsg("current compile context should be NULL"), + errdetail("N/A"), errcause("nested compilation swtich context error"), + erraction("check logic of compilation"))); + } + return AllocSetContextCreate(u_sess->top_mem_cxt, context_name, + ALLOCSET_DEFAULT_MINSIZE, ALLOCSET_DEFAULT_INITSIZE, ALLOCSET_DEFAULT_MAXSIZE); + } break; + default: { + ereport(ERROR, (errmodule(MOD_PLSQL), errcode(ERRCODE_UNRECOGNIZED_NODE_TYPE), + errmsg("unrecognized compile type: %d", u_sess->plsql_cxt.compile_status))); + break; + } + } + return NULL; +} + +static void initCompileContext(PLpgSQL_compile_context* compile_cxt, MemoryContext cxt) +{ + compile_cxt->datums_alloc = 0; + compile_cxt->datums_pkg_alloc = 0; + compile_cxt->plpgsql_nDatums = 0; + compile_cxt->plpgsql_pkg_nDatums = 0; + compile_cxt->datums_last = 0; + compile_cxt->datums_pkg_last = 0; + compile_cxt->plpgsql_error_funcname = NULL; + compile_cxt->plpgsql_error_pkgname = NULL; + compile_cxt->plpgsql_parse_result = NULL; + compile_cxt->plpgsql_Datums = NULL; + compile_cxt->plpgsql_curr_compile = NULL; + compile_cxt->plpgsql_DumpExecTree = false; + compile_cxt->plpgsql_pkg_DumpExecTree = false; + compile_cxt->ns_top = NULL; + compile_cxt->plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_NORMAL; + compile_cxt->yyscanner = NULL; + /* ??? should palloc every time? */ + compile_cxt->core_yy = (core_yy_extra_type*)palloc0(sizeof(core_yy_extra_type)); + compile_cxt->scanorig = NULL; + compile_cxt->plpgsql_yyleng = 0; + compile_cxt->num_pushbacks = 0; + compile_cxt->cur_line_start = 0; + compile_cxt->cur_line_end = 0; + compile_cxt->cur_line_num = 0; + compile_cxt->goto_labels = NIL; + compile_cxt->plpgsql_check_syntax = false; + compile_cxt->compile_tmp_cxt = NULL; + compile_cxt->compile_cxt = cxt; + + switch (u_sess->plsql_cxt.compile_status) { + case COMPILIE_PKG_ANON_BLOCK: + case COMPILIE_PKG_FUNC: + compile_cxt->plpgsql_curr_compile_package = + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package; + break; + default: + compile_cxt->plpgsql_curr_compile_package = NULL; + break; + } +} + +void clearCompileContext(PLpgSQL_compile_context* compile_cxt) +{ + if (compile_cxt == NULL) { + return; + } + pfree_ext(compile_cxt->core_yy); + pfree_ext(compile_cxt->plpgsql_error_funcname); + pfree_ext(compile_cxt->plpgsql_error_pkgname); + pfree_ext(compile_cxt); +} + +void clearCompileContextList(const int releaseLength) +{ + if (u_sess->plsql_cxt.compile_context_list == NULL) { + return ; + } + ListCell* lc = list_head(u_sess->plsql_cxt.compile_context_list); + PLpgSQL_compile_context* compile_cxt = NULL; + int len = list_length(u_sess->plsql_cxt.compile_context_list); + int i = len; + while (lc != NULL) { + i--; + ListCell* newlc = lnext(lc); + if (i < len - releaseLength) { + lc = newlc; + continue; + } + compile_cxt = (PLpgSQL_compile_context*)lfirst(lc); + u_sess->plsql_cxt.compile_context_list = list_delete(u_sess->plsql_cxt.compile_context_list, compile_cxt); + clearCompileContext(compile_cxt); + lc = newlc; + } +} + +PLpgSQL_compile_context* createCompileContext(char* const context_name) +{ + MemoryContext cxt = getCompileContext(context_name); + + PLpgSQL_compile_context* compile_cxt = (PLpgSQL_compile_context*)MemoryContextAllocZero( + cxt, sizeof(PLpgSQL_compile_context)); + initCompileContext(compile_cxt, cxt); + + return compile_cxt; +} + +void pushCompileContext() +{ + if (u_sess->plsql_cxt.curr_compile_context != NULL) { + checkCompileMemoryContext(u_sess->plsql_cxt.curr_compile_context->compile_cxt); + MemoryContext oldcontext = MemoryContextSwitchTo(u_sess->plsql_cxt.curr_compile_context->compile_cxt); + u_sess->plsql_cxt.compile_context_list = lcons(u_sess->plsql_cxt.curr_compile_context, + u_sess->plsql_cxt.compile_context_list); + MemoryContextSwitchTo(oldcontext); + } +} + +PLpgSQL_compile_context* popCompileContext() +{ + if (u_sess->plsql_cxt.compile_context_list != NIL) { + u_sess->plsql_cxt.compile_context_list = list_delete_first_nofree(u_sess->plsql_cxt.compile_context_list); + if (list_length(u_sess->plsql_cxt.compile_context_list) == 0) { + u_sess->plsql_cxt.compile_context_list = NIL; + return NULL; + } + return (PLpgSQL_compile_context*)linitial(u_sess->plsql_cxt.compile_context_list); + } + return NULL; +} + +void popToOldCompileContext(PLpgSQL_compile_context* save) +{ + while (u_sess->plsql_cxt.compile_context_list != NIL) { + PLpgSQL_compile_context* curr = (PLpgSQL_compile_context*)linitial(u_sess->plsql_cxt.compile_context_list); + if (save == curr) { + break; + } + popCompileContext(); + } + u_sess->plsql_cxt.curr_compile_context = save; +} + +int CompileStatusSwtichTo(int newCompileStatus) +{ + int oldCompileStatus = u_sess->plsql_cxt.compile_status; + u_sess->plsql_cxt.compile_status = newCompileStatus; + return oldCompileStatus; +} + +int getCompileStatus() +{ + return u_sess->plsql_cxt.compile_status; +} + +PLpgSQL_resolve_option GetResolveOption() +{ + return (u_sess->attr.attr_sql.sql_compatibility == A_FORMAT) ? + PLPGSQL_RESOLVE_COLUMN : PLPGSQL_RESOLVE_ERROR; +} + /* * This is the slow part of plpgsql_compile(). * @@ -336,7 +552,7 @@ static bool IsNestAutonmous(List* stmts) * careful about pfree'ing their allocations, it is also wise to * switch into a short-term context before calling into the * backend. An appropriate context for performing short-term - * allocations is the u_sess->plsql_cxt.compile_tmp_cxt. + * allocations is the u_sess->plsql_cxt.curr_compile_context->compile_tmp_cxt. * * NB: this code is not re-entrant. We assume that nothing we do here could * result in the invocation of another plpgsql function. @@ -398,10 +614,6 @@ static PLpgSQL_function* do_compile(FunctionCallInfo fcinfo, HeapTuple proc_tup, } else { proisprivatedatum = BoolGetDatum(false); } - plpgsql_scanner_init(proc_source); - - u_sess->plsql_cxt.plpgsql_error_funcname = pstrdup(NameStr(proc_struct->proname)); - /* * Setup error traceback support for ereport() */ @@ -410,13 +622,6 @@ static PLpgSQL_function* do_compile(FunctionCallInfo fcinfo, HeapTuple proc_tup, pl_err_context.previous = t_thrd.log_cxt.error_context_stack; t_thrd.log_cxt.error_context_stack = &pl_err_context; - /* - * Do extra syntax checks when validating the function definition. We skip - * this when actually compiling functions for execution, for performance - * reasons. - */ - u_sess->plsql_cxt.plpgsql_check_syntax = for_validator; - /* * Create the new function struct, if not done already. The function * structs are never thrown away, so keep them in session memory context. @@ -429,7 +634,6 @@ static PLpgSQL_function* do_compile(FunctionCallInfo fcinfo, HeapTuple proc_tup, rc = memset_s(func, sizeof(PLpgSQL_function), 0, sizeof(PLpgSQL_function)); securec_check(rc, "\0", "\0"); } - u_sess->plsql_cxt.plpgsql_curr_compile = func; u_sess->plsql_cxt.plpgsql_IndexErrorVariable = 0; signature = format_procedure(fcinfo->flinfo->fn_oid); @@ -444,14 +648,24 @@ static PLpgSQL_function* do_compile(FunctionCallInfo fcinfo, HeapTuple proc_tup, * if the function belong to a package,then the function memorycontext will use the package memorycontext, * because function may use package variable */ - if (u_sess->plsql_cxt.plpgsql_curr_compile_package == NULL) { - u_sess->plsql_cxt.plpgsql_cxt = AllocSetContextCreate(u_sess->top_mem_cxt, - context_name, ALLOCSET_DEFAULT_MINSIZE, ALLOCSET_DEFAULT_INITSIZE, ALLOCSET_DEFAULT_MAXSIZE); - } else { - u_sess->plsql_cxt.plpgsql_cxt = u_sess->plsql_cxt.plpgsql_curr_compile_package->pkg_cxt; + PLpgSQL_compile_context* curr_compile = createCompileContext(context_name); + SPI_NESTCOMPILE_LOG(curr_compile->compile_cxt); + MemoryContext temp = NULL; + if (u_sess->plsql_cxt.curr_compile_context != NULL) { + checkCompileMemoryContext(u_sess->plsql_cxt.curr_compile_context->compile_tmp_cxt); + temp = MemoryContextSwitchTo(u_sess->plsql_cxt.curr_compile_context->compile_tmp_cxt); } - - + u_sess->plsql_cxt.curr_compile_context = curr_compile; + pushCompileContext(); + plpgsql_scanner_init(proc_source); + curr_compile->plpgsql_curr_compile = func; + curr_compile->plpgsql_error_funcname = pstrdup(NameStr(proc_struct->proname)); + /* + * Do extra syntax checks when validating the function definition. We skip + * this when actually compiling functions for execution, for performance + * reasons. + */ + curr_compile->plpgsql_check_syntax = for_validator; /* * compile_tmp_cxt is a short temp context that will be detroyed after @@ -461,16 +675,16 @@ static PLpgSQL_function* do_compile(FunctionCallInfo fcinfo, HeapTuple proc_tup, * signature is stored on a StringInfoData which is 1K byte at least, but * most signature will not be so long originally, so we should do a strdup. */ - u_sess->plsql_cxt.compile_tmp_cxt = MemoryContextSwitchTo(u_sess->plsql_cxt.plpgsql_cxt); + curr_compile->compile_tmp_cxt = MemoryContextSwitchTo(curr_compile->compile_cxt); func->fn_signature = pstrdup(signature); func->is_private = BoolGetDatum(proisprivatedatum); /* * if function belong to a package, it will use package search path. */ - if (u_sess->plsql_cxt.plpgsql_curr_compile_package == NULL) { + if (curr_compile->plpgsql_curr_compile_package == NULL) { func->fn_searchpath = (OverrideSearchPath*)palloc0(sizeof(OverrideSearchPath)); } else { - func->fn_searchpath = u_sess->plsql_cxt.plpgsql_curr_compile_package->pkg_searchpath; + func->fn_searchpath = curr_compile->plpgsql_curr_compile_package->pkg_searchpath; } func->fn_owner = proc_struct->proowner; func->fn_oid = fcinfo->flinfo->fn_oid; @@ -478,13 +692,15 @@ static PLpgSQL_function* do_compile(FunctionCallInfo fcinfo, HeapTuple proc_tup, func->fn_tid = proc_tup->t_self; func->fn_is_trigger = is_trigger; func->fn_input_collation = fcinfo->fncollation; - func->fn_cxt = u_sess->plsql_cxt.plpgsql_cxt; + func->fn_cxt = curr_compile->compile_cxt; func->out_param_varno = -1; /* set up for no OUT param */ - func->resolve_option = (PLpgSQL_resolve_option)u_sess->plsql_cxt.plpgsql_variable_conflict; + func->resolve_option = GetResolveOption(); + func->invalItems = NIL; func->pkg_oid = pkgoid; func->fn_searchpath->addCatalog = true; func->fn_searchpath->addTemp = true; + func->ns_top = curr_compile->ns_top; if (proc_struct->pronamespace == PG_CATALOG_NAMESPACE || proc_struct->pronamespace == PG_DB4AI_NAMESPACE) { current_searchpath = fetch_search_path(false); if (current_searchpath == NIL) { @@ -558,14 +774,14 @@ static PLpgSQL_function* do_compile(FunctionCallInfo fcinfo, HeapTuple proc_tup, */ plpgsql_ns_init(); plpgsql_ns_push(NameStr(proc_struct->proname)); - u_sess->plsql_cxt.plpgsql_DumpExecTree = false; - u_sess->plsql_cxt.datums_alloc = alloc_size; - u_sess->plsql_cxt.plpgsql_nDatums = 0; + curr_compile->plpgsql_DumpExecTree = false; + curr_compile->datums_alloc = alloc_size; + curr_compile->plpgsql_nDatums = 0; /* This is short-lived, so needn't allocate in function's cxt */ - u_sess->plsql_cxt.plpgsql_Datums = (PLpgSQL_datum**)MemoryContextAlloc( - u_sess->plsql_cxt.compile_tmp_cxt, sizeof(PLpgSQL_datum*) * u_sess->plsql_cxt.datums_alloc); - u_sess->plsql_cxt.datums_last = 0; + curr_compile->plpgsql_Datums = (PLpgSQL_datum**)MemoryContextAlloc( + curr_compile->compile_tmp_cxt, sizeof(PLpgSQL_datum*) * curr_compile->datums_alloc); + curr_compile->datums_last = 0; add_pkg_compile(); switch ((int)is_trigger) { case false: @@ -578,17 +794,17 @@ static PLpgSQL_function* do_compile(FunctionCallInfo fcinfo, HeapTuple proc_tup, * argument types. In validation mode we won't be able to, so we * arbitrarily assume we are dealing with integers. */ - MemoryContextSwitchTo(u_sess->plsql_cxt.compile_tmp_cxt); + MemoryContextSwitchTo(curr_compile->compile_tmp_cxt); numargs = get_func_arg_info(proc_tup, &arg_types, &argnames, &arg_modes); plpgsql_resolve_polymorphic_argtypes(numargs, arg_types, arg_modes, - fcinfo->flinfo->fn_expr, for_validator, u_sess->plsql_cxt.plpgsql_error_funcname); + fcinfo->flinfo->fn_expr, for_validator, curr_compile->plpgsql_error_funcname); in_arg_varnos = (int*)palloc0(numargs * sizeof(int)); out_arg_variables = (PLpgSQL_variable**)palloc0(numargs * sizeof(PLpgSQL_variable*)); - MemoryContextSwitchTo(u_sess->plsql_cxt.plpgsql_cxt); + MemoryContextSwitchTo(curr_compile->compile_cxt); /* * Create the variables for the procedure's parameters. @@ -692,7 +908,7 @@ static PLpgSQL_function* do_compile(FunctionCallInfo fcinfo, HeapTuple proc_tup, if (!OidIsValid(rettypeid)) { ereport(ERROR, (errmodule(MOD_PLSQL), errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("could not determine actual return type for polymorphic function \"%s\"", - u_sess->plsql_cxt.plpgsql_error_funcname))); + u_sess->plsql_cxt.curr_compile_context->plpgsql_error_funcname))); } } } @@ -855,28 +1071,61 @@ static PLpgSQL_function* do_compile(FunctionCallInfo fcinfo, HeapTuple proc_tup, u_sess->misc_cxt.Pseudo_CurrentUserId = &func->fn_owner; // Create the magic sqlcode variable marco - var = plpgsql_build_variable("sqlcode", 0, plpgsql_build_datatype(INT4OID, -1, InvalidOid), true, true); - func->sqlcode_varno = var->dno; + if (u_sess->attr.attr_sql.sql_compatibility == A_FORMAT) { + var = plpgsql_build_variable("sqlcode", 0, plpgsql_build_datatype(TEXTOID, -1, InvalidOid), true, true); + } else { + var = plpgsql_build_variable("sqlcode", 0, plpgsql_build_datatype(INT4OID, -1, InvalidOid), true, true); + } + func->sqlcode_varno = var->dno; + var = plpgsql_build_variable("sqlstate", 0, plpgsql_build_datatype(TEXTOID, -1, InvalidOid), true, true); + func->sqlstate_varno = var->dno; + var = plpgsql_build_variable("sqlerrm", 0, plpgsql_build_datatype(TEXTOID, -1, InvalidOid), true, true); + func->sqlerrm_varno = var->dno; + +#ifndef ENABLE_MULTIPLE_NODES + /* Create bulk exception implicit variable for FORALL SAVE EXCEPTIONS */ + Oid typeOid = get_typeoid(PG_CATALOG_NAMESPACE, "bulk_exception"); + if (typeOid != InvalidOid) { /* version control */ + Oid arrTypOid = get_array_type(get_typeoid(PG_CATALOG_NAMESPACE, "bulk_exception")); + var = plpgsql_build_variable( + "bulk_exceptions", 0, plpgsql_build_datatype(arrTypOid, -1, InvalidOid), true, true); + func->sql_bulk_exceptions_varno = var->dno; + } +#endif /* * Now parse the function's text */ - parse_rc = (*PlsqlParser())(); - if (parse_rc != 0) { + bool saved_flag = u_sess->plsql_cxt.have_error; + u_sess->plsql_cxt.have_error = false; + parse_rc = plpgsql_yyparse(); +#ifndef ENABLE_MULTIPLE_NODES + if (u_sess->plsql_cxt.have_error && u_sess->attr.attr_common.plsql_show_all_error) { + u_sess->plsql_cxt.have_error = false; + u_sess->plsql_cxt.create_func_error = true; ereport(ERROR, (errmodule(MOD_PLSQL), + errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("Debug mod,create procedure has error."), + errdetail("N/A"), + errcause("compile procedure error."), + erraction("check procedure error and redefine procedure"))); + } +#endif + u_sess->plsql_cxt.have_error = saved_flag; + if (parse_rc != 0) { + ereport(ERROR, (errmodule(MOD_PLSQL), errcode(ERRCODE_UNRECOGNIZED_NODE_TYPE), errmsg("Syntax parsing error, plpgsql parser returned %d", parse_rc))); } - func->action = u_sess->plsql_cxt.plpgsql_parse_result; + func->action = curr_compile->plpgsql_parse_result; if (is_trigger && func->action->isAutonomous) { ereport(ERROR, (errmodule(MOD_PLSQL), errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("Triggers do not support autonomous transactions"), - errdetail("N/A"), - errcause("PL/SQL uses unsupported feature."), + errdetail("N/A"), errcause("PL/SQL uses unsupported feature."), erraction("Modify SQL statement according to the manual."))); } @@ -885,15 +1134,13 @@ static PLpgSQL_function* do_compile(FunctionCallInfo fcinfo, HeapTuple proc_tup, (errmodule(MOD_PLSQL), errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("Autonomous transactions do not support RETURN SETOF."), - errdetail("N/A"), - errcause("PL/SQL uses unsupported feature."), + errdetail("N/A"), errcause("PL/SQL uses unsupported feature."), erraction("Modify SQL statement according to the manual."))); } #ifdef ENABLE_MULTIPLE_NODES if (proc_struct->provolatile != PROVOLATILE_VOLATILE && func->action->isAutonomous) { - ereport(ERROR, - (errmodule(MOD_PLSQL), + ereport(ERROR, (errmodule(MOD_PLSQL), errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("Autonomous transactions do not support STABLE/IMMUTABLE."), errdetail("Please remove stable/immutable."), @@ -903,8 +1150,7 @@ static PLpgSQL_function* do_compile(FunctionCallInfo fcinfo, HeapTuple proc_tup, #endif if (IsNestAutonmous(func->action->body)) { - ereport(ERROR, - (errmodule(MOD_PLSQL), + ereport(ERROR, (errmodule(MOD_PLSQL), errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("Autonomous transactions do not support nested anonymous blocks."), errdetail("N/A"), @@ -912,7 +1158,7 @@ static PLpgSQL_function* do_compile(FunctionCallInfo fcinfo, HeapTuple proc_tup, erraction("You can delete AUTONOMOUS_TRANSACTION parameter."))); } - func->goto_labels = u_sess->plsql_cxt.goto_labels; + func->goto_labels = curr_compile->goto_labels; plpgsql_scanner_finish(); pfree_ext(proc_source); @@ -940,20 +1186,13 @@ static PLpgSQL_function* do_compile(FunctionCallInfo fcinfo, HeapTuple proc_tup, for (i = 0; i < func->fn_nargs; i++) { func->fn_argvarnos[i] = in_arg_varnos[i]; } - func->ndatums = u_sess->plsql_cxt.plpgsql_nDatums; - func->datums = (PLpgSQL_datum**)palloc(sizeof(PLpgSQL_datum*) * u_sess->plsql_cxt.plpgsql_nDatums); - for (i = 0; i < u_sess->plsql_cxt.plpgsql_nDatums; i++) { - func->datums[i] = u_sess->plsql_cxt.plpgsql_Datums[i]; - if (u_sess->plsql_cxt.plpgsql_curr_compile_package != NULL) { - func->datums[i]->ispkg = true; - if (func->datums[i]->dtype == PLPGSQL_DTYPE_VAR) { - PLpgSQL_var* var = reinterpret_cast(func->datums[i]); - var->pkg = u_sess->plsql_cxt.plpgsql_curr_compile_package; - } - } + func->ndatums = curr_compile->plpgsql_nDatums; + func->datums = (PLpgSQL_datum**)palloc(sizeof(PLpgSQL_datum*) * curr_compile->plpgsql_nDatums); + for (i = 0; i < curr_compile->plpgsql_nDatums; i++) { + func->datums[i] = curr_compile->plpgsql_Datums[i]; } /* Debug dump for completed functions */ - if (u_sess->plsql_cxt.plpgsql_DumpExecTree) { + if (curr_compile->plpgsql_DumpExecTree) { plpgsql_dumptree(func); } /* @@ -969,17 +1208,24 @@ static PLpgSQL_function* do_compile(FunctionCallInfo fcinfo, HeapTuple proc_tup, * Pop the error context stack */ t_thrd.log_cxt.error_context_stack = pl_err_context.previous; - u_sess->plsql_cxt.plpgsql_error_funcname = NULL; - u_sess->plsql_cxt.plpgsql_curr_compile = NULL; - u_sess->plsql_cxt.plpgsql_check_syntax = false; - if (u_sess->plsql_cxt.plpgsql_curr_compile_package != NULL) { - List* proc_compiled_list = u_sess->plsql_cxt.plpgsql_curr_compile_package->proc_compiled_list; - u_sess->plsql_cxt.plpgsql_curr_compile_package->proc_compiled_list = lappend(proc_compiled_list, func); - } - MemoryContextSwitchTo(u_sess->plsql_cxt.compile_tmp_cxt); - if (u_sess->plsql_cxt.plpgsql_curr_compile_package == NULL) - u_sess->plsql_cxt.compile_tmp_cxt = NULL; + curr_compile->plpgsql_error_funcname = NULL; + curr_compile->plpgsql_curr_compile = NULL; + curr_compile->plpgsql_check_syntax = false; + if (curr_compile->plpgsql_curr_compile_package != NULL) { + List* proc_compiled_list = curr_compile->plpgsql_curr_compile_package->proc_compiled_list; + curr_compile->plpgsql_curr_compile_package->proc_compiled_list = lappend(proc_compiled_list, func); + } + MemoryContextSwitchTo(curr_compile->compile_tmp_cxt); + if (curr_compile->plpgsql_curr_compile_package == NULL) + curr_compile->compile_tmp_cxt = NULL; + ereport(DEBUG3, (errmodule(MOD_NEST_COMPILE), errcode(ERRCODE_LOG), + errmsg("%s finish compile, level: %d", __func__, list_length(u_sess->plsql_cxt.compile_context_list)))); + u_sess->plsql_cxt.curr_compile_context = popCompileContext(); + clearCompileContext(curr_compile); + if (temp != NULL) { + MemoryContextSwitchTo(temp); + } return func; } @@ -1000,8 +1246,20 @@ PLpgSQL_function* plpgsql_compile_inline(char* proc_source) Oid typinput; PLpgSQL_variable* var = NULL; int parse_rc; - MemoryContext func_cxt; const int alloc_size = 128; + int oldCompileStatus = getCompileStatus(); + /* if is anonymous Blocks */ + if (oldCompileStatus == NONE_STATUS) { + CompileStatusSwtichTo(COMPILIE_ANON_BLOCK); + } + PLpgSQL_compile_context* curr_compile = createCompileContext("PL/pgSQL function context"); + SPI_NESTCOMPILE_LOG(curr_compile->compile_cxt); + MemoryContext temp = NULL; + if (u_sess->plsql_cxt.curr_compile_context != NULL) { + temp = MemoryContextSwitchTo(u_sess->plsql_cxt.curr_compile_context->compile_tmp_cxt); + } + u_sess->plsql_cxt.curr_compile_context = curr_compile; + pushCompileContext(); /* * Setup the scanner input and error info. We assume that this function * cannot be invoked recursively, so there's no need to save and restore @@ -1009,7 +1267,7 @@ PLpgSQL_function* plpgsql_compile_inline(char* proc_source) */ plpgsql_scanner_init(proc_source); - u_sess->plsql_cxt.plpgsql_error_funcname = pstrdup(func_name); + curr_compile->plpgsql_error_funcname = pstrdup(func_name); /* * Setup error traceback support for ereport() @@ -1020,44 +1278,28 @@ PLpgSQL_function* plpgsql_compile_inline(char* proc_source) t_thrd.log_cxt.error_context_stack = &pl_err_context; /* Do extra syntax checking if u_sess->attr.attr_sql.check_function_bodies is on */ - u_sess->plsql_cxt.plpgsql_check_syntax = u_sess->attr.attr_sql.check_function_bodies; + curr_compile->plpgsql_check_syntax = u_sess->attr.attr_sql.check_function_bodies; /* Function struct does not live past current statement */ PLpgSQL_function* func = (PLpgSQL_function*)palloc0(sizeof(PLpgSQL_function)); - u_sess->plsql_cxt.plpgsql_curr_compile = func; - - /* - * All the rest of the compile-time storage (e.g. parse tree) is kept in - * its own memory context, so it can be reclaimed easily. - */ - if (u_sess->plsql_cxt.plpgsql_curr_compile_package == NULL) { - func_cxt = AllocSetContextCreate(CurrentMemoryContext, - "PL/pgSQL function context", - ALLOCSET_DEFAULT_MINSIZE, - ALLOCSET_DEFAULT_INITSIZE, - ALLOCSET_DEFAULT_MAXSIZE); - } else { - func_cxt = u_sess->plsql_cxt.plpgsql_curr_compile_package->pkg_cxt; - } - u_sess->plsql_cxt.compile_tmp_cxt = MemoryContextSwitchTo(func_cxt); + curr_compile->plpgsql_curr_compile = func; + curr_compile->compile_tmp_cxt = MemoryContextSwitchTo(curr_compile->compile_cxt); func->fn_signature = pstrdup(func_name); func->fn_is_trigger = false; func->fn_input_collation = InvalidOid; - func->fn_cxt = func_cxt; - u_sess->plsql_cxt.plpgsql_cxt = func_cxt; + func->fn_cxt = curr_compile->compile_cxt; func->out_param_varno = -1; /* set up for no OUT param */ - func->resolve_option = (PLpgSQL_resolve_option)u_sess->plsql_cxt.plpgsql_variable_conflict; + func->resolve_option = GetResolveOption(); plpgsql_ns_init(); plpgsql_ns_push(func_name); - u_sess->plsql_cxt.plpgsql_DumpExecTree = false; - - u_sess->plsql_cxt.datums_alloc = alloc_size; - u_sess->plsql_cxt.plpgsql_nDatums = 0; - u_sess->plsql_cxt.plpgsql_Datums = (PLpgSQL_datum**)palloc(sizeof(PLpgSQL_datum*) * u_sess->plsql_cxt.datums_alloc); - u_sess->plsql_cxt.datums_last = 0; + curr_compile->plpgsql_DumpExecTree = false; + curr_compile->datums_alloc = alloc_size; + curr_compile->plpgsql_nDatums = 0; + curr_compile->plpgsql_Datums = (PLpgSQL_datum**)palloc(sizeof(PLpgSQL_datum*) * curr_compile->datums_alloc); + curr_compile->datums_last = 0; /* Set up as though in a function returning VOID */ func->fn_rettype = VOIDOID; @@ -1101,16 +1343,38 @@ PLpgSQL_function* plpgsql_compile_inline(char* proc_source) "__gsdb_sql_cursor_attri_rowcount__", 0, plpgsql_build_datatype(INT4OID, -1, InvalidOid), true, true); func->sql_rowcount_varno = var->dno; + /* Create the magic sqlcode variable marco */ + if (u_sess->attr.attr_sql.sql_compatibility == A_FORMAT) { + var = plpgsql_build_variable("sqlcode", 0, plpgsql_build_datatype(TEXTOID, -1, InvalidOid), true, true); + } else { + var = plpgsql_build_variable("sqlcode", 0, plpgsql_build_datatype(INT4OID, -1, InvalidOid), true, true); + } + + func->sqlcode_varno = var->dno; + var = plpgsql_build_variable("sqlstate", 0, plpgsql_build_datatype(TEXTOID, -1, InvalidOid), true, true); + func->sqlstate_varno = var->dno; + var = plpgsql_build_variable("sqlerrm", 0, plpgsql_build_datatype(TEXTOID, -1, InvalidOid), true, true); + func->sqlerrm_varno = var->dno; +#ifndef ENABLE_MULTIPLE_NODES + /* Create bulk exception implicit variable for FORALL SAVE EXCEPTIONS */ + Oid typeOid = get_typeoid(PG_CATALOG_NAMESPACE, "bulk_exception"); + if (typeOid != InvalidOid) { /* version control */ + Oid arrTypOid = get_array_type(get_typeoid(PG_CATALOG_NAMESPACE, "bulk_exception")); + var = plpgsql_build_variable( + "bulk_exceptions", 0, plpgsql_build_datatype(arrTypOid, -1, InvalidOid), true, true); + func->sql_bulk_exceptions_varno = var->dno; + } +#endif /* * Now parse the function's text */ - parse_rc = (*PlsqlParser())(); + parse_rc = plpgsql_yyparse(); if (parse_rc != 0) { ereport(ERROR, (errmodule(MOD_PLSQL), errcode(ERRCODE_UNRECOGNIZED_NODE_TYPE), errmsg("Syntax parsing error, plpgsql parser returned %d", parse_rc))); } - func->action = u_sess->plsql_cxt.plpgsql_parse_result; - func->goto_labels = u_sess->plsql_cxt.goto_labels; + func->action = curr_compile->plpgsql_parse_result; + func->goto_labels = curr_compile->goto_labels; plpgsql_scanner_finish(); @@ -1125,21 +1389,29 @@ PLpgSQL_function* plpgsql_compile_inline(char* proc_source) * Complete the function's info */ func->fn_nargs = 0; - func->ndatums = u_sess->plsql_cxt.plpgsql_nDatums; - func->datums = (PLpgSQL_datum**)palloc(sizeof(PLpgSQL_datum*) * u_sess->plsql_cxt.plpgsql_nDatums); - for (int i = 0; i < u_sess->plsql_cxt.plpgsql_nDatums; i++) { - func->datums[i] = u_sess->plsql_cxt.plpgsql_Datums[i]; + func->ndatums = curr_compile->plpgsql_nDatums; + func->datums = (PLpgSQL_datum**)palloc(sizeof(PLpgSQL_datum*) * curr_compile->plpgsql_nDatums); + for (int i = 0; i < curr_compile->plpgsql_nDatums; i++) { + func->datums[i] = curr_compile->plpgsql_Datums[i]; } /* * Pop the error context stack */ t_thrd.log_cxt.error_context_stack = pl_err_context.previous; - u_sess->plsql_cxt.plpgsql_error_funcname = NULL; - u_sess->plsql_cxt.plpgsql_curr_compile = NULL; - u_sess->plsql_cxt.plpgsql_check_syntax = false; + curr_compile->plpgsql_error_funcname = NULL; + curr_compile->plpgsql_curr_compile = NULL; + curr_compile->plpgsql_check_syntax = false; - MemoryContextSwitchTo(u_sess->plsql_cxt.compile_tmp_cxt); - u_sess->plsql_cxt.compile_tmp_cxt = NULL; + MemoryContextSwitchTo(curr_compile->compile_tmp_cxt); + curr_compile->compile_tmp_cxt = NULL; + ereport(DEBUG3, (errmodule(MOD_NEST_COMPILE), errcode(ERRCODE_LOG), + errmsg("%s finish compile, level: %d", __func__, list_length(u_sess->plsql_cxt.compile_context_list)))); + u_sess->plsql_cxt.curr_compile_context = popCompileContext(); + clearCompileContext(curr_compile); + CompileStatusSwtichTo(oldCompileStatus); + if (temp != NULL) { + MemoryContextSwitchTo(temp); + } return func; } @@ -1305,6 +1577,7 @@ static Node* resolve_column_ref(ParseState* pstate, PLpgSQL_expr* expr, ColumnRe const char* name1 = NULL; const char* name2 = NULL; const char* name3 = NULL; + const char* name4 = NULL; const char* colname = NULL; int nnames; int nnames_scalar = 0; @@ -1328,6 +1601,7 @@ static Node* resolve_column_ref(ParseState* pstate, PLpgSQL_expr* expr, ColumnRe * A Scalar variable reference, or whole-row record reference. * A.B Qualified scalar or whole-row reference, or field reference. * A.B.C Qualified record field reference. + * A.B.C.D Qualified schema.pkg.record.field reference. * A.* Whole-row record reference. * A.B.* Qualified whole-row record reference. * ---------- @@ -1386,9 +1660,31 @@ static Node* resolve_column_ref(ParseState* pstate, PLpgSQL_expr* expr, ColumnRe AssertEreport(IsA(field3, String), MOD_PLSQL, "string type is required."); name3 = strVal(field3); colname = name3; + nnames_scalar = 3; + nnames_wholerow = 3; nnames_field = 2; break; } + case 4: { + Node* field1 = (Node*)linitial(cref->fields); + Node* field2 = (Node*)lsecond(cref->fields); + Node* field3 = (Node*)lthird(cref->fields); + Node* field4 = (Node*)lfourth(cref->fields); + + AssertEreport(IsA(field1, String), MOD_PLSQL, "string type is required."); + name1 = strVal(field1); + AssertEreport(IsA(field2, String), MOD_PLSQL, "string type is required."); + name2 = strVal(field2); + AssertEreport(IsA(field3, String), MOD_PLSQL, "string type is required."); + name3 = strVal(field3); + AssertEreport(IsA(field4, String), MOD_PLSQL, "string type is required."); + name4 = strVal(field4); + colname = name4; + nnames_scalar = 4; + nnames_wholerow = 4; + nnames_field = 3; + break; + } default: /* too many names, ignore */ return NULL; @@ -1485,7 +1781,32 @@ static Node* resolve_column_ref(ParseState* pstate, PLpgSQL_expr* expr, ColumnRe } for (i = 0; i < row->nfields; i++) { if (row->fieldnames[i] && strcmp(row->fieldnames[i], colname) == 0) { - return make_datum_param(expr, row->varnos[i], cref->location); + switch (nnames_wholerow) { + case 2: /* row.col */ + return make_datum_param(expr, row->varnos[i], cref->location); + case 3: { /* pkg.row.col */ + PLpgSQL_nsitem* tempns = NULL; + PLpgSQL_datum* tempdatum = row->pkg->datums[row->varnos[i]]; + char* refname = ((PLpgSQL_variable*)tempdatum)->refname; + tempns = plpgsql_ns_lookup(expr->ns, false, name1, refname, NULL, NULL); + if (tempns != NULL) { + return make_datum_param(expr, tempns->itemno, cref->location); + } + break; + } + case 4: { /* schema.pkg.row.col */ + PLpgSQL_nsitem* tempns = NULL; + PLpgSQL_datum* tempdatum = row->pkg->datums[row->varnos[i]]; + char* refname = ((PLpgSQL_variable*)tempdatum)->refname; + tempns = plpgsql_ns_lookup(expr->ns, false, name1, name2, refname, NULL); + if (tempns != NULL) { + return make_datum_param(expr, tempns->itemno, cref->location); + } + break; + } + default : + break; + } } } /* Not found, so throw error or return NULL */ @@ -1526,10 +1847,9 @@ static Node* make_datum_param(PLpgSQL_expr* expr, int dno, int location) estate = NULL; datum = expr->func->datums[dno]; } - /* - * Bitmapset must be allocated in function's permanent memory context - */ + * Bitmapset must be allocated in function's permanent memory context + */ oldcontext = MemoryContextSwitchTo(expr->func->fn_cxt); expr->paramnos = bms_add_member(expr->paramnos, dno); MemoryContextSwitchTo(oldcontext); @@ -1537,12 +1857,179 @@ static Node* make_datum_param(PLpgSQL_expr* expr, int dno, int location) param = makeNode(Param); param->paramkind = PARAM_EXTERN; param->paramid = dno + 1; - exec_get_datum_type_info(estate, datum, ¶m->paramtype, ¶m->paramtypmod, ¶m->paramcollid, expr->func); + Oid tableOfIndexType = InvalidOid; + exec_get_datum_type_info(estate, datum, ¶m->paramtype, ¶m->paramtypmod, ¶m->paramcollid, + &tableOfIndexType, expr->func); param->location = location; + param->tableOfIndexType = tableOfIndexType; + if (datum->dtype == PLPGSQL_DTYPE_RECORD) { + param->recordVarTypOid = ((PLpgSQL_row*)datum)->recordVarTypOid; + } else { + param->recordVarTypOid = InvalidOid; + } return (Node*)param; } +HeapTuple getPLpgsqlVarTypeTup(char* word) +{ + if (u_sess->plsql_cxt.curr_compile_context == NULL) { + return NULL; + } + PLpgSQL_nsitem* ns = plpgsql_ns_lookup(plpgsql_ns_top(), false, word, NULL, NULL, NULL); + if (ns == NULL) { + /* find from pkg */ + if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package != NULL) { + PLpgSQL_package* pkg = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package; + ns = plpgsql_ns_lookup(pkg->public_ns, false, word, NULL, NULL, NULL); + if (ns == NULL) { + ns = plpgsql_ns_lookup(pkg->private_ns, false, word, NULL, NULL, NULL); + } + if (ns != NULL && ns->itemtype == PLPGSQL_NSTYPE_VAR) { + PLpgSQL_var* var = (PLpgSQL_var*)pkg->datums[ns->itemno]; + if (OidIsValid(var->datatype->typoid)) { + HeapTuple typeTup = SearchSysCache1(TYPEOID, ObjectIdGetDatum(var->datatype->typoid)); + return typeTup; + } + } + } + } else { + if (ns != NULL && ns->itemtype == PLPGSQL_NSTYPE_VAR) { + PLpgSQL_var* var = (PLpgSQL_var*)u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[ns->itemno]; + if (OidIsValid(var->datatype->typoid)) { + HeapTuple typeTup = SearchSysCache1(TYPEOID, ObjectIdGetDatum(var->datatype->typoid)); + return typeTup; + } + } + } + + return NULL; +} + +HeapTuple FindRowVarColType(List* nameList) +{ + if (u_sess->plsql_cxt.curr_compile_context == NULL) { + return NULL; + } + + PLpgSQL_datum* datum = NULL; + char* field = NULL; + + /* find row var and field first */ + switch (list_length(nameList)) { + case 2: { + datum = plpgsql_lookup_datum(false, strVal(linitial(nameList)), NULL, NULL, NULL); + field = strVal(lsecond(nameList)); + break; + } + case 3: { + char* word1 = strVal(linitial(nameList)); + char* word2 = strVal(lsecond(nameList)); + List *names2 = list_make2(makeString(word1), makeString(word2)); + datum = GetPackageDatum(names2); + list_free_ext(names2); + field = strVal(lthird(nameList)); + break; + } + case 4: { + char* word1 = strVal(linitial(nameList)); + char* word2 = strVal(lsecond(nameList)); + char* word3 = strVal(lthird(nameList)); + List *names3 = list_make3(makeString(word1), makeString(word2), makeString(word3)); + datum = GetPackageDatum(names3); + list_free_ext(names3); + field = strVal(lfourth(nameList)); + break; + } + default: + return NULL; + } + + if (datum == NULL) { + return NULL; + } + + if (datum->dtype != PLPGSQL_DTYPE_RECORD && datum->dtype != PLPGSQL_DTYPE_ROW) { + return NULL; + } + + PLpgSQL_row* row = (PLpgSQL_row*)datum; + int i; + Oid typOid = InvalidOid; + for (i = 0; i < row->nfields; i++) { + if (row->fieldnames[i] && (strcmp(row->fieldnames[i], field) == 0)) { + if (row->ispkg) { + datum = row->pkg->datums[row->varnos[i]]; + } else { + datum = u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[row->varnos[i]]; + } + if (datum->dtype == PLPGSQL_DTYPE_VAR) { + /* scalar variable, just return the datatype */ + typOid = ((PLpgSQL_var*)datum)->datatype->typoid; + } else if (datum->dtype == PLPGSQL_DTYPE_ROW) { + /* row variable, need to build a new one */ + typOid = ((PLpgSQL_row*)datum)->rowtupdesc->tdtypeid; + } + break; + } + } + + if (!OidIsValid(typOid)) { + return NULL; + } + + HeapTuple tup = SearchSysCache1(TYPEOID, ObjectIdGetDatum(typOid)); + /* should not happen */ + if (!HeapTupleIsValid(tup)) { + ereport(ERROR, (errcode(ERRCODE_CACHE_LOOKUP_FAILED), + errmsg("cache lookup failed for type %u", typOid))); + } + + return tup; +} + +HeapTuple getCursorTypeTup(const char* word) +{ + if (u_sess->plsql_cxt.curr_compile_context == NULL) { + return NULL; + } + Oid typeOid = InvalidOid; + PLpgSQL_nsitem* ns = plpgsql_ns_lookup(plpgsql_ns_top(), false, word, NULL, NULL, NULL); + if (ns == NULL) { + /* find from pkg*/ + if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package != NULL) { + PLpgSQL_package* pkg = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package; + ns = plpgsql_ns_lookup(pkg->public_ns, false, word, NULL, NULL, NULL); + if (ns == NULL) { + ns = plpgsql_ns_lookup(pkg->private_ns, false, word, NULL, NULL, NULL); + } + if (ns != NULL && ns->itemtype == PLPGSQL_NSTYPE_VAR) { + PLpgSQL_var* var = (PLpgSQL_var*)pkg->datums[ns->itemno]; + if (var->datatype->typoid == REFCURSOROID && OidIsValid(var->datatype->cursorCompositeOid)) { + typeOid = var->datatype->cursorCompositeOid; + } + } + } + } else { + if (ns->itemtype == PLPGSQL_NSTYPE_VAR) { + PLpgSQL_var* var = (PLpgSQL_var*)u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[ns->itemno]; + if (var->datatype->typoid == REFCURSOROID && OidIsValid(var->datatype->cursorCompositeOid)) { + typeOid = var->datatype->cursorCompositeOid; + } + } + } + + if (OidIsValid(typeOid)) { + HeapTuple tuple = SearchSysCache1(TYPEOID, ObjectIdGetDatum(typeOid)); + if (!HeapTupleIsValid(tuple)) { + ereport(ERROR, (errcode(ERRCODE_CACHE_LOOKUP_FAILED), errmsg("cache lookup failed for type %u", typeOid))); + } + return tuple; + } else { + return NULL; + } +} + /* ---------- * plpgsql_parse_word The scanner calls this to postparse * any single word that is not a reserved keyword. @@ -1565,9 +2052,11 @@ bool plpgsql_parse_word(char* word1, const char* yytxt, PLwdatum* wdatum, PLword PLpgSQL_var* var = NULL; PLpgSQL_nsitem* ns = plpgsql_ns_lookup(plpgsql_ns_top(), false, word1, NULL, NULL, NULL); + Assert(u_sess->plsql_cxt.curr_compile_context != NULL); + PLpgSQL_compile_context* curr_compile = u_sess->plsql_cxt.curr_compile_context; if (ns == NULL) { - if (u_sess->plsql_cxt.plpgsql_curr_compile_package != NULL) { - PLpgSQL_package* pkg = u_sess->plsql_cxt.plpgsql_curr_compile_package; + if (curr_compile->plpgsql_curr_compile_package != NULL) { + PLpgSQL_package* pkg = curr_compile->plpgsql_curr_compile_package; ns = plpgsql_ns_lookup(pkg->public_ns, false, word1, NULL, NULL, NULL); if (ns == NULL) { ns = plpgsql_ns_lookup(pkg->private_ns, false, word1, NULL, NULL, NULL); @@ -1579,41 +2068,69 @@ bool plpgsql_parse_word(char* word1, const char* yytxt, PLwdatum* wdatum, PLword /* check cursor type variable, then get cursor type token */ case PLPGSQL_NSTYPE_REFCURSOR: *tok_flag = PLPGSQL_TOK_REFCURSOR; + wdatum->datum = NULL; + wdatum->ident = word1; + wdatum->quoted = false; + wdatum->idents = NIL; + wdatum->dno = ns->itemno; return true; /* pass a tok_flag here to return T_VARRAY token outside plpgsql_parse_word() in yylex */ case PLPGSQL_NSTYPE_VARRAY: *tok_flag = PLPGSQL_TOK_VARRAY; - wdatum->datum = u_sess->plsql_cxt.plpgsql_Datums[ns->itemno]; + wdatum->datum = curr_compile->plpgsql_Datums[ns->itemno]; wdatum->ident = word1; wdatum->quoted = false; wdatum->idents = NIL; + wdatum->dno = ns->itemno; + return true; + case PLPGSQL_NSTYPE_TABLE: + *tok_flag = PLPGSQL_TOK_TABLE; + wdatum->datum = curr_compile->plpgsql_Datums[ns->itemno]; + wdatum->ident = word1; + wdatum->quoted = false; + wdatum->idents = NIL; + wdatum->dno = ns->itemno; return true; case PLPGSQL_NSTYPE_RECORD: *tok_flag = PLPGSQL_TOK_RECORD; - wdatum->datum = u_sess->plsql_cxt.plpgsql_Datums[ns->itemno]; + wdatum->datum = curr_compile->plpgsql_Datums[ns->itemno]; wdatum->ident = word1; wdatum->quoted = false; wdatum->idents = NIL; + wdatum->dno = ns->itemno; return true; case PLPGSQL_NSTYPE_VAR: - var = (PLpgSQL_var*)u_sess->plsql_cxt.plpgsql_Datums[ns->itemno]; + var = (PLpgSQL_var*)curr_compile->plpgsql_Datums[ns->itemno]; if (var != NULL && var->datatype != NULL && var->datatype->typinput.fn_oid == F_ARRAY_IN) { - *tok_flag = PLPGSQL_TOK_VARRAY_VAR; - wdatum->datum = u_sess->plsql_cxt.plpgsql_Datums[ns->itemno]; - wdatum->ident = word1; - wdatum->quoted = false; - wdatum->idents = NIL; - return true; + if (var->datatype->collectionType == PLPGSQL_COLLECTION_TABLE) { + *tok_flag = PLPGSQL_TOK_TABLE_VAR; + wdatum->datum = curr_compile->plpgsql_Datums[ns->itemno]; + wdatum->ident = word1; + wdatum->quoted = false; + wdatum->idents = NIL; + wdatum->dno = ns->itemno; + return true; + } else { + /* table of for the moment */ + *tok_flag = PLPGSQL_TOK_VARRAY_VAR; + wdatum->datum = curr_compile->plpgsql_Datums[ns->itemno]; + wdatum->ident = word1; + wdatum->quoted = false; + wdatum->idents = NIL; + wdatum->dno = ns->itemno; + return true; + } } else if (var != NULL && var->datatype && var->datatype->typinput.fn_oid == F_DOMAIN_IN) { HeapTuple type_tuple = SearchSysCache1(TYPEOID, ObjectIdGetDatum(var->datatype->typoid)); if (HeapTupleIsValid(type_tuple)) { Form_pg_type type_form = (Form_pg_type)GETSTRUCT(type_tuple); if (F_ARRAY_OUT == type_form->typoutput) { *tok_flag = PLPGSQL_TOK_VARRAY_VAR; - wdatum->datum = u_sess->plsql_cxt.plpgsql_Datums[ns->itemno]; + wdatum->datum = curr_compile->plpgsql_Datums[ns->itemno]; wdatum->ident = word1; wdatum->quoted = false; wdatum->idents = NIL; + wdatum->dno = ns->itemno; ReleaseSysCache(type_tuple); return true; } @@ -1631,7 +2148,7 @@ bool plpgsql_parse_word(char* word1, const char* yytxt, PLwdatum* wdatum, PLword * no need to do anything either --- lookup will happen when the * expression is compiled. */ - if (u_sess->plsql_cxt.plpgsql_IdentifierLookup == IDENTIFIER_LOOKUP_NORMAL) { + if (curr_compile->plpgsql_IdentifierLookup == IDENTIFIER_LOOKUP_NORMAL) { /* * Do a lookup in the current namespace stack */ @@ -1644,10 +2161,11 @@ bool plpgsql_parse_word(char* word1, const char* yytxt, PLwdatum* wdatum, PLword case PLPGSQL_NSTYPE_REC: case PLPGSQL_NSTYPE_RECORD: case PLPGSQL_NSTYPE_UNKNOWN: - wdatum->datum = u_sess->plsql_cxt.plpgsql_Datums[ns->itemno]; + wdatum->datum = curr_compile->plpgsql_Datums[ns->itemno]; wdatum->ident = word1; wdatum->quoted = (yytxt[0] == '"'); wdatum->idents = NIL; + wdatum->dno = ns->itemno; return true; default: @@ -1670,6 +2188,144 @@ bool plpgsql_parse_word(char* word1, const char* yytxt, PLwdatum* wdatum, PLword word->quoted = (yytxt[0] == '"'); return false; } +static bool isVarrayVar(PLpgSQL_var *var) +{ + if (var == NULL || var->datatype == NULL) { + return false; + } + if (var->datatype->typinput.fn_oid != F_ARRAY_IN && var->datatype->typinput.fn_oid != F_DOMAIN_IN) { + return false; + } + if (var->datatype->typinput.fn_oid == F_DOMAIN_IN) { + HeapTuple type_tuple = SearchSysCache1(TYPEOID, ObjectIdGetDatum(var->datatype->typoid)); + if (!HeapTupleIsValid(type_tuple)) { + return false; + } + Form_pg_type type_form = (Form_pg_type)GETSTRUCT(type_tuple); + if (type_form->typoutput != F_ARRAY_OUT) { + return false; + } + } + return true; +} + +static bool isVarrayWord(const char *compWord, const char *firstWord, const char *secondWord, const char *thirdWord, + PLwdatum* wdatum, int* nsflag) +{ + typedef struct { + const char *varrayWord; + unsigned int wordValue; + } VarrayWord; + VarrayWord hash[] = { + {"first", PLPGSQL_TOK_VARRAY_FIRST}, + {"last", PLPGSQL_TOK_VARRAY_LAST}, + {"count", PLPGSQL_TOK_VARRAY_COUNT}, + {"exists", PLPGSQL_TOK_VARRAY_EXISTS}, + {"prior", PLPGSQL_TOK_VARRAY_PRIOR}, + {"next", PLPGSQL_TOK_VARRAY_NEXT}, + {"trim", PLPGSQL_TOK_VARRAY_TRIM}, + {"delete", PLPGSQL_TOK_VARRAY_DELETE}, + {"extend", PLPGSQL_TOK_VARRAY_EXTEND}, + {NULL, 0} + }; + PLpgSQL_nsitem *ns = NULL; + PLpgSQL_datum *datum = NULL; + PLpgSQL_var *var = NULL; + int dno; + + for (unsigned int i = 0; hash[i].varrayWord != NULL; i++) { + if (pg_strcasecmp(hash[i].varrayWord, compWord) == 0) { + int nnames = 0; + ns = plpgsql_ns_lookup(plpgsql_ns_top(), false, firstWord, secondWord, thirdWord, &nnames); + if (ns == NULL) { + return false; + } + + bool isRow = false; /* row.col */ + bool isTriRow = false; /* row.col1.col2 */ + const char* field = NULL; + if (ns->itemtype == PLPGSQL_NSTYPE_ROW) { + if (nnames == 1) { + if (secondWord != NULL && thirdWord != NULL) { + isTriRow = true; + } else if (secondWord != NULL) { + isRow = true; + field = secondWord; + } + } else if (nnames == 2) { + if (thirdWord != NULL) { + isRow = true; + field = thirdWord; + } + } + } + + if (isRow) { + PLpgSQL_row* row = NULL; + int j = 0; + bool matched = false; + + row = (PLpgSQL_row*)(u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[ns->itemno]); + for (j = 0; j < row->nfields; j++) { + if (row->fieldnames[j] && strcmp(row->fieldnames[j], field) == 0) { + if (row->ispkg) { + PLpgSQL_nsitem* tempns = NULL; + PLpgSQL_datum* tempdatum = row->pkg->datums[row->varnos[j]]; + char* refname = ((PLpgSQL_variable*)tempdatum)->refname; + tempns = plpgsql_ns_lookup(plpgsql_ns_top(), false, firstWord, refname, NULL, NULL); + if (tempns != NULL) { + dno = tempns->itemno; + } else { + dno = plpgsql_adddatum(tempdatum, false); + if (tempdatum->dtype == PLPGSQL_DTYPE_VAR) { + plpgsql_ns_additem(PLPGSQL_NSTYPE_VAR, dno, refname, firstWord); + } else { + plpgsql_ns_additem(PLPGSQL_NSTYPE_ROW, dno, refname, firstWord); + } + } + datum = tempdatum; + } else { + datum = u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[row->varnos[j]]; + dno = row->varnos[j]; + } + matched = true; + break; + } + } + + if (!matched) { + return false; + } + } else if (isTriRow) { + int tok_flag = -1; + PLwdatum wdatum; + wdatum.datum = NULL; + plpgsql_lookup_tripword_datum(ns->itemno, secondWord, thirdWord, &wdatum, &tok_flag); + if (wdatum.datum == NULL) { + return false; + } + datum = wdatum.datum; + dno = wdatum.dno; + } else { + datum = u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[ns->itemno]; + dno = ns->itemno; + } + + if (datum == NULL || datum->dtype != PLPGSQL_DTYPE_VAR) { + return false; + } + var = (PLpgSQL_var*)datum; + if (!isVarrayVar(var)) { + return false; + } + *nsflag = hash[i].wordValue; + wdatum->datum = datum; + wdatum->dno = dno; + return true; + } + } + return false; +} /* ---------- * plpgsql_parse_dblword Same lookup for two words @@ -1681,26 +2337,21 @@ bool plpgsql_parse_dblword(char* word1, char* word2, PLwdatum* wdatum, PLcword* PLpgSQL_nsitem* ns = NULL; List* idents = NIL; int nnames; + bool isPkgVar = false; - /* - * String to compare with B in A.B, - * compatible with A db's varray accesss method - */ - const char* varray_first = "first"; - const char* varray_last = "last"; - const char* varray_count = "count"; - const char* varray_extend = "extend"; if (word2 == NULL) { return false; } idents = list_make2(makeString(word1), makeString(word2)); + Assert(u_sess->plsql_cxt.curr_compile_context != NULL); + PLpgSQL_compile_context* curr_compile = u_sess->plsql_cxt.curr_compile_context; /* * We should do nothing in DECLARE sections. In SQL expressions, we * really only need to make sure that RECFIELD datums are created when * needed. */ - if (u_sess->plsql_cxt.plpgsql_IdentifierLookup != IDENTIFIER_LOOKUP_DECLARE) { + if (curr_compile->plpgsql_IdentifierLookup != IDENTIFIER_LOOKUP_DECLARE) { /* * Do a lookup in the current namespace stack */ @@ -1709,17 +2360,24 @@ bool plpgsql_parse_dblword(char* word1, char* word2, PLwdatum* wdatum, PLcword* switch (ns->itemtype) { case PLPGSQL_NSTYPE_VAR: /* Block-qualified reference to scalar variable. */ - wdatum->datum = u_sess->plsql_cxt.plpgsql_Datums[ns->itemno]; + wdatum->datum = curr_compile->plpgsql_Datums[ns->itemno]; wdatum->ident = pstrdup(NameListToString(idents)); wdatum->quoted = false; /* not used */ wdatum->idents = idents; + wdatum->dno = ns->itemno; + isPkgVar = (nnames == 2) && (ns->pkgname != NULL) && (strcmp(ns->pkgname, word1) == 0); + if (isPkgVar) { + /* package variable, need to get var type */ + get_datum_tok_type(wdatum->datum, nsflag); + } return true; case PLPGSQL_NSTYPE_UNKNOWN: /* it's a package variable. */ - wdatum->datum = u_sess->plsql_cxt.plpgsql_Datums[ns->itemno]; + wdatum->datum = curr_compile->plpgsql_Datums[ns->itemno]; wdatum->ident = pstrdup(NameListToString(idents)); wdatum->quoted = false; /* not used */ wdatum->idents = idents; + wdatum->dno = ns->itemno; return true; case PLPGSQL_NSTYPE_REC: @@ -1734,8 +2392,8 @@ bool plpgsql_parse_dblword(char* word1, char* word2, PLwdatum* wdatum, PLcword* PLpgSQL_recfield* newm = NULL; MemoryContext old_cxt = NULL; - if (u_sess->plsql_cxt.plpgsql_cxt != NULL) - old_cxt = MemoryContextSwitchTo(u_sess->plsql_cxt.plpgsql_cxt); + if (u_sess->plsql_cxt.curr_compile_context->compile_cxt != NULL) + old_cxt = MemoryContextSwitchTo(u_sess->plsql_cxt.curr_compile_context->compile_cxt); newm = (PLpgSQL_recfield*)palloc(sizeof(PLpgSQL_recfield)); newm->dtype = PLPGSQL_DTYPE_RECFIELD; newm->fieldname = pstrdup(word2); @@ -1747,9 +2405,11 @@ bool plpgsql_parse_dblword(char* word1, char* word2, PLwdatum* wdatum, PLcword* MemoryContextSwitchTo(old_cxt); } wdatum->datum = (PLpgSQL_datum*)newm; + wdatum->dno = newm->dno; } else { /* Block-qualified reference to record variable. */ - wdatum->datum = u_sess->plsql_cxt.plpgsql_Datums[ns->itemno]; + wdatum->datum = curr_compile->plpgsql_Datums[ns->itemno]; + wdatum->dno = ns->itemno; } wdatum->ident = NULL; wdatum->quoted = false; /* not used */ @@ -1766,23 +2426,26 @@ bool plpgsql_parse_dblword(char* word1, char* word2, PLwdatum* wdatum, PLcword* PLpgSQL_row* row = NULL; int i; - row = (PLpgSQL_row*)(u_sess->plsql_cxt.plpgsql_Datums[ns->itemno]); + row = (PLpgSQL_row*)(curr_compile->plpgsql_Datums[ns->itemno]); for (i = 0; i < row->nfields; i++) { if (row->fieldnames[i] && strcmp(row->fieldnames[i], word2) == 0) { - wdatum->datum = u_sess->plsql_cxt.plpgsql_Datums[row->varnos[i]]; + wdatum->datum = curr_compile->plpgsql_Datums[row->varnos[i]]; wdatum->ident = pstrdup(NameListToString(idents)); wdatum->quoted = false; /* not used */ wdatum->idents = idents; + wdatum->dno = row->varnos[i]; + get_datum_tok_type(wdatum->datum, nsflag); return true; } } /* fall through to return CWORD */ } else { /* Block-qualified reference to row variable. */ - wdatum->datum = u_sess->plsql_cxt.plpgsql_Datums[ns->itemno]; + wdatum->datum = curr_compile->plpgsql_Datums[ns->itemno]; wdatum->ident = NULL; wdatum->quoted = false; /* not used */ wdatum->idents = idents; + wdatum->dno = ns->itemno; return true; } break; @@ -1790,54 +2453,26 @@ bool plpgsql_parse_dblword(char* word1, char* word2, PLwdatum* wdatum, PLcword* default: break; } + } else { + int dno = plpgsql_pkg_add_unknown_var_to_namespace(idents); + if (dno != -1) { + wdatum->datum = curr_compile->plpgsql_Datums[dno]; + wdatum->ident = pstrdup(NameListToString(idents)); + wdatum->quoted = false; /* not used */ + wdatum->idents = idents; + wdatum->dno = dno; + *nsflag = PLPGSQL_TOK_PACKAGE_VARIABLE; + get_datum_tok_type(wdatum->datum, nsflag); + return true; + } } } - - if (0 == pg_strcasecmp(varray_first, word2)) { - ns = plpgsql_ns_lookup(plpgsql_ns_top(), false, word1, NULL, NULL, NULL); - if (ns != NULL) { - *nsflag = PLPGSQL_TOK_VARRAY_FIRST; - wdatum->datum = u_sess->plsql_cxt.plpgsql_Datums[ns->itemno]; - wdatum->ident = NULL; - wdatum->quoted = false; /* not used */ - wdatum->idents = idents; - return true; - } + if (isVarrayWord(word2, word1, NULL, NULL, wdatum, nsflag)) { + wdatum->ident = NULL; + wdatum->quoted = false; + wdatum->idents = idents; + return true; } - if (0 == pg_strcasecmp(varray_last, word2)) { - ns = plpgsql_ns_lookup(plpgsql_ns_top(), false, word1, NULL, NULL, NULL); - if (ns != NULL) { - *nsflag = PLPGSQL_TOK_VARRAY_LAST; - wdatum->datum = u_sess->plsql_cxt.plpgsql_Datums[ns->itemno]; - wdatum->ident = NULL; - wdatum->quoted = false; /* not used */ - wdatum->idents = idents; - return true; - } - } - if (0 == pg_strcasecmp(varray_count, word2)) { - ns = plpgsql_ns_lookup(plpgsql_ns_top(), false, word1, NULL, NULL, NULL); - if (ns != NULL) { - *nsflag = PLPGSQL_TOK_VARRAY_COUNT; - wdatum->datum = u_sess->plsql_cxt.plpgsql_Datums[ns->itemno]; - wdatum->ident = NULL; - wdatum->quoted = false; /* not used */ - wdatum->idents = idents; - return true; - } - } - if (0 == pg_strcasecmp(varray_extend, word2)) { - ns = plpgsql_ns_lookup(plpgsql_ns_top(), false, word1, NULL, NULL, NULL); - if (ns != NULL) { - *nsflag = PLPGSQL_TOK_VARRAY_EXTEND; - wdatum->datum = u_sess->plsql_cxt.plpgsql_Datums[ns->itemno]; - wdatum->ident = NULL; - wdatum->quoted = false; /* not used */ - wdatum->idents = idents; - return true; - } - } - /* Nothing found */ cword->idents = idents; return false; @@ -1848,20 +2483,23 @@ bool plpgsql_parse_dblword(char* word1, char* word2, PLwdatum* wdatum, PLcword* * separated by dots. * ---------- */ -bool plpgsql_parse_tripword(char* word1, char* word2, char* word3, PLwdatum* wdatum, PLcword* cword) +bool plpgsql_parse_tripword(char* word1, char* word2, char* word3, PLwdatum* wdatum, PLcword* cword, int* tok_flag) { PLpgSQL_nsitem* ns = NULL; List* idents = NULL; int nnames; + int dno = -1; + int i = 0; idents = list_make3(makeString(word1), makeString(word2), makeString(word3)); - + Assert(u_sess->plsql_cxt.curr_compile_context != NULL); + PLpgSQL_compile_context* curr_compile = u_sess->plsql_cxt.curr_compile_context; /* * We should do nothing in DECLARE sections. In SQL expressions, we * really only need to make sure that RECFIELD datums are created when * needed. */ - if (u_sess->plsql_cxt.plpgsql_IdentifierLookup != IDENTIFIER_LOOKUP_DECLARE) { + if (curr_compile->plpgsql_IdentifierLookup != IDENTIFIER_LOOKUP_DECLARE) { /* * Do a lookup in the current namespace stack. Must find a qualified * reference, else ignore. @@ -1888,6 +2526,7 @@ bool plpgsql_parse_tripword(char* word1, char* word2, char* word3, PLwdatum* wda wdatum->ident = NULL; wdatum->quoted = false; /* not used */ wdatum->idents = idents; + wdatum->dno = newm->dno; return true; } @@ -1897,13 +2536,22 @@ bool plpgsql_parse_tripword(char* word1, char* word2, char* word3, PLwdatum* wda * field in this row. */ PLpgSQL_row* row = NULL; - int i; - row = (PLpgSQL_row*)(u_sess->plsql_cxt.plpgsql_Datums[ns->itemno]); + row = (PLpgSQL_row*)(curr_compile->plpgsql_Datums[ns->itemno]); for (i = 0; i < row->nfields; i++) { if (row->fieldnames[i] && strcmp(row->fieldnames[i], word3) == 0) { - wdatum->datum = u_sess->plsql_cxt.plpgsql_Datums[row->varnos[i]]; - wdatum->ident = NULL; + if (row->ispkg) { + PLpgSQL_datum* tempdatum = row->pkg->datums[row->varnos[i]]; + dno = find_package_rowfield(tempdatum, word1); + wdatum->datum = tempdatum; + wdatum->dno = dno; + wdatum->ident = pstrdup(NameListToString(idents)); + *tok_flag = PLPGSQL_TOK_PACKAGE_VARIABLE; + } else { + wdatum->datum = curr_compile->plpgsql_Datums[row->varnos[i]]; + wdatum->dno = row->varnos[i]; + wdatum->ident = NULL; + } wdatum->quoted = false; /* not used */ wdatum->idents = idents; return true; @@ -1917,6 +2565,69 @@ bool plpgsql_parse_tripword(char* word1, char* word2, char* word3, PLwdatum* wda break; } } + + if (ns != NULL && nnames == 1 && ns->itemtype == PLPGSQL_NSTYPE_ROW) { + if (plpgsql_lookup_tripword_datum(ns->itemno, word2, word3, wdatum, tok_flag)) { + wdatum->idents = idents; + wdatum->ident = pstrdup(NameListToString(idents)); + return true; + } + } + + if (ns != NULL && nnames == 3) { + /* schema.pkg.val form */ + wdatum->datum = curr_compile->plpgsql_Datums[ns->itemno]; + wdatum->ident = pstrdup(NameListToString(idents)); + wdatum->quoted = false; /* not used */ + wdatum->idents = idents; + wdatum->dno = ns->itemno; + *tok_flag = PLPGSQL_TOK_PACKAGE_VARIABLE; + return true; + } + + if (ns == NULL) { + /* find if a package variable */ + dno = plpgsql_pkg_add_unknown_var_to_namespace(idents); + if (dno != -1) { + wdatum->datum = curr_compile->plpgsql_Datums[dno]; + wdatum->ident = pstrdup(NameListToString(idents)); + wdatum->quoted = false; /* not used */ + wdatum->idents = idents; + wdatum->dno = dno; + *tok_flag = PLPGSQL_TOK_PACKAGE_VARIABLE; + return true; + } + + /* word1/word2 may be a package variable */ + List *idents2 = list_make2(makeString(word1), makeString(word2)); + dno = plpgsql_pkg_add_unknown_var_to_namespace(idents2); + if (dno != -1) { + PLpgSQL_datum* tempdatum = u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[dno]; + if (tempdatum->dtype == PLPGSQL_DTYPE_ROW || tempdatum->dtype == PLPGSQL_DTYPE_RECORD) { + PLpgSQL_row* row = (PLpgSQL_row*)tempdatum; + for (i = 0; i < row->nfields; i++) { + if (row->fieldnames[i] && strcmp(row->fieldnames[i], word3) == 0) { + PLpgSQL_datum* tempdatum = row->pkg->datums[row->varnos[i]]; + dno = find_package_rowfield(tempdatum, word1); + wdatum->datum = tempdatum; + wdatum->ident = pstrdup(NameListToString(idents)); + wdatum->quoted = false; /* not used */ + wdatum->idents = idents; + wdatum->dno = dno; + *tok_flag = PLPGSQL_TOK_PACKAGE_VARIABLE; + return true; + } + } + } + } + list_free(idents2); + } + } + if (isVarrayWord(word3, word1, word2, NULL, wdatum, tok_flag)) { + wdatum->ident = NULL; + wdatum->quoted = false; + wdatum->idents = idents; + return true; } /* Nothing found */ @@ -1924,6 +2635,169 @@ bool plpgsql_parse_tripword(char* word1, char* word2, char* word3, PLwdatum* wda return false; } +/* ---------- + * plpgsql_parse_quadword Same lookup for four words + * separated by dots. + * ---------- + */ +bool plpgsql_parse_quadword(char* word1, char* word2, char* word3, char* word4, + PLwdatum* wdatum, PLcword* cword, int* tok_flag) +{ + PLpgSQL_nsitem* ns = NULL; + List* idents = NULL; + int nnames; + int dno = -1; + int i = 0; + + idents = list_make4(makeString(word1), makeString(word2), makeString(word3), makeString(word4)); + Assert(u_sess->plsql_cxt.curr_compile_context != NULL); + PLpgSQL_compile_context* curr_compile = u_sess->plsql_cxt.curr_compile_context; + /* + * We should do nothing in DECLARE sections. In SQL expressions, we + * really only need to make sure that RECFIELD datums are created when + * needed. + */ + if (curr_compile->plpgsql_IdentifierLookup != IDENTIFIER_LOOKUP_DECLARE) { + /* + * Do a lookup in the current namespace stack. Must find a qualified + * reference, else ignore. + */ + ns = plpgsql_ns_lookup(plpgsql_ns_top(), false, word1, word2, word3, &nnames); + + /* pkg.row.col1.col2 or label.row.col1.col2 */ + if (ns != NULL && nnames == 2) { + switch (ns->itemtype) { + case PLPGSQL_NSTYPE_ROW: { + /* + * words 1/2 are a row name, so word 3/4 word could be + * fields in this row. + */ + if (plpgsql_lookup_tripword_datum(ns->itemno, word3, word4, wdatum, tok_flag)) { + wdatum->idents = idents; + wdatum->ident = pstrdup(NameListToString(idents)); + return true; + } + /* fall through to return CWORD */ + break; + } + default: + break; + } + } + + /* row.col1.col2.col3 */ + if (ns != NULL && nnames == 1 && ns->itemtype == PLPGSQL_NSTYPE_ROW) { + PLpgSQL_row* row = NULL; + row = (PLpgSQL_row*)(curr_compile->plpgsql_Datums[ns->itemno]); + for (i = 0; i < row->nfields; i++) { + if (row->fieldnames[i] && strcmp(row->fieldnames[i], word2) == 0) { + if (plpgsql_lookup_tripword_datum(row->varnos[i], word3, word4, wdatum, tok_flag)) { + wdatum->idents = idents; + wdatum->ident = pstrdup(NameListToString(idents)); + return true; + } + } + } + } + + /* schema.pkg.row.col */ + if (ns != NULL && nnames == 3) { + /* schema.pkg.val form */ + if (ns->itemtype == PLPGSQL_NSTYPE_ROW) { + PLpgSQL_row* row = NULL; + row = (PLpgSQL_row*)(curr_compile->plpgsql_Datums[ns->itemno]); + for (i = 0; i < row->nfields; i++) { + if (row->fieldnames[i] && strcmp(row->fieldnames[i], word4) == 0) { + PLpgSQL_datum* tempdatum = row->pkg->datums[row->varnos[i]]; + dno = find_package_rowfield(tempdatum, word2, word1); + wdatum->datum = tempdatum; + wdatum->dno = dno; + wdatum->ident = pstrdup(NameListToString(idents)); + *tok_flag = PLPGSQL_TOK_PACKAGE_VARIABLE; + wdatum->quoted = false; /* not used */ + wdatum->idents = idents; + return true; + } + } + } + } + + /* maybe a unkown package var, try to find it */ + if (ns == NULL) { + /* find if a package variable */ + List *idents3 = list_make3(makeString(word1), makeString(word2), makeString(word3)); + dno = plpgsql_pkg_add_unknown_var_to_namespace(idents3); + if (dno != -1) { + PLpgSQL_datum* tempdatum = u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[dno]; + if (tempdatum->dtype == PLPGSQL_DTYPE_ROW || tempdatum->dtype == PLPGSQL_DTYPE_RECORD) { + PLpgSQL_row* row = NULL; + row = (PLpgSQL_row*)(curr_compile->plpgsql_Datums[dno]); + for (i = 0; i < row->nfields; i++) { + if (row->fieldnames[i] && strcmp(row->fieldnames[i], word4) == 0) { + PLpgSQL_datum* tempdatum = row->pkg->datums[row->varnos[i]]; + dno = find_package_rowfield(tempdatum, word2, word1); + wdatum->datum = tempdatum; + wdatum->dno = dno; + wdatum->ident = pstrdup(NameListToString(idents)); + *tok_flag = PLPGSQL_TOK_PACKAGE_VARIABLE; + wdatum->quoted = false; /* not used */ + wdatum->idents = idents; + return true; + } + } + } + } + list_free(idents3); + + /* word1/word2 may be a package variable */ + List *idents2 = list_make2(makeString(word1), makeString(word2)); + dno = plpgsql_pkg_add_unknown_var_to_namespace(idents2); + if (dno != -1) { + if (plpgsql_lookup_tripword_datum(dno, word3, word4, wdatum, tok_flag)) { + wdatum->idents = idents; + wdatum->ident = pstrdup(NameListToString(idents)); + return true; + } + } + list_free(idents2); + } + } + if (isVarrayWord(word4, word1, word2, word3, wdatum, tok_flag)) { + wdatum->ident = NULL; + wdatum->quoted = false; + wdatum->idents = idents; + return true; + } + + /* Nothing found */ + cword->idents = idents; + return false; +} + +static int find_package_rowfield(PLpgSQL_datum* datum, const char* pkgName, const char* schemaName) +{ + char* refname = ((PLpgSQL_variable*)datum)->refname; + PLpgSQL_nsitem* tempns = NULL; + int dno = -1; + if (schemaName != NULL) { + tempns = plpgsql_ns_lookup(plpgsql_ns_top(), false, schemaName, pkgName, refname, NULL); + } else { + tempns = plpgsql_ns_lookup(plpgsql_ns_top(), false, pkgName, refname, NULL, NULL); + } + if (tempns != NULL) { + dno = tempns->itemno; + } else { + dno = plpgsql_adddatum(datum, false); + if (datum->dtype == PLPGSQL_DTYPE_VAR) { + plpgsql_ns_additem(PLPGSQL_NSTYPE_VAR, dno, refname, pkgName, schemaName); + } else { + plpgsql_ns_additem(PLPGSQL_NSTYPE_ROW, dno, refname, pkgName, schemaName); + } + } + + return dno; +} + /* ---------- * plpgsql_parse_wordtype The scanner found word%TYPE. word can be * a variable name or a basetype. @@ -1945,7 +2819,7 @@ PLpgSQL_type* plpgsql_parse_wordtype(char* ident) if (nse != NULL) { switch (nse->itemtype) { case PLPGSQL_NSTYPE_VAR: - return ((PLpgSQL_var*)(u_sess->plsql_cxt.plpgsql_Datums[nse->itemno]))->datatype; + return ((PLpgSQL_var*)(u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[nse->itemno]))->datatype; /* XXX perhaps allow REC/ROW here? */ @@ -1967,7 +2841,8 @@ PLpgSQL_type* plpgsql_parse_wordtype(char* ident) return NULL; } - dtype = build_datatype(type_tup, -1, u_sess->plsql_cxt.plpgsql_curr_compile->fn_input_collation); + dtype = build_datatype(type_tup, -1, + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile->fn_input_collation); ReleaseSysCache(type_tup); return dtype; @@ -1989,7 +2864,7 @@ PLpgSQL_type* plpgsql_parse_cwordtype(List* idents) PLpgSQL_type* dtype = NULL; PLpgSQL_nsitem* nse = NULL; const char* fldname = NULL; - Oid class_oid; + Oid class_oid = InvalidOid; HeapTuple classtup = NULL; HeapTuple attrtup = NULL; HeapTuple type_tup = NULL; @@ -1999,18 +2874,38 @@ PLpgSQL_type* plpgsql_parse_cwordtype(List* idents) bool flag = false; /* Avoid memory leaks in the long-term function context */ - old_cxt = MemoryContextSwitchTo(u_sess->plsql_cxt.compile_tmp_cxt); + old_cxt = MemoryContextSwitchTo(u_sess->plsql_cxt.curr_compile_context->compile_tmp_cxt); if (list_length(idents) == 2) { /* - * Do a lookup in the current namespace stack. We don't need to check - * number of names matched, because we will only consider scalar - * variables. + * Do a lookup in the current namespace stack. */ - nse = plpgsql_ns_lookup(plpgsql_ns_top(), false, strVal(linitial(idents)), strVal(lsecond(idents)), NULL, NULL); + int nnames; + nse = plpgsql_ns_lookup(plpgsql_ns_top(), false, strVal(linitial(idents)), + strVal(lsecond(idents)), NULL, &nnames); if (nse != NULL && nse->itemtype == PLPGSQL_NSTYPE_VAR) { - dtype = ((PLpgSQL_var*)(u_sess->plsql_cxt.plpgsql_Datums[nse->itemno]))->datatype; + dtype = ((PLpgSQL_var*)(u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[nse->itemno]))->datatype; + goto done; + } + + /* + * word1 is a row, word2 may a field of word1. + * find it, and return the field's type + */ + bool isRow = (nse != NULL) && (nse->itemtype == PLPGSQL_NSTYPE_ROW) && (nnames == 1); + if (isRow) { + dtype = plpgsql_get_row_field_type(nse->itemno, strVal(lsecond(idents)), old_cxt); + if (dtype != NULL) { + goto done; + } + } + /* + * word1 is a cursor, word2 may a col of word1. + * find it, and return the col type. + */ + dtype = plpgsql_get_cursor_type_relid(strVal(linitial(idents)), strVal(lsecond(idents)), old_cxt); + if (dtype != NULL) { goto done; } @@ -2024,10 +2919,22 @@ PLpgSQL_type* plpgsql_parse_cwordtype(List* idents) fldname = strVal(lsecond(idents)); } else if (list_length(idents) == 3) { RangeVar* relvar = NULL; + char* castPkgName = NULL; + Oid pkgOid = InvalidOid; + + /* first word is package name, cast type name. */ + pkgOid = PackageNameGetOid(strVal(linitial(idents)), InvalidOid); + if (OidIsValid(pkgOid)) { + castPkgName = CastPackageTypeName(strVal(lsecond(idents)), pkgOid, true); + relvar = makeRangeVar(NULL, castPkgName, -1); + } else { + relvar = makeRangeVar(strVal(linitial(idents)), strVal(lsecond(idents)), -1); + } - relvar = makeRangeVar(strVal(linitial(idents)), strVal(lsecond(idents)), -1); /* Can't lock relation - we might not have privileges. */ class_oid = RangeVarGetRelidExtended(relvar, NoLock, true, false, false, true, NULL, NULL); + pfree_ext(relvar); + pfree_ext(castPkgName); if (!OidIsValid(class_oid)) { goto done; } @@ -2044,7 +2951,7 @@ PLpgSQL_type* plpgsql_parse_cwordtype(List* idents) /* * It must be a relation, sequence, view, composite type, materialized view, or foreign table */ - flag = class_struct->relkind != RELKIND_RELATION && class_struct->relkind != RELKIND_SEQUENCE && + flag = class_struct->relkind != RELKIND_RELATION && !RELKIND_IS_SEQUENCE(class_struct->relkind) && class_struct->relkind != RELKIND_VIEW && class_struct->relkind != RELKIND_COMPOSITE_TYPE && class_struct->relkind != RELKIND_FOREIGN_TABLE && class_struct->relkind != RELKIND_MATVIEW && class_struct->relkind != RELKIND_STREAM && class_struct->relkind != RELKIND_CONTQUERY; @@ -2073,7 +2980,7 @@ PLpgSQL_type* plpgsql_parse_cwordtype(List* idents) */ MemoryContextSwitchTo(old_cxt); dtype = build_datatype(type_tup, attr_struct->atttypmod, attr_struct->attcollation); - MemoryContextSwitchTo(u_sess->plsql_cxt.compile_tmp_cxt); + MemoryContextSwitchTo(u_sess->plsql_cxt.curr_compile_context->compile_tmp_cxt); done: if (HeapTupleIsValid(classtup)) { @@ -2106,6 +3013,11 @@ PLpgSQL_type* plpgsql_parse_wordrowtype(char* ident) (void)RelnameGetRelidExtended(ident, &class_oid); if (!OidIsValid(class_oid)) { + char message[MAXSTRLEN]; + errno_t rc = 0; + rc = sprintf_s(message, MAXSTRLEN, "relation \"%s\" does not exist when parse word.", ident); + securec_check_ss_c(rc, "", ""); + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc, true); ereport(ERROR, (errmodule(MOD_PLSQL), errcode(ERRCODE_UNDEFINED_TABLE), @@ -2131,7 +3043,7 @@ PLpgSQL_type* plpgsql_parse_cwordrowtype(List* idents) } /* Avoid memory leaks in long-term function context */ - old_cxt = MemoryContextSwitchTo(u_sess->plsql_cxt.compile_tmp_cxt); + old_cxt = MemoryContextSwitchTo(u_sess->plsql_cxt.curr_compile_context->compile_tmp_cxt); /* Look up relation name. Can't lock it - we might not have privileges. */ relvar = makeRangeVar(strVal(linitial(idents)), strVal(lsecond(idents)), -1); @@ -2145,6 +3057,93 @@ PLpgSQL_type* plpgsql_parse_cwordrowtype(List* idents) return plpgsql_build_datatype(get_rel_type_id(class_oid), -1, InvalidOid); } +/* cursor generate a composite type, find its col type */ +static PLpgSQL_type* plpgsql_get_cursor_type_relid(const char* cursorname, const char* colname, MemoryContext oldCxt) +{ + int nnames; + PLpgSQL_nsitem* nse = plpgsql_ns_lookup(plpgsql_ns_top(), false, cursorname, NULL, NULL, &nnames); + if (nse == NULL || nse->itemtype != PLPGSQL_NSTYPE_VAR) { + return NULL; + } + PLpgSQL_var* var = (PLpgSQL_var*)u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[nse->itemno]; + if (!OidIsValid(var->datatype->cursorCompositeOid)) { + return NULL; + } + HeapTuple typeTup = SearchSysCache1(TYPEOID, ObjectIdGetDatum(var->datatype->cursorCompositeOid)); + if (!HeapTupleIsValid(typeTup)) { + return NULL; + } + /* find composite's Oid in pgclass */ + Form_pg_type typeStruct = (Form_pg_type)GETSTRUCT(typeTup); + Oid classOid = typeStruct->typrelid; + ReleaseSysCache(typeTup); + /* + * Fetch the named table field and its type + */ + HeapTuple attrTup = SearchSysCacheAttName(classOid, colname); + if (!HeapTupleIsValid(attrTup)) { + return NULL; + } + Form_pg_attribute attrStruct = (Form_pg_attribute)GETSTRUCT(attrTup); + Oid attrTypeOid = attrStruct->atttypid; + ReleaseSysCache(attrTup); + HeapTuple attrTypeTup = SearchSysCache1(TYPEOID, ObjectIdGetDatum(attrTypeOid)); + if (!HeapTupleIsValid(attrTypeTup)) { + return NULL; + } + /* caller may in a temp ctx, need switch to a long term cxt. */ + MemoryContext saveCxt = MemoryContextSwitchTo(oldCxt); + PLpgSQL_type* dtype = build_datatype(attrTypeTup, attrStruct->atttypmod, attrStruct->attcollation); + ReleaseSysCache(attrTypeTup); + MemoryContextSwitchTo(saveCxt); + return dtype; +} + +/* + * get the type of row variable's field, if not found, return null + * we may need to build a PLpgSQL_type, old_cxt is the MemoryContext which + * you want to palloc memory + */ +PLpgSQL_type* plpgsql_get_row_field_type(int dno, const char* fieldname, MemoryContext old_cxt) +{ + PLpgSQL_datum* datum = u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[dno]; + if (datum->dtype != PLPGSQL_DTYPE_RECORD && datum->dtype != PLPGSQL_DTYPE_ROW) { + return NULL; + } + + PLpgSQL_type* dtype = NULL; + PLpgSQL_row* row = (PLpgSQL_row*)datum; + int i; + bool fieldMatched = FALSE; + for (i = 0; i < row->nfields; i++) { + fieldMatched = (row->fieldnames[i]) && (strcmp(row->fieldnames[i], fieldname) == 0); + if (fieldMatched) { + if (row->ispkg) { + datum = row->pkg->datums[row->varnos[i]]; + } else { + datum = u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[row->varnos[i]]; + } + if (datum->dtype == PLPGSQL_DTYPE_VAR) { + /* scalar variable, just return the datatype */ + dtype = ((PLpgSQL_var*)(u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[datum->dno]))->datatype; + } + if (datum->dtype == PLPGSQL_DTYPE_ROW) { + /* row variable, need to build a new one */ + Oid typoid = + ((PLpgSQL_row*)(u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[datum->dno]))->rowtupdesc->tdtypeid; + int32 typmod = + ((PLpgSQL_row*)(u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[datum->dno]))->rowtupdesc->tdtypmod; + /* caller may in a temp ctx, need switch to a long term cxt. */ + MemoryContext save_cxt = MemoryContextSwitchTo(old_cxt); + dtype = plpgsql_build_datatype(typoid, typmod, InvalidOid); + MemoryContextSwitchTo(save_cxt); + } + break; + } + } + return dtype; +} + /* * @Description: build variable for refcursor, refcursor has four option: isopen found notfound rowcount. * these options only used to one cursor. and cursor as an in or out parameter, @@ -2188,6 +3187,79 @@ static void build_cursor_variable(int varno) pfree_ext(str.data); } +char *plpgsql_code_int2cstring(const int sqlcode) +{ + if (sqlcode >= 0) { + ereport(ERROR, + (errmodule(MOD_PLSQL), + errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE), + errmsg("SQLCODE in EXCEPTION_INIT should be less than 0"))); + } + + char* buf = t_thrd.buf_cxt.unpack_sql_state_buf; + char codename[12] = ""; + errno_t rc = EOK; + + rc = sprintf_s(codename, sizeof(codename) - 1, "%d", sqlcode); + securec_check_ss(rc, "\0", "\0"); + rc = strcpy_s(buf, sizeof(t_thrd.buf_cxt.unpack_sql_state_buf), codename); + securec_check_c(rc, "\0", "\0"); + return buf; +} + +int plpgsql_code_cstring2int(const char *codename) +{ + Assert(codename != NULL); + int sqlcode = atoi(codename); + + if (sqlcode == 0) { + ereport(ERROR, + (errmodule(MOD_PLSQL), + errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE), + errmsg("Invalid SQLstate, maybe no EXCEPTION_INIT for this SQLstate"))); + } else if (sqlcode > 0) { + ereport(ERROR, + (errmodule(MOD_PLSQL), + errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE), + errmsg("SQLCODE in EXCEPTION_INIT should be less than 0"))); + } + return sqlcode; +} + +void plpgsql_set_variable(const char* varname, const int value) +{ + if (value >= 0) { + ereport(ERROR, + (errmodule(MOD_PLSQL), + errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE), + errmsg("SQLCODE in EXCEPTION_INIT should be less than 0"))); + } + + Assert(u_sess->plsql_cxt.curr_compile_context != NULL); + PLpgSQL_compile_context* curr_compile = u_sess->plsql_cxt.curr_compile_context; + + int varno; + PLpgSQL_datum* var = NULL; + for (varno = 0; varno < curr_compile->plpgsql_nDatums; varno++) { + var = curr_compile->plpgsql_Datums[varno]; + if (var->dtype != PLPGSQL_TTYPE_ROW) { + continue; + } + + PLpgSQL_row* rowvar = (PLpgSQL_row*)var; + if (rowvar->refname && pg_strcasecmp(rowvar->refname, varname) == 0) { + rowvar->customErrorCode = value; + rowvar->hasExceptionInit = true; + return; + } + } + + ereport(ERROR, + (errmodule(MOD_PLSQL), + errcode(ERRCODE_UNDEFINED_OBJECT), + errmsg("Undefined exception name '%s' in EXCEPTION_INIT", varname))); +} + /* * plpgsql_build_variable - build a datum-array entry of a given * datatype @@ -2203,9 +3275,10 @@ PLpgSQL_variable* plpgsql_build_variable(const char* refname, int lineno, PLpgSQ PLpgSQL_variable* result = NULL; int varno; char* pkgname = NULL; - if (u_sess->plsql_cxt.plpgsql_curr_compile == NULL && - u_sess->plsql_cxt.plpgsql_curr_compile_package != NULL) { - pkgname = u_sess->plsql_cxt.plpgsql_curr_compile_package->pkg_signature; + if (u_sess->plsql_cxt.curr_compile_context != NULL && + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package != NULL && + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile == NULL) { + pkgname = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->pkg_signature; } switch (dtype->ttype) { case PLPGSQL_TTYPE_SCALAR: { @@ -2224,11 +3297,19 @@ PLpgSQL_variable* plpgsql_build_variable(const char* refname, int lineno, PLpgSQ var->value = 0; var->isnull = true; var->freeval = false; + var->nest_table = NULL; + var->tableOfIndexType = dtype->tableOfIndexType; + var->addNamespace = add2namespace; + var->varname = varname == NULL ? NULL : pstrdup(varname); varno = plpgsql_adddatum((PLpgSQL_datum*)var); if (add2namespace) { plpgsql_ns_additem(PLPGSQL_NSTYPE_VAR, varno, refname, pkgname); } - + if (u_sess->plsql_cxt.curr_compile_context != NULL && + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package != NULL && + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile != NULL) { + var->pkg = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package; + } if (dtype->typoid == REFCURSOROID) { build_cursor_variable(varno); } @@ -2240,20 +3321,28 @@ PLpgSQL_variable* plpgsql_build_variable(const char* refname, int lineno, PLpgSQ PLpgSQL_row* row = NULL; row = build_row_from_class(dtype->typrelid); - + row->addNamespace = add2namespace; row->customErrorCode = 0; if (0 == strcmp(format_type_be(row->rowtupdesc->tdtypeid), "exception")) { row->customErrorCode = plpgsql_getCustomErrorCode(); } + row->hasExceptionInit = false; row->dtype = PLPGSQL_DTYPE_ROW; row->refname = pstrdup(refname); row->lineno = lineno; - + row->addNamespace = add2namespace; + row->varname = varname == NULL ? NULL : pstrdup(varname); + row->default_val = NULL; varno = plpgsql_adddatum((PLpgSQL_datum*)row); if (add2namespace) { plpgsql_ns_additem(PLPGSQL_NSTYPE_ROW, varno, refname, pkgname); } + if (u_sess->plsql_cxt.curr_compile_context != NULL && + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile != NULL && + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package != NULL) { + row->pkg = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package; + } result = (PLpgSQL_variable*)row; break; } @@ -2262,6 +3351,8 @@ PLpgSQL_variable* plpgsql_build_variable(const char* refname, int lineno, PLpgSQ PLpgSQL_rec* rec = NULL; rec = plpgsql_build_record(refname, lineno, add2namespace); + rec->addNamespace = add2namespace; + rec->varname = varname == NULL ? NULL : pstrdup(varname); result = (PLpgSQL_variable*)rec; break; } @@ -2279,11 +3370,18 @@ PLpgSQL_variable* plpgsql_build_variable(const char* refname, int lineno, PLpgSQ PLpgSQL_row* row = NULL; row = build_row_from_rec_type(refname, lineno, (PLpgSQL_rec_type*)dtype); - + row->addNamespace = add2namespace; + row->varname = varname == NULL ? NULL : pstrdup(varname); + row->default_val = NULL; varno = plpgsql_adddatum((PLpgSQL_datum*)row); if (add2namespace) { plpgsql_ns_additem(PLPGSQL_NSTYPE_ROW, varno, refname, pkgname); } + if (u_sess->plsql_cxt.curr_compile_context != NULL && + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package != NULL && + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile != NULL) { + row->pkg = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package; + } result = (PLpgSQL_variable*)row; break; } @@ -2317,14 +3415,57 @@ PLpgSQL_variable* plpgsql_build_varrayType(const char* refname, int lineno, PLpg var->isnull = true; var->freeval = false; var->isImplicit = true; + var->nest_table = NULL; varno = plpgsql_adddatum((PLpgSQL_datum*)var); if (add2namespace) { plpgsql_ns_additem(PLPGSQL_NSTYPE_VARRAY, varno, var->refname); } + if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package != NULL && + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile == NULL) { + var->dtype = PLPGSQL_DTYPE_VARRAY; + } + if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package != NULL && + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile != NULL) { + var->pkg = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package; + } return (PLpgSQL_variable*)var; } +/* + * create a table of type + */ +PLpgSQL_variable* plpgsql_build_tableType(const char* refname, int lineno, PLpgSQL_type* dtype, bool add2namespace) +{ + /* Ordinary scalar datatype */ + PLpgSQL_var* var = NULL; + int varno; + var = (PLpgSQL_var*)palloc0(sizeof(PLpgSQL_var)); + var->refname = pstrdup(refname); + var->lineno = lineno; + var->datatype = dtype; + /* other fields might be filled by caller */ + + /* preset to NULL */ + var->value = 0; + var->isnull = true; + var->freeval = false; + var->isImplicit = true; + + varno = plpgsql_adddatum((PLpgSQL_datum*)var); + if (add2namespace) { + plpgsql_ns_additem(PLPGSQL_NSTYPE_TABLE, varno, var->refname); + } + if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package != NULL && + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile == NULL) { + var->dtype = PLPGSQL_DTYPE_TABLE; + } + if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package != NULL && + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile != NULL) { + var->pkg = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package; + } + return (PLpgSQL_variable*)var; +} /* * Build empty named record variable, and optionally add it to namespace */ @@ -2341,9 +3482,15 @@ PLpgSQL_rec* plpgsql_build_record(const char* refname, int lineno, bool add2name rec->tupdesc = NULL; rec->freetup = false; varno = plpgsql_adddatum((PLpgSQL_datum*)rec); - if (add2namespace) { - plpgsql_ns_additem(PLPGSQL_NSTYPE_REC, varno, rec->refname); + char* pkgname = NULL; + if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package != NULL && + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile == NULL) { + pkgname = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->pkg_signature; } + if (add2namespace) { + plpgsql_ns_additem(PLPGSQL_NSTYPE_REC, varno, rec->refname, pkgname); + } + return rec; } @@ -2368,7 +3515,7 @@ PLpgSQL_rec_type* plpgsql_build_rec_type(const char* typname, int lineno, List* result = (PLpgSQL_rec_type*)palloc0(sizeof(PLpgSQL_rec_type)); - result->dtype = PLPGSQL_TTYPE_RECORD; + result->dtype = PLPGSQL_DTYPE_RECORD_TYPE; result->ttype = PLPGSQL_TTYPE_RECORD; result->typoid = RECORDOID; result->typname = pstrdup(typname); @@ -2410,7 +3557,7 @@ PLpgSQL_row* build_row_from_class(Oid class_oid) const char* relname = RelationGetRelationName(rel); /* accept relation, sequence, view, composite type, materialized view, or foreign table */ - if (class_struct->relkind != RELKIND_RELATION && class_struct->relkind != RELKIND_SEQUENCE && + if (class_struct->relkind != RELKIND_RELATION && !RELKIND_IS_SEQUENCE(class_struct->relkind) && class_struct->relkind != RELKIND_VIEW && class_struct->relkind != RELKIND_COMPOSITE_TYPE && class_struct->relkind != RELKIND_FOREIGN_TABLE && class_struct->relkind != RELKIND_MATVIEW && class_struct->relkind != RELKIND_STREAM && class_struct->relkind != RELKIND_CONTQUERY) { @@ -2427,6 +3574,7 @@ PLpgSQL_row* build_row_from_class(Oid class_oid) row->nfields = class_struct->relnatts; row->fieldnames = (char**)palloc(sizeof(char*) * row->nfields); row->varnos = (int*)palloc(sizeof(int) * row->nfields); + row->default_val = NULL; for (int i = 0; i < row->nfields; i++) { Form_pg_attribute attr_struct; @@ -2486,6 +3634,7 @@ static PLpgSQL_row* build_row_from_vars(PLpgSQL_variable** vars, int numvars) row->nfields = numvars; row->fieldnames = (char**)palloc(numvars * sizeof(char*)); row->varnos = (int*)palloc(numvars * sizeof(int)); + row->default_val = NULL; for (int i = 0; i < numvars; i++) { PLpgSQL_variable* var = vars[i]; @@ -2530,6 +3679,48 @@ static PLpgSQL_row* build_row_from_vars(PLpgSQL_variable** vars, int numvars) return row; } +PLpgSQL_row* build_row_from_tuple_desc(const char* rowname, int lineno, TupleDesc desc) +{ + PLpgSQL_row* row = (PLpgSQL_row*)palloc0(sizeof(PLpgSQL_row)); + row->dtype = PLPGSQL_DTYPE_RECORD; + row->refname = pstrdup(rowname); + row->nfields = desc->natts; + row->lineno = lineno; + row->rowtupdesc = CreateTemplateTupleDesc(row->nfields, false); + row->fieldnames = (char**)palloc(row->nfields * sizeof(char*)); + row->varnos = (int*)palloc(row->nfields * sizeof(int)); + row->default_val = NULL; + + for (int i = 0; i < desc->natts; i++) { + Form_pg_attribute pg_att_form = desc->attrs[i]; + char* att_name = NameStr(pg_att_form->attname); + if (att_name == NULL || strcmp(att_name, "?column?") == 0) { + ereport(ERROR, + (errmodule(MOD_PLSQL), + errcode(ERRCODE_UNRECOGNIZED_NODE_TYPE), + errmsg("The %dth column in %s record variable does't have alias.", (i + 1), rowname))); + } + + StringInfoData info; + initStringInfo(&info); + appendStringInfo(&info, "%s.%s", rowname, att_name); + + PLpgSQL_type* type = plpgsql_build_datatype(pg_att_form->atttypid, pg_att_form->atttypmod, pg_att_form->attcollation); + PLpgSQL_variable* var = plpgsql_build_variable(info.data, lineno, type, false); + pfree(info.data); + + row->fieldnames[i] = pstrdup(att_name); + row->varnos[i] = var->dno; + + TupleDescInitEntry(row->rowtupdesc, i + 1, att_name, pg_att_form->atttypid, pg_att_form->atttypmod, 0); + } + + row->addNamespace = true; + int varno = plpgsql_adddatum((PLpgSQL_datum*)row); + plpgsql_ns_additem(PLPGSQL_NSTYPE_ROW, varno, rowname); + return row; +} + /* * @Description: build a row variable according to the record type. * @@ -2555,6 +3746,8 @@ PLpgSQL_row* build_row_from_rec_type(const char* rowname, int lineno, PLpgSQL_re row->rowtupdesc = CreateTemplateTupleDesc(row->nfields, false); row->fieldnames = (char**)palloc(row->nfields * sizeof(char*)); row->varnos = (int*)palloc(row->nfields * sizeof(int)); + row->default_val = NULL; + row->recordVarTypOid = type->typoid; for (int i = 0; i < row->nfields; i++) { PLpgSQL_variable* var = NULL; @@ -2598,17 +3791,50 @@ PLpgSQL_type* plpgsql_build_datatype(Oid typeOid, int32 typmod, Oid collation) errcode(ERRCODE_CACHE_LOOKUP_FAILED), errmsg("cache lookup failed for type %u, type Oid is invalid", typeOid))); } - PLpgSQL_type* typ = build_datatype(type_tup, typmod, collation); + PLpgSQL_type* typ = NULL; + if (((Form_pg_type)GETSTRUCT(type_tup))->typtype == TYPTYPE_TABLEOF) { + /* if type is table of, find the base type tuple */ + Oid base_oid = ((Form_pg_type)GETSTRUCT(type_tup))->typelem; + HeapTuple base_type_tup = SearchSysCache1(TYPEOID, ObjectIdGetDatum(base_oid)); + if (!HeapTupleIsValid(base_type_tup)) { + ereport(ERROR, + (errmodule(MOD_PLSQL), + errcode(ERRCODE_CACHE_LOOKUP_FAILED), + errmsg("cache lookup failed for type %u, type Oid is invalid", base_oid))); + } + typ = build_datatype(base_type_tup, typmod, collation); + typ->collectionType = PLPGSQL_COLLECTION_TABLE; + if (((Form_pg_type)GETSTRUCT(type_tup))->typcategory == TYPCATEGORY_TABLEOF_VARCHAR) { + typ->tableOfIndexType = VARCHAROID; + } + ReleaseSysCache(base_type_tup); + } else { + typ = build_datatype(type_tup, typmod, collation); + } ReleaseSysCache(type_tup); return typ; } +PLpgSQL_type* plpgsql_build_nested_datatype() +{ + PLpgSQL_type *typ = NULL; + HeapTuple type_tup = SearchSysCache1(TYPEOID, ObjectIdGetDatum(INT4OID)); + if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile == NULL) { + typ = build_datatype(type_tup, -1, 0); + } else { + typ = build_datatype(type_tup, -1, + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile->fn_input_collation); + } + ReleaseSysCache(type_tup); + return typ; +} + /* * Utility subroutine to make a PLpgSQL_type struct given a pg_type entry */ -static PLpgSQL_type* build_datatype(HeapTuple type_tup, int32 typmod, Oid collation) +PLpgSQL_type* build_datatype(HeapTuple type_tup, int32 typmod, Oid collation) { Form_pg_type type_struct = (Form_pg_type)GETSTRUCT(type_tup); @@ -2620,6 +3846,10 @@ static PLpgSQL_type* build_datatype(HeapTuple type_tup, int32 typmod, Oid collat typ->typname = pstrdup(NameStr(type_struct->typname)); typ->typoid = HeapTupleGetOid(type_tup); + typ->collectionType = PLPGSQL_COLLECTION_NONE; + typ->tableOfIndexType = InvalidOid; + typ->cursorCompositeOid = InvalidOid; + typ->typnamespace = get_namespace_name((type_struct->typnamespace)); switch (type_struct->typtype) { case TYPTYPE_BASE: case TYPTYPE_DOMAIN: @@ -2637,6 +3867,12 @@ static PLpgSQL_type* build_datatype(HeapTuple type_tup, int32 typmod, Oid collat else typ->ttype = PLPGSQL_TTYPE_PSEUDO; break; + case TYPTYPE_TABLEOF: + ereport(ERROR, + (errmodule(MOD_PLSQL), + errcode(ERRCODE_UNRECOGNIZED_NODE_TYPE), + errmsg("don't support nest table of PLSQL."))); + break; default: ereport(ERROR, (errmodule(MOD_PLSQL), @@ -2654,7 +3890,6 @@ static PLpgSQL_type* build_datatype(HeapTuple type_tup, int32 typmod, Oid collat } fmgr_info(type_struct->typinput, &(typ->typinput)); typ->atttypmod = typmod; - return typ; } @@ -2664,29 +3899,71 @@ static PLpgSQL_type* build_datatype(HeapTuple type_tup, int32 typmod, Oid collat * to the compiler's datum list. * ---------- */ -int plpgsql_adddatum(PLpgSQL_datum* newm) +int plpgsql_adddatum(PLpgSQL_datum* newm, bool isChange) { - if (u_sess->plsql_cxt.plpgsql_curr_compile == NULL) { - if (u_sess->plsql_cxt.plpgsql_pkg_nDatums == u_sess->plsql_cxt.datums_pkg_alloc) { - u_sess->plsql_cxt.datums_pkg_alloc *= 2; - u_sess->plsql_cxt.plpgsql_Datums = (PLpgSQL_datum**)repalloc( - u_sess->plsql_cxt.plpgsql_Datums, sizeof(PLpgSQL_datum*) * u_sess->plsql_cxt.datums_pkg_alloc); + Assert(u_sess->plsql_cxt.curr_compile_context != NULL); + PLpgSQL_compile_context* curr_compile = u_sess->plsql_cxt.curr_compile_context; + if (curr_compile->plpgsql_curr_compile == NULL) { + if (curr_compile->plpgsql_pkg_nDatums == curr_compile->datums_pkg_alloc) { + curr_compile->datums_pkg_alloc *= 2; + curr_compile->plpgsql_Datums = (PLpgSQL_datum**)repalloc( + curr_compile->plpgsql_Datums, sizeof(PLpgSQL_datum*) * curr_compile->datums_pkg_alloc); } - newm->dno = u_sess->plsql_cxt.plpgsql_pkg_nDatums; - u_sess->plsql_cxt.plpgsql_Datums[u_sess->plsql_cxt.plpgsql_pkg_nDatums++] = newm; - return u_sess->plsql_cxt.plpgsql_pkg_nDatums - 1; + if (isChange) { + newm->dno = curr_compile->plpgsql_pkg_nDatums; + } + curr_compile->plpgsql_Datums[curr_compile->plpgsql_pkg_nDatums++] = newm; + return curr_compile->plpgsql_pkg_nDatums - 1; } else { - if (u_sess->plsql_cxt.plpgsql_nDatums == u_sess->plsql_cxt.datums_alloc) { - u_sess->plsql_cxt.datums_alloc *= 2; - u_sess->plsql_cxt.plpgsql_Datums = (PLpgSQL_datum**)repalloc( - u_sess->plsql_cxt.plpgsql_Datums, sizeof(PLpgSQL_datum*) * u_sess->plsql_cxt.datums_alloc); + if (curr_compile->plpgsql_nDatums == curr_compile->datums_alloc) { + curr_compile->datums_alloc *= 2; + curr_compile->plpgsql_Datums = (PLpgSQL_datum**)repalloc( + curr_compile->plpgsql_Datums, sizeof(PLpgSQL_datum*) * curr_compile->datums_alloc); } - newm->dno = u_sess->plsql_cxt.plpgsql_nDatums; - u_sess->plsql_cxt.plpgsql_Datums[u_sess->plsql_cxt.plpgsql_nDatums++] = newm; - return u_sess->plsql_cxt.plpgsql_nDatums - 1; + if (isChange) { + newm->dno = curr_compile->plpgsql_nDatums; + } + curr_compile->plpgsql_Datums[curr_compile->plpgsql_nDatums++] = newm; + return curr_compile->plpgsql_nDatums - 1; } } +#ifndef ENABLE_MULTIPLE_NODES +/* return true if input variable is cross packages. */ +static bool plpgsql_check_cross_pkg_val(PLpgSQL_datum* val) +{ + if (!val->ispkg) { + return false; + } + PLpgSQL_compile_context* curr_compile = u_sess->plsql_cxt.curr_compile_context; + Oid curPkgOid = InvalidOid; + if (curr_compile->plpgsql_curr_compile_package != NULL) { + curPkgOid = curr_compile->plpgsql_curr_compile_package->pkg_oid; + } + if (curPkgOid == InvalidOid) { + return true; + } + switch (val->dtype) { + case PLPGSQL_DTYPE_VAR: { + PLpgSQL_var* var = (PLpgSQL_var*)val; + if (var->pkg && var->pkg->pkg_oid != curPkgOid) + return true; + break; + } + case PLPGSQL_DTYPE_ROW: + case PLPGSQL_DTYPE_RECORD: { + PLpgSQL_row* row = (PLpgSQL_row*)val; + if (row->pkg && row->pkg->pkg_oid != curPkgOid) + return true; + break; + } + /* keep compiler quite */ + default: + break; + } + return false; +} +#endif /* ---------- * plpgsql_add_initdatums Make an array of the datum numbers of * all the simple VAR datums created since the last call @@ -2706,18 +3983,23 @@ int plpgsql_add_initdatums(int** varnos) int i; int n = 0; int plpgsql_nDatums; - - if (u_sess->plsql_cxt.plpgsql_curr_compile_package != NULL && u_sess->plsql_cxt.plpgsql_curr_compile == NULL) { - plpgsql_nDatums = u_sess->plsql_cxt.plpgsql_pkg_nDatums; + Assert(u_sess->plsql_cxt.curr_compile_context != NULL); + PLpgSQL_compile_context* curr_compile = u_sess->plsql_cxt.curr_compile_context; + if (curr_compile->plpgsql_curr_compile_package != NULL && curr_compile->plpgsql_curr_compile == NULL) { + plpgsql_nDatums = curr_compile->plpgsql_pkg_nDatums; } else { - plpgsql_nDatums = u_sess->plsql_cxt.plpgsql_nDatums; + plpgsql_nDatums = curr_compile->plpgsql_nDatums; } - for (i = u_sess->plsql_cxt.datums_last; i < plpgsql_nDatums; i++) { - switch (u_sess->plsql_cxt.plpgsql_Datums[i]->dtype) { + for (i = curr_compile->datums_last; i < plpgsql_nDatums; i++) { + switch (curr_compile->plpgsql_Datums[i]->dtype) { case PLPGSQL_DTYPE_VAR: - n++; - break; - + case PLPGSQL_DTYPE_ROW: + case PLPGSQL_DTYPE_RECORD: +#ifndef ENABLE_MULTIPLE_NODES + if (!plpgsql_check_cross_pkg_val(curr_compile->plpgsql_Datums[i])) +#endif + n++; + /* fall through */ default: break; } @@ -2728,12 +4010,16 @@ int plpgsql_add_initdatums(int** varnos) *varnos = (int*)palloc(sizeof(int) * n); n = 0; - for (i = u_sess->plsql_cxt.datums_last; i < plpgsql_nDatums; i++) { - switch (u_sess->plsql_cxt.plpgsql_Datums[i]->dtype) { + for (i = curr_compile->datums_last; i < plpgsql_nDatums; i++) { + switch (curr_compile->plpgsql_Datums[i]->dtype) { case PLPGSQL_DTYPE_VAR: - (*varnos)[n++] = u_sess->plsql_cxt.plpgsql_Datums[i]->dno; + case PLPGSQL_DTYPE_ROW: + case PLPGSQL_DTYPE_RECORD: +#ifndef ENABLE_MULTIPLE_NODES + if (!plpgsql_check_cross_pkg_val(curr_compile->plpgsql_Datums[i])) +#endif + (*varnos)[n++] = curr_compile->plpgsql_Datums[i]->dno; /* fall through */ - default: break; } @@ -2743,7 +4029,7 @@ int plpgsql_add_initdatums(int** varnos) } } - u_sess->plsql_cxt.datums_last = plpgsql_nDatums; + curr_compile->datums_last = plpgsql_nDatums; return n; } @@ -2767,7 +4053,11 @@ int plpgsql_recognize_err_condition(const char* condname, bool allow_sqlstate) return exception_label_map[i].sqlerrstate; } } - + char message[MAXSTRLEN]; + errno_t rc = 0; + rc = sprintf_s(message, MAXSTRLEN, "unrecognized exception condition \"%s\"", condname); + securec_check_ss_c(rc, "", ""); + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); ereport(ERROR, (errmodule(MOD_PLSQL), errcode(ERRCODE_UNDEFINED_OBJECT), @@ -2816,6 +4106,11 @@ PLpgSQL_condition* plpgsql_parse_err_condition(char* condname) } if (prev == NULL) { + char message[MAXSTRLEN]; + errno_t rc = 0; + rc = sprintf_s(message, MAXSTRLEN, "unrecognized exception condition \"%s\"", condname); + securec_check_ss_c(rc, "", ""); + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); ereport(ERROR, (errmodule(MOD_PLSQL), errcode(ERRCODE_UNDEFINED_OBJECT), @@ -3001,6 +4296,8 @@ static void plpgsql_HashTableInsert(PLpgSQL_function* func, PLpgSQL_func_hashkey dlist_add_tail_cell(u_sess->plsql_cxt.plpgsql_dlist_objects, hentry->cell); elog(WARNING, "trying to insert a function that already exists"); } else { + hentry->function = NULL; + hentry->cell = NULL; /* append the current compiling entity to the end of the compile results list. */ plpgsql_append_dlcell(hentry); } @@ -3076,9 +4373,14 @@ static void plpgsql_append_dlcell(plpgsql_HashEnt* entity) while (dlength(u_sess->plsql_cxt.plpgsql_dlist_objects) > g_instance.attr.attr_sql.max_compile_functions) { DListCell* headcell = u_sess->plsql_cxt.plpgsql_dlist_objects->head; plpgsql_HashEnt* head_entity = (plpgsql_HashEnt*)lfirst(headcell); - func = head_entity->function; - if (func->use_count != 0) { + /* package's PLpgSQL_function can only be freeed by package */ + while (func != NULL && OidIsValid(func->pkg_oid)) { + headcell = (headcell == NULL) ? NULL : headcell->next; + head_entity = (headcell == NULL) ? NULL : (plpgsql_HashEnt*)lfirst(headcell); + func = (head_entity == NULL) ? NULL : head_entity->function; + } + if (func == NULL || func->use_count != 0) { break; } @@ -3190,3 +4492,221 @@ bool plpgsql_check_insert_colocate( } return true; } + +/* Try to find field word2 and word3 of a row variable, if find, return ture */ +static bool plpgsql_lookup_tripword_datum(int itemno, const char* word2, const char* word3, + PLwdatum* wdatum, int* tok_flag) +{ + PLpgSQL_compile_context* curr_compile = u_sess->plsql_cxt.curr_compile_context; + + if (curr_compile->plpgsql_Datums[itemno]->dtype != PLPGSQL_DTYPE_RECORD + && curr_compile->plpgsql_Datums[itemno]->dtype != PLPGSQL_DTYPE_ROW) { + return false; + } + + PLpgSQL_row* row = NULL; + PLpgSQL_datum* tempDatum = NULL; + int i; + bool isPkg = false; + row = (PLpgSQL_row*)(curr_compile->plpgsql_Datums[itemno]); + isPkg = row->ispkg; + + /* find field word2 first */ + for (i = 0; i < row->nfields; i++) { + if (row->fieldnames[i] && strcmp(row->fieldnames[i], word2) == 0) { + if (isPkg) { + tempDatum = row->pkg->datums[row->varnos[i]]; + } else { + tempDatum = curr_compile->plpgsql_Datums[row->varnos[i]]; + } + break; + } + } + + /* then find field word3 */ + if (tempDatum != NULL && + (tempDatum->dtype == PLPGSQL_DTYPE_ROW || tempDatum->dtype == PLPGSQL_DTYPE_RECORD)) { + row = (PLpgSQL_row*)tempDatum; + for (i = 0; i < row->nfields; i++) { + if (row->fieldnames[i] && strcmp(row->fieldnames[i], word3) == 0) { + if (isPkg) { + int dno = -1; + PLpgSQL_nsitem* tempns = NULL; + PLpgSQL_datum* tempdatum = row->pkg->datums[row->varnos[i]]; + char* refname = ((PLpgSQL_variable*)tempdatum)->refname; + tempns = plpgsql_ns_lookup(plpgsql_ns_top(), false, row->pkg->pkg_signature, refname, NULL, NULL); + if (tempns != NULL) { + dno = tempns->itemno; + } else { + dno = plpgsql_adddatum(tempdatum, false); + if (tempdatum->dtype == PLPGSQL_DTYPE_VAR) { + plpgsql_ns_additem(PLPGSQL_NSTYPE_VAR, dno, refname, row->pkg->pkg_signature); + } else { + plpgsql_ns_additem(PLPGSQL_NSTYPE_ROW, dno, refname, row->pkg->pkg_signature); + } + } + wdatum->datum = tempdatum; + wdatum->dno = dno; + *tok_flag = PLPGSQL_TOK_PACKAGE_VARIABLE; + } else { + wdatum->datum = curr_compile->plpgsql_Datums[row->varnos[i]]; + wdatum->dno = row->varnos[i]; + get_datum_tok_type(wdatum->datum, tok_flag); + } + wdatum->ident = NULL; + wdatum->quoted = false; /* not used */ + return true; + } + } + } + return false; +} + +static void get_datum_tok_type(PLpgSQL_datum* target, int* tok_flag) +{ + if (target->dtype == PLPGSQL_DTYPE_VAR) { + PLpgSQL_var* var = (PLpgSQL_var*)(target); + if (var != NULL && var->datatype != NULL && + var->datatype->typinput.fn_oid == F_ARRAY_IN) { + if (var->datatype->collectionType == PLPGSQL_COLLECTION_TABLE) { + *tok_flag = PLPGSQL_TOK_TABLE_VAR; + } else { + *tok_flag = PLPGSQL_TOK_VARRAY_VAR; + } + } else if (var != NULL && var->datatype && + var->datatype->typinput.fn_oid == F_DOMAIN_IN) { + HeapTuple type_tuple = + SearchSysCache1(TYPEOID, ObjectIdGetDatum(var->datatype->typoid)); + if (HeapTupleIsValid(type_tuple)) { + Form_pg_type type_form = (Form_pg_type)GETSTRUCT(type_tuple); + if (F_ARRAY_OUT == type_form->typoutput) { + *tok_flag = PLPGSQL_TOK_VARRAY_VAR; + } + } + ReleaseSysCache(type_tuple); + } + } +} + +TupleDesc getCursorTupleDesc(PLpgSQL_expr* expr, bool isOnlySelect) +{ + if (expr == NULL) { + return NULL; + } + if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile == NULL) { + /* + * because while compile a package, don't have struct function yet. + * but make_datum_param needs it, so we should palloc a func. + */ + expr->func = (PLpgSQL_function*)palloc0(sizeof(PLpgSQL_function)); + expr->func->fn_cxt = CurrentMemoryContext; + } else { + expr->func = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile; + } + MemoryContext current_context = CurrentMemoryContext; + bool temp_pre_parse_trig = expr->func->pre_parse_trig ; + expr->func->pre_parse_trig = true; + expr->func->datums = u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums; + expr->func->ndatums = u_sess->plsql_cxt.curr_compile_context->plpgsql_nDatums; + TupleDesc tupleDesc = NULL; + PG_TRY(); + { + List* parsetreeList = pg_parse_query(expr->query); + ListCell* cell = NULL; + List* queryList = NIL; + foreach(cell, parsetreeList) { + Node *parsetree = (Node *)lfirst(cell); + if (nodeTag(parsetree) == T_SelectStmt) { + if (checkSelectIntoParse((SelectStmt*)parsetree)) { + list_free_deep(parsetreeList); + ereport(ERROR, (errmodule(MOD_PLSQL), errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("select into clause is not supported in cursor or for..in loop condition yet."), + errdetail("query \"%s\" is not supported in cursor or for..in loop condition yet.", expr->query), + errcause("feature not supported"), + erraction("modify the query"))); + } + } else { + if (isOnlySelect) { + expr->func->pre_parse_trig = temp_pre_parse_trig; + expr->func->datums = NULL; + expr->func->ndatums = 0; + if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile == NULL) { + pfree(expr->func); + } + expr->func = NULL; + list_free_deep(parsetreeList); + return NULL; + } + } + queryList = pg_analyze_and_rewrite_params(parsetree, expr->query, + (ParserSetupHook)plpgsql_parser_setup, (void*)expr); + } + Query* query = (Query*)linitial(queryList); + Assert(IsA(query, Query)); + tupleDesc = ExecCleanTypeFromTL(query->targetList, false); + expr->func->pre_parse_trig = temp_pre_parse_trig; + expr->func->datums = NULL; + expr->func->ndatums = 0; + if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile == NULL) { + pfree(expr->func); + } + expr->func = NULL; + list_free_deep(parsetreeList); + list_free_deep(queryList); + } + PG_CATCH(); + { + /* Save error info */ + MemoryContext ecxt = MemoryContextSwitchTo(current_context); + ErrorData* edata = CopyErrorData(); + FlushErrorState(); + (void)MemoryContextSwitchTo(ecxt); + expr->func->pre_parse_trig = temp_pre_parse_trig; + expr->func->datums = NULL; + expr->func->ndatums = 0; + if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile == NULL) { + pfree(expr->func); + } + expr->func = NULL; + ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("compile failed when parse the query: %s", expr->query), + errdetail("%s", edata->message), + errcause("The syntax of the query is wrong"), + erraction("modify the query"))); + } + PG_END_TRY(); + + return tupleDesc; +} +static int get_inner_type_ind(Oid typeoid) +{ + if (typeoid == InvalidOid) { + return 0; + } + Form_pg_type typtup; + Oid typelem; + HeapTuple tp = SearchSysCache1(TYPEOID, ObjectIdGetDatum(typeoid)); + if (!HeapTupleIsValid(tp)) { + ereport(ERROR, (errcode(ERRCODE_CACHE_LOOKUP_FAILED), + errmsg("cache lookup failed for type %u", typeoid))); + } + typtup = (Form_pg_type)GETSTRUCT(tp); + typelem = typtup->typelem; + ReleaseSysCache(tp); + return 1 + get_inner_type_ind(typelem); +} + +/* Simply check whether the ColumnRef's type meets the subscript requirements. */ +Node* plpgsql_check_match_var(Node* node, ParseState* pstate, ColumnRef* cref) +{ + Node* ans = NULL; + if (node != NULL && IsA(node, Var) && + pstate->p_pre_columnref_hook == plpgsql_pre_column_ref && + cref->indnum > 0) { + Var* colvar = (Var*)node; + if (get_inner_type_ind(colvar->vartype) -1 != cref->indnum) { + ans = resolve_column_ref(pstate, (PLpgSQL_expr*)pstate->p_ref_hook_state, cref, false); + } + } + return ans; +} diff --git a/src/common/pl/plpgsql/src/pl_debugger.cpp b/src/common/pl/plpgsql/src/pl_debugger.cpp index 1454431de..56e4a0918 100644 --- a/src/common/pl/plpgsql/src/pl_debugger.cpp +++ b/src/common/pl/plpgsql/src/pl_debugger.cpp @@ -1,5 +1,6 @@ /* ------------------------------------------------------------------------- * Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors * * openGauss is licensed under Mulan PSL v2. * You can use this software according to the terms and conditions of the Mulan PSL v2. @@ -30,21 +31,24 @@ #include "utils/syscache.h" #include "utils/builtins.h" #include +#include "catalog/gs_package.h" const char* PG_DEBUG_FILES_DIR = "base/plpgsql_debug"; + const char* DEFAULT_UNKNOWN_VALUE = ""; #define IS_AFTER_OPT(opt) (((opt) <= 'Z') && ((opt) >= 'A')) static void server_debug_main(PLpgSQL_function* func, PLpgSQL_execstate* estate); -static void init_debug_server(PLpgSQL_function* func, int socketId, int debugStackIdx); +static void init_debug_server(PLpgSQL_function* func, int socketId, int debugStackIdx, PLpgSQL_execstate* estate); static bool handle_debug_msg(DebugInfo* debug, char* firstChar, PLpgSQL_execstate* estate); static char* get_stmt_query(PLpgSQL_stmt* stmt); static bool get_cur_info(StringInfo str, PLpgSQL_execstate* estate, DebugInfo* debug); static bool send_cur_info(DebugInfo* debug, PLpgSQL_execstate* estate, bool stop_next); -static int CheckExistedBreakPoint(DebugInfo* debug, Oid funcOid, int lineno, bool activate); +static bool ActiveBPInFunction(DebugInfo* debug, Oid funcOid); +static bool IsBreakPointExisted(DebugInfo* debug, Oid funcOid, int lineno, bool ignoreDisabled); static char* ResizeDebugCommBufferIfNecessary(char* buffer, int* oldSize, int needSize); static void set_debugger_procedure_state(int commIdx, bool state); @@ -53,12 +57,15 @@ static void debug_server_rec_msg(DebugInfo* debug, char* firstChar); static void debug_server_send_msg(DebugInfo* debug, const char* msg, int msg_len); /* server manage client msg */ static void debug_server_attach(DebugInfo* debug, PLpgSQL_execstate* estate); -static void debug_server_local_variables(DebugInfo* debug, PLpgSQL_execstate* estate, bool show_all); +static void debug_server_local_variables(DebugInfo* debug); static void debug_server_abort(DebugInfo* debug); static void debug_server_add_breakpoint(DebugInfo* debug); static void debug_server_delete_breakpoint(DebugInfo* debug); +static void debug_server_enable_breakpoint(DebugInfo* debug); +static void debug_server_disable_breakpoint(DebugInfo* debug); static void debug_server_info_breakpoint(DebugInfo* debug); static void debug_server_backtrace(); +static void debug_server_set_variable(DebugInfo* debug, PLpgSQL_execstate* estate); /* close each debug function's resource if necessary */ void PlDebugerCleanUp(int code, Datum arg) @@ -79,7 +86,7 @@ void PlDebugerCleanUp(int code, Datum arg) clean_up_debug_client(true); } -static void init_debug_server(PLpgSQL_function* func, int socketId, int debugStackIdx) +static void init_debug_server(PLpgSQL_function* func, int socketId, int debugStackIdx, PLpgSQL_execstate* estate) { Assert(func->debug == NULL); MemoryContext debug_context = NULL; @@ -106,6 +113,7 @@ static void init_debug_server(PLpgSQL_function* func, int socketId, int debugSta debug->comm = NULL; debug->inner_called_debugger = NULL; debug->cur_stmt = NULL; + debug->estate = estate; /* create connection if is base function */ if (socketId >= 0) { /* @@ -128,13 +136,13 @@ static void init_debug_server(PLpgSQL_function* func, int socketId, int debugSta (void)MemoryContextSwitchTo(old_context); } -void check_debug(PLpgSQL_function* func) +void check_debug(PLpgSQL_function* func, PLpgSQL_execstate* estate) { if (func->fn_oid == InvalidOid) return; bool found = false; bool need_continue_into = u_sess->plsql_cxt.cur_debug_server != NULL && - CheckExistedBreakPoint(u_sess->plsql_cxt.cur_debug_server, func->fn_oid, -1, false) >= 0; + ActiveBPInFunction(u_sess->plsql_cxt.cur_debug_server, func->fn_oid); bool is_stepinto = u_sess->plsql_cxt.has_step_into; PlDebugEntry* entry = has_debug_func(func->fn_oid, &found); if ((found && u_sess->plsql_cxt.cur_debug_server == NULL) || is_stepinto || need_continue_into) { @@ -162,7 +170,7 @@ void check_debug(PLpgSQL_function* func) } int socketIdx = found ? entry->commIdx : -1; if (func->debug == NULL) { - init_debug_server(func, socketIdx, stackIdx); + init_debug_server(func, socketIdx, stackIdx, estate); } if (stackIdx > 0) { @@ -203,7 +211,6 @@ static void set_debugger_procedure_state(int commIdx, bool state) debug_comm->hasClientErrorOccured = false; debug_comm->clientId = 0; debug_comm->bufLen = 0; - debug_comm->startPos = 0; } debuglock.unLock(); } @@ -217,7 +224,7 @@ void server_debug_main(PLpgSQL_function* func, PLpgSQL_execstate* estate) Assert(debug_ptr != NULL); /* stop to wait client conn if need */ debug_ptr->stop_next_stmt = debug_ptr->stop_next_stmt || - CheckExistedBreakPoint(debug_ptr, func->fn_oid, estate->err_stmt->lineno, false) >= 0; + IsBreakPointExisted(debug_ptr, func->fn_oid, estate->err_stmt->lineno, true); if (debug_ptr->stop_next_stmt) { MemoryContext old_cxt = MemoryContextSwitchTo(debug_ptr->debug_cxt); PG_TRY(); @@ -255,7 +262,7 @@ bool handle_debug_msg(DebugInfo* debug, char* firstChar, PLpgSQL_execstate* esta need_wait = true; break; case DEBUG_LOCALS_HEADER: - debug_server_local_variables(debug, estate, true); + debug_server_local_variables(debug); need_wait = true; break; case DEBUG_NEXT_HEADER: @@ -281,35 +288,54 @@ bool handle_debug_msg(DebugInfo* debug, char* firstChar, PLpgSQL_execstate* esta u_sess->plsql_cxt.has_step_into = false; need_wait = !send_cur_info(debug, estate, true); break; + case DEBUG_FINISH_HEADER: + debug->stop_next_stmt = false; + need_wait = false; + *firstChar = DEBUG_FINISH_HEADER_AFTER; + break; case DEBUG_ABORT_HEADER: + /* set abort flag incase has outter function */ + *firstChar = DEBUG_ABORT_HEADER_AFTER; debug_server_abort(debug); need_wait = false; break; + case DEBUG_ABORT_HEADER_AFTER: + *firstChar = DEBUG_ABORT_HEADER_AFTER; + /* already send close to client, no need to send again, just throw error is enough */ + ereport(ERROR, (errmodule(MOD_PLDEBUGGER), (errmsg("receive abort message")))); + need_wait = false; + break; case DEBUG_CONTINUE_HEADER: debug->stop_next_stmt = false; need_wait = false; *firstChar = DEBUG_CONTINUE_HEADER_AFTER; break; + case DEBUG_FINISH_HEADER_AFTER: case DEBUG_CONTINUE_HEADER_AFTER: *firstChar = DEBUG_NOTHING_HEADER; need_wait = !send_cur_info(debug, estate, false); break; - case DEBUG_PRINT_HEADER: - debug_server_local_variables(debug, estate, false); - need_wait = true; - break; case DEBUG_ADDBREAKPOINT_HEADER: debug_server_add_breakpoint(debug); break; case DEBUG_DELETEBREAKPOINT_HEADER: debug_server_delete_breakpoint(debug); break; + case DEBUG_ENABLEBREAKPOINT_HEADER: + debug_server_enable_breakpoint(debug); + break; + case DEBUG_DISABLEBREAKPOINT_HEADER: + debug_server_disable_breakpoint(debug); + break; case DEBUG_BREAKPOINT_HEADER: debug_server_info_breakpoint(debug); break; case DEBUG_BACKTRACE_HEADER: debug_server_backtrace(); break; + case DEBUG_SET_VARIABLE_HEADER: + debug_server_set_variable(debug, estate); + break; default: ereport(ERROR, (errmodule(MOD_PLDEBUGGER), (errmsg("received unknown plsql debug client msg: %c", *firstChar)))); @@ -336,6 +362,9 @@ void server_pass_upper_debug_opt(DebugInfo* debug) erraction("Contact Huawei Engineer."))); } outer_debug->cur_opt = debug->cur_opt; + if (debug->cur_opt == DEBUG_FINISH_HEADER_AFTER) { + outer_debug->stop_next_stmt = true; + } } } @@ -346,15 +375,23 @@ void server_send_end_msg(DebugInfo* debug) StringInfoData str; initStringInfo(&str); Oid funcoid = debug->func->fn_oid; + Oid pkgoid = debug->func->pkg_oid; char* funcname = get_func_name(debug->func->fn_oid); + char* pkgname = NULL; Assert(funcname != NULL); - appendStringInfo(&str, "%u:%s:%d:%s", funcoid, funcname, 0, "[EXECUTION FINISHED]"); + if (pkgoid != InvalidOid) { + NameData* pkgName = GetPackageName(pkgoid); + pkgname = NameStr(*pkgName); + } + char* pkgfuncname = quote_qualified_identifier(pkgname, funcname); + appendStringInfo(&str, "%u:%s:%d:%s", funcoid, pkgfuncname, 0, "[EXECUTION FINISHED]"); /* set procedure end */ set_debugger_procedure_state(debug->comm->comm_idx, false); debug_server_send_msg(debug, str.data, str.len); MemoryContextSwitchTo(old_cxt); debug->cur_opt = DEBUG_NOTHING_HEADER; pfree_ext(funcname); + pfree_ext(pkgfuncname); } } @@ -409,7 +446,8 @@ static bool is_target_variable(const char* target, const char* this_var) PLDebug_variable* get_debug_variable_var(PLpgSQL_var* node, const char* target) { - if (!is_target_variable(target, node->refname)) { + char* varname = node->varname == NULL || node->varname[0] == '\0' ? node->refname : node->varname; + if (!is_target_variable(target, varname)) { return NULL; } @@ -432,31 +470,41 @@ PLDebug_variable* get_debug_variable_var(PLpgSQL_var* node, const char* target) } form = (Form_pg_type)GETSTRUCT(tuple); var = (PLDebug_variable*)makeNode(PLDebug_variable); - var->name = AssignStr(node->refname); + var->name = AssignStr(varname); var->var_type = AssignStr(NameStr(form->typname)); - if (node->value == (uintptr_t)NULL && form->typlen == -1) { /* type treated as pointers */ + if (node->value == (uintptr_t)NULL && form->typbyval == false) { /* type treated as pointers */ var->value = pstrdup(""); } else { var->value = OidOutputFunctionCall(form->typoutput, node->value); } + if (node->pkg != NULL) { + NameData* pkgName = GetPackageName(node->pkg->pkg_oid); + var->pkgname = AssignStr(NameStr(*pkgName)); + } else { + var->pkgname = pstrdup(""); + } + + var->isconst = node->isconst; ReleaseSysCache(tuple); return var; } PLDebug_variable* get_debug_variable_row(PLpgSQL_row* node, PLpgSQL_execstate* estate, const char* target) { - if (!is_target_variable(target, node->refname)) { + char* varname = node->varname == NULL ? node->refname : node->varname; + if (!is_target_variable(target, varname)) { return NULL; } /* no need to show internal variable */ const char* internal = "*internal*"; - if (node->refname != NULL && strcmp(node->refname, internal) == 0) { + if (node->refname != NULL && strcmp(varname, internal) == 0) { return NULL; } PLDebug_variable* var = (PLDebug_variable*)makeNode(PLDebug_variable); - var->name = AssignStr(node->refname); + var->isconst = false; + var->name = AssignStr(varname); switch (node->dtype) { case PLPGSQL_DTYPE_ROW: var->var_type = pstrdup("Row"); @@ -491,17 +539,25 @@ PLDebug_variable* get_debug_variable_row(PLpgSQL_row* node, PLpgSQL_execstate* e heap_freetuple_ext(tuple); pfree(buf); } + if (node->pkg != NULL) { + NameData* pkgName = GetPackageName(node->pkg->pkg_oid); + var->pkgname = AssignStr(NameStr(*pkgName)); + } else { + var->pkgname = pstrdup(""); + } return var; } PLDebug_variable* get_debug_variable_rec(PLpgSQL_rec* node, const char* target) { - if (!is_target_variable(target, node->refname)) { + char* varname = node->varname == NULL ? node->refname : node->varname; + if (!is_target_variable(target, varname)) { return NULL; } PLDebug_variable* var = (PLDebug_variable*)makeNode(PLDebug_variable); - var->name = AssignStr(node->refname); + var->isconst = false; + var->name = AssignStr(varname); var->var_type = pstrdup("Rec"); if (node->tupdesc == NULL || node->tup == NULL) { var->value = pstrdup(DEFAULT_UNKNOWN_VALUE); @@ -517,26 +573,37 @@ PLDebug_variable* get_debug_variable_rec(PLpgSQL_rec* node, const char* target) var->value = pstrdup(buf->data); pfree(buf); } + if (node->pkg != NULL) { + NameData* pkgName = GetPackageName(node->pkg->pkg_oid); + var->pkgname = AssignStr(NameStr(*pkgName)); + } else { + var->pkgname = pstrdup(""); + } return var; } PLDebug_variable* get_debug_variable_refcursor(PLpgSQL_datum** node, int index, const char* target) { - if (!is_target_variable(target, ((PLpgSQL_var*)node[index])->refname)) { + char* varname = ((PLpgSQL_var*)node[index])->varname == NULL ? + ((PLpgSQL_var*)node[index])->refname : ((PLpgSQL_var*)node[index])->varname; + if (!is_target_variable(target, varname)) { return NULL; } PLDebug_variable* var = (PLDebug_variable*)makeNode(PLDebug_variable); + var->isconst = false; PLDebug_variable* refcursor = get_debug_variable_var((PLpgSQL_var*)node[index++], NULL); PLDebug_variable* is_open = get_debug_variable_var((PLpgSQL_var*)node[index++], NULL); PLDebug_variable* found = get_debug_variable_var((PLpgSQL_var*)node[index++], NULL); PLDebug_variable* not_found = get_debug_variable_var((PLpgSQL_var*)node[index++], NULL); PLDebug_variable* row_count = get_debug_variable_var((PLpgSQL_var*)node[index], NULL); - var->name = pstrdup(refcursor->name); + var->name = pstrdup(varname); var->var_type = pstrdup(refcursor->var_type); StringInfo buf = makeStringInfo(); appendStringInfo(buf, "{name:\t%s\nis_open:\t%s\nfound:\t%s\nnot_found:\t%s\nrow_count:\t%s}", refcursor->value, is_open->value, found->value, not_found->value, row_count->value); var->value = buf->data; + var->pkgname = pstrdup(refcursor->pkgname); + pfree(refcursor); pfree(is_open); pfree(found); @@ -545,15 +612,76 @@ PLDebug_variable* get_debug_variable_refcursor(PLpgSQL_datum** node, int index, return var; } -void debug_server_local_variables(DebugInfo* debug, PLpgSQL_execstate* estate, bool show_all) +static PLpgSQL_execstate* GetEstateAtDepth(int n) { - if (estate == NULL) { - ereport(ERROR, - (errcode(ERRCODE_UNEXPECTED_NULL_VALUE), - errmodule(MOD_PLDEBUGGER), - errmsg("Unexpeted null execution state for debug server info local."))); + DebugInfo* target = u_sess->plsql_cxt.cur_debug_server; + DebugInfo* top = target; + /* get n'th stack from lowest stack */ + for (int i = 0; i < n; i++) { + top = top->inner_called_debugger; + if (top == NULL) { + return NULL; + } } - char* var_name = show_all ? NULL : debug->comm->rec_buffer; + + /* proceed both frame till top reaches outer most */ + while (top->inner_called_debugger != NULL) { + top = top->inner_called_debugger; + target = target->inner_called_debugger; + } + return target->estate; +} + +static void report_msg_error(const char* msg) +{ + ereport(ERROR, + (errmodule(MOD_PLDEBUGGER), errcode(ERRCODE_UNEXPECTED_NULL_VALUE), + errmsg("Unexpeted message for debug server info print_var/info_locals"), + errdetail("error message: %s", msg), + errcause("The message is not complete"), + erraction("Contact Huawei Engineer."))); +} + +void debug_server_local_variables(DebugInfo* debug) +{ + /* Received buffer will be in the form of */ + PLpgSQL_execstate* estate = NULL; + char* var_name = NULL; + int frameno = -1; + char* psave = NULL; + char* fir = strtok_r(debug->comm->rec_buffer, ":", &psave); + bool show_all = false; + var_name = pstrdup(TrimStr(fir)); + if (psave == NULL) { + report_msg_error(debug->comm->rec_buffer); + } + fir = strtok_r(NULL, ":", &psave); + if (fir == NULL) { + report_msg_error(debug->comm->rec_buffer); + } + frameno = pg_strtoint32(fir); + if (frameno == 0) { + estate = debug->estate; + } else { + estate = GetEstateAtDepth(frameno); + } + if (psave == NULL) { + report_msg_error(debug->comm->rec_buffer); + } + show_all = (pg_strtoint32(psave) == 1); + if (show_all) { + /* empty var_name will show all variables */ + pfree_ext(var_name); + } + + if (estate == NULL) { + char* errmsg = (char*)palloc(MAX_INT_SIZE); + pg_ltoa(DEBUG_SERVER_PRINT_VAR_FRAMENO_EXCEED, errmsg); + debug_server_send_msg(debug, errmsg, strlen(errmsg)); + pfree(errmsg); + return; + } + List* local_variables = NIL; for (int i = 0; i < estate->ndatums; i++) { PLpgSQL_variable* node = (PLpgSQL_variable*)estate->datums[i]; @@ -607,12 +735,12 @@ void clean_up_debug_client(bool hasError) PlDebuggerComm* debug_comm = &g_instance.pldebug_cxt.debug_comm[client->comm_idx]; AutoMutexLock debuglock(&debug_comm->mutex); debuglock.lock(); - if (debug_comm->hasClient() && debug_comm->clientId == u_sess->session_id) { + if (debug_comm->hasClient() && + (debug_comm->clientId == u_sess->session_id || debug_comm->clientId == t_thrd.proc_cxt.MyProcPid)) { /* only wake up server for error when it's not recevied server error */ if (hasError && debug_comm->IsServerWaited && !debug_comm->hasServerErrorOccured) { debug_comm->hasClientErrorOccured = true; debug_comm->hasClientFlushed = false; - debug_comm->startPos = 0; debug_comm->bufLen = 0; debug_comm->clientId = 0; debuglock.unLock(); @@ -623,7 +751,6 @@ void clean_up_debug_client(bool hasError) debug_comm->hasServerErrorOccured = false; debug_comm->hasClientFlushed = false; debug_comm->clientId = 0; - debug_comm->startPos = 0; debug_comm->bufLen = 0; debuglock.unLock(); } @@ -636,6 +763,7 @@ void clean_up_debug_client(bool hasError) u_sess->plsql_cxt.debug_client = NULL; } } + static void wait_for_client_handle_msg(int comm_idx) { PlDebuggerComm* debug_comm = &g_instance.pldebug_cxt.debug_comm[comm_idx]; @@ -691,7 +819,6 @@ void clean_up_debug_server(DebugInfo* debug, bool sessClose, bool hasError) /* still has client wait server msg, error occurs */ debug_comm->hasServerErrorOccured = true; debug_comm->bufLen = 0; - debug_comm->startPos = 0; debug_comm->hasServerFlushed = false; debuglock.unLock(); WakeUpReceiver(debug->comm->comm_idx, false); @@ -701,7 +828,6 @@ void clean_up_debug_server(DebugInfo* debug, bool sessClose, bool hasError) debug_comm->hasClientErrorOccured = false; debug_comm->clientId = 0; debug_comm->bufLen = 0; - debug_comm->startPos = 0; debug_comm->hasServerFlushed = false; debuglock.unLock(); } @@ -749,21 +875,34 @@ static bool get_cur_info(StringInfo str, PLpgSQL_execstate* estate, DebugInfo* d { Oid funcoid = debug->func->fn_oid; char* funcname = get_func_name(funcoid); + Oid pkgoid = debug->func->pkg_oid; Assert(funcname != NULL); int lineno = estate->err_stmt->lineno; char* query = get_stmt_query(estate->err_stmt); bool isend = false; + char* pkgname = NULL; + + if (pkgoid != InvalidOid) { + NameData* pkgName = GetPackageName(pkgoid); + pkgname = NameStr(*pkgName); + } + + char* pkgfuncname = quote_qualified_identifier(pkgname, funcname); + /* turn to show code's lineno */ if (query) { - appendStringInfo(str, "%u:%s:%d:%s", funcoid, funcname, lineno, query); + appendStringInfo(str, "%u:%s:%d:%s", funcoid, pkgfuncname, lineno, query); } else { if (debug->debugStackIdx == 0) { set_debugger_procedure_state(debug->comm->comm_idx, false); debug->stop_next_stmt = false; isend = true; } - appendStringInfo(str, "%u:%s:%d:%s", funcoid, funcname, lineno, "[EXECUTION FINISHED]"); + appendStringInfo(str, "%u:%s:%d:%s", funcoid, pkgfuncname, lineno, "[EXECUTION FINISHED]"); } + pfree(pkgfuncname); + pfree(funcname); + return isend; } @@ -773,7 +912,7 @@ char* GetSqlString(PLpgSQL_stmt* stmt) return ((T*)stmt)->sqlString; } -const int STMT_NUM = 27; +const int STMT_NUM = 28; typedef char* (*GetSQLStringFunc)(PLpgSQL_stmt*); /* KEEP IN THE SAME ORDER AS PLpgSQL_stmt_types */ @@ -804,7 +943,8 @@ const GetSQLStringFunc G_GET_SQL_STRING[STMT_NUM] = { GetSqlString, GetSqlString, GetSqlString, - GetSqlString + GetSqlString, + GetSqlString }; static char* get_stmt_query(PLpgSQL_stmt* stmt) @@ -821,20 +961,28 @@ static char* get_stmt_query(PLpgSQL_stmt* stmt) return query; } -static int CheckExistedBreakPoint(DebugInfo* debug, Oid funcOid, int lineno, bool activate) +static bool ActiveBPInFunction(DebugInfo* debug, Oid funcOid) { ListCell* lc = NULL; foreach(lc, debug->bp_list) { PLDebug_breakPoint* bp = (PLDebug_breakPoint*)lfirst(lc); - if (bp->funcoid == funcOid && (lineno == -1 || bp->lineno == lineno)) { - if (!activate && !bp->active) { - return -1; - } - bp->active = true; - return bp->bpIndex; + if (bp->funcoid == funcOid && !bp->deleted && bp->active) { + return true; } } - return -1; + return false; +} + +static bool IsBreakPointExisted(DebugInfo* debug, Oid funcOid, int lineno, bool ignoreDisabled) +{ + ListCell* lc = NULL; + foreach(lc, debug->bp_list) { + PLDebug_breakPoint* bp = (PLDebug_breakPoint*)lfirst(lc); + if (bp->funcoid == funcOid && bp->lineno == lineno && !bp->deleted && (bp->active || !ignoreDisabled)) { + return true; + } + } + return false; } static void debug_server_add_breakpoint(DebugInfo* debug) @@ -861,23 +1009,25 @@ static void debug_server_add_breakpoint(DebugInfo* debug) int lineno = (int)pg_strtouint64(new_fir, NULL, int64Size); char* query = pstrdup(psave); - int foundIndex = CheckExistedBreakPoint(debug, funcOid, lineno, true); - if (foundIndex == -1) { + int newIndex = -1; + + if (!IsBreakPointExisted(debug, funcOid, lineno, false)) { PLDebug_breakPoint* bp = (PLDebug_breakPoint*)makeNode(PLDebug_breakPoint); bp->bpIndex = list_length(debug->bp_list); bp->funcoid = funcOid; bp->lineno = lineno; bp->active = true; + bp->deleted = false; bp->query = query; debug->bp_list = lappend(debug->bp_list, bp); - foundIndex = bp->bpIndex; + newIndex = bp->bpIndex; } (void)MemoryContextSwitchTo(old_context); StringInfoData str; initStringInfo(&str); - appendStringInfo(&str, "%d", foundIndex); + appendStringInfo(&str, "%d", newIndex); debug_server_send_msg(debug, str.data, str.len); } @@ -888,12 +1038,64 @@ static void debug_server_delete_breakpoint(DebugInfo* debug) /* Received buffer will be in the form of */ int bpIndex = pg_strtoint32(debug->comm->rec_buffer); - char* buf; + char* buf = NULL; if (bpIndex >= list_length(debug->bp_list)) { buf = pstrdup("1"); } else { PLDebug_breakPoint* bp = (PLDebug_breakPoint*)list_nth(debug->bp_list, bpIndex); + bp->deleted = true; + buf = pstrdup("0"); + } + debug_server_send_msg(debug, buf, strlen(buf)); + pfree(buf); + (void)MemoryContextSwitchTo(old_context); +} + +static void debug_server_enable_breakpoint(DebugInfo* debug) +{ + /* Client guarantees the index to be positive */ + MemoryContext old_context = MemoryContextSwitchTo(debug->debug_cxt); + + /* Received buffer will be in the form of */ + int bpIndex = pg_strtoint32(debug->comm->rec_buffer); + char* buf = NULL; + + if (bpIndex >= list_length(debug->bp_list)) { + buf = pstrdup("1"); + } else { + PLDebug_breakPoint* bp = (PLDebug_breakPoint*)list_nth(debug->bp_list, bpIndex); + if (bp->deleted) { + buf = pstrdup("1"); + } + if (!bp->active) { + bp->active = true; + buf = pstrdup("0"); + } else { + buf = pstrdup("1"); + } + } + debug_server_send_msg(debug, buf, strlen(buf)); + pfree(buf); + (void)MemoryContextSwitchTo(old_context); +} + +static void debug_server_disable_breakpoint(DebugInfo* debug) +{ + /* Client guarantees the index to be positive */ + MemoryContext old_context = MemoryContextSwitchTo(debug->debug_cxt); + + /* Received buffer will be in the form of */ + int bpIndex = pg_strtoint32(debug->comm->rec_buffer); + char* buf = NULL; + + if (bpIndex >= list_length(debug->bp_list)) { + buf = pstrdup("1"); + } else { + PLDebug_breakPoint* bp = (PLDebug_breakPoint*)list_nth(debug->bp_list, bpIndex); + if (bp->deleted) { + buf = pstrdup("1"); + } if (bp->active) { bp->active = false; buf = pstrdup("0"); @@ -902,6 +1104,7 @@ static void debug_server_delete_breakpoint(DebugInfo* debug) } } debug_server_send_msg(debug, buf, strlen(buf)); + pfree(buf); (void)MemoryContextSwitchTo(old_context); } @@ -911,7 +1114,7 @@ static void debug_server_info_breakpoint(DebugInfo* debug) ListCell* lc = NULL; foreach(lc, debug->bp_list) { PLDebug_breakPoint* bp = (PLDebug_breakPoint*)lfirst(lc); - if (bp->active) { + if (!bp->deleted) { activeBreakPoints = lappend(activeBreakPoints, bp); } } @@ -924,10 +1127,7 @@ static void debug_server_info_breakpoint(DebugInfo* debug) PLDebug_frame* get_frame(DebugInfo* debug) { - PLDebug_frame* frame = (PLDebug_frame*)makeNode(PLDebug_frame); - Assert(debug->func != NULL); - Assert(debug->cur_stmt != NULL); - if (debug->func == NULL || debug->cur_stmt == NULL) { + if (debug == NULL || debug->func == NULL || debug->cur_stmt == NULL) { ereport(ERROR, (errmodule(MOD_PLDEBUGGER), errcode(ERRCODE_UNEXPECTED_NULL_VALUE), errmsg("Server debug info contains unexpected NULL value"), @@ -935,10 +1135,20 @@ PLDebug_frame* get_frame(DebugInfo* debug) errcause("Debugger info on current stack is not properly initialized."), erraction("Contact Huawei Engineer."))); } + PLDebug_frame* frame = (PLDebug_frame*)makeNode(PLDebug_frame); + char* funcname = get_func_name(debug->func->fn_oid); + char* pkgname = NULL; + Oid pkgoid = debug->func->pkg_oid; + if (pkgoid != InvalidOid) { + NameData* pkgName = GetPackageName(pkgoid); + pkgname = NameStr(*pkgName); + } frame->frameno = debug->debugStackIdx; - frame->funcname = get_func_name(debug->func->fn_oid); + frame->funcname = quote_qualified_identifier(pkgname, funcname); frame->lineno = debug->cur_stmt->lineno; frame->query = get_stmt_query(debug->cur_stmt); + frame->funcoid = debug->func->fn_oid; + pfree(funcname); return frame; } @@ -960,6 +1170,156 @@ static void debug_server_backtrace() pfree(buf); } +static PLpgSQL_expr* ConstructAssignExpr(char* value, PLpgSQL_nsitem* ns_top) +{ + StringInfoData str; + initStringInfo(&str); + appendStringInfo(&str, "SELECT %s", value); + PLpgSQL_expr* expr = (PLpgSQL_expr*)palloc0(sizeof(PLpgSQL_expr)); + expr->dtype = PLPGSQL_DTYPE_EXPR; + expr->query = pstrdup(str.data); + expr->ns = ns_top; + expr->dno = -1; + expr->idx = -1; + pfree(str.data); + return expr; +} + +PLpgSQL_datum* GetDatumByVarname(PLpgSQL_execstate* estate, const char* varName, bool* foundCursor, bool* foundConst) +{ + for (int i = 0; i < estate->ndatums; ++i) { + bool isCursor = false; + bool isConst = false; + char* datumName = NULL; + PLpgSQL_variable* node = (PLpgSQL_variable*)estate->datums[i]; + switch(node->dtype) { + case PLPGSQL_DTYPE_VAR: { + PLpgSQL_var* var = (PLpgSQL_var*)node; + datumName = var->varname == NULL ? var->refname : var->varname; + if (var->datatype != NULL && var->datatype->typoid == REFCURSOROID) { + isCursor = true; + } else if (var->isconst) { + isConst = true; + } + break; + } + case PLPGSQL_DTYPE_ROW: + case PLPGSQL_DTYPE_RECORD: { + PLpgSQL_row* row = (PLpgSQL_row*)node; + datumName = row->varname == NULL ? row->refname : row->varname; + break; + } + case PLPGSQL_DTYPE_REC: { + PLpgSQL_rec* rec = (PLpgSQL_rec*)node; + datumName = rec->varname == NULL ? rec->refname : rec->varname; + break; + } + default: + break; + } + if (datumName == NULL) { + continue; + } + if (strcmp(varName, datumName) == 0) { + if (isCursor) { + *foundCursor = true; + return NULL; + } else if (isConst) { + *foundConst = true; + return NULL; + } + return (PLpgSQL_datum*)node; + } + } + return NULL; +} + +static void debug_server_set_variable(DebugInfo* debug, PLpgSQL_execstate* estate) +{ + MemoryContext func_context = MemoryContextSwitchTo(debug->debug_cxt); + + /* Received buffer will be in the form of */ + char* psave = NULL; + char* fir = strtok_r(debug->comm->rec_buffer, ":", &psave); + char* varname = TrimStr(fir); + if (varname == NULL) { + ereport(ERROR, + (errmodule(MOD_PLDEBUGGER), errcode(ERRCODE_UNEXPECTED_NULL_VALUE), + errmsg("Get null pointer for variable name"), + errdetail("message received: %s", debug->comm->rec_buffer), + errcause("internal error, invalid debugger message."), + erraction("Contact Huawei Engineer."))); + } + fir = psave; + char* value = TrimStr(fir); + StringInfoData str; + initStringInfo(&str); + + bool foundCursor = false; + bool foundConst = false; + PLpgSQL_datum* targetDatum = GetDatumByVarname(estate, varname, &foundCursor, &foundConst); + + if (targetDatum == NULL) { + if (foundCursor) { + appendStringInfo(&str, "%d:", DEBUG_SERVER_SET_CURSOR); + } else if (foundConst) { + appendStringInfo(&str, "%d:", DEBUG_SERVER_SET_CONST); + } else { + appendStringInfo(&str, "%d:", DEBUG_SERVER_SET_NO_VAR); + } + + debug_server_send_msg(u_sess->plsql_cxt.cur_debug_server, str.data, strlen(str.data)); + (void)MemoryContextSwitchTo(func_context); + pfree(str.data); + return; + } + + PLpgSQL_expr* expr = ConstructAssignExpr(value, debug->func->ns_top); + + ResourceOwner oldowner = t_thrd.utils_cxt.CurrentResourceOwner; + /* Try to execute the assignment */ + BeginInternalSubTransaction(NULL); + (void)MemoryContextSwitchTo(func_context); + PG_TRY(); + { + /* Expr for set_var should only contain one query statement */ + List* parsetrees = pg_parse_query(expr->query); + if (list_length(parsetrees) != 1) { + appendStringInfo(&str, "%d:%s", DEBUG_SERVER_SET_EXEC_FAILURE, "invalid value for set_var"); + debug_server_send_msg(u_sess->plsql_cxt.cur_debug_server, str.data, strlen(str.data)); + pfree(str.data); + list_free_deep(parsetrees); + ReleaseCurrentSubTransaction(); + func_context = MemoryContextSwitchTo(debug->debug_cxt); + t_thrd.utils_cxt.CurrentResourceOwner = oldowner; + return; + } + exec_assign_expr(estate, targetDatum, expr); + /* Commit the inner transaction and return to the outer context */ + ReleaseCurrentSubTransaction(); + func_context = MemoryContextSwitchTo(debug->debug_cxt); + t_thrd.utils_cxt.CurrentResourceOwner = oldowner; + SPI_restore_connection(); + appendStringInfo(&str, "%d:", DEBUG_SERVER_SUCCESS); + } + PG_CATCH(); + { + /* Abort the inner transaction, flush error and return to the outer context. */ + func_context = MemoryContextSwitchTo(debug->debug_cxt); + ErrorData* edata = &t_thrd.log_cxt.errordata[t_thrd.log_cxt.errordata_stack_depth]; + appendStringInfo(&str, "%d:%s", DEBUG_SERVER_SET_EXEC_FAILURE, edata->message); + FlushErrorState(); + RollbackAndReleaseCurrentSubTransaction(); + (void)MemoryContextSwitchTo(debug->debug_cxt); + t_thrd.utils_cxt.CurrentResourceOwner = oldowner; + SPI_restore_connection(); + } + PG_END_TRY(); + + debug_server_send_msg(u_sess->plsql_cxt.cur_debug_server, str.data, strlen(str.data)); + pfree(str.data); +} + PlDebugEntry* has_debug_func(Oid key, bool* found) { if ((u_sess->plsql_cxt.debug_proc_htbl == NULL)) { @@ -1008,7 +1368,6 @@ void ReleaseDebugCommIdx(int idx) comm->clientId = 0; comm->bufLen = 0; comm->bufSize = 0; - comm->startPos = 0; debuglock.unLock(); /* release debug comm */ (void)LWLockAcquire(PldebugLock, LW_EXCLUSIVE); @@ -1033,11 +1392,10 @@ int GetValidDebugCommIdx() comm->hasServerErrorOccured = false; comm->hasClientErrorOccured = false; comm->isProcdeureRunning = false; - comm->serverId = u_sess->session_id; + comm->serverId = ENABLE_THREAD_POOL ? u_sess->session_id : t_thrd.proc_cxt.MyProcPid; comm->clientId = 0; comm->bufLen = 0; comm->bufSize = 0; - comm->startPos = 0; comm->buffer = NULL; /* init buffer when need use it */ idx = i; break; @@ -1072,33 +1430,45 @@ bool WakeUpReceiver(int commIdx, bool isClient) pthread_mutex_unlock(&debug_comm->mutex); return succ; } - -void WaitSendMsg(int commIdx, bool isClient) +/* get msg from global comm buffer, copy into local buffer */ +void WaitSendMsg(int commIdx, bool isClient, char** destBuffer, int* destLen) { + int rc = 0; PlDebuggerComm* debug_comm = &g_instance.pldebug_cxt.debug_comm[commIdx]; pthread_mutex_lock(&debug_comm->mutex); PG_TRY(); { struct timespec time_to_wait; long cur_time = 1; - clock_gettime(CLOCK_REALTIME, &time_to_wait); if (isClient) { + /* server wait for client msg */ debug_comm->IsServerWaited = true; while (debug_comm->hasClientFlushed == false) { - time_to_wait.tv_sec += cur_time; CHECK_FOR_INTERRUPTS(); - if (cur_time >= DEBUG_SOCKET_TIMEOUT) { + if (cur_time >= u_sess->attr.attr_sql.pldebugger_timeout) { ereport(ERROR, (errmodule(MOD_PLDEBUGGER), errcode(ERRCODE_PLDEBUGGER_TIMEOUT), - errmsg("Client accept message wait timeout, max wait time 15 min."), + errmsg("Client accept message wait timeout, max wait time %d seconds.", + u_sess->attr.attr_sql.pldebugger_timeout), errdetail("N/A"), errcause("Debug client wait for server msg timeout."), erraction("Debug server should send to client msg in time."))); } + clock_gettime(CLOCK_REALTIME, &time_to_wait); + time_to_wait.tv_sec += 1; pthread_cond_timedwait(&debug_comm->cond, &debug_comm->mutex, &time_to_wait); cur_time += 1; } debug_comm->IsServerWaited = false; + /* save msg */ + *destBuffer = ResizeDebugBufferIfNecessary(*destBuffer, destLen, debug_comm->bufSize); + rc = memcpy_s(*destBuffer, *destLen, debug_comm->buffer, debug_comm->bufLen); + securec_check(rc, "\0", "\0"); + /* reset buf msg */ + rc = memset_s(debug_comm->buffer, debug_comm->bufLen, 0, debug_comm->bufLen); + securec_check(rc, "\0", "\0"); + debug_comm->bufLen = 0; + debug_comm->hasClientFlushed = false; if (debug_comm->hasClientErrorOccured) { ereport(ERROR, (errmodule(MOD_PLDEBUGGER), errmsg("Debug client has some error occured."))); @@ -1107,20 +1477,31 @@ void WaitSendMsg(int commIdx, bool isClient) /* client wait for server msg */ debug_comm->IsClientWaited = true; while (debug_comm->hasServerFlushed == false) { - time_to_wait.tv_sec += cur_time; CHECK_FOR_INTERRUPTS(); - if (cur_time >= DEBUG_SOCKET_TIMEOUT) { + if (cur_time >= u_sess->attr.attr_sql.pldebugger_timeout) { ereport(ERROR, (errmodule(MOD_PLDEBUGGER), errcode(ERRCODE_PLDEBUGGER_TIMEOUT), - errmsg("Server accept message wait timeout, max wait time 15 min."), + errmsg("Server accept message wait timeout, max wait time %d seconds.", + u_sess->attr.attr_sql.pldebugger_timeout), errdetail("N/A"), errcause("Debug server wait for client msg timeout."), erraction("Debug client should send to server msg in time."))); } + clock_gettime(CLOCK_REALTIME, &time_to_wait); + time_to_wait.tv_sec += 1; pthread_cond_timedwait(&debug_comm->cond, &debug_comm->mutex, &time_to_wait); cur_time += 1; } debug_comm->IsClientWaited = false; + /* save msg */ + *destBuffer = ResizeDebugBufferIfNecessary(*destBuffer, destLen, debug_comm->bufSize); + rc = memcpy_s(*destBuffer, *destLen, debug_comm->buffer, debug_comm->bufLen); + securec_check(rc, "\0", "\0"); + /* reset buf msg */ + rc = memset_s(debug_comm->buffer, debug_comm->bufLen, 0, debug_comm->bufLen); + securec_check(rc, "\0", "\0"); + debug_comm->bufLen = 0; + debug_comm->hasServerFlushed = false; if (debug_comm->hasServerErrorOccured) { ereport(ERROR, (errmodule(MOD_PLDEBUGGER), errmsg("Debug server has some error occured."))); @@ -1144,22 +1525,6 @@ void WaitSendMsg(int commIdx, bool isClient) PG_END_TRY(); } -/* temp file for unix socket in same process, no need to use absolute path */ -char* GetDebugTempFilePath(int idx, bool is_server) -{ - const int pathLen = 128 * sizeof(char); - char* debugfilepath = (char*)palloc0(pathLen); - int rc = 0; - - if (is_server) { - rc = snprintf_s(debugfilepath, pathLen, pathLen - 1, "%s/debugserver_%d", PG_DEBUG_FILES_DIR, idx); - } else { - rc = snprintf_s(debugfilepath, pathLen, pathLen - 1, "%s/debugclient_%d", PG_DEBUG_FILES_DIR, idx); - } - securec_check_ss(rc, "", ""); - return debugfilepath; -} - /* msg send & receive for server thread */ static void PrintDebugBuffer(const char *buffer, int len) { @@ -1202,17 +1567,25 @@ static void PrintDebugBuffer(const char *buffer, int len) return; } -/* Only execute SendUnixMsg & RecvUnixMsg when get PlDebuggerComm lock */ -void SendUnixMsg(int comm_idx, const char* val, int len) +/* Send msg into global comm buffer */ +void SendUnixMsg(int comm_idx, const char* val, int len, bool is_client) { ereport(DEBUG3, (errmodule(MOD_PLDEBUGGER), errmsg("send len %d", len))); if (len <= 0) return; - /* set time out & memory context */ PlDebuggerComm* debug_comm = &g_instance.pldebug_cxt.debug_comm[comm_idx]; + /* lock */ + (void)MemoryContextSwitchTo(g_instance.pldebug_cxt.PldebuggerCxt); + AutoMutexLock debuglock(&debug_comm->mutex); + debuglock.lock(); Assert(debug_comm->Used()); - /* lock entry*/ - Assert(debug_comm->startPos == 0); + if (is_client) { + Assert(debug_comm->hasClientFlushed == false); + debug_comm->hasClientFlushed = false; + } else { + Assert(debug_comm->hasServerFlushed == false); + debug_comm->hasServerFlushed = false; + } Assert(debug_comm->bufLen == 0); /* resize */ debug_comm->buffer = ResizeDebugCommBufferIfNecessary(debug_comm->buffer, &debug_comm->bufSize, len); @@ -1221,29 +1594,26 @@ void SendUnixMsg(int comm_idx, const char* val, int len) rc = memcpy_s(debug_comm->buffer, debug_comm->bufSize, val, len); securec_check(rc, "\0", "\0"); debug_comm->bufLen += len; + /* unlock */ + debuglock.unLock(); PrintDebugBuffer(val, len); } -void RecvUnixMsg(int comm_idx, char* copyBuffer, int len) +/* Get msg from copyed buffer. No need to get lock */ +void RecvUnixMsg(const char* buf, int bufLen, char* destBuf, int destLen) { - ereport(DEBUG3, (errmodule(MOD_PLDEBUGGER), errmsg("recv len: %d", len))); - if (len <= 0) + ereport(DEBUG3, (errmodule(MOD_PLDEBUGGER), errmsg("recv len: %d", destLen))); + if (destLen <= 0) return; - PlDebuggerComm* debug_comm = &g_instance.pldebug_cxt.debug_comm[comm_idx]; - Assert(debug_comm->Used()); + if (bufLen < destLen) { + ereport(ERROR, (errmodule(MOD_PLDEBUGGER), + errmsg("need len: %d, but only get buffer len:%d", destLen, bufLen))); + } /* copy buffer */ int rc = 0; - rc = memcpy_s(copyBuffer, len, debug_comm->buffer + debug_comm->startPos, len); + rc = memcpy_s(destBuf, destLen, buf, destLen); securec_check(rc, "\0", "\0"); - debug_comm->startPos += len; - /* received, reset buffer to receive new buffer */ - if (debug_comm->startPos >= debug_comm->bufLen) { - rc = memset_s(debug_comm->buffer, debug_comm->bufLen, 0, debug_comm->bufLen); - securec_check(rc, "\0", "\0"); - debug_comm->startPos = 0; - debug_comm->bufLen = 0; - } - PrintDebugBuffer(copyBuffer, len); + PrintDebugBuffer(destBuf, destLen); } /* buffer contains : buffer size + buffer msg */ @@ -1269,16 +1639,7 @@ static void debug_server_send_msg(DebugInfo* debug, const char* msg, int msg_len (void)MemoryContextSwitchTo(old_context); CHECK_DEBUG_COMM_VALID(sock->comm_idx); - PlDebuggerComm* debug_comm = &g_instance.pldebug_cxt.debug_comm[debug->comm->comm_idx]; - (void)MemoryContextSwitchTo(g_instance.pldebug_cxt.PldebuggerCxt); - /* lock */ - AutoMutexLock debuglock(&debug_comm->mutex); - debuglock.lock(); - Assert(debug_comm->hasServerFlushed == false); - debug_comm->hasServerFlushed = false; - SendUnixMsg(sock->comm_idx, sock->send_buffer, sock->send_ptr); - /* unlock */ - debuglock.unLock(); + SendUnixMsg(sock->comm_idx, sock->send_buffer, sock->send_ptr, false); /* wake up client */ if (!WakeUpReceiver(debug->comm->comm_idx, false)) { ereport(ERROR, (errmodule(MOD_PLDEBUGGER), @@ -1290,30 +1651,27 @@ static void debug_server_send_msg(DebugInfo* debug, const char* msg, int msg_len static void debug_server_rec_msg(DebugInfo* debug, char* firstChar) { MemoryContext old_context = MemoryContextSwitchTo(debug->debug_cxt); - int len = 0; + char* copyBuf = NULL; + int copyLen = 0; + int copyPtr = 0; + int msgLen = 0; DebugInfoComm* comm = debug->comm; comm->rec_ptr = 0; CHECK_DEBUG_COMM_VALID(comm->comm_idx); - PlDebuggerComm* debug_comm = &g_instance.pldebug_cxt.debug_comm[comm->comm_idx]; - /* wait for client's msg */ - WaitSendMsg(comm->comm_idx, true); - /* lock */ - AutoMutexLock debuglock(&debug_comm->mutex); - debuglock.lock(); + /* wait for client's msg and copy into local buf */ + WaitSendMsg(comm->comm_idx, true, ©Buf, ©Len); /* first char */ - RecvUnixMsg(comm->comm_idx, firstChar, 1); + RecvUnixMsg(copyBuf + copyPtr, copyLen - copyPtr, firstChar, sizeof(char)); + copyPtr += sizeof(char); /* msg length */ - RecvUnixMsg(comm->comm_idx, (char*)&len, sizeof(int)); - comm->rec_buffer = ResizeDebugBufferIfNecessary(comm->rec_buffer, &(comm->rec_buf_len), len + 1); - RecvUnixMsg(comm->comm_idx, comm->rec_buffer, len); - comm->rec_ptr = len; - comm->rec_buffer[len] = '\0'; - /* flushed invalid */ - debug_comm->hasClientFlushed = false; - debug_comm->bufLen = 0; - debug_comm->startPos = 0; - /* unlock */ - debuglock.unLock(); + RecvUnixMsg(copyBuf + copyPtr, copyLen - copyPtr, (char*)&msgLen, sizeof(int)); + copyPtr += sizeof(int); + /* msg */ + comm->rec_buffer = ResizeDebugBufferIfNecessary(comm->rec_buffer, &(comm->rec_buf_len), msgLen + 1); + RecvUnixMsg(copyBuf + copyPtr, copyLen - copyPtr, comm->rec_buffer, msgLen); + comm->rec_ptr = msgLen; + comm->rec_buffer[msgLen] = '\0'; + pfree_ext(copyBuf); (void)MemoryContextSwitchTo(old_context); } @@ -1351,9 +1709,10 @@ static char* ResizeDebugCommBufferIfNecessary(char* buffer, int* oldSize, int ne /* resize buffer and clear buffer's msg */ char* ResizeDebugBufferIfNecessary(char* buffer, int* oldSize, int needSize) { - int rc = memset_s(buffer, *oldSize, 0, *oldSize); - securec_check(rc, "\0", "\0"); - + if (*oldSize > 0) { + int rc = memset_s(buffer, *oldSize, 0, *oldSize); + securec_check(rc, "\0", "\0"); + } if (needSize <= *oldSize) { return buffer; } diff --git a/src/common/pl/plpgsql/src/pl_debugger_api.cpp b/src/common/pl/plpgsql/src/pl_debugger_api.cpp index ac3601b31..8e17ddd83 100644 --- a/src/common/pl/plpgsql/src/pl_debugger_api.cpp +++ b/src/common/pl/plpgsql/src/pl_debugger_api.cpp @@ -1,5 +1,6 @@ /* ------------------------------------------------------------------------- * Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors * * openGauss is licensed under Mulan PSL v2. * You can use this software according to the terms and conditions of the Mulan PSL v2. @@ -51,11 +52,11 @@ typedef struct { Oid funcoid; } DebuggerServerInfo; - /* send/rec msg for client */ static void debug_client_rec_msg(DebugClientInfo* client); static void debug_client_send_msg(DebugClientInfo* client, char first_char, char* msg, int msg_len); +static Datum get_info_local_data(const char* var_name, const int frameno, FunctionCallInfo fcinfo, bool show_all); static Datum get_tuple_lineno_and_query(DebugClientInfo* client); static void InterfaceCheck(const char* funcname, bool needAttach = true); static PlDebugEntry* add_debug_func(Oid key); @@ -192,7 +193,8 @@ Datum debug_client_attatch(PG_FUNCTION_ARGS) pg_lltoa(commidx, buf); StringInfoData str; initStringInfo(&str); - appendStringInfo(&str, "%d:%lu", commidx, u_sess->session_id); + uint64 id = ENABLE_THREAD_POOL ? u_sess->session_id : t_thrd.proc_cxt.MyProcPid; + appendStringInfo(&str, "%d:%lu", commidx, id); /* send msg */ debug_client_send_msg(client, DEBUG_ATTACH_HEADER, str.data, str.len); /* wait for server msg */ @@ -208,70 +210,19 @@ Datum debug_client_attatch(PG_FUNCTION_ARGS) */ Datum debug_client_print_variables(PG_FUNCTION_ARGS) { - InterfaceCheck("print_var"); char* var_name = text_to_cstring(PG_GETARG_TEXT_PP(0)); + return get_info_local_data(var_name, 0, fcinfo, false); +} - const int DEBUG_LOCAL_VAR_TUPLE_ATTR_NUM = 4; - - FuncCallContext *funcctx = NULL; - MemoryContext oldcontext; - - /* stuff done only on the first call of the function */ - if (SRF_IS_FIRSTCALL()) { - TupleDesc tupdesc; - - /* create a function context for cross-call persistence */ - funcctx = SRF_FIRSTCALL_INIT(); - - /* - * switch to memory context appropriate for multiple function - * calls - */ - oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx); - - /* need a tuple descriptor representing 4 columns */ - tupdesc = CreateTemplateTupleDesc(DEBUG_LOCAL_VAR_TUPLE_ATTR_NUM, false, TAM_HEAP); - int i = 0; - TupleDescInitEntry(tupdesc, (AttrNumber) ++i, "varname", TEXTOID, -1, 0); - TupleDescInitEntry(tupdesc, (AttrNumber) ++i, "vartype", TEXTOID, -1, 0); - TupleDescInitEntry(tupdesc, (AttrNumber) ++i, "value", TEXTOID, -1, 0); - TupleDescInitEntry(tupdesc, (AttrNumber) ++i, "package_name", TEXTOID, -1, 0); - - funcctx->tuple_desc = BlessTupleDesc(tupdesc); - - /* send msg & receive local variables from debug server */ - debug_client_send_msg(u_sess->plsql_cxt.debug_client, DEBUG_PRINT_HEADER, var_name, strlen(var_name)); - debug_client_rec_msg(u_sess->plsql_cxt.debug_client); - - /* total number of tuples to be returned */ - funcctx->user_fctx = debug_client_split_localvariables_msg(&(funcctx->max_calls)); - (void)MemoryContextSwitchTo(oldcontext); - } - - /* stuff done on every call of the function */ - funcctx = SRF_PERCALL_SETUP(); - if (funcctx->user_fctx && funcctx->call_cntr < funcctx->max_calls) { /* do when there is more left to send */ - Datum values[DEBUG_LOCAL_VAR_TUPLE_ATTR_NUM]; - bool nulls[DEBUG_LOCAL_VAR_TUPLE_ATTR_NUM]; - HeapTuple tuple; - - errno_t rc = 0; - rc = memset_s(values, sizeof(values), 0, sizeof(values)); - securec_check(rc, "\0", "\0"); - rc = memset_s(nulls, sizeof(nulls), 0, sizeof(nulls)); - securec_check(rc, "\0", "\0"); - - PLDebug_variable* entry = (PLDebug_variable*)funcctx->user_fctx + funcctx->call_cntr; - - int i = 0; - values[i++] = CStringGetTextDatum(entry->name); - values[i++] = CStringGetTextDatum(entry->var_type); - values[i++] = CStringGetTextDatum(entry->value); - values[i++] = CStringGetTextDatum(""); - tuple = heap_form_tuple(funcctx->tuple_desc, values, nulls); - SRF_RETURN_NEXT(funcctx, HeapTupleGetDatum(tuple)); - } - SRF_RETURN_DONE(funcctx); +/* + * dbe_pldebugger.print_var + * print the type and value of the given variable at given stack depth + */ +Datum debug_client_print_variables_frame(PG_FUNCTION_ARGS) +{ + char* var_name = text_to_cstring(PG_GETARG_TEXT_PP(0)); + int frameno = PG_GETARG_INT32(1); + return get_info_local_data(var_name, frameno, fcinfo, false); } /* @@ -279,9 +230,25 @@ Datum debug_client_print_variables(PG_FUNCTION_ARGS) * print the type and value of the all variables at current stack depth */ Datum debug_client_local_variables(PG_FUNCTION_ARGS) +{ + return get_info_local_data(DEFAULT_UNKNOWN_VALUE, 0, fcinfo, true); +} + +/* + * dbe_pldebugger.info_locals + * print the type and value of the all variables at given stack depth + */ +Datum debug_client_local_variables_frame(PG_FUNCTION_ARGS) +{ + int frameno = PG_GETARG_INT32(0); + return get_info_local_data(DEFAULT_UNKNOWN_VALUE, frameno, fcinfo, true); +} + +static Datum get_info_local_data(const char* var_name, const int frameno, FunctionCallInfo fcinfo, bool show_all) { InterfaceCheck("info_locals"); - const int DEBUG_LOCAL_VAR_TUPLE_ATTR_NUM = 4; + + const int DEBUG_LOCAL_VAR_TUPLE_ATTR_NUM = 5; FuncCallContext *funcctx = NULL; MemoryContext oldcontext; @@ -306,15 +273,27 @@ Datum debug_client_local_variables(PG_FUNCTION_ARGS) TupleDescInitEntry(tupdesc, (AttrNumber) ++i, "vartype", TEXTOID, -1, 0); TupleDescInitEntry(tupdesc, (AttrNumber) ++i, "value", TEXTOID, -1, 0); TupleDescInitEntry(tupdesc, (AttrNumber) ++i, "package_name", TEXTOID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber) ++i, "isconst", BOOLOID, -1, 0); funcctx->tuple_desc = BlessTupleDesc(tupdesc); + if (frameno < 0) { + ereport(WARNING, (errcode(ERRCODE_WARNING), + errmsg("frameno value must be positive"))); + funcctx->user_fctx = NULL; + funcctx->max_calls = 0; + } else { + /* send msg & receive local variables from debug server */ + StringInfoData str; + initStringInfo(&str); + appendStringInfo(&str, "%s:%d:%d", var_name, frameno, show_all ? 1 : 0); + debug_client_send_msg(u_sess->plsql_cxt.debug_client, DEBUG_LOCALS_HEADER, str.data, str.len); + pfree_ext(str.data); + debug_client_rec_msg(u_sess->plsql_cxt.debug_client); - /* send msg & receive local variables from debug server */ - debug_client_send_msg(u_sess->plsql_cxt.debug_client, DEBUG_LOCALS_HEADER, NULL, 0); - debug_client_rec_msg(u_sess->plsql_cxt.debug_client); + /* total number of tuples to be returned */ + funcctx->user_fctx = debug_client_split_localvariables_msg(&(funcctx->max_calls)); + } - /* total number of tuples to be returned */ - funcctx->user_fctx = debug_client_split_localvariables_msg(&(funcctx->max_calls)); (void)MemoryContextSwitchTo(oldcontext); } @@ -337,7 +316,8 @@ Datum debug_client_local_variables(PG_FUNCTION_ARGS) values[i++] = CStringGetTextDatum(entry->name); values[i++] = CStringGetTextDatum(entry->var_type); values[i++] = CStringGetTextDatum(entry->value); - values[i++] = CStringGetTextDatum(""); + values[i++] = CStringGetTextDatum(entry->pkgname); + values[i++] = BoolGetDatum(entry->isconst); tuple = heap_form_tuple(funcctx->tuple_desc, values, nulls); SRF_RETURN_NEXT(funcctx, HeapTupleGetDatum(tuple)); } @@ -455,6 +435,19 @@ Datum debug_client_continue(PG_FUNCTION_ARGS) return get_tuple_lineno_and_query(client); } +/* + * dbe_pldebugger.finish + * execute until next breakpoint or upper stack + */ +Datum debug_client_finish(PG_FUNCTION_ARGS) +{ + InterfaceCheck("finish"); + DebugClientInfo* client = u_sess->plsql_cxt.debug_client; + debug_client_send_msg(u_sess->plsql_cxt.debug_client, DEBUG_FINISH_HEADER, NULL, 0); + debug_client_rec_msg(u_sess->plsql_cxt.debug_client); + return get_tuple_lineno_and_query(client); +} + /* * dbe_pldebugger.add_breakpoint * add a new breakpoint @@ -493,6 +486,11 @@ Datum debug_client_add_breakpoint(PG_FUNCTION_ARGS) debug_client_rec_msg(client); int32 ans = pg_strtoint32(client->rec_buffer); pfree(lines); + if (ans == -1) { + ereport(WARNING, (errcode(ERRCODE_WARNING), + errmsg("the given line number already contains a valid breakpoint." + " Please se dbe_pldebugger.info_breakpoints for detail."))); + } PG_RETURN_INT32(ans); } @@ -532,6 +530,78 @@ error: PG_RETURN_NULL(); } +/* + * dbe_pldebugger.enable_breakpoint + * enable a existed breakpoint + */ +Datum debug_client_enable_breakpoint(PG_FUNCTION_ARGS) +{ + InterfaceCheck("enable_breakpoint"); + int32 bpIndex = PG_GETARG_INT32(0); + int32 ans = 0; + DebugClientInfo* client = u_sess->plsql_cxt.debug_client; + if (bpIndex < 0) { + goto error; + } + + StringInfoData str; + initStringInfo(&str); + appendStringInfo(&str, "%d", bpIndex); + debug_client_send_msg(client, DEBUG_ENABLEBREAKPOINT_HEADER, str.data, str.len); + debug_client_rec_msg(client); + ans = pg_strtoint32(client->rec_buffer); + if (ans != 0) { + goto error; + } + pfree(str.data); + PG_RETURN_BOOL(true); + +error: + ereport(ERROR, + (errmodule(MOD_PLDEBUGGER), errcode(ERRCODE_AMBIGUOUS_PARAMETER), + errmsg("invalid break point index"), + errdetail("the given index is either outside the range or already enabled"), + errcause("try to enable a breakpoint that's already enabled"), + erraction("use dbe_pldebugger.info_breakpoints() to show all breakpoints"))); + PG_RETURN_NULL(); +} + +/* + * dbe_pldebugger.disable_breakpoint + * disable a existed breakpoint + */ +Datum debug_client_disable_breakpoint(PG_FUNCTION_ARGS) +{ + InterfaceCheck("disable_breakpoint"); + int32 bpIndex = PG_GETARG_INT32(0); + int32 ans = 0; + DebugClientInfo* client = u_sess->plsql_cxt.debug_client; + if (bpIndex < 0) { + goto error; + } + + StringInfoData str; + initStringInfo(&str); + appendStringInfo(&str, "%d", bpIndex); + debug_client_send_msg(client, DEBUG_DISABLEBREAKPOINT_HEADER, str.data, str.len); + debug_client_rec_msg(client); + ans = pg_strtoint32(client->rec_buffer); + if (ans != 0) { + goto error; + } + pfree(str.data); + PG_RETURN_BOOL(true); + +error: + ereport(ERROR, + (errmodule(MOD_PLDEBUGGER), errcode(ERRCODE_AMBIGUOUS_PARAMETER), + errmsg("invalid break point index"), + errdetail("the given index is either outside the range or already disabled"), + errcause("try to disabled a breakpoint that's already disabled"), + erraction("use dbe_pldebugger.info_breakpoints() to show all breakpoints"))); + PG_RETURN_NULL(); +} + /* * dbe_pldebugger.info_breakpoints * show all active breakpoints @@ -539,7 +609,7 @@ error: Datum debug_client_info_breakpoints(PG_FUNCTION_ARGS) { InterfaceCheck("info_breakpoints"); - const int DEBUG_INFO_BP_TUPLE_ATTR_NUM = 4; + const int DEBUG_INFO_BP_TUPLE_ATTR_NUM = 5; FuncCallContext *funcctx = NULL; MemoryContext oldcontext; @@ -564,6 +634,8 @@ Datum debug_client_info_breakpoints(PG_FUNCTION_ARGS) TupleDescInitEntry(tupdesc, (AttrNumber) ++i, "funcoid", OIDOID, -1, 0); TupleDescInitEntry(tupdesc, (AttrNumber) ++i, "lineno", INT4OID, -1, 0); TupleDescInitEntry(tupdesc, (AttrNumber) ++i, "query", TEXTOID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber) ++i, "enable", BOOLOID, -1, 0); + funcctx->tuple_desc = BlessTupleDesc(tupdesc); @@ -600,6 +672,7 @@ Datum debug_client_info_breakpoints(PG_FUNCTION_ARGS) } else { values[i++] = CStringGetTextDatum(entry->query); } + values[i++] = BoolGetDatum(entry->active); tuple = heap_form_tuple(funcctx->tuple_desc, values, nulls); SRF_RETURN_NEXT(funcctx, HeapTupleGetDatum(tuple)); } @@ -609,6 +682,14 @@ Datum debug_client_info_breakpoints(PG_FUNCTION_ARGS) static void* debug_client_split_localvariables_msg(uint32* num) { char* msg = u_sess->plsql_cxt.debug_client->rec_buffer; + if (msg[0] - '0' == DEBUG_SERVER_PRINT_VAR_FRAMENO_EXCEED) { + ereport(WARNING, (errcode(ERRCODE_WARNING), + errmsg("Frame number exceeds current stack depth." + " Please use dbe_pldebugger.backtrace for depth info."))); + *num = 0; + return NULL; + } + Node* ret = (Node*)stringToNode(msg); if (ret == NULL || !(IsA(ret, List))) { *num = 0; @@ -632,6 +713,14 @@ static void* debug_client_split_localvariables_msg(uint32* num) variable->name = AssignStr(var->name); variable->var_type = AssignStr(var->var_type); variable->value = AssignStr(var->value); + if (var->pkgname != NULL) { + variable->pkgname = AssignStr(var->pkgname); + } else { + variable->pkgname = pstrdup(""); + } + + + variable->isconst = var->isconst; index++; } *num = length; @@ -650,7 +739,7 @@ error: Datum debug_client_backtrace(PG_FUNCTION_ARGS) { InterfaceCheck("backtrace"); - const int DEBUG_BACKTRACE_ATTR_NUM = 4; + const int DEBUG_BACKTRACE_ATTR_NUM = 5; FuncCallContext *funcctx = NULL; MemoryContext oldcontext; @@ -674,6 +763,7 @@ Datum debug_client_backtrace(PG_FUNCTION_ARGS) TupleDescInitEntry(tupdesc, (AttrNumber) ++i, "funcname", TEXTOID, -1, 0); TupleDescInitEntry(tupdesc, (AttrNumber) ++i, "lineno", INT4OID, -1, 0); TupleDescInitEntry(tupdesc, (AttrNumber) ++i, "query", TEXTOID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber) ++i, "funcoid", OIDOID, -1, 0); funcctx->tuple_desc = BlessTupleDesc(tupdesc); /* send msg & receive backtrace from debug server */ @@ -706,6 +796,7 @@ Datum debug_client_backtrace(PG_FUNCTION_ARGS) values[i++] = CStringGetTextDatum(entry->funcname); values[i++] = Int32GetDatum(entry->lineno); values[i++] = CStringGetTextDatum(entry->query); + values[i++] = ObjectIdGetDatum((Oid)entry->funcoid); tuple = heap_form_tuple(funcctx->tuple_desc, values, nulls); SRF_RETURN_NEXT(funcctx, HeapTupleGetDatum(tuple)); } @@ -828,6 +919,52 @@ Datum debug_server_turn_off(PG_FUNCTION_ARGS) PG_RETURN_BOOL(delete_debug_func(funcOid)); } +/* + * dbe_pldebugger.set_var + * assign new value to a given variable + */ +Datum debug_client_set_variable(PG_FUNCTION_ARGS) +{ + InterfaceCheck("set_variable", true); + char* varname = text_to_cstring(PG_GETARG_TEXT_PP(0)); + char* value = text_to_cstring(PG_GETARG_TEXT_PP(1)); + DebugClientInfo* client = u_sess->plsql_cxt.debug_client; + StringInfoData str; + initStringInfo(&str); + appendStringInfo(&str, "%s:%s", varname, value); + debug_client_send_msg(client, DEBUG_SET_VARIABLE_HEADER, str.data, str.len); + debug_client_rec_msg(client); + int32 ans = client->rec_buffer[0] - '0'; + bool ret = false; + switch (ans) { + case DEBUG_SERVER_SET_NO_VAR: + ret = false; + ereport(WARNING, (errmodule(MOD_PLDEBUGGER), + errmsg("Variable cannot be found on current frame"))); + break; + case DEBUG_SERVER_SET_EXEC_FAILURE: + ret = false; + ereport(WARNING, (errmodule(MOD_PLDEBUGGER), + errmsg("Exception occurs when trying to set variable: %s", client->rec_buffer + 2))); + break; + case DEBUG_SERVER_SET_CURSOR: + ret = false; + ereport(WARNING, (errmodule(MOD_PLDEBUGGER), + errmsg("Not allowed to directly set value for recursor variables"))); + break; + case DEBUG_SERVER_SET_CONST: + ret = false; + ereport(WARNING, (errmodule(MOD_PLDEBUGGER), + errmsg("Not allowed to set value for constant variables"))); + break; + default: + ret = true; + break; + } + pfree_ext(str.data); + PG_RETURN_BOOL(ret); +} + static void InterfaceCheck(const char* funcname, bool needAttach) { #ifdef ENABLE_MULTIPLE_NODES @@ -841,9 +978,16 @@ static void InterfaceCheck(const char* funcname, bool needAttach) CHECK_DEBUG_COMM_VALID(commIdx); /* if current debug index is not myself during debug, clean up my self */ PlDebuggerComm* debug_comm = &g_instance.pldebug_cxt.debug_comm[commIdx]; - if (debug_comm->clientId != u_sess->session_id) { - clean_up_debug_client(); + DebugClientInfo* client = u_sess->plsql_cxt.debug_client; + AutoMutexLock debuglock(&debug_comm->mutex); + debuglock.lock(); + if ((debug_comm->clientId != u_sess->session_id && debug_comm->clientId != t_thrd.proc_cxt.MyProcPid) || + !debug_comm->isRunning()) { + client->comm_idx = -1; + MemoryContextDelete(client->context); + u_sess->plsql_cxt.debug_client = NULL; } + debuglock.unLock(); } if (needAttach && u_sess->plsql_cxt.debug_client == NULL) { ereport(ERROR, @@ -858,27 +1002,24 @@ static void InterfaceCheck(const char* funcname, bool needAttach) static void debug_client_rec_msg(DebugClientInfo* client) { CHECK_DEBUG_COMM_VALID(client->comm_idx); - PlDebuggerComm* debug_comm = &g_instance.pldebug_cxt.debug_comm[client->comm_idx]; MemoryContext old_context = MemoryContextSwitchTo(client->context); - int len = 0; + int msgLen = 0; + char* copyBuf = NULL; + int copyLen = 0; + int copyPtr = 0; client->rec_ptr = 0; - /* wait server's msg */ - WaitSendMsg(client->comm_idx, false); - /* lock */ - AutoMutexLock debuglock(&debug_comm->mutex); - debuglock.lock(); - RecvUnixMsg(client->comm_idx, (char*)&len, sizeof(int)); - client->rec_buffer = ResizeDebugBufferIfNecessary(client->rec_buffer, &client->rec_buf_len, len + 1); - RecvUnixMsg(client->comm_idx, client->rec_buffer, len); - client->rec_ptr = len; - client->rec_buffer[len] = '\0'; - /* flushed invalid */ - debug_comm->hasServerFlushed = false; - debug_comm->bufLen = 0; - Assert(debug_comm->startPos == 0); - /* unlock */ - debuglock.unLock(); + /* wait for client's msg and copy into local buf */ + WaitSendMsg(client->comm_idx, false, ©Buf, ©Len); + /* msg len */ + RecvUnixMsg(copyBuf + copyPtr, copyLen - copyPtr, (char*)&msgLen, sizeof(int)); + copyPtr += sizeof(int); + /* msg */ + client->rec_buffer = ResizeDebugBufferIfNecessary(client->rec_buffer, &client->rec_buf_len, msgLen + 1); + RecvUnixMsg(copyBuf + copyPtr, copyLen - copyPtr, client->rec_buffer, msgLen); + client->rec_ptr = msgLen; + client->rec_buffer[msgLen] = '\0'; + pfree_ext(copyBuf); (void)MemoryContextSwitchTo(old_context); } @@ -986,6 +1127,7 @@ static void* debug_client_split_breakpoints_msg(uint32* num) bp->funcoid = b->funcoid; bp->lineno = b->lineno; bp->query = pstrdup(b->query); + bp->active = b->active; index++; } *num = length; @@ -997,7 +1139,6 @@ error: return NULL; } - static void* debug_client_split_backtrace_msg(uint32* num) { char* msg = u_sess->plsql_cxt.debug_client->rec_buffer; @@ -1025,6 +1166,7 @@ static void* debug_client_split_backtrace_msg(uint32* num) frame->funcname = AssignStr(var->funcname); frame->lineno = var->lineno; frame->query = AssignStr(var->query); + frame->funcoid = var->funcoid; index++; } *num = length; @@ -1061,14 +1203,22 @@ static List* collect_breakable_line_oid(Oid funcOid) flinfo.fn_oid = funcOid; flinfo.fn_mcxt = CurrentMemoryContext; _PG_init(); + /* save flag for nest plpgsql compile */ + PLpgSQL_compile_context* save_compile_context = u_sess->plsql_cxt.curr_compile_context; + int save_compile_list_length = list_length(u_sess->plsql_cxt.compile_context_list); + int save_compile_status = u_sess->plsql_cxt.compile_status; PG_TRY(); { func = plpgsql_compile(&fake_fcinfo, true); } PG_CATCH(); { - u_sess->plsql_cxt.plpgsql_curr_compile = NULL; - u_sess->plsql_cxt.plpgsql_curr_compile_package = NULL; + ereport(DEBUG3, (errmodule(MOD_NEST_COMPILE), errcode(ERRCODE_LOG), + errmsg("%s clear curr_compile_context because of error.", __func__))); + /* reset nest plpgsql compile */ + u_sess->plsql_cxt.curr_compile_context = save_compile_context; + u_sess->plsql_cxt.compile_status = save_compile_status; + clearCompileContextList(save_compile_list_length); PG_RE_THROW(); } PG_END_TRY(); @@ -1151,16 +1301,7 @@ static void debug_client_send_msg(DebugClientInfo* client, char first_char, char (void)MemoryContextSwitchTo(old_context); CHECK_DEBUG_COMM_VALID(client->comm_idx); - PlDebuggerComm* debug_comm = &g_instance.pldebug_cxt.debug_comm[client->comm_idx]; - /* lock */ - (void)MemoryContextSwitchTo(g_instance.pldebug_cxt.PldebuggerCxt); - AutoMutexLock debuglock(&debug_comm->mutex); - debuglock.lock(); - Assert(debug_comm->hasClientFlushed == false); - debug_comm->hasClientFlushed = false; - SendUnixMsg(client->comm_idx, client->send_buffer, client->send_ptr); - /* unlock */ - debuglock.unLock(); + SendUnixMsg(client->comm_idx, client->send_buffer, client->send_ptr, true); /* wake up server */ if (!WakeUpReceiver(client->comm_idx, true)) { ereport(ERROR, (errmodule(MOD_PLDEBUGGER), @@ -1219,17 +1360,29 @@ static void collect_breakable_line_walker(const List* stmts, List** lines) return; } - ListCell* lc = NULL; - foreach (lc, stmts) { - PLpgSQL_stmt* stmt = (PLpgSQL_stmt*)lfirst(lc); + ListCell* lc1 = NULL; + foreach (lc1, stmts) { + PLpgSQL_stmt* stmt = (PLpgSQL_stmt*)lfirst(lc1); + if (stmt == NULL) { + continue; + } int lineno = stmt->lineno; - if (lineno != 0) { + if (lineno != 0 && stmt->cmd_type != PLPGSQL_STMT_GOTO) { *lines = lappend_int(*lines, lineno); } switch ((enum PLpgSQL_stmt_types)stmt->cmd_type) { - case PLPGSQL_STMT_BLOCK: - collect_breakable_line_walker(((PLpgSQL_stmt_block*)stmt)->body, lines); + case PLPGSQL_STMT_BLOCK: { + PLpgSQL_stmt_block* block = (PLpgSQL_stmt_block*)stmt; + collect_breakable_line_walker(block->body, lines); + if (block->exceptions != NULL) { + ListCell* lc2 = NULL; + foreach (lc2, block->exceptions->exc_list) { + PLpgSQL_exception* exception = (PLpgSQL_exception*)lfirst(lc2); + collect_breakable_line_walker(exception->action, lines); + } + } break; + } case PLPGSQL_STMT_IF: { PLpgSQL_stmt_if* if_stmt = (PLpgSQL_stmt_if*)stmt; diff --git a/src/common/pl/plpgsql/src/pl_exec.cpp b/src/common/pl/plpgsql/src/pl_exec.cpp index 1e6a3a36d..b2e55305f 100644 --- a/src/common/pl/plpgsql/src/pl_exec.cpp +++ b/src/common/pl/plpgsql/src/pl_exec.cpp @@ -5,6 +5,7 @@ * * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -14,6 +15,7 @@ */ #include "utils/plpgsql.h" +#include "utils/pl_package.h" #include @@ -40,6 +42,7 @@ #include "utils/array.h" #include "utils/builtins.h" #include "utils/datum.h" +#include "utils/fmgroids.h" #include "utils/lsyscache.h" #include "utils/memutils.h" #include "utils/portal.h" @@ -54,6 +57,7 @@ #include "pgxc/execRemote.h" #include "instruments/instr_unique_sql.h" #include "commands/sqladvisor.h" +#include "access/hash.h" extern bool checkRecompileCondition(CachedPlanSource* plansource); static const char* const raise_skip_msg = "RAISE"; @@ -87,6 +91,7 @@ typedef struct { typedef struct SimpleEcontextStackEntry { ExprContext* stack_econtext; /* a stacked econtext */ SubTransactionId xact_subxid; /* ID for current subxact */ + int64 statckEntryId; /* ID for current StackEntry */ struct SimpleEcontextStackEntry* next; /* next stack entry up */ } SimpleEcontextStackEntry; @@ -126,6 +131,8 @@ static int exec_stmt_raise(PLpgSQL_execstate* estate, PLpgSQL_stmt_raise* stmt); static int exec_stmt_execsql(PLpgSQL_execstate* estate, PLpgSQL_stmt_execsql* stmt); static int exec_stmt_dynexecute(PLpgSQL_execstate* estate, PLpgSQL_stmt_dynexecute* stmt); static int exec_stmt_transaction(PLpgSQL_execstate *estate, PLpgSQL_stmt* stmt); +static void exec_savepoint_rollback(PLpgSQL_execstate *estate, const char *spName); +static int exec_stmt_savepoint(PLpgSQL_execstate *estate, PLpgSQL_stmt* stmt); static int exchange_parameters( PLpgSQL_execstate* estate, PLpgSQL_stmt_dynexecute* dynstmt, List* stmts, int* ppdindex, int* datumindex); @@ -139,16 +146,16 @@ static bool exec_simple_check_node(Node* node); static void exec_simple_check_plan(PLpgSQL_expr* expr); static void exec_simple_recheck_plan(PLpgSQL_expr* expr, CachedPlan* cplan); static bool exec_eval_simple_expr( - PLpgSQL_execstate* estate, PLpgSQL_expr* expr, Datum* result, bool* isNull, Oid* rettype); + PLpgSQL_execstate* estate, PLpgSQL_expr* expr, Datum* result, bool* isNull, Oid* rettype, HTAB** tableOfIndex); -static void exec_assign_expr(PLpgSQL_execstate* estate, PLpgSQL_datum* target, PLpgSQL_expr* expr); static void exec_assign_c_string(PLpgSQL_execstate* estate, PLpgSQL_datum* target, const char* str); -void exec_assign_value(PLpgSQL_execstate* estate, PLpgSQL_datum* target, Datum value, Oid valtype, bool* isNull); -static void exec_eval_datum( - PLpgSQL_execstate* estate, PLpgSQL_datum* datum, Oid* typeId, int32* typetypmod, Datum* value, bool* isnull); +static void exec_eval_datum(PLpgSQL_execstate* estate, PLpgSQL_datum* datum, Oid* typeId, + int32* typetypmod, Datum* value, bool* isnull); static int exec_eval_integer(PLpgSQL_execstate* estate, PLpgSQL_expr* expr, bool* isNull); static bool exec_eval_boolean(PLpgSQL_execstate* estate, PLpgSQL_expr* expr, bool* isNull); -static Datum exec_eval_expr(PLpgSQL_execstate* estate, PLpgSQL_expr* expr, bool* isNull, Oid* rettype); +static Datum exec_eval_varchar(PLpgSQL_execstate* estate, PLpgSQL_expr* expr, bool* isNull); +static Datum exec_eval_expr(PLpgSQL_execstate* estate, PLpgSQL_expr* expr, bool* isNull, Oid* rettype, + HTAB** tableOfIndex = NULL); static int exec_run_select(PLpgSQL_execstate* estate, PLpgSQL_expr* expr, long maxtuples, Portal* portalP, bool isCollectParam = false); static int exec_for_query(PLpgSQL_execstate* estate, PLpgSQL_stmt_forq* stmt, Portal portal, bool prefetch_ok, int dno); @@ -156,6 +163,7 @@ static ParamListInfo setup_param_list(PLpgSQL_execstate* estate, PLpgSQL_expr* e static void plpgsql_param_fetch(ParamListInfo params, int paramid); static void exec_move_row( PLpgSQL_execstate* estate, PLpgSQL_rec* rec, PLpgSQL_row* row, HeapTuple tup, TupleDesc tupdesc); +static void exec_read_bulk_collect(PLpgSQL_execstate *estate, PLpgSQL_row *row, SPITupleTable *tuptab); static char* convert_value_to_string(PLpgSQL_execstate* estate, Datum value, Oid valtype); static Datum pl_coerce_type_typmod(Datum value, Oid targetTypeId, int32 targetTypMod); static Datum exec_cast_value(PLpgSQL_execstate* estate, Datum value, Oid valtype, Oid reqtype, FmgrInfo* reqinput, @@ -182,6 +190,7 @@ static void free_params_data(PreparedParamsData* ppd); static Portal exec_dynquery_with_params( PLpgSQL_execstate* estate, PLpgSQL_expr* dynquery, List* params, const char* portalname, int cursorOptions); static void exec_set_sqlcode(PLpgSQL_execstate* estate, int sqlcode); +static void exec_set_prev_sqlcode(PLpgSQL_execstate* estate, PLpgSQL_execstate* estate_prev); static int search_for_valid_line(PLpgSQL_stmt* stmt, int linenum, int); static int check_line_validity(List* stmts, int linenum, int); @@ -204,8 +213,40 @@ static void stp_check_transaction_and_set_resource_owner(ResourceOwner oldResour static void stp_check_transaction_and_create_econtext(PLpgSQL_execstate* estate,TransactionId oldTransactionId); static void RecordSetGeneratedField(PLpgSQL_rec *recNew); +static HTAB* evalSubscipts(PLpgSQL_execstate* estate, int nsubscripts, int pos, int* subscriptvals, + PLpgSQL_expr** subscripts, Oid subscriptType, HTAB* tableOfIndex); +static int insertTableOfIndexByDatumValue(TableOfIndexKey key, HTAB** tableOfIndex, PLpgSQL_var* var = NULL); +static void exec_assign_list(PLpgSQL_execstate* estate, PLpgSQL_datum* assigntarget, + const List* assignlist, Datum value, Oid valtype, bool* isNull); +static PLpgSQL_datum* get_indirect_target(PLpgSQL_execstate* estate, + PLpgSQL_datum* assigntarget, const char* attrname); +static void evalSubscriptList(PLpgSQL_execstate* estate, const List* subscripts, + int* subscriptvals, int nsubscripts, PLpgSQL_datum** target); +static PLpgSQL_temp_assignvar* build_temp_assignvar_from_datum(PLpgSQL_datum* target, + int* subscriptvals, int nsubscripts); +static PLpgSQL_temp_assignvar* extractArrayElem(PLpgSQL_execstate* estate, PLpgSQL_temp_assignvar* target, + int* subscriptvals, int nsubscripts); +static PLpgSQL_temp_assignvar* extractAttrValue(PLpgSQL_execstate* estate, PLpgSQL_temp_assignvar* target, + char* attrname); +static Datum formDatumFromTargetList(PLpgSQL_execstate* estate, DList* targetlist, + Datum value, Oid valtype, Oid* resultvaltype, bool* isNull); +static Datum formDatumFromAttrTarget(PLpgSQL_execstate* estate, const PLpgSQL_temp_assignvar* target, int attnum, + Datum value, Oid* valtype, bool* isNull); +static Datum formDatumFromArrayTarget(PLpgSQL_execstate* estate, const PLpgSQL_temp_assignvar* target, + int* subscriptvals, int nsubscripts, Datum value, Oid* resultvaltype, bool* isNull); + bool plpgsql_get_current_value_stp_with_exception(); void plpgsql_restore_current_value_stp_with_exception(bool saved_current_stp_with_exception); + +static int addNewNestedTable(PLpgSQL_execstate* estate, TableOfIndexKey key, PLpgSQL_var* base_table); +static PLpgSQL_var* evalSubsciptsNested(PLpgSQL_execstate* estate, PLpgSQL_var* tablevar, PLpgSQL_expr** subscripts, + int nsubscripts, int pos, int* subscriptvals, Oid subscriptType, HTAB* tableOfIndex); + +static PLpgSQL_row* copyPLpgsqlRow(PLpgSQL_row* src); +static PLpgSQL_type* copyPLpgsqlType(PLpgSQL_type* src); +static PLpgSQL_rec* copyPLpgsqlRec(PLpgSQL_rec* src); +static PLpgSQL_recfield* copyPLpgsqlRecfield(PLpgSQL_recfield* src); + /* ---------- * plpgsql_check_line_validity Called by the debugger plugin for * validating a given linenumber @@ -468,19 +509,18 @@ static char* AssembleAutomnousStatement(PLpgSQL_function* func, FunctionCallInfo appendStringInfo(&buf, "%s(", quote_qualified_identifier(NULL, proname)); isNull = false; + bool isNULL2 = false; Datum proAllArgTypes = SysCacheGetAttr(PROCOID, procTup, Anum_pg_proc_proallargtypes, &isNull); - if (!isNull) { + Datum proArgModes = SysCacheGetAttr(PROCOID, procTup, Anum_pg_proc_proargmodes, &isNULL2); + + if (!isNull && !isNULL2) { ArrayType* arr = DatumGetArrayTypeP(proAllArgTypes); /* ensure not toasted */ + ArrayType* arr2 = DatumGetArrayTypeP(proArgModes); /* ensure not toasted */ int allNumArgs = ARR_DIMS(arr)[0]; - if (ARR_NDIM(arr) != 1 || allNumArgs < 0 || ARR_HASNULL(arr) || ARR_ELEMTYPE(arr) != OIDOID) { - ReleaseSysCache(procTup); - ereport(ERROR, - (errcode(ERRCODE_ARRAY_SUBSCRIPT_ERROR), errmsg("proallargtypes is not a 1-D Oid array"))); - } + char* argmodes = (char*)ARR_DATA_PTR(arr2); Oid* argTypes = (Oid*)palloc(allNumArgs * sizeof(Oid)); errno_t rc = memcpy_s(argTypes, allNumArgs * sizeof(Oid), ARR_DATA_PTR(arr), allNumArgs * sizeof(Oid)); securec_check(rc, "\0", "\0"); - for (int i = 0; i < allNumArgs; i++) { if (argTypes[i] == REFCURSOROID) { pfree_ext(argTypes); @@ -488,15 +528,32 @@ static char* AssembleAutomnousStatement(PLpgSQL_function* func, FunctionCallInfo ereport(ERROR, (errmodule(MOD_PLSQL), errcode(ERRCODE_CACHE_LOOKUP_FAILED), errmsg("Un-support:ref_cursor parameter is not supported for autonomous transactions."))); } + if (argmodes[i] == PROARGMODE_IN || argmodes[i] == PROARGMODE_INOUT + || argmodes[i] == PROARGMODE_VARIADIC) { + if (i > 0) + appendStringInfoChar(&buf, ','); + TypeValueToString(&buf, fcinfo->argTypes[i], fcinfo->arg[i], fcinfo->argnull[i]); +#ifndef ENABLE_MULTIPLE_NODES + } else { + bool prokindIsNULL = false; + Datum prokindDatum = SysCacheGetAttr(PROCOID, procTup, Anum_pg_proc_prokind, &prokindIsNULL); + char prokind = CharGetDatum(prokindDatum); + if (!prokindIsNULL && PROC_IS_PRO(prokind) && enable_out_param_override()) { + if (i > 0) + appendStringInfoChar(&buf, ','); + TypeValueToString(&buf, argTypes[i], (Datum)0, true); + } +#endif + } } pfree_ext(argTypes); - } + } else { + for (int i = 0; i < nargs; i++) { + if (i > 0) + appendStringInfoChar(&buf, ','); - for (int i = 0; i < nargs; i++) { - if (i > 0) - appendStringInfoChar(&buf, ','); - - TypeValueToString(&buf, fcinfo->argTypes[i], fcinfo->arg[i], fcinfo->argnull[i]); + TypeValueToString(&buf, fcinfo->argTypes[i], fcinfo->arg[i], fcinfo->argnull[i]); + } } appendStringInfo(&buf, "); %s", "commit;"); @@ -516,8 +573,6 @@ static char* AssembleAutomnousStatement(PLpgSQL_function* func, FunctionCallInfo return buf.data; } - - /* ---------- * plpgsql_exec_autonm_function Called by the call handler for * autonomous function execution. @@ -535,6 +590,14 @@ Datum plpgsql_exec_autonm_function(PLpgSQL_function* func, errmodule(MOD_PLSQL), errmsg("Un-support:DN does not support invoking autonomous transactions."))); } #endif + +#ifndef ENABLE_MULTIPLE_NODES + uint64 sessionId = IS_THREAD_POOL_WORKER ? u_sess->session_id : t_thrd.proc_cxt.MyProcPid; + /* add session package values to global for autonm session, to restore package values */ + if (OidIsValid(func->fn_oid)) { + BuildSessionPackageRuntime(sessionId, u_sess->autonomous_parent_sessionid); + } +#endif /* * libpq link establishment * If no, create it. If yes, check its link status. @@ -555,8 +618,9 @@ Datum plpgsql_exec_autonm_function(PLpgSQL_function* func, char* sql = AssembleAutomnousStatement(func, fcinfo, sourceText); /* If the return value of the function is of the record type, add the function to the temporary cache. */ - if (sourceText == NULL && func->fn_retistuple - && get_func_result_type(fcinfo->flinfo->fn_oid, NULL, &tupDesc) != TYPEFUNC_COMPOSITE) { + bool returnTypeNotMatch = sourceText == NULL && func->fn_retistuple + && get_func_result_type(fcinfo->flinfo->fn_oid, NULL, &tupDesc) != TYPEFUNC_COMPOSITE; + if (returnTypeNotMatch) { ereport(ERROR, (errcode(ERRCODE_UNRECOGNIZED_NODE_TYPE), errmodule(MOD_PLSQL), errmsg("unrecognized return type for PLSQL function."))); @@ -573,7 +637,7 @@ Datum plpgsql_exec_autonm_function(PLpgSQL_function* func, foreach (l, search_path) { nspname = get_namespace_name(lfirst_oid(l)); if (nspname != NULL) { /* watch out for deleted namespace */ - appendStringInfo(&buf, " %s", nspname); + appendStringInfo(&buf, " \"%s\"", nspname); if (lnext(l) != NULL) { appendStringInfoChar(&buf, ','); } @@ -662,6 +726,7 @@ Datum plpgsql_exec_function(PLpgSQL_function* func, FunctionCallInfo fcinfo, boo { PLpgSQL_execstate estate; ErrorContextCallback plerrcontext; + FormatCallStack plcallstack; int i; int rc; bool saved_current_stp_with_exception; @@ -672,7 +737,7 @@ Datum plpgsql_exec_function(PLpgSQL_function* func, FunctionCallInfo fcinfo, boo func->debug = NULL; #ifndef ENABLE_MULTIPLE_NODES - check_debug(func); + check_debug(func, &estate); #endif saved_current_stp_with_exception = plpgsql_get_current_value_stp_with_exception(); @@ -684,6 +749,12 @@ Datum plpgsql_exec_function(PLpgSQL_function* func, FunctionCallInfo fcinfo, boo plerrcontext.previous = t_thrd.log_cxt.error_context_stack; t_thrd.log_cxt.error_context_stack = &plerrcontext; + + /* setup call stack for format_call_stack */ + plcallstack.elem = &estate; + plcallstack.prev = t_thrd.log_cxt.call_stack; + t_thrd.log_cxt.call_stack = &plcallstack; + /* * Make local execution copies of all the datums */ @@ -695,38 +766,7 @@ Datum plpgsql_exec_function(PLpgSQL_function* func, FunctionCallInfo fcinfo, boo */ for (i = 0; i < estate.ndatums; i++) { - if (func->datums[i]->dtype == PLPGSQL_DTYPE_UNKNOWN) { - PLpgSQL_package* pkg = NULL; - PLpgSQL_var* var = NULL; - var = (PLpgSQL_var*)func->datums[i]; - char *objname = NULL; - char *nspname = NULL; - char* pkgname = NULL; - Oid pkgOid = InvalidOid; - struct PLpgSQL_nsitem* nse = NULL; - DeconstructQualifiedName(var->pkg_name, &nspname, &objname, &pkgname); - - if (objname!=NULL) { - pkgOid = PackageNameGetOid(objname); - } - if (pkg == NULL) { - pkg = PackageInstantiation(pkgOid); - } - var->pkg = pkg; - nse = plpgsql_ns_lookup(pkg->public_ns, false, var->refname, NULL, NULL, NULL); - if (nse == NULL) { - ereport(ERROR, - (errcode(ERRCODE_NONEXISTANT_VARIABLE), (errmsg("not found package variable")))); - } else { - func->datums[i] = pkg->datums[nse->itemno]; - func->datums[i]->dno = i; - func->datums[i]->dtype = pkg->datums[nse->itemno]->dtype; - } - } - } - - for (i = 0; i < estate.ndatums; i++) { - if (func->datums[i]->ispkg != true) { + if (!func->datums[i]->ispkg) { estate.datums[i] = copy_plpgsql_datum(func->datums[i]); } else { estate.datums[i] = func->datums[i]; @@ -741,6 +781,8 @@ Datum plpgsql_exec_function(PLpgSQL_function* func, FunctionCallInfo fcinfo, boo int n = func->fn_argvarnos[i]; switch (estate.datums[n]->dtype) { + case PLPGSQL_DTYPE_VARRAY: + case PLPGSQL_DTYPE_TABLE: case PLPGSQL_DTYPE_VAR: { PLpgSQL_var* var = (PLpgSQL_var*)estate.datums[n]; @@ -795,6 +837,7 @@ Datum plpgsql_exec_function(PLpgSQL_function* func, FunctionCallInfo fcinfo, boo estate.err_text = gettext_noop("during function entry"); estate.cursor_return_data = fcinfo->refcursor_data.returnCursor; + estate.cursor_return_numbers = fcinfo->refcursor_data.return_number; /* * Set the magic variable FOUND to false @@ -813,10 +856,14 @@ Datum plpgsql_exec_function(PLpgSQL_function* func, FunctionCallInfo fcinfo, boo exec_set_sql_rowcount(&estate, -1); if (estate.sqlcode_varno) { - exec_set_sqlcode(&estate, 0); + if (plcallstack.prev != NULL) { + PLpgSQL_execstate* estate_tmp = (PLpgSQL_execstate*)(plcallstack.prev->elem); + exec_set_prev_sqlcode(&estate, estate_tmp); + } else { + exec_set_sqlcode(&estate, 0); + } } - /* * Let the instrumentation plugin peek at this function */ @@ -908,7 +955,9 @@ Datum plpgsql_exec_function(PLpgSQL_function* func, FunctionCallInfo fcinfo, boo /* got the expected result rowtype, now check it */ if (estate.rettupdesc == NULL && estate.func->out_param_varno >= 0) { PLpgSQL_datum* out_param_datum = estate.datums[estate.func->out_param_varno]; - if (out_param_datum->dtype == PLPGSQL_DTYPE_VAR && + if ((out_param_datum->dtype == PLPGSQL_DTYPE_VARRAY || + out_param_datum->dtype == PLPGSQL_DTYPE_TABLE || + out_param_datum->dtype == PLPGSQL_DTYPE_VAR) && ((PLpgSQL_var*)out_param_datum)->datatype != NULL) { ereport(ERROR, (errcode(ERRCODE_INVALID_FUNCTION_DEFINITION), @@ -1025,6 +1074,7 @@ Datum plpgsql_exec_function(PLpgSQL_function* func, FunctionCallInfo fcinfo, boo } estate.cursor_return_data = NULL; + estate.cursor_return_numbers = 0; /* Clean up any leftover temporary memory */ plpgsql_destroy_econtext(&estate); exec_eval_cleanup(&estate); @@ -1034,6 +1084,9 @@ Datum plpgsql_exec_function(PLpgSQL_function* func, FunctionCallInfo fcinfo, boo */ t_thrd.log_cxt.error_context_stack = plerrcontext.previous; plpgsql_restore_current_value_stp_with_exception(saved_current_stp_with_exception); + + /* pop the call stack */ + t_thrd.log_cxt.call_stack = plcallstack.prev; /* * Return the function's result */ @@ -1785,6 +1838,7 @@ PLpgSQL_datum* copy_plpgsql_datum(PLpgSQL_datum* datum) errno_t errorno = EOK; switch (datum->dtype) { + case PLPGSQL_DTYPE_VARRAY: case PLPGSQL_DTYPE_VAR: { PLpgSQL_var* newm = (PLpgSQL_var*)palloc(sizeof(PLpgSQL_var)); @@ -1823,7 +1877,10 @@ PLpgSQL_datum* copy_plpgsql_datum(PLpgSQL_datum* datum) case PLPGSQL_DTYPE_RECORD: case PLPGSQL_DTYPE_RECFIELD: case PLPGSQL_DTYPE_ARRAYELEM: - + case PLPGSQL_DTYPE_TABLEELEM: + case PLPGSQL_DTYPE_ASSIGNLIST: + case PLPGSQL_DTYPE_COMPOSITE: + case PLPGSQL_DTYPE_RECORD_TYPE: /* * These datum records are read-only at runtime, so no need to * copy them (well, ARRAYELEM contains some cached type data, but @@ -1909,6 +1966,279 @@ static ResourceOwner get_last_transaction_resourceowner() return oldowner; } +/* Context for exception block */ +typedef struct { + MemoryContext oldMemCxt; /* CurrentMemoryContext saved at exception's entry */ + ResourceOwner oldResOwner; /* CurrentResourceOwner saved at exception's entry */ + TransactionId oldTransactionId; /* top transaction id saved at exception entry */ + SubTransactionId subXid; /* exception subtransaction's id */ + + int curExceptionCounter; /* serial number for this exception block */ + bool hasReleased; /* whehter or not exception subtransaction has released. */ + + ErrorData* cur_edata; /* ErrorData captured by this exception block. */ + ErrorData* old_edata; /* saved ErrorData before this Exception block. */ + + int spi_connected; /* SPI connected level before exception. */ +} ExceptionContext; + +/* + * Action at exception block's entry + * + * starting a new subtransaction and save context. + */ +static void exec_exception_begin(PLpgSQL_execstate* estate, ExceptionContext *context) +{ + plpgsql_set_current_value_stp_with_exception(); + + context->old_edata = estate->cur_error; + context->cur_edata = NULL; + context->spi_connected = SPI_connectid(); + + /* save old memory context */ + context->oldMemCxt = CurrentMemoryContext; + context->oldResOwner = t_thrd.utils_cxt.CurrentResourceOwner; + context->oldTransactionId = SPI_get_top_transaction_id(); + + /* recording stmt's Top Portal ResourceOwner before any subtransaction. */ + if (u_sess->SPI_cxt.portal_stp_exception_counter == 0 && u_sess->plsql_cxt.stp_savepoint_cnt == 0) { + t_thrd.utils_cxt.STPSavedResourceOwner = t_thrd.utils_cxt.CurrentResourceOwner; + } + + /* Execute statements in the block's body inside a sub-transaction */ + SPI_savepoint_create(NULL); + + /* save current Exception some mess information into context. */ + context->curExceptionCounter = u_sess->SPI_cxt.portal_stp_exception_counter; + context->subXid = GetCurrentSubTransactionId(); + + context->hasReleased = false; + + MemoryContextSwitchTo(context->oldMemCxt); +} + +/* + * Action at exception block's normal exit + */ +static void exec_exception_end(PLpgSQL_execstate* estate, ExceptionContext *context) +{ + context->hasReleased = true; + + /* Commit the exception's transaction while there is no savepoint in this block. */ + if (context->curExceptionCounter == u_sess->SPI_cxt.portal_stp_exception_counter && + GetCurrentTransactionName() == NULL) { + /* + * This is an internal subtransaction for exception. Normal, we destory it as if it's + * outside STP. However, its id may changes after the rollback/commit. It means some + * wrong was may related to it by id, such as SPI connect, search path and etc. + * + * Luckily, the previous same subtransaction has terminated with keeping its STP resources + * while the exception's subtransaction owns none about these in the scenario. Hence, here + * we terminate this exception's subtransaction as if it is inside STP. + */ + SPI_savepoint_release(NULL); + + XactResumeSPIContext(true); + } + + /* + * Revert to outer eval_econtext. (The inner one was + * automatically cleaned up during subxact exit.) + */ + estate->eval_econtext = u_sess->plsql_cxt.simple_econtext_stack->stack_econtext; + + /* + * AtEOSubXact_SPI() should not have popped any SPI context, but + * just in case it did, make sure we remain connected. + */ + SPI_restore_connection(); + + /* Get last transaction's ResourceOwner. */ + stp_check_transaction_and_set_resource_owner(context->oldResOwner, context->oldTransactionId); + + MemoryContextSwitchTo(context->oldMemCxt); +} + +/* + * Action at exception block's abnormal exit + * + * do some cleanup before handling captured ERROR. + */ +static void exec_exception_cleanup(PLpgSQL_execstate* estate, ExceptionContext *context) +{ + MemoryContextSwitchTo(context->oldMemCxt); + + /* Set bInAbortTransaction to avoid core dump caused by recursive memory alloc exception */ + t_thrd.xact_cxt.bInAbortTransaction = true; + + /* Save error info */ + ErrorData* edata = CopyErrorData(); + t_thrd.xact_cxt.bInAbortTransaction = false; + FlushErrorState(); + + if (edata->sqlerrcode == ERRCODE_OPERATOR_INTERVENTION || + edata->sqlerrcode == ERRCODE_QUERY_CANCELED || + edata->sqlerrcode == ERRCODE_QUERY_INTERNAL_CANCEL || + edata->sqlerrcode == ERRCODE_ADMIN_SHUTDOWN || + edata->sqlerrcode == ERRCODE_CRASH_SHUTDOWN || + edata->sqlerrcode == ERRCODE_CANNOT_CONNECT_NOW || + edata->sqlerrcode == ERRCODE_DATABASE_DROPPED || + edata->sqlerrcode == ERRCODE_RU_STOP_QUERY) { + SetInstrNull(); + } + context->cur_edata = edata; + + if (context->hasReleased) { + ereport(FATAL, + (errmsg("exception happens after current savepoint released error message is: %s", + edata->message ? edata->message : " "))); + } + + bool hasAbort = false; + char *txnName = GetCurrentTransactionName(); + + /* Abort the inner transaction */ + if (context->curExceptionCounter == u_sess->SPI_cxt.portal_stp_exception_counter && txnName == NULL) { + ResetPortalCursor(GetCurrentSubTransactionId(), InvalidOid, 0); + + /* + * destory this internal subtransaction as if it is inside STP. + */ + if (PLSTMT_IMPLICIT_SAVEPOINT) { + /* release this exception's subtransaction in time */ + SPI_savepoint_release(NULL); + } else { + SPI_savepoint_rollbackAndRelease(NULL, InvalidTransactionId); + hasAbort = true; + } + + /* + * None should has references to this ResouceOwner of exception's subtransaction. Since ResourceOwner + * is reserved during above destorying, Deal it specially to release its memroy as soon as poosible. + */ + XactResumeSPIContext(true); + } else if (!PLSTMT_IMPLICIT_SAVEPOINT) { + /* + * rollback to the lastest savepoint which would be user's savepoint or exception's. + */ + exec_savepoint_rollback(estate, txnName); + hasAbort = true; + } + + /* Since above AbortSubTransaction may has destory connections, we can't go ahead. */ + if (t_thrd.xact_cxt.handlesDestroyedInCancelQuery) { + ereport(ERROR, (errcode(ERRCODE_TRANSACTION_ROLLBACK), errmodule(MOD_PLSQL), + errmsg("Transaction aborted as connection handles were destroyed due to clean up stream " + "failed. error message is: %s", edata->message ? edata->message : " "))); + } + + /* + * process resource's leak between subXid and latest subtransaction between subXid and the latest + * subtransaction, such as ActiveSnapshot, catrefs and etc. while the top transaction has changed, + * clean all the subtransaction. + */ + XactCleanExceptionSubTransaction( + context->oldTransactionId != SPI_get_top_transaction_id() ? 0 : context->subXid, hasAbort); + + /* destory SPI connects created in this exception block. */ + SPI_disconnect(context->spi_connected + 1); + + /* + * Revert to outer eval_econtext. (The inner one was + * automatically cleaned up during subxact exit.) + */ + estate->eval_econtext = u_sess->plsql_cxt.simple_econtext_stack->stack_econtext; + + /* + * With subtransaction aborted or not, SPI may be in a disconnected state, + * We need this hack to return to connected state. + */ + SPI_restore_connection(); + + /* Get last transaction's ResourceOwner. */ + stp_check_transaction_and_set_resource_owner(context->oldResOwner, context->oldTransactionId); + + MemoryContextSwitchTo(context->oldMemCxt); + + /* Must clean up the econtext too */ + exec_eval_cleanup(estate); +} + +/* + * handle exception as use defined handler. + * + * if no handler is defiend for exception, exception will be re-throw out. + */ +static int exec_exception_handler(PLpgSQL_execstate* estate, PLpgSQL_stmt_block* block, ExceptionContext *context) +{ + ListCell* e = NULL; + ErrorData* edata = context->cur_edata; + int rc = -1; + + /* no error can be ignored once connection was destoryed */ + if (t_thrd.xact_cxt.handlesDestroyedInCancelQuery) { + estate->cur_error = context->old_edata; + ReThrowError(edata); + } + + /* Look for a matching exception handler */ + foreach (e, block->exceptions->exc_list) { + PLpgSQL_exception* exception = (PLpgSQL_exception*)lfirst(e); + + if (exception_matches_conditions(edata, exception->conditions)) { + /* + * Initialize the magic SQLSTATE and SQLERRM variables for + * the exception block. We needn't do this until we have + * found a matching exception. + */ + PLpgSQL_var* state_var = NULL; + PLpgSQL_var* errm_var = NULL; + + state_var = (PLpgSQL_var*)estate->datums[estate->sqlstate_varno]; + errm_var = (PLpgSQL_var*)estate->datums[estate->sqlerrm_varno]; + assign_text_var(state_var, plpgsql_get_sqlstate(edata->sqlerrcode)); + assign_text_var(errm_var, edata->message); + + /* + * Also set up cur_error so the error data is accessible + * inside the handler. + */ + estate->cur_error = edata; + + estate->err_text = NULL; + + exec_set_sqlcode(estate, edata->sqlerrcode); + + rc = exec_stmts(estate, exception->action); + + free_var(state_var); + state_var->value = (Datum)0; + state_var->isnull = true; + free_var(errm_var); + errm_var->value = (Datum)0; + errm_var->isnull = true; + + break; + } + } + + /* + * Restore previous state of cur_error, whether or not we executed + * a handler. This is needed in case an error got thrown from + * some inner block's exception handler. + */ + estate->cur_error = context->old_edata; + + /* If no match found, re-throw the error */ + if (e == NULL) { + ReThrowError(edata); + } else { + FreeErrorData(edata); + } + + return rc; +} + /* ---------- * exec_stmt_block Execute a block of statements * ---------- @@ -1920,8 +2250,9 @@ static int exec_stmt_block(PLpgSQL_execstate* estate, PLpgSQL_stmt_block* block) int n; int n_initvars = 0; int* initvarnos; - - SubTransactionId subXid = InvalidSubTransactionId; +#ifndef ENABLE_MULTIPLE_NODES + bool initPackageVar = false; +#endif /* * First initialize all variables declared in this block @@ -1931,14 +2262,18 @@ static int exec_stmt_block(PLpgSQL_execstate* estate, PLpgSQL_stmt_block* block) bool savedProConfigIsSet = u_sess->SPI_cxt.is_proconfig_set; estate->err_text = gettext_noop("during statement block local variable initialization"); - if (u_sess->plsql_cxt.plpgsql_curr_compile_package != NULL) { + if (u_sess->plsql_cxt.curr_compile_context != NULL && + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package != NULL) { /* * when compile package , inline_code_block means it's a package instantiation block, * so it's only has package variables,and the variable must be declared in package. */ if (strcmp(estate->func->fn_signature, "inline_code_block") ==0 ) { - n_initvars = u_sess->plsql_cxt.plpgsql_curr_compile_package->n_initvars; - initvarnos = u_sess->plsql_cxt.plpgsql_curr_compile_package->initvarnos; + n_initvars = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->n_initvars; + initvarnos = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->initvarnos; +#ifndef ENABLE_MULTIPLE_NODES + initPackageVar = true; +#endif } else { n_initvars = block->n_initvars; initvarnos = block->initvarnos; @@ -1950,7 +2285,13 @@ static int exec_stmt_block(PLpgSQL_execstate* estate, PLpgSQL_stmt_block* block) for (i = 0; i < n_initvars; i++) { n = initvarnos[i]; + if (unlikely(n >= estate->ndatums || n < 0)) { + ereport(WARNING, + (errmsg("excepted dno in 0 to %d, but get dno %d", estate->ndatums - 1, n))); + continue; + } switch (estate->datums[n]->dtype) { + case PLPGSQL_DTYPE_VARRAY: case PLPGSQL_DTYPE_VAR: { PLpgSQL_var* var = (PLpgSQL_var*)(estate->datums[n]); /* free any old value, in case re-entering block */ @@ -2009,6 +2350,13 @@ static int exec_stmt_block(PLpgSQL_execstate* estate, PLpgSQL_stmt_block* block) rec->tupdesc = NULL; } break; + case PLPGSQL_DTYPE_ROW: + case PLPGSQL_DTYPE_RECORD: { + PLpgSQL_row* row = (PLpgSQL_row*)(estate->datums[n]); + if (row->default_val != NULL) { + exec_assign_expr(estate, (PLpgSQL_datum*)row, row->default_val); + } + } break; case PLPGSQL_DTYPE_RECFIELD: case PLPGSQL_DTYPE_ARRAYELEM: break; @@ -2022,79 +2370,22 @@ static int exec_stmt_block(PLpgSQL_execstate* estate, PLpgSQL_stmt_block* block) } } +#ifndef ENABLE_MULTIPLE_NODES + if (initPackageVar && u_sess->is_autonomous_session) { + /* autonomous session, init package values from parent session */ + initAutonomousPkgValue(u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package, + u_sess->autonomous_parent_sessionid); + } +#endif + if (block->exceptions != NULL) { - u_sess->SPI_cxt.portal_stp_exception_counter++; - plpgsql_set_current_value_stp_with_exception(); - /* - * Execute the statements in the block's body inside a sub-transaction - */ - MemoryContext oldcontext = CurrentMemoryContext; - ResourceOwner oldOwner = t_thrd.utils_cxt.CurrentResourceOwner; - ErrorData* save_cur_error = estate->cur_error; - TransactionId oldTransactionId = SPI_get_top_transaction_id(); - estate->err_text = gettext_noop("during statement block entry"); -#ifdef ENABLE_MULTIPLE_NODES - /* CN should send savepoint command to remote nodes to begin sub transaction remotely. */ - if (IS_PGXC_COORDINATOR && !IsConnFromCoord()) { - /* if do savepoint, always treat myself as local write node */ - RegisterTransactionLocalNode(true); - RecordSavepoint("Savepoint s1", "s1", false, SUB_STMT_SAVEPOINT); - pgxc_node_remote_savepoint("Savepoint s1", EXEC_ON_DATANODES, true, true); - } -#endif - PG_TRY(); - { - BeginInternalSubTransaction(NULL); - } - PG_CATCH(); - { - stp_retore_old_xact_stmt_state(savedisAllowCommitRollback); - OverrideStackEntry *entry = NULL; - - Assert (u_sess->catalog_cxt.overrideStack != NULL); - u_sess->SPI_cxt.portal_stp_exception_counter--; - - entry = (OverrideStackEntry *) linitial(u_sess->catalog_cxt.overrideStack); - if (entry->nestLevel < GetCurrentTransactionNestLevel()) { - AbortSubTransaction(); - CleanupSubTransaction(); - } -#ifdef ENABLE_MULTIPLE_NODES - if (IS_PGXC_COORDINATOR && !IsConnFromCoord()) { - HandleReleaseOrRollbackSavepoint("rollback to s1", "s1", SUB_STMT_ROLLBACK_TO); - /* CN send rollback savepoint to remote nodes to abort sub transaction remotely */ - pgxc_node_remote_savepoint("rollback to s1", EXEC_ON_DATANODES, false, false); - - HandleReleaseOrRollbackSavepoint("release s1", "s1", SUB_STMT_RELEASE); - /* CN should send release savepoint command to remote nodes for savepoint name reuse */ - pgxc_node_remote_savepoint("release s1", EXEC_ON_DATANODES, false, false); - } -#endif - // Get last transaction's ResourceOwner. - stp_check_transaction_and_set_resource_owner(oldOwner,oldTransactionId); - - estate->eval_econtext = u_sess->plsql_cxt.simple_econtext_stack->stack_econtext; - MemoryContextSwitchTo(oldcontext); - - /* - * If AtEOSubXact_SPI() popped any SPI context of the subxact, it - * will have left us in a disconnected state. We need this hack - * to return to connected state. - */ - SPI_restore_connection(); - - /* Must clean up the econtext too */ - exec_eval_cleanup(estate); - PG_RE_THROW(); - } - PG_END_TRY(); - - subXid = GetCurrentSubTransactionId(); - /* Want to run statements inside function's memory context */ - MemoryContextSwitchTo(oldcontext); + ExceptionContext excptContext; Cursor_Data* saved_cursor_data = estate->cursor_return_data; + int saved_cursor_numbers = estate->cursor_return_numbers; + + exec_exception_begin(estate, &excptContext); PG_TRY(); { /* @@ -2126,190 +2417,42 @@ static int exec_stmt_block(PLpgSQL_execstate* estate, PLpgSQL_stmt_block* block) estate->retval = datumCopy(estate->retval, resTypByVal, resTypLen); } - /* Commit the inner transaction, return to outer xact context */ - ReleaseCurrentSubTransaction(); -#ifdef ENABLE_MULTIPLE_NODES - /* CN should send release savepoint command to remote nodes for savepoint name reuse */ - if (IS_PGXC_COORDINATOR && !IsConnFromCoord()) { - HandleReleaseOrRollbackSavepoint("release s1", "s1", SUB_STMT_RELEASE); - pgxc_node_remote_savepoint("release s1", EXEC_ON_DATANODES, false, false); - } -#endif - MemoryContextSwitchTo(oldcontext); - - // Get last transaction's ResourceOwner. - stp_check_transaction_and_set_resource_owner(oldOwner,oldTransactionId); - u_sess->SPI_cxt.portal_stp_exception_counter--; - - /* - * Revert to outer eval_econtext. (The inner one was - * automatically cleaned up during subxact exit.) - */ - estate->eval_econtext = u_sess->plsql_cxt.simple_econtext_stack->stack_econtext; - - /* - * AtEOSubXact_SPI() should not have popped any SPI context, but - * just in case it did, make sure we remain connected. - */ - SPI_restore_connection(); - + exec_exception_end(estate, &excptContext); stp_retore_old_xact_stmt_state(savedisAllowCommitRollback); } PG_CATCH(); { - ErrorData* edata = NULL; - ListCell* e = NULL; - + if (estate->func->debug) { + PlDebuggerComm* debug_comm = &g_instance.pldebug_cxt.debug_comm[estate->func->debug->comm->comm_idx]; + /* client has error and debug on inner funciton, throw current error */ + if (debug_comm->hasClientErrorOccured) { + ereport(ERROR, (errmodule(MOD_PLDEBUGGER), + errmsg("Debug client has some error occured."))); + } + } stp_retore_old_xact_stmt_state(savedisAllowCommitRollback); u_sess->SPI_cxt.is_stp = savedIsSTP; u_sess->SPI_cxt.is_proconfig_set = savedProConfigIsSet; estate->cursor_return_data = saved_cursor_data; + estate->cursor_return_numbers = saved_cursor_numbers; /* gs_signal_handle maybe block sigusr2 when accept SIGINT */ gs_signal_unblock_sigusr2(); estate->err_text = gettext_noop("during exception cleanup"); - /* Save error info */ - MemoryContextSwitchTo(oldcontext); - /* Set bInAbortTransaction to avoid core dump caused by recursive memory alloc exception */ - t_thrd.xact_cxt.bInAbortTransaction = true; - edata = CopyErrorData(); - t_thrd.xact_cxt.bInAbortTransaction = false; - FlushErrorState(); + exec_exception_cleanup(estate, &excptContext); - if (edata->sqlerrcode == ERRCODE_OPERATOR_INTERVENTION || - edata->sqlerrcode == ERRCODE_QUERY_CANCELED || - edata->sqlerrcode == ERRCODE_QUERY_INTERNAL_CANCEL || - edata->sqlerrcode == ERRCODE_ADMIN_SHUTDOWN || - edata->sqlerrcode == ERRCODE_CRASH_SHUTDOWN || - edata->sqlerrcode == ERRCODE_CANNOT_CONNECT_NOW || - edata->sqlerrcode == ERRCODE_DATABASE_DROPPED || - edata->sqlerrcode == ERRCODE_RU_STOP_QUERY) { - SetInstrNull(); - } - u_sess->SPI_cxt.portal_stp_exception_counter--; + rc = exec_exception_handler(estate, block, &excptContext); - /* Abort the inner transaction */ - if (GetCurrentSubTransactionId() == subXid) { - ResetPortalCursor(subXid, InvalidOid, 0); - RollbackAndReleaseCurrentSubTransaction(); - } else { - ereport(FATAL, - (errmsg("exception happens after current savepoint released error message is: %s", - edata->message ? edata->message : " "))); - } - - if (t_thrd.xact_cxt.handlesDestroyedInCancelQuery) { - ereport(ERROR, - (errcode(ERRCODE_TRANSACTION_ROLLBACK), - errmodule(MOD_PLSQL), - errmsg("Transaction aborted as connection handles were destroyed due to clean up stream " - "failed. error message is: %s", - edata->message ? edata->message : " "))); - } -#ifdef ENABLE_MULTIPLE_NODES - if (IS_PGXC_COORDINATOR && !IsConnFromCoord()) { - HandleReleaseOrRollbackSavepoint("rollback to s1", "s1", SUB_STMT_ROLLBACK_TO); - /* CN send rollback savepoint to remote nodes to abort sub transaction remotely */ - pgxc_node_remote_savepoint("rollback to s1", EXEC_ON_DATANODES, false, false); - - HandleReleaseOrRollbackSavepoint("release s1", "s1", SUB_STMT_RELEASE); - /* CN should send release savepoint command to remote nodes for savepoint name reuse */ - pgxc_node_remote_savepoint("release s1", EXEC_ON_DATANODES, false, false); - } -#endif - - // Get last transaction's ResourceOwner. - stp_check_transaction_and_set_resource_owner(oldOwner,oldTransactionId); - - estate->eval_econtext = u_sess->plsql_cxt.simple_econtext_stack->stack_econtext; - MemoryContextSwitchTo(oldcontext); - - /* - * If AtEOSubXact_SPI() popped any SPI context of the subxact, it - * will have left us in a disconnected state. We need this hack - * to return to connected state. - */ - SPI_restore_connection(); - - /* Must clean up the econtext too */ - exec_eval_cleanup(estate); - - /* Look for a matching exception handler */ - foreach (e, block->exceptions->exc_list) { - PLpgSQL_exception* exception = (PLpgSQL_exception*)lfirst(e); - - if (exception_matches_conditions(edata, exception->conditions)) { - /* - * Initialize the magic SQLSTATE and SQLERRM variables for - * the exception block. We needn't do this until we have - * found a matching exception. - */ - PLpgSQL_var* state_var = NULL; - PLpgSQL_var* errm_var = NULL; - - state_var = (PLpgSQL_var*)estate->datums[block->exceptions->sqlstate_varno]; - errm_var = (PLpgSQL_var*)estate->datums[block->exceptions->sqlerrm_varno]; - if (state_var->pkg != NULL) { - MemoryContext temp = MemoryContextSwitchTo(state_var->pkg->pkg_cxt); - assign_text_var(state_var, unpack_sql_state(edata->sqlerrcode)); - MemoryContextSwitchTo(temp); - } else { - assign_text_var(state_var, unpack_sql_state(edata->sqlerrcode)); - } - if (errm_var->pkg != NULL) { - MemoryContext temp = MemoryContextSwitchTo(errm_var->pkg->pkg_cxt); - assign_text_var(errm_var, edata->message); - MemoryContextSwitchTo(temp); - } else { - assign_text_var(errm_var, edata->message); - } - /* - * Also set up cur_error so the error data is accessible - * inside the handler. - */ - estate->cur_error = edata; - - estate->err_text = NULL; - - exec_set_sqlcode(estate, edata->sqlerrcode); - - rc = exec_stmts(estate, exception->action); - - stp_retore_old_xact_stmt_state(savedisAllowCommitRollback); - u_sess->SPI_cxt.is_stp = savedIsSTP; - u_sess->SPI_cxt.is_proconfig_set = savedProConfigIsSet; - - free_var(state_var); - state_var->value = (Datum)0; - state_var->isnull = true; - free_var(errm_var); - errm_var->value = (Datum)0; - errm_var->isnull = true; - - break; - } - } - - /* - * Restore previous state of cur_error, whether or not we executed - * a handler. This is needed in case an error got thrown from - * some inner block's exception handler. - */ - estate->cur_error = save_cur_error; - - /* If no match found, re-throw the error */ - if (e == NULL) { - ReThrowError(edata); - } else { - FreeErrorData(edata); - } + stp_retore_old_xact_stmt_state(savedisAllowCommitRollback); + u_sess->SPI_cxt.is_stp = savedIsSTP; + u_sess->SPI_cxt.is_proconfig_set = savedProConfigIsSet; } PG_END_TRY(); - AssertEreport(save_cur_error == estate->cur_error, + AssertEreport(excptContext.old_edata == estate->cur_error, MOD_PLSQL, "save current error should be same error as estate current error."); } else { @@ -2668,7 +2811,9 @@ static int exec_stmt(PLpgSQL_execstate* estate, PLpgSQL_stmt* stmt) case PLPGSQL_STMT_NULL: rc = exec_stmt_null(estate, (PLpgSQL_stmt_null*)stmt); break; - + case PLPGSQL_STMT_SAVEPOINT: + rc = exec_stmt_savepoint(estate, stmt); + break; default: estate->err_stmt = save_estmt; ereport(ERROR, @@ -2788,7 +2933,7 @@ static int exec_stmt_getdiag(PLpgSQL_execstate* estate, PLpgSQL_stmt_getdiag* st break; case PLPGSQL_GETDIAG_RETURNED_SQLSTATE: - exec_assign_c_string(estate, var, unpack_sql_state(estate->cur_error->sqlerrcode)); + exec_assign_c_string(estate, var, plpgsql_get_sqlstate(estate->cur_error->sqlerrcode)); break; case PLPGSQL_GETDIAG_MESSAGE_TEXT: @@ -3061,6 +3206,51 @@ static int exec_stmt_while(PLpgSQL_execstate* estate, PLpgSQL_stmt_while* stmt) return PLPGSQL_RC_OK; } +const char* SE_SAVEPOINT_NAME = "save_exception_implicit_savepoint"; + +static Datum FormBulkExceptionDatum(int index, int errcode, const char* errmsg) +{ + Oid typoid = get_typeoid(PG_CATALOG_NAMESPACE, "bulk_exception"); + TupleDesc tupDesc = lookup_rowtype_tupdesc(typoid, -1); + Datum values[tupDesc->natts]; + bool isnull[tupDesc->natts]; + int i = 0; + /* index */ + values[i] = Int32GetDatum(index); + isnull[i++] = false; + /* errcode */ + values[i] = Int32GetDatum(errcode); + isnull[i++] = false; + /* errmsg */ + values[i] = CStringGetTextDatum(errmsg); + isnull[i++] = false; + HeapTuple result = heap_form_tuple(tupDesc, values, isnull); + return HeapTupleGetDatum(result); +} + +static void AppendBulkExceptionArray(Datum *target, Datum newelem) +{ + Oid typoid = get_typeoid(PG_CATALOG_NAMESPACE, "bulk_exception"); + int16 typlen = 0; + bool typbyval = false; + char typalign; + get_typlenbyvalalign(typoid, &typlen, &typbyval, &typalign); + if (*target == 0) { + /* Initialized array with single bulk error */ + int dims[] = {1}; + int lbs[] = {1}; + Datum values[] = {newelem}; + bool isNULL[] = {false}; + ArrayType *arr = construct_md_array(values, isNULL, 1, dims, lbs, typoid, typlen, typbyval, typalign); + *target = (Datum)arr; + } else { + /* Append new error to array */ + ArrayType *arr = (ArrayType *)(*target); + int indx = ARR_DIMS(arr)[0] + 1; + *target = (Datum)array_set(arr, 1, &indx, newelem, false, typlen, -1, typbyval, typalign); + } +} + /* ---------- * exec_stmt_fori Iterate an integer variable * from a lower to an upper value @@ -3077,7 +3267,9 @@ static int exec_stmt_fori(PLpgSQL_execstate* estate, PLpgSQL_stmt_fori* stmt) int32 end_value; int32 step_value; bool found = false; + bool exception_saved = false; int rc = PLPGSQL_RC_OK; + MemoryContext oldcontext = CurrentMemoryContext; var = (PLpgSQL_var*)(estate->datums[stmt->var->dno]); @@ -3154,6 +3346,20 @@ static int exec_stmt_fori(PLpgSQL_execstate* estate, PLpgSQL_stmt_fori* stmt) step_value = 1; } + /* Initialize bulk exception list if save_exceptions is defined */ + if (stmt->save_exceptions) { + SPI_stp_transaction_check(estate->readonly_func, true); + PLpgSQL_var* be_var = (PLpgSQL_var*)estate->datums[estate->sql_bulk_exceptions_varno]; + if (!be_var->isnull && be_var->value != (Datum)NULL) { + ArrayType *arr = (ArrayType *)be_var->value; + ArrayIterator iter = array_create_iterator(arr, 0); + array_free_iterator(iter); + pfree(arr); + be_var->isnull = true; + be_var->value = (Datum)NULL; + } + } + /* * Now do the loop */ @@ -3182,7 +3388,49 @@ static int exec_stmt_fori(PLpgSQL_execstate* estate, PLpgSQL_stmt_fori* stmt) /* * Execute the statements */ - rc = exec_stmts(estate, stmt->body); + if (stmt->save_exceptions) { + ResourceOwner oldowner = t_thrd.utils_cxt.CurrentResourceOwner; + /* + * When save exceptions is defined, a save point is created before + * execution of the loop body. Release if successed; save exception + * information and rollback if failed. + */ + SPI_savepoint_create(SE_SAVEPOINT_NAME); + + PG_TRY(); + { + plpgsql_create_econtext(estate); + rc = exec_stmts(estate, stmt->body); + SPI_savepoint_release(SE_SAVEPOINT_NAME); + XactResumeSPIContext(true); + t_thrd.utils_cxt.CurrentResourceOwner = oldowner; + SPI_restore_connection(); + } + PG_CATCH(); + { + ErrorData* edata = &t_thrd.log_cxt.errordata[t_thrd.log_cxt.errordata_stack_depth]; + int errcode = edata->sqlerrcode; + char* errmsg = edata->message; + (void)MemoryContextSwitchTo(oldcontext); + SPI_restore_connection(); + + PLpgSQL_datum* bulk_exceptions = estate->datums[estate->sql_bulk_exceptions_varno]; + PLpgSQL_var* be_var = (PLpgSQL_var*)bulk_exceptions; + + Datum newelem = FormBulkExceptionDatum(loop_value, errcode, errmsg); + AppendBulkExceptionArray(&(be_var->value), newelem); + be_var->isnull = false; + + FlushErrorState(); + SPI_savepoint_rollbackAndRelease(SE_SAVEPOINT_NAME, InvalidTransactionId); + XactResumeSPIContext(true); + t_thrd.utils_cxt.CurrentResourceOwner = oldowner; + exception_saved = true; + } + PG_END_TRY(); + } else { + rc = exec_stmts(estate, stmt->body); + } if (rc == PLPGSQL_RC_RETURN) { break; /* break out of the loop */ @@ -3247,6 +3495,20 @@ static int exec_stmt_fori(PLpgSQL_execstate* estate, PLpgSQL_stmt_fori* stmt) */ exec_set_found(estate, found); + if (exception_saved) { + /* + * If FORALL saved any exception, create a savepoint for the last statement + * and raise a dedicated error for forall dml execution. + */ + SPI_savepoint_create(NULL); + ereport(ERROR, + (errmodule(MOD_PLSQL), errcode(ERRCODE_FORALL_DML_ERROR), + errmsg("forall dml statments contain saved failure"), + errdetail("please check SQL%%BULK_EXCEPTIONS for detail"), + errcause("one or more execution of the loop body raised exceptions"), + erraction("please handle errors in SQL%%BULK_EXCEPTIONS"))); + } + return rc; } @@ -3422,14 +3684,14 @@ static int exec_stmt_forc(PLpgSQL_execstate* estate, PLpgSQL_stmt_forc* stmt) } /* save the status of display cursor before Modify attributes of cursor */ - isopen.value = ((PLpgSQL_var*)(estate->datums[curvar->dno + CURSOR_ISOPEN]))->value; - isopen.isnull = ((PLpgSQL_var*)(estate->datums[curvar->dno + CURSOR_ISOPEN]))->isnull; - cursor_found.value = ((PLpgSQL_var*)(estate->datums[curvar->dno + CURSOR_FOUND]))->value; - cursor_found.isnull = ((PLpgSQL_var*)(estate->datums[curvar->dno + CURSOR_FOUND]))->isnull; - notfound.value = ((PLpgSQL_var*)(estate->datums[curvar->dno + CURSOR_NOTFOUND]))->value; - notfound.isnull = ((PLpgSQL_var*)(estate->datums[curvar->dno + CURSOR_NOTFOUND]))->isnull; - rowcount.value = ((PLpgSQL_var*)(estate->datums[curvar->dno + CURSOR_ROWCOUNT]))->value; - rowcount.isnull = ((PLpgSQL_var*)(estate->datums[curvar->dno + CURSOR_ROWCOUNT]))->isnull; + isopen.value = ((PLpgSQL_var*)(estate->datums[stmt->curvar + CURSOR_ISOPEN]))->value; + isopen.isnull = ((PLpgSQL_var*)(estate->datums[stmt->curvar + CURSOR_ISOPEN]))->isnull; + cursor_found.value = ((PLpgSQL_var*)(estate->datums[stmt->curvar + CURSOR_FOUND]))->value; + cursor_found.isnull = ((PLpgSQL_var*)(estate->datums[stmt->curvar + CURSOR_FOUND]))->isnull; + notfound.value = ((PLpgSQL_var*)(estate->datums[stmt->curvar + CURSOR_NOTFOUND]))->value; + notfound.isnull = ((PLpgSQL_var*)(estate->datums[stmt->curvar + CURSOR_NOTFOUND]))->isnull; + rowcount.value = ((PLpgSQL_var*)(estate->datums[stmt->curvar + CURSOR_ROWCOUNT]))->value; + rowcount.isnull = ((PLpgSQL_var*)(estate->datums[stmt->curvar + CURSOR_ROWCOUNT]))->isnull; /* save the status of Implicit cursor before Modify attributes of cursor */ sql_isopen.value = ((PLpgSQL_var*)(estate->datums[estate->sql_isopen_varno]))->value; @@ -3442,10 +3704,10 @@ static int exec_stmt_forc(PLpgSQL_execstate* estate, PLpgSQL_stmt_forc* stmt) sql_rowcount.isnull = ((PLpgSQL_var*)(estate->datums[estate->sql_rowcount_varno]))->isnull; /* init all cursors */ - exec_set_isopen(estate, false, curvar->dno + CURSOR_ISOPEN); - exec_set_cursor_found(estate, PLPGSQL_FALSE, curvar->dno + CURSOR_FOUND); - exec_set_notfound(estate, PLPGSQL_TRUE, curvar->dno + CURSOR_NOTFOUND); - exec_set_rowcount(estate, 0, true, curvar->dno + CURSOR_ROWCOUNT); + exec_set_isopen(estate, false, stmt->curvar + CURSOR_ISOPEN); + exec_set_cursor_found(estate, PLPGSQL_FALSE, stmt->curvar + CURSOR_FOUND); + exec_set_notfound(estate, PLPGSQL_TRUE, stmt->curvar + CURSOR_NOTFOUND); + exec_set_rowcount(estate, 0, true, stmt->curvar + CURSOR_ROWCOUNT); exec_set_sql_isopen(estate, false); exec_set_sql_cursor_found(estate, PLPGSQL_FALSE); exec_set_sql_notfound(estate, PLPGSQL_TRUE); @@ -3455,17 +3717,17 @@ static int exec_stmt_forc(PLpgSQL_execstate* estate, PLpgSQL_stmt_forc* stmt) * Execute the loop. We can't prefetch because the cursor is accessible * to the user, for instance via UPDATE WHERE CURRENT OF within the loop. */ - rc = exec_for_query(estate, (PLpgSQL_stmt_forq*)stmt, portal, false, curvar->dno); + rc = exec_for_query(estate, (PLpgSQL_stmt_forq*)stmt, portal, false, stmt->curvar); /* restore the status of display cursor after Modify attributes of cursor */ - ((PLpgSQL_var*)(estate->datums[curvar->dno + CURSOR_ISOPEN]))->value = isopen.value; - ((PLpgSQL_var*)(estate->datums[curvar->dno + CURSOR_ISOPEN]))->isnull = isopen.isnull; - ((PLpgSQL_var*)(estate->datums[curvar->dno + CURSOR_FOUND]))->value = cursor_found.value; - ((PLpgSQL_var*)(estate->datums[curvar->dno + CURSOR_FOUND]))->isnull = cursor_found.isnull; - ((PLpgSQL_var*)(estate->datums[curvar->dno + CURSOR_NOTFOUND]))->value = notfound.value; - ((PLpgSQL_var*)(estate->datums[curvar->dno + CURSOR_NOTFOUND]))->isnull = notfound.isnull; - ((PLpgSQL_var*)(estate->datums[curvar->dno + CURSOR_ROWCOUNT]))->value = rowcount.value; - ((PLpgSQL_var*)(estate->datums[curvar->dno + CURSOR_ROWCOUNT]))->isnull = rowcount.isnull; + ((PLpgSQL_var*)(estate->datums[stmt->curvar + CURSOR_ISOPEN]))->value = isopen.value; + ((PLpgSQL_var*)(estate->datums[stmt->curvar + CURSOR_ISOPEN]))->isnull = isopen.isnull; + ((PLpgSQL_var*)(estate->datums[stmt->curvar + CURSOR_FOUND]))->value = cursor_found.value; + ((PLpgSQL_var*)(estate->datums[stmt->curvar + CURSOR_FOUND]))->isnull = cursor_found.isnull; + ((PLpgSQL_var*)(estate->datums[stmt->curvar + CURSOR_NOTFOUND]))->value = notfound.value; + ((PLpgSQL_var*)(estate->datums[stmt->curvar + CURSOR_NOTFOUND]))->isnull = notfound.isnull; + ((PLpgSQL_var*)(estate->datums[stmt->curvar + CURSOR_ROWCOUNT]))->value = rowcount.value; + ((PLpgSQL_var*)(estate->datums[stmt->curvar + CURSOR_ROWCOUNT]))->isnull = rowcount.isnull; /* restore the status of Implicit cursor after Modify attributes of cursor */ ((PLpgSQL_var*)(estate->datums[estate->sql_isopen_varno]))->value = sql_isopen.value; @@ -3722,6 +3984,7 @@ static int exec_stmt_return(PLpgSQL_execstate* estate, PLpgSQL_stmt_return* stmt PLpgSQL_datum* retvar = estate->datums[stmt->retvarno]; switch (retvar->dtype) { + case PLPGSQL_DTYPE_VARRAY: case PLPGSQL_DTYPE_VAR: { PLpgSQL_var* var = (PLpgSQL_var*)retvar; @@ -3731,6 +3994,7 @@ static int exec_stmt_return(PLpgSQL_execstate* estate, PLpgSQL_stmt_return* stmt if (estate->rettype == REFCURSOROID) { ExecCopyDataFromDatum(estate->datums, var->dno, estate->cursor_return_data); } + } break; case PLPGSQL_DTYPE_REC: { @@ -3743,7 +4007,9 @@ static int exec_stmt_return(PLpgSQL_execstate* estate, PLpgSQL_stmt_return* stmt } } break; - case PLPGSQL_DTYPE_ROW: { + case PLPGSQL_DTYPE_ROW: + case PLPGSQL_DTYPE_RECORD: + { PLpgSQL_row* row = (PLpgSQL_row*)retvar; AssertEreport(row->rowtupdesc != NULL, MOD_PLSQL, "row's tuple description is required."); @@ -3845,6 +4111,7 @@ static int exec_stmt_return_next(PLpgSQL_execstate* estate, PLpgSQL_stmt_return_ PLpgSQL_datum* retvar = estate->datums[stmt->retvarno]; switch (retvar->dtype) { + case PLPGSQL_DTYPE_VARRAY: case PLPGSQL_DTYPE_VAR: { PLpgSQL_var* var = (PLpgSQL_var*)retvar; Datum retval = var->value; @@ -4085,7 +4352,10 @@ static int exec_stmt_raise(PLpgSQL_execstate* estate, PLpgSQL_stmt_raise* stmt) errmsg("RAISE without parameters cannot be used outside an exception handler"))); } - if (stmt->condname != NULL) { + if (stmt->hasExceptionInit) { + err_code = plpgsql_code_cstring2int(stmt->condname); + condname = pstrdup(stmt->condname); + } else if (stmt->condname != NULL) { err_code = plpgsql_recognize_err_condition(stmt->condname, true); condname = pstrdup(stmt->condname); } @@ -4121,9 +4391,10 @@ static int exec_stmt_raise(PLpgSQL_execstate* estate, PLpgSQL_stmt_raise* stmt) errmodule(MOD_PLSQL), errmsg("too few parameters specified for RAISE"))); } - + PLpgSQL_execstate* save_plpgsql_estate = plpgsql_estate; + plpgsql_estate = estate; paramvalue = exec_eval_expr(estate, (PLpgSQL_expr*)lfirst(current_param), ¶misnull, ¶mtypeid); - + plpgsql_estate = save_plpgsql_estate; if (paramisnull) { extval = ""; } else { @@ -4234,7 +4505,7 @@ static int exec_stmt_raise(PLpgSQL_execstate* estate, PLpgSQL_stmt_raise* stmt) err_message = condname; condname = NULL; } else { - err_message = pstrdup(unpack_sql_state(err_code)); + err_message = pstrdup(plpgsql_get_sqlstate(err_code)); } } @@ -4293,6 +4564,7 @@ static void plpgsql_estate_setup(PLpgSQL_execstate* estate, PLpgSQL_function* fu estate->cur_error = NULL; estate->tuple_store = NULL; estate->cursor_return_data = NULL; + estate->cursor_return_numbers = 0; if (rsi != NULL) { estate->tuple_store_cxt = rsi->econtext->ecxt_per_query_memory; estate->tuple_store_owner = t_thrd.utils_cxt.CurrentResourceOwner; @@ -4309,8 +4581,12 @@ static void plpgsql_estate_setup(PLpgSQL_execstate* estate, PLpgSQL_function* fu estate->sql_isopen_varno = func->sql_isopen_varno; estate->sql_rowcount_varno = func->sql_rowcount_varno; estate->sqlcode_varno = func->sqlcode_varno; + estate->sqlstate_varno = func->sqlstate_varno; + estate->sqlerrm_varno = func->sqlerrm_varno; + estate->sql_bulk_exceptions_varno = func->sql_bulk_exceptions_varno; estate->ndatums = func->ndatums; + estate->datums_alloc = estate->ndatums; estate->datums = (PLpgSQL_datum**)palloc(sizeof(PLpgSQL_datum*) * estate->ndatums); /* caller is expected to fill the datums array */ @@ -4324,6 +4600,8 @@ static void plpgsql_estate_setup(PLpgSQL_execstate* estate, PLpgSQL_function* fu estate->err_text = NULL; estate->plugin_info = NULL; + estate->stack_entry_start = u_sess->plsql_cxt.nextStackEntryId + 1; + estate->curr_nested_table_type = InvalidOid; /* * Create an EState and ExprContext for evaluation of simple expressions. @@ -4507,7 +4785,9 @@ static int exec_stmt_execsql(PLpgSQL_execstate* estate, PLpgSQL_stmt_execsql* st stmt->strict = true; } - if (stmt->strict || stmt->mod_stmt) { + if (stmt->bulk_collect) { + tcount = 0; + } else if (stmt->strict || stmt->mod_stmt) { tcount = 2; } else { tcount = 1; @@ -4517,10 +4797,13 @@ static int exec_stmt_execsql(PLpgSQL_execstate* estate, PLpgSQL_stmt_execsql* st } saved_cursor_data = estate->cursor_return_data; + int saved_cursor_numbers = estate->cursor_return_numbers; if (stmt->row != NULL && stmt->row->nfields > 0) { estate->cursor_return_data = (Cursor_Data*)palloc0(sizeof(Cursor_Data) * stmt->row->nfields); + estate->cursor_return_numbers = stmt->row->nfields; has_alloc = true; } else { + estate->cursor_return_numbers = 0; estate->cursor_return_data = NULL; } @@ -4639,7 +4922,12 @@ static int exec_stmt_execsql(PLpgSQL_execstate* estate, PLpgSQL_stmt_execsql* st if (stmt->rec != NULL) { rec = (PLpgSQL_rec*)(estate->datums[stmt->rec->dno]); } else if (stmt->row != NULL) { - row = (PLpgSQL_row*)(estate->datums[stmt->row->dno]); + row = stmt->row; + if (row->ispkg) { + row = (PLpgSQL_row*)(row->pkg->datums[stmt->row->dno]); + } else { + row = (PLpgSQL_row*)(estate->datums[stmt->row->dno]); + } } else { ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), @@ -4662,14 +4950,18 @@ static int exec_stmt_execsql(PLpgSQL_execstate* estate, PLpgSQL_stmt_execsql* st /* set the target to NULL(s) */ exec_move_row(estate, rec, row, NULL, tuptab->tupdesc); } else { - if (n > 1 && (stmt->strict || stmt->mod_stmt)) { + if (n > 1 && (stmt->strict || stmt->mod_stmt) && !stmt->bulk_collect) { ereport(ERROR, (errcode(ERRCODE_TOO_MANY_ROWS), errmodule(MOD_PLSQL), errmsg("query returned %u rows more than one row", n))); } - /* Put the first result row into the target */ - exec_move_row(estate, rec, row, tuptab->vals[0], tuptab->tupdesc); + if (stmt->bulk_collect) { + exec_read_bulk_collect(estate, row, tuptab); + } else { + /* Put the first result row into the target */ + exec_move_row(estate, rec, row, tuptab->vals[0], tuptab->tupdesc); + } } /* Clean up */ @@ -4696,6 +4988,7 @@ static int exec_stmt_execsql(PLpgSQL_execstate* estate, PLpgSQL_stmt_execsql* st pfree_ext(estate->cursor_return_data); estate->cursor_return_data = saved_cursor_data; + estate->cursor_return_numbers = saved_cursor_numbers; return PLPGSQL_RC_OK; } @@ -4903,6 +5196,10 @@ static int exec_stmt_dynexecute(PLpgSQL_execstate* estate, PLpgSQL_stmt_dynexecu FmgrInfo flinfo; int ppdindex = 0; int datumindex = 0; + /* save flag for nest plpgsql compile */ + PLpgSQL_compile_context* save_compile_context = u_sess->plsql_cxt.curr_compile_context; + int save_compile_list_length = list_length(u_sess->plsql_cxt.compile_context_list); + int save_compile_status = u_sess->plsql_cxt.compile_status; /* Compile the anonymous code block */ /* support pass external parameter in anonymous block */ @@ -4913,7 +5210,12 @@ static int exec_stmt_dynexecute(PLpgSQL_execstate* estate, PLpgSQL_stmt_dynexecu PG_CATCH(); { /* package may use this ptr for check, need reset it */ - u_sess->plsql_cxt.plpgsql_curr_compile = NULL; + ereport(DEBUG3, (errmodule(MOD_NEST_COMPILE), errcode(ERRCODE_LOG), + errmsg("%s clear curr_compile_context because of error.", __func__))); + /* reset nest plpgsql compile */ + u_sess->plsql_cxt.curr_compile_context = save_compile_context; + u_sess->plsql_cxt.compile_status = save_compile_status; + clearCompileContextList(save_compile_list_length); PG_RE_THROW(); } PG_END_TRY(); @@ -4940,8 +5242,20 @@ static int exec_stmt_dynexecute(PLpgSQL_execstate* estate, PLpgSQL_stmt_dynexecu fake_fcinfo.flinfo = &flinfo; flinfo.fn_oid = InvalidOid; flinfo.fn_mcxt = CurrentMemoryContext; + PG_TRY(); + { + (void)plpgsql_exec_function(func, &fake_fcinfo, true); + } + PG_CATCH(); + { + FormatCallStack* plcallstack = t_thrd.log_cxt.call_stack; + if (plcallstack != NULL) { + t_thrd.log_cxt.call_stack = plcallstack->prev; + } + PG_RE_THROW(); + } + PG_END_TRY(); - (void)plpgsql_exec_function(func, &fake_fcinfo, true); /* * This is used for nested STP. If the transaction Id changed, * then need to create new econtext for the TopTransaction. @@ -4982,9 +5296,12 @@ static int exec_stmt_dynexecute(PLpgSQL_execstate* estate, PLpgSQL_stmt_dynexecu } Cursor_Data* saved_cursor_data = estate->cursor_return_data; + int saved_cursor_numbers = estate->cursor_return_numbers; if (stmt->row != NULL && stmt->row->nfields > 0) { estate->cursor_return_data = (Cursor_Data*)palloc0(sizeof(Cursor_Data) * stmt->row->nfields); + estate->cursor_return_numbers = stmt->row->nfields; } else { + estate->cursor_return_numbers = 0; estate->cursor_return_data = NULL; } @@ -5040,6 +5357,7 @@ static int exec_stmt_dynexecute(PLpgSQL_execstate* estate, PLpgSQL_stmt_dynexecu pfree_ext(estate->cursor_return_data); estate->cursor_return_data = saved_cursor_data; + estate->cursor_return_numbers = saved_cursor_numbers; return PLPGSQL_RC_OK; } @@ -5345,6 +5663,8 @@ static int exec_stmt_open(PLpgSQL_execstate* estate, PLpgSQL_stmt_open* stmt) temp = MemoryContextSwitchTo(pkg->pkg_cxt); curname = TextDatumGetCString(curvar->value); MemoryContextSwitchTo(temp); + } else { + curname = TextDatumGetCString(curvar->value); } } else { curname = TextDatumGetCString(curvar->value); @@ -5392,9 +5712,9 @@ static int exec_stmt_open(PLpgSQL_execstate* estate, PLpgSQL_stmt_open* stmt) assign_text_var(curvar, portal->name); } } - BindCursorWithPortal(portal, estate, curvar->dno); - exec_set_isopen(estate, true, curvar->dno + CURSOR_ISOPEN); - exec_set_rowcount(estate, 0, true, curvar->dno + CURSOR_ROWCOUNT); + BindCursorWithPortal(portal, estate, stmt->curvar); + exec_set_isopen(estate, true, stmt->curvar + CURSOR_ISOPEN); + exec_set_rowcount(estate, 0, true, stmt->curvar + CURSOR_ROWCOUNT); PinPortal(portal); return PLPGSQL_RC_OK; } else { @@ -5483,7 +5803,9 @@ static int exec_stmt_open(PLpgSQL_execstate* estate, PLpgSQL_stmt_open* stmt) MemoryContext temp = MemoryContextSwitchTo(curvar->pkg->pkg_cxt); assign_text_var(curvar, portal->name); MemoryContextSwitchTo(temp); - } + } else { + assign_text_var(curvar, portal->name); + } } else { assign_text_var(curvar, portal->name); } @@ -5496,9 +5818,9 @@ static int exec_stmt_open(PLpgSQL_execstate* estate, PLpgSQL_stmt_open* stmt) pfree_ext(paramLI); } - BindCursorWithPortal(portal, estate, curvar->dno); - exec_set_isopen(estate, true, curvar->dno + CURSOR_ISOPEN); - exec_set_rowcount(estate, 0, true, curvar->dno + CURSOR_ROWCOUNT); + BindCursorWithPortal(portal, estate, stmt->curvar); + exec_set_isopen(estate, true, stmt->curvar + CURSOR_ISOPEN); + exec_set_rowcount(estate, 0, true, stmt->curvar + CURSOR_ROWCOUNT); PinPortal(portal); return PLPGSQL_RC_OK; } @@ -5569,7 +5891,12 @@ static int exec_stmt_fetch(PLpgSQL_execstate* estate, PLpgSQL_stmt_fetch* stmt) if (stmt->rec != NULL) { rec = (PLpgSQL_rec*)(estate->datums[stmt->rec->dno]); } else if (stmt->row != NULL) { - row = (PLpgSQL_row*)(estate->datums[stmt->row->dno]); + row = stmt->row; + if (row->ispkg) { + row = (PLpgSQL_row*)(row->pkg->datums[stmt->row->dno]); + } else { + row = (PLpgSQL_row*)(estate->datums[stmt->row->dno]); + } } else { ereport(ERROR, (errcode(ERRCODE_DATATYPE_MISMATCH), @@ -5595,7 +5922,11 @@ static int exec_stmt_fetch(PLpgSQL_execstate* estate, PLpgSQL_stmt_fetch* stmt) * for adapting A db, just deal when n!=0 */ if (n != 0) { - exec_move_row(estate, rec, row, tuptab->vals[0], tuptab->tupdesc); + if (stmt->bulk_collect) { + exec_read_bulk_collect(estate, row, tuptab); + } else { + exec_move_row(estate, rec, row, tuptab->vals[0], tuptab->tupdesc); + } } exec_eval_cleanup(estate); @@ -5611,9 +5942,9 @@ static int exec_stmt_fetch(PLpgSQL_execstate* estate, PLpgSQL_stmt_fetch* stmt) /* Set the ROW_COUNT and the global FOUND variable appropriately. */ estate->eval_processed = n; exec_set_found(estate, n != 0); - exec_set_cursor_found(estate, (n != 0) ? PLPGSQL_TRUE : PLPGSQL_FALSE, curvar->dno + CURSOR_FOUND); - exec_set_notfound(estate, (n == 0) ? PLPGSQL_TRUE : PLPGSQL_FALSE, curvar->dno + CURSOR_NOTFOUND); - exec_set_rowcount(estate, n, false, curvar->dno + CURSOR_ROWCOUNT); + exec_set_cursor_found(estate, (n != 0) ? PLPGSQL_TRUE : PLPGSQL_FALSE, stmt->curvar + CURSOR_FOUND); + exec_set_notfound(estate, (n == 0) ? PLPGSQL_TRUE : PLPGSQL_FALSE, stmt->curvar + CURSOR_NOTFOUND); + exec_set_rowcount(estate, n, false, stmt->curvar + CURSOR_ROWCOUNT); return PLPGSQL_RC_OK; } @@ -5625,6 +5956,7 @@ static int exec_stmt_fetch(PLpgSQL_execstate* estate, PLpgSQL_stmt_fetch* stmt) static int exec_stmt_close(PLpgSQL_execstate* estate, PLpgSQL_stmt_close* stmt) { PLpgSQL_var* curvar = NULL; + PLpgSQL_var* curRowcountVar = NULL; Portal portal = NULL; char* curname = NULL; @@ -5642,7 +5974,16 @@ static int exec_stmt_close(PLpgSQL_execstate* estate, PLpgSQL_stmt_close* stmt) curname = TextDatumGetCString(curvar->value); portal = SPI_cursor_find(curname); - if (portal == NULL) { + curRowcountVar = (PLpgSQL_var*)(estate->datums[stmt->curvar + CURSOR_ROWCOUNT]); + /* sometime close cursor can be called after exception, don't report error */ + if (portal == NULL && !curRowcountVar->isnull && estate->cur_error != NULL) { + pfree_ext(curname); + exec_set_isopen(estate, false, stmt->curvar + CURSOR_ISOPEN); + exec_set_cursor_found(estate, PLPGSQL_NULL, stmt->curvar + CURSOR_FOUND); + exec_set_notfound(estate, PLPGSQL_NULL, stmt->curvar + CURSOR_NOTFOUND); + exec_set_rowcount(estate, -1, true, stmt->curvar + CURSOR_ROWCOUNT); + return PLPGSQL_RC_OK; + } else if (portal == NULL) { ereport(ERROR, (errcode(ERRCODE_UNDEFINED_CURSOR), errmodule(MOD_PLSQL), @@ -5656,10 +5997,10 @@ static int exec_stmt_close(PLpgSQL_execstate* estate, PLpgSQL_stmt_close* stmt) */ UnpinPortal(portal); SPI_cursor_close(portal); - exec_set_isopen(estate, false, curvar->dno + CURSOR_ISOPEN); - exec_set_cursor_found(estate, PLPGSQL_NULL, curvar->dno + CURSOR_FOUND); - exec_set_notfound(estate, PLPGSQL_NULL, curvar->dno + CURSOR_NOTFOUND); - exec_set_rowcount(estate, -1, true, curvar->dno + CURSOR_ROWCOUNT); + exec_set_isopen(estate, false, stmt->curvar + CURSOR_ISOPEN); + exec_set_cursor_found(estate, PLPGSQL_NULL, stmt->curvar + CURSOR_FOUND); + exec_set_notfound(estate, PLPGSQL_NULL, stmt->curvar + CURSOR_NOTFOUND); + exec_set_rowcount(estate, -1, true, stmt->curvar + CURSOR_ROWCOUNT); return PLPGSQL_RC_OK; } @@ -5723,7 +6064,7 @@ static int exec_stmt_transaction(PLpgSQL_execstate *estate, PLpgSQL_stmt* stmt) _SPI_hold_cursor(); stp_reset_xact_state_and_err_msg(savedisAllowCommitRollback, needResetErrMsg); - if (u_sess->SPI_cxt.portal_stp_exception_counter == 0) { + if (u_sess->SPI_cxt.portal_stp_exception_counter == 0 && u_sess->plsql_cxt.stp_savepoint_cnt == 0) { // Recording Portal's ResourceOwner for rebuilding resource chain // when procedure contain transaction statement. // Current ResourceOwner is Portal ResourceOwner. @@ -5749,6 +6090,12 @@ static int exec_stmt_transaction(PLpgSQL_execstate *estate, PLpgSQL_stmt* stmt) errmsg("unsupported transaction statement type."))); } + /* all savepoint in PL has destoryed or released. */ + u_sess->plsql_cxt.stp_savepoint_cnt = 0; + + /* Update transaction start time. */ + SetCurrentStatementStartTimestamp(); + // 5. Start a new transaction. SPI_start_transaction(); @@ -5762,6 +6109,9 @@ static int exec_stmt_transaction(PLpgSQL_execstate *estate, PLpgSQL_stmt* stmt) // 8. Rebuild subtransaction chain for exception. rebuild_exception_subtransaction_chain(estate); + // 9. move old subtransaction' remain resource into Current Transaction + XactResumeSPIContext(false); + if (u_sess->SPI_cxt.portal_stp_exception_counter == 0) { t_thrd.utils_cxt.CurrentResourceOwner = t_thrd.utils_cxt.STPSavedResourceOwner; } @@ -5822,14 +6172,16 @@ static void copy_cursor_var(PLpgSQL_execstate* estate, int source_dno, int targe * exec_assign_expr Put an expression's result into a variable. * ---------- */ -static void exec_assign_expr(PLpgSQL_execstate* estate, PLpgSQL_datum* target, PLpgSQL_expr* expr) +void exec_assign_expr(PLpgSQL_execstate* estate, PLpgSQL_datum* target, PLpgSQL_expr* expr) { Datum value; Oid valtype; bool isnull = false; Cursor_Data* saved_cursor_data = estate->cursor_return_data; + int saved_cursor_numbers = estate->cursor_return_numbers; + HTAB* tableOfIndex = NULL; - value = exec_eval_expr(estate, expr, &isnull, &valtype); + value = exec_eval_expr(estate, expr, &isnull, &valtype, &tableOfIndex); /* copy cursor data to estate->datums */ if (valtype == REFCURSOROID && target->dtype == PLPGSQL_DTYPE_VAR) { @@ -5848,10 +6200,11 @@ static void exec_assign_expr(PLpgSQL_execstate* estate, PLpgSQL_datum* target, P ExecCopyDataToDatum(estate->datums, target_dno, estate->cursor_return_data); } } - exec_assign_value(estate, target, value, valtype, &isnull); + exec_assign_value(estate, target, value, valtype, &isnull, tableOfIndex); if (saved_cursor_data != estate->cursor_return_data) { pfree_ext(estate->cursor_return_data); estate->cursor_return_data = saved_cursor_data; + estate->cursor_return_numbers = saved_cursor_numbers; } exec_eval_cleanup(estate); } @@ -5884,9 +6237,12 @@ static void exec_assign_c_string(PLpgSQL_execstate* estate, PLpgSQL_datum* targe * call exec_eval_cleanup here for fear of destroying the input Datum value. * ---------- */ -void exec_assign_value(PLpgSQL_execstate* estate, PLpgSQL_datum* target, Datum value, Oid valtype, bool* isNull) +void exec_assign_value(PLpgSQL_execstate* estate, PLpgSQL_datum* target, Datum value, Oid valtype, + bool* isNull, HTAB* tableOfIndex) { switch (target->dtype) { + case PLPGSQL_DTYPE_VARRAY: + case PLPGSQL_DTYPE_TABLE: case PLPGSQL_DTYPE_VAR: { /* * Target is a variable @@ -5915,7 +6271,8 @@ void exec_assign_value(PLpgSQL_execstate* estate, PLpgSQL_datum* target, Datum v * probably in the eval_econtext) into the procedure's memory * context. */ - if (!var->datatype->typbyval && !*isNull) { + bool isByReference = !var->datatype->typbyval && !*isNull; + if (isByReference) { if (var->ispkg) { MemoryContext temp = MemoryContextSwitchTo(var->pkg->pkg_cxt); newvalue = datumCopy(newvalue, false, var->datatype->typlen); @@ -5926,7 +6283,7 @@ void exec_assign_value(PLpgSQL_execstate* estate, PLpgSQL_datum* target, Datum v } /* - * Now free the old value. (We can't do this any earlier + * Now free the old value. (We can't \do this any earlier * because of the possibility that we are assigning the var's * old value to it, eg "foo := foo". We could optimize out * the assignment altogether in such cases, but it's too @@ -5936,9 +6293,30 @@ void exec_assign_value(PLpgSQL_execstate* estate, PLpgSQL_datum* target, Datum v var->value = newvalue; var->isnull = *isNull; - if (!var->datatype->typbyval && !*isNull) { + if (isByReference) { var->freeval = true; } + + if (tableOfIndex != NULL) { + if (var->ispkg) { + MemoryContext temp = MemoryContextSwitchTo(var->pkg->pkg_cxt); + HTAB* newTableOfIndex = copyTableOfIndex(tableOfIndex); + if (var->tableOfIndex != NULL) { + hash_destroy(var->tableOfIndex); + } + var->tableOfIndex = newTableOfIndex; + MemoryContextSwitchTo(temp); + } else { + HTAB* newTableOfIndex = copyTableOfIndex(tableOfIndex); + if (var->tableOfIndex != NULL) { + hash_destroy(var->tableOfIndex); + } + var->tableOfIndex = newTableOfIndex; + } + } else if (*isNull) { + hash_destroy(var->tableOfIndex); + var->tableOfIndex = NULL; + } break; } @@ -6026,6 +6404,8 @@ void exec_assign_value(PLpgSQL_execstate* estate, PLpgSQL_datum* target, Datum v tmptup.t_xc_node_id = 0; #endif tmptup.t_data = td; + tmptup.t_multi_base = InvalidTransactionId; + tmptup.t_xid_base = InvalidTransactionId; exec_move_row(estate, rec, NULL, &tmptup, tupdesc); ReleaseTupleDesc(tupdesc); } @@ -6139,6 +6519,7 @@ void exec_assign_value(PLpgSQL_execstate* estate, PLpgSQL_datum* target, Datum v ArrayType* newarrayval = NULL; SPITupleTable* save_eval_tuptable = NULL; MemoryContext oldcontext = NULL; + AttrNumber attrno = ((PLpgSQL_arrayelem*)target)->assignattrno; /* * We need to do subscript evaluation, which might require @@ -6248,34 +6629,127 @@ void exec_assign_value(PLpgSQL_execstate* estate, PLpgSQL_datum* target, Datum v AssertEreport(estate->eval_tuptable == NULL, MOD_PLSQL, "eval tuptable should not be null"); estate->eval_tuptable = save_eval_tuptable; - /* Coerce source value to match array element type. */ - coerced_value = - exec_simple_cast_value(estate, value, valtype, arrayelem->elemtypoid, arrayelem->arraytypmod, *isNull); + /* attrno not equal to -1 means assign value to attribute of array element. */ + if (attrno != -1) { + /* get array element tupledesc from element typoid. */ + TupleDesc elemtupledesc = + lookup_rowtype_tupdesc_noerror(arrayelem->elemtypoid, arrayelem->arraytypmod, true); + Datum coerced_attr_value = 0; + /* Coerce source value to match array element attribute type. */ + if (elemtupledesc != NULL) { + coerced_attr_value = exec_simple_cast_value(estate, value, valtype, + elemtupledesc->attrs[attrno]->atttypid, elemtupledesc->attrs[attrno]->atttypmod, *isNull); + } else { + ereport(ERROR, + (errcode(ERRCODE_ARRAY_SUBSCRIPT_ERROR), + errmodule(MOD_PLSQL), + errmsg("array element type is not composite in assignment"), + errdetail("array variable \"%s\" must be composite when assign value to attibute", + ((PLpgSQL_var*)target)->refname), + errcause("incorrectly referencing variables"), + erraction("modify assign variable"))); + } + /* + * If the original array is null, cons up an empty array so + * that the assignment can proceed; we'll end with a + * one-element array containing just the assigned-to + * subscript. This only works for varlena arrays, though; for + * fixed-length array types we skip the assignment. We can't + * support assignment of a null entry into a fixed-length + * array, either, so that's a no-op too. This is all ugly but + * corresponds to the current behavior of ExecEvalArrayRef(). + */ + if (arrayelem->arraytyplen > 0 && /* fixed-length array? */ + (oldarrayisnull || *isNull)) { + ReleaseTupleDesc(elemtupledesc); + return; + } - /* - * If the original array is null, cons up an empty array so - * that the assignment can proceed; we'll end with a - * one-element array containing just the assigned-to - * subscript. This only works for varlena arrays, though; for - * fixed-length array types we skip the assignment. We can't - * support assignment of a null entry into a fixed-length - * array, either, so that's a no-op too. This is all ugly but - * corresponds to the current behavior of ExecEvalArrayRef(). - */ - if (arrayelem->arraytyplen > 0 && /* fixed-length array? */ - (oldarrayisnull || *isNull)) { - return; - } + /* oldarrayval and newarrayval should be short-lived */ + oldcontext = MemoryContextSwitchTo(estate->eval_econtext->ecxt_per_tuple_memory); + if (oldarrayisnull) { + oldarrayval = construct_empty_array(arrayelem->elemtypoid); + } else { + oldarrayval = (ArrayType*)DatumGetPointer(oldarraydatum); + } - /* oldarrayval and newarrayval should be short-lived */ - oldcontext = MemoryContextSwitchTo(estate->eval_econtext->ecxt_per_tuple_memory); + /* Get array element value and deform the tuple. */ + bool elemisNull = false; + Datum oldarrayelemval = array_ref(oldarrayval, + nsubscripts, + subscriptvals, + arrayelem->arraytyplen, + arrayelem->elemtyplen, + arrayelem->elemtypbyval, + arrayelem->elemtypalign, + &elemisNull); + bool arrayelemisnull[elemtupledesc->natts]; + Datum arrayelemvalues[elemtupledesc->natts]; + if (elemisNull) { + /* If array element is null, set arrayelemisnull to true for all elements. */ + errno_t rc = memset_s(arrayelemisnull, sizeof(arrayelemisnull), true, sizeof(arrayelemisnull)); + securec_check(rc, "\0", "\0"); + } else { + /* Else build a tmp tuple and deform it. */ + HeapTupleData tmptup; + HeapTupleHeader oldelemdata = DatumGetHeapTupleHeader(oldarrayelemval); + /* Build a temporary HeapTuple control structure */ + tmptup.t_len = HeapTupleHeaderGetDatumLength(oldelemdata); + ItemPointerSetInvalid(&(tmptup.t_self)); + tmptup.t_tableOid = InvalidOid; + tmptup.t_bucketId = InvalidBktId; + HeapTupleSetZeroBase(&tmptup); +#ifdef PGXC + tmptup.t_xc_node_id = 0; +#endif + tmptup.t_data = oldelemdata; + heap_deform_tuple(&tmptup, elemtupledesc, arrayelemvalues, arrayelemisnull); + } - if (oldarrayisnull) { - oldarrayval = construct_empty_array(arrayelem->elemtypoid); + /* Assign attribute value by attrno, and form the new tuple. */ + arrayelemvalues[attrno] = coerced_attr_value; + arrayelemisnull[attrno] = *isNull; + for (int k = 0; k < elemtupledesc->natts; k++) { + if (!arrayelemisnull[k]) { + *isNull = false; + break; + } + } + HeapTuple result = heap_form_tuple(elemtupledesc, arrayelemvalues, arrayelemisnull); + coerced_value = HeapTupleGetDatum(result); + ReleaseTupleDesc(elemtupledesc); } else { - oldarrayval = (ArrayType*)DatumGetPointer(oldarraydatum); - } + /* attrno equals to -1, means assign value to array element. + * Coerce source value to match array element type. + */ + coerced_value = + exec_simple_cast_value(estate, value, valtype, arrayelem->elemtypoid, + arrayelem->arraytypmod, *isNull); + /* + * If the original array is null, cons up an empty array so + * that the assignment can proceed; we'll end with a + * one-element array containing just the assigned-to + * subscript. This only works for varlena arrays, though; for + * fixed-length array types we skip the assignment. We can't + * support assignment of a null entry into a fixed-length + * array, either, so that's a no-op too. This is all ugly but + * corresponds to the current behavior of ExecEvalArrayRef(). + */ + if (arrayelem->arraytyplen > 0 && /* fixed-length array? */ + (oldarrayisnull || *isNull)) { + return; + } + + /* oldarrayval and newarrayval should be short-lived */ + oldcontext = MemoryContextSwitchTo(estate->eval_econtext->ecxt_per_tuple_memory); + + if (oldarrayisnull) { + oldarrayval = construct_empty_array(arrayelem->elemtypoid); + } else { + oldarrayval = (ArrayType*)DatumGetPointer(oldarraydatum); + } + } /* * Build the modified array value. */ @@ -6306,6 +6780,293 @@ void exec_assign_value(PLpgSQL_execstate* estate, PLpgSQL_datum* target, Datum v break; } + case PLPGSQL_DTYPE_TABLEELEM: { + /* + * Target is an element of a table + */ + PLpgSQL_tableelem* tableelem = NULL; + int nsubscripts; + PLpgSQL_expr* subscripts[MAXDIM]; + int subscriptvals[MAXDIM]; + Datum oldtabledatum, coerced_value; + bool oldtableisnull = false; + Oid parenttypoid; + int32 parenttypmod; + ArrayType* oldtableval = NULL; + ArrayType* newtableval = NULL; + SPITupleTable* save_eval_tuptable = NULL; + MemoryContext oldcontext = NULL; + AttrNumber attrno = ((PLpgSQL_tableelem*)target)->assignattrno; + + /* + * We need to do subscript evaluation, which might require + * evaluating general expressions; and the caller might have + * done that too in order to prepare the input Datum. We have + * to save and restore the caller's SPI_execute result, if + * any. + */ + save_eval_tuptable = estate->eval_tuptable; + estate->eval_tuptable = NULL; + + /* + * To handle constructs like x[1][2] := something, we have to + * be prepared to deal with a chain of tableelem datums. Chase + * back to find the base table datum, and save the subscript + * expressions as we go. (We are scanning right to left here, + * but want to evaluate the subscripts left-to-right to + * minimize surprises.) Note that tableelem is left pointing + * to the leftmost tableelem datum, where we will cache the + * table element type data. + */ + nsubscripts = 0; + do { + tableelem = (PLpgSQL_tableelem*)target; + if (nsubscripts >= MAXDIM) { + ereport(ERROR, + (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), + errmodule(MOD_PLSQL), + errmsg("number of table dimensions (%d) exceeds the maximum allowed (%d) in assignment.", + nsubscripts + 1, + MAXDIM))); + } + subscripts[nsubscripts++] = tableelem->subscript; + target = estate->datums[tableelem->tableparentno]; + } while (target->dtype == PLPGSQL_DTYPE_TABLEELEM); + + Assert(target->dtype == PLPGSQL_DTYPE_VAR); + /* Fetch current value of table datum */ + exec_eval_datum(estate, target, &parenttypoid, &parenttypmod, &oldtabledatum, &oldtableisnull); + + /* Update cached type data if necessary */ + if (tableelem->parenttypoid != parenttypoid || tableelem->parenttypmod != parenttypmod) { + Oid tabletypoid; + int32 tabletypmod = parenttypmod; + int16 tabletyplen; + Oid elemtypoid; + int16 elemtyplen; + bool elemtypbyval = false; + char elemtypalign; + + /* + * If target is domain over table, reduce to base type + * e.g : tableA table of typeA, + * parenttypoid: oid of _typeA + * elemtypoid: oid of typeA + * if should check tableA changed or not? + */ + tabletypoid = getBaseTypeAndTypmod(parenttypoid, &tabletypmod); + + /* ... and identify the element type */ + elemtypoid = get_element_type(tabletypoid); + if (!OidIsValid(elemtypoid)) + ereport(ERROR, + (errcode(ERRCODE_DATATYPE_MISMATCH), + errmodule(MOD_PLSQL), + errmsg("subscripted object in assignment is not a table"))); + + /* Collect needed data about the types */ + tabletyplen = get_typlen(tabletypoid); + + get_typlenbyvalalign(elemtypoid, &elemtyplen, &elemtypbyval, &elemtypalign); + + /* Now safe to update the cached data */ + tableelem->parenttypoid = parenttypoid; + tableelem->parenttypmod = parenttypmod; + tableelem->tabletypoid = tabletypoid; + tableelem->tabletypmod = tabletypmod; + tableelem->tabletyplen = tabletyplen; + tableelem->elemtypoid = elemtypoid; + tableelem->elemtyplen = elemtyplen; + tableelem->elemtypbyval = elemtypbyval; + tableelem->elemtypalign = elemtypalign; + } + bool is_nested_table = ((PLpgSQL_var*)target)->nest_table != NULL; + Oid subscriptType = ((PLpgSQL_var*)target)->datatype->tableOfIndexType; + HTAB* elemTableOfIndex = ((PLpgSQL_var*)target)->tableOfIndex; + if (is_nested_table) { + PLpgSQL_var* innerVar = evalSubsciptsNested(estate, (PLpgSQL_var*)target, subscripts, nsubscripts, + 0, subscriptvals, subscriptType, elemTableOfIndex); + target = (PLpgSQL_datum*)innerVar; + /* should assign inner var as a table, copy value's index */ + innerVar->tableOfIndex = copyTableOfIndex(tableOfIndex); + exec_assign_value(estate, target, PointerGetDatum(value), + valtype, isNull, innerVar->tableOfIndex); + break; + } else { + for (int i = 0; i < nsubscripts; i++) { + elemTableOfIndex = evalSubscipts(estate, nsubscripts, i, subscriptvals, + subscripts, subscriptType, elemTableOfIndex); + } + } + /* Now we can restore caller's SPI_execute result if any. */ + AssertEreport(estate->eval_tuptable == NULL, MOD_PLSQL, "eval tuptable should not be null"); + estate->eval_tuptable = save_eval_tuptable; + + /* attrno not equal to -1 means assign value to attribute of array element. */ + if (attrno != -1) { + /* get array element tupledesc from element typoid. */ + TupleDesc elemtupledesc = + lookup_rowtype_tupdesc_noerror(tableelem->elemtypoid, tableelem->tabletypmod, true); + Datum coerced_attr_value = 0; + /* Coerce source value to match array element attribute type. */ + if (elemtupledesc != NULL) { + coerced_attr_value = exec_simple_cast_value(estate, value, valtype, + elemtupledesc->attrs[attrno]->atttypid, elemtupledesc->attrs[attrno]->atttypmod, *isNull); + } else { + ereport(ERROR, + (errcode(ERRCODE_ARRAY_SUBSCRIPT_ERROR), + errmodule(MOD_PLSQL), + errmsg("table element type is not composite in assignment"), + errdetail("table variable \"%s\" must be composite when assign value to attibute", + ((PLpgSQL_var*)target)->refname), + errcause("incorrectly referencing variables"), + erraction("modify table variable"))); + } + /* + * If the original array is null, cons up an empty array so + * that the assignment can proceed; we'll end with a + * one-element array containing just the assigned-to + * subscript. This only works for varlena arrays, though; for + * fixed-length array types we skip the assignment. We can't + * support assignment of a null entry into a fixed-length + * array, either, so that's a no-op too. This is all ugly but + * corresponds to the current behavior of ExecEvalArrayRef(). + */ + if (tableelem->tabletyplen > 0 && /* fixed-length array? */ + (oldtableisnull || *isNull)) { + ReleaseTupleDesc(elemtupledesc); + return; + } + + /* oldarrayval and newarrayval should be short-lived */ + oldcontext = MemoryContextSwitchTo(estate->eval_econtext->ecxt_per_tuple_memory); + if (oldtableisnull) { + oldtableval = construct_empty_array(tableelem->elemtypoid); + } else { + oldtableval = (ArrayType*)DatumGetPointer(oldtabledatum); + } + + /* Get array element value and deform the tuple. */ + bool elemisNull = false; + Datum oldtableelemval = array_ref(oldtableval, + nsubscripts, + subscriptvals, + tableelem->tabletyplen, + tableelem->elemtyplen, + tableelem->elemtypbyval, + tableelem->elemtypalign, + &elemisNull); + bool tableelemisnull[elemtupledesc->natts]; + Datum tableelemvalues[elemtupledesc->natts]; + if (elemisNull) { + /* If array element is null, set arrayelemisnull to true for all elements. */ + errno_t rc = memset_s(tableelemisnull, sizeof(tableelemisnull), true, sizeof(tableelemisnull)); + securec_check(rc, "\0", "\0"); + } else { + /* Else build a tmp tuple and deform it. */ + HeapTupleData tmptup; + HeapTupleHeader oldelemdata = DatumGetHeapTupleHeader(oldtableelemval); + /* Build a temporary HeapTuple control structure */ + tmptup.t_len = HeapTupleHeaderGetDatumLength(oldelemdata); + ItemPointerSetInvalid(&(tmptup.t_self)); + tmptup.t_tableOid = InvalidOid; + tmptup.t_bucketId = InvalidBktId; + HeapTupleSetZeroBase(&tmptup); +#ifdef PGXC + tmptup.t_xc_node_id = 0; +#endif + tmptup.t_data = oldelemdata; + heap_deform_tuple(&tmptup, elemtupledesc, tableelemvalues, tableelemisnull); + } + + /* Assign attribute value by attrno, and form the new tuple. */ + tableelemvalues[attrno] = coerced_attr_value; + tableelemisnull[attrno] = *isNull; + for (int k = 0; k < elemtupledesc->natts; k++) { + if (!tableelemisnull[k]) { + *isNull = false; + break; + } + } + HeapTuple result = heap_form_tuple(elemtupledesc, tableelemvalues, tableelemisnull); + coerced_value = HeapTupleGetDatum(result); + ReleaseTupleDesc(elemtupledesc); + } else { + /* attrno equals to -1, means assign value to array element. + * Coerce source value to match array element type. + */ + + /* Coerce source value to match table element type. */ + coerced_value =exec_simple_cast_value(estate, value, valtype, tableelem->elemtypoid, + tableelem->tabletypmod, *isNull); + + /* + * If the original array is null, cons up an empty array so + * that the assignment can proceed; we'll end with a + * one-element array containing just the assigned-to + * subscript. This only works for varlena arrays, though; for + * fixed-length array types we skip the assignment. We can't + * support assignment of a null entry into a fixed-length + * array, either, so that's a no-op too. This is all ugly but + * corresponds to the current behavior of ExecEvalArrayRef(). + */ + if (tableelem->tabletyplen > 0 && /* fixed-length array? */ + (oldtableisnull || *isNull)) { + return; + } + + /* oldtableval and newtableval should be short-lived */ + oldcontext = MemoryContextSwitchTo(estate->eval_econtext->ecxt_per_tuple_memory); + + if (oldtableisnull) { + oldtableval = construct_empty_array(tableelem->elemtypoid); + } else { + oldtableval = (ArrayType*)DatumGetPointer(oldtabledatum); + } + } + /* + * Build the modified array value. + */ + newtableval = array_set(oldtableval, + nsubscripts, + subscriptvals, + coerced_value, + *isNull, + tableelem->tabletyplen, + tableelem->elemtyplen, + tableelem->elemtypbyval, + tableelem->elemtypalign); + + MemoryContextSwitchTo(oldcontext); + + if (oldtableisnull) { + pfree_ext(oldtableval); + } + + /* + * Assign the new array to the base variable. It's never NULL + * at this point. Note that if the target is a domain, + * coercing the base array type back up to the domain will + * happen within exec_assign_value. + */ + *isNull = false; + ((PLpgSQL_var*)target)->tableOfIndexType = subscriptType; + exec_assign_value(estate, target, PointerGetDatum(newtableval), + tableelem->tabletypoid, isNull, elemTableOfIndex); + break; + } + + case PLPGSQL_DTYPE_ASSIGNLIST: { + /* + * Target has a assign list + */ + PLpgSQL_assignlist* assignvar = (PLpgSQL_assignlist*)target; + List* assignlist = assignvar->assignlist; + PLpgSQL_datum* assigntarget = estate->datums[assignvar->targetno]; + exec_assign_list(estate, assigntarget, assignlist, value, valtype, isNull); + break; + } + default: ereport(ERROR, (errcode(ERRCODE_NULL_VALUE_NOT_ALLOWED), @@ -6315,8 +7076,795 @@ void exec_assign_value(PLpgSQL_execstate* estate, PLpgSQL_datum* target, Datum v } } +static void exec_assign_list(PLpgSQL_execstate* estate, PLpgSQL_datum* assigntarget, + const List* assignlist, Datum value, Oid valtype, bool* isNull) +{ + Datum resultval = value; + Oid resultvaltype = valtype; + PLpgSQL_datum* resulttarget = assigntarget; + PLpgSQL_datum* dummytarget = NULL; + PLpgSQL_temp_assignvar* resultvar = NULL; + List* subscripts = NIL; + ListCell* lc = NULL; + DList* targetlist = NULL; + bool hasarray = false; + int subscriptvals[MAXDIM]; + int nsubscripts; + foreach(lc, assignlist) { + Node* n = (Node*)lfirst(lc); + if (IsA(n, A_Indices)) { + subscripts = lappend(subscripts, n); + hasarray = true; + } else { + if (hasarray) { + if (subscripts != NIL) { + if (resultvar == NULL) { + nsubscripts = list_length(subscripts); + PLpgSQL_datum* oldresulttarget = resulttarget; + evalSubscriptList(estate, subscripts, subscriptvals, nsubscripts, &resulttarget); + /* nested table get inner target, only need one subscripts */ + if (resulttarget != oldresulttarget) { + subscriptvals[0] = subscriptvals[nsubscripts - 1]; + nsubscripts = 1; + } + resultvar = build_temp_assignvar_from_datum(resulttarget, subscriptvals, nsubscripts); + targetlist = dlappend(targetlist, resultvar); + } else { + nsubscripts = list_length(subscripts); + evalSubscriptList(estate, subscripts, subscriptvals, nsubscripts, &dummytarget); + } + resultvar = extractArrayElem(estate, resultvar, subscriptvals, nsubscripts); + targetlist = dlappend(targetlist, resultvar); + list_free_ext(subscripts); + } + resultvar = extractAttrValue(estate, resultvar, strVal(n)); + targetlist = dlappend(targetlist, resultvar); + } else { + resulttarget = get_indirect_target(estate, resulttarget, strVal(n)); + } + } + } + if (subscripts != NIL) { + if (resultvar == NULL) { + nsubscripts = list_length(subscripts); + PLpgSQL_datum* oldresulttarget = resulttarget; + evalSubscriptList(estate, subscripts, subscriptvals, nsubscripts, &resulttarget); + /* nested table already get inner target, only need one subscripts */ + if (resulttarget != oldresulttarget) { + subscriptvals[0] = subscriptvals[nsubscripts - 1]; + nsubscripts = 1; + } + resultvar = build_temp_assignvar_from_datum(resulttarget, subscriptvals, nsubscripts); + targetlist = dlappend(targetlist, resultvar); + } else { + nsubscripts = list_length(subscripts); + evalSubscriptList(estate, subscripts, subscriptvals, nsubscripts, &dummytarget); + } + resultvar = extractArrayElem(estate, resultvar, subscriptvals, nsubscripts); + targetlist = dlappend(targetlist, resultvar); + list_free_ext(subscripts); + } + + if (targetlist != NULL) { + resultval = formDatumFromTargetList(estate, targetlist, value, valtype, &resultvaltype, isNull); + } + + exec_assign_value(estate, resulttarget, resultval, resultvaltype, isNull, + ((PLpgSQL_var*)resulttarget)->tableOfIndex); + dlist_free(targetlist, true); +} + +static Datum formDatumFromTargetList(PLpgSQL_execstate* estate, DList* targetlist, + Datum value, Oid valtype, Oid* resultvaltype, bool* isNull) +{ + DListCell* dlc = NULL; + Datum resultvalue = value; + Oid resulttyp = valtype; + for (dlc = dlist_tail_cell(targetlist); lprev(dlc) != NULL; dlc = lprev(dlc)) { + PLpgSQL_temp_assignvar* n = (PLpgSQL_temp_assignvar*)lfirst(dlc); + if (n->isarrayelem) { + int* subscriptvals = n->subscriptvals; + int nsubscripts = n->nsubscripts; + resultvalue = formDatumFromArrayTarget(estate, (PLpgSQL_temp_assignvar*)lfirst(lprev(dlc)), + subscriptvals, nsubscripts, resultvalue, &resulttyp, isNull); + } else { + int attnum = n->attnum; + resultvalue = formDatumFromAttrTarget(estate, (PLpgSQL_temp_assignvar*)lfirst(lprev(dlc)), + attnum, resultvalue, &resulttyp, isNull); + } + } + *resultvaltype = resulttyp; + return resultvalue; +} + +static Datum formDatumFromAttrTarget(PLpgSQL_execstate* estate, const PLpgSQL_temp_assignvar* target, int attnum, + Datum value, Oid* valtype, bool* isNull) +{ + Oid parenttypoid = target->typoid; + int32 parenttypmod = target->typmod; + TupleDesc tupDesc = lookup_rowtype_tupdesc_noerror(parenttypoid, parenttypmod, true); + + if (tupDesc == NULL) { + ereport(ERROR, + (errcode(ERRCODE_ARRAY_SUBSCRIPT_ERROR), + errmodule(MOD_PLSQL), + errmsg("array element type is not composite in assignment"), + errdetail("array variable must be composite when assign value to attibute"), + errcause("incorrectly referencing variables"), + erraction("modify assign variable"))); + } + Oid targettypoid = tupDesc->attrs[attnum]->atttypid; + int32 targettypmod = tupDesc->attrs[attnum]->atttypmod; + bool attrisnull[tupDesc->natts]; + Datum attrvalues[tupDesc->natts]; + Datum coerced_value = exec_simple_cast_value(estate, value, *valtype, targettypoid, targettypmod, *isNull); + + if (target->isnull) { + errno_t rc = memset_s(attrisnull, sizeof(attrisnull), true, sizeof(attrisnull)); + securec_check(rc, "\0", "\0"); + } else { + HeapTupleData tmptup; + HeapTupleHeader olddata = DatumGetHeapTupleHeader(target->value); + tmptup.t_len = HeapTupleHeaderGetDatumLength(olddata); + ItemPointerSetInvalid(&(tmptup.t_self)); + tmptup.t_tableOid = InvalidOid; + tmptup.t_bucketId = InvalidBktId; +#ifdef PGXC + tmptup.t_xc_node_id = 0; +#endif + tmptup.t_data = olddata; + heap_deform_tuple(&tmptup, tupDesc, attrvalues, attrisnull); + } + + attrvalues[attnum] = coerced_value; + attrisnull[attnum] = *isNull; + HeapTuple result = heap_form_tuple(tupDesc, attrvalues, attrisnull); + Datum newresult = HeapTupleGetDatum(result); + + ReleaseTupleDesc(tupDesc); + *valtype = parenttypoid; + *isNull = false; + return newresult; +} + +static Datum formDatumFromArrayTarget(PLpgSQL_execstate* estate, const PLpgSQL_temp_assignvar* target, + int* subscriptvals, int nsubscripts, Datum value, Oid* resultvaltype, bool* isNull) +{ + Oid parenttypoid = target->typoid; + int32 parenttypmod = target->typmod; + ArrayType* oldarrayval = NULL; + ArrayType* newarrayval = NULL; + Datum oldarraydatum = target->value; + bool oldarrayisnull = target->isnull; + int32 arraytypmod = parenttypmod; + + Oid arraytypoid = getBaseTypeAndTypmod(parenttypoid, &arraytypmod); + Oid elemtypoid = get_element_type(arraytypoid); + if (!OidIsValid(elemtypoid)) + ereport(ERROR, + (errcode(ERRCODE_DATATYPE_MISMATCH), + errmodule(MOD_PLSQL), + errmsg("subscripted object in assignment is not an array"))); + int16 arraytyplen = get_typlen(arraytypoid); + int16 elemtyplen; + bool elemtypbyval = false; + char elemtypalign; + get_typlenbyvalalign(elemtypoid, &elemtyplen, &elemtypbyval, &elemtypalign); + + Datum coerced_value = + exec_simple_cast_value(estate, value, *resultvaltype, elemtypoid, + arraytypmod, *isNull); + + arraytyplen = -1; /* need to adjust */ + if (arraytyplen > 0 && /* fixed-length array? */ + (oldarrayisnull || *isNull)) { + *resultvaltype = parenttypoid; + return (Datum)0; + } + MemoryContext oldcontext = MemoryContextSwitchTo(estate->eval_econtext->ecxt_per_tuple_memory); + if (oldarrayisnull) { + oldarrayval = construct_empty_array(elemtypoid); + } else { + oldarrayval = (ArrayType*)DatumGetPointer(oldarraydatum); + } + newarrayval = array_set(oldarrayval, + nsubscripts, + subscriptvals, + coerced_value, + *isNull, + arraytyplen, + elemtyplen, + elemtypbyval, + elemtypalign); + MemoryContextSwitchTo(oldcontext); + + if (oldarrayisnull) { + pfree_ext(oldarrayval); + } + *isNull = false; + *resultvaltype = arraytypoid; + return PointerGetDatum(newarrayval); +} + +static PLpgSQL_temp_assignvar* extractAttrValue(PLpgSQL_execstate* estate, + PLpgSQL_temp_assignvar* target, char* attrname) +{ + PLpgSQL_temp_assignvar* result = NULL; + bool isNull = false; + Oid parenttypoid = target->typoid; + int32 parenttypmod = target->typmod; + int i; + + TupleDesc tupDesc = lookup_rowtype_tupdesc_noerror(parenttypoid, parenttypmod, true); + if (tupDesc == NULL) { + ereport(ERROR, + (errcode(ERRCODE_ARRAY_SUBSCRIPT_ERROR), + errmodule(MOD_PLSQL), + errmsg("array element type is not composite in assignment"), + errdetail("array variable \"%s\" must be composite when assign value to attibute", attrname), + errcause("incorrectly referencing variables"), + erraction("modify assign variable"))); + } + AttrNumber attrno = InvalidAttrNumber; + for (i = 0; i < tupDesc->natts; i++) { + if (namestrcmp(&(tupDesc->attrs[i]->attname), attrname) == 0) { + attrno = tupDesc->attrs[i]->attnum; + break; + } + } + if (attrno == InvalidAttrNumber) + ereport(ERROR, + (errcode(ERRCODE_INVALID_ATTRIBUTE), + errmodule(MOD_EXECUTOR), + errmsg("attribute \"%s\" does not exist", attrname))); + + Datum resultvalue = (Datum)0; + if (!target->isnull) { + HeapTupleHeader olddata = DatumGetHeapTupleHeader(target->value); + resultvalue = GetAttributeByNum(olddata, attrno, &isNull); + } + result = (PLpgSQL_temp_assignvar*)palloc0(sizeof(PLpgSQL_temp_assignvar)); + result->isarrayelem = false; + result->isnull = target->isnull || isNull; + result->typoid = tupDesc->attrs[i]->atttypid; + result->typmod = tupDesc->attrs[i]->atttypmod; + result->attnum = i; + result->value = resultvalue; + result->attrname = pstrdup(attrname); + + ReleaseTupleDesc(tupDesc); + return result; +} + +static PLpgSQL_temp_assignvar* extractArrayElem(PLpgSQL_execstate* estate, PLpgSQL_temp_assignvar* target, + int* subscriptvals, int nsubscripts) +{ + PLpgSQL_temp_assignvar* result = NULL; + Oid parenttypoid = target->typoid; + int32 arraytypmod = target->typmod; + Oid arraytypoid = getBaseTypeAndTypmod(parenttypoid, &arraytypmod); + Oid elemtypoid = get_element_type(arraytypoid); + ArrayType* arrayval = NULL; + if (!OidIsValid(elemtypoid)) + ereport(ERROR, + (errcode(ERRCODE_DATATYPE_MISMATCH), + errmodule(MOD_PLSQL), + errmsg("subscripted object in assignment is not an array"))); + int16 arraytyplen = get_typlen(arraytypoid); + int16 elemtyplen; + bool elemtypbyval = false; + char elemtypalign; + get_typlenbyvalalign(elemtypoid, &elemtyplen, &elemtypbyval, &elemtypalign); + + if (target->isnull) { + arrayval = construct_empty_array(elemtypoid); + } else { + arrayval = (ArrayType*)DatumGetPointer(target->value); + } + bool elemisNull = false; + Datum arrayelemval = array_ref(arrayval, + nsubscripts, + subscriptvals, + arraytyplen, + elemtyplen, + elemtypbyval, + elemtypalign, + &elemisNull); + result = (PLpgSQL_temp_assignvar*)palloc0(sizeof(PLpgSQL_temp_assignvar)); + result->isarrayelem = true; + result->isnull = elemisNull; + result->typoid = elemtypoid; + result->typmod = arraytypmod; + result->value = arrayelemval; + result->subscriptvals = (int *)palloc(sizeof(int) * nsubscripts); + for (int i = 0; i < nsubscripts; i++) { + result->subscriptvals[i] = subscriptvals[i]; + } + result->nsubscripts = nsubscripts; + if (target->isnull) { + pfree_ext(arrayval); + } + return result; +} + +static PLpgSQL_temp_assignvar* build_temp_assignvar_from_datum(PLpgSQL_datum* target, + int* subscriptvals, int nsubscripts) +{ + PLpgSQL_var* var = (PLpgSQL_var*)target; + PLpgSQL_temp_assignvar* result = NULL; + if (var->datatype->typinput.fn_oid == F_ARRAY_IN) { + result = (PLpgSQL_temp_assignvar*)palloc0(sizeof(PLpgSQL_temp_assignvar)); + result->isarrayelem = true; + result->isnull = var->isnull; + result->typoid = var->datatype->typoid; + result->typmod = var->datatype->atttypmod; + result->value = var->value; + result->subscriptvals = (int *)palloc(sizeof(int) * nsubscripts); + for (int i = 0; i < nsubscripts; i++) { + result->subscriptvals[i] = subscriptvals[i]; + } + result->nsubscripts = nsubscripts; + return result; + } + if (var->datatype->typinput.fn_oid == F_DOMAIN_IN) { + HeapTuple type_tuple = SearchSysCache1(TYPEOID, ObjectIdGetDatum(var->datatype->typoid)); + if (HeapTupleIsValid(type_tuple)) { + Form_pg_type type_form = (Form_pg_type)GETSTRUCT(type_tuple); + if (F_ARRAY_OUT == type_form->typoutput) { + result = (PLpgSQL_temp_assignvar*)palloc0(sizeof(PLpgSQL_temp_assignvar)); + result->isarrayelem = true; + result->isnull = var->isnull; + result->typoid = var->datatype->typoid; + result->typmod = var->datatype->atttypmod; + result->value = var->value; + result->subscriptvals = (int *)palloc(sizeof(int) * nsubscripts); + for (int i = 0; i < nsubscripts; i++) { + result->subscriptvals[i] = subscriptvals[i]; + } + result->nsubscripts = nsubscripts; + ReleaseSysCache(type_tuple); + return result; + } + } + ReleaseSysCache(type_tuple); + } + ereport(ERROR, + (errcode(ERRCODE_DATATYPE_MISMATCH), + errmodule(MOD_PLSQL), + errmsg("subscripted object in assignment is not an array"))); + return result; +} + +static void evalSubscriptList(PLpgSQL_execstate* estate, const List* subscripts, + int* subscriptvals, int nsubscripts, PLpgSQL_datum** target) +{ + if (nsubscripts > MAXDIM) { + ereport(ERROR, + (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), + errmodule(MOD_PLSQL), + errmsg("number of array dimensions (%d) exceeds the maximum allowed (%d) in assignment.", + nsubscripts, MAXDIM))); + } + int i = 0; + ListCell* lc = NULL; + SPITupleTable* save_eval_tuptable = NULL; + save_eval_tuptable = estate->eval_tuptable; + estate->eval_tuptable = NULL; + + if (*target != NULL && (*target)->dtype == PLPGSQL_DTYPE_VAR && + ((PLpgSQL_var*)(*target))->datatype->collectionType == PLPGSQL_COLLECTION_TABLE) { + int tableof_level = 0; + char* valname = ((PLpgSQL_var*)(*target))->refname; + PLpgSQL_expr* subexprs[nsubscripts]; + foreach (lc, subscripts) { + HTAB* tableOfIndex = ((PLpgSQL_var*)(*target))->tableOfIndex; + Oid subscriptType = ((PLpgSQL_var*)(*target))->datatype->tableOfIndexType; + /* for table type, if has more than one input arg list, + * it should get arg list from left to right as index from outter to inner */ + bool is_nested_table = (((PLpgSQL_var*)(*target))->nest_table != NULL); + Node* n = (Node*)lfirst(lc); + if (!IsA(n, A_Indices)) { + ereport(ERROR, + (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), + errmodule(MOD_PLSQL), + errmsg("subscripts list has other members"))); + } + subexprs[nsubscripts - i - 1] = (PLpgSQL_expr*)(((A_Indices*)n)->uidx); + PLpgSQL_var* nestVar = NULL; + if (is_nested_table) { + nestVar = evalSubsciptsNested(estate, (PLpgSQL_var*)(*target), subexprs, nsubscripts, i, + subscriptvals, subscriptType, tableOfIndex); + *target = (PLpgSQL_datum*)nestVar; + tableof_level++; + } else { + /* nest tableof value's nest level should match subexprs's number. */ + if (i > tableof_level) { + ereport(ERROR, + (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), + errmodule(MOD_PLSQL), + errmsg("subscripts list has members more than tableof value %s expected", valname))); + } + tableOfIndex = evalSubscipts(estate, nsubscripts, i, subscriptvals, + subexprs, subscriptType, tableOfIndex); + ((PLpgSQL_var*)(*target))->tableOfIndex = tableOfIndex; + } + i++; + } + if (i - tableof_level != 1) { + ereport(ERROR, + (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), + errmodule(MOD_PLSQL), + errmsg("subscripts list has members less than tableof value %s expected", valname))); + } + Assert(estate->eval_tuptable == NULL); + estate->eval_tuptable = save_eval_tuptable; + return; + } + + PLpgSQL_expr* subexpr = NULL; + bool subisnull = false; + + foreach(lc, subscripts) { + Node* n = (Node*)lfirst(lc); + if (!IsA(n, A_Indices)) { + ereport(ERROR, + (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), + errmodule(MOD_PLSQL), + errmsg("subscripts list has other members"))); + } + + subexpr = (PLpgSQL_expr*)(((A_Indices*)n)->uidx); + *(subscriptvals + i) = exec_eval_integer(estate, subexpr, &subisnull); + if (subisnull) { + ereport(ERROR, + (errcode(ERRCODE_NULL_VALUE_NOT_ALLOWED), + errmodule(MOD_PLSQL), + errmsg("array subscript in assignment must not be null"))); + } + i++; + if (estate->eval_tuptable != NULL) { + SPI_freetuptable(estate->eval_tuptable); + } + estate->eval_tuptable = NULL; + } + Assert(estate->eval_tuptable == NULL); + estate->eval_tuptable = save_eval_tuptable; +} + +static PLpgSQL_datum* get_indirect_target(PLpgSQL_execstate* estate, PLpgSQL_datum* assigntarget, const char* filed) +{ + if (assigntarget->dtype != PLPGSQL_DTYPE_ROW && assigntarget->dtype != PLPGSQL_DTYPE_RECORD) { + ereport(ERROR, + (errcode(ERRCODE_NULL_VALUE_NOT_ALLOWED), + errmodule(MOD_PLSQL), + errmsg("no filed in schalar target."))); + } + + PLpgSQL_row* row = (PLpgSQL_row*)assigntarget; + for (int i = 0; i < row->nfields; i++) { + if (row->fieldnames[i] && strcmp(row->fieldnames[i], filed) == 0) { + if (row->ispkg) { + return row->pkg->datums[row->varnos[i]]; + } else { + return estate->datums[row->varnos[i]]; + } + } + } + + ereport(ERROR, + (errcode(ERRCODE_NULL_VALUE_NOT_ALLOWED), + errmodule(MOD_PLSQL), + errmsg("no filed in row target."))); + return NULL; +} + +/* return nested table var if get inner table, return NULL if get nested table's elem */ +static PLpgSQL_var* evalSubsciptsNested(PLpgSQL_execstate* estate, PLpgSQL_var* tablevar, PLpgSQL_expr** subscripts, + int nsubscripts, int pos, int* subscriptvals, Oid subscriptType, HTAB* tableOfIndex) +{ + if (tablevar == NULL || tablevar->nest_table == NULL) { + ereport(ERROR, + (errcode(ERRCODE_NULL_VALUE_NOT_ALLOWED), + errmodule(MOD_PLSQL), + errmsg("table subscript in assignment not match nested table."))); + } + bool subisnull = false; + Datum exprdatum; + /* get this level's index and then call evalSubsciptsNested to get inner table type's subscripts */ + if (subscriptType == VARCHAROID) { + exprdatum = exec_eval_varchar(estate, subscripts[nsubscripts - 1 - pos], &subisnull); + } else { + /* subcript type is integer */ + exprdatum = (Datum)exec_eval_integer(estate, subscripts[nsubscripts - 1 - pos], &subisnull); + } + if (subisnull) { + ereport(ERROR, + (errcode(ERRCODE_NULL_VALUE_NOT_ALLOWED), + errmodule(MOD_PLSQL), + errmsg("table subscript in assignment must not be null"))); + } + TableOfIndexKey key; + key.exprtypeid = subscriptType; + key.exprdatum = exprdatum; + PLpgSQL_var* old_var = NULL; + int index = getTableOfIndexByDatumValue(key, tableOfIndex, &old_var); + if (index < 0) { + // if not exits new nested table var + index = addNewNestedTable(estate, key, tablevar); + } else { + Assert(old_var != NULL); + index = old_var->dno; + } + subscriptvals[pos] = index; + + if (estate->eval_tuptable != NULL) { + SPI_freetuptable(estate->eval_tuptable); + } + estate->eval_tuptable = NULL; + + PLpgSQL_var* nest_var = (PLpgSQL_var*)estate->datums[index]; + + return nest_var; +} + /* - * exec_eval_datum Get current value of a PLpgSQL_datum + * Evaluate the subscripts, switch into left-to-right order. + * Like ExecEvalArrayRef(), complain if any subscript is null. + */ +static HTAB* evalSubscipts(PLpgSQL_execstate* estate, int nsubscripts, int pos, int* subscriptvals, + PLpgSQL_expr** subscripts, Oid subscriptType, HTAB* tableOfIndex) +{ + bool subisnull = false; + Oid exprtypeid; + /* subcript type is index by varchar/integer */ + if (OidIsValid(subscriptType)) { + Datum exprdatum = exec_eval_expr(estate, subscripts[nsubscripts - 1 - pos], &subisnull, &exprtypeid); + exprdatum = exec_simple_cast_value(estate, exprdatum, exprtypeid, subscriptType, -1, subisnull); + if (subisnull) { + ereport(ERROR, + (errcode(ERRCODE_NULL_VALUE_NOT_ALLOWED), + errmodule(MOD_PLSQL), + errmsg("table subscript in assignment must not be null"))); + } + + TableOfIndexKey key; + key.exprtypeid = subscriptType; + key.exprdatum = exprdatum; + /* type is varchar/integer */ + int index = getTableOfIndexByDatumValue(key, tableOfIndex); + if (index >= 0) { + subscriptvals[pos] = index; + } else { + subscriptvals[pos] = insertTableOfIndexByDatumValue(key, &tableOfIndex); + } + } else { + /* subcript type is integer */ + subscriptvals[pos] = exec_eval_integer(estate, subscripts[nsubscripts - 1 - pos], &subisnull); + if (subisnull) { + ereport(ERROR, + (errcode(ERRCODE_NULL_VALUE_NOT_ALLOWED), + errmodule(MOD_PLSQL), + errmsg("array subscript in assignment must not be null"))); + } + } + /* + * Clean up in case the subscript expression wasn't + * simple. We can't do exec_eval_cleanup, but we can do + * this much (which is safe because the integer subscript + * value is surely pass-by-value), and we must do it in + * case the next subscript expression isn't simple either. + */ + if (estate->eval_tuptable != NULL) { + SPI_freetuptable(estate->eval_tuptable); + } + estate->eval_tuptable = NULL; + + return tableOfIndex; +} + +static uint32 tableOfIndexHashFunc(const void* key, Size keysize) +{ + const TableOfIndexKey *item = (const TableOfIndexKey *) key; + int16 typLen; + bool typByVal = false; + get_typlenbyval(item->exprtypeid, &typLen, &typByVal); + Size size = datumGetSize(item->exprdatum, typByVal, typLen); + if (item->exprtypeid == VARCHAROID) + return DatumGetUInt32(hash_any((const unsigned char*)item->exprdatum, size)); + else + return DatumGetUInt32(hash_uint32((uint32)item->exprdatum)); +} + +static int tableOfIndexKeyMatch(const void *left, const void *right, uint32 keysize) +{ + TableOfIndexKey* leftItem = (TableOfIndexKey*)left; + TableOfIndexKey* rightItem = (TableOfIndexKey*)right; + Assert(NULL != leftItem); + Assert(NULL != rightItem); + + if (leftItem->exprtypeid != rightItem->exprtypeid) { + return 1; + } + + int16 typLen; + bool typByVal = false; + get_typlenbyval(leftItem->exprtypeid, &typLen, &typByVal); + if (!datumIsEqual(leftItem->exprdatum, rightItem->exprdatum, typByVal, typLen)) { + return 1; + } + return 0; +} + +static HTAB* createTableOfIndex() +{ + HASHCTL ctl; + errno_t rc = memset_s(&ctl, sizeof(ctl), 0, sizeof(ctl)); + securec_check(rc, "\0", "\0"); + ctl.keysize = sizeof(TableOfIndexKey); + ctl.entrysize = sizeof(TableOfIndexEntry); + ctl.hash = (HashValueFunc)tableOfIndexHashFunc; + ctl.match = (HashCompareFunc)tableOfIndexKeyMatch; + MemoryContext indexContext = AllocSetContextCreate(CurrentMemoryContext, + "tableOfIndexContext", + ALLOCSET_DEFAULT_MINSIZE, + ALLOCSET_DEFAULT_INITSIZE, + ALLOCSET_DEFAULT_MAXSIZE); + ctl.hcxt = indexContext; + int flags = HASH_ELEM | HASH_FUNCTION | HASH_CONTEXT | HASH_COMPARE | HASH_EXTERN_CONTEXT; + HTAB* hashTable = hash_create("tableof_index", TABLEOFINDEXBUCKETNUM, &ctl, flags); + return hashTable; +} + +HTAB* copyTableOfIndex(HTAB* oldValue) +{ + if (oldValue == NULL) { + return NULL; + } + HTAB* newValue = createTableOfIndex(); + HASH_SEQ_STATUS hashSeq; + hash_seq_init(&hashSeq, oldValue); + TableOfIndexEntry* srcEntry = NULL; + while ((srcEntry = (TableOfIndexEntry*)hash_seq_search(&hashSeq)) != NULL) { + bool found = false; + TableOfIndexEntry* desEntry = (TableOfIndexEntry*)hash_search( + newValue, (const void*)&srcEntry->key, HASH_ENTER, &found); + Assert(!found); + if (desEntry == NULL) { + ereport(ERROR, (errmodule(MOD_PLSQL), errcode(ERRCODE_NULL_VALUE_NOT_ALLOWED), + errmsg("palloc hash element TableOfIndexEntry failed"), + errdetail("N/A"), errcause("out of memory"), + erraction("set more memory"))); + } + int16 typLen; + bool typByVal = false; + get_typlenbyval(srcEntry->key.exprtypeid, &typLen, &typByVal); + desEntry->key.exprdatum = datumCopy(srcEntry->key.exprdatum, typByVal, typLen); + desEntry->key.exprtypeid = srcEntry->key.exprtypeid; + desEntry->index = srcEntry->index; + desEntry->var = srcEntry->var; + } + + return newValue; +} + +int getTableOfIndexByDatumValue(TableOfIndexKey key, HTAB* tableOfIndex, PLpgSQL_var** node) +{ + if (tableOfIndex == NULL) { + return -1; + } + + bool found = false; + TableOfIndexEntry* entry = (TableOfIndexEntry*)hash_search( + tableOfIndex, (const void*)&key, HASH_FIND, &found); + if (found) { + if (node != NULL) + *node = entry->var; + return entry->index; + } else { + return -1; + } +} + +static PLpgSQL_var* makeNewNestedPlpgsqlVar(PLpgSQL_var* src) +{ + if (src == NULL) { + return NULL; + } + PLpgSQL_var* dest = (PLpgSQL_var*)palloc(sizeof(PLpgSQL_var)); + dest->dtype = src->dtype; + dest->dno = 0; + dest->ispkg = src->ispkg; + dest->refname = pstrdup(src->refname); + dest->lineno = src->lineno; + dest->datatype = src->datatype; + dest->isconst = src->isconst; + dest->notnull = src->notnull; + dest->default_val = NULL; + dest->cursor_explicit_expr = NULL; + dest->value = InvalidOid; + dest->isnull = src->isnull; + dest->freeval = src->freeval; + dest->is_cursor_var = src->is_cursor_var; + dest->is_cursor_open = src->is_cursor_open; + dest->pkg_name = NIL; + dest->pkg = NULL; + dest->tableOfIndexType = src->tableOfIndexType; + dest->tableOfIndex = NULL; + dest->nest_table = makeNewNestedPlpgsqlVar(src->nest_table); + return dest; +} + +/* + * add new PLpgSQL_var into estate and save correspond index into bast table var's array. + * array's elem is int4, correspond index save in tableofindex. + * and then save index into base table var's indexoftable. + */ +static int addNewNestedTable(PLpgSQL_execstate* estate, TableOfIndexKey key, PLpgSQL_var* base_table) +{ + PLpgSQL_var* origin_table = base_table->nest_table; + PLpgSQL_var* new_nest_table = makeNewNestedPlpgsqlVar(origin_table); + Oid elemtypoid = INT4OID; + ArrayType* arrayval = NULL; + if (base_table->value == InvalidOid) { + arrayval = construct_empty_array(elemtypoid); + } else { + arrayval = (ArrayType*)base_table->value; + } + int dno = plpgsql_estate_adddatum(estate, (PLpgSQL_datum*)new_nest_table); + int idx = insertTableOfIndexByDatumValue(key, &base_table->tableOfIndex, new_nest_table); + /* save nest table's dno into array */ + base_table->value = + fillNestedTableArray(arrayval, base_table->datatype->typoid, INT4OID, dno, idx); + base_table->isnull = false; + return dno; +} + +Datum fillNestedTableArray(ArrayType* arrayval, Oid parenttypoid, Oid elemtypoid, int value, int idx) +{ + int32 tabletypmod = 0; + Oid tabletypoid = getBaseTypeAndTypmod(parenttypoid, &tabletypmod); + if (get_element_type(tabletypoid) != elemtypoid) { + elog(ERROR, "wrong input elemtypoid"); + } + int16 tabletyplen = get_typlen(tabletypoid); + int16 elemtyplen; + bool elemtypbyval = false; + char elemtypalign; + get_typlenbyvalalign(elemtypoid, &elemtyplen, &elemtypbyval, &elemtypalign); + ArrayType* resultArray = array_set(arrayval, + 1, + &idx, + value, + false, + tabletyplen, + elemtyplen, + elemtypbyval, + elemtypalign); + return (Datum)resultArray; +} + +static int insertTableOfIndexByDatumValue(TableOfIndexKey key, HTAB** tableOfIndex, PLpgSQL_var* var) +{ + if (*tableOfIndex == NULL) { + *tableOfIndex = createTableOfIndex(); + } + bool found = false; + long numTotalIndex = hash_get_num_entries(*tableOfIndex); + int16 typLen; + bool typByVal = false; + get_typlenbyval(key.exprtypeid, &typLen, &typByVal); + key.exprdatum = datumCopy(key.exprdatum, typByVal, typLen); + key.exprtypeid = key.exprtypeid; + TableOfIndexEntry* desEntry = + (TableOfIndexEntry*)hash_search(*tableOfIndex, (const void*)&key, HASH_ENTER, &found); + Assert(!found); + desEntry->index = numTotalIndex + 1; + desEntry->var = var; + return desEntry->index; +} + +/* + * exec_eval_datum Get current value of a PLpgSQL_datum * * The type oid, typmod, value in Datum format, and null flag are returned. * @@ -6327,12 +7875,14 @@ void exec_assign_value(PLpgSQL_execstate* estate, PLpgSQL_datum* target, Datum v * cases we have to palloc a return value, and in such cases we put it into * the estate's short-term memory context. */ -static void exec_eval_datum( - PLpgSQL_execstate* estate, PLpgSQL_datum* datum, Oid* typeId, int32* typetypmod, Datum* value, bool* isnull) +static void exec_eval_datum(PLpgSQL_execstate* estate, PLpgSQL_datum* datum, Oid* typeId, + int32* typetypmod, Datum* value, bool* isnull) { MemoryContext oldcontext; switch (datum->dtype) { + case PLPGSQL_DTYPE_VARRAY: + case PLPGSQL_DTYPE_TABLE: case PLPGSQL_DTYPE_VAR: { PLpgSQL_var* var = (PLpgSQL_var*)datum; @@ -6459,6 +8009,8 @@ Oid exec_get_datum_type(PLpgSQL_execstate* estate, PLpgSQL_datum* datum) Oid typeId; switch (datum->dtype) { + case PLPGSQL_DTYPE_VARRAY: + case PLPGSQL_DTYPE_TABLE: case PLPGSQL_DTYPE_VAR: { PLpgSQL_var* var = (PLpgSQL_var*)datum; @@ -6540,16 +8092,27 @@ Oid exec_get_datum_type(PLpgSQL_execstate* estate, PLpgSQL_datum* datum) * An extended version of exec_get_datum_type, which also retrieves the * typmod and collation of the datum. */ -void exec_get_datum_type_info( - PLpgSQL_execstate* estate, PLpgSQL_datum* datum, Oid* typeId, int32* typmod, Oid* collation, PLpgSQL_function* func) +void exec_get_datum_type_info(PLpgSQL_execstate* estate, PLpgSQL_datum* datum, Oid* typeId, int32* typmod, + Oid* collation, Oid* tableOfIndexType, PLpgSQL_function* func) { switch (datum->dtype) { + case PLPGSQL_DTYPE_VARRAY: + case PLPGSQL_DTYPE_TABLE: case PLPGSQL_DTYPE_VAR: { PLpgSQL_var* var = (PLpgSQL_var*)datum; - - *typeId = var->datatype->typoid; - *typmod = var->datatype->atttypmod; + if (var->nest_table != NULL) { + PLpgSQL_var* nest = var->nest_table; + while (nest != NULL) { + *typeId = nest->datatype->typoid; + *typmod = nest->datatype->atttypmod; + nest = nest->nest_table; + } + } else { + *typeId = var->datatype->typoid; + *typmod = var->datatype->atttypmod; + } *collation = var->datatype->collation; + *tableOfIndexType = var->tableOfIndexType; break; } @@ -6685,6 +8248,16 @@ static bool exec_eval_boolean(PLpgSQL_execstate* estate, PLpgSQL_expr* expr, boo return DatumGetBool(exprdatum); } +static Datum exec_eval_varchar(PLpgSQL_execstate* estate, PLpgSQL_expr* expr, bool* isNull) +{ + Datum exprdatum; + Oid exprtypeid; + + exprdatum = exec_eval_expr(estate, expr, isNull, &exprtypeid); + exprdatum = exec_simple_cast_value(estate, exprdatum, exprtypeid, VARCHAROID, -1, *isNull); + return PointerGetDatum(exprdatum); +} + /* ---------- * exec_eval_expr Evaluate an expression and return * the result Datum. @@ -6692,15 +8265,20 @@ static bool exec_eval_boolean(PLpgSQL_execstate* estate, PLpgSQL_expr* expr, boo * NOTE: caller must do exec_eval_cleanup when done with the Datum. * ---------- */ -static Datum exec_eval_expr(PLpgSQL_execstate* estate, PLpgSQL_expr* expr, bool* isNull, Oid* rettype) +static Datum exec_eval_expr(PLpgSQL_execstate* estate, PLpgSQL_expr* expr, bool* isNull, Oid* rettype, + HTAB** tableOfIndex) { Datum result = 0; int rc; +#ifndef ENABLE_PRIVATEGAUSS // forbid commit/rollback in the stp which is called to get value bool savedisAllowCommitRollback = false; bool needResetErrMsg = false; needResetErrMsg = stp_disable_xact_and_set_err_msg(&savedisAllowCommitRollback, STP_XACT_USED_AS_EXPR); - +#endif +#ifdef ENABLE_PRIVATEGAUSS + TransactionId oldTransactionId = SPI_get_top_transaction_id(); +#endif /* * If first time through, create a plan for this expression. */ @@ -6717,8 +8295,12 @@ static Datum exec_eval_expr(PLpgSQL_execstate* estate, PLpgSQL_expr* expr, bool* * If this is a simple expression, bypass SPI and use the executor * directly */ - if (exec_eval_simple_expr(estate, expr, &result, isNull, rettype)) { + if (exec_eval_simple_expr(estate, expr, &result, isNull, rettype, tableOfIndex)) { +#ifndef ENABLE_PRIVATEGAUSS stp_reset_xact_state_and_err_msg(savedisAllowCommitRollback, needResetErrMsg); +#else + stp_check_transaction_and_create_econtext(estate,oldTransactionId); +#endif return result; } @@ -6726,8 +8308,9 @@ static Datum exec_eval_expr(PLpgSQL_execstate* estate, PLpgSQL_expr* expr, bool* * Else do it the hard way via exec_run_select */ rc = exec_run_select(estate, expr, 2, NULL); +#ifndef ENABLE_PRIVATEGAUSS stp_reset_xact_state_and_err_msg(savedisAllowCommitRollback, needResetErrMsg); - +#endif if (rc != SPI_OK_SELECT) { ereport(ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), @@ -6753,6 +8336,9 @@ static Datum exec_eval_expr(PLpgSQL_execstate* estate, PLpgSQL_expr* expr, bool* * ... and get the column's datatype. */ *rettype = SPI_gettypeid(estate->eval_tuptable->tupdesc, 1); + if (plpgsql_estate && plpgsql_estate->curr_nested_table_type != InvalidOid) { + *rettype = plpgsql_estate->curr_nested_table_type; + } /* * If there are no rows selected, the result is a NULL of that type. @@ -6877,7 +8463,12 @@ static int exec_for_query(PLpgSQL_execstate* estate, PLpgSQL_stmt_forq* stmt, Po if (stmt->rec != NULL) { rec = (PLpgSQL_rec*)(estate->datums[stmt->rec->dno]); } else if (stmt->row != NULL) { - row = (PLpgSQL_row*)(estate->datums[stmt->row->dno]); + row = stmt->row; + if (row->ispkg) { + row = (PLpgSQL_row*)(row->pkg->datums[stmt->row->dno]); + } else { + row = (PLpgSQL_row*)(estate->datums[stmt->row->dno]); + } } else { ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), @@ -7045,7 +8636,7 @@ loop_exit: * ---------- */ static bool exec_eval_simple_expr( - PLpgSQL_execstate* estate, PLpgSQL_expr* expr, Datum* result, bool* isNull, Oid* rettype) + PLpgSQL_execstate* estate, PLpgSQL_expr* expr, Datum* result, bool* isNull, Oid* rettype, HTAB** tableOfIndex) { ExprContext* econtext = estate->eval_econtext; LocalTransactionId curlxid = t_thrd.proc->lxid; @@ -7053,7 +8644,10 @@ static bool exec_eval_simple_expr( ParamListInfo paramLI = NULL; PLpgSQL_expr* save_cur_expr = NULL; MemoryContext oldcontext = NULL; - +#ifdef ENABLE_PRIVATEGAUSS + TransactionId oldTransactionId = SPI_get_top_transaction_id(); + ResourceOwner oldOwner = t_thrd.utils_cxt.CurrentResourceOwner; +#endif /* * Forget it if expression wasn't simple before. */ @@ -7074,6 +8668,10 @@ static bool exec_eval_simple_expr( */ cplan = SPI_plan_get_cached_plan(expr->plan); + if (cplan == NULL) { + return false; + } + /* * We can't get a failure here, because the number of CachedPlanSources in * the SPI plan can't change from what exec_simple_check_plan saw; it's a @@ -7108,6 +8706,17 @@ static bool exec_eval_simple_expr( * the current transaction. (This will be forced to happen if we called * exec_simple_recheck_plan above.) */ +#ifdef ENABLE_PRIVATEGAUSS + if (t_thrd.mem_cxt.portal_mem_cxt == NULL) { + oldcontext = MemoryContextSwitchTo(u_sess->plsql_cxt.simple_eval_estate->es_query_cxt); + } else { + oldcontext = MemoryContextSwitchTo(t_thrd.mem_cxt.portal_mem_cxt); + } + expr->expr_simple_state = ExecInitExpr(expr->expr_simple_expr, NULL); + expr->expr_simple_in_use = false; + expr->expr_simple_lxid = curlxid; + MemoryContextSwitchTo(oldcontext); +#else if (expr->expr_simple_lxid != curlxid) { oldcontext = MemoryContextSwitchTo(u_sess->plsql_cxt.simple_eval_estate->es_query_cxt); expr->expr_simple_state = ExecInitExpr(expr->expr_simple_expr, NULL); @@ -7115,6 +8724,7 @@ static bool exec_eval_simple_expr( expr->expr_simple_lxid = curlxid; MemoryContextSwitchTo(oldcontext); } +#endif /* * We have to do some of the things SPI_execute_plan would do, in @@ -7130,6 +8740,7 @@ static bool exec_eval_simple_expr( * Because functions can be defined by applications, it may need snapshot, * not support it now. */ + SPI_STACK_LOG("push", NULL, NULL); SPI_push(); oldcontext = MemoryContextSwitchTo(econtext->ecxt_per_tuple_memory); @@ -7168,8 +8779,43 @@ static bool exec_eval_simple_expr( if (expr->expr_simple_state->resultType == REFCURSOROID && paramLI != NULL) { econtext->is_cursor = true; } + /* get tableof index from param */ + Oid tableOfIndexType = InvalidOid; + bool isNestedtable; + HTAB* tableOfIndexParam = ExecEvalParamExternTableOfIndex(expr->expr_simple_state, econtext, + &tableOfIndexType, &isNestedtable); + if (tableOfIndex != NULL) { + *tableOfIndex = tableOfIndexParam; + } + + u_sess->SPI_cxt.cur_tableof_index->tableOfIndexType = tableOfIndexType; + u_sess->SPI_cxt.cur_tableof_index->tableOfIndex = tableOfIndexParam; + *result = ExecEvalExpr(expr->expr_simple_state, econtext, isNull, NULL); +#ifdef ENABLE_PRIVATEGAUSS + stp_check_transaction_and_create_econtext(estate,oldTransactionId); +#endif + /* for nested table, we need use nested table type as result type */ + if (plpgsql_estate && plpgsql_estate->curr_nested_table_type != InvalidOid) { + HeapTuple tp; + Form_pg_type typtup; + tp = SearchSysCache1(TYPEOID, ObjectIdGetDatum(plpgsql_estate->curr_nested_table_type)); + if (!HeapTupleIsValid(tp)) { + ereport(ERROR, (errcode(ERRCODE_CACHE_LOOKUP_FAILED), + errmsg("cache lookup failed for type %u", plpgsql_estate->curr_nested_table_type))); + } + typtup = (Form_pg_type)GETSTRUCT(tp); + if (typtup->typtype != TYPTYPE_COMPOSITE) + *rettype = plpgsql_estate->curr_nested_table_type; + ReleaseSysCache(tp); + } +#ifdef ENABLE_PRIVATEGAUSS + if (SPI_get_top_transaction_id() == oldTransactionId) { + econtext->is_cursor = false; + } +#else econtext->is_cursor = false; +#endif plpgsql_estate = NULL; /* Assorted cleanup */ @@ -7183,12 +8829,25 @@ static bool exec_eval_simple_expr( MemoryContextSwitchTo(oldcontext); + SPI_STACK_LOG("pop", NULL, NULL); SPI_pop(); +#ifdef ENABLE_PRIVATEGAUSS + /* When commit/rollback occurs + * the plan cache will be release refcount by resourceowner(except for oneshot plan) */ + CachedPlanSource *plansource = (CachedPlanSource *)linitial(expr->plan->plancache_list); + oldOwner = AddCplanRefAgainIfNecessary(expr->plan, plansource, cplan, oldTransactionId, oldOwner); + + ResourceOwner tmp = t_thrd.utils_cxt.CurrentResourceOwner; + t_thrd.utils_cxt.CurrentResourceOwner = oldOwner; +#endif /* * Now we can release our refcount on the cached plan. */ ReleaseCachedPlan(cplan, true); +#ifdef ENABLE_PRIVATEGAUSS + t_thrd.utils_cxt.CurrentResourceOwner = tmp; +#endif /* * That's it. @@ -7245,14 +8904,27 @@ static ParamListInfo setup_param_list(PLpgSQL_execstate* estate, PLpgSQL_expr* e while ((dno = bms_first_member(tmpset)) >= 0) { PLpgSQL_datum* datum = estate->datums[dno]; - if (datum->dtype == PLPGSQL_DTYPE_VAR) { + if (datum->dtype == PLPGSQL_DTYPE_VAR || + datum->dtype == PLPGSQL_DTYPE_VARRAY || + datum->dtype == PLPGSQL_DTYPE_TABLE) { + PLpgSQL_var* var = (PLpgSQL_var*)datum; ParamExternData* prm = ¶mLI->params[dno]; - prm->value = var->value; prm->isnull = var->isnull; prm->pflags = PARAM_FLAG_CONST; - prm->ptype = var->datatype->typoid; + prm->isnestedtable = (var->nest_table != NULL); + if (var->nest_table) { + PLpgSQL_var* nest = var->nest_table; + while (nest != NULL && nest->datatype != NULL) { + prm->ptype = nest->datatype->typoid; + nest = nest->nest_table; + } + } else { + prm->ptype = var->datatype->typoid; + } + prm->tableOfIndexType = var->tableOfIndexType; + prm->tableOfIndex = var->tableOfIndex; /* cursor as a parameter, its option is also needed */ if (var->datatype->typoid == REFCURSOROID) { @@ -7351,6 +9023,336 @@ static bool CheckTypeIsCursor(PLpgSQL_row *row, Oid valtype, int fnum) return false; } +/* + * @brief exec_tuple_get_composite + * Transform tuple into a specified composite type. + */ +static Datum exec_tuple_get_composite(PLpgSQL_execstate* estate, TupleDesc tupdesc, HeapTuple tup, Oid typeoid) +{ + int td_natts = tupdesc ? tupdesc->natts : 0; + StringInfoData buf; /* record string */ + int t_natts = (HeapTupleIsValid(tup)) ? HeapTupleHeaderGetNatts(tup->t_data, tupdesc) : 0; + initStringInfo(&buf); + appendStringInfoChar(&buf, '('); + + int cnt = 0; + int last_anum = 0; + bool first = true; + for (int anum = 0; anum < td_natts; anum++) { + if (tupdesc->attrs[anum]->attisdropped) { + continue; + } + + if (!first) { + appendStringInfoChar(&buf, ','); + } + first = false; + + if (anum < td_natts && anum < t_natts) { + char *val_str = SPI_getvalue(tup, tupdesc, anum + 1); + last_anum = anum; + if (val_str) { + appendStringInfoString(&buf, val_str); + } + } + cnt++; + } + appendStringInfoChar(&buf, ')'); + + /* + * For tuple with only ONE complex type. The following rule is applied: + * 1. If tuple is a RECORD, we assume that the datum is a generalized form of the request type. + * 2. If tuple already is request type, use that instead. + * 3. For other types, we assume that the datum is member of the request type. + */ + Oid tuptype = SPI_gettypeid(tupdesc, last_anum + 1); + if (cnt == 1 && (tuptype == RECORDOID || tuptype == typeoid)) { + resetStringInfo(&buf); + char *val_str = SPI_getvalue(tup, tupdesc, last_anum + 1); + if (val_str) { + appendStringInfoString(&buf, val_str); + } else { + appendStringInfoString(&buf, "()"); + } + } + + /* reconstruct record */ + Oid typinput; + Oid typioparam; + FmgrInfo finfo_input; + getTypeInputInfo(typeoid, &typinput, &typioparam); + fmgr_info(typinput, &finfo_input); + + Datum rec_datum = InputFunctionCall(&finfo_input, buf.data, typioparam, -1); + pfree_ext(buf.data); + return rec_datum; +} + +/* + * @brief get_bulk_collect_target + * Get bulk collect into target. + */ +static PLpgSQL_var* get_bulk_collect_target(PLpgSQL_execstate* estate, PLpgSQL_row* row, int fnum, Oid* elemtype) +{ + PLpgSQL_datum* var = (PLpgSQL_datum*)(estate->datums[row->varnos[fnum]]); + if (var->dtype != PLPGSQL_DTYPE_VAR) { + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmodule(MOD_PLSQL), + errmsg("Unsupported bulk collect into target"), + errdetail("Unable to recognize the given bulk collect into target"), + errcause("N/A"), + erraction("Please modify bulk collect into target"))); + } + *elemtype = get_element_type(((PLpgSQL_var*)var)->datatype->typoid); + if (*elemtype == InvalidOid) { /* It is not an array */ + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmodule(MOD_PLSQL), + errmsg("Unsupported bulk collect into target"), + errdetail("Unable to find any array elements in target"), + errcause("Given into target is not an array"), + erraction("Please check bulk collect into target"))); + } + return (PLpgSQL_var*)var; +} + +/* + * @brief bulk_collect_precheck + * Bulk collect precheck. + */ +static int bulk_collect_precheck(PLpgSQL_execstate* estate, PLpgSQL_row* row, TupleDesc tupdesc, int ntup) +{ + if (row == NULL || row->nfields <= 0) { + /* error out for now */ + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmodule(MOD_PLSQL), + errmsg("Unsupported bulk collect into target"), + errdetail("Unable to recognize the given bulk collect into target"), errcause("N/A"), + erraction("Please modify bulk collect into target"))); + } + + if (row->dtype == PLPGSQL_DTYPE_RECORD) { + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmodule(MOD_PLSQL), + errmsg("Unsupported bulk collect into target"), errdetail("Cannot bulk collect records"), + errcause("N/A"), erraction("N/A"))); + } + + if ((Size)ntup > BULK_COLLECT_MAX) { /* Memory saving */ + ereport(ERROR, (errcode(ERRCODE_OUT_OF_BUFFER), errmodule(MOD_PLSQL), + errmsg("Too many rows fetched at once"), + errdetail("Statement returns more than %zu rows", BULK_COLLECT_MAX), errcause("N/A"), + erraction("N/A"))); + } + + int anum = 0; + int td_natts = tupdesc ? tupdesc->natts : 0; + for (int i = 0; i < td_natts; i++) { + /* + * If td_natts is a positive number, tupdesc cannot be empty, + * so there is no need to double check here + */ + if (!tupdesc->attrs[i]->attisdropped) { + anum++; + } + } + + int fnum = 0; + int pos = 0; + for (int i = 0; i < row->nfields; i++) { + if (row->varnos[i] >= 0) { + pos = i; + fnum++; + } + } + + if (fnum == 1) { /* we can try to form a composite record for each row(tuple) */ + Oid elemtype = InvalidOid; + (void)get_bulk_collect_target(estate, row, pos, &elemtype); + bool try_coerce = (fnum == 1) & (TypeCategory(elemtype) == TYPCATEGORY_COMPOSITE); + if (try_coerce) { + return true; + } + } + + if (anum != fnum) { /* uneven number of attrs and bulk collect target */ + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmodule(MOD_PLSQL), + errmsg("Cannot bulk collect into targets"), + errdetail("Query returns more columns than available targets"), errcause("N/A"), + erraction("Please modify bulk collect into target"))); + } + + return false; +} + +/* + * @brief bulk_collect_context + * Context for handling BULK COLLECT INTO. + */ +typedef struct bulk_collect_context { + PLpgSQL_var *var; /* INTO target ARRAY/TABLE */ + Datum *values; /* Datum values from tuple table */ + bool *isnull; /* NULLs */ + Oid elemtype; /* elemtype Oid of target */ + Oid valtype; /* data source type Oid */ + int ntup; /* total number of tuples */ + TupleDesc tupdesc; /* tupdesc from tuptab */ +} bulk_collect_context; + +/* + * @brief exec_assign_bulk_collect + * Execute bulk collect, transform tuples into an collection. + * @param estate execute state + * @param context bulk collect context + * @param entire_row needs to do row transform + */ +static void exec_assign_bulk_collect(PLpgSQL_execstate *estate, bulk_collect_context context) +{ + int dims[] = {context.ntup}; + int lbs[] = {1}; + int16 elmlen = 0; + bool elmbyval = false; + char elmalign; + ArrayType *arrtype = NULL; + + /* initialize typelen, typbyval, typalign */ + get_typlenbyvalalign(context.elemtype, &elmlen, &elmbyval, &elmalign); + + /* coerce should be avoided by user, since it is a huge cost on performance */ + if (context.valtype == InvalidOid) { /* with all returning values are NULL */ + context.valtype = context.elemtype; + } + if (context.valtype != context.elemtype) { + Oid typinput; + Oid typioparam; + FmgrInfo finfo_input; + + /* cache all common information for exec_cast_value() */ + getTypeInputInfo(context.elemtype, &typinput, &typioparam); + fmgr_info(typinput, &finfo_input); + + /* try one cast, if it is not possible to cast type, should throw an error here */ + Oid funcid = InvalidOid; + if (find_coercion_pathway(context.elemtype, context.valtype, COERCION_ASSIGNMENT, &funcid) \ + == COERCION_PATH_NONE) { + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmodule(MOD_PLSQL), + errmsg("Fail to perform bulk collect"), + errdetail("Cannot bulk collect %s values into %s collections", + format_type_be(context.valtype), format_type_be(context.elemtype)), + errcause("N/A"), erraction("Please modify bulk collect into target"))); + } + + /* now try to cast every elements */ + for (int i = 0; i < context.ntup; i++) { + Datum newdatum = exec_cast_value(estate, context.values[i], context.valtype, context.elemtype, + &finfo_input, typioparam, -1, context.isnull[i]); + context.values[i] = datumCopy(newdatum, elmbyval, elmlen); + exec_eval_cleanup(estate); + } + context.valtype = context.elemtype; + } + arrtype = (context.ntup == 0) ? construct_empty_array(context.valtype) + : construct_md_array(context.values, context.isnull, 1, dims, lbs, context.valtype, elmlen, + elmbyval, elmalign); + HTAB* newTableOfIndex = NULL; + /* table of index should build hash table */ + if (context.var->datatype->collectionType == PLPGSQL_COLLECTION_TABLE && + context.var->datatype->tableOfIndexType == INT4OID) { + /* clear origin tableOfIndex */ + if (context.var->tableOfIndex != NULL) { + hash_destroy(context.var->tableOfIndex); + context.var->tableOfIndex = NULL; + } + if (context.ntup != 0) { + for (int i = 1; i <= context.ntup; i++) { + TableOfIndexKey key; + key.exprtypeid = context.var->datatype->tableOfIndexType; + key.exprdatum = Int32GetDatum(i); + (void)insertTableOfIndexByDatumValue(key, &newTableOfIndex); + } + } + } + bool array_is_null = false; + exec_assign_value(estate, (PLpgSQL_datum*)context.var, PointerGetDatum(arrtype), + context.var->datatype->typoid, &array_is_null, newTableOfIndex); +} + +/* + * exec_read_bulk_collect + * @brief This is a proprietary method for BULK COLLECT assign. + * It converts the tuples into an array type datum, then + * do the assign like regular INTO. + * + * @param estate exec state + * @param row row (rec is not accepted) + * @param tuptab tuptab (with all returned tuples) + */ +static void exec_read_bulk_collect(PLpgSQL_execstate* estate, PLpgSQL_row* row, SPITupleTable* tuptab) +{ + bulk_collect_context context; + context.tupdesc = tuptab->tupdesc; + int td_natts = context.tupdesc ? context.tupdesc->natts : 0; + context.ntup = tuptab->alloced - tuptab->free; + bool need_entire_row = bulk_collect_precheck(estate, row, context.tupdesc, context.ntup); + + int fnum = 0; + int anum = 0; + for (fnum = 0; fnum < row->nfields; fnum++) { + /* skip dropped column in row struct */ + if (row->varnos[fnum] < 0) { + continue; + } + + /* get associated var -- the target varray */ + context.elemtype = InvalidOid; + context.var = get_bulk_collect_target(estate, row, fnum, &context.elemtype); + + /* Get all datums for the corresponding field */ + context.values = (Datum*)palloc0(sizeof(Datum) * context.ntup); /* all datums are stored here */ + context.isnull = (bool*)palloc0(sizeof(bool) * context.ntup); /* mark null datums */ + for (int i = 0; i < context.ntup; i++) { + int t_natts = 0; + HeapTuple tup = tuptab->vals[i]; + if (need_entire_row) { + context.valtype = context.elemtype; + context.values[i] = exec_tuple_get_composite(estate, context.tupdesc, tup, context.elemtype); + context.isnull[i] = false; + } else { + /* skip dropped column in tuple */ + t_natts = (HeapTupleIsValid(tup)) ? HeapTupleHeaderGetNatts(tup->t_data, context.tupdesc) : 0; + while (anum < td_natts && context.tupdesc->attrs[anum]->attisdropped) { + anum++; + } + + if (anum < td_natts) { + if (anum < t_natts) { + context.values[i] = SPI_getbinval(tup, context.tupdesc, anum + 1, &context.isnull[i]); + } else { + context.values[i] = (Datum)0; + context.isnull[i] = true; + } + context.valtype = SPI_gettypeid(context.tupdesc, anum + 1); + } else { + context.values[i] = (Datum)0; + context.isnull[i] = true; + } + + if (context.isnull[i] == false && CheckTypeIsCursor(row, context.valtype, fnum) && + estate->cursor_return_data != NULL) { + /* error out for cursors */ + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmodule(MOD_PLSQL), + errmsg("Unsupported bulk collect into target"), + errdetail("Cursors in bulk collect are not supported"), errcause("N/A"), + erraction("Please modify bulk collect into target"))); + } + } + } + /* make a single array datum from the datums we collected before, and assign to var */ + exec_assign_bulk_collect(estate, context); + + pfree_ext(context.values); + pfree_ext(context.isnull); + anum++; /* anum increment at last */ + } +} + /* ---------- * exec_move_row Move one tuple's values into a record or row * @@ -7370,7 +9372,13 @@ static void exec_move_row( * Copy input first, just in case it is pointing at variable's value */ if (HeapTupleIsValid(tup)) { - tup = heap_copytuple(tup); + if (rec->pkg != NULL) { + MemoryContext temp = MemoryContextSwitchTo(rec->pkg->pkg_cxt); + tup = heap_copytuple(tup); + MemoryContextSwitchTo(temp); + } else { + tup = heap_copytuple(tup); + } } else if (tupdesc) { /* If we have a tupdesc but no data, form an all-nulls tuple */ bool* nulls = NULL; @@ -7386,7 +9394,13 @@ static void exec_move_row( } if (tupdesc) { - tupdesc = CreateTupleDescCopy(tupdesc); + if (rec->pkg != NULL) { + MemoryContext temp = MemoryContextSwitchTo(rec->pkg->pkg_cxt); + tupdesc = CreateTupleDescCopy(tupdesc); + MemoryContextSwitchTo(temp); + } else { + tupdesc = CreateTupleDescCopy(tupdesc); + } } /* Free the old value ... */ @@ -7495,9 +9509,16 @@ static void exec_move_row( if (row->varnos[fnum] < 0) { continue; /* skip dropped column in row struct */ } - +#ifndef ENABLE_MULTIPLE_NODES + if (row->ispkg) { + PLpgSQL_package* pkg = row->pkg; + var = (PLpgSQL_var*)(pkg->datums[row->varnos[fnum]]); + } else { + var = (PLpgSQL_var*)(estate->datums[row->varnos[fnum]]); + } +#else var = (PLpgSQL_var*)(estate->datums[row->varnos[fnum]]); - +#endif while (anum < td_natts && tupdesc->attrs[anum]->attisdropped) { anum++; /* skip dropped column in tuple */ } @@ -7613,9 +9634,33 @@ HeapTuple make_tuple_from_row(PLpgSQL_execstate* estate, PLpgSQL_row* row, Tuple errmodule(MOD_PLSQL), errmsg("dropped rowtype entry for non-dropped column when make tuple"))); } - - exec_eval_datum(estate, estate->datums[row->varnos[i]], &fieldtypeid, &fieldtypmod, &dvalues[i], &nulls[i]); + if (row->ispkg) { + PLpgSQL_package* pkg = row->pkg; + if (pkg == NULL) { + ereport(ERROR, + (errmodule(MOD_PLSQL), + errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("package is null"), + errdetail("N/A"), + errcause("compile error."), + erraction("check package error and redefine package"))); + } + exec_eval_datum(estate, pkg->datums[row->varnos[i]], &fieldtypeid, &fieldtypmod, &dvalues[i], &nulls[i]); + } else { + exec_eval_datum(estate, estate->datums[row->varnos[i]], &fieldtypeid, &fieldtypmod, &dvalues[i], &nulls[i]); + } if (fieldtypeid != tupdesc->attrs[i]->atttypid) { + /* if table of type should check its array type */ + HeapTuple type_tup = SearchSysCache1(TYPEOID, ObjectIdGetDatum(tupdesc->attrs[i]->atttypid)); + if (HeapTupleIsValid(type_tup)) { + Oid refTypOid = ((Form_pg_type)GETSTRUCT(type_tup))->typelem; + char refTypType = ((Form_pg_type)GETSTRUCT(type_tup))->typtype; + ReleaseSysCache(type_tup); + if (refTypType == TYPTYPE_TABLEOF && refTypOid == fieldtypeid) { + continue; + } + } + pfree_ext(dvalues); pfree_ext(nulls); return NULL; @@ -8204,7 +10249,6 @@ static void exec_simple_recheck_plan(PLpgSQL_expr* expr, CachedPlan* cplan) return; } stmt = (PlannedStmt*)linitial(cplan->stmt_list); - /* * 2. It must be a RESULT plan --> no scan's required */ @@ -8234,7 +10278,6 @@ static void exec_simple_recheck_plan(PLpgSQL_expr* expr, CachedPlan* cplan) return; } tle = (TargetEntry*)linitial(plan->targetlist); - /* * 5. Check that all the nodes in the expression are non-scary. */ @@ -8447,6 +10490,7 @@ static void plpgsql_create_econtext(PLpgSQL_execstate* estate) entry->stack_econtext = estate->eval_econtext; entry->xact_subxid = GetCurrentSubTransactionId(); + entry->statckEntryId = ++u_sess->plsql_cxt.nextStackEntryId; entry->next = u_sess->plsql_cxt.simple_econtext_stack; u_sess->plsql_cxt.simple_econtext_stack = entry; @@ -8460,19 +10504,37 @@ static void plpgsql_create_econtext(PLpgSQL_execstate* estate) */ static void plpgsql_destroy_econtext(PLpgSQL_execstate* estate) { - SimpleEcontextStackEntry* next = NULL; + SimpleEcontextStackEntry *pre = NULL; + SimpleEcontextStackEntry *plcontext = u_sess->plsql_cxt.simple_econtext_stack; - AssertEreport(u_sess->plsql_cxt.simple_econtext_stack != NULL && - u_sess->plsql_cxt.simple_econtext_stack->stack_econtext == estate->eval_econtext, - MOD_PLSQL, - "wrong context state."); + /* + * As savepoint in STP appear after creating econtext, the quantity of subtransaction is either + * more or less. The top stack entry may not be the pushed one at the begining of PL function. + * Here we skip some, try to find and release the entry identified by estate->stack_entry_start. + */ + while (plcontext != NULL && plcontext->statckEntryId > estate->stack_entry_start) { + /* + * Call any shutdown callbacks and reset the econtext created by this PL function + * as possible. Don't free it since the subtransaction is still alive. + */ + ReScanExprContext(plcontext->stack_econtext); - next = u_sess->plsql_cxt.simple_econtext_stack->next; - pfree_ext(u_sess->plsql_cxt.simple_econtext_stack); - u_sess->plsql_cxt.simple_econtext_stack = next; + pre = plcontext; + plcontext = plcontext->next; + } - FreeExprContext(estate->eval_econtext, true); - estate->eval_econtext = NULL; + /* if find the stack_entry_start, destory it. */ + if (plcontext != NULL && plcontext->statckEntryId == estate->stack_entry_start) { + if (pre == NULL) { + u_sess->plsql_cxt.simple_econtext_stack = plcontext->next; + } else { + pre->next = plcontext->next; + } + + FreeExprContext(plcontext->stack_econtext, true); + pfree_ext(plcontext); + estate->eval_econtext = NULL; + } } /* @@ -8724,9 +10786,47 @@ static void exec_set_sqlcode(PLpgSQL_execstate* estate, int sqlcode) { PLpgSQL_var* sqlcode_var = NULL; sqlcode_var = (PLpgSQL_var*)estate->datums[estate->sqlcode_varno]; - sqlcode_var->value = Int32GetDatum(sqlcode); - sqlcode_var->freeval = false; - sqlcode_var->isnull = false; + if (u_sess->attr.attr_sql.sql_compatibility == A_FORMAT) { + assign_text_var(sqlcode_var, plpgsql_get_sqlstate(sqlcode)); + } else { + sqlcode_var->value = Int32GetDatum(sqlcode); + sqlcode_var->freeval = false; + sqlcode_var->isnull = false; + } +} + +static void exec_set_prev_sqlcode(PLpgSQL_execstate* estate, PLpgSQL_execstate* estate_prev) +{ + PLpgSQL_var* sqlcode_var = NULL; + + if (estate_prev != NULL && estate_prev->cur_error != NULL) { + PLpgSQL_var* sqlerrm_var = NULL; + PLpgSQL_var* state_var = NULL; + ErrorData* prev_error = estate_prev->cur_error; + sqlcode_var = (PLpgSQL_var*)estate->datums[estate->sqlcode_varno]; + + if (u_sess->attr.attr_sql.sql_compatibility == A_FORMAT) { + assign_text_var(sqlcode_var, plpgsql_get_sqlstate(prev_error->sqlerrcode)); + } else { + sqlcode_var->value = Int32GetDatum(prev_error->sqlerrcode); + sqlcode_var->freeval = false; + sqlcode_var->isnull = false; + } + sqlerrm_var = (PLpgSQL_var*)estate->datums[estate->sqlerrm_varno]; + assign_text_var(sqlerrm_var, prev_error->message); + state_var = (PLpgSQL_var*)estate->datums[estate->sqlstate_varno]; + assign_text_var(state_var, plpgsql_get_sqlstate(prev_error->sqlerrcode)); + } else { + sqlcode_var = (PLpgSQL_var*)estate->datums[estate->sqlcode_varno]; + if (u_sess->attr.attr_sql.sql_compatibility == A_FORMAT) { + assign_text_var(sqlcode_var, plpgsql_get_sqlstate(Int32GetDatum(0))); + } else { + sqlcode_var->value = Int32GetDatum(0); + sqlcode_var->freeval = false; + sqlcode_var->isnull = false; + } + } + } /* transform anonymous block in dynamic statments. */ @@ -8846,21 +10946,28 @@ void ResetCursorOption(Portal portal, bool reset) portal->funcUseCount = 0; } -static void stp_check_transaction_and_set_resource_owner(ResourceOwner oldResourceOwner,TransactionId oldTransactionId) +static void stp_check_transaction_and_set_resource_owner(ResourceOwner oldResourceOwner, TransactionId oldTransactionId) { if (oldTransactionId != SPI_get_top_transaction_id()) { t_thrd.utils_cxt.CurrentResourceOwner = get_last_transaction_resourceowner(); - } else { + } else if (ResourceOwnerIsValid(oldResourceOwner)) { t_thrd.utils_cxt.CurrentResourceOwner = oldResourceOwner; - } + } } static void stp_check_transaction_and_create_econtext(PLpgSQL_execstate* estate,TransactionId oldTransactionId) { if (oldTransactionId != SPI_get_top_transaction_id()) { - u_sess->plsql_cxt.simple_eval_estate = NULL; + /* While old transaction terminated, econtext was destroyed. Create it again. */ plpgsql_create_econtext(estate); - } + } else { + /* + * Subtransaction may start or finished in the subroutine , we need switch into + * the newest context for executing simple expressions. + */ + Assert(u_sess->plsql_cxt.simple_econtext_stack != NULL); + estate->eval_econtext = u_sess->plsql_cxt.simple_econtext_stack->stack_econtext; + } } void plpgsql_HashTableDeleteAll() @@ -8874,34 +10981,88 @@ void plpgsql_HashTableDeleteAll() func->use_count = 0; plpgsql_free_function_memory(func); } - hash_seq_init(&hash_seq, u_sess->plsql_cxt.plpgsql_HashTable); - plpgsql_pkg_HashEnt* pkgHentry = NULL; - while ((pkgHentry = (plpgsql_pkg_HashEnt *)hash_seq_search(&hash_seq)) != NULL) { - PLpgSQL_package* pkg = pkgHentry->package; - plpgsql_pkg_HashTableDelete(pkg); - plpgsql_free_package_memory(pkg); - } } -void plpgsql_HashTableDeleteFunc(Oid func_oid) +static bool CheckInvalItemDependencyForFunc(List* invalItems, int cacheid, uint32 objid) +{ + if (invalItems == NULL) + return false; + ListCell *lc = NULL; + foreach(lc, invalItems) + { + FuncInvalItem *item = (FuncInvalItem *) lfirst(lc); + if (item->cacheId != cacheid) { + continue; + } + // if has dependency in thic invalitem, return + if (item->cacheId == PROCOID && item->objId == objid) { + return true; + } else if (item->cacheId == PACKAGEOID && item->objId == objid) { + return true; + } + } + return false; +} + +/* + * Check dependency for function and package's hash table + * cacheId: oid of object's type + * objId: oid of object + */ +void plpgsql_HashTableDeleteAndCheckFunc(int cacheId, Oid objId) { if (unlikely(u_sess->plsql_cxt.plpgsql_HashTable == NULL)) return; + bool isPkg = false; + if (cacheId == PACKAGEOID) { + isPkg = true; + } u_sess->plsql_cxt.is_delete_function = true; HASH_SEQ_STATUS hash_seq; hash_seq_init(&hash_seq, u_sess->plsql_cxt.plpgsql_HashTable); plpgsql_HashEnt* hentry = NULL; while ((hentry = (plpgsql_HashEnt *)hash_seq_search(&hash_seq)) != NULL) { - if (hentry->key.funcOid == func_oid) { - uint32 key = SPICacheHashFunc((void*)(&hentry->key), sizeof(PLpgSQL_func_hashkey)); - PLpgSQL_function* func = hentry->function; + PLpgSQL_function* func = hentry->function; + /* check dependency */ + bool isInvalid = CheckInvalItemDependencyForFunc(func->invalItems, cacheId, objId); + if (isInvalid || (!isPkg && hentry->key.funcOid == objId)) { if (func->use_count == 0) { + uint32 key = SPICacheHashFunc((void*)(&hentry->key), sizeof(PLpgSQL_func_hashkey)); plpgsql_HashTableDelete(func); SPIPlanCacheTableDelete(key); plpgsql_free_function_memory(func); - } else if (ENABLE_CN_GPC) { - /* plan has dropped, but current session still set plancache invalid for gpc */ - SPIPlanCacheTableInvalidPlan(key); + } + } + /* sub refcount for dependency pkg */ + if (isInvalid && isPkg) { + PLpgSQL_pkg_hashkey hashkey; + hashkey.pkgOid = objId; + PLpgSQL_package* getpkg = plpgsql_pkg_HashTableLookup(&hashkey); + if (getpkg) + getpkg->use_count--; + } + } + if (isPkg && u_sess->plsql_cxt.plpgsql_pkg_HashTable != NULL) { + HASH_SEQ_STATUS hash_pkgseq; + hash_seq_init(&hash_pkgseq, u_sess->plsql_cxt.plpgsql_pkg_HashTable); + plpgsql_pkg_HashEnt* pkghentry = NULL; + while ((pkghentry = (plpgsql_pkg_HashEnt *)hash_seq_search(&hash_pkgseq)) != NULL) { + PLpgSQL_package* pkg = pkghentry->package; + /* check dependency */ + bool isInvalid = CheckInvalItemDependencyForFunc(pkg->invalItems, cacheId, objId); + if (isInvalid || pkg->pkg_oid == objId) { + delete_package(pkg); + /* Restart the iteration */ + hash_seq_term(&hash_pkgseq); + hash_seq_init(&hash_pkgseq, u_sess->plsql_cxt.plpgsql_pkg_HashTable); + } + /* sub refcount for dependency pkg */ + if (isInvalid) { + PLpgSQL_pkg_hashkey hashkey; + hashkey.pkgOid = objId; + PLpgSQL_package* getpkg = plpgsql_pkg_HashTableLookup(&hashkey); + if (getpkg) + getpkg->use_count--; } } } @@ -8957,30 +11118,6 @@ typedef struct { SQLFunctionParseInfoPtr pinfo; } pl_validate_dynexpr_info; -static MemoryContext _SPI_execmem(void) -{ - return MemoryContextSwitchTo(u_sess->SPI_cxt._current->execCxt); -} - -/* - * _SPI_begin_call: begin a SPI operation within a connected procedure - */ -static int _SPI_begin_call(bool execmem) -{ - if (u_sess->SPI_cxt._curid + 1 != u_sess->SPI_cxt._connected) - return SPI_ERROR_UNCONNECTED; - u_sess->SPI_cxt._curid++; - if (u_sess->SPI_cxt._current != &(u_sess->SPI_cxt._stack[u_sess->SPI_cxt._curid])) { - ereport(ERROR, (errcode(ERRCODE_DATA_CORRUPTED), errmsg("SPI stack corrupted when begin SPI operation."))); - } - - if (execmem) { /* switch to the Executor memory context */ - _SPI_execmem(); - } - - return 0; -} - /* * exec_eval_using_params --- evaluate params of USING clause */ @@ -9007,8 +11144,16 @@ static DynParamsData* validate_using_params(List* params, PLpgSQL_function* func ereport(ERROR, (errcode(ERRCODE_CACHE_LOOKUP_FAILED), errmodule(MOD_EXECUTOR), errmsg("cache lookup failed for function %u when initialize function cache.", func->fn_oid))); } - - Datum proargmodes = SysCacheGetAttr(PROCNAMEARGSNSP, tuple, Anum_pg_proc_proargmodes, &isNull); + Datum proargmodes; +#ifndef ENABLE_MULTIPLE_NODES + if (t_thrd.proc->workingVersionNum < 92470) { + proargmodes = SysCacheGetAttr(PROCNAMEARGSNSP, tuple, Anum_pg_proc_proargmodes, &isNull); + } else { + proargmodes = SysCacheGetAttr(PROCALLARGS, tuple, Anum_pg_proc_proargmodes, &isNull); + } +#else + proargmodes = SysCacheGetAttr(PROCNAMEARGSNSP, tuple, Anum_pg_proc_proargmodes, &isNull); +#endif if (!isNull) { ArrayType* arr = DatumGetArrayTypeP(proargmodes); /* ensure not toasted */ if (arr) { @@ -9083,6 +11228,7 @@ static Node* plpgsql_dynparam_ref(ParseState* pstate, ParamRef* pref) param->paramid = dp->param_ids[p_no]; param->paramtype = dp->types[p_no]; param->location = pref->location; + param->tableOfIndexType = InvalidOid; return (Node*)param; } @@ -9137,7 +11283,7 @@ void validate_stmt_dynexecute(PLpgSQL_stmt_dynexecute* stmt, PLpgSQL_function* f } int res; _SPI_plan plan; - + SPI_STACK_LOG("begin", querystr, NULL); res = _SPI_begin_call(false); if (res < 0) { return; @@ -9187,6 +11333,7 @@ void validate_stmt_dynexecute(PLpgSQL_stmt_dynexecute* stmt, PLpgSQL_function* f list_free_deep(plan.plancache_list); plan.plancache_list = NIL; } + SPI_STACK_LOG("end", querystr, NULL); _SPI_end_call(false); } @@ -9311,4 +11458,282 @@ void pl_validate_stmt_block_in_subtransaction(PLpgSQL_stmt_block *block, PLpgSQL if (need_rethrow) { PG_RE_THROW(); } -} \ No newline at end of file +} + +static void exec_savepoint_rollback(PLpgSQL_execstate *estate, const char *spName) +{ + SPI_savepoint_rollback(spName); + + plpgsql_create_econtext(estate); + + /* if rollback to savepoint outside STP, re-link stmt's top portal with transaction. */ + if (u_sess->plsql_cxt.stp_savepoint_cnt == 0 && spName != NULL) { + ResourceOwnerNewParent( + t_thrd.utils_cxt.STPSavedResourceOwner, t_thrd.utils_cxt.CurrentResourceOwner); + } +} + +static int exec_stmt_savepoint(PLpgSQL_execstate *estate, PLpgSQL_stmt* stmt) +{ + PLpgSQL_stmt_savepoint *spstmt = (PLpgSQL_stmt_savepoint*)stmt; + + SPI_stp_transaction_check(estate->readonly_func, true); + + MemoryContext oldcontext = CurrentMemoryContext; + + /* recording stmt's Top Portal ResourceOwner before any subtransaction. */ + if (u_sess->SPI_cxt.portal_stp_exception_counter == 0 && u_sess->plsql_cxt.stp_savepoint_cnt == 0) { + t_thrd.utils_cxt.STPSavedResourceOwner = t_thrd.utils_cxt.CurrentResourceOwner; + } + + switch (spstmt->opType) { + case PLPGSQL_SAVEPOINT_CREATE: + SPI_savepoint_create(spstmt->spName); + plpgsql_create_econtext(estate); + break; + case PLPGSQL_SAVEPOINT_ROLLBACKTO: + exec_savepoint_rollback(estate, spstmt->spName); + break; + case PLPGSQL_SAVEPOINT_RELEASE: + SPI_savepoint_release(spstmt->spName); + /* + * Revert to outer eval_econtext. (The inner one was + * automatically cleaned up during subxact exit.) + */ + estate->eval_econtext = u_sess->plsql_cxt.simple_econtext_stack->stack_econtext; + break; + default: + ereport(ERROR, (errmodule(MOD_PLSQL), errcode(ERRCODE_UNRECOGNIZED_NODE_TYPE), + errmsg("Unknown plpgsql savepoint operate type: %d", spstmt->opType))); + break; + } + + /* + * As the COMMIT/ROLLBACK/RollbackTo in STP appear soon afterwards, subtransaction + * memory context would be destoryed at once. Objects, which would be visited after + * subtransaction finish, shouldn't be allocated from transaction memory context. + * Hence, it is necessary to switch to the stmt top portal's memory context here. + */ + MemoryContextSwitchTo(oldcontext); + + return PLPGSQL_RC_OK; +} + +int plpgsql_estate_adddatum(PLpgSQL_execstate* estate, PLpgSQL_datum* newm) +{ + /* resize if necessary */ + if (estate->datums_alloc == estate->ndatums) { + estate->datums_alloc *= 2; + estate->datums = (PLpgSQL_datum**)repalloc( + estate->datums, sizeof(PLpgSQL_datum*) * estate->datums_alloc); + } + newm->dno = estate->ndatums; + estate->datums[estate->ndatums] = newm; + estate->ndatums++; + return newm->dno; +} + +PLpgSQL_var* copyPlpgsqlVar(PLpgSQL_var* src) +{ + if (src == NULL) { + return NULL; + } + PLpgSQL_var* dest = (PLpgSQL_var*)palloc0(sizeof(PLpgSQL_var)); + dest->dtype = src->dtype; + dest->dno = src->dno; + dest->ispkg = src->ispkg; + dest->refname = pstrdup(src->refname); + dest->lineno = src->lineno; + dest->datatype = copyPLpgsqlType(src->datatype); + dest->isconst = src->isconst; + dest->notnull = src->notnull; + dest->default_val = NULL; + dest->cursor_explicit_expr = NULL; + dest->value = datumCopy(src->value, dest->datatype->typbyval, dest->datatype->typlen); + dest->isnull = src->isnull; + dest->freeval = src->freeval; + dest->is_cursor_var = src->is_cursor_var; + dest->is_cursor_open = src->is_cursor_open; + dest->pkg_name = NIL; + dest->pkg = NULL; + dest->tableOfIndexType = src->tableOfIndexType; + dest->tableOfIndex = copyTableOfIndex(src->tableOfIndex); + dest->nest_table = NULL; + return dest; +} + +/* The copy parameters are all references from exec_get_datum_type() */ +PLpgSQL_datum* deepCopyPlpgsqlDatum(PLpgSQL_datum* datum) +{ + PLpgSQL_datum* result = NULL; + errno_t errorno = EOK; + + switch (datum->dtype) { + case PLPGSQL_DTYPE_VAR: { + PLpgSQL_var* newm = copyPlpgsqlVar((PLpgSQL_var*)datum); + result = (PLpgSQL_datum*)newm; + break; + } + + case PLPGSQL_DTYPE_REC: { + PLpgSQL_rec* newm = copyPLpgsqlRec((PLpgSQL_rec*)datum); + result = (PLpgSQL_datum*)newm; + break; + } + + case PLPGSQL_DTYPE_RECFIELD: { + PLpgSQL_recfield* newm = copyPLpgsqlRecfield((PLpgSQL_recfield*)datum); + result = (PLpgSQL_datum*)newm; + break; + } + + case PLPGSQL_DTYPE_EXPR: { + PLpgSQL_expr* newm = (PLpgSQL_expr*)palloc0(sizeof(PLpgSQL_expr)); + errorno = memcpy_s(newm, sizeof(PLpgSQL_expr), datum, sizeof(PLpgSQL_expr)); + securec_check(errorno, "\0", "\0"); + newm->query = NULL; + newm->plan = NULL; + newm->paramnos = NULL; + newm->func = NULL; + newm->ns = NULL; + newm->expr_simple_expr = NULL; + newm->expr_simple_state = NULL; + result = (PLpgSQL_datum*)newm; + break; + } + + case PLPGSQL_DTYPE_ROW: + case PLPGSQL_DTYPE_RECORD: { + PLpgSQL_row* newm = copyPLpgsqlRow((PLpgSQL_row*)datum); + result = (PLpgSQL_datum*)newm; + break; + } + + case PLPGSQL_DTYPE_RECORD_TYPE: { + PLpgSQL_rec_type* newm = (PLpgSQL_rec_type*)palloc0(sizeof(PLpgSQL_rec_type)); + errorno = memcpy_s(newm, sizeof(PLpgSQL_rec_type), datum, sizeof(PLpgSQL_rec_type)); + securec_check(errorno, "\0", "\0"); + result = (PLpgSQL_datum*)newm; + break; + } + + case PLPGSQL_DTYPE_ARRAYELEM:{ + PLpgSQL_arrayelem* newm = (PLpgSQL_arrayelem*)palloc0(sizeof(PLpgSQL_arrayelem)); + errorno = memcpy_s(newm, sizeof(PLpgSQL_arrayelem), datum, sizeof(PLpgSQL_arrayelem)); + securec_check(errorno, "\0", "\0"); + newm->subscript = NULL; + result = (PLpgSQL_datum*)newm; + break; + } + + case PLPGSQL_DTYPE_TABLEELEM: { + PLpgSQL_tableelem* newm = (PLpgSQL_tableelem*)palloc0(sizeof(PLpgSQL_tableelem)); + errorno = memcpy_s(newm, sizeof(PLpgSQL_tableelem), datum, sizeof(PLpgSQL_tableelem)); + securec_check(errorno, "\0", "\0"); + newm->subscript = NULL; + result = (PLpgSQL_datum*)newm; + break; + } + case PLPGSQL_NSTYPE_PROC: + case PLPGSQL_NSTYPE_UNKNOWN: + break; + + default: + ereport(ERROR, + (errcode(ERRCODE_UNRECOGNIZED_NODE_TYPE), + errmodule(MOD_PLSQL), + errmsg("unrecognized dtype: %d when copy plsql datum.", datum->dtype))); + result = NULL; /* keep compiler quiet */ + break; + } + return result; +} + +static PLpgSQL_type* copyPLpgsqlType(PLpgSQL_type* src) +{ + if (src == NULL) { + return NULL; + } + PLpgSQL_type* dest = (PLpgSQL_type*)palloc0(sizeof(PLpgSQL_type)); + dest->dtype = src->dtype; + dest->dno = src->dno; + dest->ispkg = src->ispkg; + dest->typname = pstrdup(src->typname); + dest->typoid = src->typoid; + dest->ttype = src->ttype; + dest->collectionType = src->collectionType; + dest->tableOfIndexType = src->tableOfIndexType; + dest->typlen = src->typlen; + dest->typbyval = src->typbyval; + dest->typrelid = src->typrelid; + dest->typioparam = src->typioparam; + dest->collation = src->collation; + FmgrInfo* info = &dest->typinput; + info = NULL; + dest->atttypmod = src->atttypmod; + dest->typnamespace = src->typnamespace; + dest->collectionType = src->collectionType; + dest->tableOfIndexType = src->tableOfIndexType; + dest->cursorCompositeOid = src->cursorCompositeOid; + return dest; +} + +static PLpgSQL_row* copyPLpgsqlRow(PLpgSQL_row* src) +{ + PLpgSQL_row* dest = (PLpgSQL_row*)palloc0(sizeof(PLpgSQL_row)); + if (src->rowtupdesc == NULL) { + dest->rowtupdesc = NULL; + } else { + dest->rowtupdesc = CreateTupleDescCopy(src->rowtupdesc); + } + dest->dtype = src->dtype; + dest->dno = src->dno; + dest->ispkg = src->ispkg; + dest->intodatums = NULL; + dest->refname = pstrdup(src->refname); + dest->nfields = src->nfields; + dest->fieldnames = (char**)palloc0(sizeof(char*) * dest->nfields); + for (int i = 0; i < dest->nfields ; i++) { + dest->fieldnames[i] = pstrdup(src->fieldnames[i]); + } + dest->varnos = (int*)palloc(sizeof(int) * dest->nfields); + for (int i = 0; i < dest->nfields ; i++) { + dest->varnos[i] = src->varnos[i]; + } + dest->default_val = NULL; + dest->recordVarTypOid = src->recordVarTypOid; + return dest; +} + +/* !!! Constraints tup is not copied !!! */ +static PLpgSQL_rec* copyPLpgsqlRec(PLpgSQL_rec* src) +{ + PLpgSQL_rec* dest = (PLpgSQL_rec*)palloc0(sizeof(PLpgSQL_rec)); + dest->dtype = src->dtype; + dest->dno = src->dno; + dest->ispkg = src->ispkg; + dest->refname = pstrdup(src->refname); + dest->tup = NULL; + dest->lineno = src->lineno; + if (src->tupdesc == NULL) { + dest->tupdesc = NULL; + } else { + dest->tupdesc = CreateTupleDescCopy(src->tupdesc); + } + dest->freetup = src->freetup; + dest->freetupdesc = src->freetupdesc; + dest->pkg_name = NULL; + dest->pkg = NULL; + return dest; +} + +static PLpgSQL_recfield* copyPLpgsqlRecfield(PLpgSQL_recfield* src) +{ + PLpgSQL_recfield* dest = (PLpgSQL_recfield*)palloc0(sizeof(PLpgSQL_recfield)); + dest->dtype = src->dtype; + dest->dno = src->dno; + dest->ispkg = src->ispkg; + dest->fieldname = pstrdup(src->fieldname); + dest->recparentno = src->recparentno; + return dest; +} diff --git a/src/common/pl/plpgsql/src/pl_funcs.cpp b/src/common/pl/plpgsql/src/pl_funcs.cpp index 7b5eaffec..05395119d 100644 --- a/src/common/pl/plpgsql/src/pl_funcs.cpp +++ b/src/common/pl/plpgsql/src/pl_funcs.cpp @@ -3,8 +3,10 @@ * pl_funcs.c - Misc functions for the PL/pgSQL * procedural language * + * Portions Copyright (c) 2021 Huawei Technologies Co.,Ltd. * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -15,16 +17,17 @@ #include "utils/plpgsql.h" #include "optimizer/pgxcship.h" +#include "utils/lsyscache.h" #include "utils/memutils.h" - - +#include "utils/pl_package.h" +#include "catalog/gs_package.h" /* ---------- * plpgsql_ns_init Initialize namespace processing for a new function * ---------- */ void plpgsql_ns_init(void) { - u_sess->plsql_cxt.ns_top = NULL; + u_sess->plsql_cxt.curr_compile_context->ns_top = NULL; } /* ---------- @@ -41,8 +44,8 @@ void plpgsql_ns_push(const char* label) void add_pkg_compile() { - if (u_sess->plsql_cxt.plpgsql_curr_compile_package != NULL) { - plpgsql_add_pkg_ns(u_sess->plsql_cxt.plpgsql_curr_compile_package); + if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package != NULL) { + plpgsql_add_pkg_ns(u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package); } } /* @@ -72,17 +75,44 @@ void plpgsql_add_pkg_ns(PLpgSQL_package* pkg) char* objname = ((PLpgSQL_var*) datum)->refname; if (datum != NULL) { datum->ispkg = true; - varno = plpgsql_adddatum(datum); + varno = plpgsql_adddatum(datum, false); switch (datum->dtype) { case PLPGSQL_DTYPE_VAR: - plpgsql_ns_additem(PLPGSQL_NSTYPE_VAR, varno, objname, pkgname); + if (((PLpgSQL_var*)datum)->addNamespace) { + plpgsql_ns_additem(PLPGSQL_NSTYPE_VAR, varno, objname, pkgname); + } break; case PLPGSQL_DTYPE_ROW: - plpgsql_ns_additem(PLPGSQL_NSTYPE_ROW, varno, objname, pkgname); + if (((PLpgSQL_row*)datum)->addNamespace) { + plpgsql_ns_additem(PLPGSQL_NSTYPE_ROW, varno, objname, pkgname); + } + break; + case PLPGSQL_DTYPE_REC: + if (((PLpgSQL_rec*)datum)->addNamespace) { + plpgsql_ns_additem(PLPGSQL_NSTYPE_REC, varno, objname, pkgname); + } break; case PLPGSQL_DTYPE_RECORD: - plpgsql_ns_additem(PLPGSQL_NSTYPE_RECORD, varno, objname, pkgname); + if (((PLpgSQL_rec*)datum)->addNamespace) { + plpgsql_ns_additem(PLPGSQL_NSTYPE_ROW, varno, objname, pkgname); + } break; + case PLPGSQL_DTYPE_RECORD_TYPE: + if (((PLpgSQL_rec_type*)datum)->addNamespace) { + plpgsql_ns_additem(PLPGSQL_NSTYPE_RECORD, varno, objname, pkgname); + } + break; + case PLPGSQL_DTYPE_VARRAY: + plpgsql_ns_additem(PLPGSQL_NSTYPE_VARRAY, varno, objname, pkgname); + break; + case PLPGSQL_DTYPE_TABLE: + plpgsql_ns_additem(PLPGSQL_NSTYPE_TABLE, varno, objname, pkgname); + break; + case PLPGSQL_DTYPE_UNKNOWN: + plpgsql_ns_additem(PLPGSQL_NSTYPE_UNKNOWN, varno, objname, pkgname); + break; + case PLPGSQL_DTYPE_COMPOSITE: + break; default: ereport(ERROR, (errmodule(MOD_PLSQL), errcode(ERRCODE_UNRECOGNIZED_NODE_TYPE), errmsg("unrecognized ttype: %d, when build variable in PLSQL, this situation should not occur.", @@ -99,11 +129,11 @@ void plpgsql_add_pkg_ns(PLpgSQL_package* pkg) */ void plpgsql_ns_pop(void) { - AssertEreport(u_sess->plsql_cxt.ns_top != NULL, MOD_PLSQL, "ns_top should not be null."); - while (u_sess->plsql_cxt.ns_top->itemtype != PLPGSQL_NSTYPE_LABEL) { - u_sess->plsql_cxt.ns_top = u_sess->plsql_cxt.ns_top->prev; + AssertEreport(u_sess->plsql_cxt.curr_compile_context->ns_top != NULL, MOD_PLSQL, "ns_top should not be null."); + while (u_sess->plsql_cxt.curr_compile_context->ns_top->itemtype != PLPGSQL_NSTYPE_LABEL) { + u_sess->plsql_cxt.curr_compile_context->ns_top = u_sess->plsql_cxt.curr_compile_context->ns_top->prev; } - u_sess->plsql_cxt.ns_top = u_sess->plsql_cxt.ns_top->prev; + u_sess->plsql_cxt.curr_compile_context->ns_top = u_sess->plsql_cxt.curr_compile_context->ns_top->prev; } /* ---------- @@ -112,39 +142,92 @@ void plpgsql_ns_pop(void) */ PLpgSQL_nsitem* plpgsql_ns_top(void) { - return u_sess->plsql_cxt.ns_top; + return u_sess->plsql_cxt.curr_compile_context->ns_top; } /* ---------- * plpgsql_ns_additem Add an item to the current namespace chain * ---------- */ -void plpgsql_ns_additem(int itemtype, int itemno, const char* name, const char* pkgname) +void plpgsql_ns_additem(int itemtype, int itemno, const char* name, const char* pkgname, const char* schemaName) { PLpgSQL_nsitem* nse = NULL; errno_t rc; - + MemoryContext temp = NULL; AssertEreport(name != NULL, MOD_PLSQL, "name should not be null"); + Assert(u_sess->plsql_cxt.curr_compile_context); + PLpgSQL_compile_context* curr_compile = u_sess->plsql_cxt.curr_compile_context; /* first item added must be a label */ - AssertEreport(u_sess->plsql_cxt.ns_top != NULL || itemtype == PLPGSQL_NSTYPE_LABEL, MOD_PLSQL, ""); + AssertEreport(curr_compile->ns_top != NULL || itemtype == PLPGSQL_NSTYPE_LABEL, MOD_PLSQL, ""); - nse = (PLpgSQL_nsitem*)palloc(offsetof(PLpgSQL_nsitem, name) + (strlen(name) + 1) * sizeof(char)); + if (curr_compile->plpgsql_curr_compile_package != NULL) { + temp = MemoryContextSwitchTo(curr_compile->plpgsql_curr_compile_package->pkg_cxt); + } + + size_t nameLength = strlen(name); + size_t nseNameSize = nameLength + 1; + nse = (PLpgSQL_nsitem*)palloc(offsetof(PLpgSQL_nsitem, name) + (nseNameSize) * sizeof(char)); nse->itemtype = itemtype; nse->itemno = itemno; - nse->prev = u_sess->plsql_cxt.ns_top; - rc = strncpy_s(nse->name, strlen(name) + 1, name, strlen(name)); + nse->prev = curr_compile->ns_top; + rc = strncpy_s(nse->name, nseNameSize, name, nameLength); securec_check_c(rc, "\0", "\0"); if (pkgname != NULL) { - nse->pkgname = (char*)palloc(sizeof(char) * (strlen(pkgname) + 1)); - rc = strncpy_s(nse->pkgname, strlen(pkgname) + 1, pkgname, strlen(pkgname)); + size_t pkgNameLength = strlen(pkgname); + size_t nsePkgNameSize = pkgNameLength + 1; + nse->pkgname = (char*)palloc(sizeof(char) * nsePkgNameSize); + rc = strncpy_s(nse->pkgname, nsePkgNameSize, pkgname, pkgNameLength); securec_check_c(rc, "\0", "\0"); } else { nse->pkgname = NULL; } + + if (schemaName != NULL) { + size_t schemaNameLength = strlen(schemaName); + size_t nseSchemaNameSize = schemaNameLength + 1; + nse->schemaName = (char*)palloc(sizeof(char) * nseSchemaNameSize); + rc = strncpy_s(nse->schemaName, nseSchemaNameSize, schemaName, schemaNameLength); + securec_check_c(rc, "\0", "\0"); + } else if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package) { + PLpgSQL_package* curr_package = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package; + if (!OidIsValid(curr_package->namespaceOid)) { + Oid pkg_oid = curr_package->pkg_oid; + Assert(OidIsValid(pkg_oid)); + curr_package->namespaceOid = GetPackageNamespace(pkg_oid); + } + nse->schemaName = get_namespace_name(curr_package->namespaceOid); + } else { + nse->schemaName = NULL; + } - u_sess->plsql_cxt.ns_top = nse; + curr_compile->ns_top = nse; + if (curr_compile->plpgsql_curr_compile_package != NULL) { + temp = MemoryContextSwitchTo(temp); + } +} + +static bool IsSameSchema(const char* schemaName, const char* currCompilePackageSchemaName) +{ + if (currCompilePackageSchemaName && strcmp(schemaName, currCompilePackageSchemaName) == 0) { + return true; + } + return false; +} + +static char* GetPackageSchemaName() +{ + Oid packageSchemaOid = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->namespaceOid; + char* packageSchemaName = get_namespace_name(packageSchemaOid); + return packageSchemaName; +} + +static char* GetPackageSchemaName(Oid packageOid) +{ + Oid packageSchemaOid = GetPackageNamespace(packageOid); + char* packageSchemaName = get_namespace_name(packageSchemaOid); + return packageSchemaName; } /* ---------- @@ -166,46 +249,107 @@ void plpgsql_ns_additem(int itemtype, int itemno, const char* name, const char* * Similarly, if name2 isn't NULL, we disregard unqualified matches to * scalar variables. * ---------- + * + * name1.name2.name3 + * name1: + * (var_name) + * name1.name2: + * (package_name.var_name) + * (record_name.column_name) + * name1.name2.name3: + * (schema_name.package_name.var_name) + * (schema_name.record_name.column_name) */ PLpgSQL_nsitem* plpgsql_ns_lookup( PLpgSQL_nsitem* ns_cur, bool localmode, const char* name1, const char* name2, const char* name3, int* names_used) { /* Outer loop iterates once per block level in the namespace chain */ + int rc = 0; + char* currCompilePackageName = NULL; + char* currCompilePackageSchemaName = NULL; + rc = CompileWhich(); + if (rc == PLPGSQL_COMPILE_PACKAGE_PROC || rc == PLPGSQL_COMPILE_PACKAGE) { + currCompilePackageName = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->pkg_signature; + currCompilePackageSchemaName = GetPackageSchemaName(); + } while (ns_cur != NULL) { PLpgSQL_nsitem* nsitem = NULL; - /* Check this level for unqualified match to variable name */ for (nsitem = ns_cur; nsitem->itemtype != PLPGSQL_NSTYPE_LABEL; nsitem = nsitem->prev) { + if (name1 == NULL) { + continue; + } + bool isSamePackage = false; + if (OidIsValid(u_sess->plsql_cxt.running_pkg_oid) && currCompilePackageName == NULL) { + NameData* CompilePackageName = GetPackageName(u_sess->plsql_cxt.running_pkg_oid); + currCompilePackageName = CompilePackageName->data; + currCompilePackageSchemaName = GetPackageSchemaName(u_sess->plsql_cxt.running_pkg_oid); + } + if (currCompilePackageName != NULL && nsitem->pkgname != NULL) { + if (strcmp(currCompilePackageName, nsitem->pkgname) == 0) { + if (nsitem->schemaName == NULL) { + /* By default, we assume package is same if schema is empty. */ + isSamePackage = true; + } else { + isSamePackage = IsSameSchema(nsitem->schemaName, currCompilePackageSchemaName); + } + } + } if (strcmp(nsitem->name, name1) == 0) { + bool isContinue = nsitem->pkgname != NULL && !isSamePackage; + if (isContinue) { + continue; + } if (name2 == NULL || nsitem->itemtype != PLPGSQL_NSTYPE_VAR) { if (names_used != NULL) { *names_used = 1; } + pfree_ext(currCompilePackageSchemaName); return nsitem; } } - + if (name2 == NULL) { + continue; + } if (nsitem->pkgname != NULL && strcmp(nsitem->pkgname, name1) == 0) { - if (name2 == NULL) { - continue; - } else if (strcmp(nsitem->name, name2) == 0 && (name3 == NULL || + if (strcmp(nsitem->name, name2) == 0 && (name3 == NULL || nsitem->itemtype != PLPGSQL_NSTYPE_VAR)) { if (names_used != NULL) { *names_used = 2; } + pfree_ext(currCompilePackageSchemaName); + return nsitem; + } + } + if (name3 == NULL) { + continue; + } + if (nsitem->schemaName != NULL && (strcmp(nsitem->schemaName, name1) == 0)) { + if (nsitem->pkgname == NULL) { + continue; + } else if (!(strcmp(nsitem->pkgname, name2) == 0)) { + continue; + } + if (strcmp(nsitem->name, name3) == 0) { + if (names_used != NULL) { + *names_used = 3; + } + pfree_ext(currCompilePackageSchemaName); return nsitem; } } } /* Check this level for qualified match to variable name */ - if (name2 != NULL && strcmp(nsitem->name, name1) == 0) { + + if (name1 != NULL && name2 != NULL && strcmp(nsitem->name, name1) == 0) { for (nsitem = ns_cur; nsitem->itemtype != PLPGSQL_NSTYPE_LABEL; nsitem = nsitem->prev) { if (strcmp(nsitem->name, name2) == 0) { if (name3 == NULL || nsitem->itemtype != PLPGSQL_NSTYPE_VAR) { if (names_used != NULL) { *names_used = 2; } + pfree_ext(currCompilePackageSchemaName); return nsitem; } } @@ -223,9 +367,36 @@ PLpgSQL_nsitem* plpgsql_ns_lookup( if (names_used != NULL) { *names_used = 0; } + pfree_ext(currCompilePackageSchemaName); return NULL; /* No match found */ } +PLpgSQL_datum* plpgsql_lookup_datum( + bool localmode, const char* name1, const char* name2, const char* name3, int* names_used) +{ + if (u_sess->plsql_cxt.curr_compile_context == NULL) { + return NULL; + } + + PLpgSQL_nsitem* ns = plpgsql_ns_lookup(plpgsql_ns_top(), localmode, name1, name2, name3, names_used); + if (ns == NULL) { + /* find from pkg */ + if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package != NULL) { + PLpgSQL_package* pkg = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package; + ns = plpgsql_ns_lookup(pkg->public_ns, localmode, name1, name2, name3, names_used); + if (ns == NULL) { + ns = plpgsql_ns_lookup(pkg->private_ns, localmode, name1, name2, name3, names_used); + } + if (ns != NULL) { + return pkg->datums[ns->itemno]; + } + } + } else { + return u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[ns->itemno]; + } + + return NULL; +} /* ---------- * plpgsql_ns_lookup_label Lookup a label in the given namespace chain * ---------- @@ -242,6 +413,20 @@ PLpgSQL_nsitem* plpgsql_ns_lookup_label(PLpgSQL_nsitem* ns_cur, const char* name return NULL; /* label not found */ } +static const char* plpgsql_savepoint_typename(PLpgSQL_stmt_savepoint *stmt) +{ + switch (stmt->opType) { + case PLPGSQL_SAVEPOINT_CREATE: + return "SAVEPOINT"; + case PLPGSQL_SAVEPOINT_ROLLBACKTO: + return "ROLLBACK TO SAVEPOINT"; + case PLPGSQL_SAVEPOINT_RELEASE: + return "RELEASE SAVEPOINT"; + default: + return "unknown savepoint"; + } +} + /* * Statement type as a string, for use in error messages etc. */ @@ -302,6 +487,8 @@ const char* plpgsql_stmt_typename(PLpgSQL_stmt* stmt) return "COMMIT"; case PLPGSQL_STMT_ROLLBACK: return "ROLLBACK"; + case PLPGSQL_STMT_SAVEPOINT: + return plpgsql_savepoint_typename((PLpgSQL_stmt_savepoint*)stmt); default: break; } @@ -373,6 +560,7 @@ static void free_null(PLpgSQL_stmt_null* stmt); static void free_perform(PLpgSQL_stmt_perform* stmt); static void free_commit(PLpgSQL_stmt_commit *stmt); static void free_rollback(PLpgSQL_stmt_rollback *stmt); +static void free_savepoint(PLpgSQL_stmt_savepoint *stmt); static void free_stmt(PLpgSQL_stmt* stmt) { @@ -458,6 +646,9 @@ static void free_stmt(PLpgSQL_stmt* stmt) case PLPGSQL_STMT_NULL: free_null((PLpgSQL_stmt_null*)stmt); break; + case PLPGSQL_STMT_SAVEPOINT: + free_savepoint((PLpgSQL_stmt_savepoint*)stmt); + break; default: ereport(ERROR, (errmodule(MOD_PLSQL), @@ -495,6 +686,17 @@ static void free_assign(PLpgSQL_stmt_assign* stmt) free_expr(stmt->expr); } +void free_assignlist(List* assignlist) +{ + ListCell* lc = NULL; + foreach(lc, assignlist) { + Node* n = (Node*)lfirst(lc); + if (IsA(n, A_Indices)) { + free_expr((PLpgSQL_expr*)(((A_Indices*)n)->uidx)); + } + } +} + static void free_if(PLpgSQL_stmt_if* stmt) { ListCell* l = NULL; @@ -605,6 +807,10 @@ static void free_rollback(PLpgSQL_stmt_rollback *stmt) { } +static void free_savepoint(PLpgSQL_stmt_savepoint *stmt) +{ +} + static void free_exit(PLpgSQL_stmt_exit* stmt) { free_expr(stmt->cond); @@ -691,7 +897,8 @@ void plpgsql_free_function_memory(PLpgSQL_function* func) /* * function which in package not free memory alone */ - if (u_sess->plsql_cxt.plpgsql_curr_compile_package != NULL) { + if (u_sess->plsql_cxt.curr_compile_context != NULL && + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package != NULL) { return; } @@ -706,25 +913,41 @@ void plpgsql_free_function_memory(PLpgSQL_function* func) continue; } switch (d->dtype) { + case PLPGSQL_DTYPE_VARRAY: + case PLPGSQL_DTYPE_TABLE: case PLPGSQL_DTYPE_VAR: { PLpgSQL_var* var = (PLpgSQL_var*)d; free_expr(var->default_val); free_expr(var->cursor_explicit_expr); + if (var->tableOfIndex != NULL) { + hash_destroy(var->tableOfIndex); + var->tableOfIndex = NULL; + } } break; - case PLPGSQL_DTYPE_ROW: - break; - case PLPGSQL_DTYPE_REC: - break; case PLPGSQL_DTYPE_RECORD: + case PLPGSQL_DTYPE_ROW: { + PLpgSQL_row* row = (PLpgSQL_row*)d; + free_expr(row->default_val); + } break; + case PLPGSQL_DTYPE_REC: break; case PLPGSQL_DTYPE_RECFIELD: break; case PLPGSQL_DTYPE_ARRAYELEM: free_expr(((PLpgSQL_arrayelem*)d)->subscript); break; + case PLPGSQL_DTYPE_TABLEELEM: + free_expr(((PLpgSQL_tableelem*)d)->subscript); + break; + case PLPGSQL_DTYPE_ASSIGNLIST: + free_assignlist(((PLpgSQL_assignlist*)d)->assignlist); case PLPGSQL_DTYPE_UNKNOWN: break; + case PLPGSQL_DTYPE_COMPOSITE: + break; + case PLPGSQL_DTYPE_RECORD_TYPE: + break; default: ereport(ERROR, (errmodule(MOD_PLSQL), @@ -768,8 +991,9 @@ void plpgsql_free_function_memory(PLpgSQL_function* func) * itself (which has to be kept around because there may be multiple * fn_extra pointers to it). */ - if (func->fn_cxt == u_sess->plsql_cxt.plpgsql_cxt) - u_sess->plsql_cxt.plpgsql_cxt = NULL; + if (u_sess->plsql_cxt.curr_compile_context != NULL && + func->fn_cxt == u_sess->plsql_cxt.curr_compile_context->compile_cxt) + u_sess->plsql_cxt.curr_compile_context->compile_cxt = NULL; if (!OidIsValid(func->pkg_oid)) { if (func->fn_cxt) { MemoryContextDelete(func->fn_cxt); @@ -787,6 +1011,10 @@ void plpgsql_free_package_memory(PLpgSQL_package* pkg) { int i; ListCell* l; + foreach(l, pkg->proc_compiled_list) { + if (((PLpgSQL_function*)lfirst(l))->use_count > 0) + return; + } foreach(l, pkg->proc_compiled_list) { PLpgSQL_function* func = (PLpgSQL_function*)lfirst(l); plpgsql_free_function_memory(func); @@ -795,22 +1023,40 @@ void plpgsql_free_package_memory(PLpgSQL_package* pkg) for (i = 0; i < pkg->ndatums; i++) { PLpgSQL_datum* d = pkg->datums[i]; switch (d->dtype) { + case PLPGSQL_DTYPE_VARRAY: + case PLPGSQL_DTYPE_TABLE: case PLPGSQL_DTYPE_VAR: { PLpgSQL_var* var = (PLpgSQL_var*)d; free_expr(var->default_val); free_expr(var->cursor_explicit_expr); + if (var->tableOfIndex != NULL) { + hash_destroy(var->tableOfIndex); + var->tableOfIndex = NULL; + } } break; - case PLPGSQL_DTYPE_ROW: - break; - case PLPGSQL_DTYPE_REC: + case PLPGSQL_DTYPE_UNKNOWN: break; case PLPGSQL_DTYPE_RECORD: + case PLPGSQL_DTYPE_ROW: { + PLpgSQL_row* row = (PLpgSQL_row*)d; + free_expr(row->default_val); + } break; + case PLPGSQL_DTYPE_REC: break; case PLPGSQL_DTYPE_RECFIELD: break; case PLPGSQL_DTYPE_ARRAYELEM: free_expr(((PLpgSQL_arrayelem*)d)->subscript); break; + case PLPGSQL_DTYPE_TABLEELEM: + free_expr(((PLpgSQL_tableelem*)d)->subscript); + break; + case PLPGSQL_DTYPE_ASSIGNLIST: + free_assignlist(((PLpgSQL_assignlist*)d)->assignlist); + case PLPGSQL_DTYPE_COMPOSITE: + break; + case PLPGSQL_DTYPE_RECORD_TYPE: + break; default: ereport(ERROR, (errmodule(MOD_PLSQL), @@ -832,8 +1078,9 @@ void plpgsql_free_package_memory(PLpgSQL_package* pkg) * itself (which has to be kept around because there may be multiple * fn_extra pointers to it). */ - if (pkg->pkg_cxt == u_sess->plsql_cxt.plpgsql_cxt) - u_sess->plsql_cxt.plpgsql_cxt = NULL; + if (u_sess->plsql_cxt.curr_compile_context != NULL && + pkg->pkg_cxt == u_sess->plsql_cxt.curr_compile_context->compile_cxt) + u_sess->plsql_cxt.curr_compile_context->compile_cxt = NULL; if (pkg->pkg_cxt) { MemoryContextDelete(pkg->pkg_cxt); } @@ -875,6 +1122,7 @@ static void dump_commit(PLpgSQL_stmt_commit *stmt); static void dump_rollback(PLpgSQL_stmt_rollback *stmt); static void dump_null(PLpgSQL_stmt_null* stmt); static void dump_expr(PLpgSQL_expr* expr); +static void dump_savepoint(PLpgSQL_stmt_savepoint *stmt); static void dump_ind(void) { @@ -970,6 +1218,9 @@ static void dump_stmt(PLpgSQL_stmt* stmt) case PLPGSQL_STMT_NULL: dump_null((PLpgSQL_stmt_null*)stmt); break; + case PLPGSQL_STMT_SAVEPOINT: + dump_savepoint((PLpgSQL_stmt_savepoint*)stmt); + break; default: ereport(ERROR, (errmodule(MOD_PLSQL), @@ -1343,6 +1594,24 @@ static void dump_null(PLpgSQL_stmt_null* stmt) printf("NULL\n"); } +static void dump_savepoint(PLpgSQL_stmt_savepoint *stmt) +{ + switch (stmt->opType) { + case PLPGSQL_SAVEPOINT_CREATE: + printf("SAVEPOINT %s;", stmt->spName); + break; + case PLPGSQL_SAVEPOINT_ROLLBACKTO: + printf("ROLLBACK TO %s", stmt->spName); + break; + case PLPGSQL_SAVEPOINT_RELEASE: + printf("RELEASE %s", stmt->spName); + break; + default: + printf("??? unknown savepoint operate: %s", stmt->spName); + break; + } +} + static void dump_exit(PLpgSQL_stmt_exit* stmt) { dump_ind(); @@ -1627,6 +1896,11 @@ void plpgsql_dumptree(PLpgSQL_function* func) printf(" %s=var %d", row->fieldnames[j], row->varnos[j]); } } + if (row->default_val != NULL) { + printf(" DEFAULT "); + dump_expr(row->default_val); + printf("\n"); + } printf("\n"); } break; case PLPGSQL_DTYPE_REC: @@ -1648,7 +1922,7 @@ void plpgsql_dumptree(PLpgSQL_function* func) } } printf("\nFunction's statements:\n"); - + /* ??? */ u_sess->plsql_cxt.dump_indent = 0; printf("%3d:", func->action->lineno); dump_block(func->action); @@ -1686,6 +1960,9 @@ bool traverse_cursor_direction(PLpgSQL_function* func, PLpgSQL_stmt_fetch* stmt) bool traverse_close(PLpgSQL_stmt_close* stmt); bool traverse_perform(PLpgSQL_function* func, PLpgSQL_stmt_perform* stmt); bool traverse_expr(PLpgSQL_function* func, PLpgSQL_expr* expr); +bool traverse_savepoint(PLpgSQL_function* func, PLpgSQL_stmt_savepoint *stmt); +bool traverse_commit(PLpgSQL_function* func, PLpgSQL_stmt_commit *stmt); +bool traverse_rollback(PLpgSQL_function* func, PLpgSQL_stmt_rollback *stmt); /* * @Description : traverse statements in trigger body for checking shippable. @@ -1801,6 +2078,15 @@ bool traverse_stmt(PLpgSQL_function* func, PLpgSQL_stmt* stmt) case PLPGSQL_STMT_PERFORM: is_shippable = traverse_perform(func, (PLpgSQL_stmt_perform*)stmt); break; + case PLPGSQL_STMT_SAVEPOINT: + is_shippable = traverse_savepoint(func, (PLpgSQL_stmt_savepoint*)stmt); + break; + case PLPGSQL_STMT_COMMIT: + is_shippable = traverse_commit(func, (PLpgSQL_stmt_commit*)stmt); + break; + case PLPGSQL_STMT_ROLLBACK: + is_shippable = traverse_rollback(func, (PLpgSQL_stmt_rollback*)stmt); + break; default: ereport(ERROR, (errcode(ERRCODE_INVALID_OPERATION), errmsg("unrecognized cmd_type: %d", stmt->cmd_type))); break; @@ -2356,6 +2642,21 @@ bool traverse_expr(PLpgSQL_function* func, PLpgSQL_expr* expr) return pgxc_is_query_shippable_in_trigger(expr); } +bool traverse_savepoint(PLpgSQL_function* func, PLpgSQL_stmt_savepoint *stmt) +{ + return false; +} + +bool traverse_commit(PLpgSQL_function* func, PLpgSQL_stmt_commit *stmt) +{ + return false; +} + +bool traverse_rollback(PLpgSQL_function* func, PLpgSQL_stmt_rollback *stmt) +{ + return false; +} + /* * @Description : main entry function for check whether trigger body is shippable. * @in func : the function of trigger body which need be checked. diff --git a/src/common/pl/plpgsql/src/pl_global_package_runtime_cache.cpp b/src/common/pl/plpgsql/src/pl_global_package_runtime_cache.cpp new file mode 100644 index 000000000..eef8406cc --- /dev/null +++ b/src/common/pl/plpgsql/src/pl_global_package_runtime_cache.cpp @@ -0,0 +1,217 @@ +/* + * Copyright (c) 2021 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors + * + * openGauss is licensed under Mulan PSL v2. + * You can use this software according to the terms and conditions of the Mulan PSL v2. + * You may obtain a copy of Mulan PSL v2 at: + * + * http://license.coscl.org.cn/MulanPSL2 + * + * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, + * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, + * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + * See the Mulan PSL v2 for more details. + * ------------------------------------------------------------------------- + * + * pl_global_package_runtime_cache.cpp + * global PLSQL's package runtime cache + * + * IDENTIFICATION + * src/common/pl/plpgsql/src/pl_global_package_runtime_cache.cpp + * + * ------------------------------------------------------------------------- + */ + +#include "postgres.h" +#include "knl/knl_variable.h" + +#include "access/hash.h" +#include "nodes/pg_list.h" +#include "utils/dynahash.h" +#include "utils/memutils.h" +#include "utils/plpgsql.h" +#include "utils/pl_global_package_runtime_cache.h" + +static int getPartition(uint32 hashCode) +{ + return hashCode % NUM_GPRC_PARTITIONS; +} + +static uint32 gprcHash(const void* key, Size keysize) +{ + return DatumGetUInt32(DirectFunctionCall1(hashint8, Int64GetDatumFast(*((uint64*)key)))); +} + +static int gprcMatch(const void *left, const void *right, Size keysize) +{ + uint64 *leftItem = (uint64*)left; + uint64 *rightItem = (uint64*)right; + return *leftItem == *rightItem; +} + +PLGlobalPackageRuntimeCache::PLGlobalPackageRuntimeCache() +{ + init(); +} + +PLGlobalPackageRuntimeCache::~PLGlobalPackageRuntimeCache() +{ +} + +void PLGlobalPackageRuntimeCache::init() +{ + HASHCTL ctl; + errno_t rc = memset_s(&ctl, sizeof(ctl), 0, sizeof(ctl)); + securec_check(rc, "\0", "\0"); + ctl.keysize = sizeof(uint64); + ctl.entrysize = sizeof(GPRCValue); + ctl.hash = gprcHash; + ctl.match = gprcMatch; + const int hashSize = 1024; + + int flags = HASH_ELEM | HASH_FUNCTION | HASH_CONTEXT | HASH_COMPARE | HASH_EXTERN_CONTEXT | HASH_NOEXCEPT; + hashArray = (GPRCHashCtl*) + MemoryContextAllocZero(GLOBAL_PLANCACHE_MEMCONTEXT, sizeof(GPRCHashCtl) * NUM_GPRC_PARTITIONS); + for (uint32 i = 0; i < NUM_GPRC_PARTITIONS; i++) { + hashArray[i].lockId = FirstGPRCMappingLock + i; + hashArray[i].context = AllocSetContextCreate( + GLOBAL_PLANCACHE_MEMCONTEXT, + "GPRC_Bucket_Context", + ALLOCSET_DEFAULT_MINSIZE, + ALLOCSET_DEFAULT_INITSIZE, + ALLOCSET_DEFAULT_MAXSIZE, + SHARED_CONTEXT); + ctl.hcxt = hashArray[i].context; + hashArray[i].hashTbl = hash_create("Global_Package_Runtime_hashtable", hashSize, &ctl, flags); + } +} + +static List* copyPackageRuntimeStates(SessionPackageRuntime *runtime) +{ + ListCell* cell = NULL; + List* result = NULL; + foreach(cell, runtime->runtimes) { + PackageRuntimeState* runtimeState = (PackageRuntimeState*)lfirst(cell); + PackageRuntimeState* newRuntimeState = (PackageRuntimeState*)palloc0(sizeof(PackageRuntimeState)); + newRuntimeState->datums = (PLpgSQL_datum**)palloc0(sizeof(PLpgSQL_datum*) * runtimeState->size); + newRuntimeState->packageId = runtimeState->packageId; + newRuntimeState->size = runtimeState->size; + for (int i = 0; i < runtimeState->size; i++) { + PLpgSQL_datum *datum = runtimeState->datums[i]; + if (datum == NULL) { + continue; + } + PLpgSQL_datum *newDatum = deepCopyPlpgsqlDatum(datum); + newRuntimeState->datums[i] = newDatum; + } + result = lappend(result, newRuntimeState); + } + return result; +} + +static SessionPackageRuntime* copySessionPackageRuntime(SessionPackageRuntime *runtime) +{ + MemoryContext pkgRuntimeCtx = AllocSetContextCreate(CurrentMemoryContext, + "SessionPackageRuntime", + ALLOCSET_SMALL_MINSIZE, + ALLOCSET_SMALL_INITSIZE, + ALLOCSET_DEFAULT_MAXSIZE); + MemoryContext oldCtx = MemoryContextSwitchTo(pkgRuntimeCtx); + SessionPackageRuntime *sessPkgRuntime = (SessionPackageRuntime*)palloc0(sizeof(SessionPackageRuntime)); + sessPkgRuntime->runtimes = copyPackageRuntimeStates(runtime); + sessPkgRuntime->context = pkgRuntimeCtx; + MemoryContextSwitchTo(oldCtx); + return sessPkgRuntime; +} + +bool PLGlobalPackageRuntimeCache::add(uint64 sessionId, SessionPackageRuntime* runtime) +{ + if (runtime == NULL) { + ereport(WARNING, + (errmsg("SessionPackageRuntime can't be null."))); + return false; + } + + ereport(DEBUG3, (errmodule(MOD_PLSQL), errcode(ERRCODE_LOG), + errmsg("PLGlobalPackageRuntimeCache LOG: current session id: %lu , add session id: %lu", + IS_THREAD_POOL_WORKER ? u_sess->session_id : t_thrd.proc_cxt.MyProcPid, sessionId))); + + uint32 hashCode = DirectFunctionCall1(hashint8, Int64GetDatumFast(sessionId)); + int partitionIndex = getPartition(hashCode); + GPRCHashCtl hashTblCtl = hashArray[partitionIndex]; + + (void)LWLockAcquire(GetMainLWLockByIndex(hashTblCtl.lockId), LW_EXCLUSIVE); + MemoryContext oldcontext = MemoryContextSwitchTo(hashTblCtl.context); + + bool found = false; + GPRCValue *entry = (GPRCValue*)hash_search_with_hash_value( + hashTblCtl.hashTbl, (const void*)&sessionId, hashCode, HASH_FIND, &found); + if (found) { + MemoryContextDelete(entry->sessPkgRuntime->context); + entry->sessPkgRuntime = NULL; + hash_search_with_hash_value( + hashTblCtl.hashTbl, (const void*)&sessionId, hashCode, HASH_REMOVE, &found); + } + + entry = (GPRCValue*)hash_search_with_hash_value( + hashTblCtl.hashTbl, (const void*)&sessionId, hashCode, HASH_ENTER, &found); + if (entry == NULL) { + ereport(ERROR, (errmodule(MOD_PLSQL), errcode(ERRCODE_NULL_VALUE_NOT_ALLOWED), + errmsg("palloc hash element GPRCValue failed"), + errdetail("failed to add hash element for PLGlobalPackageRuntimeCache"), + errcause("out of memory"), + erraction("set more memory"))); + } + entry->sessPkgRuntime = copySessionPackageRuntime(runtime); + + MemoryContextSwitchTo(oldcontext); + LWLockRelease(GetMainLWLockByIndex(hashTblCtl.lockId)); + return true; +} + +SessionPackageRuntime* PLGlobalPackageRuntimeCache::fetch(uint64 sessionId) +{ + ereport(DEBUG3, (errmodule(MOD_PLSQL), errcode(ERRCODE_LOG), + errmsg("PLGlobalPackageRuntimeCache LOG: current session id: %lu , fetch session id: %lu", + IS_THREAD_POOL_WORKER ? u_sess->session_id : t_thrd.proc_cxt.MyProcPid, sessionId))); + + uint32 hashCode = DirectFunctionCall1(hashint8, Int64GetDatumFast(sessionId)); + int partitionIndex = getPartition(hashCode); + GPRCHashCtl hashTblCtl = hashArray[partitionIndex]; + (void)LWLockAcquire(GetMainLWLockByIndex(hashTblCtl.lockId), LW_EXCLUSIVE); + + bool found = false; + GPRCValue *entry = (GPRCValue*)hash_search_with_hash_value( + hashTblCtl.hashTbl, (const void*)&sessionId, hashCode, HASH_FIND, &found); + if (!found) { + LWLockRelease(GetMainLWLockByIndex(hashTblCtl.lockId)); + return NULL; + } + + SessionPackageRuntime *sessPkgRuntime = copySessionPackageRuntime(entry->sessPkgRuntime); + LWLockRelease(GetMainLWLockByIndex(hashTblCtl.lockId)); + return sessPkgRuntime; +} + +bool PLGlobalPackageRuntimeCache::remove(uint64 sessionId) +{ + ereport(DEBUG3, (errmodule(MOD_PLSQL), errcode(ERRCODE_LOG), + errmsg("PLGlobalPackageRuntimeCache LOG: current session id: %lu , remove session id: %lu", + IS_THREAD_POOL_WORKER ? u_sess->session_id : t_thrd.proc_cxt.MyProcPid, sessionId))); + uint32 hashCode = DirectFunctionCall1(hashint8, Int64GetDatumFast(sessionId)); + int partitionIndex = getPartition(hashCode); + GPRCHashCtl hashTblCtl = hashArray[partitionIndex]; + (void)LWLockAcquire(GetMainLWLockByIndex(hashTblCtl.lockId), LW_EXCLUSIVE); + + bool found = false; + hash_search_with_hash_value( + hashTblCtl.hashTbl, (const void*)&sessionId, hashCode, HASH_REMOVE, &found); + if (!found) { + LWLockRelease(GetMainLWLockByIndex(hashTblCtl.lockId)); + return false; + } + + LWLockRelease(GetMainLWLockByIndex(hashTblCtl.lockId)); + return true; +} diff --git a/src/common/pl/plpgsql/src/pl_handler.cpp b/src/common/pl/plpgsql/src/pl_handler.cpp index 7497ff649..282ea67fd 100755 --- a/src/common/pl/plpgsql/src/pl_handler.cpp +++ b/src/common/pl/plpgsql/src/pl_handler.cpp @@ -5,6 +5,7 @@ * * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -15,6 +16,7 @@ #include "utils/plpgsql.h" #include "utils/fmgroids.h" +#include "utils/pl_package.h" #include "auditfuncs.h" #include "catalog/pg_cast.h" #include "catalog/pg_proc.h" @@ -23,6 +25,7 @@ #include "catalog/pg_language.h" #include "catalog/pg_proc_fn.h" #include "catalog/indexing.h" +#include "catalog/catalog.h" #include "funcapi.h" #include "miscadmin.h" #include "tcop/autonomoustransaction.h" @@ -31,6 +34,8 @@ #include "utils/guc.h" #include "utils/lsyscache.h" #include "utils/syscache.h" +#include "utils/acl.h" +#include "parser/parser.h" #include "pgstat.h" #include "utils/timestamp.h" #include "executor/spi_priv.h" @@ -46,19 +51,16 @@ #ifndef PG_MODULE_MAGIC PG_MODULE_MAGIC; #endif - -/* Custom GUC variable */ -static const struct config_enum_entry variable_conflict_options[] = {{"error", PLPGSQL_RESOLVE_ERROR, false}, - {"use_variable", PLPGSQL_RESOLVE_VARIABLE, false}, - {"use_column", PLPGSQL_RESOLVE_COLUMN, false}, - {NULL, 0, false}}; - +#define MAXSTRLEN ((1 << 11) - 1) static void auditExecPLpgSQLFunction(PLpgSQL_function* func, AuditResult result) { char details[PGAUDIT_MAXLENGTH]; errno_t rcs = EOK; if (unlikely(func == NULL)) { + char message[MAXSTRLEN]; + sprintf_s(message, MAXSTRLEN, "function should not be null"); + InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc, true); ereport(ERROR, (errcode(ERRCODE_UNEXPECTED_NULL_VALUE), errmsg("function should not be null"))); @@ -92,14 +94,200 @@ extern void restoreCallFromPkgOid(Oid pkgOid) u_sess->plsql_cxt.running_pkg_oid = pkgOid; } -static void processError(List* funcname) +static void processError(CreateFunctionStmt* stmt) { + int lines = stmt->startLineNumber + u_sess->plsql_cxt.package_first_line - 1; + InsertErrorMessage("function declared in package specification " + "and package body must be the same", 0, false, lines); ereport(ERROR, (errcode(ERRCODE_UNDEFINED_FUNCTION), errmodule(MOD_PLSQL), - errmsg("package declare error function: %s", NameListToString(funcname)))); + errmsg("function declared in package specification and " + "package body must be the same, function: %s", + NameListToString(stmt->funcname)))); } +#ifndef ENABLE_MULTIPLE_NODES +static void InsertGsSource(Oid objId, Oid nspid, const char* name, const char* type, bool status) +{ + bool notInsert = u_sess->attr.attr_common.upgrade_mode != 0 || IsSystemNamespace(nspid) || + IsToastNamespace(nspid) || IsCStoreNamespace(nspid) || + IsPackageSchemaOid(nspid) || SKIP_GS_SOURCE || IsTransactionBlock(); + if (notInsert) { + return; + } + if (g_instance.attr.attr_storage.max_concurrent_autonomous_transactions <= 0) { + ereport(WARNING, (errcode(ERRCODE_PLPGSQL_ERROR), + errmsg("The stored procedure creation information cannot be inserted into the gs source."), + errdetail("The value of MAX_CONCURRENT_AUTONOMOUS_TRANSACTIONS must be greater than 0."), + errcause("gs_source insertion depends on autonomous transaction."), + erraction("set MAX_CONCURRENT_AUTONOMOUS_TRANSACTIONS = 10."))); + return; + } + Oid userId = (Oid)u_sess->misc_cxt.CurrentUserId; + char statusChr = status ? 't' : 'f'; + /* User statement may contain sensitive information like password */ + const char* source = maskPassword(u_sess->plsql_cxt.sourceText); + if (source == NULL) { + source = u_sess->plsql_cxt.sourceText; + } + /* Execute autonomous transaction call for logging purpose */ + StringInfoData str; + initStringInfo(&str); + appendStringInfoString(&str, + "declare\n" + "PRAGMA AUTONOMOUS_TRANSACTION;\n" + "oldId int:=0;" + "objId int:=0;" + "allNum int:=0;\n" + "begin\n "); + appendStringInfo(&str, + "select count(*) from dbe_pldeveloper.gs_source into allNum where " + "nspid=%u and name=\'%s\' and type=\'%s\';", nspid, name, type); + appendStringInfo(&str, + "if allNum > 0 then " + "select id from dbe_pldeveloper.gs_source into oldId where " + "nspid=%u and name=\'%s\' and type=\'%s\';" + "objId := oldId; " + "else " + "objId := %u;" + "end if;", nspid, name, type, objId); + appendStringInfo(&str, + "delete from DBE_PLDEVELOPER.gs_source where nspid=%u and name=\'%s\' and type = \'%s\';\n", + nspid, name, type); + appendStringInfo(&str, + "delete from DBE_PLDEVELOPER.gs_source where nspid=%u and name=\'%s\' and type = \'%s\';\n", + nspid, name, type); + if (!u_sess->attr.attr_common.plsql_show_all_error || status) { + appendStringInfo(&str, + "delete from DBE_PLDEVELOPER.gs_errors where " + "nspid=%u and name=\'%s\' and type = \'%s\';\n", + nspid, name, type); + if (!strcmp(type, "package")) { + appendStringInfo(&str, + "delete from DBE_PLDEVELOPER.gs_errors where " + "nspid=%u and name=\'%s\' and type = \'package body\';\n", + nspid, name); + } + } + if (status && !strcmp(type, "package")) { + appendStringInfo(&str, + "delete from DBE_PLDEVELOPER.gs_source where " + "nspid=%u and name=\'%s\' and type = \'package body\';\n", + nspid, name); + } + appendStringInfo(&str, + "insert into DBE_PLDEVELOPER.gs_source values(objId, %u, %u,\'%s\', \'%s\', \'%c\', $gssource$%s$gssource$);\n", + userId, nspid, name, type, statusChr, source); + appendStringInfoString(&str, + "EXCEPTION WHEN OTHERS THEN NULL; \n"); + appendStringInfoString(&str, "end;"); + List* rawParseList = raw_parser(str.data); + DoStmt* stmt = (DoStmt *)linitial(rawParseList); + int save_compile_status = getCompileStatus(); + int save_compile_list_length = list_length(u_sess->plsql_cxt.compile_context_list); + PLpgSQL_compile_context* save_compile_context = u_sess->plsql_cxt.curr_compile_context; + MemoryContext temp = NULL; + if (u_sess->plsql_cxt.curr_compile_context != NULL) { + temp = MemoryContextSwitchTo(u_sess->plsql_cxt.curr_compile_context->compile_tmp_cxt); + } + PG_TRY(); + { + (void)CompileStatusSwtichTo(NONE_STATUS); + u_sess->plsql_cxt.curr_compile_context = NULL; + ExecuteDoStmt(stmt, true); + } + PG_CATCH(); + { + if (temp != NULL) { + MemoryContextSwitchTo(temp); + } + (void)CompileStatusSwtichTo(save_compile_status); + u_sess->plsql_cxt.curr_compile_context = save_compile_context; + clearCompileContextList(save_compile_list_length); + PG_RE_THROW(); + } + PG_END_TRY(); + u_sess->plsql_cxt.curr_compile_context = save_compile_context; + (void)CompileStatusSwtichTo(save_compile_status); + if (temp != NULL) { + MemoryContextSwitchTo(temp); + } + pfree_ext(str.data); + if (source != t_thrd.postgres_cxt.debug_query_string) { + pfree_ext(source); + } +} +static void PkgInsertGsSource(Oid pkgOid, bool isSpec, bool status) +{ + HeapTuple pkgTup = SearchSysCache1(PACKAGEOID, ObjectIdGetDatum(pkgOid)); + Form_gs_package pkgStruct = (Form_gs_package)GETSTRUCT(pkgTup); + if (!HeapTupleIsValid(pkgTup)) { + ereport(ERROR, (errmodule(MOD_PLSQL), errcode(ERRCODE_CACHE_LOOKUP_FAILED), + errmsg("cache lookup failed for package %u, while collecting gs_source log", pkgOid))); + } + char* name = NameStr(pkgStruct->pkgname); + Oid nspid = pkgStruct->pkgnamespace; + const char* type = (isSpec) ? ("package") : ("package body"); + InsertGsSource(pkgOid, nspid, name, type, status); + ReleaseSysCache(pkgTup); +} + + +static void ProcInsertGsSource(Oid funcOid, bool status) +{ + HeapTuple procTup = SearchSysCache1(PROCOID, ObjectIdGetDatum(funcOid)); + if (!HeapTupleIsValid(procTup)) { + ereport(ERROR, (errmodule(MOD_PLSQL), errcode(ERRCODE_CACHE_LOOKUP_FAILED), + errmsg("cache lookup failed for function %u, while collecting gs_source log", funcOid))); + } + Form_pg_proc procStruct = (Form_pg_proc)GETSTRUCT(procTup); + bool isnull = false; + + /* Skip nested create function stmt within package body */ + Datum packageDatum = SysCacheGetAttr(PROCOID, procTup, Anum_pg_proc_package, &isnull); + if (isnull) { + ereport(ERROR, (errmodule(MOD_PLSQL), errcode(ERRCODE_UNDEFINED_OBJECT), + errmsg("The prokind of the function is null"), + errhint("Check whether the definition of the function is complete in the pg_proc system table."))); + } + if (DatumGetBool(packageDatum)) { + ReleaseSysCache(procTup); + return; + } + + /* Skip trigger function for now */ + if (procStruct->prorettype == TRIGGEROID) { + ReleaseSysCache(procTup); + return; + } + + Datum prokindDatum = SysCacheGetAttr(PROCOID, procTup, Anum_pg_proc_prokind, &isnull); + if (isnull) { + ereport(ERROR, (errmodule(MOD_PLSQL), errcode(ERRCODE_UNDEFINED_OBJECT), + errmsg("The prokind of the function is null"), + errhint("Check whether the definition of the function is complete in the pg_proc system table."))); + } + char prokind = CharGetDatum(prokindDatum); + + if (PROC_IS_AGG(prokind) || PROC_IS_WIN(prokind)) { + ReleaseSysCache(procTup); + return; + } + + char* name = NameStr(procStruct->proname); + Oid nspid = procStruct->pronamespace; + const char* type = (prokind == PROKIND_PROCEDURE) ? ("procedure") : ("function"); + + InsertGsSource(funcOid, nspid, name, type, status); + + ReleaseSysCache(procTup); + + return; +} +#endif + + /* * process different situation in package,for example,duplicate declartion,duplicate definition, * and only declartion no definition. @@ -111,8 +299,9 @@ static void processError(List* funcname) void processPackageProcList(PLpgSQL_package* pkg) { ListCell* cell = NULL; - CreateFunctionStmt* stmtArray[list_length(pkg->proc_list)] = {NULL}; - int recordArr[list_length(pkg->proc_list)] = {0}; + CreateFunctionStmt** stmtArray = (CreateFunctionStmt**)palloc0(list_length(pkg->proc_list) * + sizeof(CreateFunctionStmt*)); + int* recordArr = (int*)palloc0(list_length(pkg->proc_list) * sizeof(int)); int i = 0; int funcStmtLength = 0; foreach(cell, pkg->proc_list) { @@ -130,9 +319,9 @@ void processPackageProcList(PLpgSQL_package* pkg) * process the situation that only 1 declartion or only 1 definition. */ if (funcStmtLength <= 1) { - if (stmtArray[0]->isFunctionDeclare && pkg->is_bodydefined) { - processError(stmtArray[0]->funcname); - } else if (stmtArray[0]->isFunctionDeclare && !pkg->is_bodydefined) { + if (stmtArray[0]->isFunctionDeclare && pkg->is_bodycompiled) { + processError(stmtArray[0]); + } else if (stmtArray[0]->isFunctionDeclare && !pkg->is_bodycompiled) { return; } } @@ -145,8 +334,6 @@ void processPackageProcList(PLpgSQL_package* pkg) CreateFunctionStmt* funcStmt2 = stmtArray[k]; List* funcnameList1 = funcStmt1->funcname; List* funcnameList2 = funcStmt2->funcname; - List* argList1 = funcStmt1->parameters; - List* argList2 = funcStmt2->parameters; funcname1 = getFuncName(funcnameList1); funcname2 = getFuncName(funcnameList2); @@ -154,26 +341,29 @@ void processPackageProcList(PLpgSQL_package* pkg) continue; } - if (!isSameArgList(argList1, argList2)) { + if (!isSameArgList(funcStmt1, funcStmt2)) { continue; } + if (!isSameParameterList(funcStmt1->options, funcStmt2->options)) { + processError(funcStmt1); + } if (funcStmt1->isProcedure != funcStmt2->isProcedure) { - processError(funcnameList1); + processError(funcStmt1); } if (funcStmt1->isFunctionDeclare && funcStmt2->isFunctionDeclare) { - processError(funcnameList1); + processError(funcStmt1); } if (!(funcStmt1->isFunctionDeclare || funcStmt2->isFunctionDeclare)) { - processError(funcnameList1); + processError(funcStmt1); } if (recordArr[j] == 0) { - if (recordArr[k]!=0) { - processError(funcnameList1); + if (recordArr[k] != 0) { + processError(stmtArray[j]); } recordArr[j] = k; recordArr[k] = j; } else if(recordArr[recordArr[j]] != j) { - processError(funcnameList1); + processError(stmtArray[j]); } if (!funcStmt1->isPrivate || !funcStmt2->isPrivate) { funcStmt1->isPrivate = false; @@ -185,15 +375,24 @@ void processPackageProcList(PLpgSQL_package* pkg) i = 0; for(i = 0; i < funcStmtLength; i++) { - if (stmtArray[i]->isFunctionDeclare && pkg->is_bodydefined) { + if (stmtArray[i]->isFunctionDeclare && pkg->is_bodycompiled) { if (recordArr[i] == 0) { + errno_t rc; + char message[MAXSTRLEN]; + rc = sprintf_s(message, MAXSTRLEN, + "Function definition not found: %s", + NameListToString(stmtArray[i]->funcname)); + securec_check_ss_c(rc, "\0", "\0"); + InsertErrorMessage(message, stmtArray[i]->startLineNumber); ereport(ERROR, (errcode(ERRCODE_UNDEFINED_FUNCTION), errmodule(MOD_PLSQL), - errmsg("not found function definition: %s", NameListToString(stmtArray[i]->funcname)))); + errmsg("Function definition not found: %s", NameListToString(stmtArray[i]->funcname)))); } } } + pfree(recordArr); + pfree(stmtArray); } @@ -235,23 +434,16 @@ void _PG_init(void) pg_bindtextdomain(TEXTDOMAIN); - DefineCustomEnumVariable("plpgsql.variable_conflict", - gettext_noop("Sets handling of conflicts between PL/pgSQL variable names and table column names."), - NULL, - &u_sess->plsql_cxt.plpgsql_variable_conflict, - PLPGSQL_RESOLVE_ERROR, - variable_conflict_options, - PGC_SUSET, - 0, - NULL, - NULL, - NULL); - EmitWarningsOnPlaceholders("plpgsql"); RegisterXactCallback(plpgsql_xact_cb, NULL); RegisterSubXactCallback(plpgsql_subxact_cb, NULL); /* Set up a rendezvous point with optional instrumentation plugin */ u_sess->plsql_cxt.plugin_ptr = (PLpgSQL_plugin**)find_rendezvous_variable("PLpgSQL_plugin"); + + u_sess->SPI_cxt.cur_tableof_index = (TableOfIndexPass*)MemoryContextAllocZero( + SESS_GET_MEM_CXT_GROUP(MEMORY_CONTEXT_OPTIMIZER), sizeof(TableOfIndexPass)); + u_sess->SPI_cxt.cur_tableof_index->tableOfIndexType = InvalidOid; + u_sess->SPI_cxt.cur_tableof_index->tableOfIndex = NULL; } PG_CATCH(); { @@ -263,6 +455,9 @@ void _PG_init(void) u_sess->SPI_cxt.SPICacheTable = NULL; UnregisterXactCallback(plpgsql_xact_cb, NULL); UnregisterSubXactCallback(plpgsql_subxact_cb, NULL); + pfree_ext(u_sess->SPI_cxt.cur_tableof_index); + u_sess->SPI_cxt.cur_tableof_index->tableOfIndexType = InvalidOid; + u_sess->SPI_cxt.cur_tableof_index->tableOfIndex = NULL; PG_RE_THROW(); } PG_END_TRY(); @@ -300,43 +495,20 @@ static void validate_search_path(PLpgSQL_function* func) */ PG_FUNCTION_INFO_V1(plpgsql_call_handler); -Datum plpgsql_call_handler(PG_FUNCTION_ARGS) +static Oid get_package_id(Oid func_oid) { - bool nonatomic; - PLpgSQL_function* func = NULL; - PLpgSQL_execstate* save_cur_estate = NULL; - DebugInfo* save_debug_info = NULL; - Datum retval; - int rc; - Oid func_oid = fcinfo->flinfo->fn_oid; - Oid* saved_Pseudo_CurrentUserId = NULL; - Oid old_user = InvalidOid; - int save_sec_context = 0; - Oid cast_owner = InvalidOid; - bool has_switch = false; - // PGSTAT_INIT_PLSQL_TIME_RECORD - int64 startTime = 0; - bool needRecord = false; - bool saved_current_stp_with_exception = false; HeapTuple proc_tup = NULL; Oid package_oid = InvalidOid; - PLpgSQL_package* pkg = NULL; Form_pg_proc proc_struct = NULL; Datum package_oid_datum; bool isnull = false; - Datum pkgbody_src; HeapTuple pkgtup; - /* - * if the atomic stored in fcinfo is false means allow - * commit/rollback within stored procedure. - * set the nonatomic and will be reused within function. - */ - nonatomic = fcinfo->context && IsA(fcinfo->context, FunctionScanState) && - !castNode(FunctionScanState, fcinfo->context)->atomic; + Datum pkgbody_src; + /* * if the function in a package, then compile the package,and find the compiled function in * pkg->proc_compiled_list - */ + */ proc_tup = SearchSysCache1(PROCOID, ObjectIdGetDatum(func_oid)); if (!HeapTupleIsValid(proc_tup)) { ereport(ERROR, (errmodule(MOD_PLSQL), errcode(ERRCODE_CACHE_LOOKUP_FAILED), @@ -360,8 +532,153 @@ Datum plpgsql_call_handler(PG_FUNCTION_ARGS) ReleaseSysCache(pkgtup); } ReleaseSysCache(proc_tup); + + return package_oid; +} + +static bool CheckSelectElementParse(SelectStmt* stmt); + +static bool CheckSelectTargetListParse(List * TargetList) +{ + bool result = true; + + if (TargetList == NULL) { + return false; + } + + ListCell *lcell = NULL; + + foreach(lcell, TargetList) { + Node *node = (Node *)lfirst(lcell); + switch (nodeTag(node)) { + case T_ResTarget: { + ResTarget *res_target = (ResTarget *)node; + if (nodeTag(res_target->val) == T_SubLink) { + SubLink* sublink = (SubLink*) res_target->val; + SelectStmt* stmt = (SelectStmt*)sublink->subselect; + result = CheckSelectElementParse(stmt); + } else { + result = false; + } + } + break; + case T_RangeFunction: { + result = false; + } + break; + + default: + result = true; + break; + } + } + return result; +} + + +/* if has select into clause, return true. */ +static bool CheckSelectElementParse(SelectStmt* stmt) +{ + if (stmt != NULL) { + /* don't support select into... */ + if (stmt->intoClause || + stmt->startWithClause || + stmt->whereClause || + stmt->groupClause || + stmt->havingClause || + stmt->windowClause || + stmt->withClause || + stmt->sortClause || + stmt->limitOffset) { + return true; + } else { + return CheckSelectElementParse(stmt->larg) || + CheckSelectElementParse(stmt->rarg) || + CheckSelectTargetListParse(stmt->targetList) || + CheckSelectTargetListParse(stmt->fromClause); + } + } + return false; +} + +extern bool CheckElementParsetreeTag(Node* parsetree) +{ + bool result = true; + + if (parsetree == NULL) { + return false; + } + + switch (nodeTag(parsetree)) { + /* raw plannable queries */ + case T_InsertStmt: + case T_DeleteStmt: + case T_UpdateStmt: + case T_MergeStmt: + result = true; + break; + case T_SelectStmt: + if (CheckSelectElementParse((SelectStmt*)parsetree)) { + result = true; + } else { + result = false; + } + break; + case T_DoStmt: { + result = false; + } + break; + default: + result = true; + break; + } + + return result; +} + +Datum plpgsql_call_handler(PG_FUNCTION_ARGS) +{ + bool nonatomic; + PLpgSQL_function* func = NULL; + PLpgSQL_execstate* save_cur_estate = NULL; + DebugInfo* save_debug_info = NULL; + Datum retval; + int rc; + Oid func_oid = fcinfo->flinfo->fn_oid; + Oid* saved_Pseudo_CurrentUserId = NULL; + Oid old_user = InvalidOid; + int save_sec_context = 0; + Oid cast_owner = InvalidOid; + bool has_switch = false; + // PGSTAT_INIT_PLSQL_TIME_RECORD + int64 startTime = 0; + bool needRecord = false; + PLpgSQL_package* pkg = NULL; + MemoryContext oldContext = CurrentMemoryContext; + FormatCallStack* plcallstack = NULL; + int pkgDatumsNumber = 0; + /* + * if the atomic stored in fcinfo is false means allow + * commit/rollback within stored procedure. + * set the nonatomic and will be reused within function. + */ + nonatomic = fcinfo->context && IsA(fcinfo->context, FunctionScanState) && + !castNode(FunctionScanState, fcinfo->context)->atomic; + + /* get cast owner and make sure current user is cast owner when execute cast-func */ + GetUserIdAndSecContext(&old_user, &save_sec_context); + cast_owner = u_sess->exec_cxt.cast_owner; + if (InvalidCastOwnerId == cast_owner || !OidIsValid(cast_owner)) { + ereport(LOG, (errmsg("old system table pg_cast does not have castowner column, use old default permission"))); + } else { + SetUserIdAndSecContext(cast_owner, save_sec_context | SECURITY_LOCAL_USERID_CHANGE); + has_switch = true; + } + + Oid package_oid = get_package_id(func_oid); if (OidIsValid(package_oid)) { - if (u_sess->plsql_cxt.plpgsql_curr_compile_package == NULL) { + if (u_sess->plsql_cxt.curr_compile_context == NULL || + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package == NULL) { pkg = PackageInstantiation(package_oid); } } @@ -374,17 +691,6 @@ Datum plpgsql_call_handler(PG_FUNCTION_ARGS) } } } - - /* get cast owner and make sure current user is cast owner when execute cast-func */ - GetUserIdAndSecContext(&old_user, &save_sec_context); - cast_owner = u_sess->exec_cxt.cast_owner; - if (InvalidCastOwnerId == cast_owner || !OidIsValid(cast_owner)) { - ereport(LOG, (errmsg("old system table pg_cast does not have castowner column, use old default permission"))); - } else { - SetUserIdAndSecContext(cast_owner, save_sec_context | SECURITY_LOCAL_USERID_CHANGE); - has_switch = true; - } - int fun_arg = fcinfo->nargs; #ifdef ENABLE_MULTIPLE_NODES bool outer_is_stream = false; @@ -405,166 +711,233 @@ Datum plpgsql_call_handler(PG_FUNCTION_ARGS) /* * Connect to SPI manager */ - if ((rc = SPI_connect_ext(DestSPI, NULL, NULL, nonatomic ? SPI_OPT_NONATOMIC : 0, func_oid)) != SPI_OK_CONNECT) { + SPI_STACK_LOG("connect", NULL, NULL); + rc = SPI_connect_ext(DestSPI, NULL, NULL, nonatomic ? SPI_OPT_NONATOMIC : 0, func_oid); + if (rc != SPI_OK_CONNECT) { ereport(ERROR, (errmodule(MOD_PLSQL), errcode(ERRCODE_UNDEFINED_OBJECT), errmsg("SPI_connect failed: %s when execute PLSQL function.", SPI_result_code_string(rc)))); } - PGSTAT_START_PLSQL_TIME_RECORD(); - /* - * save running package value - */ - Oid old_value = saveCallFromPkgOid(package_oid); - saved_current_stp_with_exception = plpgsql_get_current_value_stp_with_exception(); - /* Find or compile the function */ - if (func == NULL) { - func = plpgsql_compile(fcinfo, false); - } - - restoreCallFromPkgOid(old_value); - - PGSTAT_END_PLSQL_TIME_RECORD(PL_COMPILATION_TIME); - - int cursor_step = 0; - /* copy cursor option on in-parameter to function body's cursor */ - for (int i = 0; i < fun_arg; i++) { - int dno = i + cursor_step; - if (fcinfo->argTypes[i] == REFCURSOROID) { - Cursor_Data* arg_cursor = &fcinfo->refcursor_data.argCursor[i]; - ExecCopyDataToDatum(func->datums, dno, arg_cursor); - cursor_step += 4; - } - } - - /* Must save and restore prior value of cur_estate and debug_info */ - save_cur_estate = func->cur_estate; - save_debug_info = func->debug; - - // set the procedure's search_path as the current search_path - validate_search_path(func); - PushOverrideSearchPath(func->fn_searchpath, true); - - saved_Pseudo_CurrentUserId = u_sess->misc_cxt.Pseudo_CurrentUserId; - u_sess->misc_cxt.Pseudo_CurrentUserId = &func->fn_owner; - - /* Mark the function as busy, so it can't be deleted from under us */ - func->use_count++; - - PGSTAT_START_PLSQL_TIME_RECORD(); - + int connect = SPI_connectid(); + Oid firstLevelPkgOid = InvalidOid; PG_TRY(); { + PGSTAT_START_PLSQL_TIME_RECORD(); /* - * Determine if called as function or trigger and call appropriate - * subhandler + * save running package value */ - Oid old_value = saveCallFromPkgOid(func->pkg_oid); - if (CALLED_AS_TRIGGER(fcinfo)) { - /* Trigger is not supported for package */ - if (OidIsValid(package_oid)) { - ereport(ERROR, - (errmodule(MOD_PLSQL), errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("Trigger call function in package is not supported."), - errdetail("trigger not support for package"), - errcause("System not supported."), - erraction("Do not use package with trigger."))); - } - retval = PointerGetDatum(plpgsql_exec_trigger(func, (TriggerData*)fcinfo->context)); + firstLevelPkgOid = saveCallFromPkgOid(package_oid); + bool saved_current_stp_with_exception = plpgsql_get_current_value_stp_with_exception(); + /* Find or compile the function */ + if (func == NULL) { + func = plpgsql_compile(fcinfo, false); } - else { - if (func->is_private && !u_sess->is_autonomous_session) { - if (OidIsValid(old_value)) { - if (func->pkg_oid != old_value) { + + restoreCallFromPkgOid(firstLevelPkgOid); + + PGSTAT_END_PLSQL_TIME_RECORD(PL_COMPILATION_TIME); + + int cursor_step = 0; + if (pkg != NULL) { + pkgDatumsNumber = pkg->ndatums; + } + /* copy cursor option on in-parameter to function body's cursor */ + for (int i = 0; i < fun_arg; i++) { + int dno = i + cursor_step + pkgDatumsNumber; + if (fcinfo->argTypes[i] == REFCURSOROID && fcinfo->refcursor_data.argCursor != NULL && + func->datums[dno]->dtype == PLPGSQL_DTYPE_VAR) { + Cursor_Data* arg_cursor = &fcinfo->refcursor_data.argCursor[i]; + ExecCopyDataToDatum(func->datums, dno, arg_cursor); + cursor_step += 4; + } + } + + /* Must save and restore prior value of cur_estate and debug_info */ + save_cur_estate = func->cur_estate; + save_debug_info = func->debug; + + // set the procedure's search_path as the current search_path + validate_search_path(func); + PushOverrideSearchPath(func->fn_searchpath, true); + + saved_Pseudo_CurrentUserId = u_sess->misc_cxt.Pseudo_CurrentUserId; + u_sess->misc_cxt.Pseudo_CurrentUserId = &func->fn_owner; + + /* Mark the function as busy, so it can't be deleted from under us */ + func->use_count++; + + PGSTAT_START_PLSQL_TIME_RECORD(); + Oid secondLevelPkgOid = saveCallFromPkgOid(func->pkg_oid); + /* save flag for nest plpgsql compile */ + PLpgSQL_compile_context* save_compile_context = u_sess->plsql_cxt.curr_compile_context; + int save_compile_list_length = list_length(u_sess->plsql_cxt.compile_context_list); + int save_compile_status = u_sess->plsql_cxt.compile_status; + bool isExecFunc = false; + PG_TRY(); + { + /* + * Determine if called as function or trigger and call appropriate + * subhandler + */ + if (CALLED_AS_TRIGGER(fcinfo)) { + retval = PointerGetDatum(plpgsql_exec_trigger(func, (TriggerData*)fcinfo->context)); + } else { + if (func->is_private && !u_sess->is_autonomous_session) { + if (OidIsValid(secondLevelPkgOid)) { + if (func->pkg_oid != secondLevelPkgOid) { + ereport(ERROR, (errcode(ERRCODE_NO_FUNCTION_PROVIDED), + (errmsg("not support call package private function or procedure")))); + } + } else { ereport(ERROR, (errcode(ERRCODE_NO_FUNCTION_PROVIDED), (errmsg("not support call package private function or procedure")))); } - } else { - ereport(ERROR, (errcode(ERRCODE_NO_FUNCTION_PROVIDED), - (errmsg("not support call package private function or procedure")))); } - } - if (func->action->isAutonomous && u_sess->plsql_cxt.is_package_instantiation) { - ereport(ERROR, (errmodule(MOD_PLSQL), errcode(ERRCODE_INVALID_PACKAGE_DEFINITION), - errmsg("package instantiation can not have autonomous function"), - errdetail("this package have autonmous function"), - errcause("package have autonmous function"), - erraction("redefine package"))); - } + if (func->action->isAutonomous && u_sess->plsql_cxt.is_package_instantiation) { + ereport(ERROR, (errmodule(MOD_PLSQL), errcode(ERRCODE_INVALID_PACKAGE_DEFINITION), + errmsg("package instantiation can not have autonomous function"), + errdetail("this package have autonmous function"), + errcause("package have autonmous function"), + erraction("redefine package"))); + } - if (IsAutonomousTransaction(func->action->isAutonomous)) { - retval = plpgsql_exec_autonm_function(func, fcinfo, NULL); - } else { - retval = plpgsql_exec_function(func, fcinfo, false); + isExecFunc = true; + if (IsAutonomousTransaction(func->action->isAutonomous)) { + retval = plpgsql_exec_autonm_function(func, fcinfo, NULL); + } else { + retval = plpgsql_exec_function(func, fcinfo, false); + } +#ifndef ENABLE_MULTIPLE_NODES + /* for restore parent session and automn session package var values */ + processAutonmSessionPkgs(func); +#endif + /* Disconnecting and releasing resources */ + DestoryAutonomousSession(false); } - /* Disconnecting and releasing resources */ - DestoryAutonomousSession(false); + restoreCallFromPkgOid(secondLevelPkgOid); } - restoreCallFromPkgOid(old_value); + PG_CATCH(); + { +#ifndef ENABLE_MULTIPLE_NODES + /* for restore parent session and automn session package var values */ + if (isExecFunc) { + processAutonmSessionPkgs(func); + } +#endif + plcallstack = t_thrd.log_cxt.call_stack; + if (!IsAutonomousTransaction(func->action->isAutonomous) && plcallstack != NULL) { + t_thrd.log_cxt.call_stack = plcallstack->prev; + } + /* Decrement use-count, restore cur_estate, and propagate error */ + func->use_count--; + func->cur_estate = save_cur_estate; +#ifndef ENABLE_MULTIPLE_NODES + /* debug finished, close debug resource */ + if (func->debug) { + /* if debuger is waiting for end msg, send end */ + server_send_end_msg(func->debug); + /* pass opt to upper debug function */ + server_pass_upper_debug_opt(func->debug); + clean_up_debug_server(func->debug, false, true); + } + if (save_debug_info != NULL) + func->debug = save_debug_info; +#endif /* ENABLE_MULTIPLE_NODES */ + plpgsql_restore_current_value_stp_with_exception(saved_current_stp_with_exception); + // resume the search_path when there is an error + PopOverrideSearchPath(); + + restoreCallFromPkgOid(secondLevelPkgOid); + ereport(DEBUG3, (errmodule(MOD_NEST_COMPILE), errcode(ERRCODE_LOG), + errmsg("%s clear curr_compile_context because of error.", __func__))); + /* reset nest plpgsql compile */ + u_sess->plsql_cxt.curr_compile_context = save_compile_context; + u_sess->plsql_cxt.compile_status = save_compile_status; + clearCompileContextList(save_compile_list_length); + + u_sess->misc_cxt.Pseudo_CurrentUserId = saved_Pseudo_CurrentUserId; + /* AutonomousSession Disconnecting and releasing resources */ + DestoryAutonomousSession(true); + + PG_RE_THROW(); + } + PG_END_TRY(); + + PGSTAT_END_PLSQL_TIME_RECORD(PL_EXECUTION_TIME); +#ifndef ENABLE_MULTIPLE_NODES + /* debug finished, close debug resource */ + if (func->debug) { + /* if debuger is waiting for end msg, send end */ + server_send_end_msg(func->debug); + /* pass opt to upper debug function */ + server_pass_upper_debug_opt(func->debug); + clean_up_debug_server(func->debug, false, true); + } +#endif + cursor_step = 0; + /* cursor as an in parameter, its option shoule be return to the caller */ + if (pkg != NULL) { + pkgDatumsNumber = pkg->ndatums; + } + for (int i = 0; i < fun_arg; i++) { + int dno = i + cursor_step + pkgDatumsNumber; + if (fcinfo->argTypes[i] == REFCURSOROID && fcinfo->refcursor_data.argCursor != NULL + && func->datums[dno]->dtype == PLPGSQL_DTYPE_VAR) { + Cursor_Data* arg_cursor = &fcinfo->refcursor_data.argCursor[i]; + ExecCopyDataFromDatum(func->datums, dno, arg_cursor); + cursor_step += 4; + } + } + + /* set cursor optin to null which opened in this procedure */ + ResetPortalCursor(GetCurrentSubTransactionId(), func->fn_oid, func->use_count); + + func->use_count--; + + func->cur_estate = save_cur_estate; + func->debug = save_debug_info; + + // resume the search_path when the procedure has executed + PopOverrideSearchPath(); + + if (AUDIT_EXEC_ENABLED) { + auditExecPLpgSQLFunction(func, AUDIT_OK); + } + + u_sess->misc_cxt.Pseudo_CurrentUserId = saved_Pseudo_CurrentUserId; } PG_CATCH(); { - /* Decrement use-count, restore cur_estate, and propagate error */ - func->use_count--; - func->cur_estate = save_cur_estate; - if (save_debug_info != NULL) - func->debug = save_debug_info; - plpgsql_restore_current_value_stp_with_exception(saved_current_stp_with_exception); - // resume the search_path when there is an error - PopOverrideSearchPath(); + /* clean stp save pointer if the outermost function is end. */ + if (u_sess->SPI_cxt._connected == 0) { + t_thrd.utils_cxt.STPSavedResourceOwner = NULL; + } - u_sess->plsql_cxt.running_pkg_oid = InvalidOid; - u_sess->plsql_cxt.plpgsql_curr_compile = NULL; - u_sess->plsql_cxt.plpgsql_curr_compile_package = NULL; - u_sess->misc_cxt.Pseudo_CurrentUserId = saved_Pseudo_CurrentUserId; - /* AutonomousSession Disconnecting and releasing resources */ - DestoryAutonomousSession(true); + /* ErrorData could be allocted in SPI's MemoryContext, copy it. */ + oldContext = MemoryContextSwitchTo(oldContext); + ErrorData *edata = CopyErrorData(); + (void)MemoryContextSwitchTo(oldContext); + /* + * Reset error stack to empty since plpgsql_call_handler's recursive depth + * is more bigger than error stack's. + */ + FlushErrorState(); - PG_RE_THROW(); + /* destory all the SPI connect created in this PL function. */ + SPI_disconnect(connect); + + /* re-throw the original error messages */ + ReThrowError(edata); } PG_END_TRY(); - - PGSTAT_END_PLSQL_TIME_RECORD(PL_EXECUTION_TIME); -#ifndef ENABLE_MULTIPLE_NODES - /* debug finished, close debug resource */ - if (func->debug) { - /* if debuger is waiting for end msg, send end */ - server_send_end_msg(func->debug); - /* pass opt to upper debug function */ - server_pass_upper_debug_opt(func->debug); - clean_up_debug_server(func->debug, false, true); + /* clean stp save pointer if the outermost function is end. */ + if (u_sess->SPI_cxt._connected == 0) { + t_thrd.utils_cxt.STPSavedResourceOwner = NULL; } -#endif - cursor_step = 0; - /* cursor as an in parameter, its option shoule be return to the caller */ - for (int i = 0; i < fun_arg; i++) { - int dno = i + cursor_step; - if (fcinfo->argTypes[i] == REFCURSOROID && fcinfo->refcursor_data.argCursor != NULL) { - Cursor_Data* arg_cursor = &fcinfo->refcursor_data.argCursor[i]; - ExecCopyDataFromDatum(func->datums, dno, arg_cursor); - cursor_step += 4; - } - } - - /* set cursor optin to null which opened in this procedure */ - ResetPortalCursor(GetCurrentSubTransactionId(), func->fn_oid, func->use_count); - - func->use_count--; - - func->cur_estate = save_cur_estate; - func->debug = save_debug_info; - - // resume the search_path when the procedure has executed - PopOverrideSearchPath(); - - if (AUDIT_EXEC_ENABLED) { - auditExecPLpgSQLFunction(func, AUDIT_OK); - } - - u_sess->misc_cxt.Pseudo_CurrentUserId = saved_Pseudo_CurrentUserId; - /* * Disconnect from SPI manager */ + SPI_STACK_LOG("finish", NULL, NULL); if ((rc = SPI_finish()) != SPI_OK_FINISH) { ereport(ERROR, (errmodule(MOD_PLSQL), errcode(ERRCODE_SPI_CONNECTION_FAILURE), errmsg("SPI_finish failed: %s when execute PLSQL function.", SPI_result_code_string(rc)))); @@ -617,20 +990,31 @@ Datum plpgsql_inline_handler(PG_FUNCTION_ARGS) /* * Connect to SPI manager */ - if ((rc = SPI_connect_ext(DestSPI, NULL, NULL, codeblock->atomic ? 0 : SPI_OPT_NONATOMIC)) != SPI_OK_CONNECT) { + SPI_STACK_LOG("connect", NULL, NULL); + rc = SPI_connect_ext(DestSPI, NULL, NULL, codeblock->atomic ? 0 : SPI_OPT_NONATOMIC); + if (rc != SPI_OK_CONNECT) { ereport(ERROR, (errmodule(MOD_PLSQL), errcode(ERRCODE_SPI_CONNECTION_FAILURE), errmsg("SPI_connect failed: %s when execute anonymous block.", SPI_result_code_string(rc)))); } - PGSTAT_START_PLSQL_TIME_RECORD(); /* Compile the anonymous code block */ - func = plpgsql_compile_inline(codeblock->source_text); - if (u_sess->plsql_cxt.plpgsql_curr_compile_package != NULL) { - func->pkg_oid = u_sess->plsql_cxt.plpgsql_curr_compile_package->pkg_oid; + PLpgSQL_compile_context* save_compile_context = u_sess->plsql_cxt.curr_compile_context; + PG_TRY(); + { + func = plpgsql_compile_inline(codeblock->source_text); + if (u_sess->plsql_cxt.curr_compile_context != NULL && + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package != NULL) { + func->pkg_oid = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->pkg_oid; + } } - + PG_CATCH(); + { + popToOldCompileContext(save_compile_context); + PG_RE_THROW(); + } + PG_END_TRY(); PGSTAT_END_PLSQL_TIME_RECORD(PL_COMPILATION_TIME); /* Mark the function as busy, just pro forma */ @@ -651,7 +1035,10 @@ Datum plpgsql_inline_handler(PG_FUNCTION_ARGS) flinfo.fn_mcxt = CurrentMemoryContext; PGSTAT_START_PLSQL_TIME_RECORD(); - + /* save flag for nest plpgsql compile */ + save_compile_context = u_sess->plsql_cxt.curr_compile_context; + int save_compile_list_length = list_length(u_sess->plsql_cxt.compile_context_list); + int save_compile_status = u_sess->plsql_cxt.compile_status; PG_TRY(); { if (IsAutonomousTransaction(func->action->isAutonomous)) { @@ -661,11 +1048,30 @@ Datum plpgsql_inline_handler(PG_FUNCTION_ARGS) retval = plpgsql_exec_function(func, &fake_fcinfo, false); restoreCallFromPkgOid(old_value); } +#ifndef ENABLE_MULTIPLE_NODES + /* for restore parent session and automn session package var values */ + processAutonmSessionPkgs(func); +#endif } PG_CATCH(); { +#ifndef ENABLE_MULTIPLE_NODES + /* for restore parent session and automn session package var values */ + processAutonmSessionPkgs(func); +#endif + FormatCallStack* plcallstack = t_thrd.log_cxt.call_stack; + if (!IsAutonomousTransaction(func->action->isAutonomous) && plcallstack != NULL) { + t_thrd.log_cxt.call_stack = plcallstack->prev; + } + ereport(DEBUG3, (errmodule(MOD_NEST_COMPILE), errcode(ERRCODE_LOG), + errmsg("%s clear curr_compile_context because of error.", __func__))); + /* reset nest plpgsql compile */ + u_sess->plsql_cxt.curr_compile_context = save_compile_context; + u_sess->plsql_cxt.compile_status = save_compile_status; + clearCompileContextList(save_compile_list_length); /* AutonomousSession Disconnecting and releasing resources */ DestoryAutonomousSession(true); + PG_RE_THROW(); } PG_END_TRY(); @@ -687,8 +1093,9 @@ Datum plpgsql_inline_handler(PG_FUNCTION_ARGS) AssertEreport(func->use_count == 0, MOD_PLSQL, "Function should now have no remaining use-counts"); /* ... so we can free subsidiary storage */ - if (u_sess->plsql_cxt.plpgsql_curr_compile_package != NULL) { - func->pkg_oid = u_sess->plsql_cxt.plpgsql_curr_compile_package->pkg_oid; + if (u_sess->plsql_cxt.curr_compile_context != NULL && + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package != NULL) { + func->pkg_oid = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->pkg_oid; plpgsql_free_function_memory(func); } else { plpgsql_free_function_memory(func); @@ -697,7 +1104,8 @@ Datum plpgsql_inline_handler(PG_FUNCTION_ARGS) /* * Disconnect from SPI manager */ - if ((rc = SPI_finish()) != SPI_OK_FINISH) { + SPI_STACK_LOG("finish", NULL, NULL); + if (((rc = SPI_finish()) != SPI_OK_FINISH)) { ereport(ERROR, (errmodule(MOD_PLSQL), errcode(ERRCODE_SPI_CONNECTION_FAILURE), errmsg("SPI_finish failed: %s when execute anonymous block.", SPI_result_code_string(rc)))); @@ -750,7 +1158,6 @@ Datum plpgsql_validator(PG_FUNCTION_ARGS) if (!CheckFunctionValidatorAccess(fcinfo->flinfo->fn_oid, funcoid)) { PG_RETURN_VOID(); } - /* Get the new function's pg_proc entry */ tuple = SearchSysCache1(PROCOID, ObjectIdGetDatum(funcoid)); @@ -762,9 +1169,7 @@ Datum plpgsql_validator(PG_FUNCTION_ARGS) } proc = (Form_pg_proc)GETSTRUCT(tuple); - functyptype = get_typtype(proc->prorettype); - /* Disallow pseudotype result */ /* except for TRIGGER, RECORD, VOID, or polymorphic */ if (functyptype == TYPTYPE_PSEUDO) { @@ -797,16 +1202,7 @@ Datum plpgsql_validator(PG_FUNCTION_ARGS) FunctionCallInfoData fake_fcinfo; FmgrInfo flinfo; TriggerData trigdata; - int rc; PLpgSQL_function* func = NULL; - /* - * Connect to SPI manager (is this needed for compilation?) - */ - if ((rc = SPI_connect()) != SPI_OK_CONNECT) { - ereport(ERROR, (errmodule(MOD_PLSQL), - errcode(ERRCODE_SPI_CONNECTION_FAILURE), - errmsg("SPI_connect failed: %s when validate function.", SPI_result_code_string(rc)))); - } /* * Set up a fake fcinfo with just enough info to satisfy * plpgsql_compile(). @@ -826,33 +1222,63 @@ Datum plpgsql_validator(PG_FUNCTION_ARGS) trigdata.type = T_TriggerData; fake_fcinfo.context = (Node*)&trigdata; } - + /* save flag for nest plpgsql compile */ + PLpgSQL_compile_context* save_compile_context = u_sess->plsql_cxt.curr_compile_context; + int save_compile_list_length = list_length(u_sess->plsql_cxt.compile_context_list); + int save_compile_status = u_sess->plsql_cxt.compile_status; /* Test-compile the function */ PG_TRY(); { + u_sess->parser_cxt.isCreateFuncOrProc = true; func = plpgsql_compile(&fake_fcinfo, true); + u_sess->parser_cxt.isCreateFuncOrProc = false; } PG_CATCH(); { - u_sess->plsql_cxt.plpgsql_curr_compile = NULL; - u_sess->plsql_cxt.plpgsql_curr_compile_package = NULL; +#ifndef ENABLE_MULTIPLE_NODES + if (u_sess->attr.attr_common.plsql_show_all_error && u_sess->plsql_cxt.isCreateFunction) { + if (!IsInitdb) { + ProcInsertGsSource(funcoid, false); + int rc = CompileWhich(); + if (rc == PLPGSQL_COMPILE_PACKAGE || rc == PLPGSQL_COMPILE_PACKAGE_PROC) { + InsertError(u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->pkg_oid); + } + } + } +#endif + u_sess->plsql_cxt.errorList = NULL; + u_sess->plsql_cxt.procedure_first_line = 0; + u_sess->plsql_cxt.procedure_start_line = 0; + u_sess->plsql_cxt.package_as_line = 0; + u_sess->plsql_cxt.package_first_line = 0; + u_sess->plsql_cxt.isCreateFunction = false; + ereport(DEBUG3, (errmodule(MOD_NEST_COMPILE), errcode(ERRCODE_LOG), + errmsg("%s clear curr_compile_context because of error.", __func__))); + /* reset nest plpgsql compile */ + u_sess->plsql_cxt.curr_compile_context = save_compile_context; + u_sess->plsql_cxt.compile_status = save_compile_status; + clearCompileContextList(save_compile_list_length); + u_sess->parser_cxt.isCreateFuncOrProc = false; PG_RE_THROW(); } PG_END_TRY(); /* Skip validation on Initdb */ - /* - * Disconnect from SPI manager - */ - if ((rc = SPI_finish()) != SPI_OK_FINISH) { - ereport(ERROR, (errmodule(MOD_PLSQL), - errcode(ERRCODE_SPI_CONNECTION_FAILURE), - errmsg("SPI_connect failed: %s when validate function.", SPI_result_code_string(rc)))); +#ifndef ENABLE_MULTIPLE_NODES + if (!IsInitdb && u_sess->plsql_cxt.isCreateFunction) { + ProcInsertGsSource(funcoid, true); } - if (!IsInitdb && u_sess->attr.attr_common.enable_full_encryption && - u_sess->plsql_cxt.plpgsql_curr_compile_package == NULL) { -#ifdef ENABLE_MULTIPLE_NODES - if (IS_MAIN_COORDINATOR) { #endif + + bool isNotComipilePkg = u_sess->plsql_cxt.curr_compile_context == NULL || + (u_sess->plsql_cxt.curr_compile_context != NULL && + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package == NULL); + + if (!IsInitdb && ( +#ifdef ENABLE_MULTIPLE_NODES + !IS_MAIN_COORDINATOR || +#endif + u_sess->attr.attr_common.enable_full_encryption) && + isNotComipilePkg) { /* * set ClientAuthInProgress to prevent warnings from the parser * to be sent to client @@ -861,13 +1287,11 @@ Datum plpgsql_validator(PG_FUNCTION_ARGS) u_sess->ClientAuthInProgress = true; pl_validate_function_sql(func, replace); u_sess->ClientAuthInProgress = saved_client_auth; -#ifdef ENABLE_MULTIPLE_NODES - } -#endif } } #ifndef ENABLE_MULTIPLE_NODES + u_sess->plsql_cxt.isCreateFunction = false; u_sess->opt_cxt.query_dop = outerDop; #endif @@ -884,26 +1308,60 @@ Datum plpgsql_validator(PG_FUNCTION_ARGS) PLpgSQL_package* plpgsql_package_validator(Oid packageOid, bool isSpec, bool isCreate) { PLpgSQL_package* pkg = NULL; + Oid* savedPseudoCurrentUserId = u_sess->misc_cxt.Pseudo_CurrentUserId; _PG_init(); #ifdef ENABLE_MULTIPLE_NODES ereport(ERROR, (errcode(ERRCODE_INVALID_PACKAGE_DEFINITION), errmsg("not support create package in distributed database"))); #endif + /* save flag for nest plpgsql compile */ + PLpgSQL_compile_context* save_compile_context = u_sess->plsql_cxt.curr_compile_context; + int save_compile_list_length = list_length(u_sess->plsql_cxt.compile_context_list); + int save_compile_status = u_sess->plsql_cxt.compile_status; /* Postpone body checks if !u_sess->attr.attr_sql.check_function_bodies */ PG_TRY(); { pkg = plpgsql_pkg_compile(packageOid, true, isSpec, isCreate); - u_sess->plsql_cxt.plpgsql_curr_compile_package = NULL; + u_sess->misc_cxt.Pseudo_CurrentUserId = savedPseudoCurrentUserId; } PG_CATCH(); { - u_sess->plsql_cxt.plpgsql_curr_compile = NULL; - u_sess->plsql_cxt.plpgsql_curr_compile_package = NULL; +#ifndef ENABLE_MULTIPLE_NODES + + if (u_sess->attr.attr_common.plsql_show_all_error && isCreate) { + SPI_STACK_LOG("finish", NULL, NULL); + SPI_finish(); + if (!IsInitdb) { + PkgInsertGsSource(packageOid, isSpec, false); + } + } +#endif + ereport(DEBUG3, (errmodule(MOD_NEST_COMPILE), errcode(ERRCODE_LOG), + errmsg("%s clear curr_compile_context because of error.", __func__))); + /* reset nest plpgsql compile */ + u_sess->plsql_cxt.curr_compile_context = save_compile_context; + u_sess->plsql_cxt.compile_status = save_compile_status; + clearCompileContextList(save_compile_list_length); u_sess->plsql_cxt.running_pkg_oid = InvalidOid; + u_sess->plsql_cxt.procedure_first_line = 0; + u_sess->plsql_cxt.procedure_start_line = 0; + u_sess->plsql_cxt.package_first_line = 0; + u_sess->plsql_cxt.package_as_line = 0; u_sess->parser_cxt.in_package_function_compile = false; + u_sess->misc_cxt.Pseudo_CurrentUserId = savedPseudoCurrentUserId; PG_RE_THROW(); } PG_END_TRY(); +#ifndef ENABLE_MULTIPLE_NODES + if (isCreate && !IsInitdb) { + PkgInsertGsSource(packageOid, isSpec, true); + } +#endif + u_sess->plsql_cxt.errorList = NULL; + u_sess->plsql_cxt.procedure_first_line = 0; + u_sess->plsql_cxt.procedure_start_line = 0; + u_sess->plsql_cxt.package_as_line = 0; + u_sess->plsql_cxt.package_first_line = 0; return pkg; } @@ -972,96 +1430,206 @@ void FunctionInPackageCompile(PLpgSQL_package* pkg) void PackageInit(PLpgSQL_package* pkg, bool isCreate) { +#ifdef ENABLE_MULTIPLE_NODES + return; +#endif + if (likely(pkg != NULL)) { + if (likely(pkg->isInit)) { + return; + } + } + int package_line = 0; + package_line = u_sess->plsql_cxt.package_as_line; + PushOverrideSearchPath(pkg->pkg_searchpath); ListCell* cell = NULL; + int oldCompileStatus = getCompileStatus(); if (isCreate) { + CompileStatusSwtichTo(COMPILIE_PKG); + } + + PLpgSQL_compile_context* curr_compile = createCompileContext("PL/pgSQL package context"); + SPI_NESTCOMPILE_LOG(curr_compile->compile_cxt); + MemoryContext temp = NULL; + if (u_sess->plsql_cxt.curr_compile_context != NULL) { + temp = MemoryContextSwitchTo(u_sess->plsql_cxt.curr_compile_context->compile_tmp_cxt); + } + u_sess->plsql_cxt.curr_compile_context = curr_compile; + pushCompileContext(); + curr_compile->plpgsql_curr_compile_package = pkg; + checkCompileMemoryContext(pkg->pkg_cxt); + if (isCreate) { + int exception_num = 0; + curr_compile->compile_tmp_cxt = MemoryContextSwitchTo(pkg->pkg_cxt); processPackageProcList(pkg); foreach(cell, pkg->proc_list) { if (IsA(lfirst(cell), CreateFunctionStmt)) { - MemoryContext temp = MemoryContextSwitchTo(pkg->pkg_cxt); CreateFunctionStmt* funcStmt = (CreateFunctionStmt*)lfirst(cell); if (!funcStmt->isExecuted) { + (void)CompileStatusSwtichTo(COMPILIE_PKG_FUNC); char* funcStr = funcStmt->queryStr; - CreateFunction(funcStmt, funcStr, pkg->pkg_oid); + PG_TRY(); + { + CreateFunction(funcStmt, funcStr, pkg->pkg_oid); + } + PG_CATCH(); + { + if (u_sess->plsql_cxt.create_func_error) { + u_sess->plsql_cxt.create_func_error = false; + exception_num += 1; + } else { + PG_RE_THROW(); + } + } + PG_END_TRY(); funcStmt->isExecuted = true; + (void)CompileStatusSwtichTo(oldCompileStatus); } - (void*)MemoryContextSwitchTo(temp); } } + if (exception_num > 0) { + ereport(ERROR, + (errmodule(MOD_PLSQL), + errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("Debug mod,create procedure has error."), + errdetail("N/A"), + errcause("compile procedure error."), + erraction("check procedure error and redefine procedure"))); + } + (void*)MemoryContextSwitchTo(curr_compile->compile_tmp_cxt); } else { - if (pkg->is_bodydefined) { + if (pkg->is_bodycompiled) { + (void)CompileStatusSwtichTo(COMPILIE_PKG_FUNC); + curr_compile->compile_tmp_cxt = MemoryContextSwitchTo(pkg->pkg_cxt); FunctionInPackageCompile(pkg); + (void*)MemoryContextSwitchTo(curr_compile->compile_tmp_cxt); + (void)CompileStatusSwtichTo(oldCompileStatus); } } +#ifndef ENABLE_MULTIPLE_NODES + if (u_sess->attr.attr_common.plsql_show_all_error) { + PopOverrideSearchPath(); + ereport(DEBUG3, (errmodule(MOD_NEST_COMPILE), errcode(ERRCODE_LOG), + errmsg("%s finish compile(show_all_error), level: %d", + __func__, list_length(u_sess->plsql_cxt.compile_context_list)))); + u_sess->plsql_cxt.curr_compile_context = popCompileContext(); + CompileStatusSwtichTo(oldCompileStatus); + clearCompileContext(curr_compile); + if (temp != NULL) { + MemoryContextSwitchTo(temp); + } + return; + } +#endif cell = NULL; bool oldStatus = false; bool needResetErrMsg = stp_disable_xact_and_set_err_msg(&oldStatus, STP_XACT_PACKAGE_INSTANTIATION); + /* save flag for nest plpgsql compile */ + PLpgSQL_compile_context* save_compile_context = u_sess->plsql_cxt.curr_compile_context; + int save_compile_list_length = list_length(u_sess->plsql_cxt.compile_context_list); + int save_compile_status = u_sess->plsql_cxt.compile_status; PG_TRY(); { u_sess->plsql_cxt.is_package_instantiation = true; foreach(cell, pkg->proc_list) { if (IsA(lfirst(cell), DoStmt)) { - MemoryContext temp = MemoryContextSwitchTo(pkg->pkg_cxt); + curr_compile->compile_tmp_cxt = MemoryContextSwitchTo(pkg->pkg_cxt); DoStmt* doStmt = (DoStmt*)lfirst(cell); if (!isCreate) { if (!doStmt->isExecuted) { - ExecuteDoStmt(doStmt, true); + (void)CompileStatusSwtichTo(COMPILIE_PKG_ANON_BLOCK); + if (u_sess->SPI_cxt._connected > -1 && + u_sess->SPI_cxt._connected != u_sess->SPI_cxt._curid && + !ENABLE_SQL_BETA_FEATURE(SPI_DEBUG)) { + SPI_STACK_LOG("begin", NULL, NULL); + _SPI_begin_call(false); + ExecuteDoStmt(doStmt, true); + SPI_STACK_LOG("end", NULL, NULL); + _SPI_end_call(false); + } else { + ExecuteDoStmt(doStmt, true); + } + if (!doStmt->isSpec) { + pkg->isInit = true; + + } + (void)CompileStatusSwtichTo(oldCompileStatus); doStmt->isExecuted = true; } } else { if (doStmt->isSpec) { - ExecuteDoStmt(doStmt, true); + (void)CompileStatusSwtichTo(COMPILIE_PKG_ANON_BLOCK); + if (u_sess->SPI_cxt._connected > -1 && + u_sess->SPI_cxt._connected != u_sess->SPI_cxt._curid && + !ENABLE_SQL_BETA_FEATURE(SPI_DEBUG)) { + SPI_STACK_LOG("begin", NULL, NULL); + _SPI_begin_call(false); + ExecuteDoStmt(doStmt, true); + SPI_STACK_LOG("end", NULL, NULL); + _SPI_end_call(false); + } else { + ExecuteDoStmt(doStmt, true); + } + + (void)CompileStatusSwtichTo(oldCompileStatus); doStmt->isExecuted = true; } } - (void*)MemoryContextSwitchTo(temp); + (void*)MemoryContextSwitchTo(curr_compile->compile_tmp_cxt); } } stp_reset_xact_state_and_err_msg(oldStatus, needResetErrMsg); u_sess->plsql_cxt.is_package_instantiation = false; + ereport(DEBUG3, (errmodule(MOD_NEST_COMPILE), errcode(ERRCODE_LOG), + errmsg("%s finish compile, level: %d", __func__, list_length(u_sess->plsql_cxt.compile_context_list)))); + u_sess->plsql_cxt.curr_compile_context = popCompileContext(); + CompileStatusSwtichTo(oldCompileStatus); + clearCompileContext(curr_compile); } PG_CATCH(); { - stp_reset_xact_state_and_err_msg(oldStatus, needResetErrMsg); u_sess->plsql_cxt.is_package_instantiation = false; + PopOverrideSearchPath(); + ereport(DEBUG3, (errmodule(MOD_NEST_COMPILE), errcode(ERRCODE_LOG), + errmsg("%s clear curr_compile_context because of error.", __func__))); + /* reset nest plpgsql compile */ + u_sess->plsql_cxt.curr_compile_context = save_compile_context; + u_sess->plsql_cxt.compile_status = save_compile_status; + clearCompileContextList(save_compile_list_length); PG_RE_THROW(); } PG_END_TRY(); + PopOverrideSearchPath(); } -/* ---------- - * ConnectSPI - * - * connect the plpgsql - * ---------- - */ - -void ConnectSPI() +void record_pkg_function_dependency(PLpgSQL_package* pkg, List** invalItems, Oid funcid, Oid pkgid) { - int rc; - if ((rc = SPI_connect()) != SPI_OK_CONNECT) { - ereport(ERROR, - (errmodule(MOD_PLSQL), - errcode(ERRCODE_SPI_CONNECTION_FAILURE), - errmsg("SPI_connect failed: %s when validate function.", SPI_result_code_string(rc)))); + /* + * For performance reasons, we don't bother to track built-in functions; + * we just assume they'll never change. + */ + if (funcid >= (Oid)FirstBootstrapObjectId || pkgid != InvalidOid) { + /* if already has id item in list, just skip it */ + if (*invalItems) { + ListCell* lc = NULL; + foreach(lc, *invalItems) { + FuncInvalItem* item = (FuncInvalItem*)lfirst(lc); + if (item->objId == funcid || item->objId == pkgid) { + return; + } + } + } + FuncInvalItem* inval_item = makeNode(FuncInvalItem); + if (pkgid == InvalidOid) { + inval_item->cacheId = PROCOID; + inval_item->objId = funcid; + } else { + inval_item->cacheId = PACKAGEOID; + inval_item->objId = pkgid; + } + *invalItems = lappend(*invalItems, inval_item); + pkg->use_count++; } } -/* ---------- - * DisconnectSPI - * - * disconnect the plpgsql - * ---------- - */ - -void DisconnectSPI() -{ - int rt; - if ((rt = SPI_finish()) != SPI_OK_FINISH) { - ereport(ERROR, - (errmodule(MOD_PLSQL), - errcode(ERRCODE_SPI_CONNECTION_FAILURE), - errmsg("SPI_connect failed: %s when validate function.", SPI_result_code_string(rt)))); - } -} diff --git a/src/common/pl/plpgsql/src/pl_package.cpp b/src/common/pl/plpgsql/src/pl_package.cpp index 5eb72163e..5918447c0 100644 --- a/src/common/pl/plpgsql/src/pl_package.cpp +++ b/src/common/pl/plpgsql/src/pl_package.cpp @@ -1,3 +1,12 @@ +/* ------------------------------------------------------------------------- + * + * Portions Copyright (c) 2021, openGauss Contributors + + * IDENTIFICATION + * src/common/pl/plpgsql/src/pl_package.cpp + * ------------------------------------------------------------------------- + */ + #include #include "catalog/namespace.h" @@ -28,7 +37,10 @@ #include "utils/rel.h" #include "utils/rel_gs.h" #include "utils/syscache.h" +#include "utils/acl.h" #include "miscadmin.h" +#include "parser/scanner.h" +#include "parser/parser.h" @@ -38,20 +50,73 @@ static void plpgsql_pkg_HashTableInsert(PLpgSQL_package* pkg, PLpgSQL_pkg_hashke extern PLpgSQL_package* plpgsql_pkg_HashTableLookup(PLpgSQL_pkg_hashkey* pkg_key); -extern bool check_search_path_interface(List *schemas, HeapTuple proc_tup); - extern void plpgsql_compile_error_callback(void* arg); -static bool plpgsql_pkg_check_search_path(PLpgSQL_package* pkg, HeapTuple proc_tup) +static Node* plpgsql_bind_variable_column_ref(ParseState* pstate, ColumnRef* cref); + +/* + * plpgsql_parser_setup_bind set up parser hooks for dynamic parameters + * only support DBE_SQL. + */ +void plpgsql_parser_setup_bind(struct ParseState* pstate, List** expr) { - /* If SUPPORT_BIND_SEARCHPATH is false, always return true. */ - return check_search_path_interface(pkg->pkg_searchpath->schemas, proc_tup); + pstate->p_bind_variable_columnref_hook = plpgsql_bind_variable_column_ref; + pstate->p_ref_hook_state = (void*)expr; } +/* + * plpgsql_bind_variable_column_ref parser callback after parsing a ColumnRef + * only support DBE_SQL. + */ +static Node* plpgsql_bind_variable_column_ref(ParseState* pstate, ColumnRef* cref) +{ + List** expr = (List**)pstate->p_ref_hook_state; + + /* get column name */ + Node* field1 = (Node*)linitial(cref->fields); + AssertEreport(IsA(field1, String), MOD_PLSQL, "string type is required."); + const char* name1 = NULL; + name1 = strVal(field1); + + /* get column type */ + int len = 1; + ListCell* lc_name = NULL; + ListCell* lc_type = NULL; + Oid argtypes = 0; + forboth (lc_type, expr[0], lc_name, expr[1]) { + if (pg_strcasecmp((char *)lfirst(lc_name), name1) != 0) { + len++; + continue; + } + argtypes = lfirst_oid(lc_type); + break; + } + + if (argtypes == 0) { + ereport(ERROR, (errmodule(MOD_PLSQL), errcode(ERRCODE_AMBIGUOUS_COLUMN), + errmsg("argtypes is not valid"), errdetail("Confirm function input parameters."), + errcause("parameters error."), erraction("Confirm function input parameters."))); + } + + /* Generate param and Fill by index(len) */ + Param* param = NULL; + param = makeNode(Param); + param->paramkind = PARAM_EXTERN; + param->paramid = len; + param->paramtype = argtypes; + param->paramtypmod = -1; + param->paramcollid = get_typcollation(param->paramtype); + param->location = cref->location; + return (Node*)param; +} + +static void build_pkg_row_variable(int varno, PLpgSQL_package* pkg, const char* pkgName, const char* nspName); + bool IsOnlyCompilePackage() { - if (u_sess->plsql_cxt.plpgsql_curr_compile_package != NULL - && u_sess->plsql_cxt.plpgsql_curr_compile == NULL) { + if (u_sess->plsql_cxt.curr_compile_context != NULL && + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package != NULL && + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile == NULL) { return true; } else { return false; @@ -140,6 +205,92 @@ int plpgsql_pkg_adddatum2ns(const List* name) return varno; } +static void build_pkg_cursor_variable(int varno, PLpgSQL_package* pkg, const char* pkgName, const char* nspName) +{ + int cursorAttrNum = 4; + int dno = -1; + char* refname = NULL; + for (int i = 1; i <= cursorAttrNum; i++) { + dno = plpgsql_adddatum(pkg->datums[varno + i], false); + refname = ((PLpgSQL_variable*)(pkg->datums[varno + i]))->refname; + plpgsql_ns_additem(PLPGSQL_NSTYPE_VAR, dno, refname, pkgName, nspName); + } +} + +static void build_pkg_row_variable(int varno, PLpgSQL_package* pkg, const char* pkgName, const char* nspName) +{ + PLpgSQL_row* row = (PLpgSQL_row*)pkg->datums[varno]; + int dno = -1; + PLpgSQL_datum* datum = NULL; + char* refName = NULL; + + for (int i = 0; i < row->nfields; i++) { + datum = row->pkg->datums[row->varnos[i]]; + if (datum != NULL) { + refName = ((PLpgSQL_variable*)datum)->refname; + dno = plpgsql_adddatum(pkg->datums[row->varnos[i]], false); + if (datum->dtype == PLPGSQL_DTYPE_VAR) { + plpgsql_ns_additem(PLPGSQL_NSTYPE_VAR, dno, refName, pkgName, nspName); + } else { + plpgsql_ns_additem(PLPGSQL_NSTYPE_ROW, dno, refName, pkgName, nspName); + } + } + } +} + + +int plpgsql_build_pkg_variable(List* name, PLpgSQL_datum* datum, bool isSamePkg) +{ + int varno = 0; + char* objname = NULL; + char* pkgname = NULL; + char* nspname = NULL; + + DeconstructQualifiedName(name, &nspname, &objname, &pkgname); + + switch (datum->dtype) { + case PLPGSQL_DTYPE_VAR: { + /* Ordinary scalar datatype */ + PLpgSQL_var* var = (PLpgSQL_var*)datum; + varno = isSamePkg ? var->dno : plpgsql_adddatum(datum, false); + if (var->addNamespace) { + plpgsql_ns_additem(PLPGSQL_NSTYPE_VAR, varno, var->refname, pkgname, nspname); + } + if (var->datatype->typoid == REFCURSOROID && !isSamePkg) { + build_pkg_cursor_variable(var->dno, var->pkg, pkgname, nspname); + } + return varno; + } + case PLPGSQL_DTYPE_ROW: { + /* Ordinary scalar datatype */ + PLpgSQL_row* row = (PLpgSQL_row*)datum; + varno = isSamePkg ? row->dno : plpgsql_adddatum(datum, false); + if (row->addNamespace) { + plpgsql_ns_additem(PLPGSQL_NSTYPE_ROW, varno, row->refname, pkgname, nspname); + } + if (!isSamePkg) { + build_pkg_row_variable(row->dno, row->pkg, pkgname, nspname); + } + return varno; + } + case PLPGSQL_DTYPE_RECORD: { + /* "record" type -- build a record variable */ + PLpgSQL_row* row = (PLpgSQL_row*)datum; + + varno = isSamePkg ? row->dno : plpgsql_adddatum(datum, false); + if (row->addNamespace) { + plpgsql_ns_additem(PLPGSQL_NSTYPE_ROW, varno, row->refname, pkgname, nspname); + } + if (!isSamePkg) { + build_pkg_row_variable(row->dno, row->pkg, pkgname, nspname); + } + return varno; + } + + } + return -1; +} + /* * use unknown type when compile a function which has package variable * because gauss doesn't support compile multiple function at the same time @@ -148,43 +299,22 @@ int plpgsql_pkg_adddatum2ns(const List* name) * else return the variable number. */ -int plpgsql_pkg_add_unknown_var_to_namespace(List* name, int dtype) +int plpgsql_pkg_add_unknown_var_to_namespace(List* name) { - char* objname = NULL; - char* pkgname = NULL; - char* nspname = NULL; - DeconstructQualifiedName(name, &nspname, &objname, &pkgname); - if (IsFunctionInPackage(name) && pkgname!=NULL) { - return -1; - } else if (pkgname == NULL) { +#ifdef ENABLE_MULTIPLE_NODES + return -1; +#endif + + if (list_length(name) >= 4) { return -1; } - if (PLPGSQL_DTYPE_ROW != dtype) { - MemoryContext temp = MemoryContextSwitchTo(u_sess->plsql_cxt.plpgsql_cxt); - PLpgSQL_var* var = NULL; - var = (PLpgSQL_var*)palloc0(sizeof(PLpgSQL_var)); - var->pkg_name = stringToQualifiedNameList(pkgname); - var->refname = pstrdup(objname); - var->dtype = PLPGSQL_DTYPE_UNKNOWN; - var->dno = plpgsql_adddatum((PLpgSQL_datum *) var); - plpgsql_ns_additem(PLPGSQL_NSTYPE_UNKNOWN, var->dno, objname, pkgname); - MemoryContextSwitchTo(temp); - return var->dno; + + bool isSamePkg = false; + PLpgSQL_datum* datum = GetPackageDatum(name, &isSamePkg); + if (datum != NULL) { + return plpgsql_build_pkg_variable(name, datum, isSamePkg); } else { - Oid type_id = InvalidOid; - int typmod_p = -1; - parseTypeString("exception", &type_id, &typmod_p); - PLpgSQL_type* rowDtype = plpgsql_build_datatype(type_id, typmod_p, 0); - MemoryContext temp = MemoryContextSwitchTo(u_sess->plsql_cxt.plpgsql_cxt); - PLpgSQL_row* var = build_row_from_class(rowDtype->typrelid); - var->pkg_name = stringToQualifiedNameList(pkgname); - var->refname = pstrdup(objname); - var->dtype = PLPGSQL_DTYPE_ROW; - var->dno = plpgsql_adddatum((PLpgSQL_datum *) var); - var->customErrorCode = 0; - plpgsql_ns_additem(PLPGSQL_DTYPE_ROW, var->dno, objname, pkgname); - MemoryContextSwitchTo(temp); - return var->dno; + return -1; } return -1; } @@ -336,12 +466,12 @@ bool plpgsql_check_updel_colocate( if (!is_colocate) { break; - } - } - + } + } + if (opexpr_list != NIL) { list_free_ext(opexpr_list); - } + } return is_colocate; } else { /* For and with no or condition, we can ship when any opexpr is colocated. */ @@ -350,7 +480,7 @@ bool plpgsql_check_updel_colocate( if (opexpr_list != NIL) { list_free_ext(opexpr_list); - } + } return is_colocate; } @@ -429,7 +559,6 @@ bool check_search_path_interface(List *schemas, HeapTuple proc_tup) } bool isOidListSame = true; Form_pg_proc proc_struct = (Form_pg_proc)GETSTRUCT(proc_tup); - if (proc_struct->pronamespace != PG_CATALOG_NAMESPACE) { /* Get lastest search_path if baseSearchPathValid is false */ recomputeNamespacePath(); @@ -458,6 +587,15 @@ bool check_search_path_interface(List *schemas, HeapTuple proc_tup) break; } } + } else if (len1 == list_length(schemas)) { + /* in some case, same length maybe same oid list */ + ListCell* lc1 = NULL; + foreach(lc1, schemas) { + if (!list_member_oid(u_sess->catalog_cxt.baseSearchPath, lfirst_oid(lc1))) { + isOidListSame = false; + break; + } + } } else { /* If length is different, two lists are different. */ isOidListSame = false; @@ -481,20 +619,22 @@ void plpgsql_pkg_HashTableDelete(PLpgSQL_package* pkg) elog(WARNING, "trying to delete function that does not exist"); } else { /* delete the cell from the list. */ - u_sess->plsql_cxt.plpgsql_dlist_objects = - dlist_delete_cell(u_sess->plsql_cxt.plpgsql_dlist_objects, hentry->cell, false); + u_sess->plsql_cxt.plpgsqlpkg_dlist_objects = + dlist_delete_cell(u_sess->plsql_cxt.plpgsqlpkg_dlist_objects, hentry->cell, false); } /* remove back link, which no longer points to allocated storage */ pkg->pkg_hashkey = NULL; } -extern void delete_package(PLpgSQL_package* pkg) +void delete_package(PLpgSQL_package* pkg) { + pkg->use_count--; + if (pkg->use_count > 0) + return; ListCell* l = NULL; foreach(l, pkg->proc_compiled_list) { PLpgSQL_function* func = (PLpgSQL_function*)lfirst(l); delete_function(func); - CacheInvalidateFunction(func->fn_oid); } /* free package memory,*/ plpgsql_pkg_HashTableDelete(pkg); @@ -506,12 +646,12 @@ static void plpgsql_pkg_append_dlcell(plpgsql_pkg_HashEnt* entity) MemoryContext oldctx; PLpgSQL_package* pkg = NULL; oldctx = MemoryContextSwitchTo(SESS_GET_MEM_CXT_GROUP(MEMORY_CONTEXT_OPTIMIZER)); - u_sess->plsql_cxt.plpgsql_dlist_objects = dlappend(u_sess->plsql_cxt.plpgsql_dlist_objects, entity); + u_sess->plsql_cxt.plpgsqlpkg_dlist_objects = dlappend(u_sess->plsql_cxt.plpgsqlpkg_dlist_objects, entity); (void)MemoryContextSwitchTo(oldctx); - entity->cell = u_sess->plsql_cxt.plpgsql_dlist_objects->tail; - while (dlength(u_sess->plsql_cxt.plpgsql_dlist_objects) > g_instance.attr.attr_sql.max_compile_functions) { - DListCell* headcell = u_sess->plsql_cxt.plpgsql_dlist_objects->head; + entity->cell = u_sess->plsql_cxt.plpgsqlpkg_dlist_objects->tail; + while (dlength(u_sess->plsql_cxt.plpgsqlpkg_dlist_objects) > g_instance.attr.attr_sql.max_compile_functions) { + DListCell* headcell = u_sess->plsql_cxt.plpgsqlpkg_dlist_objects->head; plpgsql_pkg_HashEnt* head_entity = (plpgsql_pkg_HashEnt*)lfirst(headcell); pkg = head_entity->package; @@ -531,8 +671,8 @@ void delete_pkg_in_HashTable(Oid pkgOid) bool found = false; hentry = (plpgsql_pkg_HashEnt*)hash_search(u_sess->plsql_cxt.plpgsql_pkg_HashTable, &hashkey, HASH_REMOVE, NULL); if (found) { - u_sess->plsql_cxt.plpgsql_dlist_objects = - dlist_delete_cell(u_sess->plsql_cxt.plpgsql_dlist_objects, hentry->cell, false); + u_sess->plsql_cxt.plpgsqlpkg_dlist_objects = + dlist_delete_cell(u_sess->plsql_cxt.plpgsqlpkg_dlist_objects, hentry->cell, false); } } @@ -543,7 +683,7 @@ static void plpgsql_pkg_HashTableInsert(PLpgSQL_package* pkg, PLpgSQL_pkg_hashke hentry = (plpgsql_pkg_HashEnt*)hash_search(u_sess->plsql_cxt.plpgsql_pkg_HashTable, (void*)pkg_key, HASH_ENTER, &found); if (found) { /* move cell to the tail of the package list. */ - dlist_add_tail_cell(u_sess->plsql_cxt.plpgsql_dlist_objects, hentry->cell); + dlist_add_tail_cell(u_sess->plsql_cxt.plpgsqlpkg_dlist_objects, hentry->cell); elog(WARNING, "trying to insert a package that already exists"); } else { /* append the current compiling entity to the end of the compile results list. */ @@ -552,23 +692,24 @@ static void plpgsql_pkg_HashTableInsert(PLpgSQL_package* pkg, PLpgSQL_pkg_hashke hentry->package = pkg; /* prepare back link from function to hashtable key */ pkg->pkg_hashkey = &hentry->key; + pkg->use_count++; } extern PLpgSQL_package* plpgsql_pkg_HashTableLookup(PLpgSQL_pkg_hashkey* pkg_key) { + if (unlikely(u_sess->plsql_cxt.plpgsql_pkg_HashTable == NULL)) + return NULL; plpgsql_pkg_HashEnt* hentry = NULL; hentry = (plpgsql_pkg_HashEnt*)hash_search(u_sess->plsql_cxt.plpgsql_pkg_HashTable, (void*)pkg_key, HASH_FIND, NULL); if (hentry != NULL) { /* add cell to the tail of the function list. */ - dlist_add_tail_cell(u_sess->plsql_cxt.plpgsql_dlist_objects, hentry->cell); + dlist_add_tail_cell(u_sess->plsql_cxt.plpgsqlpkg_dlist_objects, hentry->cell); return hentry->package; } else { return NULL; } } - - static PLpgSQL_package* do_pkg_compile(Oid pkgOid, HeapTuple pkg_tup, PLpgSQL_package* pkg, PLpgSQL_pkg_hashkey* hashkey, bool isSpec) { Form_gs_package pkg_struct = (Form_gs_package)GETSTRUCT(pkg_tup); @@ -590,15 +731,13 @@ static PLpgSQL_package* do_pkg_compile(Oid pkgOid, HeapTuple pkg_tup, PLpgSQL_pa Datum namespaceOidDatum; Oid namespaceOid = InvalidOid; /* - * Setup the scanner input and error info. We assume that this function + * Setup the scanner input and error info. We assume that this function * cannot be invoked recursively, so there's no need to save and restore * the static variables used here. */ - if (isSpec) { pkgsrcdatum = SysCacheGetAttr(PACKAGEOID, pkg_tup, Anum_gs_package_pkgspecsrc, &isnull); - } - else { + } else { pkgsrcdatum = SysCacheGetAttr(PACKAGEOID, pkg_tup, Anum_gs_package_pkgbodydeclsrc, &isnull); } @@ -619,8 +758,6 @@ static PLpgSQL_package* do_pkg_compile(Oid pkgOid, HeapTuple pkg_tup, PLpgSQL_pa pkg_init_source = TextDatumGetCString(pkginitdatum); } pkg_source = TextDatumGetCString(pkgsrcdatum); - plpgsql_scanner_init(pkg_source); - u_sess->plsql_cxt.plpgsql_error_pkgname = pstrdup(NameStr(pkg_struct->pkgname)); /* * Setup error traceback support for ereport() */ @@ -629,25 +766,43 @@ static PLpgSQL_package* do_pkg_compile(Oid pkgOid, HeapTuple pkg_tup, PLpgSQL_pa pl_err_context.previous = t_thrd.log_cxt.error_context_stack; t_thrd.log_cxt.error_context_stack = &pl_err_context; signature = pstrdup(NameStr(pkg_struct->pkgname)); + /* + * All the permanent output of compilation (e.g. parse tree) is kept in a + * per-function memory context, so it can be reclaimed easily. + */ + rc = snprintf_s( + context_name, NAMEDATALEN, NAMEDATALEN - 1, "%s_%lu", "PL/pgSQL package context", u_sess->debug_query_id); + securec_check_ss(rc, "", ""); /* * Create the new function struct, if not done already. The function * structs are never thrown away, so keep them in session memory context. */ + PLpgSQL_compile_context* curr_compile = createCompileContext(context_name); + SPI_NESTCOMPILE_LOG(curr_compile->compile_cxt); if (pkg == NULL) { pkg = (PLpgSQL_package*)MemoryContextAllocZero( SESS_GET_MEM_CXT_GROUP(MEMORY_CONTEXT_OPTIMIZER), sizeof(PLpgSQL_package)); - pkg->pkg_cxt = AllocSetContextCreate(u_sess->top_mem_cxt, - context_name, - ALLOCSET_DEFAULT_MINSIZE, - ALLOCSET_DEFAULT_INITSIZE, - ALLOCSET_DEFAULT_MAXSIZE); - u_sess->plsql_cxt.plpgsql_cxt = pkg->pkg_cxt; + pkg->pkg_cxt = curr_compile->compile_cxt; pkg->pkg_signature = pstrdup(signature); pkg->pkg_owner = pkg_struct->pkgowner; pkg->pkg_oid = pkgOid; pkg->pkg_tid = pkg_tup->t_self; pkg->proc_list = NULL; + pkg->invalItems = NIL; } + saved_pseudo_current_userId = u_sess->misc_cxt.Pseudo_CurrentUserId; + u_sess->misc_cxt.Pseudo_CurrentUserId = &pkg->pkg_owner; + pkg->is_spec_compiling = isSpec; + MemoryContext temp = NULL; + if (u_sess->plsql_cxt.curr_compile_context != NULL) { + checkCompileMemoryContext(u_sess->plsql_cxt.curr_compile_context->compile_tmp_cxt); + temp = MemoryContextSwitchTo(u_sess->plsql_cxt.curr_compile_context->compile_tmp_cxt); + } + u_sess->plsql_cxt.curr_compile_context = curr_compile; + pushCompileContext(); + plpgsql_scanner_init(pkg_source); + curr_compile->plpgsql_error_pkgname = pstrdup(NameStr(pkg_struct->pkgname)); + namespaceOidDatum = SysCacheGetAttr(PACKAGEOID, pkg_tup, Anum_gs_package_pkgnamespace, &isnull); if (!isnull) { namespaceOid = DatumGetObjectId(namespaceOidDatum); @@ -657,19 +812,10 @@ static PLpgSQL_package* do_pkg_compile(Oid pkgOid, HeapTuple pkg_tup, PLpgSQL_pa } else { pkg->namespaceOid = InvalidOid; } - u_sess->plsql_cxt.plpgsql_cxt = pkg->pkg_cxt; - u_sess->plsql_cxt.plpgsql_pkg_cxt = pkg->pkg_cxt; pkg->is_spec_compiling = isSpec; if (isSpec) { u_sess->plsql_cxt.plpgsql_IndexErrorVariable = 0; } - /* - * All the permanent output of compilation (e.g. parse tree) is kept in a - * per-function memory context, so it can be reclaimed easily. - */ - rc = snprintf_s( - context_name, NAMEDATALEN, NAMEDATALEN - 1, "%s_%lu", "PL/pgSQL package context", u_sess->debug_query_id); - securec_check_ss(rc, "", ""); /* * compile_tmp_cxt is a short temp context that will be detroyed after * function compile or execute. @@ -678,13 +824,14 @@ static PLpgSQL_package* do_pkg_compile(Oid pkgOid, HeapTuple pkg_tup, PLpgSQL_pa * signature is stored on a StringInfoData which is 1K byte at least, but * most signature will not be so long originally, so we should do a strdup. */ - u_sess->plsql_cxt.compile_tmp_cxt = MemoryContextSwitchTo(pkg->pkg_cxt); + curr_compile->compile_tmp_cxt = MemoryContextSwitchTo(pkg->pkg_cxt); + pkg->pkg_signature = pstrdup(signature); pkg->pkg_searchpath = (OverrideSearchPath*)palloc0(sizeof(OverrideSearchPath)); pkg->pkg_searchpath->addCatalog = true; pkg->pkg_searchpath->addTemp = true; pkg->pkg_xmin = HeapTupleGetRawXmin(pkg_tup); pkg->proc_compiled_list = NULL; - u_sess->plsql_cxt.plpgsql_curr_compile_package = pkg; + curr_compile->plpgsql_curr_compile_package = pkg; if (pkg_struct->pkgnamespace == PG_CATALOG_NAMESPACE) { current_searchpath = fetch_search_path(false); if (current_searchpath == NIL) { @@ -740,28 +887,29 @@ static PLpgSQL_package* do_pkg_compile(Oid pkgOid, HeapTuple pkg_tup, PLpgSQL_pa } } pfree_ext(signature); - u_sess->plsql_cxt.plpgsql_curr_compile_package->proc_compiled_list = NULL; + curr_compile->plpgsql_curr_compile_package->proc_compiled_list = NULL; /* * Initialize the compiler, particularly the namespace stack. The * outermost namespace contains function parameters and other special * variables (such as FOUND), and is named after the function itself. */ - u_sess->plsql_cxt.datums_pkg_alloc = alloc_size; - u_sess->plsql_cxt.plpgsql_pkg_nDatums = 0; + curr_compile->datums_pkg_alloc = alloc_size; + curr_compile->plpgsql_pkg_nDatums = 0; /* This is short-lived, so needn't allocate in function's cxt */ - u_sess->plsql_cxt.plpgsql_Datums = (PLpgSQL_datum**)MemoryContextAlloc( - u_sess->plsql_cxt.compile_tmp_cxt, sizeof(PLpgSQL_datum*) * u_sess->plsql_cxt.datums_pkg_alloc); - u_sess->plsql_cxt.datums_last = 0; + curr_compile->plpgsql_Datums = (PLpgSQL_datum**)MemoryContextAlloc( + curr_compile->compile_tmp_cxt, sizeof(PLpgSQL_datum*) * curr_compile->datums_pkg_alloc); + curr_compile->datums_last = 0; PushOverrideSearchPath(pkg->pkg_searchpath); plpgsql_ns_init(); plpgsql_ns_push(NameStr(pkg_struct->pkgname)); add_pkg_compile(); - u_sess->plsql_cxt.datums_last = u_sess->plsql_cxt.plpgsql_nDatums; - u_sess->plsql_cxt.plpgsql_curr_compile_package = pkg; - u_sess->plsql_cxt.plpgsql_pkg_DumpExecTree = false; + curr_compile->datums_last = curr_compile->plpgsql_nDatums; + curr_compile->plpgsql_pkg_DumpExecTree = false; /* * Now parse the function's text */ + bool saved_flag = u_sess->plsql_cxt.have_error; + u_sess->plsql_cxt.have_error = false; parse_rc = plpgsql_yyparse(); if (parse_rc != 0) { ereport(ERROR, @@ -786,42 +934,96 @@ static PLpgSQL_package* do_pkg_compile(Oid pkgOid, HeapTuple pkg_tup, PLpgSQL_pa PopOverrideSearchPath(); u_sess->misc_cxt.Pseudo_CurrentUserId = saved_pseudo_current_userId; - - pkg->ndatums = u_sess->plsql_cxt.plpgsql_pkg_nDatums; - pkg->datums = (PLpgSQL_datum**)palloc(sizeof(PLpgSQL_datum*) * u_sess->plsql_cxt.plpgsql_pkg_nDatums); - for (i = 0; i < u_sess->plsql_cxt.plpgsql_pkg_nDatums; i++) { - pkg->datums[i] = u_sess->plsql_cxt.plpgsql_Datums[i]; +#ifndef ENABLE_MULTIPLE_NODES + if (u_sess->plsql_cxt.have_error && u_sess->attr.attr_common.plsql_show_all_error) { + u_sess->plsql_cxt.have_error = false; + ereport(ERROR, + (errmodule(MOD_PLSQL), + errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("Debug mod,create procedure has error."), + errdetail("N/A"), + errcause("compile procedure error."), + erraction("check procedure error and redefine procedure"))); + } +#endif + u_sess->plsql_cxt.have_error = saved_flag; + pkg->ndatums = curr_compile->plpgsql_pkg_nDatums; + pkg->datums = (PLpgSQL_datum**)palloc(sizeof(PLpgSQL_datum*) * curr_compile->plpgsql_pkg_nDatums); + for (i = 0; i < curr_compile->plpgsql_pkg_nDatums; i++) { + pkg->datums[i] = curr_compile->plpgsql_Datums[i]; if (pkg->datums[i]->dtype == PLPGSQL_DTYPE_VAR) { PLpgSQL_var* var = reinterpret_cast(pkg->datums[i]); - var->pkg = pkg; + if (var->pkg == NULL) { + var->pkg = pkg; + var->pkg_name = GetPackageListName(NameStr(pkg_struct->pkgname), namespaceOid); + } + } else if (pkg->datums[i]->dtype == PLPGSQL_DTYPE_ROW) { + PLpgSQL_row* row = (PLpgSQL_row*)pkg->datums[i]; + if (row->pkg == NULL) { + row->pkg = pkg; + row->pkg_name = GetPackageListName(NameStr(pkg_struct->pkgname), namespaceOid); + } + } else if (pkg->datums[i]->dtype == PLPGSQL_DTYPE_RECORD) { + PLpgSQL_row* row = (PLpgSQL_row*)pkg->datums[i]; + if (row->pkg == NULL) { + row->pkg = pkg; + row->pkg_name = GetPackageListName(NameStr(pkg_struct->pkgname), namespaceOid); + } + } else if (pkg->datums[i]->dtype == PLPGSQL_DTYPE_REC) { + PLpgSQL_rec* rec = (PLpgSQL_rec*)pkg->datums[i]; + if (rec->pkg == NULL) { + rec->pkg = pkg; + rec->pkg_name = GetPackageListName(NameStr(pkg_struct->pkgname), namespaceOid); + } } } if (isSpec) { - pkg->public_ns = u_sess->plsql_cxt.ns_top; - pkg->is_bodydefined = false; + pkg->public_ns = curr_compile->ns_top; + pkg->is_bodycompiled = false; } else { - pkg->private_ns = u_sess->plsql_cxt.ns_top; - pkg->is_bodydefined = true; + pkg->private_ns = curr_compile->ns_top; + pkg->is_bodycompiled = true; } - pkg->proc_list = u_sess->plsql_cxt.plpgsql_curr_compile_package->proc_list; + pkg->proc_list = curr_compile->plpgsql_curr_compile_package->proc_list; if (!isSpec) { - pkg->is_bodydefined = true; + pkg->is_bodycompiled = true; } - u_sess->plsql_cxt.compile_tmp_cxt = MemoryContextSwitchTo(pkg->pkg_cxt); - pkg->proc_compiled_list = u_sess->plsql_cxt.plpgsql_curr_compile_package->proc_compiled_list; + MemoryContext oldcxt = MemoryContextSwitchTo(pkg->pkg_cxt); + pkg->proc_compiled_list = curr_compile->plpgsql_curr_compile_package->proc_compiled_list; if (hashkey && isSpec) { plpgsql_pkg_HashTableInsert(pkg, hashkey); } t_thrd.log_cxt.error_context_stack = pl_err_context.previous; - u_sess->plsql_cxt.plpgsql_error_funcname = NULL; - u_sess->plsql_cxt.plpgsql_check_syntax = false; - MemoryContextSwitchTo(u_sess->plsql_cxt.compile_tmp_cxt); - u_sess->plsql_cxt.compile_tmp_cxt = NULL; - u_sess->plsql_cxt.plpgsql_curr_compile = NULL; + curr_compile->plpgsql_error_funcname = NULL; + curr_compile->plpgsql_check_syntax = false; + MemoryContextSwitchTo(oldcxt); + MemoryContextSwitchTo(curr_compile->compile_tmp_cxt); + curr_compile->compile_tmp_cxt = NULL; + curr_compile->plpgsql_curr_compile = NULL; + ereport(DEBUG3, (errmodule(MOD_NEST_COMPILE), errcode(ERRCODE_LOG), + errmsg("%s finish compile, level: %d", __func__, list_length(u_sess->plsql_cxt.compile_context_list)))); + u_sess->plsql_cxt.curr_compile_context = popCompileContext(); + clearCompileContext(curr_compile); + if (temp != NULL) { + MemoryContextSwitchTo(temp); + } return pkg; } +List* GetPackageListName(const char* pkgName, const Oid nspOid) +{ + StringInfoData nameData; + List* nameList = NULL; + initStringInfo(&nameData); + char* schemaName = get_namespace_name(nspOid); + appendStringInfoString(&nameData, schemaName); + appendStringInfoString(&nameData, "."); + appendStringInfoString(&nameData, pkgName); + nameList = stringToQualifiedNameList(nameData.data); + pfree_ext(nameData.data); + return nameList; +} /* * compile and init package by package oid @@ -841,6 +1043,12 @@ PLpgSQL_package* plpgsql_pkg_compile(Oid pkgOid, bool for_validator, bool isSpec * Lookup the gs_package tuple by Oid; we'll need it in any case */ pkg_tup = SearchSysCache1(PACKAGEOID, ObjectIdGetDatum(pkgOid)); + AclResult aclresult = pg_package_aclcheck(pkgOid, GetUserId(), ACL_EXECUTE); + Form_gs_package pkgForm = (Form_gs_package)GETSTRUCT(pkg_tup); + NameData pkgname = pkgForm->pkgname; + if (aclresult != ACLCHECK_OK) { + aclcheck_error(aclresult, ACL_KIND_PACKAGE, pkgname.data); + } if (!HeapTupleIsValid(pkg_tup)) { ereport(ERROR, (errmodule(MOD_PLSQL), errcode(ERRCODE_CACHE_LOOKUP_FAILED), errmsg("cache lookup failed for package %u, while compile package", pkgOid))); @@ -850,49 +1058,61 @@ PLpgSQL_package* plpgsql_pkg_compile(Oid pkgOid, bool for_validator, bool isSpec pkg = plpgsql_pkg_HashTableLookup(&hashkey); if (pkg != NULL) { + Assert(pkg->pkg_oid == pkgOid); if (pkg->pkg_xmin == HeapTupleGetRawXmin(pkg_tup) && - ItemPointerEquals(&pkg->pkg_tid, &pkg_tup->t_self) && plpgsql_pkg_check_search_path(pkg, pkg_tup)) { + ItemPointerEquals(&pkg->pkg_tid, &pkg_tup->t_self)) { pkg_valid = true; } else { - delete_package(pkg); + /* need reuse pkg slot in hash table later, we need clear all refcount for this pkg and delete it here */ + plpgsql_HashTableDeleteAndCheckFunc(PACKAGEOID, pkgOid); pkg_valid = false; } } - if (!pkg_valid) { - pkg = NULL; - ConnectSPI(); - pkg = do_pkg_compile(pkgOid, pkg_tup, pkg, &hashkey, true); - DisconnectSPI(); - PackageInit(pkg, isCreate); - if (!isSpec && pkg != NULL) { - ConnectSPI(); - pkg = do_pkg_compile(pkgOid, pkg_tup, pkg, &hashkey, false); - if (pkg == NULL) { + PLpgSQL_compile_context* save_compile_context = u_sess->plsql_cxt.curr_compile_context; + PG_TRY(); + { + if (!pkg_valid) { + pkg = NULL; + pkg = do_pkg_compile(pkgOid, pkg_tup, pkg, &hashkey, true); + PackageInit(pkg, isCreate); + if (!isSpec && pkg != NULL) { + pkg = do_pkg_compile(pkgOid, pkg_tup, pkg, &hashkey, false); + if (pkg == NULL) { + ereport(ERROR, (errmodule(MOD_PLSQL), errcode(ERRCODE_CACHE_LOOKUP_FAILED), + errmsg("package %u not found", pkgOid))); + } + ReleaseSysCache(pkg_tup); + pkg_tup = NULL; + PackageInit(pkg, isCreate); + } else if(!isSpec && pkg == NULL) { ereport(ERROR, (errmodule(MOD_PLSQL), errcode(ERRCODE_CACHE_LOOKUP_FAILED), - errmsg("package %u not found", pkgOid))); + errmsg("package spec %u not found", pkgOid))); } - DisconnectSPI(); - ReleaseSysCache(pkg_tup); - pkg_tup = NULL; - PackageInit(pkg, isCreate); - } else if(!isSpec && pkg == NULL) { - ereport(ERROR, (errmodule(MOD_PLSQL), errcode(ERRCODE_CACHE_LOOKUP_FAILED), - errmsg("package spec %u not found", pkgOid))); - } - } else { - if (!pkg->is_bodydefined && !isSpec) { - pkg = do_pkg_compile(pkgOid, pkg_tup, pkg, &hashkey, false); - } - u_sess->plsql_cxt.plpgsql_curr_compile_package = pkg; - /* package must be compiled befor init */ - if (pkg != NULL) { - PackageInit(pkg, isCreate); } else { - ereport(ERROR, (errmodule(MOD_PLSQL), errcode(ERRCODE_CACHE_LOOKUP_FAILED), - errmsg("package spec %u not found", pkgOid))); + if (!pkg->is_bodycompiled && !isSpec) { + pkg = do_pkg_compile(pkgOid, pkg_tup, pkg, &hashkey, false); + } + + /* package must be compiled befor init */ + if (pkg != NULL) { + PackageInit(pkg, isCreate); + } else { + ereport(ERROR, (errmodule(MOD_PLSQL), errcode(ERRCODE_CACHE_LOOKUP_FAILED), + errmsg("package spec %u not found", pkgOid))); + } } - u_sess->plsql_cxt.plpgsql_curr_compile_package = NULL; } + PG_CATCH(); + { +#ifndef ENABLE_MULTIPLE_NODES + if (u_sess->attr.attr_common.plsql_show_all_error && isCreate) { + InsertError(pkgOid); + } +#endif + popToOldCompileContext(save_compile_context); + PG_RE_THROW(); + } + PG_END_TRY(); if (HeapTupleIsValid(pkg_tup)) { ReleaseSysCache(pkg_tup); pkg_tup = NULL; @@ -924,18 +1144,25 @@ void plpgsql_compile_error_callback(void* arg) * fall back to a "near line N" report. */ } - - if (u_sess->plsql_cxt.plpgsql_error_funcname) { - errcontext("compilation of PL/pgSQL function \"%s\" near line %d", - u_sess->plsql_cxt.plpgsql_error_funcname, plpgsql_latest_lineno()); + int rc = CompileWhich(); + if (rc == PLPGSQL_COMPILE_PROC) { + if (u_sess->plsql_cxt.curr_compile_context != NULL && + u_sess->plsql_cxt.curr_compile_context->plpgsql_error_funcname) { + errcontext("compilation of PL/pgSQL function \"%s\" near line %d", + u_sess->plsql_cxt.curr_compile_context->plpgsql_error_funcname, plpgsql_latest_lineno()); + } + } else if (rc != PLPGSQL_COMPILE_NULL) { + errcontext("compilation of PL/pgSQL package near line %d", + plpgsql_latest_lineno()); } } Oid findPackageParameter(const char* objname) { Oid toid = InvalidOid; - if (u_sess->plsql_cxt.plpgsql_curr_compile_package != NULL) { - PLpgSQL_package* pkg = u_sess->plsql_cxt.plpgsql_curr_compile_package; + if (u_sess->plsql_cxt.curr_compile_context != NULL && + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package != NULL) { + PLpgSQL_package* pkg = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package; PLpgSQL_nsitem* ns = NULL; ns = plpgsql_ns_lookup(pkg->public_ns, false, objname, NULL, NULL, NULL); if (ns == NULL) { @@ -949,6 +1176,15 @@ Oid findPackageParameter(const char* objname) case PLPGSQL_NSTYPE_RECORD: toid = RECORDOID; break; + case PLPGSQL_NSTYPE_VAR: { + PLpgSQL_var* var = (PLpgSQL_var*)pkg->datums[ns->itemno]; + if (var->datatype->typoid == REFCURSOROID && OidIsValid(var->datatype->cursorCompositeOid)) { + toid = var->datatype->cursorCompositeOid; + } else { + toid = InvalidOid; + } + break; + } default: toid = InvalidOid; } @@ -956,3 +1192,405 @@ Oid findPackageParameter(const char* objname) } return toid; } + +int GetLineNumber(const char* procedureStr, int loc) +{ +#ifdef ENABLE_MULTIPLE_NODES + return 0; +#endif + int lines = 1; + int jumpWords = 0; + if (procedureStr == nullptr) { + return 0; + } + if (!strncmp(procedureStr, " DECLARE ", strlen(" DECLARE "))) { + if (strlen(procedureStr) > strlen(" DECLARE ")) { + if (procedureStr[strlen(" DECLARE ")] == '\n') { + jumpWords = strlen(" DECLARE "); + } + } + } else if (!strncmp(procedureStr, " PACKAGE DECLARE ", strlen(" PACKAGE DECLARE "))) { + if (strlen(procedureStr) > strlen(" PACKAGE DECLARE ")) { + if (procedureStr[strlen(" PACKAGE DECLARE ")] == '\n') { + jumpWords = strlen(" PACKAGE DECLARE "); + } + } + } + if (procedureStr == NULL || loc < 0) { + return 0; + } + if (jumpWords > loc) { + return 0; + } + int i = jumpWords; + while (i-- >= 0) { + procedureStr++; + } + for (int i = jumpWords; i < loc; i++) { + if (*procedureStr == '\n') { + lines++; + } + procedureStr++; + } + return lines; +} + +/* + get the correct line number in package or procedure,it's line number + start with "Create" +*/ +int GetProcedureLineNumberInPackage(const char* procedureStr, int loc) +{ +#ifndef ENABLE_MULTIPLE_NODES + if (!u_sess->attr.attr_common.plsql_show_all_error) { + return 0; + } +#else + return 0; +#endif + int lines = GetLineNumber(procedureStr, loc); + int rc = CompileWhich(); + if (rc == PLPGSQL_COMPILE_PACKAGE_PROC) { + lines = u_sess->plsql_cxt.package_first_line + u_sess->plsql_cxt.procedure_start_line + u_sess->plsql_cxt.procedure_first_line + lines - 3; + return lines > 0 ? lines : 1; + } else if (rc == PLPGSQL_COMPILE_PACKAGE) { + if (u_sess->plsql_cxt.procedure_start_line > 0) { + lines = u_sess->plsql_cxt.procedure_start_line + u_sess->plsql_cxt.package_first_line - 1; + return lines > 0 ? lines : 1; + } else { + if (lines <= 1) { + lines = u_sess->plsql_cxt.package_first_line; + } else { + lines = u_sess->plsql_cxt.package_first_line + lines - 1; + } + return lines > 0 ? lines : 1; + } + } + else if (rc == PLPGSQL_COMPILE_PROC) { + lines = u_sess->plsql_cxt.procedure_first_line + lines; + return lines > 0 ? lines : 1; + } else { + ereport(ERROR, + (errmodule(MOD_PLSQL), errcode(ERRCODE_UNDEFINED_PACKAGE), + errmsg("not found package or procedure."), + errdetail("package may has error"), + errcause("not found package and procedure"), + erraction("retry"))); + } + return lines; +} + +/* + insert error line number and message into DBE_PLDEVELOPER.gs_errors +*/ +void InsertError(Oid objId) +{ + if (u_sess->attr.attr_common.upgrade_mode != 0 || u_sess->plsql_cxt.errorList == NULL) { + return; + } +#ifdef ENABLE_MULTIPLE_NODES + return; +#else + Oid id = InvalidOid; + Oid nspid = InvalidOid; + char* name = NULL; + char* type = NULL; + Oid userId = (Oid)u_sess->misc_cxt.CurrentUserId; + int rc = CompileWhich(); + if (u_sess->plsql_cxt.errorList == NULL || + !u_sess->attr.attr_common.plsql_show_all_error || IsTransactionBlock()) { + return; + } + if (rc == PLPGSQL_COMPILE_PROC) { + id = objId; + HeapTuple tuple; + bool isnull = false; + PLpgSQL_function* func = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile; + tuple = SearchSysCache1(PROCOID, ObjectIdGetDatum(func->fn_oid)); + Form_pg_proc procStruct = (Form_pg_proc)GETSTRUCT(tuple); + nspid = procStruct->pronamespace; + name = NameStr(procStruct->proname); + Datum prokindDatum = SysCacheGetAttr(PROCOID, tuple, Anum_pg_proc_prokind, &isnull); + /* prokind maybe null */ + char prokind; + if (isnull) { + prokind = 'f'; + } else { + prokind = CharGetDatum(prokindDatum); + } + if (PROC_IS_PRO(prokind)) { + type = "procedure"; + } else { + type = "function"; + } + ReleaseSysCache(tuple); + } else if ((rc == PLPGSQL_COMPILE_PACKAGE || + rc == PLPGSQL_COMPILE_PACKAGE_PROC)) { + HeapTuple tuple; + PLpgSQL_package* pkg = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package; + id = pkg->pkg_oid; + tuple = SearchSysCache1(PACKAGEOID, ObjectIdGetDatum(pkg->pkg_oid)); + if (!HeapTupleIsValid(tuple)) { + ereport(ERROR, + (errmodule(MOD_PLSQL), errcode(ERRCODE_UNDEFINED_PACKAGE), + errmsg("not found package."), + errdetail("package may has error"), + errcause("create package may has error"), + erraction("please check package"))); + } + Form_gs_package pkgStruct = (Form_gs_package)GETSTRUCT(tuple); + nspid = pkgStruct->pkgnamespace; + name = NameStr(pkgStruct->pkgname); + if (pkg->is_spec_compiling) { + type = "package"; + } else { + type = "package body"; + } + ReleaseSysCache(tuple); + } + StringInfoData ds; + initStringInfo(&ds); + appendStringInfoString(&ds, + "declare\n" + "PRAGMA AUTONOMOUS_TRANSACTION;\n" + "oldId int:=0;" + "objId int:=0;" + "allNum int:=0;\n" + "begin\n "); + appendStringInfo(&ds, + "select count(*) from dbe_pldeveloper.gs_source into allNum where " + "nspid=%u and name=\'%s\' and type=\'%s\';", nspid, name, type); + appendStringInfo(&ds, + "if allNum > 0 then " + "select id from dbe_pldeveloper.gs_source into oldId where " + "nspid=%u and name=\'%s\' and type=\'%s\';" + "objId := oldId; " + "else " + "objId := %u;" + "end if;", nspid, name, type, objId); + appendStringInfo(&ds, + "delete from DBE_PLDEVELOPER.gs_errors where nspid=%u and name=\'%s\' and type = \'%s\';\n", + nspid, name, type); + char* errmsg = NULL; + int line = 0; + if (rc != PLPGSQL_COMPILE_NULL) { + ListCell* cell = NULL; + foreach (cell, u_sess->plsql_cxt.errorList) { + PLpgSQL_error* item = (PLpgSQL_error*)lfirst(cell); + errmsg = item->errmsg; + line = item->line; + appendStringInfoString(&ds, "insert into DBE_PLDEVELOPER.gs_errors "); + appendStringInfo(&ds, "values(objId,%u,%u,\'%s\',\'%s\',%d,$gserrors$%s$gserrors$);\n", + userId, nspid, name, type, line, errmsg); + } + } + appendStringInfo(&ds, "EXCEPTION WHEN OTHERS THEN NULL; \n"); + appendStringInfo(&ds, "end;"); + List* rawParserList = NULL; + rawParserList = raw_parser(ds.data); + DoStmt* stmt = (DoStmt *)linitial(rawParserList); + u_sess->plsql_cxt.insertError = true; + int save_compile_status = getCompileStatus(); + int save_compile_list_length = list_length(u_sess->plsql_cxt.compile_context_list); + PLpgSQL_compile_context* save_compile_context = u_sess->plsql_cxt.curr_compile_context; + MemoryContext temp = NULL; + if (u_sess->plsql_cxt.curr_compile_context != NULL) { + temp = MemoryContextSwitchTo(u_sess->plsql_cxt.curr_compile_context->compile_tmp_cxt); + } + PG_TRY(); + { + (void)CompileStatusSwtichTo(NONE_STATUS); + u_sess->plsql_cxt.curr_compile_context = NULL; + ExecuteDoStmt(stmt, true); + } + PG_CATCH(); + { + if (temp != NULL) { + MemoryContextSwitchTo(temp); + } + (void)CompileStatusSwtichTo(save_compile_status); + u_sess->plsql_cxt.curr_compile_context = save_compile_context; + clearCompileContextList(save_compile_list_length); + PG_RE_THROW(); + } + PG_END_TRY(); + u_sess->plsql_cxt.curr_compile_context = save_compile_context; + (void)CompileStatusSwtichTo(save_compile_status); + if (temp != NULL) { + MemoryContextSwitchTo(temp); + } + u_sess->plsql_cxt.insertError = false; + pfree_ext(ds.data); + list_free_deep(u_sess->plsql_cxt.errorList); + u_sess->plsql_cxt.errorList = NULL; +#endif +} + +/* + insert error line number and message into DBE_PLDEVELOPER.gs_errors +*/ +void DropErrorByOid(int objtype, Oid objoid) +{ + bool notInsert = u_sess->attr.attr_common.upgrade_mode != 0 || SKIP_GS_SOURCE || IsTransactionBlock(); + if (notInsert) { + return; + } + +#ifdef ENABLE_MULTIPLE_NODES + return; +#else + char* name = NULL; + char* type = NULL; + Oid nspid = InvalidOid; + if (objtype == PLPGSQL_PROC) { + HeapTuple tuple; + bool isnull = false; + tuple = SearchSysCache1(PROCOID, ObjectIdGetDatum(objoid)); + Form_pg_proc procStruct = (Form_pg_proc)GETSTRUCT(tuple); + nspid = procStruct->pronamespace; + name = NameStr(procStruct->proname); + Datum prokindDatum = SysCacheGetAttr(PROCOID, tuple, Anum_pg_proc_prokind, &isnull); + /* prokind maybe null */ + char prokind; + if (isnull) { + prokind = 'f'; + } else { + prokind = CharGetDatum(prokindDatum); + } + if (PROC_IS_PRO(prokind)) { + type = "procedure"; + } else { + type = "function"; + } + ReleaseSysCache(tuple); + } else if ((objtype == PLPGSQL_PACKAGE || + objtype == PLPGSQL_PACKAGE_BODY)) { + HeapTuple tuple = NULL; + tuple = SearchSysCache1(PACKAGEOID, ObjectIdGetDatum(objoid)); + if (!HeapTupleIsValid(tuple)) { + ereport(ERROR, + (errmodule(MOD_PLSQL), errcode(ERRCODE_UNDEFINED_PACKAGE), + errmsg("not found package."), + errdetail("package may has error"), + errcause("create package may has error"), + erraction("please check package"))); + } + Form_gs_package pkgStruct = (Form_gs_package)GETSTRUCT(tuple); + nspid = pkgStruct->pkgnamespace; + name = NameStr(pkgStruct->pkgname); + if (objtype == PLPGSQL_PACKAGE) { + type = "package"; + } else { + type = "package body"; + } + ReleaseSysCache(tuple); + } + StringInfoData ds; + initStringInfo(&ds); + appendStringInfoString(&ds, " declare begin "); + if (objtype == PLPGSQL_PACKAGE_BODY) { + appendStringInfo(&ds, " delete from DBE_PLDEVELOPER.gs_errors " + "where nspid=%u and name = \'%s\' and type = \'%s\';", + nspid, name, type); + appendStringInfo(&ds, " delete from DBE_PLDEVELOPER.gs_source where " + "nspid=%u and name = \'%s\' and type = \'%s\';", + nspid, name, type); + } else { + appendStringInfo(&ds, " delete from DBE_PLDEVELOPER.gs_errors " + "where nspid=%u and name = \'%s\' and type = \'%s\';", + nspid, name, type); + appendStringInfo(&ds, " delete from DBE_PLDEVELOPER.gs_errors " + "where nspid=%u and name = \'%s\' and type = \'package body\';", + nspid, name); + appendStringInfo(&ds, " delete from DBE_PLDEVELOPER.gs_source where " + "nspid=%u and name = \'%s\' and type = \'%s\';", + nspid, name, type); + appendStringInfo(&ds, " delete from DBE_PLDEVELOPER.gs_source where " + "nspid=%u and name = \'%s\' and type = \'package body\';", + nspid, name); + } + appendStringInfo(&ds, " EXCEPTION WHEN OTHERS THEN NULL; \n"); + appendStringInfo(&ds, " END; "); + List* rawParserList = raw_parser(ds.data); + DoStmt* stmt = (DoStmt *)linitial(rawParserList);; + int save_compile_status = getCompileStatus(); + int save_compile_list_length = list_length(u_sess->plsql_cxt.compile_context_list); + PLpgSQL_compile_context* save_compile_context = u_sess->plsql_cxt.curr_compile_context; + MemoryContext temp = NULL; + if (u_sess->plsql_cxt.curr_compile_context != NULL) { + temp = MemoryContextSwitchTo(u_sess->plsql_cxt.curr_compile_context->compile_tmp_cxt); + } + PG_TRY(); + { + (void)CompileStatusSwtichTo(NONE_STATUS); + u_sess->plsql_cxt.curr_compile_context = NULL; + ExecuteDoStmt(stmt, true); + } + PG_CATCH(); + { + if (temp != NULL) { + MemoryContextSwitchTo(temp); + } + (void)CompileStatusSwtichTo(save_compile_status); + u_sess->plsql_cxt.curr_compile_context = save_compile_context; + clearCompileContextList(save_compile_list_length); + PG_RE_THROW(); + } + PG_END_TRY(); + u_sess->plsql_cxt.curr_compile_context = save_compile_context; + (void)CompileStatusSwtichTo(save_compile_status); + if (temp != NULL) { + MemoryContextSwitchTo(temp); + } + pfree_ext(ds.data); +#endif +} + +int CompileWhich() +{ + if (u_sess->plsql_cxt.curr_compile_context == NULL) { + return PLPGSQL_COMPILE_NULL; + } + + if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package != NULL && + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile != NULL) { + if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile->fn_signature == NULL) { + return PLPGSQL_COMPILE_NULL; + } else { + return PLPGSQL_COMPILE_PACKAGE_PROC; + } + } else if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package != NULL && + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile == NULL) { + return PLPGSQL_COMPILE_PACKAGE; + } else if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package == NULL && + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile != NULL) { + if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile->fn_signature == NULL) { + return PLPGSQL_COMPILE_NULL; + } else { + return PLPGSQL_COMPILE_PROC; + } + } else { + return PLPGSQL_COMPILE_NULL; + } + return PLPGSQL_COMPILE_NULL; +} + +void InsertErrorMessage(const char* message, int yyloc, bool isQueryString, int lines) +{ +#ifdef ENABLE_MULTIPLE_NODES + return; +#else + int rc = CompileWhich(); + if (rc == PLPGSQL_COMPILE_NULL || + !u_sess->attr.attr_common.plsql_show_all_error) { + return; + } +#endif + u_sess->plsql_cxt.have_error = true; + if (!isQueryString && lines == 0) { + lines = GetProcedureLineNumberInPackage(u_sess->plsql_cxt.curr_compile_context->core_yy->scanbuf, yyloc); + } else if (lines == 0) { + lines = GetProcedureLineNumberInPackage(t_thrd.postgres_cxt.debug_query_string, yyloc); + } + addErrorList(message, lines); +} diff --git a/src/common/pl/plpgsql/src/pl_scanner.cpp b/src/common/pl/plpgsql/src/pl_scanner.cpp index a3ec0d02d..d18d913f0 100644 --- a/src/common/pl/plpgsql/src/pl_scanner.cpp +++ b/src/common/pl/plpgsql/src/pl_scanner.cpp @@ -14,15 +14,16 @@ * ------------------------------------------------------------------------- */ #include "utils/plpgsql.h" - +#include "utils/pl_package.h" #include "catalog/pg_type.h" +#include "catalog/gs_package.h" #include "mb/pg_wchar.h" #include "parser/scanner.h" #include "pl_gram.hpp" /* must be after parser/scanner.h */ #define PG_KEYWORD(a, b, c) {a, b, c}, - +#define LENGTH_OF_DOT_AND_STR_END 4 /* * A word about keywords: * @@ -85,6 +86,7 @@ static const ScanKeyword reserved_keywords[] = { PG_KEYWORD("in", K_IN, RESERVED_KEYWORD) PG_KEYWORD("insert", K_INSERT, RESERVED_KEYWORD) PG_KEYWORD("into", K_INTO, RESERVED_KEYWORD) + PG_KEYWORD("limit", K_LIMIT, RESERVED_KEYWORD) PG_KEYWORD("loop", K_LOOP, RESERVED_KEYWORD) PG_KEYWORD("move", K_MOVE, RESERVED_KEYWORD) PG_KEYWORD("not", K_NOT, RESERVED_KEYWORD) @@ -101,7 +103,6 @@ static const ScanKeyword reserved_keywords[] = { PG_KEYWORD("strict", K_STRICT, RESERVED_KEYWORD) PG_KEYWORD("then", K_THEN, RESERVED_KEYWORD) PG_KEYWORD("to", K_TO, RESERVED_KEYWORD) - PG_KEYWORD("type", K_TYPE, RESERVED_KEYWORD) PG_KEYWORD("update", K_UPDATE, RESERVED_KEYWORD) PG_KEYWORD("using", K_USING, RESERVED_KEYWORD) PG_KEYWORD("when", K_WHEN, RESERVED_KEYWORD) @@ -117,6 +118,8 @@ static const ScanKeyword unreserved_keywords[] = { PG_KEYWORD("array", K_ARRAY, UNRESERVED_KEYWORD) PG_KEYWORD("as", K_AS, UNRESERVED_KEYWORD) PG_KEYWORD("backward", K_BACKWARD, UNRESERVED_KEYWORD) + PG_KEYWORD("bulk", K_BULK, UNRESERVED_KEYWORD) + PG_KEYWORD("collect", K_COLLECT, UNRESERVED_KEYWORD) PG_KEYWORD("commit", K_COMMIT, UNRESERVED_KEYWORD) PG_KEYWORD("constant", K_CONSTANT, UNRESERVED_KEYWORD) PG_KEYWORD("continue", K_CONTINUE, UNRESERVED_KEYWORD) @@ -124,22 +127,28 @@ static const ScanKeyword unreserved_keywords[] = { PG_KEYWORD("cursor", K_CURSOR, UNRESERVED_KEYWORD) PG_KEYWORD("debug", K_DEBUG, UNRESERVED_KEYWORD) PG_KEYWORD("detail", K_DETAIL, UNRESERVED_KEYWORD) + PG_KEYWORD("distinct", K_DISTINCT, UNRESERVED_KEYWORD) PG_KEYWORD("dump", K_DUMP, UNRESERVED_KEYWORD) PG_KEYWORD("errcode", K_ERRCODE, UNRESERVED_KEYWORD) PG_KEYWORD("error", K_ERROR, UNRESERVED_KEYWORD) + PG_KEYWORD("except", K_EXCEPT, UNRESERVED_KEYWORD) + PG_KEYWORD("exceptions", K_EXCEPTIONS, UNRESERVED_KEYWORD) PG_KEYWORD("first", K_FIRST, UNRESERVED_KEYWORD) PG_KEYWORD("forward", K_FORWARD, UNRESERVED_KEYWORD) PG_KEYWORD("function", K_FUNCTION, UNRESERVED_KEYWORD) PG_KEYWORD("hint", K_HINT, UNRESERVED_KEYWORD) PG_KEYWORD("immediate", K_IMMEDIATE, UNRESERVED_KEYWORD) + PG_KEYWORD("index", K_INDEX, UNRESERVED_KEYWORD) PG_KEYWORD("info", K_INFO, UNRESERVED_KEYWORD) PG_KEYWORD("instantiation", K_INSTANTIATION, UNRESERVED_KEYWORD) + PG_KEYWORD("intersect", K_INTERSECT, UNRESERVED_KEYWORD) PG_KEYWORD("is", K_IS, UNRESERVED_KEYWORD) PG_KEYWORD("last", K_LAST, UNRESERVED_KEYWORD) PG_KEYWORD("log", K_LOG, UNRESERVED_KEYWORD) PG_KEYWORD("merge", K_MERGE, UNRESERVED_KEYWORD) PG_KEYWORD("message", K_MESSAGE, UNRESERVED_KEYWORD) PG_KEYWORD("message_text", K_MESSAGE_TEXT, UNRESERVED_KEYWORD) + PG_KEYWORD("multiset", K_MULTISET, UNRESERVED_KEYWORD) PG_KEYWORD("next", K_NEXT, UNRESERVED_KEYWORD) PG_KEYWORD("no", K_NO, UNRESERVED_KEYWORD) PG_KEYWORD("notice", K_NOTICE, UNRESERVED_KEYWORD) @@ -155,19 +164,23 @@ static const ScanKeyword unreserved_keywords[] = { PG_KEYWORD("query", K_QUERY, UNRESERVED_KEYWORD) PG_KEYWORD("record", K_RECORD, UNRESERVED_KEYWORD) PG_KEYWORD("relative", K_RELATIVE, UNRESERVED_KEYWORD) + PG_KEYWORD("release", K_RELEASE, UNRESERVED_KEYWORD) PG_KEYWORD("result_oid", K_RESULT_OID, UNRESERVED_KEYWORD) PG_KEYWORD("returned_sqlstate", K_RETURNED_SQLSTATE, UNRESERVED_KEYWORD) PG_KEYWORD("reverse", K_REVERSE, UNRESERVED_KEYWORD) PG_KEYWORD("rollback", K_ROLLBACK, UNRESERVED_KEYWORD) PG_KEYWORD("row_count", K_ROW_COUNT, UNRESERVED_KEYWORD) PG_KEYWORD("rowtype", K_ROWTYPE, UNRESERVED_KEYWORD) + PG_KEYWORD("save", K_SAVE, UNRESERVED_KEYWORD) PG_KEYWORD("savepoint", K_SAVEPOINT, UNRESERVED_KEYWORD) PG_KEYWORD("scroll", K_SCROLL, UNRESERVED_KEYWORD) PG_KEYWORD("slice", K_SLICE, UNRESERVED_KEYWORD) PG_KEYWORD("sqlstate", K_SQLSTATE, UNRESERVED_KEYWORD) PG_KEYWORD("stacked", K_STACKED, UNRESERVED_KEYWORD) PG_KEYWORD("sys_refcursor", K_SYS_REFCURSOR, UNRESERVED_KEYWORD) + PG_KEYWORD("table", K_TABLE, UNRESERVED_KEYWORD) PG_KEYWORD("type", K_TYPE, UNRESERVED_KEYWORD) + PG_KEYWORD("union", K_UNION, UNRESERVED_KEYWORD) PG_KEYWORD("use_column", K_USE_COLUMN, UNRESERVED_KEYWORD) PG_KEYWORD("use_variable", K_USE_VARIABLE, UNRESERVED_KEYWORD) PG_KEYWORD("variable_conflict", K_VARIABLE_CONFLICT, UNRESERVED_KEYWORD) @@ -178,6 +191,17 @@ static const ScanKeyword unreserved_keywords[] = { static const int num_unreserved_keywords = lengthof(unreserved_keywords); +static const struct PlpgsqlKeywordValue keywordsValue = { + .procedure = K_PROCEDURE, + .function = K_FUNCTION, + .begin = K_BEGIN, + .select = K_SELECT, + .update = K_UPDATE, + .insert = K_INSERT, + .Delete = K_DELETE, + .merge = K_MERGE +}; + /* Auxiliary data about a token (other than the token type) */ typedef struct { YYSTYPE lval; /* semantic information */ @@ -212,6 +236,8 @@ int plpgsql_yylex(void) /* enum flag for returning specified tokens */ int tok_flag = -1; int dbl_tok_flag = -1; + int trip_tok_flag = -1; + int quad_tok_flag = -1; /* parse cursor attribute, return token and location */ tok1 = plpgsql_parse_cursor_attribute(&loc); @@ -221,7 +247,7 @@ int plpgsql_yylex(void) } tok1 = internal_yylex(&aux1); - if (tok1 == IDENT || tok1 == PARAM) { + if (tok1 == IDENT || tok1 == PARAM || tok1 == T_SQL_BULK_EXCEPTIONS) { int tok2; TokenAuxData aux2; @@ -231,7 +257,7 @@ int plpgsql_yylex(void) TokenAuxData aux3; tok3 = internal_yylex(&aux3); - if (tok3 == IDENT) { + if (tok3 == IDENT || (tok1 == IDENT && tok3 == K_DELETE)) { int tok4; TokenAuxData aux4; @@ -241,12 +267,56 @@ int plpgsql_yylex(void) TokenAuxData aux5; tok5 = internal_yylex(&aux5); - if (tok5 == IDENT) { - if (plpgsql_parse_tripword( - aux1.lval.str, aux3.lval.str, aux5.lval.str, &aux1.lval.wdatum, &aux1.lval.cword)) { - tok1 = T_DATUM; + if (tok5 == IDENT || (tok5 == K_DELETE && tok3 == IDENT && tok1 == IDENT)) { + int tok6; + TokenAuxData aux6; + + tok6 = internal_yylex(&aux6); + if (tok6 == '.') { + int tok7; + TokenAuxData aux7; + + tok7 = internal_yylex(&aux7); + if (tok7 == IDENT || + (tok7 == K_DELETE && tok5 == IDENT && tok3 == IDENT && tok1 == IDENT)) { + if (plpgsql_parse_quadword(aux1.lval.str, aux3.lval.str, aux5.lval.str, aux7.lval.str, + &aux1.lval.wdatum, &aux1.lval.cword, &quad_tok_flag)) { + if (quad_tok_flag != -1) { + tok1 = get_self_defined_tok(quad_tok_flag); + } else { + tok1 = T_DATUM; + } + } else { + tok1 = T_CWORD; + } + } else { + /* not A.B.C.D, so just process A.B.C */ + push_back_token(tok7, &aux7); + push_back_token(tok6, &aux6); + if (plpgsql_parse_tripword(aux1.lval.str, aux3.lval.str, aux5.lval.str, + &aux1.lval.wdatum, &aux1.lval.cword, &trip_tok_flag)) { + if (trip_tok_flag != -1) { + tok1 = get_self_defined_tok(trip_tok_flag); + } else { + tok1 = T_DATUM; + } + } else { + tok1 = T_CWORD; + } + } } else { - tok1 = T_CWORD; + /* not A.B.C.D, so just process A.B.C */ + push_back_token(tok6, &aux6); + if (plpgsql_parse_tripword(aux1.lval.str, aux3.lval.str, aux5.lval.str, + &aux1.lval.wdatum, &aux1.lval.cword, &trip_tok_flag)) { + if (trip_tok_flag != -1) { + tok1 = get_self_defined_tok(trip_tok_flag); + } else { + tok1 = T_DATUM; + } + } else { + tok1 = T_CWORD; + } } } else { /* not A.B.C, so just process A.B */ @@ -282,7 +352,7 @@ int plpgsql_yylex(void) push_back_token(tok3, &aux3); push_back_token(tok2, &aux2); if (plpgsql_parse_word( - aux1.lval.str, u_sess->plsql_cxt.core_yy->scanbuf + aux1.lloc, &aux1.lval.wdatum, + aux1.lval.str, u_sess->plsql_cxt.curr_compile_context->core_yy->scanbuf + aux1.lloc, &aux1.lval.wdatum, &aux1.lval.word, &tok_flag)) { /* Get self defined token */ if (tok_flag != -1) { @@ -303,7 +373,7 @@ int plpgsql_yylex(void) /* not A.B, so just process A */ push_back_token(tok2, &aux2); if (plpgsql_parse_word( - aux1.lval.str, u_sess->plsql_cxt.core_yy->scanbuf + aux1.lloc, &aux1.lval.wdatum, + aux1.lval.str, u_sess->plsql_cxt.curr_compile_context->core_yy->scanbuf + aux1.lloc, &aux1.lval.wdatum, &aux1.lval.word, &tok_flag)) { /* Get self defined token */ if (tok_flag != -1) { @@ -329,7 +399,52 @@ int plpgsql_yylex(void) plpgsql_yylval = aux1.lval; plpgsql_yylloc = aux1.lloc; - u_sess->plsql_cxt.plpgsql_yyleng = aux1.leng; + u_sess->plsql_cxt.curr_compile_context->plpgsql_yyleng = aux1.leng; + return tok1; +} + +int plpgsql_yylex_single(void) +{ + int tok1; + int loc = 0; + TokenAuxData aux1; + const ScanKeyword* kw = NULL; + /* enum flag for returning specified tokens */ + int tok_flag = -1; + + /* parse cursor attribute, return token and location */ + tok1 = plpgsql_parse_cursor_attribute(&loc); + if (tok1 != -1) { + plpgsql_yylloc = loc; + return tok1; + } + + tok1 = internal_yylex(&aux1); + if (tok1 == IDENT || tok1 == PARAM) { + if (plpgsql_parse_word( + aux1.lval.str, u_sess->plsql_cxt.curr_compile_context->core_yy->scanbuf + aux1.lloc, &aux1.lval.wdatum, + &aux1.lval.word, &tok_flag)) { + /* Get self defined token */ + if (tok_flag != -1) { + tok1 = get_self_defined_tok(tok_flag); + } else { + tok1 = T_DATUM; + } + } else if (!aux1.lval.word.quoted && + (kw = ScanKeywordLookup( + aux1.lval.word.ident, unreserved_keywords, num_unreserved_keywords))) { + aux1.lval.keyword = kw->name; + tok1 = kw->value; + } else { + tok1 = T_WORD; + } + } else { + /* Not a potential plpgsql variable name, just return the data */ + } + + plpgsql_yylval = aux1.lval; + plpgsql_yylloc = aux1.lloc; + u_sess->plsql_cxt.curr_compile_context->plpgsql_yyleng = aux1.leng; return tok1; } @@ -344,15 +459,17 @@ static int internal_yylex(TokenAuxData* auxdata) int token; const char* yytext = NULL; - if (u_sess->plsql_cxt.num_pushbacks > 0) { - u_sess->plsql_cxt.num_pushbacks--; - token = u_sess->plsql_cxt.pushback_token[u_sess->plsql_cxt.num_pushbacks]; - *auxdata = pushback_auxdata[u_sess->plsql_cxt.num_pushbacks]; + Assert(u_sess->plsql_cxt.curr_compile_context); + PLpgSQL_compile_context* curr_compile = u_sess->plsql_cxt.curr_compile_context; + if (curr_compile->num_pushbacks > 0) { + curr_compile->num_pushbacks--; + token = curr_compile->pushback_token[curr_compile->num_pushbacks]; + *auxdata = pushback_auxdata[curr_compile->num_pushbacks]; } else { - token = core_yylex(&auxdata->lval.core_yystype, &auxdata->lloc, u_sess->plsql_cxt.yyscanner); + token = core_yylex(&auxdata->lval.core_yystype, &auxdata->lloc, curr_compile->yyscanner); /* remember the length of yytext before it gets changed */ - yytext = u_sess->plsql_cxt.core_yy->scanbuf + auxdata->lloc; + yytext = curr_compile->core_yy->scanbuf + auxdata->lloc; auxdata->leng = strlen(yytext); /* Check for << >> and #, which the core considers operators */ @@ -378,17 +495,19 @@ static int internal_yylex(TokenAuxData* auxdata) */ static void push_back_token(int token, TokenAuxData* auxdata) { - if (u_sess->plsql_cxt.num_pushbacks >= MAX_PUSHBACKS) { + Assert(u_sess->plsql_cxt.curr_compile_context); + PLpgSQL_compile_context* curr_compile = u_sess->plsql_cxt.curr_compile_context; + if (curr_compile->num_pushbacks >= MAX_PUSHBACKS) { ereport(ERROR, (errmodule(MOD_PLSQL), errcode(ERRCODE_INVALID_OPTION), errmsg("too many tokens %d pushed back, max push back token is: %d", - u_sess->plsql_cxt.num_pushbacks, + curr_compile->num_pushbacks, MAX_PUSHBACKS))); } - u_sess->plsql_cxt.pushback_token[u_sess->plsql_cxt.num_pushbacks] = token; - pushback_auxdata[u_sess->plsql_cxt.num_pushbacks] = *auxdata; - u_sess->plsql_cxt.num_pushbacks++; + curr_compile->pushback_token[curr_compile->num_pushbacks] = token; + pushback_auxdata[curr_compile->num_pushbacks] = *auxdata; + curr_compile->num_pushbacks++; } /* @@ -403,7 +522,7 @@ void plpgsql_push_back_token(int token) auxdata.lval = plpgsql_yylval; auxdata.lloc = plpgsql_yylloc; - auxdata.leng = u_sess->plsql_cxt.plpgsql_yyleng; + auxdata.leng = u_sess->plsql_cxt.curr_compile_context->plpgsql_yyleng; push_back_token(token, &auxdata); } @@ -414,7 +533,50 @@ void plpgsql_push_back_token(int token) void plpgsql_append_source_text(StringInfo buf, int startlocation, int endlocation) { AssertEreport(startlocation <= endlocation, MOD_PLSQL, "start should be less or equal end."); - appendBinaryStringInfo(buf, u_sess->plsql_cxt.scanorig + startlocation, endlocation - startlocation); + appendBinaryStringInfo(buf, u_sess->plsql_cxt.curr_compile_context->scanorig + startlocation, + endlocation - startlocation); +} + +/* + * Append array type name after each array element. + */ +void plpgsql_append_object_typename(StringInfo buf, PLpgSQL_type *var_type) +{ + errno_t ret; + char* typcast = "::"; + appendBinaryStringInfo(buf, typcast, 2); + + int len = strlen(var_type->typname) + strlen(var_type->typnamespace) + LENGTH_OF_DOT_AND_STR_END; + char* typname = (char*)palloc(len); + ret = strcpy_s(typname, len, var_type->typnamespace); + securec_check(ret, "\0", "\0"); + ret = strcat_s(typname, len, ".\""); + securec_check(ret, "\0", "\0"); + ret = strcat_s(typname, len, var_type->typname); + securec_check(ret, "\0", "\0"); + ret = strcat_s(typname, len, "\""); + securec_check(ret, "\0", "\0"); + appendBinaryStringInfo(buf, typname, strlen(typname)); + pfree_ext(typname); +} + +/* + * Replace all identified array bounds(usually parentheses) with brackets. + */ +void plpgsql_process_stmt_array(StringInfo buf, List* bracket_loc) +{ + ListCell* lc = NULL; + if (bracket_loc == NULL) { + return; + } + /* brackets always comes in pairs */ + AssertEreport(list_length(bracket_loc) % 2 == 0, MOD_PLSQL, "statement contains mismatched parentheses."); + int counter = 1; + int divider = list_length(bracket_loc) / 2; + foreach(lc, bracket_loc) { + buf->data[lfirst_int(lc)] = (counter <= divider) ? '[' : ']'; + counter++; + } } /* @@ -454,23 +616,23 @@ void plpgsql_peek2(int* tok1_p, int* tok2_p, int* tok1_loc, int* tok2_loc) * is a dummy (always 0, in fact). * * Note that this can only be used for messages emitted during initial - * parsing of a plpgsql function, since it requires the u_sess->plsql_cxt.scanorig string + * parsing of a plpgsql function, since it requires the curr_compile->scanorig string * to still be available. */ int plpgsql_scanner_errposition(int location) { int pos; - if (location < 0 || u_sess->plsql_cxt.scanorig == NULL) { + if (location < 0 || u_sess->plsql_cxt.curr_compile_context->scanorig == NULL) { return 0; /* no-op if location is unknown */ } /* Convert byte offset to character number */ - pos = pg_mbstrlen_with_len(u_sess->plsql_cxt.scanorig, location) + 1; + pos = pg_mbstrlen_with_len(u_sess->plsql_cxt.curr_compile_context->scanorig, location) + 1; /* And pass it to the ereport mechanism */ (void)internalerrposition(pos); /* Also pass the function body string */ - return internalerrquery(u_sess->plsql_cxt.scanorig); + return internalerrquery(u_sess->plsql_cxt.curr_compile_context->scanorig); } /* @@ -484,12 +646,28 @@ int plpgsql_scanner_errposition(int location) * Beware of using yyerror for other purposes, as the cursor position might * be misleading! */ -void plpgsql_yyerror(const char* message) +void plpgsql_yyerror(const char* message, bool isError) { - char* yytext = u_sess->plsql_cxt.core_yy->scanbuf + plpgsql_yylloc; + char* yytext = u_sess->plsql_cxt.curr_compile_context->core_yy->scanbuf + plpgsql_yylloc; + int errstate = 0; +#ifndef ENABLE_MULTIPLE_NODES + if (u_sess->attr.attr_common.plsql_show_all_error && !isError) { + errstate = NOTICE; + } else { + errstate = ERROR; + } +#else + errstate = ERROR; +#endif + int lines = 0; + int rc = CompileWhich(); + if (rc != PLPGSQL_COMPILE_NULL) { + lines = GetProcedureLineNumberInPackage(u_sess->plsql_cxt.curr_compile_context->core_yy->scanbuf, plpgsql_yylloc); + addErrorList(message, lines); + } if (*yytext == '\0') { - ereport(ERROR, + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), /* translator: %s is typically the translation of "syntax error" */ errmsg("%s at end of input", _(message)), @@ -501,9 +679,9 @@ void plpgsql_yyerror(const char* message) * only the single token here. This modifies scanbuf but we no longer * care about that. */ - yytext[u_sess->plsql_cxt.plpgsql_yyleng] = '\0'; + yytext[u_sess->plsql_cxt.curr_compile_context->plpgsql_yyleng] = '\0'; - ereport(ERROR, + ereport(errstate, (errcode(ERRCODE_SYNTAX_ERROR), /* translator: first %s is typically the translation of "syntax error" */ errmsg("%s at or near \"%s\"", _(message), yytext), @@ -522,39 +700,43 @@ void plpgsql_yyerror(const char* message) int plpgsql_location_to_lineno(int location) { const char* loc = NULL; + Assert(u_sess->plsql_cxt.curr_compile_context); + PLpgSQL_compile_context* curr_compile = u_sess->plsql_cxt.curr_compile_context; - if (location < 0 || u_sess->plsql_cxt.scanorig == NULL) { + if (location < 0 || curr_compile->scanorig == NULL) { return 0; /* garbage in, garbage out */ } - loc = u_sess->plsql_cxt.scanorig + location; + loc = curr_compile->scanorig + location; /* be correct, but not fast, if input location goes backwards */ - if (loc < u_sess->plsql_cxt.cur_line_start) { + if (loc < curr_compile->cur_line_start) { location_lineno_init(); } - while (u_sess->plsql_cxt.cur_line_end != NULL && loc > u_sess->plsql_cxt.cur_line_end) { - u_sess->plsql_cxt.cur_line_start = u_sess->plsql_cxt.cur_line_end + 1; - u_sess->plsql_cxt.cur_line_num++; - u_sess->plsql_cxt.cur_line_end = strchr(u_sess->plsql_cxt.cur_line_start, '\n'); + while (curr_compile->cur_line_end != NULL && loc > curr_compile->cur_line_end) { + curr_compile->cur_line_start = curr_compile->cur_line_end + 1; + u_sess->plsql_cxt.curr_compile_context->cur_line_num++; + curr_compile->cur_line_end = strchr(curr_compile->cur_line_start, '\n'); } - return u_sess->plsql_cxt.cur_line_num; + return u_sess->plsql_cxt.curr_compile_context->cur_line_num; } char* plpgsql_get_curline_query() { int len = 0; - if (u_sess->plsql_cxt.cur_line_end == NULL) { + Assert(u_sess->plsql_cxt.curr_compile_context); + PLpgSQL_compile_context* curr_compile = u_sess->plsql_cxt.curr_compile_context; + if (curr_compile->cur_line_end == NULL) { /* no '\n' in whole procedure source text */ - len = strlen(u_sess->plsql_cxt.cur_line_start); + len = strlen(curr_compile->cur_line_start); } else { - len = u_sess->plsql_cxt.cur_line_end - u_sess->plsql_cxt.cur_line_start; + len = curr_compile->cur_line_end - curr_compile->cur_line_start; } char* curQuery = NULL; if (len > 0) { curQuery = (char*)palloc0(sizeof(char) * (len + 1)); - int rc = memcpy_s(curQuery, len + 1, u_sess->plsql_cxt.cur_line_start, len); + int rc = memcpy_s(curQuery, len + 1, curr_compile->cur_line_start, len); securec_check(rc, "\0", "\0"); } return curQuery; @@ -563,16 +745,19 @@ char* plpgsql_get_curline_query() /* initialize or reset the state for plpgsql_location_to_lineno */ static void location_lineno_init(void) { - u_sess->plsql_cxt.cur_line_start = u_sess->plsql_cxt.scanorig; - u_sess->plsql_cxt.cur_line_num = 1; + Assert(u_sess->plsql_cxt.curr_compile_context); + PLpgSQL_compile_context* curr_compile = u_sess->plsql_cxt.curr_compile_context; - u_sess->plsql_cxt.cur_line_end = strchr(u_sess->plsql_cxt.cur_line_start, '\n'); + curr_compile->cur_line_start = curr_compile->scanorig; + curr_compile->cur_line_num = 1; + + curr_compile->cur_line_end = strchr(curr_compile->cur_line_start, '\n'); } /* return the most recently computed lineno */ int plpgsql_latest_lineno(void) { - return u_sess->plsql_cxt.cur_line_num; + return u_sess->plsql_cxt.curr_compile_context->cur_line_num; } /* @@ -584,22 +769,26 @@ int plpgsql_latest_lineno(void) */ void plpgsql_scanner_init(const char* str) { + Assert(u_sess->plsql_cxt.curr_compile_context); + PLpgSQL_compile_context* curr_compile = u_sess->plsql_cxt.curr_compile_context; /* Start up the core scanner */ - u_sess->plsql_cxt.yyscanner = - scanner_init(str, u_sess->plsql_cxt.core_yy, reserved_keywords, num_reserved_keywords); + curr_compile->yyscanner = + scanner_init(str, curr_compile->core_yy, reserved_keywords, num_reserved_keywords); + curr_compile->core_yy->isPlpgsqlKeyWord = true; + curr_compile->core_yy->plKeywordValue = &keywordsValue; /* - * u_sess->plsql_cxt.scanorig points to the original string, which unlike the scanner's + * curr_compile->scanorig points to the original string, which unlike the scanner's * scanbuf won't be modified on-the-fly by flex. Notice that although * yytext points into scanbuf, we rely on being able to apply locations - * (offsets from string start) to u_sess->plsql_cxt.scanorig as well. + * (offsets from string start) to curr_compile->scanorig as well. */ - u_sess->plsql_cxt.scanorig = str; + curr_compile->scanorig = str; /* Other setup */ - u_sess->plsql_cxt.plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_NORMAL; + curr_compile->plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_NORMAL; - u_sess->plsql_cxt.num_pushbacks = 0; + curr_compile->num_pushbacks = 0; location_lineno_init(); /* @@ -608,7 +797,7 @@ void plpgsql_scanner_init(const char* str) * in case of execution error-out, it better to help avoid access to in garbage * pointer */ - u_sess->plsql_cxt.goto_labels = NIL; + curr_compile->goto_labels = NIL; } /* @@ -616,11 +805,13 @@ void plpgsql_scanner_init(const char* str) */ void plpgsql_scanner_finish(void) { + Assert(u_sess->plsql_cxt.curr_compile_context); + PLpgSQL_compile_context* curr_compile = u_sess->plsql_cxt.curr_compile_context; /* release storage */ - scanner_finish(u_sess->plsql_cxt.yyscanner); + scanner_finish(curr_compile->yyscanner); /* avoid leaving any dangling pointers */ - u_sess->plsql_cxt.yyscanner = NULL; - u_sess->plsql_cxt.scanorig = NULL; + curr_compile->yyscanner = NULL; + curr_compile->scanorig = NULL; } /* @@ -642,10 +833,26 @@ static int get_self_defined_tok(int tok_flag) return T_ARRAY_COUNT; case PLPGSQL_TOK_VARRAY_EXTEND: return T_ARRAY_EXTEND; + case PLPGSQL_TOK_VARRAY_EXISTS: + return T_ARRAY_EXISTS; + case PLPGSQL_TOK_VARRAY_PRIOR: + return T_ARRAY_PRIOR; + case PLPGSQL_TOK_VARRAY_NEXT: + return T_ARRAY_NEXT; + case PLPGSQL_TOK_VARRAY_DELETE: + return T_ARRAY_DELETE; + case PLPGSQL_TOK_VARRAY_TRIM: + return T_ARRAY_TRIM; case PLPGSQL_TOK_VARRAY_VAR: return T_VARRAY_VAR; case PLPGSQL_TOK_RECORD: return T_RECORD; + case PLPGSQL_TOK_TABLE: + return T_TABLE; + case PLPGSQL_TOK_TABLE_VAR: + return T_TABLE_VAR; + case PLPGSQL_TOK_PACKAGE_VARIABLE: + return T_PACKAGE_VARIABLE; default: ereport(ERROR, (errmodule(MOD_PLSQL), @@ -668,11 +875,16 @@ static int plpgsql_parse_cursor_attribute(int* loc) TokenAuxData aux1; TokenAuxData aux2; TokenAuxData aux3; + TokenAuxData aux4; + TokenAuxData aux5; int tok1; int tok2; int tok3; + int tok4; + int tok5; int token = -1; PLpgSQL_nsitem* ns = NULL; + bool pkgCursor = false; if (u_sess->parser_cxt.in_package_function_compile) { return token; @@ -684,11 +896,14 @@ static int plpgsql_parse_cursor_attribute(int* loc) return token; } tok2 = internal_yylex(&aux2); - if (tok2 != '%') { + if (tok2 != '%' && tok2 != '.') { push_back_token(tok2, &aux2); push_back_token(tok1, &aux1); return token; } + if (tok2 == '.') { + pkgCursor = true; + } tok3 = internal_yylex(&aux3); if (tok3 != IDENT) { push_back_token(tok3, &aux3); @@ -696,35 +911,75 @@ static int plpgsql_parse_cursor_attribute(int* loc) push_back_token(tok1, &aux1); return token; } - - /* match implicit cursor attributes */ - if (strncasecmp(aux1.lval.str, "SQL", 3) == 0) { - if (strncasecmp(aux3.lval.str, "ISOPEN", 6) == 0) { - token = T_SQL_ISOPEN; + if (pkgCursor) { + tok4 = internal_yylex(&aux4); + if (tok4 != '%') { + push_back_token(tok4, &aux4); + push_back_token(tok3, &aux3); + push_back_token(tok2, &aux2); + push_back_token(tok1, &aux1); + return token; } - if (strncasecmp(aux3.lval.str, "FOUND", 5) == 0) { - token = T_SQL_FOUND; - } - if (strncasecmp(aux3.lval.str, "NOTFOUND", 8) == 0) { - token = T_SQL_NOTFOUND; - } - if (strncasecmp(aux3.lval.str, "ROWCOUNT", 8) == 0) { - token = T_SQL_ROWCOUNT; + tok5 = internal_yylex(&aux5); + if (tok5 != IDENT) { + push_back_token(tok5, &aux5); + push_back_token(tok4, &aux4); + push_back_token(tok3, &aux3); + push_back_token(tok2, &aux2); + push_back_token(tok1, &aux1); + return token; } } - /* match explicit cursor attributes */ - if (strncasecmp(aux1.lval.str, "SQL", 3) != 0) { - if (strncasecmp(aux3.lval.str, "ISOPEN", 6) == 0) { - token = T_CURSOR_ISOPEN; + + if (!pkgCursor) { + /* match implicit cursor attributes */ + if (strncasecmp(aux1.lval.str, "SQL", 3) == 0) { + if (strncasecmp(aux3.lval.str, "ISOPEN", 6) == 0) { + token = T_SQL_ISOPEN; + } + if (strncasecmp(aux3.lval.str, "FOUND", 5) == 0) { + token = T_SQL_FOUND; + } + if (strncasecmp(aux3.lval.str, "NOTFOUND", 8) == 0) { + token = T_SQL_NOTFOUND; + } + if (strncasecmp(aux3.lval.str, "ROWCOUNT", 8) == 0) { + token = T_SQL_ROWCOUNT; + } + if (strncasecmp(aux3.lval.str, "BULK_EXCEPTIONS", strlen("BULK_EXCEPTIONS")) == 0) { + token = T_SQL_BULK_EXCEPTIONS; + } } - if (strncasecmp(aux3.lval.str, "FOUND", 5) == 0) { - token = T_CURSOR_FOUND; + /* match explicit cursor attributes */ + if (strncasecmp(aux1.lval.str, "SQL", 3) != 0) { + if (strncasecmp(aux3.lval.str, "ISOPEN", 6) == 0) { + token = T_CURSOR_ISOPEN; + } + if (strncasecmp(aux3.lval.str, "FOUND", 5) == 0) { + token = T_CURSOR_FOUND; + } + if (strncasecmp(aux3.lval.str, "NOTFOUND", 8) == 0) { + token = T_CURSOR_NOTFOUND; + } + if (strncasecmp(aux3.lval.str, "ROWCOUNT", 8) == 0) { + token = T_CURSOR_ROWCOUNT; + } } - if (strncasecmp(aux3.lval.str, "NOTFOUND", 8) == 0) { - token = T_CURSOR_NOTFOUND; - } - if (strncasecmp(aux3.lval.str, "ROWCOUNT", 8) == 0) { - token = T_CURSOR_ROWCOUNT; + } else { + /* match package cursor attributes */ + if (strncasecmp(aux3.lval.str, "SQL", 3) != 0) { + if (strncasecmp(aux5.lval.str, "ISOPEN", 6) == 0) { + token = T_PACKAGE_CURSOR_ISOPEN; + } + if (strncasecmp(aux5.lval.str, "FOUND", 5) == 0) { + token = T_PACKAGE_CURSOR_FOUND; + } + if (strncasecmp(aux5.lval.str, "NOTFOUND", 8) == 0) { + token = T_PACKAGE_CURSOR_NOTFOUND; + } + if (strncasecmp(aux5.lval.str, "ROWCOUNT", 8) == 0) { + token = T_PACKAGE_CURSOR_ROWCOUNT; + } } } switch (token) { @@ -735,6 +990,10 @@ static int plpgsql_parse_cursor_attribute(int* loc) /* get the cursor attribute location */ *loc = aux1.lloc; break; + case T_SQL_BULK_EXCEPTIONS: + push_back_token(token, &aux3); + return -1; + break; case T_CURSOR_ISOPEN: case T_CURSOR_FOUND: case T_CURSOR_NOTFOUND: @@ -742,7 +1001,7 @@ static int plpgsql_parse_cursor_attribute(int* loc) /* check the valid of cursor variable */ ns = plpgsql_ns_lookup(plpgsql_ns_top(), false, aux1.lval.str, NULL, NULL, NULL); if (ns != NULL && ns->itemtype == PLPGSQL_NSTYPE_VAR) { - PLpgSQL_var* var = (PLpgSQL_var*)u_sess->plsql_cxt.plpgsql_Datums[ns->itemno]; + PLpgSQL_var* var = (PLpgSQL_var*)u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[ns->itemno]; if (!(var != NULL && var->datatype && var->datatype->typoid == REFCURSOROID)) { ereport(ERROR, (errmodule(MOD_PLSQL), @@ -757,12 +1016,43 @@ static int plpgsql_parse_cursor_attribute(int* loc) errmsg("undefined cursor: %s", aux1.lval.str))); } + /* get the cursor attribute location */ + *loc = aux1.lloc; + plpgsql_yylval = aux1.lval; + break; + case T_PACKAGE_CURSOR_ISOPEN: + case T_PACKAGE_CURSOR_FOUND: + case T_PACKAGE_CURSOR_NOTFOUND: + case T_PACKAGE_CURSOR_ROWCOUNT: + /* check the valid of cursor variable */ + ns = plpgsql_ns_lookup(plpgsql_ns_top(), false, aux1.lval.str, aux3.lval.str, NULL, NULL); + if (ns != NULL && ns->itemtype == PLPGSQL_NSTYPE_VAR) { + PLpgSQL_var* var = (PLpgSQL_var*)u_sess->plsql_cxt.curr_compile_context->plpgsql_Datums[ns->itemno]; + if (!(var != NULL && var->datatype && var->datatype->typoid == REFCURSOROID)) { + ereport(ERROR, + (errmodule(MOD_PLSQL), + errcode(ERRCODE_INVALID_CURSOR_DEFINITION), + errmsg("%s.%s isn't a cursor", aux1.lval.str, aux3.lval.str))); + } + aux1.lval.wdatum.ident = aux1.lval.str; + aux1.lval.wdatum.dno = var->dno; + } else { + ereport(ERROR, + (errmodule(MOD_PLSQL), + errcode(ERRCODE_INVALID_CURSOR_DEFINITION), + errmsg("undefined cursor: %s.%s", aux1.lval.str, aux3.lval.str))); + } + /* get the cursor attribute location */ *loc = aux1.lloc; plpgsql_yylval = aux1.lval; break; default: /* not match, push back tokens which were get before */ + if (pkgCursor) { + push_back_token(tok5, &aux5); + push_back_token(tok4, &aux4); + } push_back_token(tok3, &aux3); push_back_token(tok2, &aux2); push_back_token(tok1, &aux1); @@ -820,3 +1110,143 @@ bool plpgsql_is_token_match(int token) plpgsql_push_back_token(tok); return false; } + +/* + * a convenient method to see if the next token is keyword + */ +bool plpgsql_is_token_keyword(int token) +{ +#define MIN(A, B) ((B) < (A) ? (B) : (A)) +#define MAX(A, B) ((B) > (A) ? (B) : (A)) + if ((token >= MIN(reserved_keywords[0].value, unreserved_keywords[0].value)) && + (token <= MAX(reserved_keywords[num_reserved_keywords - 1].value, + unreserved_keywords[num_unreserved_keywords - 1].value))) { + return true; + } else { + return false; + } +} + +static PLpgSQL_package* compilePackageSpec(Oid pkgOid) +{ + int oldCompileStatus = getCompileStatus(); + if (u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package != NULL || + u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile != NULL) { + CompileStatusSwtichTo(COMPILIE_PKG); + } else { + ereport(ERROR, (errmodule(MOD_PLSQL), errcode(ERRCODE_UNRECOGNIZED_NODE_TYPE), + errmsg("nest compile package can't be null."))); + } + TokenAuxData temp_pushback_auxdata[MAX_PUSHBACKS]; + for (int i = 0; i < MAX_PUSHBACKS; i++) { + temp_pushback_auxdata[i] = pushback_auxdata[i]; + } + YYSTYPE temp_lval = plpgsql_yylval; + YYLTYPE temp_lloc = plpgsql_yylloc; + /* compile package spec */ + PLpgSQL_package* pkg = plpgsql_package_validator(pkgOid, true, false); + CompileStatusSwtichTo(oldCompileStatus); + for (int i = 0; i < MAX_PUSHBACKS; i++) { + pushback_auxdata[i] = temp_pushback_auxdata[i]; + } + plpgsql_yylval = temp_lval; + plpgsql_yylloc = temp_lloc; + return pkg; +} + +PLpgSQL_datum* GetPackageDatum(List* name, bool* isSamePackage) +{ + char* objname = NULL; + char* pkgname = NULL; + char* schemaname = NULL; + PLpgSQL_package* pkg = NULL; + Oid pkgOid = InvalidOid; + Oid namespaceId = InvalidOid; + + DeconstructQualifiedName(name, &schemaname, &objname, &pkgname); + if (schemaname != NULL) { + namespaceId = LookupNamespaceNoError(schemaname); + } + if (pkgname == NULL) { + return NULL; + } + /* namespace and pkgname has checked. */ + pkgOid = PackageNameGetOid(pkgname, namespaceId); + + PLpgSQL_compile_context* curr_compile = u_sess->plsql_cxt.curr_compile_context; + if (curr_compile->plpgsql_curr_compile_package != NULL) { + Oid currentCompilePkgOid = curr_compile->plpgsql_curr_compile_package->pkg_oid; + if (currentCompilePkgOid == pkgOid) { + pkg = curr_compile->plpgsql_curr_compile_package; + if (isSamePackage != NULL) { + *isSamePackage = true; + } + } + } + + if (!OidIsValid(pkgOid)) { + return NULL; + } + + if (u_sess->plsql_cxt.need_pkg_dependencies) { + u_sess->plsql_cxt.pkg_dependencies = + list_append_unique_oid(u_sess->plsql_cxt.pkg_dependencies, pkgOid); + } + + if (pkg == NULL) { + MemoryContext temp = MemoryContextSwitchTo(curr_compile->compile_tmp_cxt); + pkg = compilePackageSpec(pkgOid); + MemoryContextSwitchTo(temp); + } + + struct PLpgSQL_nsitem* nse = plpgsql_ns_lookup(pkg->public_ns, false, pkgname, objname, NULL, NULL); + if (nse == NULL) { + return NULL; + } + + if (isSamePackage != NULL && *isSamePackage) { + return pkg->datums[nse->itemno]; + } + + /* record dependcy of func or package */ + if (curr_compile->plpgsql_curr_compile == NULL) { + MemoryContext temp = MemoryContextSwitchTo(curr_compile->plpgsql_curr_compile_package->pkg_cxt); + record_pkg_function_dependency(pkg, &curr_compile->plpgsql_curr_compile_package->invalItems, InvalidOid, pkgOid); + (void)MemoryContextSwitchTo(temp); + } else { + MemoryContext temp = MemoryContextSwitchTo(curr_compile->plpgsql_curr_compile->fn_cxt); + record_pkg_function_dependency(pkg, &curr_compile->plpgsql_curr_compile->invalItems, InvalidOid, pkgOid); + (void)MemoryContextSwitchTo(temp); + } + + return pkg->datums[nse->itemno]; +} + +bool pushed_bulk_exception() +{ + return plpgsql_yylval.wdatum.ident != NULL && + strncasecmp(plpgsql_yylval.wdatum.ident, "BULK_EXCEPTIONS", strlen("BULK_EXCEPTIONS")) == 0; +} + +/* Check if save exception statement is followed by DML */ +void CheckSaveExceptionsDML(int errstate) +{ + TokenAuxData aux1; + TokenAuxData aux2; + TokenAuxData aux3; + int tok1 = internal_yylex(&aux1); + int tok2 = internal_yylex(&aux2); + int tok3 = internal_yylex(&aux3); + /* check merge statement individually since internal_yylex itself wouldn't resolve unreserved keyword */ + if (tok3 != K_INSERT && tok3 != K_UPDATE && tok3 != K_DELETE && tok3 != K_SELECT && + strcmp(aux3.lval.str, "merge")) { + const char* message = "FORALL must follow DML statement."; + InsertErrorMessage(message, plpgsql_yylloc); + ereport(errstate, + (errcode(ERRCODE_FORALL_NEED_DML), + errmsg("FORALL must follow DML statement."))); + } + push_back_token(tok3, &aux3); + push_back_token(tok2, &aux2); + push_back_token(tok1, &aux1); +} diff --git a/src/common/pl/plpgsql/src/pl_sql_validator.cpp b/src/common/pl/plpgsql/src/pl_sql_validator.cpp index addf5d8bb..a2960d04d 100755 --- a/src/common/pl/plpgsql/src/pl_sql_validator.cpp +++ b/src/common/pl/plpgsql/src/pl_sql_validator.cpp @@ -127,6 +127,7 @@ void pl_validate_function_sql(PLpgSQL_function* func, bool is_replace) { old_owner = create_temp_resourceowner("pl_validator"); int rc = 0; + SPI_STACK_LOG("connect", NULL, NULL); if ((rc = SPI_connect()) != SPI_OK_CONNECT) { /* rethrow for clean up */ PG_RE_THROW(); @@ -182,6 +183,7 @@ void pl_validate_function_sql(PLpgSQL_function* func, bool is_replace) if (is_rethrow_exeption) { PG_RE_THROW(); } + SPI_STACK_LOG("end", NULL, plan); if (plan) { SPI_freeplan(plan); } @@ -195,6 +197,7 @@ void pl_validate_function_sql(PLpgSQL_function* func, bool is_replace) PG_END_TRY(); func->pre_parse_trig = stored_prepase_trig; + SPI_STACK_LOG("finish", NULL, NULL); if (SPI_finish() == SPI_ERROR_UNCONNECTED) { SPICleanup(); } diff --git a/src/common/pl/plpython/plpy_plpymodule.cpp b/src/common/pl/plpython/plpy_plpymodule.cpp index 958937b8c..110fc4d5f 100644 --- a/src/common/pl/plpython/plpy_plpymodule.cpp +++ b/src/common/pl/plpython/plpy_plpymodule.cpp @@ -1,4 +1,6 @@ /* + * Portions Copyright (c) 2021, openGauss Contributors + * * the plpy module * * src/common/pl/plpython/plpy_plpymodule.cpp @@ -246,7 +248,7 @@ static void PLy_generate_spi_exceptions(PyObject* mod, PyObject* base) PLy_elog(ERROR, "could not generate SPI exceptions"); } - sqlstate = PyString_FromString(unpack_sql_state(exception_map[i].sqlstate)); + sqlstate = PyString_FromString(plpgsql_get_sqlstate(exception_map[i].sqlstate)); if (sqlstate == NULL) { PLy_elog(ERROR, "could not generate SPI exceptions"); } diff --git a/src/common/port/cipher.cpp b/src/common/port/cipher.cpp index fd04012b4..635043b6c 100644 --- a/src/common/port/cipher.cpp +++ b/src/common/port/cipher.cpp @@ -343,7 +343,7 @@ static bool ReadKeyContentFromFile(KeyMode mode, const char* cipherkeyfile, cons /* Note: Data Source use initdb key file by default (datasource.key.* not given) */ global_rand_file = &g_rand_file_content[INITDB_NOCLOUDOBS_TYPE]; global_cipher_file = &g_cipher_file_content[INITDB_NOCLOUDOBS_TYPE]; - } else if (mode == SOURCE_MODE) { + } else if (mode == SOURCE_MODE || mode == HADR_MODE) { /* * For Data Source: * read key from file (datasource.key.*): we do not cache these keys here @@ -464,8 +464,9 @@ static bool WriteContentToFile(const char* filename, const void* content, size_t /* Judge if the KeyMode is legal */ static bool isModeExists(KeyMode mode) { - if (mode != SERVER_MODE && mode != CLIENT_MODE && mode != USER_MAPPING_MODE && - mode != OBS_MODE && mode != SOURCE_MODE && mode != GDS_MODE && mode != SUBSCRIPTION_MODE) { + if (mode != SERVER_MODE && mode != CLIENT_MODE && mode != HADR_MODE && + mode != OBS_MODE && mode != SOURCE_MODE && mode != GDS_MODE && + mode != USER_MAPPING_MODE && mode != SUBSCRIPTION_MODE) { #ifndef ENABLE_LLT (void)fprintf(stderr, _("AK/SK encrypt/decrypt encounters invalid key mode.\n")); return false; @@ -608,11 +609,11 @@ static bool gen_cipher_file(KeyMode mode, /* SERVER_MODE or CLIENT_MODE or OBS_M ret = chmod(cipherkeyfile, 0600); #endif if (ret != 0) { +#ifndef ENABLE_LLT (void)fprintf( stderr, _("could not set permissions of file \"%s\": %s\n"), cipherkeyfile, gs_strerror(errno)); - ret = memset_s(ciphertext, CIPHER_LEN, 0, CIPHER_LEN); - securec_check_c(ret, "\0", "\0"); - return false; + goto RETURNFALSE; +#endif } } @@ -851,6 +852,13 @@ void decode_cipher_files( ret = snprintf_s(randfile, MAXPGPATH, MAXPGPATH - 1, "%s/%s%s", datadir, user_name, RAN_KEY_FILE); securec_check_ss_c(ret, "\0", "\0"); } + } else if (mode == HADR_MODE) { + ret = snprintf_s(cipherkeyfile, MAXPGPATH, MAXPGPATH - 1, "%s/cipher/%s/server.key.cipher", + user_name, datadir); + securec_check_ss_c(ret, "\0", "\0"); + ret = snprintf_s(randfile, MAXPGPATH, MAXPGPATH - 1, "%s/rand/%s/server.key.rand", + user_name, datadir); + securec_check_ss_c(ret, "\0", "\0"); } /* firstly we get key from memory, and then try to read from file. */ diff --git a/src/common/port/gs_thread.cpp b/src/common/port/gs_thread.cpp index b64505af7..574a544b5 100644 --- a/src/common/port/gs_thread.cpp +++ b/src/common/port/gs_thread.cpp @@ -455,7 +455,9 @@ void gs_thread_exit(int code) CloseGTM(); - CloseClientSocket(u_sess, true); + if (exitCode != STATUS_ERROR) { + CloseClientSocket(u_sess, true); + } gs_poll_close(); diff --git a/src/gausskernel/CMakeLists.txt b/src/gausskernel/CMakeLists.txt index fbc4e2e61..949d1005b 100755 --- a/src/gausskernel/CMakeLists.txt +++ b/src/gausskernel/CMakeLists.txt @@ -76,6 +76,7 @@ set(gaussdb_objects $ $ $ + $ $ $ $ @@ -99,6 +100,7 @@ set(gaussdb_objects $ $ $ + $ $ $ $ @@ -171,6 +173,7 @@ list(APPEND gaussdb_objects $ $ $ + $ $ $ $ @@ -203,6 +206,8 @@ list(APPEND gaussdb_objects $ $ $ + $ + $ $ $ $ @@ -260,12 +265,7 @@ if(${ENABLE_MEMORY_CHECK}) list(APPEND gaussdb_LINK_LIBS ${MEMCHECK_LIBS}) list(APPEND gaussdb_LINK_DIRS ${MEMCHECK_LINK_DIRECTORIES}) endif() -list(APPEND gaussdb_LINK_LIBS -lz -lminiunz -leSDKOBS -leSDKLogAPI -lpcre -liconv -lnghttp2 -llog4cpp -lcurl -llz4 -lcjson -l${JEMALLOC_LIB_NAME} -lcgroup -lorc -lparquet -larrow -lthrift -l${SNAPPY_LIB_NAME} -lzstd -l${PROTOBUF_LIB_NAME} -lcom_err_gauss -lgssapi_krb5_gauss -lkrb5_gauss -lgssrpc_gauss -lk5crypto_gauss -lkadm5clnt_mit -lkadm5srv_mit -lkdb5 -lkrb5support_gauss -lstdc++) -if("${ENABLE_UT}" STREQUAL "ON") - list(APPEND gaussdb_LINK_LIBS -lboost_thread_pic -lboost_chrono_pic -lboost_system_pic -lboost_atomic_pic -lxml2_pic -laio -lncurses -ltinfo) -else() - list(APPEND gaussdb_LINK_LIBS -lboost_thread -lboost_chrono -lboost_system -lboost_atomic -lxml2 -laio -lncurses -ltinfo) -endif() +list(APPEND gaussdb_LINK_LIBS -lz -lminiunz -leSDKOBS -leSDKLogAPI -lpcre -liconv -lnghttp2 -llog4cpp -lcurl -llz4 -lcjson -l${JEMALLOC_LIB_NAME} -lcgroup -lorc -lparquet -larrow -lthrift -lsnappy -lzstd -lprotobuf -lcom_err_gauss -lgssapi_krb5_gauss -lkrb5_gauss -lgssrpc_gauss -lk5crypto_gauss -lkadm5clnt_mit -lkadm5srv_mit -lkdb5 -lkrb5support_gauss -lstdc++ -lboost_thread -lboost_chrono -lboost_system -lboost_atomic -lxml2 -laio -lncurses -ltinfo) include_directories( ${BOOST_INCLUDE_PATH} diff --git a/src/gausskernel/Makefile b/src/gausskernel/Makefile index 46ecac475..bdfca5dfd 100755 --- a/src/gausskernel/Makefile +++ b/src/gausskernel/Makefile @@ -122,7 +122,7 @@ ifeq ($(SUPPORT_HOTPATCH), yes) LIBS += -ldoprapatch LDFLAGS += -L$(LIBHOTPATCH_LIB_PATH) CXXFLAGS += -I$(LIBHOTPATCH_INCLUDE_PATH) - ifneq ($(findstring $(PLAT_FORM_STR), euleros2.0_sp8_aarch64 euleros2.0_sp9_aarch64 kylin_aarch64),) + ifneq ($(findstring $(PLAT_FORM_STR), euleros2.0_sp8_aarch64 euleros2.0_sp9_aarch64 kylinv10_sp1_aarch64),) ifeq ($(enable_debug), no) HOTPATCH_ATOMIC_LDS = -Wl,-T$(LIBHOTPATCH_TOOL_PATH)/atomic.lds else @@ -628,7 +628,6 @@ endif cp $(LIBOBS_LIB_PATH)/libpcre* '$(DESTDIR)$(libdir)/../temp/' mv $(DESTDIR)$(libdir)/../temp/* '$(DESTDIR)$(libdir)/' cp $(SECUREDYNAMICLIB_HOME)/libsecurec* '$(DESTDIR)$(libdir)/' - cp $(ZSTD_LIB_PATH)/libzstd* '$(DESTDIR)$(libdir)/' cp $(LIBOBS_LIB_PATH)/liblog4* '$(DESTDIR)$(libdir)/' cp $(LIBOBS_LIB_PATH)/libeSDK* '$(DESTDIR)$(libdir)/' cp $(LIBOBS_LIB_PATH)/libxml2* '$(DESTDIR)$(libdir)/' @@ -705,10 +704,10 @@ else ifeq ($(PLAT_FORM_STR), openeuler_x86_64) cp '$(LIBCURL_LIB_PATH)/libcurl.so.4.6.0' '$(DESTDIR)$(libdir)/libcurl.so.4.6.0' else ifeq ($(PLAT_FORM_STR), centos7.6_x86_64) cp '$(LIBCURL_LIB_PATH)/libcurl.so.4.6.0' '$(DESTDIR)$(libdir)/libcurl.so.4.6.0' -else ifeq ($(PLAT_FORM_STR), kylin_aarch64) - cp '$(LIBCURL_LIB_PATH)/libcurl.so.4.6.0' '$(DESTDIR)$(libdir)/libcurl.so.4.6.0' -else ifeq ($(PLAT_FORM_STR), ubuntu18.04_x86_64) +else ifeq ($(PLAT_FORM_STR), kylinv10_sp1_aarch64) cp '$(LIBCURL_LIB_PATH)/libcurl.so.4.6.0' '$(DESTDIR)$(libdir)/libcurl.so.4.6.0' +else ifeq ($(PLAT_FORM_STR), kylinv10_sp1_x86_64_intel) + cp '$(LIBCURL_LIB_PATH)/libcurl.so.4.6.0' '$(DESTDIR)$(libdir)/libcurl.so.4.6.0' else cp '$(LIBCURL_LIB_PATH)/libcurl.so.4.5.0' '$(DESTDIR)$(libdir)/libcurl.so.4.5.0' endif diff --git a/src/gausskernel/bootstrap/bootparse.y b/src/gausskernel/bootstrap/bootparse.y index c6a5013fa..843b131b0 100755 --- a/src/gausskernel/bootstrap/bootparse.y +++ b/src/gausskernel/bootstrap/bootparse.y @@ -34,6 +34,7 @@ #include "catalog/pg_authid.h" #include "catalog/pg_class.h" #include "catalog/pg_proc.h" +#include "catalog/pg_description.h" #include "catalog/pg_namespace.h" #include "catalog/pg_tablespace.h" #include "catalog/toasting.h" @@ -97,7 +98,7 @@ do_end(void) %} %expect 0 -%name-prefix="boot_yy" +%name-prefix "boot_yy" %union { @@ -276,6 +277,9 @@ Boot_CreateStmt: REL_CMPRS_NOT_SUPPORT, NULL, NULL); + if (id == DescriptionRelationId) { + InsertBuiltinFuncDescInBootstrap(); + } ereport(DEBUG4, (errmsg("relation created with OID %u", id))); } do_end(); diff --git a/src/gausskernel/bootstrap/bootscanner.l b/src/gausskernel/bootstrap/bootscanner.l index 91a6c4e03..e1751f37b 100755 --- a/src/gausskernel/bootstrap/bootscanner.l +++ b/src/gausskernel/bootstrap/bootscanner.l @@ -38,7 +38,6 @@ #include "utils/rel.h" /* Not needed now that this file is compiled as part of bootparse. */ -/* #include "bootparse.h" */ /* Avoid exit() on fatal scanner errors (a bit ugly -- see yy_fatal_error) */ diff --git a/src/gausskernel/bootstrap/bootstrap.cpp b/src/gausskernel/bootstrap/bootstrap.cpp index 622b6b635..9e678ae81 100755 --- a/src/gausskernel/bootstrap/bootstrap.cpp +++ b/src/gausskernel/bootstrap/bootstrap.cpp @@ -248,7 +248,7 @@ void BootStrapProcessMain(int argc, char* argv[]) t_thrd.bootstrap_cxt.MyAuxProcType = CheckerProcess; initOptParseContext(&optCtxt); - while ((flag = getopt_r(argc, argv, "B:c:d:D:Fr:x:-:", &optCtxt)) != -1) { + while ((flag = getopt_r(argc, argv, "B:c:d:D:Fr:x:g:-:", &optCtxt)) != -1) { switch (flag) { case 'B': SetConfigOption("shared_buffers", optCtxt.optarg, PGC_POSTMASTER, PGC_S_ARGV); @@ -270,6 +270,9 @@ void BootStrapProcessMain(int argc, char* argv[]) case 'F': SetConfigOption("fsync", "false", PGC_POSTMASTER, PGC_S_ARGV); break; + case 'g': + SetConfigOption("xlog_file_path", optCtxt.optarg, PGC_POSTMASTER, PGC_S_ARGV); + break; case 'r': errorno = strcpy_s(t_thrd.proc_cxt.OutputFileName, MAXPGPATH, optCtxt.optarg); securec_check(errorno, "\0", "\0"); @@ -337,6 +340,9 @@ void BootStrapProcessMain(int argc, char* argv[]) pgstat_initialize(); pgstat_bestart(); + if (!IsUnderPostmaster) { + ShareStorageInit(); + } /* * XLOG operations */ diff --git a/src/gausskernel/cbb/communication/comm_proxy/comm_buffer.cpp b/src/gausskernel/cbb/communication/comm_proxy/comm_buffer.cpp index 89a6d8377..48f3a1a21 100644 --- a/src/gausskernel/cbb/communication/comm_proxy/comm_buffer.cpp +++ b/src/gausskernel/cbb/communication/comm_proxy/comm_buffer.cpp @@ -42,11 +42,7 @@ CommRingBuffer::CommRingBuffer() CommRingBuffer::~CommRingBuffer() { - Assert(m_buffer->m_comm_buffer == NULL); Assert(m_buffer == NULL); - - pthread_mutex_destroy(&m_mutex); - pthread_cond_destroy(&m_cv); } void CommRingBuffer::Init(int fd, CommQueueChannel type) @@ -314,6 +310,7 @@ int CommRingBuffer::PutDataToBuffer(const char *s, size_t len) uint32_t r_pos; uint32_t w_pos; uint32_t w_newpos; + errno_t errorno = EOK; RingBufferGroup *ring_buffer = NULL; @@ -333,16 +330,22 @@ int CommRingBuffer::PutDataToBuffer(const char *s, size_t len) size_t tail_len = 0; if (w_pos < r_pos) { - memcpy_s(ring_buffer->m_comm_buffer + w_pos, write_len, s, write_len); + errorno = memcpy_s(ring_buffer->m_comm_buffer + w_pos, write_len, s, write_len); + securec_check(errorno, "\0", "\0"); w_newpos = w_pos + write_len; } else { tail_len = ring_buffer->m_comm_buffer_size - w_pos; if (write_len <= tail_len) { - memcpy_s(ring_buffer->m_comm_buffer + w_pos, write_len, s, write_len); + errorno = memcpy_s(ring_buffer->m_comm_buffer + w_pos, write_len, s, write_len); + securec_check(errorno, "\0", "\0"); w_newpos = w_pos + write_len; } else { - memcpy_s(ring_buffer->m_comm_buffer + w_pos, tail_len, s, tail_len); - memcpy_s(ring_buffer->m_comm_buffer, write_len - tail_len, s + tail_len, write_len - tail_len); + if (tail_len != 0) { + errorno = memcpy_s(ring_buffer->m_comm_buffer + w_pos, tail_len, s, tail_len); + securec_check(errorno, "\0", "\0"); + } + errorno = memcpy_s(ring_buffer->m_comm_buffer, write_len - tail_len, s + tail_len, write_len - tail_len); + securec_check(errorno, "\0", "\0"); w_newpos = write_len - tail_len; } } @@ -730,7 +733,17 @@ void CommRingBuffer::WaitBufferEmpty() } while (!CheckBufferEmpty()) { - if (g_comm_controller->FdGetCommSockDesc(m_fd)->m_status == CommSockStatusClosedByPeer) { + CommSockDesc* comm_sock = g_comm_controller->FdGetCommSockDesc(m_fd); + if (comm_sock == NULL) { + ereport(ERROR, (errmodule(MOD_COMM_PROXY), + errcode(ERRCODE_SYSTEM_ERROR), + errmsg("CommSockDesc is null in WaitBufferEmpty, fd:%d.", m_fd), + errdetail("N/A"), + errcause("System error."), + erraction("Contact Huawei Engineer."))); + } + + if (comm_sock->m_status == CommSockStatusClosedByPeer) { return; } /* if send queue is not empty, wait 100us */ @@ -1048,7 +1061,18 @@ int CommPacketBuffer::PutDataToBuffer(const char *s, size_t len) AutoContextSwitch commContext(g_instance.comm_cxt.comm_global_mem_cxt); Packet* pack = NULL; - ThreadPoolCommunicator *comm = g_comm_controller->FdGetCommSockDesc(m_fd)->m_communicator; + CommSockDesc* comm_sock = g_comm_controller->FdGetCommSockDesc(m_fd); + if (comm_sock == NULL || comm_sock->m_communicator == NULL || + comm_sock->m_communicator->m_packet_buf[ChannelTX] == NULL) { + ereport(ERROR, (errmodule(MOD_COMM_PROXY), + errcode(ERRCODE_SYSTEM_ERROR), + errmsg("CommSockDesc or m_communicator or m_packet_buf is null in PutDataToBuffer, fd:%d.", m_fd), + errdetail("N/A"), + errcause("System error."), + erraction("Contact Huawei Engineer."))); + } + + ThreadPoolCommunicator* comm = comm_sock->m_communicator; int fd = m_fd; /* if length > MAX_LENGTH, we need loop to send */ @@ -1183,7 +1207,17 @@ void CommPacketBuffer::WaitBufferEmpty() ClearQueuePacket(); } else { while (m_data_queue->empty() != 0) { - if (g_comm_controller->FdGetCommSockDesc(m_fd)->m_status == CommSockStatusClosedByPeer) { + CommSockDesc* comm_sock = g_comm_controller->FdGetCommSockDesc(m_fd); + if (comm_sock == NULL) { + ereport(ERROR, (errmodule(MOD_COMM_PROXY), + errcode(ERRCODE_SYSTEM_ERROR), + errmsg("CommSockDesc is null in WaitBufferEmpty, fd:%d.", m_fd), + errdetail("N/A"), + errcause("System error."), + erraction("Contact Huawei Engineer."))); + } + + if (comm_sock->m_status == CommSockStatusClosedByPeer) { ClearQueuePacket(); return; } @@ -1209,5 +1243,17 @@ void CommPacketBuffer::BackPktBuff(Packet* pack) } ClearPacket(&pack); - g_comm_controller->FdGetCommSockDesc(m_fd)->m_communicator->m_packet_buf[m_type]->push(pack); -} \ No newline at end of file + + CommSockDesc* comm_sock = g_comm_controller->FdGetCommSockDesc(m_fd); + if (comm_sock == NULL || comm_sock->m_communicator == NULL || + comm_sock->m_communicator->m_packet_buf[m_type] == NULL) { + ereport(ERROR, (errmodule(MOD_COMM_PROXY), + errcode(ERRCODE_SYSTEM_ERROR), + errmsg("Can't find CommSockDesc or m_communicator is null or m_packet_buf is null in BackPktBuff, " + "fd:%d, type:%d.", m_fd, m_type), + errdetail("N/A"), + errcause("System error."), + erraction("Contact Huawei Engineer."))); + } + comm_sock->m_communicator->m_packet_buf[m_type]->push(pack); +} diff --git a/src/gausskernel/cbb/communication/comm_proxy/comm_common.cpp b/src/gausskernel/cbb/communication/comm_proxy/comm_common.cpp index 225b241bc..9a1326c08 100644 --- a/src/gausskernel/cbb/communication/comm_proxy/comm_common.cpp +++ b/src/gausskernel/cbb/communication/comm_proxy/comm_common.cpp @@ -38,7 +38,6 @@ #include "comm_connection.h" #include "communication/commproxy_interface.h" #include "communication/libnet_extern.h" -#include "gs_policy/gs_string.h" #define DIE_STRING_LENGTH 5 @@ -326,11 +325,13 @@ int CommCheckLtranProcess() return ltran_exist; } -static int FindCommProxyAttrKey(const gs_stl::gs_string& str_attr, const gs_stl::gs_string& key) +static int FindCommProxyAttrKey(const char* str_attr, const char* key) { int npos = -1; - for (int i = 0; i <= (int)str_attr.size() - (int)key.size(); ++i) { - if (str_attr.substr(i, key.size()) == key) { + int attr_len = strlen(str_attr); + int key_len = strlen(key); + for (int i = 0; i <= attr_len - key_len; ++i) { + if (strncmp(&str_attr[i], key, key_len) == 0) { npos = i; break; } @@ -339,18 +340,18 @@ static int FindCommProxyAttrKey(const gs_stl::gs_string& str_attr, const gs_stl: return npos; } -static void ReportParseCommProxyError(const gs_stl::gs_string& key) +static void ReportParseCommProxyError(const char* key) { ereport(ERROR, (errmodule(MOD_COMM_PROXY), errcode(ERRCODE_SYSTEM_ERROR), - errmsg("parse %s error in comm_proxy_attr.", key.c_str()), + errmsg("parse %s error in comm_proxy_attr.", key), errdetail("N/A"), errcause("System error."), erraction("Contact Huawei Engineer."))); } template -static T GetCommProxySubParameter(const gs_stl::gs_string& str_attr, const gs_stl::gs_string& key) +static T GetCommProxySubParameter(const char* str_attr, const char* key) { T res = T(); int attr_pos = FindCommProxyAttrKey(str_attr, key); @@ -359,19 +360,19 @@ static T GetCommProxySubParameter(const gs_stl::gs_string& str_attr, const gs_st exit(-1); } - if (key == "enable_libnet") { + if (strcmp(key, "enable_libnet") == 0) { if (str_attr[attr_pos + strlen("enable_libnet:")] == 't') { res = true; } else { res = false; } - } else if (key == "enable_dfx") { + } else if (strcmp(key, "enable_dfx") == 0) { if (str_attr[attr_pos + strlen("enable_dfx:")] == 't') { res = true; } else { res = false; } - } else if (key == "numa_num") { + } else if (strcmp(key, "numa_num") == 0) { if (str_attr[attr_pos + strlen("numa_num:")] == '4') { res = 4; } else if (str_attr[attr_pos + strlen("numa_num:")] == '8') { @@ -379,7 +380,7 @@ static T GetCommProxySubParameter(const gs_stl::gs_string& str_attr, const gs_st } else { ReportParseCommProxyError(key); } - } else if (key == "numa_bind") { + } else if (strcmp(key, "numa_bind") == 0) { res = attr_pos; } @@ -387,7 +388,7 @@ static T GetCommProxySubParameter(const gs_stl::gs_string& str_attr, const gs_st } static void ParseCommProxyNumaBind( - const gs_stl::gs_string& str_attr, const int pos, const int numa_num, int* numa_bind) + const char* str_attr, const int pos, const int numa_num, int* numa_bind) { int numa_num_cnt = 0; @@ -417,11 +418,7 @@ static void ParseCommProxyNumaBind( ** Proxy attribute parsing functions ****************************************************************************************** **/ -#ifndef ENABLE_UT bool ParseCommProxyAttr(CommProxyConfig* config) -#else -bool ParseCommProxyAttr(CommProxyConfig* config, char* path) -#endif { if (g_instance.attr.attr_common.comm_proxy_attr == NULL) { ereport(ERROR, (errmodule(MOD_COMM_PROXY), @@ -433,11 +430,7 @@ bool ParseCommProxyAttr(CommProxyConfig* config, char* path) return false; } -#ifndef ENABLE_UT char* attr = TrimStr(g_instance.attr.attr_common.comm_proxy_attr); -#else - char* attr = path; -#endif int numa_bind[THREADPOOL_TOTAL_GROUP*CPU_NUM_PER_NUMA] = { 0 }; int numa_bind_pos = 0; int all_comms = 0; diff --git a/src/gausskernel/cbb/communication/comm_proxy/comm_core.cpp b/src/gausskernel/cbb/communication/comm_proxy/comm_core.cpp index 53215886a..2063b42c3 100644 --- a/src/gausskernel/cbb/communication/comm_proxy/comm_core.cpp +++ b/src/gausskernel/cbb/communication/comm_proxy/comm_core.cpp @@ -36,6 +36,10 @@ #include "comm_connection.h" #include "executor/executor.h" +#ifdef ENABLE_UT +#define static +#endif + static void ProcessControlRequest(ThreadPoolCommunicator* comm); static void ProcessRecvRequest(ThreadPoolCommunicator* comm); static void ProcessSendRequest(ThreadPoolCommunicator* comm); diff --git a/src/gausskernel/cbb/communication/comm_proxy/comm_core.h b/src/gausskernel/cbb/communication/comm_proxy/comm_core.h index 0c459263a..756401de1 100644 --- a/src/gausskernel/cbb/communication/comm_proxy/comm_core.h +++ b/src/gausskernel/cbb/communication/comm_proxy/comm_core.h @@ -85,6 +85,14 @@ extern bool EndPacket(Packet* pack); extern bool CheckPacketReady(Packet* pack); extern void ClearPacket(Packet** pack); +#ifdef ENABLE_UT +void ProcessControlRequest(ThreadPoolCommunicator* comm); +void ProcessRecvRequest(ThreadPoolCommunicator* comm); +void ProcessSendRequest(ThreadPoolCommunicator* comm); +void ProcessControlRequestInternal(ThreadPoolCommunicator* comm, SocketRequest* sockreq); +int GetSysCommErrno(ThreadPoolCommunicator* comm, int fd); +#endif + /* * Special values indicate different proxy combinations */ diff --git a/src/gausskernel/cbb/communication/comm_proxy/comm_dfx.cpp b/src/gausskernel/cbb/communication/comm_proxy/comm_dfx.cpp index cd52b3419..153ed79a0 100644 --- a/src/gausskernel/cbb/communication/comm_proxy/comm_dfx.cpp +++ b/src/gausskernel/cbb/communication/comm_proxy/comm_dfx.cpp @@ -409,17 +409,6 @@ void comm_print_packet_lenght_static() } -void comm_reset_packet_static() -{ - g_static_pkt_cnt_idx[ChannelTX] = 0; - g_static_pkt_cnt_idx[ChannelRX] = 0; - - memset_s(g_static_pkt_cnt_by_length[ChannelTX], sizeof(unsigned long int) * MAX_PKT_TRANS_CNT, 0, - sizeof(unsigned long int) * MAX_PKT_TRANS_CNT); - memset_s(g_static_pkt_cnt_by_length[ChannelRX], sizeof(unsigned long int) * MAX_PKT_TRANS_CNT, 0, - sizeof(unsigned long int) * MAX_PKT_TRANS_CNT); -}; - void comm_update_packet_static(size_t len, int type) { int id = g_static_pkt_cnt_idx[type]; @@ -448,17 +437,6 @@ void comm_print_packet_static() } -void comm_reset_walsender_static() -{ - g_static_walsender_cnt_idx[WalSenderEnter] = 0; - g_static_walsender_cnt_idx[WalSenderWakeup] = 0; - - memset_s(g_static_walsender_wakeup[WalSenderEnter], sizeof(unsigned long int) * MAX_PKT_TRANS_CNT, 0, - sizeof(unsigned long int) * MAX_PKT_TRANS_CNT); - memset_s(g_static_walsender_wakeup[WalSenderWakeup], sizeof(unsigned long int) * MAX_PKT_TRANS_CNT, 0, - sizeof(unsigned long int) * MAX_PKT_TRANS_CNT); - -}; void comm_update_walsender_static(int type, int len) { @@ -489,18 +467,6 @@ void comm_print_walsender_static() fflush(stdout); } -void comm_reset_walrcvwriter_static() -{ - g_static_walrcvwriter_idx[WalRcvWriterWrite] = 0; - g_static_walrcvwriter_idx[WalRcvWriterExpectWrite] = 0; - g_static_walrcvwriter_idx[WalRcvWriterFlush] = 0; - memset_s(g_static_walrcvwriter_iostat[WalRcvWriterWrite], sizeof(unsigned long int) * WalRcvWriterStatMax, 0, - sizeof(unsigned long int) * WalRcvWriterStatMax); - memset_s(g_static_walrcvwriter_iostat[WalRcvWriterExpectWrite], sizeof(unsigned long int) * WalRcvWriterStatMax, 0, - sizeof(unsigned long int) * WalRcvWriterStatMax); - memset_s(g_static_walrcvwriter_iostat[WalRcvWriterFlush], sizeof(unsigned long int) * WalRcvWriterStatMax, 0, - sizeof(unsigned long int) * WalRcvWriterStatMax); -}; void comm_update_walrcvwriter_static(int type, int len) { diff --git a/src/gausskernel/cbb/communication/comm_proxy/comm_interface.cpp b/src/gausskernel/cbb/communication/comm_proxy/comm_interface.cpp index 2751c12f9..31421c3d5 100644 --- a/src/gausskernel/cbb/communication/comm_proxy/comm_interface.cpp +++ b/src/gausskernel/cbb/communication/comm_proxy/comm_interface.cpp @@ -805,7 +805,6 @@ static CommConnType CommProxyGetPollType() CommConnType CommGetConnType(int sockfd) { /* Return false if com_proxy is not set */ - //if (!g_instance.attr.attr_network.enable_comm_proxy) { if (!IsCommProxyEnabled()) { return CommConnKernel; } @@ -1061,11 +1060,7 @@ void CommProxyStartUp() **/ /* parse comm_proxy_attr to get ltran/comm numbers and bind cpu */ -#ifndef ENABLE_UT if (ParseCommProxyAttr(&g_comm_proxy_config) == false) { -#else - if (ParseCommProxyAttr(&g_comm_proxy_config, NULL) == false) { -#endif ereport(ERROR, (errmodule(MOD_COMM_PROXY), errcode(ERRCODE_SYSTEM_ERROR), errmsg("Parse comm_proxy_attr error."), diff --git a/src/gausskernel/cbb/communication/comm_proxy/comm_proxy.h b/src/gausskernel/cbb/communication/comm_proxy/comm_proxy.h index 6ee50b267..edfaa51a1 100644 --- a/src/gausskernel/cbb/communication/comm_proxy/comm_proxy.h +++ b/src/gausskernel/cbb/communication/comm_proxy/comm_proxy.h @@ -455,9 +455,11 @@ typedef struct CommWaitPollParam { int caller(Sys_poll fn, unsigned long int reqid = 0) { int ret = fn(s_fdarray, s_nfds, s_timeout); - ereport(DEBUG5, (errmodule(MOD_COMM_PROXY), - errmsg("%s reqid[%016lu] sockreq_poll: poll (%lu) fds, ret:[%d], errno:%d, %m", - t_thrd.proxy_cxt.identifier, reqid, s_nfds, ret, errno))); + + /* + * comm_poll is only called in the PM thread and involved frequent interrupt signal response, so, + * there is no need for printing log debugging information. + */ return ret; } diff --git a/src/gausskernel/cbb/communication/comm_proxy/comm_sock.cpp b/src/gausskernel/cbb/communication/comm_proxy/comm_sock.cpp index f12ea23fc..35945b8ac 100644 --- a/src/gausskernel/cbb/communication/comm_proxy/comm_sock.cpp +++ b/src/gausskernel/cbb/communication/comm_proxy/comm_sock.cpp @@ -178,7 +178,6 @@ int CommCreateTransportPair(CommSockDesc* comm_sock) if (comm_sock->m_transport[ChannelRX] == NULL) { comm_sock->m_transport[ChannelRX] = CommCreateTransport(comm_sock->m_trans_mode, - // phy_proto_tcp); comm_sock->m_communicator->m_proto_type); } diff --git a/src/gausskernel/cbb/communication/comm_proxy/comm_thread.cpp b/src/gausskernel/cbb/communication/comm_proxy/comm_thread.cpp index d9099d19c..1a3fd3383 100644 --- a/src/gausskernel/cbb/communication/comm_proxy/comm_thread.cpp +++ b/src/gausskernel/cbb/communication/comm_proxy/comm_thread.cpp @@ -37,7 +37,6 @@ * Function & Variables declerations * -------------------------------------------------------------------------------------- */ -static void SetupCommSignalHook(); static void CommProxyBaseInit(); static void* CommProxyMainFunc(void* ptr); static void* CommProxyStatMainFunc(void* ptr); @@ -89,7 +88,7 @@ void CommStartProxyStatThread(CommController *controller) * Internal Functions * -------------------------------------------------------------------------------------- */ -static void SetupCommSignalHook() +void SetupCommProxySignalHook() { #if defined(GAUSSDB_KERNEL__NO) @@ -151,7 +150,7 @@ static void CommProxyBaseInit() pg_timezone_initialize(); - SetupCommSignalHook(); + SetupCommProxySignalHook(); return; } @@ -202,6 +201,10 @@ static void* CommProxyMainFunc(void* ptr) /* ServerLoop of RX */ for (;;) { + if (g_comm_controller->m_proxy_recv_loop_cnt == 0 || + g_comm_controller->m_proxy_send_loop_cnt == 0) { + break; + } ProcessProxyWork(comm); } @@ -234,6 +237,9 @@ static void* CommProxyStatMainFunc(void* ptr) int nums = controller->m_communicator_nums[0]; const int one_second = 1000*1000; for (;;) { + if (nums == 0) { + break; + } pg_usleep(one_second); for (int i = 0; i < nums; i++) { ThreadPoolCommunicator *comm = controller->m_communicators[0][i]; @@ -254,5 +260,4 @@ static void* CommProxyStatMainFunc(void* ptr) } return NULL; -} - +} \ No newline at end of file diff --git a/src/gausskernel/cbb/communication/libcomm.cpp b/src/gausskernel/cbb/communication/libcomm.cpp index e6aea7166..08ff12036 100755 --- a/src/gausskernel/cbb/communication/libcomm.cpp +++ b/src/gausskernel/cbb/communication/libcomm.cpp @@ -529,7 +529,6 @@ int gs_poll_create() // but when the thread needed to delete is calling gs_poll, just signal it instead of del it. // because for CN, thread usually wait for multiple logic connection, so we cannot del it when // some logic connection is close. -// void gs_poll_close() { AutoContextSwitch commContext(g_instance.comm_cxt.comm_global_mem_cxt); @@ -719,7 +718,6 @@ int gs_update_fd_to_htab_socket_version(struct sock_id* fd_id) // step 1: get node index (node_idx) // step 2: traverse g_c_mailbox[node_idx][*] // step 3: do notify and reset all cmailbox -// static void gs_r_close_all_streams_by_fd_idx(int fd, int node_idx, int close_reason) { struct c_mailbox* cmailbox = NULL; @@ -741,8 +739,7 @@ static void gs_r_close_all_streams_by_fd_idx(int fd, int node_idx, int close_rea if ((fd == -1 || cmailbox->ctrl_tcp_sock == fd) && (cmailbox->state != MAIL_CLOSED)) { gs_r_close_logic_connection(cmailbox, close_reason, &fcmsgs); // reset local stream logic connection info - COMM_DEBUG_LOG("(r|close all streams)\tTo close stream[%d], " - "node[%d]:%s, query[%lu], socket[%d].", + COMM_DEBUG_LOG("(r|close all streams)\tTo close stream[%d], node[%d]:%s, query[%lu], socket[%d].", j, node_idx, g_instance.comm_cxt.g_r_node_sock[node_idx].remote_nodename, @@ -764,7 +761,6 @@ static void gs_r_close_all_streams_by_fd_idx(int fd, int node_idx, int close_rea // step 1: get node index (node_idx) // step 2: traverse g_p_mailbox[node_idx][*] // step 3: do notification and reset all pmailbox -// static void gs_s_close_all_streams_by_fd_idx(int fd, int node_idx, int close_reason, bool with_ctrl_lock) { struct p_mailbox* pmailbox = NULL; @@ -772,8 +768,7 @@ static void gs_s_close_all_streams_by_fd_idx(int fd, int node_idx, int close_rea // Note: we should have locked at the caller, so we need not lock here again // LIBCOMM_ELOG(WARNING, - "(s|close all streams)\tTo reset all streams " - "by socket[%d] for node[%d]:%s, detail:%s.", + "(s|close all streams)\tTo reset all streams by socket[%d] for node[%d]:%s, detail:%s.", fd, node_idx, g_instance.comm_cxt.g_s_node_sock[node_idx].remote_nodename, @@ -785,8 +780,7 @@ static void gs_s_close_all_streams_by_fd_idx(int fd, int node_idx, int close_rea if (((pmailbox->ctrl_tcp_sock == -1) || (fd == -1) || (pmailbox->ctrl_tcp_sock == fd)) && (pmailbox->state != MAIL_CLOSED)) { - COMM_DEBUG_LOG("(s|close all streams)\tTo close stream[%d], " - "node[%d]:%s, query[%lu], socket[%d].", + COMM_DEBUG_LOG("(s|close all streams)\tTo close stream[%d], node[%d]:%s, query[%lu], socket[%d].", j, node_idx, g_instance.comm_cxt.g_s_node_sock[node_idx].remote_nodename, @@ -817,7 +811,6 @@ static void gs_s_close_all_streams_by_fd_idx(int fd, int node_idx, int close_rea */ static void gs_clean_events(struct sock_id* old_fd_id) { - int i = 0; int fd = -1; int id = -1; @@ -825,7 +818,7 @@ static void gs_clean_events(struct sock_id* old_fd_id) return; } int nevents = t_thrd.comm_cxt.g_libcomm_poller_list->nevents; - for (i = 0; i < nevents; i++) { + for (int i = 0; i < nevents; i++) { fd = (int)(((uint64)t_thrd.comm_cxt.g_libcomm_poller_list->events[i].data.u64 >> MC_POLLER_FD_ID_OFFSET)); id = (int)(((uint64)t_thrd.comm_cxt.g_libcomm_poller_list->events[i].data.u64 & MC_POLLER_FD_ID_MASK)); if ((old_fd_id->fd == fd) && (old_fd_id->id == id)) { @@ -847,7 +840,6 @@ static void gs_clean_events(struct sock_id* old_fd_id) } // receiver close and clear bad tcp control socket, and related information -// void gs_r_close_bad_ctrl_tcp_sock(struct sock_id* fd_id, int close_reason) { int fd = fd_id->fd; @@ -914,8 +906,7 @@ void gs_r_close_bad_ctrl_tcp_sock(struct sock_id* fd_id, int close_reason) g_instance.comm_cxt.g_r_node_sock[node_idx].close_socket_nl(CTRL_TCP_SOCK); LIBCOMM_ELOG(WARNING, - "(r|close tcp socket)\tTCP disconnect with socket[%d,%d] " - "to host:%s, node[%d]:[%s].", + "(r|close tcp socket)\tTCP disconnect with socket[%d,%d] to host:%s, node[%d]:[%s].", fd, id, g_instance.comm_cxt.g_r_node_sock[node_idx].remote_host, @@ -1042,8 +1033,7 @@ void gs_s_close_bad_ctrl_tcp_sock(struct sock_id* fd_id, int close_reason, bool g_instance.comm_cxt.g_s_node_sock[node_idx].set_nl(-1, CTRL_TCP_SOCK); g_instance.comm_cxt.g_s_node_sock[node_idx].set_nl(-1, CTRL_TCP_SOCK_ID); LIBCOMM_ELOG(WARNING, - "(s|cls bad tcp socket)\tClose bad socket[%d,%d] " - "for host:%s, node[%d]:%s.", + "(s|cls bad tcp socket)\tClose bad socket[%d,%d] for host:%s, node[%d]:%s.", fd, id, g_instance.comm_cxt.g_s_node_sock[node_idx].remote_host, @@ -1131,7 +1121,6 @@ static long gs_add_quota_size(c_mailbox* cmailbox) } // auxiliary thread use it to change the stream state and send control message to remote point (sender) -// bool gs_r_quota_notify(c_mailbox* cmailbox, FCMSG_T* msg) { errno_t ss_rc; @@ -1173,7 +1162,6 @@ bool gs_r_quota_notify(c_mailbox* cmailbox, FCMSG_T* msg) // traverse all the c_mailbox(es) to find the first query who used memory, // and make it failure to release the memory. Otherwise, the communication layer maybe hang up. -// void gs_r_release_comm_memory() { uint64 release_query_id = 0; @@ -1220,8 +1208,7 @@ void gs_r_release_comm_memory() } LIBCOMM_ELOG(WARNING, - "(r|release memory)\tReset query[%lu] " - "to release memory[%lu Byte].", + "(r|release memory)\tReset query[%lu] to release memory[%lu Byte].", release_query_id, total_buff_size); } // gs_r_release_comm_memory @@ -1232,7 +1219,6 @@ void gs_r_release_comm_memory() // step3: update the socket version // step4: delete the socket from hash table socke -> node index (g_r_htab_data_socket_node_idx) // step5: close the old tcp socket -// void gs_r_close_bad_data_socket(int node_idx, sock_id fd_id, int close_reason, bool is_lock) { if (node_idx >= 0) { @@ -1300,7 +1286,6 @@ void gs_r_close_bad_data_socket(int node_idx, sock_id fd_id, int close_reason, b } // if we failed to send message to the destination, we should do following things -// void gs_s_close_bad_data_socket(struct sock_id* fd_id, int close_reason, int node_idx) { errno_t ss_rc; @@ -1444,8 +1429,7 @@ int gs_push_cmailbox_buffer(c_mailbox* cmailbox, struct mc_lqueue_item* q_item, // there is buffer/quota to process the received data if (cmailbox->bufCAP >= (unsigned long)(iov->iov_len)) { - COMM_DEBUG_LOG("(r|inner recv)\tNode[%d]:%s stream[%d] recv %zu msg:%c, " - "bufCAP[%lu] and buff_q->u_size[%lu].", + COMM_DEBUG_LOG("(r|inner recv)\tNode[%d]:%s stream[%d] recv %zu msg:%c, bufCAP[%lu] and buff_q->u_size[%lu].", idx, g_instance.comm_cxt.g_r_node_sock[idx].remote_nodename, sid, @@ -2156,7 +2140,6 @@ void gs_comm_ipc_print(MessageIpcLog *ipc_log, char *remotenode, gsocket *gs_soc } // cancel request for receiver (called by die() or StatementCancelHandler() in postgresMain ) -// void gs_r_cancel() { // use g_cancel_requested save DEBUG_QUERY_ID as a flag @@ -2166,7 +2149,6 @@ void gs_r_cancel() // receiver close logic stream, call by Consumer thread // when no data need or all data are received, or error happed -// int gs_r_close_stream(gsocket* gsock) { int node_idx = gsock->idx; @@ -2177,8 +2159,7 @@ int gs_r_close_stream(gsocket* gsock) if ((node_idx < 0) || (node_idx >= g_instance.comm_cxt.counters_cxt.g_cur_node_num) || (stream_idx <= 0) || (stream_idx >= g_instance.comm_cxt.counters_cxt.g_max_stream_num) || (type == GSOCK_PRODUCER)) { - COMM_DEBUG_LOG("(r|cls stream)\tInvalid argument: " - "node idx[%d], stream id[%d], type[%d].", + COMM_DEBUG_LOG("(r|cls stream)\tInvalid argument: node idx[%d], stream id[%d], type[%d].", node_idx, stream_idx, type); @@ -2224,7 +2205,6 @@ int gs_r_close_stream(gsocket* gsock) } // gs_r_close_stream // sender close logic stream, call by Producer thread when it failed to send data -// int gs_s_close_stream(gsocket* gsock) { int node_idx = gsock->idx; @@ -2235,8 +2215,7 @@ int gs_s_close_stream(gsocket* gsock) if ((node_idx < 0) || (node_idx >= g_instance.comm_cxt.counters_cxt.g_cur_node_num) || (stream_idx <= 0) || (stream_idx >= g_instance.comm_cxt.counters_cxt.g_max_stream_num) || (type == GSOCK_CONSUMER)) { - COMM_DEBUG_LOG("(s|cls stream)\tInvalid argument: " - "node idx[%d], stream id[%d], type[%d].", + COMM_DEBUG_LOG("(s|cls stream)\tInvalid argument: node idx[%d], stream id[%d], type[%d].", node_idx, stream_idx, type); @@ -2273,26 +2252,23 @@ int gs_s_close_stream(gsocket* gsock) } // close logic socket, it will return when the sock type is invalid. -// void gs_close_gsocket(gsocket* gsock) { - int type = gsock->type; - - AutoContextSwitch commContext(g_instance.comm_cxt.comm_global_mem_cxt); - bool TempImmediateInterruptOK = t_thrd.int_cxt.ImmediateInterruptOK; t_thrd.int_cxt.ImmediateInterruptOK = false; - if (type == GSOCK_INVALID) { + if (gsock->type == GSOCK_INVALID) { LIBCOMM_INTERFACE_END(false, TempImmediateInterruptOK); return; } - if (type == GSOCK_DAUL_CHANNEL || type == GSOCK_PRODUCER) { + AutoContextSwitch commContext(g_instance.comm_cxt.comm_global_mem_cxt); + + if (gsock->type == GSOCK_DAUL_CHANNEL || gsock->type == GSOCK_PRODUCER) { (void)gs_s_close_stream(gsock); } - if (type == GSOCK_DAUL_CHANNEL || type == GSOCK_CONSUMER) { + if (gsock->type == GSOCK_DAUL_CHANNEL || gsock->type == GSOCK_CONSUMER) { (void)gs_r_close_stream(gsock); } @@ -2668,8 +2644,7 @@ int gs_close_all_stream_by_debug_id(uint64 query_id) if (cmailbox_count != 0 || pmailbox_count != 0) { LIBCOMM_ELOG(LOG, - "(cls all stream)\tClose all stream by debug id[%lu], " - "close %d cmailbox and %d pmailbox.", + "(cls all stream)\tClose all stream by debug id[%lu], close %d cmailbox and %d pmailbox.", query_id, cmailbox_count, pmailbox_count); @@ -2706,9 +2681,21 @@ static void PoolCleanerShutdownHandler(SIGNAL_ARGS) errno = save_errno; } +/* SIGHUP: re-read config file */ +static void PoolCleanerSighupHandler(SIGNAL_ARGS) +{ + int save_errno = errno; + + t_thrd.poolcleaner_cxt.got_SIGHUP = true; + if (t_thrd.proc) + SetLatch(&t_thrd.proc->procLatch); + + errno = save_errno; +} + void SetupPoolerCleanSignalHook() { - (void)gspqsignal(SIGHUP, SIG_IGN); + (void)gspqsignal(SIGHUP, PoolCleanerSighupHandler); (void)gspqsignal(SIGQUIT, SIG_IGN); (void)gspqsignal(SIGTERM, PoolCleanerShutdownHandler); (void)gspqsignal(SIGINT, PoolCleanerShutdownHandler); /* cancel current query */ @@ -2818,6 +2805,12 @@ void commPoolCleanerMain() /* We can now handle ereport(ERROR) */ t_thrd.log_cxt.PG_exception_stack = &local_sigjmp_buf; + /* + * Unblock signals (they were blocked when the postmaster forked us) + */ + gs_signal_setmask(&t_thrd.libpq_cxt.UnBlockSig, NULL); + (void)gs_signal_unblock_sigusr2(); + /* report this backend in the PgBackendStatus array */ pgstat_report_appname("PoolCleaner"); @@ -2842,8 +2835,12 @@ void commPoolCleanerMain() break; } - sleep(1); + if (t_thrd.poolcleaner_cxt.got_SIGHUP) { + t_thrd.poolcleaner_cxt.got_SIGHUP = false; + ProcessConfigFile(PGC_SIGHUP); + } + sleep(1); current_time = mc_timers_ms(); poolerMaxIdleTime = (u_sess->attr.attr_network.PoolerMaxIdleTime) * MS_PER_S; diff --git a/src/gausskernel/cbb/communication/libcomm_common.h b/src/gausskernel/cbb/communication/libcomm_common.h index 276f57d31..04e36940c 100644 --- a/src/gausskernel/cbb/communication/libcomm_common.h +++ b/src/gausskernel/cbb/communication/libcomm_common.h @@ -69,7 +69,6 @@ extern unsigned long DEFULTMSGLEN; extern unsigned long LIBCOMM_BUFFER_SIZE; #define QUEUE_SIZE 65535 -#define REPEAT 10 #define BIG_REPEAT 1000000 #define MAX_BIND_RETRYS 30 #define BODYSIZE 10 diff --git a/src/gausskernel/cbb/communication/libcomm_utils/libcomm_adapter.cpp b/src/gausskernel/cbb/communication/libcomm_utils/libcomm_adapter.cpp index 0438ac545..8777dac1c 100644 --- a/src/gausskernel/cbb/communication/libcomm_utils/libcomm_adapter.cpp +++ b/src/gausskernel/cbb/communication/libcomm_utils/libcomm_adapter.cpp @@ -764,6 +764,11 @@ static int gs_connect_by_unix_domain() return -1; } + if (g_instance.comm_cxt.g_unix_path == NULL) { + LIBCOMM_ELOG(WARNING, "(SendUnixDomainMsg)\tCould not get unix path."); + return -1; + } + // STEP2 set unix addr struct sockaddr_un unp; ss_rc = memset_s(&unp, sizeof(unp), 0x0, sizeof(struct sockaddr_un)); diff --git a/src/gausskernel/cbb/communication/libcomm_utils/libcomm_client_ssl.cpp b/src/gausskernel/cbb/communication/libcomm_utils/libcomm_client_ssl.cpp index a3dbec8a5..860afe793 100644 --- a/src/gausskernel/cbb/communication/libcomm_utils/libcomm_client_ssl.cpp +++ b/src/gausskernel/cbb/communication/libcomm_utils/libcomm_client_ssl.cpp @@ -294,7 +294,6 @@ int LibCommClientSSLLoadCertFile(LibCommConn * conn, bool have_homedir, const Pa fnBuf[0] = '\0'; } - LIBCOMM_ELOG(LOG, "LibCommClientSSLLoadCertFile fnBuf:%s\n", fnBuf); if (fnBuf[0] == '\0') { /* no home directory, proceed without a client cert */ *have_cert = false; @@ -306,7 +305,7 @@ int LibCommClientSSLLoadCertFile(LibCommConn * conn, bool have_homedir, const Pa */ if (errno != ENOENT && errno != ENOTDIR) { LIBCOMM_ELOG(ERROR, "could not open certificate file \"%s\": %s\n", - fnBuf, pqStrerror(errno, setBuf, sizeof(setBuf))); + conn->sslcert, pqStrerror(errno, setBuf, sizeof(setBuf))); return -1; } *have_cert = false; @@ -319,27 +318,28 @@ int LibCommClientSSLLoadCertFile(LibCommConn * conn, bool have_homedir, const Pa if (!S_ISREG(buf.st_mode) || (buf.st_mode & (S_IRWXG | S_IRWXO)) || ((buf.st_mode & S_IRWXU) == S_IRWXU)) { char *err = LibCommErrMessage(); LIBCOMM_ELOG(ERROR, "Error: The file \"%s\" permission should be u=rw(600) or less. mode:%3x err:%s\n", - fnBuf, buf.st_mode, err); + conn->sslcert, buf.st_mode, err); LibCommErrFree(err); return -1; } if (SSL_CTX_use_certificate_chain_file(g_libCommClientSSLContext, fnBuf) != 1) { char *err = LibCommErrMessage(); LIBCOMM_ELOG(ERROR, - "Error: LibCommClientSSLLoadCertFile SSL_CTX_use_certificate_chain_file.fnBuf:%s err:%s\n", - fnBuf, err); + "Error: LibCommClientSSLLoadCertFile SSL_CTX_use_certificate_chain_file.sslcert:%s err:%s\n", + conn->sslcert, err); LibCommErrFree(err); return -1; } if (SSL_use_certificate_file(conn->ssl, fnBuf, SSL_FILETYPE_PEM) != 1) { char *err = LibCommErrMessage(); - LIBCOMM_ELOG(ERROR, "Error: LibCommClientSSLLoadCertFile SSL_use_certificate_file fnBuf:%s err:%s.\n", - fnBuf, err); + LIBCOMM_ELOG(ERROR, "Error: LibCommClientSSLLoadCertFile SSL_use_certificate_file sslcert:%s err:%s.\n", + conn->sslcert, err); LibCommErrFree(err); return -1; } *have_cert = true; } + LIBCOMM_ELOG(LOG, "LibCommClientSSLLoadCertFile sslcrl %s", conn->sslcert); return 0; } static int LibCommClientSSLLoadKeyFile(LibCommConn* conn, bool have_homedir, const PathData *homedir, bool have_cert) { @@ -363,16 +363,16 @@ static int LibCommClientSSLLoadKeyFile(LibCommConn* conn, bool have_homedir, con } else { fnBuf[0] = '\0'; } - LIBCOMM_ELOG(LOG, "LibCommClientSSLLoadKeyFile fnBuf:%s\n", fnBuf); + if (have_cert && fnBuf[0] != '\0') { /* read the client key from file */ if (stat(fnBuf, &buf) != 0) { - LIBCOMM_ELOG(ERROR,"certificate present, but not private key file \"%s\"\n", fnBuf); + LIBCOMM_ELOG(ERROR,"certificate present, but not private key file \"%s\"\n", conn->sslkey); return -1; } #ifndef WIN32 if (!S_ISREG(buf.st_mode) || (buf.st_mode & (S_IRWXG | S_IRWXO)) || ((buf.st_mode & S_IRWXU) == S_IRWXU)) { - LIBCOMM_ELOG(ERROR, "The file \"%s\" permission should be u=rw(600) or lespermissions.\n", fnBuf); + LIBCOMM_ELOG(ERROR, "The file \"%s\" permission should be u=rw(600) or lespermissions.\n", conn->sslkey); return -1; } #endif @@ -380,7 +380,7 @@ static int LibCommClientSSLLoadKeyFile(LibCommConn* conn, bool have_homedir, con nRet = SSL_use_PrivateKey_file(conn->ssl, fnBuf, SSL_FILETYPE_PEM); if (nRet != 1) { char* err = LibCommErrMessage(); - LIBCOMM_ELOG(ERROR, "could not load private key file \"%s\": %s\n", fnBuf, err); + LIBCOMM_ELOG(ERROR, "could not load private key file \"%s\": %s\n", conn->sslkey, err); LibCommErrFree(err); return -1; } @@ -388,17 +388,18 @@ static int LibCommClientSSLLoadKeyFile(LibCommConn* conn, bool have_homedir, con /* verify that the cert and key go together */ if (have_cert && SSL_check_private_key(conn->ssl) != 1) { char* err = LibCommErrMessage(); - LIBCOMM_ELOG(ERROR,"certificate does not match private key file \"%s\": %s\n", fnBuf, err); + LIBCOMM_ELOG(ERROR,"certificate does not match private key file \"%s\": %s\n", conn->sslkey, err); LibCommErrFree(err); return -1; } /* set up the allowed cipher list */ if (!set_client_ssl_ciphers()) { char* err = LibCommErrMessage(); - LIBCOMM_ELOG(ERROR,"SSL_ctxSetCipherList \"%s\": %s\n", fnBuf, err); + LIBCOMM_ELOG(ERROR,"SSL_ctxSetCipherList \"%s\": %s\n", conn->sslkey, err); LibCommErrFree(err); return -1; } + LIBCOMM_ELOG(LOG, "LibCommClientSSLLoadKeyFile sslkey %s", conn->sslkey); return 0; } #define MAX_CERTIFICATE_DEPTH_SUPPORTED 20 /* The max certificate depth supported. */ @@ -420,18 +421,18 @@ static int LibCommClientSSLLoadRootCertFile(LibCommConn* conn, bool have_homedir } else { fnBuf[0] = '\0'; } - LIBCOMM_ELOG(LOG, "LibCommClientSSLLoadRootCertFile fnBuf:%s\n", fnBuf); + if (fnBuf[0] != '\0' && stat(fnBuf, &buf) == 0) { if (SSL_CTX_load_verify_locations(g_libCommClientSSLContext, fnBuf, NULL) != 1) { char* err = LibCommErrMessage(); - LIBCOMM_ELOG(ERROR, "could not read root certificate file \"%s\": %s\n", fnBuf, err); + LIBCOMM_ELOG(ERROR, "could not read root certificate file \"%s\": %s\n", conn->sslrootcert, err); LibCommErrFree(err); return -1; } /* check root cert file permission */ #ifndef WIN32 if (!S_ISREG(buf.st_mode) || (buf.st_mode & (S_IRWXG | S_IRWXO)) || ((buf.st_mode & S_IRWXU) == S_IRWXU)) { - LIBCOMM_ELOG(ERROR, "The ca file \"%s\" permission should be u=rw(600) or less.\n", fnBuf); + LIBCOMM_ELOG(ERROR, "The ca file \"%s\" permission should be u=rw(600) or less.\n", conn->sslrootcert); return -1; } #endif @@ -452,7 +453,7 @@ static int LibCommClientSSLLoadRootCertFile(LibCommConn* conn, bool have_homedir (void)X509_STORE_set_flags(SSL_CTX_get_cert_store(g_libCommClientSSLContext), X509_V_FLAG_CRL_CHECK | X509_V_FLAG_CRL_CHECK_ALL); } else { - LIBCOMM_ELOG(ERROR,"could not load SSL certificate revocation list (file \"%s\")\n",fnBuf); + LIBCOMM_ELOG(ERROR,"could not load SSL certificate revocation list (file \"%s\")\n", conn->sslcrl); return -1; } } @@ -488,11 +489,12 @@ static int LibCommClientSSLLoadRootCertFile(LibCommConn* conn, bool have_homedir LIBCOMM_ELOG(ERROR, "root certificate file \"%s\" does not exist\n" "Either provide the file or change sslmode to disable server certificate verification.\n", - fnBuf); + conn->sslcrl); } return -1; } } + LIBCOMM_ELOG(LOG, "LibCommClientSSLLoadRootCertFile end"); return 0; } static int LibCommClientSSLSetFiles(LibCommConn* conn) { @@ -541,7 +543,7 @@ static int LibCommClientSSLCreate() { return 0; } - LIBCOMM_ELOG(LOG, "g_libCommClientSSLContext start\n"); + LIBCOMM_ELOG(LOG, "g_libCommClientSSLContext start"); if (OPENSSL_init_ssl(0, NULL) != 1) { char *err = LibCommErrMessage(); LIBCOMM_ELOG(ERROR,"Failed to initialize ssl library:%s", err); @@ -555,7 +557,7 @@ static int LibCommClientSSLCreate() { g_libCommClientSSLContext = SSL_CTX_new(TLSv1_2_method()); if (g_libCommClientSSLContext == NULL) { char *err = LibCommErrMessage(); - LIBCOMM_ELOG(ERROR,"could not create SSL context: %s, errno:%s\n", err, strerror(errno)); + LIBCOMM_ELOG(ERROR,"could not create SSL context: %s, errno:%s", err, strerror(errno)); LibCommErrFree(err); #pragma GCC diagnostic pop return -1; @@ -566,7 +568,7 @@ static int LibCommClientSSLCreate() { */ SSL_CTX_set_mode(g_libCommClientSSLContext, SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER); - LIBCOMM_ELOG(LOG, "LibCommClientSSLCreate end!\n"); + LIBCOMM_ELOG(LOG, "LibCommClientSSLCreate end!"); return 0; } @@ -668,24 +670,7 @@ static bool LibCommClientVerifyPeerNameMatchesCertificate(LibCommConn *conn) pfree_ext(peer_cn); return result; } -static void ShowCerts(SSL * ssl) -{ - X509 *cert; - char *line; - cert = SSL_get_peer_certificate(ssl); - if (cert != NULL) { - LIBCOMM_ELOG(LOG, "X509 subject:\n"); - line = X509_NAME_oneline(X509_get_subject_name(cert), 0, 0); - LIBCOMM_ELOG(LOG, "certificate: %s\n", line); - free(line); - line = X509_NAME_oneline(X509_get_issuer_name(cert), 0, 0); - LIBCOMM_ELOG(LOG, "Issued by: %s\n", line); - free(line); - X509_free(cert); - } else { - LIBCOMM_ELOG(LOG, "No certificate information.\n"); - } -} + LibcommPollingStatusType LibCommClientSSLOpen(LibCommConn *conn) { ERR_clear_error(); int r = SSL_do_handshake(conn->ssl); @@ -713,20 +698,18 @@ LibcommPollingStatusType LibCommClientSSLOpen(LibCommConn *conn) { } case SSL_ERROR_SSL: { char* buf = LibCommErrMessage(); - LIBCOMM_ELOG(ERROR, "SSL error: %s %m %d\n", buf, errno); + LIBCOMM_ELOG(ERROR, "SSL error: %s errno: %d\n", buf, errno); LibCommErrFree(buf); LibCommClientSSLClose(conn); return LIBCOMM_POLLING_FAILED; } default: - LIBCOMM_ELOG(ERROR, "unrecognized SSL error code: %d %m\n", err); + LIBCOMM_ELOG(ERROR, "unrecognized SSL error code: %d\n", err); LibCommClientSSLClose(conn); return LIBCOMM_POLLING_FAILED; } } - LIBCOMM_ELOG(LOG, "Connected with %s encryption\n", SSL_get_cipher(conn->ssl)); - ShowCerts(conn->ssl); /* * We already checked the server certificate in initialize_SSL() using * SSL_CTX_set_verify(), if root.crt exists. @@ -899,28 +882,28 @@ LibcommPollingStatusType LibCommClientSecureOpen(LibCommConn *conn, bool isUnidi loop: status = LibCommClientSSLOpen(conn); if (status == LIBCOMM_POLLING_OK) { - LIBCOMM_ELOG(LOG, "LibCommClientSecureOpen SSL handshake done, ready to send startup packet\n"); + LIBCOMM_ELOG(LOG, "LibCommClientSecureOpen SSL handshake done, ready to send startup packet"); } else if (status == LIBCOMM_POLLING_FAILED) { LIBCOMM_ELOG(ERROR, "LibCommClientSecureOpen keep going\n"); return LIBCOMM_POLLING_FAILED; } else if (status == LIBCOMM_POLLING_READING) { - LIBCOMM_ELOG(LOG, "LibCommClientSecureOpen LIBCOMM_POLLING_READING\n"); + LIBCOMM_ELOG(LOG, "LibCommClientSecureOpen LIBCOMM_POLLING_READING"); if (LibCommClientWaitTimed(1, 0, conn, time(NULL) + timeout)) { - LIBCOMM_ELOG(WARNING, "LibCommClientWaitTimed 1 0 failed\n"); + LIBCOMM_ELOG(WARNING, "LibCommClientWaitTimed 1 0 failed"); } goto loop; } else if (status == LIBCOMM_POLLING_WRITING) { - LIBCOMM_ELOG(LOG, "LibCommClientSecureOpen LIBCOMM_POLLING_WRITING\n"); + LIBCOMM_ELOG(LOG, "LibCommClientSecureOpen LIBCOMM_POLLING_WRITING"); if (LibCommClientWaitTimed(0, 1, conn, time(NULL) + timeout)) { - LIBCOMM_ELOG(WARNING, "LibCommClientWaitTimed 0 1 failed\n"); + LIBCOMM_ELOG(WARNING, "LibCommClientWaitTimed 0 1 failed"); } goto loop; } else if (status == LIBCOMM_POLLING_SYSCALL) { - LIBCOMM_ELOG(WARNING, "LibCommClientSecureOpen LIBCOMM_POLLING_SYSCALL\n"); + LIBCOMM_ELOG(WARNING, "LibCommClientSecureOpen LIBCOMM_POLLING_SYSCALL"); return LIBCOMM_POLLING_SYSCALL; } } - LIBCOMM_ELOG(LOG, "LibCommClientSecureOpen %d\n", status); + LIBCOMM_ELOG(LOG, "LibCommClientSecureOpen %d", status); return status; } @@ -1266,13 +1249,13 @@ int LibCommClientCheckPermissionCipherFile(const char* parent_dir, LibCommConn * if (!S_ISREG(cipherbuf.st_mode) || (cipherbuf.st_mode & (S_IRWXG | S_IRWXO)) || ((cipherbuf.st_mode & S_IRWXU) == S_IRWXU)) { - LIBCOMM_ELOG(WARNING, "The file \"%s\" permission should be u=rw(600) or less.\n", cipher_file); + LIBCOMM_ELOG(WARNING, "The file \"server%s\" permission should be u=rw(600) or less.\n", CIPHER_KEY_FILE); return -1; } if (!S_ISREG(randbuf.st_mode) || (randbuf.st_mode & (S_IRWXG | S_IRWXO)) || ((randbuf.st_mode & S_IRWXU) == S_IRWXU)) { - LIBCOMM_ELOG(WARNING, "The file \"%s\" permission should be u=rw(600) or less.\n", rand_file); + LIBCOMM_ELOG(WARNING, "The file \"server%s\" permission should be u=rw(600) or less.\n", RAN_KEY_FILE); return -1; } #endif @@ -1378,8 +1361,7 @@ int LibCommClientReadBlock(LibCommConn *conn, void* data, int size, int flags) ts.tv_sec = 0; ts.tv_nsec = 1000000; - // In our application, if we do not get an integrated message, we must continue receiving. - // + /* In our application, if we do not get an integrated message, we must continue receiving. */ while (nbytes != size) { int rc = 0; #ifdef USE_SSL diff --git a/src/gausskernel/cbb/communication/libcomm_utils/libcomm_interface.cpp b/src/gausskernel/cbb/communication/libcomm_utils/libcomm_interface.cpp index 3124bdf3a..baf1db5f0 100644 --- a/src/gausskernel/cbb/communication/libcomm_utils/libcomm_interface.cpp +++ b/src/gausskernel/cbb/communication/libcomm_utils/libcomm_interface.cpp @@ -1668,6 +1668,7 @@ int gs_wait_poll(gsocket* gs_sock_array, // array of producers node index // step 1: initialize local variables // int ret = 0; + const int interruptTimeOut = 60; // if waked by other threads, the flag is set to 1 struct libcomm_time_record time_record = {0}; time_record.time_enter = COMM_STAT_TIME(); @@ -1698,6 +1699,12 @@ int gs_wait_poll(gsocket* gs_sock_array, // array of producers node index time_out = timeout; } + /* If a cancel signal is received, we set gs_poll the default timeout 60s to avoid falling into wait(). */ + if (InterruptPending || t_thrd.int_cxt.ProcDiePending) { + time_out = (timeout > 0) ? timeout : interruptTimeOut; + LIBCOMM_ELOG(WARNING, "(r|wait poll)\t The gs_wait_poll receive Cancel Interrupt."); + } + time_record.wait_data_start = COMM_STAT_TIME(); COMM_TIMER_LOG("(r|wait poll)\tWait poll start."); pool_re = gs_poll(time_out); diff --git a/src/gausskernel/cbb/communication/libcomm_utils/libcomm_server_ssl.cpp b/src/gausskernel/cbb/communication/libcomm_utils/libcomm_server_ssl.cpp index ed20fb9f9..5c4e77330 100644 --- a/src/gausskernel/cbb/communication/libcomm_utils/libcomm_server_ssl.cpp +++ b/src/gausskernel/cbb/communication/libcomm_utils/libcomm_server_ssl.cpp @@ -402,24 +402,7 @@ static int comm_ssl_set_fd(SSL_INFO* port, int fd) SSL_set_bio(port->ssl, bio, bio); return 1; } -static void ShowCerts(SSL * ssl) -{ - X509 *cert; - char *line; - cert = SSL_get_peer_certificate(ssl); - if (cert != NULL) { - LIBCOMM_ELOG(LOG, "X509 subject:\n"); - line = X509_NAME_oneline(X509_get_subject_name(cert), 0, 0); - LIBCOMM_ELOG(LOG, "certificate: %s\n", line); - free(line); - line = X509_NAME_oneline(X509_get_issuer_name(cert), 0, 0); - LIBCOMM_ELOG(LOG, "Issued by: %s\n", line); - free(line); - X509_free(cert); - } else { - LIBCOMM_ELOG(LOG, "No certificate information.\n"); - } -} + /* * Brief : int open_server_SSL(SSL_INFO *port) * Description : Attempt to negotiate SSL connection. @@ -508,8 +491,7 @@ aloop: } return -2; } - LIBCOMM_ELOG(LOG, "after SSL_accept with %s encryption\n", SSL_get_cipher(port->ssl)); - ShowCerts(port->ssl); + LIBCOMM_ELOG(LOG, "after SSL_accept with encryption"); port->count = 0; /* Get client certificate, if available. */ @@ -813,8 +795,6 @@ static void comm_ssl_comm_init_server_ssl_pwd(SSL_CTX* sslContext) pfree_ext(parentdir); SSL_CTX_set_default_passwd_cb_userdata(sslContext, (char*)g_instance.attr.attr_network.server_key); - LIBCOMM_ELOG(LOG, "In comm_ssl_comm_init_server_ssl_pwd, SSL_CTX_set_default_passwd_cb_userdata server_key:%s", - (char*)g_instance.attr.attr_network.server_key); } void comm_initialize_SSL() @@ -872,14 +852,14 @@ void comm_initialize_SSL() if((buffer = getcwd(NULL,0)) == NULL){ LIBCOMM_ELOG(WARNING, "In comm_initialize_SSL, getcwd error"); } else{ - LIBCOMM_ELOG(LOG, "In comm_initialize_SSL, getcwd buffer:%s", buffer); free(buffer); } /* Load and verify server's certificate and private key */ if (SSL_CTX_use_certificate_chain_file(g_instance.attr.attr_network.SSL_server_context, \ g_instance.attr.attr_security.ssl_cert_file) != 1) { - LIBCOMM_ELOG(WARNING, "In comm_initialize_SSL, could not load server certificate file"); + LIBCOMM_ELOG(WARNING, "In comm_initialize_SSL, could not load server certificate file %s", + g_instance.attr.attr_security.ssl_cert_file); Assert(0); return; } @@ -898,7 +878,8 @@ void comm_initialize_SSL() #endif if (stat(g_instance.attr.attr_security.ssl_key_file, &buf) != 0) { - LIBCOMM_ELOG(WARNING, "In comm_initialize_SSL, could not access private key file"); + LIBCOMM_ELOG(WARNING, "In comm_initialize_SSL, could not access private key file %s", + g_instance.attr.attr_security.ssl_key_file); Assert(0); return; } @@ -914,24 +895,24 @@ void comm_initialize_SSL() #if !defined(WIN32) && !defined(__CYGWIN__) if (!S_ISREG(buf.st_mode) || (buf.st_mode & (S_IRWXG | S_IRWXO)) || ((buf.st_mode & S_IRWXU) == S_IRWXU)) { - LIBCOMM_ELOG(WARNING, "private key file \"%s\" has group or world access" - "Permissions should be u=rw (0600) or less.", - g_instance.attr.attr_security.ssl_key_file); + LIBCOMM_ELOG(WARNING, + "private key file \"%s\" has group or world access Permissions should be u=rw (0600) or less.", + g_instance.attr.attr_security.ssl_key_file); } #endif if (SSL_CTX_use_PrivateKey_file(g_instance.attr.attr_network.SSL_server_context, \ g_instance.attr.attr_security.ssl_key_file, \ SSL_FILETYPE_PEM) != 1) { - LIBCOMM_ELOG(WARNING, "In comm_initialize_SSL, could not load private key file %s", - g_instance.attr.attr_security.ssl_key_file); + LIBCOMM_ELOG(WARNING, "In comm_initialize_SSL, could not load private key file \"%s\"", + g_instance.attr.attr_security.ssl_key_file); Assert(0); return; } if (SSL_CTX_check_private_key(g_instance.attr.attr_network.SSL_server_context) != 1) { LIBCOMM_ELOG(LOG, "In comm_initialize_SSL, check of private key(%s) failed", - g_instance.attr.attr_security.ssl_key_file); + g_instance.attr.attr_security.ssl_key_file); } } @@ -939,8 +920,9 @@ void comm_initialize_SSL() #if !defined(WIN32) && !defined(__CYGWIN__) if (stat(g_instance.attr.attr_security.ssl_ca_file, &buf) == 0){ if (!S_ISREG(buf.st_mode) || (buf.st_mode & (S_IRWXG | S_IRWXO)) || ((buf.st_mode & S_IRWXU) == S_IRWXU)) { - LIBCOMM_ELOG(WARNING, "ca certificate file \"%s\" has group or world access" - "Permissions should be u=rw (0600) or less.", g_instance.attr.attr_security.ssl_ca_file); + LIBCOMM_ELOG(WARNING, + "ca certificate file \"%s\" has group or world access Permissions should be u=rw (0600) or less.", + g_instance.attr.attr_security.ssl_ca_file); Assert(0); return; } @@ -997,7 +979,7 @@ void comm_initialize_SSL() root_cert_list = SSL_load_client_CA_file(g_instance.attr.attr_security.ssl_ca_file); if (root_cert_list == NULL) { LIBCOMM_ELOG(LOG, "In comm_initialize_SSL, could not load root certificate file %s", - g_instance.attr.attr_security.ssl_ca_file); + g_instance.attr.attr_security.ssl_ca_file); } } @@ -1010,7 +992,7 @@ void comm_initialize_SSL() (void)X509_STORE_set_flags(cvstore, X509_V_FLAG_CRL_CHECK); } else { LIBCOMM_ELOG(WARNING, "In comm_initialize_SSL, could not load SSL certificate revocation list file %s", - g_instance.attr.attr_security.ssl_crl_file); + g_instance.attr.attr_security.ssl_crl_file); } } } diff --git a/src/gausskernel/cbb/communication/libcomm_utils/libcomm_thread.cpp b/src/gausskernel/cbb/communication/libcomm_utils/libcomm_thread.cpp index ca0955c75..ad6d68549 100644 --- a/src/gausskernel/cbb/communication/libcomm_utils/libcomm_thread.cpp +++ b/src/gausskernel/cbb/communication/libcomm_utils/libcomm_thread.cpp @@ -1803,7 +1803,7 @@ static int CommReceiverAcceptNewConnect(const struct sock_id *fdId, int selfid) *libcomm_data_port = (*libcomm_data_port)->next; pfree(tmp); } else { - LIBCOMM_ELOG(LOG, "(r|recv loop)\tSuccess to open server data port ssl:%p.", (*libcomm_data_port)->node.ssl); + LIBCOMM_ELOG(LOG, "(r|recv loop)\tSuccess to open server data port ssl."); } } #endif @@ -2010,6 +2010,8 @@ void commSenderFlowMain() /* Since not using PG_TRY, must reset error stack by hand */ t_thrd.log_cxt.error_context_stack = NULL; + t_thrd.log_cxt.call_stack = NULL; + /* Prevent interrupts while cleaning up */ HOLD_INTERRUPTS(); @@ -2113,6 +2115,8 @@ void commReceiverFlowMain() /* Since not using PG_TRY, must reset error stack by hand */ t_thrd.log_cxt.error_context_stack = NULL; + t_thrd.log_cxt.call_stack = NULL; + /* Prevent interrupts while cleaning up */ HOLD_INTERRUPTS(); @@ -2193,6 +2197,9 @@ void commAuxiliaryMain() /* Since not using PG_TRY, must reset error stack by hand */ t_thrd.log_cxt.error_context_stack = NULL; + + t_thrd.log_cxt.call_stack = NULL; + /* Prevent interrupts while cleaning up */ HOLD_INTERRUPTS(); @@ -2285,6 +2292,8 @@ void commReceiverMain(void* tid_callback) /* Since not using PG_TRY, must reset error stack by hand */ t_thrd.log_cxt.error_context_stack = NULL; + t_thrd.log_cxt.call_stack = NULL; + /* Prevent interrupts while cleaning up */ HOLD_INTERRUPTS(); diff --git a/src/gausskernel/cbb/communication/libcomm_utils/libcomm_util.cpp b/src/gausskernel/cbb/communication/libcomm_utils/libcomm_util.cpp index 6bc1177e2..22461383e 100644 --- a/src/gausskernel/cbb/communication/libcomm_utils/libcomm_util.cpp +++ b/src/gausskernel/cbb/communication/libcomm_utils/libcomm_util.cpp @@ -159,6 +159,9 @@ uint32 comm_get_cpylen(const char* src, uint32 max_len) { uint32 cpylen = 0; + if (src == NULL || strlen(src) == 0) { + return cpylen; + } /* * src is from the network * maybe do not have '\0' diff --git a/src/gausskernel/cbb/instruments/CMakeLists.txt b/src/gausskernel/cbb/instruments/CMakeLists.txt index b16084ba7..73533a005 100755 --- a/src/gausskernel/cbb/instruments/CMakeLists.txt +++ b/src/gausskernel/cbb/instruments/CMakeLists.txt @@ -18,6 +18,7 @@ set(CMAKE_MODULE_PATH ${PROJECT_OPENGS_DIR}/src/gausskernel/cbb/instruments/wdr ${PROJECT_OPENGS_DIR}/src/gausskernel/cbb/instruments/workload ${PROJECT_OPENGS_DIR}/src/gausskernel/cbb/instruments/percentile + ${PROJECT_OPENGS_DIR}/src/gausskernel/cbb/instruments/func_control ) @@ -32,4 +33,5 @@ add_subdirectory(utils) add_subdirectory(wdr) add_subdirectory(workload) add_subdirectory(percentile) +add_subdirectory(func_control) diff --git a/src/gausskernel/cbb/instruments/Makefile b/src/gausskernel/cbb/instruments/Makefile index d6ee780e1..52273f782 100644 --- a/src/gausskernel/cbb/instruments/Makefile +++ b/src/gausskernel/cbb/instruments/Makefile @@ -24,7 +24,7 @@ subdir = src/gausskernel/cbb/instruments top_builddir = ../../../.. include $(top_builddir)/src/Makefile.global -SUBDIRS = utils unique_sql workload event user percentile wdr slow_query ash capture_view statement +SUBDIRS = utils unique_sql workload event user percentile wdr slow_query ash capture_view statement func_control include $(top_srcdir)/src/gausskernel/common.mk diff --git a/src/gausskernel/cbb/instruments/capture_view/capture_view.cpp b/src/gausskernel/cbb/instruments/capture_view/capture_view.cpp index 6db930969..c454aff4d 100644 --- a/src/gausskernel/cbb/instruments/capture_view/capture_view.cpp +++ b/src/gausskernel/cbb/instruments/capture_view/capture_view.cpp @@ -358,6 +358,7 @@ Datum capture_view_to_json(PG_FUNCTION_ARGS) pfree_ext(filter); /* get query result to json */ + SPI_STACK_LOG("connect", NULL, NULL); if ((rc = SPI_connect()) != SPI_OK_CONNECT) { ereport(ERROR, (errmodule(MOD_INSTR), @@ -378,6 +379,7 @@ Datum capture_view_to_json(PG_FUNCTION_ARGS) } PG_CATCH(); { + SPI_STACK_LOG("finish", NULL, NULL); SPI_finish(); pfree(query.data); pfree(view_name); @@ -392,6 +394,7 @@ Datum capture_view_to_json(PG_FUNCTION_ARGS) } PG_END_TRY(); + SPI_STACK_LOG("finish", NULL, NULL); SPI_finish(); pfree(query.data); pfree(view_name); diff --git a/src/gausskernel/cbb/instruments/func_control/CMakeLists.txt b/src/gausskernel/cbb/instruments/func_control/CMakeLists.txt new file mode 100644 index 000000000..33032d251 --- /dev/null +++ b/src/gausskernel/cbb/instruments/func_control/CMakeLists.txt @@ -0,0 +1,19 @@ +#This is the main CMAKE for build bin. +AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR} TGT_func_control_SRC) + +set(TGT_func_control_INC + ${PROJECT_SRC_DIR}/include + ${PROJECT_SRC_DIR}/lib/gstrace + ${LIBCGROUP_INCLUDE_PATH} + ${PROJECT_SRC_DIR}/include/libcomm + ${LIBORC_INCLUDE_PATH} + ${PROTOBUF_INCLUDE_PATH} + ${LIBPARQUET_INCLUDE_PATH} + ${ZLIB_INCLUDE_PATH} +) + +set(func_control_DEF_OPTIONS ${MACRO_OPTIONS}) +set(func_control_COMPILE_OPTIONS ${OPTIMIZE_OPTIONS} ${OS_OPTIONS} ${PROTECT_OPTIONS} ${WARNING_OPTIONS} ${BIN_SECURE_OPTIONS} ${CHECK_OPTIONS}) +set(func_control_LINK_OPTIONS ${BIN_LINK_OPTIONS}) +add_static_objtarget(gausskernel_cbb_instruments_func_control TGT_func_control_SRC TGT_func_control_INC "${func_control_DEF_OPTIONS}" "${func_control_COMPILE_OPTIONS}" "${func_control_LINK_OPTIONS}") + diff --git a/src/gausskernel/cbb/instruments/func_control/Makefile b/src/gausskernel/cbb/instruments/func_control/Makefile new file mode 100644 index 000000000..92931c58d --- /dev/null +++ b/src/gausskernel/cbb/instruments/func_control/Makefile @@ -0,0 +1,35 @@ +# +# Copyright (c) 2020 Huawei Technologies Co.,Ltd. +# +# openGauss is licensed under Mulan PSL v2. +# You can use this software according to the terms and conditions of the Mulan PSL v2. +# You may obtain a copy of Mulan PSL v2 at: +# +# http://license.coscl.org.cn/MulanPSL2 +# +# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, +# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, +# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. +# See the Mulan PSL v2 for more details. +# +# ------------------------------------------------------------------------- +# +# IDENTIFICATION +# src/gausskernel/cbb/instruments/func_control/Makefile +# +# ------------------------------------------------------------------------- + +subdir = src/gausskernel/cbb/instruments/func_control +top_builddir = ../../../../.. +include $(top_builddir)/src/Makefile.global + +ifneq "$(MAKECMDGOALS)" "clean" + ifneq "$(MAKECMDGOALS)" "distclean" + ifneq "$(shell which g++ |grep hutaf_llt |wc -l)" "1" + -include $(DEPEND) + endif + endif +endif +OBJS = instr_func_control.o + +include $(top_srcdir)/src/gausskernel/common.mk diff --git a/src/gausskernel/cbb/instruments/func_control/instr_func_control.cpp b/src/gausskernel/cbb/instruments/func_control/instr_func_control.cpp new file mode 100644 index 000000000..24dc11e00 --- /dev/null +++ b/src/gausskernel/cbb/instruments/func_control/instr_func_control.cpp @@ -0,0 +1,433 @@ +/* + * Copyright (c) 2021 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors + * + * openGauss is licensed under Mulan PSL v2. + * You can use this software according to the terms and conditions of the Mulan PSL v2. + * You may obtain a copy of Mulan PSL v2 at: + * + * http://license.coscl.org.cn/MulanPSL2 + * + * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, + * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, + * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + * See the Mulan PSL v2 for more details. + * ------------------------------------------------------------------------- + * + * instr_func_control.cpp + * functions for dynamic function control manager + * + * IDENTIFICATION + * src/gausskernel/cbb/instruments/func_control/instr_func_control.cpp + * + * ------------------------------------------------------------------------- + */ + +#include "instruments/instr_func_control.h" +#include "instruments/instr_statement.h" +#include "utils/builtins.h" +#include "access/hash.h" +#include "funcapi.h" + +static const int INSTRUMENTS_DYNAMIC_FUNC_CTL_ATTRNUM = 2; + +static void stmt_track_hash_search(bool remove_entry, StringInfo buffer, bool log_entry); +typedef void (*instr_dynamic_func_handle)(StringInfo result, const char *action, const Datum *param_datums, + int no_params); +static void instr_stmt_dynamic_handler(StringInfo result, const char *action, const Datum *param_datums, int no_params); + +typedef struct { + const char *func_name; + instr_dynamic_func_handle func_handle; +} InstrFuncHandle; + +typedef struct { + uint64 unique_sql_id; + StatLevel stmt_track_level; +} DynamicStmtTrackEntry; + +typedef struct { + ParallelFunctionState* state; + TupleTableSlot* slot; +} FuncCtlInfo; + +static InstrFuncHandle func_handle_mapper[] = { + {"STMT", &instr_stmt_dynamic_handler} +}; + +static instr_dynamic_func_handle get_dynamic_func_handler(const char *func_name) +{ + for (uint32 i = 0; i < (sizeof(func_handle_mapper) / sizeof(func_handle_mapper[0])); i++) { + if (pg_strcasecmp(func_name, func_handle_mapper[i].func_name) == 0) { + return func_handle_mapper[i].func_handle; + } + } + return NULL; +} + +static void check_func_control_scope(const char *scope) +{ + if (pg_strcasecmp(scope, "LOCAL") == 0) { + return; + } + if (pg_strcasecmp(scope, "GLOBAL") == 0) { +#ifdef ENABLE_MULTIPLE_NODES + return; +#endif + } + ereport(ERROR, (errmodule(MOD_INSTR), errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("[FuncCtl] scope options: 'LOCAL' when single node mode, or 'LOCAL/GLOBAL' when distributed mode"), + errdetail("invalid scope options:%s", scope), + errcause("invalid scope options"), + erraction("scope should be 'LOCAL' or 'GLOBAL'"))); +} + +static void get_local_func_ctl_info(PG_FUNCTION_ARGS, Tuplestorestate *tupStore, TupleDesc tupDesc, + const Datum *param_datums, int no_params) +{ + char *func_name = text_to_cstring(PG_GETARG_TEXT_PP(1)); + char *action = text_to_cstring(PG_GETARG_TEXT_PP(2)); + + Datum values[INSTRUMENTS_DYNAMIC_FUNC_CTL_ATTRNUM]; + bool nulls[INSTRUMENTS_DYNAMIC_FUNC_CTL_ATTRNUM] = {false}; + int rc = 0; + StringInfoData result = {0}; + initStringInfo(&result); + + rc = memset_s(values, sizeof(values), 0, sizeof(values)); + securec_check(rc, "\0", "\0"); + rc = memset_s(nulls, sizeof(nulls), 0, sizeof(nulls)); + securec_check(rc, "\0", "\0"); + instr_dynamic_func_handle func_handle = get_dynamic_func_handler(func_name); + if (func_handle == NULL) { + appendStringInfo(&result, "invalid func name, options:[STMT]"); + } else { + appendStringInfo(&result, "ACTION:\t[%s]->[%s]\n", func_name, action); + appendStringInfo(&result, "RESULT:\n"); + func_handle(&result, action, param_datums, no_params); + } + + values[0] = CStringGetTextDatum(g_instance.attr.attr_common.PGXCNodeName); + values[1] = CStringGetTextDatum(result.data); + tuplestore_putvalues(tupStore, tupDesc, values, nulls); + + pfree_ext(result.data); +} + +static FuncCtlInfo *get_remote_func_ctl_info(PG_FUNCTION_ARGS, TupleDesc tupleDesc, + const Datum *param_datums, int no_params) +{ + char *func_name = text_to_cstring(PG_GETARG_TEXT_PP(1)); + char *action = text_to_cstring(PG_GETARG_TEXT_PP(2)); + + StringInfoData params_str; + initStringInfo(¶ms_str); + + if (no_params == 0 || param_datums == NULL) { + appendStringInfo(¶ms_str, "null"); + } else { + appendStringInfo(¶ms_str, "'{"); + for (int i = 0; i < no_params; i++) { + char *tmp = TextDatumGetCString(param_datums[i]); + appendStringInfo(¶ms_str, "\"%s\"", tmp); + + if (i != no_params - 1) { + appendStringInfo(¶ms_str, ","); + } + pfree_ext(tmp); + } + appendStringInfo(¶ms_str, "}'"); + } + + StringInfoData buf; + FuncCtlInfo *func_ctl_info = (FuncCtlInfo*)palloc0(sizeof(FuncCtlInfo)); + + initStringInfo(&buf); + appendStringInfo(&buf, "SELECT * from dynamic_func_control('LOCAL', '%s', '%s', %s);", + func_name, action, params_str.data); + + func_ctl_info->state = RemoteFunctionResultHandler(buf.data, NULL, NULL, true, EXEC_ON_ALL_NODES, true); + func_ctl_info->slot = MakeSingleTupleTableSlot(tupleDesc); + + pfree_ext(buf.data); + pfree_ext(params_str.data); + return func_ctl_info; +} + +Datum dynamic_func_control(PG_FUNCTION_ARGS) +{ + if (!superuser() && !isMonitoradmin(GetUserId())) { + ereport(ERROR, (errmodule(MOD_INSTR), errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), + errmsg("[FuncCtl] only system/monitor admin can use dynamic func control"), + errdetail("user should be 'Sysadmin' or 'Monitoradmin'"), + errcause("user without enough permission"), + erraction("check user permission to run the proc"))); + } + char *scope = text_to_cstring(PG_GETARG_TEXT_PP(0)); + check_func_control_scope(scope); + + Datum params = PG_GETARG_DATUM(3); + ArrayType *param_arr = NULL; + Datum *param_datums = NULL; + FuncCtlInfo *func_ctl_info = NULL; + int no_params = 0; + + ReturnSetInfo *rsinfo = (ReturnSetInfo *) fcinfo->resultinfo; + MemoryContext oldcontext = MemoryContextSwitchTo(rsinfo->econtext->ecxt_per_query_memory); + + if (PointerIsValid(DatumGetPointer(params))) { + param_arr = DatumGetArrayTypeP(params); + deconstruct_array(param_arr, TEXTOID, -1, false, 'i', ¶m_datums, NULL, &no_params); + } + + TupleDesc tupdesc = CreateTemplateTupleDesc(INSTRUMENTS_DYNAMIC_FUNC_CTL_ATTRNUM, false, TAM_HEAP); + TupleDescInitEntry(tupdesc, (AttrNumber)1, "node_name", TEXTOID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber)2, "result", TEXTOID, -1, 0); + + rsinfo->returnMode = SFRM_Materialize; + rsinfo->setResult = tuplestore_begin_heap(true, false, u_sess->attr.attr_memory.work_mem); + rsinfo->setDesc = BlessTupleDesc(tupdesc); + + get_local_func_ctl_info(fcinfo, rsinfo->setResult, rsinfo->setDesc, param_datums, no_params); + if (pg_strcasecmp(scope, "GLOBAL") == 0) { + func_ctl_info = get_remote_func_ctl_info(fcinfo, rsinfo->setDesc, param_datums, no_params); + } + + while (func_ctl_info != NULL) { + Tuplestorestate* tupstore = func_ctl_info->state->tupstore; + TupleTableSlot* slot = func_ctl_info->slot; + + if (!tuplestore_gettupleslot(tupstore, true, false, slot)) { + FreeParallelFunctionState(func_ctl_info->state); + ExecDropSingleTupleTableSlot(slot); + pfree_ext(func_ctl_info); + break; + } + + tuplestore_puttupleslot(rsinfo->setResult, slot); + ExecClearTuple(slot); + } + tuplestore_donestoring(rsinfo->setResult); + MemoryContextSwitchTo(oldcontext); + + if (DatumGetPointer(params) != DatumGetPointer(param_arr)) { + pfree(param_arr); + } + pfree_ext(param_datums); + return (Datum) 0; +} + +static int stmt_track_match_func(const void* k1, const void* k2, Size size) +{ + ((void)size); /* not used argument */ + if (k1 != NULL && k2 != NULL && *((uint64*)k1) == *((uint64*)k2)) { + return 0; + } else { + return 1; + } +} + +void InitTrackStmtControl() +{ + MemoryContext mem_cxt = AllocSetContextCreate(g_instance.instance_context, + "DynamicFuncCtrolMgr", + ALLOCSET_DEFAULT_MINSIZE, + ALLOCSET_DEFAULT_INITSIZE, + ALLOCSET_DEFAULT_MAXSIZE, + SHARED_CONTEXT); + + HASHCTL ctl; + const long stmt_track_hash_count = 100; + errno_t rc = memset_s(&ctl, sizeof(ctl), 0, sizeof(ctl)); + securec_check_c(rc, "\0", "\0"); + + ctl.hcxt = mem_cxt; + ctl.keysize = sizeof(uint64); + ctl.entrysize = sizeof(DynamicStmtTrackEntry); + ctl.match = stmt_track_match_func; + + g_instance.stat_cxt.stmt_track_control_hashtbl = hash_create("dynamic stmt track control hash table", + stmt_track_hash_count, &ctl, HASH_ELEM | HASH_SHRCTX | HASH_BLOBS | HASH_COMPARE | HASH_NOEXCEPT); +} + +/* + * return true if successful + */ +static bool extrack_unique_sql_id(StringInfo buffer, const char *unique_sql_id_str, uint64 *unique_sql_id) +{ + /* unique sql id should >= 0 */ + if (unique_sql_id_str == NULL) { + appendStringInfo(buffer, "FAILED, reason: unique sql id should not be NULL!"); + return false; + } + for (size_t i = 0; i < strlen(unique_sql_id_str); i++) { + if (unique_sql_id_str[i] == '-') { + appendStringInfo(buffer, "FAILED, reason: unique sql id should not contain '-'!"); + return false; + } else if (unique_sql_id_str[i] != ' ') { + break; + } + } + + char *endptr = NULL; + errno = 0; + *unique_sql_id = pg_strtouint64(unique_sql_id_str, &endptr, 0); + if (errno != 0) { + appendStringInfo(buffer, "FAILED, reason: %s", gs_strerror(errno)); + errno = 0; + return false; + } + if (endptr != (unique_sql_id_str + strlen(unique_sql_id_str))) { + appendStringInfo(buffer, "FAILED, reason: invalid unique sql id (%s), should be uint64", unique_sql_id_str); + return false; + } + return true; +} + +static void instr_stmt_func_action_track(StringInfo buffer, const Datum *param_datums, int no_params) +{ + const int track_action_param_count = 2; + if (no_params != track_action_param_count) { + appendStringInfo(buffer, "FAILED, params should contain two elements, e.g. '{\"1234\", \"L1\"}'"); + return; + } + + /* get unique sql id */ + char *unique_sql_id_str = TextDatumGetCString(param_datums[0]); + uint64 unique_sql_id = 0; + if (!extrack_unique_sql_id(buffer, unique_sql_id_str, &unique_sql_id)) { + pfree_ext(unique_sql_id_str); + return; + } + pfree_ext(unique_sql_id_str); + + /* get track level against the unique sql */ + char *track_level = TextDatumGetCString(param_datums[1]); + StatLevel stmt_level = LEVEL_INVALID; + if (pg_strcasecmp("L0", track_level) == 0) { + stmt_level = STMT_TRACK_L0; + } else if (pg_strcasecmp("L1", track_level) == 0) { + stmt_level = STMT_TRACK_L1; + } else if (pg_strcasecmp("L2", track_level) == 0) { + stmt_level = STMT_TRACK_L2; + } else { + appendStringInfo(buffer, "FAILED, invalid levels, options:[L0/L1/L2]"); + return; + } + + DynamicStmtTrackEntry *entry = NULL; + LWLockAcquire(InstrStmtTrackCtlLock, LW_SHARED); + entry = (DynamicStmtTrackEntry*)hash_search(g_instance.stat_cxt.stmt_track_control_hashtbl, &unique_sql_id, + HASH_FIND, NULL); + if (entry == NULL) { + LWLockRelease(InstrStmtTrackCtlLock); + + LWLockAcquire(InstrStmtTrackCtlLock, LW_EXCLUSIVE); + entry = (DynamicStmtTrackEntry*)hash_search(g_instance.stat_cxt.stmt_track_control_hashtbl, + &unique_sql_id, HASH_ENTER, NULL); + if (entry == NULL) { + appendStringInfo(buffer, "FAILED, out of memory!"); + LWLockRelease(InstrStmtTrackCtlLock); + return; + } + } + entry->stmt_track_level = stmt_level; + LWLockRelease(InstrStmtTrackCtlLock); + appendStringInfo(buffer, "SUCCESSFUL - stmt (%lu) tracked, level (L%d)", unique_sql_id, (stmt_level - 1)); +} + +static void instr_stmt_func_action_untrack(StringInfo buffer, const Datum *param_datums, int no_params) +{ + if (no_params != 1) { + appendStringInfo(buffer, "\tFAILED, UNTRACK need 1 param(unique id)\n"); + return; + } + + /* get unique sql id */ + char *unique_sql_id_str = TextDatumGetCString(param_datums[0]); + uint64 unique_sql_id = 0; + if (!extrack_unique_sql_id(buffer, unique_sql_id_str, &unique_sql_id)) { + pfree_ext(unique_sql_id_str); + return; + } + + DynamicStmtTrackEntry *entry = NULL; + LWLockAcquire(InstrStmtTrackCtlLock, LW_SHARED); + entry = (DynamicStmtTrackEntry*)hash_search(g_instance.stat_cxt.stmt_track_control_hashtbl, &unique_sql_id, + HASH_FIND, NULL); + if (entry == NULL) { + appendStringInfo(buffer, "\tFAILED, stmt(%s) not tracked!", unique_sql_id_str); + } else { + LWLockRelease(InstrStmtTrackCtlLock); + LWLockAcquire(InstrStmtTrackCtlLock, LW_EXCLUSIVE); + (void)hash_search(g_instance.stat_cxt.stmt_track_control_hashtbl, &unique_sql_id, HASH_REMOVE, NULL); + appendStringInfo(buffer, "\tSUCCESSFUL, stmt(%s) is removed from tracking list!", unique_sql_id_str); + } + LWLockRelease(InstrStmtTrackCtlLock); + pfree_ext(unique_sql_id_str); +} + +static void instr_stmt_func_action_clean(StringInfo buffer) +{ + appendStringInfo(buffer, "\tCLEANED INFO"); + stmt_track_hash_search(true, buffer, true); +} + +static void stmt_track_hash_search(bool remove_entry, StringInfo buffer, bool log_entry) +{ + HASH_SEQ_STATUS hash_seq; + DynamicStmtTrackEntry *entry = NULL; + + LWLockAcquire(InstrStmtTrackCtlLock, LW_SHARED); + hash_seq_init(&hash_seq, g_instance.stat_cxt.stmt_track_control_hashtbl); + while ((entry = (DynamicStmtTrackEntry*)hash_seq_search(&hash_seq)) != NULL) { + if (buffer != NULL && log_entry) { + appendStringInfo(buffer, "\nLEVEL: L%d, UNIQUE ID: %11lu", entry->stmt_track_level - 1, + entry->unique_sql_id); + } + if (remove_entry) { + hash_search(g_instance.stat_cxt.stmt_track_control_hashtbl, &entry->unique_sql_id, HASH_REMOVE, NULL); + } + } + LWLockRelease(InstrStmtTrackCtlLock); +} + +static void instr_stmt_func_action_list(StringInfo buffer) +{ + appendStringInfo(buffer, "\tLIST TRACKING STMT INFO"); + stmt_track_hash_search(false, buffer, true); +} + +static void instr_stmt_dynamic_handler(StringInfo result, const char *action, const Datum *param_datums, int no_params) +{ + if (pg_strcasecmp("TRACK", action) == 0) { + instr_stmt_func_action_track(result, param_datums, no_params); + } else if (pg_strcasecmp("UNTRACK", action) == 0) { + instr_stmt_func_action_untrack(result, param_datums, no_params); + } else if (pg_strcasecmp("CLEAN", action) == 0) { + instr_stmt_func_action_clean(result); + } else if (pg_strcasecmp("LIST", action) == 0) { + instr_stmt_func_action_list(result); + } else { + appendStringInfo(result, "Func(STMT) - invalid action name, options:[TRACK|UNTRACK|CLEAN|LIST]"); + } +} + +StatLevel instr_track_stmt_find_level() +{ + DynamicStmtTrackEntry *entry = NULL; + uint64 key = u_sess->unique_sql_cxt.unique_sql_id; + StatLevel specified_level = STMT_TRACK_OFF; + + if (hash_get_num_entries(g_instance.stat_cxt.stmt_track_control_hashtbl) == 0) { + return specified_level; + } + + LWLockAcquire(InstrStmtTrackCtlLock, LW_SHARED); + entry = (DynamicStmtTrackEntry*)hash_search(g_instance.stat_cxt.stmt_track_control_hashtbl, &key, HASH_FIND, NULL); + if (entry != NULL) { + specified_level = entry->stmt_track_level; + } + LWLockRelease(InstrStmtTrackCtlLock); + return specified_level; +} diff --git a/src/gausskernel/cbb/instruments/statement/instr_handle_mgr.cpp b/src/gausskernel/cbb/instruments/statement/instr_handle_mgr.cpp index e2d6f2011..6d9fd1b1f 100644 --- a/src/gausskernel/cbb/instruments/statement/instr_handle_mgr.cpp +++ b/src/gausskernel/cbb/instruments/statement/instr_handle_mgr.cpp @@ -133,6 +133,9 @@ void statement_init_metric_context() } instr_stmt_report_stat_at_handle_init(); + if (IsConnFromCoord()) { + instr_stmt_dynamic_change_level(); + } } } @@ -334,9 +337,16 @@ void statement_commit_metirc_context() (void)syscalllockAcquire(&u_sess->statement_cxt.list_protect); - /* ignore record to persist (to statement_history) if unique sql id = 0 */ + /* + * Rules to persist handle to statement_history + * - ignore record to persist (to statement_history) if unique sql id = 0 + * - dynamic tracked sql(dynamic_track_level >= L0) + * - full sql(statement_level[0] >= L0) + * - slow sql(statement_leve[1] >= L0 && duration >= log_min_duration_statement && log_min_duration_statement > 0) + */ if (CURRENT_STMT_METRIC_HANDLE->unique_query_id != 0 && - (u_sess->statement_cxt.statement_level[0] >= STMT_TRACK_L0 || + (CURRENT_STMT_METRIC_HANDLE->dynamic_track_level >= STMT_TRACK_L0 || + u_sess->statement_cxt.statement_level[0] >= STMT_TRACK_L0 || (u_sess->statement_cxt.statement_level[1] >= STMT_TRACK_L0 && (CURRENT_STMT_METRIC_HANDLE->finish_time - CURRENT_STMT_METRIC_HANDLE->start_time) >= CURRENT_STMT_METRIC_HANDLE->slow_query_threshold && diff --git a/src/gausskernel/cbb/instruments/statement/instr_statement.cpp b/src/gausskernel/cbb/instruments/statement/instr_statement.cpp index c5d1be35d..d717ee9bf 100755 --- a/src/gausskernel/cbb/instruments/statement/instr_statement.cpp +++ b/src/gausskernel/cbb/instruments/statement/instr_statement.cpp @@ -64,6 +64,7 @@ #include "utils/fmgroids.h" #include "utils/relcache.h" #include "commands/copy.h" +#include "instruments/instr_func_control.h" #define MAX_SLOW_QUERY_RETENSION_DAYS 604800 #define MAX_FULL_SQL_RETENSION_SEC 86400 @@ -1471,10 +1472,28 @@ void instr_stmt_report_query(uint64 unique_query_id) if (!u_sess->attr.attr_common.track_stmt_parameter) { CURRENT_STMT_METRIC_HANDLE->query = FindCurrentUniqueSQL(); } else { + const char* query_string = NULL; + char* mask_string = NULL; + if (u_sess->unique_sql_cxt.curr_single_unique_sql != NULL) { - instr_stmt_track_param_query(u_sess->unique_sql_cxt.curr_single_unique_sql); + query_string = u_sess->unique_sql_cxt.curr_single_unique_sql; } else { - instr_stmt_track_param_query(t_thrd.postgres_cxt.debug_query_string); + query_string = t_thrd.postgres_cxt.debug_query_string; + } + + if (query_string == NULL) { + return; + } + + mask_string = maskPassword(query_string); + if (mask_string == NULL) { + mask_string = (char*)query_string; + } + + instr_stmt_track_param_query(mask_string); + + if (mask_string != query_string) { + pfree(mask_string); } } @@ -1616,7 +1635,7 @@ void instr_stmt_report_query_plan(QueryDesc *queryDesc) { StatementStatContext *ssctx = (StatementStatContext *)u_sess->statement_cxt.curStatementMetrics; if (queryDesc == NULL || ssctx == NULL || ssctx->level <= STMT_TRACK_L0 - || ssctx->level > STMT_TRACK_L2 || ssctx->plan_size != 0) { + || ssctx->level > STMT_TRACK_L2 || ssctx->plan_size != 0 || u_sess->statement_cxt.executer_run_level > 1) { return; } /* when getting plan directly from CN, the plan is partial, deparse plan will be failed, @@ -1675,3 +1694,21 @@ static bool is_valid_detail_record(uint32 bytea_data_len, const char *details, u return true; } + +void instr_stmt_dynamic_change_level() +{ + CHECK_STMT_HANDLE(); + + /* if find user defined statement level, dynamic change the statement track level */ + StatLevel specified_level = instr_track_stmt_find_level(); + if (specified_level <= STMT_TRACK_OFF) { + return; + } + + /* at commit stage, for dynamic track utility, need a symbol to decide flush the handle or not */ + CURRENT_STMT_METRIC_HANDLE->level = (specified_level > CURRENT_STMT_METRIC_HANDLE->level) ? + specified_level : CURRENT_STMT_METRIC_HANDLE->level; + CURRENT_STMT_METRIC_HANDLE->dynamic_track_level = specified_level; + ereport(DEBUG1, (errmodule(MOD_INSTR), errmsg("[Statement] change (%lu) track level to L%d", + u_sess->unique_sql_cxt.unique_sql_id, CURRENT_STMT_METRIC_HANDLE->level - 1))); +} diff --git a/src/gausskernel/cbb/instruments/unique_sql/instr_unique_sql.cpp b/src/gausskernel/cbb/instruments/unique_sql/instr_unique_sql.cpp index d7302bc9c..002eea66f 100755 --- a/src/gausskernel/cbb/instruments/unique_sql/instr_unique_sql.cpp +++ b/src/gausskernel/cbb/instruments/unique_sql/instr_unique_sql.cpp @@ -1739,6 +1739,9 @@ void GenerateUniqueSQLInfo(const char* sql, Query* query) query->uniqueSQLId = u_sess->unique_sql_cxt.unique_sql_id; u_sess->slow_query_cxt.slow_query.unique_sql_id = u_sess->unique_sql_cxt.unique_sql_id; + /* dynamic enable statement tracking */ + instr_stmt_dynamic_change_level(); + if (!OidIsValid(u_sess->unique_sql_cxt.unique_sql_cn_id)) { Oid node_oid = get_pgxc_nodeoid(g_instance.attr.attr_common.PGXCNodeName); u_sess->unique_sql_cxt.unique_sql_cn_id = get_pgxc_node_id(node_oid); @@ -1819,6 +1822,9 @@ static void SetLocalUniqueSQLId(List* query_list) #endif instr_stmt_report_query(u_sess->unique_sql_cxt.unique_sql_id); + /* dynamic enable statement tracking */ + instr_stmt_dynamic_change_level(); + /* for BE message, only can have one SQL each time, * so set top to true, then n_calls can be Updated * in PortalRun diff --git a/src/gausskernel/cbb/instruments/utils/unique_query.cpp b/src/gausskernel/cbb/instruments/utils/unique_query.cpp index b8fb27cb9..30a51c1d1 100755 --- a/src/gausskernel/cbb/instruments/utils/unique_query.cpp +++ b/src/gausskernel/cbb/instruments/utils/unique_query.cpp @@ -360,8 +360,12 @@ void UniqueSql::JumbleRangeTable(pgssJumbleState* jstate, List* rtable) APP_JUMB(rte->rtekind); switch (rte->rtekind) { case RTE_RELATION: - if (rte->ispartrel && rte->isContainPartition && OidIsValid(rte->partitionOid)) { - APP_JUMB(rte->partitionOid); + if (rte->ispartrel) { + if (rte->isContainPartition && OidIsValid(rte->partitionOid)) { + APP_JUMB(rte->partitionOid); + } else if (rte->isContainSubPartition && OidIsValid(rte->subpartitionOid)) { + APP_JUMB(rte->subpartitionOid); + } } else { APP_JUMB(rte->relid); } diff --git a/src/gausskernel/cbb/instruments/wdr/generate_report.cpp b/src/gausskernel/cbb/instruments/wdr/generate_report.cpp index a01f44a80..8cae36ff4 100644 --- a/src/gausskernel/cbb/instruments/wdr/generate_report.cpp +++ b/src/gausskernel/cbb/instruments/wdr/generate_report.cpp @@ -1096,7 +1096,7 @@ static void SQLNodeTotalElapsedTime(report_params* params) /* SQL ordered by Total Elapsed Time */ appendStringInfo(&query, - "select t2.snap_unique_sql_id as \"Unique SQL Id\", t2.snap_user_name as \"User Name\"," + "select /*+ hashjoin(c1 c2)*/t2.snap_unique_sql_id as \"Unique SQL Id\", t2.snap_user_name as \"User Name\"," " (t2.snap_total_elapse_time - coalesce(t1.snap_total_elapse_time, 0)) as \"Total Elapse Time(us)\", " " (t2.snap_n_calls - coalesce(t1.snap_n_calls, 0)) as \"Calls\", " " round(\"Total Elapse Time(us)\"/greatest(\"Calls\", 1), 0) as \"Avg Elapse Time(us)\", " @@ -1123,9 +1123,9 @@ static void SQLNodeTotalElapsedTime(report_params* params) " (t2.snap_hash_spill_count - coalesce(t1.snap_hash_spill_count, 0)) as \"Hash Spill Count\", " " (t2.snap_hash_spill_size - coalesce(t1.snap_hash_spill_size, 0)) as \"Hash Spill Size(KB)\", " " LEFT(t2.snap_query, 25) as \"SQL Text\" " - " from (select * from snapshot.snap_summary_statement where snapshot_id = %ld and snap_node_name = '%s') t1" + " from (select * from snapshot.snap_summary_statement as c1 where snapshot_id = %ld and snap_node_name = '%s') t1" " right join " - " (select * from snapshot.snap_summary_statement where snapshot_id = %ld and snap_node_name = '%s') t2" + " (select * from snapshot.snap_summary_statement as c2 where snapshot_id = %ld and snap_node_name = '%s') t2" " on t1.snap_unique_sql_id = t2.snap_unique_sql_id and t1.snap_user_id = t2.snap_user_id order by \"Total " "Elapse Time(us)\" desc limit 200;", params->begin_snap_id, @@ -3464,8 +3464,6 @@ void GenReport::get_summary_load_profile(report_params* params) } #ifdef ENABLE_MULTIPLE_NODES -/* summary ratios about instance effciency: buffer hit ratio, cpu efficiency ratio, radio of redo - * with nowait, soft parse ratio and excution without parse ratio */ static void get_summary_instance_efficiency_percentages(report_params* params, dashboard* dash) { List* query_result = NIL; @@ -3473,13 +3471,12 @@ static void get_summary_instance_efficiency_percentages(report_params* params, d initStringInfo(&query); appendStringInfo(&query, - "select " - " unnest(array['Buffer Hit %%', 'Effective CPU %%', 'Redo NoWait %%', 'Soft Parse %%', 'Non-Parse CPU %%']) as \"Metric Name\", " - " unnest(array[case when s1.all_reads = 0 then 1 else round(s1.blks_hit * 100 / s1.all_reads) end, s2.cpu_to_elapsd, s3.redo_nowait, s4.soft_parse, s5.non_parse]) as \"Metric Value\" " + "select 'Buffer Hit %%: ' as \"Metric Name\", " + " case when s.all_reads = 0 then 1 else round(s.blks_hit * 100 / s.all_reads, 2) end as \"Metric Value\" " "from " " (select (snap_2.all_reads - coalesce(snap_1.all_reads, 0)) as all_reads, " " (snap_2.blks_hit - coalesce(snap_1.blks_hit, 0)) as blks_hit " - " from " + " from" " (select sum(coalesce(snap_blks_read, 0) + coalesce(snap_blks_hit, 0)) as all_reads, " " coalesce(sum(snap_blks_hit), 0) as blks_hit " " from snapshot.snap_summary_stat_database " @@ -3487,64 +3484,8 @@ static void get_summary_instance_efficiency_percentages(report_params* params, d " (select sum(coalesce(snap_blks_read, 0) + coalesce(snap_blks_hit, 0)) as all_reads, " " coalesce(sum(snap_blks_hit), 0) as blks_hit " " from snapshot.snap_summary_stat_database " - " where snapshot_id = %ld) snap_2 " - " ) s1, " - " (select round(cpu_time.snap_value * 100 / greatest(db_time.snap_value, 1)) as cpu_to_elapsd " - " from " - " (select coalesce(snap_2.snap_value, 0) - coalesce(snap_1.snap_value, 0) as snap_value " - " from " - " (select snap_stat_name, snap_value from snapshot.snap_global_instance_time " - " where snapshot_id = %ld and snap_stat_name = 'CPU_TIME') snap_1, " - " (select snap_stat_name, snap_value from snapshot.snap_global_instance_time " - " where snapshot_id = %ld and snap_stat_name = 'CPU_TIME') snap_2) cpu_time, " - " (select coalesce(snap_2.snap_value, 0) - coalesce(snap_1.snap_value, 0) as snap_value " - " from " - " (select snap_stat_name, snap_value from snapshot.snap_global_instance_time " - " where snapshot_id = %ld and snap_stat_name = 'DB_TIME') snap_1, " - " (select snap_stat_name, snap_value from snapshot.snap_global_instance_time " - " where snapshot_id = %ld and snap_stat_name = 'DB_TIME') snap_2) db_time " - " ) s2, " - " (select (bufferAccess.snap_wait - bufferFull.snap_wait) * 100 / greatest(bufferAccess.snap_wait, 1) as redo_nowait " - " from " - " (select coalesce(snap_2.snap_wait) - coalesce(snap_1.snap_wait, 0) as snap_wait " - " from " - " (select snap_wait from snapshot.snap_global_wait_events " - " where snapshot_id = %ld and snap_event = 'WALBufferFull') snap_1, " - " (select snap_wait from snapshot.snap_global_wait_events " - " where snapshot_id = %ld and snap_event = 'WALBufferFull') snap_2) bufferFull, " - " (select coalesce(snap_2.snap_wait) - coalesce(snap_1.snap_wait, 0) as snap_wait " - " from " - " (select snap_wait from snapshot.snap_global_wait_events " - " where snapshot_id = %ld and snap_event = 'WALBufferAccess') snap_1, " - " (select snap_wait from snapshot.snap_global_wait_events " - " where snapshot_id = %ld and snap_event = 'WALBufferAccess') snap_2) bufferAccess " - " ) s3, " - " (select round((snap_2.soft_parse - snap_1.soft_parse) * 100 / greatest((snap_2.hard_parse + snap_2.soft_parse)-(snap_1.hard_parse + snap_1.soft_parse), 1)) as soft_parse " - " from " - " (select sum(snap_n_soft_parse) as soft_parse, sum(snap_n_hard_parse) as hard_parse from snapshot.snap_summary_statement " - " where snapshot_id = %ld ) snap_1, " - " (select sum(snap_n_soft_parse) as soft_parse, sum(snap_n_hard_parse) as hard_parse from snapshot.snap_summary_statement " - " where snapshot_id = %ld ) snap_2 " - " ) s4, " - " (select round((snap_2.elapse_time - snap_1.elapse_time) * 100 /greatest((snap_2.elapse_time + snap_2.parse_time)-(snap_1.elapse_time + snap_1.parse_time), 1)) as non_parse " - " from " - " (select sum(snap_total_elapse_time) as elapse_time, sum(snap_parse_time) as parse_time from snapshot.snap_summary_statement " - " where snapshot_id = %ld ) snap_1, " - " (select sum(snap_total_elapse_time) as elapse_time, sum(snap_parse_time) as parse_time from snapshot.snap_summary_statement " - " where snapshot_id = %ld ) snap_2 " - " ) s5; ", - params->begin_snap_id, - params->end_snap_id, - params->begin_snap_id, - params->end_snap_id, - params->begin_snap_id, - params->end_snap_id, - params->begin_snap_id, - params->end_snap_id, - params->begin_snap_id, - params->end_snap_id, - params->begin_snap_id, - params->end_snap_id, + " where snapshot_id = %ld) snap_2" + " ) as s", params->begin_snap_id, params->end_snap_id); @@ -3661,7 +3602,7 @@ static void get_summary_instance_efficiency(report_params* params) dash->tableTitle = "Instance Efficiency Percentages (Target 100%)"; dash->desc = lappend(dash->desc, (void*)desc); - /* instance efficiency, Buffer Hit %, Effective CPU % extra */ + /* instance efficiency, Buffer Hit %: */ get_summary_instance_efficiency_percentages(params, dash); GenReport::add_data(dash, ¶ms->Contents); } @@ -4458,6 +4399,7 @@ Datum generate_wdr_report(PG_FUNCTION_ARGS) params.begin_snap_id, params.end_snap_id, params.report_type, params.report_scope, (params.report_node == NULL) ? "NULL" : params.report_node))); MemoryContext old_context = CurrentMemoryContext; + SPI_STACK_LOG("connect", NULL, NULL); if ((rc = SPI_connect()) != SPI_OK_CONNECT) { ereport(ERROR, (errcode(ERRCODE_INTERNAL_ERROR), errmsg("SPI_connect failed: %s", SPI_result_code_string(rc)))); } @@ -4466,6 +4408,7 @@ Datum generate_wdr_report(PG_FUNCTION_ARGS) MemoryContext spi_context = MemoryContextSwitchTo(old_context); char* result_str = GenReport::GenerateHtmlReport(params.Contents); (void)MemoryContextSwitchTo(spi_context); + SPI_STACK_LOG("finish", NULL, NULL); (void)SPI_finish(); ereport(LOG, (errmsg("generate WDR report end"))); text* textStr = cstring_to_text(result_str); diff --git a/src/gausskernel/cbb/instruments/wdr/snapshot.cpp b/src/gausskernel/cbb/instruments/wdr/snapshot.cpp index 3a34e43de..44bc40e2c 100755 --- a/src/gausskernel/cbb/instruments/wdr/snapshot.cpp +++ b/src/gausskernel/cbb/instruments/wdr/snapshot.cpp @@ -1,5 +1,6 @@ /* * Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors * * openGauss is licensed under Mulan PSL v2. * You can use this software according to the terms and conditions of the Mulan PSL v2. @@ -45,6 +46,7 @@ #include "utils/guc.h" #include "utils/ps_status.h" #include "utils/elog.h" +#include "utils/numeric.h" #include "utils/memprot.h" #include "utils/builtins.h" #include "tcop/dest.h" @@ -65,7 +67,6 @@ #include "pgxc/groupmgr.h" const int PGSTAT_RESTART_INTERVAL = 60; -#define MAX_INT ((unsigned)(-1) >> 1) #define COUNT_ARRAY_SIZE(array) (sizeof((array)) / sizeof(*(array))) using namespace std; @@ -181,6 +182,7 @@ static bool CheckNodeGroup() return true; #endif errno_t rc; + SPI_STACK_LOG("connect", NULL, NULL); if ((rc = SPI_connect()) != SPI_OK_CONNECT) { ereport(ERROR, (errmodule(MOD_WDR_SNAPSHOT), @@ -195,6 +197,7 @@ static bool CheckNodeGroup() const char* query = "select count(*) from pgxc_group WHERE in_redistribution='n' and is_installation = TRUE;"; colval = GetDatumValue(query, 0, 0, &isnull); + SPI_STACK_LOG("finish", NULL, NULL); SPI_finish(); return !isnull && (colval != 0); } @@ -248,6 +251,7 @@ static bool CheckMemProtectInit() errno_t rc; start_xact_command(); PushActiveSnapshot(GetTransactionSnapshot()); + SPI_STACK_LOG("connect", NULL, NULL); if ((rc = SPI_connect()) != SPI_OK_CONNECT) ereport(ERROR, (errmodule(MOD_WDR_SNAPSHOT), @@ -258,6 +262,7 @@ static bool CheckMemProtectInit() erraction("Analyze the error message before the error"))); const char *query = "select * from DBE_PERF.global_memory_node_detail"; (void)SnapshotNameSpace::ExecuteQuery(query, SPI_OK_SELECT); + SPI_STACK_LOG("finish", query, NULL); SPI_finish(); PopActiveSnapshot(); finish_xact_command(); @@ -265,6 +270,7 @@ static bool CheckMemProtectInit() } PG_CATCH(); { + SPI_STACK_LOG("finish", NULL, NULL); SPI_finish(); (void)MemoryContextSwitchTo(currentCtx); ErrorData *edata = CopyErrorData(); @@ -534,7 +540,9 @@ void SnapshotNameSpace::CreateSequence(void) Datum colval; bool isnull = false; const char* query_seq_sql = - "select count(*) from pg_statio_all_sequences where schemaname = 'snapshot' and relname = 'snap_seq'"; + "select count(*) from pg_class c left join pg_namespace n" + " on n.oid = c.relnamespace" + " where n.nspname = 'snapshot' and c.relname = 'snap_seq'"; colval = GetDatumValue(query_seq_sql, 0, 0, &isnull); if (isnull) { colval = 0; @@ -559,10 +567,8 @@ void SnapshotNameSpace::init_curr_snapid(void) if (isnull) { colval = 0; } - t_thrd.perf_snap_cxt.curr_snapid = DatumGetInt32(colval); - if (t_thrd.perf_snap_cxt.curr_snapid >= MAX_INT - 1) { - t_thrd.perf_snap_cxt.curr_snapid = 0; - } + /* MAX value of the snapshot.snap_seq is MAX INT64 */ + t_thrd.perf_snap_cxt.curr_snapid = numeric_int16_internal(DatumGetNumeric(colval)); } /* * UpdateSnapEndTime -- update snapshot end time stamp @@ -638,6 +644,35 @@ void SnapshotNameSpace::GetQueryData(const char* query, bool with_column_name, L *cstring_values = lappend(*cstring_values, row_string); } } + +#if ((defined(ENABLE_MULTIPLE_NODES)) || (defined(ENABLE_PRIVATEGAUSS))) +/* + * SnapshotView + * Since the snapshot table can be queried only when the parameter is on, + * the view is created during snapshot initialization. + * when the parameter is off, an empty view is provided. + */ +static void SnapshotView() +{ + const char* createSnapshotviewdrop = "drop view if exists SYS.ADM_HIST_SNAPSHOT"; + if (SPI_execute(createSnapshotviewdrop, false, 0) != SPI_OK_UTILITY) { + ereport(ERROR, (errmodule(MOD_WDR_SNAPSHOT), errcode(ERRCODE_DATA_EXCEPTION), + errmsg("drop view failed"), + errdetail("query(%s) execute failed", createSnapshotviewdrop), + errcause("System error."), + erraction("Check whether the query can be executed"))); + } + const char* createSnapshotview = "CREATE OR REPLACE VIEW SYS.ADM_HIST_SNAPSHOT AS " + "SELECT s.snapshot_id AS SNAP_ID, s.start_ts AS BEGIN_INTERVAL_TIME FROM SNAPSHOT.SNAPSHOT s"; + if (SPI_execute(createSnapshotview, false, 0) != SPI_OK_UTILITY) { + ereport(ERROR, (errmodule(MOD_WDR_SNAPSHOT), errcode(ERRCODE_DATA_EXCEPTION), + errmsg("CREATE VIEW failed"), + errdetail("query(%s) execute failed", createSnapshotview), + errcause("System error."), + erraction("Check whether the query can be executed"))); + } +} +#endif /* * take_snapshot * All the snapshot processes are executed here, @@ -657,6 +692,7 @@ void SnapshotNameSpace::take_snapshot() uint32 max_snap_size = 0; SnapshotNameSpace::SetSnapshotSize(&max_snap_size); /* connect SPI to execute query */ + SPI_STACK_LOG("connect", NULL, NULL); if ((rc = SPI_connect()) != SPI_OK_CONNECT) { ereport(ERROR, (errmodule(MOD_WDR_SNAPSHOT), errcode(ERRCODE_INTERNAL_ERROR), errmsg("SPI_connect failed: %s", SPI_result_code_string(rc)), @@ -667,7 +703,7 @@ void SnapshotNameSpace::take_snapshot() SnapshotNameSpace::init_curr_table_size(); while (t_thrd.perf_snap_cxt.curr_table_size >= max_snap_size) { bool isnull = false; - const char* sql = "select min(snapshot_id) from snapshot.snapshot"; + const char* sql = "select snapshot_id from snapshot.snapshot order by start_ts limit 1"; Datum colval = GetDatumValue(sql, 0, 0, &isnull); if (isnull) { colval = 0; @@ -690,11 +726,13 @@ void SnapshotNameSpace::take_snapshot() erraction("Check whether the snapshot retry is successful"))); } SnapshotNameSpace::UpdateSnapEndTime(t_thrd.perf_snap_cxt.curr_snapid); + SPI_STACK_LOG("finish", query.data, NULL); pfree_ext(query.data); SPI_finish(); } PG_CATCH(); { + SPI_STACK_LOG("finish", query.data, NULL); pfree_ext(query.data); SPI_finish(); /* Carry on with error handling. */ @@ -1016,6 +1054,9 @@ void SnapshotNameSpace::InitTables() numViews = COUNT_ARRAY_SIZE(lastStatViews); SnapshotNameSpace::CreateTable(lastStatViews, numViews, true); SnapshotNameSpace::CreateIndexes(); +#if ((defined(ENABLE_MULTIPLE_NODES)) || (defined(ENABLE_PRIVATEGAUSS))) + SnapshotView(); +#endif } void SnapshotNameSpace::CreateTable(const char** views, int numViews, bool isSharedViews) @@ -1488,6 +1529,7 @@ static void analyze_snap_table() int rc = 0; start_xact_command(); PushActiveSnapshot(GetTransactionSnapshot()); + SPI_STACK_LOG("connect", NULL, NULL); if ((rc = SPI_connect()) != SPI_OK_CONNECT) { ereport(ERROR, (errmodule(MOD_WDR_SNAPSHOT), errcode(ERRCODE_INTERNAL_ERROR), errmsg("analyze table, connection failed: %s", SPI_result_code_string(rc)), @@ -1498,6 +1540,7 @@ static void analyze_snap_table() SnapshotNameSpace::GetAnalyzeList(&(analyzeTableList)); set_lock_timeout(); SnapshotNameSpace::AnalyzeTable(analyzeTableList); + SPI_STACK_LOG("finish", NULL, NULL); SPI_finish(); PopActiveSnapshot(); finish_xact_command(); @@ -1511,6 +1554,7 @@ void InitSnapshot() PushActiveSnapshot(GetTransactionSnapshot()); int rc = 0; /* connect SPI to execute query */ + SPI_STACK_LOG("connect", NULL, NULL); if ((rc = SPI_connect()) != SPI_OK_CONNECT) { ereport(ERROR, (errcode(ERRCODE_INTERNAL_ERROR), errmsg("snapshot thread SPI_connect failed: %s", SPI_result_code_string(rc)), @@ -1520,6 +1564,7 @@ void InitSnapshot() } set_lock_timeout(); SnapshotNameSpace::InitTables(); + SPI_STACK_LOG("finish", NULL, NULL); SPI_finish(); PopActiveSnapshot(); finish_xact_command(); @@ -1557,9 +1602,6 @@ void SnapshotNameSpace::SubSnapshotMain(void) SnapshotNameSpace::take_snapshot(); PopActiveSnapshot(); finish_xact_command(); - if (OidIsValid(u_sess->proc_cxt.MyDatabaseId)) { - pgstat_report_stat(true); - } ereport(LOG, (errcode(ERRCODE_SUCCESSFUL_COMPLETION), errmsg("WDR snapshot end"))); /* a snapshot has token on next_timestamp, we need get next_timestamp */ diff --git a/src/gausskernel/cbb/utils/aes/aes.cpp b/src/gausskernel/cbb/utils/aes/aes.cpp index b8acc5f53..9a3d80e0a 100644 --- a/src/gausskernel/cbb/utils/aes/aes.cpp +++ b/src/gausskernel/cbb/utils/aes/aes.cpp @@ -342,6 +342,7 @@ bool aes128Encrypt(GS_UCHAR* PlainText, GS_UINT32 PlainLen, GS_UCHAR* Key, GS_UI GS_UCHAR deriver_key[RANDOM_LEN] = {0}; GS_UCHAR aes_vector[RANDOM_LEN] = {0}; GS_UINT32 retval = 0; + errno_t errorno = EOK; if (PlainText == NULL) { (void)fprintf(stderr, _("invalid plain text, please check it!\n")); @@ -353,13 +354,15 @@ bool aes128Encrypt(GS_UCHAR* PlainText, GS_UINT32 PlainLen, GS_UCHAR* Key, GS_UI (char*)Key, keylen, RandSalt, RANDOM_LEN, ITERATE_TIMES, (EVP_MD*)EVP_sha256(), RANDOM_LEN, deriver_key); if (!retval) { (void)fprintf(stderr, _("generate the derived key failed, errcode:%u\n"), retval); - CleanupBuffer(deriver_key, RANDOM_LEN); + errorno = memset_s(deriver_key, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); return false; } /* get random aes vector for encryption */ if (init_aes_vector_random(aes_vector, RANDOM_LEN) == false) { - CleanupBuffer(deriver_key, RANDOM_LEN); + errorno = memset_s(deriver_key, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); return false; } @@ -368,20 +371,24 @@ bool aes128Encrypt(GS_UCHAR* PlainText, GS_UINT32 PlainLen, GS_UCHAR* Key, GS_UI NID_aes_128_cbc, deriver_key, RANDOM_LEN, aes_vector, RANDOM_LEN, PlainText, PlainLen, CipherText, CipherLen); if (retval != 0) { - CleanupBuffer(aes_vector, RANDOM_LEN); - CleanupBuffer(deriver_key, RANDOM_LEN); + errorno = memset_s(aes_vector, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(deriver_key, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); (void)fprintf(stderr, _("encrypt plain text to cipher text failed, errcode:%u\n"), retval); return false; } /* copy vector salt(aes_vector) to the cipher for decrypt */ - errno_t errorno = memcpy_s(CipherText + (*CipherLen), RANDOM_LEN, aes_vector, RANDOM_LEN); + errorno = memcpy_s(CipherText + (*CipherLen), RANDOM_LEN, aes_vector, RANDOM_LEN); securec_check_c(errorno, "\0", "\0"); *CipherLen = *CipherLen + RANDOM_LEN; /* clean the decrypt_key and aes_vector for security */ - CleanupBuffer(aes_vector, RANDOM_LEN); - CleanupBuffer(deriver_key, RANDOM_LEN); + errorno = memset_s(aes_vector, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(deriver_key, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); return true; } @@ -414,7 +421,8 @@ bool aes128Decrypt(GS_UCHAR* CipherText, GS_UINT32 CipherLen, GS_UCHAR* Key, GS_ (char*)Key, keylen, RandSalt, RANDOM_LEN, ITERATE_TIMES, (EVP_MD*)EVP_sha256(), RANDOM_LEN, decrypt_key); if (!retval) { /* clean the decrypt_key for security */ - CleanupBuffer(decrypt_key, RANDOM_LEN); + errorno = memset_s(decrypt_key, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); (void)fprintf(stderr, _("generate the derived key failed, errcode:%u\n"), retval); return false; } @@ -436,8 +444,10 @@ bool aes128Decrypt(GS_UCHAR* CipherText, GS_UINT32 CipherLen, GS_UCHAR* Key, GS_ PlainLen); /* clean the decrypt_key and aes_vector for security */ - CleanupBuffer(aes_vector, RANDOM_LEN); - CleanupBuffer(decrypt_key, RANDOM_LEN); + errorno = memset_s(aes_vector, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(decrypt_key, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); if (retval != 0) { /* try original version decrypt function */ @@ -494,17 +504,23 @@ bool aes128EncryptSpeed(GS_UCHAR* PlainText, GS_UINT32 PlainLen, GS_UCHAR* Key, keylen = strlen((const char*)Key); if (keylen > RANDOM_LEN || keylen == 0) { (void)fprintf(stderr, _("Key is missing!\n")); - CleanupBuffer(input_saved, RANDOM_LEN); - CleanupBuffer(derive_vector_saved, RANDOM_LEN); - CleanupBuffer(mac_vector_saved, RANDOM_LEN); + errorno = memset_s(input_saved, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(derive_vector_saved, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(mac_vector_saved, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); return false; } if (NULL == PlainText) { (void)fprintf(stderr, _("Invalid plain text, please check it!\n")); - CleanupBuffer(input_saved, RANDOM_LEN); - CleanupBuffer(derive_vector_saved, RANDOM_LEN); - CleanupBuffer(mac_vector_saved, RANDOM_LEN); + errorno = memset_s(input_saved, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(derive_vector_saved, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(mac_vector_saved, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); return false; } @@ -512,10 +528,14 @@ bool aes128EncryptSpeed(GS_UCHAR* PlainText, GS_UINT32 PlainLen, GS_UCHAR* Key, if (false == init_aes_vector_random(aes_vector, RANDOM_LEN)) { (void)fprintf(stderr, _("generate IV vector failed\n")); /* clean up */ - CleanupBuffer(input_saved, RANDOM_LEN); - CleanupBuffer(derive_vector_saved, RANDOM_LEN); - CleanupBuffer(aes_vector, RANDOM_LEN); - CleanupBuffer(mac_vector_saved, RANDOM_LEN); + errorno = memset_s(input_saved, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(derive_vector_saved, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(aes_vector, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(mac_vector_saved, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); return false; } @@ -551,12 +571,18 @@ bool aes128EncryptSpeed(GS_UCHAR* PlainText, GS_UINT32 PlainLen, GS_UCHAR* Key, if (!retval) { (void)fprintf(stderr, _("generate the derived key failed,errcode:%u\n"), retval); /* clean up */ - CleanupBuffer(input_saved, RANDOM_LEN); - CleanupBuffer(derive_vector_saved, RANDOM_LEN); - CleanupBuffer(derive_key, RANDOM_LEN); - CleanupBuffer(mac_vector_saved, RANDOM_LEN); - CleanupBuffer(aes_vector, RANDOM_LEN); - CleanupBuffer(user_key, RANDOM_LEN); + errorno = memset_s(input_saved, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(derive_vector_saved, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(derive_key, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(mac_vector_saved, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(aes_vector, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(user_key, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); return false; } @@ -572,13 +598,20 @@ bool aes128EncryptSpeed(GS_UCHAR* PlainText, GS_UINT32 PlainLen, GS_UCHAR* Key, if (!retval) { (void)fprintf(stderr, _("generate the mac key failed,errcode:%u\n"), retval); /* clean up */ - CleanupBuffer(input_saved, RANDOM_LEN); - CleanupBuffer(derive_vector_saved, RANDOM_LEN); - CleanupBuffer(derive_key, RANDOM_LEN); - CleanupBuffer(mac_vector_saved, RANDOM_LEN); - CleanupBuffer(aes_vector, RANDOM_LEN); - CleanupBuffer(user_key, RANDOM_LEN); - CleanupBuffer(mac_key, RANDOM_LEN); + errorno = memset_s(input_saved, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(derive_vector_saved, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(derive_key, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(mac_vector_saved, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(aes_vector, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(user_key, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(mac_key, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); return false; } @@ -600,13 +633,20 @@ bool aes128EncryptSpeed(GS_UCHAR* PlainText, GS_UINT32 PlainLen, GS_UCHAR* Key, if (retval != 0) { (void)fprintf(stderr, _("encrypt plain text to cipher text failed,errcode:%u\n"), retval); /* clean up */ - CleanupBuffer(input_saved, RANDOM_LEN); - CleanupBuffer(derive_vector_saved, RANDOM_LEN); - CleanupBuffer(derive_key, RANDOM_LEN); - CleanupBuffer(mac_vector_saved, RANDOM_LEN); - CleanupBuffer(aes_vector, RANDOM_LEN); - CleanupBuffer(user_key, RANDOM_LEN); - CleanupBuffer(mac_key, RANDOM_LEN); + errorno = memset_s(input_saved, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(derive_vector_saved, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(derive_key, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(mac_vector_saved, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(aes_vector, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(user_key, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(mac_key, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); return false; } @@ -620,13 +660,20 @@ bool aes128EncryptSpeed(GS_UCHAR* PlainText, GS_UINT32 PlainLen, GS_UCHAR* Key, if (retval != 0 || mac_length != MAC_LEN) { (void)fprintf(stderr, _("generate mac text based on plain text failed,errcode:%u\n"), retval); /* clean up */ - CleanupBuffer(input_saved, RANDOM_LEN); - CleanupBuffer(derive_vector_saved, RANDOM_LEN); - CleanupBuffer(derive_key, RANDOM_LEN); - CleanupBuffer(mac_vector_saved, RANDOM_LEN); - CleanupBuffer(aes_vector, RANDOM_LEN); - CleanupBuffer(user_key, RANDOM_LEN); - CleanupBuffer(mac_key, RANDOM_LEN); + errorno = memset_s(input_saved, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(derive_vector_saved, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(derive_key, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(mac_vector_saved, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(aes_vector, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(user_key, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(mac_key, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); return false; } @@ -636,10 +683,14 @@ bool aes128EncryptSpeed(GS_UCHAR* PlainText, GS_UINT32 PlainLen, GS_UCHAR* Key, *CipherLen = *CipherLen + MAC_LEN; /* clean the user_key, mac_key, derive_key and aes_vector for security */ - CleanupBuffer(user_key, RANDOM_LEN); - CleanupBuffer(mac_key, RANDOM_LEN); - CleanupBuffer(derive_key, RANDOM_LEN); - CleanupBuffer(aes_vector, RANDOM_LEN); + errorno = memset_s(user_key, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(mac_key, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(derive_key, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(aes_vector, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); return true; } @@ -811,10 +862,14 @@ bool aes128DecryptSpeed(GS_UCHAR* CipherText, GS_UINT32 CipherLen, GS_UCHAR* Key (char*)Key, keylen, RandSalt, RANDOM_LEN, ITERATE_TIMES, (EVP_MD*)EVP_sha256(), RANDOM_LEN, decrypt_key); if (!retval) { /* clean the decrypt_key and aes_vector for security */ - CleanupBuffer(aes_vector, RANDOM_LEN); - CleanupBuffer(decrypt_key, RANDOM_LEN); - CleanupBuffer(user_key, RANDOM_LEN); - CleanupBuffer(mac_key, RANDOM_LEN); + errorno = memset_s(aes_vector, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(decrypt_key, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(user_key, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(mac_key, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); (void)fprintf(stderr, _("generate the derived key failed,errcode:%u\n"), retval); return false; } @@ -830,10 +885,14 @@ bool aes128DecryptSpeed(GS_UCHAR* CipherText, GS_UINT32 CipherLen, GS_UCHAR* Key if (!retval) { /* clean the decrypt_key and mac_key for security */ - CleanupBuffer(mac_key, RANDOM_LEN); - CleanupBuffer(decrypt_key, RANDOM_LEN); - CleanupBuffer(user_key, RANDOM_LEN); - CleanupBuffer(aes_vector, RANDOM_LEN); + errorno = memset_s(mac_key, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(decrypt_key, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(user_key, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(aes_vector, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); (void)fprintf(stderr, _("generate the mac key failed,errcode:%u\n"), retval); return false; } @@ -866,14 +925,17 @@ bool aes128DecryptSpeed(GS_UCHAR* CipherText, GS_UINT32 CipherLen, GS_UCHAR* Key PlainLen); /* clean the decrypt_key and aes_vector for security */ - CleanupBuffer(aes_vector, RANDOM_LEN); - CleanupBuffer(decrypt_key, RANDOM_LEN); + errorno = memset_s(aes_vector, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(decrypt_key, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); if (retval != 0) { (void)fprintf(stderr, _("decrypt cipher text to plain text failed,errcode:%u\n"), retval); - - CleanupBuffer(user_key, RANDOM_LEN); - CleanupBuffer(mac_key, RANDOM_LEN); + errorno = memset_s(user_key, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(mac_key, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); return false; } @@ -884,8 +946,10 @@ bool aes128DecryptSpeed(GS_UCHAR* CipherText, GS_UINT32 CipherLen, GS_UCHAR* Key retval = CRYPT_hmac(NID_hmac_sha1, mac_key, RANDOM_LEN, CipherText, cipherpartlen + RANDOM_LEN, mac_text, &mac_length); - CleanupBuffer(user_key, RANDOM_LEN); - CleanupBuffer(mac_key, RANDOM_LEN); + errorno = memset_s(user_key, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(mac_key, RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); if (retval != 0 || mac_length != MAC_LEN) { (void)fprintf(stderr, _("Mac generation failed,errcode:%u\n"), retval); @@ -909,9 +973,12 @@ bool aes128DecryptSpeed(GS_UCHAR* CipherText, GS_UINT32 CipherLen, GS_UCHAR* Key decryption_count++; if (decryption_count > decryption_count_max) { for (GS_UINT32 i = 0; i < NUMBER_OF_SAVED_DERIVEKEYS; ++i) { - CleanupBuffer(derive_vector_used[i], RANDOM_LEN); - CleanupBuffer(user_input_used[i], RANDOM_LEN); - CleanupBuffer(mac_vector_used[i], RANDOM_LEN); + errorno = memset_s(derive_vector_used[i], RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(user_input_used[i], RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); + errorno = memset_s(mac_vector_used[i], RANDOM_LEN, 0, RANDOM_LEN); + securec_check_c(errorno, "", ""); usage_frequency[i] = i; } decryption_count = 0; diff --git a/src/gausskernel/cbb/utils/aes/cipherfn.cpp b/src/gausskernel/cbb/utils/aes/cipherfn.cpp index d0b809a05..ea6cc51bf 100644 --- a/src/gausskernel/cbb/utils/aes/cipherfn.cpp +++ b/src/gausskernel/cbb/utils/aes/cipherfn.cpp @@ -1351,17 +1351,26 @@ void encryptBlockOrCUData(const char* plainText, const size_t plainLength, unsigned char key[KEY_128BIT_LEN] = {0}; const char* plain_key = NULL; unsigned int i, j; + errno_t ret = 0; +#ifndef ENABLE_UT /* get dek plaintext by cmk_id and dek_cipher from TDE Key Manager */ TDEKeyManager *tde_key_manager = New(CurrentMemoryContext) TDEKeyManager(); tde_key_manager->init(); plain_key = tde_key_manager->get_key(tdeInfo->cmk_id, tdeInfo->dek_cipher); +#else + /* ugly hook for TDEKeyManager->get_key() function, gs_strdup should be mocked in ut */ + plain_key = (const char*)gs_strdup("0123456789abcdef0123456789abcdef"); +#endif Assert(strlen(plain_key) == KEY_128BIT_LEN * 2); + /* transform tde plaintext from hex string to int array */ for (i = 0, j = 0; i < KEY_128BIT_LEN && j < strlen(plain_key); i++, j += 2) { key[i] = hex2int(plain_key[j]) << 4 | hex2int(plain_key[j + 1]); } +#ifndef ENABLE_UT DELETE_EX2(tde_key_manager); +#endif do { if (encrypt_partial_mode(plainText, plainLength, cipherText, cipherLength, key, iv, algo)) { @@ -1370,6 +1379,9 @@ void encryptBlockOrCUData(const char* plainText, const size_t plainLength, retryCnt--; } while (retryCnt > 0); + ret = memset_s(key, KEY_128BIT_LEN, 0, KEY_128BIT_LEN); + securec_check(ret, "\0", "\0"); + if (retryCnt == 0) { ereport(PANIC, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), @@ -1396,17 +1408,26 @@ void decryptBlockOrCUData(const char* cipherText, const size_t cipherLength, unsigned char key[KEY_128BIT_LEN] = {0}; const char* plain_key = NULL; unsigned int i, j; + errno_t ret = 0; +#ifndef ENABLE_UT /* get dek plaintext by cmk_id and dek_cipher from TDE Key Manager */ TDEKeyManager *tde_key_manager = New(CurrentMemoryContext) TDEKeyManager(); tde_key_manager->init(); plain_key = tde_key_manager->get_key(tdeInfo->cmk_id, tdeInfo->dek_cipher); +#else + /* ugly hook for TDEKeyManager->get_key() function, gs_strdup should be mocked in ut */ + plain_key = (const char*)gs_strdup("0123456789abcdef0123456789abcdef"); +#endif Assert(strlen(plain_key) == KEY_128BIT_LEN * 2); + /* transform tde plaintext from hex string to int array */ for (i = 0, j = 0; i < KEY_128BIT_LEN && j < strlen(plain_key); i++, j += 2) { key[i] = hex2int(plain_key[j]) << 4 | hex2int(plain_key[j + 1]); } +#ifndef ENABLE_UT DELETE_EX2(tde_key_manager); +#endif do { if (decrypt_partial_mode(cipherText, cipherLength, plainText, plainLength, key, iv, algo)) { @@ -1415,6 +1436,9 @@ void decryptBlockOrCUData(const char* cipherText, const size_t cipherLength, retryCnt--; } while (retryCnt > 0); + ret = memset_s(key, KEY_128BIT_LEN, 0, KEY_128BIT_LEN); + securec_check(ret, "\0", "\0"); + if (retryCnt == 0) { ereport(PANIC, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), diff --git a/src/gausskernel/cbb/utils/partition/partitionkey.cpp b/src/gausskernel/cbb/utils/partition/partitionkey.cpp index 1c96dd721..4d1acb7bb 100644 --- a/src/gausskernel/cbb/utils/partition/partitionkey.cpp +++ b/src/gausskernel/cbb/utils/partition/partitionkey.cpp @@ -27,6 +27,7 @@ #include "postgres.h" #include "knl/knl_variable.h" +#include "catalog/pg_partition_fn.h" #include "catalog/pg_type.h" #include "nodes/parsenodes.h" #include "nodes/value.h" @@ -35,6 +36,7 @@ #include "utils/builtins.h" #include "utils/partitionkey.h" + /* * @@GaussDB@@ * Brief @@ -260,3 +262,173 @@ List* untransformPartitionBoundary(Datum options) return result; } + +int partitonKeyCompare(Const** value1, Const** value2, int len) +{ + uint8 i = 0; + int compare = 0; + Const* v1 = NULL; + Const* v2 = NULL; + + for (; i < len; i++) { + v1 = *(value1 + i); + v2 = *(value2 + i); + + if (v1 == NULL && v2 == NULL) + ereport(ERROR, (errcode(ERRCODE_DATATYPE_MISMATCH), errmsg("NULL can not be compared with NULL"))); + if (v1 == NULL || v2 == NULL) { + compare = (v1 == NULL) ? -1 : 1; + break; + } + + if (constIsMaxValue(v1) && constIsMaxValue(v2)) { + compare = 0; + continue; + } + if (constIsMaxValue(v1) || constIsMaxValue(v2)) { + compare = (constIsMaxValue(v1)) ? 1 : -1; + break; + } + + if (v1->constisnull && v2->constisnull) + ereport(ERROR, + (errcode(ERRCODE_NULL_VALUE_NOT_ALLOWED), + errmsg("null value can not be compared with null value."))); + if (v1->constisnull || v2->constisnull) { + compare = (v1->constisnull) ? 1 : -1; + break; + } + + constCompare(v1, v2, compare); + if (compare != 0) { + break; + } + } + + return compare; +} + +bool IsPartkeyInTargetList(Relation rel, List* targetList) +{ + PartitionMap* map = NULL; + int2vector* partKey = NULL; + ListCell *lc = NULL; + int j = 0; + + map = rel->partMap; + if (map->type == PART_TYPE_LIST) { + partKey = ((ListPartitionMap *)map)->partitionKey; + } else if (map->type == PART_TYPE_HASH) { + partKey = ((HashPartitionMap *)map)->partitionKey; + } else { + partKey = ((RangePartitionMap *)map)->partitionKey; + } + foreach (lc, targetList) { + TargetEntry *entry = (TargetEntry *)lfirst(lc); + + if (entry->resjunk) { + continue; + } + + /* check partkey has the column */ + for (j = 0; j < partKey->dim1; j++) { + if (partKey->values[j] == entry->resno) { + return true; + } + } + } + return false; +} + +/* + * @@GaussDB@@ + * Target : data partition + * Brief : check the partition key in the targetlist + */ +bool targetListHasPartitionKey(List* targetList, Oid partitiondtableid) +{ + bool ret = false; + Relation rel; + + rel = heap_open(partitiondtableid, NoLock); + if (RELATION_IS_PARTITIONED(rel)) { + if (RelationIsSubPartitioned(rel)) { + ret = IsPartkeyInTargetList(rel, targetList); + if (!ret) { + List *partOidList = relationGetPartitionOidList(rel); + Oid partOid = list_nth_oid(partOidList, 0); + Partition part = partitionOpen(rel, partOid, NoLock); + Relation partRel = partitionGetRelation(rel, part); + + ret = IsPartkeyInTargetList(partRel, targetList); + + releaseDummyRelation(&partRel); + partitionClose(rel, part, NoLock); + } + } else { + ret = IsPartkeyInTargetList(rel, targetList); + } + } + heap_close(rel, NoLock); + return ret; +} + +bool isPartKeyValuesInPartition(RangePartitionMap* partMap, Const** partKeyValues, int partkeyColumnNum, int partSeq) +{ + Assert(partMap && partKeyValues); + Assert(partkeyColumnNum == partMap->partitionKey->dim1); + + int compareBottom = 0; + int compareTop = 0; + bool greaterThanBottom = false; + bool lessThanTop = false; + + if (0 == partSeq) { + /* is in first partition (-inf, boundary) */ + greaterThanBottom = true; + partitonKeyCompareForRouting(partKeyValues, partMap->rangeElements[0].boundary, (uint32)partkeyColumnNum, + compareTop); + if (compareTop < 0) { + lessThanTop = true; + } + } else { + /* is in [last_partiton_boundary, boundary) */ + partitonKeyCompareForRouting( + partKeyValues, partMap->rangeElements[partSeq - 1].boundary, (uint32)partkeyColumnNum, compareBottom); + + if (compareBottom >= 0) { + greaterThanBottom = true; + } + + partitonKeyCompareForRouting( + partKeyValues, partMap->rangeElements[partSeq].boundary, (uint32)partkeyColumnNum, compareTop); + + if (compareTop < 0) { + lessThanTop = true; + } + } + + return greaterThanBottom && lessThanTop; +} + +int comparePartitionKey(RangePartitionMap* partMap, Const** values1, Const** values2, int partKeyNum) +{ + int compare = 0; + + incre_partmap_refcount((PartitionMap*)partMap); + partitonKeyCompareForRouting(values1, values2, (uint32)partKeyNum, compare); + decre_partmap_refcount((PartitionMap*)partMap); + + return compare; +} + +int2vector* GetPartitionKey(const PartitionMap* partMap) +{ + if (partMap->type == PART_TYPE_LIST) { + return ((ListPartitionMap*)partMap)->partitionKey; + } else if (partMap->type == PART_TYPE_HASH) { + return ((HashPartitionMap*)partMap)->partitionKey; + } else { + return ((RangePartitionMap*)partMap)->partitionKey; + } +} diff --git a/src/gausskernel/cbb/utils/partition/partitionlocate.cpp b/src/gausskernel/cbb/utils/partition/partitionlocate.cpp index 79287d8bd..a3785b597 100755 --- a/src/gausskernel/cbb/utils/partition/partitionlocate.cpp +++ b/src/gausskernel/cbb/utils/partition/partitionlocate.cpp @@ -1,5 +1,6 @@ /* * Copyright (c) Huawei Technologies Co., Ltd. 2012-2021 All rights reserved. + * Portions Copyright (c) 2021, openGauss Contributors * * openGauss is licensed under Mulan PSL v2. * You can use this software according to the terms and conditions of the Mulan PSL v2. @@ -58,7 +59,7 @@ bool isPartKeyValuesInHashPartition(Relation partTableRel, const HashPartitionMa Assert(partkeyColumnNum == partMap->partitionKey->dim1); int sourcePartSeq = -1; - Oid sourceOid = getHashPartitionOid(partTableRel, partKeyValues, &sourcePartSeq, true); + Oid sourceOid = getHashPartitionOid(partTableRel->partMap, partKeyValues, &sourcePartSeq, true); if (sourcePartSeq < 0) { ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), diff --git a/src/gausskernel/cbb/utils/partition/partitionmap.cpp b/src/gausskernel/cbb/utils/partition/partitionmap.cpp index c52ca1507..a0c54d113 100644 --- a/src/gausskernel/cbb/utils/partition/partitionmap.cpp +++ b/src/gausskernel/cbb/utils/partition/partitionmap.cpp @@ -1,5 +1,6 @@ /* * Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors * * openGauss is licensed under Mulan PSL v2. * You can use this software according to the terms and conditions of the Mulan PSL v2. @@ -47,6 +48,7 @@ #include "utils/datetime.h" #include "utils/int8.h" #include "utils/lsyscache.h" +#include "utils/partcache.h" #include "utils/partitionmap.h" #include "utils/partitionmap_gs.h" #include "utils/partitionkey.h" @@ -331,55 +333,6 @@ void constCompare(Const* value1, Const* value2, int& compare) } } -#define partitonKeyCompareForRouting(value1, value2, len, compare) \ - do { \ - uint32 i = 0; \ - Const* v1 = NULL; \ - Const* v2 = NULL; \ - for (; i < (len); i++) { \ - v1 = *((value1) + i); \ - v2 = *((value2) + i); \ - if (v1 == NULL || v2 == NULL) { \ - if (v1 == NULL && v2 == NULL) { \ - ereport( \ - ERROR, (errcode(ERRCODE_DATATYPE_MISMATCH), errmsg("NULL can not be compared with NULL"))); \ - } else if (v1 == NULL) { \ - compare = -1; \ - } else { \ - compare = 1; \ - } \ - break; \ - } \ - if (constIsMaxValue(v1) || constIsMaxValue(v2)) { \ - if (constIsMaxValue(v1) && constIsMaxValue(v2)) { \ - compare = 0; \ - continue; \ - } else if (constIsMaxValue(v1)) { \ - compare = 1; \ - } else { \ - compare = -1; \ - } \ - break; \ - } \ - if (v1->constisnull || v2->constisnull) { \ - if (v1->constisnull && v2->constisnull) { \ - ereport(ERROR, \ - (errcode(ERRCODE_UNEXPECTED_NULL_VALUE), \ - errmsg("null value can not be compared with null value."))); \ - } else if (v1->constisnull) { \ - compare = 1; \ - } else { \ - compare = -1; \ - } \ - break; \ - } \ - constCompare(v1, v2, compare); \ - if ((compare) != 0) { \ - break; \ - } \ - } \ - } while (0) - #define BuildRangeElement(range, type, typelen, relid, attrno, tuple, desc, isInter) \ do { \ Assert(PointerIsValid(range)); \ @@ -754,6 +707,19 @@ int2vector* getPartitionKeyAttrNo( return partkey; } +char GetSubPartitionStrategy(List* partition_list, Form_pg_partition partitioned_form, bool isSubPartition) +{ + char partstrategy; + if (isSubPartition) { + HeapTuple subPartitionTuple = (HeapTuple)list_nth(partition_list, 0); + Form_pg_partition subPartitionForm = (Form_pg_partition)GETSTRUCT(subPartitionTuple); + partstrategy = subPartitionForm->partstrategy; + } else { + partstrategy = partitioned_form->partstrategy; + } + return partstrategy; +} + /* * @@GaussDB@@ * Brief : @@ -763,7 +729,7 @@ int2vector* getPartitionKeyAttrNo( * : two access. So it is reasonable if * : partitioned_form->intervalnum + partitioned_form->rangenum != partition_list->length */ -void RelationInitPartitionMap(Relation relation) +void RelationInitPartitionMap(Relation relation, bool isSubPartition) { List* partition_list = NIL; Relation pg_partition = NULL; @@ -798,7 +764,12 @@ void RelationInitPartitionMap(Relation relation) old_context = MemoryContextSwitchTo(tmp_context); pg_partition = relation_open(PartitionRelationId, AccessShareLock); - partitioned_tuple = searchPgPartitionByParentIdCopy(PART_OBJ_TYPE_PARTED_TABLE, relation->rd_id); + if (isSubPartition) { + partitioned_tuple = SearchSysCache1(PARTRELID, ObjectIdGetDatum(relation->rd_id)); + } else { + partitioned_tuple = searchPgPartitionByParentIdCopy(PART_OBJ_TYPE_PARTED_TABLE, relation->rd_id); + } + if (!HeapTupleIsValid(partitioned_tuple)) { if (RecoveryInProgress()) { ereport(ERROR, @@ -821,7 +792,6 @@ void RelationInitPartitionMap(Relation relation) relation->partMap = (PartitionMap*)buildValuePartitionMap(relation, pg_partition, partitioned_tuple); - /* release the partition_list and partitioined_table_tuple */ heap_freetuple_ext(partitioned_tuple); freePartList(partition_list); @@ -849,14 +819,21 @@ void RelationInitPartitionMap(Relation relation) } /* read out patition tuples from pg_partition */ - partition_list = searchPgPartitionByParentId(PART_OBJ_TYPE_TABLE_PARTITION, relation->rd_id); + if (isSubPartition) { + partition_list = searchPgPartitionByParentId(PART_OBJ_TYPE_TABLE_SUB_PARTITION, relation->rd_id); + } else { + partition_list = searchPgPartitionByParentId(PART_OBJ_TYPE_TABLE_PARTITION, relation->rd_id); + } /* * Fail to get relation tuple for the partitioned table * Never happen, just to be self-contained */ if (!PointerIsValid(partition_list)) { - heap_freetuple_ext(partitioned_tuple); + if (isSubPartition) + ReleaseSysCache(partitioned_tuple); + else + heap_freetuple_ext(partitioned_tuple); relation_close(pg_partition, AccessShareLock); (void)MemoryContextSwitchTo(old_context); @@ -868,7 +845,9 @@ void RelationInitPartitionMap(Relation relation) errdetail("Could not find partition for the partitioned table."))); } - switch (partitioned_form->partstrategy) { + char partstrategy = GetSubPartitionStrategy(partition_list, partitioned_form, isSubPartition); + + switch (partstrategy) { case PART_STRATEGY_RANGE: case PART_STRATEGY_INTERVAL: buildRangePartitionMap(relation, partitioned_form, partitioned_tuple, pg_partition, partition_list); @@ -894,7 +873,10 @@ void RelationInitPartitionMap(Relation relation) relation->partMap->isDirty = false; /* release the partition_list and partitioined_table_tuple */ - heap_freetuple_ext(partitioned_tuple); + if (isSubPartition) + ReleaseSysCache(partitioned_tuple); + else + heap_freetuple_ext(partitioned_tuple); freePartList(partition_list); /* close pg_partition */ @@ -1064,6 +1046,131 @@ void DestroyListElements(ListPartElement* src, int elementNum) pfree_ext(src); } +/* + * @@GaussDB@@ + * Target : data partition + * Brief : + * Description : + * Notes : + */ +void partitionMapDestroyRangeArray(RangeElement* rangeArray, int arrLen) +{ + int i, j; + RangeElement* range = NULL; + Const* maxConst = NULL; + + if (rangeArray == NULL || arrLen < 1) { + return; + } + + /* before free range array, free max array in each rangeElement */ + for (i = 0; i < arrLen; i++) { + range = &(rangeArray[i]); + for (j = 0; j < range->len; j++) { + maxConst = range->boundary[j]; + if (PointerIsValid(maxConst)) { + if (!maxConst->constbyval && !maxConst->constisnull && + PointerIsValid(DatumGetPointer(maxConst->constvalue))) { + pfree(DatumGetPointer(maxConst->constvalue)); + } + + pfree_ext(maxConst); + maxConst = NULL; + } + } + } + + /* free range array */ + pfree_ext(rangeArray); +} + +void PartitionMapDestroyHashArray(HashPartElement* hashArray, int arrLen) +{ + int i; + HashPartElement* hashValues = NULL; + Const* value = NULL; + + if (hashArray == NULL || arrLen < 1) { + return; + } + + /* before free hash array, free max array in each hashElement */ + for (i = 0; i < arrLen; i++) { + hashValues = &(hashArray[i]); + + value = hashValues->boundary[0]; + if (PointerIsValid(value)) { + if (!value->constbyval && !value->constisnull && + PointerIsValid(DatumGetPointer(value->constvalue))) { + pfree(DatumGetPointer(value->constvalue)); + } + + pfree_ext(value); + value = NULL; + } + } + pfree_ext(hashArray); +} + +void RelationDestroyPartitionMap(PartitionMap* partMap) +{ + /* already a non-partitioned relation, just return */ + if (!partMap) + return; + + /* partitioned relation, destroy the partition map */ + if (partMap->type == PART_TYPE_RANGE || partMap->type == PART_TYPE_INTERVAL) { + RangePartitionMap* range_map = ((RangePartitionMap*)(partMap)); + + /* first free partKeyNum/partitionKeyDataType/ranges in the range map */ + if (range_map->partitionKey) { + pfree_ext(range_map->partitionKey); + } + if (range_map->partitionKeyDataType) { + pfree_ext(range_map->partitionKeyDataType); + } + if (range_map->intervalValue) { + pfree_ext(range_map->intervalValue); + } + if (range_map->intervalTablespace) { + pfree_ext(range_map->intervalTablespace); + } + if (range_map->rangeElements) { + partitionMapDestroyRangeArray(range_map->rangeElements, range_map->rangeElementsNum); + } + } else if (partMap->type == PART_TYPE_LIST) { + ListPartitionMap* list_map = (ListPartitionMap*)(partMap); + if (list_map->partitionKey) { + pfree_ext(list_map->partitionKey); + list_map->partitionKey = NULL; + } + if (list_map->partitionKeyDataType) { + pfree_ext(list_map->partitionKeyDataType); + list_map->partitionKeyDataType = NULL; + } + if (list_map->listElements) { + DestroyListElements(list_map->listElements, list_map->listElementsNum); + list_map->listElements = NULL; + } + } else if (partMap->type == PART_TYPE_HASH) { + HashPartitionMap* hash_map = (HashPartitionMap*)(partMap); + if (hash_map->partitionKey) { + pfree_ext(hash_map->partitionKey); + hash_map->partitionKey = NULL; + } + if (hash_map->partitionKeyDataType) { + pfree_ext(hash_map->partitionKeyDataType); + hash_map->partitionKeyDataType = NULL; + } + if (hash_map->hashElements) { + PartitionMapDestroyHashArray(hash_map->hashElements, hash_map->hashElementsNum); + hash_map->hashElements = NULL; + } + } + pfree_ext(partMap); + return; +} + static HashPartElement* CopyHashElements(HashPartElement* src, int elementNum, int partkeyNum) { int i = 0; @@ -1183,6 +1290,15 @@ oidvector* ReadIntervalTablespace(HeapTuple tuple, TupleDesc tupleDesc) return buildoidvector(values, arraySize); } +Oid GetRootPartitionOid(Relation relation) +{ + Oid relid = RelationGetRelid(relation); + if (relid != relation->parentId && OidIsValid(relation->parentId)) { + relid = relation->parentId; + } + return relid; +} + static void BuildListPartitionMap(Relation relation, Form_pg_partition partitioned_form, HeapTuple partitioned_tuple, Relation pg_partition, List* partition_list) { @@ -1225,6 +1341,11 @@ static void BuildListPartitionMap(Relation relation, Form_pg_partition partition /* allocate range element array */ list_eles = (ListPartElement*)palloc0(sizeof(ListPartElement) * (list_map->listElementsNum)); + /* we will use reloid to get the column information from pg_attribute. + * Only rootPartitionOid is in pg_attribute, so we can only use it. + */ + Oid rootPartitionOid = GetRootPartitionOid(relation); + /* iterate partition tuples, build RangeElement for per partition tuple */ list_itr = 0; foreach (tuple_cell, partition_list) { @@ -1244,7 +1365,7 @@ static void BuildListPartitionMap(Relation relation, Form_pg_partition partition buildListElement(&(list_eles[list_itr]), list_map->partitionKeyDataType, list_map->partitionKey->dim1, - RelationGetRelid(relation), + rootPartitionOid, list_map->partitionKey, partition_tuple, RelationGetDescr(pg_partition)); @@ -1329,6 +1450,11 @@ static void BuildHashPartitionMap(Relation relation, Form_pg_partition partition /* allocate hash element array */ hash_eles = (HashPartElement*)palloc0(sizeof(HashPartElement) * (hash_map->hashElementsNum)); + /* we will use reloid to get the column information from pg_attribute. + * Only rootPartitionOid is in pg_attribute, so we can only use it. + */ + Oid rootPartitionOid = GetRootPartitionOid(relation); + /* iterate partition tuples, build RangeElement for per partition tuple */ hash_itr = 0; foreach (tuple_cell, partition_list) { @@ -1348,7 +1474,7 @@ static void BuildHashPartitionMap(Relation relation, Form_pg_partition partition buildHashElement(&(hash_eles[hash_itr]), hash_map->partitionKeyDataType, hash_map->partitionKey->dim1, - RelationGetRelid(relation), + rootPartitionOid, hash_map->partitionKey, partition_tuple, RelationGetDescr(pg_partition)); @@ -1369,6 +1495,7 @@ static void BuildHashPartitionMap(Relation relation, Form_pg_partition partition securec_check(rc, "\0", "\0"); (void)MemoryContextSwitchTo(old_context); + PartitionMapDestroyHashArray(hash_eles, hash_map->hashElementsNum); } /* @@ -1428,6 +1555,11 @@ static void buildRangePartitionMap(Relation relation, Form_pg_partition partitio /* allocate range element array */ range_eles = (RangeElement*)palloc0(sizeof(RangeElement) * (range_map->rangeElementsNum)); + /* we will use reloid to get the column information from pg_attribute. + * Only rootPartitionOid is in pg_attribute, so we can only use it. + */ + Oid rootPartitionOid = GetRootPartitionOid(relation); + /* iterate partition tuples, build RangeElement for per partition tuple */ range_itr = 0; foreach (tuple_cell, partition_list) { @@ -1448,7 +1580,7 @@ static void buildRangePartitionMap(Relation relation, Form_pg_partition partitio BuildRangeElement(&(range_eles[range_itr]), range_map->partitionKeyDataType, range_map->partitionKey->dim1, - RelationGetRelid(relation), + rootPartitionOid, range_map->partitionKey, partition_tuple, RelationGetDescr(pg_partition), @@ -1467,6 +1599,7 @@ static void buildRangePartitionMap(Relation relation, Form_pg_partition partitio securec_check(rc, "\0", "\0"); (void)MemoryContextSwitchTo(old_context); + partitionMapDestroyRangeArray(range_eles, range_map->rangeElementsNum); } /* @@ -1699,7 +1832,7 @@ Oid getRangePartitionOid(PartitionMap *partitionmap, Const** partKeyValue, int32 return result; } -Oid getListPartitionOid(Relation relation, Const** partKeyValue, int32* partSeq, bool topClosed) +Oid getListPartitionOid(PartitionMap* partMap, Const** partKeyValue, int32* partSeq, bool topClosed) { ListPartitionMap* listPartMap = NULL; Oid result = InvalidOid; @@ -1707,18 +1840,26 @@ Oid getListPartitionOid(Relation relation, Const** partKeyValue, int32* partSeq, int hit = -1; int compare = 0; Const** boundary = NULL; + Oid defaultPartitionOid = InvalidOid; + bool existDefaultPartition = false; + int defaultPartitionHit = -1; - Assert(PointerIsValid(relation->partMap)); + Assert(PointerIsValid(partMap)); Assert(PointerIsValid(partKeyValue)); - incre_partmap_refcount(relation->partMap); - listPartMap = (ListPartitionMap*)(relation->partMap); + incre_partmap_refcount(partMap); + listPartMap = (ListPartitionMap*)(partMap); keyNums = listPartMap->partitionKey->dim1; int i = 0; while (i < listPartMap->listElementsNum && hit < 0) { boundary = listPartMap->listElements[i].boundary; int list_len = listPartMap->listElements[i].len; + if (list_len == 1 && ((Const*)boundary[0])->ismaxvalue) { + defaultPartitionOid = listPartMap->listElements[i].partitionOid; + existDefaultPartition = true; + defaultPartitionHit = i; + } int j = 0; while (j < list_len) { partitonKeyCompareForRouting(partKeyValue, boundary + j, (uint32)keyNums, compare); @@ -1737,24 +1878,27 @@ Oid getListPartitionOid(Relation relation, Const** partKeyValue, int32* partSeq, if (hit >= 0) { result = listPartMap->listElements[hit].partitionOid; + } else if (existDefaultPartition) { + result = defaultPartitionOid; + *partSeq = defaultPartitionHit; } - decre_partmap_refcount(relation->partMap); + decre_partmap_refcount(partMap); return result; } -Oid getHashPartitionOid(Relation relation, Const** partKeyValue, int32* partSeq, bool topClosed) +Oid getHashPartitionOid(PartitionMap* partMap, Const** partKeyValue, int32* partSeq, bool topClosed) { HashPartitionMap* hashPartMap = NULL; Oid result = InvalidOid; int keyNums = 0; int hit = -1; - Assert(PointerIsValid(relation->partMap)); + Assert(PointerIsValid(partMap)); Assert(PointerIsValid(partKeyValue)); - incre_partmap_refcount(relation->partMap); - hashPartMap = (HashPartitionMap*)(relation->partMap); + incre_partmap_refcount(partMap); + hashPartMap = (HashPartitionMap*)(partMap); keyNums = hashPartMap->partitionKey->dim1; @@ -1765,7 +1909,7 @@ Oid getHashPartitionOid(Relation relation, Const** partKeyValue, int32* partSeq, if (PointerIsValid(partSeq)) { *partSeq = hit; } - decre_partmap_refcount(relation->partMap); + decre_partmap_refcount(partMap); return result; } hash_value = hashValueCombination(hash_value, partKeyValue[i]->consttype, partKeyValue[i]->constvalue, false, @@ -1783,7 +1927,7 @@ Oid getHashPartitionOid(Relation relation, Const** partKeyValue, int32* partSeq, result = hashPartMap->hashElements[hit].partitionOid; } - decre_partmap_refcount(relation->partMap); + decre_partmap_refcount(partMap); return result; } @@ -1823,6 +1967,43 @@ static Const* CalcLowBoundary(const Const* upBoundary, Interval* intervalValue) upBoundary->constbyval); } +void getFakeReationForPartitionOid(HTAB **fakeRels, MemoryContext cxt, Relation rel, Oid partOid, + Relation *fakeRelation, Partition *partition, LOCKMODE lmode) +{ + PartRelIdCacheKey _key = {partOid, -1}; + Relation partParentRel = rel; + if (PointerIsValid(*partition)) { + return; + } + if (RelationIsNonpartitioned(partParentRel)) { + *fakeRelation = NULL; + *partition = NULL; + return; + } + if (PointerIsValid(*fakeRels)) { + FakeRelationIdCacheLookup((*fakeRels), _key, *fakeRelation, *partition); + if (!RelationIsValid(*fakeRelation)) { + *partition = partitionOpen(partParentRel, partOid, lmode); + *fakeRelation = partitionGetRelation(partParentRel, *partition); + FakeRelationCacheInsert((*fakeRels), (*fakeRelation), (*partition), -1); + } + } else { + HASHCTL ctl; + errno_t errorno = EOK; + errorno = memset_s(&ctl, sizeof(ctl), 0, sizeof(ctl)); + securec_check_c(errorno, "\0", "\0"); + ctl.keysize = sizeof(PartRelIdCacheKey); + ctl.entrysize = sizeof(PartRelIdCacheEnt); + ctl.hash = tag_hash; + ctl.hcxt = cxt; + *fakeRels = hash_create("fakeRelationCache by OID", FAKERELATIONCACHESIZE, &ctl, + HASH_ELEM | HASH_FUNCTION | HASH_CONTEXT); + *partition = partitionOpen(partParentRel, partOid, lmode); + *fakeRelation = partitionGetRelation(partParentRel, *partition); + FakeRelationCacheInsert((*fakeRels), (*fakeRelation), (*partition), -1); + } +} + int ValueCmpLowBoudary(Const** partKeyValue, const RangeElement* partition, Interval* intervalValue) { Assert(partition->isInterval); @@ -1936,7 +2117,7 @@ int getNumberOfPartitions(Relation rel) (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("CAN NOT get number of partition against NON-PARTITIONED relation"))); } - + if (rel->partMap->type == PART_TYPE_LIST) { ranges = getNumberOfListPartitions(rel); } else if (rel->partMap->type == PART_TYPE_HASH) { @@ -2099,132 +2280,6 @@ int partOidGetPartSequence(Relation rel, Oid partOid) return resultPartSequence; } -/* IMPORTANT: This function will case invalidation message process, the relation may - be rebuild, and the relation->partMap may be changed. - After call this founction, should not call getNumberOfRangePartitions/getNumberOfPartitions, - using list_length(partitionList) instead - */ -List* relationGetPartitionList(Relation relation, LOCKMODE lockmode) -{ - List* partitionOidList = NIL; - List* partitionList = NIL; - - partitionOidList = relationGetPartitionOidList(relation); - - if (PointerIsValid(partitionOidList)) { - ListCell* cell = NULL; - Oid partitionId = InvalidOid; - Partition partition = NULL; - - foreach (cell, partitionOidList) { - partitionId = lfirst_oid(cell); - Assert(OidIsValid(partitionId)); - partition = partitionOpen(relation, partitionId, lockmode); - partitionList = lappend(partitionList, partition); - } - - list_free_ext(partitionOidList); - } - - return partitionList; -} - -// give one partitioned index relation, -// return a list, consisting of oid of all its index partition -List* indexGetPartitionOidList(Relation indexRelation) -{ - List* indexPartitionOidList = NIL; - List* indexPartitionTupleList = NIL; - ListCell* cell = NULL; - - if (indexRelation->rd_rel->relkind != RELKIND_INDEX || RelationIsNonpartitioned(indexRelation)) - return indexPartitionOidList; - indexPartitionTupleList = searchPgPartitionByParentId(PART_OBJ_TYPE_INDEX_PARTITION, indexRelation->rd_id); - foreach (cell, indexPartitionTupleList) { - Oid indexPartOid = HeapTupleGetOid((HeapTuple)lfirst(cell)); - if (OidIsValid(indexPartOid)) { - indexPartitionOidList = lappend_oid(indexPartitionOidList, indexPartOid); - } - } - - freePartList(indexPartitionTupleList); - return indexPartitionOidList; -} - -List* indexGetPartitionList(Relation indexRelation, LOCKMODE lockmode) -{ - List* indexPartitionList = NIL; - List* indexPartitionTupleList = NIL; - ListCell* cell = NULL; - - if (indexRelation->rd_rel->relkind != RELKIND_INDEX || RelationIsNonpartitioned(indexRelation)) - return indexPartitionList; - indexPartitionTupleList = searchPgPartitionByParentId(PART_OBJ_TYPE_INDEX_PARTITION, indexRelation->rd_id); - foreach (cell, indexPartitionTupleList) { - Partition indexPartition = NULL; - Oid indexPartOid = HeapTupleGetOid((HeapTuple)lfirst(cell)); - - if (OidIsValid(indexPartOid)) { - indexPartition = partitionOpen(indexRelation, indexPartOid, lockmode); - indexPartitionList = lappend(indexPartitionList, indexPartition); - } - } - - freePartList(indexPartitionTupleList); - return indexPartitionList; -} - -void releasePartitionList(Relation relation, List** partList, LOCKMODE lockmode, bool validCheck) -{ - ListCell* cell = NULL; - Partition partition = NULL; - - foreach (cell, *partList) { - partition = (Partition)lfirst(cell); - Assert(!validCheck || PointerIsValid(partition)); - if (PointerIsValid(partition)) { - partitionClose(relation, partition, lockmode); - } - } - - list_free_ext(*partList); - *partList = NULL; -} - -List* relationGetPartitionOidList(Relation rel) -{ - List* result = NIL; - Oid partitionId = InvalidOid; - - if (rel == NULL || rel->partMap == NULL) { - return NIL; - } - - PartitionMap* map = rel->partMap; - int sumtotal = getPartitionNumber(map); - for (int conuter = 0; conuter < sumtotal; ++conuter) { - if (map->type == PART_TYPE_LIST) { - partitionId = ((ListPartitionMap*)map)->listElements[conuter].partitionOid; - } else if (map->type == PART_TYPE_HASH) { - partitionId = ((HashPartitionMap*)map)->hashElements[conuter].partitionOid; - } else { - partitionId = ((RangePartitionMap*)map)->rangeElements[conuter].partitionOid; - } - result = lappend_oid(result, partitionId); - } - - return result; -} - -void releasePartitionOidList(List** partList) -{ - if (PointerIsValid(partList)) { - list_free_ext(*partList); - - *partList = NIL; - } -} - /* * @Description: compare two const,datatype of const must be one of datatype partition key supported, * and the datatype is bpchar varchar or text,the collation id of two consts must be same. @@ -2299,50 +2354,6 @@ int constCompare_constType(Const* value1, Const* value2) return ret; } -int partitonKeyCompare(Const** value1, Const** value2, int len) -{ - uint8 i = 0; - int compare = 0; - Const* v1 = NULL; - Const* v2 = NULL; - - for (; i < len; i++) { - v1 = *(value1 + i); - v2 = *(value2 + i); - - if (v1 == NULL && v2 == NULL) - ereport(ERROR, (errcode(ERRCODE_DATATYPE_MISMATCH), errmsg("NULL can not be compared with NULL"))); - if (v1 == NULL || v2 == NULL) { - compare = (v1 == NULL) ? -1 : 1; - break; - } - - if (constIsMaxValue(v1) && constIsMaxValue(v2)) { - compare = 0; - continue; - } - if (constIsMaxValue(v1) || constIsMaxValue(v2)) { - compare = (constIsMaxValue(v1)) ? 1 : -1; - break; - } - - if (v1->constisnull && v2->constisnull) - ereport(ERROR, - (errcode(ERRCODE_NULL_VALUE_NOT_ALLOWED), - errmsg("null value can not be compared with null value."))); - if (v1->constisnull || v2->constisnull) { - compare = (v1->constisnull) ? 1 : -1; - break; - } - - constCompare(v1, v2, compare); - if (0 != compare) - break; - } - - return compare; -} - int rangeElementCmp(const void* a, const void* b) { const RangeElement* rea = (const RangeElement*)a; @@ -2395,83 +2406,28 @@ int getPartitionNumber(PartitionMap* map) return result; } -/* - * @@GaussDB@@ - * Target : data partition - * Brief : check the partition key in the targetlist - * Description : - * Notes : - */ -bool targetListHasPartitionKey(List* targetList, Oid partitiondtableid) +int GetSubPartitionNumber(Relation rel) { - bool ret = false; - Relation rel; - - rel = heap_open(partitiondtableid, NoLock); - - if (RELATION_IS_PARTITIONED(rel)) { - RangePartitionMap* map = (RangePartitionMap*)rel->partMap; - int2vector* partKey = map->partitionKey; - ListCell* lc = NULL; - int j = 0; - - foreach (lc, targetList) { - TargetEntry* entry = (TargetEntry*)lfirst(lc); - - if (entry->resjunk) { - continue; - } - - /* check partkey has the column */ - for (j = 0; j < partKey->dim1; j++) { - if (partKey->values[j] == entry->resno) { - heap_close(rel, NoLock); - return true; - } - } + PartitionMap* map = rel->partMap; + int result = getPartitionNumber(map); + Oid partOid = InvalidOid; + int subPartNum = 0; + for (int conuter = 0; conuter < result; ++conuter) { + if (map->type == PART_TYPE_LIST) { + partOid = ((ListPartitionMap *)map)->listElements[conuter].partitionOid; + } else if (map->type == PART_TYPE_HASH) { + partOid = ((HashPartitionMap *)map)->hashElements[conuter].partitionOid; + } else { + partOid = ((RangePartitionMap *)map)->rangeElements[conuter].partitionOid; } + Partition part = partitionOpen(rel, partOid, AccessShareLock); + Relation partRel = partitionGetRelation(rel, part); + subPartNum += getPartitionNumber(partRel->partMap); + releaseDummyRelation(&partRel); + partitionClose(rel, part, AccessShareLock); } - heap_close(rel, NoLock); - return ret; -} - -bool isPartKeyValuesInPartition(RangePartitionMap* partMap, Const** partKeyValues, int partkeyColumnNum, int partSeq) -{ - Assert(partMap && partKeyValues); - Assert(partkeyColumnNum == partMap->partitionKey->dim1); - - int compareBottom = 0; - int compareTop = 0; - bool greaterThanBottom = false; - bool lessThanTop = false; - - if (0 == partSeq) { - /* is in first partition (-inf, boundary) */ - greaterThanBottom = true; - partitonKeyCompareForRouting(partKeyValues, partMap->rangeElements[0].boundary, - (uint32)partkeyColumnNum, compareTop); - if (compareTop < 0) { - lessThanTop = true; - } - } else { - /* is in [last_partiton_boundary, boundary) */ - partitonKeyCompareForRouting( - partKeyValues, partMap->rangeElements[partSeq - 1].boundary, (uint32)partkeyColumnNum, compareBottom); - - if (compareBottom >= 0) { - greaterThanBottom = true; - } - - partitonKeyCompareForRouting( - partKeyValues, partMap->rangeElements[partSeq].boundary, (uint32)partkeyColumnNum, compareTop); - - if (compareTop < 0) { - lessThanTop = true; - } - } - - return greaterThanBottom && lessThanTop; + return subPartNum; } // check the partition has toast @@ -2480,7 +2436,6 @@ bool partitionHasToast(Oid partOid) HeapTuple tuple = NULL; Form_pg_partition partForm = NULL; bool result = false; - tuple = SearchSysCache1(PARTRELID, ObjectIdGetDatum(partOid)); if (!HeapTupleIsValid(tuple)) { Assert(0); @@ -2500,17 +2455,6 @@ bool partitionHasToast(Oid partOid) return result; } -int comparePartitionKey(RangePartitionMap* partMap, Const** values1, Const** values2, int partKeyNum) -{ - int compare = 0; - - incre_partmap_refcount((PartitionMap*)partMap); - partitonKeyCompareForRouting(values1, values2, (uint32)partKeyNum, compare); - decre_partmap_refcount((PartitionMap*)partMap); - - return compare; -} - void incre_partmap_refcount(PartitionMap* map) { ResourceOwnerEnlargePartitionMapRefs(t_thrd.utils_cxt.CurrentResourceOwner); @@ -2567,15 +2511,3 @@ Oid GetNeedDegradToRangePartOid(Relation rel, Oid partOid) ereport(ERROR, (errcode(ERRCODE_CASE_NOT_FOUND), errmsg("Not find the target partiton %u", partOid))); return InvalidOid; } - -int2vector* GetPartitionKey(const PartitionMap* partMap) -{ - if (partMap->type == PART_TYPE_LIST) { - return ((ListPartitionMap*)partMap)->partitionKey; - } else if (partMap->type == PART_TYPE_HASH) { - return ((HashPartitionMap*)partMap)->partitionKey; - } else { - return ((RangePartitionMap*)partMap)->partitionKey; - } -} - diff --git a/src/gausskernel/cbb/workload/cpwlm.cpp b/src/gausskernel/cbb/workload/cpwlm.cpp index e1372a8fa..2186dc8f4 100755 --- a/src/gausskernel/cbb/workload/cpwlm.cpp +++ b/src/gausskernel/cbb/workload/cpwlm.cpp @@ -1927,6 +1927,8 @@ NON_EXEC_STATIC void CPmonitorMain(void) /* Since not using PG_TRY, we must reset error stack by hand */ t_thrd.log_cxt.error_context_stack = NULL; + t_thrd.log_cxt.call_stack = NULL; + /* Prevents interrupts while cleaning up */ HOLD_INTERRUPTS(); diff --git a/src/gausskernel/cbb/workload/ioschdl.cpp b/src/gausskernel/cbb/workload/ioschdl.cpp index 0b8e97c71..111718418 100644 --- a/src/gausskernel/cbb/workload/ioschdl.cpp +++ b/src/gausskernel/cbb/workload/ioschdl.cpp @@ -1212,6 +1212,8 @@ NON_EXEC_STATIC void WLMmonitorMain(void) /* Since not using PG_TRY, we must reset error stack by hand */ t_thrd.log_cxt.error_context_stack = NULL; + t_thrd.log_cxt.call_stack = NULL; + /* Prevents interrupts while cleaning up */ HOLD_INTERRUPTS(); @@ -1535,6 +1537,8 @@ NON_EXEC_STATIC void WLMarbiterMain(void) /* Since not using PG_TRY, we must reset error stack by hand */ t_thrd.log_cxt.error_context_stack = NULL; + t_thrd.log_cxt.call_stack = NULL; + /* Prevents interrupts while cleaning up */ HOLD_INTERRUPTS(); diff --git a/src/gausskernel/cbb/workload/statctl.cpp b/src/gausskernel/cbb/workload/statctl.cpp index fda64616f..a2ef44e4d 100644 --- a/src/gausskernel/cbb/workload/statctl.cpp +++ b/src/gausskernel/cbb/workload/statctl.cpp @@ -276,6 +276,7 @@ void InitCollectInfo(WLMCollectInfo* pCollectInfo) int rc; /* reset collect info */ + pfree_ext(pCollectInfo->sdetail.statement); rc = memset_s(pCollectInfo, sizeof(WLMCollectInfo), 0, sizeof(WLMCollectInfo)); securec_check(rc, "\0", "\0"); @@ -5694,13 +5695,7 @@ void WLMSetDNodeInfoStatus(const Qid* qid, WLMStatusTag status) break; case WLM_STATUS_RUNNING: { - TimestampTz now = GetCurrentTimestamp(); - - /* use cpu_collect_timer to compute interval end time and set a timer */ - t_thrd.wlm_cxt.except_ctl->intvalEndTime = - TimestampTzPlusMilliseconds(now, u_sess->attr.attr_resource.cpu_collect_timer * MSECS_PER_SEC); - (void)WLMSetTimer(now, t_thrd.wlm_cxt.except_ctl->intvalEndTime); - + /* set cpu time */ WLMCheckPoint(WLM_STATUS_RUNNING); /* resource track is valid, we must save the session info */ @@ -6449,7 +6444,6 @@ void WLMInitializeStatInfo(void) */ void WLMSetStatInfo(const char* sqltext) { - pfree_ext(t_thrd.wlm_cxt.collect_info->sdetail.statement); /* reset all statistics info */ ResetAllStatInfo(); @@ -6938,6 +6932,29 @@ void WLMFillGeneralDataSingleNode(WLMGeneralData* gendata, WLMDNodeInfo* nodeInf setTopNWLMSessionInfo(gendata, queryMemInChunks, totalCpuTime, g_instance.attr.attr_common.PGXCNodeName, TOP5); } +static bool WLMCheckSessionStatisticsAllowed() +{ + if (! (IS_PGXC_COORDINATOR || IS_SINGLE_NODE)) { + ereport(WARNING, (errmsg("This view is not allowed on datanode."))); + return false; + } + + /* check workload manager is valid */ + if (!ENABLE_WORKLOAD_CONTROL) { + ereport(WARNING, (errmsg("workload manager is not valid."))); + return false; + } + + /* disable resource track function, nothing to fetch */ + if (!u_sess->attr.attr_resource.enable_resource_track) { + ereport(WARNING, (errmsg("enable_resource_track is not valid."))); + return false; + } + + return true; +} + + /* * function name: WLMGetSessionStatistics * description : get session statistics @@ -6953,20 +6970,7 @@ void* WLMGetSessionStatistics(int* num) HASH_SEQ_STATUS hash_seq; - if (! (IS_PGXC_COORDINATOR || IS_SINGLE_NODE)) { - ereport(WARNING, (errmsg("This view is not allowed on datanode."))); - return NULL; - } - - /* check workload manager is valid */ - if (!ENABLE_WORKLOAD_CONTROL) { - ereport(WARNING, (errmsg("workload manager is not valid."))); - return NULL; - } - - /* disable resource track function, nothing to fetch */ - if (!u_sess->attr.attr_resource.enable_resource_track) { - ereport(WARNING, (errmsg("enable_resource_track is not valid."))); + if (!WLMCheckSessionStatisticsAllowed()) { return NULL; } @@ -7003,7 +7007,15 @@ void* WLMGetSessionStatistics(int* num) SessionLevelMemory* entry = (SessionLevelMemory*)pDNodeInfo->mementry; - stat_element->statement = (pDNodeInfo->statement == NULL) ? (char*)"" : pstrdup(pDNodeInfo->statement); + /* Mask password in query string */ + char* queryMaskedPassWd = NULL; + if (pDNodeInfo->statement != NULL) { + queryMaskedPassWd = maskPassword(pDNodeInfo->statement); + } + if (queryMaskedPassWd == NULL) { + queryMaskedPassWd = pDNodeInfo->statement == NULL ? (char*)"" : pDNodeInfo->statement; + } + stat_element->statement = queryMaskedPassWd; stat_element->query_plan = (entry->query_plan == NULL) ? (char*)"NoPlan" : pstrdup(entry->query_plan); stat_element->query_plan_issue = (entry->query_plan_issue == NULL) ? (char*)"" : pstrdup(entry->query_plan_issue); @@ -7816,6 +7828,8 @@ int WLMProcessThreadMain(void) /* Since not using PG_TRY, we must reset error stack by hand */ t_thrd.log_cxt.error_context_stack = NULL; + t_thrd.log_cxt.call_stack = NULL; + /* Prevents interrupts while cleaning up */ HOLD_INTERRUPTS(); diff --git a/src/gausskernel/cbb/workload/workload.cpp b/src/gausskernel/cbb/workload/workload.cpp index 413a48bf8..cb655d035 100755 --- a/src/gausskernel/cbb/workload/workload.cpp +++ b/src/gausskernel/cbb/workload/workload.cpp @@ -1796,7 +1796,7 @@ bool WLMIsSimpleQuery(const QueryDesc* queryDesc, bool force_control, bool isQue g_wlm_params->use_planA = false; - if (COORDINATOR_NOT_SINGLE || (IS_SERVICE_NODE && IsConnFromCoord()) || + if (IS_PGXC_DATANODE || (IS_PGXC_COORDINATOR && IsConnFromCoord()) || u_sess->attr.attr_resource.parctl_min_cost < 0) { return true; } @@ -1875,7 +1875,7 @@ bool WLMIsSimpleQuery(const QueryDesc* queryDesc, bool force_control, bool isQue */ bool WLMNeedTrackResource(const QueryDesc* queryDesc) { - if ((!IS_SERVICE_NODE) || (IS_PGXC_COORDINATOR && IsConnFromCoord()) || + if ((!(IS_SINGLE_NODE || IS_PGXC_COORDINATOR)) || (IS_PGXC_COORDINATOR && IsConnFromCoord()) || t_thrd.wlm_cxt.collect_info->sdetail.statement == NULL || !u_sess->attr.attr_resource.enable_resource_track || u_sess->attr.attr_resource.resource_track_cost < 0 || u_sess->attr.attr_sql.enable_cluster_resize || t_thrd.wlm_cxt.parctl_state.special) { @@ -2929,7 +2929,7 @@ void WLMSwitchCGroup(void) } /* simple query will skip the cgroup loading */ - if (IS_SERVICE_NODE && (IsConnFromCoord() || t_thrd.wlm_cxt.parctl_state.simple)) { + if (IS_PGXC_COORDINATOR && (IsConnFromCoord() || t_thrd.wlm_cxt.parctl_state.simple)) { return; } diff --git a/src/gausskernel/dbmind/db4ai/catalog/model_warehouse.cpp b/src/gausskernel/dbmind/db4ai/catalog/model_warehouse.cpp index ae0477f2d..6396d23a6 100644 --- a/src/gausskernel/dbmind/db4ai/catalog/model_warehouse.cpp +++ b/src/gausskernel/dbmind/db4ai/catalog/model_warehouse.cpp @@ -203,8 +203,8 @@ Model *get_model(const char *model_name, bool only_model) } model->algorithm = algorithm; model->model_name = model_name; - model->exec_time_secs = tuplePointer->exec_time; - model->pre_time_secs = tuplePointer->pre_process_time; + model->exec_time_secs = tuplePointer->exectime; + model->pre_time_secs = tuplePointer->preprocesstime; model->processed_tuples = tuplePointer->processedtuples; model->discarded_tuples = tuplePointer->discardedtuples; model->return_type = tuplePointer->outputtype; diff --git a/src/gausskernel/dbmind/db4ai/commands/create_model.cpp b/src/gausskernel/dbmind/db4ai/commands/create_model.cpp index 9206ec90b..df8072e88 100644 --- a/src/gausskernel/dbmind/db4ai/commands/create_model.cpp +++ b/src/gausskernel/dbmind/db4ai/commands/create_model.cpp @@ -159,10 +159,12 @@ static KMeans *create_kmeans_node(AlgorithmML const algorithm, List *hyperparame int32_t num_features = 0; int32_t external_seed = 0; int32_t verbosity = 0; + auto kmeans_model = reinterpret_cast(dest->model); HyperparameterValidation validation; - memset_s(&validation, sizeof(HyperparameterValidation), 0, sizeof(HyperparameterValidation)); - + errno_t rc = memset_s(&validation, sizeof(HyperparameterValidation), 0, sizeof(HyperparameterValidation)); + securec_check(rc, "\0", "\0"); + kmeans_node->algorithm = algorithm; kmeans_node->plan.type = T_KMeans; kmeans_model->model.return_type = INT4OID; @@ -346,9 +348,9 @@ void configure_dest_receiver_train_model(DestReceiverTrainModel *dest, Algorithm } -// /* -// * ExecCreateTableAs -- execute a CREATE TABLE AS command -// */ +/* +* ExecCreateTableAs -- execute a CREATE TABLE AS command +*/ void exec_create_model(CreateModelStmt *stmt, const char *queryString, ParamListInfo params, char *completionTag) { #ifdef ENABLE_MULTIPLE_NODES diff --git a/src/gausskernel/dbmind/db4ai/executor/fp_ops.cpp b/src/gausskernel/dbmind/db4ai/executor/fp_ops.cpp index 0f817d8e2..65772edfc 100644 --- a/src/gausskernel/dbmind/db4ai/executor/fp_ops.cpp +++ b/src/gausskernel/dbmind/db4ai/executor/fp_ops.cpp @@ -250,7 +250,8 @@ double IncrementalStatistics::getEmpiricalStdDev() const bool IncrementalStatistics::reset() { - memset_s(this, sizeof(IncrementalStatistics), 0, sizeof(IncrementalStatistics)); + errno_t rc = memset_s(this, sizeof(IncrementalStatistics), 0, sizeof(IncrementalStatistics)); + securec_check(rc, "\0", "\0"); min_value = DBL_MAX; return true; } diff --git a/src/gausskernel/dbmind/db4ai/executor/kmeans/kmeans.cpp b/src/gausskernel/dbmind/db4ai/executor/kmeans/kmeans.cpp index 61923b9fd..d6f6df8af 100644 --- a/src/gausskernel/dbmind/db4ai/executor/kmeans/kmeans.cpp +++ b/src/gausskernel/dbmind/db4ai/executor/kmeans/kmeans.cpp @@ -196,6 +196,7 @@ List *kmeanspp(KMeansStateDescription *description, List *centroids_candidates, uint32_t current_centroid_idx = description->current_centroid; uint32_t tries_until_next_centroid = 0; bool no_more_candidates = false; + errno_t rc = EOK; /* * we expect to produce all centroids in one go and to be able to produce them because @@ -258,8 +259,9 @@ List *kmeanspp(KMeansStateDescription *description, List *centroids_candidates, if (unlikely((current_centroid_pgarray != nullptr) and (current_candidate_pgarray != nullptr))) { auto point_coordinates_to = reinterpret_cast(ARR_DATA_PTR(current_centroid_pgarray)); auto point_coordinates_from = reinterpret_cast(ARR_DATA_PTR(current_candidate_pgarray)); - memset_s(point_coordinates_to, size_centroid_bytes, 0, size_centroid_bytes); - errno_t rc = memcpy_s(point_coordinates_to, + rc = memset_s(point_coordinates_to, size_centroid_bytes, 0, size_centroid_bytes); + securec_check(rc, "\0", "\0"); + rc = memcpy_s(point_coordinates_to, size_centroid_bytes, point_coordinates_from, size_centroid_bytes); securec_check(rc, "\0", "\0"); } @@ -381,12 +383,14 @@ void reset_centroids(KMeansStateDescription *description, uint32_t const idx_cen Centroid *centroids = description->centroids[idx_centroids]; Centroid *centroid = nullptr; double *centroid_coordinates = nullptr; + errno_t rc = EOK; for (uint32_t c = 0; c < num_centroids; ++c) { centroid = centroids + c; centroid->statistics.reset(); centroid_coordinates = reinterpret_cast(ARR_DATA_PTR(centroid->coordinates)); - memset_s(centroid_coordinates, size_centroid_bytes, 0, size_centroid_bytes); + rc = memset_s(centroid_coordinates, size_centroid_bytes, 0, size_centroid_bytes); + securec_check(rc, "\0", "\0"); } } diff --git a/src/gausskernel/dbmind/db4ai/snapshots/create.sql b/src/gausskernel/dbmind/db4ai/snapshots/create.sql index ff3305727..e8b3b283f 100644 --- a/src/gausskernel/dbmind/db4ai/snapshots/create.sql +++ b/src/gausskernel/dbmind/db4ai/snapshots/create.sql @@ -49,7 +49,7 @@ BEGIN IF e_stack_act NOT LIKE E'referenced column: create_snapshot_internal\n' 'SQL statement "SELECT db4ai.create_snapshot_internal(s_id, i_schema, i_name, i_commands, i_comment, CURRENT_USER)"\n' - 'PL/pgSQL function db4ai.create_snapshot(name,name,text[],name,text) line 269 at PERFORM%' + 'PL/pgSQL function db4ai.create_snapshot(name,name,text[],name,text) line 279 at PERFORM%' THEN RAISE EXCEPTION 'direct call to db4ai.create_snapshot_internal(bigint,name,name,text[],text,name) is not allowed' USING HINT = 'call public interface db4ai.create_snapshot instead'; @@ -192,7 +192,9 @@ DECLARE s_mode VARCHAR(3); -- current snapshot mode s_vers_del CHAR; -- snapshot version delimiter, default '@' s_vers_sep CHAR; -- snapshot version separator, default '.' - separation_of_powers TEXT; --current separation of rights + separation_of_powers TEXT; -- current separation of rights + current_compatibility_mode TEXT;-- current compatibility mode + none_represent INT; -- 0 or NULL qual_name TEXT; -- qualified snapshot name command_str TEXT; -- command string pattern TEXT; -- command pattern for matching @@ -256,8 +258,16 @@ BEGIN RAISE EXCEPTION 'i_name must not contain ''%'' characters', s_vers_del; END IF; + current_compatibility_mode := current_setting('sql_compatibility'); + IF current_compatibility_mode = 'ORA' OR current_compatibility_mode = 'A' THEN + none_represent := 0; + ELSE + none_represent := NULL; + END IF; + + -- PG BUG: array_ndims('{}') or array_dims(ARRAY[]::INT[]) returns NULL - IF i_commands IS NULL OR array_length(i_commands, 1) IS NULL OR array_length(i_commands, 2) IS NOT NULL THEN + IF i_commands IS NULL OR array_length(i_commands, 1) = none_represent OR array_length(i_commands, 2) <> none_represent THEN RAISE EXCEPTION 'i_commands array malformed' USING HINT = 'pass SQL commands as TEXT[] literal, e.g. ''{SELECT *, FROM public.t, DISTRIBUTE BY HASH(id)'''; END IF; @@ -280,7 +290,7 @@ BEGIN quoted BOOLEAN := FALSE; -- inside quoted identifier cur_ch VARCHAR; -- current character in tokenizer idx INTEGER := 0; -- loop counter, cannot use FOR .. iterator - start INTEGER := 1; + start_pos INTEGER := 1; stmt TEXT := command_str; BEGIN @@ -316,7 +326,7 @@ BEGIN IF quoted OR nested > 0 THEN CONTINUE; ELSIF pattern IS NULL OR length(pattern) = 0 THEN - start := idx; + start_pos := idx; CONTINUE; END IF; WHEN ';' THEN @@ -330,25 +340,25 @@ BEGIN -- END splitter code for testing IF pattern = 'FROM' THEN - from_cmd := substr(stmt, start + 1); - proj_cmd := left(stmt, start - 1); + from_cmd := substr(stmt, start_pos + 1); + proj_cmd := left(stmt, start_pos - 1); stmt := from_cmd; nested := 0; quoted := FALSE; - idx := idx - start; - start := 1; + idx := idx - start_pos; + start_pos := 1; RAISE NOTICE E'SELECT SPLITTING1\n%\n%\n%', stmt, proj_cmd, from_cmd; ELSIF pattern = 'DISTRIBUTE' THEN RAISE NOTICE E'SELECT SPLITTING2\n%\n%\n%', stmt, proj_cmd, from_cmd; CONTINUE; ELSIF pattern = 'DISTRIBUTEBY' THEN - dist_cmd := substr(stmt, start + 1); - from_cmd := left(stmt, start - 1); + dist_cmd := substr(stmt, start_pos + 1); + from_cmd := left(stmt, start_pos - 1); RAISE NOTICE E'SELECT SPLITTING3\n%\n%\n%\n%', stmt, proj_cmd, from_cmd, dist_cmd; EXIT; END IF; pattern := ''; - start := idx; + start_pos := idx; END LOOP; END; ELSE diff --git a/src/gausskernel/dbmind/db4ai/snapshots/prepare.sql b/src/gausskernel/dbmind/db4ai/snapshots/prepare.sql index c8160f363..04541aba0 100644 --- a/src/gausskernel/dbmind/db4ai/snapshots/prepare.sql +++ b/src/gausskernel/dbmind/db4ai/snapshots/prepare.sql @@ -62,8 +62,8 @@ BEGIN e_stack_act := substr(e_stack_act, 200); END IF; - IF e_stack_act NOT SIMILAR TO 'PL/pgSQL function db4ai.prepare_snapshot\(name,name,text\[\],name,text\) line (175|541|607|714) at assignment%' - AND e_stack_act NOT LIKE 'PL/pgSQL function db4ai.sample_snapshot(name,name,name[],numeric[],name[],text[]) line 215 at IF%' + IF e_stack_act NOT SIMILAR TO 'PL/pgSQL function db4ai.prepare_snapshot\(name,name,text\[\],name,text\) line (184|550|616|723) at assignment%' + AND e_stack_act NOT LIKE 'PL/pgSQL function db4ai.sample_snapshot(name,name,name[],numeric[],name[],text[]) line 224 at IF%' THEN RAISE EXCEPTION 'direct call to db4ai.prepare_snapshot_internal(bigint,bigint,bigint,bigint,name,name,text[],text,name,' 'int,text[],name[]) is not allowed' @@ -191,6 +191,8 @@ DECLARE s_uv_proj TEXT; -- snapshot user view projection list p_name_vers TEXT[]; -- split full parent name into name and version p_sv_proj TEXT; -- parent snapshot system view projection list + current_compatibility_mode TEXT; -- current compatibility mode + none_represent INT; -- 0 or NULL command_str TEXT; -- command string for iterator pattern TEXT; -- command pattern for matching ops_arr BOOLEAN[]; -- operation classes in i_commands @@ -248,6 +250,13 @@ BEGIN s_vers_sep := '.'; END; + current_compatibility_mode := current_setting('sql_compatibility'); + IF current_compatibility_mode = 'ORA' OR current_compatibility_mode = 'A' THEN + none_represent := 0; + ELSE + none_represent := NULL; + END IF; + -- check all input parameters IF i_schema IS NULL OR i_schema = '' THEN i_schema := CASE WHEN (SELECT 0=COUNT(*) FROM pg_catalog.pg_namespace WHERE nspname = CURRENT_USER) THEN 'public' ELSE CURRENT_USER END; @@ -259,7 +268,7 @@ BEGIN i_parent := replace(i_parent, chr(1), s_vers_del); i_parent := replace(i_parent, chr(2), s_vers_sep); p_name_vers := regexp_split_to_array(i_parent, s_vers_del); - IF array_length(p_name_vers, 1) <> 2 OR array_length(p_name_vers, 2) IS NOT NULL THEN + IF array_length(p_name_vers, 1) <> 2 OR array_length(p_name_vers, 2) <> none_represent THEN RAISE EXCEPTION 'i_parent must contain exactly one ''%'' character', s_vers_del USING HINT = 'reference a snapshot using the format: snapshot_name' || s_vers_del || 'version'; END IF; @@ -284,7 +293,7 @@ BEGIN RAISE EXCEPTION 'prepare snapshot internal error3: %', coalesce(m_id, p_id); END IF; - IF i_commands IS NULL OR array_length(i_commands, 1) IS NULL OR array_length(i_commands, 2) IS NOT NULL THEN + IF i_commands IS NULL OR array_length(i_commands, 1) = none_represent OR array_length(i_commands, 2) <> none_represent THEN RAISE EXCEPTION 'i_commands array malformed' USING HINT = 'pass SQL DML and DDL operations as TEXT[] literal, e.g. ''{ALTER, ADD a int, DROP c, DELETE, ' 'WHERE b=5, INSERT, FROM t, UPDATE, FROM t, SET x=y, SET z=f(z), WHERE t.u=v}'''; @@ -397,7 +406,7 @@ BEGIN quoted BOOLEAN := FALSE; -- inside quoted identifier cur_ch VARCHAR; -- current character in tokenizer idx INTEGER := 0; -- loop counter, cannot use FOR .. iterator - start INTEGER := 1; + start_pos INTEGER := 1; stmt TEXT := next_clauses[SET_CLAUSE]; BEGIN @@ -433,7 +442,7 @@ BEGIN IF quoted OR nested > 0 THEN CONTINUE; ELSIF pattern IS NULL OR length(pattern) = 0 THEN - start := idx; + start_pos := idx; CONTINUE; END IF; ELSE @@ -444,12 +453,12 @@ BEGIN -- END splitter code for testing IF pattern IN ('FROM', 'WHERE') THEN - next_clauses[FROM_CLAUSE] := substr(next_clauses[SET_CLAUSE], start + 1); - next_clauses[SET_CLAUSE] := left(next_clauses[SET_CLAUSE], start - 1); + next_clauses[FROM_CLAUSE] := substr(next_clauses[SET_CLAUSE], start_pos + 1); + next_clauses[SET_CLAUSE] := left(next_clauses[SET_CLAUSE], start_pos - 1); EXIT; END IF; pattern := ''; - start := idx; + start_pos := idx; END LOOP; END; RAISE NOTICE E'XXX UPDATE \n%\n%', command_str, array_to_string(next_clauses, E'\n'); @@ -808,7 +817,7 @@ BEGIN BEGIN vers_arr := regexp_split_to_array(p_name_vers[2], CASE s_vers_sep WHEN '.' THEN '\.' ELSE s_vers_sep END); - IF array_length(vers_arr, 1) <> 3 OR array_length(vers_arr, 2) IS NOT NULL OR + IF array_length(vers_arr, 1) <> 3 OR array_length(vers_arr, 2) <> none_represent OR vers_arr[1] ~ '[^0-9]' OR vers_arr[2] ~ '[^0-9]' OR vers_arr[3] ~ '[^0-9]' THEN RAISE EXCEPTION 'illegal version format'; END IF; @@ -910,4 +919,4 @@ BEGIN END; $$; -COMMENT ON FUNCTION db4ai.prepare_snapshot() IS 'Prepare snapshot from existing for data curation'; +COMMENT ON FUNCTION db4ai.prepare_snapshot() IS 'Prepare snapshot from existing for data curation'; \ No newline at end of file diff --git a/src/gausskernel/dbmind/db4ai/snapshots/publish.sql b/src/gausskernel/dbmind/db4ai/snapshots/publish.sql index 155b15a70..21b683924 100644 --- a/src/gausskernel/dbmind/db4ai/snapshots/publish.sql +++ b/src/gausskernel/dbmind/db4ai/snapshots/publish.sql @@ -30,12 +30,14 @@ CREATE OR REPLACE FUNCTION db4ai.manage_snapshot_internal( RETURNS db4ai.snapshot_name LANGUAGE plpgsql SECURITY DEFINER SET search_path = pg_catalog, pg_temp SET client_min_messages TO ERROR AS $$ DECLARE - s_mode VARCHAR(3); -- current snapshot mode - s_vers_del CHAR; -- snapshot version delimiter, default '@' - s_vers_sep CHAR; -- snapshot version separator, default '.' - s_name_vers TEXT[]; -- split snapshot id into name and version - e_stack_act TEXT; -- current stack for validation - res db4ai.snapshot_name; -- composite result + s_mode VARCHAR(3); -- current snapshot mode + s_vers_del CHAR; -- snapshot version delimiter, default '@' + s_vers_sep CHAR; -- snapshot version separator, default '.' + s_name_vers TEXT[]; -- split snapshot id into name and version + e_stack_act TEXT; -- current stack for validation + current_compatibility_mode TEXT; -- current compatibility mode + none_represent INT; -- 0 or NULL + res db4ai.snapshot_name; -- composite result BEGIN BEGIN @@ -85,6 +87,13 @@ BEGIN s_vers_sep := '.'; END; + current_compatibility_mode := current_setting('sql_compatibility'); + IF current_compatibility_mode = 'ORA' OR current_compatibility_mode = 'A' THEN + none_represent := 0; + ELSE + none_represent := NULL; + END IF; + -- check all input parameters IF i_name IS NULL OR i_name = '' THEN RAISE EXCEPTION 'i_name cannot be NULL or empty'; @@ -92,7 +101,7 @@ BEGIN i_name := replace(i_name, chr(1), s_vers_del); i_name := replace(i_name, chr(2), s_vers_sep); s_name_vers := regexp_split_to_array(i_name, s_vers_del); - IF array_length(s_name_vers, 1) <> 2 OR array_length(s_name_vers, 2) IS NOT NULL THEN + IF array_length(s_name_vers, 1) <> 2 OR array_length(s_name_vers, 2) <> none_represent THEN RAISE EXCEPTION 'i_name must contain exactly one ''%'' character', s_vers_del USING HINT = 'reference a snapshot using the format: snapshot_name' || s_vers_del || 'version'; END IF; diff --git a/src/gausskernel/dbmind/db4ai/snapshots/purge.sql b/src/gausskernel/dbmind/db4ai/snapshots/purge.sql index d13b14b70..c18834943 100644 --- a/src/gausskernel/dbmind/db4ai/snapshots/purge.sql +++ b/src/gausskernel/dbmind/db4ai/snapshots/purge.sql @@ -51,7 +51,7 @@ BEGIN IF e_stack_act NOT LIKE 'referenced column: purge_snapshot_internal SQL statement "SELECT db4ai.purge_snapshot_internal(i_schema, i_name)" -PL/pgSQL function db4ai.purge_snapshot(name,name) line 62 at PERFORM%' +PL/pgSQL function db4ai.purge_snapshot(name,name) line 71 at PERFORM%' THEN RAISE EXCEPTION 'direct call to db4ai.purge_snapshot_internal(name,name) is not allowed' USING HINT = 'call public interface db4ai.purge_snapshot instead'; @@ -86,7 +86,7 @@ PL/pgSQL function db4ai.purge_snapshot(name,name) line 62 at PERFORM%' ELSE SELECT array_agg(id) FROM db4ai.snapshot WHERE matrix_id = m_id AND id <> s_id INTO STRICT o_id; - IF o_id IS NULL OR array_length(o_id, 1) = 0 THEN + IF o_id IS NULL OR array_length(o_id, 1) = 0 OR array_length(o_id, 1) IS NULL THEN EXECUTE 'DROP VIEW db4ai.v' || s_id; EXECUTE 'DROP TABLE db4ai.t' || m_id; RAISE NOTICE 'PURGE_SNAPSHOT: CSS backing table dropped'; @@ -129,11 +129,13 @@ CREATE OR REPLACE FUNCTION db4ai.purge_snapshot( RETURNS db4ai.snapshot_name LANGUAGE plpgsql SECURITY INVOKER SET client_min_messages TO ERROR AS $$ DECLARE - s_mode VARCHAR(3); -- current snapshot mode - s_vers_del CHAR; -- snapshot version delimiter, default '@' - s_vers_sep CHAR; -- snapshot version separator, default '.' - s_name_vers TEXT[]; -- split full name into name and version - res db4ai.snapshot_name; -- composite result + s_mode VARCHAR(3); -- current snapshot mode + s_vers_del CHAR; -- snapshot version delimiter, default '@' + s_vers_sep CHAR; -- snapshot version separator, default '.' + s_name_vers TEXT[]; -- split full name into name and version + current_compatibility_mode TEXT;-- current compatibility mode + none_represent INT; -- 0 or NULL + res db4ai.snapshot_name; -- composite result BEGIN -- obtain active message level @@ -171,13 +173,20 @@ BEGIN i_schema := CASE WHEN (SELECT 0=COUNT(*) FROM pg_catalog.pg_namespace WHERE nspname = CURRENT_USER) THEN 'public' ELSE CURRENT_USER END; END IF; + current_compatibility_mode := current_setting('sql_compatibility'); + IF current_compatibility_mode = 'ORA' OR current_compatibility_mode = 'A' THEN + none_represent := 0; + ELSE + none_represent := NULL; + END IF; + IF i_name IS NULL OR i_name = '' THEN RAISE EXCEPTION 'i_name cannot be NULL or empty'; ELSE i_name := replace(i_name, chr(1), s_vers_del); i_name := replace(i_name, chr(2), s_vers_sep); s_name_vers := regexp_split_to_array(i_name, s_vers_del); - IF array_length(s_name_vers, 1) <> 2 OR array_length(s_name_vers, 2) IS NOT NULL THEN + IF array_length(s_name_vers, 1) <> 2 OR array_length(s_name_vers, 2) <> none_represent THEN RAISE EXCEPTION 'i_name must contain exactly one ''%'' character', s_vers_del USING HINT = 'reference a snapshot using the format: snapshot_name' || s_vers_del || 'version'; END IF; diff --git a/src/gausskernel/dbmind/db4ai/snapshots/sample.sql b/src/gausskernel/dbmind/db4ai/snapshots/sample.sql index 58dcfd76b..6131aac79 100644 --- a/src/gausskernel/dbmind/db4ai/snapshots/sample.sql +++ b/src/gausskernel/dbmind/db4ai/snapshots/sample.sql @@ -50,6 +50,8 @@ DECLARE exec_cmds TEXT[]; -- commands for execution qual_name TEXT; -- qualified snapshot name mapping NAME[]; -- mapping user column names to backing column names + current_compatibility_mode TEXT;-- current compatibility mode + none_represent INT; -- 0 or NULL s_name db4ai.snapshot_name; -- snapshot sample name BEGIN @@ -83,6 +85,13 @@ BEGIN s_vers_sep := '.'; END; + current_compatibility_mode := current_setting('sql_compatibility'); + IF current_compatibility_mode = 'ORA' OR current_compatibility_mode = 'A' THEN + none_represent := 0; + ELSE + none_represent := NULL; + END IF; + -- check all input parameters IF i_schema IS NULL OR i_schema = '' THEN i_schema := CASE WHEN (SELECT 0=COUNT(*) FROM pg_catalog.pg_namespace WHERE nspname = CURRENT_USER) THEN 'public' ELSE CURRENT_USER END; @@ -94,7 +103,7 @@ BEGIN i_parent := replace(i_parent, chr(1), s_vers_del); i_parent := replace(i_parent, chr(2), s_vers_sep); p_name_vers := regexp_split_to_array(i_parent, s_vers_del); - IF array_length(p_name_vers, 1) <> 2 OR array_length(p_name_vers, 2) IS NOT NULL THEN + IF array_length(p_name_vers, 1) <> 2 OR array_length(p_name_vers, 2) <> none_represent THEN RAISE EXCEPTION 'i_parent must contain exactly one ''%'' character', s_vers_del USING HINT = 'reference a snapshot using the format: snapshot_name' || s_vers_del || 'version'; END IF; @@ -107,12 +116,12 @@ BEGIN RAISE EXCEPTION 'parent snapshot %.% does not exist' , quote_ident(i_schema), quote_ident(i_parent); END; - IF i_sample_infixes IS NULL OR array_length(i_sample_infixes, 1) IS NULL OR array_length(i_sample_infixes, 2) IS NOT NULL THEN + IF i_sample_infixes IS NULL OR array_length(i_sample_infixes, 1) = none_represent OR array_length(i_sample_infixes, 2) <> none_represent THEN RAISE EXCEPTION 'i_sample_infixes array malformed' USING HINT = 'pass sample infixes as NAME[] literal, e.g. ''{_train, _test}'''; END IF; - IF i_sample_ratios IS NULL OR array_length(i_sample_ratios, 1) IS NULL OR array_length(i_sample_ratios, 2) IS NOT NULL THEN + IF i_sample_ratios IS NULL OR array_length(i_sample_ratios, 1) = none_represent OR array_length(i_sample_ratios, 2) <> none_represent THEN RAISE EXCEPTION 'i_sample_ratios array malformed' USING HINT = 'pass sample percentages as NUMBER[] literal, e.g. ''{.8, .2}'''; END IF; @@ -122,7 +131,7 @@ BEGIN END IF; IF i_stratify IS NOT NULL THEN - IF array_length(i_stratify, 1) IS NULL OR array_length(i_stratify, 2) IS NOT NULL THEN + IF array_length(i_stratify, 1) = none_represent OR array_length(i_stratify, 2) <> none_represent THEN RAISE EXCEPTION 'i_stratify array malformed' USING HINT = 'pass stratification field names as NAME[] literal, e.g. ''{color, size}'''; END IF; @@ -140,7 +149,7 @@ BEGIN END IF; IF i_sample_comments IS NOT NULL THEN - IF array_length(i_sample_comments, 1) IS NULL OR array_length(i_sample_comments, 2) IS NOT NULL THEN + IF array_length(i_sample_comments, 1) = none_represent OR array_length(i_sample_comments, 2) <> none_represent THEN RAISE EXCEPTION 'i_sample_comments array malformed' USING HINT = 'pass sample comments as TEXT[] literal, e.g. ''{comment 1, comment 2}'''; ELSIF array_length(i_sample_infixes, 1) <> array_length(i_sample_comments, 1) THEN diff --git a/src/gausskernel/dbmind/tools/ai_manager/tools/env_handler.py b/src/gausskernel/dbmind/tools/ai_manager/tools/env_handler.py index 729eca233..71a4c8be7 100644 --- a/src/gausskernel/dbmind/tools/ai_manager/tools/env_handler.py +++ b/src/gausskernel/dbmind/tools/ai_manager/tools/env_handler.py @@ -17,7 +17,6 @@ from tools.global_box import g PYTHON_PATH = '' # Dict of env need defined: -# {"export PYTHONPATH": "export PYTHONPATH=%s" % PYTHON_PATH} ENV_MENU = { "export PYTHONPATH": "export PYTHONPATH=%s" % PYTHON_PATH } diff --git a/src/gausskernel/dbmind/tools/ai_manager/tools/params_checkers.py b/src/gausskernel/dbmind/tools/ai_manager/tools/params_checkers.py index 86d3482d4..d8f91c97f 100644 --- a/src/gausskernel/dbmind/tools/ai_manager/tools/params_checkers.py +++ b/src/gausskernel/dbmind/tools/ai_manager/tools/params_checkers.py @@ -78,12 +78,13 @@ def check_ip(obj): """ if not isinstance(obj, str): raise ValueError(Errors.ILLEGAL['gauss_0603'] % (str(obj), 'ip string')) - valid = re.match("^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[" - "0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[" - "0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[" - "0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$", obj) if obj == '0.0.0.0': valid = True + else: + valid = re.match("^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[" + "0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[" + "0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[" + "0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$", obj) if not valid: raise ValueError(Errors.ILLEGAL['gauss_0602'] % 'ip') @@ -95,9 +96,7 @@ def check_port(obj): if not str(obj).isdigit(): raise Exception(Errors.ILLEGAL['gauss_0603'] % ('port', 'digit')) port = int(obj) - if port < 0 or port > 65535: - raise Exception(Errors.ILLEGAL['gauss_0602'] % 'port') - if 0 <= port <= 1023: + if port <=1023 or port > 65535: raise Exception(Errors.ILLEGAL['gauss_0602'] % 'port') diff --git a/src/gausskernel/dbmind/tools/ai_server/agent/http_sink.py b/src/gausskernel/dbmind/tools/ai_server/agent/http_sink.py index 810394c1e..398d7333e 100644 --- a/src/gausskernel/dbmind/tools/ai_server/agent/http_sink.py +++ b/src/gausskernel/dbmind/tools/ai_server/agent/http_sink.py @@ -55,13 +55,9 @@ class HttpSink(Sink): self.logger.info('Begin send data to %s' % self._url) while self.running: time.sleep(self._interval) - # {'OSExporter': {metric1: value, ...}, 'DatabaseExporter': {metric1: value, ...}} contents = self._channel_manager.get_channel_content() retry_times = 0 if contents: - # {'database': ip_port, - # 'OSExporter': {metric1: value, ...}, - # 'DatabaseExporter': {metric1: value, ...}} contents.update( {"database": "%s:%s:%s:%s" % (self.cluster_name, self.host.replace(".", "_"), str(self.port), self.data_type)}) diff --git a/src/gausskernel/dbmind/tools/ai_server/common/utils.py b/src/gausskernel/dbmind/tools/ai_server/common/utils.py index 305152cd9..a68349cba 100644 --- a/src/gausskernel/dbmind/tools/ai_server/common/utils.py +++ b/src/gausskernel/dbmind/tools/ai_server/common/utils.py @@ -185,6 +185,8 @@ class Common: collect_info = {"data_type": "", "ip": "", "port": ""} value = Common.parser_config_file("agent", "collection_item") # value is: '[data_type, host, port]' + if len(json.loads(value)) != 3: + raise ValueError("can not parse format of '{value}'".format(value=value)) collect_info["data_type"] = json.loads(value)[0] collect_info["ip"] = json.loads(value)[1] collect_info["port"] = json.loads(value)[2] diff --git a/src/gausskernel/dbmind/tools/anomaly_detection/agent/metric_agent.py b/src/gausskernel/dbmind/tools/anomaly_detection/agent/metric_agent.py index bc96cb03d..e32f0f797 100644 --- a/src/gausskernel/dbmind/tools/anomaly_detection/agent/metric_agent.py +++ b/src/gausskernel/dbmind/tools/anomaly_detection/agent/metric_agent.py @@ -21,6 +21,7 @@ import global_vars from cert import get_agent_ssl_context from task import database_exporter, os_exporter, wdr from utils import TimeString +from utils import getpasswd from deamon import handle_sigterm from .channel import MemoryChannel from .db_source import DBSource @@ -69,9 +70,8 @@ def _extract_params(): params['agent_cert'] = os.path.realpath(config.get('security', 'agent_cert')) params['agent_key'] = os.path.realpath(config.get('security', 'agent_key')) params['ca'] = os.path.realpath(config.get('security', 'ca')) - pwd_file = os.path.join(global_vars.CURRENT_DIRNAME, 'certificate/pwf') - with open(pwd_file, mode='r') as f: - params['cert_pwd'] = f.read().strip() + pwd_path = os.path.dirname(params['agent_cert']) + params['cert_pwd'] = getpasswd(pwd_path) return params diff --git a/src/gausskernel/dbmind/tools/anomaly_detection/detector/service/detection_app.py b/src/gausskernel/dbmind/tools/anomaly_detection/detector/service/detection_app.py index f773b4e99..1c29416a2 100644 --- a/src/gausskernel/dbmind/tools/anomaly_detection/detector/service/detection_app.py +++ b/src/gausskernel/dbmind/tools/anomaly_detection/detector/service/detection_app.py @@ -22,6 +22,7 @@ from flask_restful import Api import config import global_vars from cert import get_server_ssl_context +from utils import getpasswd from .app import App from .resource import receiver @@ -64,9 +65,8 @@ def _extract_params(): params['server_cert'] = config.get('security', 'server_cert') params['server_key'] = config.get('security', 'server_key') params['ca'] = config.get('security', 'ca') - with open(os.path.join(global_vars.CURRENT_DIRNAME, 'certificate/pwf'), - mode='r') as f: - params['cert_pwd'] = f.read().strip() + pwd_path = os.path.dirname(params['server_cert']) + params['cert_pwd'] = getpasswd(pwd_path) return params diff --git a/src/gausskernel/dbmind/tools/anomaly_detection/share/gen_certificate.sh b/src/gausskernel/dbmind/tools/anomaly_detection/share/gen_certificate.sh index 34d146ac4..bfcb28fac 100644 --- a/src/gausskernel/dbmind/tools/anomaly_detection/share/gen_certificate.sh +++ b/src/gausskernel/dbmind/tools/anomaly_detection/share/gen_certificate.sh @@ -22,7 +22,6 @@ source ./initialize_certificate.sh CA_CRT="${CURRENT_DIR}/${CA}/ca.crt" CA_KEY="${CURRENT_DIR}/${CA}/ca.key" -pwf="${CURRENT_DIR}/${PW_FILE}" local_host="" ca_password="" ssl_password="" @@ -51,6 +50,7 @@ fi key="${base_dir}/${file_name}.key" crt="${base_dir}/${file_name}.crt" req="${base_dir}/${file_name}.req" +pwf="${base_dir}" expect <<-EOF spawn /bin/openssl genrsa -aes256 -out ${key} 2048 @@ -77,7 +77,7 @@ EOF rm ${req} -echo "${ssl_password}">${pwf} +encrypt "${ssl_password}" ${pwf} ${pwf} chmod 600 ${key} chmod 600 ${crt} -chmod 600 ${pwf} +chmod 700 ${pwf} diff --git a/src/gausskernel/dbmind/tools/anomaly_detection/utils/__init__.py b/src/gausskernel/dbmind/tools/anomaly_detection/utils/__init__.py index 54c830c2c..012a5ad8f 100644 --- a/src/gausskernel/dbmind/tools/anomaly_detection/utils/__init__.py +++ b/src/gausskernel/dbmind/tools/anomaly_detection/utils/__init__.py @@ -18,11 +18,15 @@ import os import re import sys import shlex +import ctypes import subprocess import requests import config from datetime import timedelta from threading import Thread, Event +from cryptography.hazmat.backends import default_backend +from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes +import hashlib import psycopg2 import sqlparse @@ -34,6 +38,139 @@ from global_vars import DATE_FORMAT split_flag = ('!=', '<=', '>=', '==', '<', '>', '=', ',', '*', ';', '%', '+', ',', ';', '/') +class AesCbcUtil(object): + """ + aes cbc tool + """ + @classmethod + def check_content_key(cls, content, key): + """ + check ase cbc content and key + """ + if not isinstance(content, bytes): + raise ValueError('incorrect parameter.') + if not isinstance(key, (bytes, str)): + raise ValueError('incorrect parameter.') + + iv_len = 16 + if not len(content) >= (iv_len + 16): + raise Exception(Errors.GAUSS_61101.build_msg("check content key. " + "content's len must >= (iv_len + 16).")) + + @classmethod + def aes_cbc_decrypt(cls, content, key): + """ + aes cbc decrypt for content and key + """ + cls.check_content_key(content, key) + if isinstance(key, str): + key = bytes(key) + iv_len = 16 + # pre shared key iv + iv = content[16 + 1 + 16 + 1:16 + 1 + 16 + 1 + 16] + + # pre shared key enctryt + enc_content = content[:iv_len] + + try: + backend = default_backend() + except Exception as imp_clib_err: + if str(imp_clib_err).find('SSLv3_method') == -1: + # not find SSLv3_method, and it's not ours + local_path = os.path.dirname(os.path.realpath(__file__)) + clib_path = os.path.realpath(os.path.join(local_path, "../clib")) + ssl_path = os.path.join(clib_path, 'libssl.so.1.1') + crypto_path = os.path.join(clib_path, 'libcrypto.so.1.1') + if os.path.isfile(crypto_path): + ctypes.CDLL(crypto_path, mode=ctypes.RTLD_GLOBAL) + if os.path.isfile(ssl_path): + ctypes.CDLL(ssl_path, mode=ctypes.RTLD_GLOBAL) + else: + ssl_path = '/usr/lib64/libssl.so.1.1' + crypto_path = '/usr/lib64/libcrypto.so.1.1' + if os.path.isfile(crypto_path): + ctypes.CDLL(crypto_path, mode=ctypes.RTLD_GLOBAL) + if os.path.isfile(ssl_path): + ctypes.CDLL(ssl_path, mode=ctypes.RTLD_GLOBAL) + backend = default_backend() + + cipher = Cipher(algorithms.AES(key), modes.CBC(iv), backend=backend) + decrypter = cipher.decryptor() + dec_content = decrypter.update(enc_content) + decrypter.finalize() + server_decipher_key = dec_content.rstrip(b'\x00')[:-1].decode() + return server_decipher_key + + @classmethod + def get_old_version_path(cls, path): + """ Compatible old version path, only 'encrypt' + old: /home/xxx/key_0 + new: /home/xxx/cipher/key_0 + """ + dirname, basename = os.path.split(path.rstrip("/")) + dirname, _ = os.path.split(dirname) + path = os.path.join(dirname, basename) + return path + + @classmethod + def aes_cbc_decrypt_with_path(cls, cipher_path, rand_path): + """ + aes cbc decrypt for one path + """ + if not os.path.isdir(cipher_path): + cipher_path = cls.get_old_version_path(cipher_path) + rand_path = cls.get_old_version_path(rand_path) + with open(os.path.join(cipher_path, 'server.key.cipher'), 'rb') as cipher_file: + cipher_txt = cipher_file.read() + with open(os.path.join(rand_path, 'server.key.rand'), 'rb') as rand_file: + rand_txt = rand_file.read() + + if cipher_txt is None or cipher_txt == "": + return None + + server_vector_cipher_vector = cipher_txt[16 + 1:16 + 1 + 16] + # pre shared key rand + server_key_rand = rand_txt[:16] + + # worker key + server_decrypt_key = hashlib.pbkdf2_hmac('sha256', server_key_rand, + server_vector_cipher_vector, 10000, 16) + + enc = cls.aes_cbc_decrypt(cipher_txt, server_decrypt_key) + return enc + + @classmethod + def aes_cbc_decrypt_with_multi(cls, cipher_root, rand_root): + """ + decrypt message with multi depth + """ + num = 0 + rt = "" + if not os.path.isdir(cipher_root): + cipher_root = os.path.dirname(cipher_root.rstrip("/")) + rand_root = os.path.dirname(rand_root.rstrip("/")) + while True: + cipher_path = os.path.join(cipher_root, "key_%s" % num) + rand_path = os.path.join(rand_root, "key_%s" % num) + part = cls.aes_cbc_decrypt_with_path(cipher_path, rand_path) + if part is None: + break + elif len(part) < 15: + rt += part + break + else: + rt += part + num = num + 1 + + if rt == "": + return None + return rt + + @staticmethod + def format_path(root_path): + """format decrypt_with_multi or decrypt_with_path""" + return os.path.join(root_path, "cipher"), os.path.join(root_path, "rand") + + class RepeatTimer(Thread): """ This class inherits from threading.Thread, it is used for periodic execution @@ -389,3 +526,15 @@ def check_tls_protocol(): except Exception as e: agent_logger.error("[security] part must exists in configure file.") raise + + +def getpasswd(key_path): + if os.path.isdir(key_path): + output = AesCbcUtil.aes_cbc_decrypt_with_multi(*AesCbcUtil.format_path(key_path)) + if len(str(output).strip().split()) < 1: + return '' + else: + return str(output).strip().split()[-1] + else: + return '' + diff --git a/src/gausskernel/dbmind/tools/anomaly_detection/utils/plan_parsing.py b/src/gausskernel/dbmind/tools/anomaly_detection/utils/plan_parsing.py index 0690843b0..32f5e5ad7 100644 --- a/src/gausskernel/dbmind/tools/anomaly_detection/utils/plan_parsing.py +++ b/src/gausskernel/dbmind/tools/anomaly_detection/utils/plan_parsing.py @@ -184,7 +184,6 @@ class Plan: def parse(self, text: str): # Remove redundant text to interference with the parsing process. tidy_text = text.strip('\n') - # lines = tidy_text.split(r'\n') lines = tidy_text.splitlines() if len(lines) == 0: return diff --git a/src/gausskernel/dbmind/tools/index_advisor/DAO/driver_execute.py b/src/gausskernel/dbmind/tools/index_advisor/DAO/driver_execute.py index 9e2cbae3a..e7de9b029 100644 --- a/src/gausskernel/dbmind/tools/index_advisor/DAO/driver_execute.py +++ b/src/gausskernel/dbmind/tools/index_advisor/DAO/driver_execute.py @@ -103,18 +103,17 @@ class DriverExecute(ExecuteFactory): for item in result: if len(item) == 4: table_name = re.search(r'btree_(.*%s)' % item[2], item[0]).group(1) - schema_table_name = '.'.join(table_name.split('_', 1)) - if schema_table_name in query_index_dict.keys(): - table_name = schema_table_name - elif 'public.' + table_name in query_index_dict.keys(): - table_name = 'public.' + table_name - else: + match_flag, table_name = ExecuteFactory.match_table_name(table_name, + query_index_dict) + if not match_flag: + self.execute('SELECT hypopg_reset_index()') return valid_indexes hypoid_table_column[str(item[1])] = \ table_name + ':' + item[3].strip('()') sqls = "SET explain_perf_mode = 'normal'; explain %s" % query result = self.execute(sqls) if not result: + self.execute('SELECT hypopg_reset_index()') return valid_indexes # parse the result of explain plan for item in result: @@ -193,7 +192,7 @@ class DriverExecute(ExecuteFactory): return total_cost def check_useless_index(self, tables, history_indexes, history_invalid_indexes): - schemas = list(filter(None, self.schema.split(','))) + schemas = [elem.lower() for elem in filter(None, self.schema.split(','))] whole_indexes = list() redundant_indexes = list() matched_table_name = set() @@ -208,10 +207,10 @@ class DriverExecute(ExecuteFactory): "pg_get_indexdef(i.oid) AS indexdef, p.contype AS pkey from " \ "pg_index x JOIN pg_class c ON c.oid = x.indrelid JOIN " \ "pg_class i ON i.oid = x.indexrelid LEFT JOIN pg_namespace n " \ - "ON n.oid = c.relnamespace LEFT JOIN pg_constraint p ON i.oid = p.conindid " \ - "WHERE (c.relkind = ANY (ARRAY['r'::\"char\", 'm'::\"char\"])) AND " \ - "(i.relkind = ANY (ARRAY['i'::\"char\", 'I'::\"char\"])) AND " \ - "n.nspname = '%s' AND c.relname in (%s) order by c.relname;" % \ + "ON n.oid = c.relnamespace LEFT JOIN pg_constraint p ON (i.oid = p.conindid " \ + "AND p.contype = 'p') WHERE (c.relkind = ANY (ARRAY['r'::\"char\", " \ + "'m'::\"char\"])) AND (i.relkind = ANY (ARRAY['i'::\"char\", 'I'::\"char\"])) " \ + "AND n.nspname = '%s' AND c.relname in (%s) order by c.relname;" % \ (schema, tables_string) res = self.execute(sql) if not res: diff --git a/src/gausskernel/dbmind/tools/index_advisor/DAO/execute_factory.py b/src/gausskernel/dbmind/tools/index_advisor/DAO/execute_factory.py index 100c96648..43a56f4f2 100644 --- a/src/gausskernel/dbmind/tools/index_advisor/DAO/execute_factory.py +++ b/src/gausskernel/dbmind/tools/index_advisor/DAO/execute_factory.py @@ -37,6 +37,20 @@ class ExecuteFactory: if is_redundant: redundant_indexes.append(index) + @staticmethod + def match_table_name(table_name, query_index_dict): + for elem in query_index_dict.keys(): + item_tmp = '_'.join(elem.split('.')) + if table_name == item_tmp: + table_name = elem + break + elif 'public_' + table_name == item_tmp: + table_name = 'public.' + table_name + break + else: + return False, table_name + return True, table_name + @staticmethod def get_valid_indexes(record, hypoid_table_column, valid_indexes): tokens = record.split(' ') @@ -55,8 +69,8 @@ class ExecuteFactory: @staticmethod def record_ineffective_negative_sql(candidate_index, obj, ind): cur_table = candidate_index.table - if cur_table not in obj.statement and \ - re.search(r'(\.%s\s)' % cur_table.split('.')[-1], obj.statement.lower()): + if cur_table not in obj.statement.lower() and \ + not re.search(r'(\.%s\s)' % cur_table.split('.')[-1], obj.statement.lower()): return if any(re.match(r'(insert\sinto\s%s\s)' % table, obj.statement.lower()) for table in [cur_table, cur_table.split('.')[-1]]): @@ -78,7 +92,7 @@ class ExecuteFactory: else: candidate_index.ineffective_pos.append(ind) candidate_index.total_sql_num += obj.frequency - elif cur_table in obj.statement or \ + elif cur_table in obj.statement.lower() or \ re.search(r'(\s%s\s)' % cur_table.split('.')[-1], obj.statement.lower()): candidate_index.select_sql_num += obj.frequency # SELECT scenes to filter out positive diff --git a/src/gausskernel/dbmind/tools/index_advisor/DAO/gsql_execute.py b/src/gausskernel/dbmind/tools/index_advisor/DAO/gsql_execute.py index 9c49b2e91..4e8266a3b 100644 --- a/src/gausskernel/dbmind/tools/index_advisor/DAO/gsql_execute.py +++ b/src/gausskernel/dbmind/tools/index_advisor/DAO/gsql_execute.py @@ -123,12 +123,9 @@ class GSqlExecute(ExecuteFactory): if len(hypo_index_info) == 4: table_name = re.search(r'btree_(.*%s)' % hypo_index_info[2], hypo_index_info[0]).group(1) - schema_table_name = '.'.join(table_name.split('_', 1)) - if schema_table_name in query_index_dict.keys(): - table_name = schema_table_name - elif 'public.' + table_name in query_index_dict.keys(): - table_name = 'public.' + table_name - else: + match_flag, table_name = ExecuteFactory.match_table_name(table_name, + query_index_dict) + if not match_flag: return valid_indexes hypoid_table_column[hypo_index_info[1]] = \ table_name + ':' + hypo_index_info[3].strip('"()') @@ -249,7 +246,7 @@ class GSqlExecute(ExecuteFactory): return total_cost def check_useless_index(self, tables, history_indexes, history_invalid_indexes): - schemas = list(filter(None, self.schema.split(','))) + schemas = [elem.lower() for elem in filter(None, self.schema.split(','))] whole_indexes = list() redundant_indexes = list() matched_table_name = set() @@ -264,12 +261,11 @@ class GSqlExecute(ExecuteFactory): "pg_get_indexdef(i.oid) AS indexdef, p.contype AS pkey from " \ "pg_index x JOIN pg_class c ON c.oid = x.indrelid JOIN " \ "pg_class i ON i.oid = x.indexrelid LEFT JOIN pg_namespace n " \ - "ON n.oid = c.relnamespace LEFT JOIN pg_constraint p ON i.oid = p.conindid " \ - "WHERE (c.relkind = ANY (ARRAY['r'::\"char\", 'm'::\"char\"])) AND " \ - "(i.relkind = ANY (ARRAY['i'::\"char\", 'I'::\"char\"])) AND " \ - "n.nspname = '%s' AND c.relname in (%s) order by c.relname;" % \ + "ON n.oid = c.relnamespace LEFT JOIN pg_constraint p ON (i.oid = p.conindid " \ + "AND p.contype = 'p') WHERE (c.relkind = ANY (ARRAY['r'::\"char\", " \ + "'m'::\"char\"])) AND (i.relkind = ANY (ARRAY['i'::\"char\", 'I'::\"char\"])) " \ + "AND n.nspname = '%s' AND c.relname in (%s) order by c.relname;" % \ (schema, tables_string) - res = self.run_shell_cmd([sql]).split('\n') if not res: continue diff --git a/src/gausskernel/dbmind/tools/index_advisor/README.md b/src/gausskernel/dbmind/tools/index_advisor/README.md index 31b253d53..854b2a72d 100644 --- a/src/gausskernel/dbmind/tools/index_advisor/README.md +++ b/src/gausskernel/dbmind/tools/index_advisor/README.md @@ -5,12 +5,31 @@ First, some candidate indexes are generated based on query syntax and database statistics. Then the optimal index set is determined by estimating the cost and benefit of it for the workload. -## Dependencies - - python3.x - ## Usage python index_advisor_workload.py [p PORT] [d DATABASE] [f FILE] [--h HOST] [-U USERNAME] [-W PASSWORD] [--schema SCHEMA] [--max_index_num MAX_INDEX_NUM] [--max_index_storage MAX_INDEX_STORAGE] - [--multi_iter_mode] [--multi_node] + [--multi_iter_mode] [--multi_node] [--json] [--driver] [--show_detail] + +# Extract_log + +**extract_log** is a tool for extracting business data from pg_log. + +## Usage + + python extract_log.py [l LOG_DIRECTORY] [f OUTPUT_FILE] [-d DATABASE] [-U USERNAME] [--start_time] + [--sql_amount] [--statement] [--json] + +## index_server + +**Index_server** is a lightweight tool for deploying regular index recommendations, + +and setting related parameters by configuring **database.conf** file. + +## Usage + + echo passwd | python index_server.py & + +## Dependencies + + python3.x diff --git a/src/gausskernel/dbmind/tools/index_advisor/database-info.conf b/src/gausskernel/dbmind/tools/index_advisor/database-info.conf new file mode 100644 index 000000000..ee758a561 --- /dev/null +++ b/src/gausskernel/dbmind/tools/index_advisor/database-info.conf @@ -0,0 +1,25 @@ +[server] +app_name= +database= +port= +host= +user= +workload_user= +schema= + +index_intervals= +max_index_num= +max_index_storage= +driver= + +sql_amount= +max_generate_log_size= +statement= +log_min_duration_statement= +log_statement= +output_sql_file= +datanode= +pg_log_path= + +ai_monitor_url= + diff --git a/src/gausskernel/dbmind/tools/index_advisor/extract_log.py b/src/gausskernel/dbmind/tools/index_advisor/extract_log.py index d0f9d02ab..fe567e5b4 100644 --- a/src/gausskernel/dbmind/tools/index_advisor/extract_log.py +++ b/src/gausskernel/dbmind/tools/index_advisor/extract_log.py @@ -90,7 +90,7 @@ def get_workload_template(templates, sqls): def output_valid_sql(sql): is_quotation_valid = sql.count("'") % 2 - if 'from pg_' in sql.lower() or is_quotation_valid: + if 'from pg_' in sql.lower() or 'gs_index_advise' in sql.lower() or is_quotation_valid: return '' if any(tp in sql.lower() for tp in SQL_TYPE[1:]) or \ (SQL_TYPE[0] in sql.lower() and 'from ' in sql.lower()): @@ -221,7 +221,7 @@ def extract_sql_from_log(args): try: with open(args.f, 'r') as output_file: templates = json.load(output_file) - except json.JSONDecodeError: + except (json.JSONDecodeError, FileNotFoundError) as e: templates = {} record_sql(valid_files, args, templates) with open(args.f, 'w') as output_file: diff --git a/src/gausskernel/dbmind/tools/index_advisor/index_advisor_workload.py b/src/gausskernel/dbmind/tools/index_advisor/index_advisor_workload.py index 7e5e85937..cfb298b21 100644 --- a/src/gausskernel/dbmind/tools/index_advisor/index_advisor_workload.py +++ b/src/gausskernel/dbmind/tools/index_advisor/index_advisor_workload.py @@ -22,7 +22,6 @@ import re import json import select import logging -from DAO.driver_execute import DriverExecute from DAO.gsql_execute import GSqlExecute ENABLE_MULTI_NODE = False @@ -134,8 +133,8 @@ def filter_low_benefit(pos_list, candidate_indexes, multi_iter_mode, workload): else: cost_list_pos = pos_list[key] + 1 sql_optimzed += 1 - workload[pos].cost_list[cost_list_pos] / workload[pos].cost_list[0] - negative_ratio = (index.insert_sql_num + index.delete_sql_num + - index.update_sql_num) / index.total_sql_num + negative_ratio = ((index.insert_sql_num + index.delete_sql_num + + index.update_sql_num) / index.total_sql_num) if index.total_sql_num else 0 # filter the candidate indexes that do not meet the conditions of optimization if sql_optimzed / len(index.positive_pos) < 0.1: remove_list.append(key) @@ -210,13 +209,15 @@ def display_recommend_result(workload, candidate_indexes, index_cost_total, mult sql_info['columns'] = index.columns sql_info['statement'] = statement sql_info['dmlCount'] = round(index.total_sql_num) - sql_info['selectRatio'] = round(index.select_sql_num * 100 / index.total_sql_num, 2) - sql_info['insertRatio'] = round(index.insert_sql_num * 100 / index.total_sql_num, 2) - sql_info['deleteRatio'] = round(index.delete_sql_num * 100 / index.total_sql_num, 2) - sql_info['updateRatio'] = round(100 - sql_info['selectRatio'] - sql_info['insertRatio'] - - sql_info['deleteRatio'], 2) + sql_info['selectRatio'] = round((index.select_sql_num * 100 / + index.total_sql_num) if index.total_sql_num else 0, 2) + sql_info['insertRatio'] = round((index.insert_sql_num * 100 / + index.total_sql_num) if index.total_sql_num else 0, 2) + sql_info['deleteRatio'] = round((index.delete_sql_num * 100 / + index.total_sql_num) if index.total_sql_num else 0, 2) + sql_info['updateRatio'] = round((100 - sql_info['selectRatio'] - sql_info['insertRatio'] + - sql_info['deleteRatio']) if index.total_sql_num else 0, 2) display_info['recommendIndexes'].append(sql_info) - return display_info def load_workload(file_path): @@ -514,12 +515,13 @@ def display_last_recommend_result(integrate_indexes, history_invalid_indexes, in print(statement) # save integrate indexes result integrate_indexes_file = os.path.join(os.path.dirname(input_path), 'index_result.json') - for table, indexes in integrate_indexes['currentIndexes'].items(): - integrate_indexes['historyIndexes'][table] = \ - integrate_indexes['historyIndexes'].get(table, list()) - integrate_indexes['historyIndexes'][table].extend(indexes) - integrate_indexes['historyIndexes'][table] = \ - list(set(integrate_indexes['historyIndexes'][table])) + if integrate_indexes.get('currentIndexes'): + for table, indexes in integrate_indexes['currentIndexes'].items(): + integrate_indexes['historyIndexes'][table] = \ + integrate_indexes['historyIndexes'].get(table, list()) + integrate_indexes['historyIndexes'][table].extend(indexes) + integrate_indexes['historyIndexes'][table] = \ + list(set(integrate_indexes['historyIndexes'][table])) with open(integrate_indexes_file, 'w') as file: json.dump(integrate_indexes['historyIndexes'], file) @@ -579,6 +581,7 @@ def simple_index_advisor(input_path, max_index_num, integrate_indexes, db): workload, workload_count = workload_compression(input_path) print_header_boundary(" Generate candidate indexes ") ori_indexes_name = set() + history_invalid_indexes = {} workload_table_name = dict() display_info = {'workloadCount': workload_count, 'recommendIndexes': []} candidate_indexes = generate_candidate_indexes(workload, workload_table_name, db) @@ -587,7 +590,9 @@ def simple_index_advisor(input_path, max_index_num, integrate_indexes, db): if len(candidate_indexes) == 0: print("No candidate indexes generated!") db.estimate_workload_cost_file(workload, ori_indexes_name=ori_indexes_name) - return ori_indexes_name, workload_table_name, display_info + if DRIVER: + db.close_conn() + return ori_indexes_name, workload_table_name, display_info, history_invalid_indexes print_header_boundary(" Determine optimal indexes ") ori_total_cost = db.estimate_workload_cost_file(workload, ori_indexes_name=ori_indexes_name) @@ -600,14 +605,13 @@ def simple_index_advisor(input_path, max_index_num, integrate_indexes, db): db.close_conn() if len(candidate_indexes) == 0: print("No optimal indexes generated!") - return ori_indexes_name, workload_table_name, display_info + return ori_indexes_name, workload_table_name, display_info, history_invalid_indexes candidate_indexes = [item for item in candidate_indexes if item.benefit > 0] candidate_indexes = sorted(enumerate(candidate_indexes), key=lambda item: item[1].benefit, reverse=True) global MAX_INDEX_NUM MAX_INDEX_NUM = max_index_num # match the last recommendation result - history_invalid_indexes = {} display_recommend_result(workload, candidate_indexes, index_cost_total, False, display_info, integrate_indexes, history_invalid_indexes) return ori_indexes_name, workload_table_name, display_info, history_invalid_indexes @@ -653,18 +657,21 @@ def greedy_determine_opt_config(workload, atomic_config_total, candidate_indexes def complex_index_advisor(input_path, integrate_indexes, db): workload, workload_count = workload_compression(input_path) print_header_boundary(" Generate candidate indexes ") + history_invalid_indexes = {} ori_indexes_name = set() workload_table_name = dict() display_info = {'workloadCount': workload_count, 'recommendIndexes': []} candidate_indexes = generate_candidate_indexes(workload, workload_table_name, db) + if DRIVER: + db.init_conn_handle() if len(candidate_indexes) == 0: print("No candidate indexes generated!") db.estimate_workload_cost_file(workload, ori_indexes_name=ori_indexes_name) - return ori_indexes_name, workload_table_name, display_info + if DRIVER: + db.close_conn() + return ori_indexes_name, workload_table_name, display_info, history_invalid_indexes print_header_boundary(" Determine optimal indexes ") - if DRIVER: - db.init_conn_handle() atomic_config_total = generate_atomic_config(workload) if atomic_config_total and len(atomic_config_total[0]) != 0: raise ValueError("The empty atomic config isn't generated!") @@ -679,9 +686,8 @@ def complex_index_advisor(input_path, integrate_indexes, db): candidate_indexes, index_cost_total[0]) if len(opt_config) == 0: print("No optimal indexes generated!") - return ori_indexes_name, workload_table_name, display_info + return ori_indexes_name, workload_table_name, display_info, history_invalid_indexes # match the last invalid recommendation result - history_invalid_indexes = {} display_recommend_result(workload, opt_config, index_cost_total, True, display_info, integrate_indexes, history_invalid_indexes) return ori_indexes_name, workload_table_name, display_info, history_invalid_indexes @@ -733,7 +739,6 @@ def main(): args.max_index_storage) JSON_TYPE = args.json - DRIVER = args.driver MAX_INDEX_NUM = args.max_index_num or 10 ENABLE_MULTI_NODE = args.multi_node MAX_INDEX_STORAGE = args.max_index_storage @@ -741,18 +746,23 @@ def main(): raise ValueError('Enter the \'-W\' parameter for user ' + args.U + ' when executing the script.') # Initialize the connection - try: - import psycopg2 - except ImportError: - logging.warning('Driver import failed, use gsql to connect to the database.') - args.driver = None if args.driver: - db = DriverExecute(args.d, args.U, args.W, args.h, args.p, args.schema, - args.multi_node, args.max_index_storage) + try: + from DAO.driver_execute import DriverExecute + db = DriverExecute(args.d, args.U, args.W, args.h, args.p, args.schema, + args.multi_node, args.max_index_storage) + except ImportError: + logging.warning('Python driver import failed, ' + 'the gsql mode will be selected to connect to the database.') + db = GSqlExecute(args.d, args.U, args.W, args.h, args.p, args.schema, + args.multi_node, args.max_index_storage) + db.init_conn_handle() + args.driver = None else: db = GSqlExecute(args.d, args.U, args.W, args.h, args.p, args.schema, args.multi_node, args.max_index_storage) db.init_conn_handle() + DRIVER = args.driver integrate_indexes = get_last_indexes_result(args.f) if args.multi_iter_mode: workload_indexes, tables, detail_info, history_invalid_indexes = \ diff --git a/src/gausskernel/optimizer/commands/CMakeLists.txt b/src/gausskernel/optimizer/commands/CMakeLists.txt index 6d896caf2..49bdd8d6e 100755 --- a/src/gausskernel/optimizer/commands/CMakeLists.txt +++ b/src/gausskernel/optimizer/commands/CMakeLists.txt @@ -1,6 +1,10 @@ #This is the main CMAKE for build all components. AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR} TGT_commands_SRC) +set(CMAKE_MODULE_PATH + ${CMAKE_CURRENT_SOURCE_DIR}/sequence +) + set(TGT_commands_INC ${PROJECT_OPENGS_DIR}/contrib/log_fdw ${PROJECT_SRC_DIR}/include/libcomm @@ -16,6 +20,8 @@ set(TGT_commands_INC ${LIBCURL_INCLUDE_PATH} ) +add_subdirectory(sequence) + set(commands_DEF_OPTIONS ${MACRO_OPTIONS} -DOBS_SERVER) set(commands_COMPILE_OPTIONS ${OPTIMIZE_OPTIONS} ${OS_OPTIONS} ${PROTECT_OPTIONS} ${WARNING_OPTIONS} ${BIN_SECURE_OPTIONS} ${CHECK_OPTIONS}) set(commands_LINK_OPTIONS ${BIN_LINK_OPTIONS}) diff --git a/src/gausskernel/optimizer/commands/Makefile b/src/gausskernel/optimizer/commands/Makefile index 8b278e205..0d57a9f1c 100644 --- a/src/gausskernel/optimizer/commands/Makefile +++ b/src/gausskernel/optimizer/commands/Makefile @@ -16,13 +16,16 @@ ifneq "$(MAKECMDGOALS)" "clean" endif endif endif + +SUBDIRS = sequence + OBJS = aggregatecmds.o alter.o analyze.o async.o cluster.o comment.o \ collationcmds.o constraint.o conversioncmds.o copy.o createas.o \ dbcommands.o define.o discard.o dropcmds.o explain.o extension.o \ foreigncmds.o functioncmds.o \ indexcmds.o lockcmds.o matview.o operatorcmds.o opclasscmds.o \ portalcmds.o prepare.o proclang.o packagecmds.o publicationcmds.o\ - schemacmds.o seclabel.o sec_rls_cmds.o sequence.o subscriptioncmds.o tablecmds.o tablespace.o trigger.o \ + schemacmds.o seclabel.o sec_rls_cmds.o subscriptioncmds.o tablecmds.o tablespace.o trigger.o \ tsearchcmds.o typecmds.o user.o vacuum.o vacuumlazy.o \ variable.o verify.o view.o gds_stream.o obs_stream.o formatter.o datasourcecmds.o \ directory.o auto_explain.o shutdown.o diff --git a/src/gausskernel/optimizer/commands/aggregatecmds.cpp b/src/gausskernel/optimizer/commands/aggregatecmds.cpp index 909572e6c..052812cd6 100644 --- a/src/gausskernel/optimizer/commands/aggregatecmds.cpp +++ b/src/gausskernel/optimizer/commands/aggregatecmds.cpp @@ -243,7 +243,7 @@ void RenameAggregate(List* name, List* args, const char* newname) Form_pg_proc procForm; Relation rel; AclResult aclresult; - + bool isNull = false; rel = heap_open(ProcedureRelationId, RowExclusiveLock); /* Look up function and make sure it's an aggregate */ @@ -257,8 +257,25 @@ void RenameAggregate(List* name, List* args, const char* newname) namespaceOid = procForm->pronamespace; oidvector* proargs = ProcedureGetArgTypes(tup); + Datum packageoid = SysCacheGetAttr(PROCOID, tup, Anum_pg_proc_packageid, &isNull); + if (isNull) { + packageoid = DatumGetObjectId(InvalidOid); + } +#ifndef ENABLE_MULTIPLE_NODES + Datum allargtypes = ProcedureGetAllArgTypes(tup, &isNull); /* make sure the new name doesn't exist */ + if (SearchSysCache4(PROCALLARGS, + CStringGetDatum(newname), + allargtypes, + ObjectIdGetDatum(namespaceOid), + ObjectIdGetDatum(packageoid))) + ereport(ERROR, + (errcode(ERRCODE_DUPLICATE_FUNCTION), + errmsg("function %s already exists in schema \"%s\"", + funcname_signature_string(newname, procForm->pronargs, NIL, proargs->values), + get_namespace_name(namespaceOid)))); +#else if (SearchSysCacheExists3(PROCNAMEARGSNSP, CStringGetDatum(newname), PointerGetDatum(&procForm->proargtypes), @@ -268,7 +285,7 @@ void RenameAggregate(List* name, List* args, const char* newname) errmsg("function %s already exists in schema \"%s\"", funcname_signature_string(newname, procForm->pronargs, NIL, proargs->values), get_namespace_name(namespaceOid)))); - +#endif /* must be owner */ if (!pg_proc_ownercheck(procOid, GetUserId())) aclcheck_error(ACLCHECK_NOT_OWNER, ACL_KIND_PROC, NameListToString(name)); diff --git a/src/gausskernel/optimizer/commands/alter.cpp b/src/gausskernel/optimizer/commands/alter.cpp index 3b38927a1..b33c04616 100644 --- a/src/gausskernel/optimizer/commands/alter.cpp +++ b/src/gausskernel/optimizer/commands/alter.cpp @@ -6,6 +6,7 @@ * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -147,6 +148,7 @@ void ExecRenameStmt(RenameStmt* stmt) case OBJECT_TABLE: case OBJECT_SEQUENCE: + case OBJECT_LARGE_SEQUENCE: case OBJECT_VIEW: case OBJECT_CONTQUERY: case OBJECT_MATVIEW: @@ -240,6 +242,7 @@ void ExecAlterObjectSchemaStmt(AlterObjectSchemaStmt* stmt) break; case OBJECT_SEQUENCE: + case OBJECT_LARGE_SEQUENCE: case OBJECT_TABLE: case OBJECT_VIEW: case OBJECT_CONTQUERY: diff --git a/src/gausskernel/optimizer/commands/analyze.cpp b/src/gausskernel/optimizer/commands/analyze.cpp index 5d0194532..b3344e3eb 100755 --- a/src/gausskernel/optimizer/commands/analyze.cpp +++ b/src/gausskernel/optimizer/commands/analyze.cpp @@ -6,6 +6,7 @@ * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -466,6 +467,25 @@ void analyze_concurrency_process(Oid relid, int16 attnum, MemoryContext oldconte } } +BlockNumber GetSubPartitionNumberOfBlocks(Relation rel, Partition part, LOCKMODE lockmode) +{ + Relation partRel = partitionGetRelation(rel, part); + List *subPartList = NIL; + ListCell *partCell = NULL; + BlockNumber relpages = 0; + + subPartList = relationGetPartitionList(partRel, lockmode); + + foreach (partCell, subPartList) { + Partition subPart = (Partition)lfirst(partCell); + relpages += PartitionGetNumberOfBlocks(partRel, subPart); + } + + releasePartitionList(partRel, &subPartList, NoLock); + releaseDummyRelation(&partRel); + return relpages; +} + /* * Description: Analyze one relation * @@ -573,7 +593,12 @@ static void analyze_rel_internal(Relation onerel, VacuumStmt* vacstmt, BufferAcc foreach (partCell, partList) { part = (Partition)lfirst(partCell); - relpages += PartitionGetNumberOfBlocks(onerel, part); + + if (RelationIsSubPartitioned(onerel)) { + relpages += GetSubPartitionNumberOfBlocks(onerel, part, lockmode); + } else { + relpages += PartitionGetNumberOfBlocks(onerel, part); + } } } else { relpages = RelationGetNumberOfBlocks(onerel); @@ -4384,6 +4409,24 @@ static int64 acquire_dfsstored_sample_rows(Relation onerel, int elevel, HeapTupl return numrows; } +void PartitionGePartRelationList(Relation onerel, Relation partRel, List** partList) +{ + if (RelationIsSubPartitioned(onerel)) { + List *subPartList = relationGetPartitionList(partRel, NoLock); + ListCell *lc = NULL; + foreach (lc, subPartList) { + Partition subPart = (Partition)lfirst(lc); + Relation subPartRel = partitionGetRelation(partRel, subPart); + *partList = lappend(*partList, subPartRel); + } + + releasePartitionList(partRel, &subPartList, NoLock); + releaseDummyRelation(&partRel); + } else { + *partList = lappend(*partList, partRel); + } +} + /* * @@GaussDB@@ * Target : data partition @@ -4432,8 +4475,22 @@ static int64 acquirePartitionedSampleRows(Relation onerel, VacuumStmt* vacstmt, List* partbuckets = NIL; Partition temp_part = (Partition)lfirst(partCell); - partbuckets = relationGetBucketRelList(onerel, temp_part); - partList = list_concat(partList, partbuckets); + if (RelationIsSubPartitioned(onerel)) { + partRel = partitionGetRelation(onerel, temp_part); + List *subPartList = relationGetPartitionList(partRel, NoLock); + ListCell *lc = NULL; + foreach (lc, subPartList) { + Partition subPart = (Partition)lfirst(lc); + partbuckets = relationGetBucketRelList(partRel, subPart); + partList = list_concat(partList, partbuckets); + } + + releasePartitionList(partRel, &subPartList, NoLock); + releaseDummyRelation(&partRel); + } else { + partbuckets = relationGetBucketRelList(onerel, temp_part); + partList = list_concat(partList, partbuckets); + } } } else { /* @@ -4447,7 +4504,7 @@ static int64 acquirePartitionedSampleRows(Relation onerel, VacuumStmt* vacstmt, part = (Partition)lfirst(partCell); partRel = partitionGetRelation(onerel, part); - partList = lappend(partList, partRel); + PartitionGePartRelationList(onerel, partRel, &partList); } } /* @@ -6670,13 +6727,26 @@ static BlockNumber GetOneRelNBlocks( Oid partOid = InvalidOid; Oid partIndexOid = InvalidOid; Partition indexPart = NULL; + Relation partRel = NULL; indexOid = RelationGetRelid(Irel); foreach (partCell, vacstmt->partList) { part = (Partition)lfirst(partCell); partOid = PartitionGetPartid(part); - partIndexOid = getPartitionIndexOid(indexOid, partOid); + if (RelationIsSubPartitioned(onerel)) { + partRel = partitionGetRelation(onerel, part); + List *subPartOidList = relationGetPartitionOidList(partRel); + ListCell *lc = NULL; + foreach (lc, subPartOidList) { + Oid subPartOid = (Oid)lfirst_oid(lc); + partIndexOid = getPartitionIndexOid(indexOid, subPartOid); + } + releasePartitionOidList(&subPartOidList); + releaseDummyRelation(&partRel); + } else { + partIndexOid = getPartitionIndexOid(indexOid, partOid); + } indexPart = partitionOpen(Irel, partIndexOid, AccessShareLock); nblocks += PartitionGetNumberOfBlocks(Irel, indexPart); partitionClose(Irel, indexPart, AccessShareLock); diff --git a/src/gausskernel/optimizer/commands/async.cpp b/src/gausskernel/optimizer/commands/async.cpp index 67e938e77..ee5070a23 100644 --- a/src/gausskernel/optimizer/commands/async.cpp +++ b/src/gausskernel/optimizer/commands/async.cpp @@ -1410,14 +1410,10 @@ void AtSubStart_Notify(void) t_thrd.asy_cxt.upperPendingActions = lcons(t_thrd.asy_cxt.pendingActions, t_thrd.asy_cxt.upperPendingActions); - Assert(list_length(t_thrd.asy_cxt.upperPendingActions) == GetCurrentTransactionNestLevel() - 1); - t_thrd.asy_cxt.pendingActions = NIL; t_thrd.asy_cxt.upperPendingNotifies = lcons(t_thrd.asy_cxt.pendingNotifies, t_thrd.asy_cxt.upperPendingNotifies); - Assert(list_length(t_thrd.asy_cxt.upperPendingNotifies) == GetCurrentTransactionNestLevel() - 1); - t_thrd.asy_cxt.pendingNotifies = NIL; (void)MemoryContextSwitchTo(old_cxt); @@ -1436,8 +1432,6 @@ void AtSubCommit_Notify(void) parentPendingActions = (List*)linitial(t_thrd.asy_cxt.upperPendingActions); t_thrd.asy_cxt.upperPendingActions = list_delete_first(t_thrd.asy_cxt.upperPendingActions); - Assert(list_length(t_thrd.asy_cxt.upperPendingActions) == GetCurrentTransactionNestLevel() - 2); - /* * Mustn't try to eliminate duplicates here --- see queue_listen() */ @@ -1446,8 +1440,6 @@ void AtSubCommit_Notify(void) parentPendingNotifies = (List*)linitial(t_thrd.asy_cxt.upperPendingNotifies); t_thrd.asy_cxt.upperPendingNotifies = list_delete_first(t_thrd.asy_cxt.upperPendingNotifies); - Assert(list_length(t_thrd.asy_cxt.upperPendingNotifies) == GetCurrentTransactionNestLevel() - 2); - /* * We could try to eliminate duplicates here, but it seems not worthwhile. */ diff --git a/src/gausskernel/optimizer/commands/auto_explain.cpp b/src/gausskernel/optimizer/commands/auto_explain.cpp index 9606ff2ce..1cb672aa0 100644 --- a/src/gausskernel/optimizer/commands/auto_explain.cpp +++ b/src/gausskernel/optimizer/commands/auto_explain.cpp @@ -36,8 +36,13 @@ static instr_time plan_time; (u_sess->attr.attr_storage.log_min_duration_statement >= 0 && u_sess->exec_cxt.nesting_level == 0) #define auto_explain_plan() \ (!u_sess->attr.attr_sql.under_explain && u_sess->attr.attr_resource.enable_auto_explain) +#ifdef ENABLE_MULTIPLE_NODES #define is_valid_query(queryDesc) \ - (queryDesc!=NULL && queryDesc->sourceText != NULL && strcmp(queryDesc->sourceText, "DUMMY") != 0 && IS_PGXC_COORDINATOR) + (queryDesc!=NULL && queryDesc->sourceText != NULL && strcmp(queryDesc->sourceText, "DUMMY") != 0 && IS_PGXC_COORDINATOR) +#else +#define is_valid_query(queryDesc) \ + (queryDesc!=NULL && queryDesc->sourceText != NULL && strcmp(queryDesc->sourceText, "DUMMY") != 0) +#endif void auto_explain_init(void); void _PG_fini(void); diff --git a/src/gausskernel/optimizer/commands/cluster.cpp b/src/gausskernel/optimizer/commands/cluster.cpp index 125914e0c..39d3eedf3 100755 --- a/src/gausskernel/optimizer/commands/cluster.cpp +++ b/src/gausskernel/optimizer/commands/cluster.cpp @@ -9,6 +9,7 @@ * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994-5, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -167,10 +168,11 @@ static void RebuildCStoreRelation( extern void Start_Prefetch(TableScanDesc scan, SeqScanAccessor* pAccessor, ScanDirection dir); extern void SeqScan_Init(TableScanDesc Scan, SeqScanAccessor* pAccessor, Relation relation); -static void swap_partition_relfilenode( Oid partitionOid1, Oid partitionOid2, bool swapToastByContent, +static void swap_partition_relfilenode(Oid partitionOid1, Oid partitionOid2, bool swapToastByContent, TransactionId frozenXid, MultiXactId multiXid, Oid* mappedTables); static void partition_relfilenode_swap(Oid OIDOldHeap, Oid OIDNewHeap, uint8 needSwitch); -static void relfilenode_swap(Oid OIDOldHeap, Oid OIDNewHeap, uint8 needSwitch); +static void relfilenode_swap(Oid OIDOldHeap, Oid OIDNewHeap, uint8 needSwitch, TransactionId relfrozenxid, + MultiXactId relMultiXid); #ifdef ENABLE_MULTIPLE_NODES static Datum pgxc_parallel_execution(const char* query, ExecNodes* exec_nodes); static int switch_relfilenode_execnode(Oid relOid1, Oid relOid2, bool isbucket, RedisSwitchNode* rsn); @@ -505,12 +507,24 @@ void cluster_rel(Oid tableOid, Oid partitionOid, Oid indexOid, bool recheck, boo (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("cannot vacuum temporary tables of other sessions"))); } + if (RelationIsSubPartitioned(OldHeap)) { + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("cannot cluster a subpartition table"))); + } + if (RELATION_IS_GLOBAL_TEMP(OldHeap) && !gtt_storage_attached(RelationGetRelid(OldHeap))) { relation_close(OldHeap, lockMode); gstrace_exit(GS_TRC_ID_cluster_rel); return; } + if (OldHeap->storage_type == SEGMENT_PAGE) { + ereport(LOG, (errmsg("skipping segment table \"%s\" --- please use gs_space_shrink " + "to recycle segment space.", RelationGetRelationName(OldHeap)))); + relation_close(OldHeap, lockMode); + return; + } + /* * Also check for active uses of the relation in the current transaction, * including open scans and pending AFTER trigger events. @@ -727,7 +741,7 @@ void mark_index_clustered(Relation rel, Oid indexOid) */ pg_index = heap_open(IndexRelationId, RowExclusiveLock); - foreach (index, RelationGetIndexList(rel)) { + foreach (index, RelationGetIndexList(rel, true)) { Oid thisIndexOid = lfirst_oid(index); indexTuple = SearchSysCacheCopy1(INDEXRELID, ObjectIdGetDatum(thisIndexOid)); @@ -2303,7 +2317,9 @@ static void copy_heap_data(Oid OIDNewHeap, Oid OIDOldHeap, Oid OIDOldIndex, int } else { bool isNull = false; TransactionId relfrozenxid; +#ifndef ENABLE_MULTIPLE_NODES MultiXactId relminmxid; +#endif Relation rel = heap_open(RelationRelationId, AccessShareLock); HeapTuple tuple = SearchSysCacheCopy1(RELOID, ObjectIdGetDatum(OIDOldHeap)); if (!HeapTupleIsValid(tuple)) { @@ -3653,6 +3669,13 @@ void CBIVacuumFullMainPartiton(Oid parentOid) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("cannot vacuum temporary tables of other sessions"))); } + + /* If vacuum full partitioned segment table, give hint here */ + if (parentHeap->storage_type == SEGMENT_PAGE) { + ereport(LOG, (errmsg("skipping segment table \"%s\" --- please use gs_space_shrink " + "to recycle segment space.", RelationGetRelationName(parentHeap)))); + } + /* * Also check for active uses of the relation in the current transaction, * including open scans and pending AFTER trigger events. @@ -3741,7 +3764,12 @@ void vacuumFullPart(Oid partOid, VacuumStmt* vacstmt, int freeze_min_age, int fr * case, since cluster() already did it.) The index lock is taken inside * check_index_is_clusterable. */ - oldRelOid = partid_get_parentid(partOid); + if (!vacstmt->issubpartition) { + oldRelOid = partid_get_parentid(partOid); + } else { + Oid subparentid = partid_get_parentid(partOid); + oldRelOid = partid_get_parentid(subparentid); + } /// to promote the concurrency of vacuum full on partitions in mppdb version, /// degrade lockmode from AccessExclusiveLock to AccessShareLock. @@ -3760,6 +3788,11 @@ void vacuumFullPart(Oid partOid, VacuumStmt* vacstmt, int freeze_min_age, int fr (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("cannot vacuum temporary tables of other sessions"))); } + if (oldHeap->storage_type == SEGMENT_PAGE) { + relation_close(oldHeap, AccessShareLock); + return; + } + /* * Also check for active uses of the relation in the current transaction, * including open scans and pending AFTER trigger events. @@ -3767,7 +3800,7 @@ void vacuumFullPart(Oid partOid, VacuumStmt* vacstmt, int freeze_min_age, int fr CheckTableNotInUse(oldHeap, "VACUUM"); #ifdef ENABLE_MULTIPLE_NODES - if (unlikely(RelationIsTsStore(oldHeap))) { + if (unlikely(RelationIsTsStore(oldHeap)) && g_instance.attr.attr_common.enable_tsdb) { Tsdb::VacFullCompaction(oldHeap, partOid); } else { rebuildPartVacFull(oldHeap, partOid, freeze_min_age, freeze_table_age, vacstmt); @@ -3855,6 +3888,9 @@ static void rebuildPartVacFull(Relation oldHeap, Oid partOid, int freezeMinAge, bool isNull = false; Partition partition = NULL; Relation partRel = NULL; + Partition parentpartition = NULL; + Relation parentpartRel = NULL; + Oid subparentid = InvalidOid; Relation newHeap = NULL; int reindexFlags = 0; ObjectAddress object; @@ -3876,8 +3912,16 @@ static void rebuildPartVacFull(Relation oldHeap, Oid partOid, int freezeMinAge, partTabRelOptions = (Datum)0; } - partition = partitionOpen(oldHeap, partOid, ExclusiveLock); - partRel = partitionGetRelation(oldHeap, partition); + if (!vacstmt->issubpartition) { + partition = partitionOpen(oldHeap, partOid, ExclusiveLock); + partRel = partitionGetRelation(oldHeap, partition); + } else { + subparentid = partid_get_parentid(partOid); + parentpartition = partitionOpen(oldHeap, subparentid, ExclusiveLock); + parentpartRel = partitionGetRelation(oldHeap, parentpartition); + partition = partitionOpen(parentpartRel, partOid, ExclusiveLock); + partRel = partitionGetRelation(parentpartRel, partition); + } is_shared = partRel->rd_rel->relisshared; /* @@ -3934,7 +3978,14 @@ static void rebuildPartVacFull(Relation oldHeap, Oid partOid, int freezeMinAge, heap_close(newHeap, NoLock); t_thrd.storage_cxt.EnlargeDeadlockTimeout = true; - LockPartition(oldHeap->rd_id, partOid, AccessExclusiveLock, PARTITION_LOCK); + List* indexGPIRelList = LockAllGlobalIndexes(oldHeap, AccessExclusiveLock); + + if (!vacstmt->issubpartition) { + LockPartition(oldHeap->rd_id, partOid, AccessExclusiveLock, PARTITION_LOCK); + } else { + LockPartition(parentpartRel->rd_id, partOid, AccessExclusiveLock, PARTITION_LOCK); + LockPartition(oldHeap->rd_id, subparentid, AccessExclusiveLock, PARTITION_LOCK); + } /* * Swap the physical files of the target and transient tables, then @@ -3943,14 +3994,22 @@ static void rebuildPartVacFull(Relation oldHeap, Oid partOid, int freezeMinAge, finishPartitionHeapSwap(partRel->rd_id, OIDNewHeap, swapToastByContent, frozenXid, multiXid); /* Close relcache entry, but keep lock until transaction commit */ - releaseDummyRelation(&partRel); - partitionClose(oldHeap, partition, NoLock); + if (!vacstmt->issubpartition) { + releaseDummyRelation(&partRel); + partitionClose(oldHeap, partition, NoLock); + } else { + releaseDummyRelation(&partRel); + partitionClose(parentpartRel, partition, NoLock); + releaseDummyRelation(&parentpartRel); + partitionClose(oldHeap, parentpartition, NoLock); + } + ReleaseLockAllGlobalIndexes(&indexGPIRelList, NoLock); heap_close(oldHeap, NoLock); /* Rebuild index of partitioned table */ reindexFlags = REINDEX_REL_SUPPRESS_INDEX_USE; - (void)reindexPartition(tableOid, partOid, reindexFlags, REINDEX_ALL_INDEX); (void)ReindexRelation(tableOid, reindexFlags, REINDEX_ALL_INDEX, NULL, NULL, false, GLOBAL_INDEX); + (void)reindexPartition(tableOid, partOid, reindexFlags, REINDEX_ALL_INDEX); #ifndef ENABLE_MULTIPLE_NODES if (RelationIsCUFormatByOid(tableOid)) { @@ -5165,8 +5224,11 @@ static int64 execute_relfilenode_swap(Oid relOid1, Oid relOid2, uint8 needSwitch /* Partition table */ partition_relfilenode_swap(relOid1, relOid2, needSwitch); } else { + TransactionId relfrozenxid; + MultiXactId relMultiXid; + getRelationRelxids(rel, &relfrozenxid, &relMultiXid); /* Ordinary table */ - relfilenode_swap(relOid1, relOid2, needSwitch); + relfilenode_swap(relOid1, relOid2, needSwitch, relfrozenxid, relMultiXid); } /* swap bucket info while doing data redis */ @@ -5829,7 +5891,8 @@ void swapRelationIndicesRelfileNode(Relation rel1, Relation rel2, uint8 needSwit * @out : None * @return : None */ -void relfilenode_swap(Oid OIDOldHeap, Oid OIDNewHeap, uint8 needSwitch) +void relfilenode_swap(Oid OIDOldHeap, Oid OIDNewHeap, uint8 needSwitch, TransactionId relfrozenxid, + MultiXactId relMultiXid) { Oid mapped_tables[4]; int i; @@ -5847,8 +5910,8 @@ void relfilenode_swap(Oid OIDOldHeap, Oid OIDNewHeap, uint8 needSwitch) OIDNewHeap, (OIDOldHeap == RelationRelationId), false, - u_sess->utils_cxt.RecentGlobalXmin, - GetOldestMultiXactId(), + relfrozenxid, + relMultiXid, mapped_tables); /* * Now we must remove any relation mapping entries that we set up for the diff --git a/src/gausskernel/optimizer/commands/comment.cpp b/src/gausskernel/optimizer/commands/comment.cpp index 8e9025dcc..3fe47cba5 100644 --- a/src/gausskernel/optimizer/commands/comment.cpp +++ b/src/gausskernel/optimizer/commands/comment.cpp @@ -7,6 +7,7 @@ * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. * Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 2010-2012 Postgres-XC Development Group + * Portions Copyright (c) 2021, openGauss Contributors * * IDENTIFICATION * src/gausskernel/optimizer/commands/comment.cpp @@ -56,6 +57,7 @@ static AclResult CheckObjectCommentPrivilege(const CommentStmt* stmt, Oid object AclResult aclresult = ACLCHECK_NO_PRIV; switch (stmt->objtype) { case OBJECT_SEQUENCE: + case OBJECT_LARGE_SEQUENCE: case OBJECT_TABLE: case OBJECT_VIEW: case OBJECT_MATVIEW: diff --git a/src/gausskernel/optimizer/commands/copy.cpp b/src/gausskernel/optimizer/commands/copy.cpp index f15ecf742..74e3eb6de 100644 --- a/src/gausskernel/optimizer/commands/copy.cpp +++ b/src/gausskernel/optimizer/commands/copy.cpp @@ -6,6 +6,7 @@ * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -133,6 +134,13 @@ static const Oid copy_error_table_col_typid[COPY_ERROR_TABLE_NUM_COL] = { VARCHAROID, TIMESTAMPTZOID, VARCHAROID, INT8OID, TEXTOID, TEXTOID}; +const char* COPY_SUMMARY_TABLE_SCHEMA = "public"; +const char* COPY_SUMMARY_TABLE = "gs_copy_summary"; +static const int COPY_SUMMARY_TABLE_NUM_COL = 12; +static Oid copy_summary_table_col_typid[COPY_SUMMARY_TABLE_NUM_COL] = { + VARCHAROID, TIMESTAMPTZOID, TIMESTAMPTZOID, INT8OID, INT8OID, INT8OID, + INT8OID, INT8OID, INT8OID, INT8OID, INT8OID, TEXTOID}; + /* * Note that similar macros also exist in executor/execMain.c. There does not * appear to be any good header to put them into, given the structures that @@ -316,10 +324,17 @@ extern void PrintFixedHeader(CopyState cstate); void CheckIfGDSReallyEnds(CopyState cstate, GDSStream* stream); void ProcessCopyErrorLogOptions(CopyState cstate, bool isRejectLimitSpecified); void Log_copy_error_spi(CopyState cstate); +static void LogCopyErrorLogBulk(CopyState cstate); +static void Log_copy_summary_spi(CopyState cstate); extern bool TrySaveImportError(CopyState cstate); +static void FormAndSaveImportWhenLog(CopyState cstate, Relation errRel, Datum begintime, CopyErrorLogger *elogger); +static void CheckCopyWhenList(List *when_list); +static bool IfCopyLineMatchWhenListPosition(CopyState cstate); +static bool IfCopyLineMatchWhenListField(CopyState cstate); +static void CopyGetWhenListAttFieldno(CopyState cstate, List *attnamelist); +static int CopyGetColumnListIndex(CopyState cstate, List *attnamelist, const char* colname); -const char* gds_protocol_version_gaussdb = "1.0"; - +const char *gds_protocol_version_gaussdb = "1.0"; /* * Send copy start/stop messages for frontend copies. These have changed * in past protocol redesigns. @@ -1155,7 +1170,7 @@ static void TransformFormatter(CopyState cstate, List* formatter) colid++; if (pre != NULL) { Position* precol = (Position*)lfirst(pre); - if (precol->position + precol->fixedlen > col->position) + if (precol->position + precol->fixedlen > col->position && cstate->is_load_copy == false) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("pre-field \"%s\" can not be covered by field \"%s\"", precol->colname, col->colname))); @@ -1440,7 +1455,7 @@ void ProcessCopyOptions(CopyState cstate, bool is_from, List* options) if (cstate->fill_missing_fields) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("conflicting or redundant options"))); else - cstate->fill_missing_fields = defGetBoolean(defel); + cstate->fill_missing_fields = defGetMixdInt(defel); } else if (strcmp(defel->defname, "noescaping") == 0) { if (noescapingSpecified) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("conflicting or redundant options"))); @@ -1587,6 +1602,26 @@ void ProcessCopyOptions(CopyState cstate, bool is_from, List* options) } else if (pg_strcasecmp((defel->defname), "transform") == 0) { cstate->trans_expr_list = (List*)(defel->arg); GetTransSourceStr(cstate, defel->begin_location, defel->end_location); + } else if (pg_strcasecmp((defel->defname), "when_expr") == 0) { + cstate->when = (List *)defel->arg; + CheckCopyWhenList(cstate->when); + } else if (pg_strcasecmp((defel->defname), "skip") == 0) { + cstate->skip = defGetInt64(defel); + if (cstate->skip < 0) { + ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("SKIP %ld should be >= 0", cstate->skip))); + } + } else if (pg_strcasecmp((defel->defname), "sequence") == 0) { + cstate->sequence_col_list = (List*)(defel->arg); + } else if (pg_strcasecmp((defel->defname), "filler") == 0) { + cstate->filler_col_list = (List*)(defel->arg); + } else if (pg_strcasecmp((defel->defname), "constant") == 0) { + cstate->constant_col_list = (List*)(defel->arg); + } else if (strcmp(defel->defname, "loader") == 0) { + if (cstate->is_load_copy) + ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("conflicting or redundant options"))); + cstate->is_load_copy = defGetBoolean(defel); + } else if (pg_strcasecmp((defel->defname), "useeof") == 0) { + cstate->is_useeof = defGetBoolean(defel); } else if (pg_strcasecmp(defel->defname, optChunkSize) == 0) { if (obs_chunksize) { ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("conflicting or redundant options"))); @@ -2076,7 +2111,7 @@ static void ProcessCopyErrorLogSetUps(CopyState cstate) if (!cstate->log_errors && !cstate->logErrorsData) { return; } - if (cstate->logErrorsData && !superuser()) { + if (cstate->logErrorsData && !superuser() && cstate->is_load_copy == false) { ereport(ERROR, (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("must be system admin to execute \"COPY from log errors data\" "))); @@ -2132,6 +2167,60 @@ static void ProcessCopyErrorLogSetUps(CopyState cstate) } } +/* + * ProcessCopySummaryLogSetUps is used to set up necessary structures used for copy from summary logging. + */ +static bool CheckCopySummaryTableDef(int nattrs, Form_pg_attribute *attr) +{ + if (nattrs != COPY_SUMMARY_TABLE_NUM_COL) { + return false; + } + + for (int attnum = 0; attnum < nattrs; attnum++) { + if (attr[attnum]->atttypid != copy_summary_table_col_typid[attnum]) + return false; + } + return true; +} + +static void ProcessCopySummaryLogSetUps(CopyState cstate) +{ + Oid sys_namespaceid = InvalidOid; + Oid summary_table_reloid = InvalidOid; + + cstate->copy_beginTime = TimestampTzGetDatum(GetCurrentTimestamp()); + cstate->skiprows = 0; + cstate->loadrows = 0; + cstate->errorrows = 0; + cstate->whenrows = 0; + cstate->allnullrows = 0; + cstate->summary_table = NULL; + + if (!cstate->is_from) { + return; + } + /* One thing to know is that gs_copy_summary is in public, */ + sys_namespaceid = get_namespace_oid(COPY_SUMMARY_TABLE_SCHEMA, false); + summary_table_reloid = get_relname_relid(COPY_SUMMARY_TABLE, sys_namespaceid); + if (!OidIsValid(summary_table_reloid)) { + return; + } + /* RowExclusiveLock is used for insertion during spi. */ + cstate->summary_table = relation_open(summary_table_reloid, RowExclusiveLock); + int natts = RelationGetNumberOfAttributes(cstate->summary_table); + TupleDesc tupDesc = RelationGetDescr(cstate->summary_table); + Form_pg_attribute *attr = tupDesc->attrs; + + if (!CheckCopySummaryTableDef(natts, attr)) { + ereport(ERROR, + (errcode(ERRCODE_OPERATE_FAILED), + errmsg("The column definition of %s.%s table is not as intended.", COPY_SUMMARY_TABLE_SCHEMA, + COPY_SUMMARY_TABLE), + errhint("You may want to use copy_summary_create() to create it instead in order to use COPY FROM " + "summary logging."))); + } +} + /* * Common setup routines used by BeginCopyFrom and BeginCopyTo. * @@ -2282,6 +2371,7 @@ static CopyState BeginCopy(bool is_from, Relation rel, Node* raw_query, const ch } if (is_copy) { + ProcessCopySummaryLogSetUps(cstate); ProcessCopyErrorLogSetUps(cstate); } @@ -2344,7 +2434,7 @@ static CopyState BeginCopy(bool is_from, Relation rel, Node* raw_query, const ch /* * Check fill_missing_fields conflict * */ - if (cstate->fill_missing_fields) { + if (cstate->fill_missing_fields == 1) { /* find last valid column */ int i = num_phys_attrs - 1; for (; i >= 0; i--) { @@ -2507,10 +2597,10 @@ CopyState BeginCopyTo( (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("cannot copy from stream \"%s\"", RelationGetRelationName(rel)), errhint("Try the COPY (SELECT ...) TO variant."))); - } else if (rel->rd_rel->relkind == RELKIND_SEQUENCE) + } else if (RELKIND_IS_SEQUENCE(rel->rd_rel->relkind)) ereport(ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), - errmsg("cannot copy from sequence \"%s\"", RelationGetRelationName(rel)))); + errmsg("cannot copy from (large) sequence \"%s\"", RelationGetRelationName(rel)))); else ereport(ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), @@ -2804,7 +2894,6 @@ static uint64 CopyTo(CopyState cstate, bool isFirst, bool isLast) if (IS_PGXC_COORDINATOR || IS_SINGLE_NODE) ProcessFileHeader(cstate); } - /* Get info about the columns we need to process. */ cstate->out_functions = (FmgrInfo*)palloc(num_phys_attrs * sizeof(FmgrInfo)); foreach (cur, cstate->attnumlist) { @@ -2925,15 +3014,16 @@ static uint64 CopyTo(CopyState cstate, bool isFirst, bool isLast) Tuple tuple; TableScanDesc scandesc; scandesc = scan_handler_tbl_beginscan(cstate->curPartionRel, GetActiveSnapshot(), 0, NULL); - while ((tuple = scan_handler_tbl_getnext(scandesc, ForwardScanDirection, cstate->curPartionRel)) != NULL) { CHECK_FOR_INTERRUPTS(); /* Deconstruct the tuple ... faster than repeated heap_getattr */ tableam_tops_deform_tuple2(tuple, tupDesc, values, nulls, GetTableScanDesc(scandesc, cstate->curPartionRel)->rs_cbuf); - - /* Format and send the data */ - CopyOneRowTo(cstate, HeapTupleGetOid((HeapTuple)tuple), values, nulls); + if (((HeapTuple)tuple)->tupTableType == HEAP_TUPLE) { + CopyOneRowTo(cstate, HeapTupleGetOid((HeapTuple)tuple), values, nulls); + } else { + CopyOneRowTo(cstate, InvalidOid, values, nulls); + } processed++; } @@ -3003,16 +3093,31 @@ static uint64 CopyToCompatiblePartions(CopyState cstate) partionRel = partitionGetRelation(cstate->rel, partition); - cstate->curPartionRel = partionRel; - - if (NULL == lnext(cell)) - isLast = true; - - processed += CopyTo(cstate, isFirst, isLast); - - isFirst = false; - - releaseDummyRelation(&partionRel); + if (RelationIsSubPartitioned(cstate->rel)) { + ListCell* lc = NULL; + List* subPartitionList = relationGetPartitionList(partionRel, AccessShareLock); + foreach (lc, subPartitionList) { + Partition subPartition = (Partition)lfirst(lc); + Relation subPartionRel = partitionGetRelation(partionRel, subPartition); + cstate->curPartionRel = subPartionRel; + if (NULL == lnext(cell) && NULL == lnext(lc)) { + isLast = true; + } + processed += CopyTo(cstate, isFirst, isLast); + isFirst = false; + releaseDummyRelation(&subPartionRel); + } + releasePartitionList(partionRel, &subPartitionList, AccessShareLock); + releaseDummyRelation(&partionRel); + } else { + cstate->curPartionRel = partionRel; + if (NULL == lnext(cell)) { + isLast = true; + } + processed += CopyTo(cstate, isFirst, isLast); + isFirst = false; + releaseDummyRelation(&partionRel); + } } if (partitionList != NIL) { @@ -3831,10 +3936,10 @@ static uint64 CopyFrom(CopyState cstate) (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("cannot copy to stream \"%s\"", RelationGetRelationName(cstate->rel)))); isForeignTbl = true; - } else if (cstate->rel->rd_rel->relkind == RELKIND_SEQUENCE) + } else if (RELKIND_IS_SEQUENCE(cstate->rel->rd_rel->relkind)) ereport(ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), - errmsg("cannot copy to sequence \"%s\"", RelationGetRelationName(cstate->rel)))); + errmsg("cannot copy to (large) sequence \"%s\"", RelationGetRelationName(cstate->rel)))); else ereport(ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), @@ -4514,12 +4619,18 @@ static uint64 CopyFrom(CopyState cstate) if (useHeapMultiInsert) { bool toFlush = false; CopyFromBulk bulk = NULL; + Oid targetOid = InvalidOid; /* step 1: query and get the caching buffer */ - bulk = findBulk(mgr, - (isPartitionRel ? heapTupleGetPartitionId(resultRelationDesc, tuple) - : RelationGetRelid(resultRelationDesc)), - bucketid, - &toFlush); + if (isPartitionRel) { + if (RelationIsSubPartitioned(resultRelationDesc)) { + targetOid = heapTupleGetSubPartitionId(resultRelationDesc, tuple); + } else { + targetOid = heapTupleGetPartitionId(resultRelationDesc, tuple); + } + } else { + targetOid = RelationGetRelid(resultRelationDesc); + } + bulk = findBulk(mgr, targetOid, bucketid, &toFlush); /* step 2: check bulk-insert */ Assert(hasPartition || (toFlush == false)); Assert(!toFlush || InvalidOid != mgr->switchKey.partOid); @@ -4563,13 +4674,20 @@ static uint64 CopyFrom(CopyState cstate) } if (isPartitionRel && needflush) { - partitionList = list_append_unique_oid(partitionList, - heapTupleGetPartitionId(resultRelationDesc, tuple)); + Oid targetPartOid = InvalidOid; + if (RelationIsSubPartitioned(resultRelationDesc)) { + targetPartOid = heapTupleGetSubPartitionId(resultRelationDesc, tuple); + } else { + targetPartOid = heapTupleGetPartitionId(resultRelationDesc, tuple); + } + partitionList = list_append_unique_oid(partitionList, targetPartOid); } } else { List* recheckIndexes = NIL; Relation targetRel; ItemPointer pTSelf = NULL; + Relation subPartRel = NULL; + Partition subPart = NULL; if (isPartitionRel) { /* get partititon oid to insert the record */ partitionid = heapTupleGetPartitionId(resultRelationDesc, tuple); @@ -4580,7 +4698,17 @@ static uint64 CopyFrom(CopyState cstate) heaprel, partition, RowExclusiveLock); + + if (RelationIsSubPartitioned(resultRelationDesc)) { + partitionid = heapTupleGetPartitionId(heaprel, tuple); + searchFakeReationForPartitionOid(estate->esfRelations, estate->es_query_cxt, heaprel, + partitionid, subPartRel, subPart, RowExclusiveLock); + heaprel = subPartRel; + partition = subPart; + } + targetRel = heaprel; + if (bucketid != InvalidBktId) { searchHBucketFakeRelation( estate->esfRelations, estate->es_query_cxt, heaprel, bucketid, targetRel); @@ -4787,7 +4915,10 @@ static uint64 CopyFrom(CopyState cstate) HeapSyncHashSearch(cstate->rel->rd_id, HASH_REMOVE); list_free_ext(partitionList); - + + cstate->loadrows = processed; + Log_copy_summary_spi(cstate); + return processed; } @@ -5355,6 +5486,70 @@ bool IsTypeAcceptEmptyStr(Oid typeOid) } } +static void CopyInitSpecColInfo(CopyState cstate, List* attnamelist, AttrNumber num_phys_attrs) +{ + ListCell* lc = NULL; + int attrno; + + if (cstate->sequence_col_list != NULL) { + cstate->sequence = (SqlLoadSequInfo **)palloc0(num_phys_attrs * sizeof(SqlLoadSequInfo*)); + List* sequelist = cstate->sequence_col_list; + SqlLoadSequInfo *sequeInfo = NULL; + + foreach (lc, sequelist) { + sequeInfo = (SqlLoadSequInfo *)lfirst(lc); + attrno = CopyGetColumnListIndex(cstate, attnamelist, sequeInfo->colname); + cstate->sequence[attrno - 1] = sequeInfo; + } + } + + if (cstate->filler_col_list != NULL) { + int palloc_size = num_phys_attrs + list_length(cstate->filler_col_list); + cstate->filler = (SqlLoadFillerInfo **)palloc0(palloc_size * sizeof(SqlLoadFillerInfo*)); + List* fillerlist = cstate->filler_col_list; + SqlLoadFillerInfo *fillerInfo = NULL; + + foreach (lc, fillerlist) { + fillerInfo = (SqlLoadFillerInfo *)lfirst(lc); + attrno = fillerInfo->index; + cstate->filler[attrno - 1] = fillerInfo; + } + } + + if (cstate->constant_col_list != NULL) { + cstate->constant = (SqlLoadConsInfo **)palloc0(num_phys_attrs * sizeof(SqlLoadConsInfo*)); + List* conslist = cstate->constant_col_list; + SqlLoadConsInfo *consInfo = NULL; + + foreach (lc, conslist) { + consInfo = (SqlLoadConsInfo *)lfirst(lc); + attrno = CopyGetColumnListIndex(cstate, attnamelist, consInfo->colname); + cstate->constant[attrno - 1] = consInfo; + } + } +} + +static void CopyInitCstateVar(CopyState cstate) +{ + /* Initialize state variables */ + cstate->fe_eof = false; + if (cstate->eol_type != EOL_UD) + cstate->eol_type = EOL_UNKNOWN; + cstate->cur_relname = RelationGetRelationName(cstate->rel); + cstate->cur_lineno = 0; + cstate->cur_attname = NULL; + cstate->cur_attval = NULL; + cstate->illegal_chars_error = NIL; + + /* Set up variables to avoid per-attribute overhead. */ + initStringInfo(&cstate->attribute_buf); + initStringInfo(&cstate->sequence_buf); + initStringInfo(&cstate->line_buf); + cstate->line_buf_converted = false; + cstate->raw_buf = (char*)palloc(RAW_BUF_SIZE + 1); + cstate->raw_buf_index = cstate->raw_buf_len = 0; +} + /* * Setup to read tuples from a file for COPY FROM. * @@ -5388,21 +5583,7 @@ CopyState BeginCopyFrom(Relation rel, const char* filename, List* attnamelist, oldcontext = MemoryContextSwitchTo(cstate->copycontext); /* Initialize state variables */ - cstate->fe_eof = false; - if (cstate->eol_type != EOL_UD) - cstate->eol_type = EOL_UNKNOWN; - cstate->cur_relname = RelationGetRelationName(cstate->rel); - cstate->cur_lineno = 0; - cstate->cur_attname = NULL; - cstate->cur_attval = NULL; - cstate->illegal_chars_error = NIL; - - /* Set up variables to avoid per-attribute overhead. */ - initStringInfo(&cstate->attribute_buf); - initStringInfo(&cstate->line_buf); - cstate->line_buf_converted = false; - cstate->raw_buf = (char*)palloc(RAW_BUF_SIZE + 1); - cstate->raw_buf_index = cstate->raw_buf_len = 0; + CopyInitCstateVar(cstate); tupDesc = RelationGetDescr(cstate->rel); attr = tupDesc->attrs; @@ -5429,6 +5610,7 @@ CopyState BeginCopyFrom(Relation rel, const char* filename, List* attnamelist, cstate->as_typemods = (AssignTypmod *)palloc0(num_phys_attrs * sizeof(AssignTypmod)); cstate->transexprs = (ExprState **)palloc0(num_phys_attrs * sizeof(ExprState*)); } + CopyInitSpecColInfo(cstate, attnamelist, num_phys_attrs); #ifdef ENABLE_MULTIPLE_NODES /* @@ -5590,6 +5772,10 @@ CopyState BeginCopyFrom(Relation rel, const char* filename, List* attnamelist, if (cstate->trans_expr_list != NULL) TransformColExpr(cstate); + if (cstate->when != NULL) { + CopyGetWhenListAttFieldno(cstate, attnamelist); + } + (void)MemoryContextSwitchTo(oldcontext); /* workload client manager */ @@ -5609,6 +5795,32 @@ CopyState BeginCopyFrom(Relation rel, const char* filename, List* attnamelist, return cstate; } +static bool CopyReadLineMatchWhenPosition(CopyState cstate) +{ + bool done = false; + while (1) { /* while for when position retry */ + + cstate->cur_lineno++; + + /* Actually read the line into memory here */ + done = CopyReadLine(cstate); + if (done) { + break; + } + + if (IfCopyLineMatchWhenListPosition(cstate) == true) { + break; + } else { + cstate->whenrows++; + if (cstate->log_errors || cstate->logErrorsData) { + FormAndSaveImportWhenLog(cstate, cstate->err_table, cstate->copy_beginTime, cstate->logger); + } + } + } + + return done; +} + /* * Read raw fields in the next line for COPY FROM in text or csv mode. * Return false if no more lines. @@ -5635,21 +5847,37 @@ bool NextCopyFromRawFields(CopyState cstate, char*** fields, int* nfields) return false; /* done */ } - cstate->cur_lineno++; + while (cstate->skiprows < cstate->skip) { + cstate->cur_lineno++; + if (CopyReadLine(cstate)) + return false; /* done */ + cstate->skiprows++; + } - /* Actually read the line into memory here */ - done = CopyReadLine(cstate); + while (1) { /* while for when field retry */ - /* - * EOF at start of line means we're done. If we see EOF after some - * characters, we act as though it was newline followed by EOF, ie, - * process the line and then exit loop on next iteration. - */ - if (done && cstate->line_buf.len == 0) - return false; + done = CopyReadLineMatchWhenPosition(cstate); - /* Parse the line into de-escaped field values */ - fldct = cstate->readAttrsFunc(cstate); + /* + * EOF at start of line means we're done. If we see EOF after some + * characters, we act as though it was newline followed by EOF, ie, + * process the line and then exit loop on next iteration. + */ + if (done && cstate->line_buf.len == 0) + return false; + + /* Parse the line into de-escaped field values */ + fldct = cstate->readAttrsFunc(cstate); + + if (IfCopyLineMatchWhenListField(cstate) == true) { + break; + } + + cstate->whenrows++; + if (cstate->log_errors || cstate->logErrorsData) { + FormAndSaveImportWhenLog(cstate, cstate->err_table, cstate->copy_beginTime, cstate->logger); + } + } *fields = cstate->raw_fields; *nfields = fldct; @@ -5770,6 +5998,7 @@ Datum InputFunctionCallForBulkload(CopyState cstate, FmgrInfo* flinfo, char* str if (str == NULL && flinfo->fn_strict) return (Datum)0; /* just return null result */ + SPI_STACK_LOG("push cond", NULL, NULL); pushed = SPI_push_conditional(); switch (typioparam) { @@ -5837,6 +6066,7 @@ Datum InputFunctionCallForBulkload(CopyState cstate, FmgrInfo* flinfo, char* str errmsg("input function %u returned NULL", fcinfo.flinfo->fn_oid))); } + SPI_STACK_LOG("pop cond", NULL, NULL); SPI_pop_conditional(pushed); return result; @@ -5919,10 +6149,25 @@ bool NextCopyFrom(CopyState cstate, ExprContext* econtext, Datum* values, bool* int fldct; // total num of field in file int fieldno; // current field count char* string = NULL; + bool all_null_flag = true; - /* read raw fields in the next line */ - if (!NextCopyFromRawFields(cstate, &field_strings, &fldct)) - return false; + while (all_null_flag) { + /* read raw fields in the next line */ + if (!NextCopyFromRawFields(cstate, &field_strings, &fldct)) + return false; + /* trailing nullcols */ + if (cstate->fill_missing_fields != -1) + break; + for (i = 0; i < fldct; i++) { + /* treat empty C string as NULL */ + if (field_strings[i] != NULL && field_strings[i][0] != '\0') { + all_null_flag = false; + break; + } + } + if (all_null_flag) + cstate->allnullrows++; + } /* check for overflowing fields. if cstate->ignore_extra_data is true, ignore overflowing fields */ if (nfields > 0 && fldct > nfields && !cstate->ignore_extra_data) @@ -5970,10 +6215,13 @@ bool NextCopyFrom(CopyState cstate, ExprContext* econtext, Datum* values, bool* continue; } - if (fieldno > fldct || (!cstate->fill_missing_fields && fieldno == fldct)) - ereport(ERROR, - (errcode(ERRCODE_BAD_COPY_FILE_FORMAT), - errmsg("missing data for column \"%s\"", NameStr(attr[m]->attname)))); + /* 0 off;1 Compatible with the original copy; -1 trailing nullcols */ + if (cstate->fill_missing_fields != -1){ + if (fieldno > fldct || (!cstate->fill_missing_fields && fieldno == fldct)) + ereport(ERROR, (errcode(ERRCODE_BAD_COPY_FILE_FORMAT), + errmsg("missing data for column \"%s\"", NameStr(attr[m]->attname)))); + } + if (fieldno < fldct) { string = field_strings[fieldno++]; @@ -6198,6 +6446,52 @@ static void append_defvals(Datum* values, CopyState cstate) if (cstate->num_defaults <= 0) { return; } + /* if sql has default column, do with the line_buf and */ + /* make the col name and value one to one. */ + ListCell* cur = NULL; + char *tmpLineBuf = pg_strdup(cstate->line_buf.data); + char *originHead = tmpLineBuf; + resetStringInfo(&(cstate->line_buf)); + char *token = NULL; + int attNums=0, tokenNum=0; + bool first = true; + + foreach (cur, cstate->attnumlist) { + attNums++; + } + + /* + * When copy from text or csv that one col is self-incremental col, + * and there are more columns in the text than the columns to be imported, + * you must set ignore_extra_data 'on'. In this case, we choose the number + * of columns we want from front to back in the text, discarding the last + * unwanted values. + */ + for (tokenNum=1, token = strsep(&tmpLineBuf, cstate->delim); + token != NULL && tokenNum <= attNums; + token = strsep(&tmpLineBuf, cstate->delim), ++tokenNum) { + if (first) { + appendBinaryStringInfo(&cstate->line_buf, token, strlen(token)); + first = false; + } else { + appendBinaryStringInfo(&cstate->line_buf, cstate->delim, strlen(cstate->delim)); + appendBinaryStringInfo(&cstate->line_buf, token, strlen(token)); + } + } + + /* + * If the text contains fewer columns of data than the columns to + * be imported and fill_missing_field is 'on', populate the data + * with delimiters. + */ + if (attNums - tokenNum >= 0) { + for (; tokenNum <= attNums; ++tokenNum) { + appendBinaryStringInfo(&cstate->line_buf, cstate->delim, strlen(cstate->delim)); + } + } + free(originHead); + originHead = NULL; + tmpLineBuf = NULL; CopyStateData new_cstate = *cstate; int i; @@ -6649,7 +6943,7 @@ static bool CopyReadLineTextTemplate(CopyState cstate) * would lead to format disorientation and cause import error when * importing from file. */ - if ((IS_PGXC_COORDINATOR || IS_SINGLE_NODE) && cstate->copy_dest != COPY_FILE) { + if (!cstate->is_useeof && (IS_PGXC_COORDINATOR || IS_SINGLE_NODE) && cstate->copy_dest != COPY_FILE) { if (c == '\\' && (!csv_mode || first_char_in_line)) { char c2; @@ -6874,6 +7168,10 @@ static int CopyReadAttributesTextT(CopyState cstate) char* line_begin_ptr = NULL; IllegalCharErrInfo* err_info = NULL; ListCell* cur = NULL; + StringInfo sequence_buf_ptr = &cstate->sequence_buf; + int numattrs = list_length(cstate->attnumlist); + int proc_col_num = 0; + int max_filler_index = numattrs + list_length(cstate->filler_col_list); /* * We need a special case for zero-column tables: check that the input @@ -6886,6 +7184,8 @@ static int CopyReadAttributesTextT(CopyState cstate) } resetStringInfo(&cstate->attribute_buf); + resetStringInfo(sequence_buf_ptr); + memset_s(cstate->raw_fields, sizeof(char*) * cstate->max_fields, 0, sizeof(char*) * cstate->max_fields); /* * The de-escaped attributes will certainly not be longer than the input @@ -6914,6 +7214,7 @@ static int CopyReadAttributesTextT(CopyState cstate) char* end_ptr = NULL; int input_len; bool saw_non_ascii = false; + proc_col_num++; /* Make sure there is enough space for the next value */ if (fieldno >= cstate->max_fields) { @@ -6921,6 +7222,22 @@ static int CopyReadAttributesTextT(CopyState cstate) cstate->raw_fields = (char**)repalloc(cstate->raw_fields, cstate->max_fields * sizeof(char*)); } + if (cstate->filler == NULL || proc_col_num > max_filler_index || cstate->filler[proc_col_num - 1] == NULL) + { + if (cstate->sequence != NULL && fieldno < numattrs && cstate->sequence[fieldno] != NULL) { + cstate->raw_fields[fieldno] = &sequence_buf_ptr->data[sequence_buf_ptr->len]; + appendStringInfo(sequence_buf_ptr, "%ld", cstate->sequence[fieldno]->start); + cstate->sequence[fieldno]->start += cstate->sequence[fieldno]->step; + cstate->sequence_buf.len++; + fieldno++; + continue; + } else if (cstate->constant != NULL && fieldno < numattrs && cstate->constant[fieldno] != NULL) { + cstate->raw_fields[fieldno] = cstate->constant[fieldno]->consVal; + fieldno++; + continue; + } + } + /* Remember start of field on both input and output sides */ start_ptr = cur_ptr; cstate->raw_fields[fieldno] = output_ptr; @@ -7121,13 +7438,29 @@ static int CopyReadAttributesTextT(CopyState cstate) } } - fieldno++; + if (cstate->filler == NULL || proc_col_num > max_filler_index || cstate->filler[proc_col_num - 1] == NULL) { + fieldno++; + } + /* Done if we hit EOL instead of a delim */ if (!found_delim) { break; } } + for (int i = fieldno; i < numattrs; i++) { + if (cstate->sequence != NULL && cstate->sequence[i] != NULL) { + cstate->raw_fields[i] = &sequence_buf_ptr->data[sequence_buf_ptr->len]; + appendStringInfo(sequence_buf_ptr, "%ld", cstate->sequence[i]->start); + cstate->sequence[i]->start += cstate->sequence[i]->step; + cstate->sequence_buf.len++; + fieldno = i + 1; + } else if (cstate->constant != NULL && cstate->constant[i] != NULL) { + cstate->raw_fields[i] = cstate->constant[i]->consVal; + fieldno = i + 1; + } + } + /* Clean up state of attribute_buf */ output_ptr--; Assert(*output_ptr == '\0'); @@ -7159,6 +7492,10 @@ static int CopyReadAttributesCSVT(CopyState cstate) char* line_begin_ptr = NULL; IllegalCharErrInfo* err_info = NULL; ListCell* cur = NULL; + StringInfo sequence_buf_ptr = &cstate->sequence_buf; + int numattrs = list_length(cstate->attnumlist); + int proc_col_num = 0; + int max_filler_index = numattrs + list_length(cstate->filler_col_list); /* * We need a special case for zero-column tables: check that the input @@ -7171,6 +7508,8 @@ static int CopyReadAttributesCSVT(CopyState cstate) } resetStringInfo(&cstate->attribute_buf); + resetStringInfo(sequence_buf_ptr); + memset_s(cstate->raw_fields, sizeof(char*) * cstate->max_fields, 0, sizeof(char*) * cstate->max_fields); /* * The de-escaped attributes will certainly not be longer than the input @@ -7199,6 +7538,7 @@ static int CopyReadAttributesCSVT(CopyState cstate) char* start_ptr = NULL; char* end_ptr = NULL; int input_len; + proc_col_num++; /* Make sure there is enough space for the next value */ if (fieldno >= cstate->max_fields) { @@ -7211,6 +7551,22 @@ static int CopyReadAttributesCSVT(CopyState cstate) cstate->raw_fields = (char**)repalloc(cstate->raw_fields, cstate->max_fields * sizeof(char*)); } + if (cstate->filler == NULL || proc_col_num > max_filler_index || cstate->filler[proc_col_num - 1] == NULL) + { + if (cstate->sequence != NULL && fieldno < numattrs && cstate->sequence[fieldno] != NULL) { + cstate->raw_fields[fieldno] = &sequence_buf_ptr->data[sequence_buf_ptr->len]; + appendStringInfo(sequence_buf_ptr, "%ld", cstate->sequence[fieldno]->start); + cstate->sequence[fieldno]->start += cstate->sequence[fieldno]->step; + cstate->sequence_buf.len++; + fieldno++; + continue; + } else if (cstate->constant != NULL && fieldno < numattrs && cstate->constant[fieldno] != NULL) { + cstate->raw_fields[fieldno] = cstate->constant[fieldno]->consVal; + fieldno++; + continue; + } + } + /* Remember start of field on both input and output sides */ start_ptr = cur_ptr; cstate->raw_fields[fieldno] = output_ptr; @@ -7240,6 +7596,11 @@ static int CopyReadAttributesCSVT(CopyState cstate) found_delim = true; goto endfield; } + /* ""ab"",""b"" error for gs_load */ + if (cstate->is_load_copy && saw_quote) { + ereport(ERROR, + (errcode(ERRCODE_BAD_COPY_FILE_FORMAT), errmsg("no terminator found after quoted field"))); + } /* start of quoted field (or part of field) */ if (c == quotec) { saw_quote = true; @@ -7323,13 +7684,29 @@ static int CopyReadAttributesCSVT(CopyState cstate) } } - fieldno++; + if (cstate->filler == NULL || proc_col_num > max_filler_index || cstate->filler[proc_col_num - 1] == NULL) { + fieldno++; + } + /* Done if we hit EOL instead of a delim */ if (!found_delim) { break; } } + for (int i = fieldno; i < numattrs; i++) { + if (cstate->sequence != NULL && cstate->sequence[i] != NULL) { + cstate->raw_fields[i] = &sequence_buf_ptr->data[sequence_buf_ptr->len]; + appendStringInfo(sequence_buf_ptr, "%ld", cstate->sequence[i]->start); + cstate->sequence[i]->start += cstate->sequence[i]->step; + cstate->sequence_buf.len++; + fieldno = i + 1; + } else if (cstate->constant != NULL && cstate->constant[i] != NULL) { + cstate->raw_fields[i] = cstate->constant[i]->consVal; + fieldno = i + 1; + } + } + /* Clean up state of attribute_buf */ output_ptr--; Assert(*output_ptr == '\0'); @@ -9373,6 +9750,16 @@ void FormAndSaveImportError(CopyState cstate, Relation errRel, Datum begintime, elogger->SaveError(&edata); } +static void FormAndSaveImportWhenLog(CopyState cstate, Relation errRel, Datum begintime, CopyErrorLogger* elogger) +{ + CopyError edata; + AutoContextSwitch autosiwitch(elogger->m_memCxt); + + MemoryContextReset(elogger->m_memCxt); + elogger->FormWhenLog(cstate, begintime, &edata); + elogger->SaveError(&edata); +} + void FlushErrorInfo(Relation rel, EState* estate, ErrorCacheEntry* cache) { ImportError err; @@ -9493,6 +9880,10 @@ void Log_copy_error_spi(CopyState cstate) { CopyError err; Oid argtypes[] = {VARCHAROID, TIMESTAMPTZOID, VARCHAROID, INT8OID, TEXTOID, TEXTOID}; + /* for copy from load. */ + if (cstate->is_from && cstate->is_load_copy) { + return LogCopyErrorLogBulk(cstate); + } Assert (RelationGetNumberOfAttributes(cstate->err_table) == CopyError::MaxNumOfValue); err.m_desc = RelationGetDescr(cstate->err_table); @@ -9501,6 +9892,7 @@ void Log_copy_error_spi(CopyState cstate) cstate->logger->Reset(); int ret; + SPI_STACK_LOG("connect", NULL, NULL); if ((ret = SPI_connect()) < 0) { /* internal error */ ereport(ERROR, @@ -9526,5 +9918,451 @@ void Log_copy_error_spi(CopyState cstate) } } + SPI_STACK_LOG("finish", NULL, NULL); SPI_finish(); } + +/* + * Log_copy_summary_spi is used to insert the summary record into copy_summary table with SPI + * APIs. Xids, execution, and rollback are dealt and guaranteed by SPI state machine. + */ +static void Log_copy_summary_spi(CopyState cstate) +{ + const int MAXNAMELEN = (NAMEDATALEN * 4 + 2); + const int MAXDETAIL = 512; + Datum values[COPY_SUMMARY_TABLE_NUM_COL]; + char relname[MAXNAMELEN] = {'\0'}; + char detail[MAXDETAIL] = {'\0'}; + errno_t rc; + int ret; + if (cstate->summary_table == NULL) { + return; + } + + if ((ret = SPI_connect()) < 0) { + /* internal error */ + ereport(ERROR, (errcode(ERRCODE_SPI_CONNECTION_FAILURE), errmsg("SPI connect failure - returned %d", ret))); + } + + rc = snprintf_s(relname, MAXNAMELEN, MAXNAMELEN - 1, "%s.%s", get_namespace_name(RelationGetNamespace(cstate->rel)), + RelationGetRelationName(cstate->rel)); + securec_check_ss(rc, "\0", "\0"); + + values[0] = PointerGetDatum(cstring_to_text_with_len(relname, strlen(relname))); + + /* save the begintime/endtime/rows */ + values[1] = cstate->copy_beginTime; + values[2] = TimestampTzGetDatum(GetCurrentTimestamp()); + values[3] = Int64GetDatum(GetTopTransactionId()); + values[4] = Int64GetDatum(t_thrd.proc_cxt.MyProcPid); + /* processed rows */ + values[5] = Int64GetDatum(cstate->cur_lineno-1); + values[6] = Int64GetDatum(cstate->skiprows); + values[7] = Int64GetDatum(cstate->loadrows); + values[8] = Int64GetDatum(cstate->errorrows); + values[9] = Int64GetDatum(cstate->whenrows); + values[10] = Int64GetDatum(cstate->allnullrows); + /* save the detail here */ + snprintf_s(detail, MAXDETAIL, MAXDETAIL - 1, + "%lld Rows successfully loaded.\n" + "%lld Rows not loaded due to data errors.\n" + "%lld Rows not loaded because all WHEN clauses were failed.\n" + "%lld Rows not loaded because all fields were null.\n", + cstate->loadrows, cstate->errorrows, cstate->whenrows, cstate->allnullrows); + + values[11] = PointerGetDatum(cstring_to_text_with_len(detail, strlen(detail))); + + char *querystr = "insert into public.gs_copy_summary values($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12);"; + ret = SPI_execute_with_args(querystr, COPY_SUMMARY_TABLE_NUM_COL, copy_summary_table_col_typid, values, NULL, false, + 0, NULL); + if (ret != SPI_OK_INSERT) { + ereport(ERROR, + (errcode(ERRCODE_SPI_EXECUTE_FAILURE), errmsg("Error encountered while logging summary into %s.%s.", + COPY_SUMMARY_TABLE_SCHEMA, COPY_SUMMARY_TABLE))); + } + + SPI_finish(); + + relation_close(cstate->summary_table, RowExclusiveLock); + cstate->summary_table = NULL; +} + +void CheckCopyWhenExprOptions(LoadWhenExpr *when) +{ + if (when == NULL) { + return; + } + if (when->whentype == 0){ + if (when->start <= 0) { + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), errmsg("WHEN start position %d should be > 0", when->start))); + } + if (when->end <= 0) { + ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("WHEN end position %d should be > 0", when->end))); + } + if (when->end < when->start) { + ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("WHEN start position %d should be <= end position %d", when->start, when->end))); + } + } else { + if (when->attname == NULL) { + ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("WHEN field name is null"))); + } + if (when->oper == NULL) { + ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("WHEN field oper name is null"))); + } + } + return; +} + +static void CheckCopyWhenList(List *when_list) +{ + ListCell* lc = NULL; + + foreach (lc, when_list) { + LoadWhenExpr *when = (LoadWhenExpr *)lfirst(lc); + CheckCopyWhenExprOptions(when); + } +} + +static int whenpostion_strcmp(const char *arg1, int len1, const char *arg2, int len2) +{ + int result; + result = memcmp(arg1, arg2, Min(len1, len2)); + if ((result == 0) && (len1 != len2)) { + result = (len1 < len2) ? -1 : 1; + } + return result; +} + +static bool IfCopyLineMatchWhenPositionExpr(CopyState cstate, LoadWhenExpr *when) +{ + StringInfo buf = &cstate->line_buf; + + if (when == NULL || when->whentype == 1) { + return true; + } + if (buf->len < when->start || buf->len < when->end) { + return false; + } + if (when->val == NULL) + return false; + + char *rawfield = buf->data + when->start - 1; + int rawfieldlen = when->end + 1 - when->start; + + if (strlen(when->oper) == 1) { + if (strncmp(when->oper, "=", 1) == 0) + return (whenpostion_strcmp(rawfield, rawfieldlen, when->val, strlen(when->val)) == 0); + else { + ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("WHEN oper error"))); + return false; + } + } else if (strlen(when->oper) == 2) { + if (strncmp(when->oper, "<>", 2) == 0) + return (whenpostion_strcmp(rawfield, rawfieldlen, when->val, strlen(when->val)) != 0); + else { + ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("WHEN oper error"))); + return false; + } + } else { + ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("WHEN oper error"))); + return false; + } + return false; +} + +static void CopyGetWhenExprAttFieldno(CopyState cstate, LoadWhenExpr *when, List *attnamelist) +{ + TupleDesc tupDesc; + if (when == NULL || when->whentype != 1) { + return; + } + if (when->attname == NULL) { + ereport(ERROR, (errcode(ERRCODE_INVALID_COLUMN_REFERENCE), errmsg("WHEN no field name"))); + return; + } + + if (attnamelist == NULL) { + if (cstate->rel == NULL) { + ereport(ERROR, (errcode(ERRCODE_INVALID_COLUMN_REFERENCE), errmsg("WHEN no relation"))); + return; + } + tupDesc = RelationGetDescr(cstate->rel); + for (int i = 0; i < tupDesc->natts; i++) { + if (tupDesc->attrs[i]->attisdropped) + continue; + if (namestrcmp(&(tupDesc->attrs[i]->attname), when->attname) == 0) { + when->attnum = tupDesc->attrs[i]->attnum; /* based 1 */ + return; + } + } + ereport(ERROR, (errcode(ERRCODE_INVALID_COLUMN_REFERENCE), errmsg("WHEN field name not find"))); + } else { + ListCell *l = NULL; + int attnum = 0; + foreach (l, attnamelist) { + attnum++; + char *name = strVal(lfirst(l)); + if (strcmp(name, when->attname) == 0) { + when->attnum = attnum; /* based 1 */ + return; + } + } + ereport(ERROR, (errcode(ERRCODE_INVALID_COLUMN_REFERENCE), errmsg("WHEN field name not find"))); + } + return; +} + +static bool IfCopyLineMatchWhenFieldExpr(CopyState cstate, LoadWhenExpr *when) +{ + if (when == NULL || when->whentype != 1) { + return true; + } + if (when->attnum == 0) { // assert + ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("WHEN field name not find"))); + } + int attnum = when->attnum - 1; // fields 0 based + if (attnum >= cstate->max_fields) { + ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("WHEN field > max fields"))); + } + if (when->val == NULL) + return false; + if (cstate->raw_fields[attnum] == NULL) { + return false; + } + + if (strlen(when->oper) == 1) { + if (strncmp(when->oper, "=", 1) == 0) + return (strcmp(cstate->raw_fields[attnum], when->val) == 0); + else { + ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("WHEN field oper error"))); + return false; + } + } else if (strlen(when->oper) == 2){ + if (strncmp(when->oper, "<>", 2) == 0) + return (strcmp(cstate->raw_fields[attnum], when->val) != 0); + else { + ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("WHEN field oper error"))); + return false; + } + } else { + ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("WHEN field oper error"))); + return false; + } + return false; +} + +static bool IfCopyLineMatchWhenListPosition(CopyState cstate) +{ + ListCell* lc = NULL; + List *when_list = cstate->when; + + foreach (lc, when_list) { + LoadWhenExpr *when = (LoadWhenExpr *)lfirst(lc); + if (IfCopyLineMatchWhenPositionExpr(cstate, when) == false) { + return false; + } + } + return true; +} + +static void CopyGetWhenListAttFieldno(CopyState cstate, List *attnamelist) +{ + ListCell* lc = NULL; + List *when_list = cstate->when; + + foreach (lc, when_list) { + LoadWhenExpr *when = (LoadWhenExpr *)lfirst(lc); + CopyGetWhenExprAttFieldno(cstate, when, attnamelist); + } + return; +} + +static bool IfCopyLineMatchWhenListField(CopyState cstate) +{ + ListCell* lc = NULL; + List *when_list = cstate->when; + + foreach (lc, when_list) { + LoadWhenExpr *when = (LoadWhenExpr *)lfirst(lc); + if (IfCopyLineMatchWhenFieldExpr(cstate, when) == false) { + return false; + } + } + return true; +} + +static int CopyGetColumnListIndex(CopyState cstate, List *attnamelist, const char* colname) +{ + TupleDesc tupDesc = NULL; + ListCell *col = NULL; + int index = 0; + if (colname == NULL) { + ereport(ERROR, (errcode(ERRCODE_INVALID_COLUMN_REFERENCE), errmsg("Column name is NULL"))); + return InvalidAttrNumber; + } + + if (attnamelist == NULL) { + if (cstate->rel == NULL) { + ereport(ERROR, (errcode(ERRCODE_INVALID_COLUMN_REFERENCE), errmsg("Column list no relation"))); + return InvalidAttrNumber; + } + tupDesc = RelationGetDescr(cstate->rel); + for (int i = 0; i < tupDesc->natts; i++) { + if (tupDesc->attrs[i]->attisdropped) + continue; + if (namestrcmp(&(tupDesc->attrs[i]->attname), colname) == 0) { + return tupDesc->attrs[i]->attnum; /* based 1 */ + } + } + ereport(ERROR, (errcode(ERRCODE_INVALID_COLUMN_REFERENCE), errmsg("Column name %s not find", colname))); + } else { + foreach (col, attnamelist) { + index++; + char *name = strVal(lfirst(col)); + if (strcmp(name, colname) == 0) { + return index; + } + } + ereport(ERROR, (errcode(ERRCODE_INVALID_COLUMN_REFERENCE), errmsg("Column name %s not find", colname))); + } + + /* on failure */ + return InvalidAttrNumber; +} + +static void BatchInsertCopyLog(LogInsertState copyLogInfo, int nBufferedTuples, HeapTuple *bufferedTuples) +{ + MemoryContext oldcontext; + HeapMultiInsertExtraArgs args = {NULL, 0, false}; + TupleTableSlot *myslot = copyLogInfo->myslot; + + /* + * heap_multi_insert leaks memory, so switch memory context + */ + oldcontext = MemoryContextSwitchTo(GetPerTupleMemoryContext(copyLogInfo->estate)); + (void)tableam_tuple_multi_insert(copyLogInfo->rel, copyLogInfo->resultRelInfo->ri_RelationDesc, + (Tuple *)bufferedTuples, nBufferedTuples, copyLogInfo->mycid, + copyLogInfo->insertOpt, copyLogInfo->bistate, &args); + MemoryContextSwitchTo(oldcontext); + + if (copyLogInfo->resultRelInfo->ri_NumIndices > 0) { + int i; + for (i = 0; i < nBufferedTuples; i++) { + List *recheckIndexes = NULL; + + (void)ExecStoreTuple(bufferedTuples[i], myslot, InvalidBuffer, false); + + recheckIndexes = ExecInsertIndexTuples(myslot, &(bufferedTuples[i]->t_self), copyLogInfo->estate, + NULL, NULL, InvalidBktId, NULL, NULL); + + list_free(recheckIndexes); + } + } + + return; +} + +static LogInsertState InitInsertCopyLogInfo(CopyState cstate) +{ + LogInsertState copyLogInfo = NULL; + ResultRelInfo *resultRelInfo = NULL; + EState *estate = NULL; + + copyLogInfo = (LogInsertState)palloc(sizeof(InsertCopyLogInfoData)); + copyLogInfo->rel = cstate->err_table; + copyLogInfo->insertOpt= TABLE_INSERT_FROZEN; + copyLogInfo->mycid = GetCurrentCommandId(true); + + resultRelInfo = makeNode(ResultRelInfo); + resultRelInfo->ri_RangeTableIndex = 1; + resultRelInfo->ri_RelationDesc = copyLogInfo->rel; + ExecOpenIndices(resultRelInfo, false); + copyLogInfo->resultRelInfo = resultRelInfo; + + estate= CreateExecutorState(); + estate->es_result_relations = resultRelInfo; + estate->es_num_result_relations = 1; + estate->es_result_relation_info = resultRelInfo; + copyLogInfo->estate = estate; + + copyLogInfo->myslot = ExecInitExtraTupleSlot(estate); + ExecSetSlotDescriptor(copyLogInfo->myslot, RelationGetDescr(copyLogInfo->rel)); + + copyLogInfo->bistate = GetBulkInsertState(); + + return copyLogInfo; +} + +static void FreeInsertCopyLogInfo(LogInsertState copyLogInfo) +{ + if (copyLogInfo == NULL) { + return; + } + + FreeBulkInsertState(copyLogInfo->bistate); + ExecResetTupleTable(copyLogInfo->estate->es_tupleTable, false); + ExecCloseIndices(copyLogInfo->resultRelInfo); + FreeExecutorState(copyLogInfo->estate); + pfree(copyLogInfo->resultRelInfo); + pfree(copyLogInfo); +} + +static void LogCopyErrorLogBulk(CopyState cstate) +{ + const int MAX_TUPLES = 10000; + const int MAX_TUPLES_BYTES = 1024 * 1024; + HeapTuple tuple; + MemoryContext oldcontext = CurrentMemoryContext; + int nBufferedTuples = 0; + HeapTuple *bufferedTuples = NULL; + Size bufferedTuplesSize = 0; + LogInsertState copyLogInfo = NULL; + CopyError err; + + if (cstate->err_table == NULL) + return; + Assert(RelationGetNumberOfAttributes(cstate->err_table) == CopyError::MaxNumOfValue); + err.m_desc = RelationGetDescr(cstate->err_table); + + /* Reset the offset of the logger. Read from 0. */ + cstate->logger->Reset(); + + copyLogInfo = InitInsertCopyLogInfo(cstate); + bufferedTuples = (HeapTuple *)palloc0(MAX_TUPLES * sizeof(HeapTuple)); + + for (;;) { + CHECK_FOR_INTERRUPTS(); + if (nBufferedTuples == 0) { + ResetPerTupleExprContext(copyLogInfo->estate); + } + + MemoryContextSwitchTo(GetPerTupleMemoryContext(copyLogInfo->estate)); + + if (cstate->logger->FetchError(&err) == EOF) { + break; + } + + tuple = (HeapTuple)heap_form_tuple(err.m_desc, err.m_values, err.m_isNull); + ExecStoreTuple(tuple, copyLogInfo->myslot, InvalidBuffer, false); + + bufferedTuples[nBufferedTuples++] = tuple; + bufferedTuplesSize += tuple->t_len; + + if (nBufferedTuples == MAX_TUPLES || bufferedTuplesSize > MAX_TUPLES_BYTES) { + BatchInsertCopyLog(copyLogInfo, nBufferedTuples, bufferedTuples); + nBufferedTuples = 0; + bufferedTuplesSize = 0; + } + } + + if (nBufferedTuples > 0) { + BatchInsertCopyLog(copyLogInfo, nBufferedTuples, bufferedTuples); + } + + MemoryContextSwitchTo(oldcontext); + pfree(bufferedTuples); + FreeInsertCopyLogInfo(copyLogInfo); + return; +} diff --git a/src/gausskernel/optimizer/commands/createas.cpp b/src/gausskernel/optimizer/commands/createas.cpp index 3abbd1386..85cb8305c 100644 --- a/src/gausskernel/optimizer/commands/createas.cpp +++ b/src/gausskernel/optimizer/commands/createas.cpp @@ -13,6 +13,7 @@ * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -370,6 +371,7 @@ static void intorel_startup(DestReceiver* self, int operation, TupleDesc typeinf coltype->typemod = attribute->atttypmod; coltype->arrayBounds = NIL; coltype->location = -1; + coltype->pct_rowtype = false; /* * It's possible that the column is of a collatable type but the diff --git a/src/gausskernel/optimizer/commands/dbcommands.cpp b/src/gausskernel/optimizer/commands/dbcommands.cpp index ffbae3b2d..99df84575 100644 --- a/src/gausskernel/optimizer/commands/dbcommands.cpp +++ b/src/gausskernel/optimizer/commands/dbcommands.cpp @@ -11,6 +11,7 @@ * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -1089,7 +1090,7 @@ void dropdb(const char* dbname, bool missing_ok) prepareDatabaseCFunLibrary(db_id); /* Relate to remove all job belong the database. */ - remove_job_by_oid(dbname, DbOid, true); + remove_job_by_oid(db_id, DbOid, true); /* Search need delete use-defined dictionary. */ deleteDatabaseTSFile(db_id); diff --git a/src/gausskernel/optimizer/commands/define.cpp b/src/gausskernel/optimizer/commands/define.cpp index 0bf523269..5be9da0b0 100644 --- a/src/gausskernel/optimizer/commands/define.cpp +++ b/src/gausskernel/optimizer/commands/define.cpp @@ -7,6 +7,7 @@ * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -160,6 +161,57 @@ bool defGetBoolean(DefElem* def) return false; /* keep compiler quiet */ } +/* +* Extract a boolean/int mixed value from a DefElem.(copy from fill_missing_fields) +*/ +int defGetMixdInt(DefElem *def) +{ + /* + * If no parameter given, assume "true" is meant. + */ + if (def->arg == NULL) + return 1; + + /* + * Allow 0, 1, "true", "false", "on", "off", "one", "multi" + */ + switch (nodeTag(def->arg)) { + case T_Integer: + switch (intVal(def->arg)) { + case 0: + return 0; + case 1: + return 1; + default: + /* otherwise, error out below */ + break; + } + break; + default: { + char *sval = defGetString(def); + + /* + * The set of strings accepted here should match up with the + * grammar's opt_boolean production. + */ + if (pg_strcasecmp(sval, "true") == 0) + return 1; + if (pg_strcasecmp(sval, "false") == 0) + return 0; + if (pg_strcasecmp(sval, "on") == 0) + return 1; + if (pg_strcasecmp(sval, "off") == 0) + return 0; + if (pg_strcasecmp(sval, "one") == 0) + return 1; + if (pg_strcasecmp(sval, "multi") == 0) + return -1; + } break; + } + ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("%s requires a Boolean value", def->defname))); + return 0; /* keep compiler quiet */ +} + /* * Extract an int64 value from a DefElem. */ diff --git a/src/gausskernel/optimizer/commands/directory.cpp b/src/gausskernel/optimizer/commands/directory.cpp index e21012a56..0b2d60299 100644 --- a/src/gausskernel/optimizer/commands/directory.cpp +++ b/src/gausskernel/optimizer/commands/directory.cpp @@ -1,5 +1,6 @@ /* * Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors * * openGauss is licensed under Mulan PSL v2. * You can use this software according to the terms and conditions of the Mulan PSL v2. @@ -29,6 +30,7 @@ #include "access/sysattr.h" #include "catalog/dependency.h" #include "catalog/indexing.h" +#include "catalog/pg_authid.h" #include "catalog/pg_directory.h" #include "commands/directory.h" #include "miscadmin.h" @@ -56,8 +58,16 @@ static void directory_path_check(CreateDirectoryStmt* stmt, char* dirpath) /* Three phases to check path legality */ /* Step 1: check if the directory path name has any special forbidden characters or sensitive words,it should be * absolute path */ + if (!is_absolute_path(dirpath)) { + ereport(ERROR, (errmodule(MOD_OPT), errcode(ERRCODE_INVALID_NAME), + errmsg("directory path cannot be relative"), + errdetail("N/A"), errcause("relative directory path is not supported"), + erraction("substitute relative path by absolute path"))); + } + const char* danger_character_list[] = {"|", ";", "&", "$", "<", ">", "`","\\","\'","'", - "\"","{","}","(",")","[","]","~","*","?","!","\n",".","pg_audit", NULL}; + "\"","{","}","(",")","[","]","~","*","?","!","\n", "pg_audit", NULL}; + int i = 0; for (i = 0; danger_character_list[i] != NULL; i++) { @@ -98,6 +108,32 @@ static void directory_path_check(CreateDirectoryStmt* stmt, char* dirpath) } } +/* + * Check permission for create directory. + */ +static void CheckCreateDirectoryPermission() +{ + /* + * When enable_access_server_directory is off, only initial user can create directory. + * When enable_access_server_directory is on, sysadmin and the member of gs_role_directory_create role + * can create directory. + */ + if (g_instance.attr.attr_storage.enable_access_server_directory) { + if (!superuser() && !is_member_of_role(GetUserId(), DEFAULT_ROLE_DIRECTORY_CREATE)) { + ereport(ERROR, (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), + errmsg("permission denied to create directory"), + errhint("must be sysadmin or a member of the gs_role_directory_create role " + "to create a directory"))); + } + } else { + if (!initialuser()) { + ereport(ERROR, (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), + errmsg("permission denied to create directory"), + errhint("must be initial user to create a directory"))); + } + } +} + /* * @@GaussDB@@ * Brief : Create a directory. @@ -120,17 +156,9 @@ void CreatePgDirectory(CreateDirectoryStmt* stmt) HeapTuple tup = NULL; TupleDesc tupDesc = NULL; errno_t rc; - /* - * when enable_access_server_directory is off, only initial user can create directory - * otherwise, only superuser can create directory - */ - if ((!g_instance.attr.attr_storage.enable_access_server_directory && !initialuser()) || - (g_instance.attr.attr_storage.enable_access_server_directory && !superuser())) - ereport(ERROR, - (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), - errmsg("permission denied to create directory \"%s\"", stmt->directoryname), - errhint("must be %s to create a directory.", - g_instance.attr.attr_storage.enable_access_server_directory ? "superuser" : "initial user"))); + + /* Permission check. */ + CheckCreateDirectoryPermission(); /* get the current user id */ ownerId = GetUserId(); @@ -172,6 +200,7 @@ void CreatePgDirectory(CreateDirectoryStmt* stmt) } tup = (HeapTuple) tableam_tops_modify_tuple(oldtup, tupDesc, values, nulls, replaces); simple_heap_update(rel, &tup->t_self, tup); + CatalogUpdateIndexes(rel, tup); ReleaseSysCache(oldtup); tableam_tops_free_tuple(tup); @@ -198,6 +227,31 @@ void CreatePgDirectory(CreateDirectoryStmt* stmt) } } +/* + * Check permission for drop directory. + */ +static void CheckDropDirectoryPermission(Oid directoryId, const char* directoryName) +{ + /* + * When enable_access_server_directory is off, only initial user can drop directory, + * When enable_access_server_directory is on, directory owner or users have drop privileges of the directory or + * the member of the gs_role_directory_drop role can drop directory. + */ + if (g_instance.attr.attr_storage.enable_access_server_directory) { + AclResult aclresult = pg_directory_aclcheck(directoryId, GetUserId(), ACL_DROP); + if (aclresult != ACLCHECK_OK && !superuser() && !pg_directory_ownercheck(directoryId, GetUserId()) + && !is_member_of_role(GetUserId(), DEFAULT_ROLE_DIRECTORY_DROP)) { + aclcheck_error(ACLCHECK_NO_PRIV, ACL_KIND_DIRECTORY, directoryName); + } + } else { + if (!initialuser()) { + ereport(ERROR, (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), + errmsg("permission denied to drop directory \"%s\"", directoryName), + errhint("must be initial user to drop a directory"))); + } + } +} + /* * @@GaussDB@@ * Brief : Drop a directory. @@ -211,17 +265,6 @@ void DropPgDirectory(DropDirectoryStmt* stmt) HeapTuple tuple = NULL; ScanKeyData entry[1]; Oid directoryId = InvalidOid; - /* - * when enable_access_server_directory is off, only initial user can drop directory - * otherwise, only superuser can drop directory - */ - if ((!g_instance.attr.attr_storage.enable_access_server_directory && !initialuser()) || - (g_instance.attr.attr_storage.enable_access_server_directory && !superuser())) - ereport(ERROR, - (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), - errmsg("permission denied to drop directory \"%s\"", stmt->directoryname), - errhint("must be %s to drop a directory.", - g_instance.attr.attr_storage.enable_access_server_directory ? "superuser" : "initial user"))); /* find the target tuple */ rel = heap_open(PgDirectoryRelationId, RowExclusiveLock); @@ -239,6 +282,9 @@ void DropPgDirectory(DropDirectoryStmt* stmt) directoryId = InvalidOid; if (OidIsValid(directoryId)) { + /* Permission check. */ + CheckDropDirectoryPermission(directoryId, stmt->directoryname); + /* Remove the pg_directory tuple (this will roll back if we fail below) */ simple_heap_delete(rel, &tuple->t_self); /* Remove dependency on owner. */ @@ -384,34 +430,22 @@ void AlterDirectoryOwner(const char* dirname, Oid newOwnerId) HeapTuple newtuple; errno_t rc; - /* Otherwise, must be owner of the existing object */ - if (!pg_directory_ownercheck(HeapTupleGetOid(tuple), GetUserId())) - aclcheck_error(ACLCHECK_NOT_OWNER, ACL_KIND_DIRECTORY, dirname); - - /* - * when enable_access_server_directory is off, only initial user can change onwer - * otherwise, only superuser can change owner - */ - if ((!g_instance.attr.attr_storage.enable_access_server_directory && !initialuser()) || - (g_instance.attr.attr_storage.enable_access_server_directory && !superuser())) - ereport(ERROR, - (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), + if (g_instance.attr.attr_storage.enable_access_server_directory) { + /* must be sysadmin or owner of the existing object */ + if (!superuser() && !pg_directory_ownercheck(HeapTupleGetOid(tuple), GetUserId())) { + aclcheck_error(ACLCHECK_NOT_OWNER, ACL_KIND_DIRECTORY, dirname); + } + } else { + if (!initialuser()) { + ereport(ERROR, (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), errmsg("permission denied to change owner of directory"), - errhint("must be %s to change owner of a directory.", - g_instance.attr.attr_storage.enable_access_server_directory ? "superuser" : "initial user"))); + errhint("must be initial user to change owner of a directory"))); + } + } /* Must be able to become new owner */ check_is_member_of_role(GetUserId(), newOwnerId); - /* - * must be superuser or DBA - */ - if (!superuser_arg(newOwnerId) && !systemDBA_arg(newOwnerId)) - ereport(ERROR, - (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), - errmsg("permission denied to change owner of directory"), - errhint("new owner must be superuser to alter a directory."))); - rc = memset_s(repl_null, sizeof(repl_null), false, sizeof(repl_null)); securec_check(rc, "\0", "\0"); rc = memset_s(repl_repl, sizeof(repl_repl), false, sizeof(repl_repl)); diff --git a/src/gausskernel/optimizer/commands/dropcmds.cpp b/src/gausskernel/optimizer/commands/dropcmds.cpp index 37ca6aff4..aa094be72 100644 --- a/src/gausskernel/optimizer/commands/dropcmds.cpp +++ b/src/gausskernel/optimizer/commands/dropcmds.cpp @@ -157,6 +157,12 @@ void RemoveObjects(DropStmt* stmt, bool missing_ok, bool is_securityadmin) HeapTuple tup; bool isnull = false; tup = SearchSysCache1(PROCOID, ObjectIdGetDatum(funcOid)); + if (tup == NULL) { + ereport(ERROR, + (errcode(ERRCODE_WRONG_OBJECT_TYPE), + errmsg("function not found by oid:%u", address.objectId), + errhint("system error"))); + } Datum packageOidDatum = SysCacheGetAttr(PROCOID, tup, Anum_pg_proc_packageid, &isnull); if (!isnull) { Oid pkgFuncOid = DatumGetObjectId(packageOidDatum); @@ -177,7 +183,7 @@ void RemoveObjects(DropStmt* stmt, bool missing_ok, bool is_securityadmin) errmsg("\"%s\" is an aggregate function", NameListToString(objname)), errhint("Use DROP AGGREGATE to drop aggregate functions."))); - CacheInvalidateFunction(funcOid); + CacheInvalidateFunction(funcOid, InvalidOid); /* send invalid message for for relation holding replaced function as trigger */ InvalidRelcacheForTriggerFunction(funcOid, ((Form_pg_proc)GETSTRUCT(tup))->prorettype); ReleaseSysCache(tup); @@ -214,7 +220,6 @@ void RemoveObjects(DropStmt* stmt, bool missing_ok, bool is_securityadmin) errmodule(MOD_PLSQL), errmsg("cache lookup failed for relid %u", funcOid))); } - CacheInvalidateFunction(funcOid); heap_freetuple(proctup); } systable_endscan(scan); @@ -224,6 +229,7 @@ void RemoveObjects(DropStmt* stmt, bool missing_ok, bool is_securityadmin) if (!HeapTupleIsValid(tup)) /* should not happen */ ereport(ERROR, (errcode(ERRCODE_CACHE_LOOKUP_FAILED), errmsg("cache lookup failed for package %u", pkgOid))); + CacheInvalidateFunction(InvalidOid, pkgOid); ReleaseSysCache(tup); } // @Temp Table. myTempNamespace and myTempToastNamespace's owner is diff --git a/src/gausskernel/optimizer/commands/explain.cpp b/src/gausskernel/optimizer/commands/explain.cpp index d75827aab..2268bd80e 100755 --- a/src/gausskernel/optimizer/commands/explain.cpp +++ b/src/gausskernel/optimizer/commands/explain.cpp @@ -159,6 +159,7 @@ static void show_groupby_keys(AggState* aggstate, List* ancestors, ExplainState* static void show_sort_keys(SortState* sortstate, List* ancestors, ExplainState* es); static void show_merge_append_keys(MergeAppendState* mstate, List* ancestors, ExplainState* es); static void show_merge_sort_keys(PlanState* state, List* ancestors, ExplainState* es); +static void show_startwith_pseudo_entries(PlanState* state, List* ancestors, ExplainState* es); static void show_sort_info(SortState* sortstate, ExplainState* es); static void show_hash_info(HashState* hashstate, ExplainState* es); static void show_vechash_info(VecHashJoinState* hashstate, ExplainState* es); @@ -1409,7 +1410,7 @@ void ExplainOneQueryForStatistics(QueryDesc* queryDesc) u_sess->exec_cxt.under_auto_explain = false; u_sess->instr_cxt.global_instr = oldInstr; - AutoContextSwitch memSwitch(g_instance.wlm_cxt->query_resource_track_mcxt); + AutoContextSwitch memSwitch(SESS_GET_MEM_CXT_GROUP(MEMORY_CONTEXT_CBB)); t_thrd.shemem_ptr_cxt.mySessionMemoryEntry->query_plan = (char*)palloc0(es.str->len + 1 + 1); errno_t rc = memcpy_s(t_thrd.shemem_ptr_cxt.mySessionMemoryEntry->query_plan, es.str->len, es.str->data, es.str->len); @@ -2001,10 +2002,15 @@ static void ExplainNode( BitmapIndexScan* bitmapindexscan = (BitmapIndexScan*)plan; const char* indexname = explain_get_index_name(bitmapindexscan->indexid); - if (es->format == EXPLAIN_FORMAT_TEXT) + if (es->format == EXPLAIN_FORMAT_TEXT) { appendStringInfo(es->str, " on %s", indexname); - else + if (t_thrd.explain_cxt.explain_perf_mode != EXPLAIN_NORMAL) { + StringInfo tmpName = &es->planinfo->m_planInfo->m_pname; + appendStringInfo(tmpName, " using %s", indexname); + } + } else { ExplainPropertyText("Index Name", indexname, es); + } pt_index_name = indexname; pt_index_owner = get_namespace_name(get_rel_namespace(bitmapindexscan->indexid)); @@ -2516,6 +2522,9 @@ static void ExplainNode( } show_llvm_info(planstate, es); break; + case T_StartWithOp: + show_startwith_pseudo_entries(planstate, ancestors, es); + break; case T_SeqScan: case T_CStoreScan: #ifdef ENABLE_MULTIPLE_NODES @@ -3171,6 +3180,11 @@ static void show_plan_tlist(PlanState* planstate, List* ancestors, ExplainState* foreach (lc, plan->targetlist) { TargetEntry* tle = (TargetEntry*)lfirst(lc); + /* skip pseudo columns once startwith exist */ + if (IsPseudoReturnTargetEntry(tle) || IsPseudoInternalTargetEntry(tle)) { + continue; + } + result = lappend(result, deparse_expression((Node*)tle->expr, context, useprefix, false)); } @@ -3772,6 +3786,32 @@ static void show_merge_sort_keys(PlanState* state, List* ancestors, ExplainState es); } +static void show_startwith_pseudo_entries(PlanState* state, List* ancestors, ExplainState* es) +{ + Plan* plan = state->plan; + StartWithOp *swplan = (StartWithOp *)plan; + List* result = NIL; + const char *qlabel = "Start With pseudo atts"; + + ListCell *lc = NULL; + foreach (lc, swplan->internalEntryList) { + TargetEntry *entry = (TargetEntry *)lfirst(lc); + + result = lappend(result, pstrdup(entry->resname)); + } + + if (t_thrd.explain_cxt.explain_perf_mode != EXPLAIN_NORMAL && es->planinfo->m_verboseInfo) { + es->planinfo->m_verboseInfo->set_plan_name(); + + appendStringInfo(es->planinfo->m_verboseInfo->info_str, "%s: ", qlabel); + ExplainPrettyList(result, es); + } else { + ExplainPropertyList(qlabel, result, es); + } + + list_free_deep(result); +} + static void show_detail_sortinfo(ExplainState* es, const char* sortMethod, const char* spaceType, long spaceUsed) { if (es->format == EXPLAIN_FORMAT_TEXT) { @@ -10406,6 +10446,17 @@ static void show_sort_group_keys(PlanState* planstate, const char* qlabel, int n /* find key expression in tlist */ AttrNumber keyresno = keycols[keyno]; TargetEntry* target = get_tle_by_resno(plan->targetlist, keyresno); + + /* + * Start/With support + * + * Skip pseudo target entry in SORT list + */ + if (IsPseudoInternalTargetEntry(target)) { + result = lappend(result, pstrdup(target->resname)); + continue; + } + char* exprstr = NULL; if (target == NULL) diff --git a/src/gausskernel/optimizer/commands/formatter.cpp b/src/gausskernel/optimizer/commands/formatter.cpp index 3c75b136d..2b65d7c6b 100644 --- a/src/gausskernel/optimizer/commands/formatter.cpp +++ b/src/gausskernel/optimizer/commands/formatter.cpp @@ -2,6 +2,7 @@ * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * formatter.cpp @@ -52,6 +53,42 @@ static char* StrnTrimTo(char* dst, uint32* dstlen, const char* src, uint32 srcle return dst; } +static void ReadAttributeSequence(CopyState cstate) +{ + StringInfo sequence_buf_ptr = &cstate->sequence_buf; + resetStringInfo(sequence_buf_ptr); + + int numattrs = list_length(cstate->attnumlist); + + for (int i = 0; i < numattrs; i++) { + if (cstate->sequence != NULL && cstate->sequence[i] != NULL) { + cstate->raw_fields[i] = &sequence_buf_ptr->data[sequence_buf_ptr->len]; + appendStringInfo(sequence_buf_ptr, "%ld", cstate->sequence[i]->start); + cstate->sequence[i]->start += cstate->sequence[i]->step; + cstate->sequence_buf.len++; + } else if (cstate->constant != NULL && cstate->constant[i] != NULL) { + cstate->raw_fields[i] = cstate->constant[i]->consVal; + } + } +} + +static int FixGetColumnListIndex(List *attnamelist, int attnum) +{ + ListCell *col = NULL; + int index = 0; + + foreach (col, attnamelist) { + index++; + if (lfirst_int(col) == attnum) { + return index; + } + } + ereport(ERROR, (errcode(ERRCODE_INVALID_COLUMN_REFERENCE), errmsg("Attnum %d not find", attnum))); + + /* on failure */ + return InvalidAttrNumber; +} + int ReadAttributesFixedWith(CopyState cstate) { Assert(cstate != NULL); @@ -90,10 +127,12 @@ int ReadAttributesFixedWith(CopyState cstate) enlargeStringInfo(&cstate->attribute_buf, cstate->line_buf.len + formatter->nfield * 2); outptr = cstate->attribute_buf.data; + ReadAttributeSequence(cstate); + for (int i = 0; i < formatter->nfield; i++) { FieldDesc* desc = &(formatter->fieldDesc[i]); uint32 inputSize = 0; - int attnum = desc->attnum; + int attnum = FixGetColumnListIndex(cstate->attnumlist, desc->attnum); // if the rest length of data < position of current field, // we make the field as a NULL field diff --git a/src/gausskernel/optimizer/commands/functioncmds.cpp b/src/gausskernel/optimizer/commands/functioncmds.cpp index 55896d982..3eef01061 100644 --- a/src/gausskernel/optimizer/commands/functioncmds.cpp +++ b/src/gausskernel/optimizer/commands/functioncmds.cpp @@ -8,6 +8,7 @@ * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -81,6 +82,7 @@ #include "pgxc/execRemote.h" #include "storage/lmgr.h" #include "tcop/utility.h" +#include "tsearch/ts_type.h" typedef struct PendingLibraryDelete { char* filename; /* library file name. */ @@ -104,7 +106,7 @@ static int2vector* GetDefaultArgPos(List* defargpos); * condition.) */ static void compute_return_type( - TypeName* returnType, Oid languageOid, Oid* prorettype_p, bool* returnsSet_p, bool fenced) + TypeName* returnType, Oid languageOid, Oid* prorettype_p, bool* returnsSet_p, bool fenced, int startLineNumber) { Oid rettype; Type typtup; @@ -143,7 +145,18 @@ static void compute_return_type( (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("return type %s is only a shell", TypeNameToString(returnType)))); } - rettype = typeTypeId(typtup); + + /* if table of type, find its array type */ + if (((Form_pg_type)GETSTRUCT(typtup))->typtype == TYPTYPE_TABLEOF) { + rettype = ((Form_pg_type)GETSTRUCT(typtup))->typelem; + if (!OidIsValid(rettype)) { + ereport(ERROR, (errcode(ERRCODE_UNDEFINED_OBJECT), + errmsg("table of type %s typelem does not exist", TypeNameToString(returnType)))); + } + } else { + rettype = typeTypeId(typtup); + } + ReleaseSysCache(typtup); } else { char* typnam = TypeNameToString(returnType); @@ -158,8 +171,11 @@ static void compute_return_type( * At present, we only allow auto-created shell types during initdb. */ if ((!IsInitdb && !u_sess->exec_cxt.extension_is_valid) || - (languageOid != INTERNALlanguageId && languageOid != ClanguageId)) + (languageOid != INTERNALlanguageId && languageOid != ClanguageId)) { + const char* message = "type does not exist"; + InsertErrorMessage(message, startLineNumber); ereport(ERROR, (errcode(ERRCODE_UNDEFINED_OBJECT), errmsg("type \"%s\" does not exist", typnam))); + } /* Reject if there's typmod decoration, too */ if (returnType->typmods != NIL) @@ -291,9 +307,33 @@ static void examine_parameter_list(List* parameters, Oid languageOid, const char (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("argument type %s is only a shell", TypeNameToString(t)))); } - toid = typeTypeId(typtup); + + /* if table of type, find its array type */ + if (((Form_pg_type)GETSTRUCT(typtup))->typtype == TYPTYPE_TABLEOF) { + toid = ((Form_pg_type)GETSTRUCT(typtup))->typelem; + if (!OidIsValid(toid)) { + ereport(ERROR, (errcode(ERRCODE_UNDEFINED_OBJECT), + errmsg("table of type %s typelem does not exist", TypeNameToString(t)))); + toid = InvalidOid; /* keep compiler quiet */ + } + } else { + toid = typeTypeId(typtup); + } + ReleaseSysCache(typtup); } else if (!OidIsValid(toid)) { + int rc = 0; + rc = CompileWhich(); + if (rc == PLPGSQL_COMPILE_PACKAGE || + rc == PLPGSQL_COMPILE_PACKAGE_PROC) { + Oid packageOid = u_sess->plsql_cxt.curr_compile_context->plpgsql_curr_compile_package->pkg_oid; + char message[MAXSTRLEN]; + errno_t rc = 0; + rc = sprintf_s(message, MAXSTRLEN, "type %s does not exist.", TypeNameToString(t)); + securec_check_ss_c(rc, "", ""); + InsertErrorMessage(message, 0, true); + InsertError(packageOid); + } ereport(ERROR, (errcode(ERRCODE_UNDEFINED_OBJECT), errmsg("type %s does not exist", TypeNameToString(t)))); toid = InvalidOid; /* keep compiler quiet */ } @@ -375,8 +415,16 @@ static void examine_parameter_list(List* parameters, Oid languageOid, const char paramNames[i] = CStringGetTextDatum(fp->name); have_names = true; } - + if (fp->defexpr) { +#ifndef ENABLE_MULTIPLE_NODES + if (u_sess->attr.attr_sql.sql_compatibility == A_FORMAT + && (fp->mode == FUNC_PARAM_OUT || fp->mode == FUNC_PARAM_INOUT)) { + ereport(ERROR, + (errcode(ERRCODE_INVALID_FUNCTION_DEFINITION), + errmsg("The out/inout Parameter can't have default value."))); + } +#endif Node* def = NULL; if (!isinput) @@ -855,15 +903,25 @@ void CreateFunction(CreateFunctionStmt* stmt, const char* queryString, Oid pkg_o bool shippable = false; bool package = false; bool proIsProcedure = stmt->isProcedure; + if (PLSQL_SECURITY_DEFINER) { + security = true; + } probin_str = NULL; prosrc_str = NULL; - + int rc = 0; + rc = CompileWhich(); + if (rc == PLPGSQL_COMPILE_PACKAGE) { + u_sess->plsql_cxt.procedure_start_line = stmt->startLineNumber; + u_sess->plsql_cxt.procedure_first_line = stmt->firstLineNumber; + } else { + u_sess->plsql_cxt.sourceText = pstrdup(queryString); + } + u_sess->plsql_cxt.isCreateFunction = true; /* * isalter is true, change the owner of the objects as the owner of the * namespace, if the owner of the namespce has the same name as the namescpe */ bool isalter = false; - /* Convert list of names to a name and namespace */ if (!OidIsValid(pkg_oid)) { namespaceId = QualifiedNameGetCreationNamespace(stmt->funcname, &funcname); @@ -880,6 +938,15 @@ void CreateFunction(CreateFunctionStmt* stmt, const char* queryString, Oid pkg_o ReleaseSysCache(tuple); } + if (!IsInitdb && !u_sess->attr.attr_common.IsInplaceUpgrade && IsPackageSchemaOid(namespaceId)) { + ereport(ERROR, + (errmodule(MOD_PLSQL), errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("Permission denied to create function \"%s\"", funcname), + errdetail("Object creation is not supported for %s schema.", get_namespace_name(namespaceId)), + errcause("The schema in the package does not support object creation.."), + erraction("Please create an object in another schema."))); + } + /* Check we have creation rights in target namespace */ aclresult = pg_namespace_aclcheck(namespaceId, GetUserId(), ACL_CREATE); if (aclresult != ACLCHECK_OK) @@ -993,7 +1060,7 @@ void CreateFunction(CreateFunctionStmt* stmt, const char* queryString, Oid pkg_o if (stmt->returnType) { /* explicit RETURNS clause */ - compute_return_type(stmt->returnType, languageOid, &prorettype, &returnsSet, fenced); + compute_return_type(stmt->returnType, languageOid, &prorettype, &returnsSet, fenced, stmt->startLineNumber); } else if (OidIsValid(requiredResultType)) { /* default RETURNS clause from OUT parameters */ prorettype = requiredResultType; @@ -1055,27 +1122,13 @@ void CreateFunction(CreateFunctionStmt* stmt, const char* queryString, Oid pkg_o * And now that we have all the parameters, and know we're permitted to do * so, go ahead and create the function. */ - ProcedureCreate(funcname, - namespaceId, - pkg_oid, - stmt->isOraStyle, - stmt->replace, - returnsSet, - prorettype, - proowner, - languageOid, - languageValidator, + ProcedureCreate(funcname, namespaceId, pkg_oid, stmt->isOraStyle, stmt->replace, + returnsSet, prorettype, proowner, languageOid, languageValidator, prosrc_str, /* converted to text later */ probin_str, /* converted to text later */ false, /* not an aggregate */ - isWindowFunc, - security, - isLeakProof, - isStrict, - volatility, - parameterTypes, - PointerGetDatum(allParameterTypes), - PointerGetDatum(parameterModes), + isWindowFunc, security, isLeakProof, isStrict, volatility, parameterTypes, + PointerGetDatum(allParameterTypes), PointerGetDatum(parameterModes), PointerGetDatum(parameterNames), parameterDefaults, PointerGetDatum(proconfig), @@ -1088,6 +1141,8 @@ void CreateFunction(CreateFunctionStmt* stmt, const char* queryString, Oid pkg_o proIsProcedure, stmt->inputHeaderSrc, stmt->isPrivate); + u_sess->plsql_cxt.procedure_start_line = 0; + u_sess->plsql_cxt.procedure_first_line = 0; } /* @@ -1263,6 +1318,7 @@ void RemoveFunctionById(Oid funcOid) if (funcOid != InvalidOid) { DeletePgObject(funcOid, OBJECT_TYPE_PROC); } + DropErrorByOid(PLPGSQL_PROC, funcOid); ce_cache_refresh_type |= 0x20; /* refresh proc cache */ } /* @@ -1311,6 +1367,7 @@ void RemovePackageById(Oid pkgOid, bool isBody) /* if replace package specification,delete all function in this package first. */ + DropErrorByOid(PLPGSQL_PACKAGE, pkgOid); simple_heap_delete(relation, &pkgtup->t_self); } else { bool nulls[Natts_gs_package]; @@ -1326,7 +1383,8 @@ void RemovePackageById(Oid pkgOid, bool isBody) replaces[Anum_gs_package_pkgbodydeclsrc - 1] = true; nulls[Anum_gs_package_pkgbodydeclsrc - 1] = true; HeapTuple newtup = heap_modify_tuple(pkgtup, RelationGetDescr(relation), values, nulls, replaces); - simple_heap_update(relation, &newtup->t_self, newtup); + DropErrorByOid(PLPGSQL_PACKAGE_BODY, pkgOid); + simple_heap_update(relation, &newtup->t_self, newtup); } ReleaseSysCache(pkgtup); @@ -1370,9 +1428,8 @@ void dropFunctionByPackageOid(Oid package_oid) errmodule(MOD_PLSQL), errmsg("cache lookup failed for relid %u", funcOid))); } - CacheInvalidateFunction(funcOid); (void)deleteDependencyRecordsFor(ProcedureRelationId, funcOid, true); - + DeleteTypesDenpendOnPackage(ProcedureRelationId, funcOid); /* the 'shared dependencies' also change when update. */ deleteSharedDependencyRecordsFor(ProcedureRelationId, funcOid, 0); @@ -1427,8 +1484,8 @@ void RenameFunction(List* name, List* argtypes, const char* newname) checkAllowAlter(tup); oidvector* proargs = ProcedureGetArgTypes(tup); - /* make sure the new name doesn't exist */ +#ifdef ENABLE_MULTIPLE_NODES if (SearchSysCacheExists3(PROCNAMEARGSNSP, CStringGetDatum(newname), PointerGetDatum(&procForm->proargtypes), @@ -1439,7 +1496,42 @@ void RenameFunction(List* name, List* argtypes, const char* newname) funcname_signature_string(newname, procForm->pronargs, NIL, proargs->values), get_namespace_name(namespaceOid)))); } +#else + if (t_thrd.proc->workingVersionNum < 92470) { + if (SearchSysCacheExists3(PROCNAMEARGSNSP, + CStringGetDatum(newname), + PointerGetDatum(&procForm->proargtypes), + ObjectIdGetDatum(namespaceOid))) { + ereport(ERROR, + (errcode(ERRCODE_DUPLICATE_FUNCTION), + errmsg("function %s already exists in schema \"%s\"", + funcname_signature_string(newname, procForm->pronargs, NIL, proargs->values), + get_namespace_name(namespaceOid)))); + } + } else { + Datum packageOidDatum; + Oid packageOid = InvalidOid; + bool isNull = false; + packageOidDatum = SysCacheGetAttr(PROCOID, tup, Anum_pg_proc_packageid, &isNull); + packageOid = ObjectIdGetDatum(packageOidDatum); + if (!OidIsValid(packageOid)) { + packageOidDatum = ObjectIdGetDatum(InvalidOid); + } + Datum allargtypes = ProcedureGetAllArgTypes(tup, &isNull); + if (SearchSysCacheExists4(PROCALLARGS, + CStringGetDatum(newname), + allargtypes, + ObjectIdGetDatum(namespaceOid), packageOidDatum)) { + ereport(ERROR, + (errcode(ERRCODE_DUPLICATE_FUNCTION), + errmsg("function %s already exists in schema \"%s\"", + funcname_signature_string(newname, procForm->pronargs, NIL, proargs->values), + get_namespace_name(namespaceOid)))); + } + + } +#endif /* Must be owner or have alter privilege of the target object. */ aclresult = pg_proc_aclcheck(procOid, GetUserId(), ACL_ALTER); if (aclresult != ACLCHECK_OK && !pg_proc_ownercheck(procOid, GetUserId())) { @@ -2376,16 +2468,52 @@ Oid AlterFunctionNamespace_oid(Oid procOid, Oid nspOid) } /* check for duplicate name (more friendly than unique-index failure) */ +#ifdef ENABLE_MULTIPLE_NODES if (SearchSysCacheExists3(PROCNAMEARGSNSP, CStringGetDatum(NameStr(proc->proname)), PointerGetDatum(&proc->proargtypes), - ObjectIdGetDatum(nspOid))) + ObjectIdGetDatum((nspOid)))) { ereport(ERROR, (errcode(ERRCODE_DUPLICATE_FUNCTION), errmsg("function \"%s\" already exists in schema \"%s\"", NameStr(proc->proname), get_namespace_name(nspOid)))); + } +#else + if (t_thrd.proc->workingVersionNum < 92470) { + if (SearchSysCacheExists3(PROCNAMEARGSNSP, + CStringGetDatum(NameStr(proc->proname)), + PointerGetDatum(&proc->proargtypes), + ObjectIdGetDatum((nspOid)))) { + ereport(ERROR, + (errcode(ERRCODE_DUPLICATE_FUNCTION), + errmsg("function \"%s\" already exists in schema \"%s\"", + NameStr(proc->proname), + get_namespace_name(nspOid)))); + } + } else { + Datum packageOidDatum; + Oid packageOid = InvalidOid; + bool isNull = false; + packageOidDatum = SysCacheGetAttr(PROCOID, tup, Anum_pg_proc_packageid, &isNull); + packageOid = ObjectIdGetDatum(packageOidDatum); + if (!OidIsValid(packageOid)) { + packageOidDatum = ObjectIdGetDatum(InvalidOid); + } + Datum allargtypes = ProcedureGetAllArgTypes(tup, &isNull); + if (SearchSysCacheExists4(PROCALLARGS, + CStringGetDatum(NameStr(proc->proname)), + allargtypes, + ObjectIdGetDatum(nspOid), packageOidDatum)) { + ereport(ERROR, + (errcode(ERRCODE_DUPLICATE_FUNCTION), + errmsg("function \"%s\" already exists in schema \"%s\"", + NameStr(proc->proname), + get_namespace_name(nspOid)))); + } + } +#endif /* OK, modify the pg_proc row */ /* tup is a copy, so we can scribble directly on it */ proc->pronamespace = nspOid; diff --git a/src/gausskernel/optimizer/commands/gds_stream.cpp b/src/gausskernel/optimizer/commands/gds_stream.cpp index 03cabe15d..cd55888af 100644 --- a/src/gausskernel/optimizer/commands/gds_stream.cpp +++ b/src/gausskernel/optimizer/commands/gds_stream.cpp @@ -610,8 +610,10 @@ void SerializeCmd(CmdBase* cmd, StringInfo buf) Assert(CurrentMemoryContext); cmdtype[cmdtypeSize - 1] = '\0'; +#ifdef ENABLE_MULTIPLE_NODES if (u_sess->attr.attr_storage.gds_debug_mod) ereport(LOG, (errmodule(MOD_GDS), (errmsg("Sending a %s to GDS", cmdtype)))); +#endif } void PackData(StringInfo dst, StringInfo data) @@ -773,8 +775,9 @@ CmdBase* DeserializeCmd(StringInfo buf) buf->cursor += length; cmdtype[cmdtypeSize - 1] = '\0'; +#ifdef ENABLE_MULTIPLE_NODES if (u_sess->attr.attr_storage.gds_debug_mod) ereport(LOG, (errmodule(MOD_GDS), (errmsg("Receiving a %s from GDS", cmdtype)))); - +#endif return cmd; } diff --git a/src/gausskernel/optimizer/commands/indexcmds.cpp b/src/gausskernel/optimizer/commands/indexcmds.cpp index c81274098..ee1232e30 100644 --- a/src/gausskernel/optimizer/commands/indexcmds.cpp +++ b/src/gausskernel/optimizer/commands/indexcmds.cpp @@ -7,6 +7,7 @@ * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 2010-2012 Postgres-XC Development Group + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -295,6 +296,27 @@ bool CheckIndexCompatible(Oid oldId, char* accessMethodName, List* attributeList return ret; } +static void CheckPartitionUniqueKey(Relation rel, int2vector *partKey, IndexStmt *stmt, int numberOfAttributes) +{ + int j; + + if (partKey->dim1 > numberOfAttributes) { + ereport(ERROR, (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), + errmsg("unique index columns must contain the partition key"))); + } + + for (j = 0; j < partKey->dim1; j++) { + int2 attNum = partKey->values[j]; + Form_pg_attribute att_tup = rel->rd_att->attrs[attNum - 1]; + + if (!columnIsExist(rel, att_tup, stmt->indexParams)) { + ereport(ERROR, (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), + errmsg("unique index columns must contain the partition key and collation must be default " + "collation"))); + } + } +} + /* * DefineIndex * Creates a new index. @@ -354,6 +376,11 @@ Oid DefineIndex(Oid relationId, IndexStmt* stmt, Oid indexRelationId, bool is_al StdRdOptions* index_relopts; int8 indexsplitMethod = INDEXSPLIT_NO_DEFAULT; int crossbucketopt = -1; + List *subPartTspList = NULL; + List *subPartitionIndexDef = NULL; + List *subPartitionTupleList = NULL; + List *subPartitionOidList = NULL; + List *partitionOidList = NULL; /* * Force non-concurrent build on temporary relations, even if CONCURRENTLY @@ -370,6 +397,14 @@ Oid DefineIndex(Oid relationId, IndexStmt* stmt, Oid indexRelationId, bool is_al concurrent = false; } + /* Don't suppport gin/gist index on global temporary table */ + if (relPersistence == RELPERSISTENCE_GLOBAL_TEMP && + (strcmp(stmt->accessMethod, "gin") == 0 || strcmp(stmt->accessMethod, "gist") == 0)) { + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("access method \"%s\" is not support for global temporary table index", stmt->accessMethod))); + } + /* * Open heap relation, acquire a suitable lock on it, remember its OID * @@ -420,7 +455,21 @@ Oid DefineIndex(Oid relationId, IndexStmt* stmt, Oid indexRelationId, bool is_al * If index key of unique or primary key index include the partition key, * default index is set to local index. Otherwise, set to global index. */ - stmt->isGlobal = !CheckIdxParamsOwnPartKey(rel, stmt->indexParams); + if (RelationIsSubPartitioned(rel)) { + List *partOidList = relationGetPartitionOidList(rel); + Assert(list_length(partOidList) != 0); + Partition part = partitionOpen(rel, linitial_oid(partOidList), NoLock); + Relation partRel = partitionGetRelation(rel, part); + stmt->isGlobal = !(CheckIdxParamsOwnPartKey(rel, stmt->indexParams) && + CheckIdxParamsOwnPartKey(partRel, stmt->indexParams)); + releaseDummyRelation(&partRel); + partitionClose(rel, part, NoLock); + if (partOidList != NULL) { + releasePartitionOidList(&partOidList); + } + } else { + stmt->isGlobal = !CheckIdxParamsOwnPartKey(rel, stmt->indexParams); + } } else if (!stmt->isPartitioned) { /* default partition index is set to Global index */ stmt->isGlobal = (!DEFAULT_CREATE_LOCAL_INDEX ? true : stmt->isGlobal); @@ -480,10 +529,12 @@ Oid DefineIndex(Oid relationId, IndexStmt* stmt, Oid indexRelationId, bool is_al (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("non-partitioned table does not support %s partitioned indexes ", stmt->isGlobal ? "global" : "local"))); +#ifdef ENABLE_MULTIPLE_NODES } else if (stmt->deferrable && stmt->unique) { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("Partition table does not support to set deferrable."))); +#endif } else if (stmt->isGlobal && stmt->whereClause != NULL) { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), @@ -594,7 +645,8 @@ Oid DefineIndex(Oid relationId, IndexStmt* stmt, Oid indexRelationId, bool is_al } /* Check permissions except when using database's default */ - if (stmt->isPartitioned && !stmt->isGlobal) { // LOCAL partition index check + if (stmt->isPartitioned && !stmt->isGlobal) { + /* LOCAL partition index check */ ListCell* cell = NULL; partitionTableList = searchPgPartitionByParentId(PART_OBJ_TYPE_TABLE_PARTITION, relationId); @@ -605,6 +657,11 @@ Oid DefineIndex(Oid relationId, IndexStmt* stmt, Oid indexRelationId, bool is_al errmsg("when creating partitioned index, get table partitions failed"))); } + if (RelationIsSubPartitioned(rel)) { + subPartitionTupleList = + searchPgSubPartitionByParentId(PART_OBJ_TYPE_TABLE_SUB_PARTITION, partitionTableList); + } + if (PointerIsValid(stmt->partClause)) { partitionIndexdef = (List*)stmt->partClause; @@ -619,24 +676,79 @@ Oid DefineIndex(Oid relationId, IndexStmt* stmt, Oid indexRelationId, bool is_al "underlying table"))); } } else { - /* construct the index list */ - for (i = 0; i < partitionTableList->length; i++) { - RangePartitionindexDefState* def = makeNode(RangePartitionindexDefState); - partitionIndexdef = lappend(partitionIndexdef, def); + if (!RelationIsSubPartitioned(rel)) { + /* construct the index list */ + for (i = 0; i < partitionTableList->length; i++) { + RangePartitionindexDefState* def = makeNode(RangePartitionindexDefState); + partitionIndexdef = lappend(partitionIndexdef, def); + } + } else { + int j = 0; + /* construct the index list */ + foreach (cell, subPartitionTupleList) { + List *sub = (List *)lfirst(cell); + List *partSubIndexDef = NULL; + for (j = 0; j < sub->length; j++) { + RangePartitionindexDefState *def = makeNode(RangePartitionindexDefState); + partSubIndexDef = lappend(partSubIndexDef, def); + } + + subPartitionIndexDef = lappend(subPartitionIndexDef, partSubIndexDef); + } + foreach (cell, partitionTableList) { + HeapTuple tuple = (HeapTuple)lfirst(cell); + Oid partOid = HeapTupleGetOid(tuple); + partitionOidList = lappend_oid(partitionOidList, partOid); + } + foreach (cell, subPartitionTupleList) { + List* subPartTuples = (List*)lfirst(cell); + ListCell* lc = NULL; + List* subPartOids = NIL; + foreach (lc, subPartTuples) { + HeapTuple tuple = (HeapTuple)lfirst(lc); + Oid subPartOid = HeapTupleGetOid(tuple); + subPartOids = lappend_oid(subPartOids, subPartOid); + } + subPartitionOidList = lappend(subPartitionOidList, subPartOids); + } } } freePartList(partitionTableList); - foreach (cell, partitionIndexdef) { - RangePartitionindexDefState* def = (RangePartitionindexDefState*)lfirst(cell); + if (subPartitionTupleList != NULL) { + freeSubPartList(subPartitionTupleList); + } - if (NULL != def->tablespace) { - /* use partition tablespace if user defines */ - partitiontspList = lappend_oid(partitiontspList, get_tablespace_oid(def->tablespace, false)); - } else { - /* use partitioned table' tablespace if user doesnt define */ - partitiontspList = lappend_oid(partitiontspList, tablespaceId); + if (!RelationIsSubPartitioned(rel)) { + foreach (cell, partitionIndexdef) { + RangePartitionindexDefState* def = (RangePartitionindexDefState*)lfirst(cell); + + if (NULL != def->tablespace) { + /* use partition tablespace if user defines */ + partitiontspList = lappend_oid(partitiontspList, get_tablespace_oid(def->tablespace, false)); + } else { + /* use partitioned table' tablespace if user doesnt define */ + partitiontspList = lappend_oid(partitiontspList, tablespaceId); + } + } + } else { + for (i = 0; i < subPartitionIndexDef->length; i++) { + List *sub = (List *)list_nth(subPartitionIndexDef, i); + partitiontspList = NULL; + foreach (cell, sub) + { + RangePartitionindexDefState* def = (RangePartitionindexDefState*)lfirst(cell); + if (NULL != def->tablespace) { + /* use partition tablespace if user defines */ + partitiontspList = lappend_oid(partitiontspList, get_tablespace_oid(def->tablespace, false)); + } else { + /* use partitioned table' tablespace if user doesnt define */ + partitiontspList = lappend_oid(partitiontspList, tablespaceId); + } + } + + subPartTspList = lappend(subPartTspList, partitiontspList); } } } @@ -687,25 +799,17 @@ Oid DefineIndex(Oid relationId, IndexStmt* stmt, Oid indexRelationId, bool is_al * For global partition index, we cancel this check. */ if (stmt->unique && !stmt->isGlobal) { - int2vector* partKey = ((RangePartitionMap*)rel->partMap)->partitionKey; - int j = 0; - - if (partKey->dim1 > numberOfAttributes) { - ereport(ERROR, - (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), - errmsg("unique index columns must contain the partition key"))); - } - - for (; j < partKey->dim1; j++) { - int2 attNum = partKey->values[j]; - Form_pg_attribute att_tup = rel->rd_att->attrs[attNum - 1]; - - if (!columnIsExist(rel, att_tup, stmt->indexParams)) { - ereport(ERROR, - (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), - errmsg("unique index columns must contain the partition key and collation must be default " - "collation"))); - } + int2vector* partKey = GetPartitionKey(rel->partMap); + CheckPartitionUniqueKey(rel, partKey, stmt, numberOfAttributes); + if (RelationIsSubPartitioned(rel)) { + List *partOidList = relationGetPartitionOidList(rel); + Assert(list_length(partOidList) != 0); + Partition part = partitionOpen(rel, linitial_oid(partOidList), NoLock); + Relation partRel = partitionGetRelation(rel, part); + int2vector* subPartKey = GetPartitionKey(partRel->partMap); + CheckPartitionUniqueKey(partRel, subPartKey, stmt, numberOfAttributes); + releaseDummyRelation(&partRel); + partitionClose(rel, part, NoLock); } } } @@ -1139,80 +1243,175 @@ Oid DefineIndex(Oid relationId, IndexStmt* stmt, Oid indexRelationId, bool is_al indexInfo->ii_BrokenHotChain = false; partExtra.crossbucket = stmt->crossbucket; - if (!PointerIsValid(partitionIndexdef)) { - ereport(ERROR, - (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), - errmsg("fail to get index info when create index partition"))); - } + if (!RelationIsSubPartitioned(rel)) { + if (!PointerIsValid(partitionIndexdef)) { + ereport(ERROR, + (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), + errmsg("fail to get index info when create index partition"))); + } - partitionidlist = relationGetPartitionOidList(rel); + partitionidlist = relationGetPartitionOidList(rel); + } else { + if (!PointerIsValid(subPartitionIndexDef)) { + ereport(ERROR, + (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), + errmsg("fail to get index info when create index partition"))); + } + } pg_partition_rel = heap_open(PartitionRelationId, RowExclusiveLock); // switch to partition memory context oldMemContext = MemoryContextSwitchTo(partitionIndexMemContext); - forthree(tspcell, partitiontspList, indexcell, partitionIndexdef, partitioncell, partitionidlist) - { - partitionid = lfirst_oid(partitioncell); - partitiontspid = lfirst_oid(tspcell); - indexdef = (RangePartitionindexDefState*)lfirst(indexcell); + if (!RelationIsSubPartitioned(rel)) { + forthree(tspcell, partitiontspList, indexcell, partitionIndexdef, partitioncell, partitionidlist) + { + partitiontspid = lfirst_oid(tspcell); + indexdef = (RangePartitionindexDefState*)lfirst(indexcell); + partitionid = lfirst_oid(partitioncell); - /* reset the extra arguments data. */ - partExtra.existingPSortOid = InvalidOid; + /* reset the extra arguments data. */ + partExtra.existingPSortOid = InvalidOid; - if (PointerIsValid(stmt->partIndexOldNodes)) { - Assert(stmt->partIndexOldPSortOid); - partIndexFileNode = list_nth_oid(stmt->partIndexOldNodes, count); - partExtra.existingPSortOid = list_nth_oid(stmt->partIndexOldPSortOid, count); - count++; - } - if (u_sess->attr.attr_sql.enable_cluster_resize && stmt->partIndexUsable && - !stmt->partIndexUsable[indexnum++]) { - ereport(LOG, (errmsg("In redistribution, the %dth partition of source index is unusable, " - "the tmp table will skip.", indexnum))); - continue; - } - - partition = partitionOpen(rel, partitionid, ShareLock); - - if (PointerIsValid(indexdef->name)) { - Oid indexid = InvalidOid; - - indexid = GetSysCacheOid3(PARTPARTOID, - PointerGetDatum(indexdef->name), - CharGetDatum(PART_OBJ_TYPE_INDEX_PARTITION), - ObjectIdGetDatum(indexRelationId)); - if (OidIsValid(indexid)) { - ereport(ERROR, - (errcode(ERRCODE_UNDEFINED_OBJECT), - errmsg("index partition with name \"%s\" already exists", indexdef->name))); + if (PointerIsValid(stmt->partIndexOldNodes)) { + Assert(stmt->partIndexOldPSortOid); + partIndexFileNode = list_nth_oid(stmt->partIndexOldNodes, count); + partExtra.existingPSortOid = list_nth_oid(stmt->partIndexOldPSortOid, count); + count++; + } + if (u_sess->attr.attr_sql.enable_cluster_resize && stmt->partIndexUsable && + !stmt->partIndexUsable[indexnum++]) { + ereport(LOG, (errmsg("In redistribution, the %dth partition of source index is unusable, " + "the tmp table will skip.", indexnum))); + continue; } - } - /* get index partition's name */ - indexname = - (NULL != indexdef->name) + partition = partitionOpen(rel, partitionid, ShareLock); + + if (PointerIsValid(indexdef->name)) { + Oid indexid = InvalidOid; + + indexid = GetSysCacheOid3(PARTPARTOID, PointerGetDatum(indexdef->name), + CharGetDatum(PART_OBJ_TYPE_INDEX_PARTITION), + ObjectIdGetDatum(indexRelationId)); + if (OidIsValid(indexid)) { + ereport(ERROR, + (errcode(ERRCODE_UNDEFINED_OBJECT), + errmsg("index partition with name \"%s\" already exists", indexdef->name))); + } + } + + /* get index partition's name */ + indexname = + (NULL != indexdef->name) ? indexdef->name : ChoosePartitionIndexName( - PartitionGetPartitionName(partition), indexRelationId, indexColNames, false, false); + PartitionGetPartitionName(partition), indexRelationId, indexColNames, false, false); - /* create index partition */ - (void)partition_index_create(indexname, - partIndexFileNode, - partition, - partitiontspid, - partitionedIndex, - rel, - pg_partition_rel, - indexInfo, - indexColNames, - reloptions, - skip_build, - &partExtra); - partitionClose(rel, partition, NoLock); + /* create index partition */ + (void)partition_index_create(indexname, + partIndexFileNode, + partition, + partitiontspid, + partitionedIndex, + rel, + pg_partition_rel, + indexInfo, + indexColNames, + reloptions, + skip_build, + &partExtra); + partitionClose(rel, partition, NoLock); - // reset memory context - MemoryContextReset(partitionIndexMemContext); + // reset memory context + MemoryContextReset(partitionIndexMemContext); + } + } else { + ListCell *subTspCell = NULL; + ListCell *subIndexCell = NULL; + ListCell *subPartCell = NULL; + int partIdx = 0; + forthree(subTspCell, subPartTspList, subIndexCell, subPartitionIndexDef, subPartCell, + subPartitionOidList) + { + partitiontspList = (List *)lfirst(subTspCell); + partitionIndexdef = (List *)lfirst(subIndexCell); + List *subpartitionidlist = (List *)lfirst(subPartCell); + + Oid partid = list_nth_oid(partitionOidList, partIdx++); + Partition p = partitionOpen(rel, partid, ShareLock); + Relation partRel = partitionGetRelation(rel, p); + + forthree(tspcell, partitiontspList, indexcell, partitionIndexdef, partitioncell, subpartitionidlist) + { + Oid subPartitionOid = lfirst_oid(partitioncell); + partitiontspid = lfirst_oid(tspcell); + indexdef = (RangePartitionindexDefState*)lfirst(indexcell); + + /* reset the extra arguments data. */ + partExtra.existingPSortOid = InvalidOid; + + if (PointerIsValid(stmt->partIndexOldNodes)) { + Assert(stmt->partIndexOldPSortOid); + partIndexFileNode = list_nth_oid(stmt->partIndexOldNodes, count); + partExtra.existingPSortOid = list_nth_oid(stmt->partIndexOldPSortOid, count); + count++; + } + + partition = partitionOpen(partRel, subPartitionOid, ShareLock); + + if (PointerIsValid(indexdef->name)) { + Oid indexid = InvalidOid; + + indexid = GetSysCacheOid3(PARTPARTOID, PointerGetDatum(indexdef->name), + CharGetDatum(PART_OBJ_TYPE_INDEX_PARTITION), + ObjectIdGetDatum(indexRelationId)); + if (OidIsValid(indexid)) { + ereport(ERROR, + (errcode(ERRCODE_UNDEFINED_OBJECT), + errmsg("index subpartition with name \"%s\" already exists", indexdef->name))); + } + } + + /* get index partition's name */ + indexname = (NULL != indexdef->name) + ? indexdef->name + : ChoosePartitionIndexName(PartitionGetPartitionName(partition), + indexRelationId, indexColNames, false, false); + + /* create index partition */ + (void)partition_index_create(indexname, + partIndexFileNode, + partition, + partitiontspid, + partitionedIndex, + partRel, + pg_partition_rel, + indexInfo, + indexColNames, + reloptions, + skip_build, + &partExtra); + partitionClose(partRel, partition, NoLock); + + // reset memory context + MemoryContextReset(partitionIndexMemContext); + } + + releaseDummyRelation(&partRel); + partitionClose(rel, p, ShareLock); + } + if (subPartitionOidList != NULL) { + ListCell* lc = NULL; + foreach(lc, subPartitionOidList) { + List* tmpList = (List*)lfirst(lc); + list_free_ext(tmpList); + } + list_free_ext(subPartitionOidList); + } + if (partitionOidList != NULL) { + list_free_ext(partitionOidList); + } } // delete memory context @@ -2623,7 +2822,14 @@ void ReindexTable(RangeVar* relation, const char* partition_name, AdaptMem* mem_ /* The lock level used here should match reindexPartition(). */ heapOid = RangeVarGetRelidExtended( relation, AccessShareLock, false, false, false, false, RangeVarCallbackOwnsTable, NULL); - + Relation rel = heap_open(heapOid, AccessShareLock); + if (RelationIsSubPartitioned(rel)) { + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + (errmsg("Un-support feature"), + errdetail("For subpartition table, REBUILD UNUSABLE LOCAL INDEXES is not yet supported."), + errcause("The function is not implemented."), erraction("Use other actions instead.")))); + } + heap_close(rel, NoLock); TrForbidAccessRbObject(RelationRelationId, heapOid, relation->relname); heapPartOid = partitionNameGetPartitionOid( @@ -2853,7 +3059,8 @@ void ReindexDatabase(const char* databaseName, bool do_system, bool do_user, Ada PG_TRY(); { - if (ReindexRelation(relid, REINDEX_REL_PROCESS_TOAST, REINDEX_ALL_INDEX, NULL, mem_info, true)) + if (ReindexRelation(relid, REINDEX_REL_PROCESS_TOAST | REINDEX_REL_CHECK_CONSTRAINTS, + REINDEX_ALL_INDEX, NULL, mem_info, true)) ereport(NOTICE, (errmsg("table \"%s.%s\" was reindexed", get_namespace_name(get_rel_namespace(relid)), @@ -2861,7 +3068,7 @@ void ReindexDatabase(const char* databaseName, bool do_system, bool do_user, Ada } PG_CATCH(); { - if (NULL == get_rel_name(relid)) { + if (geterrcode() == ERRCODE_RELATION_OPEN_ERROR && NULL == get_rel_name(relid)) { ereport(LOG, (errmsg("Table with OID \"%u\" doesn't exit.", relid), errhint("Please don't drop table when the operation of 'REINDEX DATABASE' is executed."))); diff --git a/src/gausskernel/optimizer/commands/matview.cpp b/src/gausskernel/optimizer/commands/matview.cpp index f842b4092..bb37d0591 100755 --- a/src/gausskernel/optimizer/commands/matview.cpp +++ b/src/gausskernel/optimizer/commands/matview.cpp @@ -35,6 +35,7 @@ #include "commands/tablecmds.h" #include "executor/executor.h" #include "miscadmin.h" +#include "parser/parse_hint.h" #include "rewrite/rewriteHandler.h" #include "storage/lmgr.h" #include "storage/smgr/smgr.h" @@ -127,14 +128,29 @@ Size MatviewShmemSize(void) inline PlannedStmt* GetPlanStmt(Query* query, ParamListInfo params) { PlannedStmt* plan; -#ifdef ENABLE_MULTIPLE_NODES - plan = pg_plan_query(query, 0, NULL); -#else + int outerdop = u_sess->opt_cxt.query_dop; - u_sess->opt_cxt.query_dop = 1; - plan = pg_plan_query(query, 0, params); - u_sess->opt_cxt.query_dop = outerdop; -#endif + bool enable_indexonlyscan = u_sess->attr.attr_sql.enable_indexonlyscan; + + PG_TRY(); + { + u_sess->opt_cxt.query_dop = 1; + u_sess->attr.attr_sql.enable_indexonlyscan = false; + RemoveQueryHintByType(query, HINT_KEYWORD_INDEXONLYSCAN); + + plan = pg_plan_query(query, 0, params); + + u_sess->opt_cxt.query_dop = outerdop; + u_sess->attr.attr_sql.enable_indexonlyscan = enable_indexonlyscan; + } + PG_CATCH(); + { + u_sess->opt_cxt.query_dop = outerdop; + u_sess->attr.attr_sql.enable_indexonlyscan = enable_indexonlyscan; + PG_RE_THROW(); + } + PG_END_TRY(); + return plan; } @@ -1880,18 +1896,8 @@ Oid create_matview_map(Oid matviewoid) DistributeBy *distributeby = NULL; PGXCSubCluster* subcluster = NULL; distributeby = makeNode(DistributeBy); - distributeby->disttype = DISTTYPE_HASH; - List *colNames = NIL; - - for (int i = 0; i < tupdesc->natts; i++) { - Form_pg_attribute attr = tupdesc->attrs[i]; - if(IsTypeDistributable(attr->atttypid)) { - Value *colValue = makeString(pstrdup(attr->attname.data)); - colNames = lappend(colNames, colValue); - break; - } - } - distributeby->colname = colNames; + distributeby->disttype = DISTTYPE_ROUNDROBIN; + distributeby->colname = NULL; /* handle node group infos */ Oid group_id = ng_get_baserel_groupoid(matviewoid, RELKIND_RELATION); @@ -2032,8 +2038,11 @@ void insert_into_mlog_table(Relation rel, Oid mlogid, HeapTuple tuple, ItemPoint Datum values[MlogAttributeNum + relAttnum]; bool isnulls[MlogAttributeNum + relAttnum]; + mlog_table = try_relation_open(mlogid, RowExclusiveLock); + if (!RelationIsValid(mlog_table)) { + return; + } - mlog_table = heap_open(mlogid, RowExclusiveLock); List *indexoidlist = RelationGetIndexList(mlog_table); if (indexoidlist == NULL) { ereport(ERROR, @@ -2223,6 +2232,13 @@ static void check_simple_query(Query *query, List **refDistkeyList, List **rangeTables, Oid *groupid) { RangeTblEntry *rte = NULL; + if (query->cteList != NULL) { + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("Feature not supported"), + errdetail("with or start with clause"))); + } + if (query->returningList != NULL) { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), diff --git a/src/gausskernel/optimizer/commands/packagecmds.cpp b/src/gausskernel/optimizer/commands/packagecmds.cpp index 8e6a78d24..a4986b694 100644 --- a/src/gausskernel/optimizer/commands/packagecmds.cpp +++ b/src/gausskernel/optimizer/commands/packagecmds.cpp @@ -84,7 +84,7 @@ void CreatePackageCommand(CreatePackageStmt* stmt, const char* queryString) * namespace, if the owner of the namespce has the same name as the namescpe */ bool isAlter = false; - + u_sess->plsql_cxt.sourceText = pstrdup(queryString); /* Check we have creation rights in target namespace */ aclresult = pg_namespace_aclcheck(namespaceId, GetUserId(), ACL_CREATE); if (aclresult != ACLCHECK_OK) @@ -123,10 +123,19 @@ void CreatePackageCommand(CreatePackageStmt* stmt, const char* queryString) errcause("package name is null"), erraction("rename package"))); } - packageId = PackageSpecCreate(namespaceId, pkgname, pkgOwner, pkgspecsrc, stmt->replace); + packageId = PackageSpecCreate(namespaceId, pkgname, pkgOwner, pkgspecsrc, stmt->replace, stmt->pkgsecdef); /* Advance cmd counter to make the package visible */ - CommandCounterIncrement(); + if (OidIsValid(packageId)) { + CommandCounterIncrement(); + } else { + ereport(ERROR, + (errmodule(MOD_PLSQL), errcode(ERRCODE_INVALID_NAME), + errmsg("package spec has error"), + errdetail("empty package spec is not allowed"), + errcause("debug mode"), + erraction("check package spec"))); + } } @@ -151,7 +160,7 @@ void CreatePackageBodyCommand(CreatePackageBodyStmt* stmt, const char* queryStri * namespace, if the owner of the namespce has the same name as the namescpe */ bool isAlter = false; - + u_sess->plsql_cxt.sourceText = pstrdup(queryString); /* Check we have creation rights in target namespace */ aclresult = pg_namespace_aclcheck(namespaceId, GetUserId(), ACL_CREATE); if (aclresult != ACLCHECK_OK) @@ -181,8 +190,18 @@ void CreatePackageBodyCommand(CreatePackageBodyStmt* stmt, const char* queryStri } /* Create the package */ - PackageBodyCreate(namespaceId, pkgname, pkgOwner, pkgBodySrc , stmt->pkginit, stmt->replace); + Oid packageOid = InvalidOid; + packageOid = PackageBodyCreate(namespaceId, pkgname, pkgOwner, pkgBodySrc , stmt->pkginit, stmt->replace); /* Advance cmd counter to make the package visible */ - CommandCounterIncrement(); + if (OidIsValid(packageOid)) { + CommandCounterIncrement(); + } else { + ereport(ERROR, + (errmodule(MOD_PLSQL), errcode(ERRCODE_INVALID_NAME), + errmsg("package body has error"), + errdetail("empty package body is not allowed"), + errcause("package body is null"), + erraction("check package body"))); + } } diff --git a/src/gausskernel/optimizer/commands/portalcmds.cpp b/src/gausskernel/optimizer/commands/portalcmds.cpp index 308ee27c4..c8e1c8c5b 100644 --- a/src/gausskernel/optimizer/commands/portalcmds.cpp +++ b/src/gausskernel/optimizer/commands/portalcmds.cpp @@ -302,6 +302,35 @@ void PortalCleanup(Portal portal) } } +#ifdef ENABLE_MULTIPLE_NODES +static bool check_remote_plan(Plan* plan) +{ + if (plan == NULL) + return false; + + if (IsA(plan, RemoteQuery) || IsA(plan, VecRemoteQuery)) { + RemoteQuery* remote_query = (RemoteQuery*)plan; + if (remote_query->exec_type != EXEC_ON_COORDS) + return true; + } + return check_remote_plan(plan->lefttree) || check_remote_plan(plan->righttree); +} + +static bool PortalCheckRemotePlan(PlannedStmt* plannedstmt) +{ + bool is_remote_plan = false; + + if (IsA(plannedstmt, PlannedStmt)) { + if (check_remote_plan(plannedstmt->planTree)) { + is_remote_plan = true; + } + } + return is_remote_plan; +} + +#endif + + /* * PersistHoldablePortal * @@ -386,6 +415,9 @@ void PersistHoldablePortal(Portal portal) /* Fetch the result set into the tuplestore */ ExecutorRun(queryDesc, ForwardScanDirection, 0L); +#ifdef ENABLE_MULTIPLE_NODES + bool is_remote_plan = PortalCheckRemotePlan(queryDesc->plannedstmt); +#endif (*queryDesc->dest->rDestroy)(queryDesc->dest); queryDesc->dest = NULL; @@ -416,7 +448,7 @@ void PersistHoldablePortal(Portal portal) */ #ifdef ENABLE_MULTIPLE_NODES - if (portal->cursorOptions & CURSOR_OPT_HOLD) { + if ((portal->cursorOptions & CURSOR_OPT_HOLD) || (!is_remote_plan)) { #endif if (portal->atEnd) { /* we can handle this case even if posOverflow */ diff --git a/src/gausskernel/optimizer/commands/prepare.cpp b/src/gausskernel/optimizer/commands/prepare.cpp index f86774583..4946921c1 100755 --- a/src/gausskernel/optimizer/commands/prepare.cpp +++ b/src/gausskernel/optimizer/commands/prepare.cpp @@ -54,6 +54,15 @@ static Datum build_regtype_array(const Oid* param_types, int num_params); extern void destroy_handles(); +static void CopyPlanForGPCIfNecessary(CachedPlanSource* psrc, Portal portal) +{ + MemoryContext tmpCxt = NULL; + bool needCopy = ENABLE_GPC && psrc->gplan; + if (needCopy) { + portal->stmts = CopyLocalStmt(portal->cplan->stmt_list, u_sess->temp_mem_cxt, &tmpCxt); + } +} + /* * Implements the 'PREPARE' utility statement. */ @@ -163,6 +172,7 @@ void PrepareQuery(PrepareStmt* stmt, const char* queryString) query_list, NULL, argtypes, + NULL, nargs, NULL, NULL, @@ -195,7 +205,6 @@ void ExecuteQuery(ExecuteStmt* stmt, IntoClause* intoClause, const char* querySt { PreparedStatement *entry = NULL; CachedPlan* cplan = NULL; - MemoryContext tmpCxt = NULL; List* plan_list = NIL; ParamListInfo paramLI = NULL; EState* estate = NULL; @@ -229,6 +238,11 @@ void ExecuteQuery(ExecuteStmt* stmt, IntoClause* intoClause, const char* querySt OpFusion::clearForCplan((OpFusion*)psrc->opFusionObj, psrc); + if (psrc->opFusionObj != NULL) { + Assert(psrc->cplan == NULL); + (void)RevalidateCachedQuery(psrc); + } + if (psrc->opFusionObj != NULL) { OpFusion *opFusionObj = (OpFusion *)(psrc->opFusionObj); if (opFusionObj->IsGlobal()) { @@ -273,11 +287,7 @@ void ExecuteQuery(ExecuteStmt* stmt, IntoClause* intoClause, const char* querySt PortalDefineQuery(portal, NULL, query_string, entry->plansource->commandTag, plan_list, cplan); /* incase change shared plan in execute stage */ - bool needCopy = ENABLE_GPC && entry->plansource->gplan; - if (needCopy) { - plan_list = CopyLocalStmt(portal->cplan->stmt_list, u_sess->temp_mem_cxt, &tmpCxt); - portal->stmts = plan_list; - } + CopyPlanForGPCIfNecessary(entry->plansource, portal); /* * For CREATE TABLE ... AS EXECUTE, we must verify that the prepared @@ -450,6 +460,9 @@ static ParamListInfo EvaluateParams(CachedPlanSource* psrc, List* params, const prm->ptype = param_types[i]; prm->pflags = PARAM_FLAG_CONST; prm->value = ExecEvalExprSwitchContext(n, GetPerTupleExprContext(estate), &prm->isnull, NULL); + prm->tableOfIndexType = InvalidOid; + prm->tableOfIndex = NULL; + prm->isnestedtable = false; i++; } diff --git a/src/gausskernel/optimizer/commands/sequence/CMakeLists.txt b/src/gausskernel/optimizer/commands/sequence/CMakeLists.txt new file mode 100644 index 000000000..3ae97580b --- /dev/null +++ b/src/gausskernel/optimizer/commands/sequence/CMakeLists.txt @@ -0,0 +1,22 @@ +#This is the main CMAKE for build all components. +AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR} TGT_sequence_SRC) + +set(TGT_sequence_INC + ${PROJECT_OPENGS_DIR}/contrib/log_fdw + ${PROJECT_SRC_DIR}/include/libcomm + ${PROJECT_SRC_DIR}/include + ${PROJECT_SRC_DIR}/lib/gstrace + ${LZ4_INCLUDE_PATH} + ${LIBCGROUP_INCLUDE_PATH} + ${LIBORC_INCLUDE_PATH} + ${EVENT_INCLUDE_PATH} + ${PROTOBUF_INCLUDE_PATH} + ${ZLIB_INCLUDE_PATH} + ${LIBOPENSSL_INCLUDE_PATH} + ${LIBCURL_INCLUDE_PATH} +) + +set(sequence_DEF_OPTIONS ${MACRO_OPTIONS} -DOBS_SERVER) +set(sequence_COMPILE_OPTIONS ${OPTIMIZE_OPTIONS} ${OS_OPTIONS} ${PROTECT_OPTIONS} ${WARNING_OPTIONS} ${BIN_SECURE_OPTIONS} ${CHECK_OPTIONS}) +set(sequence_LINK_OPTIONS ${BIN_LINK_OPTIONS}) +add_static_objtarget(gausskernel_optimizer_commands_sequence TGT_sequence_SRC TGT_sequence_INC "${sequence_DEF_OPTIONS}" "${sequence_COMPILE_OPTIONS}" "${sequence_LINK_OPTIONS}") diff --git a/src/gausskernel/optimizer/commands/sequence/Makefile b/src/gausskernel/optimizer/commands/sequence/Makefile new file mode 100644 index 000000000..395f536d2 --- /dev/null +++ b/src/gausskernel/optimizer/commands/sequence/Makefile @@ -0,0 +1,22 @@ +#--------------------------------------------------------------------------------------- +# +# IDENTIFICATION +# src/gausskernel/optimizer/commands/sequence/Makefile +# +# --------------------------------------------------------------------------------------- + +subdir = src/gausskernel/optimizer/commands/sequence +top_builddir = ../../../../.. +include $(top_builddir)/src/Makefile.global + +ifneq "$(MAKECMDGOALS)" "clean" + ifneq "$(MAKECMDGOALS)" "distclean" + ifneq "$(shell which g++ |grep hutaf_llt |wc -l)" "1" + -include $(DEPEND) + endif + endif +endif + +OBJS = sequence.o sequence_util.o + +include $(top_srcdir)/src/gausskernel/common.mk diff --git a/src/gausskernel/optimizer/commands/sequence.cpp b/src/gausskernel/optimizer/commands/sequence/sequence.cpp similarity index 66% rename from src/gausskernel/optimizer/commands/sequence.cpp rename to src/gausskernel/optimizer/commands/sequence/sequence.cpp index e53031b63..65dcc0578 100644 --- a/src/gausskernel/optimizer/commands/sequence.cpp +++ b/src/gausskernel/optimizer/commands/sequence/sequence.cpp @@ -7,6 +7,7 @@ * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 2010-2012 Postgres-XC Development Group + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -40,6 +41,8 @@ #include "storage/proc.h" #include "storage/smgr/smgr.h" #include "storage/tcap.h" +#include "utils/int8.h" +#include "utils/int16.h" #include "utils/acl.h" #include "utils/builtins.h" #include "utils/lsyscache.h" @@ -63,85 +66,46 @@ #endif -/* - * We don't want to log each fetching of a value from a sequence, - * so we pre-log a few fetches in advance. In the event of - * crash we can lose (skip over) as many values as we pre-logged. - */ -#define SEQ_LOG_VALS 32 -#define GS_NUM_OF_BUCKETS 1024 - -/* - * The "special area" of a old version sequence's buffer page looks like this. - */ - -/* - * We store a SeqTable item for every sequence we have touched in the current - * session. This is needed to hold onto nextval/currval state. (We can't - * rely on the relcache, since it's only, well, a cache, and may decide to - * discard entries.) - * - * XXX We use linear search to find pre-existing SeqTable entries. This is - * good when only a small number of sequences are touched in a session, but - * would suck with many different sequences. Perhaps use a hashtable someday. - */ -typedef struct SeqTableData { - struct SeqTableData* next; /* link to next SeqTable object */ - Oid relid; /* pg_class OID of this sequence */ - Oid filenode; /* last seen relfilenode of this sequence */ - LocalTransactionId lxid; /* xact in which we last did a seq op */ - bool last_valid; /* do we have a valid "last" value? */ - bool is_cycled; - int64 last; /* value last returned by nextval */ - int64 cached; /* last value already cached for nextval */ - /* if last != cached, we have not used up all the cached values */ - int64 increment; /* copy of sequence's increment field */ - /* note that increment is zero until we first do read_seq_tuple() */ - int64 minval; - int64 maxval; - int64 startval; - int64 uuid; -} SeqTableData; - -typedef SeqTableData* SeqTable; - -static void fill_seq_with_data(Relation rel, HeapTuple tuple); -static int64 nextval_internal(Oid relid); -static Relation lock_and_open_seq(SeqTable seq); -static void init_sequence(Oid relid, SeqTable* p_elm, Relation* p_rel); -static Form_pg_sequence read_seq_tuple(SeqTable elm, Relation rel, Buffer* buf, HeapTuple seqtuple, GTM_UUID* uuid); +static int128 nextval_internal(Oid relid); +template +static T_Form read_seq_tuple(SeqTable elm, Relation rel, Buffer* buf, HeapTuple seqtuple, GTM_UUID* uuid); +template +static void DefineSequence(CreateSeqStmt* seq); +template +static void AlterSequence(const AlterSeqStmt* stmt); #ifdef PGXC -static void init_params(List* options, bool isInit, bool isUseLocalSeq, Form_pg_sequence newm, List** owned_by, +template +static void init_params(List* options, bool isInit, bool isUseLocalSeq, void* newm_p, List** owned_by, bool* is_restart, bool* need_seq_rewrite); #else -static void init_params( - List* options, bool isInit, bool isUseLocalSeq, Form_pg_sequence newm, List** owned_by, bool* need_seq_rewrite); +static void init_params(List* options, bool isInit, bool isUseLocalSeq, void* newm_p, List** owned_by, + bool* need_seq_rewrite); #endif -static void do_setval(Oid relid, int64 next, bool iscalled); +template +static void do_setval(Oid relid, int128 next, bool iscalled); static void process_owned_by(const Relation seqrel, List* owned_by); -static GTM_UUID get_uuid_from_tuple(const Form_pg_sequence seq, const Relation rel, const HeapTuple seqtuple); +template +static GTM_UUID get_uuid_from_tuple(const void* seq_p, const Relation rel, const HeapTuple seqtuple); extern Oid searchSeqidFromExpr(Node* cooked_default); extern bool check_contains_tbllike_in_multi_nodegroup(CreateStmt* stmt); static int64 get_uuid_from_uuids(List** uuids); -static uint32 RelidGetHash(Oid seq_relid); -static SeqTable GetGlobalSeqElm(Oid relid, GlobalSeqInfoHashBucket* bucket); static SeqTable InitGlobalSeqElm(Oid relid); -static SeqTable GetSessSeqElm(Oid relid); static int64 GetNextvalGlobal(SeqTable sess_elm, Relation seqrel); -static int64 GetNextvalLocal(SeqTable elm, Relation seqrel); -static void ResetvalGlobal(Oid relid); -static int64 FetchLogLocal(int64* next, int64* result, int64* last, int64 maxv, int64 minv, int64 fetch, - int64 log, int64 incby, int64 rescnt, bool is_cycled, int64 cache, Relation seqrel); +template +static int128 GetNextvalLocal(SeqTable elm, Relation seqrel); +template +static T_Int FetchLogLocal(T_Int* next, T_Int* result, T_Int* last, T_Int maxv, T_Int minv, T_Int fetch, + T_Int log, T_Int incby, T_Int rescnt, bool is_cycled, T_Int cache, Relation seqrel); #ifdef ENABLE_MULTIPLE_NODES -static void sendUpdateSequenceMsgToDn(char* dbname, char* schemaname, char* seqname, int64 last_value); +static void sendUpdateSequenceMsgToDn(List* dbname, List* schemaname, List* seqname, List* last_value); static void CheckUpdateSequenceMsgStatus(PGXCNodeHandle* exec_handle, const char* seqname, const int64 last_value); #endif -static void updateNextValForSequence(Buffer buf, Form_pg_sequence seq, HeapTupleData seqtuple, Relation seqrel, +static void updateNextValForSequence(Buffer buf, Form_pg_sequence seq, HeapTupleData seqtuple, Relation seqrel, int64 result); -static int64 GetNextvalResult(SeqTable sess_elm, Relation seqrel, Form_pg_sequence seq, HeapTupleData seqtuple, +static int64 GetNextvalResult(SeqTable sess_elm, Relation seqrel, Form_pg_sequence seq, HeapTupleData seqtuple, Buffer buf, int64* rangemax, SeqTable elm, GTM_UUID uuid); -static char* GetGlobalSeqNameForUpdate(Relation seqrel, char** dbname, char** schemaname); - +template +static char* Int8or16Out(T_Int num); /* * Sequence concurrent improvements * @@ -152,7 +116,7 @@ static char* GetGlobalSeqNameForUpdate(Relation seqrel, char** dbname, char** sc * Intro: GaussDB proc share variable that indicates that only current DN is allowed * to connect to GTM. */ -#define SEQUENCE_GTM_RETRY_SLEEPING_TIME 10000L +const long SEQUENCE_GTM_RETRY_SLEEPING_TIME = 10000L; static pthread_mutex_t gtm_conn_lock; /* @@ -275,7 +239,8 @@ char* gen_hybirdmsg_for_CreateSeqStmt(CreateSeqStmt* stmt, const char* queryStri static bool TypenameIsSerial(const char* typname) { if (strcmp(typname, "smallserial") == 0 || strcmp(typname, "serial2") == 0 || strcmp(typname, "serial") == 0 || - strcmp(typname, "serial4") == 0 || strcmp(typname, "bigserial") == 0 || strcmp(typname, "serial8") == 0) + strcmp(typname, "serial4") == 0 || strcmp(typname, "bigserial") == 0 || strcmp(typname, "serial8") == 0 || + strcmp(typname, "largeserial") == 0 || strcmp(typname, "serial16") == 0) return true; return false; @@ -414,53 +379,31 @@ void InitGlobalSeq() } } -static uint32 RelidGetHash(Oid seq_relid) -{ - return ((uint32)seq_relid % GS_NUM_OF_BUCKETS); -} - -/* - * Get sequence elem from bucket - */ -static SeqTable GetGlobalSeqElm(Oid relid, GlobalSeqInfoHashBucket* bucket) -{ - DListCell* elem = NULL; - SeqTable currseq = NULL; - - /* Search sequence from bucket . */ - dlist_foreach_cell(elem, bucket->shb_list) - { - currseq = (SeqTable)lfirst(elem); - if (currseq->relid == relid) { - break; - } - } - - if (elem == NULL) { - return NULL; - } - - return currseq; -} - static SeqTable InitGlobalSeqElm(Oid relid) { SeqTable elm = NULL; elm = (SeqTable)MemoryContextAlloc( INSTANCE_GET_MEM_CXT_GROUP(MEMORY_CONTEXT_OPTIMIZER), sizeof(SeqTableData)); + errno_t rc = EOK; + rc = memset_s(elm, sizeof(SeqTableData), 0, sizeof(SeqTableData)); + securec_check(rc, "\0", "\0"); elm->relid = relid; - elm->filenode = InvalidOid; - elm->lxid = InvalidLocalTransactionId; - elm->last_valid = false; - elm->last = elm->cached = elm->increment = 0; - elm->minval = 0; - elm->maxval = 0; - elm->startval = 0; - elm->uuid = INVALIDSEQUUID; - return elm; } +template +static void AssignInt(T_Int* elem, int128 value) +{ + if (large) { + int128 holder = (int128)value; + errno_t rc = memcpy_s(elem, sizeof(int128), &holder, sizeof(int128)); + securec_check(rc, "\0", "\0"); + } else { + /* known that it is safe to truncate */ + *elem = (int64)value; + } +} + static int64 GetNextvalGlobal(SeqTable sess_elm, Relation seqrel) { SeqTable elm = NULL; @@ -475,7 +418,7 @@ static int64 GetNextvalGlobal(SeqTable sess_elm, Relation seqrel) int64 fetch; int64 last = 0; int64 result; - int64 sesscache; + int64 sesscache; int64 range; int64 rangemax; uint32 hash = 0; @@ -485,7 +428,7 @@ static int64 GetNextvalGlobal(SeqTable sess_elm, Relation seqrel) bucket = &g_instance.global_seq[hash]; (void)LWLockAcquire(GetMainLWLockByIndex(bucket->lock_id), LW_EXCLUSIVE); - + elm = GetGlobalSeqElm(sess_elm->relid, bucket); if (elm == NULL) { @@ -499,30 +442,30 @@ static int64 GetNextvalGlobal(SeqTable sess_elm, Relation seqrel) /* If sequence relation is changed */ if (seqrel->rd_rel->relfilenode != elm->filenode) { elm->filenode = seqrel->rd_rel->relfilenode; - elm->cached = elm->last; + AssignInt(&(elm->cached), elm->last); } - /* If sess_elm first apply from global sequence, * should update sess_elm infomation */ if (!sess_elm->last_valid) { - sess_elm->increment = elm->increment; - sess_elm->minval = elm->minval; - sess_elm->maxval = elm->maxval; - sess_elm->startval = elm->startval; + AssignInt(&(sess_elm->increment), (int128)elm->increment); + AssignInt(&(sess_elm->minval), (int128)elm->minval); + AssignInt(&(sess_elm->maxval), (int128)elm->maxval); + AssignInt(&(sess_elm->startval), (int128)elm->startval); sess_elm->is_cycled = elm->is_cycled; sess_elm->uuid = elm->uuid; } if (elm->last != elm->cached) { result = elm->last + elm->increment; - sess_elm->last = result; + AssignInt(&(sess_elm->last), (int128)result); /* if session cache value <= current cached value */ if (elm->last + sesscache * elm->increment <= elm->cached) { - elm->last += sesscache * elm->increment; - sess_elm->cached = elm->last; + AssignInt(&(elm->last), (int128)(elm->last + sesscache * elm->increment)); + AssignInt(&(sess_elm->cached), elm->last); } else { - sess_elm->cached = elm->last = elm->cached; + AssignInt(&(elm->last), (int128)elm->cached); + AssignInt(&(sess_elm->cached), (int128)elm->last); } sess_elm->last_valid = true; LWLockRelease(GetMainLWLockByIndex(bucket->lock_id)); @@ -530,17 +473,17 @@ static int64 GetNextvalGlobal(SeqTable sess_elm, Relation seqrel) } /* lock page' buffer and read tuple */ - seq = read_seq_tuple(elm, seqrel, &buf, &seqtuple, &uuid); + seq = read_seq_tuple(elm, seqrel, &buf, &seqtuple, &uuid); /* update session sequcence info */ - sess_elm->increment = elm->increment; - sess_elm->minval = elm->minval; - sess_elm->maxval = elm->maxval; - sess_elm->startval = elm->startval; + AssignInt(&(sess_elm->increment), (int128)elm->increment); + AssignInt(&(sess_elm->minval), (int128)elm->minval); + AssignInt(&(sess_elm->maxval), (int128)elm->maxval); + AssignInt(&(sess_elm->startval), (int128)elm->startval); sess_elm->is_cycled = elm->is_cycled; sess_elm->uuid = elm->uuid; page = BufferGetPage(buf); - + /* * Above, we still use the page as a locking mechanism to handle * concurrency @@ -554,24 +497,26 @@ static int64 GetNextvalGlobal(SeqTable sess_elm, Relation seqrel) /* Update the on-disk data */ seq->last_value = result; /* disable the unreliable last_value */ seq->is_called = true; - + if (sesscache < range) { int64 tmpcached; /* save info in session cache */ - sess_elm->last = result; + AssignInt(&(sess_elm->last), (int128)result); tmpcached = result + (sesscache - 1) * sess_elm->increment; - sess_elm->cached = (tmpcached <= rangemax) ? tmpcached : rangemax; + tmpcached = (tmpcached <= rangemax) ? tmpcached : rangemax; + AssignInt(&(sess_elm->cached), (int128)tmpcached); sess_elm->last_valid = true; /* save info in global cache */ - elm->last = sess_elm->cached; - elm->cached = rangemax; /* last fetched number */ + AssignInt(&(elm->last), (int128)sess_elm->cached); + AssignInt(&(elm->cached), (int128)rangemax); /* last fetched number */ } else { - /* save info in session cache */ - sess_elm->last = result; /* last returned number */ - sess_elm->cached = rangemax; /* last fetched number */ + /* save info in session cache */ + AssignInt(&(sess_elm->last), (int128)result); /* last returned number */ + AssignInt(&(sess_elm->cached), (int128)rangemax); /* last fetched number */ sess_elm->last_valid = true; /* save info in global cache */ - elm->last = elm->cached = sess_elm->cached; + AssignInt(&(elm->cached), (int128)sess_elm->cached); + AssignInt(&(elm->last), (int128)elm->cached); } elm->last_valid = true; @@ -612,37 +557,39 @@ static int64 GetNextvalGlobal(SeqTable sess_elm, Relation seqrel) return result; } - -static int64 GetNextvalLocal(SeqTable elm, Relation seqrel) +template +static int128 GetNextvalLocal(SeqTable elm, Relation seqrel) { Buffer buf; Page page; HeapTupleData seqtuple; - Form_pg_sequence seq; + T_Form seq; GTM_UUID uuid; - int64 incby = 0; - int64 maxv = 0; - int64 minv = 0; - int64 cache; - int64 log; - int64 fetch; - int64 last = 0; - int64 result; - int64 next = 0; - int64 rescnt = 0; + T_Int incby = 0; + T_Int maxv = 0; + T_Int minv = 0; + T_Int cache = 0; + T_Int log = 0; + T_Int fetch = 0; + T_Int last = 0; + T_Int result; + T_Int next = 0; + T_Int rescnt = 0; bool logit = false; /* lock page' buffer and read tuple */ - seq = read_seq_tuple(elm, seqrel, &buf, &seqtuple, &uuid); + seq = read_seq_tuple(elm, seqrel, &buf, &seqtuple, &uuid); page = BufferGetPage(buf); - last = next = result = seq->last_value; - incby = seq->increment_by; - maxv = seq->max_value; - minv = seq->min_value; - - fetch = cache = seq->cache_value; - log = seq->log_cnt; + AssignInt(&last, (int128)seq->last_value); + AssignInt(&next, (int128)seq->last_value); + AssignInt(&result, (int128)seq->last_value); + AssignInt(&incby, (int128)seq->increment_by); + AssignInt(&maxv, (int128)seq->max_value); + AssignInt(&minv, (int128)seq->min_value); + AssignInt(&fetch, (int128)seq->cache_value); + AssignInt(&cache, (int128)seq->cache_value); + AssignInt(&log, (int128)seq->log_cnt); if (!seq->is_called) { rescnt++; /* return last_value if not is_called */ @@ -663,11 +610,11 @@ static int64 GetNextvalLocal(SeqTable elm, Relation seqrel) } } - log = FetchLogLocal(&next, &result, &last, maxv, minv, fetch, log, incby, + log = FetchLogLocal(&next, &result, &last, maxv, minv, fetch, log, incby, rescnt, seq->is_cycled, cache, seqrel); /* Save info in local cache for temporary sequences */ - elm->last = result; /* last returned number */ - elm->cached = last; /* last fetched number */ + AssignInt(&(elm->last), (int128)result); /* last returned number */ + AssignInt(&(elm->cached), (int128)last); /* last fetched number */ elm->last_valid = true; /* ready to change the on-disk (or really, in-buffer) tuple */ @@ -687,7 +634,7 @@ static int64 GetNextvalLocal(SeqTable elm, Relation seqrel) * sequence values if we crash. */ /* set values that will be saved in xlog */ - seq->last_value = next; + AssignInt(&(seq->last_value), (int128)next); seq->is_called = true; seq->log_cnt = 0; @@ -704,7 +651,7 @@ static int64 GetNextvalLocal(SeqTable elm, Relation seqrel) } /* Now update sequence tuple to the intended final state */ - seq->last_value = last; /* last fetched number */ + AssignInt(&(seq->last_value), (int128)last); /* last fetched number */ seq->is_called = true; seq->log_cnt = log; /* how much is logged */ @@ -715,24 +662,35 @@ static int64 GetNextvalLocal(SeqTable elm, Relation seqrel) return result; } +template +static bool FetchNOverMaxBound(T_Int maxv, T_Int next, T_Int incby) +{ + return (maxv >= 0 && next > maxv - incby) || (maxv < 0 && next + incby > maxv); +} + +template +static bool FetchNOverMinBound(T_Int minv, T_Int next, T_Int incby) +{ + return (minv < 0 && next < minv - incby) || (minv >= 0 && next + incby < minv); +} + /* * Try to fetch cache [+ log ] numbers */ -static int64 FetchLogLocal(int64* next, int64* result, int64* last, int64 maxv, int64 minv, int64 fetch, - int64 log, int64 incby, int64 rescnt, bool is_cycled, int64 cache, Relation seqrel) +template +static T_Int FetchLogLocal(T_Int* next, T_Int* result, T_Int* last, T_Int maxv, T_Int minv, T_Int fetch, + T_Int log, T_Int incby, T_Int rescnt, bool is_cycled, T_Int cache, Relation seqrel) { while (fetch) { /* Result has been checked and received from GTM */ if (incby > 0) { /* ascending sequence */ - if ((maxv >= 0 && *next > maxv - incby) || (maxv < 0 && *next + incby > maxv)) { - if (rescnt > 0) + if (FetchNOverMaxBound(maxv, *next, incby)) { + if (rescnt > 0) { break; /* stop fetching */ + } if (!is_cycled) { - char tmp_buf[100]; - - errno_t rc = snprintf_s(tmp_buf, sizeof(tmp_buf), sizeof(tmp_buf) - 1, INT64_FORMAT, maxv); - securec_check_ss(rc, "", ""); + char* tmp_buf = Int8or16Out(maxv); ereport(ERROR, (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("nextval: reached maximum value of sequence \"%s\" (%s)", @@ -745,14 +703,13 @@ static int64 FetchLogLocal(int64* next, int64* result, int64* last, int64 maxv, } } else { /* descending sequence */ - if ((minv < 0 && *next < minv - incby) || (minv >= 0 && *next + incby < minv)) { - if (rescnt > 0) + if (FetchNOverMinBound(minv, *next, incby)) { + if (rescnt > 0) { break; /* stop fetching */ + } if (!is_cycled) { - char tmp_buf[100]; - - int iRet = snprintf_s(tmp_buf, sizeof(tmp_buf), sizeof(tmp_buf) - 1, INT64_FORMAT, minv); - securec_check_ss(iRet, "\0", "\0"); + char* tmp_buf = large ? DatumGetCString(DirectFunctionCall1(int16out, Int128GetDatum(minv))) : + DatumGetCString(DirectFunctionCall1(int8out, minv)); ereport(ERROR, (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("nextval: reached minimum value of sequence \"%s\" (%s)", @@ -764,7 +721,7 @@ static int64 FetchLogLocal(int64* next, int64* result, int64* last, int64 maxv, *next += incby; } } - + fetch--; if (rescnt < cache) { log--; @@ -778,6 +735,13 @@ static int64 FetchLogLocal(int64* next, int64* result, int64* last, int64 maxv, *result = *next; /* it's what to return */ } } + /* + * If cache is set to a large value, it will cycle here for a long time. + * So provide a way to break this loop. + */ + if (t_thrd.int_cxt.ProcDiePending || t_thrd.int_cxt.QueryCancelPending) { + break; + } } log -= fetch; /* adjust for any unfetched numbers */ Assert(log >= 0); @@ -785,13 +749,60 @@ static int64 FetchLogLocal(int64* next, int64* result, int64* last, int64 maxv, return log; } +template +static Datum GetIntDefVal(TypeName* name, T value) +{ + if (large) { + *name = makeTypeNameFromOid(INT16OID, -1); + return Int128GetDatum(value); + } else { + *name = makeTypeNameFromOid(INT8OID, -1); + return Int64GetDatumFast(value); + } +} + +void DefineSequenceWrapper(CreateSeqStmt* seq) +{ + if (seq->is_large) { + DefineSequence(seq); + } else { + DefineSequence(seq); + } +} + +template +static Datum Int8or16GetDatum(T_Int value) +{ + if (large) { + return Int128GetDatum(value); + } else { + return Int64GetDatumFast(value); + } +} + +template +static int CreateSequenceWithUUIDGTMWrapper(T_FormData newm, int64 uuid); + +template<> +int CreateSequenceWithUUIDGTMWrapper(FormData_pg_sequence newm, int64 uuid) +{ + return CreateSequenceWithUUIDGTM(newm, uuid); +} + +template<> +int CreateSequenceWithUUIDGTMWrapper(FormData_pg_large_sequence newm, int64 uuid) +{ + return 0; /* large sequence is ignored by distribution logic */ +} + /* * DefineSequence * Creates a new sequence relation */ -void DefineSequence(CreateSeqStmt* seq) +template +static void DefineSequence(CreateSeqStmt* seq) { - FormData_pg_sequence newm; + T_FormData newm; List* owned_by = NIL; CreateStmt* stmt = makeNode(CreateStmt); Oid seqoid; @@ -847,17 +858,29 @@ void DefineSequence(CreateSeqStmt* seq) ereport(ERROR, (errcode(ERRCODE_DATA_CORRUPTED), errmsg("Invaild UUID for CREATE SEQUENCE %s.", seq->sequence->relname))); - /* Check and set all option values */ + /* Check and set all option values */ #ifdef PGXC - init_params(seq->options, true, isUseLocalSeq, &newm, &owned_by, &is_restart, &need_seq_rewrite); + if (large) { + init_params(seq->options, true, isUseLocalSeq, &newm, &owned_by, + &is_restart, &need_seq_rewrite); + } else { + init_params(seq->options, true, isUseLocalSeq, &newm, &owned_by, + &is_restart, &need_seq_rewrite); + } #else - init_params(seq->options, true, isUseLocalSeq, &newm, &owned_by, &need_seq_rewrite); + if (large) { + init_params(seq->options, true, isUseLocalSeq, &newm, &owned_by, + &need_seq_rewrite); + } else { + init_params(seq->options, true, isUseLocalSeq, &newm, &owned_by, + &need_seq_rewrite); + } #endif - /* * Create relation (and fill value[] and null[] for the tuple) */ stmt->tableElts = NIL; + Oid intTypeOid = large ? INT16OID : INT8OID; for (i = SEQ_COL_FIRSTCOL; i <= SEQ_COL_LASTCOL; i++) { ColumnDef* coldef = makeNode(ColumnDef); @@ -884,46 +907,46 @@ void DefineSequence(CreateSeqStmt* seq) value[i - 1] = NameGetDatum(&name); break; case SEQ_COL_LASTVAL: - coldef->typname = makeTypeNameFromOid(INT8OID, -1); + coldef->typname = makeTypeNameFromOid(intTypeOid, -1); coldef->colname = "last_value"; - value[i - 1] = Int64GetDatumFast(newm.last_value); + value[i - 1] = Int8or16GetDatum(newm.last_value); break; case SEQ_COL_STARTVAL: - coldef->typname = makeTypeNameFromOid(INT8OID, -1); + coldef->typname = makeTypeNameFromOid(intTypeOid, -1); coldef->colname = "start_value"; - value[i - 1] = Int64GetDatumFast(newm.start_value); + value[i - 1] = Int8or16GetDatum(newm.start_value); #ifdef PGXC /* PGXC_COORD */ start_value = newm.start_value; #endif break; case SEQ_COL_INCBY: - coldef->typname = makeTypeNameFromOid(INT8OID, -1); + coldef->typname = makeTypeNameFromOid(intTypeOid, -1); coldef->colname = "increment_by"; - value[i - 1] = Int64GetDatumFast(newm.increment_by); + value[i - 1] = Int8or16GetDatum(newm.increment_by); #ifdef PGXC /* PGXC_COORD */ increment = newm.increment_by; #endif break; case SEQ_COL_MAXVALUE: - coldef->typname = makeTypeNameFromOid(INT8OID, -1); + coldef->typname = makeTypeNameFromOid(intTypeOid, -1); coldef->colname = "max_value"; - value[i - 1] = Int64GetDatumFast(newm.max_value); + value[i - 1] = Int8or16GetDatum(newm.max_value); #ifdef PGXC /* PGXC_COORD */ max_value = newm.max_value; #endif break; case SEQ_COL_MINVALUE: - coldef->typname = makeTypeNameFromOid(INT8OID, -1); + coldef->typname = makeTypeNameFromOid(intTypeOid, -1); coldef->colname = "min_value"; - value[i - 1] = Int64GetDatumFast(newm.min_value); + value[i - 1] = Int8or16GetDatum(newm.min_value); #ifdef PGXC /* PGXC_COORD */ min_value = newm.min_value; #endif break; case SEQ_COL_CACHE: - coldef->typname = makeTypeNameFromOid(INT8OID, -1); + coldef->typname = makeTypeNameFromOid(intTypeOid, -1); coldef->colname = "cache_value"; - value[i - 1] = Int64GetDatumFast(newm.cache_value); + value[i - 1] = Int8or16GetDatum(newm.cache_value); break; case SEQ_COL_LOG: coldef->typname = makeTypeNameFromOid(INT8OID, -1); @@ -964,15 +987,15 @@ void DefineSequence(CreateSeqStmt* seq) stmt->oncommit = ONCOMMIT_NOOP; stmt->tablespacename = NULL; stmt->if_not_exists = false; - - seqoid = DefineRelation(stmt, RELKIND_SEQUENCE, seq->ownerId); + char rel_kind = large ? RELKIND_LARGE_SEQUENCE : RELKIND_SEQUENCE; + seqoid = DefineRelation(stmt, rel_kind, seq->ownerId); Assert(seqoid != InvalidOid); rel = heap_open(seqoid, AccessExclusiveLock); tupDesc = RelationGetDescr(rel); /* now initialize the sequence's data */ - tuple = (HeapTuple)heap_form_tuple(tupDesc, value, null); + tuple = (HeapTuple)heap_form_tuple(tupDesc, value, null); fill_seq_with_data(rel, tuple); /* process OWNED BY if given */ @@ -993,12 +1016,11 @@ void DefineSequence(CreateSeqStmt* seq) int seqerrcode = ERRCODE_SQL_STATEMENT_NOT_YET_COMPLETE; /* We also need to create it on the GTM */ - if ((status = CreateSequenceWithUUIDGTM(newm, seq->uuid)) < 0) { + if ((status = CreateSequenceWithUUIDGTMWrapper(newm, seq->uuid)) < 0) { if (status == GTM_RESULT_COMM_ERROR) seqerrcode = ERRCODE_CONNECTION_FAILURE; ereport(ERROR, (errcode(seqerrcode), errmsg("GTM error, could not create sequence"))); } - /* Define a callback to drop sequence on GTM in case transaction fails */ register_sequence_cb(seq->uuid, GTM_CREATE_SEQ); } @@ -1036,7 +1058,7 @@ void ResetSequence(Oid seq_relid) */ init_sequence(seq_relid, &elm, &seq_rel); GTM_UUID uuid; - (void)read_seq_tuple(elm, seq_rel, &buf, &seqtuple, &uuid); + (void)read_seq_tuple(elm, seq_rel, &buf, &seqtuple, &uuid); /* * Copy the existing sequence tuple. @@ -1068,106 +1090,18 @@ void ResetSequence(Oid seq_relid) /* Clear local cache so that we don't think we have cached numbers */ /* Note that we do not change the currval() state */ - elm->cached = elm->last; + AssignInt(&(elm->cached), elm->last); relation_close(seq_rel, NoLock); } -/* - * Initialize a sequence's relation with the specified tuple as content - */ -static void fill_seq_with_data(Relation rel, HeapTuple tuple) +void AlterSequenceWrapper(AlterSeqStmt* stmt) { - Buffer buf; - Page page; - sequence_magic* sm = NULL; - HeapPageHeader phdr; - - /* Initialize first page of relation with special magic number */ - buf = ReadBuffer(rel, P_NEW); - Assert(BufferGetBlockNumber(buf) == 0); - - page = BufferGetPage(buf); - - PageInit(page, BufferGetPageSize(buf), sizeof(sequence_magic), true); - sm = (sequence_magic*)PageGetSpecialPointer(page); - sm->magic = SEQ_MAGIC; - - phdr = (HeapPageHeader)page; - phdr->pd_xid_base = u_sess->utils_cxt.RecentXmin - FirstNormalTransactionId; - phdr->pd_multi_base = 0; - - /* hack: ensure heap_insert will insert on the just-created page */ - RelationSetTargetBlock(rel, 0); - - /* Now insert sequence tuple */ - (void)simple_heap_insert(rel, tuple); - - Assert(ItemPointerGetOffsetNumber(&(tuple->t_self)) == FirstOffsetNumber); - - /* - * Two special hacks here: - * - * 1. Since VACUUM does not process sequences, we have to force the tuple - * to have xmin = FrozenTransactionId now. Otherwise it would become - * invisible to SELECTs after 2G transactions. It is okay to do this - * because if the current transaction aborts, no other xact will ever - * examine the sequence tuple anyway. - * - * 2. Even though heap_insert emitted a WAL log record, we have to emit an - * XLOG_SEQ_LOG record too, since (a) the heap_insert record will not have - * the right xmin, and (b) REDO of the heap_insert record would re-init - * page and sequence magic number would be lost. This means two log - * records instead of one :-( - */ - LockBuffer(buf, BUFFER_LOCK_EXCLUSIVE); - - START_CRIT_SECTION(); - - { - /* - * Note that the "tuple" structure is still just a local tuple record - * created by heap_form_tuple; its t_data pointer doesn't point at the - * disk buffer. To scribble on the disk buffer we need to fetch the - * item pointer. But do the same to the local tuple, since that will - * be the source for the WAL log record, below. - */ - ItemId itemId; - Item item; - - itemId = PageGetItemId((Page)page, FirstOffsetNumber); - item = PageGetItem((Page)page, itemId); - - HeapTupleHeaderSetXmin(page, (HeapTupleHeader)item, FrozenTransactionId); - HeapTupleHeaderSetXminFrozen((HeapTupleHeader)item); - - HeapTupleHeaderSetXmin(page, tuple->t_data, FrozenTransactionId); - HeapTupleHeaderSetXminFrozen(tuple->t_data); + if (stmt->is_large) { + AlterSequence(stmt); + } else { + AlterSequence(stmt); } - - MarkBufferDirty(buf); - - /* XLOG stuff */ - if (RelationNeedsWAL(rel)) { - xl_seq_rec xlrec; - XLogRecPtr recptr; - tuple->t_data->t_ctid = tuple->t_self; - RelFileNodeRelCopy(xlrec.node, rel->rd_node); - - XLogBeginInsert(); - XLogRegisterBuffer(0, buf, REGBUF_WILL_INIT); - - XLogRegisterData((char*)&xlrec, sizeof(xl_seq_rec)); - XLogRegisterData((char*)tuple->t_data, tuple->t_len); - - recptr = XLogInsert(RM_SEQ_ID, XLOG_SEQ_LOG, false, rel->rd_node.bucketNode); - - PageSetLSN(page, recptr); - } - - END_CRIT_SECTION(); - - UnlockReleaseBuffer(buf); } /* @@ -1177,7 +1111,8 @@ static void fill_seq_with_data(Relation rel, HeapTuple tuple) * For now we only support alter sequence owned_by, owner and maxvalue. * Alter sequence maxvalue needs update info in GTM. */ -void AlterSequence(AlterSeqStmt* stmt) +template +static void AlterSequence(const AlterSeqStmt* stmt) { Oid relid; SeqTable elm = NULL; @@ -1185,14 +1120,14 @@ void AlterSequence(AlterSeqStmt* stmt) Buffer buf; HeapTupleData seqtuple; HeapTuple tuple = NULL; - Form_pg_sequence newm = NULL; + T_Form newm = NULL; List* owned_by = NIL; bool isUseLocalSeq = false; #ifdef PGXC bool is_restart = false; #endif bool need_seq_rewrite = false; - + /* Open and lock sequence. */ relid = RangeVarGetRelid(stmt->sequence, ShareRowExclusiveLock, stmt->missing_ok); if (relid == InvalidOid) { @@ -1203,6 +1138,16 @@ void AlterSequence(AlterSeqStmt* stmt) TrForbidAccessRbObject(RelationRelationId, relid, stmt->sequence->relname); init_sequence(relid, &elm, &seqrel); + char relkind = RelationGetRelkind(seqrel); + if (large && relkind == RELKIND_SEQUENCE) { + ereport(ERROR, ( + errcode(ERRCODE_WRONG_OBJECT_TYPE), + errmsg("%s is not a large sequence, please use ALTER SEQUENCE instead.", stmt->sequence->relname))); + } else if (!large && relkind == RELKIND_LARGE_SEQUENCE) { + ereport(ERROR, ( + errcode(ERRCODE_WRONG_OBJECT_TYPE), + errmsg("%s is not a sequence, please use ALTER LARGE SEQUENCE instead.", stmt->sequence->relname))); + } /* Must be owner or have alter privilege of the sequence. */ AclResult aclresult = pg_class_aclcheck(relid, GetUserId(), ACL_ALTER); @@ -1215,21 +1160,22 @@ void AlterSequence(AlterSeqStmt* stmt) /* lock page' buffer and read tuple into new sequence structure */ GTM_UUID uuid; - (void)read_seq_tuple(elm, seqrel, &buf, &seqtuple, &uuid); + (void)read_seq_tuple(elm, seqrel, &buf, &seqtuple, &uuid); /* Copy the existing sequence tuple. */ tuple = (HeapTuple)tableam_tops_copy_tuple(&seqtuple); UnlockReleaseBuffer(buf); - newm = (Form_pg_sequence)GETSTRUCT(tuple); + newm = (T_Form)GETSTRUCT(tuple); /* Check and set new values */ #ifdef PGXC - init_params(stmt->options, false, isUseLocalSeq, newm, &owned_by, &is_restart, &need_seq_rewrite); + init_params(stmt->options, false, isUseLocalSeq, newm, &owned_by, + &is_restart, &need_seq_rewrite); #else - init_params(stmt->options, false, isUseLocalSeq, newm, &owned_by, &need_seq_rewrite); + init_params(stmt->options, false, isUseLocalSeq, newm, &owned_by, + &need_seq_rewrite); #endif - #ifdef PGXC /* PGXC_COORD */ /* * Remote Coordinator is in charge of alter sequence in GTM. @@ -1243,14 +1189,14 @@ void AlterSequence(AlterSeqStmt* stmt) int seqerrcode = ERRCODE_SQL_STATEMENT_NOT_YET_COMPLETE; /* We also need to alter sequence on the GTM */ - if ((status = AlterSequenceGTM(newm->uuid, - newm->increment_by, - newm->min_value, - newm->max_value, - newm->start_value, - newm->last_value, - newm->is_cycled, - is_restart)) < 0) { + if ((status = AlterSequenceGTM((int64)newm->uuid, + (int64)newm->increment_by, + (int64)newm->min_value, + (int64)newm->max_value, + (int64)newm->start_value, + (int64)newm->last_value, + newm->is_cycled, + is_restart)) < 0) { if (status == GTM_RESULT_COMM_ERROR) { seqerrcode = ERRCODE_CONNECTION_FAILURE; } @@ -1261,12 +1207,12 @@ void AlterSequence(AlterSeqStmt* stmt) /* Clear local cache so that we don't think we have cached numbers */ /* Note that we do not change the currval() state */ - elm->cached = elm->last; + AssignInt(&(elm->cached), (int128)elm->last); if (!isUseLocalSeq) { ResetvalGlobal(relid); } - + /* If needed, rewrite the sequence relation itself */ if (need_seq_rewrite) { /* @@ -1342,22 +1288,25 @@ Datum nextval_oid(PG_FUNCTION_ARGS) { Oid relid = PG_GETARG_OID(0); - PG_RETURN_INT64(nextval_internal(relid)); + int128 result = nextval_internal(relid); + + PG_RETURN_NUMERIC(convert_int128_to_numeric(result, 0)); } -static int64 nextval_internal(Oid relid) +static int128 nextval_internal(Oid relid) { SeqTable elm = NULL; - Relation seqrel; - int64 result; + Relation seqrel; + int128 result; bool is_use_local_seq = false; - + if (t_thrd.postmaster_cxt.HaShmData->current_mode == STANDBY_MODE) { ereport(ERROR, (errmsg("Standby do not support nextval, please do it in primary!"))); } /* open and lock sequence */ init_sequence(relid, &elm, &seqrel); + char relkind = RelationGetRelkind(seqrel); TrForbidAccessRbObject(RelationRelationId, relid, RelationGetRelationName(seqrel)); @@ -1377,14 +1326,19 @@ static int64 nextval_internal(Oid relid) Assert(elm->last_valid); Assert(elm->increment != 0); elm->last += elm->increment; + char* buf_last = DatumGetCString(DirectFunctionCall1(int16out, Int128GetDatum(elm->last))); + char* buf_cached = DatumGetCString(DirectFunctionCall1(int16out, Int128GetDatum(elm->cached))); ereport(DEBUG2, (errmodule(MOD_SEQ), - (errmsg("Sequence %s retrun ID %ld from cache, the cached is %ld, ", + (errmsg("Sequence %s retrun ID %s from cache, the cached is %s, ", RelationGetRelationName(seqrel), - elm->last, - elm->cached)))); - + buf_last, + buf_cached)))); + + pfree_ext(buf_last); + pfree_ext(buf_cached); + relation_close(seqrel, NoLock); u_sess->cmd_cxt.last_used_seq = elm; return elm->last; @@ -1394,14 +1348,20 @@ static int64 nextval_internal(Oid relid) if (!is_use_local_seq) { result = GetNextvalGlobal(elm, seqrel); } else { - result = GetNextvalLocal(elm, seqrel); + if (relkind == RELKIND_SEQUENCE) { + result = GetNextvalLocal(elm, seqrel); + } else { /* can only be large sequence. init_sequence rules out other cases */ + result = GetNextvalLocal(elm, seqrel); + } } u_sess->cmd_cxt.last_used_seq = elm; + char* buf = DatumGetCString(DirectFunctionCall1(int16out, Int128GetDatum(result))); ereport(DEBUG2, (errmodule(MOD_SEQ), - (errmsg("Sequence %s retrun ID from nextval %ld, ", RelationGetRelationName(seqrel), result)))); - + (errmsg("Sequence %s retrun ID from nextval %s, ", RelationGetRelationName(seqrel), buf)))); + pfree_ext(buf); + relation_close(seqrel, NoLock); return result; @@ -1410,7 +1370,7 @@ static int64 nextval_internal(Oid relid) Datum currval_oid(PG_FUNCTION_ARGS) { Oid relid = PG_GETARG_OID(0); - int64 result; + int128 result; SeqTable elm = NULL; Relation seqrel; @@ -1438,15 +1398,15 @@ Datum currval_oid(PG_FUNCTION_ARGS) result = elm->last; relation_close(seqrel, NoLock); - PG_RETURN_INT64(result); + PG_RETURN_NUMERIC(convert_int128_to_numeric(result, 0)); } Datum lastval(PG_FUNCTION_ARGS) { Relation seqrel; - int64 result; + int128 result; - if (!IS_SINGLE_NODE && !g_instance.attr.attr_common.lastval_supported && + if (!IS_SINGLE_NODE && !g_instance.attr.attr_common.lastval_supported && !u_sess->attr.attr_common.enable_beta_features) { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("lastval function is not supported"))); } @@ -1474,7 +1434,7 @@ Datum lastval(PG_FUNCTION_ARGS) result = u_sess->cmd_cxt.last_used_seq->last; relation_close(seqrel, NoLock); - PG_RETURN_INT64(result); + PG_RETURN_NUMERIC(convert_int128_to_numeric(result, 0)); } /* @@ -1490,14 +1450,14 @@ Datum lastval(PG_FUNCTION_ARGS) * it is the only way to clear the is_called flag in an existing * sequence. */ -static void do_setval(Oid relid, int64 next, bool iscalled) +template +static void do_setval(Oid relid, int128 next, bool iscalled) { SeqTable elm = NULL; Relation seqrel; Buffer buf; HeapTupleData seqtuple; - Form_pg_sequence seq; - int rc = 0; + T_Form seq; bool isUseLocalSeq = false; #ifdef PGXC bool is_temp = false; @@ -1528,17 +1488,12 @@ static void do_setval(Oid relid, int64 next, bool iscalled) /* lock page' buffer and read tuple */ GTM_UUID uuid; - seq = read_seq_tuple(elm, seqrel, &buf, &seqtuple, &uuid); + seq = read_seq_tuple(elm, seqrel, &buf, &seqtuple, &uuid); if ((next < seq->min_value) || (next > seq->max_value)) { - char bufv[100], bufm[100], bufx[100]; - - rc = snprintf_s(bufv, sizeof(bufv), sizeof(bufv) - 1, INT64_FORMAT, next); - securec_check_ss(rc, "\0", "\0"); - rc = snprintf_s(bufm, sizeof(bufm), sizeof(bufm) - 1, INT64_FORMAT, seq->min_value); - securec_check_ss(rc, "\0", "\0"); - rc = snprintf_s(bufx, sizeof(bufx), sizeof(bufx) - 1, INT64_FORMAT, seq->max_value); - securec_check_ss(rc, "\0", "\0"); + char* bufv = DatumGetCString(DirectFunctionCall1(int16out, Int128GetDatum(next))); + char* bufm = DatumGetCString(DirectFunctionCall1(int16out, Int128GetDatum(seq->min_value))); + char* bufx = DatumGetCString(DirectFunctionCall1(int16out, Int128GetDatum(seq->max_value))); ereport(ERROR, (errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE), errmsg("setval: value %s is out of bounds for sequence \"%s\" (%s..%s)", @@ -1546,6 +1501,9 @@ static void do_setval(Oid relid, int64 next, bool iscalled) RelationGetRelationName(seqrel), bufm, bufx))); + pfree_ext(bufv); + pfree_ext(bufm); + pfree_ext(bufx); } #ifdef PGXC @@ -1565,7 +1523,7 @@ static void do_setval(Oid relid, int64 next, bool iscalled) seq->is_called = iscalled; seq->log_cnt = (iscalled) ? 0 : 1; - /* Update the global sequence info */ + /* Update the global sequence info */ ResetvalGlobal(relid); if (iscalled) { @@ -1573,27 +1531,28 @@ static void do_setval(Oid relid, int64 next, bool iscalled) elm->last_valid = true; } - elm->cached = elm->last; + AssignInt(&(elm->cached), elm->last); } else { #endif /* Set the currval() state only if iscalled = true */ if (iscalled) { - elm->last = next; /* last returned number */ + AssignInt(&(elm->last), (int128)next); /* last returned number */ elm->last_valid = true; } /* In any case, forget any future cached numbers */ - elm->cached = elm->last; + AssignInt(&(elm->cached), elm->last); /* ready to change the on-disk (or really, in-buffer) tuple */ START_CRIT_SECTION(); /* keep the last value if isUseLocalSeq */ - if (isUseLocalSeq) - seq->last_value = next; /* last fetched number */ - else - seq->last_value = -1; /* disable the unreliable last_value */ + if (isUseLocalSeq) { + AssignInt(&(seq->last_value), (T_Int)next); /* last fetched number */ + } else { + AssignInt(&(seq->last_value), (T_Int)-1); /* disable the unreliable last_value */ + } seq->is_called = iscalled; seq->log_cnt = 0; @@ -1627,27 +1586,6 @@ static void do_setval(Oid relid, int64 next, bool iscalled) relation_close(seqrel, NoLock); } -/* - * If call setval, in any case ,we shoule forget all catched values. - */ -static void ResetvalGlobal(Oid relid) -{ - SeqTable elm = NULL; - GlobalSeqInfoHashBucket* bucket = NULL; - uint32 hash = RelidGetHash(relid); - - bucket = &g_instance.global_seq[hash]; - - (void)LWLockAcquire(GetMainLWLockByIndex(bucket->lock_id), LW_EXCLUSIVE); - - elm = GetGlobalSeqElm(relid, bucket); - if (elm != NULL) { - elm->last = elm->cached; - } - - LWLockRelease(GetMainLWLockByIndex(bucket->lock_id)); -} - /* * Implement the 2 arg setval procedure. * See do_setval for discussion. @@ -1655,11 +1593,20 @@ static void ResetvalGlobal(Oid relid) Datum setval_oid(PG_FUNCTION_ARGS) { Oid relid = PG_GETARG_OID(0); - int64 next = PG_GETARG_INT64(1); + Numeric nextArg = PG_GETARG_NUMERIC(1); + int128 next = numeric_int16_internal(nextArg); - do_setval(relid, next, true); + Relation rel = relation_open(relid, NoLock); + char relkind = RelationGetRelkind(rel); + relation_close(rel, NoLock); - PG_RETURN_INT64(next); + if (relkind == RELKIND_SEQUENCE) { + do_setval(relid, next, true); + } else if (relkind == RELKIND_LARGE_SEQUENCE) { + do_setval(relid, next, true); + } + + PG_RETURN_NUMERIC(nextArg); } /* @@ -1669,137 +1616,21 @@ Datum setval_oid(PG_FUNCTION_ARGS) Datum setval3_oid(PG_FUNCTION_ARGS) { Oid relid = PG_GETARG_OID(0); - int64 next = PG_GETARG_INT64(1); + Numeric nextArg = PG_GETARG_NUMERIC(1); + int128 next = numeric_int16_internal(nextArg); bool iscalled = PG_GETARG_BOOL(2); - do_setval(relid, next, iscalled); + Relation rel = relation_open(relid, NoLock); + char relkind = RelationGetRelkind(rel); + relation_close(rel, NoLock); - PG_RETURN_INT64(next); -} - -/* - * Open the sequence and acquire RowExclusiveLock if needed - * - * If we haven't touched the sequence already in this transaction, - * we need to acquire a lock. We arrange for the lock to - * be owned by the top transaction, so that we don't need to do it - * more than once per xact. - */ -static Relation lock_and_open_seq(SeqTable seq) -{ - LocalTransactionId thislxid = t_thrd.proc->lxid; - - /* Get the lock if not already held in this xact */ - if (seq->lxid != thislxid) { - ResourceOwner currentOwner; - - currentOwner = t_thrd.utils_cxt.CurrentResourceOwner; - PG_TRY(); - { - t_thrd.utils_cxt.CurrentResourceOwner = t_thrd.utils_cxt.TopTransactionResourceOwner; - LockRelationOid(seq->relid, RowExclusiveLock); - } - PG_CATCH(); - { - /* Ensure CurrentResourceOwner is restored on error */ - t_thrd.utils_cxt.CurrentResourceOwner = currentOwner; - PG_RE_THROW(); - } - PG_END_TRY(); - t_thrd.utils_cxt.CurrentResourceOwner = currentOwner; - - /* Flag that we have a lock in the current xact */ - seq->lxid = thislxid; + if (relkind == RELKIND_SEQUENCE) { + do_setval(relid, next, iscalled); + } else if (relkind == RELKIND_LARGE_SEQUENCE) { + do_setval(relid, next, iscalled); } - /* We now know we have the lock, and can safely open the rel */ - return relation_open(seq->relid, NoLock); -} - -/* - * Given a relation OID, open and lock the sequence. p_elm and p_rel are - * output parameters. - */ -static void init_sequence(Oid relid, SeqTable* p_elm, Relation* p_rel) -{ - SeqTable elm = NULL; - Relation seqrel; - - elm = GetSessSeqElm(relid); - - /* - * Open the sequence relation. - */ - seqrel = lock_and_open_seq(elm); - - if (seqrel->rd_rel->relkind != RELKIND_SEQUENCE) { - Oid nspoid = RelationGetNamespace(seqrel); - - if (seqrel->rd_rel->relpersistence == RELPERSISTENCE_TEMP) { - ereport(ERROR, - (errcode(ERRCODE_WRONG_OBJECT_TYPE), - errmsg("\"%s.%s\" is not a sequence", get_namespace_name(nspoid), RelationGetRelationName(seqrel)), - errdetail("Please make sure using the correct schema"))); - } else { - ereport(ERROR, - (errcode(ERRCODE_WRONG_OBJECT_TYPE), - errmsg( - "\"%s.%s\" is not a sequence", get_namespace_name(nspoid), RelationGetRelationName(seqrel)))); - } - } - /* - * If the sequence has been transactionally replaced since we last saw it, - * discard any cached-but-unissued values. We do not touch the currval() - * state, however. - */ - if (seqrel->rd_rel->relfilenode != elm->filenode) { - elm->filenode = seqrel->rd_rel->relfilenode; - elm->cached = elm->last; - } - - /* Return results */ - *p_elm = elm; - *p_rel = seqrel; -} - -static SeqTable GetSessSeqElm(Oid relid) -{ - SeqTable elm = NULL; - /* Look to see if we already have a seqtable entry for relation */ - for (elm = u_sess->cmd_cxt.seqtab; elm != NULL; elm = elm->next) { - if (elm->relid == relid) - break; - } - - /* - * Allocate new seqtable entry if we didn't find one. - * - * NOTE: seqtable entries remain in the list for the life of a backend. If - * the sequence itself is deleted then the entry becomes wasted memory, - * but it's small enough that this should not matter. - */ - if (elm == NULL) { - /* - * Time to make a new seqtable entry. These entries live as long as - * the backend does, so we use plain malloc for them. - */ - elm = (SeqTable)MemoryContextAlloc( - SESS_GET_MEM_CXT_GROUP(MEMORY_CONTEXT_OPTIMIZER), sizeof(SeqTableData)); - elm->relid = relid; - elm->filenode = InvalidOid; - elm->lxid = InvalidLocalTransactionId; - elm->last_valid = false; - elm->last = elm->cached = elm->increment = 0; - elm->minval = 0; - elm->maxval = 0; - elm->startval = 0; - elm->uuid = INVALIDSEQUUID; - - elm->next = u_sess->cmd_cxt.seqtab; - u_sess->cmd_cxt.seqtab = elm; - } - - return elm; + PG_RETURN_NUMERIC(nextArg); } /* lock sequence on cn when "select nextval" */ @@ -1826,7 +1657,7 @@ GTM_UUID get_uuid_from_rel(Relation rel) SeqTableData elm; HeapTupleData seqtuple; GTM_UUID uuid; - (void)read_seq_tuple(&elm, rel, &buf, &seqtuple, &uuid); + (void)read_seq_tuple(&elm, rel, &buf, &seqtuple, &uuid); /* Now we're done with the old page */ UnlockReleaseBuffer(buf); @@ -1834,8 +1665,10 @@ GTM_UUID get_uuid_from_rel(Relation rel) return uuid; } -static GTM_UUID get_uuid_from_tuple(const Form_pg_sequence seq, const Relation rel, const HeapTuple seqtuple) +template +static GTM_UUID get_uuid_from_tuple(const void* seq_p, const Relation rel, const HeapTuple seqtuple) { + T_Form seq = (T_Form)seq_p; bool isnull = true; GTM_UUID uuid; unsigned int natts = rel->rd_att->natts; @@ -1868,11 +1701,12 @@ static GTM_UUID get_uuid_from_tuple(const Form_pg_sequence seq, const Relation r * * Function's return value points to the data payload of the tuple */ -static Form_pg_sequence read_seq_tuple(SeqTable elm, Relation rel, Buffer* buf, HeapTuple seqtuple, GTM_UUID* uuid) +template +static T_Form read_seq_tuple(SeqTable elm, Relation rel, Buffer* buf, HeapTuple seqtuple, GTM_UUID* uuid) { Page page; ItemId lp; - Form_pg_sequence seq; + T_Form seq; sequence_magic* sm = NULL; *buf = ReadBuffer(rel, 0); @@ -1904,7 +1738,6 @@ static Form_pg_sequence read_seq_tuple(SeqTable elm, Relation rel, Buffer* buf, * bit update, ie, don't bother to WAL-log it, since we can certainly do * this again if the update gets lost. */ - Assert(!(seqtuple->t_data->t_infomask & HEAP_XMAX_IS_MULTI)); if (HeapTupleGetRawXmax(seqtuple) != InvalidTransactionId) { HeapTupleSetXmax(seqtuple, InvalidTransactionId); seqtuple->t_data->t_infomask &= ~HEAP_XMAX_COMMITTED; @@ -1912,48 +1745,276 @@ static Form_pg_sequence read_seq_tuple(SeqTable elm, Relation rel, Buffer* buf, MarkBufferDirtyHint(*buf, true); } - seq = (Form_pg_sequence)GETSTRUCT(seqtuple); + seq = (T_Form)GETSTRUCT(seqtuple); /* this is a handy place to update our copy of the increment */ - elm->increment = seq->increment_by; - elm->minval = seq->min_value; - elm->maxval = seq->max_value; - elm->startval = seq->start_value; + AssignInt(&(elm->increment), (int128)seq->increment_by); + AssignInt(&(elm->minval), (int128)seq->min_value); + AssignInt(&(elm->maxval), (int128)seq->max_value); + AssignInt(&(elm->startval), (int128)seq->start_value); elm->is_cycled = seq->is_cycled; - - elm->uuid = *uuid = get_uuid_from_tuple(seq, rel, seqtuple); + elm->uuid = *uuid = get_uuid_from_tuple((void*)seq, rel, seqtuple); return seq; } -static void check_value_min_max(int64 value, int64 min_value, int64 max_value) +template +static void check_value_min_max(T_Int value, T_Int min_value, T_Int max_value) { - int err_rc = 0; + char* bufs = NULL; + char* bufm = NULL; /* crosscheck RESTART (or current value, if changing MIN/MAX) */ if (value < min_value) { - char bufs[100], bufm[100]; - - err_rc = snprintf_s(bufs, sizeof(bufs), sizeof(bufs) - 1, INT64_FORMAT, value); - securec_check_ss(err_rc, "\0", "\0"); - err_rc = snprintf_s(bufm, sizeof(bufm), sizeof(bufm) - 1, INT64_FORMAT, min_value); - securec_check_ss(err_rc, "\0", "\0"); + bufs = large ? DatumGetCString(DirectFunctionCall1(int16out, Int128GetDatum(value))) : + DatumGetCString(DirectFunctionCall1(int8out, value)); + bufm = large ? DatumGetCString(DirectFunctionCall1(int16out, Int128GetDatum(min_value))) : + DatumGetCString(DirectFunctionCall1(int8out, min_value)); ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("RESTART value (%s) cannot be less than MINVALUE (%s)", bufs, bufm))); } if (value > max_value) { - char bufs[100], bufm[100]; - - err_rc = snprintf_s(bufs, sizeof(bufs), sizeof(bufs) - 1, INT64_FORMAT, value); - securec_check_ss(err_rc, "\0", "\0"); - err_rc = snprintf_s(bufm, sizeof(bufm), sizeof(bufm) - 1, INT64_FORMAT, max_value); - securec_check_ss(err_rc, "\0", "\0"); + bufs = large ? DatumGetCString(DirectFunctionCall1(int16out, Int128GetDatum(value))) : + DatumGetCString(DirectFunctionCall1(int8out, value)); + bufm = large ? DatumGetCString(DirectFunctionCall1(int16out, Int128GetDatum(max_value))) : + DatumGetCString(DirectFunctionCall1(int8out, max_value)); ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("RESTART value (%s) cannot be greater than MAXVALUE (%s)", bufs, bufm))); } } +template +static T_Int defGetInt(DefElem* def) +{ + if (def->arg == NULL) + ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("%s requires a numeric value", def->defname))); + switch (nodeTag(def->arg)) { + case T_Integer: + return (T_Int)intVal(def->arg); + case T_Float: + /* + * Values too large for int4 will be represented as Float + * constants by the lexer. Accept these if they are valid int8 or int16 + * strings. + */ + if (large) { + return DatumGetInt128(DirectFunctionCall1(int16in, CStringGetDatum(strVal(def->arg)))); + } else { + return DatumGetInt64(DirectFunctionCall1(int8in, CStringGetDatum(strVal(def->arg)))); + } + default: + ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("%s requires a numeric value", def->defname))); + } + return 0; /* keep compiler quiet */ +} + +enum { + DEF_IDX_START_VALUE, + DEF_IDX_RESTART_VALUE, + DEF_IDX_INCREMENT_BY, + DEF_IDX_MAX_VALUE, + DEF_IDX_MIN_VALUE, + DEF_IDX_CACHE_VALUE, + DEF_IDX_IS_CYCLED, + DEF_IDX_NUM +}; + +static void CheckDuplicateDef(const void* elm) +{ + if (elm != NULL) { + ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("conflicting or redundant options"))); + } +} + +static void PreProcessSequenceOptions( + List* options, DefElem* elms[DEF_IDX_NUM], List** owned_by, bool* need_seq_rewrite, bool isInit) +{ + ListCell* option = NULL; + + foreach (option, options) { + DefElem* defel = (DefElem*)lfirst(option); + + /* Now we only support ALTER SEQUENCE OWNED BY and MAXVALUE to support upgrade. */ + if (!isInit) { + /* isInit is true for DefineSequence, false for AlterSequence, we use it + * to differentiate them + */ + bool isDefOwnedAndMaxValue = + strcmp(defel->defname, "owned_by") != 0 && strcmp(defel->defname, "maxvalue") != 0; +#ifndef ENABLE_MULTIPLE_NODES + isDefOwnedAndMaxValue = isDefOwnedAndMaxValue && strcmp(defel->defname, "cache") != 0; +#endif + if (isDefOwnedAndMaxValue) { + ereport( + ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("ALTER SEQUENCE is not yet supported."))); + } + } + + if (strcmp(defel->defname, "increment") == 0) { + CheckDuplicateDef(elms[DEF_IDX_INCREMENT_BY]); + elms[DEF_IDX_INCREMENT_BY] = defel; + *need_seq_rewrite = true; + } else if (strcmp(defel->defname, "start") == 0) { + CheckDuplicateDef(elms[DEF_IDX_START_VALUE]); + elms[DEF_IDX_START_VALUE] = defel; + *need_seq_rewrite = true; + } else if (strcmp(defel->defname, "restart") == 0) { + CheckDuplicateDef(elms[DEF_IDX_RESTART_VALUE]); + elms[DEF_IDX_RESTART_VALUE] = defel; + *need_seq_rewrite = true; + } else if (strcmp(defel->defname, "maxvalue") == 0) { + CheckDuplicateDef(elms[DEF_IDX_MAX_VALUE]); + elms[DEF_IDX_MAX_VALUE] = defel; + *need_seq_rewrite = true; + } else if (strcmp(defel->defname, "minvalue") == 0) { + CheckDuplicateDef(elms[DEF_IDX_MIN_VALUE]); + elms[DEF_IDX_MIN_VALUE] = defel; + *need_seq_rewrite = true; + } else if (strcmp(defel->defname, "cache") == 0) { + CheckDuplicateDef(elms[DEF_IDX_CACHE_VALUE]); + elms[DEF_IDX_CACHE_VALUE] = defel; + *need_seq_rewrite = true; + } else if (strcmp(defel->defname, "cycle") == 0) { + CheckDuplicateDef(elms[DEF_IDX_IS_CYCLED]); + elms[DEF_IDX_IS_CYCLED] = defel; + *need_seq_rewrite = true; + } else if (strcmp(defel->defname, "owned_by") == 0) { + CheckDuplicateDef(*owned_by); + *owned_by = defGetQualifiedName(defel); + } else { + ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("option \"%s\" not recognized", defel->defname))); + } + } +} + +template +static void ProcessSequenceOptIncrementBy(DefElem* elm, T_Form newm, bool isInit) +{ + if (elm != NULL) { + AssignInt(&(newm->increment_by), defGetInt(elm)); + if (newm->increment_by == 0) { + ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("INCREMENT must not be zero"))); + } + newm->log_cnt = 0; + } else if (isInit) { + AssignInt(&(newm->increment_by), (int128)1); + } +} + +template +static void ProcessSequenceOptCycle(DefElem* elm, T_Form newm, bool isInit) +{ + if (elm != NULL) { + newm->is_cycled = intVal(elm->arg); + Assert(BoolIsValid(newm->is_cycled)); + newm->log_cnt = 0; + } else if (isInit) { + newm->is_cycled = false; + } +} + +template +static void ProcessSequenceOptMax(DefElem* elm, T_Form newm, bool isInit) +{ + if (elm != NULL && elm->arg) { + AssignInt(&(newm->max_value), defGetInt(elm)); + newm->log_cnt = 0; + } else if (isInit || elm != NULL) { + if (newm->increment_by > 0) { + /* ascending seq */ + AssignInt(&(newm->max_value), large ? LARGE_SEQ_MAXVALUE : SEQ_MAXVALUE); + } else { + /* descending seq */ + AssignInt(&(newm->max_value), (int128)-1); + } + newm->log_cnt = 0; + } +} + +template +static void ProcessSequenceOptMin(DefElem* elm, T_Form newm, bool isInit) +{ + if (elm != NULL && elm->arg) { + AssignInt(&(newm->min_value), defGetInt(elm)); + newm->log_cnt = 0; + } else if (isInit || elm != NULL) { + if (newm->increment_by > 0) { + /* ascending seq */ + AssignInt(&(newm->min_value), (int128)1); + } else { + /* descending seq */ + AssignInt(&(newm->min_value), large ? LARGE_SEQ_MINVALUE : SEQ_MINVALUE); + } + newm->log_cnt = 0; + } +} + +template +static void ProcessSequenceOptStartWith(DefElem* elm, T_Form newm, bool isInit) +{ + if (elm != NULL) + AssignInt(&(newm->start_value), defGetInt(elm)); + else if (isInit) { + AssignInt(&(newm->start_value), (newm->increment_by > 0) ? newm->min_value : newm->max_value); + } +} + +template +static void ProcessSequenceOptReStartWith(DefElem* elm, T_Form newm, bool isInit, bool* is_restart, bool isUseLocalSeq) +{ + if (elm != NULL) { + AssignInt(&(newm->last_value), + (elm->arg != NULL) ? defGetInt(elm) : newm->start_value); +#ifdef PGXC + *is_restart = true; +#endif + newm->is_called = false; + newm->log_cnt = 0; + } else if (isInit) { + AssignInt(&(newm->last_value), (isUseLocalSeq) ? newm->start_value : (int128)-1); + newm->is_called = false; + } +} + +template +static void ProcessSequenceOptCache(DefElem* elmCache, DefElem* elmMax, DefElem* elmMin, T_Form newm, bool isInit) +{ + if (elmCache != NULL) { + AssignInt(&(newm->cache_value), defGetInt(elmCache)); + if (newm->cache_value <= 0) { + char* buf = large ? DatumGetCString(DirectFunctionCall1(int16out, Int128GetDatum(newm->cache_value))) : + DatumGetCString(DirectFunctionCall1(int8out, newm->cache_value)); + ereport( + ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("CACHE (%s) must be greater than zero", buf))); + } else if (newm->cache_value > 1) { + if ((newm->increment_by > 0 && elmMax != NULL && elmMax->arg != NULL) || + (newm->increment_by < 0 && elmMin != NULL && elmMin->arg != NULL)) + ereport(NOTICE, + (errmsg("Not advised to use MAXVALUE or MINVALUE together with CACHE."), + errdetail("If CACHE is defined, some sequence values may be wasted, causing available sequence " + "numbers to be less than expected."))); + } + newm->log_cnt = 0; + } else if (isInit) { + AssignInt(&(newm->cache_value), (int128)1); + } +} + +template +static void CrossCheckMinMax(T_Int min, T_Int max) +{ + if (min >= max) { + char* bufm = large ? DatumGetCString(DirectFunctionCall1(int16out, Int128GetDatum(min))) : + DatumGetCString(DirectFunctionCall1(int8out, min)); + char* bufx = large ? DatumGetCString(DirectFunctionCall1(int16out, Int128GetDatum(max))) : + DatumGetCString(DirectFunctionCall1(int8out, max)); + ereport(ERROR, + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("MINVALUE (%s) must be less than MAXVALUE (%s)", bufm, bufx))); + } +} + /* * init_params: process the options list of CREATE or ALTER SEQUENCE, * and store the values into appropriate fields of *new. Also set @@ -1969,23 +2030,19 @@ static void check_value_min_max(int64 value, int64 min_value, int64 max_value) * ALTER SEQUENCE OWNED BY to not rewrite the sequence, because that would * break pg_upgrade by causing unwanted changes in the sequence's relfilenode. */ + #ifdef PGXC - static void init_params(List* options, bool isInit, bool isUseLocalSeq, Form_pg_sequence newm, List** owned_by, - bool* is_restart, bool* need_seq_rewrite) +template +static void init_params(List* options, bool isInit, bool isUseLocalSeq, void* newm_p, List** owned_by, + bool* is_restart, bool* need_seq_rewrite) #else - static void init_params( - List* options, bool isInit, bool isUseLocalSeq, Form_pg_sequence newm, List** owned_by, bool* need_seq_rewrite) +template +static void init_params(List* options, bool isInit, bool isUseLocalSeq, void* newm_p, List** owned_by, + bool* need_seq_rewrite) #endif { - DefElem* start_value = NULL; - DefElem* restart_value = NULL; - DefElem* increment_by = NULL; - DefElem* max_value = NULL; - DefElem* min_value = NULL; - DefElem* cache_value = NULL; - DefElem* is_cycled = NULL; - ListCell* option = NULL; - int err_rc = 0; + T_Form newm = (T_Form)newm_p; + DefElem* elms[DEF_IDX_NUM] = {0}; #ifdef PGXC *is_restart = false; @@ -1993,283 +2050,41 @@ static void check_value_min_max(int64 value, int64 min_value, int64 max_value) *owned_by = NIL; - foreach (option, options) { - DefElem* defel = (DefElem*)lfirst(option); - - /* Now we only support ALTER SEQUENCE OWNED BY and MAXVALUE to support upgrade. */ - if (!isInit) { - /* isInit is true for DefineSequence, false for AlterSequence, we use it - * to differentiate them - */ - bool isDefOwnedAndMaxValue = - strcmp(defel->defname, "owned_by") != 0 && strcmp(defel->defname, "maxvalue") != 0 -#ifndef ENABLE_MULTIPLE_NODES - && strcmp(defel->defname, "cache") != 0; -#else - ; -#endif - if (isDefOwnedAndMaxValue) { - ereport( - ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("ALTER SEQUENCE is not yet supported."))); - } - } - - if (strcmp(defel->defname, "increment") == 0) { - if (increment_by != NULL) - ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("conflicting or redundant options"))); - increment_by = defel; - *need_seq_rewrite = true; - } else if (strcmp(defel->defname, "start") == 0) { - if (start_value != NULL) - ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("conflicting or redundant options"))); - start_value = defel; - *need_seq_rewrite = true; - } else if (strcmp(defel->defname, "restart") == 0) { - if (restart_value != NULL) - ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("conflicting or redundant options"))); - restart_value = defel; - *need_seq_rewrite = true; - } else if (strcmp(defel->defname, "maxvalue") == 0) { - if (max_value != NULL) - ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("conflicting or redundant options"))); - max_value = defel; - *need_seq_rewrite = true; - } else if (strcmp(defel->defname, "minvalue") == 0) { - if (min_value != NULL) - ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("conflicting or redundant options"))); - min_value = defel; - *need_seq_rewrite = true; - } else if (strcmp(defel->defname, "cache") == 0) { - if (cache_value != NULL) - ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("conflicting or redundant options"))); - cache_value = defel; - *need_seq_rewrite = true; - } else if (strcmp(defel->defname, "cycle") == 0) { - if (is_cycled != NULL) - ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("conflicting or redundant options"))); - is_cycled = defel; - *need_seq_rewrite = true; - } else if (strcmp(defel->defname, "owned_by") == 0) { - if (*owned_by != NIL) - ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("conflicting or redundant options"))); - *owned_by = defGetQualifiedName(defel); - } else { - ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("option \"%s\" not recognized", defel->defname))); - } - } + PreProcessSequenceOptions(options, elms, owned_by, need_seq_rewrite, isInit); /* * We must reset log_cnt when isInit or when changing any parameters * that would affect future nextval allocations. */ - if (isInit) - newm->log_cnt = 0; - - /* INCREMENT BY */ - if (increment_by != NULL) { - newm->increment_by = defGetInt64(increment_by); - if (newm->increment_by == 0) - ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("INCREMENT must not be zero"))); - newm->log_cnt = 0; - } else if (isInit) - newm->increment_by = 1; - - /* CYCLE */ - if (is_cycled != NULL) { - newm->is_cycled = intVal(is_cycled->arg); - Assert(BoolIsValid(newm->is_cycled)); - newm->log_cnt = 0; - } else if (isInit) - newm->is_cycled = false; - - /* MAXVALUE (null arg means NO MAXVALUE) */ - if (max_value != NULL && max_value->arg) { - newm->max_value = defGetInt64(max_value); - newm->log_cnt = 0; - } else if (isInit || max_value != NULL) { - if (newm->increment_by > 0) - newm->max_value = SEQ_MAXVALUE; /* ascending seq */ - else - newm->max_value = -1; /* descending seq */ + if (isInit) { newm->log_cnt = 0; } - /* MINVALUE (null arg means NO MINVALUE) */ - if (min_value != NULL && min_value->arg) { - newm->min_value = defGetInt64(min_value); - newm->log_cnt = 0; - } else if (isInit || min_value != NULL) { - if (newm->increment_by > 0) - newm->min_value = 1; /* ascending seq */ - else - newm->min_value = SEQ_MINVALUE; /* descending seq */ - newm->log_cnt = 0; - } + ProcessSequenceOptIncrementBy(elms[DEF_IDX_INCREMENT_BY], newm, isInit); + ProcessSequenceOptCycle(elms[DEF_IDX_IS_CYCLED], newm, isInit); + ProcessSequenceOptMax(elms[DEF_IDX_MAX_VALUE], newm, isInit); + ProcessSequenceOptMin(elms[DEF_IDX_MIN_VALUE], newm, isInit); /* crosscheck min/max */ - if (newm->min_value >= newm->max_value) { - char bufm[100], bufx[100]; - err_rc = snprintf_s(bufm, sizeof(bufm), sizeof(bufm) - 1, INT64_FORMAT, newm->min_value); - securec_check_ss(err_rc, "\0", "\0"); - err_rc = snprintf_s(bufx, sizeof(bufx), sizeof(bufx) - 1, INT64_FORMAT, newm->max_value); - securec_check_ss(err_rc, "\0", "\0"); - ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("MINVALUE (%s) must be less than MAXVALUE (%s)", bufm, bufx))); - } + CrossCheckMinMax(newm->min_value, newm->max_value); - /* START WITH */ - if (start_value != NULL) - newm->start_value = defGetInt64(start_value); - else if (isInit) { - newm->start_value = (newm->increment_by > 0) ? newm->min_value : newm->max_value; - } + ProcessSequenceOptStartWith(elms[DEF_IDX_START_VALUE], newm, isInit); /* crosscheck START */ - check_value_min_max(newm->start_value, newm->min_value, newm->max_value); + check_value_min_max(newm->start_value, newm->min_value, newm->max_value); - /* RESTART [WITH] */ - if (restart_value != NULL) { - newm->last_value = (restart_value->arg != NULL) ? defGetInt64(restart_value) - : newm->start_value; -#ifdef PGXC - *is_restart = true; -#endif - newm->is_called = false; - newm->log_cnt = 0; - } else if (isInit) { - newm->last_value = (isUseLocalSeq) ? newm->start_value : -1; - newm->is_called = false; - } + ProcessSequenceOptReStartWith( + elms[DEF_IDX_RESTART_VALUE], newm, isInit, is_restart, isUseLocalSeq); if (isUseLocalSeq) { /* crosscheck RESTART (or current value, if changing MIN/MAX) */ - check_value_min_max(newm->last_value, newm->min_value, newm->max_value); + check_value_min_max(newm->last_value, newm->min_value, newm->max_value); } - /* CACHE */ - if (cache_value != NULL) { - newm->cache_value = defGetInt64(cache_value); - if (newm->cache_value <= 0) { - char buf[100]; - - err_rc = snprintf_s(buf, sizeof(buf), sizeof(buf) - 1, INT64_FORMAT, newm->cache_value); - securec_check_ss(err_rc, "\0", "\0"); - ereport( - ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("CACHE (%s) must be greater than zero", buf))); - } else if (newm->cache_value > 1) { - if ((newm->increment_by > 0 && max_value != NULL && max_value->arg != NULL) || - (newm->increment_by < 0 && min_value != NULL && min_value->arg != NULL)) - ereport(NOTICE, - (errmsg("Not advised to use MAXVALUE or MINVALUE together with CACHE."), - errdetail("If CACHE is defined, some sequence values may be wasted, causing available sequence " - "numbers to be less than expected."))); - } - - newm->log_cnt = 0; - } else if (isInit) - newm->cache_value = 1; + ProcessSequenceOptCache( + elms[DEF_IDX_CACHE_VALUE], elms[DEF_IDX_MAX_VALUE], elms[DEF_IDX_MIN_VALUE], newm, isInit); } -#ifdef PGXC -/* - * GetGlobalSeqName - * - * Returns a global sequence name adapted to GTM - * Name format is dbname.schemaname.seqname - * so as to identify in a unique way in the whole cluster each sequence - */ -char* GetGlobalSeqName(Relation seqrel, const char* new_seqname, const char* new_schemaname) -{ - char* seqname = NULL; - char* dbname = NULL; - char* schemaname = NULL; - char* relname = NULL; - int charlen; - - /* Get all the necessary relation names */ - dbname = get_database_name(seqrel->rd_node.dbNode); - - if (dbname == NULL) { - ereport(ERROR, - (errcode(ERRCODE_CACHE_LOOKUP_FAILED), - errmsg("cache lookup failed for database %u", seqrel->rd_node.dbNode))); - } - - if (new_seqname != NULL) - relname = (char*)new_seqname; - else - relname = RelationGetRelationName(seqrel); - - if (new_schemaname != NULL) - schemaname = (char*)new_schemaname; - else - schemaname = get_namespace_name(RelationGetNamespace(seqrel)); - - if (schemaname == NULL) { - ereport(ERROR, - (errcode(ERRCODE_CACHE_LOOKUP_FAILED), - errmsg("cache lookup failed for schema %u", RelationGetNamespace(seqrel)))); - } - - /* Calculate the global name size including the dots and \0 */ - charlen = strlen(dbname) + strlen(schemaname) + strlen(relname) + 3; - seqname = (char*)palloc(charlen); - - /* Form a unique sequence name with schema and database name for GTM */ - int ret = snprintf_s(seqname, charlen, charlen - 1, "%s.%s.%s", dbname, schemaname, relname); - securec_check_ss(ret, "\0", "\0"); - pfree_ext(dbname); - pfree_ext(schemaname); - - return seqname; -} - -static char* GetGlobalSeqNameForUpdate(Relation seqrel, char** dbname, char** schemaname) -{ - char* relname = NULL; - - *dbname = get_database_name(seqrel->rd_node.dbNode); - - if (*dbname == NULL) { - ereport(ERROR, - (errcode(ERRCODE_CACHE_LOOKUP_FAILED), - errmsg("cache lookup failed for database %u", seqrel->rd_node.dbNode))); - } - - *schemaname = get_namespace_name(RelationGetNamespace(seqrel)); - - if (*schemaname == NULL) { - ereport(ERROR, - (errcode(ERRCODE_CACHE_LOOKUP_FAILED), - errmsg("cache lookup failed for schema %u", RelationGetNamespace(seqrel)))); - } - - relname = RelationGetRelationName(seqrel); - - return relname; -} - -/* - * IsTempSequence - * - * Determine if given sequence is temporary or not. - */ -bool IsTempSequence(Oid relid) -{ - Relation seqrel; - bool res = false; - SeqTable elm = NULL; - - /* open and lock sequence */ - init_sequence(relid, &elm, &seqrel); - - res = RelationIsLocalTemp(seqrel); - relation_close(seqrel, NoLock); - return res; -} -#endif - /* * Process an OWNED BY option for CREATE/ALTER SEQUENCE * @@ -2374,7 +2189,7 @@ void get_sequence_params(Relation rel, int64* uuid, int64* start, int64* increme HeapTupleData seqtuple; Form_pg_sequence seq; - seq = read_seq_tuple(&elm, rel, &buf, &seqtuple, uuid); + seq = read_seq_tuple(&elm, rel, &buf, &seqtuple, uuid); *start = seq->start_value; *increment = seq->increment_by; @@ -2393,6 +2208,10 @@ void get_sequence_params(Relation rel, int64* uuid, int64* start, int64* increme Datum pg_sequence_parameters(PG_FUNCTION_ARGS) { Oid relid = PG_GETARG_OID(0); + Relation rel = relation_open(relid, NoLock); + char relkind = RelationGetRelkind(rel); + bool large = relkind == 'L'; + relation_close(rel, NoLock); TupleDesc tupdesc; Datum values[5]; bool isnull[5]; @@ -2400,7 +2219,6 @@ Datum pg_sequence_parameters(PG_FUNCTION_ARGS) Relation seqrel; Buffer buf; HeapTupleData seqtuple; - Form_pg_sequence seq; /* open and lock sequence */ init_sequence(relid, &elm, &seqrel); @@ -2411,10 +2229,10 @@ Datum pg_sequence_parameters(PG_FUNCTION_ARGS) errmsg("permission denied for sequence %s", RelationGetRelationName(seqrel)))); tupdesc = CreateTemplateTupleDesc(5, false, TAM_HEAP); - TupleDescInitEntry(tupdesc, (AttrNumber)1, "start_value", INT8OID, -1, 0); - TupleDescInitEntry(tupdesc, (AttrNumber)2, "minimum_value", INT8OID, -1, 0); - TupleDescInitEntry(tupdesc, (AttrNumber)3, "maximum_value", INT8OID, -1, 0); - TupleDescInitEntry(tupdesc, (AttrNumber)4, "increment", INT8OID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber)1, "start_value", INT16OID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber)2, "minimum_value", INT16OID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber)3, "maximum_value", INT16OID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber)4, "increment", INT16OID, -1, 0); TupleDescInitEntry(tupdesc, (AttrNumber)5, "cycle_option", BOOLOID, -1, 0); BlessTupleDesc(tupdesc); @@ -2423,13 +2241,22 @@ Datum pg_sequence_parameters(PG_FUNCTION_ARGS) securec_check(rc, "\0", "\0"); GTM_UUID uuid; - seq = read_seq_tuple(elm, seqrel, &buf, &seqtuple, &uuid); - - values[0] = Int64GetDatum(seq->start_value); - values[1] = Int64GetDatum(seq->min_value); - values[2] = Int64GetDatum(seq->max_value); - values[3] = Int64GetDatum(seq->increment_by); - values[4] = BoolGetDatum(seq->is_cycled); + int i = 0; + if (large) { + Form_pg_large_sequence seq = read_seq_tuple(elm, seqrel, &buf, &seqtuple, &uuid); + values[i++] = Int128GetDatum(seq->start_value); + values[i++] = Int128GetDatum(seq->min_value); + values[i++] = Int128GetDatum(seq->max_value); + values[i++] = Int128GetDatum(seq->increment_by); + values[i++] = BoolGetDatum(seq->is_cycled); + } else { + Form_pg_sequence seq = read_seq_tuple(elm, seqrel, &buf, &seqtuple, &uuid); + values[i++] = Int128GetDatum((int128)seq->start_value); + values[i++] = Int128GetDatum((int128)seq->min_value); + values[i++] = Int128GetDatum((int128)seq->max_value); + values[i++] = Int128GetDatum((int128)seq->increment_by); + values[i++] = BoolGetDatum(seq->is_cycled); + } UnlockReleaseBuffer(buf); relation_close(seqrel, NoLock); @@ -2437,45 +2264,61 @@ Datum pg_sequence_parameters(PG_FUNCTION_ARGS) return HeapTupleGetDatum(heap_form_tuple(tupdesc, values, isnull)); } -void seq_redo(XLogReaderState* record) +Datum pg_sequence_last_value(PG_FUNCTION_ARGS) { - uint8 info = XLogRecGetInfo(record) & ~XLR_INFO_MASK; - RedoBufferInfo buffer; - char* item = NULL; - Size itemsz; - xl_seq_rec* xlrec = (xl_seq_rec*)XLogRecGetData(record); + Oid relid = PG_GETARG_OID(0); + Relation rel = relation_open(relid, NoLock); + char relkind = RelationGetRelkind(rel); + bool large = relkind == 'L'; + relation_close(rel, NoLock); + TupleDesc tupdesc; + Datum values[2]; + bool isnull[2]; + SeqTable elm = NULL; + Relation seqrel; + Buffer buf; + HeapTupleData seqtuple; - if (info != XLOG_SEQ_LOG) { - elog(PANIC, "seq_redo: unknown op code %u", (uint)info); + /* open and lock sequence */ + init_sequence(relid, &elm, &seqrel); + + if (pg_class_aclcheck(relid, GetUserId(), ACL_SELECT | ACL_UPDATE | ACL_USAGE) != ACLCHECK_OK) + ereport(ERROR, + (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), + errmsg("permission denied for sequence %s", RelationGetRelationName(seqrel)))); + + tupdesc = CreateTemplateTupleDesc(2, false, TAM_HEAP); + TupleDescInitEntry(tupdesc, (AttrNumber)1, "cache_value", INT16OID, -1, 0); + TupleDescInitEntry(tupdesc, (AttrNumber)2, "last_value", INT16OID, -1, 0); + + BlessTupleDesc(tupdesc); + + errno_t rc = memset_s(isnull, sizeof(isnull), 0, sizeof(isnull)); + securec_check(rc, "\0", "\0"); + + GTM_UUID uuid; + int i = 0; + if (large) { + Form_pg_large_sequence seq = read_seq_tuple(elm, seqrel, &buf, &seqtuple, &uuid); + values[i++] = Int128GetDatum(seq->cache_value); + values[i++] = Int128GetDatum(seq->last_value); + } else { + Form_pg_sequence seq = read_seq_tuple(elm, seqrel, &buf, &seqtuple, &uuid); + values[i++] = Int128GetDatum((int128)seq->cache_value); + values[i++] = Int128GetDatum((int128)seq->last_value); } - XLogInitBufferForRedo(record, 0, &buffer); - - /* - * We must always reinit the page and reinstall the magic number (see - * comments in fill_seq_with_data). However, since this WAL record type - * is also used for updating sequences, it's possible that a hot-standby - * backend is examining the page concurrently; so we mustn't transiently - * trash the buffer. The solution is to build the correct new page - * contents in local workspace and then memcpy into the buffer. Then only - * bytes that are supposed to change will change, even transiently. We - * must palloc the local page for alignment reasons. - */ - item = (char*)xlrec + sizeof(xl_seq_rec); - itemsz = XLogRecGetDataLen(record) - sizeof(xl_seq_rec); - - seqRedoOperatorPage(&buffer, item, itemsz); - - MarkBufferDirty(buffer.buf); - UnlockReleaseBuffer(buffer.buf); + UnlockReleaseBuffer(buf); + relation_close(seqrel, NoLock); + return HeapTupleGetDatum(heap_form_tuple(tupdesc, values, isnull)); } #ifdef PGXC /* * Delete sequence from global hash bucket - */ + */ void delete_global_seq(Oid relid, Relation seqrel) { SeqTable currseq = NULL; @@ -2486,7 +2329,7 @@ void delete_global_seq(Oid relid, Relation seqrel) bucket = &g_instance.global_seq[hash]; (void)LWLockAcquire(GetMainLWLockByIndex(bucket->lock_id), LW_EXCLUSIVE); - + dlist_foreach_cell(elem, bucket->shb_list) { currseq = (SeqTable)lfirst(elem); @@ -2504,90 +2347,6 @@ void delete_global_seq(Oid relid, Relation seqrel) RelationGetRelationName(seqrel))))); } -/* - * Register a callback for a sequence rename drop on GTM - * If need to implement rename sequence, this also need to - * change to hte t_thrd.top_mem_cxt - */ -void register_sequence_rename_cb(const char* oldseqname, const char* newseqname) -{ - rename_sequence_callback_arg* args = NULL; - char* oldseqnamearg = NULL; - char* newseqnamearg = NULL; - - /* We change the memory from u_sess->top_transaction_mem_cxt to t_thrd.top_mem_cxt, - * because we postpone the CallSequenceCallback after CN/DN commit. - * not same as CallGTMCallback which is called in PreparedTranscaton phase. - * The u_sess->top_transaction_mem_cxt is released, after Prepared finished. - * If CallSequenceCallback is called in Prepared Phase, it will be - * difficult to rollback if the transaction is abort after prepared. - */ - args = (rename_sequence_callback_arg*)MemoryContextAlloc( - THREAD_GET_MEM_CXT_GROUP(MEMORY_CONTEXT_OPTIMIZER), sizeof(rename_sequence_callback_arg)); - - oldseqnamearg = (char*)MemoryContextAlloc( - THREAD_GET_MEM_CXT_GROUP(MEMORY_CONTEXT_OPTIMIZER), strlen(oldseqname) + 1); - newseqnamearg = (char*)MemoryContextAlloc( - THREAD_GET_MEM_CXT_GROUP(MEMORY_CONTEXT_OPTIMIZER), strlen(newseqname) + 1); - - errno_t errorno = sprintf_s(oldseqnamearg, strlen(oldseqname) + 1, "%s", oldseqname); - securec_check_ss(errorno, "\0", "\0"); - errorno = sprintf_s(newseqnamearg, strlen(newseqname) + 1, "%s", newseqname); - securec_check_ss(errorno, "\0", "\0"); - - args->oldseqname = oldseqnamearg; - args->newseqname = newseqnamearg; - - RegisterSequenceCallback(rename_sequence_cb, (void*)args); -} - -/* - * Callback a sequence rename - */ -#ifndef ENABLE_MULTIPLE_NODES -void rename_sequence_cb(GTMEvent event, void* args) -{ - DISTRIBUTED_FEATURE_NOT_SUPPORTED(); -} -#else -void rename_sequence_cb(GTMEvent event, void* args) -{ - rename_sequence_callback_arg* cbargs = (rename_sequence_callback_arg*)args; - char* newseqname = cbargs->newseqname; - char* oldseqname = cbargs->oldseqname; - int err = 0; - int seqerrcode = ERRCODE_SQL_STATEMENT_NOT_YET_COMPLETE; - - /* - * A sequence is here renamed to its former name only when a transaction - * that involved a sequence rename was dropped. - */ - switch (event) { - case GTM_EVENT_ABORT: - /* - * Here sequence is renamed to its former name - * so what was new becomes old. - */ - err = RenameSequenceGTM(newseqname, oldseqname); - break; - case GTM_EVENT_COMMIT: - case GTM_EVENT_PREPARE: - /* Nothing to do */ - break; - default: - Assert(0); - } - - if (err == GTM_RESULT_COMM_ERROR) - seqerrcode = ERRCODE_CONNECTION_FAILURE; - - /* Report error if necessary */ - if (err < 0 && event != GTM_EVENT_ABORT) - ereport(ERROR, (errcode(seqerrcode), errmsg("GTM error, could not rename sequence"))); -} - -#endif - /* * Register a callback for a sequence drop on GTM */ @@ -2611,72 +2370,15 @@ void register_sequence_cb(GTM_UUID seq_uuid, GTM_SequenceDropType type) RegisterSequenceCallback(drop_sequence_cb, (void*)args); } -/* - * Callback of sequence drop - */ -#ifndef ENABLE_MULTIPLE_NODES -void drop_sequence_cb(GTMEvent event, void* args) -{ - DISTRIBUTED_FEATURE_NOT_SUPPORTED(); -} -#else -void drop_sequence_cb(GTMEvent event, void* args) -{ - drop_sequence_callback_arg* cbargs = (drop_sequence_callback_arg*)args; - GTM_UUID seq_uuid = cbargs->seq_uuid; - GTM_SequenceDropType type = cbargs->type; - int err = 0; - int seqerrcode = ERRCODE_SQL_STATEMENT_NOT_YET_COMPLETE; - - /* - * A sequence is dropped on GTM if the transaction that created sequence - * aborts or if the transaction that dropped the sequence commits. This mechanism - * insures that sequence information is consistent on all the cluster nodes including - * GTM. This callback is done before transaction really commits so it can still fail - * if an error occurs. - */ - switch (event) { - case GTM_EVENT_COMMIT: - case GTM_EVENT_PREPARE: - if (type == GTM_DROP_SEQ) - err = DropSequenceGTM(seq_uuid); - break; - case GTM_EVENT_ABORT: - if (type == GTM_CREATE_SEQ) - err = DropSequenceGTM(seq_uuid); - break; - default: - /* Should not come here */ - Assert(0); - break; - } - - ereport(DEBUG2, - (errmodule(MOD_SEQ), - (errmsg("Call drop_sequence_cb: in state %d for sequence uuid %ld with type %d", event, seq_uuid, type)))); - - if (err == GTM_RESULT_COMM_ERROR) - seqerrcode = ERRCODE_CONNECTION_FAILURE; - - if (err < 0 && event != GTM_EVENT_ABORT) { - ereport(WARNING, - (errcode(seqerrcode), - errmsg( - "Deletion of sequences uuid %ld from gtm may be not completed, please check gtm log", seq_uuid))); - } -} - -#endif - #endif #ifdef ENABLE_MULTIPLE_NODES -static void sendUpdateSequenceMsgToDn(char* dbname, char* schemaname, char* seqname, int64 last_value) +static void sendUpdateSequenceMsgToDn(List* dbname, List* schemaname, List* seqname, List* last_value) { List* dataNodeList = NULL; PGXCNodeAllHandles* conn_handles = NULL; int msglen; - int low = 0; + int low = 0; int high = 0; errno_t rc = 0; GlobalTransactionId gxid = GetCurrentTransactionId(); @@ -2688,19 +2390,20 @@ static void sendUpdateSequenceMsgToDn(char* dbname, char* schemaname, char* seqn conn_handles = get_handles(dataNodeList, NULL, false); list_free_ext(dataNodeList); if (conn_handles->dn_conn_count != 1) { - ereport(ERROR, (errcode(ERRCODE_CONNECTION_EXCEPTION), + ereport(ERROR, (errcode(ERRCODE_CONNECTION_EXCEPTION), errmsg("Could not get handle on datanode for sequence"))); } exec_handle = conn_handles->datanode_handles[0]; } uint64 u_last_value; ereport(DEBUG1, - (errmsg("sendUpdateSequenceMsgToDn %s %ld", seqname, last_value))); + (errmsg("sendUpdateSequenceMsgToDn %s %ld", (char*)lfirst(list_head(seqname)), + *(int64*)lfirst(list_head(last_value))))); if (pgxc_node_begin(1, &exec_handle, gxid, true, false, PGXC_NODE_DATANODE)) { - ereport(ERROR, (errcode(ERRCODE_CONNECTION_EXCEPTION), + ereport(ERROR, (errcode(ERRCODE_CONNECTION_EXCEPTION), errmsg("Could not begin transaction on datanode for sequence"))); } - + PGXCNodeHandle* handle = NULL; handle = exec_handle; @@ -2711,12 +2414,29 @@ static void sendUpdateSequenceMsgToDn(char* dbname, char* schemaname, char* seqn (errcode(ERRCODE_OPERATE_FAILED), errmsg("Failed to send sendUpdateSequenceMsgToDn request " "to the node"))); - int dbname_len = strlen(dbname) + 1; - int schemaname_len = strlen(schemaname) + 1; - int seqname_len = strlen(seqname) + 1; + + ListCell* v = NULL; + int dbname_len = 0; + int schemaname_len = 0; + int seqname_len = 0; + + foreach(v, dbname) { + dbname_len += strlen((char*)lfirst(v)) + 1; + } + v = NULL; + foreach(v, schemaname) { + schemaname_len += strlen((char*)lfirst(v)) + 1; + } + v = NULL; + foreach(v, seqname) { + seqname_len += strlen((char*)lfirst(v)) + 1; + } + + int number1 = dbname->length; msglen = 4; /* for the length itself */ - msglen += 1; /* for signed */ - msglen += sizeof(int64); + msglen += sizeof(int); /* for the number of sequences */ + msglen += 1 * dbname->length; /* for signed */ + msglen += sizeof(int64) * dbname->length; msglen += dbname_len + schemaname_len + seqname_len; /* msgType + msgLen */ @@ -2728,50 +2448,70 @@ static void sendUpdateSequenceMsgToDn(char* dbname, char* schemaname, char* seqn rc = memcpy_s(handle->outBuffer + handle->outEnd, handle->outSize - handle->outEnd, &msglen, sizeof(int)); securec_check(rc, "\0", "\0"); handle->outEnd += 4; - if (last_value < 0) { - handle->outBuffer[handle->outEnd++] = '-'; - u_last_value = (uint64)(last_value * -1); - } else { - handle->outBuffer[handle->outEnd++] = '+'; - u_last_value = (uint64)(last_value); - } - low = u_last_value & 0xFFFFFFFF; - high = (u_last_value >> 32) & 0xFFFFFFFF; - low = htonl(low); - high = htonl(high); - - rc = memcpy_s(handle->outBuffer + handle->outEnd, handle->outSize - handle->outEnd, &high, sizeof(high)); - securec_check(rc, "\0", "\0"); - handle->outEnd += sizeof(high); - - rc = memcpy_s(handle->outBuffer + handle->outEnd, handle->outSize - handle->outEnd, &low, sizeof(low)); - securec_check(rc, "\0", "\0"); - handle->outEnd += sizeof(low); - rc = memcpy_s(handle->outBuffer + handle->outEnd, handle->outSize - handle->outEnd, - dbname, dbname_len); + number1 = htonl(number1); + rc = memcpy_s(handle->outBuffer + handle->outEnd, sizeof(int), &number1, sizeof(int)); securec_check(rc, "\0", "\0"); - handle->outEnd += dbname_len; - rc = memcpy_s(handle->outBuffer + handle->outEnd, handle->outSize - handle->outEnd, - schemaname, schemaname_len); - securec_check(rc, "\0", "\0"); - handle->outEnd += schemaname_len; + handle->outEnd += sizeof(int); + + ListCell* cell1 = NULL; + ListCell* cell2 = NULL; + ListCell* cell3 = NULL; + ListCell* cell4 = NULL; + forfour(cell1, last_value, cell2, dbname, cell3, schemaname, cell4, seqname) { + if (*(int64*)lfirst(cell1) < 0) { + handle->outBuffer[handle->outEnd++] = '-'; + u_last_value = (uint64)(*(int64*)lfirst(cell1) * -1); + } else { + handle->outBuffer[handle->outEnd++] = '+'; + u_last_value = (uint64)(*(int64*)lfirst(cell1)); + } + low = u_last_value & 0xFFFFFFFF; + high = (u_last_value >> 32) & 0xFFFFFFFF; + low = htonl(low); + high = htonl(high); - rc = memcpy_s(handle->outBuffer + handle->outEnd, handle->outSize - handle->outEnd, - seqname, seqname_len); - securec_check(rc, "\0", "\0"); - handle->outEnd += seqname_len; + rc = memcpy_s(handle->outBuffer + handle->outEnd, handle->outSize - handle->outEnd, &high, sizeof(high)); + securec_check(rc, "\0", "\0"); + handle->outEnd += sizeof(high); + + rc = memcpy_s(handle->outBuffer + handle->outEnd, handle->outSize - handle->outEnd, &low, sizeof(low)); + securec_check(rc, "\0", "\0"); + handle->outEnd += sizeof(low); + + rc = memcpy_s(handle->outBuffer + handle->outEnd, handle->outSize - handle->outEnd, + (char*)lfirst(cell2), strlen((char*)lfirst(cell2)) + 1); + securec_check(rc, "\0", "\0"); + handle->outEnd += strlen((char*)lfirst(cell2)) + 1; + rc = memcpy_s(handle->outBuffer + handle->outEnd, handle->outSize - handle->outEnd, + (char*)lfirst(cell3), strlen((char*)lfirst(cell3)) + 1); + securec_check(rc, "\0", "\0"); + handle->outEnd += strlen((char*)lfirst(cell3)) + 1; + + rc = memcpy_s(handle->outBuffer + handle->outEnd, handle->outSize - handle->outEnd, + (char*)lfirst(cell4), strlen((char*)lfirst(cell4)) + 1); + securec_check(rc, "\0", "\0"); + handle->outEnd += strlen((char*)lfirst(cell4)) + 1; + } handle->state = DN_CONNECTION_STATE_QUERY; pgxc_node_flush(handle); - CheckUpdateSequenceMsgStatus(exec_handle, seqname, last_value); + CheckUpdateSequenceMsgStatus(exec_handle, (char*)lfirst(list_head(seqname)), + *(int64*)lfirst(list_head(last_value))); pfree_pgxc_all_handles(conn_handles); } #endif // ENABLE_MULTIPLE_NODES -void processUpdateSequenceMsg(List* nameList, int64 lastvalue) +void flushSequenceMsg() { StringInfoData retbuf; + pq_beginmessage(&retbuf, 'y'); + pq_endmessage(&retbuf); + pq_flush(); +} + +void processUpdateSequenceMsg(List* nameList, int64 lastvalue) +{ RangeVar* sequence = NULL; Oid relid; Form_pg_sequence seq; @@ -2794,18 +2534,14 @@ void processUpdateSequenceMsg(List* nameList, int64 lastvalue) if (!OidIsValid(relid)) { ereport( WARNING, (errcode(ERRCODE_OPERATE_FAILED), errmsg("Failed to find relation %s for sequence update", sequence->relname))); - goto SEND_SUCCESS_MSG; + return; } /* open and lock sequence */ init_sequence(relid, &elm, &seqrel); /* lock page' buffer and read tuple */ - seq = read_seq_tuple(elm, seqrel, &buf, &seqtuple, &uuid); + seq = read_seq_tuple(elm, seqrel, &buf, &seqtuple, &uuid); updateNextValForSequence(buf, seq, seqtuple, seqrel, lastvalue); relation_close(seqrel, NoLock); -SEND_SUCCESS_MSG: - pq_beginmessage(&retbuf, 'y'); - pq_endmessage(&retbuf); - pq_flush(); } #ifdef ENABLE_MULTIPLE_NODES @@ -2831,7 +2567,7 @@ static void CheckUpdateSequenceMsgStatus(PGXCNodeHandle* exec_handle, const char } #endif // ENABLE_MULTIPLE_NODES -static void updateNextValForSequence(Buffer buf, Form_pg_sequence seq, HeapTupleData seqtuple, Relation seqrel, +static void updateNextValForSequence(Buffer buf, Form_pg_sequence seq, HeapTupleData seqtuple, Relation seqrel, int64 result) { Page page; @@ -2839,7 +2575,7 @@ static void updateNextValForSequence(Buffer buf, Form_pg_sequence seq, HeapTuple char *seqname = NULL; page = BufferGetPage(buf); /* ready to change the on-disk (or really, in-buffer) tuple */ - + need_wal = RelationNeedsWAL(seqrel); if (IS_PGXC_DATANODE) { START_CRIT_SECTION(); @@ -2882,7 +2618,7 @@ static void updateNextValForSequence(Buffer buf, Form_pg_sequence seq, HeapTuple END_CRIT_SECTION(); } UnlockReleaseBuffer(buf); - /* 1 nextval execute on dn, will record in xlog above + /* 1 nextval execute on dn, will record in xlog above * 2 nextval execute on cn, will notify to dn for record * 3 nextval execute direct on another cn, will ignore it for execute direct on is against with write transaction */ @@ -2893,10 +2629,12 @@ static void updateNextValForSequence(Buffer buf, Form_pg_sequence seq, HeapTuple MemoryContext curr; seqname = GetGlobalSeqNameForUpdate(seqrel, &dbname, &schemaname); curr = MemoryContextSwitchTo(u_sess->top_transaction_mem_cxt); - u_sess->xact_cxt.sendSeqDbName = pstrdup(dbname); - u_sess->xact_cxt.sendSeqSchmaName = pstrdup(schemaname); - u_sess->xact_cxt.sendSeqName = pstrdup(seqname); - u_sess->xact_cxt.send_result = result; + int64* res = (int64*)palloc(sizeof(int64)); + *res = result; + u_sess->xact_cxt.sendSeqDbName = lappend(u_sess->xact_cxt.sendSeqDbName, pstrdup(dbname)); + u_sess->xact_cxt.sendSeqSchmaName = lappend(u_sess->xact_cxt.sendSeqSchmaName, pstrdup(schemaname)); + u_sess->xact_cxt.sendSeqName = lappend(u_sess->xact_cxt.sendSeqName, pstrdup(seqname)); + u_sess->xact_cxt.send_result = lappend(u_sess->xact_cxt.send_result, res); MemoryContextSwitchTo(curr); } else { /* nexval execute direct on cn will not notify dn */ @@ -2985,12 +2723,29 @@ static int64 GetNextvalResult(SeqTable sess_elm, Relation seqrel, Form_pg_sequen void checkAndDoUpdateSequence() { #ifdef ENABLE_MULTIPLE_NODES - if(u_sess->xact_cxt.sendSeqName != NULL) { - sendUpdateSequenceMsgToDn(u_sess->xact_cxt.sendSeqDbName, u_sess->xact_cxt.sendSeqSchmaName, + if (u_sess->xact_cxt.sendSeqName != NULL) { + sendUpdateSequenceMsgToDn(u_sess->xact_cxt.sendSeqDbName, u_sess->xact_cxt.sendSeqSchmaName, u_sess->xact_cxt.sendSeqName, u_sess->xact_cxt.send_result); - pfree_ext(u_sess->xact_cxt.sendSeqDbName); - pfree_ext(u_sess->xact_cxt.sendSeqSchmaName); - pfree_ext(u_sess->xact_cxt.sendSeqName); + list_free_deep(u_sess->xact_cxt.sendSeqDbName); + list_free_deep(u_sess->xact_cxt.sendSeqSchmaName); + list_free_deep(u_sess->xact_cxt.sendSeqName); + list_free_deep(u_sess->xact_cxt.send_result); + u_sess->xact_cxt.sendSeqDbName = NULL; + u_sess->xact_cxt.sendSeqSchmaName = NULL; + u_sess->xact_cxt.sendSeqName = NULL; + u_sess->xact_cxt.send_result = NULL; } -#endif +#endif +} + +template +static char* Int8or16Out(T_Int num) +{ + char* ret = NULL; + if (large) { + ret = DatumGetCString(DirectFunctionCall1(int16out, Int128GetDatum(num))); + } else { + ret = DatumGetCString(DirectFunctionCall1(int8out, num)); + } + return ret; } diff --git a/src/gausskernel/optimizer/commands/sequence/sequence_util.cpp b/src/gausskernel/optimizer/commands/sequence/sequence_util.cpp new file mode 100644 index 000000000..bc99a7d2e --- /dev/null +++ b/src/gausskernel/optimizer/commands/sequence/sequence_util.cpp @@ -0,0 +1,568 @@ +/* ------------------------------------------------------------------------- + * + * sequence.cpp + * openGauss sequences utility code. + * + * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2010-2012 Postgres-XC Development Group + * Portions Copyright (c) 2021, openGauss Contributors + * + * + * IDENTIFICATION + * src/gausskernel/optimizer/commands/sequence_util.cpp + * + * ------------------------------------------------------------------------- + */ + +#include "postgres.h" +#include "knl/knl_variable.h" + +#include "access/gtm.h" +#include "access/multixact.h" +#include "access/xlogproc.h" +#include "commands/dbcommands.h" +#include "commands/sequence.h" +#include "gtm/gtm_client.h" +#include "storage/lmgr.h" +#include "utils/lsyscache.h" + +/* + * Initialize a sequence's relation with the specified tuple as content + */ +void fill_seq_with_data(Relation rel, HeapTuple tuple) +{ + Buffer buf; + Page page; + sequence_magic* sm = NULL; + HeapPageHeader phdr; + + /* Initialize first page of relation with special magic number */ + buf = ReadBuffer(rel, P_NEW); + Assert(BufferGetBlockNumber(buf) == 0); + + page = BufferGetPage(buf); + + PageInit(page, BufferGetPageSize(buf), sizeof(sequence_magic), true); + sm = (sequence_magic*)PageGetSpecialPointer(page); + sm->magic = SEQ_MAGIC; + + phdr = (HeapPageHeader)page; + phdr->pd_xid_base = u_sess->utils_cxt.RecentXmin - FirstNormalTransactionId; + phdr->pd_multi_base = 0; + + /* hack: ensure heap_insert will insert on the just-created page */ + RelationSetTargetBlock(rel, 0); + + /* Now insert sequence tuple */ + (void)simple_heap_insert(rel, tuple); + + Assert(ItemPointerGetOffsetNumber(&(tuple->t_self)) == FirstOffsetNumber); + + /* + * Two special hacks here: + * + * 1. Since VACUUM does not process sequences, we have to force the tuple + * to have xmin = FrozenTransactionId now. Otherwise it would become + * invisible to SELECTs after 2G transactions. It is okay to do this + * because if the current transaction aborts, no other xact will ever + * examine the sequence tuple anyway. + * + * 2. Even though heap_insert emitted a WAL log record, we have to emit an + * XLOG_SEQ_LOG record too, since (a) the heap_insert record will not have + * the right xmin, and (b) REDO of the heap_insert record would re-init + * page and sequence magic number would be lost. This means two log + * records instead of one :-( + */ + LockBuffer(buf, BUFFER_LOCK_EXCLUSIVE); + + START_CRIT_SECTION(); + + { + /* + * Note that the "tuple" structure is still just a local tuple record + * created by heap_form_tuple; its t_data pointer doesn't point at the + * disk buffer. To scribble on the disk buffer we need to fetch the + * item pointer. But do the same to the local tuple, since that will + * be the source for the WAL log record, below. + */ + ItemId itemId; + Item item; + + itemId = PageGetItemId((Page)page, FirstOffsetNumber); + item = PageGetItem((Page)page, itemId); + + HeapTupleHeaderSetXmin(page, (HeapTupleHeader)item, FrozenTransactionId); + HeapTupleHeaderSetXminFrozen((HeapTupleHeader)item); + + HeapTupleHeaderSetXmin(page, tuple->t_data, FrozenTransactionId); + HeapTupleHeaderSetXminFrozen(tuple->t_data); + } + + MarkBufferDirty(buf); + + /* XLOG stuff */ + if (RelationNeedsWAL(rel)) { + xl_seq_rec xlrec; + XLogRecPtr recptr; + tuple->t_data->t_ctid = tuple->t_self; + RelFileNodeRelCopy(xlrec.node, rel->rd_node); + + XLogBeginInsert(); + XLogRegisterBuffer(0, buf, REGBUF_WILL_INIT); + + XLogRegisterData((char*)&xlrec, sizeof(xl_seq_rec)); + XLogRegisterData((char*)tuple->t_data, tuple->t_len); + + recptr = XLogInsert(RM_SEQ_ID, XLOG_SEQ_LOG, false, rel->rd_node.bucketNode); + + PageSetLSN(page, recptr); + } + + END_CRIT_SECTION(); + + UnlockReleaseBuffer(buf); +} + +/* + * If call setval, in any case ,we shoule forget all catched values. + */ +void ResetvalGlobal(Oid relid) +{ + SeqTable elm = NULL; + GlobalSeqInfoHashBucket* bucket = NULL; + uint32 hash = RelidGetHash(relid); + + bucket = &g_instance.global_seq[hash]; + + (void)LWLockAcquire(GetMainLWLockByIndex(bucket->lock_id), LW_EXCLUSIVE); + + elm = GetGlobalSeqElm(relid, bucket); + if (elm != NULL) { + elm->last = elm->cached; + } + + LWLockRelease(GetMainLWLockByIndex(bucket->lock_id)); +} + +/* + * Open the sequence and acquire RowExclusiveLock if needed + * + * If we haven't touched the sequence already in this transaction, + * we need to acquire a lock. We arrange for the lock to + * be owned by the top transaction, so that we don't need to do it + * more than once per xact. + */ +Relation lock_and_open_seq(SeqTable seq) +{ + LocalTransactionId thislxid = t_thrd.proc->lxid; + + /* Get the lock if not already held in this xact */ + if (seq->lxid != thislxid) { + ResourceOwner currentOwner; + + currentOwner = t_thrd.utils_cxt.CurrentResourceOwner; + PG_TRY(); + { + t_thrd.utils_cxt.CurrentResourceOwner = t_thrd.utils_cxt.TopTransactionResourceOwner; + LockRelationOid(seq->relid, RowExclusiveLock); + } + PG_CATCH(); + { + /* Ensure CurrentResourceOwner is restored on error */ + t_thrd.utils_cxt.CurrentResourceOwner = currentOwner; + PG_RE_THROW(); + } + PG_END_TRY(); + t_thrd.utils_cxt.CurrentResourceOwner = currentOwner; + + /* Flag that we have a lock in the current xact */ + seq->lxid = thislxid; + } + + /* We now know we have the lock, and can safely open the rel */ + return relation_open(seq->relid, NoLock); +} + +/* + * Given a relation OID, open and lock the sequence. p_elm and p_rel are + * output parameters. + */ +void init_sequence(Oid relid, SeqTable* p_elm, Relation* p_rel) +{ + SeqTable elm = NULL; + Relation seqrel; + + elm = GetSessSeqElm(relid); + + /* + * Open the sequence relation. + */ + seqrel = lock_and_open_seq(elm); + if (!RELKIND_IS_SEQUENCE(seqrel->rd_rel->relkind)) { + Oid nspoid = RelationGetNamespace(seqrel); + + if (seqrel->rd_rel->relpersistence == RELPERSISTENCE_TEMP) { + ereport(ERROR, + (errcode(ERRCODE_WRONG_OBJECT_TYPE), + errmsg("\"%s.%s\" is not a sequence", get_namespace_name(nspoid), RelationGetRelationName(seqrel)), + errdetail("Please make sure using the correct schema"))); + } else { + ereport(ERROR, + (errcode(ERRCODE_WRONG_OBJECT_TYPE), + errmsg( + "\"%s.%s\" is not a sequence", get_namespace_name(nspoid), RelationGetRelationName(seqrel)))); + } + } + /* + * If the sequence has been transactionally replaced since we last saw it, + * discard any cached-but-unissued values. We do not touch the currval() + * state, however. + */ + if (seqrel->rd_rel->relfilenode != elm->filenode) { + elm->filenode = seqrel->rd_rel->relfilenode; + errno_t rc = memcpy_s(&(elm->cached), sizeof(int128), &(elm->last), sizeof(int128)); + securec_check(rc, "\0", "\0"); + } + + /* Return results */ + *p_elm = elm; + *p_rel = seqrel; +} + +SeqTable GetSessSeqElm(Oid relid) +{ + SeqTable elm = NULL; + /* Look to see if we already have a seqtable entry for relation */ + for (elm = u_sess->cmd_cxt.seqtab; elm != NULL; elm = elm->next) { + if (elm->relid == relid) + break; + } + + /* + * Allocate new seqtable entry if we didn't find one. + * + * NOTE: seqtable entries remain in the list for the life of a backend. If + * the sequence itself is deleted then the entry becomes wasted memory, + * but it's small enough that this should not matter. + */ + if (elm == NULL) { + /* + * Time to make a new seqtable entry. These entries live as long as + * the backend does, so we use plain malloc for them. + */ + elm = (SeqTable)MemoryContextAlloc( + SESS_GET_MEM_CXT_GROUP(MEMORY_CONTEXT_OPTIMIZER), sizeof(SeqTableData)); + errno_t rc = EOK; + rc = memset_s(elm, sizeof(SeqTableData), 0, sizeof(SeqTableData)); + securec_check(rc, "\0", "\0"); + elm->relid = relid; + + elm->next = u_sess->cmd_cxt.seqtab; + u_sess->cmd_cxt.seqtab = elm; + } + + return elm; +} + +#ifdef PGXC +/* + * GetGlobalSeqName + * + * Returns a global sequence name adapted to GTM + * Name format is dbname.schemaname.seqname + * so as to identify in a unique way in the whole cluster each sequence + */ +char* GetGlobalSeqName(Relation seqrel, const char* new_seqname, const char* new_schemaname) +{ + char* seqname = NULL; + char* dbname = NULL; + char* schemaname = NULL; + char* relname = NULL; + int charlen; + + /* Get all the necessary relation names */ + dbname = get_database_name(seqrel->rd_node.dbNode); + if (dbname == NULL) { + ereport(ERROR, + (errcode(ERRCODE_CACHE_LOOKUP_FAILED), + errmsg("cache lookup failed for database %u", seqrel->rd_node.dbNode))); + } + + if (new_seqname != NULL) + relname = (char*)new_seqname; + else + relname = RelationGetRelationName(seqrel); + + if (new_schemaname != NULL) + schemaname = (char*)new_schemaname; + else + schemaname = get_namespace_name(RelationGetNamespace(seqrel)); + + if (schemaname == NULL) { + ereport(ERROR, + (errcode(ERRCODE_CACHE_LOOKUP_FAILED), + errmsg("cache lookup failed for schema %u", RelationGetNamespace(seqrel)))); + } + + /* Calculate the global name size including the dots and \0 */ + const int extra = 3; /* length of two dots and one EOL */ + charlen = strlen(dbname) + strlen(schemaname) + strlen(relname) + extra; + seqname = (char*)palloc(charlen); + + /* Form a unique sequence name with schema and database name for GTM */ + int ret = snprintf_s(seqname, charlen, charlen - 1, "%s.%s.%s", dbname, schemaname, relname); + securec_check_ss(ret, "\0", "\0"); + pfree_ext(dbname); + pfree_ext(schemaname); + + return seqname; +} + +char* GetGlobalSeqNameForUpdate(Relation seqrel, char** dbname, char** schemaname) +{ + char* relname = NULL; + + *dbname = get_database_name(seqrel->rd_node.dbNode); + if (*dbname == NULL) { + ereport(ERROR, + (errcode(ERRCODE_CACHE_LOOKUP_FAILED), + errmsg("cache lookup failed for database %u", seqrel->rd_node.dbNode))); + } + + *schemaname = get_namespace_name(RelationGetNamespace(seqrel)); + + if (*schemaname == NULL) { + ereport(ERROR, + (errcode(ERRCODE_CACHE_LOOKUP_FAILED), + errmsg("cache lookup failed for schema %u", RelationGetNamespace(seqrel)))); + } + + relname = RelationGetRelationName(seqrel); + + return relname; +} + +/* + * IsTempSequence + * + * Determine if given sequence is temporary or not. + */ +bool IsTempSequence(Oid relid) +{ + Relation seqrel; + bool res = false; + SeqTable elm = NULL; + + /* open and lock sequence */ + init_sequence(relid, &elm, &seqrel); + + res = RelationIsLocalTemp(seqrel); + relation_close(seqrel, NoLock); + return res; +} +#endif + +void seq_redo(XLogReaderState* record) +{ + uint8 info = XLogRecGetInfo(record) & ~XLR_INFO_MASK; + RedoBufferInfo buffer; + char* item = NULL; + Size itemsz; + xl_seq_rec* xlrec = (xl_seq_rec*)XLogRecGetData(record); + + if (info != XLOG_SEQ_LOG) { + elog(PANIC, "seq_redo: unknown op code %u", (uint)info); + } + + XLogInitBufferForRedo(record, 0, &buffer); + + /* + * We must always reinit the page and reinstall the magic number (see + * comments in fill_seq_with_data). However, since this WAL record type + * is also used for updating sequences, it's possible that a hot-standby + * backend is examining the page concurrently; so we mustn't transiently + * trash the buffer. The solution is to build the correct new page + * contents in local workspace and then memcpy into the buffer. Then only + * bytes that are supposed to change will change, even transiently. We + * must palloc the local page for alignment reasons. + */ + item = (char*)xlrec + sizeof(xl_seq_rec); + itemsz = XLogRecGetDataLen(record) - sizeof(xl_seq_rec); + + seqRedoOperatorPage(&buffer, item, itemsz); + + MarkBufferDirty(buffer.buf); + UnlockReleaseBuffer(buffer.buf); +} + +/* + * Register a callback for a sequence rename drop on GTM + * If need to implement rename sequence, this also need to + * change to hte t_thrd.top_mem_cxt + */ +void register_sequence_rename_cb(const char* oldseqname, const char* newseqname) +{ + rename_sequence_callback_arg* args = NULL; + char* oldseqnamearg = NULL; + char* newseqnamearg = NULL; + + /* We change the memory from u_sess->top_transaction_mem_cxt to t_thrd.top_mem_cxt, + * because we postpone the CallSequenceCallback after CN/DN commit. + * not same as CallGTMCallback which is called in PreparedTranscaton phase. + * The u_sess->top_transaction_mem_cxt is released, after Prepared finished. + * If CallSequenceCallback is called in Prepared Phase, it will be + * difficult to rollback if the transaction is abort after prepared. + */ + args = (rename_sequence_callback_arg*)MemoryContextAlloc( + THREAD_GET_MEM_CXT_GROUP(MEMORY_CONTEXT_OPTIMIZER), sizeof(rename_sequence_callback_arg)); + + oldseqnamearg = (char*)MemoryContextAlloc( + THREAD_GET_MEM_CXT_GROUP(MEMORY_CONTEXT_OPTIMIZER), strlen(oldseqname) + 1); + newseqnamearg = (char*)MemoryContextAlloc( + THREAD_GET_MEM_CXT_GROUP(MEMORY_CONTEXT_OPTIMIZER), strlen(newseqname) + 1); + + errno_t errorno = sprintf_s(oldseqnamearg, strlen(oldseqname) + 1, "%s", oldseqname); + securec_check_ss(errorno, "\0", "\0"); + errorno = sprintf_s(newseqnamearg, strlen(newseqname) + 1, "%s", newseqname); + securec_check_ss(errorno, "\0", "\0"); + + args->oldseqname = oldseqnamearg; + args->newseqname = newseqnamearg; + + RegisterSequenceCallback(rename_sequence_cb, (void*)args); +} + +/* + * Callback a sequence rename + */ +#ifndef ENABLE_MULTIPLE_NODES +void rename_sequence_cb(GTMEvent event, void* args) +{ + DISTRIBUTED_FEATURE_NOT_SUPPORTED(); +} +#else +void rename_sequence_cb(GTMEvent event, void* args) +{ + rename_sequence_callback_arg* cbargs = (rename_sequence_callback_arg*)args; + char* newseqname = cbargs->newseqname; + char* oldseqname = cbargs->oldseqname; + int err = 0; + int seqerrcode = ERRCODE_SQL_STATEMENT_NOT_YET_COMPLETE; + + /* + * A sequence is here renamed to its former name only when a transaction + * that involved a sequence rename was dropped. + */ + switch (event) { + case GTM_EVENT_ABORT: + /* + * Here sequence is renamed to its former name + * so what was new becomes old. + */ + err = RenameSequenceGTM(newseqname, oldseqname); + break; + case GTM_EVENT_COMMIT: + case GTM_EVENT_PREPARE: + /* Nothing to do */ + break; + default: + Assert(0); + } + + if (err == GTM_RESULT_COMM_ERROR) + seqerrcode = ERRCODE_CONNECTION_FAILURE; + + /* Report error if necessary */ + if (err < 0 && event != GTM_EVENT_ABORT) + ereport(ERROR, (errcode(seqerrcode), errmsg("GTM error, could not rename sequence"))); +} + +#endif + +/* + * Callback of sequence drop + */ +#ifndef ENABLE_MULTIPLE_NODES +void drop_sequence_cb(GTMEvent event, void* args) +{ + DISTRIBUTED_FEATURE_NOT_SUPPORTED(); +} +#else +void drop_sequence_cb(GTMEvent event, void* args) +{ + drop_sequence_callback_arg* cbargs = (drop_sequence_callback_arg*)args; + GTM_UUID seq_uuid = cbargs->seq_uuid; + GTM_SequenceDropType type = cbargs->type; + int err = 0; + int seqerrcode = ERRCODE_SQL_STATEMENT_NOT_YET_COMPLETE; + + /* + * A sequence is dropped on GTM if the transaction that created sequence + * aborts or if the transaction that dropped the sequence commits. This mechanism + * insures that sequence information is consistent on all the cluster nodes including + * GTM. This callback is done before transaction really commits so it can still fail + * if an error occurs. + */ + switch (event) { + case GTM_EVENT_COMMIT: + case GTM_EVENT_PREPARE: + if (type == GTM_DROP_SEQ) + err = DropSequenceGTM(seq_uuid); + break; + case GTM_EVENT_ABORT: + if (type == GTM_CREATE_SEQ) + err = DropSequenceGTM(seq_uuid); + break; + default: + /* Should not come here */ + Assert(0); + break; + } + + ereport(DEBUG2, + (errmodule(MOD_SEQ), + (errmsg("Call drop_sequence_cb: in state %d for sequence uuid %ld with type %d", event, seq_uuid, type)))); + + if (err == GTM_RESULT_COMM_ERROR) + seqerrcode = ERRCODE_CONNECTION_FAILURE; + + if (err < 0 && event != GTM_EVENT_ABORT) { + ereport(WARNING, + (errcode(seqerrcode), + errmsg( + "Deletion of sequences uuid %ld from gtm may be not completed, please check gtm log", seq_uuid))); + } +} + +#endif + +uint32 RelidGetHash(Oid seq_relid) +{ + return ((uint32)seq_relid % GS_NUM_OF_BUCKETS); +} + +/* + * Get sequence elem from bucket + */ +SeqTable GetGlobalSeqElm(Oid relid, GlobalSeqInfoHashBucket* bucket) +{ + DListCell* elem = NULL; + SeqTable currseq = NULL; + + /* Search sequence from bucket . */ + dlist_foreach_cell(elem, bucket->shb_list) + { + currseq = (SeqTable)lfirst(elem); + if (currseq->relid == relid) { + break; + } + } + + if (elem == NULL) { + return NULL; + } + + return currseq; +} diff --git a/src/gausskernel/optimizer/commands/tablecmds.cpp b/src/gausskernel/optimizer/commands/tablecmds.cpp index efd5b8ab9..30aaa6cb6 100644 --- a/src/gausskernel/optimizer/commands/tablecmds.cpp +++ b/src/gausskernel/optimizer/commands/tablecmds.cpp @@ -198,6 +198,11 @@ #include "client_logic/cache.h" #include "pgxc/redistrib.h" +#ifndef ENABLE_MULTIPLE_NODES +#include "utils/pl_package.h" +#endif + + extern void vacuum_set_xid_limits(Relation rel, int64 freeze_min_age, int64 freeze_table_age, TransactionId* oldestXmin, TransactionId* freezeLimit, TransactionId* freezeTableLimit, MultiXactId* multiXactFrzLimit); @@ -325,6 +330,12 @@ static const struct dropmsgstrings dropmsgstringarray[] = {{RELKIND_RELATION, gettext_noop("sequence \"%s\" does not exist, skipping"), gettext_noop("\"%s\" is not a sequence"), gettext_noop("Use DROP SEQUENCE to remove a sequence.")}, + {RELKIND_LARGE_SEQUENCE, + ERRCODE_UNDEFINED_TABLE, + gettext_noop("large sequence \"%s\" does not exist"), + gettext_noop("large sequence \"%s\" does not exist, skipping"), + gettext_noop("\"%s\" is not a large sequence"), + gettext_noop("Use DROP LARGE SEQUENCE to remove a large sequence.")}, {RELKIND_VIEW, ERRCODE_UNDEFINED_TABLE, gettext_noop("view \"%s\" does not exist"), @@ -620,7 +631,6 @@ static Const* GetListPartitionValue(Form_pg_attribute attrs, List* value); static void CompareListValue(const List* pos, Form_pg_attribute* attrs, PartitionState* partdef); static bool ConfirmTypeInfo(Oid* target_oid, int* target_mod, Const* src, Form_pg_attribute attrs, bool isinterval); -void addToastTableForNewPartition(Relation relation, Oid newPartId); static void ATPrepAddPartition(Relation rel); static void ATPrepDropPartition(Relation rel); static void ATPrepUnusableIndexPartition(Relation rel); @@ -636,6 +646,7 @@ static void ATUnusableGlobalIndex(Relation rel); static void ATExecUnusableAllIndexOnPartition(Relation rel, const char* partition_name); static void ATExecModifyRowMovement(Relation rel, bool rowMovement); static void ATExecTruncatePartition(Relation rel, AlterTableCmd* cmd); +static void ATExecTruncateSubPartition(Relation rel, AlterTableCmd* cmd); static void checkColStoreForExchange(Relation partTableRel, Relation ordTableRel); static void ATExecExchangePartition(Relation partTableRel, AlterTableCmd* cmd); static void UpdatePrevIntervalPartToRange( @@ -671,6 +682,7 @@ static void checkValidationForExchange(Relation partTableRel, Relation ordTableR static void finishIndexSwap(List* partIndexList, List* ordIndexList); static Oid getPartitionOid(Relation partTableRel, const char* partName, Node* rangePartDef); static void ATExecSplitPartition(Relation partTableRel, AlterTableCmd* cmd); +static void ATExecSplitSubPartition(Relation partTableRel, AlterTableCmd* cmd); static void checkSplitPointForSplit(SplitPartitionState* splitPart, Relation partTableRel, int srcPartIndex); static void checkDestPartitionNameForSplit(Oid partTableOid, List* partDefList); static List* getDestPartBoundaryList(Relation partTableRel, List* destPartDefList, List** listForFree); @@ -678,19 +690,24 @@ static void freeDestPartBoundaryList(List* list1, List* list2); static char* GenTemporaryPartitionName(Relation partTableRel, int sequence = 0); static Oid AddTemporaryPartition(Relation partTableRel, Node* partDef); static void AlterPartitionedSetWaitCleanGPI(bool alterGPI, Relation partTableRel, Oid partOid); +static void AlterSubPartitionedSetWaitCleanGPI(bool alterGPI, Relation partTableRel, Oid partOid, Oid subPartOid); static Oid AddTemporaryRangePartitionForAlterPartitions(const AlterTableCmd* cmd, Relation partTableRel, int sequence, bool* renameTargetPart); static void ExchangePartitionWithGPI(const AlterTableCmd* cmd, Relation partTableRel, Oid srcPartOid, TransactionId frozenXid, MultiXactId multiXid); static void fastAddPartition(Relation partTableRel, List* destPartDefList, List** newPartOidList); +static void FastAddListSubPartition(Relation rel, List* destPartDefList, Oid partOid, List** newPartOidList); +static void FastAddRangeSubPartition(Relation rel, List* destPartDefList, Oid partOid, List** newPartOidList); static void readTuplesAndInsert(Relation tempTableRel, Relation partTableRel); static Oid createTempTableForPartition(Relation partTableRel, Partition part); static void ATPrepEnableRowMovement(Relation rel); static void ATPrepDisableRowMovement(Relation rel); static void ATPrepTruncatePartition(Relation rel); +static void ATPrepTruncateSubPartition(Relation rel); static void ATPrepExchangePartition(Relation rel); static void ATPrepMergePartition(Relation rel); static void ATPrepSplitPartition(Relation rel); +static void ATPrepSplitSubPartition(Relation rel); static void replaceRepeatChunkId(HTAB* chunkIdHashTable, List* srcPartToastRels); static bool checkChunkIdRepeat(List* srcPartToastRels, int index, Oid chunkId); static void addCudescTableForNewPartition(Relation relation, Oid newPartId); @@ -861,6 +878,14 @@ static void CheckPartitionUnsupported(CreateStmt* stmt) errdetail( "cstore/timeseries don't support interval partition type."))); } + + if (stmt->partTableState != NULL && stmt->partTableState->subPartitionState != NULL) { + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + (errmsg("Unsupport feature"), errdetail("cstore/timeseries don't support subpartition table."), + errcause("The function is not implemented."), + erraction("Create a new row-store table to replace it.")))); + } + if (stmt->partTableState != NULL && (stmt->partTableState->partitionStrategy == PART_STRATEGY_LIST || stmt->partTableState->partitionStrategy == PART_STRATEGY_HASH)) { @@ -1789,6 +1814,87 @@ static void DetermineColumnCollationForMOTTable(Oid *collOid) } #endif +static void CheckPartitionKeyForCreateTable(PartitionState *partTableState, List *schema, TupleDesc descriptor) +{ + List *pos = NIL; + + /* get partitionkey's position */ + pos = GetPartitionkeyPos(partTableState->partitionKey, schema); + + /* check partitionkey's datatype */ + if (partTableState->partitionStrategy == PART_STRATEGY_VALUE) { + CheckValuePartitionKeyType(descriptor->attrs, pos); + } else if (partTableState->partitionStrategy == PART_STRATEGY_INTERVAL) { + CheckIntervalPartitionKeyType(descriptor->attrs, pos); + CheckIntervalValue(descriptor->attrs, pos, partTableState->intervalPartDef); + } else if (partTableState->partitionStrategy == PART_STRATEGY_RANGE) { + CheckRangePartitionKeyType(descriptor->attrs, pos); + } else if (partTableState->partitionStrategy == PART_STRATEGY_LIST) { + CheckListPartitionKeyType(descriptor->attrs, pos); + } else if (partTableState->partitionStrategy == PART_STRATEGY_HASH) { + CheckHashPartitionKeyType(descriptor->attrs, pos); + } else { + list_free_ext(pos); + ereport(ERROR, (errmodule(MOD_COMMAND), errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("The partition type is not supported!"), errdetail("N/A"), + errcause("The partition type is incorrect."), erraction("Use the correct partition type."))); + } + + /* + * Check partitionkey's value for none value-partition table as for value + * partition table, partition value is known until data get loaded. + */ + if (partTableState->partitionStrategy != PART_STRATEGY_VALUE && + partTableState->partitionStrategy != PART_STRATEGY_HASH && + partTableState->partitionStrategy != PART_STRATEGY_LIST) + ComparePartitionValue(pos, descriptor->attrs, partTableState->partitionList); + else if (partTableState->partitionStrategy == PART_STRATEGY_LIST) + CompareListValue(pos, descriptor->attrs, partTableState); + + list_free_ext(pos); +} + +static List *GetSubpPartitionDefList(PartitionState *partTableState, ListCell *cell) +{ + List *subPartitionList = NIL; + if (partTableState->partitionStrategy == PART_STRATEGY_RANGE) { + RangePartitionDefState *subPartitionDefState = (RangePartitionDefState *)lfirst(cell); + subPartitionList = subPartitionDefState->subPartitionDefState; + if (subPartitionList == NIL) { + Const *boundaryDefault = makeNode(Const); + boundaryDefault->ismaxvalue = true; + boundaryDefault->location = -1; + RangePartitionDefState *tmpSubPartitionDefState = makeNode(RangePartitionDefState); + tmpSubPartitionDefState->boundary = list_make1(boundaryDefault); + subPartitionList = lappend(subPartitionList, tmpSubPartitionDefState); + } + } else if (partTableState->partitionStrategy == PART_STRATEGY_LIST) { + ListPartitionDefState *subPartitionDefState = (ListPartitionDefState *)lfirst(cell); + subPartitionList = subPartitionDefState->subPartitionDefState; + if (subPartitionList == NIL) { + Const *boundaryDefault = makeNode(Const); + boundaryDefault->ismaxvalue = true; + boundaryDefault->location = -1; + ListPartitionDefState *tmpSubPartitionDefState = makeNode(ListPartitionDefState); + tmpSubPartitionDefState->boundary = list_make1(boundaryDefault); + subPartitionList = lappend(subPartitionList, tmpSubPartitionDefState); + } + } else if (partTableState->partitionStrategy == PART_STRATEGY_HASH) { + HashPartitionDefState *subPartitionDefState = (HashPartitionDefState *)lfirst(cell); + subPartitionList = subPartitionDefState->subPartitionDefState; + if (subPartitionList == NIL) { + Const *boundaryDefault = makeNode(Const); + boundaryDefault->ismaxvalue = true; + boundaryDefault->location = -1; + HashPartitionDefState *tmpSubPartitionDefState = makeNode(HashPartitionDefState); + tmpSubPartitionDefState->boundary = list_make1(boundaryDefault); + subPartitionList = lappend(subPartitionList, tmpSubPartitionDefState); + } + } + + return subPartitionList; +} + /* ---------------------------------------------------------------- * DefineRelation * Creates a new relation. @@ -1927,7 +2033,7 @@ Oid DefineRelation(CreateStmt* stmt, char relkind, Oid ownerId, bool isCTAS) * note: the object must be of the ordinary table, sequence, view or * composite type */ - if (!OidIsValid(ownerId) && (relkind == RELKIND_RELATION || relkind == RELKIND_SEQUENCE || + if (!OidIsValid(ownerId) && (relkind == RELKIND_RELATION || RELKIND_IS_SEQUENCE(relkind) || relkind == RELKIND_VIEW || relkind == RELKIND_COMPOSITE_TYPE || relkind == RELKIND_CONTQUERY)) ownerId = GetUserIdFromNspId(namespaceId); @@ -1979,7 +2085,6 @@ Oid DefineRelation(CreateStmt* stmt, char relkind, Oid ownerId, bool isCTAS) } dfsTablespace = IsSpecifiedTblspc(tablespaceId, FILESYSTEM_HDFS); - if (dfsTablespace) { FEATURE_NOT_PUBLIC_ERROR("HDFS is not yet supported."); } @@ -2348,41 +2453,56 @@ Oid DefineRelation(CreateStmt* stmt, char relkind, Oid ownerId, bool isCTAS) } if (stmt->partTableState) { - List* pos = NIL; + CheckPartitionKeyForCreateTable(stmt->partTableState, schema, descriptor); + if (stmt->partTableState->subPartitionState != NULL) { + ListCell *cell = NULL; + Assert(list_length(stmt->partTableState->partitionKey) == 1); + Assert(list_length(stmt->partTableState->subPartitionState->partitionKey) == 1); - /* get partitionkey's position */ - pos = GetPartitionkeyPos(stmt->partTableState->partitionKey, schema); + ColumnRef *partitionKeyRef = (ColumnRef *)linitial(stmt->partTableState->partitionKey); + ColumnRef *subPartitionKeyRef = + (ColumnRef *)linitial(stmt->partTableState->subPartitionState->partitionKey); + char *partitonKeyName = ((Value *)linitial(partitionKeyRef->fields))->val.str; + char *subPartitonKeyName = ((Value *)linitial(subPartitionKeyRef->fields))->val.str; + if (!strcmp(partitonKeyName, subPartitonKeyName)) { + ereport( + ERROR, + (errmodule(MOD_COMMAND), errcode(ERRCODE_DUPLICATE_OBJECT), + errmsg("The two partition keys of a subpartition partition table are the same."), errdetail("N/A"), + errcause("The two partition keys of a subpartition partition table cannot be the same."), + erraction("Partition keys cannot be the same column."))); + } + foreach (cell, stmt->partTableState->partitionList) { + stmt->partTableState->subPartitionState->partitionList = + GetSubpPartitionDefList(stmt->partTableState, cell); + CheckPartitionKeyForCreateTable(stmt->partTableState->subPartitionState, schema, descriptor); + } + stmt->partTableState->subPartitionState->partitionList = NIL; - /* check partitionkey's datatype */ - if (stmt->partTableState->partitionStrategy == PART_STRATEGY_VALUE) { - CheckValuePartitionKeyType(descriptor->attrs, pos); - } else if (stmt->partTableState->partitionStrategy == PART_STRATEGY_INTERVAL) { - CheckIntervalPartitionKeyType(descriptor->attrs, pos); - CheckIntervalValue(descriptor->attrs, pos, stmt->partTableState->intervalPartDef); - } else if (stmt->partTableState->partitionStrategy == PART_STRATEGY_RANGE) { - CheckRangePartitionKeyType(descriptor->attrs, pos); - } else if (stmt->partTableState->partitionStrategy == PART_STRATEGY_LIST) { - CheckListPartitionKeyType(descriptor->attrs, pos); - } else if (stmt->partTableState->partitionStrategy == PART_STRATEGY_HASH) { - CheckHashPartitionKeyType(descriptor->attrs, pos); - } else { - list_free_ext(pos); - ereport(ERROR, - (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("Unsupported partition table!"))); + if (storage_type == SEGMENT_PAGE) { + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + (errmsg("Un-support feature"), + errdetail("The subpartition table do not support segment-page storage."), + errcause("The function is not implemented."), + erraction("Do not set up segment-page storage.")))); + } + + if (hashbucket) { + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + (errmsg("Un-support feature"), + errdetail("The subpartition table do not support hashbucket."), + errcause("The function is not implemented."), + erraction("Do not set up hashbucket.")))); + } + + if (pg_strcasecmp(storeChar, TABLE_ACCESS_METHOD_USTORE) == 0) { + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + (errmsg("Un-support feature"), + errdetail("The subpartition table does not support ustore."), + errcause("The function is not implemented."), + erraction("Do not set up ustore.")))); + } } - - /* - * Check partitionkey's value for none value-partition table as for value - * partition table, partition value is known until data get loaded. - */ - if (stmt->partTableState->partitionStrategy != PART_STRATEGY_VALUE && - stmt->partTableState->partitionStrategy != PART_STRATEGY_HASH && - stmt->partTableState->partitionStrategy != PART_STRATEGY_LIST) - ComparePartitionValue(pos, descriptor->attrs, stmt->partTableState->partitionList); - else if (stmt->partTableState->partitionStrategy == PART_STRATEGY_LIST) - CompareListValue(pos, descriptor->attrs, stmt->partTableState); - - list_free_ext(pos); } localHasOids = interpretOidsOption(stmt->options); @@ -2510,7 +2630,7 @@ Oid DefineRelation(CreateStmt* stmt, char relkind, Oid ownerId, bool isCTAS) CeHeapInfo *ceHeapInfo = NULL; ceHeapInfo = (CeHeapInfo*) palloc(sizeof(CeHeapInfo)); ceHeapInfo->attnum = attnum; - set_column_encryption(colDef, ceHeapInfo); + process_encrypted_columns(colDef, ceHeapInfo); ceLst = lappend (ceLst, ceHeapInfo); } } @@ -2893,6 +3013,11 @@ ObjectAddresses* PreCheckforRemoveRelation(DropStmt* drop, StringInfo tmp_queryS relkind = RELKIND_SEQUENCE; relkind_s = "SEQUENCE"; break; + + case OBJECT_LARGE_SEQUENCE: + relkind = RELKIND_LARGE_SEQUENCE; + relkind_s = "LARGE SEQUENCE"; + break; case OBJECT_VIEW: relkind = RELKIND_VIEW; @@ -3162,6 +3287,11 @@ void RemoveRelations(DropStmt* drop, StringInfo tmp_queryString, RemoteQueryExec relkind_s = "SEQUENCE"; break; + case OBJECT_LARGE_SEQUENCE: + relkind = RELKIND_LARGE_SEQUENCE; + relkind_s = "LARGE SEQUENCE"; + break; + case OBJECT_VIEW: relkind = RELKIND_VIEW; relkind_s = "VIEW"; @@ -3473,7 +3603,7 @@ ObjectAddresses* PreCheckforRemoveObjects( errmsg("\"%s\" is an aggregate function", NameListToString(objname)), errhint("Use DROP AGGREGATE to drop aggregate functions."))); - CacheInvalidateFunction(funcOid); + CacheInvalidateFunction(funcOid, InvalidOid); ReleaseSysCache(tup); } @@ -3677,6 +3807,30 @@ static void RangeVarCallbackForDropRelation( } } +void TruncateOnePart(Relation rel, HeapTuple tup) +{ + Oid toastOid = ((Form_pg_partition)GETSTRUCT(tup))->reltoastrelid; + Relation toastRel = NULL; + MultiXactId minmulti = GetOldestMultiXactId(); + + Oid partOid = HeapTupleGetOid(tup); + Partition p = partitionOpen(rel, partOid, AccessExclusiveLock); + PartitionSetNewRelfilenode(rel, p, u_sess->utils_cxt.RecentXmin, + RelationIsColStore(rel) ? InvalidMultiXactId : minmulti); + + /* process the toast table */ + if (OidIsValid(toastOid)) { + Assert(rel->rd_rel->relpersistence != RELPERSISTENCE_UNLOGGED); + toastRel = heap_open(toastOid, AccessExclusiveLock); + RelationSetNewRelfilenode(toastRel, u_sess->utils_cxt.RecentXmin, minmulti); + heap_close(toastRel, AccessExclusiveLock); + } + partitionClose(rel, p, AccessExclusiveLock); + + /* report truncate partition to PgStatCollector */ + pgstat_report_truncate(partOid, rel->rd_id, rel->rd_rel->relisshared); +} + /* * ExecuteTruncate * Executes a TRUNCATE command. @@ -4117,26 +4271,25 @@ void ExecuteTruncate(TruncateStmt* stmt) /* process all partition and toast */ partTupleList = searchPgPartitionByParentId(PART_OBJ_TYPE_TABLE_PARTITION, rel->rd_id); foreach (partCell, partTupleList) { - HeapTuple tup = (HeapTuple)lfirst(partCell); - Oid toastOid = ((Form_pg_partition)GETSTRUCT(tup))->reltoastrelid; - Relation toastRel = NULL; + if (RelationIsSubPartitioned(rel)) { + HeapTuple tup = (HeapTuple)lfirst(partCell); + Oid partOid = HeapTupleGetOid(tup); + Partition p = partitionOpen(rel, partOid, AccessExclusiveLock); + Relation partRel = partitionGetRelation(rel, p); + List* subPartTupleList = searchPgPartitionByParentId(PART_OBJ_TYPE_TABLE_SUB_PARTITION, partOid); + ListCell* subPartCell = NULL; + foreach (subPartCell, subPartTupleList) { + HeapTuple tup = (HeapTuple)lfirst(subPartCell); + TruncateOnePart(partRel, tup); + } + freePartList(subPartTupleList); - Oid partOid = HeapTupleGetOid(tup); - Partition p = partitionOpen(rel, partOid, AccessExclusiveLock); - PartitionSetNewRelfilenode(rel, p, u_sess->utils_cxt.RecentXmin, - RelationIsColStore(rel) ? InvalidMultiXactId : minmulti); - - /* process the toast table */ - if (OidIsValid(toastOid)) { - Assert(rel->rd_rel->relpersistence != RELPERSISTENCE_UNLOGGED); - toastRel = heap_open(toastOid, AccessExclusiveLock); - RelationSetNewRelfilenode(toastRel, u_sess->utils_cxt.RecentXmin, minmulti); - heap_close(toastRel, NoLock); + releaseDummyRelation(&partRel); + partitionClose(rel, p, AccessExclusiveLock); + } else { + HeapTuple tup = (HeapTuple)lfirst(partCell); + TruncateOnePart(rel, tup); } - partitionClose(rel, p, NoLock); - - /* report truncate partition to PgStatCollector */ - pgstat_report_truncate(partOid, heap_relid, is_shared); } RelationSetNewRelfilenode(rel, u_sess->utils_cxt.RecentXmin, @@ -4512,6 +4665,14 @@ static List* MergeAttributes( coldef->cmprs_mode = restdef->cmprs_mode; list_delete_cell(schema, rest, prev); } else { +#ifndef ENABLE_MULTIPLE_NODES + if (u_sess->attr.attr_common.plsql_show_all_error) { + StringInfoData message; + initStringInfo(&message); + appendStringInfo(&message, "column \"%s\" specified more than once", coldef->colname); + InsertErrorMessage(message.data, 0, true); + } +#endif ereport(ERROR, (errcode(ERRCODE_DUPLICATE_COLUMN), errmsg("column \"%s\" specified more than once", coldef->colname))); @@ -5664,7 +5825,16 @@ void RenameRelationInternal(Oid myrelid, const char* newrelname) */ targetrelation = relation_open(myrelid, AccessExclusiveLock); - if (targetrelation->rd_rel->reltype == OBJECT_SEQUENCE || targetrelation->rd_rel->relkind == RELKIND_SEQUENCE) { + if (RelationIsSubPartitioned(targetrelation)) { + ereport( + ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + (errmsg("Un-support feature"), + errdetail("For subpartition table, ALTER TABLE ... RENAME is not yet supported."), + errcause("The function is not implemented."), erraction("Create a new table to replace it.")))); + } + + if (OBJECT_IS_SEQUENCE(targetrelation->rd_rel->reltype)|| RELKIND_IS_SEQUENCE(targetrelation->rd_rel->relkind)) { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("RENAME SEQUENCE is not yet supported."))); } @@ -5891,6 +6061,14 @@ void renamePartition(RenameStmt* stmt) rel = relation_open(partitionedTableOid, NoLock); + if (RelationIsSubPartitioned(rel)) { + ereport( + ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + (errmsg("Un-support feature"), + errdetail("For subpartition table, ALTER TABLE ... RENAME PARTITION/SUBPARTITION is not yet supported."), + errcause("The function is not implemented."), erraction("Use other actions instead.")))); + } /* * check relation is partitioned table */ @@ -5930,7 +6108,7 @@ void renamePartition(RenameStmt* stmt) rangePartDef = makeNode(RangePartitionDefState); rangePartDef->boundary = stmt->object; - transformRangePartitionValue(pstate, (Node*)rangePartDef, false); + transformPartitionValue(pstate, (Node*)rangePartDef, false); rangePartDef->boundary = transformConstIntoTargetType( rel->rd_att->attrs, ((RangePartitionMap*)rel->partMap)->partitionKey, rangePartDef->boundary); @@ -6152,6 +6330,50 @@ void CheckPartitionNotInUse(Partition part, const char* stmt) stmt, PartitionGetPartitionName(part)))); } + +/* + * Check whether the type is a table of type, which can not be altered + */ +static void checkTypeIsTableOfOrPackage(AlterTableStmt* stmt) +{ + Oid typeNamespace = InvalidOid; + Oid typeOid = InvalidOid; + if (stmt->relation->schemaname != NULL) { + typeNamespace = get_namespace_oid(stmt->relation->schemaname, false); + } else { + ListCell* cell = NULL; + foreach (cell, u_sess->catalog_cxt.activeSearchPath) { + typeNamespace = lfirst_oid(cell); + typeOid = GetSysCacheOid2(TYPENAMENSP, CStringGetDatum(stmt->relation->relname), + ObjectIdGetDatum(typeNamespace)); + if (OidIsValid(typeOid)) { +#ifndef ENABLE_MULTIPLE_NODES + /* don't allow to alter package or procedure type */ + if (IsPackageDependType(typeOid, InvalidOid)) { + ereport(ERROR, + (errcode(ERRCODE_WRONG_OBJECT_TYPE), + errmodule(MOD_PLSQL), + errmsg("Not allowed to alter type \"%s\"", stmt->relation->relname), + errdetail("\"%s\" is a package or procedure type", stmt->relation->relname), + errcause("feature not supported"), + erraction("check type name"))); + } +#endif + HeapTuple typeTup = SearchSysCache1(TYPEOID, ObjectIdGetDatum(typeOid)); + + if (HeapTupleIsValid(typeTup)) { + if (((Form_pg_type)GETSTRUCT(typeTup))->typtype == TYPTYPE_TABLEOF) { + ereport(ERROR, + (errcode(ERRCODE_WRONG_OBJECT_TYPE), + errmsg("table type does not support alter."))); + } + ReleaseSysCache(typeTup); + } + } + } + } +} + /* * AlterTableLookupRelation * Look up, and lock, the OID for the relation named by an alter table @@ -6206,7 +6428,7 @@ Oid AlterTableLookupRelation(AlterTableStmt* stmt, LOCKMODE lockmode, bool unloc foreach (lcmd, stmt->cmds) { AlterTableCmd* cmd = (AlterTableCmd*)lfirst(lcmd); - if (AT_TruncatePartition == cmd->subtype) { + if (AT_TruncatePartition == cmd->subtype || AT_TruncateSubPartition == cmd->subtype) { return RangeVarGetRelidExtended(stmt->relation, lockmode, stmt->missing_ok, @@ -6219,6 +6441,11 @@ Oid AlterTableLookupRelation(AlterTableStmt* stmt, LOCKMODE lockmode, bool unloc } } + /* TABLE OF TYPE and package type don't support alter */ + if (stmt->relkind == OBJECT_TYPE) { + checkTypeIsTableOfOrPackage(stmt); + } + // all other ops on index and heap, goes on return RangeVarGetRelidExtended(stmt->relation, lockmode, @@ -7416,6 +7643,10 @@ static void ATPrepCmd(List** wqueue, Relation rel, AlterTableCmd* cmd, bool recu ATPrepTruncatePartition(rel); pass = AT_PASS_MISC; break; + case AT_TruncateSubPartition: + ATPrepTruncateSubPartition(rel); + pass = AT_PASS_MISC; + break; case AT_ExchangePartition: ATSimplePermissions(rel, ATT_TABLE); ATPrepExchangePartition(rel); @@ -7435,8 +7666,11 @@ static void ATPrepCmd(List** wqueue, Relation rel, AlterTableCmd* cmd, bool recu ATSimplePermissions(rel, ATT_INDEX); pass = AT_PASS_MISC; break; - - + case AT_SplitSubPartition: + ATSimplePermissions(rel, ATT_TABLE); + ATPrepSplitSubPartition(rel); + pass = AT_PASS_MISC; + break; #ifdef PGXC case AT_DistributeBy: case AT_SubCluster: @@ -7477,6 +7711,7 @@ static bool ATCheckLedgerTableCmd(Relation rel, AlterTableCmd* cmd) case AT_ExchangePartition: /* EXCHANGE PARTITION */ case AT_DropPartition: /* DROP PARTITION */ case AT_TruncatePartition: /* TRUNCATE PARTITION */ + case AT_TruncateSubPartition: /* TRUNCATE PARTITION */ /* Blockchain related tables can't ALTER */ if (rel->rd_isblockchain) { ereport(ERROR, (errcode(ERRCODE_UNRECOGNIZED_NODE_TYPE), @@ -7574,7 +7809,18 @@ static void ATRewriteCatalogs(List** wqueue, LOCKMODE lockmode) } if (tab->relkind == RELKIND_RELATION || tab->relkind == RELKIND_MATVIEW) { - AlterTableCreateToastTable(tab->relid, (Datum)0); + Relation rel = relation_open(tab->relid, NoLock); + Datum toast_reloptions = (Datum)0; + + if (rel->rd_options != NULL && RelationIsTableAccessMethodUStoreType(rel->rd_options)) { + List* optsList = NIL; + DefElem* def = makeDefElem(pstrdup("storage_type"), + (Node*)makeString((char*)(TABLE_ACCESS_METHOD_USTORE))); + optsList = lappend(optsList, def); + toast_reloptions = transformRelOptions((Datum)0, optsList, NULL, NULL, false, false); + } + AlterTableCreateToastTable(tab->relid, toast_reloptions); + relation_close(rel, NoLock); } } } @@ -7801,6 +8047,9 @@ static void ATExecCmd(List** wqueue, AlteredTableInfo* tab, Relation rel, AlterT case AT_TruncatePartition: ATExecTruncatePartition(rel, cmd); break; + case AT_TruncateSubPartition: + ATExecTruncateSubPartition(rel, cmd); + break; case AT_ExchangePartition: ATExecExchangePartition(rel, cmd); break; @@ -7813,6 +8062,9 @@ static void ATExecCmd(List** wqueue, AlteredTableInfo* tab, Relation rel, AlterT case AT_AddIntoCBI: ATExecAddTblIntoCBI(rel, (AddTableIntoCBIState *)cmd->def); break; + case AT_SplitSubPartition: + ATExecSplitSubPartition(rel, cmd); + break; #ifdef PGXC case AT_DistributeBy: AtExecDistributeBy(rel, (DistributeBy*)cmd->def); @@ -8653,7 +8905,8 @@ static void ATSimplePermissions(Relation rel, int allowed_targets) case RELKIND_FOREIGN_TABLE: actual_target = ATT_FOREIGN_TABLE; break; - case RELKIND_SEQUENCE: { + case RELKIND_SEQUENCE: + case RELKIND_LARGE_SEQUENCE: { if (u_sess->attr.attr_common.IsInplaceUpgrade) { actual_target = ATT_SEQUENCE; } else @@ -9115,7 +9368,7 @@ static void ATExecAddColumn(List** wqueue, AlteredTableInfo* tab, Relation rel, if (colDef->clientLogicColumnRef != NULL) { if (colDef->clientLogicColumnRef != NULL) { ceHeapInfo = (CeHeapInfo *)palloc(sizeof(CeHeapInfo)); - set_column_encryption(colDef, ceHeapInfo); + process_encrypted_columns(colDef, ceHeapInfo); } cedesc = heap_open(ClientLogicCachedColumnsId, RowExclusiveLock); } @@ -10524,6 +10777,17 @@ static void ATExecDropColumn(List** wqueue, Relation rel, const char* colName, D } } +/** + * Primary key/Unique constraint on cstore does not support deferrable + */ +FORCE_INLINE static void CheckCUConstraint(Relation rel, const IndexStmt* stmt) +{ + if (RelationIsCUFormat(rel) && stmt->isconstraint && (stmt->deferrable || stmt->initdeferred)) { + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("column store unsupport DEFERRABLE/INITIALLY DEFERRED on primary key/unique constraint"))); + } +} /* * ALTER TABLE ADD INDEX * @@ -10536,16 +10800,11 @@ static void ATExecAddIndex(AlteredTableInfo* tab, Relation rel, IndexStmt* stmt, bool check_rights = false; bool skip_build = false; bool quiet = false; - Oid new_index; Assert(IsA(stmt, IndexStmt)); Assert(!stmt->concurrent); - /* Primary key/Unique constraint on cstore does not support deferrable */ - if (RelationIsCUFormat(rel) && stmt->isconstraint && (stmt->deferrable || stmt->initdeferred)) { - ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("column store unsupport DEFERRABLE/INITIALLY DEFERRED on primary key/unique constraint"))); - } + CheckCUConstraint(rel, stmt); /* suppress schema rights check when rebuilding existing index */ check_rights = !is_rebuild; @@ -10556,7 +10815,7 @@ static void ATExecAddIndex(AlteredTableInfo* tab, Relation rel, IndexStmt* stmt, /* The IndexStmt has already been through transformIndexStmt */ WaitState oldStatus = pgstat_report_waitstatus(STATE_CREATE_INDEX); - new_index = DefineIndex(RelationGetRelid(rel), + Oid new_index = DefineIndex(RelationGetRelid(rel), stmt, InvalidOid, /* no predefined OID */ true, /* is_alter_table */ @@ -10578,17 +10837,17 @@ static void ATExecAddIndex(AlteredTableInfo* tab, Relation rel, IndexStmt* stmt, */ if (OidIsValid(stmt->oldNode)) { Relation irel = index_open(new_index, NoLock); + /* + * For global tmp table, the mapping between relid and RelFileNode are not recorded in pg_class, + * so can not reuse relfilenode. + */ + if (RELATION_IS_GLOBAL_TEMP(irel)) { + index_close(irel, NoLock); + return; + } if (!stmt->isPartitioned || stmt->isGlobal) { RelationPreserveStorage(irel->rd_node, true); - /* - * For global tmp index reusing rnode, move the rnode from the old index - * rnode list to the new index rnode list. - */ - if (RELATION_IS_GLOBAL_TEMP(irel)) { - forget_gtt_storage_info(stmt->indexOid, irel->rd_node, true); - remember_gtt_storage_info(irel->rd_node, irel); - } } else { List* partOids = NIL; ListCell* cell = NULL; @@ -11801,6 +12060,7 @@ static void validateCheckConstraint(Relation rel, HeapTuple constrtup) Datum val; HeapTuple tuple = NULL; bool isnull = false; + MemoryContext oldcxt; Form_pg_constraint constrForm = (Form_pg_constraint)GETSTRUCT(constrtup); EState* estate = CreateExecutorState(); @@ -11826,24 +12086,24 @@ static void validateCheckConstraint(Relation rel, HeapTuple constrtup) TableScanDesc scan = tableam_scan_begin(rel, SnapshotNow, 0, NULL); - /* - * Switch to per-tuple memory context and reset it for each tuple - * produced, so we don't leak memory. - */ - MemoryContext oldcxt = MemoryContextSwitchTo(GetPerTupleMemoryContext(estate)); - while ((tuple = (HeapTuple) tableam_scan_getnexttuple(scan, ForwardScanDirection)) != NULL) { (void)ExecStoreTuple(tuple, slot, InvalidBuffer, false); + /* + * Switch to per-tuple memory context and reset it for each tuple + * produced, so we don't leak memory. + */ + oldcxt = MemoryContextSwitchTo(GetPerTupleMemoryContext(estate)); + if (!ExecQual(exprstate, econtext, true)) ereport(ERROR, (errcode(ERRCODE_CHECK_VIOLATION), errmsg("check constraint \"%s\" is violated by some row", NameStr(constrForm->conname)))); ResetExprContext(econtext); + MemoryContextSwitchTo(oldcxt); } - MemoryContextSwitchTo(oldcxt); tableam_scan_end(scan); ExecDropSingleTupleTableSlot(slot); FreeExecutorState(estate); @@ -12372,7 +12632,8 @@ static void ATPrepAlterColumnType(List** wqueue, AlteredTableInfo* tab, Relation char* tname = strVal(linitial(typname->names)); if (strcmp(tname, "smallserial") == 0 || strcmp(tname, "serial2") == 0 || strcmp(tname, "serial") == 0 || - strcmp(tname, "serial4") == 0 || strcmp(tname, "bigserial") == 0 || strcmp(tname, "serial8") == 0) + strcmp(tname, "serial4") == 0 || strcmp(tname, "bigserial") == 0 || strcmp(tname, "serial8") == 0 || + strcmp(tname, "largeserial") == 0 || strcmp(tname, "serial16") == 0) ereport(ERROR, (errcode(ERRCODE_INVALID_TABLE_DEFINITION), errmsg("cannot alter column type to \"%s\"", tname))); } @@ -12656,6 +12917,25 @@ static void ATExecAlterColumnType(AlteredTableInfo* tab, Relation rel, AlterTabl errmsg("cannot alter data type of partitioning column \"%s\"", colName))); } } + + if ((rel)->rd_rel->parttype == PARTTYPE_SUBPARTITIONED_RELATION) { + List *partTupleList = searchPgPartitionByParentId(PART_OBJ_TYPE_TABLE_PARTITION, RelationGetRelid(rel)); + if (partTupleList != NIL) { + bool isnull = false; + HeapTuple partTuple = (HeapTuple)linitial(partTupleList); + Datum datum = SysCacheGetAttr(PARTRELID, partTuple, Anum_pg_partition_partkey, &isnull); + if (!isnull) { + int2vector *subpartkey = (int2vector *)DatumGetPointer(datum); + for (int j = 0; j < subpartkey->dim1; j++) { + if (attnum == subpartkey->values[j]) { + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("cannot alter data type of subpartitioning column \"%s\"", colName))); + } + } + } + list_free_ext(partTupleList); + } + } } /* Check for multiple ALTER TYPE on same column --- can't cope */ @@ -12772,7 +13052,7 @@ static void ATExecAlterColumnType(AlteredTableInfo* tab, Relation rel, AlterTabl tab->changedIndexDefs = lappend(tab->changedIndexDefs, pg_get_indexdef_string(foundObject.objectId)); } - } else if (relKind == RELKIND_SEQUENCE) { + } else if (RELKIND_IS_SEQUENCE(relKind)) { /* * This must be a SERIAL column's sequence. We need * not do anything to it. @@ -13534,6 +13814,7 @@ void ATExecChangeOwner(Oid relationOid, Oid newOwnerId, bool recursing, LOCKMODE } break; case RELKIND_SEQUENCE: + case RELKIND_LARGE_SEQUENCE: if (!recursing && tuple_class->relowner != newOwnerId) { /* if it's an owned sequence, disallow changing it by itself */ Oid tableId; @@ -13542,7 +13823,7 @@ void ATExecChangeOwner(Oid relationOid, Oid newOwnerId, bool recursing, LOCKMODE if (sequenceIsOwned(relationOid, &tableId, &colId)) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("cannot change owner of sequence \"%s\"", NameStr(tuple_class->relname)), + errmsg("cannot change owner of (large) sequence \"%s\"", NameStr(tuple_class->relname)), errdetail("Sequence \"%s\" is linked to table \"%s\".", NameStr(tuple_class->relname), get_rel_name(tableId)))); @@ -13970,7 +14251,7 @@ static void change_owner_recurse_to_sequences(Oid relationOid, Oid newOwnerId, L seqRel = relation_open(depForm->objid, lockmode); /* skip non-sequence relations */ - if (RelationGetForm(seqRel)->relkind != RELKIND_SEQUENCE) { + if (!RELKIND_IS_SEQUENCE(RelationGetForm(seqRel)->relkind)) { /* No need to keep the lock */ relation_close(seqRel, lockmode); continue; @@ -14195,7 +14476,7 @@ static void ATExecSetRelOptionsToast(Oid toastid, List* defList, AlterTableType heap_close(pgclass, RowExclusiveLock); } -/** +/* * Do not modify compression parameters. */ void static CheckSupportModifyCompression(Relation rel, bytea* relOoption) @@ -14432,7 +14713,7 @@ static void ATExecSetRelOptions(Relation rel, List* defList, AlterTableType oper } CheckSupportModifyCompression(rel, relOpt); - + /* * All we need do here is update the pg_class row; the new options will be * propagated into relcaches during post-commit cache inval. @@ -14536,6 +14817,15 @@ static void ATExecSetTableSpaceForPartitionP2(AlteredTableInfo* tab, Relation re "\"%s\" must be a partitioned table for 'MOVE PARTITION CLAUSE'", RelationGetRelationName(rel)))); } + if (RelationIsSubPartitioned(rel)) { + ereport( + ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + (errmsg("Un-support feature"), + errdetail("For subpartition table, modifying tablespace is not yet supported."), + errcause("The function is not implemented."), erraction("Use other actions instead.")))); + } + if (!RelationIsRelation(rel) && !RelationIsIndex(rel)) { ereport(ERROR, (errcode(ERRCODE_INVALID_OPERATION), @@ -14570,7 +14860,7 @@ static void ATExecSetTableSpaceForPartitionP2(AlteredTableInfo* tab, Relation re errmsg("can not specify 'PARTITION FOR (value,,,)' for 'MOVE PARTITION CLAUSE'"))); } rangePartDef = (RangePartitionDefState*)partition; - transformRangePartitionValue(make_parsestate(NULL), (Node*)rangePartDef, false); + transformPartitionValue(make_parsestate(NULL), (Node*)rangePartDef, false); rangePartDef->boundary = transformConstIntoTargetType(rel->rd_att->attrs, ((RangePartitionMap*)rel->partMap)->partitionKey, rangePartDef->boundary); @@ -14618,6 +14908,14 @@ static void ATExecSetTableSpaceForPartitionP3(Oid tableOid, Oid partOid, Oid new * Need lock here in case we are recursing to toast table or index */ rel = relation_open(tableOid, NoLock); + if (RelationIsSubPartitioned(rel)) { + ereport( + ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + (errmsg("Un-support feature"), + errdetail("For subpartition table, modifying tablespace is not yet supported."), + errcause("The function is not implemented."), erraction("Use other actions instead.")))); + } part = partitionOpen(rel, partOid, lockmode); /* @@ -17108,6 +17406,14 @@ static RedistribState* BuildRedistribCommands(Oid relid, List* subCmds) /* Build the command tree for table redistribution */ PGXCRedistribCreateCommandList(redistribState, newLocInfo); + if (ISMATMAP(rel->rd_rel->relname.data)) { + FreeRelationLocInfo(newLocInfo); + pfree_ext(new_oid_array); + relation_close(rel, NoLock); + + return redistribState; + } + /* * Using the new locator info already available, check if constraints on * relation are compatible with the new distribution. @@ -17311,7 +17617,7 @@ void AlterTableNamespace(AlterObjectSchemaStmt* stmt) CheckGttTableInUse(rel); /* If it's an owned sequence, disallow moving it by itself. */ - if (rel->rd_rel->relkind == RELKIND_SEQUENCE) { + if (RELKIND_IS_SEQUENCE(rel->rd_rel->relkind)) { ereport( ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("ALTER SEQUENCE SET SCHEMA is not yet supported."))); @@ -17321,7 +17627,7 @@ void AlterTableNamespace(AlterObjectSchemaStmt* stmt) if (sequenceIsOwned(relid, &tableId, &colId)) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("cannot move an owned sequence into another schema"), + errmsg("cannot move an owned (large) sequence into another schema"), errdetail("Sequence \"%s\" is linked to table \"%s\".", RelationGetRelationName(rel), get_rel_name(tableId)))); @@ -17515,7 +17821,7 @@ static void AlterSeqNamespaces( seqRel = relation_open(depForm->objid, lockmode); /* skip non-sequence relations */ - if (RelationGetForm(seqRel)->relkind != RELKIND_SEQUENCE) { + if (!RELKIND_IS_SEQUENCE(RelationGetForm(seqRel)->relkind)) { /* No need to keep the lock */ relation_close(seqRel, lockmode); continue; @@ -17913,6 +18219,10 @@ static void RangeVarCallbackForAlterRelation( ereport(ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("\"%s\" is not a sequence", rv->relname))); } + if (reltype == OBJECT_LARGE_SEQUENCE && relkind != RELKIND_LARGE_SEQUENCE) { + ereport(ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("\"%s\" is not a large sequence", rv->relname))); + } + if (reltype == OBJECT_VIEW && relkind != RELKIND_VIEW && relkind != RELKIND_CONTQUERY) { ereport(ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("\"%s\" is not a view", rv->relname))); } @@ -17985,7 +18295,7 @@ static void RangeVarCallbackForAlterRelation( relkind != RELKIND_RELATION && relkind != RELKIND_VIEW && relkind != RELKIND_CONTQUERY && - relkind != RELKIND_SEQUENCE && + !RELKIND_IS_SEQUENCE(relkind) && relkind != RELKIND_STREAM && relkind != RELKIND_FOREIGN_TABLE && relkind != RELKIND_MATVIEW) { @@ -18665,10 +18975,23 @@ static void CompareListValue(const List* pos, Form_pg_attribute* attrs, Partitio Const* valueArray[partitionList->length]; // save all the list partion values. int partValueLen[partitionList->length]; // save list length of each partitionList int partListIdx = 0; + int partListDefaultPartNum = 0; /* Check if datatype of values ars consistent with partition keys' */ foreach (cell, partitionList) { partValue = ((ListPartitionDefState*)lfirst(cell))->boundary; foreach (valueCell, partValue) { + if (((Const *)lfirst(valueCell))->ismaxvalue) { + if (partValue->length != 1) { + ereport(ERROR, (errcode(ERRCODE_INVALID_OPERATION), + errmsg("The default partition can have only one boundary value."))); + } + partListDefaultPartNum++; + if (partListDefaultPartNum > 1) { + ereport(ERROR, (errcode(ERRCODE_INVALID_OPERATION), + errmsg("Partition table has multiple default partitions"))); + } + continue; + } if (!can_coerce_type(1, &(((Const*)lfirst(valueCell))->consttype), &typeOid, COERCION_IMPLICIT)) { list_free_ext(partitionList); ereport(ERROR, (errcode(ERRCODE_DATATYPE_MISMATCH), @@ -18694,6 +19017,10 @@ static void CompareListValue(const List* pos, Form_pg_attribute* attrs, Partitio /* Check if value overlapped in different list */ for (int m = 0; m < i; ++m) { for (int n = 0; n < partValueLen[m]; ++n) { + Assert(!((valueArray[i] + j)->ismaxvalue && (valueArray[m] + n)->ismaxvalue)); + if ((valueArray[i] + j)->ismaxvalue || (valueArray[m] + n)->ismaxvalue) { + continue; + } if (constCompare_constType(valueArray[i] + j, valueArray[m] + n) == 0) { ReportListPartitionIntersect(partitionList, valueArray, m, i); } @@ -18796,6 +19123,15 @@ static void ATPrepAddPartition(Relation rel) ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("can not add partition against NON-PARTITIONED table"))); } + if (RelationIsSubPartitioned(rel)) { + ereport( + ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + (errmsg("Un-support feature"), + errdetail("For subpartition table, add partition is not yet supported."), + errcause("The function is not implemented."), erraction("Use other actions instead.")))); + } + if (rel->partMap->type == PART_TYPE_INTERVAL) { ereport(ERROR, (errcode(ERRCODE_OPERATE_NOT_SUPPORTED), errmsg("can not add partition against interval partitioned table"))); @@ -18815,6 +19151,15 @@ static void ATPrepDropPartition(Relation rel) ereport(ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("can not drop partition against NON-PARTITIONED table"))); } + + if (RelationIsSubPartitioned(rel)) { + ereport( + ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + (errmsg("Un-support feature"), + errdetail("For subpartition table, drop partition is not yet supported."), + errcause("The function is not implemented."), erraction("Use other actions instead.")))); + } } static void ATPrepUnusableIndexPartition(Relation rel) @@ -18889,6 +19234,26 @@ static void ATPrepTruncatePartition(Relation rel) aclcheck_error(aclresult, ACL_KIND_CLASS, RelationGetRelationName(rel)); } +/* + * @@GaussDB@@ + * Target : data partition + * Brief : + * Description : + * Notes : + */ +static void ATPrepTruncateSubPartition(Relation rel) +{ + AclResult aclresult; + if (!RELATION_IS_PARTITIONED(rel)) { + ereport(ERROR, + (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("can not truncate partition against NON-PARTITIONED table"))); + } + + aclresult = pg_class_aclcheck(RelationGetRelid(rel), GetUserId(), ACL_TRUNCATE); + if (aclresult != ACLCHECK_OK) + aclcheck_error(aclresult, ACL_KIND_CLASS, RelationGetRelationName(rel)); +} + /* * @@GaussDB@@ * Target : data partition @@ -18902,6 +19267,14 @@ static void ATPrepExchangePartition(Relation rel) ereport(ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("can not exchange partition against NON-PARTITIONED table"))); } + + if (RelationIsSubPartitioned(rel)) { + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + (errmsg("Un-support feature"), + errdetail("For subpartition table, exchange partition is not yet supported."), + errcause("The function is not implemented."), erraction("Use other actions instead.")))); + } } static void ATPrepMergePartition(Relation rel) @@ -18910,6 +19283,15 @@ static void ATPrepMergePartition(Relation rel) ereport(ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("can not merge partitions against NON-PARTITIONED table"))); } + + if (RelationIsSubPartitioned(rel)) { + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + (errmsg("Un-support feature"), + errdetail("For subpartition table, merge partitions is not yet supported."), + errcause("The function is not implemented."), erraction("Use other actions instead.")))); + } + if (rel->partMap->type == PART_TYPE_LIST || rel->partMap->type == PART_TYPE_HASH) { ereport(ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("can not merge LIST/HASH partition table"))); @@ -18922,12 +19304,30 @@ static void ATPrepSplitPartition(Relation rel) ereport(ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("can not split partition against NON-PARTITIONED table"))); } + + if (RelationIsSubPartitioned(rel)) { + ereport( + ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + (errmsg("Un-support feature"), + errdetail("For subpartition table, split partition is not yet supported."), + errcause("The function is not implemented."), erraction("Use other actions instead.")))); + } + if (rel->partMap->type == PART_TYPE_LIST || rel->partMap->type == PART_TYPE_HASH) { ereport(ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("can not split LIST/HASH partition table"))); } } +static void ATPrepSplitSubPartition(Relation rel) +{ + if (!RelationIsSubPartitioned(rel)) { + ereport(ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), + errmsg("can not split subpartition against NON-SUBPARTITIONED table"))); + } +} + static void ATExecAddPartition(Relation rel, AddPartitionState* partState) { if (rel->partMap->type == PART_TYPE_LIST) { @@ -18947,7 +19347,7 @@ static void ATExecAddPartition(Relation rel, AddPartitionState* partState) ereport(ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("can not add none-range partition to range partition table"))); } - + } } @@ -18975,11 +19375,11 @@ static void ATExecAddListPartition(Relation rel, AddPartitionState* partState) CheckPartitionTablespace(listPartDef->tablespacename, rel->rd_rel->relowner); } /* check 2: can not add more partition, because more enough */ - if ((getNumberOfPartitions(rel) + partState->partitionList->length) > MAX_LH_PARTITION_NUM) { + if ((getNumberOfPartitions(rel) + partState->partitionList->length) > MAX_PARTITION_NUM) { ereport(ERROR, (errcode(ERRCODE_INVALID_TABLE_DEFINITION), errmsg("too many partitions for partitioned table"), - errhint("Number of partitions can not be more than %d", MAX_LH_PARTITION_NUM))); + errhint("Number of partitions can not be more than %d", MAX_PARTITION_NUM))); } /* check 3: name conflict check */ @@ -19042,7 +19442,7 @@ static void ATExecAddListPartition(Relation rel, AddPartitionState* partState) errhint("please reindex the unusable index first."))); } - bool* isTimestamptz = check_partkey_has_timestampwithzone(rel); + bool* isTimestamptz = CheckPartkeyHasTimestampwithzone(rel); pgPartRel = relation_open(PartitionRelationId, RowExclusiveLock); @@ -19073,7 +19473,7 @@ static void ATExecAddListPartition(Relation rel, AddPartitionState* partState) RelationGetStorageType(rel)); /* step 3: no need to update number of partitions in pg_partition */ - /* + /* * We must bump the command counter to make the newly-created partition * tuple visible for opening. */ @@ -19194,7 +19594,7 @@ static void ATExecAddRangePartition(Relation rel, AddPartitionState* partState) errhint("please reindex the unusable index first."))); } - bool* isTimestamptz = check_partkey_has_timestampwithzone(rel); + bool* isTimestamptz = CheckPartkeyHasTimestampwithzone(rel); pgPartRel = relation_open(PartitionRelationId, RowExclusiveLock); @@ -19292,6 +19692,7 @@ void fastDropPartition(Relation rel, Oid partOid, const char* stmt, Oid interval { Partition part = NULL; Relation pg_partition = NULL; + char* partName = NULL; pg_partition = relation_open(PartitionRelationId, RowExclusiveLock); /* step 2: drop the targeting partition entry in pg_partition */ @@ -19300,10 +19701,9 @@ void fastDropPartition(Relation rel, Oid partOid, const char* stmt, Oid interval ereport(ERROR, (errcode(ERRCODE_LOCK_WAIT_TIMEOUT), errmsg("could not acquire AccessExclusiveLock on dest table partition \"%s\", %s failed", - getPartitionName(partOid, false), - stmt))); + getPartitionName(partOid, false), stmt))); } - + partName = pstrdup(PartitionGetPartitionName(part)); /* drop toast table, index, and finally the partition iteselt */ dropIndexForPartition(partOid); dropToastTableOnPartition(partOid); @@ -19312,10 +19712,12 @@ void fastDropPartition(Relation rel, Oid partOid, const char* stmt, Oid interval dropDeltaTableOnPartition(partOid); } heapDropPartition(rel, part); - if (intervalPartOid) { UpdateIntervalPartToRange(pg_partition, intervalPartOid, stmt); } + ereport(LOG, + (errmsg("Partition %s(%d) has been fast dropped.", partName, partOid))); + pfree_ext(partName); /* step 3: no need to update number of partitions in pg_partition */ /* step 4: invalidate relation */ @@ -19568,6 +19970,13 @@ static void ATExecUnusableAllIndexOnPartition(Relation rel, const char* partitio errdetail("column-store relation doesn't support this ALTER yet"))); } + if (RelationIsSubPartitioned(rel)) { + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + (errmsg("Un-support feature"), + errdetail("For subpartition table, UNUSABLE LOCAL INDEXES is not yet supported."), + errcause("The function is not implemented."), erraction("Use other actions instead.")))); + } + /* getting the partition's oid, lock it the same time */ partOid = partitionNameGetPartitionOid(rel->rd_id, partition_name, @@ -19698,14 +20107,6 @@ static void ATExecModifyRowMovement(Relation rel, bool rowMovement) Relation pg_class; Form_pg_class rd_rel; bool dirty = false; - if (RelationIsPartitioned(rel)) { - Assert(rel->partMap != NULL); - if (rel->partMap->type == PART_TYPE_LIST || rel->partMap->type == PART_TYPE_HASH) { - ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("Row Movement"), - errdetail("Row Movement is not supported in List/Hash Partition currently"))); - } - } pg_class = heap_open(RelationRelationId, RowExclusiveLock); @@ -19771,6 +20172,34 @@ List* GetPartitionBoundary(Relation partTableRel, Node *PartDef) return boundary; } +static void ATExecTruncatePartitionForSubpartitionTable(Relation rel, Oid partOid, AlterTableCmd* cmd) +{ + /* truncate subpartitioned table */ + Partition part = partitionOpen(rel, partOid, AccessExclusiveLock); + Relation partRel = partitionGetRelation(rel, part); + + List *subPartOidList = relationGetPartitionOidList(partRel); + ListCell *subPartOidCell = NULL; + + if (!cmd->alterGPI) { + // Unusable Global Index + ATUnusableGlobalIndex(rel); + } + foreach (subPartOidCell, subPartOidList) { + Oid subPartOid = lfirst_oid(subPartOidCell); + + AlterSubPartitionedSetWaitCleanGPI(cmd->alterGPI, rel, partOid, subPartOid); + if (cmd->alterGPI) { + /* Delete subpartition tuples in GPI and add parent to pending vacuum list */ + DeleteGPITuplesForSubPartition(RelationGetRelid(rel), partOid, subPartOid); + } + heap_truncate_one_part(partRel, subPartOid); + pgstat_report_truncate(subPartOid, partRel->rd_id, partRel->rd_rel->relisshared); + } + + releaseDummyRelation(&partRel); + partitionClose(rel, part, AccessExclusiveLock); +} /* * @@GaussDB@@ @@ -19870,13 +20299,18 @@ static void ATExecTruncatePartition(Relation rel, AlterTableCmd* cmd) ereport(ERROR, (errcode(ERRCODE_UNDEFINED_OBJECT), errmsg("The partition number is invalid or out-of-range"))); } + if (RelationIsSubPartitioned(rel)) { + ATExecTruncatePartitionForSubpartitionTable(rel, partOid, cmd); + return; + } + AlterPartitionedSetWaitCleanGPI(cmd->alterGPI, rel, partOid); if (!cmd->alterGPI) { // Unusable Global Index ATUnusableGlobalIndex(rel); } else { - /* Delete partition tuples in GPI */ + /* Delete partition tuples in GPI and add parent to pending vacuum list */ DeleteGPITuplesForPartition(RelationGetRelid(rel), partOid); } @@ -19903,6 +20337,78 @@ static void ATExecTruncatePartition(Relation rel, AlterTableCmd* cmd) #endif /* ENABLE_MULTIPLE_NODES */ } +/* + * @@GaussDB@@ + * Target : data partition + * Brief : + * Description : + * Notes : + */ +static void ATExecTruncateSubPartition(Relation rel, AlterTableCmd* cmd) +{ + List* oidList = NULL; + List* relid = lappend_oid(NULL, rel->rd_id); + Oid subPartOid = InvalidOid; + + oidList = heap_truncate_find_FKs(relid); + if (PointerIsValid(oidList)) { + ereport(ERROR, + (errcode(ERRCODE_UNEXPECTED_NULL_VALUE), + errmsg("cannot truncate a partition owned by partitioned table which is referenced in a foreign key " + "constraint"))); + } + + /* + * Get the partition oid + * 1. Get partition oid from part_name cluase + * 2. Get partition oid values clause + */ + Oid partOid = InvalidOid; + if (PointerIsValid(cmd->name)) { + subPartOid = partitionNameGetPartitionOid(rel->rd_id, + cmd->name, + PART_OBJ_TYPE_TABLE_SUB_PARTITION, + AccessExclusiveLock, + false, + false, + NULL, + NULL, + NoLock, + &partOid); + } else { + ereport(ERROR, (errcode(ERRCODE_UNDEFINED_OBJECT), errmsg("The subpartition name is invalid"))); + } + + if (!OidIsValid(subPartOid)) { + ereport(ERROR, (errcode(ERRCODE_UNDEFINED_OBJECT), errmsg("The subpartition name is invalid"))); + } + + Partition part = partitionOpen(rel, partOid, AccessExclusiveLock); + Relation partRel = partitionGetRelation(rel, part); + + AlterSubPartitionedSetWaitCleanGPI(cmd->alterGPI, rel, partOid, subPartOid); + + if (!cmd->alterGPI) { + // Unusable Global Index + ATUnusableGlobalIndex(rel); + } else { + /* Delete subpartition tuples in GPI and add parent to pending vacuum list */ + DeleteGPITuplesForSubPartition(RelationGetRelid(rel), partOid, subPartOid); + } + + heap_truncate_one_part(partRel, subPartOid); + pgstat_report_truncate(subPartOid, partRel->rd_id, partRel->rd_rel->relisshared); + + releaseDummyRelation(&partRel); + partitionClose(rel, part, AccessExclusiveLock); + +#ifdef ENABLE_MULTIPLE_NODES + if (unlikely(RelationIsTsStore(rel) && OidIsValid(RelationGetDeltaRelId(rel))) && IS_PGXC_DATANODE) { + Tsdb::DeleteDeltaByPartition(GetActiveSnapshot(), rel, subPartOid); + } +#endif /* ENABLE_MULTIPLE_NODES */ +} + /* * - Brief: delete tuples in a redis delete delta table for partition table * being redistributed @@ -22282,7 +22788,7 @@ static Oid getPartitionElementsOid(const char* partitionElement) return *(Oid*)partitionElement; } -static int getPartitionElementsIndexByOid(Relation partTableRel, Oid partOid) +int getPartitionElementsIndexByOid(Relation partTableRel, Oid partOid) { int partSeq = 0; int partitionElementsNum = 0; @@ -22397,7 +22903,8 @@ static void ATExecSplitPartition(Relation partTableRel, AlterTableCmd* cmd) Oid srcPartOid = InvalidOid; int srcPartIndex = -1; ListCell* cell = NULL; - int currentPartNum = 0; + int currentPartNum; + int targetPartNum; int partKeyNum = 0; List* newPartOidList = NIL; List* destPartBoundaryList = NIL; @@ -22415,8 +22922,8 @@ static void ATExecSplitPartition(Relation partTableRel, AlterTableCmd* cmd) partTableOid = RelationGetRelid(partTableRel); // check final partition num - currentPartNum = getNumberOfPartitions(partTableRel); - if ((currentPartNum + list_length(destPartDefList) - 1) > MAX_PARTITION_NUM) { + targetPartNum = getNumberOfPartitions(partTableRel) + list_length(destPartDefList) - 1; + if (targetPartNum > MAX_PARTITION_NUM) { ereport(ERROR, (errcode(ERRCODE_INVALID_TABLE_DEFINITION), errmsg("too many partitions for partitioned table"), @@ -22598,6 +23105,13 @@ static void ATExecSplitPartition(Relation partTableRel, AlterTableCmd* cmd) // drop src partition fastDropPartition(partTableRel, srcPartOid, "SPLIT PARTITION"); + currentPartNum = getNumberOfPartitions(partTableRel); + if (currentPartNum != targetPartNum) { + ereport(ERROR, + (errmsg("An error occurred in the split partition process. " + "The number of target partitions is %d, but the number of current partitions is %d.", + targetPartNum, currentPartNum))); + } #ifdef PGXC if (IS_PGXC_DATANODE) { @@ -22637,6 +23151,412 @@ static void ATExecSplitPartition(Relation partTableRel, AlterTableCmd* cmd) } } +void CheckSrcListSubPartitionForSplit(Relation rel, Oid partOid, Oid subPartOid) +{ + Partition part = partitionOpen(rel, partOid, AccessExclusiveLock); + Relation partRel = partitionGetRelation(rel, part); + Partition subPart = partitionOpen(partRel, subPartOid, AccessExclusiveLock); + if (subPart->pd_part->partstrategy == PART_STRATEGY_HASH) { + ereport(ERROR, (errcode(ERRCODE_INVALID_OPERATION), errmsg("Hash subpartition does not support split."), + errdetail("N/A"), errcause("Hash subpartition does not support split."), + erraction("Use the correct split action"))); + } + if (subPart->pd_part->partstrategy != PART_STRATEGY_LIST) { + ereport( + ERROR, + (errcode(ERRCODE_INVALID_OPERATION), errmsg("The syntax format of split subpartition is incorrect."), + errdetail("SPLIT SUBPARTITION NAME VALUES shouldn't be used, it's for list subpartitions."), + errcause("Wrong split subpartition syntax used."), erraction("Use proper split subpartition syntax."))); + } + partitionClose(partRel, subPart, AccessExclusiveLock); + + int srcSubPartIndex = partOidGetPartSequence(partRel, subPartOid) - 1; + List* boundary = getListPartitionBoundaryList(partRel, srcSubPartIndex); + if (!(list_length(boundary) == 1 && ((Const*)list_nth(boundary, 0))->ismaxvalue)) { + ereport(ERROR, + (errcode(ERRCODE_INVALID_OPERATION), + errmsg("Only the default boundary subpartition can be splited."))); + } + + releaseDummyRelation(&partRel); + partitionClose(rel, part, AccessExclusiveLock); + list_free_deep(boundary); +} + +void checkDestListSubPartitionNameForSplit(Relation rel, List* destPartDefList, Oid srcSubPartOid) +{ + Assert(list_length(destPartDefList) == 2); + + char *srcSubPartName = getPartitionName(srcSubPartOid, false); + char *destSubPartName1 = ((ListPartitionDefState*)list_nth(destPartDefList, 0))->partitionName; + char *destSubPartName2 = ((ListPartitionDefState*)list_nth(destPartDefList, 1))->partitionName; + ListCell* lc = NULL; + + + // check dest subpartitions name with self + if (!strcmp(destSubPartName1, destSubPartName2)) { + ereport(ERROR, + (errcode(ERRCODE_DUPLICATE_OBJECT), + errmsg("The dest subpartitions has the same name."))); + } + /* check dest partitions name with existing partitions name + * We allow the dest subpartition to have the same name as the src subpartition. + * Because we're going to delete the src subpartition. + */ + List *partOidList = relationGetPartitionOidList(rel); + foreach (lc, destPartDefList) { + char *destSubPartName = ((ListPartitionDefState*)lfirst(lc))->partitionName; + if (!strcmp(destSubPartName, srcSubPartName)) { + continue; + } + ListCell *cell = NULL; + foreach (cell, partOidList) { + Oid partOid = lfirst_oid(cell); + if (InvalidOid != GetSysCacheOid3(PARTPARTOID, NameGetDatum(destSubPartName), + CharGetDatum(PART_OBJ_TYPE_TABLE_SUB_PARTITION), + ObjectIdGetDatum(partOid))) { + ereport(ERROR, + (errcode(ERRCODE_DUPLICATE_OBJECT), + errmsg("resulting subpartition \"%s\" name conflicts with that of an existing subpartition", + destSubPartName))); + } + } + } +} + +static void CheckDestRangeSubPartitionNameForSplit(Relation rel, List* destPartDefList) +{ + Assert(list_length(destPartDefList) == 2); + + ListCell* lc = NULL; + + // check dest subpartitions name with self + checkPartitionName(destPartDefList); + + // check dest subpartitions name with existing subpartitions name + List *partOidList = relationGetPartitionOidList(rel); + foreach (lc, destPartDefList) { + char *destSubPartName = ((ListPartitionDefState*)lfirst(lc))->partitionName; + + ListCell *cell = NULL; + foreach (cell, partOidList) { + Oid partOid = lfirst_oid(cell); + if (InvalidOid != GetSysCacheOid3(PARTPARTOID, NameGetDatum(destSubPartName), + CharGetDatum(PART_OBJ_TYPE_TABLE_SUB_PARTITION), + ObjectIdGetDatum(partOid))) { + ereport(ERROR, + (errcode(ERRCODE_DUPLICATE_OBJECT), + errmsg("resulting subpartition \"%s\" name conflicts with that of an existing subpartition", + destSubPartName))); + } + } + } +} + +static void ChecksrcRangeSubPartitionNameForSplit(Relation rel, Oid partOid, Oid subPartOid) +{ + Partition part = partitionOpen(rel, partOid, AccessExclusiveLock); + Relation partRel = partitionGetRelation(rel, part); + Partition subPart = partitionOpen(partRel, subPartOid, AccessExclusiveLock); + if (subPart->pd_part->partstrategy == PART_STRATEGY_HASH) { + ereport(ERROR, (errcode(ERRCODE_INVALID_OPERATION), errmsg("Hash subpartition does not support split."), + errdetail("N/A"), errcause("Hash subpartition does not support split."), + erraction("Use the correct split action"))); + } + if (subPart->pd_part->partstrategy != PART_STRATEGY_RANGE) { + ereport( + ERROR, + (errcode(ERRCODE_INVALID_OPERATION), errmsg("The syntax format of split subpartition is incorrect."), + errdetail("SPLIT SUBPARTITION NAME AT shouldn't be used, it's for range subpartitions."), + errcause("Wrong split subpartition syntax used."), erraction("Use proper split subpartition syntax."))); + } + partitionClose(partRel, subPart, AccessExclusiveLock); + releaseDummyRelation(&partRel); + partitionClose(rel, part, AccessExclusiveLock); +} + +void CheckDestListSubPartitionBoundaryForSplit(Relation rel, Oid partOid, SplitPartitionState* splitSubPart) +{ + ListCell *cell = NULL; + ParseState* pstate = NULL; + ListPartitionMap* partMap = NULL; + int partKeyNum = 0; + int listElementsNum = 0; + Partition part = partitionOpen(rel, partOid, AccessExclusiveLock); + Relation partRel = partitionGetRelation(rel, part); + + // get partition key number + partMap = (ListPartitionMap*)partRel->partMap; + partKeyNum = partMap->partitionKey->dim1; + listElementsNum = partMap->listElementsNum; + Assert(partKeyNum == 1); + + pstate = make_parsestate(NULL); + splitSubPart->newListSubPartitionBoundry = + transformListPartitionValue(pstate, splitSubPart->newListSubPartitionBoundry, true, true); + pfree_ext(pstate); + + List *tmp = splitSubPart->newListSubPartitionBoundry; + splitSubPart->newListSubPartitionBoundry = transformIntoTargetType( + partRel->rd_att->attrs, partMap->partitionKey->values[0], splitSubPart->newListSubPartitionBoundry); + list_free_ext(tmp); + + foreach (cell, splitSubPart->newListSubPartitionBoundry) { + Const *newBoundary = (Const *)lfirst(cell); + for (int i = 0; i < listElementsNum; i++) { + Const** boundarys = partMap->listElements[i].boundary; + int boundarysLen = partMap->listElements[i].len; + for (int j = 0; j < boundarysLen; j++) { + Const *boundary = boundarys[j]; + if (boundary->ismaxvalue) { + continue; + } + int compare = 0; + constCompare(boundary, newBoundary, compare); + if (compare == 0) { + ereport(ERROR, (errcode(ERRCODE_INVALID_OPERATION), + errmsg("list subpartition %s has overlapped value", + getPartitionName(partMap->listElements[i].partitionOid, false)))); + } + } + } + } + + releaseDummyRelation(&partRel); + partitionClose(rel, part, AccessExclusiveLock); +} + +int GetNumberOfSubPartitions(Relation rel) +{ + int subPartitionNum = 0; + List *partOidList = relationGetPartitionOidList(rel); + ListCell *cell = NULL; + foreach (cell, partOidList) { + Oid partOid = lfirst_oid(cell); + Partition part = partitionOpen(rel, partOid, AccessExclusiveLock); + Relation partRel = partitionGetRelation(rel, part); + subPartitionNum += GetNumberOfSubPartitions(partRel); + releaseDummyRelation(&partRel); + partitionClose(rel, part, AccessExclusiveLock); + } + return subPartitionNum; +} +static void ATExecSplitSubPartition(Relation partTableRel, AlterTableCmd* cmd) +{ + SplitPartitionState* splitSubPart = NULL; + ListCell* cell = NULL; + List* destPartDefList = NIL; + List* newSubPartOidList = NIL; + Oid tempTableOid = InvalidOid; + int currentPartNum = 0; + Oid partOid = InvalidOid; + Oid srcSubPartOid = InvalidOid; + + splitSubPart = (SplitPartitionState*)cmd->def; + destPartDefList = splitSubPart->dest_partition_define_list; + + // check final partition num + currentPartNum = GetNumberOfSubPartitions(partTableRel); + if ((currentPartNum + list_length(destPartDefList) - 1) > MAX_PARTITION_NUM) { + ereport(ERROR, + (errcode(ERRCODE_INVALID_TABLE_DEFINITION), + errmsg("too many subpartitions for partitioned table"), + errhint("Number of subpartitions can not be more than %d", MAX_PARTITION_NUM))); + } + if (splitSubPart->splitType == LISTSUBPARTITIION) { + srcSubPartOid = partitionNameGetPartitionOid(RelationGetRelid(partTableRel), + splitSubPart->src_partition_name, + PART_OBJ_TYPE_TABLE_SUB_PARTITION, + AccessExclusiveLock, + true, + false, + NULL, + NULL, + NoLock, + &partOid); + /* check src subpartition exists */ + if (!OidIsValid(srcSubPartOid)) { + ereport(ERROR, (errcode(ERRCODE_UNDEFINED_TABLE), + splitSubPart->src_partition_name != NULL + ? errmsg("split subpartition \"%s\" does not exist.", splitSubPart->src_partition_name) + : errmsg("split subpartition does not exist."))); + } + + // check src subpartition is default subpartition + CheckSrcListSubPartitionForSplit(partTableRel, partOid, srcSubPartOid); + // check dest subpartitions name not existing + checkDestListSubPartitionNameForSplit(partTableRel, destPartDefList, srcSubPartOid); + // check new boundry not existing + CheckDestListSubPartitionBoundaryForSplit(partTableRel, partOid, splitSubPart); + + /* check local index 'usable' state */ + if (!checkRelationLocalIndexesUsable(partTableRel)) { + ereport(ERROR, (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), + errmsg("can't split subpartition bacause relation %s has unusable local index", + NameStr(partTableRel->rd_rel->relname)), + errhint("please reindex the unusable index first."))); + } + + // check dest partition tablespace + foreach (cell, destPartDefList) { + ListPartitionDefState *listSubPartDef = (ListPartitionDefState *)lfirst(cell); + + CheckPartitionTablespace(listSubPartDef->tablespacename, partTableRel->rd_rel->relowner); + } + + ListPartitionDefState* listPartDef = NULL; + // set the two dest subpartitions boundary + listPartDef = (ListPartitionDefState*)list_nth(destPartDefList, 0); + listPartDef->boundary = splitSubPart->newListSubPartitionBoundry; + + /* + * generate boundary for the second partititon + */ + listPartDef = (ListPartitionDefState*)list_nth(destPartDefList, 1); + Const *boundaryDefault = makeNode(Const); + boundaryDefault->ismaxvalue = true; + boundaryDefault->location = -1; + listPartDef->boundary = list_make1(boundaryDefault); + } else if (splitSubPart->splitType == RANGESUBPARTITIION) { + srcSubPartOid = partitionNameGetPartitionOid(RelationGetRelid(partTableRel), + splitSubPart->src_partition_name, + PART_OBJ_TYPE_TABLE_SUB_PARTITION, + AccessExclusiveLock, + true, + false, + NULL, + NULL, + NoLock, + &partOid); + /* check src subpartition exists */ + if (!OidIsValid(srcSubPartOid)) { + ereport(ERROR, (errcode(ERRCODE_UNDEFINED_TABLE), + splitSubPart->src_partition_name != NULL + ? errmsg("split subpartition \"%s\" does not exist.", splitSubPart->src_partition_name) + : errmsg("split subpartition does not exist."))); + } + // check src subpartitions + ChecksrcRangeSubPartitionNameForSplit(partTableRel, partOid, srcSubPartOid); + // check dest subpartitions name not existing + CheckDestRangeSubPartitionNameForSplit(partTableRel, destPartDefList); + /* check local index 'usable' state */ + if (!checkRelationLocalIndexesUsable(partTableRel)) { + ereport(ERROR, (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), + errmsg("can't split subpartition bacause relation %s has unusable local index", + NameStr(partTableRel->rd_rel->relname)), + errhint("please reindex the unusable index first."))); + } + + // check dest partition tablespace + foreach (cell, destPartDefList) { + RangePartitionDefState *listSubPartDef = (RangePartitionDefState *)lfirst(cell); + + CheckPartitionTablespace(listSubPartDef->tablespacename, partTableRel->rd_rel->relowner); + } + Partition part = partitionOpen(partTableRel, partOid, AccessShareLock); + Relation partRel = partitionGetRelation(partTableRel, part); + + // get src partition sequence + int srcSubPartIndex = partOidGetPartSequence(partRel, srcSubPartOid) - 1; + if (srcSubPartIndex < 0) { + Assert(false); + ereport(ERROR, + (errcode(ERRCODE_NO_DATA_FOUND), + errmsg("the subpartition oid(%u) of subpartition name (%s) is not found in partitioned table(%u).", + srcSubPartOid, splitSubPart->src_partition_name ? splitSubPart->src_partition_name : "NULL", + partTableRel->rd_id))); + } + + if (PointerIsValid(splitSubPart->split_point)) { + RangePartitionDefState *rangePartDef = NULL; + + // check split point value + checkSplitPointForSplit(splitSubPart, partRel, srcSubPartIndex); + + Assert(list_length(destPartDefList) == 2); + + // set the two dest partitions boundary + rangePartDef = (RangePartitionDefState *)list_nth(destPartDefList, 0); + rangePartDef->boundary = splitSubPart->split_point; + + /* + * generate boundary for the second partititon + */ + rangePartDef = (RangePartitionDefState *)list_nth(destPartDefList, 1); + rangePartDef->boundary = getRangePartitionBoundaryList(partRel, srcSubPartIndex); + } + + // add dest partitions + FastAddRangeSubPartition(partTableRel, destPartDefList, partOid, &newSubPartOidList); + + releaseDummyRelation(&partRel); + partitionClose(partTableRel, part, AccessShareLock); + } + Partition part = partitionOpen(partTableRel, partOid, AccessExclusiveLock); + Relation partRel = partitionGetRelation(partTableRel, part); + Partition subPart = partitionOpen(partRel, srcSubPartOid, AccessExclusiveLock); + + // creat temp table and swap relfilenode with src partition + tempTableOid = createTempTableForPartition(partTableRel, subPart); + finishPartitionHeapSwap(srcSubPartOid, tempTableOid, false, u_sess->utils_cxt.RecentXmin, GetOldestMultiXactId()); + + CommandCounterIncrement(); + + partitionClose(partRel, subPart, NoLock); + + AlterSubPartitionedSetWaitCleanGPI(cmd->alterGPI, partTableRel, partOid, srcSubPartOid); + + if (cmd->alterGPI) { + DeleteGPITuplesForSubPartition(RelationGetRelid(partTableRel), partOid, srcSubPartOid); + } + + // drop src partition + fastDropPartition(partRel, srcSubPartOid, "SPLIT SUBPARTITION"); + CacheInvalidatePartcache(part); + + releaseDummyRelation(&partRel); + partitionClose(partTableRel, part, AccessExclusiveLock); + + if (splitSubPart->splitType == LISTSUBPARTITIION) { + /* + * add dest subpartitions. For list subpartition We allow the dest subpartition name + * to be the same as the src subpartition name. So we need delete src subpartition + * and then add the dest subpartition name. + */ + FastAddListSubPartition(partTableRel, destPartDefList, partOid, &newSubPartOidList); + } + + Relation tempTableRel = relation_open(tempTableOid, AccessExclusiveLock); + + // read temp table tuples and insert into partitioned table + readTuplesAndInsert(tempTableRel, partTableRel); + + relation_close(tempTableRel, NoLock); + + // delete temp table + ObjectAddress object; + object.classId = RelationRelationId; + object.objectId = tempTableOid; + object.objectSubId = 0; + performDeletion(&object, DROP_RESTRICT, PERFORM_DELETION_INTERNAL); + + // reindex dest partitions + foreach (cell, newSubPartOidList) { + Oid subPartOid = lfirst_oid(cell); + + reindexPartition(RelationGetRelid(partTableRel), subPartOid, REINDEX_REL_SUPPRESS_INDEX_USE, REINDEX_ALL_INDEX); + if (cmd->alterGPI) { + AddGPIForSubPartition(RelationGetRelid(partTableRel), partOid, subPartOid); + } + } + list_free_ext(newSubPartOidList); + + if (!cmd->alterGPI) { + // Unusable Global Index + ATUnusableGlobalIndex(partTableRel); + } +} + // check split point static void checkSplitPointForSplit(SplitPartitionState* splitPart, Relation partTableRel, int srcPartIndex) { @@ -22794,16 +23714,9 @@ static char* GenTemporaryPartitionName(Relation partTableRel, int sequence) return pstrdup(tmpName); } -#ifndef ENABLE_MULTIPLE_NODES static Oid GetNewPartitionOid(Relation pgPartRel, Relation partTableRel, Node *partDef, Oid bucketOid, bool *isTimestamptz, StorageType stype, Datum new_reloptions) { -#else -static Oid GetNewPartitionOid(Relation pgPartRel, Relation partTableRel, Node *partDef, - Oid bucketOid, bool *isTimestamptz, StorageType stype) -{ - Datum new_reloptions = (Datum)0; -#endif Oid newPartOid = InvalidOid; switch (nodeTag(partDef)) { case T_RangePartitionDefState: @@ -22871,12 +23784,19 @@ static Oid AddTemporaryPartition(Relation partTableRel, Node* partDef) Datum new_reloptions; List* old_reloptions = NIL; - bool* isTimestamptz = check_partkey_has_timestampwithzone(partTableRel); + bool* isTimestamptz = CheckPartkeyHasTimestampwithzone(partTableRel); bucketOid = RelationGetBucketOid(partTableRel); pgPartRel = relation_open(PartitionRelationId, RowExclusiveLock); /* add new partition entry in pg_partition */ tuple = SearchSysCache1(RELOID, ObjectIdGetDatum(partTableRel->rd_id)); + if (!HeapTupleIsValid(tuple)) { + ereport(ERROR, + (errcode(ERRCODE_CACHE_LOOKUP_FAILED), + (errmsg("cache lookup failed"), errdetail("cache lookup failed for relation %u", partTableRel->rd_id), + errcause("The oid of the target relation is invalid."), + erraction("Check whether the target relation is correct.")))); + } rel_reloptions = SysCacheGetAttr(RELOID, tuple, Anum_pg_class_reloptions, &isnull); old_reloptions = untransformRelOptions(rel_reloptions); @@ -22889,13 +23809,8 @@ static Oid AddTemporaryPartition(Relation partTableRel, Node* partDef) } /* Temporary tables do not use segment-page */ -#ifndef ENABLE_MULTIPLE_NODES newPartOid = GetNewPartitionOid(pgPartRel, partTableRel, partDef, bucketOid, isTimestamptz, RelationGetStorageType(partTableRel), new_reloptions); -#else - newPartOid = GetNewPartitionOid( - pgPartRel, partTableRel, partDef, bucketOid, isTimestamptz, RelationGetStorageType(partTableRel)); -#endif // We must bump the command counter to make the newly-created // partition tuple visible for opening. @@ -22922,19 +23837,66 @@ static Oid AddTemporaryPartition(Relation partTableRel, Node* partDef) * @in partTableRel: partition table relation. * @in partOid: partition oid. */ -static void AlterPartitionedSetWaitCleanGPI(bool alterGPI, Relation partTableRel, Oid partOid) +static void AlterPartitionedSetWaitCleanGPI(bool alterGPI, Relation partTableRel, Oid targetPartOid) { if (!alterGPI) { return; } - Partition part = partitionOpen(partTableRel, partOid, AccessExclusiveLock); - if (!PartitionEnableWaitCleanGpi(part)) { + Partition targetPart = NULL; + Partition part = NULL; + Relation partRel = NULL; + Oid parentOid = partid_get_parentid(targetPartOid); + if (parentOid != partTableRel->rd_id) { + part = partitionOpen(partTableRel, parentOid, AccessExclusiveLock); + partRel = partitionGetRelation(partTableRel, part); + targetPart = partitionOpen(partRel, targetPartOid, AccessExclusiveLock); + partitionClose(partTableRel, part, AccessExclusiveLock); + } else { + targetPart = partitionOpen(partTableRel, targetPartOid, AccessExclusiveLock); + } + + if (!PartitionEnableWaitCleanGpi(targetPart)) { /* partition create not set wait_clean_gpi, must use update, and we ensure no concurrency */ - PartitionSetWaitCleanGpi(partOid, true, false); + PartitionSetWaitCleanGpi(targetPartOid, true, false); /* Partitioned create set wait_clean_gpi=n, and we want save it, so just use inplace */ PartitionedSetWaitCleanGpi(RelationGetRelationName(partTableRel), RelationGetRelid(partTableRel), true, true); } + + if (partRel != NULL) { + partitionClose(partRel, targetPart, NoLock); + releaseDummyRelation(&partRel); + } else { + partitionClose(partTableRel, targetPart, NoLock); + } +} + +/* + * Description: Set one subpartitioned relation's reloptions wait_clean_gpi and + * one subpartition's reloptions wait_clean_gpi. + * + * Parameters: + * @in alterGPI: check whether is global partition index alter statement. + * @in partTableRel: partition table relation. + * @in subpartOid: subpartition oid. + */ +static void AlterSubPartitionedSetWaitCleanGPI(bool alterGPI, Relation partTableRel, Oid partOid, Oid subPartOid) +{ + if (!alterGPI) { + return; + } + + Partition part = partitionOpen(partTableRel, partOid, AccessShareLock); + Relation partRel = partitionGetRelation(partTableRel, part); + Partition subPart = partitionOpen(partRel, subPartOid, AccessExclusiveLock); + if (!PartitionEnableWaitCleanGpi(subPart)) { + /* partition create not set wait_clean_gpi, must use update, and we ensure no concurrency */ + PartitionSetWaitCleanGpi(subPartOid, true, false); + /* Partitioned create set wait_clean_gpi=n, and we want save it, so just use inplace */ + PartitionedSetWaitCleanGpi(RelationGetRelationName(partTableRel), RelationGetRelid(partTableRel), true, true); + } + partitionClose(partRel, subPart, NoLock); + releaseDummyRelation(&partRel); partitionClose(partTableRel, part, NoLock); } @@ -23150,11 +24112,12 @@ static void fastAddPartition(Relation partTableRel, List* destPartDefList, List* ListCell* cell = NULL; Oid bucketOid; - bool* isTimestamptz = check_partkey_has_timestampwithzone(partTableRel); + bool* isTimestamptz = CheckPartkeyHasTimestampwithzone(partTableRel); bucketOid = RelationGetBucketOid(partTableRel); pgPartRel = relation_open(PartitionRelationId, RowExclusiveLock); + #ifndef ENABLE_MULTIPLE_NODES bool isNull = false; HeapTuple tuple = SearchSysCache1(RELOID, ObjectIdGetDatum(partTableRel->rd_id)); @@ -23164,7 +24127,7 @@ static void fastAddPartition(Relation partTableRel, List* destPartDefList, List* ReleaseSysCache(tuple); list_free_ext(oldRelOptions); #endif - + foreach (cell, destPartDefList) { RangePartitionDefState* partDef = (RangePartitionDefState*)lfirst(cell); @@ -23193,6 +24156,9 @@ static void fastAddPartition(Relation partTableRel, List* destPartDefList, List* addToastTableForNewPartition(partTableRel, newPartOid); + ereport(LOG, + (errmsg("Partition %s(%d) has been fast Added.", partDef->partitionName, newPartOid))); + // invalidate relation CacheInvalidateRelcache(partTableRel); } @@ -23201,6 +24167,111 @@ static void fastAddPartition(Relation partTableRel, List* destPartDefList, List* relation_close(pgPartRel, NoLock); } +static void FastAddListSubPartition(Relation rel, List* destPartDefList, Oid partOid, List** newPartOidList) +{ + Relation pgPartRel = NULL; + Oid newSubPartOid = InvalidOid; + ListCell* cell = NULL; + Oid bucketOid; + + Partition part = partitionOpen(rel, partOid, AccessExclusiveLock); + Relation partRel = partitionGetRelation(rel, part); + + bool* isTimestamptz = CheckPartkeyHasTimestampwithzone(partRel, true); + + bucketOid = RelationGetBucketOid(partRel); + + pgPartRel = relation_open(PartitionRelationId, RowExclusiveLock); + + foreach (cell, destPartDefList) { + ListPartitionDefState* subPartDef = (ListPartitionDefState*)lfirst(cell); + + newSubPartOid = HeapAddListPartition(pgPartRel, + partRel->rd_id, + partRel->rd_rel->reltablespace, + bucketOid, + subPartDef, + partRel->rd_rel->relowner, + (Datum)0, + isTimestamptz, + RelationGetStorageType(partRel), + NULL, + true); + + *newPartOidList = lappend_oid(*newPartOidList, newSubPartOid); + + // We must bump the command counter to make the newly-created + // partition tuple visible for opening. + CommandCounterIncrement(); + + addIndexForPartition(rel, newSubPartOid); + + addToastTableForNewPartition(partRel, newSubPartOid, true); + + // invalidate relation + CacheInvalidateRelcache(partRel); + CacheInvalidatePartcache(part); + } + + pfree_ext(isTimestamptz); + relation_close(pgPartRel, NoLock); + releaseDummyRelation(&partRel); + partitionClose(rel, part, AccessExclusiveLock); +} + +static void FastAddRangeSubPartition(Relation rel, List* destPartDefList, Oid partOid, List** newPartOidList) +{ + Relation pgPartRel = NULL; + Oid newSubPartOid = InvalidOid; + ListCell* cell = NULL; + Oid bucketOid; + + Partition part = partitionOpen(rel, partOid, AccessExclusiveLock); + Relation partRel = partitionGetRelation(rel, part); + + bool* isTimestamptz = CheckPartkeyHasTimestampwithzone(partRel, true); + + bucketOid = RelationGetBucketOid(partRel); + + pgPartRel = relation_open(PartitionRelationId, RowExclusiveLock); + + foreach (cell, destPartDefList) { + RangePartitionDefState* subPartDef = (RangePartitionDefState*)lfirst(cell); + + newSubPartOid = heapAddRangePartition(pgPartRel, + partRel->rd_id, + partRel->rd_rel->reltablespace, + bucketOid, + subPartDef, + partRel->rd_rel->relowner, + (Datum)0, + isTimestamptz, + RelationGetStorageType(partRel), + AccessExclusiveLock, + NULL, + true); + + *newPartOidList = lappend_oid(*newPartOidList, newSubPartOid); + + // We must bump the command counter to make the newly-created + // partition tuple visible for opening. + CommandCounterIncrement(); + + addIndexForPartition(rel, newSubPartOid); + + addToastTableForNewPartition(partRel, newSubPartOid, true); + + // invalidate relation + CacheInvalidateRelcache(partRel); + CacheInvalidatePartcache(part); + } + + pfree_ext(isTimestamptz); + relation_close(pgPartRel, NoLock); + releaseDummyRelation(&partRel); + partitionClose(rel, part, AccessExclusiveLock); +} + static Oid createTempTableForPartition(Relation partTableRel, Partition part) { TupleDesc partTableHeapDesc; @@ -23249,6 +24320,8 @@ static void readTuplesAndInsertInternal(Relation tempTableRel, Relation partTabl Oid targetPartOid = InvalidOid; Relation partRel = NULL; Partition part = NULL; + Relation subPartRel = NULL; + Partition subPart = NULL; Tuple copyTuple = NULL; /* tableam_tops_copy_tuple is not ready so we add UStore hack path */ @@ -23256,11 +24329,16 @@ static void readTuplesAndInsertInternal(Relation tempTableRel, Relation partTabl targetPartOid = heapTupleGetPartitionId(partTableRel, (void *)tuple); searchFakeReationForPartitionOid( partRelHTAB, CurrentMemoryContext, partTableRel, targetPartOid, partRel, part, RowExclusiveLock); + if (RelationIsSubPartitioned(partTableRel)) { + targetPartOid = heapTupleGetPartitionId(partRel, (void *)tuple); + searchFakeReationForPartitionOid(partRelHTAB, CurrentMemoryContext, partRel, targetPartOid, subPartRel, + subPart, RowExclusiveLock); + partRel = subPartRel; + } if (bucketId != InvalidBktId) { searchHBucketFakeRelation(partRelHTAB, CurrentMemoryContext, partRel, bucketId, partRel); } - AlterPartitionedSetWaitCleanGPI(true, partTableRel, targetPartOid); if (relisustore) { @@ -23394,7 +24472,7 @@ List* transformConstIntoTargetType(Form_pg_attribute* attrs, int2vector* partiti * Return : * Notes : */ -void addToastTableForNewPartition(Relation relation, Oid newPartId) +void addToastTableForNewPartition(Relation relation, Oid newPartId, bool isForSubpartition) { Oid firstPartitionId = InvalidOid; Oid firstPartitionToastId = InvalidOid; @@ -23421,7 +24499,12 @@ void addToastTableForNewPartition(Relation relation, Oid newPartId) reloptions = (Datum)0; } - (void)createToastTableForPartition(relation->rd_id, newPartId, reloptions, AccessExclusiveLock); + if (isForSubpartition) { + (void)CreateToastTableForSubPartition(relation, newPartId, reloptions, AccessExclusiveLock); + } else { + (void)createToastTableForPartition(relation->rd_id, newPartId, reloptions, AccessExclusiveLock); + } + if (PointerIsValid(reltuple)) { ReleaseSysCache(reltuple); } @@ -23687,6 +24770,10 @@ void DropTableThrowErrorExternal(RangeVar* relation, ObjectType removeType, bool relkind = RELKIND_SEQUENCE; break; + case OBJECT_LARGE_SEQUENCE: + relkind = RELKIND_LARGE_SEQUENCE; + break; + case OBJECT_VIEW: relkind = RELKIND_VIEW; break; @@ -24331,7 +25418,8 @@ static void ExecRewriteRowPartitionedTable(AlteredTableInfo* tab, Oid NewTableSp heap_close(newRel, NoLock); /* swap the temp table and partition */ - finishPartitionHeapSwap(oldRel->rd_id, OIDNewHeap, false, u_sess->utils_cxt.RecentXmin, GetOldestMultiXactId()); + finishPartitionHeapSwap(oldRel->rd_id, OIDNewHeap, false, u_sess->utils_cxt.RecentXmin, + GetOldestMultiXactId()); /* record the temp table oid for dropping */ tempTableOidList = lappend_oid(tempTableOidList, OIDNewHeap); @@ -24518,11 +25606,15 @@ static void exec_only_test_dfs_table(AlteredTableInfo* tab) */ static void ExecOnlyTestRowPartitionedTable(AlteredTableInfo* tab) { - Relation oldRel = NULL; + Relation partRel = NULL; Partition partition = NULL; - ListCell* cell = NULL; + ListCell* lc1 = NULL; + ListCell* lc2 = NULL; Relation partitionedTableRel = NULL; List* partitions = NULL; + Relation subPartRel = NULL; + Partition subPartition = NULL; + List* subPartitions = NULL; ForbidToRewriteOrTestCstoreIndex(tab); @@ -24530,12 +25622,25 @@ static void ExecOnlyTestRowPartitionedTable(AlteredTableInfo* tab) partitionedTableRel = heap_open(tab->relid, NoLock); partitions = relationGetPartitionList(partitionedTableRel, NoLock); - foreach (cell, partitions) { - partition = (Partition)lfirst(cell); - oldRel = partitionGetRelation(partitionedTableRel, partition); - /* check each partition */ - ATRewriteTable(tab, oldRel, NULL); - releaseDummyRelation(&oldRel); + foreach (lc1, partitions) { + partition = (Partition)lfirst(lc1); + partRel = partitionGetRelation(partitionedTableRel, partition); + if (RelationIsSubPartitioned(partitionedTableRel)) { + subPartitions = relationGetPartitionList(partRel, NoLock); + foreach (lc2, subPartitions) { + subPartition = (Partition)lfirst(lc2); + subPartRel = partitionGetRelation(partRel, subPartition); + /* check each partition */ + ATRewriteTable(tab, subPartRel, NULL); + releaseDummyRelation(&subPartRel); + } + releasePartitionList(partRel, &subPartitions, NoLock); + releaseDummyRelation(&partRel); + } else { + /* check each partition */ + ATRewriteTable(tab, partRel, NULL); + releaseDummyRelation(&partRel); + } } releasePartitionList(partitionedTableRel, &partitions, NoLock); @@ -24959,6 +26064,29 @@ bool is_partition_column(Relation rel, AttrNumber att_no) break; } } + } else if (RelationIsSubPartitioned(rel)) { + int2vector *partKey = ((RangePartitionMap *)rel->partMap)->partitionKey; + for (int i = 0; i < partKey->dim1; i++) { + if (att_no == partKey->values[i]) { + return true; + } + } + List *partOidList = relationGetPartitionOidList(rel); + Oid partOid = linitial_oid(partOidList); + Partition part = partitionOpen(rel, partOid, NoLock); + Relation partRel = partitionGetRelation(rel, part); + int2vector *subPartKey = ((RangePartitionMap *)partRel->partMap)->partitionKey; + for (int i = 0; i < subPartKey->dim1; i++) { + if (att_no == subPartKey->values[i]) { + is_part_col = true; + break; + } + } + releaseDummyRelation(&partRel); + partitionClose(rel, part, NoLock); + if (partOidList != NULL) { + releasePartitionOidList(&partOidList); + } } return is_part_col; @@ -25278,6 +26406,7 @@ static void at_timeseries_check(Relation rel, AlterTableCmd* cmd) case AT_SetRelOptions: case AT_DropColumn: case AT_TruncatePartition: + case AT_TruncateSubPartition: case AT_ChangeOwner: break; case AT_AddColumn: { @@ -25479,6 +26608,9 @@ void CheckDropViewValidity(ObjectType stmtType, char relKind, const char* relnam case OBJECT_SEQUENCE: expectedRelKind = RELKIND_SEQUENCE; break; + case OBJECT_LARGE_SEQUENCE: + expectedRelKind = RELKIND_LARGE_SEQUENCE; + break; case OBJECT_MATVIEW: expectedRelKind = RELKIND_MATVIEW; break; diff --git a/src/gausskernel/optimizer/commands/tablespace.cpp b/src/gausskernel/optimizer/commands/tablespace.cpp index 766a62ddd..d979780f4 100644 --- a/src/gausskernel/optimizer/commands/tablespace.cpp +++ b/src/gausskernel/optimizer/commands/tablespace.cpp @@ -1641,6 +1641,7 @@ static bool destroy_tablespace_directories(Oid tablespaceoid, bool redo) } while ((de = ReadDir(dirdesc, linkloc_with_version_dir)) != NULL) { + SegSpace *spc = NULL; len = strlen(linkloc_with_version_dir) + 1 + strlen(de->d_name) + 1; rc = EOK; @@ -1654,7 +1655,7 @@ static bool destroy_tablespace_directories(Oid tablespaceoid, bool redo) /* remove segment file */ if (!redo && strcmp(de->d_name, "pgsql_tmp") != 0) { Oid dbNode = atoi(de->d_name); - spc_drop(tablespaceoid, dbNode, redo); + spc = spc_drop(tablespaceoid, dbNode, redo); } /* This check is just to deliver a friendlier error message */ @@ -1664,17 +1665,21 @@ static bool destroy_tablespace_directories(Oid tablespaceoid, bool redo) pfree_ext(linkloc_with_version_dir); return false; } - /* remove empty directory */ + if (spc) { + spc_lock(spc); + } if (rmdir(subfile) < 0) ereport(redo ? LOG : ERROR, (errcode_for_file_access(), errmsg("could not remove directory \"%s\": %m", subfile))); + if (spc) { + spc_unlock(spc); + } pfree_ext(subfile); } FreeDir(dirdesc); - /* remove version directory */ if (rmdir(linkloc_with_version_dir) < 0) { ereport(redo ? LOG : ERROR, diff --git a/src/gausskernel/optimizer/commands/trigger.cpp b/src/gausskernel/optimizer/commands/trigger.cpp index 0ae3329c5..1239f772c 100644 --- a/src/gausskernel/optimizer/commands/trigger.cpp +++ b/src/gausskernel/optimizer/commands/trigger.cpp @@ -1719,6 +1719,8 @@ static HeapTuple ExecCallTriggerFunc( Datum result; Oid old_uesr = 0; int save_sec_context = 0; + bool saved_is_allow_commit_rollback = false; + bool need_reset_err_msg; /* Guard against stack overflow due to infinite loop firing trigger. */ check_stack_depth(); @@ -1734,6 +1736,10 @@ static HeapTuple ExecCallTriggerFunc( Assert(finfo->fn_oid == trigdata->tg_trigger->tgfoid); + stp_set_commit_rollback_err_msg(STP_XACT_IN_TRIGGER); + + need_reset_err_msg = stp_disable_xact_and_set_err_msg(&saved_is_allow_commit_rollback, STP_XACT_IN_TRIGGER); + /* * If doing EXPLAIN ANALYZE, start charging time to this trigger. */ @@ -1771,10 +1777,13 @@ static HeapTuple ExecCallTriggerFunc( } PG_CATCH(); { + stp_reset_xact_state_and_err_msg(saved_is_allow_commit_rollback, need_reset_err_msg); u_sess->tri_cxt.MyTriggerDepth--; PG_RE_THROW(); } PG_END_TRY(); + + stp_reset_xact_state_and_err_msg(saved_is_allow_commit_rollback, need_reset_err_msg); u_sess->tri_cxt.MyTriggerDepth--; pgstat_end_function_usage(&fcusage, true); @@ -3649,6 +3658,10 @@ static void AfterTriggerExecute(AfterTriggerEvent event, Relation rel, Oid oldPa Partition newPart = NULL; Relation oldPartRel = NULL; Relation newPartRel = NULL; + Partition oldPartForSubPart = NULL; + Partition newPartForSubPart = NULL; + Relation oldPartRelForSubPart = NULL; + Relation newPartRelForSubPart = NULL; #ifdef PGXC HeapTuple rs_tuple1 = NULL; HeapTuple rs_tuple2 = NULL; @@ -3711,9 +3724,19 @@ static void AfterTriggerExecute(AfterTriggerEvent event, Relation rel, Oid oldPa if (RELATION_IS_PARTITIONED(rel)) { Assert(OidIsValid(oldPartOid) || OidIsValid(newPartOid)); Assert(!RELATION_OWN_BUCKET(rel) || bucketid != InvalidBktId); - oldPart = partitionOpen(rel, OidIsValid(oldPartOid) ? oldPartOid : newPartOid, NoLock, bucketid); + if (RelationIsSubPartitioned(rel)) { + Oid subPartOid = OidIsValid(oldPartOid) ? oldPartOid : newPartOid; + Oid partOid = partid_get_parentid(subPartOid); + Assert(OidIsValid(partOid)); + oldPartForSubPart = partitionOpen(rel, partOid, NoLock, bucketid); + oldPartRelForSubPart = partitionGetRelation(rel, oldPartForSubPart); + oldPart = partitionOpen(oldPartRelForSubPart, subPartOid, NoLock, bucketid); + oldPartRel = partitionGetRelation(oldPartRelForSubPart, oldPart); + } else { + oldPart = partitionOpen(rel, OidIsValid(oldPartOid) ? oldPartOid : newPartOid, NoLock, bucketid); - oldPartRel = partitionGetRelation(rel, oldPart); + oldPartRel = partitionGetRelation(rel, oldPart); + } } else if (RELATION_OWN_BUCKET(rel)) { Assert(bucketid != InvalidBktId); oldPartRel = bucketGetRelation(rel, NULL, bucketid); @@ -3737,9 +3760,19 @@ static void AfterTriggerExecute(AfterTriggerEvent event, Relation rel, Oid oldPa if (RELATION_IS_PARTITIONED(rel) && (newPartOid != oldPartOid)) { Assert(OidIsValid(newPartOid)); Assert(!RELATION_OWN_BUCKET(rel) || bucketid != InvalidBktId); - newPart = partitionOpen(rel, newPartOid, NoLock, bucketid); + if (RelationIsSubPartitioned(rel)) { + Oid subPartOid = newPartOid; + Oid partOid = partid_get_parentid(subPartOid); + Assert(OidIsValid(partOid)); + newPartForSubPart = partitionOpen(rel, partOid, NoLock, bucketid); + newPartRelForSubPart = partitionGetRelation(rel, newPartForSubPart); + newPart = partitionOpen(newPartRelForSubPart, subPartOid, NoLock, bucketid); + newPartRel = partitionGetRelation(newPartRelForSubPart, newPart); + } else { + newPart = partitionOpen(rel, newPartOid, NoLock, bucketid); - newPartRel = partitionGetRelation(rel, newPart); + newPartRel = partitionGetRelation(rel, newPart); + } } else { Assert(PointerIsValid(oldPartRel) || bucketid == InvalidBktId); newPartRel = oldPartRel; @@ -3808,16 +3841,38 @@ static void AfterTriggerExecute(AfterTriggerEvent event, Relation rel, Oid oldPa InstrStopNode(instr + tgindx, 1); if (PointerIsValid(oldPartRel)) { - if (PointerIsValid(oldPart)) { - partitionClose(rel, oldPart, NoLock); + if (RelationIsSubPartitioned(rel)) { + releaseDummyRelation(&oldPartRel); + if (PointerIsValid(oldPart)) { + partitionClose(oldPartRelForSubPart, oldPart, NoLock); + } + releaseDummyRelation(&oldPartRelForSubPart); + if (PointerIsValid(oldPartForSubPart)) { + partitionClose(rel, oldPartForSubPart, NoLock); + } + } else { + if (PointerIsValid(oldPart)) { + partitionClose(rel, oldPart, NoLock); + } + releaseDummyRelation(&oldPartRel); } - releaseDummyRelation(&oldPartRel); } if (PointerIsValid(newPartRel) && (oldPartOid != newPartOid)) { - if (PointerIsValid(newPart)) { - partitionClose(rel, newPart, NoLock); + if (RelationIsSubPartitioned(rel)) { + releaseDummyRelation(&newPartRel); + if (PointerIsValid(newPart)) { + partitionClose(newPartRelForSubPart, newPart, NoLock); + } + releaseDummyRelation(&newPartRelForSubPart); + if (PointerIsValid(newPartForSubPart)) { + partitionClose(rel, newPartForSubPart, NoLock); + } + } else { + if (PointerIsValid(newPart)) { + partitionClose(rel, newPart, NoLock); + } + releaseDummyRelation(&newPartRel); } - releaseDummyRelation(&newPartRel); } } diff --git a/src/gausskernel/optimizer/commands/typecmds.cpp b/src/gausskernel/optimizer/commands/typecmds.cpp index 370ab968f..6cd3cba2b 100644 --- a/src/gausskernel/optimizer/commands/typecmds.cpp +++ b/src/gausskernel/optimizer/commands/typecmds.cpp @@ -6,6 +6,7 @@ * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -1241,10 +1242,12 @@ void DefineRange(CreateRangeStmt* stmt) if (u_sess->attr.attr_sql.enforce_a_behavior) { typowner = GetUserIdFromNspId(typeNamespace); - if (!OidIsValid(typowner)) + if (!OidIsValid(typowner)) { typowner = GetUserId(); - else if (typowner != GetUserId()) + } + else if (typowner != GetUserId()) { isalter = true; + } } else { typowner = GetUserId(); } @@ -1907,6 +1910,132 @@ Oid AssignTypeArrayOid(void) return type_array_oid; } +/* + * DefineRange + * Registers a new table of type. + * create typy A as table of B, there are B and _B in pg_type + * add oid of _B in element + */ +void DefineTableOfType(const TableOfTypeStmt* stmt) +{ + char* typname = NULL; + Oid typeNamespace; + Oid typoid; + AclResult aclresult; + Oid typowner = InvalidOid; + /* + * isalter is true, change the owner of the objects as the owner of the + * namespace, if the owner of the namespce has the same name as the namescpe + */ + bool isalter = false; + + /* Convert list of names to a name and namespace */ + typeNamespace = QualifiedNameGetCreationNamespace(stmt->typname, &typname); + if (u_sess->attr.attr_sql.enforce_a_behavior) { + typowner = GetUserIdFromNspId(typeNamespace); + + if (!OidIsValid(typowner)) + typowner = GetUserId(); + else if (typowner != GetUserId()) + isalter = true; + } else { + typowner = GetUserId(); + } + /* Check we have creation rights in target namespace */ + aclresult = pg_namespace_aclcheck(typeNamespace, GetUserId(), ACL_CREATE); + if (aclresult != ACLCHECK_OK) + aclcheck_error(aclresult, ACL_KIND_NAMESPACE, get_namespace_name(typeNamespace)); + if (isalter) { + aclresult = pg_namespace_aclcheck(typeNamespace, typowner, ACL_CREATE); + if (aclresult != ACLCHECK_OK) + aclcheck_error(aclresult, ACL_KIND_NAMESPACE, get_namespace_name(typeNamespace)); + } + + /* + * Check for collision with an existing type name. If there is one and + * it's an autogenerated array, we can rename it out of the way. + */ + typoid = GetSysCacheOid2(TYPENAMENSP, CStringGetDatum(typname), ObjectIdGetDatum(typeNamespace)); + if (OidIsValid(typoid)) { + if (!moveArrayTypeName(typoid, typname, typeNamespace)) + ereport(ERROR, (errcode(ERRCODE_DUPLICATE_OBJECT), errmsg("type \"%s\" already exists", typname))); + } + + /* look up the referenced type name */ + Oid typeOid = typenameTypeId(NULL, stmt->reftypname); + /* Must have a referenced type */ + if (!OidIsValid(typeOid)) + ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("referenced type does not exist"))); + +#ifndef ENABLE_MULTIPLE_NODES + /* don't allow package or procedure type as table of base type */ + if (IsPackageDependType(typeOid, InvalidOid)) { + ereport(ERROR, + (errcode(ERRCODE_WRONG_OBJECT_TYPE), + errmodule(MOD_PLSQL), + errmsg("type %s doesn't support table type.", TypeNameToString(stmt->reftypname)), + errdetail("\"%s\" is a package or procedure type", TypeNameToString(stmt->reftypname)), + errcause("feature not supported"), + erraction("check type name"))); + } +#endif + + HeapTuple type_tup = SearchSysCache1(TYPEOID, ObjectIdGetDatum(typeOid)); + if (!HeapTupleIsValid(type_tup)) { + ereport(ERROR, + (errmodule(MOD_PLSQL), + errcode(ERRCODE_CACHE_LOOKUP_FAILED), + errmsg("cache lookup failed for type %u, type Oid is invalid", typeOid))); + } + + if (((Form_pg_type)GETSTRUCT(type_tup))->typtype == TYPTYPE_TABLEOF) { + ereport(ERROR, + (errcode(ERRCODE_WRONG_OBJECT_TYPE), + errmsg("table type does not support nested table."))); + } + + Oid refTypeOid = ((Form_pg_type)GETSTRUCT(type_tup))->typarray; + if (!OidIsValid(refTypeOid)) { + ereport(ERROR, + (errcode(ERRCODE_WRONG_OBJECT_TYPE), + errmsg("type %s doesn't support table type.", (((Form_pg_type)GETSTRUCT(type_tup))->typname).data))); + } + ReleaseSysCache(type_tup); + + /* Create the pg_type entry */ + typoid = TypeCreate(InvalidOid, /* no predetermined type OID */ + typname, /* type name */ + typeNamespace, /* namespace */ + InvalidOid, /* relation oid (n/a here) */ + 0, /* relation kind (ditto) */ + typowner, /* owner's ID */ + -1, /* internal size (always varlena) */ + TYPTYPE_TABLEOF, /* type-type (table of type) */ + TYPCATEGORY_TABLEOF, /* type-category (table of type) */ + false, /* table of types are never preferred */ + DEFAULT_TYPDELIM, /* array element delimiter */ + F_ARRAY_IN, /* array input proc */ + F_ARRAY_OUT, /* array output proc */ + F_ARRAY_RECV, /* array recv (bin) proc */ + F_ARRAY_SEND, /* array send (bin) proc */ + InvalidOid, /* typmodin procedure - none */ + InvalidOid, /* typmodout procedure - none */ + F_ARRAY_TYPANALYZE, /* array analyze procedure */ + refTypeOid, /* element type ID - none */ + false, /* this is not an array type */ + InvalidOid, /* array type we are about to create */ + InvalidOid, /* base type ID (only for domains) */ + NULL, /* never a default type value */ + NULL, /* no binary form available either */ + false, /* never passed by value */ + 'd', /* alignment */ + 'x', /* TOAST strategy (always extended) */ + -1, /* typMod (Domains only) */ + 0, /* Array dimensions of typbasetype */ + false, /* Type NOT NULL */ + InvalidOid); /* type's collation (ranges never have one) */ +} + /* ------------------------------------------------------------------- * DefineCompositeType * @@ -2986,6 +3115,19 @@ void RenameType(RenameStmt* stmt) errhint("You can alter type %s, which will alter the array type as well.", format_type_be(typTup->typelem)))); +#ifndef ENABLE_MULTIPLE_NODES + /* don't allow to alter package or procedure type */ + if (IsPackageDependType(typeTypeId(tup), InvalidOid)) { + ereport(ERROR, + (errcode(ERRCODE_WRONG_OBJECT_TYPE), + errmodule(MOD_PLSQL), + errmsg("Not allowed to alter type \"%s\"", TypeNameToString(typname)), + errdetail("\"%s\" is a package or procedure type", TypeNameToString(typname)), + errcause("feature not supported"), + erraction("check type name"))); + } +#endif + /* * If type is composite we need to rename associated pg_class entry too. * RenameRelationInternal will call RenameTypeInternal automatically. @@ -3055,6 +3197,19 @@ void AlterTypeOwner(List* names, Oid newOwnerId, ObjectType objecttype) errhint("You can alter type %s, which will alter the array type as well.", format_type_be(typTup->typelem)))); +#ifndef ENABLE_MULTIPLE_NODES + /* don't allow to alter package or procedure type */ + if (IsPackageDependType(typeTypeId(tup), InvalidOid)) { + ereport(ERROR, + (errcode(ERRCODE_WRONG_OBJECT_TYPE), + errmodule(MOD_PLSQL), + errmsg("Not allowed to alter type \"%s\"", TypeNameToString(typname)), + errdetail("\"%s\" is a package or procedure type", TypeNameToString(typname)), + errcause("feature not supported"), + erraction("check type name"))); + } +#endif + /* * If the new owner is the same as the existing owner, consider the * command to have succeeded. This is for dump restoration purposes. @@ -3166,6 +3321,19 @@ void AlterTypeNamespace(List* names, const char* newschema, ObjectType objecttyp typname = makeTypeNameFromNameList(names); typeOid = typenameTypeId(NULL, typname); +#ifndef ENABLE_MULTIPLE_NODES + /* don't allow to alter package or procedure type */ + if (IsPackageDependType(typeOid, InvalidOid)) { + ereport(ERROR, + (errcode(ERRCODE_WRONG_OBJECT_TYPE), + errmodule(MOD_PLSQL), + errmsg("Not allowed to alter type \"%s\"", TypeNameToString(typname)), + errdetail("\"%s\" is a package or procedure type", TypeNameToString(typname)), + errcause("feature not supported"), + erraction("check type name"))); + } +#endif + TrForbidAccessRbObject(TypeRelationId, typeOid); /* Don't allow ALTER DOMAIN on a type */ @@ -3260,7 +3428,6 @@ Oid AlterTypeNamespaceInternal( /* Detect whether type is a composite type (but not a table rowtype) */ isCompositeType = (typform->typtype == TYPTYPE_COMPOSITE && get_rel_relkind(typform->typrelid) == RELKIND_COMPOSITE_TYPE); - /* Enforce not-table-type if requested */ if (typform->typtype == TYPTYPE_COMPOSITE && !isCompositeType && errorOnTableType) ereport(ERROR, diff --git a/src/gausskernel/optimizer/commands/user.cpp b/src/gausskernel/optimizer/commands/user.cpp index 18dd5eac5..0862b8ddb 100755 --- a/src/gausskernel/optimizer/commands/user.cpp +++ b/src/gausskernel/optimizer/commands/user.cpp @@ -6,6 +6,7 @@ * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * src/gausskernel/optimizer/commands/user.cpp * @@ -1591,7 +1592,9 @@ static bool IsPredefinedRole(const char* name) "gs_role_tablespace", "gs_role_replication", "gs_role_account_lock", - "gs_role_pldebugger" + "gs_role_pldebugger", + "gs_role_directory_create", + "gs_role_directory_drop" }; for (unsigned i = 0; i < lengthof(predefinedRoles); i++) { @@ -2734,7 +2737,7 @@ void AlterRole(AlterRoleStmt* stmt) } /* if not superuser or have createrole privilege, we must check the oldPasswd and replPasswd */ - if (!(isRelSuperuser() || have_createrole_privilege()) || GetUserId() == roleid) { + if (!(isRelSuperuser() || have_createrole_privilege()) || (GetUserId() == roleid && !initialuser())) { /* if rolepassword is seted in pg_authid, replPasswd must be checked. */ if (oldPasswd != NULL) { if (replPasswd == NULL) { @@ -3280,7 +3283,7 @@ void DropRole(DropRoleStmt* stmt) errdetail_log("%s", detail_log))); /* Relate to remove all job belong the user. */ - remove_job_by_oid(NameStr(((Form_pg_authid)GETSTRUCT(tuple))->rolname), UserOid, true); + remove_job_by_oid(roleid, UserOid, true); if (IsUnderPostmaster) { DropRoleStmt stmt_temp; @@ -4247,19 +4250,19 @@ static void IsPasswdSatisfyPolicy(char* Password) /* Password must contain at least u_sess->attr.attr_security.Password_min_length characters */ if ((int)strlen(Password) < u_sess->attr.attr_security.Password_min_length) { str_reset(Password); - ereport(ERROR, - (errcode(ERRCODE_INVALID_PASSWORD), - errmsg( - "Password must contain at least %d characters.", u_sess->attr.attr_security.Password_min_length))); + ereport(ERROR, (errcode(ERRCODE_INVALID_PASSWORD), + errmsg("Password must contain at least %d characters.", u_sess->attr.attr_security.Password_min_length), + errcause("The minimum number of characters is specified by password_min_length."), + erraction("Add more characters to the password."))); } /* Password can't contain more than u_sess->attr.attr_security.Password_max_length characters */ if ((int)strlen(Password) > u_sess->attr.attr_security.Password_max_length) { str_reset(Password); - ereport(ERROR, - (errcode(ERRCODE_INVALID_PASSWORD), - errmsg("Password can't contain more than %d characters.", - u_sess->attr.attr_security.Password_max_length))); + ereport(ERROR, (errcode(ERRCODE_INVALID_PASSWORD), + errmsg("Password can't contain more than %d characters.", u_sess->attr.attr_security.Password_max_length), + errcause("The maximum number of characters is specified by password_max_length."), + erraction("Remove some characters from the password."))); } /* Calculate the number of all types of characters */ @@ -4268,9 +4271,11 @@ static void IsPasswdSatisfyPolicy(char* Password) /* If contain unusual character in password, show the warning. */ if (include_unusual_character) { str_reset(Password); - ereport(ERROR, - (errmsg("Password cannot contain characters except numbers, alphabetic characters and " - "specified special characters."))); + ereport(ERROR, (errcode(ERRCODE_INVALID_PASSWORD), + errmsg("Password cannot contain characters except numbers, alphabetic characters and " + "specified special characters."), + errcause("Password contain invalid characters."), + erraction("Use valid characters in password."))); } /* Calculate the number of character types */ @@ -4283,44 +4288,50 @@ static void IsPasswdSatisfyPolicy(char* Password) /* Password must contain at least u_sess->attr.attr_security.Password_min_upper upper characters */ if (kinds[0] < u_sess->attr.attr_security.Password_min_upper) { str_reset(Password); - ereport(ERROR, - (errcode(ERRCODE_INVALID_PASSWORD), - errmsg("Password must contain at least %d upper characters.", - u_sess->attr.attr_security.Password_min_upper))); + ereport(ERROR, (errcode(ERRCODE_INVALID_PASSWORD), + errmsg("Password must contain at least %d upper characters.", + u_sess->attr.attr_security.Password_min_upper), + errcause("The minimum number of upper characters is specified by password_min_upper."), + erraction("Add more upper characters to the password."))); } /* Password must contain at least u_sess->attr.attr_security.Password_min_lower lower characters */ if (kinds[1] < u_sess->attr.attr_security.Password_min_lower) { str_reset(Password); - ereport(ERROR, - (errcode(ERRCODE_INVALID_PASSWORD), - errmsg("Password must contain at least %d lower characters.", - u_sess->attr.attr_security.Password_min_lower))); + ereport(ERROR, (errcode(ERRCODE_INVALID_PASSWORD), + errmsg("Password must contain at least %d lower characters.", + u_sess->attr.attr_security.Password_min_lower), + errcause("The minimum number of lower characters is specified by password_min_lower."), + erraction("Add more lower characters to the password."))); } /* Password must contain at least u_sess->attr.attr_security.Password_min_digital digital characters */ if (kinds[2] < u_sess->attr.attr_security.Password_min_digital) { str_reset(Password); - ereport(ERROR, - (errcode(ERRCODE_INVALID_PASSWORD), - errmsg("Password must contain at least %d digital characters.", - u_sess->attr.attr_security.Password_min_digital))); + ereport(ERROR, (errcode(ERRCODE_INVALID_PASSWORD), + errmsg("Password must contain at least %d digital characters.", + u_sess->attr.attr_security.Password_min_digital), + errcause("The minimum number of digital characters is specified by password_min_digital."), + erraction("Add more digital characters to the password."))); } /* Password must contain at least u_sess->attr.attr_security.Password_min_special special characters */ if (kinds[3] < u_sess->attr.attr_security.Password_min_special) { str_reset(Password); - ereport(ERROR, - (errcode(ERRCODE_INVALID_PASSWORD), - errmsg("Password must contain at least %d special characters.", - u_sess->attr.attr_security.Password_min_special))); + ereport(ERROR, (errcode(ERRCODE_INVALID_PASSWORD), + errmsg("Password must contain at least %d special characters.", + u_sess->attr.attr_security.Password_min_special), + errcause("The minimum number of special characters is specified by password_min_special."), + erraction("Add more special characters to the password."))); } /* Password must contain at least three kinds of characters */ if (kinds_num < 3) { str_reset(Password); - ereport(ERROR, - (errcode(ERRCODE_INVALID_PASSWORD), errmsg("Password must contain at least three kinds of characters."))); + ereport(ERROR, (errcode(ERRCODE_INVALID_PASSWORD), + errmsg("Password must contain at least three kinds of characters."), + errcause("Password must contain numbers, alphabetic characters and specified special characters."), + erraction("Add at least three kinds of characters to the password."))); } check_weak_password(Password); @@ -4358,6 +4369,7 @@ static bool CheckPasswordComplexity(const char* roleID, char* newPasswd, char* o if (isCreaterole && isPWDENCRYPTED(newPasswd)) { if (VerifyPasswdDigest(roleID, "\0", newPasswd)) { str_reset(newPasswd); + str_reset(oldPasswd); ereport(ERROR, (errcode(ERRCODE_INVALID_PASSWORD), errmsg("New password should not be empty."))); @@ -5931,11 +5943,11 @@ Datum calculate_encrypted_sha256_password(const char* password, const char* roln errno_t rc = EOK; if (!pg_sha256_encrypt(password, - salt_string, - strlen(salt_string), - encrypted_sha256_password, - NULL, - u_sess->attr.attr_security.auth_iteration_count)) { + salt_string, + strlen(salt_string), + encrypted_sha256_password, + NULL, + u_sess->attr.attr_security.auth_iteration_count)) { rc = memset_s(encrypted_sha256_password, SHA256_PASSWD_LEN + 1, 0, SHA256_PASSWD_LEN + 1); securec_check(rc, "\0", "\0"); ereport(ERROR, (errcode(ERRCODE_INVALID_PASSWORD), errmsg("password encryption failed"))); diff --git a/src/gausskernel/optimizer/commands/vacuum.cpp b/src/gausskernel/optimizer/commands/vacuum.cpp index e062687a8..2266a2609 100644 --- a/src/gausskernel/optimizer/commands/vacuum.cpp +++ b/src/gausskernel/optimizer/commands/vacuum.cpp @@ -13,6 +13,7 @@ * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 2010-2012 Postgres-XC Development Group + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -111,8 +112,8 @@ const char* sql_templates[] = { }; typedef struct { - Bitmapset* invisMap; /* cache invisible tuple's partOid in global partition index */ - Bitmapset* visMap; /* cache visible tuple's partOid in global partition index */ + OidRBTree* invisiblePartOids; /* cache invisible tuple's partOid in global partition index */ + OidRBTree* visiblePartOids; /* cache visible tuple's partOid in global partition index */ oidvector* bucketList; } VacStates; @@ -333,6 +334,9 @@ void vacuum( vacstmt->onepartrel = NULL; vacstmt->onepart = NULL; vacstmt->partList = NIL; + vacstmt->parentpartrel = NULL; + vacstmt->parentpart = NULL; + vacstmt->issubpartition = false; /* * do NOT vacuum partitioned table, @@ -352,6 +356,9 @@ void vacuum( vacstmt->flags = vacObj->flags; vacstmt->onepartrel = NULL; vacstmt->onepart = NULL; + vacstmt->parentpartrel = NULL; + vacstmt->parentpart = NULL; + vacstmt->issubpartition = false; if (vacstmt->options & VACOPT_ANALYZE) { /* @@ -489,6 +496,77 @@ char* get_nsp_relname(Oid relid) return nsp_relname; } +static List *GetVacuumObjectOfSubpartitionTable(const Oid relId) +{ + Relation pgpartition; + TableScanDesc partScan; + HeapTuple partTuple; + ScanKeyData keys[2]; + List *result = NULL; + MemoryContext oldcontext = NULL; + vacuum_object *vacObj = NULL; + + /* Process all plain partitions listed in pg_partition */ + ScanKeyInit(&keys[0], Anum_pg_partition_parttype, BTEqualStrategyNumber, F_CHAREQ, + CharGetDatum(PART_OBJ_TYPE_TABLE_PARTITION)); + + ScanKeyInit(&keys[1], Anum_pg_partition_parentid, BTEqualStrategyNumber, F_OIDEQ, + ObjectIdGetDatum(relId)); + + pgpartition = heap_open(PartitionRelationId, AccessShareLock); + partScan = tableam_scan_begin(pgpartition, SnapshotNow, 2, keys); + while (NULL != (partTuple = (HeapTuple)tableam_scan_getnexttuple(partScan, ForwardScanDirection))) { + TableScanDesc subPartScan; + HeapTuple subPartTuple; + ScanKeyData subPartKeys[2]; + + /* Process all plain subpartitions listed in pg_partition */ + ScanKeyInit(&subPartKeys[0], Anum_pg_partition_parttype, BTEqualStrategyNumber, F_CHAREQ, + CharGetDatum(PART_OBJ_TYPE_TABLE_SUB_PARTITION)); + + ScanKeyInit(&subPartKeys[1], Anum_pg_partition_parentid, BTEqualStrategyNumber, F_OIDEQ, + ObjectIdGetDatum(HeapTupleGetOid(partTuple))); + + subPartScan = tableam_scan_begin(pgpartition, SnapshotNow, 2, subPartKeys); + while (NULL != (subPartTuple = (HeapTuple)tableam_scan_getnexttuple(subPartScan, ForwardScanDirection))) { + if (t_thrd.vacuum_cxt.vac_context) { + oldcontext = MemoryContextSwitchTo(t_thrd.vacuum_cxt.vac_context); + } + vacObj = (vacuum_object *)palloc0(sizeof(vacuum_object)); + vacObj->tab_oid = HeapTupleGetOid(subPartTuple); + vacObj->parent_oid = HeapTupleGetOid(partTuple); + vacObj->flags = VACFLG_SUB_PARTITION; + result = lappend(result, vacObj); + + if (t_thrd.vacuum_cxt.vac_context) { + (void)MemoryContextSwitchTo(oldcontext); + } + } + heap_endscan(subPartScan); + } + + heap_endscan(partScan); + heap_close(pgpartition, AccessShareLock); + + /* + * add partitioned table to list + */ + if (t_thrd.vacuum_cxt.vac_context) { + oldcontext = MemoryContextSwitchTo(t_thrd.vacuum_cxt.vac_context); + } + vacObj = (vacuum_object *)palloc0(sizeof(vacuum_object)); + vacObj->tab_oid = relId; + vacObj->parent_oid = InvalidOid; + vacObj->flags = VACFLG_MAIN_PARTITION; + result = lappend(result, vacObj); + + if (t_thrd.vacuum_cxt.vac_context) { + (void)MemoryContextSwitchTo(oldcontext); + } + + return result; +} + /* * Build a list of Oids for each relation to be processed * @@ -630,19 +708,53 @@ List* get_rel_oids(Oid relid, VacuumStmt* vacstmt) partitionForm = (Form_pg_partition)GETSTRUCT(partitionTup); if (partitionForm->parttype == PART_OBJ_TYPE_TABLE_PARTITION) { - /* It must be a partition */ - if (t_thrd.vacuum_cxt.vac_context) { - oldcontext = MemoryContextSwitchTo(t_thrd.vacuum_cxt.vac_context); - } - vacObj = (vacuum_object*)palloc0(sizeof(vacuum_object)); - vacObj->tab_oid = partitionid; - vacObj->parent_oid = relationid; - vacObj->flags = VACFLG_SUB_PARTITION; - oid_list = lappend(oid_list, vacObj); + if (partitionForm->relfilenode != InvalidOid) { + /* it is a partition of partition table. */ + if (t_thrd.vacuum_cxt.vac_context) { + oldcontext = MemoryContextSwitchTo(t_thrd.vacuum_cxt.vac_context); + } + vacObj = (vacuum_object *)palloc0(sizeof(vacuum_object)); + vacObj->tab_oid = partitionid; + vacObj->parent_oid = relationid; + vacObj->flags = VACFLG_SUB_PARTITION; + oid_list = lappend(oid_list, vacObj); - if (t_thrd.vacuum_cxt.vac_context) { - (void)MemoryContextSwitchTo(oldcontext); - } + if (t_thrd.vacuum_cxt.vac_context) { + (void)MemoryContextSwitchTo(oldcontext); + } + } else { + /* it is a partition of subpartition table. */ + Relation pgpartition; + TableScanDesc subPartScan; + HeapTuple subPartTuple; + ScanKeyData subPartKeys[2]; + + /* Process all plain subpartitions listed in pg_partition */ + ScanKeyInit(&subPartKeys[0], Anum_pg_partition_parttype, BTEqualStrategyNumber, F_CHAREQ, + CharGetDatum(PART_OBJ_TYPE_TABLE_SUB_PARTITION)); + + ScanKeyInit(&subPartKeys[1], Anum_pg_partition_parentid, BTEqualStrategyNumber, F_OIDEQ, + ObjectIdGetDatum(HeapTupleGetOid(partitionTup))); + pgpartition = heap_open(PartitionRelationId, AccessShareLock); + subPartScan = tableam_scan_begin(pgpartition, SnapshotNow, 2, subPartKeys); + while (NULL != + (subPartTuple = (HeapTuple)tableam_scan_getnexttuple(subPartScan, ForwardScanDirection))) { + if (t_thrd.vacuum_cxt.vac_context) { + oldcontext = MemoryContextSwitchTo(t_thrd.vacuum_cxt.vac_context); + } + vacObj = (vacuum_object *)palloc0(sizeof(vacuum_object)); + vacObj->tab_oid = HeapTupleGetOid(subPartTuple); + vacObj->parent_oid = HeapTupleGetOid(partitionTup); + vacObj->flags = VACFLG_SUB_PARTITION; + oid_list = lappend(oid_list, vacObj); + + if (t_thrd.vacuum_cxt.vac_context) { + (void)MemoryContextSwitchTo(oldcontext); + } + } + heap_endscan(subPartScan); + heap_close(pgpartition, AccessShareLock); + } } ReleaseSysCache(partitionTup); @@ -722,9 +834,13 @@ List* get_rel_oids(Oid relid, VacuumStmt* vacstmt) if (t_thrd.vacuum_cxt.vac_context) { (void)MemoryContextSwitchTo(oldcontext); } + } else if (classForm->parttype == PARTTYPE_SUBPARTITIONED_RELATION && + classForm->relkind == RELKIND_RELATION && + ((vacstmt->options & VACOPT_FULL) || (vacstmt->options & VACOPT_VACUUM))) { + oid_list = list_concat(oid_list, GetVacuumObjectOfSubpartitionTable(relationid)); } else { - /* - * non-partitioned table + /* + * non-partitioned table * forbit vacuum full/vacuum/analyze cstore.xxxxx direct on datanode * except for timeseries index tables. */ @@ -734,10 +850,9 @@ List* get_rel_oids(Oid relid, VacuumStmt* vacstmt) && memcmp(vacstmt->relation->relname, TsConf::TAG_TABLE_NAME_PREFIX, strlen(TsConf::TAG_TABLE_NAME_PREFIX)) #endif - ) { - ereport(ERROR, - (errcode(ERRCODE_OPERATE_NOT_SUPPORTED), - errmsg("cstore.%s is a internal table", vacstmt->relation->relname))); + ) { + ereport(ERROR, (errcode(ERRCODE_OPERATE_NOT_SUPPORTED), + errmsg("cstore.%s is a internal table", vacstmt->relation->relname))); } } @@ -758,8 +873,8 @@ List* get_rel_oids(Oid relid, VacuumStmt* vacstmt) } } } else { - ereport(ERROR, - (errcode(ERRCODE_CACHE_LOOKUP_FAILED), errmsg("cache lookup failed for relation %u", relationid))); + ereport(ERROR, (errcode(ERRCODE_CACHE_LOOKUP_FAILED), + errmsg("cache lookup failed for relation %u", relationid))); } ReleaseSysCache(classTup); @@ -826,8 +941,10 @@ List* get_rel_oids(Oid relid, VacuumStmt* vacstmt) oid_list = lappend(oid_list, vacObj); if (t_thrd.vacuum_cxt.vac_context) { - (void)MemoryContextSwitchTo(oldcontext); + (void)MemoryContextSwitchTo(oldcontext); } + } else if (classForm->parttype == PARTTYPE_SUBPARTITIONED_RELATION) { + oid_list = list_concat(oid_list, GetVacuumObjectOfSubpartitionTable(HeapTupleGetOid(tuple))); } else { /* * Partitioned table @@ -1223,11 +1340,10 @@ void vac_update_relstats(Relation relation, Relation classRel, RelPageType num_p #endif if ((TransactionIdIsNormal(frozenxid) && (TransactionIdPrecedes(relfrozenxid, frozenxid) -#ifdef PGXC - || !IsPostmasterEnvironment -#endif - )) || (MultiXactIdIsValid(minmulti) && (MultiXactIdPrecedes(relminmxid, minmulti) || !IsPostmasterEnvironment)) || - isNull) { + || !IsPostmasterEnvironment)) || + (MultiXactIdIsValid(minmulti) && (MultiXactIdPrecedes(relminmxid, minmulti) + || !IsPostmasterEnvironment)) || isNull + ) { Datum values[Natts_pg_class]; bool nulls[Natts_pg_class]; @@ -1729,6 +1845,16 @@ static bool vacuum_rel(Oid relid, VacuumStmt* vacstmt, bool do_toast) LockRelId cudescLockRelid = InvalidLockRelId; LockRelId deltaLockRelid = InvalidLockRelId; + /* + * we use this identify whether the partition is a subpartition + * subparentid is valid means it's a subpartition, then relationid saves the grandparentid + */ + Oid subparentid = InvalidOid; + Partition onesubpart = NULL; + Relation onesubpartrel = NULL; + PartitionIdentifier* subpartIdentifier = NULL; + PartitionIdentifier subpartIdtf; + /* Vacuum map/log table obeys the same rule as toast, only triggered by vacuum, ignored by autovacuum */ bool doMapLog = do_toast; Oid maplogOid; @@ -1793,6 +1919,11 @@ static bool vacuum_rel(Oid relid, VacuumStmt* vacstmt, bool do_toast) proc_snapshot_and_transaction(); return false; } + Oid grandparentid = partid_get_parentid(relationid); + if (OidIsValid(grandparentid)) { + subparentid = relationid; + relationid = grandparentid; + } } /* @@ -1947,12 +2078,23 @@ static bool vacuum_rel(Oid relid, VacuumStmt* vacstmt, bool do_toast) onepartrel = try_relation_open(relationid, lmodePartTable); if (onepartrel) { - /* Open the partition */ - onepart = tryPartitionOpen(onepartrel, relid, lmode); + if (!OidIsValid(subparentid)) { /* for a partition */ + /* Open the partition */ + onepart = tryPartitionOpen(onepartrel, relid, lmode); - if (onepart) { - /* Get a Relation from a Partition */ - onerel = partitionGetRelation(onepartrel, onepart); + if (onepart) { + /* Get a Relation from a Partition */ + onerel = partitionGetRelation(onepartrel, onepart); + } + } else { /* for a subpartition */ + onepart = tryPartitionOpen(onepartrel, subparentid, lmode); + if (onepart) { + onesubpartrel = partitionGetRelation(onepartrel, onepart); + onesubpart = tryPartitionOpen(onesubpartrel, relid, lmode); + if (onesubpartrel && onesubpart) { + onerel = partitionGetRelation(onesubpartrel, onesubpart); + } + } } } @@ -1994,31 +2136,53 @@ static bool vacuum_rel(Oid relid, VacuumStmt* vacstmt, bool do_toast) onepartrel = try_relation_open(relationid, NoLock); if (onepartrel) { - if (onepartrel->rd_rel->relkind == RELKIND_RELATION) { - partID = partOidGetPartID(onepartrel, relid); - if (PART_AREA_RANGE == partID->partArea || - partID->partArea == PART_AREA_INTERVAL || - PART_AREA_LIST == partID->partArea || - PART_AREA_HASH == partID->partArea) { + if (!OidIsValid(subparentid)) { /* for a partition */ + if (onepartrel->rd_rel->relkind == RELKIND_RELATION) { + partID = partOidGetPartID(onepartrel, relid); + if (PART_AREA_RANGE == partID->partArea || + partID->partArea == PART_AREA_INTERVAL || + PART_AREA_LIST == partID->partArea || + PART_AREA_HASH == partID->partArea) { + if (ConditionalLockPartition(onepartrel->rd_id, relid, lmode, PARTITION_LOCK)) { + GetLock = true; + } + } + // remember to free partID + pfree_ext(partID); + } else if (onepartrel->rd_rel->relkind == RELKIND_INDEX) { if (ConditionalLockPartition(onepartrel->rd_id, relid, lmode, PARTITION_LOCK)) { GetLock = true; } } - // remember to free partID - pfree_ext(partID); - } else if (onepartrel->rd_rel->relkind == RELKIND_INDEX) { - if (ConditionalLockPartition(onepartrel->rd_id, relid, lmode, PARTITION_LOCK)) { - GetLock = true; + + if (GetLock) { + /* Open the partition */ + onepart = tryPartitionOpen(onepartrel, relid, NoLock); + + /* Get a Relation from a Partition */ + if (onepart) + onerel = partitionGetRelation(onepartrel, onepart); } - } + } else { /* for a subpartition */ + PartitionIdentifier* subpartID = NULL; - if (GetLock) { - /* Open the partition */ - onepart = tryPartitionOpen(onepartrel, relid, NoLock); + partID = partOidGetPartID(onepartrel, subparentid); + if (ConditionalLockPartition(onepartrel->rd_id, subparentid, lmode, PARTITION_LOCK)) { + onepart = tryPartitionOpen(onepartrel, subparentid, NoLock); + if (onepart) { + onesubpartrel = partitionGetRelation(onepartrel, onepart); + subpartID = partOidGetPartID(onesubpartrel, relid); + if (ConditionalLockPartition(onesubpartrel->rd_id, relid, lmode, PARTITION_LOCK)) { + GetLock = true; + } + } + } - /* Get a Relation from a Partition */ - if (onepart) - onerel = partitionGetRelation(onepartrel, onepart); + if (GetLock) { + onesubpart = tryPartitionOpen(onesubpartrel, relid, NoLock); + if (onesubpart) + onerel = partitionGetRelation(onesubpartrel, onesubpart); + } } } else GetLock = true; @@ -2071,23 +2235,37 @@ static bool vacuum_rel(Oid relid, VacuumStmt* vacstmt, bool do_toast) deltarel = try_relation_open(deltarelid, NoLock); } -#define CloseAllRelationsBeforeReturnFalse() \ - do { \ - if (RelationIsPartition(onerel)) { \ - releaseDummyRelation(&onerel); \ - if (onepart != NULL) { \ - partitionClose(onepartrel, onepart, lmode); \ - } \ - if (onepartrel != NULL) { \ - relation_close(onepartrel, lmodePartTable); \ - } \ - } else { \ - relation_close(onerel, lmode); \ - } \ - if (cudescrel != NULL) \ - relation_close(cudescrel, lmode); \ - if (deltarel != NULL) \ - relation_close(deltarel, lmode); \ +#define CloseAllRelationsBeforeReturnFalse() \ + do { \ + if (OidIsValid(subparentid)) { \ + releaseDummyRelation(&onerel); \ + if (onesubpart != NULL) { \ + partitionClose(onesubpartrel, onesubpart, lmode); \ + } \ + if (onesubpartrel != NULL) { \ + releaseDummyRelation(&onesubpartrel); \ + } \ + if (onepart != NULL) { \ + partitionClose(onepartrel, onepart, lmode); \ + } \ + if (onepartrel != NULL) { \ + relation_close(onepartrel, lmodePartTable); \ + } \ + } else if (RelationIsPartition(onerel)) { \ + releaseDummyRelation(&onerel); \ + if (onepart != NULL) { \ + partitionClose(onepartrel, onepart, lmode); \ + } \ + if (onepartrel != NULL) { \ + relation_close(onepartrel, lmodePartTable); \ + } \ + } else { \ + relation_close(onerel, lmode); \ + } \ + if (cudescrel != NULL) \ + relation_close(cudescrel, lmode); \ + if (deltarel != NULL) \ + relation_close(deltarel, lmode); \ } while (0) // We don't do vaccum when the table is in redistribution. @@ -2132,7 +2310,12 @@ static bool vacuum_rel(Oid relid, VacuumStmt* vacstmt, bool do_toast) * Note we choose to treat permissions failure as a WARNING and keep * trying to vacuum the rest of the DB --- is this appropriate? */ - AclResult aclresult = pg_class_aclcheck(RelationGetPgClassOid(onerel, (onepart != NULL)), GetUserId(), ACL_VACUUM); + AclResult aclresult; + if (OidIsValid(subparentid)) { + aclresult = pg_class_aclcheck(onerel->grandparentId, GetUserId(), ACL_VACUUM); + } else { + aclresult = pg_class_aclcheck(RelationGetPgClassOid(onerel, (onepart != NULL)), GetUserId(), ACL_VACUUM); + } if (aclresult != ACLCHECK_OK && !(pg_class_ownercheck(RelationGetPgClassOid(onerel, (onepart != NULL)), GetUserId()) || (pg_database_ownercheck(u_sess->proc_cxt.MyDatabaseId, GetUserId()) && !onerel->rd_rel->relisshared) || @@ -2224,7 +2407,27 @@ static bool vacuum_rel(Oid relid, VacuumStmt* vacstmt, bool do_toast) */ onerelid = onerel->rd_lockInfo.lockRelId; - if (RelationIsPartition(onerel)) { + if (OidIsValid(subparentid)) { + isFakeRelation = true; + partLockRelId = onepartrel->rd_lockInfo.lockRelId; + LockRelationIdForSession(&partLockRelId, lmodePartTable); + + Assert(onerelid.relId == relid); + Assert(OidIsValid(relationid)); + + /* first lock the subpartition */ + subpartIdentifier = partOidGetPartID(onesubpartrel, relid); + subpartIdtf = *subpartIdentifier; + LockPartitionVacuumForSession(subpartIdentifier, subparentid, relid, lmode); + + /* then lock the partition */ + partIdentifier = partOidGetPartID(onepartrel, subparentid); + LockPartitionVacuumForSession(partIdentifier, relationid, subparentid, lmode); + partIdtf = *partIdentifier; + + pfree_ext(subpartIdentifier); + pfree_ext(partIdentifier); + } else if (RelationIsPartition(onerel)) { isFakeRelation = true; partLockRelId = onepartrel->rd_lockInfo.lockRelId; LockRelationIdForSession(&partLockRelId, lmodePartTable); @@ -2255,7 +2458,9 @@ static bool vacuum_rel(Oid relid, VacuumStmt* vacstmt, bool do_toast) * automatically rebuilt by cluster_rel so we shouldn't recurse to it. */ if (do_toast && !(vacstmt->options & VACOPT_FULL)) { - if (RelationIsPartition(onerel)) { + if (OidIsValid(subparentid)) { + toast_relid = onesubpart->pd_part->reltoastrelid; + } else if (RelationIsPartition(onerel)) { toast_relid = onepart->pd_part->reltoastrelid; } else { toast_relid = onerel->rd_rel->reltoastrelid; @@ -2297,8 +2502,13 @@ static bool vacuum_rel(Oid relid, VacuumStmt* vacstmt, bool do_toast) securec_check(rc, "\0", "\0"); if (vacstmt->options & VACOPT_FULL) { - if (vacuumPartition(vacstmt->flags)) - rel = onepartrel; + if (vacuumPartition(vacstmt->flags)) { + if (OidIsValid(subparentid)) { + rel = onesubpartrel; + } else { + rel = onepartrel; + } + } if (rel->rd_rel->relhasclusterkey) { EstIdxMemInfo(rel, NULL, &desc, NULL, NULL); @@ -2335,9 +2545,18 @@ static bool vacuum_rel(Oid relid, VacuumStmt* vacstmt, bool do_toast) /* * Do the actual work --- either FULL or "lazy" vacuum */ - if (RelationIsPartition(onerel)) { + if (OidIsValid(subparentid)) { + vacstmt->parentpartrel = onepartrel; + vacstmt->parentpart = onepart; + vacstmt->onepartrel = onesubpartrel; + vacstmt->onepart = onesubpart; + vacstmt->issubpartition = true; + } else if (RelationIsPartition(onerel)) { vacstmt->onepartrel = onepartrel; vacstmt->onepart = onepart; + vacstmt->parentpartrel = NULL; + vacstmt->parentpart = NULL; + vacstmt->issubpartition = false; } WaitState oldStatus = pgstat_report_waitstatus_relname(STATE_VACUUM, get_nsp_relname(relid)); @@ -2397,12 +2616,22 @@ static bool vacuum_rel(Oid relid, VacuumStmt* vacstmt, bool do_toast) RelationClose(rel); } } else if ((vacstmt->options & VACOPT_FULL) && (vacstmt->flags & VACFLG_SUB_PARTITION)) { - releaseDummyRelation(&onerel); - partitionClose(onepartrel, onepart, NoLock); - relation_close(onepartrel, NoLock); + if (OidIsValid(subparentid)) { + releaseDummyRelation(&onerel); + partitionClose(onesubpartrel, onesubpart, NoLock); + releaseDummyRelation(&onesubpartrel); + partitionClose(onepartrel, onepart, NoLock); + relation_close(onepartrel, NoLock); + } else { + releaseDummyRelation(&onerel); + partitionClose(onepartrel, onepart, NoLock); + relation_close(onepartrel, NoLock); + } onerel = NULL; onepartrel = NULL; onepart = NULL; + onesubpartrel = NULL; + onesubpart = NULL; if (cudescrel != NULL) { relation_close(cudescrel, NoLock); @@ -2442,6 +2671,7 @@ static bool vacuum_rel(Oid relid, VacuumStmt* vacstmt, bool do_toast) pgstat_report_waitstatus_relname(STATE_VACUUM, get_nsp_relname(relid)); GPIVacuumMainPartition(onerel, vacstmt, lmode, vac_strategy); CBIVacuumMainPartition(onerel, vacstmt, lmode, vac_strategy); + pgstat_report_vacuum(relid, InvalidOid, false, 0); } else { pgstat_report_waitstatus_relname(STATE_VACUUM, get_nsp_relname(relid)); TableRelationVacuum(onerel, vacstmt, vac_strategy); @@ -2458,9 +2688,17 @@ static bool vacuum_rel(Oid relid, VacuumStmt* vacstmt, bool do_toast) /* all done with this class, but hold lock until commit */ if (onerel) { if (RelationIsPartition(onerel)) { - releaseDummyRelation(&onerel); - partitionClose(onepartrel, onepart, NoLock); - relation_close(onepartrel, NoLock); + if (OidIsValid(subparentid)) { + releaseDummyRelation(&onerel); + partitionClose(onesubpartrel, onesubpart, NoLock); + releaseDummyRelation(&onesubpartrel); + partitionClose(onepartrel, onepart, NoLock); + relation_close(onepartrel, NoLock); + } else { + releaseDummyRelation(&onerel); + partitionClose(onepartrel, onepart, NoLock); + relation_close(onepartrel, NoLock); + } } else { relation_close(onerel, NoLock); } @@ -2488,6 +2726,9 @@ static bool vacuum_rel(Oid relid, VacuumStmt* vacstmt, bool do_toast) vacstmt->flags = VACFLG_SIMPLE_HEAP; vacstmt->onepartrel = NULL; vacstmt->onepart = NULL; + vacstmt->parentpartrel = NULL; + vacstmt->parentpart = NULL; + vacstmt->issubpartition = false; (void)vacuum_rel(toast_relid, vacstmt, false); } @@ -2495,6 +2736,9 @@ static bool vacuum_rel(Oid relid, VacuumStmt* vacstmt, bool do_toast) vacstmt->flags = VACFLG_SIMPLE_HEAP; vacstmt->onepartrel = NULL; vacstmt->onepart = NULL; + vacstmt->parentpartrel = NULL; + vacstmt->parentpart = NULL; + vacstmt->issubpartition = false; (void)vacuum_rel(maplogOid, vacstmt, false); } @@ -2509,9 +2753,17 @@ static bool vacuum_rel(Oid relid, VacuumStmt* vacstmt, bool do_toast) if (isFakeRelation) { Assert(onerelid.relId == relid && OidIsValid(relationid)); - UnLockPartitionVacuumForSession(&partIdtf, relationid, relid, lmode); + if (OidIsValid(subparentid)) { + UnLockPartitionVacuumForSession(&partIdtf, relationid, subparentid, lmode); - UnlockRelationIdForSession(&partLockRelId, lmodePartTable); + UnLockPartitionVacuumForSession(&subpartIdtf, subparentid, relid, lmode); + + UnlockRelationIdForSession(&partLockRelId, lmodePartTable); + } else { + UnLockPartitionVacuumForSession(&partIdtf, relationid, relid, lmode); + + UnlockRelationIdForSession(&partLockRelId, lmodePartTable); + } } else { UnlockRelationIdForSession(&onerelid, lmode); } @@ -2808,7 +3060,11 @@ void vac_open_part_indexes(VacuumStmt* vacstmt, LOCKMODE lockmode, int* nindexes localIndOidList = PartitionGetPartIndexList(vacstmt->onepart); localIndNums = list_length(localIndOidList); // get global partition indexes - globIndOidList = RelationGetSpecificKindIndexList(vacstmt->onepartrel, true); + if (!vacstmt->parentpartrel) { + globIndOidList = RelationGetSpecificKindIndexList(vacstmt->onepartrel, true); + } else { + globIndOidList = RelationGetSpecificKindIndexList(vacstmt->parentpartrel, true); + } globIndNums = list_length(globIndOidList); tolIndNums = (long)localIndNums + (long)globIndNums; @@ -2877,9 +3133,16 @@ void CalculatePartitionedRelStats(_in_ Relation partitionRel, _in_ Relation part MultiXactId multiXid = InvalidMultiXactId; Form_pg_partition partForm; - Assert(partitionRel->rd_rel->parttype == PARTTYPE_PARTITIONED_RELATION); + Assert(partitionRel->rd_rel->parttype == PARTTYPE_PARTITIONED_RELATION || + partitionRel->rd_rel->parttype == PARTTYPE_SUBPARTITIONED_RELATION); - if (partitionRel->rd_rel->relkind == RELKIND_RELATION) { + if (partitionRel->rd_rel->parttype == PARTTYPE_SUBPARTITIONED_RELATION) { + ScanKeyInit(&partKey[0], + Anum_pg_partition_parttype, + BTEqualStrategyNumber, + F_CHAREQ, + CharGetDatum(PART_OBJ_TYPE_TABLE_SUB_PARTITION)); + } else if (partitionRel->rd_rel->relkind == RELKIND_RELATION) { ScanKeyInit(&partKey[0], Anum_pg_partition_parttype, BTEqualStrategyNumber, @@ -2999,7 +3262,8 @@ void vac_update_pgclass_partitioned_table(Relation partitionRel, bool hasIndex, TransactionId frozenXid = newFrozenXid; MultiXactId multiXid = newMultiXid; - Assert(partitionRel->rd_rel->parttype == PARTTYPE_PARTITIONED_RELATION); + Assert(partitionRel->rd_rel->parttype == PARTTYPE_PARTITIONED_RELATION || + partitionRel->rd_rel->parttype == PARTTYPE_SUBPARTITIONED_RELATION); /* * We should make CalculatePartitionedRelStats and vac_udpate_relstats in whole, @@ -3323,6 +3587,9 @@ void merge_cu_relation(void* _info, VacuumStmt* stmt) /* non-partition table */ stmt->onepartrel = NULL; stmt->onepart = NULL; + stmt->parentpartrel = NULL; + stmt->parentpart = NULL; + stmt->issubpartition = false; lazy_vacuum_rel(rel, stmt, GetAccessStrategy(BAS_VACUUM)); CommandCounterIncrement(); @@ -3954,26 +4221,26 @@ static bool GPIIsInvisibleTuple(ItemPointer itemptr, void* state, Oid partOid, i } // check partition oid of global partition index tuple - if (bms_is_member(partOid, pvacStates->invisMap)) { + if (OidRBTreeMemberOid(pvacStates->invisiblePartOids, partOid)) { return true; } - if (bms_is_member(partOid, pvacStates->visMap)) { + if (OidRBTreeMemberOid(pvacStates->visiblePartOids, partOid)) { return false; } PartStatus partStat = PartitionGetMetadataStatus(partOid, true); if (partStat == PART_METADATA_INVISIBLE) { - pvacStates->invisMap = bms_add_member(pvacStates->invisMap, partOid); + (void)OidRBTreeMemberOid(pvacStates->invisiblePartOids, partOid); return true; } else { // visible include EXIST and NOEXIST - pvacStates->visMap = bms_add_member(pvacStates->visMap, partOid); + (void)OidRBTreeMemberOid(pvacStates->visiblePartOids, partOid); return false; } } // clean invisible tuples for global partition index -static void GPICleanInvisibleIndex(Relation indrel, IndexBulkDeleteResult **stats, Bitmapset **cleanedParts, - Bitmapset *invisibleParts) +static void GPICleanInvisibleIndex(Relation indrel, IndexBulkDeleteResult **stats, OidRBTree **cleanedParts, + OidRBTree *invisibleParts) { IndexVacuumInfo ivinfo; PGRUsage ru0; @@ -3989,21 +4256,19 @@ static void GPICleanInvisibleIndex(Relation indrel, IndexBulkDeleteResult **stat ivinfo.strategy = vac_strategy; VacStates* pvacStates = (VacStates*)palloc0(sizeof(VacStates)); - pvacStates->invisMap = invisibleParts; - pvacStates->visMap = NULL; + pvacStates->invisiblePartOids = invisibleParts; + pvacStates->visiblePartOids = CreateOidRBTree(); pvacStates->bucketList = NULL; if (RELATION_OWN_BUCKET(indrel) && RelationIsCrossBucketIndex(indrel)) { pvacStates->bucketList = searchHashBucketByOid(indrel->rd_bucketoid); } /* Do bulk deletion */ *stats = index_bulk_delete(&ivinfo, *stats, GPIIsInvisibleTuple, (void*)pvacStates); - Bitmapset* pIntersect = bms_intersect(pvacStates->invisMap, pvacStates->visMap); - Assert(bms_is_empty(pIntersect)); - bms_free_ext(pIntersect); + Assert(!OidRBTreeHasIntersection(pvacStates->invisiblePartOids, pvacStates->visiblePartOids)); - *cleanedParts = bms_add_members(*cleanedParts, pvacStates->invisMap); + OidRBTreeUnionOids(*cleanedParts, pvacStates->invisiblePartOids); - bms_free(pvacStates->visMap); + DestroyOidRBTree(&pvacStates->visiblePartOids); pfree_ext(pvacStates); ereport(elevel, (errmsg("scanned index \"%s\" to remove %lf invisible rows", @@ -4054,8 +4319,8 @@ static void GPIVacuumMainPartition( { Relation* iRel = NULL; int nindexes; - Bitmapset* cleanedParts = NULL; - Bitmapset* invisibleParts = NULL; + OidRBTree* cleanedParts = CreateOidRBTree(); + OidRBTree* invisibleParts = CreateOidRBTree(); Oid parentOid = RelationGetRelid(onerel); if (vacstmt->options & VACOPT_VERBOSE) { @@ -4105,8 +4370,8 @@ static void GPIVacuumMainPartition( PartitionSetEnabledClean(parentOid, cleanedParts, invisibleParts, false); } - bms_free(cleanedParts); - bms_free(invisibleParts); + DestroyOidRBTree(&cleanedParts); + DestroyOidRBTree(&invisibleParts); pfree_ext(indstats); pfree_ext(iRel); } diff --git a/src/gausskernel/optimizer/commands/vacuumlazy.cpp b/src/gausskernel/optimizer/commands/vacuumlazy.cpp index 5fe65de5b..d0204fd42 100644 --- a/src/gausskernel/optimizer/commands/vacuumlazy.cpp +++ b/src/gausskernel/optimizer/commands/vacuumlazy.cpp @@ -176,7 +176,7 @@ void lazy_vacuum_rel(Relation onerel, VacuumStmt* vacstmt, BufferAccessStrategy long secs; int usecs; double read_rate, write_rate; - bool scan_all = false; + bool scan_all = false; /* actually scanned all such pages? */ TransactionId freezeTableLimit = 0; BlockNumber new_rel_pages; double new_rel_tuples; @@ -276,6 +276,9 @@ void lazy_vacuum_rel(Relation onerel, VacuumStmt* vacstmt, BufferAccessStrategy /* clean part info before vacuum delta and desc table */ vacstmt->onepartrel = NULL; vacstmt->onepart = NULL; + vacstmt->parentpartrel = NULL; + vacstmt->parentpart = NULL; + vacstmt->issubpartition = false; vacstmt->flags = VACFLG_SIMPLE_HEAP; Oid toast_relid = InvalidOid; @@ -434,6 +437,11 @@ void lazy_vacuum_rel(Relation onerel, VacuumStmt* vacstmt, BufferAccessStrategy } } } + if (vacrelstats->scanned_pages < vacrelstats->rel_pages || vacrelstats->hasKeepInvisbleTuples) { + scan_all = false; + } else { + scan_all = true; + } /* * Try to truncate tail blocks if they are all empty. @@ -487,21 +495,14 @@ void lazy_vacuum_rel(Relation onerel, VacuumStmt* vacstmt, BufferAccessStrategy if (new_rel_allvisible > new_rel_pages) new_rel_allvisible = new_rel_pages; - new_frozen_xid = u_sess->cmd_cxt.FreezeLimit; - if (vacrelstats->scanned_pages < vacrelstats->rel_pages || vacrelstats->hasKeepInvisbleTuples) { - new_frozen_xid = InvalidTransactionId; - } - - new_min_multi = u_sess->cmd_cxt.MultiXactFrzLimit; - if (vacrelstats->scanned_pages < vacrelstats->rel_pages || vacrelstats->hasKeepInvisbleTuples) { - new_min_multi = InvalidMultiXactId; - } + new_frozen_xid = scan_all ? u_sess->cmd_cxt.FreezeLimit : InvalidTransactionId; + new_min_multi = scan_all ? u_sess->cmd_cxt.MultiXactFrzLimit : InvalidMultiXactId; if (RelationIsPartition(onerel)) { Assert(vacstmt->onepart != NULL); - vac_update_partstats(vacstmt->onepart, new_rel_pages, new_rel_tuples, - new_rel_allvisible, new_frozen_xid, new_min_multi); + vac_update_partstats(vacstmt->onepart, new_rel_pages, new_rel_tuples, new_rel_allvisible, new_frozen_xid, + new_min_multi); /* * when vacuum partition, do not change the relhasindex field in pg_class * for partitioned table, as some partition may be altered as "all local @@ -509,8 +510,13 @@ void lazy_vacuum_rel(Relation onerel, VacuumStmt* vacstmt, BufferAccessStrategy * will lead to misbehave when update other index usable partitions ---the horrible * misdguge as hot update even if update indexes columns. */ - vac_update_pgclass_partitioned_table( - vacstmt->onepartrel, vacstmt->onepartrel->rd_rel->relhasindex, new_frozen_xid, new_min_multi); + if (!vacstmt->parentpartrel) { + vac_update_pgclass_partitioned_table( + vacstmt->onepartrel, vacstmt->onepartrel->rd_rel->relhasindex, new_frozen_xid, new_min_multi); + } else { + vac_update_pgclass_partitioned_table( + vacstmt->parentpartrel, vacstmt->parentpartrel->rd_rel->relhasindex, new_frozen_xid, new_min_multi); + } // update stats of local partition indexes for (int idx = 0; idx < nindexes - nindexesGlobal; idx++) { @@ -1711,7 +1717,7 @@ static int lazy_vacuum_heap(Relation onerel, LVRelStats* vacrelstats, int tupind npages++; } - ereport(LOG, + ereport(elevel, (errmsg("vacuum %u/%u/%u, \"%s\": removed %d row versions in %d pages", onerel->rd_node.spcNode, onerel->rd_node.dbNode, onerel->rd_node.relNode, RelationGetRelationName(onerel), tupindex, npages), diff --git a/src/gausskernel/optimizer/commands/verify.cpp b/src/gausskernel/optimizer/commands/verify.cpp index 3c7dba537..9853c1392 100644 --- a/src/gausskernel/optimizer/commands/verify.cpp +++ b/src/gausskernel/optimizer/commands/verify.cpp @@ -57,7 +57,7 @@ static List* GetVerifyRelidList(VacuumStmt* stmt); static void DoGlobalVerifyRowRel(VacuumStmt* stmt, Oid relid, bool isDatabase); static void DoGlobalVerifyColRel(VacuumStmt* stmt, Oid relid, bool isDatabase); static void DoVerifyIndexRel(VacuumStmt* stmt, Oid indexRelid); -static void VerifyPartRel(VacuumStmt* stmt, Relation rel, Oid partOid, bool isRowTable); +static void VerifyPartRel(VacuumStmt* stmt, Relation rel, Oid partOid, bool isRowTable, bool issubpartition = false); static void VerifyPartIndexRels(VacuumStmt* stmt, Relation rel, Relation partitionRel); static void VerifyPartIndexRel(VacuumStmt* stmt, Relation rel, Relation partitionRel, Oid indexOid); static void VerifyIndexRels(VacuumStmt* stmt, Relation rel, VerifyDesc* checkCudesc = NULL); @@ -774,14 +774,36 @@ static void DoGlobalVerifyRowRel(VacuumStmt* stmt, Oid relid, bool isDatabase) NULL, NULL, NoLock); - VerifyPartRel(stmt, rel, partOid, true); + Partition part = partitionOpen(rel, partOid, AccessShareLock); + if (PartitionHasSubpartition(part)) { + Relation partrel = partitionGetRelation(rel, part); + Oid subpartOid; + ListCell* cell = NULL; + List* partOidList = relationGetPartitionOidList(partrel); + foreach (cell, partOidList) { + subpartOid = lfirst_oid(cell); + VerifyPartRel(stmt, rel, subpartOid, true, true); + } + releaseDummyRelation(&partrel); + } else { + VerifyPartRel(stmt, rel, partOid, true); + } + partitionClose(rel, part, AccessShareLock); relation_close(rel, AccessShareLock); return; } } - if (RELATION_IS_PARTITIONED(rel)) { + if (RelationIsSubPartitioned(rel)) { + Oid partOid; + ListCell* cell = NULL; + List* partOidList = RelationGetSubPartitionOidList(rel); + foreach (cell, partOidList) { + partOid = lfirst_oid(cell); + VerifyPartRel(stmt, rel, partOid, true, true); + } + } else if (RELATION_IS_PARTITIONED(rel)) { Oid partOid; ListCell* cell = NULL; List* partOidList = relationGetPartitionOidList(rel); @@ -914,10 +936,23 @@ static void DoVerifyIndexRel(VacuumStmt* stmt, Oid indexRelid) * @in isRowTable - judge the table is row table or column table * @return: void */ -static void VerifyPartRel(VacuumStmt* stmt, Relation rel, Oid partOid, bool isRowTable) +static void VerifyPartRel(VacuumStmt* stmt, Relation rel, Oid partOid, bool isRowTable, bool issubpartition) { - Partition part = partitionOpen(rel, partOid, AccessShareLock); - Relation partitionRel = partitionGetRelation(rel, part); + Partition part = NULL; + Relation partitionRel = NULL; + Oid subparentid = InvalidOid; + Partition parentpart = NULL; + Relation parentpartitionRel = NULL; + if (!issubpartition) { + part = partitionOpen(rel, partOid, AccessShareLock); + partitionRel = partitionGetRelation(rel, part); + } else { + subparentid = partid_get_parentid(partOid); + parentpart = partitionOpen(rel, subparentid, AccessShareLock); + parentpartitionRel = partitionGetRelation(rel, parentpart); + part = partitionOpen(parentpartitionRel, partOid, AccessShareLock); + partitionRel = partitionGetRelation(parentpartitionRel, part); + } /* check the main partition table. */ PG_TRY(); @@ -947,8 +982,15 @@ static void VerifyPartRel(VacuumStmt* stmt, Relation rel, Oid partOid, bool isRo } } PG_END_TRY(); - partitionClose(rel, part, AccessShareLock); - releaseDummyRelation(&partitionRel); + if (!issubpartition) { + releaseDummyRelation(&partitionRel); + partitionClose(rel, part, AccessShareLock); + } else { + releaseDummyRelation(&partitionRel); + partitionClose(parentpartitionRel, part, AccessShareLock); + releaseDummyRelation(&parentpartitionRel); + partitionClose(rel, parentpart, AccessShareLock); + } return; } diff --git a/src/gausskernel/optimizer/commands/view.cpp b/src/gausskernel/optimizer/commands/view.cpp index 75ad2749d..d9fa1f9af 100644 --- a/src/gausskernel/optimizer/commands/view.cpp +++ b/src/gausskernel/optimizer/commands/view.cpp @@ -54,7 +54,7 @@ InSideView query_from_view_hook = NULL; static void setEncryptedColumnRef(ColumnDef *def, TargetEntry *tle) { def->clientLogicColumnRef = (ClientLogicColumnRef*)palloc(sizeof(ClientLogicColumnRef)); - HeapTuple tup = search_sys_cache_ce_col_name(tle->resorigtbl, def->colname); + HeapTuple tup = SearchSysCache2(CERELIDCOUMNNAME, ObjectIdGetDatum(tle->resorigtbl), CStringGetDatum(def->colname)); if (!HeapTupleIsValid(tup)) { ereport(ERROR, (errcode(ERRCODE_UNDEFINED_COLUMN), errmsg("client encrypted column \"%s\" does not exist", def->colname))); diff --git a/src/gausskernel/optimizer/path/Makefile b/src/gausskernel/optimizer/path/Makefile index 76daad113..9d4b16591 100644 --- a/src/gausskernel/optimizer/path/Makefile +++ b/src/gausskernel/optimizer/path/Makefile @@ -20,11 +20,11 @@ endif ifeq ($(enable_multiple_nodes), yes) OBJS = allpaths.o clausesel.o costsize.o equivclass.o indxpath.o \ - joinpath.o joinrels.o pathkeys.o tidpath.o streampath_base.o \ + joinpath.o joinrels.o orindxpath.o pathkeys.o tidpath.o streampath_base.o \ es_selectivity.o else OBJS = allpaths.o clausesel.o costsize.o equivclass.o indxpath.o \ - joinpath.o joinrels.o pathkeys.o tidpath.o \ + joinpath.o joinrels.o orindxpath.o pathkeys.o tidpath.o \ pgxcpath_single.o streampath_single.o streampath_base.o es_selectivity.o endif diff --git a/src/gausskernel/optimizer/path/allpaths.cpp b/src/gausskernel/optimizer/path/allpaths.cpp index a50aaac9a..b8d1e2c75 100755 --- a/src/gausskernel/optimizer/path/allpaths.cpp +++ b/src/gausskernel/optimizer/path/allpaths.cpp @@ -60,8 +60,8 @@ THR_LOCAL set_rel_pathlist_hook_type set_rel_pathlist_hook = NULL; /* Hook for plugins to get control in add_paths_to_joinrel() */ THR_LOCAL set_join_pathlist_hook_type set_join_pathlist_hook = NULL; -const int min_parallel_table_scan_size = 10737418240 / BLCKSZ; /* 10GB */ -const int max_parallel_maintenance_workers = 4; +const int min_parallel_table_scan_size = 1073741824 / BLCKSZ; /* 1GB */ +const int max_parallel_maintenance_workers = 32; static bool check_func_walker(Node* node, bool* found); static bool check_func(Node* node); @@ -810,6 +810,9 @@ static void set_plain_rel_size(PlannerInfo* root, RelOptInfo* rel, RangeTblEntry /* get pruning result */ if (rte->isContainPartition) { rel->pruning_result = singlePartitionPruningForRestrictInfo(rte->partitionOid, relation); + } else if (rte->isContainSubPartition) { + rel->pruning_result = + SingleSubPartitionPruningForRestrictInfo(rte->subpartitionOid, relation, rte->partitionOid); } else { rel->pruning_result = partitionPruningForRestrictInfo(root, rte, relation, rel->baserestrictinfo); } @@ -828,7 +831,7 @@ static void set_plain_rel_size(PlannerInfo* root, RelOptInfo* rel, RangeTblEntry if (relation->partMap != NULL && PartitionMapIsRange(relation->partMap)) { RangePartitionMap *partMmap = (RangePartitionMap *)relation->partMap; - pruningRatio = (double)rel->partItrs / partMmap->rangeElementsNum; + pruningRatio = rel->partItrs / partMmap->rangeElementsNum; } heap_close(relation, NoLock); @@ -848,6 +851,16 @@ static void set_plain_rel_size(PlannerInfo* root, RelOptInfo* rel, RangeTblEntry if (rte->tablesample == NULL) { /* Mark rel with estimated output rows, width, etc */ set_baserel_size_estimates(root, rel); + + /* + * Check to see if we can extract any restriction conditions from join + * quals that are OR-of-AND structures. If so, add them to the rel's + * restriction list, and redo the above steps. + */ + if (create_or_index_quals(root, rel)) { + check_partial_indexes(root, rel); + set_baserel_size_estimates(root, rel); + } } else { /* Sampled relation */ set_tablesample_rel_size(root, rel, rte); @@ -977,7 +990,7 @@ static void set_plain_rel_pathlist(PlannerInfo* root, RelOptInfo* rel, RangeTblE * support normal row table unless it is partitioned. * The partition table can be parallelized when partItrs > u_sess->opt_cxt.query_dop. */ - bool can_parallel = IS_STREAM_PLAN && (u_sess->opt_cxt.query_dop > 1) && + bool can_parallel = IS_STREAM_PLAN && (u_sess->opt_cxt.query_dop > 1) && (!rel->is_ustore) && (rel->locator_type != LOCATOR_TYPE_REPLICATED) && (rte->tablesample == NULL); if (!isrp) { #endif @@ -2812,17 +2825,6 @@ static void set_cte_pathlist(PlannerInfo* root, RelOptInfo* rel, RangeTblEntry* foreach (lc, cteroot->parse->cteList) { CommonTableExpr* cte = (CommonTableExpr*)lfirst(lc); - /* - * MPP with recursive support. - * - * Recursive CTE is initialized in subplan list, so we should only count - * the recursive CTE, the none-recursive CTE is fold in early stage of - * query rewrite. - */ - if (STREAM_RECURSIVECTE_SUPPORTED && !cte->cterecursive) { - continue; - } - if (strcmp(cte->ctename, rte->ctename) == 0) break; ndx++; @@ -3989,6 +3991,11 @@ int compute_parallel_worker(const RelOptInfo *rel, double heap_pages, int rel_ma return 0; } + /* Return what user tell us */ + if (rel_maxworker != -1) { + return max_workers; + } + if (heap_pages >= 0) { int heap_parallel_threshold; int heap_parallel_workers = 1; @@ -4002,8 +4009,8 @@ int compute_parallel_worker(const RelOptInfo *rel, double heap_pages, int rel_ma heap_parallel_threshold = Max(min_parallel_table_scan_size, 1); while (heap_pages >= (BlockNumber)heap_parallel_threshold) { heap_parallel_workers++; - heap_parallel_threshold *= 3; - if (heap_parallel_threshold > INT_MAX / 3) { + heap_parallel_threshold *= 4; + if (heap_parallel_threshold > INT_MAX / 4) { break; /* avoid overflow */ } } diff --git a/src/gausskernel/optimizer/path/costsize.cpp b/src/gausskernel/optimizer/path/costsize.cpp index 68af13923..9abcc12b0 100755 --- a/src/gausskernel/optimizer/path/costsize.cpp +++ b/src/gausskernel/optimizer/path/costsize.cpp @@ -1294,6 +1294,7 @@ void cost_index(IndexPath* path, PlannerInfo* root, double loop_count) } min_IO_cost = Min(min_IO_cost, max_IO_cost); + /* * Now interpolate based on estimated index order correlation to get total * disk I/O cost for main table accesses. @@ -5707,6 +5708,12 @@ void set_rel_width(PlannerInfo* root, RelOptInfo* rel) ispartition = true; } + if (rte->isContainSubPartition) { + Assert(OidIsValid(rte->partitionOid)); + targetid = rte->subpartitionOid; + ispartition = true; + } + item_width = get_attavgwidth(targetid, var->varattno, ispartition); if (item_width > 0) { rel->attr_widths[ndx] = item_width; @@ -5771,6 +5778,11 @@ void set_rel_width(PlannerInfo* root, RelOptInfo* rel) partid = rte->partitionOid; } + if (rte->isContainSubPartition) { + Assert(OidIsValid(rte->partitionOid)); + partid = rte->subpartitionOid; + } + /* Real relation, so estimate true tuple width */ wholerow_width += get_relation_data_width(reloid, partid, rel->attr_widths - rel->min_attr); } else { diff --git a/src/gausskernel/optimizer/path/indxpath.cpp b/src/gausskernel/optimizer/path/indxpath.cpp index b341c4519..31346a6ae 100755 --- a/src/gausskernel/optimizer/path/indxpath.cpp +++ b/src/gausskernel/optimizer/path/indxpath.cpp @@ -38,12 +38,14 @@ #include "optimizer/restrictinfo.h" #include "optimizer/var.h" #include "parser/parse_hint.h" +#include "parser/parse_oper.h" #include "parser/parsetree.h" #include "utils/builtins.h" #include "utils/bytea.h" #include "utils/lsyscache.h" #include "utils/pg_locale.h" #include "utils/selfuncs.h" +#include "rusagestub.h" #define IsBooleanOpfamily(opfamily) ((opfamily) == BOOL_BTREE_FAM_OID || \ (opfamily) == BOOL_HASH_FAM_OID || (opfamily) == BOOL_UBTREE_FAM_OID) @@ -797,14 +799,14 @@ inline bool ContainAllColsAndEqRestrict(const IndexPath* newPath, const IndexOpt */ void MarkUniqueIndexFirstRule(const RelOptInfo* rel, const IndexOptInfo* index, List* result) { - if (!ENABLE_SQL_BETA_FEATURE(NO_UNIQUE_INDEX_FIRST) && index->relam == BTREE_AM_OID) { + if (!ENABLE_SQL_BETA_FEATURE(NO_UNIQUE_INDEX_FIRST) && OID_IS_BTREE(index->relam)) { ListCell* lcr = NULL; foreach (lcr, result) { IndexPath* newPath = (IndexPath*)lfirst(lcr); ListCell* lci = NULL; foreach (lci, rel->indexlist) { IndexOptInfo* indexToMatch = (IndexOptInfo*)lfirst(lci); - if (indexToMatch->relam == BTREE_AM_OID && indexToMatch->unique && + if (OID_IS_BTREE(indexToMatch->relam) && indexToMatch->unique && ContainAllColsAndEqRestrict(newPath, indexToMatch)) { newPath->rulesforindexgen |= BTREE_INDEX_CONTAIN_UNIQUE_COLS; break; @@ -814,6 +816,41 @@ void MarkUniqueIndexFirstRule(const RelOptInfo* rel, const IndexOptInfo* index, } } +static bool PathkeysIsUnusefulForPartition(const IndexOptInfo* index) +{ + if (!index->ispartitionedindex) { + return false; + } + /* + * Only the local index's pathkeys is unuseful. + * It can only ensure that the current partition data is in order. + */ + if (index->ispartitionedindex && index->isGlobal) { + return false; + } + bool result = false; + Oid heapOid = IndexGetRelation(index->indexoid, false); + Relation rel = heap_open(heapOid, NoLock); + + switch (rel->partMap->type) { + case PART_TYPE_LIST: + case PART_TYPE_HASH: + result = true; + break; + case PART_TYPE_RANGE: + case PART_TYPE_INTERVAL: + case PART_TYPE_VALUE: + result = false; + break; + default: + result = true; + break; + } + + heap_close(rel, NoLock); + return result; +} + /* * build_index_paths * Given an index and a set of index clauses for it, construct zero @@ -1009,7 +1046,7 @@ static List* build_index_paths(PlannerInfo* root, RelOptInfo* rel, IndexOptInfo* * predicate, OR an index-only scan is possible. */ if (found_clause || useful_pathkeys != NIL || useful_predicate || index_only_scan) { - if (relHasbkt && !index->crossbucket) { + if ((relHasbkt && !index->crossbucket) || PathkeysIsUnusefulForPartition(index)) { useful_pathkeys = NIL; } ipath = create_index_path(root, @@ -1034,7 +1071,7 @@ static List* build_index_paths(PlannerInfo* root, RelOptInfo* rel, IndexOptInfo* index_pathkeys = build_index_pathkeys(root, index, BackwardScanDirection); useful_pathkeys = truncate_useless_pathkeys(root, rel, index_pathkeys); if (useful_pathkeys != NIL) { - if (relHasbkt && !index->crossbucket) { + if ((relHasbkt && !index->crossbucket) || PathkeysIsUnusefulForPartition(index)) { useful_pathkeys = NIL; } ipath = create_index_path(root, @@ -1605,8 +1642,7 @@ static Path* choose_bitmap_and(PlannerInfo* root, RelOptInfo* rel, List* paths, * we can remove this limitation. (But note that this also defends * against flat-out duplicate input paths, which can happen because * match_join_clauses_to_index will find the same OR join clauses that - * extract_restriction_or_clauses has pulled OR restriction clauses out - * of.) + * create_or_index_quals has pulled OR restriction clauses out of.) * * For the same reason, we reject AND combinations in which an index * predicate clause duplicates another clause. Here we find it necessary @@ -2180,6 +2216,100 @@ static void match_clauses_to_index(IndexOptInfo* index, List* clauses, IndexClau } } +static Oid typeCastForIdxMatch[] = {RTRIM1FUNCOID /* bpchar to text func */ + /* Supported in the future */}; + +inline bool SupportedConvertForIdxMatch(Oid FuncOid) +{ + for (int i = 0; i < (int)lengthof(typeCastForIdxMatch); ++i) { + if (typeCastForIdxMatch[i] == FuncOid) { + return true; + } + } + /* Didn't find. */ + return false; +} + +static bool ConvertFuncEqConst(Expr* clause, Node* leftop, Node* rightop, + RestrictInfo* rinfo, RestrictInfo* &rinfo_converted) +{ + if ((IsA(leftop, FuncExpr) && IsA(rightop, Const) && SupportedConvertForIdxMatch(((FuncExpr*)leftop)->funcid)) || + (IsA(leftop, Const) && IsA(rightop, FuncExpr) && SupportedConvertForIdxMatch(((FuncExpr*)rightop)->funcid))) { + Node* funcop = IsA(leftop, FuncExpr) ? leftop : rightop; + Node* constop = IsA(leftop, FuncExpr) ? rightop : leftop; + if (list_length(((FuncExpr*)funcop)->args) == 1 && IsA(lfirst(list_head(((FuncExpr*)funcop)->args)), Var)) { + Var* var = (Var*)copyObject((Var*)linitial(((FuncExpr*)funcop)->args)); + Const* c = (Const*)copyObject(constop); + c->consttype = var->vartype; + + rinfo_converted = (RestrictInfo*)copyObject(rinfo); + rinfo_converted->clause = make_op(NULL, + get_operator_name(((OpExpr*)clause)->opno, exprType((Node*)var), exprType((Node*)c)), + (Node*)var, (Node*)c, ((OpExpr*)clause)->location); + + exprSetInputCollation((Node*)rinfo_converted->clause, ((OpExpr*)clause)->inputcollid); + rinfo_converted->converted = true; /* Mark this rinfo is built by type conversion */ + rinfo->converted = true; /* Mark this rinfo has been converted */ + + return true; + } + } + + return false; +} + +static bool ConvertFuncEqVar(Expr* clause, Node* leftop, Node* rightop, + RestrictInfo* rinfo, RestrictInfo* &rinfo_converted) +{ + if ((IsA(leftop, FuncExpr) && IsA(rightop, Var) && SupportedConvertForIdxMatch(((FuncExpr*)leftop)->funcid)) || + (IsA(leftop, Var) && IsA(rightop, FuncExpr) && SupportedConvertForIdxMatch(((FuncExpr*)rightop)->funcid))) { + Node* funcop = IsA(leftop, FuncExpr) ? leftop : rightop; + Node* varop = IsA(leftop, FuncExpr) ? rightop : leftop; + if (list_length(((FuncExpr*)funcop)->args) == 1 && IsA(lfirst(list_head(((FuncExpr*)funcop)->args)), Var)) { + Var* var1 = (Var*)copyObject((Var*)linitial(((FuncExpr*)funcop)->args)); + Var* var2 = (Var*)copyObject(varop); + var2->vartype = var1->vartype; + + rinfo_converted = (RestrictInfo*)copyObject(rinfo); + rinfo_converted->clause = make_op(NULL, + get_operator_name(((OpExpr*)clause)->opno, exprType((Node*)var1), exprType((Node*)var2)), + (Node*)var1, (Node*)var2, ((OpExpr*)clause)->location); + + exprSetInputCollation((Node*)rinfo_converted->clause, ((OpExpr*)clause)->inputcollid); + rinfo_converted->converted = true; /* Mark this rinfo is built by type conversion */ + rinfo->converted = true; /* Mark this rinfo has been converted */ + + return true; + } + } + + return false; +} + +static bool ConvertTypeForIdxMatch(RestrictInfo* rinfo, RestrictInfo* &rinfo_converted) +{ + bool converted = false; + Expr* clause = rinfo->clause; + if (is_opclause(clause)) { + Node* leftop = NULL; + Node* rightop = NULL; + + leftop = get_leftop(clause); + rightop = get_rightop(clause); + if (leftop == NULL || rightop == NULL) { + return false; + } + + /* 1. consider FuncExpr = Const, like: a = 1, b = 'zzy'... */ + converted = converted ? true : ConvertFuncEqConst(clause, leftop, rightop, rinfo, rinfo_converted); + + /* 2. consider FuncExpr = Var, like: join XXX on t.a = t.b */ + converted = converted ? true : ConvertFuncEqVar(clause, leftop, rightop, rinfo, rinfo_converted); + } + + return converted; +} + /* * match_clause_to_index * Test whether a qual clause can be used with an index. @@ -2224,10 +2354,19 @@ static void match_clause_to_index(IndexOptInfo* index, RestrictInfo* rinfo, Inde return; } + /* + * Before matching, We try to convert const type for adapting to the + * index aiming to match. + */ + RestrictInfo* rinfo_converted = NULL; + bool converted = ConvertTypeForIdxMatch(rinfo, rinfo_converted); + Assert((converted && rinfo_converted) || (!converted && !rinfo_converted)); + /* OK, check each index column for a match */ for (indexcol = 0; indexcol < index->nkeycolumns; indexcol++) { - if (match_clause_to_indexcol(index, indexcol, rinfo)) { - clauseset->indexclauses[indexcol] = list_append_unique_ptr(clauseset->indexclauses[indexcol], rinfo); + if (match_clause_to_indexcol(index, indexcol, converted ? rinfo_converted : rinfo)) { + clauseset->indexclauses[indexcol] = list_append_unique_ptr(clauseset->indexclauses[indexcol], + converted ? rinfo_converted : rinfo); clauseset->nonempty = true; return; } diff --git a/src/gausskernel/optimizer/path/joinpath.cpp b/src/gausskernel/optimizer/path/joinpath.cpp index 9ec24dc61..f645fef03 100755 --- a/src/gausskernel/optimizer/path/joinpath.cpp +++ b/src/gausskernel/optimizer/path/joinpath.cpp @@ -2496,6 +2496,12 @@ static void getBoundaryFromBaseRel(PlannerInfo* root, PartIteratorPath* itrpath) AssertEreport(map->partitionKey->dim1 == 1, MOD_OPT_JOIN, "partition key dim1 is incorrect"); tuple = SearchSysCache2((int)ATTNUM, ObjectIdGetDatum(partitionedtableid), Int16GetDatum(map->partitionKey->values[0])); + if (!HeapTupleIsValid(tuple)) { + ereport(ERROR, + (errcode(ERRCODE_CACHE_LOOKUP_FAILED), + errmsg("cache lookup failed for attribute %d of relation %u", + map->partitionKey->values[0], partitionedtableid))); + } att = (Form_pg_attribute)GETSTRUCT(tuple); part_seqs = rel->pruning_result->ls_rangeSelectedPartitions; diff --git a/src/gausskernel/optimizer/plan/Makefile b/src/gausskernel/optimizer/plan/Makefile index b05ebce31..b9e16a70a 100644 --- a/src/gausskernel/optimizer/plan/Makefile +++ b/src/gausskernel/optimizer/plan/Makefile @@ -20,12 +20,12 @@ endif ifeq ($(enable_multiple_nodes), yes) OBJS = analyzejoins.o createplan.o initsplan.o planagg.o planmain.o planner.o \ setrefs.o subselect.o planrewrite.o stream_remove.o streamwalker.o streamplan.o \ - streamplan_utils.o + streamplan_utils.o planstartwith.o else OBJS = analyzejoins.o createplan.o initsplan.o planagg.o planmain.o planner.o \ setrefs.o subselect.o pgxcplan_single.o streamplan_single.o dynsmp_single.o \ planrewrite.o planrecursive_single.o stream_remove.o streamwalker.o streamplan.o \ - streamplan_utils.o + streamplan_utils.o planstartwith.o endif include $(top_srcdir)/src/gausskernel/common.mk diff --git a/src/gausskernel/optimizer/plan/createplan.cpp b/src/gausskernel/optimizer/plan/createplan.cpp index a5e5ff40b..711ffb972 100755 --- a/src/gausskernel/optimizer/plan/createplan.cpp +++ b/src/gausskernel/optimizer/plan/createplan.cpp @@ -411,6 +411,7 @@ static Plan* create_plan_recurse(PlannerInfo* root, Path* best_path) if (root->isPartIteratorPlanning) { plan->ispwj = true; plan->paramno = root->curIteratorParamIndex; + plan->subparamno = root->curSubPartIteratorParamIndex; } else { plan->ispwj = false; plan->paramno = -1; @@ -903,6 +904,10 @@ void disuse_physical_tlist(Plan* plan, Path* path) path->parent->rtekind == RTE_SUBQUERY); break; } + /* Stream plan would be reduced when it's executed on coordinator, while path wouldn't. */ + if (is_execute_on_coordinator(plan) && IsA(path, StreamPath)) { + path = ((StreamPath*)path)->subpath; + } } /* fall throuth */ case T_SeqScan: @@ -913,11 +918,16 @@ void disuse_physical_tlist(Plan* plan, Path* path) case T_TidScan: case T_FunctionScan: case T_ValuesScan: - case T_CteScan: case T_WorkTableScan: + case T_CteScan: case T_ForeignScan: case T_ExtensiblePlan: case T_BaseResult: { + if (IsA(plan, WorkTableScan) && (((WorkTableScan *)plan)->forStartWith)) { + /* In StartWith-ConnectBy cases we keep the whole worktable scan results + * for the upcoming processing steps. */ + break; + } List* tarList = NULL; if (path->parent != NULL) tarList = build_relation_tlist(path->parent); @@ -1812,7 +1822,7 @@ static void add_distribute_info(PlannerInfo* root, Plan* scanPlan, Index relInde } RangeTblEntry* rte = root->simple_rte_array[relIndex]; - if (is_sys_table(rte->relid) || rte->relkind == RELKIND_SEQUENCE) { + if (is_sys_table(rte->relid) || RELKIND_IS_SEQUENCE(rte->relkind)) { execNodes = ng_convert_to_exec_nodes(&bestPath->distribution, bestPath->locator_type, RELATION_ACCESS_READ); scanPlan->exec_type = EXEC_ON_COORDS; } else if (IsToastNamespace(get_rel_namespace(rte->relid))) { @@ -2553,7 +2563,17 @@ static Scan* create_indexscan_plan( continue; /* implied by index predicate */ } } - qpqual = lappend(qpqual, rinfo); + + /* + * Add index scan filter condition only when the rinfo is not built by type conversion. + * Our system supports some type convertions to match the index type. When this conversion + * happened, the rinfo will be deep copied from another rinfo parsed from user's input. To + * distinguish them, we mark rinfo->converted = true. Obviously, the rinfo(s) built by conversion + * should not be added into qpqual again. (refer to function: ConvertTypeForIdxMatch for conversion process) + */ + if (rinfo->converted == false) { + qpqual = lappend(qpqual, rinfo); + } } /* Sort clauses into best execution order */ @@ -2944,6 +2964,7 @@ static Plan* create_bitmap_subplan(PlannerInfo* root, Path* bitmapqual, List** q btindexscan->scan.itrs = root->curItrs; btindexscan->scan.pruningInfo = bitmapqual->parent->pruning_result; btindexscan->scan.plan.paramno = root->curIteratorParamIndex; + btindexscan->scan.plan.subparamno = root->curSubPartIteratorParamIndex; btindexscan->scan.partScanDirection = ForwardScanDirection; } @@ -3433,30 +3454,10 @@ static Plan* create_ctescan_plan(PlannerInfo* root, Path* best_path, List* tlist foreach (lc, cteroot->parse->cteList) { cte = (CommonTableExpr*)lfirst(lc); - /* - * MPP with recursive support. - * - * Recursive CTE is initialized in subplan list, so we should only count - * the recursive CTE, the none-recursive CTE is fold in early stage of - * query rewrite. - */ - if (STREAM_RECURSIVECTE_SUPPORTED && !cte->cterecursive) { - continue; - } - if (strcmp(cte->ctename, rte->ctename) == 0) break; - /* - * In stream case, we store each ctescan plan reference separately, so the - * ndx ('plan id' index) for root->initplans should be increased by the num - * of refconts - */ - if (STREAM_RECURSIVECTE_SUPPORTED) { - ndx = ndx + cte->cterefcount; - } else { - ndx++; - } + ndx++; } if (lc == NULL) { /* shouldn't happen */ ereport(ERROR, @@ -3566,6 +3567,7 @@ static Plan* create_ctescan_plan(PlannerInfo* root, Path* best_path, List* tlist scan_clauses = extract_actual_clauses(scan_clauses, false); scan_plan = make_ctescan(tlist, scan_clauses, scan_relid, plan_id, cte_param_id); + scan_plan->cteRef = cte; #ifdef STREAMPLAN cte_plan = (Plan*)list_nth(root->glob->subplans, ctesplan->plan_id - 1); @@ -3664,6 +3666,14 @@ static Plan* create_ctescan_plan(PlannerInfo* root, Path* best_path, List* tlist copy_path_costsize(&scan_plan->scan.plan, best_path); + if (IsCteScanProcessForStartWith(scan_plan)) { + CteScan *cteplan = (CteScan *)scan_plan; + RecursiveUnion *ruplan = (RecursiveUnion *)cte_plan; + + Plan *plan = (Plan *)AddStartWithOpProcNode(root, cteplan, ruplan); + return plan; + } + return (Plan*)scan_plan; } @@ -3769,6 +3779,12 @@ static WorkTableScan* create_worktablescan_plan(PlannerInfo* root, Path* best_pa } #endif + /* Mark current worktablescan is working for startwith */ + if (IsRteForStartWith(root, rte)) { + rte->swConverted = true; + scan_plan->forStartWith = true; + } + copy_path_costsize(&scan_plan->scan.plan, best_path); return scan_plan; @@ -4383,8 +4399,9 @@ static MergeJoin* create_mergejoin_plan(PlannerInfo* root, MergePath* best_path, * matter which way we imagine this column to be ordered.) But a * non-redundant inner pathkey had better match outer's ordering too. */ - if ((onewpathkey && inewpathkey) && (!OpFamilyEquals(opathkey->pk_opfamily, ipathkey->pk_opfamily) || - opathkey->pk_eclass->ec_collation != ipathkey->pk_eclass->ec_collation)) + if ((onewpathkey && inewpathkey && opathkey) && + (!OpFamilyEquals(opathkey->pk_opfamily, ipathkey->pk_opfamily) || + opathkey->pk_eclass->ec_collation != ipathkey->pk_eclass->ec_collation)) ereport(ERROR, (errmodule(MOD_OPT), errcode(ERRCODE_OPTIMIZER_INCONSISTENT_STATE), @@ -6084,6 +6101,7 @@ static PartIterator* create_partIterator_plan( /* Construct partition iterator param */ PartIteratorParam* piParam = makeNode(PartIteratorParam); piParam->paramno = assignPartIteratorParam(root); + piParam->subPartParamno = assignPartIteratorParam(root); partItr->param = piParam; /* @@ -6091,6 +6109,7 @@ static PartIterator* create_partIterator_plan( * it will be used by scan plan which is offspring of this iterator plan node. */ root->curIteratorParamIndex = piParam->paramno; + root->curSubPartIteratorParamIndex = piParam->subPartParamno; root->isPartIteratorPlanning = true; root->curItrs = pIterpath->itrs; @@ -6102,12 +6121,15 @@ static PartIterator* create_partIterator_plan( Bitmapset* extparams = (Bitmapset*)copyObject(partItr->plan.extParam); partItr->plan.extParam = bms_add_member(extparams, piParam->paramno); + partItr->plan.extParam = bms_add_member(extparams, piParam->subPartParamno); Bitmapset* allparams = (Bitmapset*)copyObject(partItr->plan.allParam); partItr->plan.allParam = bms_add_member(allparams, piParam->paramno); + partItr->plan.allParam = bms_add_member(allparams, piParam->subPartParamno); root->isPartIteratorPlanning = false; root->curIteratorParamIndex = 0; + root->curSubPartIteratorParamIndex = 0; #ifdef STREAMPLAN inherit_plan_locator_info(&(partItr->plan), partItr->plan.lefttree); @@ -6756,17 +6778,21 @@ Plan* create_direct_scan(PlannerInfo* root, List* tlist, RangeTblEntry* realResu partItr->param = piParam; piParam->paramno = assignPartIteratorParam(root); + piParam->subPartParamno = assignPartIteratorParam(root); extparams = (Bitmapset*)copyObject(partItr->plan.extParam); partItr->plan.extParam = bms_add_member(extparams, piParam->paramno); + partItr->plan.extParam = bms_add_member(extparams, piParam->subPartParamno); allparams = (Bitmapset*)copyObject(partItr->plan.allParam); partItr->plan.allParam = bms_add_member(allparams, piParam->paramno); + partItr->plan.allParam = bms_add_member(allparams, piParam->subPartParamno); scan->isPartTbl = true; scan->partScanDirection = ForwardScanDirection; scan->itrs = rel->partItrs; scan->plan.paramno = piParam->paramno; + scan->plan.subparamno = piParam->subPartParamno; scan->pruningInfo = copyPruningResult(rel->pruning_result); #ifdef STREAMPLAN @@ -8087,6 +8113,15 @@ Limit* make_limit(PlannerInfo* root, Plan* lefttree, Node* limitOffset, Node* li if (enable_parallel && lefttree->dop > 1) lefttree = parallel_limit_sort(root, lefttree, limitOffset, limitCount, offset_est, count_est); + /* + * In case of Limit + star with CteScan, we need add Result node to elimit additional internal entry + * not match in some case, e.g. limit it top-plan node in current subquery + */ + if (IsA(lefttree, CteScan) && IsCteScanProcessForStartWith((CteScan *)lefttree)) { + List *tlist = lefttree->targetlist; + lefttree = (Plan *)make_result(root, tlist, NULL, lefttree, NULL); + } + #ifdef STREAMPLAN inherit_plan_locator_info((Plan*)node, lefttree); #endif @@ -8836,7 +8871,6 @@ ModifyTable* make_modifytable(CmdType operation, bool canSetTag, List* resultRel node->updateTlist = upsertClause->updateTlist; node->exclRelTlist = upsertClause->exclRelTlist; node->exclRelRTIndex = upsertClause->exclRelIndex; - node->partKeyUpsert = upsertClause->partKeyUpsert; } else { node->upsertAction = UPSERT_NONE; node->updateTlist = NIL; @@ -9121,7 +9155,7 @@ ModifyTable* make_modifytables(CmdType operation, bool canSetTag, List* resultRe mergeTargetRelation, mergeSourceTargetList, mergeActionList, - upsertClause, + upsertClause isDfsStore); return pgxc_make_modifytable(root, (Plan*)mtplan); #endif @@ -9229,6 +9263,7 @@ static Plan* setPartitionParam(PlannerInfo* root, Plan* plan, RelOptInfo* rel) scan->isPartTbl = true; scan->partScanDirection = ForwardScanDirection; scan->plan.paramno = root->curIteratorParamIndex; + scan->plan.subparamno = root->curSubPartIteratorParamIndex; scan->itrs = root->curItrs; scan->pruningInfo = rel->pruning_result; } break; diff --git a/src/gausskernel/optimizer/plan/pgxcplan_single.cpp b/src/gausskernel/optimizer/plan/pgxcplan_single.cpp index 77c6b5694..7e8d8a0b5 100755 --- a/src/gausskernel/optimizer/plan/pgxcplan_single.cpp +++ b/src/gausskernel/optimizer/plan/pgxcplan_single.cpp @@ -1,5 +1,6 @@ /* * Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors * * openGauss is licensed under Mulan PSL v2. * You can use this software according to the terms and conditions of the Mulan PSL v2. @@ -141,7 +142,7 @@ PlannedStmt* pgxc_planner(Query* query, int cursorOptions, ParamListInfo boundPa MemoryContext current_context = CurrentMemoryContext; ResourceOwner currentOwner = t_thrd.utils_cxt.CurrentResourceOwner; ResourceOwner tempOwner = ResourceOwnerCreate(t_thrd.utils_cxt.CurrentResourceOwner, "pgxc_planner", - u_sess->top_transaction_mem_cxt); + SESS_GET_MEM_CXT_GROUP(MEMORY_CONTEXT_OPTIMIZER)); t_thrd.utils_cxt.CurrentResourceOwner = tempOwner; /* we need Coordinator for evaluation, invoke standard planner */ diff --git a/src/gausskernel/optimizer/plan/planagg.cpp b/src/gausskernel/optimizer/plan/planagg.cpp index 4e74a5c19..88df15c81 100644 --- a/src/gausskernel/optimizer/plan/planagg.cpp +++ b/src/gausskernel/optimizer/plan/planagg.cpp @@ -388,6 +388,33 @@ static bool find_minmax_aggs_walker(Node* node, List** context) return expression_tree_walker(node, (bool (*)())find_minmax_aggs_walker, (void*)context); } +static bool HasNOTNULLConstraint(Query* parse, NullTest* ntest) +{ + if (IsA(ntest->arg, Var)) { + /* Check whether NOT NULL check can be guaranteed by table defination */ + RangeTblEntry* rte = rt_fetch(((Var*)ntest->arg)->varno, parse->rtable); + Oid reloid = rte->relid; + AttrNumber attno = ((Var*)ntest->arg)->varoattno; + if (reloid != InvalidOid && attno != InvalidAttrNumber) { + HeapTuple atttuple = + SearchSysCacheCopy2(ATTNUM, ObjectIdGetDatum(reloid), Int16GetDatum(attno)); + if (!HeapTupleIsValid(atttuple)) { + ereport(ERROR, + (errcode(ERRCODE_CACHE_LOOKUP_FAILED), + errmsg("cache lookup failed for attribute %u of relation %hd", + attno, reloid))); + } + Form_pg_attribute attStruct = (Form_pg_attribute)GETSTRUCT(atttuple); + if (attStruct->attnotnull) { + heap_freetuple_ext(atttuple); + return true; + } + heap_freetuple_ext(atttuple); + } + } + return false; +} + /* * build_minmax_path * Given a MIN/MAX aggregate, try to build an indexscan Path it can be @@ -456,7 +483,7 @@ static bool build_minmax_path(PlannerInfo* root, MinMaxAggInfo* mminfo, Oid eqop ntest->argisrow = false; /* User might have had that in WHERE already */ - if (!list_member((List*)parse->jointree->quals, ntest)) + if (!list_member((List*)parse->jointree->quals, ntest) && !HasNOTNULLConstraint(parse, ntest)) parse->jointree->quals = (Node*)lcons(ntest, (List*)parse->jointree->quals); /* Build suitable ORDER BY clause */ diff --git a/src/gausskernel/optimizer/plan/planmain.cpp b/src/gausskernel/optimizer/plan/planmain.cpp index e28644a66..9f39c8e42 100755 --- a/src/gausskernel/optimizer/plan/planmain.cpp +++ b/src/gausskernel/optimizer/plan/planmain.cpp @@ -27,7 +27,6 @@ #include "parser/parse_hint.h" #include "pgxc/pgxc.h" #include "optimizer/cost.h" -#include "optimizer/orclauses.h" #include "optimizer/pathnode.h" #include "optimizer/paths.h" #include "optimizer/placeholder.h" @@ -236,12 +235,6 @@ RelOptInfo* query_planner(PlannerInfo* root, List* tlist, */ add_placeholders_to_base_rels(root); - /* - * Look for join OR clauses that we can extract single-relation - * restriction OR clauses from. - */ - extract_restriction_or_clauses(root); - /* * We should now have size estimates for every actual table involved in * the query, and we also know which if any have been deleted from the diff --git a/src/gausskernel/optimizer/plan/planner.cpp b/src/gausskernel/optimizer/plan/planner.cpp index c35af9ca2..789bf1bce 100755 --- a/src/gausskernel/optimizer/plan/planner.cpp +++ b/src/gausskernel/optimizer/plan/planner.cpp @@ -174,6 +174,9 @@ static void deinit_optimizer_context(PlannerGlobal* glob); static void check_index_column(); static bool check_sort_for_upsert(PlannerInfo* root); +extern void PushDownFullPseudoTargetlist(PlannerInfo *root, Plan *topNode, Plan *botNode, + List *fullEntryList); + #ifdef PGXC static void separate_rowmarks(PlannerInfo* root); #endif @@ -805,7 +808,8 @@ PlannedStmt* standard_planner(Query* parse, int cursorOptions, ParamListInfo bou #ifdef STREAMPLAN /* We set reference of some plans in finalize_node_id. For undone plan, set plan references */ - if (subplan_ids[i] == 0 || IsA(subplan, RecursiveUnion)) { + if (subplan_ids[i] == 0 || IsA(subplan, RecursiveUnion) || + IsA(subplan, StartWithOp)) { if (STREAM_RECURSIVECTE_SUPPORTED && IsA(subplan, RecursiveUnion)) { RecursiveRefContext context; errno_t rc = EOK; @@ -826,6 +830,11 @@ PlannedStmt* standard_planner(Query* parse, int cursorOptions, ParamListInfo bou lfirst(lp) = set_plan_references(subroot, subplan); } + /* for start with processing */ + if (IsA(subplan, StartWithOp)) { + ProcessStartWithOpMixWork(root, top_plan, subroot, (StartWithOp *)subplan); + } + /* * When enable_stream_operator = off, Subquery SQL is not processed by finalize_node_id. * In this case we default each subquery to a SQL statement pushed down to the DN. @@ -1302,14 +1311,6 @@ Plan* subquery_planner(PlannerGlobal* glob, Query* parse, PlannerInfo* parent_ro DEBUG_QRW("After const params replace "); - /* - * Try to subsitute CTEs with subqueries. - */ - if (IS_STREAM_PLAN) - substitute_ctes_with_subqueries(root, parse, root->is_under_recursive_tree); - - DEBUG_QRW("After CTE substitution"); - /* * If there is a WITH list, process each WITH query and build an initplan * SubPlan structure for it. For stream plan, it's already be replaced, so @@ -1321,6 +1322,8 @@ Plan* subquery_planner(PlannerGlobal* glob, Query* parse, PlannerInfo* parent_ro SS_process_ctes(root); } + DEBUG_QRW("After CTE substitution"); + /* * If the FROM clause is empty, replace it with a dummy RTE_RESULT RTE, so * that we don't need so many special cases to deal with that situation. @@ -1424,6 +1427,10 @@ Plan* subquery_planner(PlannerGlobal* glob, Query* parse, PlannerInfo* parent_ro foreach (l, parse->rtable) { RangeTblEntry* rte = (RangeTblEntry*)lfirst(l); + if (rte->swAborted) { + continue; + } + if (rte->rtekind == RTE_JOIN) { root->hasJoinRTEs = true; if (IS_OUTER_JOIN(rte->jointype)) { @@ -3037,6 +3044,9 @@ static Plan* grouping_planner(PlannerInfo* root, double tuple_fraction) */ bool need_sort_for_grouping = false; + /* TOD for some cases, we need backup the original subtlist, e.g. we will add */ + root->origin_tlist = sub_tlist; + result_plan = create_plan(root, best_path); rel_info = best_path->parent; @@ -6892,13 +6902,26 @@ static List* postprocess_setop_tlist(List* new_tlist, List* orig_tlist) "The resno of new target entry does not match to the resno of origin target entry."); new_tle->ressortgroupref = orig_tle->ressortgroupref; } - if (orig_tlist_item != NULL) + + if (orig_tlist_item != NULL) { + TargetEntry *extTle = (TargetEntry *)lfirst(orig_tlist_item); + + /* + * In case of start with debug, we add a pseudo return column under CteScan plan, + * so we don't process such kind of exception case, once we verify the extra tle + * is a pseudo return column, then pass new_tlist as return value. + */ + if (IsPseudoReturnTargetEntry(extTle)) { + return new_tlist; + } + ereport(ERROR, (errmodule(MOD_OPT_PLANNER), errcode(ERRCODE_CASE_NOT_FOUND), errmsg("Resjunk output columns are not implemented."), errdetail("N/A"), errcause("System error."), erraction("Contact Huawei Engineer."))); + } return new_tlist; } @@ -8722,6 +8745,7 @@ static bool vector_engine_walker(Plan* result_plan, bool check_rescan) case T_LockRows: case T_MergeAppend: case T_RecursiveUnion: + case T_StartWithOp: return true; case T_RemoteQuery: @@ -8989,6 +9013,7 @@ static Plan* fallback_plan(Plan* result_plan) case T_Sort: case T_Stream: case T_Material: + case T_StartWithOp: case T_WindowAgg: case T_Hash: case T_Agg: @@ -9138,6 +9163,7 @@ Plan* vectorize_plan(Plan* result_plan, bool ignore_remotequery) case T_Unique: case T_BaseResult: case T_Sort: + case T_StartWithOp: case T_Stream: case T_Material: case T_WindowAgg: diff --git a/src/gausskernel/optimizer/plan/planrewrite.cpp b/src/gausskernel/optimizer/plan/planrewrite.cpp index 4a3215d9a..e6aac6652 100644 --- a/src/gausskernel/optimizer/plan/planrewrite.cpp +++ b/src/gausskernel/optimizer/plan/planrewrite.cpp @@ -1344,6 +1344,7 @@ static void rebuild_subquery(PlannerInfo* root, RelOptInfo* rel, RangeTblEntry* param->paramtypmod = -1; param->paramcollid = listvar->varcollid; param->location = -1; + param->tableOfIndexType = InvalidOid; args_in_opexpr = lappend(args_in_opexpr, param); OpExpr* opexpr = makeNode(OpExpr); diff --git a/src/gausskernel/optimizer/plan/planstartwith.cpp b/src/gausskernel/optimizer/plan/planstartwith.cpp new file mode 100644 index 000000000..7afa8403a --- /dev/null +++ b/src/gausskernel/optimizer/plan/planstartwith.cpp @@ -0,0 +1,2031 @@ +/* + * Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors + * + * openGauss is licensed under Mulan PSL v2. + * You can use this software according to the terms and conditions of the Mulan PSL v2. + * You may obtain a copy of Mulan PSL v2 at: + * + * http://license.coscl.org.cn/MulanPSL2 + * + * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, + * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, + * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + * See the Mulan PSL v2 for more details. + * --------------------------------------------------------------------------------------- + * + * planstartwith.cpp + * The query optimizer external interface. + * + * IDENTIFICATION + * src/gausskernel/optimizer/plan/planstartwith.cpp + * + * --------------------------------------------------------------------------------------- + */ +#include "postgres.h" +#include "knl/knl_variable.h" + +#include +#include + +#include "access/transam.h" +#include "catalog/indexing.h" +#include "catalog/pg_operator.h" +#include "catalog/pg_constraint.h" +#include "catalog/pgxc_group.h" +#include "catalog/pgxc_node.h" +#include "executor/executor.h" +#include "executor/node/nodeAgg.h" +#include "miscadmin.h" +#include "lib/bipartite_match.h" +#include "nodes/makefuncs.h" +#include "nodes/nodeFuncs.h" +#include "nodes/primnodes.h" +#ifdef OPTIMIZER_DEBUG +#include "nodes/print.h" +#endif +#include "optimizer/clauses.h" +#include "optimizer/cost.h" +#include "optimizer/nodegroups.h" +#include "optimizer/pathnode.h" +#include "optimizer/paths.h" +#include "optimizer/plancat.h" +#include "optimizer/planmain.h" +#include "optimizer/planner.h" +#include "optimizer/prep.h" +#include "optimizer/subselect.h" +#include "optimizer/tlist.h" +#include "parser/analyze.h" +#include "parser/parsetree.h" +#include "parser/parse_agg.h" +#include "rewrite/rewriteManip.h" +#include "securec.h" +#include "utils/rel.h" +#include "commands/prepare.h" +#include "pgxc/pgxc.h" +#include "optimizer/pgxcplan.h" +#include "optimizer/streamplan.h" +#include "workload/workload.h" +#include "optimizer/streamplan.h" +#include "utils/relcache.h" +#include "utils/selfuncs.h" +#include "utils/fmgroids.h" +#include "access/heapam.h" +#include "vecexecutor/vecfunc.h" +#include "executor/node/nodeRecursiveunion.h" +#include "executor/node/nodeCtescan.h" +#include "optimizer/randomplan.h" +#include "optimizer/optimizerdebug.h" +#include "parser/parse_oper.h" + +extern Node* preprocess_expression(PlannerInfo* root, Node* expr, int kind); + +StartWithCTEPseudoReturnColumns g_StartWithCTEPseudoReturnColumns[] = +{ + {"level", INT4OID, -1, InvalidOid}, + {"connect_by_isleaf", INT4OID, -1, InvalidOid}, + {"connect_by_iscycle", INT4OID, -1, InvalidOid}, + {"rownum", INT4OID, -1, InvalidOid} +}; + +/* + * -------------------------------------------------------------------------------------- + * Data & Local routines support major planning for start with + * -------------------------------------------------------------------------------------- + */ +static StartWithOp *CreateStartWithOpNode(PlannerInfo *root, + CteScan *cteplan, RecursiveUnion *ruplan); +static void ProcessConnectByFakeConst(PlannerInfo *root, StartWithOp *swplan); +static void BuildStartWithInternalTargetList(PlannerInfo *root, + CteScan *cteplan, StartWithOp *swplan); +static void ProcessOrderSiblings(PlannerInfo *root, StartWithOp *swplan); +static void OptimizeStartWithPlan(PlannerInfo *root, StartWithOp *swplan); + +#define SWCB_MATERIAL_OUTER_THREADHOLD 100 +static inline bool NeedMaterialJoinOuter(Plan *outer, Plan *inner) +{ + return (outer->total_cost > inner->total_cost * SWCB_MATERIAL_OUTER_THREADHOLD); +} + +/* + * -------------------------------------------------------------------------------------- + * Data & Local routines support internal Key/Col generation and also + * -------------------------------------------------------------------------------------- + */ +typedef struct PullUpConnectByFuncVarContext { + PlannerInfo *root; + List *pullupVars; + CteScan *cteplan; + StartWithOp *swplan; +} PullUpConnectByFuncVarContext; + +static List *GetPRCTargetEntryList(PlannerInfo *root, RangeTblEntry *rte, StartWithOp *swplan); +static int GetVarPRCType(List *prcList, const Var* var); +static void MarkPRCNotSkip(StartWithOp *swplan, int prcType); +typedef struct ReplaceFakeConstContext { + Var *levelVar; + Var *rownumVar; + Node **nodeRef; +} ReplaceFakeConstContext; + +static bool PullUpConnectByFuncVarsWalker(Node *node, PullUpConnectByFuncVarContext *context); +static List *PullUpConnectByFuncVars(PlannerInfo *root, CteScan *cteScan, Node *targetEntry); +static void CheckInvalidConnectByfuncArgs(CteScan *cteplan, Oid funcid, List *arg_vars); + +static void GenerateStartWithInternalEntries(PlannerInfo *root, CteScan *cteplan, + List **keyEntryList, List **colEntryList); +static List* BuildStartWithPlanPseudoTargetList(Plan *plan, Index varno, + List *key_list, List *col_list, bool needSiblings); + +static inline bool StartWithNeedSiblingSort(PlannerInfo *root, CteScan *cteplan) +{ + Assert (IsA(cteplan, CteScan) && IsCteScanProcessForStartWith(cteplan)); + + return (cteplan->cteRef->swoptions->siblings_orderby_clause != NULL); +} + +/* + * -------------------------------------------------------------------------------------- + * Data & Local routines supporot ORDER SIBLING BY + * -------------------------------------------------------------------------------------- + */ +#define SORTCMP_TOTAL_NUM 3 +#define SORTCMP_LT 0 +#define SORTCMP_EQ 1 +#define SORTCMP_GT 2 + +#define CF_ONE 1 +#define CF_TWO 2 + +#define TEXT_COLLCATION 100 + +typedef struct OrderSiblingSortEntry { + TargetEntry *tle; + bool sortCmpOp[SORTCMP_TOTAL_NUM]; + bool sortByNullsFirst; +} OrderSiblingSortEntry; + +static OrderSiblingSortEntry* CreateOrderSiblingSortEntry( + TargetEntry *entry, SortByDir dir); +static Sort *CreateSiblingsSortPlan(PlannerInfo* root, Plan* lefttree, + List *sortEntryList, double limit_tuples); +static Sort *CreateSortPlanUnderRU(PlannerInfo* root, Plan* lefttree, + List *siblings, double limit_tuples); +static Sort *CreateSortPlanAboveRU(PlannerInfo* root, Plan* lefttree, + double limit_tuples); + + +/* + * -------------------------------------------------------------------------------------- + * Data & Local routines supporot pseudo targetlist push down + * -------------------------------------------------------------------------------------- + */ +#define UnknownVarno 0 +#define MAX_PLAN_DEPTH 100 + +typedef struct StackNode { + Plan *value_array[MAX_PLAN_DEPTH]; + int top; +} StackNode; + +static inline void StackNodePush(StackNode *s, Plan *node) +{ + s->top++; + s->value_array[s->top] = node; +} + +static inline Plan* StackNodePop(StackNode *s) +{ + if (s->top < 0) { + elog(ERROR, "error to pop() element in %s", __FUNCTION__); + } + + Plan *node = s->value_array[s->top]; + s->value_array[s->top] = NULL; + s->top--; + return node; +} + +typedef struct StackVarno { + Index value_array[MAX_PLAN_DEPTH]; + int top; +} StackVarno; + +static inline void StackVarnoPush(StackVarno *s, Index varno) +{ + s->top++; + s->value_array[s->top] = varno; +} + +static inline Index StackVarnoPop(StackVarno *s) +{ + if (s->top < 0) { + elog(ERROR, "error to pop() element in %s", __FUNCTION__); + } + + Index varno = s->value_array[s->top]; + s->value_array[s->top] = 0; + s->top--; + return varno; +} + +typedef struct PlanAccessPathSearchContext { + Plan *topNode; + Plan *botNode; + List *fullEntryList; + StackNode planStack; + StackVarno varnoStack; + Index relid; + bool done; + int numsPrevTlist; +} PlanAccessPathSearchContext; + +static void GetWorkTableScanPlanPath(PlannerInfo *root, Plan *node, + PlanAccessPathSearchContext *context); +static void BindPlanNodePseudoEntries(PlannerInfo *root, Plan *node, Index varno, + PlanAccessPathSearchContext *context); +static void AddPseudoEntries(Plan *plan, Index relid, PlanAccessPathSearchContext *context); + +/* + * -------------------------------------------------------------------------------------- + * EXPORT functions + * -------------------------------------------------------------------------------------- + */ +/* ------------------------------------------------------------------------------------- + * - brief: A helper function to determin if we need add pseudo *TLE* on CteScan node + * to fetch information to support start-with processing. Normally, if a CteScan + * node transfomed from Start/With with ORDER-SIBLINGS-BY, LEVEL, ISLEAF, + * ISCYCLE we need do so + * ------------------------------------------------------------------------------------- + */ +bool IsCteScanProcessForStartWith(CteScan *ctescan) +{ + if (!IsA((Plan *)ctescan, CteScan)) { + return false; + } + + return (ctescan->cteRef != NULL && ctescan->cteRef->swoptions != NULL); +} + +/* + * ------------------------------------------------------------------------------------- + * - brief: A helper function to indicate if a target entry is for SWCB's internal + * target entry, e.g. RUTIR, array_key, array_col. + * + * - return: TRUE if tle->resname is RUITR/array_key/array_col + * ------------------------------------------------------------------------------------- + */ +bool IsPseudoInternalTargetEntry(const TargetEntry *tle) +{ + if (tle == NULL || tle->resname == NULL) { + return false; + } + + StartWithOpColumnType type = GetPseudoColumnType(tle); + + return (type == SWCOL_RUITR || type == SWCOL_ARRAY_KEY || type == SWCOL_ARRAY_COL || type == SWCOL_ARRAY_SIBLINGS); +} + +/* + * ------------------------------------------------------------------------------------- + * - brief: A helper function to indicate if a target entry is for SWCB's pseudo return + * columns + * + * - return: TRUE if tle->resname is level/rownum/iscycle/isleaf + * ------------------------------------------------------------------------------------- + */ +bool IsPseudoReturnTargetEntry(const TargetEntry *tle) +{ + if (tle == NULL || tle->resname == NULL) { + return false; + } + + StartWithOpColumnType type = GetPseudoColumnType(tle); + + return (type == SWCOL_LEVEL || type == SWCOL_ISLEAF || + type == SWCOL_ISCYCLE || type == SWCOL_ROWNUM); +} + +/* + * ------------------------------------------------------------------------------------- + * - brief: function to help fix tlist with explicite name + * + * - return: return a new list with resname assigned + * ------------------------------------------------------------------------------------- + */ +List *FixSwTargetlistResname(PlannerInfo *root, RangeTblEntry *curRte, List *tlist) +{ + if (curRte->rtekind != RTE_CTE || !curRte->swConverted) { + elog(WARNING, "unusable case just original tlist"); + return tlist; + } + int baseColNum = list_length(curRte->eref->colnames); + int natts = list_length(tlist); + + if (natts - baseColNum != STARTWITH_PSEUDO_RETURN_ATTNUMS && + baseColNum != natts) { + elog(ERROR, "unrecognized case baseColNum/tlist"); + } + + /* attach resname for target entry */ + ListCell *lc = NULL; + List *newList = NIL; + AttrNumber attno = 0; + + /* fix the origianl output column */ + foreach (lc, tlist) { + TargetEntry *entry = (TargetEntry *)lfirst(lc); + const char *colname = NULL; + if (attno < baseColNum) { + colname = strVal(list_nth(curRte->eref->colnames, attno)); + } else { + colname = g_StartWithCTEPseudoReturnColumns[attno - baseColNum].colname; + } + + entry->resname = pstrdup(colname); + + attno++; + newList = lappend(newList, entry); + } + + return newList; +} + +/* + * @Brief: identify if it is a connect by level/rownum plan node + */ +bool IsConnectByLevelStartWithPlan(const StartWithOp *plan) +{ + Assert (IsA(plan, StartWithOp) && plan->swoptions != NULL); + + return (plan->swoptions->connect_by_type == CONNECT_BY_LEVEL || + plan->swoptions->connect_by_type == CONNECT_BY_ROWNUM || + plan->swoptions->connect_by_type == CONNECT_BY_MIXED_LEVEL || + plan->swoptions->connect_by_type == CONNECT_BY_MIXED_ROWNUM); +} + +/* + * @Brief: return a INT const node value, 0 if not INT const, considered as exception + */ +int32 GetStartWithFakeConstValue(A_Const *n) +{ + Assert (IsA(n, A_Const)); + + if (n->val.type == T_Integer) { + return n->val.val.ival; + } else { + elog(LOG, "Accept a other Const val when evaluate FakeConst to rownum/level"); + return 0; + } +} + +/* + * @Brief: return a INT const node value, 0 if not INT const, considered as exception + */ +int32 GetStartWithFakeConstValue(Const *val) +{ + Assert (IsA(val, Const)); + + if (IsA(val, Const) && !((Const*)val)->constisnull && + ((Const*)val)->consttype == INT4OID) { + return DatumGetInt32(((Const*)val)->constvalue); + } else { + elog(LOG, "Accept an invalid Const val when evaluate FakeConst to rownum/level"); + return 0; + } +} + +static char* GetSiblingsColNameFromFunc(Node* node) +{ + if (!IsA(node, FuncCall)) { + return NULL; + } + ListCell* lc = NULL; + foreach(lc, ((FuncCall*) node)->args) { + Node *n = (Node *) lfirst(lc); + if (!IsA(n, ColumnRef)) { + continue; + } + ColumnRef *cr = (ColumnRef *) n; + int len = list_length(cr->fields); + if (len == CF_ONE) { + return strVal(linitial(cr->fields)); + } else if (len == CF_TWO) { + return strVal(lsecond(cr->fields)); + } + } + return NULL; +} + +/* + * @Brief: Get Siblings column name according Siblings-SortBy Clause. + */ +char *GetOrderSiblingsColName(PlannerInfo* root, SortBy *sb) +{ + char *colname = NULL; + + if (IsA(sb->node, ColumnRef)) { + ColumnRef *cr = (ColumnRef *)sb->node; + int len = list_length(cr->fields); + + if (len == CF_ONE) { + colname = strVal(linitial(cr->fields)); + } else if (len == CF_TWO) { + colname = strVal(lsecond(cr->fields)); + } + } else if (IsA(sb->node, A_Const)) { + A_Const *con = (A_Const *)sb->node; + Value* val = &((A_Const*)con)->val; + + if (!IsA(val, Integer)) { + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("not integer constant in order siblings by clause"))); + } + + int siblingIdx = intVal(val); + + if (siblingIdx > list_length(root->parse->targetList)) { + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("Order siblings by tlistIdx %d exceed length of targetList.", siblingIdx))); + } + + TargetEntry *te = (TargetEntry *)list_nth(root->parse->targetList, siblingIdx - 1); + colname = te->resname; + } + + /* + * We do not support function call as sort key here yet. + * Try to do our best by returning the first arg column anyway. + */ + if (colname == NULL) { + colname = GetSiblingsColNameFromFunc(sb->node); + } + return colname; +} + +static Node* tryReplaceFakeConstWithTarget(Node* node, ReplaceFakeConstContext *context) +{ + if (node == NULL) { + return node; + } + + if (IsA(node, Const)) { + int constVal = GetStartWithFakeConstValue((Const *)node); + if (constVal == CONNECT_BY_LEVEL_FAKEVALUE) { + node = (Node*) context->levelVar; + } else if (constVal == CONNECT_BY_ROWNUM_FAKEVALUE) { + node = (Node *) context->rownumVar; + } + } + return node; +} + +static bool ReplaceFakeConstWalker(Node *node, ReplaceFakeConstContext *context) +{ + if (node == NULL) { + return false; + } + + switch (node->type) { + case T_OpExpr: { + OpExpr *op = (OpExpr *)node; + List *newArgs = NIL; + ListCell *lc = NULL; + /* replace "fake-const" to level/rownum var attr */ + foreach (lc, op->args) { + Node *n = (Node *)lfirst(lc); + n = tryReplaceFakeConstWithTarget(n, context); + newArgs = lappend(newArgs, n); + } + op->args= newArgs; + break; + } + case T_TypeCast: { + TypeCast* tc = (TypeCast*) node; + tc->arg = tryReplaceFakeConstWithTarget(tc->arg, context); + break; + } + case T_ScalarArrayOpExpr: { + ScalarArrayOpExpr* opexpr = (ScalarArrayOpExpr*)node; + ListCell *lc = NULL; + List *newArgs = NIL; + foreach (lc, opexpr->args) { + Node *n = (Node *)lfirst(lc); + n = tryReplaceFakeConstWithTarget(n, context); + newArgs = lappend(newArgs, n); + } + opexpr->args = newArgs; + break; + } + case T_FuncExpr: { + FuncExpr* fexpr = (FuncExpr*)node; + List *newArgs = NIL; + ListCell *lc = NULL; + /* replace "fake-const" to level/rownum var attr */ + foreach (lc, fexpr->args) { + Node *n = (Node *)lfirst(lc); + n = tryReplaceFakeConstWithTarget(n, context); + newArgs = lappend(newArgs, n); + } + fexpr->args= newArgs; + break; + } + default: { + ereport(DEBUG1, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("StartWithOp's ConnectByLevel only suport simple connect-by expr"), + errdetail("Maybe you see the support scope of connect by level"), + errhint("Please check your connect by clause carefully"))); + break; + } + } + return expression_tree_walker(node, + (bool (*)())ReplaceFakeConstWalker, (void*)context); +} + +/* + * ------------------------------------------------------------------------------------- + * @Brief: replace the fake-const value into real level/rownum attribute, so that we can + * do level/rownum condition check regularly + * + * Revisit the whole implementation for connect-by level/rownum: + * (1). In syntax stage, we convert level/rownum column into a "fake-const" + * (2). In semantic stage, as we don't add level/rownum pseodu return column to + * base table, so a "fake-const" value in connect-by expression ensure + * safe-transform + * (3). In planning state(StartWithOp), level/rownum pseudo column is inherited from + * CteScan, so we replace "fake-const" back to its correct format and do + * expression preprocess, SSQ/CSSQ can be proper planned into InitPlan/SubPlan + * ------------------------------------------------------------------------------------- + */ +static void ReplaceFakeConst(PlannerInfo *root, StartWithOp *swplan) +{ + StartWithOptions *swoptions = swplan->swoptions; + Node *connectByLevelExpr = swoptions->connect_by_level_quals; + + /* Initialize replacement context */ + errno_t rc = 0; + ReplaceFakeConstContext context; + rc = memset_s(&context, + sizeof(ReplaceFakeConstContext), + 0, + sizeof(ReplaceFakeConstContext)); + securec_check(rc, "\0", "\0"); + + /* Step 1. Find level/rownum pseudo return columns from startwith's targetlist */ + ListCell *lc = NULL; + foreach (lc, swplan->plan.targetlist) { + TargetEntry *entry = (TargetEntry *)lfirst(lc); + if (pg_strcasecmp(entry->resname, "level") == 0) { + context.levelVar = (Var *)entry->expr; + } + if (pg_strcasecmp(entry->resname, "rownum") == 0) { + context.rownumVar = (Var *)entry->expr; + } + } + + /* && rownumVar != NULL */ + Assert (context.levelVar != NULL); + + /* Step 2. Apply fake const replacement walker to the expression */ + ReplaceFakeConstWalker(connectByLevelExpr, &context); + + /* Step 3. Do reqular const expression process */ + swoptions->connect_by_level_quals = eval_const_expressions(root, connectByLevelExpr); +} + +/* + * - brief: Do possible post-path stage optimization, e.g. add Material node on an + * NestLoop's outer part + * + * - Note: Ideally should be handled in PathNode generation stage, in order to do so we have + * serveral case need to come up with e.g. identfy which SubQuery's output should be + * materilzed, for short term we only to improve to avoid the worst case where + * RuPlan's inner branch ReScan()-ed many times and its BaseRel with high selectivity + */ +static void OptimizeStartWithPlan(PlannerInfo *root, StartWithOp *swplan) +{ + RecursiveUnion *ruplan = swplan->ruplan; + + /* shunking only supported scenarios */ + if (!IsA(innerPlan(ruplan), SubqueryScan)) { + return; + } + + SubqueryScan *sqscan = (SubqueryScan *)innerPlan(ruplan); + Plan *joinPlan = sqscan->subplan; + + /* only handle nestloop and hash join case */ + if (!IsA(joinPlan, NestLoop) && !IsA(joinPlan, HashJoin)) { + return; + } + + /* add materialize */ + Plan *joinOuter = outerPlan(joinPlan); + Plan *joinInner = innerPlan(joinPlan); + Plan *wtscan = NULL; + + /* + * Only handle WorkTableScan is in inner case, when WorkTableScan is in outer tree it + * can not be material-optimized as its result is volatile for each iteration. + */ + if (IsA(joinPlan, NestLoop) && IsA(joinInner, WorkTableScan)) { + wtscan = joinInner; + } else if (IsA(joinPlan, HashJoin) && IsA(joinInner, Hash) && + IsA(joinInner->lefttree, WorkTableScan)) { + wtscan = joinInner->lefttree; + } else { + /* unrecognized cases */ + return; + } + + Assert (wtscan != NULL && IsA(wtscan, WorkTableScan)); + + if (!NeedMaterialJoinOuter(joinOuter, wtscan)) { + return; + } + + Material *mtplan = make_material(joinOuter, true); + inherit_plan_locator_info((Plan *)mtplan, joinOuter); + copy_plan_costsize((Plan *)mtplan, joinOuter); + + joinPlan->lefttree = (Plan *)mtplan; +} + +/* + * ------------------------------------------------------------------------------------- + * @Brief: The major processing logic entry point for start-with, given a CteScan node, + * we insert a StartWithOp proc node to do START WITH .... CONNECT BY processing, + * normally the process is separate many steps, see details as below: + * + * step(1): Create StartWithOp node and insert it between CtScan and RuScan, also replace + * the subplan refs in current PlannerInfo level + * step(2): Process ConnectByLevel/Rownum's fake const value + * step(3): Add possible post-path generation plan optimization e.g. rescan-avoid for + * start with + * step(4): Create Internal target list (RUITR/array_key/array_columns) + * step(5): Specially process ORDER SIBLINGS BY case + * ------------------------------------------------------------------------------------- + */ +Plan *AddStartWithOpProcNode(PlannerInfo *root, CteScan *cteplan, RecursiveUnion *ruplan) +{ + Plan *plan = (Plan *)cteplan; + StartWithOp *swplan = NULL; + + /* + * Step1. Create a StartWithOp node between CteScan and RuScan, also update + * SubPlan-ref in curernt PlannerInfo's glob->subplans + */ + swplan = CreateStartWithOpNode(root, cteplan, ruplan); + + /* + * Step2. In case of connect by level/rownum, we need create new quals to evaluate + * level/rownum condition in StartWith operator + */ + ProcessConnectByFakeConst(root, swplan); + + /* + * Step3. Do some possible post-path generation plan optimization, to avoid worst + * cases, e.g. recursive part with high selectivity but rescan many times + */ + OptimizeStartWithPlan(root, swplan); + + /* + * Step4. Add internal TargetEntryList to CteScan & RuScan, also add some runtime level + * optimization hints, e.g. swSkipOptions + */ + BuildStartWithInternalTargetList(root, cteplan, swplan); + + /* + * Step5. Process order-siblings cases + */ + ProcessOrderSiblings(root, swplan); + + /* Copy Params from ruplan */ + swplan->plan.extParam = bms_copy(ruplan->plan.extParam); + swplan->plan.allParam = bms_copy(ruplan->plan.allParam); + + return plan; +} + +/* + * Local Routines to support AddStartWithOpProcNode() + */ +static StartWithOp* CreateStartWithOpNode(PlannerInfo *root, + CteScan *cteplan, RecursiveUnion *ruplan) +{ + Plan *plan = (Plan *)cteplan; + StartWithOp *swplan = NULL; + + Index relid = cteplan->scan.scanrelid; + int natts = 0; + RangeTblEntry *rte = NULL; + + /* 1. fix targetlist with explict name */ + natts = list_length(plan->targetlist); + rte = rt_fetch(relid, root->parse->rtable); + plan->targetlist = FixSwTargetlistResname(root, rte, plan->targetlist); + + + /* 2. Build StartWithOp's targetlist */ + swplan = makeNode(StartWithOp); + swplan->plan.lefttree = (Plan *)ruplan; + swplan->plan.targetlist = (List *)copyObject(plan->targetlist); + swplan->ruplan = ruplan; + swplan->cteplan = cteplan; + swplan->swoptions = (StartWithOptions *)copyObject(cteplan->cteRef->swoptions); + + /* generate PRC list for both swplan and ctescan */ + swplan->prcTargetEntryList = GetPRCTargetEntryList(root, rte, swplan); + cteplan->prcTargetEntryList = (List *)copyObject(swplan->prcTargetEntryList); + + /* Inherit ctescan's targetlist to StartWithOp */ + inherit_plan_locator_info((Plan *)swplan, plan); + copy_plan_costsize((Plan *)swplan, (Plan *)ruplan); + + /* + * Initialize PRC runtime optimization hints. + * + * Basically, we do optimistic scheme assuming all PRC on CTE is able to skip + */ + { + SetColumnSkipOptions(swplan->swExecOptions); + + /* Mark level/rownum is not skipped, as they are lit-enough */ + ClearSkipLevel(swplan->swExecOptions); + SetSkipIsLeaf(swplan->swExecOptions); + SetSkipIsCycle(swplan->swExecOptions); + ClearSkipRownum(swplan->swExecOptions); + } + + /* fix original Ruplan refered place */ + cteplan->subplan = (RecursiveUnion *)swplan; + List *newSubplans = NIL; + ListCell *lc = NULL; + foreach (lc, root->glob->subplans) { + Plan *plan = (Plan *)lfirst(lc); + if (IsA(plan, RecursiveUnion) && (Plan *)plan == (Plan *)ruplan) { + plan = (Plan *)swplan; + } + newSubplans = lappend(newSubplans, plan); + } + root->glob->subplans = newSubplans; + + return swplan; +} + +static void ProcessConnectByFakeConst(PlannerInfo *root, StartWithOp *swplan) +{ + if (!IsConnectByLevelStartWithPlan(swplan)) { + return; + } + + StartWithOptions *swoptions = swplan->swoptions; + + /* fix fake const in qual expr */ + ReplaceFakeConst(root, swplan); + + /* do preprocess for connect-by-level/rownum condition */ + ((Plan *)swplan)->qual = (List *)preprocess_expression(root, + swoptions->connect_by_level_quals, EXPRKIND_QUAL); +} + +static void BuildStartWithInternalTargetList(PlannerInfo *root, + CteScan *cteplan, StartWithOp *swplan) +{ + List *keyEntryList = NIL; + List *colEntryList = NIL; + bool needSiblings = (swplan->swoptions->siblings_orderby_clause != NULL) ? true : false; + + /* Generate internal target entry keyEntryList & colEntryList */ + GenerateStartWithInternalEntries(root, cteplan, &keyEntryList, &colEntryList); + + if (keyEntryList == NULL) { + ereport(DEBUG1, + (errmodule(MOD_OPT_PLANNER), errmsg("keyEntryList is NULL, query:%s", + t_thrd.postgres_cxt.debug_query_string))); + } + + if (colEntryList == NULL) { + ereport(DEBUG1, + (errmodule(MOD_OPT_PLANNER), errmsg("colEntryList is NULL, query:%s", + t_thrd.postgres_cxt.debug_query_string))); + } + + /* Add internal key/col entry list and pseudo_list for StartWithOp node */ + swplan->internalEntryList = + BuildStartWithPlanPseudoTargetList((Plan *)swplan, cteplan->scan.scanrelid, + keyEntryList, + colEntryList, + needSiblings); + + /* Add internal key/col entry list for CteScan node */ + cteplan->internalEntryList = + BuildStartWithPlanPseudoTargetList((Plan *)cteplan, cteplan->scan.scanrelid, + keyEntryList, + colEntryList, + needSiblings); + + /* construct fullEntryList (RUITR + array_key + array_col ) */ + List *fullEntryList = NIL; + ListCell *entry = NULL; + foreach (entry, cteplan->scan.plan.targetlist) { + TargetEntry *te = (TargetEntry *)lfirst(entry); + + /* skip regular columns */ + if (IsPseudoReturnTargetEntry(te) || IsPseudoInternalTargetEntry(te)) { + fullEntryList = lappend(fullEntryList, copyObject(te)); + } + } + + swplan->keyEntryList = keyEntryList; + swplan->colEntryList = colEntryList; + swplan->fullEntryList = fullEntryList; +} + +static void ProcessOrderSiblings(PlannerInfo *root, StartWithOp *swplan) +{ + CteScan *cteplan = swplan->cteplan; + RecursiveUnion *ruplan = swplan->ruplan; + StartWithOptions *swoptions = swplan->swoptions; + + if (!StartWithNeedSiblingSort(root, cteplan)) { + return; + } + + /* Fix RecursiveUnion TargetList */ + ListCell *lc = NULL; + foreach(lc, cteplan->scan.plan.targetlist) { + TargetEntry *te = (TargetEntry *)lfirst(lc); + + if (IsPseudoReturnColumn(te->resname)) { + ruplan->plan.targetlist = lappend(ruplan->plan.targetlist, te); + } + } + + ruplan->internalEntryList = + BuildStartWithPlanPseudoTargetList((Plan *)ruplan, cteplan->scan.scanrelid, + swplan->keyEntryList, + swplan->colEntryList, + true); + + /* 1. Add under RU sort plan */ + ruplan->plan.lefttree = (Plan *)CreateSortPlanUnderRU(root, ruplan->plan.lefttree, + swoptions->siblings_orderby_clause, -1); + ruplan->plan.righttree = (Plan *)CreateSortPlanUnderRU(root, ruplan->plan.righttree, + swoptions->siblings_orderby_clause, -1); + + /* 2. Add up RU sort plan */ + swplan->plan.lefttree = (Plan *)CreateSortPlanAboveRU(root, swplan->plan.lefttree, -1); +} + + +/* + * -------------------------------------------------------------------------------------- + * LOCAL functions + * -------------------------------------------------------------------------------------- + */ +/* + * @Brief: build full pseudo entries for given pro node, with input a keylist and collist + * + * pseudo target list + * [1]. RUIRT + * [2]. array_key_1 + * [3]. array_col_2 + * [4]. array_col_3 + * [6].... + * + * example: + * Table: + * t1(id, name, fatherid, name_desc) + * Query: + * select *, + * level, connect_by_isleaf, connect_is_cycle, + * connect_by_root name_desc, sys_connect_by_path(name, '@') + * from t1 + * start with name = 'shanghai' + * connect by id = PRIOR fatherid; + * + * pseudo-targetlist: array [ + * - RUTI(type:int) + * - array_key_1(type:text) + * - array_col_2(type:text) + * - array_col_4(type:text) + * ] + */ +static List* BuildStartWithPlanPseudoTargetList(Plan *plan, Index varno, + List *key_list, List *col_list, bool needSiblings) +{ + Node *expr = NULL; + TargetEntry *te = NULL; + TargetEntry *pte = NULL; + List *internalEntryList = NIL; + int rc = 0; + + /* we only have to handle CteScan & RecursiveUnion node */ + Assert (IsA(plan, CteScan) || IsA(plan, RecursiveUnion) || IsA(plan, StartWithOp)); + + /* 1. Add "RUITR" entry to support LEVEL */ + expr = (Node *)makeVar(varno, list_length(plan->targetlist) + 1, + INT4OID, -1, InvalidOid, 0); + pte = makeTargetEntry((Expr *)expr, list_length(plan->targetlist) + 1, "RUITR", false); + plan->targetlist = lappend(plan->targetlist, pte); + internalEntryList = lappend(internalEntryList, pte); + + /* + * 2. Add "array_key" entry we have to add to support connect_by_isleaf, connect_by_iscycle, + * order-siblings + */ + ListCell *lc = NULL; + foreach (lc, key_list) { + te = (TargetEntry *)lfirst(lc); + char resname[NAMEDATALEN] = {0}; + + rc = sprintf_s(resname, NAMEDATALEN, "array_key_%d", te->resno); + securec_check_ss(rc, "\0", "\0"); + + expr = (Node *)makeVar(varno, list_length(plan->targetlist) + 1, + TEXTOID, -1, TEXT_COLLCATION, 0); + pte = makeTargetEntry((Expr *)expr, list_length(plan->targetlist) + 1, + pstrdup(resname), false); + plan->targetlist = lappend(plan->targetlist, pte); + internalEntryList = lappend(internalEntryList, pte); + } + + /* + * 3. Add "array_col" to support , connect_by_root + */ + foreach (lc, col_list) { + te = (TargetEntry *)lfirst(lc); + char resname[NAMEDATALEN] = {0}; + + rc = sprintf_s(resname, NAMEDATALEN, "array_col_%d", te->resno); + securec_check_ss(rc, "\0", "\0"); + + expr = (Node *)makeVar(varno, list_length(plan->targetlist) + 1, + TEXTOID, -1, TEXT_COLLCATION, 0); + pte = makeTargetEntry((Expr *)expr, list_length(plan->targetlist) + 1, + pstrdup(resname), false); + plan->targetlist = lappend(plan->targetlist, pte); + internalEntryList = lappend(internalEntryList, pte); + } + + /* + * Add "array_siblings" pseudo columns support if need + */ + if (needSiblings) { + expr = (Node *)makeVar(varno, list_length(plan->targetlist) + 1, + BYTEAOID, -1, 0, 0); + pte = makeTargetEntry((Expr *)expr, list_length(plan->targetlist) + 1, "array_siblings", false); + plan->targetlist = lappend(plan->targetlist, pte); + internalEntryList = lappend(internalEntryList, pte); + } + + return internalEntryList; +} + +/* + * @brief: check if a given connect by function is valid for its args, currently only + * connect_by_root()/sys_connect_by_path() is supported + */ +static void CheckInvalidConnectByfuncArgs(CteScan *cteplan, Oid funcid, List *arg_vars) +{ + /* for none connect by function we do not do arg checks on its type */ + if (funcid != CONNECT_BY_ROOT_FUNCOID && funcid != SYS_CONNECT_BY_PATH_FUNCOID) { + return; + } + + int maxBaseRelAttnum = + list_length(cteplan->scan.plan.targetlist) - STARTWITH_PSEUDO_RETURN_ATTNUMS; + + /* validate common cases */ + if (list_length(arg_vars) > 1) { + elog(ERROR, "only single column can be put as argument in connect_by_root/sys_connect_by_path()"); + } + + /* + * For compatible with Oracle where sys_connect_by_path() and connect_by_root() + * allow a const value set as 1st paramameter, return anyway + */ + if (arg_vars == NIL) { + return; + } + + Var *arg = (Var *)linitial(arg_vars); + if (arg->varattno > maxBaseRelAttnum) { + elog(ERROR, "only base table column can be specified in connect_by_root/sys_connect_by_path()"); + } + + /* valid specific cases */ + switch (funcid) { + case CONNECT_BY_ROOT_FUNCOID: { + /* for connect_by_root() we only check if base column */ + break; + } + case SYS_CONNECT_BY_PATH_FUNCOID: { + /* for sys_connect_by_path() allow textual data types TEXT/VARCHAR/CHAR */ + Oid typid = arg->vartype; + if (typid != TEXTOID && typid != VARCHAROID && typid != BPCHAROID && + typid != NVARCHAR2OID) { + elog(ERROR, "only text type(CHAR/VARCHAR/NVARCHAR2/TEXT) is allow for sys_connect_by_path()"); + } + break; + } + + default: { + elog(ERROR, "unknown functions funid:%u in ConnectByFuncArg check.", funcid); + } + } +} + +/* + * -------------------------------------------------------------------------------------- + * @Brief: Functions to support var pull up from subquery's target list, also check each + * possible vars, so that we can do possible PRC skip optimizations + * + * PullUpConnectByFuncVars() + * -------------------------------------------------------------------------------------- + */ +static List *PullUpConnectByFuncVars(PlannerInfo *root, CteScan *cteScan, Node *targetEntry) +{ + errno_t rc = 0; + PullUpConnectByFuncVarContext context; + rc = memset_s(&context, + sizeof(PullUpConnectByFuncVarContext), + 0, + sizeof(PullUpConnectByFuncVarContext)); + securec_check(rc, "\0", "\0"); + + context.root = root; + context.pullupVars = NIL; + context.cteplan = cteScan; + context.swplan = (StartWithOp *)cteScan->subplan; + + (void)PullUpConnectByFuncVarsWalker(targetEntry, &context); + + return context.pullupVars; +} + +static bool PullUpConnectByFuncVarsWalker(Node *node, PullUpConnectByFuncVarContext *context) +{ + if (node == NULL) { + return false; + } + + /* + * We handle two cases here: + * 1. FuncExpr we do connect-by func validation check + * 2. Var, we check if its PRC and possible PRC-skip optimization could apply + */ + if (IsA(node, FuncExpr)) { + FuncExpr *func = (FuncExpr *)node; + + /* Only handle start with hierachocal query's function cases */ + if (IsHierarchicalQueryFuncOid(func->funcid)) { + /* pull-up basic vars from FuncExpr node */ + List *vars = pull_var_clause((Node*)func->args, + PVC_RECURSE_AGGREGATES, PVC_INCLUDE_PLACEHOLDERS); + CheckInvalidConnectByfuncArgs(context->cteplan, func->funcid, vars); + context->pullupVars = list_concat_unique(context->pullupVars, vars); + } + } else if (IsA(node, Var)) { + /* check if there is target var refer to PRC and mark them not-skipable */ + Var *var = (Var *)node; + int prcType = GetVarPRCType(context->cteplan->prcTargetEntryList, var); + if (prcType == SWCOL_LEVEL || prcType == SWCOL_ISLEAF || + prcType == SWCOL_ISCYCLE || prcType == SWCOL_ROWNUM) { + MarkPRCNotSkip(context->swplan, prcType); + } + } + + return expression_tree_walker(node, + (bool (*)())PullUpConnectByFuncVarsWalker, (void*)context); +} + +/* + * -------------------------------------------------------------------------------------- + * @Brief: Functions to relevant to PRC optimization in hierachical queries + * - GetPRCTargetEntryList() + * - GetVarPRCType() + * - MarkPRCNotSkip() + * -------------------------------------------------------------------------------------- + */ +static List *GetPRCTargetEntryList(PlannerInfo *root, RangeTblEntry *rte, StartWithOp *swplan) +{ + int natts = 0; + int baseColNum = 0; + Plan *plan = (Plan *)swplan; + List *prcTargetEntryList = NIL; + + /* check if PRC targetlist is already generated */ + if (swplan->prcTargetEntryList != NIL) { + return swplan->prcTargetEntryList; + } + + baseColNum = list_length(rte->eref->colnames) - STARTWITH_PSEUDO_RETURN_ATTNUMS; + natts = list_length(plan->targetlist); + + if (natts - baseColNum != STARTWITH_PSEUDO_RETURN_ATTNUMS && + baseColNum != natts) { + elog(ERROR, "unrecognized case baseColNum/tlist"); + } + + /* attach resname for target entry */ + ListCell *lc = NULL; + foreach (lc, plan->targetlist) { + TargetEntry *entry = (TargetEntry *)lfirst(lc); + if (entry->resno > baseColNum) { + prcTargetEntryList = lappend(prcTargetEntryList, entry); + } + } + + Assert (prcTargetEntryList != NIL); + + return prcTargetEntryList; +} + +static int GetVarPRCType(List *prcList, const Var* var) +{ + ListCell *lc = NULL; + int prcType = SWCOL_LEVEL; + + foreach (lc, prcList) { + TargetEntry *tle = (TargetEntry *)lfirst(lc); + if (!equal(var, tle->expr)) { + prcType++; + continue; + } + + break; + } + + /* none-prc column, we consider its type as unknown */ + if (prcType != SWCOL_LEVEL && prcType != SWCOL_ISLEAF && + prcType != SWCOL_ISCYCLE && prcType != SWCOL_ROWNUM) { + prcType = SWCOL_UNKNOWN; + } + + return prcType; +} + +static void MarkPRCNotSkip(StartWithOp *swplan, int prcType) +{ + if (prcType == SWCOL_LEVEL || prcType == SWCOL_ROWNUM) { + return; + } + + switch (prcType) { + case SWCOL_ISLEAF: { + ClearSkipIsLeaf(swplan->swExecOptions); + break; + } + case SWCOL_ISCYCLE: { + ClearSkipIsCycle(swplan->swExecOptions); + break; + } + default: { + /* do nothing */ + } + } + + return; +} + +/* + * -------------------------------------------------------------------------------------- + * @Brief: Generate internal entries for given CteScan node, here the term internal + * entry of key-value arraies prfixed with "array_key_nn" & col-value arraies + * prefixed with "array_col_mm" and store them in separate output list parm + * + * @param: + * - cteplan: the target CtePlan node where we generate key/col array + * - keyEntryList: A ** pointer to accept pseudo key entry + * - colEntryList: A ** pointer to accept pseudo col entry + * + * @Return: void, return value are set in keyEntryList & colEntryList + * -------------------------------------------------------------------------------------- + */ +static void GenerateStartWithInternalEntries(PlannerInfo *root, CteScan *cteplan, + List **keyEntryList, List **colEntryList) +{ + Assert (IsA(cteplan, CteScan) && IsA(cteplan->subplan, StartWithOp)); + + Plan *plan = (Plan *)cteplan; + StartWithOp *swplan = (StartWithOp *)cteplan->subplan; + ListCell *lc = NULL; + List *tmp_list = NULL; + + /* + * First, match cte targetEntry in funcs like connect_by_root(xxx) and + * SYS_CONNECT_BY_PATH(xxx, '/') + */ + foreach(lc, root->origin_tlist) { + TargetEntry *origin = (TargetEntry *)lfirst(lc); + List *vars = PullUpConnectByFuncVars(root, cteplan, (Node *)origin); + tmp_list = list_concat(tmp_list, vars); + } + + /* process those specified in where clause */ + foreach(lc, plan->qual) { + TargetEntry *origin = (TargetEntry *)lfirst(lc); + List *vars = PullUpConnectByFuncVars(root, cteplan, (Node *)origin); + tmp_list = list_concat(tmp_list, vars); + } + + foreach (lc, plan->targetlist) { + TargetEntry *te = (TargetEntry *)lfirst(lc); + Assert (IsA(te->expr, Var)); + if (list_member(tmp_list, te->expr)) { + *colEntryList = lappend(*colEntryList, te); + } + } + + /* + * Second, match cte targetEntry of connectby prior columns, like prior pid = id then pid is + * key + */ + CommonTableExpr *cteRef = cteplan->cteRef; + foreach(lc, cteRef->swoptions->prior_key_index) { + int index = lfirst_int(lc); + TargetEntry *te = (TargetEntry *)list_nth(plan->targetlist, index); + *keyEntryList = lappend(*keyEntryList, te); + } + + /* do not skip iscycle PRC if "nocycle" is specified in HQ clause */ + if (swplan->swoptions->nocycle) { + ClearSkipIsCycle(swplan->swExecOptions); + } + + return; +} + +/* + * @Brief: Add sort operator on top of CteScan with column with sort key + * {"LEVEL", "sibling_order_columns"} + */ +static OrderSiblingSortEntry* CreateOrderSiblingSortEntry(TargetEntry *entry, SortByDir dir) +{ + OrderSiblingSortEntry *sortEntry = + (OrderSiblingSortEntry *)palloc0(sizeof(OrderSiblingSortEntry)); + + sortEntry->tle = entry; + switch (dir) { + case SORTBY_DEFAULT: + case SORTBY_ASC: { + sortEntry->sortCmpOp[SORTCMP_LT] = true; + sortEntry->sortCmpOp[SORTCMP_EQ] = true; + sortEntry->sortCmpOp[SORTCMP_GT] = false; + break; + } + case SORTBY_DESC: { + sortEntry->sortCmpOp[SORTCMP_LT] = false; + sortEntry->sortCmpOp[SORTCMP_EQ] = false; + sortEntry->sortCmpOp[SORTCMP_GT] = true; + break; + } + + default: { + /* for default case we treat as ASC */ + sortEntry->sortCmpOp[SORTCMP_LT] = true; + sortEntry->sortCmpOp[SORTCMP_EQ] = false; + sortEntry->sortCmpOp[SORTCMP_GT] = false; + } + } + + return sortEntry; +} + +static Sort *CreateSiblingsSortPlan(PlannerInfo* root, Plan* lefttree, + List *sortEntryList, double limit_tuples) +{ + Sort *sort = NULL; + int numsortkeys = list_length(sortEntryList); + AttrNumber* sortColIdx = (AttrNumber*)palloc(numsortkeys * sizeof(AttrNumber)); + Oid* sortOperators = (Oid*)palloc(numsortkeys * sizeof(Oid)); + Oid* collations = (Oid*)palloc(numsortkeys * sizeof(Oid)); + bool* nullsFirst = (bool*)palloc(numsortkeys * sizeof(bool)); + numsortkeys = 0; + Oid sortoplt = InvalidOid; + Oid sortopeq = InvalidOid; + Oid sortopgt = InvalidOid; + bool hashable = false; + ListCell* l = NULL; + + foreach (l, sortEntryList) { + OrderSiblingSortEntry *entry = (OrderSiblingSortEntry *)lfirst(l); + + get_sort_group_operators(exprType((Node*)entry->tle->expr), + entry->sortCmpOp[SORTCMP_LT], + entry->sortCmpOp[SORTCMP_EQ], + entry->sortCmpOp[SORTCMP_GT], + &sortoplt, &sortopeq, &sortopgt, &hashable); + + Oid sortop = InvalidOid; + if (entry->sortCmpOp[SORTCMP_LT]) { + sortop = sortoplt; + } else if (entry->sortCmpOp[SORTCMP_GT]) { + sortop = sortopgt; + } else { + /* we shouldn't get here */ + sortop = sortopeq; + } + + sortColIdx[numsortkeys] = entry->tle->resno; + sortOperators[numsortkeys] = sortop; + collations[numsortkeys] = exprCollation((Node*)entry->tle->expr); + nullsFirst[numsortkeys] = entry->sortByNullsFirst; + + numsortkeys++; + } + + sort = make_sort(root, lefttree, numsortkeys, sortColIdx, + sortOperators, collations, nullsFirst, limit_tuples); + + return sort; +} + +static bool IsNullsFirst(SortBy *sortby) +{ + Assert(sortby != NULL); + bool ret = false; + bool reverse = (sortby->sortby_dir == SORTBY_DESC); + switch (sortby->sortby_nulls) { + case SORTBY_NULLS_DEFAULT: + /* NULLS FIRST is default for DESC; other way for ASC */ + ret = reverse; + break; + case SORTBY_NULLS_FIRST: + ret = true; + break; + case SORTBY_NULLS_LAST: + ret = false; + break; + default: + ereport(ERROR, + (errcode(ERRCODE_UNEXPECTED_NODE_STATE), + errmsg("unrecognized sortby_nulls: %d", sortby->sortby_nulls))); + break; + } + return ret; +} + +/* + * @Brief: Generate sort key under recursive union according siblings sort key + * select * from t1 start with...connect by...order siblings by c1,c2,c3 + * the plan like this: + * ------------------QUERY PLAN-------------------- + * > StartWithOP + * > Recursive Union + * > Sort Key, sort by c1, c2, c3 <<<<< we are have + * > Seqscan + * > Sort Key, sort by c1, c2, c3 <<<<< we are have + * > Seqscan + */ +static Sort *CreateSortPlanUnderRU(PlannerInfo* root, Plan* lefttree, List *siblings, double limit_tuples) +{ + Sort *sort = NULL; + List *sortEntryList = NIL; + ListCell *lc = NULL; + ListCell *lc1 = NULL; + + foreach (lc, siblings) { + SortBy *sb = (SortBy *)lfirst(lc); + + char *colname = GetOrderSiblingsColName(root, sb); + if (colname == NULL) { + ereport(WARNING, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("Order siblings by clause has unexpected key."))); + + continue; + } + + bool found = false; + /* search targetlist */ + foreach (lc1, lefttree->targetlist) { + TargetEntry *tle = (TargetEntry *)lfirst(lc1); + + /* one more fix name */ + char *label = strrchr(tle->resname, '@'); + label += 1; + label = pstrdup(label); + + if (pg_strcasecmp(label, colname) == 0) { + found = true; + OrderSiblingSortEntry *entry = + CreateOrderSiblingSortEntry(tle,sb->sortby_dir); + entry->sortByNullsFirst = IsNullsFirst(sb); + sortEntryList = lappend(sortEntryList, entry); + + if (u_sess->attr.attr_sql.enable_startwith_debug) { + elog(WARNING, "Good we got siblings sort key under RU."); + } + } + } + + if (!found) { + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmodule(MOD_OPT), + errmsg("Siblings sort entry not found"), + errdetail("Column %s not found or not allowed here", colname), + errcause("Incorrect query input"), + erraction("Please check and revise your query"))); + } + } + + if (sortEntryList == NIL) { + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmodule(MOD_OPT), + errmsg("Invalid order siblings by clause"), + errdetail("Siblings sort entry not found"), + errcause("Incorrect query input"), + erraction("Please check and revise your query"))); + + } + sort = CreateSiblingsSortPlan(root, lefttree, sortEntryList, limit_tuples); + + /* Free sort entries */ + list_free_deep(sortEntryList); + + return sort; +} + +/* + * @Brief: Generate sort key above recursive union according array_siblings pseudo column + * that was filled by recursive union. Like the query below + * select * from t1 start with...connect by...order siblings by c1,c2,c3 + * the plan like this: + * ------------------QUERY PLAN-------------------- + * > StartWithOP + * Sort Key, sort by array_siblings pseudo column <<<<< we are have + * > Recursive Union + * > Sort Key, sort by c1, c2, c3 + * > Seqscan + * > Sort Key, sort by c1, c2, c3 + * > Seqscan + */ +static Sort *CreateSortPlanAboveRU(PlannerInfo* root, Plan* lefttree, double limit_tuples) +{ + Sort *sort = NULL; + List *sortEntryList = NIL; + ListCell *lc = NULL; + + foreach (lc, lefttree->targetlist) { + TargetEntry *tle = (TargetEntry *)lfirst(lc); + + if (strcmp(tle->resname, "array_siblings") == 0) { + OrderSiblingSortEntry *entry = + CreateOrderSiblingSortEntry(tle, SORTBY_ASC); + sortEntryList = lappend(sortEntryList, entry); + + if (u_sess->attr.attr_sql.enable_startwith_debug) { + elog(WARNING, "Good we got siblings sort key above RU."); + } + } + } + + sort = CreateSiblingsSortPlan(root, lefttree, sortEntryList, limit_tuples); + + /* Free sort entries */ + list_free_deep(sortEntryList); + + return sort; +} + +/* + * -------------------------------------------------------------------------------------- + * fix WorkTableScan's targetlist + * -------------------------------------------------------------------------------------- + */ + + +/* + * @Brief: push down all pseudo columns into plan node access (start from topNode + * end to botNode) + */ +void PushDownFullPseudoTargetlist(PlannerInfo *root, Plan *topNode, Plan *botNode, + List *fullEntryList) +{ + Assert (fullEntryList != NIL); + + PlanAccessPathSearchContext ctx; + errno_t rc = EOK; + rc = memset_s(&ctx, sizeof(PlanAccessPathSearchContext), 0, sizeof(PlanAccessPathSearchContext)); + securec_check(rc, "\0", "\0"); + + ctx.topNode = topNode; + ctx.botNode = botNode; + ctx.fullEntryList = fullEntryList; + + for (int i = 0; i < MAX_PLAN_DEPTH; i++) { + ctx.planStack.value_array[i] = NULL; + ctx.varnoStack.value_array[i] = 0; + } + ctx.planStack.top = -1; + ctx.varnoStack.top = -1; + + ctx.done = false; + ctx.numsPrevTlist = -1; + + /* + * Get the plan search path and add pseudo entry to let pseudo content return + * along with executor iteration normally. + */ + GetWorkTableScanPlanPath(root, (Plan *)topNode, &ctx); + Assert (ctx.planStack.top == ctx.varnoStack.top); + int nodeNums = ctx.planStack.top + 1; + if (nodeNums == 0) { + return; + } + + StringInfoData si; + initStringInfo(&si); + + /* Iterate the plan search path and add pseudo entry properly */ + Plan *plan = NULL; + Index varno = 0; + while (nodeNums > 0) { + plan = StackNodePop(&ctx.planStack); + varno = StackVarnoPop(&ctx.varnoStack); + + Assert (plan != NULL && varno > 0); + + /* bind current node with proper pseudo entry info */ + (void)BindPlanNodePseudoEntries(root, plan, varno, &ctx); + + /* record current numbers of tlist */ + ctx.numsPrevTlist = list_length(plan->targetlist); + + /* build debug path string */ + appendStringInfo(&si, " -> %s(tlist_len:%d)", nodeTagToString(nodeTag(plan)), + list_length(plan->targetlist)); + nodeNums--; + } + + if (u_sess->attr.attr_sql.enable_startwith_debug) { + elog(WARNING, "Pushdown pseudo_tlist >>>>> [%s]", si.data); + } + + pfree_ext(si.data); + + return; +} + +/* + * -------------------------------------------------------------------------------------- + * @Brief: Fix Array Internal Entry based on current targetlist level + * -------------------------------------------------------------------------------------- + */ +static void FixArrayInternalEntry(List *targetlsit) +{ + ListCell *lc1 = NULL; + ListCell *lc2 = NULL; + + foreach(lc1, targetlsit) { + TargetEntry *entry = (TargetEntry *)lfirst(lc1); + + if (entry->resname != NULL && + (strstr(entry->resname, "array_key_") || + strstr(entry->resname, "array_col_"))) { + int varno = ((Var *)entry->expr)->varno; + int attno = entry->resname[10] - '0'; + int resno = 0; + + foreach(lc2, targetlsit) { + TargetEntry *entry2 = (TargetEntry *)lfirst(lc2); + + if (GetPseudoColumnType(entry2) == SWCOL_REGULAR) { + int varno2 = ((Var *)entry2->expr)->varno; + int attno2 = ((Var *)entry2->expr)->varattno; + + if (varno == varno2 && attno2 == attno) { + resno = entry2->resno; + break; + } + } + } + + char newArrayName[NAMEDATALEN]; + errno_t rc = memset_s(newArrayName, NAMEDATALEN, 0, NAMEDATALEN); + securec_check(rc, "\0", "\0"); + + if (strstr(entry->resname, "array_key_")) { + rc = sprintf_s(newArrayName, NAMEDATALEN, "array_key_%d", resno); + securec_check_ss(rc, "\0", "\0"); + } else if (strstr(entry->resname, "array_col_")) { + rc = sprintf_s(newArrayName, NAMEDATALEN, "array_col_%d", resno); + securec_check_ss(rc, "\0", "\0"); + } + + entry->resname = pstrdup(newArrayName); + } + } + + return; +} + +/* + * -------------------------------------------------------------------------------------- + * @Brief: Determine if a given pseudo target entry exits in given targetlist, the term + * "exists" says with identical varno/varattno + * -------------------------------------------------------------------------------------- + */ +static bool IsPseudoInternalEntryExists(List *targetlist, TargetEntry *tle) +{ + bool result = false; + ListCell *lc = NULL; + + Assert (tle != NULL); + + /* + * Exist emtry targetlist during start with...connect by push down pseudo columns. + * e.x + * Select * from (select t1.c1 as num from t1 join t2 on true) as ss, t3 + * start with ss.num = t3.c2 + * connect by prior t3.c1 = t3.c3; + * + * In this case, if we have plan like + * Nestloop1 --> t1 + * --> NestLoop2 --> t2 + * --> worktable + * + * Then the NestLoop2 don't have any targetlist, but we also should + * inherit targetlist from wortable scan. + * */ + if (targetlist == NULL) { + return result; + } + + + foreach (lc, targetlist) { + TargetEntry *curEntry = (TargetEntry *)lfirst(lc); + if (GetPseudoColumnType(curEntry) == SWCOL_REGULAR) { + /* + * skip regular entry, we only check special entries e.g. pseodu return column, + * internal entry + */ + continue; + } + + Assert (IsA(tle->expr, Var)); + if (pg_strcasecmp(curEntry->resname, tle->resname) == 0) { + result = true; + break; + } + } + + return result; +} + +/* + * -------------------------------------------------------------------------------------- + * @brief: Add each pseudo entry to arget plan node + * -------------------------------------------------------------------------------------- + */ +static void AddPseudoEntries(Plan *plan, Index relid, PlanAccessPathSearchContext *context) +{ + ListCell *lc = NULL; + List *fullEntryList = context->fullEntryList; + + Assert (plan != NULL && relid > 0 && fullEntryList != NIL); + + int index = list_length(plan->targetlist); + int attno = 0; + bool adapt = false; + + /* caculate PseudoColumn varattno from prev plan targetlist */ + if (context->numsPrevTlist != -1) { + attno = context->numsPrevTlist - list_length(fullEntryList); + adapt = true; + } + + /* Only add entry that does not added before */ + foreach (lc, fullEntryList) { + TargetEntry *entry = (TargetEntry *)copyObject((TargetEntry *)lfirst(lc)); + + /* + * In "pseudo targetlist" push down process, we are going to avoid adding + * duplicate entry we do such kind of check, not-exit puls resno is appended + * at tail + */ + if (!IsPseudoInternalEntryExists(plan->targetlist, entry)) { + /* + * The target entry's resno,varno,varattno is created in CteScan planing stage, + * before we add it to curernt plan, we need do proper resno adjustment + */ + Assert (IsA(entry->expr, Var)); + index++; + ((Var *)entry->expr)->varno = relid; + if (adapt) { + attno++; + ((Var *)entry->expr)->varattno = attno; + } + entry->resno = index; + plan->targetlist = lappend(plan->targetlist, entry); + } + } + + if (context->botNode != NULL) { + FixArrayInternalEntry(plan->targetlist); + } + + return; +} + +/* + * -------------------------------------------------------------------------------------- + * @brief: Add pseudo entries to arget plan node + * -------------------------------------------------------------------------------------- + */ +static void BindPlanNodePseudoEntries(PlannerInfo *root, Plan *plan, + Index varno, PlanAccessPathSearchContext *context) +{ + ListCell *lc = NULL; + + switch (nodeTag(plan)) { + case T_RecursiveUnion: { + /* + * for recursive-union, besides do proper pseudo entry adding, we need build + * a separate list to help tupleslot-conversion(RuScan->StartWithOp) + */ + RecursiveUnion *ruplan = (RecursiveUnion *)plan; + + /* + * Already add pseudo entry to RecursiveUnion once order siblings by exist, + * so we don't need add pseudo entry again. + */ + if (ruplan->internalEntryList != NULL) { + break; + } + + AddPseudoEntries(plan, varno, context); + foreach (lc, context->fullEntryList) { + TargetEntry *entry = (TargetEntry *)copyObject((TargetEntry *)lfirst(lc)); + if (IsPseudoInternalTargetEntry(entry)) { + ruplan->internalEntryList = lappend(ruplan->internalEntryList, entry); + } + } + break; + } + + /* process regular case */ + case T_Hash: + case T_HashJoin: + case T_SubqueryScan: + case T_CteScan: + case T_NestLoop: + case T_MergeJoin: + case T_Sort: + case T_Agg: + case T_BaseResult: + case T_Material: + case T_Append: + case T_Limit: + case T_Unique: + case T_WindowAgg: + case T_WorkTableScan: { + AddPseudoEntries(plan, varno, context); + break; + } + + default: { + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmodule(MOD_OPT), + errmsg("%s is not supported in start with / connect by clauses", nodeTagToString(nodeTag(plan))), + errdetail("%s is not suppoted", nodeTagToString(nodeTag(plan))), + errcause("Input unsupported feature"), + erraction("NA"))); + } + } +} + +/* + * -------------------------------------------------------------------------------------- + * @Brief: Generate a minimal set of plan-path reaching WTScan and to add pseudo entry, + * take example as follow: the generate path: + * RecursiveUnion -> HashJoin -> Hash -> WorkTableScan + * + * CteScan + * / + * StartWithOp + * / + * RecursiveUnion >>> CONVERT TO >>>>>>> RecursiveUnion + * / \ \ + * SeqScan HashJoin HashJoin + * / \ \ + * SeqScan Hash Hash + * / / + * WorktableScan <<<< target WorkTableScan + * -------------------------------------------------------------------------------------- + */ +static void GetWorkTableScanPlanPath(PlannerInfo *root, Plan *node, + PlanAccessPathSearchContext *context) +{ + StackNode *planStack = &context->planStack; + StackVarno *varnoStack = &context->varnoStack; + + if (node == NULL) { + return; + } + + if (context->done) { + return; + } + + /* enqueue() */ + StackNodePush(planStack, node); + + switch (nodeTag(node)) { + case T_CteScan: { + CteScan *ctescan = (CteScan *)node; + if ((Node *)context->botNode == (Node *)ctescan) { + context->done = true; + + Assert (context->relid == 0); + context->relid = ctescan->scan.scanrelid; + StackVarnoPush(varnoStack, ctescan->scan.scanrelid); + } + } + break; + case T_WorkTableScan: { + WorkTableScan *wtscan = (WorkTableScan *)node; + + /* mark finish and to exit the iteration call stack immediately */ + if (context->botNode == NULL) { + context->done = true; + + /* set relid in current subquery level */ + Assert (context->relid == 0); + context->relid = wtscan->scan.scanrelid; + StackVarnoPush(varnoStack, wtscan->scan.scanrelid); + } + } + break; + + case T_VecSubqueryScan: + case T_SubqueryScan: { + SubqueryScan *sq = (SubqueryScan *)node; + StackVarnoPush(varnoStack, sq->scan.scanrelid); + GetWorkTableScanPlanPath(root, sq->subplan, context); + if (!context->done) { + StackVarnoPop(varnoStack); + } + } + break; + default: { + + Plan *lplan = outerPlan(node); + Plan *rplan = innerPlan(node); + + /* + * We need handle a case where RecursiveUnion's inner branch is BaseResult + * node, normally this happens a connectByExpr is evaluate as FALSE, instad + * of WT-join a BaseResult node is planned, e.g. + * e.g. + * [QUERY] + * SELECT * FROM test_hcb_ptb t1 + * START WITH id=141 + * CONNECT BY (prior pid)=id and prior pid>10 and 1=0; + * + * [PLAN] + * QUERY PLAN + * ------------------------------------------------------ + * CTE Scan on tmp_reuslt + * CTE tmp_reuslt + * -> StartWith Operator + * Start With pseudo atts: RUITR, array_key_9 + * -> Recursive Union + * -> Seq Scan on test_hcb_ptb + * Filter: (id = 141) + * -> Result + * One-Time Filter: false + * (9 rows) + * + * + */ + if (IsA(node, RecursiveUnion) && IsA(rplan, BaseResult) && + context->botNode == NULL) { + context->done = true; + StackVarnoPush(varnoStack, INNER_VAR); + + /* print-out debug information */ + ereport(DEBUG1, + (errmodule(MOD_OPT_PLANNER), errmsg("SWCB query %s does not generate WTScan", + t_thrd.postgres_cxt.debug_query_string))); + + break; + } + + /* + * Before drill down into outer/inner plan tree, we set varno as OUTER_VAR/INNER for + * current level of plan node, as suppose the next outer/inner plan will build the final + * plan access path + */ + if (!context->done) { + StackVarnoPush(varnoStack, OUTER_VAR); + } + GetWorkTableScanPlanPath(root, lplan, context); + if (!context->done) { + StackVarnoPop(varnoStack); + } + + /* process right tree */ + if (!context->done) { + /* set varno for current level of plan node, we need skip once lplan is done */ + StackVarnoPush(varnoStack, INNER_VAR); + } + GetWorkTableScanPlanPath(root, rplan, context); + if (!context->done) { + StackVarnoPop(varnoStack); + } + } + } + + /* dequeue() */ + if (!context->done) { + StackNodePop(planStack); + } + + return; +} + +/* + * -------------------------------------------------------------------------------------- + * @brief: + * We do some special post-planing work for each StartWithOp node, normally, invokced from + * top planning level(root->query_level == 1)'s subplans, detail as follow: + * 1. Block some unspported case identified at planning stage + * 2. Add internal targetlist(ruitr, array_key, array_col) for Startwith + * 3. DFX to support output internal columns from a start with converted CTE + * + * + * @Note: There are two cases of of pseudo entries push-down for internal targetlist + * case1: StartWithOp => WorkTableScan, level information is store in WTScan and can be + * return to RecursiveUnion + * case2: TOP-1/TOP => CteScan, internal information need pop up to query's targetlist level, + * so that connect_by_root(), sys_connect_by_path() can get proper information + * + * Result --------------- + * | | + * ... | + * | case2: (ruitr/array_key/array_col) + * CteScan | + * | | + * StartWithOp --------------- + * | | + * RecursiveUnion | + * | | + * HashJoin case1: (level/isleaf/iscycle,ruitr/array_key/array_col) + * | | + * ... | + * | | + * WorkTableScan --------------- + * + * -------------------------------------------------------------------------------------- + */ +void ProcessStartWithOpMixWork(PlannerInfo *root, Plan *topplan, + PlannerInfo *subroot, StartWithOp *swplan) +{ + Assert (IsA(swplan, StartWithOp)); + + /* + * 1. Build fullEntry from current StartWithOp node to "start with" + * WorkTable + */ + PushDownFullPseudoTargetlist(root, (Plan *)swplan->ruplan, + NULL, swplan->fullEntryList); + + /* + * 2. Add internalEntryList to CteScan node to support SWCB functions, by defualt + * we add full internal entries, only do this when there is SWCB functions exits, + * where check the StartWithOp's colEntryList + */ + if (swplan->colEntryList != NIL) { + CteScan *cteplan = swplan->cteplan; + PushDownFullPseudoTargetlist(root, (Plan *)cteplan, (Plan *)cteplan, + swplan->internalEntryList); + } + + /* + * 3. Removing the unnecessary "Internal Target Entry" created by PRC push-down, + * ruitr/array_key/array_col, normally this kind of entry only visible on + * CteScan node + */ + if (!u_sess->attr.attr_sql.enable_startwith_debug) { + List *newList = NIL; + ListCell *lc = NULL; + foreach (lc, topplan->targetlist) { + TargetEntry *entry = (TargetEntry *)lfirst(lc); + if (IsPseudoInternalTargetEntry(entry)) { + continue; + } + + newList = lappend(newList, entry); + } + + topplan->targetlist = newList; + } + + return; +} diff --git a/src/gausskernel/optimizer/plan/setrefs.cpp b/src/gausskernel/optimizer/plan/setrefs.cpp index 5a7adcec9..f200df737 100644 --- a/src/gausskernel/optimizer/plan/setrefs.cpp +++ b/src/gausskernel/optimizer/plan/setrefs.cpp @@ -7,6 +7,7 @@ * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -577,6 +578,10 @@ static Plan* set_plan_refs(PlannerInfo* root, Plan* plan, int rtoffset) } } break; + case T_StartWithOp: { + set_dummy_tlist_references(plan, rtoffset); + } break; + case T_Hash: case T_Material: case T_VecMaterial: diff --git a/src/gausskernel/optimizer/plan/streamplan_utils.cpp b/src/gausskernel/optimizer/plan/streamplan_utils.cpp index 50a0a6975..823fbaf29 100755 --- a/src/gausskernel/optimizer/plan/streamplan_utils.cpp +++ b/src/gausskernel/optimizer/plan/streamplan_utils.cpp @@ -160,12 +160,6 @@ List* check_op_list_template(Plan* result_plan, List* (*check_eval)(Node*)) res_list = list_concat_unique(res_list, check_eval((Node*)splan->resconstantqual)); } break; - case T_ModifyTable: { - ModifyTable* splan = (ModifyTable*)result_plan; - if (splan->upsertAction == UPSERT_UPDATE && splan->updateTlist != NULL) { - res_list = list_concat_unique(res_list, check_eval((Node*)splan->updateTlist)); - } - } break; default: break; } diff --git a/src/gausskernel/optimizer/plan/streamwalker.cpp b/src/gausskernel/optimizer/plan/streamwalker.cpp index 49e809de4..c4958e1ba 100644 --- a/src/gausskernel/optimizer/plan/streamwalker.cpp +++ b/src/gausskernel/optimizer/plan/streamwalker.cpp @@ -102,6 +102,49 @@ bool stream_walker(Node* node, void* context) return expression_tree_walker(node, (bool (*)())stream_walker, context); } +static bool containReplicatedTable(List *rtable) +{ + ListCell *lc = NULL; + foreach(lc, rtable) { + RangeTblEntry *rte = (RangeTblEntry *)lfirst(lc); + if (IsLocatorReplicated(rte->locator_type)) { + return true; + } + } + return false; +} + +static void stream_walker_query_insertinto_rep(Query* query, shipping_context *cxt) +{ + if (!cxt->current_shippable) { + return; + } + if (query->commandType != CMD_INSERT || query->resultRelation == 0 || + !IsLocatorReplicated(rt_fetch(query->resultRelation, query->rtable)->locator_type)) { + return; + } + ListCell *lc = NULL; + int index = 0; + foreach(lc, query->rtable) { + index++; + if (index == query->resultRelation) { + continue; + } + RangeTblEntry *rte = rt_fetch(index, query->rtable); + if (rte->rtekind != RTE_SUBQUERY || rte->subquery == NULL || !rte->subquery->hasWindowFuncs) { + continue; + } + if (!containReplicatedTable(rte->subquery->rtable)) { + continue; + } + errno_t sprintf_rc = sprintf_s(u_sess->opt_cxt.not_shipping_info->not_shipping_reason, + NOTPLANSHIPPING_LENGTH, + "\"insert into replicated table with select rep table with winfunc\" can not be shipped"); + securec_check_ss_c(sprintf_rc, "\0", "\0"); + cxt->current_shippable = false; + } +} + static void stream_walker_query_update(Query* query, shipping_context *cxt) { /* @@ -373,6 +416,7 @@ static void stream_walker_query(Query* query, shipping_context *cxt) stream_walker_query_having(query, cxt); stream_walker_query_window(query, cxt); + stream_walker_query_insertinto_rep(query, cxt); /* mark shippable flag based on rte shippbility */ stream_walker_finalize_cxt(query, cxt); @@ -703,7 +747,7 @@ static bool table_contain_unsupport_feature(Oid relid, Query* query) u_sess->opt_cxt.not_shipping_info->need_log = false; } - /* global temp table could not ship */ + /* globel temp table could not ship */ if (rel->rd_rel->relpersistence == RELPERSISTENCE_GLOBAL_TEMP) { sprintf_rc = sprintf_s(u_sess->opt_cxt.not_shipping_info->not_shipping_reason, NOTPLANSHIPPING_LENGTH, diff --git a/src/gausskernel/optimizer/plan/subselect.cpp b/src/gausskernel/optimizer/plan/subselect.cpp index 219aaead3..c19712802 100644 --- a/src/gausskernel/optimizer/plan/subselect.cpp +++ b/src/gausskernel/optimizer/plan/subselect.cpp @@ -141,6 +141,10 @@ static Node* convert_expr_sublink_with_limit_clause(PlannerInfo *root, Node *all_quals, const char *refname); static bool CanExprHashable(List *pullUpEqualExpr); +static bool contain_dml_walker(Node *node, void *context); +static bool recursive_reference_recursive_walker(Node* node); +static bool contain_outer_selfref_walker(Node *node, Index *depth); + #define PLANNAMELEN 64 static char *denominate_sublink_name(int sublink_counter) @@ -1358,6 +1362,311 @@ static bool hash_ok_operator(OpExpr* expr) } } +static bool recursive_reference_recursive(Query* parse) +{ + /* recursive ctes references itself in as the right argument of the first tier */ + if (parse->setOperations == NULL || !IsA(parse->setOperations, SetOperationStmt) || + ((SetOperationStmt*)parse->setOperations)->rarg == NULL || + !IsA(((SetOperationStmt*)parse->setOperations)->rarg, RangeTblRef)) { + return false; + } + RangeTblRef* rtr = (RangeTblRef*)((SetOperationStmt*)parse->setOperations)->rarg; + RangeTblEntry *rte = rt_fetch(rtr->rtindex, parse->rtable); + List* rightArgs = list_make1(rte); + return range_table_walker(rightArgs, (bool (*)())recursive_reference_recursive_walker, NULL, 0); +} + +static bool recursive_reference_recursive_walker(Node* node) +{ + if (node == NULL) { + return false; + } + if (IsA(node, Query)) + { + Query *query = (Query *) node; + + if (query->rtable != NIL) { + ListCell* lc = NULL; + foreach(lc, query->rtable) { + RangeTblEntry *rte = (RangeTblEntry*)lfirst(lc); + if (rte->cterecursive && !rte->self_reference) { + return true; + } + } + } + return query_tree_walker(query, (bool (*)())recursive_reference_recursive_walker, NULL, 0); + } + return expression_tree_walker(node, (bool (*)())recursive_reference_recursive_walker, NULL); +} + +/* + * contain_dml: is any subquery not a plain SELECT? + * + * We reject SELECT FOR UPDATE/SHARE as well as INSERT etc. + */ +static bool contain_dml(Node* node) +{ + return contain_dml_walker(node, NULL); +} + +static bool contain_dml_walker(Node *node, void *context) +{ + if (node == NULL) { + return false; + } + if (IsA(node, Query)) + { + Query *query = (Query *) node; + + if (query->commandType != CMD_SELECT || query->rowMarks != NIL) + return true; + + return query_tree_walker(query, (bool (*)())contain_dml_walker, context, 0); + } + return expression_tree_walker(node, (bool (*)())contain_dml_walker, context); +} + +/* + * contain_outer_selfref: is there an external recursive self-reference? + */ +static bool contain_outer_selfref(Node* node) +{ + Index depth = 0; + + /* + * We should be starting with a Query, so that depth will be 1 while + * examining its immediate contents. + */ + Assert(IsA(node, Query)); + + return contain_outer_selfref_walker(node, &depth); +} + +static bool contain_outer_selfref_walker(Node *node, Index *depth) +{ + if (node == NULL) { + return false; + } + + if (IsA(node, RangeTblEntry)) { + RangeTblEntry* rte = (RangeTblEntry*)node; + /* + * Check for a self-reference to a CTE that's above the Query that our + * search started at. + */ + if (rte->rtekind == RTE_CTE && rte->self_reference && rte->ctelevelsup >= *depth) + return true; + return false; /* allow range_table_walker to continue */ + } + + if (IsA(node, Query)) { + /* Recurse into subquery, tracking nesting depth properly */ + Query* query = (Query*)node; + bool result = false; + (*depth)++; + result = query_tree_walker(query, (bool (*)())contain_outer_selfref_walker, (void*)depth, QTW_EXAMINE_RTES); + (*depth)--; + return result; + } + return expression_tree_walker(node, (bool (*)())contain_outer_selfref_walker, (void*)depth); +} + +typedef struct UnderGroupingCxt { + char* ctename; + int depth; + bool under_grouping; + Query* subroot; +} UnderGroupingCxt; + +static bool under_grouping_func_walker(Node* node, UnderGroupingCxt* cxt) +{ + if (node == NULL) { + return false; + } + + /* increase query depth along with encountered subquery */ + if (IsA(node, Query)) { + Query* query = (Query*)node; + bool result = false; + Query* save_subroot = cxt->subroot; + cxt->subroot = query; + cxt->depth++; + result = query_tree_walker(query, (bool (*)())under_grouping_func_walker, (void*)cxt, 0); + cxt->depth--; + cxt->subroot = save_subroot; + return result; + } + + if (IsA(node, GroupingFunc)) { + bool result = false; + bool save_flag = cxt->under_grouping; + cxt->under_grouping = true; + result = expression_tree_walker(node, (bool (*)())under_grouping_func_walker, (void*)cxt); + cxt->under_grouping = save_flag; + return result; + } + + if (IsA(node, Var) && cxt->under_grouping) { + Var* var = (Var*)node; + RangeTblEntry* rte = rt_fetch(var->varno, cxt->subroot->rtable); + if ((int)rte->ctelevelsup == cxt->depth && rte->ctename != NULL && strcmp(rte->ctename, cxt->ctename) == 0) { + return true; + } + } + + return expression_tree_walker(node, (bool (*)())under_grouping_func_walker, (void*)cxt); +} + +/* walk through the parent query tree to see if the CTE is referenced within grouping functions */ +static bool under_grouping_func(Query* parse, CommonTableExpr* cte) +{ + if (cte->ctename == NULL) { + return false; + } + UnderGroupingCxt cxt = {cte->ctename, -1, false, parse}; + return under_grouping_func_walker((Node*)parse, &cxt); +} + +static bool cte_inline_common(CommonTableExpr* cte, char** reason, Query* parse) +{ + /* + * Consider inlining the CTE (creating RTE_SUBQUERY RTE(s)) instead of + * implementing it as a separately-planned CTE for common cases. + * + * We cannot inline if any of these conditions hold: + * + * 1. The user said not to (the CTEMaterializeAlways option). + * + * 2. The CTE has side-effects; this includes either not being a plain + * SELECT, or containing volatile functions. Inlining might change + * the side-effects, which would be bad. + * + * 3. The CTE is multiply-referenced and contains a self-reference to + * a recursive CTE outside itself. Inlining would result in multiple + * recursive self-references, which we don't support. + * + * 4. Note that recursive CTE cannot be inlined. But how we handle them + * depend upon whether it is stream-recursive plan or other scenario, so + * it is checked externally by cte_inline() and cte_inline_stream(). + * + * 5. CTE that contains subqueries cannot be inlined if they appears in + * grouping functions. + * + * Note: we check for volatile functions last, because that's more + * expensive than the other tests needed. + */ + if (cte->ctematerialized == CTEMaterializeAlways) { + *reason = pstrdup("explicitly declared as materialized"); + return false; + } else if (((Query*)cte->ctequery)->commandType != CMD_SELECT || contain_dml(cte->ctequery)) { + *reason = pstrdup("not a plain SELECT statement."); + return false; + } else if ((cte->cterefcount > 1 && contain_outer_selfref(cte->ctequery))) { + *reason = pstrdup("contains a self-reference to a recursive CTE outside"); + return false; + } else if (contain_volatile_functions(cte->ctequery, true)) { + *reason = pstrdup("contains volatile function"); + return false; + } else if (under_grouping_func(parse, cte)) { + contain_subquery_context context = init_contain_subquery_context(); + List* subquery_list = contains_subquery((Node*)cte->ctequery, &context); + if (list_length(subquery_list) != 0) { + *reason = pstrdup("contains subquery while in grouping function"); + list_free(subquery_list); + } + return false; + } + return true; +} + +static bool cte_inline(CommonTableExpr* cte, Query* parse) +{ + /* + * cte_inline common is passed if there is no side effect for inlining. + * + * We have an option whether to inline or not. That should + * always be a win if there's just a single reference, but if the CTE + * is multiply-referenced then it's unclear: inlining adds duplicate + * computations, but the ability to absorb restrictions from the outer + * query level could outweigh that. We do not have nearly enough + * information at this point to tell whether that's true, so we let + * the user express a preference. Our default behavior is to inline + * only singly-referenced CTEs, but a CTE marked CTEMaterializeNever + * will be inlined even if multiply referenced. + * Also, if a singly-referenced CTE is referenced by a subquery, it + * will be not be inlined as default behavior. This is because we do + * not know if this subquery can be pulled up. If it cannot be pulled + * up, we may risk nested subplan execution, which can be disastrous. + */ + char* buf = NULL; + bool ret = cte_inline_common(cte, &buf, parse); + if (ret) { + Assert(buf == NULL); + if (cte->ctematerialized == CTEMaterializeDefault) { + if (cte->referenced_by_subquery) { + buf = pstrdup("CTE is not inlined by default if referenced by subquery"); + ret = false; + } else if (cte->cterefcount > 1) { + buf = pstrdup("CTE is not inlined by default if referenced more than once"); + ret = false; + } + } else if (cte->cterecursive) { + buf = pstrdup("recursive CTE cannot be inlined"); + ret = false; + } + } + if (!ret) { + ereport(DEBUG2, + (errmodule(MOD_OPT_REWRITE), + (errmsg("CTE \"%s\"is not inlined. Reason: %s", cte->ctename, buf)))); + } + pfree_ext(buf); + return ret; +} + +static bool cte_inline_stream(CommonTableExpr* cte, Query* parse) +{ + char* buf = NULL; + + Assert(IS_STREAM_PLAN); + + if (!u_sess->attr.attr_sql.enable_stream_recursive && cte->cterecursive) { + errno_t sprintf_rc = sprintf_s(u_sess->opt_cxt.not_shipping_info->not_shipping_reason, + NOTPLANSHIPPING_LENGTH, + "Unsupported CTE substitution causes SQL unshipped"); + securec_check_ss_c(sprintf_rc, "\0", "\0"); + mark_stream_unsupport(); + } + + if (recursive_reference_recursive((Query*)cte->ctequery)) { + errno_t sprintf_rc = sprintf_s(u_sess->opt_cxt.not_shipping_info->not_shipping_reason, + NOTPLANSHIPPING_LENGTH, + "Recursive CTE references recursive CTE \"%s\"", + cte->ctename); + securec_check_ss_c(sprintf_rc, "\0", "\0"); + mark_stream_unsupport(); + } + /* + * For stream plan, CTEs only support inline execution. Fallback to pgxc + * plan if inline criteria are violated. + * + * In preference of stream plan, we DO NOT obey the rule of thumb if there + * is no explicit expression of (not) materialized. + */ + if (cte->cterecursive) { /* Recursive CTE will be handled */ + return false; + } else if (!cte_inline_common(cte, &buf, parse)) { + errno_t sprintf_rc = sprintf_s(u_sess->opt_cxt.not_shipping_info->not_shipping_reason, + NOTPLANSHIPPING_LENGTH, + "CTE \"%s\" cannot be inlined. Reason: %s", + cte->ctename, buf); + securec_check_ss_c(sprintf_rc, "\0", "\0"); + pfree_ext(buf); + mark_stream_unsupport(); + } + return true; +} + /* * SS_process_one_cte: process a cte in query's WITH list * @@ -1455,6 +1764,110 @@ static void SS_process_one_cte(PlannerInfo* root, CommonTableExpr* cte, Query* s cost_subplan(root, splan, plan); } +typedef struct inline_cte_walker_context +{ + const char *ctename; /* name and relative level of target CTE */ + Index varlevelsup; + int refcount; /* number of remaining references */ + Query *ctequery; /* query to substitute */ +} inline_cte_walker_context; + +static bool inline_cte_walker(Node *node, inline_cte_walker_context *context) +{ + if (node == NULL) { + return false; + } + + if (IsA(node, Query)) + { + Query *query = (Query *) node; + + context->varlevelsup++; + + /* + * Visit the query's RTE nodes after their contents; otherwise + * query_tree_walker would descend into the newly inlined CTE query, + * which we don't want. + */ + (void) query_tree_walker(query, (bool (*)())inline_cte_walker, context, QTW_EXAMINE_RTES); + + context->varlevelsup--; + + return false; + } + else if (IsA(node, RangeTblEntry)) + { + RangeTblEntry *rte = (RangeTblEntry *) node; + + if (rte->rtekind == RTE_CTE && + strcmp(rte->ctename, context->ctename) == 0 && + rte->ctelevelsup == context->varlevelsup) { + /* + * Found a reference to replace. Generate a copy of the CTE query + * with appropriate level adjustment for outer references (e.g., + * to other CTEs). + */ + Query *newquery = (Query*)copyObject(context->ctequery); + + /* + * if correlated cte is referenced in different subquery level, + * we should also adjust correlated params in cte parse tree + */ + if (context->varlevelsup > 0) + IncrementVarSublevelsUp((Node *) newquery, context->varlevelsup, 1); + + /* + * Convert the RTE_CTE RTE into a RTE_SUBQUERY. + * + * Historically, a FOR UPDATE clause has been treated as extending + * into views and subqueries, but not into CTEs. We preserve this + * distinction by not trying to push rowmarks into the new + * subquery. + */ + rte->rtekind = RTE_SUBQUERY; + rte->subquery = newquery; + rte->security_barrier = false; + + /* Zero out CTE-specific fields */ + rte->ctename = NULL; + rte->ctelevelsup = 0; + rte->self_reference = false; + + /* Count the number of replacements we've done */ + context->refcount--; + } + + return false; + } + + return expression_tree_walker(node, (bool (*)())inline_cte_walker, context); +} + +/* + * inline_cte: convert RTE_CTE references to given CTE into RTE_SUBQUERYs + */ +static void inline_cte(PlannerInfo *root, CommonTableExpr *cte) +{ + struct inline_cte_walker_context context; + + context.ctename = cte->ctename; + /* Start at varlevelsup = -1 because we'll immediately increment it */ + context.varlevelsup = -1; + context.refcount = cte->cterefcount; + context.ctequery = castNode(Query, cte->ctequery); + + (void) inline_cte_walker((Node*)root->parse, &context); + + /* + * We would expect the reference number to be zero after inline, however, the + * reference count of cte are not accurate for re-entry issues at parsing stage + * Until fixed, we only check for non-negative refcnt result. + */ + Assert(context.refcount >= 0); + /* Mark this CTE as inlined */ + cte->cterefcount = -1; +} + /* * SS_process_ctes: process a query's WITH list * @@ -1475,11 +1888,6 @@ void SS_process_ctes(PlannerInfo* root) CmdType cmdType = ((Query*)cte->ctequery)->commandType; Query* subquery = NULL; - /* For the none-recursive CTE, we keep the processing logic as its origin */ - if (IS_STREAM_PLAN && !cte->cterecursive) { - continue; - } - /* * Ignore SELECT CTEs that are not actually referenced anywhere. */ @@ -1499,7 +1907,13 @@ void SS_process_ctes(PlannerInfo* root) AssertEreport( root->plan_params == NIL, MOD_OPT_SUBPLAN, "Plan_params should not be in use in current query level"); - if (STREAM_RECURSIVECTE_SUPPORTED) { + if (STREAM_RECURSIVECTE_SUPPORTED && cte->cterecursive) { + if (cte_inline_stream(cte, root->parse)) { + inline_cte(root, cte); + /* Make a dummy entry in cte_plan_ids */ + root->cte_plan_ids = lappend_int(root->cte_plan_ids, -1); + continue; + } int save_plan_current_seed = u_sess->opt_cxt.plan_current_seed; /* @@ -1541,6 +1955,17 @@ void SS_process_ctes(PlannerInfo* root) cterefcount--; } } else { + /* cte which contains dml should always be processed whether referenced or not */ + if (cte->cterefcount < 1 && !contain_dml(cte->ctequery)) { + continue; + } + if ((IS_STREAM_PLAN && cte_inline_stream(cte, root->parse)) || + (!IS_STREAM_PLAN && cte_inline(cte, root->parse))) { + inline_cte(root, cte); + /* Make a dummy entry in cte_plan_ids */ + root->cte_plan_ids = lappend_int(root->cte_plan_ids, -1); + continue; + } SS_process_one_cte(root, cte, subquery); } } @@ -2784,6 +3209,7 @@ static Bitmapset* finalize_plan(PlannerInfo* root, Plan* plan, Bitmapset* valid_ case T_Group: case T_Stream: case T_PartIterator: + case T_StartWithOp: break; default: @@ -3281,7 +3707,15 @@ void convert_multi_count_distinct(PlannerInfo* root) partial_query->hintState = (HintState*)copyObject(parse->hintState); partial_query->hasSubLinks = parse->hasSubLinks; partial_query->hasRowSecurity = parse->hasRowSecurity; - partial_query->cteList = (List*)copyObject(parse->cteList); + /* CTEs may be inlined as subqueries, only inherit CTEs with non-zero refcounts */ + ListCell* lcCte = NULL; + partial_query->cteList = NIL; + foreach(lcCte, parse->cteList) { + CommonTableExpr* cte = (CommonTableExpr*)lfirst(lcCte); + if (cte->cterefcount > 0) { /* neither inlined nor ignored */ + partial_query->cteList = lappend(partial_query->cteList, cte); + } + } /* * For the non-last expr, we generate count(distinct) expressions related to @@ -4652,6 +5086,7 @@ static Node* build_op_expr(PlannerInfo* root, int relid, List* pullUpEqualExpr, param->paramtypmod = exprTypmod((Node*)targetExpr); param->paramcollid = exprCollation((Node*)targetExpr); param->location = -1; + param->tableOfIndexType = InvalidOid; expr = (OpExpr*)make_op(NULL, list_make1(makeString("=")), left_arg, (Node*)param, 0); @@ -5808,12 +6243,6 @@ void convert_ORCLAUSE_to_join(PlannerInfo *root, BoolExpr *or_clause, Node **jtl continue; } - /* For subquery will pulled up, we should substitute ctes */ - if (IS_STREAM_PLAN) { - substitute_ctes_with_subqueries(root, (Query *) sublink->subselect, - root->is_under_recursive_tree); - } - notNullExpr = convert_OREXPR_to_join(root, or_clause, clause, sublink, jtlink1, available_rels1, replace, isnull); @@ -5851,12 +6280,6 @@ void convert_ORCLAUSE_to_join(PlannerInfo *root, BoolExpr *or_clause, Node **jtl sublink = (SubLink *) clause; } - /* For subquery will pulled up, we should substitute ctes */ - if (IS_STREAM_PLAN) { - substitute_ctes_with_subqueries(root, (Query *) sublink->subselect, - root->is_under_recursive_tree); - } - root->glob->sublink_counter++; convert_to_join_by_sublinktype(root, or_clause, jtlink1, available_rels1, isnull, sublink); break; diff --git a/src/gausskernel/optimizer/prep/prepjointree.cpp b/src/gausskernel/optimizer/prep/prepjointree.cpp index 514eb3721..85e93c5a2 100755 --- a/src/gausskernel/optimizer/prep/prepjointree.cpp +++ b/src/gausskernel/optimizer/prep/prepjointree.cpp @@ -17,6 +17,7 @@ * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -477,10 +478,6 @@ static Node* pull_up_sublinks_qual_recurse(PlannerInfo* root, Node* node, Node** JoinExpr* j = NULL; Relids child_rels; - /* For subquery will pulled up, we should substitute ctes */ - if (IS_STREAM_PLAN) - substitute_ctes_with_subqueries(root, (Query*)sublink->subselect, root->is_under_recursive_tree); - if (has_no_expand_hint((Query*)sublink->subselect)) { return node; } @@ -568,10 +565,6 @@ static Node* pull_up_sublinks_qual_recurse(PlannerInfo* root, Node* node, Node** Relids child_rels; if (sublink && IsA(sublink, SubLink)) { - /* For subquery will pulled up, we should substitute ctes */ - if (IS_STREAM_PLAN) - substitute_ctes_with_subqueries(root, (Query*)sublink->subselect, root->is_under_recursive_tree); - if (sublink->subLinkType == EXISTS_SUBLINK) { if ((j = convert_EXISTS_sublink_to_join(root, sublink, true, *available_rels1)) != NULL) { /* Yes; insert the new join node into the join tree */ @@ -701,13 +694,6 @@ static Node* pull_up_sublinks_qual_recurse(PlannerInfo* root, Node* node, Node** errcode(ERRCODE_DATATYPE_MISMATCH), errmsg("Node should be SubLink in pull_up_sublinks_qual_recurse"))); - - /* For subquery will pulled up, we should substitute ctes */ - if (IS_STREAM_PLAN) { - substitute_ctes_with_subqueries(root, (Query *) ((SubLink *) sublink)->subselect, - root->is_under_recursive_tree); - } - /*Return value is changed opexpr*/ node = convert_EXPR_sublink_to_join(root, jtlink1, node, @@ -770,12 +756,6 @@ static Node* pull_up_sublinks_targetlist(PlannerInfo *root, /* Currently we only support expr sublink */ if (sublink->subLinkType == EXPR_SUBLINK) { - /* For subquery will pulled up, we should substitute ctes */ - if (IS_STREAM_PLAN) { - substitute_ctes_with_subqueries(root, - (Query *) ((SubLink *) sublink)->subselect, - root->is_under_recursive_tree); - } /* * Return value is changed opexpr. Since we only modify @@ -799,69 +779,6 @@ static Node* pull_up_sublinks_targetlist(PlannerInfo *root, return jtnode; } -/* - * substitute_ctes_with_subqueries - * Attempt to sustitute CTEs with subqueries. - * - * Parameters: - * @in root: plannerinfo struct for current query level - * @in parse: parse tree to substitute cte expression - */ -void substitute_ctes_with_subqueries(PlannerInfo* root, Query* parse, bool under_recursive_tree) -{ - ListCell* rt = NULL; - - foreach (rt, parse->rtable) { - RangeTblEntry* rte = (RangeTblEntry*)lfirst(rt); - - if (rte->rtekind == RTE_CTE) { - Query* ctequery = NULL; - int levelsup = rte->ctelevelsup; - int i = (root->parse == parse) ? 0 : 1; - PlannerInfo* cte_root = root; - - /* Find the query level that has the CTE */ - while (i < levelsup) { - cte_root = cte_root->parent_root; - levelsup--; - if (cte_root == NULL) { - ereport(ERROR, - (errmodule(MOD_OPT), - errcode(ERRCODE_OPTIMIZER_INCONSISTENT_STATE), - errmsg("bad levelsup for CTE \"%s\"", rte->ctename))); - } - } - - /* - * For pulled up subquery or cte, parse tree is not stored in query level info, - * so we should search parse tree directly if cte located in current level - */ - if (root->parse != parse && levelsup == 0) { - ctequery = search_cte_by_parse_tree(parse, rte, under_recursive_tree); - } else { - ctequery = search_cte_by_parse_tree(cte_root->parse, rte, under_recursive_tree); - /* Recursively search cte if it has other referenced ctes */ - if (ctequery != NULL) { - substitute_ctes_with_subqueries(cte_root, ctequery, under_recursive_tree); - } - } - - if (ctequery != NULL) { - /* - * if correlated cte is referenced in different subquery level, - * we should also adjust correlated params in cte parse tree - */ - if (rte->ctelevelsup != 0) - IncrementVarSublevelsUp((Node*)ctequery, rte->ctelevelsup, 1); - - /* Successful expansion, replace the rtable entry */ - rte->rtekind = RTE_SUBQUERY; - rte->subquery = ctequery; - } - } - } -} - /* * inline_set_returning_functions * Attempt to "inline" set-returning functions in the FROM clause. @@ -1171,12 +1088,6 @@ static Node* pull_up_simple_subquery(PlannerInfo* root, Node* jtnode, RangeTblEn */ replace_empty_jointree(subquery); - /* - * Try to subsitute CTEs with subqueries. - */ - if (IS_STREAM_PLAN) - substitute_ctes_with_subqueries(root, subquery, root->is_under_recursive_tree); - /* * Pull up any SubLinks within the subquery's quals, so that we don't * leave unoptimized SubLinks behind. diff --git a/src/gausskernel/optimizer/rewrite/rewriteHandler.cpp b/src/gausskernel/optimizer/rewrite/rewriteHandler.cpp index 2597d13c2..ee77557e4 100644 --- a/src/gausskernel/optimizer/rewrite/rewriteHandler.cpp +++ b/src/gausskernel/optimizer/rewrite/rewriteHandler.cpp @@ -41,6 +41,7 @@ #include "utils/rel_gs.h" #include "catalog/pg_constraint.h" #include "catalog/namespace.h" +#include "client_logic/client_logic.h" #ifdef PGXC #include "pgxc/locator.h" @@ -2856,6 +2857,7 @@ char* GetCreateTableStmt(Query* parsetree, CreateTableAsStmt* stmt) foreach (col, tlist) { TargetEntry* tle = (TargetEntry*)lfirst(col); ColumnDef* coldef = NULL; + ClientLogicColumnRef *coldef_enc = NULL; TypeName* tpname = NULL; if (IsA(tle->expr, Var)) { @@ -2878,7 +2880,7 @@ char* GetCreateTableStmt(Query* parsetree, CreateTableAsStmt* stmt) /* Ignore junk columns from the targetlist */ if (tle->resjunk) continue; - + coldef = makeNode(ColumnDef); tpname = makeNode(TypeName); @@ -2900,14 +2902,31 @@ char* GetCreateTableStmt(Query* parsetree, CreateTableAsStmt* stmt) coldef->raw_default = NULL; coldef->cooked_default = NULL; coldef->constraints = NIL; - + /* * Set typeOid and typemod. The name of the type is derived while * generating query */ tpname->typeOid = exprType((Node*)tle->expr); tpname->typemod = exprTypmod((Node*)tle->expr); - + + /* + * If the column of source relation is encrypted + * instead of copying its typeOid directly + * we should get its original defination from the catalog + */ + if (is_enc_type(tpname->typeOid)) { + coldef_enc = get_column_enc_def(tle->resorigtbl, tle->resname); + if (coldef_enc != NULL) { /* should never be NULL */ + coldef_enc->dest_typname = makeTypeNameFromOid(tpname->typeOid, -1); + + tpname->typeOid = coldef_enc->orig_typname->typeOid; + tpname->typemod = coldef_enc->orig_typname->typemod; + } + + coldef->clientLogicColumnRef = coldef_enc; + } + coldef->typname = tpname; tableElts = lappend(tableElts, coldef); @@ -2970,6 +2989,14 @@ char* GetCreateTableStmt(Query* parsetree, CreateTableAsStmt* stmt) return cquery->data; } +static bool selectNeedRecovery(Query* query) +{ + if (!query->hasRecursive || query->sql_statement == NULL) { + return false; + } + return strcasestr(query->sql_statement, "CONNECT") != NULL; +} + char* GetInsertIntoStmt(CreateTableAsStmt* stmt) { /* Get the SELECT query string */ @@ -2987,7 +3014,16 @@ char* GetInsertIntoStmt(CreateTableAsStmt* stmt) StringInfo cquery = makeStringInfo(); deparse_query((Query*)stmt->query, cquery, NIL, false, false, stmt->parserSetupArg); char* selectstr = pstrdup(cquery->data); - + + /* + * Check if we should recover from the rewriting performed on the select part, + * e.g. for START WITH cases we need to do this after rewriting + */ + Query* select_query = (Query*)stmt->query; + if (selectNeedRecovery(select_query)) { + selectstr = pstrdup(select_query->sql_statement); + } + /* Now, finally build the INSERT INTO statement */ initStringInfo(cquery); diff --git a/src/gausskernel/optimizer/sqladvisor/sqladvisor_online.cpp b/src/gausskernel/optimizer/sqladvisor/sqladvisor_online.cpp index 7923aa733..53a380fb0 100644 --- a/src/gausskernel/optimizer/sqladvisor/sqladvisor_online.cpp +++ b/src/gausskernel/optimizer/sqladvisor/sqladvisor_online.cpp @@ -1,5 +1,6 @@ /* * Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors * * openGauss is licensed under Mulan PSL v2. * You can use this software according to the terms and conditions of the Mulan PSL v2. @@ -35,6 +36,7 @@ #include "tcop/tcopprot.h" #include "utils/builtins.h" #include "utils/lsyscache.h" +#include "utils/plpgsql.h" #include "commands/sqladvisor.h" #include "nodes/makefuncs.h" #include "utils/typcache.h" @@ -43,14 +45,8 @@ static bool checkGlobalAdvMemSize(); static void copyAdviseSearchPathFromSess(AdviseSearchPath* sp); static PLpgSQL_execstate* copyPLpgEstate(PLpgSQL_execstate* srcEstate); static PLpgSQL_expr* copyPLpgsqlExpr(PLpgSQL_expr* srcExpr); -static PLpgSQL_row* copyPLpgsqlRow(PLpgSQL_row* src); -static PLpgSQL_var* copyPlpgsqlVar(PLpgSQL_var* src); -static PLpgSQL_type* copyPLpgsqlType(PLpgSQL_type* src); -static PLpgSQL_datum* copypPlpgsqlDatum(PLpgSQL_datum* datum); static PLpgSQL_nsitem* copyPLpgNsitem(PLpgSQL_nsitem* srcNs); static PLpgSQL_function* copyPLpgsqlFunc(PLpgSQL_function* srcFunc); -static PLpgSQL_rec* copyPLpgsqlRec(PLpgSQL_rec* src); -static PLpgSQL_recfield* copyPLpgsqlRecfield(PLpgSQL_recfield* src); static bool equalParam(ParamListInfo bpA, ParamListInfo bpB); static bool equalParamExternData(ParamExternData* prmA, ParamExternData* prmB); static bool equalPLpgNsitem(PLpgSQL_nsitem* nsA, PLpgSQL_nsitem* nsB); @@ -183,7 +179,9 @@ ParamListInfo copyDynParam(ParamListInfo srcParamLI) get_typlenbyval(srcPrm->ptype, &typLen, &typByVal); destPrm->value = datumCopy(srcPrm->value, typByVal, typLen); } - + destPrm->tableOfIndexType = srcPrm->tableOfIndexType; + destPrm->tableOfIndex = copyTableOfIndex(srcPrm->tableOfIndex); + destPrm->isnestedtable = srcPrm->isnestedtable; CopyCursorInfoData(&destPrm->cursor_data, &srcPrm->cursor_data); } @@ -370,11 +368,11 @@ static PLpgSQL_function* copyPLpgsqlFunc(PLpgSQL_function* srcFunc) destFunc->tg_nargs_varno = srcFunc->tg_nargs_varno; destFunc->tg_argv_varno = srcFunc->tg_argv_varno; destFunc->resolve_option = srcFunc->resolve_option; - + destFunc->invalItems = (List*)copyObject(srcFunc->invalItems); destFunc->ndatums = srcFunc->ndatums; destFunc->datums =(PLpgSQL_datum**)palloc(sizeof(PLpgSQL_datum*) * srcFunc->ndatums); for (int i = 0; i < srcFunc->ndatums; i++) { - destFunc->datums[i] = copypPlpgsqlDatum(srcFunc->datums[i]); + destFunc->datums[i] = deepCopyPlpgsqlDatum(srcFunc->datums[i]); } destFunc->action = NULL; destFunc->goto_labels = NIL; @@ -415,6 +413,7 @@ static PLpgSQL_nsitem* copyPLpgNsitem(PLpgSQL_nsitem* srcNs) destNs->itemno = srcNs->itemno; destNs->itemtype = srcNs->itemtype; destNs->pkgname = pstrdup(srcNs->pkgname); + destNs->schemaName = pstrdup(srcNs->schemaName); destNs->prev = copyPLpgNsitem(srcNs->prev); errno_t rc = strncpy_s(destNs->name, strlen(srcNs->name) + 1, srcNs->name, strlen(srcNs->name)); securec_check_c(rc, "\0", "\0"); @@ -455,7 +454,7 @@ static PLpgSQL_execstate* copyPLpgEstate(PLpgSQL_execstate* srcEstate) destEstate->ndatums = srcEstate->ndatums; destEstate->datums =(PLpgSQL_datum**)palloc(sizeof(PLpgSQL_datum*) * srcEstate->ndatums); for (int i = 0; i < srcEstate->ndatums; i++) { - destEstate->datums[i] = copypPlpgsqlDatum(srcEstate->datums[i]); + destEstate->datums[i] = deepCopyPlpgsqlDatum(srcEstate->datums[i]); } destEstate->eval_tuptable = NULL; @@ -471,6 +470,8 @@ static PLpgSQL_execstate* copyPLpgEstate(PLpgSQL_execstate* srcEstate) destEstate->goto_target_stmt = NULL; destEstate->block_level = srcEstate->block_level; destEstate->cursor_return_data = NULL; + destEstate->stack_entry_start = srcEstate->stack_entry_start; + destEstate->curr_nested_table_type = 0; return destEstate; } @@ -654,179 +655,3 @@ bool checkAdivsorState() } return false; } - -/* The copy parameters are all references from exec_get_datum_type() */ -static PLpgSQL_datum* copypPlpgsqlDatum(PLpgSQL_datum* datum) -{ - PLpgSQL_datum* result = NULL; - errno_t errorno = EOK; - - switch (datum->dtype) { - case PLPGSQL_DTYPE_VAR: { - PLpgSQL_var* newm = copyPlpgsqlVar((PLpgSQL_var*)datum); - result = (PLpgSQL_datum*)newm; - } break; - - case PLPGSQL_DTYPE_REC: { - PLpgSQL_rec* newm = copyPLpgsqlRec((PLpgSQL_rec*)datum); - result = (PLpgSQL_datum*)newm; - } break; - - case PLPGSQL_DTYPE_RECFIELD: { - PLpgSQL_recfield* newm = copyPLpgsqlRecfield((PLpgSQL_recfield*)datum); - result = (PLpgSQL_datum*)newm; - } break; - - case PLPGSQL_DTYPE_EXPR: { - PLpgSQL_expr* newm = (PLpgSQL_expr*)palloc(sizeof(PLpgSQL_expr)); - errorno = memcpy_s(newm, sizeof(PLpgSQL_expr), datum, sizeof(PLpgSQL_expr)); - securec_check(errorno, "\0", "\0"); - newm->query = NULL; - newm->plan = NULL; - newm->paramnos = NULL; - newm->func = NULL; - newm->ns = NULL; - newm->expr_simple_expr = NULL; - newm->expr_simple_state = NULL; - result = (PLpgSQL_datum*)newm; - } break; - - case PLPGSQL_DTYPE_ROW: - case PLPGSQL_DTYPE_RECORD: { - PLpgSQL_row* newm = copyPLpgsqlRow((PLpgSQL_row*)datum); - result = (PLpgSQL_datum*)newm; - } break; - - case PLPGSQL_DTYPE_ARRAYELEM:{ - PLpgSQL_arrayelem* newm = (PLpgSQL_arrayelem*)palloc(sizeof(PLpgSQL_arrayelem)); - errorno = memcpy_s(newm, sizeof(PLpgSQL_arrayelem), datum, sizeof(PLpgSQL_arrayelem)); - securec_check(errorno, "\0", "\0"); - newm->subscript = NULL; - result = (PLpgSQL_datum*)newm; - } break; - - case PLPGSQL_NSTYPE_PROC: - case PLPGSQL_NSTYPE_UNKNOWN: - break; - - default: - ereport(ERROR, - (errcode(ERRCODE_UNRECOGNIZED_NODE_TYPE), - errmodule(MOD_PLSQL), - errmsg("unrecognized dtype: %d when copy plsql datum.", datum->dtype))); - result = NULL; /* keep compiler quiet */ - break; - } - - return result; -} - -static PLpgSQL_var* copyPlpgsqlVar(PLpgSQL_var* src) -{ - if (src == NULL) { - return NULL; - } - PLpgSQL_var* dest = (PLpgSQL_var*)palloc(sizeof(PLpgSQL_var)); - dest->dtype = src->dtype; - dest->dno = src->dno; - dest->ispkg = src->ispkg; - dest->refname = pstrdup(src->refname); - dest->lineno = src->lineno; - dest->datatype = copyPLpgsqlType(src->datatype); - dest->isconst = src->isconst; - dest->notnull = src->notnull; - dest->default_val = NULL; - dest->cursor_explicit_expr = NULL; - dest->value = datumCopy(src->value, dest->datatype->typbyval, dest->datatype->typlen); - dest->isnull = src->isnull; - dest->freeval = src->freeval; - dest->is_cursor_var = src->is_cursor_var; - dest->is_cursor_open = src->is_cursor_open; - dest->pkg_name = NIL; - dest->pkg = NULL; - return dest; -} - -static PLpgSQL_type* copyPLpgsqlType(PLpgSQL_type* src) -{ - if (src == NULL) { - return NULL; - } - PLpgSQL_type* dest = (PLpgSQL_type*)palloc(sizeof(PLpgSQL_type)); - dest->dtype = src->dtype; - dest->dno = src->dno; - dest->ispkg = src->ispkg; - dest->typname = pstrdup(src->typname); - dest->typoid = src->typoid; - dest->ttype = src->ttype; - dest->typlen = src->typlen; - dest->typbyval = src->typbyval; - dest->typrelid = src->typrelid; - dest->typioparam = src->typioparam; - dest->collation = src->collation; - FmgrInfo* info = &dest->typinput; - info = NULL; - dest->atttypmod = src->atttypmod; - - return dest; -} - -static PLpgSQL_row* copyPLpgsqlRow(PLpgSQL_row* src) -{ - PLpgSQL_row* dest = (PLpgSQL_row*)palloc(sizeof(PLpgSQL_row)); - if (src->rowtupdesc == NULL) { - dest->rowtupdesc = NULL; - } else { - dest->rowtupdesc = CreateTupleDescCopy(src->rowtupdesc); - } - dest->dtype = src->dtype; - dest->dno = src->dno; - dest->ispkg = src->ispkg; - dest->intodatums = NULL; - dest->refname = pstrdup(src->refname); - dest->nfields = src->nfields; - dest->fieldnames = (char**)palloc(sizeof(char*) * dest->nfields); - for (int i = 0; i < dest->nfields ; i++) { - dest->fieldnames[i] = pstrdup(src->fieldnames[i]); - } - dest->varnos = (int*)palloc(sizeof(int) * dest->nfields); - for (int i = 0; i < dest->nfields ; i++) { - dest->varnos[i] = src->varnos[i]; - } - - return dest; -} - -/* !!! Constraints tup is not copied !!! */ -static PLpgSQL_rec* copyPLpgsqlRec(PLpgSQL_rec* src) -{ - PLpgSQL_rec* dest = (PLpgSQL_rec*)palloc(sizeof(PLpgSQL_rec)); - dest->dtype = src->dtype; - dest->dno = src->dno; - dest->ispkg = src->ispkg; - dest->refname = pstrdup(src->refname); - dest->tup = NULL; - dest->lineno = src->lineno; - if (src->tupdesc == NULL) { - dest->tupdesc = NULL; - } else { - dest->tupdesc = CreateTupleDescCopy(src->tupdesc); - } - - dest->freetup = src->freetup; - dest->freetupdesc = src->freetupdesc; - - return dest; -} - -static PLpgSQL_recfield* copyPLpgsqlRecfield(PLpgSQL_recfield* src) -{ - PLpgSQL_recfield* dest = (PLpgSQL_recfield*)palloc(sizeof(PLpgSQL_recfield)); - dest->dtype = src->dtype; - dest->dno = src->dno; - dest->ispkg = src->ispkg; - dest->fieldname = pstrdup(src->fieldname); - dest->recparentno = src->recparentno; - - return dest; -} diff --git a/src/gausskernel/optimizer/util/Makefile b/src/gausskernel/optimizer/util/Makefile index a7abfbea8..4cb99a7dc 100644 --- a/src/gausskernel/optimizer/util/Makefile +++ b/src/gausskernel/optimizer/util/Makefile @@ -19,8 +19,8 @@ endif SUBDIRS = learn -OBJS = clauses.o joininfo.o orclauses.o pathnode.o placeholder.o plancat.o predtest.o \ +OBJS = clauses.o joininfo.o pathnode.o placeholder.o plancat.o predtest.o \ relnode.o restrictinfo.o tlist.o var.o pruningboundary.o pgxcship.o pruning.o randomplan.o optimizerdebug.o planmem_walker.o \ - nodegroups.o plananalyzer.o optcommon.o dataskew.o joinskewinfo.o autoanalyzer.o bucketinfo.o bucketpruning.o + nodegroups.o plananalyzer.o optcommon.o dataskew.o joinskewinfo.o autoanalyzer.o bucketinfo.o bucketpruning.o subpartitionpruning.o include $(top_srcdir)/src/gausskernel/common.mk diff --git a/src/gausskernel/optimizer/util/clauses.cpp b/src/gausskernel/optimizer/util/clauses.cpp index b7051e6f6..624870dd2 100644 --- a/src/gausskernel/optimizer/util/clauses.cpp +++ b/src/gausskernel/optimizer/util/clauses.cpp @@ -6,6 +6,7 @@ * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -26,6 +27,7 @@ #include "catalog/pg_type.h" #include "executor/executor.h" #include "executor/functions.h" +#include "executor/node/nodeCtescan.h" #include "executor/node/nodeModifyTable.h" #include "funcapi.h" #include "miscadmin.h" @@ -95,6 +97,7 @@ typedef enum { CONTAIN_FUNCTION_ID, CONTAIN_MUTABLE_FUNCTION, CONTAIN_VOLATILE_F typedef struct { Oid funcid; checkFuntionType checktype; + bool deep; } check_function_context; typedef struct not_strict_context { @@ -988,6 +991,7 @@ bool contain_mutable_functions(Node* clause) { check_function_context context; context.checktype = CONTAIN_MUTABLE_FUNCTION; + context.deep = false; return contain_specified_functions_walker(clause, &context); } @@ -1005,10 +1009,11 @@ bool contain_mutable_functions(Node* clause) * XXX we do not examine sub-selects to see if they contain uses of * volatile functions. It's not real clear if that is correct or not... */ -bool contain_volatile_functions(Node* clause) +bool contain_volatile_functions(Node* clause, bool deep) { check_function_context context; context.checktype = CONTAIN_VOLATILE_FUNTION; + context.deep = deep; return contain_specified_functions_walker(clause, &context); } @@ -1024,6 +1029,7 @@ bool contain_specified_function(Node* clause, Oid funcid) check_function_context context; context.funcid = funcid; context.checktype = CONTAIN_FUNCTION_ID; + context.deep = false; return contain_specified_functions_walker(clause, &context); } @@ -1135,6 +1141,9 @@ static bool contain_specified_functions_walker(Node* node, check_function_contex } else if (IsA(node, Rownum)) { /* ROWNUM is volatile */ return context->checktype == CONTAIN_VOLATILE_FUNTION; + } else if (IsA(node, Query) && context->deep) { + /* Recurse into subselects */ + return query_tree_walker((Query*)node, (bool (*)())contain_specified_functions_walker, context, 0); } return expression_tree_walker(node, (bool (*)())contain_specified_functions_walker, context); } @@ -1154,6 +1163,7 @@ bool exec_simple_check_mutable_function(Node* clause) { check_function_context context; context.checktype = CONTAIN_MUTABLE_FUNCTION; + context.deep = false; return contain_specified_functions_walker(clause, &context); } @@ -3064,7 +3074,7 @@ Node* eval_const_expressions_mutator(Node* node, eval_const_expressions_context* Node* arg = NULL; arg = eval_const_expressions_mutator((Node*)ntest->arg, context); - if (arg && IsA(arg, RowExpr)) { + if (ntest->argisrow && arg && IsA(arg, RowExpr)) { /* * We break ROW(...) IS [NOT] NULL into separate tests on * its component fields. This form is usually more @@ -3075,7 +3085,6 @@ Node* eval_const_expressions_mutator(Node* node, eval_const_expressions_context* List* newargs = NIL; ListCell* l = NULL; - AssertEreport(ntest->argisrow, MOD_OPT, ""); foreach (l, rarg->args) { Node* relem = (Node*)lfirst(l); @@ -3090,10 +3099,16 @@ Node* eval_const_expressions_mutator(Node* node, eval_const_expressions_context* return makeBoolConst(false, false); continue; } + /* + * Else, make a scalar (argisrow == false) NullTest + * for this field. Scalar semantics are required + * because IS [NOT] NULL doesn't recurse; see comments + * in ExecEvalNullTest(). + */ newntest = makeNode(NullTest); newntest->arg = (Expr*)relem; newntest->nulltesttype = ntest->nulltesttype; - newntest->argisrow = type_is_rowtype(exprType(relem)); + newntest->argisrow = false; newargs = lappend(newargs, newntest); } /* If all the inputs were constants, result is TRUE */ @@ -4013,6 +4028,11 @@ static Expr* evaluate_function(Oid funcid, Oid result_type, int32 result_typmod, if (funcform->prorettype == RECORDOID) return NULL; + /* For hierarchical query the value is calculated in runtime stage, so just return */ + if (IsHierarchicalQueryFuncOid(funcid)) { + return NULL; + } + /* * Check for constant inputs and especially constant-NULL inputs. */ @@ -4570,73 +4590,6 @@ Expr* evaluate_expr(Expr* expr, Oid result_type, int32 result_typmod, Oid result result_type, result_typmod, result_collation, resultTypLen, const_val, const_is_null, resultTypByVal); } -/* - * search_cte_by_parse_tree - * Attempt to find a CTE in parse tree of current level - * - * Parameters: - * @in root: planner info struct for current query level - * @in rte: cte table entry to substitute - * Returns: - * substituted parse tree, or null if can't substituted - */ -Query* search_cte_by_parse_tree(Query* parse, RangeTblEntry* rte, bool underRecursive) -{ - ListCell* lc = NULL; - - /* - * Lookup current CTE by name - */ - foreach (lc, parse->cteList) { - CommonTableExpr* cte = (CommonTableExpr*)lfirst(lc); - - if (strcmp(cte->ctename, rte->ctename) == 0) { - Query* ctequery = (Query*)cte->ctequery; - - /* - * For a recursive-cte and u_sess->attr.attr_sql.enable_stream_recursive is disabled, we disable - * streaming plan. - */ - if (!u_sess->attr.attr_sql.enable_stream_recursive && cte->cterecursive) { - errno_t sprintf_rc = sprintf_s(u_sess->opt_cxt.not_shipping_info->not_shipping_reason, - NOTPLANSHIPPING_LENGTH, - "Unsupported CTE substitution causes SQL unshipped"); - securec_check_ss_c(sprintf_rc, "\0", "\0"); - mark_stream_unsupport(); - } - - if (underRecursive && cte->cterecursive && !rte->self_reference) { - errno_t sprintf_rc = sprintf_s(u_sess->opt_cxt.not_shipping_info->not_shipping_reason, - NOTPLANSHIPPING_LENGTH, - "Recursive CTE references recursive CTE \"%s\"", - cte->ctename); - securec_check_ss_c(sprintf_rc, "\0", "\0"); - mark_stream_unsupport(); - } - - if (cte->cterecursive || !IsA(ctequery, Query) || ctequery->commandType != CMD_SELECT || - ctequery->utilityStmt != NULL || ctequery->returningList != NIL) { - return NULL; - } - - /* - * Always copy cte if it's referenced multiple times, to prevent other - * rewrite rules on some of cte. We don't know how many times it got - * referenced because the cte uses it can be referenced multiple times - */ - ctequery = (Query*)copyObject(ctequery); - - return ctequery; - } - } - - ereport(ERROR, - (errmodule(MOD_OPT), - errcode(ERRCODE_OPTIMIZER_INCONSISTENT_STATE), - (errmsg("could not find CTE \"%s\"", rte->ctename)))); - return NULL; -} - /* * inline_set_returning_function * Attempt to "inline" a set-returning function in the FROM clause. diff --git a/src/gausskernel/optimizer/util/learn/comm.cpp b/src/gausskernel/optimizer/util/learn/comm.cpp index f8fc5ea62..680299eeb 100644 --- a/src/gausskernel/optimizer/util/learn/comm.cpp +++ b/src/gausskernel/optimizer/util/learn/comm.cpp @@ -270,7 +270,7 @@ static GS_UCHAR* DecodeClientKey(StringInfo cahome) return plainpwd; } -static inline void CleanCertInfo(StringInfo str) +static void CleanCertInfo(StringInfo str) { errno_t rc = memset_s(str->data, str->len, 0, str->len); securec_check(rc, "\0", "\0"); diff --git a/src/gausskernel/optimizer/util/learn/ml_model.cpp b/src/gausskernel/optimizer/util/learn/ml_model.cpp index 5680fb099..772f0328e 100644 --- a/src/gausskernel/optimizer/util/learn/ml_model.cpp +++ b/src/gausskernel/optimizer/util/learn/ml_model.cpp @@ -483,6 +483,14 @@ Form_gs_opt_model CheckModelTargets(const char* templateName, const char* modelN bool isNULL = false; Form_gs_opt_model modelinfo = NULL; *nLabel = 0; + if (templateName == NULL) { + ereport(ERROR, + (errmodule(MOD_OPT_AI), errcode(ERRCODE_UNEXPECTED_NULL_VALUE), + errmsg("templateName must not be NULL."), + errdetail("N/A"), + errcause("System error."), + erraction("Contact Huawei Engineer."))); + } /* check templateName, for only rlstm is supported */ if (strcmp(templateName, RLSTM_TEMPLATE_NAME) != 0) { ereport(ERROR, diff --git a/src/gausskernel/optimizer/util/optcommon.cpp b/src/gausskernel/optimizer/util/optcommon.cpp index 01ee84e40..2c66ab32d 100755 --- a/src/gausskernel/optimizer/util/optcommon.cpp +++ b/src/gausskernel/optimizer/util/optcommon.cpp @@ -6,6 +6,7 @@ * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -65,6 +66,9 @@ void GetPlanNodePlainText( case T_RecursiveUnion: *pname = *sname = *pt_operation = "Recursive Union"; break; + case T_StartWithOp: + *pname = *sname = *pt_operation = "StartWith Operator"; + break; case T_BitmapAnd: *pname = *sname = "BitmapAnd"; *pt_operation = "BITMAP AND"; diff --git a/src/gausskernel/optimizer/util/pathnode.cpp b/src/gausskernel/optimizer/util/pathnode.cpp index 358fa9880..7d732bd34 100755 --- a/src/gausskernel/optimizer/util/pathnode.cpp +++ b/src/gausskernel/optimizer/util/pathnode.cpp @@ -259,8 +259,7 @@ inline bool IsSeqScanPath(const Path* path) inline bool IsBtreeIndexPath(const Path* path) { - return path->type == T_IndexPath && - ((IndexPath*)path)->indexinfo->relam == BTREE_AM_OID; + return path->type == T_IndexPath && OID_IS_BTREE(((IndexPath*)path)->indexinfo->relam); } inline bool AreTwoBtreeIdxPaths(const Path* path1, const Path* path2) diff --git a/src/gausskernel/optimizer/util/pgxcship.cpp b/src/gausskernel/optimizer/util/pgxcship.cpp index c685f3759..b9a59c968 100644 --- a/src/gausskernel/optimizer/util/pgxcship.cpp +++ b/src/gausskernel/optimizer/util/pgxcship.cpp @@ -6,6 +6,7 @@ * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 2010-2012, Postgres-XC Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -245,7 +246,7 @@ static void pgxc_set_exprtype_shippability(Oid exprtype, Shippability_context* s if (relid != InvalidOid) typerelkind = get_rel_relkind(relid); - if (typerelkind == RELKIND_SEQUENCE || + if (RELKIND_IS_SEQUENCE(typerelkind) || typerelkind == RELKIND_VIEW || typerelkind == RELKIND_CONTQUERY) pgxc_set_shippability_reason(sc_context, SS_UNSHIPPABLE_TYPE); @@ -709,7 +710,7 @@ static ExecNodes* pgxc_FQS_find_datanodes(Shippability_context* sc_context) * chance because common nodes are left out. */ if (IsExecNodesReplicated(exec_nodes) && - (exec_nodes->accesstype == RELATION_ACCESS_READ_FOR_UPDATE || + ((exec_nodes->accesstype == RELATION_ACCESS_READ_FOR_UPDATE && exec_nodes->nodeList->length > 1) || exec_nodes->accesstype == RELATION_ACCESS_READ) && sc_context->sc_query_level == 0 && !sc_context->sc_inselect) { List* tmp_list = exec_nodes->nodeList; diff --git a/src/gausskernel/optimizer/util/plananalyzer.cpp b/src/gausskernel/optimizer/util/plananalyzer.cpp index 0dfac796a..de89774f7 100644 --- a/src/gausskernel/optimizer/util/plananalyzer.cpp +++ b/src/gausskernel/optimizer/util/plananalyzer.cpp @@ -1067,7 +1067,7 @@ void RecordQueryPlanIssues(const List* results) } /* Hold the planer issue info in memory context of workload manager */ - AutoContextSwitch memSwitch(g_instance.wlm_cxt->query_resource_track_mcxt); + AutoContextSwitch memSwitch(SESS_GET_MEM_CXT_GROUP(MEMORY_CONTEXT_CBB)); t_thrd.shemem_ptr_cxt.mySessionMemoryEntry->query_plan_issue = pstrdup(max_issue_desc); return; diff --git a/src/gausskernel/optimizer/util/plancat.cpp b/src/gausskernel/optimizer/util/plancat.cpp index ba9ce5864..f9ad97f38 100755 --- a/src/gausskernel/optimizer/util/plancat.cpp +++ b/src/gausskernel/optimizer/util/plancat.cpp @@ -62,6 +62,8 @@ #endif #define ESTIMATE_PARTITION_NUMBER 10 +#define ESTIMATE_PARTITION_NUMBER_THRESHOLD 5 +#define ESTIMATE_PARTPAGES_THRESHOLD 50 #define DEFAULT_PAGES_NUM (u_sess->attr.attr_sql.enable_global_stats ? 10 * u_sess->pgxc_cxt.NumDataNodes : 10) #define DEFAULT_TUPLES_NUM DEFAULT_PAGES_NUM @@ -96,19 +98,118 @@ static BlockNumber ComputeTheTotalPages(Relation relation, int nonzeroPartitionN return totalPages; } +/* + * A modified method for acquireSamplesForPartitionedRelation + * We use sampling stratification to get 10 partitions, instead of using the top 10 partitions, meanwhile the relpages + * in pg_partition (calculated by lazy vacuum) are used as weight. + * And if the valid partitions is not enough (less than or equal to 5), we use the relpages in pg_class (calculated by + * analyze or lazy vacuum) as a result. + */ +static void acquireSamplesForPartitionedRelationModify( + Relation relation, LOCKMODE lmode, RelPageType* samplePages, List** sampledPartitionOids) +{ + if (!(RelationIsPartitioned(relation) && RelationIsRelation(relation))) { + return; + } + + List* partoidlist; + if (RelationIsSubPartitioned(relation)) { + partoidlist = RelationGetSubPartitionOidList(relation, lmode); + } else { + partoidlist = relationGetPartitionOidList(relation); + } + int totalPartitionNumber = list_length(partoidlist); + int nonzeroPartitionNumber = 0; + BlockNumber partPages = 0; + BlockNumber currentPartPages = 0; + + BlockNumber relPages = relation->rd_rel->relpages; /* analyzed pages, stored in pg_class->relpages */ + BlockNumber relpartPages = 0; /* analyzed sample pages, stored in pg_partition->relpages */ + + int stepNum = + totalPartitionNumber > ESTIMATE_PARTITION_NUMBER ? totalPartitionNumber / ESTIMATE_PARTITION_NUMBER : 1; + int iterations = 0; + ListCell* cell = NULL; + foreach(cell, partoidlist) { + iterations++; + if (iterations % stepNum != 0) { + continue; + } + + Oid partitionOid = DatumGetObjectId(lfirst(cell)); + if (!OidIsValid(partitionOid)) { + continue; + } + + if (RelationIsSubPartitioned(relation)) { + Oid subparentid = partid_get_parentid(partitionOid); + if (!OidIsValid(subparentid) || + !ConditionalLockPartition(relation->rd_id, subparentid, lmode, PARTITION_LOCK) || + !ConditionalLockPartition(subparentid, partitionOid, lmode, PARTITION_LOCK)) { + continue; + } + Partition part = partitionOpen(relation, subparentid, lmode); + Relation partrel = partitionGetRelation(relation, part); + Partition subpart = partitionOpen(partrel, partitionOid, lmode); + currentPartPages = PartitionGetNumberOfBlocksInFork(partrel, subpart, MAIN_FORKNUM, true); + /* for empty heap, PartitionGetNumberOfBlocks() return 0 */ + if (currentPartPages > 0) { + if (sampledPartitionOids != NULL) + *sampledPartitionOids = lappend_oid(*sampledPartitionOids, partitionOid); + + partPages += currentPartPages; + relpartPages += subpart->pd_part->relpages; + nonzeroPartitionNumber++; + } + partitionClose(partrel, subpart, lmode); + releaseDummyRelation(&partrel); + partitionClose(relation, part, lmode); + } else { + if (!ConditionalLockPartition(relation->rd_id, partitionOid, lmode, PARTITION_LOCK)) { + continue; + } + + Partition part = partitionOpen(relation, partitionOid, lmode); + currentPartPages = PartitionGetNumberOfBlocksInFork(relation, part, MAIN_FORKNUM, true); + /* for empty heap, PartitionGetNumberOfBlocks() return 0 */ + if (currentPartPages > 0) { + if (sampledPartitionOids != NULL) + *sampledPartitionOids = lappend_oid(*sampledPartitionOids, partitionOid); + + partPages += currentPartPages; + relpartPages += part->pd_part->relpages; + nonzeroPartitionNumber++; + } + partitionClose(relation, part, lmode); + } + } + + if (relpartPages > 0 && nonzeroPartitionNumber > ESTIMATE_PARTITION_NUMBER_THRESHOLD) { + *samplePages = partPages * (relPages / (double)relpartPages); + } else { + *samplePages = relPages; + } +} + +int GetTotalPartitionNumber(Relation relation) +{ + int totalPartitionNumber = 0; + if (relation->partMap->type == PART_TYPE_LIST) { + totalPartitionNumber = getNumberOfListPartitions(relation); + } else if (relation->partMap->type == PART_TYPE_HASH) { + totalPartitionNumber = getNumberOfHashPartitions(relation); + } else { + totalPartitionNumber = getNumberOfRangePartitions(relation); + } + return totalPartitionNumber; +} + static void acquireSamplesForPartitionedRelation( Relation relation, LOCKMODE lmode, RelPageType* samplePages, List** sampledPartitionOids) { if (RelationIsPartitioned(relation)) { if (relation->rd_rel->relkind == RELKIND_RELATION) { - int totalRangePartitionNumber = 0; - if (relation->partMap->type == PART_TYPE_LIST) { - totalRangePartitionNumber = getNumberOfListPartitions(relation); - } else if (relation->partMap->type == PART_TYPE_HASH) { - totalRangePartitionNumber = getNumberOfHashPartitions(relation); - } else { - totalRangePartitionNumber = getNumberOfRangePartitions(relation); - } + int totalRangePartitionNumber = GetTotalPartitionNumber(relation); int totalPartitionNumber = totalRangePartitionNumber; int partitionNumber = 0; int nonzeroPartitionNumber = 0; @@ -116,6 +217,7 @@ static void acquireSamplesForPartitionedRelation( BlockNumber currentPartPages = 0; Partition part = NULL; int notAvailPartitionCnt = 0; + RelPageType subPartitionPages = 0; for (partitionNumber = 0; partitionNumber < totalPartitionNumber; partitionNumber++) { Oid partitionOid = InvalidOid; @@ -146,32 +248,52 @@ static void acquireSamplesForPartitionedRelation( } #endif } - if (!OidIsValid(partitionOid)) - continue; + if (RelationIsSubPartitioned(relation)) { + Partition partition = partitionOpen(relation, partitionOid, lmode); + Relation subPartitionRelation = partitionGetRelation(relation, partition); + RelPageType curpages = 0; + acquireSamplesForPartitionedRelation(subPartitionRelation, lmode, &curpages, sampledPartitionOids); + releaseDummyRelation(&subPartitionRelation); + partitionClose(relation, partition, lmode); + subPartitionPages += curpages; + } else { + if (!OidIsValid(partitionOid)) + continue; - if(!ConditionalLockPartition(relation->rd_id, partitionOid, lmode, PARTITION_LOCK)) { - notAvailPartitionCnt++; - continue; - } + if (!ConditionalLockPartition(relation->rd_id, partitionOid, lmode, PARTITION_LOCK)) { + notAvailPartitionCnt++; + continue; + } - part = partitionOpen(relation, partitionOid, NoLock); - currentPartPages = PartitionGetNumberOfBlocksInFork(relation, part, MAIN_FORKNUM, true); - partitionClose(relation, part, lmode); + part = partitionOpen(relation, partitionOid, lmode); + currentPartPages = PartitionGetNumberOfBlocksInFork(relation, part, MAIN_FORKNUM, true); + partitionClose(relation, part, lmode); - /* for empty heap, PartitionGetNumberOfBlocks() return 0 */ - if (currentPartPages > 0) { - if (sampledPartitionOids != NULL) - *sampledPartitionOids = lappend_oid(*sampledPartitionOids, partitionOid); + /* for empty heap, PartitionGetNumberOfBlocks() return 0 */ + if (currentPartPages > 0) { + if (sampledPartitionOids != NULL) + *sampledPartitionOids = lappend_oid(*sampledPartitionOids, partitionOid); - partPages += currentPartPages; - if (++nonzeroPartitionNumber == ESTIMATE_PARTITION_NUMBER) { - break; + partPages += currentPartPages; + if (++nonzeroPartitionNumber == ESTIMATE_PARTITION_NUMBER) { + break; + } } } } - *samplePages = ComputeTheTotalPages( - relation, nonzeroPartitionNumber, notAvailPartitionCnt, totalPartitionNumber, partPages); + if (subPartitionPages != 0) { + *samplePages = subPartitionPages; + } else { + *samplePages = ComputeTheTotalPages(relation, nonzeroPartitionNumber, notAvailPartitionCnt, + totalPartitionNumber, partPages); + } + + if (*samplePages < relation->rd_rel->relpages / ESTIMATE_PARTPAGES_THRESHOLD) { + if (sampledPartitionOids != NULL) + list_free_ext(*sampledPartitionOids); + acquireSamplesForPartitionedRelationModify(relation, lmode, samplePages, sampledPartitionOids); + } } } } @@ -479,22 +601,36 @@ void get_relation_info(PlannerInfo* root, Oid relationObjectId, bool inhparent, } else { /* normal partitioned index, including crossbucket index */ ListCell* cell = NULL; + BlockNumber indexPages = 0; BlockNumber partIndexPages = 0; + BlockNumber indexrelPartPages = 0; /* analyzed pages, stored in pg_partition->relpages */ int partitionNum = getNumberOfPartitions(relation); foreach (cell, sampledPartitionIds) { Oid partOid = lfirst_oid(cell); Oid partIndexOid = getPartitionIndexOid(indexRelation->rd_id, partOid); Partition partIndex = partitionOpen(indexRelation, partIndexOid, AccessShareLock); partIndexPages += PartitionGetNumberOfBlocks(indexRelation, partIndex); + indexrelPartPages += partIndex->pd_part->relpages; partitionClose(indexRelation, partIndex, AccessShareLock); } // if sampled ESTIMATE_PARTITION_NUMBER, infer the pages of index, // else partIndexPages is the actrual pages of index. + indexPages = partIndexPages; if (sampledPartitionIds != NIL) { if (sampledPartitionIds->length == ESTIMATE_PARTITION_NUMBER) - partIndexPages *= partitionNum / ESTIMATE_PARTITION_NUMBER; + indexPages = partIndexPages * (partitionNum / ESTIMATE_PARTITION_NUMBER); } - info->pages = partIndexPages; + if (indexrelPartPages > 0 && + partitionNum > ESTIMATE_PARTITION_NUMBER && + partIndexPages < indexRelation->rd_rel->relpages / ESTIMATE_PARTPAGES_THRESHOLD) { + if (sampledPartitionIds->length > ESTIMATE_PARTITION_NUMBER_THRESHOLD) { + indexPages = + partIndexPages * (indexRelation->rd_rel->relpages / (double)indexrelPartPages); + } else { + indexPages = indexRelation->rd_rel->relpages; + } + } + info->pages = indexPages; } } #ifdef PGXC @@ -629,7 +765,8 @@ void estimate_rel_size(Relation rel, int32* attr_widths, RelPageType* pages, dou * ESTIMATE_PARTITION_NUMBER non-zero-pages partitions * multiply total number of partitions */ - if (RelationIsPartitioned(rel) && !RelationIsColStore(rel) && !RelationIsGlobalIndex(rel)) { + if ((RelationIsPartitioned(rel) || RelationIsSubPartitioned(rel)) && !RelationIsColStore(rel) && + !RelationIsGlobalIndex(rel)) { acquireSamplesForPartitionedRelation(rel, AccessShareLock, &curpages, sampledPartitionIds); } else if (RelationIsValuePartitioned(rel)) { /* @@ -755,6 +892,7 @@ void estimate_rel_size(Relation rel, int32* attr_widths, RelPageType* pages, dou *allvisfrac = (double)relallvisible / curpages; break; case RELKIND_SEQUENCE: + case RELKIND_LARGE_SEQUENCE: /* Sequences always have a known size */ *pages = 1; *tuples = 1; @@ -1017,7 +1155,13 @@ static List* get_relation_constraints(PlannerInfo* root, Oid relationObjectId, R ntest->arg = (Expr*)makeVar(varno, i, att->atttypid, att->atttypmod, att->attcollation, 0); ntest->nulltesttype = IS_NOT_NULL; - ntest->argisrow = type_is_rowtype(att->atttypid); + + /* + * argisrow=false is correct even for a composite column, + * because attnotnull does not represent a SQL-spec IS NOT + * NULL test in such a case, just IS DISTINCT FROM NULL. + */ + ntest->argisrow = false; result = lappend(result, ntest); } } @@ -1188,6 +1332,11 @@ List* build_physical_tlist(PlannerInfo* root, RelOptInfo* rel) case RTE_VALUES: case RTE_CTE: case RTE_RESULT: + /* incase of CTE, we need check and set swConverted fields */ + if (rte->rtekind == RTE_CTE && !rte->swConverted) { + rte->swConverted = IsRteForStartWith(root, rte); + } + /* Not all of these can have dropped cols, but share code anyway */ expandRTE(rte, varno, 0, -1, true /* include dropped */, NULL, &colvars); foreach (l, colvars) { @@ -1203,6 +1352,12 @@ List* build_physical_tlist(PlannerInfo* root, RelOptInfo* rel) tlist = lappend(tlist, makeTargetEntry((Expr*)var, var->varattno, NULL, false)); } + + /* in case sw-converted CTE, we need fix the tlist */ + if (rte->rtekind == RTE_CTE && rte->swConverted) { + tlist = FixSwTargetlistResname(root, rte, tlist); + } + break; default: @@ -1217,6 +1372,54 @@ List* build_physical_tlist(PlannerInfo* root, RelOptInfo* rel) return tlist; } +/* + * @Brief: check it the given rte is the rte for StartWith + */ +bool IsRteForStartWith(PlannerInfo *root, RangeTblEntry *rte) +{ + PlannerInfo *cteroot = NULL; + bool result = false; + + /* return false if not a CTE entry */ + if (rte->rtekind != RTE_CTE) { + return false; + } + + /* Return true */ + if (rte->swConverted) { + return true; + } + + /* check and set fromStartWithConverted */ + ListCell *lc = NULL; + int levelsup = rte->ctelevelsup; + cteroot = root; + while (levelsup-- > 0) { + cteroot = cteroot->parent_root; + if (cteroot == NULL) { /* shouldn't happen */ + ereport(ERROR, + (errmodule(MOD_OPT), + errcode(ERRCODE_OPTIMIZER_INCONSISTENT_STATE), + errmsg("bad levelsup for CTE \"%s\"", rte->ctename))); + } + } + + /* search CTE expr and check if it is sw converted case */ + foreach (lc, cteroot->parse->cteList) { + CommonTableExpr* cte = (CommonTableExpr*)lfirst(lc); + if (!cte->cterecursive) { + continue; + } + + if (strcmp(cte->ctename, rte->ctename) == 0 && cte->swoptions != NULL) { + result = true; + break; + } + } + + return result; +} + /* * mark_index_col * mark real index column in g_index_vars. diff --git a/src/gausskernel/optimizer/util/pruning.cpp b/src/gausskernel/optimizer/util/pruning.cpp index 6a6e2ba4d..95fd82dcd 100644 --- a/src/gausskernel/optimizer/util/pruning.cpp +++ b/src/gausskernel/optimizer/util/pruning.cpp @@ -1,5 +1,6 @@ /* * Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors * * openGauss is licensed under Mulan PSL v2. * You can use this software according to the terms and conditions of the Mulan PSL v2. @@ -25,12 +26,14 @@ #include "knl/knl_variable.h" #include "catalog/pg_type.h" #include "catalog/index.h" +#include "commands/tablecmds.h" #include "nodes/makefuncs.h" #include "nodes/nodeFuncs.h" #include "nodes/relation.h" #include "optimizer/clauses.h" #include "optimizer/pruning.h" #include "optimizer/pruningboundary.h" +#include "optimizer/subpartitionpruning.h" #include "utils/array.h" #include "utils/lsyscache.h" #include "utils/rel.h" @@ -76,8 +79,6 @@ static PruningResult* partitionEqualPruningWalker(PartitionType partType, Expr* ((pruningResult)->boundary->partitionKeyNum > 1 && (topValue) && PointerIsValid((topValue)[0]) && \ !(pruningResult)->boundary->maxClose[0]) -#define IF_OPEN_PARTITION_PRUNING 0 - static PartitionMap* GetRelPartitionMap(Relation relation) { return relation->partMap; @@ -115,64 +116,25 @@ PruningResult* GetPartitionInfo(PruningResult* result, EState* estate, Relation } if (PointerIsValid(resPartition) && !PruningResultIsFull(resPartition)) generateListFromPruningBM(resPartition); + if (RelationIsSubPartitioned(current_relation)) { + int partSeq = 0; + ListCell *cell = NULL; + Oid partitionOid = InvalidOid; + foreach (cell, resPartition->ls_rangeSelectedPartitions) { + partSeq = lfirst_int(cell); + partitionOid = getPartitionOidFromSequence(current_relation, partSeq); + SubPartitionPruningResult *subPartPruningRes = + PreGetSubPartitionFullPruningResult(current_relation, partitionOid); + if (subPartPruningRes == NULL) { + continue; + } + subPartPruningRes->partSeq = partSeq; + resPartition->ls_selectedSubPartitions = lappend(resPartition->ls_selectedSubPartitions, subPartPruningRes); + } + } return resPartition; } -PruningResult* getFullPruningResult(Relation relation) -{ - /* construct PrunningResult */ - PruningResult* pruningRes = NULL; - RangePartitionMap* rangePartitionMap = NULL; - ListPartitionMap* listPartitionMap = NULL; - HashPartitionMap* hashPartitionMap = NULL; - int i = 0; - - if (!PointerIsValid(relation) || !PointerIsValid(relation->partMap)) { - return NULL; - } - - AssertEreport(relation->partMap->type == PART_TYPE_RANGE || - relation->partMap->type == PART_TYPE_LIST || - relation->partMap->type == PART_TYPE_HASH || - relation->partMap->type == PART_TYPE_INTERVAL, - MOD_OPT, - "Unexpected partition map type: expecting RANGE or INTERVAL"); - pruningRes = makeNode(PruningResult); - pruningRes->state = PRUNING_RESULT_FULL; - if (relation->partMap->type == PART_TYPE_RANGE || - relation->partMap->type == PART_TYPE_INTERVAL) { - rangePartitionMap = (RangePartitionMap*)relation->partMap; - - - /* construct range bitmap */ - for (i = 0; i < rangePartitionMap->rangeElementsNum; i++) { - pruningRes->bm_rangeSelectedPartitions = bms_add_member(pruningRes->bm_rangeSelectedPartitions, i); - pruningRes->ls_rangeSelectedPartitions = lappend_int(pruningRes->ls_rangeSelectedPartitions, i); - } - - if (relation->partMap->type != PART_TYPE_INTERVAL) { - pruningRes->intervalOffset = 0; - pruningRes->intervalSelectedPartitions = NULL; - } - } else if (relation->partMap->type == PART_TYPE_LIST) { - listPartitionMap = (ListPartitionMap*)relation->partMap; - - for (i = 0; i < listPartitionMap->listElementsNum; i++) { - pruningRes->bm_rangeSelectedPartitions = bms_add_member(pruningRes->bm_rangeSelectedPartitions, i); - pruningRes->ls_rangeSelectedPartitions = lappend_int(pruningRes->ls_rangeSelectedPartitions, i); - } - } else if (relation->partMap->type == PART_TYPE_HASH) { - hashPartitionMap = (HashPartitionMap*)relation->partMap; - - for (i = 0; i < hashPartitionMap->hashElementsNum; i++) { - pruningRes->bm_rangeSelectedPartitions = bms_add_member(pruningRes->bm_rangeSelectedPartitions, i); - pruningRes->ls_rangeSelectedPartitions = lappend_int(pruningRes->ls_rangeSelectedPartitions, i); - } - } - - return pruningRes; -} - /* * @@GaussDB@@ * Brief @@ -188,7 +150,8 @@ PruningResult* copyPruningResult(PruningResult* srcPruningResult) newpruningInfo->bm_rangeSelectedPartitions = bms_copy(srcPruningResult->bm_rangeSelectedPartitions); newpruningInfo->intervalOffset = srcPruningResult->intervalOffset; newpruningInfo->intervalSelectedPartitions = bms_copy(srcPruningResult->intervalSelectedPartitions); - newpruningInfo->ls_rangeSelectedPartitions = list_copy(srcPruningResult->ls_rangeSelectedPartitions); + newpruningInfo->ls_rangeSelectedPartitions = (List*)copyObject(srcPruningResult->ls_rangeSelectedPartitions); + newpruningInfo->ls_selectedSubPartitions = (List*)copyObject(srcPruningResult->ls_selectedSubPartitions); newpruningInfo->paramArg = (Param *)copyObject(srcPruningResult->paramArg); newpruningInfo->expr = (Expr *)copyObject(srcPruningResult->expr); newpruningInfo->exprPart = (OpExpr *)copyObject(srcPruningResult->exprPart); @@ -199,248 +162,6 @@ PruningResult* copyPruningResult(PruningResult* srcPruningResult) } } -/* - * Support partiton index unusable. - * check if the partition index is unusable. - */ -bool checkPartitionIndexUnusable(Oid indexOid, int partItrs, PruningResult* pruning_result) -{ - Oid heapRelOid; - Relation indexRel, heapRel; - bool partitionIndexUnusable = true; - ListCell* cell = NULL; - List* part_seqs = pruning_result->ls_rangeSelectedPartitions; - - if (pruning_result->expr == NULL) { - if (PointerIsValid(part_seqs)) - AssertEreport( - partItrs == part_seqs->length, MOD_OPT, "The number of partitions does not match that of pruning result."); - } - if (!OidIsValid(indexOid)) { - ereport(ERROR, - (errmodule(MOD_OPT), errcode(ERRCODE_OPTIMIZER_INCONSISTENT_STATE), - errmsg("invalid index oid to check for unusability"))); - } - - heapRelOid = IndexGetRelation(indexOid, false); - heapRel = relation_open(heapRelOid, NoLock); - indexRel = relation_open(indexOid, NoLock); - if (RelationIsGlobalIndex(indexRel)) { - partitionIndexUnusable = indexRel->rd_index->indisusable; - relation_close(heapRel, NoLock); - relation_close(indexRel, NoLock); - return partitionIndexUnusable; - } - - if (!RelationIsPartitioned(heapRel) || !RelationIsPartitioned(indexRel) || - (heapRel->partMap->type != PART_TYPE_RANGE && - heapRel->partMap->type != PART_TYPE_INTERVAL && - heapRel->partMap->type != PART_TYPE_LIST && - heapRel->partMap->type != PART_TYPE_HASH)) { - ereport(ERROR, (errmodule(MOD_OPT), - errcode(ERRCODE_OPTIMIZER_INCONSISTENT_STATE), - errmsg("relation %s is not partitioned when check partition index", RelationGetRelationName(heapRel)))); - } - - foreach (cell, part_seqs) { - Oid tablepartitionid = InvalidOid; - Oid indexpartitionid = InvalidOid; - Partition tablepart = NULL; - Partition indexpartition = NULL; - List* partitionIndexOidList = NIL; - int partSeq = lfirst_int(cell); - - tablepartitionid = getPartitionOidFromSequence(heapRel, partSeq); - tablepart = partitionOpen(heapRel, tablepartitionid, AccessShareLock); - - /* get index partition and add it to a list for following scan */ - partitionIndexOidList = PartitionGetPartIndexList(tablepart); - AssertEreport(PointerIsValid(partitionIndexOidList), MOD_OPT, ""); - if (!PointerIsValid(partitionIndexOidList)) { - ereport(ERROR, (errmodule(MOD_OPT), - errcode(ERRCODE_WRONG_OBJECT_TYPE), - errmsg("no local indexes found for partition %s", PartitionGetPartitionName(tablepart)))); - } - indexpartitionid = searchPartitionIndexOid(indexOid, partitionIndexOidList); - list_free_ext(partitionIndexOidList); - indexpartition = partitionOpen(indexRel, indexpartitionid, AccessShareLock); - - // found a unusable index partition - if (!indexpartition->pd_part->indisusable) { - partitionIndexUnusable = false; - partitionClose(indexRel, indexpartition, AccessShareLock); - partitionClose(heapRel, tablepart, AccessShareLock); - break; - } - - // close index partition and table partition - partitionClose(indexRel, indexpartition, AccessShareLock); - partitionClose(heapRel, tablepart, AccessShareLock); - } - - relation_close(heapRel, NoLock); - relation_close(indexRel, NoLock); - - return partitionIndexUnusable; -} - -static IndexesUsableType GetIndexesUsableType(int usable_partition_num, int unusable_partition_num, int iterators) -{ - IndexesUsableType ret; - - if (usable_partition_num == iterators) { - ret = INDEXES_FULL_USABLE; - } else if (usable_partition_num > 0 && unusable_partition_num > 0) { - ret = INDEXES_PARTIAL_USABLE; - } else { - ret = INDEXES_NONE_USABLE; - } - - return ret; -} - -/* - * @@GaussDB@@ - * Brief - * Description : wipe out partitions whose local indexes are unusable. - * return value: return a pruning result without the wiped, the wiped are output as unusableIndexPruningResult - */ -IndexesUsableType eliminate_partition_index_unusable(Oid indexOid, PruningResult* inputPruningResult, - PruningResult** indexUsablePruningResult, PruningResult** indexUnusablePruningResult) -{ - IndexesUsableType ret; - int usable_partition_num = 0; - int unusable_partition_num = 0; - Oid heapRelOid; - Relation indexRel, heapRel; - Bitmapset* outIndexUsable_bm = NULL; - Bitmapset* outIndexUnusable_bm = NULL; - PruningResult* outIndexUsable_pr = NULL; - PruningResult* outIndexUnusable_pr = NULL; - int iterators = bms_num_members(inputPruningResult->bm_rangeSelectedPartitions); - List* part_seqs = inputPruningResult->ls_rangeSelectedPartitions; - ListCell* cell = NULL; - - if (inputPruningResult->expr == NULL) { - if (PointerIsValid(part_seqs)) - AssertEreport(part_seqs->length == iterators, MOD_OPT, ""); - } - // sanity check - if (!OidIsValid(indexOid)) { - ereport(ERROR, (errmodule(MOD_OPT), - errcode(ERRCODE_OPTIMIZER_INCONSISTENT_STATE), - errmsg("invalid index oid to check for unusability"))); - } - heapRelOid = IndexGetRelation(indexOid, false); - - heapRel = relation_open(heapRelOid, NoLock); - indexRel = relation_open(indexOid, NoLock); - /* Global partition index Just return FULL or NONE */ - if (RelationIsGlobalIndex(indexRel)) { - ret = indexRel->rd_index->indisusable ? INDEXES_FULL_USABLE : INDEXES_NONE_USABLE; - relation_close(heapRel, NoLock); - relation_close(indexRel, NoLock); - return ret; - } - - if (!RelationIsPartitioned(heapRel) || !RelationIsPartitioned(indexRel)) { - ereport(ERROR, (errmodule(MOD_OPT), - errcode(ERRCODE_OPTIMIZER_INCONSISTENT_STATE), - errmsg("relation %s is not partitioned", RelationGetRelationName(heapRel)))); - } - - // first copy out 2 copies - outIndexUsable_pr = copyPruningResult(inputPruningResult); - outIndexUnusable_pr = copyPruningResult(inputPruningResult); - - // get the bm of outIndexUsable_pr, as we want to delete from it. - outIndexUsable_bm = outIndexUsable_pr->bm_rangeSelectedPartitions; - // free the bm of outIndexUnusable, - // as we remove from outIndexUsable and add into outIndexUnusable - bms_free_ext(outIndexUnusable_pr->bm_rangeSelectedPartitions); - outIndexUnusable_pr->bm_rangeSelectedPartitions = NULL; - - // this is the scaning loop for selected partitions - foreach (cell, part_seqs) { - Oid tablepartitionid = InvalidOid; - Oid indexpartitionid = InvalidOid; - Partition tablepart = NULL; - Partition indexpartition = NULL; - List* partitionIndexOidList = NIL; - int partSeq = lfirst_int(cell); - - tablepartitionid = getPartitionOidFromSequence(heapRel, partSeq); - tablepart = partitionOpen(heapRel, tablepartitionid, AccessShareLock); - - /* get index partition and add it to a list for following scan */ - partitionIndexOidList = PartitionGetPartIndexList(tablepart); - AssertEreport(PointerIsValid(partitionIndexOidList), MOD_OPT, ""); - if (!PointerIsValid(partitionIndexOidList)) { - ereport(ERROR, (errmodule(MOD_OPT), - errcode(ERRCODE_WRONG_OBJECT_TYPE), - errmsg("no local indexes found for partition %s", PartitionGetPartitionName(tablepart)))); - } - indexpartitionid = searchPartitionIndexOid(indexOid, partitionIndexOidList); - list_free_ext(partitionIndexOidList); - indexpartition = partitionOpen(indexRel, indexpartitionid, AccessShareLock); - - // found a unusable index partition - if (!indexpartition->pd_part->indisusable) { - // delete partSeq from usable and add into unusable - if (!bms_is_member(partSeq, outIndexUsable_bm) || bms_is_member(partSeq, outIndexUnusable_bm)) { - ereport(ERROR, - (errmodule(MOD_OPT), - (errcode(ERRCODE_OPTIMIZER_INCONSISTENT_STATE), - errmsg("bit map error when searching for unusable index partition")))); - } - outIndexUsable_bm = bms_del_member(outIndexUsable_bm, partSeq); - outIndexUnusable_bm = bms_add_member(outIndexUnusable_bm, partSeq); - } - - /* - * Already hold parent table lock, it's safe to release lock. - */ - partitionClose(indexRel, indexpartition, AccessShareLock); - partitionClose(heapRel, tablepart, AccessShareLock); - } - - relation_close(heapRel, NoLock); - relation_close(indexRel, NoLock); - - // result check - usable_partition_num = bms_num_members(outIndexUsable_bm); - unusable_partition_num = bms_num_members(outIndexUnusable_bm); - if (usable_partition_num + unusable_partition_num != iterators || - bms_overlap(outIndexUsable_bm, outIndexUnusable_bm)) { - ereport(ERROR, (errmodule(MOD_OPT), - errcode(ERRCODE_OPTIMIZER_INCONSISTENT_STATE), - errmsg("bit map error after searching for unusable index partition"))); - } - - // set the return value - ret = GetIndexesUsableType(usable_partition_num, unusable_partition_num, iterators); - - // set back the bit map - if (usable_partition_num > 0) { - outIndexUsable_pr->bm_rangeSelectedPartitions = outIndexUsable_bm; - generateListFromPruningBM(outIndexUsable_pr); - // set the output - if (indexUsablePruningResult != NULL) { - *indexUsablePruningResult = outIndexUsable_pr; - } - } - // set back the bit map - if (unusable_partition_num > 0) { - outIndexUnusable_pr->bm_rangeSelectedPartitions = outIndexUnusable_bm; - generateListFromPruningBM(outIndexUnusable_pr); - // set the output - if (indexUnusablePruningResult != NULL) { - *indexUnusablePruningResult = outIndexUnusable_pr; - } - } - return ret; -} - void generateListFromPruningBM(PruningResult* result) { int partitions = 0; @@ -472,6 +193,7 @@ PruningResult* partitionPruningForRestrictInfo( PlannerInfo* root, RangeTblEntry* rte, Relation rel, List* restrictInfoList) { PruningResult* result = NULL; + Expr* expr = NULL; if (0 == list_length(restrictInfoList)) { result = getFullPruningResult(rel); @@ -480,7 +202,6 @@ PruningResult* partitionPruningForRestrictInfo( RestrictInfo* iteratorRestrict = NULL; List* exprList = NULL; int length = 0; - Expr* expr = NULL; foreach (cell, restrictInfoList) { iteratorRestrict = (RestrictInfo*)lfirst(cell); @@ -502,8 +223,53 @@ PruningResult* partitionPruningForRestrictInfo( } } - if (PointerIsValid(result) && !PruningResultIsFull(result)) + if (PointerIsValid(result) && !PruningResultIsFull(result)) { generateListFromPruningBM(result); + } + + if (RelationIsSubPartitioned(rel) && PointerIsValid(result)) { + Bitmapset *partIdx = NULL; + List* part_seqs = result->ls_rangeSelectedPartitions; + ListCell *cell = NULL; + RangeTblEntry *partRte = (RangeTblEntry *)copyObject(rte); + + foreach (cell, part_seqs) + { + int part_seq = lfirst_int(cell); + Oid partOid = getPartitionOidFromSequence(rel, part_seq); + Partition partTable = partitionOpen(rel, partOid, AccessShareLock); + Relation partRel = partitionGetRelation(rel, partTable); + PruningResult *subResult = NULL; + partRte->relid = partOid; + + if (list_length(restrictInfoList) == 0) { + subResult = getFullPruningResult(partRel); + } else { + subResult = partitionPruningForExpr(root, partRte, partRel, expr); + } + + if (PointerIsValid(subResult) && !PruningResultIsEmpty(subResult)) { + generateListFromPruningBM(subResult); + SubPartitionPruningResult *subPruning = makeNode(SubPartitionPruningResult); + subPruning->partSeq = part_seq; + subPruning->bm_selectedSubPartitions = subResult->bm_rangeSelectedPartitions; + subPruning->ls_selectedSubPartitions = subResult->ls_rangeSelectedPartitions; + result->ls_selectedSubPartitions = lappend(result->ls_selectedSubPartitions, + subPruning); + partIdx = bms_add_member(partIdx, part_seq); + } + + releaseDummyRelation(&partRel); + partitionClose(rel, partTable, AccessShareLock); + } + + // adjust + if (!bms_equal(result->bm_rangeSelectedPartitions, partIdx)) { + result->bm_rangeSelectedPartitions = partIdx; + generateListFromPruningBM(result); + } + } + return result; } @@ -601,6 +367,60 @@ PruningResult* singlePartitionPruningForRestrictInfo(Oid partitionOid, Relation pruningRes->bm_rangeSelectedPartitions = bms_make_singleton(partitionSeq); generateListFromPruningBM(pruningRes); + if (RelationIsSubPartitioned(rel)) { + SubPartitionPruningResult *subPartPruningRes = PreGetSubPartitionFullPruningResult(rel, partitionOid); + if (subPartPruningRes == NULL) { + return pruningRes; + } + subPartPruningRes->partSeq = partitionSeq; + pruningRes->ls_selectedSubPartitions = lappend(pruningRes->ls_selectedSubPartitions, subPartPruningRes); + } + return pruningRes; +} + +/* + * @@GaussDB@@ + * Target : data subpartition + * Brief : select * from subpartition (subpartition_name) + * Description : eliminate subpartitions which don't contain those tuple satisfy expression. + * return value : non-eliminated subpartitions. + */ +PruningResult* SingleSubPartitionPruningForRestrictInfo(Oid subPartitionOid, Relation rel, Oid partOid) +{ + int partitionSeq = 0; + int subPartitionSeq = 0; + PruningResult* pruningRes = NULL; + + if (!PointerIsValid(rel) || !OidIsValid(subPartitionOid) || !OidIsValid(partOid)) { + return NULL; + } + + /* shouldn't happen */ + if (!PointerIsValid(rel->partMap)) { + ereport(ERROR, (errmodule(MOD_OPT), + errcode(ERRCODE_OPTIMIZER_INCONSISTENT_STATE), + errmsg("relation of oid=\"%u\" is not partitioned table", rel->rd_id))); + } + pruningRes = makeNode(PruningResult); + pruningRes->state = PRUNING_RESULT_SUBSET; + + partitionSeq = getPartitionElementsIndexByOid(rel, partOid); + Partition part = partitionOpen(rel, partOid, NoLock); + Relation partRel = partitionGetRelation(rel, part); + subPartitionSeq = getPartitionElementsIndexByOid(partRel, subPartitionOid); + releaseDummyRelation(&partRel); + partitionClose(rel, part, NoLock); + + SubPartitionPruningResult *subPartPruningRes = makeNode(SubPartitionPruningResult); + subPartPruningRes->bm_selectedSubPartitions = + bms_add_member(subPartPruningRes->bm_selectedSubPartitions, subPartitionSeq); + subPartPruningRes->ls_selectedSubPartitions = + lappend_int(subPartPruningRes->ls_selectedSubPartitions, subPartitionSeq); + subPartPruningRes->partSeq = partitionSeq; + pruningRes->ls_selectedSubPartitions = lappend(pruningRes->ls_selectedSubPartitions, subPartPruningRes); + pruningRes->ls_rangeSelectedPartitions = lappend_int(pruningRes->ls_rangeSelectedPartitions, partitionSeq); + pruningRes->bm_rangeSelectedPartitions = bms_make_singleton(partitionSeq); + return pruningRes; } @@ -629,16 +449,13 @@ PruningResult* partitionPruningForExpr(PlannerInfo* root, RangeTblEntry* rte, Re context->GetPartitionMap = GetRelPartitionMap; context->pruningType = PruningPartition; - if (rel->partMap != NULL && (rel->partMap->type == PART_TYPE_LIST || rel->partMap->type == PART_TYPE_HASH)) + if (rel->partMap != NULL && (rel->partMap->type == PART_TYPE_LIST || rel->partMap->type == PART_TYPE_HASH)) { result = partitionEqualPruningWalker(rel->partMap->type, expr, context); - else + } else { result = partitionPruningWalker(expr, context); + } + if (result->exprPart != NULL || result->paramArg != NULL) { - if (!IF_OPEN_PARTITION_PRUNING) { - destroyPruningResult(result); - result = getFullPruningResult(rel); - return result; - } Param* paramArg = (Param *)copyObject(result->paramArg); destroyPruningResult(result); result = getFullPruningResult(rel); @@ -2542,3 +2359,14 @@ void ConstructConstFromValues(Datum* datums, const bool* nulls, Oid* attrs, cons return; } +SubPartitionPruningResult* GetSubPartitionPruningResult(List* selectedSubPartitions, int partSeq) +{ + ListCell* cell = NULL; + foreach (cell, selectedSubPartitions) { + SubPartitionPruningResult* subPartPruningResult = (SubPartitionPruningResult*)lfirst(cell); + if (subPartPruningResult->partSeq == partSeq) { + return subPartPruningResult; + } + } + return NULL; +} diff --git a/src/gausskernel/optimizer/util/restrictinfo.cpp b/src/gausskernel/optimizer/util/restrictinfo.cpp index 6a87655c0..2493c94f8 100644 --- a/src/gausskernel/optimizer/util/restrictinfo.cpp +++ b/src/gausskernel/optimizer/util/restrictinfo.cpp @@ -359,6 +359,12 @@ static RestrictInfo* make_restrictinfo_internal(Expr* clause, Expr* orclause, bo rc = memset_s(&restrictinfo->right_bucketsize, sizeof(BucketSize), 0, sizeof(BucketSize)); securec_check(rc, "\0", "\0"); + /* + * Mark whether this rinfo converted. + * default false, become true when type conversion happened during index matching process + */ + restrictinfo->converted = false; + return restrictinfo; } diff --git a/src/gausskernel/optimizer/util/subpartitionpruning.cpp b/src/gausskernel/optimizer/util/subpartitionpruning.cpp new file mode 100644 index 000000000..e27fefe3b --- /dev/null +++ b/src/gausskernel/optimizer/util/subpartitionpruning.cpp @@ -0,0 +1,577 @@ +/* + * Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors + * + * openGauss is licensed under Mulan PSL v2. + * You can use this software according to the terms and conditions of the Mulan PSL v2. + * You may obtain a copy of Mulan PSL v2 at: + * + * http://license.coscl.org.cn/MulanPSL2 + * + * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, + * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, + * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + * See the Mulan PSL v2 for more details. + * ------------------------------------------------------------------------- + * + * subpartitionpruning.cpp + * data subpartitionpartition + * + * IDENTIFICATION + * src/gausskernel/optimizer/util/subpartitionpruning.cpp + * + * ------------------------------------------------------------------------- + */ +#include "postgres.h" +#include "catalog/index.h" +#include "catalog/pg_partition_fn.h" +#include "optimizer/pruning.h" +#include "utils/partitionmap_gs.h" +#include "utils/rel_gs.h" + +SubPartitionPruningResult* getSubPartitionFullPruningResult(Relation relation) +{ + RangePartitionMap* rangePartitionMap = NULL; + ListPartitionMap* listPartitionMap = NULL; + HashPartitionMap* hashPartitionMap = NULL; + int i = 0; + + if (!PointerIsValid(relation) || !PointerIsValid(relation->partMap)) { + return NULL; + } + + Assert(relation->partMap->type == PART_TYPE_RANGE || + relation->partMap->type == PART_TYPE_LIST || + relation->partMap->type == PART_TYPE_HASH || + relation->partMap->type == PART_TYPE_INTERVAL); + + SubPartitionPruningResult* subPartPruningRes = makeNode(SubPartitionPruningResult); + if (relation->partMap->type == PART_TYPE_RANGE || relation->partMap->type == PART_TYPE_INTERVAL) { + rangePartitionMap = (RangePartitionMap *)relation->partMap; + + /* construct range bitmap */ + for (i = 0; i < rangePartitionMap->rangeElementsNum; i++) { + subPartPruningRes->bm_selectedSubPartitions = + bms_add_member(subPartPruningRes->bm_selectedSubPartitions, i); + subPartPruningRes->ls_selectedSubPartitions = lappend_int(subPartPruningRes->ls_selectedSubPartitions, i); + } + } else if (relation->partMap->type == PART_TYPE_LIST) { + listPartitionMap = (ListPartitionMap *)relation->partMap; + + for (i = 0; i < listPartitionMap->listElementsNum; i++) { + subPartPruningRes->bm_selectedSubPartitions = + bms_add_member(subPartPruningRes->bm_selectedSubPartitions, i); + subPartPruningRes->ls_selectedSubPartitions = lappend_int(subPartPruningRes->ls_selectedSubPartitions, i); + } + } else if (relation->partMap->type == PART_TYPE_HASH) { + hashPartitionMap = (HashPartitionMap *)relation->partMap; + + for (i = 0; i < hashPartitionMap->hashElementsNum; i++) { + subPartPruningRes->bm_selectedSubPartitions = + bms_add_member(subPartPruningRes->bm_selectedSubPartitions, i); + subPartPruningRes->ls_selectedSubPartitions = lappend_int(subPartPruningRes->ls_selectedSubPartitions, i); + } + } + + return subPartPruningRes; +} + +SubPartitionPruningResult* PreGetSubPartitionFullPruningResult(Relation relation, Oid partitionid) +{ + Partition part = partitionOpen(relation, partitionid, AccessShareLock); + Relation partRelation = partitionGetRelation(relation, part); + + SubPartitionPruningResult *subPartPruningRes = getSubPartitionFullPruningResult(partRelation); + + releaseDummyRelation(&partRelation); + partitionClose(relation, part, AccessShareLock); + + return subPartPruningRes; +} + +PruningResult* getFullPruningResult(Relation relation) +{ + /* construct PrunningResult */ + PruningResult* pruningRes = NULL; + RangePartitionMap* rangePartitionMap = NULL; + ListPartitionMap* listPartitionMap = NULL; + HashPartitionMap* hashPartitionMap = NULL; + int i = 0; + + if (!PointerIsValid(relation) || !PointerIsValid(relation->partMap)) { + return NULL; + } + + AssertEreport(relation->partMap->type == PART_TYPE_RANGE || + relation->partMap->type == PART_TYPE_LIST || + relation->partMap->type == PART_TYPE_HASH || + relation->partMap->type == PART_TYPE_INTERVAL, + MOD_OPT, + "Unexpected partition map type: expecting RANGE or INTERVAL"); + pruningRes = makeNode(PruningResult); + pruningRes->state = PRUNING_RESULT_FULL; + if (relation->partMap->type == PART_TYPE_RANGE || relation->partMap->type == PART_TYPE_INTERVAL) { + rangePartitionMap = (RangePartitionMap*)relation->partMap; + + /* construct range bitmap */ + for (i = 0; i < rangePartitionMap->rangeElementsNum; i++) { + pruningRes->bm_rangeSelectedPartitions = bms_add_member(pruningRes->bm_rangeSelectedPartitions, i); + pruningRes->ls_rangeSelectedPartitions = lappend_int(pruningRes->ls_rangeSelectedPartitions, i); + if (RelationIsSubPartitioned(relation)) { + Oid partitionid = rangePartitionMap->rangeElements[i].partitionOid; + SubPartitionPruningResult *subPartPruningRes = + PreGetSubPartitionFullPruningResult(relation, partitionid); + if (subPartPruningRes == NULL) { + continue; + } + subPartPruningRes->partSeq = i; + pruningRes->ls_selectedSubPartitions = lappend(pruningRes->ls_selectedSubPartitions, subPartPruningRes); + } + } + + if (relation->partMap->type != PART_TYPE_INTERVAL) { + pruningRes->intervalOffset = 0; + pruningRes->intervalSelectedPartitions = NULL; + } + } else if (relation->partMap->type == PART_TYPE_LIST) { + listPartitionMap = (ListPartitionMap*)relation->partMap; + + for (i = 0; i < listPartitionMap->listElementsNum; i++) { + pruningRes->bm_rangeSelectedPartitions = bms_add_member(pruningRes->bm_rangeSelectedPartitions, i); + pruningRes->ls_rangeSelectedPartitions = lappend_int(pruningRes->ls_rangeSelectedPartitions, i); + if (RelationIsSubPartitioned(relation)) { + Oid partitionid = listPartitionMap->listElements[i].partitionOid; + SubPartitionPruningResult *subPartPruningRes = + PreGetSubPartitionFullPruningResult(relation, partitionid); + if (subPartPruningRes == NULL) { + continue; + } + subPartPruningRes->partSeq = i; + pruningRes->ls_selectedSubPartitions = lappend(pruningRes->ls_selectedSubPartitions, subPartPruningRes); + } + } + } else if (relation->partMap->type == PART_TYPE_HASH) { + hashPartitionMap = (HashPartitionMap*)relation->partMap; + + for (i = 0; i < hashPartitionMap->hashElementsNum; i++) { + pruningRes->bm_rangeSelectedPartitions = bms_add_member(pruningRes->bm_rangeSelectedPartitions, i); + pruningRes->ls_rangeSelectedPartitions = lappend_int(pruningRes->ls_rangeSelectedPartitions, i); + if (RelationIsSubPartitioned(relation)) { + Oid partitionid = hashPartitionMap->hashElements[i].partitionOid; + SubPartitionPruningResult *subPartPruningRes = + PreGetSubPartitionFullPruningResult(relation, partitionid); + if (subPartPruningRes == NULL) { + continue; + } + subPartPruningRes->partSeq = i; + pruningRes->ls_selectedSubPartitions = lappend(pruningRes->ls_selectedSubPartitions, subPartPruningRes); + } + } + } + + return pruningRes; +} + +/* + * Support partiton index unusable. + * check if the partition index is unusable. + */ +bool checkPartitionIndexUnusable(Oid indexOid, int partItrs, PruningResult* pruning_result) +{ + Oid heapRelOid; + Relation indexRel, heapRel; + bool partitionIndexUnusable = true; + ListCell* cell = NULL; + List* part_seqs = pruning_result->ls_rangeSelectedPartitions; + + if (pruning_result->expr == NULL) { + if (PointerIsValid(part_seqs)) + AssertEreport(partItrs == part_seqs->length, MOD_OPT, + "The number of partitions does not match that of pruning result."); + } + if (!OidIsValid(indexOid)) { + ereport(ERROR, + (errmodule(MOD_OPT), errcode(ERRCODE_OPTIMIZER_INCONSISTENT_STATE), + errmsg("invalid index oid to check for unusability"))); + } + + heapRelOid = IndexGetRelation(indexOid, false); + heapRel = relation_open(heapRelOid, NoLock); + indexRel = relation_open(indexOid, NoLock); + if (RelationIsGlobalIndex(indexRel)) { + partitionIndexUnusable = indexRel->rd_index->indisusable; + relation_close(heapRel, NoLock); + relation_close(indexRel, NoLock); + return partitionIndexUnusable; + } + + if (!RelationIsPartitioned(heapRel) || !RelationIsPartitioned(indexRel) || + (heapRel->partMap->type != PART_TYPE_RANGE && + heapRel->partMap->type != PART_TYPE_INTERVAL && + heapRel->partMap->type != PART_TYPE_LIST && + heapRel->partMap->type != PART_TYPE_HASH)) { + ereport(ERROR, (errmodule(MOD_OPT), + errcode(ERRCODE_OPTIMIZER_INCONSISTENT_STATE), + errmsg("relation %s is not partitioned when check partition index", RelationGetRelationName(heapRel)))); + } + + foreach (cell, part_seqs) { + Oid tablepartitionid = InvalidOid; + Oid indexpartitionid = InvalidOid; + Partition tablepart = NULL; + Partition indexpartition = NULL; + List* partitionIndexOidList = NIL; + int partSeq = lfirst_int(cell); + Relation tablepartrel = NULL; + + tablepartitionid = getPartitionOidFromSequence(heapRel, partSeq); + tablepart = partitionOpen(heapRel, tablepartitionid, AccessShareLock); + + /* get index partition and add it to a list for following scan */ + if (RelationIsSubPartitioned(heapRel)) { + ListCell *lc = NULL; + tablepartrel = partitionGetRelation(heapRel, tablepart); + SubPartitionPruningResult *subPartPruning = + GetSubPartitionPruningResult(pruning_result->ls_selectedSubPartitions, partSeq); + List *subpartList = subPartPruning->ls_selectedSubPartitions; + + foreach (lc, subpartList) + { + int subpartSeq = lfirst_int(lc); + Oid subpartitionid = getPartitionOidFromSequence(tablepartrel, subpartSeq); + Partition subpart = partitionOpen(tablepartrel, subpartitionid, AccessShareLock); + + partitionIndexOidList = PartitionGetPartIndexList(subpart); + if (!PointerIsValid(partitionIndexOidList)) { + ereport(ERROR, + (errmodule(MOD_OPT), errcode(ERRCODE_WRONG_OBJECT_TYPE), + errmsg("no local indexes found for partition %s", PartitionGetPartitionName(tablepart)))); + } + indexpartitionid = searchPartitionIndexOid(indexOid, partitionIndexOidList); + indexpartition = partitionOpen(indexRel, indexpartitionid, AccessShareLock); + + list_free_ext(partitionIndexOidList); + + // found a unusable index partition + if (!indexpartition->pd_part->indisusable) { + partitionIndexUnusable = false; + partitionClose(indexRel, indexpartition, AccessShareLock); + partitionClose(tablepartrel, subpart, AccessShareLock); + break; + } + + partitionClose(indexRel, indexpartition, AccessShareLock); + partitionClose(tablepartrel, subpart, AccessShareLock); + } + + releaseDummyRelation(&tablepartrel); + partitionClose(heapRel, tablepart, AccessShareLock); + if (!partitionIndexUnusable) + break; + } else { + partitionIndexOidList = PartitionGetPartIndexList(tablepart); + if (!PointerIsValid(partitionIndexOidList)) { + ereport(ERROR, (errmodule(MOD_OPT), + errcode(ERRCODE_WRONG_OBJECT_TYPE), + errmsg("no local indexes found for partition %s", PartitionGetPartitionName(tablepart)))); + } + indexpartitionid = searchPartitionIndexOid(indexOid, partitionIndexOidList); + list_free_ext(partitionIndexOidList); + indexpartition = partitionOpen(indexRel, indexpartitionid, AccessShareLock); + // found a unusable index partition + if (!indexpartition->pd_part->indisusable) { + partitionIndexUnusable = false; + partitionClose(indexRel, indexpartition, AccessShareLock); + partitionClose(heapRel, tablepart, AccessShareLock); + break; + } + + partitionClose(indexRel, indexpartition, AccessShareLock); + partitionClose(heapRel, tablepart, AccessShareLock); + } + } + + relation_close(heapRel, NoLock); + relation_close(indexRel, NoLock); + + return partitionIndexUnusable; +} + +static IndexesUsableType GetIndexesUsableType(int usable_partition_num, int unusable_partition_num, int iterators) +{ + IndexesUsableType ret; + + if (usable_partition_num == iterators) { + ret = INDEXES_FULL_USABLE; + } else if (usable_partition_num > 0 && unusable_partition_num > 0) { + ret = INDEXES_PARTIAL_USABLE; + } else { + ret = INDEXES_NONE_USABLE; + } + + return ret; +} + +static IndexesUsableType eliminate_subpartition_index_unusable(Relation heapRel, Relation indexRel, + PruningResult* inputPruningResult, PruningResult** indexUsablePruningResult, + PruningResult** indexUnusablePruningResult) +{ + PruningResult* outIndexUsable_pr = NULL; + PruningResult* outIndexUnusable_pr = NULL; + Bitmapset* outIndexUsable_bm = NULL; + Oid indexOid = RelationGetRelid(indexRel); + + List* part_seqs = inputPruningResult->ls_rangeSelectedPartitions; + ListCell* cell = NULL; + int idx = 0; + bool unusable = false; + + // first copy out 2 copies + outIndexUsable_pr = copyPruningResult(inputPruningResult); + outIndexUnusable_pr = copyPruningResult(inputPruningResult); + + // get the bm of outIndexUsable_pr, as we want to delete from it. + outIndexUsable_bm = outIndexUsable_pr->bm_rangeSelectedPartitions; + // free the bm of outIndexUnusable, + // as we remove from outIndexUsable and add into outIndexUnusable + bms_free_ext(outIndexUnusable_pr->bm_rangeSelectedPartitions); + outIndexUnusable_pr->bm_rangeSelectedPartitions = NULL; + + // this is the scaning loop for selected partitions + foreach (cell, part_seqs) { + Oid tablepartitionid = InvalidOid; + Oid indexpartitionid = InvalidOid; + Partition tablepart = NULL; + Partition indexpartition = NULL; + Relation tablepartrel = NULL; + List* partitionIndexOidList = NIL; + int partSeq = lfirst_int(cell); + + tablepartitionid = getPartitionOidFromSequence(heapRel, partSeq); + tablepart = partitionOpen(heapRel, tablepartitionid, AccessShareLock); + tablepartrel = partitionGetRelation(heapRel, tablepart); + + /* get index partition and add it to a list for following scan */ + ListCell *lc = NULL; + SubPartitionPruningResult *subPartPruning = + (SubPartitionPruningResult *)list_nth(inputPruningResult->ls_selectedSubPartitions, idx++); + List *subPartList = subPartPruning->ls_selectedSubPartitions; + + foreach (lc, subPartList) + { + int subPartSeq = lfirst_int(lc); + Oid subpartitionid = getPartitionOidFromSequence(tablepartrel, subPartSeq); + Partition subpart = partitionOpen(tablepartrel, subpartitionid, AccessShareLock); + + partitionIndexOidList = PartitionGetPartIndexList(subpart); + if (!PointerIsValid(partitionIndexOidList)) { + ereport(ERROR, + (errmodule(MOD_OPT), errcode(ERRCODE_WRONG_OBJECT_TYPE), + errmsg("no local indexes found for partition %s", PartitionGetPartitionName(tablepart)))); + } + indexpartitionid = searchPartitionIndexOid(indexOid, partitionIndexOidList); + indexpartition = partitionOpen(indexRel, indexpartitionid, AccessShareLock); + // found a unusable index partition + if (!indexpartition->pd_part->indisusable) { + unusable = true; + partitionClose(indexRel, indexpartition, AccessShareLock); + partitionClose(tablepartrel, subpart, AccessShareLock); + list_free_ext(partitionIndexOidList); + break; + } + + list_free_ext(partitionIndexOidList); + partitionClose(indexRel, indexpartition, AccessShareLock); + partitionClose(tablepartrel, subpart, AccessShareLock); + } + + releaseDummyRelation(&tablepartrel); + partitionClose(heapRel, tablepart, NoLock); + } + + relation_close(heapRel, NoLock); + relation_close(indexRel, NoLock); + if (unusable) { + outIndexUnusable_pr = copyPruningResult(inputPruningResult); + if (indexUnusablePruningResult != NULL) { + *indexUnusablePruningResult = outIndexUnusable_pr; + } + return INDEXES_NONE_USABLE; + } else { + outIndexUsable_pr = copyPruningResult(inputPruningResult); + if (indexUsablePruningResult != NULL) { + *indexUsablePruningResult = outIndexUsable_pr; + } + return INDEXES_FULL_USABLE; + } +} + + +/* + * @@GaussDB@@ + * Brief + * Description : wipe out partitions whose local indexes are unusable. + * return value: return a pruning result without the wiped, the wiped are output as unusableIndexPruningResult + */ +IndexesUsableType eliminate_partition_index_unusable(Relation heapRel, Relation indexRel, + PruningResult* inputPruningResult, PruningResult** indexUsablePruningResult, + PruningResult** indexUnusablePruningResult) +{ + IndexesUsableType ret; + int usable_partition_num = 0; + int unusable_partition_num = 0; + Bitmapset* outIndexUsable_bm = NULL; + Bitmapset* outIndexUnusable_bm = NULL; + PruningResult* outIndexUsable_pr = NULL; + PruningResult* outIndexUnusable_pr = NULL; + int iterators = bms_num_members(inputPruningResult->bm_rangeSelectedPartitions); + List* part_seqs = inputPruningResult->ls_rangeSelectedPartitions; + ListCell* cell = NULL; + Oid indexOid = RelationGetRelid(indexRel); + + // first copy out 2 copies + outIndexUsable_pr = copyPruningResult(inputPruningResult); + outIndexUnusable_pr = copyPruningResult(inputPruningResult); + + // get the bm of outIndexUsable_pr, as we want to delete from it. + outIndexUsable_bm = outIndexUsable_pr->bm_rangeSelectedPartitions; + // free the bm of outIndexUnusable, + // as we remove from outIndexUsable and add into outIndexUnusable + bms_free_ext(outIndexUnusable_pr->bm_rangeSelectedPartitions); + outIndexUnusable_pr->bm_rangeSelectedPartitions = NULL; + + // this is the scaning loop for selected partitions + foreach (cell, part_seqs) { + Oid tablepartitionid = InvalidOid; + Oid indexpartitionid = InvalidOid; + Partition tablepart = NULL; + Partition indexpartition = NULL; + List* partitionIndexOidList = NIL; + int partSeq = lfirst_int(cell); + + tablepartitionid = getPartitionOidFromSequence(heapRel, partSeq); + tablepart = partitionOpen(heapRel, tablepartitionid, AccessShareLock); + + /* get index partition and add it to a list for following scan */ + partitionIndexOidList = PartitionGetPartIndexList(tablepart); + if (!PointerIsValid(partitionIndexOidList)) { + ereport(ERROR, (errmodule(MOD_OPT), + errcode(ERRCODE_WRONG_OBJECT_TYPE), + errmsg("no local indexes found for partition %s", PartitionGetPartitionName(tablepart)))); + } + indexpartitionid = searchPartitionIndexOid(indexOid, partitionIndexOidList); + list_free_ext(partitionIndexOidList); + indexpartition = partitionOpen(indexRel, indexpartitionid, AccessShareLock); + // found a unusable index partition + if (!indexpartition->pd_part->indisusable) { + // delete partSeq from usable and add into unusable + if (!bms_is_member(partSeq, outIndexUsable_bm) || bms_is_member(partSeq, outIndexUnusable_bm)) { + ereport(ERROR, + (errmodule(MOD_OPT), + (errcode(ERRCODE_OPTIMIZER_INCONSISTENT_STATE), + errmsg("bit map error when searching for unusable index partition")))); + } + outIndexUsable_bm = bms_del_member(outIndexUsable_bm, partSeq); + outIndexUnusable_bm = bms_add_member(outIndexUnusable_bm, partSeq); + } + + /* + * Already hold parent table lock, it's safe to release lock. + */ + partitionClose(indexRel, indexpartition, AccessShareLock); + partitionClose(heapRel, tablepart, AccessShareLock); + } + + // result check + usable_partition_num = bms_num_members(outIndexUsable_bm); + unusable_partition_num = bms_num_members(outIndexUnusable_bm); + if (usable_partition_num + unusable_partition_num != iterators || + bms_overlap(outIndexUsable_bm, outIndexUnusable_bm)) { + ereport(ERROR, (errmodule(MOD_OPT), + errcode(ERRCODE_OPTIMIZER_INCONSISTENT_STATE), + errmsg("bit map error after searching for unusable index partition"))); + } + + // set the return value + ret = GetIndexesUsableType(usable_partition_num, unusable_partition_num, iterators); + + // set back the bit map + if (usable_partition_num > 0) { + outIndexUsable_pr->bm_rangeSelectedPartitions = outIndexUsable_bm; + generateListFromPruningBM(outIndexUsable_pr); + // set the output + if (indexUsablePruningResult != NULL) { + *indexUsablePruningResult = outIndexUsable_pr; + } + } + // set back the bit map + if (unusable_partition_num > 0) { + outIndexUnusable_pr->bm_rangeSelectedPartitions = outIndexUnusable_bm; + generateListFromPruningBM(outIndexUnusable_pr); + // set the output + if (indexUnusablePruningResult != NULL) { + *indexUnusablePruningResult = outIndexUnusable_pr; + } + } + + relation_close(heapRel, NoLock); + relation_close(indexRel, NoLock); + + return ret; +} + +/* + * @@GaussDB@@ + * Brief + * Description : wipe out partitions whose local indexes are unusable. + * return value: return a pruning result without the wiped, the wiped are output as unusableIndexPruningResult + */ +IndexesUsableType eliminate_partition_index_unusable(Oid indexOid, PruningResult* inputPruningResult, + PruningResult** indexUsablePruningResult, PruningResult** indexUnusablePruningResult) +{ + IndexesUsableType ret; + Oid heapRelOid; + Relation indexRel, heapRel; + int iterators = bms_num_members(inputPruningResult->bm_rangeSelectedPartitions); + List* part_seqs = inputPruningResult->ls_rangeSelectedPartitions; + + if (inputPruningResult->expr == NULL) { + if (PointerIsValid(part_seqs)) + AssertEreport(part_seqs->length == iterators, MOD_OPT, ""); + } + // sanity check + if (!OidIsValid(indexOid)) { + ereport(ERROR, (errmodule(MOD_OPT), + errcode(ERRCODE_OPTIMIZER_INCONSISTENT_STATE), + errmsg("invalid index oid to check for unusability"))); + } + heapRelOid = IndexGetRelation(indexOid, false); + + heapRel = relation_open(heapRelOid, NoLock); + indexRel = relation_open(indexOid, NoLock); + /* Global partition index Just return FULL or NONE */ + if (RelationIsGlobalIndex(indexRel)) { + ret = indexRel->rd_index->indisusable ? INDEXES_FULL_USABLE : INDEXES_NONE_USABLE; + relation_close(heapRel, NoLock); + relation_close(indexRel, NoLock); + return ret; + } + + if (!RelationIsPartitioned(heapRel) || !RelationIsPartitioned(indexRel)) { + ereport(ERROR, (errmodule(MOD_OPT), + errcode(ERRCODE_OPTIMIZER_INCONSISTENT_STATE), + errmsg("relation %s is not partitioned", RelationGetRelationName(heapRel)))); + } + + if (RelationIsSubPartitioned(heapRel)) { + return eliminate_subpartition_index_unusable(heapRel, indexRel, + inputPruningResult, + indexUsablePruningResult, + indexUnusablePruningResult); + } else { + return eliminate_partition_index_unusable(heapRel, indexRel, + inputPruningResult, + indexUsablePruningResult, + indexUnusablePruningResult); + } +} diff --git a/src/gausskernel/process/globalplancache/globalplancache.cpp b/src/gausskernel/process/globalplancache/globalplancache.cpp index 1ac93854c..8674aa730 100644 --- a/src/gausskernel/process/globalplancache/globalplancache.cpp +++ b/src/gausskernel/process/globalplancache/globalplancache.cpp @@ -1022,8 +1022,10 @@ void GlobalPlanCache::CleanUpByTime() gpckey_list = lappend(gpckey_list, dest_gpckey); /* should not be long */ - if (gpckey_list->length >= maxlen_gpckey_list) + if (gpckey_list->length >= maxlen_gpckey_list) { + hash_seq_term(&hash_seq); break; + } } } LWLockRelease(GetMainLWLockByIndex(lock_id)); diff --git a/src/gausskernel/process/globalplancache/globalplancache_inval.cpp b/src/gausskernel/process/globalplancache/globalplancache_inval.cpp index 70a9e1b69..9c2568249 100644 --- a/src/gausskernel/process/globalplancache/globalplancache_inval.cpp +++ b/src/gausskernel/process/globalplancache/globalplancache_inval.cpp @@ -53,6 +53,7 @@ bool GlobalPlanCache::MsgCheck(const SharedInvalidationMessage *msg) bool GlobalPlanCache::NeedDropEntryByLocalMsg(CachedPlanSource* plansource, int tot, const int *idx, const SharedInvalidationMessage *msgs) { + Oid database_id = plansource->gpc.key->env.plainenv.database_id; for (int j = 0; j < tot; j++) { const SharedInvalidationMessage *msg = &msgs[idx[j]]; @@ -61,7 +62,7 @@ bool GlobalPlanCache::NeedDropEntryByLocalMsg(CachedPlanSource* plansource, int if (msg->id >= 0) { - if (msg->cc.dbId == u_sess->proc_cxt.MyDatabaseId || msg->cc.dbId == InvalidOid) { + if (msg->cc.dbId == database_id || msg->cc.dbId == InvalidOid) { if (msg->cc.id == PROCOID) { CheckInvalItemDependency(plansource, msg->cc.id, msg->cc.hashValue); } else if (msg->cc.id == NAMESPACEOID || msg->cc.id == OPEROID || msg->cc.id == AMOPOPID) { @@ -69,12 +70,12 @@ bool GlobalPlanCache::NeedDropEntryByLocalMsg(CachedPlanSource* plansource, int } } } else if (msg->id == SHAREDINVALRELCACHE_ID) { - if (msg->rc.dbId == u_sess->proc_cxt.MyDatabaseId || msg->rc.dbId == InvalidOid) + if (msg->rc.dbId == database_id || msg->rc.dbId == InvalidOid) { CheckRelDependency(plansource, msg->rc.relId); } } else if (msg->id == SHAREDINVALPARTCACHE_ID) { - if (msg->pc.dbId == u_sess->proc_cxt.MyDatabaseId || msg->pc.dbId == InvalidOid) { + if (msg->pc.dbId == database_id || msg->pc.dbId == InvalidOid) { CheckRelDependency(plansource, msg->pc.partId); } } @@ -129,7 +130,10 @@ void GlobalPlanCache::InvalMsg(const SharedInvalidationMessage *msgs, int n) while ((entry = (GPCEntry *)hash_seq_search(&hash_seq)) != NULL) { Assert (entry->val.plansource != NULL); - if (entry->val.plansource->gpc.key->env.plainenv.database_id != u_sess->proc_cxt.MyDatabaseId) { + /* for standby mode, Invalid Msg send by xlog thread, but xlog thread didn't set db id into MyDatabaseId. + So we need check each plan's db id by gpc'key in NeedDropEntryByLocalMsg latter */ + if (pmState == PM_RUN && + entry->val.plansource->gpc.key->env.plainenv.database_id != u_sess->proc_cxt.MyDatabaseId) { continue; } diff --git a/src/gausskernel/process/globalplancache/globalplancache_util.cpp b/src/gausskernel/process/globalplancache/globalplancache_util.cpp index 896de5622..b5cea6396 100644 --- a/src/gausskernel/process/globalplancache/globalplancache_util.cpp +++ b/src/gausskernel/process/globalplancache/globalplancache_util.cpp @@ -683,6 +683,11 @@ void set_func_expr_unique_id(PLpgSQL_function* func) case PLPGSQL_DTYPE_ARRAYELEM: set_id_expr(((PLpgSQL_arrayelem*)d)->subscript, &unique_id); break; + case PLPGSQL_DTYPE_ROW: + case PLPGSQL_DTYPE_RECORD: { + PLpgSQL_row* row = (PLpgSQL_row*)d; + set_id_expr(row->default_val, &unique_id); + } break; default: break; } diff --git a/src/gausskernel/process/job/Makefile b/src/gausskernel/process/job/Makefile index f1db6af1f..3b4f0eae9 100644 --- a/src/gausskernel/process/job/Makefile +++ b/src/gausskernel/process/job/Makefile @@ -29,6 +29,6 @@ ifneq "$(MAKECMDGOALS)" "clean" endif endif endif -OBJS = job_scheduler.o job_worker.o +OBJS = job_scheduler.o job_worker.o gs_job_manager.o gs_job_calendar.o include $(top_srcdir)/src/gausskernel/common.mk diff --git a/src/gausskernel/process/job/gs_job_calendar.cpp b/src/gausskernel/process/job/gs_job_calendar.cpp new file mode 100644 index 000000000..c5cae66ba --- /dev/null +++ b/src/gausskernel/process/job/gs_job_calendar.cpp @@ -0,0 +1,1524 @@ +/* + * Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors + * + * openGauss is licensed under Mulan PSL v2. + * You can use this software according to the terms and conditions of the Mulan PSL v2. + * You may obtain a copy of Mulan PSL v2 at: + * + * http://license.coscl.org.cn/MulanPSL2 + * + * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, + * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, + * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + * See the Mulan PSL v2 for more details. + * ------------------------------------------------------------------------- + * + * gs_job_calendar.cpp + * Calendaring syntax for dbe jobs. + * + * IDENTIFICATION + * src/gausskernel/process/job/gs_job_calendar.cpp + * + * ------------------------------------------------------------------------- + */ + + #include "postgres.h" + #include "miscadmin.h" + #include "utils/builtins.h" + #include "utils/dbe_scheduler.h" + +/* + * repeat_interval = frequency_clause + * [; interval=?] [; bymonth=?] [; byweekno=?] + * [; byyearday=?] [; bymonthday=?] [; byday=?] + * [; byhour=?] [; byminute=?] [; bysecond=?] + * + * frequency_clause = "FREQ" "=" frequency + * frequency = "YEARLY" | "MONTHLY" | "WEEKLY" | "DAILY" | + * "HOURLY" | "MINUTELY" | "SECONDLY" + * + * Note: + * POSIX time (tm) used in this section has following flags: + * int tm_sec Seconds [0,60]. (with leap second!!) + * int tm_min Minutes [0,59]. + * int tm_hour Hour [0,23]. + * int tm_mday Day of month [1,31]. + * int tm_mon Month of year [0,11]. (not ISO standard!! [1,12]) + * int tm_year Years since 1900. + * int tm_wday Day of week [0,6] (Sunday =0). (not ISO standard!! sun =7) + * int tm_yday Day of year [0,365]. (not ISO standard!! [1,366]) + * int tm_isdst Daylight Savings flag. + * + */ + +/* Initialize calendaring fields */ +static bool IsLegalIntervalStr(const char* str, bool numeric_only = false); +static char *get_calendar_clause_val(char **tokens, const char *clause, bool numeric_only = false); +static char **tokenize_str(char *src, const char *delims, int fields); +static int validate_field_names(char **toks); + +/* + * Interpreter functions + * Interpret calendaring syntax. + */ +static bool get_calendar_freqency(Calendar calendar, char **tokens); +static void get_calendar_n_interval(Calendar calendar, char **tokens); +static char *get_calendar_bymonth_val(Calendar calendar, char **tokens); +static void get_calendar_bymonth(Calendar calendar, char **tokens); +static void get_calendar_byweekno(Calendar calendar, char **tokens); /* unsupported */ +static void get_calendar_byyearday(Calendar calendar, char **tokens); /* unsupported */ +static void get_calendar_bydate(Calendar calendar, char **tokens); /* unsupported */ +static char *get_calendar_bymonthday_val(Calendar calendar, char **tokens); +static void get_calendar_bymonthday(Calendar calendar, char **tokens); +static void get_calendar_byday(Calendar calendar, char **tokens); /* unsupported */ +static char *get_calendar_byhour_val(Calendar calendar, char **tokens); +static void get_calendar_byhour(Calendar calendar, char **tokens); +static char *get_calendar_byminute_val(Calendar calendar, char **tokens); +static void get_calendar_byminute(Calendar calendar, char **tokens); +static char *get_calendar_bysecond_val(Calendar calendar, char **tokens); +static void get_calendar_bysecond(Calendar calendar, char **tokens); +Calendar interpret_calendar_interval(char *calendar_str); /* interpreter main */ + +/* + * Evaluation functions + * Calculate calendaring interval. + */ +static Interval *get_calendar_period(Calendar calendar, int num_of_period = 1); +static void copy_calendar_dates(TimestampTz *timeline, int nvals, int cnt); +static bool validate_calendar_monthday(int year, int month, int mday); +static void fastforward_calendar_period(Calendar calendar, TimestampTz *start_date, TimestampTz date_after); +static bool recheck_calendar_period(Calendar calendar, TimestampTz start_date, TimestampTz next_date); +static int timestamp_cmp_func(const void *dt1, const void *dt2); +static TimestampTz get_next_calendar_period(Calendar calendar, TimestampTz base_date); +static bool find_nearest_calendar_time(Calendar calendar, TimestampTz *timeline, TimestampTz start, int cnt, + TimestampTz *nearest); + +/* Calendaring Interval Calculator */ +static void prepare_calendar_period(Calendar calendar, TimestampTz base_date, TimestampTz *timeline); +static void evaluate_calendar_bymonth(Calendar calendar, TimestampTz *timeline, int *cnt); +static void evaluate_calendar_byweekno(Calendar calendar, TimestampTz *timeline, int *cnt); /* unsupported */ +static void evaluate_calendar_byyearday(Calendar calendar, TimestampTz *timeline, int *cnt); /* unsupported */ +static void evaluate_calendar_bymonthday(Calendar calendar, TimestampTz *timeline, int *cnt); +static void evaluate_calendar_byhour(Calendar calendar, TimestampTz *timeline, int *cnt); /* sub_timeline */ +static void evaluate_calendar_byminute(Calendar calendar, TimestampTz *timeline, int *cnt); /* sub_timeline */ +static void evaluate_calendar_bysecond(Calendar calendar, TimestampTz *timeline, int *cnt); /* sub_timeline */ +static bool evaluate_calendar_period(Calendar calendar, TimestampTz *timeline, TimestampTz *sub_timeline, + TimestampTz start_date, TimestampTz *next_date); +static TimestampTz evaluate_calendar_interval(Calendar calendar, TimestampTz start_date); /* evaluate main */ + +/* + * @brief IsLegalIntervalStr + * Is interval legal? + * @param str + * @param numeric_only + * @return true legal + * @return false illegal + */ +static bool IsLegalIntervalStr(const char* str, bool numeric_only) +{ + size_t NBytes = (unsigned int)strlen(str); + if (NBytes > (MAX_CALENDAR_FIELD_LEN)) { + return false; + } + + /* numeric input recognize comma, space and minus sign */ + if (numeric_only) { + for (size_t i = 0; i < NBytes; i++) { + if (!isdigit(str[i]) && str[i] != ',' && str[i] != ' ' && str[i] != '-') { + return false; + } + } + return true; + } + + for (size_t i = 0; i < NBytes; i++) { + /* check whether the character is correct */ + if (IsIllegalIntervalCharacter(str[i])) { + return false; + } + } + return true; +} + + +/* + * @brief get_calendar_clause + * Get calendar clause and return its value; + * @param tokens calendar interval tokens + * @param clause clause name + * @return char* value + */ +static char *get_calendar_clause_val(char **tokens, const char *clause, bool numeric_only) +{ + char *val = NULL; + for (int i = 0; i < MAX_CALENDAR_FIELDS; i += 2) { + if (tokens[i] != NULL && pg_strcasecmp(tokens[i], clause) == 0) { + val = tokens[i + 1]; /* get clause's value */ + break; + } + } + if (val == NULL) { + return NULL; + } + + if (!IsLegalIntervalStr(val, numeric_only)) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_OPERATE_FAILED), + errmsg("Fail to evaluate calendaring string."), + errdetail("Invalid value string for clause \'%s\'", clause), errcause("N/A"), + erraction("Please modify the calendaring string."))); + } + return val; +} + +/* + * @brief get_calendar_freqency + * Get frequency_clause value. + * frequency_clause = "FREQ" "=" ( predefined_frequency | user_defined_frequency ) + * predefined_frequency = "YEARLY" | "MONTHLY" | "WEEKLY" | "DAILY" | "HOURLY" | "MINUTELY" | "SECONDLY" + * user_defined_frequency = named_schedule + * @param calendar + * @param tokens + * @return true clause exists + * @return false clause absent + */ +static bool get_calendar_freqency(Calendar calendar, char **tokens) +{ + char *val = get_calendar_clause_val(tokens, "freq", false); + if (val == NULL) { + return false; + } + + if (pg_strcasecmp(val, "yearly") == 0) { + calendar->frequency = YEARLY; + } else if (pg_strcasecmp(val, "monthly") == 0) { + calendar->frequency = MONTHLY; + } else if (pg_strcasecmp(val, "weekly") == 0) { + calendar->frequency = WEEKLY; + } else if (pg_strcasecmp(val, "daily") == 0) { + calendar->frequency = DAILY; + } else if (pg_strcasecmp(val, "hourly") == 0) { + calendar->frequency = HOURLY; + } else if (pg_strcasecmp(val, "minutely") == 0) { + calendar->frequency = MINUTELY; + } else if (pg_strcasecmp(val, "secondly") == 0) { + calendar->frequency = SECONDLY; + } else { + pfree_ext(tokens); + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_OPERATE_FAILED), + errmsg("Fail to evaluate calendaring string."), + errdetail("Invalid frequency value \'%s\'.", val), errcause("N/A"), + erraction("Please modify the calendaring string."))); + } + return true; +} + +/* + * @brief get_calendar_n_interval + * Get interval_clause. + * interval_clause = "INTERVAL" "=" intervalnum + * intervalnum = 1 through 99 + * @param calendar + * @param tokens + */ +static void get_calendar_n_interval(Calendar calendar, char **tokens) +{ + calendar->interval = 1; /* we ALWAYS set interval to 1 */ + char *val = get_calendar_clause_val(tokens, "interval", true); + if (val == NULL) { + return; + } + + int num = atoi(val); + if (num < 1 || num > MAX_CALENDAR_INTERVAL_NUM) { + pfree_ext(tokens); + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_OPERATE_FAILED), + errmsg("Fail to evaluate calendaring string."), + errdetail("Interval \'%d\' not in range [1, 99].", num), errcause("N/A"), + erraction("Please modify the calendaring string."))); + } + calendar->interval = num; +} + +static char *get_calendar_bymonth_val(Calendar calendar, char **tokens) +{ + char *val = get_calendar_clause_val(tokens, "bymonth", false); + if (val != NULL) { + /* apply bymonth rule if bymonth is specified */ + return val; + } + + if (calendar->frequency > MONTHLY) { + /* If we have higher frequency, every month is possible */ + for (int i = 0; i < MONTHS_PER_YEAR; i++) { + calendar->bymonth[i] = i + 1; + } + calendar->month_len = MONTHS_PER_YEAR; + calendar->date_depth *= calendar->month_len; + } else if (calendar->frequency < MONTHLY) { + /* If we have lower frquency, sync with start date value, fill it later */ + calendar->month_len = 0; + } else { + /* Frequency is MONTHLY, try optimize */ + int mod = (calendar->interval >= MONTHS_PER_YEAR) ? calendar->interval % MONTHS_PER_YEAR : calendar->interval; + if (mod == 0) { + mod = MONTHS_PER_YEAR; + } + /* We need the start month to figure out the ACTUAL month list, set it to negative and deal with it later */ + calendar->month_len = (MONTHS_PER_YEAR % mod == 0) ? MONTHS_PER_YEAR / mod : MONTHS_PER_YEAR; + calendar->date_depth *= calendar->month_len; + calendar->month_len *= -1; + calendar->bymonth[0] = mod; + } + return NULL; +} + +/* + * @brief get_calendar_bymonth + * Get bymonth_clause. + * bymonth_clause = "BYMONTH" "=" monthlist + * monthlist = month ( "," month)* + * month = numeric_month | char_month + * numeric_month = 1 | 2 | 3 ... 12 + * char_month = "JAN" | "FEB" | "MAR" | "APR" | "MAY" | "JUN" | "JUL" | "AUG" | "SEP" | "OCT" | "NOV" | "DEC" + * @param calendar + * @param tokens + */ +static void get_calendar_bymonth(Calendar calendar, char **tokens) +{ + const char *month_str[] = {"JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"}; + char *val = get_calendar_bymonth_val(calendar, tokens); + if (val == NULL) { + return; + } + + char *context = NULL; + char *tok = strtok_s(val, ",", &context); + bool used[MONTHS_PER_YEAR] = {0}; + while (tok != NULL) { + int month = 0; + if (isalpha(tok[0])) { + /* char in */ + for (int j = 0; j < MONTHS_PER_YEAR; j++) { + if (pg_strcasecmp(val, month_str[j]) == 0) { + month = j + 1; + break; + } + } + if (month == 0) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_OPERATE_FAILED), + errmsg("Fail to evaluate calendaring string."), + errdetail("Invalid month token \'%s\'.", val), errcause("N/A"), + erraction("Please modify the calendaring string."))); + } + } else { + /* numeric in */ + month = atoi(tok); + if (month < 1 || month > MONTHS_PER_YEAR) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_OPERATE_FAILED), + errmsg("Fail to evaluate calendaring string."), + errdetail("Interval \'%d\' not in range [1, 12].", month), errcause("N/A"), + erraction("Please modify the calendaring string."))); + } + } + tok = strtok_s(NULL, ",", &context); + + if (used[month - 1]) { + continue; + } + used[month - 1] = true; + } + for (int i = 0; i < MONTHS_PER_YEAR; i++) { + if (used[i]) { + calendar->bymonth[calendar->month_len] = i + 1; + calendar->month_len++; + } + } + calendar->date_depth *= (calendar->month_len == 0) ? 1 : calendar->month_len; + calendar->byfields |= INTERVAL_BYMONTH; +} + +/* + * @brief get_calendar_byweekno + * Get byweekno_clause. + * byweekno_clause = "BYWEEKNO" "=" weeknumber_list + * weeknumber_list = weeknumber ( "," weeknumber)* + * weeknumber = [minus] weekno + * weekno = 1 through 53 + * @param calendar + * @param tokens + */ +static void get_calendar_byweekno(Calendar calendar, char **tokens) +{ + char *val = get_calendar_clause_val(tokens, "byweekno", true); + if (val != NULL) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_OPERATE_FAILED), + errmsg("Fail to evaluate calendaring string."), + errdetail("BYWEEKNO clause is currently unsupported."), errcause("N/A"), + erraction("Please modify the calendaring string."))); + } +} + +/* + * @brief get_calendar_byyearday + * Get byyearday_clause. + * byyearday_clause = "BYYEARDAY" "=" yearday_list + * yearday_list = yearday ( "," yearday)* + * yearday = [minus] yeardaynum + * yeardaynum = 1 through 366 + * @param calendar + * @param tokens + */ +static void get_calendar_byyearday(Calendar calendar, char **tokens) +{ + char *val = get_calendar_clause_val(tokens, "byyearday", true); + if (val != NULL) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_OPERATE_FAILED), + errmsg("Fail to evaluate calendaring string."), + errdetail("BYYEARDAY clause is currently unsupported."), errcause("N/A"), + erraction("Please modify the calendaring string."))); + } +} + +/* + * @brief get_calendar_bydate + * Get bydate_clause. + * bydate_clause = "BYDATE" "=" date_list + * date_list = date ( "," date)* + * date = [YYYY]MMDD [ offset | span ] + * @param calendar + * @param tokens + */ +static void get_calendar_bydate(Calendar calendar, char **tokens) +{ + char *val = get_calendar_clause_val(tokens, "byweekno", true); + if (val != NULL) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_OPERATE_FAILED), + errmsg("Fail to evaluate calendaring string."), + errdetail("BYDATE clause is currently unsupported."), errcause("N/A"), + erraction("Please modify the calendaring string."))); + } +} + + +static char *get_calendar_bymonthday_val(Calendar calendar, char **tokens) +{ + char *val = get_calendar_clause_val(tokens, "bymonthday", true); + if (val != NULL) { + /* apply bymonthday rule if bymonthday is specified */ + return val; + } + + if (calendar->frequency >= DAILY || calendar->frequency == WEEKLY) { + /* If we have higher frquency, every day is possible */ + for (int i = 0; i < DAYS_PER_MONTH + 1; i++) { + calendar->bymonthday[i] = i + 1; + } + calendar->monthday_len = DAYS_PER_MONTH + 1; + calendar->date_depth *= calendar->monthday_len; + } else { + /* If we have lower frquency, sync with start date value, fill it later */ + calendar->monthday_len = 0; + } + /* We cannot optimize any further since monthday/yearday are not perfectly periodic */ + return NULL; +} + + +/* + * @brief get_calendar_bymonth + * Get bymonthday_clause. + * bymonthday_clause = "BYMONTHDAY" "=" monthday_list + * monthday_list = monthday ( "," monthday)* + * monthday = [minus] monthdaynum + * monthdaynum = 1 through 31 + * @param calendar + * @param tokens + */ +static void get_calendar_bymonthday(Calendar calendar, char **tokens) +{ + char *val = get_calendar_bymonthday_val(calendar, tokens); + if (val == NULL) { + return; + } + + char *context = NULL; + char *tok = strtok_s(val, ",", &context); + bool used_p[DAYS_PER_MONTH + 1] = {0}; + bool used_n[DAYS_PER_MONTH + 1] = {0}; + while (tok != NULL) { + int monthday = atoi(tok); + if (monthday < -(DAYS_PER_MONTH + 1) || monthday > (DAYS_PER_MONTH + 1) || monthday == 0) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_OPERATE_FAILED), + errmsg("Fail to evaluate calendaring string."), + errdetail("Invalid monthday \'%d\'.", monthday), errcause("N/A"), + erraction("Please modify the calendaring string."))); + } + tok = strtok_s(NULL, ",", &context); + + /* considering both positive and negative parts */ + if (monthday > 0 && used_p[monthday - 1]) { + continue; + } + if (monthday < 0 && used_n[(-monthday) - 1]) { + continue; + } + + if (monthday > 0) { + used_p[monthday - 1] = true; + } + if (monthday < 0) { + used_n[(-monthday) - 1] = true; + } + } + /* there is no point of making two seperate loops for all monthdays, may refactor later. */ + for (int i = 0; i <= DAYS_PER_MONTH; i++) { + if (used_p[i]) { + calendar->bymonthday[calendar->monthday_len] = i + 1; + calendar->monthday_len++; + } + } + for (int i = DAYS_PER_MONTH; i >= 0; i--) { + if (used_n[i]) { + calendar->bymonthday[calendar->monthday_len] = -(i + 1); + calendar->monthday_len++; + } + } + calendar->date_depth *= (calendar->monthday_len == 0) ? 1 : calendar->monthday_len; + calendar->byfields |= INTERVAL_BYMONTHDAY; +} + +/* + * @brief get_calendar_byday + * Get byday_clause. + * byday_clause = "BYDAY" "=" byday_list + * byday_list = byday ( "," byday)* + * byday = [weekdaynum] day + * weekdaynum = [minus] daynum + * daynum = 1 through 53 -- yearly + * daynum = 1 through 5 -- monthly + * day = "MON" | "TUE" | "WED" | "THU" | "FRI" | "SAT" | "SUN" + * @param calendar + * @param tokens + */ +static void get_calendar_byday(Calendar calendar, char **tokens) +{ + char *val = get_calendar_clause_val(tokens, "byday", true); + if (val != NULL) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_OPERATE_FAILED), + errmsg("Fail to evaluate calendaring string."), + errdetail("BYDAY clause is currently unsupported."), errcause("N/A"), + erraction("Please modify the calendaring string."))); + } +} + + +static char *get_calendar_byhour_val(Calendar calendar, char **tokens) +{ + char *val = get_calendar_clause_val(tokens, "byhour", true); + if (val != NULL) { + /* apply byhour rule if byhour is specified */ + return val; + } + + if (calendar->frequency > HOURLY) { + /* If we have higher frequency, every hour is possible */ + for (int i = 0; i < HOURS_PER_DAY; i++) { + calendar->byhour[i] = i; + } + calendar->hour_len = HOURS_PER_DAY; + calendar->time_depth *= calendar->hour_len; + } else if (calendar->frequency < HOURLY) { + /* If we have lower frequency, sync with start date value, fill it later */ + calendar->hour_len = 0; + } else { + /* frequency matched, try optimize */ + int mod = (calendar->interval >= HOURS_PER_DAY) ? calendar->interval % HOURS_PER_DAY : calendar->interval; + if (mod == 0) { + mod = HOURS_PER_DAY; + } + /* We need the start hour to figure out the ACTUAL hour list, set it to negative and deal with it later */ + calendar->hour_len = (HOURS_PER_DAY % mod == 0) ? HOURS_PER_DAY / mod : HOURS_PER_DAY; + calendar->time_depth *= calendar->hour_len; + calendar->hour_len *= -1; + calendar->byhour[0] = mod; + } + return NULL; +} + +/* + * @brief get_calendar_byhour + * Get byhour_clause. + * byhour_clause = "BYHOUR" "=" hour_list + * hour_list = hour ( "," hour)* + * hour = 0 through 23 + * @param calendar + * @param tokens + */ +static void get_calendar_byhour(Calendar calendar, char **tokens) +{ + char *val = get_calendar_byhour_val(calendar, tokens); + if (val == NULL) { + return; + } + + char *context = NULL; + char *tok = strtok_s(val, ",", &context); + bool used[HOURS_PER_DAY] = {0}; + while (tok != NULL) { + int hour = atoi(tok); + if (hour < 0 || hour >= HOURS_PER_DAY) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_OPERATE_FAILED), + errmsg("Fail to evaluate calendaring string."), + errdetail("Invalid time \'%d\' o\' clock.", hour), errcause("N/A"), + erraction("Please modify the calendaring string."))); + } + tok = strtok_s(NULL, ",", &context); + + if (used[hour]) { + continue; + } + used[hour] = true; + } + for (int i = 0; i < HOURS_PER_DAY; i++) { + if (used[i]) { + calendar->byhour[calendar->hour_len] = i; + calendar->hour_len++; + } + } + calendar->time_depth *= (calendar->hour_len == 0) ? 1 : calendar->hour_len; + calendar->byfields |= INTERVAL_BYHOUR; +} + + +static char *get_calendar_byminute_val(Calendar calendar, char **tokens) +{ + char *val = get_calendar_clause_val(tokens, "byminute", true); + if (val != NULL) { + /* apply byminute rule if byminute is specified */ + return val; + } + + if (calendar->frequency > MINUTELY) { + /* If we have higher frequency, every minute is possible */ + for (int i = 0; i < MINS_PER_HOUR; i++) { + calendar->byminute[i] = i; + } + calendar->minute_len = MINS_PER_HOUR; + calendar->time_depth *= calendar->minute_len; + } else if (calendar->frequency < MINUTELY) { + /* If we have lower frequency, sync with start date value, fill it later */ + calendar->minute_len = 0; + } else { + /* frequency matched, try optimize */ + int mod = (calendar->interval >= MINS_PER_HOUR) ? calendar->interval % MINS_PER_HOUR : calendar->interval; + if (mod == 0) { + mod = MINS_PER_HOUR; + } + /* We need the start minute to figure out the ACTUAL minute list, set it to negative and deal with it later */ + calendar->minute_len = (MINS_PER_HOUR % mod == 0) ? MINS_PER_HOUR / mod : MINS_PER_HOUR; + calendar->time_depth *= calendar->minute_len; + calendar->minute_len *= -1; + calendar->byminute[0] = mod; + } + return NULL; +} + +/* + * @brief get_calendar_byminute + * Get byminute_clause. + * byminute_clause = "BYMINUTE" "=" minute_list + * minute_list = minute ( "," minute)* + * minute = 0 through 59 + * @param calendar + * @param tokens + */ +static void get_calendar_byminute(Calendar calendar, char **tokens) +{ + char *val = get_calendar_byminute_val(calendar, tokens); + if (val == NULL) { + return; + } + + char *context = NULL; + char *tok = strtok_s(val, ",", &context); + bool used[MINS_PER_HOUR] = {0}; + while (tok != NULL) { + int minute = atoi(tok); + if (minute < 0 || minute >= MINS_PER_HOUR) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_OPERATE_FAILED), + errmsg("Fail to evaluate calendaring string."), + errdetail("Invalid time \'%d\' minute [0, 59].", minute), errcause("N/A"), + erraction("Please modify the calendaring string."))); + } + tok = strtok_s(NULL, ",", &context); + + if (used[minute]) { + continue; + } + used[minute] = true; + } + for (int i = 0; i < MINS_PER_HOUR; i++) { + if (used[i]) { + calendar->byminute[calendar->minute_len] = i; + calendar->minute_len++; + } + } + calendar->time_depth *= (calendar->minute_len == 0) ? 1 : calendar->minute_len; + calendar->byfields |= INTERVAL_BYMINUTE; +} + +static char *get_calendar_bysecond_val(Calendar calendar, char **tokens) +{ + char *val = get_calendar_clause_val(tokens, "bysecond", true); + if (val != NULL) { + /* apply bysecond rule if bysecond is specified */ + return val; + } + + Assert(calendar->frequency <= SECONDLY); + /* Even higher frequency is unavailable */ + if (calendar->frequency < SECONDLY) { + /* If we have lower frequency, sync with start date value, fill it later */ + calendar->second_len = 0; + } else { + /* frequency matched, try optimize */ + int mod = (calendar->interval >= SECS_PER_MINUTE) ? calendar->interval % SECS_PER_MINUTE : calendar->interval; + if (mod == 0) { + mod = SECS_PER_MINUTE; + } + /* We need the start second to figure out the ACTUAL second list, set it to negative and deal with it later */ + calendar->second_len = (SECS_PER_MINUTE % mod == 0) ? SECS_PER_MINUTE / mod : SECS_PER_MINUTE; + calendar->time_depth *= calendar->second_len; + calendar->second_len *= -1; + calendar->bysecond[0] = mod; + } + return NULL; +} + +/* + * @brief get_calendar_bysecond + * Get bysecond_clause. + * bysecond_clause = "BYSECOND" "=" second_list + * second_list = second ( "," second)* + * second = 0 through 59 + * @param interval + * @param tokens + */ +static void get_calendar_bysecond(Calendar calendar, char **tokens) +{ + char *val = get_calendar_bysecond_val(calendar, tokens); + if (val == NULL) { + return; + } + + char *context = NULL; + char *tok = strtok_s(val, ",", &context); + bool used[SECS_PER_MINUTE] = {0}; + while (tok != NULL) { + int second = atoi(tok); + if (second < 0 || second >= SECS_PER_MINUTE) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_OPERATE_FAILED), + errmsg("Fail to evaluate calendaring string."), + errdetail("Invalid time \'%d\' seconds [0, 59].", second), errcause("N/A"), + erraction("Please modify the calendaring string."))); + } + tok = strtok_s(NULL, ",", &context); + + if (used[second]) { + continue; + } + used[second] = true; + } + for (int i = 0; i < SECS_PER_MINUTE; i++) { + if (used[i]) { + calendar->bysecond[calendar->second_len] = i; + calendar->second_len++; + } + } + calendar->time_depth *= (calendar->second_len == 0) ? 1 : calendar->second_len; + calendar->byfields |= INTERVAL_BYSECOND; +} + + +/* + * @brief tokenize_str + * Tokenize string with given delimiters. + * @param src source string + * @param delims delimiters + * @param fields number of tokens needed + * @return char** an array of tokens generated + */ +static char **tokenize_str(char *src, const char *delims, int fields) +{ + char **tokens = (char **)palloc0(sizeof(char *) * fields); + int count = 0; + char *context = NULL; + char *tok = strtok_s(src, delims, &context); + while (tok != NULL) { + tokens[count] = tok; + tok = strtok_s(NULL, delims, &context); + count++; + if (count >= fields) { + pfree_ext(tokens); + return NULL; + } + } + return tokens; +} + +static int validate_field_names(char **toks) +{ + bool valid = false; + const int name_pos_step = 2; + const char *supported_fields[SUPPORTED_FIELDS] = {"freq", "interval", "bymonth", "bymonthday", "byhour", + "byminute", "bysecond"}; + bool fields_used[SUPPORTED_FIELDS] = {0}; + for (int i = 0; i < MAX_CALENDAR_FIELDS; i += name_pos_step) { + for (int j = 0; j < SUPPORTED_FIELDS; j++) { + if (toks[i] == NULL) { + /* This is rare, usually token is not empty in the middle */ + valid = true; + break; + } + if (pg_strcasecmp(toks[i], supported_fields[j]) != 0) { + continue; + } + if (fields_used[j]) { + /* duplicate field name */ + valid = false; + } else { + fields_used[j] = true; + valid = true; + } + break; /* here is way pass guarding condition, break it */ + } + if (!valid) { + return i; + } + valid = false; + } + return -1; +} + +/* + * @brief interpret_calendar_interval + * The main interpreter of calendar interval. + * @param interval_str + * @return Calendar + */ +Calendar interpret_calendar_interval(char *calendar_str) +{ + Assert(calendar_str != NULL); + bool field = false; + + /* Make token lists */ + char **str_toks = tokenize_str(calendar_str, " =;", MAX_CALENDAR_FIELDS); + if (str_toks == NULL) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_OPERATE_FAILED), + errmsg("Fail to evaluate calendaring string."), + errdetail("Unable to parse calendaring string."), + errcause("Calendaring string is too long/invalid"), + erraction("Please modify the calendaring string."))); + } + + int pos = validate_field_names(str_toks); + if (pos >= 0) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_OPERATE_FAILED), + errmsg("Fail to evaluate calendaring string."), + errdetail("Incorrect/duplicate clause name '%s'.", str_toks[pos]), errcause("N/A"), + erraction("Please modify the calendaring string."))); + } + + /* Make Calendar */ + Calendar calendar = (Calendar)palloc0(sizeof(CalendarContext)); + + /* Main interpreter */ + field = get_calendar_freqency(calendar, str_toks); + if (!field || pg_strcasecmp(str_toks[0], "freq") != 0) { + /* + * Return NULL if frequency clause is missing(or not the first), + * possibly not a calendaring syntax + */ + pfree_ext(calendar); + return NULL; + } + get_calendar_n_interval(calendar, str_toks); + + /* by*** clauses */ + calendar->date_depth = 1; + calendar->time_depth = 1; + get_calendar_bymonth(calendar, str_toks); + get_calendar_byweekno(calendar, str_toks); + get_calendar_byyearday(calendar, str_toks); + get_calendar_bydate(calendar, str_toks); + get_calendar_bymonthday(calendar, str_toks); + get_calendar_byday(calendar, str_toks); + get_calendar_byhour(calendar, str_toks); + get_calendar_byminute(calendar, str_toks); + get_calendar_bysecond(calendar, str_toks); + + pfree_ext(str_toks); + return calendar; +} + +/* + * @brief get_calendar_period + * Get the calendar period in the form of Interval. + * @param calendar + * @param num_of_period + * @return Interval* + */ +static Interval *get_calendar_period(Calendar calendar, int num_of_period) +{ + const char *freq_str = NULL; + if (calendar->frequency == YEARLY) { + freq_str = "years"; + } else if (calendar->frequency == MONTHLY) { + freq_str = "months"; + } else if (calendar->frequency == WEEKLY) { + freq_str = "weeks"; + } else if (calendar->frequency == DAILY) { + freq_str = "days"; + } else if (calendar->frequency == HOURLY) { + freq_str = "hours"; + } else if (calendar->frequency == MINUTELY) { + freq_str = "minutes"; + } else if (calendar->frequency == SECONDLY) { + freq_str = "seconds"; + } else { + /* rely on upper level checks, which will eventually reach the MAX_CALENDAR_DEPTH and stop */ + return NULL; + } + + return calendar_construct_interval(freq_str, calendar->interval * num_of_period); +} + +/* + * @brief copy_calendar_dates + * copy batches of timestamps. + * @param dates target timestamp array + * @param nvals number of batches + * @param cnt number of existing values + * @param date_in optional, only valid when dates is empty + */ +static void copy_calendar_dates(TimestampTz *timeline, int nvals, int cnt) +{ + /* copy nvals number of existing timestamps */ + if (nvals <= 1) { + return; + } + for (int i = 0; i < cnt; i++) { + for (int j = 1; j < nvals; j++) { + timeline[i + (j * cnt)] = timeline[i]; + } + } +} + +/* + * @brief validate_calendar_monthday + * Check if a given monthday is valid. + * @param year + * @param month + * @param mday + * @return true + * @return false + */ +static bool validate_calendar_monthday(int year, int month, int mday) +{ + bool month_31[MONTHS_PER_YEAR] = {1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1}; + if ((!month_31[month - 1] && mday > 30) || (month_31[month - 1] && mday > 31)) { + return false; + } + if ((!isleap(year) && month == 2 && mday > 29) || (isleap(year) && month == 2 && mday > 28)) { + return false; + } + /* monthday can be negative */ + if (!isleap(year) && month == 2 && mday < -28) { + return false; + } + if (isleap(year) && month == 2 && mday < -29) { + return false; + } + if (!month_31[month - 1] && mday < -30) { + return false; + } + return true; +} + +/* + * @brief evaluate_calendar_bymonth + * Evaluate bymonth field. + * @param calendar + * @param dates + * @param cnt + */ +static void evaluate_calendar_bymonth(Calendar calendar, TimestampTz *timeline, int *cnt) +{ + Assert(*cnt <= calendar->date_depth); + if (*cnt == 0) { + return; + } + + Interval *interval = NULL; + int chunk = *cnt; + TimestampTz ref = truncate_calendar_date(CStringGetTextDatum("month"), calendar->ref_date); + + if (calendar->month_len == 0) { + calendar->bymonth[0] = calendar->tm.tm_mon; + calendar->month_len = 1; + } else if (calendar->month_len < 0) { + int mod = calendar->bymonth[0]; + int start = (calendar->tm.tm_mon - 1) - (((calendar->tm.tm_mon - 1) / mod) * mod) + 1; + calendar->month_len = 0; + while (start < MONTHS_PER_YEAR) { + calendar->bymonth[calendar->month_len] = start; + start += mod; + calendar->month_len++; + } + } + + *cnt = 0; + copy_calendar_dates(timeline, calendar->month_len, chunk); + for (int i = 0; i < calendar->month_len; i++) { + interval = calendar_construct_interval("months", calendar->bymonth[i] - 1); + for (int j = i * chunk; j < (i + 1) * chunk; j++) { + timeline[*cnt] = DatumGetTimestampTz(timestamp_pl_interval(timeline[j], interval)); + if (timestamp_cmp_internal(timeline[*cnt], ref) >= 0) { + (*cnt)++; + } + } + pfree_ext(interval); + } +} + +static void evaluate_calendar_byweekno(Calendar calendar, TimestampTz *timeline, int *cnt) +{ + return; +} + +static void evaluate_calendar_byyearday(Calendar calendar, TimestampTz *timeline, int *cnt) +{ + return; +} + +/* + * @brief evaluate_calendar_bymonthday + * Evaluate bymonthday field. + * @param calendar + * @param timeline + * @param cnt + */ +static void evaluate_calendar_bymonthday(Calendar calendar, TimestampTz *timeline, int *cnt) +{ + Assert(*cnt <= calendar->date_depth); + if (*cnt == 0) { + return; + } + + int chunk = *cnt; + Interval *interval = NULL; + TimestampTz ref = truncate_calendar_date(CStringGetTextDatum("day"), calendar->ref_date); + + if (calendar->monthday_len == 0) { + calendar->bymonthday[0] = calendar->tm.tm_mday; + calendar->monthday_len = 1; + } + + *cnt = 0; + int tz = 0; + fsec_t fsec; + struct pg_tm tt, *tm = &tt; /* POSIX time struct, see NOTE above */ + copy_calendar_dates(timeline, calendar->monthday_len, chunk); + for (int i = 0; i < calendar->monthday_len; i++) { + if (calendar->bymonthday[i] < 0) { + interval = calendar_construct_interval("months", 1); + } else { + interval = calendar_construct_interval("days", calendar->bymonthday[i] - 1); + } + for (int j = i * chunk; j < (i + 1) * chunk; j++) { + if (timestamp2tm(timeline[j], &tz, tm, &fsec, NULL, NULL) != 0) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), + errmsg("Cannot evaluate calendar clause."), errdetail("Invalid timeline."), + errcause("N/A"), erraction("Please modify the calendaring string."))); + } + if (!validate_calendar_monthday(tm->tm_year, tm->tm_mon, calendar->bymonthday[i])) { + /* skip if month day is invalid */ + continue; + } + timeline[*cnt] = DatumGetTimestampTz(timestamp_pl_interval(timeline[j], interval)); + if (calendar->bymonthday[i] <= 0) { + pfree_ext(interval); + interval = calendar_construct_interval("days", -(calendar->bymonthday[i])); + timeline[*cnt] = DatumGetTimestampTz(timestamp_mi_interval(timeline[j], interval)); + } + if (timestamp_cmp_internal(timeline[*cnt], ref) >= 0) { + (*cnt)++; + } + } + pfree_ext(interval); + } +} + +/* + * @brief evaluate_calendar_byhour + * Evaluate byhour field. + * @param calendar + * @param timeline + * @param cnt + */ +static void evaluate_calendar_byhour(Calendar calendar, TimestampTz *timeline, int *cnt) +{ + Assert(*cnt <= calendar->time_depth); + if (*cnt == 0) { + return; + } + + Interval *interval = NULL; + int chunk = *cnt; + TimestampTz ref = truncate_calendar_date(CStringGetTextDatum("hour"), calendar->ref_date); + + if (calendar->hour_len == 0) { + calendar->byhour[0] = calendar->tm.tm_hour; + calendar->hour_len = 1; + } else if (calendar->hour_len < 0) { + int mod = calendar->byhour[0]; + int start = calendar->tm.tm_hour - ((calendar->tm.tm_hour / mod) * mod); + calendar->hour_len = 0; + while (start < HOURS_PER_DAY) { + calendar->byhour[calendar->hour_len] = start; + start += mod; + calendar->hour_len++; + } + } + + *cnt = 0; + copy_calendar_dates(timeline, calendar->hour_len, chunk); + for (int i = 0; i < calendar->hour_len; i++) { + interval = calendar_construct_interval("hours", calendar->byhour[i]); + for (int j = i * chunk; j < (i + 1) * chunk; j++) { + timeline[*cnt] = DatumGetTimestampTz(timestamp_pl_interval(timeline[j], interval)); + if (timestamp_cmp_internal(timeline[*cnt], ref) >= 0) { + (*cnt)++; + } + } + pfree_ext(interval); + } +} + +/* + * @brief evaluate_calendar_byminute + * Evaluate byminunte field. + * @param calendar + * @param timeline + * @param cnt + */ +static void evaluate_calendar_byminute(Calendar calendar, TimestampTz *timeline, int *cnt) +{ + Assert(*cnt <= calendar->time_depth); + if (*cnt == 0) { + return; + } + + Interval *interval = NULL; + int chunk = *cnt; + TimestampTz ref = truncate_calendar_date(CStringGetTextDatum("minute"), calendar->ref_date); + + if (calendar->minute_len == 0) { + calendar->byminute[0] = calendar->tm.tm_min; + calendar->minute_len = 1; + } else if (calendar->minute_len < 0) { + int mod = calendar->byminute[0]; + int start = calendar->tm.tm_min - ((calendar->tm.tm_min / mod) * mod); + calendar->minute_len = 0; + while (start < MINS_PER_HOUR) { + calendar->byminute[calendar->minute_len] = start; + start += mod; + calendar->minute_len++; + } + } + + *cnt = 0; + copy_calendar_dates(timeline, calendar->minute_len, chunk); + for (int i = 0; i < calendar->minute_len; i++) { + interval = calendar_construct_interval("minutes", calendar->byminute[i]); + for (int j = i * chunk; j < (i + 1) * chunk; j++) { + timeline[*cnt] = DatumGetTimestampTz(timestamp_pl_interval(timeline[j], interval)); + if (timestamp_cmp_internal(timeline[*cnt], ref) >= 0) { + (*cnt)++; + } + } + pfree_ext(interval); + } +} + +/* + * @brief evaluate_calendar_bysecond + * Evaluate bysecond field. + * @param calendar + * @param timeline + * @param cnt + */ +static void evaluate_calendar_bysecond(Calendar calendar, TimestampTz *timeline, int *cnt) +{ + Assert(*cnt <= calendar->time_depth); + if (*cnt == 0) { + return; + } + + Interval *interval = NULL; + int chunk = *cnt; + TimestampTz ref = truncate_calendar_date(CStringGetTextDatum("second"), calendar->ref_date); + + if (calendar->second_len == 0) { + calendar->bysecond[0] = calendar->tm.tm_sec; + calendar->second_len = 1; + } else if (calendar->second_len < 0) { + int mod = calendar->bysecond[0]; + int start = calendar->tm.tm_sec - ((calendar->tm.tm_sec / mod) * mod); + calendar->second_len = 0; + while (start < SECS_PER_MINUTE) { + calendar->bysecond[calendar->second_len] = start; + start += mod; + calendar->second_len++; + } + } + + *cnt = 0; + copy_calendar_dates(timeline, calendar->second_len, chunk); + for (int i = 0; i < calendar->second_len; i++) { + interval = calendar_construct_interval("seconds", calendar->bysecond[i]); + for (int j = i * chunk; j < (i + 1) * chunk; j++) { + timeline[*cnt] = DatumGetTimestampTz(timestamp_pl_interval(timeline[j], interval)); + if (timestamp_cmp_internal(timeline[*cnt], ref) >= 0) { + (*cnt)++; + } + } + pfree_ext(interval); + } +} + +/* + * @brief fastforward_calendar_period + * Fastforward to the date right before the date after to save some computing power. + * @param calendar + * @param start_date + * @param date_after + */ +static void fastforward_calendar_period(Calendar calendar, TimestampTz *start_date, TimestampTz date_after) +{ + Interval *interval = calendar_construct_interval("second", 1); + if (timestamptz_cmp_internal(*start_date, date_after) >= 0) { + /* No rewind, no equal */ + calendar->ref_date = DatumGetTimestampTz(timestamp_pl_interval(*start_date, interval)); + pfree_ext(interval); + return; + } + + TimestampTz new_start_date; + Interval *period = get_calendar_period(calendar); + if (period == NULL) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), + errmsg("Cannot evaluate calendar clause."), errdetail("Broken interval clause."), + errcause("N/A"), erraction("Please modify the calendaring string."))); + } + Datum pace_datum = DirectFunctionCall2(interval_part, CStringGetTextDatum("epoch"), + PointerGetDatum(period)); + int pace = (int)DatumGetFloat8(pace_datum); + pfree_ext(period); + + long elapsed_sec = 0; + int elapsed_usec = 0; + TimestampDifference(*start_date, date_after, &elapsed_sec, &elapsed_usec); + + /* fastforward span in seconds = floor(elapsed / pace) * pace */ + int num_of_periods = (elapsed_sec / pace); + if (num_of_periods >= 1) { + Interval *ff_span = get_calendar_period(calendar, num_of_periods); + if (ff_span == NULL) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), + errmsg("Cannot evaluate calendar clause."), errdetail("Broken interval clause."), + errcause("N/A"), erraction("Please modify the calendaring string."))); + } + new_start_date = DatumGetTimestampTz(timestamp_pl_interval(*start_date, ff_span)); + pfree_ext(ff_span); + *start_date = new_start_date; + } + calendar->ref_date = DatumGetTimestampTz(timestamp_pl_interval(date_after, interval)); + pfree_ext(interval); +} + +/* + * @brief recheck_calendar_period + * Usually we need to double check if a given timestamp resonate with original frequency. + * @param calendar + * @param start_date + * @param next_date + * @return true resonate + * @return false does not resonate + */ +static bool recheck_calendar_period(Calendar calendar, TimestampTz start_date, TimestampTz next_date) +{ + const char *field_str = NULL; + int multiplier = 1; + if (calendar->frequency == YEARLY) { + field_str = "year"; + } else if (calendar->frequency == MONTHLY) { + field_str = "month"; + } else if (calendar->frequency == WEEKLY) { + field_str = "day"; + multiplier = DAYS_PER_WEEK; + } else if (calendar->frequency == DAILY) { + field_str = "day"; + } else if (calendar->frequency == HOURLY) { + field_str = "hour"; + } else if (calendar->frequency == MINUTELY) { + field_str = "minute"; + } else if (calendar->frequency == SECONDLY) { + field_str = "second"; + } else { + /* rely on upper level checks, which will eventually reach the MAX_CALENDAR_DEPTH and stop */ + return false; + } + + start_date = truncate_calendar_date(CStringGetTextDatum(field_str), start_date); + next_date = truncate_calendar_date(CStringGetTextDatum(field_str), next_date); + + int64 elapsed = (int)timestamp_diff_internal(cstring_to_text(field_str), start_date, next_date, true); + if (elapsed % (calendar->interval * multiplier) == 0) { + return true; + } + return false; +} + +/* + * @brief timestamp_cmp_func + * Compare func for qsort + * @param dt1 + * @param dt2 + * @return int + */ +static int timestamp_cmp_func(const void *dt1, const void *dt2) +{ + TimestampTz *t1 = (TimestampTz *)dt1; + TimestampTz *t2 = (TimestampTz *)dt2; + + return timestamp_cmp_internal(*t1, *t2); +} + +/* + * @brief find_nearest_calendar_time + * Find the nearest timestamp from all valid timestamps. + * @param calendar context + * @param timeline timestamp list + * @param start start time + * @param cnt number of valid final timestamps + * @param nearest out value + * @return true found + * @return false not found + */ +static bool find_nearest_calendar_time(Calendar calendar, TimestampTz *timeline, TimestampTz start, int cnt, + TimestampTz *nearest) +{ + /* sort all timestamp */ + qsort(timeline, cnt, sizeof(TimestampTz), timestamp_cmp_func); + + for (int i = 0; i < cnt; i++) { + /* Must greater than ref date */ + if (timestamp_cmp_internal(timeline[i], calendar->ref_date) >= 0 && + recheck_calendar_period(calendar, start, timeline[i])) { + *nearest = timeline[i]; + return true; + } + } + return false; +} + +/* + * @brief evaluate_calendar_period + * + * @param calendar + * @param period + * @param start_date + * @param next_date + * @return true success + * @return false fail + */ +static bool evaluate_calendar_period(Calendar calendar, TimestampTz *timeline, TimestampTz *sub_timeline, + TimestampTz start_date, TimestampTz *next_date) +{ + int date_cnt = 1; + evaluate_calendar_bymonth(calendar, timeline, &date_cnt); + evaluate_calendar_byweekno(calendar, timeline, &date_cnt); + evaluate_calendar_byyearday(calendar, timeline, &date_cnt); + evaluate_calendar_bymonthday(calendar, timeline, &date_cnt); + + /* sort the timeline so that we can break immediately once we find any timestamps later */ + qsort(timeline, date_cnt, sizeof(TimestampTz), timestamp_cmp_func); + + /* + * Use the sorted timeline (date part) to generate matching timestamp for each day. + */ + int time_cnt; + for (int i = 0; i < date_cnt; i++) { + time_cnt = 1; + sub_timeline[0] = timeline[i]; /* starting date */ + evaluate_calendar_byhour(calendar, sub_timeline, &time_cnt); + evaluate_calendar_byminute(calendar, sub_timeline, &time_cnt); + evaluate_calendar_bysecond(calendar, sub_timeline, &time_cnt); + if (find_nearest_calendar_time(calendar, sub_timeline, start_date, time_cnt, next_date)) { + return true; + } + } + return false; +} + +/* + * @brief prepare_calendar_period + * + * @param calendar + * @param base_date + * @param timeline + */ +static void prepare_calendar_period(Calendar calendar, TimestampTz base_date, TimestampTz *timeline) +{ + Assert(calendar != NULL); + Assert(calendar->frequency <= MAX_FREQ); + Assert(calendar->frequency >= YEARLY); + Assert(calendar->date_depth > 0); + Assert(calendar->time_depth > 0); + timeline[0] = truncate_calendar_date(CStringGetTextDatum("year"), TimestampTzGetDatum(base_date)); + + if (calendar->date_depth > MAX_CALENDAR_DATE_DEPTH || calendar->time_depth > SECS_PER_DAY) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), + errmsg("Cannot evaluate calendar clause."), + errdetail("The scheduler run out of attempts to find a valid date in the foreesable future."), + errcause("N/A"), erraction("Please modify the calendaring string."))); + } + + fsec_t fsec; + struct pg_tm tt, *tm = &tt; /* POSIX time struct, see NOTE above */ + int tz; + if (timestamp2tm(base_date, &tz, tm, &fsec, NULL, NULL) != 0) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), + errmsg("Cannot evaluate calendar clause."), errdetail("Fail to truncate start date."), + errcause("N/A"), erraction("Please modify the calendaring string."))); + } + calendar->tm = tt; + calendar->fsec = fsec; + + if (timestamp_cmp_internal(timeline[0], calendar->ref_date) > 0) { + calendar->ref_date = timeline[0]; + } +} + +/* + * @brief get_next_calendar_period + * Get the next calendar period. Usually a year, but can be multiple years if interval is large. + * @param calendar + * @param base_date + * @return TimestampTz + */ +static TimestampTz get_next_calendar_period(Calendar calendar, TimestampTz base_date) +{ + int span_multiplier = 1; + if (calendar->frequency == MONTHLY && calendar->interval > MONTHS_PER_YEAR) { + span_multiplier = calendar->interval / MONTHS_PER_YEAR; + } + Interval *span = calendar_construct_interval("years", span_multiplier); + base_date = DatumGetTimestampTz(timestamp_pl_interval(base_date, span)); + pfree_ext(span); + return base_date; +} + + +/* + * @brief evaluate_calendar_interval + * Calculate next date base on start date. + * @param calendar + * @param start_date + * @return char* + */ +static TimestampTz evaluate_calendar_interval(Calendar calendar, TimestampTz start_date) +{ + if (calendar == NULL) { + return start_date; + } + + int try_count = 0; + TimestampTz next_date = start_date; + TimestampTz base_date = start_date; /* base date of each period, update with loop */ + TimestampTz *timeline = (TimestampTz *)palloc0(calendar->date_depth * sizeof(TimestampTz)); + TimestampTz *sub_timeline = (TimestampTz *)palloc0((calendar->time_depth + 1) * sizeof(TimestampTz)); + while (try_count < YEARS_PER_CENTURY) { + prepare_calendar_period(calendar, base_date, timeline); + if (evaluate_calendar_period(calendar, timeline, sub_timeline, start_date, &next_date)) { + break; + } + base_date = get_next_calendar_period(calendar, base_date); + CHECK_FOR_INTERRUPTS(); + try_count++; + } + + pfree_ext(timeline); + pfree_ext(sub_timeline); + if (try_count >= YEARS_PER_CENTURY) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), + errmsg("Cannot evaluate calendar clause."), errdetail("Calender clause too deep."), + errcause("N/A"), erraction("Please modify the calendaring string."))); + } + return next_date; +} + +/* + * @brief evaluate_repeat_interval + * Calculate next date base on start date and calendar string. + * @param calendar_in + * @param base_time + * @return Datum + */ +Datum evaluate_repeat_interval(Datum calendar_in, Datum start_date, Datum date_after) +{ + char *calendar_str = text_to_cstring(DatumGetTextP(calendar_in)); + if (strlen(calendar_str) > (size_t)MAX_CALENDAR_STR_LEN) { + pfree_ext(calendar_str); + return calendar_in; + } + + TimestampTz start_date_raw = DatumGetTimestampTz(start_date); + Calendar calendar = interpret_calendar_interval(calendar_str); + + /* remove fsec part */ + start_date_raw = truncate_calendar_date(CStringGetTextDatum("second"), TimestampTzGetDatum(start_date_raw)); + + /* fastforward start date if date_after is specified */ + if (calendar != NULL) { + /* remove fsec part */ + date_after = truncate_calendar_date(CStringGetTextDatum("second"), TimestampTzGetDatum(date_after)); + fastforward_calendar_period(calendar, &start_date_raw, DatumGetTimestampTz(date_after)); + } + TimestampTz next_date = evaluate_calendar_interval(calendar, start_date_raw); + + pfree_ext(calendar_str); + if (calendar == NULL) { + /* return if not a calendar interval expression, `calendar` is already freed */ + return calendar_in; + } else { + pfree_ext(calendar); + } + return TimestampTzGetDatum(next_date); +} + +/* + * @brief evaluate_calendar_string_internal + * eval_calendar_string interface. + * @return Datum + */ +Datum evaluate_calendar_string_internal(PG_FUNCTION_ARGS) +{ + Datum string = PG_GETARG_DATUM(0); /* calendar string */ + Datum start_date = PG_GETARG_DATUM(1); /* start date */ + Datum date_after = PG_GETARG_DATUM(2); /* return date after */ + Datum new_next_date = evaluate_repeat_interval(string, start_date, date_after); + PG_RETURN_DATUM(new_next_date); +} diff --git a/src/gausskernel/process/job/gs_job_manager.cpp b/src/gausskernel/process/job/gs_job_manager.cpp new file mode 100644 index 000000000..521f65b8d --- /dev/null +++ b/src/gausskernel/process/job/gs_job_manager.cpp @@ -0,0 +1,1748 @@ +/* + * Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors + * + * openGauss is licensed under Mulan PSL v2. + * You can use this software according to the terms and conditions of the Mulan PSL v2. + * You may obtain a copy of Mulan PSL v2 at: + * + * http://license.coscl.org.cn/MulanPSL2 + * + * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, + * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, + * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + * See the Mulan PSL v2 for more details. + * ------------------------------------------------------------------------- + * + * gs_job_manager.cpp + * Functions to run/stop/execute/drop dbe jobs. + * + * IDENTIFICATION + * src/gausskernel/process/job/gs_job_manager.cpp + * + * ------------------------------------------------------------------------- + */ + +#include "postgres.h" +#include "knl/knl_variable.h" +#include +#include "access/sysattr.h" +#include "access/xact.h" +#include "catalog/indexing.h" +#include "catalog/namespace.h" +#include "catalog/objectaccess.h" +#include "catalog/pg_collation.h" +#include "catalog/pg_type.h" +#include "commands/alter.h" +#include "commands/comment.h" +#include "commands/dbcommands.h" +#include "commands/extension.h" +#include "commands/schemacmds.h" +#include "executor/spi.h" +#include "funcapi.h" +#include "mb/pg_wchar.h" +#include "miscadmin.h" +#include "pgxc/pgxc.h" +#include "tcop/utility.h" +#include "utils/builtins.h" +#include "utils/dbe_scheduler.h" +#include "utils/fmgroids.h" +#include "utils/formatting.h" +#include "utils/lsyscache.h" +#include "utils/rel.h" +#include "utils/rel_gs.h" +#include "utils/snapmgr.h" +#include "access/heapam.h" +#include "access/tableam.h" +#include "catalog/pg_job.h" +#include "catalog/pg_job_proc.h" +#include "catalog/pg_authid.h" +#include "catalog/pg_database.h" +#include "catalog/gs_job_argument.h" +#include "catalog/gs_job_attribute.h" +#include "fmgr.h" +#include "utils/syscache.h" +#include "pgxc/execRemote.h" + +/* Run job methods */ +static bool run_sql_job(Datum job_name, StringInfoData *buf); +static bool run_procedure_job(Datum job_name, StringInfoData *buf); +static char *run_external_job(Datum job_name); + +/* + * @brief delete by sysscan + * Perform a simple heap delete. + * @param rel Target relation + * @param object_name Delete by key + * @param attribute_number Attribute number + */ +static void delete_by_sysscan(Relation rel, const Datum object_name, AttrNumber attribute_number) +{ + ScanKeyInfo scan_key_info; + scan_key_info.attribute_value = object_name; + scan_key_info.attribute_number = attribute_number; + scan_key_info.procedure = F_TEXTEQ; + List *tuples = search_by_sysscan_1(rel, &scan_key_info); + if (tuples == NULL) { + return; + } + ListCell *lc = NULL; + foreach (lc, tuples) { + HeapTuple tuple = (HeapTuple)lfirst(lc); + simple_heap_delete(rel, &tuple->t_self); + } + list_free_deep(tuples); +} + +/* + * @brief delete_by_syscache + * Perform a simple heap delete by searching syscache. + * @param rel Target relation + * @param object_name Delete by key + * @param cache_id Cache ID + */ +static void delete_by_syscache(Relation rel, const Datum object_name, SysCacheIdentifier cache_id) +{ + CatCList *tuples = SearchSysCacheList1(cache_id, object_name); + if (tuples == NULL) { + return; + } + for (int i = 0; i < tuples->n_members; i++) { + HeapTuple tuple = &(tuples->members[i]->tuple); + simple_heap_delete(rel, &tuple->t_self); + } + ReleaseSysCacheList(tuples); +} + +/* + * @brief delete_from_attribute + * Delete from gs_job_attribute. + * @param object_name + */ +void delete_from_attribute(const Datum object_name) +{ + Relation gs_job_attribute_rel = heap_open(GsJobAttributeRelationId, RowExclusiveLock); + delete_by_syscache(gs_job_attribute_rel, object_name, JOBATTRIBUTENAME); + heap_close(gs_job_attribute_rel, NoLock); +} + +/* + * @brief delete_from_argument + * Delete from gs_job_argument. + * @param job_name + */ +void delete_from_argument(const Datum object_name) +{ + Relation rel = heap_open(GsJobArgumentRelationId, RowExclusiveLock); + delete_by_syscache(rel, object_name, JOBARGUMENTNAME); + heap_close(rel, NoLock); +} + +/* + * @brief delete_from_job + * Delete from pg_job. + * @param job_name + */ +void delete_from_job(const Datum job_name) +{ + Relation rel = heap_open(PgJobRelationId, RowExclusiveLock); + delete_by_sysscan(rel, job_name, Anum_pg_job_job_name); + heap_close(rel, NoLock); +} + +/* + * @brief delete_from_job_proc + * Delete from pg_job_proc. + * @param job_name + */ +void delete_from_job_proc(const Datum object_name) +{ + Relation rel = heap_open(PgJobProcRelationId, RowExclusiveLock); + delete_by_sysscan(rel, object_name, Anum_pg_job_proc_job_name); + heap_close(rel, NoLock); +} + +/* + * @brief search_from_pg_job + * Search from pg_job. + * @param pg_job_rel pg_job relation + * @param job_name + * @return HeapTuple result + */ +HeapTuple search_from_pg_job(Relation pg_job_rel, Datum job_name) +{ + ScanKeyInfo scan_key_info; + scan_key_info.attribute_value = job_name; + scan_key_info.attribute_number = Anum_pg_job_job_name; + scan_key_info.procedure = F_TEXTEQ; + List *tuples = search_by_sysscan_1(pg_job_rel, &scan_key_info); + if (tuples == NIL) { + return NULL; + } + Assert(list_length(tuples) == 1); + HeapTuple oldtuple = NULL; + if (list_length(tuples) == 1) { + oldtuple = (HeapTuple)linitial(tuples); + } else { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_UNDEFINED_OBJECT), + errmsg("find %d tuples match job_name %s in system table pg_job.", list_length(tuples), + TextDatumGetCString(job_name)), + errdetail("N/A"), errcause("job name is not exist"), erraction("Please check job_name"))); + } + list_free(tuples); + return oldtuple; +} + +/* + * @brief update_pg_job + * Update pg_job. + * @param job_name + * @param attribute_number + * @param attribute_value + */ +void update_pg_job(Datum job_name, int attribute_number, Datum attribute_value, bool isnull) +{ + Datum values[Natts_pg_job]; + bool nulls[Natts_pg_job]; + bool replaces[Natts_pg_job]; + errno_t rc = memset_s(replaces, sizeof(replaces), 0, sizeof(replaces)); + securec_check_c(rc, "\0", "\0"); + replaces[attribute_number - 1] = true; + if (!isnull) { + values[attribute_number - 1] = attribute_value; + nulls[attribute_number - 1] = false; + } else { + nulls[attribute_number - 1] = true; + } + + Relation pg_job_rel = heap_open(PgJobRelationId, RowExclusiveLock); + HeapTuple oldtuple = search_from_pg_job(pg_job_rel, job_name); + if (!HeapTupleIsValid(oldtuple)) { + heap_close(pg_job_rel, NoLock); + return; + } + + HeapTuple newtuple = heap_modify_tuple(oldtuple, RelationGetDescr(pg_job_rel), values, nulls, replaces); + simple_heap_update(pg_job_rel, &newtuple->t_self, newtuple); + CatalogUpdateIndexes(pg_job_rel, newtuple); + heap_close(pg_job_rel, NoLock); + heap_freetuple_ext(newtuple); + heap_freetuple_ext(oldtuple); +} + +/* + * @brief update_pg_job_multi_columns + * Update multple columns from pg_job. + * @param job_name + * @param attribute_numbers attributes needed to be updated + * @param attribute_values attribute values(corresponds to attribute numbers) + * @param n number of columns + */ +void update_pg_job_multi_columns(const Datum job_name, const int *attribute_numbers, const Datum *attribute_values, + const bool *isnull, int n) +{ + Datum values[Natts_pg_job]; + bool nulls[Natts_pg_job]; + bool replaces[Natts_pg_job]; + error_t rc = memset_s(replaces, sizeof(replaces), 0, sizeof(replaces)); + securec_check_c(rc, "\0", "\0"); + for (int i = 0; i < n; i++) { + replaces[attribute_numbers[i] - 1] = true; + if (!isnull[i]) { + values[attribute_numbers[i] - 1] = attribute_values[i]; + nulls[attribute_numbers[i] - 1] = false; + } else { + nulls[attribute_numbers[i] - 1] = true; + } + } + + + Relation pg_job_rel = heap_open(PgJobRelationId, RowExclusiveLock); + HeapTuple oldtuple = search_from_pg_job(pg_job_rel, job_name); + if (!HeapTupleIsValid(oldtuple)) { + heap_close(pg_job_rel, NoLock); + return; + } + + HeapTuple newtuple = heap_modify_tuple(oldtuple, RelationGetDescr(pg_job_rel), values, nulls, replaces); + simple_heap_update(pg_job_rel, &newtuple->t_self, newtuple); + CatalogUpdateIndexes(pg_job_rel, newtuple); + heap_close(pg_job_rel, NoLock); + heap_freetuple_ext(newtuple); + heap_freetuple_ext(oldtuple); +} + +/* + * @brief search_related_attribute + * Search all attributes that is somewhat related to the object. + * @param gs_job_attribute_rel + * @param attribute_name + * @param attribute_value + * @return List* List of related attribute tuples. + */ +List *search_related_attribute(Relation gs_job_attribute_rel, Datum attribute_name, Datum attribute_value) +{ + /* Job itself does not need related attributes */ + if (attribute_name == (Datum)0) { + return NIL; + } + ScanKeyInfo scan_key_info1; + scan_key_info1.attribute_value = attribute_name; + scan_key_info1.attribute_number = Anum_gs_job_attribute_attribute_name; + scan_key_info1.procedure = F_TEXTEQ; + ScanKeyInfo scan_key_info2; + scan_key_info2.attribute_value = attribute_value; + scan_key_info2.attribute_number = Anum_gs_job_attribute_attribute_value; + scan_key_info2.procedure = F_TEXTEQ; + List *tuples = search_by_sysscan_2(gs_job_attribute_rel, &scan_key_info1, &scan_key_info2); + return tuples; +} + +/* + * @brief disable_related_jobs_force + */ +static void disable_related_jobs_force(Relation gs_job_attribute_rel, List *disable_job_names) +{ + ListCell *lc = NULL; + foreach (lc, disable_job_names) { + Datum job_name = PointerGetDatum(lfirst(lc)); + update_pg_job(job_name, Anum_pg_job_enable, BoolGetDatum(false)); + } +} + +/* + * @brief reset_job_class + * + * @param gs_job_attribute_rel + * @param disable_job_names + * @param attribute_name + */ +static void reset_job_class(Relation gs_job_attribute_rel, List *disable_job_names, Datum attribute_name, bool force) +{ + if (!force && disable_job_names) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("Job class is refered by at least one job."), + errdetail("N/A"), errcause("job class is used"), + erraction("Please pass force true or drop job first"))); + } + + ListCell *lc = NULL; + foreach (lc, disable_job_names) { + Datum job_name = PointerGetDatum(lfirst(lc)); + update_attribute(job_name, attribute_name, CStringGetTextDatum("DEFAULT_JOB_CLASS")); + } +} + +/* + * @brief search_related_jobs + * search all related jobs. + * @param object_name + * @param attribute_name + * @param force + * @return List* + */ +static List *search_related_jobs(Relation gs_job_attribute_rel, Datum object_name, Datum attribute_name, bool force) +{ + List *tuples = search_related_attribute(gs_job_attribute_rel, attribute_name, object_name); + // If force is set to FALSE, a class being dropped must not be referenced by any jobs, otherwise an error occurs. + if (!force && list_length(tuples) != 0) { + HeapTuple tuple = (HeapTuple)linitial(tuples); + bool isNull = false; + Datum related_name = + heap_getattr(tuple, Anum_gs_job_attribute_job_name, RelationGetDescr(gs_job_attribute_rel), &isNull); + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_OBJECT_IN_USE), + errmsg("%s %s refered by job %s", TextDatumGetCString(attribute_name), + TextDatumGetCString(object_name), TextDatumGetCString(related_name)), + errdetail("N/A"), errcause("attribute is used"), + erraction("Please drop object %s", DatumGetPointer(object_name)))); + } + List *disable_job_names = NIL; + ListCell *lc = NULL; + foreach (lc, tuples) { + HeapTuple tuple = (HeapTuple)lfirst(lc); + bool isNull = false; + Datum disable_job_name = + heap_getattr(tuple, Anum_gs_job_attribute_job_name, RelationGetDescr(gs_job_attribute_rel), &isNull); + Assert(!isNull); + disable_job_names = lappend(disable_job_names, DatumGetPointer(PG_DETOAST_DATUM_COPY(disable_job_name))); + } + list_free_deep(tuples); + return disable_job_names; +} + +/* + * @brief drop_inline_program + * Drop inline program if exists. + * @param job_name + */ +void drop_inline_program(const Datum job_name) +{ + Datum attribute_name = CStringGetTextDatum("program_name"); + + Relation rel = heap_open(GsJobAttributeRelationId, RowExclusiveLock); + bool isnull = false; + Datum program_name = lookup_job_attribute(rel, job_name, attribute_name, &isnull, true); + heap_close(rel, NoLock); + if (!PointerIsValid(program_name)) { + return; + } + + char *program_name_str = TextDatumGetCString(program_name); + if (strncmp(INLINE_JOB_PROGRAM_PREFIX, program_name_str, strlen(INLINE_JOB_PROGRAM_PREFIX)) == 0) { + delete_from_attribute(program_name); + delete_from_job_proc(program_name); + delete_from_argument(program_name); + } +} + +/* + * @brief drop_single_object_name + * Drop one object, disable all related objects. + * @param object_name + * @param object_type + * @param force + * @param simple when set to true, do not disable relatied objects + */ +static void drop_single_object_name(Datum object_name, const char *object_type, bool force) +{ + check_object_type_matched(object_name, object_type); + delete_from_attribute(object_name); + delete_from_job_proc(object_name); + delete_from_argument(object_name); + + Datum attribute_name; + if (pg_strcasecmp(object_type, "job_class") == 0) { + attribute_name = CStringGetTextDatum("job_class"); + } else if (pg_strcasecmp(object_type, "program") == 0) { + attribute_name = CStringGetTextDatum("program_name"); + } else if (pg_strcasecmp(object_type, "schedule") == 0) { + attribute_name = CStringGetTextDatum("schedule_name"); + } else { + Assert(false); + return; + } + + Relation gs_job_attribute_rel = heap_open(GsJobAttributeRelationId, RowExclusiveLock); + List *disable_job_names = search_related_jobs(gs_job_attribute_rel, object_name, attribute_name, force); + disable_related_jobs_force(gs_job_attribute_rel, disable_job_names); + if (pg_strcasecmp(object_type, "job_class") == 0 && list_length(disable_job_names) > 0) { + reset_job_class(gs_job_attribute_rel, disable_job_names, attribute_name, force); + } + heap_close(gs_job_attribute_rel, NoLock); + list_free_deep(disable_job_names); + disable_job_names = NIL; + pfree(DatumGetPointer(attribute_name)); +} + +/* + * @brief drop_single_job_class_internal + * Drop a single job class. + * Note: + * Dropping a job class requires the MANAGE SCHEDULER system privilege. + */ +void drop_single_job_class_internal(PG_FUNCTION_ARGS) +{ + check_object_is_visible(PG_GETARG_DATUM(0), false); + Datum job_class_name = PG_GETARG_DATUM(0); + char *job_class_str = TextDatumGetCString(job_class_name); + if (pg_strcasecmp(job_class_str, "DEFAULT_JOB_CLASS") == 0) { + return; + } + bool force = PG_GETARG_BOOL(1); + drop_single_object_name(job_class_name, "job_class", force); +} + +/* + * @brief drop_single_program_internal + * Drop a single program. + */ +void drop_single_program_internal(PG_FUNCTION_ARGS) +{ + check_object_is_visible(PG_GETARG_DATUM(0), false); + Datum program_name = PG_GETARG_DATUM(0); + + char *program_type_str = get_attribute_value_str(program_name, "program_type", AccessShareLock, true); + if (program_type_str == NULL) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_UNDEFINED_OBJECT), + errmsg("Cannot find program type of program %s.", TextDatumGetCString(program_name)), + errdetail("Invalid program format."), errcause("N/A"), + erraction("Please check the program name."))); + } + + if (pg_strcasecmp(program_type_str, EXTERNAL_JOB_TYPE) == 0) { + check_privilege(get_role_name_str(), CREATE_EXTERNAL_JOB_PRIVILEGE); + } + pfree_ext(program_type_str); + + bool force = PG_GETARG_BOOL(1); + drop_single_object_name(program_name, "program", force); +} + +/* + * @brief drop_single_schedule_internal + * Drop a single schedule. + */ +void drop_single_schedule_internal(PG_FUNCTION_ARGS) +{ + check_object_is_visible(PG_GETARG_DATUM(0), false); + Datum schedule_name = PG_GETARG_DATUM(0); + bool force = PG_GETARG_BOOL(1); + drop_single_object_name(schedule_name, "schedule", force); +} + +/* + * @brief drop_credential_internal + * Drop a single credential. + */ +void drop_credential_internal(PG_FUNCTION_ARGS) +{ + if (!superuser()) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), + errmsg("Fail to drop credential."), + errdetail("Insufficient privilege to drop credential."), errcause("N/A"), + erraction("Please login in with initial user or contact database administrator."))); + } + const Datum credential_name = PG_GETARG_DATUM(0); + check_object_type_matched(credential_name, "credential"); + bool force = PG_GETARG_BOOL(1); + if (!force) { + Relation gs_job_attribute_rel = heap_open(GsJobAttributeRelationId, RowExclusiveLock); + Datum credential_attribute_name = CStringGetTextDatum("credential_name"); + List *tuples = search_related_attribute(gs_job_attribute_rel, credential_attribute_name, credential_name); + pfree(DatumGetPointer(credential_attribute_name)); + credential_attribute_name = Datum(0); + if (list_length(tuples) > 0) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_OBJECT_IN_USE), + errmsg("Fail to drop credential."), + errdetail("Credential %s is refered by jobs.", TextDatumGetCString(credential_name)), + errcause("Credential is in use."), + erraction("Please set force flag to true or drop all associated jobs."))); + } + heap_close(gs_job_attribute_rel, NoLock); + } + delete_from_attribute(credential_name); +} + +/* + * @brief revoke_authorization + * revoke authorization. + * @param username + * @param privilege + * @param skip_disable for drop role only, we do not need to disable anything since all + * objects are dropped by then + */ +static void revoke_authorization(Datum username, Datum privilege, bool skip_disable = false) +{ + Relation gs_job_attribute_rel = heap_open(GsJobAttributeRelationId, RowExclusiveLock); + HeapTuple old_tuple = SearchSysCache2(JOBATTRIBUTENAME, username, privilege); + if (old_tuple == NULL) { + heap_close(gs_job_attribute_rel, NoLock); + return; + } + simple_heap_delete(gs_job_attribute_rel, &old_tuple->t_self); + ReleaseSysCache(old_tuple); + heap_close(gs_job_attribute_rel, NoLock); + + if (skip_disable) { + return; + } + + char *privilege_str = TextDatumGetCString(privilege); + char *username_str = TextDatumGetCString(username); + if (pg_strcasecmp(privilege_str, EXECUTE_ANY_PROGRAM_PRIVILEGE) == 0) { + disable_shared_job_from_owner(username_str); + } else if (pg_strcasecmp(privilege_str, RUN_EXTERNAL_JOB_PRIVILEGE) == 0) { + disable_external_job_from_owner(username_str); + } + pfree_ext(username_str); + pfree_ext(privilege_str); +} + +/* + * @brief revoke_user_authorization_internal + * Revoke a user's authorization. + */ +void revoke_user_authorization_internal(PG_FUNCTION_ARGS) +{ + const Datum username = get_role_datum(PG_GETARG_DATUM(0)); + const Datum privilege = PG_GETARG_DATUM(1); + if (!superuser()) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), + errmsg("Fail to revoke authorization."), + errdetail("Insufficient privilege to revoke authorization."), errcause("N/A"), + erraction("Please login in with initial user or contact database administrator."))); + } + check_authorization_valid(privilege); + revoke_authorization(username, privilege); +} + +/* + * @brief lookup_job_attribute + * Look up one attribute. + * @param rel gs_job_attribute relation + * @param object_name Object name(can be any job related objects) + * @param attribute The attribute we looking for + * @param isnull null pointer, mark whether the look up result is null + * @return Datum return the attribute value + */ +Datum lookup_job_attribute(Relation rel, Datum object_name, Datum attribute, bool *isnull, bool miss_ok) +{ + HeapTuple attribute_tuple = SearchSysCache2(JOBATTRIBUTENAME, object_name, attribute); + if (!HeapTupleIsValid(attribute_tuple)) { + if (miss_ok) { + return Datum(0); + } + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_UNDEFINED_OBJECT), + errmsg("Can not find attribute \'%s\' of object name \'%s\'.", TextDatumGetCString(attribute), + TextDatumGetCString(object_name)), + errdetail("N/A"), errcause("attribute is not exist"), erraction("Please check object name"))); + } + Datum attr = heap_getattr(attribute_tuple, Anum_gs_job_attribute_attribute_value, rel->rd_att, isnull); + Assert((*isnull && !PointerIsValid(attr)) || (!(*isnull) && PointerIsValid(attr))); + Datum attr_cpy = Datum(0); + if (PointerIsValid(attr)) { + attr_cpy = PointerGetDatum(PG_DETOAST_DATUM_COPY(attr)); + } + ReleaseSysCache(attribute_tuple); + + return attr_cpy; +} + +/* + * @brief batch_lookup_job_attribute + * Look up attribute in a batch with given attribute look up names. + * @param attributes Job attributes with attribute name pre-filled + * @param n Number of attributes wanted + */ +void batch_lookup_job_attribute(JobAttribute *attributes, int n) +{ + if (attributes == NULL) { + return; + } + + Relation rel = heap_open(GsJobAttributeRelationId, RowExclusiveLock); + for (int i = 0; i < n; i++) { + attributes[i].value = lookup_job_attribute(rel, attributes[i].object_name, attributes[i].name, + &attributes[i].null, false); + } + heap_close(rel, NoLock); +} + +/* + * @brief lookup_program_argument + * Look up one program argument. + * @param rel gs_job_argument relation + * @param job_name Job name + * @param program_name Program name + * @param position Position of the argument + * @param argument Job argument context + */ +void lookup_program_argument(Relation rel, Datum job_name, Datum program_name, int position, JobArgument *argument) +{ + HeapTuple argument_tuple = SearchSysCache2(JOBARGUMENTPOSITION, job_name, Int32GetDatum(position)); + if (!HeapTupleIsValid(argument_tuple)) { + argument_tuple = SearchSysCache2(JOBARGUMENTPOSITION, program_name, Int32GetDatum(position)); + if (!HeapTupleIsValid(argument_tuple)) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_UNDEFINED_OBJECT), + errmsg("Can not find argument info of object \'%s\'.", TextDatumGetCString(job_name)), + errdetail("N/A"), errcause("argument information not found"), + erraction("Please check object name"))); + } + } + bool isnull = true; + /* Name: type */ + Datum type = heap_getattr(argument_tuple, Anum_gs_job_argument_argument_type, rel->rd_att, &isnull); + if (!isnull) { + argument->argument_type = pstrdup((char *)type); + } else { + argument->argument_type = NULL; + } + + /* Datum: argument_value */ + Datum argument_value = heap_getattr(argument_tuple, Anum_gs_job_argument_argument_value, rel->rd_att, &isnull); + if (!isnull) { + argument->argument_value = TextDatumGetCString(argument_value); + } else { + argument->argument_value = NULL; + } + + if (argument->argument_value != NULL) { + ReleaseSysCache(argument_tuple); + return; + } + + /* Datum: default_value */ + Datum default_value = heap_getattr(argument_tuple, Anum_gs_job_argument_default_value, rel->rd_att, &isnull); + if (!isnull) { + argument->argument_value = TextDatumGetCString(default_value); + } else { + argument->argument_value = NULL; + } + + if (argument->argument_value == NULL) { + ReleaseSysCache(argument_tuple); + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_UNDEFINED_OBJECT), + errmsg("Cannot get argument value of job %s.", TextDatumGetCString(job_name)), + errdetail("N/A"), errcause("argument information not found"), + erraction("Please check object name"))); + } + ReleaseSysCache(argument_tuple); +} + +/* + * @brief batch_lookup_program_argument + * Allow us to look up multiple arguments(all the available arguments) in a batch. + * @param job_name Job name + * @param program_name Program name + * @param number_of_arguments Number of arguments + */ +JobArgument *batch_lookup_program_argument(Datum job_name, Datum program_name, int number_of_arguments) +{ + if (number_of_arguments <= 0) { + return NULL; + } + JobArgument *arguments = (JobArgument *)palloc0(number_of_arguments * sizeof(JobArgument)); + Relation rel = heap_open(GsJobArgumentRelationId, AccessShareLock); + for (int i = 0; i < number_of_arguments; i++) { + lookup_program_argument(rel, job_name, program_name, i + 1, arguments + i); + if (arguments[i].argument_value == NULL) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_UNDEFINED_OBJECT), + errmsg("Can not find argument %d in system table gs_job_argument.", i + 1), + errdetail("N/A"), errcause("argument %d is not defined", i + 1), + erraction("Please check program arguments"))); + } + } + heap_close(rel, NoLock); + return arguments; +} + +/* + * @brief lookup_credential_username + * Look up credential username. + * @param credential_name + * @return char* + */ +char *lookup_credential_username(Datum job_name) +{ + bool use_default = false; + char *job_type_str = get_job_type(job_name, false); + bool is_shell_job = pg_strcasecmp(job_type_str, EXTERNAL_JOB_TYPE) == 0; + pfree_ext(job_type_str); + if (!is_shell_job) { + return NULL; + } + Datum credential_name = get_attribute_value(job_name, "credential_name", AccessShareLock, true, true); + if (credential_name == Datum(0)) { + use_default = true; + credential_name = CStringGetTextDatum(DEFAULT_CREDENTIAL_NAME); + } + char *attribute_value_str = get_attribute_value_str(credential_name, "object_type", AccessShareLock, true, true); + if (attribute_value_str == NULL || pg_strcasecmp(attribute_value_str, "credential") != 0) { + if (use_default) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_UNDEFINED_OBJECT), + errmsg("No database wise credential found."), + errdetail("Need to create default credential for database with name 'db_credential'"), + errcause("No credential found."), + erraction("Please create a default or custom credential."))); + return NULL; /* compiler happy */ + } + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_UNDEFINED_OBJECT), + errmsg("Fail to look up credential."), + errdetail("Credential specified does not exist."), + errcause("No credential found."), + erraction("Please check credential name."))); + } + pfree_ext(attribute_value_str); + char *username = get_attribute_value_str(credential_name, "username", AccessShareLock, false, false); + return username; +} + +/* + * @brief lookup_job_value + * Look up job values. + * @param job_name + * @return JobValue* + */ +JobValue *lookup_job_value(Datum job_name) +{ + Relation pg_job_rel = heap_open(PgJobRelationId, AccessShareLock); + HeapTuple tuple = search_from_pg_job(pg_job_rel, job_name); + if (!HeapTupleIsValid(tuple)) { + heap_close(pg_job_rel, AccessShareLock); + return NULL; + } + JobValue *job_value = (JobValue *)palloc0(sizeof(JobValue)); + bool isnull = false; + + job_value->end_date = DatumGetTimestamp(heap_getattr(tuple, Anum_pg_job_end_date, pg_job_rel->rd_att, &isnull)); + if (isnull) { + job_value->end_date = get_scheduler_max_timestamp(); + } + job_value->nspname = DatumGetPointer(heap_getattr(tuple, Anum_pg_job_nspname, pg_job_rel->rd_att, &isnull)); + if (isnull) { + job_value->nspname = NULL; + } else { + job_value->nspname = pstrdup(job_value->nspname); + } + job_value->interval = TextDatumGetCString(heap_getattr(tuple, Anum_pg_job_interval, pg_job_rel->rd_att, &isnull)); + if (isnull || pg_strcasecmp(job_value->interval, "null") == 0) { + pfree(job_value->interval); + job_value->interval = NULL; + } + job_value->fail_count = DatumGetInt16(heap_getattr(tuple, Anum_pg_job_failure_count, pg_job_rel->rd_att, &isnull)); + if (isnull) { + job_value->fail_count = 0; + } + heap_close(pg_job_rel, AccessShareLock); + return job_value; +} + +/* + * @brief make_job_proc_value + * Context struct initialization. + * @param job_action Job action datum + * @return JobProcValue* Out context + */ +JobProcValue *make_job_proc_value(Datum job_action) +{ + JobProcValue *job_proc_value = (JobProcValue *)palloc0(sizeof(JobProcValue)); + job_proc_value->action = job_action; + job_proc_value->action_str = TextDatumGetCString(job_action); + return job_proc_value; +} + +/* + * @brief make_job_attribute_value + * Context struct initialization. + * @param attributes Attribute keys + * @return JobAttributeValue* Out context + */ +JobAttributeValue *make_job_attribute_value(JobAttribute *attributes) +{ + enum {PROGRAM_TYPE = 0, PROGRAM_ENABLED, NUM_OF_ARGS, AUTO_DROP, JOB_CLASS}; + JobAttributeValue *job_attribute_value = (JobAttributeValue *)palloc0(sizeof(JobAttributeValue)); + job_attribute_value->job_type = attributes[PROGRAM_TYPE].value; + attributes[PROGRAM_TYPE].value = Datum(0); + job_attribute_value->program_enable = TextToBool(attributes[PROGRAM_ENABLED].value); + job_attribute_value->auto_drop = TextToBool(attributes[AUTO_DROP].value); + job_attribute_value->number_of_arguments = TextToInt32(attributes[NUM_OF_ARGS].value); + job_attribute_value->job_class = attributes[JOB_CLASS].value; + + return job_attribute_value; +} + +/* + * @brief make_job_target + * Make the job target by put attributes into a well organized structure. + * @param job_name Job name + * @param program_name Associated program name(can be a inlined program) + * @param attributes The job attributes + * @return JobTarget* The structure created + */ +static JobTarget *make_job_target(Datum job_name, Datum program_name, JobAttribute *attributes) +{ + Datum job_id; + Datum job_action; + + /* Lookup id, action attributes */ + lookup_pg_job_proc(job_name, &job_id, &job_action); + if (job_action == Datum(0)) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_UNDEFINED_OBJECT), + errmsg("job %s's action is undefined.", TextDatumGetCString(job_name)), + errdetail("N/A"), errcause("job's action is undefined"), erraction("Please check job_name"))); + } + + /* Fill up job targets */ + JobTarget *job_target = (JobTarget *)palloc0(sizeof(JobTarget)); + job_target->job_name = job_name; + job_target->id = job_id; + job_target->job_proc_value = make_job_proc_value(job_action); + job_target->job_attribute_value = make_job_attribute_value(attributes); + job_target->job_attribute_value->username = lookup_credential_username(job_name); + job_target->job_attribute_value->program_name = program_name; + job_target->arguments = batch_lookup_program_argument(job_name, program_name, + job_target->job_attribute_value->number_of_arguments); + job_target->job_value = lookup_job_value(job_name); + return job_target; +} + +/* + * @brief get_job_target + * Get the Job Target object. + * @param job_name Job name datum + * @return JobTarget* Out context + */ +static JobTarget *get_job_target(Datum job_name) +{ + Datum program_name = get_attribute_value(job_name, "program_name", AccessShareLock); + + /* Lookup corresponding attributes */ + + const char *attribute_names[] = {"program_type", "enabled", "number_of_arguments", "auto_drop", "job_class"}; + const Datum object_names[] = {program_name, program_name, program_name, job_name, job_name}; + int count = lengthof(attribute_names); + JobAttribute *lookup_attributes = (JobAttribute *)palloc0(sizeof(JobAttribute) * count); + for (int i = 0; i < count; i++) { + lookup_attributes[i].object_name = object_names[i]; + lookup_attributes[i].name = CStringGetTextDatum(attribute_names[i]); + } + batch_lookup_job_attribute(lookup_attributes, count); + + /* Job prep */ + JobTarget *job_target = make_job_target(job_name, program_name, lookup_attributes); + for (int i = 0; i < count; i++) { + lookup_attributes[i].object_name = object_names[i]; + pfree(DatumGetPointer(lookup_attributes[i].name)); + if (lookup_attributes[i].value != Datum(0)) { + pfree(DatumGetPointer(lookup_attributes[i].value)); + } + } + pfree_ext(lookup_attributes); + return job_target; +} + +/* + * @brief check_program_type_argument + * Perform a simple check on program type argument. + * @param program_type + * @param number_of_arguments + */ +void check_program_type_argument(Datum program_type, int number_of_arguments) +{ + if (pg_strcasecmp(TextDatumGetCString(program_type), PLSQL_JOB_TYPE) == 0 && number_of_arguments != 0) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("Invalid program type or argument"), + errdetail("Program type PLSQL_BLOCK must has no argument"), + errcause("Program type is PLSQL_BLOCK, so the number of arguments must be 0"), + erraction("Please check program type or argument param"))); + } + const int max_arguments = 255; + if (number_of_arguments > max_arguments || number_of_arguments < 0) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("Invalid program arguments"), + errdetail("Program arguments must less euqal than 255 and greater euqal than zero"), + errcause("Program arguments must less euqal than 255"), + erraction("Please check program argument param"))); + } +} + +/* + * @brief check_str_valid + * Check if a user input string contains danger characters. + * @param str + */ +static char *replace_all_danger_character(const char *str) +{ + if (strstr(str, "\\\"") != NULL) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_INVALID_NAME), + errmsg("Fail to parse script parameter."), + errdetail("Parameter contains escaped double quotes '\\\"'."), errcause("Command is invalid"), + erraction("Please enter a valid command"))); + } + StringInfoData buffer; + initStringInfo(&buffer); + appendStringInfoString(&buffer, "\\\""); /* \" for start of param */ + int len = strlen(str); + for (int i = 0; i < len; i++) { + if (str[i] == '"') { + appendStringInfoString(&buffer, "\\\\\\\""); /* \\\" for escaping the escaped double quote */ + } else if (str[i] == '\\' || str[i] == '|') { + appendStringInfoString(&buffer, "\\"); /* \ for escaping other dangerous str[i] character */ + appendStringInfoChar(&buffer, str[i]); + } else { + appendStringInfoChar(&buffer, str[i]); + } + } + appendStringInfoString(&buffer, "\\\""); /* \" */ + return buffer.data; +} + +/* + * @brief check_real_path_valid + * Check if a user input string is a valid real path. + * @param file_name + */ +static void check_real_path_valid(const Datum file_name) +{ + char *command = TextDatumGetCString(file_name); + char path_name_arr[PATH_MAX + 1] = {0}; + char *path_name = realpath(command, path_name_arr); + if (path_name == NULL) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_INVALID_NAME), + errmsg("Fail to execute external job."), + errdetail("Cannot execute external script with given path."), errcause("Command is invalid"), + erraction("Please enter a valid command"))); + } + const char *danger_character_list[] = {"|", ";", "&", "$", "<", ">", "`", "\\", "'", "\"", "{", + "}", "(", ")", "[", "]", "~", "*", "?", "!", "\n", NULL}; + for (int i = 0; danger_character_list[i] != NULL; i++) { + if (strstr(path_name, danger_character_list[i]) != NULL) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_INVALID_NAME), + errmsg("invalid token \"%s\"", danger_character_list[i]), + errdetail("str contains invalid character"), errcause("str is invalid"), + erraction("Please enter a valid str"))); + } + } + pfree(command); +} + +/* + * @brief run_backend_job_internal + * Runs a job immediately by reset job_status and next_run_time. + * Note: use_current_session is not functioning. + */ +void run_backend_job_internal(PG_FUNCTION_ARGS) +{ + check_object_is_visible(PG_GETARG_DATUM(0)); + Datum job_name = PG_GETARG_DATUM(0); + check_object_type_matched(job_name, "job"); + if (is_job_running(job_name)) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_INVALID_STATUS), + errmsg("Job is still running."), + errdetail("Cannot run job when job is already running."), + errcause("Job is still running."), + erraction("Please try again later."))); + } + JobTarget *job_target = get_job_target(job_name); /* for check only */ + pfree_ext(job_target); + + /* Run job */ + Datum current_time = DirectFunctionCall1(timestamptz_timestamp, TimestampTzGetDatum(GetCurrentTimestamp())); + Datum job_related_attr[] = {current_time, CharGetDatum(PGJOB_SUCC_STATUS)}; + int job_related_num[] = {Anum_pg_job_next_run_date, Anum_pg_job_job_status}; + bool isnull[] = {false, false}; + update_pg_job_multi_columns(job_name, (int *)job_related_num, job_related_attr, isnull, lengthof(job_related_attr)); +} + +/* + * @brief check_sql_job_ready + * Check if job is ready to run. + * @param job_target + */ +static void check_sql_job_ready(JobTarget *job_target) +{ + if (!job_target->job_attribute_value->program_enable) { + StartTransactionCommand(); + update_pg_job(job_target->job_name, Anum_pg_job_enable, BoolGetDatum(false)); + CommitTransactionCommand(); + char *program_name_str = TextDatumGetCString(job_target->job_attribute_value->program_name); + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_INVALID_STATUS), + errmsg("program %s of job %s is disabled.", + program_name_str, TextDatumGetCString(job_target->job_name)), + errdetail("N/A"), errcause("program of job is disabled"), + erraction("Please enable program %s of job first", program_name_str))); + } + check_program_type_argument(job_target->job_attribute_value->job_type, + job_target->job_attribute_value->number_of_arguments); + check_object_is_visible(job_target->job_attribute_value->program_name); +} + +/* + * @brief check_external_job_ready + * + * @param job_target + */ +static void check_external_job_ready(JobTarget *job_target) +{ + check_sql_job_ready(job_target); + check_real_path_valid(PointerGetDatum(job_target->job_proc_value->action)); + + for (int i = 0; i < job_target->job_attribute_value->number_of_arguments; i++) { + job_target->arguments[i].argument_value = replace_all_danger_character(job_target->arguments[i].argument_value); + } + if (job_target->job_attribute_value->username == NULL) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_UNDEFINED_OBJECT), + errmsg("job %s's credential username is undefined.", + TextDatumGetCString(job_target->job_name)), + errdetail("N/A"), errcause("credential username is undefined"), + erraction("Please check job_name"))); + } + check_privilege(get_role_name_str(), RUN_EXTERNAL_JOB_PRIVILEGE); +} + +/* + * @brief expire_backend_job + * Disable or drop job when job expired. + */ +void expire_backend_job(Datum job_name, bool auto_drop) +{ + start_xact_command(); + if (auto_drop) { + drop_inline_program(job_name); + delete_from_attribute(job_name); + delete_from_job_proc(job_name); + delete_from_argument(job_name); + delete_from_job(job_name); + } else { + update_pg_job(job_name, Anum_pg_job_enable, BoolGetDatum(false)); + } + finish_xact_command(); +} + +/* + * @brief refresh_backend_job_status + */ +static bool refresh_backend_job_status(JobTarget *job_target, bool after_run) +{ + /* after run */ + if (after_run && job_target->job_value->interval == NULL) { + expire_backend_job(job_target->job_name, job_target->job_attribute_value->auto_drop); + return true; + } + + /* before run */ + TimestampTz cur_timestamp = GetCurrentTimestamp(); + bool expire = DatumGetBool(DirectFunctionCall2(timestamptz_gt_timestamp, cur_timestamp, + job_target->job_value->end_date)); + if (expire) { + expire_backend_job(job_target->job_name, job_target->job_attribute_value->auto_drop); + return true; + } + return false; +} + +/* + * @brief run_job_internal + * Runs a job immediately, only when external job, others ereport error + * Note: use_current_session is not functioning. + */ +Datum run_foreground_job_internal(PG_FUNCTION_ARGS) +{ + check_object_is_visible(PG_GETARG_DATUM(0)); + Datum job_name = PG_GETARG_DATUM(0); + check_object_type_matched(job_name, "job"); + char *program_type = get_job_type(job_name, false); + if (pg_strcasecmp(program_type, EXTERNAL_JOB_TYPE) != 0) { // shell + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_UNDEFINED_OBJECT), + errmsg("when run current session job, program_type %s is not supported.", program_type), + errdetail("program_type not supported"), errcause("N/A"), + erraction("please check program type"))); + } + pfree(program_type); + char *res = run_external_job(job_name); + Assert(res != NULL); + Datum res_text = CStringGetTextDatum(res); + pfree_ext(res); + return res_text; +} + +/* + * @brief run_sql_job + * Run sql job. + * @param job_name + * @param buf + * @return true + * @return false + */ +static bool run_sql_job(Datum job_name, StringInfoData *buf) +{ + JobTarget *job_target = get_job_target(job_name); + check_sql_job_ready(job_target); + if (t_thrd.role == JOB_WORKER) { + if (refresh_backend_job_status(job_target, false)) { + return true; + } + } + if (buf->data[0] == '\0' && job_target->job_value->nspname != NULL) { + appendStringInfo(buf, "set current_schema=%s;", quote_identifier(job_target->job_value->nspname)); + } + appendStringInfo(buf, "%s", job_target->job_proc_value->action_str); + execute_simple_query(buf->data); + if (t_thrd.role == JOB_WORKER) { + (void)refresh_backend_job_status(job_target, true); + } + return true; +} + +/* + * @brief run_procedure_job + * Run stored procedure job. + * @param job_name + * @param buf + * @return true + * @return false + */ +static bool run_procedure_job(Datum job_name, StringInfoData *buf) +{ + JobTarget *job_target = get_job_target(job_name); + check_sql_job_ready(job_target); + if (t_thrd.role == JOB_WORKER) { + if (refresh_backend_job_status(job_target, false)) { + return true; + } + } + if (buf->data[0] == '\0' && job_target->job_value->nspname != NULL) { + appendStringInfo(buf, "set current_schema=%s;", quote_identifier(job_target->job_value->nspname)); + } + appendStringInfoString(buf, "call "); + appendStringInfoString(buf, job_target->job_proc_value->action_str); + appendStringInfoString(buf, "("); + for (int i = 0; i < job_target->job_attribute_value->number_of_arguments; i++) { + appendStringInfoString(buf, "'"); + appendStringInfoString(buf, job_target->arguments[i].argument_value); + appendStringInfoString(buf, "'::"); + appendStringInfoString(buf, job_target->arguments[i].argument_type); + } + appendStringInfoString(buf, ");"); + execute_simple_query(buf->data); + if (t_thrd.role == JOB_WORKER) { + (void)refresh_backend_job_status(job_target, true); + } + return true; +} + +/* + * @brief ssh_run_external_program + * Create a SSH connection string for execute a program + * @param username + * @param action Program action + * @return char* + */ +static char *ssh_run_external_program(const char *username, const char *action) +{ + StringInfoData ssh_buf; + initStringInfo(&ssh_buf); + appendStringInfoString(&ssh_buf, "ssh "); + appendStringInfoString(&ssh_buf, username); + appendStringInfoString(&ssh_buf, "@localhost \""); + appendStringInfoString(&ssh_buf, action); + appendStringInfoString(&ssh_buf, "\""); + appendStringInfoString(&ssh_buf, " 2>&1"); + + FILE *ssh_stream = popen(ssh_buf.data, "r"); + if (ssh_stream == NULL) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_OPERATE_FAILED), + errmsg("ssh to username failed"), errdetail("cannot ssh to username, popen fail"), + errcause("N/A"), + erraction("Please append ~/.ssh/id_rsa.pub to username's homepath/.ssh/authorized_keys"))); + } + StringInfoData res_buf; + initStringInfo(&res_buf); + const int bufferLen = 1024; + char buffer[bufferLen]; + while (fgets(buffer, sizeof(buffer), ssh_stream) != NULL) { + buffer[bufferLen - 1] = '\0'; + appendStringInfoString(&res_buf, buffer); + } + pclose(ssh_stream); + pfree(ssh_buf.data); + return res_buf.data; +} + +/* + * @brief run_external_job + * @param job_name + */ +static char *run_external_job(Datum job_name) +{ + JobTarget *job_target = get_job_target(job_name); + Assert(job_target->job_proc_value->action != Datum(0)); + check_external_job_ready(job_target); + if (t_thrd.role == JOB_WORKER) { + if (refresh_backend_job_status(job_target, false)) { + return NULL; + } + } + StringInfoData action_buf; + initStringInfo(&action_buf); + appendStringInfoString(&action_buf, job_target->job_proc_value->action_str); + for (int i = 0; i < job_target->job_attribute_value->number_of_arguments; i++) { + appendStringInfoString(&action_buf, " "); + appendStringInfoString(&action_buf, job_target->arguments[i].argument_value); + } + char *res = ssh_run_external_program(job_target->job_attribute_value->username, action_buf.data); + if (t_thrd.role == JOB_WORKER) { + (void)refresh_backend_job_status(job_target, true); + } + return res; +} + +/* + * @brief execute_backend_scheduler_job + * Execute job main. + */ +bool execute_backend_scheduler_job(Datum job_name, StringInfoData *buf) +{ + if (job_name == Datum(0)) { + return false; + } + char *program_type = get_job_type(job_name, true); + if (!PointerIsValid(program_type)) { + return false; + } + if (pg_strcasecmp(program_type, PLSQL_JOB_TYPE) == 0) { + return run_sql_job(job_name, buf); + } + if (pg_strcasecmp(program_type, PRECEDURE_JOB_TYPE) == 0) { + return run_procedure_job(job_name, buf); + } + if (pg_strcasecmp(program_type, EXTERNAL_JOB_TYPE) != 0) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_UNDEFINED_OBJECT), + errmsg("program_type %s cannot be recognized.", program_type), + errdetail("program_type crashed"), errcause("N/A"), + erraction("please check program type"))); + } + pfree(program_type); + (void)run_external_job(job_name); + return true; +} + +/* + * @brief stop_single_job_force + * Send a SIGINT/SIGTERM to job worker. + * @param job_name + * @param force + */ +static void stop_single_job_force(Datum job_name, bool force) +{ + Relation pg_job_rel = heap_open(PgJobRelationId, RowExclusiveLock); + HeapTuple tuple = search_from_pg_job(pg_job_rel, job_name); + if (!HeapTupleIsValid(tuple)) { + heap_close(pg_job_rel, NoLock); + return; + } + Form_pg_job pg_job_value = (Form_pg_job)GETSTRUCT(tuple); + if (pg_job_value->job_status != PGJOB_RUN_STATUS || pg_job_value->current_postgres_pid == -1) { + heap_close(pg_job_rel, NoLock); + heap_freetuple_ext(tuple); + return; + } + if (!force) { + gs_signal_send(pg_job_value->current_postgres_pid, SIGINT); + } else { + gs_signal_send(pg_job_value->current_postgres_pid, SIGTERM); + } + + heap_close(pg_job_rel, NoLock); + heap_freetuple_ext(tuple); +} + +/* + * @brief stop_job_by_job_class_force + * Stop jobs by its job class. + * @param job_class_name + * @param force + */ +static void stop_job_by_job_class_force(Datum job_class_name, bool force) +{ + Relation gs_job_attribute_rel = heap_open(GsJobAttributeRelationId, RowExclusiveLock); + Datum job_class_attribute_name = CStringGetTextDatum("job_class"); + List *tuples = search_related_attribute(gs_job_attribute_rel, job_class_attribute_name, job_class_name); + pfree(DatumGetPointer(job_class_attribute_name)); + job_class_attribute_name = Datum(0); + if (list_length(tuples) == 0) { + heap_close(gs_job_attribute_rel, NoLock); + return; + } + ListCell *lc = NULL; + foreach(lc, tuples) { + HeapTuple tuple = (HeapTuple)lfirst(lc); + bool isnull = false; + Datum job_name = heap_getattr(tuple, Anum_gs_job_attribute_job_name, gs_job_attribute_rel->rd_att, &isnull); + stop_single_job_force(job_name, force); + } + heap_close(gs_job_attribute_rel, NoLock); + list_free_deep(tuples); +} + +/* + * @brief stop_single_job_internal + * Stop the job by sending SIGINT/SIGTERM signals to job worker. + */ +void stop_single_job_internal(PG_FUNCTION_ARGS) +{ + Datum job_name = PG_GETARG_DATUM(0); + bool force = PG_GETARG_BOOL(1); + char *object_type = get_attribute_value_str(job_name, "object_type", RowExclusiveLock, true); + if (object_type == NULL) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_UNDEFINED_OBJECT), + errmsg("Undefined object %s.", TextDatumGetCString(job_name)), + errdetail("Job or job class %s does not exist", TextDatumGetCString(job_name)), + errcause("N/A"), erraction("Please check the job name."))); + } + + if (pg_strcasecmp(object_type, "job") == 0) { + stop_single_job_force(job_name, force); + } else if (pg_strcasecmp(object_type, "job_class") == 0) { + stop_job_by_job_class_force(job_name, force); + } else { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_UNDEFINED_OBJECT), + errmsg("object_type can only be job or job_class."))); + } +} + +/* + * @brief drop_single_job_name + * Drop a single job with specified job name. + * @param job_name + * @param defer + * @param force + */ +static void drop_single_job_name(Datum job_name, bool defer, bool force) +{ + check_object_type_matched(job_name, "job"); + char *job_type = get_job_type(job_name, true); + if (job_type == NULL || pg_strcasecmp(job_type, EXTERNAL_JOB_TYPE) == 0) { + check_privilege(get_role_name_str(), CREATE_EXTERNAL_JOB_PRIVILEGE); + } + pfree_ext(job_type); + + if (force && defer) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_INVALID_STATUS), + errmsg("Cannot defer drop_job when 'force' is on."), + errdetail("N/A"), errcause("Conflicting condition."), + erraction("Please recheck the parameters."))); + } + bool is_running = is_job_running(job_name); + if (is_running && defer) { + /* if defer is set, expire the job immediately */ + Datum attribute_name_1 = CStringGetTextDatum("auto_drop"); + Datum attribute_value_1 = BoolToText(true); + set_job_attribute(job_name, attribute_name_1, attribute_value_1); + Datum attribute_name_2 = CStringGetTextDatum("end_date"); + Datum attribute_value_2 = DirectFunctionCall1(timestamptz_timestamp, GetCurrentTimestamp()); + attribute_value_2 = DirectFunctionCall1(timestamp_text, attribute_value_2); + set_job_attribute(job_name, attribute_name_2, attribute_value_2); + return; + } + if (is_running && !force) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_INVALID_STATUS), + errmsg("Cannot drop job %s when job is running.", TextDatumGetCString(job_name)), + errdetail("Job is running."), errcause("N/A"), + erraction("Please check the job status."))); + } + if (is_running && force) { + DirectFunctionCall2((PGFunction)stop_single_job_internal, job_name, BoolGetDatum(true)); + } + drop_inline_program(job_name); + delete_from_attribute(job_name); + delete_from_job_proc(job_name); + delete_from_argument(job_name); + delete_from_job(job_name); +} + +/* + * @brief drop_scheduler_jobs_from_class + * Drop all jobs with specified job class. + */ +void drop_scheduler_jobs_from_class(Datum job_class_name, bool defer, bool force) +{ + Datum attribute_name = CStringGetTextDatum("job_class"); + Relation rel = heap_open(GsJobAttributeRelationId, AccessShareLock); + List *tuples = search_related_attribute(rel, attribute_name, job_class_name); + List *drop_job_names = NIL; + ListCell *lc = NULL; + foreach(lc, tuples) { + HeapTuple tuple = (HeapTuple)lfirst(lc); + bool isnull = false; + Datum job_name = heap_getattr(tuple, Anum_gs_job_attribute_job_name, rel->rd_att, &isnull); + Assert(!isnull); + drop_job_names = lappend(drop_job_names, DatumGetPointer(PG_DETOAST_DATUM_COPY(job_name))); + } + heap_close(rel, AccessShareLock); + + /* call disable */ + lc = NULL; + foreach(lc, drop_job_names) { + Datum job_name = (Datum)lfirst(lc); + check_object_is_visible(job_name, false); + drop_single_job_name(job_name, defer, force); + } +} + +/* + * @brief drop_job_internal + * Drop the job and all relative objects(inline program etc.) + * Note: defer and commit_semantic has no purpose yet. + */ +void drop_single_job_internal(PG_FUNCTION_ARGS) +{ + check_object_is_visible(PG_GETARG_DATUM(0), false); + Datum job_name = PG_GETARG_DATUM(0); + bool force = PG_GETARG_BOOL(1); + bool defer = PG_GETARG_BOOL(2); + + char *object_type = get_attribute_value_str(job_name, "object_type", RowExclusiveLock, true); + if (object_type == NULL) { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_UNDEFINED_OBJECT), + errmsg("Undefined object %s.", TextDatumGetCString(job_name)), + errdetail("Job or job class %s does not exist", TextDatumGetCString(job_name)), + errcause("N/A"), erraction("Please check the job name."))); + } + + if (pg_strcasecmp(object_type, "job") == 0) { + drop_single_job_name(job_name, defer, force); + } else if (pg_strcasecmp(object_type, "job_class") == 0) { + drop_scheduler_jobs_from_class(job_name, defer, force); + } else { + ereport(ERROR, (errmodule(MOD_JOB), errcode(ERRCODE_DATATYPE_MISMATCH), + errmsg("name %s is %s.", TextDatumGetCString(job_name), object_type), + errdetail("N/A"), errcause("name has wrong type"), + erraction("Please check %s name", TextDatumGetCString(job_name)))); + } + return; +} + +/* + * @brief is_private_job + * Is a privatejob or not? job use log_user instead of owner, so we made a seperate function. + * @param job_name + * @param user_str + */ +static bool is_private_job(Datum job_name, const char *user_str) +{ + bool isnull = false; + Relation pg_job_rel = heap_open(PgJobRelationId, AccessShareLock); + HeapTuple tuple = search_from_pg_job(pg_job_rel, job_name); + if (!HeapTupleIsValid(tuple)) { + heap_close(pg_job_rel, AccessShareLock); + return false; + } + Datum creator = heap_getattr(tuple, Anum_pg_job_log_user, pg_job_rel->rd_att, &isnull); + char *creator_str = DatumGetCString(creator); + if (pg_strcasecmp(creator_str, user_str) == 0) { + heap_close(pg_job_rel, AccessShareLock); + return true; + } + heap_close(pg_job_rel, AccessShareLock); + return false; +} + +/* + * @brief is_private_scheduler_object + * Check if an object is fully owned by given user. + * @param rel gs_job_attribute relation + * @param object_name object name + * @param user_str given user name + * @return true is fully owned + * @return false not fully owned + */ +bool is_private_scheduler_object(Relation rel, Datum object_name, const char *user_str) +{ + bool isnull = true; + Datum attr = lookup_job_attribute(rel, object_name, CStringGetTextDatum("object_type"), &isnull, false); + char *attr_str = TextDatumGetCString(attr); + if (pg_strcasecmp(attr_str, "job") == 0) { + pfree_ext(attr_str); + if (!is_private_job(object_name, user_str)) { + return false; + } + Datum program_name = \ + lookup_job_attribute(rel, object_name, CStringGetTextDatum("program_name"), &isnull, false); + if (is_private_scheduler_object(rel, program_name, user_str)) { + return true; /* program is private */ + } + return false; + } + pfree_ext(attr_str); + Datum owner = lookup_job_attribute(rel, object_name, CStringGetTextDatum("owner"), &isnull, true); + if (owner == Datum(0)) { + /* credential does not have owner */ + return true; + } + char *owner_str = TextDatumGetCString(owner); + if (pg_strcasecmp(owner_str, user_str) != 0) { + pfree_ext(owner_str); + return false; + } + pfree_ext(owner_str); + return true; +} + +/* + * @brief disable_job_from_owner + * Disable all shared objects base on its owner. + * @param user_str usually current_user + */ +void disable_shared_job_from_owner(const char *user_str) +{ + Datum attribute_name = CStringGetTextDatum("owner"); + Datum attribute_value = CStringGetTextDatum(user_str); + Relation rel = heap_open(GsJobAttributeRelationId, AccessShareLock); + List *tuples = search_related_attribute(rel, attribute_name, attribute_value); + List *disable_job_names = NIL; + ListCell *lc = NULL; + foreach(lc, tuples) { + HeapTuple tuple = (HeapTuple)lfirst(lc); + bool isnull = false; + Datum object_name = heap_getattr(tuple, Anum_gs_job_attribute_job_name, rel->rd_att, &isnull); + Assert(!isnull); + if (is_private_scheduler_object(rel, object_name, user_str)) { + continue; + } + /* here should be all jobs, which its program is not private */ + disable_job_names = lappend(disable_job_names, DatumGetPointer(PG_DETOAST_DATUM_COPY(object_name))); + } + heap_close(rel, AccessShareLock); + + /* call disable */ + lc = NULL; + foreach(lc, disable_job_names) { + Datum program_name = (Datum)lfirst(lc); + Datum enable_value = BoolToText(false); + enable_single_force(program_name, enable_value, true); + } + list_free_deep(disable_job_names); +} + +/* + * @brief is_internal_scheduler_object + * Is object an internel object? + * @param rel + * @param object_name + * @param user_str + */ +bool is_internal_scheduler_object(Relation rel, Datum object_name) +{ + bool isnull = true; + Datum attr = lookup_job_attribute(rel, object_name, CStringGetTextDatum("object_type"), &isnull, false); + char *attr_str = TextDatumGetCString(attr); + if (pg_strcasecmp(attr_str, "job") == 0) { + pfree_ext(attr_str); + Datum program_name = \ + lookup_job_attribute(rel, object_name, CStringGetTextDatum("program_name"), &isnull, false); + if (is_internal_scheduler_object(rel, program_name)) { + return true; /* program is internal */ + } + return false; + } + pfree_ext(attr_str); + Datum program_type = lookup_job_attribute(rel, object_name, CStringGetTextDatum("program_type"), &isnull, true); + if (program_type == Datum(0)) { + return true; + } + char *program_type_str = TextDatumGetCString(program_type); + if (pg_strcasecmp(program_type_str, EXTERNAL_JOB_TYPE) == 0) { + pfree_ext(program_type_str); + return false; + } + pfree_ext(program_type_str); + return true; +} + +/* + * @brief disable_external_job_from_owner + * Disable all external objects base on its owner. + * @param user_str usually current_user + */ +void disable_external_job_from_owner(const char *user_str) +{ + Datum attribute_name = CStringGetTextDatum("owner"); + Datum attribute_value = CStringGetTextDatum(user_str); + Relation rel = heap_open(GsJobAttributeRelationId, AccessShareLock); + List *tuples = search_related_attribute(rel, attribute_name, attribute_value); + List *disable_object_names = NIL; + ListCell *lc = NULL; + foreach(lc, tuples) { + HeapTuple tuple = (HeapTuple)lfirst(lc); + bool isnull = false; + Datum object_name = heap_getattr(tuple, Anum_gs_job_attribute_job_name, rel->rd_att, &isnull); + Assert(!isnull); + if (is_internal_scheduler_object(rel, object_name)) { + continue; + } + Datum attr = lookup_job_attribute(rel, object_name, CStringGetTextDatum("object_type"), &isnull, false); + char *attr_str = TextDatumGetCString(attr); + if (pg_strcasecmp(attr_str, "job") != 0) { + pfree_ext(attr_str); + continue; /* we skip non-job for now */ + } + /* here should be a job with external program */ + disable_object_names = lappend(disable_object_names, DatumGetPointer(PG_DETOAST_DATUM_COPY(object_name))); + } + heap_close(rel, AccessShareLock); + + /* call disable */ + lc = NULL; + foreach(lc, disable_object_names) { + Datum program_name = (Datum)lfirst(lc); + Datum enable_value = BoolToText(false); + enable_single_force(program_name, enable_value, true); + } + list_free_deep(disable_object_names); +} + +/* + * @brief disable_related_job_with_program + * Disable all related jobs created by users other than 'user_str' with a given program. + * @param program_name + * @param type_str + * @param user_str + */ +static void disable_related_job_with_program(Datum program_name, const char *type_str, const char *user_str = NULL) +{ + if (pg_strcasecmp(type_str, "program") != 0) { + return; + } + + ListCell *lc = NULL; + Datum attribute_name = CStringGetTextDatum("program_name"); + Relation gs_job_attribute_rel = heap_open(GsJobAttributeRelationId, AccessShareLock); + List *disable_job_names = search_related_jobs(gs_job_attribute_rel, program_name, attribute_name, true); + heap_close(gs_job_attribute_rel, AccessShareLock); + + foreach (lc, disable_job_names) { + Datum job_name = PointerGetDatum(lfirst(lc)); + char *owner = get_attribute_value_str(job_name, "owner", AccessShareLock, false, false); + if (user_str != NULL && pg_strcasecmp(user_str, owner) == 0) { + pfree_ext(owner); + continue; /* skip current user's job */ + } + pfree_ext(owner); + update_pg_job(job_name, Anum_pg_job_enable, BoolGetDatum(false)); + } + list_free_deep(disable_job_names); + disable_job_names = NIL; +} + +/* + * @brief remove_scheduler_objects_from_owner + * Remove all external objects, including privileges from its owner. + * @param user_str + */ +void remove_scheduler_objects_from_owner(const char *user_str) +{ + Datum attribute_name = CStringGetTextDatum("owner"); + Datum attribute_value = CStringGetTextDatum(user_str); + Relation rel = heap_open(GsJobAttributeRelationId, AccessShareLock); + List *tuples = search_related_attribute(rel, attribute_name, attribute_value); + List *drop_object_names = NIL; + List *drop_object_types = NIL; + ListCell *lc = NULL; + foreach(lc, tuples) { + HeapTuple tuple = (HeapTuple)lfirst(lc); + bool isnull = false; + Datum object_name = heap_getattr(tuple, Anum_gs_job_attribute_job_name, rel->rd_att, &isnull); + Assert(!isnull); + Datum type = lookup_job_attribute(rel, object_name, CStringGetTextDatum("object_type"), &isnull, false); + drop_object_names = lappend(drop_object_names, DatumGetPointer(PG_DETOAST_DATUM_COPY(object_name))); + drop_object_types = lappend(drop_object_types, DatumGetPointer(type)); + } + heap_close(rel, AccessShareLock); + + /* call disable */ + lc = NULL; + ListCell *lc2 = NULL; + forboth(lc, drop_object_names, lc2, drop_object_types) { + Datum object_name = (Datum)lfirst(lc); + Datum object_type = (Datum)lfirst(lc2); + char *type_str = TextDatumGetCString(object_type); + check_object_type_matched(object_name, type_str); + delete_from_attribute(object_name); + delete_from_job_proc(object_name); + delete_from_argument(object_name); + delete_from_job(object_name); + + /* If it is a program, we need to disable all related jobs from other users */ + disable_related_job_with_program(object_name, type_str, user_str); + pfree(type_str); + } + const char *privilege_arr[] = {EXECUTE_ANY_PROGRAM_PRIVILEGE, CREATE_JOB_PRIVILEGE, + CREATE_EXTERNAL_JOB_PRIVILEGE, RUN_EXTERNAL_JOB_PRIVILEGE}; + int len = lengthof(privilege_arr); + for (int i = 0; i < len; i++) { + revoke_authorization(CStringGetTextDatum(user_str), CStringGetTextDatum(privilege_arr[i]), true); + } + list_free_deep(drop_object_names); + list_free_deep(drop_object_types); +} diff --git a/src/gausskernel/process/job/job_scheduler.cpp b/src/gausskernel/process/job/job_scheduler.cpp index ec36dcd81..063236886 100755 --- a/src/gausskernel/process/job/job_scheduler.cpp +++ b/src/gausskernel/process/job/job_scheduler.cpp @@ -1,5 +1,6 @@ /* * Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors * * openGauss is licensed under Mulan PSL v2. * You can use this software according to the terms and conditions of the Mulan PSL v2. @@ -257,6 +258,8 @@ NON_EXEC_STATIC void JobScheduleMain() /* since not using PG_TRY, must reset error stack by hand */ t_thrd.log_cxt.error_context_stack = NULL; + t_thrd.log_cxt.call_stack = NULL; + /* Prevents interrupts while cleaning up */ HOLD_INTERRUPTS(); @@ -658,6 +661,48 @@ static inline bool IsExecuteOnCurrentNode(const char* executeNodeName) return false; } +/* + * @brief SkipSchedulerJob + * Skip process DBE_SCHEDULER jobs, contains various checks. + * 1. whether the job is enabled + * 2. whether the job is expired(end_date < current timestamp OR end_date is NULL) + * @param values pg_job attr values + * @param nulls pg_job attr nulls + * @return true skip current job + * @return false do not skip current job + */ +static bool SkipSchedulerJob(Datum *values, bool *nulls, Timestamp curtime) +{ + Assert(values != NULL); + Assert(nulls != NULL); + /* do not handle non-scheduler jobs */ + if (nulls[Anum_pg_job_job_name]) { + return false; + } + + /* expired job, need to drop even it is disabled */ + if (DatumGetBool(DirectFunctionCall2(timestamp_ge, curtime, values[Anum_pg_job_end_date - 1]))) { + return false; + } + + /* disabled jobs */ + if (!nulls[Anum_pg_job_enable - 1] && !DatumGetBool(values[Anum_pg_job_enable - 1])) { + return true; /* skip here to avoid further overhead */ + } + + /* immediate job (expired after one successful run) */ + if (nulls[Anum_pg_job_interval - 1]) { + return false; + } else { + char* interval_str = TextDatumGetCString(values[Anum_pg_job_interval - 1]); + if (pg_strcasecmp(interval_str, "null") == 0) { + pfree_ext(interval_str); + return false; + } + } + return true; +} + /* * Description: Find expire jobs and insert to job queue for execute. * @@ -690,6 +735,11 @@ static void ScanExpireJobs() get_job_values(jobID, tuple, pg_job_tbl, values, nulls); + /* dbms schedule creates a job but dont enable it */ + if (SkipSchedulerJob(values, nulls, curtime)) { + continue; + } + /* handle cases - ALL_NODE/ALL_CN/ALL_DN/CCN specific node */ if (!IsExecuteOnCurrentNode(pg_job->node_name.data)) { continue; diff --git a/src/gausskernel/process/postmaster/autovacuum.cpp b/src/gausskernel/process/postmaster/autovacuum.cpp index 84c9a3751..3a3df7f30 100755 --- a/src/gausskernel/process/postmaster/autovacuum.cpp +++ b/src/gausskernel/process/postmaster/autovacuum.cpp @@ -53,6 +53,7 @@ * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -300,6 +301,8 @@ NON_EXEC_STATIC void AutoVacLauncherMain() /* since not using PG_TRY, must reset error stack by hand */ t_thrd.log_cxt.error_context_stack = NULL; + t_thrd.log_cxt.call_stack = NULL; + /* Prevents interrupts while cleaning up */ HOLD_INTERRUPTS(); @@ -1710,8 +1713,6 @@ bool allow_autoanalyze(HeapTuple tuple) return enable_analyze; } -#define isPartitionedRelation(classForm) (PARTTYPE_PARTITIONED_RELATION == (classForm)->parttype) - static void AddApplicationNameToPoolerParams() { if (IS_PGXC_COORDINATOR && !IsConnFromCoord() && IsAutoVacuumWorkerProcess()) { @@ -1785,6 +1786,7 @@ static void fetch_global_autovac_info() PG_TRY(); { DEBUG_MOD_START_TIMER(MOD_AUTOVAC); + SPI_STACK_LOG("connect", NULL, NULL); if (SPI_OK_CONNECT != SPI_connect()) { ereport(ERROR, (errcode(ERRCODE_OPERATE_FAILED), errmsg("Unable to connect to execute internal query."))); } @@ -1832,6 +1834,7 @@ static void fetch_global_autovac_info() DEBUG_MOD_STOP_TIMER(MOD_AUTOVAC, "AUTOVAC TIMER: process %u SPI tuples", SPI_processed); connected = false; + SPI_STACK_LOG("finish", NULL, NULL); if (SPI_OK_FINISH != SPI_finish()) { ereport(ERROR, (errcode(ERRCODE_OPERATE_FAILED), errmsg("SPI_finish failed"))); } @@ -1841,8 +1844,10 @@ static void fetch_global_autovac_info() PG_CATCH(); /* Clean up in case of error. */ { DeleteApplicationNameFromPoolerParams(); - if (connected) + if (connected) { + SPI_STACK_LOG("finish", NULL, NULL); SPI_finish(); + } /* Carry on with error handling. */ PopActiveSnapshot(); diff --git a/src/gausskernel/process/postmaster/barrier_arch.cpp b/src/gausskernel/process/postmaster/barrier_arch.cpp index 203019027..1c961e874 100755 --- a/src/gausskernel/process/postmaster/barrier_arch.cpp +++ b/src/gausskernel/process/postmaster/barrier_arch.cpp @@ -35,9 +35,10 @@ #include "pgxc/barrier.h" #include "postmaster/barrier_creator.h" #include "access/obs/obs_am.h" +#include "access/archive/archive_am.h" #include "tcop/tcopprot.h" #include "replication/slot.h" -#include "replication/obswalreceiver.h" +#include "replication/archive_walreceiver.h" #include "securec.h" #include "port.h" #include "utils/postinit.h" @@ -51,20 +52,20 @@ #define atolsn(x) ((XLogRecPtr)strtoul((x), NULL, 0)) -static void write_barrier_id_to_obs(const char* barrier_name, ObsArchiveConfig *archive_obs) +static void write_barrier_id_to_obs(const char* barrier_name, ArchiveConfig *archive_obs) { errno_t rc = 0; - ObsArchiveConfig obsConfig; + ArchiveConfig obsConfig; char pathPrefix[MAXPGPATH] = {0}; ereport(LOG, (errmsg("Write barrierId <%s> to obs start", barrier_name))); /* copy OBS configs to temporary variable for customising file path */ - rc = memcpy_s(&obsConfig, sizeof(ObsArchiveConfig), archive_obs, sizeof(ObsArchiveConfig)); + rc = memcpy_s(&obsConfig, sizeof(ArchiveConfig), archive_obs, sizeof(ArchiveConfig)); securec_check(rc, "", ""); if (!IS_PGXC_COORDINATOR) { - rc = strcpy_s(pathPrefix, MAXPGPATH, obsConfig.obs_prefix); + rc = strcpy_s(pathPrefix, MAXPGPATH, obsConfig.archive_prefix); securec_check(rc, "\0", "\0"); char *p = strrchr(pathPrefix, '/'); if (p == NULL) { @@ -72,10 +73,10 @@ static void write_barrier_id_to_obs(const char* barrier_name, ObsArchiveConfig * errmsg("Obs path prefix is invalid"))); } *p = '\0'; - obsConfig.obs_prefix = pathPrefix; + obsConfig.archive_prefix = pathPrefix; } - obsWrite(BARRIER_FILE, barrier_name, MAX_BARRIER_ID_LENGTH - 1, &obsConfig); + ArchiveWrite(BARRIER_FILE, barrier_name, MAX_BARRIER_ID_LENGTH - 1, &obsConfig); } static void WaitBarrierArch(XLogRecPtr barrierLsn, const char *slotName) @@ -92,11 +93,16 @@ static void WaitBarrierArch(XLogRecPtr barrierLsn, const char *slotName) } if (XLByteLE(pg_atomic_read_u64(&barrierLsn), - pg_atomic_read_u64(&archive_task_status->archive_task.targetLsn))) { + pg_atomic_read_u64(&archive_task_status->archived_lsn))) { break; } CHECK_FOR_INTERRUPTS(); + /* Also check stop flag */ + if (t_thrd.barrier_arch.ready_to_stop) { + ereport(ERROR, (errcode(ERRCODE_ADMIN_SHUTDOWN), errmsg("[BarrierArch] terminating barrier arch" + " due to administrator command"))); + } pg_usleep(100000L); cnt++; @@ -288,7 +294,7 @@ static void CheckBarrierArchCommandStatus(const PGXCNodeAllHandles* conn_handles id))); } -static void QueryBarrierArch(PGXCNodeAllHandles* handles, ObsArchiveConfig *archive_obs) +static void QueryBarrierArch(PGXCNodeAllHandles* handles, ArchiveConfig *archive_obs) { int connCnt = handles->co_conn_count + handles->dn_conn_count; if (connCnt >= g_instance.archive_obs_cxt.max_node_cnt) { @@ -334,7 +340,7 @@ static void QueryBarrierArch(PGXCNodeAllHandles* handles, ObsArchiveConfig *arch } #else -static void SingleBarrierArch(ObsArchiveConfig *archive_obs) +static void SingleBarrierArch(ArchiveConfig *archive_obs) { XLogRecPtr barrierLsn; @@ -455,7 +461,7 @@ NON_EXEC_STATIC void BarrierArchMain(knl_thread_arg* arg) pg_usleep_retry(1000000L, 0); - obsArchiveSlot = getObsReplicationSlotWithName(t_thrd.barrier_arch.slot_name); + obsArchiveSlot = getArchiveReplicationSlotWithName(t_thrd.barrier_arch.slot_name); if (obsArchiveSlot == NULL) { t_thrd.barrier_arch.ready_to_stop = true; ereport(WARNING, (errmsg("[BarrierArch] obs slot not created."))); @@ -504,11 +510,11 @@ NON_EXEC_STATIC void BarrierArchMain(knl_thread_arg* arg) } PGXCNodeAllHandles* handles = GetAllNodesHandles(); - QueryBarrierArch(handles, &obsArchiveSlot->archive_obs); + QueryBarrierArch(handles, &obsArchiveSlot->archive_config); pfree_pgxc_all_handles(handles); #else - SingleBarrierArch(&obsArchiveSlot->archive_obs); + SingleBarrierArch(&obsArchiveSlot->archive_config); #endif } ereport(LOG, (errmsg("[BarrierArch] barrier arch thread exits."))); diff --git a/src/gausskernel/process/postmaster/barrier_creator.cpp b/src/gausskernel/process/postmaster/barrier_creator.cpp index 74802207d..cd95b3fb6 100755 --- a/src/gausskernel/process/postmaster/barrier_creator.cpp +++ b/src/gausskernel/process/postmaster/barrier_creator.cpp @@ -36,7 +36,7 @@ #include "access/obs/obs_am.h" #include "tcop/tcopprot.h" #include "replication/slot.h" -#include "replication/obswalreceiver.h" +#include "replication/archive_walreceiver.h" #include "securec.h" #include "port.h" #include "utils/postinit.h" @@ -96,7 +96,7 @@ static uint64_t read_barrier_id_from_obs(const char *slotName) uint64_t barrier_id; long ts = 0; - if (obs_replication_read_file(BARRIER_FILE, (char *)barrier_name, MAX_BARRIER_ID_LENGTH, slotName)) { + if (ArchiveReplicationReadFile(BARRIER_FILE, (char *)barrier_name, MAX_BARRIER_ID_LENGTH, slotName)) { barrier_name[BARRIER_NAME_LEN - 1] = '\0'; ereport(LOG, (errmsg("[BarrierCreator] read barrier id from obs %s", barrier_name))); } else { @@ -181,6 +181,8 @@ void barrier_creator_main(void) u_sess->attr.attr_common.application_name = pstrdup("BarrierCreator"); g_instance.barrier_creator_cxt.stop = false; + on_shmem_exit(PGXCNodeCleanAndRelease, 0); + barrier_creator_setup_signal_hook(); BaseInit(); @@ -216,6 +218,8 @@ void barrier_creator_main(void) /* Since not using PG_TRY, must reset error stack by hand */ t_thrd.log_cxt.error_context_stack = NULL; + t_thrd.log_cxt.call_stack = NULL; + /* Prevent interrupts while cleaning up */ HOLD_INTERRUPTS(); @@ -235,13 +239,7 @@ void barrier_creator_main(void) /* Now we can allow interrupts again */ RESUME_INTERRUPTS(); - - /* - * Sleep at least 1 second after any error. A write error is likely - * to be repeated, and we don't want to be filling the error logs as - * fast as we can. - */ - pg_usleep(1000000L); + return; } destroy_handles(); oldTryCounter = gstrace_tryblock_entry(&curTryCounter); @@ -264,8 +262,6 @@ void barrier_creator_main(void) SetProcessingMode(NormalProcessing); - on_shmem_exit(PGXCNodeCleanAndRelease, 0); - exec_init_poolhandles(); #ifdef ENABLE_MULTIPLE_NODES @@ -290,7 +286,7 @@ void barrier_creator_main(void) (errmsg("[BarrierCreator] Init connections with CN/DN, dn count : %d, cn count : %d", u_sess->pgxc_cxt.NumDataNodes, u_sess->pgxc_cxt.NumCoords))); g_instance.barrier_creator_cxt.stop = false; - List *archiveSlotNames = get_all_archive_obs_slots_name(); + List *archiveSlotNames = GetAllArchiveSlotsName(); if (archiveSlotNames == NIL || archiveSlotNames->length == 0) { return; } @@ -309,7 +305,7 @@ void barrier_creator_main(void) } pg_usleep_retry(1000000L, 0); - if (g_instance.archive_obs_cxt.obs_slot_num == 0) { + if (g_instance.archive_obs_cxt.archive_slot_num == 0) { g_instance.barrier_creator_cxt.stop = true; break; } diff --git a/src/gausskernel/process/postmaster/bgworker.cpp b/src/gausskernel/process/postmaster/bgworker.cpp index 94f8ba999..10be9aba7 100644 --- a/src/gausskernel/process/postmaster/bgworker.cpp +++ b/src/gausskernel/process/postmaster/bgworker.cpp @@ -40,6 +40,60 @@ bool IsBgWorkerProcess(void) return t_thrd.role == BGWORKER; } +static inline void BgworkerPutBackToFreeList(BackgroundWorker* bgworker) +{ + BGW_HDR* bgworker_base = (BGW_HDR *)g_instance.bgw_base; + errno_t rc = memset_s(bgworker, sizeof(BackgroundWorker), 0, sizeof(BackgroundWorker)); + securec_check(rc, "", ""); + bgworker->links.next = (SHM_QUEUE *)bgworker_base->free_bgws; + bgworker_base->free_bgws = bgworker; +} + +static inline BackgroundWorker* GetFreeBgworker() +{ + BGW_HDR* bgworker_base = (BGW_HDR *)g_instance.bgw_base; + if (!bgworker_base->free_bgws) { + return NULL; + } + BackgroundWorker* bgworker = bgworker_base->free_bgws; + bgworker_base->free_bgws = (BackgroundWorker *)bgworker->links.next; + return bgworker; +} + +void InitBgworkerGlobal(void) +{ + BGW_HDR* bgworker_base = NULL; + BackgroundWorker* bgws = NULL; + bool needPalloc = false; + + MemoryContext oldContext = MemoryContextSwitchTo(INSTANCE_GET_MEM_CXT_GROUP(MEMORY_CONTEXT_CBB)); + if (g_instance.bgw_base == NULL) { + /* Create the g_instance.proc_base shared structure */ + bgworker_base = (BGW_HDR *)CACHELINEALIGN(palloc(sizeof(BGW_HDR) + PG_CACHE_LINE_SIZE)); + g_instance.bgw_base = (void *)bgworker_base; + needPalloc = true; + } else { + bgworker_base = (BGW_HDR *)g_instance.bgw_base; + Assert(bgworker_base->bgws != NULL); + } + pg_atomic_init_u64(&bgworker_base->bgw_id_seq, 1); + + if (needPalloc) { + bgws = (BackgroundWorker*)CACHELINEALIGN( + palloc0(g_max_worker_processes * sizeof(BackgroundWorker) + PG_CACHE_LINE_SIZE)); + bgworker_base->bgws = bgws; + } else { + bgws = bgworker_base->bgws; + } + + for (int i = 0; i < g_max_worker_processes; i++) { + BgworkerPutBackToFreeList(&bgws[i]); + } + + pthread_mutex_init(&g_instance.bgw_base_lock, NULL); + MemoryContextSwitchTo(oldContext); +} + void SetUpBgWorkerTxnEnvironment() { /* resotre transaction context. */ @@ -160,22 +214,25 @@ void BackgroundWorkerMain(void) { BgWorkerContext *bwc = (BgWorkerContext *)t_thrd.bgworker_cxt.bgwcontext; BackgroundWorker *bgw = (BackgroundWorker *)t_thrd.bgworker_cxt.bgworker; + uint64 bgwId = t_thrd.bgworker_cxt.bgworkerId; MemoryContext workerContext = NULL; MemoryContext oldcontext = NULL; sigjmp_buf local_sigjmp_buf; int *oldTryCounter = NULL; int curTryCounter; - if (pg_atomic_fetch_add_u32(&bgw->disable_count, 1) > 0) { + pthread_mutex_lock(&g_instance.bgw_base_lock); + if (bgwId != bgw->bgw_id || pg_atomic_fetch_add_u32(&bgw->disable_count, 1) > 0) { /* The leader disallowed this worker to do index build due to startup time longer than 5s. */ ereport(WARNING, (errmsg("BgWorker thread %lu was disabled for long startup time.", t_thrd.proc_cxt.MyProcPid))); /* Note that we are in the state BGW_NOT_YET_STARTED. */ + pthread_mutex_unlock(&g_instance.bgw_base_lock); goto out; } + pthread_mutex_unlock(&g_instance.bgw_base_lock); BackgroundWorkerInit(); - workerContext = AllocSetContextCreate(t_thrd.top_mem_cxt, "BgWorker", ALLOCSET_DEFAULT_MINSIZE, ALLOCSET_DEFAULT_INITSIZE, ALLOCSET_DEFAULT_MAXSIZE); @@ -192,6 +249,8 @@ void BackgroundWorkerMain(void) /* Since not using PG_TRY, must reset error stack by hand */ t_thrd.log_cxt.error_context_stack = NULL; + t_thrd.log_cxt.call_stack = NULL; + /* Prevent interrupts while cleaning up */ HOLD_INTERRUPTS(); @@ -286,13 +345,22 @@ out: * This can only be called in the _PG_init function of a module library * that's loaded by shared_preload_libraries; otherwise it has no effect. */ -void RegisterBackgroundWorker(BgWorkerContext *bwc) +bool RegisterBackgroundWorker(BgWorkerContext *bwc) { - BackgroundWorker *bgw; - BackgroundWorkerArgs *bwa; + BGW_HDR* bgworker_base = (BGW_HDR *)g_instance.bgw_base; + BackgroundWorker *bgw = NULL; + BackgroundWorkerArgs *bwa = NULL; + + pthread_mutex_lock(&g_instance.bgw_base_lock); + bgw = GetFreeBgworker(); + if (bgw == NULL) { + pthread_mutex_unlock(&g_instance.bgw_base_lock); + ereport(WARNING, (errmsg("There are no more free background workers available"))); + return false; + } + bgw->bgw_id = pg_atomic_fetch_add_u64(&bgworker_base->bgw_id_seq, 1); + pthread_mutex_unlock(&g_instance.bgw_base_lock); - bgw = (BackgroundWorker*)MemoryContextAllocZero( - INSTANCE_GET_MEM_CXT_GROUP(MEMORY_CONTEXT_STORAGE), sizeof(BackgroundWorker)); bgw->bgw_status = BGW_NOT_YET_STARTED; bgw->bgw_status_dur = 0; bgw->disable_count = 0; @@ -301,12 +369,14 @@ void RegisterBackgroundWorker(BgWorkerContext *bwc) bwa = (BackgroundWorkerArgs*)palloc(sizeof(BackgroundWorkerArgs)); bwa->bgwcontext = bwc; bwa->bgworker = bgw; + bwa->bgworkerId = bgw->bgw_id; /* Fork a new worker thread */ bgw->bgw_notify_pid = initialize_util_thread(BGWORKER, bwa); /* Copy the registration data into the registered workers list. */ slist_push_head(&t_thrd.bgworker_cxt.bgwlist, &bgw->rw_lnode); + return true; } static void BgworkerCleanupSharedContext() @@ -339,21 +409,23 @@ loop: alldone = true; slist_foreach_modify(iter, &t_thrd.bgworker_cxt.bgwlist) { BackgroundWorker *bgw = slist_container(BackgroundWorker, rw_lnode, iter.cur); - if (bgw->bgw_status != BGW_FAILED && bgw->bgw_status != BGW_TERMINATED) { - if (!sigsent && gs_signal_send(bgw->bgw_notify_pid, SIGINT) != 0) { - ereport(WARNING, (errmsg("BgworkerListSyncQuit kill(pid %lu, stat %d) failed: %m", - bgw->bgw_notify_pid, bgw->bgw_status))); - } - - if (bgw->bgw_status == BGW_NOT_YET_STARTED && (pg_atomic_fetch_add_u32(&bgw->disable_count, 1) == 0)) { - ereport(WARNING, (errmsg("The bgworker thread %lu hasn't started at the moment " - "when the leader quits, disable it.", bgw->bgw_notify_pid))); + if (bgw->bgw_status == BGW_FAILED || bgw->bgw_status == BGW_TERMINATED) { + slist_delete_current(&iter); + pthread_mutex_lock(&g_instance.bgw_base_lock); + BgworkerPutBackToFreeList(bgw); + pthread_mutex_unlock(&g_instance.bgw_base_lock); + } else if (bgw->bgw_status == BGW_NOT_YET_STARTED) { + alldone = false; + if (++bgw->bgw_status_dur > BGWORKER_STATUS_DURLIMIT && + (pg_atomic_fetch_add_u32(&bgw->disable_count, 1) == 0)) { bgw->bgw_status = BGW_FAILED; } - alldone = false; } else { - slist_delete_current(&iter); - pfree(bgw); + if (!sigsent && gs_signal_send(bgw->bgw_notify_pid, SIGINT) != 0) { + ereport(WARNING, (errmsg("BgworkerListSyncQuit kill(pid %lu, stat %d) failed: %m", + bgw->bgw_notify_pid, bgw->bgw_status))); + } + alldone = false; } } @@ -375,7 +447,9 @@ static inline void CleanupUnstartBgworkers(int nunstarts) if (bgw->bgw_status == BGW_NOT_YET_STARTED) { /* the bgworker thread is unable to start, remove it from the waiting list */ slist_delete_current(&iter); - pfree(bgw); + pthread_mutex_lock(&g_instance.bgw_base_lock); + BgworkerPutBackToFreeList(bgw); + pthread_mutex_unlock(&g_instance.bgw_base_lock); } } } @@ -427,8 +501,9 @@ void BgworkerListWaitFinish(int *nparticipants) } } -void LaunchBackgroundWorkers(int nworkers, void *bgshared, bgworker_main bgmain, bgworker_exit bgexit) +int LaunchBackgroundWorkers(int nworkers, void *bgshared, bgworker_main bgmain, bgworker_exit bgexit) { + int actualWorkers = 0; MemoryContext oldcontext; BgWorkerContext *bwc; @@ -465,9 +540,12 @@ void LaunchBackgroundWorkers(int nworkers, void *bgshared, bgworker_main bgmain, StreamSaveTxnContext(&bwc->transactionCxt); for (int i = 0; i < nworkers; ++i) { - RegisterBackgroundWorker(bwc); + if (RegisterBackgroundWorker(bwc)) { + actualWorkers++; + } } /* Restore previous memory context. */ MemoryContextSwitchTo(oldcontext); + return actualWorkers; } diff --git a/src/gausskernel/process/postmaster/bgwriter.cpp b/src/gausskernel/process/postmaster/bgwriter.cpp index e6b9d6b85..a87be3d69 100755 --- a/src/gausskernel/process/postmaster/bgwriter.cpp +++ b/src/gausskernel/process/postmaster/bgwriter.cpp @@ -62,10 +62,6 @@ #include "gssignal/gs_signal.h" #include "replication/slot.h" -#define MIN(A, B) ((B) < (A) ? (B) : (A)) -#define MAX(A, B) ((B) > (A) ? (B) : (A)) - - /* * Multiplier to apply to BgWriterDelay when we decide to hibernate. * (Perhaps this needs to be configurable?) @@ -95,17 +91,8 @@ extern void write_term_log(uint32 term); /* incremental checkpoint bgwriter thread function */ const int MAX_THREAD_NAME_LEN = 128; -const int MILLISECOND_TO_MICROSECOND = 1000; -#define FULL_CKPT g_instance.ckpt_cxt_ctl->flush_all_dirty_page - -static void candidate_buf_push(int buf_id, int thread_id); -static int64 get_thread_candidate_nums(int thread_id); -static uint32 get_candidate_buf(bool *contain_hashbucket); -static uint32 get_buf_form_dirty_queue(bool *contain_hashbucket); static void drop_rel_all_forks_buffers(); - -#define SEGMENT_BGWRITER_ID (g_instance.bgwriter_cxt.bgwriter_num - 1) -#define IS_SEGMENT_BGWRITER(thread_id) (thread_id == SEGMENT_BGWRITER_ID) +static void drop_rel_one_fork_buffers(); static void setup_bgwriter_signalhook(void) { @@ -145,6 +132,8 @@ static void bgwriter_handle_exceptions(WritebackContext wb_context, MemoryContex /* Since not using PG_TRY, must reset error stack by hand */ t_thrd.log_cxt.error_context_stack = NULL; + t_thrd.log_cxt.call_stack = NULL; + /* Prevent interrupts while cleaning up */ HOLD_INTERRUPTS(); @@ -513,35 +502,29 @@ Datum bgwriter_view_get_node_name() Datum bgwriter_view_get_actual_flush_num() { - return Int64GetDatum(g_instance.bgwriter_cxt.bgwriter_actual_total_flush); + return Int64GetDatum(0); } + Datum bgwriter_view_get_last_flush_num() { - int last_flush_num = 0; - for (int i = 0; i < g_instance.bgwriter_cxt.bgwriter_num; i++) { - if (g_instance.bgwriter_cxt.bgwriter_procs[i].proc != NULL) { - last_flush_num += g_instance.bgwriter_cxt.bgwriter_procs[i].thread_last_flush; - } - } - return Int32GetDatum(last_flush_num); + return Int32GetDatum(0); } Datum bgwriter_view_get_candidate_nums() { - int candidate_num = get_curr_candidate_nums(true) + - get_curr_candidate_nums(false); + int candidate_num = get_curr_candidate_nums(true) + get_curr_candidate_nums(false); return Int32GetDatum(candidate_num); } Datum bgwriter_view_get_num_candidate_list() { - return Int64GetDatum(g_instance.bgwriter_cxt.get_buf_num_candidate_list); + return Int64GetDatum(g_instance.ckpt_cxt_ctl->get_buf_num_candidate_list); } Datum bgwriter_view_get_num_clock_sweep() { - return Int64GetDatum(g_instance.bgwriter_cxt.get_buf_num_clock_sweep); + return Int64GetDatum(g_instance.ckpt_cxt_ctl->get_buf_num_clock_sweep); } const incre_ckpt_view_col g_bgwriter_view_col[INCRE_CKPT_BGWRITER_VIEW_COL_NUM] = { @@ -552,740 +535,6 @@ const incre_ckpt_view_col g_bgwriter_view_col[INCRE_CKPT_BGWRITER_VIEW_COL_NUM] {"get_buffer_from_list", INT8OID, bgwriter_view_get_num_candidate_list}, {"get_buf_clock_sweep", INT8OID, bgwriter_view_get_num_clock_sweep}}; -uint32 incre_ckpt_bgwriter_flush_dirty_page(WritebackContext wb_context, int thread_id, - const CkptSortItem *dirty_buf_list, int start, int batch_num) -{ - uint32 num_actual_flush = 0; - uint32 candidates = 0; - int buf_id_start = g_instance.bgwriter_cxt.bgwriter_procs[thread_id].buf_id_start; - int buf_id_end = buf_id_start + g_instance.bgwriter_cxt.bgwriter_procs[thread_id].cand_list_size; - - for (int i = start; i < start + batch_num; i++) { - uint32 buf_state; - uint32 sync_state; - BufferDesc *buf_desc = NULL; - int buf_id = dirty_buf_list[i].buf_id; - - if (buf_id == DW_INVALID_BUFFER_ID) { - continue; - } - buf_desc = GetBufferDescriptor(buf_id); - buf_state = LockBufHdr(buf_desc); - - if ((buf_state & BM_CHECKPOINT_NEEDED) && (buf_state & BM_DIRTY)) { - UnlockBufHdr(buf_desc, buf_state); - - sync_state = SyncOneBuffer(buf_id, false, &wb_context, true); - if (!(sync_state & BUF_WRITTEN)) { - clean_buf_need_flush_flag(buf_desc); - } else { - num_actual_flush++; - } - - if (buf_id >= buf_id_start && buf_id < buf_id_end) { - buf_state = pg_atomic_read_u32(&buf_desc->state); - if (BUF_STATE_GET_REFCOUNT(buf_state) > 0) { - continue; - } - if (g_instance.bgwriter_cxt.candidate_free_map[buf_id] == false) { - buf_state = LockBufHdr(buf_desc); - if (g_instance.bgwriter_cxt.candidate_free_map[buf_id] == false) { - bool emptyUsageCount = (!u_sess->attr.attr_storage.enable_candidate_buf_usage_count || - BUF_STATE_GET_USAGECOUNT(buf_state) == 0); - if (BUF_STATE_GET_REFCOUNT(buf_state) == 0 && - emptyUsageCount && - !(buf_state & BM_DIRTY)) { - candidate_buf_push(buf_id, thread_id); - candidates++; - g_instance.bgwriter_cxt.candidate_free_map[buf_id] = true; - } - } - UnlockBufHdr(buf_desc, buf_state); - } - } - } else { - buf_state &= (~BM_CHECKPOINT_NEEDED); - UnlockBufHdr(buf_desc, buf_state); - } - } - return num_actual_flush; -} - -void incre_ckpt_bgwriter_flush_page_batch(WritebackContext wb_context, uint32 need_flush_num, - bool is_new_relfilenode) -{ - int thread_id = t_thrd.bgwriter_cxt.thread_id; - BgWriterProc *bgwriter = &g_instance.bgwriter_cxt.bgwriter_procs[thread_id]; - CkptSortItem *dirty_buf_list = bgwriter->dirty_buf_list; - int dw_batch_page_max = GET_DW_DIRTY_PAGE_MAX(is_new_relfilenode); - int runs = (need_flush_num + dw_batch_page_max - 1) / dw_batch_page_max; - int num_actual_flush = 0; - - qsort(dirty_buf_list, need_flush_num, sizeof(CkptSortItem), ckpt_buforder_comparator); - ResourceOwnerEnlargeBuffers(t_thrd.utils_cxt.CurrentResourceOwner); - - /* Double write can only handle at most DW_DIRTY_PAGE_MAX at one time. */ - for (int i = 0; i < runs; i++) { - /* Last batch, take the rest of the buffers */ - int offset = i * dw_batch_page_max; - int batch_num = (i == runs - 1) ? (need_flush_num - offset) : dw_batch_page_max; - uint32 flush_num; - - bgwriter->thrd_dw_cxt.is_new_relfilenode = is_new_relfilenode; - bgwriter->thrd_dw_cxt.dw_page_idx = -1; - dw_perform_batch_flush(batch_num, dirty_buf_list + offset, &bgwriter->thrd_dw_cxt); - flush_num = incre_ckpt_bgwriter_flush_dirty_page(wb_context, thread_id, dirty_buf_list, offset, batch_num); - bgwriter->thrd_dw_cxt.dw_page_idx = -1; - num_actual_flush += flush_num; - } - bgwriter->thread_last_flush = num_actual_flush; - (void)pg_atomic_fetch_add_u64(&g_instance.bgwriter_cxt.bgwriter_actual_total_flush, num_actual_flush); - smgrcloseall(); -} - -void candidate_buf_init(void) -{ - bool found_candidate_buf = false; - bool found_candidate_fm = false; - int buffer_num = TOTAL_BUFFER_NUM; - - /* - * Each thread manages a part of the buffer. Several slots are reserved to - * prevent the thread first and last slots equals. - */ - g_instance.bgwriter_cxt.candidate_buffers = (Buffer *) - ShmemInitStruct("CandidateBuffers", buffer_num * sizeof(Buffer), &found_candidate_buf); - g_instance.bgwriter_cxt.candidate_free_map = (bool *) - ShmemInitStruct("CandidateFreeMap", buffer_num * sizeof(bool), &found_candidate_fm); - - if (found_candidate_buf || found_candidate_fm) { - Assert(found_candidate_buf && found_candidate_fm); - } else { - /* The memory of the memset sometimes exceeds 2 GB. so, memset_s cannot be used. */ - MemSet((char*)g_instance.bgwriter_cxt.candidate_buffers, -1, buffer_num * sizeof(Buffer)); - MemSet((char*)g_instance.bgwriter_cxt.candidate_free_map, 0, buffer_num * sizeof(bool)); - if (g_instance.bgwriter_cxt.bgwriter_procs != NULL) { - int thread_num = g_instance.bgwriter_cxt.bgwriter_num; - int total_num = SharedBufferNumber; - int avg_num = total_num / (thread_num - 1); - for (int i = 0; i < thread_num; i++) { - int start = avg_num * i; - int end = start + avg_num; - if (i == thread_num - 2) { - end += total_num % (thread_num - 1); - } else if (i == thread_num - 1) { - start = SharedBufferNumber; - end = start + SEGMENT_BUFFER_NUM; - } - g_instance.bgwriter_cxt.bgwriter_procs[i].buf_id_start = start; - g_instance.bgwriter_cxt.bgwriter_procs[i].cand_list_size = end - start; - g_instance.bgwriter_cxt.bgwriter_procs[i].cand_buf_list = - &g_instance.bgwriter_cxt.candidate_buffers[start]; - g_instance.bgwriter_cxt.bgwriter_procs[i].head = 0; - g_instance.bgwriter_cxt.bgwriter_procs[i].tail = 0; - } - } - } -} - -const int MAX_BGWRITER_FLUSH_NUM = 1000 * DW_DIRTY_PAGE_MAX_FOR_NOHBK; -void incre_ckpt_bgwriter_cxt_init() -{ - MemoryContext oldcontext = MemoryContextSwitchTo(g_instance.increCheckPoint_context); - int thread_num = get_fixed_bgwriter_thread_num(); - - g_instance.bgwriter_cxt.bgwriter_num = thread_num; - g_instance.bgwriter_cxt.bgwriter_procs = (BgWriterProc *)palloc0(sizeof(BgWriterProc) * thread_num); - - uint32 dirty_list_size = MAX_BGWRITER_FLUSH_NUM / thread_num; - int total_num = SharedBufferNumber; - int avg_num = total_num / (thread_num - 1); - for (int i = 0; i < thread_num; i++) { - int start = avg_num * i; - int end = start + avg_num; - if (i == thread_num - 2) { - end += total_num % (thread_num - 1); - } else if (i == thread_num - 1) { - start = SharedBufferNumber; - end = start + SEGMENT_BUFFER_NUM; - } - g_instance.bgwriter_cxt.bgwriter_procs[i].buf_id_start = start; - g_instance.bgwriter_cxt.bgwriter_procs[i].cand_list_size = end - start; - g_instance.bgwriter_cxt.bgwriter_procs[i].cand_buf_list = &g_instance.bgwriter_cxt.candidate_buffers[start]; - /* bgwriter thread dw cxt init */ - char *unaligned_buf = (char*)palloc0((DW_BUF_MAX_FOR_NOHBK + 1) * BLCKSZ); - g_instance.bgwriter_cxt.bgwriter_procs[i].thrd_dw_cxt.dw_buf = (char*)TYPEALIGN(BLCKSZ, unaligned_buf); - g_instance.bgwriter_cxt.bgwriter_procs[i].thrd_dw_cxt.dw_page_idx = -1; - g_instance.bgwriter_cxt.bgwriter_procs[i].thrd_dw_cxt.is_new_relfilenode = false; - g_instance.bgwriter_cxt.bgwriter_procs[i].dirty_list_size = dirty_list_size; - g_instance.bgwriter_cxt.bgwriter_procs[i].dirty_buf_list = - (CkptSortItem *)palloc0(dirty_list_size * sizeof(CkptSortItem)); - } - - (void)MemoryContextSwitchTo(oldcontext); -} - -static void incre_ckpt_bgwriter_kill(int code, Datum arg) -{ - int id = t_thrd.bgwriter_cxt.thread_id; - Assert(id >= 0 && id < g_instance.bgwriter_cxt.bgwriter_num); - - /* Making sure that we mark our exit status */ - g_instance.bgwriter_cxt.bgwriter_procs[id].thrd_dw_cxt.dw_page_idx = -1; - - /* Decrements the current number of active bgwriter and reset it's PROC pointer. */ - (void)pg_atomic_fetch_sub_u32(&g_instance.bgwriter_cxt.curr_bgwriter_num, 1); - g_instance.bgwriter_cxt.bgwriter_procs[id].proc = NULL; - return; -} - -static int64 get_bgwriter_sleep_time() -{ - uint64 now; - int64 time_diff; - int thread_id = t_thrd.bgwriter_cxt.thread_id; - bool segment_bgwriter = IS_SEGMENT_BGWRITER(thread_id); - - /* If primary instance do full checkpoint and not the first bgwriter thread, can scan the dirty - * page queue, help the pagewriter thread finish the dirty page flush. - */ - if (FULL_CKPT && !RecoveryInProgress() && - (thread_id > 0 && !segment_bgwriter)) { - return 0; - } - - now = get_time_ms(); - if (t_thrd.bgwriter_cxt.next_flush_time > now) { - time_diff = t_thrd.bgwriter_cxt.next_flush_time - now; - } else { - time_diff = 0; - } - time_diff = MIN(time_diff, u_sess->attr.attr_storage.BgWriterDelay); - return time_diff; -} - -/** - * @Description: incremental checkpoint buffer writer main function - */ -void incre_ckpt_background_writer_main(void) -{ - sigjmp_buf localSigjmpBuf; - MemoryContext bgwriter_context; - char name[MAX_THREAD_NAME_LEN] = {0}; - WritebackContext wb_context; - int thread_id = t_thrd.bgwriter_cxt.thread_id; - BgWriterProc *bgwriter = &g_instance.bgwriter_cxt.bgwriter_procs[thread_id]; - bool segment_bgwriter = IS_SEGMENT_BGWRITER(thread_id); - uint32 targetNum = segment_bgwriter ? SEGMENT_BUFFER_NUM : NORMAL_SHARED_BUFFER_NUM; - uint64 now; - - t_thrd.role = BGWRITER; - - setup_bgwriter_signalhook(); - ereport(LOG, (errmodule(MOD_INCRE_BG), errmsg("bgwriter started, thread id is %d", thread_id))); - - Assert(thread_id >= 0); - errno_t err_rc = snprintf_s(name, MAX_THREAD_NAME_LEN, MAX_THREAD_NAME_LEN - 1, "%s%d", "bgwriter", thread_id); - securec_check_ss(err_rc, "", ""); - - /* - * Create a resource owner to keep track of our resources (currently only buffer pins). - */ - t_thrd.utils_cxt.CurrentResourceOwner = ResourceOwnerCreate(NULL, name, - THREAD_GET_MEM_CXT_GROUP(MEMORY_CONTEXT_STORAGE)); - - /* - * Create a memory context that we will do all our work in. We do this so - * that we can reset the context during error recovery and thereby avoid - * possible memory leaks. Formerly this code just ran in - * t_thrd.top_mem_cxt, but resetting that would be a really bad idea. - */ - bgwriter_context = AllocSetContextCreate(t_thrd.top_mem_cxt, name, ALLOCSET_DEFAULT_MINSIZE, - ALLOCSET_DEFAULT_INITSIZE, ALLOCSET_DEFAULT_MAXSIZE); - MemoryContextSwitchTo(bgwriter_context); - - WritebackContextInit(&wb_context, &u_sess->attr.attr_storage.bgwriter_flush_after); - on_shmem_exit(incre_ckpt_bgwriter_kill, (Datum)0); - - if (sigsetjmp(localSigjmpBuf, 1) != 0) { - ereport(WARNING, (errmodule(MOD_INCRE_BG), errmsg("bgwriter exception occured."))); - bgwriter->thrd_dw_cxt.dw_page_idx = -1; - bgwriter_handle_exceptions(wb_context, bgwriter_context); - } - - /* We can now handle ereport(ERROR) */ - t_thrd.log_cxt.PG_exception_stack = &localSigjmpBuf; - - /* - * Unblock signals (they were blocked when the postmaster forked us) - */ - gs_signal_setmask(&t_thrd.libpq_cxt.UnBlockSig, NULL); - (void)gs_signal_unblock_sigusr2(); - - /* - * Use the recovery target timeline ID during recovery - */ - if (RecoveryInProgress()) { - t_thrd.xlog_cxt.ThisTimeLineID = GetRecoveryTargetTLI(); - } - - now = get_time_ms(); - t_thrd.bgwriter_cxt.next_flush_time = now + u_sess->attr.attr_storage.BgWriterDelay; - - pgstat_report_appname("IncrBgWriter"); - pgstat_report_activity(STATE_IDLE, NULL); - - /* Loop forever */ - for (;;) { - int rc; - bool is_new_relfilenode = false; - uint32 need_flush_num = 0; - int64 sleep_time = 0; - - if (t_thrd.bgwriter_cxt.got_SIGHUP) { - t_thrd.bgwriter_cxt.got_SIGHUP = false; - ProcessConfigFile(PGC_SIGHUP); - } - - if (t_thrd.bgwriter_cxt.shutdown_requested) { - /* the first thread should exit last */ - if (thread_id == 0) { - while (pg_atomic_read_u32(&g_instance.bgwriter_cxt.curr_bgwriter_num) > 1) { - pg_usleep(MILLISECOND_TO_MICROSECOND); - continue; - } - /* - * From here on, elog(ERROR) should end with exit(1), not send - * control back to the sigsetjmp block above - */ - ereport(LOG, (errmodule(MOD_INCRE_BG), errmsg("bgwriter thread shut down, id is %d", thread_id))); - u_sess->attr.attr_common.ExitOnAnyError = true; - /* Normal exit from the bgwriter is here */ - proc_exit(0); /* done */ - } else { - ereport(LOG, (errmodule(MOD_INCRE_BG), errmsg("bgwriter thread shut down, id is %d", thread_id))); - u_sess->attr.attr_common.ExitOnAnyError = true; - proc_exit(0); - } - } - - pgstat_report_activity(STATE_IDLE, NULL); - sleep_time = get_bgwriter_sleep_time(); - rc = WaitLatch(&t_thrd.proc->procLatch, WL_LATCH_SET | WL_TIMEOUT | WL_POSTMASTER_DEATH, sleep_time); - if (rc & WL_POSTMASTER_DEATH) { - gs_thread_exit(1); - } - - /* Clear any already-pending wakeups */ - ResetLatch(&t_thrd.proc->procLatch); - - pgstat_report_activity(STATE_RUNNING, NULL); - - now = get_time_ms(); - t_thrd.bgwriter_cxt.next_flush_time = now + u_sess->attr.attr_storage.BgWriterDelay; - - if (get_curr_candidate_nums(segment_bgwriter) == targetNum) { - continue; - } - /* - * When the primary instance do full checkpoint, the first thread remain scan the - * buffer pool to maintain the candidate buffer list, other threads scan the dirty - * page queue and flush pages in sequence. - * Standby redo the checkpoint xlog, which is similar to full checkpoint, so the - * bgwirter thread only scan the buffer pool to maintain the candidate buffer list. - */ - if (FULL_CKPT && !RecoveryInProgress() && - (thread_id > 0 && !segment_bgwriter)) { - need_flush_num = get_buf_form_dirty_queue(&is_new_relfilenode); - } else { - need_flush_num = get_candidate_buf(&is_new_relfilenode); - } - - if (need_flush_num == 0) { - continue; - } - - incre_ckpt_bgwriter_flush_page_batch(wb_context, need_flush_num, is_new_relfilenode); - } -} - -int get_bgwriter_thread_id(void) -{ - if (t_thrd.bgwriter_cxt.thread_id != -1) { - return t_thrd.bgwriter_cxt.thread_id; - } - - /* - * The first bgwriter thread start, will be placed in the writer_proc slot in order. Some - * condition, some bgwriter thread exit, It must be placed in the corresponding slot. - */ - int id = pg_atomic_fetch_add_u32(&g_instance.bgwriter_cxt.curr_bgwriter_num, 1); - if (g_instance.bgwriter_cxt.bgwriter_procs[id].proc == NULL) { - g_instance.bgwriter_cxt.bgwriter_procs[id].proc = t_thrd.proc; - t_thrd.bgwriter_cxt.thread_id = id; - } else { - for (int i = 0; i < g_instance.bgwriter_cxt.bgwriter_num; i++) { - void *expected = NULL; - if (pg_atomic_compare_exchange_uintptr( - (uintptr_t *)&g_instance.bgwriter_cxt.bgwriter_procs[i].proc, - (uintptr_t *)&expected, (uintptr_t)t_thrd.proc)) { - t_thrd.bgwriter_cxt.thread_id = i; - break; - } - } - } - - Assert(t_thrd.bgwriter_cxt.thread_id >= 0 && t_thrd.bgwriter_cxt.thread_id < g_instance.bgwriter_cxt.bgwriter_num); - return t_thrd.bgwriter_cxt.thread_id; -} - -const float GAP_PERCENT = 0.15; -static uint32 get_bgwriter_flush_num() -{ - double percent_target = u_sess->attr.attr_storage.candidate_buf_percent_target; - int thread_id = t_thrd.bgwriter_cxt.thread_id; - bool segment_bgwriter = IS_SEGMENT_BGWRITER(thread_id); - uint32 dirty_list_size = g_instance.bgwriter_cxt.bgwriter_procs[thread_id].dirty_list_size; - uint32 cur_candidate_num; - uint32 total_target; - uint32 high_water_mark; - uint32 flush_num = 0; - uint32 min_io = DW_DIRTY_PAGE_MAX_FOR_NOHBK; - uint32 max_io = calculate_thread_max_flush_num(false); - int buffer_num = segment_bgwriter ? SEGMENT_BUFFER_NUM : NORMAL_SHARED_BUFFER_NUM; - int normal_buffer = NORMAL_SHARED_BUFFER_NUM / (g_instance.bgwriter_cxt.bgwriter_num - 1); - int thread_num = (SEGMENT_BUFFER_NUM >= normal_buffer) ? - g_instance.bgwriter_cxt.bgwriter_num : - g_instance.bgwriter_cxt.bgwriter_num - 1; - total_target = buffer_num * percent_target; - high_water_mark = buffer_num * (percent_target + GAP_PERCENT); - cur_candidate_num = get_curr_candidate_nums(segment_bgwriter); - - /* If the slots are sufficient, the standby DN does not need to flush too many pages. */ - if (RecoveryInProgress() && cur_candidate_num >= total_target / 2) { - max_io = max_io / 2; - } - - /* max_io need greater than one batch flush num, and need less than the dirty list size */ - max_io = max_io / thread_num; - if (segment_bgwriter && SEGMENT_BUFFER_NUM < normal_buffer) { - max_io = ((double)SEGMENT_BUFFER_NUM / normal_buffer) * max_io; - } - max_io = MAX(max_io, DW_DIRTY_PAGE_MAX_FOR_NOHBK); - max_io = MIN(max_io, dirty_list_size); - - if (cur_candidate_num >= high_water_mark) { - flush_num = min_io; /* only flush one batch dirty page */ - } else if (cur_candidate_num >= total_target) { - flush_num = min_io + (float)(high_water_mark - cur_candidate_num) / - (float)(high_water_mark - total_target) * (max_io - min_io); - } else { - /* every time only flush max_io dirty pages */ - flush_num = max_io; - } - - ereport(DEBUG1, (errmodule(MOD_INCRE_BG), - errmsg("bgwriter flush_num num is %u, now candidate buf is %u", flush_num, cur_candidate_num))); - return flush_num; -} - -const int MAX_SCAN_BATCH_NUM = 131072 * 10; /* 10GB buffers */ -/** - * @Description: Scan n buffers in the BufferPool from start, put - * the unreferenced and not dirty page into the candidate list. - * @in: bgwirter thread dirty buf list pointer - * @in: bgwriter thread id - * @out: Return the number of dirty buffers and dirty buffer list and this batch buffer whether hashbucket is included. - */ -static uint32 get_candidate_buf(bool *contain_hashbucket) -{ - uint32 need_flush_num = 0; - uint32 candidates = 0; - BufferDesc *buf_desc = NULL; - uint32 local_buf_state; - CkptSortItem* item = NULL; - uint32 max_flush_num = get_bgwriter_flush_num(); - int thread_id = t_thrd.bgwriter_cxt.thread_id; - bool segment_bgwriter = IS_SEGMENT_BGWRITER(thread_id); - BgWriterProc *bgwriter = &g_instance.bgwriter_cxt.bgwriter_procs[thread_id]; - CkptSortItem *dirty_buf_list = bgwriter->dirty_buf_list; - int batch_scan_num = MIN(bgwriter->cand_list_size, MAX_SCAN_BATCH_NUM); - int start = MAX(bgwriter->buf_id_start, bgwriter->next_scan_loc); - int end = bgwriter->buf_id_start + bgwriter->cand_list_size; - bool check_not_need_flush = false; - - end = MIN(start + batch_scan_num, end); - - for (int buf_id = start; buf_id < end; buf_id++) { - bool need_scan_dirty_queue = FULL_CKPT && !RecoveryInProgress() && thread_id > 0 && !segment_bgwriter; - if (need_scan_dirty_queue) { - break; - } - - buf_desc = GetBufferDescriptor(buf_id); - local_buf_state = pg_atomic_read_u32(&buf_desc->state); - - ResourceOwnerEnlargeBuffers(t_thrd.utils_cxt.CurrentResourceOwner); - Block tmpBlock = BufHdrGetBlock(buf_desc); - bool check_lsn_not_match = (local_buf_state & BM_TAG_VALID) && !(local_buf_state & BM_DIRTY) && - XLByteLT(buf_desc->lsn_on_disk, PageGetLSN(tmpBlock)) && RecoveryInProgress() && !segment_bgwriter; - - if (check_lsn_not_match) { - PinBuffer(buf_desc, NULL); - LockBuffer(BufferDescriptorGetBuffer(buf_desc), LW_SHARED); - pg_memory_barrier(); - local_buf_state = pg_atomic_read_u32(&buf_desc->state); - check_lsn_not_match = (local_buf_state & BM_TAG_VALID) && !(local_buf_state & BM_DIRTY) && - XLByteLT(buf_desc->lsn_on_disk, PageGetLSN(tmpBlock)) && RecoveryInProgress(); - if (check_lsn_not_match) { - MarkBufferDirty(BufferDescriptorGetBuffer(buf_desc)); - LWLockRelease(buf_desc->content_lock); - UnpinBuffer(buf_desc, true); - const uint32 shiftSize = 32; - ereport(DEBUG1, (errmodule(MOD_INCRE_BG), - errmsg("check lsn is not matched on disk:%X/%X on page %X/%X, relnode info:%u/%u/%u %u %u stat:%u", - (uint32)(buf_desc->lsn_on_disk >> shiftSize), (uint32)(buf_desc->lsn_on_disk), - (uint32)(PageGetLSN(tmpBlock) >> shiftSize), (uint32)(PageGetLSN(tmpBlock)), - buf_desc->tag.rnode.spcNode, buf_desc->tag.rnode.dbNode, buf_desc->tag.rnode.relNode, - buf_desc->tag.blockNum, buf_desc->tag.forkNum, local_buf_state))); - - if (need_flush_num < bgwriter->dirty_list_size) { - local_buf_state = LockBufHdr(buf_desc); - goto PUSH_DIRTY; - } else { - continue; - } - } else { - LWLockRelease(buf_desc->content_lock); - UnpinBuffer(buf_desc, true); - } - } - - /* Dirty read, pinned buffer, skip */ - if (BUF_STATE_GET_REFCOUNT(local_buf_state) > 0) { - continue; - } - - local_buf_state = LockBufHdr(buf_desc); - if (BUF_STATE_GET_REFCOUNT(local_buf_state) > 0) { - goto UNLOCK; - } - - if (u_sess->attr.attr_storage.enable_candidate_buf_usage_count) { - if (BUF_STATE_GET_USAGECOUNT(local_buf_state) != 0) { - local_buf_state -= BUF_USAGECOUNT_ONE; - goto UNLOCK; - } - } - - /* Not dirty, put directly into flushed candidates */ - if (!(local_buf_state & BM_DIRTY)) { - if (g_instance.bgwriter_cxt.candidate_free_map[buf_id] == false) { - candidate_buf_push(buf_id, thread_id); - g_instance.bgwriter_cxt.candidate_free_map[buf_id] = true; - candidates++; - } - goto UNLOCK; - } - - check_not_need_flush = (need_flush_num >= max_flush_num || (!RecoveryInProgress() - && XLogNeedsFlush(BufferGetLSN(buf_desc)))); - if (check_not_need_flush) { - goto UNLOCK; - } -PUSH_DIRTY: - if (!(local_buf_state & BM_CHECKPOINT_NEEDED)) { - local_buf_state |= BM_CHECKPOINT_NEEDED; - item = &dirty_buf_list[need_flush_num++]; - item->buf_id = buf_id; - item->tsId = buf_desc->tag.rnode.spcNode; - item->relNode = buf_desc->tag.rnode.relNode; - item->bucketNode = buf_desc->tag.rnode.bucketNode; - item->forkNum = buf_desc->tag.forkNum; - item->blockNum = buf_desc->tag.blockNum; - if (IsSegmentFileNode(buf_desc->tag.rnode)) { - *contain_hashbucket = true; - } - } -UNLOCK: - UnlockBufHdr(buf_desc, local_buf_state); - } - - if (end >= bgwriter->buf_id_start + bgwriter->cand_list_size) { - bgwriter->next_scan_loc = bgwriter->buf_id_start; - } else { - bgwriter->next_scan_loc = end; - } - - ereport(DEBUG1, (errmodule(MOD_INCRE_BG), - errmsg("get_candidate_buf %u buf, total candidate num is %u, thread num is %ld, sent %u to flush", - candidates, get_curr_candidate_nums(segment_bgwriter), - get_thread_candidate_nums(thread_id), need_flush_num))); - return need_flush_num; -} - -const int MAX_SCAN_NUM = 131072; /* 1GB buffers */ -static uint32 get_buf_form_dirty_queue(bool *contain_hashbucket) -{ - uint32 need_flush_num = 0; - BufferDesc *buf_desc = NULL; - uint32 local_buf_state; - CkptSortItem* item = NULL; - int thread_id = t_thrd.bgwriter_cxt.thread_id; - BgWriterProc *bgwriter = &g_instance.bgwriter_cxt.bgwriter_procs[thread_id]; - CkptSortItem *dirty_buf_list = bgwriter->dirty_buf_list; - XLogRecPtr redo = g_instance.ckpt_cxt_ctl->full_ckpt_redo_ptr; - uint64 dirty_queue_head = pg_atomic_read_u64(&g_instance.ckpt_cxt_ctl->dirty_page_queue_head); - uint64 scan_end = MIN(MAX_SCAN_NUM, get_dirty_page_num()); - - for (uint64 i = 0;i < scan_end; i++) { - Buffer buffer; - uint64 temp_loc = (dirty_queue_head + i) % g_instance.ckpt_cxt_ctl->dirty_page_queue_size; - volatile DirtyPageQueueSlot* slot = &g_instance.ckpt_cxt_ctl->dirty_page_queue[temp_loc]; - - /* slot location is pre-occupied, but the buffer not set finish, need break. */ - if (!(pg_atomic_read_u32(&slot->slot_state) & SLOT_VALID)) { - break; - } - pg_read_barrier(); - buffer = slot->buffer; - /* slot state is valid, buffer is invalid, the slot buffer set 0 when BufferAlloc or InvalidateBuffer */ - if (BufferIsInvalid(buffer)) { - continue; /* this tempLoc maybe set 0 when remove dirty page */ - } - buf_desc = GetBufferDescriptor(buffer - 1); - local_buf_state = LockBufHdr(buf_desc); - - if (XLByteLT(redo, buf_desc->rec_lsn)) { - UnlockBufHdr(buf_desc, local_buf_state); - break; - } - - if ((local_buf_state & BM_DIRTY) && !(local_buf_state & BM_CHECKPOINT_NEEDED)) { - local_buf_state |= BM_CHECKPOINT_NEEDED; - item = &dirty_buf_list[need_flush_num++]; - item->buf_id = buffer - 1; - item->tsId = buf_desc->tag.rnode.spcNode; - item->relNode = buf_desc->tag.rnode.relNode; - item->bucketNode = buf_desc->tag.rnode.bucketNode; - item->forkNum = buf_desc->tag.forkNum; - item->blockNum = buf_desc->tag.blockNum; - if (IsSegmentFileNode(buf_desc->tag.rnode)) { - *contain_hashbucket = true; - } - } - UnlockBufHdr(buf_desc, local_buf_state); - if (need_flush_num >= GET_DW_DIRTY_PAGE_MAX(*contain_hashbucket)) { - break; - } - } - ereport(DEBUG1, (errmodule(MOD_INCRE_BG), - errmsg("get_candidate_buf_full_ckpt, sent %u to flush", need_flush_num))); - return need_flush_num; -} - -/** - * @Description: Push buffer bufId to thread threadId's candidate list. - * @in: buf_id, buffer id which need push to the list - * @in: thread_id, bgwriter thread id - */ -static void candidate_buf_push(int buf_id, int thread_id) -{ - BgWriterProc *bgwriter = &g_instance.bgwriter_cxt.bgwriter_procs[thread_id]; - uint32 list_size = bgwriter->cand_list_size; - uint32 tail_loc; - - pg_memory_barrier(); - volatile uint64 head = pg_atomic_read_u64(&bgwriter->head); - pg_memory_barrier(); - volatile uint64 tail = pg_atomic_read_u64(&bgwriter->tail); - - if (unlikely(tail - head >= list_size)) { - Assert(0); - return; - } - tail_loc = tail % list_size; - bgwriter->cand_buf_list[tail_loc] = buf_id; - (void)pg_atomic_fetch_add_u64(&bgwriter->tail, 1); - pg_memory_barrier(); -} - -/** - * @Description: Pop a buffer from the head of thread threadId's candidate list and store the buffer in buf_id. - * @in: buf_id, store the buffer id from the list. - * @in: thread_id, bgwriter thread id - */ -bool candidate_buf_pop(int *buf_id, int thread_id) -{ - BgWriterProc *bgwriter = &g_instance.bgwriter_cxt.bgwriter_procs[thread_id]; - uint32 list_size = bgwriter->cand_list_size; - uint32 head_loc; - - while (true) { - pg_memory_barrier(); - uint64 head = pg_atomic_read_u64(&bgwriter->head); - pg_memory_barrier(); - volatile uint64 tail = pg_atomic_read_u64(&bgwriter->tail); - - if (unlikely(head >= tail)) { - return false; /* candidate list is empty */ - } - - head_loc = head % list_size; - *buf_id = bgwriter->cand_buf_list[head_loc]; - if (pg_atomic_compare_exchange_u64(&bgwriter->head, &head, head + 1)) { - pg_memory_barrier(); - return true; - } - } -} - -static int64 get_thread_candidate_nums(int thread_id) -{ - BgWriterProc *bgwriter = &g_instance.bgwriter_cxt.bgwriter_procs[thread_id]; - volatile uint64 head = pg_atomic_read_u64(&bgwriter->head); - pg_memory_barrier(); - volatile uint64 tail = pg_atomic_read_u64(&bgwriter->tail); - int64 curr_cand_num = tail - head; - Assert(curr_cand_num >= 0); - return curr_cand_num; -} - -/** - * @Description: Return a rough estimate of the current number of buffers in the candidate list. - */ -uint32 get_curr_candidate_nums(bool segment) -{ - uint32 currCandidates = 0; - - if (segment && SEGMENT_BGWRITER_ID >= 0) { - BgWriterProc *curr_writer = &g_instance.bgwriter_cxt.bgwriter_procs[SEGMENT_BGWRITER_ID]; - if (curr_writer->proc != NULL) { - currCandidates = get_thread_candidate_nums(SEGMENT_BGWRITER_ID); - } - return currCandidates; - } - - for (int i = 0; i < g_instance.bgwriter_cxt.bgwriter_num; i++) { - BgWriterProc *curr_writer = &g_instance.bgwriter_cxt.bgwriter_procs[i]; - if (curr_writer->proc != NULL) { - currCandidates += get_thread_candidate_nums(i); - } - } - return currCandidates; -} - -void ckpt_shutdown_bgwriter() -{ - if (!g_instance.attr.attr_storage.enableIncrementalCheckpoint) { - return; - } - /* Wait for all buffer writer threads to exit. */ - while (pg_atomic_read_u32(&g_instance.bgwriter_cxt.curr_bgwriter_num) != 0) { - pg_usleep(MILLISECOND_TO_MICROSECOND); - } -} - const uint THREAD_SLEEP_TIME = 10 * 60 * 1000; void invalid_buffer_bgwriter_main() @@ -1361,6 +610,7 @@ void invalid_buffer_bgwriter_main() /* Clear any already-pending wakeups */ ResetLatch(&t_thrd.proc->procLatch); drop_rel_all_forks_buffers(); + drop_rel_one_fork_buffers(); } } @@ -1392,6 +642,33 @@ HTAB *relfilenode_hashtbl_create(const char *name, bool use_heap_mem) return hashtbl; } +HTAB *relfilenode_fork_hashtbl_create(const char* name, bool use_heap_mem) +{ + HASHCTL hashCtrl; + HTAB *hashtbl = NULL; + errno_t rc; + + rc = memset_s(&hashCtrl, sizeof(hashCtrl), 0, sizeof(hashCtrl)); + securec_check(rc, "", ""); + hashCtrl.hcxt = (MemoryContext)CurrentMemoryContext; + hashCtrl.hash = tag_hash; + hashCtrl.keysize = sizeof(ForkRelFileNode); + /* keep entrysize >= keysize, stupid limits */ + hashCtrl.entrysize = sizeof(DelForkFileTag); + + if (use_heap_mem) { + hashtbl = HeapMemInitHash(name, HASH_TABLE_ELEMENT_MIN_NUM, + Max(g_instance.attr.attr_common.max_files_per_process, t_thrd.storage_cxt.max_userdatafiles), + &hashCtrl, (HASH_FUNCTION | HASH_ELEM)); + if (hashtbl == NULL) { + ereport(FATAL, (errmsg("could not initialize unlinik relation hash table"))); + } + } else { + hashtbl = hash_create(name, HASH_TABLE_ELEMENT_MIN_NUM, &hashCtrl, (HASH_CONTEXT | HASH_FUNCTION | HASH_ELEM)); + } + return hashtbl; +} + static void drop_rel_all_forks_buffers() { HASH_SEQ_STATUS status; @@ -1450,3 +727,60 @@ static void drop_rel_all_forks_buffers() hash_destroy(rel_bak); } +static void drop_rel_one_fork_buffers() +{ + HASH_SEQ_STATUS status; + DelForkFileTag *entry = NULL; + DelForkFileTag *temp_entry = NULL; + bool found = false; + uint rel_num = 0; + HTAB *unlink_rel_fork_hashtbl = g_instance.bgwriter_cxt.unlink_rel_fork_hashtbl; + HTAB *rel_bak = relfilenode_fork_hashtbl_create("unlink_rel_one_fork_bak", false); + /* Obtains the entry in hashtable. */ + LWLockAcquire(g_instance.bgwriter_cxt.rel_one_fork_hashtbl_lock, LW_SHARED); + hash_seq_init(&status, unlink_rel_fork_hashtbl); + while ((temp_entry = (DelForkFileTag *)hash_seq_search(&status)) != NULL) { + entry = (DelForkFileTag*)hash_search(rel_bak, temp_entry, HASH_ENTER, &found); + if (!found) { + entry->forkrnode.rnode.spcNode = temp_entry->forkrnode.rnode.spcNode; + entry->forkrnode.rnode.dbNode = temp_entry->forkrnode.rnode.dbNode; + entry->forkrnode.rnode.relNode = temp_entry->forkrnode.rnode.relNode; + entry->forkrnode.rnode.bucketNode = temp_entry->forkrnode.rnode.bucketNode; + entry->forkrnode.forkNum = temp_entry->forkrnode.forkNum; + entry->maxSegNo = temp_entry->maxSegNo; + rel_num++; + } + } + LWLockRelease(g_instance.bgwriter_cxt.rel_one_fork_hashtbl_lock); + + if (rel_num > 0) { + DropRelFileNodeOneForkAllBuffersUsingHash(rel_bak); + hash_seq_init(&status, rel_bak); + while ((temp_entry = (DelForkFileTag *)hash_seq_search(&status)) != NULL) { + if (temp_entry->maxSegNo == -1) { + ereport(DEBUG1, (errmodule(MOD_INCRE_BG), + errmsg("the max segno is -1, skip forget this rel %u/%u/%u, bucketNode is %d", + temp_entry->forkrnode.rnode.spcNode, temp_entry->forkrnode.rnode.dbNode, + temp_entry->forkrnode.rnode.relNode, temp_entry->forkrnode.rnode.bucketNode))); + continue; + } + for (int32 i = 0; i < temp_entry->maxSegNo; i++) { + md_register_forget_request(temp_entry->forkrnode.rnode, temp_entry->forkrnode.forkNum, i); + } + LWLockAcquire(g_instance.bgwriter_cxt.rel_one_fork_hashtbl_lock, LW_EXCLUSIVE); + if (hash_search(unlink_rel_fork_hashtbl, (void *)temp_entry, HASH_REMOVE, NULL) == NULL) { + LWLockRelease(g_instance.bgwriter_cxt.rel_one_fork_hashtbl_lock); + hash_destroy(rel_bak); + ereport(ERROR, (errcode(ERRCODE_DATA_CORRUPTED), errmsg("unlink rel one fork hash table corrupted"))); + } else { + ereport(LOG, (errcode(ERRCODE_DATA_CORRUPTED), errmsg("invalidate buffer has been finished for rel " + "%u/%u/%u, bucketNode is %d, forkNum is %d", + temp_entry->forkrnode.rnode.spcNode, temp_entry->forkrnode.rnode.dbNode, + temp_entry->forkrnode.rnode.relNode, temp_entry->forkrnode.rnode.bucketNode, + temp_entry->forkrnode.forkNum))); + } + LWLockRelease(g_instance.bgwriter_cxt.rel_one_fork_hashtbl_lock); + } + } + hash_destroy(rel_bak); +} diff --git a/src/gausskernel/process/postmaster/cbmwriter.cpp b/src/gausskernel/process/postmaster/cbmwriter.cpp index 8c42ff7b4..380108e9c 100755 --- a/src/gausskernel/process/postmaster/cbmwriter.cpp +++ b/src/gausskernel/process/postmaster/cbmwriter.cpp @@ -62,7 +62,7 @@ void CBMWriterMain(void) ResourceOwner cbmwriter_resourceOwner; ereport(LOG, (errmsg("cbm writer started"))); - u_sess->attr.attr_storage.CheckPointTimeout = g_instance.attr.attr_storage.enableIncrementalCheckpoint + u_sess->attr.attr_storage.CheckPointTimeout = ENABLE_INCRE_CKPT ? u_sess->attr.attr_storage.incrCheckPointTimeout : u_sess->attr.attr_storage.fullCheckPointTimeout; @@ -132,6 +132,8 @@ void CBMWriterMain(void) /* Since not using PG_TRY, must reset error stack by hand */ t_thrd.log_cxt.error_context_stack = NULL; + t_thrd.log_cxt.call_stack = NULL; + /* Prevent interrupts while cleaning up */ HOLD_INTERRUPTS(); @@ -206,7 +208,7 @@ void CBMWriterMain(void) if (t_thrd.cbm_cxt.got_SIGHUP) { t_thrd.cbm_cxt.got_SIGHUP = false; ProcessConfigFile(PGC_SIGHUP); - u_sess->attr.attr_storage.CheckPointTimeout = g_instance.attr.attr_storage.enableIncrementalCheckpoint + u_sess->attr.attr_storage.CheckPointTimeout = ENABLE_INCRE_CKPT ? u_sess->attr.attr_storage.incrCheckPointTimeout : u_sess->attr.attr_storage.fullCheckPointTimeout; } diff --git a/src/gausskernel/process/postmaster/checkpointer.cpp b/src/gausskernel/process/postmaster/checkpointer.cpp index 853bf1cb3..83038ff39 100755 --- a/src/gausskernel/process/postmaster/checkpointer.cpp +++ b/src/gausskernel/process/postmaster/checkpointer.cpp @@ -180,7 +180,7 @@ void CheckpointerMain(void) t_thrd.checkpoint_cxt.CheckpointerShmem->checkpointer_pid = t_thrd.proc_cxt.MyProcPid; - u_sess->attr.attr_storage.CheckPointTimeout = g_instance.attr.attr_storage.enableIncrementalCheckpoint + u_sess->attr.attr_storage.CheckPointTimeout = ENABLE_INCRE_CKPT ? u_sess->attr.attr_storage.incrCheckPointTimeout : u_sess->attr.attr_storage.fullCheckPointTimeout; ereport( @@ -260,6 +260,8 @@ void CheckpointerMain(void) /* Since not using PG_TRY, must reset error stack by hand */ t_thrd.log_cxt.error_context_stack = NULL; + t_thrd.log_cxt.call_stack = NULL; + /* Prevent interrupts while cleaning up */ HOLD_INTERRUPTS(); @@ -382,10 +384,10 @@ void CheckpointerMain(void) if (t_thrd.checkpoint_cxt.got_SIGHUP) { t_thrd.checkpoint_cxt.got_SIGHUP = false; ProcessConfigFile(PGC_SIGHUP); - u_sess->attr.attr_storage.CheckPointTimeout = g_instance.attr.attr_storage.enableIncrementalCheckpoint + u_sess->attr.attr_storage.CheckPointTimeout = ENABLE_INCRE_CKPT ? u_sess->attr.attr_storage.incrCheckPointTimeout : u_sess->attr.attr_storage.fullCheckPointTimeout; - most_available_sync = (volatile bool)u_sess->attr.attr_storage.guc_most_available_sync; + most_available_sync = (volatile bool) u_sess->attr.attr_storage.guc_most_available_sync; /* * Checkpointer is the last process to shut down, so we ask it to @@ -420,6 +422,7 @@ void CheckpointerMain(void) * control back to the sigsetjmp block above */ u_sess->attr.attr_common.ExitOnAnyError = true; + /* Close down the database */ ShutdownXLOG(0, 0); /* Normal exit from the checkpointer is here */ @@ -760,7 +763,7 @@ static bool IsCheckpointOnSchedule(double progress) double elapsed_xlogs, elapsed_time; Assert(t_thrd.checkpoint_cxt.ckpt_active); - u_sess->attr.attr_storage.CheckPointTimeout = g_instance.attr.attr_storage.enableIncrementalCheckpoint + u_sess->attr.attr_storage.CheckPointTimeout = ENABLE_INCRE_CKPT ? u_sess->attr.attr_storage.incrCheckPointTimeout : u_sess->attr.attr_storage.fullCheckPointTimeout; @@ -1150,7 +1153,7 @@ bool ForwardSyncRequest(const FileTag *ftag, SyncRequestType type) LWLockAcquire(CheckpointerCommLock, LW_EXCLUSIVE); /* Count all backend writes regardless of if they fit in the queue */ - if (!AmBackgroundWriterProcess() || !AmMulitBackgroundWriterProcess() || !AmPageWriterProcess()) { + if (!AmBackgroundWriterProcess() && !AmPageWriterProcess()) { t_thrd.checkpoint_cxt.CheckpointerShmem->num_backend_writes++; } @@ -1167,7 +1170,7 @@ bool ForwardSyncRequest(const FileTag *ftag, SyncRequestType type) * Count the subset of writes where backends have to do their own * fsync */ - if (!AmBackgroundWriterProcess() || !AmMulitBackgroundWriterProcess() || !AmPageWriterProcess()) { + if (!AmBackgroundWriterProcess() && !AmPageWriterProcess()) { t_thrd.checkpoint_cxt.CheckpointerShmem->num_backend_fsync++; } diff --git a/src/gausskernel/process/postmaster/fencedudf.cpp b/src/gausskernel/process/postmaster/fencedudf.cpp index 3fa7fa8dc..3e53048c0 100644 --- a/src/gausskernel/process/postmaster/fencedudf.cpp +++ b/src/gausskernel/process/postmaster/fencedudf.cpp @@ -2168,13 +2168,8 @@ static void get_obsfile(OBSInfo* obsInfo, const char* tmp_path) appendStringInfo(&cmd, "python %s/udstools.py %s %s %s %s %s %s", - tmp_path, - obsInfo->accesskey, - obsInfo->secretkey, - obsInfo->path, - obsInfo->region, - obsInfo->bucket, - tmp_path); + tmp_path, obsInfo->accesskey, obsInfo->secretkey, obsInfo->path, + obsInfo->region, obsInfo->bucket, tmp_path); /* reset key buffer to avoid private info leak */ errno_t ret = memset_s(obsInfo->accesskey, strlen(obsInfo->accesskey) + 1, 0, strlen(obsInfo->accesskey) + 1); @@ -2439,6 +2434,12 @@ PG_FUNCTION_INFO_V1(gs_extend_library); */ Datum gs_extend_library(PG_FUNCTION_ARGS) { +#ifndef ENABLE_MULTIPLE_NODES + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), (errmsg("Unsupport feature"), + errdetail("gs_extend_library is not supported for centralize deployment"), + errcause("The function is not implemented."), erraction("Do not use this function.")))); +#endif + if (!superuser()) { ereport(ERROR, (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), (errmsg("must be system admin to use the gs_extend_library function")))); diff --git a/src/gausskernel/process/postmaster/gaussdb_version.cpp b/src/gausskernel/process/postmaster/gaussdb_version.cpp index 1e15cca1b..af3db7fdb 100644 --- a/src/gausskernel/process/postmaster/gaussdb_version.cpp +++ b/src/gausskernel/process/postmaster/gaussdb_version.cpp @@ -1,5 +1,6 @@ /* * Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors * * openGauss is licensed under Mulan PSL v2. * You can use this software according to the terms and conditions of the Mulan PSL v2. @@ -119,7 +120,7 @@ static bool isInitialized = false; * And reset after the package operation. * Please do not modify it. */ -const char *sha256_digests[SHA256_DIGESTS_COUNT] = {"5237e9ad5b6ecf8d0abba664972bdcb106595b9ec2f52083915e7c829d348f0d", "06354c2857fbf21e5862005a7e60ad210dc4b635dbde891d6e60cbddea465b16"}; +const char *sha256_digests[SHA256_DIGESTS_COUNT] = {NULL, NULL}; /* The product control file information. */ static LicenseControl versionControl = {PRODUCT_VERSION_FILE, PRODUCT_VERSION_UNKNOWN, {0}, false}; /* The license control file information. */ diff --git a/src/gausskernel/process/postmaster/globalstats.cpp b/src/gausskernel/process/postmaster/globalstats.cpp index d0716d93b..82cef5701 100644 --- a/src/gausskernel/process/postmaster/globalstats.cpp +++ b/src/gausskernel/process/postmaster/globalstats.cpp @@ -233,6 +233,8 @@ NON_EXEC_STATIC void GlobalStatsTrackerMain() /* since not using PG_TRY, must reset error stack by hand */ t_thrd.log_cxt.error_context_stack = NULL; + t_thrd.log_cxt.call_stack = NULL; + /* Prevents interrupts while cleaning up */ HOLD_INTERRUPTS(); @@ -260,8 +262,8 @@ NON_EXEC_STATIC void GlobalStatsTrackerMain() MemoryContext oldStatLocalContext = u_sess->stat_cxt.pgStatLocalContext; u_sess->stat_cxt.pgStatLocalContext = - AllocSetContextCreate(g_instance.stat_cxt.tableStat->global_stats_cxt, "Global Statistics snapshot", - ALLOCSET_SMALL_MINSIZE, ALLOCSET_SMALL_INITSIZE, ALLOCSET_SMALL_MAXSIZE, SHARED_CONTEXT); + AllocSetContextCreate(u_sess->top_mem_cxt, "Global Statistics snapshot", + ALLOCSET_SMALL_MINSIZE, ALLOCSET_SMALL_INITSIZE, ALLOCSET_SMALL_MAXSIZE); pgstat_fetch_global(); diff --git a/src/gausskernel/process/postmaster/lwlockmonitor.cpp b/src/gausskernel/process/postmaster/lwlockmonitor.cpp index f7fef677c..04d6eeb11 100644 --- a/src/gausskernel/process/postmaster/lwlockmonitor.cpp +++ b/src/gausskernel/process/postmaster/lwlockmonitor.cpp @@ -644,6 +644,8 @@ NON_EXEC_STATIC void FaultMonitorMain() /* Since not using PG_TRY, must reset error stack by hand */ t_thrd.log_cxt.error_context_stack = NULL; + t_thrd.log_cxt.call_stack = NULL; + /* Prevent interrupts while cleaning up */ HOLD_INTERRUPTS(); diff --git a/src/gausskernel/process/postmaster/pagewriter.cpp b/src/gausskernel/process/postmaster/pagewriter.cpp index 4365635ed..fedf1c3d7 100755 --- a/src/gausskernel/process/postmaster/pagewriter.cpp +++ b/src/gausskernel/process/postmaster/pagewriter.cpp @@ -72,6 +72,18 @@ static void ckpt_pagewriter_sigusr1_handler(SIGNAL_ARGS); static void ckpt_try_skip_invalid_elem_in_queue_head(); static void ckpt_try_prune_dirty_page_queue(); static uint32 calculate_pagewriter_flush_num(); +static void candidate_buf_push(int buf_id, int thread_id); +static void seg_candidate_buf_push(int buf_id, int thread_id); +static void init_candidate_list(); +static uint32 incre_ckpt_pgwr_flush_dirty_page(WritebackContext wb_context, + const CkptSortItem *dirty_buf_list, int start, int batch_num); +static void incre_ckpt_pgwr_flush_dirty_queue(WritebackContext wb_context); +static void incre_ckpt_pgwr_scan_buf_pool(WritebackContext wb_context); +static void push_to_candidate_list(BufferDesc *buf_desc); +static uint32 get_candidate_buf_and_flush_list(uint32 start, uint32 end, uint32 max_flush_num, + bool *contain_hashbucket); +static int64 get_thread_candidate_nums(int thread_id); +static int64 get_thread_seg_candidate_nums(int thread_id); const int XLOG_LSN_SWAP = 32; Datum ckpt_view_get_node_name() @@ -160,7 +172,7 @@ Datum ckpt_view_get_redo_point() { errno_t ret; char redo_lsn_s[LSN_LENGTH]; - XLogRecPtr redo_lsn = g_instance.ckpt_cxt_ctl->ckpt_current_redo_point; + XLogRecPtr redo_lsn = g_instance.ckpt_cxt_ctl->ckpt_view.ckpt_current_redo_point; ret = memset_s(redo_lsn_s, LSN_LENGTH, 0, LSN_LENGTH); securec_check(ret, "", ""); @@ -173,27 +185,59 @@ Datum ckpt_view_get_redo_point() Datum ckpt_view_get_clog_flush_num() { - return Int64GetDatum(g_instance.ckpt_cxt_ctl->ckpt_clog_flush_num); + return Int64GetDatum(g_instance.ckpt_cxt_ctl->ckpt_view.ckpt_clog_flush_num); } Datum ckpt_view_get_csnlog_flush_num() { - return Int64GetDatum(g_instance.ckpt_cxt_ctl->ckpt_csnlog_flush_num); + return Int64GetDatum(g_instance.ckpt_cxt_ctl->ckpt_view.ckpt_csnlog_flush_num); } Datum ckpt_view_get_multixact_flush_num() { - return Int64GetDatum(g_instance.ckpt_cxt_ctl->ckpt_multixact_flush_num); + return Int64GetDatum(g_instance.ckpt_cxt_ctl->ckpt_view.ckpt_multixact_flush_num); } Datum ckpt_view_get_predicate_flush_num() { - return Int64GetDatum(g_instance.ckpt_cxt_ctl->ckpt_predicate_flush_num); + return Int64GetDatum(g_instance.ckpt_cxt_ctl->ckpt_view.ckpt_predicate_flush_num); } Datum ckpt_view_get_twophase_flush_num() { - return Int64GetDatum(g_instance.ckpt_cxt_ctl->ckpt_twophase_flush_num); + return Int64GetDatum(g_instance.ckpt_cxt_ctl->ckpt_view.ckpt_twophase_flush_num); +} + +Datum ckpt_view_get_candidate_nums() +{ + int candidate_num = get_curr_candidate_nums(false); + return Int32GetDatum(candidate_num); +} + +Datum ckpt_view_get_num_candidate_list() +{ + return Int64GetDatum(g_instance.ckpt_cxt_ctl->get_buf_num_candidate_list); +} + +Datum ckpt_view_get_num_clock_sweep() +{ + return Int64GetDatum(g_instance.ckpt_cxt_ctl->get_buf_num_clock_sweep); +} + +Datum ckpt_view_get_seg_candidate_nums() +{ + int candidate_num = get_curr_candidate_nums(true); + return Int32GetDatum(candidate_num); +} + +Datum ckpt_view_seg_get_num_candidate_list() +{ + return Int64GetDatum(g_instance.ckpt_cxt_ctl->seg_get_buf_num_candidate_list); +} + +Datum ckpt_view_seg_get_num_clock_sweep() +{ + return Int64GetDatum(g_instance.ckpt_cxt_ctl->seg_get_buf_num_clock_sweep); } const incre_ckpt_view_col g_pagewriter_view_col[PAGEWRITER_VIEW_COL_NUM] = { @@ -206,6 +250,17 @@ const incre_ckpt_view_col g_pagewriter_view_col[PAGEWRITER_VIEW_COL_NUM] = { {"current_xlog_insert_lsn", TEXTOID, ckpt_view_get_current_xlog_insert_lsn}, {"ckpt_redo_point", TEXTOID, ckpt_view_get_redo_point}}; +const incre_ckpt_view_col g_pagewirter_view_two_col[CANDIDATE_VIEW_COL_NUM] = { + {"node_name", TEXTOID, ckpt_view_get_node_name}, + {"candidate_slots", INT4OID, ckpt_view_get_candidate_nums}, + {"get_buf_from_list", INT8OID, ckpt_view_get_num_candidate_list}, + {"get_buf_clock_sweep", INT8OID, ckpt_view_get_num_clock_sweep}, + {"seg_candidate_slots", INT4OID, ckpt_view_get_seg_candidate_nums}, + {"seg_get_buf_from_list", INT8OID, ckpt_view_seg_get_num_candidate_list}, + {"seg_get_buf_clock_sweep", INT8OID, ckpt_view_seg_get_num_clock_sweep} +}; + + const incre_ckpt_view_col g_ckpt_view_col[INCRE_CKPT_VIEW_COL_NUM] = {{"node_name", TEXTOID, ckpt_view_get_node_name}, {"ckpt_redo_point", TEXTOID, ckpt_view_get_redo_point}, {"ckpt_clog_flush_num", INT8OID, ckpt_view_get_clog_flush_num}, @@ -229,24 +284,112 @@ bool IsPagewriterProcess(void) return (t_thrd.role == PAGEWRITER_THREAD); } +const int MAX_DIRTY_LIST_FLUSH_NUM = 1000 * DW_DIRTY_PAGE_MAX_FOR_NOHBK; + void incre_ckpt_pagewriter_cxt_init() { MemoryContext oldcontext = MemoryContextSwitchTo(g_instance.increCheckPoint_context); + int thread_num = g_instance.attr.attr_storage.pagewriter_thread_num + 1; /* sub thread + one main thread */ - g_instance.ckpt_cxt_ctl->page_writer_procs.writer_proc = - (PageWriterProc*)palloc0(sizeof(PageWriterProc) * g_instance.attr.attr_storage.pagewriter_thread_num); - g_instance.ckpt_cxt_ctl->page_writer_procs.num = g_instance.attr.attr_storage.pagewriter_thread_num; + g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc = (PageWriterProc*)palloc0(sizeof(PageWriterProc) * thread_num); + g_instance.ckpt_cxt_ctl->pgwr_procs.num = thread_num; + g_instance.ckpt_cxt_ctl->pgwr_procs.sub_num = g_instance.attr.attr_storage.pagewriter_thread_num; + g_instance.ckpt_cxt_ctl->pgwr_procs.running_num = 0; - g_instance.ckpt_cxt_ctl->page_writer_procs.running_num = 0; + uint32 dirty_list_size = MAX_DIRTY_LIST_FLUSH_NUM / thread_num; - char *unaligned_buf = (char*)palloc0((DW_BUF_MAX_FOR_NOHBK + 1) * BLCKSZ); - g_instance.ckpt_cxt_ctl->page_writer_procs.thrd_dw_cxt.dw_buf = (char*)TYPEALIGN(BLCKSZ, unaligned_buf); - g_instance.ckpt_cxt_ctl->page_writer_procs.thrd_dw_cxt.dw_page_idx = -1; - g_instance.ckpt_cxt_ctl->page_writer_procs.thrd_dw_cxt.is_new_relfilenode = false; + /* init thread dw cxt and dirty list */ + for (int i = 0; i < thread_num; i++) { + PageWriterProc *pgwr = &g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc[i]; + char *unaligned_buf = (char*)palloc0((DW_BUF_MAX_FOR_NOHBK + 1) * BLCKSZ); + pgwr->thrd_dw_cxt.dw_buf = (char*)TYPEALIGN(BLCKSZ, unaligned_buf); + pgwr->thrd_dw_cxt.dw_page_idx = -1; + pgwr->thrd_dw_cxt.is_new_relfilenode = false; + pgwr->dirty_list_size = dirty_list_size; + pgwr->dirty_buf_list = (CkptSortItem *)palloc0(dirty_list_size * sizeof(CkptSortItem)); + } + init_candidate_list(); (void)MemoryContextSwitchTo(oldcontext); } +void candidate_buf_init(void) +{ + bool found_candidate_buf = false; + bool found_candidate_fm = false; + int buffer_num = TOTAL_BUFFER_NUM; + + if (!ENABLE_INCRE_CKPT) { + return; + } + /* + * Each thread manages a part of the buffer. Several slots are reserved to + * prevent the thread first and last slots equals. + */ + g_instance.ckpt_cxt_ctl->candidate_buffers = (Buffer *) + ShmemInitStruct("CandidateBuffers", buffer_num * sizeof(Buffer), &found_candidate_buf); + g_instance.ckpt_cxt_ctl->candidate_free_map = (bool *) + ShmemInitStruct("CandidateFreeMap", buffer_num * sizeof(bool), &found_candidate_fm); + + if (found_candidate_buf || found_candidate_fm) { + Assert(found_candidate_buf && found_candidate_fm); + } else { + /* The memory of the memset sometimes exceeds 2 GB. so, memset_s cannot be used. */ + MemSet((char*)g_instance.ckpt_cxt_ctl->candidate_buffers, 0, buffer_num * sizeof(Buffer)); + MemSet((char*)g_instance.ckpt_cxt_ctl->candidate_free_map, 0, buffer_num * sizeof(bool)); + + /* switchover will triggers the following code */ + if (g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc != NULL) { + init_candidate_list(); + } + } +} + +static void init_candidate_list() +{ + int thread_num = g_instance.ckpt_cxt_ctl->pgwr_procs.sub_num; + int normal_avg_num = SharedBufferNumber / thread_num; + int seg_avr_num = SEGMENT_BUFFER_NUM / thread_num; + PageWriterProc *pgwr = NULL; + + /* Init main thread, the candidate list only store segment buffer */ + pgwr = &g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc[0]; + pgwr->cand_buf_list = NULL; + pgwr->cand_list_size = 0; + pgwr->head = 0; + pgwr->tail = 0; + pgwr->seg_head = 0; + pgwr->seg_tail = 0; + pgwr->seg_cand_list_size = 0; + pgwr->seg_cand_buf_list = NULL; + + for (int i = 1; i <= thread_num; i++) { + pgwr = &g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc[i]; + int start = normal_avg_num * (i - 1); + int end = start + normal_avg_num; + int seg_start = SegmentBufferStartID + seg_avr_num * (i - 1); + int seg_end = seg_start + seg_avr_num; + if (i == thread_num) { + end += SharedBufferNumber % thread_num; + seg_end += SEGMENT_BUFFER_NUM % thread_num; + } + + /* init normal candidat list */ + pgwr->head = 0; + pgwr->tail = 0; + pgwr->buf_id_start = start; + pgwr->cand_list_size = end - start; + pgwr->cand_buf_list = &g_instance.ckpt_cxt_ctl->candidate_buffers[start]; + + /* init segment candidat list */ + pgwr->seg_head = 0; + pgwr->seg_tail = 0; + pgwr->seg_cand_list_size = seg_end - seg_start; + pgwr->seg_cand_buf_list = &g_instance.ckpt_cxt_ctl->candidate_buffers[seg_start]; + pgwr->seg_id_start = seg_start; + } +} + int get_dirty_page_queue_head_buffer() { uint64 dirty_queue_head = pg_atomic_read_u64(&g_instance.ckpt_cxt_ctl->dirty_page_queue_head); @@ -354,19 +497,17 @@ void remove_dirty_page_from_queue(BufferDesc* buf) uint64 get_dirty_page_queue_tail() { + uint64 tail = 0; + #if defined(__x86_64__) || defined(__aarch64__) - uint128_u compare; - compare = atomic_compare_and_swap_u128((uint128_u*)&g_instance.ckpt_cxt_ctl->dirty_page_queue_reclsn); - // return the dirty page queue tail - return compare.u64[1]; + tail = pg_atomic_barrier_read_u64(&g_instance.ckpt_cxt_ctl->dirty_page_queue_tail); #else - uint64 tail; SpinLockAcquire(&g_instance.ckpt_cxt_ctl->queue_lock); tail = g_instance.ckpt_cxt_ctl->dirty_page_queue_tail; SpinLockRelease(&g_instance.ckpt_cxt_ctl->queue_lock); +#endif return tail; -#endif } int64 get_dirty_page_num() @@ -388,7 +529,7 @@ static uint32 ckpt_get_expected_flush_num() int64 expected_flush_num; uint64 dirty_queue_head = pg_atomic_read_u64(&g_instance.ckpt_cxt_ctl->dirty_page_queue_head); - if (g_instance.ckpt_cxt_ctl->flush_all_dirty_page) { + if (FULL_CKPT) { expected_flush_num = g_instance.ckpt_cxt_ctl->full_ckpt_expected_flush_loc - dirty_queue_head; } else { expected_flush_num = get_dirty_page_queue_tail() - dirty_queue_head; @@ -418,41 +559,6 @@ static uint32 ckpt_get_expected_flush_num() return (uint32)Min(expected_flush_num, flush_num); } -const uint BYTE_PER_KB = 1024; -static bool need_retry_scan(uint32 flush_num, uint32 max_batch_num) -{ - XLogRecPtr min_lsn = ckpt_get_min_rec_lsn(); - XLogRecPtr cur_lsn; - bool flush_slow = false; - - if (XLogRecPtrIsInvalid(min_lsn)) { - return false; - } - /* primary get the xlog insert loc, standby get the replay loc */ - if (RecoveryInProgress()) { - cur_lsn = GetXLogReplayRecPtr(NULL); - } else { - cur_lsn = GetXLogInsertRecPtr(); - } - flush_slow = (cur_lsn - min_lsn) > ((uint64)u_sess->attr.attr_storage.max_redo_log_size * BYTE_PER_KB); - - if (g_instance.ckpt_cxt_ctl->actual_dirty_page_num > flush_num && - (flush_num < max_batch_num || flush_slow || FULL_CKPT)) { - /* The queue head page needs to be flushed as soon as possible. */ - Buffer head_buf = get_dirty_page_queue_head_buffer(); - if (BufferIsValid(head_buf) && g_instance.ckpt_cxt_ctl->CkptBufferIds[0].buf_id != head_buf - 1) { - /* clean the buffer state BM_CHECKPOINT_NEEDED */ - for (uint32 i = 0; i < flush_num; i++) { - int buf_id = g_instance.ckpt_cxt_ctl->CkptBufferIds[i].buf_id; - BufferDesc *buf_desc = GetBufferDescriptor(buf_id); - clean_buf_need_flush_flag(buf_desc); - } - return true; - } - } - return false; -} - /** * @Description: Select a batch of dirty pages from the dirty_page_queue and sort * @in Dirty queue head from which to select the dirty pages @@ -461,18 +567,17 @@ static bool need_retry_scan(uint32 flush_num, uint32 max_batch_num) * @return Actual number of dirty pages need to flush */ const int MAX_SCAN_NUM = 131072; /* 1GB buffers */ -static uint32 ckpt_qsort_dirty_page_for_flush(bool *is_new_relfilenode) +static uint32 ckpt_qsort_dirty_page_for_flush(bool *is_new_relfilenode, uint32 flush_queue_num) { uint32 num_to_flush = 0; - bool retry = false; errno_t rc; uint32 i; uint32 scan_end = 0; int64 dirty_page_num; uint64 dirty_queue_head; - uint32 buffer_slot_num = MIN(DW_DIRTY_PAGE_MAX_FOR_NOHBK, TOTAL_BUFFER_NUM); + uint32 buf_num = TOTAL_BUFFER_NUM; + uint32 buffer_slot_num = MIN(flush_queue_num, buf_num); -try_get_buf: rc = memset_s(g_instance.ckpt_cxt_ctl->CkptBufferIds, buffer_slot_num * sizeof(CkptSortItem), 0, buffer_slot_num * sizeof(CkptSortItem)); securec_check(rc, "", ""); @@ -509,7 +614,7 @@ try_get_buf: buf_desc = GetBufferDescriptor(buffer - 1); buf_state = LockBufHdr(buf_desc); - if ((buf_state & BM_DIRTY) && (retry ||!(buf_state & BM_CHECKPOINT_NEEDED))) { + if (buf_state & BM_DIRTY) { buf_state |= BM_CHECKPOINT_NEEDED; item = &g_instance.ckpt_cxt_ctl->CkptBufferIds[num_to_flush++]; item->buf_id = buffer - 1; @@ -521,75 +626,79 @@ try_get_buf: if(IsSegmentFileNode(buf_desc->tag.rnode) || buf_desc->tag.rnode.opt != 0) { *is_new_relfilenode = true; } - } else { - if (!(buf_state & BM_DIRTY) && slot->buffer != 0) { - ereport(WARNING, - (errmsg("not dirty page in dirty page queue, the buf_state is %u, filenode is %u/%u/%u/%d", - buf_state, buf_desc->tag.rnode.spcNode, buf_desc->tag.rnode.dbNode, - buf_desc->tag.rnode.relNode, buf_desc->tag.rnode.bucketNode))); - - buf_state &= (~BM_CHECKPOINT_NEEDED); - remove_dirty_page_from_queue(buf_desc); - } } + UnlockBufHdr(buf_desc, buf_state); - if (num_to_flush >= buffer_slot_num || num_to_flush >= GET_DW_DIRTY_PAGE_MAX(*is_new_relfilenode)) { + if (num_to_flush >= buffer_slot_num) { break; } } - num_to_flush = MIN(num_to_flush, GET_DW_DIRTY_PAGE_MAX(*is_new_relfilenode)); - if (!retry && need_retry_scan(num_to_flush, GET_DW_DIRTY_PAGE_MAX(*is_new_relfilenode))) { - retry = true; - num_to_flush = 0; - goto try_get_buf; - } qsort(g_instance.ckpt_cxt_ctl->CkptBufferIds, num_to_flush, sizeof(CkptSortItem), ckpt_buforder_comparator); return num_to_flush; } +static void wakeup_sub_thread() +{ + PageWriterProc *pgwr = NULL; + for (int thread_loc = 1; thread_loc < g_instance.ckpt_cxt_ctl->pgwr_procs.num; thread_loc++) { + pgwr = &g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc[thread_loc]; + pgwr->start_loc = 0; + pgwr->need_flush_num = 0; + + if (pgwr->proc != NULL) { + (void)pg_atomic_add_fetch_u32(&g_instance.ckpt_cxt_ctl->pgwr_procs.running_num, 1); + pg_write_barrier(); + g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc[thread_loc].need_flush = true; + pg_write_barrier(); + SetLatch(&(pgwr->proc->procLatch)); + } + } +} + /** * @Description: Distribute the batch dirty pages to multiple pagewriter threads to flush - * @in: num of this batch dirty page + * @in: num of this batch dirty page */ -void divide_dirty_page_to_thread(uint32 requested_flush_num) +static void divide_dirty_page_to_thread(uint32 requested_flush_num, bool is_new_relfilenode) { - uint32 thread_min_flush; + uint32 avg_num; uint32 remain_need_flush; int thread_loc; + int sub_thread_num = g_instance.ckpt_cxt_ctl->pgwr_procs.sub_num; - thread_min_flush = requested_flush_num / g_instance.ckpt_cxt_ctl->page_writer_procs.num; - remain_need_flush = requested_flush_num % g_instance.ckpt_cxt_ctl->page_writer_procs.num; + avg_num = requested_flush_num / sub_thread_num; + remain_need_flush = requested_flush_num % sub_thread_num; - for (thread_loc = 0; thread_loc < g_instance.ckpt_cxt_ctl->page_writer_procs.num; thread_loc++) { - if (thread_loc == 0) { - g_instance.ckpt_cxt_ctl->page_writer_procs.writer_proc[thread_loc].start_loc = 0; - g_instance.ckpt_cxt_ctl->page_writer_procs.writer_proc[thread_loc].end_loc = - thread_min_flush + remain_need_flush - 1; + PageWriterProc *pgwr = NULL; + for (thread_loc = 1; thread_loc < g_instance.ckpt_cxt_ctl->pgwr_procs.num; thread_loc++) { + pgwr = &g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc[thread_loc]; + pgwr->thrd_dw_cxt.is_new_relfilenode = is_new_relfilenode; + if (thread_loc == 1) { + pgwr->start_loc = 0; + pgwr->need_flush_num = avg_num + remain_need_flush; } else { - g_instance.ckpt_cxt_ctl->page_writer_procs.writer_proc[thread_loc].start_loc = - g_instance.ckpt_cxt_ctl->page_writer_procs.writer_proc[thread_loc - 1].end_loc + 1; - g_instance.ckpt_cxt_ctl->page_writer_procs.writer_proc[thread_loc].end_loc = - g_instance.ckpt_cxt_ctl->page_writer_procs.writer_proc[thread_loc].start_loc + thread_min_flush - 1; + uint32 prev_start = g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc[thread_loc - 1].start_loc; + uint32 prev_flush_num = g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc[thread_loc - 1].need_flush_num; + pgwr->start_loc = prev_start + prev_flush_num; + pgwr->need_flush_num = avg_num; } - (void)pg_atomic_add_fetch_u32(&g_instance.ckpt_cxt_ctl->page_writer_procs.running_num, 1); - pg_write_barrier(); - g_instance.ckpt_cxt_ctl->page_writer_procs.writer_proc[thread_loc].need_flush = true; - pg_write_barrier(); - if (thread_loc != 0 && g_instance.ckpt_cxt_ctl->page_writer_procs.writer_proc[thread_loc].proc != NULL) { - SetLatch(&(g_instance.ckpt_cxt_ctl->page_writer_procs.writer_proc[thread_loc].proc->procLatch)); + + if (pgwr->proc != NULL) { + (void)pg_atomic_add_fetch_u32(&g_instance.ckpt_cxt_ctl->pgwr_procs.running_num, 1); + pg_write_barrier(); + g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc[thread_loc].need_flush = true; + pg_write_barrier(); + SetLatch(&(pgwr->proc->procLatch)); } if (u_sess->attr.attr_storage.log_pagewriter) { - int next_flush = g_instance.ckpt_cxt_ctl->page_writer_procs.writer_proc[thread_loc].end_loc - - g_instance.ckpt_cxt_ctl->page_writer_procs.writer_proc[thread_loc].start_loc + 1; + int next_flush = g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc[thread_loc].need_flush_num; ereport(LOG, (errmodule(MOD_INCRE_CKPT), errmsg("needWritten is %u, thread num is %d, need flush page num is %d", - requested_flush_num, - thread_loc, - next_flush))); + requested_flush_num, thread_loc, next_flush))); } } } @@ -602,21 +711,15 @@ void divide_dirty_page_to_thread(uint32 requested_flush_num) */ static void ckpt_move_queue_head_after_flush() { - uint32 actual_flushed = 0; - uint32 i; - uint32 thread_num = g_instance.ckpt_cxt_ctl->page_writer_procs.num; uint64 dirty_queue_head = pg_atomic_read_u64(&g_instance.ckpt_cxt_ctl->dirty_page_queue_head); int64 dirty_page_num = get_dirty_page_num(); + uint32 rc; while (true) { /* wait all sub thread finish flush */ - if (pg_atomic_read_u32(&g_instance.ckpt_cxt_ctl->page_writer_procs.running_num) == 0) { - g_instance.ckpt_cxt_ctl->page_writer_procs.thrd_dw_cxt.dw_page_idx = -1; - for (i = 0; i < thread_num; i++) { - actual_flushed += g_instance.ckpt_cxt_ctl->page_writer_procs.writer_proc[i].actual_flush_num; - } + if (pg_atomic_read_u32(&g_instance.ckpt_cxt_ctl->pgwr_procs.running_num) == 0) { /* Finish flush dirty page, move the dirty page queue head, and clear the slot state. */ - for (i = 0; i < dirty_page_num; i++) { + for (uint32 i = 0; i < dirty_page_num; i++) { uint64 temp_loc = (dirty_queue_head + i) % g_instance.ckpt_cxt_ctl->dirty_page_queue_size; volatile DirtyPageQueueSlot* slot = &g_instance.ckpt_cxt_ctl->dirty_page_queue[temp_loc]; if (!(pg_atomic_read_u32(&slot->slot_state) & SLOT_VALID)) { @@ -638,18 +741,17 @@ static void ckpt_move_queue_head_after_flush() } break; } - (void)sched_yield(); - } - /* We flushed some buffers, so update the statistics */ - if (actual_flushed > 0) { - g_instance.ckpt_cxt_ctl->page_writer_actual_flush += actual_flushed; - g_instance.ckpt_cxt_ctl->page_writer_last_flush += actual_flushed; + ckpt_try_prune_dirty_page_queue(); + rc = WaitLatch(&t_thrd.proc->procLatch, WL_TIMEOUT | WL_POSTMASTER_DEATH, (long)TEN_MILLISECOND); + if (rc & WL_POSTMASTER_DEATH) { + gs_thread_exit(1); + } } if (u_sess->attr.attr_storage.log_pagewriter) { ereport(LOG, (errmodule(MOD_INCRE_CKPT), errmsg("Page Writer flushed: %u pages, remaining dirty_page_num: %ld", - actual_flushed, get_dirty_page_num()))); + g_instance.ckpt_cxt_ctl->page_writer_last_flush, get_dirty_page_num()))); } return; } @@ -662,51 +764,44 @@ static void ckpt_pagewriter_main_thread_flush_dirty_page() { WritebackContext wb_context; uint32 requested_flush_num; - int thread_id = t_thrd.pagewriter_cxt.pagewriter_id; int32 expected_flush_num; bool is_new_relfilenode = false; + PageWriterProc* main_pgwr = &g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc[0]; + Assert(t_thrd.pagewriter_cxt.pagewriter_id == 0); WritebackContextInit(&wb_context, &t_thrd.pagewriter_cxt.page_writer_after); ResourceOwnerEnlargeBuffers(t_thrd.utils_cxt.CurrentResourceOwner); expected_flush_num = ckpt_get_expected_flush_num(); if (expected_flush_num == 0) { + /* if not dirty page flush, wakeup sub thread can the buffer pool */ + wakeup_sub_thread(); return; } + g_instance.ckpt_cxt_ctl->page_writer_last_queue_flush = 0; g_instance.ckpt_cxt_ctl->page_writer_last_flush = 0; - while (expected_flush_num > 0) { - requested_flush_num = ckpt_qsort_dirty_page_for_flush(&is_new_relfilenode); + requested_flush_num = ckpt_qsort_dirty_page_for_flush(&is_new_relfilenode, expected_flush_num); - if (SECUREC_UNLIKELY(requested_flush_num == 0)) { - break; - } - expected_flush_num -= requested_flush_num; - - g_instance.ckpt_cxt_ctl->page_writer_procs.thrd_dw_cxt.is_new_relfilenode = is_new_relfilenode; - g_instance.ckpt_cxt_ctl->page_writer_procs.thrd_dw_cxt.dw_page_idx = -1; - - dw_perform_batch_flush(requested_flush_num, NULL, &g_instance.ckpt_cxt_ctl->page_writer_procs.thrd_dw_cxt); - - divide_dirty_page_to_thread(requested_flush_num); - - /* page_writer thread flush dirty page */ - Assert(thread_id == 0); /* main thread id is 0 */ - Assert(g_instance.ckpt_cxt_ctl->page_writer_procs.writer_proc[thread_id].need_flush); - ckpt_flush_dirty_page(thread_id, wb_context); - - ckpt_move_queue_head_after_flush(); - - /* - * If request flush num less than the batch max, break this loop, - * It indicates that there are not many dirty pages. - */ - if (expected_flush_num < (int32)GET_DW_DIRTY_PAGE_MAX(is_new_relfilenode) && !FULL_CKPT) { - break; + /* If the requested_flush_num is less than the num of dw batch, main thread flush these dirty page. */ + if (requested_flush_num <= GET_DW_DIRTY_PAGE_MAX(is_new_relfilenode)) { + main_pgwr->thrd_dw_cxt.is_new_relfilenode = is_new_relfilenode; + main_pgwr->thrd_dw_cxt.dw_page_idx = -1; + wakeup_sub_thread(); + if (requested_flush_num > 0) { + dw_perform_batch_flush(requested_flush_num, + g_instance.ckpt_cxt_ctl->CkptBufferIds, &main_pgwr->thrd_dw_cxt); + incre_ckpt_pgwr_flush_dirty_page(wb_context, g_instance.ckpt_cxt_ctl->CkptBufferIds, 0, + requested_flush_num); + main_pgwr->thrd_dw_cxt.dw_page_idx = -1; } + } else { + divide_dirty_page_to_thread(requested_flush_num, is_new_relfilenode); } + ckpt_move_queue_head_after_flush(); + smgrcloseall(); return; } @@ -811,28 +906,62 @@ static uint32 get_page_num_for_lsn(XLogRecPtr target_lsn, uint32 max_num) return num_for_lsn; } -const int SECOND_TO_MICROSECOND = 1000; -uint32 calculate_thread_max_flush_num(bool is_pagewriter) +const float HIGH_WATER = 0.75; +const float HALF = 0.5; +const int BYTE_PER_KB = 1024; +static void calculate_max_flush_num() { - uint32 max_io = u_sess->attr.attr_storage.max_io_capacity / 8 / 2; - float rate = (float)u_sess->attr.attr_storage.pageWriterSleep / (float)u_sess->attr.attr_storage.BgWriterDelay; + uint32 blk_size = BLCKSZ / BYTE_PER_KB; + uint32 max_io = u_sess->attr.attr_storage.max_io_capacity / blk_size / 2; + float rate_lsn; + float rate_buf; + uint32 queue_flush_max; + uint32 list_flush_max; + XLogRecPtr min_lsn = InvalidXLogRecPtr; + XLogRecPtr cur_lsn = InvalidXLogRecPtr; + double lsn_percent; - uint32 pagewriter_flush = max_io / (1 + rate); /* flush num every second */ - uint32 bgwriter_flush = max_io - pagewriter_flush; + if (unlikely(FULL_CKPT && !RecoveryInProgress())) { + g_instance.ckpt_cxt_ctl->pgwr_procs.queue_flush_max = max_io; + g_instance.ckpt_cxt_ctl->pgwr_procs.list_flush_max = 0; + return; + } - if (is_pagewriter) { - pagewriter_flush = pagewriter_flush * (float)(u_sess->attr.attr_storage.pageWriterSleep / - (float)SECOND_TO_MICROSECOND); - return pagewriter_flush; + min_lsn = ckpt_get_min_rec_lsn(); + if (XLogRecPtrIsInvalid(min_lsn)) { + min_lsn = get_dirty_page_queue_rec_lsn(); + } + + /* primary get the xlog insert loc, standby get the replay loc */ + if (RecoveryInProgress()) { + cur_lsn = GetXLogReplayRecPtr(NULL); } else { - bgwriter_flush = bgwriter_flush * (float)(u_sess->attr.attr_storage.BgWriterDelay / - (float)SECOND_TO_MICROSECOND); - return bgwriter_flush; + cur_lsn = GetXLogInsertRecPtr(); + } + + lsn_percent = (double)(cur_lsn - min_lsn) / + ((double)u_sess->attr.attr_storage.max_redo_log_size * BYTE_PER_KB); + + rate_lsn = 1 - HIGH_WATER / (lsn_percent + HIGH_WATER); + + rate_lsn = MIN(rate_lsn, HIGH_WATER); + + rate_buf = 1 - rate_lsn; + + queue_flush_max = max_io * rate_lsn; + list_flush_max = max_io * rate_buf; + + g_instance.ckpt_cxt_ctl->pgwr_procs.queue_flush_max = queue_flush_max; + g_instance.ckpt_cxt_ctl->pgwr_procs.list_flush_max = list_flush_max; + + if (u_sess->attr.attr_storage.log_pagewriter) { + ereport(LOG, (errmodule(MOD_INCRE_CKPT), + errmsg("calculate max io, lsn_percent is %f, rate_lsn is %f, queue flush num is %u, list flush num is %u", + lsn_percent, rate_lsn, queue_flush_max, list_flush_max))); } } const int AVG_CALCULATE_NUM = 30; -const float HIGH_WATER = 0.75; const uint UPDATE_REC_XLOG_NUM = 4; static uint32 calculate_pagewriter_flush_num() { @@ -854,7 +983,7 @@ static uint32 calculate_pagewriter_flush_num() uint32 num_for_dirty; uint32 num_for_lsn; uint32 min_io = DW_DIRTY_PAGE_MAX_FOR_NOHBK; - uint32 max_io = calculate_thread_max_flush_num(true); + uint32 max_io = g_instance.ckpt_cxt_ctl->pgwr_procs.queue_flush_max; uint32 num_for_lsn_max; float dirty_percent; double lsn_target_percent = 0; @@ -879,7 +1008,7 @@ static uint32 calculate_pagewriter_flush_num() goto DEFAULT; } - total_flush_num += g_instance.ckpt_cxt_ctl->page_writer_last_flush; + total_flush_num += g_instance.ckpt_cxt_ctl->page_writer_last_queue_flush; now = get_time_ms(); time_diff = now - prev_time; @@ -961,17 +1090,76 @@ DEFAULT: return flush_num; } +void dw_upgrade() +{ + knl_g_dw_context* dw_single_cxt = &g_instance.dw_single_cxt; + (void)LWLockAcquire(dw_single_cxt->second_flush_lock, LW_EXCLUSIVE); + wait_all_single_dw_finish_flush_old(); + CheckPointSyncForDw(); + /* create dw batch flush file */ + int fd = open(DW_UPGRADE_FILE_NAME, (DW_FILE_FLAG | O_CREAT), DW_FILE_PERM); + if (fd == -1) { + ereport(PANIC, + (errcode_for_file_access(), errmodule(MOD_DW), errmsg("Could not create file \"%s\"", DW_FILE_NAME))); + } + /* close old version file */ + if (close(dw_single_cxt->fd) != 0 || unlink(SINGLE_DW_FILE_NAME) != 0) { + ereport(PANIC, + (errcode_for_file_access(), errmodule(MOD_DW), + errmsg("Could not close or remove the DW single old version file"))); + } + dw_single_cxt->fd = -1; + dw_single_cxt->single_stat_info.total_writes = 0; + dw_single_cxt->single_stat_info.file_trunc_num = 0; + dw_single_cxt->single_stat_info.file_reset_num = 0; + dw_generate_new_single_file(); + dw_single_cxt->fd = open(SINGLE_DW_FILE_NAME, DW_FILE_FLAG, DW_FILE_PERM); + if (dw_single_cxt->fd == -1) { + ereport(PANIC, + (errcode_for_file_access(), errmodule(MOD_DW), errmsg("during upgrade, could not open file \"%s\"", + SINGLE_DW_FILE_NAME))); + } + pg_atomic_write_u32(&g_instance.dw_single_cxt.dw_version, DW_SUPPORT_NEW_SINGLE_FLUSH); + + if (close(fd) != 0 || unlink(DW_UPGRADE_FILE_NAME) != 0) { + ereport(PANIC, + (errcode_for_file_access(), errmodule(MOD_DW), + errmsg("Could not close or remove the DW upgrade file"))); + } + + /* after upgrade, need free the old version buf context */ + if (dw_single_cxt->recovery_buf.unaligned_buf != NULL) { + pfree(dw_single_cxt->recovery_buf.unaligned_buf); + dw_single_cxt->recovery_buf.unaligned_buf = NULL; + } + + if (dw_single_cxt->recovery_buf.single_flush_state != NULL) { + pfree(dw_single_cxt->recovery_buf.single_flush_state); + dw_single_cxt->recovery_buf.single_flush_state = NULL; + } + LWLockRelease(dw_single_cxt->second_flush_lock); + + return; +} + static void ckpt_pagewriter_main_thread_loop(void) { uint32 rc = 0; uint64 now; int64 sleep_time; + uint32 candidate_num = 0; if (t_thrd.pagewriter_cxt.got_SIGHUP) { t_thrd.pagewriter_cxt.got_SIGHUP = false; ProcessConfigFile(PGC_SIGHUP); } + /* need generate new version dw file */ + if (pg_atomic_read_u32(&g_instance.dw_single_cxt.dw_version) < DW_SUPPORT_NEW_SINGLE_FLUSH && + t_thrd.proc->workingVersionNum >= DW_SUPPORT_NEW_SINGLE_FLUSH) { + dw_upgrade(); + } + /* main thread should finally exit. */ while (t_thrd.pagewriter_cxt.shutdown_requested && g_instance.ckpt_cxt_ctl->page_writer_can_exit) { int i; @@ -988,9 +1176,9 @@ static void ckpt_pagewriter_main_thread_loop(void) /* Normal exit from the pagewriter is here */ proc_exit(0); /* done */ } else { - for (i = 1; i < g_instance.ckpt_cxt_ctl->page_writer_procs.num; i++) { - if (g_instance.ckpt_cxt_ctl->page_writer_procs.writer_proc[i].proc != NULL) { - SetLatch(&(g_instance.ckpt_cxt_ctl->page_writer_procs.writer_proc[i].proc->procLatch)); + for (i = 1; i < g_instance.ckpt_cxt_ctl->pgwr_procs.num; i++) { + if (g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc[i].proc != NULL) { + SetLatch(&(g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc[i].proc->procLatch)); } } pg_usleep(MILLISECOND_TO_MICROSECOND); @@ -998,16 +1186,22 @@ static void ckpt_pagewriter_main_thread_loop(void) } } - while (get_dirty_page_num() == 0 && !t_thrd.pagewriter_cxt.shutdown_requested) { + while (get_dirty_page_num() == 0 && candidate_num == (uint32)TOTAL_BUFFER_NUM && + !t_thrd.pagewriter_cxt.shutdown_requested) { rc = WaitLatch(&t_thrd.proc->procLatch, WL_TIMEOUT | WL_POSTMASTER_DEATH, (long)TEN_MILLISECOND); if (rc & WL_POSTMASTER_DEATH) { gs_thread_exit(1); } + candidate_num = get_curr_candidate_nums(false) + get_curr_candidate_nums(true); + if (candidate_num == 0) { + /* wakeup sub thread scan the buffer pool, init the candidate list */ + wakeup_sub_thread(); + } } - if (pg_atomic_read_u32(&g_instance.ckpt_cxt_ctl->page_writer_procs.running_num) == 0 && + if (pg_atomic_read_u32(&g_instance.ckpt_cxt_ctl->pgwr_procs.running_num) == 0 && pg_atomic_read_u32(&g_instance.ckpt_cxt_ctl->current_page_writer_count) == - (uint32)g_instance.attr.attr_storage.pagewriter_thread_num) { + (uint32)g_instance.ckpt_cxt_ctl->pgwr_procs.num) { ckpt_try_skip_invalid_elem_in_queue_head(); ckpt_try_prune_dirty_page_queue(); @@ -1024,19 +1218,30 @@ static void ckpt_pagewriter_main_thread_loop(void) t_thrd.pagewriter_cxt.next_flush_time = now + u_sess->attr.attr_storage.pageWriterSleep; /* pagewriter thread flush dirty page */ + calculate_max_flush_num(); ckpt_pagewriter_main_thread_flush_dirty_page(); return; } return; } +static void wakeup_pagewriter_main_thread() +{ + PageWriterProc *pgwr = &g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc[0]; + /* The current candidate list is empty, wake up the buffer writer. */ + if (pgwr->proc != NULL) { + SetLatch(&pgwr->proc->procLatch); + } + return; +} + static void ckpt_pagewriter_sub_thread_loop() { uint32 rc; - int thread_id = t_thrd.pagewriter_cxt.pagewriter_id; WritebackContext wb_context; - + int thread_id = t_thrd.pagewriter_cxt.pagewriter_id; WritebackContextInit(&wb_context, &t_thrd.pagewriter_cxt.page_writer_after); + uint64 now; if (t_thrd.pagewriter_cxt.got_SIGHUP) { t_thrd.pagewriter_cxt.got_SIGHUP = false; @@ -1058,18 +1263,40 @@ static void ckpt_pagewriter_sub_thread_loop() } /* Wait first */ - rc = WaitLatch( - &t_thrd.proc->procLatch, WL_TIMEOUT | WL_LATCH_SET | WL_POSTMASTER_DEATH, (long)SECOND_TO_MILLISECOND /* ms */); + rc = WaitLatch(&t_thrd.proc->procLatch, WL_TIMEOUT | WL_LATCH_SET | WL_POSTMASTER_DEATH, + (long)u_sess->attr.attr_storage.pageWriterSleep /* ms */); if (rc & WL_POSTMASTER_DEATH) { gs_thread_exit(1); } ResetLatch(&t_thrd.proc->procLatch); + PageWriterProc* pgwr = &g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc[thread_id]; - if (g_instance.ckpt_cxt_ctl->page_writer_procs.writer_proc[thread_id].need_flush) { + if (pgwr->need_flush) { + uint32 old_running_num = 0; ResourceOwnerEnlargeBuffers(t_thrd.utils_cxt.CurrentResourceOwner); - ckpt_flush_dirty_page(thread_id, wb_context); + incre_ckpt_pgwr_flush_dirty_queue(wb_context); + + /* scan buffer pool, get flush list and candidate list */ + now = get_time_ms(); + if (t_thrd.pagewriter_cxt.next_scan_time <= now) { + incre_ckpt_pgwr_scan_buf_pool(wb_context); + now = get_time_ms(); + t_thrd.pagewriter_cxt.next_scan_time = now + + MAX(u_sess->attr.attr_storage.BgWriterDelay, u_sess->attr.attr_storage.pageWriterSleep); + } else if ((int64)(t_thrd.pagewriter_cxt.next_scan_time - now) > + MAX(u_sess->attr.attr_storage.BgWriterDelay, u_sess->attr.attr_storage.pageWriterSleep)) { + /* preventing Time Jumps */ + t_thrd.pagewriter_cxt.next_scan_time = now; + } + + pgwr->need_flush = false; + old_running_num = pg_atomic_fetch_sub_u32(&g_instance.ckpt_cxt_ctl->pgwr_procs.running_num, 1); + if (old_running_num == 1) { + wakeup_pagewriter_main_thread(); + } + smgrcloseall(); } return; @@ -1087,14 +1314,15 @@ static void ckpt_pagewriter_handle_exception(MemoryContext pagewriter_context) /* Since not using PG_TRY, must reset error stack by hand */ t_thrd.log_cxt.error_context_stack = NULL; + t_thrd.log_cxt.call_stack = NULL; + /* Clear the running status of this ereported thread before we proceed to release resources */ - if (g_instance.ckpt_cxt_ctl->page_writer_procs.writer_proc[id].need_flush) { - g_instance.ckpt_cxt_ctl->page_writer_procs.writer_proc[id].need_flush = false; - pg_atomic_fetch_sub_u32(&g_instance.ckpt_cxt_ctl->page_writer_procs.running_num, 1); - } - if (pg_atomic_read_u32(&g_instance.ckpt_cxt_ctl->page_writer_procs.running_num) == 0) { - g_instance.ckpt_cxt_ctl->page_writer_procs.thrd_dw_cxt.dw_page_idx = -1; + if (g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc[id].need_flush) { + g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc[id].need_flush = false; + pg_atomic_fetch_sub_u32(&g_instance.ckpt_cxt_ctl->pgwr_procs.running_num, 1); } + + g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc[id].thrd_dw_cxt.dw_page_idx = -1; /* Prevent interrupts while cleaning up */ HOLD_INTERRUPTS(); @@ -1142,15 +1370,15 @@ static void ckpt_pagewriter_handle_exception(MemoryContext pagewriter_context) static void pagewriter_kill(int code, Datum arg) { int id = t_thrd.pagewriter_cxt.pagewriter_id; - Assert(id >= 0 && id < g_instance.attr.attr_storage.pagewriter_thread_num); + Assert(id >= 0 && id < g_instance.ckpt_cxt_ctl->pgwr_procs.num); /* Making sure that we mark our exit status (as sub threads) so that main pagewriter thread would not be waiting for us in vain */ - if (g_instance.ckpt_cxt_ctl->page_writer_procs.writer_proc[id].need_flush) { - g_instance.ckpt_cxt_ctl->page_writer_procs.writer_proc[id].need_flush = false; - pg_atomic_fetch_sub_u32(&g_instance.ckpt_cxt_ctl->page_writer_procs.running_num, 1); + if (g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc[id].need_flush) { + g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc[id].need_flush = false; + pg_atomic_fetch_sub_u32(&g_instance.ckpt_cxt_ctl->pgwr_procs.running_num, 1); } pg_atomic_fetch_sub_u32(&g_instance.ckpt_cxt_ctl->current_page_writer_count, 1); - g_instance.ckpt_cxt_ctl->page_writer_procs.writer_proc[id].proc = NULL; + g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc[id].proc = NULL; } int get_pagewriter_thread_id(void) @@ -1168,14 +1396,14 @@ int get_pagewriter_thread_id(void) * The first pagewriter thread start, will be placed in the writer_proc slot in order. Some * condiition, some pagewriter thread exit, It must be placed in the corresponding slot. */ - if (g_instance.ckpt_cxt_ctl->page_writer_procs.writer_proc[id].proc == NULL) { - g_instance.ckpt_cxt_ctl->page_writer_procs.writer_proc[id].proc = t_thrd.proc; + if (g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc[id].proc == NULL) { + g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc[id].proc = t_thrd.proc; t_thrd.pagewriter_cxt.pagewriter_id = id; } else { - for (i = 0; i < g_instance.ckpt_cxt_ctl->page_writer_procs.num; i++) { + for (i = 0; i < g_instance.ckpt_cxt_ctl->pgwr_procs.num; i++) { void *expected = NULL; if (pg_atomic_compare_exchange_uintptr( - (uintptr_t *)&g_instance.ckpt_cxt_ctl->page_writer_procs.writer_proc[i].proc, + (uintptr_t *)&g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc[i].proc, (uintptr_t *)&expected, (uintptr_t)t_thrd.proc)) { t_thrd.pagewriter_cxt.pagewriter_id = i; break; @@ -1184,7 +1412,7 @@ int get_pagewriter_thread_id(void) } Assert(t_thrd.pagewriter_cxt.pagewriter_id >= 0 && - t_thrd.pagewriter_cxt.pagewriter_id < g_instance.attr.attr_storage.pagewriter_thread_num); + t_thrd.pagewriter_cxt.pagewriter_id < g_instance.ckpt_cxt_ctl->pgwr_procs.num); return t_thrd.pagewriter_cxt.pagewriter_id; } @@ -1283,6 +1511,8 @@ void ckpt_pagewriter_main(void) pg_time_t now = (pg_time_t) time(NULL); t_thrd.pagewriter_cxt.next_flush_time = now + u_sess->attr.attr_storage.pageWriterSleep; + t_thrd.pagewriter_cxt.next_scan_time = now + + MAX(u_sess->attr.attr_storage.BgWriterDelay, u_sess->attr.attr_storage.pageWriterSleep); /* * Loop forever @@ -1315,7 +1545,7 @@ static void print_dirty_page_queue_info(bool after_prune) for (i = 0; i < print_info_num; i++) { temp_loc = (dirty_queue_head + i) % g_instance.ckpt_cxt_ctl->dirty_page_queue_size; slot = &g_instance.ckpt_cxt_ctl->dirty_page_queue[temp_loc]; - ereport(LOG, + ereport(DEBUG1, (errmodule(MOD_INCRE_CKPT), errmsg("%s, dirty page queue loc is %lu, buffer is %d, slot_state is %u", after_prune ? "after prune" : "before prune", @@ -1459,6 +1689,7 @@ static void ckpt_try_prune_dirty_page_queue() valid_buffer_array = NULL; return; } + static void ckpt_try_skip_invalid_elem_in_queue_head() { uint64 dirty_queue_head; @@ -1500,6 +1731,557 @@ static void ckpt_try_skip_invalid_elem_in_queue_head() return; } +static uint32 incre_ckpt_pgwr_flush_dirty_page(WritebackContext wb_context, + const CkptSortItem *dirty_buf_list, int start, int batch_num) +{ + uint32 num_actual_flush = 0; + uint32 buf_state; + uint32 sync_state; + BufferDesc *buf_desc = NULL; + int buf_id; + + for (int i = start; i < start + batch_num; i++) { + buf_id = dirty_buf_list[i].buf_id; + if (buf_id == DW_INVALID_BUFFER_ID) { + continue; + } + + buf_desc = GetBufferDescriptor(buf_id); + buf_state = LockBufHdr(buf_desc); + if ((buf_state & BM_CHECKPOINT_NEEDED) && (buf_state & BM_DIRTY)) { + UnlockBufHdr(buf_desc, buf_state); + + sync_state = SyncOneBuffer(buf_id, false, &wb_context, true); + if ((sync_state & BUF_WRITTEN)) { + num_actual_flush++; + } + } else { + UnlockBufHdr(buf_desc, buf_state); + } + } + return num_actual_flush; +} + +static void incre_ckpt_pgwr_flush_dirty_queue(WritebackContext wb_context) +{ + int thread_id = t_thrd.pagewriter_cxt.pagewriter_id; + PageWriterProc* pgwr = &g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc[thread_id]; + bool is_new_relfilenode = pgwr->thrd_dw_cxt.is_new_relfilenode; + uint32 start_loc = pgwr->start_loc; + int need_flush_num = pgwr->need_flush_num; + int dw_batch_page_max = GET_DW_DIRTY_PAGE_MAX(is_new_relfilenode); + int runs = (need_flush_num + dw_batch_page_max - 1) / dw_batch_page_max; + int num_actual_flush = 0; + CkptSortItem *dirty_buf_list = g_instance.ckpt_cxt_ctl->CkptBufferIds + start_loc; + + if (unlikely(need_flush_num == 0)) { + return; + } + + ResourceOwnerEnlargeBuffers(t_thrd.utils_cxt.CurrentResourceOwner); + + /* Double write can only handle at most DW_DIRTY_PAGE_MAX at one time. */ + for (int i = 0; i < runs; i++) { + /* Last batch, take the rest of the buffers */ + int offset = i * dw_batch_page_max; + int batch_num = (i == runs - 1) ? (need_flush_num - offset) : dw_batch_page_max; + uint32 flush_num; + + pgwr->thrd_dw_cxt.is_new_relfilenode = is_new_relfilenode; + pgwr->thrd_dw_cxt.dw_page_idx = -1; + dw_perform_batch_flush(batch_num, dirty_buf_list + offset, &pgwr->thrd_dw_cxt); + flush_num = incre_ckpt_pgwr_flush_dirty_page(wb_context, dirty_buf_list, offset, batch_num); + pgwr->thrd_dw_cxt.dw_page_idx = -1; + num_actual_flush += flush_num; + } + (void)pg_atomic_fetch_add_u64(&g_instance.ckpt_cxt_ctl->page_writer_actual_flush, num_actual_flush); + (void)pg_atomic_fetch_add_u32(&g_instance.ckpt_cxt_ctl->page_writer_last_flush, num_actual_flush); + (void)pg_atomic_fetch_add_u32(&g_instance.ckpt_cxt_ctl->page_writer_last_queue_flush, num_actual_flush); + + return; +} + +static void incre_ckpt_pgwr_flush_dirty_list(WritebackContext wb_context, uint32 need_flush_num, + bool is_new_relfilenode) +{ + int thread_id = t_thrd.pagewriter_cxt.pagewriter_id; + PageWriterProc *pgwr = &g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc[thread_id]; + CkptSortItem *dirty_buf_list = pgwr->dirty_buf_list; + int dw_batch_page_max = GET_DW_DIRTY_PAGE_MAX(is_new_relfilenode); + int runs = (need_flush_num + dw_batch_page_max - 1) / dw_batch_page_max; + int num_actual_flush = 0; + int buf_id; + BufferDesc *buf_desc = NULL; + + qsort(dirty_buf_list, need_flush_num, sizeof(CkptSortItem), ckpt_buforder_comparator); + ResourceOwnerEnlargeBuffers(t_thrd.utils_cxt.CurrentResourceOwner); + + /* Double write can only handle at most DW_DIRTY_PAGE_MAX at one time. */ + for (int i = 0; i < runs; i++) { + /* Last batch, take the rest of the buffers */ + int offset = i * dw_batch_page_max; + int batch_num = (i == runs - 1) ? (need_flush_num - offset) : dw_batch_page_max; + uint32 flush_num; + + pgwr->thrd_dw_cxt.is_new_relfilenode = is_new_relfilenode; + pgwr->thrd_dw_cxt.dw_page_idx = -1; + dw_perform_batch_flush(batch_num, dirty_buf_list + offset, &pgwr->thrd_dw_cxt); + flush_num = incre_ckpt_pgwr_flush_dirty_page(wb_context, dirty_buf_list, offset, batch_num); + pgwr->thrd_dw_cxt.dw_page_idx = -1; + num_actual_flush += flush_num; + } + (void)pg_atomic_fetch_add_u64(&g_instance.ckpt_cxt_ctl->page_writer_actual_flush, num_actual_flush); + (void)pg_atomic_fetch_add_u32(&g_instance.ckpt_cxt_ctl->page_writer_last_flush, num_actual_flush); + + for (int i = 0; i < num_actual_flush; i++) { + buf_id = dirty_buf_list[i].buf_id; + if (buf_id == DW_INVALID_BUFFER_ID) { + continue; + } + buf_desc = GetBufferDescriptor(buf_id); + push_to_candidate_list(buf_desc); + } + + if (u_sess->attr.attr_storage.log_pagewriter) { + ereport(LOG, + (errmodule(MOD_INCRE_CKPT), + errmsg("flush dirty page %d, thread id is %d", num_actual_flush, thread_id))); + } +} + +static bool check_buffer_dirty_flag(BufferDesc* buf_desc) +{ + bool segment_buf = (buf_desc->buf_id >= SegmentBufferStartID); + Block tmpBlock = BufHdrGetBlock(buf_desc); + uint32 local_buf_state = pg_atomic_read_u32(&buf_desc->state); + bool check_lsn_not_match = (local_buf_state & BM_VALID) && !(local_buf_state & BM_DIRTY) && + XLByteLT(buf_desc->lsn_on_disk, PageGetLSN(tmpBlock)) && RecoveryInProgress() && !segment_buf; + + if (check_lsn_not_match) { + PinBuffer(buf_desc, NULL); + if (LWLockConditionalAcquire(buf_desc->content_lock, LW_SHARED)) { + pg_memory_barrier(); + local_buf_state = pg_atomic_read_u32(&buf_desc->state); + check_lsn_not_match = (local_buf_state & BM_VALID) && !(local_buf_state & BM_DIRTY) && + XLByteLT(buf_desc->lsn_on_disk, PageGetLSN(tmpBlock)) && RecoveryInProgress(); + if (check_lsn_not_match) { + MarkBufferDirty(BufferDescriptorGetBuffer(buf_desc)); + LWLockRelease(buf_desc->content_lock); + UnpinBuffer(buf_desc, true); + const uint32 shiftSize = 32; + ereport(DEBUG1, (errmodule(MOD_INCRE_BG), + errmsg("check lsn is not matched on disk:%X/%X on page %X/%X, relnode info:%u/%u/%u %u %u stat:%u", + (uint32)(buf_desc->lsn_on_disk >> shiftSize), (uint32)(buf_desc->lsn_on_disk), + (uint32)(PageGetLSN(tmpBlock) >> shiftSize), (uint32)(PageGetLSN(tmpBlock)), + buf_desc->tag.rnode.spcNode, buf_desc->tag.rnode.dbNode, buf_desc->tag.rnode.relNode, + buf_desc->tag.blockNum, buf_desc->tag.forkNum, local_buf_state))); + + return true; + } else { + LWLockRelease(buf_desc->content_lock); + UnpinBuffer(buf_desc, true); + return false; + } + } else { + UnpinBuffer(buf_desc, true); + return false; + } + } + return false; +} + +static uint32 get_list_flush_max_num(bool is_segment) +{ + int thread_num = g_instance.ckpt_cxt_ctl->pgwr_procs.sub_num; + uint32 max_io = g_instance.ckpt_cxt_ctl->pgwr_procs.list_flush_max / thread_num; + uint32 dirty_list_size = MAX_DIRTY_LIST_FLUSH_NUM / thread_num; + + if (is_segment) { + double seg_percent = ((double)(SEGMENT_BUFFER_NUM) / (double)(TOTAL_BUFFER_NUM)); + max_io = max_io * seg_percent; + } else { + double buffer_percent = ((double)(NORMAL_SHARED_BUFFER_NUM) / (double)(TOTAL_BUFFER_NUM)); + max_io = max_io * buffer_percent; + } + max_io = MAX(max_io, DW_DIRTY_PAGE_MAX_FOR_NOHBK); + max_io = MIN(max_io, dirty_list_size); + + return max_io; +} + +const float GAP_PERCENT = 0.15; +static uint32 get_list_flush_num(bool is_segment) +{ + double percent_target = u_sess->attr.attr_storage.candidate_buf_percent_target; + uint32 cur_candidate_num; + uint32 total_target; + uint32 high_water_mark; + uint32 flush_num = 0; + uint32 min_io = DW_DIRTY_PAGE_MAX_FOR_NOHBK; + uint32 max_io = get_list_flush_max_num(is_segment); + uint32 buffer_num = (is_segment ? SEGMENT_BUFFER_NUM : NORMAL_SHARED_BUFFER_NUM); + total_target = buffer_num * percent_target; + high_water_mark = buffer_num * (percent_target / HIGH_WATER); + cur_candidate_num = get_curr_candidate_nums(is_segment); + + /* If the slots are sufficient, the standby DN does not need to flush too many pages. */ + if (RecoveryInProgress() && cur_candidate_num >= total_target / 2) { + max_io = max_io / 2; + if (unlikely(max_io < min_io)) { + max_io = min_io; + } + } + + if (cur_candidate_num >= high_water_mark) { + flush_num = min_io; /* only flush one batch dirty page */ + } else if (cur_candidate_num >= total_target) { + flush_num = min_io + (float)(high_water_mark - cur_candidate_num) / + (float)(high_water_mark - total_target) * (max_io - min_io); + } else { + /* every time flush max_io dirty pages */ + flush_num = max_io; + } + + ereport(DEBUG1, (errmodule(MOD_INCRE_BG), + errmsg("list flush_num is %u, now candidate buf is %u", flush_num, cur_candidate_num))); + return flush_num; +} + +/** + * @Description: First , the pagewriter sub thread scan the normal buffer pool, + * then scan the segment buffer pool. + */ +const int MAX_SCAN_BATCH_NUM = 131072 * 10; /* 10GB buffers */ +static void incre_ckpt_pgwr_scan_buf_pool(WritebackContext wb_context) +{ + int thread_id = t_thrd.pagewriter_cxt.pagewriter_id; + PageWriterProc *pgwr = &g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc[thread_id]; + uint32 need_flush_num = 0; + int start = 0; + int end = 0; + bool is_new_relfilenode = false; + int batch_scan_num = 0; + uint32 max_flush_num = 0; + + /* handle the normal buffer pool */ + if (get_thread_candidate_nums(thread_id) < pgwr->cand_list_size) { + start = MAX(pgwr->buf_id_start, pgwr->next_scan_normal_loc); + end = pgwr->buf_id_start + pgwr->cand_list_size; + batch_scan_num = MIN(pgwr->cand_list_size, MAX_SCAN_BATCH_NUM); + end = MIN(start + batch_scan_num, end); + max_flush_num = get_list_flush_num(false); + + need_flush_num = get_candidate_buf_and_flush_list(start, end, max_flush_num, &is_new_relfilenode); + if (end >= pgwr->buf_id_start + pgwr->cand_list_size) { + pgwr->next_scan_normal_loc = pgwr->buf_id_start; + } else { + pgwr->next_scan_normal_loc = end; + } + if (need_flush_num > 0) { + incre_ckpt_pgwr_flush_dirty_list(wb_context, need_flush_num, is_new_relfilenode); + } + } + + /* handle the segment buffer pool */ + if (get_thread_seg_candidate_nums(thread_id) < pgwr->seg_cand_list_size) { + start = MAX(pgwr->seg_id_start, pgwr->next_scan_seg_loc); + end = pgwr->seg_id_start + pgwr->seg_cand_list_size; + batch_scan_num = MIN(pgwr->seg_cand_list_size, MAX_SCAN_BATCH_NUM); + end = MIN(start + batch_scan_num, end); + max_flush_num = get_list_flush_num(true); + + need_flush_num = get_candidate_buf_and_flush_list(start, end, max_flush_num, &is_new_relfilenode); + if (end >= pgwr->seg_id_start + pgwr->seg_cand_list_size) { + pgwr->next_scan_seg_loc = pgwr->seg_id_start; + } else { + pgwr->next_scan_seg_loc = end; + } + if (need_flush_num > 0) { + incre_ckpt_pgwr_flush_dirty_list(wb_context, need_flush_num, is_new_relfilenode); + } + } + return; +} + +/** + * @Description: Scan n buffers in the BufferPool from start to end, put the unreferenced and not dirty + * page into the candidate list, the unreferenced and dirty page into the dirty list. + * @in: start, can the buffer pool start loc + * @in: end, scan the buffer pool end loc + * @in: max_flush_num, num of pages that can be flushed this time. + * @out: Return the number of dirty buffers and dirty buffer list and this batch buffer + * whether hashbucket is included. + */ +static uint32 get_candidate_buf_and_flush_list(uint32 start, uint32 end, uint32 max_flush_num, + bool *contain_hashbucket) +{ + uint32 need_flush_num = 0; + uint32 candidates = 0; + BufferDesc *buf_desc = NULL; + uint32 local_buf_state; + CkptSortItem* item = NULL; + bool check_not_need_flush = false; + bool check_usecount = false; + int thread_id = t_thrd.pagewriter_cxt.pagewriter_id; + PageWriterProc *pgwr = &g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc[thread_id]; + CkptSortItem *dirty_buf_list = pgwr->dirty_buf_list; + + ResourceOwnerEnlargeBuffers(t_thrd.utils_cxt.CurrentResourceOwner); + + max_flush_num = ((FULL_CKPT && !RecoveryInProgress()) ? 0 : max_flush_num); + + for (uint32 buf_id = start; buf_id < end; buf_id++) { + buf_desc = GetBufferDescriptor(buf_id); + local_buf_state = pg_atomic_read_u32(&buf_desc->state); + + /* during recovery, check the data page whether not properly marked as dirty */ + if (RecoveryInProgress() && check_buffer_dirty_flag(buf_desc)) { + if (need_flush_num < max_flush_num) { + local_buf_state = LockBufHdr(buf_desc); + goto PUSH_DIRTY; + } else { + continue; + } + } + /* Dirty read, pinned buffer, skip */ + if (BUF_STATE_GET_REFCOUNT(local_buf_state) > 0) { + continue; + } + + local_buf_state = LockBufHdr(buf_desc); + if (BUF_STATE_GET_REFCOUNT(local_buf_state) > 0) { + goto UNLOCK; + } + + check_usecount = NEED_CONSIDER_USECOUNT && BUF_STATE_GET_USAGECOUNT(local_buf_state) != 0; + if (check_usecount) { + local_buf_state -= BUF_USAGECOUNT_ONE; + goto UNLOCK; + } + + /* Not dirty, put directly into flushed candidates */ + if (!(local_buf_state & BM_DIRTY)) { + if (g_instance.ckpt_cxt_ctl->candidate_free_map[buf_id] == false) { + if (buf_id < (uint32)SegmentBufferStartID) { + candidate_buf_push(buf_id, thread_id); + } else { + seg_candidate_buf_push(buf_id, thread_id); + } + g_instance.ckpt_cxt_ctl->candidate_free_map[buf_id] = true; + candidates++; + } + goto UNLOCK; + } + + check_not_need_flush = (need_flush_num >= max_flush_num || (!RecoveryInProgress() + && XLogNeedsFlush(BufferGetLSN(buf_desc)))); + if (check_not_need_flush) { + goto UNLOCK; + } + +PUSH_DIRTY: + local_buf_state |= BM_CHECKPOINT_NEEDED; + item = &dirty_buf_list[need_flush_num++]; + item->buf_id = buf_id; + item->tsId = buf_desc->tag.rnode.spcNode; + item->relNode = buf_desc->tag.rnode.relNode; + item->bucketNode = buf_desc->tag.rnode.bucketNode; + item->forkNum = buf_desc->tag.forkNum; + item->blockNum = buf_desc->tag.blockNum; + if (IsSegmentFileNode(buf_desc->tag.rnode)) { + *contain_hashbucket = true; + } + +UNLOCK: + UnlockBufHdr(buf_desc, local_buf_state); + } + + if (u_sess->attr.attr_storage.log_pagewriter) { + ereport(LOG, + (errmodule(MOD_INCRE_CKPT), + errmsg("get candidate buf %d, thread id is %d", candidates, thread_id))); + } + return need_flush_num; +} + +static void push_to_candidate_list(BufferDesc *buf_desc) +{ + uint32 thread_id = t_thrd.pagewriter_cxt.pagewriter_id; + int buf_id = buf_desc->buf_id; + uint32 buf_state = pg_atomic_read_u32(&buf_desc->state); + bool emptyUsageCount = (!NEED_CONSIDER_USECOUNT || BUF_STATE_GET_USAGECOUNT(buf_state) == 0); + + if (BUF_STATE_GET_REFCOUNT(buf_state) > 0 || !emptyUsageCount) { + return; + } + + if (g_instance.ckpt_cxt_ctl->candidate_free_map[buf_id] == false) { + buf_state = LockBufHdr(buf_desc); + if (g_instance.ckpt_cxt_ctl->candidate_free_map[buf_id] == false) { + emptyUsageCount = (!NEED_CONSIDER_USECOUNT || BUF_STATE_GET_USAGECOUNT(buf_state) == 0); + if (BUF_STATE_GET_REFCOUNT(buf_state) == 0 && emptyUsageCount && !(buf_state & BM_DIRTY)) { + if (buf_id < SegmentBufferStartID) { + candidate_buf_push(buf_id, thread_id); + } else { + seg_candidate_buf_push(buf_id, thread_id); + } + g_instance.ckpt_cxt_ctl->candidate_free_map[buf_id] = true; + } + } + UnlockBufHdr(buf_desc, buf_state); + } + return; +} + + +/** + * @Description: Push buffer bufId to thread threadId's candidate list. + * @in: buf_id, buffer id which need push to the list + * @in: thread_id, pagewriter thread id. + */ +static void candidate_buf_push(int buf_id, int thread_id) +{ + PageWriterProc *pgwr = &g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc[thread_id]; + uint32 list_size = pgwr->cand_list_size; + uint32 tail_loc; + + pg_memory_barrier(); + volatile uint64 head = pg_atomic_read_u64(&pgwr->head); + pg_memory_barrier(); + volatile uint64 tail = pg_atomic_read_u64(&pgwr->tail); + + if (unlikely(tail - head >= list_size)) { + Assert(0); + return; + } + tail_loc = tail % list_size; + pgwr->cand_buf_list[tail_loc] = buf_id; + (void)pg_atomic_fetch_add_u64(&pgwr->tail, 1); +} + +static void seg_candidate_buf_push(int buf_id, int thread_id) +{ + PageWriterProc *pgwr = &g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc[thread_id]; + uint32 list_size = pgwr->seg_cand_list_size; + uint32 tail_loc; + + pg_memory_barrier(); + volatile uint64 head = pg_atomic_read_u64(&pgwr->seg_head); + pg_memory_barrier(); + volatile uint64 tail = pg_atomic_read_u64(&pgwr->seg_tail); + + if (unlikely(tail - head >= list_size)) { + Assert(0); + return; + } + tail_loc = tail % list_size; + pgwr->seg_cand_buf_list[tail_loc] = buf_id; + (void)pg_atomic_fetch_add_u64(&pgwr->seg_tail, 1); +} + +/** + * @Description: Pop a buffer from the head of thread threadId's candidate list and store the buffer in buf_id. + * @in: buf_id, store the buffer id from the list. + * @in: thread_id, pagewriter thread id + */ +bool candidate_buf_pop(int *buf_id, int thread_id) +{ + PageWriterProc *pgwr = &g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc[thread_id]; + uint32 list_size = pgwr->cand_list_size; + uint32 head_loc; + + while (true) { + pg_memory_barrier(); + uint64 head = pg_atomic_read_u64(&pgwr->head); + pg_memory_barrier(); + volatile uint64 tail = pg_atomic_read_u64(&pgwr->tail); + + if (unlikely(head >= tail)) { + return false; /* candidate list is empty */ + } + + head_loc = head % list_size; + *buf_id = pgwr->cand_buf_list[head_loc]; + if (pg_atomic_compare_exchange_u64(&pgwr->head, &head, head + 1)) { + return true; + } + } +} + +bool seg_candidate_buf_pop(int *buf_id, int thread_id) +{ + PageWriterProc *pgwr = &g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc[thread_id]; + uint32 list_size = pgwr->seg_cand_list_size; + uint32 head_loc; + + while (true) { + pg_memory_barrier(); + uint64 head = pg_atomic_read_u64(&pgwr->seg_head); + pg_memory_barrier(); + volatile uint64 tail = pg_atomic_read_u64(&pgwr->seg_tail); + + if (unlikely(head >= tail)) { + return false; /* candidate list is empty */ + } + + head_loc = head % list_size; + *buf_id = pgwr->seg_cand_buf_list[head_loc]; + if (pg_atomic_compare_exchange_u64(&pgwr->seg_head, &head, head + 1)) { + return true; + } + } +} + +static int64 get_thread_candidate_nums(int thread_id) +{ + PageWriterProc *pgwr = &g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc[thread_id]; + volatile uint64 head = pg_atomic_read_u64(&pgwr->head); + pg_memory_barrier(); + volatile uint64 tail = pg_atomic_read_u64(&pgwr->tail); + int64 curr_cand_num = tail - head; + Assert(curr_cand_num >= 0); + return curr_cand_num; +} + +static int64 get_thread_seg_candidate_nums(int thread_id) +{ + PageWriterProc *pgwr = &g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc[thread_id]; + volatile uint64 head = pg_atomic_read_u64(&pgwr->seg_head); + pg_memory_barrier(); + volatile uint64 tail = pg_atomic_read_u64(&pgwr->seg_tail); + int64 curr_cand_num = tail - head; + Assert(curr_cand_num >= 0); + return curr_cand_num; +} + + +/** + * @Description: Return a rough estimate of the current number of buffers in the candidate list. + */ +uint32 get_curr_candidate_nums(bool segment) +{ + uint32 currCandidates = 0; + PageWriterProc *pgwr = NULL; + + if (segment) { + for (int i = 1; i < g_instance.ckpt_cxt_ctl->pgwr_procs.num; i++) { + pgwr = &g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc[i]; + if (pgwr->proc != NULL) { + currCandidates += get_thread_seg_candidate_nums(i); + } + } + return currCandidates; + } + + for (int i = 1; i < g_instance.ckpt_cxt_ctl->pgwr_procs.num; i++) { + pgwr = &g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc[i]; + if (pgwr->proc != NULL) { + currCandidates += get_thread_candidate_nums(i); + } + } + return currCandidates; +} + static void ckpt_pagewriter_sighup_handler(SIGNAL_ARGS) { int save_errno = errno; diff --git a/src/gausskernel/process/postmaster/pgarch.cpp b/src/gausskernel/process/postmaster/pgarch.cpp index ed8323895..1e436511b 100755 --- a/src/gausskernel/process/postmaster/pgarch.cpp +++ b/src/gausskernel/process/postmaster/pgarch.cpp @@ -59,9 +59,10 @@ #include "replication/walsender_private.h" #include "replication/walsender.h" #include "pgxc/pgxc.h" -#include "replication/obswalreceiver.h" +#include "replication/archive_walreceiver.h" #include "replication/walreceiver.h" #include "access/obs/obs_am.h" +#include "access/archive/archive_am.h" #include "replication/dcf_replication.h" /* ---------- @@ -292,7 +293,6 @@ static void pgarch_waken(SIGNAL_ARGS) /* set flag that there is work to be done */ t_thrd.arch.wakened = true; SetLatch(&t_thrd.arch.mainloop_latch); - ereport(DEBUG1, (errmsg("pgarch_waken"))); errno = save_errno; } @@ -367,7 +367,7 @@ static void pgarch_MainLoop(void) if (t_thrd.arch.got_SIGHUP) { t_thrd.arch.got_SIGHUP = false; ProcessConfigFile(PGC_SIGHUP); - if (!XLogArchivingActive() && getObsReplicationSlot() == NULL) { + if (!XLogArchivingActive() && getArchiveReplicationSlot() == NULL) { ereport(LOG, (errmsg("PgArchiver exit"))); return; } @@ -404,7 +404,7 @@ static void pgarch_MainLoop(void) /* Do what we're here for */ if (t_thrd.arch.wakened || time_to_stop) { t_thrd.arch.wakened = false; - obs_archive_slot = getObsReplicationSlot(); + obs_archive_slot = getArchiveReplicationSlot(); if (obs_archive_slot != NULL && !IsServerModeStandby()) { gettimeofday(&curtime, NULL); const long time_diff = TIME_GET_MILLISEC(curtime) - t_thrd.arch.last_arch_time; @@ -445,7 +445,7 @@ static void pgarch_MainLoop(void) #endif } pgarch_ArchiverObsCopyLoop(flushPtr, fun); - advanceObsSlot(flushPtr); + AdvanceArchiveSlot(flushPtr); } } else { pgarch_ArchiverCopyLoop(); @@ -503,7 +503,7 @@ static void pgarch_MainLoop(void) * or after completing one more archiving cycle after receiving * SIGUSR2. */ - } while (PostmasterIsAlive() && !time_to_stop && (XLogArchivingActive() || getObsReplicationSlot() != NULL)); + } while (PostmasterIsAlive() && !time_to_stop && (XLogArchivingActive() || getArchiveReplicationSlot() != NULL)); } /* @@ -644,6 +644,19 @@ static bool PgarchArchiveXlogToDest(const char* xlog) return false; } +/* + * Update archived xlog LSN for barrier. + * + */ +static inline void UpdateArchivedLsn(XLogRecPtr targetLsn) +{ + ArchiveTaskStatus *archive_task_status = nullptr; + archive_task_status = find_archive_task_status(&t_thrd.arch.archive_task_idx); + if (archive_task_status == nullptr) { + return; + } + archive_task_status->archived_lsn = targetLsn; +} /* * pgarch_ArchiverObsCopyLoop @@ -709,6 +722,7 @@ static void pgarch_ArchiverObsCopyLoop(XLogRecPtr flushPtr, doArchive fun) gettimeofday(&tv, NULL); t_thrd.arch.last_arch_time = TIME_GET_MILLISEC(tv); t_thrd.arch.pitr_task_last_lsn = targetLsn; + UpdateArchivedLsn(targetLsn); ResetLatch(&t_thrd.arch.mainloop_latch); ereport(LOG, (errmsg("pgarch_ArchiverObsCopyLoop time change to %ld", t_thrd.arch.last_arch_time))); @@ -970,9 +984,9 @@ static void pgarch_archiveRoachForPitrStandby() (uint32)(archive_task_status->archive_task.targetLsn), archive_task_status->archive_task.term, archive_task_status->archive_task.sub_term))); - if (obs_replication_archive(&archive_task_status->archive_task) == 0) { + if (ArchiveReplicationAchiver(&archive_task_status->archive_task) == 0) { archive_task_status->pitr_finish_result = true; - obs_update_archive_start_end_location_file(archive_task_status->archive_task.targetLsn, TIME_GET_MILLISEC(tv)); + update_archive_start_end_location_file(archive_task_status->archive_task.targetLsn, TIME_GET_MILLISEC(tv)); } else { ereport(WARNING, (errmsg("error when pgarch_archiveRoachForPitrStandby %s : %X/%X, term:%d, subterm:%d", @@ -1056,7 +1070,7 @@ static bool pgarch_archiveRoachForCoordinator(XLogRecPtr targetLsn) archive_xlog_info.term = 0; archive_xlog_info.sub_term = 0; archive_xlog_info.tli = 0; - if (obs_replication_archive(&archive_xlog_info) != 0) { + if (ArchiveReplicationAchiver(&archive_xlog_info) != 0) { archive_task_status->pitr_finish_result = false; ereport(WARNING, (errmsg("error when pgarch_archiveRoachForCoordinator %s : %X/%X, term:%d, subterm:%d", @@ -1142,8 +1156,7 @@ static void InitArchiverLastTaskLsn() load_server_mode(); gettimeofday(&tv,NULL); t_thrd.arch.last_arch_time = TIME_GET_MILLISEC(tv); - t_thrd.arch.arch_start_timestamp = TIME_GET_MILLISEC(tv); - ArchiveSlotConfig* obs_archive_slot = getObsReplicationSlot(); + ArchiveSlotConfig* obs_archive_slot = getArchiveReplicationSlot(); if (obs_archive_slot != NULL && !IsServerModeStandby()) { InitPitrTaskLastLsn(obs_archive_slot); } @@ -1155,7 +1168,7 @@ static void InitPitrTaskLastLsn(ArchiveSlotConfig* obs_archive_slot) struct timeval tv; gettimeofday(&tv,NULL); - if (obs_replication_get_last_xlog(&obs_archive_info, &obs_archive_slot->archive_obs) == 0) { + if (archive_replication_get_last_xlog(&obs_archive_info, &obs_archive_slot->archive_config) == 0) { t_thrd.arch.pitr_task_last_lsn = obs_archive_info.targetLsn; ereport(LOG, (errmsg("initLastTaskLsn update lsn to %X/%X from obs", (uint32)(t_thrd.arch.pitr_task_last_lsn >> 32), @@ -1179,11 +1192,11 @@ static void InitPitrTaskLastLsn(ArchiveSlotConfig* obs_archive_slot) write_start_end_arch_timeto_obs(get_curr_last_xlog_time(LastRemovedSegno), true); t_thrd.arch.pitr_task_last_lsn = OldestKeepRecvPtr - (OldestKeepRecvPtr % XLogSegSize); } - advanceObsSlot(t_thrd.arch.pitr_task_last_lsn); + AdvanceArchiveSlot(t_thrd.arch.pitr_task_last_lsn); } else { XLogRecPtr targetLsn = GetFlushRecPtr(); t_thrd.arch.pitr_task_last_lsn = targetLsn - (targetLsn % XLogSegSize); - advanceObsSlot(t_thrd.arch.pitr_task_last_lsn); + AdvanceArchiveSlot(t_thrd.arch.pitr_task_last_lsn); ereport(LOG, (errmsg("initLastTaskLsn update lsn to %X/%X from local", (uint32)(t_thrd.arch.pitr_task_last_lsn >> 32), (uint32)(t_thrd.arch.pitr_task_last_lsn)))); @@ -1197,8 +1210,9 @@ static void write_start_end_arch_timeto_obs(long cur_time, bool is_start) return ; } errno_t rc = 0; - ObsArchiveConfig obsConfig; - ArchiveSlotConfig* obs_archive_slot = getObsReplicationSlot(); + ArchiveConfig obsConfig; + const int messageLen = 21; + ArchiveSlotConfig* obs_archive_slot = getArchiveReplicationSlot(); if (obs_archive_slot == NULL) { return; } @@ -1208,11 +1222,11 @@ static void write_start_end_arch_timeto_obs(long cur_time, bool is_start) cur_time, is_start ? "true" : "false"))); /* copy OBS configs to temporary variable for customising file path */ - rc = memcpy_s(&obsConfig, sizeof(ObsArchiveConfig), &obs_archive_slot->archive_obs, sizeof(ObsArchiveConfig)); + rc = memcpy_s(&obsConfig, sizeof(ArchiveConfig), &obs_archive_slot->archive_config, sizeof(ArchiveConfig)); securec_check(rc, "", ""); if (!IS_PGXC_COORDINATOR) { - rc = strcpy_s(pathPrefix, MAXPGPATH, obsConfig.obs_prefix); + rc = strcpy_s(pathPrefix, MAXPGPATH, obsConfig.archive_prefix); securec_check(rc, "\0", "\0"); char *p = strrchr(pathPrefix, '/'); @@ -1221,12 +1235,12 @@ static void write_start_end_arch_timeto_obs(long cur_time, bool is_start) errmsg("Obs path prefix is invalid"))); } *p = '\0'; - obsConfig.obs_prefix = pathPrefix; + obsConfig.archive_prefix = pathPrefix; } rc = snprintf_s(obsfile_name, MAXPGPATH, MAXPGPATH - 1, "%s/%s_%013ld", ARCH_TIME_FOLDER, is_start ? "s" : "e", cur_time); securec_check_ss_c(rc, "\0", "\0"); - obsWrite(obsfile_name, "not important content", MAX_BARRIER_ID_LENGTH - 1, &obsConfig); + ArchiveWrite(obsfile_name, "not important content", messageLen, &obsConfig); } @@ -1238,7 +1252,7 @@ static long get_current_barrier_time() uint64_t barrier_id; long ts = 0; - if (obs_replication_read_file(BARRIER_FILE, (char *)barrier_name, MAX_BARRIER_ID_LENGTH, t_thrd.arch.slot_name)) { + if (ArchiveReplicationReadFile(BARRIER_FILE, (char *)barrier_name, MAX_BARRIER_ID_LENGTH, t_thrd.arch.slot_name)) { barrier_name[BARRIER_NAME_LEN - 1] = '\0'; ereport(LOG, (errmsg("[initLastTaskLsn] read barrier id from obs %s", barrier_name))); } else { diff --git a/src/gausskernel/process/postmaster/pgaudit.cpp b/src/gausskernel/process/postmaster/pgaudit.cpp index 7522e3dfc..75e4962e9 100755 --- a/src/gausskernel/process/postmaster/pgaudit.cpp +++ b/src/gausskernel/process/postmaster/pgaudit.cpp @@ -376,7 +376,7 @@ static void flush_pipe_input(char* auditbuffer, int* bytes_in_auditbuffer); static void pgaudit_write_file(char* buffer, int count); static void pgaudit_write_policy_audit_file(const char* buffer, int count); -static void auditfile_init(void); +static void auditfile_init(bool allow_errors = false); static FILE *auditfile_open(pg_time_t timestamp, const char *mode, bool allow_errors, const char *filename = pgaudit_filename, bool ignore_num = false); static void auditfile_close(AuditFileType flag); @@ -570,7 +570,7 @@ NON_EXEC_STATIC void PgAuditorMain() if (!t_thrd.audit.rotation_requested && u_sess->attr.attr_security.Audit_RotationSize > 0 && !t_thrd.audit.rotation_disabled) { - int64 filesize = ftell(t_thrd.audit.sysauditFile); + int64 filesize = (t_thrd.audit.sysauditFile != NULL) ? ftell(t_thrd.audit.sysauditFile) : 0; /* Do a rotation if file is too big */ if (filesize >= (int64)u_sess->attr.attr_security.Audit_RotationSize * 1024L || filesize >= (int64)u_sess->attr.attr_security.Audit_SpaceLimit * 1024L) { @@ -616,15 +616,15 @@ NON_EXEC_STATIC void PgAuditorMain() #ifndef WIN32 rc = WaitLatchOrSocket( &t_thrd.audit.sysAuditorLatch, WL_LATCH_SET | WL_SOCKET_READABLE | cur_flags, sysauditPipe[0], cur_timeout); - if (rc & WL_SOCKET_READABLE) { - int bytesRead; - /* - * Check the current audit file. - */ - CheckAuditFile(); - bytesRead = read( + int bytesRead = read( sysauditPipe[0], auditbuffer + bytes_in_auditbuffer, sizeof(auditbuffer) - bytes_in_auditbuffer - 1); + if (bytesRead > 0) { + /* + * Check the current audit file. + */ + CheckAuditFile(); + } if (bytesRead < 0) { if (errno != EINTR) ereport(LOG, (errcode_for_socket_access(), errmsg("could not read from auditor pipe: %m"))); @@ -666,6 +666,7 @@ NON_EXEC_STATIC void PgAuditorMain() if (t_thrd.audit.pipe_eof_seen) { break; } + } /* @@ -1157,21 +1158,23 @@ static unsigned int __stdcall pipeThread(void* arg) /* * Brief : initialize the audit file. - * Description : + * Description : set parameter allow_erros as error level, do not allow error as default */ -static void auditfile_init(void) +static void auditfile_init(bool allow_errors) { /* * The initial auditfile is created right in the postmaster, to verify that * the Audit_directory is writable. */ if (!t_thrd.audit.sysauditFile) { - t_thrd.audit.sysauditFile = auditfile_open(time(NULL), "a", false); - if (ftell(t_thrd.audit.sysauditFile) == 0) + t_thrd.audit.sysauditFile = auditfile_open(time(NULL), "a", allow_errors); + if (t_thrd.audit.sysauditFile != NULL) { + /* trigger one internal event in traditional audit log */ audit_report(AUDIT_INTERNAL_EVENT, AUDIT_OK, "file", "create a new audit file"); + } } if (!t_thrd.audit.policyauditFile && IS_PGXC_COORDINATOR) { - t_thrd.audit.policyauditFile = auditfile_open(time(NULL), "a", false, policy_audit_filename, true); + t_thrd.audit.policyauditFile = auditfile_open(time(NULL), "a", allow_errors, policy_audit_filename, true); } } @@ -2831,19 +2834,21 @@ static void CheckAuditFile(void) rc = snprintf_s(t_thrd.audit.pgaudit_filepath, MAXPGPATH, MAXPGPATH - 1, pgaudit_filename, g_instance.attr.attr_security.Audit_directory, fnum); securec_check_ss(rc, "\0", "\0"); + /* * If the current write file is not exist, we'll reinit the sysauditFile. * Also, when we querying the auditfile and finding invalid header file, * we'll truncate it. And in there we'll reinit it too. - * + * allow error here as process have been rnning but not startup */ if (lstat(t_thrd.audit.pgaudit_filepath, &statBuf) == -1 || (lstat(t_thrd.audit.pgaudit_filepath, &statBuf) == 0 && statBuf.st_size == 0)) { if (t_thrd.audit.sysauditFile != NULL) { fclose(t_thrd.audit.sysauditFile); t_thrd.audit.sysauditFile = NULL; - auditfile_init(); } } + /* make sure init audit file if pgaudit_filepath accessable */ + auditfile_init(true); } diff --git a/src/gausskernel/process/postmaster/pgstat.cpp b/src/gausskernel/process/postmaster/pgstat.cpp index ab9874731..4e4821a39 100644 --- a/src/gausskernel/process/postmaster/pgstat.cpp +++ b/src/gausskernel/process/postmaster/pgstat.cpp @@ -14,6 +14,7 @@ * * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. * Copyright (c) 2001-2012, PostgreSQL Global Development Group + * Portions Copyright (c) 2021, openGauss Contributors * * IDENTIFICATION * src/gausskernel/process/postmaster/pgstat.cpp @@ -57,6 +58,7 @@ #include "postmaster/postmaster.h" #include "postmaster/pagewriter.h" #include "replication/catchup.h" +#include "replication/walsender.h" #include "storage/backendid.h" #include "storage/smgr/fd.h" #include "storage/ipc.h" @@ -1541,7 +1543,9 @@ void pgstat_report_sql_rt(uint64 UniqueSQLId, int64 start_time, int64 rt) } if (g_instance.stat_cxt.pgStatSock == PGINVALID_SOCKET || !u_sess->attr.attr_common.enable_instr_rt_percentile) return; - + if (!PMstateIsRun()) { + return; + } pgstat_setheader(&msg.m_hdr, PGSTAT_MTYPE_RESPONSETIME); msg.sqlRT.UniqueSQLId = UniqueSQLId; msg.sqlRT.start_time = start_time; @@ -1874,7 +1878,7 @@ void pgstat_initstats(Relation rel) /* We only count stats for things that have storage */ if (!(relkind == RELKIND_RELATION || relkind == RELKIND_MATVIEW || relkind == RELKIND_INDEX || - relkind == RELKIND_GLOBAL_INDEX || relkind == RELKIND_TOASTVALUE || relkind == RELKIND_SEQUENCE)) { + relkind == RELKIND_GLOBAL_INDEX || relkind == RELKIND_TOASTVALUE || RELKIND_IS_SEQUENCE(relkind))) { rel->pgstat_info = NULL; return; } @@ -2218,6 +2222,7 @@ void pgstat_count_cu_update(Relation rel, int n) /* cstore and dfs don't have hot update chain */ pgstat_info->trans->tuples_updated += n; + pgstat_info->trans->tuples_updated_accum += n; } } @@ -2236,6 +2241,7 @@ void pgstat_count_cu_delete(Relation rel, int n) add_tabstat_xact_level(pgstat_info, nest_level); pgstat_info->trans->tuples_deleted += n; + pgstat_info->trans->tuples_deleted_accum += n; } } @@ -2264,10 +2270,17 @@ void AtEOXact_PgStat(bool isCommit) * Count transaction commit or abort. (We use counters, not just bools, * in case the reporting message isn't sent right away.) */ - if (isCommit) + if (isCommit) { u_sess->stat_cxt.pgStatXactCommit++; - else + } else if (!AM_WAL_DB_SENDER) { + /* + * Walsender for logical decoding will not count rollback transaction + * any more. Logical decoding frequently starts and rollback transactions + * to access system tables and syscache, see ReorderBufferCommit() + * for more details. + */ u_sess->stat_cxt.pgStatXactRollback++; + } pgstatCountTransactionCommit4SessionLevel(isCommit); @@ -7297,7 +7310,13 @@ void pgstat_initstats_partition(Partition part) } /* find or make the PgStat_TableStatus entry, and update link */ - part->pd_pgstat_info = get_tabstat_entry(part_id, false, PartitionGetRelid(part)); + Oid relid; + if (part->pd_part->parttype == PART_OBJ_TYPE_TABLE_SUB_PARTITION) { + relid = partid_get_parentid(part->pd_part->parentid); + } else { + relid = PartitionGetRelid(part); + } + part->pd_pgstat_info = get_tabstat_entry(part_id, false, relid); } /* @@ -9119,6 +9138,30 @@ TableDistributionInfo* get_remote_stat_bgwriter(TupleDesc tuple_desc) return distribuion_info; } +TableDistributionInfo* get_remote_stat_candidate(TupleDesc tuple_desc) +{ + StringInfoData buf; + TableDistributionInfo* distribuion_info = NULL; + + /* the memory palloced here should be free outside where it was called. */ + distribuion_info = (TableDistributionInfo*)palloc0(sizeof(TableDistributionInfo)); + + initStringInfo(&buf); + + appendStringInfo(&buf, + "select " + "node_name,candidate_slots,get_buf_from_list,get_buf_clock_sweep, " + "seg_candidate_slots,seg_get_buf_from_list,seg_get_buf_clock_sweep " + "from local_candidate_stat(); "); + + /* send sql and parallel fetch distribution info from all data nodes */ + distribuion_info->state = RemoteFunctionResultHandler(buf.data, NULL, NULL, true, EXEC_ON_ALL_NODES, true); + distribuion_info->slot = MakeSingleTupleTableSlot(tuple_desc); + + return distribuion_info; +} + + TableDistributionInfo* get_remote_single_flush_dw_stat(TupleDesc tuple_desc) { StringInfoData buf; @@ -9232,6 +9275,29 @@ TableDistributionInfo* get_recovery_stat(TupleDesc tuple_desc) return distribuion_info; } +TableDistributionInfo* streaming_hadr_get_recovery_stat(TupleDesc tuple_desc) +{ + StringInfoData buf; + TableDistributionInfo* distribuion_info = NULL; + + /* the memory palloced here should be free outside where it was called. */ + distribuion_info = (TableDistributionInfo*)palloc0(sizeof(TableDistributionInfo)); + + initStringInfo(&buf); + + appendStringInfo(&buf, + "SELECT hadr_sender_node_name, hadr_receiver_node_name, " + "source_ip, source_port, dest_ip, dest_port, current_rto, target_rto, current_rpo, target_rpo, " + "current_sleep_time FROM " + "hadr_local_rto_and_rpo_stat();"); + + /* send sql and parallel fetch distribution info from all data nodes */ + distribuion_info->state = RemoteFunctionResultHandler(buf.data, NULL, NULL, true, EXEC_ON_ALL_NODES, true); + distribuion_info->slot = MakeSingleTupleTableSlot(tuple_desc); + + return distribuion_info; +} + TableDistributionInfo* get_remote_node_xid_csn(TupleDesc tuple_desc) { StringInfoData buf; diff --git a/src/gausskernel/process/postmaster/postmaster.cpp b/src/gausskernel/process/postmaster/postmaster.cpp index c96f24111..901d891dd 100644 --- a/src/gausskernel/process/postmaster/postmaster.cpp +++ b/src/gausskernel/process/postmaster/postmaster.cpp @@ -97,6 +97,7 @@ #include "opfusion/opfusion_util.h" #include "instruments/instr_slow_query.h" #include "instruments/instr_statement.h" +#include "instruments/instr_func_control.h" #include "lib/dllist.h" #include "libpq/auth.h" @@ -164,6 +165,7 @@ #include "storage/proc.h" #include "storage/remote_read.h" #include "storage/procarray.h" +#include "storage/xlog_share_storage/xlog_share_storage.h" #include "tcop/tcopprot.h" #include "utils/builtins.h" #include "utils/datetime.h" @@ -335,10 +337,6 @@ char g_bbox_dump_path[1024] = {0}; } \ } while (0) -#define WalRcvIsOnline() \ - ((g_instance.pid_cxt.WalReceiverPID != 0 && t_thrd.walreceiverfuncs_cxt.WalRcv && \ - t_thrd.walreceiverfuncs_cxt.WalRcv->isRuning)) - #define DataRcvIsOnline() \ ((IS_DN_DUMMY_STANDYS_MODE() ? (g_instance.pid_cxt.DataReceiverPID != 0 && t_thrd.datareceiver_cxt.DataRcv && \ t_thrd.datareceiver_cxt.DataRcv->isRuning) \ @@ -394,11 +392,12 @@ static void SetHaShmemData(void); static bool IsAlreadyListen(const char* ip, int port); static void IntArrayRegulation(int array[], int len, int def); static void ListenSocketRegulation(void); -static bool ParseHaListenAddr(LISTEN_ADDRS* pListenList); +static bool ParseHaListenAddr(LISTEN_ADDRS* pListenList, ReplConnInfo** replConnArray); static void CreateHaListenSocket(void); static void RemoteHostInitilize(Port* port); static int StartupPacketInitialize(Port* port); static void PsDisplayInitialize(Port* port); +static void SetListenSocket(ReplConnInfo **replConnArray, bool *listen_addr_saved); static ServerMode get_cur_mode(void); static int get_cur_repl_num(void); @@ -1016,6 +1015,62 @@ static void print_port_info() return; } +static void SetListenSocket(ReplConnInfo **replConnArray, bool *listen_addr_saved) +{ + int i = 0; + int success = 0; + int status = STATUS_OK; + + for (i = 1; i < MAX_REPLNODE_NUM; i++) { + if (replConnArray[i] != NULL) { + if (!(*listen_addr_saved) && + !IsInplicitIp(replConnArray[i]->localhost)) { + AddToDataDirLockFile(LOCK_FILE_LINE_LISTEN_ADDR, replConnArray[i]->localhost); + *listen_addr_saved = true; + } + if (IsAlreadyListen(replConnArray[i]->localhost, + replConnArray[i]->localport)) { + success++; + continue; + } + + status = StreamServerPort(AF_UNSPEC, + replConnArray[i]->localhost, + (unsigned short)replConnArray[i]->localport, + g_instance.attr.attr_network.UnixSocketDir, + t_thrd.postmaster_cxt.ListenSocket, + MAXLISTEN, + false, + false, + false); + if (status == STATUS_OK) { + success++; + } else { + ReportAlarmAbnormalDataHAInstListeningSocket(); + ereport(FATAL, + (errmsg("could not create Ha listen socket for ReplConnInfoArr[%d]\"%s:%d\"", + i, + replConnArray[i]->localhost, + replConnArray[i]->localport))); + } + } + } + + if (success == 0) { + ReportAlarmAbnormalDataHAInstListeningSocket(); + ereport(WARNING, (errmsg("could not create any HA TCP/IP sockets"))); + } +} + +bool isNotWildcard(void* val1, void* val2) +{ + ListCell* cell = (ListCell*)val1; + char* nodename = (char*)val2; + + char* curhost = (char*)lfirst(cell); + return (strcmp(curhost, nodename) == 0) ? false : true; +} + /* * Postmaster main entry point */ @@ -1109,7 +1164,7 @@ int PostmasterMain(int argc, char* argv[]) * common help() function in main/main.c. */ initOptParseContext(&optCtxt); - while ((opt = getopt_r(argc, argv, "A:B:bc:C:D:d:EeFf:h:ijk:lM:N:nOo:Pp:Rr:S:sTt:u:W:-:", &optCtxt)) != -1) { + while ((opt = getopt_r(argc, argv, "A:B:bc:C:D:d:EeFf:h:ijk:lM:N:nOo:Pp:Rr:S:sTt:u:W:g:X:-:", &optCtxt)) != -1) { switch (opt) { case 'A': SetConfigOption("debug_assertions", optCtxt.optarg, PGC_POSTMASTER, PGC_S_ARGV); @@ -1155,7 +1210,9 @@ int PostmasterMain(int argc, char* argv[]) } break; - + case 'g': + SetConfigOption("xlog_file_path", optCtxt.optarg, PGC_POSTMASTER, PGC_S_ARGV); + break; case 'h': SetConfigOption("listen_addresses", optCtxt.optarg, PGC_POSTMASTER, PGC_S_ARGV); break; @@ -1193,6 +1250,10 @@ int PostmasterMain(int argc, char* argv[]) '\0' == optCtxt.optarg[strlen("cascade_standby")]) { t_thrd.xlog_cxt.server_mode = STANDBY_MODE; t_thrd.xlog_cxt.is_cascade_standby = true; + } else if (0 == strncmp(optCtxt.optarg, "hadr_main_standby", strlen("hadr_main_standby")) && + '\0' == optCtxt.optarg[strlen("hadr_main_standby")]) { + t_thrd.xlog_cxt.server_mode = STANDBY_MODE; + t_thrd.xlog_cxt.is_hadr_main_standby = true; } else { ereport(FATAL, (errmsg("the options of -M is not recognized"))); } @@ -1288,7 +1349,15 @@ int PostmasterMain(int argc, char* argv[]) case 'W': SetConfigOption("post_auth_delay", optCtxt.optarg, PGC_POSTMASTER, PGC_S_ARGV); break; - + case 'X': + /* stop barrier */ + if ((optCtxt.optarg != NULL) && (strlen(optCtxt.optarg) > 0)) { + rc = strncpy_s(g_instance.stopBarrierId, MAX_BARRIER_ID_LENGTH, (char *)optCtxt.optarg, + strlen(optCtxt.optarg)); + securec_check(rc, "\0", "\0"); + ereport(LOG, (errmsg("Set stop barrierID %s", g_instance.stopBarrierId))); + } + break; case 'c': case '-': { char* name = NULL; @@ -1605,6 +1674,20 @@ int PostmasterMain(int argc, char* argv[]) (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("invalid list syntax for \"listen_addresses\""))); } + bool haswildcard = false; + foreach (l, elemlist) { + char* curhost = (char*)lfirst(l); + if (strcmp(curhost, "*") == 0) { + haswildcard = true; + break; + } + } + + if (haswildcard == true) { + char *wildcard = "*"; + elemlist = list_cell_clear(elemlist, (void *)wildcard, isNotWildcard); + } + foreach (l, elemlist) { char* curhost = (char*)lfirst(l); @@ -1689,57 +1772,16 @@ int PostmasterMain(int argc, char* argv[]) if (!success && list_length(elemlist)) ereport(FATAL, (errmsg("could not create any TCP/IP sockets"))); - list_free(elemlist); + list_free_ext(elemlist); pfree(rawstring); } if (t_thrd.xlog_cxt.server_mode != NORMAL_MODE) { - int i = 0; - int success = 0; - - for (i = 1; i < MAX_REPLNODE_NUM; i++) { - if (t_thrd.postmaster_cxt.ReplConnArray[i] != NULL) { - if (!listen_addr_saved && - !IsInplicitIp(t_thrd.postmaster_cxt.ReplConnArray[i]->localhost)) { - AddToDataDirLockFile(LOCK_FILE_LINE_LISTEN_ADDR, - t_thrd.postmaster_cxt.ReplConnArray[i]->localhost); - listen_addr_saved = true; - } - if (IsAlreadyListen(t_thrd.postmaster_cxt.ReplConnArray[i]->localhost, - t_thrd.postmaster_cxt.ReplConnArray[i]->localport)) { - success++; - continue; - } - - status = StreamServerPort(AF_UNSPEC, - t_thrd.postmaster_cxt.ReplConnArray[i]->localhost, - (unsigned short)t_thrd.postmaster_cxt.ReplConnArray[i]->localport, - g_instance.attr.attr_network.UnixSocketDir, - t_thrd.postmaster_cxt.ListenSocket, - MAXLISTEN, - false, - false, - false); - if (status == STATUS_OK) { - success++; - } else { - ReportAlarmAbnormalDataHAInstListeningSocket(); - ereport(FATAL, - (errmsg("could not create Ha listen socket for ReplConnInfoArr[%d]\"%s:%d\"", - i, - t_thrd.postmaster_cxt.ReplConnArray[i]->localhost, - t_thrd.postmaster_cxt.ReplConnArray[i]->localport))); - } - } - } - if (success == 0) { - ReportAlarmAbnormalDataHAInstListeningSocket(); - - ereport(WARNING, (errmsg("could not create any HA TCP/IP sockets"))); - } + SetListenSocket(t_thrd.postmaster_cxt.ReplConnArray, &listen_addr_saved); ReportResumeAbnormalDataHAInstListeningSocket(); } - + SetListenSocket(t_thrd.postmaster_cxt.CrossClusterReplConnArray, &listen_addr_saved); + ReportResumeAbnormalDataHAInstListeningSocket(); #ifdef USE_BONJOUR /* Register for Bonjour only if we opened TCP socket(s) */ @@ -2086,6 +2128,8 @@ int PostmasterMain(int argc, char* argv[]) init_capture_view(); /* init percentile */ InitPercentile(); + /* init dynamic statement track control */ + InitTrackStmtControl(); #ifdef ENABLE_MULTIPLE_NODES /* init compaction */ CompactionProcess::init_instance(); @@ -2120,6 +2164,7 @@ int PostmasterMain(int argc, char* argv[]) */ int loadhbaCount = 0; while (!load_hba()) { + check_old_hba(true); loadhbaCount++; if (loadhbaCount >= 3) { /* @@ -2198,6 +2243,7 @@ int PostmasterMain(int argc, char* argv[]) /* * We're ready to rock and roll... */ + ShareStorageInit(); g_instance.pid_cxt.StartupPID = initialize_util_thread(STARTUP); Assert(g_instance.pid_cxt.StartupPID != 0); pmState = PM_STARTUP; @@ -2426,6 +2472,17 @@ static void CheckExtremeRtoGUCConflicts(void) errhint("recommend config \"wal_receiver_buffer_size=64MB\""))); } + if ((g_instance.attr.attr_storage.recovery_parse_workers > 1) && (u_sess->attr.attr_storage.target_rto > 0 || + u_sess->attr.attr_storage.hadr_recovery_time_target > 0 || + u_sess->attr.attr_storage.hadr_recovery_point_target > 0)) { + ereport(WARNING, (errmsg("Extreme RTO and flow control cannot be enabled at the same time."), + errhint("We have reset the flow control to the off state. " + "Please modify the postgresql.conf file."))); + + u_sess->attr.attr_storage.target_rto = 0; + u_sess->attr.attr_storage.hadr_recovery_time_target = 0; + } + #ifndef ENABLE_MULTIPLE_NODES if ((g_instance.attr.attr_storage.recovery_parse_workers > 1) && g_instance.attr.attr_storage.EnableHotStandby) { ereport(ERROR, @@ -2459,6 +2516,21 @@ static void CheckGUCConflictsMaxConnections() return; } +static void CheckShareStorageConfigConflicts(void) +{ + if (g_instance.attr.attr_storage.xlog_file_path != NULL) { + if (g_instance.attr.attr_storage.xlog_file_size == 0) { + ereport(ERROR, (errcode(ERRCODE_SYSTEM_ERROR), + errmsg("configured \"xlog_file_path\" but not configured \"xlog_file_size\""))); + } + + if (g_instance.attr.attr_storage.xlog_lock_file_path == NULL) { + ereport(WARNING, (errcode(ERRCODE_SYSTEM_ERROR), + errmsg("configured \"xlog_file_path\" but not configured \"xlog_lock_file_path\""))); + } + } +} + /* * Check for invalid combinations of GUC settings during starting up. */ @@ -2513,6 +2585,7 @@ static void CheckGUCConflicts(void) ExitPostmaster(1); } CheckExtremeRtoGUCConflicts(); + CheckShareStorageConfigConflicts(); } static bool save_backend_variables_for_callback_thread() @@ -2535,11 +2608,11 @@ static bool save_backend_variables_for_callback_thread() static bool ObsSlotThreadExist(const char* slotName) { for (int i = 0; i < g_instance.attr.attr_storage.max_replication_slots; i++) { - if (g_instance.archive_obs_thread_info.slotName[i] == NULL) { + if (g_instance.archive_thread_info.slotName[i] == NULL) { continue; } - if (strcmp(g_instance.archive_obs_thread_info.slotName[i], slotName) == 0 && - g_instance.archive_obs_thread_info.obsArchPID[i] != 0) { + if (strcmp(g_instance.archive_thread_info.slotName[i], slotName) == 0 && + g_instance.archive_thread_info.obsArchPID[i] != 0) { return true; } } @@ -2554,7 +2627,7 @@ static char *GetObsSlotName(const List *archiveSlotNames) if (slotName == NULL || strlen(slotName) == 0) { return NULL; } - if (!ObsSlotThreadExist(slotName) && getObsReplicationSlotWithName(slotName) != NULL) { + if (!ObsSlotThreadExist(slotName) && getArchiveReplicationSlotWithName(slotName) != NULL) { return slotName; } } @@ -2564,7 +2637,7 @@ static char *GetObsSlotName(const List *archiveSlotNames) static void ArchObsThreadStart(int threadIndex) { - List *archiveSlotNames = get_all_archive_obs_slots_name(); + List *archiveSlotNames = GetAllArchiveSlotsName(); if (archiveSlotNames == NIL || archiveSlotNames->length == 0) { return; } @@ -2576,39 +2649,39 @@ static void ArchObsThreadStart(int threadIndex) ereport(LOG, (errmsg("pgarch thread need start, create slotName: %s, index: %d", slotName, threadIndex))); errno_t rc = EOK; - rc = memcpy_s(g_instance.archive_obs_thread_info.slotName[threadIndex], NAMEDATALEN, slotName, strlen(slotName)); + rc = memcpy_s(g_instance.archive_thread_info.slotName[threadIndex], NAMEDATALEN, slotName, strlen(slotName)); securec_check(rc, "\0", "\0"); - g_instance.archive_obs_thread_info.obsArchPID[threadIndex] = initialize_util_thread(ARCH, - g_instance.archive_obs_thread_info.slotName[threadIndex]); + g_instance.archive_thread_info.obsArchPID[threadIndex] = initialize_util_thread(ARCH, + g_instance.archive_thread_info.slotName[threadIndex]); if (START_BARRIER_CREATOR && pmState == PM_RUN) { - if (g_instance.archive_obs_thread_info.obsBarrierArchPID[threadIndex] != 0) { - signal_child(g_instance.archive_obs_thread_info.obsBarrierArchPID[threadIndex], SIGUSR2); + if (g_instance.archive_thread_info.obsBarrierArchPID[threadIndex] != 0) { + signal_child(g_instance.archive_thread_info.obsBarrierArchPID[threadIndex], SIGUSR2); } - g_instance.archive_obs_thread_info.obsBarrierArchPID[threadIndex] = - initialize_util_thread(BARRIER_ARCH, g_instance.archive_obs_thread_info.slotName[threadIndex]); + g_instance.archive_thread_info.obsBarrierArchPID[threadIndex] = + initialize_util_thread(BARRIER_ARCH, g_instance.archive_thread_info.slotName[threadIndex]); } list_free_deep(archiveSlotNames); } static void ArchObsThreadShutdown(int threadIndex) { - char *slotName = g_instance.archive_obs_thread_info.slotName[threadIndex]; - if (slotName == NULL || strlen(slotName) == 0 || getObsReplicationSlotWithName(slotName) != NULL) { + char *slotName = g_instance.archive_thread_info.slotName[threadIndex]; + if (slotName == NULL || strlen(slotName) == 0 || getArchiveReplicationSlotWithName(slotName) != NULL) { return; } ereport(LOG, (errmsg("pgarch thread need shutdonw, delete slotName: %s, index: %d", slotName, threadIndex))); - if (g_instance.archive_obs_thread_info.obsArchPID[threadIndex] != 0) { - signal_child(g_instance.archive_obs_thread_info.obsArchPID[threadIndex], SIGUSR2); + if (g_instance.archive_thread_info.obsArchPID[threadIndex] != 0) { + signal_child(g_instance.archive_thread_info.obsArchPID[threadIndex], SIGUSR2); } - if (g_instance.archive_obs_thread_info.obsBarrierArchPID[threadIndex] != 0) { - signal_child(g_instance.archive_obs_thread_info.obsBarrierArchPID[threadIndex], SIGUSR2); + if (g_instance.archive_thread_info.obsBarrierArchPID[threadIndex] != 0) { + signal_child(g_instance.archive_thread_info.obsBarrierArchPID[threadIndex], SIGUSR2); } - g_instance.archive_obs_thread_info.obsArchPID[threadIndex] = 0; - g_instance.archive_obs_thread_info.obsBarrierArchPID[threadIndex] = 0; + g_instance.archive_thread_info.obsArchPID[threadIndex] = 0; + g_instance.archive_thread_info.obsBarrierArchPID[threadIndex] = 0; errno_t rc = EOK; - rc = memset_s(g_instance.archive_obs_thread_info.slotName[threadIndex], NAMEDATALEN, 0, - strlen(g_instance.archive_obs_thread_info.slotName[threadIndex])); + rc = memset_s(g_instance.archive_thread_info.slotName[threadIndex], NAMEDATALEN, 0, + strlen(g_instance.archive_thread_info.slotName[threadIndex])); securec_check(rc, "\0", "\0"); } @@ -2618,17 +2691,17 @@ void ArchObsThreadManage() volatile int *l_tline = &t_thrd.arch.slot_tline; if (likely(*g_tline == *l_tline)) { for (int i = 0; i < g_instance.attr.attr_storage.max_replication_slots; i++) { - if (START_BARRIER_CREATOR && pmState == PM_RUN && g_instance.archive_obs_thread_info.obsArchPID[i] != 0 && - g_instance.archive_obs_thread_info.obsBarrierArchPID[i] == 0) { - g_instance.archive_obs_thread_info.obsBarrierArchPID[i] = - initialize_util_thread(BARRIER_ARCH, g_instance.archive_obs_thread_info.slotName[i]); + if (START_BARRIER_CREATOR && pmState == PM_RUN && g_instance.archive_thread_info.obsArchPID[i] != 0 && + g_instance.archive_thread_info.obsBarrierArchPID[i] == 0) { + g_instance.archive_thread_info.obsBarrierArchPID[i] = + initialize_util_thread(BARRIER_ARCH, g_instance.archive_thread_info.slotName[i]); } } return; } for (int i = 0; i < g_instance.attr.attr_storage.max_replication_slots; i++) { - if (g_instance.archive_obs_thread_info.obsArchPID[i] == 0) { + if (g_instance.archive_thread_info.obsArchPID[i] == 0) { ArchObsThreadStart(i); } else { ArchObsThreadShutdown(i); @@ -2687,7 +2760,7 @@ static int ServerLoop(void) fd_set rmask; int selres; - if (t_thrd.postmaster_cxt.HaShmData->current_mode != NORMAL_MODE) { + if (t_thrd.postmaster_cxt.HaShmData->current_mode != NORMAL_MODE || IS_SHARED_STORAGE_MODE) { check_and_reset_ha_listen_port(); #ifdef HAVE_POLL @@ -2909,6 +2982,12 @@ static int ServerLoop(void) if (g_instance.pid_cxt.ReaperBackendPID == 0) g_instance.pid_cxt.ReaperBackendPID = initialize_util_thread(REAPER); + if ((pmState == PM_RUN || t_thrd.xlog_cxt.is_hadr_main_standby) && + g_instance.pid_cxt.sharedStorageXlogCopyThreadPID == 0 && !dummyStandbyMode && + g_instance.attr.attr_storage.xlog_file_path != NULL) { + g_instance.pid_cxt.sharedStorageXlogCopyThreadPID = initialize_util_thread(SHARE_STORAGE_XLOG_COPYER); + } + /* * If no background writer process is running, and we are not in a * state that prevents it, start one. It doesn't matter if this @@ -2931,17 +3010,11 @@ static int ServerLoop(void) g_instance.pid_cxt.CBMWriterPID = initialize_util_thread(CBMWRITER); if (!dummyStandbyMode && ENABLE_INCRE_CKPT) { - for (int i = 0; i < g_instance.attr.attr_storage.pagewriter_thread_num; i++) { + for (int i = 0; i < g_instance.ckpt_cxt_ctl->pgwr_procs.num; i++) { if (g_instance.pid_cxt.PageWriterPID[i] == 0) { g_instance.pid_cxt.PageWriterPID[i] = initialize_util_thread(PAGEWRITER_THREAD); } } - int thread_num = get_fixed_bgwriter_thread_num(); - for (int i = 0; i < thread_num; i++) { - if (g_instance.pid_cxt.CkptBgWriterPID[i] == 0) { - g_instance.pid_cxt.CkptBgWriterPID[i] = initialize_util_thread(BGWRITER); - } - } } } @@ -3037,7 +3110,7 @@ static int ServerLoop(void) /* If we have lost the barrier creator thread, try to start a new one */ if (START_BARRIER_CREATOR && g_instance.pid_cxt.BarrierCreatorPID == 0 && - pmState == PM_RUN && g_instance.archive_obs_cxt.obs_slot_num != 0) { + pmState == PM_RUN && g_instance.archive_obs_cxt.archive_slot_num != 0) { g_instance.pid_cxt.BarrierCreatorPID = initialize_util_thread(BARRIER_CREATOR); } @@ -3046,7 +3119,7 @@ static int ServerLoop(void) if (g_instance.pid_cxt.PgArchPID == 0 && pmState == PM_RUN && XLogArchivingActive() && (XLogArchiveCommandSet() || XLogArchiveDestSet())) { g_instance.pid_cxt.PgArchPID = pgarch_start(); - } else if (g_instance.archive_obs_thread_info.obsArchPID != NULL && + } else if (g_instance.archive_thread_info.obsArchPID != NULL && (pmState == PM_RUN || pmState == PM_HOT_STANDBY)) { ArchObsThreadManage(); } @@ -3293,7 +3366,7 @@ int ProcessStartupPacket(Port* port, bool SSLdone) struct timeval oldTv = {0, 0}; socklen_t oldTvLen = sizeof(oldTv); bool isTvSeted = false; - + bool clientIsAutonomousTransaction = false; CHECK_FOR_PROCDIEPENDING(); /* Set recv timeout on coordinator in case of connected from external application */ @@ -3544,6 +3617,10 @@ int ProcessStartupPacket(Port* port, bool SSLdone) errmsg("logical replication should connect HA port in thread_pool"))); } t_thrd.role = WAL_DB_SENDER; + } else if (strcmp(valptr, "hadr_main_standby") == 0) { + t_thrd.role = WAL_HADR_SENDER; + } else if (strcmp(valptr, "standby_cluster") == 0) { + t_thrd.role = WAL_SHARE_STORE_SENDER; } else { bool _am_normal_walsender = false; if (!parse_bool(valptr, &_am_normal_walsender)) { @@ -3670,6 +3747,9 @@ int ProcessStartupPacket(Port* port, bool SSLdone) } else if (strcmp(valptr, "remote_read") == 0) { clientIsRemoteRead = true; ereport(DEBUG5, (errmsg("remote_read connected"))); + } else if (strcmp(valptr, "autonomoustransaction") == 0) { + clientIsAutonomousTransaction = true; + ereport(DEBUG5, (errmsg("autonomoustransaction connected"))); } else { ereport(DEBUG5, (errmsg("application %s connected", valptr))); } @@ -3725,7 +3805,7 @@ int ProcessStartupPacket(Port* port, bool SSLdone) /* Inner tool with local sha256 will not be authenicated. */ if (clientIsCmAgent || clientIsGsClean || clientIsOM || u_sess->proc_cxt.clientIsGsroach || clientIsWDRXdb || clientIsRemoteRead || u_sess->proc_cxt.clientIsGsCtl || u_sess->proc_cxt.clientIsGsrewind || - u_sess->proc_cxt.clientIsGsredis) { + u_sess->proc_cxt.clientIsGsredis || clientIsAutonomousTransaction) { u_sess->proc_cxt.IsInnerMaintenanceTools = true; } /* cm_agent and gs_clean should not be controlled by workload manager */ @@ -3773,9 +3853,9 @@ int ProcessStartupPacket(Port* port, bool SSLdone) * can make sense to first make a basebackup and then stream changes * starting from that. */ - if (AM_WAL_SENDER && !AM_WAL_DB_SENDER) + if (AM_WAL_SENDER && !AM_WAL_DB_SENDER && !AM_WAL_HADR_SENDER) { port->database_name[0] = '\0'; - + } /* set special tcp keepalive parameters for build senders */ if (AM_WAL_SENDER && t_thrd.postmaster_cxt.senderToBuildStandby) { if (!IS_AF_UNIX(port->laddr.addr.ss_family)) { @@ -3804,9 +3884,14 @@ int ProcessStartupPacket(Port* port, bool SSLdone) } #endif - for (i = 1; i < MAX_REPLNODE_NUM; i++) { - if (t_thrd.postmaster_cxt.ReplConnArray[i] != NULL && - IsChannelAdapt(port, t_thrd.postmaster_cxt.ReplConnArray[i])) { + for (i = 1; i < DOUBLE_MAX_REPLNODE_NUM; i++) { + ReplConnInfo *replConnInfo = NULL; + if (i >= MAX_REPLNODE_NUM) { + replConnInfo = t_thrd.postmaster_cxt.CrossClusterReplConnArray[i - MAX_REPLNODE_NUM]; + } else { + replConnInfo = t_thrd.postmaster_cxt.ReplConnArray[i]; + } + if (replConnInfo != NULL && IsChannelAdapt(port, replConnInfo)) { channel_adapt++; } } @@ -4314,6 +4399,22 @@ void socket_close_on_exec(void) } } +static bool IsNotCrossRegionMode(void) +{ + int num = 0; + int totalNum = 0; + for (int i = 1; i < MAX_REPLNODE_NUM; i++) { + if (t_thrd.postmaster_cxt.ReplConnArray[i] != NULL) { + totalNum++; + if (!t_thrd.postmaster_cxt.ReplConnArray[i]->isCrossRegion && + !t_thrd.postmaster_cxt.ReplConnArray[i]->isCascade) { + num++; + } + } + } + return (totalNum == num); +} + /* * reset_shared -- reset shared memory and semaphores */ @@ -4332,18 +4433,18 @@ static void reset_shared(int port) static void ObsArchSighupHandler() { - if (g_instance.archive_obs_thread_info.obsArchPID != NULL) { + if (g_instance.archive_thread_info.obsArchPID != NULL) { for (int i = 0; i < g_instance.attr.attr_storage.max_replication_slots; i++) { - if (g_instance.archive_obs_thread_info.obsArchPID[i] != 0) { - signal_child(g_instance.archive_obs_thread_info.obsArchPID[i], SIGHUP); + if (g_instance.archive_thread_info.obsArchPID[i] != 0) { + signal_child(g_instance.archive_thread_info.obsArchPID[i], SIGHUP); } } } - if (START_BARRIER_CREATOR && g_instance.archive_obs_thread_info.obsBarrierArchPID != NULL) { + if (START_BARRIER_CREATOR && g_instance.archive_thread_info.obsBarrierArchPID != NULL) { for (int i = 0; i < g_instance.attr.attr_storage.max_replication_slots; i++) { - if (g_instance.archive_obs_thread_info.obsBarrierArchPID[i] != 0) { - signal_child(g_instance.archive_obs_thread_info.obsBarrierArchPID[i], SIGHUP); + if (g_instance.archive_thread_info.obsBarrierArchPID[i] != 0) { + signal_child(g_instance.archive_thread_info.obsBarrierArchPID[i], SIGHUP); } } } @@ -4424,7 +4525,7 @@ static void SIGHUP_handler(SIGNAL_ARGS) } if (g_instance.pid_cxt.PageWriterPID != NULL) { int i; - for (i = 0; i < g_instance.attr.attr_storage.pagewriter_thread_num; i++) { + for (i = 0; i < g_instance.ckpt_cxt_ctl->pgwr_procs.num; i++) { if (g_instance.pid_cxt.PageWriterPID[i] != 0) { Assert(!dummyStandbyMode); signal_child(g_instance.pid_cxt.PageWriterPID[i], SIGHUP); @@ -4432,16 +4533,6 @@ static void SIGHUP_handler(SIGNAL_ARGS) } } - if (g_instance.pid_cxt.CkptBgWriterPID != NULL) { - int thread_num = get_fixed_bgwriter_thread_num(); - for (int i = 0; i < thread_num; i++) { - if (g_instance.pid_cxt.CkptBgWriterPID[i] != 0) { - Assert(!dummyStandbyMode); - signal_child(g_instance.pid_cxt.CkptBgWriterPID[i], SIGHUP); - } - } - } - #ifndef ENABLE_MULTIPLE_NODES SetDcfNeedSyncConfig(); #endif @@ -4573,6 +4664,9 @@ static void SIGHUP_handler(SIGNAL_ARGS) } } + if (g_instance.pid_cxt.sharedStorageXlogCopyThreadPID != 0) { + signal_child(g_instance.pid_cxt.sharedStorageXlogCopyThreadPID, SIGHUP); + } #ifdef ENABLE_MULTIPLE_NODES if (g_instance.pid_cxt.TsCompactionPID != 0) { @@ -4584,6 +4678,11 @@ static void SIGHUP_handler(SIGNAL_ARGS) (void)streaming_backend_manager(STREAMING_BACKEND_SIGHUP); #endif /* ENABLE_MULTIPLE_NODES */ + if (t_thrd.postmaster_cxt.HaShmData->is_cross_region && IsNotCrossRegionMode()) { + SpinLockAcquire(&t_thrd.postmaster_cxt.HaShmData->mutex); + t_thrd.postmaster_cxt.HaShmData->is_cross_region = false; + SpinLockRelease(&t_thrd.postmaster_cxt.HaShmData->mutex); + } /* Reload authentication config files too */ int loadhbaCount = 0; while (!load_hba()) { @@ -4698,8 +4797,10 @@ static void pmdie(SIGNAL_ARGS) ExitPostmaster(0); } - if (g_instance.pid_cxt.StartupPID != 0) + if (g_instance.pid_cxt.StartupPID != 0) { + ereport(LOG, (errmsg("send to startup shutdown request"))); signal_child(g_instance.pid_cxt.StartupPID, SIGTERM); + } if (g_instance.pid_cxt.BgWriterPID != 0) { Assert(!dummyStandbyMode); @@ -4863,6 +4964,11 @@ static void pmdie(SIGNAL_ARGS) if (ENABLE_THREAD_POOL) { g_threadPoolControler->CloseAllSessions(); + /* + * before pmState set to wait backends, + * threadpool cannot launch new thread by scheduler during demote. + */ + g_threadPoolControler->ShutDownScheduler(true, true); g_threadPoolControler->ShutDownThreads(); } /* shut down all backends and autovac workers */ @@ -4881,6 +4987,9 @@ static void pmdie(SIGNAL_ARGS) pmState = PM_WAIT_BACKENDS; + if (ENABLE_THREAD_POOL) { + g_threadPoolControler->EnableAdjustPool(); + } } /* * Now wait for backends to exit. If there are none, @@ -5218,6 +5327,7 @@ static void ProcessDemoteRequest(void) if (ENABLE_THREAD_POOL) { g_threadPoolControler->CloseAllSessions(); + g_threadPoolControler->ShutDownScheduler(true, true); g_threadPoolControler->ShutDownThreads(); } /* shut down all backends and autovac workers */ @@ -5254,6 +5364,9 @@ static void ProcessDemoteRequest(void) signal_child(g_instance.pid_cxt.WalWriterAuxiliaryPID, SIGTERM); pmState = PM_WAIT_BACKENDS; + if (ENABLE_THREAD_POOL) { + g_threadPoolControler->EnableAdjustPool(); + } } break; @@ -5320,6 +5433,7 @@ static void reaper(SIGNAL_ARGS) */ if (pid == g_instance.pid_cxt.StartupPID) { g_instance.pid_cxt.StartupPID = 0; + ereport(LOG, (errmsg("startupprocess exit"))); /* * Startup process exited in response to a shutdown request (or it @@ -5355,7 +5469,7 @@ static void reaper(SIGNAL_ARGS) if (ENABLE_THREAD_POOL) { g_threadPoolControler->ShutDownThreads(true); g_threadPoolControler->ShutDownListeners(true); - g_threadPoolControler->ShutDownScheduler(true); + g_threadPoolControler->ShutDownScheduler(true, false); } ExitPostmaster(1); } @@ -5432,18 +5546,11 @@ static void reaper(SIGNAL_ARGS) } if (!dummyStandbyMode && ENABLE_INCRE_CKPT) { - for (int i = 0; i < g_instance.attr.attr_storage.pagewriter_thread_num; i++) { + for (int i = 0; i < g_instance.ckpt_cxt_ctl->pgwr_procs.num; i++) { if (g_instance.pid_cxt.PageWriterPID[i] == 0) { g_instance.pid_cxt.PageWriterPID[i] = initialize_util_thread(PAGEWRITER_THREAD); } } - - int thread_num = get_fixed_bgwriter_thread_num(); - for (int i = 0; i < thread_num; i++) { - if (g_instance.pid_cxt.CkptBgWriterPID[i] == 0) { - g_instance.pid_cxt.CkptBgWriterPID[i] = initialize_util_thread(BGWRITER); - } - } } if (g_instance.pid_cxt.WalWriterPID == 0) @@ -5474,6 +5581,11 @@ static void reaper(SIGNAL_ARGS) StartPoolCleaner(); } + if (g_instance.pid_cxt.sharedStorageXlogCopyThreadPID == 0 && !dummyStandbyMode && + g_instance.attr.attr_storage.xlog_file_path != NULL) { + g_instance.pid_cxt.sharedStorageXlogCopyThreadPID = initialize_util_thread(SHARE_STORAGE_XLOG_COPYER); + } + if (g_instance.pid_cxt.UndoLauncherPID == 0 && !dummyStandbyMode) g_instance.pid_cxt.UndoLauncherPID = initialize_util_thread(UNDO_LAUNCHER); @@ -5491,8 +5603,8 @@ static void reaper(SIGNAL_ARGS) XLogArchiveCommandSet()) g_instance.pid_cxt.PgArchPID = pgarch_start(); - if (!dummyStandbyMode && g_instance.archive_obs_cxt.obs_slot_num != 0 && - g_instance.archive_obs_thread_info.obsArchPID != NULL) { + if (!dummyStandbyMode && g_instance.archive_obs_cxt.archive_slot_num != 0 && + g_instance.archive_thread_info.obsArchPID != NULL) { ArchObsThreadManage(); } @@ -5565,7 +5677,7 @@ static void reaper(SIGNAL_ARGS) g_instance.pid_cxt.HeartbeatPID = initialize_util_thread(HEARTBEAT); if (START_BARRIER_CREATOR && g_instance.pid_cxt.BarrierCreatorPID == 0 && - g_instance.archive_obs_cxt.obs_slot_num != 0) { + g_instance.archive_obs_cxt.archive_slot_num != 0) { g_instance.pid_cxt.BarrierCreatorPID = initialize_util_thread(BARRIER_CREATOR); } @@ -5619,30 +5731,12 @@ static void reaper(SIGNAL_ARGS) continue; } - /* - * Was it the bgwriter? - */ - if (ENABLE_INCRE_CKPT) { - int i; - int thread_num = get_fixed_bgwriter_thread_num(); - for (i = 0; i < thread_num; i++) { - if (pid == g_instance.pid_cxt.CkptBgWriterPID[i]) { - Assert(!dummyStandbyMode); - g_instance.pid_cxt.CkptBgWriterPID[i] = 0; - if (!EXIT_STATUS_0(exitstatus)) { - HandleChildCrash(pid, exitstatus, _("incre ckpt background writer process")); - } - continue; - } - } - } - /* * Was it the pagewriter? */ if (ENABLE_INCRE_CKPT) { int i; - for (i = 0; i < g_instance.attr.attr_storage.pagewriter_thread_num; i++) { + for (i = 0; i < g_instance.ckpt_cxt_ctl->pgwr_procs.num; i++) { if (pid == g_instance.pid_cxt.PageWriterPID[i]) { Assert(!dummyStandbyMode); g_instance.pid_cxt.PageWriterPID[i] = 0; @@ -5657,9 +5751,9 @@ static void reaper(SIGNAL_ARGS) /* * Was it the checkpointer? */ - if (pid == g_instance.pid_cxt.CheckpointerPID) { + if (pid == g_instance.pid_cxt.CheckpointerPID|| + (pid == g_instance.pid_cxt.sharedStorageXlogCopyThreadPID)) { Assert(!dummyStandbyMode); - g_instance.pid_cxt.CheckpointerPID = 0; if (EXIT_STATUS_0(exitstatus) && pmState == PM_SHUTDOWN) { /* @@ -5678,22 +5772,38 @@ static void reaper(SIGNAL_ARGS) */ Assert(g_instance.status > NoShutdown || g_instance.demotion > NoDemote); + if (pid == g_instance.pid_cxt.CheckpointerPID) { + g_instance.pid_cxt.CheckpointerPID = 0; + if ((g_instance.attr.attr_storage.xlog_file_path != NULL) && + (g_instance.pid_cxt.sharedStorageXlogCopyThreadPID != 0)) { + signal_child(g_instance.pid_cxt.sharedStorageXlogCopyThreadPID, SIGTERM); + ereport(LOG, (errmsg("checkpoint thread exit and wait for sharestorage"))); + continue; + } + ereport(LOG, (errmsg("checkpoint thread exit and nowait for sharestorage"))); + } + + if (pid == g_instance.pid_cxt.sharedStorageXlogCopyThreadPID) { + g_instance.pid_cxt.sharedStorageXlogCopyThreadPID = 0; + ereport(LOG, (errmsg("sharestorage thread exit"))); + } + /* Waken archiver for the last time */ if (g_instance.pid_cxt.PgArchPID != 0) signal_child(g_instance.pid_cxt.PgArchPID, SIGUSR2); - if (g_instance.archive_obs_thread_info.obsArchPID != NULL) { + if (g_instance.archive_thread_info.obsArchPID != NULL) { for (int i = 0; i < g_instance.attr.attr_storage.max_replication_slots; i++) { - if (g_instance.archive_obs_thread_info.obsArchPID[i] != 0) { - signal_child(g_instance.archive_obs_thread_info.obsArchPID[i], SIGUSR2); + if (g_instance.archive_thread_info.obsArchPID[i] != 0) { + signal_child(g_instance.archive_thread_info.obsArchPID[i], SIGUSR2); } } } - if (g_instance.archive_obs_thread_info.obsBarrierArchPID != NULL) { + if (g_instance.archive_thread_info.obsBarrierArchPID != NULL) { for (int i = 0; i < g_instance.attr.attr_storage.max_replication_slots; i++) { - if (g_instance.archive_obs_thread_info.obsBarrierArchPID[i] != 0) { - signal_child(g_instance.archive_obs_thread_info.obsBarrierArchPID[i], SIGUSR2); + if (g_instance.archive_thread_info.obsBarrierArchPID[i] != 0) { + signal_child(g_instance.archive_thread_info.obsBarrierArchPID[i], SIGUSR2); } } } @@ -5891,34 +6001,35 @@ static void reaper(SIGNAL_ARGS) continue; } - if (g_instance.archive_obs_thread_info.obsArchPID != NULL) { + if (g_instance.archive_thread_info.obsArchPID != NULL) { for (int i = 0; i < g_instance.attr.attr_storage.max_replication_slots; i++) { - if (pid == g_instance.archive_obs_thread_info.obsArchPID[i]) { - g_instance.archive_obs_thread_info.obsArchPID[i] = 0; + if (pid == g_instance.archive_thread_info.obsArchPID[i]) { + g_instance.archive_thread_info.obsArchPID[i] = 0; if (!EXIT_STATUS_0(exitstatus)) LogChildExit(LOG, _("archiver process"), pid, exitstatus); - if (getObsReplicationSlotWithName(g_instance.archive_obs_thread_info.slotName[i]) != NULL && + if (getArchiveReplicationSlotWithName(g_instance.archive_thread_info.slotName[i]) != NULL && (pmState == PM_RUN || pmState == PM_HOT_STANDBY)) { - g_instance.archive_obs_thread_info.obsArchPID[i] = - initialize_util_thread(ARCH, g_instance.archive_obs_thread_info.slotName[i]); + g_instance.archive_thread_info.obsArchPID[i] = + initialize_util_thread(ARCH, g_instance.archive_thread_info.slotName[i]); } continue; } } } - if (g_instance.archive_obs_thread_info.obsBarrierArchPID != NULL) { + if (g_instance.archive_thread_info.obsBarrierArchPID != NULL) { for (int i = 0; i < g_instance.attr.attr_storage.max_replication_slots; i++) { - if (pid == g_instance.archive_obs_thread_info.obsBarrierArchPID[i]) { - g_instance.archive_obs_thread_info.obsBarrierArchPID[i] = 0; + if (pid == g_instance.archive_thread_info.obsBarrierArchPID[i]) { + g_instance.archive_thread_info.obsBarrierArchPID[i] = 0; if (!EXIT_STATUS_0(exitstatus)) LogChildExit(LOG, _("barrier archiver process"), pid, exitstatus); - if (getObsReplicationSlotWithName(g_instance.archive_obs_thread_info.slotName[i]) != NULL) { - g_instance.archive_obs_thread_info.obsBarrierArchPID[i] = - initialize_util_thread(BARRIER_ARCH, g_instance.archive_obs_thread_info.slotName[i]); + if (getArchiveReplicationSlotWithName(g_instance.archive_thread_info.slotName[i]) != NULL && + (pmState == PM_RUN || pmState == PM_HOT_STANDBY)) { + g_instance.archive_thread_info.obsBarrierArchPID[i] = + initialize_util_thread(BARRIER_ARCH, g_instance.archive_thread_info.slotName[i]); } continue; } @@ -6330,6 +6441,8 @@ static const char* GetProcName(ThreadId pid) return "libcomm auxiliary process"; else if (g_instance.pid_cxt.CommPoolerCleanPID == pid) return "pool cleaner process"; + else if (g_instance.pid_cxt.sharedStorageXlogCopyThreadPID == pid) + return "share xlog copy process"; else if (g_instance.pid_cxt.CommReceiverPIDS != NULL) { int recv_loop = 0; for (recv_loop = 0; recv_loop < g_instance.attr.attr_network.comm_max_receiver; recv_loop++) { @@ -6389,27 +6502,37 @@ static void CleanupBackend(ThreadId pid, int exitstatus) /* child's exit status. * the new thread rather than the exit thread. To avoid this problem, we can * traverse the backend_list from tail. */ + bool found = false; + int cnt = 0; for (curr = DLGetTail(g_instance.backend_list); curr; curr = DLGetPred(curr)) { Backend* bp = (Backend*)DLE_VAL(curr); - if (bp->pid == pid && bp->dead_end) { - { - if (!ReleasePostmasterChildSlot(bp->child_slot)) { - /* - * Uh-oh, the child failed to clean itself up. Treat as a - * crash after all. - */ - HandleChildCrash(pid, exitstatus, _("server process")); - return; + if (bp->pid == pid) { + cnt++; + if (bp->dead_end) { + { + if (!ReleasePostmasterChildSlot(bp->child_slot)) { + /* + * Uh-oh, the child failed to clean itself up. Treat as a + * crash after all. + */ + HandleChildCrash(pid, exitstatus, _("server process")); + return; + } + + BackendArrayRemove(bp); } - BackendArrayRemove(bp); + DLRemove(curr); + found = true; + break; } - - DLRemove(curr); - break; } } + if (!found) { + elog(WARNING, "Did not found reaper thread id %lu in backend list, with %d thread still alive, "\ + "may has leak occurs", pid, cnt); + } } /* @@ -6515,8 +6638,7 @@ static void LogChildExit(int lev, const char* procname, ThreadId pid, int exitst static bool ckpt_all_flush_buffer_thread_exit() { - if (g_instance.pid_cxt.PageWriterPID[0] == 0 && - (g_instance.pid_cxt.CkptBgWriterPID == NULL || g_instance.pid_cxt.CkptBgWriterPID[0] == 0)){ + if (g_instance.pid_cxt.PageWriterPID[0] == 0){ return true; }else { return false; @@ -6597,16 +6719,65 @@ static void PostmasterStateMachineReadOnly(void) static bool ObsArchAllShutDown() { - if (g_instance.archive_obs_thread_info.obsArchPID != NULL) { + if (g_instance.archive_thread_info.obsArchPID != NULL) { for (int i = 0; i < g_instance.attr.attr_storage.max_replication_slots; i++) { - if (g_instance.archive_obs_thread_info.obsArchPID[i] != 0) { + if (g_instance.archive_thread_info.obsArchPID[i] != 0) { return false; } } } + if (g_instance.archive_thread_info.obsBarrierArchPID != NULL) { + for (int i = 0; i < g_instance.attr.attr_storage.max_replication_slots; i++) { + if (g_instance.archive_thread_info.obsBarrierArchPID[i] != 0) { + return false; + } + } + } + ereport(LOG, (errmsg("All obsArch and obsBarrier exit."))); return true; } +static void AsssertAllChildThreadExit() +{ + /* These other guys should be dead already */ + Assert(g_instance.pid_cxt.TwoPhaseCleanerPID == 0); + Assert(g_instance.pid_cxt.FaultMonitorPID == 0); + Assert(g_instance.pid_cxt.StartupPID == 0); + Assert(g_instance.pid_cxt.WalReceiverPID == 0); + Assert(g_instance.pid_cxt.WalRcvWriterPID == 0); + Assert(g_instance.pid_cxt.DataReceiverPID == 0); + Assert(g_instance.pid_cxt.DataRcvWriterPID == 0); + Assert(g_instance.pid_cxt.BgWriterPID == 0); + Assert(g_instance.pid_cxt.CheckpointerPID == 0); + Assert(g_instance.pid_cxt.WalWriterPID == 0); + Assert(g_instance.pid_cxt.WalWriterAuxiliaryPID == 0); + Assert(g_instance.pid_cxt.AutoVacPID == 0); + Assert(g_instance.pid_cxt.PgJobSchdPID == 0); + Assert(g_instance.pid_cxt.CBMWriterPID == 0); + Assert(g_instance.pid_cxt.TxnSnapCapturerPID == 0); + Assert(g_instance.pid_cxt.RbCleanrPID == 0); + Assert(g_instance.pid_cxt.SnapshotPID == 0); + Assert(g_instance.pid_cxt.AshPID == 0); + Assert(g_instance.pid_cxt.StatementPID == 0); + Assert(g_instance.pid_cxt.PercentilePID == 0); + Assert(g_instance.pid_cxt.HeartbeatPID == 0); + Assert(g_instance.pid_cxt.CsnminSyncPID == 0); + Assert(g_instance.pid_cxt.BarrierCreatorPID == 0); +#ifdef ENABLE_MULTIPLE_NODES + Assert(g_instance.pid_cxt.TsCompactionPID == 0); +#endif /* ENABLE_MULTIPLE_NODES */ + Assert(g_instance.pid_cxt.CommPoolerCleanPID == 0); + Assert(g_instance.pid_cxt.UndoLauncherPID == 0); + Assert(g_instance.pid_cxt.UndoRecyclerPID == 0); +#ifndef ENABLE_MULTIPLE_NODES + Assert(g_instance.pid_cxt.ApplyLauncerPID == 0); +#endif + Assert(g_instance.pid_cxt.GlobalStatsPID == 0); + Assert(IsAllPageWorkerExit() == true); + Assert(IsAllBuildSenderExit() == true); + Assert(g_instance.pid_cxt.sharedStorageXlogCopyThreadPID == 0); +} + /* * Advance the postmaster's state machine and take actions as appropriate * @@ -6694,21 +6865,13 @@ static void PostmasterStateMachine(void) if (g_instance.pid_cxt.PageWriterPID != NULL) { g_instance.ckpt_cxt_ctl->page_writer_can_exit = false; - for (int i = 0; i < g_instance.attr.attr_storage.pagewriter_thread_num; i++) { + for (int i = 0; i < g_instance.ckpt_cxt_ctl->pgwr_procs.num; i++) { if (g_instance.pid_cxt.PageWriterPID[i] != 0) { signal_child(g_instance.pid_cxt.PageWriterPID[i], SIGTERM); } } } - if (g_instance.pid_cxt.CkptBgWriterPID != NULL) { - int thread_num = get_fixed_bgwriter_thread_num(); - for (int i = 0; i < thread_num; i++) { - if (g_instance.pid_cxt.CkptBgWriterPID[i] != 0) { - signal_child(g_instance.pid_cxt.CkptBgWriterPID[i], SIGTERM); - } - } - } /* And tell it to shut down */ if (g_instance.pid_cxt.CheckpointerPID != 0) { Assert(!dummyStandbyMode); @@ -6731,18 +6894,18 @@ static void PostmasterStateMachine(void) if (g_instance.pid_cxt.PgArchPID != 0) signal_child(g_instance.pid_cxt.PgArchPID, SIGQUIT); - if (g_instance.archive_obs_thread_info.obsArchPID != NULL) { + if (g_instance.archive_thread_info.obsArchPID != NULL) { for (int i = 0; i < g_instance.attr.attr_storage.max_replication_slots; i++) { - if (g_instance.archive_obs_thread_info.obsArchPID[i] != 0) { - signal_child(g_instance.archive_obs_thread_info.obsArchPID[i], SIGQUIT); + if (g_instance.archive_thread_info.obsArchPID[i] != 0) { + signal_child(g_instance.archive_thread_info.obsArchPID[i], SIGQUIT); } } } - if (g_instance.archive_obs_thread_info.obsBarrierArchPID != NULL) { + if (g_instance.archive_thread_info.obsBarrierArchPID != NULL) { for (int i = 0; i < g_instance.attr.attr_storage.max_replication_slots; i++) { - if (g_instance.archive_obs_thread_info.obsBarrierArchPID[i] != 0) { - signal_child(g_instance.archive_obs_thread_info.obsBarrierArchPID[i], SIGQUIT); + if (g_instance.archive_thread_info.obsBarrierArchPID[i] != 0) { + signal_child(g_instance.archive_thread_info.obsBarrierArchPID[i], SIGQUIT); } } } @@ -6755,6 +6918,12 @@ static void PostmasterStateMachine(void) Assert(!dummyStandbyMode); signal_child(g_instance.pid_cxt.PgAuditPID, SIGQUIT); } + + if (g_instance.pid_cxt.sharedStorageXlogCopyThreadPID != 0) { + Assert(!dummyStandbyMode); + signal_child(g_instance.pid_cxt.sharedStorageXlogCopyThreadPID, SIGTERM); + ereport(LOG, (errmsg("pmstat send exit to sharestorage thread"))); + } } } } @@ -6773,7 +6942,8 @@ static void PostmasterStateMachine(void) if (g_instance.pid_cxt.PgArchPID == 0 && CountChildren(BACKEND_TYPE_ALL) == 0 && g_instance.pid_cxt.WalReceiverPID == 0 && g_instance.pid_cxt.WalRcvWriterPID == 0 && g_instance.pid_cxt.DataReceiverPID == 0 && g_instance.pid_cxt.DataRcvWriterPID == 0 && - ObsArchAllShutDown() && g_instance.pid_cxt.HeartbeatPID == 0) { + ObsArchAllShutDown() && g_instance.pid_cxt.HeartbeatPID == 0 && + g_instance.pid_cxt.sharedStorageXlogCopyThreadPID == 0) { pmState = PM_WAIT_DEAD_END; } } @@ -6795,42 +6965,8 @@ static void PostmasterStateMachine(void) if (DLGetHead(g_instance.backend_list) == NULL && g_instance.pid_cxt.PgArchPID == 0 && g_instance.pid_cxt.PgStatPID == 0 && g_instance.pid_cxt.PgAuditPID == 0 && ckpt_all_flush_buffer_thread_exit() && ObsArchAllShutDown()) { - /* These other guys should be dead already */ - Assert(g_instance.pid_cxt.TwoPhaseCleanerPID == 0); - Assert(g_instance.pid_cxt.FaultMonitorPID == 0); - Assert(g_instance.pid_cxt.StartupPID == 0); - Assert(g_instance.pid_cxt.WalReceiverPID == 0); - Assert(g_instance.pid_cxt.WalRcvWriterPID == 0); - Assert(g_instance.pid_cxt.DataReceiverPID == 0); - Assert(g_instance.pid_cxt.DataRcvWriterPID == 0); - Assert(g_instance.pid_cxt.BgWriterPID == 0); - Assert(g_instance.pid_cxt.CheckpointerPID == 0); - Assert(g_instance.pid_cxt.WalWriterPID == 0); - Assert(g_instance.pid_cxt.WalWriterAuxiliaryPID == 0); - Assert(g_instance.pid_cxt.AutoVacPID == 0); - Assert(g_instance.pid_cxt.PgJobSchdPID == 0); - Assert(g_instance.pid_cxt.CBMWriterPID == 0); - Assert(g_instance.pid_cxt.TxnSnapCapturerPID == 0); - Assert(g_instance.pid_cxt.RbCleanrPID == 0); - Assert(g_instance.pid_cxt.SnapshotPID == 0); - Assert(g_instance.pid_cxt.AshPID == 0); - Assert(g_instance.pid_cxt.StatementPID == 0); - Assert(g_instance.pid_cxt.PercentilePID == 0); - Assert(g_instance.pid_cxt.HeartbeatPID == 0); - Assert(g_instance.pid_cxt.CsnminSyncPID == 0); - Assert(g_instance.pid_cxt.BarrierCreatorPID == 0); -#ifdef ENABLE_MULTIPLE_NODES - Assert(g_instance.pid_cxt.TsCompactionPID == 0); -#endif /* ENABLE_MULTIPLE_NODES */ - Assert(g_instance.pid_cxt.CommPoolerCleanPID == 0); - Assert(g_instance.pid_cxt.UndoLauncherPID == 0); - Assert(g_instance.pid_cxt.UndoRecyclerPID == 0); - Assert(g_instance.pid_cxt.GlobalStatsPID == 0); -#ifndef ENABLE_MULTIPLE_NODES - Assert(g_instance.pid_cxt.ApplyLauncerPID == 0); -#endif - Assert(IsAllPageWorkerExit() == true); - Assert(IsAllBuildSenderExit() == true); + + AsssertAllChildThreadExit(); /* syslogger is not considered here */ pmState = PM_NO_CHILDREN; } @@ -6895,7 +7031,7 @@ static void PostmasterStateMachine(void) if (ENABLE_GPC) { GPCResetAll(); if (g_threadPoolControler && g_threadPoolControler->GetScheduler()->HasShutDown() == false) - g_threadPoolControler->ShutDownScheduler(true); + g_threadPoolControler->ShutDownScheduler(true, false); } shmem_exit(1); reset_shared(g_instance.attr.attr_network.PostPortNumber); @@ -6925,7 +7061,7 @@ static void PostmasterStateMachine(void) if (ENABLE_GPC) { GPCResetAll(); if (g_threadPoolControler && g_threadPoolControler->GetScheduler()->HasShutDown() == false) - g_threadPoolControler->ShutDownScheduler(true); + g_threadPoolControler->ShutDownScheduler(true, false); } shmem_exit(1); reset_shared(g_instance.attr.attr_network.PostPortNumber); @@ -7676,15 +7812,10 @@ static void handle_recovery_started() g_instance.pid_cxt.SpBgWriterPID = initialize_util_thread(SPBGWRITER); if (ENABLE_INCRE_CKPT) { - for (int i = 0; i < g_instance.attr.attr_storage.pagewriter_thread_num; i++) { + for (int i = 0; i < g_instance.ckpt_cxt_ctl->pgwr_procs.num; i++) { Assert(g_instance.pid_cxt.PageWriterPID[i] == 0); g_instance.pid_cxt.PageWriterPID[i] = initialize_util_thread(PAGEWRITER_THREAD); } - int thread_num = get_fixed_bgwriter_thread_num(); - for (int i = 0; i < thread_num; i++) { - Assert(g_instance.pid_cxt.CkptBgWriterPID[i] == 0); - g_instance.pid_cxt.CkptBgWriterPID[i] = initialize_util_thread(BGWRITER); - } } Assert(g_instance.pid_cxt.CBMWriterPID == 0); if (u_sess->attr.attr_storage.enable_cbm_tracking) { @@ -7723,7 +7854,9 @@ static void handle_promote_signal() pmState == PM_WAIT_READONLY)) { gs_lock_test_and_set_64(&g_instance.stat_cxt.NodeStatResetTime, GetCurrentTimestamp()); if (GetHaShmemMode() != STANDBY_MODE) { - ereport(LOG, (errmsg("Instance can't be promoted in none standby mode."))); + ereport(LOG, (errmsg("Instance can't be promoted in none standby mode."))); + } else if (IS_SHARED_STORAGE_STANBY_CLUSTER_MODE) { + ereport(LOG, (errmsg("Instance can't be promoted in standby cluster"))); } else { /* Database Security: Support database audit */ if (t_thrd.walreceiverfuncs_cxt.WalRcv && @@ -7796,37 +7929,41 @@ static void handle_standby_signal(volatile HaShmemData* hashmdata) } #ifndef ENABLE_MULTIPLE_NODES -bool checkAddMemberSignal(void) +static bool CheckSignalByFile(const char *filename, void *infoPtr, size_t infoSize) { - struct stat buffer; - int exist = stat(AddMemberFile, &buffer); - if (exist == 0) - return true; - else + FILE* sofile = nullptr; + sofile = fopen(filename, "rb"); + if (sofile == nullptr) { + /* File doesn't exist. */ + if (errno == ENOENT) { + return false; + } + (void)unlink(filename); + ereport(WARNING, (errmsg("Open file %s failed for %s!", filename, strerror(errno)))); return false; + } + /* Read info from filename */ + if (fread(infoPtr, infoSize, 1, sofile) != 1) { + fclose(sofile); + sofile = nullptr; + (void)unlink(filename); + ereport(WARNING, (errmsg("Read file %s failed!", filename))); + return false; + } + fclose(sofile); + sofile = nullptr; + (void)unlink(filename); + return true; + +} +bool CheckAddMemberSignal(NewNodeInfo *nodeinfoPtr) +{ + return CheckSignalByFile(AddMemberFile, nodeinfoPtr, sizeof(NewNodeInfo)); } -void handle_add_member_signal(void) +void handle_add_member_signal(NewNodeInfo nodeinfo) { - /* Read new node info from addmember file */ - FILE* memberf = NULL; - NewNodeInfo nodeinfo; - ereport(LOG, (errmsg("Begin to handle adding member!"))); - memberf = fopen(AddMemberFile, "r"); - if (memberf == NULL) { - ereport(LOG, (errmsg("Open add member file failed!"))); - return; - } - if (0 == (fread(&nodeinfo, 1, sizeof(nodeinfo), memberf))) { - fclose(memberf); - memberf = NULL; - ereport(WARNING, (errmsg("Read add member file failed!"))); - return; - } - fclose(memberf); - memberf = NULL; - (void)unlink(AddMemberFile); - ereport(LOG, (errmsg("ID of new node is %u, ip is %s and port is %u", nodeinfo.node_id, nodeinfo.ip, nodeinfo.port))); + ereport(LOG, (errmsg("Begin to handle adding a member..."))); /* Call dcf interface to add member */ int ret = dcf_add_member(nodeinfo.stream_id, nodeinfo.node_id, @@ -7836,37 +7973,26 @@ void handle_add_member_signal(void) nodeinfo.wait_timeout_ms); if (ret != 0) { ereport(WARNING, (errmsg("DCF add member failed!"))); + } else { + ereport(LOG, (errmsg("Add member with node id %u successfully.", nodeinfo.node_id))); } } /* If return 0, then no remove member triggered. The DCF node ID can't be 0. */ -static uint32 CheckRemoveMemberSignal(void) +static bool CheckRemoveMemberSignal(uint32 *nodeID) { - FILE* removeFile = NULL; - removeFile = fopen(RemoveMemberFile, "r"); - if (removeFile == NULL) { - return 0; - } - uint32 nodeID = 0; - if (fread(&nodeID, 1, sizeof(nodeID), removeFile) == 0) { - fclose(removeFile); - removeFile = NULL; - ereport(WARNING, (errmsg("Read remove member file %s failed!", RemoveMemberFile))); - return 0; - } - fclose(removeFile); - removeFile = NULL; - (void)unlink(RemoveMemberFile); - return nodeID; + return CheckSignalByFile(RemoveMemberFile, nodeID, sizeof(uint32)); } static void handle_remove_member_signal(uint32 nodeID) { + ereport(LOG, (errmsg("Begin to remove member with node id %u.", nodeID))); int ret = dcf_remove_member(1, nodeID, 1000); if (ret != 0) { ereport(WARNING, (errmsg("Remove member with node ID %u from DCF failed!", nodeID))); return; } + ereport(LOG, (errmsg("Remove member with node id %u successfully.", nodeID))); /* Remove node from nodesinfo */ bool isResetNode = ResetDCFNodeInfoWithNodeID(nodeID); if (!isResetNode) { @@ -7874,152 +8000,110 @@ static void handle_remove_member_signal(uint32 nodeID) } } -bool checkSignalFileExist(char* filename) +static bool CheckChangeRoleSignal(char *role, int len) { - struct stat buffer; - if (stat(filename, &buffer) == 0) { - return true; - } else { - return false; - } + return CheckSignalByFile(ChangeRoleFile, role, len); } -static int changeRole(void) +static int changeRole(const char *role) { - char buf[3] = {0}; - FILE* sofile = NULL; + FILE *sofile = nullptr; int timeout = 60; /* seconds */ int ret = -1; - - sofile = fopen(ChangeRoleFile, "r"); - if (sofile == NULL) { - ereport(LOG, (errmsg("Open change role file %s failed!", ChangeRoleFile))); - return -1; - } - if (fread(buf, sizeof(char), strlen("fo"), sofile) == 0) { - fclose(sofile); - sofile = NULL; - (void)unlink(ChangeRoleFile); - ereport(WARNING, (errmsg("Read change role file %s failed!", ChangeRoleFile))); - return -1; - } - - fclose(sofile); - sofile = NULL; - (void)unlink(ChangeRoleFile); - buf[2] = '\0'; - - sofile = fopen(TimeoutFile, "r"); - if (sofile == NULL) { + sofile = fopen(TimeoutFile, "rb"); + if (sofile == nullptr) { ereport(WARNING, (errmsg("Open timeout file %s failed!", TimeoutFile))); return -1; } if (fread(&timeout, sizeof(timeout), 1, sofile) == 0) { fclose(sofile); - sofile = NULL; + sofile = nullptr; (void)unlink(TimeoutFile); ereport(WARNING, (errmsg("Read timeout file %s failed!", TimeoutFile))); return -1; } fclose(sofile); - sofile = NULL; + sofile = nullptr; (void)unlink(TimeoutFile); const uint32 unit = 1000; uint32 mTimeout = (uint32)timeout * unit; ereport(LOG, (errmsg("The timeout of changing role is %d ms!", mTimeout))); - if (strcmp(buf, "fo") == 0) { /* fo denotes follower role */ + if (strcmp(role, "fo") == 0) { /* fo denotes follower role */ ret = dcf_change_member_role(1, g_instance.attr.attr_storage.dcf_attr.dcf_node_id, static_cast(2), mTimeout); - } else if (strcmp(buf, "pa") == 0) { /* pa denotes passive role */ + } else if (strcmp(role, "pa") == 0) { /* pa denotes passive role */ ret = dcf_change_member_role(1, g_instance.attr.attr_storage.dcf_attr.dcf_node_id, static_cast(4), mTimeout); } else { - ereport(WARNING, (errmsg("Content prefix read from role file can not be recognized %s", buf))); + ereport(WARNING, (errmsg("Content prefix read from role file can not be recognized %s", role))); return -1; } if (ret != 0) { - ereport(WARNING, (errmsg("DCF failed to change role to %s with err code %d!", buf, ret))); + ereport(WARNING, (errmsg("DCF failed to change role to %s with err code %d!", role, ret))); } else { - ereport(LOG, (errmsg("DCF succeeded to change role to %s.", buf))); + ereport(LOG, (errmsg("DCF succeeded to change role to %s.", role))); } return ret; } -static void handle_change_role_signal(void) +static void handle_change_role_signal(char *role) { - ereport(WARNING, (errmsg("Begin to change role."))); - int ret = changeRole(); - FILE* sofile = NULL; + ereport(LOG, (errmsg("Begin to change role."))); + int ret = changeRole(role); + FILE* sofile = nullptr; /* Write status into changlerole status file */ - sofile = fopen(g_changeRoleStatusFile, "w"); - if (sofile == NULL) { + sofile = fopen(g_changeRoleStatusFile, "wb"); + if (sofile == nullptr) { ereport(WARNING, (errmsg("Open %s failed!", g_changeRoleStatusFile))); return; } - if (fwrite(&ret, sizeof(ret), 1, sofile) == 0) + if (fwrite(&ret, sizeof(ret), 1, sofile) == 0) { + fclose(sofile); + sofile = nullptr; ereport(WARNING, (errmsg("Write change role status into %s failed!", g_changeRoleStatusFile))); + return; + } fclose(sofile); - sofile = NULL; - ereport(WARNING, (errmsg("Finish to change role."))); - return; } -static void handle_start_minority_signal(void) +static bool CheckSetRunModeSignal(RunModeParam *paramPtr) +{ + return CheckSignalByFile(StartMinorityFile, paramPtr, sizeof(RunModeParam)); +} + +static void handle_start_minority_signal(RunModeParam param) { unsigned int vote_num = 0; unsigned int xmode = 0; - FILE* sofile = NULL; - - sofile = fopen(StartMinorityFile, "r"); - if (sofile == NULL) { - ereport(LOG, (errmsg("Open start minority file %s failed!", StartMinorityFile))); - return; - } - - if (fread(&vote_num, sizeof(vote_num), 1, sofile) == 0) { - fclose(sofile); - sofile = NULL; - ereport(WARNING, (errmsg("Read start minority file %s failed!", StartMinorityFile))); - return; - } - - if (fread(&xmode, sizeof(xmode), 1, sofile) == 0) { - fclose(sofile); - sofile = NULL; - ereport(WARNING, (errmsg("Read start minority file %s failed!", StartMinorityFile))); - return; - } - - fclose(sofile); - sofile = NULL; - (void)unlink(StartMinorityFile); - - ereport(LOG, (errmsg("DCF going to start minority, vote num %d, xmode %d", vote_num, xmode))); + FILE *sofile = nullptr; + vote_num = param.voteNum; + xmode = param.xMode; + ereport(LOG, (errmsg("DCF going to set run-mode, vote num %d, xmode %d", vote_num, xmode))); Assert(xmode == 0 || xmode == 1); if (xmode == 0) { vote_num = 0; } int ret = dcf_set_work_mode(1, (dcf_work_mode_t)xmode, vote_num); if (ret != 0) { - ereport(LOG, (errmsg("DCF failed to start minority with err code %d!", ret))); + ereport(LOG, (errmsg("DCF failed to set run-mode with err code %d!", ret))); + } else { + ereport(LOG, (errmsg("DCF succeeded to set run-mode"))); } /* Write status into setrunmode status file */ - sofile = fopen(SetRunmodeStatusFile, "w"); - if (sofile == NULL) { + sofile = fopen(SetRunmodeStatusFile, "wb"); + if (sofile == nullptr) { ereport(WARNING, (errmsg("Open %s failed!", SetRunmodeStatusFile))); return; } if (fwrite(&ret, sizeof(ret), 1, sofile) == 0) { - ereport(WARNING, (errmsg("Write set-run-mode status into %s failed!", SetRunmodeStatusFile))); fclose(sofile); - sofile = NULL; + sofile = nullptr; + ereport(WARNING, (errmsg("Write set-run-mode status into %s failed!", SetRunmodeStatusFile))); return; } fclose(sofile); - sofile = NULL; - return; } #endif @@ -8126,7 +8210,13 @@ static void sigusr1_handler(SIGNAL_ARGS) /* promote cascade standby */ if (IsCascadeStandby()) { t_thrd.xlog_cxt.is_cascade_standby = false; + if (t_thrd.postmaster_cxt.HaShmData->is_cross_region) { + t_thrd.xlog_cxt.is_hadr_main_standby = true; + } SetHaShmemData(); + if (g_instance.pid_cxt.HeartbeatPID != 0) { + signal_child(g_instance.pid_cxt.HeartbeatPID, SIGTERM); + } } } if (CheckPostmasterSignal(PMSIGNAL_UPDATE_HAREBUILD_REASON) && @@ -8143,14 +8233,14 @@ static void sigusr1_handler(SIGNAL_ARGS) signal_child(g_instance.pid_cxt.PgArchPID, SIGUSR1); } - if (CheckPostmasterSignal(PMSIGNAL_WAKEN_ARCHIVER) && g_instance.archive_obs_thread_info.obsArchPID != NULL) { + if (CheckPostmasterSignal(PMSIGNAL_WAKEN_ARCHIVER) && g_instance.archive_thread_info.obsArchPID != NULL) { /* * Send SIGUSR1 to archiver process, to wake it up and begin archiving * next transaction log file. */ for (int i = 0; i < g_instance.attr.attr_storage.max_replication_slots; i++) { - if (g_instance.archive_obs_thread_info.obsArchPID[i] != 0) { - signal_child(g_instance.archive_obs_thread_info.obsArchPID[i], SIGUSR1); + if (g_instance.archive_thread_info.obsArchPID[i] != 0) { + signal_child(g_instance.archive_thread_info.obsArchPID[i], SIGUSR1); } } } @@ -8261,14 +8351,18 @@ static void sigusr1_handler(SIGNAL_ARGS) } if ((mode = CheckSwitchoverSignal()) != 0 && WalRcvIsOnline() && DataRcvIsOnline() && (pmState == PM_STARTUP || pmState == PM_RECOVERY || pmState == PM_HOT_STANDBY || pmState == PM_WAIT_READONLY)) { - ereport(LOG, (errmsg("to do switchover"))); - /* Label the standby to do switchover */ - t_thrd.walreceiverfuncs_cxt.WalRcv->node_state = (ClusterNodeState)mode; - if (g_instance.attr.attr_storage.dcf_attr.enable_dcf) { - PaxosPromoteLeader(); + if (!IS_SHARED_STORAGE_STANBY_CLUSTER_MODE) { + ereport(LOG, (errmsg("to do switchover"))); + /* Label the standby to do switchover */ + t_thrd.walreceiverfuncs_cxt.WalRcv->node_state = (ClusterNodeState)mode; + if (g_instance.attr.attr_storage.dcf_attr.enable_dcf && t_thrd.dcf_cxt.dcfCtxInfo->isDcfStarted) { + PaxosPromoteLeader(); + } else { + /* Tell walreceiver process to start switchover */ + signal_child(g_instance.pid_cxt.WalReceiverPID, SIGUSR1); + } } else { - /* Tell walreceiver process to start switchover */ - signal_child(g_instance.pid_cxt.WalReceiverPID, SIGUSR1); + ereport(LOG, (errmsg("standby cluster could not do switchover"))); } } if (CheckPostmasterSignal(PMSIGNAL_DEMOTE_PRIMARY)) { @@ -8316,23 +8410,27 @@ static void sigusr1_handler(SIGNAL_ARGS) #ifndef ENABLE_MULTIPLE_NODES uint32 nodeID = 0; - if (g_instance.attr.attr_storage.dcf_attr.enable_dcf && checkAddMemberSignal()) { - Assert(t_thrd.dcf_cxt.dcfCtxInfo->isDcfStarted); - handle_add_member_signal(); + NewNodeInfo nodeinfo; + char role[3] = {0}; + role[2] = '\0'; + RunModeParam param; + if (g_instance.attr.attr_storage.dcf_attr.enable_dcf && CheckAddMemberSignal(&nodeinfo) && + t_thrd.dcf_cxt.dcfCtxInfo->isDcfStarted) { + handle_add_member_signal(nodeinfo); } - if (g_instance.attr.attr_storage.dcf_attr.enable_dcf && (nodeID = CheckRemoveMemberSignal()) != 0) { - Assert(t_thrd.dcf_cxt.dcfCtxInfo->isDcfStarted); + if (g_instance.attr.attr_storage.dcf_attr.enable_dcf && CheckRemoveMemberSignal(&nodeID) && + t_thrd.dcf_cxt.dcfCtxInfo->isDcfStarted) { handle_remove_member_signal(nodeID); } - - if (g_instance.attr.attr_storage.dcf_attr.enable_dcf && - checkSignalFileExist(ChangeRoleFile) && t_thrd.dcf_cxt.dcfCtxInfo->isDcfStarted) { - handle_change_role_signal(); - } if (g_instance.attr.attr_storage.dcf_attr.enable_dcf && - checkSignalFileExist(StartMinorityFile) && t_thrd.dcf_cxt.dcfCtxInfo->isDcfStarted) { - handle_start_minority_signal(); + CheckChangeRoleSignal(role, 2) && t_thrd.dcf_cxt.dcfCtxInfo->isDcfStarted) { + handle_change_role_signal(role); + } + + if (g_instance.attr.attr_storage.dcf_attr.enable_dcf && + CheckSetRunModeSignal(¶m) && t_thrd.dcf_cxt.dcfCtxInfo->isDcfStarted) { + handle_start_minority_signal(param); } #endif @@ -8494,6 +8592,9 @@ static void StartRbWorker(void) */ if (canAcceptConnections(false) == CAC_OK) { int slot = AssignPostmasterChildSlot(); + if (slot == -1) { + return; + } bn = AssignFreeBackEnd(slot); @@ -8554,6 +8655,9 @@ static void StartTxnSnapWorker(void) */ if (canAcceptConnections(false) == CAC_OK) { int slot = AssignPostmasterChildSlot(); + if (slot == -1) { + return; + } bn = AssignFreeBackEnd(slot); @@ -9519,6 +9623,13 @@ static void BackendArrayAllocation(void) Backend* GetBackend(int slot) { if (slot > 0 && slot <= MaxLivePostmasterChildren()) { +#ifdef USE_ASSERT_CHECKING + if (g_instance.backend_array[slot - 1].role != t_thrd.role && + t_thrd.role != STREAM_WORKER && t_thrd.role != THREADPOOL_STREAM) { + elog(WARNING, "get thread backend role %d not match current thread rolr %d ", + g_instance.backend_array[slot - 1].role, t_thrd.role); + } +#endif return &g_instance.backend_array[slot - 1]; } else { return NULL; @@ -9532,6 +9643,7 @@ Backend* AssignFreeBackEnd(int slot) bn->flag = 0; bn->pid = 0; + bn->role = t_thrd.role; bn->cancel_key = 0; bn->dead_end = false; return bn; @@ -9544,6 +9656,7 @@ static void BackendArrayRemove(Backend* bn) Assert(g_instance.backend_array[i].pid == bn->pid); /* Mark the slot as empty */ g_instance.backend_array[i].pid = 0; + g_instance.backend_array[i].role = (knl_thread_role)0; g_instance.backend_array[i].flag = 0; g_instance.backend_array[i].cancel_key = 0; g_instance.backend_array[i].dead_end = false; @@ -9657,7 +9770,7 @@ void HaShmemInit(void) int i = 0; t_thrd.postmaster_cxt.HaShmData->current_mode = NORMAL_MODE; - for (i = 1; i < MAX_REPLNODE_NUM; i++) { + for (i = 1; i < DOUBLE_MAX_REPLNODE_NUM; i++) { t_thrd.postmaster_cxt.HaShmData->disconnect_count[i] = 0; t_thrd.postmaster_cxt.HaShmData->repl_reason[i] = NONE_REBUILD; } @@ -9821,11 +9934,17 @@ static int NeedPoolerPort(const char* hostName) { int index = -1; - for (int i = 1; i < MAX_REPLNODE_NUM; i++) { - if (t_thrd.postmaster_cxt.ReplConnArray[i] != NULL && - t_thrd.postmaster_cxt.ReplConnArray[i]->localport == g_instance.attr.attr_network.PoolerPort && - (strcmp(t_thrd.postmaster_cxt.ReplConnArray[i]->localhost, "*") == 0 || - strcmp(t_thrd.postmaster_cxt.ReplConnArray[i]->localhost, hostName) == 0)) { + for (int i = 1; i < DOUBLE_MAX_REPLNODE_NUM; i++) { + ReplConnInfo *replConnInfo = NULL; + if (i >= MAX_REPLNODE_NUM) { + replConnInfo = t_thrd.postmaster_cxt.CrossClusterReplConnArray[i - MAX_REPLNODE_NUM]; + } else { + replConnInfo = t_thrd.postmaster_cxt.ReplConnArray[i]; + } + if (replConnInfo != NULL && + replConnInfo->localport == g_instance.attr.attr_network.PoolerPort && + (strcmp(replConnInfo->localhost, "*") == 0 || + strcmp(replConnInfo->localhost, hostName) == 0)) { index = i; break; } @@ -9836,7 +9955,7 @@ static int NeedPoolerPort(const char* hostName) /* * check whether the port of the socket address is the compare_port */ -bool IsMatchSocketAddr(struct sockaddr* sock_addr, int target_port) +bool IsMatchSocketAddr(const struct sockaddr* sock_addr, int target_port) { int portNumber = 0; struct sockaddr_in* ipv4addr = NULL; @@ -9896,6 +10015,21 @@ bool IsConnectBasePort(const Port* port) return IsMatchSocketAddr(laddr, g_instance.attr.attr_network.PostPortNumber); } +static bool IsClusterHaPort(const struct sockaddr* laddr) +{ + for (int i = 1; i < MAX_REPLNODE_NUM; i++) { + ReplConnInfo *replConnInfo = t_thrd.postmaster_cxt.CrossClusterReplConnArray[i]; + + if (replConnInfo != NULL) { + bool matched = IsMatchSocketAddr(laddr, replConnInfo->localport); + if (matched) { + return true; + } + } + } + return false; +} + /* * check whether the port of the session Port structure is the PoolerPort */ @@ -9906,7 +10040,26 @@ bool IsHAPort(Port* port) } struct sockaddr* laddr = (struct sockaddr*)&(port->laddr.addr); - return IsMatchSocketAddr(laddr, g_instance.attr.attr_network.PoolerPort); + + if (IsMatchSocketAddr(laddr, g_instance.attr.attr_network.PoolerPort)) { + return true; + } + + if (IsClusterHaPort(laddr)) { + return true; + } + + for (int i = 1; i < DOUBLE_MAX_REPLNODE_NUM + 1; i++) { + ReplConnInfo *replConnInfo = t_thrd.postmaster_cxt.ReplConnArray[i]; + if (replConnInfo != NULL) { + bool matched = IsMatchSocketAddr(laddr, replConnInfo->localport); + if (matched) { + return true; + } + } + } + + return false; } /* @@ -9938,6 +10091,7 @@ static void SetHaShmemData() case STANDBY_MODE: { hashmdata->current_mode = STANDBY_MODE; hashmdata->is_cascade_standby = t_thrd.xlog_cxt.is_cascade_standby; + hashmdata->is_hadr_main_standby = t_thrd.xlog_cxt.is_hadr_main_standby; break; } case PRIMARY_MODE: { @@ -9953,8 +10107,15 @@ static void SetHaShmemData() } for (i = 1; i < MAX_REPLNODE_NUM; i++) { - if (t_thrd.postmaster_cxt.ReplConnArray[i] != NULL) + if (t_thrd.postmaster_cxt.ReplConnArray[i] != NULL) { repl_list_num++; + if (t_thrd.postmaster_cxt.ReplConnArray[i]->isCrossRegion && !IS_SHARED_STORAGE_STANBY_CLUSTER_MODE) { + hashmdata->is_cross_region = true; + } + } + if (t_thrd.postmaster_cxt.CrossClusterReplConnArray[i] != NULL) { + repl_list_num++; + } } hashmdata->repl_list_num = repl_list_num; @@ -10155,7 +10316,7 @@ void CreateServerSocket( /* * parse ReplConnArray1 and ReplConnArray2 into ip-port pair and save it in pListenList */ -bool ParseHaListenAddr(LISTEN_ADDRS* pListenList) +bool ParseHaListenAddr(LISTEN_ADDRS* pListenList, ReplConnInfo** replConnArray) { int count = 0, i = 0; errno_t rc = 0; @@ -10168,12 +10329,12 @@ bool ParseHaListenAddr(LISTEN_ADDRS* pListenList) count = pListenList->usedNum; for (i = 1; i < MAX_REPLNODE_NUM; i++) { - if (t_thrd.postmaster_cxt.ReplConnArray[i] != NULL) { - pListenList->lsnArray[count].portnum = t_thrd.postmaster_cxt.ReplConnArray[i]->localport; + if (replConnArray[i] != NULL) { + pListenList->lsnArray[count].portnum = replConnArray[i]->localport; pListenList->lsnArray[count].createmodel = NEED_CREATE_TCPIP; rc = strncpy_s(pListenList->lsnArray[count].ipaddr, sizeof(pListenList->lsnArray[count].ipaddr), - t_thrd.postmaster_cxt.ReplConnArray[i]->localhost, + replConnArray[i]->localhost, MAX_IPADDR_LEN - 1); securec_check(rc, "\0", "\0"); pListenList->lsnArray[count].ipaddr[MAX_IPADDR_LEN - 1] = '\0'; @@ -10200,9 +10361,12 @@ static void CreateHaListenSocket(void) securec_check(ss_rc, "\0", "\0"); /* parse the ReplConnArray into IP-Port pair */ - if (!ParseHaListenAddr(&newListenAddrs)) { + if (!ParseHaListenAddr(&newListenAddrs, t_thrd.postmaster_cxt.ReplConnArray)) { ereport(WARNING, (errmsg("\"replconninfo\" has been set null or invalid "))); } + if (!ParseHaListenAddr(&newListenAddrs, t_thrd.postmaster_cxt.CrossClusterReplConnArray)) { + ereport(WARNING, (errmsg("\"cross_cluster_replconninfo\" has been set null or invalid "))); + } /* * if the IP-Port in newListenAddrs has not been created, then create the socket @@ -10312,14 +10476,32 @@ static void ListenSocketRegulation(void) IntArrayRegulation((int*)t_thrd.postmaster_cxt.listen_sock_type, MAXLISTEN, UNUSED_LISTEN_SOCKET); } +static DbState get_share_storage_node_dbstate_sub() +{ + if (IS_SHARED_STORAGE_STANBY_CLUSTER_MODE) { + return NORMAL_STATE; + } else if (WalRcvIsOnline()) { + return NORMAL_STATE; + } else if (pg_atomic_read_u32(&t_thrd.walreceiverfuncs_cxt.WalRcv->rcvDoneFromShareStorage)) { + return NEEDREPAIR_STATE; + } else { + return STARTING_STATE; + } +} + DbState get_local_dbstate_sub(WalRcvData* walrcv, ServerMode mode) { bool has_build_reason = true; + bool share_storage_has_no_build_reason = (IS_SHARED_STORAGE_MODE && + t_thrd.postmaster_cxt.HaShmData->repl_reason[t_thrd.postmaster_cxt.HaShmData->current_repl] == NONE_REBUILD) || + (IS_SHARED_STORAGE_STANBY_CLUSTER_MODE && + t_thrd.postmaster_cxt.HaShmData->repl_reason[t_thrd.postmaster_cxt.HaShmData->current_repl] == CONNECT_REBUILD); + bool disater_recovery_has_no_build_reason = (IS_DISASTER_RECOVER_MODE && + t_thrd.postmaster_cxt.HaShmData->repl_reason[t_thrd.postmaster_cxt.HaShmData->current_repl] == NONE_REBUILD); if ((t_thrd.postmaster_cxt.HaShmData->repl_reason[t_thrd.postmaster_cxt.HaShmData->current_repl] == NONE_REBUILD && walrcv != NULL && walrcv->isRuning && (walrcv->conn_target == REPCONNTARGET_PRIMARY || IsCascadeStandby())) || - dummyStandbyMode || (IS_DISASTER_RECOVER_MODE && - t_thrd.postmaster_cxt.HaShmData->repl_reason[t_thrd.postmaster_cxt.HaShmData->current_repl] == NONE_REBUILD)) { + dummyStandbyMode || share_storage_has_no_build_reason || disater_recovery_has_no_build_reason) { has_build_reason = false; } switch (mode) { @@ -10335,6 +10517,8 @@ DbState get_local_dbstate_sub(WalRcvData* walrcv, ServerMode mode) Also use local info from walreceiver as a supplement. */ if (wal_catchup || data_catchup) { return CATCHUP_STATE; + } else if (IS_SHARED_STORAGE_MODE) { + return get_share_storage_node_dbstate_sub(); } else if (!WalRcvIsOnline() && !IS_DISASTER_RECOVER_MODE) { return STARTING_STATE; } else { @@ -10768,7 +10952,7 @@ static void check_and_reset_ha_listen_port(void) * dynamically modify the ha socket. */ for (j = 1; j < MAX_REPLNODE_NUM; j++) { - if (t_thrd.postmaster_cxt.ReplConnChanged[j]) + if (t_thrd.postmaster_cxt.ReplConnChanged[j] || t_thrd.postmaster_cxt.CrossClusterReplConnChanged[j]) break; } @@ -10780,8 +10964,11 @@ static void check_and_reset_ha_listen_port(void) repl_list_num = 0; for (i = 1; i < MAX_REPLNODE_NUM; i++) { t_thrd.postmaster_cxt.ReplConnChanged[i] = false; + t_thrd.postmaster_cxt.CrossClusterReplConnChanged[i] = false; if (t_thrd.postmaster_cxt.ReplConnArray[i] != NULL) repl_list_num++; + if (t_thrd.postmaster_cxt.CrossClusterReplConnArray[i] != NULL) + repl_list_num++; } /* send SIGTERM to end process senders and receiver */ @@ -10799,6 +10986,7 @@ static void check_and_reset_ha_listen_port(void) signal_child(g_instance.pid_cxt.DataReceiverPID, SIGTERM); ListenSocketRegulation(); + } #ifndef ENABLE_MULTIPLE_NODES if (t_thrd.postmaster_cxt.HaShmData != NULL && @@ -10808,7 +10996,6 @@ static void check_and_reset_ha_listen_port(void) SetServerMode(NORMAL_MODE); } #endif - } return; } @@ -10865,11 +11052,7 @@ static void SetAuxType() t_thrd.bootstrap_cxt.MyAuxProcType = FaultMonitorProcess; break; case BGWRITER: - if (ENABLE_INCRE_CKPT) { - t_thrd.bootstrap_cxt.MyAuxProcType = MultiBgWriterProcess; - } else { - t_thrd.bootstrap_cxt.MyAuxProcType = BgWriterProcess; - } + t_thrd.bootstrap_cxt.MyAuxProcType = BgWriterProcess; break; case SPBGWRITER: t_thrd.bootstrap_cxt.MyAuxProcType = SpBgWriterProcess; @@ -10916,6 +11099,9 @@ static void SetAuxType() case UNDO_RECYCLER: t_thrd.bootstrap_cxt.MyAuxProcType = UndoRecyclerProcess; break; + case SHARE_STORAGE_XLOG_COPYER: + t_thrd.bootstrap_cxt.MyAuxProcType = XlogCopyBackendProcess; + break; #ifdef ENABLE_MULTIPLE_NODES case TS_COMPACTION: t_thrd.bootstrap_cxt.MyAuxProcType = TsCompactionProcess; @@ -10976,7 +11162,8 @@ void SetExtraThreadInfo(knl_thread_arg* arg) } case BGWORKER: { t_thrd.bgworker_cxt.bgwcontext = ((BackgroundWorkerArgs *)arg->payload)->bgwcontext; - t_thrd.bgworker_cxt.bgworker = ((BackgroundWorkerArgs *)arg->payload)->bgworker; + t_thrd.bgworker_cxt.bgworker = ((BackgroundWorkerArgs *)arg->payload)->bgworker; + t_thrd.bgworker_cxt.bgworkerId = ((BackgroundWorkerArgs *)arg->payload)->bgworkerId; } default: break; @@ -11106,16 +11293,10 @@ int GaussDbAuxiliaryThreadMain(knl_thread_arg* arg) break; case BGWRITER: - if (ENABLE_INCRE_CKPT) { - incre_ckpt_background_writer_main(); - proc_exit(1); - break; - } else { /* don't set signals, bgwriter has its own agenda */ BackgroundWriterMain(); proc_exit(1); /* should never return */ break; - } case SPBGWRITER: invalid_buffer_bgwriter_main(); @@ -11195,7 +11376,11 @@ int GaussDbAuxiliaryThreadMain(knl_thread_arg* arg) undo::UndoRecycleMain(); proc_exit(1); break; - + + case SHARE_STORAGE_XLOG_COPYER: + SharedStorageXlogCopyBackendMain(); + proc_exit(1); + break; #ifdef ENABLE_MULTIPLE_NODES case TS_COMPACTION: CompactionProcess::compaction_main(); @@ -11323,8 +11508,6 @@ int GaussDbThreadMain(knl_thread_arg* arg) ereport(DEBUG2, (errmsg("start a new [%d] thread with fd:[%d]", thread_role, port.sock))); } - t_thrd.bn = GetBackend(t_thrd.proc_cxt.MyPMChildSlot); - /* We don't need read GUC variables */ if (!FencedUDFMasterMode && !PythonFencedMasterModel) { /* Read in remaining GUC variables */ @@ -11432,6 +11615,7 @@ int GaussDbThreadMain(knl_thread_arg* arg) case STARTUP: case PAGEWRITER_THREAD: case HEARTBEAT: + case SHARE_STORAGE_XLOG_COPYER: #ifdef ENABLE_MULTIPLE_NODES case TS_COMPACTION: case TS_COMPACTION_CONSUMER: @@ -11493,7 +11677,7 @@ int GaussDbThreadMain(knl_thread_arg* arg) // restore child slot; t_thrd.proc_cxt.MyPMChildSlot = AssignPostmasterChildSlot(); if (t_thrd.proc_cxt.MyPMChildSlot == -1) { - return -1; + return STATUS_ERROR; } /* Restore basic shared memory pointers */ @@ -11642,6 +11826,9 @@ int GaussDbThreadMain(knl_thread_arg* arg) InitShmemAccess(UsedShmemSegAddr); t_thrd.proc_cxt.MyPMChildSlot = AssignPostmasterChildSlot(); + if (t_thrd.proc_cxt.MyPMChildSlot == -1) { + return STATUS_ERROR; + } InitProcessAndShareMemory(); TxnSnapCapturerMain(); proc_exit(0); @@ -11649,8 +11836,6 @@ int GaussDbThreadMain(knl_thread_arg* arg) case TXNSNAP_WORKER: { InitShmemAccess(UsedShmemSegAddr); - - t_thrd.proc_cxt.MyPMChildSlot = AssignPostmasterChildSlot(); InitProcessAndShareMemory(); TxnSnapWorkerMain(); proc_exit(0); @@ -11660,6 +11845,9 @@ int GaussDbThreadMain(knl_thread_arg* arg) InitShmemAccess(UsedShmemSegAddr); t_thrd.proc_cxt.MyPMChildSlot = AssignPostmasterChildSlot(); + if (t_thrd.proc_cxt.MyPMChildSlot == -1) { + return STATUS_ERROR; + } InitProcessAndShareMemory(); RbCleanerMain(); proc_exit(0); @@ -11667,8 +11855,6 @@ int GaussDbThreadMain(knl_thread_arg* arg) case RBWORKER: { InitShmemAccess(UsedShmemSegAddr); - - t_thrd.proc_cxt.MyPMChildSlot = AssignPostmasterChildSlot(); InitProcessAndShareMemory(); RbWorkerMain(); proc_exit(0); @@ -11918,9 +12104,11 @@ static ThreadMetaData GaussdbThreadGate[] = { { GaussDbThreadMain, BARRIER_CREATOR, "barriercreator", "barrier creator" }, { GaussDbThreadMain, BGWORKER, "bgworker", "background worker" }, { GaussDbThreadMain, BARRIER_ARCH, "barrierarch", "barrier arch" }, + { GaussDbThreadMain, SHARE_STORAGE_XLOG_COPYER, "xlogcopyer", "xlog copy backend" }, { GaussDbThreadMain, APPLY_LAUNCHER, "applylauncher", "apply launcher" }, { GaussDbThreadMain, APPLY_WORKER, "applyworker", "apply worker" }, - /* Keep the block in the end if it may be absent !!! */ + + /* Keep the block in the end if it may be absent !!! */ #ifdef ENABLE_MULTIPLE_NODES { GaussDbThreadMain, TS_COMPACTION, "TScompaction", "timeseries compaction" }, @@ -12103,7 +12291,7 @@ Datum disable_conn(PG_FUNCTION_ARGS) } char* host = NULL; - if (getObsRecoverySlot() && IsServerModeStandby()) { + if (GetArchiveRecoverySlot() && IsServerModeStandby()) { ereport(ERROR, (errcode(ERRCODE_INVALID_OPERATION), errmsg("can not execute in obs recovery mode"))); } @@ -12132,6 +12320,7 @@ Datum disable_conn(PG_FUNCTION_ARGS) * Sleep 0.5s is an auxiliary way to check whether all xlog has been redone. */ if (disconn_node.conn_mode == PROHIBIT_CONNECTION) { + uint32 conn_mode = pg_atomic_read_u32(&g_instance.comm_cxt.localinfo_cxt.need_disable_connection_node); while (checkTimes--) { if (knl_g_get_redo_finish_status()) { redoDone = true; @@ -12142,7 +12331,11 @@ Datum disable_conn(PG_FUNCTION_ARGS) } ereport(LOG, (errmsg("%d redo_done", redoDone))); if (!redoDone) { - g_instance.comm_cxt.localinfo_cxt.need_disable_connection_node = true; + if (!conn_mode) { + pg_atomic_write_u32(&g_instance.comm_cxt.localinfo_cxt.need_disable_connection_node, true); + // clean redo done + pg_atomic_write_u32(&t_thrd.walreceiverfuncs_cxt.WalRcv->rcvDoneFromShareStorage, false); + } ereport(ERROR, (errcode_for_file_access(), errmsg("could not add lock when DN is not redo all xlog, redo done flag is false"))); } @@ -12154,7 +12347,7 @@ Datum disable_conn(PG_FUNCTION_ARGS) ereport(ERROR, (errcode_for_file_access(), errmsg("could not add lock when DN is not redo all xlog."))); } } else { - g_instance.comm_cxt.localinfo_cxt.need_disable_connection_node = false; + pg_atomic_write_u32(&g_instance.comm_cxt.localinfo_cxt.need_disable_connection_node, false); } if (disconn_node.conn_mode != SPECIFY_CONNECTION) { diff --git a/src/gausskernel/process/postmaster/rbcleaner.cpp b/src/gausskernel/process/postmaster/rbcleaner.cpp index 9e43325c6..982050729 100644 --- a/src/gausskernel/process/postmaster/rbcleaner.cpp +++ b/src/gausskernel/process/postmaster/rbcleaner.cpp @@ -756,6 +756,7 @@ static void RbCleanerPurgeImpl(uint64 id) } } list_free_deep(l); + l = NULL; CommitTransactionCommand(); RbCleanerPurgeFinal(id); @@ -874,6 +875,8 @@ NON_EXEC_STATIC void RbCleanerMain() /* Since not using PG_TRY, must reset error stack by hand */ t_thrd.log_cxt.error_context_stack = NULL; + t_thrd.log_cxt.call_stack = NULL; + /* Prevent interrupts while cleaning up */ HOLD_INTERRUPTS(); @@ -1104,6 +1107,8 @@ NON_EXEC_STATIC void RbWorkerMain() /* Since not using PG_TRY, must reset error stack by hand */ t_thrd.log_cxt.error_context_stack = NULL; + t_thrd.log_cxt.call_stack = NULL; + /* Prevent interrupts while cleaning up */ HOLD_INTERRUPTS(); diff --git a/src/gausskernel/process/postmaster/snapcapturer.cpp b/src/gausskernel/process/postmaster/snapcapturer.cpp index f5535f059..0177d8138 100644 --- a/src/gausskernel/process/postmaster/snapcapturer.cpp +++ b/src/gausskernel/process/postmaster/snapcapturer.cpp @@ -436,6 +436,8 @@ NON_EXEC_STATIC void TxnSnapWorkerMain() /* Since not using PG_TRY, must reset error stack by hand */ t_thrd.log_cxt.error_context_stack = NULL; + t_thrd.log_cxt.call_stack = NULL; + /* Prevent interrupts while cleaning up */ HOLD_INTERRUPTS(); @@ -737,6 +739,8 @@ NON_EXEC_STATIC void TxnSnapCapturerMain() /* Since not using PG_TRY, must reset error stack by hand */ t_thrd.log_cxt.error_context_stack = NULL; + t_thrd.log_cxt.call_stack = NULL; + /* Prevent interrupts while cleaning up */ HOLD_INTERRUPTS(); diff --git a/src/gausskernel/process/postmaster/startup.cpp b/src/gausskernel/process/postmaster/startup.cpp index 6d406629b..d6415b20a 100755 --- a/src/gausskernel/process/postmaster/startup.cpp +++ b/src/gausskernel/process/postmaster/startup.cpp @@ -27,6 +27,7 @@ #include "miscadmin.h" #include "postmaster/startup.h" #include "postmaster/postmaster.h" +#include "replication/shared_storage_walreceiver.h" #include "storage/ipc.h" #include "storage/latch.h" #include "storage/pmsignal.h" @@ -137,6 +138,9 @@ static void StartupProcSigusr2Handler(SIGNAL_ARGS) t_thrd.startup_cxt.primary_triggered = true; } else if (CheckNotifySignal(NOTIFY_STANDBY)) { t_thrd.startup_cxt.standby_triggered = true; + if (t_thrd.startup_cxt.failover_triggered && t_thrd.postmaster_cxt.HaShmData->is_hadr_main_standby) { + t_thrd.startup_cxt.failover_triggered = false; + } } else if (CheckNotifySignal(NOTIFY_FAILOVER)) { t_thrd.startup_cxt.failover_triggered = true; #ifndef ENABLE_MULTIPLE_NODES @@ -226,6 +230,27 @@ static void StartupReleaseAllLocks(int code, Datum arg) LockReleaseAll(USER_LOCKMETHOD, true); } +void DeleteDisConnFileInClusterStandby() +{ + if (!IS_SHARED_STORAGE_MODE) { + return; + } + + struct stat st; + if (stat(disable_conn_file, &st) < 0) { + return; + } + + int ret = unlink(disable_conn_file); + if (ret < 0) { + ereport(WARNING, (errcode_for_file_access(), errmsg("cluster standby mode, could not remove file \"%s\": %m", + disable_conn_file))); + } else { + ereport(LOG, (errcode_for_file_access(), errmsg("removed file \"%s\" success.", disable_conn_file))); + } +} + + /* ---------------------------------- * Startup Process main entry point * ---------------------------------- @@ -296,6 +321,7 @@ void StartupProcessMain(void) * MOT recovery is part of StartupXlog */ #endif + DeleteDisConnFileInClusterStandby(); StartupXLOG(); } @@ -457,7 +483,8 @@ static void SetStaticConnNum(void) for (i = 1; i < MAX_REPLNODE_NUM; i++) { repl_list_num = (t_thrd.postmaster_cxt.ReplConnArray[i] != NULL) ? (repl_list_num + 1) : repl_list_num; - + repl_list_num = + (t_thrd.postmaster_cxt.CrossClusterReplConnArray[i] != NULL) ? (repl_list_num + 1) : repl_list_num; SpinLockAcquire(&hashmdata->mutex); hashmdata->repl_list_num = repl_list_num; SpinLockRelease(&hashmdata->mutex); diff --git a/src/gausskernel/process/postmaster/twophasecleaner.cpp b/src/gausskernel/process/postmaster/twophasecleaner.cpp index 566ad29fc..f3f5e3a7f 100644 --- a/src/gausskernel/process/postmaster/twophasecleaner.cpp +++ b/src/gausskernel/process/postmaster/twophasecleaner.cpp @@ -226,7 +226,7 @@ NON_EXEC_STATIC void TwoPhaseCleanerMain() #ifdef USE_ASSERT_CHECKING rc = sprintf_s(cmd, sizeof(cmd), - "gs_clean -a -p %d -h localhost -w -v -r -j %d -l %s >> %s 2>&1", + "gs_clean -a -p %d -h localhost -v -r -j %d -l %s >> %s 2>&1", g_instance.attr.attr_network.PoolerPort, u_sess->attr.attr_storage.twophase_clean_workers, getGsCleanLogLevel(), @@ -235,7 +235,7 @@ NON_EXEC_STATIC void TwoPhaseCleanerMain() #else rc = sprintf_s(cmd, sizeof(cmd), - "gs_clean -a -p %d -h localhost -w -v -r -j %d -l %s > /dev/null 2>&1", + "gs_clean -a -p %d -h localhost -v -r -j %d -l %s > /dev/null 2>&1", g_instance.attr.attr_network.PoolerPort, u_sess->attr.attr_storage.twophase_clean_workers, getGsCleanLogLevel()); @@ -740,14 +740,15 @@ static void DropTempSchema(PGconn* conn, char* nspname) char toastnspName[NAMEDATALEN] = {0}; /* SQL Statement */ - char STMT_DROP_TEMP_SCHEMA[2 * NAMEDATALEN + 64] = {0}; // A secure enough size to concat DROP statements. + char STMT_DROP_TEMP_SCHEMA[2 * NAMEDATALEN + 64] = {0}; - rc = sprintf_s(toastnspName, NAMEDATALEN, "pg_toast_temp_%s", nspname + strlen("pg_temp_")); + rc = snprintf_s(toastnspName, NAMEDATALEN, strlen(nspname) + 7, "pg_toast_temp_%s", nspname + 8); securec_check_ss_c(rc, "\0", "\0"); - rc = sprintf_s(STMT_DROP_TEMP_SCHEMA, + rc = snprintf_s(STMT_DROP_TEMP_SCHEMA, sizeof(STMT_DROP_TEMP_SCHEMA), - "DROP SCHEMA \"%s\", \"%s\" CASCADE;", + 2 * strlen(nspname) + 30, + "DROP SCHEMA %s, %s CASCADE;", nspname, toastnspName); securec_check_ss_c(rc, "\0", "\0"); diff --git a/src/gausskernel/process/postmaster/walwriter.cpp b/src/gausskernel/process/postmaster/walwriter.cpp index 92c1bcf36..6788db4d7 100755 --- a/src/gausskernel/process/postmaster/walwriter.cpp +++ b/src/gausskernel/process/postmaster/walwriter.cpp @@ -191,6 +191,8 @@ void WalWriterMain(void) /* Since not using PG_TRY, must reset error stack by hand */ t_thrd.log_cxt.error_context_stack = NULL; + t_thrd.log_cxt.call_stack = NULL; + /* Prevent interrupts while cleaning up */ HOLD_INTERRUPTS(); diff --git a/src/gausskernel/process/postmaster/walwriterauxiliary.cpp b/src/gausskernel/process/postmaster/walwriterauxiliary.cpp index ddb88505d..38e427743 100755 --- a/src/gausskernel/process/postmaster/walwriterauxiliary.cpp +++ b/src/gausskernel/process/postmaster/walwriterauxiliary.cpp @@ -117,6 +117,8 @@ void WalWriterAuxiliaryMain(void) /* Since not using PG_TRY, must reset error stack by hand */ t_thrd.log_cxt.error_context_stack = NULL; + t_thrd.log_cxt.call_stack = NULL; + /* Prevent interrupts while cleaning up */ HOLD_INTERRUPTS(); diff --git a/src/gausskernel/process/stream/streamConsumer.cpp b/src/gausskernel/process/stream/streamConsumer.cpp index 42ede8f7c..85d801d56 100755 --- a/src/gausskernel/process/stream/streamConsumer.cpp +++ b/src/gausskernel/process/stream/streamConsumer.cpp @@ -408,6 +408,12 @@ void StreamConsumer::waitProducerReady() global_node_definition ? global_node_definition->num_nodes : -1); if (ntimes == 300) { + if (t_thrd.int_cxt.QueryCancelPending) { + ereport(WARNING, (errmodule(MOD_STREAM), + errcode(ERRCODE_CONNECTION_TIMED_OUT), + errmsg("Did not handle interrupt signal, with InterruptHoldoffCount(%u),", + t_thrd.int_cxt.InterruptHoldoffCount))); + } resetStringInfo(&str); findUnconnectProducer(&str); ereport(ERROR, diff --git a/src/gausskernel/process/stream/streamCore.cpp b/src/gausskernel/process/stream/streamCore.cpp index a5c942c11..2c50a885c 100755 --- a/src/gausskernel/process/stream/streamCore.cpp +++ b/src/gausskernel/process/stream/streamCore.cpp @@ -748,12 +748,15 @@ void StreamNodeGroup::initStreamThread(StreamProducer* producer, uint8 smpIdenti #ifdef __aarch64__ pg_memory_barrier(); #endif + AutoMutexLock streamLock(&m_mutex); + streamLock.lock(); producer->setThreadId(producerThreadId); /* Set create thread num for sync quit. */ m_createThreadNum++; /* Assume all stream threads build successfully for sync quit process. */ StreamPair* tmpPair = producer->getPair(); tmpPair->createThreadNum = tmpPair->expectThreadNum; + streamLock.unLock(); Assert(m_createThreadNum <= m_size); STREAM_LOG(DEBUG2, diff --git a/src/gausskernel/process/stream/streamMain.cpp b/src/gausskernel/process/stream/streamMain.cpp index 3951b2dcd..6dd144937 100755 --- a/src/gausskernel/process/stream/streamMain.cpp +++ b/src/gausskernel/process/stream/streamMain.cpp @@ -39,6 +39,7 @@ #include "storage/ipc.h" #include "storage/pmsignal.h" #include "storage/proc.h" +#include "storage/procarray.h" #include "tcop/tcopprot.h" #include "threadpool/threadpool.h" #include "utils/memtrack.h" @@ -91,8 +92,6 @@ int StreamMain() if (g_threadPoolControler) { g_threadPoolControler->GetSessionCtrl()->releaseLockIfNecessary(); } - /* reset STP thread local valueables */ - stp_reset_opt_values(); gstrace_tryblock_exit(true, oldTryCounter); HandleStreamSigjmp(); @@ -323,6 +322,9 @@ static void HandleStreamSigjmp() /* Since not using PG_TRY, must reset error stack by hand */ t_thrd.log_cxt.error_context_stack = NULL; + + t_thrd.log_cxt.call_stack = NULL; + /* reset buffer strategy flag */ t_thrd.storage_cxt.is_btree_split = false; @@ -699,6 +701,9 @@ ThreadId ApplyStreamThread(StreamProducer *producer) producer->getKey().smpIdentifier); } else { producer->setChildSlot(AssignPostmasterChildSlot()); + if (producer->getChildSlot() == -1) { + return InvalidTid; + } tid = initialize_util_thread(STREAM_WORKER, producer); } @@ -757,6 +762,8 @@ void StreamExit() if (t_thrd.proc_cxt.MyBackendId != InvalidBackendId) { release_statement_context(t_thrd.shemem_ptr_cxt.MyBEEntry, __FUNCTION__, __LINE__); } + /* When the stream session ends, the user count decreases by one. */ + DecreaseUserCount(u_sess->proc_cxt.MyRoleId); free_session_context(u_sess); } diff --git a/src/gausskernel/process/tcop/auditfuncs.cpp b/src/gausskernel/process/tcop/auditfuncs.cpp index 8b80d7418..d4f5f4e8a 100644 --- a/src/gausskernel/process/tcop/auditfuncs.cpp +++ b/src/gausskernel/process/tcop/auditfuncs.cpp @@ -1,5 +1,6 @@ /* * Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors * * openGauss is licensed under Mulan PSL v2. * You can use this software according to the terms and conditions of the Mulan PSL v2. @@ -943,7 +944,8 @@ static void pgaudit_process_drop_objects(Node* node, const char* querystring) objectname = NameListToString(names); pgaudit_ddl_textsearch(objectname, querystring); } break; - case OBJECT_SEQUENCE: { + case OBJECT_SEQUENCE: + case OBJECT_LARGE_SEQUENCE: { objectname = strVal(lfirst(list_tail(names))); pgaudit_ddl_sequence(objectname, querystring); } break; @@ -1229,7 +1231,7 @@ static void pgaudit_ProcessUtility(Node* parsetree, const char* queryString, Par } break; case T_AlterTableStmt: { AlterTableStmt* altertablestmt = (AlterTableStmt*)(parsetree); /* Audit alter table */ - if (altertablestmt->relkind == OBJECT_SEQUENCE) { + if (RELKIND_IS_SEQUENCE(altertablestmt->relkind)) { pgaudit_ddl_sequence(altertablestmt->relation->relname, queryString); } else { pgaudit_ddl_table(altertablestmt->relation->relname, queryString); diff --git a/src/gausskernel/process/tcop/autonomoustransaction.cpp b/src/gausskernel/process/tcop/autonomoustransaction.cpp index 6e78199b7..55fb68974 100644 --- a/src/gausskernel/process/tcop/autonomoustransaction.cpp +++ b/src/gausskernel/process/tcop/autonomoustransaction.cpp @@ -1,5 +1,6 @@ /* * Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors * * openGauss is licensed under Mulan PSL v2. * You can use this software according to the terms and conditions of the Mulan PSL v2. @@ -34,7 +35,7 @@ #include "utils/builtins.h" #include "utils/typcache.h" #include "storage/lmgr.h" - +#include "commands/user.h" #define MAX_LINESIZE 32767 extern bool PQsendQueryStart(PGconn *conn); @@ -96,6 +97,7 @@ void AutonomousSession::AttachSession(void) /* create a connection info with current database info */ char connInfo[MAX_CONNINFO_SIZE]; + char userName[NAMEDATALEN]; const char* dbName = get_database_name(u_sess->proc_cxt.MyDatabaseId); if (dbName == NULL) { ereport(ERROR, (errcode(ERRCODE_UNDEFINED_DATABASE), errmsg("database with OID %u does not exist", @@ -103,8 +105,9 @@ void AutonomousSession::AttachSession(void) } errno_t ret = snprintf_s(connInfo, sizeof(connInfo), sizeof(connInfo) - 1, - "dbname=%s port=%d application_name='autonomoustransaction'", - dbName, g_instance.attr.attr_network.PostPortNumber); + "dbname=%s port=%d host='localhost' application_name='autonomoustransaction' user=%s", + dbName, g_instance.attr.attr_network.PostPortNumber, + (char*)GetSuperUserName((char*)userName)); securec_check_ss_c(ret, "\0", "\0"); /* do the actual create session */ @@ -206,6 +209,9 @@ void CreateAutonomousSession(void) (void)MemoryContextSwitchTo(oldCxt); u_sess->SPI_cxt.autonomous_session->Init(); u_sess->SPI_cxt.autonomous_session->AttachSession(); + u_sess->SPI_cxt.autonomous_session->ExecSimpleQuery("set session_timeout = 0;", NULL, 0); + u_sess->SPI_cxt.autonomous_session->current_attach_sessionid = + u_sess->SPI_cxt.autonomous_session->ExecSimpleQuery("select pg_current_sessid();", NULL, 0); } else { if (!u_sess->SPI_cxt.autonomous_session->GetConnStatus() && !u_sess->SPI_cxt.autonomous_session->ReConnSession()) { @@ -444,9 +450,15 @@ int PQsendQueryAutonm(PGconn* conn, const char* query) #endif Oid currentId = GetCurrentUserId(); + uint64 sessionId = IS_THREAD_POOL_WORKER ? u_sess->session_id : t_thrd.proc_cxt.MyProcPid; + /* put 64bit sessionId in 32bit once time */ + uint32 sessionId_l32 = sessionId; + uint32 sessionId_h32 = sessionId >> 32; /* construct the outgoing Query message */ - if (pqPutMsgStart('u', false, conn) < 0 || pqPutInt((int)currentId, 4, conn) - || pqPuts(query, conn) < 0 || pqPutMsgEnd(conn) < 0) { + bool execFlag = pqPutMsgStart('u', false, conn) < 0 || pqPutInt((int)currentId, 4, conn) + || pqPutInt(sessionId_h32, 4, conn) || pqPutInt(sessionId_l32, 4, conn) + || pqPuts(query, conn) < 0 || pqPutMsgEnd(conn) < 0; + if (execFlag) { pqHandleSendFailure(conn); return 0; } diff --git a/src/gausskernel/process/tcop/dest.cpp b/src/gausskernel/process/tcop/dest.cpp index 66a57cd25..d5f974ef5 100644 --- a/src/gausskernel/process/tcop/dest.cpp +++ b/src/gausskernel/process/tcop/dest.cpp @@ -69,6 +69,13 @@ static DestReceiver debugtupDR = {debugtup, debugStartup, donothingCleanup, dono static DestReceiver spi_printtupDR = {spi_printtup, spi_dest_startup, donothingCleanup, donothingCleanup, DestSPI}; +void init_sess_dest(DestReceiver* initdonothingDR, DestReceiver* initdebugtupDR, DestReceiver* initspi_printtupDR) +{ + *initdonothingDR = donothingDR; + *initdebugtupDR = debugtupDR; + *initspi_printtupDR = spi_printtupDR; +} + /* Globally available receiver for DestNone */ DestReceiver* None_Receiver = &donothingDR; @@ -112,13 +119,15 @@ DestReceiver* CreateDestReceiver(CommandDest dest) return printtup_create_DR(dest); case DestNone: - return &donothingDR; + return u_sess->utils_cxt.donothingDR; case DestDebug: - return &debugtupDR; + u_sess->utils_cxt.debugtupDR->mydest = DestDebug; + return u_sess->utils_cxt.debugtupDR; case DestSPI: - return &spi_printtupDR; + u_sess->utils_cxt.spi_printtupDR->mydest = DestSPI; + return u_sess->utils_cxt.spi_printtupDR; case DestSPITupleAnalyze: return createAnalyzeSPIDestReceiver(dest); diff --git a/src/gausskernel/process/tcop/postgres.cpp b/src/gausskernel/process/tcop/postgres.cpp index ab8763c0a..8e26201f2 100755 --- a/src/gausskernel/process/tcop/postgres.cpp +++ b/src/gausskernel/process/tcop/postgres.cpp @@ -7,6 +7,7 @@ * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 2010-2012 Postgres-XC Development Group + * Portions Copyright (c) 2021, openGauss Contributors * * IDENTIFICATION * src/gausskernel/process/tcop/postgres.cpp @@ -45,6 +46,7 @@ #include "catalog/namespace.h" #include "catalog/pg_type.h" #include "catalog/pg_authid.h" +#include "catalog/pg_proc.h" #include "commands/async.h" #include "commands/matview.h" #include "commands/prepare.h" @@ -86,6 +88,7 @@ #include "storage/lmgr.h" #include "storage/proc.h" #include "storage/procsignal.h" +#include "storage/xlog_share_storage/xlog_share_storage.h" #include "storage/sinval.h" #include "tcop/fastpath.h" #include "tcop/pquery.h" @@ -210,6 +213,8 @@ typedef struct AttachInfoContext { #define PRINFT_DST_MAX_DOUBLE 64 #define MEMCPY_DST_NUM 4 +#define MAXSTRLEN ((1 << 11) - 1) + extern PgBackendStatus* GetMyBEEntry(void); extern THR_LOCAL bool g_pq_interrupt_happened; @@ -243,6 +248,16 @@ static void get_query_result(TupleTableSlot* slot, DestReceiver* self); */ typedef enum { QUERY_MESSAGE = 0, HYBRID_MESSAGE } MessageType; +/* For shared storage mode */ +typedef enum { + XLOG_COPY_NOT = 0, + XLOG_COPY_FROM_LOCAL, + XLOG_FORCE_COPY_FROM_LOCAL, + XLOG_COPY_FROM_SHARE +} XLogCopyMode; +static XLogCopyMode xlogCopyMode = XLOG_COPY_NOT; + + /* ---------------------------------------------------------------- * decls for routines only used in this file * ---------------------------------------------------------------- @@ -801,7 +816,6 @@ void client_read_ended(void) } } - /* * Do raw parsing (only). * @@ -827,16 +841,7 @@ List* pg_parse_query(const char* query_string, List** query_string_locationlist) PGSTAT_START_TIME_RECORD(); - List* (*parser_hook)(const char*, List**) = raw_parser; -#ifndef ENABLE_MULTIPLE_NODES - if (u_sess->attr.attr_sql.enable_custom_parser) { - int id = GetCustomParserId(); - if (id >= 0 && g_instance.raw_parser_hook[id] != NULL) { - parser_hook = (List* (*)(const char*, List**))g_instance.raw_parser_hook[id]; - } - } -#endif - raw_parsetree_list = parser_hook(query_string, query_string_locationlist); + raw_parsetree_list = raw_parser(query_string, query_string_locationlist); PGSTAT_END_TIME_RECORD(PARSE_TIME); @@ -849,10 +854,11 @@ List* pg_parse_query(const char* query_string, List** query_string_locationlist) List* new_list = (List*)copyObject(raw_parsetree_list); /* This checks both copyObject() and the equal() routines... */ - if (!equal(new_list, raw_parsetree_list)) + if (!equal(new_list, raw_parsetree_list)) { ereport(WARNING, (errmsg("copyObject() failed to produce an equal raw parse tree"))); - else + } else { raw_parsetree_list = new_list; + } } #endif @@ -2122,6 +2128,9 @@ static void exec_simple_query(const char* query_string, MessageType messageType, size_t query_string_len = 0; char** query_string_single = NULL; bool is_multistmt = false; + bool is_compl_sql = true; + bool savedisAllowCommitRollback = false; + bool needResetErrMsg = false; /* * @hdfs * When messageType is 1, we get hybridmessage. This message @@ -2310,9 +2319,9 @@ static void exec_simple_query(const char* query_string, MessageType messageType, * significant to PreventTransactionChain.) */ isTopLevel = (list_length(parsetree_list) == 1); - stp_retore_old_xact_stmt_state(isTopLevel || u_sess->is_autonomous_session); + stp_retore_old_xact_stmt_state(true); - if (isTopLevel != 1) + if (!isTopLevel) t_thrd.explain_cxt.explain_perf_mode = EXPLAIN_NORMAL; /* Apply for a new memory context for analyze and rewrite as well as pg_plan_queries */ @@ -2456,6 +2465,11 @@ static void exec_simple_query(const char* query_string, MessageType messageType, */ bool isCollect = checkAdivsorState() && checkParsetreeTag(parsetree); + /* Does not allow commit in pre setting scenario */ + is_compl_sql = CheckElementParsetreeTag(parsetree); + if (is_compl_sql) { + needResetErrMsg = stp_disable_xact_and_set_err_msg(&savedisAllowCommitRollback, STP_XACT_COMPL_SQL); + } /* * @hdfs * If we received a hybridmessage, we use sql_query_string to analyze and rewrite. @@ -2683,6 +2697,11 @@ static void exec_simple_query(const char* query_string, MessageType messageType, CleanHotkeyCandidates(true); + /* restore is_allow_commit_rollback */ + if (is_compl_sql) { + stp_reset_xact_state_and_err_msg(savedisAllowCommitRollback, needResetErrMsg); + } + if (IsA(parsetree, TransactionStmt)) { /* * If this was a transaction control statement, commit it. We will @@ -2723,9 +2742,6 @@ static void exec_simple_query(const char* query_string, MessageType messageType, /* Reset the single_shard_stmt flag */ u_sess->exec_cxt.single_shard_stmt = false; - /* Reset store procedure's session variables. */ - stp_reset_opt_values(); - MemoryContextDelete(OptimizerContext); /* @@ -2811,10 +2827,8 @@ static void exec_simple_query(const char* query_string, MessageType messageType, static void exec_plan_with_params(StringInfo input_message) { CommandDest dest = (CommandDest)t_thrd.postgres_cxt.whereToSendOutput; - MemoryContext oldcontext; bool save_log_statement_stats = u_sess->attr.attr_common.log_statement_stats; - const char* plan_string = NULL; PlannedStmt* planstmt = NULL; Node* node = NULL; @@ -2840,10 +2854,10 @@ static void exec_plan_with_params(StringInfo input_message) start_xact_command(); /* Switch back to message context */ - oldcontext = MemoryContextSwitchTo(t_thrd.mem_cxt.msg_mem_cxt); + MemoryContext oldcontext = MemoryContextSwitchTo(t_thrd.mem_cxt.msg_mem_cxt); /* get plan */ - plan_string = pq_getmsgstring(input_message); + const char* plan_string = pq_getmsgstring(input_message); if (strlen(plan_string) > SECUREC_MEM_MAX_LEN) { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("Too long plan_string."))); @@ -3017,6 +3031,9 @@ static void exec_plan_with_params(StringInfo input_message) */ params->params[paramno].pflags = PARAM_FLAG_CONST; params->params[paramno].ptype = ptype; + params->params[paramno].tableOfIndexType = InvalidOid; + params->params[paramno].tableOfIndex = NULL; + params->params[paramno].isnestedtable = false; } } else params = NULL; @@ -3165,6 +3182,7 @@ static void exec_parse_message(const char* query_string, /* string to execute */ const char* stmt_name, /* name for prepared stmt */ Oid* paramTypes, /* parameter types */ char** paramTypeNames, /* parameter type names */ + const char* paramModes, int numParams) /* number of parameters */ { MemoryContext unnamed_stmt_context = NULL; @@ -3278,6 +3296,18 @@ static void exec_parse_message(const char* query_string, /* string to execute */ } } } +#ifdef ENABLE_MULTIPLE_NODES + /* in smooth open gpc status, when dn get same prepare statement saved in this session, + * just skip it, don't throw error */ + if (IS_PGXC_DATANODE && !ENABLE_GPC && IN_GPC_GRAYRELEASE_CHANGE && is_named) { + PreparedStatement* ps = FetchPreparedStatement(stmt_name, false, false); + if (ps != NULL && strcmp(ps->plansource->query_string, query_string) == 0) { + goto pass_parsing; + } else if (ps != NULL) { + DropPreparedStatement(stmt_name, false); + } + } +#endif /* * Switch to appropriate context for constructing parsetrees. @@ -3540,7 +3570,7 @@ static void exec_parse_message(const char* query_string, /* string to execute */ MemoryContextSetParent(psrc->context, u_sess->temp_mem_cxt); /* Finish filling in the CachedPlanSource */ - CompleteCachedPlan(psrc, querytree_list, unnamed_stmt_context, paramTypes, numParams, NULL, NULL, + CompleteCachedPlan(psrc, querytree_list, unnamed_stmt_context, paramTypes, paramModes, numParams, NULL, NULL, 0, /* default cursor options */ true, stmt_name, single_exec_node, is_read_only); /* fixed result */ @@ -3808,6 +3838,8 @@ static int getSingleNodeIdx(StringInfo input_message, CachedPlanSource* psrc, co */ params->params[paramno].pflags = PARAM_FLAG_CONST; params->params[paramno].ptype = ptype; + params->params[paramno].tableOfIndexType = InvalidOid; + params->params[paramno].tableOfIndex = NULL; /* Reset the compatible illegal chars import flag */ u_sess->mb_cxt.insertValuesBind_compatible_illegal_chars = false; @@ -4078,6 +4110,9 @@ void exec_get_ddl_params(StringInfo input_message) */ params->params[paramno].pflags = PARAM_FLAG_CONST; params->params[paramno].ptype = ptype; + params->params[paramno].tableOfIndexType = InvalidOid; + params->params[paramno].tableOfIndex = NULL; + params->params[paramno].isnestedtable = false; } } else { params = NULL; @@ -4481,6 +4516,13 @@ static void exec_bind_message(StringInfo input_message) for (paramno = 0; paramno < numParams; paramno++) { Oid ptype = psrc->param_types[paramno]; +#ifndef ENABLE_MULTIPLE_NODES + char* pmode = NULL; + if (psrc->param_modes != NULL) { + pmode = &(psrc->param_modes[paramno]); + } +#endif + int32 plength; Datum pval; bool isNull = false; @@ -4552,8 +4594,15 @@ static void exec_bind_message(StringInfo input_message) else pstring = pg_client_to_server(pbuf.data, plength); +#ifndef ENABLE_MULTIPLE_NODES + if (pmode == NULL || *pmode != PROARGMODE_OUT || !enable_out_param_override()) { + pval = OidInputFunctionCall(typinput, pstring, typioparam, -1); + } else { + pval = (Datum)0; + } +#else pval = OidInputFunctionCall(typinput, pstring, typioparam, -1); - +#endif /* Free result of encoding conversion, if any */ if (pstring != NULL && pstring != pbuf.data) pfree(pstring); @@ -4573,7 +4622,16 @@ static void exec_bind_message(StringInfo input_message) else bufptr = &pbuf; + +#ifndef ENABLE_MULTIPLE_NODES + if (pmode == NULL || *pmode != PROARGMODE_OUT || !enable_out_param_override()) { + pval = OidReceiveFunctionCall(typreceive, bufptr, typioparam, -1); + } else { + pval = (Datum)0; + } +#else pval = OidReceiveFunctionCall(typreceive, bufptr, typioparam, -1); +#endif /* Trouble if it didn't eat the whole buffer */ if (!isNull && pbuf.cursor != pbuf.len) @@ -4592,6 +4650,9 @@ static void exec_bind_message(StringInfo input_message) } params->params[paramno].value = pval; +#ifndef ENABLE_MULTIPLE_NODES + isNull = isNull || (enable_out_param_override() && pmode != NULL && *pmode == PROARGMODE_OUT); +#endif params->params[paramno].isnull = isNull; /* @@ -4600,6 +4661,9 @@ static void exec_bind_message(StringInfo input_message) */ params->params[paramno].pflags = PARAM_FLAG_CONST; params->params[paramno].ptype = ptype; + params->params[paramno].isnestedtable = false; + params->params[paramno].tableOfIndexType = InvalidOid; + params->params[paramno].tableOfIndex = NULL; /* Reset the compatible illegal chars import flag */ u_sess->mb_cxt.insertValuesBind_compatible_illegal_chars = false; @@ -6565,7 +6629,7 @@ void process_postgres_switches(int argc, char* argv[], GucContext ctx, const cha * the common help() function in main/main.c. */ initOptParseContext(&optCtxt); - while ((flag = getopt_r(argc, argv, "A:B:bc:C:D:d:EeFf:h:ijk:lN:nOo:Pp:r:S:sTt:v:W:-:", &optCtxt)) != -1) { + while ((flag = getopt_r(argc, argv, "A:B:bc:C:D:d:EeFf:h:ijk:lN:nOo:Pp:r:S:sTt:v:W:g:Q:-:", &optCtxt)) != -1) { switch (flag) { case 'A': SetConfigOption("debug_assertions", optCtxt.optarg, ctx, gucsource); @@ -6612,7 +6676,9 @@ void process_postgres_switches(int argc, char* argv[], GucContext ctx, const cha if (!set_plan_disabling_options(optCtxt.optarg, ctx, gucsource)) errs++; break; - + case 'g': + SetConfigOption("xlog_file_path", optCtxt.optarg, ctx, gucsource); + break; case 'h': SetConfigOption("listen_addresses", optCtxt.optarg, ctx, gucsource); break; @@ -6657,7 +6723,15 @@ void process_postgres_switches(int argc, char* argv[], GucContext ctx, const cha case 'p': SetConfigOption("port", optCtxt.optarg, ctx, gucsource); break; - + case 'Q': + if (optCtxt.optarg != NULL && strcmp(optCtxt.optarg, "copy_from_local") == 0) { + xlogCopyMode = XLOG_COPY_FROM_LOCAL; + } else if (optCtxt.optarg != NULL && strcmp(optCtxt.optarg, "force_copy_from_local") == 0) { + xlogCopyMode = XLOG_FORCE_COPY_FROM_LOCAL; + } else if (optCtxt.optarg != NULL && strcmp(optCtxt.optarg, "copy_from_share") == 0) { + xlogCopyMode = XLOG_COPY_FROM_SHARE; + } + break; case 'r': /* send output (stdout and stderr) to the given file */ if (secure) @@ -7219,6 +7293,29 @@ int PostgresMain(int argc, char* argv[], const char* dbname, const char* usernam /* Early initialization */ BaseInit(); + if (!IsUnderPostmaster) { + ShareStorageInit(); + } + + if (!IsUnderPostmaster && xlogCopyMode != XLOG_COPY_NOT) { + if (g_instance.attr.attr_storage.xlog_file_path == NULL) { + proc_exit(1); + } + bool copySuccess = false; + if (xlogCopyMode == XLOG_COPY_FROM_LOCAL) { + copySuccess = XLogOverwriteFromLocal(); + } else if (xlogCopyMode == XLOG_FORCE_COPY_FROM_LOCAL) { + copySuccess = XLogOverwriteFromLocal(true); + } else if (xlogCopyMode == XLOG_COPY_FROM_SHARE) { + copySuccess = XLogOverwriteFromShare(); + } + if (copySuccess) { + proc_exit(0); + } else { + proc_exit(1); + } + } + #ifdef ENABLE_MULTIPLE_NODES /* PGXC_COORD */ if (IS_PGXC_COORDINATOR && IsPostmasterEnvironment) { /* If we exit, first try and clean connections and send to pool */ @@ -7262,6 +7359,12 @@ int PostgresMain(int argc, char* argv[], const char* dbname, const char* usernam } #endif +#ifndef ENABLE_MULTIPLE_NODES + if (!ENABLE_THREAD_POOL) { + on_shmem_exit(PlDebugerCleanUp, 0); + } +#endif + /* * Create a per-backend PGPROC struct in shared memory, except in the * EXEC_BACKEND case where this was done in SubPostmasterMain. We must do @@ -7479,9 +7582,6 @@ int PostgresMain(int argc, char* argv[], const char* dbname, const char* usernam gstrace_tryblock_exit(true, oldTryCounter); Assert(t_thrd.proc->dw_pos == -1); - /* reset STP global valuebles */ - stp_reset_opt_values(); - (void)pgstat_report_waitstatus(STATE_WAIT_UNDEFINED); t_thrd.pgxc_cxt.GlobalNetInstr = NULL; /* output the memory tracking information when error happened */ @@ -7497,6 +7597,7 @@ int PostgresMain(int argc, char* argv[], const char* dbname, const char* usernam /* Since not using PG_TRY, must reset error stack by hand */ t_thrd.log_cxt.error_context_stack = NULL; + t_thrd.log_cxt.call_stack = NULL; /* reset buffer strategy flag */ t_thrd.storage_cxt.is_btree_split = false; @@ -7584,11 +7685,10 @@ int PostgresMain(int argc, char* argv[], const char* dbname, const char* usernam pfree_ext(t_thrd.wlm_cxt.collect_info->sdetail.msg); } } - u_sess->plsql_cxt.plpgsql_curr_compile = NULL; - + u_sess->plsql_cxt.curr_compile_context = NULL; u_sess->pcache_cxt.gpc_in_batch = false; u_sess->pcache_cxt.gpc_in_try_store = false; - + u_sess->plsql_cxt.have_error = false; OpFusion::tearDown(u_sess->exec_cxt.CurrentOpFusionObj); /* init pbe execute status when long jump */ u_sess->xact_cxt.pbe_execute_complete = true; @@ -7596,6 +7696,8 @@ int PostgresMain(int argc, char* argv[], const char* dbname, const char* usernam /* init row trigger shipping status when long jump */ u_sess->tri_cxt.exec_row_trigger_on_datanode = false; + u_sess->statement_cxt.executer_run_level = 0; + /* release operator-level hash table in memory */ releaseExplainTable(); @@ -7610,8 +7712,12 @@ int PostgresMain(int argc, char* argv[], const char* dbname, const char* usernam /* * Abort the current transaction in order to recover. */ - AbortCurrentTransaction(); + if (u_sess->is_autonomous_session) { + AbortOutOfAnyTransaction(); + } else { + AbortCurrentTransaction(); + } /* Notice: at the most time it isn't necessary to call because * all the LWLocks are released in AbortCurrentTransaction(). * but in some rare exception not in one transaction (for @@ -7689,6 +7795,7 @@ int PostgresMain(int argc, char* argv[], const char* dbname, const char* usernam u_sess->pcache_cxt.cur_stmt_name = NULL; /* Now we can allow interrupts again */ RESUME_INTERRUPTS(); + } oldTryCounter = gstrace_tryblock_entry(&curTryCounter); @@ -7764,6 +7871,13 @@ int PostgresMain(int argc, char* argv[], const char* dbname, const char* usernam MemoryContextResetAndDeleteChildren(u_sess->stat_cxt.hotkeySessContext); u_sess->stat_cxt.hotkeyCandidates = NIL; + /* reset plpgsql compile flag */ + u_sess->plsql_cxt.compile_context_list = NULL; + u_sess->plsql_cxt.curr_compile_context = NULL; + u_sess->plsql_cxt.compile_status = NONE_STATUS; + + u_sess->statement_cxt.executer_run_level = 0; + initStringInfo(&input_message); t_thrd.postgres_cxt.debug_query_string = NULL; t_thrd.postgres_cxt.g_NoAnalyzeRelNameList = NIL; @@ -7834,8 +7948,20 @@ int PostgresMain(int argc, char* argv[], const char* dbname, const char* usernam pgstat_report_waitstatus(STATE_WAIT_UNDEFINED); pgstat_report_queryid(0); - if (IS_CLIENT_CONN_VALID(u_sess->proc_cxt.MyProcPort)) + /* + * If connection to client is lost, we do not need to send message to client. + */ + if (IS_CLIENT_CONN_VALID(u_sess->proc_cxt.MyProcPort) && (!t_thrd.int_cxt.ClientConnectionLost)) { + /* + * before send 'Z' to frontend, we should check if INTERRUPTS happends or not. + * In SyncRepWaitForLSN() function, take HOLD_INTERRUPTS() to prevent interrupt happending and set + * t_thrd.postgres_cxt.whereToSendOutput to 'DestNone' when t_thrd.int_cxt.ProcDiePending is true. Then + * this session will not send 'Z' message to frontend and will not report error if it not check + * interrupt. So frontend will be reveiving message forever and do nothing, which is wrong. + */ + CHECK_FOR_INTERRUPTS(); ReadyForQuery((CommandDest)t_thrd.postgres_cxt.whereToSendOutput); + } #ifdef ENABLE_MULTIPLE_NODES /* * Helps us catch any problems where we did not send down a snapshot @@ -7880,7 +8006,7 @@ int PostgresMain(int argc, char* argv[], const char* dbname, const char* usernam if (IS_THREAD_POOL_WORKER) { t_thrd.threadpool_cxt.worker->WaitMission(); - if (!g_instance.archive_obs_cxt.in_switchover) { + if (!g_instance.archive_obs_cxt.in_switchover && !g_instance.streaming_dr_cxt.isInSwitchover) { Assert(u_sess->status != KNL_SESS_FAKE); } } @@ -7994,6 +8120,9 @@ int PostgresMain(int argc, char* argv[], const char* dbname, const char* usernam PTFastQueryShippingStore = true; u_sess->opt_cxt.is_under_append_plan = false; u_sess->attr.attr_sql.explain_allow_multinode = false; + + /* Reset store procedure's session variables. */ + stp_reset_opt_values(); MemoryContext oldMemory = MemoryContextSwitchTo(THREAD_GET_MEM_CXT_GROUP(MEMORY_CONTEXT_EXECUTOR)); CodeGenThreadInitialize(); @@ -8102,6 +8231,7 @@ int PostgresMain(int argc, char* argv[], const char* dbname, const char* usernam { u_sess->is_autonomous_session = true; Oid currentUserId = pq_getmsgint(&input_message, 4); + u_sess->autonomous_parent_sessionid = pq_getmsgint64(&input_message); if (currentUserId != GetCurrentUserId()) { /* Set Session Authorization */ ResourceOwner currentOwner = NULL; @@ -8276,7 +8406,7 @@ int PostgresMain(int argc, char* argv[], const char* dbname, const char* usernam (void)MemoryContextSwitchTo(oldcontext); t_thrd.postgres_cxt.isInResetUserName = true; - PostgresResetUsernamePgoption(u_sess->proc_cxt.MyProcPort->user_name); + PostgresResetUsernamePgoption(u_sess->proc_cxt.MyProcPort->user_name, true); t_thrd.postgres_cxt.isInResetUserName = false; } @@ -8498,6 +8628,7 @@ int PostgresMain(int argc, char* argv[], const char* dbname, const char* usernam const char* query_string = NULL; int numParams; Oid* paramTypes = NULL; + char* paramModes = NULL; char** paramTypeNames = NULL; /* DN: get the node id. */ @@ -8528,13 +8659,39 @@ int PostgresMain(int argc, char* argv[], const char* dbname, const char* usernam paramTypes[i] = pq_getmsgint(&input_message, 4); } } - pq_getmsgend(&input_message); + #ifdef USE_RETRY_STUB if (IsStmtRetryEnabled()) u_sess->exec_cxt.RetryController->stub_.StartOneStubTest(firstchar); #endif + +#ifndef ENABLE_MULTIPLE_NODES + if (enable_out_param_override()) { + int numModes = pq_getmsgint(&input_message, 2); + if (numModes > 0) { + if (numModes != numParams) { + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("param type num %d does't equal to param mode num %d.", numParams, numModes))); + } + + paramModes = (char*)palloc(numModes * sizeof(char)); + for (int i = 0; i < numParams; i++) { + const char *mode = pq_getmsgbytes(&input_message, 1); + if (*mode != PROARGMODE_IN + && *mode != PROARGMODE_OUT + && *mode != PROARGMODE_INOUT) { + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("The %dth param mode %s does't exist.", i, mode))); + } + paramModes[i] = *mode; + } + } + } +#endif + + pq_getmsgend(&input_message); statement_init_metric_context(); - exec_parse_message(query_string, stmt_name, paramTypes, paramTypeNames, numParams); + exec_parse_message(query_string, stmt_name, paramTypes, paramTypeNames, paramModes, numParams); statement_commit_metirc_context(); /* @@ -9412,28 +9569,31 @@ int PostgresMain(int argc, char* argv[], const char* dbname, const char* usernam ereport( ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("Only cn can receive the sequence update"))); + + int num = pq_getmsgint(&input_message, 4); + for (int i = 0; i < num; i++) { + int64 result; + char* dbname = NULL; + char* schemaname = NULL; + char* seqname = NULL; + int result_signed; + result_signed = pq_getmsgbyte(&input_message); + result = pq_getmsgint64(&input_message); + if (result_signed == '-') { + result *= -1; + } - int64 result; - char* dbname = NULL; - char* schemaname = NULL; - char* seqname = NULL; - int result_signed; - result_signed = pq_getmsgbyte(&input_message); - result = pq_getmsgint64(&input_message); - if (result_signed == '-') { - result *= -1; + dbname = (char*)pq_getmsgstring(&input_message); + schemaname = (char*)pq_getmsgstring(&input_message); + seqname = (char*)pq_getmsgstring(&input_message); + List* namelist = NIL; + + namelist = lappend(namelist, makeString(dbname)); + namelist = lappend(namelist, makeString(schemaname)); + namelist = lappend(namelist, makeString(seqname)); + processUpdateSequenceMsg(namelist, result); } - - dbname = (char*)pq_getmsgstring(&input_message); - schemaname = (char*)pq_getmsgstring(&input_message); - seqname = (char*)pq_getmsgstring(&input_message); - pq_getmsgend(&input_message); - List* namelist = NIL; - - namelist = lappend(namelist, makeString(dbname)); - namelist = lappend(namelist, makeString(schemaname)); - namelist = lappend(namelist, makeString(seqname)); - processUpdateSequenceMsg(namelist, result); + flushSequenceMsg(); } break; @@ -9707,14 +9867,14 @@ static void ForceModifyInitialPwd(const char* query_string, List* parsetree_list if (strcasecmp(current_user_name, alter_name) != 0) ereport(ERROR, (errcode(ERRCODE_INITIAL_PASSWORD_NOT_MODIFIED), - errmsg("Please use \"ALTER ROLE user_name PASSWORD 'password';\" " - "to set the password of user %s before other operation!", + errmsg("Please use \"ALTER ROLE \"%s\" PASSWORD 'password';\" " + "to set the password of the user before other operations!", current_user_name))); } else ereport(ERROR, (errcode(ERRCODE_INITIAL_PASSWORD_NOT_MODIFIED), - errmsg("Please use \"ALTER ROLE user_name PASSWORD 'password';\" " - "to set the password of user %s before other operation!", + errmsg("Please use \"ALTER ROLE \"%s\" PASSWORD 'password';\" " + "to set the password of the user before other operations!", current_user_name))); } } @@ -10241,7 +10401,7 @@ static void exec_one_in_batch(CachedPlanSource* psrc, ParamListInfo params, int if (*tmpCxt != NULL) MemoryContextDelete(*tmpCxt); *gpcCopyStmts = CopyLocalStmt(psrc->gplan->stmt_list, u_sess->temp_mem_cxt, tmpCxt); - } else if (*gpcCopyStmts == NULL && psrc->gpc.status.InShareTable()) { + } else if (*gpcCopyStmts == NULL && psrc->gpc.status.InShareTable() && psrc->gplan) { /* copy for shared plan */ if (*tmpCxt != NULL) MemoryContextDelete(*tmpCxt); @@ -11048,6 +11208,9 @@ static void exec_batch_bind_execute(StringInfo input_message) */ params->params[paramno].pflags = PARAM_FLAG_CONST; params->params[paramno].ptype = ptype; + params->params[paramno].tableOfIndexType = InvalidOid; + params->params[paramno].tableOfIndex = NULL; + params->params[paramno].isnestedtable = false; /* Reset the compatible illegal chars import flag */ u_sess->mb_cxt.insertValuesBind_compatible_illegal_chars = false; @@ -11274,10 +11437,10 @@ static void exec_batch_bind_execute(StringInfo input_message) exec_one_in_batch(psrc, params_set[i], numRFormats, rformats, (i == 0) ? send_DP_msg : false, dest, completionTag, stmt_name, ©edStmts, &tmpCxt, pstmt); + u_sess->pcache_cxt.gpc_in_batch = true; if (ENABLE_GPC && stmt_name[0] != '\0') { #ifdef ENABLE_MULTIPLE_NODES psrc = IS_PGXC_DATANODE ? u_sess->pcache_cxt.cur_stmt_psrc : pstmt->plansource; - u_sess->pcache_cxt.gpc_in_batch = true; #else psrc = pstmt->plansource; #endif @@ -11293,10 +11456,10 @@ static void exec_batch_bind_execute(StringInfo input_message) exec_one_in_batch(psrc, params_set[i], numRFormats, rformats, (i == 0) ? send_DP_msg : false, dest, completionTag, stmt_name, ©edStmts, &tmpCxt, pstmt); + u_sess->pcache_cxt.gpc_in_batch = true; if (ENABLE_GPC && stmt_name[0] != '\0') { #ifdef ENABLE_MULTIPLE_NODES psrc = IS_PGXC_DATANODE ? u_sess->pcache_cxt.cur_stmt_psrc : pstmt->plansource; - u_sess->pcache_cxt.gpc_in_batch = true; #else psrc = pstmt->plansource; #endif diff --git a/src/gausskernel/process/tcop/pquery.cpp b/src/gausskernel/process/tcop/pquery.cpp index 46ffff514..f4e374829 100644 --- a/src/gausskernel/process/tcop/pquery.cpp +++ b/src/gausskernel/process/tcop/pquery.cpp @@ -6,6 +6,7 @@ * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * IDENTIFICATION * src/gausskernel/process/tcop/pquery.cpp @@ -1113,6 +1114,10 @@ bool PortalRun( WLMInitQueryPlan(queryDesc); dywlm_client_manager(queryDesc); } + /* save flag for nest plpgsql compile */ + PLpgSQL_compile_context* save_compile_context = u_sess->plsql_cxt.curr_compile_context; + int save_compile_list_length = list_length(u_sess->plsql_cxt.compile_context_list); + int save_compile_status = u_sess->plsql_cxt.compile_status; PG_TRY(); { @@ -1198,15 +1203,19 @@ bool PortalRun( MarkPortalFailed(portal); /* Restore global vars and propagate error */ - if (saveMemoryContext == saveTopTransactionContext) + if (saveMemoryContext == saveTopTransactionContext || + saveTopTransactionContext != u_sess->top_transaction_mem_cxt) { MemoryContextSwitchTo(u_sess->top_transaction_mem_cxt); - else + } else if (ResourceOwnerIsValid(saveResourceOwner)) { MemoryContextSwitchTo(saveMemoryContext); + } ActivePortal = saveActivePortal; - if (saveResourceOwner == saveTopTransactionResourceOwner) + if (saveResourceOwner == saveTopTransactionResourceOwner || + saveTopTransactionResourceOwner != t_thrd.utils_cxt.TopTransactionResourceOwner) { t_thrd.utils_cxt.CurrentResourceOwner = t_thrd.utils_cxt.TopTransactionResourceOwner; - else + } else if (ResourceOwnerIsValid(saveResourceOwner)) { t_thrd.utils_cxt.CurrentResourceOwner = saveResourceOwner; + } t_thrd.mem_cxt.portal_mem_cxt = savePortalContext; if (ENABLE_WORKLOAD_CONTROL) { @@ -1226,6 +1235,12 @@ bool PortalRun( pfree_ext(t_thrd.wlm_cxt.collect_info->sdetail.msg); } } + ereport(DEBUG3, (errmodule(MOD_NEST_COMPILE), errcode(ERRCODE_LOG), + errmsg("%s clear curr_compile_context because of error.", __func__))); + /* reset nest plpgsql compile */ + u_sess->plsql_cxt.curr_compile_context = save_compile_context; + u_sess->plsql_cxt.compile_status = save_compile_status; + clearCompileContextList(save_compile_list_length); PG_RE_THROW(); } @@ -1245,15 +1260,23 @@ bool PortalRun( } } - if (saveMemoryContext == saveTopTransactionContext) + /* + * switch to topTransaction if (1) it is TopTransactionContext, (2) Top transaction was changed. + * While subtransaction was terminated inside statement running, its ResourceOwner should be reserved. + */ + if (saveMemoryContext == saveTopTransactionContext || + saveTopTransactionContext != u_sess->top_transaction_mem_cxt) { MemoryContextSwitchTo(u_sess->top_transaction_mem_cxt); - else + } else if (ResourceOwnerIsValid(saveResourceOwner)) { MemoryContextSwitchTo(saveMemoryContext); + } ActivePortal = saveActivePortal; - if (saveResourceOwner == saveTopTransactionResourceOwner) + if (saveResourceOwner == saveTopTransactionResourceOwner || + saveTopTransactionResourceOwner != t_thrd.utils_cxt.TopTransactionResourceOwner) { t_thrd.utils_cxt.CurrentResourceOwner = t_thrd.utils_cxt.TopTransactionResourceOwner; - else + } else if (ResourceOwnerIsValid(saveResourceOwner)) { t_thrd.utils_cxt.CurrentResourceOwner = saveResourceOwner; + } t_thrd.mem_cxt.portal_mem_cxt = savePortalContext; if (portal->strategy != PORTAL_MULTI_QUERY) { @@ -1776,9 +1799,11 @@ static void PortalRunMulti( combine.data[0] = '\0'; #endif + AssertEreport(PortalIsValid(portal), MOD_EXECUTOR, "portal not valid"); + bool force_local_snapshot = false; - if ((portal!= NULL) && (portal->cplan != NULL)) { + if (portal->cplan != NULL) { /* copy over the single_shard_stmt into local variable force_local_snapshot */ force_local_snapshot = portal->cplan->single_shard_stmt; } diff --git a/src/gausskernel/process/tcop/stmt_retry.cpp b/src/gausskernel/process/tcop/stmt_retry.cpp index 39bbf799d..3e0279a61 100644 --- a/src/gausskernel/process/tcop/stmt_retry.cpp +++ b/src/gausskernel/process/tcop/stmt_retry.cpp @@ -1,5 +1,6 @@ /* * Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors * * openGauss is licensed under Mulan PSL v2. * You can use this software according to the terms and conditions of the Mulan PSL v2. @@ -259,7 +260,7 @@ bool IsStmtRetryCapable(StatementRetryController* controller, bool is_extend_que } if (!bret) { - char* ecode_str = unpack_sql_state(sqlerrcode); + char* ecode_str = plpgsql_get_sqlstate(sqlerrcode); bool valid_ecode = IsStmtNeedRetryByErrCode(ecode_str, elevel); bool is_transblock = IsInTransactionChain(true); bool is_unsupported_query = controller->is_unsupported_query_type; @@ -791,7 +792,7 @@ void StatementRetryStub::ECodeStubTest(void) on_stub_test = true; int ecode = ecode_marker[ecode_pos++]; - char* ecode_str = unpack_sql_state(ecode); + char* ecode_str = plpgsql_get_sqlstate(ecode); ereport(ERROR, (errmodule(MOD_CN_RETRY), errcode(ecode), @@ -810,7 +811,7 @@ void StatementRetryStub::ECodeValidate(void) int sqlerrcode; getElevelAndSqlstate(&elevel, &sqlerrcode); - char* ecode_str = unpack_sql_state(sqlerrcode); + char* ecode_str = plpgsql_get_sqlstate(sqlerrcode); if (IsStmtNeedRetryByErrCode(sqlerrcode, elevel)) { ereport(LOG, (errmodule(MOD_CN_RETRY), errmsg("%s catch error pass %s", STUB_PRINT_PREFIX, ecode_str))); } else { diff --git a/src/gausskernel/process/tcop/utility.cpp b/src/gausskernel/process/tcop/utility.cpp index 8dd8b4e49..048c79933 100755 --- a/src/gausskernel/process/tcop/utility.cpp +++ b/src/gausskernel/process/tcop/utility.cpp @@ -108,6 +108,8 @@ #include "db4ai/create_model.h" #include "gs_ledger/userchain.h" #include "gs_ledger/ledger_utils.h" +#include "libpq/libpq.h" + #ifdef ENABLE_MULTIPLE_NODES #include "pgxc/pgFdwRemote.h" #include "pgxc/globalStatistic.h" @@ -138,7 +140,7 @@ #include "catalog/pgxc_node.h" #include "workload/workload.h" #include "streaming/init.h" -#include "replication/obswalreceiver.h" +#include "replication/archive_walreceiver.h" static RemoteQueryExecType ExecUtilityFindNodes(ObjectType object_type, Oid rel_id, bool* is_temp); static RemoteQueryExecType exec_utility_find_nodes_relkind(Oid rel_id, bool* is_temp); @@ -156,6 +158,9 @@ static ExecNodes* assign_utility_stmt_exec_nodes(Node* parse_tree); #endif +static void TransformLoadDataToCopy(LoadStmt* stmt); + + static void add_remote_query_4_alter_stmt(bool is_first_node, AlterTableStmt* atstmt, const char* query_string, List** stmts, char** drop_seq_string, ExecNodes** exec_nodes); @@ -188,6 +193,8 @@ extern void ts_check_feature_disable(); /* only check the case where the vacuum list just contains one temp object */ static bool IsAllTempObjectsInVacuumStmt(Node* parsetree); +static int64 getCopySequenceMaxval(const char *nspname, const char *relname, const char *colname); +static int64 getCopySequenceCountval(const char *nspname, const char *relname); /* the hash value of extension script */ #define POSTGIS_VERSION_NUM 2 @@ -198,6 +205,8 @@ static bool IsAllTempObjectsInVacuumStmt(Node* parsetree); #define BIG_MEM_RATIO 1.2 #define SMALL_MEM_RATIO 1.1 +static const int LOADER_COL_BUF_CNT = 5; + Oid GetNamespaceIdbyRelId(const Oid relid) { HeapTuple tuple = SearchSysCache1(RELOID, ObjectIdGetDatum(relid)); @@ -608,7 +617,7 @@ static bool DropObjectsInSameNodeGroup(DropStmt* stmt) goid = GetFunctionNodeGroupByFuncid(address.objectId); if (!OidIsValid(goid)) goid = ins_group_oid; - } else if (object_type == OBJECT_SEQUENCE) { + } else if (OBJECT_IS_SEQUENCE(object_type)) { Oid tableId = InvalidOid; int32 colId; if (!sequenceIsOwned(address.objectId, &tableId, &colId)) @@ -1497,7 +1506,8 @@ bool isAllTempObjects(Node* parse_tree, const char* query_string, bool sent_to_r case OBJECT_TABLE: case OBJECT_VIEW: case OBJECT_CONTQUERY: - case OBJECT_SEQUENCE: { + case OBJECT_SEQUENCE: + case OBJECT_LARGE_SEQUENCE: { bool is_all_temp = false; RemoteQueryExecType exec_type = EXEC_ON_ALL_NODES; DropStmt* new_stmt = (DropStmt*)copyObject(parse_tree); @@ -2199,6 +2209,7 @@ void CreateCommand(CreateStmt *parse_tree, const char *query_string, ParamListIn u_sess->catalog_cxt.setCurCreateSchema = false; pfree_ext(u_sess->catalog_cxt.curCreateSchema); } + list_free_ext(stmts); } void ReindexCommand(ReindexStmt* stmt, bool is_top_level) @@ -2719,7 +2730,7 @@ void standard_ProcessUtility(Node* parse_tree, const char* query_string, ParamLi case TRANS_STMT_RELEASE: RequireTransactionChain(is_top_level, "RELEASE SAVEPOINT"); - ReleaseSavepoint(stmt->options); + ReleaseSavepoint(GetSavepointName(stmt->options), false); #ifdef ENABLE_DISTRIBUTE_TEST /* CN send xid for remote nodes for it assignning parentxid when need. */ @@ -2754,7 +2765,7 @@ void standard_ProcessUtility(Node* parse_tree, const char* query_string, ParamLi case TRANS_STMT_ROLLBACK_TO: RequireTransactionChain(is_top_level, "ROLLBACK TO SAVEPOINT"); - RollbackToSavepoint(stmt->options); + RollbackToSavepoint(GetSavepointName(stmt->options), false); #ifdef ENABLE_DISTRIBUTE_TEST if (IS_PGXC_COORDINATOR && !IsConnFromCoord()) { @@ -3193,6 +3204,7 @@ void standard_ProcessUtility(Node* parse_tree, const char* query_string, ParamLi } /* fall through */ case OBJECT_SEQUENCE: + case OBJECT_LARGE_SEQUENCE: case OBJECT_VIEW: case OBJECT_CONTQUERY: #ifdef PGXC @@ -4461,6 +4473,29 @@ void standard_ProcessUtility(Node* parse_tree, const char* query_string, ParamLi } } break; + case T_TableOfTypeStmt: /* CREATE TYPE AS TABLE OF */ + { + TableOfTypeStmt* stmt = (TableOfTypeStmt*)parse_tree; + + if (IS_PGXC_COORDINATOR) { + char* first_exec_node = find_first_exec_cn(); + bool is_first_node = (strcmp(first_exec_node, g_instance.attr.attr_common.PGXCNodeName) == 0); + + if (u_sess->attr.attr_sql.enable_parallel_ddl && !is_first_node) { + ExecUtilityStmtOnNodes_ParallelDDLMode( + query_string, NULL, sent_to_remote, false, EXEC_ON_COORDS, false, first_exec_node); + DefineTableOfType(stmt); + ExecUtilityStmtOnNodes_ParallelDDLMode( + query_string, NULL, sent_to_remote, false, EXEC_ON_DATANODES, false, first_exec_node); + } else { + DefineTableOfType(stmt); + ExecUtilityStmtOnNodes(query_string, NULL, sent_to_remote, false, EXEC_ON_ALL_NODES, false); + } + } else { + DefineTableOfType(stmt); + } + } break; + case T_CreateEnumStmt: /* CREATE TYPE AS ENUM */ { #ifdef PGXC @@ -4907,7 +4942,7 @@ void standard_ProcessUtility(Node* parse_tree, const char* query_string, ParamLi } } - DefineSequence((CreateSeqStmt*)parse_tree); + DefineSequenceWrapper((CreateSeqStmt*)parse_tree); if (u_sess->attr.attr_sql.enable_parallel_ddl && !is_first_node) { /* In case this query is related to a SERIAL execution, just bypass */ @@ -4945,10 +4980,10 @@ void standard_ProcessUtility(Node* parse_tree, const char* query_string, ParamLi pfree_ext(query_stringWithUUID); FreeExecNodes(&exec_nodes); } else { - DefineSequence((CreateSeqStmt*)parse_tree); + DefineSequenceWrapper((CreateSeqStmt*)parse_tree); } #else - DefineSequence((CreateSeqStmt*)parse_tree); + DefineSequenceWrapper((CreateSeqStmt*)parse_tree); #endif ClearCreateSeqStmtUUID((CreateSeqStmt*)parse_tree); @@ -4984,7 +5019,7 @@ void standard_ProcessUtility(Node* parse_tree, const char* query_string, ParamLi } } - AlterSequence((AlterSeqStmt*)parse_tree); + AlterSequenceWrapper((AlterSeqStmt*)parse_tree); #ifdef ENABLE_MULTIPLE_NODES /* In case this query is related to a SERIAL execution, just bypass */ if (IS_MAIN_COORDINATOR && !stmt->is_serial) { @@ -5012,7 +5047,7 @@ void standard_ProcessUtility(Node* parse_tree, const char* query_string, ParamLi } #endif } else { - AlterSequence((AlterSeqStmt*)parse_tree); + AlterSequenceWrapper((AlterSeqStmt*)parse_tree); #ifdef ENABLE_MULTIPLE_NODES /* In case this query is related to a SERIAL execution, just bypass */ @@ -5035,11 +5070,11 @@ void standard_ProcessUtility(Node* parse_tree, const char* query_string, ParamLi } FreeExecNodes(&exec_nodes); } else { - AlterSequence((AlterSeqStmt*)parse_tree); + AlterSequenceWrapper((AlterSeqStmt*)parse_tree); } #else PreventAlterSeqInTransaction(is_top_level, (AlterSeqStmt*)parse_tree); - AlterSequence((AlterSeqStmt*)parse_tree); + AlterSequenceWrapper((AlterSeqStmt*)parse_tree); #endif break; @@ -5205,11 +5240,20 @@ void standard_ProcessUtility(Node* parse_tree, const char* query_string, ParamLi break; case T_LoadStmt: + { + LoadStmt* stmt = (LoadStmt*)parse_tree; + if (stmt->is_load_data) { + if (IS_PGXC_COORDINATOR) { + ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("LOAD DATA statement is not yet supported."))); + } + TransformLoadDataToCopy(stmt); + break; + } + #ifdef PGXC ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("LOAD statement is not yet supported."))); #endif /* PGXC */ - { - LoadStmt* stmt = (LoadStmt*)parse_tree; closeAllVfds(); /* probably not necessary... */ /* Allowed names are restricted if you're not superuser */ @@ -5424,6 +5468,8 @@ void standard_ProcessUtility(Node* parse_tree, const char* query_string, ParamLi bool is_first_node = (strcmp(first_exec_node, g_instance.attr.attr_common.PGXCNodeName) == 0); Relation matview = NULL; + PushActiveSnapshot(GetTransactionSnapshot()); + /* if current node are not fist node, then need to send to first node first */ if (u_sess->attr.attr_sql.enable_parallel_ddl && !is_first_node) { ExecUtilityStmtOnNodes_ParallelDDLMode(query_string, @@ -5456,6 +5502,11 @@ void standard_ProcessUtility(Node* parse_tree, const char* query_string, ParamLi EXEC_ON_DATANODES, false); + /* Pop active snapshow */ + if (ActiveSnapshotSet()) { + PopActiveSnapshot(); + } + heap_close(matview, NoLock); } else if (IS_PGXC_COORDINATOR) { /* attach lock on matview and its table */ @@ -5566,7 +5617,7 @@ void standard_ProcessUtility(Node* parse_tree, const char* query_string, ParamLi case T_VariableShowStmt: { VariableShowStmt* n = (VariableShowStmt*)parse_tree; - GetPGVariable(n->name, dest); + GetPGVariable(n->name, n->likename, dest); } break; case T_ShutdownStmt: { ShutdownStmt* n = (ShutdownStmt*)parse_tree; @@ -5615,10 +5666,8 @@ void standard_ProcessUtility(Node* parse_tree, const char* query_string, ParamLi break; case T_CreatePLangStmt: -#ifdef ENABLE_MULTIPLE_NODES if (!IsInitdb) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("new language is not yet supported."))); -#endif /* ENABLE_MULTIPLE_NODES */ CreateProceduralLanguage((CreatePLangStmt*)parse_tree); #ifdef PGXC if (IS_PGXC_COORDINATOR) @@ -5630,10 +5679,8 @@ void standard_ProcessUtility(Node* parse_tree, const char* query_string, ParamLi * ******************************** DOMAIN statements **** */ case T_CreateDomainStmt: -#ifdef ENABLE_MULTIPLE_NODES if (!IsInitdb && !u_sess->attr.attr_common.IsInplaceUpgrade) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("domain is not yet supported."))); -#endif DefineDomain((CreateDomainStmt*)parse_tree); #ifdef PGXC if (IS_PGXC_COORDINATOR) @@ -6342,6 +6389,9 @@ void standard_ProcessUtility(Node* parse_tree, const char* query_string, ParamLi break; case T_CreateResourcePoolStmt: +#ifndef ENABLE_MULTIPLE_NODES + DISTRIBUTED_FEATURE_NOT_SUPPORTED(); +#endif if (IS_PGXC_COORDINATOR && !IsConnFromCoord()) { char* first_exec_node = find_first_exec_cn(); bool is_first_node = (strcmp(first_exec_node, g_instance.attr.attr_common.PGXCNodeName) == 0); @@ -6398,6 +6448,9 @@ void standard_ProcessUtility(Node* parse_tree, const char* query_string, ParamLi break; case T_AlterResourcePoolStmt: +#ifndef ENABLE_MULTIPLE_NODES + DISTRIBUTED_FEATURE_NOT_SUPPORTED(); +#endif if (IS_PGXC_COORDINATOR) { char* first_exec_node = find_first_exec_cn(); bool is_first_node = (strcmp(first_exec_node, g_instance.attr.attr_common.PGXCNodeName) == 0); @@ -6418,6 +6471,9 @@ void standard_ProcessUtility(Node* parse_tree, const char* query_string, ParamLi break; case T_DropResourcePoolStmt: +#ifndef ENABLE_MULTIPLE_NODES + DISTRIBUTED_FEATURE_NOT_SUPPORTED(); +#endif if (IS_PGXC_COORDINATOR) { char* first_exec_node = find_first_exec_cn(); bool is_first_node = (strcmp(first_exec_node, g_instance.attr.attr_common.PGXCNodeName) == 0); @@ -6785,12 +6841,16 @@ void standard_ProcessUtility(Node* parse_tree, const char* query_string, ParamLi break; /* Client Logic */ case T_CreateClientLogicGlobal: +#ifdef ENABLE_MULTIPLE_NODES + if (IS_MAIN_COORDINATOR && !u_sess->attr.attr_common.enable_full_encryption) { +#else + if (!u_sess->attr.attr_common.enable_full_encryption) { +#endif + ereport(ERROR, + (errcode(ERRCODE_OPERATE_NOT_SUPPORTED), + errmsg("Un-support to create client master key when client encryption is disabled."))); + } if (IS_PGXC_COORDINATOR) { - if (!IsConnFromCoord() && !u_sess->attr.attr_common.enable_full_encryption) { - ereport(ERROR, - (errcode(ERRCODE_OPERATE_NOT_SUPPORTED), - errmsg("Un-support to create client master key when client encryption is disabled."))); - } char *FirstExecNode = find_first_exec_cn(); bool isFirstNode = (strcmp(FirstExecNode, g_instance.attr.attr_common.PGXCNodeName) == 0); @@ -6798,21 +6858,27 @@ void standard_ProcessUtility(Node* parse_tree, const char* query_string, ParamLi ExecUtilityStmtOnNodes_ParallelDDLMode(query_string, NULL, sent_to_remote, false, EXEC_ON_COORDS, false, FirstExecNode); (void)process_global_settings((CreateClientLogicGlobal *)parse_tree); + ExecUtilityStmtOnNodes_ParallelDDLMode(query_string, NULL, sent_to_remote, false, EXEC_ON_DATANODES, + false, FirstExecNode); } else { (void)process_global_settings((CreateClientLogicGlobal *)parse_tree); - ExecUtilityStmtOnNodes(query_string, NULL, sent_to_remote, false, EXEC_ON_COORDS, false); + ExecUtilityStmtOnNodes(query_string, NULL, sent_to_remote, false, EXEC_ON_ALL_NODES, false); } } else { (void)process_global_settings((CreateClientLogicGlobal *)parse_tree); } break; - case T_CreateClientLogicColumn: + case T_CreateClientLogicColumn: +#ifdef ENABLE_MULTIPLE_NODES + if (IS_MAIN_COORDINATOR && !u_sess->attr.attr_common.enable_full_encryption) { +#else + if (!u_sess->attr.attr_common.enable_full_encryption) { +#endif + ereport(ERROR, + (errcode(ERRCODE_OPERATE_NOT_SUPPORTED), + errmsg("Un-support to create column encryption key when client encryption is disabled."))); + } if (IS_PGXC_COORDINATOR) { - if (!IsConnFromCoord() && !u_sess->attr.attr_common.enable_full_encryption) { - ereport(ERROR, - (errcode(ERRCODE_OPERATE_NOT_SUPPORTED), - errmsg("Un-support to create column encryption key when client encryption is disabled."))); - } char *FirstExecNode = find_first_exec_cn(); bool isFirstNode = (strcmp(FirstExecNode, g_instance.attr.attr_common.PGXCNodeName) == 0); @@ -6820,9 +6886,11 @@ void standard_ProcessUtility(Node* parse_tree, const char* query_string, ParamLi ExecUtilityStmtOnNodes_ParallelDDLMode(query_string, NULL, sent_to_remote, false, EXEC_ON_COORDS, false, FirstExecNode); (void)process_column_settings((CreateClientLogicColumn *)parse_tree); + ExecUtilityStmtOnNodes_ParallelDDLMode(query_string, NULL, sent_to_remote, false, EXEC_ON_DATANODES, + false, FirstExecNode); } else { (void)process_column_settings((CreateClientLogicColumn *)parse_tree); - ExecUtilityStmtOnNodes(query_string, NULL, sent_to_remote, false, EXEC_ON_COORDS, false); + ExecUtilityStmtOnNodes(query_string, NULL, sent_to_remote, false, EXEC_ON_ALL_NODES, false); } } else { (void)process_column_settings((CreateClientLogicColumn *)parse_tree); @@ -7213,6 +7281,7 @@ static RemoteQueryExecType ExecUtilityFindNodes(ObjectType object_type, Oid obje switch (object_type) { case OBJECT_SEQUENCE: + case OBJECT_LARGE_SEQUENCE: exec_type = set_exec_type(object_id, is_temp); break; @@ -7287,6 +7356,7 @@ static RemoteQueryExecType exec_utility_find_nodes_relkind(Oid rel_id, bool* is_ switch (relkind_str) { case RELKIND_SEQUENCE: + case RELKIND_LARGE_SEQUENCE: *is_temp = IsTempTable(rel_id); exec_type = CHOOSE_EXEC_NODES(*is_temp); break; @@ -7643,6 +7713,9 @@ static const char* AlterObjectTypeCommandTag(ObjectType obj_type) case OBJECT_SEQUENCE: tag = "ALTER SEQUENCE"; break; + case OBJECT_LARGE_SEQUENCE: + tag = "ALTER LARGE SEQUENCE"; + break; case OBJECT_TABLE: tag = "ALTER TABLE"; break; @@ -7936,6 +8009,9 @@ const char* CreateCommandTag(Node* parse_tree) case OBJECT_SEQUENCE: tag = "DROP SEQUENCE"; break; + case OBJECT_LARGE_SEQUENCE: + tag = "DROP LARGE SEQUENCE"; + break; case OBJECT_VIEW: #ifdef ENABLE_MULTIPLE_NODES if (range_var_list_include_streaming_object(((DropStmt*)parse_tree)->objects)) @@ -8184,6 +8260,10 @@ const char* CreateCommandTag(Node* parse_tree) case T_CompositeTypeStmt: tag = "CREATE TYPE"; break; + + case T_TableOfTypeStmt: + tag = "CREATE TYPE"; + break; case T_CreateEnumStmt: tag = "CREATE TYPE"; @@ -8237,11 +8317,19 @@ const char* CreateCommandTag(Node* parse_tree) break; case T_CreateSeqStmt: - tag = "CREATE SEQUENCE"; + if (((CreateSeqStmt*)parse_tree)->is_large) { + tag = "CREATE LARGE SEQUENCE"; + } else { + tag = "CREATE SEQUENCE"; + } break; case T_AlterSeqStmt: - tag = "ALTER SEQUENCE"; + if (((AlterSeqStmt*)parse_tree)->is_large) { + tag = "ALTER LARGE SEQUENCE"; + } else { + tag = "ALTER SEQUENCE"; + } break; case T_DoStmt: @@ -9648,7 +9736,6 @@ static void drop_stmt_pre_treatment( foreach (cell, stmt->objects) { RangeVar* rel = makeRangeVarFromNameList((List*)lfirst(cell)); Oid rel_id = RangeVarGetRelid(rel, AccessShareLock, true); - if (is_ledger_hist_table(rel_id)) { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), @@ -9674,6 +9761,13 @@ static void drop_stmt_pre_treatment( ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("DROP not supported for sqladvisor schema."))); + } else if (!u_sess->attr.attr_common.IsInplaceUpgrade && IsPackageSchemaName(name)) { + ereport(ERROR, + (errmodule(MOD_COMMAND), errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("DROP not supported for %s schema.", name), + errdetail("Schemas in a package cannot be deleted."), + errcause("The schema in the package does not support object drop."), + erraction("N/A"))); } } } break; @@ -9698,6 +9792,7 @@ static void drop_stmt_pre_treatment( switch (stmt->removeType) { case OBJECT_TABLE: case OBJECT_SEQUENCE: + case OBJECT_LARGE_SEQUENCE: case OBJECT_VIEW: case OBJECT_MATVIEW: case OBJECT_CONTQUERY: @@ -9780,6 +9875,14 @@ static void drop_stmt_pre_treatment( ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("DROP not supported for sqladvisor schema."))); + } else if (!u_sess->attr.attr_common.IsInplaceUpgrade && IsPackageSchemaName(name)) { + ereport(ERROR, + (errmodule(MOD_COMMAND), errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("DROP not supported for %s schema.", name), + errdetail("Schemas in a package cannot be deleted."), + errcause("The schema in the package does not support object drop."), + erraction("N/A"))); + } if (has_temp && has_nontemp) @@ -9860,32 +9963,6 @@ bool IsVariableinBlackList(const char* name) return isInBlackList; } -/* - * return true if the extension can be uninstall - */ -bool DropExtensionIsSupported(const char* query_string) -{ - char* lower_string = lowerstr(query_string); - -#ifndef ENABLE_MULTIPLE_NODES - if (strstr(lower_string, "drop") && - (strstr(lower_string, "postgis") || strstr(lower_string, "packages") || - strstr(lower_string, "mysql_fdw") || strstr(lower_string, "oracle_fdw") || - strstr(lower_string, "postgres_fdw") || strstr(lower_string, "dblink") || - strstr(lower_string, "security_plugin") || - strstr(lower_string, "db_b_parser") || strstr(lower_string, "db_a_parser") || - strstr(lower_string, "db_c_parser") || strstr(lower_string, "db_pg_parser"))) { -#else - if (strstr(lower_string, "drop") && (strstr(lower_string, "postgis") || strstr(lower_string, "packages"))) { -#endif - pfree_ext(lower_string); - return true; - } else { - pfree_ext(lower_string); - return false; - } -} - /* * Check if the object is in blacklist, if true, ALTER/DROP operation of the object is disabled. * Note that only prescribed extensions are able droppable. @@ -11855,6 +11932,18 @@ void DoVacuumMppTable(VacuumStmt* stmt, const char* query_string, bool is_top_le return; } + if (stmt->relation != NULL && (stmt->options & VACOPT_FULL)){ + Oid relId = RangeVarGetRelid(stmt->relation, NoLock, false); + Relation targRel = heap_open(relId, AccessShareLock); + bool isSegmentTable = targRel->storage_type == SEGMENT_PAGE; + heap_close(targRel, AccessShareLock); + if (isSegmentTable) { + ereport(LOG, (errmsg("skipping segment table \"%s\" --- please use gs_space_shrink " + "to recycle segment space.", stmt->relation->relname))); + return; + } + } + /* we choose to allow this during "read only" transactions */ PreventCommandDuringRecovery(cmdname); @@ -12714,3 +12803,495 @@ static bool IsAllTempObjectsInVacuumStmt(Node* parsetree) } return isTemp; } + +static void SendCopySqlToClient(StringInfo copy_sql) +{ + StringInfoData buf; + + /* Send a RowDescription message */ + pq_beginmessage(&buf, 'T'); + pq_sendint16(&buf, 1); /* 1 fields */ + + /* first field */ + pq_sendstring(&buf, "LOAD TRANSFORM TO COPY RESULT"); /* col name */ + pq_sendint32(&buf, 0); /* table oid */ + pq_sendint16(&buf, 0); /* attnum */ + pq_sendint32(&buf, TEXTOID); /* type oid */ + pq_sendint16(&buf, UINT16_MAX); /* typlen */ + pq_sendint32(&buf, 0); /* typmod */ + pq_sendint16(&buf, 0); /* format code */ + pq_endmessage_noblock(&buf); + + /* Send a DataRow message */ + pq_beginmessage(&buf, 'D'); + pq_sendint16(&buf, 1); /* # of columns */ + pq_sendint32(&buf, copy_sql->len); /* col1 len */ + pq_sendbytes(&buf, (char *)copy_sql->data, copy_sql->len); + pq_endmessage_noblock(&buf); + + /* Send CommandComplete and ReadyForQuery messages */ + EndCommand_noblock("LOAD", DestTuplestore); +} + +static void TransformLoadGetRelation(LoadStmt* stmt, StringInfo buf) +{ + RangeVar* relation = stmt->relation; + + if (relation->schemaname && relation->schemaname[0]) { + appendStringInfo(buf, "%s.", quote_identifier(relation->schemaname)); + } + appendStringInfo(buf, "%s ", quote_identifier(relation->relname)); +} + +static void TransformLoadGetFiledList(LoadStmt* stmt, StringInfo buf) +{ + ListCell* option = NULL; + ListCell* field_option = NULL; + int special_filed = 0; + + foreach (option, stmt->rel_options) { + DefElem* def = (DefElem*)lfirst(option); + if (strcmp(def->defname, "fields_list") == 0) { + List* field_list = (List *)def->arg; + appendStringInfo(buf, "("); + foreach (field_option, field_list) { + SqlLoadColExpr* coltem = (SqlLoadColExpr *)lfirst(field_option); + special_filed += ((coltem->const_info != NULL) || (coltem->sequence_info != NULL) || + (coltem->is_filler == true) || + ((coltem->scalar_spec != NULL) && + ((SqlLoadScalarSpec *)coltem->scalar_spec)->position_info != NULL)) + ? 1 + : 0; + appendStringInfo(buf, " %s,", coltem->colname); + } + buf->data[buf->len - 1] = ' '; + appendStringInfo(buf, ") "); + stmt->is_only_special_filed = (special_filed == list_length(field_list)); + break; + } + } +} + +static void TransformLoadType(LoadStmt* stmt, StringInfo buf) +{ + switch (stmt->load_type) { + case LOAD_DATA_APPEND: { + // COPY's default mode, no need to handle + break; + } + case LOAD_DATA_REPLACE: + case LOAD_DATA_TRUNCATE: { + appendStringInfo(buf, "TRUNCATE TABLE "); + TransformLoadGetRelation(stmt, buf); + appendStringInfo(buf, "; "); + break; + } + case LOAD_DATA_INSERT: { + appendStringInfo(buf, "SELECT 'has_data_in_table' FROM "); + TransformLoadGetRelation(stmt, buf); + appendStringInfo(buf, "LIMIT 1; "); + break; + } + default: { + elog(ERROR, "load type(%d) is not supported", stmt->load_type); + break; + } + } +} + +static char * TransformPreLoadOptionsData(LoadStmt* stmt, StringInfo buf) +{ + ListCell* option = NULL; + + foreach (option, stmt->pre_load_options) { + DefElem* def = (DefElem*)lfirst(option); + if (strcmp(def->defname, "data") == 0) { + char* data = defGetString(def); + return data; + } + } + + return NULL; +} + +static void TransformLoadDatafile(LoadStmt* stmt, StringInfo buf) +{ + ListCell* option = NULL; + char* filename = NULL; + + appendStringInfo(buf, "FROM "); + + // has datafile in options + filename = TransformPreLoadOptionsData(stmt, buf); + if (filename == NULL) { + foreach (option, stmt->load_options) { + DefElem* def = (DefElem*)lfirst(option); + if (strcmp(def->defname, "infile") == 0) { + filename = defGetString(def); + break; + } + } + } + + if (filename != NULL) { + appendStringInfo(buf, "\'%s\' LOAD ", filename); + } + else { + appendStringInfo(buf, "STDIN LOAD "); + } +} + +static void TransformFieldsListScalar(SqlLoadColExpr* coltem, StringInfo transformbuf, StringInfo formatterbuf) +{ + SqlLoadScalarSpec* scalarSpec = (SqlLoadScalarSpec *)coltem->scalar_spec; + if (scalarSpec->nullif_col != NULL) { + appendStringInfo(transformbuf, "%s AS nullif(trim(%s), \'\'),", quote_identifier(coltem->colname), + quote_identifier(scalarSpec->nullif_col)); + } + if (scalarSpec->sqlstr != NULL) { + appendStringInfo(transformbuf, "%s", quote_identifier(coltem->colname)); + A_Const* colexprVal = (A_Const *)scalarSpec->sqlstr; + appendStringInfo(transformbuf, " AS %s,", colexprVal->val.val.str); + } + if (scalarSpec->position_info) { + appendStringInfo(formatterbuf, "%s", quote_identifier(coltem->colname)); + SqlLoadColPosInfo* posInfo = (SqlLoadColPosInfo *)scalarSpec->position_info; + int offset = posInfo->start - 1; + int length = posInfo->end - posInfo->start + 1; + appendStringInfo(formatterbuf, "(%d, %d),", offset, length); + } +} + +static void TransformFieldsListSeque(const char *schemaname, const char *relname, + SqlLoadColExpr* coltem, StringInfo sequencebuf) +{ + SqlLoadSequInfo* sequenceInfo = (SqlLoadSequInfo *)coltem->sequence_info; + int64 start_num = sequenceInfo->start; + int64 step_num = sequenceInfo->step; + + if (start_num == LOADER_SEQUENCE_COUNT_FLAG) { + start_num = getCopySequenceCountval(schemaname, relname) + step_num; + } else if (start_num == LOADER_SEQUENCE_MAX_FLAG) { + start_num = getCopySequenceMaxval(schemaname, relname, coltem->colname) + step_num; + } + + appendStringInfo(sequencebuf, "%s", quote_identifier(coltem->colname)); + appendStringInfo(sequencebuf, "(%ld, %ld),", start_num, step_num); +} + +static void TransformFieldsListAppInfo(StringInfo fieldDataBuf, int dataBufCnt, StringInfo buf) +{ + if (dataBufCnt < LOADER_COL_BUF_CNT) { + return; + } + + StringInfo constantbuf = &fieldDataBuf[0]; + StringInfo formatterbuf = &fieldDataBuf[1]; + StringInfo transformbuf = &fieldDataBuf[2]; + StringInfo sequencebuf = &fieldDataBuf[3]; + StringInfo fillerbuf = &fieldDataBuf[4]; + + if (constantbuf->len) { + constantbuf->data[constantbuf->len - 1] = '\0'; + appendStringInfo(buf, "CONSTANT(%s) ", constantbuf->data); + } + + if (formatterbuf->len) { + formatterbuf->data[formatterbuf->len - 1] = '\0'; + appendStringInfo(buf, "fixed FORMATTER(%s) ", formatterbuf->data); + } + + if (sequencebuf->len) { + sequencebuf->data[sequencebuf->len - 1] = '\0'; + appendStringInfo(buf, "SEQUENCE(%s) ", sequencebuf->data); + } + if (fillerbuf->len) { + fillerbuf->data[fillerbuf->len - 1] = '\0'; + appendStringInfo(buf, "FILLER(%s) ", fillerbuf->data); + } + if (transformbuf->len) { + transformbuf->data[transformbuf->len - 1] = '\0'; + appendStringInfo(buf, "TRANSFORM(%s) ", transformbuf->data); + } +} + +static void TransformFieldsListOpt(LoadStmt* stmt, DefElem* def, StringInfo buf) +{ + List* field_list = (List *)def->arg; + ListCell* option = NULL; + StringInfoData fieldDataBuf[LOADER_COL_BUF_CNT]; + RangeVar* relation = stmt->relation; + const char *schemaname = NULL; + const char *relname = quote_identifier(relation->relname); + if (relation->schemaname && relation->schemaname[0]) { + schemaname = quote_identifier(relation->schemaname); + } + + for (int i = 0; i < LOADER_COL_BUF_CNT; i++) { + initStringInfo(&fieldDataBuf[i]); + } + + StringInfo constantbuf = &fieldDataBuf[0]; + StringInfo formatterbuf = &fieldDataBuf[1]; + StringInfo transformbuf = &fieldDataBuf[2]; + StringInfo sequencebuf = &fieldDataBuf[3]; + StringInfo fillerbuf = &fieldDataBuf[4]; + + foreach (option, field_list) { + SqlLoadColExpr* coltem = (SqlLoadColExpr *)lfirst(option); + if (coltem->const_info != NULL) { + appendStringInfo(constantbuf, "%s", quote_identifier(coltem->colname)); + A_Const* constVal = (A_Const *)coltem->const_info; + appendStringInfo(constantbuf, " \'%s\',", constVal->val.val.str); + } + else if (coltem->sequence_info != NULL) { + TransformFieldsListSeque(schemaname, relname, coltem, sequencebuf); + }else if (coltem->is_filler == true) { + appendStringInfo(fillerbuf, " %s,", quote_identifier(coltem->colname)); + } + else if (coltem->scalar_spec != NULL) { + TransformFieldsListScalar(coltem, transformbuf, formatterbuf); + } + } + + TransformFieldsListAppInfo(fieldDataBuf, LOADER_COL_BUF_CNT, buf); +} + +static void TransformLoadOptions(LoadStmt* stmt, StringInfo buf) +{ + ListCell* option = NULL; + + foreach (option, stmt->load_options) { + + DefElem* def = (DefElem*)lfirst(option); + if (strcmp(def->defname, "characterset") == 0) { + char* encoding = defGetString(def); + if (pg_strcasecmp(encoding, "AL32UTF8") == 0) { + encoding = "utf8"; + } + if (pg_strcasecmp(encoding, "zhs16gbk") == 0) { + encoding = "gbk"; + } + if (pg_strcasecmp(encoding, "zhs32gb18030") == 0) { + encoding = "gb18030"; + } + appendStringInfo(buf, "ENCODING \'%s\' ", encoding); + break; + } + } +} + +static void TransformLoadRelationOptionsWhen(List *when_list, StringInfo buf) +{ + ListCell* lc = NULL; + bool is_frist = true; + + foreach (lc, when_list) { + LoadWhenExpr *when = (LoadWhenExpr *)lfirst(lc); + CheckCopyWhenExprOptions(when); + + if (is_frist == true) { + appendStringInfo(buf, "WHEN "); + is_frist = false; + } else { + appendStringInfo(buf, "AND "); + } + + if (when->whentype == 0) { + appendStringInfo(buf, "(%d-%d) ", when->start, when->end); + appendStringInfo(buf, "%s ", when->oper); + appendStringInfo(buf, "\'%s\' ", when->val); + } else { + appendStringInfo(buf, "%s ", quote_identifier(when->attname)); + appendStringInfo(buf, "%s ", when->oper); + appendStringInfo(buf, "\'%s\' ", when->val); + } + } +} + +static void TransformLoadRelationOptions(LoadStmt* stmt, StringInfo buf) +{ + ListCell* option = NULL; + bool fields_csv = false; + bool optionally_enclosed_by = false; + + foreach (option, stmt->rel_options) { + + DefElem* def = (DefElem*)lfirst(option); + if (strcmp(def->defname, "when_expr") == 0) { + List *when_list = (List*)(def->arg); + TransformLoadRelationOptionsWhen(when_list, buf); + } + else if (strcmp(def->defname, "fields_csv") == 0) { + if (stmt->is_only_special_filed == false) { + appendStringInfo(buf, "csv "); + fields_csv = true; + } + } else if (strcmp(def->defname, "trailing_nullcols") == 0) { + appendStringInfo(buf, "FILL_MISSING_FIELDS 'multi' "); + } else if (strcmp(def->defname, "fields_terminated_by") == 0) { + if (stmt->is_only_special_filed == false) { + char* terminated_by = defGetString(def); + appendStringInfo(buf, "DELIMITER \'%s\' ", terminated_by); + } + } else if (strcmp(def->defname, "optionally_enclosed_by") == 0) { + if (stmt->is_only_special_filed == false) { + char *quote = defGetString(def); + appendStringInfo(buf, "QUOTE \'%s\' ", quote); + optionally_enclosed_by = true; + } + } else if (strcmp(def->defname, "fields_list") == 0) { + TransformFieldsListOpt(stmt, def, buf); + } else { + ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("option \"%s\" not recognized", def->defname))); + } + } + + if (optionally_enclosed_by && !fields_csv && stmt->is_only_special_filed == false) { + appendStringInfo(buf, "csv "); + } +} + +static bool LoadDataHasWhenExpr(LoadStmt* stmt) +{ + ListCell* option = NULL; + + foreach (option, stmt->rel_options) { + DefElem* def = (DefElem*)lfirst(option); + if (strcmp(def->defname, "when_expr") == 0) { + return list_length((List*)(def->arg)) != 0; + } + } + + return false; +} + + +static void TransformPreLoadOptions(LoadStmt* stmt, StringInfo buf) +{ + ListCell* option = NULL; + + int64 errors = 0; + + foreach (option, stmt->pre_load_options) { + DefElem* def = (DefElem*)lfirst(option); + if (strcmp(def->defname, "errors") == 0) { + errors = defGetInt64(def); + if (errors < 0) { + ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("ERRORS=%ld in OPTIONS should be >= 0", errors))); + } + else if (errors > 0) { + appendStringInfo(buf, "LOG ERRORS DATA REJECT LIMIT \'%ld\' ", errors); + } + } + } + + if (errors == 0 && LoadDataHasWhenExpr(stmt)) { + appendStringInfo(buf, "LOG ERRORS DATA "); + } + + foreach (option, stmt->pre_load_options) { + DefElem* def = (DefElem*)lfirst(option); + if (strcmp(def->defname, "skip") == 0) { + int64 skip = defGetInt64(def); + if (skip < 0) { + ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("SKIP=%ld in OPTIONS should be >= 0", skip))); + } + appendStringInfo(buf, "SKIP %ld ", skip); + } + } +} + +static void TransformLoadDataToCopy(LoadStmt* stmt) +{ + StringInfoData bufData; + StringInfo buf = &bufData; + + initStringInfo(buf); + + TransformLoadType(stmt, buf); + + appendStringInfo(buf, "\\COPY "); + + TransformLoadGetRelation(stmt, buf); + + TransformLoadGetFiledList(stmt, buf); + + TransformLoadDatafile(stmt, buf); + + TransformPreLoadOptions(stmt, buf); + + TransformLoadOptions(stmt, buf); + + TransformLoadRelationOptions(stmt, buf); + + appendStringInfo(buf, "IGNORE_EXTRA_DATA;"); + + elog(LOG, "load data is recv type: %d tablename:%s\ncopy sql:%s", + stmt->type, stmt->relation->relname, buf->data); + + SendCopySqlToClient(buf); +} + +static int64 getCopySequenceCountval(const char *nspname, const char *relname) +{ + StringInfoData buf; + int ret; + bool isnull; + Datum attval; + if (relname == NULL) { + return 0; + } + initStringInfo(&buf); + if (nspname == NULL) { + appendStringInfo(&buf, "select cast(count(*) as bigint) from %s", quote_identifier(relname)); + } else { + appendStringInfo(&buf, "select cast(count(*) as bigint) from %s.%s", quote_identifier(nspname), + quote_identifier(relname)); + } + if ((ret = SPI_connect()) < 0) { + /* internal error */ + ereport(ERROR, (errcode(ERRCODE_SPI_CONNECTION_FAILURE), errmsg("SPI connect failure - returned %d", ret))); + } + ret = SPI_execute(buf.data, true, INT_MAX); + if (ret != SPI_OK_SELECT) + ereport(ERROR, (errcode(ERRCODE_SPI_EXECUTE_FAILURE), errmsg("SPI_execute failed: error code %d", ret))); + attval = SPI_getbinval(SPI_tuptable->vals[0], SPI_tuptable->tupdesc, 1, &isnull); + if (isnull) { + attval = 0; + } + SPI_finish(); + return DatumGetInt64(attval); +} + +static int64 getCopySequenceMaxval(const char *nspname, const char *relname, const char *colname) +{ + StringInfoData buf; + int ret; + bool isnull; + Datum attval; + if (relname == NULL || colname == NULL) { + return 0; + } + initStringInfo(&buf); + if (nspname == NULL) { + appendStringInfo(&buf, "select cast(nvl(max(%s),0) as bigint) from %s ", quote_identifier(colname), + quote_identifier(relname)); + } else { + appendStringInfo(&buf, "select cast(nvl(max(%s),0) as bigint) from %s.%s ", quote_identifier(colname), + quote_identifier(nspname), quote_identifier(relname)); + } + if ((ret = SPI_connect()) < 0) { + /* internal error */ + ereport(ERROR, (errcode(ERRCODE_SPI_CONNECTION_FAILURE), errmsg("SPI connect failure - returned %d", ret))); + } + ret = SPI_execute(buf.data, true, INT_MAX); + if (ret != SPI_OK_SELECT) + ereport(ERROR, (errcode(ERRCODE_SPI_EXECUTE_FAILURE), errmsg("SPI_execute failed: error code %d", ret))); + attval = SPI_getbinval(SPI_tuptable->vals[0], SPI_tuptable->tupdesc, 1, &isnull); + if (isnull) { + attval = 0; + } + SPI_finish(); + return DatumGetInt64(attval); +} diff --git a/src/gausskernel/process/threadpool/knl_instance.cpp b/src/gausskernel/process/threadpool/knl_instance.cpp index 6e20c3e2f..3abe4e584 100755 --- a/src/gausskernel/process/threadpool/knl_instance.cpp +++ b/src/gausskernel/process/threadpool/knl_instance.cpp @@ -1,5 +1,6 @@ /* * Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors * * openGauss is licensed under Mulan PSL v2. * You can use this software according to the terms and conditions of the Mulan PSL v2. @@ -145,17 +146,11 @@ static void knl_g_wal_init(knl_g_wal_context *const wal_cxt) static void knl_g_bgwriter_init(knl_g_bgwriter_context *bgwriter_cxt) { Assert(bgwriter_cxt != NULL); - bgwriter_cxt->bgwriter_procs = NULL; - bgwriter_cxt->bgwriter_num = 0; - bgwriter_cxt->curr_bgwriter_num = 0; - bgwriter_cxt->candidate_buffers = NULL; - bgwriter_cxt->candidate_free_map = NULL; bgwriter_cxt->unlink_rel_hashtbl = NULL; bgwriter_cxt->rel_hashtbl_lock = NULL; bgwriter_cxt->invalid_buf_proc_latch = NULL; - bgwriter_cxt->bgwriter_actual_total_flush = 0; - bgwriter_cxt->get_buf_num_candidate_list = 0; - bgwriter_cxt->get_buf_num_clock_sweep = 0; + bgwriter_cxt->unlink_rel_fork_hashtbl = NULL; + bgwriter_cxt->rel_one_fork_hashtbl_lock = NULL; } static void knl_g_tests_init(knl_g_tests_context* tests_cxt) @@ -283,6 +278,8 @@ void knl_g_cachemem_create() false); } g_instance.plan_cache = New(INSTANCE_GET_MEM_CXT_GROUP(MEMORY_CONTEXT_EXECUTOR)) GlobalPlanCache(); + g_instance.global_session_pkg = + New(INSTANCE_GET_MEM_CXT_GROUP(MEMORY_CONTEXT_EXECUTOR)) PLGlobalPackageRuntimeCache(); } static void knl_g_comm_init(knl_g_comm_context* comm_cxt) { @@ -333,6 +330,7 @@ static void knl_g_executor_init(knl_g_executor_context* exec_cxt) exec_cxt->function_id_hashtbl = NULL; #ifndef ENABLE_MULTIPLE_NODES exec_cxt->nodeName = "Local Node"; + exec_cxt->global_application_name = ""; #endif } @@ -342,8 +340,13 @@ static void knl_g_xlog_init(knl_g_xlog_context *xlog_cxt) #ifdef ENABLE_MOT xlog_cxt->redoCommitCallback = NULL; #endif - + xlog_cxt->shareStorageXLogCtl = NULL; + xlog_cxt->shareStorageXLogCtlOrigin = NULL; + errno_t rc = memset_s(&xlog_cxt->shareStorageopCtl, sizeof(ShareStorageOperateCtl), 0, + sizeof(ShareStorageOperateCtl)); + securec_check(rc, "\0", "\0"); pthread_mutex_init(&xlog_cxt->remain_segs_lock, NULL); + xlog_cxt->shareStorageLockFd = -1; } static void KnlGUndoInit(knl_g_undo_context *undoCxt) @@ -466,7 +469,6 @@ static void knl_g_pid_init(knl_g_pid_context* pid_cxt) errno_t rc; rc = memset_s(pid_cxt, sizeof(knl_g_pid_context), 0, sizeof(knl_g_pid_context)); pid_cxt->PageWriterPID = NULL; - pid_cxt->CkptBgWriterPID = NULL; pid_cxt->CommReceiverPIDS = NULL; securec_check(rc, "\0", "\0"); } @@ -537,27 +539,26 @@ static void knl_g_numa_init(knl_g_numa_context* numa_cxt) numa_cxt->allocIndex = 0; } -static void knl_g_archive_obs_init(knl_g_archive_obs_context *archive_obs_cxt) +static void knl_g_archive_obs_init(knl_g_archive_context *archive_cxt) { - errno_t rc = memset_s(archive_obs_cxt, sizeof(knl_g_archive_obs_context), 0, sizeof(knl_g_archive_obs_context)); + errno_t rc = memset_s(archive_cxt, sizeof(knl_g_archive_context), 0, sizeof(knl_g_archive_context)); securec_check(rc, "\0", "\0"); - Assert(archive_obs_cxt != NULL); - archive_obs_cxt->barrierLsn = 0; - archive_obs_cxt->obs_slot_num = 0; - archive_obs_cxt->obs_recovery_slot_num = 0; - archive_obs_cxt->sync_walsender_term = 0; - archive_obs_cxt->in_switchover = false; - archive_obs_cxt->in_service_truncate = false; - archive_obs_cxt->slot_tline = 0; - SpinLockInit(&archive_obs_cxt->barrier_lock); + Assert(archive_cxt != NULL); + archive_cxt->barrierLsn = 0; + archive_cxt->archive_slot_num = 0; + archive_cxt->archive_recovery_slot_num = 0; + archive_cxt->in_switchover = false; + archive_cxt->in_service_truncate = false; + archive_cxt->slot_tline = 0; + SpinLockInit(&archive_cxt->barrier_lock); } -static void knl_g_archive_obs_thread_info_init(knl_g_archive_obs_thread_info *archive_obs_thread_info) +static void knl_g_archive_thread_info_init(knl_g_archive_thread_info *archive_thread_info) { - errno_t rc = memset_s(archive_obs_thread_info, sizeof(knl_g_archive_obs_thread_info), 0, - sizeof(knl_g_archive_obs_thread_info)); + errno_t rc = memset_s(archive_thread_info, sizeof(knl_g_archive_thread_info), 0, + sizeof(knl_g_archive_thread_info)); securec_check(rc, "\0", "\0"); - Assert(archive_obs_thread_info != NULL); + Assert(archive_thread_info != NULL); } #ifdef ENABLE_MOT @@ -611,6 +612,14 @@ static void knl_g_roach_init(knl_g_roach_context* roach_cxt) roach_cxt->isRoachRestore = false; } +static void knl_g_streaming_dr_init(knl_g_streaming_dr_context* streaming_dr_cxt) +{ + streaming_dr_cxt->isInStreaming_dr = false; + streaming_dr_cxt->isInSwitchover = false; + streaming_dr_cxt->isInteractionCompleted = false; + streaming_dr_cxt->switchoverBarrierLsn = InvalidXLogRecPtr; +} + void knl_instance_init() { g_instance.binaryupgrade = false; @@ -685,7 +694,7 @@ void knl_instance_init() knl_g_wal_init(&g_instance.wal_cxt); knl_g_archive_obs_init(&g_instance.archive_obs_cxt); - knl_g_archive_obs_thread_info_init(&g_instance.archive_obs_thread_info); + knl_g_archive_thread_info_init(&g_instance.archive_thread_info); knl_g_hypo_init(&g_instance.hypo_cxt); knl_g_segment_init(&g_instance.segment_cxt); @@ -696,6 +705,10 @@ void knl_instance_init() knl_g_pldebug_init(&g_instance.pldebug_cxt); knl_g_spi_plan_init(&g_instance.spi_plan_cxt); knl_g_roach_init(&g_instance.roach_cxt); + knl_g_streaming_dr_init(&g_instance.streaming_dr_cxt); + + errno_t rc = memset_s(g_instance.stopBarrierId, MAX_BARRIER_ID_LENGTH, 0, sizeof(g_instance.stopBarrierId)); + securec_check(rc, "\0", "\0"); } void add_numa_alloc_info(void* numaAddr, size_t length) diff --git a/src/gausskernel/process/threadpool/knl_session.cpp b/src/gausskernel/process/threadpool/knl_session.cpp index f5b170b3c..b6d1601e7 100755 --- a/src/gausskernel/process/threadpool/knl_session.cpp +++ b/src/gausskernel/process/threadpool/knl_session.cpp @@ -1,5 +1,6 @@ /* * Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors * * openGauss is licensed under Mulan PSL v2. * You can use this software according to the terms and conditions of the Mulan PSL v2. @@ -121,6 +122,8 @@ static void knl_u_attr_init(knl_session_attr* attr) attr->attr_sql.under_explain = false; attr->attr_resource.enable_auto_explain = false; attr->attr_sql.enable_upsert_to_merge = false; + attr->attr_sql.for_print_tuple = false; + attr->attr_sql.numeric_out_for_format = false; attr->attr_common.extension_session_vars_array_size = 0; attr->attr_common.extension_session_vars_array = NULL; } @@ -268,6 +271,9 @@ static void knl_u_parser_init(knl_u_parser_context* parser_cxt) parser_cxt->has_dollar = false; parser_cxt->has_placeholder = false; parser_cxt->stmt_contains_operator_plus = false; + parser_cxt->is_load_copy = false; + parser_cxt->copy_fieldname = NULL; + parser_cxt->col_list = NIL; parser_cxt->hint_list = NIL; parser_cxt->hint_warning = NIL; parser_cxt->opr_cache_hash = NULL; @@ -275,6 +281,7 @@ static void knl_u_parser_init(knl_u_parser_context* parser_cxt) parser_cxt->param_message = NULL; parser_cxt->ddl_pbe_context = NULL; parser_cxt->in_package_function_compile = false; + parser_cxt->isCreateFuncOrProc = false; } static void knl_u_advisor_init(knl_u_advisor_context* adv_cxt) @@ -345,6 +352,7 @@ static void knl_u_SPI_init(knl_u_SPI_context* spi) spi->current_stp_with_exception = false; spi->autonomous_session = NULL; spi->spi_exec_cplan_stack = NULL; + spi->cur_tableof_index = NULL; } static void knl_u_trigger_init(knl_u_trigger_context* tri_cxt) @@ -456,6 +464,11 @@ static void knl_u_utils_init(knl_u_utils_context* utils_cxt) utils_cxt->memory_context_limited_white_list = NULL; utils_cxt->enable_memory_context_control = false; (void)syscalllockInit(&utils_cxt->deleMemContextMutex); + + utils_cxt->donothingDR = (DestReceiver*)palloc0(sizeof(DestReceiver)); + utils_cxt->debugtupDR = (DestReceiver*)palloc0(sizeof(DestReceiver)); + utils_cxt->spi_printtupDR = (DestReceiver*)palloc0(sizeof(DestReceiver)); + init_sess_dest(utils_cxt->donothingDR, utils_cxt->debugtupDR, utils_cxt->spi_printtupDR); } static void knl_u_security_init(knl_u_security_context* sec_cxt) { @@ -782,31 +795,18 @@ static void knl_u_upgrade_init(knl_u_upgrade_context* upg_cxt) static void knl_u_plpgsql_init(knl_u_plpgsql_context* plsql_cxt) { plsql_cxt->inited = false; - plsql_cxt->plpgsql_cxt = NULL; - plsql_cxt->plpgsql_pkg_cxt = NULL; plsql_cxt->plpgsql_HashTable = NULL; + plsql_cxt->plpgsql_pkg_HashTable = NULL; plsql_cxt->plpgsql_dlist_objects = NULL; - plsql_cxt->datums_alloc = 0; - plsql_cxt->plpgsql_nDatums = 0; - plsql_cxt->datums_last = 0; + plsql_cxt->plpgsqlpkg_dlist_objects = NULL; + plsql_cxt->compile_status = NONE_STATUS; + plsql_cxt->curr_compile_context = NULL; + plsql_cxt->compile_context_list = NIL; plsql_cxt->plpgsql_IndexErrorVariable = 0; - plsql_cxt->plpgsql_error_funcname = NULL; - plsql_cxt->plpgsql_DumpExecTree = false; - plsql_cxt->plpgsql_check_syntax = false; - plsql_cxt->compile_tmp_cxt = NULL; - plsql_cxt->plpgsql_parse_result = NULL; - plsql_cxt->plpgsql_Datums = NULL; - plsql_cxt->plpgsql_curr_compile = NULL; plsql_cxt->simple_eval_estate = NULL; plsql_cxt->simple_econtext_stack = NULL; plsql_cxt->context_array = NIL; - plsql_cxt->plpgsql_variable_conflict = PLPGSQL_RESOLVE_ERROR; plsql_cxt->plugin_ptr = NULL; - plsql_cxt->ns_top = NULL; - plsql_cxt->plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_NORMAL; - plsql_cxt->core_yy = (core_yy_extra_type*)palloc0(sizeof(core_yy_extra_type)); - plsql_cxt->yyscanner = NULL; - plsql_cxt->goto_labels = NIL; plsql_cxt->rendezvousHash = NULL; plsql_cxt->debug_proc_htbl = NULL; plsql_cxt->debug_client = NULL; @@ -814,9 +814,24 @@ static void knl_u_plpgsql_init(knl_u_plpgsql_context* plsql_cxt) plsql_cxt->cur_debug_server = NULL; plsql_cxt->dbe_output_buffer_limit = DEFAULT_DBE_BUFFER_LIMIT; plsql_cxt->is_delete_function = false; - plsql_cxt->plpgsql_curr_compile_package = NULL; - plsql_cxt->is_compile_pkg_body = false; - plsql_cxt->is_compile_pkg_spec = false; + plsql_cxt->have_error = false; + plsql_cxt->client_info = NULL; + plsql_cxt->sess_cxt_htab = NULL; + plsql_cxt->have_error = false; + plsql_cxt->stp_savepoint_cnt = 0; + plsql_cxt->nextStackEntryId = 0; + plsql_cxt->spi_xact_context = NULL; + plsql_cxt->package_as_line = 0; + plsql_cxt->procedure_start_line = 0; + plsql_cxt->insertError = false; + plsql_cxt->errorList = NULL; + plsql_cxt->plpgsql_yylloc = 0; + plsql_cxt->rawParsePackageFunction = false; + plsql_cxt->isCreateFunction = false; + plsql_cxt->need_pkg_dependencies = false; + plsql_cxt->pkg_dependencies = NIL; + plsql_cxt->auto_parent_session_pkgs = NULL; + plsql_cxt->not_found_parent_session_pkgs = false; } static void knl_u_stat_init(knl_u_stat_context* stat_cxt) @@ -1041,6 +1056,7 @@ static void knl_u_statement_init(knl_u_statement_context* statement_cxt) statement_cxt->toFreeStatementList = NULL; statement_cxt->suspend_count = 0; statement_cxt->suspendStatementList = NULL; + statement_cxt->executer_run_level = 0; (void)syscalllockInit(&statement_cxt->list_protect); statement_cxt->stmt_stat_cxt = NULL; @@ -1232,7 +1248,7 @@ static void knl_u_xact_init(knl_u_xact_context* xact_cxt) xact_cxt->sendSeqDbName = NULL; xact_cxt->sendSeqSchmaName = NULL; xact_cxt->sendSeqName = NULL; - xact_cxt->send_result = 0; + xact_cxt->send_result = NULL; } static void knl_u_ps_init(knl_u_ps_context* ps_cxt) @@ -1285,6 +1301,7 @@ void knl_session_init(knl_session_context* sess_cxt) sess_cxt->prog_name = NULL; sess_cxt->ClientAuthInProgress = false; sess_cxt->is_autonomous_session = false; + sess_cxt->autonomous_parent_sessionid = 0; sess_cxt->need_report_top_xid = false; sess_cxt->on_sess_exit_index = 0; sess_cxt->cn_session_abort_count = 0; @@ -1491,6 +1508,10 @@ bool stp_set_commit_rollback_err_msg(stp_xact_err_type type) rt = snprintf_s(u_sess->SPI_cxt.forbidden_commit_rollback_err_msg, maxMsgLen, maxMsgLen - 1, "%s", "transaction statement in store procedure used as cursor is not supported"); break; + case STP_XACT_IN_TRIGGER: + rt = snprintf_s(u_sess->SPI_cxt.forbidden_commit_rollback_err_msg, maxMsgLen, maxMsgLen - 1, "%s", + "transaction statement in store procedure used in trigger is not supported"); + break; case STP_XACT_USED_AS_EXPR: rt = snprintf_s(u_sess->SPI_cxt.forbidden_commit_rollback_err_msg, maxMsgLen, maxMsgLen - 1, "%s", "transaction statement in store procedure used as a expression is not supported"); @@ -1511,6 +1532,10 @@ bool stp_set_commit_rollback_err_msg(stp_xact_err_type type) rt = snprintf_s(u_sess->SPI_cxt.forbidden_commit_rollback_err_msg, maxMsgLen, maxMsgLen - 1, "%s", "can not use commit rollback in package instantiation"); break; + case STP_XACT_COMPL_SQL: + rt = snprintf_s(u_sess->SPI_cxt.forbidden_commit_rollback_err_msg, maxMsgLen, maxMsgLen - 1, "%s", + "can not use commit rollback in Complex SQL"); + break; default: rt = snprintf_s(u_sess->SPI_cxt.forbidden_commit_rollback_err_msg, maxMsgLen, maxMsgLen - 1, "%s", "invalid transaction in store procedure"); @@ -1528,3 +1553,9 @@ __attribute__ ((__used__)) knl_session_context *GetCurrentSession() { return u_sess; } + +bool enable_out_param_override() +{ + return u_sess->attr.attr_sql.sql_compatibility == A_FORMAT + && PROC_OUTPARAM_OVERRIDE; +} diff --git a/src/gausskernel/process/threadpool/knl_thread.cpp b/src/gausskernel/process/threadpool/knl_thread.cpp index ec77e9064..cf122ebf0 100644 --- a/src/gausskernel/process/threadpool/knl_thread.cpp +++ b/src/gausskernel/process/threadpool/knl_thread.cpp @@ -1,5 +1,6 @@ /* * Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors * * openGauss is licensed under Mulan PSL v2. * You can use this software according to the terms and conditions of the Mulan PSL v2. @@ -149,6 +150,7 @@ static void knl_t_log_init(knl_t_log_context* log_cxt) } log_cxt->error_context_stack = NULL; + log_cxt->call_stack = NULL; log_cxt->PG_exception_stack = NULL; log_cxt->thd_bt_symbol = NULL; log_cxt->flush_message_immediately = false; @@ -411,6 +413,7 @@ static void knl_t_xlog_init(knl_t_xlog_context* xlog_cxt) xlog_cxt->recoveryTargetBarrierId = NULL; xlog_cxt->recoveryTargetName = NULL; xlog_cxt->recoveryTargetLSN = InvalidXLogRecPtr; + xlog_cxt->isRoachSingleReplayDone = false; xlog_cxt->StandbyModeRequested = false; xlog_cxt->PrimaryConnInfo = NULL; xlog_cxt->TriggerFile = NULL; @@ -434,6 +437,7 @@ static void knl_t_xlog_init(knl_t_xlog_context* xlog_cxt) xlog_cxt->RedoStartLSN = InvalidXLogRecPtr; xlog_cxt->server_mode = UNKNOWN_MODE; xlog_cxt->is_cascade_standby = false; + xlog_cxt->is_hadr_main_standby = false; xlog_cxt->startup_processing = false; xlog_cxt->openLogFile = -1; xlog_cxt->readfrombuffer = false; @@ -508,6 +512,7 @@ static void knl_t_xlog_init(knl_t_xlog_context* xlog_cxt) xlog_cxt->max_page_flush_lsn = MAX_XLOG_REC_PTR; xlog_cxt->redoInterruptCallBackFunc = NULL; xlog_cxt->xlog_atomic_op = NULL; + xlog_cxt->currentRetryTimes = 0; } static void knl_t_index_init(knl_t_index_context* index_cxt) @@ -717,6 +722,9 @@ static void knl_t_libwalreceiver_init(knl_t_libwalreceiver_context* libwalreceiv { libwalreceiver_cxt->streamConn = NULL; libwalreceiver_cxt->recvBuf = NULL; + libwalreceiver_cxt->shared_storage_buf = NULL; + libwalreceiver_cxt->shared_storage_read_buf = NULL; + libwalreceiver_cxt->xlogreader = NULL; } static void knl_t_sig_init(knl_t_sig_context* sig_cxt) @@ -983,7 +991,8 @@ static void knl_t_walwriterauxiliary_init(knl_t_walwriterauxiliary_context *cons static void knl_t_poolcleaner_init(knl_t_poolcleaner_context* poolcleaner_cxt) { - poolcleaner_cxt->shutdown_requested; + poolcleaner_cxt->shutdown_requested = false; + poolcleaner_cxt->got_SIGHUP = false; } static void knl_t_catchup_init(knl_t_catchup_context* catchup_cxt) @@ -1119,8 +1128,6 @@ static void knl_t_bgwriter_init(knl_t_bgwriter_context* bgwriter_cxt) { bgwriter_cxt->got_SIGHUP = false; bgwriter_cxt->shutdown_requested = false; - bgwriter_cxt->thread_id = -1; - bgwriter_cxt->next_flush_time = 0; } static void knl_t_pagewriter_init(knl_t_pagewriter_context* pagewriter_cxt) @@ -1131,6 +1138,19 @@ static void knl_t_pagewriter_init(knl_t_pagewriter_context* pagewriter_cxt) pagewriter_cxt->pagewriter_id = -1; } +static void knl_t_xlogcopybackend_init(knl_t_sharestoragexlogcopyer_context* cxt) +{ + cxt->got_SIGHUP = false; + cxt->shutdown_requested = false; + cxt->wakeUp = false; + cxt->readFile = -1; + cxt->readOff = 0; + cxt->readSegNo = 0; + cxt->buf = NULL; + cxt->originBuf = NULL; +} + + extern bool HeapTupleSatisfiesNow(HeapTuple htup, Snapshot snapshot, Buffer buffer); extern bool HeapTupleSatisfiesSelf(HeapTuple htup, Snapshot snapshot, Buffer buffer); extern bool HeapTupleSatisfiesAny(HeapTuple htup, Snapshot snapshot, Buffer buffer); @@ -1223,6 +1243,9 @@ static void knl_t_walreceiver_init(knl_t_walreceiver_context* walreceiver_cxt) walreceiver_cxt->AmWalReceiverForFailover = false; walreceiver_cxt->AmWalReceiverForStandby = false; walreceiver_cxt->control_file_writed = 0; + walreceiver_cxt->checkConsistencyOK = false; + walreceiver_cxt->hasReceiveNewData = false; + walreceiver_cxt->termChanged = false; } static void knl_t_storage_init(knl_t_storage_context* storage_cxt) @@ -1430,6 +1453,13 @@ static void knl_t_postmaster_init(knl_t_postmaster_context* postmaster_cxt) rc = memset_s(postmaster_cxt->ReplConnChanged, MAX_REPLNODE_NUM * sizeof(bool), 0, MAX_REPLNODE_NUM * sizeof(bool)); securec_check(rc, "\0", "\0"); + rc = memset_s(postmaster_cxt->CrossClusterReplConnArray, MAX_REPLNODE_NUM * sizeof(replconninfo*), 0, + MAX_REPLNODE_NUM * sizeof(replconninfo*)); + securec_check(rc, "\0", "\0"); + rc = memset_s(postmaster_cxt->CrossClusterReplConnChanged, MAX_REPLNODE_NUM * sizeof(bool), 0, + MAX_REPLNODE_NUM * sizeof(bool)); + securec_check(rc, "\0", "\0"); + postmaster_cxt->HaShmData = NULL; postmaster_cxt->LocalIpNum = 0; postmaster_cxt->IsRPCWorkerThread = false; @@ -1517,6 +1547,8 @@ static void knl_t_heartbeat_init(knl_t_heartbeat_context* heartbeat_cxt) heartbeat_cxt->got_SIGHUP = false; heartbeat_cxt->shutdown_requested = false; heartbeat_cxt->state = NULL; + heartbeat_cxt->total_failed_times = 0; + heartbeat_cxt->last_failed_timestamp = 0; } static void knl_t_streaming_init(knl_t_streaming_context* streaming_cxt) @@ -1543,6 +1575,7 @@ static void knl_t_security_policy_init(knl_t_security_policy_context *const poli policy_cxt->VectorMemoryContext = NULL; policy_cxt->MapMemoryContext = NULL; policy_cxt->SetMemoryContext = NULL; + policy_cxt->OidRBTreeMemoryContext = NULL; policy_cxt->node_location = 0; policy_cxt->prepare_stmt_name = ""; } @@ -1633,6 +1666,7 @@ void knl_thread_init(knl_thread_role role) knl_t_aiocompleter_init(&t_thrd.aio_cxt); knl_t_alarmchecker_init(&t_thrd.alarm_cxt); knl_t_arch_init(&t_thrd.arch); + knl_t_xlogcopybackend_init(&t_thrd.sharestoragexlogcopyer_cxt); knl_t_barrier_arch_init(&t_thrd.barrier_arch); knl_t_async_init(&t_thrd.asy_cxt); knl_t_audit_init(&t_thrd.audit); diff --git a/src/gausskernel/process/threadpool/threadpool_controler.cpp b/src/gausskernel/process/threadpool/threadpool_controler.cpp index 58a04b58e..27759bb0b 100644 --- a/src/gausskernel/process/threadpool/threadpool_controler.cpp +++ b/src/gausskernel/process/threadpool/threadpool_controler.cpp @@ -69,6 +69,8 @@ ThreadPoolControler* g_threadPoolControler = NULL; #define INVALID_ATTR_ERROR(detail) \ ereport(FATAL, (errcode(ERRCODE_OPERATE_INVALID_PARAM), errmsg("Invalid attribute for thread pool."), detail)) +static const long one_hundred_micro_sec = 100; + ThreadPoolControler::ThreadPoolControler() { m_threadPoolContext = NULL; @@ -590,6 +592,9 @@ ThreadPoolStat* ThreadPoolControler::GetThreadPoolStat(uint32* num) void ThreadPoolControler::CloseAllSessions() { + ereport(LOG, (errmodule(MOD_THREAD_POOL), + errmsg("pmState:%d, start to close all sessions in threadpool.", pmState))); + m_sessCtrl->MarkAllSessionClose(); (void)SignalCancelAllBackEnd(); @@ -608,8 +613,11 @@ void ThreadPoolControler::CloseAllSessions() for (int i = 0; i < m_groupNum; i++) { allclose = (m_groups[i]->AllSessionClosed() && allclose); } - pg_usleep(100); + pg_usleep(one_hundred_micro_sec); } + + ereport(LOG, (errmodule(MOD_THREAD_POOL), + errmsg("pmState:%d, all threadpool sessions already closed.", pmState))); } void ThreadPoolControler::ShutDownThreads(bool forceWait) @@ -618,6 +626,9 @@ void ThreadPoolControler::ShutDownThreads(bool forceWait) m_groups[i]->ShutDownThreads(); } + ereport(LOG, (errmodule(MOD_THREAD_POOL), + errmsg("pmState:%d, shut down all threadpool threads.", pmState))); + if (forceWait) { /* Check until all groups have shut down their workers. */ bool allshut = false; @@ -626,8 +637,11 @@ void ThreadPoolControler::ShutDownThreads(bool forceWait) for (int i = 0; i < m_groupNum; i++) { allshut = (m_groups[i]->AllThreadShutDown() && allshut); } - pg_usleep(100); + pg_usleep(one_hundred_micro_sec); } + + ereport(LOG, (errmodule(MOD_THREAD_POOL), + errmsg("pmState:%d, all threadpool threads already shut down.", pmState))); } } @@ -643,23 +657,34 @@ void ThreadPoolControler::ShutDownListeners(bool forceWait) for (int i = 0; i < m_groupNum; i++) { allshut = (m_groups[i]->GetListener()->GetThreadId() == 0) && allshut; } - pg_usleep(100); + pg_usleep(one_hundred_micro_sec); } } } -void ThreadPoolControler::ShutDownScheduler(bool forceWait) +void ThreadPoolControler::ShutDownScheduler(bool forceWait, bool noAdjust) { + if (noAdjust) { + pg_memory_barrier(); + m_scheduler->m_canAdjustPool = false; + } + m_scheduler->ShutDown(); if (forceWait) { bool allshut = false; while (!allshut) { allshut = m_scheduler->HasShutDown(); - pg_usleep(100); + pg_usleep(one_hundred_micro_sec); } } } +void ThreadPoolControler::EnableAdjustPool() +{ + pg_memory_barrier(); + m_scheduler->m_canAdjustPool = true; +} + void ThreadPoolControler::AddWorkerIfNecessary() { for (int i = 0; i < m_groupNum; i++) @@ -668,6 +693,7 @@ void ThreadPoolControler::AddWorkerIfNecessary() m_scheduler->StartUp(); m_scheduler->SetShutDown(false); } + EnableAdjustPool(); } ThreadPoolGroup* ThreadPoolControler::FindThreadGroupWithLeastSession() diff --git a/src/gausskernel/process/threadpool/threadpool_group.cpp b/src/gausskernel/process/threadpool/threadpool_group.cpp index 49a44556e..aa12affe3 100644 --- a/src/gausskernel/process/threadpool/threadpool_group.cpp +++ b/src/gausskernel/process/threadpool/threadpool_group.cpp @@ -270,7 +270,11 @@ bool ThreadPoolGroup::EnlargeWorkers(int enlargeNum) for (int i = num; i < num + wakeUpNum; i++) { if (m_workers[i].stat.slotStatus == THREAD_SLOT_INUSE) { worker = m_workers[i].worker; - worker->WakeUpToUpdate(THREAD_RUN); + if (worker->GetthreadStatus() == THREAD_PENDING) { + worker->WakeUpToUpdate(THREAD_RUN); + elog(LOG, "[SCHEDULER] Group %d enlarge: wakeup pending worker %lu", + m_groupId, m_workers[i].worker->GetThreadId()); + } } } } @@ -297,23 +301,29 @@ void ThreadPoolGroup::ReduceWorkers(int reduceNum) m_pendingWorkerNum += (num - m_expectWorkerNum); elog(LOG, "[SCHEDULER] Group %d reduce worker. Old worker num %d, new worker num %d", m_groupId, num, m_expectWorkerNum); - + /* only wake up free thread to pending, if we meet working thread, just skip it. */ for (int i = m_expectWorkerNum; i < num; i++) { if (m_workers[i].stat.slotStatus == THREAD_SLOT_INUSE) { Assert(m_workers[i].worker != NULL); - m_workers[i].worker->WakeUpToUpdate(THREAD_PENDING); + if (m_workers[i].worker->WakeUpToPendingIfFree()) { + elog(LOG, "[SCHEDULER] Group %d reduce: pending worker %lu", + m_groupId, m_workers[i].worker->GetThreadId()); + } } } + + elog(LOG, "[SCHEDULER] Group %d reduce worker end. Old worker num %d, new worker num %d", + m_groupId, num, m_expectWorkerNum); alock.unLock(); } - void ThreadPoolGroup::ShutDownPendingWorkers() { if (m_pendingWorkerNum == 0) { return; } - elog(LOG, "[SCHEDULER] Group %d shut down pending workers.", m_groupId); + elog(LOG, "[SCHEDULER] Group %d shut down pending workers start. pending worker num %d, current worker num %d", + m_groupId, m_pendingWorkerNum, m_expectWorkerNum); AutoMutexLock alock(&m_mutex); ThreadPoolWorker* worker = NULL; @@ -321,10 +331,14 @@ void ThreadPoolGroup::ShutDownPendingWorkers() for (int i = m_expectWorkerNum; i < m_expectWorkerNum + m_pendingWorkerNum; i++) { if (m_workers[i].stat.slotStatus == THREAD_SLOT_INUSE) { worker = m_workers[i].worker; - worker->WakeUpToUpdate(THREAD_EXIT); + if (worker->GetthreadStatus() == THREAD_PENDING) { + worker->WakeUpToUpdate(THREAD_EXIT); + } } } m_pendingWorkerNum = 0; + elog(LOG, "[SCHEDULER] Group %d shut down pending workers end. pending worker num %d, current worker num %d", + m_groupId, m_pendingWorkerNum, m_expectWorkerNum); alock.unLock(); } @@ -332,7 +346,7 @@ void ThreadPoolGroup::ShutDownThreads() { AutoMutexLock alock(&m_mutex); alock.lock(); - for (int i = 0; i < m_expectWorkerNum + m_pendingWorkerNum; i++) { + for (int i = 0; i < m_maxWorkerNum; i++) { if (m_workers[i].stat.slotStatus != THREAD_SLOT_UNUSE) { m_workers[i].worker->WakeUpToUpdate(THREAD_EXIT); } @@ -418,6 +432,9 @@ ThreadId ThreadPoolGroup::GetStreamFromPool(StreamProducer* producer) } producer->setChildSlot(AssignPostmasterChildSlot()); + if (producer->getChildSlot() == -1) { + return InvalidTid; + } tid = AddStream(producer); } else { Dlelem* elem = m_freeStreamList->RemoveHead(); diff --git a/src/gausskernel/process/threadpool/threadpool_scheduler.cpp b/src/gausskernel/process/threadpool/threadpool_scheduler.cpp index 0c2d5e7d0..7523dfa85 100644 --- a/src/gausskernel/process/threadpool/threadpool_scheduler.cpp +++ b/src/gausskernel/process/threadpool/threadpool_scheduler.cpp @@ -100,6 +100,7 @@ ThreadPoolScheduler::ThreadPoolScheduler(int groupNum, ThreadPoolGroup** groups) m_freeStreamCount = (uint *)palloc0(sizeof(uint) * groupNum); m_gpcContext = NULL; m_getSIGHUP = false; + m_canAdjustPool = true; } ThreadPoolScheduler::~ThreadPoolScheduler() @@ -119,7 +120,7 @@ int ThreadPoolScheduler::StartUp() void ThreadPoolScheduler::DynamicAdjustThreadPool() { for (int i = 0; i < m_groupNum; i++) { - if (pmState == PM_RUN) { + if (pmState == PM_RUN && m_canAdjustPool) { AdjustWorkerPool(i); AdjustStreamPool(i); } diff --git a/src/gausskernel/process/threadpool/threadpool_sessctl.cpp b/src/gausskernel/process/threadpool/threadpool_sessctl.cpp index efe441816..d01e3af26 100755 --- a/src/gausskernel/process/threadpool/threadpool_sessctl.cpp +++ b/src/gausskernel/process/threadpool/threadpool_sessctl.cpp @@ -197,6 +197,8 @@ void ThreadPoolSessControl::MarkAllSessionClose() elem = DLGetSucc(elem); } alock.unLock(); + ereport(LOG, (errmodule(MOD_THREAD_POOL), + errmsg("pmState:%d, mark all threadpool sessions closed.", pmState))); } void ThreadPoolSessControl::CheckPermissionForSendSignal(knl_session_context* sess, sig_atomic_t* lock) diff --git a/src/gausskernel/process/threadpool/threadpool_worker.cpp b/src/gausskernel/process/threadpool/threadpool_worker.cpp index 6d1383bed..bf81c4cff 100644 --- a/src/gausskernel/process/threadpool/threadpool_worker.cpp +++ b/src/gausskernel/process/threadpool/threadpool_worker.cpp @@ -131,8 +131,9 @@ int ThreadPoolWorker::StartUp() } Backend* bn = CreateBackend(); m_tid = initialize_worker_thread(THREADPOOL_WORKER, &port, (void*)this); + t_thrd.proc_cxt.MyPMChildSlot = 0; if (m_tid == InvalidTid) { - ReleasePostmasterChildSlot(t_thrd.proc_cxt.MyPMChildSlot); + ReleasePostmasterChildSlot(bn->child_slot); bn->pid = 0; return STATUS_ERROR; } @@ -170,6 +171,11 @@ void ThreadPoolWorker::WaitMission() bool isRawSession = false; Assert(t_thrd.int_cxt.InterruptHoldoffCount == 0); + if (unlikely(t_thrd.int_cxt.InterruptHoldoffCount > 0)) { + ereport(PANIC, + (errmodule(MOD_THREAD_POOL), + errmsg("InterruptHoldoffCount should be zero when get next session."))); + } /* * prevent any signal execep siguit. * reset any pending signal and timer. @@ -222,7 +228,7 @@ bool ThreadPoolWorker::WakeUpToWork(knl_session_context* session) { bool succ = true; pthread_mutex_lock(m_mutex); - if (likely(m_threadStatus != THREAD_EXIT)) { + if (likely(m_threadStatus != THREAD_EXIT && m_threadStatus != THREAD_PENDING)) { m_currentSession = session; pthread_cond_signal(m_cond); } else { @@ -242,6 +248,21 @@ void ThreadPoolWorker::WakeUpToUpdate(ThreadStatus status) pthread_mutex_unlock(m_mutex); } +bool ThreadPoolWorker::WakeUpToPendingIfFree() +{ + bool ans = false; + pthread_mutex_lock(m_mutex); + if (m_threadStatus != THREAD_EXIT && m_threadStatus != THREAD_PENDING && m_currentSession == NULL) { + m_threadStatus = THREAD_PENDING; + pthread_cond_signal(m_cond); + ans = true; + } else { + ans = false; + } + pthread_mutex_unlock(m_mutex); + return ans; +} + /* * Some variable are session level, however they are used by some opensource * component like postgis, we can not move them to knl_session_context directly. @@ -354,6 +375,14 @@ void ThreadPoolWorker::WaitNextSession() /* Wait if the thread was turned into pending mode. */ if (unlikely(m_threadStatus == THREAD_PENDING)) { Pending(); + /* pending thread must don't have session on it */ + if (m_currentSession != NULL) { + u_sess = m_currentSession; + ereport(FATAL, + (errmodule(MOD_THREAD_POOL), + errmsg("pending thread should not have session %lu on it", + m_currentSession->session_id))); + } } else if (unlikely(m_threadStatus == THREAD_EXIT)) { ShutDownIfNecessary(); } else if (m_currentSession != NULL) { @@ -381,8 +410,8 @@ void ThreadPoolWorker::WaitNextSession() u_sess = t_thrd.fake_session; ereport(DEBUG2, (errmodule(MOD_THREAD_POOL), - errmsg("TryFeedWorker remove a session:%lu from m_readySessionList into worker", - m_currentSession->session_id))); + errmsg("TryFeedWorker remove a session:%lu from m_readySessionList into worker, status %d", + m_currentSession->session_id, m_threadStatus))); } } } @@ -418,21 +447,14 @@ void ThreadPoolWorker::ShutDownIfNecessary() /* there is time window which the cancle signal has arrived but ignored by prevent signal called before, * so we rebuild the signal status here in case that happens. */ if (unlikely(m_currentSession != NULL && m_currentSession->status == KNL_SESS_CLOSE)) { - ereport(LOG, (errmodule(MOD_THREAD_POOL), - errmsg("Cancle signal has arrived but ignored by prevent signal called before, rebuild it."))); t_thrd.int_cxt.ClientConnectionLost = true; + ereport(ERROR, (errmodule(MOD_THREAD_POOL), + errmsg("Interrupt signal has been received, but ignored by preventSignal, rebuild it."))); } } void ThreadPoolWorker::CleanThread() { - if (m_currentSession != NULL && t_thrd.libpq_cxt.PqSendPointer > 0) { - int res = pq_flush(); - if (res != 0) { - ereport(WARNING, (errmsg("[cleanup thread] failed to flush the remaining content. detail: %d", res))); - } - } - /* * In thread pool mode, ensure that packet transmission must be completed before thread switchover. * Otherwise, packet format disorder may occurs. @@ -857,6 +879,9 @@ static void ResetSignalHandle() (void)gspqsignal(SIGALRM, handle_sig_alarm); (void)gspqsignal(SIGQUIT, quickdie); /* hard crash time */ (void)gspqsignal(SIGTERM, die); /* cancel current query and exit */ + gs_signal_setmask(&t_thrd.libpq_cxt.UnBlockSig, NULL); + /* not necessary, unblock for sure */ + gs_signal_unblock_sigusr2(); } static void SessionSetBackendOptions() diff --git a/src/gausskernel/runtime/codegen/gscodegen.cpp b/src/gausskernel/runtime/codegen/gscodegen.cpp index f3518c080..146acd3a9 100644 --- a/src/gausskernel/runtime/codegen/gscodegen.cpp +++ b/src/gausskernel/runtime/codegen/gscodegen.cpp @@ -49,6 +49,7 @@ #include "llvm/Transforms/Scalar.h" #include "llvm/Transforms/Utils/BasicBlockUtils.h" #include "llvm/Transforms/Utils/Cloning.h" +#include "llvm-c/Core.h" #include "pgxc/pgxc.h" #include "utils/memutils.h" @@ -202,7 +203,6 @@ llvm::LLVMContext& GsCodeGen::context() bool GsCodeGen::createNewModule() { - /* If m_currentModule <> NULL, it indicates we either * compiled the module or haven't created the module yet. */ @@ -257,6 +257,32 @@ llvm::ExecutionEngine* GsCodeGen::createNewEngine(llvm::Module* module) return execEngine; } +bool GsCodeGen::CheckPreloadModule(llvm::Module* mod) +{ + if (mod == NULL) { + ereport(LOG, (errmodule(MOD_LLVM), errmsg("Failed to ParseBitcodeFile."))); + return false; + } + + const char* triple = mod->getTargetTriple().c_str(); +#ifdef __aarch64__ + const char* cpu = "aarch64"; +#elif defined (__x86_64__) + const char* cpu = "x86_64"; +#else + const char* cpu = "generic"; +#endif + + char* pos = strstr(const_cast(triple), cpu); + if (!pos) { + ereport(LOG, (errmodule(MOD_LLVM), + errmsg("Target triple (%s) was not matched on native CPU.", triple))); + return false; + } + + return true; +} + bool GsCodeGen::parseIRFile(StringInfo filename) { llvm::Module* m_module = NULL; @@ -299,10 +325,8 @@ bool GsCodeGen::parseIRFile(StringInfo filename) return false; } m_module = moduleOrErr.get().release(); - if (m_module == NULL) { - ereport(LOG, (errmodule(MOD_LLVM), errmsg("Failed to ParseBitcodeFile."))); + if (!CheckPreloadModule(m_module)) return false; - } } LLVM_CATCH("Failed to parse IR file."); diff --git a/src/gausskernel/runtime/codegen/vecexecutor/vecsortcodegen.cpp b/src/gausskernel/runtime/codegen/vecexecutor/vecsortcodegen.cpp index 054cbea71..04a4de7b4 100644 --- a/src/gausskernel/runtime/codegen/vecexecutor/vecsortcodegen.cpp +++ b/src/gausskernel/runtime/codegen/vecexecutor/vecsortcodegen.cpp @@ -1718,7 +1718,6 @@ llvm::Function* VecSortCodeGen::bpcharcmpCodeGen_long() tmpval = builder.CreateICmpSGT(parm3, int32_7); builder.CreateCondBr(tmpval, bb_loop_len_a1, bb_prehead_a2); - /* while (len1 >= 8) {....} */ builder.SetInsertPoint(bb_loop_len_a1); llvm::Value* loopIdx = builder.CreateSExt(parm3, int64Type); builder.CreateBr(bb_loopBody_a1); @@ -1793,7 +1792,6 @@ llvm::Function* VecSortCodeGen::bpcharcmpCodeGen_long() tmpval = builder.CreateICmpSGT(parm3, int32_7); builder.CreateCondBr(tmpval, bb_loop_len_b1, bb_prehead_b2); - /* while (len2 >= 8) {....} */ builder.SetInsertPoint(bb_loop_len_b1); loopIdx = builder.CreateSExt(parm3, int64Type); builder.CreateBr(bb_loopBody_b1); @@ -1850,7 +1848,6 @@ llvm::Function* VecSortCodeGen::bpcharcmpCodeGen_long() len_less1 = builder.CreateSub(Phi_len_b, int32_1); Phi_len_b->addIncoming(len_less1, bb_loopEnd_b2); Vals2[1] = remaining; - /* if (s[i] == ' ') */ tmpval = builder.CreateInBoundsGEP(Phi_data2, Vals2); tmpval = builder.CreateLoad(int8Type, tmpval, "b_i"); tmpval = builder.CreateICmpEQ(tmpval, int8_32); @@ -2183,7 +2180,6 @@ llvm::Function* VecSortCodeGen::bpcharcmpCodeGen_short() len_less1 = builder.CreateSub(Phi_len_b, int32_1); Phi_len_b->addIncoming(len_less1, bb_loopEnd_b); Vals2[1] = remaining; - /* if (s[i] == ' ') */ tmpval = builder.CreateInBoundsGEP(Phi_data2, Vals2); tmpval = builder.CreateLoad(int8Type, tmpval, "b_i"); tmpval = builder.CreateICmpEQ(tmpval, int8_32); diff --git a/src/gausskernel/runtime/executor/Makefile b/src/gausskernel/runtime/executor/Makefile index 707004059..0cc592cf1 100644 --- a/src/gausskernel/runtime/executor/Makefile +++ b/src/gausskernel/runtime/executor/Makefile @@ -43,11 +43,11 @@ OBJS = execAmi.o execCurrent.o execGrouping.o execJunk.o execMain.o \ nodeMaterial.o nodeMergeAppend.o nodeMergejoin.o nodeModifyTable.o \ nodeNestloop.o nodeFunctionscan.o nodeRecursiveunion.o nodeResult.o \ nodeSamplescan.o nodeSeqscan.o nodeSetOp.o nodeSort.o nodeUnique.o \ - nodeValuesscan.o nodeCtescan.o nodeWorktablescan.o \ + nodeValuesscan.o nodeCtescan.o nodeStartWithOp.o nodeWorktablescan.o \ nodeGroup.o nodeSubplan.o nodeSubqueryscan.o nodeTidscan.o \ nodeForeignscan.o nodeWindowAgg.o tstoreReceiver.o spi.o \ nodePartIterator.o nodeStub.o execClusterResize.o lightProxy.o execMerge.o \ - nodeExtensible.o route.o nodeGD.o nodeKMeans.o + nodeExtensible.o route.o nodeGD.o nodeKMeans.o spiDbesql.o override CPPFLAGS += -D__STDC_FORMAT_MACROS diff --git a/src/gausskernel/runtime/executor/execAmi.cpp b/src/gausskernel/runtime/executor/execAmi.cpp index 622b14326..9d4f45526 100755 --- a/src/gausskernel/runtime/executor/execAmi.cpp +++ b/src/gausskernel/runtime/executor/execAmi.cpp @@ -6,6 +6,7 @@ * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * IDENTIFICATION * src/gausskernel/runtime/executor/execAmi.cpp @@ -119,6 +120,10 @@ void ExecReScanByType(PlanState* node) ExecReScanRecursiveUnion((RecursiveUnionState*)node); break; + case T_StartWithOpState: + ExecReScanStartWithOp((StartWithOpState *)node); + break; + case T_BitmapAndState: ExecReScanBitmapAnd((BitmapAndState*)node); break; diff --git a/src/gausskernel/runtime/executor/execClusterResize.cpp b/src/gausskernel/runtime/executor/execClusterResize.cpp index 28310d8ab..d5688ab53 100644 --- a/src/gausskernel/runtime/executor/execClusterResize.cpp +++ b/src/gausskernel/runtime/executor/execClusterResize.cpp @@ -641,9 +641,28 @@ void BlockUnsupportedDDL(const Node* parsetree) } } break; case AT_AddNodeList: - case AT_DeleteNodeList: - break; + case AT_DeleteNodeList: { +#ifndef ENABLE_MULTIPLE_NODES + ereport(ERROR, + (errmodule(MOD_FUNCTION), + errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("Unsupported feature"), + errdetail("The capability is not supported for openGauss."), + errcause("%s is not supported for openGauss", + cmd->subtype == AT_DeleteNodeList ? "DeleteNode" : "AddNode"), + erraction("NA"))); +#endif + } break; case AT_UpdateSliceLike: { +#ifndef ENABLE_MULTIPLE_NODES + ereport(ERROR, + (errmodule(MOD_FUNCTION), + errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("Unsupported feature"), + errdetail("The capability is not supported for openGauss."), + errcause("UpdateSliceLike is not supported for openGauss"), + erraction("NA"))); +#endif if (!ClusterResizingInProgress() && IS_PGXC_COORDINATOR) { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), diff --git a/src/gausskernel/runtime/executor/execMain.cpp b/src/gausskernel/runtime/executor/execMain.cpp index 5e74de9fb..1b51ae30c 100755 --- a/src/gausskernel/runtime/executor/execMain.cpp +++ b/src/gausskernel/runtime/executor/execMain.cpp @@ -29,6 +29,7 @@ * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -438,6 +439,7 @@ void ExecutorRun(QueryDesc *queryDesc, ScanDirection direction, long count) int instrument_option = 0; bool has_track_operator = false; char* old_stmt_name = u_sess->pcache_cxt.cur_stmt_name; + u_sess->statement_cxt.executer_run_level++; if (u_sess->SPI_cxt._connected >= 0) { u_sess->pcache_cxt.cur_stmt_name = NULL; } @@ -517,6 +519,7 @@ void ExecutorRun(QueryDesc *queryDesc, ScanDirection direction, long count) } u_sess->pcache_cxt.cur_stmt_name = old_stmt_name; + u_sess->statement_cxt.executer_run_level--; } void standard_ExecutorRun(QueryDesc *queryDesc, ScanDirection direction, long count) @@ -1534,8 +1537,9 @@ void CheckValidResultRel(Relation resultRel, CmdType operation) CheckCmdReplicaIdentity(resultRel, operation); break; case RELKIND_SEQUENCE: + case RELKIND_LARGE_SEQUENCE: ereport(ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), - errmsg("cannot change sequence \"%s\"", RelationGetRelationName(resultRel)))); + errmsg("cannot change (large) sequence \"%s\"", RelationGetRelationName(resultRel)))); break; case RELKIND_TOASTVALUE: ereport(ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), @@ -1641,9 +1645,10 @@ static void CheckValidRowMarkRel(Relation rel, RowMarkType markType) /* OK */ break; case RELKIND_SEQUENCE: + case RELKIND_LARGE_SEQUENCE: /* Must disallow this because we don't vacuum sequences */ ereport(ERROR, (errcode(ERRCODE_WRONG_OBJECT_TYPE), - errmsg("cannot lock rows in sequence \"%s\"", RelationGetRelationName(rel)))); + errmsg("cannot lock rows in (large) sequence \"%s\"", RelationGetRelationName(rel)))); break; case RELKIND_TOASTVALUE: /* We could allow this, but there seems no good reason to */ diff --git a/src/gausskernel/runtime/executor/execProcnode.cpp b/src/gausskernel/runtime/executor/execProcnode.cpp index 4c7058b69..3a246e2c1 100755 --- a/src/gausskernel/runtime/executor/execProcnode.cpp +++ b/src/gausskernel/runtime/executor/execProcnode.cpp @@ -10,6 +10,7 @@ * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -266,6 +267,8 @@ PlanState* ExecInitNodeByType(Plan* node, EState* estate, int eflags) return (PlanState*)ExecInitMergeAppend((MergeAppend*)node, estate, eflags); case T_RecursiveUnion: return (PlanState*)ExecInitRecursiveUnion((RecursiveUnion*)node, estate, eflags); + case T_StartWithOp: + return (PlanState*)ExecInitStartWithOp((StartWithOp*)node, estate, eflags); case T_BitmapAnd: return (PlanState*)ExecInitBitmapAnd((BitmapAnd*)node, estate, eflags); case T_BitmapOr: @@ -622,6 +625,8 @@ TupleTableSlot* ExecProcNodeByType(PlanState* node) return ExecMergeAppend((MergeAppendState*)node); case T_RecursiveUnionState: return ExecRecursiveUnion((RecursiveUnionState*)node); + case T_StartWithOpState: + return ExecStartWithOp((StartWithOpState*)node); case T_SeqScanState: return ExecSeqScan((SeqScanState*)node); case T_IndexScanState: @@ -790,6 +795,11 @@ static inline TupleTableSlot *ExecRecursiveUnionWrap(PlanState *node) return ExecRecursiveUnion((RecursiveUnionState*)node); }; +static inline TupleTableSlot *ExecStartWithOpWrap(PlanState *node) +{ + return ExecStartWithOp((StartWithOpState*)node); +}; + static inline TupleTableSlot *ExecSeqScanWrap(PlanState *node) { return ExecSeqScan((SeqScanState *)node); @@ -934,6 +944,7 @@ ExecProcFuncType g_execProcFuncTable[] = { ExecPartIteratorWrap, ExecMergeAppendWrap, ExecRecursiveUnionWrap, + ExecStartWithOpWrap, DefaultExecProc, DefaultExecProc, DefaultExecProc, @@ -1266,18 +1277,25 @@ void cleanup_sensitive_information() extern THR_LOCAL unsigned char derive_vector_saved[RANDOM_LEN]; extern THR_LOCAL unsigned char mac_vector_saved[RANDOM_LEN]; extern THR_LOCAL unsigned char input_saved[RANDOM_LEN]; + errno_t errorno = EOK; if (encryption_function_call == true) { - CleanupBuffer(derive_vector_saved, RANDOM_LEN); - CleanupBuffer(input_saved, RANDOM_LEN); - CleanupBuffer(mac_vector_saved, RANDOM_LEN); + errorno = memset_s(derive_vector_saved, RANDOM_LEN, 0, RANDOM_LEN); + securec_check(errorno, "", ""); + errorno = memset_s(input_saved, RANDOM_LEN, 0, RANDOM_LEN); + securec_check(errorno, "", ""); + errorno = memset_s(mac_vector_saved, RANDOM_LEN, 0, RANDOM_LEN); + securec_check(errorno, "", ""); encryption_function_call = false; } if (decryption_function_call == true) { for (int i = 0; i < NUMBER_OF_SAVED_DERIVEKEYS; ++i) { - CleanupBuffer(derive_vector_used[i], RANDOM_LEN); - CleanupBuffer(user_input_used[i], RANDOM_LEN); - CleanupBuffer(mac_vector_used[i], RANDOM_LEN); + errorno = memset_s(derive_vector_used[i], RANDOM_LEN, 0, RANDOM_LEN); + securec_check(errorno, "", ""); + errorno = memset_s(user_input_used[i], RANDOM_LEN, 0, RANDOM_LEN); + securec_check(errorno, "", ""); + errorno = memset_s(mac_vector_used[i], RANDOM_LEN, 0, RANDOM_LEN); + securec_check(errorno, "", ""); } decryption_function_call = false; } @@ -1331,6 +1349,10 @@ static void ExecEndNodeByType(PlanState* node) ExecEndRecursiveUnion((RecursiveUnionState*)node); break; + case T_StartWithOpState: + ExecEndStartWithOp((StartWithOpState*)node); + break; + case T_BitmapAndState: ExecEndBitmapAnd((BitmapAndState*)node); break; diff --git a/src/gausskernel/runtime/executor/execQual.cpp b/src/gausskernel/runtime/executor/execQual.cpp index 5c54b52d7..d577d6ea3 100644 --- a/src/gausskernel/runtime/executor/execQual.cpp +++ b/src/gausskernel/runtime/executor/execQual.cpp @@ -46,6 +46,7 @@ #include "executor/exec/execdebug.h" #include "executor/node/nodeSubplan.h" #include "executor/node/nodeAgg.h" +#include "executor/node/nodeCtescan.h" #include "funcapi.h" #include "miscadmin.h" #include "nodes/makefuncs.h" @@ -239,9 +240,9 @@ static Datum ExecEvalArrayRef(ArrayRefExprState* astate, ExprContext* econtext, int j = 0; IntArray upper, lower; int* lIndex = NULL; + Oid typOid = astate->xprstate.resultType; array_source = (ArrayType*)DatumGetPointer(ExecEvalExpr(astate->refexpr, econtext, isNull, isDone)); - /* * If refexpr yields NULL, and it's a fetch, then result is NULL. In the * assignment case, we'll cons up something below. @@ -253,6 +254,14 @@ static Datum ExecEvalArrayRef(ArrayRefExprState* astate, ExprContext* econtext, return (Datum)NULL; } + Oid tableOfIndexType; + bool isnestedtable = false; + HTAB* tableOfIndex = ExecEvalParamExternTableOfIndex(astate->refexpr, econtext, &tableOfIndexType, &isnestedtable); + if (u_sess->SPI_cxt.cur_tableof_index != NULL) { + u_sess->SPI_cxt.cur_tableof_index->tableOfIndexType = tableOfIndexType; + u_sess->SPI_cxt.cur_tableof_index->tableOfIndex = tableOfIndex; + } + foreach (l, astate->refupperindexpr) { ExprState* eltstate = (ExprState*)lfirst(l); @@ -260,8 +269,38 @@ static Datum ExecEvalArrayRef(ArrayRefExprState* astate, ExprContext* econtext, ereport(ERROR, (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), errmsg("number of array dimensions (%d) exceeds the maximum allowed (%d)", i + 1, MAXDIM))); - - upper.indx[i++] = DatumGetInt32(ExecEvalExpr(eltstate, econtext, &eisnull, NULL)); + if (OidIsValid(tableOfIndexType) || isnestedtable) { + Datum exprValue = ExecEvalExpr(eltstate, econtext, &eisnull, NULL); + TableOfIndexKey key; + PLpgSQL_var* node = NULL; + key.exprtypeid = tableOfIndexType; + key.exprdatum = exprValue; + int index = getTableOfIndexByDatumValue(key, tableOfIndex, &node); + if (isnestedtable) { + /* for nested table, we should take inner table's array and skip current indx */ + if (node == NULL || index == -1) { + eisnull = true; + } else { + PLpgSQL_var* var = node; + isnestedtable = (var->nest_table != NULL); + array_source = (ArrayType*)DatumGetPointer(var->value); + tableOfIndexType = var->datatype->tableOfIndexType; + tableOfIndex = var->tableOfIndex; + eisnull = var->isnull; + if (plpgsql_estate) + plpgsql_estate->curr_nested_table_type = var->datatype->typoid; + continue; + } + } + if (index == -1) { + eisnull = true; + } else { + upper.indx[i++] = index; + } + } else { + upper.indx[i++] = DatumGetInt32(ExecEvalExpr(eltstate, econtext, &eisnull, NULL)); + } + /* If any index expr yields NULL, result is NULL or error */ if (eisnull) { if (isAssignment) @@ -282,7 +321,13 @@ static Datum ExecEvalArrayRef(ArrayRefExprState* astate, ExprContext* econtext, (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), errmsg("number of array dimensions (%d) exceeds the maximum allowed (%d)", j + 1, MAXDIM))); - lower.indx[j++] = DatumGetInt32(ExecEvalExpr(eltstate, econtext, &eisnull, NULL)); + if (tableOfIndexType == VARCHAROID || isnestedtable) { + ereport(ERROR, + (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), + errmsg("index by varchar or nested table don't support two subscripts"))); + } else { + lower.indx[j++] = DatumGetInt32(ExecEvalExpr(eltstate, econtext, &eisnull, NULL)); + } /* If any index expr yields NULL, result is NULL or error */ if (eisnull) { if (isAssignment) @@ -364,7 +409,11 @@ static Datum ExecEvalArrayRef(ArrayRefExprState* astate, ExprContext* econtext, econtext->caseValue_datum = save_datum; econtext->caseValue_isNull = save_isNull; - + if (u_sess->SPI_cxt.cur_tableof_index != NULL) { + u_sess->SPI_cxt.cur_tableof_index->tableOfIndexType = InvalidOid; + u_sess->SPI_cxt.cur_tableof_index->tableOfIndex = NULL; + } + /* * For an assignment to a fixed-length array type, both the original * array and the value to be assigned into it must be non-NULL, else @@ -408,17 +457,36 @@ static Datum ExecEvalArrayRef(ArrayRefExprState* astate, ExprContext* econtext, astate->refelemalign); return PointerGetDatum(resultArray); } - - if (lIndex == NULL) - return array_ref(array_source, - i, - upper.indx, - astate->refattrlength, - astate->refelemlength, - astate->refelembyval, - astate->refelemalign, - isNull); - else { + /* for nested table, if get inner table's elem, need cover elem type */ + if (list_length(astate->refupperindexpr) > i && i > 0 && plpgsql_estate) { + if (plpgsql_estate->curr_nested_table_type != typOid) { + plpgsql_estate->curr_nested_table_type = ARR_ELEMTYPE(array_source); + get_typlenbyvalalign(plpgsql_estate->curr_nested_table_type, + &astate->refelemlength, + &astate->refelembyval, + &astate->refelemalign); + } + } + if (u_sess->SPI_cxt.cur_tableof_index != NULL) { + u_sess->SPI_cxt.cur_tableof_index->tableOfIndexType = InvalidOid; + u_sess->SPI_cxt.cur_tableof_index->tableOfIndex = NULL; + } + if (lIndex == NULL) { + if (unlikely(i == 0)) { + /* get nested table's inner table */ + *isNull = eisnull; + return (Datum)array_source; + } else { + return array_ref(array_source, + i, + upper.indx, + astate->refattrlength, + astate->refelemlength, + astate->refelembyval, + astate->refelemalign, + isNull); + } + } else { resultArray = array_get_slice(array_source, i, upper.indx, @@ -989,7 +1057,7 @@ static Datum ExecEvalRownum(RownumState* exprstate, ExprContext* econtext, bool* *isDone = ExprSingleResult; *isNull = false; - return Int64GetDatum(exprstate->ps->ps_rownum + 1); + return DirectFunctionCall1(int8_numeric, Int64GetDatum(exprstate->ps->ps_rownum + 1)); } /* ---------------------------------------------------------------- @@ -1075,6 +1143,83 @@ static Datum ExecEvalParamExtern(ExprState* exprstate, ExprContext* econtext, bo return (Datum)0; /* keep compiler quiet */ } +static bool get_tableofindex_param_walker(Node* node, Param* expression) +{ + if (node == NULL) + return false; + if (IsA(node, Param)) { + expression->paramid = ((Param*)node)->paramid; + expression->paramtype = ((Param*)node)->paramtype; + return true; + } else if (IsA(node, FuncExpr)) { + FuncExpr* funcExpr = (FuncExpr*)(node); + const Oid array_function_start_oid = 7881; + const Oid array_function_end_oid = 7892; + + bool isArrayFunction = funcExpr->funcid >= array_function_start_oid && + funcExpr->funcid <= array_function_end_oid; + if (isArrayFunction) { + expression->paramid = ((Param*)linitial(funcExpr->args))->paramid; + expression->paramtype = ((Param*)linitial(funcExpr->args))->paramtype; + return true; + } + } + return expression_tree_walker(node, (bool (*)())get_tableofindex_param_walker, expression); +} + +/* ---------------------------------------------------------------- + * ExecEvalParamExternTableOfIndex + * + * Returns the value of a PARAM_EXTERN table of index and type parameter . + * ---------------------------------------------------------------- + */ +HTAB* ExecEvalParamExternTableOfIndex(ExprState* exprstate, ExprContext* econtext, + Oid* tableOfIndexType, bool *isnestedtable) +{ + Param expression; + expression.paramid = -1; + get_tableofindex_param_walker((Node*)exprstate->expr, &expression); + + if (expression.paramid == -1) { + *tableOfIndexType = InvalidOid; + *isnestedtable = false; + return NULL; + } + + int thisParamId = expression.paramid; + ParamListInfo paramInfo = econtext->ecxt_param_list_info; + + /* + * PARAM_EXTERN parameters must be sought in ecxt_param_list_info. + */ + if (paramInfo && thisParamId > 0 && thisParamId <= paramInfo->numParams) { + ParamExternData* prm = ¶mInfo->params[thisParamId - 1]; + + /* give hook a chance in case parameter is dynamic */ + if (!OidIsValid(prm->ptype) && paramInfo->paramFetch != NULL) + (*paramInfo->paramFetch)(paramInfo, thisParamId); + + if (OidIsValid(prm->ptype)) { + /* safety check in case hook did something unexpected */ + if (prm->ptype != expression.paramtype) + ereport(ERROR, + (errcode(ERRCODE_DATATYPE_MISMATCH), + errmsg("type of parameter %d (%s) does not match that when preparing the plan (%s)", + thisParamId, + format_type_be(prm->ptype), + format_type_be(expression.paramtype)))); + + *tableOfIndexType = prm->tableOfIndexType; + *isnestedtable = prm->isnestedtable; + return prm->tableOfIndex; + } + } + *isnestedtable = false; + *tableOfIndexType = InvalidOid; + return NULL; +} + + /* ---------------------------------------------------------------- * ExecEvalOper / ExecEvalFunc support routines * ---------------------------------------------------------------- @@ -1894,6 +2039,7 @@ restart: MemoryContext oldcontext = MemoryContextSwitchTo(estate->tuple_store_cxt); estate->cursor_return_data = (Cursor_Data*)palloc0(sizeof(Cursor_Data) * fcinfo->refcursor_data.return_number); + estate->cursor_return_numbers = fcinfo->refcursor_data.return_number; (void)MemoryContextSwitchTo(oldcontext); } @@ -2112,11 +2258,11 @@ static Datum ExecMakeFunctionResultNoSets( } /* if proIsProcedure is ture means it was a stored procedure */ - u_sess->SPI_cxt.is_stp = savedIsSTP && proIsProcedure; + u_sess->SPI_cxt.is_stp = savedIsSTP; ReleaseSysCache(tp); } else { proIsProcedure = PROC_IS_PRO(fcache->prokind); - u_sess->SPI_cxt.is_stp = savedIsSTP && proIsProcedure; + u_sess->SPI_cxt.is_stp = savedIsSTP; } } @@ -2140,6 +2286,19 @@ static Datum ExecMakeFunctionResultNoSets( fcinfo->context = (Node *)node; } + /* + * Incause of connet_by_root() and sys_connect_by_path() we need get the + * current scan tuple slot so attach the econtext here + * + * NOTE: Have to revisit!! so I don't have better solution to handle the case + * where scantuple is available in built in funct + */ + if (fcinfo->flinfo->fn_oid == CONNECT_BY_ROOT_FUNCOID || + fcinfo->flinfo->fn_oid == SYS_CONNECT_BY_PATH_FUNCOID) { + fcinfo->swinfo.sw_econtext = (Node *)econtext; + fcinfo->swinfo.sw_exprstate = (Node *)linitial(fcache->args); + } + if (has_cursor_return) { /* init returnCursor to store out-args cursor info on ExprContext*/ fcinfo->refcursor_data.returnCursor = @@ -2230,6 +2389,7 @@ static Datum ExecMakeFunctionResultNoSets( */ if (estate->cursor_return_data == NULL) { estate->cursor_return_data = (Cursor_Data*)palloc0(sizeof(Cursor_Data)); + estate->cursor_return_numbers = 1; } int rc = memcpy_s(estate->cursor_return_data, sizeof(Cursor_Data), @@ -2248,8 +2408,7 @@ static Datum ExecMakeFunctionResultNoSets( pfree_ext(var_dno); } - if(node != NULL) - pfree_ext(node); + pfree_ext(node); u_sess->SPI_cxt.is_stp = savedIsSTP; u_sess->SPI_cxt.is_proconfig_set = savedProConfigIsSet; @@ -2313,7 +2472,6 @@ static bool func_has_refcursor_args(Oid Funcid, FunctionCallInfoData* fcinfo) ReleaseSysCache(proctup); return use_cursor; } - /* * ExecMakeTableFunctionResult * @@ -2385,7 +2543,7 @@ Tuplestorestate* ExecMakeTableFunctionResult( (reinterpret_cast(funcexpr))->prokind = 'f'; } /* if proIsProcedure means it was a stored procedure */ - u_sess->SPI_cxt.is_stp = savedIsSTP && proIsProcedure; + u_sess->SPI_cxt.is_stp = savedIsSTP; if (!heap_attisnull(tp, Anum_pg_proc_proconfig, NULL) || u_sess->SPI_cxt.is_proconfig_set) { u_sess->SPI_cxt.is_proconfig_set = true; node->atomic = true; @@ -2394,7 +2552,7 @@ Tuplestorestate* ExecMakeTableFunctionResult( ReleaseSysCache(tp); } else { proIsProcedure = PROC_IS_PRO(prokind); - u_sess->SPI_cxt.is_stp = savedIsSTP && proIsProcedure; + u_sess->SPI_cxt.is_stp = savedIsSTP; } } @@ -2548,9 +2706,16 @@ Tuplestorestate* ExecMakeTableFunctionResult( if (econtext->plpgsql_estate != NULL) { PLpgSQL_execstate* estate = econtext->plpgsql_estate; - - if (fcinfo.refcursor_data.return_number > 0 && estate->cursor_return_data != NULL && - fcinfo.refcursor_data.returnCursor != NULL) { + bool isVaildReturn = (fcinfo.refcursor_data.return_number > 0 && + estate->cursor_return_data != NULL && fcinfo.refcursor_data.returnCursor != NULL); + if (isVaildReturn) { + bool isVaildReturnNum = (fcinfo.refcursor_data.return_number > estate->cursor_return_numbers); + if (isVaildReturnNum) { + pgstat_end_function_usage(&fcusage, rsinfo.isDone != ExprMultipleResult); + ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmodule(MOD_PLSQL), + errmsg("The expected output of the cursor:%d and function:%d does not match", + estate->cursor_return_numbers, fcinfo.refcursor_data.return_number))); + } for (int i = 0; i < fcinfo.refcursor_data.return_number; i++) { CopyCursorInfoData(&estate->cursor_return_data[i], &fcinfo.refcursor_data.returnCursor[i]); } @@ -2807,8 +2972,8 @@ static Datum ExecEvalFunc(FuncExprState* fcache, ExprContext* econtext, bool* is if (HeapTupleIsValid(cast_tuple)) { Relation cast_rel = heap_open(CastRelationId, AccessShareLock); - int castowner_Anum = Anum_pg_cast_castowner; - if (castowner_Anum <= (int) HeapTupleHeaderGetNatts(cast_tuple->t_data, cast_rel->rd_att)) { + uint32 castowner_Anum = Anum_pg_cast_castowner; + if (castowner_Anum <= HeapTupleHeaderGetNatts(cast_tuple->t_data, cast_rel->rd_att)) { bool isnull = true; Datum datum = fastgetattr(cast_tuple, Anum_pg_cast_castowner, cast_rel->rd_att, &isnull); if (!isnull) { @@ -4169,6 +4334,32 @@ static Datum ExecEvalNullTest(NullTestState* nstate, ExprContext* econtext, bool return result; /* nothing to check */ if (ntest->argisrow && !(*isNull)) { + /* + * The SQL standard defines IS [NOT] NULL for a non-null rowtype + * argument as: + * + * "R IS NULL" is true if every field is the null value. + * + * "R IS NOT NULL" is true if no field is the null value. + * + * This definition is (apparently intentionally) not recursive; so our + * tests on the fields are primitive attisnull tests, not recursive + * checks to see if they are all-nulls or no-nulls rowtypes. + * + * The standard does not consider the possibility of zero-field rows, + * but here we consider them to vacuously satisfy both predicates. + * + * e.g. + * r | isnull | isnotnull + * -------------+--------+----------- + * (1,"(1,2)") | f | t + * (1,"(,)") | f | t + * (1,) | f | f + * (,"(1,2)") | f | f + * (,"(,)") | f | f + * (,) | t | f + * + */ HeapTupleHeader tuple; Oid tupType; int32 tupTypmod; diff --git a/src/gausskernel/runtime/executor/execReplication.cpp b/src/gausskernel/runtime/executor/execReplication.cpp index a864f1ab0..9e70161fd 100644 --- a/src/gausskernel/runtime/executor/execReplication.cpp +++ b/src/gausskernel/runtime/executor/execReplication.cpp @@ -145,12 +145,10 @@ static bool PartitionFindReplTupleByIndex(EState *estate, Relation rel, Relation { /* must be non-GPI index */ Assert(!RelationIsGlobalIndex(idxrel)); -#ifdef NOT_USED + if (RelationIsSubPartitioned(rel)) { fakeRelInfo->partList = RelationGetSubPartitionList(rel, RowExclusiveLock); - } else -#endif - { + } else { fakeRelInfo->partList = relationGetPartitionList(rel, RowExclusiveLock); } @@ -191,12 +189,9 @@ static bool PartitionFindReplTupleByIndex(EState *estate, Relation rel, Relation static bool PartitionFindReplTupleSeq(Relation rel, LockTupleMode lockmode, TupleTableSlot *searchslot, TupleTableSlot *outslot, FakeRelationPartition *fakeRelInfo) { -#ifdef NOT_USED if (RelationIsSubPartitioned(rel)) { fakeRelInfo->partList = RelationGetSubPartitionList(rel, RowExclusiveLock); - } else -#endif - { + } else { fakeRelInfo->partList = relationGetPartitionList(rel, RowExclusiveLock); } @@ -823,7 +818,6 @@ void GetFakeRelAndPart(EState *estate, Relation rel, TupleTableSlot *slot, FakeR relAndPart->part = partition; relAndPart->partOid = partitionOid; break; -#ifdef NOT_USED case PARTTYPE_SUBPARTITIONED_RELATION: { Relation subPartRel = NULL; Partition subPart = NULL; @@ -840,7 +834,6 @@ void GetFakeRelAndPart(EState *estate, Relation rel, TupleTableSlot *slot, FakeR relAndPart->partOid = subPartOid; break; } -#endif default: ereport(ERROR, (errmodule(MOD_EXECUTOR), (errcode(ERRCODE_UNRECOGNIZED_NODE_TYPE), errmsg("Unrecognized parttype as \"%c\" for relation \"%s\"", diff --git a/src/gausskernel/runtime/executor/execUtils.cpp b/src/gausskernel/runtime/executor/execUtils.cpp index 9521486bc..d1317faf3 100644 --- a/src/gausskernel/runtime/executor/execUtils.cpp +++ b/src/gausskernel/runtime/executor/execUtils.cpp @@ -6,6 +6,7 @@ * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -1564,11 +1565,6 @@ bool ExecCheckIndexConstraints(TupleTableSlot *slot, EState *estate, Relation ta ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("INSERT ON DUPLICATE KEY UPDATE does not support deferrable" " unique constraints/exclusion constraints."))); - - /* - * We consider a partitioned table with a global index as a normal table, - * because conflicts can be between multiple partitions. - */ if (isPartitioned && !isgpi) { partitionedindexid = RelationGetRelid(indexRelation); @@ -2203,6 +2199,7 @@ void RegisterExprContextCallback(ExprContext* econtext, ExprContextCallbackFunct ecxt_callback->function = function; ecxt_callback->arg = arg; + ecxt_callback->resowner = t_thrd.utils_cxt.CurrentResourceOwner; /* link to front of list for appropriate execution order */ ecxt_callback->next = econtext->ecxt_callbacks; @@ -2258,12 +2255,25 @@ static void ShutdownExprContext(ExprContext* econtext, bool isCommit) /* * Call each callback function in reverse registration order. */ - while ((ecxt_callback = econtext->ecxt_callbacks) != NULL) { - econtext->ecxt_callbacks = ecxt_callback->next; - if (isCommit) - (*ecxt_callback->function)(ecxt_callback->arg); - pfree_ext(ecxt_callback); + ResourceOwner oldOwner = t_thrd.utils_cxt.CurrentResourceOwner; + PG_TRY(); + { + while ((ecxt_callback = econtext->ecxt_callbacks) != NULL) { + econtext->ecxt_callbacks = ecxt_callback->next; + if (isCommit) { + t_thrd.utils_cxt.CurrentResourceOwner = ecxt_callback->resowner; + (*ecxt_callback->function)(ecxt_callback->arg); + } + pfree_ext(ecxt_callback); + } } + PG_CATCH(); + { + t_thrd.utils_cxt.CurrentResourceOwner = oldOwner; + PG_RE_THROW(); + } + PG_END_TRY(); + t_thrd.utils_cxt.CurrentResourceOwner = oldOwner; MemoryContextSwitchTo(oldcontext); } diff --git a/src/gausskernel/runtime/executor/functions.cpp b/src/gausskernel/runtime/executor/functions.cpp index 3c8551722..c6deba972 100644 --- a/src/gausskernel/runtime/executor/functions.cpp +++ b/src/gausskernel/runtime/executor/functions.cpp @@ -6,6 +6,7 @@ * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -246,16 +247,32 @@ SQLFunctionParseInfoPtr prepare_sql_fn_parse_info(HeapTuple procedure_tuple, Nod int n_arg_names; bool is_null = false; +#ifndef ENABLE_MULTIPLE_NODES + if (t_thrd.proc->workingVersionNum < 92470) { + pro_arg_names = SysCacheGetAttr(PROCNAMEARGSNSP, procedure_tuple, Anum_pg_proc_proargnames, &is_null); + } else { + pro_arg_names = SysCacheGetAttr(PROCALLARGS, procedure_tuple, Anum_pg_proc_proargnames, &is_null); + } +#else pro_arg_names = SysCacheGetAttr(PROCNAMEARGSNSP, procedure_tuple, Anum_pg_proc_proargnames, &is_null); +#endif if (is_null) { pro_arg_names = PointerGetDatum(NULL); /* just to be sure */ } +#ifndef ENABLE_MULTIPLE_NODES + if (t_thrd.proc->workingVersionNum < 92470) { + pro_arg_modes = SysCacheGetAttr(PROCNAMEARGSNSP, procedure_tuple, Anum_pg_proc_proargmodes, &is_null); + } else { + pro_arg_modes = SysCacheGetAttr(PROCALLARGS, procedure_tuple, Anum_pg_proc_proargmodes, &is_null); + } +#else pro_arg_modes = SysCacheGetAttr(PROCNAMEARGSNSP, procedure_tuple, Anum_pg_proc_proargmodes, &is_null); +#endif if (is_null) { pro_arg_modes = PointerGetDatum(NULL); /* just to be sure */ } - + n_arg_names = get_func_input_arg_names(pro_arg_names, pro_arg_modes, &p_info->argnames); /* Paranoia: ignore the result if too few array entries */ if (n_arg_names < nargs) { @@ -407,6 +424,7 @@ static Node* sql_fn_make_param(SQLFunctionParseInfoPtr p_info, int param_no, int param->paramtypmod = -1; param->paramcollid = get_typcollation(param->paramtype); param->location = location; + param->tableOfIndexType = InvalidOid; /* * If we have a function input collation, allow it to override the @@ -944,6 +962,9 @@ static void postquel_sub_params(SQLFunctionCachePtr fcache, FunctionCallInfo fci prm->isnull = fcinfo->argnull[i]; prm->pflags = 0; prm->ptype = fcache->pinfo->argtypes[i]; + prm->tableOfIndexType = InvalidOid; + prm->tableOfIndex = NULL; + prm->isnestedtable = false; } } else { fcache->paramLI = NULL; @@ -1948,11 +1969,6 @@ void sql_fn_parser_replace_param_type(struct ParseState* pstate, int param_no, V return; } f_info->replaced_argtypes[param_no] = var->vartype; -#ifdef ENABLE_MULTIPLE_NODES - if (!IS_PGXC_COORDINATOR) { - return; - } -#endif /* find the column in RTE (pg_class and pg_attribute) and retrieve the gs_encrypted_columns record based on it */ RangeTblEntry* rte = GetRTEByRangeTablePosn(pstate, var->varno, var->varlevelsup); if (!rte) { @@ -1984,6 +2000,8 @@ void update_gs_encrypted_proc(const Oid func_id, SQLFunctionParseInfoPtr p_info, HeapTuple gs_oldtup = SearchSysCache1(GSCLPROCID, ObjectIdGetDatum(func_id)); gs_rel = heap_open(ClientLogicProcId, RowExclusiveLock); TupleDesc gs_tupDesc = RelationGetDescr(gs_rel); + gs_values[Anum_gs_encrypted_proc_last_change - 1] = + DirectFunctionCall1(timestamptz_timestamp, GetCurrentTimestamp()); if (allargs_orig) { ArrayType* all_parameter_types_orig = construct_array(allargs_orig, allnumargs, INT4OID, sizeof(int4), true, 'i'); @@ -2002,6 +2020,7 @@ void update_gs_encrypted_proc(const Oid func_id, SQLFunctionParseInfoPtr p_info, } else { gs_values[Anum_gs_encrypted_proc_proargcachedcol - 1] = PointerGetDatum(parameterTypes); gs_replaces[Anum_gs_encrypted_proc_proargcachedcol - 1] = true; + gs_replaces[Anum_gs_encrypted_proc_last_change - 1] = true; /* Okay, do it... */ gs_tup = heap_modify_tuple(gs_oldtup, gs_tupDesc, gs_values, gs_nulls, gs_replaces); simple_heap_update(gs_rel, &gs_tup->t_self, gs_tup); @@ -2050,11 +2069,36 @@ bool sql_fn_cl_rewrite_params(const Oid func_id, SQLFunctionParseInfoPtr p_info, return false; } /* support CREATE OR REPLACE with the same parameter types */ +#ifdef ENABLE_MULTIPLE_NODES if (SearchSysCacheExists3(PROCNAMEARGSNSP, CStringGetDatum(NameStr(oldproc->proname)), PointerGetDatum(&oldproc->proargtypes), ObjectIdGetDatum(oldproc->pronamespace))) { +#else + Datum packageidDatum = SysCacheGetAttr(PROCOID, tuple, Anum_pg_proc_packageid, &isNull); + Oid packageOid = ObjectIdGetDatum(packageidDatum); + if (!OidIsValid(packageOid)) { + packageidDatum = ObjectIdGetDatum(InvalidOid); + } + if (SearchSysCacheExists4(PROCALLARGS, CStringGetDatum(NameStr(oldproc->proname)), + PointerGetDatum(&oldproc->proargtypes), ObjectIdGetDatum(oldproc->pronamespace), ObjectIdGetDatum(packageidDatum))) { +#endif rel = heap_open(ProcedureRelationId, RowExclusiveLock); - HeapTuple oldtup = SearchSysCache3(PROCNAMEARGSNSP, CStringGetDatum(NameStr(oldproc->proname)), + HeapTuple oldtup = NULL; +#ifndef ENABLE_MULTIPLE_NODES + if (t_thrd.proc->workingVersionNum < 92470) { + oldtup = SearchSysCache3(PROCNAMEARGSNSP, CStringGetDatum(NameStr(oldproc->proname)), + PointerGetDatum(&oldproc->proargtypes), ObjectIdGetDatum(oldproc->pronamespace)); + + } else { + Datum allargtypes = ProcedureGetAllArgTypes(tuple, &isNull); + oldtup = SearchSysCache4(PROCALLARGS, CStringGetDatum(NameStr(oldproc->proname)), + allargtypes, ObjectIdGetDatum(oldproc->pronamespace), + ObjectIdGetDatum(packageOid)); + } +#else + oldtup = SearchSysCache3(PROCNAMEARGSNSP, CStringGetDatum(NameStr(oldproc->proname)), PointerGetDatum(&oldproc->proargtypes), ObjectIdGetDatum(oldproc->pronamespace)); +#endif + if (is_replace) { if (HeapTupleIsValid(oldtup)) { Assert(oldtup != tuple); @@ -2092,7 +2136,16 @@ bool sql_fn_cl_rewrite_params(const Oid func_id, SQLFunctionParseInfoPtr p_info, Assert(allnumargs >= p_info->nargs); allargtypes = (Oid*)ARR_DATA_PTR(arr_all_types); - Datum proargmodes = SysCacheGetAttr(PROCNAMEARGSNSP, tuple, Anum_pg_proc_proargmodes, &isNull); + Datum proargmodes; +#ifndef ENABLE_MULTIPLE_NODES + if (t_thrd.proc->workingVersionNum < 92470) { + proargmodes = SysCacheGetAttr(PROCNAMEARGSNSP, tuple, Anum_pg_proc_proargmodes, &isNull); + } else { + proargmodes = SysCacheGetAttr(PROCALLARGS, tuple, Anum_pg_proc_proargmodes, &isNull); + } +#else + proargmodes = SysCacheGetAttr(PROCNAMEARGSNSP, tuple, Anum_pg_proc_proargmodes, &isNull); +#endif if (!isNull) { ArrayType* arr = DatumGetArrayTypeP(proargmodes); /* ensure not toasted */ bool is_char_oid_array = ARR_NDIM(arr) != 1 || allnumargs != ARR_DIMS(arr)[0] || ARR_HASNULL(arr) || @@ -2124,7 +2177,12 @@ bool sql_fn_cl_rewrite_params(const Oid func_id, SQLFunctionParseInfoPtr p_info, values[Anum_pg_proc_proallargtypes - 1] = PointerGetDatum(arr_all_types); replaces[Anum_pg_proc_proallargtypes - 1] = true; } - + if (values[Anum_pg_proc_proallargtypes - 1] != 0) { + values[Anum_pg_proc_allargtypes - 1] = values[Anum_pg_proc_proallargtypes - 1]; + } else { + values[Anum_pg_proc_allargtypes - 1] = values[Anum_pg_proc_proargtypes - 1]; + } + replaces[Anum_pg_proc_allargtypes - 1] = true; if (!rel) { rel = heap_open(ProcedureRelationId, RowExclusiveLock); } @@ -2149,11 +2207,6 @@ void sql_fn_parser_replace_param_type_for_insert(struct ParseState* pstate, int return; } f_info->replaced_argtypes[param_no] = param_new_type; -#ifdef ENABLE_MULTIPLE_NODES - if (!IS_PGXC_COORDINATOR) { - return; - } -#endif /* get the encrypted column (gs_encrypted_columns) */ HeapTuple ce_tuple = search_sys_cache_copy_ce_col_name(relid, col_name); if (!HeapTupleIsValid(ce_tuple)) { diff --git a/src/gausskernel/runtime/executor/instrument.cpp b/src/gausskernel/runtime/executor/instrument.cpp index 24be0e6ff..85b03fcc6 100644 --- a/src/gausskernel/runtime/executor/instrument.cpp +++ b/src/gausskernel/runtime/executor/instrument.cpp @@ -5,6 +5,7 @@ * * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. * Copyright (c) 2001-2012, PostgreSQL Global Development Group + * Portions Copyright (c) 2021, openGauss Contributors * * IDENTIFICATION * src/gausskernel/runtime/executor/instrument.cpp @@ -899,6 +900,10 @@ Instrumentation* ThreadInstrumentation::allocInstrSlot(int plan_node_id, int par pname = "Recursive Union"; plan_type = UTILITY_OP; break; + case T_StartWithOp: + pname = "StartWithOp"; + plan_type = UTILITY_OP; + break; case T_BitmapAnd: pname = "BitmapAnd"; plan_type = UTILITY_OP; diff --git a/src/gausskernel/runtime/executor/lightProxy.cpp b/src/gausskernel/runtime/executor/lightProxy.cpp index ca8931b5b..9cb8b93c0 100644 --- a/src/gausskernel/runtime/executor/lightProxy.cpp +++ b/src/gausskernel/runtime/executor/lightProxy.cpp @@ -44,6 +44,7 @@ #include "tcop/tcopprot.h" #include "optimizer/streamplan.h" #include "gs_ledger/blockchain.h" +#include "parser/parse_hint.h" const int MAX_COMMAND = 51; typedef struct commandType { @@ -186,7 +187,8 @@ static void report_unsupport_light(LightUnSupportType type) "not support others cmd type except I/D/U/S", "not support table entry relkind is foreign", "not support query has a statement trigger", - "not support user-defined type "}; + "not support user-defined type", + "not support query with node_name hint"}; ereport(DEBUG2, (errmodule(MOD_LIGHTPROXY), errmsg("[LIGHT PROXY] check failed with type: %s.", unsupport_msg[type]))); @@ -233,6 +235,12 @@ static bool isSupportLightQuery(Query* query) return false; } + /* do not support node_name hint due to agg function's different behavior */ + if (CheckNodeNameHint(query->hintState)) { + report_unsupport_light(NODE_NAME_UNSUPPORT); + return false; + } + foreach (item, query->rtable) { RangeTblEntry* rte = (RangeTblEntry*)lfirst(item); #ifdef ENABLE_MOT @@ -494,7 +502,7 @@ void lightProxy::sendParseIfNecessary() /* see if statement already active on the node */ for (int i = 0; i < m_entry->current_nodes_number; i++) { if (m_entry->dns_node_indices[i] == m_nodeIdx) { - if (ENABLE_CN_GPC) { + if (ENABLE_CN_GPC || IN_GPC_GRAYRELEASE_CHANGE) { need_send_again = true; } else { return; @@ -725,6 +733,7 @@ ExecNodes* lightProxy::checkLightQuery(Query* query) (void)ExecCheckRTPerms(query->rtable, true); exec_nodes = pgxc_is_query_shippable(query, 0, true); + return exec_nodes; } diff --git a/src/gausskernel/runtime/executor/nodeBitmapHeapscan.cpp b/src/gausskernel/runtime/executor/nodeBitmapHeapscan.cpp index 833f532cc..bd4365a44 100644 --- a/src/gausskernel/runtime/executor/nodeBitmapHeapscan.cpp +++ b/src/gausskernel/runtime/executor/nodeBitmapHeapscan.cpp @@ -19,6 +19,7 @@ * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -39,6 +40,7 @@ #include "access/relscan.h" #include "access/tableam.h" #include "access/transam.h" +#include "catalog/pg_partition_fn.h" #include "commands/cluster.h" #include "executor/exec/execdebug.h" #include "executor/node/nodeBitmapHeapscan.h" @@ -704,6 +706,7 @@ void ExecEndBitmapHeapScan(BitmapHeapScanState* node) Assert(node->ss.ss_currentPartition); releaseDummyRelation(&(node->ss.ss_currentPartition)); + releaseSubPartitionList(node->ss.ss_currentRelation, &(node->ss.subpartitions), NoLock); releasePartitionList(node->ss.ss_currentRelation, &(node->ss.partitions), NoLock); } @@ -926,6 +929,8 @@ static void ExecInitNextPartitionForBitmapHeapScan(BitmapHeapScanState* node) BitmapHeapScan* plan = NULL; int paramno = -1; ParamExecData* param = NULL; + int subPartParamno = -1; + ParamExecData* SubPrtParam = NULL; plan = (BitmapHeapScan*)(node->ss.ps.plan); @@ -934,6 +939,9 @@ static void ExecInitNextPartitionForBitmapHeapScan(BitmapHeapScanState* node) param = &(node->ss.ps.state->es_param_exec_vals[paramno]); node->ss.currentSlot = (int)param->value; + subPartParamno = plan->scan.plan.subparamno; + SubPrtParam = &(node->ss.ps.state->es_param_exec_vals[subPartParamno]); + /* construct a dummy relation with the nextl table partition */ currentpartition = (Partition)list_nth(node->ss.partitions, node->ss.currentSlot); currentpartitionrel = partitionGetRelation(node->ss.ss_currentRelation, currentpartition); @@ -941,11 +949,30 @@ static void ExecInitNextPartitionForBitmapHeapScan(BitmapHeapScanState* node) /* switch the partition that needs to be scanned */ Assert(PointerIsValid(node->ss.ss_currentPartition)); releaseDummyRelation(&(node->ss.ss_currentPartition)); - node->ss.ss_currentPartition = currentpartitionrel; - /* Initialize scan descriptor. */ - node->ss.ss_currentScanDesc = - scan_handler_tbl_beginscan_bm(currentpartitionrel, node->ss.ps.state->es_snapshot, 0, NULL, &node->ss); + if (currentpartitionrel->partMap != NULL) { + Partition currentSubPartition = NULL; + List* currentSubPartitionList = NULL; + Relation currentSubPartitionRel = NULL; + Assert(SubPrtParam != NULL); + currentSubPartitionList = (List *)list_nth(node->ss.subpartitions, node->ss.currentSlot); + currentSubPartition = (Partition)list_nth(currentSubPartitionList, (int)SubPrtParam->value); + currentSubPartitionRel = partitionGetRelation(currentpartitionrel, currentSubPartition); + releaseDummyRelation(&(currentpartitionrel)); + + node->ss.ss_currentPartition = currentSubPartitionRel; + node->gpi_scan->parentRelation = currentpartitionrel; + + /* Initialize scan descriptor. */ + node->ss.ss_currentScanDesc = + scan_handler_tbl_beginscan_bm(currentSubPartitionRel, node->ss.ps.state->es_snapshot, 0, NULL, &node->ss); + } else { + node->ss.ss_currentPartition = currentpartitionrel; + + /* Initialize scan descriptor. */ + node->ss.ss_currentScanDesc = + scan_handler_tbl_beginscan_bm(currentpartitionrel, node->ss.ps.state->es_snapshot, 0, NULL, &node->ss); + } } /* @@ -985,6 +1012,7 @@ static void ExecInitPartitionForBitmapHeapScan(BitmapHeapScanState* scanstate, E } else { resultPlan = plan->scan.pruningInfo; } + if (resultPlan->ls_rangeSelectedPartitions != NULL) { scanstate->ss.part_id = resultPlan->ls_rangeSelectedPartitions->length; } else { @@ -1004,6 +1032,30 @@ static void ExecInitPartitionForBitmapHeapScan(BitmapHeapScanState* scanstate, E tablepartitionid = getPartitionOidFromSequence(currentRelation, partSeq); tablepartition = partitionOpen(currentRelation, tablepartitionid, lock); scanstate->ss.partitions = lappend(scanstate->ss.partitions, tablepartition); + + if (resultPlan->ls_selectedSubPartitions != NIL) { + Relation partRelation = partitionGetRelation(currentRelation, tablepartition); + SubPartitionPruningResult* subPartPruningResult = + GetSubPartitionPruningResult(resultPlan->ls_selectedSubPartitions, partSeq); + if (subPartPruningResult == NULL) { + continue; + } + List *subpart_seqs = subPartPruningResult->ls_selectedSubPartitions; + List *subpartition = NULL; + ListCell *lc = NULL; + foreach (lc, subpart_seqs) { + Oid subpartitionid = InvalidOid; + int subpartSeq = lfirst_int(lc); + + subpartitionid = getPartitionOidFromSequence(partRelation, subpartSeq); + Partition subpart = partitionOpen(partRelation, subpartitionid, lock); + subpartition = lappend(subpartition, subpart); + } + releaseDummyRelation(&(partRelation)); + scanstate->ss.subPartLengthList = + lappend_int(scanstate->ss.subPartLengthList, list_length(subpartition)); + scanstate->ss.subpartitions = lappend(scanstate->ss.subpartitions, subpartition); + } } } } diff --git a/src/gausskernel/runtime/executor/nodeBitmapIndexscan.cpp b/src/gausskernel/runtime/executor/nodeBitmapIndexscan.cpp index 126f3c839..5aa136952 100644 --- a/src/gausskernel/runtime/executor/nodeBitmapIndexscan.cpp +++ b/src/gausskernel/runtime/executor/nodeBitmapIndexscan.cpp @@ -6,6 +6,7 @@ * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -249,8 +250,15 @@ void ExecEndBitmapIndexScan(BitmapIndexScanState* node) Assert(PointerIsValid(node->biss_CurrentIndexPartition)); releaseDummyRelation(&(node->biss_CurrentIndexPartition)); - /* close index partition */ - releasePartitionList(node->biss_RelationDesc, &(node->biss_IndexPartitionList), NoLock); + Oid heapOid = node->biss_RelationDesc->rd_index->indrelid; + Relation heapRelation = heap_open(heapOid, AccessShareLock); + if (RelationIsSubPartitioned(heapRelation)) { + releaseSubPartitionList(node->biss_RelationDesc, &(node->biss_IndexPartitionList), NoLock); + } else { + /* close index partition */ + releasePartitionList(node->biss_RelationDesc, &(node->biss_IndexPartitionList), NoLock); + } + heap_close(heapRelation, AccessShareLock); } } @@ -391,7 +399,12 @@ BitmapIndexScanState* ExecInitBitmapIndexScan(BitmapIndexScan* node, EState* est if (indexstate->biss_IndexPartitionList != NIL) { /* get the first index partition */ - currentindex = (Partition)list_nth(indexstate->biss_IndexPartitionList, 0); + if (RelationIsSubPartitioned(currentrel)) { + List *currentindexlist = (List *)list_nth(indexstate->biss_IndexPartitionList, 0); + currentindex = (Partition)list_nth(currentindexlist, 0); + } else { + currentindex = (Partition)list_nth(indexstate->biss_IndexPartitionList, 0); + } indexstate->biss_CurrentIndexPartition = partitionGetRelation(indexstate->biss_RelationDesc, currentindex); @@ -446,6 +459,8 @@ static void ExecInitNextPartitionForBitmapIndexScan(BitmapIndexScanState* node) BitmapIndexScan* plan = NULL; int paramno = -1; ParamExecData* param = NULL; + int subPartParamno = -1; + ParamExecData* SubPrtParam = NULL; plan = (BitmapIndexScan*)(node->ss.ps.plan); @@ -454,10 +469,21 @@ static void ExecInitNextPartitionForBitmapIndexScan(BitmapIndexScanState* node) param = &(node->ss.ps.state->es_param_exec_vals[paramno]); node->ss.currentSlot = (int)param->value; + subPartParamno = plan->scan.plan.subparamno; + SubPrtParam = &(node->ss.ps.state->es_param_exec_vals[subPartParamno]); + node->ss.ss_currentScanDesc = NULL; - /* get the index partition for the special partitioned index and table partition */ - currentindexpartition = (Partition)list_nth(node->biss_IndexPartitionList, node->ss.currentSlot); + Oid heapOid = node->biss_RelationDesc->rd_index->indrelid; + Relation heapRelation = heap_open(heapOid, AccessShareLock); + if (RelationIsSubPartitioned(heapRelation)) { + List *subPartList = (List *)list_nth(node->biss_IndexPartitionList, + node->ss.currentSlot); + currentindexpartition = (Partition)list_nth(subPartList, (int)SubPrtParam->value); + } else { + /* get the index partition for the special partitioned index and table partition */ + currentindexpartition = (Partition)list_nth(node->biss_IndexPartitionList, node->ss.currentSlot); + } /* construct a relation for the index partition */ currentindexpartitionrel = partitionGetRelation(node->biss_RelationDesc, currentindexpartition); @@ -470,6 +496,8 @@ static void ExecInitNextPartitionForBitmapIndexScan(BitmapIndexScanState* node) node->biss_ScanDesc = scan_handler_idx_beginscan_bitmap( node->biss_CurrentIndexPartition, node->ss.ps.state->es_snapshot, node->biss_NumScanKeys, (ScanState*)node); + heap_close(heapRelation, AccessShareLock); + Assert(PointerIsValid(node->biss_ScanDesc)); } @@ -536,29 +564,79 @@ void ExecInitPartitionForBitmapIndexScan(BitmapIndexScanState* indexstate, EStat tablepartitionid = getPartitionOidFromSequence(rel, partSeq); tablePartition = partitionOpen(rel, tablepartitionid, lock); - partitionIndexOidList = PartitionGetPartIndexList(tablePartition); - Assert(PointerIsValid(partitionIndexOidList)); - if (!PointerIsValid(partitionIndexOidList)) { - ereport(ERROR, - (errcode(ERRCODE_WRONG_OBJECT_TYPE), - errmodule(MOD_EXECUTOR), - errmsg("no local indexes found for partition %s BitmapIndexScan", - PartitionGetPartitionName(tablePartition)))); - } - indexpartitionid = searchPartitionIndexOid(indexid, partitionIndexOidList); - list_free_ext(partitionIndexOidList); - partitionClose(rel, tablePartition, NoLock); + if (RelationIsSubPartitioned(rel)) { + ListCell *lc = NULL; + SubPartitionPruningResult *subPartPruningResult = + GetSubPartitionPruningResult(resultPlan->ls_selectedSubPartitions, partSeq); + if (subPartPruningResult == NULL) { + continue; + } + List *subpartList = subPartPruningResult->ls_selectedSubPartitions; + List *subIndexList = NULL; - indexpartition = partitionOpen(indexstate->biss_RelationDesc, indexpartitionid, lock); - if (indexpartition->pd_part->indisusable == false) { - ereport(ERROR, - (errcode(ERRCODE_INDEX_CORRUPTED), - errmodule(MOD_EXECUTOR), - errmsg("can't initialize bitmap index scans using unusable local index \"%s\" for partition", - PartitionGetPartitionName(indexpartition)))); + foreach (lc, subpartList) + { + int subpartSeq = lfirst_int(lc); + Relation tablepartrel = partitionGetRelation(rel, tablePartition); + Oid subpartitionid = getPartitionOidFromSequence(tablepartrel, subpartSeq); + Partition subpart = partitionOpen(tablepartrel, subpartitionid, AccessShareLock); + + partitionIndexOidList = PartitionGetPartIndexList(subpart); + + Assert(partitionIndexOidList != NULL); + if (!PointerIsValid(partitionIndexOidList)) { + ereport(ERROR, (errmodule(MOD_OPT), errcode(ERRCODE_WRONG_OBJECT_TYPE), + errmsg("no local indexes found for partition %s", + PartitionGetPartitionName(subpart)))); + } + + indexpartitionid = searchPartitionIndexOid(indexid, partitionIndexOidList); + indexpartition = partitionOpen(indexstate->biss_RelationDesc, indexpartitionid, AccessShareLock); + + list_free_ext(partitionIndexOidList); + partitionClose(tablepartrel, subpart, AccessShareLock); + releaseDummyRelation(&tablepartrel); + + if (indexpartition->pd_part->indisusable == false) { + ereport( + ERROR, + (errcode(ERRCODE_INDEX_CORRUPTED), errmodule(MOD_EXECUTOR), + errmsg( + "can't initialize bitmap index scans using unusable local index \"%s\" for partition", + PartitionGetPartitionName(indexpartition)))); + } + + subIndexList = lappend(subIndexList, indexpartition); + } + + partitionClose(rel, tablePartition, NoLock); + indexstate->biss_IndexPartitionList = lappend(indexstate->biss_IndexPartitionList, + subIndexList); + } else { + partitionIndexOidList = PartitionGetPartIndexList(tablePartition); + Assert(PointerIsValid(partitionIndexOidList)); + if (!PointerIsValid(partitionIndexOidList)) { + ereport(ERROR, + (errcode(ERRCODE_WRONG_OBJECT_TYPE), + errmodule(MOD_EXECUTOR), + errmsg("no local indexes found for partition %s BitmapIndexScan", + PartitionGetPartitionName(tablePartition)))); + } + indexpartitionid = searchPartitionIndexOid(indexid, partitionIndexOidList); + list_free_ext(partitionIndexOidList); + partitionClose(rel, tablePartition, NoLock); + + indexpartition = partitionOpen(indexstate->biss_RelationDesc, indexpartitionid, lock); + if (indexpartition->pd_part->indisusable == false) { + ereport( + ERROR, + (errcode(ERRCODE_INDEX_CORRUPTED), errmodule(MOD_EXECUTOR), + errmsg("can't initialize bitmap index scans using unusable local index \"%s\" for partition", + PartitionGetPartitionName(indexpartition)))); + } + /* add index partition to list for the following scan */ + indexstate->biss_IndexPartitionList = lappend(indexstate->biss_IndexPartitionList, indexpartition); } - /* add index partition to list for the following scan */ - indexstate->biss_IndexPartitionList = lappend(indexstate->biss_IndexPartitionList, indexpartition); } } } diff --git a/src/gausskernel/runtime/executor/nodeIndexonlyscan.cpp b/src/gausskernel/runtime/executor/nodeIndexonlyscan.cpp index 7e84aa38b..ab3225f0c 100644 --- a/src/gausskernel/runtime/executor/nodeIndexonlyscan.cpp +++ b/src/gausskernel/runtime/executor/nodeIndexonlyscan.cpp @@ -6,6 +6,7 @@ * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -473,11 +474,19 @@ void ExecEndIndexOnlyScan(IndexOnlyScanState* node) Assert(PointerIsValid(node->ss.ss_currentPartition)); releaseDummyRelation(&(node->ss.ss_currentPartition)); - /* close index partition */ - releasePartitionList(node->ioss_RelationDesc, &(node->ioss_IndexPartitionList), NoLock); + Oid heapOid = node->ioss_RelationDesc->rd_index->indrelid; + Relation heapRelation = heap_open(heapOid, AccessShareLock); + if (RelationIsSubPartitioned(heapRelation)) { + releaseSubPartitionList(node->ioss_RelationDesc, &(node->ioss_IndexPartitionList), NoLock); + releaseSubPartitionList(node->ss.ss_currentRelation, &(node->ss.subpartitions), NoLock); + } else { + /* close index partition */ + releasePartitionList(node->ioss_RelationDesc, &(node->ioss_IndexPartitionList), NoLock); - /* close table partition */ - releasePartitionList(node->ss.ss_currentRelation, &(node->ss.partitions), NoLock); + /* close table partition */ + releasePartitionList(node->ss.ss_currentRelation, &(node->ss.partitions), NoLock); + } + heap_close(heapRelation, AccessShareLock); } } @@ -701,8 +710,13 @@ IndexOnlyScanState* ExecInitIndexOnlyScan(IndexOnlyScan* node, EState* estate, i indexstate->ss.ss_currentPartition = partitionGetRelation(indexstate->ss.ss_currentRelation, currentpartition); + if (RelationIsSubPartitioned(indexstate->ss.ss_currentRelation)) { + List *currentindexlist = (List *)list_nth(indexstate->ioss_IndexPartitionList, 0); + currentindex = (Partition)list_nth(currentindexlist, 0); + } else { + currentindex = (Partition)list_nth(indexstate->ioss_IndexPartitionList, 0); + } /* construct a dummy index relation with the first table partition for following scan */ - currentindex = (Partition)list_nth(indexstate->ioss_IndexPartitionList, 0); indexstate->ioss_CurrentIndexPartition = partitionGetRelation(indexstate->ioss_RelationDesc, currentindex); @@ -801,11 +815,16 @@ static void ExecInitNextIndexPartitionForIndexScanOnly(IndexOnlyScanState* node) { Partition currentpartition = NULL; Relation currentpartitionrel = NULL; + List *subPartList = NIL; + Partition currentSubPartition = NULL; + Relation currentSubPartitionRel = NULL; Partition currentindexpartition = NULL; Relation currentindexpartitionrel = NULL; IndexOnlyScan* plan = NULL; int paramno = -1; ParamExecData* param = NULL; + int subPartParamno = -1; + ParamExecData* subPartParam = NULL; if (BufferIsValid(node->ioss_VMBuffer)) { ReleaseBuffer(node->ioss_VMBuffer); @@ -818,6 +837,8 @@ static void ExecInitNextIndexPartitionForIndexScanOnly(IndexOnlyScanState* node) paramno = plan->scan.plan.paramno; param = &(node->ss.ps.state->es_param_exec_vals[paramno]); node->ss.currentSlot = (int)param->value; + subPartParamno = plan->scan.plan.subparamno; + subPartParam = &(node->ss.ps.state->es_param_exec_vals[subPartParamno]); /* construct a dummy table relation with the next table partition*/ currentpartition = (Partition)list_nth(node->ss.partitions, node->ss.currentSlot); @@ -828,8 +849,23 @@ static void ExecInitNextIndexPartitionForIndexScanOnly(IndexOnlyScanState* node) releaseDummyRelation(&(node->ss.ss_currentPartition)); node->ss.ss_currentPartition = currentpartitionrel; - /* construct a dummy index relation with the next index partition*/ - currentindexpartition = (Partition)list_nth(node->ioss_IndexPartitionList, node->ss.currentSlot); + Oid heapOid = node->ioss_RelationDesc->rd_index->indrelid; + Relation heapRelation = heap_open(heapOid, AccessShareLock); + if (RelationIsSubPartitioned(heapRelation)) { + /* construct a dummy table relation with the next table subpartition */ + subPartList = (List*)list_nth(node->ss.subpartitions, node->ss.currentSlot); + currentSubPartition = (Partition)list_nth(subPartList, (int)subPartParam->value); + currentSubPartitionRel = partitionGetRelation(currentpartitionrel, currentSubPartition); + releaseDummyRelation(¤tpartitionrel); + node->ss.ss_currentPartition = currentSubPartitionRel; + /* construct a dummy index relation with the next index subpartition */ + List *subPartIndexList = (List *)list_nth(node->ioss_IndexPartitionList, node->ss.currentSlot); + currentindexpartition = (Partition)list_nth(subPartIndexList, (int)subPartParam->value); + } else { + /* construct a dummy index relation with the next index partition*/ + currentindexpartition = (Partition)list_nth(node->ioss_IndexPartitionList, node->ss.currentSlot); + } + currentindexpartitionrel = partitionGetRelation(node->ioss_RelationDesc, currentindexpartition); /* update scan-related index partition with the relation construced before */ @@ -850,6 +886,7 @@ static void ExecInitNextIndexPartitionForIndexScanOnly(IndexOnlyScanState* node) node->ioss_NumScanKeys, node->ioss_OrderByKeys, node->ioss_NumOrderByKeys); + heap_close(heapRelation, AccessShareLock); } @@ -916,26 +953,67 @@ void ExecInitPartitionForIndexOnlyScan(IndexOnlyScanState* indexstate, EState* e tablepartitionid = getPartitionOidFromSequence(currentRelation, partSeq); tablepartition = partitionOpen(currentRelation, tablepartitionid, lock); indexstate->ss.partitions = lappend(indexstate->ss.partitions, tablepartition); + if (RelationIsSubPartitioned(currentRelation)) { + ListCell *lc = NULL; + SubPartitionPruningResult *subPartPruningResult = + GetSubPartitionPruningResult(resultPlan->ls_selectedSubPartitions, partSeq); + if (subPartPruningResult == NULL) { + continue; + } + List *subpartList = subPartPruningResult->ls_selectedSubPartitions; + List *subIndexList = NIL; + List *subPartList = NIL; + Relation tablepartrel = partitionGetRelation(currentRelation, tablepartition); + foreach (lc, subpartList) { + int subpartSeq = lfirst_int(lc); + Oid subpartitionid = getPartitionOidFromSequence(tablepartrel, subpartSeq); + Partition subpart = partitionOpen(tablepartrel, subpartitionid, AccessShareLock); + subPartList = lappend(subPartList, subpart); - /* get index partition and add it to a list for following scan */ - partitionIndexOidList = PartitionGetPartIndexList(tablepartition); - Assert(PointerIsValid(partitionIndexOidList)); - if (!PointerIsValid(partitionIndexOidList)) { - ereport(ERROR, - (errcode(ERRCODE_WRONG_OBJECT_TYPE), - errmsg("no local indexes found for partition %s", PartitionGetPartitionName(tablepartition)))); - } - indexpartitionid = searchPartitionIndexOid(indexid, partitionIndexOidList); - list_free_ext(partitionIndexOidList); + partitionIndexOidList = PartitionGetPartIndexList(subpart); + Assert(PointerIsValid(partitionIndexOidList)); + if (!PointerIsValid(partitionIndexOidList)) { + ereport(ERROR, + (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("no local indexes found for partition %s", + PartitionGetPartitionName(subpart)))); + } + indexpartitionid = searchPartitionIndexOid(indexid, partitionIndexOidList); + indexpartition = partitionOpen(indexstate->ioss_RelationDesc, indexpartitionid, AccessShareLock); + list_free_ext(partitionIndexOidList); - indexpartition = partitionOpen(indexstate->ioss_RelationDesc, indexpartitionid, lock); - if (indexpartition->pd_part->indisusable == false) { - ereport(ERROR, - (errcode(ERRCODE_INDEX_CORRUPTED), - errmsg("can't initialize index-only scans using unusable local index \"%s\"", - PartitionGetPartitionName(indexpartition)))); + if (indexpartition->pd_part->indisusable == false) { + ereport(ERROR, (errcode(ERRCODE_INDEX_CORRUPTED), + errmsg("can't initialize index-only scans using unusable local index \"%s\"", + PartitionGetPartitionName(indexpartition)))); + } + subIndexList = lappend(subIndexList, indexpartition); + } + releaseDummyRelation(&tablepartrel); + partitionClose(currentRelation, tablepartition, lock); + indexstate->ss.subPartLengthList = + lappend_int(indexstate->ss.subPartLengthList, list_length(subPartList)); + indexstate->ss.subpartitions = lappend(indexstate->ss.subpartitions, subPartList); + indexstate->ioss_IndexPartitionList = lappend(indexstate->ioss_IndexPartitionList, subIndexList); + } else { + /* get index partition and add it to a list for following scan */ + partitionIndexOidList = PartitionGetPartIndexList(tablepartition); + Assert(PointerIsValid(partitionIndexOidList)); + if (!PointerIsValid(partitionIndexOidList)) { + ereport(ERROR, + (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("no local indexes found for partition %s", + PartitionGetPartitionName(tablepartition)))); + } + indexpartitionid = searchPartitionIndexOid(indexid, partitionIndexOidList); + list_free_ext(partitionIndexOidList); + + indexpartition = partitionOpen(indexstate->ioss_RelationDesc, indexpartitionid, lock); + if (indexpartition->pd_part->indisusable == false) { + ereport(ERROR, (errcode(ERRCODE_INDEX_CORRUPTED), + errmsg("can't initialize index-only scans using unusable local index \"%s\"", + PartitionGetPartitionName(indexpartition)))); + } + indexstate->ioss_IndexPartitionList = lappend(indexstate->ioss_IndexPartitionList, indexpartition); } - indexstate->ioss_IndexPartitionList = lappend(indexstate->ioss_IndexPartitionList, indexpartition); } } } diff --git a/src/gausskernel/runtime/executor/nodeIndexscan.cpp b/src/gausskernel/runtime/executor/nodeIndexscan.cpp index 2422050c0..2bcc1146b 100644 --- a/src/gausskernel/runtime/executor/nodeIndexscan.cpp +++ b/src/gausskernel/runtime/executor/nodeIndexscan.cpp @@ -86,7 +86,6 @@ static TupleTableSlot* IndexNext(IndexScanState* node) /* * ok, now that we have what we need, fetch the next tuple. */ - // while ((tuple = scan_handler_idx_getnext(scandesc, direction)) != NULL) { // we should change abs_idx_getnext to call IdxScanAm(scan)->idx_getnext and channge .idx_getnext in g_HeapIdxAm to // IndexGetnextSlot while (true) { @@ -479,8 +478,13 @@ void ExecEndIndexScan(IndexScanState* node) Assert(PointerIsValid(node->ss.ss_currentPartition)); releaseDummyRelation(&(node->ss.ss_currentPartition)); - /* close index partition */ - releasePartitionList(node->iss_RelationDesc, &(node->iss_IndexPartitionList), NoLock); + if (RelationIsSubPartitioned(relation)) { + releaseSubPartitionList(index_relation_desc, &(node->iss_IndexPartitionList), NoLock); + releaseSubPartitionList(node->ss.ss_currentRelation, &(node->ss.subpartitions), NoLock); + } else { + /* close index partition */ + releasePartitionList(node->iss_RelationDesc, &(node->iss_IndexPartitionList), NoLock); + } /* close table partition */ releasePartitionList(node->ss.ss_currentRelation, &(node->ss.partitions), NoLock); @@ -525,12 +529,113 @@ void ExecIndexRestrPos(IndexScanState* node) * index relation. * ---------------------------------------------------------------- */ +void ExecInitIndexRelation(IndexScanState* node, EState* estate, int eflags) +{ + IndexScanState* index_state = node; + Snapshot scanSnap; + Relation current_relation = index_state->ss.ss_currentRelation; + IndexScan *index_scan = (IndexScan *)node->ss.ps.plan; + + /* + * Choose user-specified snapshot if TimeCapsule clause exists, otherwise + * estate->es_snapshot instead. + */ + scanSnap = TvChooseScanSnap(index_state->iss_RelationDesc, &index_scan->scan, &index_state->ss); + + /* deal with partition info */ + if (index_state->ss.isPartTbl) { + index_state->iss_ScanDesc = NULL; + + if (index_scan->scan.itrs > 0) { + Partition current_partition = NULL; + Partition currentindex = NULL; + + /* Initialize table partition list and index partition list for following scan */ + ExecInitPartitionForIndexScan(index_state, estate); + + if (index_state->ss.partitions != NIL) { + /* construct a dummy relation with the first table partition for following scan */ + if (RelationIsSubPartitioned(current_relation)) { + Partition subOnePart = (Partition)list_nth(index_state->ss.partitions, index_state->ss.currentSlot); + List *currentSubpartList = (List *)list_nth(index_state->ss.subpartitions, 0); + List *currentindexlist = (List *)list_nth(index_state->iss_IndexPartitionList, 0); + current_partition = (Partition)list_nth(currentSubpartList, 0); + currentindex = (Partition)list_nth(currentindexlist, 0); + Relation subOnePartRel = partitionGetRelation(index_state->ss.ss_currentRelation, subOnePart); + index_state->ss.ss_currentPartition = + partitionGetRelation(subOnePartRel, current_partition); + releaseDummyRelation(&subOnePartRel); + } else { + current_partition = (Partition)list_nth(index_state->ss.partitions, 0); + currentindex = (Partition)list_nth(index_state->iss_IndexPartitionList, 0); + index_state->ss.ss_currentPartition = + partitionGetRelation(index_state->ss.ss_currentRelation, current_partition); + } + + index_state->iss_CurrentIndexPartition = + partitionGetRelation(index_state->iss_RelationDesc, currentindex); + + /* + * Verify if a DDL operation that froze all tuples in the relation + * occured after taking the snapshot. + */ + if (RelationIsUstoreFormat(index_state->ss.ss_currentPartition)) { + TransactionId relfrozenxid64 = InvalidTransactionId; + getPartitionRelxids(index_state->ss.ss_currentPartition, &relfrozenxid64); + if (TransactionIdPrecedes(FirstNormalTransactionId, scanSnap->xmax) && + !TransactionIdIsCurrentTransactionId(relfrozenxid64) && + TransactionIdPrecedes(scanSnap->xmax, relfrozenxid64)) { + ereport(ERROR, + (errcode(ERRCODE_SNAPSHOT_INVALID), + (errmsg("Snapshot too old.")))); + } + } + + /* Initialize scan descriptor for partitioned table */ + index_state->iss_ScanDesc = scan_handler_idx_beginscan(index_state->ss.ss_currentPartition, + index_state->iss_CurrentIndexPartition, + scanSnap, + index_state->iss_NumScanKeys, + index_state->iss_NumOrderByKeys, + (ScanState*)index_state); + } + } + } else { + /* + * Verify if a DDL operation that froze all tuples in the relation + * occured after taking the snapshot. + */ + if (RelationIsUstoreFormat(current_relation)) { + TransactionId relfrozenxid64 = InvalidTransactionId; + getRelationRelxids(current_relation, &relfrozenxid64); + if (TransactionIdPrecedes(FirstNormalTransactionId, scanSnap->xmax) && + !TransactionIdIsCurrentTransactionId(relfrozenxid64) && + TransactionIdPrecedes(scanSnap->xmax, relfrozenxid64)) { + ereport(ERROR, + (errcode(ERRCODE_SNAPSHOT_INVALID), + (errmsg("Snapshot too old.")))); + } + } + + /* + * Initialize scan descriptor. + */ + index_state->iss_ScanDesc = scan_handler_idx_beginscan(current_relation, + index_state->iss_RelationDesc, + scanSnap, + index_state->iss_NumScanKeys, + index_state->iss_NumOrderByKeys, + (ScanState*)index_state); + } + + return; +} + IndexScanState* ExecInitIndexScan(IndexScan* node, EState* estate, int eflags) { IndexScanState* index_state = NULL; Relation current_relation; bool relis_target = false; - Snapshot scanSnap; gstrace_entry(GS_TRC_ID_ExecInitIndexScan); /* @@ -566,8 +671,6 @@ IndexScanState* ExecInitIndexScan(IndexScan* node, EState* estate, int eflags) index_state->ss.ps.qual = (List*)ExecInitExpr((Expr*)node->scan.plan.qual, (PlanState*)index_state); index_state->indexqualorig = (List*)ExecInitExpr((Expr*)node->indexqualorig, (PlanState*)index_state); - - /* * open the base relation and acquire appropriate lock on it. */ @@ -675,86 +778,8 @@ IndexScanState* ExecInitIndexScan(IndexScan* node, EState* estate, int eflags) index_state->iss_RuntimeContext = NULL; } - /* - * Choose user-specified snapshot if TimeCapsule clause exists, otherwise - * estate->es_snapshot instead. - */ - scanSnap = TvChooseScanSnap(index_state->iss_RelationDesc, &node->scan, &index_state->ss); - /* deal with partition info */ - if (node->scan.isPartTbl) { - index_state->iss_ScanDesc = NULL; - - if (node->scan.itrs > 0) { - Partition current_partition = NULL; - Partition currentindex = NULL; - - /* Initialize table partition list and index partition list for following scan */ - ExecInitPartitionForIndexScan(index_state, estate); - - if (index_state->ss.partitions != NIL) { - /* construct a dummy relation with the first table partition for following scan */ - current_partition = (Partition)list_nth(index_state->ss.partitions, 0); - index_state->ss.ss_currentPartition = - partitionGetRelation(index_state->ss.ss_currentRelation, current_partition); - - /* construct a dummy relation with the first table partition for following scan */ - currentindex = (Partition)list_nth(index_state->iss_IndexPartitionList, 0); - index_state->iss_CurrentIndexPartition = - partitionGetRelation(index_state->iss_RelationDesc, currentindex); - - /* - * Verify if a DDL operation that froze all tuples in the relation - * occured after taking the snapshot. - */ - if (RelationIsUstoreFormat(index_state->ss.ss_currentPartition)) { - TransactionId relfrozenxid64 = InvalidTransactionId; - getPartitionRelxids(index_state->ss.ss_currentPartition, &relfrozenxid64); - if (TransactionIdPrecedes(FirstNormalTransactionId, scanSnap->xmax) && - !TransactionIdIsCurrentTransactionId(relfrozenxid64) && - TransactionIdPrecedes(scanSnap->xmax, relfrozenxid64)) { - ereport(ERROR, - (errcode(ERRCODE_SNAPSHOT_INVALID), - (errmsg("Snapshot too old.")))); - } - } - - /* Initialize scan descriptor for partitioned table */ - index_state->iss_ScanDesc = scan_handler_idx_beginscan(index_state->ss.ss_currentPartition, - index_state->iss_CurrentIndexPartition, - scanSnap, - index_state->iss_NumScanKeys, - index_state->iss_NumOrderByKeys, - (ScanState*)index_state); - } - } - } else { - /* - * Verify if a DDL operation that froze all tuples in the relation - * occured after taking the snapshot. - */ - if (RelationIsUstoreFormat(current_relation)) { - TransactionId relfrozenxid64 = InvalidTransactionId; - getRelationRelxids(current_relation, &relfrozenxid64); - if (TransactionIdPrecedes(FirstNormalTransactionId, scanSnap->xmax) && - !TransactionIdIsCurrentTransactionId(relfrozenxid64) && - TransactionIdPrecedes(scanSnap->xmax, relfrozenxid64)) { - ereport(ERROR, - (errcode(ERRCODE_SNAPSHOT_INVALID), - (errmsg("Snapshot too old.")))); - } - } - - /* - * Initialize scan descriptor. - */ - index_state->iss_ScanDesc = scan_handler_idx_beginscan(current_relation, - index_state->iss_RelationDesc, - scanSnap, - index_state->iss_NumScanKeys, - index_state->iss_NumOrderByKeys, - (ScanState*)index_state); - } + ExecInitIndexRelation(index_state, estate, eflags); /* * If no run-time keys to calculate, go ahead and pass the scankeys to the @@ -1295,6 +1320,8 @@ static void ExecInitNextPartitionForIndexScan(IndexScanState* node) IndexScan* plan = NULL; int param_no = -1; ParamExecData* param = NULL; + int subPartParamno = -1; + ParamExecData* SubPrtParam = NULL; plan = (IndexScan*)(node->ss.ps.plan); @@ -1303,25 +1330,44 @@ static void ExecInitNextPartitionForIndexScan(IndexScanState* node) param = &(node->ss.ps.state->es_param_exec_vals[param_no]); node->ss.currentSlot = (int)param->value; - /* construct a dummy relation with the next table partition */ - current_partition = (Partition)list_nth(node->ss.partitions, node->ss.currentSlot); - current_partition_rel = partitionGetRelation(node->ss.ss_currentRelation, current_partition); + subPartParamno = plan->scan.plan.subparamno; + SubPrtParam = &(node->ss.ps.state->es_param_exec_vals[subPartParamno]); - /* update scan-related partition */ - releaseDummyRelation(&(node->ss.ss_currentPartition)); - node->ss.ss_currentPartition = current_partition_rel; + Oid heapOid = node->iss_RelationDesc->rd_index->indrelid; + Relation heapRelation = heap_open(heapOid, AccessShareLock); /* no heap scan here */ node->ss.ss_currentScanDesc = NULL; /* construct a dummy relation with the next index partition */ - current_index_partition = (Partition)list_nth(node->iss_IndexPartitionList, node->ss.currentSlot); + if (RelationIsSubPartitioned(heapRelation)) { + Partition subOnePart = (Partition)list_nth(node->ss.partitions, node->ss.currentSlot); + List *subPartList = (List *)list_nth(node->ss.subpartitions, node->ss.currentSlot); + List *subIndexList = (List *)list_nth(node->iss_IndexPartitionList, + node->ss.currentSlot); + current_partition = (Partition)list_nth(subPartList, (int)SubPrtParam->value); + + Relation subOnePartRel = partitionGetRelation(node->ss.ss_currentRelation, subOnePart); + + current_partition_rel = partitionGetRelation(subOnePartRel, current_partition); + current_index_partition = (Partition)list_nth(subIndexList, (int)SubPrtParam->value); + releaseDummyRelation(&subOnePartRel); + } else { + current_partition = (Partition)list_nth(node->ss.partitions, node->ss.currentSlot); + current_partition_rel = partitionGetRelation(node->ss.ss_currentRelation, current_partition); + current_index_partition = (Partition)list_nth(node->iss_IndexPartitionList, node->ss.currentSlot); + } + current_index_partition_rel = partitionGetRelation(node->iss_RelationDesc, current_index_partition); Assert(PointerIsValid(node->iss_CurrentIndexPartition)); releaseDummyRelation(&(node->iss_CurrentIndexPartition)); node->iss_CurrentIndexPartition = current_index_partition_rel; + /* update scan-related partition */ + releaseDummyRelation(&(node->ss.ss_currentPartition)); + node->ss.ss_currentPartition = current_partition_rel; + /* Initialize scan descriptor. */ node->iss_ScanDesc = scan_handler_idx_beginscan(node->ss.ss_currentPartition, node->iss_CurrentIndexPartition, @@ -1335,6 +1381,8 @@ static void ExecInitNextPartitionForIndexScan(IndexScanState* node) node->iss_ScanDesc, node->iss_ScanKeys, node->iss_NumScanKeys, node->iss_OrderByKeys, node->iss_NumOrderByKeys); } + + heap_close(heapRelation, AccessShareLock); } /* @@ -1365,6 +1413,7 @@ void ExecInitPartitionForIndexScan(IndexScanState* index_state, EState* estate) if (plan->scan.itrs > 0) { Oid indexid = plan->indexid; bool relis_target = false; + Partition indexpartition = NULL; LOCKMODE lock; /* @@ -1403,25 +1452,78 @@ void ExecInitPartitionForIndexScan(IndexScanState* index_state, EState* estate) table_partition = partitionOpen(current_relation, tablepartitionid, lock); index_state->ss.partitions = lappend(index_state->ss.partitions, table_partition); - /* get index partition and add it to a list for following scan */ - partitionIndexOidList = PartitionGetPartIndexList(table_partition); - Assert(PointerIsValid(partitionIndexOidList)); - if (!PointerIsValid(partitionIndexOidList)) { - ereport(ERROR, - (errcode(ERRCODE_WRONG_OBJECT_TYPE), - errmsg("no local indexes found for partition %s", PartitionGetPartitionName(table_partition)))); - } - indexpartitionid = searchPartitionIndexOid(indexid, partitionIndexOidList); - list_free_ext(partitionIndexOidList); + if (RelationIsSubPartitioned(current_relation)) { + ListCell *lc = NULL; + SubPartitionPruningResult* subPartPruningResult = + GetSubPartitionPruningResult(resultPlan->ls_selectedSubPartitions, partSeq); + if (subPartPruningResult == NULL) { + continue; + } + List *subpartList = subPartPruningResult->ls_selectedSubPartitions; + List *subIndexList = NULL; + List *subRelationList = NULL; - index_partition = partitionOpen(index_state->iss_RelationDesc, indexpartitionid, lock); - if (index_partition->pd_part->indisusable == false) { - ereport(ERROR, - (errcode(ERRCODE_INDEX_CORRUPTED), - errmsg("can't initialize index scans using unusable local index \"%s\"", - PartitionGetPartitionName(index_partition)))); + foreach (lc, subpartList) + { + int subpartSeq = lfirst_int(lc); + Relation tablepartrel = partitionGetRelation(current_relation, table_partition); + Oid subpartitionid = getPartitionOidFromSequence(tablepartrel, subpartSeq); + Partition subpart = partitionOpen(tablepartrel, subpartitionid, AccessShareLock); + + partitionIndexOidList = PartitionGetPartIndexList(subpart); + + Assert(partitionIndexOidList != NULL); + if (!PointerIsValid(partitionIndexOidList)) { + ereport(ERROR, (errmodule(MOD_OPT), errcode(ERRCODE_WRONG_OBJECT_TYPE), + errmsg("no local indexes found for partition %s", + PartitionGetPartitionName(subpart)))); + } + + indexpartitionid = searchPartitionIndexOid(indexid, partitionIndexOidList); + list_free_ext(partitionIndexOidList); + indexpartition = partitionOpen(index_state->iss_RelationDesc, indexpartitionid, AccessShareLock); + + releaseDummyRelation(&tablepartrel); + + if (indexpartition->pd_part->indisusable == false) { + ereport( + ERROR, + (errcode(ERRCODE_INDEX_CORRUPTED), errmodule(MOD_EXECUTOR), + errmsg( + "can't initialize bitmap index scans using unusable local index \"%s\" for partition", + PartitionGetPartitionName(indexpartition)))); + } + + subIndexList = lappend(subIndexList, indexpartition); + subRelationList = lappend(subRelationList, subpart); + } + + index_state->iss_IndexPartitionList = lappend(index_state->iss_IndexPartitionList, + subIndexList); + index_state->ss.subpartitions = lappend(index_state->ss.subpartitions, subRelationList); + index_state->ss.subPartLengthList = + lappend_int(index_state->ss.subPartLengthList, list_length(subIndexList)); + } else { + /* get index partition and add it to a list for following scan */ + partitionIndexOidList = PartitionGetPartIndexList(table_partition); + Assert(PointerIsValid(partitionIndexOidList)); + if (!PointerIsValid(partitionIndexOidList)) { + ereport(ERROR, + (errcode(ERRCODE_WRONG_OBJECT_TYPE), errmsg("no local indexes found for partition %s", + PartitionGetPartitionName(table_partition)))); + } + indexpartitionid = searchPartitionIndexOid(indexid, partitionIndexOidList); + list_free_ext(partitionIndexOidList); + + index_partition = partitionOpen(index_state->iss_RelationDesc, indexpartitionid, lock); + if (index_partition->pd_part->indisusable == false) { + ereport(ERROR, + (errcode(ERRCODE_INDEX_CORRUPTED), + errmsg("can't initialize index scans using unusable local index \"%s\"", + PartitionGetPartitionName(index_partition)))); + } + index_state->iss_IndexPartitionList = lappend(index_state->iss_IndexPartitionList, index_partition); } - index_state->iss_IndexPartitionList = lappend(index_state->iss_IndexPartitionList, index_partition); } } } diff --git a/src/gausskernel/runtime/executor/nodeKMeans.cpp b/src/gausskernel/runtime/executor/nodeKMeans.cpp index 816c3ca92..b6d945dd5 100644 --- a/src/gausskernel/runtime/executor/nodeKMeans.cpp +++ b/src/gausskernel/runtime/executor/nodeKMeans.cpp @@ -486,7 +486,8 @@ bool kmeans_get_tupleslot(KMeansState* kmeans_state, TupleTableSlot* slot, Tuple values[13] = UInt32GetDatum(current_position); values[14] = UInt64GetDatum(kmeans_node->parameters.external_seed); /* no null attribute */ - memset_s(nulls, sizeof(bool) * NUM_ATTR_OUTPUT, 0, sizeof(bool) * NUM_ATTR_OUTPUT); + errorno = memset_s(nulls, sizeof(bool) * NUM_ATTR_OUTPUT, 0, sizeof(bool) * NUM_ATTR_OUTPUT); + securec_check(errorno, "\0", "\0"); /* * this saves one round of copying diff --git a/src/gausskernel/runtime/executor/nodeModifyTable.cpp b/src/gausskernel/runtime/executor/nodeModifyTable.cpp index b0a9ba78b..d581bba15 100644 --- a/src/gausskernel/runtime/executor/nodeModifyTable.cpp +++ b/src/gausskernel/runtime/executor/nodeModifyTable.cpp @@ -861,11 +861,17 @@ TupleTableSlot* ExecInsertT(ModifyTableState* state, TupleTableSlot* slot, Tuple TupleTableSlot* tmp_slot = MakeSingleTupleTableSlot(slot->tts_tupleDescriptor, false, result_relation_desc->rd_tam_type); bool is_partition_rel = result_relation_desc->rd_rel->parttype == PARTTYPE_PARTITIONED_RELATION; - bulk = findBulk(((DistInsertSelectState*)state)->mgr, - (is_partition_rel ? heapTupleGetPartitionId(result_relation_desc, tuple) - : RelationGetRelid(result_relation_desc)), - bucket_id, - &to_flush); + Oid targetOid = InvalidOid; + if (is_partition_rel) { + if (RelationIsSubPartitioned(result_relation_desc)) { + targetOid = heapTupleGetSubPartitionId(result_relation_desc, tuple); + } else { + targetOid = heapTupleGetPartitionId(result_relation_desc, tuple); + } + } else { + targetOid = RelationGetRelid(result_relation_desc); + } + bulk = findBulk(((DistInsertSelectState *)state)->mgr, targetOid, bucket_id, &to_flush); if (to_flush) { if (is_partition_rel && need_flush) { @@ -936,6 +942,9 @@ TupleTableSlot* ExecInsertT(ModifyTableState* state, TupleTableSlot* slot, Tuple if (updated) { return returning; } + if (result_relation_desc->rd_rel->parttype == PARTTYPE_PARTITIONED_RELATION) { + partition_id = heapTupleGetPartitionId(result_relation_desc, tuple); + } if (rel_isblockchain) { is_record = hist_table_record_insert(result_relation_desc, (HeapTuple)tuple, &res_hash); } @@ -1007,6 +1016,45 @@ TupleTableSlot* ExecInsertT(ModifyTableState* state, TupleTableSlot* slot, Tuple } } } break; + case PARTTYPE_SUBPARTITIONED_RELATION: { + Oid partitionId = InvalidOid; + Oid subPartitionId = InvalidOid; + Relation partRel = NULL; + Partition part = NULL; + Relation subPartRel = NULL; + Partition subPart = NULL; + + /* get partititon oid for insert the record */ + partitionId = heapTupleGetPartitionId(result_relation_desc, tuple); + + searchFakeReationForPartitionOid(estate->esfRelations, estate->es_query_cxt, + result_relation_desc, partitionId, partRel, part, + RowExclusiveLock); + + /* get subpartititon oid for insert the record */ + subPartitionId = heapTupleGetPartitionId(partRel, tuple); + + searchFakeReationForPartitionOid(estate->esfRelations, estate->es_query_cxt, partRel, + subPartitionId, subPartRel, subPart, RowExclusiveLock); + + + partition_id = subPartitionId; + heap_rel = subPartRel; + partition = subPart; + + target_rel = heap_rel; + tableam_tops_update_tuple_with_oid(heap_rel, tuple, slot); + if (bucket_id != InvalidBktId) { + searchHBucketFakeRelation(estate->esfRelations, estate->es_query_cxt, heap_rel, bucket_id, + target_rel); + } + new_id = tableam_tuple_insert(target_rel, tuple, estate->es_output_cid, 0, NULL); + if (rel_isblockchain) { + MemoryContext old_context = MemoryContextSwitchTo(GetPerTupleMemoryContext(estate)); + is_record = hist_table_record_insert(target_rel, (HeapTuple)tuple, &res_hash); + (void)MemoryContextSwitchTo(old_context); + } + } break; default: { /* never happen; just to be self-contained */ @@ -1315,7 +1363,8 @@ ldelete: errmsg("concurrent update under Stream mode is not yet supported"))); } TupleTableSlot *epqslot = EvalPlanQual(estate, epqstate, fake_relation, - result_rel_info->ri_RangeTableIndex, LockTupleExclusive, &tmfd.ctid, tmfd.xmax, false); + result_rel_info->ri_RangeTableIndex, LockTupleExclusive, &tmfd.ctid, tmfd.xmax, + result_relation_desc->rd_rel->relrowmovement); if (!TupIsNull(epqslot)) { *tupleid = tmfd.ctid; goto ldelete; @@ -1877,7 +1926,6 @@ lreplace: bool row_movement = false; bool need_create_file = false; int seqNum = -1; - if (!partKeyUpdate) { row_movement = false; new_partId = oldPartitionOid; @@ -1886,6 +1934,24 @@ lreplace: if (u_sess->exec_cxt.route->fileExist) { new_partId = u_sess->exec_cxt.route->partitionId; + if (RelationIsSubPartitioned(result_relation_desc)) { + Partition part = partitionOpen(result_relation_desc, new_partId, RowExclusiveLock); + Relation partRel = partitionGetRelation(result_relation_desc, part); + + partitionRoutingForTuple(partRel, tuple, u_sess->exec_cxt.route); + if (u_sess->exec_cxt.route->fileExist) { + new_partId = u_sess->exec_cxt.route->partitionId; + } else { + ereport(ERROR, (errmodule(MOD_EXECUTOR), + (errcode(ERRCODE_PARTITION_ERROR), + errmsg("fail to update partitioned table \"%s\"", + RelationGetRelationName(result_relation_desc)), + errdetail("new tuple does not map to any table partition")))); + } + + releaseDummyRelation(&partRel); + partitionClose(result_relation_desc, part, NoLock); + } if (oldPartitionOid == new_partId) { row_movement = false; @@ -2141,6 +2207,7 @@ ldelete: if (result_relation_desc->rd_isblockchain) { hash_del = get_user_tupleid_hash(old_fake_relation, tupleid); } + result = tableam_tuple_delete(old_fake_relation, tupleid, estate->es_output_cid, @@ -2150,6 +2217,7 @@ ldelete: &oldslot, &tmfd, allow_update_self); + switch (result) { case TM_SelfUpdated: case TM_SelfModified: @@ -2208,6 +2276,17 @@ ldelete: if (!RelationIsUstoreFormat(old_fake_relation)) { Assert(!ItemPointerEquals(tupleid, &tmfd.ctid)); } + if (result_relation_desc->rd_rel->relrowmovement) { + /* + * The part key value may has been updated, + * don't know which partition we should deal with. + */ + ereport(ERROR, + (errcode(ERRCODE_TRANSACTION_ROLLBACK), + errmsg("partition table update conflict"), + errdetail("disable row movement of table can avoid this conflict"))); + } + // EvalPlanQual need to reinitialize child plan to do some recheck due to concurrent // update, but we wrap the left tree of Stream node in backend thread. So the child // plan cannot be reinitialized successful now. @@ -2754,7 +2833,7 @@ TupleTableSlot* ExecModifyTable(ModifyTableState* node) bool isNull = false; relkind = result_rel_info->ri_RelationDesc->rd_rel->relkind; - if (relkind == RELKIND_RELATION || relkind == RELKIND_SEQUENCE) { + if (relkind == RELKIND_RELATION || RELKIND_IS_SEQUENCE(relkind)) { datum = ExecGetJunkAttribute(slot, junk_filter->jf_junkAttNo, &isNull); /* shouldn't ever get a null result... */ if (isNull) { diff --git a/src/gausskernel/runtime/executor/nodePartIterator.cpp b/src/gausskernel/runtime/executor/nodePartIterator.cpp index 469d13127..75f3e2c15 100755 --- a/src/gausskernel/runtime/executor/nodePartIterator.cpp +++ b/src/gausskernel/runtime/executor/nodePartIterator.cpp @@ -1,5 +1,6 @@ /* * Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors * * openGauss is licensed under Mulan PSL v2. * You can use this software according to the terms and conditions of the Mulan PSL v2. @@ -55,6 +56,7 @@ PartIteratorState* ExecInitPartIterator(PartIterator* node, EState* estate, int state->ps.ps_TupFromTlist = false; state->ps.ps_ProjInfo = NULL; state->currentItr = -1; + state->subPartCurrentItr = -1; return state; } @@ -84,14 +86,44 @@ static int GetScanPartitionNum(PartIteratorState* node) static void InitScanPartition(PartIteratorState* node, int partitionScan) { int paramno = 0; + int subPartParamno = 0; unsigned int itr_idx = 0; + unsigned int subitr_idx = 0; PartIterator* pi_node = (PartIterator*)node->ps.plan; ParamExecData* param = NULL; + ParamExecData* subPartParam = NULL; + PlanState* noden = (PlanState*)node->ps.lefttree; + List *subPartLengthList = NIL; + if (IsA(noden, VecToRowState)) { + subPartLengthList = ((VecToRowState *)noden)->subPartLengthList; + } else if (IsA(noden, ScanState) || IsA(noden, SeqScanState) || IsA(noden, IndexOnlyScanState) || + IsA(noden, IndexScanState) || IsA(noden, BitmapHeapScanState) || IsA(noden, TidScanState)) { + subPartLengthList = ((ScanState *)noden)->subPartLengthList; + } Assert(ForwardScanDirection == pi_node->direction || BackwardScanDirection == pi_node->direction); /* set iterator parameter */ - node->currentItr++; + if (subPartLengthList != NIL) { + if (node->currentItr == -1) { + node->currentItr++; + } + int subPartLength = (int)list_nth_int(subPartLengthList, node->currentItr); + if (node->subPartCurrentItr + 1 >= subPartLength) { + node->currentItr++; + node->subPartCurrentItr = -1; + } + node->subPartCurrentItr++; + subitr_idx = node->subPartCurrentItr; + subPartParamno = pi_node->param->subPartParamno; + subPartParam = &(node->ps.state->es_param_exec_vals[subPartParamno]); + subPartParam->isnull = false; + subPartParam->value = (Datum)subitr_idx; + node->ps.lefttree->chgParam = bms_add_member(node->ps.lefttree->chgParam, subPartParamno); + } else { + node->currentItr++; + } + itr_idx = node->currentItr; if (BackwardScanDirection == pi_node->direction) itr_idx = partitionScan - itr_idx - 1; @@ -145,8 +177,25 @@ TupleTableSlot* ExecPartIterator(PartIteratorState* node) /* minus wrong rownum */ node->ps.lefttree->ps_rownum--; - if (node->currentItr + 1 >= partitionScan) /* have scanned all partitions */ - return NULL; + if (node->currentItr + 1 >= partitionScan) { /* have scanned all partitions */ + PlanState* noden = (PlanState*)node->ps.lefttree; + List *subPartLengthList = NIL; + if (IsA(noden, VecToRowState)) { + subPartLengthList = ((VecToRowState *)noden)->subPartLengthList; + } else if (IsA(noden, ScanState) || IsA(noden, SeqScanState) || IsA(noden, IndexOnlyScanState) || + IsA(noden, IndexScanState) || IsA(noden, BitmapHeapScanState) || IsA(noden, TidScanState)) { + subPartLengthList = ((ScanState *)noden)->subPartLengthList; + } + + if (subPartLengthList != NIL) { + int subPartLength = (int)list_nth_int(subPartLengthList, node->currentItr); + if (node->subPartCurrentItr + 1 >= subPartLength) { + return NULL; + } + } else { + return NULL; + } + } /* switch to next partiiton */ InitScanPartition(node, partitionScan); @@ -159,7 +208,6 @@ TupleTableSlot* ExecPartIterator(PartIteratorState* node) if (!TupIsNull(slot)) return slot; - node->ps.lefttree->ps_rownum--; } } @@ -189,6 +237,8 @@ void ExecReScanPartIterator(PartIteratorState* node) PartIterator* pi_node = NULL; int paramno = -1; ParamExecData* param = NULL; + int subPartParamno = -1; + ParamExecData* subPartParam = NULL; /* do nothing if there is no partition to scan */ int partitionScan = GetScanPartitionNum(node); @@ -206,6 +256,14 @@ void ExecReScanPartIterator(PartIteratorState* node) param->value = (Datum)0; node->ps.lefttree->chgParam = bms_add_member(node->ps.lefttree->chgParam, paramno); + node->subPartCurrentItr = -1; + + subPartParamno = pi_node->param->subPartParamno; + subPartParam = &(node->ps.state->es_param_exec_vals[subPartParamno]); + subPartParam->isnull = false; + subPartParam->value = (Datum)0; + node->ps.lefttree->chgParam = bms_add_member(node->ps.lefttree->chgParam, subPartParamno); + /* * if the pruning result isnot null, Reset the subplan node so * that its output can be re-scanned. diff --git a/src/gausskernel/runtime/executor/nodeRecursiveunion.cpp b/src/gausskernel/runtime/executor/nodeRecursiveunion.cpp index 90abaec85..36708502b 100644 --- a/src/gausskernel/runtime/executor/nodeRecursiveunion.cpp +++ b/src/gausskernel/runtime/executor/nodeRecursiveunion.cpp @@ -6,6 +6,7 @@ * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -19,6 +20,7 @@ #include "access/xact.h" #include "executor/exec/execdebug.h" #include "executor/node/nodeAgg.h" +#include "executor/node/nodeCtescan.h" #include "executor/node/nodeHashjoin.h" #include "executor/node/nodeMaterial.h" #include "executor/node/nodeRecursiveunion.h" @@ -68,6 +70,11 @@ static void StartNextRecursiveIteration(RecursiveUnionController* controller, in static void ExecInitRecursiveResultTupleSlot(EState* estate, PlanState* planstate); #endif +static inline bool IsUnderStartWith(RecursiveUnion *ruplan) +{ + return (ruplan->internalEntryList != NIL); +} + /* * To implement UNION (without ALL), we need a hashtable that stores tuples * already seen. The hash key is computed from the grouping columns. @@ -178,6 +185,15 @@ TupleTableSlot* ExecRecursiveUnion(RecursiveUnionState* node) continue; } } + + /* + * Add RUITR and nessary internal pseudo columns before store into worktable, + * only processed in start-with case + */ + if (IsUnderStartWith((RecursiveUnion *)node->ps.plan)) { + slot = ConvertRuScanOutputSlot(node, slot, false); + } + /* Each non-duplicate tuple goes to the working table ... */ tuplestore_puttupleslot(node->working_table, slot); @@ -205,8 +221,11 @@ TupleTableSlot* ExecRecursiveUnion(RecursiveUnionState* node) /* Kick-Off next step */ StartNextRecursiveIteration(node->rucontroller, WITH_RECURSIVE_SYNC_NONERQ); } - node->iteration = 1; #endif + node->iteration = 1; + + /* Need reset sw_tuple_idx to 1 when non-recursive term finish */ + node->sw_tuple_idx = 1; } /* 2. Execute recursive term */ @@ -217,6 +236,14 @@ TupleTableSlot* ExecRecursiveUnion(RecursiveUnionState* node) for (;;) { slot = ExecProcNode(inner_plan); if (TupIsNull(slot)) { + /* debug information for SWCBcase */ + if (IsUnderStartWith((RecursiveUnion *)node->ps.plan)) { + ereport(DEBUG1, (errmodule(MOD_EXECUTOR), + errmsg("[SWCB DEBUG] current iteration is done: level:%d rownum_current:%d rownum_total:%lu", + node->iteration + 1, + node->swstate->sw_numtuples, + node->swstate->sw_rownum))); + } #ifdef ENABLE_MULTIPLE_NODES /* * Check the recursive union is run out of max allowed iterations @@ -249,6 +276,8 @@ TupleTableSlot* ExecRecursiveUnion(RecursiveUnionState* node) break; } #endif + /* Need reset sw_tuple_idx to 1 when current iteration finish */ + node->sw_tuple_idx = 1; /* done with old working table ... */ tuplestore_end(node->working_table); @@ -292,6 +321,7 @@ TupleTableSlot* ExecRecursiveUnion(RecursiveUnionState* node) StartNextRecursiveIteration(node->rucontroller, WITH_RECURSIVE_SYNC_RQSTEP); } #else + node->iteration++; node->intermediate_table = tuplestore_begin_heap(false, false, u_sess->attr.attr_memory.work_mem); /* reset the recursive term */ inner_plan->chgParam = bms_add_member(inner_plan->chgParam, plan->wtParam); @@ -315,6 +345,49 @@ TupleTableSlot* ExecRecursiveUnion(RecursiveUnionState* node) /* Else, tuple is good; stash it in intermediate table ... */ node->intermediate_empty = false; + + + /* For start-with, reason ditto */ + if (IsUnderStartWith((RecursiveUnion *)node->ps.plan)) { + int max_times = u_sess->attr.attr_sql.max_recursive_times; + StartWithOp *swplan = (StartWithOp *)node->swstate->ps.plan; + + /* + * Cannot exceed max_recursive_times + * The reason we also keep iteration check here is + * avoid order siblings by exist. + * */ + if (node->iteration > max_times) { + ereport(ERROR, + (errcode(ERRCODE_CONFIGURATION_LIMIT_EXCEEDED), + errmsg("Current Start With...Connect by has exceeded max iteration times %d", max_times), + errhint("Please check your connect by clause carefully"))); + } + + slot = ConvertRuScanOutputSlot(node, slot, true); + + /* + * In ORDER SIBLINGS case, as we add SORT-Operator(material) on top of + * RecursiveUnion, so we have to do nocycle check here + */ + if (swplan->swoptions->siblings_orderby_clause) { + StartWithOpState *swstate = (StartWithOpState *)node->swstate; + if (swstate->sw_nocycleStopOrderSiblings) { + return (TupleTableSlot *)NULL; + } + + if (CheckCycleExeception(swstate, slot)) { + /* + * Mark execution stop for order siblings, note we let the cycle-causing + * tuple return to upper node and stop next one + */ + swstate->sw_nocycleStopOrderSiblings = true; + elog(DEBUG1, "nocycle option take effect on RecursiveUnion for Order Siblings! %s", + swstate->sw_curKeyArrayStr); + } + } + } + tuplestore_puttupleslot(node->intermediate_table, slot); /* ... and return it */ @@ -530,6 +603,16 @@ RecursiveUnionState* ExecInitRecursiveUnion(RecursiveUnion* node, EState* estate memset_s(&((rustate->ps.instrument)->recursiveInfo), sizeof(RecursiveInfo), 0, sizeof(RecursiveInfo)); securec_check(rc, "\0", "\0"); } + + /* Init start with related variables */ + rustate->swstate = NULL; + rustate->sw_tuple_idx = 1; + rustate->convertContext = AllocSetContextCreate(CurrentMemoryContext, + "RecursiveUnion Start With", + ALLOCSET_DEFAULT_MINSIZE, + ALLOCSET_DEFAULT_INITSIZE, + ALLOCSET_DEFAULT_MAXSIZE); + return rustate; } @@ -558,6 +641,9 @@ void ExecEndRecursiveUnion(RecursiveUnionState* node) MemoryContextDelete(node->tempContext); if (node->tableContext) MemoryContextDelete(node->tableContext); + if (node->convertContext) { + MemoryContextDelete(node->convertContext); + } /* * clean out the upper tuple table @@ -608,6 +694,7 @@ void ExecReScanRecursiveUnion(RecursiveUnionState* node) /* reset processing state */ node->recursing = false; node->intermediate_empty = true; + node->iteration = 0; tuplestore_clear(node->working_table); tuplestore_clear(node->intermediate_table); } diff --git a/src/gausskernel/runtime/executor/nodeSeqscan.cpp b/src/gausskernel/runtime/executor/nodeSeqscan.cpp index 3594ce864..0c62be10f 100644 --- a/src/gausskernel/runtime/executor/nodeSeqscan.cpp +++ b/src/gausskernel/runtime/executor/nodeSeqscan.cpp @@ -6,6 +6,7 @@ * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -27,6 +28,7 @@ #include "access/relscan.h" #include "access/tableam.h" +#include "catalog/pg_partition_fn.h" #include "commands/cluster.h" #include "executor/exec/execdebug.h" #include "executor/node/nodeModifyTable.h" @@ -380,6 +382,19 @@ TableScanDesc BeginScanRelation(SeqScanState* node, Relation relation, Transacti return current_scan_desc; } +static PruningResult *GetPartitionPruningResultInInitScanRelation(SeqScan *plan, EState *estate, + Relation current_relation) +{ + PruningResult *resultPlan = NULL; + if (plan->pruningInfo->expr != NULL) { + resultPlan = GetPartitionInfo(plan->pruningInfo, estate, current_relation); + } else { + resultPlan = plan->pruningInfo; + } + + return resultPlan; +} + /* ---------------------------------------------------------------- * InitScanRelation * @@ -459,13 +474,7 @@ void InitScanRelation(SeqScanState* node, EState* estate, int eflags) /* Generate node->partitions if exists */ if (plan->itrs > 0) { Partition part = NULL; - PruningResult* resultPlan = NULL; - - if (plan->pruningInfo->expr != NULL) { - resultPlan = GetPartitionInfo(plan->pruningInfo, estate, current_relation); - } else { - resultPlan = plan->pruningInfo; - } + PruningResult* resultPlan = GetPartitionPruningResultInInitScanRelation(plan, estate, current_relation); ListCell* cell = NULL; List* part_seqs = resultPlan->ls_rangeSelectedPartitions; @@ -473,10 +482,32 @@ void InitScanRelation(SeqScanState* node, EState* estate, int eflags) foreach (cell, part_seqs) { Oid tablepartitionid = InvalidOid; int partSeq = lfirst_int(cell); + List* subpartition = NIL; tablepartitionid = getPartitionOidFromSequence(current_relation, partSeq); part = partitionOpen(current_relation, tablepartitionid, lockmode); node->partitions = lappend(node->partitions, part); + if (resultPlan->ls_selectedSubPartitions != NIL) { + Relation partRelation = partitionGetRelation(current_relation, part); + SubPartitionPruningResult *subPartPruningResult = + GetSubPartitionPruningResult(resultPlan->ls_selectedSubPartitions, partSeq); + if (subPartPruningResult == NULL) { + continue; + } + List *subpart_seqs = subPartPruningResult->ls_selectedSubPartitions; + ListCell *lc = NULL; + foreach (lc, subpart_seqs) { + Oid subpartitionid = InvalidOid; + int subpartSeq = lfirst_int(lc); + + subpartitionid = getPartitionOidFromSequence(partRelation, subpartSeq); + Partition subpart = partitionOpen(partRelation, subpartitionid, lockmode); + subpartition = lappend(subpartition, subpart); + } + releaseDummyRelation(&(partRelation)); + node->subPartLengthList = lappend_int(node->subPartLengthList, list_length(subpartition)); + node->subpartitions = lappend(node->subpartitions, subpartition); + } } if (resultPlan->ls_rangeSelectedPartitions != NULL) { node->part_id = resultPlan->ls_rangeSelectedPartitions->length; @@ -559,12 +590,14 @@ uint16 TraverseVars(List* qual, bool* boolArr, int natts, List* vars, ListCell* static inline bool QualtoBool(List* qual, bool* boolArr, int natts) { + bool flag = false; List* vars = NIL; ListCell* l = NULL; vars = pull_var_clause((Node*)qual, PVC_RECURSE_AGGREGATES, PVC_RECURSE_PLACEHOLDERS); if (TraverseVars(qual, boolArr, natts, vars, l) > 0) - return true; - return false; + flag = true; + list_free_ext(vars); + return flag; } /* create a new flattened tlist from targetlist, if valid then set attributes in boolArr */ @@ -577,6 +610,7 @@ static inline void TLtoBool(List* targetlist, bool* boolArr, AttrNumber natts) if ((flatlist != NULL) && (flatlist->length > 0)) { FlatTLtoBool(flatlist, boolArr, natts); } + list_free_ext(flatlist); } /* return total count of non-null attributes */ @@ -860,8 +894,23 @@ void ExecEndSeqScan(SeqScanState* node) if (node->isPartTbl) { if (PointerIsValid(node->partitions)) { Assert(node->ss_currentPartition); - releaseDummyRelation(&(node->ss_currentPartition)); - releasePartitionList(node->ss_currentRelation, &(node->partitions), NoLock); + if (PointerIsValid(node->subpartitions)) { + releaseDummyRelation(&(node->ss_currentPartition)); + ListCell* cell = NULL; + int idx = 0; + foreach (cell, node->partitions) { + Partition part = (Partition)lfirst(cell); + Relation partRel = partitionGetRelation(node->ss_currentRelation, part); + List* subPartList = (List*)list_nth(node->subpartitions, idx); + releasePartitionList(partRel, &subPartList, NoLock); + releaseDummyRelation(&(partRel)); + idx++; + } + releasePartitionList(node->ss_currentRelation, &(node->partitions), NoLock); + } else { + releaseDummyRelation(&(node->ss_currentPartition)); + releasePartitionList(node->ss_currentRelation, &(node->partitions), NoLock); + } } } @@ -964,9 +1013,14 @@ static void ExecInitNextPartitionForSeqScan(SeqScanState* node) { Partition currentpartition = NULL; Relation currentpartitionrel = NULL; + Partition currentSubPartition = NULL; + List* currentSubPartitionList = NULL; + Relation currentSubPartitionRel = NULL; int paramno = -1; + int subPartParamno = -1; ParamExecData* param = NULL; + ParamExecData* SubPrtParam = NULL; SeqScan* plan = NULL; plan = (SeqScan*)node->ps.plan; @@ -976,21 +1030,42 @@ static void ExecInitNextPartitionForSeqScan(SeqScanState* node) param = &(node->ps.state->es_param_exec_vals[paramno]); node->currentSlot = (int)param->value; + subPartParamno = plan->plan.subparamno; + SubPrtParam = &(node->ps.state->es_param_exec_vals[subPartParamno]); + /* construct HeapScanDesc for new partition */ currentpartition = (Partition)list_nth(node->partitions, node->currentSlot); currentpartitionrel = partitionGetRelation(node->ss_currentRelation, currentpartition); releaseDummyRelation(&(node->ss_currentPartition)); - node->ss_currentPartition = currentpartitionrel; - /* add qual for redis */ + if (currentpartitionrel->partMap != NULL) { + Assert(SubPrtParam != NULL); + currentSubPartitionList = (List *)list_nth(node->subpartitions, node->currentSlot); + currentSubPartition = (Partition)list_nth(currentSubPartitionList, (int)SubPrtParam->value); + currentSubPartitionRel = partitionGetRelation(currentpartitionrel, currentSubPartition); + releaseDummyRelation(&(currentpartitionrel)); - /* update partition scan-related fileds in SeqScanState */ - node->ss_currentScanDesc = InitBeginScan(node, currentpartitionrel); + node->ss_currentPartition = currentSubPartitionRel; + /* add qual for redis */ - ADIO_RUN() - { - SeqScan_Init(node->ss_currentScanDesc, node->ss_scanaccessor, currentpartitionrel); + /* update partition scan-related fileds in SeqScanState */ + node->ss_currentScanDesc = InitBeginScan(node, currentSubPartitionRel); + ADIO_RUN() + { + SeqScan_Init(node->ss_currentScanDesc, node->ss_scanaccessor, currentSubPartitionRel); + } + ADIO_END(); + } else { + node->ss_currentPartition = currentpartitionrel; + /* add qual for redis */ + + /* update partition scan-related fileds in SeqScanState */ + node->ss_currentScanDesc = InitBeginScan(node, currentpartitionrel); + ADIO_RUN() + { + SeqScan_Init(node->ss_currentScanDesc, node->ss_scanaccessor, currentpartitionrel); + } + ADIO_END(); } - ADIO_END(); } diff --git a/src/gausskernel/runtime/executor/nodeSort.cpp b/src/gausskernel/runtime/executor/nodeSort.cpp index 7f885d617..06f25aef3 100644 --- a/src/gausskernel/runtime/executor/nodeSort.cpp +++ b/src/gausskernel/runtime/executor/nodeSort.cpp @@ -105,6 +105,16 @@ TupleTableSlot* ExecSort(SortState* node) plan_node->plan.plan_node_id, SET_DOP(plan_node->plan.dop)); + /* + * Here used for start with order siblings by + * We need to set our customized sort function for siblings key + */ + if (IsA(outer_node->plan, RecursiveUnion)) { + RecursiveUnion *ru = (RecursiveUnion *)outer_node->plan; + + tuplesort_set_siblings(tuple_sortstate, plan_node->numCols, ru->internalEntryList); + } + if (node->bounded) { tuplesort_set_bound(tuple_sortstate, node->bound); } diff --git a/src/gausskernel/runtime/executor/nodeStartWithOp.cpp b/src/gausskernel/runtime/executor/nodeStartWithOp.cpp new file mode 100644 index 000000000..f256f5752 --- /dev/null +++ b/src/gausskernel/runtime/executor/nodeStartWithOp.cpp @@ -0,0 +1,1919 @@ +/* ------------------------------------------------------------------------- + * + * nodeStartWithOp.cpp + * routines to handle StartWithOp operator a.w.k. START WITH ... CONNECT BY + * + * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors + * + * + * IDENTIFICATION + * src/gausskernel/runtime/executor/nodeStartWithOp.cpp + * + * ------------------------------------------------------------------------- + */ +#include "postgres.h" +#include "knl/knl_variable.h" + +#include "executor/exec/execdebug.h" +#include "executor/node/nodeCtescan.h" +#include "optimizer/planner.h" +#include "optimizer/var.h" +#include "utils/builtins.h" +#include "utils/int8.h" +#include "utils/cash.h" +#include "miscadmin.h" + +#define SWCB_DEFAULT_NULLSTR "null" + +typedef enum StartWithOpExecStatus { + SWOP_UNKNOWN = 0, + SWOP_BUILD = 1, + SWOP_EXECUTE, + SWOP_FINISH +} StartWithOpExecStatus; + +#define KEY_START_TAG "{" +#define KEY_SPLIT_TAG "/" +#define KEY_CLOSE_TAG "}" + +#define ITRCYCLE_CHECK_LIMIT 50 +#define DEPTH_CRITERION 100000 +#define ITR_MAX_TUPLES 80000 +#define MAX_SIBLINGS_TUPLE 1000000000 + +char* get_typename(Oid typid); + +static void ProcessPseudoReturnColumns(StartWithOpState *state); +static AttrNumber FetchRUItrTargetEntryResno(StartWithOpState *state); + +/* functions to check and set pseudo column value */ +static void CheckIsCycle(StartWithOpState *state, bool *connect_by_iscycle); +static void CheckIsLeaf(StartWithOpState *state, bool *connect_by_isleaf); +static void UpdatePseudoReturnColumn(StartWithOpState *state, + TupleTableSlot *slot, + bool isleaf, bool iscycle); + + +/* functions to get/fetch array_key content */ +static List *TupleSlotGetKeyArrayList(TupleTableSlot *slot); +static List *GetCurrentArrayColArray(const FunctionCallInfo fcinfo, + const char *value, char **raw_array_str, bool *isConstArrayList = NULL); +static AttrNumber GetInternalArrayAttnum(TupleDesc tupDesc, AttrNumber origVarAttno); +static const char *GetPseudoArrayTargetValueString(TupleTableSlot *slot, + AttrNumber attnum); +static List *CovertInternalArrayStringToList(char *raw_array_str); + +/* Local functions used in tuple-conversion from RecursiveUnion -> StartWith */ +static Datum ConvertRuScanArrayAttr(RecursiveUnionState *rustate, + TargetEntry *te, TupleTableSlot *srcSlot, bool inrecursing); +static const char *GetCurrentValue(TupleTableSlot *slot, AttrNumber attnum); +static const char *GetCurrentWorkTableScanPath(TupleTableSlot *srcSlot, + AttrNumber pseudo_attnum); +static bytea *GetCurrentSiblingsArrayPath(TupleTableSlot *srcSlot, + AttrNumber pseudo_attnum); +static const char *GetKeyEntryArrayStr(RecursiveUnionState *state, + TupleTableSlot *scanSlot); +static bool PRCCanSkip(StartWithOpState *state, int prcType); + +/* PRC optimization */ +static bytea *GetSiblingsKeyEntry(RecursiveUnionState *state, bytea *path); +static inline AttrNumber PseudoResnameGetOriginResno(const char *resname) +{ + /* resname is in attr_key/col_.. format */ + AttrNumber attno = atoi((char *)resname + strlen("array_col_")); + + return attno; +} + +static inline void ResetResultSlotAttValueArray(StartWithOpState *state, + Datum *values, bool *isnull) +{ + errno_t rc = EOK; + + /* confirm the same *values* and *isnull* pointer to avoid mis-use */ + Assert (state->sw_values != NULL && state->sw_values == values); + Assert (state->sw_isnull != NULL && state->sw_isnull == isnull); + + int natts = list_length(state->ps.plan->targetlist); + size_t valuesArraySize = natts * sizeof(Datum); + size_t isnullArraySize = natts * sizeof(bool); + + rc = memset_s(state->sw_values, valuesArraySize, 0, valuesArraySize); + securec_check(rc, "\0", "\0"); + + rc = memset_s(state->sw_isnull, isnullArraySize, (bool)false, isnullArraySize); + securec_check(rc, "\0", "\0"); +} + +extern char* pg_strrstr(char* string, const char* subStr); + +/* + * Compare function for any siblings key entry + * Offset represent the start offset index in array_siblings pseudo column + */ +static int SibglingsKeyEntryCmp(bytea* arg1, bytea* arg2, int offset) +{ + int entryIdx = 4; + int cmp = 0; + char *c1 = VARDATA_ANY(arg1); + char *c2 = VARDATA_ANY(arg2); + + while (entryIdx > 0) { + cmp = c1[offset + entryIdx - 1] - c2[offset + entryIdx - 1]; + + if (cmp != 0) { + break; + } + + entryIdx--; + } + + return cmp; +} + +/* + * Dummy compare function for array_siblings pseudo column + */ +extern int SibglingsKeyCmpFast(Datum x, Datum y, SortSupport ssup) +{ + /* + * Let SibglingsKey compare function looks like other sort type function. + * Now just return 0 to fast array_siblings compare function, and we + * do not have any ways to compare them fast because array_siblings type is customized. + */ + return 0; +} + +/* + * Compare function for array_siblings pseudo column + */ +extern int SibglingsKeyCmp(Datum x, Datum y, SortSupport ssup) +{ + int i = 0; + int cmp = 0; + const int bucketSize = 4; + + bytea* arg1 = DatumGetByteaP(x); + bytea* arg2 = DatumGetByteaP(y); + + if (arg1 == NULL || arg2 == NULL) { + return cmp; + } + + int len1 = VARSIZE_ANY_EXHDR(arg1); + int len2 = VARSIZE_ANY_EXHDR(arg2); + int round = Min(len1, len2); + round /= bucketSize; + + while (i < round) { + int entryIdx = i * bucketSize; + + cmp = SibglingsKeyEntryCmp(arg1, arg2, entryIdx); + + if (cmp != 0) { + break; + } + + i++; + } + + if (cmp == 0) { + cmp = (len1 < len2) ? -1 : 1; + } + + /* We can't afford to leak memory here. */ + if (PointerGetDatum(arg1) != x) + pfree_ext(arg1); + if (PointerGetDatum(arg2) != y) + pfree_ext(arg2); + + return cmp; +} + +/* + * -------------------------------------------------------------------------------------- + * - EXPORT FUNCTIONS.. + * (1). Standard SQL engine exeuctor functions + * (2). Helper fucntions that StartWith execution + * (3). builtin functions that support StartWith execution + * -------------------------------------------------------------------------------------- + */ + +/* + * Executor functions + * - ExecInitStartWithOp() + * - ExecStartWithOp() + * - ExecEndStartWithOp() + * - ExecReScanStartWithOp() + */ +StartWithOpState* ExecInitStartWithOp(StartWithOp* node, EState* estate, int eflags) +{ + /* + * create state structure + */ + StartWithOpState *state = makeNode(StartWithOpState); + state->ps.plan = (Plan *)node; + state->ps.state = estate; + + state->sw_context = AllocSetContextCreate(CurrentMemoryContext, + "StartWith Inner", + ALLOCSET_DEFAULT_MINSIZE, + ALLOCSET_DEFAULT_INITSIZE, + ALLOCSET_DEFAULT_MAXSIZE); + + /* + * Miscellaneous initialization + * + * create expression context for node + */ + ExecAssignExprContext(estate, &state->ps); + + state->ps.ps_TupFromTlist = false; + + /* + * tuple table initialization + */ + ExecInitResultTupleSlot(estate, &state->ps); + + /* + * initialize child expressions + */ + state->ps.targetlist = (List*)ExecInitExpr((Expr*)node->plan.targetlist, + (PlanState*)state); + state->ps.qual = (List*)ExecInitExpr((Expr*)node->plan.qual, (PlanState*)state); + + /* + * initialize child nodes + */ + outerPlanState(state) = ExecInitNode(outerPlan(node), estate, eflags); + + /* + * we don't use inner plan + */ + Assert(innerPlan(node) == NULL); + + /* + * initialize tuple type and projection info + * no relations are involved in nodeResult, set the default + * tableAm type to HEAP + */ + ExecAssignResultTypeFromTL(&state->ps, TAM_HEAP); + + ExecAssignProjectionInfo(&state->ps, NULL); + + /* Setup pseudo return column calculation related variables */ + /* 1. assisng psduco column targetEntry */ + List *targetlist = node->plan.targetlist; + ListCell *lc = NULL; + TargetEntry *tle = NULL; + foreach (lc, targetlist) { + tle = (TargetEntry *)lfirst(lc); + if (!IsPseudoReturnTargetEntry(tle)) { + continue; + } + + StartWithOpColumnType type = GetPseudoColumnType(tle); + state->sw_pseudoCols[type] = tle; + } + + /* + * 2. setup keyAttnum + * + * Note: We expect keyEntryList to be non-NIL. + */ + if (node->keyEntryList != NIL) { + TargetEntry *keyTEntry = (TargetEntry *)list_nth(node->internalEntryList, 1); + Assert (pg_strncasecmp(keyTEntry->resname, "array_key_", strlen("array_key_")) == 0); + state->sw_keyAttnum = keyTEntry->resno; + } + + /* + * 3. setup tuplestore, tupleslot and status controlling variables, + * + * Note: tuple store of backupTable and resultTable is not setup here, + * instead we do their intialization in on demand + */ + state->swop_status = SWOP_BUILD; + state->sw_workingTable = tuplestore_begin_heap(false, false, + u_sess->attr.attr_memory.work_mem); + + /* create a temp tuplestore to help isleaf/iscycle calculation */ + state->sw_backupTable = tuplestore_begin_heap( + false, false, u_sess->attr.attr_memory.work_mem); + state->sw_resultTable = tuplestore_begin_heap( + false, false, u_sess->attr.attr_memory.work_mem); + + /* create the working TupleTableslot */ + state->sw_workingSlot = ExecAllocTableSlot(&estate->es_tupleTable, TAM_HEAP); + ExecSetSlotDescriptor(state->sw_workingSlot, ExecTypeFromTL(targetlist, false)); + + int natts = list_length(node->plan.targetlist); + state->sw_values = (Datum *)palloc0(natts * sizeof(Datum)); + state->sw_isnull= (bool *)palloc0(natts * sizeof(bool)); + ResetResultSlotAttValueArray(state, state->sw_values, state->sw_isnull); + + /* Setup other variables to NULL as they will be initialized later */ + state->sw_curKeyArrayStr = NULL; + state->sw_cycle_rowmarks = NULL; + + /* Initialize nocycle controling flag */ + state->sw_nocycleStopOrderSiblings = false; + + /* set underlying RecursiveUnionState pointing to current curernt node */ + if (node->swoptions->siblings_orderby_clause != NULL) { + SortState *sstate = (SortState *)outerPlanState(state); + RecursiveUnionState *rustate = (RecursiveUnionState *)outerPlanState(sstate); + rustate->swstate = state; + } else { + RecursiveUnionState *rustate = (RecursiveUnionState *)outerPlanState(state); + rustate->swstate = state; + } + + /* init other elements */ + state->sw_level = 0; + state->sw_numtuples = 0; + + return state; +} + +bool CheckCycleExeception(StartWithOpState *node, TupleTableSlot *slot) +{ + RecursiveUnionState *rustate = NULL; + StartWithOp *swplan = (StartWithOp *)node->ps.plan; + bool incycle = false; + + if (swplan->swoptions->siblings_orderby_clause != NULL) { + SortState *sstate = (SortState *)node->ps.lefttree; + rustate = (RecursiveUnionState *)sstate->ss.ps.lefttree; + } else { + rustate = (RecursiveUnionState *)node->ps.lefttree; + } + + Assert (IsA(rustate, RecursiveUnionState)); + + if (IsConnectByLevelStartWithPlan(swplan)) { + /* for connect by level case, we do not do cycle check */ + return false; + } + + /* + * If current current iteration is greator than cycle check threshold, we are going + * to do real check and error out cycle cases, we do not this check at begin is for + * performance considerations + */ + node->sw_curKeyArrayStr = GetPseudoArrayTargetValueString(slot, node->sw_keyAttnum); + CheckIsCycle(node, &incycle); + + /* compatible with ORA behavior, if NOCYCLE is not set, we report error */ + if (!swplan->swoptions->nocycle && incycle) { + ereport(ERROR, + (errmodule(MOD_EXECUTOR), + errmsg("START WITH .. CONNECT BY statement runs into cycle exception"))); + } + + /* + * Free per-tuple keyArrayStr in nocycle case, normally we need use sw_curKeyArrayStr + * to output the cycle information at caller function and let executor stop to free it + * eventually + */ + if (!incycle) { + pfree_ext(node->sw_curKeyArrayStr); + } + + return incycle; +} + + +/* + * Peeking a tuple's connectable descendants for exactly one level. + * It seems to be incurring no significant time / memory overhead compared to + * BFS CONNECT BY so far. + * + * This peek is still done by Recursive Union. But its scale is much smaller + * for at each iteration we pushes only one tuple into the outer node + * so that RU only returns one tuple's connectables. + * + * Does not support order siblings by yet. + */ +static List* peekNextLevel(TupleTableSlot* startSlot, PlanState* outerNode, int level) +{ + List* queue = NULL; + + /* clean up RU's old working table */ + ExecReScan(outerNode); + RecursiveUnionState* rus = (RecursiveUnionState*) outerNode; + /* pushing the depth-first tuple into RU's working table */ + rus->recursing = true; + tuplestore_puttupleslot(rus->working_table, startSlot); + + /* fetch the depth-first tuple's children exactly one level below */ + rus->iteration = level; + int begin_iteration = rus->iteration; + TupleTableSlot* srcSlot = NULL; + for (;;) { + srcSlot = ExecProcNode(outerNode); + if (TupIsNull(srcSlot) || (rus->iteration != begin_iteration)) break; + TupleTableSlot* newSlot = MakeSingleTupleTableSlot(srcSlot->tts_tupleDescriptor); + newSlot = ExecCopySlot(newSlot, srcSlot); + queue = lappend(queue, newSlot); + } + return queue; +} + +/* + * Construct CONNECT BY result set by depth-first order. + * + * Does not support order siblings by yet. + */ +static bool depth_first_connect(int currentLevel, StartWithOpState *node, List* queue, int* dfsRowCount) +{ + CHECK_FOR_INTERRUPTS(); + + bool isCycle = false; + if (queue == NULL) { + return isCycle; + } + Tuplestorestate* outputStore = node->sw_workingTable; + PlanState* outerNode = outerPlanState(node); + + /* loop until all siblings' DFS are done */ + for (;;) { + if (queue->head == NULL) { + return isCycle; + } + TupleTableSlot* leader = (TupleTableSlot*) lfirst(queue->head); + if (leader == NULL || TupIsNull(leader)) { + return isCycle; + } + + /* DFS: output the depth-first tuple to result table */ + TupleTableSlot *dstSlot = node->ps.ps_ResultTupleSlot; + dstSlot = ConvertStartWithOpOutputSlot(node, leader, dstSlot); + + queue->head = queue->head->next; + + if (CheckCycleExeception(node, dstSlot)) { + // cycled slots are not kept + isCycle = true; + continue; + } + + tuplestore_puttupleslot(outputStore, dstSlot); + (*dfsRowCount)++; + int rowCountBefore = *dfsRowCount; + + /* Go into the depth NOW: sibling tuples won't get processed + * until all children are done */ + bool expectCycle = depth_first_connect(currentLevel + 1, node, + peekNextLevel(leader, outerNode, currentLevel), + dfsRowCount); + if (expectCycle) { + node->sw_cycle_rowmarks = lappend_int(node->sw_cycle_rowmarks, rowCountBefore); + } + } + return isCycle; +} + +static List* makeStartTuples(StartWithOpState *node) +{ + PlanState* outerNode = outerPlanState(node); + List* startWithQueue = NULL; + RecursiveUnionState* rus = (RecursiveUnionState*) outerNode; + TupleTableSlot *dstSlot = node->ps.ps_ResultTupleSlot; + TupleTableSlot* srcSlot = ExecProcNode(outerNode); + int begin_iteration = rus->iteration; + for (;;) { + if (TupIsNull(srcSlot) || rus->iteration != begin_iteration) { + break; + } + dstSlot = ConvertStartWithOpOutputSlot(node, srcSlot, dstSlot); + TupleTableSlot* newSlot = MakeSingleTupleTableSlot(srcSlot->tts_tupleDescriptor); + newSlot = ExecCopySlot(newSlot, srcSlot); + startWithQueue = lappend(startWithQueue, newSlot); + srcSlot = ExecProcNode(outerNode); + } + return startWithQueue; +} + +TupleTableSlot* ExecStartWithOp(StartWithOpState *node) +{ + TupleTableSlot *srcSlot = NULL; + TupleTableSlot *dstSlot = node->ps.ps_ResultTupleSlot; + PlanState *outerNode = outerPlanState(node); + StartWithOp *swplan = (StartWithOp *)node->ps.plan; + /* initialize row num count */ + node->sw_rownum = 0; + + Assert (node->sw_workingTable != NULL); + /* start processing */ + switch (node->swop_status) { + case SWOP_BUILD: { + Assert (node->sw_workingTable != NULL); + bool isDfsEnabled = swplan->swoptions->nocycle && !IsA(outerNode, SortState); + if (isDfsEnabled) { + /* For nocycle and non-order-siblings cases we use + * depth-first connect by to achieve result consistency. + */ + + /* Kick off dfs with StartWith tuples */ + int dfsRowCount = 0; + depth_first_connect(1, node, makeStartTuples(node), &dfsRowCount); + } + + /* Otherwise, use breadth-first style connect-by routine */ + /* Materialize all content to make internal part ready */ + for (; !isDfsEnabled;) { + /* + * We check for interrupts here because infinite loop might happen. + */ + CHECK_FOR_INTERRUPTS(); + srcSlot = ExecProcNode(outerNode); + + if (TupIsNull(srcSlot)) { + break; + } + + /* convert & store tuple */ + dstSlot = ConvertStartWithOpOutputSlot(node, srcSlot, dstSlot); + + /* + * In case of connect by level/rownum, loop will end up with LEVEL/ROWNUM + * condition is not satisfied + * + * level/rownum is set in ConvertStartWithOpOutputSlot() + */ + if (IsConnectByLevelStartWithPlan(swplan)) { + ExprContext *expr = node->ps.ps_ExprContext; + + /* + * level and rownum pseudo attributes is extract from StartWithPlan + * node so we set filtering tuple as ecxt_scantuple + */ + expr->ecxt_scantuple = dstSlot; + if (!ExecQual(node->ps.qual, expr, false)) { + break; + } + } + + tuplestore_puttupleslot(node->sw_workingTable, dstSlot); + + /* + * check we need stop infinit recursive iteration if NOCYCLE is specified in + * ConnectByExpr, then return. Also, in case of cycle-report-error the ereport + * is processed inside of CheckCycleException() + */ + if (CheckCycleExeception(node, dstSlot)) { + break; + } + } + + /* report we have done material step for current StartWithOp node */ + ereport(DEBUG1, + (errmodule(MOD_EXECUTOR), + errmsg("[SWCB DEBUG] StartWithOp[%d] finish material-step and forward to PRC-step with level:%d rownum_total:%lu", + node->ps.plan->plan_node_id, + node->sw_level, + node->sw_rownum))); + + /* calculate pseudo output column */ + ProcessPseudoReturnColumns(node); + + /* + * After all tuples is stored, we rewind the tuplestore and mark current + * StartWithOp node status into EXECUTE + */ + tuplestore_rescan(node->sw_workingTable); + node->swop_status = SWOP_EXECUTE; + } + + /* fall-thru for first time */ + case SWOP_EXECUTE: { + dstSlot = node->ps.ps_ResultTupleSlot; + (void)tuplestore_gettupleslot(node->sw_resultTable, true, false, dstSlot); + + if (TupIsNull(dstSlot)) { + node->swop_status = SWOP_FINISH; + } + + break; + } + + default: { + elog(ERROR, "known status status in %s(), with context:%s", + __FUNCTION__, + nodeToString(node->ps.plan)); + } + } + + return (TupleTableSlot *)dstSlot; +} + +void ExecEndStartWithOp(StartWithOpState *node) +{ + tuplestore_clear(node->sw_workingTable); + tuplestore_clear(node->sw_backupTable); + tuplestore_clear(node->sw_resultTable); + node->swop_status = SWOP_UNKNOWN; + + pfree_ext(node->sw_values); + pfree_ext(node->sw_isnull); + + /* + * clean out the upper tuple table + */ + (void)ExecClearTuple(node->ps.ps_ResultTupleSlot); + + if (node->sw_context) { + MemoryContextDelete(node->sw_context); + } + + ExecEndNode(outerPlanState(node)); + + return; +} + +void ExecReScanStartWithOp(StartWithOpState *state) +{ + PlanState* outer_plan = outerPlanState(state); + + (void)ExecClearTuple(state->ps.ps_ResultTupleSlot); + + if (outer_plan->chgParam == NULL) { + ExecReScan(outer_plan); + } + + state->swop_status = SWOP_BUILD; + ResetResultSlotAttValueArray(state, state->sw_values, state->sw_isnull); + + tuplestore_clear(state->sw_workingTable); + tuplestore_clear(state->sw_backupTable); + tuplestore_clear(state->sw_resultTable); + + state->sw_nocycleStopOrderSiblings = false; + + /* init other elements */ + state->sw_level = 0; + state->sw_numtuples = 0; + + return; +} + +/* + * Helper functions for StartWith Operation + */ +StartWithOpColumnType GetPseudoColumnType(const char *resname) +{ + StartWithOpColumnType result = SWCOL_UNKNOWN; + + /* + * some plan node's resname is not assign explicit value, so just return and + * consider them as regular column + */ + if (resname == NULL) { + return SWCOL_REGULAR; + } + + if (pg_strcasecmp(resname, "level") == 0) { + result = SWCOL_LEVEL; + } else if (pg_strcasecmp(resname, "connect_by_isleaf") == 0) { + result = SWCOL_ISLEAF; + } else if (pg_strcasecmp(resname, "connect_by_iscycle") == 0) { + result = SWCOL_ISCYCLE; + } else if (pg_strcasecmp(resname, "ruitr") == 0) { + result = SWCOL_RUITR; + } else if (pg_strcasecmp(resname, "array_siblings") == 0) { + result = SWCOL_ARRAY_SIBLINGS; + } else if (pg_strncasecmp(resname, "array_key_", strlen("array_key_")) == 0) { + result = SWCOL_ARRAY_KEY; + } else if (pg_strncasecmp(resname, "array_col_", strlen("array_col_")) == 0) { + result = SWCOL_ARRAY_COL; + } else if (pg_strcasecmp(resname, "rownum") == 0) { + result = SWCOL_ROWNUM; + } else { + result = SWCOL_REGULAR; + } + + return result; +} + + +StartWithOpColumnType GetPseudoColumnType(const TargetEntry *entry) +{ + StartWithOpColumnType result = GetPseudoColumnType(entry->resname); + + return result; +} + +bool IsPseudoReturnColumn(const char *colname) +{ + Assert (colname != NULL); + StartWithOpColumnType type = GetPseudoColumnType(colname); + + return (type == SWCOL_LEVEL || type == SWCOL_ISLEAF || + type == SWCOL_ISCYCLE || type == SWCOL_ROWNUM); +} + +/* + * - srcSlot: the slot returned from RecursiveUnion (table column + internal TE) + * - dstSlot: the slot will return to CteScan (table column + pseudo return colum + internal TE) + */ +TupleTableSlot *ConvertStartWithOpOutputSlot(StartWithOpState *node, + TupleTableSlot *srcSlot, + TupleTableSlot *dstSlot) +{ + /* + * Process start-with pseodu return columns from pseodu tagetentry + * CteScan: col[1......n], level, is_leaf, is_cycle, RUITR, array_name[1,2,...... m] + * | pseudo return column| | <<- pseudo internal column ->>| + */ + HeapTuple tup = ExecMaterializeSlot(srcSlot); + HeapTuple tup_new = NULL; + TupleDesc srcTupDesc = srcSlot->tts_tupleDescriptor; + TupleDesc dstTupDesc = dstSlot->tts_tupleDescriptor; + + /* Reset internal value/isnull array */ + ResetResultSlotAttValueArray(node, node->sw_values, node->sw_isnull); + Datum *values = node->sw_values; + bool *isnull = node->sw_isnull; + + /* Reset dstslot and memorycontext */ + (void)MemoryContextReset(node->sw_context); + MemoryContext oldcxt = MemoryContextSwitchTo(node->sw_context); + + /* + * Step 1, fill StartWithOp's pseudo internal colum + * + * Note: As the conversion share the same values/isnull array, we do tail->front + * element-copy to avoid overlaping + */ + heap_deform_tuple(tup, srcTupDesc, values, isnull); + StartWithOp *swplan = (StartWithOp *)node->ps.plan; + RecursiveUnion *ruplan = (RecursiveUnion *)swplan->ruplan; + int plist_len = list_length(swplan->internalEntryList); + TargetEntry *srcEntry = NULL; + TargetEntry *dstEntry = NULL; + + Assert (list_length(swplan->internalEntryList) == + list_length(ruplan->internalEntryList)); + + for (int i = 0; i < plist_len; i++) { + srcEntry = (TargetEntry *)list_nth(ruplan->internalEntryList, plist_len - i - 1); + dstEntry = (TargetEntry *)list_nth(swplan->internalEntryList, plist_len - i - 1); + + values[dstEntry->resno - 1] = values[srcEntry->resno - 1]; + isnull[dstEntry->resno - 1] = isnull[srcEntry->resno - 1]; + } + + /* Step2, fill StartWithOp's pseudo return columns */ + ListCell *lc = NULL; + foreach (lc, swplan->plan.targetlist) { + TargetEntry *te = (TargetEntry *)lfirst(lc); + if (!IsPseudoReturnTargetEntry(te)) { + continue; + } + + if (pg_strcasecmp(te->resname, "level") == 0) { + AttrNumber att = FetchRUItrTargetEntryResno(node); + int level = DatumGetInt32(values[att - 1]); + + /* Set level/ruitr value */ + if (node->sw_level != level) { + node->sw_level = level; + node->sw_numtuples = 0; + } + values[te->resno - 1] = values[att - 1] + 1; + isnull[te->resno - 1] = false; + } else if (pg_strcasecmp(te->resname, "connect_by_isleaf") == 0) { + values[te->resno - 1] = 0; + isnull[te->resno - 1] = true; + } else if (pg_strcasecmp(te->resname, "connect_by_iscycle") == 0) { + values[te->resno - 1] = 0; + isnull[te->resno - 1] = true; + } else if (pg_strcasecmp(te->resname, "rownum") == 0) { + values[te->resno - 1] = node->sw_rownum + 1; + isnull[te->resno - 1] = false; + } + } + + tup_new = heap_form_tuple(dstTupDesc, values, isnull); + dstSlot = ExecStoreTuple(tup_new, dstSlot, InvalidBuffer, false); + + MemoryContextSwitchTo(oldcxt); + + /* update row num count before returning */ + node->sw_rownum++; + node->sw_numtuples++; + + return dstSlot; +} + +/* + * -------------------------------------------------------------------------------------- + * -Internal functinos + * -------------------------------------------------------------------------------------- + */ +/* + * Build in functions that support start with + */ +Datum sys_connect_by_path(PG_FUNCTION_ARGS) +{ + Datum resultDatum = (Datum)0; + const char *value = NULL; + const char *split = NULL; + bool constArrayList = false; + + /* check invalid spliter */ + if (PG_GETARG_DATUM(1) == (Datum)0) { + elog(ERROR, "illegal parameter in SYS_CONNECT_BY_PATH function"); + } + + if (PG_GETARG_DATUM(0) == (Datum)0) { + value = SWCB_DEFAULT_NULLSTR; + } else { + value = TextDatumGetCString(PG_GETARG_TEXT_PP(0)); + } + split = TextDatumGetCString(PG_GETARG_TEXT_PP(1)); + + + /* + * step[1]: + * Fetch current processed ScanTuple and its internal array_col, then convert + * it into token_list and do proper calculation for sys_connect_by_path() + */ + char *raw_array_str = NULL; + List *token_list = GetCurrentArrayColArray(fcinfo, value, &raw_array_str, &constArrayList); + + ListCell *token = NULL; + + if (!constArrayList) { + bool valid = false; + foreach (token, token_list) { + const char *curValue = (const char *)lfirst(token); + if (strcmp(TrimStr(value), TrimStr(curValue)) == 0) { + valid = true; + break; + } + } + + if (!valid) { + elog(ERROR, "node value is not in path (value:%s path:%s)", value, raw_array_str); + } + } + + /* + * step[2]: + * start to build result array string + */ + StringInfoData si; + initStringInfo(&si); + + foreach (token, token_list) { + const char *node = (const char *)lfirst(token); + appendStringInfo(&si, "%s%s", split, node); + } + + resultDatum = CStringGetTextDatum(si.data); + pfree_ext(si.data); + + PG_RETURN_DATUM(resultDatum); +} + +/* + * ledger_hist_check -- check whether user table hash and history table hash are equal + * + * parameter1: user table name [type: text] + * parameter2: namespace of user table [type: text] + **/ +Datum connect_by_root(PG_FUNCTION_ARGS) +{ + Datum datum = (Datum)0; + const char *value = TextDatumGetCString(PG_GETARG_TEXT_PP(0)); + bool constArrayList = false; + + /* + * step[1]: + * Fetch current processed ScanTuple and its internal array_col, then convert + * it into token_list and do proper calculation for connect_by_root() + */ + char *raw_array_str = NULL; + List *token_list = GetCurrentArrayColArray(fcinfo, value, &raw_array_str, &constArrayList); + ListCell *lc = NULL; + bool valid = false; + foreach (lc, token_list) { + const char *curValue = (const char *)lfirst(lc); + if (strcmp(TrimStr(value), TrimStr(curValue)) == 0) { + valid = true; + break; + } + } + + if (!valid) { + elog(ERROR, "node value is not in path (value:%s path:%s)", value, raw_array_str); + } + + /* + * step[2]: + * start to build result string value + */ + datum = CStringGetTextDatum((char *)linitial(token_list)); + + PG_RETURN_DATUM(datum); +} + +/* + * -brief: array_key cotent in List format + */ +static List *TupleSlotGetKeyArrayList(TupleTableSlot *slot) +{ + Assert (slot != NULL); + + /* 1. find key attnum */ + AttrNumber arrayKeyAttno = InvalidAttrNumber; + Datum arrayKeyDatum = (Datum)0; + TupleDesc tupDesc = slot->tts_tupleDescriptor; + HeapTuple tup = ExecFetchSlotTuple(slot); + bool isnull = true; + + for (int n = 0; n < tupDesc->natts; n++) { + Form_pg_attribute attr = TupleDescAttr(tupDesc, n); + if (pg_strncasecmp(attr->attname.data, "array_key", strlen("arra_key")) == 0) { + arrayKeyAttno = n + 1; + break; + } + } + + if (arrayKeyAttno == InvalidAttrNumber) { + elog(ERROR, "Internal array_key is not found for sys_connect_by_path()"); + } + + /* 2. fetch key str */ + arrayKeyDatum = heap_getattr(tup, arrayKeyAttno, tupDesc, &isnull); + Assert (!isnull && arrayKeyDatum != 0); + + char *rawKeyArrayStr = TextDatumGetCString(arrayKeyDatum); + List *tokenList = CovertInternalArrayStringToList(rawKeyArrayStr); + + return tokenList;; +} + +/* + * -------------------------------------------------------------------------------------- + * @Brief: Get current array_col array from current function invoke context "fcinfo", + * value returned in List + * + * @Note: ScanTuple curernt in processing is held under fcinfo pointer, so we don't pass + * the attnum/varattno of which array_col_no to fetch, sounds a little bit + * "implicit" but deserving so for more convinience + * + * isConstArrayList is an output parameter, indicate current we are handling a CONST + * expression set in sys_connect_by_path()'s first parameter + * -------------------------------------------------------------------------------------- + */ +static List *GetCurrentArrayColArray(const FunctionCallInfo fcinfo, + const char *value, char **raw_array_str, bool *isConstArrayList) +{ + List *token_list = NIL; + TupleTableSlot *slot = NULL; + Var *variable = NULL; + *isConstArrayList = false; + + ExprContext *econtext = (ExprContext *)fcinfo->swinfo.sw_econtext; + ExprState *exprstate = (ExprState *)fcinfo->swinfo.sw_exprstate; + + /* context check */ + Assert (econtext != NULL && exprstate != NULL); + + /* + * Oracle "START WITH ... CONNECT BY" only allow single plaint column to be + * specified, so the eval-context's argument only have one argument with *Var* + * node ported + */ + List *vars = pull_var_clause((Node*)exprstate->expr, + PVC_RECURSE_AGGREGATES, PVC_INCLUDE_PLACEHOLDERS); + + /* handle case where */ + if (vars == NIL) { + TupleTableSlot *slot = econtext->ecxt_scantuple; + List *keyTokenList = NIL; + + if (fcinfo->flinfo->fn_oid == CONNECT_BY_ROOT_FUNCOID && TupIsNull(slot)) { + /* + * By semantic, connect_by_root() aiming to return the root value of current + * recursive tree, if there is a const value set as parameter, its hierachy + * is considered as /{v}/{v}/{v}..., so simplely return const value itself + * + * Note: we can do so only for connect_by_root(), sys_connect_by_path is still + * processed as /{v}/{v}/{v} + */ + token_list = list_make1(pstrdup(value)); + } else { + keyTokenList = TupleSlotGetKeyArrayList(slot); + for (int n = 0; n < list_length(keyTokenList); n++) { + token_list = lappend(token_list, pstrdup(value)); + } + } + + /* mark current list is const array */ + *isConstArrayList = true; + + return token_list; + } + + /* regular case 1st parm is column name */ + variable = (Var *)linitial(vars); + if (!IsA(variable, Var)) { + elog(ERROR, "connect_by_root pass int invalid argument type:%d", + nodeTag(exprstate->expr)); + } + + /* + * Get the input slot and attribute number we want + */ + switch (variable->varno) { + case INNER_VAR: /* get the tuple from the inner node */ + slot = econtext->ecxt_innertuple; + break; + + case OUTER_VAR: /* get the tuple from the outer node */ + slot = econtext->ecxt_outertuple; + break; + + /* INDEX_VAR is handled by default case */ + default: /* get the tuple from the relation being scanned */ + slot = econtext->ecxt_scantuple; + break; + } + + Assert(slot != NULL); + + /* error out invalid case */ + if (variable->varattno <= 0) { + ereport(ERROR, + (errcode(ERRCODE_INVALID_ATTRIBUTE), + errmodule(MOD_EXECUTOR), + errmsg("attribute number %d exceeds number of columns %d", variable->varattno, + slot->tts_tupleDescriptor->natts))); + } + + /* Start do tuple content fetching work */ + HeapTuple tup = ExecFetchSlotTuple(slot); + TupleDesc tupDesc = slot->tts_tupleDescriptor; + bool isnull = true; + + /* context check */ + Assert (econtext != NULL && exprstate != NULL && !TupIsNull(slot)); + + + /* step 1. find proper internal array to support */ + AttrNumber origAttnum = variable->varattno; + AttrNumber arrayColAttnum = GetInternalArrayAttnum(tupDesc , origAttnum); + Datum arrayColDatum = heap_getattr(tup, arrayColAttnum, + slot->tts_tupleDescriptor, &isnull); + Assert (!isnull && origAttnum != InvalidAttrNumber && + arrayColAttnum != InvalidAttrNumber); + Assert (arrayColAttnum > origAttnum); + + /* step 2. process the internal array and get result */ + *raw_array_str = TextDatumGetCString(arrayColDatum); + token_list = CovertInternalArrayStringToList(pstrdup(*raw_array_str)); + + return token_list; +} + +static List *CovertInternalArrayStringToList(char *raw_array_str) +{ + List *token_list = NIL; + char *token_tmp = NULL; + char *token = strtok_s(raw_array_str, "/", &token_tmp); + while (token != NULL) { + token_list = lappend(token_list, token); + token = strtok_s(NULL, "/", &token_tmp); + } + + return token_list; +} + +static AttrNumber GetInternalArrayAttnum(TupleDesc tupDesc, AttrNumber origVarAttno) +{ + NameData arrayAttName; + AttrNumber arrayAttNum = InvalidAttrNumber; + errno_t rc = 0; + + rc = memset_s(arrayAttName.data, NAMEDATALEN, 0, NAMEDATALEN); + securec_check(rc, "\0", "\0"); + rc = sprintf_s(arrayAttName.data, NAMEDATALEN, "array_col_%d", origVarAttno); + securec_check_ss(rc, "\0", "\0"); + + /* find proper internal array to support */ + for (int n = 0; n < tupDesc->natts; n++) { + Form_pg_attribute attr = TupleDescAttr(tupDesc, n); + if (pg_strcasecmp(attr->attname.data, arrayAttName.data) == 0) { + arrayAttNum = n + 1; + break; + } + } + + if (arrayAttNum == InvalidAttrNumber) { + elog(ERROR, "Internal array_col for origVarAttno:%d related internal array is not found", + origVarAttno); + } + + return arrayAttNum; +} + +/* + * fill start with return columns is_leaf, is_cycle + */ +static const char *GetPseudoArrayTargetValueString(TupleTableSlot *slot, AttrNumber attnum) +{ + const char *raw_array_string = NULL; + HeapTuple tup = NULL; + TupleDesc tupDesc = slot->tts_tupleDescriptor; + Datum datum = 0; + bool isnull = true; + + /* fetch physical tuple */ + tup = ExecFetchSlotTuple(slot); + datum = heap_getattr(tup, attnum, tupDesc, &isnull); + raw_array_string = TextDatumGetCString(datum); + + Assert (!isnull && raw_array_string != NULL); + + return raw_array_string; +} + +/* + * - brief: A helper function to update tupleSlot with given isleaf/iscycle value + */ +static void UpdatePseudoReturnColumn(StartWithOpState *state, + TupleTableSlot *slot, bool isleaf, bool iscycle) +{ + HeapTuple tup = NULL; + TupleDesc tupDesc = slot->tts_tupleDescriptor; + + ResetResultSlotAttValueArray(state, state->sw_values, state->sw_isnull); + Datum *values = state->sw_values; + bool *isnull = state->sw_isnull; + + /* fetch physical tuple */ + tup = ExecFetchSlotTuple(slot); + heap_deform_tuple(tup, tupDesc, values, isnull); + + /* check the unset value isleaf, iscycle is not set yet */ + AttrNumber attnum2 = state->sw_pseudoCols[SWCOL_ISLEAF]->resno; + AttrNumber attnum3 = state->sw_pseudoCols[SWCOL_ISCYCLE]->resno; + Assert (values[attnum2 - 1] == 0 && isnull[attnum2 - 1]); + Assert (values[attnum3 - 1] == 0 && isnull[attnum3 - 1]); + + /* set proper value and mark isnull to false */ + values[attnum2 - 1] = BoolGetDatum(isleaf); + isnull[attnum2 - 1] = false; + values[attnum3 - 1] = BoolGetDatum(iscycle); + isnull[attnum3 - 1] = false; + + /* create a local copy tuple and store it to tuplestore, mark shouldFree as 'true ' */ + tup = heap_form_tuple(tupDesc, values, isnull); + slot = ExecStoreTuple(tup, slot, InvalidBuffer, true); +} + +/* + * - brief: check if curernt processing tupleSlot is in cycle + * + * - return: none, iscycle flag is returned by param "bool *connect_by_iscycle" + */ +static void CheckIsCycle(StartWithOpState *state, bool *connect_by_iscycle) +{ + List *entry_list = NIL; + ListCell *entry = NULL; + char *keyArrayStrCopy = NULL; + + Assert (state != NULL && state->sw_curKeyArrayStr != NULL && + connect_by_iscycle != NULL); + + /* The underlying strok_r() will modify the splited string itself so make a copy */ + keyArrayStrCopy = pstrdup(state->sw_curKeyArrayStr); + entry_list = CovertInternalArrayStringToList(keyArrayStrCopy); + foreach (entry, entry_list) { + const char *node1 = (const char *)lfirst(entry); + ListCell *rest = lnext(entry); + while (rest != NULL) { + const char *node2 = (const char *)lfirst(rest); + ListCell *next = lnext(rest); + if (pg_strcasecmp(node1, node2) == 0) { + *connect_by_iscycle = true; + return; + } + rest = next; + } + } + + /* Free the tokenized list as we pass int the copy of sw_curKeyArrayStr */ + list_free_ext(entry_list); + pfree_ext(keyArrayStrCopy); + + *connect_by_iscycle = false; +} + +/* + * - brief: check if curernt processing tupleSlot is leaf + * + * - return: none, iscycle flag is returned by param "bool *connect_by_isleaf" + */ +static void CheckIsLeaf(StartWithOpState *state, bool *connect_by_isleaf) +{ + /* PRC optimization is applied */ + if (PRCCanSkip(state, SWCOL_ISLEAF)) { + return; + } + + Assert (state != NULL && connect_by_isleaf != NULL); + + const char *curRow = state->sw_curKeyArrayStr; + int curRowLen = strlen(curRow); + TupleTableSlot *slot = state->sw_workingSlot; + const char *scanRow = NULL; + + tuplestore_rescan(state->sw_backupTable); + for (;;) { + (void)tuplestore_gettupleslot(state->sw_backupTable, true, false, slot); + if (TupIsNull(slot)) { + /* + * Finish scan all tuples, but we are not found "curRow is not a prefix" + * plus "a prefix and string is longer " + */ + *connect_by_isleaf = true; + break; + } + + /* Free the scanRow memory allocate in last loop */ + if (scanRow != NULL) { + pfree_ext(scanRow); + } + + scanRow = GetPseudoArrayTargetValueString(slot, state->sw_keyAttnum); + int scanRowLen = strlen(scanRow); + + if (strcmp(curRow, scanRow) == 0) { + /* continue if curernt row */ + continue; + } + + /* + * if curRow is the forward prefix of scanRow then set flag connect_by_isleaf false + * -- forward prefix + * abc is forward prefix of abcde + * -- backward predix + * cde is backward prefix of abcde + * + * Attention, we only accept forward prefix in this case. + * */ + char *pos = pg_strrstr((char *)scanRow, curRow); + if (pos != NULL && pos == scanRow && curRowLen < scanRowLen) { + *connect_by_isleaf = false; + break; + } + } + + /* Free text_to_cstring() palloc()-ed string */ + if (scanRow != NULL) { + pfree_ext(scanRow); + } + + return; +} + +static void CheckIsCycleByRowmarks(StartWithOpState *state, bool* connect_by_iscycle, int row) +{ + if (state->sw_cycle_rowmarks == NULL) { + return; + } + ListCell* mark = NULL; + foreach (mark, state->sw_cycle_rowmarks) { + int markIndex = lfirst_int(mark); + if (row == markIndex) { + *connect_by_iscycle = true; + } + } +} + +/* + * - brief: process the recursive-union returned tuples with isleaf/iscycle + * pseudo value filled + * + * - return: none + */ +static void ProcessPseudoReturnColumns(StartWithOpState *state) +{ + TupleTableSlot *dstSlot = state->ps.ps_ResultTupleSlot; + StartWithOp *swplan = (StartWithOp *)state->ps.plan; + + /* step1. put all tuples itno tmp table */ + tuplestore_rescan(state->sw_workingTable); + for (;;) { + (void)tuplestore_gettupleslot(state->sw_workingTable, true, false, dstSlot); + if (TupIsNull(dstSlot)) { + break; + } + + tuplestore_puttupleslot(state->sw_backupTable, dstSlot); + } + + /* seek tuplestore offset to begining */ + tuplestore_rescan(state->sw_workingTable); + tuplestore_rescan(state->sw_backupTable); + + int rowCount = 0; + /* step2. start processing */ + for (;;) { + /* fetch one tuple from workingTable */ + (void)tuplestore_gettupleslot(state->sw_workingTable, true, false, dstSlot); + if (TupIsNull(dstSlot)) { + state->swop_status = SWOP_FINISH; + break; + } + + rowCount++; + bool connect_by_isleaf = true; + bool connect_by_iscycle = true; + + if (swplan->keyEntryList != NIL) { + /* fetch current key array string for later isleaf/iscycle determination */ + state->sw_curKeyArrayStr = + GetPseudoArrayTargetValueString(dstSlot, state->sw_keyAttnum); + + /* Calculate connect_by_iscycle */ + CheckIsCycle(state, &connect_by_iscycle); + CheckIsCycleByRowmarks(state, &connect_by_iscycle, rowCount); + /* Calculate connect_by_isleaf */ + CheckIsLeaf(state, &connect_by_isleaf); + /* Free per-tuple keyArrayStr */ + pfree_ext(state->sw_curKeyArrayStr); + } else { + /* + * !!Note: It is a rare case when gets here because keyEntryList is not + * created for current START WITH clause, simplely it is an abnormal ConnectByExpr + * specified in "CONNECT BY" clause e.g. "CONNECT BY col1 = abs(x)", we set + * isleaf/iscycle both as FALSE value for more failure-tolerance and reasonble + */ + connect_by_isleaf = false; + connect_by_iscycle = false; + } + + /* update result, fill the result tuple */ + UpdatePseudoReturnColumn(state, dstSlot, connect_by_isleaf, connect_by_iscycle); + tuplestore_puttupleslot(state->sw_resultTable, dstSlot, false); + ExecClearTuple(dstSlot); + } + + /* rewind resultTable to let later EXECUTE stage can be processed */ + tuplestore_rescan(state->sw_resultTable); +} + +static AttrNumber FetchRUItrTargetEntryResno(StartWithOpState *state) +{ + AttrNumber attnum = InvalidAttrNumber; + StartWithOp *plan = (StartWithOp *)state->ps.plan; + List *plist = plan->internalEntryList; + ListCell *lc = NULL; + + foreach (lc, plist) { + TargetEntry *te = (TargetEntry *)lfirst(lc); + if (pg_strcasecmp(te->resname, "RUITR") == 0) { + attnum = te->resno; + break; + } + } + + Assert (attnum != InvalidAttrNumber && attnum <= list_length(plan->plan.targetlist)); + + return attnum; +} + +/* + * functinos to process in RuScan + * + * Note: these function are mainly invoked in recursive union operator, but we put them in + * startwith.cpp as they are special logic for start-with converted RecursiveUnion + */ +static const char *GetCurrentWorkTableScanPath(TupleTableSlot *srcSlot, AttrNumber pseudo_attnum) +{ + TupleDesc tupDesc = srcSlot->tts_tupleDescriptor; + HeapTuple tup = ExecFetchSlotTuple(srcSlot); + bool isnull = true; + + /* if srcSlot is from non-recursive(no pseudo column), then just return */ + if (pseudo_attnum > tupDesc->natts) { + return NULL; + } + + if (tup != NULL) { + return TextDatumGetCString(heap_getattr(tup, pseudo_attnum, tupDesc, &isnull)); + } + + return NULL; +} + +static bytea *GetCurrentSiblingsArrayPath(TupleTableSlot *srcSlot, AttrNumber pseudo_attnum) +{ + TupleDesc tupDesc = srcSlot->tts_tupleDescriptor; + HeapTuple tup = ExecFetchSlotTuple(srcSlot); + bool isnull = true; + + /* if srcSlot is from non-recursive(no pseudo column), then just return */ + if (pseudo_attnum > tupDesc->natts) { + return NULL; + } + + if (tup != NULL) { + return DatumGetByteaP(heap_getattr(tup, pseudo_attnum, tupDesc, &isnull)); + } + + return NULL; +} + +static Datum ConvertRuScanArrayAttr(RecursiveUnionState *rustate, + TargetEntry *te, TupleTableSlot *srcSlot, bool inrecursing) +{ + /* + * !!Reminding: + * In the future, we need improve he array_key and array_col into native array + * format rather then use bare literal type + */ + Datum datum = (Datum)0; + const char *spliter = "/"; + const char *node_path = NULL; + const char *value = NULL; + + if (!IsA(te->expr, Var)) { + elog(ERROR, "Invalid TargetEntry expr type %s", nodeToString(te->expr)); + } + + node_path = GetCurrentWorkTableScanPath(srcSlot, te->resno); + StartWithOpColumnType type = GetPseudoColumnType(te); + switch (type) { + case SWCOL_ARRAY_KEY: { + value = GetKeyEntryArrayStr(rustate, srcSlot); + break; + } + case SWCOL_ARRAY_SIBLINGS: { + bytea *path = GetCurrentSiblingsArrayPath(srcSlot, te->resno); + bytea *res = GetSiblingsKeyEntry(rustate, path); + return PointerGetDatum(res); + break; + } + case SWCOL_ARRAY_COL: { + TupleDesc tupDesc = srcSlot->tts_tupleDescriptor; + AttrNumber attno = PseudoResnameGetOriginResno(te->resname); + if (!inrecursing && tupDesc->natts < attno) { + /* + * None-recursive branch + * + * Handle a case where we need generate arry_col for PRC, we need handle + * it properly as in none-recursing stage, PRC is not attached in inner + * plan tree's targetlist, thus there is no way to invoke heap_getattr(), + * instead we need handle it manually, + * + * e.g. select sys_connect_by_path(level, 'xx') + * + * PRC: abbrev for "pseudo return column" level/isleaf/iscycle/rownum + */ + Datum valueDatum = rustate->swstate->sw_values[attno]; + value = pstrdup(DatumGetCString(DirectFunctionCall1(int8out, valueDatum))); + } else { + /* + * Recursive Branch + * + * for recursive case, PRC it attached to RecursiveUnion's inner plan + * targetlist, this we can hanle normally + */ + value = GetCurrentValue(srcSlot, attno); + } + break; + } + default: { + /* fall-thru */ + } + } + + + StringInfo si = makeStringInfo(); + + if (GetPseudoColumnType(te) == SWCOL_ARRAY_SIBLINGS) { + if (node_path == NULL) { + appendStringInfo(si, "%s", value); + } else { + appendStringInfo(si, "%s%s", node_path, value); + } + } else { + if (node_path == NULL) { + appendStringInfo(si, "%s%s", spliter, value); + } else { + appendStringInfo(si, "%s%s%s", node_path, spliter, value); + } + } + + /* Drop memory allocation created in current function, free as early as possible */ + datum = CStringGetTextDatum(si->data); + pfree_ext(si->data); + pfree_ext(node_path); + pfree_ext(value); + + return datum; +} + +/* + * -------------------------------------------------------------------------------------- + * @Brief: Invoked at return point of RecursiveUnion, add the key/array information store + * in worktable, so that next round of recursive iteration can append new node + * value to previous nodepath + * -------------------------------------------------------------------------------------- + */ +TupleTableSlot *ConvertRuScanOutputSlot(RecursiveUnionState *rustate, + TupleTableSlot *scanSlot, + bool inrecursing) +{ + if (TupIsNull(scanSlot)) { + return scanSlot; + } + + /* Origin RuScan output tuple */ + HeapTuple scanTup = ExecFetchSlotTuple(scanSlot); + TupleDesc scanTupDesc = scanSlot->tts_tupleDescriptor; + + /* + * New RuScan output tuple will containd RUITR, array_key/col_nn, .... + * + * RecursiveUnion plan node's "result slot" tupDesc contains RUITR, array_key/col_nn + * as they were generated from RecursiveUnion's targetlist + */ + HeapTuple outTup = NULL; + TupleDesc outTupDesc = rustate->ps.ps_ResultTupleSlot->tts_tupleDescriptor; + TupleTableSlot *outSlot = rustate->ps.ps_ResultTupleSlot; + + StartWithOpState *swstate = rustate->swstate; + ResetResultSlotAttValueArray(swstate, swstate->sw_values, swstate->sw_isnull); + Datum *values = swstate->sw_values; + bool *isnull = swstate->sw_isnull; + + /* Reset scanslot and memorycontext */ + (void)MemoryContextReset(rustate->convertContext); + MemoryContext oldcxt = MemoryContextSwitchTo(rustate->convertContext); + + /* + * scanTuple does not contain RUITR, array_name, deformed by old desc and use new + * values/isbull to accept deformed content + */ + heap_deform_tuple(scanTup, scanTupDesc, values, isnull); + + ListCell *lc = NULL; + RecursiveUnion *ruplan = (RecursiveUnion *)rustate->ps.plan; + foreach (lc, ruplan->internalEntryList) { + TargetEntry *te = (TargetEntry *)lfirst(lc); + AttrNumber attnum = te->resno; + + if (pg_strcasecmp(te->resname, "RUITR") == 0) { + values[attnum - 1] = rustate->iteration; + } else if (pg_strncasecmp(te->resname, "array_key_", strlen("array_key_")) == 0) { + values[attnum - 1] = ConvertRuScanArrayAttr(rustate, te, scanSlot, inrecursing); + } else { + values[attnum - 1] = ConvertRuScanArrayAttr(rustate, te, scanSlot, inrecursing); + } + + /* for converted slot is always filled with valid value(none-empty) */ + isnull[attnum - 1] = false; + } + + /* build converted tuple */ + outTup = heap_form_tuple(outTupDesc, values, isnull); + outSlot = ExecStoreTuple(outTup, outSlot, InvalidBuffer, false); + + MemoryContextSwitchTo(oldcxt); + + /* + * Start With dfx + * + * - print key information for each iteration in RuSacn + **/ + if (u_sess->attr.attr_sql.enable_startwith_debug) { + bool _isnull = true; + Datum d = heap_getattr(outTup, rustate->swstate->sw_keyAttnum, outTupDesc, &_isnull); + elog(LOG, "StartWithDebug: LEVEL:%d array_key_1:%s", + rustate->iteration + 1, TextDatumGetCString(d)); + } + + /* sw_tuple_idx++ after one tuple finished. */ + rustate->sw_tuple_idx++; + + return outSlot; +} + +static bytea* bytea_catenate(bytea* t1, bytea* t2) +{ + bytea* result = NULL; + int len1, len2, len; + char* ptr = NULL; + int rc = 0; + + len1 = VARSIZE_ANY_EXHDR(t1); + len2 = VARSIZE_ANY_EXHDR(t2); + + if (len1 < 0) { + len1 = 0; + } + if (len2 < 0) { + len2 = 0; + } + + len = len1 + len2 + VARHDRSZ; + result = (bytea*)palloc(len); + + /* Set size of result string... */ + SET_VARSIZE(result, len); + + /* Fill data field of result string... */ + ptr = VARDATA(result); + if (len1 > 0) { + rc = memcpy_s(ptr, len1, VARDATA_ANY(t1), len1); + securec_check(rc, "\0", "\0"); + } + if (len2 > 0) { + rc = memcpy_s(ptr + len1, len2, VARDATA_ANY(t2), len2); + securec_check(rc, "\0", "\0"); + } + return result; +} + +/* + * -------------------------------------------------------------------------------------- + * @Brief: return order pseudo order siblings key for further order + * pseudo column array like this: + * [00001][00001][00001][00002] --> every buckets use byea type + * [00001] -> tuple ordered position in current level, array index represent level + * -------------------------------------------------------------------------------------- + */ +static bytea *GetSiblingsKeyEntry(RecursiveUnionState *rustate, bytea *old_path) +{ + bytea *result = NULL; + bytea *newKey = NULL; + const int bucketSize = 4; + const int maxEntrySize = 127; + const uint64 maxSize = pow(maxEntrySize, 4); + + /* + * We use four bytea size for one bucket sibings key + * so we could support max 127^4 tuple to order + */ + newKey = (bytea *)palloc0(bucketSize + VARHDRSZ); + SET_VARSIZE(newKey, bucketSize + VARHDRSZ); + char *keyVar = VARDATA_ANY(newKey); + + if (rustate->sw_tuple_idx >= maxSize) { + ereport(ERROR, + (errcode(ERRCODE_CONFIGURATION_LIMIT_EXCEEDED), + errmsg("Exceed max numbers of siblings tuples"))); + } + + /* Fill correct order position into buckets */ + uint64 tupleIdx = rustate->sw_tuple_idx; + + const uint64 lastMod = (const uint64)pow(maxEntrySize, 3); + keyVar[3] = tupleIdx / lastMod; + tupleIdx = tupleIdx % lastMod; + + const uint64 thirdMod = (const uint64)pow(maxEntrySize, 2); + keyVar[2] = tupleIdx / thirdMod; + tupleIdx = tupleIdx % thirdMod; + + keyVar[1] = tupleIdx / maxEntrySize; + tupleIdx = tupleIdx % maxEntrySize; + + keyVar[0] = tupleIdx; + + /* Reach level 0 if path is NULL then return */ + if (old_path == NULL) { + elog(LOG, "siblings key is %s current level is %d tuple position is %lu.", + DatumGetCString(DirectFunctionCall1(byteaout, PointerGetDatum(newKey))), + rustate->iteration + 1, + rustate->sw_tuple_idx); + return newKey; + } + + /* Otherwise we catenate new siblings key to old key path */ + result = bytea_catenate(old_path, newKey); + + if (u_sess->attr.attr_sql.enable_startwith_debug) { + elog(LOG, "siblings key is %s current level is %d tuple position is %lu", + DatumGetCString(DirectFunctionCall1(byteaout, PointerGetDatum(result))), + rustate->iteration + 1, + rustate->sw_tuple_idx); + } + + return result; +} + +/* + * -------------------------------------------------------------------------------------- + * @Brief: return a key/keys in string format, e.g {1,2}, {1}, the next step is + * to construct path like /{1,A}/{2,B}/{3,3} + * -------------------------------------------------------------------------------------- + */ +static const char *GetKeyEntryArrayStr(RecursiveUnionState *state, TupleTableSlot *scanSlot) +{ + const char *result = NULL; + + List *keyEntryList = ((StartWithOp *)state->swstate->ps.plan)->keyEntryList; + + /* build key string {key,key,key} */ + StringInfoData si; + initStringInfo(&si); + appendStringInfo(&si, "%s", KEY_START_TAG); + { + for (int i = 0; i < list_length(keyEntryList); i++) { + TargetEntry *te = (TargetEntry *)list_nth(keyEntryList, i); + const char *curKeyValue = GetCurrentValue(scanSlot, te->resno); + if (curKeyValue == NULL) { + /* + * ArrayKeyValue could return NULL, for example, base table's column + * contains NULL and startWithExpr is set condition "TRUE" + */ + elog(WARNING, "The internal key column[%d]:%s with NULL value.", + te->resno, + scanSlot->tts_tupleDescriptor->attrs[i]->attname.data); + } + + if (i == 0) { + appendStringInfo(&si, "%s", curKeyValue); + } else { + appendStringInfo(&si, ",%s", curKeyValue); + } + } + + } + appendStringInfo(&si, "%s", KEY_CLOSE_TAG); + result = pstrdup(si.data); + pfree_ext(si.data); + + return result; +} + +/* + * -------------------------------------------------------------------------------------- + * @Brief: Helper function to output column value in string format, caller need to free + * the return string + * -------------------------------------------------------------------------------------- + */ +static const char *GetCurrentValue(TupleTableSlot *slot, AttrNumber attnum) +{ + TupleDesc tupDesc = slot->tts_tupleDescriptor; + HeapTuple tup = ExecFetchSlotTuple(slot); + bool isnull = true; + Oid atttypid = tupDesc->attrs[attnum - 1]->atttypid; + Datum d = heap_getattr(tup, attnum, tupDesc, &isnull); + char *value_str = NULL; + + /* + * Return string SWCB_DEFAULT_NULLSTR to represent NULL in internal array_key/col's element, + * + * Note, slot value int array_key/array_col list is to represent iteration level's rather + * than its real value + */ + if (isnull) { + return pstrdup(SWCB_DEFAULT_NULLSTR); + } + + switch (atttypid) { + case INT8OID: + value_str = DatumGetCString(DirectFunctionCall1(int8out, d)); + break; + case INT1OID: + value_str = DatumGetCString(DirectFunctionCall1(int1out, d)); + break; + case INT2OID: + value_str = DatumGetCString(DirectFunctionCall1(int2out, d)); + break; + case OIDOID: + value_str = DatumGetCString(DirectFunctionCall1(oidout, d)); + break; + case INT4OID: + value_str = DatumGetCString(DirectFunctionCall1(int4out, d)); + break; + case BOOLOID: + value_str = DatumGetCString(DirectFunctionCall1(boolout, d)); + break; + case CHAROID: + value_str = DatumGetCString(DirectFunctionCall1(charout, d)); + break; + case NAMEOID: + value_str = DatumGetCString(DirectFunctionCall1(nameout, d)); + break; + case FLOAT4OID: + value_str = DatumGetCString(DirectFunctionCall1(float4out, d)); + break; + case FLOAT8OID: + value_str = DatumGetCString(DirectFunctionCall1(float8out, d)); + break; + case ABSTIMEOID: + value_str = DatumGetCString(DirectFunctionCall1(abstimeout, d)); + break; + case RELTIMEOID: + value_str = DatumGetCString(DirectFunctionCall1(reltimeout, d)); + break; + case DATEOID: + value_str = DatumGetCString(DirectFunctionCall1(date_out, d)); + break; + case CASHOID: + value_str = DatumGetCString(DirectFunctionCall1(cash_out, d)); + break; + case TIMEOID: + value_str = DatumGetCString(DirectFunctionCall1(time_out, d)); + break; + case TIMESTAMPOID: + value_str = DatumGetCString(DirectFunctionCall1(timestamp_out, d)); + break; + case TIMESTAMPTZOID: + value_str = DatumGetCString(DirectFunctionCall1(timestamptz_out, d)); + break; + case SMALLDATETIMEOID: + value_str = DatumGetCString(DirectFunctionCall1(smalldatetime_out, d)); + break; + case UUIDOID: + value_str = DatumGetCString(DirectFunctionCall1(uuid_out, d)); + break; + case INTERVALOID: + value_str = DatumGetCString(DirectFunctionCall1(interval_out, d)); + break; + case TIMETZOID: + value_str = DatumGetCString(DirectFunctionCall1(timetz_out, d)); + break; + case INT2VECTOROID: + value_str = DatumGetCString(DirectFunctionCall1(int2vectorout, d)); + break; + case CLOBOID: + value_str = DatumGetCString(DirectFunctionCall1(textout, d)); + break; + case NVARCHAR2OID: + value_str = DatumGetCString(DirectFunctionCall1(nvarchar2out, d)); + break; + case VARCHAROID: + value_str = DatumGetCString(DirectFunctionCall1(varcharout, d)); + break; + case TEXTOID: + value_str = DatumGetCString(DirectFunctionCall1(textout, d)); + break; + case OIDVECTOROID: + value_str = DatumGetCString(DirectFunctionCall1(oidvectorout, d)); + break; + case BPCHAROID: + value_str = DatumGetCString(DirectFunctionCall1(bpcharout, d)); + break; + case RAWOID: + value_str = DatumGetCString(DirectFunctionCall1(rawout, d)); + break; + case BYTEAOID: + value_str = DatumGetCString(DirectFunctionCall1(byteaout, d)); + break; + case NUMERICOID: + value_str = DatumGetCString(DirectFunctionCall1(numeric_out, d)); + break; + default: { + elog(ERROR, "unspported type for attname:%s (typid:%u typname:%s)", + tupDesc->attrs[attnum - 1]->attname.data, + atttypid, get_typename(atttypid)); + } + } + + return pstrdup(value_str); +} + +static bool PRCCanSkip(StartWithOpState *state, int prcType) +{ + StartWithOp *swplan = (StartWithOp *)state->ps.plan; + Assert (IsA(swplan, StartWithOp)); + bool result = false; + + switch (prcType) { + case SWCOL_ISCYCLE: { + result = (IsSkipIsCycle(swplan->swExecOptions) != 0); + break; + } + case SWCOL_ISLEAF: { + result = (IsSkipIsLeaf(swplan->swExecOptions) != 0); + break; + } + case SWCOL_LEVEL: + case SWCOL_ROWNUM: + /* + * fall-thru level/rownum is light weight, we do not apply PRC-skip + * optimization on them + */ + default: { + /* other PRC is always not-skipable */ + result = false; + } + } + + return result; +} diff --git a/src/gausskernel/runtime/executor/nodeTidscan.cpp b/src/gausskernel/runtime/executor/nodeTidscan.cpp index 114701b62..2c3f48b73 100644 --- a/src/gausskernel/runtime/executor/nodeTidscan.cpp +++ b/src/gausskernel/runtime/executor/nodeTidscan.cpp @@ -6,6 +6,7 @@ * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -27,6 +28,7 @@ #include "access/sysattr.h" #include "access/tableam.h" +#include "catalog/pg_partition_fn.h" #include "catalog/pg_type.h" #include "executor/exec/execdebug.h" #include "executor/node/nodeTidscan.h" @@ -42,7 +44,7 @@ ((node) != NULL && IsA((node), Var) && ((Var*)(node))->varattno == SelfItemPointerAttributeNumber && \ ((Var*)(node))->varlevelsup == 0) -static void TidListCreate(TidScanState* tidstate); +static void TidListCreate(TidScanState* tidstate, bool isBucket); static int ItemptrComparator(const void* a, const void* b); static TupleTableSlot* TidNext(TidScanState* node); static void ExecInitNextPartitionForTidScan(TidScanState* node); @@ -54,7 +56,7 @@ static void ExecInitPartitionForTidScan(TidScanState* tidstate, EState* estate); * * (The result is actually an array, not a list.) */ -static void TidListCreate(TidScanState* tidstate) +static void TidListCreate(TidScanState* tidstate, bool isBucket) { List* eval_list = tidstate->tss_tidquals; ExprContext* econtext = tidstate->ss.ps.ps_ExprContext; @@ -70,10 +72,14 @@ static void TidListCreate(TidScanState* tidstate) * be possible for someone to truncate away the blocks we intend to * visit.) */ - if (tidstate->ss.isPartTbl) { - nblocks = RelationGetNumberOfBlocks(tidstate->ss.ss_currentPartition); + if (isBucket) { + nblocks = MaxBlockNumber; } else { - nblocks = RelationGetNumberOfBlocks(tidstate->ss.ss_currentRelation); + if (tidstate->ss.isPartTbl) { + nblocks = RelationGetNumberOfBlocks(tidstate->ss.ss_currentPartition); + } else { + nblocks = RelationGetNumberOfBlocks(tidstate->ss.ss_currentRelation); + } } /* @@ -403,7 +409,7 @@ static TupleTableSlot* TidNext(TidScanState* node) * First time through, compute the list of TIDs to be visited */ if (node->tss_TidList == NULL) - TidListCreate(node); + TidListCreate(node, RELATION_CREATE_BUCKET(heap_relation)); if (node->tss_isCurrentOf && node->ss.isPartTbl) { if (PointerIsValid(node->tss_CurrentOf_CurrentPartition)) { @@ -516,6 +522,7 @@ void ExecEndTidScan(TidScanState* node) Assert(node->ss.ss_currentPartition); releaseDummyRelation(&(node->ss.ss_currentPartition)); releasePartitionList(node->ss.ss_currentRelation, &(node->ss.partitions), NoLock); + releaseSubPartitionList(node->ss.ss_currentRelation, &(node->ss.subpartitions), NoLock); } } @@ -630,8 +637,20 @@ TidScanState* ExecInitTidScan(TidScan* node, EState* estate, int eflags) /* make dummy table realtion with the first partition for scan */ partition = (Partition)list_nth(tidstate->ss.partitions, 0); partitiontrel = partitionGetRelation(current_relation, partition); - tidstate->ss.ss_currentPartition = partitiontrel; - tidstate->ss.ss_currentScanDesc = scan_handler_tbl_begin_tidscan(partitiontrel, (ScanState*)tidstate); + + if (RelationIsSubPartitioned(current_relation)) { + List *currentSubpartList = (List *)list_nth(tidstate->ss.subpartitions, 0); + Partition currentSubPart = (Partition)list_nth(currentSubpartList, 0); + Relation currentSubPartitionRel = partitionGetRelation(partitiontrel, currentSubPart); + + releaseDummyRelation(&partitiontrel); + tidstate->ss.ss_currentPartition = currentSubPartitionRel; + tidstate->ss.ss_currentScanDesc = + scan_handler_tbl_begin_tidscan(currentSubPartitionRel, (ScanState *)tidstate); + } else { + tidstate->ss.ss_currentPartition = partitiontrel; + tidstate->ss.ss_currentScanDesc = scan_handler_tbl_begin_tidscan(partitiontrel, (ScanState *)tidstate); + } } } else { tidstate->ss.ss_currentScanDesc = scan_handler_tbl_begin_tidscan(current_relation, (ScanState*)tidstate); @@ -677,6 +696,8 @@ static void ExecInitNextPartitionForTidScan(TidScanState* node) TidScan* plan = NULL; int paramno = -1; ParamExecData* param = NULL; + int subPartParamno = -1; + ParamExecData* SubPrtParam = NULL; plan = (TidScan*)(node->ss.ps.plan); @@ -685,6 +706,9 @@ static void ExecInitNextPartitionForTidScan(TidScanState* node) param = &(node->ss.ps.state->es_param_exec_vals[paramno]); node->ss.currentSlot = (int)param->value; + subPartParamno = plan->scan.plan.subparamno; + SubPrtParam = &(node->ss.ps.state->es_param_exec_vals[subPartParamno]); + /* construct a dummy table relation with the next table partition */ current_partition = (Partition)list_nth(node->ss.partitions, node->ss.currentSlot); current_partitionrel = partitionGetRelation(node->ss.ss_currentRelation, current_partition); @@ -695,9 +719,22 @@ static void ExecInitNextPartitionForTidScan(TidScanState* node) */ Assert(PointerIsValid(node->ss.ss_currentPartition)); releaseDummyRelation(&(node->ss.ss_currentPartition)); - node->ss.ss_currentPartition = current_partitionrel; + if (current_partitionrel->partMap != NULL) { + Partition currentSubPartition = NULL; + List* currentSubPartitionList = NULL; + Relation currentSubPartitionRel = NULL; + Assert(SubPrtParam != NULL); + currentSubPartitionList = (List *)list_nth(node->ss.subpartitions, node->ss.currentSlot); + currentSubPartition = (Partition)list_nth(currentSubPartitionList, (int)SubPrtParam->value); + currentSubPartitionRel = partitionGetRelation(current_partitionrel, currentSubPartition); - node->ss.ss_currentScanDesc = scan_handler_tbl_begin_tidscan(current_partitionrel, (ScanState*)node); + releaseDummyRelation(&(current_partitionrel)); + node->ss.ss_currentPartition = currentSubPartitionRel; + node->ss.ss_currentScanDesc = scan_handler_tbl_begin_tidscan(currentSubPartitionRel, (ScanState*)node); + } else { + node->ss.ss_currentPartition = current_partitionrel; + node->ss.ss_currentScanDesc = scan_handler_tbl_begin_tidscan(current_partitionrel, (ScanState*)node); + } } /* @@ -740,6 +777,29 @@ static void ExecInitPartitionForTidScan(TidScanState* tidstate, EState* estate) table_partitionid = getPartitionOidFromSequence(current_relation, part_seq); table_partition = partitionOpen(current_relation, table_partitionid, lock); tidstate->ss.partitions = lappend(tidstate->ss.partitions, table_partition); + if (plan->scan.pruningInfo->ls_selectedSubPartitions != NIL) { + Relation partRelation = partitionGetRelation(current_relation, table_partition); + SubPartitionPruningResult* subPartPruningResult = + GetSubPartitionPruningResult(plan->scan.pruningInfo->ls_selectedSubPartitions, part_seq); + if (subPartPruningResult == NULL) { + continue; + } + List *subpartSeqs = subPartPruningResult->ls_selectedSubPartitions; + List *subpartition = NIL; + ListCell *lc = NULL; + foreach (lc, subpartSeqs) { + Oid subpartitionid = InvalidOid; + int subpartSeq = lfirst_int(lc); + + subpartitionid = getPartitionOidFromSequence(partRelation, subpartSeq); + Partition subpart = partitionOpen(partRelation, subpartitionid, lock); + subpartition = lappend(subpartition, subpart); + } + releaseDummyRelation(&(partRelation)); + tidstate->ss.subPartLengthList = + lappend_int(tidstate->ss.subPartLengthList, list_length(subpartition)); + tidstate->ss.subpartitions = lappend(tidstate->ss.subpartitions, subpartition); + } } } } diff --git a/src/gausskernel/runtime/executor/spi.cpp b/src/gausskernel/runtime/executor/spi.cpp index 4689ec89d..523121a7c 100644 --- a/src/gausskernel/runtime/executor/spi.cpp +++ b/src/gausskernel/runtime/executor/spi.cpp @@ -6,6 +6,7 @@ * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -50,21 +51,23 @@ THR_LOCAL uint32 SPI_processed = 0; THR_LOCAL SPITupleTable *SPI_tuptable = NULL; THR_LOCAL int SPI_result; +static void SubReleaseSpiPlanRef(TransactionId mysubid); + static Portal SPI_cursor_open_internal(const char *name, SPIPlanPtr plan, ParamListInfo paramLI, bool read_only, bool isCollectParam = false); -static void _SPI_prepare_plan(const char *src, SPIPlanPtr plan); +void _SPI_prepare_plan(const char *src, SPIPlanPtr plan); #ifdef PGXC static void _SPI_pgxc_prepare_plan(const char *src, List *src_parsetree, SPIPlanPtr plan); #endif -static void _SPI_prepare_oneshot_plan(const char *src, SPIPlanPtr plan); +void _SPI_prepare_oneshot_plan(const char *src, SPIPlanPtr plan); -static int _SPI_execute_plan(SPIPlanPtr plan, ParamListInfo paramLI, Snapshot snapshot, Snapshot crosscheck_snapshot, - bool read_only, bool fire_triggers, long tcount, bool from_lock = false); +int _SPI_execute_plan(SPIPlanPtr plan, ParamListInfo paramLI, Snapshot snapshot, Snapshot crosscheck_snapshot, + bool read_only, bool fire_triggers, long tcount, bool from_lock); -static ParamListInfo _SPI_convert_params(int nargs, Oid *argtypes, Datum *Values, const char *Nulls, - Cursor_Data *cursor_data = NULL); +ParamListInfo _SPI_convert_params(int nargs, Oid *argtypes, Datum *Values, const char *Nulls, + Cursor_Data *cursor_data); static int _SPI_pquery(QueryDesc *queryDesc, bool fire_triggers, long tcount, bool from_lock = false); @@ -75,7 +78,6 @@ static void _SPI_cursor_operation(Portal portal, FetchDirection direction, long static SPIPlanPtr _SPI_make_plan_non_temp(SPIPlanPtr plan); static SPIPlanPtr _SPI_save_plan(SPIPlanPtr plan); -static int _SPI_begin_call(bool execmem); static MemoryContext _SPI_procmem(void); static bool _SPI_checktuples(void); extern void ClearVacuumStmt(VacuumStmt *stmt); @@ -180,6 +182,7 @@ int SPI_connect_ext(CommandDest dest, void (*spiCallbackfn)(void *), void *clien int SPI_finish(void) { + SPI_STACK_LOG("begin", NULL, NULL); int res = _SPI_begin_call(false); /* live in procedure memory */ if (res < 0) { return res; @@ -244,7 +247,7 @@ void SPI_start_transaction(void) * Firstly Call this to check whether commit/rollback statement is supported, then call * SPI_commit/SPI_rollback to change transaction state. */ -void SPI_stp_transaction_check(bool read_only) +void SPI_stp_transaction_check(bool read_only, bool savepoint) { /* Can not commit/rollback if it's atomic is true */ if (u_sess->SPI_cxt._current->atomic) { @@ -255,30 +258,33 @@ void SPI_stp_transaction_check(bool read_only) /* If commit/rollback is not within store procedure report error */ if (!u_sess->SPI_cxt.is_stp) { ereport(ERROR, (errcode(ERRCODE_INVALID_TRANSACTION_TERMINATION), - errmsg("cannot commit/rollback within function or procedure started by trigger"))); + errmsg("cannot commit/rollback/savepoint within function or procedure started by trigger"))); + } + + if (u_sess->SPI_cxt.is_complex_sql) { + ereport(ERROR, (errcode(ERRCODE_INVALID_TRANSACTION_TERMINATION), + errmsg("cannot commit/rollback within function or procedure started by complicated SQL statements"))); } #ifdef ENABLE_MULTIPLE_NODES /* Can not commit/rollback at non-CN nodes */ if (!IS_PGXC_COORDINATOR || IsConnFromCoord()) { ereport(ERROR, (errcode(ERRCODE_INVALID_TRANSACTION_TERMINATION), - errmsg("cannot commit/rollback at non-CN node"))); + errmsg("cannot commit/rollback/savepoint at non-CN node"))); } #endif if (read_only) { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("commit/rollback is not allowed in a non-volatile function"))); + errmsg("commit/rollback/savepoint is not allowed in a non-volatile function"))); /* translator: %s is a SQL statement name */ } - if (IsStpInOuterSubTransaction()) { + if (!savepoint && IsStpInOuterSubTransaction()) { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("commit/rollback is not allowed in outer sub transaction block."))); } - - return; } /* @@ -329,6 +335,212 @@ void SPI_rollback() return; } +/* + * rollback and release current transaction. + */ +void SPI_savepoint_rollbackAndRelease(const char *spName, SubTransactionId subXid) +{ + if (subXid == InvalidTransactionId) { + RollbackAndReleaseCurrentSubTransaction(true); + + if (spName != NULL) { + u_sess->plsql_cxt.stp_savepoint_cnt--; + } else { + u_sess->SPI_cxt.portal_stp_exception_counter--; + } + } else if (subXid != GetCurrentSubTransactionId()) { + /* errors during starting a subtransaction */ + AbortSubTransaction(); + CleanupSubTransaction(); + } + +#ifdef ENABLE_MULTIPLE_NODES + /* DN had aborted the complete transaction already while cancel_query failed. */ + if (IS_PGXC_COORDINATOR && !IsConnFromCoord() && + !t_thrd.xact_cxt.handlesDestroyedInCancelQuery) { + /* internal savepoint while spName is NULL */ + const char *name = (spName != NULL) ? spName : "s1"; + + StringInfoData str; + initStringInfo(&str); + appendStringInfo(&str, "ROLLBACK TO %s;", name); + + HandleReleaseOrRollbackSavepoint(str.data, name, SUB_STMT_ROLLBACK_TO); + /* CN send rollback savepoint to remote nodes to abort sub transaction remotely */ + pgxc_node_remote_savepoint(str.data, EXEC_ON_DATANODES, false, false); + + resetStringInfo(&str); + appendStringInfo(&str, "RELEASE %s;", name); + HandleReleaseOrRollbackSavepoint(str.data, name, SUB_STMT_RELEASE); + /* CN should send release savepoint command to remote nodes for savepoint name reuse */ + pgxc_node_remote_savepoint(str.data, EXEC_ON_DATANODES, false, false); + + FreeStringInfo(&str); + } +#endif +} + +/* + * define a savepint in STP + */ +void SPI_savepoint_create(const char* spName) +{ +#ifdef ENABLE_MULTIPLE_NODES + /* CN should send savepoint command to remote nodes to begin sub transaction remotely. */ + if (IS_PGXC_COORDINATOR && !IsConnFromCoord()) { + /* internal savepoint while spName is NULL */ + const char *name = (spName != NULL) ? spName : "s1"; + + StringInfoData str; + initStringInfo(&str); + appendStringInfo(&str, "SAVEPOINT %s;", name); + + /* if do savepoint, always treat myself as local write node */ + RegisterTransactionLocalNode(true); + RecordSavepoint(str.data, name, false, SUB_STMT_SAVEPOINT); + pgxc_node_remote_savepoint(str.data, EXEC_ON_DATANODES, true, true); + + FreeStringInfo(&str); + } +#endif + + SubTransactionId subXid = GetCurrentSubTransactionId(); + PG_TRY(); + { + BeginInternalSubTransaction(spName); + } + PG_CATCH(); + { + SPI_savepoint_rollbackAndRelease(spName, subXid); + + PG_RE_THROW(); + } + PG_END_TRY(); + + if (spName != NULL) { + u_sess->plsql_cxt.stp_savepoint_cnt++; + } else { + u_sess->SPI_cxt.portal_stp_exception_counter++; + } +} + +/* + * rollback to a savepoint in STP + */ +void SPI_savepoint_rollback(const char* spName) +{ + /* mark subtransaction to be rollback as abort pending */ + RollbackToSavepoint(spName, true); + +#ifdef ENABLE_MULTIPLE_NODES + /* savepoint for exception while spName is NULL */ + const char *name = (spName != NULL) ? spName : "s1"; + + StringInfoData str; + initStringInfo(&str); + appendStringInfo(&str, "ROLLBACK TO %s;", name); + + if (IS_PGXC_COORDINATOR && !IsConnFromCoord()) { + HandleReleaseOrRollbackSavepoint(str.data, name, SUB_STMT_ROLLBACK_TO); + /* CN send rollback savepoint to remote nodes to abort sub transaction remotely */ + pgxc_node_remote_savepoint(str.data, EXEC_ON_DATANODES, false, false); + } + + FreeStringInfo(&str); +#endif + + /* + * Do this after remote savepoint, so no cancel in AbortSubTransaction will be sent to + * interrupt previous cursor fetch. + */ + CommitTransactionCommand(true); + + /* move old subtransaction's remain resource into new subtransaction. */ + XactResumeSPIContext(false); +} + +/* + * release savepoint in STP + */ +void SPI_savepoint_release(const char* spName) +{ + /* Commit the inner transaction, return to outer xact context */ + ReleaseSavepoint(spName, true); + +#ifdef ENABLE_MULTIPLE_NODES + /* CN should send release savepoint command to remote nodes for savepoint name reuse */ + if (IS_PGXC_COORDINATOR && !IsConnFromCoord()) { + /* internal savepoint while spName is NULL */ + const char *name = (spName != NULL) ? spName : "s1"; + + StringInfoData str; + initStringInfo(&str); + appendStringInfo(&str, "RELEASE %s;", name); + + HandleReleaseOrRollbackSavepoint(str.data, name, SUB_STMT_RELEASE); + pgxc_node_remote_savepoint(str.data, EXEC_ON_DATANODES, false, false); + + FreeStringInfo(&str); + } +#endif + + /* + * Do this after remote savepoint, so no cancel in AbortSubTransaction will be sent to + * interrupt previous cursor fetch. + */ + CommitTransactionCommand(true); + + /* move old subtransaction's remain resource into new subtransaction. */ + XactResumeSPIContext(false); +} + +/* + * return SPI current connect's stack level. + */ +int SPI_connectid() +{ + return u_sess->SPI_cxt._connected; +} + +/* + * pop SPI connect till specified stack level. + */ +void SPI_disconnect(int connect) +{ + while (u_sess->SPI_cxt._connected >= connect) { + /* Restore memory context as it was before procedure call */ + (void)MemoryContextSwitchTo(u_sess->SPI_cxt._current->savedcxt); + + /* + * Memory can't be destoryed now since cleanup as those as in AbortSubTransaction + * are not done still. We ignore them here, and they will be freed along with top + * transaction's termination or portal drop. Any idea to free it in advance? + */ + u_sess->SPI_cxt._current->execCxt = NULL; + u_sess->SPI_cxt._current->procCxt = NULL; + + /* Recover timestamp */ + if (u_sess->SPI_cxt._current->stmtTimestamp > 0) { + SetCurrentStmtTimestamp(u_sess->SPI_cxt._current->stmtTimestamp); + } + + u_sess->SPI_cxt._connected--; + u_sess->SPI_cxt._curid = u_sess->SPI_cxt._connected; + if (u_sess->SPI_cxt._connected == -1) { + u_sess->SPI_cxt._current = NULL; + } else { + u_sess->SPI_cxt._current = &(u_sess->SPI_cxt._stack[u_sess->SPI_cxt._connected]); + } + } + + /* + * Reset result variables, especially SPI_tuptable which is probably + * pointing at a just-deleted tuptable + */ + SPI_processed = 0; + u_sess->SPI_cxt.lastoid = InvalidOid; + SPI_tuptable = NULL; +} /* * Clean up SPI state. Called on transaction end (of non-SPI-internal @@ -400,6 +612,9 @@ void AtEOSubXact_SPI(bool isCommit, SubTransactionId mySubid, bool STP_rollback, * Release procedure memory explicitly (see note in SPI_connect) */ bool need_free_context = isCommit ? true : connection->atomic; + if (!isCommit && need_free_context) { + SubReleaseSpiPlanRef(mySubid); + } if (connection->execCxt && need_free_context) { MemoryContextDelete(connection->execCxt); connection->execCxt = NULL; @@ -516,6 +731,7 @@ int SPI_execute_direct(const char *remote_sql, char *nodename) stmt->node_names = list_make1(makeString(nodename)); stmt->query = pstrdup(remote_sql); + SPI_STACK_LOG("begin", remote_sql, NULL); int res = _SPI_begin_call(true); if (res < 0) { return res; @@ -532,6 +748,7 @@ int SPI_execute_direct(const char *remote_sql, char *nodename) res = _SPI_execute_plan(&plan, NULL, InvalidSnapshot, InvalidSnapshot, false, true, 0, true); + SPI_STACK_LOG("end", remote_sql, NULL); _SPI_end_call(true); return res; } @@ -548,6 +765,7 @@ int SPI_execute(const char *src, bool read_only, long tcount, bool isCollectPara if (src == NULL || tcount < 0) { return SPI_ERROR_ARGUMENT; } + SPI_STACK_LOG("begin", src, NULL); int res = _SPI_begin_call(true); if (res < 0) { @@ -568,6 +786,7 @@ int SPI_execute(const char *src, bool read_only, long tcount, bool isCollectPara collectDynWithArgs(src, NULL, 0); } #endif + SPI_STACK_LOG("end", src, NULL); _SPI_end_call(true); return res; @@ -589,6 +808,7 @@ int SPI_execute_plan(SPIPlanPtr plan, Datum *Values, const char *Nulls, bool rea if (plan->nargs > 0 && Values == NULL) return SPI_ERROR_PARAM; + SPI_STACK_LOG("begin", NULL, plan); int res = _SPI_begin_call(true); if (res < 0) { return res; @@ -596,6 +816,7 @@ int SPI_execute_plan(SPIPlanPtr plan, Datum *Values, const char *Nulls, bool rea res = _SPI_execute_plan(plan, _SPI_convert_params(plan->nargs, plan->argtypes, Values, Nulls), InvalidSnapshot, InvalidSnapshot, read_only, true, tcount); + SPI_STACK_LOG("end", NULL, plan); _SPI_end_call(true); return res; } @@ -612,6 +833,7 @@ int SPI_execute_plan_with_paramlist(SPIPlanPtr plan, ParamListInfo params, bool if (plan == NULL || plan->magic != _SPI_PLAN_MAGIC || tcount < 0) { return SPI_ERROR_ARGUMENT; } + SPI_STACK_LOG("begin", NULL, plan); int res = _SPI_begin_call(true); if (res < 0) { @@ -619,6 +841,7 @@ int SPI_execute_plan_with_paramlist(SPIPlanPtr plan, ParamListInfo params, bool } res = _SPI_execute_plan(plan, params, InvalidSnapshot, InvalidSnapshot, read_only, true, tcount); + SPI_STACK_LOG("end", NULL, plan); _SPI_end_call(true); return res; } @@ -646,6 +869,7 @@ int SPI_execute_snapshot(SPIPlanPtr plan, Datum *Values, const char *Nulls, Snap if (plan->nargs > 0 && Values == NULL) { return SPI_ERROR_PARAM; } + SPI_STACK_LOG("begin", NULL, plan); int res = _SPI_begin_call(true); if (res < 0) { @@ -654,6 +878,7 @@ int SPI_execute_snapshot(SPIPlanPtr plan, Datum *Values, const char *Nulls, Snap res = _SPI_execute_plan(plan, _SPI_convert_params(plan->nargs, plan->argtypes, Values, Nulls), snapshot, crosscheck_snapshot, read_only, fire_triggers, tcount); + SPI_STACK_LOG("end", NULL, plan); _SPI_end_call(true); return res; } @@ -677,6 +902,7 @@ int SPI_execute_with_args(const char *src, int nargs, Oid *argtypes, Datum *Valu return SPI_ERROR_PARAM; } + SPI_STACK_LOG("begin", src, NULL); int res = _SPI_begin_call(true); if (res < 0) { return res; @@ -700,6 +926,7 @@ int SPI_execute_with_args(const char *src, int nargs, Oid *argtypes, Datum *Valu collectDynWithArgs(src, param_list_info, plan.cursor_options); } #endif + SPI_STACK_LOG("end", src, NULL); _SPI_end_call(true); return res; } @@ -718,7 +945,7 @@ SPIPlanPtr SPI_prepare_cursor(const char *src, int nargs, Oid *argtypes, int cur return NULL; } - + SPI_STACK_LOG("begin", src, NULL); SPI_result = _SPI_begin_call(true); if (SPI_result < 0) { return NULL; @@ -753,6 +980,7 @@ SPIPlanPtr SPI_prepare_cursor(const char *src, int nargs, Oid *argtypes, int cur /* copy plan to procedure context */ SPIPlanPtr result = _SPI_make_plan_non_temp(&plan); + SPI_STACK_LOG("end", src, NULL); _SPI_end_call(true); return result; @@ -767,6 +995,7 @@ SPIPlanPtr SPI_prepare_params(const char *src, ParserSetupHook parserSetup, void return NULL; } + SPI_STACK_LOG("begin", src, NULL); SPI_result = _SPI_begin_call(true); if (SPI_result < 0) { return NULL; @@ -789,6 +1018,7 @@ SPIPlanPtr SPI_prepare_params(const char *src, ParserSetupHook parserSetup, void /* copy plan to procedure context */ SPIPlanPtr result = _SPI_make_plan_non_temp(&plan); + SPI_STACK_LOG("end", src, NULL); _SPI_end_call(true); return result; @@ -841,7 +1071,7 @@ SPIPlanPtr SPI_saveplan(SPIPlanPtr plan) SPI_result = SPI_ERROR_ARGUMENT; return NULL; } - + SPI_STACK_LOG("begin", NULL, plan); SPI_result = _SPI_begin_call(false); /* don't change context */ if (SPI_result < 0) { return NULL; @@ -851,6 +1081,7 @@ SPIPlanPtr SPI_saveplan(SPIPlanPtr plan) SPI_result = _SPI_end_call(false); + SPI_STACK_LOG("end", NULL, plan); return new_plan; } @@ -1266,6 +1497,7 @@ Portal SPI_cursor_open_with_args(const char *name, const char *src, int nargs, O (argtypes == NULL) ? "argument type is NULL" : "value is NULL"))); } + SPI_STACK_LOG("begin", src, NULL); SPI_result = _SPI_begin_call(true); if (SPI_result < 0) { ereport(ERROR, (errcode(ERRCODE_INVALID_CURSOR_STATE), @@ -1315,6 +1547,7 @@ Portal SPI_cursor_open_with_args(const char *name, const char *src, int nargs, O Portal result = SPI_cursor_open_internal(name, &plan, param_list_info, read_only, isCollectParam); /* And clean up */ + SPI_STACK_LOG("end", src, NULL); u_sess->SPI_cxt._curid++; _SPI_end_call(true); @@ -1369,6 +1602,7 @@ static Portal SPI_cursor_open_internal(const char *name, SPIPlanPtr plan, ParamL Assert(list_length(plan->plancache_list) == 1); plansource = (CachedPlanSource *)linitial(plan->plancache_list); + SPI_STACK_LOG("begin", NULL, plan); /* Push the SPI stack */ if (_SPI_begin_call(true) < 0) { ereport(ERROR, (errcode(ERRCODE_INVALID_CURSOR_STATE), @@ -1523,6 +1757,7 @@ static Portal SPI_cursor_open_internal(const char *name, SPIPlanPtr plan, ParamL Assert(portal->strategy != PORTAL_MULTI_QUERY); /* Pop the SPI stack */ + SPI_STACK_LOG("end", NULL, plan); _SPI_end_call(true); /* Return the created portal */ @@ -1935,7 +2170,7 @@ void spi_printtup(TupleTableSlot *slot, DestReceiver *self) * what we are creating is a "temporary" SPIPlan. Cruft generated during * parsing is also left in CurrentMemoryContext. */ -static void _SPI_prepare_plan(const char *src, SPIPlanPtr plan) +void _SPI_prepare_plan(const char *src, SPIPlanPtr plan) { #ifdef PGXC _SPI_pgxc_prepare_plan(src, NULL, plan); @@ -2043,7 +2278,7 @@ static void _SPI_pgxc_prepare_plan(const char *src, List *src_parsetree, SPIPlan } plan->stmt_list = list_concat(plan->stmt_list, list_copy(stmt_list)); /* Finish filling in the CachedPlanSource */ - CompleteCachedPlan(plansource, stmt_list, NULL, plan->argtypes, plan->nargs, plan->parserSetup, + CompleteCachedPlan(plansource, stmt_list, NULL, plan->argtypes, NULL, plan->nargs, plan->parserSetup, plan->parserSetupArg, plan->cursor_options, false, /* not fixed result */ ""); @@ -2087,21 +2322,23 @@ static void SPIParseOneShotPlan(CachedPlanSource* plansource, SPIPlanPtr plan) Node *parsetree = plansource->raw_parse_tree; const char *src = plansource->query_string; List *statement_list = NIL; - - /* - * Parameter datatypes are driven by parserSetup hook if provided, - * otherwise we use the fixed parameter list. - */ - if (plan->parserSetup != NULL) { - Assert(plan->nargs == 0); - statement_list = pg_analyze_and_rewrite_params(parsetree, src, plan->parserSetup, plan->parserSetupArg); - } else { - statement_list = pg_analyze_and_rewrite(parsetree, src, plan->argtypes, plan->nargs); - } - /* Finish filling in the CachedPlanSource */ - CompleteCachedPlan(plansource, statement_list, NULL, plan->argtypes, plan->nargs, plan->parserSetup, - plan->parserSetupArg, plan->cursor_options, false, ""); /* not fixed result */ + if (!plansource->is_complete) { + /* + * Parameter datatypes are driven by parserSetup hook if provided, + * otherwise we use the fixed parameter list. + */ + if (plan->parserSetup != NULL) { + Assert(plan->nargs == 0); + statement_list = pg_analyze_and_rewrite_params(parsetree, src, plan->parserSetup, plan->parserSetupArg); + } else { + statement_list = pg_analyze_and_rewrite(parsetree, src, plan->argtypes, plan->nargs); + } + + /* Finish filling in the CachedPlanSource */ + CompleteCachedPlan(plansource, statement_list, NULL, plan->argtypes, NULL, plan->nargs, plan->parserSetup, + plan->parserSetupArg, plan->cursor_options, false, ""); /* not fixed result */ + } } /* @@ -2123,7 +2360,7 @@ static void SPIParseOneShotPlan(CachedPlanSource* plansource, SPIPlanPtr plan) * what we are creating is a "temporary" SPIPlan. Cruft generated during * parsing is also left in CurrentMemoryContext. */ -static void _SPI_prepare_oneshot_plan(const char *src, SPIPlanPtr plan) +void _SPI_prepare_oneshot_plan(const char *src, SPIPlanPtr plan) { List *raw_parsetree_list = NIL; List *plancache_list = NIL; @@ -2174,7 +2411,7 @@ static void _SPI_prepare_oneshot_plan(const char *src, SPIPlanPtr plan) t_thrd.log_cxt.error_context_stack = spi_err_context.previous; } -bool RememberSpiPlanRef(CachedPlan* cplan, CachedPlanSource* plansource) +bool RememberSpiPlanRef(CachedPlan* cplan, CachedPlanSource* plansource, bool useResOwner) { bool ans = false; /* incase commit/rollback release cachedplan from resource owner during execute spi plan, @@ -2191,6 +2428,8 @@ bool RememberSpiPlanRef(CachedPlan* cplan, CachedPlanSource* plansource) SESS_GET_MEM_CXT_GROUP(MEMORY_CONTEXT_EXECUTOR), sizeof(SPICachedPlanStack)); cur_spi_cplan->previous = u_sess->SPI_cxt.spi_exec_cplan_stack; cur_spi_cplan->cplan = cplan; + cur_spi_cplan->owner = useResOwner ? t_thrd.utils_cxt.CurrentResourceOwner : NULL; + cur_spi_cplan->subtranid = GetCurrentSubTransactionId(); u_sess->SPI_cxt.spi_exec_cplan_stack = cur_spi_cplan; } return ans; @@ -2211,12 +2450,16 @@ void ForgetSpiPlanRef() pfree_ext(cur_spi_cplan); } -void AddCplanRefAgainIfNecessary(SPIPlanPtr plan, CachedPlanSource* plansource, - CachedPlan* cplan, TransactionId oldTransactionId) +ResourceOwner AddCplanRefAgainIfNecessary(SPIPlanPtr plan, + CachedPlanSource* plansource, CachedPlan* cplan, TransactionId oldTransactionId, ResourceOwner oldOwner) { - /* When commit/rollback occurs - * the plan cache will be release refcount by resourceowner(except for oneshot plan) */ - if (oldTransactionId != SPI_get_top_transaction_id() && !plansource->is_oneshot) { + /* + * When commit/rollback occurs, or its subtransaction is finished by savepoint, except + * for the oneshot plan, plan cache's refcount has already been released in resourceowner. + * To match subsequent processing, an extra increment about reference is required here. + */ + if ((oldTransactionId != SPI_get_top_transaction_id() || + !ResourceOwnerIsValid(oldOwner)) && !plansource->is_oneshot) { /* need addrefcount and save into resource owner again */ if (plan->saved) ResourceOwnerEnlargePlanCacheRefs(t_thrd.utils_cxt.CurrentResourceOwner); @@ -2227,7 +2470,11 @@ void AddCplanRefAgainIfNecessary(SPIPlanPtr plan, CachedPlanSource* plansource, } if (plan->saved) ResourceOwnerRememberPlanCacheRef(t_thrd.utils_cxt.CurrentResourceOwner, cplan); + + return plan->saved ? t_thrd.utils_cxt.CurrentResourceOwner : oldOwner; } + + return oldOwner; } void FreeMultiQueryString(SPIPlanPtr plan) @@ -2256,7 +2503,7 @@ void FreeMultiQueryString(SPIPlanPtr plan) * FALSE means any AFTER triggers are postponed to end of outer query * tcount: execution tuple-count limit, or 0 for none */ -static int _SPI_execute_plan(SPIPlanPtr plan, ParamListInfo paramLI, Snapshot snapshot, Snapshot crosscheck_snapshot, +static int _SPI_execute_plan0(SPIPlanPtr plan, ParamListInfo paramLI, Snapshot snapshot, Snapshot crosscheck_snapshot, bool read_only, bool fire_triggers, long tcount, bool from_lock) { int my_res = 0; @@ -2273,6 +2520,12 @@ static int _SPI_execute_plan(SPIPlanPtr plan, ParamListInfo paramLI, Snapshot sn TransactionId oldTransactionId = SPI_get_top_transaction_id(); bool need_remember_cplan = false; + /* + * With savepoint in STP feature, CurrentResourceOwner is different before and after _SPI_pquery. + * We need to hold the original one in order to forget the snapshot, plan reference.and etc. + */ + ResourceOwner oldOwner = t_thrd.utils_cxt.CurrentResourceOwner; + /* not allow Light CN */ u_sess->attr.attr_sql.enable_light_proxy = false; @@ -2370,12 +2623,11 @@ static int _SPI_execute_plan(SPIPlanPtr plan, ParamListInfo paramLI, Snapshot sn continue; } - need_remember_cplan = RememberSpiPlanRef(cplan, plansource); + need_remember_cplan = RememberSpiPlanRef(cplan, plansource, plan->saved); for (int i = 0; i < stmt_list->length; i++) { Node *stmt = (Node *)list_nth(stmt_list, i); bool canSetTag = false; - DestReceiver *dest = NULL; u_sess->SPI_cxt._current->processed = 0; u_sess->SPI_cxt._current->lastoid = InvalidOid; @@ -2383,6 +2635,10 @@ static int _SPI_execute_plan(SPIPlanPtr plan, ParamListInfo paramLI, Snapshot sn if (IsA(stmt, PlannedStmt)) { canSetTag = ((PlannedStmt *)stmt)->canSetTag; + + if (((PlannedStmt*)stmt)->commandType != CMD_SELECT) { + SPI_forbid_exec_push_down_with_exception(); + } } else { /* utilities are canSetTag if only thing in list */ canSetTag = (list_length(stmt_list) == 1); @@ -2400,10 +2656,6 @@ static int _SPI_execute_plan(SPIPlanPtr plan, ParamListInfo paramLI, Snapshot sn } } - if (reinterpret_cast(stmt)->commandType != CMD_SELECT) { - SPI_forbid_exec_push_down_with_exception(); - } - if (read_only && !CommandIsReadOnly(stmt)) { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), /* translator: %s is a SQL statement name */ @@ -2419,22 +2671,19 @@ static int _SPI_execute_plan(SPIPlanPtr plan, ParamListInfo paramLI, Snapshot sn UpdateActiveSnapshotCommandId(); } - dest = CreateDestReceiver(canSetTag ? u_sess->SPI_cxt._current->dest : DestNone); + DestReceiver *dest = CreateDestReceiver(canSetTag ? u_sess->SPI_cxt._current->dest : DestNone); if (IsA(stmt, PlannedStmt) && ((PlannedStmt *)stmt)->utilityStmt == NULL) { QueryDesc *qdesc = NULL; - Snapshot snap; - - if (ActiveSnapshotSet()) { - snap = GetActiveSnapshot(); - } else { - snap = InvalidSnapshot; - } + Snapshot snap = ActiveSnapshotSet() ? GetActiveSnapshot() : InvalidSnapshot; qdesc = CreateQueryDesc((PlannedStmt *)stmt, plansource->query_string, snap, crosscheck_snapshot, dest, paramLI, 0); res = _SPI_pquery(qdesc, fire_triggers, canSetTag ? tcount : 0, from_lock); + ResourceOwner tmp = t_thrd.utils_cxt.CurrentResourceOwner; + t_thrd.utils_cxt.CurrentResourceOwner = oldOwner; FreeQueryDesc(qdesc); + t_thrd.utils_cxt.CurrentResourceOwner = tmp; } else { char completionTag[COMPLETION_TAG_BUFSIZE]; @@ -2519,13 +2768,16 @@ static int _SPI_execute_plan(SPIPlanPtr plan, ParamListInfo paramLI, Snapshot sn } /* When commit/rollback occurs * the plan cache will be release refcount by resourceowner(except for oneshot plan) */ - AddCplanRefAgainIfNecessary(plan, plansource, cplan, oldTransactionId); + oldOwner = AddCplanRefAgainIfNecessary(plan, plansource, cplan, oldTransactionId, oldOwner); } /* Done with this plan, so release refcount */ if (need_remember_cplan) ForgetSpiPlanRef(); + ResourceOwner tmp = t_thrd.utils_cxt.CurrentResourceOwner; + t_thrd.utils_cxt.CurrentResourceOwner = oldOwner; ReleaseCachedPlan(cplan, plan->saved); + t_thrd.utils_cxt.CurrentResourceOwner = tmp; cplan = NULL; if (ENABLE_GPC && tmp_cxt) MemoryContextDelete(tmp_cxt); @@ -2551,7 +2803,10 @@ fail: if (cplan != NULL) { if (need_remember_cplan) ForgetSpiPlanRef(); + ResourceOwner tmp = t_thrd.utils_cxt.CurrentResourceOwner; + t_thrd.utils_cxt.CurrentResourceOwner = oldOwner; ReleaseCachedPlan(cplan, plan->saved); + t_thrd.utils_cxt.CurrentResourceOwner = tmp; } /* * When plan->plancache_list > 1 means it's a multi query and have been malloc memory @@ -2586,6 +2841,99 @@ fail: return my_res; } +static bool IsNeedSubTxnForSPIPlan(SPIPlanPtr plan, ParamListInfo paramLI) +{ + /* not required to act as the same as O */ + if (!PLSTMT_IMPLICIT_SAVEPOINT) { + return false; + } + + /* not inside exception block */ + if (u_sess->SPI_cxt.portal_stp_exception_counter == 0) { + return false; + } + + /* wrap statement doing modifications with subtransaction, so changes can be rollback. */ + ListCell *lc1 = NULL; + foreach (lc1, plan->plancache_list) { + CachedPlanSource *plansource = (CachedPlanSource *)lfirst(lc1); + + if (plan->oneshot) { + SPIParseOneShotPlan(plansource, plan); + } + + ListCell* l = NULL; + foreach (l, plansource->query_list) { + Query* qry = (Query*)lfirst(l); + + /* + * Here act as the opsite as CommandIsReadOnly does. (1) utility cmd; + * (2) SELECT FOR UPDATE/SHARE; (3) data-modifying CTE. + */ + if (qry->commandType != CMD_SELECT || qry->rowMarks != NULL || qry->hasModifyingCTE) { + return true; + } + } + } + + return false; +} + +/* + * Execute plan with the given parameter values + * + * Here we would wrap it with a savepoint for rollback its updates. + */ +extern int _SPI_execute_plan(SPIPlanPtr plan, ParamListInfo paramLI, Snapshot snapshot, + Snapshot crosscheck_snapshot, bool read_only, bool fire_triggers, long tcount, bool from_lock) +{ + int my_res = 0; + + if (IsNeedSubTxnForSPIPlan(plan, paramLI)) { + volatile int curExceptionCounter; + MemoryContext oldcontext = CurrentMemoryContext; + + /* start an implicit savepoint for this stmt. */ + SPI_savepoint_create(NULL); + + /* switch into old memory context, don't run it under subtransaction. */ + MemoryContextSwitchTo(oldcontext); + + curExceptionCounter = u_sess->SPI_cxt.portal_stp_exception_counter; + PG_TRY(); + { + my_res = _SPI_execute_plan0(plan, paramLI, snapshot, + crosscheck_snapshot, read_only, fire_triggers, tcount, from_lock); + } + PG_CATCH(); + { + /* rollback this stmt's updates. */ + if (curExceptionCounter == u_sess->SPI_cxt.portal_stp_exception_counter && + GetCurrentTransactionName() == NULL) { + SPI_savepoint_rollbackAndRelease(NULL, InvalidTransactionId); + XactResumeSPIContext(true); + } + PG_RE_THROW(); + } + PG_END_TRY(); + + /* + * if there is any new inner subtransaction, don't release savepoint. + * any idea for this remained subtransaction? + */ + if (curExceptionCounter == u_sess->SPI_cxt.portal_stp_exception_counter && + GetCurrentTransactionName() == NULL) { + SPI_savepoint_release(NULL); + XactResumeSPIContext(true); + } + } else { + my_res = _SPI_execute_plan0(plan, paramLI, snapshot, + crosscheck_snapshot, read_only, fire_triggers, tcount, from_lock); + } + + return my_res; +} + void ReleaseSpiPlanRef() { if (u_sess->SPI_cxt.spi_exec_cplan_stack == NULL) @@ -2605,10 +2953,48 @@ void ReleaseSpiPlanRef() u_sess->SPI_cxt.spi_exec_cplan_stack = NULL; } +static void SubReleaseSpiPlanRef(TransactionId mysubid) +{ + if (u_sess->SPI_cxt.spi_exec_cplan_stack == NULL) { + return; + } + Assert(GetCurrentSubTransactionId() == mysubid); + struct SPICachedPlanStack* cur_spi_cplan = u_sess->SPI_cxt.spi_exec_cplan_stack; + struct SPICachedPlanStack* last_exec_cplan_stack = NULL; + + while (cur_spi_cplan != NULL) { + CachedPlan* cplan = cur_spi_cplan->cplan; + if (cplan->isShared()) { + last_exec_cplan_stack = cur_spi_cplan; + cur_spi_cplan = cur_spi_cplan->previous; + continue; + } + if (cur_spi_cplan->subtranid != mysubid) { + continue; + } + if (!cplan->is_oneshot) { + cplan->refcount--; + } + if (cur_spi_cplan->owner != NULL) { + ResourceOwnerForgetPlanCacheRef(cur_spi_cplan->owner, cplan); + } + if (last_exec_cplan_stack == NULL) { + Assert(u_sess->SPI_cxt.spi_exec_cplan_stack == cur_spi_cplan); + u_sess->SPI_cxt.spi_exec_cplan_stack = cur_spi_cplan->previous; + } else { + Assert(last_exec_cplan_stack->previous == cur_spi_cplan); + last_exec_cplan_stack->previous = cur_spi_cplan->previous; + } + struct SPICachedPlanStack* tmp = cur_spi_cplan; + cur_spi_cplan = cur_spi_cplan->previous; + pfree_ext(tmp); + } +} + /* * Convert arrays of query parameters to form wanted by planner and executor */ -static ParamListInfo _SPI_convert_params(int nargs, Oid *argtypes, Datum *Values, const char *Nulls, +ParamListInfo _SPI_convert_params(int nargs, Oid *argtypes, Datum *Values, const char *Nulls, Cursor_Data *cursor_data) { ParamListInfo param_list_info; @@ -2635,6 +3021,9 @@ static ParamListInfo _SPI_convert_params(int nargs, Oid *argtypes, Datum *Values if (cursor_data != NULL) { CopyCursorInfoData(&prm->cursor_data, &cursor_data[i]); } + prm->tableOfIndexType = InvalidOid; + prm->tableOfIndex = NULL; + prm->isnestedtable = false; } } else { param_list_info = NULL; @@ -2695,6 +3084,12 @@ static int _SPI_pquery(QueryDesc *queryDesc, bool fire_triggers, long tcount, bo } TransactionId oldTransactionId = SPI_get_top_transaction_id(); + /* + * With savepoint in STP feature, CurrentResourceOwner is different before and after executor. + * We need to hold the original one in order to forget the snapshot, plan reference.and etc. + */ + ResourceOwner oldOwner = t_thrd.utils_cxt.CurrentResourceOwner; + ExecutorStart(queryDesc, eflags); bool forced_control = !from_lock && IS_PGXC_COORDINATOR && @@ -2781,7 +3176,11 @@ static int _SPI_pquery(QueryDesc *queryDesc, bool fire_triggers, long tcount, bo queryDesc->estate->es_crosscheck_snapshot = NULL; } + ResourceOwner tmp = t_thrd.utils_cxt.CurrentResourceOwner; + t_thrd.utils_cxt.CurrentResourceOwner = oldOwner; ExecutorEnd(queryDesc); + t_thrd.utils_cxt.CurrentResourceOwner = tmp; + /* FreeQueryDesc is done by the caller */ #ifdef SPI_EXECUTOR_STATS if (ShowExecutorStats) @@ -2848,6 +3247,7 @@ static void _SPI_cursor_operation(Portal portal, FetchDirection direction, long } /* Push the SPI stack */ + SPI_STACK_LOG("begin", portal->sourceText, NULL); if (_SPI_begin_call(true) < 0) { ereport(ERROR, (errcode(ERRCODE_SPI_CONNECTION_FAILURE), errmsg("SPI stack is corrupted when perform cursor operation, current level: %d, connected level: %d", @@ -2886,6 +3286,7 @@ static void _SPI_cursor_operation(Portal portal, FetchDirection direction, long u_sess->SPI_cxt._current->tuptable = NULL; /* Pop the SPI stack */ + SPI_STACK_LOG("end", portal->sourceText, NULL); _SPI_end_call(true); } @@ -2897,6 +3298,7 @@ static void _SPI_cursor_operation(Portal portal, FetchDirection direction, long void _SPI_hold_cursor() { /* Push the SPI stack */ + SPI_STACK_LOG("begin", NULL, NULL); if (_SPI_begin_call(true) < 0) { ereport(ERROR, (errcode(ERRCODE_SPI_CONNECTION_FAILURE), errmsg("SPI stack is corrupted when perform cursor operation, current level: %d, connected level: %d", @@ -2906,6 +3308,7 @@ void _SPI_hold_cursor() HoldPinnedPortals(); /* Pop the SPI stack */ + SPI_STACK_LOG("end", NULL, NULL); _SPI_end_call(true); } @@ -2917,7 +3320,7 @@ static MemoryContext _SPI_procmem(void) /* * _SPI_begin_call: begin a SPI operation within a connected procedure */ -static int _SPI_begin_call(bool execmem) +int _SPI_begin_call(bool execmem) { if (u_sess->SPI_cxt._curid + 1 != u_sess->SPI_cxt._connected) return SPI_ERROR_UNCONNECTED; @@ -3264,12 +3667,14 @@ void spi_exec_with_callback(CommandDest dest, const char *src, bool read_only, l } connected = false; + SPI_STACK_LOG("finish", NULL, NULL); (void)SPI_finish(); } /* Clean up in case of error. */ PG_CATCH(); { if (connected) { + SPI_STACK_LOG("finish", NULL, NULL); SPI_finish(); } diff --git a/src/gausskernel/runtime/executor/spiDbesql.cpp b/src/gausskernel/runtime/executor/spiDbesql.cpp new file mode 100644 index 000000000..3ca4cbfa6 --- /dev/null +++ b/src/gausskernel/runtime/executor/spiDbesql.cpp @@ -0,0 +1,301 @@ +/* ------------------------------------------------------------------------- + * + * spiDbesql.cpp + * Server Programming Interface + * + * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California + * + * + * IDENTIFICATION + * src/gausskernel/runtime/executor/spiDbesql.cpp + * + * ------------------------------------------------------------------------- + */ +#include "postgres.h" +#include "knl/knl_variable.h" + +#include "access/hash.h" +#include "access/printtup.h" +#include "access/sysattr.h" +#include "access/tableam.h" +#include "access/xact.h" +#include "catalog/heap.h" +#include "catalog/pg_type.h" +#include "commands/prepare.h" +#include "commands/trigger.h" +#include "executor/executor.h" +#include "executor/spi.h" +#include "executor/spiDbesql.h" +#include "executor/spi_priv.h" +#include "miscadmin.h" +#include "parser/parser.h" +#include "pgxc/pgxc.h" +#include "tcop/pquery.h" +#include "tcop/utility.h" +#include "utils/builtins.h" +#include "utils/datum.h" +#include "utils/dynahash.h" +#include "utils/globalplancore.h" +#include "utils/lsyscache.h" +#include "utils/memutils.h" +#include "utils/rel.h" +#include "utils/rel_gs.h" +#include "utils/snapmgr.h" +#include "utils/syscache.h" +#include "utils/typcache.h" +#include "utils/elog.h" +#include "commands/sqladvisor.h" +#include "funcapi.h" + +void SetDescribeArray(ArrayType** resDescribe, int index, const char* colName, int colType, + int colMaxLen, bool colNullOk) +{ + TupleDesc tupDesc; + TupleDesc blessTupdesc; + const int describeColumn = 11; + bool typbyVal = false; + Datum values[describeColumn]; + bool nulls[describeColumn]; + HeapTuple tuple; + Datum resultTup; + + /* build tupdesc for result tuples. */ + tupDesc = CreateTemplateTupleDesc(describeColumn, false); + TupleDescInitEntry(tupDesc, (AttrNumber) 1, "col_type", INT4OID, -1, 0); + TupleDescInitEntry(tupDesc, (AttrNumber) 2, "col_max_len", INT4OID, -1, 0); + TupleDescInitEntry(tupDesc, (AttrNumber) 3, "col_name", VARCHAROID, -1, 0); + TupleDescInitEntry(tupDesc, (AttrNumber) 4, "col_name_len", INT4OID, -1, 0); + TupleDescInitEntry(tupDesc, (AttrNumber) 5, "col_schema_name", VARCHAROID, -1, 0); + TupleDescInitEntry(tupDesc, (AttrNumber) 6, "col_schema_name_len", INT4OID, -1, 0); + TupleDescInitEntry(tupDesc, (AttrNumber) 7, "col_precision", INT4OID, -1, 0); + TupleDescInitEntry(tupDesc, (AttrNumber) 8, "col_scale", INT4OID, -1, 0); + TupleDescInitEntry(tupDesc, (AttrNumber) 9, "col_charsetid", INT4OID, -1, 0); + TupleDescInitEntry(tupDesc, (AttrNumber) 10, "col_charsetform", INT4OID, -1, 0); + TupleDescInitEntry(tupDesc, (AttrNumber) 11, "col_null_ok", BOOLOID, -1, 0); + blessTupdesc = BlessTupleDesc(tupDesc); + + errno_t rc = 0; + rc = memset_s(values, sizeof(values), 0, sizeof(values)); + securec_check(rc, "\0", "\0"); + rc = memset_s(nulls, sizeof(nulls), 0, sizeof(nulls)); + securec_check(rc, "\0", "\0"); + + /* get new values */ + values[0] = Int32GetDatum(colType); + values[1] = Int32GetDatum(colMaxLen); + values[2] = CStringGetTextDatum(colName); + values[3] = Int32GetDatum(strlen(colName)); + values[4] = CStringGetTextDatum(""); + values[5] = Int32GetDatum(0); + values[6] = Int32GetDatum(0); + values[7] = Int32GetDatum(0); + values[8] = Int32GetDatum(0); + values[9] = Int32GetDatum(0); + values[10] = BoolGetDatum(!colNullOk); + + /* insert new tuple */ + tuple = heap_form_tuple(blessTupdesc, values, nulls); + resultTup = HeapTupleGetDatum(tuple); + /* insert array */ + *resDescribe = array_set(*resDescribe, 1, &index, resultTup, false, -1, -1, typbyVal, 'd'); +} + +void GetColumnDescribe(SPIPlanPtr plan, ArrayType** resDescribe, MemoryContext memctx) +{ + /* get columns describe */ + ListCell *cell = NULL; + ListCell *columnCell = NULL; + List *columnList = NULL; + int columnsNum = 0; + int rc; + + foreach (cell, plan->stmt_list) { + if (cell) { + columnList = ((Query*)lfirst(cell))->targetList; + foreach (columnCell, columnList){ + if (columnCell) { + columnsNum += 1; + /* get SPIDescColumns from column_cell */ + SPIDescColumns *SPIDescColumn = (SPIDescColumns *)palloc(sizeof(SPIDescColumns)); + TargetEntry *descColumns = (TargetEntry*)columnCell->data.ptr_value; + SPIDescColumn->resno = descColumns->resno; + SPIDescColumn->resorigtbl = descColumns->resorigtbl; + SPIDescColumn->resname = (char *)palloc(NAMEDATALEN); + rc = strcpy_s(SPIDescColumn->resname, NAMEDATALEN, (char*)descColumns->resname); + securec_check(rc, "", ""); + + /* get tuple */ + HeapTuple attTuple; + int attNum; + Form_pg_attribute attForm; + attTuple = SearchSysCache2(ATTNAME, ObjectIdGetDatum(SPIDescColumn->resorigtbl), + PointerGetDatum(SPIDescColumn->resname)); + if (!HeapTupleIsValid(attTuple)) { + ereport(ERROR, (errmodule(MOD_OPT), errcode(ERRCODE_UNDEFINED_COLUMN), + errmsg("column \"%s\" does not exist", SPIDescColumn->resname), + errdetail("N/A"), errcause("column does not exist"), + erraction("check column type"))); + } + attForm = ((Form_pg_attribute)GETSTRUCT(attTuple)); + attNum = attForm->attnum; + if (attNum <= 0) { + ReleaseSysCache(attTuple); + ereport(ERROR, (errmodule(MOD_OPT), errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("cannot rename system column \"%s\"", SPIDescColumn->resname), + errdetail("N/A"), errcause("invalid"), + erraction("invalid"))); + } + /* set tuple result to array */ + + MemoryContext oldcontext = MemoryContextSwitchTo(memctx); + SetDescribeArray(resDescribe, columnsNum, attForm->attname.data, attForm->atttypid, + attForm->attlen, attForm->attnotnull); + + MemoryContextSwitchTo(oldcontext); + ReleaseSysCache(attTuple); + } + } + } + } +} +void SpiGetColumnFromPlan(const char *src, ArrayType** resDescribe, MemoryContext memctx) +{ + _SPI_plan plan; + if (src == NULL) { + SPI_result = SPI_ERROR_ARGUMENT; + return; + } + SPI_result = _SPI_begin_call(true); + if (SPI_result < 0) { + return; + } + errno_t errorno = memset_s(&plan, sizeof(_SPI_plan), '\0', sizeof(_SPI_plan)); + securec_check(errorno, "\0", "\0"); + plan.magic = _SPI_PLAN_MAGIC; + plan.nargs = 0; + plan.argtypes = NULL; + plan.stmt_list = NIL; + plan.spi_key = INVALID_SPI_KEY; + plan.id = (uint32)-1; + + _SPI_prepare_plan(src, &plan); + GetColumnDescribe(&plan, resDescribe, memctx); + _SPI_end_call(true); +} + +void SpiDescribeColumnsCallback(CommandDest dest, const char *src, ArrayType** resDescribe, MemoryContext memctx) +{ + bool connected = false; + + PG_TRY(); + { + if (SPI_OK_CONNECT != SPI_connect(dest, NULL, NULL)) { + ereport(ERROR, (errmodule(MOD_OPT), errcode(ERRCODE_SPI_CONNECTION_FAILURE), + errmsg("Unable to connect to execute internal query, current level: %d, connected level: %d", + u_sess->SPI_cxt._curid, u_sess->SPI_cxt._connected), + errdetail("N/A"), errcause("invalid"), erraction("invalid"))); + } + connected = true; + /* Do the query. */ + SpiGetColumnFromPlan(src, resDescribe, memctx); + + connected = false; + (void)SPI_finish(); + } + /* Clean up in case of error. */ + PG_CATCH(); + { + if (connected) { + SPI_finish(); + } + + /* Carry on with error handling. */ + PG_RE_THROW(); + } + PG_END_TRY(); +} + +int SPI_execute_with_args_bind(const char *src, int nargs, Oid *argtypes, Datum *Values, const char *Nulls, + bool read_only, long tcount, Cursor_Data *cursor_data, ParserSetupHook parserSetup, void *parserSetupArg) +{ + _SPI_plan plan; + + if (src == NULL || nargs < 0 || tcount < 0) { + return SPI_ERROR_ARGUMENT; + } + + if (nargs > 0 && (argtypes == NULL || Values == NULL)) { + return SPI_ERROR_PARAM; + } + + int res = _SPI_begin_call(true); + if (res < 0) { + return res; + } + errno_t errorno = memset_s(&plan, sizeof(_SPI_plan), '\0', sizeof(_SPI_plan)); + securec_check(errorno, "\0", "\0"); + plan.magic = _SPI_PLAN_MAGIC; + plan.cursor_options = 0; + plan.nargs = 0; + plan.argtypes = NULL; + plan.parserSetup = parserSetup; + plan.parserSetupArg = parserSetupArg; + + ParamListInfo param_list_info = _SPI_convert_params(nargs, argtypes, Values, Nulls, cursor_data); + + _SPI_prepare_oneshot_plan(src, &plan); + + res = _SPI_execute_plan(&plan, param_list_info, InvalidSnapshot, InvalidSnapshot, read_only, true, tcount); +#ifdef ENABLE_MULTIPLE_NODES + if (checkAdivsorState() && checkSPIPlan(&plan)) { + collectDynWithArgs(src, param_list_info, plan.cursor_options); + } +#endif + _SPI_end_call(true); + return res; +} + +void spi_exec_bind_with_callback(CommandDest dest, const char *src, bool read_only, long tcount, bool direct_call, + void (*callbackFn)(void *), void *clientData, int nargs, Oid *argtypes, Datum *Values, + ParserSetupHook parserSetup, void *parserSetupArg, const char *nulls) +{ + bool connected = false; + int ret = 0; + + PG_TRY(); + { + if (SPI_OK_CONNECT != SPI_connect_ext(dest, callbackFn, clientData, SPI_OPT_NONATOMIC, InvalidOid)) { + ereport(ERROR, (errcode(ERRCODE_SPI_CONNECTION_FAILURE), + errmsg("Unable to connect to execute internal query, current level: %d, connected level: %d", + u_sess->SPI_cxt._curid, u_sess->SPI_cxt._connected))); + } + connected = true; + + elog(DEBUG1, "Executing SQL: %s", src); + + /* Do the query. */ + ret = SPI_execute_with_args_bind(src, nargs, argtypes, Values, nulls, + read_only, tcount, NULL, parserSetup, parserSetupArg); + Assert(ret > 0); + + if (direct_call && callbackFn != NULL) { + callbackFn(clientData); + } + + connected = false; + (void)SPI_finish(); + } + /* Clean up in case of error. */ + PG_CATCH(); + { + if (connected) { + SPI_finish(); + } + + /* Carry on with error handling. */ + PG_RE_THROW(); + } + PG_END_TRY(); +} diff --git a/src/gausskernel/runtime/opfusion/opfusion.cpp b/src/gausskernel/runtime/opfusion/opfusion.cpp index 17984aece..5bb07ee17 100644 --- a/src/gausskernel/runtime/opfusion/opfusion.cpp +++ b/src/gausskernel/runtime/opfusion/opfusion.cpp @@ -56,6 +56,7 @@ #include "opfusion/opfusion_mot.h" #endif #include "gs_ledger/blockchain.h" +#include "gs_policy/policy_common.h" extern void opfusion_executeEnd(PlannedStmt *plannedstmt, const char *queryString, Snapshot snapshot); @@ -414,72 +415,106 @@ bool OpFusion::executeEnd(const char *portal_name, bool *isQueryCompleted) return has_completed; } +void OpFusion::fusionExecute(StringInfo msg, char *completionTag, bool isTopLevel, bool *isQueryCompleted) +{ + long max_rows = FETCH_ALL; + bool completed = false; + const char *portal_name = NULL; + + /* msg is null means 'U' message, need fetch all. */ + if (msg != NULL) { + /* 'U' message and simple query has already assign value to debug_query_string. */ + if (u_sess->exec_cxt.CurrentOpFusionObj->m_global->m_psrc != NULL) { + t_thrd.postgres_cxt.debug_query_string = + u_sess->exec_cxt.CurrentOpFusionObj->m_global->m_psrc->query_string; + } + portal_name = pq_getmsgstring(msg); + max_rows = (long)pq_getmsgint(msg, 4); + if (max_rows <= 0) + max_rows = FETCH_ALL; + } + + u_sess->exec_cxt.CurrentOpFusionObj->executeInit(); + gstrace_entry(GS_TRC_ID_BypassExecutor); + bool old_status = u_sess->exec_cxt.need_track_resource; + if (u_sess->attr.attr_resource.resource_track_cost == 0 && u_sess->attr.attr_resource.enable_resource_track && + u_sess->attr.attr_resource.resource_track_level != RESOURCE_TRACK_NONE) { + u_sess->exec_cxt.need_track_resource = true; + WLMSetCollectInfoStatus(WLM_STATUS_RUNNING); + } + ResourceOwner saveResourceOwner = t_thrd.utils_cxt.CurrentResourceOwner; + PG_TRY(); + { + t_thrd.utils_cxt.CurrentResourceOwner = u_sess->exec_cxt.CurrentOpFusionObj->m_local.m_resOwner; + if (!(g_instance.status > NoShutdown) && opfusion_unified_audit_executor_hook != NULL) { + opfusion_unified_audit_executor_hook(u_sess->exec_cxt.CurrentOpFusionObj->m_global->m_planstmt); + } + u_sess->exec_cxt.CurrentOpFusionObj->execute(max_rows, completionTag); + u_sess->exec_cxt.need_track_resource = old_status; + gstrace_exit(GS_TRC_ID_BypassExecutor); + completed = u_sess->exec_cxt.CurrentOpFusionObj->executeEnd(portal_name, isQueryCompleted); + if (completed && u_sess->exec_cxt.CurrentOpFusionObj->IsGlobal()) { + Assert(ENABLE_GPC); + tearDown(u_sess->exec_cxt.CurrentOpFusionObj); + } + t_thrd.utils_cxt.CurrentResourceOwner = saveResourceOwner; + if (!(g_instance.status > NoShutdown) && opfusion_unified_audit_flush_logs_hook != NULL) { + opfusion_unified_audit_flush_logs_hook(AUDIT_OK); + } + } + PG_CATCH(); + { + t_thrd.utils_cxt.CurrentResourceOwner = saveResourceOwner; + if (!(g_instance.status > NoShutdown) && opfusion_unified_audit_flush_logs_hook != NULL) { + opfusion_unified_audit_flush_logs_hook(AUDIT_FAILED); + } + PG_RE_THROW(); + } + PG_END_TRY(); +} + bool OpFusion::process(int op, StringInfo msg, char *completionTag, bool isTopLevel, bool *isQueryCompleted) { if (op == FUSION_EXECUTE && msg != NULL) refreshCurFusion(msg); bool res = false; - if (u_sess->exec_cxt.CurrentOpFusionObj != NULL) { - switch (op) { - case FUSION_EXECUTE: { - long max_rows = FETCH_ALL; - const char *portal_name = NULL; - - /* msg is null means 'U' message, need fetch all. */ - if (msg != NULL) { - /* 'U' message and simple query has already assign value to debug_query_string. */ - if (u_sess->exec_cxt.CurrentOpFusionObj->m_global->m_psrc != NULL){ - t_thrd.postgres_cxt.debug_query_string = - u_sess->exec_cxt.CurrentOpFusionObj->m_global->m_psrc->query_string; - } - portal_name = pq_getmsgstring(msg); - max_rows = (long)pq_getmsgint(msg, 4); - if (max_rows <= 0) - max_rows = FETCH_ALL; - } - - u_sess->exec_cxt.CurrentOpFusionObj->executeInit(); - gstrace_entry(GS_TRC_ID_BypassExecutor); - bool old_status = u_sess->exec_cxt.need_track_resource; - if (u_sess->attr.attr_resource.resource_track_cost == 0 && - u_sess->attr.attr_resource.enable_resource_track && - u_sess->attr.attr_resource.resource_track_level != RESOURCE_TRACK_NONE) { - u_sess->exec_cxt.need_track_resource = true; - WLMSetCollectInfoStatus(WLM_STATUS_RUNNING); - } - u_sess->exec_cxt.CurrentOpFusionObj->execute(max_rows, completionTag); - u_sess->exec_cxt.need_track_resource = old_status; - gstrace_exit(GS_TRC_ID_BypassExecutor); - bool completed = false; - completed = u_sess->exec_cxt.CurrentOpFusionObj->executeEnd(portal_name, isQueryCompleted); - if (completed && u_sess->exec_cxt.CurrentOpFusionObj->IsGlobal()) { - Assert(ENABLE_GPC); - tearDown(u_sess->exec_cxt.CurrentOpFusionObj); - } - u_sess->exec_cxt.CurrentOpFusionObj = NULL; - UpdateSingleNodeByPassUniqueSQLStat(isTopLevel); - break; - } - - case FUSION_DESCRIB: { - u_sess->exec_cxt.CurrentOpFusionObj->describe(msg); - break; - } - - default: { - Assert(0); - ereport(ERROR, (errcode(ERRCODE_CASE_NOT_FOUND), - errmsg("unrecognized bypass support process option: %d", (int)op))); - } - } - res = true; + if (u_sess->exec_cxt.CurrentOpFusionObj == NULL) { + return res; } + switch (op) { + case FUSION_EXECUTE: { + u_sess->exec_cxt.CurrentOpFusionObj->fusionExecute(msg, completionTag, isTopLevel, isQueryCompleted); + break; + } + + case FUSION_DESCRIB: { + u_sess->exec_cxt.CurrentOpFusionObj->describe(msg); + break; + } + + default: { + Assert(0); + ereport(ERROR, + (errcode(ERRCODE_CASE_NOT_FOUND), errmsg("unrecognized bypass support process option: %d", (int)op))); + } + } + res = true; + /* * Emit duration logging if appropriate. */ + u_sess->exec_cxt.CurrentOpFusionObj->CheckLogDuration(); + if (op == FUSION_EXECUTE) { + u_sess->exec_cxt.CurrentOpFusionObj = NULL; + } + return res; +} + +void OpFusion::CheckLogDuration() +{ char msec_str[32]; switch (check_log_duration(msec_str, false)) { case 1: @@ -496,8 +531,6 @@ bool OpFusion::process(int op, StringInfo msg, char *completionTag, bool isTopLe default: break; } - - return res; } void OpFusion::CopyFormats(int16 *formats, int numRFormats) diff --git a/src/gausskernel/runtime/opfusion/opfusion_indexonlyscan.cpp b/src/gausskernel/runtime/opfusion/opfusion_indexonlyscan.cpp index ddbd43075..af408e611 100644 --- a/src/gausskernel/runtime/opfusion/opfusion_indexonlyscan.cpp +++ b/src/gausskernel/runtime/opfusion/opfusion_indexonlyscan.cpp @@ -322,11 +322,11 @@ void IndexOnlyScanFusion::End(bool isCompleted) } if (m_index != NULL) { if (m_node->scan.isPartTbl) { - partitionClose(m_parentIndex, m_partIndex, AccessShareLock); - if (!ENABLE_SQL_BETA_FEATURE(PARTITION_OPFUSION)) { + partitionClose(m_parentIndex, m_partIndex, NoLock); + if (!PARTITION_ENABLE_CACHE_OPFUSION) { releaseDummyRelation(&m_index); } - index_close(m_parentIndex, AccessShareLock); + index_close(m_parentIndex, NoLock); } else { index_close(m_index, AccessShareLock); } @@ -334,11 +334,11 @@ void IndexOnlyScanFusion::End(bool isCompleted) } if (m_rel != NULL) { if (m_node->scan.isPartTbl) { - partitionClose(m_parentRel, m_partRel, AccessShareLock); - if (!ENABLE_SQL_BETA_FEATURE(PARTITION_OPFUSION)) { + partitionClose(m_parentRel, m_partRel, NoLock); + if (!PARTITION_ENABLE_CACHE_OPFUSION) { releaseDummyRelation(&m_rel); } - heap_close(m_parentRel, AccessShareLock); + heap_close(m_parentRel, NoLock); } else { heap_close(m_rel, AccessShareLock); } diff --git a/src/gausskernel/runtime/opfusion/opfusion_indexscan.cpp b/src/gausskernel/runtime/opfusion/opfusion_indexscan.cpp index d0923fb25..ba5934325 100644 --- a/src/gausskernel/runtime/opfusion/opfusion_indexscan.cpp +++ b/src/gausskernel/runtime/opfusion/opfusion_indexscan.cpp @@ -261,11 +261,11 @@ void IndexScanFusion::End(bool isCompleted) if (m_index != NULL) { if (m_node->scan.isPartTbl) { - partitionClose(m_parentIndex, m_partIndex, AccessShareLock); - if (!ENABLE_SQL_BETA_FEATURE(PARTITION_OPFUSION)) { + partitionClose(m_parentIndex, m_partIndex, NoLock); + if (!PARTITION_ENABLE_CACHE_OPFUSION) { releaseDummyRelation(&m_index); } - index_close(m_parentIndex, AccessShareLock); + index_close(m_parentIndex, NoLock); } else { index_close(m_index, AccessShareLock); } @@ -273,11 +273,11 @@ void IndexScanFusion::End(bool isCompleted) } if (m_rel != NULL) { if (m_node->scan.isPartTbl) { - partitionClose(m_parentRel, m_partRel, AccessShareLock); - if (!ENABLE_SQL_BETA_FEATURE(PARTITION_OPFUSION)) { + partitionClose(m_parentRel, m_partRel, NoLock); + if (!PARTITION_ENABLE_CACHE_OPFUSION) { releaseDummyRelation(&m_rel); } - heap_close(m_parentRel, AccessShareLock); + heap_close(m_parentRel, NoLock); } else { heap_close(m_rel, AccessShareLock); } diff --git a/src/gausskernel/runtime/opfusion/opfusion_sort.cpp b/src/gausskernel/runtime/opfusion/opfusion_sort.cpp index fb31622b1..77fc7bf74 100644 --- a/src/gausskernel/runtime/opfusion/opfusion_sort.cpp +++ b/src/gausskernel/runtime/opfusion/opfusion_sort.cpp @@ -83,7 +83,6 @@ bool SortFusion::execute(long max_rows, char *completionTag) { max_rows = FETCH_ALL; bool success = false; - TimestampTz startTime = 0; TupleTableSlot *reslot = m_local.m_reslot; Datum *values = m_local.m_values; diff --git a/src/gausskernel/runtime/opfusion/opfusion_util.cpp b/src/gausskernel/runtime/opfusion/opfusion_util.cpp index e299b7ce2..66b1b6267 100644 --- a/src/gausskernel/runtime/opfusion/opfusion_util.cpp +++ b/src/gausskernel/runtime/opfusion/opfusion_util.cpp @@ -692,10 +692,11 @@ bool checkDMLRelation(const Relation rel, const PlannedStmt *plannedstmt, bool i { bool result = false; if (rel->rd_rel->relkind != RELKIND_RELATION || rel->rd_rel->relhasrules || rel->rd_rel->relhastriggers || - rel->rd_rel->relhasoids || rel->rd_rel->relhassubclass || RelationIsColStore(rel) || - RelationIsTsStore(rel) || RelationInRedistribute(rel) || plannedstmt->hasReturning) { + rel->rd_rel->relhasoids || rel->rd_rel->relhassubclass || RelationIsColStore(rel) || RelationIsTsStore(rel) || + RelationInRedistribute(rel) || plannedstmt->hasReturning || RelationIsSubPartitioned(rel)) { result = true; } + if (isInsert) { return result; } else if (!isPartTbl && RELATION_IS_PARTITIONED(rel)) { @@ -1214,7 +1215,7 @@ Relation InitPartitionIndexInFusion(Oid parentIndexOid, Oid partOid, Partition * *partIndex = partitionOpen(*parentIndex, partIndexOid, AccessShareLock); Relation index; - if (ENABLE_SQL_BETA_FEATURE(PARTITION_OPFUSION)) { + if (PARTITION_ENABLE_CACHE_OPFUSION) { if (!(*partIndex)->partrel) { (*partIndex)->partrel = partitionGetRelation(*parentIndex, *partIndex); /* in function partitionGetRelation, owner->nfakerelrefs plus one due to ResourceOwnerRememberFakerelRef, @@ -1236,7 +1237,7 @@ void InitPartitionRelationInFusion(Oid partOid, Relation parentRel, Partition* p *partRel = partitionOpen(parentRel, partOid, AccessShareLock); (void)PartitionGetPartIndexList(*partRel); - if (ENABLE_SQL_BETA_FEATURE(PARTITION_OPFUSION)) { + if (PARTITION_ENABLE_CACHE_OPFUSION) { if (!(*partRel)->partrel) { (*partRel)->partrel = partitionGetRelation(parentRel, *partRel); /* in function partitionGetRelation, owner->nfakerelrefs plus one due to ResourceOwnerRememberFakerelRef, @@ -1259,12 +1260,12 @@ void ExeceDoneInIndexFusionConstruct(bool isPartTbl, Relation* parentRel, Partit partitionClose(*parentRel, *part, AccessShareLock); *part = NULL; if (*index != NULL) { - if (!ENABLE_SQL_BETA_FEATURE(PARTITION_OPFUSION)) { + if (!PARTITION_ENABLE_CACHE_OPFUSION) { releaseDummyRelation(index); } *index = NULL; } - if (!ENABLE_SQL_BETA_FEATURE(PARTITION_OPFUSION)) { + if (!PARTITION_ENABLE_CACHE_OPFUSION) { releaseDummyRelation(rel); } heap_close(*parentRel, AccessShareLock); diff --git a/src/gausskernel/runtime/vecexecutor/vecexpression.cpp b/src/gausskernel/runtime/vecexecutor/vecexpression.cpp index 1cec23d79..6e541b55e 100644 --- a/src/gausskernel/runtime/vecexecutor/vecexpression.cpp +++ b/src/gausskernel/runtime/vecexecutor/vecexpression.cpp @@ -229,22 +229,6 @@ static ScalarVector* ExecEvalVecNot( return pVector; } -static ScalarVector* ExecEvalVecRownum( - RownumState* exprstate, ExprContext* econtext, bool* pSelection, ScalarVector* pVector, ExprDoneCond* isDone) -{ - Assert(pSelection != NULL); - ScalarValue* pDest = pVector->m_vals; - int64 ps_rownum = exprstate->ps->ps_rownum; - - for (int i = 0; i < econtext->align_rows; i++) { - SET_NOTNULL(pVector->m_flag[i]); - pDest[i] = ++ps_rownum ; - } - - pVector->m_rows = econtext->align_rows; - - return pVector; -} // TRUE means we deal with or // false means we deal with and template @@ -3181,12 +3165,6 @@ ExprState* ExecInitVecExpr(Expr* node, PlanState* parent) (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmodule(MOD_VEC_EXECUTOR), errmsg("Unsupported array coerce expression in vector engine"))); - case T_Rownum: { - RownumState* rnstate = (RownumState*)makeNode(RownumState); - rnstate->ps = parent; - state = (ExprState*)rnstate; - state->vecExprFun = (VectorExprFun)ExecEvalVecRownum; - } break; default: ereport(ERROR, (errcode(ERRCODE_UNRECOGNIZED_NODE_TYPE), diff --git a/src/gausskernel/runtime/vecexecutor/vecnode/vecpartiterator.cpp b/src/gausskernel/runtime/vecexecutor/vecnode/vecpartiterator.cpp index fe0081f50..b9f0d057f 100644 --- a/src/gausskernel/runtime/vecexecutor/vecnode/vecpartiterator.cpp +++ b/src/gausskernel/runtime/vecexecutor/vecnode/vecpartiterator.cpp @@ -1,5 +1,6 @@ /* * Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors * * openGauss is licensed under Mulan PSL v2. * You can use this software according to the terms and conditions of the Mulan PSL v2. @@ -46,6 +47,7 @@ VecPartIteratorState* ExecInitVecPartIterator(VecPartIterator* node, EState* est state->ps.righttree = NULL; state->ps.subPlan = NULL; state->currentItr = -1; + state->subPartCurrentItr = -1; state->ps.ps_TupFromTlist = false; state->ps.ps_ProjInfo = NULL; state->ps.vectorized = true; diff --git a/src/gausskernel/runtime/vecexecutor/vecnode/vectortorow.cpp b/src/gausskernel/runtime/vecexecutor/vecnode/vectortorow.cpp index ce78c3827..d8f438a00 100644 --- a/src/gausskernel/runtime/vecexecutor/vecnode/vectortorow.cpp +++ b/src/gausskernel/runtime/vecexecutor/vecnode/vectortorow.cpp @@ -1,5 +1,6 @@ /* * Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors * * openGauss is licensed under Mulan PSL v2. * You can use this software according to the terms and conditions of the Mulan PSL v2. @@ -157,7 +158,6 @@ TupleTableSlot* ExecVecToRow(VecToRowState* state) /* return: a tuple or NULL */ state->m_currentRow = 0; // Convert the batch into row based tuple DevectorizeOneBatch(state); - outer_plan->ps_rownum += current_batch->m_rows; } // retrieve rows from current batch @@ -187,19 +187,13 @@ void RecordCstorePartNum(VecToRowState* state, const VecToRow* node) } else { switch (nodeTag(outerPlan(node))) { case T_CStoreScan: - state->part_id = ((CStoreScanState*)outerPlanState(state))->part_id; - break; case T_DfsIndexScan: - state->part_id = ((DfsIndexScanState*)outerPlanState(state))->part_id; - break; case T_CStoreIndexScan: - state->part_id = ((CStoreIndexScanState*)outerPlanState(state))->part_id; - break; case T_CStoreIndexCtidScan: - state->part_id = ((CStoreIndexCtidScanState*)outerPlanState(state))->part_id; - break; case T_CStoreIndexHeapScan: - state->part_id = ((CStoreIndexHeapScanState*)outerPlanState(state))->part_id; + state->part_id = ((ScanState*)outerPlanState(state))->part_id; + state->subpartitions = ((ScanState*)outerPlanState(state))->subpartitions; + state->subPartLengthList = ((ScanState*)outerPlanState(state))->subPartLengthList; break; #ifdef ENABLE_MULTIPLE_NODES diff --git a/src/gausskernel/runtime/vecexecutor/vecnode/vectsstorescan.cpp b/src/gausskernel/runtime/vecexecutor/vecnode/vectsstorescan.cpp index c52fcdf3e..c9b72fa21 100644 --- a/src/gausskernel/runtime/vecexecutor/vecnode/vectsstorescan.cpp +++ b/src/gausskernel/runtime/vecexecutor/vecnode/vectsstorescan.cpp @@ -1,5 +1,6 @@ /* * Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors * * openGauss is licensed under Mulan PSL v2. * You can use this software according to the terms and conditions of the Mulan PSL v2. @@ -25,6 +26,7 @@ #include "codegen/gscodegen.h" #include "codegen/vecexprcodegen.h" #include "catalog/pg_operator.h" +#include "catalog/pg_partition_fn.h" #include "catalog/pg_proc.h" #include "vecexecutor/vectsstorescan.h" #include "executor/executor.h" diff --git a/src/gausskernel/security/gs_ledger/ledger_check.cpp b/src/gausskernel/security/gs_ledger/ledger_check.cpp index c7faccf0f..6e6d910c7 100644 --- a/src/gausskernel/security/gs_ledger/ledger_check.cpp +++ b/src/gausskernel/security/gs_ledger/ledger_check.cpp @@ -1,5 +1,6 @@ /* * Copyright (c) 2021 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors * * openGauss is licensed under Mulan PSL v2. * You can use this software according to the terms and conditions of the Mulan PSL v2. @@ -23,9 +24,10 @@ */ #include "access/tableam.h" +#include "catalog/cstore_ctlg.h" #include "catalog/indexing.h" #include "catalog/pg_proc.h" -#include "catalog/cstore_ctlg.h" +#include "catalog/pg_partition_fn.h" #include "utils/acl.h" #include "utils/builtins.h" #include "utils/fmgroids.h" @@ -577,4 +579,4 @@ Datum ledger_gchain_repair(PG_FUNCTION_ARGS) } return UInt64GetDatum(rel_hash); -} \ No newline at end of file +} diff --git a/src/gausskernel/security/gs_policy/gs_policy_audit.cpp b/src/gausskernel/security/gs_policy/gs_policy_audit.cpp index 2420d454c..9f3b2d30a 100644 --- a/src/gausskernel/security/gs_policy/gs_policy_audit.cpp +++ b/src/gausskernel/security/gs_policy/gs_policy_audit.cpp @@ -53,6 +53,8 @@ LoadPolicyAccessPtr load_policy_access_hook = NULL; LoadPolicyPrivilegesPtr load_policy_privileges_hook = NULL; LoadPolicyFilterPtr load_policy_filter_hook = NULL; THR_LOCAL LightUnifiedAuditExecutorPtr light_unified_audit_executor_hook = NULL; +OpFusionUnifiedAuditExecutorPtr opfusion_unified_audit_executor_hook = NULL; +OpFusionUnifiedAuditFlushLogsPtr opfusion_unified_audit_flush_logs_hook = NULL; static const char* privileges_type[] = { "alter", "analyze", "comment", "create", "drop", "grant", "revoke", "set", "show", "login_any", "login_failure", "login_success", "logout"}; diff --git a/src/gausskernel/security/gs_policy/gs_policy_masking.cpp b/src/gausskernel/security/gs_policy/gs_policy_masking.cpp index abea98f8f..0af803079 100644 --- a/src/gausskernel/security/gs_policy/gs_policy_masking.cpp +++ b/src/gausskernel/security/gs_policy/gs_policy_masking.cpp @@ -1199,7 +1199,8 @@ static List *relid_get_policy_label_namelist(Oid relid, const char *column = NUL while ((tup = (HeapTuple) tableam_scan_getnexttuple(scan, ForwardScanDirection)) != NULL) { label_data = (Form_gs_policy_label)GETSTRUCT(tup); if (label_data->fqdnid == relid && (column == NULL || strcasecmp(column, label_data->relcolumn.data) == 0)) { - label_list = lappend(label_list, label_data->labelname.data); + char *label_name = pstrdup(label_data->labelname.data); + label_list = lappend(label_list, label_name); } } tableam_scan_end(scan); @@ -1260,7 +1261,7 @@ bool is_masked_relation(Oid relid, const char *column) } tableam_scan_end(scan); heap_close(action_rel, AccessShareLock); - list_free(labels); + list_free_deep(labels); return is_masked; } @@ -1300,7 +1301,7 @@ bool is_masked_relation_enabled(Oid relid) } tableam_scan_end(scan); heap_close(action_rel, AccessShareLock); - list_free(label_list); + list_free_deep(label_list); list_free(polid_list); return is_match; diff --git a/src/gausskernel/security/gs_policy/policy_common.cpp b/src/gausskernel/security/gs_policy/policy_common.cpp index f28967066..bdba81d15 100644 --- a/src/gausskernel/security/gs_policy/policy_common.cpp +++ b/src/gausskernel/security/gs_policy/policy_common.cpp @@ -202,7 +202,17 @@ static bool verify_function_name(Oid namespaceId, const char *funcname) } bool is_found = false; - CatCList *catlist = SearchSysCacheList1(PROCNAMEARGSNSP, CStringGetDatum(funcname)); + + CatCList *catlist = NULL; +#ifndef ENABLE_MULTIPLE_NODES + if (t_thrd.proc->workingVersionNum < 92470) { + catlist = SearchSysCacheList1(PROCNAMEARGSNSP, CStringGetDatum(funcname)); + } else { + catlist = SearchSysCacheList1(PROCALLARGS, CStringGetDatum(funcname)); + } +#else + catlist = SearchSysCacheList1(PROCNAMEARGSNSP, CStringGetDatum(funcname)); +#endif if (catlist != NULL) { for (int i = 0; i < catlist->n_members && !is_found; ++i) { HeapTuple proctup = &catlist->members[i]->tuple; diff --git a/src/gausskernel/security/iprange/iprange.cpp b/src/gausskernel/security/iprange/iprange.cpp index ab338a562..6ae9c0b90 100644 --- a/src/gausskernel/security/iprange/iprange.cpp +++ b/src/gausskernel/security/iprange/iprange.cpp @@ -36,6 +36,8 @@ using namespace std; +#define IPRANGE_IS_IPV4(ip) ((ip).ip_32.b == 0x0000FFFF) + std::vector MASK_FROM_LUT { (uint32_t)0xFFFFFFFF, (uint32_t)0xFFFFFFFF << 31, @@ -105,7 +107,7 @@ std::vector MASK_TO_LUT { ~((uint32_t)0xFFFFFFFF << 3), ~((uint32_t)0xFFFFFFFF << 2), ~((uint32_t)0xFFFFFFFF << 1), - 0 + (uint32_t)0xFFFFFFFF }; const IPV6 localhost_ipv6 ({0x0000000000000001, 0x0000000000000000}); @@ -149,6 +151,10 @@ bool IPRange::str_to_ip(const char* ip_str, IPV6 *ip) } else if (inet_pton(AF_INET, ip_str, &addr) > 0) { net_ipv4_to_host_order(ip, &addr); } else { + /* + * Note that even the format keep the same as ipv6 or ipv4 + * still recognize it as invalid ip if ip exceed the valid range + */ m_err_str = "invalid ip: " + std::string(ip_str); return false; } @@ -157,7 +163,7 @@ bool IPRange::str_to_ip(const char* ip_str, IPV6 *ip) bool IPRange::mask_range(Range *range, unsigned short cidr) { - if (range->from.ip_32.b == 0x0000FFFF) { /* ipv4 */ + if (IPRANGE_IS_IPV4(range->from)) { /* ipv4 */ if (cidr < 1 || cidr > 32) { m_err_str = "invalid cidr for ipv4: " + cidr; return false; @@ -201,6 +207,10 @@ bool IPRange::mask_range(Range *range, unsigned short cidr) return true; } +/* + * parse the ip with mask into range sturst , format is as below: + * x.x.x.x|x, ptr is the postion of "|" + */ bool IPRange::parse_mask(const char* range, size_t range_len, const char *ptr, Range *new_range) { if (range_len > 100) { @@ -356,6 +366,13 @@ bool IPRange::handle_add_intersection(Range *new_range, const Range *exist_range return true; } +/* + * parse the ip range support below format + * single ip: 127.0.0.1 + * range ip: 127.0.0.1 ~ 127.0.0.2 + * cidr ip : 192.168.10.1/21 + * mask ip : 192.168.10.1/255.255.255.2 + */ bool IPRange::parse_range(const char *range, size_t range_len, Range *new_range) { /* handle format of "ip/cidr" */ @@ -499,7 +516,7 @@ std::string IPRange::ip_to_str(const IPV6 *ip) const { char ip_str[INET6_ADDRSTRLEN]; /* now get it back and print it */ - if (ip->ip_32.b == 0x0000FFFF) { + if (IPRANGE_IS_IPV4(*ip)) { uint32_t tmp = htonl(ip->ip_32.a); (void)inet_ntop(AF_INET, &tmp, ip_str, INET_ADDRSTRLEN); } else { diff --git a/src/gausskernel/security/tde_key_management/tde_key_storage.cpp b/src/gausskernel/security/tde_key_management/tde_key_storage.cpp index c06eb3985..fffd9f8e4 100755 --- a/src/gausskernel/security/tde_key_management/tde_key_storage.cpp +++ b/src/gausskernel/security/tde_key_management/tde_key_storage.cpp @@ -325,7 +325,7 @@ bool TDEBufferCache::insert_cache(RelFileNode tde_rnode, TdeInfo *tde_info) RelFileNode tde_key = tde_rnode; /* insert hash table */ - LWLockAcquire(TDEKeyCacheLock, LW_SHARED); + LWLockAcquire(TDEKeyCacheLock, LW_EXCLUSIVE); TdeFileNodeEntry *entry = NULL; entry = reinterpret_cast(hash_search(tde_buffer_cache, (const void*)&tde_key, HASH_FIND, &found)); @@ -339,22 +339,36 @@ bool TDEBufferCache::insert_cache(RelFileNode tde_rnode, TdeInfo *tde_info) } /* insert new cache key-value */ entry->tde_info = (TdeInfo*)palloc0(sizeof(TdeInfo)); + rc = strcpy_s(entry->tde_info->dek_cipher, DEK_CIPHER_LEN, tde_info->dek_cipher); + securec_check(rc, "\0", "\0"); + rc = strcpy_s(entry->tde_info->cmk_id, CMK_ID_LEN, tde_info->cmk_id); + securec_check(rc, "\0", "\0"); + entry->tde_info->algo = tde_info->algo; + } else { + /* update cache key-value */ + if (strncmp(entry->tde_info->dek_cipher, tde_info->dek_cipher, DEK_CIPHER_LEN) != 0) { + rc = strcpy_s(entry->tde_info->dek_cipher, DEK_CIPHER_LEN, tde_info->dek_cipher); + securec_check(rc, "\0", "\0"); + } + if (strncmp(entry->tde_info->cmk_id, tde_info->cmk_id, CMK_ID_LEN) != 0) { + rc = strcpy_s(entry->tde_info->cmk_id, CMK_ID_LEN, tde_info->cmk_id); + securec_check(rc, "\0", "\0"); + } + if (entry->tde_info->algo != tde_info->algo) { + entry->tde_info->algo = tde_info->algo; + } } - /* update cache key-value */ - rc = strcpy_s(entry->tde_info->dek_cipher, DEK_CIPHER_LEN, tde_info->dek_cipher); - securec_check(rc, "\0", "\0"); - rc = strcpy_s(entry->tde_info->cmk_id, CMK_ID_LEN, tde_info->cmk_id); - securec_check(rc, "\0", "\0"); - entry->tde_info->algo = tde_info->algo; MemoryContextSwitchTo(old); LWLockRelease(TDEKeyCacheLock); return true; } -TdeInfo* TDEBufferCache::search_cache(RelFileNode tde_rnode) +void TDEBufferCache::search_cache(RelFileNode tde_rnode, TdeInfo *tde_info) { bool found = false; - + if (tde_rnode.bucketNode != InvalidBktId) { + tde_rnode.bucketNode = SegmentBktId; + } MemoryContext old = MemoryContextSwitchTo(tde_buffer_mem); LWLockAcquire(TDEKeyCacheLock, LW_SHARED); TdeFileNodeEntry* entry = NULL; @@ -363,10 +377,13 @@ TdeInfo* TDEBufferCache::search_cache(RelFileNode tde_rnode) if (!found) { MemoryContextSwitchTo(old); LWLockRelease(TDEKeyCacheLock); - return NULL; + return; } + + errno_t rc = memcpy_s(tde_info, sizeof(TdeInfo), entry->tde_info, sizeof(TdeInfo)); + securec_check(rc, "\0", "\0"); MemoryContextSwitchTo(old); LWLockRelease(TDEKeyCacheLock); - return entry->tde_info; + return; } } diff --git a/src/gausskernel/storage/CMakeLists.txt b/src/gausskernel/storage/CMakeLists.txt index 9a06a49b1..ec27546a4 100755 --- a/src/gausskernel/storage/CMakeLists.txt +++ b/src/gausskernel/storage/CMakeLists.txt @@ -22,6 +22,8 @@ set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/remote ${CMAKE_CURRENT_SOURCE_DIR}/smgr ${CMAKE_CURRENT_SOURCE_DIR}/tcap + ${CMAKE_CURRENT_SOURCE_DIR}/xlog_share_storage + ${CMAKE_CURRENT_SOURCE_DIR}/dorado_operation ) if("${ENABLE_MOT}" STREQUAL "ON") @@ -45,6 +47,8 @@ add_subdirectory(page) add_subdirectory(remote) add_subdirectory(smgr) add_subdirectory(tcap) +add_subdirectory(xlog_share_storage) +add_subdirectory(dorado_operation) if("${ENABLE_MOT}" STREQUAL "ON") add_subdirectory(mot) diff --git a/src/gausskernel/storage/Makefile b/src/gausskernel/storage/Makefile index 05a46f9cb..d310747e1 100644 --- a/src/gausskernel/storage/Makefile +++ b/src/gausskernel/storage/Makefile @@ -25,7 +25,7 @@ subdir = src/gausskernel/storage top_builddir = ../../.. include $(top_builddir)/src/Makefile.global -SUBDIRS = access bulkload replication buffer cmgr cstore dfs file freespace ipc large_object lmgr page remote smgr tcap sync +SUBDIRS = access bulkload replication buffer cmgr cstore dfs file freespace ipc large_object lmgr page remote smgr tcap sync dorado_operation xlog_share_storage ifeq ($(enable_mot), yes) SUBDIRS += mot diff --git a/src/gausskernel/storage/access/CMakeLists.txt b/src/gausskernel/storage/access/CMakeLists.txt index 9d2506d2a..d4f2d2b75 100755 --- a/src/gausskernel/storage/access/CMakeLists.txt +++ b/src/gausskernel/storage/access/CMakeLists.txt @@ -16,6 +16,7 @@ set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/index ${CMAKE_CURRENT_SOURCE_DIR}/nbtree ${CMAKE_CURRENT_SOURCE_DIR}/obs + ${CMAKE_CURRENT_SOURCE_DIR}/archive ${CMAKE_CURRENT_SOURCE_DIR}/psort ${CMAKE_CURRENT_SOURCE_DIR}/redo ${CMAKE_CURRENT_SOURCE_DIR}/rmgrdesc @@ -37,6 +38,7 @@ add_subdirectory(heap) add_subdirectory(index) add_subdirectory(nbtree) add_subdirectory(obs) +add_subdirectory(archive) add_subdirectory(psort) add_subdirectory(redo) add_subdirectory(rmgrdesc) diff --git a/src/gausskernel/storage/access/Makefile b/src/gausskernel/storage/access/Makefile index a718f6d78..5c4357723 100644 --- a/src/gausskernel/storage/access/Makefile +++ b/src/gausskernel/storage/access/Makefile @@ -2,6 +2,6 @@ subdir = src/gausskernel/storage/access top_builddir = ../../../.. include $(top_builddir)/src/Makefile.global -SUBDIRS = cbtree common dfs heap index nbtree ubtree psort rmgrdesc transam obs hash spgist gist gin hbstore redo table ustore +SUBDIRS = cbtree common dfs heap index nbtree ubtree psort rmgrdesc transam obs hash spgist gist gin hbstore redo table ustore archive include $(top_srcdir)/src/gausskernel/common.mk diff --git a/src/gausskernel/storage/access/archive/CMakeLists.txt b/src/gausskernel/storage/access/archive/CMakeLists.txt new file mode 100644 index 000000000..9365f6603 --- /dev/null +++ b/src/gausskernel/storage/access/archive/CMakeLists.txt @@ -0,0 +1,23 @@ +#This is the main CMAKE for build bin. +AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR} TGT_archive_SRC) + +set(TGT_archive_INC + ${PROJECT_SRC_DIR}/gausskernel/cbb/communication + ${PROJECT_SRC_DIR}/include/iprange + ${PROJECT_SRC_DIR}/include/libcomm + ${PROJECT_SRC_DIR}/include + ${PROJECT_SRC_DIR}/lib/gstrace + ${LIBCGROUP_INCLUDE_PATH} + ${PROJECT_SRC_DIR}/include/libcomm + ${LIBORC_INCLUDE_PATH} + ${PROTOBUF_INCLUDE_PATH} + ${LIBPARQUET_INCLUDE_PATH} + ${ZLIB_INCLUDE_PATH} + ${LIBCURL_INCLUDE_PATH} +) + +set(archive_DEF_OPTIONS ${MACRO_OPTIONS}) +set(archive_COMPILE_OPTIONS ${OPTIMIZE_OPTIONS} ${OS_OPTIONS} ${PROTECT_OPTIONS} ${WARNING_OPTIONS} ${BIN_SECURE_OPTIONS} ${CHECK_OPTIONS}) +set(archive_LINK_OPTIONS ${BIN_LINK_OPTIONS}) +add_static_objtarget(gausskernel_storage_access_archive TGT_archive_SRC TGT_archive_INC "${archive_DEF_OPTIONS}" "${archive_COMPILE_OPTIONS}" "${archive_LINK_OPTIONS}") + diff --git a/src/gausskernel/storage/access/archive/Makefile b/src/gausskernel/storage/access/archive/Makefile new file mode 100644 index 000000000..4930f96f1 --- /dev/null +++ b/src/gausskernel/storage/access/archive/Makefile @@ -0,0 +1,38 @@ +# +# Copyright (c) 2020 Huawei Technologies Co.,Ltd. +# +# openGauss is licensed under Mulan PSL v2. +# You can use this software according to the terms and conditions of the Mulan PSL v2. +# You may obtain a copy of Mulan PSL v2 at: +# +# http://license.coscl.org.cn/MulanPSL2 +# +# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, +# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, +# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. +# See the Mulan PSL v2 for more details. +# --------------------------------------------------------------------------------------- +# +# Makefile +# Makefile for the access methods module +# +# IDENTIFICATION +# src/gausskernel/storage/access/archive/Makefile +# +# --------------------------------------------------------------------------------------- + +subdir = src/gausskernel/storage/access/archive +top_builddir = ../../../../.. +include $(top_builddir)/src/Makefile.global + +ifneq "$(MAKECMDGOALS)" "clean" + ifneq "$(MAKECMDGOALS)" "distclean" + ifneq "$(shell which g++ |grep hutaf_llt |wc -l)" "1" + -include $(DEPEND) + endif + endif +endif + +OBJS = nas_am.o archive_am.o + +include $(top_srcdir)/src/gausskernel/common.mk diff --git a/src/gausskernel/storage/access/archive/archive_am.cpp b/src/gausskernel/storage/access/archive/archive_am.cpp new file mode 100644 index 000000000..dd50dfa3c --- /dev/null +++ b/src/gausskernel/storage/access/archive/archive_am.cpp @@ -0,0 +1,88 @@ +/* ------------------------------------------------------------------------- + * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright 2008 Bryan Ischo + * + * + * obs_am.cpp + * obs access method definitions. + * + * IDENTIFICATION + * src/gausskernel/storage/access/obs/obs_am.cpp + * + * ------------------------------------------------------------------------- + */ +#include +#include +#include +#include +#include + +#include "access/archive/archive_am.h" +#include "access/archive/nas_am.h" +#include "access/obs/obs_am.h" + +#include "replication/slot.h" + + +size_t ArchiveRead(const char* fileName, const int offset, char *buffer, const int length, + ArchiveConfig *archive_config) +{ + if (archive_config == NULL) { + return 0; + } + if (archive_config->media_type == ARCHIVE_OBS) { + return obsRead(fileName, offset, buffer, length, archive_config); + } else if (archive_config->media_type == ARCHIVE_NAS) { + return NasRead(fileName, offset, buffer, length, archive_config); + } + + return 0; +} + +int ArchiveWrite(const char* fileName, const char *buffer, const int bufferLength, ArchiveConfig *archive_config) +{ + int ret = -1; + if (archive_config == NULL) { + return ret; + } + + if (archive_config->media_type == ARCHIVE_OBS) { + ret = obsWrite(fileName, buffer, bufferLength, archive_config); + } else if (archive_config->media_type == ARCHIVE_NAS) { + ret = NasWrite(fileName, buffer, bufferLength, archive_config); + } + + return ret; +} + +int ArchiveDelete(const char* fileName, ArchiveConfig *archive_config) +{ + int ret = -1; + if (archive_config == NULL) { + return ret; + } + + if (archive_config->media_type == ARCHIVE_OBS) { + ret = obsDelete(fileName, archive_config); + } else if (archive_config->media_type == ARCHIVE_NAS) { + ret = NasDelete(fileName, archive_config); + } + + return ret; +} + +List* ArchiveList(const char* prefix, ArchiveConfig *archive_config, bool reportError, bool shortenConnTime) +{ + List* fileNameList = NIL; + if (archive_config == NULL) { + return fileNameList; + } + + if (archive_config->media_type == ARCHIVE_OBS) { + fileNameList = obsList(prefix, archive_config, reportError, shortenConnTime); + } else if (archive_config->media_type == ARCHIVE_NAS) { + fileNameList = NasList(prefix, archive_config); + } + + return fileNameList; +} diff --git a/src/gausskernel/storage/access/archive/nas_am.cpp b/src/gausskernel/storage/access/archive/nas_am.cpp new file mode 100644 index 000000000..37a08634e --- /dev/null +++ b/src/gausskernel/storage/access/archive/nas_am.cpp @@ -0,0 +1,326 @@ +/* + * Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * + * openGauss is licensed under Mulan PSL v2. + * You can use this software according to the terms and conditions of the Mulan PSL v2. + * You may obtain a copy of Mulan PSL v2 at: + * + * http://license.coscl.org.cn/MulanPSL2 + * + * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, + * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, + * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + * See the Mulan PSL v2 for more details. + * ------------------------------------------------------------------------- + * + * nas_am.h + * nas access method definitions. + * + * IDENTIFICATION + * src/gausskernel/storage/access/archive/nas_am.cpp + * + * ------------------------------------------------------------------------- + */ + +#include +#include +#include +#include +#include +#include + +#include "access/archive/nas_am.h" + +#include "lib/stringinfo.h" +#include "miscadmin.h" +#include "nodes/nodes.h" +#include "nodes/value.h" +#include "pgstat.h" +#include "pgxc/locator.h" +#include "pgxc/pgxc.h" +#include "storage/lock/lwlock.h" +#include "securec.h" +#include "utils/elog.h" +#include "utils/palloc.h" +#include "utils/plog.h" +#include "postmaster/alarmchecker.h" +#include "replication/walreceiver.h" + +#define MAX_PATH_LEN 1024 + +size_t NasRead(const char* fileName, const int offset, char *buffer, const int length, ArchiveConfig *nas_config) +{ + size_t readLength = 0; + ArchiveConfig *archive_nas = NULL; + char file_path[MAXPGPATH] = {0}; + int ret = 0; + FILE *fp = NULL; + struct stat statbuf; + + if ((fileName == NULL) || (buffer == NULL)) { + ereport(ERROR, (errcode(ERRCODE_NULL_VALUE_NOT_ALLOWED), + errmsg("The parameter cannot be NULL"))); + } + + if (nas_config != NULL) { + archive_nas = nas_config; + } else { + archive_nas = getArchiveConfig(); + } + + if (archive_nas == NULL) { + ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("Cannot get archive config from replication slots"))); + } + + ret = snprintf_s(file_path, MAXPGPATH, MAXPGPATH - 1, "%s/%s", archive_nas->archive_prefix, fileName); + securec_check_ss(ret, "\0", "\0"); + + if (stat(file_path, &statbuf)) { + if (errno != ENOENT) { + ereport(ERROR, (errcode_for_file_access(), errmsg("could not stat file \"%s\": %m", fileName))); + } + ereport(ERROR, (errcode_for_file_access(), errmsg("The file \"%s\" not exists", fileName))); + return readLength; + } + + canonicalize_path(file_path); + fp = fopen(file_path, "rb"); + if (fp == NULL) { + ereport(ERROR, (errcode_for_file_access(), errmsg("could not read file \"%s\": %m", fileName))); + return readLength; + } + if (statbuf.st_size > length) { + fclose(fp); + ereport(ERROR, (errcode_for_file_access(), errmsg("file size is wrong, \"%s\": %m", fileName))); + return readLength; + } + + readLength = fread(buffer, 1, statbuf.st_size, fp); + + fclose(fp); + return readLength; +} + +int NasWrite(const char* fileName, const char *buffer, const int bufferLength, ArchiveConfig *nas_config) +{ + int ret = 0; + ArchiveConfig *archive_nas = NULL; + char file_path[MAXPGPATH] = {0}; + char *origin_file_path = NULL; + char *base_path = NULL; + FILE *fp = NULL; + + if ((fileName == NULL) || (buffer == NULL)) { + ereport(ERROR, (errcode(ERRCODE_NULL_VALUE_NOT_ALLOWED), + errmsg("The parameter cannot be NULL"))); + } + + if (nas_config != NULL) { + archive_nas = nas_config; + } else { + archive_nas = getArchiveConfig(); + } + + if (archive_nas == NULL) { + ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("Cannot get archive config from replication slots"))); + } + + ret = snprintf_s(file_path, MAXPGPATH, MAXPGPATH - 1, "%s/%s", archive_nas->archive_prefix, fileName); + securec_check_ss(ret, "\0", "\0"); + + canonicalize_path(file_path); + + origin_file_path = pstrdup(file_path); + base_path = dirname(origin_file_path); + if (!isDirExist(base_path)) { + if (pg_mkdir_p(base_path, S_IRWXU) != 0) { + pfree_ext(origin_file_path); + ereport(LOG, (errmsg("could not create path \"%s\"", base_path))); + return -1; + } + } + + fp = fopen(file_path, "wb"); + if (fp == NULL) { + pfree_ext(origin_file_path); + ereport(LOG, (errmsg("could not create file \"%s\": %m", fileName))); + return -1; + } + + if (fwrite(buffer, bufferLength, 1, fp) != 1) { + pfree_ext(origin_file_path); + fclose(fp); + return -1; + } + + pfree_ext(origin_file_path); + fclose(fp); + return 0; +} + +int NasDelete(const char* fileName, ArchiveConfig *nas_config) +{ + int ret = 0; + struct stat statbuf; + char file_path[MAXPGPATH] = {0}; + ArchiveConfig *archive_nas = NULL; + + if (nas_config != NULL) { + archive_nas = nas_config; + } else { + archive_nas = getArchiveConfig(); + } + + if (archive_nas == NULL) { + ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("Cannot get obs bucket config from replication slots"))); + } + + ret = snprintf_s(file_path, MAXPGPATH, MAXPGPATH - 1, "%s/%s", archive_nas->archive_prefix, fileName); + securec_check_ss(ret, "\0", "\0"); + + if (lstat(file_path, &statbuf) < 0) { + return -1; + } + if (S_ISDIR(statbuf.st_mode)) { + return (rmdir(file_path)); + } + return (unlink(file_path)); +} + +/* + * Obtain files with specified prefix in archive directory, unsorted + * The prefix can be: + * 1. path + * 2. filename + * 3. the prefix of filename + */ +static List* GetNasFileList(const char* prefix, ArchiveConfig *nas_config) +{ + int ret = 0; + char file_path[MAXPGPATH] = {0}; + char path_buf[MAXPGPATH] = {0}; + char *origin_file_path = NULL; + char *base_path = NULL; + List* fileNameList = NIL; + struct dirent* de = NULL; + struct stat st; + bool isDir = false; + + if (prefix == NULL || nas_config == NULL || nas_config->archive_prefix == NULL) { + ereport(ERROR, (errcode(ERRCODE_NULL_VALUE_NOT_ALLOWED), + errmsg("The parameter cannot be NULL"))); + } + + ret = snprintf_s(file_path, MAXPGPATH, MAXPGPATH - 1, "%s/%s", nas_config->archive_prefix, prefix); + securec_check_ss(ret, "\0", "\0"); + + canonicalize_path(file_path); + + if (stat(file_path, &st) == 0 && S_ISDIR(st.st_mode)) { // is dir, + isDir = true; + base_path = file_path; + } else { // may be the file_path is filename or the prefix of filename + struct stat st_base; + origin_file_path = pstrdup(file_path); + base_path = dirname(origin_file_path); + if (stat(base_path, &st_base) != 0) { + ereport(LOG, (errmsg("WARNING: there is no file in dir %s", file_path))); + return NIL; // the base_path not exists, return NIL + } + } + + DIR *dir = opendir(base_path); + while ((de = readdir(dir)) != NULL) { + if (isDir) { + if ((strcmp(de->d_name, ".") == 0 || strcmp(de->d_name, "..") == 0)) { + continue; + } + ret = snprintf_s(path_buf, MAXPGPATH, MAXPGPATH - 1, "%s/%s", base_path, de->d_name); + securec_check_ss_c(ret, "\0", "\0"); + if (lstat(path_buf, &st) != 0) { + continue; + } + /* only find file */ + if (S_ISREG(st.st_mode)) { + fileNameList = lappend(fileNameList, pstrdup(path_buf)); + } else { + continue; + } + } else { + if (strncmp(de->d_name, basename(file_path), strlen(basename(file_path))) == 0) { + ret = snprintf_s(path_buf, MAXPGPATH, MAXPGPATH - 1, "%s/%s", base_path, de->d_name); + securec_check_ss_c(ret, "\0", "\0"); + fileNameList = lappend(fileNameList, pstrdup(path_buf)); + } else { + continue; + } + } + } + + closedir(dir); + pfree_ext(origin_file_path); + return fileNameList; +} + +static int CompareFileNames(const void* a, const void* b) +{ + char* fna = *((char**)a); + char* fnb = *((char**)b); + + return strcmp(fna, fnb); +} + + +static List* SortFileList(List* file_list) +{ + int file_num; + char** files; + ListCell* lc = NULL; + List* result = NIL; + int i = 0; + + file_num = list_length(file_list); + if (file_num < 1) { + return NIL; + } + + files = (char**)palloc0(file_num * sizeof(char*)); + foreach (lc, file_list) { + files[i++] = (char*)lfirst(lc); + } + qsort(files, file_num, sizeof(char*), CompareFileNames); + for (i = 0; i < file_num; i++) { + result = lappend(result, pstrdup(files[i])); + } + + pfree_ext(files); + return result; +} + +List* NasList(const char* prefix, ArchiveConfig *nas_config) +{ + List* fileNameList = NIL; + List* fileNameListTmp = NIL; + ArchiveConfig *archive_nas = NULL; + + if (nas_config != NULL) { + archive_nas = nas_config; + } else { + archive_nas = getArchiveConfig(); + } + + if (archive_nas == NULL) { + ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("Cannot get archive config from replication slots"))); + } + + fileNameListTmp = GetNasFileList(prefix, archive_nas); + + fileNameList = SortFileList(fileNameListTmp); + + list_free_ext(fileNameListTmp); + return fileNameList; +} diff --git a/src/gausskernel/storage/access/common/printtup.cpp b/src/gausskernel/storage/access/common/printtup.cpp index ce60b59f5..8e83edc70 100644 --- a/src/gausskernel/storage/access/common/printtup.cpp +++ b/src/gausskernel/storage/access/common/printtup.cpp @@ -8,6 +8,7 @@ * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * IDENTIFICATION * src/gausskernel/storage/access/common/printtup.cpp @@ -1037,8 +1038,19 @@ void printtup(TupleTableSlot *slot, DestReceiver *self) if (thisState->format == 0) { /* Text output */ char *outputstr = NULL; + u_sess->attr.attr_sql.for_print_tuple = true; + PG_TRY(); + { + outputstr = OutputFunctionCall(&thisState->finfo, attr); + } + PG_CATCH(); + { + u_sess->attr.attr_sql.for_print_tuple = false; + PG_RE_THROW(); + } + PG_END_TRY(); + u_sess->attr.attr_sql.for_print_tuple = false; - outputstr = OutputFunctionCall(&thisState->finfo, attr); if (thisState->typisvarlena && self->forAnalyzeSampleTuple && (typeinfo->attrs[i]->atttypid == BYTEAOID || typeinfo->attrs[i]->atttypid == CHAROID || typeinfo->attrs[i]->atttypid == TEXTOID || typeinfo->attrs[i]->atttypid == BLOBOID || diff --git a/src/gausskernel/storage/access/common/tupdesc.cpp b/src/gausskernel/storage/access/common/tupdesc.cpp index bb097c97f..edd705d6e 100644 --- a/src/gausskernel/storage/access/common/tupdesc.cpp +++ b/src/gausskernel/storage/access/common/tupdesc.cpp @@ -6,6 +6,7 @@ * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -21,6 +22,7 @@ #include "knl/knl_variable.h" #include "access/transam.h" +#include "catalog/dependency.h" #include "catalog/pg_type.h" #include "miscadmin.h" #include "parser/parse_type.h" @@ -978,6 +980,18 @@ TupleDesc BuildDescForRelation(List *schema, Node *orientedFrom, char relkind) attname = entry->colname; typenameTypeIdAndMod(NULL, entry->typname, &atttypid, &atttypmod); +#ifndef ENABLE_MULTIPLE_NODES + /* don't allow package or procedure type as column type */ + if (u_sess->plsql_cxt.curr_compile_context == NULL && IsPackageDependType(atttypid, InvalidOid)) { + ereport(ERROR, + (errcode(ERRCODE_DATATYPE_MISMATCH), + errmodule(MOD_PLSQL), + errmsg("type \"%s\" is not supported as column type", TypeNameToString(entry->typname)), + errdetail("\"%s\" is a package or procedure type", TypeNameToString(entry->typname)), + errcause("feature not supported"), + erraction("check type name"))); + } +#endif if (relkind == RELKIND_COMPOSITE_TYPE && IS_PGXC_COORDINATOR) { HeapTuple typTupe; Form_pg_type typForm; diff --git a/src/gausskernel/storage/access/hbstore/hbindex_am.cpp b/src/gausskernel/storage/access/hbstore/hbindex_am.cpp index 98e08dce9..56ee1dc7a 100644 --- a/src/gausskernel/storage/access/hbstore/hbindex_am.cpp +++ b/src/gausskernel/storage/access/hbstore/hbindex_am.cpp @@ -38,7 +38,7 @@ static IndexScanDesc hbkt_idx_beginscan(Relation heapRelation, ScanState* scanState) { HBktIdxScanDesc hpScan = NULL; - List *bucketlist = NIL; + oidvector *bucketlist = NULL; BucketInfo *bucketInfo = NULL; if (scanState != NULL) { @@ -54,7 +54,7 @@ static IndexScanDesc hbkt_idx_beginscan(Relation heapRelation, } /* Step 1: load bucket */ bucketlist = hbkt_load_buckets(heapRelation, bucketInfo); - if (bucketlist == NIL) { + if (bucketlist == NULL) { return NULL; } @@ -73,7 +73,7 @@ static IndexScanDesc hbkt_idx_beginscan(Relation heapRelation, } else { /* Step 3: open first partitioned relation */ hpScan->curr_slot = 0; - int2 bucketid = list_nth_int(hpScan->hBktList, hpScan->curr_slot); + int2 bucketid = hpScan->hBktList->values[hpScan->curr_slot]; hpScan->currBktHeapRel = bucketGetRelation(hpScan->rs_rd, NULL, bucketid); hpScan->currBktIdxRel = bucketGetRelation(hpScan->idx_rd, NULL, bucketid); } @@ -111,7 +111,7 @@ static void hbkt_idx_endscan(IndexScanDesc scan) Relation bktIdxRel = ((hpScan->currBktIdxRel == hpScan->idx_rd) ? NULL : hpScan->currBktIdxRel); free_hbucket_idxscan(hpScan->currBktIdxScan, bktHeapRel, bktIdxRel); - list_free_ext(hpScan->hBktList); + pfree_ext(hpScan->hBktList); pfree(hpScan); } @@ -134,7 +134,7 @@ void hbkt_idx_rescan(IndexScanDesc scan, ScanKey keys, int nkeys, ScanKey orderb } else { /* open first partitioned relation */ hpScan->curr_slot = 0; - int2 bucketid = list_nth_int(hpScan->hBktList, hpScan->curr_slot); + int2 bucketid = hpScan->hBktList->values[hpScan->curr_slot]; hpScan->currBktHeapRel = bucketGetRelation(hpScan->rs_rd, NULL, bucketid); hpScan->currBktIdxRel = bucketGetRelation(hpScan->idx_rd, NULL, bucketid); } @@ -180,13 +180,13 @@ static ItemPointer switch_and_scan_next_idx_hbkt(HBktIdxScanDesc hpScan, ScanDir while (true) { /* Step 1. To check whether all partition have been scanned. */ - if (hpScan->curr_slot + 1 >= list_length(hpScan->hBktList)) { + if (hpScan->curr_slot + 1 >= hpScan->hBktList->dim1) { return NULL; } /* Step 2. Get the next partition and its relation */ hpScan->curr_slot++; - int2 bucketid = list_nth_int(hpScan->hBktList, hpScan->curr_slot); + int2 bucketid = hpScan->hBktList->values[hpScan->curr_slot]; nextPartRel = bucketGetRelation(hpScan->rs_rd, NULL, bucketid); nextIdxRel = bucketGetRelation(hpScan->idx_rd, NULL, bucketid); @@ -253,7 +253,7 @@ bool cbi_scan_fix_hbkt_rel(HBktIdxScanDesc hpScan) int2 bktid; IndexScanDescData *curr_iscan = hpScan->currBktIdxScan; - if (!list_member_int(hpScan->hBktList, curr_iscan->xs_cbi_scan->bucketid)) { + if (lookupHBucketid(hpScan->hBktList, 0, curr_iscan->xs_cbi_scan->bucketid) == -1) { curr_iscan->xs_cbi_scan->bucketid = InvalidBktId; return false; } @@ -371,7 +371,7 @@ static IndexScanDesc hbkt_idx_beginscan_bitmap(Relation indexRelation, Snapshot { HBktIdxScanDesc hpScan = NULL; Relation idxRelation = NULL; - List *bucketlist = NIL; + oidvector *bucketlist = NULL; BucketInfo *bucketInfo = ((Scan *)(scanState->ps.plan))->bucketInfo; /* * for global plan cache, there isn't bucketInfo in plan, @@ -385,7 +385,7 @@ static IndexScanDesc hbkt_idx_beginscan_bitmap(Relation indexRelation, Snapshot /* Step 1: load partition */ bucketlist = hbkt_load_buckets(indexRelation, bucketInfo); - if (bucketlist == NIL) { + if (bucketlist == NULL) { return NULL; } @@ -402,7 +402,7 @@ static IndexScanDesc hbkt_idx_beginscan_bitmap(Relation indexRelation, Snapshot } else { /* open first partitioned relation */ hpScan->curr_slot = 0; - int2 bucketid = list_nth_int(hpScan->hBktList, hpScan->curr_slot); + int2 bucketid = hpScan->hBktList->values[hpScan->curr_slot]; idxRelation = bucketGetRelation(indexRelation, NULL, bucketid); hpScan->currBktIdxRel = idxRelation; } @@ -425,13 +425,13 @@ bool hbkt_idx_bitmapscan_switch_bucket(IndexScanDesc scan, int targetSlot) BitmapIndexScanState *indexstate = (BitmapIndexScanState *)hpScan->scanState; /* Step 1. To check whether all partition have been scanned. */ - if (targetSlot >= list_length(hpScan->hBktList)) { + if (targetSlot >= hpScan->hBktList->dim1) { return false; } hpScan->curr_slot = targetSlot; /* Step 2. get part from current slot */ - int2 bucketid = list_nth_int(hpScan->hBktList, hpScan->curr_slot); + int2 bucketid = hpScan->hBktList->values[hpScan->curr_slot]; idxRel = bucketGetRelation(hpScan->idx_rd, NULL, bucketid); /* Step 3. Build a indexBitmapScan */ diff --git a/src/gausskernel/storage/access/hbstore/hbucket_am.cpp b/src/gausskernel/storage/access/hbstore/hbucket_am.cpp index d9280d989..b9e3e0794 100644 --- a/src/gausskernel/storage/access/hbstore/hbucket_am.cpp +++ b/src/gausskernel/storage/access/hbstore/hbucket_am.cpp @@ -60,19 +60,22 @@ IndexScanDesc GetIndexScanDesc(IndexScanDesc scan) } } -List *hbkt_load_buckets(Relation relation, BucketInfo *bktInfo) +oidvector *hbkt_load_buckets(Relation relation, BucketInfo *bktInfo) { - ListCell *bktIdCell = NULL; - List *bucketList = NULL; + ListCell *bktIdCell = NULL; + oidvector *bucketList = NULL; oidvector *blist = searchHashBucketByOid(relation->rd_bucketoid); if (bktInfo == NULL || bktInfo->buckets == NIL) { // load all buckets - for (int i = 0; i < blist->dim1; i++) { - bucketList = lappend_int(bucketList, blist->values[i]); - } + bucketList = buildoidvector(blist->values, blist->dim1); } else { // load selected buckets + Oid bucketTmp[BUCKETDATALEN]; + bool needSort = false; + int bucketCnt = 0; + int prevBktId = -1; + foreach (bktIdCell, bktInfo->buckets) { int bktId = lfirst_int(bktIdCell); if (bktId < 0 || bktId >= BUCKETDATALEN) { @@ -80,10 +83,21 @@ List *hbkt_load_buckets(Relation relation, BucketInfo *bktInfo) (errcode(ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE), errmsg("buckets id %d of table is outsize range [%d,%d]", bktId, 0, BUCKETDATALEN - 1))); } - if (lookupHBucketid(blist, 0, bktId) == -1) { - continue; + if (lookupHBucketid(blist, 0, bktId) != -1) { + Assert(bktId != prevBktId); + if (bktId < prevBktId) { + needSort = true; + } + bucketTmp[bucketCnt++] = bktId; + prevBktId = bktId; } - bucketList = lappend_int(bucketList, bktId); + } + /* Make sure bucketlist is in ascending order */ + if (needSort) { + qsort(bucketTmp, bucketCnt, sizeof(Oid), bid_cmp); + } + if (bucketCnt != 0) { + bucketList = buildoidvector(bucketTmp, bucketCnt); } } return bucketList; @@ -100,7 +114,7 @@ static void free_hbucket_scan(TableScanDesc bktScan, Relation bktRel) static TableScanDesc hbkt_tbl_create_scan(Relation relation, ScanState *state) { HBktTblScanDesc hpScan = NULL; - List *bucketlist = NULL; + oidvector *bucketlist = NULL; BucketInfo *bktInfo = NULL; if (state != NULL) { @@ -138,7 +152,7 @@ static TableScanDesc hbkt_tbl_create_scan(Relation relation, ScanState *state) } else { /* Step 3: open first bucketed relation */ hpScan->curr_slot = 0; - int2 bucketid = list_nth_int(hpScan->hBktList, hpScan->curr_slot); + int2 bucketid = hpScan->hBktList->values[hpScan->curr_slot]; hpScan->currBktRel = bucketGetRelation(hpScan->rs_rd, NULL, bucketid); } @@ -260,7 +274,7 @@ static void hbkt_tbl_rescan(TableScanDesc scan, ScanKey key, bool is_bitmap_resc } else { /* Step 3: open first bucketed relation */ hpScan->curr_slot = 0; - int2 bucketid = list_nth_int(hpScan->hBktList, hpScan->curr_slot); + int2 bucketid = hpScan->hBktList->values[hpScan->curr_slot]; hpScan->currBktRel = bucketGetRelation(hpScan->rs_rd, NULL, bucketid); } @@ -295,13 +309,13 @@ static HeapTuple switch_and_scan_next_tbl_hbkt(TableScanDesc scan, ScanDirection while (true) { /* Step 1. To check whether all bucket have been scanned. */ - if (hpScan->curr_slot + 1 >= list_length(hpScan->hBktList)) { + if (hpScan->curr_slot + 1 >= hpScan->hBktList->dim1) { return NULL; } /* Step 2. Get the next bucket and its relation */ hpScan->curr_slot++; - int2 bucketid = list_nth_int(hpScan->hBktList, hpScan->curr_slot); + int2 bucketid = hpScan->hBktList->values[hpScan->curr_slot]; nextBktRel = bucketGetRelation(hpScan->rs_rd, NULL, bucketid); /* Step 3. Build a HeapScan to fetch tuples */ @@ -345,13 +359,13 @@ bool hbkt_sampling_scan_nextbucket(TableScanDesc scan) TableScanDesc currBktScan = hpScan->currBktScan; /* Step 1. To check whether all buckets have been scanned. */ - if (hpScan->curr_slot + 1 >= list_length(hpScan->hBktList)) { + if (hpScan->curr_slot + 1 >= hpScan->hBktList->dim1) { return false; } /* Step 2. Get the next bucket and its relation */ hpScan->curr_slot++; - int2 bucketid = list_nth_int(hpScan->hBktList, hpScan->curr_slot); + int2 bucketid = hpScan->hBktList->values[hpScan->curr_slot]; nextBktRel = bucketGetRelation(hpScan->rs_rd, NULL, bucketid); /* Step 3. Build a HeapScan for new bucket */ @@ -382,13 +396,13 @@ bool hbkt_bitmapheap_scan_nextbucket(HBktTblScanDesc hpScan) TableScanDesc nextBktScan = NULL; TableScanDesc currBktScan = hpScan->currBktScan; - if (hpScan->curr_slot + 1 >= list_length(hpScan->hBktList)) { + if (hpScan->curr_slot + 1 >= hpScan->hBktList->dim1) { return false; } /* switch to next hash bucket */ hpScan->curr_slot++; - int2 bucketid = list_nth_int(hpScan->hBktList, hpScan->curr_slot); + int2 bucketid = hpScan->hBktList->values[hpScan->curr_slot]; nextBktRel = bucketGetRelation(hpScan->rs_rd, NULL, bucketid); nextBktScan = tableam_scan_begin_bm(nextBktRel, currBktScan->rs_snapshot, currBktScan->rs_nkeys, currBktScan->rs_key); @@ -408,7 +422,7 @@ bool cbi_bitmapheap_scan_nextbucket(HBktTblScanDesc hpscan, GPIScanDesc gpiscan, TableScanDesc currbktscan, nextbktscan; /* vailidation check */ - if (!list_member_int(hpscan->hBktList, cbiscan->bucketid)) { + if (lookupHBucketid(hpscan->hBktList, 0, cbiscan->bucketid) == -1) { cbiscan->bucketid = InvalidBktId; return false; } @@ -440,7 +454,7 @@ Relation cbi_bitmapheap_scan_getbucket(const HBktTblScanDesc hpscan, const GPISc Assert(cbiscan != NULL); /* vailidation check */ - if (!list_member_int(hpscan->hBktList, bucketid)) { + if (lookupHBucketid(hpscan->hBktList, 0, bucketid) == -1) { return NULL; } @@ -469,13 +483,13 @@ bool hbkt_tbl_tid_nextbucket(HBktTblScanDesc hpScan) Relation nextBktRel = NULL; /* Step 1. To check whether all buckets have been scanned. */ - if (hpScan->curr_slot + 1 >= list_length(hpScan->hBktList)) { + if (hpScan->curr_slot + 1 >= hpScan->hBktList->dim1) { return false; } /* Step 2. Get the next bucket and its relation */ hpScan->curr_slot++; - int2 bucketid = list_nth_int(hpScan->hBktList, hpScan->curr_slot); + int2 bucketid = hpScan->hBktList->values[hpScan->curr_slot]; nextBktRel = bucketGetRelation(hpScan->rs_rd, NULL, bucketid); /* Step 3. If the next bucket has tuples, then we switch the old scan @@ -903,7 +917,7 @@ void scan_handler_tbl_endscan(TableScanDesc scan) if (hp_scan->currBktRel != NULL && RelationIsBucket(hp_scan->currBktRel)) { free_hbucket_scan(hp_scan->currBktScan, hp_scan->currBktRel); } - list_free_ext(hp_scan->hBktList); + pfree_ext(hp_scan->hBktList); pfree(hp_scan); } else { tableam_scan_end(scan); diff --git a/src/gausskernel/storage/access/heap/heapam.cpp b/src/gausskernel/storage/access/heap/heapam.cpp index e35f31353..db1da40b1 100755 --- a/src/gausskernel/storage/access/heap/heapam.cpp +++ b/src/gausskernel/storage/access/heap/heapam.cpp @@ -6,6 +6,7 @@ * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -122,16 +123,29 @@ static void HeapParallelscanStartblockInit(HeapScanDesc scan); static BlockNumber HeapParallelscanNextpage(HeapScanDesc scan); static HeapTuple heap_prepare_insert(Relation relation, HeapTuple tup, CommandId cid, int options); static XLogRecPtr log_heap_update(Relation reln, Buffer oldbuf, HeapTuple oldtup, Buffer newbuf, HeapTuple newtup, - HeapTuple old_key_tuple, bool all_visible_cleared, bool new_all_visible_cleared); -static void HeapSatisfiesHOTUpdate(Relation relation, Bitmapset* hot_attrs, Bitmapset *key_attrs, Bitmapset* id_attrs, + HeapTuple old_key_tup, bool all_visible_cleared, bool new_all_visible_cleared); +static void HeapSatisfiesHOTUpdate(Relation relation, Bitmapset* hot_attrs, Bitmapset* key_attrs, Bitmapset* id_attrs, bool* satisfies_hot, bool *satisfies_key, bool* satisfies_id, HeapTuple oldtup, HeapTuple newtup, char* page); static HeapTuple ExtractReplicaIdentity(Relation rel, HeapTuple tup, bool key_modified, bool* copy); static void SkipToNewPage( HeapScanDesc scan, ScanDirection dir, BlockNumber page, bool* finished, bool* isValidRelationPage); static bool VerifyHeapGetTup(HeapScanDesc scan, ScanDirection dir); static XLogRecPtr log_heap_new_cid(Relation relation, HeapTuple tup); +extern void vacuum_set_xid_limits(Relation rel, int64 freeze_min_age, int64 freeze_table_age, TransactionId *oldestXmin, + TransactionId *freezeLimit, TransactionId *freezeTableLimit, + MultiXactId* multiXactFrzLimit); extern void Start_Prefetch(TableScanDesc scan, SeqScanAccessor* pAccessor, ScanDirection dir); +static TM_Result heap_lock_updated_tuple(Relation rel, HeapTuple tuple, ItemPointer ctid, TransactionId xid, + LockTupleMode mode); +static void ComputeNewXmaxInfomask(TransactionId xmax, uint16 old_infomask, uint16 old_infomask2, + TransactionId add_to_xmax, LockTupleMode mode, bool is_update, TransactionId *result_xmax, + uint16 *result_infomask, uint16 *result_infomask2); + +static void GetMultiXactIdHintBits(MultiXactId multi, uint16 *new_infomask, uint16 *new_infomask2); +static TransactionId MultiXactIdGetUpdateXid(TransactionId xmax, uint16 t_infomask, uint16 t_infomask2); +static bool DoesMultiXactIdConflict(MultiXactId multi, LockTupleMode lockmode); + /* ---------------- * initscan - scan code common to heap_beginscan and heap_rescan * ---------------- @@ -197,17 +211,6 @@ static void SkipToNewPage(HeapScanDesc scan, ScanDirection dir, BlockNumber page static bool VerifyHeapGetTup(HeapScanDesc scan, ScanDirection dir); static XLogRecPtr log_heap_new_cid(Relation relation, HeapTuple tup); extern void Start_Prefetch(TableScanDesc scan, SeqScanAccessor *pAccessor, ScanDirection dir); -extern void vacuum_set_xid_limits(Relation rel, int64 freeze_min_age, int64 freeze_table_age, TransactionId *oldestXmin, - TransactionId *freezeLimit, TransactionId *freezeTableLimit, MultiXactId* multiXactFrzLimit); -static TM_Result heap_lock_updated_tuple(Relation rel, HeapTuple tuple, ItemPointer ctid, TransactionId xid, - LockTupleMode mode); -static void ComputeNewXmaxInfomask(TransactionId xmax, uint16 old_infomask, uint16 old_infomask2, - TransactionId add_to_xmax, LockTupleMode mode, bool is_update, TransactionId *result_xmax, - uint16 *result_infomask, uint16 *result_infomask2); - -static void GetMultiXactIdHintBits(MultiXactId multi, uint16 *new_infomask, uint16 *new_infomask2); -static TransactionId MultiXactIdGetUpdateXid(TransactionId xmax, uint16 t_infomask, uint16 t_infomask2); -static bool DoesMultiXactIdConflict(MultiXactId multi, LockTupleMode lockmode); /* ---------------- * initscan - scan code common to heap_beginscan and heap_rescan @@ -4555,6 +4558,10 @@ l1: char relreplident; Relation rel = heap_open(RelationRelationId, AccessShareLock); Oid relid = RelationIsPartition(relation) ? relation->parentId : relation->rd_id; + Oid tmpRelid = partid_get_parentid(relid); + if (OidIsValid(tmpRelid)) { + relid = tmpRelid; + } HeapTuple tuple = SearchSysCacheCopy1(RELOID, ObjectIdGetDatum(relid)); if (!HeapTupleIsValid(tuple)) { ereport(ERROR, @@ -7976,8 +7983,8 @@ XLogRecPtr log_heap_visible(RelFileNode rnode, BlockNumber block, Buffer heap_bu * Perform XLogInsert for a heap-update operation. Caller must already * have modified the buffer(s) and marked them dirty. */ -static XLogRecPtr log_heap_update(Relation reln, Buffer oldbuf, HeapTuple oldtup, Buffer newbuf, HeapTuple newtup, - HeapTuple old_key_tuple, bool all_visible_cleared, bool new_all_visible_cleared) +static XLogRecPtr log_heap_update(Relation reln, Buffer oldbuf, HeapTuple oldtup, Buffer newbuf, + HeapTuple newtup, HeapTuple old_key_tuple, bool all_visible_cleared, bool new_all_visible_cleared) { xl_heap_update xlrec; xl_heap_header xlhdr; @@ -8147,6 +8154,10 @@ static HeapTuple ExtractReplicaIdentity(Relation relation, HeapTuple tp, bool ke bool is_null = true; Relation rel = heap_open(RelationRelationId, AccessShareLock); Oid relid = RelationIsPartition(relation) ? relation->parentId : relation->rd_id; + Oid tmpRelid = partid_get_parentid(relid); + if (OidIsValid(tmpRelid)) { + relid = tmpRelid; + } HeapTuple tuple = SearchSysCacheCopy1(RELOID, ObjectIdGetDatum(relid)); if (!HeapTupleIsValid(tuple)) { ereport(ERROR, @@ -9380,7 +9391,11 @@ Partition partitionOpenWithRetry(Relation relation, Oid partition_id, LOCKMODE l ereport(ERROR, (errcode(ERRCODE_RELATION_OPEN_ERROR), errmsg("could not open partition with OID %u", partition_id))); } - Assert(relation->rd_id == p->pd_part->parentid); + + /* Insert TDE key to buffer cache for tde table */ + if (g_instance.attr.attr_security.enable_tde && IS_PGXC_DATANODE && RelationisEncryptEnable(relation)) { + PartitionInsertTdeInfoToCache(relation, p); + } PartitionOpenSmgr(p); @@ -9450,7 +9465,11 @@ Partition partitionOpen(Relation relation, Oid partition_id, LOCKMODE lockmode, ereport(ERROR, (errcode(ERRCODE_RELATION_OPEN_ERROR), errmsg("could not open partition with OID %u", partition_id))); } - Assert(relation->rd_id == p->pd_part->parentid); + + /* Insert TDE key to buffer cache for tde table */ + if (g_instance.attr.attr_security.enable_tde && IS_PGXC_DATANODE && RelationisEncryptEnable(relation)) { + PartitionInsertTdeInfoToCache(relation, p); + } PartitionOpenSmgr(p); @@ -9563,6 +9582,13 @@ Partition tryPartitionOpen(Relation relation, Oid partition_id, LOCKMODE lockmod } Assert(relation->rd_id == p->pd_part->parentid); + /* Insert TDE key to buffer cache for tde table */ + bool is_need_insert_key = + g_instance.attr.attr_security.enable_tde && IS_PGXC_DATANODE && RelationisEncryptEnable(relation); + if (is_need_insert_key) { + PartitionInsertTdeInfoToCache(relation, p); + } + PartitionOpenSmgr(p); #ifdef PGXC @@ -9594,11 +9620,16 @@ void partitionClose(Relation relation, Partition partition, LOCKMODE lockmode) Assert(lockmode >= NoLock && lockmode < MAX_LOCKMODES); Assert(PointerIsValid(relation)); Assert(PointerIsValid(part)); - Assert(relation->rd_id == part->pd_part->parentid); /* The partcache does the real work... */ PartitionClose(part); + /* + * If we are executing select for update/share operation, + * directly hold RowShareLock to avoid deadlock with vacuum full + */ + lockmode = GetPartitionLockMode(lockmode); + if (lockmode != NoLock) { if (relation->rd_rel->relkind == RELKIND_RELATION) { partID = partOidGetPartID(relation, part->pd_id); diff --git a/src/gausskernel/storage/access/heap/heapam_visibility.cpp b/src/gausskernel/storage/access/heap/heapam_visibility.cpp index eb700d618..023555205 100644 --- a/src/gausskernel/storage/access/heap/heapam_visibility.cpp +++ b/src/gausskernel/storage/access/heap/heapam_visibility.cpp @@ -360,13 +360,21 @@ bool HeapTupleSatisfiesSelf(HeapTuple htup, Snapshot snapshot, Buffer buffer) return false; } -/* Don't sync pgxc node table, it will hold NodeTableLock to read tuple and it's only useful in local node */ -static inline bool NeedSyncXact(uint32 syncFlag, Oid tableOid) +/* Only sync pg_class. */ +static inline bool NeedSyncXact(uint32 syncFlag, Oid tableOid, Snapshot snapshot) { +#ifdef ENABLE_MULTIPLE_NODES + /* Skip sync when seqscan on pg_class */ + if (snapshot == SnapshotNowNoSync) { + return false; + } return ((syncFlag & SNAPSHOT_NOW_NEED_SYNC) && IsNormalProcessingMode()) && - (tableOid != PgxcNodeRelationId) && - (tableOid != PgxcGroupRelationId) && + (tableOid == RelationRelationId) && !u_sess->storage_cxt.twoPhaseCommitInProgress && + !IsAnyAutoVacuumProcess() && !IS_SINGLE_NODE && !u_sess->attr.attr_common.xc_maintenance_mode && !t_thrd.xact_cxt.bInAbortTransaction; +#else + return false; +#endif } /* * HeapTupleSatisfiesNow @@ -458,8 +466,9 @@ restart: return true; /* deleted after scan started */ else return false; /* deleted before scan started */ - } else if (TransactionIdIsInProgress(HeapTupleHeaderGetXmin(page, tuple), &needSync, false, false)) { - if (NeedSyncXact(needSync, htup->t_tableOid)) { + } else if (TransactionIdIsInProgress(HeapTupleHeaderGetXmin(page, tuple), + &needSync, false, false, false, false)) { + if (NeedSyncXact(needSync, htup->t_tableOid, snapshot)) { needSync = 0; SyncWaitXidEnd(HeapTupleHeaderGetXmin(page, tuple), buffer); goto restart; @@ -524,8 +533,8 @@ restart: } needSync = 0; - if (TransactionIdIsInProgress(HeapTupleHeaderGetXmax(page, tuple), &needSync, false, false)) { - if (NeedSyncXact(needSync, htup->t_tableOid)) { + if (TransactionIdIsInProgress(HeapTupleHeaderGetXmax(page, tuple), &needSync, false, false, false, false)) { + if (NeedSyncXact(needSync, htup->t_tableOid, snapshot)) { needSync = 0; SyncWaitXidEnd(HeapTupleHeaderGetXmax(page, tuple), buffer); goto restart; @@ -721,10 +730,11 @@ restart: return TM_SelfModified; /* updated after scan started */ else return TM_Invisible; /* updated before scan started */ - } else if (TransactionIdIsInProgress(HeapTupleHeaderGetXmin(page, tuple), &needSync, false, false)) { + } else if (TransactionIdIsInProgress(HeapTupleHeaderGetXmin(page, tuple), + &needSync, false, false, false, false)) { if (needSync & SNAPSHOT_UPDATE_NEED_SYNC) { needSync = 0; - SyncLocalXidWait(HeapTupleHeaderGetXmin(page, tuple)); + SyncWaitXidEnd(HeapTupleHeaderGetXmin(page, tuple), buffer); goto restart; } return TM_Invisible; @@ -1708,6 +1718,11 @@ bool HeapTupleSatisfiesVisibility(HeapTuple tup, Snapshot snapshot, Buffer buffe case SNAPSHOT_NOW: return HeapTupleSatisfiesNow(tup, snapshot, buffer); break; +#ifdef ENABLE_MULTIPLE_NODES + case SNAPSHOT_NOW_NO_SYNC: + return HeapTupleSatisfiesNow(tup, snapshot, buffer); + break; +#endif case SNAPSHOT_SELF: return HeapTupleSatisfiesSelf(tup, snapshot, buffer); break; diff --git a/src/gausskernel/storage/access/heap/rewriteheap.cpp b/src/gausskernel/storage/access/heap/rewriteheap.cpp index 7ee272e71..795483925 100644 --- a/src/gausskernel/storage/access/heap/rewriteheap.cpp +++ b/src/gausskernel/storage/access/heap/rewriteheap.cpp @@ -737,12 +737,6 @@ static void prepare_cmpr_buffer(RewriteState state, Size meta_size, const char * PageReinitWithDict(page, meta_size); Assert(PageIsCompressed(page) && (meta_data != NULL)); - const char* algo = RelationGetAlgo(state->rs_new_rel); - if (RelationisEncryptEnable(state->rs_new_rel) || (algo && *algo != '\0')) { - phdr->pd_upper -= sizeof(TdePageInfo); - phdr->pd_special -= sizeof(TdePageInfo); - PageSetTDE(page); - } rc = memcpy_s((char *)getPageDict(page), meta_size, meta_data, meta_size); securec_check(rc, "", ""); diff --git a/src/gausskernel/storage/access/index/genam.cpp b/src/gausskernel/storage/access/index/genam.cpp index c5b2a4ee1..ed66c7cbe 100644 --- a/src/gausskernel/storage/access/index/genam.cpp +++ b/src/gausskernel/storage/access/index/genam.cpp @@ -620,7 +620,7 @@ void GPIScanInit(GPIScanDesc* gpiScan) gpiInfo->currPartOid = InvalidOid; gpiInfo->fakePartRelation = NULL; - gpiInfo->invisiblePartMap = NULL; + gpiInfo->invisiblePartTree = CreateOidRBTree(); gpiInfo->parentRelation = NULL; gpiInfo->fakeRelationTable = NULL; gpiInfo->partition = NULL; @@ -639,10 +639,7 @@ void GPIScanEnd(GPIScanDesc gpiScan) GPIDestroyFakeRelCache(gpiScan); } - if (gpiScan->invisiblePartMap != NULL) { - bms_free_ext(gpiScan->invisiblePartMap); - } - + DestroyOidRBTree(&gpiScan->invisiblePartTree); pfree_ext(gpiScan); } @@ -684,7 +681,7 @@ bool GPIGetNextPartRelation(GPIScanDesc gpiScan, MemoryContext cxt, LOCKMODE lmo } /* First check invisible partition oid's bitmapset */ - if (bms_is_member(gpiScan->currPartOid, gpiScan->invisiblePartMap)) { + if (OidRBTreeMemberOid(gpiScan->invisiblePartTree, gpiScan->currPartOid)) { gpiScan->fakePartRelation = NULL; gpiScan->partition = NULL; gpiScan->currPartOid = InvalidOid; @@ -702,7 +699,7 @@ bool GPIGetNextPartRelation(GPIScanDesc gpiScan, MemoryContext cxt, LOCKMODE lmo /* Just save partition status if current partition metadata is invisible */ if (currStatus == PART_METADATA_INVISIBLE) { /* If current partition metadata is invisible, add current partition oid into invisiblePartMap */ - gpiScan->invisiblePartMap = bms_add_member(gpiScan->invisiblePartMap, gpiScan->currPartOid); + (void)OidRBTreeInsertOid(gpiScan->invisiblePartTree, gpiScan->currPartOid); gpiScan->currPartOid = InvalidOid; result = false; } else { diff --git a/src/gausskernel/storage/access/nbtree/nbtinsert.cpp b/src/gausskernel/storage/access/nbtree/nbtinsert.cpp index b770bca82..f64fe0e93 100644 --- a/src/gausskernel/storage/access/nbtree/nbtinsert.cpp +++ b/src/gausskernel/storage/access/nbtree/nbtinsert.cpp @@ -6,6 +6,7 @@ * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -265,6 +266,7 @@ top: element->offset = offset; element->indnkeyatts = indnkeyatts; + return is_unique; } diff --git a/src/gausskernel/storage/access/nbtree/nbtsort.cpp b/src/gausskernel/storage/access/nbtree/nbtsort.cpp index 706701d7c..ebc66b0a5 100644 --- a/src/gausskernel/storage/access/nbtree/nbtsort.cpp +++ b/src/gausskernel/storage/access/nbtree/nbtsort.cpp @@ -58,6 +58,7 @@ * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * IDENTIFICATION * src/gausskernel/storage/access/nbtree/nbtsort.cpp @@ -71,6 +72,7 @@ #include "access/tableam.h" #include "access/xlog.h" #include "access/xloginsert.h" +#include "catalog/pg_partition_fn.h" #include "miscadmin.h" #include "storage/smgr/smgr.h" #include "storage/proc.h" @@ -1059,7 +1061,11 @@ static BTShared* _bt_parallel_initshared(BTSpool *btspool, int *workmem, int sca uint32 nparts = 0; if (RelationIsGlobalIndex(btspool->index)) { - nparts = getPartitionNumber(btspool->heap->partMap); + if (RelationIsSubPartitioned(btspool->heap)) { + nparts = GetSubPartitionNumber(btspool->heap); + } else { + nparts = getPartitionNumber(btspool->heap->partMap); + } } /* Store shared build state, for which we reserved space */ @@ -1148,9 +1154,8 @@ static void _bt_begin_parallel(BTBuildState *buildstate, int request, int *workm btshared = _bt_parallel_initshared(buildstate->spool, workmem, request, isplain); /* Launch workers, saving status for leader/caller */ - LaunchBackgroundWorkers(request, btshared, _bt_parallel_build_main, _bt_parallel_cleanup); - - btleader->nparticipanttuplesorts = request; + btleader->nparticipanttuplesorts = + LaunchBackgroundWorkers(request, btshared, _bt_parallel_build_main, _bt_parallel_cleanup); btleader->btshared = btshared; /* Save leader state now that it's clear build will be parallel */ @@ -1178,6 +1183,16 @@ static inline void release_target_relation(Relation *targetheap_ptr, Relation *t } } +static inline void ReleaseTargetPartitionList(Relation heap, Relation index, List *heapparts, List *indexparts) +{ + if (heapparts != NULL) { + releasePartitionList(heap, &heapparts, NoLock); + } + if (indexparts != NULL) { + releasePartitionList(index, &indexparts, NoLock); + } +} + /* * Unified routine to do index building parallel scan crossing * multiple layers (partition or hashbucket or both). @@ -1204,7 +1219,8 @@ static double _bt_parallel_scan_cross_level(Relation heap, Relation index, Index Assert(index != NULL); if (RelationIsPartitioned(heap)) { - heapparts = relationGetPartitionList(heap, NoLock); + heapparts = (RelationIsSubPartitioned(heap) ? RelationGetSubPartitionList(heap, NoLock) + : relationGetPartitionList(heap, NoLock)); indexparts = (!RelationIsGlobalIndex(index) ? indexGetPartitionList(index, NoLock) : indexparts); nparts = list_length(heapparts); } @@ -1239,7 +1255,8 @@ static double _bt_parallel_scan_cross_level(Relation heap, Relation index, Index targetheap = bucketGetRelation(heap, heappart, bucketid); targetindex = ((indexpart != NULL) ? bucketGetRelation(index, indexpart, bucketid) : targetindex); } else if (heappart != NULL) { - targetheap = partitionGetRelation(heap, heappart); + targetheap = (RelationIsSubPartitioned(heap) ? SubPartitionGetRelation(heap, heappart, NoLock) + : partitionGetRelation(heap, heappart)); targetindex = ((indexpart != NULL) ? partitionGetRelation(index, indexpart) : targetindex); } else { /* should not be here */ @@ -1257,12 +1274,7 @@ static double _bt_parallel_scan_cross_level(Relation heap, Relation index, Index release_target_relation(&targetheap, &targetindex); } - if (heapparts != NULL) { - releasePartitionList(heap, &heapparts, NoLock); - } - if (indexparts != NULL) { - releasePartitionList(index, &indexparts, NoLock); - } + ReleaseTargetPartitionList(heap, index, heapparts, indexparts); return result; } diff --git a/src/gausskernel/storage/access/obs/obs_am.cpp b/src/gausskernel/storage/access/obs/obs_am.cpp index 2c5c978c0..a51a0f8a3 100755 --- a/src/gausskernel/storage/access/obs/obs_am.cpp +++ b/src/gausskernel/storage/access/obs/obs_am.cpp @@ -16,6 +16,7 @@ #include #include #include +#include #define strpos(p, s) (strstr((p), (s)) != NULL ? strstr((p), (s)) - (p) : -1) @@ -34,6 +35,7 @@ #include "utils/elog.h" #include "utils/palloc.h" #include "utils/plog.h" +#include "postmaster/alarmchecker.h" #include "replication/walreceiver.h" // Some Windows stuff @@ -1525,7 +1527,7 @@ void FetchUrlProperties(const char *url, char **hostname, char **bucket, char ** FETCH_URL_ERROR: ereport(ERROR, - (errcode(ERRCODE_FDW_INVALID_OPTOIN_DATA), errmsg("OBS URL's %s is not valid '%s'", invalid_element, url))); + (errcode(ERRCODE_FDW_INVALID_OPTION_DATA), errmsg("OBS URL's %s is not valid '%s'", invalid_element, url))); } /* @@ -1584,7 +1586,7 @@ void FetchUrlPropertiesForQuery(const char *folderName, char **bucket, char **pr return; FETCH_URL_ERROR2: - ereport(ERROR, (errcode(ERRCODE_FDW_INVALID_OPTOIN_DATA), + ereport(ERROR, (errcode(ERRCODE_FDW_INVALID_OPTION_DATA), errmsg("OBS URL's %s is not valid '%s'", invalid_element, folderName))); } @@ -1766,33 +1768,33 @@ bool is_ip_address_format(const char *addr) return false; } -ObsArchiveConfig *getObsArchiveConfig() +ArchiveConfig *getArchiveConfig() { volatile WalRcvData *walrcv = t_thrd.walreceiverfuncs_cxt.WalRcv; if (walrcv->archive_slot == NULL) { - walrcv->archive_slot = getObsRecoverySlot(); + walrcv->archive_slot = GetArchiveRecoverySlot(); if (walrcv->archive_slot == NULL) { ereport(LOG, (errmsg("Cannot get replication slots!"))); return NULL; } } - return &walrcv->archive_slot->archive_obs; + return &walrcv->archive_slot->archive_config; } -static void fillBucketContext(OBSReadWriteHandler *handler, const char* key, ObsArchiveConfig *obs_config = NULL, +static void fillBucketContext(OBSReadWriteHandler *handler, const char* key, ArchiveConfig *obs_config = NULL, bool shortenConnTime = false) { - ObsArchiveConfig *archive_obs = NULL; + ArchiveConfig *archive_obs = NULL; errno_t rc = EOK; char xlogfpath[MAXPGPATH] = {0}; if (obs_config != NULL) { archive_obs = obs_config; } else { - archive_obs = getObsArchiveConfig(); + archive_obs = getArchiveConfig(); } - if (archive_obs == NULL) { + if (archive_obs == NULL || archive_obs->conn_config == NULL || archive_obs->conn_config->obs_address == NULL) { ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("Cannot get obs bucket config from replication slots"))); } @@ -1800,13 +1802,13 @@ static void fillBucketContext(OBSReadWriteHandler *handler, const char* key, Obs /* Initialize obs option */ init_obs_options(&handler->m_option); - handler->m_option.bucket_options.host_name = archive_obs->obs_address; - handler->m_option.bucket_options.bucket_name = archive_obs->obs_bucket; + handler->m_option.bucket_options.host_name = archive_obs->conn_config->obs_address; + handler->m_option.bucket_options.bucket_name = archive_obs->conn_config->obs_bucket; handler->m_option.bucket_options.protocol = OBS_PROTOCOL_HTTPS; handler->m_option.bucket_options.uri_style = is_ip_address_format(handler->m_option.bucket_options.host_name) ? OBS_URI_STYLE_PATH : OBS_URI_STYLE_VIRTUALHOST; - handler->m_option.bucket_options.access_key = archive_obs->obs_ak; - handler->m_option.bucket_options.secret_access_key = archive_obs->obs_sk; + handler->m_option.bucket_options.access_key = archive_obs->conn_config->obs_ak; + handler->m_option.bucket_options.secret_access_key = archive_obs->conn_config->obs_sk; t_thrd.obs_cxt.pCAInfo = getCAInfo(); handler->m_option.bucket_options.certificate_info = t_thrd.obs_cxt.pCAInfo; @@ -1816,7 +1818,7 @@ static void fillBucketContext(OBSReadWriteHandler *handler, const char* key, Obs } /* Fill in obs full file path */ - rc = snprintf_s(xlogfpath, MAXPGPATH, MAXPGPATH - 1, "%s/%s", archive_obs->obs_prefix, key); + rc = snprintf_s(xlogfpath, MAXPGPATH, MAXPGPATH - 1, "%s/%s", archive_obs->archive_prefix, key); securec_check_ss(rc, "\0", "\0"); handler->m_object_info.key = pstrdup(xlogfpath); @@ -1824,7 +1826,7 @@ static void fillBucketContext(OBSReadWriteHandler *handler, const char* key, Obs } -size_t obsRead(const char* fileName, int offset, char *buffer, int length, ObsArchiveConfig *obs_config) +size_t obsRead(const char* fileName, const int offset, char *buffer, const int length, ArchiveConfig *obs_config) { OBSReadWriteHandler *handler; errno_t rc = EOK; @@ -1858,7 +1860,7 @@ size_t obsRead(const char* fileName, int offset, char *buffer, int length, ObsAr return readLength; } -int obsWrite(const char* fileName, const char *buffer, const int bufferLength, ObsArchiveConfig *obs_config) +int obsWrite(const char* fileName, const char *buffer, const int bufferLength, ArchiveConfig *obs_config) { OBSReadWriteHandler *handler; int ret = 0; @@ -1888,7 +1890,7 @@ int obsWrite(const char* fileName, const char *buffer, const int bufferLength, O return ret; } -int obsDelete(const char* fileName, ObsArchiveConfig *obs_config) +int obsDelete(const char* fileName, ArchiveConfig *obs_config) { OBSReadWriteHandler *handler; int ret = 0; @@ -1910,7 +1912,7 @@ int obsDelete(const char* fileName, ObsArchiveConfig *obs_config) return ret; } -List* obsList(const char* prefix, ObsArchiveConfig *obs_config, bool reportError, bool shortenConnTime) +List* obsList(const char* prefix, ArchiveConfig *obs_config, bool reportError, bool shortenConnTime) { OBSReadWriteHandler *handler; errno_t rc = EOK; @@ -1932,14 +1934,15 @@ List* obsList(const char* prefix, ObsArchiveConfig *obs_config, bool reportError return fileNameList; } -void fillObsOption(obs_options *option, ObsArchiveConfig *obs_config = NULL) + +void fillObsOption(obs_options *option, ArchiveConfig *obs_config = NULL) { - ObsArchiveConfig *archive_obs = NULL; + ArchiveConfig *archive_obs = NULL; if (obs_config != NULL) { archive_obs = obs_config; } else { - archive_obs = getObsArchiveConfig(); + archive_obs = getArchiveConfig(); } if (archive_obs == NULL) { @@ -1948,12 +1951,12 @@ void fillObsOption(obs_options *option, ObsArchiveConfig *obs_config = NULL) } - option->bucket_options.host_name = archive_obs->obs_address; - option->bucket_options.bucket_name = archive_obs->obs_bucket; + option->bucket_options.host_name = archive_obs->conn_config->obs_address; + option->bucket_options.bucket_name = archive_obs->conn_config->obs_bucket; option->bucket_options.protocol = OBS_PROTOCOL_HTTPS; option->bucket_options.uri_style = OBS_URI_STYLE_PATH; - option->bucket_options.access_key = archive_obs->obs_ak; - option->bucket_options.secret_access_key = archive_obs->obs_sk; + option->bucket_options.access_key = archive_obs->conn_config->obs_ak; + option->bucket_options.secret_access_key = archive_obs->conn_config->obs_sk; t_thrd.obs_cxt.pCAInfo = getCAInfo(); option->bucket_options.certificate_info = t_thrd.obs_cxt.pCAInfo; option->request_options.ssl_cipher_list = OBS_CIPHER_LIST; @@ -2082,7 +2085,7 @@ static void head_complete_callback(obs_status status, /* * Create multipart upload file */ -void* createOBSFile(const char* file_path, const char* mode, ObsArchiveConfig *obs_config) +void* createOBSFile(const char* file_path, const char* mode, ArchiveConfig *obs_config) { OBSWriteFile* obsFile = NULL; char uploadId[OBS_MAX_UPLOAD_ID_LEN] = {0}; @@ -2162,7 +2165,7 @@ void* createOBSFile(const char* file_path, const char* mode, ObsArchiveConfig *o * write data to OBS */ int writeOBSData(const void* write_data, size_t size, size_t len, OBSFile* fp, size_t* writeSize, - ObsArchiveConfig *obs_config) + ArchiveConfig *obs_config) { int eTagLen = 0; int nRet = 0; @@ -2249,7 +2252,7 @@ int writeOBSData(const void* write_data, size_t size, size_t len, OBSFile* fp, s /* * close OBS file */ -int closeOBSFile(void* filePtr, ObsArchiveConfig *obs_config) +int closeOBSFile(void* filePtr, ArchiveConfig *obs_config) { int ulIndex = 0; int retriesG = MAX_RETRIES; @@ -2344,7 +2347,7 @@ int closeOBSFile(void* filePtr, ObsArchiveConfig *obs_config) /* * open obs file */ -void* openReadOBSFile(const char* file_path, const char* mode, ObsArchiveConfig *obs_config) +void* openReadOBSFile(const char* file_path, const char* mode, ArchiveConfig *obs_config) { OBSReadFile* obsFile = NULL; int retriesG = MAX_RETRIES; @@ -2404,7 +2407,7 @@ void* openReadOBSFile(const char* file_path, const char* mode, ObsArchiveConfig * 0: sucess * x: continue */ -int readOBSFile(char* data, size_t size, size_t len, void* fp, size_t* readSize, ObsArchiveConfig *obs_config) +int readOBSFile(char* data, size_t size, size_t len, void* fp, size_t* readSize, ArchiveConfig *obs_config) { OBSReadFile* obsFile = (OBSReadFile*)fp; @@ -2498,7 +2501,7 @@ int closeReadOBSFile(void* fp) /* * check whether the file exists in the OBS */ -bool checkOBSFileExist(const char* file_path, ObsArchiveConfig *obs_config) +bool checkOBSFileExist(const char* file_path, ArchiveConfig *obs_config) { HEAD_OBJECT_DATA data; data.object_length = 0; @@ -2516,7 +2519,7 @@ bool checkOBSFileExist(const char* file_path, ObsArchiveConfig *obs_config) &head_complete_callback }; - rc = snprintf_s(obsFilePath, MAXPGPATH, MAXPGPATH - 1, "%s/%s", obs_config->obs_prefix, file_path); + rc = snprintf_s(obsFilePath, MAXPGPATH, MAXPGPATH - 1, "%s/%s", obs_config->archive_prefix, file_path); securec_check_ss(rc, "\0", "\0"); ereport(DEBUG1, (errmsg("[OBS] before ListObjects check OBS file %s exist", obsFilePath))); @@ -2555,7 +2558,7 @@ void initializeOBS() return; } -bool UploadOneFileToOBS(char* localFilePath, char* netBackupPath, ObsArchiveConfig *obs_config) +bool UploadOneFileToOBS(char* localFilePath, char* netBackupPath, ArchiveConfig *obs_config) { FILE *fpReadFromDisk = NULL; OBSFile* fpWriteToNB = NULL; @@ -2613,7 +2616,7 @@ bool UploadOneFileToOBS(char* localFilePath, char* netBackupPath, ObsArchiveConf return true; } -bool DownloadOneItemFromOBS(char* netBackupPath, char* localPath, ObsArchiveConfig *obs_config) +bool DownloadOneItemFromOBS(char* netBackupPath, char* localPath, ArchiveConfig *obs_config) { ereport(LOG, (errmsg("start download obs file %s", netBackupPath))); void* fp = NULL; diff --git a/src/gausskernel/storage/access/redo/redo_heapam.cpp b/src/gausskernel/storage/access/redo/redo_heapam.cpp index d68406631..70c2ee177 100755 --- a/src/gausskernel/storage/access/redo/redo_heapam.cpp +++ b/src/gausskernel/storage/access/redo/redo_heapam.cpp @@ -170,6 +170,10 @@ void HeapXlogVisibleOperatorPage(RedoBufferInfo *buffer, void *recorddata) */ PageSetAllVisible(page); + if (IsSegmentFileNode(buffer->blockinfo.rnode)) { + PageSetLSN(page, buffer->lsn); + } + if (xlrec->free_dict && PageIsCompressed(page)) { (void)PageFreeDict(page); } diff --git a/src/gausskernel/storage/access/redo/redo_ubtxlog.cpp b/src/gausskernel/storage/access/redo/redo_ubtxlog.cpp index 7eb02509a..c04bdfc7e 100644 --- a/src/gausskernel/storage/access/redo/redo_ubtxlog.cpp +++ b/src/gausskernel/storage/access/redo/redo_ubtxlog.cpp @@ -137,10 +137,10 @@ void UBTreeXlogInsertOperatorPage(RedoBufferInfo *buffer, void *recorddata, void PageSetLSN(page, buffer->lsn); } -void UBTreeXlogSplitOperatorRightpage(RedoBufferInfo *rbuf, void *recorddata, BlockNumber leftsib, BlockNumber rnext, - void *blkdata, Size datalen) +void UBTreeXlogSplitOperatorRightPage(RedoBufferInfo *rbuf, void *recorddata, BlockNumber leftsib, BlockNumber rnext, + void *blkdata, Size datalen, bool hasOpaque) { - xl_btree_split *xlrec = (xl_btree_split *)recorddata; + xl_ubtree_split *xlrec = (xl_ubtree_split *)recorddata; bool isleaf = (xlrec->level == 0); Page rpage = rbuf->pageinfo.page; char *datapos = (char *)blkdata; @@ -149,11 +149,18 @@ void UBTreeXlogSplitOperatorRightpage(RedoBufferInfo *rbuf, void *recorddata, Bl UBTreePageInit(rpage, rbuf->pageinfo.pagesize); ropaque = (UBTPageOpaqueInternal)PageGetSpecialPointer(rpage); - ropaque->btpo_prev = leftsib; - ropaque->btpo_next = rnext; - ropaque->btpo.level = xlrec->level; - ropaque->btpo_flags = isleaf ? BTP_LEAF : 0; - ropaque->btpo_cycleid = 0; + if (hasOpaque) { + if (xlrec->opaqueVersion != UBTREE_OPAQUE_VERSION_RCR) { + ereport(ERROR, (errmsg("unknown btree opaque version"))); + } + *ropaque = xlrec->ropaque; + } else { + ropaque->btpo_prev = leftsib; + ropaque->btpo_next = rnext; + ropaque->btpo.level = xlrec->level; + ropaque->btpo_flags = isleaf ? BTP_LEAF : 0; + ropaque->btpo_cycleid = 0; + } UBTreeRestorePage(rpage, datapos, (int)datalen); @@ -171,9 +178,9 @@ void UBTreeXlogSplitOperatorNextpage(RedoBufferInfo *buffer, BlockNumber rightsi } void UBTreeXlogSplitOperatorLeftpage(RedoBufferInfo *lbuf, void *recorddata, BlockNumber rightsib, bool onleft, - void *blkdata, Size datalen) + void *blkdata, Size datalen, bool hasOpaque) { - xl_btree_split *xlrec = (xl_btree_split *)recorddata; + xl_ubtree_split *xlrec = (xl_ubtree_split *)recorddata; bool isleaf = (xlrec->level == 0); Page lpage = lbuf->pageinfo.page; char *datapos = (char *)blkdata; @@ -258,13 +265,20 @@ void UBTreeXlogSplitOperatorLeftpage(RedoBufferInfo *lbuf, void *recorddata, Blo PageRestoreTempPage(newlpage, lpage); /* Fix opaque fields */ - lopaque = (UBTPageOpaqueInternal)PageGetSpecialPointer(lpage); - lopaque->btpo_flags = BTP_INCOMPLETE_SPLIT; - if (isleaf) { - lopaque->btpo_flags |= BTP_LEAF; + if (hasOpaque) { + if (xlrec->opaqueVersion != UBTREE_OPAQUE_VERSION_RCR) { + ereport(ERROR, (errmsg("unknown btree opaque version"))); + } + *lopaque = xlrec->lopaque; + } else { + lopaque = (UBTPageOpaqueInternal)PageGetSpecialPointer(lpage); + lopaque->btpo_flags = BTP_INCOMPLETE_SPLIT; + if (isleaf) { + lopaque->btpo_flags |= BTP_LEAF; + } + lopaque->btpo_next = rightsib; + lopaque->btpo_cycleid = 0; } - lopaque->btpo_next = rightsib; - lopaque->btpo_cycleid = 0; PageSetLSN(lpage, lbuf->lsn); } @@ -602,7 +616,7 @@ XLogRecParseState *UBTreeXlogInsertParseBlock(XLogReaderState *record, uint32 *b static XLogRecParseState *UBTreeXlogSplitParseBlock(XLogReaderState *record, uint32 *blocknum) { - xl_btree_split *xlrec = (xl_btree_split *)XLogRecGetData(record); + xl_ubtree_split *xlrec = (xl_ubtree_split *)XLogRecGetData(record); bool isleaf = (xlrec->level == 0); BlockNumber leftsib = InvalidBlockNumber; BlockNumber rightsib = InvalidBlockNumber; @@ -1093,7 +1107,8 @@ static void UBTreeXlogSplitBlock(XLogBlockHead *blockhead, XLogBlockDataParse *b rnext = XLogBlockDataGetAuxiBlock1(datadecode); leftsib = XLogBlockDataGetAuxiBlock2(datadecode); - UBTreeXlogSplitOperatorRightpage(bufferinfo, (void *)maindata, leftsib, rnext, (void *)blkdata, blkdatalen); + UBTreeXlogSplitOperatorRightPage(bufferinfo, (void *)maindata, leftsib, rnext, (void *)blkdata, + blkdatalen, true); MakeRedoBufferDirty(bufferinfo); } else { XLogRedoAction action; @@ -1111,7 +1126,7 @@ static void UBTreeXlogSplitBlock(XLogBlockHead *blockhead, XLogBlockDataParse *b blkdata = XLogBlockDataGetBlockData(datadecode, &blkdatalen); UBTreeXlogSplitOperatorLeftpage(bufferinfo, (void *)maindata, rightsib, onleft, (void *)blkdata, - blkdatalen); + blkdatalen, true); } else if (XLogBlockDataGetBlockId(datadecode) == BTREE_SPLIT_RIGHTNEXT_BLOCK_NUM) { /* right next */ UBTreeXlogSplitOperatorNextpage(bufferinfo, rightsib); @@ -1273,8 +1288,6 @@ void UBTreeXlogPrunePageOperatorPage(RedoBufferInfo* buffer, void* recorddata) /* Set up flags and try to repair page fragmentation */ UBTreePagePruneExecute(page, (OffsetNumber *)(((char *)xlrec) + SizeOfUBTreePrunePage), xlrec->count, NULL); - /* We won't execute freezing operation only, until the number of tuples that need to be frozen reaches 8 */ - UBTreePageRepairFragmentation(page); /* @@ -1301,6 +1314,9 @@ void UBTree2XlogShiftBaseOperatorPage(RedoBufferInfo* buffer, void* recorddata) } } + /* reset pd_prune_xid for prune hint */ + ((PageHeader)page)->pd_prune_xid = InvalidTransactionId; + /* Iterate over page items */ OffsetNumber maxoff = PageGetMaxOffsetNumber(page); for (OffsetNumber offnum = P_FIRSTDATAKEY(opaque); offnum <= maxoff; offnum = OffsetNumberNext(offnum)) { @@ -1309,7 +1325,7 @@ void UBTree2XlogShiftBaseOperatorPage(RedoBufferInfo* buffer, void* recorddata) UstoreIndexXid uxid; itemid = PageGetItemId(page, offnum); - if (!ItemIdIsNormal(itemid)) { + if (!ItemIdHasStorage(itemid)) { continue; } @@ -1385,10 +1401,19 @@ void UBTree2XlogFreezeOperatorPage(RedoBufferInfo* buffer, void* recorddata) UstoreIndexXid uxid = (UstoreIndexXid) UstoreIndexTupleGetXid(itup); /* freeze xmin */ uxid->xmin = FrozenTransactionId; - /* remove xmax if necessary */ + } + /* Iterate over page items, remove xmax if necessary */ + OffsetNumber maxoff = PageGetMaxOffsetNumber(page); + for (OffsetNumber offnum = P_FIRSTDATAKEY(opaque); offnum <= maxoff; offnum = OffsetNumberNext(offnum)) { + ItemId itemid = PageGetItemId(page, offnum); + if (!ItemIdHasStorage(itemid)) { + continue; + } + IndexTuple itup = (IndexTuple) PageGetItem(page, itemid); + UstoreIndexXid uxid = (UstoreIndexXid)UstoreIndexTupleGetXid(itup); if (TransactionIdIsNormal(uxid->xmax)) { TransactionId xmax = ShortTransactionIdToNormal(opaque->xid_base, uxid->xmax); - if (xmax <= xlrec->latestRemovedXid) { + if (TransactionIdPrecedes(xmax, xlrec->oldestXmin)) { uxid->xmax = InvalidTransactionId; /* aborted */ } } diff --git a/src/gausskernel/storage/access/redo/redo_xact.cpp b/src/gausskernel/storage/access/redo/redo_xact.cpp index 7d4cb2766..4a78b166b 100644 --- a/src/gausskernel/storage/access/redo/redo_xact.cpp +++ b/src/gausskernel/storage/access/redo/redo_xact.cpp @@ -115,6 +115,12 @@ XLogRecParseState *xact_redo_rmbktlist_parse_to_block(XLogReaderState *record, X ColFileNode node; ColFileNodeCopy(&node, colFileNodeRel); Assert(!IsValidColForkNum(node.forknum)); + + if (IsSegmentFileNode(node.filenode)) { + SMgrRelation reln = smgropen(node.filenode, InvalidBackendId); + smgrclose(reln); + } + if (!RelFileNodeRelEquals(node.filenode, preRnode)) { newLoop = true; if (firstLoop && preRnode.spcNode != InvalidOid) { @@ -140,13 +146,12 @@ XLogRecParseState *xact_redo_rmbktlist_parse_to_block(XLogReaderState *record, X return NULL; } - RelFileNodeForkNum filenode = RelFileNodeForkNumFill(&(node.filenode), InvalidBackendId, MAIN_FORKNUM, InvalidBlockNumber); XLogRecSetBlockCommonState(record, BLOCK_DATA_DDL_TYPE, filenode, blockstate); - uint32 *bucketList = (uint32 *)palloc(BktBitMaxMapCnt); - errno_t err = memcpy_s(bucketList, BktBitMaxMapCnt, bitmap, BktBitMaxMapCnt); + uint32 *bucketList = (uint32 *)palloc(sizeof(bitmap)); + errno_t err = memcpy_s(bucketList, sizeof(bitmap), bitmap, sizeof(bitmap)); securec_check(err, "", ""); XLogRecSetBlockDdlState(&(blockstate->blockparse.extra_rec.blockddlrec), BLOCK_DDL_DROP_BKTLIST, @@ -199,6 +204,11 @@ XLogRecParseState *xact_redo_rmddl_parse_to_block(XLogReaderState *record, XLogR XLogRecSetBlockCommonState(record, BLOCK_DATA_DDL_TYPE, filenode, blockstate); XLogRecSetBlockDdlState(&(blockstate->blockparse.extra_rec.blockddlrec), BLOCK_DDL_DROP_RELNODE, false, NULL, node.ownerid); + + if (IsSegmentFileNode(node.filenode)) { + SMgrRelation reln = smgropen(node.filenode, InvalidBackendId); + smgrclose(reln); + } } } else { if (SUPPORT_COLUMN_BATCH) { diff --git a/src/gausskernel/storage/access/redo/redo_xlogutils.cpp b/src/gausskernel/storage/access/redo/redo_xlogutils.cpp index 6bccee587..c63dd9f70 100644 --- a/src/gausskernel/storage/access/redo/redo_xlogutils.cpp +++ b/src/gausskernel/storage/access/redo/redo_xlogutils.cpp @@ -77,12 +77,25 @@ bool ParseStateUseShareBuf() return (G_BUFFERREADMETHOD == WITH_NORMAL_CACHE); } +static FORCE_INLINE bool XLogLsnCheckLogInvalidPage(const RedoBufferInfo *bufferinfo, + InvalidPageType type, + const XLogPhyBlock *pblk) +{ + log_invalid_page(bufferinfo->blockinfo.rnode, bufferinfo->blockinfo.forknum, bufferinfo->blockinfo.blkno, + type, pblk); + return false; +} + bool DoLsnCheck(const RedoBufferInfo *bufferinfo, bool willInit, XLogRecPtr lastLsn, const XLogPhyBlock *pblk) { XLogRecPtr lsn = bufferinfo->lsn; Page page = (Page)bufferinfo->pageinfo.page; XLogRecPtr pageCurLsn = PageGetLSN(page); + + bool isSegmentPage = (IsSegmentFileNode(bufferinfo->blockinfo.rnode) && + !IsSegmentPhysicalRelNode(bufferinfo->blockinfo.rnode)); + if (!(XLByteEQ(lastLsn, pageCurLsn))) { const RedoBufferTag *blockinfo = &(bufferinfo->blockinfo); @@ -104,6 +117,8 @@ bool DoLsnCheck(const RedoBufferInfo *bufferinfo, bool willInit, XLogRecPtr last " page info:%u/%u/%u forknum %d lsn %lu blknum:%u", lastLsn, pageCurLsn, blockinfo->rnode.spcNode, blockinfo->rnode.dbNode, blockinfo->rnode.relNode, blockinfo->forknum, lsn, blockinfo->blkno))); + } else if (isSegmentPage) { + return XLogLsnCheckLogInvalidPage(bufferinfo, SEGPAGE_LSN_CHECK_ERROR, pblk); } else if (PageIsJustAfterFullPageWrite(page)) { ereport(DEBUG4, (errmodule(MOD_REDO), errcode(ERRCODE_LOG), errmsg("after full page write lsn check error,lsn in record (%lu)," @@ -111,14 +126,7 @@ bool DoLsnCheck(const RedoBufferInfo *bufferinfo, bool willInit, XLogRecPtr last lastLsn, pageCurLsn, blockinfo->rnode.spcNode, blockinfo->rnode.dbNode, blockinfo->rnode.relNode, blockinfo->forknum, lsn, blockinfo->blkno))); } else if (pageCurLsn == InvalidXLogRecPtr && PageIsEmpty(page) && PageUpperIsInitNew(page)) { - log_invalid_page(bufferinfo->blockinfo.rnode, bufferinfo->blockinfo.forknum, bufferinfo->blockinfo.blkno, - LSN_CHECK_ERROR, pblk); - return false; - } else if (IsSegmentFileNode(bufferinfo->blockinfo.rnode) && - !IsSegmentPhysicalRelNode(bufferinfo->blockinfo.rnode)) { - log_invalid_page(bufferinfo->blockinfo.rnode, bufferinfo->blockinfo.forknum, bufferinfo->blockinfo.blkno, - SEGPAGE_LSN_CHECK_ERROR, pblk); - return false; + return XLogLsnCheckLogInvalidPage(bufferinfo, LSN_CHECK_ERROR, pblk); } else { ereport(PANIC, (errmsg("lsn check error, lsn in record (%X/%X) ,lsn in current page %X/%X, " "page info:%u/%u/%u forknum %d blknum:%u lsn %X/%X", @@ -1178,9 +1186,9 @@ XLogRecParseState *XLogParseBufferCopy(XLogRecParseState *srcState) if (newState->blockparse.blockhead.block_valid == BLOCK_DATA_DDL_TYPE && newState->blockparse.extra_rec.blockddlrec.blockddltype == BLOCK_DDL_DROP_BKTLIST) { - uint32* bucketList = (uint32 *)palloc(BktBitMaxMapCnt); - rc = memcpy_s(bucketList, BktBitMaxMapCnt, - srcState->blockparse.extra_rec.blockddlrec.mainData, BktBitMaxMapCnt); + uint32* bucketList = (uint32 *)palloc(BktBitMaxMapCnt * sizeof(uint32)); + rc = memcpy_s(bucketList, BktBitMaxMapCnt * sizeof(uint32), + srcState->blockparse.extra_rec.blockddlrec.mainData, BktBitMaxMapCnt * sizeof(uint32)); securec_check(rc, "\0", "\0"); newState->blockparse.extra_rec.blockddlrec.mainData = (char *)bucketList; } @@ -1232,13 +1240,14 @@ void XLogBlockDataCommonRedo(XLogBlockHead *blockhead, void *blockrecbody, RedoB case RM_BTREE_ID: BtreeRedoDataBlock(blockhead, blockdatarec, bufferinfo); break; + case RM_HASH_ID: + HashRedoDataBlock(blockhead, blockdatarec, bufferinfo); + break; case RM_UBTREE_ID: UBTreeRedoDataBlock(blockhead, blockdatarec, bufferinfo); break; case RM_UBTREE2_ID: UBTree2RedoDataBlock(blockhead, blockdatarec, bufferinfo); - case RM_HASH_ID: - HashRedoDataBlock(blockhead, blockdatarec, bufferinfo); break; case RM_XLOG_ID: xlog_redo_data_block(blockhead, blockdatarec, bufferinfo); diff --git a/src/gausskernel/storage/access/rmgrdesc/nbtdesc.cpp b/src/gausskernel/storage/access/rmgrdesc/nbtdesc.cpp index acbdddefa..589592424 100644 --- a/src/gausskernel/storage/access/rmgrdesc/nbtdesc.cpp +++ b/src/gausskernel/storage/access/rmgrdesc/nbtdesc.cpp @@ -320,7 +320,8 @@ void UBTree2Desc(StringInfo buf, XLogReaderState* record) case XLOG_UBTREE2_FREEZE: { xl_ubtree2_freeze *xlrec = (xl_ubtree2_freeze *)rec; appendStringInfo(buf, "freeze page: blkno %u, nfrozen: %d, latestRemovedXid: %lu", - xlrec->blkno, xlrec->nfrozen, xlrec->latestRemovedXid); + xlrec->blkno, xlrec->nfrozen, xlrec->oldestXmin); + break; } default: appendStringInfo(buf, "UNKNOWN"); diff --git a/src/gausskernel/storage/access/rmgrdesc/uheapdesc.cpp b/src/gausskernel/storage/access/rmgrdesc/uheapdesc.cpp index 6808cc34b..4b0382778 100644 --- a/src/gausskernel/storage/access/rmgrdesc/uheapdesc.cpp +++ b/src/gausskernel/storage/access/rmgrdesc/uheapdesc.cpp @@ -21,25 +21,37 @@ #include "access/xlog.h" #include "access/ustore/knl_upage.h" -char *GetUndoHeader(XlUndoHeader *xlundohdr, Oid *partitionOid, UndoRecPtr *blkprev) +char *GetUndoHeader(XlUndoHeader *xlundohdr, Oid *partitionOid, UndoRecPtr *blkprev, UndoRecPtr *prevUrp, + TransactionId *subXid) { + Assert(xlundohdr != NULL && partitionOid != NULL && blkprev != NULL && prevUrp != NULL && subXid != NULL); char *currLogPtr = ((char *)xlundohdr + SizeOfXLUndoHeader); if ((xlundohdr->flag & XLOG_UNDO_HEADER_HAS_SUB_XACT) != 0) { currLogPtr += sizeof(bool); } + if ((xlundohdr->flag & XLOG_UNDO_HEADER_HAS_BLK_PREV) != 0) { - currLogPtr += sizeof(UndoRecPtr); - blkprev = (UndoRecPtr *) ((char *)currLogPtr); + *blkprev = *(UndoRecPtr *) ((char *)currLogPtr); Assert(*blkprev != INVALID_UNDO_REC_PTR); - } - if ((xlundohdr->flag & XLOG_UNDO_HEADER_HAS_PREV_URP) != 0) { currLogPtr += sizeof(UndoRecPtr); } - if ((xlundohdr->flag & XLOG_UNDO_HEADER_HAS_PARTITION_OID) != 0) { - currLogPtr += sizeof(Oid); - partitionOid = (Oid *) ((char *)currLogPtr); + + if ((xlundohdr->flag & XLOG_UNDO_HEADER_HAS_PREV_URP) != 0) { + *prevUrp = *(UndoRecPtr *) ((char *)currLogPtr); + currLogPtr += sizeof(UndoRecPtr); } + + if ((xlundohdr->flag & XLOG_UNDO_HEADER_HAS_PARTITION_OID) != 0) { + *partitionOid = *(Oid *) ((char *)currLogPtr); + currLogPtr += sizeof(Oid); + } + + if ((xlundohdr->flag & XLOG_UNDO_HEADER_HAS_CURRENT_XID) != 0) { + *subXid = *(TransactionId *) ((char *)currLogPtr); + currLogPtr += sizeof(TransactionId); + } + return currLogPtr; } @@ -51,10 +63,10 @@ void UHeapDesc(StringInfo buf, XLogReaderState *record) char *rec = XLogRecGetData(record); uint8 info = XLogRecGetInfo(record) & ~XLR_INFO_MASK; TransactionId xid = XLogRecGetXid(record); - UndoRecPtr invalidUrp = INVALID_UNDO_REC_PTR; - Oid invalidPartitionOid = 0; - Oid *partitionOid = &invalidPartitionOid; - UndoRecPtr* blkprev = &invalidUrp; + TransactionId subXid = InvalidTransactionId; + Oid partitionOid = InvalidOid; + UndoRecPtr blkprev = INVALID_UNDO_REC_PTR; + UndoRecPtr prevUrp = INVALID_UNDO_REC_PTR; char *currLogPtr; info &= XLOG_UHEAP_OPMASK; @@ -69,9 +81,10 @@ void UHeapDesc(StringInfo buf, XLogReaderState *record) } appendStringInfo(buf, "off %u, flag %u. ", (uint16)xlrec->offnum, (uint8)xlrec->flags); XlUndoHeader *xlundohdr = (XlUndoHeader *)((char *)rec + SizeOfUHeapInsert); - currLogPtr = GetUndoHeader(xlundohdr, partitionOid, blkprev); - appendStringInfo(buf, "urecptr %016lx, blkprev %016lx, relOid %u, partitionOid %u, flag %u. ", - xlundohdr->urecptr, *blkprev, xlundohdr->relOid, *partitionOid, xlundohdr->flag); + currLogPtr = GetUndoHeader(xlundohdr, &partitionOid, &blkprev, &prevUrp, &subXid); + appendStringInfo(buf, + "urecptr %016lx, blkprev %016lx, prevurp %016lx, relOid %u, partitionOid %u, flag %u, subXid %lu. ", + xlundohdr->urecptr, blkprev, prevUrp, xlundohdr->relOid, partitionOid, xlundohdr->flag, subXid); undo::XlogUndoMeta *xlundometa = (undo::XlogUndoMeta *)((char *)currLogPtr); if (isInit) { @@ -89,7 +102,7 @@ void UHeapDesc(StringInfo buf, XLogReaderState *record) case XLOG_UHEAP_MULTI_INSERT: { XlUndoHeader *xlundohdr = (XlUndoHeader *)rec; char *curxlogptr = (char *)xlundohdr + SizeOfXLUndoHeader; - curxlogptr = GetUndoHeader(xlundohdr, partitionOid, blkprev); + curxlogptr = GetUndoHeader(xlundohdr, &partitionOid, &blkprev, &prevUrp, &subXid); UndoRecPtr *last_urecptr = (UndoRecPtr *)curxlogptr; curxlogptr = (char *)last_urecptr + sizeof(*last_urecptr); @@ -119,10 +132,10 @@ void UHeapDesc(StringInfo buf, XLogReaderState *record) } appendStringInfo(buf, "ntuples %u, flag %u, nranges %d. ", (int)xlrec->ntuples, (uint8)xlrec->flags, nranges); - appendStringInfo(buf, "urecptr %016lx, blkprev %016lx, last_urecptr %016lx, ", - xlundohdr->urecptr, *blkprev, *last_urecptr); + appendStringInfo(buf, "urecptr %016lx, blkprev %016lx, prevurp %016lx, last_urecptr %016lx, subXid %lu,", + xlundohdr->urecptr, blkprev, prevUrp, *last_urecptr, subXid); appendStringInfo(buf, "relOid %u, partitionOid %u, flag %u. ", - xlundohdr->relOid, *partitionOid, xlundohdr->flag); + xlundohdr->relOid, partitionOid, xlundohdr->flag); if (isinit) { appendStringInfo(buf, "xidBase %lu tdCount %u. ", *xidBase, *tdCount); @@ -141,9 +154,10 @@ void UHeapDesc(StringInfo buf, XLogReaderState *record) (uint16)xlrec->offnum, (uint8)xlrec->td_id, (uint8)xlrec->flag); XlUndoHeader *xlundohdr = (XlUndoHeader *)((char *)rec + SizeOfUHeapDelete); - currLogPtr = GetUndoHeader(xlundohdr, partitionOid, blkprev); - appendStringInfo(buf, "urecptr %016lx, blkprev %016lx, relOid %u, partitionOid %u. ", - xlundohdr->urecptr, *blkprev, xlundohdr->relOid, *partitionOid); + currLogPtr = GetUndoHeader(xlundohdr, &partitionOid, &blkprev, &prevUrp, &subXid); + appendStringInfo(buf, + "urecptr %016lx, blkprev %016lx, prevurp %016lx, relOid %u, partitionOid %u, subXid %lu. ", + xlundohdr->urecptr, blkprev, prevUrp, xlundohdr->relOid, partitionOid, subXid); undo::XlogUndoMeta *xlundometa = (undo::XlogUndoMeta *)currLogPtr; appendStringInfo(buf, "zone %d slot offset %lu: dbid %u, xid %lu, lastrecsize %u, allocate %d switch zone %d.", @@ -166,15 +180,17 @@ void UHeapDesc(StringInfo buf, XLogReaderState *record) xlrec->oldxid, (uint16)xlrec->old_offnum, (uint16)xlrec->new_offnum, (uint8)xlrec->old_tuple_td_id, (uint16)xlrec->old_tuple_flag); xlundohdr = (XlUndoHeader *)((char *)rec + SizeOfUHeapUpdate); - currLogPtr = GetUndoHeader(xlundohdr, partitionOid, blkprev); - appendStringInfo(buf, "urecptr %016lx, blkprev %016lx, relOid %u, partitionOid %u, flag %u. ", - xlundohdr->urecptr, *blkprev, xlundohdr->relOid, *partitionOid, xlundohdr->flag); + currLogPtr = GetUndoHeader(xlundohdr, &partitionOid, &blkprev, &prevUrp, &subXid); + appendStringInfo(buf, + "urecptr %016lx, blkprev %016lx, prevurp %016lx, relOid %u, partitionOid %u, flag %u, subXid %lu. ", + xlundohdr->urecptr, blkprev, prevUrp, xlundohdr->relOid, partitionOid, xlundohdr->flag, subXid); if (xlrec->flags & XLZ_NON_INPLACE_UPDATE) { xlundohdr = (XlUndoHeader *)((char *)currLogPtr); - currLogPtr = GetUndoHeader(xlundohdr, partitionOid, blkprev); - appendStringInfo(buf, "relOid %u, urecptr %016lx, blkprev %016lx, newflag %u, ", xlundohdr->relOid, - xlundohdr->urecptr, *blkprev, xlundohdr->flag); + currLogPtr = GetUndoHeader(xlundohdr, &partitionOid, &blkprev, &prevUrp, &subXid); + appendStringInfo(buf, + "relOid %u, urecptr %016lx, blkprev %016lx, prevurp %016lx, newflag %u, subXid %lu,", + xlundohdr->relOid, xlundohdr->urecptr, blkprev, prevUrp, xlundohdr->flag, subXid); } undo::XlogUndoMeta *xlundometa = (undo::XlogUndoMeta *)currLogPtr; @@ -291,6 +307,16 @@ void UHeap2Desc(StringInfo buf, XLogReaderState *record) info &= XLOG_UHEAP_OPMASK; switch (info) { + case XLOG_UHEAP2_BASE_SHIFT: { + XlUHeapBaseShift *xlrec = (XlUHeapBaseShift *)XLogRecGetData(record); + appendStringInfo(buf, "XLOG_UHEAP2_BASE_SHIFT: delta: %ld%s", xlrec->delta, (xlrec->multi ? " multi": "")); + break; + } + case XLOG_UHEAP2_FREEZE: { + XlUHeapFreeze *xlrec = (XlUHeapFreeze *)XLogRecGetData(record); + appendStringInfo(buf, "XLOG_UHEAP2_FREEZE: curoff_xid: %lu", xlrec->cutoff_xid); + break; + } case XLOG_UHEAP2_EXTEND_TD_SLOTS: { XlUHeapExtendTdSlots *xlrec = (XlUHeapExtendTdSlots *)XLogRecGetData(record); appendStringInfo(buf, "XLOG_UHEAP2_EXTEND_TD_SLOTS: nExtended: %u, nPrevSlot: %u xid: %lu. ", diff --git a/src/gausskernel/storage/access/transam/CMakeLists.txt b/src/gausskernel/storage/access/transam/CMakeLists.txt index c5d7002a3..f9f26665f 100755 --- a/src/gausskernel/storage/access/transam/CMakeLists.txt +++ b/src/gausskernel/storage/access/transam/CMakeLists.txt @@ -10,6 +10,7 @@ list(APPEND TGT_transam_SRC ${CMAKE_CURRENT_SOURCE_DIR}/multixact.cpp ${CMAKE_CURRENT_SOURCE_DIR}/redo_statistic.cpp ${CMAKE_CURRENT_SOURCE_DIR}/rmgr.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/seg_double_write.cpp ${CMAKE_CURRENT_SOURCE_DIR}/slru.cpp ${CMAKE_CURRENT_SOURCE_DIR}/transam.cpp ${CMAKE_CURRENT_SOURCE_DIR}/twophase.cpp diff --git a/src/gausskernel/storage/access/transam/Makefile b/src/gausskernel/storage/access/transam/Makefile index a08bc5569..e36f6adfd 100644 --- a/src/gausskernel/storage/access/transam/Makefile +++ b/src/gausskernel/storage/access/transam/Makefile @@ -11,12 +11,12 @@ ifneq "$(MAKECMDGOALS)" "clean" endif ifeq ($(enable_multiple_nodes), yes) OBJS = clog.o multixact.o rmgr.o slru.o csnlog.o transam.o twophase.o \ - twophase_rmgr.o varsup.o double_write.o redo_statistic.o multi_redo_api.o multi_redo_settings.o\ + twophase_rmgr.o varsup.o double_write.o seg_double_write.o redo_statistic.o multi_redo_api.o multi_redo_settings.o\ xact.o xlog.o xlogfuncs.o \ xloginsert.o xlogreader.o xlogutils.o cbmparsexlog.o cbmfuncs.o else OBJS = clog.o gtm_single.o multixact.o rmgr.o slru.o csnlog.o transam.o twophase.o \ - twophase_rmgr.o varsup.o double_write.o redo_statistic.o multi_redo_api.o multi_redo_settings.o\ + twophase_rmgr.o varsup.o double_write.o seg_double_write.o redo_statistic.o multi_redo_api.o multi_redo_settings.o\ xact.o xlog.o xlogfuncs.o \ xloginsert.o xlogreader.o xlogutils.o cbmparsexlog.o cbmfuncs.o endif diff --git a/src/gausskernel/storage/access/transam/clog.cpp b/src/gausskernel/storage/access/transam/clog.cpp index b3a6bade2..aa2e1d0b5 100644 --- a/src/gausskernel/storage/access/transam/clog.cpp +++ b/src/gausskernel/storage/access/transam/clog.cpp @@ -817,7 +817,7 @@ void CheckPointCLOG(void) for (int i = 0; i < NUM_CLOG_PARTITIONS; i++) { flush_num += SimpleLruFlush(ClogCtl(i), true); } - g_instance.ckpt_cxt_ctl->ckpt_clog_flush_num += flush_num; + g_instance.ckpt_cxt_ctl->ckpt_view.ckpt_clog_flush_num += flush_num; TRACE_POSTGRESQL_CLOG_CHECKPOINT_DONE(true); } diff --git a/src/gausskernel/storage/access/transam/csnlog.cpp b/src/gausskernel/storage/access/transam/csnlog.cpp index 40eb61637..c23808ce5 100644 --- a/src/gausskernel/storage/access/transam/csnlog.cpp +++ b/src/gausskernel/storage/access/transam/csnlog.cpp @@ -647,7 +647,7 @@ void CheckPointCSNLOG(void) for (i = 0; i < NUM_CSNLOG_PARTITIONS; i++) { flush_num = SimpleLruFlush(CsnlogCtl(i), true); - g_instance.ckpt_cxt_ctl->ckpt_csnlog_flush_num += flush_num; + g_instance.ckpt_cxt_ctl->ckpt_view.ckpt_csnlog_flush_num += flush_num; } TRACE_POSTGRESQL_CSNLOG_CHECKPOINT_DONE(true); } diff --git a/src/gausskernel/storage/access/transam/double_write.cpp b/src/gausskernel/storage/access/transam/double_write.cpp index 650db59d5..c7422b143 100644 --- a/src/gausskernel/storage/access/transam/double_write.cpp +++ b/src/gausskernel/storage/access/transam/double_write.cpp @@ -52,37 +52,97 @@ Datum dw_get_node_name() } } +const uint16 RESULT_LEN = 256; Datum dw_get_single_flush_dwn() { if (dw_enabled()) { - return UInt32GetDatum((uint32)g_instance.dw_single_cxt.file_head->head.dwn); + char dwn[RESULT_LEN] = {0}; + errno_t rc; + if (g_instance.dw_single_cxt.dw_version == DW_SUPPORT_NEW_SINGLE_FLUSH) { + uint32 dwn_first = (uint32)g_instance.dw_single_cxt.file_head->head.dwn; + uint32 dwn_second = (uint32)g_instance.dw_single_cxt.second_file_head->head.dwn; + rc = snprintf_s(dwn, RESULT_LEN, RESULT_LEN - 1, "%u/%u", dwn_first, dwn_second); + securec_check_ss(rc, "\0", "\0"); + } else { + uint32 dwn_old = (uint32)g_instance.dw_single_cxt.recovery_buf.file_head->head.dwn; + rc = snprintf_s(dwn, RESULT_LEN, RESULT_LEN - 1, "%u/0", dwn_old); + securec_check_ss(rc, "\0", "\0"); + } + return CStringGetTextDatum(dwn); } - - return UInt32GetDatum(0); + return CStringGetTextDatum("0/0"); } Datum dw_get_single_flush_start() { if (dw_enabled()) { - return UInt32GetDatum((uint32)g_instance.dw_single_cxt.file_head->start); + char start[RESULT_LEN] = {0}; + errno_t rc; + if (g_instance.dw_single_cxt.dw_version == DW_SUPPORT_NEW_SINGLE_FLUSH) { + uint32 start_first = (uint32)g_instance.dw_single_cxt.file_head->start; + uint32 start_second = (uint32)g_instance.dw_single_cxt.second_file_head->start; + rc = snprintf_s(start, RESULT_LEN, RESULT_LEN - 1, "%u/%u", start_first, start_second); + securec_check_ss(rc, "\0", "\0"); + } else { + uint32 start_old = (uint32)g_instance.dw_single_cxt.recovery_buf.file_head->start; + rc = snprintf_s(start, RESULT_LEN, RESULT_LEN - 1, "%u/0", start_old); + securec_check_ss(rc, "\0", "\0"); + } + return CStringGetTextDatum(start); } - return UInt32GetDatum(0); + return CStringGetTextDatum("0/0"); } Datum dw_get_single_flush_trunc_num() { - return UInt64GetDatum(g_instance.dw_single_cxt.single_stat_info.file_trunc_num); + char trunc_num[RESULT_LEN] = {0}; + errno_t rc; + if (g_instance.dw_single_cxt.dw_version == DW_SUPPORT_NEW_SINGLE_FLUSH) { + uint32 trunc_num_first = (uint32)g_instance.dw_single_cxt.single_stat_info.file_trunc_num; + uint32 trunc_num_second = (uint32)g_instance.dw_single_cxt.single_stat_info.second_file_trunc_num; + rc = snprintf_s(trunc_num, RESULT_LEN, RESULT_LEN - 1, "%u/%u", trunc_num_first, trunc_num_second); + securec_check_ss(rc, "\0", "\0"); + } else { + uint32 trunc_num_old = (uint32)g_instance.dw_single_cxt.single_stat_info.file_trunc_num; + rc = snprintf_s(trunc_num, RESULT_LEN, RESULT_LEN - 1, "%u/0", trunc_num_old); + securec_check_ss(rc, "\0", "\0"); + } + return CStringGetTextDatum(trunc_num); } Datum dw_get_single_flush_reset_num() { - return UInt64GetDatum(g_instance.dw_single_cxt.single_stat_info.file_reset_num); + char reset_num[RESULT_LEN] = {0}; + errno_t rc; + if (g_instance.dw_single_cxt.dw_version == DW_SUPPORT_NEW_SINGLE_FLUSH) { + uint32 reset_num_first = (uint32)g_instance.dw_single_cxt.single_stat_info.file_reset_num; + uint32 reset_num_second = (uint32)g_instance.dw_single_cxt.single_stat_info.second_file_reset_num; + rc = snprintf_s(reset_num, RESULT_LEN, RESULT_LEN - 1, "%u/%u", reset_num_first, reset_num_second); + securec_check_ss(rc, "\0", "\0"); + } else { + uint32 reset_num_old = (uint32)g_instance.dw_single_cxt.single_stat_info.file_reset_num; + rc = snprintf_s(reset_num, RESULT_LEN, RESULT_LEN - 1, "%u/0", reset_num_old); + securec_check_ss(rc, "\0", "\0"); + } + return CStringGetTextDatum(reset_num); } Datum dw_get_single_flush_total_writes() { - return UInt64GetDatum(g_instance.dw_single_cxt.single_stat_info.total_writes); + char total_writes[RESULT_LEN] = {0}; + errno_t rc; + if (g_instance.dw_single_cxt.dw_version == DW_SUPPORT_NEW_SINGLE_FLUSH) { + uint32 total_writes_first = (uint32)g_instance.dw_single_cxt.single_stat_info.total_writes; + uint32 total_writes_second = (uint32)g_instance.dw_single_cxt.single_stat_info.second_total_writes; + rc = snprintf_s(total_writes, RESULT_LEN, RESULT_LEN - 1, "%u/%u", total_writes_first, total_writes_second); + securec_check_ss(rc, "\0", "\0"); + } else { + uint32 total_writes_old = (uint32)g_instance.dw_single_cxt.single_stat_info.total_writes; + rc = snprintf_s(total_writes, RESULT_LEN, RESULT_LEN - 1, "%u/0", total_writes_old); + securec_check_ss(rc, "\0", "\0"); + } + return CStringGetTextDatum(total_writes); } Datum dw_get_dw_number() @@ -160,17 +220,20 @@ const dw_view_col_t g_dw_view_col_arr[DW_VIEW_COL_NUM] = { const dw_view_col_t g_dw_single_view[DW_SINGLE_VIEW_COL_NUM] = { {"node_name", TEXTOID, dw_get_node_name}, - {"curr_dwn", INT4OID, dw_get_single_flush_dwn}, - {"curr_start_page", INT4OID, dw_get_single_flush_start}, - {"total_writes", INT8OID, dw_get_single_flush_total_writes}, - {"file_trunc_num", INT8OID, dw_get_single_flush_trunc_num}, - {"file_reset_num", INT8OID, dw_get_single_flush_reset_num} + {"curr_dwn", TEXTOID, dw_get_single_flush_dwn}, + {"curr_start_page", TEXTOID, dw_get_single_flush_start}, + {"total_writes", TEXTOID, dw_get_single_flush_total_writes}, + {"file_trunc_num", TEXTOID, dw_get_single_flush_trunc_num}, + {"file_reset_num", TEXTOID, dw_get_single_flush_reset_num} }; static void dw_generate_batch_file(); static void dw_generate_single_file(); static void dw_recovery_partial_write_single(); - +static uint16 get_max_single_write_pos(bool is_first); +static bool dw_read_data_page(BufferTag buf_tag, SMgrRelation reln, char* data_block); +static void dw_encrypt_page(BufferTag tag, char* buf); +void dw_recovery_single_page(const dw_single_flush_item *item, uint16 item_num); void dw_pread_file(int fd, void *buf, int size, int64 offset) { @@ -218,30 +281,26 @@ void dw_pwrite_file(int fd, const void *buf, int size, int64 offset, const char* int64 dw_seek_file(int fd, int64 offset, int32 origin) { - return (int64)lseek64(fd, (off64_t)offset, origin); + int64 seek_offset = lseek64(fd, (off64_t)offset, origin); + if (seek_offset == -1) { + ereport(PANIC, (errcode_for_file_access(), errmodule(MOD_DW), + errmsg("Seek dw file error, seek offset is %ld, origin is %d, error: %m", offset, origin))); + } + return seek_offset; } -static void dw_extend_file(int fd, const void *buf, int buf_size, int64 size, bool single) +static void dw_extend_file(int fd, const void *buf, int buf_size, int64 size, int64 file_expect_size, bool single) { int64 offset = 0; int64 remain_size; - int64 file_size = 0; offset = dw_seek_file(fd, 0, SEEK_END); - if (offset == -1) { - ereport(PANIC, (errcode_for_file_access(), errmodule(MOD_DW), errmsg("Seek file error"))); - } - if (single) { - file_size = DW_SINGLE_FILE_SIZE; - } else { - file_size = DW_FILE_SIZE; - } - if ((offset + size) > file_size) { + if ((offset + size) > file_expect_size) { ereport(PANIC, (errmodule(MOD_DW), errmsg("DW extend file failed, expected_file_size %ld, offset %ld, extend_size %ld", - file_size, offset, size))); + file_expect_size, offset, size))); } remain_size = size; @@ -253,7 +312,7 @@ static void dw_extend_file(int fd, const void *buf, int buf_size, int64 size, bo } } -static void dw_set_pg_checksum(char *page, BlockNumber blockNum) +void dw_set_pg_checksum(char *page, BlockNumber blockNum) { if (!CheckPageZeroCases((PageHeader)page)) { return; @@ -264,11 +323,13 @@ static void dw_set_pg_checksum(char *page, BlockNumber blockNum) ((PageHeader)page)->pd_checksum = pg_checksum_page(page, blockNum); } -static bool dw_verify_pg_checksum(PageHeader page_header, BlockNumber blockNum) +static bool dw_verify_pg_checksum(PageHeader page_header, BlockNumber blockNum, bool dw_file) { /* new page donot have crc and lsn, we donot recovery it */ if (!CheckPageZeroCases(page_header)) { - ereport(WARNING, (errmodule(MOD_DW), errmsg("DW verify checksum: new page"))); + if (!dw_file) { + ereport(WARNING, (errmodule(MOD_DW), errmsg("during dw recovery, verify checksum: new data page"))); + } return false; } uint16 checksum = pg_checksum_page((char *)page_header, blockNum); @@ -297,11 +358,12 @@ inline void dw_prepare_page(dw_batch_t *batch, uint16 page_num, uint16 page_id, dw_calc_batch_checksum(batch); } -static void dw_prepare_file_head(char *file_head, uint16 start, uint16 dwn) +void dw_prepare_file_head(char *file_head, uint16 start, uint16 dwn, int32 dw_version) { uint32 i; uint32 id; dw_file_head_t *curr_head = NULL; + dw_version = (dw_version == -1 ? pg_atomic_read_u32(&g_instance.dw_single_cxt.dw_version) : dw_version); for (i = 0; i < DW_FILE_HEAD_ID_NUM; i++) { id = g_dw_file_head_ids[i]; curr_head = (dw_file_head_t *)(file_head + sizeof(dw_file_head_t) * id); @@ -310,11 +372,12 @@ static void dw_prepare_file_head(char *file_head, uint16 start, uint16 dwn) curr_head->start = start; curr_head->buftag_version = PAGE_COMPRESS_TAG; curr_head->tail.dwn = dwn; + curr_head->dw_version = dw_version; dw_calc_file_head_checksum(curr_head); } } -static void dw_recover_file_head(knl_g_dw_context *cxt, bool single) +static uint32 dw_recover_file_head(knl_g_dw_context *cxt, bool single, bool first) { uint32 i; uint16 id; @@ -323,21 +386,15 @@ static void dw_recover_file_head(knl_g_dw_context *cxt, bool single) dw_file_head_t *curr_head = NULL; dw_file_head_t *working_head = NULL; char *file_head = (char *)cxt->file_head; + uint32 dw_version = 0; + uint64 head_offset = 0; + int64 offset; - pgstat_report_waitevent(WAIT_EVENT_DW_READ); - dw_pread_file(cxt->fd, cxt->file_head, BLCKSZ, 0); - pgstat_report_waitevent(WAIT_EVENT_END); - - int64 offset = dw_seek_file(cxt->fd, 0, SEEK_END); - if (single) { - file_size = DW_SINGLE_FILE_SIZE; - } else { - file_size = DW_FILE_SIZE; - } - if (offset != file_size) { - ereport(PANIC, (errmodule(MOD_DW), - errmsg("DW check file size failed, expected_size %ld, actual_size %ld", DW_FILE_SIZE, offset))); + if (single && !first) { + file_head = (char *)cxt->second_file_head; + head_offset = (1 + DW_FIRST_DATA_PAGE_NUM) * BLCKSZ; } + dw_pread_file(cxt->fd, file_head, BLCKSZ, head_offset); for (i = 0; i < DW_FILE_HEAD_ID_NUM; i++) { id = g_dw_file_head_ids[i]; @@ -351,7 +408,7 @@ static void dw_recover_file_head(knl_g_dw_context *cxt, bool single) if (working_head == NULL) { ereport(FATAL, (errcode_for_file_access(), errmodule(MOD_DW), errmsg("File header is broken"))); /* we should not get here, since FATAL will do abort. But for ut, return is needed */ - return; + return dw_version; } ereport(LOG, (errmodule(MOD_DW), errmsg("Found a valid file header: id %hu, file_head[dwn %hu, start %hu]", id, @@ -366,9 +423,20 @@ static void dw_recover_file_head(knl_g_dw_context *cxt, bool single) } } - pgstat_report_waitevent(WAIT_EVENT_DW_WRITE); - dw_pwrite_file(cxt->fd, file_head, BLCKSZ, 0, (single ? SINGLE_DW_FILE_NAME : DW_FILE_NAME)); - pgstat_report_waitevent(WAIT_EVENT_END); + offset = dw_seek_file(cxt->fd, 0, SEEK_END); + if (single) { + dw_version = ((dw_file_head_t *)file_head)->dw_version; + file_size = (dw_version == DW_SUPPORT_NEW_SINGLE_FLUSH ? DW_NEW_SINGLE_FILE_SIZE : DW_SINGLE_FILE_SIZE); + } else { + file_size = DW_FILE_SIZE; + } + if (offset != file_size) { + ereport(PANIC, (errmodule(MOD_DW), + errmsg("DW check file size failed, expected_size %ld, actual_size %ld", DW_FILE_SIZE, offset))); + } + + dw_pwrite_file(cxt->fd, file_head, BLCKSZ, head_offset, single ? SINGLE_DW_FILE_NAME : DW_FILE_NAME); + return dw_version; } static inline void dw_log_page_header(PageHeader page) @@ -451,6 +519,15 @@ static void dw_recover_pages(T1 *batch, T2 *buf_tag, PageHeader data_page, BufTa relnode.opt = 0; relnode.bucketNode = InvalidBktId; } + dw_page = (PageHeader)((char *)batch + (i + 1) * BLCKSZ); + if (!dw_verify_pg_checksum(dw_page, buf_tag->blockNum, true)) { + dw_log_data_page(WARNING, "DW batch page broken", buf_tag); + dw_log_page_header(dw_page); + continue; + } + dw_log_data_page(DW_LOG_LEVEL, "DW page fine", buf_tag); + dw_log_page_header(dw_page); + relation = smgropen(relnode, InvalidBackendId, GetColumnNum(buf_tag->forkNum)); SMGR_READ_STATUS rdStatus = dw_recover_read_page(relation, relnode, (char *)data_page, buf_tag); @@ -459,15 +536,6 @@ static void dw_recover_pages(T1 *batch, T2 *buf_tag, PageHeader data_page, BufTa } pageCorrupted = (rdStatus == SMGR_READ_STATUS::SMGR_RD_CRC_ERROR); - dw_page = (PageHeader)((char *)batch + (i + 1) * BLCKSZ); - if (!dw_verify_pg_checksum(dw_page, buf_tag->blockNum)) { - dw_log_data_page(WARNING, "DW batch page broken", buf_tag); - dw_log_page_header(dw_page); - continue; - } - - dw_log_data_page(DW_LOG_LEVEL, "DW page fine", buf_tag); - dw_log_page_header(dw_page); if (pageCorrupted || XLByteLT(PageGetLSN(data_page), PageGetLSN(dw_page))) { if (IsSegmentPhysicalRelNode(relnode)) { // seg_space must be initialized before. @@ -485,9 +553,9 @@ static void dw_recover_pages(T1 *batch, T2 *buf_tag, PageHeader data_page, BufTa void wait_all_dw_page_finish_flush() { - if (g_instance.bgwriter_cxt.bgwriter_procs != NULL) { - for (int i = 0; i < g_instance.bgwriter_cxt.bgwriter_num;) { - if (g_instance.bgwriter_cxt.bgwriter_procs[i].thrd_dw_cxt.dw_page_idx == -1) { + if (g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc != NULL) { + for (int i = 0; i < g_instance.ckpt_cxt_ctl->pgwr_procs.num;) { + if (g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc[i].thrd_dw_cxt.dw_page_idx == -1) { i++; continue; } else { @@ -495,11 +563,6 @@ void wait_all_dw_page_finish_flush() } } } - if (g_instance.ckpt_cxt_ctl->page_writer_procs.writer_proc != NULL) { - while (g_instance.ckpt_cxt_ctl->page_writer_procs.thrd_dw_cxt.dw_page_idx != -1) { - (void)sched_yield(); - } - } return; } @@ -508,9 +571,9 @@ int get_dw_page_min_idx() uint16 min_idx = 0; int dw_page_idx; - if (g_instance.bgwriter_cxt.bgwriter_procs != NULL) { - for (int i = 0; i < g_instance.bgwriter_cxt.bgwriter_num; i++) { - dw_page_idx = g_instance.bgwriter_cxt.bgwriter_procs[i].thrd_dw_cxt.dw_page_idx; + if (g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc != NULL) { + for (int i = 0; i < g_instance.ckpt_cxt_ctl->pgwr_procs.num; i++) { + dw_page_idx = g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc[i].thrd_dw_cxt.dw_page_idx; if (dw_page_idx != -1) { if (min_idx == 0 || (uint16)dw_page_idx < min_idx) { min_idx = dw_page_idx; @@ -518,14 +581,6 @@ int get_dw_page_min_idx() } } } - if (g_instance.ckpt_cxt_ctl->page_writer_procs.writer_proc != NULL) { - dw_page_idx = g_instance.ckpt_cxt_ctl->page_writer_procs.thrd_dw_cxt.dw_page_idx; - if (dw_page_idx != -1) { - if (min_idx == 0 || (uint16)dw_page_idx < min_idx) { - min_idx = dw_page_idx; - } - } - } return min_idx; } @@ -546,7 +601,7 @@ int get_dw_page_min_idx() * * Return FALSE if we can not grab conditional dw flush lock after smgrsync for truncate. */ -static bool dw_reset_if_need(knl_g_dw_context *cxt, uint16 pages_to_write, bool trunc_file) +static bool dw_batch_file_recycle(knl_g_dw_context *cxt, uint16 pages_to_write, bool trunc_file) { bool file_full = false; uint16 min_idx; @@ -570,7 +625,7 @@ static bool dw_reset_if_need(knl_g_dw_context *cxt, uint16 pages_to_write, bool min_idx = get_dw_page_min_idx(); LWLockRelease(cxt->flush_lock); } else { - Assert(AmStartupProcess() || AmPageWriterProcess() || AmMulitBackgroundWriterProcess()); + Assert(AmStartupProcess() || AmPageWriterProcess()); /* reset start position and flush page num for full recycle */ file_head->start = DW_BATCH_FILE_START; cxt->flush_page = 0; @@ -737,7 +792,7 @@ static bool dw_batch_head_broken(knl_g_dw_context *cxt, dw_batch_t *curr_head) return broken; } -static void dw_recover_partial_write(knl_g_dw_context *cxt) +static void dw_recover_partial_write_batch(knl_g_dw_context *cxt) { dw_read_asst_t read_asst; dw_batch_t *curr_head = NULL; @@ -802,9 +857,9 @@ static void dw_recover_partial_write(knl_g_dw_context *cxt) /* if free space not enough for one batch, reuse file. Otherwise, just do a truncate */ if ((cxt->file_head->start + cxt->flush_page + DW_BUF_MAX) >= DW_FILE_PAGE) { - (void)dw_reset_if_need(cxt, DW_BUF_MAX, false); + (void)dw_batch_file_recycle(cxt, DW_BUF_MAX, false); } else if (cxt->flush_page > 0) { - if (!dw_reset_if_need(cxt, 0, true)) { + if (!dw_batch_file_recycle(cxt, 0, true)) { ereport(PANIC, (errcode_for_file_access(), errmodule(MOD_DW), errmsg("Could not truncate dw file during startup!"))); } @@ -816,10 +871,11 @@ static void dw_recover_partial_write(knl_g_dw_context *cxt) pfree(data_page); } +/* only for init db */ void dw_bootstrap() { dw_generate_batch_file(); - dw_generate_single_file(); + dw_generate_new_single_file(); } static void dw_generate_batch_file() @@ -855,7 +911,7 @@ static void dw_generate_batch_file() dw_calc_batch_checksum(batch_head); pgstat_report_waitevent(WAIT_EVENT_DW_WRITE); dw_pwrite_file(fd, file_head, (BLCKSZ + BLCKSZ), 0, DW_FILE_NAME); - dw_extend_file(fd, file_head, DW_FILE_EXTEND_SIZE, remain_size, false); + dw_extend_file(fd, file_head, DW_FILE_EXTEND_SIZE, remain_size, DW_FILE_SIZE, false); pgstat_report_waitevent(WAIT_EVENT_END); ereport(LOG, (errmodule(MOD_DW), errmsg("Double write batch flush file created successfully"))); @@ -878,19 +934,24 @@ static void dw_free_resource(knl_g_dw_context *cxt) pfree(cxt->single_flush_state); cxt->single_flush_state = NULL; } - if (cxt->single_flush_pos != NULL) { - pfree(cxt->single_flush_pos); - cxt->single_flush_pos = NULL; - } if (cxt->unaligned_buf != NULL) { pfree(cxt->unaligned_buf); cxt->unaligned_buf = NULL; } + + if (cxt->recovery_buf.unaligned_buf != NULL) { + pfree(cxt->recovery_buf.unaligned_buf); + cxt->recovery_buf.unaligned_buf = NULL; + } + if (cxt->recovery_buf.single_flush_state != NULL) { + pfree(cxt->recovery_buf.single_flush_state); + cxt->recovery_buf.single_flush_state = NULL; + } cxt->closed = 1; } -void dw_file_check_and_rebuild() +void dw_file_check_rebuild() { if (file_exists(DW_BUILD_FILE_NAME)) { ereport(LOG, (errmodule(MOD_DW), errmsg("Double write initializing after build"))); @@ -922,7 +983,20 @@ void dw_file_check_and_rebuild() } /* Create the DW file. */ - dw_bootstrap(); + dw_generate_batch_file(); + + /* during C20 upgrade to R2C00 */ + if (t_thrd.proc->workingVersionNum >= DW_SUPPORT_SINGLE_FLUSH_VERSION && + t_thrd.proc->workingVersionNum < DW_SUPPORT_NEW_SINGLE_FLUSH) { + dw_generate_single_file(); + } else { + /* during C10 upgrade to R2C00 or now is R2C00, need check dw upgrade file */ + dw_generate_new_single_file(); + if (file_exists(DW_UPGRADE_FILE_NAME) && unlink(DW_UPGRADE_FILE_NAME) != 0) { + ereport(PANIC, + (errcode_for_file_access(), errmodule(MOD_DW), errmsg("Could not remove the DW upgrade file"))); + } + } /* Remove the DW build file. */ if (unlink(DW_BUILD_FILE_NAME) != 0) { @@ -930,70 +1004,53 @@ void dw_file_check_and_rebuild() (errcode_for_file_access(), errmodule(MOD_DW), errmsg("Could not remove the DW build file"))); } } + return; +} + +void dw_file_check() +{ + dw_file_check_rebuild(); if (!file_exists(DW_FILE_NAME)) { ereport(PANIC, (errcode_for_file_access(), errmodule(MOD_DW), errmsg("batch flush DW file does not exist"))); } + /* C20 or R2C00 version, the system must contain either dw single file or dw upgrade file. */ if (t_thrd.proc->workingVersionNum >= DW_SUPPORT_SINGLE_FLUSH_VERSION) { - if (!file_exists(SINGLE_DW_FILE_NAME)) { - ereport(PANIC, (errcode_for_file_access(), - errmodule(MOD_DW), errmsg("single flush DW file does not exist"))); + if (!file_exists(SINGLE_DW_FILE_NAME) && !file_exists(DW_UPGRADE_FILE_NAME)) { + ereport(PANIC, (errcode_for_file_access(), + errmodule(MOD_DW), errmsg("single flush DW file does not exist and dw_upgrade file does not exist"))); + } + } + + /* during C10 upgrade to R2C00, need generate the dw single file */ + if (!file_exists(SINGLE_DW_FILE_NAME)) { + /* create dw batch flush file */ + int fd = open(DW_UPGRADE_FILE_NAME, (DW_FILE_FLAG | O_CREAT), DW_FILE_PERM); + if (fd == -1) { + ereport(PANIC, + (errcode_for_file_access(), errmodule(MOD_DW), + errmsg("Could not create file \"%s\"", DW_FILE_NAME))); + } + ereport(LOG, (errmodule(MOD_DW), + errmsg("first upgrade to DW_SUPPORT_NEW_SINGLE_FLUSH, need init the single file"))); + dw_generate_new_single_file(); + if (close(fd) != 0 || unlink(DW_UPGRADE_FILE_NAME) != 0) { + ereport(PANIC, + (errcode_for_file_access(), errmodule(MOD_DW), errmsg("Could not remove the DW upgrade file"))); } } else { - if (!file_exists(SINGLE_DW_FILE_NAME)) { - ereport(LOG, (errmodule(MOD_DW), - errmsg("first upgrade to DW_SUPPORT_SINGLE_FLUSH_VERSION, need init the single file"))); - dw_generate_single_file(); - } else { - (void)unlink(SINGLE_DW_FILE_NAME); - dw_generate_single_file(); - } - } - -} - -const void init_dw_single_flush_map() -{ - uint16 i = 0; - uint16 m = 0; - uint16 j = 0; - uint16 pos; - knl_g_dw_context *dw_cxt = &g_instance.dw_single_cxt; - uint16 batch_size = SINGLE_BLOCK_TAG_NUM; - uint16 batch_num = (DW_SINGLE_DIRTY_PAGE_NUM / batch_size) + (DW_SINGLE_DIRTY_PAGE_NUM % batch_size == 0 ? 0 : 1); - LWLock *lock = NULL; - - /* - * i: block id - * m: block offset - * j: actual position, j = i * batch_size + m - * pos: dw_cxt slot, pos = m * batch_num + i - * - * Note that the last block does not contain enough tag, which will influence the calculation of pos, - * see example as follow: - * - * ---- | ----- | ----- | - * 1 4 2 5 3 6 - * 7 9 8 10 - * 11 13 12 14 - */ - int tagNumLastBlock = DW_SINGLE_DIRTY_PAGE_NUM % batch_size; - if (tagNumLastBlock == 0) { - tagNumLastBlock = batch_size; - } - - for (i = 0; i < batch_num; i++) { - lock = LWLockAssign(LWTRANCHE_DW_SINGLE_WRITE); - for (m = 0; m < batch_size && j < DW_SINGLE_DIRTY_PAGE_NUM; j++, m++) { - if (m < tagNumLastBlock) { - pos = m * batch_num + i; - } else { - pos = m * batch_num + i - (m - tagNumLastBlock); + /* during C20 upgrade to R2C00, if dw upgrade file exists, need generate new single file */ + if (file_exists(DW_UPGRADE_FILE_NAME)) { + if (unlink(SINGLE_DW_FILE_NAME) != 0) { + ereport(PANIC, + (errcode_for_file_access(), errmodule(MOD_DW), errmsg("Could not remove the DW single file"))); + } + dw_generate_new_single_file(); + if (unlink(DW_UPGRADE_FILE_NAME) != 0) { + ereport(PANIC, + (errcode_for_file_access(), errmodule(MOD_DW), errmsg("Could not remove the DW upgrade file"))); } - dw_cxt->single_flush_pos[pos].write_lock = lock; - dw_cxt->single_flush_pos[pos].actual_pos = j; - dw_cxt->single_flush_state[pos].data_flush = false; } } } @@ -1022,6 +1079,8 @@ void dw_cxt_init_batch() batch_cxt->file_head = (dw_file_head_t *)buf; buf += BLCKSZ; + (void)dw_recover_file_head(batch_cxt, false, false); + batch_cxt->buf = buf; if (BBOX_BLACKLIST_DW_BUFFER) { bbox_blacklist_add(DW_BUFFER, buf, buf_size - BLCKSZ - BLCKSZ); @@ -1035,11 +1094,14 @@ void dw_cxt_init_single() { char *buf = NULL; knl_g_dw_context *single_cxt = &g_instance.dw_single_cxt; - uint16 blk_num = (DW_SINGLE_DIRTY_PAGE_NUM / SINGLE_BLOCK_TAG_NUM) + - (DW_SINGLE_DIRTY_PAGE_NUM % SINGLE_BLOCK_TAG_NUM == 0 ? 0 : 1); + uint32 dw_version = 0; + uint16 data_page_num = 0; + uint64 second_start_offset = 0; Assert(single_cxt->flush_lock == NULL); - single_cxt->flush_lock = LWLockAssign(LWTRANCHE_DW_SINGLE_POS); + single_cxt->flush_lock = LWLockAssign(LWTRANCHE_DW_SINGLE_FIRST); + single_cxt->second_flush_lock = LWLockAssign(LWTRANCHE_DW_SINGLE_SECOND); + single_cxt->second_buftag_lock = LWLockAssign(LWTRANCHE_DW_SINGLE_SECOND_BUFTAG); single_cxt->fd = open(SINGLE_DW_FILE_NAME, DW_FILE_FLAG, DW_FILE_PERM); if (single_cxt->fd == -1) { @@ -1047,25 +1109,46 @@ void dw_cxt_init_single() (errcode_for_file_access(), errmodule(MOD_DW), errmsg("Could not open file \"%s\"", DW_FILE_NAME))); } - /* one more BLCKSZ for alignment, one for file head */ - single_cxt->unaligned_buf = (char *)palloc0((blk_num + 1 + 1) * BLCKSZ); + data_page_num = DW_FIRST_DATA_PAGE_NUM + DW_SECOND_DATA_PAGE_NUM; + + /* two file head plus one for alignment */ + single_cxt->unaligned_buf = (char *)palloc0((DW_SECOND_BUFTAG_PAGE_NUM + 1 + 1 + 1) * BLCKSZ); buf = (char *)TYPEALIGN(BLCKSZ, single_cxt->unaligned_buf); - - single_cxt->file_head = (dw_file_head_t *)buf; buf += BLCKSZ; + single_cxt->second_file_head = (dw_file_head_t *)buf; + buf += BLCKSZ; single_cxt->buf = buf; + single_cxt->single_flush_state = (bool*)palloc0(sizeof(bool) * data_page_num); - single_cxt->single_flush_pos = (single_slot_pos*)palloc0(sizeof(single_slot_pos) * DW_SINGLE_DIRTY_PAGE_NUM); - single_cxt->single_flush_state = (single_slot_state*)palloc0(sizeof(single_slot_state) * DW_SINGLE_DIRTY_PAGE_NUM); - init_dw_single_flush_map(); + dw_version = dw_recover_file_head(single_cxt, true, true); + if (dw_version == DW_SUPPORT_NEW_SINGLE_FLUSH) { + dw_pread_file(single_cxt->fd, single_cxt->file_head, BLCKSZ, 0); + second_start_offset = (1 + DW_FIRST_DATA_PAGE_NUM) * BLCKSZ; + dw_recover_file_head(single_cxt, true, false); + dw_pread_file(single_cxt->fd, single_cxt->second_file_head, BLCKSZ, second_start_offset); + } else { + Assert(dw_version == 0); + /* one file head plus one for alignment */ + single_cxt->recovery_buf.unaligned_buf = + (char *)palloc0((DW_SINGLE_DIRTY_PAGE_NUM / SINGLE_BLOCK_TAG_NUM + 1 + 1) * BLCKSZ); + buf = (char *)TYPEALIGN(BLCKSZ, single_cxt->recovery_buf.unaligned_buf); + single_cxt->recovery_buf.file_head = (dw_file_head_t *)buf; + buf += BLCKSZ; + single_cxt->recovery_buf.buf = buf; + dw_pread_file(single_cxt->fd, single_cxt->recovery_buf.file_head, BLCKSZ, 0); + single_cxt->recovery_buf.single_flush_state = + (bool*)palloc0(sizeof(bool) * DW_SINGLE_DIRTY_PAGE_NUM); + single_cxt->recovery_buf.write_pos = 0; + } + pg_atomic_write_u32(&g_instance.dw_single_cxt.dw_version, dw_version); single_cxt->closed = 0; single_cxt->write_pos = 0; + single_cxt->second_write_pos = 0; single_cxt->flush_page = 0; } - void dw_init(bool shut_down) { MemoryContext old_mem_cxt; @@ -1082,10 +1165,11 @@ void dw_init(bool shut_down) g_instance.dw_batch_cxt.mem_cxt = mem_cxt; g_instance.dw_single_cxt.mem_cxt = mem_cxt; + pg_atomic_write_u32(&g_instance.dw_single_cxt.dw_version, 0); old_mem_cxt = MemoryContextSwitchTo(mem_cxt); - dw_file_check_and_rebuild(); + dw_file_check(); ereport(LOG, (errmodule(MOD_DW), errmsg("Double Write init"))); dw_cxt_init_batch(); @@ -1093,19 +1177,12 @@ void dw_init(bool shut_down) /* recovery batch flush dw file */ (void)LWLockAcquire(batch_cxt->flush_lock, LW_EXCLUSIVE); - dw_recover_file_head(batch_cxt, false); - - dw_recover_partial_write(batch_cxt); + dw_recover_partial_write_batch(batch_cxt); LWLockRelease(batch_cxt->flush_lock); /* recovery single flush dw file */ (void)LWLockAcquire(single_cxt->flush_lock, LW_EXCLUSIVE); - dw_recover_file_head(single_cxt, true); - if (!shut_down) { - dw_recovery_partial_write_single(); - } - /* reset the file after the recovery is complete */ - dw_force_reset_single_file(); + dw_recovery_partial_write_single(); LWLockRelease(single_cxt->flush_lock); /* @@ -1118,13 +1195,18 @@ void dw_init(bool shut_down) MemoryContextDelete(g_instance.dw_batch_cxt.mem_cxt); ereport(LOG, (errmodule(MOD_DW), errmsg("Double write exit after recovering partial write"))); } else { + if (pg_atomic_read_u32(&g_instance.dw_single_cxt.dw_version) != 0 && + g_instance.dw_single_cxt.recovery_buf.unaligned_buf != NULL) { + pfree(g_instance.dw_single_cxt.recovery_buf.unaligned_buf); + g_instance.dw_single_cxt.recovery_buf.unaligned_buf = NULL; + } (void)MemoryContextSwitchTo(old_mem_cxt); } smgrcloseall(); } -static void dw_transfer_phybuffer_addr(const BufferDesc *buf_desc, BufferTag *buf_tag) +void dw_transfer_phybuffer_addr(const BufferDesc *buf_desc, BufferTag *buf_tag) { if (XLOG_NEED_PHYSICAL_LOCATION(buf_desc->tag.rnode)) { if (buf_desc->seg_fileno != EXTENT_INVALID) { @@ -1226,18 +1308,10 @@ static XLogRecPtr dw_copy_page(ThrdDwCxt* thrd_dw_cxt, int buf_desc_id, bool* is page_lsn = PageGetLSN(dest_addr); if (buf_desc->encrypt) { - TdeInfo *tde_info = NULL; - tde_info = TDE::TDEBufferCache::get_instance().search_cache(buf_desc->tag.rnode); - if (tde_info == NULL) { - ereport(ERROR, (errmodule(MOD_SEC_TDE), errcode(ERRCODE_UNEXPECTED_NULL_VALUE), - errmsg("double write copy page get TDE buffer cache entry failed"), errdetail("N/A"), - errcause("TDE cache miss this key"), erraction("check cache status"))); - } - PageDataEncryptIfNeed(dest_addr, tde_info, false); + dw_encrypt_page(buf_desc->tag, dest_addr); } dw_set_pg_checksum(dest_addr, phyBlock); - return page_lsn; } @@ -1325,7 +1399,7 @@ static void dw_batch_flush(knl_g_dw_context* dw_cxt, XLogRecPtr latest_lsn, Thrd pages_to_write = dw_batch_add_extra(dw_cxt->write_pos); rc = memcpy_s(dw_cxt->buf, pages_to_write * BLCKSZ, thrd_dw_cxt->dw_buf, pages_to_write * BLCKSZ); securec_check(rc, "\0", "\0"); - (void)dw_reset_if_need(dw_cxt, pages_to_write, false); + (void)dw_batch_file_recycle(dw_cxt, pages_to_write, false); /* calculate it after checking file space, in case of updated by sync */ offset_page = file_head->start + dw_cxt->flush_page; @@ -1373,25 +1447,15 @@ void dw_perform_batch_flush(uint32 size, CkptSortItem *dirty_buf_list, ThrdDwCxt for (uint16 i = 0; i < batch_size; i++) { bool is_skipped = false; - if (dirty_buf_list == NULL) { - page_lsn = dw_copy_page(thrd_dw_cxt, g_instance.ckpt_cxt_ctl->CkptBufferIds[i].buf_id, &is_skipped); - } else { - page_lsn = dw_copy_page(thrd_dw_cxt, dirty_buf_list[i].buf_id, &is_skipped); - } + page_lsn = dw_copy_page(thrd_dw_cxt, dirty_buf_list[i].buf_id, &is_skipped); if (is_skipped) { /* * We couldn't acquire conditional lock on the buffer content_lock. * So we mark it in buf_id_arr. */ BufferDesc *buf_desc = NULL; - if (dirty_buf_list == NULL) { - buf_desc = GetBufferDescriptor(g_instance.ckpt_cxt_ctl->CkptBufferIds[i].buf_id); - g_instance.ckpt_cxt_ctl->CkptBufferIds[i].buf_id = DW_INVALID_BUFFER_ID; - } else { - buf_desc = GetBufferDescriptor(dirty_buf_list[i].buf_id); - dirty_buf_list[i].buf_id = DW_INVALID_BUFFER_ID; - } - clean_buf_need_flush_flag(buf_desc); + buf_desc = GetBufferDescriptor(dirty_buf_list[i].buf_id); + dirty_buf_list[i].buf_id = DW_INVALID_BUFFER_ID; continue; } @@ -1406,7 +1470,7 @@ void dw_perform_batch_flush(uint32 size, CkptSortItem *dirty_buf_list, ThrdDwCxt dw_batch_flush(dw_cxt, latest_lsn, thrd_dw_cxt); } } -void dw_truncate_batch_file() +void dw_batch_file_truncate() { knl_g_dw_context *cxt = &g_instance.dw_batch_cxt; @@ -1426,7 +1490,7 @@ void dw_truncate_batch_file() errmsg("[batch flush] Can not get dw flush lock and skip dw truncate for this time"))); return; } - if (dw_reset_if_need(cxt, 0, true)) { + if (dw_batch_file_recycle(cxt, 0, true)) { LWLockRelease(cxt->flush_lock); } @@ -1435,21 +1499,70 @@ void dw_truncate_batch_file() cxt->file_head->head.dwn, cxt->file_head->start, cxt->flush_page))); } -void dw_truncate_single_file() +void dw_single_file_truncate(bool is_first) { - knl_g_dw_context *cxt = &g_instance.dw_single_cxt; - - if (!LWLockConditionalAcquire(cxt->flush_lock, LW_EXCLUSIVE)) { + uint16 max_idx = 0; + knl_g_dw_context* single_cxt = &g_instance.dw_single_cxt; + dw_file_head_t *file_head = NULL; + volatile uint16 org_start = 0; + volatile uint16 org_dwn = 0; + LWLock* flush_lock = NULL; + uint64 head_offset = 0; + + if (is_first) { + file_head = single_cxt->file_head; + flush_lock = single_cxt->flush_lock; + head_offset = 0; + } else { + file_head = single_cxt->second_file_head; + flush_lock = single_cxt->second_flush_lock; + head_offset = (1 + DW_FIRST_DATA_PAGE_NUM) * BLCKSZ; + } + + if (!LWLockConditionalAcquire(flush_lock, LW_EXCLUSIVE)) { ereport(LOG, (errmodule(MOD_DW), errmsg("[single flush] can not get dw flush lock and skip dw truncate for this time"))); return; } - if (dw_single_file_recycle(true)) { - LWLockRelease(cxt->flush_lock); + + org_start = file_head->start; + org_dwn = file_head->head.dwn; + max_idx = get_max_single_write_pos(is_first); + if (max_idx == file_head->start) { + LWLockRelease(flush_lock); + return; } + LWLockRelease(flush_lock); + + CheckPointSyncForDw(); + + if (!LWLockConditionalAcquire(flush_lock, LW_EXCLUSIVE)) { + ereport(LOG, (errmodule(MOD_DW), + errmsg("[single flush] can not get dw flush lock and skip dw truncate after sync for this time"))); + return; + } else if (org_start != file_head->start || org_dwn != file_head->head.dwn) { + LWLockRelease(flush_lock); + return; + } + + file_head->start = max_idx; + dw_prepare_file_head((char *)file_head, file_head->start, file_head->head.dwn); + + Assert(file_head->head.dwn == file_head->tail.dwn); + dw_pwrite_file(single_cxt->fd, file_head, BLCKSZ, head_offset, SINGLE_DW_FILE_NAME); + LWLockRelease(flush_lock); + ereport(LOG, (errmodule(MOD_DW), - errmsg("[single flush] DW truncate end: file_head[dwn %hu, start %hu], total_pages %hu", - cxt->file_head->head.dwn, cxt->file_head->start, cxt->flush_page))); + errmsg("[single flush][%s] DW truncate end: file_head[dwn %hu, start %hu], write_pos %hu", + is_first ? "first version" : "second_version", + file_head->head.dwn, file_head->start, is_first ? single_cxt->write_pos : single_cxt->second_write_pos))); + + if (is_first) { + (void)pg_atomic_add_fetch_u64(&single_cxt->single_stat_info.file_trunc_num, 1); + } else { + (void)pg_atomic_add_fetch_u64(&single_cxt->single_stat_info.second_file_trunc_num, 1); + } + return; } void dw_truncate() @@ -1460,8 +1573,13 @@ void dw_truncate() } gstrace_entry(GS_TRC_ID_dw_truncate); - dw_truncate_batch_file(); - dw_truncate_single_file(); + dw_batch_file_truncate(); + if (pg_atomic_read_u32(&g_instance.dw_single_cxt.dw_version) == DW_SUPPORT_NEW_SINGLE_FLUSH) { + dw_single_file_truncate(true); + dw_single_file_truncate(false); + } else { + dw_single_old_file_truncate(); + } gstrace_exit(GS_TRC_ID_dw_truncate); } @@ -1492,9 +1610,14 @@ void dw_exit(bool single) /* Do a final truncate before free resource. */ if (single) { - dw_truncate_single_file(); + if (pg_atomic_read_u32(&g_instance.dw_single_cxt.dw_version) == DW_SUPPORT_NEW_SINGLE_FLUSH) { + dw_single_file_truncate(true); + dw_single_file_truncate(false); + } else { + dw_single_old_file_truncate(); + } } else { - dw_truncate_batch_file(); + dw_batch_file_truncate(); } dw_free_resource(dw_cxt); @@ -1520,19 +1643,19 @@ static void dw_generate_single_file() (errcode_for_file_access(), errmodule(MOD_DW), errmsg("Could not create file \"%s\"", SINGLE_DW_FILE_NAME))); } - + unaligned_buf = (char *)palloc0(DW_FILE_EXTEND_SIZE + BLCKSZ); /* one more BLCKSZ for alignment */ file_head = (char *)TYPEALIGN(BLCKSZ, unaligned_buf); /* file head and first batch head will be writen */ remain_size = (DW_SINGLE_DIRTY_PAGE_NUM + DW_SINGLE_BUFTAG_PAGE_NUM) * BLCKSZ; - dw_prepare_file_head(file_head, 0, 0); + dw_prepare_file_head(file_head, 0, 0, 0); pgstat_report_waitevent(WAIT_EVENT_DW_WRITE); dw_pwrite_file(fd, file_head, BLCKSZ, 0, SINGLE_DW_FILE_NAME); rc = memset_s(file_head, BLCKSZ, 0, BLCKSZ); securec_check(rc, "\0", "\0"); - dw_extend_file(fd, file_head, DW_FILE_EXTEND_SIZE, remain_size, true); + dw_extend_file(fd, file_head, DW_FILE_EXTEND_SIZE, remain_size, DW_SINGLE_FILE_SIZE, true); pgstat_report_waitevent(WAIT_EVENT_END); ereport(LOG, (errmodule(MOD_DW), errmsg("Double write single flush file created successfully"))); @@ -1542,17 +1665,185 @@ static void dw_generate_single_file() return; } -static uint16 dw_single_flush_internal(BufferTag tag, Block block, XLogRecPtr page_lsn, bool encrypt, BufferTag phy_tag) +void dw_generate_new_single_file() +{ + char *file_head = NULL; + int64 extend_size; + int fd = -1; + errno_t rc; + char *unaligned_buf = NULL; + + if (file_exists(SINGLE_DW_FILE_NAME)) { + ereport(PANIC, (errcode_for_file_access(), errmodule(MOD_DW), "DW single flush file already exists")); + } + + ereport(LOG, (errmodule(MOD_DW), errmsg("DW bootstrap new single flush file"))); + + fd = open(SINGLE_DW_FILE_NAME, (DW_FILE_FLAG | O_CREAT), DW_FILE_PERM); + if (fd == -1) { + ereport(PANIC, + (errcode_for_file_access(), errmodule(MOD_DW), errmsg("Could not create file \"%s\"", + SINGLE_DW_FILE_NAME))); + } + + /* NO EREPORT(ERROR) from here till changes are logged */ + START_CRIT_SECTION(); + unaligned_buf = (char *)palloc0(DW_FILE_EXTEND_SIZE + BLCKSZ); /* one more BLCKSZ for alignment */ + + file_head = (char *)TYPEALIGN(BLCKSZ, unaligned_buf); + + /* first version page int */ + extend_size = DW_FIRST_DATA_PAGE_NUM * BLCKSZ; + dw_prepare_file_head(file_head, 0, 0, DW_SUPPORT_NEW_SINGLE_FLUSH); + dw_pwrite_file(fd, file_head, BLCKSZ, 0, SINGLE_DW_FILE_NAME); + + rc = memset_s(file_head, BLCKSZ, 0, BLCKSZ); + securec_check(rc, "\0", "\0"); + dw_extend_file(fd, file_head, DW_FILE_EXTEND_SIZE, extend_size, DW_NEW_SINGLE_FILE_SIZE, true); + + /* second version page init */ + extend_size = (DW_SECOND_BUFTAG_PAGE_NUM + DW_SECOND_DATA_PAGE_NUM) * BLCKSZ; + dw_prepare_file_head(file_head, 0, 0, DW_SUPPORT_NEW_SINGLE_FLUSH); + dw_pwrite_file(fd, file_head, BLCKSZ, (1 + DW_FIRST_DATA_PAGE_NUM) * BLCKSZ, SINGLE_DW_FILE_NAME); + + rc = memset_s(file_head, BLCKSZ, 0, BLCKSZ); + securec_check(rc, "\0", "\0"); + dw_extend_file(fd, file_head, DW_FILE_EXTEND_SIZE, extend_size, DW_NEW_SINGLE_FILE_SIZE, true); + END_CRIT_SECTION(); + + ereport(LOG, (errmodule(MOD_DW), errmsg("Double write single flush file created successfully"))); + + (void)close(fd); + fd = -1; + pfree(unaligned_buf); + return; +} + +static void dw_encrypt_page(BufferTag tag, char* buf) +{ + TdeInfo tde_info = {0}; + TDE::TDEBufferCache::get_instance().search_cache(tag.rnode, &tde_info); + if (strlen(tde_info.dek_cipher) == 0) { + ereport(ERROR, (errmodule(MOD_SEC_TDE), errcode(ERRCODE_UNEXPECTED_NULL_VALUE), + errmsg("double write copy page get TDE buffer cache entry failed, RelFileNode is %u/%u/%u/%u", + tag.rnode.spcNode, tag.rnode.dbNode, tag.rnode.relNode, + tag.rnode.bucketNode), + errdetail("N/A"), + errcause("TDE cache miss this key"), + erraction("check cache status"))); + } + PageDataEncryptIfNeed(buf, &tde_info, false); + return; +} + +bool free_space_enough(int buf_id) +{ + Page page = BufferGetPage(buf_id + 1); + PageHeader pghr = (PageHeader)page; + if(pghr->pd_upper - pghr->pd_lower >= (int)sizeof(dw_first_flush_item)) { + return true; + } + return false; +} + +uint16 atomic_get_dw_write_pos(bool is_first) +{ + knl_g_dw_context* dw_single_cxt = &g_instance.dw_single_cxt; + uint16 page_num = is_first ? DW_FIRST_DATA_PAGE_NUM : DW_SECOND_DATA_PAGE_NUM; + uint32 write_pos; + LWLock *lock = is_first ? dw_single_cxt->flush_lock : dw_single_cxt->second_flush_lock; + + pg_memory_barrier(); + write_pos = is_first ? pg_atomic_read_u32(&dw_single_cxt->write_pos) : + pg_atomic_read_u32(&dw_single_cxt->second_write_pos); + + while (true) { + if ((write_pos + 1 >= page_num)) { + (void)LWLockAcquire(lock, LW_EXCLUSIVE); + dw_single_file_recycle(is_first); + LWLockRelease(lock); + write_pos = is_first ? pg_atomic_read_u32(&dw_single_cxt->write_pos) : + pg_atomic_read_u32(&dw_single_cxt->second_write_pos); + /* fetch write_pos, we need to check write_pos + 1 again */ + continue; + } + + if (is_first) { + if (pg_atomic_compare_exchange_u32(&dw_single_cxt->write_pos, &write_pos, write_pos + 1)) { + return write_pos; + } + } else { + if (pg_atomic_compare_exchange_u32(&dw_single_cxt->second_write_pos, &write_pos, write_pos + 1)) { + return write_pos; + } + } + } + + return write_pos; +} + +uint16 first_version_dw_single_flush(BufferDesc *buf_desc) { errno_t rc; - uint16 map_pos; + char *buf = t_thrd.proc->dw_buf; + knl_g_dw_context* dw_single_cxt = &g_instance.dw_single_cxt; + dw_file_head_t *file_head = dw_single_cxt->file_head; uint16 actual_pos; - uint32 page_write_offset; - uint32 tag_write_offset; + uint64 page_write_offset; + dw_first_flush_item item; + PageHeader pghr = NULL; + BufferTag phy_tag; + + uint32 buf_state = LockBufHdr(buf_desc); + Block block = BufHdrGetBlock(buf_desc); + XLogRecPtr page_lsn = BufferGetLSN(buf_desc); + UnlockBufHdr(buf_desc, buf_state); + + phy_tag = buf_desc->tag; + dw_transfer_phybuffer_addr(buf_desc, &phy_tag); + + Assert(buf_desc->buf_id < SegmentBufferStartID); + Assert(free_space_enough(buf_desc->buf_id)); + + /* first step, copy buffer to dw buf, than flush page lsn, the buffer content lock is already held */ + rc = memcpy_s(buf, BLCKSZ, block, BLCKSZ); + securec_check(rc, "\0", "\0"); + + XLogWaitFlush(page_lsn); + if (buf_desc->encrypt) { + dw_encrypt_page(buf_desc->tag, buf); + } + + actual_pos = atomic_get_dw_write_pos(true); + + item.dwn = file_head->head.dwn; + item.buf_tag = phy_tag; + pghr = (PageHeader)buf; + + rc = memcpy_s(buf + pghr->pd_lower, sizeof(dw_first_flush_item), &item, sizeof(dw_first_flush_item)); + securec_check(rc, "\0", "\0"); + + dw_set_pg_checksum(buf, item.buf_tag.blockNum); + page_write_offset = (1 + actual_pos) * BLCKSZ; + Assert(actual_pos < DW_FIRST_DATA_PAGE_NUM); + dw_pwrite_file(dw_single_cxt->fd, buf, BLCKSZ, page_write_offset, SINGLE_DW_FILE_NAME); + + (void)pg_atomic_add_fetch_u64(&dw_single_cxt->single_stat_info.total_writes, 1); + + return actual_pos; +} + +uint16 second_version_dw_single_flush(BufferTag tag, Block block, XLogRecPtr page_lsn, + bool encrypt, BufferTag phy_tag) +{ + errno_t rc; + uint16 actual_pos; + uint64 page_write_offset; + uint64 tag_write_offset; uint16 block_offset; dw_single_flush_item item; knl_g_dw_context* dw_single_cxt = &g_instance.dw_single_cxt; - dw_file_head_t *file_head = dw_single_cxt->file_head; + dw_file_head_t *file_head = dw_single_cxt->second_file_head; char *buf = t_thrd.proc->dw_buf; /* first step, copy buffer to dw buf, than flush page lsn, the buffer content lock is already held */ @@ -1561,179 +1852,46 @@ static uint16 dw_single_flush_internal(BufferTag tag, Block block, XLogRecPtr pa XLogWaitFlush(page_lsn); if (encrypt) { - TdeInfo *tde_info = NULL; - tde_info = TDE::TDEBufferCache::get_instance().search_cache(tag.rnode); - if (tde_info == NULL) { - ereport(ERROR, (errmodule(MOD_SEC_TDE), errcode(ERRCODE_UNEXPECTED_NULL_VALUE), - errmsg("double write single flush get TDE buffer cache entry failed"), errdetail("N/A"), - errcause("TDE cache miss this key"), erraction("check cache status"))); - } - PageDataEncryptIfNeed(buf, tde_info, false); + dw_encrypt_page(tag, buf); } - pgstat_report_waitevent(WAIT_EVENT_DW_SINGLE_POS); - (void)LWLockAcquire(dw_single_cxt->flush_lock, LW_EXCLUSIVE); - (void)dw_single_file_recycle(false); - map_pos = dw_single_cxt->write_pos; - dw_single_cxt->write_pos = (dw_single_cxt->write_pos + 1) % DW_SINGLE_DIRTY_PAGE_NUM; - LWLockRelease(dw_single_cxt->flush_lock); - pgstat_report_waitevent(WAIT_EVENT_END); + dw_set_pg_checksum(buf, phy_tag.blockNum); - /* data page need skip head page and bufferTag page, bufferTag page need skip head page */ - actual_pos = dw_single_cxt->single_flush_pos[map_pos].actual_pos; - page_write_offset = (actual_pos + DW_SINGLE_BUFTAG_PAGE_NUM + 1) * BLCKSZ; + actual_pos = atomic_get_dw_write_pos(false); + + /* data page need skip head page and bufferTag page, bufferTag page need skip head page and first version page */ + page_write_offset = (actual_pos + DW_SECOND_DATA_START_IDX) * BLCKSZ; + tag_write_offset = DW_SECOND_BUFTAG_START_IDX * BLCKSZ + (actual_pos / SINGLE_BLOCK_TAG_NUM) * BLCKSZ; + block_offset = (actual_pos % SINGLE_BLOCK_TAG_NUM) * sizeof(dw_single_flush_item); + Assert(block_offset <= BLCKSZ - sizeof(dw_single_flush_item)); + Assert(actual_pos < DW_SECOND_DATA_PAGE_NUM); + Assert(page_write_offset < DW_NEW_SINGLE_FILE_SIZE && tag_write_offset < DW_SECOND_DATA_START_IDX * BLCKSZ); + + /* write the data page to dw file */ + dw_pwrite_file(dw_single_cxt->fd, buf, BLCKSZ, page_write_offset, SINGLE_DW_FILE_NAME); item.data_page_idx = actual_pos; item.dwn = file_head->head.dwn; item.buf_tag = phy_tag; - dw_set_pg_checksum(buf, item.buf_tag.blockNum); /* Contents are protected with a CRC */ INIT_CRC32C(item.crc); COMP_CRC32C(item.crc, (char*)&item, offsetof(dw_single_flush_item, crc)); FIN_CRC32C(item.crc); - /* - * Write the buffer tag information to dw file: - * 1. write the data file to dw file. - * 2. Hold the block exckusive lock based on pos. - * 3. read the whole block content, write the buffer tage item to corresponding pos. - * 4. write the whole block to dw file, release lock - */ - pgstat_report_waitevent(WAIT_EVENT_DW_SINGLE_WRITE); - dw_pwrite_file(dw_single_cxt->fd, buf, BLCKSZ, page_write_offset, SINGLE_DW_FILE_NAME); - pgstat_report_waitevent(WAIT_EVENT_END); - (void)pg_atomic_add_fetch_u64(&dw_single_cxt->single_stat_info.total_writes, 1); - - tag_write_offset = BLCKSZ + (actual_pos / SINGLE_BLOCK_TAG_NUM) * BLCKSZ; - block_offset = (actual_pos % SINGLE_BLOCK_TAG_NUM) * sizeof(dw_single_flush_item); - Assert(block_offset <= BLCKSZ - sizeof(dw_single_flush_item)); - - pgstat_report_waitevent(WAIT_EVENT_DW_SINGLE_WRITE); - (void)LWLockAcquire(dw_single_cxt->single_flush_pos[map_pos].write_lock, LW_EXCLUSIVE); + /* write the buffer tag item to dw file */ + (void)LWLockAcquire(dw_single_cxt->second_buftag_lock, LW_EXCLUSIVE); dw_pread_file(dw_single_cxt->fd, buf, BLCKSZ, tag_write_offset); rc = memcpy_s(buf + block_offset, BLCKSZ - block_offset, &item, sizeof(dw_single_flush_item)); securec_check(rc, "\0", "\0"); dw_pwrite_file(dw_single_cxt->fd, buf, BLCKSZ, tag_write_offset, SINGLE_DW_FILE_NAME); - LWLockRelease(dw_single_cxt->single_flush_pos[map_pos].write_lock); - pgstat_report_waitevent(WAIT_EVENT_END); - (void)pg_atomic_add_fetch_u64(&dw_single_cxt->single_stat_info.total_writes, 1); + LWLockRelease(dw_single_cxt->second_buftag_lock); + (void)pg_atomic_add_fetch_u64(&dw_single_cxt->single_stat_info.second_total_writes, 1); - return map_pos; + return (actual_pos + DW_FIRST_DATA_PAGE_NUM); } -/* - * Current, this function is only used by segment-page, which does not support TDE. If we want to support TDE, - * we could add additional parameter. - */ -uint16 dw_single_flush_without_buffer(BufferTag tag, Block block) -{ - return dw_single_flush_internal(tag, block, PageGetLSN(block), false, tag); -} - - -uint16 dw_single_flush(BufferDesc *buf_desc) -{ - uint32 buf_state = LockBufHdr(buf_desc); - - Block block = BufHdrGetBlock(buf_desc); - XLogRecPtr page_lsn = BufferGetLSN(buf_desc); - UnlockBufHdr(buf_desc, buf_state); - - BufferTag phy_tag = buf_desc->tag; - dw_transfer_phybuffer_addr(buf_desc, &phy_tag); - - return dw_single_flush_internal(buf_desc->tag, block, page_lsn, buf_desc->encrypt, phy_tag); -} - -int page_idx_compare(const void* arg1, const void* arg2) -{ - uint16 idx1 = *(const uint16*)arg1; - uint16 idx2 = *(const uint16*)arg2; - - if (idx1 > idx2) - return 1; - if (idx1 < idx2) - return -1; - return 0; -} - -void dw_empty_buftag_page(uint16 org_start, uint16 max_idx) -{ - knl_g_dw_context* dw_single_cxt = &g_instance.dw_single_cxt; - MemoryContext old_mem_cxt = MemoryContextSwitchTo(dw_single_cxt->mem_cxt); - uint16 *page_idx = (uint16*)palloc0(DW_SINGLE_DIRTY_PAGE_NUM * sizeof(uint16)); - char *unaligned_buf = (char *)palloc0(BLCKSZ + BLCKSZ); /* one more BLCKSZ for alignment */ - char *buf = (char *)TYPEALIGN(BLCKSZ, unaligned_buf); - errno_t rc; - uint16 empty_num = 0; - - /* get the page actual pos which buffer tag item need empty */ - if (org_start < max_idx) { - for (int i = org_start; i < max_idx; i++) { - page_idx[empty_num++] = dw_single_cxt->single_flush_pos[i].actual_pos; - } - } else { - for (int i = org_start; i < DW_SINGLE_DIRTY_PAGE_NUM; i++) { - page_idx[empty_num++] = dw_single_cxt->single_flush_pos[i].actual_pos; - } - - for (int i = 0; i < max_idx; i++) { - page_idx[empty_num++] = dw_single_cxt->single_flush_pos[i].actual_pos; - } - } - - qsort(page_idx, empty_num, sizeof(uint16), page_idx_compare); - - uint16 batch = page_idx[0] / SINGLE_BLOCK_TAG_NUM; /* calculate begin batch */ - uint16 batch_begin = page_idx[0]; - uint32 start_offset; - uint32 set_size; - uint16 batch_num = (DW_SINGLE_DIRTY_PAGE_NUM / SINGLE_BLOCK_TAG_NUM) + - (DW_SINGLE_DIRTY_PAGE_NUM % SINGLE_BLOCK_TAG_NUM == 0 ? 0 : 1); - - for (int i = 0; i < empty_num; i++) { - if (page_idx[i] >= SINGLE_BLOCK_TAG_NUM * (batch + 1)) { - LWLock *pos_lock = dw_single_cxt->single_flush_pos[batch].write_lock; - uint32 tag_offset = (batch + 1) * BLCKSZ; /* need skip file head */ - (void)LWLockAcquire(pos_lock, LW_EXCLUSIVE); - dw_pread_file(dw_single_cxt->fd, buf, BLCKSZ, tag_offset); - - start_offset = (batch_begin % SINGLE_BLOCK_TAG_NUM) * sizeof(dw_single_flush_item); - set_size = (page_idx[i - 1] - batch_begin + 1) * sizeof(dw_single_flush_item); - - rc = memset_s(buf + start_offset, set_size, 0, set_size); - securec_check(rc, "\0", "\0"); - dw_pwrite_file(dw_single_cxt->fd, buf, BLCKSZ, tag_offset, SINGLE_DW_FILE_NAME); - LWLockRelease(pos_lock); - batch++; - batch_begin = page_idx[i]; - } - - /* empty the last batch */ - if (batch >= batch_num - 1) { - LWLock *pos_lock = dw_single_cxt->single_flush_pos[batch].write_lock; - uint32 tag_offset = (batch + 1) * BLCKSZ; /* need skip file head */ - (void)LWLockAcquire(pos_lock, LW_EXCLUSIVE); - dw_pread_file(dw_single_cxt->fd, buf, BLCKSZ, tag_offset); - start_offset = (batch_begin % SINGLE_BLOCK_TAG_NUM) * sizeof(dw_single_flush_item); - set_size = (page_idx[empty_num - 1] - batch_begin + 1) * sizeof(dw_single_flush_item); - - rc = memset_s(buf + start_offset, set_size, 0, set_size); - securec_check(rc, "\0", "\0"); - dw_pwrite_file(dw_single_cxt->fd, buf, BLCKSZ, tag_offset, SINGLE_DW_FILE_NAME); - LWLockRelease(pos_lock); - break; - } - } - - pfree(page_idx); - pfree(unaligned_buf); - MemoryContextSwitchTo(old_mem_cxt); - return; -} - -void dw_force_reset_single_file() +void dw_force_reset_single_file(uint32 dw_version) { knl_g_dw_context* single_cxt = &g_instance.dw_single_cxt; dw_file_head_t *file_head = single_cxt->file_head; @@ -1741,190 +1899,149 @@ void dw_force_reset_single_file() CheckPointSyncForDw(); dw_prepare_file_head((char *)file_head, 0, file_head->head.dwn + 1); - Assert(file_head->head.dwn == file_head->tail.dwn); - pgstat_report_waitevent(WAIT_EVENT_DW_WRITE); dw_pwrite_file(single_cxt->fd, file_head, BLCKSZ, 0, SINGLE_DW_FILE_NAME); - pgstat_report_waitevent(WAIT_EVENT_END); - (void)pg_atomic_add_fetch_u64(&single_cxt->single_stat_info.file_reset_num, 1); + ereport(LOG, (errmodule(MOD_DW), - errmsg("DW single flush finish recovery, reset the file head[dwn %hu, start %hu].", - file_head->head.dwn, file_head->start))); + errmsg("DW single flush finish recovery, reset the file head[dwn %hu, start %hu].", + file_head->head.dwn, file_head->start))); + + if (dw_version == DW_SUPPORT_NEW_SINGLE_FLUSH) { + file_head = single_cxt->second_file_head; + dw_prepare_file_head((char *)file_head, 0, file_head->head.dwn + 1); + dw_pwrite_file(single_cxt->fd, file_head, BLCKSZ, (1 + DW_FIRST_DATA_PAGE_NUM) * BLCKSZ, SINGLE_DW_FILE_NAME); + (void)pg_atomic_add_fetch_u64(&single_cxt->single_stat_info.second_file_reset_num, 1); + ereport(LOG, (errmodule(MOD_DW), + errmsg("DW single flush finish recovery [second version], reset the file head[dwn %hu, start %hu].", + file_head->head.dwn, file_head->start))); + } + return; } -uint16 get_max_single_write_pos() +static uint16 get_max_single_write_pos(bool is_first) { uint16 max_idx = 0; uint16 i = 0; + uint16 start = 0; + uint16 end = 0; + dw_file_head_t *file_head = NULL; knl_g_dw_context* dw_single_cxt = &g_instance.dw_single_cxt; - dw_file_head_t *file_head = dw_single_cxt->file_head; - if (file_head->start <= dw_single_cxt->write_pos) { - for (i = file_head->start; i < dw_single_cxt->write_pos; i++) { - if (dw_single_cxt->single_flush_state[i].data_flush == false) { - break; - } - } - max_idx = i; + /* single_flush_state, first */ + if (is_first) { + file_head = dw_single_cxt->file_head; + start = file_head->start; + end = pg_atomic_read_u32(&dw_single_cxt->write_pos); } else { - /* first from start to last page */ - for (i = file_head->start; i < DW_SINGLE_DIRTY_PAGE_NUM; i++) { - if (dw_single_cxt->single_flush_state[i].data_flush == false) { - break; - } - } - if (i == DW_SINGLE_DIRTY_PAGE_NUM) { - for (i = 0; i < dw_single_cxt->write_pos; i++) { - if (dw_single_cxt->single_flush_state[i].data_flush == false) { - break; - } - } - - } - max_idx = i; + file_head = dw_single_cxt->second_file_head; + start = file_head->start + DW_FIRST_DATA_PAGE_NUM; + end = pg_atomic_read_u32(&dw_single_cxt->second_write_pos) + DW_FIRST_DATA_PAGE_NUM; } - + + for (i = start; i < end; i++) { + if (dw_single_cxt->single_flush_state[i] == false) { + break; + } + } + max_idx = i; + + if (!is_first) { + max_idx = max_idx - DW_FIRST_DATA_PAGE_NUM; + } + return max_idx; } -void wait_all_single_dw_finish_flush() +void wait_all_single_dw_finish_flush(bool is_first) { + uint16 start = 0; + uint16 end = 0; + dw_file_head_t *file_head = NULL; knl_g_dw_context* dw_single_cxt = &g_instance.dw_single_cxt; - dw_file_head_t *file_head = dw_single_cxt->file_head; - if (file_head->start <= dw_single_cxt->write_pos) { - for (int i = file_head->start; i < dw_single_cxt->write_pos; ) { - if (dw_single_cxt->single_flush_state[i].data_flush != false) { - i++; - continue; - } else { - (void)sched_yield(); - } - } + /* single_flush_state, first */ + if (is_first) { + file_head = dw_single_cxt->file_head; + start = file_head->start; + end = pg_atomic_read_u32(&dw_single_cxt->write_pos); } else { - for (int i = file_head->start; i < DW_SINGLE_DIRTY_PAGE_NUM; ) { - if (dw_single_cxt->single_flush_state[i].data_flush != false) { - i++; - continue; - } else { - (void)sched_yield(); - } - } + file_head = dw_single_cxt->second_file_head; + start = file_head->start + DW_FIRST_DATA_PAGE_NUM; + end = pg_atomic_read_u32(&dw_single_cxt->second_write_pos) + DW_FIRST_DATA_PAGE_NUM; + } - for (int i = 0; i < dw_single_cxt->write_pos; ) { - if (dw_single_cxt->single_flush_state[i].data_flush != false) { - i++; - continue; - } else { - (void)sched_yield(); - } + for (uint i = start; i < end;) { + if (dw_single_cxt->single_flush_state[i] != false) { + i++; + continue; + } else { + (void)sched_yield(); } } return; } -bool dw_single_file_recycle(bool trunc_file) +void dw_single_file_recycle(bool is_first) { bool file_full = false; - uint16 max_idx = 0; knl_g_dw_context* single_cxt = &g_instance.dw_single_cxt; - dw_file_head_t *file_head = single_cxt->file_head; - volatile uint16 org_start = file_head->start; - volatile uint16 org_dwn = file_head->head.dwn; - uint16 end = single_cxt->write_pos; + dw_file_head_t *file_head = NULL; + uint16 end = 0; errno_t rc; + uint64 head_offset = 0; + uint16 flush_state_start = 0; + uint16 page_num = 0; - if (file_head->start != 0) { - if (end < file_head->start) { - file_full = end + 1 >= file_head->start; - } else { - file_full = false; - } + if (is_first) { + file_head = single_cxt->file_head; + end = single_cxt->write_pos; + flush_state_start = 0; + page_num = DW_FIRST_DATA_PAGE_NUM; + head_offset = 0; } else { - file_full = end + 1 >= DW_SINGLE_DIRTY_PAGE_NUM; + file_head = single_cxt->second_file_head; + end = single_cxt->second_write_pos; + flush_state_start = DW_FIRST_DATA_PAGE_NUM; + page_num = DW_SECOND_DATA_PAGE_NUM; + head_offset = (1 + DW_FIRST_DATA_PAGE_NUM) * BLCKSZ; } - if (!file_full && !trunc_file) { - return true; + file_full = end + 1 >= page_num; + + if (!file_full) { + return; } - if (trunc_file) { - max_idx = get_max_single_write_pos(); - if (max_idx == file_head->start) { - LWLockRelease(single_cxt->flush_lock); - return false; - } - LWLockRelease(single_cxt->flush_lock); - } else { - /* reset start position and flush page num for full recycle */ - wait_all_single_dw_finish_flush(); - file_head->start = 0; - single_cxt->write_pos = 0; - single_cxt->flush_page = 0; - rc = memset_s(single_cxt->single_flush_state, sizeof(single_slot_state) * DW_SINGLE_DIRTY_PAGE_NUM, - 0, sizeof(single_slot_state) * DW_SINGLE_DIRTY_PAGE_NUM); - securec_check(rc, "\0", "\0"); - } + /* reset start position and flush page num for full recycle */ + wait_all_single_dw_finish_flush(is_first); CheckPointSyncForDw(); - if (trunc_file) { - dw_empty_buftag_page(org_start, max_idx); - if (!LWLockConditionalAcquire(single_cxt->flush_lock, LW_EXCLUSIVE)) { - ereport(LOG, (errmodule(MOD_DW), - errmsg("[single flush] can not get dw flush lock and skip dw truncate after sync for this time"))); - return false; - } else if (org_start != file_head->start || org_dwn != file_head->head.dwn) { - ereport(DW_LOG_LEVEL, (errmodule(MOD_DW), - errmsg("[single flush] Skip dw truncate after sync due to concurrent dw truncate/reset, " - "original[dwn %hu, start %hu], current[dwn %hu, start %hu]", - org_dwn, org_start, file_head->head.dwn, file_head->start))); - return true; - } + rc = memset_s(single_cxt->single_flush_state + (flush_state_start * sizeof(bool)), + sizeof(bool) * page_num, 0, sizeof(bool) * page_num); + securec_check(rc, "\0", "\0"); + + dw_prepare_file_head((char *)file_head, 0, file_head->head.dwn + 1); + dw_pwrite_file(single_cxt->fd, file_head, BLCKSZ, head_offset, SINGLE_DW_FILE_NAME); + + /* The start and write_pos must be reset at the end. */ + file_head->start = 0; + if (is_first) { + single_cxt->write_pos = 0; + } else { + single_cxt->second_write_pos = 0; } - /* - * if truncate file and flush_page is not 0, the dwn can not plus, - * otherwise verify will failed when recovery the data form dw file. - */ - if (trunc_file) { - file_head->start = max_idx; - if (org_start < file_head->start) { - rc = memset_s(single_cxt->single_flush_state + org_start, - sizeof(single_slot_state) * (file_head->start - org_start), - 0, sizeof(single_slot_state) * (file_head->start - org_start)); - securec_check(rc, "\0", "\0"); - } else { - rc = memset_s(single_cxt->single_flush_state + org_start, - sizeof(single_slot_state) * (DW_SINGLE_DIRTY_PAGE_NUM - org_start), - 0, sizeof(single_slot_state) * (DW_SINGLE_DIRTY_PAGE_NUM - org_start)); - securec_check(rc, "\0", "\0"); - - rc = memset_s(single_cxt->single_flush_state, sizeof(single_slot_state) * file_head->start, - 0, sizeof(single_slot_state) * file_head->start); - securec_check(rc, "\0", "\0"); - } - - dw_prepare_file_head((char *)file_head, file_head->start, file_head->head.dwn); - } else { - dw_prepare_file_head((char *)file_head, file_head->start, file_head->head.dwn + 1); - } - - Assert(file_head->head.dwn == file_head->tail.dwn); - pgstat_report_waitevent(WAIT_EVENT_DW_SINGLE_WRITE); - dw_pwrite_file(single_cxt->fd, file_head, BLCKSZ, 0, SINGLE_DW_FILE_NAME); - pgstat_report_waitevent(WAIT_EVENT_END); - - ereport(LOG, (errmodule(MOD_DW), errmsg("Reset single flush DW file: file_head[dwn %hu, start %hu], " - "writer pos is %hu", file_head->head.dwn, file_head->start, single_cxt->write_pos))); - - if (trunc_file) { - (void)pg_atomic_add_fetch_u64(&single_cxt->single_stat_info.file_trunc_num, 1); - } else { + if (is_first) { (void)pg_atomic_add_fetch_u64(&single_cxt->single_stat_info.file_reset_num, 1); + } else { + (void)pg_atomic_add_fetch_u64(&single_cxt->single_stat_info.second_file_reset_num, 1); } - return true; + ereport(LOG, (errmodule(MOD_DW), errmsg("[single flush] [%s] Reset DW file: file_head[dwn %hu, start %hu], " + "writer pos is %hu", is_first ? "first version" : "second_version", file_head->head.dwn, file_head->start, + is_first ? single_cxt->write_pos : single_cxt->second_write_pos))); + return; } bool dw_verify_item(const dw_single_flush_item* item, uint16 dwn) @@ -2006,66 +2123,222 @@ static inline void dw_log_recovery_page(int elevel, const char *state, BufferTag buf_tag.forkNum, buf_tag.rnode.opt))); } -void dw_recovery_page_single(const dw_single_flush_item *item, uint16 item_num) +static void dw_recovery_first_version_page() +{ + knl_g_dw_context* single_cxt = &g_instance.dw_single_cxt; + dw_file_head_t *file_head = single_cxt->file_head; + errno_t rc = 0; + uint64 offset = 0; + PageHeader pghr = NULL; + SMgrRelation reln = NULL; + char *unaligned_buf = (char *)palloc0(BLCKSZ + BLCKSZ); /* one more BLCKSZ for alignment */ + char *dw_block = (char *)TYPEALIGN(BLCKSZ, unaligned_buf); + char *data_block = (char *)palloc0(BLCKSZ); + dw_first_flush_item flush_item; + + for (uint16 i = file_head->start; i < DW_FIRST_DATA_PAGE_NUM; i++) { + offset = (i + 1) * BLCKSZ; /* need skip the file head */ + dw_pread_file(single_cxt->fd, dw_block, BLCKSZ, offset); + pghr = (PageHeader)dw_block; + + rc = memcpy_s(&flush_item, sizeof(dw_first_flush_item), dw_block + pghr->pd_lower, sizeof(dw_first_flush_item)); + securec_check(rc, "\0", "\0"); + + if (!dw_verify_pg_checksum((PageHeader)dw_block, flush_item.buf_tag.blockNum, true)) { + if (PageIsNew(dw_block)) { + Assert(flush_item.buf_tag.rnode.relNode == 0); + dw_log_recovery_page(LOG, "[first version] dw page is new, break this recovery", flush_item.buf_tag); + break; + } + dw_log_recovery_page(WARNING, "DW single page broken", flush_item.buf_tag); + dw_log_page_header((PageHeader)dw_block); + continue; + } + dw_log_recovery_page(DW_LOG_LEVEL, "DW page fine", flush_item.buf_tag); + + reln = smgropen(flush_item.buf_tag.rnode, InvalidBackendId, GetColumnNum(flush_item.buf_tag.forkNum)); + + /* read data page */ + if (!dw_read_data_page(flush_item.buf_tag, reln, data_block)) { + continue; + } + dw_log_page_header((PageHeader)data_block); + if (!dw_verify_pg_checksum((PageHeader)data_block, flush_item.buf_tag.blockNum, false) || + XLByteLT(PageGetLSN(data_block), PageGetLSN(dw_block))) { + memset_s(dw_block + pghr->pd_lower, sizeof(dw_first_flush_item), 0, sizeof(dw_first_flush_item)); + securec_check(rc, "\0", "\0"); + dw_set_pg_checksum(dw_block, flush_item.buf_tag.blockNum); + + if (IsSegmentPhysicalRelNode(flush_item.buf_tag.rnode)) { + // seg_space must be initialized before. + seg_physical_write(reln->seg_space, flush_item.buf_tag.rnode, flush_item.buf_tag.forkNum, + flush_item.buf_tag.blockNum, (const char *)dw_block, false); + } else { + smgrwrite(reln, flush_item.buf_tag.forkNum, flush_item.buf_tag.blockNum, + (const char *)dw_block, false); + } + dw_log_recovery_page(LOG, "Date page recovered", flush_item.buf_tag); + dw_log_page_header((PageHeader)data_block); + } + } + + pfree(unaligned_buf); + pfree(data_block); +} + +static bool dw_read_data_page(BufferTag buf_tag, SMgrRelation reln, char* data_block) { - SMgrRelation relation; BlockNumber blk_num; + + if (IsSegmentPhysicalRelNode(buf_tag.rnode)) { + SMgrOpenSpace(reln); + if (reln->seg_space == NULL) { + dw_log_recovery_page(WARNING, "Segment data file deleted", buf_tag); + return false; + } + if (spc_size(reln->seg_space, buf_tag.rnode.relNode, buf_tag.forkNum) <= buf_tag.blockNum) { + dw_log_recovery_page(WARNING, "Segment data page deleted", buf_tag); + return false; + } + seg_physical_read(reln->seg_space, buf_tag.rnode, buf_tag.forkNum, buf_tag.blockNum, + (char *)data_block); + } else { + if (!smgrexists(reln, buf_tag.forkNum, buf_tag.blockNum)) { + dw_log_recovery_page(WARNING, "Data file deleted", buf_tag); + return false; + } + blk_num = smgrnblocks(reln, buf_tag.forkNum); + if (blk_num <= buf_tag.blockNum) { + dw_log_recovery_page(WARNING, "Data page deleted", buf_tag); + return false; + } + /* read data page */ + smgrread(reln, buf_tag.forkNum, buf_tag.blockNum, data_block); + } + return true; +} + +static void dw_recovery_second_version_page() +{ + knl_g_dw_context* single_cxt = &g_instance.dw_single_cxt; + dw_single_flush_item *item = NULL; + uint16 rec_num = 0; + dw_file_head_t *file_head = single_cxt->second_file_head; + char *buf = single_cxt->buf; + uint64 second_offset = DW_SECOND_BUFTAG_START_IDX * BLCKSZ; + + item = (dw_single_flush_item*)palloc0(sizeof(dw_single_flush_item) * DW_SECOND_DATA_PAGE_NUM); + + /* read all buffer tag item, need skip head page */ + dw_pread_file(single_cxt->fd, buf, DW_SECOND_BUFTAG_PAGE_NUM * BLCKSZ, second_offset); + + uint64 offset = 0; + dw_single_flush_item *temp = NULL; + for (uint16 i = single_cxt->second_file_head->start; i < DW_SECOND_DATA_PAGE_NUM; i++) { + offset = i * sizeof(dw_single_flush_item); + temp = (dw_single_flush_item*)((char*)buf + offset); + if (dw_verify_item(temp, file_head->head.dwn)) { + item[rec_num].data_page_idx = temp->data_page_idx; + item[rec_num].dwn = temp->dwn; + item[rec_num].buf_tag = temp->buf_tag; + item[rec_num].crc = temp->crc; + rec_num++; + } + } + ereport(LOG, (errmodule(MOD_DW), errmsg("[second version] DW single flush file valid item num is %d.", rec_num))); + if (rec_num > 0) { + qsort(item, rec_num, sizeof(dw_single_flush_item), buftag_compare); + ereport(LOG, (errmodule(MOD_DW), + errmsg("[second version] DW single flush file valid buftag item qsort finish."))); + dw_recovery_single_page(item, rec_num); + } + + pfree(item); +} + +static void dw_recovery_old_single_dw_page() +{ + knl_g_dw_context* single_cxt = &g_instance.dw_single_cxt; + dw_single_flush_item *item = NULL; + dw_file_head_t *file_head = single_cxt->recovery_buf.file_head; + uint16 blk_num = DW_SINGLE_DIRTY_PAGE_NUM / SINGLE_BLOCK_TAG_NUM; + char *buf = single_cxt->recovery_buf.buf; + uint16 rec_num = 0; + + item = (dw_single_flush_item*)palloc0(sizeof(dw_single_flush_item) * DW_SINGLE_DIRTY_PAGE_NUM); + + /* read all buffer tag item, need skip head page */ + dw_pread_file(single_cxt->fd, buf, blk_num * BLCKSZ, BLCKSZ); + int offset = 0; + dw_single_flush_item *temp = NULL; + for (int i = 0; i < DW_SINGLE_DIRTY_PAGE_NUM; i++) { + offset = i * sizeof(dw_single_flush_item); + temp = (dw_single_flush_item*)((char*)buf + offset); + if (dw_verify_item(temp, file_head->head.dwn)) { + item[rec_num].data_page_idx = temp->data_page_idx; + item[rec_num].dwn = temp->dwn; + item[rec_num].buf_tag = temp->buf_tag; + item[rec_num].crc = temp->crc; + rec_num++; + } + } + + ereport(LOG, (errmodule(MOD_DW), errmsg("[old version] DW single flush file valid item num is %d.", rec_num))); + if (rec_num > 0) { + qsort(item, rec_num, sizeof(dw_single_flush_item), buftag_compare); + ereport(LOG, (errmodule(MOD_DW), errmsg("DW single flush file valid buftag item qsort finish."))); + dw_recovery_single_page(item, rec_num); + } + + pfree(item); +} + +void dw_recovery_single_page(const dw_single_flush_item *item, uint16 item_num) +{ + SMgrRelation reln; uint32 offset = 0; BufferTag buf_tag; knl_g_dw_context* single_cxt = &g_instance.dw_single_cxt; char *unaligned_buf = (char *)palloc0(BLCKSZ + BLCKSZ); /* one more BLCKSZ for alignment */ char *dw_block = (char *)TYPEALIGN(BLCKSZ, unaligned_buf); char *data_block = (char *)palloc0(BLCKSZ); + uint64 base_offset = 0; + + if (single_cxt->file_head->dw_version == DW_SUPPORT_NEW_SINGLE_FLUSH) { + base_offset = 1 + DW_FIRST_DATA_PAGE_NUM + 1 + DW_SECOND_BUFTAG_PAGE_NUM; + } else { + base_offset = DW_SINGLE_BUFTAG_PAGE_NUM + 1; + } for (uint16 i = 0; i < item_num; i++) { buf_tag = item[i].buf_tag; - relation = smgropen(buf_tag.rnode, InvalidBackendId, GetColumnNum(buf_tag.forkNum)); - - if (IsSegmentPhysicalRelNode(buf_tag.rnode)) { - SMgrOpenSpace(relation); - if (relation->seg_space == NULL) { - dw_log_recovery_page(WARNING, "Segment data file deleted", buf_tag); - continue; - } - if (spc_size(relation->seg_space, buf_tag.rnode.relNode, buf_tag.forkNum) <= buf_tag.blockNum) { - dw_log_recovery_page(WARNING, "Segment data page deleted", buf_tag); - continue; - } - seg_physical_read(relation->seg_space, buf_tag.rnode, buf_tag.forkNum, buf_tag.blockNum, - (char *)data_block); - } else { - if (!smgrexists(relation, buf_tag.forkNum, buf_tag.blockNum)) { - dw_log_recovery_page(WARNING, "Data file deleted", buf_tag); - continue; - } - blk_num = smgrnblocks(relation, buf_tag.forkNum); - if (blk_num <= buf_tag.blockNum) { - dw_log_recovery_page(WARNING, "Data page deleted", buf_tag); - continue; - } - /* read data page */ - smgrread(relation, buf_tag.forkNum, buf_tag.blockNum, data_block); - } /* read dw file page */ - offset = (DW_SINGLE_BUFTAG_PAGE_NUM + 1 + item[i].data_page_idx) * BLCKSZ; + offset = (base_offset + item[i].data_page_idx) * BLCKSZ; dw_pread_file(single_cxt->fd, dw_block, BLCKSZ, offset); - if (!dw_verify_pg_checksum((PageHeader)dw_block, buf_tag.blockNum)) { + if (!dw_verify_pg_checksum((PageHeader)dw_block, buf_tag.blockNum, true)) { dw_log_recovery_page(WARNING, "DW single page broken", buf_tag); dw_log_page_header((PageHeader)dw_block); continue; } dw_log_recovery_page(DW_LOG_LEVEL, "DW page fine", buf_tag); + + reln = smgropen(buf_tag.rnode, InvalidBackendId, GetColumnNum(buf_tag.forkNum)); + + /* read data page */ + if (!dw_read_data_page(buf_tag, reln, data_block)) { + continue; + } dw_log_page_header((PageHeader)data_block); - if (!dw_verify_pg_checksum((PageHeader)data_block, buf_tag.blockNum) || + if (!dw_verify_pg_checksum((PageHeader)data_block, buf_tag.blockNum, false) || XLByteLT(PageGetLSN(data_block), PageGetLSN(dw_block))) { if (IsSegmentPhysicalRelNode(buf_tag.rnode)) { // seg_space must be initialized before. - seg_physical_write(relation->seg_space, buf_tag.rnode, buf_tag.forkNum, buf_tag.blockNum, + seg_physical_write(reln->seg_space, buf_tag.rnode, buf_tag.forkNum, buf_tag.blockNum, (const char *)dw_block, false); } else { - smgrwrite(relation, buf_tag.forkNum, buf_tag.blockNum, (const char *)dw_block, false); + smgrwrite(reln, buf_tag.forkNum, buf_tag.blockNum, (const char *)dw_block, false); } dw_log_recovery_page(LOG, "Date page recovered", buf_tag); dw_log_page_header((PageHeader)data_block); @@ -2079,66 +2352,45 @@ void dw_recovery_page_single(const dw_single_flush_item *item, uint16 item_num) static void dw_recovery_partial_write_single() { - dw_single_flush_item *item = (dw_single_flush_item*)palloc0(sizeof(dw_single_flush_item) * - DW_SINGLE_DIRTY_PAGE_NUM); knl_g_dw_context* single_cxt = &g_instance.dw_single_cxt; - uint16 batch_size = SINGLE_BLOCK_TAG_NUM; - dw_file_head_t *file_head = single_cxt->file_head; - uint16 blk_num = (DW_SINGLE_DIRTY_PAGE_NUM / batch_size) + (DW_SINGLE_DIRTY_PAGE_NUM % batch_size == 0 ? 0 : 1); - char *buf = single_cxt->buf; - /* read all buffer tag item, need skip head page */ - dw_pread_file(single_cxt->fd, buf, blk_num * BLCKSZ, BLCKSZ); - uint16 rec_num = 0; - int offset = 0; - dw_single_flush_item *temp = NULL; - for (int i = 0; i < blk_num; i++) { - for (int j = i * batch_size; j < (i + 1) * batch_size; j++) { - offset = BLCKSZ * i + j % SINGLE_BLOCK_TAG_NUM * sizeof(dw_single_flush_item); - temp = (dw_single_flush_item*)((char*)buf + offset); - if (dw_verify_item(temp, file_head->head.dwn)) { - item[rec_num].data_page_idx = temp->data_page_idx; - item[rec_num].dwn = temp->dwn; - item[rec_num].buf_tag = temp->buf_tag; - item[rec_num].crc = temp->crc; - rec_num++; - } - } + if (single_cxt->file_head->dw_version == DW_SUPPORT_NEW_SINGLE_FLUSH) { + dw_recovery_first_version_page(); + dw_recovery_second_version_page(); + } else { + dw_recovery_old_single_dw_page(); } - ereport(LOG, (errmodule(MOD_DW), errmsg("DW single flush file valid page num is %d.", rec_num))); - if (rec_num > 0) { - qsort(item, rec_num, sizeof(dw_single_flush_item), buftag_compare); - ereport(LOG, (errmodule(MOD_DW), errmsg("DW single flush file valid page qsort finish."))); - dw_recovery_page_single(item, rec_num); - } ereport(LOG, (errmodule(MOD_DW), errmsg("DW single flush file recovery finish."))); - pfree(item); + /* reset the file after the recovery is complete */ + dw_force_reset_single_file(single_cxt->file_head->dw_version); return; } /* * If the dw is enable, and the pagewriter thread is running, indicates that the device is not in the initialization - * phase, when the version num smaller than DW_SUPPORT_SINGLE_FLUSH_VERSION, not support the + * phase, when the version num smaller than DW_SUPPORT_NEW_SINGLE_FLUSH, not support the * backend thread flush dirty page. */ bool backend_can_flush_dirty_page() { - if (dw_enabled() && pg_atomic_read_u32(&g_instance.ckpt_cxt_ctl->current_page_writer_count) > 0 && - (t_thrd.proc->workingVersionNum < DW_SUPPORT_SINGLE_FLUSH_VERSION)) { + if (dw_enabled() && pg_atomic_read_u32(&g_instance.ckpt_cxt_ctl->current_page_writer_count) > 0 && + (t_thrd.proc->workingVersionNum < DW_SUPPORT_NEW_SINGLE_FLUSH || + pg_atomic_read_u32(&g_instance.dw_single_cxt.dw_version) < DW_SUPPORT_NEW_SINGLE_FLUSH)) { Assert(g_instance.dw_single_cxt.closed == 0); return false; } + return true; } - void init_proc_dw_buf() { MemoryContext oldContext = MemoryContextSwitchTo(INSTANCE_GET_MEM_CXT_GROUP(MEMORY_CONTEXT_STORAGE)); t_thrd.proc->dw_unaligned_buf = (char*)palloc0(BLCKSZ + BLCKSZ); t_thrd.proc->dw_buf = (char *)TYPEALIGN(BLCKSZ, t_thrd.proc->dw_unaligned_buf); + t_thrd.proc->flush_new_dw = true; t_thrd.proc->dw_pos = -1; (void)MemoryContextSwitchTo(oldContext); } @@ -2147,8 +2399,13 @@ void reset_dw_pos_flag() { if (t_thrd.proc->dw_pos != -1) { uint16 pos = t_thrd.proc->dw_pos; - Assert(pos >= 0 && pos < DW_SINGLE_DIRTY_PAGE_NUM); - g_instance.dw_single_cxt.single_flush_state[pos].data_flush = true; + if (t_thrd.proc->flush_new_dw) { + Assert(pos >= 0 && pos < DW_FIRST_DATA_PAGE_NUM + DW_SECOND_DATA_PAGE_NUM); + g_instance.dw_single_cxt.single_flush_state[pos] = true; + } else { + Assert(pos >= 0 && pos < DW_SINGLE_DIRTY_PAGE_NUM); + g_instance.dw_single_cxt.recovery_buf.single_flush_state[pos] = true; + } t_thrd.proc->dw_pos = -1; } } diff --git a/src/gausskernel/storage/access/transam/extreme_rto/dispatcher.cpp b/src/gausskernel/storage/access/transam/extreme_rto/dispatcher.cpp index 0be957f9b..e7f8577a1 100755 --- a/src/gausskernel/storage/access/transam/extreme_rto/dispatcher.cpp +++ b/src/gausskernel/storage/access/transam/extreme_rto/dispatcher.cpp @@ -32,8 +32,8 @@ #include "access/xact.h" #include "access/xlog_internal.h" #include "access/nbtree.h" -#include "access/hash_xlog.h" #include "access/ubtree.h" +#include "access/hash_xlog.h" #include "access/xlogreader.h" #include "access/gist_private.h" #include "access/multixact.h" @@ -1157,7 +1157,6 @@ static bool DispatchCLogRecord(XLogReaderState *record, List *expectedTLIs, Time static bool DispatchHashRecord(XLogReaderState *record, List *expectedTLIs, TimestampTz recordXTime) { bool isNeedFullSync = false; - /* index not support mvcc, so we need to sync with trx thread when the record is vacuum */ if (IsHashVacuumPages(record) && g_supportHotStandby) { GetSlotIds(record, ANY_WORKER, true); @@ -1168,7 +1167,6 @@ static bool DispatchHashRecord(XLogReaderState *record, List *expectedTLIs, Time } else { DispatchRecordWithPages(record, expectedTLIs, true); } - return isNeedFullSync; } diff --git a/src/gausskernel/storage/access/transam/extreme_rto/page_redo.cpp b/src/gausskernel/storage/access/transam/extreme_rto/page_redo.cpp index fd83c6ce9..e9d0839b5 100755 --- a/src/gausskernel/storage/access/transam/extreme_rto/page_redo.cpp +++ b/src/gausskernel/storage/access/transam/extreme_rto/page_redo.cpp @@ -53,6 +53,7 @@ #include "utils/guc.h" #include "utils/palloc.h" #include "portability/instr_time.h" +#include "postmaster/startup.h" #include "catalog/storage.h" #include @@ -185,7 +186,7 @@ PageRedoWorker *CreateWorker(uint32 id) worker->initialTimeLineID = t_thrd.xlog_cxt.ThisTimeLineID; worker->expectedTLIs = t_thrd.xlog_cxt.expectedTLIs; worker->recoveryTargetTLI = t_thrd.xlog_cxt.recoveryTargetTLI; - + worker->recoveryRestoreCommand = t_thrd.xlog_cxt.recoveryRestoreCommand; worker->ArchiveRecoveryRequested = t_thrd.xlog_cxt.ArchiveRecoveryRequested; worker->StandbyModeRequested = t_thrd.xlog_cxt.StandbyModeRequested; worker->InArchiveRecovery = t_thrd.xlog_cxt.InArchiveRecovery; @@ -2035,6 +2036,22 @@ void XLogReadManagerResponseSignal(uint32 tgigger) case TRIGGER_PRIMARY: break; case TRIGGER_FAILOVER: + if (t_thrd.xlog_cxt.is_cascade_standby) { + SendPostmasterSignal(PMSIGNAL_UPDATE_PROMOTING); + t_thrd.xlog_cxt.is_cascade_standby = false; + if (t_thrd.postmaster_cxt.HaShmData->is_cross_region) { + t_thrd.xlog_cxt.is_hadr_main_standby = true; + SpinLockAcquire(&t_thrd.postmaster_cxt.HaShmData->mutex); + t_thrd.postmaster_cxt.HaShmData->is_hadr_main_standby = true; + SpinLockRelease(&t_thrd.postmaster_cxt.HaShmData->mutex); + } + t_thrd.xlog_cxt.failover_triggered = false; + SendNotifySignal(NOTIFY_STANDBY, g_instance.pid_cxt.StartupPID); + SendPostmasterSignal(PMSIGNAL_UPDATE_NORMAL); + ereport(LOG, (errmodule(MOD_REDO), errcode(ERRCODE_LOG), + errmsg("failover standby ready, notify postmaster to change state."))); + break; + } t_thrd.xlog_cxt.failover_triggered = true; SendPostmasterSignal(PMSIGNAL_UPDATE_PROMOTING); ereport(LOG, (errmodule(MOD_REDO), errcode(ERRCODE_LOG), @@ -2078,6 +2095,20 @@ void WaitPageReadWorkerExit() } while (state != WORKER_STATE_EXIT); } +static void HandleExtremeRtoCascadeStandbyPromote(uint32 trigger) +{ + if (!t_thrd.xlog_cxt.is_cascade_standby || t_thrd.xlog_cxt.server_mode != STANDBY_MODE || + !IS_DN_MULTI_STANDYS_MODE()) { + return; + } + + ShutdownWalRcv(); + pg_atomic_write_u32(&g_dispatcher->rtoXlogBufState.waitRedoDone, 1); + WakeupRecovery(); + XLogReadManagerResponseSignal(trigger); + pg_atomic_write_u32(&(extreme_rto::g_startupTriggerState), TRIGGER_NORMAL); +} + bool XLogReadManagerCheckSignal() { uint32 trigger = pg_atomic_read_u32(&(extreme_rto::g_startupTriggerState)); @@ -2088,6 +2119,11 @@ bool XLogReadManagerCheckSignal() ereport(LOG, (errmodule(MOD_REDO), errcode(ERRCODE_LOG), errmsg("XLogReadManagerCheckSignal: smartShutdown:%u, trigger:%u, server_mode:%u", g_dispatcher->smartShutdown, trigger, t_thrd.xlog_cxt.server_mode))); + if (t_thrd.xlog_cxt.is_cascade_standby && t_thrd.xlog_cxt.server_mode == STANDBY_MODE && + IS_DN_MULTI_STANDYS_MODE() && (trigger == TRIGGER_SWITCHOVER || trigger == TRIGGER_FAILOVER)) { + HandleExtremeRtoCascadeStandbyPromote(trigger); + return false; + } ShutdownWalRcv(); if (g_dispatcher->smartShutdown) { pg_atomic_write_u32(&g_readManagerTriggerFlag, TRIGGER_SMARTSHUTDOWN); @@ -2102,10 +2138,52 @@ bool XLogReadManagerCheckSignal() return false; } +void StartRequestXLogFromStream() +{ + volatile WalRcvData *walrcv = t_thrd.walreceiverfuncs_cxt.WalRcv; + XLogRecPtr expectLsn = pg_atomic_read_u64(&g_dispatcher->rtoXlogBufState.expectLsn); + if (walrcv->receivedUpto == InvalidXLogRecPtr || + (expectLsn != InvalidXLogRecPtr && XLByteLE(walrcv->receivedUpto, expectLsn))) { + uint32 readWorkerstate = pg_atomic_read_u32(&(g_recordbuffer->readWorkerState)); + if (readWorkerstate == WORKER_STATE_RUN) { + pg_atomic_write_u32(&(g_recordbuffer->readWorkerState), WORKER_STATE_STOPPING); + } + SpinLockAcquire(&walrcv->mutex); + walrcv->receivedUpto = 0; + SpinLockRelease(&walrcv->mutex); + XLogRecPtr targetRecPtr = pg_atomic_read_u64(&g_dispatcher->rtoXlogBufState.targetRecPtr); + CheckMaxPageFlushLSN(targetRecPtr); + + uint32 shiftSize = 32; + if (IS_DISASTER_RECOVER_MODE) { + ereport(LOG, (errmsg("request xlog stream from obs at %X/%X.", (uint32)(targetRecPtr >> shiftSize), + (uint32)targetRecPtr))); + RequestXLogStreaming(&targetRecPtr, 0, REPCONNTARGET_OBS, 0); + } else if (IS_SHARED_STORAGE_STANBY_MODE && !IS_SHARED_STORAGE_MAIN_STANDBY_MODE) { +#ifndef ENABLE_MULTIPLE_NODES + rename_recovery_conf_for_roach(); +#endif + ereport(LOG, (errmsg("request xlog stream from shared storage at %X/%X.", + (uint32)(targetRecPtr >> shiftSize), + (uint32)targetRecPtr))); + RequestXLogStreaming(&targetRecPtr, 0, REPCONNTARGET_SHARED_STORAGE, 0); + } else { +#ifndef ENABLE_MULTIPLE_NODES + rename_recovery_conf_for_roach(); +#endif + ereport(LOG, (errmsg("request xlog stream at %X/%X.", (uint32)(targetRecPtr >> shiftSize), + (uint32)targetRecPtr))); + RequestXLogStreaming(&targetRecPtr, t_thrd.xlog_cxt.PrimaryConnInfo, REPCONNTARGET_PRIMARY, + u_sess->attr.attr_storage.PrimarySlotName); + } + } +} + + void XLogReadManagerMain() { - const long sleepShortTime = 50000L; - const long sleepLongTime = 500000L; + const long sleepShortTime = 100000L; + const long sleepLongTime = 1000000L; g_recordbuffer = &g_dispatcher->rtoXlogBufState; uint32 xlogReadManagerState = READ_MANAGER_RUN; @@ -2123,41 +2201,25 @@ void XLogReadManagerMain() uint32 readSource = pg_atomic_read_u32(&g_dispatcher->rtoXlogBufState.readSource); uint32 failSource = pg_atomic_read_u32(&g_dispatcher->rtoXlogBufState.failSource); if (readSource & XLOG_FROM_STREAM) { - if (!WalRcvInProgress() && g_instance.pid_cxt.WalReceiverPID == 0 && - !g_instance.comm_cxt.localinfo_cxt.need_disable_connection_node) { - volatile WalRcvData *walrcv = t_thrd.walreceiverfuncs_cxt.WalRcv; - XLogRecPtr expectLsn = pg_atomic_read_u64(&g_dispatcher->rtoXlogBufState.expectLsn); - if (walrcv->receivedUpto == InvalidXLogRecPtr || - (expectLsn != InvalidXLogRecPtr && XLByteLE(walrcv->receivedUpto, expectLsn))) { - uint32 readWorkerstate = pg_atomic_read_u32(&(g_recordbuffer->readWorkerState)); - if (readWorkerstate == WORKER_STATE_RUN) { - pg_atomic_write_u32(&(g_recordbuffer->readWorkerState), WORKER_STATE_STOPPING); - } - SpinLockAcquire(&walrcv->mutex); - walrcv->receivedUpto = 0; - SpinLockRelease(&walrcv->mutex); - XLogRecPtr targetRecPtr = pg_atomic_read_u64(&g_dispatcher->rtoXlogBufState.targetRecPtr); - CheckMaxPageFlushLSN(targetRecPtr); - - if (IS_DISASTER_RECOVER_MODE) { - ereport(LOG, (errmsg("request xlog stream from obs at %X/%X.", - (uint32)(targetRecPtr >> 32), - (uint32)targetRecPtr))); - RequestXLogStreaming(&targetRecPtr, 0, REPCONNTARGET_OBS, 0); - } else { - ereport(LOG, (errmsg("request xlog stream at %X/%X.", (uint32)(targetRecPtr >> 32), - (uint32)targetRecPtr))); - RequestXLogStreaming(&targetRecPtr, t_thrd.xlog_cxt.PrimaryConnInfo, REPCONNTARGET_PRIMARY, - u_sess->attr.attr_storage.PrimarySlotName); - } - } + uint32 disableConnectionNode = + pg_atomic_read_u32(&g_instance.comm_cxt.localinfo_cxt.need_disable_connection_node); + bool retryConnect = ((!disableConnectionNode) || (IS_SHARED_STORAGE_MODE && disableConnectionNode && + !knl_g_get_redo_finish_status() && + !pg_atomic_read_u32(&t_thrd.walreceiverfuncs_cxt.WalRcv->rcvDoneFromShareStorage))); + if (!WalRcvInProgress() && g_instance.pid_cxt.WalReceiverPID == 0 && retryConnect) { + StartRequestXLogFromStream(); } else { - if (g_instance.comm_cxt.localinfo_cxt.need_disable_connection_node) { + if (disableConnectionNode) { + if (IS_SHARED_STORAGE_MODE && WalRcvIsRunning()) { + ShutdownWalRcv(); + } + if (!WalRcvInProgress() && !knl_g_get_redo_finish_status()) { pg_atomic_write_u32(&g_dispatcher->rtoXlogBufState.waitRedoDone, 1); + WakeupRecovery(); pg_usleep(sleepLongTime); } else if (knl_g_get_redo_finish_status()) { - g_instance.comm_cxt.localinfo_cxt.need_disable_connection_node = false; + pg_atomic_write_u32(&g_instance.comm_cxt.localinfo_cxt.need_disable_connection_node, false); pg_usleep(sleepLongTime); } @@ -2380,7 +2442,7 @@ static void InitGlobals() g_redoWorker->proc = t_thrd.proc; t_thrd.storage_cxt.latestObservedXid = g_redoWorker->latestObservedXid; t_thrd.xlog_cxt.recoveryTargetTLI = g_redoWorker->recoveryTargetTLI; - + t_thrd.xlog_cxt.recoveryRestoreCommand= g_redoWorker->recoveryRestoreCommand; t_thrd.xlog_cxt.ArchiveRecoveryRequested = g_redoWorker->ArchiveRecoveryRequested; t_thrd.xlog_cxt.StandbyModeRequested = g_redoWorker->StandbyModeRequested; t_thrd.xlog_cxt.InArchiveRecovery = g_redoWorker->InArchiveRecovery; diff --git a/src/gausskernel/storage/access/transam/gtm_single.cpp b/src/gausskernel/storage/access/transam/gtm_single.cpp index d3355f693..f5bda990c 100644 --- a/src/gausskernel/storage/access/transam/gtm_single.cpp +++ b/src/gausskernel/storage/access/transam/gtm_single.cpp @@ -77,7 +77,7 @@ bool IsGTMConnected() return false; } -GtmHostIndex InitGTM(void) +GtmHostIndex InitGTM(bool useCache) { DISTRIBUTED_FEATURE_NOT_SUPPORTED(); return GTM_HOST_INVAILD; @@ -317,374 +317,4 @@ void SetGTMrwTimeout(int timeout) { return; } - -#else -void InitGTM(void) -{ - /* 256 bytes should be enough */ - char conn_str[256]; - int rc = 0; - - /* If this thread is postmaster itself, it contacts gtm identifying itself */ - if (!IsUnderPostmaster) { - GTM_PGXCNodeType remote_type = GTM_NODE_DEFAULT; - - if (IS_PGXC_COORDINATOR) - remote_type = GTM_NODE_COORDINATOR; - else if (IS_PGXC_DATANODE) - remote_type = GTM_NODE_DATANODE; - - rc = sprintf_s(conn_str, sizeof(conn_str), "host=%s port=%d node_name=%s remote_type=%d postmaster=1", GtmHost, - GtmPort, PGXCNodeName, remote_type); - securec_check_ss(rc, "", ""); - - /* Log activity of GTM connections */ - elog(DEBUG1, "Postmaster: connection established to GTM with string %s", conn_str); - } else { - rc = sprintf_s(conn_str, sizeof(conn_str), "host=%s port=%d node_name=%s", GtmHost, GtmPort, PGXCNodeName); - securec_check_ss(rc, "", ""); - - /* Log activity of GTM connections */ - if (IsAutoVacuumWorkerProcess()) - elog(DEBUG1, "Autovacuum worker: connection established to GTM with string %s", conn_str); - else if (IsAutoVacuumLauncherProcess()) - elog(DEBUG1, "Autovacuum launcher: connection established to GTM with string %s", conn_str); - else - elog(DEBUG1, "Postmaster child: connection established to GTM with string %s", conn_str); - } - - conn = PQconnectGTM(conn_str); - if (GTMPQstatus(conn) != CONNECTION_OK) { - int save_errno = errno; - - ereport(WARNING, (errcode(ERRCODE_CONNECTION_EXCEPTION), errmsg("can not connect to GTM: %m"))); - - errno = save_errno; - - CloseGTM(); - } -} - -void CloseGTM(void) -{ - GTMPQfinish(conn); - conn = NULL; - - /* Log activity of GTM connections */ - if (!IsUnderPostmaster) - elog(DEBUG1, "Postmaster: connection to GTM closed"); - else if (IsAutoVacuumWorkerProcess()) - elog(DEBUG1, "Autovacuum worker: connection to GTM closed"); - else if (IsAutoVacuumLauncherProcess()) - elog(DEBUG1, "Autovacuum launcher: connection to GTM closed"); - else - elog(DEBUG1, "Postmaster child: connection to GTM closed"); -} - -GlobalTransactionId BeginTranGTM(GTM_Timestamp *timestamp) -{ - GlobalTransactionId xid = InvalidGlobalTransactionId; - - CheckConnection(); - if (conn) - xid = begin_transaction(conn, GTM_ISOLATION_RC, timestamp); - - /* If something went wrong (timeout), try and reset GTM connection - * and retry. This is safe at the beginning of a transaction. - */ - if (!TransactionIdIsValid(xid)) { - CloseGTM(); - InitGTM(); - if (conn) - xid = begin_transaction(conn, GTM_ISOLATION_RC, timestamp); - } - currentGxid = xid; - return xid; -} - -GlobalTransactionId BeginTranAutovacuumGTM(void) -{ - GlobalTransactionId xid = InvalidGlobalTransactionId; - - CheckConnection(); - if (conn) - xid = begin_transaction_autovacuum(conn, GTM_ISOLATION_RC); - - /* - * If something went wrong (timeout), try and reset GTM connection and retry. - * This is safe at the beginning of a transaction. - */ - if (!TransactionIdIsValid(xid)) { - CloseGTM(); - InitGTM(); - if (conn) - xid = begin_transaction_autovacuum(conn, GTM_ISOLATION_RC); - } - currentGxid = xid; - return xid; -} - -int CommitTranGTM(GlobalTransactionId gxid) -{ - int ret; - - if (!GlobalTransactionIdIsValid(gxid)) - return 0; - CheckConnection(); - ret = commit_transaction(conn, gxid); - /* - * If something went wrong (timeout), try and reset GTM connection. - * We will close the transaction locally anyway, and closing GTM will force - * it to be closed on GTM. - */ - if (ret < 0) { - CloseGTM(); - InitGTM(); - } - - /* Close connection in case commit is done by autovacuum worker or launcher */ - if (IsAutoVacuumWorkerProcess() || IsAutoVacuumLauncherProcess()) - CloseGTM(); - - currentGxid = InvalidGlobalTransactionId; - return ret; -} - -/* - * For a prepared transaction, commit the gxid used for PREPARE TRANSACTION - * and for COMMIT PREPARED. - */ -int CommitPreparedTranGTM(GlobalTransactionId gxid, GlobalTransactionId prepared_gxid) -{ - int ret = 0; - - if (!GlobalTransactionIdIsValid(gxid) || !GlobalTransactionIdIsValid(prepared_gxid)) - return ret; - CheckConnection(); - ret = commit_prepared_transaction(conn, gxid, prepared_gxid); - /* - * If something went wrong (timeout), try and reset GTM connection. - * We will close the transaction locally anyway, and closing GTM will force - * it to be closed on GTM. - */ - if (ret < 0) { - CloseGTM(); - InitGTM(); - } - currentGxid = InvalidGlobalTransactionId; - return ret; -} - -int RollbackTranGTM(GlobalTransactionId gxid) -{ - int ret = -1; - - if (!GlobalTransactionIdIsValid(gxid)) - return 0; - CheckConnection(); - - if (conn) - ret = abort_transaction(conn, gxid); - - /* - * If something went wrong (timeout), try and reset GTM connection. - * We will abort the transaction locally anyway, and closing GTM will force - * it to end on GTM. - */ - if (ret < 0) { - CloseGTM(); - InitGTM(); - } - - currentGxid = InvalidGlobalTransactionId; - return ret; -} - -int StartPreparedTranGTM(GlobalTransactionId gxid, char *gid, char *nodestring) -{ - int ret = 0; - - if (!GlobalTransactionIdIsValid(gxid)) - return 0; - CheckConnection(); - - ret = start_prepared_transaction(conn, gxid, gid, nodestring); - /* - * If something went wrong (timeout), try and reset GTM connection. - * We will abort the transaction locally anyway, and closing GTM will force - * it to end on GTM. - */ - if (ret < 0) { - CloseGTM(); - InitGTM(); - } - - return ret; -} - -int PrepareTranGTM(GlobalTransactionId gxid) -{ - int ret; - - if (!GlobalTransactionIdIsValid(gxid)) - return 0; - CheckConnection(); - ret = prepare_transaction(conn, gxid); - /* - * If something went wrong (timeout), try and reset GTM connection. - * We will close the transaction locally anyway, and closing GTM will force - * it to be closed on GTM. - */ - if (ret < 0) { - CloseGTM(); - InitGTM(); - } - currentGxid = InvalidGlobalTransactionId; - return ret; -} - -int GetGIDDataGTM(char *gid, GlobalTransactionId *gxid, GlobalTransactionId *prepared_gxid, char **nodestring) -{ - int ret = 0; - - CheckConnection(); - ret = get_gid_data(conn, GTM_ISOLATION_RC, gid, gxid, prepared_gxid, nodestring); - /* - * If something went wrong (timeout), try and reset GTM connection. - * We will abort the transaction locally anyway, and closing GTM will force - * it to end on GTM. - */ - if (ret < 0) { - CloseGTM(); - InitGTM(); - } - - return ret; -} - -GTM_Snapshot GetSnapshotGTM(GlobalTransactionId gxid, bool canbe_grouped) -{ - GTM_Snapshot ret_snapshot = NULL; - CheckConnection(); - if (conn) - ret_snapshot = get_snapshot(conn, gxid, canbe_grouped); - if (ret_snapshot == NULL) { - CloseGTM(); - InitGTM(); - } - return ret_snapshot; -} - -/* - * Create a sequence on the GTM. - */ -int CreateSequenceGTM(char *seqname, GTM_Sequence increment, GTM_Sequence minval, GTM_Sequence maxval, - GTM_Sequence startval, bool cycle) -{ - GTM_SequenceKeyData seqkey; - CheckConnection(); - seqkey.gsk_keylen = strlen(seqname) + 1; - seqkey.gsk_key = seqname; - - return conn ? open_sequence(conn, &seqkey, increment, minval, maxval, startval, cycle) : 0; -} - -/* - * Alter a sequence on the GTM - */ -int AlterSequenceGTM(char *seqname, GTM_Sequence increment, GTM_Sequence minval, GTM_Sequence maxval, - GTM_Sequence startval, GTM_Sequence lastval, bool cycle, bool is_restart) -{ - GTM_SequenceKeyData seqkey; - CheckConnection(); - seqkey.gsk_keylen = strlen(seqname) + 1; - seqkey.gsk_key = seqname; - - return conn ? alter_sequence(conn, &seqkey, increment, minval, maxval, startval, lastval, cycle, is_restart) : 0; -} - -/* - * Get the next sequence value - */ -GTM_Sequence GetNextValGTM(char *seqname) -{ - GTM_Sequence ret = -1; - GTM_SequenceKeyData seqkey; - int status = GTM_RESULT_OK; - - CheckConnection(); - seqkey.gsk_keylen = strlen(seqname) + 1; - seqkey.gsk_key = seqname; - - if (conn) - status = get_next(conn, &seqkey, &ret); - if (status != GTM_RESULT_OK) { - CloseGTM(); - InitGTM(); - ereport(ERROR, (errcode(ERRCODE_INTERNAL_ERROR), errmsg("%s", GTMPQerrorMessage(conn)))); - } - return ret; -} - -/* - * Set values for sequence - */ -int SetValGTM(char *seqname, GTM_Sequence nextval, bool iscalled) -{ - GTM_SequenceKeyData seqkey; - CheckConnection(); - seqkey.gsk_keylen = strlen(seqname) + 1; - seqkey.gsk_key = seqname; - - return conn ? set_val(conn, &seqkey, nextval, iscalled) : -1; -} - -/* - * Drop the sequence depending the key type - * - * Type of Sequence name use in key; - * GTM_SEQ_FULL_NAME, full name of sequence - * GTM_SEQ_DB_NAME, DB name part of sequence key - */ -int DropSequenceGTM(char *name, GTM_SequenceKeyType type) -{ - GTM_SequenceKeyData seqkey; - CheckConnection(); - seqkey.gsk_keylen = strlen(name) + 1; - seqkey.gsk_key = name; - seqkey.gsk_type = type; - - return conn ? close_sequence(conn, &seqkey) : -1; -} - -/* - * Rename the sequence - */ -int RenameSequenceGTM(char *seqname, const char *newseqname) -{ - GTM_SequenceKeyData seqkey, newseqkey; - CheckConnection(); - seqkey.gsk_keylen = strlen(seqname) + 1; - seqkey.gsk_key = seqname; - newseqkey.gsk_keylen = strlen(newseqname) + 1; - newseqkey.gsk_key = (char *)newseqname; - - return conn ? rename_sequence(conn, &seqkey, &newseqkey) : -1; -} - -/* - * Report BARRIER - */ -int ReportBarrierGTM(char *barrier_id) -{ - if (!gtm_backup_barrier) - return GTM_RESULT_OK; - - CheckConnection(); - - if (!conn) - return EOF; - - return (report_barrier(conn, barrier_id)); -} #endif diff --git a/src/gausskernel/storage/access/transam/multixact.cpp b/src/gausskernel/storage/access/transam/multixact.cpp index e004bba99..0cf8168df 100644 --- a/src/gausskernel/storage/access/transam/multixact.cpp +++ b/src/gausskernel/storage/access/transam/multixact.cpp @@ -1279,7 +1279,7 @@ static const char *MXStatusToString(MultiXactStatus status) static char *mxid_to_string(MultiXactId multi, int nmembers, MultiXactMember *members) { - char *str = NULL; + static char *str = NULL; StringInfoData buf; int i; @@ -1296,7 +1296,7 @@ static char *mxid_to_string(MultiXactId multi, int nmembers, MultiXactMember *me } appendStringInfoChar(&buf, ']'); - str = MemoryContextStrdup(SESS_GET_MEM_CXT_GROUP(MEMORY_CONTEXT_EXECUTOR), buf.data); + str = MemoryContextStrdup(TopMemoryContext, buf.data); pfree(buf.data); return str; } @@ -1675,9 +1675,9 @@ void CheckPointMultiXact(void) int flush_num; /* Flush dirty MultiXact pages to disk */ flush_num = SimpleLruFlush(t_thrd.shemem_ptr_cxt.MultiXactOffsetCtl, true); - g_instance.ckpt_cxt_ctl->ckpt_multixact_flush_num += flush_num; + g_instance.ckpt_cxt_ctl->ckpt_view.ckpt_multixact_flush_num += flush_num; flush_num = SimpleLruFlush(t_thrd.shemem_ptr_cxt.MultiXactMemberCtl, true); - g_instance.ckpt_cxt_ctl->ckpt_multixact_flush_num += flush_num; + g_instance.ckpt_cxt_ctl->ckpt_view.ckpt_multixact_flush_num += flush_num; #ifdef ENABLE_MULTIPLE_NODES /* @@ -1989,7 +1989,7 @@ void TruncateMultiXact(MultiXactId oldestMXact) /* Save the current nextOffset too */ nextOffset = t_thrd.shemem_ptr_cxt.MultiXactState->nextOffset; - + LWLockRelease(MultiXactGenLock); ereport(DEBUG2, (errmsg("MultiXact: truncation point = %lu", oldestMXact))); @@ -2135,7 +2135,7 @@ XLogRecParseState *multixact_xlog_mem_parse_to_block(XLogReaderState *record, ui XLogRecParseState *recordstatehead) { uint64 pageno; - MultiXactOffset offset; + MultiXactOffset offset = 0; MultiXactOffset startoffset = 0; uint64 prev_pageno; int continuenum = 0; diff --git a/src/gausskernel/storage/access/transam/parallel_recovery/dispatcher.cpp b/src/gausskernel/storage/access/transam/parallel_recovery/dispatcher.cpp index 7d8664171..67f133e29 100755 --- a/src/gausskernel/storage/access/transam/parallel_recovery/dispatcher.cpp +++ b/src/gausskernel/storage/access/transam/parallel_recovery/dispatcher.cpp @@ -31,8 +31,8 @@ #include "access/xact.h" #include "access/xlog_internal.h" #include "access/nbtree.h" -#include "access/ubtree.h" #include "access/hash_xlog.h" +#include "access/ubtree.h" #include "access/xlogreader.h" #include "access/gist_private.h" #include "access/multixact.h" @@ -161,6 +161,7 @@ static bool DispatchUHeapUndoRecord(XLogReaderState *record, List *expectedTLIs, static bool DispatchUndoActionRecord(XLogReaderState *record, List *expectedTLIs, TimestampTz recordXTime); static bool DispatchRollbackFinishRecord(XLogReaderState *record, List *expectedTLIs, TimestampTz recordXTime); static uint32 GetUndoSpaceWorkerId(int zid); +static void HandleStartupProcInterruptsForParallelRedo(void); RedoWaitInfo redo_get_io_event(int32 event_id); @@ -416,6 +417,7 @@ static void StartPageRedoWorkers(uint32 parallelism) g_dispatcher->chosedWorkerIds = (uint32 *)palloc(sizeof(uint32) * started); g_dispatcher->chosedWorkerCount = 0; + g_dispatcher->oldStartupIntrruptFunc = RegisterRedoInterruptCallBack(HandleStartupProcInterruptsForParallelRedo); } static void ResetChosedWorkerList() @@ -1701,6 +1703,7 @@ void SendRecoveryEndMarkToWorkersAndWaitForFinish(int code) errmsg("[REDO_LOG_TRACE]SendRecoveryEndMarkToWorkersAndWaitForFinish, disptach total elapsed: %lu," " txn elapsed: %lu, process pending record elapsed: %lu code: %d", g_dispatcher->totalCostTime, g_dispatcher->txnCostTime, g_dispatcher->pprCostTime, code))); + (void)RegisterRedoInterruptCallBack(g_dispatcher->oldStartupIntrruptFunc); } } @@ -2363,4 +2366,31 @@ static uint32 GetUndoSpaceWorkerId(int zid) return (tag_hash(&zid, sizeof(zid)) % workerCount); } } + +/* Handle SIGHUP and SIGTERM signals of startup process */ +static void HandleStartupProcInterruptsForParallelRedo(void) +{ + /* + * Check if we were requested to re-read config file. + */ + if (t_thrd.startup_cxt.got_SIGHUP) { + t_thrd.startup_cxt.got_SIGHUP = false; + ProcessConfigFile(PGC_SIGHUP); + SendSingalToPageWorker(SIGHUP); + } + + /* + * Check if we were requested to exit without finishing recovery. + */ + if (t_thrd.startup_cxt.shutdown_requested && SmartShutdown != g_instance.status) { + proc_exit(1); + } + + /* + * Emergency bailout if postmaster has died. This is to avoid the + * necessity for manual cleanup of all postmaster children. + */ + if (IsUnderPostmaster && !PostmasterIsAlive()) + gs_thread_exit(1); +} } diff --git a/src/gausskernel/storage/access/transam/seg_double_write.cpp b/src/gausskernel/storage/access/transam/seg_double_write.cpp new file mode 100644 index 000000000..af1a90a5c --- /dev/null +++ b/src/gausskernel/storage/access/transam/seg_double_write.cpp @@ -0,0 +1,333 @@ +/* + * Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors + * + * openGauss is licensed under Mulan PSL v2. + * You can use this software according to the terms and conditions of the Mulan PSL v2. + * You may obtain a copy of Mulan PSL v2 at: + * + * http://license.coscl.org.cn/MulanPSL2 + * + * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, + * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, + * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + * See the Mulan PSL v2 for more details. + * --------------------------------------------------------------------------------------- + * + * double_write.cpp + * Before flush dirty pages to data file, flush them to double write file, + * in case of half-flushed pages. Recover those half-flushed data file pages + * before replaying xlog when starting. + * + * IDENTIFICATION + * src/gausskernel/storage/access/transam/seg_double_write.cpp + * + * --------------------------------------------------------------------------------------- + */ +#include +#include "utils/elog.h" +#include "access/double_write.h" +#include "utils/palloc.h" + +#ifdef ENABLE_UT +#define static +#endif + +static void dw_empty_buftag_page_old(uint16 org_start, uint16 max_idx) +{ + errno_t rc; + uint16 batch = org_start / SINGLE_BLOCK_TAG_NUM; /* calculate begin batch */ + uint16 batch_begin = org_start; + uint32 start_offset; + uint32 set_size; + uint16 max_batch_num = DW_SINGLE_DIRTY_PAGE_NUM / SINGLE_BLOCK_TAG_NUM; + knl_g_dw_context* dw_single_cxt = &g_instance.dw_single_cxt; + MemoryContext old_mem_cxt = MemoryContextSwitchTo(dw_single_cxt->mem_cxt); + char *unaligned_buf = (char *)palloc0(BLCKSZ + BLCKSZ); /* one more BLCKSZ for alignment */ + char *buf = (char *)TYPEALIGN(BLCKSZ, unaligned_buf); + + for (int i = org_start; i < max_idx - org_start; i++) { + if (i >= SINGLE_BLOCK_TAG_NUM * (batch + 1)) { + uint32 tag_offset = (batch + 1) * BLCKSZ; /* need skip file head */ + dw_pread_file(dw_single_cxt->fd, buf, BLCKSZ, tag_offset); + start_offset = (batch_begin % SINGLE_BLOCK_TAG_NUM) * sizeof(dw_single_flush_item); + set_size = (i - batch_begin) * sizeof(dw_single_flush_item); + rc = memset_s(buf + start_offset, set_size, 0, set_size); + securec_check(rc, "\0", "\0"); + dw_pwrite_file(dw_single_cxt->fd, buf, BLCKSZ, tag_offset, SINGLE_DW_FILE_NAME); + batch++; + batch_begin = i; + } + + /* empty the last batch */ + if (batch >= max_batch_num - 1) { + uint32 tag_offset = (batch + 1) * BLCKSZ; /* need skip file head */ + dw_pread_file(dw_single_cxt->fd, buf, BLCKSZ, tag_offset); + start_offset = (batch_begin % SINGLE_BLOCK_TAG_NUM) * sizeof(dw_single_flush_item); + set_size = (max_idx - batch_begin) * sizeof(dw_single_flush_item); + rc = memset_s(buf + start_offset, set_size, 0, set_size); + securec_check(rc, "\0", "\0"); + dw_pwrite_file(dw_single_cxt->fd, buf, BLCKSZ, tag_offset, SINGLE_DW_FILE_NAME); + break; + } + } + + pfree(unaligned_buf); + MemoryContextSwitchTo(old_mem_cxt); + return; +} + +static uint16 get_max_single_write_pos_old() +{ + uint16 max_idx = 0; + uint16 i = 0; + knl_g_dw_context* single_cxt = &g_instance.dw_single_cxt; + dw_file_head_t *file_head = single_cxt->recovery_buf.file_head; + + for (i = file_head->start; i < single_cxt->recovery_buf.write_pos; i++) { + if (single_cxt->recovery_buf.single_flush_state[i] == false) { + break; + } + } + max_idx = i; + + return max_idx; +} + +void wait_all_single_dw_finish_flush_old() +{ + knl_g_dw_context* dw_single_cxt = &g_instance.dw_single_cxt; + dw_file_head_t *file_head = dw_single_cxt->recovery_buf.file_head; + + for (int i = file_head->start; i < dw_single_cxt->recovery_buf.write_pos; ) { + if (dw_single_cxt->recovery_buf.single_flush_state[i]) { + i++; + continue; + } else { + (void)sched_yield(); + } + } + return; +} + +bool dw_single_file_recycle_old(bool trunc_file) +{ + bool file_full = false; + uint16 max_idx = 0; + knl_g_dw_context* single_cxt = &g_instance.dw_single_cxt; + dw_file_head_t *file_head = single_cxt->recovery_buf.file_head; + volatile uint16 org_start = file_head->start; + volatile uint16 org_dwn = file_head->head.dwn; + uint16 end = single_cxt->recovery_buf.write_pos; + errno_t rc; + + Assert(g_instance.dw_single_cxt.dw_version == 0); + if (file_head->start != 0) { + if (end < file_head->start) { + file_full = end + 1 >= file_head->start; + } else { + file_full = false; + } + } else { + file_full = end + 1 >= DW_SINGLE_DIRTY_PAGE_NUM; + } + + if (!file_full && !trunc_file) { + return true; + } + + if (trunc_file) { + max_idx = get_max_single_write_pos_old(); + if (max_idx == file_head->start) { + LWLockRelease(single_cxt->second_flush_lock); + return false; + } + LWLockRelease(single_cxt->second_flush_lock); + } else { + /* reset start position and flush page num for full recycle */ + wait_all_single_dw_finish_flush_old(); + file_head->start = 0; + single_cxt->recovery_buf.write_pos = 0; + rc = memset_s(single_cxt->recovery_buf.single_flush_state, sizeof(bool) * DW_SINGLE_DIRTY_PAGE_NUM, + 0, sizeof(bool) * DW_SINGLE_DIRTY_PAGE_NUM); + securec_check(rc, "\0", "\0"); + } + + CheckPointSyncForDw(); + + if (trunc_file) { + if (!LWLockConditionalAcquire(single_cxt->second_flush_lock, LW_EXCLUSIVE)) { + ereport(LOG, (errmodule(MOD_DW), + errmsg("[single flush] can not get dw flush lock and skip dw truncate after sync for this time"))); + return false; + } else if (pg_atomic_read_u32(&g_instance.dw_single_cxt.dw_version) != 0 || + org_start != file_head->start || org_dwn != file_head->head.dwn) { + ereport(DW_LOG_LEVEL, (errmodule(MOD_DW), + errmsg("[single flush] Skip dw truncate after sync due to concurrent dw truncate/reset, or dw upgrade " + "original[dwn %hu, start %hu], current[dwn %hu, start %hu]", + org_dwn, org_start, file_head->head.dwn, file_head->start))); + return true; + } + } + + /* + * if truncate file and flush_page is not 0, the dwn can not plus, + * otherwise verify will failed when recovery the data form dw file. + */ + if (trunc_file) { + dw_empty_buftag_page_old(org_start, max_idx); + file_head->start = max_idx; + dw_prepare_file_head((char *)file_head, file_head->start, file_head->head.dwn); + } else { + dw_prepare_file_head((char *)file_head, file_head->start, file_head->head.dwn + 1); + } + + Assert(file_head->head.dwn == file_head->tail.dwn); + dw_pwrite_file(single_cxt->fd, file_head, BLCKSZ, 0, SINGLE_DW_FILE_NAME); + + ereport(LOG, (errmodule(MOD_DW), errmsg("Reset single flush DW file: file_head[dwn %hu, start %hu], " + "writer pos is %hu", file_head->head.dwn, file_head->start, single_cxt->write_pos))); + + if (trunc_file) { + (void)pg_atomic_add_fetch_u64(&single_cxt->single_stat_info.file_trunc_num, 1); + } else { + (void)pg_atomic_add_fetch_u64(&single_cxt->single_stat_info.file_reset_num, 1); + } + return true; +} + +void dw_single_old_file_truncate() +{ + knl_g_dw_context *cxt = &g_instance.dw_single_cxt; + + /* + * If we can grab dw flush lock, truncate dw file for faster recovery. + * + * Note: This is only for recovery optimization. we can not block on + * dw flush lock, because, if we are checkpointer, pagewriter may be + * waiting for us to finish smgrsync before it can do a full recycle of dw file. + */ + if (!LWLockConditionalAcquire(cxt->second_flush_lock, LW_EXCLUSIVE)) { + ereport(LOG, (errmodule(MOD_DW), + errmsg("[single flush] Can not get dw flush lock and skip dw truncate for this time"))); + return; + } + + /* hold the second version dw flush lock, check the dw version again */ + if (pg_atomic_read_u32(&g_instance.dw_single_cxt.dw_version) == 0) { + if (dw_single_file_recycle_old(true)) { + LWLockRelease(cxt->second_flush_lock); + } + } else { + LWLockRelease(cxt->second_flush_lock); + } +} + +uint16 dw_single_flush_internal_old(BufferTag tag, Block block, XLogRecPtr page_lsn, + BufferTag phy_tag, bool *dw_flush) +{ + errno_t rc; + uint16 actual_pos; + uint32 page_write_offset; + uint32 tag_write_offset; + uint16 block_offset; + dw_single_flush_item item; + knl_g_dw_context* dw_single_cxt = &g_instance.dw_single_cxt; + dw_file_head_t *file_head = dw_single_cxt->recovery_buf.file_head; + char *buf = t_thrd.proc->dw_buf; + + /* first step, copy buffer to dw buf, than flush page lsn, the buffer content lock is already held */ + rc = memcpy_s(buf, BLCKSZ, block, BLCKSZ); + securec_check(rc, "\0", "\0"); + + XLogWaitFlush(page_lsn); + + (void)LWLockAcquire(dw_single_cxt->second_flush_lock, LW_EXCLUSIVE); + /* recheck dw_version */ + if (pg_atomic_read_u32(&g_instance.dw_single_cxt.dw_version) == DW_SUPPORT_NEW_SINGLE_FLUSH) { + LWLockRelease(dw_single_cxt->second_flush_lock); + *dw_flush = false; + return 0; + } + + Assert(g_instance.dw_single_cxt.dw_version == 0); + (void)dw_single_file_recycle_old(false); + actual_pos = dw_single_cxt->recovery_buf.write_pos; + dw_single_cxt->recovery_buf.write_pos = (dw_single_cxt->recovery_buf.write_pos + 1) % DW_SINGLE_DIRTY_PAGE_NUM; + + /* data page need skip head page and bufferTag page, bufferTag page need skip head page */ + page_write_offset = (actual_pos + DW_SINGLE_BUFTAG_PAGE_NUM + 1) * BLCKSZ; + + item.data_page_idx = actual_pos; + item.dwn = file_head->head.dwn; + item.buf_tag = phy_tag; + dw_set_pg_checksum(buf, item.buf_tag.blockNum); + + /* Contents are protected with a CRC */ + INIT_CRC32C(item.crc); + COMP_CRC32C(item.crc, (char*)&item, offsetof(dw_single_flush_item, crc)); + FIN_CRC32C(item.crc); + + dw_pwrite_file(dw_single_cxt->fd, buf, BLCKSZ, page_write_offset, SINGLE_DW_FILE_NAME); + (void)pg_atomic_add_fetch_u64(&dw_single_cxt->single_stat_info.total_writes, 1); + + tag_write_offset = BLCKSZ + (actual_pos / SINGLE_BLOCK_TAG_NUM) * BLCKSZ; + block_offset = (actual_pos % SINGLE_BLOCK_TAG_NUM) * sizeof(dw_single_flush_item); + Assert(block_offset <= BLCKSZ - sizeof(dw_single_flush_item)); + + dw_pread_file(dw_single_cxt->fd, buf, BLCKSZ, tag_write_offset); + rc = memcpy_s(buf + block_offset, BLCKSZ - block_offset, &item, sizeof(dw_single_flush_item)); + securec_check(rc, "\0", "\0"); + dw_pwrite_file(dw_single_cxt->fd, buf, BLCKSZ, tag_write_offset, SINGLE_DW_FILE_NAME); + LWLockRelease(dw_single_cxt->second_flush_lock); + + (void)pg_atomic_add_fetch_u64(&dw_single_cxt->single_stat_info.total_writes, 1); + *dw_flush = true; + return actual_pos; +} + +/* + * Current, this function is only used by segment-page, which does not support TDE. If we want to support TDE, + * we could add additional parameter. + */ +uint16 seg_dw_single_flush_without_buffer(BufferTag tag, Block block, bool* flush_old_file) +{ + bool dw_flush = false; + uint16 pos = 0; + + if (pg_atomic_read_u32(&g_instance.dw_single_cxt.dw_version) == 0) { + pos = dw_single_flush_internal_old(tag, block, PageGetLSN(block), tag, &dw_flush); + *flush_old_file = true; + } + + if (!dw_flush) { + *flush_old_file = false; + pos = second_version_dw_single_flush(tag, block, PageGetLSN(block), false, tag); + } + return pos; +} + +uint16 seg_dw_single_flush(BufferDesc *buf_desc, bool* flush_old_file) +{ + bool dw_flush = false; + uint16 pos = 0; + BufferTag phy_tag = buf_desc->tag; + Block block = BufHdrGetBlock(buf_desc); + + uint32 buf_state = LockBufHdr(buf_desc); + XLogRecPtr page_lsn = BufferGetLSN(buf_desc); + UnlockBufHdr(buf_desc, buf_state); + + dw_transfer_phybuffer_addr(buf_desc, &phy_tag); + + if (pg_atomic_read_u32(&g_instance.dw_single_cxt.dw_version) == 0) { + pos = dw_single_flush_internal_old(buf_desc->tag, block, page_lsn, phy_tag, &dw_flush); + *flush_old_file = true; + } + + if (!dw_flush) { + *flush_old_file = false; + pos = second_version_dw_single_flush(buf_desc->tag, block, page_lsn, buf_desc->encrypt, phy_tag); + } + return pos; +} diff --git a/src/gausskernel/storage/access/transam/transam.cpp b/src/gausskernel/storage/access/transam/transam.cpp index 79b393638..936a5e9cb 100644 --- a/src/gausskernel/storage/access/transam/transam.cpp +++ b/src/gausskernel/storage/access/transam/transam.cpp @@ -399,6 +399,24 @@ bool TransactionIdDidCommit(TransactionId transactionId) /* true if given transa return false; } +/* + * For ustore, clog is truncated based on oldestXidInUndo. Therefore, we need to perform a quick check + * first. If the transaction is smaller than oldestXidInUndo, the transaction must be committed. + * + * true iff given transaction committed + */ +bool UHeapTransactionIdDidCommit(TransactionId transactionId) +{ + if (transactionId == FrozenTransactionId) { + return true; + } + if (TransactionIdIsNormal(transactionId) && + TransactionIdPrecedes(transactionId, pg_atomic_read_u64(&g_instance.proc_base->oldestXidInUndo))) { + return true; + } + return TransactionIdDidCommit(transactionId); +} + /* * TransactionIdDidAbort * True iff transaction associated with the identifier did abort. @@ -449,6 +467,27 @@ bool TransactionIdDidAbort(TransactionId transactionId) /* true if given transac return false; } +/* + * For ustore, clog is truncated based on oldestXidInUndo. Therefore, we need to perform a quick check + * first. If the transaction is smaller than oldestXidInUndo, the transaction must be committed. + * + * true iff given transaction aborted + */ +bool UHeapTransactionIdDidAbort(TransactionId transactionId) +{ + if (transactionId == FrozenTransactionId) { + return false; + } + TransactionId oldestXidInUndo = pg_atomic_read_u64(&g_instance.proc_base->oldestXidInUndo); + if (TransactionIdIsNormal(transactionId) && TransactionIdPrecedes(transactionId, oldestXidInUndo)) { + /* The transaction must be committed or rollback finish, not abort. */ + ereport(PANIC, (errmsg("The transaction cannot rollback, transactionId = %lu, oldestXidInUndo = %lu.", + transactionId, oldestXidInUndo))); + return false; + } + return TransactionIdDidAbort(transactionId); +} + /* * LatestFetchTransactionIdDidAbort * True iff transaction associated with the identifier did abort. diff --git a/src/gausskernel/storage/access/transam/twophase.cpp b/src/gausskernel/storage/access/transam/twophase.cpp index 293995fb9..477d53d7a 100644 --- a/src/gausskernel/storage/access/transam/twophase.cpp +++ b/src/gausskernel/storage/access/transam/twophase.cpp @@ -833,9 +833,7 @@ static void MarkAsPrepared(GlobalTransaction gxact, bool lock_held) } /* for left two phase transaction, need to sync when satisfyNow */ - if (lock_held) { - g_instance.proc_base_all_xacts[gxact->pgprocno].needToSyncXid |= SNAPSHOT_NOW_NEED_SYNC; - } + g_instance.proc_base_all_xacts[gxact->pgprocno].needToSyncXid |= SNAPSHOT_NOW_NEED_SYNC; /* * Put it into the global ProcArray so TransactionIdIsInProgress considers @@ -2447,10 +2445,11 @@ void FinishPreparedTransaction(const char *gid, bool isCommit) #ifdef ENABLE_MOT CallXactCallbacks(XACT_EVENT_COMMIT_PREPARED); #endif - t_thrd.pgxact->needToSyncXid |= SNAPSHOT_UPDATE_NEED_SYNC; + /* Set dummy proc need sync, not current work thread */ + pgxact->needToSyncXid |= SNAPSHOT_UPDATE_NEED_SYNC; - RecordTransactionCommitPrepared(xid, hdr->nsubxacts, children, hdr->ncommitrels - ndelrels_temp, - commitrels + ndelrels_temp, hdr->ninvalmsgs, invalmsgs, hdr->ncommitlibrarys, commitLibrary, + RecordTransactionCommitPrepared(xid, hdr->nsubxacts, children, hdr->ncommitrels, + commitrels, hdr->ninvalmsgs, invalmsgs, hdr->ncommitlibrarys, commitLibrary, commitLibraryLen, hdr->initfileinval); #ifdef ENABLE_MOT @@ -2462,8 +2461,8 @@ void FinishPreparedTransaction(const char *gid, bool isCommit) CallXactCallbacks(XACT_EVENT_ROLLBACK_PREPARED); #endif - RecordTransactionAbortPrepared(xid, hdr->nsubxacts, children, hdr->nabortrels- ndelrels_temp, - abortrels + ndelrels_temp, hdr->nabortlibrarys, abortLibrary, abortLibraryLen); + RecordTransactionAbortPrepared(xid, hdr->nsubxacts, children, hdr->nabortrels, + abortrels, hdr->nabortlibrarys, abortLibrary, abortLibraryLen); } ProcArrayRemove(proc, latestXid); @@ -2721,7 +2720,7 @@ void FinishPreparedTransaction(const char *gid, bool isCommit) } PredicateLockTwoPhaseFinish(xid, isCommit); - if (IS_PGXC_DATANODE) { + if (IS_PGXC_DATANODE || IsConnFromCoord()) { u_sess->storage_cxt.twoPhaseCommitInProgress = false; } @@ -2996,7 +2995,7 @@ void CheckPointTwoPhase(XLogRecPtr redo_horizon) TWOPAHSE_LWLOCK_RELEASE(j); } CloseTwoPhaseXlogFile(); - g_instance.ckpt_cxt_ctl->ckpt_twophase_flush_num += serialized_xacts; + g_instance.ckpt_cxt_ctl->ckpt_view.ckpt_twophase_flush_num += serialized_xacts; TRACE_POSTGRESQL_TWOPHASE_CHECKPOINT_DONE(); if (u_sess->attr.attr_common.log_checkpoints && serialized_xacts > 0) { diff --git a/src/gausskernel/storage/access/transam/xact.cpp b/src/gausskernel/storage/access/transam/xact.cpp index a74a386bc..f1be27eff 100755 --- a/src/gausskernel/storage/access/transam/xact.cpp +++ b/src/gausskernel/storage/access/transam/xact.cpp @@ -9,6 +9,7 @@ * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 2010-2012 Postgres-XC Development Group + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -475,7 +476,8 @@ bool IsStpInOuterSubTransaction() TransactionState s = CurrentTransactionState; if (s->blockState >= TBLOCK_SUBBEGIN && u_sess->SPI_cxt.is_stp - && s->nestingLevel > u_sess->SPI_cxt.portal_stp_exception_counter + 1) { + && s->nestingLevel > (u_sess->SPI_cxt.portal_stp_exception_counter + + u_sess->plsql_cxt.stp_savepoint_cnt + 1)) { return true; } return false; @@ -1478,8 +1480,10 @@ static void AtStart_Memory(void) t_thrd.xact_cxt.TransactionAbortContext = AllocSetContextCreate(t_thrd.top_mem_cxt, "TransactionAbortContext", 32 * 1024, 32 * 1024, 32 * 1024); +#ifndef ENABLE_PRIVATEGAUSS /* Set global variable context_array to NIL at beginning of a transaction */ u_sess->plsql_cxt.context_array = NIL; +#endif /* We shouldn't have a transaction context already. */ Assert(u_sess->top_transaction_mem_cxt == NULL); @@ -1619,7 +1623,7 @@ static TransactionId RecordTransactionCommit(void) XLogRecPtr commitRecLSN = InvalidXLogRecPtr; /* Get data needed for commit record */ - nrels = smgrGetPendingDeletes(true, &rels, true, &temp_nrels); + nrels = smgrGetPendingDeletes(true, &rels, false, &temp_nrels); nchildren = xactGetCommittedChildren(&children); if (XLogStandbyInfoActive()) nmsgs = xactGetCommittedInvalidationMessages(&invalMessages, &RelcacheInitFileInval); @@ -2068,7 +2072,7 @@ static void AtSubCommit_Memory(void) * there isn't actually anything in it, we can throw it away. This avoids * a small memory leak in the common case of "trivial" subxacts. */ - if (MemoryContextIsEmpty(s->curTransactionContext)) { + if (MemoryContextIsValid(s->curTransactionContext) && MemoryContextIsEmpty(s->curTransactionContext)) { MemoryContextDelete(s->curTransactionContext); s->curTransactionContext = NULL; } @@ -2226,7 +2230,7 @@ static TransactionId RecordTransactionAbort(bool isSubXact) errmsg("cannot abort transaction %lu, it was already committed", xid))); /* Fetch the data we need for the abort record */ - nrels = smgrGetPendingDeletes(false, &rels, true, &temp_nrels); + nrels = smgrGetPendingDeletes(false, &rels, false, &temp_nrels); nchildren = xactGetCommittedChildren(&children); if (bCanAbort) { @@ -2428,7 +2432,9 @@ static void AtCleanup_Memory(void) */ if (u_sess->top_transaction_mem_cxt != NULL) MemoryContextDelete(u_sess->top_transaction_mem_cxt); +#ifndef ENABLE_PRIVATEGAUSS u_sess->plsql_cxt.context_array = NIL; +#endif u_sess->top_transaction_mem_cxt = NULL; t_thrd.mem_cxt.cur_transaction_mem_cxt = NULL; @@ -2608,7 +2614,6 @@ static void StartTransaction(bool begin_on_gtm) s->maxChildXids = 0; GetUserIdAndSecContext(&s->prevUser, &s->prevSecContext); /* SecurityRestrictionContext should never be set outside a transaction */ - Assert(s->prevSecContext == 0); /* * set transaction_timestamp() (a/k/a now()). We want this to be the same @@ -2672,8 +2677,13 @@ static void StartTransaction(bool begin_on_gtm) #endif ResetBCMArray(); - /* Get node group status and save in cache */ - InitNodeGroupStatus(); + /* + * Get node group status and save in cache, + * if we are doing two phase commit, skip init cache. + */ + if (begin_on_gtm && !u_sess->storage_cxt.twoPhaseCommitInProgress) { + InitNodeGroupStatus(); + } /* done with start processing, set current transaction state to "in progress" */ s->state = TRANS_INPROGRESS; @@ -2774,9 +2784,11 @@ static void CommitTransaction(bool STP_commit) t_thrd.xact_cxt.handlesDestroyedInCancelQuery = false; ThreadLocalFlagCleanUp(); - /* release ref for spi's cachedplan */ if (!STP_commit) { + /* release ref for spi's cachedplan */ ReleaseSpiPlanRef(); + + XactResumeSPIContext(true); } /* When commit within nested store procedure, it will create a plan cache. @@ -3748,8 +3760,9 @@ static void PrepareTransaction(bool STP_commit) PostPrepare_Locks(xid); PostPrepare_PredicateLocks(xid); - if (IS_PGXC_DATANODE) + if (IS_PGXC_DATANODE || IsConnFromCoord()) { u_sess->storage_cxt.twoPhaseCommitInProgress = true; + } t_thrd.xact_cxt.needRemoveTwophaseState = false; ResourceOwnerRelease(t_thrd.utils_cxt.TopTransactionResourceOwner, RESOURCE_RELEASE_LOCKS, true, true); @@ -4001,9 +4014,11 @@ static void AbortTransaction(bool PerfectRollback, bool STP_rollback) ThreadLocalFlagCleanUp(); - /* release ref for spi's cachedplan */ if (!STP_rollback) { + /* release ref for spi's cachedplan */ ReleaseSpiPlanRef(); + + XactResumeSPIContext(true); } #ifdef PGXC /* @@ -4310,9 +4325,14 @@ static void CleanupTransaction(void) /* do abort cleanup processing */ AtCleanup_Portals(); /* now safe to release portal memory */ AtEOXact_Snapshot(false); /* and release the transaction's snapshots */ - pfree_ext(u_sess->xact_cxt.sendSeqDbName); - pfree_ext(u_sess->xact_cxt.sendSeqSchmaName); - pfree_ext(u_sess->xact_cxt.sendSeqName); + list_free_deep(u_sess->xact_cxt.sendSeqDbName); + list_free_deep(u_sess->xact_cxt.sendSeqSchmaName); + list_free_deep(u_sess->xact_cxt.sendSeqName); + list_free_deep(u_sess->xact_cxt.send_result); + u_sess->xact_cxt.sendSeqDbName = NULL; + u_sess->xact_cxt.sendSeqSchmaName = NULL; + u_sess->xact_cxt.sendSeqName = NULL; + u_sess->xact_cxt.send_result = NULL; t_thrd.utils_cxt.CurrentResourceOwner = NULL; /* and resource owner */ if (t_thrd.utils_cxt.TopTransactionResourceOwner) ResourceOwnerDelete(t_thrd.utils_cxt.TopTransactionResourceOwner); @@ -4478,28 +4498,20 @@ void CommitTransactionCommand(bool STP_commit) case TBLOCK_SUBINPROGRESS: CommandCounterIncrement(); - if (u_sess->SPI_cxt.portal_stp_exception_counter > 0) { - int subTransactionCounter = 0; + if (STP_commit || TopTransactionStateData.blockState == TBLOCK_STARTED) { Assert(!StreamThreadAmI()); do { MemoryContextSwitchTo(t_thrd.mem_cxt.cur_transaction_mem_cxt); CommitSubTransaction(STP_commit); s = CurrentTransactionState; /* changed by pop */ - subTransactionCounter++; -#ifdef ENABLE_MULTIPLE_NODES - if (IS_PGXC_COORDINATOR && !IsConnFromCoord()) { - /* CN should send release savepoint command to remote nodes for savepoint name reuse */ - HandleReleaseOrRollbackSavepoint("release s1", "s1", SUB_STMT_RELEASE); - pgxc_node_remote_savepoint("release s1", EXEC_ON_DATANODES, false, false); - } -#endif - }while (s->blockState == TBLOCK_SUBINPROGRESS); - - /* If we had a COMMIT command, finish off the main xact too */ - Assert(subTransactionCounter == u_sess->SPI_cxt.portal_stp_exception_counter); - t_thrd.utils_cxt.CurrentResourceOwner = t_thrd.utils_cxt.STPSavedResourceOwner; - CommitTransaction(STP_commit); - s->blockState = TBLOCK_DEFAULT; + } while (s->blockState == TBLOCK_SUBINPROGRESS); + if (STP_commit) { + /* If we had a COMMIT command, finish off the main xact too */ + Assert(t_thrd.utils_cxt.STPSavedResourceOwner != NULL); + t_thrd.utils_cxt.CurrentResourceOwner = t_thrd.utils_cxt.STPSavedResourceOwner; + } + CommitTransaction(STP_commit); + s->blockState = TBLOCK_DEFAULT; } break; @@ -4538,7 +4550,7 @@ void CommitTransactionCommand(bool STP_commit) */ case TBLOCK_ABORT_PENDING: SetUndoActionsInfo(); - AbortTransaction(true); + AbortTransaction(true, STP_commit); ApplyUndoActions(); CleanupTransaction(); s->blockState = TBLOCK_DEFAULT; @@ -4560,12 +4572,6 @@ void CommitTransactionCommand(bool STP_commit) * state.) */ case TBLOCK_SUBBEGIN: - // Recording Portal's ResourceOwner for rebuilding resource chain - // when procedure contain transaction and exception statement. - // nestingLevel = 2: Top ResourceOwner -> Portal ResourceOwner (current). - if (CurrentTransactionState->nestingLevel == 2 && STP_commit) { - t_thrd.utils_cxt.STPSavedResourceOwner = t_thrd.utils_cxt.CurrentResourceOwner; - } StartSubTransaction(); s->blockState = TBLOCK_SUBINPROGRESS; break; @@ -4578,11 +4584,12 @@ void CommitTransactionCommand(bool STP_commit) */ case TBLOCK_SUBRELEASE: do { - CommitSubTransaction(); + CommitSubTransaction(STP_commit); s = CurrentTransactionState; /* changed by pop */ } while (s->blockState == TBLOCK_SUBRELEASE); - Assert(s->blockState == TBLOCK_INPROGRESS || s->blockState == TBLOCK_SUBINPROGRESS); + Assert(s->blockState == TBLOCK_INPROGRESS || s->blockState == TBLOCK_SUBINPROGRESS || + (s->blockState == TBLOCK_STARTED && STP_commit)); break; /* @@ -4606,17 +4613,17 @@ void CommitTransactionCommand(bool STP_commit) if (!IS_VALID_UNDO_REC_PTR(s->parent->first_urp[i])) s->parent->first_urp[i] = s->first_urp[i]; } - CommitSubTransaction(); + CommitSubTransaction(STP_commit); s = CurrentTransactionState; /* changed by pop */ } while (s->blockState == TBLOCK_SUBCOMMIT); /* If we had a COMMIT command, finish off the main xact too */ if (s->blockState == TBLOCK_END) { Assert(s->parent == NULL); - CommitTransaction(); + CommitTransaction(STP_commit); s->blockState = TBLOCK_DEFAULT; } else if (s->blockState == TBLOCK_PREPARE) { Assert(s->parent == NULL); - PrepareTransaction(); + PrepareTransaction(STP_commit); s->blockState = TBLOCK_DEFAULT; } else ereport(ERROR, @@ -4631,15 +4638,15 @@ void CommitTransactionCommand(bool STP_commit) */ case TBLOCK_SUBABORT_END: CleanupSubTransaction(); - CommitTransactionCommand(); + CommitTransactionCommand(STP_commit); break; /* As above, but it's not dead yet, so abort first. */ case TBLOCK_SUBABORT_PENDING: SetUndoActionsInfo(); - AbortSubTransaction(); + AbortSubTransaction(STP_commit); ApplyUndoActions(); - CleanupSubTransaction(); + CleanupSubTransaction(STP_commit); if (t_thrd.xact_cxt.handlesDestroyedInCancelQuery) { ereport( WARNING, @@ -4647,7 +4654,7 @@ void CommitTransactionCommand(bool STP_commit) "Transaction aborted as connection handles were destroyed due to clean up stream failed."))); AbortOutOfAnyTransaction(true); } else - CommitTransactionCommand(); + CommitTransactionCommand(STP_commit); break; /* @@ -4665,15 +4672,21 @@ void CommitTransactionCommand(bool STP_commit) savepointLevel = s->savepointLevel; SetUndoActionsInfo(); - AbortSubTransaction(); + AbortSubTransaction(STP_commit); ApplyUndoActions(); - CleanupSubTransaction(); + CleanupSubTransaction(STP_commit); if (t_thrd.xact_cxt.handlesDestroyedInCancelQuery) { ereport( WARNING, (errmsg( "Transaction aborted as connection handles were destroyed due to clean up stream failed."))); AbortOutOfAnyTransaction(true); + } else if (STP_commit) { + BeginInternalSubTransaction(NULL); + + s = CurrentTransactionState; /* changed by push */ + s->name = name; + s->savepointLevel = savepointLevel; } else { DefineSavepoint(NULL); s = CurrentTransactionState; /* changed by push */ @@ -4702,15 +4715,22 @@ void CommitTransactionCommand(bool STP_commit) CleanupSubTransaction(); - DefineSavepoint(NULL); - s = CurrentTransactionState; /* changed by push */ - s->name = name; - s->savepointLevel = savepointLevel; + if (STP_commit) { + BeginInternalSubTransaction(NULL); + s = CurrentTransactionState; /* changed by push */ + s->name = name; + s->savepointLevel = savepointLevel; + } else { + DefineSavepoint(NULL); + s = CurrentTransactionState; /* changed by push */ + s->name = name; + s->savepointLevel = savepointLevel; - /* This is the same as TBLOCK_SUBBEGIN case */ - AssertState(s->blockState == TBLOCK_SUBBEGIN); - StartSubTransaction(); - s->blockState = TBLOCK_SUBINPROGRESS; + /* This is the same as TBLOCK_SUBBEGIN case */ + AssertState(s->blockState == TBLOCK_SUBBEGIN); + StartSubTransaction(); + s->blockState = TBLOCK_SUBINPROGRESS; + } } break; default: ereport(FATAL, @@ -4858,18 +4878,15 @@ void AbortCurrentTransaction(bool STP_rollback) * we get ROLLBACK. */ case TBLOCK_SUBINPROGRESS: - if (u_sess->SPI_cxt.portal_stp_exception_counter > 0) { - int subTransactionCounter = 0; + if (STP_rollback || TopTransactionStateData.blockState == TBLOCK_STARTED) { do { AbortSubTransaction(STP_rollback); ApplyUndoActions(); s->blockState = TBLOCK_SUBABORT; - CleanupSubTransaction(); + CleanupSubTransaction(STP_rollback); s = CurrentTransactionState; - subTransactionCounter++; } while(s->blockState == TBLOCK_SUBINPROGRESS); - Assert(subTransactionCounter == u_sess->SPI_cxt.portal_stp_exception_counter); if (s->state == TRANS_START) { s->state = TRANS_INPROGRESS; } @@ -4878,7 +4895,7 @@ void AbortCurrentTransaction(bool STP_rollback) CleanupTransaction(); s->blockState = TBLOCK_DEFAULT; } else { - AbortSubTransaction(); + AbortSubTransaction(STP_rollback); ApplyUndoActions(); s->blockState = TBLOCK_SUBABORT; } @@ -4902,9 +4919,9 @@ void AbortCurrentTransaction(bool STP_rollback) case TBLOCK_SUBCOMMIT: case TBLOCK_SUBABORT_PENDING: case TBLOCK_SUBRESTART: - AbortSubTransaction(); + AbortSubTransaction(STP_rollback); ApplyUndoActions(); - CleanupSubTransaction(); + CleanupSubTransaction(STP_rollback); if (t_thrd.xact_cxt.handlesDestroyedInCancelQuery) { ereport( WARNING, @@ -4912,14 +4929,14 @@ void AbortCurrentTransaction(bool STP_rollback) "Transaction aborted as connection handles were destroyed due to clean up stream failed."))); AbortOutOfAnyTransaction(true); } else - AbortCurrentTransaction(); + AbortCurrentTransaction(STP_rollback); break; /* Same as above, except the Abort() was already done. */ case TBLOCK_SUBABORT_END: case TBLOCK_SUBABORT_RESTART: CleanupSubTransaction(); - AbortCurrentTransaction(); + AbortCurrentTransaction(STP_rollback); break; default: ereport(FATAL, (errcode(ERRCODE_INVALID_TRANSACTION_STATE), @@ -5699,43 +5716,40 @@ void DefineSavepoint(const char *name) } } -/* - * ReleaseSavepoint - * This executes a RELEASE command. - * - * As above, we don't actually do anything here except change blockState. - */ -void ReleaseSavepoint(List *options) +static TransactionState FindTargetSavepoint(const char* name, bool inSTP) { -#ifdef ENABLE_DISTRIBUTE_TEST - if (IS_PGXC_COORDINATOR && !IsConnFromCoord()) { - if (TEST_STUB(CN_RELEASESAVEPOINT_BEFORE_LOCAL_DEAL_FAILED, twophase_default_error_emit)) { - ereport(g_instance.distribute_test_param_instance->elevel, - (errmsg("SUBXACT_TEST %s: cn release savepoint before local deal failed.", - g_instance.attr.attr_common.PGXCNodeName))); - } - } else { - if (TEST_STUB(DN_RELEASESAVEPOINT_BEFORE_LOCAL_DEAL_FAILED, twophase_default_error_emit)) { - ereport(g_instance.distribute_test_param_instance->elevel, - (errmsg("SUBXACT_TEST %s:dn release savepoint before local deal failed.", - g_instance.attr.attr_common.PGXCNodeName))); + TransactionState s = CurrentTransactionState; + TransactionState target; + + Assert(PointerIsValid(name) || inSTP); + for (target = s; PointerIsValid(target); target = target->parent) { + if (!PointerIsValid(target->name) && !PointerIsValid(name)) { + /* internal savepoint for exception */ + Assert(s != &TopTransactionStateData && inSTP); + break; + } else if (PointerIsValid(target->name) && PointerIsValid(name)) { + /* user defined savepoint */ + if (strcmp(target->name, name) == 0) { + break; + } } } -#endif + if (!PointerIsValid(target)) { + ereport(ERROR, (errcode(ERRCODE_S_E_INVALID_SPECIFICATION), errmsg("no such savepoint"))); + } + + /* disallow crossing savepoint level boundaries */ + if (target->savepointLevel != s->savepointLevel) { + ereport(ERROR, (errcode(ERRCODE_S_E_INVALID_SPECIFICATION), errmsg("no such savepoint"))); + } + + return target; +} + +static void CheckReleaseSavepointBlockState(bool inSTP) +{ TransactionState s = CurrentTransactionState; - TransactionState target, xact; - - char *name = NULL; - errno_t rc; - - UndoRecPtr latestUrecPtr[UNDO_PERSISTENCE_LEVELS]; - UndoRecPtr startUrecPtr[UNDO_PERSISTENCE_LEVELS]; - - rc = memcpy_s(latestUrecPtr, sizeof(latestUrecPtr), s->latest_urp, sizeof(latestUrecPtr)); - securec_check(rc, "\0", "\0"); - rc = memcpy_s(startUrecPtr, sizeof(startUrecPtr), s->first_urp, sizeof(startUrecPtr)); - securec_check(rc, "\0", "\0"); switch (s->blockState) { /* @@ -5753,9 +5767,11 @@ void ReleaseSavepoint(List *options) case TBLOCK_SUBINPROGRESS: break; + case TBLOCK_STARTED: + if (inSTP) + break; /* These cases are invalid. */ case TBLOCK_DEFAULT: - case TBLOCK_STARTED: case TBLOCK_BEGIN: case TBLOCK_SUBBEGIN: case TBLOCK_END: @@ -5775,35 +5791,68 @@ void ReleaseSavepoint(List *options) errmsg("ReleaseSavepoint: unexpected state %s", BlockStateAsString(s->blockState)))); break; } +} - name = GetSavepointName(options); - - Assert(PointerIsValid(name)); - - for (target = s; PointerIsValid(target); target = target->parent) { - if (PointerIsValid(target->name) && strcmp(target->name, name) == 0) { - break; +/* + * ReleaseSavepoint + * This executes a RELEASE command. + * + * As above, we don't actually do anything here except change blockState. + */ +void ReleaseSavepoint(const char* name, bool inSTP) +{ +#ifdef ENABLE_DISTRIBUTE_TEST + if (IS_PGXC_COORDINATOR && !IsConnFromCoord()) { + if (TEST_STUB(CN_RELEASESAVEPOINT_BEFORE_LOCAL_DEAL_FAILED, twophase_default_error_emit)) { + ereport(g_instance.distribute_test_param_instance->elevel, + (errmsg("SUBXACT_TEST %s: cn release savepoint before local deal failed.", + g_instance.attr.attr_common.PGXCNodeName))); + } + } else { + if (TEST_STUB(DN_RELEASESAVEPOINT_BEFORE_LOCAL_DEAL_FAILED, twophase_default_error_emit)) { + ereport(g_instance.distribute_test_param_instance->elevel, + (errmsg("SUBXACT_TEST %s:dn release savepoint before local deal failed.", + g_instance.attr.attr_common.PGXCNodeName))); } } +#endif - if (!PointerIsValid(target)) { - ereport(ERROR, (errcode(ERRCODE_S_E_INVALID_SPECIFICATION), errmsg("no such savepoint"))); - } + /* check expected state. */ + CheckReleaseSavepointBlockState(inSTP); - /* disallow crossing savepoint level boundaries */ - if (target->savepointLevel != s->savepointLevel) { - ereport(ERROR, (errcode(ERRCODE_S_E_INVALID_SPECIFICATION), errmsg("no such savepoint"))); - } + TransactionState target = FindTargetSavepoint(name, inSTP); /* * Mark "commit pending" all subtransactions up to the target * subtransaction. The actual commits will happen when control gets to * CommitTransactionCommand. */ - xact = CurrentTransactionState; + TransactionState xact = CurrentTransactionState; + errno_t rc; + UndoRecPtr latestUrecPtr[UNDO_PERSISTENCE_LEVELS]; + UndoRecPtr startUrecPtr[UNDO_PERSISTENCE_LEVELS]; + + rc = memcpy_s(latestUrecPtr, sizeof(latestUrecPtr), xact->latest_urp, sizeof(latestUrecPtr)); + securec_check(rc, "\0", "\0"); + rc = memcpy_s(startUrecPtr, sizeof(startUrecPtr), xact->first_urp, sizeof(startUrecPtr)); + + securec_check(rc, "\0", "\0"); for (;;) { Assert(xact->blockState == TBLOCK_SUBINPROGRESS); xact->blockState = TBLOCK_SUBRELEASE; + + /* + * User savepoint is dropped automatically, dont take PL exception's one + * into consideration. + */ + if (inSTP) { + if (PointerIsValid(xact->name) && u_sess->plsql_cxt.stp_savepoint_cnt > 0) { + u_sess->plsql_cxt.stp_savepoint_cnt--; + } else if (!PointerIsValid(xact->name) && u_sess->SPI_cxt.portal_stp_exception_counter > 0) { + u_sess->SPI_cxt.portal_stp_exception_counter--; + } + } + if (xact == target) { break; } @@ -5835,36 +5884,30 @@ void ReleaseSavepoint(List *options) } } -/* - * RollbackToSavepoint - * This executes a ROLLBACK TO command. - * - * As above, we don't actually do anything here except change blockState. - */ -void RollbackToSavepoint(List *options) +static void CheckRollbackSavepointBlockState(bool inSTP) { TransactionState s = CurrentTransactionState; - TransactionState target, xact; - char *name = NULL; switch (s->blockState) { - /* - * We can't rollback to a savepoint if there is no savepoint - * defined. - */ + /* + * We can't rollback to a savepoint if there is no savepoint + * defined. + */ case TBLOCK_INPROGRESS: case TBLOCK_ABORT: ereport(ERROR, (errcode(ERRCODE_S_E_INVALID_SPECIFICATION), errmsg("no such savepoint"))); break; - /* There is at least one savepoint, so proceed. */ + /* There is at least one savepoint, so proceed. */ case TBLOCK_SUBINPROGRESS: case TBLOCK_SUBABORT: break; - - /* These cases are invalid. */ - case TBLOCK_DEFAULT: case TBLOCK_STARTED: + if (inSTP) + break; + + /* These cases are invalid. */ + case TBLOCK_DEFAULT: case TBLOCK_BEGIN: case TBLOCK_SUBBEGIN: case TBLOCK_END: @@ -5882,32 +5925,27 @@ void RollbackToSavepoint(List *options) errmsg("RollbackToSavepoint: unexpected state %s", BlockStateAsString(s->blockState)))); break; } +} - name = GetSavepointName(options); +/* + * RollbackToSavepoint + * This executes a ROLLBACK TO command. + * + * As above, we don't actually do anything here except change blockState. + */ +void RollbackToSavepoint(const char* name, bool inSTP) +{ + /* check expected state. */ + CheckRollbackSavepointBlockState(inSTP); - Assert(PointerIsValid(name)); - - for (target = s; PointerIsValid(target); target = target->parent) { - if (PointerIsValid(target->name) && strcmp(target->name, name) == 0) { - break; - } - } - - if (!PointerIsValid(target)) { - ereport(ERROR, (errcode(ERRCODE_S_E_INVALID_SPECIFICATION), errmsg("no such savepoint"))); - } - - /* disallow crossing savepoint level boundaries */ - if (target->savepointLevel != s->savepointLevel) { - ereport(ERROR, (errcode(ERRCODE_S_E_INVALID_SPECIFICATION), errmsg("no such savepoint"))); - } + TransactionState target = FindTargetSavepoint(name, inSTP); /* * Mark "abort pending" all subtransactions up to the target * subtransaction. The actual aborts will happen when control gets to * CommitTransactionCommand. */ - xact = CurrentTransactionState; + TransactionState xact = CurrentTransactionState; for (;;) { if (xact == target) { break; @@ -5920,6 +5958,19 @@ void RollbackToSavepoint(List *options) ereport(FATAL, (errcode(ERRCODE_INVALID_TRANSACTION_STATE), errmsg("RollbackToSavepoint: unexpected state %s", BlockStateAsString(xact->blockState)))); } + + /* + * User savepoint is dropped automatically, dont take PL exception's one + * into consideration. + */ + if (inSTP) { + if (PointerIsValid(xact->name) && u_sess->plsql_cxt.stp_savepoint_cnt > 0) { + u_sess->plsql_cxt.stp_savepoint_cnt--; + } else if (!PointerIsValid(xact->name) && u_sess->SPI_cxt.portal_stp_exception_counter > 0) { + u_sess->SPI_cxt.portal_stp_exception_counter--; + } + } + xact = xact->parent; Assert(PointerIsValid(xact)); } @@ -5988,7 +6039,7 @@ void BeginInternalSubTransaction(const char *name) } CommitTransactionCommand(true); - StartTransactionCommand(); + StartTransactionCommand(true); } /* @@ -5996,7 +6047,7 @@ void BeginInternalSubTransaction(const char *name) * savepoint name (if any). * NB: do NOT use CommitTransactionCommand/StartTransactionCommand with this. */ -void ReleaseCurrentSubTransaction(void) +void ReleaseCurrentSubTransaction(bool inSTP) { TransactionState s = CurrentTransactionState; int i; @@ -6019,7 +6070,7 @@ void ReleaseCurrentSubTransaction(void) s->parent->first_urp[i] = s->first_urp[i]; } - CommitSubTransaction(); + CommitSubTransaction(inSTP); s = CurrentTransactionState; /* changed by pop */ Assert(s->state == TRANS_INPROGRESS); } @@ -6031,7 +6082,7 @@ void ReleaseCurrentSubTransaction(void) * of its savepoint name (if any). * NB: do NOT use CommitTransactionCommand/StartTransactionCommand with this. */ -void RollbackAndReleaseCurrentSubTransaction(void) +void RollbackAndReleaseCurrentSubTransaction(bool inSTP) { TransactionState s = CurrentTransactionState; @@ -6074,13 +6125,13 @@ void RollbackAndReleaseCurrentSubTransaction(void) /* Abort the current subtransaction, if needed. */ if (s->blockState == TBLOCK_SUBINPROGRESS) { - AbortSubTransaction(); + AbortSubTransaction(inSTP); } ApplyUndoActions(); /* And clean it up, too */ - CleanupSubTransaction(); + CleanupSubTransaction(inSTP); s = CurrentTransactionState; /* changed by pop */ AssertState(s->blockState == TBLOCK_SUBINPROGRESS || s->blockState == TBLOCK_INPROGRESS || @@ -6667,6 +6718,11 @@ static void CommitSubTransaction(bool STP_commit) ResourceOwnerRelease(s->curTransactionOwner, RESOURCE_RELEASE_LOCKS, true, false); ResourceOwnerRelease(s->curTransactionOwner, RESOURCE_RELEASE_AFTER_LOCKS, true, false); + /* reserve some related resource once any SPI have referenced it. */ + if (STP_commit) { + XactReserveSPIContext(); + } + AtEOXact_GUC(true, s->gucNestLevel); if(!STP_commit) { AtEOSubXact_SPI(true, s->subTransactionId, false, STP_commit); @@ -6689,8 +6745,10 @@ static void CommitSubTransaction(bool STP_commit) t_thrd.utils_cxt.CurrentResourceOwner = s->parent->curTransactionOwner; t_thrd.utils_cxt.CurTransactionResourceOwner = s->parent->curTransactionOwner; - ResourceOwnerDelete(s->curTransactionOwner); - s->curTransactionOwner = NULL; + if (s->curTransactionOwner != NULL) { + ResourceOwnerDelete(s->curTransactionOwner); + s->curTransactionOwner = NULL; + } AtCommit_RelationSync(); AtSubCommit_Memory(); @@ -6821,7 +6879,7 @@ void AbortSubTransaction(bool STP_rollback) } AfterTriggerEndSubXact(false); AtSubAbort_Portals(s->subTransactionId, s->parent->subTransactionId, s->curTransactionOwner, - s->parent->curTransactionOwner); + s->parent->curTransactionOwner, STP_rollback); AtEOSubXact_LargeObject(false, s->subTransactionId, s->parent->subTransactionId); AtSubAbort_Notify(); @@ -6883,7 +6941,7 @@ void AbortSubTransaction(bool STP_rollback) * The caller has to make sure to always reassign CurrentTransactionState * if it has a local pointer to it after calling this function. */ -void CleanupSubTransaction(void) +void CleanupSubTransaction(bool inSTP) { TransactionState s = CurrentTransactionState; @@ -6897,10 +6955,16 @@ void CleanupSubTransaction(void) t_thrd.utils_cxt.CurrentResourceOwner = s->parent->curTransactionOwner; t_thrd.utils_cxt.CurTransactionResourceOwner = s->parent->curTransactionOwner; - if (s->curTransactionOwner) { - ResourceOwnerDelete(s->curTransactionOwner); + + if (s->curTransactionOwner != NULL) { + if (inSTP) { + /* reserve ResourceOwner in STP running. */ + XactReserveSPIContext(); + } else { + ResourceOwnerDelete(s->curTransactionOwner); + s->curTransactionOwner = NULL; + } } - s->curTransactionOwner = NULL; AtSubCleanup_Memory(); @@ -8534,3 +8598,97 @@ CanPerformUndoActions(void) return s->perform_undo; } + +typedef struct { + ResourceOwner resowner; + void *next; +} XactContextItem; + +/* + * Reserve the necessary context in current transaction for SPI. + */ +void XactReserveSPIContext() +{ + TransactionState s = CurrentTransactionState; + + MemoryContext oldcxt = MemoryContextSwitchTo(SESS_GET_MEM_CXT_GROUP(MEMORY_CONTEXT_STORAGE)); + XactContextItem *item = (XactContextItem*)palloc(sizeof(XactContextItem)); + item->resowner = s->curTransactionOwner; + + ResourceOwnerNewParent(item->resowner, NULL); + ResourceOwnerMarkInvalid(item->resowner); + item->next = u_sess->plsql_cxt.spi_xact_context; + MemoryContextSwitchTo(oldcxt); + + u_sess->plsql_cxt.spi_xact_context = item; + s->curTransactionOwner = NULL; +} + +/* + * Restore the reserved context for SPI into CurrentTransaction. + */ +void XactResumeSPIContext(bool clean) +{ + while (u_sess->plsql_cxt.spi_xact_context != NULL) { + XactContextItem *item = (XactContextItem*)u_sess->plsql_cxt.spi_xact_context; + + if (clean) { + ResourceOwnerDelete(item->resowner); + } else { + ResourceOwnerNewParent(item->resowner, t_thrd.utils_cxt.CurrentResourceOwner); + } + + u_sess->plsql_cxt.spi_xact_context = item->next; + pfree(item); + } +} + +/* + * With longjump after ERROR, some resource, such as Snapshot, are not released as done by normal. + * Some cleanup are required for subtransactions inside PL exception block. + * + * head: the first subtransaction in this Exception block, cleanup is required for all after this. + * hasAbort: whether or not rollback has been done for the lastest subtransaction. + */ +void XactCleanExceptionSubTransaction(SubTransactionId head, bool hasAbort) +{ + TransactionState s = CurrentTransactionState; + + while (s->subTransactionId >= head && s->parent != NULL) { + /* reset cursor's attribute var */ + ResetPortalCursor(s->subTransactionId, InvalidOid, 0); + + AtSubAbort_Portals(s->subTransactionId, s->parent->subTransactionId, + s->curTransactionOwner, s->parent->curTransactionOwner, true); + + ResourceOwnerRelease(s->curTransactionOwner, RESOURCE_RELEASE_BEFORE_LOCKS, false, false); + ResourceOwnerRelease(s->curTransactionOwner, RESOURCE_RELEASE_AFTER_LOCKS, false, false); + + AtSubAbort_Snapshot(s->nestingLevel); + + s = s->parent; + } + + if (!hasAbort) { + AbortBufferIO(); + UnlockBuffers(); + LockErrorCleanup(); + + /* cancel and clear connection remaining data for connection reuse */ + if (IS_PGXC_COORDINATOR && !IsConnFromCoord()) { + SubXactCancel_Remote(); + } +#ifdef ENABLE_MULTIPLE_NODES + reset_handles_at_abort(); +#endif + } +} + +/* + * Get Current Transaction's name. + */ +char* GetCurrentTransactionName() +{ + return CurrentTransactionState->name; +} + diff --git a/src/gausskernel/storage/access/transam/xlog.cpp b/src/gausskernel/storage/access/transam/xlog.cpp index 6e94ac217..841468fbc 100755 --- a/src/gausskernel/storage/access/transam/xlog.cpp +++ b/src/gausskernel/storage/access/transam/xlog.cpp @@ -86,6 +86,7 @@ #include "replication/origin.h" #include "replication/reorderbuffer.h" #include "replication/replicainternal.h" +#include "replication/shared_storage_walreceiver.h" #include "replication/slot.h" #include "replication/snapbuild.h" #include "replication/syncrep.h" @@ -93,7 +94,7 @@ #include "replication/walsender_private.h" #include "replication/walsender.h" #include "replication/walprotocol.h" -#include "replication/obswalreceiver.h" +#include "replication/archive_walreceiver.h" #include "replication/dcf_replication.h" #include "storage/buf/bufmgr.h" #include "storage/smgr/fd.h" @@ -110,6 +111,8 @@ #include "storage/spin.h" #include "storage/smgr/relfilenode.h" #include "storage/lock/lwlock.h" +#include "storage/dorado_operation/dorado_fd.h" +#include "storage/xlog_share_storage/xlog_share_storage.h" #include "utils/builtins.h" #include "utils/elog.h" #include "utils/guc.h" @@ -134,7 +137,6 @@ /* just for libpqrcv_connect_for_TLI and ha_set_rebuild_connerror */ #include "replication/libpqwalreceiver.h" - /* Used for parallel recovery */ #include "access/redo_statistic.h" @@ -174,9 +176,10 @@ const int SIZE_OF_TWO_UINT64 = 16; const int XLOG_LSN_SWAP = 32; const char *DemoteModeDescs[] = { "unknown", "smart", "fast", "immediate" }; const int DemoteModeNum = sizeof(DemoteModeDescs) / sizeof(char *); +static const int g_retryTimes = 3; static const uint64 REDO_SPEED_LOG_LEN = (XLogSegSize * 64); /* 64 segs */ -static const int PG_TBLSPCS = 10; /* strlen(pg_tblspcs/) */ +static const int PG_TBLSPCS = 10; /* strlen(pg_tblspcs/) */ /* MAX_PAGE_FLUSH_LSN_FILE SIZE : 1024 pages, 8k each, file size 8M in total */ static const int MPFL_PAGE_NUM = NUM_MAX_PAGE_FLUSH_LSN_PARTITIONS; @@ -224,7 +227,7 @@ struct config_enum_entry sync_method_options[] = { XLogRecPtr latestValidRecord = InvalidXLogRecPtr; pg_crc32 latestRecordCrc = InvalidXLogRecPtr; - +uint32 latestRecordLen = 0; XLogSegNo XlogRemoveSegPrimary = InvalidXLogSegPtr; /* The nextXid and oldestXid in ShmemVariableCache when recovery done */ @@ -472,7 +475,7 @@ typedef struct XLogCtlData { XLogRecPtr cbmTrackedLSN; /* the bitmap file rotate lsn requested by outter */ volatile XLogRecPtr cbmMaxRequestRotateLsn; - /* curr cbm file name like pg_xlog_xx_xxxx_xxxx.cbm*/ + /* curr cbm file name like pg_xlog_xx_xxxx_xxxx.cbm */ XLogRecPtr currCbmFileStartLsn; /* if true, stale xlog segments are not recycled during checkpoint, for backup purpose */ @@ -524,10 +527,10 @@ void update_dirty_page_queue_rec_lsn(XLogRecPtr current_insert_lsn, bool need_im /* * Return the previous xlblock[i] mapped to the same page */ -#define X_LOG_PREV_BLOCK_IN_BUF_PAGE(recptr) \ - (((recptr) < (XLogRecPtr)(XLOG_BLCKSZ * (t_thrd.shemem_ptr_cxt.XLogCtl->XLogCacheBlck + 1))) ? \ - 0 : \ - (XLogRecPtr)((recptr)-XLOG_BLCKSZ * (t_thrd.shemem_ptr_cxt.XLogCtl->XLogCacheBlck + 1))) +#define X_LOG_PREV_BLOCK_IN_BUF_PAGE(recptr) \ + (((recptr) < (XLogRecPtr)(XLOG_BLCKSZ * (t_thrd.shemem_ptr_cxt.XLogCtl->XLogCacheBlck + 1))) \ + ? 0 \ + : (XLogRecPtr)((recptr)-XLOG_BLCKSZ * (t_thrd.shemem_ptr_cxt.XLogCtl->XLogCacheBlck + 1))) /* * These are the number of bytes in a WAL page and segment usable for WAL data. @@ -591,7 +594,7 @@ template static void AdvanceXLInsertBuffer(XLogRecPtr upto, bool opportunistic, PGPROC *proc = NULL); static bool XLogCheckpointNeeded(XLogSegNo new_segno); -static void XLogWrite(const XLogwrtRqst& WriteRqst, bool flexible); +static void XLogWrite(const XLogwrtRqst &WriteRqst, bool flexible); #ifndef ENABLE_MULTIPLE_NODES static bool XLogWritePaxos(XLogRecPtr WritePaxosRqst); #endif @@ -635,8 +638,9 @@ static void xlog_outrec(StringInfo buf, XLogReaderState *record); #endif static void pg_start_backup_callback(int code, Datum arg); static void AbortExcluseBackupCallback(int code, Datum arg); -static bool read_tablespace_map(List** tablespaces); -static bool read_backup_label(XLogRecPtr *checkPointLoc, bool *backupEndRequired, bool *backupFromStandby, bool *backupFromRoach); +static bool read_tablespace_map(List **tablespaces); +static bool read_backup_label(XLogRecPtr *checkPointLoc, bool *backupEndRequired, bool *backupFromStandby, + bool *backupFromRoach); static void check_roach_backup_condition(bool backup_started_in_recovery, const char *backupidstr); static int get_sync_bit(int method); static void ResetSlotLSNEndRecovery(StringInfo slotname); @@ -644,11 +648,11 @@ static void ShutdownReadFileFacility(void); static void SetDummyStandbyEndRecPtr(XLogReaderState *xlogreader); /* XLOG scaling: start */ -static void CopyXLogRecordToWAL(int write_len, bool isLogSwitch, XLogRecData* rdata, XLogRecPtr StartPos, - XLogRecPtr EndPos, int32 *const currlrc_ptr); -static void ReserveXLogInsertLocation(uint32 size, XLogRecPtr* StartPos, XLogRecPtr* EndPos, XLogRecPtr* PrevPtr, - int32 *const currlrc_ptr); -static bool ReserveXLogSwitch(XLogRecPtr* StartPos, XLogRecPtr* EndPos, XLogRecPtr* PrevPtr, bool isupgrade = false); +static void CopyXLogRecordToWAL(int write_len, bool isLogSwitch, XLogRecData *rdata, XLogRecPtr StartPos, + XLogRecPtr EndPos, int32 *const currlrc_ptr); +static void ReserveXLogInsertLocation(uint32 size, XLogRecPtr *StartPos, XLogRecPtr *EndPos, XLogRecPtr *PrevPtr, + int32 *const currlrc_ptr); +static bool ReserveXLogSwitch(XLogRecPtr *StartPos, XLogRecPtr *EndPos, XLogRecPtr *PrevPtr, bool isupgrade = false); static void StartSuspendWalInsert(int32 *const lastlrc_ptr); static void StopSuspendWalInsert(int32 lastlrc); @@ -668,17 +672,17 @@ void mpfl_new_file(); void mpfl_ulink_file(); bool mpfl_pread_file(int fd, void *buf, int32 size, int64 offset); int ParallelXLogPageRead(XLogReaderState *xlogreader, XLogRecPtr targetPagePtr, int reqLen, XLogRecPtr targetRecPtr, - TimeLineID *readTLI); + TimeLineID *readTLI); #ifdef __aarch64__ static XLogRecPtr XLogInsertRecordGroup(XLogRecData *rdata, XLogRecPtr fpw_lsn); static void XLogInsertRecordNolock(XLogRecData *rdata, PGPROC *proc, XLogRecPtr StartPos, XLogRecPtr EndPos, - XLogRecPtr PrevPos, int32 * const currlrc_ptr); -static void ReserveXLogInsertByteLocation(uint32 size, uint32 lastRecordSize, uint64* StartBytePos, uint64* EndBytePos, - uint64* PrevBytePos, int32 *const currlrc_ptr); + XLogRecPtr PrevPos, int32 *const currlrc_ptr); +static void ReserveXLogInsertByteLocation(uint32 size, uint32 lastRecordSize, uint64 *StartBytePos, uint64 *EndBytePos, + uint64 *PrevBytePos, int32 *const currlrc_ptr); static void CopyXLogRecordToWALForGroup(int write_len, XLogRecData *rdata, XLogRecPtr StartPos, XLogRecPtr EndPos, - PGPROC *proc, int32 * const currlrc_ptr); + PGPROC *proc, int32* const currlrc_ptr); static void WakeUpProc(uint32 wakeidx) { @@ -687,11 +691,12 @@ static void WakeUpProc(uint32 wakeidx) wakeidx = pg_atomic_read_u32(&proc->xlogGroupNext); pg_atomic_write_u32(&proc->xlogGroupNext, INVALID_PGPROCNO); - proc->xlogGroupMember = false; - /* ensure all previous writes are visible before follower continues. */ + /* ensure all previous writes are visible before xlogGroupMember is set. */ pg_memory_barrier(); + proc->xlogGroupMember = false; if (proc != t_thrd.proc) { + /* acts as memory barrier */ PGSemaphoreUnlock(&proc->sem); } } @@ -713,11 +718,10 @@ static void XLogInsertRecordGroupLeader(PGPROC *leader, uint64 *end_byte_pos_ptr * so reserving space for these xlog records is not needed. */ *leader->xlogGroupDoPageWrites = (t_thrd.shemem_ptr_cxt.XLogCtl->Insert.fullPageWrites || - t_thrd.shemem_ptr_cxt.XLogCtl->Insert.forcePageWrites); + t_thrd.shemem_ptr_cxt.XLogCtl->Insert.forcePageWrites); bool flag = (leader->xlogGroupfpw_lsn != InvalidXLogRecPtr) && - (leader->xlogGroupfpw_lsn <= *leader->xlogGroupRedoRecPtr) && - *leader->xlogGroupDoPageWrites; + (leader->xlogGroupfpw_lsn <= *leader->xlogGroupRedoRecPtr) && *leader->xlogGroupDoPageWrites; if (unlikely(flag)) { leader->xlogGroupReturntRecPtr = InvalidXLogRecPtr; leader->xlogGroupIsFPW = true; @@ -727,8 +731,8 @@ static void XLogInsertRecordGroupLeader(PGPROC *leader, uint64 *end_byte_pos_ptr Assert(record_size != 0); if (likely(record_size != 0)) { - ReserveXLogInsertByteLocation(record_size, record_size, &start_byte_pos, - &end_byte_pos, &prev_byte_pos, ¤t_lrc); + ReserveXLogInsertByteLocation(record_size, record_size, &start_byte_pos, &end_byte_pos, &prev_byte_pos, + ¤t_lrc); dirty_page_queue_lsn = start_byte_pos; } @@ -737,9 +741,10 @@ static void XLogInsertRecordGroupLeader(PGPROC *leader, uint64 *end_byte_pos_ptr leader->xlogGroupIsFPW = false; } else { XLogInsertRecordNolock(leader->xlogGrouprdata, leader, XLogBytePosToRecPtr(start_byte_pos), - XLogBytePosToEndRecPtr(start_byte_pos + - MAXALIGN(((XLogRecord *)(leader->xlogGrouprdata->data))->xl_tot_len)), - XLogBytePosToRecPtr(prev_byte_pos), ¤t_lrc); + XLogBytePosToEndRecPtr( + start_byte_pos + + MAXALIGN(((XLogRecord *)(leader->xlogGrouprdata->data))->xl_tot_len)), + XLogBytePosToRecPtr(prev_byte_pos), ¤t_lrc); } if (dirty_page_queue_lsn != 0) { @@ -756,7 +761,7 @@ static void XLogInsertRecordGroupLeader(PGPROC *leader, uint64 *end_byte_pos_ptr } static void XLogInsertRecordGroupFollowers(PGPROC *leader, const uint32 head, uint64 *end_byte_pos_ptr, - int32 *const currlrc_ptr) + int32* const currlrc_ptr) { uint32 nextidx; uint32 total_size = 0; @@ -774,16 +779,15 @@ static void XLogInsertRecordGroupFollowers(PGPROC *leader, const uint32 head, ui follower = g_instance.proc_base_all_procs[nextidx]; *follower->xlogGroupRedoRecPtr = t_thrd.shemem_ptr_cxt.XLogCtl->Insert.RedoRecPtr; - /* + /* * In some cases, some xlog records about full page write are not needed to * write to buffer, so reserving space for these xlog records is not needed. */ *follower->xlogGroupDoPageWrites = (t_thrd.shemem_ptr_cxt.XLogCtl->Insert.fullPageWrites || - t_thrd.shemem_ptr_cxt.XLogCtl->Insert.forcePageWrites); + t_thrd.shemem_ptr_cxt.XLogCtl->Insert.forcePageWrites); bool flag = (follower->xlogGroupfpw_lsn != InvalidXLogRecPtr) && - (follower->xlogGroupfpw_lsn <= *follower->xlogGroupRedoRecPtr) && - *follower->xlogGroupDoPageWrites; + (follower->xlogGroupfpw_lsn <= *follower->xlogGroupRedoRecPtr) && *follower->xlogGroupDoPageWrites; if (unlikely(flag)) { follower->xlogGroupReturntRecPtr = InvalidXLogRecPtr; follower->xlogGroupIsFPW = true; @@ -801,7 +805,7 @@ static void XLogInsertRecordGroupFollowers(PGPROC *leader, const uint32 head, ui if (likely(total_size != 0)) { ReserveXLogInsertByteLocation(total_size, record_size, &start_byte_pos, &end_byte_pos, &prev_byte_pos, - ¤t_lrc); + ¤t_lrc); dirty_page_queue_lsn = start_byte_pos; } @@ -816,9 +820,10 @@ static void XLogInsertRecordGroupFollowers(PGPROC *leader, const uint32 head, ui continue; } XLogInsertRecordNolock(follower->xlogGrouprdata, follower, XLogBytePosToRecPtr(start_byte_pos), - XLogBytePosToEndRecPtr(start_byte_pos + - MAXALIGN(((XLogRecord *)(follower->xlogGrouprdata->data))->xl_tot_len)), - XLogBytePosToRecPtr(prev_byte_pos), ¤t_lrc); + XLogBytePosToEndRecPtr( + start_byte_pos + + MAXALIGN(((XLogRecord *)(follower->xlogGrouprdata->data))->xl_tot_len)), + XLogBytePosToRecPtr(prev_byte_pos), ¤t_lrc); prev_byte_pos = start_byte_pos; start_byte_pos += MAXALIGN(((XLogRecord *)(follower->xlogGrouprdata->data))->xl_tot_len); /* Move to next proc in list. */ @@ -840,22 +845,22 @@ static void XLogInsertRecordGroupFollowers(PGPROC *leader, const uint32 head, ui static void XLogReportCopyLocation(const int32 current_lrc, const uint64 end_byte_pos) { bool stop = true; - uint32 current_entry = current_lrc & + uint32 current_entry = + current_lrc & (GET_WAL_INSERT_STATUS_ENTRY_CNT(g_instance.attr.attr_storage.wal_insert_status_entries_power) - 1); - volatile WALInsertStatusEntry *status_entry_ptr = + volatile WALInsertStatusEntry *status_entry_ptr = &g_instance.wal_cxt.walInsertStatusTable[GET_STATUS_ENTRY_INDEX(current_entry)]; - + if (g_instance.wal_cxt.isWalWriterUp != 0) { do { - stop = (status_entry_ptr->LRC == current_lrc && - (status_entry_ptr->status == WAL_NOT_COPIED)); + stop = (status_entry_ptr->LRC == current_lrc && (status_entry_ptr->status == WAL_NOT_COPIED)); } while (!stop); } else { while (status_entry_ptr->LRC != current_lrc) { - XLogSelfFlush(); + XLogSelfFlush(); } } - + pg_memory_barrier(); (void)pg_atomic_exchange_u64(&status_entry_ptr->endLSN, XLogBytePosToEndRecPtr(end_byte_pos)); pg_memory_barrier(); status_entry_ptr->status = WAL_COPIED; @@ -907,7 +912,7 @@ static XLogRecPtr XLogInsertRecordGroup(XLogRecData *rdata, XLogRecPtr fpw_lsn) pg_write_barrier(); if (pg_atomic_compare_exchange_u32(&t_thrd.shemem_ptr_cxt.LocalGroupWALInsertLocks[groupnum].l.xlogGroupFirst, - &nextidx, (uint32)proc->pgprocno)) { + &nextidx, (uint32)proc->pgprocno)) { break; } } @@ -924,8 +929,6 @@ static XLogRecPtr XLogInsertRecordGroup(XLogRecData *rdata, XLogRecPtr fpw_lsn) for (;;) { /* acts as a read barrier */ PGSemaphoreLock(&proc->sem, false); - /* acts as a read barrier */ - pg_memory_barrier(); if (!proc->xlogGroupMember) { break; } @@ -939,6 +942,12 @@ static XLogRecPtr XLogInsertRecordGroup(XLogRecData *rdata, XLogRecPtr fpw_lsn) PGSemaphoreUnlock(&proc->sem); } END_CRIT_SECTION(); + + /* + * We needs a memory barrier between reading "xlogGroupMember" and "xlogGroupReturntRecPtr' + * in case of memory reordering in relaxed memory model like ARM. + */ + pg_memory_barrier(); return proc->xlogGroupReturntRecPtr; } @@ -952,7 +961,7 @@ static XLogRecPtr XLogInsertRecordGroup(XLogRecData *rdata, XLogRecPtr fpw_lsn) * Trying to pop elements one at a time could lead to an ABA problem. */ head = pg_atomic_exchange_u32(&t_thrd.shemem_ptr_cxt.LocalGroupWALInsertLocks[groupnum].l.xlogGroupFirst, - INVALID_PGPROCNO); + INVALID_PGPROCNO); bool has_follower = (head != (uint32)(leader->pgprocno)); if (has_follower) { @@ -972,7 +981,7 @@ static XLogRecPtr XLogInsertRecordGroup(XLogRecData *rdata, XLogRecPtr fpw_lsn) * If the status entry is owned by this thread, update it with the copied xlog record's * end LSN and set the WAL copy status to WAL_COPIED to signal copy completion as well */ - if(has_follower) { + if (has_follower) { XLogReportCopyLocation(current_lrc, end_byte_pos); } @@ -997,7 +1006,7 @@ static XLogRecPtr XLogInsertRecordGroup(XLogRecData *rdata, XLogRecPtr fpw_lsn) * @in PrevPos: the prev LSN postion. */ static void XLogInsertRecordNolock(XLogRecData *rdata, PGPROC *proc, XLogRecPtr StartPos, XLogRecPtr EndPos, - XLogRecPtr PrevPos, int32 * const currlrc_ptr) + XLogRecPtr PrevPos, int32 *const currlrc_ptr) { XLogRecord *rechdr = (XLogRecord *)rdata->data; rechdr->xl_prev = PrevPos; @@ -1072,8 +1081,8 @@ static void XLogInsertRecordNolock(XLogRecData *rdata, PGPROC *proc, XLogRecPtr * @out EndBytePos: the end position of the WAL. * @out PrevBytePos: the previous position of the WAL. */ -static void ReserveXLogInsertByteLocation(uint32 size, uint32 lastRecordSize, uint64* StartBytePos, uint64* EndBytePos, - uint64* PrevBytePos, int32 *const currlrc_ptr) +static void ReserveXLogInsertByteLocation(uint32 size, uint32 lastRecordSize, uint64 *StartBytePos, uint64 *EndBytePos, + uint64 *PrevBytePos, int32* const currlrc_ptr) { volatile XLogCtlInsert *Insert = &t_thrd.shemem_ptr_cxt.XLogCtl->Insert; @@ -1124,7 +1133,7 @@ loop: exchange.struct128.LRC = (compare.struct128.LRC + 1) & 0x7FFFFFFF; current.value = atomic_compare_and_swap_u128((volatile uint128_u *)&Insert->CurrBytePos, compare.value, - exchange.value); + exchange.value); if (!UINT128_IS_EQUAL(compare.value, current.value)) { UINT128_COPY(compare.value, current.value); @@ -1161,7 +1170,7 @@ loop: * @in proc: the waiting proc. */ static void CopyXLogRecordToWALForGroup(int write_len, XLogRecData *rdata, XLogRecPtr StartPos, XLogRecPtr EndPos, - PGPROC *proc, int32 * const currlrc_ptr) + PGPROC *proc, int32 *const currlrc_ptr) { char *currpos = NULL; uint32 freespace; @@ -1253,7 +1262,6 @@ static void CopyXLogRecordToWALForGroup(int write_len, XLogRecData *rdata, XLogR /* Align the end position, so that the next record starts aligned */ CurrPos = MAXALIGN(CurrPos); - if (SECUREC_UNLIKELY(CurrPos != EndPos)) { ereport(PANIC, (errmsg("space reserved for WAL record does not match what was written"))); } @@ -1383,7 +1391,8 @@ static XLogRecPtr XLogInsertRecordSingle(XLogRecData *rdata, XLogRecPtr fpw_lsn, } if (inserted) { - uint32 current_entry = currlrc & + uint32 current_entry = + currlrc & (GET_WAL_INSERT_STATUS_ENTRY_CNT(g_instance.attr.attr_storage.wal_insert_status_entries_power) - 1); volatile WALInsertStatusEntry *status_entry_ptr = &g_instance.wal_cxt.walInsertStatusTable[GET_STATUS_ENTRY_INDEX(current_entry)]; @@ -1436,6 +1445,7 @@ static XLogRecPtr XLogInsertRecordSingle(XLogRecData *rdata, XLogRecPtr fpw_lsn, * The 2nd CAS call should succeed in updating the value since this thread is the only * one updating this field at this moment */ + pg_memory_barrier(); (void)pg_atomic_exchange_u64(&status_entry_ptr->endLSN, EndPos); pg_memory_barrier(); @@ -1504,7 +1514,7 @@ static XLogRecPtr XLogInsertRecordSingle(XLogRecData *rdata, XLogRecPtr fpw_lsn, */ if (inserted) { EndPos = StartPos + (isupgrade ? MAXALIGN(SizeOfXLogRecordOld) : MAXALIGN(SizeOfXLogRecord)); - if (StartPos / XLOG_BLCKSZ != EndPos / XLOG_BLCKSZ) { + if (StartPos / XLOG_BLCKSZ != EndPos / XLOG_BLCKSZ && EndPos % XLOG_BLCKSZ != 0) { if (EndPos % XLOG_SEG_SIZE == EndPos % XLOG_BLCKSZ) { EndPos += SizeOfXLogLongPHD; } else { @@ -1514,7 +1524,6 @@ static XLogRecPtr XLogInsertRecordSingle(XLogRecData *rdata, XLogRecPtr fpw_lsn, } } - #ifdef WAL_DEBUG if (u_sess->attr.attr_storage.XLOG_DEBUG) { StringInfoData buf; @@ -1568,7 +1577,6 @@ static XLogRecPtr XLogInsertRecordSingle(XLogRecData *rdata, XLogRecPtr fpw_lsn, */ XLogRecPtr XLogInsertRecord(XLogRecData *rdata, XLogRecPtr fpw_lsn, bool isupgrade) { - #ifdef __aarch64__ /* * In ARM architecture, insert an XLOG record represented by an already-constructed chain of data @@ -1603,8 +1611,8 @@ XLogRecPtr XLogInsertRecord(XLogRecData *rdata, XLogRecPtr fpw_lsn, bool isupgra * NB: The space calculation here must match the code in CopyXLogRecordToWAL, * where we actually copy the record to the reserved space. */ -static void ReserveXLogInsertLocation(uint32 size, XLogRecPtr* StartPos, XLogRecPtr* EndPos, XLogRecPtr* PrevPtr, - int32 *const currlrc_ptr) +static void ReserveXLogInsertLocation(uint32 size, XLogRecPtr *StartPos, XLogRecPtr *EndPos, XLogRecPtr *PrevPtr, + int32* const currlrc_ptr) { volatile XLogCtlInsert *Insert = &t_thrd.shemem_ptr_cxt.XLogCtl->Insert; @@ -1656,7 +1664,7 @@ loop1: exchange.struct128.LRC = (compare.struct128.LRC + 1) & 0x7FFFFFFF; current.value = atomic_compare_and_swap_u128((volatile uint128_u *)&Insert->CurrBytePos, compare.value, - exchange.value); + exchange.value); if (!UINT128_IS_EQUAL(compare.value, current.value)) { UINT128_COPY(compare.value, current.value); goto loop1; @@ -1713,7 +1721,7 @@ static bool ReserveXLogSwitch(XLogRecPtr *StartPos, XLogRecPtr *EndPos, XLogRecP #if defined(__x86_64__) || defined(__aarch64__) uint128_u exchange; uint128_u current; - uint128_u compare = atomic_compare_and_swap_u128((uint128_u*)&Insert->CurrBytePos); + uint128_u compare = atomic_compare_and_swap_u128((uint128_u *)&Insert->CurrBytePos); loop: startbytepos = compare.u64[0]; @@ -1729,7 +1737,7 @@ loop: exchange.u64[0] = startbytepos; exchange.u64[1] = compare.u64[1]; - current = atomic_compare_and_swap_u128((uint128_u*)&Insert->CurrBytePos, compare, exchange); + current = atomic_compare_and_swap_u128((uint128_u *)&Insert->CurrBytePos, compare, exchange); if (!UINT128_IS_EQUAL(compare, current)) { UINT128_COPY(compare, current); goto loop; @@ -1764,7 +1772,7 @@ loop: exchange.u64[1] = (uint64)size; exchange.u32[3] = currlrc; - current = atomic_compare_and_swap_u128((uint128_u*)&Insert->CurrBytePos, compare, exchange); + current = atomic_compare_and_swap_u128((uint128_u *)&Insert->CurrBytePos, compare, exchange); if (!UINT128_IS_EQUAL(compare, current)) { UINT128_COPY(compare, current); goto loop; @@ -1829,14 +1837,14 @@ static void StartSuspendWalInsert(int32 *const lastlrc_ptr) volatile XLogCtlInsert *Insert = &t_thrd.shemem_ptr_cxt.XLogCtl->Insert; uint64 startbytepos; uint32 prevbytesize; - int32 currlrc; - int32 ientry; + int32 currlrc; + int32 ientry; volatile WALInsertStatusEntry *entry; uint128_u compare; uint128_u exchange; uint128_u current; - compare = atomic_compare_and_swap_u128((uint128_u*)&Insert->CurrBytePos); + compare = atomic_compare_and_swap_u128((uint128_u *)&Insert->CurrBytePos); Assert(sizeof(Insert->CurrBytePos) == 8); Assert(sizeof(Insert->PrevByteSize) == 4); Assert(sizeof(Insert->CurrLRC) == 4); @@ -1856,7 +1864,7 @@ loop: * if WAL Insert threads are already suspended, wait */ if (unlikely(currlrc == WAL_COPY_SUSPEND)) { - compare = atomic_compare_and_swap_u128((uint128_u*)&Insert->CurrBytePos); + compare = atomic_compare_and_swap_u128((uint128_u *)&Insert->CurrBytePos); goto loop; } @@ -1875,7 +1883,7 @@ loop: exchange.u32[2] = prevbytesize; exchange.u32[3] = currlrc; - current = atomic_compare_and_swap_u128((uint128_u*)&Insert->CurrBytePos, compare, exchange); + current = atomic_compare_and_swap_u128((uint128_u *)&Insert->CurrBytePos, compare, exchange); if (!UINT128_IS_EQUAL(compare, current)) { UINT128_COPY(compare, current); goto loop; @@ -1912,7 +1920,7 @@ loop: * if the current LRC is 0 and the endLSN corresponding to the LRC before * the current LRC is also 0 then we know there is nobody doing the WAL * insert till this point. We need to also check entry->endLSN because we - * need to consider the 31bit LRC wrap-around + * need to consider the 31bit LRC wrap-around */ stop = ((*lastlrc_ptr != 0 || entry->endLSN != 0) && (g_instance.wal_cxt.lastLRCScanned != ilrc)); } @@ -1941,8 +1949,8 @@ static void StopSuspendWalInsert(int32 lastlrc) * Subroutine of XLogInsert. Copies a WAL record to an already-reserved * area in the WAL. */ -static void CopyXLogRecordToWAL(int write_len, bool isLogSwitch, XLogRecData* rdata, XLogRecPtr StartPos, - XLogRecPtr EndPos, int32 *const currlrc_ptr) +static void CopyXLogRecordToWAL(int write_len, bool isLogSwitch, XLogRecData *rdata, XLogRecPtr StartPos, + XLogRecPtr EndPos, int32 *const currlrc_ptr) { char *currpos = NULL; uint32 freespace; @@ -2039,7 +2047,6 @@ static void CopyXLogRecordToWAL(int write_len, bool isLogSwitch, XLogRecData* rd /* Align the end position, so that the next record starts aligned */ CurrPos = MAXALIGN(CurrPos); - /* * If this was an xlog-switch, it's not enough to write the switch record, * we also have to consume all the remaining space in the WAL segment. @@ -2065,22 +2072,20 @@ static void CopyXLogRecordToWAL(int write_len, bool isLogSwitch, XLogRecData* rd * When inserting XLOG switch, we communicate with the WAL writer * page by page */ - while (CurrPos < EndPos) { - uint32 current_entry = currlrc & + while (CurrPos <= EndPos) { + uint32 current_entry = + currlrc & (GET_WAL_INSERT_STATUS_ENTRY_CNT(g_instance.attr.attr_storage.wal_insert_status_entries_power) - 1); volatile WALInsertStatusEntry *status_entry_ptr = &g_instance.wal_cxt.walInsertStatusTable[GET_STATUS_ENTRY_INDEX(current_entry)]; - - CurrPos += XLOG_BLCKSZ; - - /* + /* * Initialize the WAL buffer page if needed * Please note that endPtr passed into XLogWaitBufferInit is the LSN currently tagged * on the buffer page we want */ - int idx = (int)XLogRecPtrToBufIdx(CurrPos); + int idx = (int)XLogRecPtrToBufIdx(CurrPos - 1); XLogRecPtr endPtr = t_thrd.shemem_ptr_cxt.XLogCtl->xlblocks[idx]; - XLogRecPtr expectedEndPtr = CurrPos + XLOG_BLCKSZ - CurrPos % XLOG_BLCKSZ; + XLogRecPtr expectedEndPtr = CurrPos; if (expectedEndPtr != endPtr) { pgstat_report_waitevent(WAIT_EVENT_WAL_BUFFER_FULL); XLogRecPtr waitEndPtr = X_LOG_PREV_BLOCK_IN_BUF_PAGE(expectedEndPtr); @@ -2107,15 +2112,16 @@ static void CopyXLogRecordToWAL(int write_len, bool isLogSwitch, XLogRecData* rd * 1) I am an XLog switch so I already called StartSuspendWalInsert to suspend * all other XLog insert accesses and the flush function already scanned till * the LRC right before the suspended LRC - * 2) XLog switch is inserted and flushed page by page sequentially + * 2) XLog switch is inserted and flushed page by page sequentially */ - XLogSelfFlush(); + XLogSelfFlush(); } /* * We own the entry so we don't expect need to loop the CAS call * The CAS call here is to protext reads in the WAL writer thread */ + pg_memory_barrier(); (void)pg_atomic_exchange_u64(&status_entry_ptr->endLSN, CurrPos); pg_memory_barrier(); status_entry_ptr->status = WAL_COPIED; @@ -2129,18 +2135,15 @@ static void CopyXLogRecordToWAL(int write_len, bool isLogSwitch, XLogRecData* rd * 1) I am an XLog switch so I already called StartSuspendWalInsert to suspend * all other XLog insert accesses and the flush function already scanned till * the LRC right before the suspended LRC - * 2) XLog switch is inserted and flushed page by page sequentially + * 2) XLog switch is inserted and flushed page by page sequentially */ XLogSelfFlush(); } currlrc = (currlrc + 1) & 0x7FFFFFFF; + CurrPos += XLOG_BLCKSZ; } *currlrc_ptr = currlrc; } - - if (CurrPos != EndPos) { - ereport(PANIC, (errmsg("space reserved for WAL record does not match what was written"))); - } pgstat_report_waitevent_count(WAIT_EVENT_WAL_BUFFER_ACCESS); } @@ -2716,7 +2719,6 @@ static void AdvanceXLInsertBuffer(XLogRecPtr upto, bool opportunistic, PGPROC *p LWLockRelease(WALBufMappingLock); - #ifdef WAL_DEBUG if (npages > 0) { ereport(DEBUG1, (errmsg("initialized %d pages, upto %X/%X", npages, (uint32)(NewPageEndPtr >> 32), @@ -2795,25 +2797,26 @@ static bool XLogWritePaxos(XLogRecPtr PaxosWriteRqst) uint32 tmpoffset = tmpLsn % XLOG_BLCKSZ; Assert(MaxSendSizeBytes > tmpoffset); nBytes = MaxSendSizeBytes - tmpoffset; - ereport(DEBUG1, - (errmsg("Flow limit! nBytes is %ld, WriteTotal is %ld, SendLimitBytes is %ld, CriticalNBytes is %ld", - nBytes, WriteTotal, MaxSendSizeBytes, CriticalNBytes))); + ereport( + DEBUG1, + (errmsg("Flow limit! nBytes is %ld, WriteTotal is %ld, SendLimitBytes is %ld, CriticalNBytes is %ld", + nBytes, WriteTotal, MaxSendSizeBytes, CriticalNBytes))); } Assert(XLByteLE(nBytes, XLogCacheSize)); - char *from = t_thrd.shemem_ptr_cxt.XLogCtl->pages + curridx * (Size) XLOG_BLCKSZ + offset; + char *from = t_thrd.shemem_ptr_cxt.XLogCtl->pages + curridx * (Size)XLOG_BLCKSZ + offset; WriteLSN = t_thrd.xlog_cxt.LogwrtPaxos->Write + nBytes; unsigned long long paxosIdx = 0; /* always try to write XLog data into DCF. */ while (dcf_write(1, from, nBytes, WriteLSN, &paxosIdx) != 0) { - ereport(WARNING, - (errmsg("Failed writing to paxos: lsn = %ld, len = %ld, paxosIdx = %llu.", - WriteLSN, nBytes, paxosIdx))); + ereport(WARNING, (errmsg("Failed writing to paxos: lsn = %ld, len = %ld, paxosIdx = %llu.", WriteLSN, + nBytes, paxosIdx))); pg_usleep(5000); } - ereport(DEBUG1, (errmsg("Writed to paxos: lsn = %ld, len = %ld, paxosIdx = %llu.", WriteLSN, nBytes, paxosIdx))); + ereport(DEBUG1, + (errmsg("Writed to paxos: lsn = %ld, len = %ld, paxosIdx = %llu.", WriteLSN, nBytes, paxosIdx))); t_thrd.xlog_cxt.LogwrtPaxos->Write = WriteLSN; } @@ -2825,9 +2828,9 @@ static bool XLogWritePaxos(XLogRecPtr PaxosWriteRqst) SpinLockRelease(&xlogctl->info_lck); volatile DcfContextInfo *dcfCtx = t_thrd.dcf_cxt.dcfCtxInfo; SpinLockAcquire(&dcfCtx->recordDcfIdxMutex); - /* - * XLog upto recordLsn has been flushed to Disk, now it's safe - * to set applied index corresponding to recordLsn in DCF, which is + /* + * XLog upto recordLsn has been flushed to Disk, now it's safe + * to set applied index corresponding to recordLsn in DCF, which is * called in Consensus Log call back. */ if (XLByteLE(dcfCtx->recordLsn, xlogctl->LogwrtResult.Flush)) @@ -2855,7 +2858,7 @@ static bool XLogWritePaxos(XLogRecPtr PaxosWriteRqst) * * Must be called with WALWriteLock held. */ -static void XLogWrite(const XLogwrtRqst& WriteRqst, bool flexible) +static void XLogWrite(const XLogwrtRqst &WriteRqst, bool flexible) { bool ispartialpage = false; bool last_iteration = false; @@ -2983,8 +2986,7 @@ static void XLogWrite(const XLogwrtRqst& WriteRqst, bool flexible) char *from = t_thrd.shemem_ptr_cxt.XLogCtl->pages + startidx * (Size)XLOG_BLCKSZ; Size nbytes = npages * (Size)XLOG_BLCKSZ; #ifndef ENABLE_MULTIPLE_NODES - if (g_instance.attr.attr_storage.dcf_attr.enable_dcf && - t_thrd.dcf_cxt.dcfCtxInfo->isDcfStarted && + if (g_instance.attr.attr_storage.dcf_attr.enable_dcf && t_thrd.dcf_cxt.dcfCtxInfo->isDcfStarted && ispartialpage) { /* avoid XLog divergence on DCF mode */ nbytes -= (EndPtr - WriteRqst.Write); @@ -3041,6 +3043,7 @@ static void XLogWrite(const XLogwrtRqst& WriteRqst, bool flexible) /* signal that we need to wakeup walsenders later */ WalSndWakeupRequest(); t_thrd.xlog_cxt.LogwrtResult->Flush = t_thrd.xlog_cxt.LogwrtResult->Write; /* end of page */ + AddShareStorageXLopCopyBackendWakeupRequest(); if (XLogArchivingActive()) { XLogArchiveNotifySeg(t_thrd.xlog_cxt.openLogSegNo); } @@ -3101,6 +3104,7 @@ static void XLogWrite(const XLogwrtRqst& WriteRqst, bool flexible) /* signal that we need to wakeup walsenders later */ WalSndWakeupRequest(); t_thrd.xlog_cxt.LogwrtResult->Flush = t_thrd.xlog_cxt.LogwrtResult->Write; + AddShareStorageXLopCopyBackendWakeupRequest(); } /* @@ -3185,8 +3189,8 @@ void XLogSetReplicationSlotMinimumLSN(XLogRecPtr lsn) SpinLockAcquire(&xlogctl->info_lck); xlogctl->replicationSlotMinLSN = lsn; SpinLockRelease(&xlogctl->info_lck); - if (XLByteEQ(lsn, InvalidXLogRecPtr) && !IsInitdb && !RecoveryInProgress() && - !AM_WAL_SENDER && !AM_WAL_DB_SENDER && strcmp(u_sess->attr.attr_common.application_name, "gs_roach") != 0) { + if (XLByteEQ(lsn, InvalidXLogRecPtr) && !IsInitdb && !RecoveryInProgress() && !AM_WAL_SENDER && !AM_WAL_DB_SENDER && + strcmp(u_sess->attr.attr_common.application_name, "gs_roach") != 0) { ereport(WARNING, (errmsg("replicationSlotMinLSN is InvalidXLogRecPtr!!!"))); } } @@ -3228,8 +3232,8 @@ void XLogSetReplicationSlotMaximumLSN(XLogRecPtr lsn) SpinLockAcquire(&xlogctl->info_lck); xlogctl->replicationSlotMaxLSN = lsn; SpinLockRelease(&xlogctl->info_lck); - if (XLByteEQ(lsn, InvalidXLogRecPtr) && !IsInitdb && !RecoveryInProgress() && - !AM_WAL_SENDER && !AM_WAL_DB_SENDER && strcmp(u_sess->attr.attr_common.application_name, "gs_roach") != 0) { + if (XLByteEQ(lsn, InvalidXLogRecPtr) && !IsInitdb && !RecoveryInProgress() && !AM_WAL_SENDER && !AM_WAL_DB_SENDER && + strcmp(u_sess->attr.attr_common.application_name, "gs_roach") != 0) { ereport(WARNING, (errmsg("replicationSlotMaxLSN is InvalidXLogRecPtr!!!"))); } } @@ -3426,7 +3430,7 @@ void XLogWaitFlush(XLogRecPtr recptr) * * Test XLogInsertAllowed() instead of RecoveryInProgress(). XLogInsertAllowed() * allows WAL writing at the end of recovery by setting a thread local variable - * if this thread local variable is not set, it returns RecoveryInProgress() + * if this thread local variable is not set, it returns RecoveryInProgress() * * The checkpointer acts this way as well - when it tries to write * end-of-recovery checkpoint, this function should indeed flush @@ -3446,8 +3450,7 @@ void XLogWaitFlush(XLogRecPtr recptr) while (XLByteLT(flushTo, recptr)) { if (!g_instance.wal_cxt.isWalWriterUp) { XLogSelfFlush(); - } - else if (LWLockAcquireOrWait(g_instance.wal_cxt.walFlushWaitLock->l.lock, LW_EXCLUSIVE)) { + } else if (LWLockAcquireOrWait(g_instance.wal_cxt.walFlushWaitLock->l.lock, LW_EXCLUSIVE)) { PGSemaphoreLock(&g_instance.wal_cxt.walFlushWaitLock->l.sem, true); LWLockRelease(g_instance.wal_cxt.walFlushWaitLock->l.lock); } @@ -3463,8 +3466,7 @@ void XLogWaitBufferInit(XLogRecPtr recptr) while (XLByteLT(sentTo, recptr)) { if (!g_instance.wal_cxt.isWalWriterUp) { XLogSelfFlush(); - } - else if (LWLockAcquireOrWait(g_instance.wal_cxt.walBufferInitWaitLock->l.lock, LW_EXCLUSIVE)) { + } else if (LWLockAcquireOrWait(g_instance.wal_cxt.walBufferInitWaitLock->l.lock, LW_EXCLUSIVE)) { PGSemaphoreLock(&g_instance.wal_cxt.walBufferInitWaitLock->l.sem, true); LWLockRelease(g_instance.wal_cxt.walBufferInitWaitLock->l.lock); } @@ -3489,12 +3491,12 @@ static void XLogFlushCore(XLogRecPtr writeRqstPtr) /* wake up walsenders now that we've released heavily contended locks */ WalSndWakeupProcessRequests(); - + SendShareStorageXLogCopyBackendWakeupRequest(); /* * Wake up waiting commit threads to check on the latest LSN flushed. */ (void)pg_atomic_exchange_u64((uint64 *)&g_instance.wal_cxt.flushResult, - t_thrd.shemem_ptr_cxt.XLogCtl->LogwrtResult.Flush); + t_thrd.shemem_ptr_cxt.XLogCtl->LogwrtResult.Flush); /* * Notifity commit agents to wake up and check latest flushResult @@ -3534,20 +3536,6 @@ bool XLogBackgroundFlush(void) volatile WALInsertStatusEntry *status_entry_ptr = NULL; uint32 entry_count = 0; - /* - * During REDO, we are reading not writing WAL. - * - * Test XLogInsertAllowed(), not RecoveryInProgress. XLogInsertAllowed() - * allows WAL writing at the end of recovery by setting a thread local variable - * if this thread local variable is not set, it returns RecoveryInProgress() - * - * The checkpointer acts this way as well - when it tries to write - * end-of-recovery checkpoint, this function should indeed flush. - */ - if (!XLogInsertAllowed()) { - return false; - } - /* * Entry #: g_instance.wal_cxt.walInsertStatusTable * +---------------+--------+-------+ @@ -3576,9 +3564,8 @@ bool XLogBackgroundFlush(void) prev_entry_idx = g_instance.wal_cxt.lastWalStatusEntryFlushed; #endif start_entry_idx = GET_NEXT_STATUS_ENTRY(g_instance.attr.attr_storage.wal_insert_status_entries_power, - g_instance.wal_cxt.lastWalStatusEntryFlushed); + g_instance.wal_cxt.lastWalStatusEntryFlushed); start_entry_ptr = &g_instance.wal_cxt.walInsertStatusTable[GET_STATUS_ENTRY_INDEX(start_entry_idx)]; - /* * Bail out if the very first entry is not copied. */ @@ -3591,22 +3578,20 @@ bool XLogBackgroundFlush(void) do { curr_entry_ptr = next_entry_ptr; curr_entry_idx = next_entry_idx; - next_entry_idx = - GET_NEXT_STATUS_ENTRY(g_instance.attr.attr_storage.wal_insert_status_entries_power, curr_entry_idx); + next_entry_idx = GET_NEXT_STATUS_ENTRY(g_instance.attr.attr_storage.wal_insert_status_entries_power, + curr_entry_idx); next_entry_ptr = &g_instance.wal_cxt.walInsertStatusTable[GET_STATUS_ENTRY_INDEX(next_entry_idx)]; entry_count++; Assert(curr_entry_ptr->status == WAL_COPIED); #ifndef ENABLE_MULTIPLE_NODES - if (g_instance.attr.attr_storage.dcf_attr.enable_dcf && - t_thrd.dcf_cxt.dcfCtxInfo->isDcfStarted && - paxos_entry_idx == -1 && + if (g_instance.attr.attr_storage.dcf_attr.enable_dcf && t_thrd.dcf_cxt.dcfCtxInfo->isDcfStarted && + paxos_entry_idx == -1 && XLByteLT(t_thrd.shemem_ptr_cxt.XLogCtl->LogwrtPaxos.Consensus, (XLogRecPtr)curr_entry_ptr->endLSN)) { paxos_entry_idx = prev_entry_idx; } - if (g_instance.attr.attr_storage.dcf_attr.enable_dcf && - t_thrd.dcf_cxt.dcfCtxInfo->isDcfStarted) { + if (g_instance.attr.attr_storage.dcf_attr.enable_dcf && t_thrd.dcf_cxt.dcfCtxInfo->isDcfStarted) { prev_entry_idx = curr_entry_idx; } #endif @@ -3620,6 +3605,23 @@ bool XLogBackgroundFlush(void) } } while (((curr_entry_ptr->LRC + 1) & 0x7FFFFFFF) == next_entry_ptr->LRC); + /* update continuous LRC entries that have been copied without a hole */ + g_instance.wal_cxt.lastLRCScanned = curr_entry_ptr->LRC; + + /* + * During REDO, we are reading not writing WAL. + * + * Test XLogInsertAllowed(), not RecoveryInProgress. XLogInsertAllowed() + * allows WAL writing at the end of recovery by setting a thread local variable + * if this thread local variable is not set, it returns RecoveryInProgress() + * + * The checkpointer acts this way as well - when it tries to write + * end-of-recovery checkpoint, this function should indeed flush. + */ + if (!XLogInsertAllowed()) { + return false; + } + #ifndef ENABLE_MULTIPLE_NODES if (g_instance.attr.attr_storage.dcf_attr.enable_dcf && t_thrd.dcf_cxt.dcfCtxInfo->isDcfStarted) { WriteRqstPtr = (XLogRecPtr)pg_atomic_barrier_read_u64(&curr_entry_ptr->endLSN); @@ -3639,26 +3641,23 @@ bool XLogBackgroundFlush(void) } #endif - g_instance.wal_cxt.lastWalStatusEntryFlushed = curr_entry_idx; - g_instance.wal_cxt.lastLRCScanned = curr_entry_ptr->LRC; - + pg_read_barrier(); WriteRqstPtr = (XLogRecPtr)pg_atomic_barrier_read_u64(&curr_entry_ptr->endLSN); #ifdef WAL_DEBUG if (u_sess->attr.attr_storage.XLOG_DEBUG) { - ereport(LOG, - (errmsg("xlog bg flush request %X/%X; write %X/%X; flush %X/%X", - (uint32)(WriteRqstPtr >> 32), - (uint32)WriteRqstPtr, - (uint32)(t_thrd.xlog_cxt.LogwrtResult->Write >> 32), - (uint32)t_thrd.xlog_cxt.LogwrtResult->Write, - (uint32)(t_thrd.xlog_cxt.LogwrtResult->Flush >> 32), - (uint32)t_thrd.xlog_cxt.LogwrtResult->Flush))); + ereport(LOG, (errmsg("xlog bg flush request %X/%X; write %X/%X; flush %X/%X", (uint32)(WriteRqstPtr >> 32), + (uint32)WriteRqstPtr, (uint32)(t_thrd.xlog_cxt.LogwrtResult->Write >> 32), + (uint32)t_thrd.xlog_cxt.LogwrtResult->Write, + (uint32)(t_thrd.xlog_cxt.LogwrtResult->Flush >> 32), + (uint32)t_thrd.xlog_cxt.LogwrtResult->Flush))); } #endif XLogFlushCore(WriteRqstPtr); + /* update flush position */ + g_instance.wal_cxt.lastWalStatusEntryFlushed = curr_entry_idx; g_instance.wal_cxt.lastLRCFlushed = curr_entry_ptr->LRC; /* @@ -3675,10 +3674,12 @@ bool XLogBackgroundFlush(void) */ entry_idx = GET_NEXT_STATUS_ENTRY(g_instance.attr.attr_storage.wal_insert_status_entries_power, entry_idx); status_entry_ptr = &g_instance.wal_cxt.walInsertStatusTable[GET_STATUS_ENTRY_INDEX(entry_idx)]; - status_entry_ptr->LRC = (status_entry_ptr->LRC + - GET_WAL_INSERT_STATUS_ENTRY_CNT(g_instance.attr.attr_storage.wal_insert_status_entries_power)) & + status_entry_ptr->LRC = + (status_entry_ptr->LRC + + GET_WAL_INSERT_STATUS_ENTRY_CNT(g_instance.attr.attr_storage.wal_insert_status_entries_power)) & 0x7FFFFFFF; /* Reset the status to WAL_NOT_COPIED for the flushed entries. */ + pg_write_barrier(); status_entry_ptr->status = WAL_NOT_COPIED; } while (entry_idx != curr_entry_idx); @@ -3734,17 +3735,16 @@ static void XLogSelfFlush(void) * the wal writer cannot flush for this agent because the wal writer should only * flush when a status entry is updated but this agent cannot update its status * entry before it finishes copying its record. - * - * This function should not change the wal copy status entries. + * + * This function should not change the wal copy status entries. * * numHitsOnStartPage - the 2nd hit on the start page needs to wait for all * potential concurrent flushes to finish while the - * subsequent hits on the start page don't + * subsequent hits on the start page don't * CurrPos - The requested LSN * currLRC - need this to calculate the previous LRC for use to wait for */ -static void XLogSelfFlushWithoutStatus(int numHitsOnStartPage, - XLogRecPtr currPos, int currLRC) +static void XLogSelfFlushWithoutStatus(int numHitsOnStartPage, XLogRecPtr currPos, int currLRC) { /* * I only needs to wait for the wal writer or other agents' @@ -3782,7 +3782,7 @@ static void XLogSelfFlushWithoutStatus(int numHitsOnStartPage, LWLockAcquire(WALWriteLock, LW_EXCLUSIVE); XLogFlushCore(currPos); LWLockRelease(WALWriteLock); - + XLogRecPtr initializeRqstPtr = currPos - currPos % XLOG_BLCKSZ; AdvanceXLInsertBuffer(initializeRqstPtr, false); (void)pg_atomic_exchange_u64((uint64 *)&g_instance.wal_cxt.sentResult, initializeRqstPtr); @@ -4035,12 +4035,9 @@ bool PreInitXlogFileForStandby(XLogRecPtr requestLsn) static XLogSegNo nextSegNo = 0; if (requestLsn < lastWriteLsn) { /* switch over. need reset */ - ereport(WARNING, - (errmsg("PreInitXlogFileForStandby need reset. requestLsn: %X/%X; lastWriteLsn: %X/%X", - (uint32)(requestLsn >> 32), - (uint32)requestLsn, - (uint32)(lastWriteLsn >> 32), - (uint32)lastWriteLsn))); + ereport(WARNING, (errmsg("PreInitXlogFileForStandby need reset. requestLsn: %X/%X; lastWriteLsn: %X/%X", + (uint32)(requestLsn >> 32), (uint32)requestLsn, (uint32)(lastWriteLsn >> 32), + (uint32)lastWriteLsn))); lastWriteLsn = requestLsn; nextSegNo = 0; } else if (requestLsn < lastWriteLsn + XLOG_SEG_SIZE) { @@ -4063,11 +4060,9 @@ bool PreInitXlogFileForStandby(XLogRecPtr requestLsn) int lf = XLogFileInit(nextSegNo, &use_existent, true); if (!use_existent) ereport(DEBUG1, - (errmsg("PreInitXlogFileForStandby new nextSegNo: %X/%X ThisTimeLineID: %u, RecoveryTargetTLI: %u", - (uint32)(nextSegNo >> 32), - (uint32)nextSegNo, - t_thrd.shemem_ptr_cxt.XLogCtl->ThisTimeLineID, - t_thrd.shemem_ptr_cxt.XLogCtl->RecoveryTargetTLI))); + (errmsg("PreInitXlogFileForStandby new nextSegNo: %X/%X ThisTimeLineID: %u, RecoveryTargetTLI: %u", + (uint32)(nextSegNo >> 32), (uint32)nextSegNo, t_thrd.shemem_ptr_cxt.XLogCtl->ThisTimeLineID, + t_thrd.shemem_ptr_cxt.XLogCtl->RecoveryTargetTLI))); if (lf >= 0) close(lf); } @@ -4075,7 +4070,6 @@ bool PreInitXlogFileForStandby(XLogRecPtr requestLsn) return true; } - void PreInitXlogFileForPrimary(int advance_xlog_file_num) { XLogSegNo startSegNo, nextSegNo, target; @@ -4461,7 +4455,6 @@ static int XLogFileReadAnyTLI(XLogSegNo segno, int emode, uint32 sources) */ foreach (cell, t_thrd.xlog_cxt.expectedTLIs) { TimeLineID tli = (TimeLineID)lfirst_int(cell); - if (tli < t_thrd.xlog_cxt.curFileTLI) { break; /* don't bother looking at too-old TLIs */ } @@ -5092,14 +5085,12 @@ static void UpdateLastRemovedPtr(const char *filename) */ static void RemoveOldXlogFiles(XLogSegNo segno, XLogRecPtr endptr) { - if (segno == 0) { - return; - } - DIR *xldir = NULL; struct dirent *xlde = NULL; char lastoff[MAXFNAMELEN]; errno_t errorno = EOK; + int64 old_sync_request; + int64 new_sync_request; xldir = AllocateDir(XLOGDIR); if (xldir == NULL) { @@ -5115,6 +5106,7 @@ static void RemoveOldXlogFiles(XLogSegNo segno, XLogRecPtr endptr) ereport(LOG, (errmsg("attempting to remove WAL segments older than log file %s", lastoff))); gstrace_entry(GS_TRC_ID_RemoveOldXlogFiles); + old_sync_request = CheckPointGetFsyncRequset(); while ((xlde = ReadDir(xldir, XLOGDIR)) != NULL) { /* Ignore files that are not XLOG segments */ if (strlen(xlde->d_name) != 24 || strspn(xlde->d_name, "0123456789ABCDEF") != 24) { @@ -5140,6 +5132,11 @@ static void RemoveOldXlogFiles(XLogSegNo segno, XLogRecPtr endptr) RemoveXlogFile(xlde->d_name, endptr); } } + new_sync_request = CheckPointGetFsyncRequset(); + if (new_sync_request != old_sync_request) { + CheckPointSyncWithAbsorption(); + old_sync_request = new_sync_request; + } } FreeDir(xldir); gstrace_data(1, GS_TRC_ID_RemoveOldXlogFiles, TRC_DATA_FMT_DFLT, lastoff, MAXFNAMELEN); @@ -5324,7 +5321,7 @@ inline static XLogReaderState *ReadNextRecordFromQueue(int emode) } } - if ((void *)xlogreader == (void *)&(extreme_rto::g_GlobalLsnForwarder.record) || + if ((void *)xlogreader == (void *)&(extreme_rto::g_GlobalLsnForwarder.record) || (void *)xlogreader == (void *)&(extreme_rto::g_cleanupMark.record)) { extreme_rto::StartupSendFowarder(extreme_rto::GetRedoItemPtr(xlogreader)); xlogreader = NULL; @@ -5440,6 +5437,7 @@ static XLogRecord *ReadRecord(XLogReaderState *xlogreader, XLogRecPtr RecPtr, in /* Set up lastest valid record */ latestValidRecord = t_thrd.xlog_cxt.ReadRecPtr; latestRecordCrc = record->xl_crc; + latestRecordLen = record->xl_tot_len; /* Great, got a record */ return record; } else { @@ -5553,8 +5551,8 @@ int ParallelReadPageInternal(XLogReaderState *state, XLogRecPtr pageptr, int req * First, read the requested data length, but at least a short page header * so that we can validate it. */ - readLen = ParallelXLogPageRead(state, pageptr, Max(reqLen, (int)SizeOfXLogShortPHD), state->currRecPtr, - &state->readPageTLI); + readLen = ParallelXLogPageRead(state, pageptr, Max(reqLen, (int)SizeOfXLogShortPHD), state->currRecPtr, + &state->readPageTLI); if (readLen < 0) { goto err; } @@ -5576,8 +5574,7 @@ int ParallelReadPageInternal(XLogReaderState *state, XLogRecPtr pageptr, int req /* still not enough */ if (readLen < (int)XLogPageHeaderSize(hdr)) { - readLen = ParallelXLogPageRead(state, pageptr, XLogPageHeaderSize(hdr), state->currRecPtr, - &state->readPageTLI); + readLen = ParallelXLogPageRead(state, pageptr, XLogPageHeaderSize(hdr), state->currRecPtr, &state->readPageTLI); if (readLen < 0) { goto err; } @@ -5781,7 +5778,6 @@ XLogRecord *ParallelReadRecord(XLogReaderState *state, XLogRecPtr RecPtr, char * readOff = ParallelReadPageInternal(state, targetPagePtr, Min(total_len - gotlen + SizeOfXLogShortPHD, XLOG_BLCKSZ), readoldversion); - if (readOff < 0) goto err; @@ -5807,7 +5803,6 @@ XLogRecord *ParallelReadRecord(XLogReaderState *state, XLogRecPtr RecPtr, char * /* Append the continuation from this page to the buffer */ pageHeaderSize = XLogPageHeaderSize(pageHeader); - if (readOff < (int)pageHeaderSize) readOff = ParallelReadPageInternal(state, targetPagePtr, pageHeaderSize, readoldversion); @@ -5904,7 +5899,6 @@ err: return NULL; } - static void UpdateMinrecoveryInAchive() { volatile XLogCtlData *xlogctl = t_thrd.shemem_ptr_cxt.XLogCtl; @@ -5927,9 +5921,9 @@ static void UpdateMinrecoveryInAchive() UpdateControlFile(); LWLockRelease(ControlFileLock); - ereport(LOG, (errmsg("update minrecovery point to %X/%X in archive recovery", - (uint32)(t_thrd.xlog_cxt.minRecoveryPoint >> 32), - (uint32)(t_thrd.xlog_cxt.minRecoveryPoint)))); + ereport(LOG, + (errmsg("update minrecovery point to %X/%X in archive recovery", + (uint32)(t_thrd.xlog_cxt.minRecoveryPoint >> 32), (uint32)(t_thrd.xlog_cxt.minRecoveryPoint)))); } XLogRecord *XLogParallelReadNextRecord(XLogReaderState *xlogreader) @@ -5986,6 +5980,7 @@ XLogRecord *XLogParallelReadNextRecord(XLogReaderState *xlogreader) /* Set up lastest valid record */ latestValidRecord = t_thrd.xlog_cxt.ReadRecPtr; latestRecordCrc = record->xl_crc; + latestRecordLen = record->xl_tot_len; ADD_ABNORMAL_POSITION(9); /* Great, got a record */ return record; @@ -6643,13 +6638,12 @@ void UpdateControlFile(void) } } #ifndef ENABLE_MULTIPLE_NODES - /* + /* * Truncate DCF Log before Min(flushedIdx, minAppliedIdx) to avoid space waste, * flushedIdx is the DCF index corresponding to flushed XLog LSN, * minAppliedIdx is used to avoid full build caused by slow DCF follower. */ - if (g_instance.attr.attr_storage.dcf_attr.enable_dcf && - t_thrd.dcf_cxt.dcfCtxInfo->isDcfStarted) { + if (g_instance.attr.attr_storage.dcf_attr.enable_dcf && t_thrd.dcf_cxt.dcfCtxInfo->isDcfStarted) { DcfLogTruncate(); } #endif @@ -6845,9 +6839,6 @@ Size XLOGShmemSize(void) return size; } - - - void XLOGShmemInit(void) { bool foundCFile = false; @@ -7013,7 +7004,7 @@ static XLogSegNo GetOldestXLOGSegNo(const char *workingPath) } while ((dirEnt = readdir(xlogDir)) != NULL) { if (strlen(dirEnt->d_name) == XLOGFILENAMELEN && - strspn(dirEnt->d_name, "0123456789ABCDEF") == XLOGFILENAMELEN) { + strspn(dirEnt->d_name, "0123456789ABCDEF") == XLOGFILENAMELEN) { if (strlen(oldestXLogFileName) == 0 || strcmp(dirEnt->d_name, oldestXLogFileName) < 0) { rc = strncpy_s(oldestXLogFileName, MAXPGPATH - 1, dirEnt->d_name, strlen(dirEnt->d_name) + 1); securec_check_ss(rc, "", ""); @@ -7258,6 +7249,23 @@ void BootStrapXLOG(void) /* some additional ControlFile fields are set in WriteControlFile() */ WriteControlFile(); + if (IS_SHARED_STORAGE_MODE) { + ShareStorageXLogCtl *ctlInfo = g_instance.xlog_cxt.shareStorageXLogCtl; + InitShareStorageCtlInfo(ctlInfo, sysidentifier); + int writeLen = WriteXlogToShareStorage(XLogSegSize, (char *)page, XLOG_BLCKSZ); + if (writeLen != XLOG_BLCKSZ) { + ereport(PANIC, (errcode_for_file_access(), + errmsg("write checkpoint info faild: len:%u, version:%u, start:%lu, end:%lu", + ctlInfo->length, ctlInfo->version, ctlInfo->insertHead, ctlInfo->insertTail))); + } + ctlInfo->insertHead = MAXALIGN((recptr - (char *)page) + XLogSegSize); + ctlInfo->crc = CalShareStorageCtlInfoCrc(ctlInfo); + UpdateShareStorageCtlInfo(ctlInfo); + FsyncXlogToShareStorage(); + ereport(LOG, (errcode_for_file_access(), + errmsg("update dorado ctl info: len:%u, version:%u, start:%lu, end:%lu", ctlInfo->length, + ctlInfo->version, ctlInfo->insertHead, ctlInfo->insertTail))); + } #ifndef ENABLE_MULTIPLE_NODES if (g_instance.attr.attr_storage.dcf_attr.enable_dcf) { ret = memset_s(t_thrd.shemem_ptr_cxt.dcfData, sizeof(DCFData), 0, sizeof(DCFData)); @@ -7275,13 +7283,9 @@ void BootStrapXLOG(void) } #endif /* bootstrap double write */ - MemoryContext mem_cxt = AllocSetContextCreate( - INSTANCE_GET_MEM_CXT_GROUP(MEMORY_CONTEXT_STORAGE), - "DoubleWriteContext", - ALLOCSET_DEFAULT_MINSIZE, - ALLOCSET_DEFAULT_INITSIZE, - ALLOCSET_DEFAULT_MAXSIZE, - SHARED_CONTEXT); + MemoryContext mem_cxt = AllocSetContextCreate(INSTANCE_GET_MEM_CXT_GROUP(MEMORY_CONTEXT_STORAGE), + "DoubleWriteContext", ALLOCSET_DEFAULT_MINSIZE, + ALLOCSET_DEFAULT_INITSIZE, ALLOCSET_DEFAULT_MAXSIZE, SHARED_CONTEXT); MemoryContext old_mem_cxt = MemoryContextSwitchTo(mem_cxt); dw_bootstrap(); @@ -7439,12 +7443,12 @@ static void readRecoveryCommandFile(void) /* * Convert the LSN string given by the user to XLogRecPtr form. */ - t_thrd.xlog_cxt.recoveryTargetLSN = DatumGetLSN(DirectFunctionCall3( - pg_lsn_in, CStringGetDatum(item->value), ObjectIdGetDatum(InvalidOid), Int32GetDatum(-1))); + t_thrd.xlog_cxt.recoveryTargetLSN = DatumGetLSN(DirectFunctionCall3(pg_lsn_in, CStringGetDatum(item->value), + ObjectIdGetDatum(InvalidOid), + Int32GetDatum(-1))); ereport(DEBUG2, - (errmsg_internal("recovery_target_lsn = '%X/%X'", - (uint32)(t_thrd.xlog_cxt.recoveryTargetLSN >> 32), - (uint32)t_thrd.xlog_cxt.recoveryTargetLSN))); + (errmsg_internal("recovery_target_lsn = '%X/%X'", (uint32)(t_thrd.xlog_cxt.recoveryTargetLSN >> 32), + (uint32)t_thrd.xlog_cxt.recoveryTargetLSN))); } else if (strcmp(item->name, "recovery_target_inclusive") == 0) { // does nothing if a recovery_target is not also set if (!parse_bool(item->value, &t_thrd.xlog_cxt.recoveryTargetInclusive)) { @@ -7723,7 +7727,6 @@ void TruncateAndRemoveXLogForRoachRestore(const char *XLogFileName, uint32 off) truncateLength = XLogSegSize - off; writeContent = (char *)palloc0(truncateLength); - if (write(fd, writeContent, truncateLength) != truncateLength) { close(fd); pfree(writeContent); @@ -7740,9 +7743,9 @@ void TruncateAndRemoveXLogForRoachRestore(const char *XLogFileName, uint32 off) ereport(ERROR, (errcode_for_file_access(), errmsg("could not close file \"%s\" ", XLogFilePath))); } pfree(writeContent); - if (IS_DISASTER_RECOVER_MODE == false) + if ((IS_DISASTER_RECOVER_MODE == false) && (IS_SHARED_STORAGE_STANBY_CLUSTER_MODE == false)) durable_rename(RECOVERY_COMMAND_FILE, RECOVERY_COMMAND_DONE, FATAL); - + DIR *xldir = NULL; struct dirent *xlde = NULL; @@ -7763,8 +7766,8 @@ void TruncateAndRemoveXLogForRoachRestore(const char *XLogFileName, uint32 off) securec_check_ss(rc, "", ""); rc = unlink(XLogFilePath); if (rc != 0) { - ereport(LOG, - (errcode_for_file_access(), errmsg("could not remove old transaction log file \"%s\": %m", XLogFilePath))); + ereport(LOG, (errcode_for_file_access(), + errmsg("could not remove old transaction log file \"%s\": %m", XLogFilePath))); } } } @@ -7825,7 +7828,7 @@ static bool recoveryStopsHere(XLogReaderState *record, bool *includeThis) xl_xact_commit *recordXactCommitData = (xl_xact_commit *)XLogRecGetData(record); recordXtime = recordXactCommitData->xact_time; } else if (XLogRecGetRmid(record) == RM_XACT_ID && - (record_info == XLOG_XACT_ABORT || record_info == XLOG_XACT_ABORT_WITH_XID)) { + (record_info == XLOG_XACT_ABORT || record_info == XLOG_XACT_ABORT_WITH_XID)) { xl_xact_abort *recordXactAbortData = (xl_xact_abort *)XLogRecGetData(record); recordXtime = recordXactAbortData->xact_time; } @@ -7836,13 +7839,12 @@ static bool recoveryStopsHere(XLogReaderState *record, bool *includeThis) else if (XLogRecGetRmid(record) == RM_BARRIER_ID) { if (record_info == XLOG_BARRIER_CREATE) { recordBarrierId = (char *)XLogRecGetData(record); - ereport(DEBUG2, (errmsg("processing barrier xlog record for %s", recordBarrierId))); + ereport(u_sess->attr.attr_storage.HaModuleDebug ? LOG : DEBUG4, + (errmsg("processing barrier xlog record for %s", recordBarrierId))); if (IS_DISASTER_RECOVER_MODE) update_recovery_barrier(); } - } - - else if (XLogRecGetRmid(record) == RM_XLOG_ID && record_info == XLOG_RESTORE_POINT) { + } else if (XLogRecGetRmid(record) == RM_XLOG_ID && record_info == XLOG_RESTORE_POINT) { xl_restore_point *recordRestorePointData = (xl_restore_point *)XLogRecGetData(record); recordXtime = recordRestorePointData->rp_time; rc = strncpy_s(recordRPName, MAXFNAMELEN, recordRestorePointData->rp_name, MAXFNAMELEN - 1); @@ -7864,31 +7866,29 @@ static bool recoveryStopsHere(XLogReaderState *record, bool *includeThis) if (t_thrd.xlog_cxt.recoveryStopAfter) { ereport(LOG, - (errmsg("recovery stopping after WAL location (LSN) \"%X/%X\"", - (uint32)(t_thrd.xlog_cxt.recoveryStopLSN >> 32), - (uint32)t_thrd.xlog_cxt.recoveryStopLSN))); + (errmsg("recovery stopping after WAL location (LSN) \"%X/%X\"", + (uint32)(t_thrd.xlog_cxt.recoveryStopLSN >> 32), (uint32)t_thrd.xlog_cxt.recoveryStopLSN))); } else { ereport(LOG, - (errmsg("recovery stopping before WAL location (LSN) \"%X/%X\"", - (uint32)(t_thrd.xlog_cxt.recoveryStopLSN >> 32), - (uint32)t_thrd.xlog_cxt.recoveryStopLSN))); + (errmsg("recovery stopping before WAL location (LSN) \"%X/%X\"", + (uint32)(t_thrd.xlog_cxt.recoveryStopLSN >> 32), (uint32)t_thrd.xlog_cxt.recoveryStopLSN))); } return true; } /* Do we have a PITR target at all? */ - if (t_thrd.xlog_cxt.recoveryTarget == RECOVERY_TARGET_UNSET) { + if ((IS_DISASTER_RECOVER_MODE || IS_SHARED_STORAGE_STANBY_CLUSTER_MODE) && + t_thrd.xlog_cxt.recoveryTarget == RECOVERY_TARGET_UNSET) { // Save timestamp of latest transaction commit/abort if this is a // transaction record if (strlen((char *)walrcv->recoveryStopBarrierId) == 0 && - strlen((char *)walrcv->recoverySwitchoverBarrierId) == 0 ) { + strlen((char *)walrcv->recoverySwitchoverBarrierId) == 0) { if (XLogRecGetRmid(record) == RM_XACT_ID) { SetLatestXTime(recordXtime); } return false; - } - else { + } else { t_thrd.xlog_cxt.recoveryTarget = RECOVERY_TARGET_BARRIER; } } @@ -7896,7 +7896,7 @@ static bool recoveryStopsHere(XLogReaderState *record, bool *includeThis) #ifdef ENABLE_MULTIPLE_NODES if (t_thrd.xlog_cxt.recoveryTarget == RECOVERY_TARGET_XID) { #else - if (t_thrd.xlog_cxt.recoveryTarget == RECOVERY_TARGET_XID && XLogRecGetRmid(record) == RM_XACT_ID) { + if (t_thrd.xlog_cxt.recoveryTarget == RECOVERY_TARGET_XID && XLogRecGetRmid(record) == RM_XACT_ID) { #endif /* * There can be only one transaction end record with this exact @@ -7918,22 +7918,25 @@ static bool recoveryStopsHere(XLogReaderState *record, bool *includeThis) Assert(t_thrd.xlog_cxt.obsRecoveryTargetTime != NULL); Assert(recordBarrierId != NULL); if (t_thrd.xlog_cxt.obsRecoveryTargetTime == NULL || recordBarrierId == NULL) { - ereport(PANIC, (errmsg("recovery target is RECOVERY_TARGET_TIME_OBS, but obsRecoveryTargetTime not set"))); + ereport(PANIC, + (errmsg("recovery target is RECOVERY_TARGET_TIME_OBS, but obsRecoveryTargetTime not set"))); } if (strncmp(recordBarrierId, "hadr_", 5) == 0) { char *time_str = strrchr(recordBarrierId, '_'); time_str = time_str + 1; if (strcmp((char *)t_thrd.xlog_cxt.obsRecoveryTargetTime, time_str) <= 0) { stopsAtThisBarrier = true; + *includeThis = true; uint32 xlogOff; XLogSegNo xlogsegno; - + ereport(u_sess->attr.attr_storage.HaModuleDebug ? LOG : DEBUG4, + (errmsg("stop barrier success xlog record for %s", recordBarrierId))); /* truncate XLOG after barrier time. */ - if (IS_DISASTER_RECOVER_MODE) { + if (IS_DISASTER_RECOVER_MODE || IS_SHARED_STORAGE_STANBY_CLUSTER_MODE) { XLByteToSeg(record->EndRecPtr, xlogsegno); XLogFileName(xlogFileName, record->readPageTLI, xlogsegno); xlogOff = (uint32)(record->EndRecPtr) % XLogSegSize; - + TruncateAndRemoveXLogForRoachRestore(xlogFileName, xlogOff); xlogOff = (uint32)(record->EndRecPtr) % XLOG_BLCKSZ; if (xlogOff > 0 && xlogOff < XLOG_BLCKSZ) { @@ -7949,9 +7952,8 @@ static bool recoveryStopsHere(XLogReaderState *record, bool *includeThis) if ((XLogRecGetRmid(record) == RM_BARRIER_ID) && (record_info == XLOG_BARRIER_CREATE)) { ereport(DEBUG2, (errmsg("checking if barrier record matches the target barrier"))); if ((t_thrd.xlog_cxt.recoveryTargetBarrierId != NULL && recordBarrierId != NULL && - strcmp(t_thrd.xlog_cxt.recoveryTargetBarrierId, recordBarrierId) == 0) - ||(recordBarrierId != NULL && - strcmp((char *)walrcv->recoveryStopBarrierId, recordBarrierId) == 0)) { + strcmp(t_thrd.xlog_cxt.recoveryTargetBarrierId, recordBarrierId) == 0) || + (recordBarrierId != NULL && strcmp((char *)walrcv->recoveryStopBarrierId, recordBarrierId) == 0)) { stopsAtThisBarrier = true; uint32 xlogOff; XLogSegNo xlogsegno; @@ -7969,9 +7971,8 @@ static bool recoveryStopsHere(XLogReaderState *record, bool *includeThis) securec_check(rc, "", ""); } } - } - else if (recordBarrierId != NULL && - strcmp((char *)walrcv->recoverySwitchoverBarrierId, recordBarrierId) == 0) { + } else if (recordBarrierId != NULL && + strcmp((char *)walrcv->recoverySwitchoverBarrierId, recordBarrierId) == 0) { stopsAtThisBarrier = true; ereport(LOG, (errmsg("reach switchover barrierID %s", (char *)walrcv->recoverySwitchoverBarrierId))); } @@ -8053,8 +8054,8 @@ static bool recoveryStopsHere(XLogReaderState *record, bool *includeThis) } else { stopBarrierId = (char *)walrcv->recoverySwitchoverBarrierId; } - ereport(LOG, (errmsg("recovery stopping at barrier %s, time %s", IS_DISASTER_RECOVER_MODE ? - stopBarrierId : t_thrd.xlog_cxt.recoveryTargetBarrierId, + ereport(LOG, (errmsg("recovery stopping at barrier %s, time %s", + IS_DISASTER_RECOVER_MODE ? stopBarrierId : t_thrd.xlog_cxt.recoveryTargetBarrierId, timestamptz_to_str(t_thrd.xlog_cxt.recoveryStopTime)))); return true; #endif @@ -8156,7 +8157,7 @@ static bool RecoveryApplyDelay(const XLogReaderState *record) uint8 xactInfo; TimestampTz xtime; long secs; - int microsecs; + int microsecs; long waitTime = 0; if (!CheckApplyDelayReady()) { @@ -8182,10 +8183,10 @@ static bool RecoveryApplyDelay(const XLogReaderState *record) } else { return false; } - + u_sess->attr.attr_storage.recoveryDelayUntilTime = TimestampTzPlusMilliseconds(xtime, u_sess->attr.attr_storage.recovery_min_apply_delay); - + /* Exit without arming the latch if it's already past time to apply this record */ TimestampDifference(GetCurrentTimestamp(), u_sess->attr.attr_storage.recoveryDelayUntilTime, &secs, µsecs); if (secs <= 0 && microsecs <= 0) { @@ -8203,8 +8204,7 @@ static bool RecoveryApplyDelay(const XLogReaderState *record) } /* Wait for difference between GetCurrentTimestamp() and recoveryDelayUntilTime */ - TimestampDifference(GetCurrentTimestamp(), u_sess->attr.attr_storage.recoveryDelayUntilTime, - &secs, µsecs); + TimestampDifference(GetCurrentTimestamp(), u_sess->attr.attr_storage.recoveryDelayUntilTime, &secs, µsecs); /* To clear LSNMarker item that has not been processed in pageworker */ ProcTxnWorkLoad(false); @@ -8216,8 +8216,7 @@ static bool RecoveryApplyDelay(const XLogReaderState *record) /* delay 1s every time */ waitTime = (secs >= 1) ? 1000 : (microsecs / 1000); - (void)WaitLatch(&t_thrd.shemem_ptr_cxt.XLogCtl->recoveryWakeupLatch, - WL_LATCH_SET | WL_TIMEOUT, waitTime); + (void)WaitLatch(&t_thrd.shemem_ptr_cxt.XLogCtl->recoveryWakeupLatch, WL_LATCH_SET | WL_TIMEOUT, waitTime); } return true; } @@ -8536,7 +8535,7 @@ inline void PrintCkpXctlControlFile(XLogRecPtr oldCkpLoc, CheckPoint *oldCkp, XL void CheckForRestartPoint() { XLogCtlData *xlogctl = t_thrd.shemem_ptr_cxt.XLogCtl; - + if (XLByteLT(xlogctl->lastCheckPointRecPtr, g_instance.comm_cxt.predo_cxt.newestCheckpointLoc)) { Assert(XLByteLT(xlogctl->lastCheckPoint.redo, g_instance.comm_cxt.predo_cxt.newestCheckpoint.redo)); Assert(g_instance.comm_cxt.predo_cxt.newestCheckpoint.nextXid >= xlogctl->lastCheckPoint.nextXid); @@ -8581,15 +8580,15 @@ void CheckForRestartPoint() #define REL_NODE_FORMAT(rnode) (rnode).spcNode, (rnode).dbNode, (rnode).relNode, (rnode).bucketNode -void WriteRemainSegsFile(int fd, const char* buffer, uint32 usedLen) +void WriteRemainSegsFile(int fd, const char *buffer, uint32 usedLen) { if (write(fd, buffer, usedLen) != usedLen) { /* if write didn't set errno, assume problem is no disk space */ if (errno == 0) { errno = ENOSPC; } - ereport(PANIC, (errcode_for_file_access(), - errmsg("could not write remain segs check start point to file: %m"))); + ereport(PANIC, + (errcode_for_file_access(), errmsg("could not write remain segs check start point to file: %m"))); } if (pg_fsync(fd) != 0) { @@ -8607,20 +8606,20 @@ void XLogCopyRemainSegsToBuf(int fd) remainSegsNum = hash_get_num_entries(t_thrd.xlog_cxt.remain_segs); WriteRemainSegsFile(fd, (char *)&remainSegsNum, sizeof(uint32)); - + HASH_SEQ_STATUS status; hash_seq_init(&status, t_thrd.xlog_cxt.remain_segs); - + ExtentTag *extentTag = NULL; while ((extentTag = (ExtentTag *)hash_seq_search(&status)) != NULL) { ereport(WARNING, (errmsg("Segment [%u, %u, %u, %d] is remained segment, remain extent type %s.", - REL_NODE_FORMAT(extentTag->remainExtentHashTag.rnode), - XlogGetRemainExtentTypeName(extentTag->remainExtentType)))); + REL_NODE_FORMAT(extentTag->remainExtentHashTag.rnode), + XlogGetRemainExtentTypeName(extentTag->remainExtentType)))); WriteRemainSegsFile(fd, (char *)extentTag, sizeof(ExtentTag)); } } -void RecoveryRemainSegsFromRemainSegsFile(struct HTAB* remainSegsHtbl, uint32 remainSegNum, char* buf) +void RecoveryRemainSegsFromRemainSegsFile(struct HTAB *remainSegsHtbl, uint32 remainSegNum, char *buf) { if (remainSegNum == 0) { return; @@ -8650,8 +8649,8 @@ bool IsRemainSegsFileExist() struct stat segFileSt; if (stat(XLOG_REMAIN_SEGS_FILE_PATH, &segFileSt) < 0) { if (errno != ENOENT) { - ereport(ERROR, (errcode_for_file_access(), errmsg("could not stat directory \"%s\": %m", - XLOG_REMAIN_SEGS_FILE_PATH))); + ereport(ERROR, (errcode_for_file_access(), + errmsg("could not stat directory \"%s\": %m", XLOG_REMAIN_SEGS_FILE_PATH))); } return false; } @@ -8698,7 +8697,8 @@ static bool ReadRemainSegsFileContentToBuffer(int fd, char**contentBuffer) readLen = read(fd, &remainEntryNum, sizeof(uint32)); if (readLen < sizeof(uint32)) { ereport(WARNING, (errcode_for_file_access(), errmsg("read remain entry num len %u from remain segs file" - "\"%s\" is less than %lu: %m.", readLen, XLOG_REMAIN_SEGS_FILE_PATH, sizeof(uint32)))); + "\"%s\" is less than %lu: %m.", + readLen, XLOG_REMAIN_SEGS_FILE_PATH, sizeof(uint32)))); return false; } @@ -8805,8 +8805,9 @@ static void ReadRemainSegsFile() int fd = BasicOpenFile(XLOG_REMAIN_SEGS_FILE_PATH, O_RDWR | PG_BINARY, S_IRUSR | S_IWUSR); if (fd < 0) { - ereport(WARNING, (errcode_for_file_access(), errmsg("could not open remain segs file \"%s\": %m", - XLOG_REMAIN_SEGS_FILE_PATH))); + ereport(WARNING, (errcode_for_file_access(), + errmsg("could not open remain segs file \"%s\": %m", XLOG_REMAIN_SEGS_FILE_PATH))); + return; } XLogRecPtr oldStartPoint = InvalidXLogRecPtr; @@ -8818,8 +8819,8 @@ static void ReadRemainSegsFile() } if (close(fd)) { - ereport(WARNING, (errcode_for_file_access(), errmsg("could not close remain segs file \"%s\": %m", - XLOG_REMAIN_SEGS_FILE_PATH))); + ereport(WARNING, (errcode_for_file_access(), + errmsg("could not close remain segs file \"%s\": %m", XLOG_REMAIN_SEGS_FILE_PATH))); } if (!readRightContent) { @@ -8936,7 +8937,7 @@ void XLogUpdateRemainCommitLsn() XLogRecPtr remaincommit = GetRemainCommitLsn(); if (!XLogRecPtrIsInvalid(remaincommit)) { ereport(WARNING, (errmsg("There is dropped extent leaking, incremental checkpoint is not safe before %X/%X.", - (uint32)(remaincommit >> 32), (uint32)remaincommit))); + (uint32)(remaincommit >> 32), (uint32)remaincommit))); } } @@ -8948,7 +8949,7 @@ void InitWalSemaphores() { /* Create a memory context and allocate semaphores used by wal writer. */ g_instance.wal_context = AllocSetContextCreate(g_instance.instance_context, "WalContext", ALLOCSET_DEFAULT_MINSIZE, - ALLOCSET_DEFAULT_INITSIZE, ALLOCSET_DEFAULT_MAXSIZE, SHARED_CONTEXT); + ALLOCSET_DEFAULT_INITSIZE, ALLOCSET_DEFAULT_MAXSIZE, SHARED_CONTEXT); MemoryContext old_context = MemoryContextSwitchTo(g_instance.wal_context); /* @@ -8956,7 +8957,7 @@ void InitWalSemaphores() */ g_instance.wal_cxt.walFlushWaitLock = (WALFlushWaitLockPadded *)palloc(sizeof(WALFlushWaitLockPadded) * 2); g_instance.wal_cxt.walFlushWaitLock = (WALFlushWaitLockPadded *)TYPEALIGN(sizeof(WALFlushWaitLockPadded), - g_instance.wal_cxt.walFlushWaitLock); + g_instance.wal_cxt.walFlushWaitLock); g_instance.wal_cxt.walFlushWaitLock->l.lock = LWLockAssign(LWTRANCHE_WAL_FLUSH_WAIT); PGSemaphoreCreate(&g_instance.wal_cxt.walFlushWaitLock->l.sem); PGSemaphoreReset(&g_instance.wal_cxt.walFlushWaitLock->l.sem); @@ -8968,7 +8969,7 @@ void InitWalSemaphores() (WALBufferInitWaitLockPadded *)palloc(sizeof(WALBufferInitWaitLockPadded) * 2); g_instance.wal_cxt.walBufferInitWaitLock = (WALBufferInitWaitLockPadded *)TYPEALIGN(sizeof(WALBufferInitWaitLockPadded), - g_instance.wal_cxt.walBufferInitWaitLock); + g_instance.wal_cxt.walBufferInitWaitLock); g_instance.wal_cxt.walBufferInitWaitLock->l.lock = LWLockAssign(LWTRANCHE_WAL_BUFFER_INIT_WAIT); PGSemaphoreCreate(&g_instance.wal_cxt.walBufferInitWaitLock->l.sem); PGSemaphoreReset(&g_instance.wal_cxt.walBufferInitWaitLock->l.sem); @@ -8978,7 +8979,7 @@ void InitWalSemaphores() */ g_instance.wal_cxt.walInitSegLock = (WALInitSegLockPadded *)palloc(sizeof(WALInitSegLockPadded) * 2); g_instance.wal_cxt.walInitSegLock = (WALInitSegLockPadded *)TYPEALIGN(sizeof(WALInitSegLockPadded), - g_instance.wal_cxt.walInitSegLock); + g_instance.wal_cxt.walInitSegLock); g_instance.wal_cxt.walInitSegLock->l.lock = LWLockAssign(LWTRANCHE_WAL_INIT_SEGMENT); PGSemaphoreCreate(&g_instance.wal_cxt.walInitSegLock->l.sem); PGSemaphoreReset(&g_instance.wal_cxt.walInitSegLock->l.sem); @@ -8986,32 +8987,61 @@ void InitWalSemaphores() (void)MemoryContextSwitchTo(old_context); } +static void checkHadrInSwitchover() +{ + FILE *fd = NULL; + char *switchoverFile = "cluster_maintance"; + + /* Whether streaming DR is configured */ + if (!t_thrd.postmaster_cxt.HaShmData->is_cross_region) { + return; + } + + fd = fopen(switchoverFile, "r"); + + if (fd == NULL) { + ereport(LOG, (errmsg("===Not in the streaming DR switchover==="))); + return; + } + + ereport(LOG, (errmsg("===In the streaming DR switchover==="))); + g_instance.streaming_dr_cxt.isInSwitchover = true; + fclose(fd); + + return; +} + static bool IsHadrAchiveInSwitchover() { errno_t rc = 0; List *all_archive_slots = NIL; - all_archive_slots = get_all_archive_obs_slots_name(); + all_archive_slots = GetAllArchiveSlotsName(); if (all_archive_slots == NIL || all_archive_slots->length == 0) { return false; } char *slotname = (char *)lfirst((list_head(all_archive_slots))); ArchiveSlotConfig *archive_conf = NULL; - archive_conf = getObsReplicationSlotWithName(slotname); + archive_conf = getArchiveReplicationSlotWithName(slotname); if (archive_conf == NULL) { list_free_deep(all_archive_slots); all_archive_slots = NULL; return false; } + /* hadr only support OBS */ + if (archive_conf->archive_config.media_type != ARCHIVE_OBS) { + return false; + } + char pathPrefix[MAXPGPATH] = {0}; - ObsArchiveConfig obsConfig; + ArchiveConfig obsConfig; /* copy OBS configs to temporary variable for customising file path */ - rc = memcpy_s(&obsConfig, sizeof(ObsArchiveConfig), &archive_conf->archive_obs, sizeof(ObsArchiveConfig)); + rc = memcpy_s(&obsConfig, sizeof(ArchiveConfig), &archive_conf->archive_config, sizeof(ArchiveConfig)); securec_check(rc, "", ""); if (!IS_PGXC_COORDINATOR) { - rc = strcpy_s(pathPrefix, MAXPGPATH, obsConfig.obs_prefix); + rc = strcpy_s(pathPrefix, MAXPGPATH, obsConfig.archive_prefix); securec_check_c(rc, "\0", "\0"); char *p = strrchr(pathPrefix, '/'); @@ -9022,7 +9052,7 @@ static bool IsHadrAchiveInSwitchover() } *p = '\0'; - obsConfig.obs_prefix = pathPrefix; + obsConfig.archive_prefix = pathPrefix; } List *objectList = obsList(HADR_MASTER_CLUSTER_STAT_FILE, &obsConfig, false); @@ -9040,8 +9070,8 @@ static bool IsHadrAchiveInSwitchover() } ereport(LOG, (errmsg("===IsHadrAchiveInSwitchover===\n " - "masterClusterStat %s\n switchoverBarrier %s\n in_switchover %d", - masterClusterStat, switchoverBarrier, g_instance.archive_obs_cxt.in_switchover))); + "masterClusterStat %s\n switchoverBarrier %s\n in_switchover %d", + masterClusterStat, switchoverBarrier, g_instance.archive_obs_cxt.in_switchover))); list_free_deep(all_archive_slots); all_archive_slots = NULL; @@ -9049,10 +9079,10 @@ static bool IsHadrAchiveInSwitchover() if (strncmp(masterClusterStat, HADR_SWITCHOVER_TO_STANDBY, strlen(HADR_SWITCHOVER_TO_STANDBY)) == 0 && strncmp(switchoverBarrier, HADR_BARRIER_ID_HEAD, strlen(HADR_BARRIER_ID_HEAD)) == 0) { ereport(LOG, (errmsg("[hadr_switchover]Cannot write xlogs " - "because service truncation has been completed."))); + "because service truncation has been completed."))); return true; } - + return false; } @@ -9060,28 +9090,33 @@ static bool IsHadrRecoveryInSwitchoverOrfailover() { errno_t rc = 0; List *all_archive_slots = NIL; - all_archive_slots = get_all_recovery_obs_slots_name(); + all_archive_slots = GetAllRecoverySlotsName(); if (all_archive_slots == NIL || all_archive_slots->length == 0) { return false; } char *slotname = (char *)lfirst((list_head(all_archive_slots))); ArchiveSlotConfig *archive_conf = NULL; - archive_conf = getObsRecoverySlotWithName(slotname); + archive_conf = getArchiveRecoverySlotWithName(slotname); if (archive_conf == NULL) { list_free_deep(all_archive_slots); all_archive_slots = NULL; return false; } + /* hadr only support OBS */ + if (archive_conf->archive_config.media_type != ARCHIVE_OBS) { + return false; + } + char pathPrefix[MAXPGPATH] = {0}; - ObsArchiveConfig obsConfig; + ArchiveConfig obsConfig; /* copy OBS configs to temporary variable for customising file path */ - rc = memcpy_s(&obsConfig, sizeof(ObsArchiveConfig), &archive_conf->archive_obs, sizeof(ObsArchiveConfig)); + rc = memcpy_s(&obsConfig, sizeof(ArchiveConfig), &archive_conf->archive_config, sizeof(ArchiveConfig)); securec_check(rc, "", ""); if (!IS_PGXC_COORDINATOR) { - rc = strcpy_s(pathPrefix, MAXPGPATH, obsConfig.obs_prefix); + rc = strcpy_s(pathPrefix, MAXPGPATH, obsConfig.archive_prefix); securec_check_c(rc, "\0", "\0"); char *p = strrchr(pathPrefix, '/'); @@ -9092,7 +9127,7 @@ static bool IsHadrRecoveryInSwitchoverOrfailover() } *p = '\0'; - obsConfig.obs_prefix = pathPrefix; + obsConfig.archive_prefix = pathPrefix; } List *objectList = obsList(HADR_MASTER_CLUSTER_STAT_FILE, &obsConfig, false); @@ -9109,20 +9144,20 @@ static bool IsHadrRecoveryInSwitchoverOrfailover() } ereport(LOG, (errmsg("===IsHadrRecoveryInSwitchoverOrFailover===\n " - "masterClusterStat %s\n standbyClusterStat %s\n", - masterClusterStat, standbyClusterStat))); + "masterClusterStat %s\n standbyClusterStat %s\n", + masterClusterStat, standbyClusterStat))); list_free_deep(all_archive_slots); all_archive_slots = NULL; - if ((IS_PGXC_DATANODE && - (strncmp(standbyClusterStat, HADR_SWITCHOVER_TO_MASTER, strlen(HADR_SWITCHOVER_TO_MASTER)) == 0 || - strncmp(standbyClusterStat, HADR_IN_FAILOVER, strlen(HADR_IN_FAILOVER)) == 0)) || - strncmp(masterClusterStat, HADR_SWITCHOVER_TO_STANDBY, strlen(HADR_SWITCHOVER_TO_STANDBY)) == 0){ + if ((IS_PGXC_DATANODE && + (strncmp(standbyClusterStat, HADR_SWITCHOVER_TO_MASTER, strlen(HADR_SWITCHOVER_TO_MASTER)) == 0 || + strncmp(standbyClusterStat, HADR_IN_FAILOVER, strlen(HADR_IN_FAILOVER)) == 0)) || + strncmp(masterClusterStat, HADR_SWITCHOVER_TO_STANDBY, strlen(HADR_SWITCHOVER_TO_STANDBY)) == 0) { ereport(LOG, (errmsg("[hadr_switchover_failover]The recovery is complete and needs to be stopped."))); return true; } - + return false; } @@ -9171,6 +9206,7 @@ void StartupXLOG(void) checkPointUndo.oldestXidInUndo = InvalidTransactionId; t_thrd.xlog_cxt.startup_processing = true; t_thrd.xlog_cxt.RedoDone = false; + t_thrd.xlog_cxt.currentRetryTimes = 0; t_thrd.xlog_cxt.forceFinishHappened = false; g_instance.comm_cxt.predo_cxt.redoPf.recovery_done_ptr = 0; g_instance.comm_cxt.predo_cxt.redoPf.redo_done_time = 0; @@ -9184,25 +9220,26 @@ void StartupXLOG(void) /* Initialize size of walInsertStatusTable first. */ InitXlogStatuEntryTblSize(); - g_instance.wal_cxt.walInsertStatusTable = - (WALInsertStatusEntry *)palloc(sizeof(WALInsertStatusEntry) * + g_instance.wal_cxt.walInsertStatusTable = (WALInsertStatusEntry *)palloc( + sizeof(WALInsertStatusEntry) * (GET_WAL_INSERT_STATUS_ENTRY_CNT(g_instance.attr.attr_storage.wal_insert_status_entries_power) + 1)); - g_instance.wal_cxt.walInsertStatusTable = (WALInsertStatusEntry *)TYPEALIGN(sizeof(WALInsertStatusEntry), - g_instance.wal_cxt.walInsertStatusTable); + g_instance.wal_cxt.walInsertStatusTable = + (WALInsertStatusEntry *)TYPEALIGN(sizeof(WALInsertStatusEntry), g_instance.wal_cxt.walInsertStatusTable); (void)MemoryContextSwitchTo(old_context); } - errorno = memset_s(g_instance.wal_cxt.walInsertStatusTable, - sizeof(WALInsertStatusEntry) * - GET_WAL_INSERT_STATUS_ENTRY_CNT(g_instance.attr.attr_storage.wal_insert_status_entries_power), - 0, - sizeof(WALInsertStatusEntry) * - GET_WAL_INSERT_STATUS_ENTRY_CNT(g_instance.attr.attr_storage.wal_insert_status_entries_power)); + errorno = + memset_s(g_instance.wal_cxt.walInsertStatusTable, + sizeof(WALInsertStatusEntry) * + GET_WAL_INSERT_STATUS_ENTRY_CNT(g_instance.attr.attr_storage.wal_insert_status_entries_power), + 0, + sizeof(WALInsertStatusEntry) * + GET_WAL_INSERT_STATUS_ENTRY_CNT(g_instance.attr.attr_storage.wal_insert_status_entries_power)); securec_check(errorno, "", ""); for (int i = 0; i < GET_WAL_INSERT_STATUS_ENTRY_CNT(g_instance.attr.attr_storage.wal_insert_status_entries_power); - i++) { + i++) { g_instance.wal_cxt.walInsertStatusTable[i].LRC = i; } @@ -9383,10 +9420,9 @@ void StartupXLOG(void) else if (t_thrd.xlog_cxt.recoveryTarget == RECOVERY_TARGET_NAME) { ereport(LOG, (errmsg("starting point-in-time recovery to \"%s\"", t_thrd.xlog_cxt.recoveryTargetName))); } else if (t_thrd.xlog_cxt.recoveryTarget == RECOVERY_TARGET_LSN) { - ereport(LOG, - (errmsg("starting point-in-time recovery to WAL location (LSN) \"%X/%X\"", - (uint32)(t_thrd.xlog_cxt.recoveryTargetLSN >> 32), - (uint32)t_thrd.xlog_cxt.recoveryTargetLSN))); + ereport(LOG, (errmsg("starting point-in-time recovery to WAL location (LSN) \"%X/%X\"", + (uint32)(t_thrd.xlog_cxt.recoveryTargetLSN >> 32), + (uint32)t_thrd.xlog_cxt.recoveryTargetLSN))); } else { ereport(LOG, (errmsg("starting archive recovery"))); } @@ -9414,7 +9450,7 @@ void StartupXLOG(void) g_instance.comm_cxt.predo_cxt.redoPf.redo_start_time = GetCurrentTimestamp(); if (read_backup_label(&checkPointLoc, &backupEndRequired, &backupFromStandby, &backupFromRoach)) { - List* tablespaces = NIL; + List *tablespaces = NIL; /* * Archive recovery was requested, and thanks to the backup label file, * we know how far we need to replay to reach consistency. Enter @@ -9484,12 +9520,12 @@ void StartupXLOG(void) /* read the tablespace_map file if present and create symlinks. */ if (read_tablespace_map(&tablespaces)) { - ListCell* lc; + ListCell *lc; errno_t rc = EOK; foreach (lc, tablespaces) { - tablespaceinfo* ti = (tablespaceinfo*)lfirst(lc); + tablespaceinfo *ti = (tablespaceinfo *)lfirst(lc); int length = PG_TBLSPCS + strlen(ti->oid) + 1; - char* linkloc = (char*)palloc0(length); + char *linkloc = (char *)palloc0(length); rc = snprintf_s(linkloc, length, length - 1, "pg_tblspc/%s", ti->oid); securec_check_ss_c(rc, "", ""); /* @@ -9501,7 +9537,7 @@ void StartupXLOG(void) if (symlink(ti->path, linkloc) < 0) { pfree(linkloc); ereport(ERROR, - (errcode_for_file_access(), errmsg("could not create symbolic link \"%s\": %m", linkloc))); + (errcode_for_file_access(), errmsg("could not create symbolic link \"%s\": %m", linkloc))); } pfree(linkloc); @@ -9529,13 +9565,14 @@ void StartupXLOG(void) if (stat(TABLESPACE_MAP, &st) == 0) { unlink(TABLESPACE_MAP_OLD); if (durable_rename(TABLESPACE_MAP, TABLESPACE_MAP_OLD, DEBUG1) == 0) - ereport(LOG, - (errmsg("ignoring file \"%s\" because no file \"%s\" exists", TABLESPACE_MAP, BACKUP_LABEL_FILE), - errdetail("File \"%s\" was renamed to \"%s\".", TABLESPACE_MAP, TABLESPACE_MAP_OLD))); + ereport(LOG, (errmsg("ignoring file \"%s\" because no file \"%s\" exists", TABLESPACE_MAP, + BACKUP_LABEL_FILE), + errdetail("File \"%s\" was renamed to \"%s\".", TABLESPACE_MAP, TABLESPACE_MAP_OLD))); else ereport(LOG, - (errmsg("ignoring \"%s\" file because no \"%s\" file exists", TABLESPACE_MAP, BACKUP_LABEL_FILE), - errdetail("Could not rename file \"%s\" to \"%s\": %m.", TABLESPACE_MAP, TABLESPACE_MAP_OLD))); + (errmsg("ignoring \"%s\" file because no \"%s\" file exists", TABLESPACE_MAP, + BACKUP_LABEL_FILE), + errdetail("Could not rename file \"%s\" to \"%s\": %m.", TABLESPACE_MAP, TABLESPACE_MAP_OLD))); } /* @@ -9670,9 +9707,8 @@ void StartupXLOG(void) (uint32)checkPoint.redo, wasShutdown ? "TRUE" : "FALSE"))); ereport(DEBUG1, (errmsg("next MultiXactId: " XID_FMT "; next MultiXactOffset: " XID_FMT, checkPoint.nextMulti, checkPoint.nextMultiOffset))); - ereport(DEBUG1, - (errmsg("oldest unfrozen transaction ID: " XID_FMT ", in database %u", - checkPoint.oldestXid, checkPoint.oldestXidDB))); + ereport(DEBUG1, (errmsg("oldest unfrozen transaction ID: " XID_FMT ", in database %u", checkPoint.oldestXid, + checkPoint.oldestXidDB))); if (!TransactionIdIsNormal(checkPoint.nextXid)) { ereport(PANIC, (errmsg("invalid next transaction ID"))); } @@ -9702,7 +9738,7 @@ void StartupXLOG(void) t_thrd.xact_cxt.ShmemVariableCache->xmin = t_thrd.xact_cxt.ShmemVariableCache->nextXid; t_thrd.xact_cxt.ShmemVariableCache->recentLocalXmin = latestCompletedXid + 1; t_thrd.xact_cxt.ShmemVariableCache->startupMaxXid = t_thrd.xact_cxt.ShmemVariableCache->nextXid; - g_instance.ckpt_cxt_ctl->ckpt_current_redo_point = checkPoint.redo; + g_instance.ckpt_cxt_ctl->ckpt_view.ckpt_current_redo_point = checkPoint.redo; /* init dirty page queue rec lsn to checkpoint.redo */ update_dirty_page_queue_rec_lsn(checkPoint.redo, true); @@ -9771,11 +9807,11 @@ void StartupXLOG(void) t_thrd.xact_cxt.ShmemVariableCache->recentGlobalXmin = InvalidTransactionId; /* Read oldest xid having undo from checkpoint and set in proc global. */ if (t_thrd.proc->workingVersionNum >= INPLACE_UPDATE_WERSION_NUM) { - pg_atomic_write_u64(&g_instance.proc_base->oldestXidInUndo, - checkPointUndo.oldestXidInUndo); + pg_atomic_write_u64(&g_instance.proc_base->oldestXidInUndo, checkPointUndo.oldestXidInUndo); + ereport(LOG, (errmsg("Startup: write global oldestXidInUndo %lu from checkpoint %lu", + g_instance.proc_base->oldestXidInUndo, checkPointUndo.oldestXidInUndo))); } else { - pg_atomic_write_u64(&g_instance.proc_base->oldestXidInUndo, - InvalidTransactionId); + pg_atomic_write_u64(&g_instance.proc_base->oldestXidInUndo, InvalidTransactionId); } /* @@ -9950,8 +9986,8 @@ void StartupXLOG(void) } else if (backupFromRoach) { t_thrd.shemem_ptr_cxt.ControlFile->backupEndPoint = t_thrd.shemem_ptr_cxt.ControlFile->minRecoveryPoint; ereport(LOG, (errmsg("perform roach backup restore and set backup end point to %X/%X", - (uint32)(t_thrd.shemem_ptr_cxt.ControlFile->backupEndPoint >> 32), - (uint32)t_thrd.shemem_ptr_cxt.ControlFile->backupEndPoint))); + (uint32)(t_thrd.shemem_ptr_cxt.ControlFile->backupEndPoint >> 32), + (uint32)t_thrd.shemem_ptr_cxt.ControlFile->backupEndPoint))); g_instance.roach_cxt.isRoachRestore = true; } } @@ -10104,7 +10140,8 @@ void StartupXLOG(void) * process in addition to postmaster! Also, fsync requests are * subsequently to be handled by the checkpointer, not locally. */ - if ((t_thrd.xlog_cxt.ArchiveRecoveryRequested || IS_PGXC_COORDINATOR || IS_SINGLE_NODE || isRestoreMode) && IsUnderPostmaster) { + if ((t_thrd.xlog_cxt.ArchiveRecoveryRequested || IS_PGXC_COORDINATOR || IS_SINGLE_NODE || isRestoreMode) && + IsUnderPostmaster) { PublishStartupProcessInformation(); EnableSyncRequestForwarding(); SendPostmasterSignal(PMSIGNAL_RECOVERY_STARTED); @@ -10128,6 +10165,7 @@ void StartupXLOG(void) (uint32)t_thrd.shemem_ptr_cxt.ControlFile->backupStartPoint, t_thrd.shemem_ptr_cxt.ControlFile->backupEndRequired ? "TRUE" : "FALSE"))); + pg_atomic_write_u32(&t_thrd.walreceiverfuncs_cxt.WalRcv->rcvDoneFromShareStorage, false); // Allow read-only connections immediately if we're consistent already. CheckRecoveryConsistency(); @@ -10142,7 +10180,7 @@ void StartupXLOG(void) } XLogReaderState *oldXlogReader = xlogreader; - + if (record != NULL) { bool recoveryContinue = true; bool recoveryApply = true; @@ -10176,9 +10214,8 @@ void StartupXLOG(void) ereport(LOG, (errmsg("redo starts at %X/%X", (uint32)(t_thrd.xlog_cxt.ReadRecPtr >> 32), (uint32)t_thrd.xlog_cxt.ReadRecPtr))); - if (IS_DISASTER_RECOVER_MODE && (t_thrd.xlog_cxt.recoveryTarget != RECOVERY_TARGET_TIME_OBS)) { - update_stop_barrier(); - } + + update_stop_barrier(); INSTR_TIME_SET_CURRENT(rec_startTime); t_thrd.xlog_cxt.RedoStartLSN = t_thrd.xlog_cxt.ReadRecPtr; g_instance.comm_cxt.predo_cxt.redoPf.redo_start_ptr = t_thrd.xlog_cxt.RedoStartLSN; @@ -10236,8 +10273,8 @@ void StartupXLOG(void) extreme_rto::ExtremeRtoStopHere(); /* Exit loop if we reached non-inclusive recovery target */ if (!recoveryApply && - (t_thrd.xlog_cxt.server_mode == PRIMARY_MODE || t_thrd.xlog_cxt.server_mode == NORMAL_MODE - || (IS_DISASTER_RECOVER_MODE && (t_thrd.xlog_cxt.recoveryTarget != RECOVERY_TARGET_TIME_OBS)))) { + (t_thrd.xlog_cxt.server_mode == PRIMARY_MODE || t_thrd.xlog_cxt.server_mode == NORMAL_MODE || + (IS_DISASTER_RECOVER_MODE && (t_thrd.xlog_cxt.recoveryTarget != RECOVERY_TARGET_TIME_OBS)))) { break; } } @@ -10258,9 +10295,9 @@ void StartupXLOG(void) if (xlogctl->recoveryPause) { recoveryPausesHere(); } - } + } #endif - + /* * ShmemVariableCache->nextXid must be beyond record's xid. * @@ -10302,11 +10339,11 @@ void StartupXLOG(void) /* Remember this record as the last-applied one */ t_thrd.xlog_cxt.LastRec = t_thrd.xlog_cxt.ReadRecPtr; - + /* Exit loop if we reached inclusive recovery target */ if (!recoveryContinue && - (t_thrd.xlog_cxt.server_mode == PRIMARY_MODE || t_thrd.xlog_cxt.server_mode == NORMAL_MODE - || IS_DISASTER_RECOVER_MODE)) { + (t_thrd.xlog_cxt.server_mode == PRIMARY_MODE || t_thrd.xlog_cxt.server_mode == NORMAL_MODE || + IS_DISASTER_RECOVER_MODE || IS_SHARED_STORAGE_STANBY_CLUSTER_MODE)) { break; } @@ -10314,10 +10351,10 @@ void StartupXLOG(void) t_thrd.xlog_cxt.forceFinishHappened = true; ereport(WARNING, (errmsg("[ForceFinish]force finish redo triggered when StartupXLOG, ReadRecPtr:%08X/%08X," - "EndRecPtr:%08X/%08X, StandbyMode:%u, startup_processing:%u, dummyStandbyMode:%u", + "EndRecPtr:%08X/%08X, StandbyMode:%u, startup_processing:%u, dummyStandbyMode:%u", (uint32)(t_thrd.xlog_cxt.ReadRecPtr >> 32), (uint32)t_thrd.xlog_cxt.ReadRecPtr, - (uint32)(t_thrd.xlog_cxt.EndRecPtr >> 32), (uint32)t_thrd.xlog_cxt.EndRecPtr, - t_thrd.xlog_cxt.StandbyMode, t_thrd.xlog_cxt.startup_processing, + (uint32)(t_thrd.xlog_cxt.EndRecPtr >> 32), (uint32)t_thrd.xlog_cxt.EndRecPtr, + t_thrd.xlog_cxt.StandbyMode, t_thrd.xlog_cxt.startup_processing, dummyStandbyMode))); ArchiveXlogForForceFinishRedo(xlogreader, &term_file); newXlogReader->readOff = INVALID_READ_OFF; @@ -10332,9 +10369,11 @@ void StartupXLOG(void) SendRecoveryEndMarkToWorkersAndWaitForFinish(0); RecoveryXlogReader(oldXlogReader, xlogreader); - if (t_thrd.xlog_cxt.recoveryPauseAtTarget && reachedStopPoint && !IS_DISASTER_RECOVER_MODE) { - SetRecoveryPause(true); - recoveryPausesHere(); + if (!(IS_DISASTER_RECOVER_MODE || IS_SHARED_STORAGE_STANBY_CLUSTER_MODE)) { + if (t_thrd.xlog_cxt.recoveryPauseAtTarget && reachedStopPoint) { + SetRecoveryPause(true); + recoveryPausesHere(); + } } /* redo finished, we set is_recovery_done to true for query */ g_instance.comm_cxt.predo_cxt.redoPf.recovery_done_ptr = t_thrd.xlog_cxt.ReadRecPtr; @@ -10345,6 +10384,8 @@ void StartupXLOG(void) (uint32)t_thrd.xlog_cxt.ReadRecPtr, (uint32)(t_thrd.xlog_cxt.EndRecPtr >> 32), (uint32)t_thrd.xlog_cxt.EndRecPtr))); + checkHadrInSwitchover(); + bool isInHadrSwitchover = false; /* In Hadr Switchover */ if (IS_DISASTER_RECOVER_MODE || IS_CNDISASTER_RECOVER_MODE) { @@ -10353,12 +10394,12 @@ void StartupXLOG(void) isInHadrSwitchover = IsHadrAchiveInSwitchover(); } - if (isInHadrSwitchover){ + if (isInHadrSwitchover) { do { pg_usleep(1000000L); /* 1000 ms */ ereport(LOG, (errmsg("[hadr_switchover]=====sleep====="))); RedoInterruptCallBack(); - } while(1); + } while (1); } INSTR_TIME_SET_CURRENT(rec_endTime); @@ -10377,7 +10418,7 @@ void StartupXLOG(void) redo_unlink_stats_file(); parallel_recovery::redo_dump_all_stats(); /* check all the received xlog have been redo when switchover */ - if (CheckForSwitchoverTrigger()) { + if ((!IS_SHARED_STORAGE_STANBY_CLUSTER_MODE) && CheckForSwitchoverTrigger()) { XLogRecPtr receivedUpto = GetWalRcvWriteRecPtr(NULL); XLogRecPtr EndRecPtrTemp = t_thrd.xlog_cxt.EndRecPtr; XLByteAdvance(EndRecPtrTemp, SizeOfXLogRecord); @@ -10403,7 +10444,7 @@ void StartupXLOG(void) /* Update Remain Segment Start Point */ UpdateRemainSegsStartPoint(t_thrd.xlog_cxt.EndRecPtr); XLogUpdateRemainCommitLsn(); - + /* * Kill WAL receiver, if it's still running, before we continue to write * the startup checkpoint record. It will trump over the checkpoint and @@ -10419,9 +10460,16 @@ void StartupXLOG(void) */ XLogCheckInvalidPages(); - /* Check to see if the XLOG sequence contained any segments, which not be used due to error. - */ - XLogCheckRemainSegs(); + if (IS_SHARED_STORAGE_STANBY_CLUSTER_MODE) { + ereport(LOG, (errmsg("reach stop barrier wait startupxlog here"))); + while (reachedStopPoint) { + pg_usleep(1000000L); /* 1000 ms */ + RedoInterruptCallBack(); + } + } + + /* Check to see if the XLOG sequence contained any segments, which not be used due to error. */ + XLogCheckRemainSegs(); /* * We don't need the latch anymore. It's not strictly necessary to disown @@ -10453,7 +10501,10 @@ void StartupXLOG(void) } EndOfLog = t_thrd.xlog_cxt.EndRecPtr; XLByteToPrevSeg(EndOfLog, endLogSegNo); + uint32 redoReadOff = t_thrd.xlog_cxt.readOff; + CheckShareStorageWriteLock(); + CheckShareStorageCtlInfo(EndOfLog); /* * Complain if we did not roll forward far enough to render the backup * dump consistent. Note: it is indeed okay to look at the local variable @@ -10532,7 +10583,10 @@ void StartupXLOG(void) XLogRecPtr pageBeginPtr; pageBeginPtr = EndOfLog - (EndOfLog % XLOG_BLCKSZ); - Assert(t_thrd.xlog_cxt.readOff == pageBeginPtr % XLogSegSize); + if (redoReadOff != (pageBeginPtr % XLogSegSize)) { + ereport(FATAL, (errmsg("redo check error: EndOfLog: %lx, pageBeginPtr: %lx, redoReadOff: %x", EndOfLog, + pageBeginPtr, redoReadOff))); + } firstIdx = XLogRecPtrToBufIdx(EndOfLog); @@ -10567,7 +10621,7 @@ void StartupXLOG(void) g_instance.comm_cxt.predo_cxt.redoPf.primary_flush_ptr = EndOfLog; /* - * Prepare WAL buffer and other variables for WAL writing before any + * Prepare WAL buffer and other variables for WAL writing before any * call to LocalSetXLogInsertAllowed() calls that enables WAL writing */ g_instance.wal_cxt.flushResult = EndOfLog; @@ -10614,7 +10668,6 @@ void StartupXLOG(void) /* Disallow XLogInsert again */ t_thrd.xlog_cxt.LocalXLogInsertAllowed = -1; CheckForRestartPoint(); - /* * And finally, execute the recovery_end_command, if any. @@ -10954,8 +11007,8 @@ void ArchiveXlogForForceFinishRedo(XLogReaderState *xlogreader, TermFileData *te ereport(WARNING, (errcode(ERRCODE_LOG), errmsg("[ForceFinish] ArchiveXlogForForceFinishRedo INFO lastRplReadLsn:%lu, lastRplEndLsn:%lu, " - "receivedUpto:%lu", - lastRplReadLsn, lastRplEndLsn, receivedUpto))); + "receivedUpto:%lu", + lastRplReadLsn, lastRplEndLsn, receivedUpto))); XLByteToSeg(lastRplEndLsn, beginSegNo); closed = FallbackXlogreader(xlogreader, lastRplReadLsn, lastRplEndLsn); @@ -11001,26 +11054,23 @@ void backup_cut_xlog_file(XLogRecPtr lastReplayedEndRecPtr) LWLockRelease(ControlFileLock); } - - static void sendPMBeginHotStby() { - if (!t_thrd.xlog_cxt.LocalHotStandbyActive && #ifdef ENABLE_MULTIPLE_NODES - t_thrd.xlog_cxt.standbyState == STANDBY_SNAPSHOT_READY && + t_thrd.xlog_cxt.standbyState == STANDBY_SNAPSHOT_READY && #endif t_thrd.xlog_cxt.reachedConsistency && IsUnderPostmaster) { bool xminValid = true; XLogRecPtr lastReplayedEndRecPtr = t_thrd.shemem_ptr_cxt.XLogCtl->lastReplayedEndRecPtr; #ifndef ENABLE_MULTIPLE_NODES xminValid = TransactionIdIsValid(t_thrd.xact_cxt.ShmemVariableCache->standbyXmin) || - !g_instance.attr.attr_storage.EnableHotStandby; + !g_instance.attr.attr_storage.EnableHotStandby; #endif if (xminValid) { /* use volatile pointer to prevent code rearrangement */ - volatile XLogCtlData* xlogctl = t_thrd.shemem_ptr_cxt.XLogCtl; + volatile XLogCtlData *xlogctl = t_thrd.shemem_ptr_cxt.XLogCtl; SpinLockAcquire(&xlogctl->info_lck); xlogctl->SharedHotStandbyActive = true; @@ -11028,15 +11078,13 @@ static void sendPMBeginHotStby() t_thrd.xlog_cxt.LocalHotStandbyActive = true; pg_atomic_write_u32(&(g_instance.comm_cxt.predo_cxt.hotStdby), ATOMIC_TRUE); - ereport(LOG, (errmsg("send signal to be hot standby at %X/%X", - (uint32) (lastReplayedEndRecPtr >> 32), (uint32) lastReplayedEndRecPtr))); + ereport(LOG, (errmsg("send signal to be hot standby at %X/%X", (uint32)(lastReplayedEndRecPtr >> 32), + (uint32)lastReplayedEndRecPtr))); SendPostmasterSignal(PMSIGNAL_BEGIN_HOT_STANDBY); } } } - - /* * Checks if recovery has reached a consistent state. When consistency is * reached and we have a valid starting standby snapshot, tell postmaster @@ -11050,8 +11098,8 @@ void CheckRecoveryConsistency(void) SpinLockAcquire(&XLogCtl->info_lck); lastReplayedEndRecPtr = t_thrd.shemem_ptr_cxt.XLogCtl->lastReplayedEndRecPtr; SpinLockRelease(&XLogCtl->info_lck); - if (pg_atomic_read_u32(&(g_instance.comm_cxt.predo_cxt.permitFinishRedo)) == ATOMIC_FALSE - && XLByteLE(t_thrd.xlog_cxt.max_page_flush_lsn, lastReplayedEndRecPtr)) { + if (pg_atomic_read_u32(&(g_instance.comm_cxt.predo_cxt.permitFinishRedo)) == ATOMIC_FALSE && + XLByteLE(t_thrd.xlog_cxt.max_page_flush_lsn, lastReplayedEndRecPtr)) { pg_atomic_write_u32(&(g_instance.comm_cxt.predo_cxt.permitFinishRedo), ATOMIC_TRUE); ereport(WARNING, (errmsg("permit finish redo at %X/%X", (uint32)(lastReplayedEndRecPtr >> 32), (uint32)lastReplayedEndRecPtr))); @@ -11474,6 +11522,19 @@ TimeLineID GetRecoveryTargetTLI(void) return result; } +TimeLineID GetThisTargetTLI(void) +{ + /* use volatile pointer to prevent code rearrangement */ + XLogCtlData *xlogctl = t_thrd.shemem_ptr_cxt.XLogCtl; + TimeLineID result; + + SpinLockAcquire(&xlogctl->info_lck); + result = xlogctl->ThisTimeLineID; + SpinLockRelease(&xlogctl->info_lck); + + return result; +} + /* * DummyStandbySetRecoveryTargetTLI - set the current recovery target timeline ID */ @@ -11522,16 +11583,18 @@ void ShutdownXLOG(int code, Datum arg) #endif /* Shutdown all the page writer threads. */ - ckpt_shutdown_bgwriter(); ckpt_shutdown_pagewriter(); if (g_instance.ckpt_cxt_ctl->dirty_page_queue != NULL) { pfree(g_instance.ckpt_cxt_ctl->dirty_page_queue); g_instance.ckpt_cxt_ctl->dirty_page_queue = NULL; } + + g_instance.bgwriter_cxt.unlink_rel_hashtbl = NULL; + g_instance.bgwriter_cxt.unlink_rel_fork_hashtbl = NULL; g_instance.ckpt_cxt_ctl->prune_queue_lock = NULL; g_instance.ckpt_cxt_ctl->ckpt_redo_state.recovery_queue_lock = NULL; - g_instance.bgwriter_cxt.unlink_rel_hashtbl = NULL; g_instance.bgwriter_cxt.rel_hashtbl_lock = NULL; + g_instance.bgwriter_cxt.rel_one_fork_hashtbl_lock = NULL; ShutdownCLOG(); ShutdownCSNLOG(); @@ -11541,6 +11604,9 @@ void ShutdownXLOG(int code, Datum arg) dw_exit(true); dw_exit(false); + if (IsInitdb) { + ShutdownShareStorageXLogCopy(); + } ereport(LOG, (errmsg("database system is shut down"))); } @@ -11758,7 +11824,7 @@ void CreateCheckPoint(int flags) */ if (!shutdown) { oldest_active_xid = GetOldestActiveTransactionId(&globalXmin); - } + } if (!shutdown && XLogStandbyInfoActive()) { checkPoint.oldestActiveXid = oldest_active_xid; } else { @@ -11840,14 +11906,14 @@ void CreateCheckPoint(int flags) curMinRecLSN = cur_queue_rec_lsn; } if (u_sess->attr.attr_storage.log_pagewriter) { - ereport(LOG, + ereport(DEBUG1, (errmodule(MOD_INCRE_CKPT), errmsg("get min_recLSN is invalid, dirty page num is %ld, get queue reclsn is %08X/%08X", get_dirty_page_num(), (uint32)(curMinRecLSN >> XLOG_LSN_SWAP), (uint32)curMinRecLSN))); } } XLogRecPtr remaincommit = GetRemainCommitLsn(); - if (XLByteEQ(curMinRecLSN, g_instance.ckpt_cxt_ctl->ckpt_current_redo_point) || + if (XLByteEQ(curMinRecLSN, g_instance.ckpt_cxt_ctl->ckpt_view.ckpt_current_redo_point) || XLByteLT(curMinRecLSN, remaincommit)) { StopSuspendWalInsert(lastlrc); LWLockRelease(CheckpointLock); @@ -11855,26 +11921,26 @@ void CreateCheckPoint(int flags) if (u_sess->attr.attr_storage.log_pagewriter) { ereport(LOG, (errmodule(MOD_INCRE_CKPT), - errmsg("Checkpoint meets prev checkpoint lsn is %08X/%08X, now min rec lsn is %08X/%08X, " - "checkpoint flag is %d, remaincommit lsn is %08X/%08X", - (uint32)(g_instance.ckpt_cxt_ctl->ckpt_current_redo_point >> XLOG_LSN_SWAP), - (uint32)g_instance.ckpt_cxt_ctl->ckpt_current_redo_point, - (uint32)(curMinRecLSN >> XLOG_LSN_SWAP), - (uint32)(curMinRecLSN), flags, - (uint32)(remaincommit >> XLOG_LSN_SWAP), - (uint32)(remaincommit)))); + errmsg("Checkpoint meets prev checkpoint lsn is %08X/%08X, now min rec lsn is %08X/%08X, " + "checkpoint flag is %d, remaincommit lsn is %08X/%08X", + (uint32)(g_instance.ckpt_cxt_ctl->ckpt_view.ckpt_current_redo_point >> XLOG_LSN_SWAP), + (uint32)g_instance.ckpt_cxt_ctl->ckpt_view.ckpt_current_redo_point, + (uint32)(curMinRecLSN >> XLOG_LSN_SWAP), + (uint32)(curMinRecLSN), flags, + (uint32)(remaincommit >> XLOG_LSN_SWAP), (uint32)(remaincommit)))); } if (dw_enabled()) { CheckPointSyncWithAbsorption(); } gstrace_exit(GS_TRC_ID_CreateCheckPoint); return; - } else if (XLByteLT(curMinRecLSN, g_instance.ckpt_cxt_ctl->ckpt_current_redo_point)) { + } else if (XLByteLT(curMinRecLSN, + g_instance.ckpt_cxt_ctl->ckpt_view.ckpt_current_redo_point)) { ereport(PANIC, (errmodule(MOD_INCRE_CKPT), errmsg("curMinRecLSN little prev checkpoint lsn is %08X/%08X,now lsn is %08X/%08X", - (uint32)(g_instance.ckpt_cxt_ctl->ckpt_current_redo_point >> XLOG_LSN_SWAP), - (uint32)g_instance.ckpt_cxt_ctl->ckpt_current_redo_point, + (uint32)(g_instance.ckpt_cxt_ctl->ckpt_view.ckpt_current_redo_point >> XLOG_LSN_SWAP), + (uint32)g_instance.ckpt_cxt_ctl->ckpt_view.ckpt_current_redo_point, (uint32)(curMinRecLSN >> XLOG_LSN_SWAP), (uint32)curMinRecLSN))); } @@ -11882,8 +11948,8 @@ void CreateCheckPoint(int flags) ereport(LOG, (errmodule(MOD_INCRE_CKPT), errmsg("Checkpoint prev checkpoint lsn is %08X/%08X, now will create new checkpoint is %08X/%08X", - (uint32)(g_instance.ckpt_cxt_ctl->ckpt_current_redo_point >> XLOG_LSN_SWAP), - (uint32)g_instance.ckpt_cxt_ctl->ckpt_current_redo_point, + (uint32)(g_instance.ckpt_cxt_ctl->ckpt_view.ckpt_current_redo_point >> XLOG_LSN_SWAP), + (uint32)g_instance.ckpt_cxt_ctl->ckpt_view.ckpt_current_redo_point, (uint32)(curMinRecLSN >> XLOG_LSN_SWAP), (uint32)curMinRecLSN))); } } @@ -11979,8 +12045,7 @@ void CreateCheckPoint(int flags) MultiXactGetCheckptMulti(shutdown, &checkPoint.nextMulti, &checkPoint.nextMultiOffset); - checkPointUndo.oldestXidInUndo = - pg_atomic_read_u64(&g_instance.proc_base->oldestXidInUndo); + checkPointUndo.oldestXidInUndo = pg_atomic_read_u64(&g_instance.proc_base->oldestXidInUndo); /* * Having constructed the checkpoint record, ensure all shmem disk buffers @@ -12036,7 +12101,6 @@ void CreateCheckPoint(int flags) } pfree_ext(vxids); - /* * Truncate pg_csnlog if possible. We can throw away all data before * the oldest XMIN of any running transaction. No future transaction will @@ -12239,7 +12303,7 @@ void CreateCheckPoint(int flags) t_thrd.shemem_ptr_cxt.ControlFile->checkPoint = t_thrd.xlog_cxt.ProcLastRecPtr; t_thrd.shemem_ptr_cxt.ControlFile->checkPointCopy = checkPoint; t_thrd.shemem_ptr_cxt.ControlFile->time = (pg_time_t)time(NULL); - g_instance.ckpt_cxt_ctl->ckpt_current_redo_point = checkPoint.redo; + g_instance.ckpt_cxt_ctl->ckpt_view.ckpt_current_redo_point = checkPoint.redo; /* crash recovery should always recover to the end of WAL */ errorno = memset_s(&t_thrd.shemem_ptr_cxt.ControlFile->minRecoveryPoint, sizeof(XLogRecPtr), 0, sizeof(XLogRecPtr)); securec_check(errorno, "", ""); @@ -12379,13 +12443,14 @@ static void RecoveryRestartPoint(const CheckPoint checkPoint, XLogRecPtr recordR XLogRecPtr safeCheckPoint = extreme_rto::GetSafeMinCheckPoint(); if (XLByteEQ(safeCheckPoint, MAX_XLOG_REC_PTR) || XLByteLT(safeCheckPoint, recordReadRecPtr)) { ereport(WARNING, (errmsg("RecoveryRestartPoint is false at %X/%X,last safe point is %X/%X", - (uint32)(recordReadRecPtr >> 32), (uint32)(recordReadRecPtr), (uint32)(safeCheckPoint >> 32), - (uint32)(safeCheckPoint)))); + (uint32)(recordReadRecPtr >> 32), (uint32)(recordReadRecPtr), + (uint32)(safeCheckPoint >> 32), (uint32)(safeCheckPoint)))); return; } } else if (!parallel_recovery::IsRecoveryRestartPointSafeForWorkers(recordReadRecPtr)) { ereport(WARNING, (errmsg("RecoveryRestartPointSafe is false at %X/%X", - static_cast(recordReadRecPtr >> shitRightLength), static_cast(recordReadRecPtr)))); + static_cast(recordReadRecPtr >> shitRightLength), + static_cast(recordReadRecPtr)))); return; } @@ -12403,8 +12468,9 @@ static void RecoveryRestartPoint(const CheckPoint checkPoint, XLogRecPtr recordR SpinLockRelease(&xlogctl->info_lck); if (t_thrd.xlog_cxt.needImmediateCkp) { - ereport(LOG, (errmsg("RecoveryRestartPoint do ImmediateCkp at %X/%X", - static_cast(recordReadRecPtr >> shitRightLength), static_cast(recordReadRecPtr)))); + ereport(LOG, (errmsg("RecoveryRestartPoint do ImmediateCkp at %X/%X", + static_cast(recordReadRecPtr >> shitRightLength), + static_cast(recordReadRecPtr)))); RequestCheckpoint(CHECKPOINT_IMMEDIATE | CHECKPOINT_FORCE | CHECKPOINT_WAIT); t_thrd.xlog_cxt.needImmediateCkp = false; } @@ -12512,8 +12578,8 @@ XLogRecPtr GetRestartPointInRecovery(CheckPoint *restartCheckPoint) replayLastLSN = xlogctl->lastCheckPointRecPtr; SpinLockRelease(&xlogctl->info_lck); - if (replayLastLSN > (uint32)u_sess->attr.attr_storage.max_redo_log_size * BYTE_PER_KB) { - targetLSN = replayLastLSN - u_sess->attr.attr_storage.max_redo_log_size * BYTE_PER_KB; + if (replayLastLSN > (uint64)u_sess->attr.attr_storage.max_redo_log_size * BYTE_PER_KB) { + targetLSN = replayLastLSN - (uint64)u_sess->attr.attr_storage.max_redo_log_size * BYTE_PER_KB; } else { targetLSN = curMinRecLSN; } @@ -12521,14 +12587,14 @@ XLogRecPtr GetRestartPointInRecovery(CheckPoint *restartCheckPoint) (void)LWLockAcquire(state->recovery_queue_lock, LW_EXCLUSIVE); num = state->end - state->start; - /* + /* * If the pagewriter flush dirty page to disk quickly, push the checkpoint loc point to * the position closest to curMinRecLSN . */ if (XLByteLE(targetLSN, curMinRecLSN)) { for (i = 0; i < num; i++) { loc = (state->start + i) % RESTART_POINT_QUEUE_LEN; - if (state->ckpt_rec_queue[loc].CkptLSN > curMinRecLSN) { + if (state->ckpt_rec_queue[loc].CkptLSN > curMinRecLSN) { if (i > 0) { loc = (state->start + i - 1) % RESTART_POINT_QUEUE_LEN; state->start = state->start + i - 1; @@ -12657,8 +12723,8 @@ bool CreateRestartPoint(int flags) #else int mode = DEBUG2; #endif - ereport(mode, (errmsg("skipping restartpoint, already performed at %X/%X", - (uint32)(lastCheckPoint.redo >> 32), (uint32)lastCheckPoint.redo))); + ereport(mode, (errmsg("skipping restartpoint, already performed at %X/%X", (uint32)(lastCheckPoint.redo >> 32), + (uint32)lastCheckPoint.redo))); UpdateMinRecoveryPoint(InvalidXLogRecPtr, true); if ((unsigned int)flags & CHECKPOINT_IS_SHUTDOWN) { @@ -12735,8 +12801,9 @@ bool CreateRestartPoint(int flags) LWLockRelease(g_instance.ckpt_cxt_ctl->prune_queue_lock); uint64 head = pg_atomic_read_u64(&g_instance.ckpt_cxt_ctl->dirty_page_queue_head); - int64 need_flush_num = g_instance.ckpt_cxt_ctl->full_ckpt_expected_flush_loc > head ? - g_instance.ckpt_cxt_ctl->full_ckpt_expected_flush_loc - head : 0; + int64 need_flush_num = g_instance.ckpt_cxt_ctl->full_ckpt_expected_flush_loc > head + ? g_instance.ckpt_cxt_ctl->full_ckpt_expected_flush_loc - head + : 0; if (need_flush_num > 0) { g_instance.ckpt_cxt_ctl->flush_all_dirty_page = true; @@ -12759,9 +12826,8 @@ bool CreateRestartPoint(int flags) XLogRecPtr MinRecLSN = ckpt_get_min_rec_lsn(); if (!XLogRecPtrIsInvalid(MinRecLSN) && XLByteLT(MinRecLSN, lastCheckPointRecPtr)) { ereport(WARNING, (errmsg("current dirty page list head recLSN %08X/%08X smaller than lsn %08X/%08X", - (uint32)(MinRecLSN >> XLOG_LSN_SWAP), (uint32)MinRecLSN, - (uint32)(lastCheckPointRecPtr >> XLOG_LSN_SWAP), - (uint32)lastCheckPointRecPtr))); + (uint32)(MinRecLSN >> XLOG_LSN_SWAP), (uint32)MinRecLSN, + (uint32)(lastCheckPointRecPtr >> XLOG_LSN_SWAP), (uint32)lastCheckPointRecPtr))); LWLockRelease(CheckpointLock); CheckPointSyncWithAbsorption(); gstrace_exit(GS_TRC_ID_CreateRestartPoint); @@ -12782,7 +12848,7 @@ bool CreateRestartPoint(int flags) t_thrd.shemem_ptr_cxt.ControlFile->checkPoint = lastCheckPointRecPtr; t_thrd.shemem_ptr_cxt.ControlFile->checkPointCopy = lastCheckPoint; t_thrd.shemem_ptr_cxt.ControlFile->time = (pg_time_t)time(NULL); - g_instance.ckpt_cxt_ctl->ckpt_current_redo_point = lastCheckPoint.redo; + g_instance.ckpt_cxt_ctl->ckpt_view.ckpt_current_redo_point = lastCheckPoint.redo; if ((unsigned int)flags & CHECKPOINT_IS_SHUTDOWN) { t_thrd.shemem_ptr_cxt.ControlFile->state = DB_SHUTDOWNED_IN_RECOVERY; } @@ -12859,8 +12925,7 @@ bool CreateRestartPoint(int flags) * Reduce the frequency of trucate CSN log to avoid the probability of lock contention. * Incremental chekpoint does not require frequent truncate of csnlog. */ - if (!ENABLE_INCRE_CKPT || - elapsed_secs >= u_sess->attr.attr_storage.fullCheckPointTimeout) { + if (!ENABLE_INCRE_CKPT || elapsed_secs >= u_sess->attr.attr_storage.fullCheckPointTimeout) { TransactionId globalXmin = InvalidTransactionId; (void)GetOldestActiveTransactionId(&globalXmin); TransactionId cutoffXid = GetOldestXmin(NULL); @@ -12894,6 +12959,63 @@ bool CreateRestartPoint(int flags) return true; } +static XLogSegNo CalcRecycleSegNo(XLogRecPtr curInsert, XLogRecPtr quorumMinRequired, XLogRecPtr minToolsRequired) +{ + /* the unit of max_size_for_xlog_prune is KB */ + uint64 maxKeepSize = ((uint64)u_sess->attr.attr_storage.max_size_for_xlog_prune << 10); + XLogSegNo SegNoCanRecycled = 1; + if (XLByteLT(maxKeepSize + XLogSegSize, curInsert)) { + XLByteToSeg(curInsert - maxKeepSize, SegNoCanRecycled); + } + + if (!XLByteEQ(quorumMinRequired, InvalidXLogRecPtr)) { + XLogSegNo quorumMinSegNo; + XLByteToSeg(quorumMinRequired, quorumMinSegNo); + if (quorumMinSegNo < SegNoCanRecycled) { + SegNoCanRecycled = quorumMinSegNo; + } + } + + if (!XLByteEQ(minToolsRequired, InvalidXLogRecPtr)) { + XLogSegNo minToolsSegNo; + XLByteToSeg(minToolsRequired, minToolsSegNo); + if (minToolsSegNo < SegNoCanRecycled) { + SegNoCanRecycled = minToolsSegNo; + } + } + + ereport(LOG, (errmsg("keep xlog segments after %lu, current wal size %lu(Bytes), curInsert %lu, " + "quorumMinRequired %lu, minToolsRequired %lu", SegNoCanRecycled, maxKeepSize, curInsert, quorumMinRequired, + minToolsRequired))); + + return SegNoCanRecycled; +} + +static XLogSegNo CalcRecycleSegNoForHadrMainStandby(XLogRecPtr curFlush, XLogSegNo segno) +{ + XLogSegNo SegNoCanRecycled = segno; + uint64 maxKeepSize = ((uint64)u_sess->attr.attr_storage.max_size_for_xlog_prune << 10); + + if (WalSndInProgress(SNDROLE_PRIMARY_BUILDSTANDBY)) { + if (XLByteLT(maxKeepSize + XLogSegSize, curFlush)) { + XLByteToSeg(curFlush - maxKeepSize, SegNoCanRecycled); + } else { + SegNoCanRecycled = 1; + ereport(LOG, (errmsg("keep all the xlog segments in Main standby, " + "because there is a full standby building processing."))); + } + } else if (!WalSndAllInProgressForMainStandby(SNDROLE_PRIMARY_STANDBY)) { + if (XLByteLT(maxKeepSize + XLogSegSize, curFlush)) { + XLByteToSeg(curFlush - maxKeepSize, SegNoCanRecycled); + } else { + SegNoCanRecycled = 1; + ereport(LOG, (errmsg("keep all the xlog segments in Main standby, " + "because there is a Cascade standby offline."))); + } + } + return SegNoCanRecycled; +} + /* * Retreat *logSegNo to the last segment that we need to retain because of * either wal_keep_segments or replication slots. @@ -12907,8 +13029,6 @@ bool CreateRestartPoint(int flags) */ static void KeepLogSeg(XLogRecPtr recptr, XLogSegNo *logSegNo, XLogRecPtr curInsert) { - /* segno is the wal file start index that should be keep */ - volatile XLogCtlData *xlogctl = t_thrd.shemem_ptr_cxt.XLogCtl; XLogSegNo segno; XLogRecPtr keep; XLogRecPtr xlogcopystartptr; @@ -12941,7 +13061,7 @@ static void KeepLogSeg(XLogRecPtr recptr, XLogSegNo *logSegNo, XLogRecPtr curIns /* segno = 1 show all file should be keep */ segno = 1; ereport(LOG, (errmsg("keep all the xlog segments, because the minimal replication slot segno " - "is less than or equal to zero"))); + "is less than or equal to zero"))); } else if (slotSegNo < segno) { segno = slotSegNo; } @@ -12959,7 +13079,7 @@ static void KeepLogSeg(XLogRecPtr recptr, XLogSegNo *logSegNo, XLogRecPtr curIns /* segno = 1 show all file should be keep */ segno = 1; ereport(LOG, (errmsg("keep all the xlog segments, because there is a full-build task in the backend, " - "and start segno is less than or equal to zero"))); + "and start segno is less than or equal to zero"))); } else if (slotSegNo < segno) { segno = slotSegNo; } @@ -12984,35 +13104,17 @@ static void KeepLogSeg(XLogRecPtr recptr, XLogSegNo *logSegNo, XLogRecPtr curIns /* segno = 1 show all file should be keep */ segno = 1; ereport(LOG, (errmsg("keep all the xlog segments, because there is a build task in the backend, " - "and gs_rewind count is more than zero"))); + "and gs_rewind count is more than zero"))); } else if (IS_DN_MULTI_STANDYS_MODE() && !WalSndAllInProgress(SNDROLE_PRIMARY_STANDBY) && !g_instance.attr.attr_storage.dcf_attr.enable_dcf) { - /* wal size can be approximated as two parts: wal not recycled and wal preallocated */ - uint64 walSize = (curInsert - xlogctl->lastRemovedSegNo * XLOG_SEG_SIZE) + - (uint64)XLOGfileslop * XLOG_SEG_SIZE; - /* the unit of max_size_for_xlog_prune is KB */ - uint64 maxKeepSize = ((uint64)u_sess->attr.attr_storage.max_size_for_xlog_prune << 10); - bool isWalSizeLTConfig = walSize < maxKeepSize; if (!u_sess->attr.attr_storage.enable_xlog_prune) { /* segno = 1 show all file should be keep */ segno = 1; ereport(LOG, (errmsg("keep all the xlog segments, because the value of enable_xlog_prune(GUC) " "is false"))); - } else if (isWalSizeLTConfig) { - /* segno = 1 show all file should be keep */ - segno = 1; - ereport(LOG, (errmsg("keep all the xlog segments, because current wal size = %lu(KB), " - "less than max_size_for_xlog_prune = %lu(KB)", walSize, maxKeepSize))); - } else if (!isWalSizeLTConfig) { - if (repl_slot_state.quorum_min_required != InvalidXLogRecPtr) { - XLogSegNo slotSegNo; - XLByteToSeg(repl_slot_state.quorum_min_required, slotSegNo); - if (slotSegNo < segno) { - segno = slotSegNo; - } - } - ereport(LOG, (errmsg("recycle xlog segments, because current wal size = %lu(KB), " - "big than max_size_for_xlog_prune = %lu(KB)", walSize, maxKeepSize))); + } else { + segno = CalcRecycleSegNo(curInsert, repl_slot_state.quorum_min_required, + repl_slot_state.min_tools_required); } } else if (IS_DN_DUMMY_STANDYS_MODE() && !WalSndInProgress(SNDROLE_PRIMARY_STANDBY)) { /* segno = 1 show all file should be keep */ @@ -13044,6 +13146,12 @@ static void KeepLogSeg(XLogRecPtr recptr, XLogSegNo *logSegNo, XLogRecPtr curIns } LWLockRelease(XlogRemoveSegLock); } + if (t_thrd.xlog_cxt.server_mode == STANDBY_MODE && t_thrd.xlog_cxt.is_hadr_main_standby) { + XLogSegNo mainStandbySegNo = CalcRecycleSegNoForHadrMainStandby(recptr, segno); + if (mainStandbySegNo < segno && mainStandbySegNo > 0) { + segno = mainStandbySegNo; + } + } /* don't delete WAL segments newer than the calculated segment */ if (segno < *logSegNo && segno > 0) { *logSegNo = segno; @@ -13245,7 +13353,6 @@ bool IsCheckPoint(const XLogRecParseState *parseState) return rmid == RM_XLOG_ID && (info == XLOG_CHECKPOINT_SHUTDOWN || info == XLOG_CHECKPOINT_ONLINE); } - bool HasTimelineUpdate(XLogReaderState *record, bool bOld) { uint8 info; @@ -13273,7 +13380,7 @@ void UpdateTimeline(CheckPoint *checkPoint) * @Description: Assign Checkpoint data from the old version to the new version * @in: record, xlog record */ -CheckPoint update_checkpoint(XLogReaderState * record) +CheckPoint update_checkpoint(XLogReaderState *record) { CheckPointOld checkPointOld; CheckPoint checkPoint; @@ -13350,8 +13457,7 @@ void xlog_redo(XLogReaderState *record) if (t_thrd.xlog_cxt.redo_oldversion_xlog) { checkPoint = update_checkpoint(record); } else { - if (XLogRecGetDataLen(record) >= sizeof(checkPoint) - && XLogRecGetDataLen(record) < sizeof(checkPointUndo)) { + if (XLogRecGetDataLen(record) >= sizeof(checkPoint) && XLogRecGetDataLen(record) < sizeof(checkPointUndo)) { rc = memcpy_s(&checkPoint, sizeof(CheckPoint), XLogRecGetData(record), sizeof(CheckPoint)); securec_check(rc, "", ""); } else if (XLogRecGetDataLen(record) >= sizeof(checkPointUndo)) { @@ -13386,11 +13492,9 @@ void xlog_redo(XLogReaderState *record) LWLockRelease(XlogRemoveSegLock); MultiXactSetNextMXact(checkPoint.nextMulti, checkPoint.nextMultiOffset); if (t_thrd.proc->workingVersionNum >= INPLACE_UPDATE_WERSION_NUM) { - pg_atomic_write_u64(&g_instance.proc_base->oldestXidInUndo, - checkPointUndo.oldestXidInUndo); + pg_atomic_write_u64(&g_instance.proc_base->oldestXidInUndo, checkPointUndo.oldestXidInUndo); } else { - pg_atomic_write_u64(&g_instance.proc_base->oldestXidInUndo, - InvalidTransactionId); + pg_atomic_write_u64(&g_instance.proc_base->oldestXidInUndo, InvalidTransactionId); } SetTransactionIdLimit(checkPoint.oldestXid, checkPoint.oldestXidDB); @@ -13478,8 +13582,7 @@ void xlog_redo(XLogReaderState *record) if (t_thrd.xlog_cxt.redo_oldversion_xlog) { checkPoint = update_checkpoint(record); } else { - if (XLogRecGetDataLen(record) >= sizeof(checkPoint) - && XLogRecGetDataLen(record) < sizeof(checkPointUndo)) { + if (XLogRecGetDataLen(record) >= sizeof(checkPoint) && XLogRecGetDataLen(record) < sizeof(checkPointUndo)) { rc = memcpy_s(&checkPoint, sizeof(CheckPoint), XLogRecGetData(record), sizeof(CheckPoint)); securec_check(rc, "", ""); } else if (XLogRecGetDataLen(record) >= sizeof(checkPointUndo)) { @@ -13502,11 +13605,9 @@ void xlog_redo(XLogReaderState *record) LWLockRelease(OidGenLock); MultiXactAdvanceNextMXact(checkPoint.nextMulti, checkPoint.nextMultiOffset); if (t_thrd.proc->workingVersionNum >= INPLACE_UPDATE_WERSION_NUM) { - pg_atomic_write_u64(&g_instance.proc_base->oldestXidInUndo, - checkPointUndo.oldestXidInUndo); + pg_atomic_write_u64(&g_instance.proc_base->oldestXidInUndo, checkPointUndo.oldestXidInUndo); } else { - pg_atomic_write_u64(&g_instance.proc_base->oldestXidInUndo, - InvalidTransactionId); + pg_atomic_write_u64(&g_instance.proc_base->oldestXidInUndo, InvalidTransactionId); } if (TransactionIdPrecedes(t_thrd.xact_cxt.ShmemVariableCache->oldestXid, checkPoint.oldestXid)) { @@ -13673,7 +13774,7 @@ void xlog_redo(XLogReaderState *record) errno_t rc = EOK; rc = memcpy_s(&delay, sizeof(bool), XLogRecGetData(record), sizeof(bool)); securec_check(rc, "", ""); - if (delay == true ) { + if (delay == true) { enable_delay_xlog_recycle(true); } else { disable_delay_xlog_recycle(true); @@ -13868,8 +13969,8 @@ bool check_roach_start_backup(const char *slotName) struct stat statbuf; /* check roach backup label file existence. */ - rc = snprintf_s(backup_label, sizeof(backup_label), sizeof(backup_label) - 1, - "%s.%s", BACKUP_LABEL_FILE_ROACH, slotName); + rc = snprintf_s(backup_label, sizeof(backup_label), sizeof(backup_label) - 1, "%s.%s", BACKUP_LABEL_FILE_ROACH, + slotName); securec_check_ss(rc, "", ""); if (stat(backup_label, &statbuf)) { @@ -13877,23 +13978,23 @@ bool check_roach_start_backup(const char *slotName) ereport(WARNING, (errcode_for_file_access(), errmsg("could not stat file \"%s\": %m", backup_label))); } ereport(DEBUG1, (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), - errmsg("roach backup %s is not in progress", slotName))); + errmsg("roach backup %s is not in progress", slotName))); return false; } return true; } -static void CollectTableSpace(DIR* tblspcdir, List** tablespaces, StringInfo tblspc_mapfbuf, bool infotbssize) +static void CollectTableSpace(DIR *tblspcdir, List **tablespaces, StringInfo tblspc_mapfbuf, bool infotbssize) { - struct dirent* de = NULL; - tablespaceinfo* ti = NULL; + struct dirent *de = NULL; + tablespaceinfo *ti = NULL; int datadirpathlen = strlen(t_thrd.proc_cxt.DataDir); /* Collect information about all tablespaces */ while ((de = ReadDir(tblspcdir, "pg_tblspc")) != NULL) { char fullpath[MAXPGPATH + PG_TBLSPCS]; char linkpath[MAXPGPATH]; - char* relpath = NULL; + char *relpath = NULL; int rllen; errno_t errorno = EOK; @@ -13907,8 +14008,7 @@ static void CollectTableSpace(DIR* tblspcdir, List** tablespaces, StringInfo tbl if (strcmp(de->d_name, ".") == 0 || strcmp(de->d_name, "..") == 0) continue; - errorno = - snprintf_s(fullpath, MAXPGPATH + PG_TBLSPCS, MAXPGPATH + PG_TBLSPCS - 1, "pg_tblspc/%s", de->d_name); + errorno = snprintf_s(fullpath, MAXPGPATH + PG_TBLSPCS, MAXPGPATH + PG_TBLSPCS - 1, "pg_tblspc/%s", de->d_name); securec_check_ss(errorno, "\0", "\0"); #if defined(HAVE_READLINK) || defined(WIN32) @@ -13923,15 +14023,15 @@ static void CollectTableSpace(DIR* tblspcdir, List** tablespaces, StringInfo tbl linkpath[rllen] = '\0'; /* - * Relpath holds the relative path of the tablespace directory - * when it's located within PGDATA, or NULL if it's located - * elsewhere. - */ + * Relpath holds the relative path of the tablespace directory + * when it's located within PGDATA, or NULL if it's located + * elsewhere. + */ if (rllen > datadirpathlen && strncmp(linkpath, t_thrd.proc_cxt.DataDir, datadirpathlen) == 0 && IS_DIR_SEP(linkpath[datadirpathlen])) relpath = linkpath + datadirpathlen + 1; - ti = (tablespaceinfo*)palloc(sizeof(tablespaceinfo)); + ti = (tablespaceinfo *)palloc(sizeof(tablespaceinfo)); ti->oid = pstrdup(de->d_name); ti->path = pstrdup(linkpath); ti->relativePath = relpath ? pstrdup(relpath) : NULL; @@ -13941,12 +14041,12 @@ static void CollectTableSpace(DIR* tblspcdir, List** tablespaces, StringInfo tbl appendStringInfo(tblspc_mapfbuf, "%s %s\n", ti->oid, ti->path); #else /* - * If the platform does not have symbolic links, it should not be - * possible to have tablespaces - clearly somebody else created - * them. Warn about it and ignore. - */ + * If the platform does not have symbolic links, it should not be + * possible to have tablespaces - clearly somebody else created + * them. Warn about it and ignore. + */ ereport(WARNING, - (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("tablespaces are not supported on this platform"))); + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("tablespaces are not supported on this platform"))); #endif } } @@ -13971,8 +14071,8 @@ static void CollectTableSpace(DIR* tblspcdir, List** tablespaces, StringInfo tbl * Every successfully started non-exclusive backup must * be stopped by calling do_pg_stop_backup() or do_pg_abort_backup(). */ -XLogRecPtr do_pg_start_backup(const char* backupidstr, bool fast, char** labelfile, DIR* tblspcdir, -char** tblspcmapfile, List** tablespaces, bool infotbssize, bool needtblspcmapfile) +XLogRecPtr do_pg_start_backup(const char *backupidstr, bool fast, char **labelfile, DIR *tblspcdir, + char **tblspcmapfile, List **tablespaces, bool infotbssize, bool needtblspcmapfile) { bool exclusive = (labelfile == NULL); bool backup_started_in_recovery = false; @@ -14152,12 +14252,12 @@ char** tblspcmapfile, List** tablespaces, bool infotbssize, bool needtblspcmapfi #ifdef ENABLE_MULTIPLE_NODES if (!checkpointfpw || XLByteLE(startpoint, recptr)) { ereport(ERROR, (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), - errmsg("WAL generated with full_page_writes=off was replayed " - "since last restartpoint"), - errhint("This means that the backup being taken on the standby " - "is corrupt and should not be used. " - "Enable full_page_writes and run CHECKPOINT on the master, " - "and then try an online backup again."))); + errmsg("WAL generated with full_page_writes=off was replayed " + "since last restartpoint"), + errhint("This means that the backup being taken on the standby " + "is corrupt and should not be used. " + "Enable full_page_writes and run CHECKPOINT on the master, " + "and then try an online backup again."))); } #endif /* @@ -14260,23 +14360,23 @@ char** tblspcmapfile, List** tablespaces, bool infotbssize, bool needtblspcmapfi if (stat(TABLESPACE_MAP, &stat_buf) != 0) { if (errno != ENOENT) ereport(ERROR, - (errcode_for_file_access(), errmsg("could not stat file \"%s\": %m", TABLESPACE_MAP))); + (errcode_for_file_access(), errmsg("could not stat file \"%s\": %m", TABLESPACE_MAP))); } else ereport(ERROR, - (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), - errmsg("a backup is already in progress"), - errhint("If you're sure there is no backup in progress, remove file \"%s\" and try again.", - TABLESPACE_MAP))); + (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), + errmsg("a backup is already in progress"), + errhint("If you're sure there is no backup in progress, remove file \"%s\" and try again.", + TABLESPACE_MAP))); fp = AllocateFile(TABLESPACE_MAP, "w"); if (!fp) - ereport( - ERROR, (errcode_for_file_access(), errmsg("could not create file \"%s\": %m", TABLESPACE_MAP))); + ereport(ERROR, + (errcode_for_file_access(), errmsg("could not create file \"%s\": %m", TABLESPACE_MAP))); if (fwrite(tblspc_mapfbuf.data, tblspc_mapfbuf.len, 1, fp) != 1 || fflush(fp) != 0 || pg_fsync(fileno(fp)) != 0 || ferror(fp) || FreeFile(fp)) - ereport( - ERROR, (errcode_for_file_access(), errmsg("could not write file \"%s\": %m", TABLESPACE_MAP))); + ereport(ERROR, + (errcode_for_file_access(), errmsg("could not write file \"%s\": %m", TABLESPACE_MAP))); } pfree(tblspc_mapfbuf.data); } else { @@ -14287,8 +14387,7 @@ char** tblspcmapfile, List** tablespaces, bool infotbssize, bool needtblspcmapfi } PG_END_ENSURE_ERROR_CLEANUP(pg_start_backup_callback, (Datum)BoolGetDatum(exclusive)); - if (exclusive) - { + if (exclusive) { u_sess->proc_cxt.sessionBackupState = SESSION_BACKUP_EXCLUSIVE; } else { u_sess->proc_cxt.sessionBackupState = SESSION_BACKUP_NON_EXCLUSIVE; @@ -14302,8 +14401,8 @@ char** tblspcmapfile, List** tablespaces, bool infotbssize, bool needtblspcmapfi return startpoint; } -XLogRecPtr StandbyDoStartBackup(const char* backupidstr, char** labelFile, char** tblSpcMapFile, List** tableSpaces, - DIR* tblSpcDir, bool infoTbsSize) +XLogRecPtr StandbyDoStartBackup(const char *backupidstr, char **labelFile, char **tblSpcMapFile, List **tableSpaces, + DIR *tblSpcDir, bool infoTbsSize) { StringInfoData labelfbuf; StringInfoData tblspc_mapfbuf; @@ -14322,8 +14421,7 @@ XLogRecPtr StandbyDoStartBackup(const char* backupidstr, char** labelFile, char* XLByteToSeg(startPoint, _logSegNo); errorno = snprintf_s(xlogFileName, MAXFNAMELEN, MAXFNAMELEN - 1, "%08X%08X%08X", t_thrd.xlog_cxt.ThisTimeLineID, - (uint32)((_logSegNo) / XLogSegmentsPerXLogId), - (uint32)((_logSegNo) % XLogSegmentsPerXLogId)); + (uint32)((_logSegNo) / XLogSegmentsPerXLogId), (uint32)((_logSegNo) % XLogSegmentsPerXLogId)); securec_check_ss(errorno, "", ""); /* @@ -14342,8 +14440,7 @@ XLogRecPtr StandbyDoStartBackup(const char* backupidstr, char** labelFile, char* pg_strftime(strfbuf, sizeof(strfbuf), "%Y-%m-%d %H:%M:%S %Z", pg_localtime(&stamp_time, log_timezone)); appendStringInfo(&labelfbuf, "START WAL LOCATION: %X/%X (file %s)\n", (uint32)(startPoint >> 32), (uint32)startPoint, xlogFileName); - appendStringInfo(&labelfbuf, "CHECKPOINT LOCATION: %X/%X\n", (uint32)(checkPointLoc >> 32), - (uint32)checkPointLoc); + appendStringInfo(&labelfbuf, "CHECKPOINT LOCATION: %X/%X\n", (uint32)(checkPointLoc >> 32), (uint32)checkPointLoc); appendStringInfo(&labelfbuf, "BACKUP METHOD: streamed\n"); appendStringInfo(&labelfbuf, "BACKUP FROM: standby\n"); appendStringInfo(&labelfbuf, "START TIME: %s\n", strfbuf); @@ -14389,7 +14486,7 @@ static void pg_start_backup_callback(int code, Datum arg) * If labelfile is NULL, this stops an exclusive backup. Otherwise this stops * the non-exclusive backup specified by 'labelfile'. */ -XLogRecPtr do_pg_stop_backup(char *labelfile, bool waitforarchive, unsigned long long* consensusPaxosIdx) +XLogRecPtr do_pg_stop_backup(char *labelfile, bool waitforarchive, unsigned long long *consensusPaxosIdx) { bool exclusive = (labelfile == NULL); bool backup_started_in_recovery = false; @@ -14469,12 +14566,12 @@ XLogRecPtr do_pg_stop_backup(char *labelfile, bool waitforarchive, unsigned long } u_sess->proc_cxt.sessionBackupState = SESSION_BACKUP_NONE; StopSuspendWalInsert(lastlrc); - + /* * Clean up session-level lock. * - * You might think that WALInsertLockRelease() can be called before - * cleaning up session-level lock because session-level lock doesn't need + * You might think that WALInsertLockRelease() can be called before + * cleaning up session-level lock because session-level lock doesn't need * to be protected with WAL insertion lock. But since * CHECK_FOR_INTERRUPTS() can occur in it, session-level lock must be * cleaned up before it. @@ -14521,7 +14618,8 @@ XLogRecPtr do_pg_stop_backup(char *labelfile, bool waitforarchive, unsigned long ereport(ERROR, (errcode_for_file_access(), errmsg("could not remove file \"%s\": %m", fileName))); } if (unlink(TABLESPACE_MAP) != 0) { - ereport(DEBUG1, (errcode_for_file_access(), errmsg("could not remove file \"%s\": %m", TABLESPACE_MAP))); + ereport(DEBUG1, + (errcode_for_file_access(), errmsg("could not remove file \"%s\": %m", TABLESPACE_MAP))); } } } @@ -14822,12 +14920,12 @@ XLogRecPtr StandbyDoStopBackup(char *labelfile) void do_pg_abort_backup(void) { if (u_sess->proc_cxt.sessionBackupState != SESSION_BACKUP_NON_EXCLUSIVE) - return; + return; int32 lastlrc = 0; StartSuspendWalInsert(&lastlrc); - /* + /* * Quick exit if session is not keeping around a non-exclusive backup * already started. */ @@ -14886,7 +14984,8 @@ XLogRecPtr do_roach_start_backup(const char *backupidstr) LWLockRelease(ControlFileLock); /* wait for checkpoint record to be copied */ - if (!backup_started_in_recovery && u_sess->attr.attr_storage.guc_synchronous_commit > SYNCHRONOUS_COMMIT_LOCAL_FLUSH) { + if (!backup_started_in_recovery && + u_sess->attr.attr_storage.guc_synchronous_commit > SYNCHRONOUS_COMMIT_LOCAL_FLUSH) { if (g_instance.attr.attr_storage.dcf_attr.enable_dcf) { SyncPaxosWaitForLSN(checkpointloc); } else { @@ -14896,7 +14995,7 @@ XLogRecPtr do_roach_start_backup(const char *backupidstr) XLByteToSeg(startpoint, _logSegNo); errorno = snprintf_s(xlogfilename, MAXFNAMELEN, MAXFNAMELEN - 1, "%08X%08X%08X", t_thrd.xlog_cxt.ThisTimeLineID, - (uint32)((_logSegNo) / XLogSegmentsPerXLogId), (uint32)((_logSegNo) % XLogSegmentsPerXLogId)); + (uint32)((_logSegNo) / XLogSegmentsPerXLogId), (uint32)((_logSegNo) % XLogSegmentsPerXLogId)); securec_check_ss(errorno, "", ""); /* Construct backup label file with roach slot name */ @@ -14922,7 +15021,7 @@ XLogRecPtr do_roach_start_backup(const char *backupidstr) } else { ereport(ERROR, (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), errmsg("a backup is already in progress"), - errhint("If you're sure there is no backup in progress, remove file \"%s\" and try again.", strfbuf))); + errhint("If you're sure there is no backup in progress, remove file \"%s\" and try again.", strfbuf))); } fp = AllocateFile(strfbuf, "w"); @@ -14941,7 +15040,6 @@ XLogRecPtr do_roach_start_backup(const char *backupidstr) return startpoint; } - /* * stop roach backup * For primary, get current insert position. @@ -14966,7 +15064,8 @@ XLogRecPtr do_roach_stop_backup(const char *backupidstr) check_roach_backup_condition(backup_started_in_recovery, backupidstr); /* check roach backup label file existence. */ - errorno = snprintf_s(backup_label, sizeof(backup_label), sizeof(backup_label) - 1, "%s.%s", BACKUP_LABEL_FILE_ROACH, backupidstr); + errorno = snprintf_s(backup_label, sizeof(backup_label), sizeof(backup_label) - 1, "%s.%s", BACKUP_LABEL_FILE_ROACH, + backupidstr); securec_check_ss(errorno, "\0", "\0"); if (stat(backup_label, &statbuf)) { @@ -14974,7 +15073,7 @@ XLogRecPtr do_roach_stop_backup(const char *backupidstr) ereport(ERROR, (errcode_for_file_access(), errmsg("could not stat file \"%s\": %m", backup_label))); } ereport(ERROR, (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), - errmsg("roach backup %s is not in progress", backupidstr))); + errmsg("roach backup %s is not in progress", backupidstr))); } /* get backup stop lsn. For standby backup logic, see comments in do_pg_stop_backup. */ @@ -14985,17 +15084,18 @@ XLogRecPtr do_roach_stop_backup(const char *backupidstr) LWLockRelease(ControlFileLock); } else { #if defined(__x86_64__) || defined(__aarch64__) - current_bytepos = pg_atomic_barrier_read_u64((uint64*)&Insert->CurrBytePos); + current_bytepos = pg_atomic_barrier_read_u64((uint64 *)&Insert->CurrBytePos); stoppoint = XLogBytePosToEndRecPtr(current_bytepos); #else SpinLockAcquire(&Insert->insertpos_lck); stoppoint = XLogBytePosToEndRecPtr(Insert->CurrBytePos); SpinLockRelease(&Insert->insertpos_lck); #endif -} + } /* wait for stop lsn xlog to be copied */ - if (!backup_started_in_recovery && u_sess->attr.attr_storage.guc_synchronous_commit > SYNCHRONOUS_COMMIT_LOCAL_FLUSH) { + if (!backup_started_in_recovery && + u_sess->attr.attr_storage.guc_synchronous_commit > SYNCHRONOUS_COMMIT_LOCAL_FLUSH) { if (g_instance.attr.attr_storage.dcf_attr.enable_dcf) { SyncPaxosWaitForLSN(stoppoint); } else { @@ -15004,11 +15104,12 @@ XLogRecPtr do_roach_stop_backup(const char *backupidstr) } /* rename roach backup label for resume backup */ - errorno = snprintf_s(backup_label_done, sizeof(backup_label_done), sizeof(backup_label_done) - 1, "%s.%s", BACKUP_LABEL_FILE_ROACH_DONE, backupidstr); + errorno = snprintf_s(backup_label_done, sizeof(backup_label_done), sizeof(backup_label_done) - 1, "%s.%s", + BACKUP_LABEL_FILE_ROACH_DONE, backupidstr); securec_check_ss(errorno, "\0", "\0"); if (durable_rename(backup_label, backup_label_done, ERROR)) { - ereport(ERROR, (errcode_for_file_access(), errmsg("could not rename file \"%s\" to \"%s\": %m", - backup_label, backup_label_done))); + ereport(ERROR, (errcode_for_file_access(), + errmsg("could not rename file \"%s\" to \"%s\": %m", backup_label, backup_label_done))); } gstrace_exit(GS_TRC_ID_do_pg_stop_backup); @@ -15044,14 +15145,14 @@ void check_roach_backup_condition(bool backup_started_in_recovery, const char *b /* currently, roach backup id is the same as roach backup replication slot */ if (strlen(backupidstr) >= NAMEDATALEN) { - ereport(ERROR, (errcode(ERRCODE_NAME_TOO_LONG), errmsg("roach backup id name \"%s\" is too long", backupidstr))); + ereport(ERROR, + (errcode(ERRCODE_NAME_TOO_LONG), errmsg("roach backup id name \"%s\" is too long", backupidstr))); } if (strncmp(backupidstr, "gs_roach", strlen("gs_roach")) == 0 && strcmp(u_sess->attr.attr_common.application_name, "gs_roach") != 0) { - ereport(ERROR, - (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), - errmsg("Backup id name starting with gs_roach is internally reserverd"))); + ereport(ERROR, (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), + errmsg("Backup id name starting with gs_roach is internally reserverd"))); } } @@ -15235,7 +15336,7 @@ XLogRecPtr enable_delay_ddl_recycle(void) LWLockAcquire(CBMParseXlogLock, LW_EXCLUSIVE); #if defined(__x86_64__) || defined(__aarch64__) - uint64 current_bytepos = pg_atomic_barrier_read_u64((uint64*)&Insert->CurrBytePos); + uint64 current_bytepos = pg_atomic_barrier_read_u64((uint64 *)&Insert->CurrBytePos); curDelayRange.startLSN = XLogBytePosToEndRecPtr(current_bytepos); #else SpinLockAcquire(&Insert->insertpos_lck); @@ -15369,7 +15470,7 @@ void disable_delay_ddl_recycle(XLogRecPtr barrierLSN, bool isForce, XLogRecPtr * LWLockAcquire(RelfilenodeReuseLock, LW_EXCLUSIVE); #if defined(__x86_64__) || defined(__aarch64__) - uint64 current_bytepos = pg_atomic_barrier_read_u64((uint64*)&Insert->CurrBytePos); + uint64 current_bytepos = pg_atomic_barrier_read_u64((uint64 *)&Insert->CurrBytePos); delayRange.endLSN = XLogBytePosToEndRecPtr(current_bytepos); #else SpinLockAcquire(&Insert->insertpos_lck); @@ -15432,7 +15533,7 @@ void disable_delay_ddl_recycle(XLogRecPtr barrierLSN, bool isForce, XLogRecPtr * *endLSN = delayRange.endLSN; } -XLogRecPtr enable_delay_ddl_recycle_with_slot(const char* slotname) +XLogRecPtr enable_delay_ddl_recycle_with_slot(const char *slotname) { XLogRecPtr delay_start_lsn; XLogRecPtr ret_lsn; @@ -15451,7 +15552,7 @@ XLogRecPtr enable_delay_ddl_recycle_with_slot(const char* slotname) LWLockAcquire(CBMParseXlogLock, LW_EXCLUSIVE); #if defined(__x86_64__) || defined(__aarch64__) - uint64 current_bytepos = pg_atomic_barrier_read_u64((uint64*)&Insert->CurrBytePos); + uint64 current_bytepos = pg_atomic_barrier_read_u64((uint64 *)&Insert->CurrBytePos); delay_start_lsn = XLogBytePosToEndRecPtr(current_bytepos); #else SpinLockAcquire(&Insert->insertpos_lck); @@ -15488,7 +15589,7 @@ XLogRecPtr enable_delay_ddl_recycle_with_slot(const char* slotname) * there may be some residual of dropped column relation files * if we do encounter errors. */ -void disable_delay_ddl_recycle_with_slot(const char* slotname, XLogRecPtr *startLSN, XLogRecPtr *endLSN) +void disable_delay_ddl_recycle_with_slot(const char *slotname, XLogRecPtr *startLSN, XLogRecPtr *endLSN) { XLogRecPtr delay_start_lsn = InvalidXLogRecPtr; XLogRecPtr delay_end_lsn = InvalidXLogRecPtr; @@ -15517,7 +15618,7 @@ void disable_delay_ddl_recycle_with_slot(const char* slotname, XLogRecPtr *start LWLockAcquire(RelfilenodeReuseLock, LW_EXCLUSIVE); #if defined(__x86_64__) || defined(__aarch64__) - uint64 current_bytepos = pg_atomic_barrier_read_u64((uint64*)&Insert->CurrBytePos); + uint64 current_bytepos = pg_atomic_barrier_read_u64((uint64 *)&Insert->CurrBytePos); delay_end_lsn = XLogBytePosToEndRecPtr(current_bytepos); #else SpinLockAcquire(&Insert->insertpos_lck); @@ -15560,7 +15661,6 @@ void disable_delay_ddl_recycle_with_slot(const char* slotname, XLogRecPtr *start *endLSN = delay_end_lsn; } - /* * If system previously crashed while disabling delay ddl, we will try * to finish that in startup. @@ -15756,13 +15856,12 @@ void execDelayedDDL(XLogRecPtr startLSN, XLogRecPtr endLSN, bool ignoreCBMErr) } if (!XLByteEQ(cbmArray->startLSN, startLSN) || !XLByteEQ(cbmArray->endLSN, endLSN)) { - ereport(WARNING, - (errmsg("delay start-end %08X/%08X-%08X/%08X is inconsistent with cbm tracking " - "result start-end %08X/%08X-%08X/%08X. To be safe, while there may be residual " - "of dropped column files, We will leave them anyway", - (uint32)(startLSN >> 32), (uint32)(startLSN), (uint32)(endLSN >> 32), - (uint32)(endLSN), (uint32)(cbmArray->startLSN >> 32), (uint32)(cbmArray->startLSN), - (uint32)(cbmArray->endLSN >> 32), (uint32)(cbmArray->endLSN)))); + ereport(WARNING, (errmsg("delay start-end %08X/%08X-%08X/%08X is inconsistent with cbm tracking " + "result start-end %08X/%08X-%08X/%08X. To be safe, while there may be residual " + "of dropped column files, We will leave them anyway", + (uint32)(startLSN >> 32), (uint32)(startLSN), (uint32)(endLSN >> 32), (uint32)(endLSN), + (uint32)(cbmArray->startLSN >> 32), (uint32)(cbmArray->startLSN), + (uint32)(cbmArray->endLSN >> 32), (uint32)(cbmArray->endLSN)))); } else { for (i = 0; i < cbmArray->arrayLength; i++) { /* @@ -15798,7 +15897,7 @@ void RedoSpeedDiag(XLogRecPtr readPtr, XLogRecPtr endPtr) INSTR_TIME_SET_CURRENT(newTime); instr_time tmpTime = newTime; INSTR_TIME_SUBTRACT(tmpTime, g_instance.comm_cxt.predo_cxt.redoPf.preTime); - + uint64 totalTime = INSTR_TIME_GET_MICROSEC(tmpTime); if (redoBytes >= REDO_SPEED_LOG_LEN || (redoBytes > 0 && totalTime >= MAX_OUT_INTERVAL)) { uint64 speed = 0; /* KB/s */ @@ -15830,7 +15929,7 @@ void RedoSpeedDiag(XLogRecPtr readPtr, XLogRecPtr endPtr) * * Exported to allow WALReceiver to read the pointer directly. */ -XLogRecPtr GetXLogReplayRecPtr(TimeLineID * targetTLI, XLogRecPtr * ReplayReadPtr) +XLogRecPtr GetXLogReplayRecPtr(TimeLineID *targetTLI, XLogRecPtr *ReplayReadPtr) { /* use volatile pointer to prevent code rearrangement */ XLogCtlData *xlogctl = t_thrd.shemem_ptr_cxt.XLogCtl; @@ -15911,7 +16010,7 @@ XLogRecPtr GetXLogReplayRecPtrInPending(void) * If 'targetTLI' is not NULL, it's set to the current recovery target * timeline. */ -XLogRecPtr GetStandbyFlushRecPtr(TimeLineID * targetTLI) +XLogRecPtr GetStandbyFlushRecPtr(TimeLineID *targetTLI) { XLogRecPtr receivePtr; XLogRecPtr replayPtr; @@ -15935,7 +16034,7 @@ XLogRecPtr GetXLogInsertRecPtr(void) uint64 current_bytepos; #if defined(__x86_64__) || defined(__aarch64__) - current_bytepos = pg_atomic_barrier_read_u64((uint64*)&Insert->CurrBytePos); + current_bytepos = pg_atomic_barrier_read_u64((uint64 *)&Insert->CurrBytePos); #else SpinLockAcquire(&Insert->insertpos_lck); current_bytepos = Insert->CurrBytePos; @@ -15957,7 +16056,7 @@ XLogRecPtr GetXLogInsertEndRecPtr(void) uint64 current_bytepos; #if defined(__x86_64__) || defined(__aarch64__) - current_bytepos = pg_atomic_barrier_read_u64((uint64*)&Insert->CurrBytePos); + current_bytepos = pg_atomic_barrier_read_u64((uint64 *)&Insert->CurrBytePos); #else SpinLockAcquire(&Insert->insertpos_lck); current_bytepos = Insert->CurrBytePos; @@ -16035,7 +16134,8 @@ XLogRecPtr GetPaxosConsensusRecPtr(void) * was created during recovery, *backupFromStandby is set to TRUE. If this backup_label * was created during primary mode by gs_roach, *backupFromRoach is set to TRUE. */ -static bool read_backup_label(XLogRecPtr *checkPointLoc, bool *backupEndRequired, bool *backupFromStandby, bool *backupFromRoach) +static bool read_backup_label(XLogRecPtr *checkPointLoc, bool *backupEndRequired, bool *backupFromStandby, + bool *backupFromRoach) { char startxlogfilename[MAXFNAMELEN]; TimeLineID tli; @@ -16114,12 +16214,12 @@ static bool read_backup_label(XLogRecPtr *checkPointLoc, bool *backupEndRequired * information for all the tablespace links present in file); returns FALSE * if not. */ -static bool read_tablespace_map(List** tablespaces) +static bool read_tablespace_map(List **tablespaces) { - tablespaceinfo* ti; - FILE* lfp; + tablespaceinfo *ti; + FILE *lfp; char tbsoid[MAXPGPATH]; - char* tbslinkpath; + char *tbslinkpath; char str[MAXPGPATH]; int ch, prevCh = -1, i = 0, n; @@ -16146,13 +16246,12 @@ static bool read_tablespace_map(List** tablespaces) if ((ch == '\n' || ch == '\r') && prevCh != '\\') { str[i] = '\0'; if (sscanf_s(str, "%s %n", tbsoid, MAXPGPATH, &n) != 1) - ereport(FATAL, - (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), - errmsg("invalid data in file \"%s\"", TABLESPACE_MAP))); + ereport(FATAL, (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), + errmsg("invalid data in file \"%s\"", TABLESPACE_MAP))); tbslinkpath = str + n; i = 0; - ti = (tablespaceinfo*)palloc(sizeof(tablespaceinfo)); + ti = (tablespaceinfo *)palloc(sizeof(tablespaceinfo)); ti->oid = pstrdup(tbsoid); ti->path = pstrdup(tbslinkpath); @@ -16217,17 +16316,15 @@ void CancelBackup(void) unlink(BACKUP_LABEL_OLD); if (durable_rename(BACKUP_LABEL_FILE, BACKUP_LABEL_OLD, DEBUG1) == 0) { - ereport(LOG, - (errmsg("online backup mode canceled"), - errdetail("\"%s\" was renamed to \"%s\".", BACKUP_LABEL_FILE, BACKUP_LABEL_OLD))); + ereport(LOG, (errmsg("online backup mode canceled"), + errdetail("\"%s\" was renamed to \"%s\".", BACKUP_LABEL_FILE, BACKUP_LABEL_OLD))); return; } /* if the tablespace_map file is not there, return */ if (stat(TABLESPACE_MAP, &stat_buf) < 0) { - ereport(LOG, - (errmsg("online backup mode canceled"), - errdetail("File \"%s\" was renamed to \"%s\".", BACKUP_LABEL_FILE, BACKUP_LABEL_OLD))); + ereport(LOG, (errmsg("online backup mode canceled"), + errdetail("File \"%s\" was renamed to \"%s\".", BACKUP_LABEL_FILE, BACKUP_LABEL_OLD))); return; } @@ -16235,14 +16332,10 @@ void CancelBackup(void) unlink(TABLESPACE_MAP_OLD); if (durable_rename(TABLESPACE_MAP, TABLESPACE_MAP_OLD, DEBUG1) == 0) { - ereport(LOG, - (errmsg("online backup mode canceled"), - errdetail("Files \"%s\" and \"%s\" were renamed to " - "\"%s\" and \"%s\", respectively.", - BACKUP_LABEL_FILE, - TABLESPACE_MAP, - BACKUP_LABEL_OLD, - TABLESPACE_MAP_OLD))); + ereport(LOG, (errmsg("online backup mode canceled"), + errdetail("Files \"%s\" and \"%s\" were renamed to " + "\"%s\" and \"%s\", respectively.", + BACKUP_LABEL_FILE, TABLESPACE_MAP, BACKUP_LABEL_OLD, TABLESPACE_MAP_OLD))); } else { ereport(WARNING, (errcode_for_file_access(), errmsg("online backup mode was not canceled"), errdetail("Could not rename \"%s\" to \"%s\": %m.", BACKUP_LABEL_FILE, BACKUP_LABEL_OLD))); @@ -16300,15 +16393,18 @@ bool XLogReadFromWriteBuffer(XLogRecPtr targetStartPtr, int reqLen, char *readBu if (!XLByteEQ(targetStartPtr, lastreadptr) || XLByteLT(startPtr, lastreadptr + reqLen)) { WalRcvCtlReleaseExitLock(); const uint32 rightShiftSize = 32; - ereport(WARNING, (errmodule(MOD_REDO), errmsg("XLogReadFromWriteBuffer:" - "lastreadptr:%X/%X,EndRecPtr:%X/%X,length:%d,reallen:%ld,buf1:%ld,buf2:%ld,writeoffset:%ld,readoffset:%ld", - (uint32)(lastreadptr >> rightShiftSize), (uint32)(lastreadptr), (uint32)(startPtr >> rightShiftSize), - (uint32)(startPtr), reqLen, realLen, buflen1, buflen2, walwriteoffset, walReadOffset))); + ereport(WARNING, (errmodule(MOD_REDO), + errmsg("XLogReadFromWriteBuffer:" + "lastreadptr:%X/%X,EndRecPtr:%X/" + "%X,length:%d,reallen:%ld,buf1:%ld,buf2:%ld,writeoffset:%ld,readoffset:%ld", + (uint32)(lastreadptr >> rightShiftSize), (uint32)(lastreadptr), + (uint32)(startPtr >> rightShiftSize), (uint32)(startPtr), reqLen, realLen, buflen1, + buflen2, walwriteoffset, walReadOffset))); pg_atomic_write_u32(&(extreme_rto::g_recordbuffer->readWorkerState), extreme_rto::WORKER_STATE_STOPPING); return false; } - + if (walReadOffset <= walwriteoffset) { buflen1 = (walwriteoffset - walReadOffset); } else { @@ -16356,7 +16452,6 @@ bool XLogReadFromWriteBuffer(XLogRecPtr targetStartPtr, int reqLen, char *readBu return true; } - bool NewDataIsInBuf(XLogRecPtr expectedRecPtr) { bool havedata = false; @@ -16434,7 +16529,7 @@ static bool DoEarlyExit() } int ParallelXLogReadWorkBufRead(XLogReaderState *xlogreader, XLogRecPtr targetPagePtr, int reqLen, - XLogRecPtr targetRecPtr, TimeLineID *readTLI) + XLogRecPtr targetRecPtr, TimeLineID *readTLI) { XLogRecPtr RecPtr = targetPagePtr; uint32 targetPageOff = targetPagePtr % XLogSegSize; @@ -16540,7 +16635,7 @@ void WaitReplayFinishAfterReadXlogFileComplete(XLogRecPtr lastValidRecordLsn) } int ParallelXLogPageReadFile(XLogReaderState *xlogreader, XLogRecPtr targetPagePtr, int reqLen, XLogRecPtr targetRecPtr, - TimeLineID *readTLI) + TimeLineID *readTLI) { bool randAccess = false; uint32 targetPageOff; @@ -16612,23 +16707,21 @@ retry: extreme_rto::PushToWorkerLsn(true); WaitReplayFinishAfterReadXlogFileComplete(t_thrd.xlog_cxt.EndRecPtr); - + if (!xlogctl->IsRecoveryDone) { g_instance.comm_cxt.predo_cxt.redoPf.redo_done_time = GetCurrentTimestamp(); g_instance.comm_cxt.predo_cxt.redoPf.recovery_done_ptr = t_thrd.xlog_cxt.ReadRecPtr; } XLogRecPtr lastReplayedLsn = GetXLogReplayRecPtr(NULL); - ereport(LOG, (errmodule(MOD_REDO), errcode(ERRCODE_LOG), - errmsg("ParallelXLogPageReadFile IsRecoveryDone is %s set true," - "ReadRecPtr:%X/%X, EndRecPtr:%X/%X, lastreplayed:%X/%X", - xlogctl->IsRecoveryDone ? "next" : "first", - (uint32)(t_thrd.xlog_cxt.ReadRecPtr >> 32), - (uint32)(t_thrd.xlog_cxt.ReadRecPtr), - (uint32)(t_thrd.xlog_cxt.EndRecPtr >> 32), - (uint32)(t_thrd.xlog_cxt.EndRecPtr), - (uint32)(lastReplayedLsn >> 32), - (uint32)(lastReplayedLsn)))); + ereport(LOG, + (errmodule(MOD_REDO), errcode(ERRCODE_LOG), + errmsg("ParallelXLogPageReadFile IsRecoveryDone is %s set true," + "ReadRecPtr:%X/%X, EndRecPtr:%X/%X, lastreplayed:%X/%X", + xlogctl->IsRecoveryDone ? "next" : "first", + (uint32)(t_thrd.xlog_cxt.ReadRecPtr >> 32), (uint32)(t_thrd.xlog_cxt.ReadRecPtr), + (uint32)(t_thrd.xlog_cxt.EndRecPtr >> 32), (uint32)(t_thrd.xlog_cxt.EndRecPtr), + (uint32)(lastReplayedLsn >> 32), (uint32)(lastReplayedLsn)))); /* * signal postmaster to update local redo end @@ -16641,12 +16734,23 @@ retry: SpinLockAcquire(&xlogctl->info_lck); xlogctl->IsRecoveryDone = true; SpinLockRelease(&xlogctl->info_lck); - knl_g_set_redo_finish_status(REDO_FINISH_STATUS_LOCAL | REDO_FINISH_STATUS_CM); - /* - * If it hasn't been long since last attempt, sleep 1s to - * avoid busy-waiting. - */ - pg_usleep(50000L); + if (!(IS_SHARED_STORAGE_MODE) || + pg_atomic_read_u32(&t_thrd.walreceiverfuncs_cxt.WalRcv->rcvDoneFromShareStorage)) { + knl_g_set_redo_finish_status(REDO_FINISH_STATUS_LOCAL | REDO_FINISH_STATUS_CM); + ereport(LOG, + (errmodule(MOD_REDO), errcode(ERRCODE_LOG), + errmsg("ParallelXLogPageReadFile set redo finish status," + "ReadRecPtr:%X/%X, EndRecPtr:%X/%X", + (uint32)(t_thrd.xlog_cxt.ReadRecPtr >> 32), + (uint32)(t_thrd.xlog_cxt.ReadRecPtr), (uint32)(t_thrd.xlog_cxt.EndRecPtr >> 32), + (uint32)(t_thrd.xlog_cxt.EndRecPtr)))); + + /* + * If it hasn't been long since last attempt, sleep 1s to + * avoid busy-waiting. + */ + pg_usleep(150000L); + } /* * If primary_conninfo is set, launch walreceiver to * try to stream the missing WAL, before retrying to @@ -16659,31 +16763,30 @@ retry: * backwards to start redo at RedoStartLSN, we will * have the logs streamed already. */ - + uint32 trigger = pg_atomic_read_u32(&extreme_rto::g_readManagerTriggerFlag); if (trigger > 0) { pg_atomic_write_u32(&extreme_rto::g_readManagerTriggerFlag, extreme_rto::TRIGGER_NORMAL); goto triggered; } - + load_server_mode(); if (t_thrd.xlog_cxt.PrimaryConnInfo || t_thrd.xlog_cxt.server_mode == STANDBY_MODE) { t_thrd.xlog_cxt.receivedUpto = 0; uint32 failSouce = pg_atomic_read_u32(&extreme_rto::g_dispatcher->rtoXlogBufState.failSource); if (!(failSouce & XLOG_FROM_STREAM)) { - volatile WalRcvData* walrcv = t_thrd.walreceiverfuncs_cxt.WalRcv; + volatile WalRcvData *walrcv = t_thrd.walreceiverfuncs_cxt.WalRcv; SpinLockAcquire(&walrcv->mutex); walrcv->receivedUpto = 0; SpinLockRelease(&walrcv->mutex); t_thrd.xlog_cxt.readSource = XLOG_FROM_STREAM; t_thrd.xlog_cxt.XLogReceiptSource = XLOG_FROM_STREAM; - pg_atomic_write_u32(&extreme_rto::g_dispatcher->rtoXlogBufState.readSource, - XLOG_FROM_STREAM); + pg_atomic_write_u32(&extreme_rto::g_dispatcher->rtoXlogBufState.readSource, + XLOG_FROM_STREAM); pg_atomic_write_u32(&extreme_rto::g_dispatcher->rtoXlogBufState.waitRedoDone, 0); return -1; } - } } /* Don't try to read from a source that just failed */ @@ -16818,7 +16921,7 @@ triggered: } int ParallelXLogPageRead(XLogReaderState *xlogreader, XLogRecPtr targetPagePtr, int reqLen, XLogRecPtr targetRecPtr, - TimeLineID *readTLI) + TimeLineID *readTLI) { int readLen = -1; pg_atomic_write_u64(&extreme_rto::g_dispatcher->rtoXlogBufState.targetRecPtr, targetRecPtr); @@ -16852,10 +16955,9 @@ static ReplConnTarget GetRepConntarget(void) } } -static void HandleCascadeStandbyPromote(XLogRecPtr* recptr) +static void HandleCascadeStandbyPromote(XLogRecPtr *recptr) { - if (!t_thrd.xlog_cxt.is_cascade_standby || - t_thrd.xlog_cxt.server_mode != STANDBY_MODE || + if (!t_thrd.xlog_cxt.is_cascade_standby || t_thrd.xlog_cxt.server_mode != STANDBY_MODE || !IS_DN_MULTI_STANDYS_MODE()) { return; } @@ -16863,19 +16965,24 @@ static void HandleCascadeStandbyPromote(XLogRecPtr* recptr) ShutdownWalRcv(); /* switchover */ - volatile WalRcvData* walrcv = t_thrd.walreceiverfuncs_cxt.WalRcv; + volatile WalRcvData *walrcv = t_thrd.walreceiverfuncs_cxt.WalRcv; t_thrd.xlog_cxt.receivedUpto = 0; SpinLockAcquire(&walrcv->mutex); walrcv->receivedUpto = 0; SpinLockRelease(&walrcv->mutex); t_thrd.xlog_cxt.is_cascade_standby = false; + if (t_thrd.postmaster_cxt.HaShmData->is_cross_region) { + t_thrd.xlog_cxt.is_hadr_main_standby = true; + SpinLockAcquire(&t_thrd.postmaster_cxt.HaShmData->mutex); + t_thrd.postmaster_cxt.HaShmData->is_hadr_main_standby = true; + SpinLockRelease(&t_thrd.postmaster_cxt.HaShmData->mutex); + } t_thrd.xlog_cxt.switchover_triggered = false; if (IsExtremeRtoRunning()) { t_thrd.xlog_cxt.readfrombuffer = false; /* restart from recvbuffer */ - pg_atomic_write_u32(&(extreme_rto::g_recordbuffer->readWorkerState), - extreme_rto::WORKER_STATE_STOP); + pg_atomic_write_u32(&(extreme_rto::g_recordbuffer->readWorkerState), extreme_rto::WORKER_STATE_STOP); } /* failover */ @@ -16885,8 +16992,7 @@ static void HandleCascadeStandbyPromote(XLogRecPtr* recptr) SendPostmasterSignal(PMSIGNAL_UPDATE_NORMAL); /* request postmaster to start walreceiver again. */ - RequestXLogStreaming(recptr, t_thrd.xlog_cxt.PrimaryConnInfo, - GetRepConntarget(), + RequestXLogStreaming(recptr, t_thrd.xlog_cxt.PrimaryConnInfo, GetRepConntarget(), u_sess->attr.attr_storage.PrimarySlotName); } @@ -16896,15 +17002,29 @@ void CheckMaxPageFlushLSN(XLogRecPtr reqLsn) /* that force finish really starts to work from now on. */ if (FORCE_FINISH_ENABLED && t_thrd.xlog_cxt.max_page_flush_lsn == MAX_XLOG_REC_PTR) { t_thrd.xlog_cxt.max_page_flush_lsn = reqLsn; - ereport(LOG, - (errmsg("update max_page_flush_lsn to %X/%X for standby before request streaming", - (uint32) (t_thrd.xlog_cxt.max_page_flush_lsn >> 32), - (uint32) (t_thrd.xlog_cxt.max_page_flush_lsn)))); + ereport(LOG, (errmsg("update max_page_flush_lsn to %X/%X for standby before request streaming", + (uint32)(t_thrd.xlog_cxt.max_page_flush_lsn >> 32), + (uint32)(t_thrd.xlog_cxt.max_page_flush_lsn)))); update_max_page_flush_lsn(reqLsn, t_thrd.proc_cxt.MyProcPid, true); set_global_max_page_flush_lsn(reqLsn); } } +/* + * For single-instance cluster, non-pitr roach restore does not have restore target end point and + * recovery.conf file is renamed to indicate restore end when local xlog files have all been replayed. + */ +void rename_recovery_conf_for_roach() { + if (g_instance.role == VSINGLENODE && + g_instance.roach_cxt.isRoachRestore && + t_thrd.xlog_cxt.recoveryTarget == RECOVERY_TARGET_UNSET && + t_thrd.xlog_cxt.isRoachSingleReplayDone == false) { + ereport(LOG, (errmsg("rename recovery.conf to recovery.done for roach"))); + durable_rename(RECOVERY_COMMAND_FILE, RECOVERY_COMMAND_DONE, FATAL); + t_thrd.xlog_cxt.isRoachSingleReplayDone = true; + } +} + /* * Read the XLOG page containing RecPtr into readBuf (if not read already). * Returns number of bytes read, if the page is read successfully, or -1 @@ -17028,17 +17148,16 @@ retry: */ if (t_thrd.xlog_cxt.failedSources & XLOG_FROM_STREAM) { ProcTxnWorkLoad(true); - if (IsExtremeRtoRunning()) { - t_thrd.xlog_cxt.readfrombuffer = false; - pg_atomic_write_u32(&(extreme_rto::g_recordbuffer->readWorkerState), - extreme_rto::WORKER_STATE_STOP); - } + ereport(LOG, (errmsg("read from stream failed, request xlog receivedupto at %X/%X.", + (uint32)(t_thrd.xlog_cxt.receivedUpto >> 32), + (uint32)t_thrd.xlog_cxt.receivedUpto))); ShutdownWalRcv(); continue; } - if (!g_instance.attr.attr_storage.enable_mix_replication && - !IS_DN_MULTI_STANDYS_MODE() && !getObsRecoverySlot() && !g_instance.attr.attr_storage.dcf_attr.enable_dcf) { + if (!g_instance.attr.attr_storage.enable_mix_replication && !IS_DN_MULTI_STANDYS_MODE() && + !GetArchiveRecoverySlot() && !g_instance.attr.attr_storage.dcf_attr.enable_dcf && + !IS_SHARED_STORAGE_MODE) { /* Startup Data Streaming if none */ StartupDataStreaming(); } @@ -17094,9 +17213,7 @@ retry: t_thrd.xlog_cxt.readSource = XLOG_FROM_STREAM; t_thrd.xlog_cxt.XLogReceiptSource = XLOG_FROM_STREAM; } - if (IsExtremeRtoRunning() && (!g_instance.attr.attr_storage.enable_mix_replication)) { - t_thrd.xlog_cxt.readfrombuffer = true; - } + break; } @@ -17137,13 +17254,13 @@ retry: (uint32)t_thrd.xlog_cxt.receivedUpto))); if (t_thrd.xlog_cxt.is_cascade_standby) { - ereport(LOG, - (errmsg("Cascade Standby has synchronized all the xlog and replication data, " - "promote to standby"))); + ereport(LOG, (errmsg("Cascade Standby has synchronized all the xlog and replication data, " + "promote to standby"))); } else { ereport(LOG, - (errmsg("Secondary Standby has synchronized all the xlog and replication data, standby " + (errmsg( + "Secondary Standby has synchronized all the xlog and replication data, standby " "promote to primary"))); } @@ -17158,6 +17275,16 @@ retry: } } + if (IS_SHARED_STORAGE_MODE) { + uint32 disableConnectionNode = + pg_atomic_read_u32(&g_instance.comm_cxt.localinfo_cxt.need_disable_connection_node); + if (disableConnectionNode && WalRcvIsRunning()) { + ereport(LOG, (errmsg("request xlog receivedupto at %X/%X.", + (uint32)(t_thrd.xlog_cxt.receivedUpto >> 32), + (uint32)t_thrd.xlog_cxt.receivedUpto))); + ShutdownWalRcv(); + } + } /* * Data not here yet, so check for trigger then sleep for * five seconds like in the WAL file polling case below. @@ -17174,33 +17301,14 @@ retry: processtrxn = true; goto retry; } + /* * Wait for more WAL to arrive, or timeout to be reached */ - WaitLatch(&t_thrd.shemem_ptr_cxt.XLogCtl->recoveryWakeupLatch, WL_LATCH_SET | WL_TIMEOUT, 5000L); + WaitLatch(&t_thrd.shemem_ptr_cxt.XLogCtl->recoveryWakeupLatch, WL_LATCH_SET | WL_TIMEOUT, 1000L); processtrxn = false; ResetLatch(&t_thrd.shemem_ptr_cxt.XLogCtl->recoveryWakeupLatch); } else { - if (t_thrd.xlog_cxt.readfrombuffer) { - XLogRecPtr expectedRecPtr = RecPtr; - if (RecPtr % XLogSegSize == 0) { - XLByteAdvance(expectedRecPtr, SizeOfXLogLongPHD); - } else if (RecPtr % XLOG_BLCKSZ == 0) { - XLByteAdvance(expectedRecPtr, SizeOfXLogShortPHD); - } - t_thrd.xlog_cxt.receivedUpto = GetWalRcvWriteRecPtr(NULL); - if (!XLByteLT(expectedRecPtr, t_thrd.xlog_cxt.receivedUpto)) { - t_thrd.xlog_cxt.readfrombuffer = false; - if (t_thrd.xlog_cxt.readFile >= 0) { - close(t_thrd.xlog_cxt.readFile); - t_thrd.xlog_cxt.readFile = -1; - } - goto retry; - } else { - break; - } - } - uint32 sources; /* @@ -17255,7 +17363,7 @@ retry: ereport(LOG, (errmodule(MOD_REDO), errcode(ERRCODE_LOG), errmsg("XLogPageRead IsRecoveryDone is set true," "ReadRecPtr:%X/%X, EndRecPtr:%X/%X", - (uint32)(t_thrd.xlog_cxt.ReadRecPtr >> 32), + (uint32)(t_thrd.xlog_cxt.ReadRecPtr >> 32), (uint32)(t_thrd.xlog_cxt.ReadRecPtr), (uint32)(t_thrd.xlog_cxt.EndRecPtr >> 32), (uint32)(t_thrd.xlog_cxt.EndRecPtr)))); @@ -17274,12 +17382,36 @@ retry: SpinLockAcquire(&xlogctl->info_lck); xlogctl->IsRecoveryDone = true; SpinLockRelease(&xlogctl->info_lck); - knl_g_set_redo_finish_status(REDO_FINISH_STATUS_LOCAL | REDO_FINISH_STATUS_CM); - /* - * If it hasn't been long since last attempt, sleep 1s to - * avoid busy-waiting. - */ - pg_usleep(150000L); + static uint64 printFrequency = 0; + if (!(IS_SHARED_STORAGE_MODE) || + pg_atomic_read_u32(&t_thrd.walreceiverfuncs_cxt.WalRcv->rcvDoneFromShareStorage)) { + knl_g_set_redo_finish_status(REDO_FINISH_STATUS_LOCAL | REDO_FINISH_STATUS_CM); + if ((printFrequency & 0xFF) == 0) { + ereport(LOG, (errmodule(MOD_REDO), errcode(ERRCODE_LOG), + errmsg("XLogPageRead set redo finish status," + "ReadRecPtr:%X/%X, EndRecPtr:%X/%X", + (uint32)(t_thrd.xlog_cxt.ReadRecPtr >> 32), + (uint32)(t_thrd.xlog_cxt.ReadRecPtr), + (uint32)(t_thrd.xlog_cxt.EndRecPtr >> 32), + (uint32)(t_thrd.xlog_cxt.EndRecPtr)))); + } + printFrequency++; + /* + * If it hasn't been long since last attempt, sleep 1s to + * avoid busy-waiting. + */ + if (IS_SHARED_STORAGE_MODE) { + uint32 connMode = + pg_atomic_read_u32(&g_instance.comm_cxt.localinfo_cxt.need_disable_connection_node); + if (connMode) { + pg_atomic_write_u32(&g_instance.comm_cxt.localinfo_cxt.need_disable_connection_node, + false); + } + pg_usleep(2000000L); + } else { + pg_usleep(50000L); + } + } /* * If primary_conninfo is set, launch walreceiver to * try to stream the missing WAL, before retrying to @@ -17297,7 +17429,8 @@ retry: /* Get xlog and data from DummyStandby */ if (CheckForFailoverTrigger()) { if (t_thrd.xlog_cxt.is_cascade_standby) { - HandleCascadeStandbyPromote(fetching_ckpt ? &t_thrd.xlog_cxt.RedoStartLSN : &targetRecPtr); + HandleCascadeStandbyPromote(fetching_ckpt ? &t_thrd.xlog_cxt.RedoStartLSN + : &targetRecPtr); continue; } @@ -17331,10 +17464,10 @@ retry: } continue; } - }else if (IS_DISASTER_RECOVER_MODE) { + } else if (IS_DISASTER_RECOVER_MODE) { ProcTxnWorkLoad(false); /* use volatile pointer to prevent code rearrangement */ - volatile WalRcvData* walrcv = t_thrd.walreceiverfuncs_cxt.WalRcv; + volatile WalRcvData *walrcv = t_thrd.walreceiverfuncs_cxt.WalRcv; ereport(LOG, (errmsg("request xlog stream from obs at %X/%X.", fetching_ckpt ? (uint32)(t_thrd.xlog_cxt.RedoStartLSN >> 32) @@ -17347,14 +17480,41 @@ retry: walrcv->receivedUpto = 0; SpinLockRelease(&walrcv->mutex); - RequestXLogStreaming(fetching_ckpt ? &t_thrd.xlog_cxt.RedoStartLSN : &targetRecPtr, - 0, REPCONNTARGET_OBS, 0); + RequestXLogStreaming(fetching_ckpt ? &t_thrd.xlog_cxt.RedoStartLSN : &targetRecPtr, 0, + REPCONNTARGET_OBS, 0); + continue; + } else if (IS_SHARED_STORAGE_STANBY_MODE && !IS_SHARED_STORAGE_MAIN_STANDBY_MODE) { + ProcTxnWorkLoad(false); + /* use volatile pointer to prevent code rearrangement */ + volatile WalRcvData *walrcv = t_thrd.walreceiverfuncs_cxt.WalRcv; +#ifndef ENABLE_MULTIPLE_NODES + rename_recovery_conf_for_roach(); +#endif + + ereport(LOG, (errmsg("request xlog stream from shared storage at %X/%X.", + fetching_ckpt ? (uint32)(t_thrd.xlog_cxt.RedoStartLSN >> 32) + : (uint32)(targetRecPtr >> 32), + fetching_ckpt ? (uint32)t_thrd.xlog_cxt.RedoStartLSN + : (uint32)targetRecPtr))); + ShutdownWalRcv(); + t_thrd.xlog_cxt.receivedUpto = 0; + SpinLockAcquire(&walrcv->mutex); + walrcv->receivedUpto = 0; + SpinLockRelease(&walrcv->mutex); + + RequestXLogStreaming(fetching_ckpt ? &t_thrd.xlog_cxt.RedoStartLSN : &targetRecPtr, 0, + REPCONNTARGET_SHARED_STORAGE, 0); continue; } else if (t_thrd.xlog_cxt.PrimaryConnInfo || t_thrd.xlog_cxt.server_mode == STANDBY_MODE) { ProcTxnWorkLoad(false); /* use volatile pointer to prevent code rearrangement */ - volatile WalRcvData* walrcv = t_thrd.walreceiverfuncs_cxt.WalRcv; + volatile WalRcvData *walrcv = t_thrd.walreceiverfuncs_cxt.WalRcv; CheckMaxPageFlushLSN(targetRecPtr); + +#ifndef ENABLE_MULTIPLE_NODES + rename_recovery_conf_for_roach(); +#endif + ereport(LOG, (errmsg("request xlog stream at %X/%X.", fetching_ckpt ? (uint32)(t_thrd.xlog_cxt.RedoStartLSN >> 32) : (uint32)(targetRecPtr >> 32), @@ -17375,7 +17535,6 @@ retry: } continue; } - } /* Don't try to read from a source that just failed */ sources &= ~t_thrd.xlog_cxt.failedSources; @@ -17406,6 +17565,18 @@ retry: HandleCascadeStandbyPromote(fetching_ckpt ? &t_thrd.xlog_cxt.RedoStartLSN : &targetRecPtr); continue; } + XLogRecPtr receivedUpto = GetWalRcvWriteRecPtr(NULL); + XLogRecPtr EndRecPtrTemp = t_thrd.xlog_cxt.EndRecPtr; + XLByteAdvance(EndRecPtrTemp, SizeOfXLogRecord); + if (XLByteLT(EndRecPtrTemp, receivedUpto) && !FORCE_FINISH_ENABLED && + t_thrd.xlog_cxt.currentRetryTimes++ < g_retryTimes) { + ereport(WARNING, (errmsg("there are some received xlog have not been redo " + "the tail of last redo lsn:%X/%X, received lsn:%X/%X, retry %d times", + (uint32)(EndRecPtrTemp >> 32), (uint32)EndRecPtrTemp, + (uint32)(receivedUpto >> 32), (uint32)receivedUpto, + t_thrd.xlog_cxt.currentRetryTimes))); + return -1; + } ereport(LOG, (errmsg("read record failed when promoting, current lsn (%X/%X), received lsn(%X/%X)," "sources[%u], failedSources[%u], readSource[%u], readFile[%d], readId[%u]," @@ -17722,12 +17893,12 @@ static bool CheckForPrimaryTrigger(void) /* check for primary */ uint32 tgigger = pg_atomic_read_u32(&(extreme_rto::g_startupTriggerState)); if (tgigger == extreme_rto::TRIGGER_PRIMARY) { - (void)pg_atomic_compare_exchange_u32(&(extreme_rto::g_startupTriggerState), &tgigger, - extreme_rto::TRIGGER_NORMAL); + (void)pg_atomic_compare_exchange_u32(&(extreme_rto::g_startupTriggerState), &tgigger, + extreme_rto::TRIGGER_NORMAL); return true; } } - + return false; } @@ -17745,8 +17916,8 @@ static bool CheckForStandbyTrigger(void) /* check for primary */ uint32 tgigger = pg_atomic_read_u32(&(extreme_rto::g_startupTriggerState)); if (tgigger == extreme_rto::TRIGGER_STADNBY) { - (void)pg_atomic_compare_exchange_u32(&(extreme_rto::g_startupTriggerState), &tgigger, - extreme_rto::TRIGGER_NORMAL); + (void)pg_atomic_compare_exchange_u32(&(extreme_rto::g_startupTriggerState), &tgigger, + extreme_rto::TRIGGER_NORMAL); return true; } } @@ -18044,6 +18215,7 @@ void load_server_mode(void) SpinLockAcquire(&hashmdata->mutex); t_thrd.xlog_cxt.server_mode = hashmdata->current_mode; t_thrd.xlog_cxt.is_cascade_standby = hashmdata->is_cascade_standby; + t_thrd.xlog_cxt.is_hadr_main_standby = hashmdata->is_hadr_main_standby; SpinLockRelease(&hashmdata->mutex); } @@ -18095,7 +18267,7 @@ static void SetDummyStandbyEndRecPtr(XLogReaderState *xlogreader) /* * get the crc of the xlog record */ -pg_crc32 GetXlogRecordCrc(XLogRecPtr RecPtr, bool &crcvalid) +pg_crc32 GetXlogRecordCrc(XLogRecPtr RecPtr, bool &crcvalid, XLogPageReadCB pagereadfunc, Size bufAlignSize) { XLogReaderState *xlogreader = NULL; XLogPageReadPrivate readprivate; @@ -18124,7 +18296,7 @@ pg_crc32 GetXlogRecordCrc(XLogRecPtr RecPtr, bool &crcvalid) /* Set up XLOG reader facility */ rc = memset_s(&readprivate, sizeof(XLogPageReadPrivate), 0, sizeof(XLogPageReadPrivate)); securec_check(rc, "\0", "\0"); - xlogreader = XLogReaderAllocate(&XLogPageRead, &readprivate); + xlogreader = XLogReaderAllocate(pagereadfunc, &readprivate, bufAlignSize); if (xlogreader == NULL) { ereport(ERROR, (errcode(ERRCODE_OUT_OF_MEMORY), errmsg("out of memory"), errdetail("Failed while allocating an XLog reading processor"))); @@ -18330,8 +18502,9 @@ void SetCBMRotateLsn(XLogRecPtr rotate_lsn) volatile XLogCtlData *xlogctl = t_thrd.shemem_ptr_cxt.XLogCtl; XLogRecPtr curr_rotate_lsn; curr_rotate_lsn = GetCBMRotateLsn(); - while(XLByteLT(curr_rotate_lsn, rotate_lsn) - && pg_atomic_compare_exchange_u64(&xlogctl->cbmMaxRequestRotateLsn, &curr_rotate_lsn, rotate_lsn) == false); + while (XLByteLT(curr_rotate_lsn, rotate_lsn) && + pg_atomic_compare_exchange_u64(&xlogctl->cbmMaxRequestRotateLsn, &curr_rotate_lsn, rotate_lsn) == false) + ; ereport(LOG, (errmsg("set CBM SetCBMRotateLsn point: %08X/%08X ", (uint32)(rotate_lsn >> 32), (uint32)rotate_lsn))); } @@ -18349,8 +18522,8 @@ void SetCBMFileStartLsn(XLogRecPtr currCbmNameStartLsn) SpinLockAcquire(&xlogctl->info_lck); xlogctl->currCbmFileStartLsn = currCbmNameStartLsn; SpinLockRelease(&xlogctl->info_lck); - ereport(DEBUG1, (errmsg("set CBM SetCBMFileStartLsn %08X/%08X ", - (uint32)(currCbmNameStartLsn >> 32), (uint32)currCbmNameStartLsn))); + ereport(DEBUG1, (errmsg("set CBM SetCBMFileStartLsn %08X/%08X ", (uint32)(currCbmNameStartLsn >> 32), + (uint32)currCbmNameStartLsn))); } XLogRecPtr GetCBMFileStartLsn() @@ -18432,9 +18605,10 @@ XLogRecPtr GetDDLDelayStartPtr(void) bool IsRoachRestore(void) { - return (t_thrd.xlog_cxt.InRecovery && t_thrd.xlog_cxt.recoveryTarget == RECOVERY_TARGET_BARRIER && + return (t_thrd.xlog_cxt.InRecovery && ((t_thrd.xlog_cxt.recoveryTarget == RECOVERY_TARGET_BARRIER && t_thrd.xlog_cxt.recoveryTargetBarrierId != NULL && - strncmp(t_thrd.xlog_cxt.recoveryTargetBarrierId, ROACH_BACKUP_PREFIX, strlen(ROACH_BACKUP_PREFIX)) == 0); + strncmp(t_thrd.xlog_cxt.recoveryTargetBarrierId, ROACH_BACKUP_PREFIX, strlen(ROACH_BACKUP_PREFIX)) == 0) || + (g_instance.role == VSINGLENODE && g_instance.roach_cxt.isRoachRestore))); } const uint UPDATE_REC_XLOG_NUM = 4; @@ -18446,7 +18620,7 @@ bool atomic_update_dirty_page_queue_rec_lsn(XLogRecPtr current_insert_lsn, bool uint128_u exchange; uint128_u current; - compare = atomic_compare_and_swap_u128((uint128_u*)&g_instance.ckpt_cxt_ctl->dirty_page_queue_reclsn); + compare = atomic_compare_and_swap_u128((uint128_u *)&g_instance.ckpt_cxt_ctl->dirty_page_queue_reclsn); Assert(sizeof(g_instance.ckpt_cxt_ctl->dirty_page_queue_reclsn) == SIZE_OF_UINT64); Assert(sizeof(g_instance.ckpt_cxt_ctl->dirty_page_queue_tail) == SIZE_OF_UINT64); @@ -18455,12 +18629,11 @@ loop: /* if we already left behind dirty array queue reclsn, do nothing */ if (!XLByteLE(current_insert_lsn, cur_rec_lsn) && (need_immediately_update || current_insert_lsn - cur_rec_lsn > XLOG_SEG_SIZE * UPDATE_REC_XLOG_NUM)) { - exchange.u64[0] = current_insert_lsn; exchange.u64[1] = compare.u64[1]; - current = atomic_compare_and_swap_u128( - (uint128_u*)&g_instance.ckpt_cxt_ctl->dirty_page_queue_reclsn, compare, exchange); + current = atomic_compare_and_swap_u128((uint128_u *)&g_instance.ckpt_cxt_ctl->dirty_page_queue_reclsn, compare, + exchange); if (!UINT128_IS_EQUAL(compare, current)) { UINT128_COPY(compare, current); goto loop; @@ -18482,7 +18655,7 @@ void update_dirty_page_queue_rec_lsn(XLogRecPtr current_insert_lsn, bool need_im bool is_update = false; uint32 freespace; - if (!ENABLE_INCRE_CKPT) { + if (unlikely(!ENABLE_INCRE_CKPT)) { return; } @@ -18502,19 +18675,14 @@ void update_dirty_page_queue_rec_lsn(XLogRecPtr current_insert_lsn, bool need_im SpinLockAcquire(&g_instance.ckpt_cxt_ctl->queue_lock); if (!XLByteLE(current_insert_lsn, g_instance.ckpt_cxt_ctl->dirty_page_queue_reclsn) && - (need_immediately_update || current_insert_lsn - g_instance.ckpt_cxt_ctl->dirty_page_queue_reclsn > - XLOG_SEG_SIZE * UPDATE_REC_XLOG_NUM)) { + (need_immediately_update || + current_insert_lsn - g_instance.ckpt_cxt_ctl->dirty_page_queue_reclsn > XLOG_SEG_SIZE * UPDATE_REC_XLOG_NUM)) { g_instance.ckpt_cxt_ctl->dirty_page_queue_reclsn = current_insert_lsn; is_update = true; } SpinLockRelease(&g_instance.ckpt_cxt_ctl->queue_lock); #endif - if (is_update && u_sess->attr.attr_storage.log_pagewriter && RecoveryInProgress()) { - ereport(LOG, (errmodule(MOD_INCRE_CKPT), - errmsg("update dirty page queue recovery lsn is %08X/%08X", - (uint32)(current_insert_lsn >> XLOG_LSN_SWAP), (uint32)current_insert_lsn))); - } return; } @@ -18522,9 +18690,7 @@ uint64 get_dirty_page_queue_rec_lsn() { uint64 dirty_page_queue_rec_lsn = 0; #if defined(__x86_64__) || defined(__aarch64__) - uint128_u compare; - compare = atomic_compare_and_swap_u128((uint128_u*)&g_instance.ckpt_cxt_ctl->dirty_page_queue_reclsn); - dirty_page_queue_rec_lsn = compare.u64[0]; + dirty_page_queue_rec_lsn = pg_atomic_barrier_read_u64(&g_instance.ckpt_cxt_ctl->dirty_page_queue_reclsn); #else SpinLockAcquire(&g_instance.ckpt_cxt_ctl->queue_lock); dirty_page_queue_rec_lsn = g_instance.ckpt_cxt_ctl->dirty_page_queue_reclsn; @@ -18856,7 +19022,7 @@ void SetRemainSegsStartPoint(XLogRecPtr remainSegsStartPoint) SpinLockRelease(&xlogctl->info_lck); } -XLogRecPtr GetRemainSegsStartPoint(void) +XLogRecPtr GetRemainSegsStartPoint(void) { XLogRecPtr remainSegsStartPoint; volatile XLogCtlData *xlogctl = t_thrd.shemem_ptr_cxt.XLogCtl; @@ -18882,7 +19048,7 @@ bool IsNeedLogRemainSegs(XLogRecPtr curLsn) if (xlogctl->is_need_log_remain_segs) { return true; } - + SpinLockAcquire(&xlogctl->info_lck); xlogctl->is_need_log_remain_segs = (XLByteLT(xlogctl->remain_segs_start_point, curLsn)); SpinLockRelease(&xlogctl->info_lck); @@ -18917,7 +19083,8 @@ void UpdateRemainCommitLsn(XLogRecPtr newRemainCommitLsn) SpinLockRelease(&xlogctl->info_lck); } -uint32 GetDigitalByLog2(uint32 num) { +uint32 GetDigitalByLog2(uint32 num) +{ if (num == 1) { return 0; } else { @@ -18934,10 +19101,10 @@ void InitXlogStatuEntryTblSize() conCfgNum = (maxConn <= 0) ? 0 : GetDigitalByLog2(maxConn) + 1; if (g_instance.attr.attr_common.enable_thread_pool) { - char* attr = TrimStr(g_instance.attr.attr_common.thread_pool_attr); - char* ptoken = NULL; - char* psave = NULL; - const char* pdelimiter = ","; + char *attr = TrimStr(g_instance.attr.attr_common.thread_pool_attr); + char *ptoken = NULL; + char *psave = NULL; + const char *pdelimiter = ","; if ((attr) == NULL || (attr)[0] == '\0') { threadCfgNum = 0; @@ -18946,20 +19113,252 @@ void InitXlogStatuEntryTblSize() if ((ptoken) == NULL || (ptoken)[0] == '\0') { threadCfgNum = 0; } else { - int32 threadNum = pg_strtoint32(ptoken); + int32 threadNum = pg_strtoint32(ptoken); threadCfgNum = (threadNum <= 0) ? 0 : GetDigitalByLog2(threadNum) + 1; } - } + } } else { threadCfgNum = 0; - } + } /* Compare conCfgNum and threadCfgNum and use the max one. */ - g_instance.attr.attr_storage.wal_insert_status_entries_power = ((conCfgNum >= threadCfgNum) ? conCfgNum : - threadCfgNum) + WAL_INSERT_STATUS_TBL_EXPAND_FACTOR; + g_instance.attr.attr_storage.wal_insert_status_entries_power = + ((conCfgNum >= threadCfgNum) ? conCfgNum : threadCfgNum) + WAL_INSERT_STATUS_TBL_EXPAND_FACTOR; if (g_instance.attr.attr_storage.wal_insert_status_entries_power < MIN_WAL_INSERT_STATUS_ENTRY_POW) { g_instance.attr.attr_storage.wal_insert_status_entries_power = MIN_WAL_INSERT_STATUS_ENTRY_POW; } } +void InitShareStorageCtlInfo(ShareStorageXLogCtl *ctlInfo, uint64 sysidentifier) +{ + ctlInfo->magic = SHARE_STORAGE_CTL_MAGIC; + ctlInfo->length = SizeOfShareStorageXLogCtl; + ctlInfo->version = CURRENT_SHARE_STORAGE_CTL_VERSION; + ctlInfo->systemIdentifier = sysidentifier; + ctlInfo->insertHead = XLogSegSize; + ctlInfo->xlogFileSize = g_instance.attr.attr_storage.xlog_file_size; + ctlInfo->checkNumber = SHARE_STORAGE_CTL_CHCK_NUMBER; + ctlInfo->insertTail = XLogSegSize; + ctlInfo->term = 1; + ctlInfo->pad1 = 0; + ctlInfo->pad2 = 0; + ctlInfo->pad3 = 0; + ctlInfo->pad4 = 0; +} + +void UpdateShareStorageCtlInfo(const ShareStorageXLogCtl *ctlInfo) +{ + Assert(g_instance.xlog_cxt.shareStorageopCtl.isInit && (g_instance.xlog_cxt.shareStorageopCtl.opereateIf != NULL)); + g_instance.xlog_cxt.shareStorageopCtl.opereateIf->WriteCtlInfo(ctlInfo); +} + +void ReadShareStorageCtlInfo(ShareStorageXLogCtl *ctlInfo) +{ + Assert(g_instance.xlog_cxt.shareStorageopCtl.isInit && (g_instance.xlog_cxt.shareStorageopCtl.opereateIf != NULL)); + g_instance.xlog_cxt.shareStorageopCtl.opereateIf->ReadCtlInfo(ctlInfo); +} + +int ReadXlogFromShareStorage(XLogRecPtr startLsn, char *buf, int expectReadLen) +{ + Assert(g_instance.xlog_cxt.shareStorageopCtl.isInit && (g_instance.xlog_cxt.shareStorageopCtl.opereateIf != NULL)); + return g_instance.xlog_cxt.shareStorageopCtl.opereateIf->readXlog(startLsn, buf, expectReadLen); +} + +int WriteXlogToShareStorage(XLogRecPtr startLsn, char *buf, int writeLen) +{ + Assert(g_instance.xlog_cxt.shareStorageopCtl.isInit && (g_instance.xlog_cxt.shareStorageopCtl.opereateIf != NULL)); + return g_instance.xlog_cxt.shareStorageopCtl.opereateIf->WriteXlog(startLsn, buf, writeLen); +} + +void FsyncXlogToShareStorage() +{ + Assert(g_instance.xlog_cxt.shareStorageopCtl.isInit && (g_instance.xlog_cxt.shareStorageopCtl.opereateIf != NULL)); + g_instance.xlog_cxt.shareStorageopCtl.opereateIf->fsync(); +} + +pg_crc32c CalShareStorageCtlInfoCrc(const ShareStorageXLogCtl *ctlInfo) +{ + Assert(g_instance.xlog_cxt.shareStorageopCtl.isInit); + pg_crc32c crc; + INIT_CRC32C(crc); + COMP_CRC32C(crc, (char*)ctlInfo, offsetof(ShareStorageXLogCtl, crc)); + FIN_CRC32C(crc); + + return crc; +} + +void ShareStorageInit() +{ + if (g_instance.attr.attr_storage.xlog_file_path != NULL && g_instance.attr.attr_storage.xlog_file_size > 0) { + bool found = false; + void *tmpBuf = ShmemInitStruct("share storage Ctl", CalShareStorageCtlSize(), &found); + g_instance.xlog_cxt.shareStorageXLogCtl = (ShareStorageXLogCtl *)TYPEALIGN(MEMORY_ALIGNED_SIZE, tmpBuf); + g_instance.xlog_cxt.shareStorageXLogCtlOrigin = tmpBuf; + InitDoradoStorage(g_instance.attr.attr_storage.xlog_file_path, g_instance.attr.attr_storage.xlog_file_size); + if (!IsInitdb && g_instance.attr.attr_storage.xlog_lock_file_path != NULL) { + g_instance.xlog_cxt.shareStorageLockFd = BasicOpenFile(g_instance.attr.attr_storage.xlog_lock_file_path, + O_CREAT | O_RDWR | PG_BINARY, S_IRUSR | S_IWUSR); + if (g_instance.xlog_cxt.shareStorageLockFd < 0) { + ereport(ERROR, (errcode_for_file_access(), errmsg("could not open file \"%s\": %m", + g_instance.attr.attr_storage.xlog_lock_file_path))); + } + } + } +} + +void ShareStorageSetBuildErrorAndExit(HaRebuildReason reason, bool setRcvDone) +{ + if (!setRcvDone) { + /* need build return error */ + ha_set_rebuild_connerror(reason, REPL_INFO_ERROR); + } else { + uint32 disableConnectionNode = + pg_atomic_read_u32(&g_instance.comm_cxt.localinfo_cxt.need_disable_connection_node); + if (disableConnectionNode) { + pg_atomic_write_u32(&t_thrd.walreceiverfuncs_cxt.WalRcv->rcvDoneFromShareStorage, true); + } + } + /* exit from walreceiber */ + ereport(ERROR, (errcode(ERRCODE_INVALID_STATUS), + errmsg("ShareStorageSetBuildErrorAndExit, exit from walreceiver! build reason: %s, RcvDone:%d", + wal_get_rebuild_reason_string(reason), (int)setRcvDone))); +} + +void FindLastRecordCheckInfoOnShareStorage(XLogRecPtr *lastRecordPtr, pg_crc32 *lastRecordCrc, int *lastRecordLen) +{ + ShareStorageXLogCtl *ctlInfo = AlignAllocShareStorageCtl(); + ReadShareStorageCtlInfo(ctlInfo); + XLogRecPtr startLsn = ctlInfo->insertHead - (ctlInfo->insertHead % XLOG_BLCKSZ); + XLogRecPtr endPtr = XLOG_SEG_SIZE; + if (ctlInfo->insertHead > g_instance.xlog_cxt.shareStorageopCtl.xlogFileSize) { + endPtr = ctlInfo->insertHead - g_instance.xlog_cxt.shareStorageopCtl.xlogFileSize; + } + + XLogReaderState *xlogReader = XLogReaderAllocate(&SharedStorageXLogPageRead, NULL, + g_instance.xlog_cxt.shareStorageopCtl.blkSize); + if (xlogReader == NULL) { + ereport(ERROR, (errcode(ERRCODE_OUT_OF_MEMORY), errmsg("out of memory"), + errdetail("FindLastRecordCheckInfoOnShareStorage Failed while allocating an XLog reader"))); + } + bool findValidXLogFile = false; + XLogRecPtr curLsn; + + while (XLByteLE(endPtr, startLsn)) { + XLogRecPtr curEnd; + curLsn = XLogFindNextRecord(xlogReader, startLsn, &curEnd); + if (XLogRecPtrIsInvalid(curLsn) || XLByteLT(ctlInfo->insertHead, curEnd)) { + startLsn = startLsn - XLOG_BLCKSZ; + continue; + } else { + findValidXLogFile = true; + break; + } + } + + if (!findValidXLogFile) { + if (xlogReader != NULL) { + XLogReaderFree(xlogReader); + xlogReader = NULL; + } + AlignFreeShareStorageCtl(ctlInfo); + ereport(ERROR, (errcode(ERRCODE_INVALID_STATUS), errmsg("could not find valid xlog on share storage"))); + return; + } + + for (;;) { + char *errorMsg = NULL; + XLogRecord *record = XLogReadRecord(xlogReader, curLsn, &errorMsg); + if (record == NULL || XLByteLT(ctlInfo->insertHead, xlogReader->EndRecPtr)) { + break; + } + curLsn = InvalidXLogRecPtr; + *lastRecordCrc = record->xl_crc; + *lastRecordLen = record->xl_tot_len; + *lastRecordPtr = xlogReader->ReadRecPtr; + } + + if (xlogReader != NULL) { + XLogReaderFree(xlogReader); + xlogReader = NULL; + } + + if (XLogRecPtrIsInvalid(*lastRecordPtr)) { + ereport(ERROR, (errcode(ERRCODE_INVALID_STATUS), errmsg("could not find max xlog on share storage"))); + } else { + uint32 shiftSize = 32; + ereport(LOG, (errcode(ERRCODE_INVALID_STATUS), + errmsg("find max xlog on share storage %X/%X", static_cast(*lastRecordPtr >> shiftSize), + static_cast(*lastRecordPtr)))); + } + + AlignFreeShareStorageCtl(ctlInfo); +} + +Size SimpleValidatePage(XLogReaderState *xlogreader, XLogRecPtr targetPagePtr, char *page) +{ + XLogPageHeader hdr = (XLogPageHeader)page; + bool ret = ValidXLogPageHeader(xlogreader, targetPagePtr, hdr, false); + if (!ret) { + elog(LOG, "SimpleValidatePage:%s", xlogreader->errormsg_buf); + return 0; + } + + return hdr->xlp_total_len; +} + +int SharedStorageXLogPageRead(XLogReaderState *xlogreader, XLogRecPtr targetPagePtr, int reqLen, + XLogRecPtr targetRecPtr, char *readBuf, TimeLineID *readTLI) +{ + int read_len = ReadXlogFromShareStorage(targetPagePtr, readBuf, Max(XLOG_BLCKSZ, reqLen)); + return read_len; +} + +void CheckShareStorageWriteLock() +{ + if (!IS_SHARED_STORAGE_MODE || IsInitdb) { + return; + } + + if (g_instance.attr.attr_storage.xlog_lock_file_path == NULL) { + ereport(WARNING, (errmsg("NO share storage lock"))); + return; + } + const int maxRetryTimes = 20; + int retryTimes = 0; + bool locked = false; + while (retryTimes < maxRetryTimes) { + ++retryTimes; + locked = LockNasWriteFile(g_instance.xlog_cxt.shareStorageLockFd); + if (locked) { + break; + } + + sleep(1); + } + + if (!locked) { + ereport(FATAL, (errmsg("could not lock lock file"))); + } + ereport(LOG, (errmsg("lock lock file(%d) %s", g_instance.xlog_cxt.shareStorageLockFd, + g_instance.attr.attr_storage.xlog_lock_file_path))); +} + +XLogRecPtr GetFlushMainStandby() +{ + XLogRecPtr recptr = InvalidXLogRecPtr; + XLogRecPtr replayptr = InvalidXLogRecPtr; + XLogRecPtr flushptr = InvalidXLogRecPtr; + volatile WalRcvData *walrcv = t_thrd.walreceiverfuncs_cxt.WalRcv; + volatile XLogCtlData *xlogctl = t_thrd.shemem_ptr_cxt.XLogCtl; + + SpinLockAcquire(&walrcv->mutex); + recptr = walrcv->receivedUpto; + SpinLockRelease(&walrcv->mutex); + SpinLockAcquire(&xlogctl->info_lck); + replayptr = xlogctl->lastReplayedEndRecPtr; + SpinLockRelease(&xlogctl->info_lck); + flushptr = XLByteLT(recptr, replayptr)? replayptr : recptr; + + return flushptr; +} diff --git a/src/gausskernel/storage/access/transam/xlogfuncs.cpp b/src/gausskernel/storage/access/transam/xlogfuncs.cpp index 96ebbd9c8..dfa7397f0 100755 --- a/src/gausskernel/storage/access/transam/xlogfuncs.cpp +++ b/src/gausskernel/storage/access/transam/xlogfuncs.cpp @@ -26,13 +26,14 @@ #include "access/cbmparsexlog.h" #include "access/xlog.h" #include "access/obs/obs_am.h" +#include "access/archive/archive_am.h" #include "access/xlog_internal.h" #include "access/xlogutils.h" #include "catalog/catalog.h" #include "catalog/pg_type.h" #include "funcapi.h" #include "miscadmin.h" -#include "replication/obswalreceiver.h" +#include "replication/archive_walreceiver.h" #include "replication/walreceiver.h" #include "replication/walsender_private.h" #include "replication/slot.h" @@ -1176,8 +1177,8 @@ Datum gs_set_obs_delete_location_with_slotname(PG_FUNCTION_ARGS) errmsg("could not parse transaction log location \"%s\"", lsnLocation))); locationpoint = (((uint64)hi) << 32) | lo; - if ((archive_conf = getObsReplicationSlotWithName(currentSlotName)) != NULL) { - (void)obs_replication_cleanup(locationpoint, &archive_conf->archive_obs); + if ((archive_conf = getArchiveReplicationSlotWithName(currentSlotName)) != NULL) { + (void)archive_replication_cleanup(locationpoint, &archive_conf->archive_config); } XLByteToSeg(locationpoint, xlogsegno); @@ -1221,9 +1222,9 @@ Datum gs_set_obs_delete_location(PG_FUNCTION_ARGS) locationpoint = (((uint64)hi) << 32) | lo; - if (getObsRecoverySlot()) { + if (GetArchiveRecoverySlot()) { // Call the OBS deletion API. - (void)obs_replication_cleanup(locationpoint, NULL); + (void)archive_replication_cleanup(locationpoint, NULL); } XLByteToSeg(locationpoint, xlogsegno); @@ -1257,11 +1258,11 @@ Datum gs_get_global_barrier_status(PG_FUNCTION_ARGS) get_slot_func slot_func; List *all_archive_slots = NIL; if (IS_DISASTER_RECOVER_MODE || IS_CNDISASTER_RECOVER_MODE) { - all_archive_slots = get_all_recovery_obs_slots_name(); - slot_func = &getObsRecoverySlotWithName; + all_archive_slots = GetAllRecoverySlotsName(); + slot_func = &getArchiveRecoverySlotWithName; } else { - all_archive_slots = get_all_archive_obs_slots_name(); - slot_func = &getObsReplicationSlotWithName; + all_archive_slots = GetAllArchiveSlotsName(); + slot_func = &getArchiveReplicationSlotWithName; } if (all_archive_slots == NIL || all_archive_slots->length == 0) { rc = strncpy_s((char *)globalBarrierId, MAX_BARRIER_ID_LENGTH, @@ -1276,13 +1277,13 @@ Datum gs_get_global_barrier_status(PG_FUNCTION_ARGS) securec_check(rc, "\0", "\0"); } else { char pathPrefix[MAXPGPATH] = {0}; - ObsArchiveConfig obsConfig; + ArchiveConfig obsConfig; /* copy OBS configs to temporary variable for customising file path */ - rc = memcpy_s(&obsConfig, sizeof(ObsArchiveConfig), &archive_conf->archive_obs, sizeof(ObsArchiveConfig)); + rc = memcpy_s(&obsConfig, sizeof(ArchiveConfig), &archive_conf->archive_config, sizeof(ArchiveConfig)); securec_check(rc, "", ""); if (!IS_PGXC_COORDINATOR) { - rc = strcpy_s(pathPrefix, MAXPGPATH, obsConfig.obs_prefix); + rc = strcpy_s(pathPrefix, MAXPGPATH, obsConfig.archive_prefix); securec_check_c(rc, "\0", "\0"); char *p = strrchr(pathPrefix, '/'); @@ -1291,21 +1292,22 @@ Datum gs_get_global_barrier_status(PG_FUNCTION_ARGS) errmsg("Obs path prefix is invalid"))); } *p = '\0'; - obsConfig.obs_prefix = pathPrefix; + obsConfig.archive_prefix = pathPrefix; } - objectList = obsList(HADR_BARRIER_ID_FILE, &obsConfig, true, true); + objectList = ArchiveList(HADR_BARRIER_ID_FILE, &obsConfig, true, true); if (objectList == NIL || objectList->length <= 0) { ereport(ERROR, (errcode(ERRCODE_NO_DATA_FOUND), (errmsg("The Barrier ID file named %s cannot be found.", HADR_BARRIER_ID_FILE)))); } - readLen = obsRead(HADR_BARRIER_ID_FILE, 0, globalBarrierId, MAX_BARRIER_ID_LENGTH, + readLen = ArchiveRead(HADR_BARRIER_ID_FILE, 0, globalBarrierId, MAX_BARRIER_ID_LENGTH, &obsConfig); if (readLen == 0) { ereport(ERROR, (errcode(ERRCODE_NO_DATA_FOUND), (errmsg("Cannot read global barrier ID in %s file!", HADR_BARRIER_ID_FILE)))); } + globalBarrierId[MAX_BARRIER_ID_LENGTH - 1] = '\0'; list_free_deep(all_archive_slots); } } @@ -1325,6 +1327,7 @@ Datum gs_get_global_barrier_status(PG_FUNCTION_ARGS) isnull[1] = false; resultHeapTuple = heap_form_tuple(resultTupleDesc, values, isnull); result = HeapTupleGetDatum(resultHeapTuple); + list_free_deep(objectList); PG_RETURN_DATUM(result); } @@ -1377,11 +1380,11 @@ Datum gs_get_global_barriers_status(PG_FUNCTION_ARGS) // global_achive_barrierId:max achive barrierId List *all_archive_slots = NIL; if (IS_DISASTER_RECOVER_MODE || IS_CNDISASTER_RECOVER_MODE) { - all_archive_slots = get_all_recovery_obs_slots_name(); - slot_func = &getObsRecoverySlotWithName; + all_archive_slots = GetAllRecoverySlotsName(); + slot_func = &getArchiveRecoverySlotWithName; } else { - all_archive_slots = get_all_archive_obs_slots_name(); - slot_func = &getObsReplicationSlotWithName; + all_archive_slots = GetAllArchiveSlotsName(); + slot_func = &getArchiveReplicationSlotWithName; } if (all_archive_slots == NIL || all_archive_slots->length == 0) { tuplestore_donestoring(tupstore); @@ -1395,13 +1398,13 @@ Datum gs_get_global_barriers_status(PG_FUNCTION_ARGS) ArchiveSlotConfig *archive_conf = NULL; if ((archive_conf = slot_func(slotname)) != NULL) { char pathPrefix[MAXPGPATH] = {0}; - ObsArchiveConfig obsConfig; + ArchiveConfig obsConfig; /* copy OBS configs to temporary variable for customising file path */ - rc = memcpy_s(&obsConfig, sizeof(ObsArchiveConfig), &archive_conf->archive_obs, sizeof(ObsArchiveConfig)); + rc = memcpy_s(&obsConfig, sizeof(ArchiveConfig), &archive_conf->archive_config, sizeof(ArchiveConfig)); securec_check(rc, "", ""); if (!IS_PGXC_COORDINATOR) { - rc = strcpy_s(pathPrefix, MAXPGPATH, obsConfig.obs_prefix); + rc = strcpy_s(pathPrefix, MAXPGPATH, obsConfig.archive_prefix); securec_check_c(rc, "\0", "\0"); char *p = strrchr(pathPrefix, '/'); @@ -1410,21 +1413,22 @@ Datum gs_get_global_barriers_status(PG_FUNCTION_ARGS) errmsg("Obs path prefix is invalid"))); } *p = '\0'; - obsConfig.obs_prefix = pathPrefix; + obsConfig.archive_prefix = pathPrefix; } - objectList = obsList(HADR_BARRIER_ID_FILE, &obsConfig, true, true); + objectList = ArchiveList(HADR_BARRIER_ID_FILE, &obsConfig, true, true); if (objectList == NIL || objectList->length <= 0) { ereport(ERROR, (errcode(ERRCODE_NO_DATA_FOUND), (errmsg("The Barrier ID file named %s cannot be found.", HADR_BARRIER_ID_FILE)))); } - readLen = obsRead(HADR_BARRIER_ID_FILE, 0, globalBarrierId, MAX_BARRIER_ID_LENGTH, + readLen = ArchiveRead(HADR_BARRIER_ID_FILE, 0, globalBarrierId, MAX_BARRIER_ID_LENGTH, &obsConfig); if (readLen == 0) { ereport(ERROR, (errcode(ERRCODE_NO_DATA_FOUND), (errmsg("Cannot read global barrier ID in %s file!", HADR_BARRIER_ID_FILE)))); } + globalBarrierId[MAX_BARRIER_ID_LENGTH - 1] = '\0'; } else { rc = strncpy_s((char *)globalBarrierId, MAX_BARRIER_ID_LENGTH, "hadr_00000000000000000001_0000000000000", MAX_BARRIER_ID_LENGTH - 1); @@ -1447,6 +1451,7 @@ Datum gs_get_global_barriers_status(PG_FUNCTION_ARGS) tuplestore_putvalues(tupstore, tupdesc, values, isnull); } list_free_deep(all_archive_slots); + list_free_deep(objectList); tuplestore_donestoring(tupstore); PG_RETURN_DATUM(0); } @@ -1546,7 +1551,7 @@ Datum gs_hadr_do_switchover(PG_FUNCTION_ARGS) PG_RETURN_BOOL(false); } - List *archiveSlotNames = get_all_archive_obs_slots_name(); + List *archiveSlotNames = GetAllArchiveSlotsName(); if (archiveSlotNames == NIL || archiveSlotNames->length == 0) { ereport(LOG, (errmsg("[hadr switchover]obs_archive_slot does not exist."))); PG_RETURN_BOOL(false); @@ -1569,22 +1574,29 @@ Datum gs_hadr_do_switchover(PG_FUNCTION_ARGS) #endif errno_t rc = 0; - ObsArchiveConfig obsConfig; + ArchiveConfig obsConfig; char pathPrefix[MAXPGPATH] = {0}; char *slotname = (char *)lfirst((list_head(archiveSlotNames))); ArchiveSlotConfig *archive_conf = NULL; - if ((archive_conf = getObsReplicationSlotWithName(slotname)) == NULL) { + if ((archive_conf = getArchiveReplicationSlotWithName(slotname)) == NULL) { + list_free_deep(archiveSlotNames); + archiveSlotNames = NULL; + PG_RETURN_BOOL(false); + } + + /* hadr only support OBS */ + if (archive_conf->archive_config.media_type != ARCHIVE_OBS) { list_free_deep(archiveSlotNames); archiveSlotNames = NULL; PG_RETURN_BOOL(false); } /* copy OBS configs to temporary variable for customising file path */ - rc = memcpy_s(&obsConfig, sizeof(ObsArchiveConfig), &archive_conf->archive_obs, sizeof(ObsArchiveConfig)); + rc = memcpy_s(&obsConfig, sizeof(ArchiveConfig), &archive_conf->archive_config, sizeof(ArchiveConfig)); securec_check(rc, "", ""); if (!IS_PGXC_COORDINATOR) { - rc = strcpy_s(pathPrefix, MAXPGPATH, obsConfig.obs_prefix); + rc = strcpy_s(pathPrefix, MAXPGPATH, obsConfig.archive_prefix); securec_check(rc, "\0", "\0"); char *p = strrchr(pathPrefix, '/'); @@ -1596,7 +1608,7 @@ Datum gs_hadr_do_switchover(PG_FUNCTION_ARGS) PG_RETURN_BOOL(false); } *p = '\0'; - obsConfig.obs_prefix = pathPrefix; + obsConfig.archive_prefix = pathPrefix; } ereport(LOG, (errmsg("write switchover barrier id %s to obs", barrier_name))); @@ -1658,17 +1670,17 @@ Datum gs_upload_obs_file(PG_FUNCTION_ARGS) (errmsg("Must be system admin or operator admin in operation mode to gs_upload_obs_file.")))); ArchiveSlotConfig *archive_conf = NULL; - if ((archive_conf = getObsReplicationSlotWithName(slotname)) != NULL) { - ObsArchiveConfig obsConfig; + if ((archive_conf = getArchiveReplicationSlotWithName(slotname)) != NULL) { + ArchiveConfig obsConfig; /* copy OBS configs to temporary variable for customising file path */ - rc = memcpy_s(&obsConfig, sizeof(ObsArchiveConfig), &archive_conf->archive_obs, sizeof(ObsArchiveConfig)); + rc = memcpy_s(&obsConfig, sizeof(ArchiveConfig), &archive_conf->archive_config, sizeof(ArchiveConfig)); securec_check(rc, "", ""); rc = snprintf_s(localFilePath, MAX_PATH_LEN, MAX_PATH_LEN - 1, "%s/%s", t_thrd.proc_cxt.DataDir, src); securec_check_ss(rc, "\0", "\0"); ereport(LOG, ((errmsg("There local file is %s.", localFilePath)))); rc = snprintf_s(netBackupPath, MAX_PATH_LEN, MAX_PATH_LEN - 1, "%s/%s", - archive_conf->archive_obs.obs_prefix, dest); + archive_conf->archive_config.archive_prefix, dest); securec_check_ss(rc, "\0", "\0"); ereport(LOG, ((errmsg("There netbackup file is %s.", netBackupPath)))); @@ -1700,21 +1712,21 @@ Datum gs_download_obs_file(PG_FUNCTION_ARGS) ArchiveSlotConfig *archive_conf = NULL; if (IS_CNDISASTER_RECOVER_MODE) { - archive_conf = getObsRecoverySlot(); + archive_conf = GetArchiveRecoverySlot(); } else { - archive_conf = getObsReplicationSlotWithName(slotname); + archive_conf = getArchiveReplicationSlotWithName(slotname); } if (archive_conf != NULL) { - ObsArchiveConfig obsConfig; + ArchiveConfig obsConfig; /* copy OBS configs to temporary variable for customising file path */ - rc = memcpy_s(&obsConfig, sizeof(ObsArchiveConfig), &archive_conf->archive_obs, sizeof(ObsArchiveConfig)); + rc = memcpy_s(&obsConfig, sizeof(ArchiveConfig), &archive_conf->archive_config, sizeof(ArchiveConfig)); securec_check(rc, "", ""); rc = snprintf_s(localFilePath, MAX_PATH_LEN, MAX_PATH_LEN - 1, "%s/%s", t_thrd.proc_cxt.DataDir, dest); securec_check_ss(rc, "\0", "\0"); ereport(LOG, ((errmsg("There local file path is %s.", localFilePath)))); rc = snprintf_s(netBackupPath, MAX_PATH_LEN, MAX_PATH_LEN - 1, "%s/%s", - archive_conf->archive_obs.obs_prefix, src); + archive_conf->archive_config.archive_prefix, src); securec_check_ss(rc, "\0", "\0"); ereport(LOG, ((errmsg("[gs_download_obs_file]There netbackup file is %s.", netBackupPath)))); @@ -1744,9 +1756,9 @@ Datum gs_get_obs_file_context(PG_FUNCTION_ARGS) ArchiveSlotConfig *archive_conf = NULL; if (IS_CNDISASTER_RECOVER_MODE) { - archive_conf = getObsRecoverySlot(); + archive_conf = GetArchiveRecoverySlot(); } else { - archive_conf = getObsReplicationSlotWithName(slotName); + archive_conf = getArchiveReplicationSlotWithName(slotName); } if (archive_conf == NULL) { ereport(WARNING, (errcode(ERRCODE_NO_DATA_FOUND), @@ -1754,12 +1766,19 @@ Datum gs_get_obs_file_context(PG_FUNCTION_ARGS) PG_RETURN_NULL(); } - if (checkOBSFileExist(setFileName, &archive_conf->archive_obs) == false) { + /* hadr only support OBS */ + if (archive_conf->archive_config.media_type != ARCHIVE_OBS) { + ereport(WARNING, (errcode(ERRCODE_NO_DATA_FOUND), + (errmsg("The slot %s is not obs slot.", slotName)))); + PG_RETURN_NULL(); + } + + if (checkOBSFileExist(setFileName, &archive_conf->archive_config) == false) { ereport(WARNING, (errcode(ERRCODE_NO_DATA_FOUND), (errmsg("The file named %s cannot be found.", setFileName)))); PG_RETURN_NULL(); } - readLen = obsRead(setFileName, 0, fileContext, MAXPGPATH, &archive_conf->archive_obs); + readLen = obsRead(setFileName, 0, fileContext, MAXPGPATH, &archive_conf->archive_config); if (readLen == 0) { ereport(ERROR, (errcode(ERRCODE_NO_DATA_FOUND), (errmsg("Cannot read any context in %s file!", setFileName)))); @@ -1781,9 +1800,9 @@ Datum gs_set_obs_file_context(PG_FUNCTION_ARGS) ArchiveSlotConfig *archive_conf = NULL; if (IS_CNDISASTER_RECOVER_MODE) { - archive_conf = getObsRecoverySlot(); + archive_conf = GetArchiveRecoverySlot(); } else { - archive_conf = getObsReplicationSlotWithName(slotName); + archive_conf = getArchiveReplicationSlotWithName(slotName); } if (archive_conf == NULL) { ereport(WARNING, (errcode(ERRCODE_NO_DATA_FOUND), @@ -1791,7 +1810,14 @@ Datum gs_set_obs_file_context(PG_FUNCTION_ARGS) PG_RETURN_NULL(); } - ret = obsWrite(setFileName, setFileContext, strlen(setFileContext), &archive_conf->archive_obs); + /* hadr only support OBS */ + if (archive_conf->archive_config.media_type != ARCHIVE_OBS) { + ereport(WARNING, (errcode(ERRCODE_NO_DATA_FOUND), + (errmsg("The slot %s is not obs slot.", slotName)))); + PG_RETURN_NULL(); + } + + ret = obsWrite(setFileName, setFileContext, strlen(setFileContext), &archive_conf->archive_config); PG_RETURN_TEXT_P(cstring_to_text(setFileContext)); } @@ -1844,13 +1870,13 @@ Datum gs_get_hadr_key_cn(PG_FUNCTION_ARGS) List *all_slots = NIL; if (IS_CNDISASTER_RECOVER_MODE) { - all_slots = get_all_recovery_obs_slots_name(); + all_slots = GetAllRecoverySlotsName(); needLocalKeyCn = true; int rc = 0; rc = snprintf_s(localKeyCn, MAXFNAMELEN, MAXFNAMELEN - 1, "%s", get_local_key_cn()); securec_check_ss(rc, "\0", "\0"); } else { - all_slots = get_all_archive_obs_slots_name(); + all_slots = GetAllArchiveSlotsName(); } if (all_slots == NIL || all_slots->length == 0) { tuplestore_donestoring(tupstore); @@ -1863,12 +1889,16 @@ Datum gs_get_hadr_key_cn(PG_FUNCTION_ARGS) bool isExitDelete = true; ArchiveSlotConfig *archive_conf = NULL; if (IS_CNDISASTER_RECOVER_MODE) { - archive_conf = getObsRecoverySlot(); + archive_conf = GetArchiveRecoverySlot(); } else { - archive_conf = getObsReplicationSlotWithName(slotname); + archive_conf = getArchiveReplicationSlotWithName(slotname); } if (archive_conf != NULL) { - get_hadr_cn_info((char *)hadrKeyCn, &isExitKey, (char *)hadrDeleteCn, &isExitDelete, archive_conf); + if (archive_conf->archive_config.media_type == ARCHIVE_OBS) { + get_hadr_cn_info((char *)hadrKeyCn, &isExitKey, (char *)hadrDeleteCn, &isExitDelete, archive_conf); + } else { + continue; + } } else { tuplestore_donestoring(tupstore); PG_RETURN_NULL(); @@ -1891,3 +1921,89 @@ Datum gs_get_hadr_key_cn(PG_FUNCTION_ARGS) tuplestore_donestoring(tupstore); PG_RETURN_DATUM(0); } + +Datum gs_streaming_dr_in_switchover(PG_FUNCTION_ARGS) +{ + if (!superuser() && !(isOperatoradmin(GetUserId()) && u_sess->attr.attr_security.operation_mode)) + ereport(ERROR, (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), + (errmsg("Must be system admin or operator admin in operation mode to gs_streaming_dr_switchover.")))); + + if (!g_instance.streaming_dr_cxt.isInStreaming_dr) { + ereport(LOG, (errmsg("Streaming disaster recovery is not started."))); + PG_RETURN_BOOL(false); + } + +#ifndef ENABLE_MULTIPLE_NODES + CreateHadrSwitchoverBarrier(); +#endif + PG_RETURN_BOOL(true); +} + +Datum gs_streaming_dr_service_truncation_check(PG_FUNCTION_ARGS) +{ + XLogRecPtr switchoverLsn = g_instance.streaming_dr_cxt.switchoverBarrierLsn; + XLogRecPtr flushLsn = InvalidXLogRecPtr; + + for (int i = 0; i < g_instance.attr.attr_storage.max_wal_senders; i++) { + /* use volatile pointer to prevent code rearrangement */ + volatile WalSnd *walsnd = &t_thrd.walsender_cxt.WalSndCtl->walsnds[i]; + if (walsnd->pid == 0) { + continue; + } + + if (walsnd->is_cross_cluster) { + SpinLockAcquire(&walsnd->mutex); + flushLsn = walsnd->flush; + SpinLockRelease(&walsnd->mutex); + if (g_instance.streaming_dr_cxt.isInteractionCompleted && + XLByteEQ(switchoverLsn, flushLsn)) { + PG_RETURN_BOOL(true); + } else { + ereport(LOG, + (errmsg("the switchover Lsn is %X/%X, the hadr receiver flush Lsn is %X/%X", + (uint32)(switchoverLsn >> 32), (uint32)switchoverLsn, + (uint32)(flushLsn >> 32), (uint32)flushLsn))); + PG_RETURN_BOOL(false); + } + } + } + + PG_RETURN_BOOL(false); +} + +Datum gs_streaming_dr_get_switchover_barrier(PG_FUNCTION_ARGS) +{ + if (!superuser() && !(isOperatoradmin(GetUserId()) && u_sess->attr.attr_security.operation_mode)) + ereport(ERROR, (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), + (errmsg("Must be system admin or operator admin in operation mode to gs_streaming_dr_get_switchover_barrier.")))); + + volatile WalRcvData *walrcv = t_thrd.walreceiverfuncs_cxt.WalRcv; + XLogRecPtr last_replay_location = GetXLogReplayRecPtr(NULL); + load_server_mode(); + + ereport(LOG, + (errmsg("is_hadr_main_standby: %d, last switchover Lsn is %X/%X, " + "target switchover Lsn is %X/%X, last_replay_location %X/%X", + t_thrd.xlog_cxt.is_hadr_main_standby, + (uint32)(walrcv->lastSwitchoverBarrierLSN >> 32), + (uint32)(walrcv->lastSwitchoverBarrierLSN), + (uint32)(walrcv->targetSwitchoverBarrierLSN >> 32), + (uint32)(walrcv->targetSwitchoverBarrierLSN), + (uint32)(last_replay_location >> 32), + (uint32)(last_replay_location)))); + + if (t_thrd.xlog_cxt.is_hadr_main_standby) { + g_instance.streaming_dr_cxt.isInSwitchover = true; + if (g_instance.streaming_dr_cxt.isInteractionCompleted && + XLByteEQ(walrcv->targetSwitchoverBarrierLSN, last_replay_location)) { + PG_RETURN_BOOL(true); + } + } + else { + if (XLByteEQ(walrcv->lastSwitchoverBarrierLSN, last_replay_location)) { + PG_RETURN_BOOL(true); + } + } + + PG_RETURN_BOOL(false); +} diff --git a/src/gausskernel/storage/access/transam/xloginsert.cpp b/src/gausskernel/storage/access/transam/xloginsert.cpp index 01dd7234c..0c8b1190e 100755 --- a/src/gausskernel/storage/access/transam/xloginsert.cpp +++ b/src/gausskernel/storage/access/transam/xloginsert.cpp @@ -474,7 +474,8 @@ XLogRecPtr XLogInsert(RmgrId rmid, uint8 info, bool isupgrade, int bucket_id, bo { XLogRecPtr EndPos; - if (g_instance.archive_obs_cxt.in_switchover == true) { + if (g_instance.archive_obs_cxt.in_switchover == true || + g_instance.streaming_dr_cxt.isInSwitchover == true) { LWLockAcquire(HadrSwitchoverLock, LW_EXCLUSIVE); } @@ -534,7 +535,9 @@ XLogRecPtr XLogInsert(RmgrId rmid, uint8 info, bool isupgrade, int bucket_id, bo XLogResetInsertion(); /* Switchover Barrier log will not release the lock */ - if (g_instance.archive_obs_cxt.in_switchover == true && !isSwitchoverBarrier) { + if ((g_instance.archive_obs_cxt.in_switchover == true || + g_instance.streaming_dr_cxt.isInSwitchover == true) + && !isSwitchoverBarrier) { LWLockRelease(HadrSwitchoverLock); } diff --git a/src/gausskernel/storage/access/transam/xlogreader.cpp b/src/gausskernel/storage/access/transam/xlogreader.cpp index bcab3242e..c8a83e662 100644 --- a/src/gausskernel/storage/access/transam/xlogreader.cpp +++ b/src/gausskernel/storage/access/transam/xlogreader.cpp @@ -91,7 +91,7 @@ void report_invalid_record(XLogReaderState *state, const char *fmt, ...) * * Returns NULL if the xlogreader couldn't be allocated. */ -XLogReaderState *XLogReaderAllocate(XLogPageReadCB pagereadfunc, void *private_data) +XLogReaderState *XLogReaderAllocate(XLogPageReadCB pagereadfunc, void *private_data, Size alignedSize) { XLogReaderState *state = NULL; errno_t errorno = EOK; @@ -112,12 +112,17 @@ XLogReaderState *XLogReaderAllocate(XLogPageReadCB pagereadfunc, void *private_d * isn't guaranteed to have any particular alignment, whereas malloc() * will provide MAXALIGN'd storage. */ - state->readBuf = (char *)palloc_extended(XLOG_BLCKSZ, MCXT_ALLOC_NO_OOM); - if (state->readBuf == NULL) { + state->readBufOrigin = (char *)palloc_extended(XLOG_BLCKSZ + alignedSize, MCXT_ALLOC_NO_OOM); + if (state->readBufOrigin == NULL) { pfree(state); state = NULL; return NULL; } + if (alignedSize == 0) { + state->readBuf = state->readBufOrigin; + } else { + state->readBuf = (char *)TYPEALIGN(alignedSize, state->readBufOrigin); + } state->read_page = pagereadfunc; /* system_identifier initialized to zeroes above */ @@ -126,7 +131,8 @@ XLogReaderState *XLogReaderAllocate(XLogPageReadCB pagereadfunc, void *private_d /* readSegNo, readOff, readLen, readPageTLI initialized to zeroes above */ state->errormsg_buf = (char *)palloc_extended(MAX_ERRORMSG_LEN + 1, MCXT_ALLOC_NO_OOM); if (state->errormsg_buf == NULL) { - pfree(state->readBuf); + pfree(state->readBufOrigin); + state->readBufOrigin = NULL; state->readBuf = NULL; pfree(state); state = NULL; @@ -141,7 +147,8 @@ XLogReaderState *XLogReaderAllocate(XLogPageReadCB pagereadfunc, void *private_d if (!allocate_recordbuf(state, 0)) { pfree(state->errormsg_buf); state->errormsg_buf = NULL; - pfree(state->readBuf); + pfree(state->readBufOrigin); + state->readBufOrigin = NULL; state->readBuf = NULL; pfree(state); state = NULL; @@ -162,7 +169,8 @@ void XLogReaderFree(XLogReaderState *state) pfree(state->readRecordBuf); state->readRecordBuf = NULL; } - pfree(state->readBuf); + pfree(state->readBufOrigin); + state->readBufOrigin = NULL; state->readBuf = NULL; /* state need to be reset NULL by caller */ @@ -387,7 +395,6 @@ XLogRecord *XLogReadRecord(XLogReaderState *state, XLogRecPtr RecPtr, char **err /* Wait for the next page to become available */ readOff = ReadPageInternal(state, targetPagePtr, Min(total_len - gotlen + SizeOfXLogShortPHD, XLOG_BLCKSZ), readoldversion); - if (readOff < 0) goto err; @@ -507,7 +514,6 @@ err: if (state->errormsg_buf[0] != '\0') *errormsg = state->errormsg_buf; - return NULL; } @@ -1068,7 +1074,7 @@ bool ValidXLogPageHeader(XLogReaderState *state, XLogRecPtr recptr, XLogPageHead * find the first valid address after some address when dumping records for * debugging purposes. */ -XLogRecPtr XLogFindNextRecord(XLogReaderState *state, XLogRecPtr RecPtr) +XLogRecPtr XLogFindNextRecord(XLogReaderState *state, XLogRecPtr RecPtr, XLogRecPtr *endPtr) { XLogReaderState saved_state = *state; XLogRecPtr tmpRecPtr; @@ -1104,7 +1110,7 @@ XLogRecPtr XLogFindNextRecord(XLogReaderState *state, XLogRecPtr RecPtr) targetPagePtr = tmpRecPtr - targetRecOff; /* Read the page containing the record */ - readLen = ReadPageInternal(state, targetPagePtr, targetRecOff, true); + readLen = ReadPageInternal(state, targetPagePtr, Max(targetRecOff, (int)SizeOfXLogLongPHD), true); if (readLen < 0) { goto out; } @@ -1160,6 +1166,9 @@ XLogRecPtr XLogFindNextRecord(XLogReaderState *state, XLogRecPtr RecPtr) /* past the record we've found, break out */ if (XLByteLE(RecPtr, state->ReadRecPtr)) { found = state->ReadRecPtr; + if (endPtr != NULL) { + *endPtr = state->EndRecPtr; + } goto out; } } @@ -1355,6 +1364,10 @@ bool DecodeXLogRecord(XLogReaderState *state, XLogRecord *record, char **errorms if (state->isTde) { blk->tdeinfo = (TdeInfo*)palloc_extended(sizeof(TdeInfo), MCXT_ALLOC_NO_OOM); + if (blk->tdeinfo == NULL) { + report_invalid_record(state, "Failed to allocate memory for blk->tdeinfo"); + goto err; + } DECODE_XLOG_ONE_ITEM(*(blk->tdeinfo), TdeInfo); } @@ -1610,7 +1623,8 @@ tryAgain: return XLOG_BLCKSZ; } -XLogRecPtr FindMaxLSN(char *workingPath, char *returnMsg, int msgLen, pg_crc32 *maxLsnCrc) +XLogRecPtr FindMaxLSN(char *workingPath, char *returnMsg, int msgLen, pg_crc32 *maxLsnCrc, uint32 *maxLsnLen, + TimeLineID *returnTli) { DIR *xlogDir = NULL; struct dirent *dirEnt = NULL; @@ -1683,6 +1697,9 @@ XLogRecPtr FindMaxLSN(char *workingPath, char *returnMsg, int msgLen, pg_crc32 * return InvalidXLogRecPtr; } + if (returnTli != NULL) { + *returnTli = tli; + } /* Initializing the ReaderState */ rc = memset_s(&readPrivate, sizeof(XLogPageReadPrivate), 0, sizeof(XLogPageReadPrivate)); securec_check_c(rc, "\0", "\0"); @@ -1745,6 +1762,9 @@ XLogRecPtr FindMaxLSN(char *workingPath, char *returnMsg, int msgLen, pg_crc32 * } curLsn = InvalidXLogRecPtr; *maxLsnCrc = record->xl_crc; + if (maxLsnLen != NULL) { + *maxLsnLen = record->xl_tot_len; + } } while (true); maxLsn = xlogReader->ReadRecPtr; @@ -1777,6 +1797,161 @@ XLogRecPtr FindMaxLSN(char *workingPath, char *returnMsg, int msgLen, pg_crc32 * return maxLsn; } +XLogRecPtr FindMinLSN(char *workingPath, char *returnMsg, int msgLen, pg_crc32 *minLsnCrc) +{ + DIR *xlogDir = NULL; + struct dirent *dirEnt = NULL; + XLogReaderState *xlogReader = NULL; + XLogPageReadPrivate readPrivate = { + .datadir = NULL, + .tli = 0 + }; + XLogRecord *record = NULL; + TimeLineID tli = 0; + XLogRecPtr minLsn = InvalidXLogRecPtr; + XLogRecPtr startLsn = InvalidXLogRecPtr; + XLogRecPtr curLsn = InvalidXLogRecPtr; + char xlogDirStr[MAXPGPATH]; + char minXLogFileName[MAXPGPATH] = {0}; + char *errorMsg = NULL; + bool findValidXLogFile = false; + uint32 xlogReadLogid = -1; + uint32 xlogReadLogSeg = -1; + errno_t rc = EOK; + + rc = snprintf_s(xlogDirStr, MAXPGPATH, MAXPGPATH - 1, "%s/%s", workingPath, XLOGDIR); +#ifndef FRONTEND + securec_check_ss(rc, "", ""); +#else + securec_check_ss_c(rc, "", ""); +#endif + + xlogDir = opendir(xlogDirStr); + if (!xlogDir) { + rc = snprintf_s(returnMsg, msgLen, msgLen - 1, + "open xlog dir %s failed when find min lsn \n", xlogDirStr); +#ifndef FRONTEND + securec_check_ss(rc, "", ""); +#else + securec_check_ss_c(rc, "", ""); +#endif + return InvalidXLogRecPtr; + } + + /* Find smallest xlog file */ + while ((dirEnt = readdir(xlogDir)) != NULL) { + if (strlen(dirEnt->d_name) == 24 && strspn(dirEnt->d_name, "0123456789ABCDEF") == 24) { + if (strlen(minXLogFileName) == 0 || strcmp(minXLogFileName, dirEnt->d_name) > 0) { + rc = strncpy_s(minXLogFileName, MAXPGPATH, dirEnt->d_name, strlen(dirEnt->d_name) + 1); +#ifndef FRONTEND + securec_check(rc, "", ""); +#else + securec_check_c(rc, "", ""); +#endif + minXLogFileName[strlen(dirEnt->d_name)] = '\0'; + } + } + } + + (void)closedir(xlogDir); + + if (sscanf_s(minXLogFileName, "%08X%08X%08X", &tli, &xlogReadLogid, &xlogReadLogSeg) != 3) { + rc = snprintf_s(returnMsg, msgLen, msgLen - 1, + "failed to translate name to xlog: %s\n", minXLogFileName); +#ifndef FRONTEND + securec_check_ss(rc, "", ""); +#else + securec_check_ss_c(rc, "", ""); +#endif + return InvalidXLogRecPtr; + } + + /* Initializing the ReaderState */ + rc = memset_s(&readPrivate, sizeof(XLogPageReadPrivate), 0, sizeof(XLogPageReadPrivate)); + securec_check_c(rc, "\0", "\0"); + readPrivate.tli = tli; + readPrivate.datadir = workingPath; + xlogReader = XLogReaderAllocate(&SimpleXLogPageRead, &readPrivate); + if (xlogReader == NULL) { + rc = snprintf_s(returnMsg, msgLen, msgLen - 1, "reader allocate failed.\n"); +#ifndef FRONTEND + securec_check_ss(rc, "", ""); +#else + securec_check_ss_c(rc, "", ""); +#endif + return InvalidXLogRecPtr; + } + + /* Start to find the min lsn from a valid xlogfile */ + startLsn = (xlogReadLogSeg * XLOG_SEG_SIZE) + ((XLogRecPtr)xlogReadLogid * XLogSegmentsPerXLogId * XLogSegSize); + while (!XLogRecPtrIsInvalid(startLsn)) { + curLsn = XLogFindNextRecord(xlogReader, startLsn); + if (XLogRecPtrIsInvalid(curLsn)) { + if (xlogreadfd > 0) { + close(xlogreadfd); + xlogreadfd = -1; + } + startLsn = startLsn + XLOG_SEG_SIZE; + continue; + } else { + findValidXLogFile = true; + break; + } + } + if (findValidXLogFile == false) { + rc = snprintf_s(returnMsg, msgLen, msgLen - 1, + "no valid record in pg_xlog.\n"); +#ifndef FRONTEND + securec_check_ss(rc, "", ""); +#else + securec_check_ss_c(rc, "", ""); +#endif + /* Free all opened resources */ + if (xlogReader != NULL) { + XLogReaderFree(xlogReader); + xlogReader = NULL; + } + if (xlogreadfd > 0) { + close(xlogreadfd); + xlogreadfd = -1; + } + return InvalidXLogRecPtr; + } + + minLsn = curLsn; + if (XLogRecPtrIsInvalid(minLsn)) { + rc = snprintf_s(returnMsg, msgLen, msgLen - 1, "%s", errorMsg); +#ifndef FRONTEND + securec_check_ss(rc, "", ""); +#else + securec_check_ss_c(rc, "", ""); +#endif + } else { + rc = snprintf_s(returnMsg, msgLen, msgLen - 1, + "find min lsn rec (%X/%X) success.\n", (uint32)(minLsn >> 32), (uint32)minLsn); +#ifndef FRONTEND + securec_check_ss(rc, "", ""); +#else + securec_check_ss_c(rc, "", ""); +#endif + } + record = XLogReadRecord(xlogReader, curLsn, &errorMsg); + *minLsnCrc = record->xl_crc; + + /* Free all opened resources */ + if (xlogReader != NULL) { + XLogReaderFree(xlogReader); + xlogReader = NULL; + } + if (xlogreadfd > 0) { + close(xlogreadfd); + xlogreadfd = -1; + } + + return minLsn; +} + + /* Judging the file of input lsn is existed. */ bool XlogFileIsExisted(const char *workingPath, XLogRecPtr inputLsn, TimeLineID timeLine) { diff --git a/src/gausskernel/storage/access/transam/xlogutils.cpp b/src/gausskernel/storage/access/transam/xlogutils.cpp index b3b4307c0..28cba03ec 100644 --- a/src/gausskernel/storage/access/transam/xlogutils.cpp +++ b/src/gausskernel/storage/access/transam/xlogutils.cpp @@ -576,6 +576,7 @@ XLogRedoAction XLogReadBufferForRedoBlockExtend(RedoBufferTag *redoblock, ReadBu /* If lsn check fails, return invalidate buffer */ if (!DoLsnCheck(redobufferinfo, willinit, last_lsn, pblk)) { redobufferinfo->buf = InvalidBuffer; + redobufferinfo->pageinfo = {0}; UnlockReleaseBuffer(buf); return BLK_NOTFOUND; } @@ -624,7 +625,7 @@ XLogRedoAction XLogReadBufferForRedoExtended(XLogReaderState *record, uint8 bloc } if (record->isTde) { - tde = StandbyTdeTableEncryptionInsert(record->blocks[block_id].tdeinfo, blockinfo.rnode); + tde = InsertTdeInfoToCache(blockinfo.rnode, record->blocks[block_id].tdeinfo); pfree_ext(record->blocks[block_id].tdeinfo); } @@ -817,7 +818,7 @@ static Buffer XLogReadBufferExceedFileRange(const RelFileNode &rnode, ForkNumber return InvalidBuffer; if (IsSegmentFileNode(rnode)) { - SegSpace *spc = spc_open(rnode.spcNode, rnode.dbNode, true); + SegSpace *spc = spc_open(rnode.spcNode, rnode.dbNode, true, true); /* 1. ensure the data file created */ spc_datafile_create(spc, pblk->relNode, forknum); /* 2. extend to the aimed size */ @@ -966,7 +967,7 @@ Buffer XLogReadBufferExtendedForSegpage(const RelFileNode &rnode, ForkNumber for Buffer buffer; BlockNumber spc_nblocks = 0; - SegSpace *spc = spc_open(rnode.spcNode, rnode.dbNode, true); + SegSpace *spc = spc_open(rnode.spcNode, rnode.dbNode, true, true); spc_datafile_create(spc, rnode.relNode, forknum); spc_nblocks = spc_size(spc, rnode.relNode, forknum); diff --git a/src/gausskernel/storage/access/ubtree/ubtinsert.cpp b/src/gausskernel/storage/access/ubtree/ubtinsert.cpp index 018d68ced..e7f5394ae 100644 --- a/src/gausskernel/storage/access/ubtree/ubtinsert.cpp +++ b/src/gausskernel/storage/access/ubtree/ubtinsert.cpp @@ -224,7 +224,6 @@ bool UBTreePagePrune(Relation rel, Buffer buf, TransactionId oldestXmin, IndexBu UBTreePagePruneExecute(page, prstate.previousdead, npreviousDead, &prstate); UBTreePagePruneExecute(page, prstate.nowdead, prstate.ndead, &prstate); - UBTreePageRepairFragmentation(page); has_pruned = true; @@ -233,7 +232,6 @@ bool UBTreePagePrune(Relation rel, Buffer buf, TransactionId oldestXmin, IndexBu * Update the page's pd_prune_xid field to either zero, or the lowest * XID of any soon-prunable tuple. */ - PageSetPruneXid(page, prstate.new_prune_xid); opaque->activeTupleCount = activeTupleCount; @@ -268,8 +266,7 @@ bool UBTreePagePrune(Relation rel, Buffer buf, TransactionId oldestXmin, IndexBu * point in repeating the prune/defrag process until something else * happens to the page. */ - if (PageGetPruneXid(page) != prstate.new_prune_xid || - opaque->activeTupleCount != activeTupleCount) { + if (PageGetPruneXid(page) != prstate.new_prune_xid || opaque->activeTupleCount != activeTupleCount) { PageSetPruneXid(page, prstate.new_prune_xid); opaque->activeTupleCount = activeTupleCount; MarkBufferDirtyHint(buf, true); @@ -293,7 +290,8 @@ bool UBTreePruneItem(Page page, OffsetNumber offnum, TransactionId oldestXmin, I bool xminCommitted = false; bool xmaxCommitted = false; - isDead = UBTreeItupGetXminXmax(page, offnum, oldestXmin, &xmin, &xmax, &xminCommitted, &xmaxCommitted); + isDead = UBTreeItupGetXminXmax(page, offnum, oldestXmin, &xmin, &xmax, + &xminCommitted, &xmaxCommitted); /* * INDEXTUPLE_DEAD: xmin invalid || xmax frozen * INDEXTUPLE_DELETED: xmax valid && xmax committed @@ -1316,6 +1314,11 @@ static Buffer UBTreeSplit(Relation rel, Buffer buf, Buffer cbuf, OffsetNumber fi /* Since we already have write-lock on both pages, ok to read cycleid */ lopaque->btpo_cycleid = _bt_vacuum_cycleid(rel); ropaque->btpo_cycleid = lopaque->btpo_cycleid; + /* copy other fields */ + lopaque->last_delete_xid = oopaque->last_delete_xid; + ropaque->last_delete_xid = oopaque->last_delete_xid; + lopaque->xid_base = oopaque->xid_base; + ropaque->xid_base = oopaque->xid_base; /* reset the active hint, update later */ lopaque->activeTupleCount = 0; ropaque->activeTupleCount = 0; @@ -1661,16 +1664,19 @@ static Buffer UBTreeSplit(Relation rel, Buffer buf, Buffer cbuf, OffsetNumber fi /* XLOG stuff */ if (RelationNeedsWAL(rel)) { - xl_btree_split xlrec; + xl_ubtree_split xlrec; uint8 xlinfo; XLogRecPtr recptr; xlrec.level = ropaque->btpo.level; xlrec.firstright = firstrightoff; xlrec.newitemoff = newitemoff; + xlrec.opaqueVersion = UBTREE_OPAQUE_VERSION_RCR; + xlrec.lopaque = *(UBTPageOpaqueInternal)PageGetSpecialPointer(origpage); + xlrec.ropaque = *ropaque; XLogBeginInsert(); - XLogRegisterData((char *)&xlrec, SizeOfBtreeSplit); + XLogRegisterData((char *)&xlrec, SizeOfUBtreeSplit); XLogRegisterBuffer(0, buf, REGBUF_STANDARD); XLogRegisterBuffer(1, rbuf, REGBUF_WILL_INIT); /* Log the right sibling, because we've changed its' prev-pointer. */ @@ -1723,7 +1729,7 @@ static Buffer UBTreeSplit(Relation rel, Buffer buf, Buffer cbuf, OffsetNumber fi } else { xlinfo = newitemonleft ? XLOG_UBTREE_SPLIT_L : XLOG_UBTREE_SPLIT_R; } - recptr = XLogInsert(RM_UBTREE_ID, xlinfo); + recptr = XLogInsert(RM_UBTREE_ID, xlinfo | BTREE_SPLIT_OPAQUE_FLAG); PageSetLSN(origpage, recptr); PageSetLSN(rightpage, recptr); diff --git a/src/gausskernel/storage/access/ubtree/ubtree.cpp b/src/gausskernel/storage/access/ubtree/ubtree.cpp index 0e7124bb5..afa00b042 100644 --- a/src/gausskernel/storage/access/ubtree/ubtree.cpp +++ b/src/gausskernel/storage/access/ubtree/ubtree.cpp @@ -1045,26 +1045,24 @@ restart: } } - if (P_ISLEAF(opaque) && !P_RIGHTMOST(opaque)) { - /* - * vacuum logic for multi-version index. we use UBTreePagePruneOpt() instead - * of original vacuum. - * - * Note: we don't prune or delete right most page here. Since the logic - * is complicated, and there is not much benefit. - */ - Assert(P_ISLEAF(opaque)); - + /* + * vacuum logic for multi-version index. We use UBTreePagePruneOpt() instead + * of original vacuum. + * + * Note: we only prune leaf pages and never delete right most page. + */ + if (P_ISLEAF(opaque)) { /* acquire the write lock for clean up */ LockBuffer(buf, BUFFER_LOCK_UNLOCK); LockBuffer(buf, BUFFER_LOCK_EXCLUSIVE); - if (UBTreePagePruneOpt(rel, buf, false)) { - if (PageGetMaxOffsetNumber(page) == 1) { - /* already empty (only HIKEY left), ok to delete */ - /* Note: this is not right most page */ - deleteNow = true; - } + bool ignore; + /* prune and freeze this index page */ + FreezeSingleIndexPage(rel, buf, &ignore); + + if (!P_RIGHTMOST(opaque) && PageGetMaxOffsetNumber(page) == 1) { + /* already empty (only HIKEY left), ok to delete */ + deleteNow = true; } } @@ -1129,6 +1127,7 @@ Datum ubtmerge(PG_FUNCTION_ARGS) IndexScanDesc srcIdxRelScan = NULL; BTOrderedIndexListElement *ele = NULL; TupleDesc tupdes = RelationGetDescr(dstIdxRel); + int keysz = IndexRelationGetNumberOfKeyAttributes(dstIdxRel); BTScanInsert itupKey = UBTreeMakeScanKey(dstIdxRel, NULL); BTWriteState wstate; BTPageState *state = NULL; @@ -1150,7 +1149,7 @@ Datum ubtmerge(PG_FUNCTION_ARGS) offsetItup = (BlockNumber)lfirst_int(cell2); loadItup = UBTreeGetIndexTuple(srcIdxRelScan, dir, offsetItup); - orderedTupleList = insert_ordered_index(orderedTupleList, tupdes, itupKey->scankeys, itupKey->keysz, + orderedTupleList = insert_ordered_index(orderedTupleList, tupdes, itupKey->scankeys, keysz, loadItup, offsetItup, srcIdxRelScan); } @@ -1193,7 +1192,7 @@ Datum ubtmerge(PG_FUNCTION_ARGS) // load next index tuple loadItup = UBTreeGetIndexTuple(srcIdxRelScan, dir, offsetItup); // insert load index tuple into orderedTupleList - orderedTupleList = insert_ordered_index(orderedTupleList, tupdes, itupKey->scankeys, itupKey->keysz, + orderedTupleList = insert_ordered_index(orderedTupleList, tupdes, itupKey->scankeys, keysz, loadItup, offsetItup, srcIdxRelScan); } }; @@ -1279,7 +1278,7 @@ static bool IndexPageXidMinMax(Page page, ShortTransactionId* min, ShortTransact UstoreIndexXid uxid; itemid = PageGetItemId(page, offnum); - if (!ItemIdIsNormal(itemid) && !IndexItemIdIsFrozen(itemid)) { + if (!ItemIdHasStorage(itemid)) { continue; } @@ -1332,13 +1331,16 @@ static void IndexPageShiftBase(Page page, int64 delta, bool needWal, Buffer buf) /* Do the update. No ereport(ERROR) until changes are logged */ START_CRIT_SECTION(); + /* reset pd_prune_xid for prune hint */ + ((PageHeader)page)->pd_prune_xid = InvalidTransactionId; + for (offnum = P_FIRSTDATAKEY(opaque); offnum <= maxoff; offnum = OffsetNumberNext(offnum)) { ItemId itemid; IndexTuple itup; UstoreIndexXid uxid; itemid = PageGetItemId(page, offnum); - if (!ItemIdIsNormal(itemid) && !IndexItemIdIsFrozen(itemid)) { + if (!ItemIdHasStorage(itemid)) { continue; } @@ -1386,12 +1388,11 @@ static void IndexPageShiftBase(Page page, int64 delta, bool needWal, Buffer buf) WHITEBOX_TEST_STUB("IndexPageShiftBase-end", WhiteboxDefaultErrorEmit); } -static void FreezeSingleIndexPage(Relation rel, Buffer buf, bool *hasPruned) +void FreezeSingleIndexPage(Relation rel, Buffer buf, bool *hasPruned) { int nfrozen = 0; OffsetNumber nowfrozen[MaxIndexTuplesPerPage]; TransactionId oldestXmin = u_sess->utils_cxt.RecentGlobalDataXmin; - TransactionId latestRemovedXid = InvalidTransactionId; WHITEBOX_TEST_STUB("FreezeSingleIndexPage", WhiteboxDefaultErrorEmit); @@ -1405,7 +1406,7 @@ static void FreezeSingleIndexPage(Relation rel, Buffer buf, bool *hasPruned) for (OffsetNumber offnum = P_FIRSTDATAKEY(opaque); offnum <= maxoff; offnum = OffsetNumberNext(offnum)) { ItemId itemid = PageGetItemId(page, offnum); - if (!ItemIdIsNormal(itemid) && !IndexItemIdIsFrozen(itemid)) { + if (!ItemIdHasStorage(itemid)) { continue; } @@ -1422,7 +1423,6 @@ static void FreezeSingleIndexPage(Relation rel, Buffer buf, bool *hasPruned) } uxid->xmin = FrozenTransactionId; nowfrozen[nfrozen++] = offnum; - latestRemovedXid = Max(latestRemovedXid, xmin); } } /* check xmax */ @@ -1434,34 +1434,29 @@ static void FreezeSingleIndexPage(Relation rel, Buffer buf, bool *hasPruned) (errcode(ERRCODE_DATA_CORRUPTED), errmsg_internal("cannot freeze commited xmax %lu", xmax))); } uxid->xmax = InvalidTransactionId; - latestRemovedXid = Max(latestRemovedXid, xmax); } } } - if (nfrozen > 0) { - START_CRIT_SECTION(); + START_CRIT_SECTION(); - MarkBufferDirty(buf); - /* Write WAL record if needed */ - if (RelationNeedsWAL(rel)) { - xl_ubtree2_freeze xlrec; - xlrec.latestRemovedXid = latestRemovedXid; - xlrec.blkno = BufferGetBlockNumber(buf); - xlrec.nfrozen = nfrozen; + MarkBufferDirty(buf); + /* Write WAL record if needed */ + if (RelationNeedsWAL(rel)) { + xl_ubtree2_freeze xlrec; + xlrec.oldestXmin = oldestXmin; + xlrec.blkno = BufferGetBlockNumber(buf); + xlrec.nfrozen = nfrozen; - XLogBeginInsert(); - XLogRegisterData((char*)&xlrec, SizeOfUBTree2Freeze); - XLogRegisterData((char*)&nowfrozen, nfrozen * sizeof(OffsetNumber)); + XLogBeginInsert(); + XLogRegisterData((char*)&xlrec, SizeOfUBTree2Freeze); + XLogRegisterData((char*)&nowfrozen, nfrozen * sizeof(OffsetNumber)); - XLogRegisterBuffer(0, buf, REGBUF_STANDARD); + XLogRegisterBuffer(0, buf, REGBUF_STANDARD); - XLogRecPtr recptr = XLogInsert(RM_UBTREE2_ID, XLOG_UBTREE2_FREEZE); + XLogRecPtr recptr = XLogInsert(RM_UBTREE2_ID, XLOG_UBTREE2_FREEZE); - PageSetLSN(page, recptr); - } - - END_CRIT_SECTION(); + PageSetLSN(page, recptr); } END_CRIT_SECTION(); @@ -1479,7 +1474,6 @@ static void FreezeSingleIndexPage(Relation rel, Buffer buf, bool *hasPruned) */ bool IndexPagePrepareForXid(Relation rel, Page page, TransactionId xid, bool needWal, Buffer buf) { - TransactionId base = InvalidTransactionId; ShortTransactionId min = InvalidTransactionId; ShortTransactionId max = InvalidTransactionId; bool found = false; @@ -1492,69 +1486,46 @@ bool IndexPagePrepareForXid(Relation rel, Page page, TransactionId xid, bool nee if (!P_ISLEAF(opaque)) { return false; } - /* - * if the first change to pd_xid_base or pd_multi_base fails , - * will attempt to freeze this page. - */ - const int tryTimes = 2; - for (int i = 0; i < tryTimes; i++) { - base = opaque->xid_base; - /* Can we already store this xid? */ - if (xid >= base + FirstNormalTransactionId && xid <= base + MaxShortTransactionId) { - return hasPruned; - } - - /* Find minimum and maximum xids in the page */ - found = IndexPageXidMinMax(page, &min, &max); - /* No items on the page? */ - if (!found) { - int64 delta; - - delta = (xid - FirstNormalTransactionId) - opaque->xid_base; - - IndexPageShiftBase(page, delta, needWal, buf); - return hasPruned; - } - - TransactionId trueMin = ShortTransactionIdToNormal(base, min); - TransactionId trueMax = ShortTransactionIdToNormal(base, max); - trueMin = Min(trueMin, xid); - trueMax = Max(trueMax, xid); - bool needFreezePage = (trueMax - trueMin > MaxShortTransactionId - FirstNormalTransactionId); - if (needFreezePage) { - /* can't fit all xid in the same page */ - Assert(rel != NULL && BufferIsValid(buf)); - FreezeSingleIndexPage(rel, buf, &hasPruned); - continue; - } - - /* Can we just shift base on the page */ - if (xid < base + FirstNormalTransactionId) { - int64 freeDelta = MaxShortTransactionId - max; - int64 requiredDelta = (base + FirstNormalTransactionId) - xid; - - if (requiredDelta <= freeDelta) { - IndexPageShiftBase(page, -(freeDelta + requiredDelta) / 2, needWal, buf); - return hasPruned; - } - } else { - int64 freeDelta = min - FirstNormalTransactionId; - int64 requiredDelta = xid - (base + MaxShortTransactionId); - - if (requiredDelta <= freeDelta) { - IndexPageShiftBase(page, (freeDelta + requiredDelta) / 2, needWal, buf); - return hasPruned; - } - } - - if (i == 1) { - break; - } - - /* Have to try freeing the page... */ - Assert(0); + TransactionId base = opaque->xid_base; + /* Can we already store this xid? */ + if (xid >= base + FirstNormalTransactionId && xid <= base + MaxShortTransactionId) { + return false; } + + /* remove old xids first. we don't need to do this when creating index without valid rel and buf */ + if (rel != NULL && BufferIsValid(buf)) { + FreezeSingleIndexPage(rel, buf, &hasPruned); + } + + /* Find minimum and maximum xids in the page */ + found = IndexPageXidMinMax(page, &min, &max); + /* No items on the page? */ + if (!found) { + int64 delta = (xid - FirstNormalTransactionId) - opaque->xid_base; + IndexPageShiftBase(page, delta, needWal, buf); + return hasPruned; + } + + /* Can we just shift base on the page */ + if (xid < base + FirstNormalTransactionId) { + int64 freeDelta = MaxShortTransactionId - max; + int64 requiredDelta = (base + FirstNormalTransactionId) - xid; + + if (requiredDelta <= freeDelta) { + IndexPageShiftBase(page, -(freeDelta + requiredDelta) / 2, needWal, buf); + return hasPruned; + } + } else { + int64 freeDelta = min - FirstNormalTransactionId; + int64 requiredDelta = xid - (base + MaxShortTransactionId); + + if (requiredDelta <= freeDelta) { + IndexPageShiftBase(page, (freeDelta + requiredDelta) / 2, needWal, buf); + return hasPruned; + } + } + ereport(ERROR, (errcode(ERRCODE_CANNOT_MODIFY_XIDBASE), errmsg("Can't fit xid into page. now xid is %lu, base is %lu, min is %u, max is %u", xid, base, min, max))); diff --git a/src/gausskernel/storage/access/ubtree/ubtutils.cpp b/src/gausskernel/storage/access/ubtree/ubtutils.cpp index 2fe9f26d3..6d67b6ee5 100644 --- a/src/gausskernel/storage/access/ubtree/ubtutils.cpp +++ b/src/gausskernel/storage/access/ubtree/ubtutils.cpp @@ -461,6 +461,7 @@ bool UBTreeItupGetXminXmax(Page page, OffsetNumber offnum, TransactionId oldest_ IndexItemIdSetFrozen(iid); *xmin = FrozenTransactionId; } + if (isDead) { ItemIdMarkDead(iid); *xmin = InvalidTransactionId; diff --git a/src/gausskernel/storage/access/ubtree/ubtxlog.cpp b/src/gausskernel/storage/access/ubtree/ubtxlog.cpp index 238f28086..a2d82e439 100644 --- a/src/gausskernel/storage/access/ubtree/ubtxlog.cpp +++ b/src/gausskernel/storage/access/ubtree/ubtxlog.cpp @@ -282,7 +282,7 @@ static void UBTreeXlogInsert(bool isleaf, bool ismeta, XLogReaderState *record, } } -static void UBTreeXlogSplitUpdate(bool onleft, bool isroot, XLogReaderState *record) +static void UBTreeXlogSplitUpdate(bool onleft, bool isroot, XLogReaderState *record, bool hasOpaque) { Size datalen; char *datapos = NULL; @@ -297,7 +297,7 @@ static void UBTreeXlogSplitUpdate(bool onleft, bool isroot, XLogReaderState *rec rnext = P_NONE; } - xl_btree_split *xlrec = (xl_btree_split *)XLogRecGetData(record); + xl_ubtree_split *xlrec = (xl_ubtree_split *)XLogRecGetData(record); bool isleaf = (xlrec->level == 0); if (!isleaf) { @@ -309,13 +309,13 @@ static void UBTreeXlogSplitUpdate(bool onleft, bool isroot, XLogReaderState *rec XLogInitBufferForRedo(record, BTREE_SPLIT_RIGHT_BLOCK_NUM, &rbuf); datapos = XLogRecGetBlockData(record, BTREE_SPLIT_RIGHT_BLOCK_NUM, &datalen); - UBTreeXlogSplitOperatorRightpage(&rbuf, (void *)xlrec, leftsib, rnext, (void *)datapos, datalen); + UBTreeXlogSplitOperatorRightPage(&rbuf, (void *)xlrec, leftsib, rnext, (void *)datapos, datalen, hasOpaque); MarkBufferDirty(rbuf.buf); RedoBufferInfo lbuf; if (XLogReadBufferForRedo(record, BTREE_SPLIT_LEFT_BLOCK_NUM, &lbuf) == BLK_NEEDS_REDO) { datapos = XLogRecGetBlockData(record, BTREE_SPLIT_LEFT_BLOCK_NUM, &datalen); - UBTreeXlogSplitOperatorLeftpage(&lbuf, (void *)xlrec, rightsib, onleft, (void *)datapos, datalen); + UBTreeXlogSplitOperatorLeftpage(&lbuf, (void *)xlrec, rightsib, onleft, (void *)datapos, datalen, hasOpaque); MarkBufferDirty(lbuf.buf); } @@ -337,15 +337,15 @@ static void UBTreeXlogSplitUpdate(bool onleft, bool isroot, XLogReaderState *rec } } -static void UBTreeXlogSplit(bool onleft, bool isroot, XLogReaderState *record, bool issplitupgrade) +static void UBTreeXlogSplit(bool onleft, bool isroot, XLogReaderState *record, bool issplitupgrade, bool hasOpaque) { if (issplitupgrade) { - UBTreeXlogSplitUpdate(onleft, isroot, record); + UBTreeXlogSplitUpdate(onleft, isroot, record, hasOpaque); return; } XLogRecPtr lsn = record->EndRecPtr; - xl_btree_split *xlrec = (xl_btree_split *)XLogRecGetData(record); + xl_ubtree_split *xlrec = (xl_ubtree_split *)XLogRecGetData(record); bool isleaf = (xlrec->level == 0); RedoBufferInfo lbuf; RedoBufferInfo rbuf; @@ -456,6 +456,10 @@ static void UBTreeXlogSplit(bool onleft, bool isroot, XLogReaderState *record, b ereport(PANIC, (errmsg("failed to add high key to left page after split"))); leftoff = OffsetNumberNext(leftoff); + if (xlrec->firstright > MaxIndexTuplesPerPage) { + ereport(ERROR, (errmodule(MOD_REDO), errmsg("Exceeded the maximum number of tuples on the page"))); + } + for (off = P_FIRSTDATAKEY(lopaque); off < xlrec->firstright; off++) { ItemId itemid; Size itemsz; @@ -1098,6 +1102,7 @@ static void UBTree2XlogFreeze(XLogReaderState *record) void UBTreeRedo(XLogReaderState* record) { uint8 info = XLogRecGetInfo(record) & ~XLR_INFO_MASK; + bool hasOpaque = ((XLogRecGetInfo(record) & BTREE_SPLIT_OPAQUE_FLAG) != 0); bool issplitupgrade = true; bool isdelupgrade = true; @@ -1112,16 +1117,16 @@ void UBTreeRedo(XLogReaderState* record) UBTreeXlogInsert(false, true, record, issplitupgrade); break; case XLOG_UBTREE_SPLIT_L: - UBTreeXlogSplit(true, false, record, issplitupgrade); + UBTreeXlogSplit(true, false, record, issplitupgrade, hasOpaque); break; case XLOG_UBTREE_SPLIT_R: - UBTreeXlogSplit(false, false, record, issplitupgrade); + UBTreeXlogSplit(false, false, record, issplitupgrade, hasOpaque); break; case XLOG_UBTREE_SPLIT_L_ROOT: - UBTreeXlogSplit(true, true, record, issplitupgrade); + UBTreeXlogSplit(true, true, record, issplitupgrade, hasOpaque); break; case XLOG_UBTREE_SPLIT_R_ROOT: - UBTreeXlogSplit(false, true, record, issplitupgrade); + UBTreeXlogSplit(false, true, record, issplitupgrade, hasOpaque); break; case XLOG_UBTREE_VACUUM: UBTreeXlogVacuum(record); diff --git a/src/gausskernel/storage/access/ustore/knl_pruneuheap.cpp b/src/gausskernel/storage/access/ustore/knl_pruneuheap.cpp index 3b72a3e0a..277ad8648 100644 --- a/src/gausskernel/storage/access/ustore/knl_pruneuheap.cpp +++ b/src/gausskernel/storage/access/ustore/knl_pruneuheap.cpp @@ -850,7 +850,11 @@ static int UHeapPruneItem(const RelationBuffer *relbuf, OffsetNumber offnum, Tra * that can be freed. */ ndeleted++; - + if (TransactionIdIsValid(xid) && TransactionIdIsInProgress(xid)) { + ereport(PANIC, (errcode(ERRCODE_DATA_CORRUPTED), + errmsg("Tuple will be pruned but xid is inprogress, xid=%lu, oldestxmin=%lu, oldestXidInUndo=%lu.", + xid, oldestXmin, g_instance.proc_base->oldestXidInUndo))); + } /* short aligned */ *spaceFreed += SHORTALIGN(tup.disk_tuple_size); } @@ -1075,7 +1079,7 @@ void UPageRepairFragmentation(Buffer buffer, OffsetNumber targetOffnum, Size spa /* For parallel replay, clog of txactinfo.xid may not finish replay */ if (t_thrd.xlog_cxt.InRecovery && get_real_recovery_parallelism() > 1) ; - else if (!TransactionIdDidCommit(txactinfo.xid)) { + else if (!UHeapTransactionIdDidCommit(txactinfo.xid)) { return; } } @@ -1144,7 +1148,7 @@ void UPageRepairFragmentation(Buffer buffer, OffsetNumber targetOffnum, Size spa * frozen. This can happen when the tuple is in active state * but the entry's xid is older than oldestXidInUndo */ - if (txactinfo.td_slot != UHEAPTUP_SLOT_FROZEN && !TransactionIdDidCommit(txactinfo.xid)) { + if (txactinfo.td_slot != UHEAPTUP_SLOT_FROZEN && !UHeapTransactionIdDidCommit(txactinfo.xid)) { continue; } } diff --git a/src/gausskernel/storage/access/ustore/knl_uheap.cpp b/src/gausskernel/storage/access/ustore/knl_uheap.cpp index 600d1672a..41f52fcf4 100644 --- a/src/gausskernel/storage/access/ustore/knl_uheap.cpp +++ b/src/gausskernel/storage/access/ustore/knl_uheap.cpp @@ -275,7 +275,7 @@ bool UHeapPagePrepareForXid(Relation relation, Buffer buffer, TransactionId xid, /* No items on the page */ if (!UHeapPageXidMinMax(page, multi, &min, &max)) { - int64 delta = (xid - FirstNormalTransactionId) - multi ? uheappage->pd_multi_base : uheappage->pd_xid_base; + int64 delta = (xid - FirstNormalTransactionId) - base; UHeapPageShiftBaseAndDirty(needWal, buffer, page, multi, delta); return false; } @@ -302,8 +302,6 @@ bool UHeapPagePrepareForXid(Relation relation, Buffer buffer, TransactionId xid, if (i == 0) { /* Have to try freezing the page... */ (void)FreezeSingleUHeapPage(relation, buffer); - - Assert(0); } } @@ -970,7 +968,7 @@ static void ComputeNewXidInfomask(UHeapTuple uhtup, Buffer buf, TransactionId tu /* Keep the old tuple slot as it is */ newTdSlot = tupTdSlot; - } else if (isUpdate && TransactionIdIsValid(singleLockerXid) && !TransactionIdDidCommit(singleLockerXid)) { + } else if (isUpdate && TransactionIdIsValid(singleLockerXid) && !UHeapTransactionIdDidCommit(singleLockerXid)) { LockTupleMode oldMode; /* @@ -1606,7 +1604,8 @@ static bool UHeapWait(Relation relation, Buffer buffer, UHeapTuple utuple, LockT LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE); // a single locker only transaction shouldn't exec pending undo - if (!isSubXact && !isLockSingleLocker && TransactionIdIsValid(topXid) && !TransactionIdDidCommit(topXid)) { + if (!isSubXact && !isLockSingleLocker && TransactionIdIsValid(topXid) && + !UHeapTransactionIdDidCommit(topXid)) { UHeapExecPendingUndoActions(relation, buffer, topXid); } @@ -3001,18 +3000,6 @@ check_tup_satisfies_update: oldtup.disk_tuple->flag &= ~UHEAP_MULTI_LOCKERS; tempInfomask = oldtup.disk_tuple->flag; - /* - * We can't rely on anyMultiLockerMemberAlive to clear the multi - * locker bit, if the lock on the buffer is released in between. - */ - if (buffer == newbuf) { - /* - * If all the members were lockers and are all gone, we can do away - * with the MULTI_LOCKERS bit. - */ - if (UHeapTupleHasMultiLockers(tempInfomask) && !anyMultiLockerMemberAlive) - tempInfomask &= ~UHEAP_MULTI_LOCKERS; - } /* Compute the new xid and infomask to store into the tuple. */ ComputeNewXidInfomask(&oldtup, buffer, saveTupXid, txactinfo.td_slot, tempInfomask, xid, oldtupNewTransSlot, @@ -4028,7 +4015,7 @@ bool UHeapPageFreezeTransSlots(Relation relation, Buffer buf, bool *lockReacquir TransactionId slotXid = transinfo[slotNo].xactid; if (!TransactionIdIsInProgress(slotXid, NULL, false, false, true)) { - if (TransactionIdDidCommit(slotXid)) + if (UHeapTransactionIdDidCommit(slotXid)) completedXactSlots[nCompletedXactSlots++] = slotNo; else abortedXactSlots[nAbortedXactSlots++] = slotNo; @@ -4900,8 +4887,8 @@ static void LogUHeapUpdate(UHeapWALInfo *oldTupWalinfo, UHeapWALInfo *newTupWali { char *oldp = NULL; char *newp = NULL; - int oldlen; - int newlen; + int oldlen = 0; + int newlen = 0; int bufflags = REGBUF_STANDARD; uint32 oldTupLen = 0; Page page = NULL; @@ -5274,8 +5261,7 @@ bool UHeapExecPendingUndoActions(Relation relation, Buffer buffer, TransactionId * crash, and after restart, status of this transaction will not be * aborted but we should still consider it as aborted because it dit not commit. */ - if (TransactionIdIsValid(xid) && !TransactionIdDidCommit(xid) && - !TransactionIdIsInProgress(xid, NULL, false, false)) { + if (TransactionIdIsValid(xid) && UHeapTransactionIdDidAbort(xid)) { /* * Release the buffer lock here to prevent deadlock. * This is because the actual rollback will reacquire the lock. diff --git a/src/gausskernel/storage/access/ustore/knl_undoaction.cpp b/src/gausskernel/storage/access/ustore/knl_undoaction.cpp index 938cc2711..0499b81fa 100644 --- a/src/gausskernel/storage/access/ustore/knl_undoaction.cpp +++ b/src/gausskernel/storage/access/ustore/knl_undoaction.cpp @@ -848,6 +848,11 @@ static void LogUHeapUndoActions(UHeapUndoActionWALInfo *walInfo, Relation rel) XLogRegisterData((char *)&flags, sizeof(uint8)); + if (walInfo->potential_freespace > BLCKSZ) { + ereport(PANIC, (errcode(ERRCODE_DATA_CORRUPTED), + errmsg("potential_freespace invalid: %u", walInfo->potential_freespace))); + } + if (walInfo->needInit) { UHeapPageHeaderData *uheappage = (UHeapPageHeaderData *)page; XLogRegisterData((char *)&uheappage->pd_xid_base, sizeof(TransactionId)); diff --git a/src/gausskernel/storage/access/ustore/knl_upage.cpp b/src/gausskernel/storage/access/ustore/knl_upage.cpp index 6b2023fd6..e9d601c1e 100644 --- a/src/gausskernel/storage/access/ustore/knl_upage.cpp +++ b/src/gausskernel/storage/access/ustore/knl_upage.cpp @@ -168,7 +168,7 @@ static void FindNextFreeSlot(const UHeapBufferPage *bufpage, Page input_page, Of } if (TransactionIdIsValid(xactinfo.xid) && - !TransactionIdDidCommit(xactinfo.xid)) { + !UHeapTransactionIdDidCommit(xactinfo.xid)) { hasPendingXact = true; continue; } diff --git a/src/gausskernel/storage/access/ustore/knl_uredo.cpp b/src/gausskernel/storage/access/ustore/knl_uredo.cpp index 73d8d4072..5c3daaa08 100644 --- a/src/gausskernel/storage/access/ustore/knl_uredo.cpp +++ b/src/gausskernel/storage/access/ustore/knl_uredo.cpp @@ -1655,6 +1655,7 @@ const static bool SUPPORT_HOT_STANDBY = true; static void UHeapXlogFreeze(XLogReaderState *record) { + XLogRecPtr lsn = record->EndRecPtr; XlUHeapFreeze *xlrec = (XlUHeapFreeze *)XLogRecGetData(record); TransactionId cutoffXid = xlrec->cutoff_xid; RedoBufferInfo buffer; @@ -1703,6 +1704,7 @@ static void UHeapXlogFreeze(XLogReaderState *record) } } + PageSetLSN(page, lsn); MarkBufferDirty(buffer.buf); } if (BufferIsValid(buffer.buf)) { diff --git a/src/gausskernel/storage/access/ustore/knl_uscan.cpp b/src/gausskernel/storage/access/ustore/knl_uscan.cpp index 168c3421a..1539c3646 100644 --- a/src/gausskernel/storage/access/ustore/knl_uscan.cpp +++ b/src/gausskernel/storage/access/ustore/knl_uscan.cpp @@ -202,7 +202,7 @@ static UHeapTuple UHeapScanGetTuple(UHeapScanDesc scan, ScanDirection dir) bool valid; Page dp; int lines; - OffsetNumber lineoff; + OffsetNumber lineoff = InvalidOffsetNumber; int linesleft; RowPtr *lpp; @@ -231,8 +231,9 @@ static UHeapTuple UHeapScanGetTuple(UHeapScanDesc scan, ScanDirection dir) } else { /* continue from previously returned page/tuple */ page = scan->rs_base.rs_cblock; /* current page */ - lineoff = /* next offnum */ - OffsetNumberNext(ItemPointerGetOffsetNumber(&(tuple->ctid))); + if (tuple != NULL) { + lineoff = OffsetNumberNext(ItemPointerGetOffsetNumber(&(tuple->ctid))); /* next offnum */ + } } LockBuffer(scan->rs_base.rs_cbuf, BUFFER_LOCK_SHARE); @@ -285,8 +286,9 @@ static UHeapTuple UHeapScanGetTuple(UHeapScanDesc scan, ScanDirection dir) lineoff = lines; /* final offnum */ scan->rs_base.rs_inited = true; } else { - lineoff = /* previous offnum */ - OffsetNumberPrev(ItemPointerGetOffsetNumber(&(tuple->ctid))); + if (tuple != NULL) { + lineoff = OffsetNumberPrev(ItemPointerGetOffsetNumber(&(tuple->ctid))); /* previous offnum */ + } } /* page and lineoff now reference the physically previous tid */ @@ -382,7 +384,6 @@ get_next_page: * a little bit backwards on every invocation, which is confusing. * We don't guarantee any specific ordering in general, though. */ - // if (scan->rs_base.rs_flags & SO_ALLOW_SYNC) if (scan->rs_allow_sync) ss_report_location(scan->rs_base.rs_rd, page); } @@ -1270,7 +1271,7 @@ static bool VerifyUHeapGetTup(UHeapScanDesc scan, ScanDirection dir) * advance the scan until we find a qualifying tuple or run out of stuff * to scan */ - while (linesLeft > 0) { + if (linesLeft > 0) { tuple = scan->rs_visutuples[lineOff]; scan->rs_base.rs_cindex = lineOff; return tuple; diff --git a/src/gausskernel/storage/access/ustore/knl_utuple.cpp b/src/gausskernel/storage/access/ustore/knl_utuple.cpp index 254ded9f1..09f4f8306 100644 --- a/src/gausskernel/storage/access/ustore/knl_utuple.cpp +++ b/src/gausskernel/storage/access/ustore/knl_utuple.cpp @@ -1084,7 +1084,7 @@ void UHeapTupleHeaderAdvanceLatestRemovedXid(UHeapDiskTuple tuple, TransactionId * the inserting transaction, but for that we need to traverse the * complete undo chain to find the root tuple, is it really worth? */ - if (TransactionIdDidCommit(xid)) { + if (UHeapTransactionIdDidCommit(xid)) { Assert((tuple->flag & UHEAP_DELETED) || (tuple->flag & UHEAP_UPDATED)); if (TransactionIdFollows(xid, *latestRemovedXid)) *latestRemovedXid = xid; diff --git a/src/gausskernel/storage/access/ustore/knl_uvacuumlazy.cpp b/src/gausskernel/storage/access/ustore/knl_uvacuumlazy.cpp index 6a0c1e833..4008aa88b 100644 --- a/src/gausskernel/storage/access/ustore/knl_uvacuumlazy.cpp +++ b/src/gausskernel/storage/access/ustore/knl_uvacuumlazy.cpp @@ -553,7 +553,7 @@ void LazyVacuumUHeapRel(Relation onerel, VacuumStmt *vacstmt, BufferAccessStrate * because like other backends operating on uheap, lazy vacuum also * reserves a transaction slot in the page for pruning purpose. */ - TransactionId oldestXmin = GetOldestXmin(onerel, false, true); + TransactionId oldestXmin = pg_atomic_read_u64(&g_instance.proc_base->oldestXidInUndo); Assert(TransactionIdIsNormal(oldestXmin)); vacrelstats = (LVRelStats *)palloc0(sizeof(LVRelStats)); @@ -637,10 +637,12 @@ void LazyVacuumUHeapRel(Relation onerel, VacuumStmt *vacstmt, BufferAccessStrate newRelAllvisible = newRelPages; } + TransactionId newFrozenXid = oldestXmin; + if (RelationIsPartition(onerel)) { Assert(vacstmt->onepart != NULL); - vac_update_partstats(vacstmt->onepart, newRelPages, newRelTuples, newRelAllvisible, InvalidTransactionId, + vac_update_partstats(vacstmt->onepart, newRelPages, newRelTuples, newRelAllvisible, newFrozenXid, InvalidMultiXactId); /* * when vacuum partition, do not change the relhasindex field in pg_class @@ -650,11 +652,11 @@ void LazyVacuumUHeapRel(Relation onerel, VacuumStmt *vacstmt, BufferAccessStrate * misdguge as hot update even if update indexes columns. */ vac_update_pgclass_partitioned_table(vacstmt->onepartrel, vacstmt->onepartrel->rd_rel->relhasindex, - InvalidTransactionId, InvalidMultiXactId); + newFrozenXid, InvalidMultiXactId); } else { Relation classRel = heap_open(RelationRelationId, RowExclusiveLock); - vac_update_relstats(onerel, classRel, newRelPages, newRelTuples, newRelAllvisible, nindexes > 0, - InvalidTransactionId, InvalidMultiXactId); + vac_update_relstats(onerel, classRel, newRelPages, newRelTuples, newRelAllvisible, nindexes > 0, newFrozenXid, + InvalidMultiXactId); heap_close(classRel, RowExclusiveLock); } diff --git a/src/gausskernel/storage/access/ustore/knl_uvisibility.cpp b/src/gausskernel/storage/access/ustore/knl_uvisibility.cpp index 4cd51b457..5a860d35a 100644 --- a/src/gausskernel/storage/access/ustore/knl_uvisibility.cpp +++ b/src/gausskernel/storage/access/ustore/knl_uvisibility.cpp @@ -172,10 +172,16 @@ bool UHeapTupleSatisfiesVisibility(UHeapTuple uhtup, Snapshot snapshot, Buffer b utuple->disk_tuple = (UHeapDiskTuple)UPageGetRowData(dp, rp); utuple->disk_tuple_size = RowPtrGetLen(rp); tdSlot = UHeapTupleHeaderGetTDSlot(utuple->disk_tuple); + if (tdSlot > UHEAP_MAX_TD || tdSlot < 0) { + ereport(PANIC, (errmsg("Normal rowptr, td_info abnormal, is %d", tdSlot))); + } isInvalidSlot = UHeapTupleHasInvalidXact(utuple->disk_tuple->flag); } else if (RowPtrIsDeleted(rp)) { utuple = NULL; tdSlot = RowPtrGetTDSlot(rp); + if (tdSlot > UHEAP_MAX_TD || tdSlot < 0) { + ereport(PANIC, (errmsg("Deleted rowptr, td_info abnormal, is %d", tdSlot))); + } isInvalidSlot = (RowPtrGetVisibilityInfo(rp) & ROWPTR_XACT_INVALID); } else { /* @@ -301,7 +307,7 @@ static UVersionSelector UHeapSelectVersionNow(UTupleTidOp op, TransactionId xid) */ return ((op == UTUPLETID_GONE) ? UVERSION_NONE : UVERSION_CURRENT); } - if (TransactionIdIsInProgress(xid) || TransactionIdDidAbort(xid)) { + if (!UHeapTransactionIdDidCommit(xid)) { /* The XID is not visible to us */ return ((op == UTUPLETID_NEW) ? UVERSION_NONE : UVERSION_OLDER); } @@ -322,7 +328,7 @@ static UVersionSelector UHeapSelectVersionSelf(UTupleTidOp op, TransactionId xid return UVERSION_NONE; else if (TransactionIdIsInProgress(xid)) return UVERSION_OLDER; - else if (TransactionIdDidCommit(xid)) + else if (UHeapTransactionIdDidCommit(xid)) return UVERSION_NONE; else return UVERSION_OLDER; /* transaction is aborted */ @@ -331,7 +337,7 @@ static UVersionSelector UHeapSelectVersionSelf(UTupleTidOp op, TransactionId xid return UVERSION_CURRENT; else if (TransactionIdIsInProgress(xid)) return UVERSION_OLDER; - else if (TransactionIdDidCommit(xid)) + else if (UHeapTransactionIdDidCommit(xid)) return UVERSION_CURRENT; else return UVERSION_OLDER; /* transaction is aborted */ @@ -340,7 +346,7 @@ static UVersionSelector UHeapSelectVersionSelf(UTupleTidOp op, TransactionId xid return UVERSION_CURRENT; else if (TransactionIdIsInProgress(xid)) return UVERSION_NONE; - else if (TransactionIdDidCommit(xid)) + else if (UHeapTransactionIdDidCommit(xid)) return UVERSION_CURRENT; else return UVERSION_NONE; /* transaction is aborted */ @@ -381,7 +387,7 @@ static UVersionSelector UHeapSelectVersionDirty(const UTupleTidOp op, const bool if (uinfo->urec_add != INVALID_UNDO_REC_PTR) *snapshotRequests |= SNAPSHOT_REQUESTS_SUBXID; return UVERSION_CURRENT; - } else if (TransactionIdDidCommit(uinfo->xid)) { + } else if (UHeapTransactionIdDidCommit(uinfo->xid)) { /* tuple is deleted or non-inplace-updated */ return UVERSION_NONE; } @@ -395,7 +401,7 @@ static UVersionSelector UHeapSelectVersionDirty(const UTupleTidOp op, const bool if (uinfo->urec_add != INVALID_UNDO_REC_PTR) *snapshotRequests |= SNAPSHOT_REQUESTS_SUBXID; return UVERSION_CURRENT; /* being updated */ - } else if (TransactionIdDidCommit(uinfo->xid)) { + } else if (UHeapTransactionIdDidCommit(uinfo->xid)) { return UVERSION_CURRENT; /* tuple is updated by someone else */ } /* transaction is aborted */ @@ -408,7 +414,7 @@ static UVersionSelector UHeapSelectVersionDirty(const UTupleTidOp op, const bool if (uinfo->urec_add != INVALID_UNDO_REC_PTR) *snapshotRequests |= SNAPSHOT_REQUESTS_SUBXID; return UVERSION_CURRENT; /* in insertion by other */ - } else if (TransactionIdDidCommit(uinfo->xid)) { + } else if (UHeapTransactionIdDidCommit(uinfo->xid)) { return UVERSION_CURRENT; } /* inserting transaction aborted */ @@ -467,7 +473,7 @@ static UVersionSelector UHeapSelectVersionUpdate(UTupleTidOp op, TransactionId x return UVERSION_CURRENT; } - if (TransactionIdIsInProgress(xid) || !TransactionIdDidCommit(xid)) { + if (TransactionIdIsInProgress(xid) || !UHeapTransactionIdDidCommit(xid)) { /* The XID is still in progress, or aborted; we can't see it. */ return ((op == UTUPLETID_NEW) ? UVERSION_NONE : UVERSION_OLDER); } @@ -950,7 +956,7 @@ restart: UHeapTupleGetRawXid(utuple), multixidIsMyself); return TM_BeingModified; } else { - Assert(TransactionIdDidCommit(tdinfo->xid)); + Assert(UHeapTransactionIdDidCommit(tdinfo->xid)); if (TransactionIdIsValid(conflictXid) && isUpsert) { bool isUpdatedByOthers = (conflictXid != tdinfo->xid); return isUpdatedByOthers ? TM_Updated : TM_BeingModified; @@ -996,7 +1002,7 @@ restart: if (tdinfo->td_slot == UHEAPTUP_SLOT_FROZEN || TransactionIdOlderThanAllUndo(tdinfo->xid)) { result = TM_Ok; - } else if (TransactionIdDidCommit(tdinfo->xid)) { + } else if (UHeapTransactionIdDidCommit(tdinfo->xid)) { if (TransactionIdIsValid(conflictXid) && isUpsert) { bool isUpdatedByOthers = (conflictXid != tdinfo->xid); return isUpdatedByOthers ? TM_Updated : TM_Ok; @@ -1026,7 +1032,7 @@ restart: // deleter is still active, caller should wait it until it commits or aborts result = TM_BeingModified; fetchSubXid = true; - } else if (TransactionIdDidCommit(tdinfo->xid)) { + } else if (UHeapTransactionIdDidCommit(tdinfo->xid)) { result = TM_Updated; } else { // set as being modified, and caller will rely on UHeapWait to handle this case @@ -1053,7 +1059,7 @@ restart: *lockerXid = lockerTDInfo.xid; result = TM_BeingModified; fetchSubXid = true; - } else if (TransactionIdDidCommit(lockerTDInfo.xid)) { + } else if (UHeapTransactionIdDidCommit(lockerTDInfo.xid)) { result = TM_Ok; } else { *lockerXid = lockerTDInfo.xid; @@ -1080,7 +1086,7 @@ restart: } else if (TransactionIdIsInProgress(tdinfo->xid, NULL, false, false, true)) { result = TM_BeingModified; fetchSubXid = true; - } else if (TransactionIdDidCommit(tdinfo->xid)) { + } else if (UHeapTransactionIdDidCommit(tdinfo->xid)) { bool checkVisibility = true; if (UHEAP_XID_IS_LOCKED_ONLY(tupleData->flag)) { @@ -1101,7 +1107,7 @@ restart: *lockerXid = lockerTDInfo.xid; result = TM_BeingModified; fetchSubXid = true; - } else if (TransactionIdDidCommit(lockerTDInfo.xid)) { + } else if (UHeapTransactionIdDidCommit(lockerTDInfo.xid)) { checkVisibility = true; } else { *lockerXid = lockerTDInfo.xid; @@ -1141,7 +1147,7 @@ restart: SyncLocalXidWait(tdinfo->xid); goto restart; } - } else if (TransactionIdDidCommit(tdinfo->xid)) { + } else if (UHeapTransactionIdDidCommit(tdinfo->xid)) { result = TM_Ok; } else { // aborted result = TM_Invisible; diff --git a/src/gausskernel/storage/access/ustore/undo/knl_uundoapi.cpp b/src/gausskernel/storage/access/ustore/undo/knl_uundoapi.cpp index 0889e981a..4f816eebd 100644 --- a/src/gausskernel/storage/access/ustore/undo/knl_uundoapi.cpp +++ b/src/gausskernel/storage/access/ustore/undo/knl_uundoapi.cpp @@ -350,7 +350,10 @@ void CheckPointUndoSystemMeta(XLogRecPtr checkPointRedo) #ifndef ENABLE_MULTIPLE_NODES /* Open undo meta file. */ if (t_thrd.role == CHECKPOINT_THREAD) { - ereport(LOG, (errmodule(MOD_UNDO), errmsg(UNDOFORMAT("undo metadata checkPointRedo = %lu."), checkPointRedo))); + TransactionId oldestXidInUndo = pg_atomic_read_u64(&g_instance.proc_base->oldestXidInUndo); + ereport(LOG, (errmodule(MOD_UNDO), errmsg(UNDOFORMAT( + "undo metadata checkPointRedo = %lu, oldestXidInUndo = %lu."), + checkPointRedo, oldestXidInUndo))); int fd = BasicOpenFile(UNDO_META_FILE, O_RDWR | PG_BINARY, S_IRUSR | S_IWUSR); if (fd < 0) { ereport(ERROR, (errcode(ERRCODE_DATA_EXCEPTION), errmsg("could not open file \%s", UNDO_META_FILE))); @@ -615,13 +618,20 @@ void UpdateRollbackFinish(UndoSlotPtr slotPtr) undo::TransactionSlot *slot = buf.FetchTransactionSlot(slotPtr); Assert(slot->XactId() != InvalidTransactionId); Assert(slot->DbId() != InvalidOid); + TransactionId oldestXidInUndo = pg_atomic_read_u64(&g_instance.proc_base->oldestXidInUndo); + + if (TransactionIdPrecedes(slot->XactId(), oldestXidInUndo)) { + ereport(WARNING, (errmsg(UNDOFORMAT("curr xid having undo %lu < oldestXidInUndo %lu."), + slot->XactId(), oldestXidInUndo))); + } /* only persist level space need update transaction slot. */ START_CRIT_SECTION(); slot->UpdateRollbackProgress(); ereport(LOG, (errmsg(UNDOFORMAT( - "update zone %d slot %lu xid %lu dbid %u rollback progress from start %lu to end %lu."), - zid, slotPtr, slot->XactId(), slot->DbId(), slot->StartUndoPtr(), slot->EndUndoPtr()))); + "update zone %d slot %lu xid %lu dbid %u rollback progress from start %lu to end %lu, oldestXidInUndo %lu."), + zid, slotPtr, slot->XactId(), slot->DbId(), slot->StartUndoPtr(), slot->EndUndoPtr(), + oldestXidInUndo))); XLogRecPtr lsn; /* WAL log the rollback progress so it can be replayed */ diff --git a/src/gausskernel/storage/access/ustore/undo/knl_uundorecycle.cpp b/src/gausskernel/storage/access/ustore/undo/knl_uundorecycle.cpp index 1c7105486..89b9246db 100755 --- a/src/gausskernel/storage/access/ustore/undo/knl_uundorecycle.cpp +++ b/src/gausskernel/storage/access/ustore/undo/knl_uundorecycle.cpp @@ -90,6 +90,7 @@ bool RecycleUndoSpace(UndoZone *zone, TransactionId oldestXmin, TransactionId *o bool undoRecycled = false; bool result = false; UndoSlotPtr start = INVALID_UNDO_SLOT_PTR; + TransactionId oldestXidInUndo = pg_atomic_read_u64(&g_instance.proc_base->oldestXidInUndo); if (zone->GetPersitentLevel() == UNDO_PERMANENT) { needWal = true; @@ -114,15 +115,17 @@ bool RecycleUndoSpace(UndoZone *zone, TransactionId oldestXmin, TransactionId *o UHEAPSTAT_COUNT_UNDO_SPACE_RECYCLE(); #endif pg_read_barrier(); - if (!TransactionIdIsValid(slot->XactId())) { + if (!TransactionIdIsValid(slot->XactId()) || TransactionIdPrecedes(slot->XactId(), oldestXidInUndo)) { ereport(PANIC, (errmodule(MOD_UNDO), - errmsg(UNDOFORMAT("recycle xid invalid: zone %d transaction slot %lu xid %lu loops %lu."), - zone->GetZoneId(), recycle, recycleXid, g_recycleLoops))); + errmsg(UNDOFORMAT( + "recycle xid invalid: zone %d transaction slot %lu xid %lu loops %lu, oldestXidInUndo %lu."), + zone->GetZoneId(), recycle, recycleXid, g_recycleLoops, oldestXidInUndo))); } if (TransactionIdPrecedes(slot->XactId(), oldestXmin)) { Assert(forceRecycle == false); - if (!TransactionIdDidCommit(slot->XactId())) { + if (!UHeapTransactionIdDidCommit(slot->XactId())) { if (slot->NeedRollback()) { + *oldestRecycleXid = slot->XactId(); if (zone->GetPersitentLevel() == UNDO_TEMP || zone->GetPersitentLevel() == UNDO_UNLOGGED) { break; } @@ -134,15 +137,16 @@ bool RecycleUndoSpace(UndoZone *zone, TransactionId oldestXmin, TransactionId *o #endif ereport(LOG, (errmodule(MOD_UNDO), errmsg(UNDOFORMAT( - "rollback zone %d slot %lu: xid %lu, start %lu, end %lu, dbid %u. recyclexid %lu loops %lu."), + "rollback zone %d slot %lu: xid %lu, start %lu, " + "end %lu, dbid %u. recyclexid %lu loops %lu, oldestXidInUndo %lu."), zone->GetZoneId(), recycle, slot->XactId(), slot->StartUndoPtr(), slot->EndUndoPtr(), - slot->DbId(), recycleXid, g_recycleLoops))); - *oldestRecycleXid = slot->XactId(); + slot->DbId(), recycleXid, g_recycleLoops, oldestXidInUndo))); break; } } } else { - if (TransactionIdPrecedes(slot->XactId(), forceRecycleXid) && TransactionIdDidCommit(slot->XactId())) { + if (TransactionIdPrecedes(slot->XactId(), forceRecycleXid) && + UHeapTransactionIdDidCommit(slot->XactId())) { ereport(LOG, (errmodule(MOD_UNDO), errmsg(UNDOFORMAT("ForceRecycle: slot=%lu, slotxid=%lu, " "recyclexid=%lu, oldestXmin=%lu, startptr=%lu, endptr=%lu."), recycle, slot->XactId(), forceRecycleXid, oldestXmin, UNDO_PTR_GET_OFFSET(slot->StartUndoPtr()), @@ -487,9 +491,6 @@ void UndoRecycleMain() recycled = true; } UpdateRecyledXid(recycleMaxXIDs, &recycleMaxXIDCount, recycleXid); - } else if (forceRecycleXid != InvalidTransactionId && zone->NeedCleanUndoSpace()) { - zone->CleanUndoSpace(); - zone->CleanSlotSpace(); } } } @@ -513,14 +514,12 @@ void UndoRecycleMain() g_recycleLoops++; } if (oldestXidHavingUndo != InvalidTransactionId) { - if (TransactionIdPrecedes(oldestXidHavingUndo, g_instance.proc_base->oldestXidInUndo)) { - ereport(PANIC, (errmsg(UNDOFORMAT("curr xid having undo %lu < global %lu."), - oldestXidHavingUndo, g_instance.proc_base->oldestXidInUndo))); + TransactionId oldestXidInUndo = pg_atomic_read_u64(&g_instance.proc_base->oldestXidInUndo); + if (TransactionIdPrecedes(oldestXidHavingUndo, oldestXidInUndo)) { + ereport(PANIC, (errmsg(UNDOFORMAT("curr xid having undo %lu < global oldestXidInUndo %lu."), + oldestXidHavingUndo, oldestXidInUndo))); } pg_atomic_write_u64(&g_instance.proc_base->oldestXidInUndo, oldestXidHavingUndo); -#ifdef DEBUG_UHEAP - UHEAPSTAT_COUNT_XID_DELAY(oldestXmin - g_instance.proc_base->oldestXidInUndo); -#endif } if (!recycled) { nonRecycled += 1; diff --git a/src/gausskernel/storage/access/ustore/undo/knl_uundospace.cpp b/src/gausskernel/storage/access/ustore/undo/knl_uundospace.cpp index c5f742347..79dcb48ae 100644 --- a/src/gausskernel/storage/access/ustore/undo/knl_uundospace.cpp +++ b/src/gausskernel/storage/access/ustore/undo/knl_uundospace.cpp @@ -64,10 +64,6 @@ void UndoSpace::ExtendUndoLog(int zid, UndoLogOffset offset, uint32 dbId) WHITEBOX_TEST_STUB(UNDO_EXTEND_LOG_FAILED, WhiteboxDefaultErrorEmit); while (tail < offset) { - blockno = (BlockNumber)(tail / BLCKSZ + 1); - /* Create a new undo segment. */ - smgrextend(reln, MAIN_FORKNUM, blockno, NULL, false); - pg_atomic_fetch_add_u32(&g_instance.undo_cxt.undoTotalSize, segBlocks); if ((!t_thrd.xlog_cxt.InRecovery) && (static_cast(g_instance.undo_cxt.undoTotalSize) + static_cast(g_instance.undo_cxt.undoMetaSize) >= g_instance.attr.attr_storage.undo_space_limit_size)) { ereport(ERROR, (errmodule(MOD_UNDO), errmsg(UNDOFORMAT( @@ -75,6 +71,10 @@ void UndoSpace::ExtendUndoLog(int zid, UndoLogOffset offset, uint32 dbId) g_instance.undo_cxt.undoTotalSize + g_instance.undo_cxt.undoMetaSize, g_instance.attr.attr_storage.undo_space_limit_size))); } + blockno = (BlockNumber)(tail / BLCKSZ + 1); + /* Create a new undo segment. */ + smgrextend(reln, MAIN_FORKNUM, blockno, NULL, false); + pg_atomic_fetch_add_u32(&g_instance.undo_cxt.undoTotalSize, segBlocks); tail += segSize; } @@ -139,6 +139,7 @@ void UndoSpace::CreateNonExistsUndoFile(int zid, uint32 dbId) } offset += segSize; } + smgrclose(reln); return; } @@ -325,7 +326,6 @@ void UndoSpace::RecoveryUndoSpace(int fd, UndoSpaceType type) g_instance.undo_cxt.undoMetaSize += spaceMetaSize; for (zoneId = 0; zoneId < PERSIST_ZONE_COUNT; zoneId++) { - UndoZone *uzone = (UndoZone *)g_instance.undo_cxt.uZones[zoneId]; UndoSpaceMetaInfo *uspMetaInfo = NULL; if (zoneId % (UNDOSPACE_COUNT_PER_PAGE * PAGES_READ_NUM) == 0) { Size readSize; @@ -369,11 +369,15 @@ void UndoSpace::RecoveryUndoSpace(int fd, UndoSpaceType type) return; } } - if (uzone == NULL) { - continue; - } + int offset = zoneId % UNDOSPACE_COUNT_PER_PAGE; uspMetaInfo = (UndoSpaceMetaInfo *)(uspMetaBuffer + offset * sizeof(UndoSpaceMetaInfo)); + UndoZone *uzone = (UndoZone *)g_instance.undo_cxt.uZones[zoneId]; + if (uspMetaInfo->tail == 0 && uzone == NULL) { + continue; + } + + uzone = UndoZoneGroup::GetUndoZone(zoneId, true); UndoSpace *usp = uzone->GetSpace(type); usp->LockInit(); usp->MarkClean(); diff --git a/src/gausskernel/storage/access/ustore/undo/knl_uundotxn.cpp b/src/gausskernel/storage/access/ustore/undo/knl_uundotxn.cpp index 6d9b32aeb..0bc336a0e 100644 --- a/src/gausskernel/storage/access/ustore/undo/knl_uundotxn.cpp +++ b/src/gausskernel/storage/access/ustore/undo/knl_uundotxn.cpp @@ -252,6 +252,9 @@ void *UndoSlotBufferCache::InsertSlotBuffer(UndoSlotPtr ptr, uint32 hashValue) SlotBufferCacheEntry *entry = (SlotBufferCacheEntry *)hash_search_with_hash_value(hashTable_, &ptr, hashValue, HASH_ENTER, &found); Assert(!found); + if (entry == NULL) { + ereport(ERROR, (errmodule(MOD_UNDO), errmsg("InsertSlotBuffer: Can not find the free slot"))); + } entry->next_ = head_; entry->prev_ = tail_; entry->tag_ = ptr; diff --git a/src/gausskernel/storage/access/ustore/undo/knl_uundozone.cpp b/src/gausskernel/storage/access/ustore/undo/knl_uundozone.cpp index cf64a23ef..f52bef76f 100644 --- a/src/gausskernel/storage/access/ustore/undo/knl_uundozone.cpp +++ b/src/gausskernel/storage/access/ustore/undo/knl_uundozone.cpp @@ -820,7 +820,7 @@ UndoZone *UndoZoneGroup::SwitchZone(int zid, UndoPersistence upersistence) return uzone; } -UndoZone* UndoZoneGroup::GetUndoZone(int zid) +UndoZone* UndoZoneGroup::GetUndoZone(int zid, bool needInit) { WHITEBOX_TEST_STUB(UNDO_GET_ZONE_FAILED, WhiteboxDefaultErrorEmit); @@ -828,7 +828,7 @@ UndoZone* UndoZoneGroup::GetUndoZone(int zid) ereport(PANIC, (errmsg(UNDOFORMAT("zone id %d invalid."), zid))); } UndoZone *uzone = (UndoZone *)g_instance.undo_cxt.uZones[zid]; - if (uzone == NULL && t_thrd.xlog_cxt.InRecovery) { + if (uzone == NULL && (t_thrd.xlog_cxt.InRecovery || needInit)) { /* False equals to 0, which means zone is used; true is 1, which means zone is unused. */ bool isZoneFree = bms_is_member(zid, g_instance.undo_cxt.uZoneBitmap[UNDO_PERMANENT]); if (!isZoneFree) { diff --git a/src/gausskernel/storage/buffer/buf_init.cpp b/src/gausskernel/storage/buffer/buf_init.cpp index 0ff99659c..6956b35d7 100644 --- a/src/gausskernel/storage/buffer/buf_init.cpp +++ b/src/gausskernel/storage/buffer/buf_init.cpp @@ -106,7 +106,7 @@ void InitBufferPool(void) (CkptSortItem *)ShmemInitStruct("Checkpoint BufferIds", TOTAL_BUFFER_NUM * sizeof(CkptSortItem), &found_buf_ckpt); - if (g_instance.attr.attr_storage.enableIncrementalCheckpoint && g_instance.ckpt_cxt_ctl->dirty_page_queue == NULL) { + if (ENABLE_INCRE_CKPT && g_instance.ckpt_cxt_ctl->dirty_page_queue == NULL) { g_instance.ckpt_cxt_ctl->dirty_page_queue_size = TOTAL_BUFFER_NUM * PAGE_QUEUE_SLOT_MULTI_NBUFFERS; MemoryContext oldcontext = MemoryContextSwitchTo(g_instance.increCheckPoint_context); @@ -114,9 +114,6 @@ void InitBufferPool(void) Size queue_mem_size = g_instance.ckpt_cxt_ctl->dirty_page_queue_size * sizeof(DirtyPageQueueSlot); g_instance.ckpt_cxt_ctl->dirty_page_queue = (DirtyPageQueueSlot *)palloc_huge(CurrentMemoryContext, queue_mem_size); - if (g_instance.ckpt_cxt_ctl->dirty_page_queue == NULL) { - ereport(ERROR, (errmodule(MOD_INCRE_CKPT), errmsg("Memory allocation failed.\n"))); - } /* The memory of the memset sometimes exceeds 2 GB. so, memset_s cannot be used. */ MemSet((char*)g_instance.ckpt_cxt_ctl->dirty_page_queue, 0, queue_mem_size); @@ -127,6 +124,11 @@ void InitBufferPool(void) g_instance.bgwriter_cxt.unlink_rel_hashtbl = relfilenode_hashtbl_create("unlink_rel_hashtbl", true); } + if (g_instance.bgwriter_cxt.unlink_rel_fork_hashtbl == NULL) { + g_instance.bgwriter_cxt.unlink_rel_fork_hashtbl = + relfilenode_fork_hashtbl_create("unlink_rel_one_fork_hashtbl", true); + } + if (found_descs || found_bufs || found_buf_ckpt) { /* both should be present or neither */ Assert(found_descs && found_bufs && found_buf_ckpt); @@ -152,6 +154,7 @@ void InitBufferPool(void) buf->encrypt = false; } g_instance.bgwriter_cxt.rel_hashtbl_lock = LWLockAssign(LWTRANCHE_UNLINK_REL_TBL); + g_instance.bgwriter_cxt.rel_one_fork_hashtbl_lock = LWLockAssign(LWTRANCHE_UNLINK_REL_FORK_TBL); } /* Init other shared buffer-management stuff */ @@ -193,10 +196,10 @@ Size BufferShmemSize(void) size = add_size(size, mul_size(TOTAL_BUFFER_NUM, sizeof(CkptSortItem))); /* size of candidate buffers */ - size = add_size(size, mul_size(g_instance.attr.attr_storage.NBuffers, sizeof(Buffer))); + size = add_size(size, mul_size(TOTAL_BUFFER_NUM, sizeof(Buffer))); /* size of candidate free map */ - size = add_size(size, mul_size(g_instance.attr.attr_storage.NBuffers, sizeof(bool))); + size = add_size(size, mul_size(TOTAL_BUFFER_NUM, sizeof(bool))); return size; } diff --git a/src/gausskernel/storage/buffer/bufmgr.cpp b/src/gausskernel/storage/buffer/bufmgr.cpp index 13beb7601..08628ce00 100644 --- a/src/gausskernel/storage/buffer/bufmgr.cpp +++ b/src/gausskernel/storage/buffer/bufmgr.cpp @@ -71,6 +71,7 @@ #include "utils/resowner.h" #include "utils/timestamp.h" #include "utils/syscache.h" +#include "utils/evp_cipher.h" #include "replication/walsender_private.h" #include "replication/walsender.h" #include "workload/workload.h" @@ -1697,7 +1698,7 @@ Buffer ReadBufferExtended(Relation reln, ForkNumber fork_num, BlockNumber block_ pgstatCountBlocksFetched4SessionLevel(); if (RelationisEncryptEnable(reln)) { - TdeTableEncryptionInsert(reln); + reln->rd_smgr->encrypt = true; } buf = ReadBuffer_common(reln->rd_smgr, reln->rd_rel->relpersistence, fork_num, block_num, mode, strategy, &hit, NULL); @@ -2096,9 +2097,13 @@ static Buffer ReadBuffer_common(SMgrRelation smgr, char relpersistence, ForkNumb * was not originally committed, the tid or the heap(page) should not * be visible. So accessing the non-existent heap tuple by the tid * should return that the tuple does not exist without error reporting. + * + * Segment-page storage does not support standby reading. Its segment + * head may be re-used, i.e., the relfilenode may be reused. Thus the + * smgrnblocks interface can not be used on standby. Just skip this check. */ #ifndef ENABLE_MULTIPLE_NODES - } else if (RecoveryInProgress()) { + } else if (RecoveryInProgress() && !IsSegmentFileNode(smgr->smgr_rnode.node)) { BlockNumber totalBlkNum = smgrnblocks_cached(smgr, forkNum); /* Update cached blocks */ @@ -2113,10 +2118,6 @@ static Buffer ReadBuffer_common(SMgrRelation smgr, char relpersistence, ForkNumb } if (isLocalBuf) { bufHdr = LocalBufferAlloc(smgr, forkNum, blockNum, &found); - if (smgr->encrypt) { - bufHdr->encrypt = true; - } - if (found) { u_sess->instr_cxt.pg_buffer_usage->local_blks_hit++; } else { @@ -2129,10 +2130,9 @@ static Buffer ReadBuffer_common(SMgrRelation smgr, char relpersistence, ForkNumb * not currently in memory. */ bufHdr = BufferAlloc(smgr, relpersistence, forkNum, blockNum, strategy, &found, pblk); - if (smgr->encrypt) { - bufHdr->encrypt = true; + if (g_instance.attr.attr_security.enable_tde && IS_PGXC_DATANODE) { + bufHdr->encrypt = smgr->encrypt ? true : false; /* set tde flag */ } - if (found) { u_sess->instr_cxt.pg_buffer_usage->shared_blks_hit++; } else { @@ -2266,7 +2266,7 @@ static Buffer ReadBuffer_common(SMgrRelation smgr, char relpersistence, ForkNumb * Check the BufferDesc rec_lsn to determine whether the dirty page is in the dirty page queue. * If the rec_lsn is valid, dirty page is already in the queue, don't need to push it again. */ - if (g_instance.attr.attr_storage.enableIncrementalCheckpoint) { + if (ENABLE_INCRE_CKPT) { for (;;) { buf_state = old_buf_state | (BM_DIRTY | BM_JUST_DIRTIED); if (!XLogRecPtrIsInvalid(pg_atomic_read_u64(&bufHdr->rec_lsn))) { @@ -2334,7 +2334,7 @@ void SimpleMarkBufDirty(BufferDesc *buf) * Check the BufferDesc rec_lsn to determine whether the dirty page is in the dirty page queue. * If the rec_lsn is valid, dirty page is already in the queue, don't need to push it again. */ - if (g_instance.attr.attr_storage.enableIncrementalCheckpoint) { + if (ENABLE_INCRE_CKPT) { for (;;) { bufState = oldBufState | (BM_DIRTY | BM_JUST_DIRTIED); if (!XLogRecPtrIsInvalid(pg_atomic_read_u64(&buf->rec_lsn))) { @@ -2504,8 +2504,7 @@ static BufferDesc *BufferAlloc(SMgrRelation smgr, char relpersistence, ForkNumbe * after re-locking the buffer header. */ if (old_flags & BM_DIRTY) { - - /* backend should not flush dirty pages if PageWriter is there */ + /* backend should not flush dirty pages if working version less than DW_SUPPORT_NEW_SINGLE_FLUSH */ if (!backend_can_flush_dirty_page()) { UnpinBuffer(buf, true); (void)sched_yield(); @@ -2560,12 +2559,19 @@ static BufferDesc *BufferAlloc(SMgrRelation smgr, char relpersistence, ForkNumbe /* OK, do the I/O */ TRACE_POSTGRESQL_BUFFER_WRITE_DIRTY_START(fork_num, block_num, smgr->smgr_rnode.node.spcNode, smgr->smgr_rnode.node.dbNode, smgr->smgr_rnode.node.relNode); - if (dw_enabled()) { + + /* during initdb, not need flush dw file */ + if (dw_enabled() && pg_atomic_read_u32(&g_instance.ckpt_cxt_ctl->current_page_writer_count) > 0) { + if (!free_space_enough(buf->buf_id)) { + LWLockRelease(buf->content_lock); + UnpinBuffer(buf, true); + continue; + } uint32 pos = 0; - pos = dw_single_flush(buf); + pos = first_version_dw_single_flush(buf); t_thrd.proc->dw_pos = pos; FlushBuffer(buf, NULL); - g_instance.dw_single_cxt.single_flush_state[pos].data_flush = true; + g_instance.dw_single_cxt.single_flush_state[pos] = true; t_thrd.proc->dw_pos = -1; } else { FlushBuffer(buf, NULL); @@ -2839,7 +2845,7 @@ retry: } /* remove from dirty page list */ - if (g_instance.attr.attr_storage.enableIncrementalCheckpoint && (buf_state & BM_DIRTY)) { + if (ENABLE_INCRE_CKPT && (buf_state & BM_DIRTY)) { if (!XLogRecPtrIsInvalid(pg_atomic_read_u64(&buf->rec_lsn))) { remove_dirty_page_from_queue(buf); } else { @@ -2933,7 +2939,7 @@ void MarkBufferDirty(Buffer buffer) * Check the BufferDesc rec_lsn to determine whether the dirty page is in the dirty page queue. * If the rec_lsn is valid, dirty page is already in the queue, don't need to push it again. */ - if (g_instance.attr.attr_storage.enableIncrementalCheckpoint) { + if (ENABLE_INCRE_CKPT) { for (;;) { buf_state = old_buf_state | (BM_DIRTY | BM_JUST_DIRTIED); if (!XLogRecPtrIsInvalid(pg_atomic_read_u64(&buf_desc->rec_lsn))) { @@ -4121,10 +4127,10 @@ void CheckPointBuffers(int flags, bool doFullCheckpoint) * to data file. if IsBootstrapProcessingMode or pagewriter thread is not started also need call * BufferSync to flush dirty page. */ - if (!g_instance.attr.attr_storage.enableIncrementalCheckpoint || IsBootstrapProcessingMode() || + if (!ENABLE_INCRE_CKPT || IsBootstrapProcessingMode() || pg_atomic_read_u32(&g_instance.ckpt_cxt_ctl->current_page_writer_count) < 1) { BufferSync(flags); - } else if (g_instance.attr.attr_storage.enableIncrementalCheckpoint && doFullCheckpoint) { + } else if (ENABLE_INCRE_CKPT && doFullCheckpoint) { long waitCount = 0; /* * If the enable_incremental_checkpoint is on, but doFullCheckpoint is true (full checkpoint), @@ -4266,15 +4272,19 @@ void GetFlushBufferInfo(void *buf, RedoBufferInfo *bufferinfo, uint32 *buf_state char* PageDataEncryptForBuffer(Page page, BufferDesc *bufdesc, bool is_segbuf) { char *bufToWrite = NULL; - TdeInfo *tde_info = NULL; + TdeInfo tde_info = {0}; + if (bufdesc->encrypt) { - tde_info = TDE::TDEBufferCache::get_instance().search_cache(bufdesc->tag.rnode); - if (tde_info == NULL) { - ereport(ERROR, (errmodule(MOD_SEC_TDE), errcode(ERRCODE_UNEXPECTED_NULL_VALUE), - errmsg("page buffer get TDE buffer cache entry failed"), errdetail("N/A"), - errcause("TDE cache miss this key"), erraction("check cache status"))); + TDE::TDEBufferCache::get_instance().search_cache(bufdesc->tag.rnode, &tde_info); + if (strlen(tde_info.dek_cipher) == 0) { + ereport(ERROR, (errmodule(MOD_SEC_TDE), errcode(ERRCODE_UNEXPECTED_NULL_VALUE), + errmsg("page buffer get TDE buffer cache entry failed, RelFileNode is %u/%u/%u", + bufdesc->tag.rnode.spcNode, bufdesc->tag.rnode.dbNode, bufdesc->tag.rnode.relNode), + errdetail("N/A"), + errcause("TDE cache miss this key"), + erraction("check cache status"))); } - bufToWrite = PageDataEncryptIfNeed(page, tde_info, true, is_segbuf); + bufToWrite = PageDataEncryptIfNeed(page, &tde_info, true, is_segbuf); } else { bufToWrite = (char*)page; } @@ -4632,6 +4642,7 @@ void DropRelFileNodeShareBuffers(RelFileNode node, ForkNumber forkNum, BlockNumb UnlockBufHdr(buf_desc, buf_state); } } + /* * DropRelFileNodeBuffers - This function removes from the buffer pool all the * pages of the specified relation fork that have block numbers >= firstDelBlock. @@ -4749,8 +4760,66 @@ void DropRelFileNodeAllBuffersUsingHash(HTAB *relfilenode_hashtbl) UnlockBufHdr(buf_desc, buf_state); } } +} - gstrace_exit(GS_TRC_ID_DropRelFileNodeAllBuffers); +/* + * drop_rel_one_fork_buffers_use_hash - This function removes from the buffer pool + * all the pages of one fork of the relfilenode_hashtbl. + */ +void DropRelFileNodeOneForkAllBuffersUsingHash(HTAB *relfilenode_hashtbl) +{ + int i; + for (i = 0; i < g_instance.attr.attr_storage.NBuffers; i++) { + BufferDesc *buf_desc = GetBufferDescriptor(i); + uint32 buf_state; + bool found = false; + bool equal = false; + bool find_dir = false; + ForkRelFileNode rd_node_snapshot; + + /* + * As in DropRelFileNodeBuffers, an unlocked precheck should be safe + * and saves some cycles. + */ + rd_node_snapshot.rnode = buf_desc->tag.rnode; + rd_node_snapshot.forkNum = buf_desc->tag.forkNum; + + if (IsBucketFileNode(rd_node_snapshot.rnode)) { + /* bucket buffer */ + ForkRelFileNode rd_node_bucketdir = rd_node_snapshot; + rd_node_bucketdir.rnode.bucketNode = SegmentBktId; + hash_search(relfilenode_hashtbl, &(rd_node_bucketdir), HASH_FIND, &found); + find_dir = found; + + if (!find_dir) { + hash_search(relfilenode_hashtbl, &(rd_node_snapshot), HASH_FIND, &found); + } + } else { + /* no bucket buffer */ + hash_search(relfilenode_hashtbl, &rd_node_snapshot, HASH_FIND, &found); + } + + if (!found) { + continue; + } + + buf_state = LockBufHdr(buf_desc); + + if (find_dir) { + // matching the bucket dir + equal = RelFileNodeRelEquals(buf_desc->tag.rnode, rd_node_snapshot.rnode) && + buf_desc->tag.forkNum == rd_node_snapshot.forkNum; + } else { + equal = RelFileNodeEquals(buf_desc->tag.rnode, rd_node_snapshot.rnode) && + buf_desc->tag.forkNum == rd_node_snapshot.forkNum; + } + + if (equal == true) { + InvalidateBuffer(buf_desc); /* releases spinlock */ + } else { + UnlockBufHdr(buf_desc, buf_state); + } + } } static FORCE_INLINE int compare_rnode_func(const void *left, const void *right) @@ -5206,7 +5275,7 @@ void MarkBufferDirtyHint(Buffer buffer, bool buffer_std) * The incremental checkpoint is protected by the doublewriter, the * half-write problem does not occur. */ - if (!g_instance.attr.attr_storage.enableIncrementalCheckpoint && XLogHintBitIsNeeded() && + if (!ENABLE_INCRE_CKPT && XLogHintBitIsNeeded() && (pg_atomic_read_u32(&buf_desc->state) & BM_PERMANENT)) { /* * If we're in recovery we cannot dirty a page because of a hint. @@ -5286,7 +5355,7 @@ void MarkBufferDirtyHint(Buffer buffer, bool buffer_std) * Check the BufferDesc rec_lsn to determine whether the dirty page is in the dirty page queue. * If the rec_lsn is valid, dirty page is already in the queue, don't need to push it again. */ - if (g_instance.attr.attr_storage.enableIncrementalCheckpoint) { + if (ENABLE_INCRE_CKPT) { for (;;) { buf_state = old_buf_state | (BM_DIRTY | BM_JUST_DIRTIED); if (!XLogRecPtrIsInvalid(pg_atomic_read_u64(&buf_desc->rec_lsn))) { @@ -5854,7 +5923,7 @@ static void TerminateBufferIO_common(BufferDesc *buf, bool clear_dirty, uint32 s buf_state &= ~(BM_IO_IN_PROGRESS | BM_IO_ERROR); if (clear_dirty) { - if (g_instance.attr.attr_storage.enableIncrementalCheckpoint) { + if (ENABLE_INCRE_CKPT) { if (!XLogRecPtrIsInvalid(pg_atomic_read_u64(&buf->rec_lsn))) { remove_dirty_page_from_queue(buf); } else { @@ -6020,7 +6089,6 @@ void shared_buffer_write_error_callback(void *arg) if (edata->elevel >= ERROR) { reset_dw_pos_flag(); - clean_buf_need_flush_flag((BufferDesc*)buf_desc); } /* Buffer is pinned, so we can read the tag without locking the spinlock */ @@ -6409,69 +6477,6 @@ retry: } } -void clean_buf_need_flush_flag(BufferDesc *buf_desc) -{ - uint32 old_buf_state; - uint32 buf_state; - - old_buf_state = pg_atomic_read_u32(&buf_desc->state); - for (;;) { - if (old_buf_state & BM_LOCKED) { - old_buf_state = WaitBufHdrUnlocked(buf_desc); - } - buf_state = old_buf_state; - buf_state &= ~BM_CHECKPOINT_NEEDED; - - if (pg_atomic_compare_exchange_u32(&buf_desc->state, &old_buf_state, buf_state)) { - break; - } - } - - return; -} - -/** - * @Description: pagewriter thread flush dirty pages to data file. - * @in number of pagewriter need flush dirty page. - * @return number of dirty pages actually flushed - */ -void ckpt_flush_dirty_page(int thread_id, WritebackContext wb_context) -{ - uint32 i; - uint32 actual_written = 0; - int buf_id; - BufferDesc* buf_desc = NULL; - uint32 buf_state; - - for (i = g_instance.ckpt_cxt_ctl->page_writer_procs.writer_proc[thread_id].start_loc; - i <= g_instance.ckpt_cxt_ctl->page_writer_procs.writer_proc[thread_id].end_loc; i++) { - buf_id = g_instance.ckpt_cxt_ctl->CkptBufferIds[i].buf_id; - if (buf_id == DW_INVALID_BUFFER_ID) { - continue; - } - - buf_desc = GetBufferDescriptor(buf_id); - buf_state = LockBufHdr(buf_desc); - if ((buf_state & BM_CHECKPOINT_NEEDED) && (buf_state & BM_DIRTY)) { - UnlockBufHdr(buf_desc, buf_state); - uint32 ret = SyncOneBuffer(buf_id, false, &wb_context, true); - if (ret & BUF_WRITTEN) { - actual_written++; - } else { - clean_buf_need_flush_flag(buf_desc); - } - } else { - buf_state &= (~BM_CHECKPOINT_NEEDED); - UnlockBufHdr(buf_desc, buf_state); - } - } - - g_instance.ckpt_cxt_ctl->page_writer_procs.writer_proc[thread_id].need_flush = false; - g_instance.ckpt_cxt_ctl->page_writer_procs.writer_proc[thread_id].actual_flush_num = actual_written; - (void)pg_atomic_fetch_sub_u32(&g_instance.ckpt_cxt_ctl->page_writer_procs.running_num, 1); - smgrcloseall(); -} - /* * ForgetBuffer -- drop a buffer from shared buffers * @@ -6528,44 +6533,51 @@ void ForgetBuffer(RelFileNode rnode, ForkNumber forkNum, BlockNumber blockNum) } } -void TdeTableEncryptionInsert(Relation reln) +bool InsertTdeInfoToCache(RelFileNode rnode, TdeInfo *tde_info) { bool result = false; - TdeInfo *tde_info = NULL; - tde_info = (TdeInfo*)palloc0(sizeof(TdeInfo)); - reln->rd_smgr->encrypt = true; - GetTdeInfoFromRel(reln, tde_info); - /* insert TDE buffer cache */ - if (TDE::TDEBufferCache::get_instance().empty()) { - TDE::TDEBufferCache::get_instance().init(); - } - result = TDE::TDEBufferCache::get_instance().insert_cache(reln->rd_node, tde_info); - if (!result) { - pfree_ext(tde_info); - ereport(ERROR, (errmodule(MOD_SEC_TDE), errcode(ERRCODE_UNEXPECTED_NULL_VALUE), - errmsg("insert TDE buffer cache entry failed"), errdetail("N/A"), - errcause("initialize cache memory failed"), erraction("check cache out of memory or system cache"))); - } - pfree_ext(tde_info); -} - -bool StandbyTdeTableEncryptionInsert(TdeInfo* tde_info, RelFileNode rnode) -{ - bool result = false; - - if (tde_info->algo == 0) { + Assert(!TDE::TDEBufferCache::get_instance().empty()); + if (tde_info->algo == TDE_ALGO_NONE) { return false; } - /* insert TDE buffer cache */ - if (TDE::TDEBufferCache::get_instance().empty()) { - TDE::TDEBufferCache::get_instance().init(); - } + result = TDE::TDEBufferCache::get_instance().insert_cache(rnode, tde_info); - if (!result) { - ereport(ERROR, (errmodule(MOD_SEC_TDE), errcode(ERRCODE_UNEXPECTED_NULL_VALUE), - errmsg("insert TDE buffer cache entry failed"), errdetail("N/A"), - errcause("initialize cache memory failed"), - erraction("check cache out of memory or system cache"))); - } return result; } + +void RelationInsertTdeInfoToCache(Relation reln) +{ + bool result = false; + TdeInfo tde_info; + + GetTdeInfoFromRel(reln, &tde_info); + /* insert tde info to cache */ + result = InsertTdeInfoToCache(reln->rd_node, &tde_info); + if (!result) { + ereport(ERROR, (errmodule(MOD_SEC_TDE), errcode(ERRCODE_UNEXPECTED_NULL_VALUE), + errmsg("insert tde info to cache failed, relation RelFileNode is %u/%u/%u", + reln->rd_node.spcNode, reln->rd_node.dbNode, reln->rd_node.relNode), + errdetail("N/A"), + errcause("initialize cache memory failed"), + erraction("check cache out of memory or system cache"))); + } +} + +void PartitionInsertTdeInfoToCache(Relation reln, Partition p) +{ + bool result = false; + TdeInfo tde_info; + + GetTdeInfoFromRel(reln, &tde_info); + /* insert tde info to cache */ + result = InsertTdeInfoToCache(p->pd_node, &tde_info); + if (!result) { + ereport(ERROR, (errmodule(MOD_SEC_TDE), errcode(ERRCODE_UNEXPECTED_NULL_VALUE), + errmsg("insert tde info to cache failed, partition RelFileNode is %u/%u/%u", + p->pd_node.spcNode, p->pd_node.dbNode, p->pd_node.relNode), + errdetail("N/A"), + errcause("initialize cache memory failed"), + erraction("check cache out of memory or system cache"))); + } +} + diff --git a/src/gausskernel/storage/buffer/freelist.cpp b/src/gausskernel/storage/buffer/freelist.cpp index 5bd59f087..f8c0e7ae1 100644 --- a/src/gausskernel/storage/buffer/freelist.cpp +++ b/src/gausskernel/storage/buffer/freelist.cpp @@ -232,27 +232,27 @@ BufferDesc* StrategyGetBuffer(BufferAccessStrategy strategy, uint32* buf_state) (void)pg_atomic_fetch_add_u32(&t_thrd.storage_cxt.StrategyControl->numBufferAllocs, 1); /* Check the Candidate list */ - if (g_instance.attr.attr_storage.enableIncrementalCheckpoint && - g_instance.bgwriter_cxt.curr_bgwriter_num > 0) { - if (u_sess->attr.attr_storage.enable_candidate_buf_usage_count) { - if (pg_atomic_read_u32(&g_instance.bgwriter_cxt.curr_bgwriter_num) > 0) { - uint64 maxSleep = 10000L; - uint64 minSleep = 1000L; - uint64 sleepTime = minSleep; - while (true) { - buf = get_buf_from_candidate_list(strategy, buf_state); - if (buf != NULL) { - (void)pg_atomic_fetch_add_u64(&g_instance.bgwriter_cxt.get_buf_num_candidate_list, 1); - return buf; - } - pg_usleep(sleepTime); - sleepTime = Min(sleepTime * 2, maxSleep); + if (ENABLE_INCRE_CKPT && pg_atomic_read_u32(&g_instance.ckpt_cxt_ctl->current_page_writer_count) > 1) { + if (NEED_CONSIDER_USECOUNT) { + const uint32 MAX_RETRY_SCAN_CANDIDATE_LISTS = 5; + const int MILLISECOND_TO_MICROSECOND = 1000; + uint64 maxSleep = u_sess->attr.attr_storage.BgWriterDelay * MILLISECOND_TO_MICROSECOND; + uint64 sleepTime = 1000L; + uint32 retry_times = 0; + while (retry_times < MAX_RETRY_SCAN_CANDIDATE_LISTS) { + buf = get_buf_from_candidate_list(strategy, buf_state); + if (buf != NULL) { + (void)pg_atomic_fetch_add_u64(&g_instance.ckpt_cxt_ctl->get_buf_num_candidate_list, 1); + return buf; } + pg_usleep(sleepTime); + sleepTime = Min(sleepTime * 2, maxSleep); + retry_times++; } } else { buf = get_buf_from_candidate_list(strategy, buf_state); if (buf != NULL) { - (void)pg_atomic_fetch_add_u64(&g_instance.bgwriter_cxt.get_buf_num_candidate_list, 1); + (void)pg_atomic_fetch_add_u64(&g_instance.ckpt_cxt_ctl->get_buf_num_candidate_list, 1); return buf; } } @@ -282,14 +282,13 @@ retry: } retry_lock_status.retry_times = 0; - if (BUF_STATE_GET_REFCOUNT(local_buf_state) == 0 && - !(local_buf_state & BM_IS_META) && + if (BUF_STATE_GET_REFCOUNT(local_buf_state) == 0 && !(local_buf_state & BM_IS_META) && (backend_can_flush_dirty_page() || !(local_buf_state & BM_DIRTY))) { /* Found a usable buffer */ if (strategy != NULL) AddBufferToRing(strategy, buf); *buf_state = local_buf_state; - (void)pg_atomic_fetch_add_u64(&g_instance.bgwriter_cxt.get_buf_num_clock_sweep, 1); + (void)pg_atomic_fetch_add_u64(&g_instance.ckpt_cxt_ctl->get_buf_num_clock_sweep, 1); return buf; } else if (--try_counter == 0) { /* @@ -691,19 +690,30 @@ void StrategyGetRingPrefetchQuantityAndTrigger(BufferAccessStrategy strategy, in } } +void wakeup_pagewriter_thread() +{ + PageWriterProc *pgwr = &g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc[0]; + /* The current candidate list is empty, wake up the buffer writer. */ + if (pgwr->proc != NULL) { + SetLatch(&pgwr->proc->procLatch); + } + return; +} + const int CANDIDATE_DIRTY_LIST_LEN = 100; const float HIGH_WATER = 0.75; static BufferDesc* get_buf_from_candidate_list(BufferAccessStrategy strategy, uint32* buf_state) { BufferDesc* buf = NULL; - int bgwriter_num = g_instance.bgwriter_cxt.bgwriter_num; uint32 local_buf_state; int buf_id = 0; - int list_num = bgwriter_num - 1; + int list_num = g_instance.ckpt_cxt_ctl->pgwr_procs.sub_num; int list_id = 0; volatile PgBackendStatus* beentry = t_thrd.shemem_ptr_cxt.MyBEEntry; Buffer *candidate_dirty_list = NULL; int dirty_list_num = 0; + bool enable_available = false; + bool need_push_dirst_list = false; bool need_scan_dirty = (g_instance.ckpt_cxt_ctl->actual_dirty_page_num / (float)(g_instance.attr.attr_storage.NBuffers) > HIGH_WATER) && backend_can_flush_dirty_page(); @@ -712,60 +722,53 @@ static BufferDesc* get_buf_from_candidate_list(BufferAccessStrategy strategy, ui candidate_dirty_list = (Buffer*)palloc0(sizeof(Buffer) * CANDIDATE_DIRTY_LIST_LEN); } - if (beentry->st_tid > 0) { - list_id = (t_thrd.shemem_ptr_cxt.MyBEEntry->st_tid) % list_num; - } else { - list_id = (t_thrd.shemem_ptr_cxt.MyBEEntry->st_sessionid) % list_num; - } + list_id = beentry->st_tid > 0 ? (beentry->st_tid % list_num) : (beentry->st_sessionid % list_num); for (int i = 0; i < list_num; i++) { - int thread_id = (list_id + i) % list_num; - BgWriterProc *bgwriter = &g_instance.bgwriter_cxt.bgwriter_procs[thread_id]; - + /* the pagewriter sub thread store normal buffer pool, sub thread starts from 1 */ + int thread_id = (list_id + i) % list_num + 1; + Assert(thread_id > 0 && thread_id <= list_num); while (candidate_buf_pop(&buf_id, thread_id)) { Assert(buf_id < SegmentBufferStartID); buf = GetBufferDescriptor(buf_id); local_buf_state = LockBufHdr(buf); - if (g_instance.bgwriter_cxt.candidate_free_map[buf_id]) { - g_instance.bgwriter_cxt.candidate_free_map[buf_id] = false; - bool empty_usage_count = (!u_sess->attr.attr_storage.enable_candidate_buf_usage_count || - BUF_STATE_GET_USAGECOUNT(local_buf_state) == 0); - bool available_buffer = BUF_STATE_GET_REFCOUNT(local_buf_state) == 0 && empty_usage_count - && !(local_buf_state & BM_IS_META) - && !(local_buf_state & BM_DIRTY); - bool add_to_candidate_dirty_list = (need_scan_dirty && !(local_buf_state & BM_IS_META) && - BUF_STATE_GET_REFCOUNT(local_buf_state) == 0 && dirty_list_num < CANDIDATE_DIRTY_LIST_LEN); - if (available_buffer) { - if (strategy != NULL) { - AddBufferToRing(strategy, buf); + if (g_instance.ckpt_cxt_ctl->candidate_free_map[buf_id]) { + g_instance.ckpt_cxt_ctl->candidate_free_map[buf_id] = false; + enable_available = BUF_STATE_GET_REFCOUNT(local_buf_state) == 0 && !(local_buf_state & BM_IS_META); + need_push_dirst_list = need_scan_dirty && dirty_list_num < CANDIDATE_DIRTY_LIST_LEN && + free_space_enough(buf_id); + if (enable_available) { + if (NEED_CONSIDER_USECOUNT && BUF_STATE_GET_USAGECOUNT(local_buf_state) != 0) { + local_buf_state -= BUF_USAGECOUNT_ONE; + } else if (!(local_buf_state & BM_DIRTY)) { + if (strategy != NULL) { + AddBufferToRing(strategy, buf); + } + *buf_state = local_buf_state; + if (candidate_dirty_list != NULL) { + pfree(candidate_dirty_list); + } + return buf; + } else if (need_push_dirst_list) { + candidate_dirty_list[dirty_list_num++] = buf_id; } - *buf_state = local_buf_state; - if (candidate_dirty_list != NULL) { - pfree(candidate_dirty_list); - } - return buf; - } else if (add_to_candidate_dirty_list) { - candidate_dirty_list[dirty_list_num++] = buf_id; } } - UnlockBufHdr(buf, local_buf_state); } - - /* The current candidate list is empty, wake up the buffer writer. */ - if (bgwriter->proc != NULL) { - SetLatch(&bgwriter->proc->procLatch); - } } + wakeup_pagewriter_thread(); + if (need_scan_dirty) { for (int i = 0; i < dirty_list_num; i++) { buf_id = candidate_dirty_list[i]; buf = GetBufferDescriptor(buf_id); local_buf_state = LockBufHdr(buf); - if (BUF_STATE_GET_REFCOUNT(local_buf_state) == 0 - && !(local_buf_state & BM_IS_META)) { + enable_available = (BUF_STATE_GET_REFCOUNT(local_buf_state) == 0) && !(local_buf_state & BM_IS_META) + && free_space_enough(buf_id); + if (enable_available) { if (strategy != NULL) { AddBufferToRing(strategy, buf); } @@ -773,7 +776,6 @@ static BufferDesc* get_buf_from_candidate_list(BufferAccessStrategy strategy, ui pfree(candidate_dirty_list); return buf; } - UnlockBufHdr(buf, local_buf_state); } } diff --git a/src/gausskernel/storage/buffer/localbuf.cpp b/src/gausskernel/storage/buffer/localbuf.cpp index 421191afa..c14078840 100644 --- a/src/gausskernel/storage/buffer/localbuf.cpp +++ b/src/gausskernel/storage/buffer/localbuf.cpp @@ -267,6 +267,7 @@ BufferDesc *LocalBufferAlloc(SMgrRelation smgr, ForkNumber forkNum, BlockNumber * it's all ours now. */ buf_desc->tag = new_tag; + buf_desc->encrypt = smgr->encrypt ? true : false; /* set tde flag */ buf_state &= ~(BM_VALID | BM_DIRTY | BM_JUST_DIRTIED | BM_IO_ERROR); buf_state |= BM_TAG_VALID; buf_state &= ~BUF_USAGECOUNT_MASK; diff --git a/src/gausskernel/storage/bulkload/dist_fdw.cpp b/src/gausskernel/storage/bulkload/dist_fdw.cpp index 80a6ecd58..b315a1d24 100644 --- a/src/gausskernel/storage/bulkload/dist_fdw.cpp +++ b/src/gausskernel/storage/bulkload/dist_fdw.cpp @@ -5,6 +5,7 @@ * * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. * Copyright (c) 2010-2011, PostgreSQL Global Development Group + * Portions Copyright (c) 2021, openGauss Contributors * * IDENTIFICATION * src/gausskernel/storage/bulkload/dist_fdw.cpp @@ -1488,6 +1489,7 @@ void InitDistImport(DistImportExecutionState *importstate, Relation rel, const c /* Set up variables to avoid per-attribute overhead. */ initStringInfo(&importstate->attribute_buf); + initStringInfo(&importstate->sequence_buf); initStringInfo(&importstate->line_buf); importstate->line_buf_converted = false; importstate->raw_buf = (char *)palloc(RAW_BUF_SIZE + 1); diff --git a/src/gausskernel/storage/bulkload/importerror.cpp b/src/gausskernel/storage/bulkload/importerror.cpp index 5dfc1195a..4df95f410 100644 --- a/src/gausskernel/storage/bulkload/importerror.cpp +++ b/src/gausskernel/storage/bulkload/importerror.cpp @@ -1,5 +1,6 @@ /* * Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors * * openGauss is licensed under Mulan PSL v2. * You can use this software according to the terms and conditions of the Mulan PSL v2. @@ -513,3 +514,54 @@ void CopyErrorLogger::FormError(CopyState cstate, Datum begintime, CopyError *ie pfree(relname); } + +void CopyErrorLogger::FormWhenLog(CopyState cstate, Datum begintime, CopyError *ierror) +{ + const char *detail = NULL; + char *relname = NULL; + errno_t rc; + char *source = NULL; + + Assert(ierror != NULL); + detail = "COPY_WHEN_ROWS"; + ierror->Reset(); + + ierror->m_desc = m_errDesc; + + relname = (char *)palloc(MAX_NAME_LEN); + rc = snprintf_s(relname, MAX_NAME_LEN, MAX_NAME_LEN - 1, "%s.%s", cstate->logger->m_namespace, + RelationGetRelationName(cstate->rel)); + securec_check_ss(rc, "\0", "\0"); + + ierror->m_values[CopyError::RelNameIdx] = PointerGetDatum(cstring_to_text_with_len(relname, strlen(relname))); + ierror->m_values[CopyError::StartTimeIdx] = begintime; + + if (cstate->filename) + source = cstate->filename; + else { + Assert(cstate->copy_dest == COPY_NEW_FE); + source = "STDIN"; + } + + ierror->m_values[CopyError::FileNameIdx] = PointerGetDatum(cstring_to_text_with_len(source, strlen(source))); + ierror->m_values[CopyError::LineNOIdx] = cstate->cur_lineno; + + /* save the raw data here */ + if (cstate->line_buf.len > 0 && cstate->logErrorsData) { + char *rawDataVal = NULL; + rawDataVal = limit_printout_length(cstate->line_buf.data); + ierror->m_values[CopyError::RawDataIdx] = + PointerGetDatum(cstring_to_text_with_len(rawDataVal, strlen(rawDataVal))); + pfree(rawDataVal); + } else { + ierror->m_isNull[CopyError::RawDataIdx] = true; + } + + if (detail != NULL) { + ierror->m_values[CopyError::DetailIdx] = PointerGetDatum(cstring_to_text_with_len(detail, strlen(detail))); + } else { + ierror->m_isNull[CopyError::DetailIdx] = true; + } + + pfree(relname); +} diff --git a/src/gausskernel/storage/bulkload/vecforeignroutine.cpp b/src/gausskernel/storage/bulkload/vecforeignroutine.cpp index defdad8d3..f9a054a23 100644 --- a/src/gausskernel/storage/bulkload/vecforeignroutine.cpp +++ b/src/gausskernel/storage/bulkload/vecforeignroutine.cpp @@ -1,5 +1,6 @@ /* * Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors * * openGauss is licensed under Mulan PSL v2. * You can use this software according to the terms and conditions of the Mulan PSL v2. @@ -74,6 +75,7 @@ bool TrySaveImportError(DistImportExecutionState *importState, ForeignScanState bool TrySaveImportError(CopyState cstate) { + cstate->errorrows++; if ((ERRCODE_TO_CATEGORY((unsigned int)geterrcode()) == ERRCODE_DATA_EXCEPTION) && DoAcceptOneError(cstate)) { FormAndSaveImportError(cstate, cstate->err_table, cstate->copy_beginTime, cstate->logger); // clear error state diff --git a/src/gausskernel/storage/cstore/cstore_am.cpp b/src/gausskernel/storage/cstore/cstore_am.cpp index 1368cb52e..6a4b0034c 100644 --- a/src/gausskernel/storage/cstore/cstore_am.cpp +++ b/src/gausskernel/storage/cstore/cstore_am.cpp @@ -46,6 +46,7 @@ #include "utils/numeric_gs.h" #include "storage/cucache_mgr.h" #include "storage/cstore/cstore_compress.h" +#include "storage/smgr/smgr.h" #include "access/heapam.h" #include "access/sysattr.h" #include "executor/instrument.h" diff --git a/src/gausskernel/storage/cstore/cstore_update.cpp b/src/gausskernel/storage/cstore/cstore_update.cpp index 92e1668a3..0312ad6ee 100644 --- a/src/gausskernel/storage/cstore/cstore_update.cpp +++ b/src/gausskernel/storage/cstore/cstore_update.cpp @@ -1,5 +1,6 @@ /* * Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2021, openGauss Contributors * * openGauss is licensed under Mulan PSL v2. * You can use this software according to the terms and conditions of the Mulan PSL v2. @@ -25,6 +26,7 @@ #include "knl/knl_variable.h" #include "access/cstore_update.h" +#include "catalog/pg_partition_fn.h" int CStoreUpdate::BATCHROW_TIMES = 3; diff --git a/src/gausskernel/storage/dorado_operation/CMakeLists.txt b/src/gausskernel/storage/dorado_operation/CMakeLists.txt new file mode 100644 index 000000000..fd15c572d --- /dev/null +++ b/src/gausskernel/storage/dorado_operation/CMakeLists.txt @@ -0,0 +1,23 @@ +#This is the main CMAKE for build bin. +AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR} TGT_dorado_operation_SRC) + +set(TGT_dorado_operation_INC + ${PROJECT_OPENGS_DIR}/contrib/log_fdw + ${PROJECT_TRUNK_DIR}/distribute/bin/gds + ${PROJECT_SRC_DIR}/include/libcomm + ${PROJECT_SRC_DIR}/include + ${PROJECT_SRC_DIR}/lib/gstrace + ${LZ4_INCLUDE_PATH} + ${LIBCGROUP_INCLUDE_PATH} + ${LIBORC_INCLUDE_PATH} + ${EVENT_INCLUDE_PATH} + ${PROTOBUF_INCLUDE_PATH} + ${ZLIB_INCLUDE_PATH} + ${LIBOPENSSL_INCLUDE_PATH} +) + +set(dorado_operation_DEF_OPTIONS ${MACRO_OPTIONS}) +set(dorado_operation_COMPILE_OPTIONS ${OPTIMIZE_OPTIONS} ${OS_OPTIONS} ${PROTECT_OPTIONS} ${WARNING_OPTIONS} ${BIN_SECURE_OPTIONS} ${CHECK_OPTIONS}) +set(dorado_operation_LINK_OPTIONS ${BIN_LINK_OPTIONS}) +add_static_objtarget(gausskernel_storage_dorado_operation TGT_dorado_operation_SRC TGT_dorado_operation_INC "${dorado_operation_DEF_OPTIONS}" "${dorado_operation_COMPILE_OPTIONS}" "${dorado_operation_LINK_OPTIONS}") + diff --git a/src/gausskernel/storage/dorado_operation/Makefile b/src/gausskernel/storage/dorado_operation/Makefile new file mode 100644 index 000000000..947c23eea --- /dev/null +++ b/src/gausskernel/storage/dorado_operation/Makefile @@ -0,0 +1,37 @@ +# +# Copyright (c) 2020 Huawei Technologies Co.,Ltd. +# +# openGauss is licensed under Mulan PSL v2. +# You can use this software according to the terms and conditions of the Mulan PSL v2. +# You may obtain a copy of Mulan PSL v2 at: +# +# http://license.coscl.org.cn/MulanPSL2 +# +# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, +# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, +# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. +# See the Mulan PSL v2 for more details. +# --------------------------------------------------------------------------------------- +# +# Makefile +# Makefile for storage/dorado_operation +# +# IDENTIFICATION +# src/gausskernel/storage/dorado_operation/Makefile +# +# --------------------------------------------------------------------------------------- + +subdir = src/gausskernel/storage/dorado_operation +top_builddir = ../../../.. +include $(top_builddir)/src/Makefile.global + +ifneq "$(MAKECMDGOALS)" "clean" + ifneq "$(MAKECMDGOALS)" "distclean" + ifneq "$(shell which g++ |grep hutaf_llt |wc -l)" "1" + -include $(DEPEND) + endif + endif +endif +OBJS = dorado_fd.o + +include $(top_srcdir)/src/gausskernel/common.mk diff --git a/src/gausskernel/storage/dorado_operation/dorado_fd.cpp b/src/gausskernel/storage/dorado_operation/dorado_fd.cpp new file mode 100644 index 000000000..c3d3f39cc --- /dev/null +++ b/src/gausskernel/storage/dorado_operation/dorado_fd.cpp @@ -0,0 +1,227 @@ +/* + * Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * + * openGauss is licensed under Mulan PSL v2. + * You can use this software according to the terms and conditions of the Mulan PSL v2. + * You may obtain a copy of Mulan PSL v2 at: + * + * http://license.coscl.org.cn/MulanPSL2 + * + * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, + * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, + * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + * See the Mulan PSL v2 for more details. + * ------------------------------------------------------------------------- + * + * dorado_fd.cpp + * read/write dorado starage operation + * + * IDENTIFICATION + * src/gausskernel/storage/dorado_operation/dorado_fd.cpp + * + * ------------------------------------------------------------------------- + */ +#include "postgres.h" +#include "knl/knl_variable.h" +#include "access/xlog.h" +#include "storage/dorado_operation/dorado_fd.h" + +const uint32 DORADO_CTL_WRITE_SIZE = 512; +const uint32 DORADO_XLOG_START_POS = XLogSegSize; + +void DoradoWriteCtlInfo(const ShareStorageXLogCtl *ctlInfo); +void DoradoReadCtlInfo(ShareStorageXLogCtl *ctlInfo); +int DoradoWriteXLog(XLogRecPtr startLsn, char *buf, int writeLen); +int DoradoReadXLog(XLogRecPtr startLsn, char *buf, int expectReadLen); +void DoradoFsync(); + +static const ShareStorageOperateIf doradoOperateIf = { + DoradoReadCtlInfo, DoradoWriteCtlInfo, DoradoReadXLog, DoradoWriteXLog, DoradoFsync, +}; + +static inline uint64 GetXlogPos(uint64 expect) +{ + return (expect + DORADO_XLOG_START_POS); +} + +void InitDoradoStorage(char *filePath, uint64 fileSize) +{ + Assert(!g_instance.xlog_cxt.shareStorageopCtl.isInit); + g_instance.xlog_cxt.shareStorageopCtl.xlogFilePath = filePath; + g_instance.xlog_cxt.shareStorageopCtl.xlogFileSize = fileSize; + g_instance.xlog_cxt.shareStorageopCtl.blkSize = MEMORY_ALIGNED_SIZE; + g_instance.xlog_cxt.shareStorageopCtl.opereateIf = &doradoOperateIf; + + canonicalize_path(filePath); + g_instance.xlog_cxt.shareStorageopCtl.fd = open(filePath, O_RDWR | PG_BINARY | O_DIRECT, S_IRUSR | S_IWUSR); + if (g_instance.xlog_cxt.shareStorageopCtl.fd < 0) { + ereport(PANIC, (errcode_for_file_access(), errmsg("could not open xlog file \"%s\" : %m", filePath))); + } + g_instance.xlog_cxt.shareStorageopCtl.isInit = true; +} + +void DoradoWriteCtlInfo(const ShareStorageXLogCtl *ctlInfo) +{ + Assert(g_instance.xlog_cxt.shareStorageopCtl.fd > 0); + + if (!IS_TYPE_ALIGINED(g_instance.xlog_cxt.shareStorageopCtl.blkSize, ctlInfo)) { + ereport(PANIC, (errcode_for_file_access(), errmsg("dorado write control info ptr(%p) is not match,mask is %X", + ctlInfo, g_instance.xlog_cxt.shareStorageopCtl.blkSize))); + } + if (ctlInfo->magic != SHARE_STORAGE_CTL_MAGIC || ctlInfo->checkNumber != SHARE_STORAGE_CTL_CHCK_NUMBER) { + ereport(FATAL, (errmsg("ShareStorageXLogCtl info in memory maybe damaged"))); + } + pg_crc32c crc = CalShareStorageCtlInfoCrc(ctlInfo); + if (!EQ_CRC32C(crc, ctlInfo->crc)) { + ereport(FATAL, (errmsg("crc check fail for ShareStorageXLogCtl in DoradoWriteCtlInfo"))); + } + + // write 512bytes + ssize_t actualBytes = pwrite(g_instance.xlog_cxt.shareStorageopCtl.fd, ctlInfo, DORADO_CTL_WRITE_SIZE, 0); + if (actualBytes != (ssize_t)DORADO_CTL_WRITE_SIZE) { + /* if write didn't set errno, assume no disk space */ + if (errno == 0) { + errno = ENOSPC; + } + + ereport(PANIC, + (errcode_for_file_access(), errmsg("could not write dorado ctl info length %lu, expect length %lu: %m", + (unsigned long)actualBytes, (unsigned long)DORADO_CTL_WRITE_SIZE))); + } +} + +void DoradoReadCtlInfo(ShareStorageXLogCtl *ctlInfo) +{ + Assert(g_instance.xlog_cxt.shareStorageopCtl.fd > 0); + if (!IS_TYPE_ALIGINED(g_instance.xlog_cxt.shareStorageopCtl.blkSize, ctlInfo)) { + ereport(PANIC, (errcode_for_file_access(), errmsg("dorado read control info ptr(%p) is not match,mask is %X", + ctlInfo, g_instance.xlog_cxt.shareStorageopCtl.blkSize))); + } + + ssize_t actualBytes = pread(g_instance.xlog_cxt.shareStorageopCtl.fd, ctlInfo, DORADO_CTL_WRITE_SIZE, 0); + if (actualBytes != (ssize_t)DORADO_CTL_WRITE_SIZE) { + ereport(PANIC, (errcode_for_file_access(), errmsg("could not read dorado ctl info: %m"))); + } + + if (ctlInfo->magic != SHARE_STORAGE_CTL_MAGIC || ctlInfo->checkNumber != SHARE_STORAGE_CTL_CHCK_NUMBER) { + ereport(FATAL, (errmsg("dorado ctl info maybe damaged"))); + } + + pg_crc32c crc = CalShareStorageCtlInfoCrc(ctlInfo); + if (!EQ_CRC32C(crc, ctlInfo->crc)) { + ereport(FATAL, (errmsg("crc check fail for ShareStorageXLogCtl in DoradoReadCtlInfo"))); + } +} + +int DoradoReadXLog(XLogRecPtr startLsn, char *buf, int expectReadLen) +{ + Assert(g_instance.xlog_cxt.shareStorageopCtl.fd > 0); + if (!IS_TYPE_ALIGINED(g_instance.xlog_cxt.shareStorageopCtl.blkSize, buf)) { + ereport(PANIC, (errcode_for_file_access(), errmsg("dorado read xlog ptr(%p) is not match,mask is %X", buf, + g_instance.xlog_cxt.shareStorageopCtl.blkSize))); + } + + uint64 startPos = startLsn % g_instance.xlog_cxt.shareStorageopCtl.xlogFileSize; + if ((startPos + expectReadLen) <= g_instance.xlog_cxt.shareStorageopCtl.xlogFileSize) { + ssize_t actualBytes = pread(g_instance.xlog_cxt.shareStorageopCtl.fd, buf, expectReadLen, GetXlogPos(startPos)); + if (actualBytes < 0) { + uint32 shiftSize = 32; + ereport(PANIC, (errcode_for_file_access(), errmsg("read xlog(start:%X/%X, pos:%lu len:%d) failed : %m", + static_cast(startLsn >> shiftSize), + static_cast(startLsn), startPos, expectReadLen))); + } + + return static_cast(actualBytes); + } else { + int firstReadSize = g_instance.xlog_cxt.shareStorageopCtl.xlogFileSize - startPos; + int secondReadSize = expectReadLen - firstReadSize; + ssize_t actualBytes = pread(g_instance.xlog_cxt.shareStorageopCtl.fd, buf, firstReadSize, GetXlogPos(startPos)); + if (actualBytes < 0) { + uint32 shiftSize = 32; + ereport(PANIC, (errcode_for_file_access(), errmsg("first read xlog(start:%X/%X, pos:%lu len:%d) failed:%m", + static_cast(startLsn >> shiftSize), + static_cast(startLsn), startPos, firstReadSize))); + } + + if (actualBytes < firstReadSize) { + return static_cast(actualBytes); + } + + actualBytes = pread(t_thrd.xlog_cxt.openLogFile, buf + firstReadSize, secondReadSize, GetXlogPos(0)); + if (actualBytes < 0) { + uint32 shiftSize = 32; + XLogRecPtr nextStartLsn = startLsn + firstReadSize; + ereport(PANIC, (errcode_for_file_access(), errmsg("second read xlog(start:%X/%X, pos:0 len:%d)failed :%m", + static_cast(nextStartLsn >> shiftSize), + static_cast(nextStartLsn), secondReadSize))); + } + + return static_cast(actualBytes + firstReadSize); + } +} + +int DoradoWriteXLog(XLogRecPtr startLsn, char *buf, int writeLen) +{ + Assert(g_instance.xlog_cxt.shareStorageopCtl.fd > 0); + uint64 startPos = startLsn % g_instance.xlog_cxt.shareStorageopCtl.xlogFileSize; + + if (!IS_TYPE_ALIGINED(g_instance.xlog_cxt.shareStorageopCtl.blkSize, buf)) { + ereport(PANIC, (errcode_for_file_access(), errmsg("dorado write xlog ptr(%p) is not match,mask is %X", buf, + g_instance.xlog_cxt.shareStorageopCtl.blkSize))); + } + + if ((startPos + writeLen) <= g_instance.xlog_cxt.shareStorageopCtl.xlogFileSize) { + ssize_t actualBytes = pwrite(g_instance.xlog_cxt.shareStorageopCtl.fd, buf, writeLen, GetXlogPos(startPos)); + if (actualBytes != writeLen) { + if (errno == 0) { + errno = ENOSPC; + } + uint32 shiftSize = 32; + ereport(PANIC, + (errcode_for_file_access(), errmsg("could not write xlog at start:%X/%X offset %lu, length %d: %m", + static_cast(startLsn >> shiftSize), + static_cast(startLsn), startPos, writeLen))); + } + } else { + int firstWriteSize = g_instance.xlog_cxt.shareStorageopCtl.xlogFileSize - startPos; + int secondWriteSize = writeLen - firstWriteSize; + + ssize_t actualBytes = pwrite(g_instance.xlog_cxt.shareStorageopCtl.fd, buf, firstWriteSize, + GetXlogPos(startPos)); + if (actualBytes != firstWriteSize) { + if (errno == 0) { + errno = ENOSPC; + } + uint32 shiftSize = 32; + ereport(PANIC, + (errcode_for_file_access(), errmsg("could not write xlog at start:%X/%X offset %lu, length %d: %m", + static_cast(startLsn >> shiftSize), + static_cast(startLsn), startPos, firstWriteSize))); + } + + actualBytes = pwrite(g_instance.xlog_cxt.shareStorageopCtl.fd, buf + firstWriteSize, secondWriteSize, + GetXlogPos(0)); + if (actualBytes != secondWriteSize) { + if (errno == 0) { + errno = ENOSPC; + } + uint32 shiftSize = 32; + XLogRecPtr nextStartLsn = startLsn + firstWriteSize; + ereport(PANIC, + (errcode_for_file_access(), errmsg("could not write xlog at start:%X/%X offset 0, length %d: %m", + static_cast(nextStartLsn >> shiftSize), + static_cast(nextStartLsn), secondWriteSize))); + } + } + + return writeLen; +} + +void DoradoFsync() +{ + Assert(g_instance.xlog_cxt.shareStorageopCtl.fd > 0); + if (fsync(g_instance.xlog_cxt.shareStorageopCtl.fd) != 0) { + ereport(PANIC, (errcode_for_file_access(), errmsg("could not fsync dorado file %s: %m", + g_instance.xlog_cxt.shareStorageopCtl.xlogFilePath))); + } +} diff --git a/src/gausskernel/storage/file/fd.cpp b/src/gausskernel/storage/file/fd.cpp index 817a45787..5332dc17d 100644 --- a/src/gausskernel/storage/file/fd.cpp +++ b/src/gausskernel/storage/file/fd.cpp @@ -3963,7 +3963,7 @@ void SetupPageCompressMemoryMap(File file, RelFileNode node, const RelFileNodeFo } } - if (RecoveryInProgress()) { + if (t_thrd.xlog_cxt.InRecovery) { CheckAndRepairCompressAddress(map, chunk_size, map->algorithm, vfdP->fileName); } @@ -4001,4 +4001,4 @@ PageCompressHeader *GetPageCompressMemoryMap(File file, uint32 chunk_size) } return vfdP->pcmap; -} \ No newline at end of file +} diff --git a/src/gausskernel/storage/ipc/ipc.cpp b/src/gausskernel/storage/ipc/ipc.cpp index fd50f8b6c..6a451b8a6 100644 --- a/src/gausskernel/storage/ipc/ipc.cpp +++ b/src/gausskernel/storage/ipc/ipc.cpp @@ -11,6 +11,7 @@ * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. * Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -253,6 +254,10 @@ void proc_exit(int code) CleanupDfsHandlers(true); BgworkerListSyncQuit(); + + /* Clean up Allocated descs */ + FreeAllAllocatedDescs(); + /* Clean up everything that must be cleaned up */ proc_exit_prepare(code); @@ -489,15 +494,10 @@ void sess_exit_prepare(int code) (u_sess->ext_fdw_ctx[i].fdwExitFunc)(code, UInt32GetDatum(NULL)); } } - - if (u_sess->gtt_ctx.gtt_cleaner_exit_registered) { - pg_on_exit_callback func = u_sess->gtt_ctx.gtt_sess_exit; - (*func)(code, UInt32GetDatum(NULL)); - } - + for (; u_sess->on_sess_exit_index < on_sess_exit_size; u_sess->on_sess_exit_index++) (*on_sess_exit_list[u_sess->on_sess_exit_index])(code, UInt32GetDatum(NULL)); - + t_thrd.storage_cxt.on_proc_exit_index = 0; RESUME_INTERRUPTS(); gs_signal_recover_mask(old_sigset); @@ -649,7 +649,8 @@ void CloseClientSocket(knl_session_context* sess, bool closesock) if (sess->proc_cxt.MyProcPort != NULL && closesock) { /* if gs_sock is NULL, just clean gs_poll hash table. */ pfree_ext(sess->proc_cxt.MyProcPort->msgLog); - gs_close_gsocket(&(sess->proc_cxt.MyProcPort->gs_sock)); + gsocket* curGsock = &sess->proc_cxt.MyProcPort->gs_sock; + gs_close_gsocket(curGsock); } if (t_thrd.postmaster_cxt.KeepSocketOpenForStream == false && (sess->proc_cxt.MyProcPort != NULL) && sess->proc_cxt.MyProcPort->sock > 0) { diff --git a/src/gausskernel/storage/ipc/ipci.cpp b/src/gausskernel/storage/ipc/ipci.cpp index 4cd092ddd..4ec164324 100644 --- a/src/gausskernel/storage/ipc/ipci.cpp +++ b/src/gausskernel/storage/ipc/ipci.cpp @@ -42,6 +42,7 @@ #endif #include "postmaster/autovacuum.h" #include "postmaster/bgwriter.h" +#include "postmaster/bgworker.h" #include "postmaster/pagewriter.h" #include "postmaster/postmaster.h" #include "postmaster/snapcapturer.h" @@ -70,6 +71,7 @@ #include "storage/cstore/cstorealloc.h" #include "storage/cucache_mgr.h" #include "storage/dfs/dfs_connector.h" +#include "storage/xlog_share_storage/xlog_share_storage.h" #include "utils/memprot.h" #ifdef ENABLE_MULTIPLE_NODES #include "tsdb/cache/queryid_cachemgr.h" @@ -173,7 +175,7 @@ Size ComputeTotalSizeOfShmem() size = add_size(size, DcfContextShmemSize()); } #endif - + size = add_size(size, CalShareStorageCtlSize()); /* freeze the addin request size and include it */ t_thrd.storage_cxt.addin_request_allowed = false; size = add_size(size, t_thrd.storage_cxt.total_addin_request); @@ -305,6 +307,7 @@ void CreateSharedMemoryAndSemaphores(bool makePrivate, int port) */ if (!IsUnderPostmaster) { InitProcGlobal(); + InitBgworkerGlobal(); CreateSharedProcArray(); CreateProcXactHashTable(); } @@ -430,20 +433,14 @@ void CreateSharedMemoryAndSemaphores(bool makePrivate, int port) } if (g_instance.pid_cxt.PageWriterPID == NULL) { MemoryContext oldcontext = MemoryContextSwitchTo(g_instance.increCheckPoint_context); - g_instance.pid_cxt.PageWriterPID = - (ThreadId*)palloc0(sizeof(ThreadId) * g_instance.attr.attr_storage.pagewriter_thread_num); - - int thread_num = get_fixed_bgwriter_thread_num(); - g_instance.pid_cxt.CkptBgWriterPID = (ThreadId*)palloc0(sizeof(ThreadId) * thread_num); + int thread_num = g_instance.attr.attr_storage.pagewriter_thread_num + 1; + g_instance.pid_cxt.PageWriterPID = (ThreadId*)palloc0(sizeof(ThreadId) * thread_num); (void)MemoryContextSwitchTo(oldcontext); } - if (ENABLE_INCRE_CKPT && g_instance.ckpt_cxt_ctl->page_writer_procs.writer_proc == NULL) { + if (ENABLE_INCRE_CKPT && g_instance.ckpt_cxt_ctl->pgwr_procs.writer_proc == NULL) { incre_ckpt_pagewriter_cxt_init(); } - if (ENABLE_INCRE_CKPT && g_instance.bgwriter_cxt.bgwriter_procs == NULL) { - incre_ckpt_bgwriter_cxt_init(); - } if (ENABLE_INCRE_CKPT && g_instance.ckpt_cxt_ctl->ckpt_redo_state.ckpt_rec_queue == NULL) { MemoryContext oldcontext = MemoryContextSwitchTo(g_instance.increCheckPoint_context); diff --git a/src/gausskernel/storage/ipc/pmsignal.cpp b/src/gausskernel/storage/ipc/pmsignal.cpp index 32f3bba74..5badb9836 100644 --- a/src/gausskernel/storage/ipc/pmsignal.cpp +++ b/src/gausskernel/storage/ipc/pmsignal.cpp @@ -176,7 +176,7 @@ int AssignPostmasterChildSlot(void) /* Out of slots ... should never happen, else postmaster.c messed up */ ereport(WARNING, (errmsg("no free slots in PMChildFlags array"))); - return -1; /* keep compiler quiet */ + return -1; } /* diff --git a/src/gausskernel/storage/ipc/procarray.cpp b/src/gausskernel/storage/ipc/procarray.cpp index a28a08136..ec8f40bd5 100755 --- a/src/gausskernel/storage/ipc/procarray.cpp +++ b/src/gausskernel/storage/ipc/procarray.cpp @@ -1628,6 +1628,7 @@ TransactionId GetGlobalOldestXmin() TransactionId GetOldestXminForUndo(void) { TransactionId oldestXmin = GetMultiSnapshotOldestXmin(); + TransactionId oldestXidInUndo = pg_atomic_read_u64(&g_instance.proc_base->oldestXidInUndo); if (ENABLE_TCAP_VERSION) { if (TransactionIdPrecedes(oldestXmin, (uint64)u_sess->attr.attr_storage.version_retention_age)) { oldestXmin = FirstNormalTransactionId; @@ -1635,8 +1636,8 @@ TransactionId GetOldestXminForUndo(void) oldestXmin -= u_sess->attr.attr_storage.version_retention_age; } } - if (unlikely(TransactionIdPrecedes(oldestXmin, g_instance.proc_base->oldestXidInUndo))) { - oldestXmin = g_instance.proc_base->oldestXidInUndo; + if (unlikely(TransactionIdPrecedes(oldestXmin, oldestXidInUndo))) { + oldestXmin = oldestXidInUndo; } return oldestXmin; } @@ -3124,33 +3125,20 @@ int DecreaseUserCount(Oid roleoid) (void)LWLockAcquire(lock, LW_EXCLUSIVE); - entry = (RoleIdHashEntry *)hash_search(g_instance.roleid_cxt.roleid_table, (void*)&roleoid, HASH_ENTER, &found); + entry = (RoleIdHashEntry *)hash_search(g_instance.roleid_cxt.roleid_table, (void*)&roleoid, HASH_FIND, &found); - if (!found) { - RemoveUserCount(roleoid); - } else { + if (found) { entry->roleNum--; roleNum = entry->roleNum; + if (entry->roleNum == 0) { + (void)hash_search(g_instance.roleid_cxt.roleid_table, (void*)&roleoid, HASH_REMOVE, &found); + } } LWLockRelease(lock); return roleNum; } -void RemoveUserCount(Oid roleoid) -{ - bool found = false; - uint32 hashCode = 0; - hashCode = oid_hash(&roleoid, sizeof(Oid)); - LWLock *lock = RoleidPartitionLock(hashCode); - - (void)LWLockAcquire(lock, LW_EXCLUSIVE); - - (void)hash_search(g_instance.roleid_cxt.roleid_table, (void*)&roleoid, HASH_REMOVE, &found); - - LWLockRelease(lock); -} - /* * CountUserBackends --- count backends that are used by specified user */ @@ -3257,8 +3245,10 @@ bool CountOtherDBBackends(Oid databaseId, int* nbackends, int* nprepared) LWLockRelease(ProcArrayLock); /* Under thread pool mode, we also need to count inactive sessions that are detached from worker threads */ - if (ENABLE_THREAD_POOL) + if (ENABLE_THREAD_POOL) { *nbackends = g_threadPoolControler->GetSessionCtrl()->CountDBSessions(databaseId); + *nbackends += nautovacs; + } if (*nbackends == 0 && *nprepared == 0) { return false; /* no conflicting backends, so done */ @@ -3948,7 +3938,7 @@ void proc_cancel_invalid_gtm_lite_conn() ProcArrayStruct* arrayP = g_instance.proc_array_idx; int i; GtmHostIndex hostindex = GTM_HOST_INVAILD; - GtmHostIndex my_gtmhost = InitGTM(); + GtmHostIndex my_gtmhost = InitGTM(false); ereport(LOG, (errmsg("GTMLite: canceling stale GTM connections, new GTM host index: %d.", my_gtmhost))); @@ -4358,6 +4348,7 @@ static inline snapxid_t* GetNextSnapXid() return g_snap_buffer ? (snapxid_t*)g_snap_next : NULL; } +const static int SNAP_ERROR_COUNT = 256; /* * update the current snapshot pointer find the next available slot for the next pointer */ @@ -4369,6 +4360,7 @@ static void SetNextSnapXid() g_snap_assigned = true; snapxid_t* ret = (snapxid_t*)g_snap_current; size_t idx = SNAPXID_INDEX(ret); + int nofindCount = 0; loop: do { ++idx; @@ -4380,9 +4372,13 @@ loop: g_snap_next = ret; return; } + nofindCount++; } while (ret != g_snap_next); /* we alloc sufficient space for local snapshot , overflow should not happen here */ ereport(WARNING, (errmsg("snapshot ring buffer overflow."))); + if (nofindCount >= SNAP_ERROR_COUNT) { + ereport(PANIC, (errcode(ERRCODE_LOG), errmsg("Can not get an available snapshot slot"))); + } /* try to find available slot */ goto loop; } @@ -4406,6 +4402,32 @@ static void ReleaseSnapXid(snapxid_t* snapshot) DecrRefCount(snapshot); } +#ifdef USE_ASSERT_CHECKING +/* add assert information for refcount of snapshot */ +class AutoSnapId { +public: + AutoSnapId() + : m_count(1) + {} + + ~AutoSnapId() + { + if (m_count > 0) { + ereport(PANIC, (errcode(ERRCODE_LOG), + errmsg("snapshot refcount leak, must be zero"))); + } + } + + void decr() + { + m_count = 0; + } + +public: + int m_count; +}; +#endif + Snapshot GetLocalSnapshotData(Snapshot snapshot) { /* if first here, fallback to original code */ @@ -4414,8 +4436,14 @@ Snapshot GetLocalSnapshotData(Snapshot snapshot) return NULL; } pg_read_barrier(); + HOLD_INTERRUPTS(); /* 1. increase ref-count of current snapshot in ring buffer */ snapxid_t* snapxid = GetCurrentSnapXid(); + +#ifdef USE_ASSERT_CHECKING + AutoSnapId snapid; +#endif + /* save use_data for release */ snapshot->user_data = snapxid; @@ -4453,7 +4481,14 @@ Snapshot GetLocalSnapshotData(Snapshot snapshot) /* Non-catalog tables can be vacuumed if older than this xid */ u_sess->utils_cxt.RecentGlobalDataXmin = u_sess->utils_cxt.RecentGlobalXmin; - ReleaseSnapshotData(snapshot); + ReleaseSnapXid(snapxid); + snapshot->user_data = NULL; + +#ifdef USE_ASSERT_CHECKING + snapid.decr(); +#endif + + RESUME_INTERRUPTS(); return snapshot; } @@ -4649,14 +4684,6 @@ void CalculateLocalLatestSnapshot(bool forceCalc) SetNextSnapXid(); } -void ReleaseSnapshotData(Snapshot snapshot) -{ - if (snapshot && snapshot->user_data) { - ReleaseSnapXid((snapxid_t*)snapshot->user_data); - snapshot->user_data = NULL; - } -} - /* * Return the minimal xmin in all the valid snapshot versions. */ diff --git a/src/gausskernel/storage/lmgr/deadlock.cpp b/src/gausskernel/storage/lmgr/deadlock.cpp index ec57ab279..fe3a0f828 100644 --- a/src/gausskernel/storage/lmgr/deadlock.cpp +++ b/src/gausskernel/storage/lmgr/deadlock.cpp @@ -62,6 +62,7 @@ typedef struct DEADLOCK_INFO { ThreadId pid; /* PID of blocked backend */ } DEADLOCK_INFO; +static const int MIN_BLOCKING_AUTOVACUUM_PROC_NUM = 64; static bool DeadLockCheckRecurse(PGPROC *proc); static int TestConfiguration(PGPROC *startProc); static bool FindLockCycle(PGPROC *checkProc, EDGE *softEdges, int *nSoftEdges); @@ -164,8 +165,10 @@ void InitDeadLockChecking(void) t_thrd.storage_cxt.possibleConstraints = (EDGE *)palloc(t_thrd.storage_cxt.maxPossibleConstraints * sizeof(EDGE)); t_thrd.storage_cxt.blocking_autovacuum_proc_num = 0; + t_thrd.storage_cxt.max_blocking_autovacuum_proc_num = + Max(MIN_BLOCKING_AUTOVACUUM_PROC_NUM, g_instance.attr.attr_storage.autovacuum_max_workers * 2); t_thrd.storage_cxt.blocking_autovacuum_proc = - (PGPROC **)palloc(g_instance.attr.attr_storage.autovacuum_max_workers * sizeof(PGPROC *)); + (PGPROC **)palloc(t_thrd.storage_cxt.max_blocking_autovacuum_proc_num * sizeof(PGPROC *)); MemoryContextSwitchTo(oldcxt); } @@ -271,7 +274,7 @@ PGPROC *GetBlockingAutoVacuumPgproc(void) { PGPROC *ptr = NULL; - Assert(t_thrd.storage_cxt.blocking_autovacuum_proc_num <= g_instance.attr.attr_storage.autovacuum_max_workers); + Assert(t_thrd.storage_cxt.blocking_autovacuum_proc_num <= t_thrd.storage_cxt.max_blocking_autovacuum_proc_num); if (t_thrd.storage_cxt.blocking_autovacuum_proc_num > 0) { --t_thrd.storage_cxt.blocking_autovacuum_proc_num; ptr = t_thrd.storage_cxt.blocking_autovacuum_proc[t_thrd.storage_cxt.blocking_autovacuum_proc_num]; @@ -635,11 +638,11 @@ static bool FindLockCycleRecurseMember(PGPROC *checkProc, break; } } - if (!found) { + if (!found && + t_thrd.storage_cxt.blocking_autovacuum_proc_num < + t_thrd.storage_cxt.max_blocking_autovacuum_proc_num) { t_thrd.storage_cxt .blocking_autovacuum_proc[t_thrd.storage_cxt.blocking_autovacuum_proc_num++] = proc; - Assert(t_thrd.storage_cxt.blocking_autovacuum_proc_num <= - g_instance.attr.attr_storage.autovacuum_max_workers); } } /* vacuumFlags is set to PROC_IS_REDIST only at redistribution time */ @@ -658,6 +661,41 @@ static bool FindLockCycleRecurseMember(PGPROC *checkProc, proclock = (PROCLOCK *)SHMQueueNext(procLocks, &proclock->lockLink, offsetof(PROCLOCK, lockLink)); } + /* + * Append wait lock autovacuum procs into blocking_autovacuum_proc + * list if current proc is blocking by some autovacuum procs. + */ + if (checkProc == t_thrd.proc && t_thrd.storage_cxt.blocking_autovacuum_proc_num > 0) { + PROC_QUEUE *waitQueue = &(lock->waitProcs); + proc = (PGPROC *)waitQueue->links.next; + for (int j = 0; j < waitQueue->size; j++) { + if (proc == checkProc) { + break; + } + PGPROC *leader = (proc->lockGroupLeader == NULL) ? proc : proc->lockGroupLeader; + pgxact = &g_instance.proc_base_all_xacts[proc->pgprocno]; + LWLockAcquire(ProcArrayLock, LW_EXCLUSIVE); + if (leader != checkProcLeader && (conflictMask & LOCKBIT_ON((unsigned int)proc->waitLockMode)) && + (pgxact->vacuumFlags & PROC_IS_AUTOVACUUM)) { + bool found = false; + for (int k = 0; k < t_thrd.storage_cxt.blocking_autovacuum_proc_num; k++) { + if (t_thrd.storage_cxt.blocking_autovacuum_proc[k] == proc) { + found = true; + break; + } + } + if (!found && + t_thrd.storage_cxt.blocking_autovacuum_proc_num < + t_thrd.storage_cxt.max_blocking_autovacuum_proc_num) { + t_thrd.storage_cxt + .blocking_autovacuum_proc[t_thrd.storage_cxt.blocking_autovacuum_proc_num++] = proc; + } + } + LWLockRelease(ProcArrayLock); + proc = (PGPROC *)waitQueue->links.next; + } + } + /* * Scan for procs that are ahead of this one in the lock's wait queue. * Those that have conflicting requests soft-block this one. This must be @@ -746,7 +784,7 @@ static bool FindLockCycleRecurseMember(PGPROC *checkProc, leader = (proc->lockGroupLeader == NULL) ? proc : proc->lockGroupLeader; /* Done when we reach the target proc */ - if (proc == checkProcLeader) + if (proc == lastGroupMember) break; /* Is there a conflict with this guy's request? */ diff --git a/src/gausskernel/storage/lmgr/lwlock.cpp b/src/gausskernel/storage/lmgr/lwlock.cpp index 2319847b2..726f94b82 100644 --- a/src/gausskernel/storage/lmgr/lwlock.cpp +++ b/src/gausskernel/storage/lmgr/lwlock.cpp @@ -163,11 +163,13 @@ static const char *BuiltinTrancheNames[] = { "OldSerXid SLRU Ctl", "WALInsertLock", "DoubleWriteLock", - "DWSingleFlushPosLock", - "DWSingleFlushWriteLock", + "DWSingleFlushFirstLock", + "DWSingleFlushSecondLock", + "DWSingleFlushSecondBufTagLock", "RestartPointQueueLock", "PruneDirtyQueueLock", "UnlinkRelHashTblLock", + "UnlinkRelForkHashTblLock", "LWTRANCHE_ACCOUNT_TABLE", "GeneralExtendedLock", "MPFLLOCK", @@ -332,7 +334,6 @@ static lwlock_stats *get_lwlock_stats_entry(LWLock *lock) } #endif /* LWLOCK_STATS */ -const int NUM_DW_SINGLE_FLUSH_LOCK = 161; /* one page correspond to one lock */ /* * Compute number of LWLocks to allocate. */ @@ -387,8 +388,8 @@ int NumLWLocks(void) numLocks += g_instance.attr.attr_storage.max_replication_slots; /* double write.c needs flush lock */ - numLocks += 1; /* batch flush lock */ - numLocks += NUM_DW_SINGLE_FLUSH_LOCK + 1; /* single flush write lock and the get pos lock */ + numLocks += 1; /* dw batch flush lock */ + numLocks += 3; /* dw single flush pos lock (two version) + second version buftag page lock */ /* for materialized view */ numLocks += 1; @@ -402,8 +403,8 @@ int NumLWLocks(void) /* for prune dirty queue */ numLocks += 1; - /* for unlink rel hashtbl */ - numLocks += 1; + /* for unlink rel hashtbl, one is for all fork relation hashtable, one is for one fork relation hash table */ + numLocks += 2; /* * Add any requested by loadable modules; for backwards-compatibility diff --git a/src/gausskernel/storage/lmgr/lwlocknames.txt b/src/gausskernel/storage/lmgr/lwlocknames.txt index 6edca4cd4..fbf2ce91b 100755 --- a/src/gausskernel/storage/lmgr/lwlocknames.txt +++ b/src/gausskernel/storage/lmgr/lwlocknames.txt @@ -121,5 +121,6 @@ HadrSwitchoverLock 111 TDEKeyCacheLock 112 RoleIdLock 113 UniqueSqlEvictLock 114 -ReplicationOriginLock 115 -LogicalRepWorkerLock 116 \ No newline at end of file +InstrStmtTrackCtlLock 115 +ReplicationOriginLock 116 +LogicalRepWorkerLock 117 diff --git a/src/gausskernel/storage/lmgr/predicate.cpp b/src/gausskernel/storage/lmgr/predicate.cpp index c3e9b6a93..3c09a88ec 100644 --- a/src/gausskernel/storage/lmgr/predicate.cpp +++ b/src/gausskernel/storage/lmgr/predicate.cpp @@ -905,7 +905,7 @@ void CheckPointPredicate(void) * pointless. */ int flush_num = SimpleLruFlush(t_thrd.shemem_ptr_cxt.OldSerXidSlruCtl, true); - g_instance.ckpt_cxt_ctl->ckpt_predicate_flush_num += flush_num; + g_instance.ckpt_cxt_ctl->ckpt_view.ckpt_predicate_flush_num += flush_num; } bool diff --git a/src/gausskernel/storage/lmgr/proc.cpp b/src/gausskernel/storage/lmgr/proc.cpp index c31d68fef..9ca479fec 100755 --- a/src/gausskernel/storage/lmgr/proc.cpp +++ b/src/gausskernel/storage/lmgr/proc.cpp @@ -81,7 +81,6 @@ #define MAX_NUMA_NODE 16 - extern THR_LOCAL uint32 *g_workingVersionNum; static void RemoveProcFromArray(int code, Datum arg); @@ -270,6 +269,7 @@ void InitProcGlobal(void) g_instance.proc_base->checkpointerLatch = NULL; g_instance.proc_base->bgworkerFreeProcs = NULL; g_instance.proc_base->cbmwriterLatch = NULL; + g_instance.proc_base->ShareStoragexlogCopyerLatch = NULL; pg_atomic_init_u32(&g_instance.proc_base->procArrayGroupFirst, INVALID_PGPROCNO); pg_atomic_init_u32(&g_instance.proc_base->clogGroupFirst, INVALID_PGPROCNO); @@ -499,7 +499,7 @@ static inline void ReleaseChildSlot(void) t_thrd.role == WLM_CPMONITOR) || IsJobAspProcess() || t_thrd.role == STREAMING_BACKEND || IsStatementFlushProcess() || IsJobSnapshotProcess() || t_thrd.postmaster_cxt.IsRPCWorkerThread || IsJobPercentileProcess() || t_thrd.role == ARCH || - IsTxnSnapCapturerProcess() || IsTxnSnapWorkerProcess() || IsRbCleanerProcess() || IsRbWorkerProcess() || t_thrd.role == GLOBALSTATS_THREAD || + IsTxnSnapCapturerProcess() || IsRbCleanerProcess() || t_thrd.role == GLOBALSTATS_THREAD || t_thrd.role == BARRIER_ARCH || t_thrd.role == BARRIER_CREATOR || t_thrd.role == APPLY_LAUNCHER)) { (void)ReleasePostmasterChildSlot(t_thrd.proc_cxt.MyPMChildSlot); } @@ -965,22 +965,18 @@ int GetAuxProcEntryIndex(int baseIdx) index = baseIdx + NUM_SINGLE_AUX_PROC; if (t_thrd.bootstrap_cxt.MyAuxProcType == PageWriterProcess) { index += get_pagewriter_thread_id(); - } else if (t_thrd.bootstrap_cxt.MyAuxProcType == MultiBgWriterProcess) { - index += get_bgwriter_thread_id() + MAX_PAGE_WRITER_THREAD_NUM; } else if (t_thrd.bootstrap_cxt.MyAuxProcType == PageRedoProcess) { - index += MultiRedoGetWorkerId() + MAX_PAGE_WRITER_THREAD_NUM + MAX_BG_WRITER_THREAD_NUM; + index += MultiRedoGetWorkerId() + MAX_PAGE_WRITER_THREAD_NUM; } else if (t_thrd.bootstrap_cxt.MyAuxProcType == TpoolListenerProcess) { /* thread pool listerner slots follow page redo threads */ index += t_thrd.threadpool_cxt.listener->GetGroup()->GetGroupId() + MAX_PAGE_WRITER_THREAD_NUM + - MAX_BG_WRITER_THREAD_NUM + MAX_RECOVERY_THREAD_NUM; } #ifdef ENABLE_MULTIPLE_NODES else if (t_thrd.bootstrap_cxt.MyAuxProcType == TsCompactionConsumerProcess) { index += CompactionWorkerProcess::GetMyCompactionConsumerOrignId() + MAX_PAGE_WRITER_THREAD_NUM + - MAX_BG_WRITER_THREAD_NUM + MAX_RECOVERY_THREAD_NUM + g_instance.shmem_cxt.ThreadPoolGroupNum; } @@ -1225,11 +1221,8 @@ static void ProcKill(int code, Datum arg) if (dlist_is_empty(&leader->lockGroupMembers)) { leader->lockGroupLeader = NULL; if (leader != t_thrd.proc) { - /* Leader exited first; return its PGPROC. */ - pthread_mutex_lock(&g_instance.proc_base_lock); - leader->links.next = (SHM_QUEUE*)g_instance.proc_base->freeProcs; - g_instance.proc_base->freeProcs = leader; - pthread_mutex_unlock(&g_instance.proc_base_lock); + /* The leader must be the last one. */ + ereport(PANIC, (errmsg("The bgworker exits last, it can't happen"))); } } else if (leader != t_thrd.proc) { t_thrd.proc->lockGroupLeader = NULL; @@ -1255,6 +1248,7 @@ static void ProcKill(int code, Datum arg) ereport(ERROR, (errcode(ERRCODE_LOCK_NOT_AVAILABLE), errmsg("failed to release mutex lock for deleMemContextMutex."))); + clean_proc_dw_buf(); pthread_mutex_lock(&g_instance.proc_base_lock); /* @@ -1277,7 +1271,6 @@ static void ProcKill(int code, Datum arg) /* Clean subxid cache if needed. */ ProcSubXidCacheClean(); - clean_proc_dw_buf(); /* PGPROC struct isn't mine anymore */ t_thrd.proc = NULL; @@ -1345,6 +1338,8 @@ static void AuxiliaryProcKill(int code, Datum arg) ereport(ERROR, (errcode(ERRCODE_LOCK_NOT_AVAILABLE), errmsg("failed to release mutex lock for deleMemContextMutex."))); + clean_proc_dw_buf(); + pthread_mutex_lock(&g_instance.proc_base_lock); /* Mark auxiliary proc no longer in use */ @@ -1353,8 +1348,6 @@ static void AuxiliaryProcKill(int code, Datum arg) errno_t rc = memset_s(t_thrd.proc->myProgName, sizeof(t_thrd.proc->myProgName), 0, sizeof(t_thrd.proc->myProgName)); securec_check(rc, "", ""); - clean_proc_dw_buf(); - /* PGPROC struct isn't mine anymore */ t_thrd.proc = NULL; diff --git a/src/gausskernel/storage/page/bufpage.cpp b/src/gausskernel/storage/page/bufpage.cpp index 8f5ac1b5b..8e599e4b6 100644 --- a/src/gausskernel/storage/page/bufpage.cpp +++ b/src/gausskernel/storage/page/bufpage.cpp @@ -342,9 +342,8 @@ static inline void AllocPageCopyMem() */ char* PageDataEncryptIfNeed(Page page, TdeInfo* tde_info, bool need_copy, bool is_segbuf) { - size_t plainLength; + size_t plainLength = 0; size_t cipherLength = 0; - uint16 headersize; errno_t ret = 0; int retval = 0; TdePageInfo tde_page_info; @@ -355,11 +354,10 @@ char* PageDataEncryptIfNeed(Page page, TdeInfo* tde_info, bool need_copy, bool i } Assert(!PageIsEncrypt(page)); - headersize = GetPageHeaderSize(page); - plainLength = (size_t)(BLCKSZ - headersize - sizeof(TdePageInfo)); + plainLength = ((PageHeader)page)->pd_special - ((PageHeader)page)->pd_upper; retval = RAND_priv_bytes(tde_info->iv, RANDOM_IV_LEN); if (retval != 1) { - ereport(WARNING, (errmsg("generate random iv for tde failed, errcode:%d", retval))); + ereport(WARNING, (errmodule(MOD_SEC_TDE), errmsg("generate random iv for tde failed, errcode:%d", retval))); return (char*)page; } if (need_copy) { @@ -372,9 +370,9 @@ char* PageDataEncryptIfNeed(Page page, TdeInfo* tde_info, bool need_copy, bool i } /* at this part, do the real encryption */ - encryptBlockOrCUData(PageGetContents(dst), + encryptBlockOrCUData(dst + ((PageHeader)dst)->pd_upper, plainLength, - PageGetContents(dst), + dst + ((PageHeader)dst)->pd_upper, &cipherLength, tde_info); Assert(plainLength == cipherLength); @@ -392,19 +390,22 @@ char* PageDataEncryptIfNeed(Page page, TdeInfo* tde_info, bool need_copy, bool i void PageDataDecryptIfNeed(Page page) { - TdeInfo tde_info; + TdeInfo tde_info = {0}; TdePageInfo* tde_page_info = NULL; - uint16 headersize = 0; + /* whether this page is both TDE page and encrypted */ if (PageIsEncrypt(page) && PageIsTDE(page)) { - headersize = GetPageHeaderSize(page); size_t plainLength = 0; - size_t cipherLength = (size_t)(BLCKSZ - headersize - sizeof(TdePageInfo)); - tde_page_info = (TdePageInfo*)(PageGetContents(page) + cipherLength); + size_t cipherLength = ((PageHeader)page)->pd_special - ((PageHeader)page)->pd_upper; + tde_page_info = (TdePageInfo*)((char*)(page) + BLCKSZ - sizeof(TdePageInfo)); transformTdeInfoFromPage(&tde_info, tde_page_info); /* at this part, do the real decryption */ - decryptBlockOrCUData(PageGetContents(page), cipherLength, PageGetContents(page), &plainLength, &tde_info); + decryptBlockOrCUData(page + ((PageHeader)page)->pd_upper, + cipherLength, + page + ((PageHeader)page)->pd_upper, + &plainLength, + &tde_info); Assert(cipherLength == plainLength); /* clear the encryption flag */ diff --git a/src/gausskernel/storage/replication/CMakeLists.txt b/src/gausskernel/storage/replication/CMakeLists.txt index eee30d260..e7a1f8a91 100755 --- a/src/gausskernel/storage/replication/CMakeLists.txt +++ b/src/gausskernel/storage/replication/CMakeLists.txt @@ -49,18 +49,18 @@ set(TGT_replication_SRC ${CMAKE_CURRENT_SOURCE_DIR}/datasyncrep.cpp ${CMAKE_CURRENT_SOURCE_DIR}/heartbeat.cpp ${CMAKE_CURRENT_SOURCE_DIR}/libpqwalreceiver.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/archive_walreceiver.cpp ${CMAKE_CURRENT_SOURCE_DIR}/rto_statistic.cpp ${CMAKE_CURRENT_SOURCE_DIR}/slot.cpp ${CMAKE_CURRENT_SOURCE_DIR}/slotfuncs.cpp ${CMAKE_CURRENT_SOURCE_DIR}/syncrep.cpp ${CMAKE_CURRENT_SOURCE_DIR}/walrcvwriter.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/obswalreceiver.cpp ${CMAKE_CURRENT_SOURCE_DIR}/walreceiver.cpp ${CMAKE_CURRENT_SOURCE_DIR}/walreceiverfuncs.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/walreceiverfuncs.cpp ${CMAKE_CURRENT_SOURCE_DIR}/walsender.cpp ${CMAKE_CURRENT_SOURCE_DIR}/repl_gram.cpp ${CMAKE_CURRENT_SOURCE_DIR}/syncrep_gram.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/shared_storage_walreceiver.cpp ${CMAKE_CURRENT_SOURCE_DIR}/subscription_walreceiver.cpp ) diff --git a/src/gausskernel/storage/replication/Makefile b/src/gausskernel/storage/replication/Makefile index 5dc12f7ae..784a8c7ab 100644 --- a/src/gausskernel/storage/replication/Makefile +++ b/src/gausskernel/storage/replication/Makefile @@ -14,8 +14,8 @@ ifneq "$(MAKECMDGOALS)" "clean" endif endif OBJS = walsender.o datasender.o walreceiverfuncs.o walreceiver.o walrcvwriter.o subscription_walreceiver.o\ - datareceiver.o datarcvwriter.o basebackup.o libpqwalreceiver.o obswalreceiver.o repl_gram.o\ - syncrep.o dataqueue.o bcm.o datasyncrep.o catchup.o slot.o slotfuncs.o \ + datareceiver.o datarcvwriter.o basebackup.o libpqwalreceiver.o archive_walreceiver.o repl_gram.o\ + syncrep.o dataqueue.o bcm.o datasyncrep.o catchup.o slot.o slotfuncs.o shared_storage_walreceiver.o\ syncrep_gram.o heartbeat.o rto_statistic.o SUBDIRS = logical heartbeat dcf diff --git a/src/gausskernel/storage/replication/archive_walreceiver.cpp b/src/gausskernel/storage/replication/archive_walreceiver.cpp new file mode 100644 index 000000000..576ac2ede --- /dev/null +++ b/src/gausskernel/storage/replication/archive_walreceiver.cpp @@ -0,0 +1,956 @@ +/* + * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. + * Portions Copyright (c) 2010-2012, PostgreSQL Global Development Group + * Portions Copyright (c) 2021, openGauss Contributors + * + * archive_walreceiver.cpp + * + * Description: This file contains the obs-specific parts of walreceiver. It's + * loaded as a dynamic module to avoid linking the main server binary with + * obs. + * + * IDENTIFICATION + * src/gausskernel/storage/replication/archive_walreceiver.cpp + * + * ------------------------------------------------------------------------- + */ +#include "postgres.h" +#include "knl/knl_variable.h" + +#include + +#include "libpq/libpq-int.h" +#include "access/xlog.h" +#include "access/xlog_internal.h" +#include "nodes/pg_list.h" +#include "access/archive/archive_am.h" +#include "access/archive/nas_am.h" +#include "access/obs/obs_am.h" +#include "utils/timestamp.h" +#include "miscadmin.h" +#include "replication/walreceiver.h" +#include "replication/archive_walreceiver.h" +#include "replication/slot.h" +#include "storage/pmsignal.h" +#include "storage/proc.h" +#include "utils/guc.h" +#include "pgxc/pgxc.h" +#define CUR_OBS_FILE_VERSION 1 + +static char *path_skip_prefix(char *path); +static bool GetOBSArchiveLastStartTime(ArchiveSlotConfig* obsArchiveSlot); + +static bool IsArchiveXlogBeyondRequest(XLogRecPtr startPtr, const List *object_list) +{ + char* fileName = NULL; + char* xlogFileName = NULL; + char* tempToken = NULL; + uint32 xlogReadLogid = -1; + uint32 xlogReadLogSeg = -1; + TimeLineID tli = 0; + uint32 startSeg; + ListCell* cell = NULL; + + if (object_list == NIL || object_list->head->next == NULL) { + ereport(ERROR, (errmsg("there is no xlog file on archive server."))); + return false; + } + cell = list_head(object_list)->next; + fileName = (char*)lfirst(cell); + fileName = strrchr(fileName, '/'); + fileName = fileName + 1; + xlogFileName = strtok_s(fileName, "_", &tempToken); + if (xlogFileName == NULL) { + ereport(ERROR, (errmsg("Failed get xlog file name from fileName %s.", fileName))); + } + if (sscanf_s(xlogFileName, "%08X%08X%08X", &tli, &xlogReadLogid, &xlogReadLogSeg) != 3) { + ereport(ERROR, (errmsg("failed to translate name to xlog: %s\n", xlogFileName))); + } + XLByteToSeg(startPtr, startSeg); + if ((startSeg / XLogSegmentsPerXLogId) < xlogReadLogid || + ((startSeg / XLogSegmentsPerXLogId) == xlogReadLogid && + (startSeg % XLogSegmentsPerXLogId) < xlogReadLogSeg)) { + ereport(LOG, (errmsg("the xlog file on archive server is newer than local request, need build.\n"))); + return true; + } + return false; +} + +bool ReadArchiveReplicationFile(const char* fileName, char *buffer, const int length, ArchiveConfig *archive_config) +{ + List *object_list = NIL; + int ret = 0; + char file_path[MAXPGPATH] = {0}; + size_t readLen = 0; + if (archive_config->media_type == ARCHIVE_OBS) { + object_list = obsList(fileName, archive_config, false); + if (object_list == NIL || object_list->length <= 0) { + ereport(LOG, (errmsg("The file named %s cannot be found.", fileName))); + return false; + } + + readLen = obsRead(fileName, 0, buffer, length, archive_config); + if (readLen == 0) { + ereport(LOG, (errmsg("Cannot read content in %s file!", fileName))); + return false; + } + } else if (archive_config->media_type == ARCHIVE_NAS) { + ret = snprintf_s(file_path, MAXPGPATH, MAXPGPATH - 1, "%s/%s", + archive_config->archive_prefix, fileName); + securec_check_ss(ret, "\0", "\0"); + if (!file_exists(file_path)) { + ereport(LOG, (errmsg("The file named %s cannot be found.", file_path))); + return false; + } + + readLen = NasRead(fileName, 0, buffer, length, archive_config); + if (readLen == 0) { + ereport(LOG, (errmsg("Cannot read content in %s file!", fileName))); + return false; + } + } else { + return false; + } + return true; +} + + +bool ArchiveReplicationReadFile(const char* fileName, char* content, int contentLen, const char *slotName) +{ + errno_t rc = 0; + ArchiveConfig archive_config_tmp; + ArchiveConfig *archive_config = NULL; + char pathPrefix[MAXPGPATH] = {0}; + ArchiveSlotConfig *archiveSlot = NULL; + if (slotName != NULL) { + archiveSlot = getArchiveReplicationSlotWithName(slotName); + if (archiveSlot == NULL) { + ereport(LOG, (errmsg("Cannot get archive config from replication slots"))); + return false; + } + archive_config = &archiveSlot->archive_config; + } else { + archive_config = getArchiveConfig(); + if (archive_config == NULL) { + ereport(LOG, (errmsg("Cannot get archive config from replication slots"))); + return false; + } + } + + /* copy archive configs to temporary variable for customising file path */ + rc = memcpy_s(&archive_config_tmp, sizeof(ArchiveConfig), archive_config, sizeof(ArchiveConfig)); + securec_check(rc, "", ""); + + if (!IS_PGXC_COORDINATOR) { + rc = strcpy_s(pathPrefix, MAXPGPATH, archive_config_tmp.archive_prefix); + securec_check_c(rc, "\0", "\0"); + + char *p = strrchr(pathPrefix, '/'); + if (p == NULL) { + ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("archive path prefix is invalid"))); + } + *p = '\0'; + archive_config_tmp.archive_prefix = pathPrefix; + } + + return ReadArchiveReplicationFile(fileName, content, contentLen, &archive_config_tmp); +} + +void update_stop_barrier() +{ + errno_t rc = EOK; + volatile WalRcvData *walrcv = t_thrd.walreceiverfuncs_cxt.WalRcv; + + if (IS_DISASTER_RECOVER_MODE && (t_thrd.xlog_cxt.recoveryTarget != RECOVERY_TARGET_TIME_OBS)) { + bool hasFailoverBarrier = false; + bool hasSwitchoverBarrier = false; + char failoverBarrier[MAX_BARRIER_ID_LENGTH] = {0}; + char switchoverBarrier[MAX_BARRIER_ID_LENGTH] = {0}; + + // The failover and switchover procedures cannot coexist. + hasFailoverBarrier = ArchiveReplicationReadFile(HADR_FAILOVER_BARRIER_ID_FILE, + (char *)failoverBarrier, MAX_BARRIER_ID_LENGTH); + hasSwitchoverBarrier = ArchiveReplicationReadFile(HADR_SWITCHOVER_BARRIER_ID_FILE, + (char *)switchoverBarrier, MAX_BARRIER_ID_LENGTH); + if (hasFailoverBarrier == true && hasSwitchoverBarrier == true) { + ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("The failover and switchover procedures cannot coexist." + "failover barrierID %s, switchover barrierID %s.", + (char *)failoverBarrier, (char *)switchoverBarrier))); + } + + if (hasFailoverBarrier == true) { + rc = strncpy_s((char *)walrcv->recoveryStopBarrierId, MAX_BARRIER_ID_LENGTH, + (char *)failoverBarrier, MAX_BARRIER_ID_LENGTH - 1); + securec_check(rc, "\0", "\0"); + ereport(LOG, (errmsg("Get failover barrierID %s", (char *)walrcv->recoveryStopBarrierId))); + } + + if (hasSwitchoverBarrier == true) { + rc = strncpy_s((char *)walrcv->recoverySwitchoverBarrierId, MAX_BARRIER_ID_LENGTH, + (char *)switchoverBarrier, MAX_BARRIER_ID_LENGTH - 1); + securec_check(rc, "\0", "\0"); + ereport(LOG, (errmsg("Get switchover barrierID %s", (char *)walrcv->recoverySwitchoverBarrierId))); + } + } else if (IS_SHARED_STORAGE_STANBY_CLUSTER_MODE) { + if (strlen(g_instance.stopBarrierId) != 0) { + rc = strncpy_s((char *)walrcv->recoveryStopBarrierId, MAX_BARRIER_ID_LENGTH, + (char *)g_instance.stopBarrierId, MAX_BARRIER_ID_LENGTH - 1); + securec_check(rc, "\0", "\0"); + ereport(LOG, (errmsg("Get stop barrierID %s", (char *)walrcv->recoveryStopBarrierId))); + } + } +} + +void update_recovery_barrier() +{ + errno_t rc = EOK; + /* use volatile pointer to prevent code rearrangement */ + volatile WalRcvData *walrcv = t_thrd.walreceiverfuncs_cxt.WalRcv; + char barrier[MAX_BARRIER_ID_LENGTH] = {0}; + if (ArchiveReplicationReadFile(HADR_BARRIER_ID_FILE, (char *)barrier, MAX_BARRIER_ID_LENGTH)) { + if (strcmp((char *)barrier, (char *)walrcv->recoveryTargetBarrierId) < 0) { + ereport(ERROR, (errmodule(MOD_REDO), errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("The new global barrier is smaller than the last one."))); + } else { + rc = strncpy_s((char *)walrcv->recoveryTargetBarrierId, MAX_BARRIER_ID_LENGTH, + (char *)barrier, MAX_BARRIER_ID_LENGTH - 1); + securec_check(rc, "\0", "\0"); + } + } +} + +bool archive_connect(char* conninfo, XLogRecPtr* startpoint, char* slotname, int channel_identifier) +{ + volatile WalRcvData *walrcv = t_thrd.walreceiverfuncs_cxt.WalRcv; + walrcv->archive_slot = GetArchiveRecoverySlot(); + if (walrcv->archive_slot == NULL) { + ereport(ERROR, (errcode(ERRCODE_UNEXPECTED_NULL_VALUE), + errmsg("[walreceiver_connect_obs]could not get archive relication slot"))); + return false; + } + + walrcv->peer_role = PRIMARY_MODE; + walrcv->peer_state = NORMAL_STATE; + walrcv->isFirstTimeAccessStorage = true; + if (t_thrd.libwalreceiver_cxt.recvBuf != NULL) { + PQfreemem(t_thrd.libwalreceiver_cxt.recvBuf); + } + t_thrd.libwalreceiver_cxt.recvBuf = NULL; + uint32 totalLen = sizeof(WalDataMessageHeader) + OBS_XLOG_SLICE_BLOCK_SIZE + 1; + t_thrd.libwalreceiver_cxt.recvBuf = (char*)malloc(totalLen); + if (t_thrd.libwalreceiver_cxt.recvBuf == NULL) { + ereport(LOG, (errmsg("archive_receive:Receive Buffer out of memory.\n"))); + return false; + } + + /* HADR only support OBS currently */ + if (walrcv->archive_slot->archive_config.media_type != ARCHIVE_OBS) { + return true; + } + + /* The full recovery of disaster recovery scenarios has ended */ + g_instance.roach_cxt.isRoachRestore = false; + + /* Use OBS to complete DR and set the original replication link status to normal. */ + volatile HaShmemData *hashmdata = t_thrd.postmaster_cxt.HaShmData; + char standbyClusterStat[MAX_DEFAULT_LENGTH] = {0}; + ArchiveReplicationReadFile(HADR_STANDBY_CLUSTER_STAT_FILE, standbyClusterStat, MAX_DEFAULT_LENGTH); + + if (strncmp(standbyClusterStat, HADR_IN_NORMAL, strlen(HADR_IN_NORMAL)) == 0) { + ereport(WARNING, (errmsg("===obs_connect===\n " + "The cluster DR relationship has been removed, " + "but the instance slot still exists. slot name is %s", walrcv->archive_slot->slotname))); + ReplicationSlotDrop(walrcv->archive_slot->slotname); + SpinLockAcquire(&hashmdata->mutex); + hashmdata->repl_reason[hashmdata->current_repl] = WALSEGMENT_REBUILD; + SpinLockRelease(&hashmdata->mutex); + + SpinLockAcquire(&walrcv->mutex); + walrcv->conn_errno = REPL_INFO_ERROR; + SpinLockRelease(&walrcv->mutex); + } else { + SpinLockAcquire(&hashmdata->mutex); + hashmdata->repl_reason[hashmdata->current_repl] = NONE_REBUILD; + SpinLockRelease(&hashmdata->mutex); + + SpinLockAcquire(&walrcv->mutex); + walrcv->conn_errno = NONE_ERROR; + walrcv->node_state = NODESTATE_NORMAL; + SpinLockRelease(&walrcv->mutex); + } + + /* Only postmaster can update gaussdb.state file */ + SendPostmasterSignal(PMSIGNAL_UPDATE_HAREBUILD_REASON); + return true; +} + +bool archive_receive(int timeout, unsigned char* type, char** buffer, int* len) +{ + int dataLength = 0; + XLogRecPtr startPtr; + char* recvBuf = t_thrd.libwalreceiver_cxt.recvBuf; + errno_t rc = EOK; + volatile WalRcvData *walrcv = t_thrd.walreceiverfuncs_cxt.WalRcv; + XLogRecPtr lastReplayPtr; + + // The start LSN used for the first access to OBS + // is the same as that of the streaming replication function. + if (walrcv->isFirstTimeAccessStorage) { + startPtr = walrcv->receiveStart; + walrcv->isFirstTimeAccessStorage = false; + } else { + // t_thrd.walreceiver_cxt.walRcvCtlBlock->receivePtr will been updated in XLogWalRcvReceive() + SpinLockAcquire(&t_thrd.walreceiver_cxt.walRcvCtlBlock->mutex); + startPtr = t_thrd.walreceiver_cxt.walRcvCtlBlock->receivePtr; + SpinLockRelease(&t_thrd.walreceiver_cxt.walRcvCtlBlock->mutex); + } + /* the unit of max_size_for_xlog_receiver is KB */ + uint64 maxRequestSize = ((uint64)g_instance.attr.attr_storage.max_size_for_xlog_receiver << 10); + lastReplayPtr = GetXLogReplayRecPtr(NULL); + if ((startPtr > lastReplayPtr) && (startPtr - lastReplayPtr >= maxRequestSize)) { + ereport(WARNING, (errmsg("The xlog local requested %08X/%08X is beyond local max xlog size, stop requested", + (uint32)(startPtr >> 32), (uint32)startPtr))); + pg_usleep(timeout * 1000); + return false; + } + + WalDataMessageHeader msghdr; + // init + msghdr.dataStart = startPtr; + msghdr.walEnd = InvalidXLogRecPtr; + msghdr.sendTime = GetCurrentTimestamp(); + msghdr.sender_sent_location = InvalidXLogRecPtr; + msghdr.sender_write_location = InvalidXLogRecPtr; + msghdr.sender_replay_location = InvalidXLogRecPtr; + msghdr.sender_flush_location = InvalidXLogRecPtr; + msghdr.catchup = false; + + int headLen = sizeof(WalDataMessageHeader); + int totalLen = headLen + OBS_XLOG_SLICE_BLOCK_SIZE + 1; + // copy WalDataMessageHeader + rc = memcpy_s(recvBuf, totalLen, &msghdr, headLen); + securec_check(rc, "", ""); + // copy xlog from archive server + char* dataLocation = recvBuf + headLen; + (void)archive_replication_receive(startPtr, &dataLocation, &dataLength, timeout, NULL); + if (dataLength <= 0) { + return false; + } + + int validLen = headLen + dataLength; + recvBuf[validLen] = '\0'; /* Add terminating null */ + + elog(LOG,"[archive_receive]get xlog startlsn %08X/%08X, len %X\n", + (uint32)(startPtr >> 32), (uint32)startPtr, (uint32)validLen); + + /* Return received messages to caller */ + *type = 'w'; + *buffer = recvBuf; + *len = validLen; + return true; +} + + +void archive_send(const char *buffer, int nbytes) +{ +} + +void archive_disconnect(void) +{ + if (t_thrd.libwalreceiver_cxt.recvBuf != NULL) { + PQfreemem(t_thrd.libwalreceiver_cxt.recvBuf); + } + t_thrd.libwalreceiver_cxt.recvBuf = NULL; + + return; +} + +static char *archive_replication_get_xlog_prefix(XLogRecPtr recptr, bool onlyPath) +{ + errno_t rc = EOK; + char xlogfname[MAXFNAMELEN]; + char xlogfpath[MAXPGPATH]; + XLogSegNo xlogSegno = 0; + TimeLineID timeLine = DEFAULT_TIMELINE_ID; + + rc = memset_s(xlogfname, MAXFNAMELEN, 0, MAXFNAMELEN); + securec_check_ss_c(rc, "", ""); + rc = memset_s(xlogfpath, MAXPGPATH, 0, MAXPGPATH); + securec_check_ss_c(rc, "", ""); + + /* Generate directory path of pg_xlog on OBS when onlyPath is true */ + if (onlyPath == false) { + XLByteToSeg(recptr, xlogSegno); + rc = snprintf_s(xlogfname, MAXFNAMELEN, MAXFNAMELEN - 1, "%08X%08X%08X_%02u", timeLine, + (uint32)((xlogSegno) / XLogSegmentsPerXLogId), (uint32)((xlogSegno) % XLogSegmentsPerXLogId), + (uint32)((recptr / OBS_XLOG_SLICE_BLOCK_SIZE) & OBS_XLOG_SLICE_NUM_MAX)); + securec_check_ss_c(rc, "", ""); + } + if (IS_PGXC_COORDINATOR) { + if (IS_CNDISASTER_RECOVER_MODE) { + if (get_local_key_cn() == NULL) { + ereport(ERROR, (errcode(ERRCODE_UNDEFINED_FILE), errmsg("There is no hadr_key_cn"))); + return NULL; + } + rc = snprintf_s(xlogfpath, MAXPGPATH, MAXPGPATH - 1, "%s/%s/%s", + get_local_key_cn(), XLOGDIR, xlogfname); + securec_check_ss_c(rc, "", ""); + } else { + rc = snprintf_s(xlogfpath, MAXPGPATH, MAXPGPATH - 1, "%s/%s/%s", + g_instance.attr.attr_common.PGXCNodeName, XLOGDIR, xlogfname); + securec_check_ss_c(rc, "", ""); + } + } else { + rc = snprintf_s(xlogfpath, MAXPGPATH, MAXPGPATH - 1, XLOGDIR "/%s", xlogfname); + securec_check_ss_c(rc, "", ""); + } + + return pstrdup(xlogfpath); +} + +static char *path_skip_prefix(char *path) +{ + char *key = path; + /* Skip path prefix, prefix format:'xxxx/cn/' */ + key = strrchr(key, '/'); + if (key == NULL) { + ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("The xlog file path is invalid"))); + } + key = key + 1; // Skip character '/' + return key; +} + +static char *get_last_filename_from_list(const List *object_list) +{ + // The list returned from OBS is in lexicographic order. + ListCell* cell = list_tail(object_list); + if (cell == NULL || (lfirst(cell) == NULL)) { + ereport(ERROR, (errcode(ERRCODE_UNDEFINED_FILE), + errmsg("The xlog file on obs is not exist"))); + } + + /* Skip path prefix, prefix format:'xxxx/cn/' */ + char *key = strstr((char *)lfirst(cell), XLOGDIR); + + return pstrdup(key); +} + +/* + * xlog slice name format: {fileNamePrefix}/{timeline}+{LSN/16M/256}+{LSN/16M%256}_{slice}_{term}_{subTerm} + * samples: obs://{bucket}/xxxx/cn/pg_xlog/000000010000000000000003_08_00000002_00000005 + */ +static char *archive_replication_get_last_xlog_slice(XLogRecPtr startPtr, bool onlyPath, + bool needUpdateDBState, ArchiveConfig* archive_obs) +{ + char *fileNamePrefix = NULL; + char *fileName = NULL; + List *object_list = NIL; + List *obsXlogList = NIL; + char xlogfpath[MAXPGPATH]; + errno_t rc = EOK; + + fileNamePrefix = archive_replication_get_xlog_prefix(startPtr, onlyPath); + + if (IS_CNDISASTER_RECOVER_MODE) { + if (get_local_key_cn() == NULL) { + ereport(ERROR, (errcode(ERRCODE_UNDEFINED_FILE), errmsg("There is no hadr_key_cn"))); + return NULL; + } + rc = snprintf_s(xlogfpath, MAXPGPATH, MAXPGPATH - 1, "%s/%s", get_local_key_cn(), XLOGDIR); + securec_check_ss_c(rc, "", ""); + } else { + rc = snprintf_s(xlogfpath, MAXPGPATH, MAXPGPATH - 1, "%s", XLOGDIR); + securec_check_ss_c(rc, "", ""); + } + + if (needUpdateDBState) { + obsXlogList = ArchiveList(xlogfpath, archive_obs); + if (IsArchiveXlogBeyondRequest(startPtr, obsXlogList)) { + SetObsRebuildReason(WALSEGMENT_REBUILD); + ereport(ERROR, (errcode(ERRCODE_INVALID_STATUS), + errmsg("standby's local request lsn[%X/%X] mismatched with remote server", + (uint32)(startPtr >> 32), (uint32)startPtr))); + } + list_free_deep(obsXlogList); + obsXlogList = NIL; + } + + object_list = ArchiveList(fileNamePrefix, archive_obs); + if (object_list == NIL || object_list->length <= 0) { + ereport(LOG, (errmsg("The OBS objects with the prefix %s cannot be found.", fileNamePrefix))); + pfree(fileNamePrefix); + return NULL; + } + + if (IS_CNDISASTER_RECOVER_MODE) { + char tmpFileName[MAXPGPATH]; + rc = snprintf_s(tmpFileName, MAXPGPATH, MAXPGPATH - 1, "%s/%s", get_local_key_cn(), + get_last_filename_from_list(object_list)); + securec_check_ss_c(rc, "", ""); + fileName = pstrdup(tmpFileName); + } else { + fileName = get_last_filename_from_list(object_list); + } + if (fileName == NULL) { + ereport(LOG, (errmsg("Cannot get xlog file name with prefix:%s, obs list length:%d", + fileNamePrefix, object_list->length))); + } + + pfree(fileNamePrefix); + list_free_deep(object_list); + object_list = NIL; + return fileName; +} + + +/* + * Read the Xlog file that is calculated using the start LSN and whose name contains the maximum term. + * Returns the Xlog from the start position to the last. + */ +int archive_replication_receive(XLogRecPtr startPtr, char **buffer, int *bufferLength, + int timeout_ms, char* inner_buff) +{ + char *fileName = NULL; + uint32 offset = 0; + size_t readLen = 0; + char *xlogBuff = NULL; + uint32 actualXlogLen = 0; + volatile WalRcvData *walrcv = t_thrd.walreceiverfuncs_cxt.WalRcv; + errno_t rc = EOK; + TimestampTz start_time; + + if (buffer == NULL || *buffer == NULL || bufferLength == NULL) { + ereport(ERROR, (errcode(ERRCODE_NULL_VALUE_NOT_ALLOWED), + errmsg("Invalid parameter"))); + } + + *bufferLength = 0; + + fileName = archive_replication_get_last_xlog_slice(startPtr, false, true, &walrcv->archive_slot->archive_config); + if (fileName == NULL || strlen(fileName) == 0) { + ereport(LOG, (errmsg("Cannot find xlog file with LSN: %lu", startPtr))); + return -1; + } + + if (inner_buff != NULL) { + xlogBuff = inner_buff; + } else { + xlogBuff = (char*)palloc(OBS_XLOG_SLICE_FILE_SIZE); + if (xlogBuff == NULL) { + pfree(fileName); + return -1; + } + } + + rc = memset_s(xlogBuff, OBS_XLOG_SLICE_FILE_SIZE, 0, OBS_XLOG_SLICE_FILE_SIZE); + securec_check(rc, "", ""); + + /* calc begin offset */ + offset = ((uint32)(startPtr % XLogSegSize)) & ((uint32)(OBS_XLOG_SLICE_BLOCK_SIZE - 1)); + + /* Start timing */ + start_time = GetCurrentTimestamp(); + do { + readLen = ArchiveRead(fileName, 0, xlogBuff, OBS_XLOG_SLICE_FILE_SIZE, &walrcv->archive_slot->archive_config); + if (readLen < sizeof(int)) { + ereport(LOG, (errmsg("Cannot get xlog from OBS, object key:%s", fileName))); + /* retry */ + continue; + } + + /* Analysis file header to calc the actual file length */ + actualXlogLen = ntohl(*(uint32*)xlogBuff); + + Assert(actualXlogLen + sizeof(int) <= readLen); + Assert(actualXlogLen <= (int)(OBS_XLOG_SLICE_BLOCK_SIZE)); + + if (actualXlogLen > offset && (actualXlogLen + sizeof(int) <= readLen)) { + *bufferLength = actualXlogLen - offset; + rc = memcpy_s(*buffer, OBS_XLOG_SLICE_BLOCK_SIZE, + xlogBuff + OBS_XLOG_SLICE_HEADER_SIZE + offset, + *bufferLength); + securec_check(rc, "", ""); + break; + } + + pg_usleep(10 * 1000); // 10ms + } while (ComputeTimeStamp(start_time) < timeout_ms); + + if (inner_buff == NULL) { + /* xlogBuff is palloc from this function */ + pfree(xlogBuff); + } + pfree(fileName); + return 0; +} + +int ArchiveReplicationAchiver(const ArchiveXlogMessage *xlogInfo) +{ + errno_t rc = EOK; + int ret = 0; + char *fileName = NULL; + char *fileNamePrefix = NULL; + + int xlogreadfd = -1; + char xlogfpath[MAXPGPATH]; + char xlogfname[MAXFNAMELEN]; + + char *xlogBuff = NULL; + uint32 actualXlogLen = 0; + uint offset = 0; + + XLogSegNo xlogSegno = 0; + ArchiveSlotConfig *archive_slot = NULL; + archive_slot = getArchiveReplicationSlot(); + + xlogBuff = (char *)palloc(OBS_XLOG_SLICE_FILE_SIZE); + rc = memset_s(xlogBuff, OBS_XLOG_SLICE_FILE_SIZE, 0, OBS_XLOG_SLICE_FILE_SIZE); + securec_check(rc, "", ""); + + /* generate xlog path */ + XLByteToSeg(xlogInfo->targetLsn, xlogSegno); + if (xlogSegno == InvalidXLogSegPtr) { + ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("Invalid Lsn: %lu", xlogInfo->targetLsn))); + } + XLogFileName(xlogfname, DEFAULT_TIMELINE_ID, xlogSegno); + + rc = snprintf_s(xlogfpath, MAXPGPATH, MAXPGPATH - 1, "%s/" XLOGDIR "/%s", t_thrd.proc_cxt.DataDir, xlogfname); + securec_check_ss(rc, "\0", "\0"); + + canonicalize_path(xlogfpath); + xlogreadfd = open(xlogfpath, O_RDONLY | PG_BINARY, 0); + if (xlogreadfd < 0) { + ereport(ERROR, (errcode(ERRCODE_INSUFFICIENT_RESOURCES), + errmsg("Can not open file \"%s\": %s", xlogfpath, strerror(errno)))); + } + + /* Align down to 4M */ + offset = TYPEALIGN_DOWN(OBS_XLOG_SLICE_BLOCK_SIZE, ((xlogInfo->targetLsn) % XLogSegSize)); + if (lseek(xlogreadfd, (off_t)offset, SEEK_SET) < 0) { + ereport(ERROR, (errcode(ERRCODE_FILE_READ_FAILED), + errmsg("Can not locate to offset[%u] of xlog file \"%s\": %s", + offset, xlogfpath, strerror(errno)))); + } + + if (read(xlogreadfd, xlogBuff + OBS_XLOG_SLICE_HEADER_SIZE, OBS_XLOG_SLICE_BLOCK_SIZE) + != OBS_XLOG_SLICE_BLOCK_SIZE) { + ereport(ERROR, (errcode(ERRCODE_FILE_READ_FAILED), + errmsg("Can not read local xlog file \"%s\": %s", xlogfpath, strerror(errno)))); + } + + /* Add xlog slice header for recording the actual xlog length */ + actualXlogLen = (((uint32)((xlogInfo->targetLsn) % XLogSegSize)) & (OBS_XLOG_SLICE_BLOCK_SIZE - 1)) + 1; + + *(uint32*)xlogBuff = htonl(actualXlogLen); + + close(xlogreadfd); + + /* Get xlog slice file path on archive server */ + fileNamePrefix = archive_replication_get_xlog_prefix(xlogInfo->targetLsn, false); + fileName = (char*)palloc0(MAX_PATH_LEN); + + /* {xlog_name}_{sliece_num}_01(version_num)_00000001{tli}_00000001{subTerm} */ + rc = sprintf_s(fileName, MAX_PATH_LEN, "%s_%02d_%08u_%08u_%08d", fileNamePrefix, + CUR_OBS_FILE_VERSION, xlogInfo->term, xlogInfo->tli, xlogInfo->sub_term); + securec_check_ss(rc, "\0", "\0"); + + /* Upload xlog slice file to OBS */ + ret = ArchiveWrite(fileName, xlogBuff, OBS_XLOG_SLICE_FILE_SIZE, &archive_slot->archive_config); + + pfree(xlogBuff); + pfree(fileNamePrefix); + pfree(fileName); + + return ret; +} + +static bool GetOBSArchiveLastStartTime(ArchiveSlotConfig* obsArchiveSlot) +{ + List *objectList = NIL; + int readLen = 0; + char buffer[MAXPGPATH] = {0}; + char* lastStartTime; + char* tempToken = NULL; + + if (!IS_PGXC_COORDINATOR) { + objectList = ArchiveList(OBS_ARCHIVE_STATUS_FILE, &obsArchiveSlot->archive_config); + if (objectList == NIL || objectList->length <= 0) { + ereport(LOG, (errcode(ERRCODE_NO_DATA_FOUND), + (errmsg("The archive status file could not been found on OBS. Update start time with local time.")))); + return false; + } + readLen = ArchiveRead(OBS_ARCHIVE_STATUS_FILE, 0, buffer, MAXPGPATH, &obsArchiveSlot->archive_config); + if (readLen == 0) { + ereport(LOG, (errcode(ERRCODE_NO_DATA_FOUND), + (errmsg("Cannot read OBS archive status file! Update start time with local time.")))); + list_free_deep(objectList); + objectList = NIL; + return false; + } + buffer[MAXPGPATH - 1] = '\0'; + lastStartTime = strtok_s(buffer, "-", &tempToken); + if (lastStartTime == NULL) { + ereport(LOG, (errcode(ERRCODE_NO_DATA_FOUND), + (errmsg("Get first update start failed when reading status file.")))); + list_free_deep(objectList); + objectList = NIL; + return false; + } +#ifdef HAVE_INT64_TIMESTAMP + t_thrd.arch.arch_start_timestamp = atol(lastStartTime); +#else + t_thrd.arch.arch_start_timestamp = atof(lastStartTime); +#endif + list_free_deep(objectList); + objectList = NIL; + return true; + } + return false; +} + +void update_archive_start_end_location_file(XLogRecPtr endPtr, long endTime) +{ + StringInfoData buffer; + XLogRecPtr locStartPtr; + char* fileName = NULL; + char* obsfileName = NULL; + char preFileName[MAXPGPATH] = {0}; + char* xlogFileName = NULL; + char* tempToken = NULL; + uint32 xlogReadLogid = -1; + uint32 xlogReadLogSeg = -1; + TimeLineID tli = 0; + List *obsXlogList = NIL; + ListCell* cell = NULL; + errno_t rc = EOK; + + ArchiveSlotConfig* obs_archive_slot = getArchiveReplicationSlot(); + if (obs_archive_slot == NULL) { + return; + } + + if (!IS_PGXC_COORDINATOR) { + if (t_thrd.arch.arch_start_timestamp == 0 && !GetOBSArchiveLastStartTime(obs_archive_slot)) { + t_thrd.arch.arch_start_timestamp = endTime; + } + initStringInfo(&buffer); + obsXlogList = ArchiveList(XLOGDIR, &obs_archive_slot->archive_config); + if (obsXlogList == NIL || obsXlogList->length <= 0) { + return; + } + cell = list_head(obsXlogList); + fileName = (char*)lfirst(cell); + obsfileName = strrchr(fileName, '/'); + rc = memcpy_s(preFileName, MAXPGPATH, fileName, strlen(fileName) - strlen(obsfileName)); + securec_check(rc, "", ""); + obsfileName = obsfileName + 1; + tempToken = NULL; + xlogFileName = strtok_s(obsfileName, "_", &tempToken); + if (xlogFileName == NULL) { + ereport(ERROR, (errmsg("Failed get xlog file name from obsfileName %s.", obsfileName))); + } + if (sscanf_s(xlogFileName, "%08X%08X%08X", &tli, &xlogReadLogid, &xlogReadLogSeg) != 3) { + ereport(ERROR, (errmsg("failed to translate name to xlog: %s\n", xlogFileName))); + } + XLogSegNoOffsetToRecPtr(xlogReadLogid * XLogSegmentsPerXLogId + xlogReadLogSeg, 0, locStartPtr); + appendStringInfo(&buffer, "%ld-%ld_%lu-%lu_00000001_%s\n", t_thrd.arch.arch_start_timestamp, endTime, + locStartPtr, endPtr, preFileName); + + ArchiveWrite(OBS_ARCHIVE_STATUS_FILE, buffer.data, buffer.len, &obs_archive_slot->archive_config); + pfree(buffer.data); + /* release result list */ + list_free_deep(obsXlogList); + obsXlogList = NIL; + } +} + +int archive_replication_cleanup(XLogRecPtr recptr, ArchiveConfig *archive_config) +{ + char *fileNamePrefix = NULL; + List *object_list = NIL; + ListCell *cell = NULL; + char *key = NULL; + + errno_t rc = EOK; + int ret = 0; + char xlogfname[MAXFNAMELEN]; + char obsXlogPath[MAXPGPATH] = {0}; + int maxDelNum = 0; + size_t len = 0; + XLogSegNo xlogSegno = 0; + volatile WalRcvData *walrcv = t_thrd.walreceiverfuncs_cxt.WalRcv; + + XLByteToSeg(recptr, xlogSegno); + rc = snprintf_s(xlogfname, MAXFNAMELEN, MAXFNAMELEN - 1, "%08X%08X%08X_%02u", DEFAULT_TIMELINE_ID, + (uint32)((xlogSegno) / XLogSegmentsPerXLogId), (uint32)((xlogSegno) % XLogSegmentsPerXLogId), + (uint32)((recptr / OBS_XLOG_SLICE_BLOCK_SIZE) & OBS_XLOG_SLICE_NUM_MAX)); + securec_check_ss_c(rc, "", ""); + len = strlen(xlogfname); + + fileNamePrefix = archive_replication_get_xlog_prefix(recptr, true); + + ereport(LOG, (errmsg("The OBS objects with the prefix %s ", fileNamePrefix))); + if (archive_config == NULL) { + object_list = ArchiveList(fileNamePrefix, &walrcv->archive_slot->archive_config); + } else { + object_list = ArchiveList(fileNamePrefix, archive_config); + } + + if (object_list == NIL || object_list->length <= 0) { + ereport(LOG, (errmsg("The OBS objects with the prefix %s cannot be found.", fileNamePrefix))); + + pfree(fileNamePrefix); + return -1; + } + + /* At least 100 GB-OBS_XLOG_SAVED_FILES_NUM log files must be retained on obs. */ + if (archive_config == NULL) { + if (object_list->length <= OBS_XLOG_SAVED_FILES_NUM) { + ereport(LOG, (errmsg("[archive_replication_cleanup]Archive logs do not need to be deleted."))); + return 0; + } else { + maxDelNum = object_list->length - OBS_XLOG_SAVED_FILES_NUM; + ereport(LOG, (errmsg("[archive_replication_cleanup]Delete archive xlog before %s," + "number of deleted files is %d", xlogfname, maxDelNum))); + } + } + + foreach (cell, object_list) { + key = path_skip_prefix((char *)lfirst(cell)); + if (key == NULL) { + ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("Invalid OBS object key: %s", (char *)lfirst(cell)))); + } + + if (strncmp(basename(key), xlogfname, len) < 0) { + /* Ahead of the target lsn, need to delete */ + rc = snprintf_s(obsXlogPath, MAXPGPATH, MAXPGPATH - 1, "%s/%s", XLOGDIR, key); + securec_check_ss_c(rc, "", ""); + if (archive_config == NULL) { + ret = ArchiveDelete(obsXlogPath, &walrcv->archive_slot->archive_config); + } else { + ret = ArchiveDelete(obsXlogPath, archive_config); + } + if (ret != 0) { + ereport(WARNING, (errcode(ERRCODE_UNDEFINED_FILE), + errmsg("The OBS objects delete fail, ret=%d, key=%s", ret, key))); + } else { + /* The number of files to be deleted has reached the maximum. */ + if ((maxDelNum--) <= 0 && archive_config == NULL) { + break; + } + } + } else { + /* Reach the target lsn */ + break; + } + } + + /* release result list */ + list_free_deep(object_list); + object_list = NIL; + pfree(fileNamePrefix); + + return 0; +} + +int archive_replication_get_last_xlog(ArchiveXlogMessage *xlogInfo, ArchiveConfig* archive_obs) +{ + char *filePath = NULL; + char *fileBaseName = NULL; + errno_t rc = EOK; + TimeLineID timeLine; + int xlogSegId; + int xlogSegOffset; + int version = 0; + if (xlogInfo == NULL) { + return -1; + } + + filePath = archive_replication_get_last_xlog_slice(0, true, false, archive_obs); + if (filePath == NULL) { + ereport(LOG, (errmsg("Cannot find xlog file on OBS"))); + return -1; + } + + fileBaseName = basename(filePath); + ereport(DEBUG1, (errmsg("The last xlog on OBS: %s", filePath))); + + rc = sscanf_s(fileBaseName, "%8X%8X%8X_%2u_%02d_%08u_%08u_%08d", &timeLine, &xlogSegId, + &xlogSegOffset, &xlogInfo->slice, &version, &xlogInfo->term, &xlogInfo->tli, &xlogInfo->sub_term); + securec_check_for_sscanf_s(rc, 6, "\0", "\0"); + + ereport(DEBUG1, (errmsg("Parse xlog filename is %8X%8X%8X_%2u_%02d_%08u_%08u_%08d", timeLine, xlogSegId, + xlogSegOffset, xlogInfo->slice, version, xlogInfo->term, xlogInfo->tli, xlogInfo->sub_term))); + + XLogSegNoOffsetToRecPtr(xlogSegId * XLogSegmentsPerXLogId + xlogSegOffset, 0, xlogInfo->targetLsn); + + pfree(filePath); + return 0; +} + +static void check_danger_character(const char *inputEnvValue) +{ + if (inputEnvValue == NULL) { + return; + } + + const char *dangerCharacterList[] = { ";", "`", "\\", "'", "\"", ">", "<", "&", "|", "!", NULL }; + int i = 0; + + for (i = 0; dangerCharacterList[i] != NULL; i++) { + if (strstr(inputEnvValue, dangerCharacterList[i]) != NULL) { + ereport(ERROR, (errmsg("Failed to check input value: invalid token \"%s\".\n", dangerCharacterList[i]))); + } + } +} + +char* get_local_key_cn(void) +{ + int ret = 0; + int fd = -1; + char* gausshome = NULL; + char key_cn_file[MAXPGPATH] = {0}; + char key_cn[MAXFNAMELEN] = {0}; + + gausshome = getGaussHome(); + if (gausshome == NULL) { + ereport(ERROR, (errmsg("Failed get gausshome"))); + return NULL; + } + ret = snprintf_s(key_cn_file, MAXPGPATH, MAXPGPATH - 1, "%s/bin/hadr_key_cn", gausshome); + securec_check_ss(ret, "\0", "\0"); + + if (!file_exists(key_cn_file)) { + ereport(ERROR, (errcode(ERRCODE_UNDEFINED_FILE), errmsg("There is no hadr_key_cn"))); + return NULL; + } else { + canonicalize_path(key_cn_file); + fd = open(key_cn_file, O_RDONLY | PG_BINARY, 0); + if (fd < 0) + ereport(ERROR, (errcode_for_file_access(), errmsg("could not open file \"%s\"", key_cn_file))); + off_t size = lseek(fd, 0, SEEK_END); + if (size == -1 || size > MAXFNAMELEN - 1) { + close(fd); + ereport(ERROR, (errcode(ERRCODE_FILE_READ_FAILED), errmsg("Failed to read local hadr_key_cn"))); + return NULL; + } + (void)lseek(fd, 0, SEEK_SET); + + ret = read(fd, &key_cn, size); + if (ret != size) { + (void)close(fd); + ereport(ERROR, (errcode(ERRCODE_NO_DATA_FOUND), + (errmsg("The file name hadr_key_cn cannot be read now.")))); + return NULL; + } + (void)close(fd); + key_cn[size] = '\0'; + check_danger_character(key_cn); + return pstrdup(key_cn); + } +} diff --git a/src/gausskernel/storage/replication/basebackup.cpp b/src/gausskernel/storage/replication/basebackup.cpp index 9502dbbc5..47328fb0c 100755 --- a/src/gausskernel/storage/replication/basebackup.cpp +++ b/src/gausskernel/storage/replication/basebackup.cpp @@ -59,6 +59,8 @@ typedef struct { bool includewal; bool sendtblspcmapfile; bool isBuildFromStandby; + bool isCopySecureFiles; + bool isCopyUpgradeFile; bool isObsmode; } basebackup_options; @@ -103,6 +105,7 @@ static void SendBackupHeader(List *tablespaces); static void SendMotCheckpointHeader(const char* path); #endif static void base_backup_cleanup(int code, Datum arg); +static void SendSecureFileToDisasterCluster(basebackup_options *opt); static void perform_base_backup(basebackup_options *opt, DIR *tblspcdir); static void parse_basebackup_options(List *options, basebackup_options *opt); static int CompareWalFileNames(const void* a, const void* b); @@ -260,6 +263,104 @@ static void SetPaxosIndex(unsigned long long *consensusPaxosIdx) } #endif +static void ProcessSecureFilesForDisasterCluster(const char *path) +{ +#define BASE_PATH_LEN 2 + struct dirent *de = NULL; + char pathbuf[MAXPGPATH]; + struct stat statbuf; + int64 size = 0; + int rc = 0; + + + DIR *dir = AllocateDir(path); + + while ((de = ReadDir(dir, path)) != NULL) { + if (strcmp(de->d_name, ".") == 0 || strcmp(de->d_name, "..") == 0) { + continue; + } + if (!PostmasterIsAlive()) { + ereport(ERROR, (errcode_for_file_access(), errmsg("Postmaster exited, aborting active base backup"))); + } + + if (t_thrd.walsender_cxt.walsender_shutdown_requested || t_thrd.walsender_cxt.walsender_ready_to_stop) { + ereport(ERROR, (errcode_for_file_access(), errmsg("shutdown requested, aborting active base backup"))); + } + if (t_thrd.postmaster_cxt.HaShmData && + (t_thrd.walsender_cxt.server_run_mode != t_thrd.postmaster_cxt.HaShmData->current_mode)) { + ereport(ERROR, (errcode_for_file_access(), errmsg("server run mode changed, aborting active base backup"))); + } + rc = snprintf_s(pathbuf, MAXPGPATH, MAXPGPATH - 1, "%s/%s", path, de->d_name); + securec_check_ss(rc, "", ""); + + if (lstat(pathbuf, &statbuf) != 0) { + if (errno != ENOENT) { + ereport(ERROR, + (errcode_for_file_access(), errmsg("could not stat file or directory \"%s\": %m", pathbuf))); + } + /* If the file went away while scanning, it's no error. */ + continue; + } + if (S_ISDIR(statbuf.st_mode)) { + _tarWriteHeader(pathbuf + BASE_PATH_LEN, NULL, &statbuf); + size += BUILD_PATH_LEN; + ProcessSecureFilesForDisasterCluster(pathbuf); + } else if (S_ISREG(statbuf.st_mode)) { + bool sent = sendFile(pathbuf, pathbuf + BASE_PATH_LEN, &statbuf, true); + size = size + ((statbuf.st_size + 511) & ~511) + BUILD_PATH_LEN; + if (!sent) { + ereport(ERROR, + (errcode_for_file_access(), errmsg("could not send file \"%s\"", pathbuf))); + } + } + } + FreeDir(dir); +} + +static void SendSecureFileToDisasterCluster(basebackup_options *opt) +{ + char pathbuf[MAXPGPATH]; + struct stat statbuf; + StringInfoData buf; + tablespaceinfo *ti = (tablespaceinfo *)palloc0(sizeof(tablespaceinfo)); + List *tablespaces = NIL; + int64 size = 0; + int rc = 0; + + ti->size = size; + tablespaces = (List *)lappend(tablespaces, ti); + SendBackupHeader(tablespaces); + pq_beginmessage(&buf, 'H'); + pq_sendbyte(&buf, 0); /* overall format */ + pq_sendint16(&buf, 0); /* natts */ + pq_endmessage_noblock(&buf); + if (opt->isCopyUpgradeFile) { + rc = snprintf_s(pathbuf, MAXPGPATH, MAXPGPATH - 1, "./upgrade_phase_info"); + securec_check_ss(rc, "", ""); + if (lstat(pathbuf, &statbuf) != 0) { + if (errno != ENOENT) { + ereport(ERROR, + (errcode_for_file_access(), errmsg("could not stat file or directory \"%s\": %m", pathbuf))); + } else { + ereport(ERROR, + (errcode_for_file_access(), errmsg("upgrade file \"%s\" does not exist.", pathbuf))); + } + } + bool sent = sendFile(pathbuf, pathbuf + BASE_PATH_LEN, &statbuf, true); + size = size + ((statbuf.st_size + 511) & ~511) + BUILD_PATH_LEN; + if (!sent) { + ereport(ERROR, + (errcode_for_file_access(), errmsg("could not send file \"%s\"", pathbuf))); + } + pq_putemptymessage_noblock('c'); + pfree(ti); + return; + } + ProcessSecureFilesForDisasterCluster("./gs_secure_files"); + pq_putemptymessage_noblock('c'); + pfree(ti); +} + /* * Actually do a base backup for the specified tablespaces. * @@ -607,6 +708,8 @@ static void parse_basebackup_options(List *options, basebackup_options *opt) bool o_nowait = false; bool o_wal = false; bool o_buildstandby = false; + bool o_copysecurefiles = false; + bool o_iscopyupgradefile = false; bool o_tablespace_map = false; bool o_isobsmode = false; errno_t rc = memset_s(opt, sizeof(*opt), 0, sizeof(*opt)); @@ -656,6 +759,18 @@ static void parse_basebackup_options(List *options, basebackup_options *opt) } opt->isObsmode = true; o_isobsmode = true; + } else if (strcmp(defel->defname, "copysecurefile") == 0) { + if (o_copysecurefiles) { + ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("duplicate option \"%s\"", defel->defname))); + } + opt->isCopySecureFiles = true; + o_copysecurefiles = true; + } else if (strcmp(defel->defname, "needupgradefile") == 0) { + if (o_iscopyupgradefile) { + ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("duplicate option \"%s\"", defel->defname))); + } + opt->isCopyUpgradeFile = true; + o_iscopyupgradefile = true; } else { ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("option \"%s\" not recognized", defel->defname))); } @@ -687,6 +802,13 @@ void SendBaseBackup(BaseBackupCmd *cmd) WalSndSetState(WALSNDSTATE_BACKUP); + if (opt.isCopySecureFiles) { + SendSecureFileToDisasterCluster(&opt); + MemoryContextSwitchTo(old_context); + MemoryContextDelete(backup_context); + return; + } + if (u_sess->attr.attr_common.update_process_title) { char activitymsg[50]; int rc = 0; @@ -1037,6 +1159,8 @@ bool IsSkipPath(const char * pathName) return true; if (strcmp(pathName, "./global/pg_dw") == 0) return true; + if (strcmp(pathName, "./global/pg_dw_single") == 0) + return true; if (strcmp(pathName, "./global/pg_dw.build") == 0) return true; if (strcmp(pathName, "./global/config_exec_params") == 0) @@ -1870,6 +1994,7 @@ static void SendCompressedFile(char* readFileName, int basePathLen, struct stat& for (size_t i = 0; i < nchunks; i++) { addr->chunknos[i] = chunkIndex++; } + addr->checksum = AddrChecksum32(blockNum, addr); totalLen += len; } @@ -2132,7 +2257,7 @@ static XLogRecPtr GetMinArchiveSlotLSN(void) XLogRecPtr restart_lsn; ReplicationSlot *slot = &t_thrd.slot_cxt.ReplicationSlotCtl->replication_slots[slotno]; SpinLockAcquire(&slot->mutex); - if (slot->in_use == true && slot->archive_obs != NULL && slot->archive_obs->is_recovery == false) { + if (slot->in_use == true && slot->archive_config != NULL && slot->archive_config->is_recovery == false) { restart_lsn = slot->data.restart_lsn; if ((!XLByteEQ(restart_lsn, InvalidXLogRecPtr)) && (XLByteEQ(minArchSlotPtr, InvalidXLogRecPtr) || XLByteLT(restart_lsn, minArchSlotPtr))) { diff --git a/src/gausskernel/storage/replication/dataqueue.cpp b/src/gausskernel/storage/replication/dataqueue.cpp index d63303b49..cc5e0ce13 100644 --- a/src/gausskernel/storage/replication/dataqueue.cpp +++ b/src/gausskernel/storage/replication/dataqueue.cpp @@ -66,20 +66,13 @@ void PallocBCMBCMElementArray(void); Size DataQueueShmemSize(void) { Size size = 0; - - /* Don't need allocate SHM in single node mode */ - // if(!IS_SINGLE_NODE) - { - Assert(g_instance.attr.attr_storage.DataQueueBufSize > 0); - - /* DataQueue */ - size = sizeof(DataQueueData); - /* extra alignment padding for DataQueue I/O buffers */ - size = add_size(size, ALIGNOF_BUFFER); - /* and the buffers themselves */ - size = add_size(size, g_instance.attr.attr_storage.DataQueueBufSize * 1024); - } - + Assert(g_instance.attr.attr_storage.DataQueueBufSize > 0); + /* DataQueue */ + size = sizeof(DataQueueData); + /* extra alignment padding for DataQueue I/O buffers */ + size = add_size(size, ALIGNOF_BUFFER); + /* and the buffers themselves */ + size = add_size(size, g_instance.attr.attr_storage.DataQueueBufSize * 1024); return size; } @@ -307,7 +300,7 @@ DataQueuePtr PushToSenderQueue(const RelFileNode &rnode, BlockNumber blockNum, S LWLockRelease(DataSyncRepLock); if (g_instance.attr.attr_storage.max_wal_senders > 0) { - if (t_thrd.walsender_cxt.WalSndCtl->sync_master_standalone) { + if (t_thrd.walsender_cxt.WalSndCtl->sync_master_standalone && !IS_SHARED_STORAGE_MODE) { ereport( LOG, (errmsg("failed to push rnode %u/%u/%u blockno %u into data-queue becuase sync_master_standalone " diff --git a/src/gausskernel/storage/replication/datasyncrep.cpp b/src/gausskernel/storage/replication/datasyncrep.cpp index 54e78fb55..cd5479a25 100644 --- a/src/gausskernel/storage/replication/datasyncrep.cpp +++ b/src/gausskernel/storage/replication/datasyncrep.cpp @@ -33,6 +33,7 @@ #include "replication/datasender.h" #include "replication/datasender_private.h" #include "replication/walsender_private.h" +#include "replication/shared_storage_walreceiver.h" #include "replication/syncrep.h" #include "storage/cu.h" #include "storage/pmsignal.h" @@ -184,7 +185,7 @@ void WaitForDataSync(void) /* * if we modify the syncmode dynamically, we'll stop wait */ - if (t_thrd.walsender_cxt.WalSndCtl->sync_master_standalone || + if ((t_thrd.walsender_cxt.WalSndCtl->sync_master_standalone && !IS_SHARED_STORAGE_MODE) || synchronous_commit <= SYNCHRONOUS_COMMIT_LOCAL_FLUSH) { ereport(WARNING, (errmsg("canceling wait for synchronous replication due to syncmaster standalone."), diff --git a/src/gausskernel/storage/replication/dcf/dcf_callbackfuncs.cpp b/src/gausskernel/storage/replication/dcf/dcf_callbackfuncs.cpp index adaf975f3..fb109ead5 100755 --- a/src/gausskernel/storage/replication/dcf/dcf_callbackfuncs.cpp +++ b/src/gausskernel/storage/replication/dcf/dcf_callbackfuncs.cpp @@ -44,6 +44,10 @@ #ifndef ENABLE_MULTIPLE_NODES +#ifdef ENABLE_UT +#define static +#endif + bool SyncConfigFile(unsigned int* follower_id = nullptr); /* @@ -223,43 +227,21 @@ void ProcessStandbyFileTimeMessage(unsigned int src_node_id, const char* msg) static bool GetNodeInfo(const uint32 nodeID, char *nodeIP, uint32 nodeIPLen, uint32 *nodePort) { - char replicInfo[DCF_MAX_STREAM_INFO_LEN] = {0}; - int rc; - int len = dcf_query_stream_info(1, replicInfo, DCF_MAX_STREAM_INFO_LEN * sizeof(char)); - if (len == 0) { - ereport(ERROR, (errmsg("Failed to query dcf config!"))); - } - cJSON *nodeInfos = cJSON_Parse(replicInfo); - const cJSON *nodeJsons = NULL; - const cJSON *nodeJson = NULL; - if (nodeInfos == NULL) { - const char* errorPtr = cJSON_GetErrorPtr(); - if (errorPtr != NULL) { - ereport(ERROR, - (errmsg("Failed to parse dcf config!"))); - } else { - ereport(ERROR, - (errmsg("Failed to parse dcf config: unkonwn error."))); - } + cJSON *nodeInfos = nullptr; + /* nodeInfos is null when GetNodeInfos returned false */ + if (!GetNodeInfos(&nodeInfos)) { return false; } - nodeJsons = cJSON_GetObjectItem(nodeInfos, "nodes"); - if (cJSON_IsArray(nodeJsons)) { - cJSON_ArrayForEach(nodeJson, nodeJsons) - { - cJSON *idJson = cJSON_GetObjectItem(nodeJson, "node_id"); - if (uint32(idJson->valueint) == nodeID) { - cJSON *ipJson = cJSON_GetObjectItem(nodeJson, "ip"); - rc = strncpy_s(nodeIP, nodeIPLen, ipJson->valuestring, nodeIPLen - 1); - securec_check(rc, "\0", "\0"); - cJSON *portJson = cJSON_GetObjectItem(nodeJson, "port"); - *nodePort = (uint32)portJson->valueint; - } - } - } else { + const cJSON *nodeJsons = cJSON_GetObjectItem(nodeInfos, "nodes"); + if (nodeJsons == nullptr) { + cJSON_Delete(nodeInfos); + ereport(ERROR, (errmodule(MOD_DCF), errmsg("Get nodes info failed from DCF!"))); + return false; + } + const int DCF_ROLE_LEN = 64; + char localDCFRole[DCF_ROLE_LEN] = {0}; + if (!GetDCFNodeInfo(nodeJsons, nodeID, localDCFRole, DCF_ROLE_LEN, nodeIP, nodeIPLen, (int*)nodePort)) { cJSON_Delete(nodeInfos); - ereport(ERROR, - (errmsg("Must exist array format in the json file."))); return false; } cJSON_Delete(nodeInfos); @@ -277,7 +259,7 @@ static void SetGlobalCurRto(int nodeIndex, int64 currentRto) g_instance.rto_cxt.dcf_rto_standby_data[nodeIndex].current_rto = t_thrd.dcf_cxt.dcfCtxInfo->log_ctrl[nodeIndex].current_RTO; - ereport(LOG, (errmsg("current rto is %ld", + ereport(DEBUG1, (errmsg("current rto is %ld", g_instance.rto_cxt.dcf_rto_standby_data[nodeIndex].current_rto))); } } @@ -286,7 +268,7 @@ static void DoActualSleep(int nodeIndex, bool forceUpdate) { /* try to control log sent rate so that standby can flush and apply log under RTO seconds */ if (IS_PGXC_DATANODE) { - if (u_sess->attr.attr_storage.target_rto > 0 || u_sess->attr.attr_storage.time_to_target_rpo > 0) { + if (t_thrd.dcf_cxt.dcfCtxInfo->targetRTO > 0 || t_thrd.dcf_cxt.dcfCtxInfo->targetRPO > 0) { if ((t_thrd.dcf_cxt.dcfCtxInfo->log_ctrl[nodeIndex].sleep_count % t_thrd.dcf_cxt.dcfCtxInfo->log_ctrl[nodeIndex].sleep_count_limit == 0) || t_thrd.dcf_cxt.dcfCtxInfo->log_ctrl[nodeIndex].just_keep_alive || forceUpdate) { @@ -309,20 +291,20 @@ static void SetGlobalRtoData(int nodeIndex, uint32 srcNodeID) if (IS_PGXC_DATANODE) { g_instance.rto_cxt.dcf_rto_standby_data[nodeIndex].current_rto = t_thrd.dcf_cxt.dcfCtxInfo->log_ctrl[nodeIndex].current_RTO; - if (u_sess->attr.attr_storage.target_rto == 0) { + if (t_thrd.dcf_cxt.dcfCtxInfo->targetRTO == 0) { g_instance.rto_cxt.dcf_rto_standby_data[nodeIndex].current_sleep_time = 0; } else { g_instance.rto_cxt.dcf_rto_standby_data[nodeIndex].current_sleep_time = t_thrd.dcf_cxt.dcfCtxInfo->log_ctrl[nodeIndex].sleep_time; } - if (g_instance.rto_cxt.dcf_rto_standby_data[nodeIndex].target_rto != u_sess->attr.attr_storage.target_rto) { + if (g_instance.rto_cxt.dcf_rto_standby_data[nodeIndex].target_rto != t_thrd.dcf_cxt.dcfCtxInfo->targetRTO) { ereport(LOG, (errmodule(MOD_RTO_RPO), errmsg("target_rto changes to %d, previous target_rto is %d, current the sleep time is %ld", - u_sess->attr.attr_storage.target_rto, + t_thrd.dcf_cxt.dcfCtxInfo->targetRTO, g_instance.rto_cxt.dcf_rto_standby_data[nodeIndex].target_rto, g_instance.rto_cxt.dcf_rto_standby_data[nodeIndex].current_sleep_time))); - g_instance.rto_cxt.dcf_rto_standby_data[nodeIndex].target_rto = u_sess->attr.attr_storage.target_rto; + g_instance.rto_cxt.dcf_rto_standby_data[nodeIndex].target_rto = t_thrd.dcf_cxt.dcfCtxInfo->targetRTO; } char *remoteIP = g_instance.rto_cxt.dcf_rto_standby_data[nodeIndex].dest_ip; @@ -343,6 +325,32 @@ static void SetGlobalRtoData(int nodeIndex, uint32 srcNodeID) } } +static bool GetFlowControlParam(void) +{ + /* Get current rto and rpo */ + const int rtoLen = 10; /* 10 is enough for rto is between 0 and 3600 */ + char tempRTO[rtoLen] = {0}; + const int rpoLen = 10; /* 10 is enough for rpo is between 0 and 3600 */ + char tempRPO[rtoLen] = {0}; + if (dcf_get_param("DN_FLOW_CONTROL_RTO", tempRTO, rtoLen) != 0) { + ereport(WARNING, (errmodule(MOD_RTO_RPO), errmsg("Get rto from dcf failed!"))); + return false; + } + t_thrd.dcf_cxt.dcfCtxInfo->targetRTO = atoi(tempRTO); + ereport(DEBUG1, (errmodule(MOD_RTO_RPO), + errmsg("target rto got from dcf is %d", + t_thrd.dcf_cxt.dcfCtxInfo->targetRTO))); + if (dcf_get_param("DN_FLOW_CONTROL_RPO", tempRPO, rpoLen) != 0) { + ereport(WARNING, (errmodule(MOD_RTO_RPO), errmsg("Get rpo from dcf failed!"))); + return false; + } + t_thrd.dcf_cxt.dcfCtxInfo->targetRPO = atoi(tempRPO); + ereport(DEBUG1, (errmodule(MOD_RTO_RPO), + errmsg("target rpo got from dcf is %d", + t_thrd.dcf_cxt.dcfCtxInfo->targetRPO))); + return true; +} + /* * Regular reply from standby advising of WAL positions on standby server. */ @@ -383,14 +391,15 @@ static void DCFProcessStandbyReplyMessage(uint32 srcNodeID, const char* msg, uin char* id = g_instance.rto_cxt.dcf_rto_standby_data[nodeIndex].id; rc = strncpy_s(id, DCF_STANDBY_NAME_SIZE, reply.id, strlen(reply.id)); securec_check(rc, "\0", "\0"); - if (t_thrd.dcf_cxt.dcfCtxInfo->log_ctrl[nodeIndex].prev_reply_time > 0) { - forceUpdate = IsForceUpdate(t_thrd.dcf_cxt.dcfCtxInfo->log_ctrl[nodeIndex].prev_reply_time, reply.sendTime); - } + if (t_thrd.dcf_cxt.dcfCtxInfo->log_ctrl[nodeIndex].sleep_count_limit == 0) { ereport(WARNING, (errmsg("Sleep count limit of the node with id %d is 0", srcNodeID))); return; } + if (t_thrd.dcf_cxt.dcfCtxInfo->log_ctrl[nodeIndex].prev_reply_time > 0) { + forceUpdate = IsForceUpdate(t_thrd.dcf_cxt.dcfCtxInfo->log_ctrl[nodeIndex].prev_reply_time, reply.sendTime); + } if (IS_PGXC_DATANODE && ((t_thrd.dcf_cxt.dcfCtxInfo->log_ctrl[nodeIndex].sleep_count % t_thrd.dcf_cxt.dcfCtxInfo->log_ctrl[nodeIndex].sleep_count_limit) == 0 || @@ -403,7 +412,9 @@ static void DCFProcessStandbyReplyMessage(uint32 srcNodeID, const char* msg, uin t_thrd.dcf_cxt.dcfCtxInfo->log_ctrl[nodeIndex].prev_flush = reply.flush; t_thrd.dcf_cxt.dcfCtxInfo->log_ctrl[nodeIndex].prev_apply = reply.apply; } - + if (!GetFlowControlParam()) { + return; + } DoActualSleep(nodeIndex, forceUpdate); SetGlobalRtoData(nodeIndex, srcNodeID); } diff --git a/src/gausskernel/storage/replication/dcf/dcf_replication.cpp b/src/gausskernel/storage/replication/dcf/dcf_replication.cpp index e66eff16a..5b569dd44 100755 --- a/src/gausskernel/storage/replication/dcf/dcf_replication.cpp +++ b/src/gausskernel/storage/replication/dcf/dcf_replication.cpp @@ -40,6 +40,11 @@ #include "replication/dcf_data.h" #ifndef ENABLE_MULTIPLE_NODES + +#ifdef ENABLE_UT +#define static +#endif + #define TEMP_CONF_FILE "postgresql.conf.bak" #define CONFIG_BAK_FILENAME "postgresql.conf.bak" @@ -435,6 +440,8 @@ bool SetDcfParams() SetDcfParam("LOG_LEVEL", u_sess->attr.attr_storage.dcf_attr.dcf_log_level); + SetDcfParam("LOG_FILENAME_FORMAT", "1"); + /* to limit line width */ uint64_t dcf_guc_param = 0; @@ -573,7 +580,7 @@ bool IsForceUpdate(TimestampTz preSendTime, TimestampTz curSendTime) int microsecToTime; long millisecTimeDiff = 0; TimestampDifference(preSendTime, - preSendTime, &secToTime, µsecToTime); + curSendTime, &secToTime, µsecToTime); millisecTimeDiff = secToTime * MILLISECONDS_PER_SECONDS + microsecToTime / MILLISECONDS_PER_MICROSECONDS; ereport(DEBUG1, (errmsg("The millisec_time_diff is %ld", millisecTimeDiff))); @@ -661,24 +668,24 @@ static void DCFLogCtrlCalculateIndicatorChange(DCFLogCtrlData *logCtrl, int64 *g int64 rpoGapDiff = 0; int64 rpoGap = 0; - if (u_sess->attr.attr_storage.target_rto > 0) { + if (t_thrd.dcf_cxt.dcfCtxInfo->targetRTO > 0) { if (logCtrl->prev_RTO < 0) { logCtrl->prev_RTO = logCtrl->current_RTO; } - int targetRTO = u_sess->attr.attr_storage.target_rto; + int targetRTO = t_thrd.dcf_cxt.dcfCtxInfo->targetRTO; int64 currentRTO = logCtrl->current_RTO; rtoGap = currentRTO - targetRTO; rtoPrevGap = logCtrl->prev_RTO - targetRTO; rtoGapDiff = rtoGap - rtoPrevGap; } - if (u_sess->attr.attr_storage.time_to_target_rpo > 0) { + if (t_thrd.dcf_cxt.dcfCtxInfo->targetRPO > 0) { if (logCtrl->prev_RPO < 0) { logCtrl->prev_RPO = logCtrl->current_RPO; } - int targetRPO = u_sess->attr.attr_storage.time_to_target_rpo; + int targetRPO = t_thrd.dcf_cxt.dcfCtxInfo->targetRPO; int64 currentRPO = logCtrl->current_RPO; rpoGap = currentRPO - targetRPO; rpoPrevGap = logCtrl->prev_RPO - targetRPO; @@ -773,7 +780,7 @@ void DCFLogCtrlCalculateSleepTime(DCFLogCtrlData *logCtrl) (errmodule(MOD_RTO_RPO), errmsg("Log control take effect, target_rto is %d, current_rto is %ld, current the sleep time is %ld " "microseconds", - u_sess->attr.attr_storage.target_rto, logCtrl->current_RTO, + t_thrd.dcf_cxt.dcfCtxInfo->targetRTO, logCtrl->current_RTO, logCtrl->sleep_time))); } /* log control take does not effect */ @@ -781,7 +788,7 @@ void DCFLogCtrlCalculateSleepTime(DCFLogCtrlData *logCtrl) ereport(LOG, (errmodule(MOD_RTO_RPO), errmsg("Log control does not take effect, target_rto is %d, current_rto is %ld, current the sleep time " "is %ld microseconds", - u_sess->attr.attr_storage.target_rto, logCtrl->current_RTO, logCtrl->sleep_time))); + t_thrd.dcf_cxt.dcfCtxInfo->targetRTO, logCtrl->current_RTO, logCtrl->sleep_time))); } ereport(DEBUG4, (errmodule(MOD_RTO_RPO), errmsg("The sleep time for log control is : %ld microseconds", logCtrl->sleep_time))); @@ -1018,14 +1025,16 @@ void LaunchPaxos() if(dcfCtx == NULL) { ereport(FATAL, (errmsg("dcf context info is null, please init it."))); } - /* Set it after walreceiver is ready and before dcf start. */ - t_thrd.dcf_cxt.dcfCtxInfo->isWalRcvReady = true; SpinLockAcquire(&dcfCtx->dcfStartedMutex); if (!dcfCtx->isDcfStarted) { + /* Set it after walreceiver is ready and before dcf start. */ + t_thrd.dcf_cxt.dcfCtxInfo->isWalRcvReady = true; dcfCtx->isDcfStarted = InitPaxosModule(); } else { RewindDcfIndex(); + /* Set it after walreceiver is ready and dcf index rewound. */ + t_thrd.dcf_cxt.dcfCtxInfo->isWalRcvReady = true; } if (!dcfCtx->isDcfStarted) { SpinLockRelease(&dcfCtx->dcfStartedMutex); @@ -1226,13 +1235,22 @@ void DcfLogTruncate() errmsg("Failed to write paxosindex into paxosIndex file and don't truncate this time!"))); return; } - unsigned long long toTruncateLsn = Min(static_cast(minAppliedIdx), flushedIdx); - if (dcf_truncate(1, toTruncateLsn) == 0) { - dcfCtx->truncateDcfIndex = toTruncateLsn; + unsigned long long toTruncateIdx = Min(static_cast(minAppliedIdx), flushedIdx); + /* + * One more DCF log entry should be kept + * in case not continuous DCF log exception happened. + */ + const unsigned long long minTruncateIdx = 2; + if (toTruncateIdx < minTruncateIdx) { + return; + } + toTruncateIdx -= 1; + if (dcf_truncate(1, toTruncateIdx) == 0) { + dcfCtx->truncateDcfIndex = toTruncateIdx; } else { ereport(WARNING,(errmodule(MOD_DCF), errmsg("Failed to truncate DCF log before index %lld.", - toTruncateLsn))); + toTruncateIdx))); } } else { ereport(WARNING, (errmodule(MOD_DCF), errmsg("Failed to get cluster min applied index."))); @@ -1431,4 +1449,70 @@ void DcfSendArchiveXlogResponse(ArchiveTaskStatus *archive_task_status) pg_memory_barrier(); pg_atomic_write_u32(pitr_task_status, PITR_TASK_NONE); } + +/* It is necessary to free nodeinfos outside when call this function */ +bool GetNodeInfos(cJSON **nodeInfos) +{ + char replicInfo[DCF_MAX_STREAM_INFO_LEN] = {0}; + int len = dcf_query_stream_info(1, replicInfo, DCF_MAX_STREAM_INFO_LEN * sizeof(char)); + if (len == 0) { + ereport(WARNING, (errmodule(MOD_DCF), errmsg("Failed to query dcf config!"))); + return false; + } + *nodeInfos = cJSON_Parse(replicInfo); + if (*nodeInfos == nullptr) { + const char* errorPtr = cJSON_GetErrorPtr(); + if (errorPtr != nullptr) { + ereport(WARNING, (errmodule(MOD_DCF), errmsg("Failed to parse dcf config: %s!", errorPtr))); + } else { + ereport(WARNING, (errmodule(MOD_DCF), errmsg("Failed to parse dcf config: unkonwn error."))); + } + return false; + } + return true; +} + +/* Get dcf role, ip and port from cJSON corresponding to its nodeID */ +bool GetDCFNodeInfo(const cJSON *nodeJsons, int nodeID, char *role, int roleLen, char *ip, int ipLen, int *port) +{ + if (!cJSON_IsArray(nodeJsons)) { + ereport(WARNING, (errmodule(MOD_DCF), errmsg("Must exist array format in the json file."))); + return false; + } + const cJSON* nodeJson = nullptr; + errno_t rc = EOK; + cJSON_ArrayForEach(nodeJson, nodeJsons) + { + cJSON *idJson = cJSON_GetObjectItem(nodeJson, "node_id"); + if (idJson == nullptr) { + ereport(WARNING, (errmodule(MOD_DCF), errmsg("No items with node id %d!", nodeID))); + return false; + } + if (idJson->valueint == nodeID) { + cJSON *roleJson = cJSON_GetObjectItem(nodeJson, "role"); + if (roleJson == nullptr) { + ereport(WARNING, (errmodule(MOD_DCF), errmsg("No role item with node id %d!", nodeID))); + return false; + } + rc = strcpy_s(role, roleLen, roleJson->valuestring); + securec_check(rc, "\0", "\0"); + cJSON *ipJson = cJSON_GetObjectItem(nodeJson, "ip"); + if (ipJson == nullptr) { + ereport(WARNING, (errmodule(MOD_DCF), errmsg("No ip item with node id %d!", nodeID))); + return false; + } + rc = strcpy_s(ip, ipLen, ipJson->valuestring); + securec_check(rc, "\0", "\0"); + cJSON *portJson = cJSON_GetObjectItem(nodeJson, "port"); + if (portJson == nullptr) { + ereport(WARNING, (errmodule(MOD_DCF), errmsg("No port item with node id %d!", nodeID))); + return false; + } + *port = portJson->valueint; + return true; + } + } + ereport(WARNING, (errmodule(MOD_DCF), errmsg("No node item with node id %d found!", nodeID))); + return false; +} #endif diff --git a/src/gausskernel/storage/replication/heartbeat.cpp b/src/gausskernel/storage/replication/heartbeat.cpp index 668a342f0..a0b557cbf 100755 --- a/src/gausskernel/storage/replication/heartbeat.cpp +++ b/src/gausskernel/storage/replication/heartbeat.cpp @@ -409,12 +409,18 @@ TimestampTz get_last_reply_timestamp(int replindex) return last_reply_time; } - if (replindex < START_REPLNODE_NUM || replindex >= MAX_REPLNODE_NUM) { + if (replindex < START_REPLNODE_NUM || replindex >= DOUBLE_MAX_REPLNODE_NUM) { ereport(COMMERROR, (errmsg("Invalid channel id: %d.", replindex))); return last_reply_time; } - if (t_thrd.postmaster_cxt.ReplConnArray[replindex] == NULL) { + ReplConnInfo* replconninfo = NULL; + if (replindex >= MAX_REPLNODE_NUM) + replconninfo = t_thrd.postmaster_cxt.CrossClusterReplConnArray[replindex - MAX_REPLNODE_NUM]; + else + replconninfo = t_thrd.postmaster_cxt.ReplConnArray[replindex]; + + if (replconninfo == NULL) { ereport(COMMERROR, (errmsg("The reliconninfo is not find."))); return last_reply_time; } @@ -442,9 +448,13 @@ void InitHeartbeatTimestamp() { volatile heartbeat_state *stat = t_thrd.heartbeat_cxt.state; + ReplConnInfo* replconninfo = NULL; SpinLockAcquire(&stat->mutex); - for (int i = 1; i < MAX_REPLNODE_NUM; i++) { - ReplConnInfo* replconninfo = t_thrd.postmaster_cxt.ReplConnArray[i]; + for (int i = 1; i < DOUBLE_MAX_REPLNODE_NUM; i++) { + if (i >= MAX_REPLNODE_NUM) + replconninfo = t_thrd.postmaster_cxt.CrossClusterReplConnArray[i - MAX_REPLNODE_NUM]; + else + replconninfo = t_thrd.postmaster_cxt.ReplConnArray[i]; if (replconninfo == NULL) { continue; } @@ -502,8 +512,8 @@ static void heartbeat_kill(int code, Datum arg) stat->pid = 0; stat->lwpId = 0; - rc = memset_s(stat->channel_array, sizeof(channel_info) * MAX_REPLNODE_NUM, 0, - sizeof(channel_info) * MAX_REPLNODE_NUM); + rc = memset_s(stat->channel_array, sizeof(channel_info) * DOUBLE_MAX_REPLNODE_NUM, 0, + sizeof(channel_info) * DOUBLE_MAX_REPLNODE_NUM); securec_check_c(rc, "", ""); SpinLockRelease(&stat->mutex); diff --git a/src/gausskernel/storage/replication/heartbeat/heartbeat_conn.cpp b/src/gausskernel/storage/replication/heartbeat/heartbeat_conn.cpp index 8f8180358..c8c04f860 100644 --- a/src/gausskernel/storage/replication/heartbeat/heartbeat_conn.cpp +++ b/src/gausskernel/storage/replication/heartbeat/heartbeat_conn.cpp @@ -169,9 +169,13 @@ void UpdateLastHeartbeatTime(const char *remoteHost, int remotePort, TimestampTz { volatile heartbeat_state *stat = t_thrd.heartbeat_cxt.state; + ReplConnInfo* replconninfo = NULL; SpinLockAcquire(&stat->mutex); - for (int i = 1; i < MAX_REPLNODE_NUM; i++) { - ReplConnInfo* replconninfo = t_thrd.postmaster_cxt.ReplConnArray[i]; + for (int i = 1; i < DOUBLE_MAX_REPLNODE_NUM; i++) { + if (i >= MAX_REPLNODE_NUM) + replconninfo = t_thrd.postmaster_cxt.CrossClusterReplConnArray[i - MAX_REPLNODE_NUM]; + else + replconninfo = t_thrd.postmaster_cxt.ReplConnArray[i]; if (replconninfo == NULL) { continue; } diff --git a/src/gausskernel/storage/replication/heartbeat/libpq/fe-connect.cpp b/src/gausskernel/storage/replication/heartbeat/libpq/fe-connect.cpp index 9dc2f63c5..f699e2f4d 100644 --- a/src/gausskernel/storage/replication/heartbeat/libpq/fe-connect.cpp +++ b/src/gausskernel/storage/replication/heartbeat/libpq/fe-connect.cpp @@ -25,9 +25,11 @@ #include #include #include "utils/elog.h" +#include "knl/knl_variable.h" #include "libpq/ip.h" #include "replication/heartbeat/libpq/libpq-fe.h" #include "utils/palloc.h" +#include "utils/timestamp.h" #define SOCK_ERRNO errno #define SOCK_ERRNO_SET(e) (errno = (e)) @@ -131,6 +133,9 @@ static int internalConnect(ConnParam *param) int sock = -1; errno_t rc = 0; struct sockaddr_in remoteAddr; + TimestampTz nowFailedTimestamp = 0; + long secs = 0; + int msecs = 0; rc = memset_s(&remoteAddr, sizeof(remoteAddr), 0, sizeof(remoteAddr)); securec_check(rc, "", ""); remoteAddr.sin_family = AF_INET; @@ -205,7 +210,14 @@ static int internalConnect(ConnParam *param) * are in nonblock mode. If it does, well, too bad. */ if (connect(sock, (struct sockaddr *)&remoteAddr, sizeof(struct sockaddr)) < 0) { - ereport(COMMERROR, (errmsg("Connect failed."))); + t_thrd.heartbeat_cxt.total_failed_times++; + nowFailedTimestamp = GetCurrentTimestamp(); + TimestampDifference(t_thrd.heartbeat_cxt.last_failed_timestamp, nowFailedTimestamp, &secs, &msecs); + if (secs > 1) { + t_thrd.heartbeat_cxt.last_failed_timestamp = nowFailedTimestamp; + ereport(COMMERROR, (errmsg("Connect failed, total failed times is %d.", + t_thrd.heartbeat_cxt.total_failed_times))); + } close(sock); return -1; } diff --git a/src/gausskernel/storage/replication/libpqwalreceiver.cpp b/src/gausskernel/storage/replication/libpqwalreceiver.cpp index e475256ac..b2d338d96 100755 --- a/src/gausskernel/storage/replication/libpqwalreceiver.cpp +++ b/src/gausskernel/storage/replication/libpqwalreceiver.cpp @@ -47,13 +47,12 @@ /* Prototypes for private functions */ static bool libpq_select(int timeout_ms); static PGresult *libpqrcv_PQexec(const char *query); - -static void ha_set_rebuild_reason(HaRebuildReason reason); static void ha_set_conn_channel(void); static void ha_add_disconnect_count(void); -static void ha_set_rebuild_connerror(HaRebuildReason reason, WalRcvConnError connerror); + static void ha_set_port_to_remote(PGconn *dummy_conn, int ha_port); static char *stringlist_to_identifierstr(PGconn *conn, List *strings); + extern void SetDataRcvDummyStandbySyncPercent(int percent); #define AmWalReceiverForDummyStandby() \ @@ -196,6 +195,42 @@ bool libpqrcv_connect_for_TLI(TimeLineID *timeLineID, char *conninfo) return true; } +#ifndef ENABLE_MULTIPLE_NODES +#define IS_PRIMARY_NORMAL(servermode) (servermode == PRIMARY_MODE) +#else +#define IS_PRIMARY_NORMAL(servermode) ((servermode == PRIMARY_MODE) || (servermode == NORMAL_MODE)) +#endif + +static bool CheckRemoteServerSharedStorage(ServerMode remoteMode, PGresult* res) +{ + if (IS_SHARED_STORAGE_PRIMARY_CLUSTER_STANDBY_MODE && !IS_SHARED_STORAGE_CASCADE_STANDBY_MODE) { + if (!IS_PRIMARY_NORMAL(remoteMode)) { + PQclear(res); + ereport(ERROR, (errcode(ERRCODE_INTERNAL_ERROR), + errmsg("for standby the mode of the remote server must be primary, current is %s", + wal_get_role_string(remoteMode, true)))); + return false; + } + } else if (IS_SHARED_STORAGE_CASCADE_STANDBY_MODE) { + if (remoteMode != MAIN_STANDBY_MODE) { + PQclear(res); + ereport(ERROR, (errcode(ERRCODE_INTERNAL_ERROR), + errmsg("for main-standby cluster standby the mode of the remote server must be " + "main standby, current is %s", wal_get_role_string(remoteMode, true)))); + return false; + } + } else if (IS_SHARED_STORAGE_STANBY_CLUSTER_MODE) { + if (!IS_PRIMARY_NORMAL(remoteMode) && remoteMode != MAIN_STANDBY_MODE) { + PQclear(res); + ereport(ERROR, (errcode(ERRCODE_INTERNAL_ERROR), + errmsg("for standby cluster standby the mode of the remote server must be " + "primary or main standby, current is %s", wal_get_role_string(remoteMode, true)))); + return false; + } + } + return true; +} + void StartRemoteStreaming(const LibpqrcvConnectParam *options) { Assert(t_thrd.libwalreceiver_cxt.streamConn != NULL); @@ -407,9 +442,9 @@ static ServerMode IdentifyRemoteMode() num_fields))); } remoteMode = (ServerMode)pg_strtoint32(PQgetvalue(res, 0, 0)); - if (!t_thrd.walreceiver_cxt.AmWalReceiverForFailover && remoteMode != PRIMARY_MODE && + if (!t_thrd.walreceiver_cxt.AmWalReceiverForFailover && (!IS_PRIMARY_NORMAL(remoteMode)) && /* remoteMode of cascade standby is a standby */ - !t_thrd.xlog_cxt.is_cascade_standby) { + !t_thrd.xlog_cxt.is_cascade_standby && !IS_SHARED_STORAGE_MODE) { PQclear(res); if (dummyStandbyMode) { @@ -421,7 +456,8 @@ static ServerMode IdentifyRemoteMode() wal_get_role_string(remoteMode)))); } - if (t_thrd.postmaster_cxt.HaShmData->is_cascade_standby && remoteMode != STANDBY_MODE) { + if (t_thrd.postmaster_cxt.HaShmData->is_cascade_standby && remoteMode != STANDBY_MODE && + !IS_SHARED_STORAGE_MODE) { PQclear(res); SpinLockAcquire(&walrcv->mutex); @@ -429,10 +465,17 @@ static ServerMode IdentifyRemoteMode() SpinLockRelease(&walrcv->mutex); ereport(ERROR, (errcode(ERRCODE_INTERNAL_ERROR), - errmsg("the mode of the remote server must be standby, current is %s", + errmsg("for cascade standby the mode of the remote server must be standby, current is %s", wal_get_role_string(remoteMode, true)))); } + if (IS_SHARED_STORAGE_MODE) { + if (!CheckRemoteServerSharedStorage(remoteMode, res)) { + PQclear(res); + return UNKNOWN_MODE; + } + } + PQclear(res); return remoteMode; } @@ -482,12 +525,14 @@ static int32 IdentifyRemoteVersion() (errcode(ERRCODE_INVALID_STATUS), errmsg("could not get the local protocal version, make sure the PG_PROTOCOL_VERSION is defined"))); } - if (walrcv->conn_target != REPCONNTARGET_DUMMYSTANDBY && (localTerm == 0 || localTerm > remoteTerm)) { - PQclear(res); - ereport(ERROR, (errcode(ERRCODE_INVALID_STATUS), - errmsg("invalid local term or remote term smaller than local. remote term[%u], local term[%u]", - remoteTerm, localTerm))); - return false; + if (!IS_SHARED_STORAGE_STANBY_CLUSTER_MODE) { + if (walrcv->conn_target != REPCONNTARGET_DUMMYSTANDBY && (localTerm == 0 || localTerm > remoteTerm) && + !AM_HADR_WAL_RECEIVER) { + PQclear(res); + ereport(ERROR, (errcode(ERRCODE_INVALID_STATUS), + errmsg("invalid local term or remote term smaller than local. remote term[%u], local term[%u]", + remoteTerm, localTerm))); + } } /* @@ -550,17 +595,40 @@ bool libpqrcv_connect(char *conninfo, XLogRecPtr *startpoint, char *slotname, in * database name is ignored by the server in replication mode, but specify * "replication" for .pgpass lookup. */ - if (dummyStandbyMode) + if (dummyStandbyMode) { nRet = snprintf_s(conninfoRepl, sizeof(conninfoRepl), sizeof(conninfoRepl) - 1, "%s dbname=replication replication=true " "fallback_application_name=dummystandby " "connect_timeout=%d", conninfo, u_sess->attr.attr_storage.wal_receiver_connect_timeout); - else { - char hostname[255]; - - (void)gethostname(hostname, 255); - + } else if (AM_HADR_WAL_RECEIVER) { + char passwd[MAXPGPATH] = {'\0'}; + char username[MAXPGPATH] = {'\0'}; + GetPasswordForHadrStreamingReplication(username, passwd); + nRet = snprintf_s(conninfoRepl, sizeof(conninfoRepl), sizeof(conninfoRepl) - 1, + "%s dbname=postgres replication=hadr_main_standby " + "fallback_application_name=hadr_%s " + "connect_timeout=%d user=%s password=%s", + conninfo, + (u_sess->attr.attr_common.application_name && + strlen(u_sess->attr.attr_common.application_name) > 0) + ? u_sess->attr.attr_common.application_name + : "walreceiver", + u_sess->attr.attr_storage.wal_receiver_connect_timeout, username, passwd); + rc = memset_s(passwd, MAXPGPATH, 0, MAXPGPATH); + securec_check(rc, "\0", "\0"); + } else if (IS_SHARED_STORAGE_STANBY_CLUSTER_MODE) { + nRet = snprintf_s(conninfoRepl, sizeof(conninfoRepl), sizeof(conninfoRepl) - 1, + "%s dbname=postgres replication=standby_cluster " + "fallback_application_name=%s_hass " + "connect_timeout=%d", + conninfo, + (u_sess->attr.attr_common.application_name && + strlen(u_sess->attr.attr_common.application_name) > 0) + ? u_sess->attr.attr_common.application_name + : "walreceiver", + u_sess->attr.attr_storage.wal_receiver_connect_timeout); + } else { nRet = snprintf_s(conninfoRepl, sizeof(conninfoRepl), sizeof(conninfoRepl) - 1, "%s dbname=replication replication=true " "fallback_application_name=%s " @@ -574,9 +642,39 @@ bool libpqrcv_connect(char *conninfo, XLogRecPtr *startpoint, char *slotname, in } securec_check_ss(nRet, "", ""); - - ereport(LOG, (errmsg("Connecting to remote server :%s", conninfoRepl))); - + if (AM_HADR_WAL_RECEIVER) { + char *tmp = NULL; + char *tok = NULL; + char printConnInfo[MAXCONNINFO] = {0}; + char* copyConnInfo = NULL; + copyConnInfo = pstrdup(conninfoRepl); + if (copyConnInfo == NULL) { + ereport(ERROR, + (errcode(ERRCODE_INVALID_STATUS), errmsg("could not get walreceiver conncetion info."))); + } + tok = strtok_s(copyConnInfo, " ", &tmp); + if (tok == NULL) { + if (copyConnInfo != NULL) { + pfree_ext(copyConnInfo); + } + ereport(ERROR, + (errcode(ERRCODE_INVALID_STATUS), errmsg("could not parse walreceiver conncetion info string."))); + } + while (strncmp(tok, "password=", strlen("password=")) != 0) { + nRet = strcat_s(printConnInfo, MAXCONNINFO - 1, tok); + securec_check_ss(nRet, "", ""); + nRet = strcat_s(printConnInfo, MAXCONNINFO - 1, " "); + securec_check_ss(nRet, "", ""); + tok = strtok_s(NULL, " ", &tmp); + } + ereport(LOG, (errmsg("Connecting to remote server :%s", printConnInfo))); + if (copyConnInfo != NULL) { + pfree(copyConnInfo); + copyConnInfo = NULL; + } + } else { + ereport(LOG, (errmsg("Connecting to remote server :%s", conninfoRepl))); + } retry: /* 1. try to connect to primary */ t_thrd.libwalreceiver_cxt.streamConn = PQconnectdb(conninfoRepl); @@ -598,12 +696,19 @@ retry: SpinLockRelease(&walrcv->mutex); } ha_add_disconnect_count(); + ereport(WARNING, (errcode(ERRCODE_CONNECTION_TIMED_OUT), + errmsg("walreceiver could not connect to the remote server,the connection info :%s : %s", + conninfo, PQerrorMessage(t_thrd.libwalreceiver_cxt.streamConn)))); + libpqrcv_disconnect(); ereport(ERROR, (errcode(ERRCODE_CONNECTION_TIMED_OUT), - errmsg("walreceiver could not connect to the remote server,the connection info :%s : %s", - conninfo, PQerrorMessage(t_thrd.libwalreceiver_cxt.streamConn)))); + errmsg("walreceiver could not connect and shutting down"))); } ereport(LOG, (errmsg("Connected to remote server :%s success.", conninfo))); + if (AM_HADR_WAL_RECEIVER) { + rc = memset_s(conninfoRepl, MAXCONNINFO + 75, 0, MAXCONNINFO + 75); + securec_check(rc, "\0", "\0"); + } /* 2. identify version */ remoteTerm = IdentifyRemoteVersion(); @@ -619,11 +724,22 @@ retry: } #ifndef ENABLE_MULTIPLE_NODES - if (t_thrd.xlog_cxt.is_cascade_standby) { + if (t_thrd.xlog_cxt.is_cascade_standby && !t_thrd.postmaster_cxt.HaShmData->is_cross_region) { IdentifyRemoteAvailableZone(); } #endif + if (IS_SHARED_STORAGE_STANBY_CLUSTER_MODE) { + if (walrcv->conn_target != REPCONNTARGET_DUMMYSTANDBY && (localTerm == 0 || localTerm > remoteTerm)) { + PQclear(res); + ha_set_rebuild_connerror(WALSEGMENT_REBUILD, REPL_INFO_ERROR); + ereport(ERROR, (errcode(ERRCODE_INVALID_STATUS), + errmsg("shared storage: invalid local term or remote term smaller than local." + "remote term[%u], local term[%u]", remoteTerm, localTerm))); + return false; + } + } + /* * Get the system identifier and timeline ID as a DataRow message from the * primary server. @@ -752,7 +868,8 @@ retry: /* standby connect to standby */ bool crcvalid = false; /* local xlog must be more than(or equal to) remote, and last crc must be matched */ - if (XLByteLE(remoteMaxLsn, localRec) && remoteMaxLsnCrc == GetXlogRecordCrc(remoteMaxLsn, crcvalid)) { + if (XLByteLE(remoteMaxLsn, localRec) && + remoteMaxLsnCrc == GetXlogRecordCrc(remoteMaxLsn, crcvalid, XLogPageRead, 0)) { ereport(LOG, (errmsg("crc check on remote standby success, local standby " "will promote to primary"))); SetWalRcvDummyStandbySyncPercent(SYNC_DUMMY_STANDBY_END); @@ -797,7 +914,7 @@ retry: */ if (XLByteEQ(remoteMaxLsn, InvalidXLogRecPtr) || (XLByteLT(remoteMaxLsn, localRec) && - remoteMaxLsnCrc == GetXlogRecordCrc(remoteMaxLsn, crcvalid))) { + remoteMaxLsnCrc == GetXlogRecordCrc(remoteMaxLsn, crcvalid, XLogPageRead, 0))) { ereport(LOG, (errmsg("invalid crc on secondary standby, no xlog, standby " "will promote primary"))); SetWalRcvDummyStandbySyncPercent(SYNC_DUMMY_STANDBY_END); @@ -877,6 +994,14 @@ retry: } /* Create replication slot if need */ + if (AM_HADR_WAL_RECEIVER && slotname != NULL) { + rc = strcat_s(slotname, NAMEDATALEN - 1, "_hadr"); + securec_check(rc, "", ""); + } else if (IS_SHARED_STORAGE_STANBY_CLUSTER_MODE && slotname != NULL) { + rc = strcat_s(slotname, NAMEDATALEN - 1, "_hass"); + securec_check(rc, "", ""); + } + if (!t_thrd.walreceiver_cxt.AmWalReceiverForFailover && slotname != NULL) { CreateRemoteReplicationSlot(*startpoint, slotname, false); } @@ -1162,6 +1287,10 @@ bool libpqrcv_receive(int timeout, unsigned char *type, char **buffer, int *len) /* Return received messages to caller */ *type = *((unsigned char *)t_thrd.libwalreceiver_cxt.recvBuf); + if (IS_SHARED_STORAGE_MODE && !AM_HADR_WAL_RECEIVER && *type == 'w') { + *len = 0; + return false; + } *buffer = t_thrd.libwalreceiver_cxt.recvBuf + sizeof(*type); *len = rawlen - sizeof(*type); @@ -1212,19 +1341,6 @@ void SetObsRebuildReason(HaRebuildReason reason) ha_set_rebuild_connerror(reason, REPL_INFO_ERROR); } -/* - * Set the specified rebuild reason in HaShmData. when set the rebuild reason, - * the hashmdata->current_repl implys the current replconnlist. - * Then set the reason in the corresponding variable. - */ -static void ha_set_rebuild_reason(HaRebuildReason reason) -{ - volatile HaShmemData *hashmdata = t_thrd.postmaster_cxt.HaShmData; - SpinLockAcquire(&hashmdata->mutex); - hashmdata->repl_reason[hashmdata->current_repl] = reason; - SpinLockRelease(&hashmdata->mutex); -} - /* * Get the current channel info from streamConn, then save it in WalRcv. */ @@ -1292,22 +1408,6 @@ static void ha_add_disconnect_count() SpinLockRelease(&hashmdata->mutex); } -/* set the rebuild reason and walreceiver connerror. */ -static void ha_set_rebuild_connerror(HaRebuildReason reason, WalRcvConnError connerror) -{ - volatile WalRcvData *walrcv = t_thrd.walreceiverfuncs_cxt.WalRcv; - - ha_set_rebuild_reason(reason); - SpinLockAcquire(&walrcv->mutex); - walrcv->conn_errno = connerror; - if (reason == NONE_REBUILD && connerror == NONE_ERROR) - walrcv->node_state = NODESTATE_NORMAL; - SpinLockRelease(&walrcv->mutex); - - /* Only postmaster can update gaussdb.state file */ - SendPostmasterSignal(PMSIGNAL_UPDATE_HAREBUILD_REASON); -} - static void ha_set_port_to_remote(PGconn *dummy_conn, int ha_port) { int nRet = 0; diff --git a/src/gausskernel/storage/replication/logical/decode.cpp b/src/gausskernel/storage/replication/logical/decode.cpp index 095e654fd..ce9ed0789 100644 --- a/src/gausskernel/storage/replication/logical/decode.cpp +++ b/src/gausskernel/storage/replication/logical/decode.cpp @@ -873,21 +873,15 @@ static void DecodeUpdate(LogicalDecodingContext *ctx, XLogRecordBuffer *buf) Size datalen_old; Size tuplelen_old; char *data_old = NULL; - Size heapUpdateSize; - if ((XLogRecGetInfo(r) & XLOG_TUPLE_LOCK_UPGRADE_FLAG) == 0) { - heapUpdateSize = SizeOfOldHeapUpdate; - } else { - heapUpdateSize = SizeOfHeapUpdate; - } /* adapt 64 xid, if this tuple is the first tuple of a new page */ bool is_init = (XLogRecGetInfo(r) & XLOG_HEAP_INIT_PAGE) != 0; /* caution, remaining data in record is not aligned */ - data_old = (char *)xlrec + heapUpdateSize; + data_old = (char *)xlrec + SizeOfHeapUpdate; if (is_init) { - datalen_old = XLogRecGetDataLen(r) - heapUpdateSize - sizeof(TransactionId); + datalen_old = XLogRecGetDataLen(r) - SizeOfHeapUpdate - sizeof(TransactionId); } else { - datalen_old = XLogRecGetDataLen(r) - heapUpdateSize; + datalen_old = XLogRecGetDataLen(r) - SizeOfHeapUpdate; } tuplelen_old = datalen_old - SizeOfHeapHeader; if (tuplelen_old == 0 && !AllocSizeIsValid(tuplelen_old)) { @@ -1060,14 +1054,8 @@ static void DecodeDelete(LogicalDecodingContext *ctx, XLogRecordBuffer *buf) ReorderBufferChange *change = NULL; RelFileNode target_node; int rc = 0; - Size heapDeleteSize; - if ((XLogRecGetInfo(r) & XLOG_TUPLE_LOCK_UPGRADE_FLAG) == 0) { - heapDeleteSize = SizeOfOldHeapDelete; - } else { - heapDeleteSize = SizeOfHeapDelete; - } - xlrec = (xl_heap_delete *)GetXlrec(r); + /* only interested in our database */ XLogRecGetBlockTag(r, 0, &target_node, NULL, NULL); if (target_node.dbNode != ctx->slot->data.database) @@ -1076,7 +1064,7 @@ static void DecodeDelete(LogicalDecodingContext *ctx, XLogRecordBuffer *buf) if (FilterByOrigin(ctx, XLogRecGetOrigin(r))) return; - Size datalen = XLogRecGetDataLen(r) - heapDeleteSize; + Size datalen = XLogRecGetDataLen(r) - SizeOfHeapDelete; if (datalen == 0 && !AllocSizeIsValid(datalen)) { ereport(WARNING, (errmsg("tuplelen is invalid(%lu), tuplelen, don't decode it", datalen))); return; @@ -1089,10 +1077,10 @@ static void DecodeDelete(LogicalDecodingContext *ctx, XLogRecordBuffer *buf) /* old primary key stored */ if (xlrec->flags & XLH_DELETE_CONTAINS_OLD) { - Assert(XLogRecGetDataLen(r) > (heapDeleteSize + SizeOfHeapHeader)); + Assert(XLogRecGetDataLen(r) > (SizeOfHeapDelete + SizeOfHeapHeader)); change->data.tp.oldtuple = ReorderBufferGetTupleBuf(ctx->reorder, datalen); - DecodeXLogTuple((char *)xlrec + heapDeleteSize, datalen, change->data.tp.oldtuple); + DecodeXLogTuple((char *)xlrec + SizeOfHeapDelete, datalen, change->data.tp.oldtuple); } change->data.tp.clear_toast_afterwards = true; diff --git a/src/gausskernel/storage/replication/logical/logicalfuncs.cpp b/src/gausskernel/storage/replication/logical/logicalfuncs.cpp index c0031d65d..afcf344dc 100755 --- a/src/gausskernel/storage/replication/logical/logicalfuncs.cpp +++ b/src/gausskernel/storage/replication/logical/logicalfuncs.cpp @@ -538,3 +538,15 @@ Datum pg_logical_slot_peek_binary_changes(PG_FUNCTION_ARGS) Datum ret = pg_logical_slot_get_changes_guts(fcinfo, false, true); return ret; } + +Datum gs_write_term_log(PG_FUNCTION_ARGS) +{ + if (RecoveryInProgress()) { + PG_RETURN_BOOL(false); + } + uint32 term_cur = Max(g_instance.comm_cxt.localinfo_cxt.term_from_file, + g_instance.comm_cxt.localinfo_cxt.term_from_xlog); + write_term_log(term_cur); + + PG_RETURN_BOOL(true); +} diff --git a/src/gausskernel/storage/replication/logical/reorderbuffer.cpp b/src/gausskernel/storage/replication/logical/reorderbuffer.cpp index 2a3e870b0..3b9997319 100644 --- a/src/gausskernel/storage/replication/logical/reorderbuffer.cpp +++ b/src/gausskernel/storage/replication/logical/reorderbuffer.cpp @@ -6,6 +6,7 @@ * * Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd. * Copyright (c) 2012-2014, PostgreSQL Global Development Group + * Portions Copyright (c) 2021, openGauss Contributors * * * IDENTIFICATION @@ -1351,6 +1352,7 @@ void ReorderBufferCommit(ReorderBuffer *rb, TransactionId xid, XLogRecPtr commit Oid reloid; Oid partitionReltoastrelid = InvalidOid; bool stopDecoding = false; + bool isSegment = false; switch (change->action) { case REORDER_BUFFER_CHANGE_INSERT: @@ -1358,11 +1360,12 @@ void ReorderBufferCommit(ReorderBuffer *rb, TransactionId xid, XLogRecPtr commit case REORDER_BUFFER_CHANGE_DELETE: Assert(snapshot_now); + isSegment = IsSegmentFileNode(change->data.tp.relnode); reloid = - RelidByRelfilenode(change->data.tp.relnode.spcNode, change->data.tp.relnode.relNode, false); + RelidByRelfilenode(change->data.tp.relnode.spcNode, change->data.tp.relnode.relNode, isSegment); if (reloid == InvalidOid) { reloid = PartitionRelidByRelfilenode(change->data.tp.relnode.spcNode, - change->data.tp.relnode.relNode, partitionReltoastrelid, NULL, false); + change->data.tp.relnode.relNode, partitionReltoastrelid, NULL, isSegment); } /* * Catalog tuple without data, emitted while catalog was @@ -1400,7 +1403,7 @@ void ReorderBufferCommit(ReorderBuffer *rb, TransactionId xid, XLogRecPtr commit * understand, so it doesn't make sense to handle the * few cases we do. */ - if (relation->rd_rel->relkind == RELKIND_SEQUENCE) { + if (RELKIND_IS_SEQUENCE(relation->rd_rel->relkind)) { } else if (!IsToastRelation(relation)) { /* user-triggered change */ ReorderBufferToastReplace(rb, txn, relation, change, partitionReltoastrelid); rb->apply_change(rb, txn, relation, change); @@ -1530,7 +1533,7 @@ void ReorderBufferCommit(ReorderBuffer *rb, TransactionId xid, XLogRecPtr commit * understand, so it doesn't make sense to handle the * few cases we do. */ - if (relation->rd_rel->relkind == RELKIND_SEQUENCE) { + if (RELKIND_IS_SEQUENCE(relation->rd_rel->relkind)) { } else if (!IsToastRelation(relation)) { /* user-triggered change */ ReorderBufferToastReplace(rb, txn, relation, change, partitionReltoastrelid); rb->apply_change(rb, txn, relation, change); diff --git a/src/gausskernel/storage/replication/repl_gram.y b/src/gausskernel/storage/replication/repl_gram.y index ac83049af..b38cc7e15 100755 --- a/src/gausskernel/storage/replication/repl_gram.y +++ b/src/gausskernel/storage/replication/repl_gram.y @@ -49,13 +49,13 @@ %} -%pure-parser +%define api.pure %parse-param {replication_scanner_yyscan_t yyscanner} %lex-param {replication_scanner_yyscan_t yyscanner} %locations %expect 0 -%name-prefix="replication_yy" +%name-prefix "replication_yy" %union { replication_scanner_YYSTYPE yy_core; @@ -89,6 +89,8 @@ %token K_NOWAIT %token K_BUILDSTANDBY %token K_OBSMODE +%token K_COPYSECUREFILE +%token K_NEEDUPGRADEFILE %token K_WAL %token K_TABLESPACE_MAP %token K_DATA @@ -220,7 +222,8 @@ identify_az: ; /* - * BASE_BACKUP [LABEL '